02552259427666107006427736104696272070153098813739526435030835017345178063493317861982233369244324262616854926339920522596364896000079794878094349144458437943542568138523819234810877839910061791894730654460408421796903053858037891611214208093899251767857295074678486569126031562937292513976361551499529379402109190370553637390108856629102204180363213804630248888536182522094216376330727907450552431383349045040799361340073302705358786770703559279939823921787039095975883707580027931622515726204170279531943159274087997746417461387931508959980811818910824945596854009301300112108490712362986755007181391153802274058435073086119525644293838168021294407938371868591600930732468937712441510204447500783078313647967000535983287025768797693526749279381495867054817694224450456945706077364113405819040450152966197559511523376885282143782621053716240510273487628099793152121206983825841241944961657299619034539543691157744370947294108932985871096018241004043210534896091044100695299874592302884342115211084849700535859013494278336853659835471710857914032755351810475546299829707431346635748411565147985537913121598344762859162596497120497507395606310468294360925186555959166000233885849611766655064136207199000931566848061332131093283394492754282366061864341684058323608819616209170074077547287293608166931256060938332446050226761959989213495868057654629308228059099337813339446102899340058548427430546134308938771523815901665649642573742668686800730144731887962386002335986874518824426984051258434339540026145944996956955351412198906159169295570087797477009002405972725159175397651372834719840638210848985715698458395124390947797985451245304013737954074905663877440207838035672062669751089260277468418384452809459531445359851388317056078212017829965321252629528641465962210746992374650220712605620750367876783394591643579591128775395939115984867771902014397374516473363687219423586240627555811065095042518818957781827928226860076580968670131024169247844541417448516741877265057993143874732655228064070975473264870681153756583687733268102056523852496712282754963997312573513328367922499006924257955698392449698823493667376306667139416071606803307206676415425003826761775164525712069638358849676440947179931600894732410588296733007793111669068886817771605280929279447433903453789942640288953932085693326319428491352488715330138360620611145354839698207215610892012990396070756135414082869543683372459474453050899118131640113357208835270778108106494924016968592991985223963822877739352211601353921195001607855313034942158459290981870040133591116917973953487301397536649103033354714343193225616289749323354304743142857508897631339383782065578653431706597227314703976928766863808555177356352235027595416517075284182390023045978733289838839289808127739068808663213328364007545712255323681923184809597200451378445089777858848999996340394664941292201036804518165760453783818129640038449675209872589756779557497746707588836966597702530048826846256033416960758741400420798697849031051582625642978784268035500667011210514815024134627007734138189919406562191469791104880324794292440160357647131372147709035398027767351314443604796757407050323889316618873456525457287934609501732574296188866575415809268719599108477892151903889433845991465252641833566384320210682445225540384052931938735334808970237499047332367225072809459478215154722490776402335342433397757778174821970830168989534348449728710103518702876424161610492762591340051558702021304349265834807770888459841722864048005071234344879669059597070610035081901493554506687123465240306552260419914466963647323524654406464524389242017046106664017441063130047219289247501017844568516762312379247028585010586130631712365050460626002711762341198249363686352273253333836959213330094366797897754340891390557425284465563890252569138224917369222286237906287177402695367353243127130044938743623235275654483536229710246417566772884050300079650245856936879676801321033026432544365190249773271321640587257400279843450029502699183724790178443848430237101329396063766945452072873221493496543461049785910396674941070992940569716466392156771913150399006498199568775389805448631282645942710298685509195235918201593147006784894179480043439387276388945077187903746630531720081060858838801403522924770448902442259526368937939730530927880752732587524081303892062379025578089778121775456242958629490633334593142089612549748601152850856365565763089077420563703731821510116372196578592836950459074611511072158994613011056989675297446209379278428743590720153888539123008508757741049859578649786848510962699150601418032830292379250766589738428487549845535346729625005377537264907684252252002734722135988629073007029648239811204092472341744840101180159513771386841679746459025064737789168455281045899243864521365973996345886416113704140075525318914613172876755240312405173954936736662831963362476876652492024939703844604022167092235731015270767418869725900157622181798972475241346543660682999204430454617126379488554107351724774770670244441037194677605912118908246713028563212044235970774486811634215134056933913720414444287612835911858575171252838788681165623800866269180757698966769991793413112781282481721043390992472266972716538924635562790701125976832097943865643646367648744715644274950504186745275744310936280394506190407921300812020123892984325847558748516948000056153084919348225211050259978210702390746236061997793231975766872109703065675947621351274503747172754884030519171191442484433300217512995060902949478636635488501657252709397379935528701253061700527535087996613337037014805601849493163707709885070969655955276157672462851991367649221715848844450952415677009300904390082898110396502302493006382057533095037888541665518630432340175430633583151528363113656481617714017398648993850408382409416815669552611324925897052552904439323151002415101046527507315176473670529804177265533913984256862676165831337008487334514943385415742799276463421918525421005070227955988498100836673290634192307998327748417489396131248097936589044429339461664581982409167464768452013230012647103109515716522737592874679181661677354059029450582520859768996108090298133988782011128746477889830273266536771945831896750231997576391153913946258892573945630167800313827868327253869393454921737852678456067314985182808288727547566052514862691163073921147211322834496370191525082225256297856036440676447663479120507025117957996533273990780420997393382310148186436780630886703038956962865204382291307025102463997525339367687511914002883793536444918607832672415797960890963450074017774869482518797462916452637665241386378010965061347232186453686361368447365810824990316662448567697890182629829703465146219926021892226627871154009536951213239676360501070043673287775884199920680196996486402856995912574635506612106630956150029170960932641170996464595816124216868142238805027138793589604471115204055436309887187920122786475715484258562882193599359008549006310291844247434978837867891242719674693754937382773810048310542996416652955038271446237982469875671017028817791224730851350377182677209933051564046158343206636252867207230398830080676474746907757474907415485869957158075043273714785047012665050800626303011498380293582862841442846809899525068254886424421841907183843306677355575777108920680147605336338470133864498035480623203931627193367560348514821158838934441295300263290085495627503829890868719731149796357465381646742983270653356829050957072009105828858217371018740845399081105544152602062794692173056823724663726261073712115230785489008782812562092348797235494595129482662320616717032577120829018454217705684354190294103510314183708325130386889709760300471987331531712912367044971216075744819954442447968911538157501858039162941072567386328599055443070356112047360300842805572436309235025921734111191803799211208052338771746779934323232796124342164418226568586901903867675431188744076642435000100850372388559513275249116148578604268585671641095153428654076177930558545278764518968088260158944684368002129986422011355247652786646347309158345995977375468769820896462280000656575781554734547421992047961851910251933805634702522246740430502015797104035312962467606199414030394450562429635580606731619170798187691965455417072670764308520400308867605793593021607812046644409243435725684978807212730302492349571835514551819562577945113866955074353467595683866334561698896865493368261909943916164742420135512130273557321081584860474497040018563742227518733468315060608085212398289853233496040597926461161079258961871692914977550578250063792998653877098761459574874473682056287130535600009867903223936623418128262007923039220246000449657022622369596197827534021817025530885260308991788308208465704557793489621611093310093199213685523313426728700098517057736248435143743205978561706107243922102346590416331087601255721150115734828411309539815879086222654051366273803158776865197238037555572561907674495361586355045566085419731274972666866215410786869543742370829947991007925217010579001040826675392286053443579529711065327698019863416482140504741815119094480918573844192461323240238714047999358531222215122607731588827161710857765923542322392813452905265886855226198298739499627195065891923023551935931730978997819136489429104994074283605045504982953620583106613547680808325252706850609655981378699651199658829079244062616196560885204673483639939663203447903027204743720367123995555815530438942169224573333428456878794275646238854364088816117445485511178336646368888334219278704135508403663720534411377052001750419564249764220539005072063714956377564070069118520198175103544560805352097846902394926764097752643829356572112863882871113604932650867507775258173818649618531705928059633489818802310606530702269689267539271975255881475248365169943370811822130626574349027432820998262699838159694892673182174684452071702774003496958324339929140600665916218018005794259421929739394348600893051793757372474073418566585566271591674111474572360412295597349413851483575946925933679091858513787175256387215419496563314654859957552893190857271777527519955873519008333457885454972900197431405386514628468625499538007044977648735779369074735001607154196980790985583873651219495965361853293051485759693301989976592140292429461012371397935559862765017760248677947703003651102115587143467967850927999790655766908242162857588513896244033561401502770065776635174105408084265893411406662656920554057286160068257351459679791650046511500013220135610237807049856267508196121397990194302041145298673876135640026381447623685108479335647373526827938562216731584823459236226494716306608189952775402502396615194845633494901031132882464809272576433208619767770280928654219763521124645238456391058502911308883855122847098180064119975823662174531967545608837807000496617331153022131822384821010758368351473633141191133572183612269351449569216757836516447638165340358569583651578265474511869235859107643683468169133101702784578178688469539385962862791023043637241609011728462658463014642236114124359955309011168768004765291714619756555829220348872615535009123509786167004306402555882824985867576689459327962692537826483045640303160142018114093291469650746477433165731732076800642959278948438168826168385340019978975623016395931328725012221405685265080486110734151410001577744633273370580584817076837894822619952758409045990869422887149232753558557602105531476633672366409609801342602325154239594961805063130997384860092506294739665379618098747510952080000072323333727386311320579367051955310829826414312926935846996001664913413114275128807026679424469722474039956173319121652928742865089287833932897824460151174308760107884617351636648962689518393506809902305633469084935228465129101643935159068681027757367723637271458164277994654635333006255213590547327585619191441302227099437414894163689059365661908365548447927230984426174791785238625740747716553200808644474442368474559835988854271391824825884968823269528718582423931936796001340061029621706457098246382177029348115878682723794925267050883276481941714499154945529469772805641027132032835710233692987550565682437475428322951383214680998773471940896254418440656761178446661609243378432649894604053642886186762853440342486324163046915609567915704110281151105805569287670956467251627381253208079954797352056504336557706652272271292860106117179283458207420285520824948019251239422682186171979925761123282471104158838042604139817499139698411729619644527001328145664771446007108922690933405215963724298105080873259885271164990901671101412947784424626137484701368253718766350623893844100089429633057024918247964161306314206812492827067415756235838077457918113164489512373703565174748846919209642108722032711173986928166857209200218489042961875099531642860886928254641306772914425796131746427378449266392250203884197466068783749094293079552164848071207858770985413890805414278579726216556007778103669875635196357860844018634026748056684364233290310819649259447277785239851963450164291097200811978836926666576029575048187505710132029344851107913952438335012924587650128448805864710923076399147423607892342761572931102837162903038132426180374327244866222851190894628563197828374642929605042139830262683949308269313491927184394337316658703394345479205258260683663558612923786864740484764787518443084816387555650947697253389045215759599239966554142155333537794170830299587600841374236834456300596780281088959723076722198565607527705283161662757006822752774718274934364254657488014163167395767590620506707956695782002943451415566946335923148292004484670539496141596745307448712577002328094977463184931801508249121941920252805660221440980395435481765614399076960596239224948320463782357388820019709402131642409462933616180534440995919433869024441756231390802164494253771387362236625984436938489035727165440366141456707156555790376638483214164503081591678737088965531852050916315097940880192764925668416853456330065329159714859044780779671165168501715044004330359087475083109480406182183517069030517789346476924891032847388993254325378950304613637325698908662981278656733472691453906850073878163911521472924469036592577871577452222691573137410892756764680106224746279856164867276782083420205606573839432416995279694246277083306865021258215569335970390772926659307967246111136495159626804091386710196131740747084548787969967329921932410422120579819901014384698028600409389312419086312917343948987272827417544863331225454410868682622378611964796552917501875464503768092597770727897873202438902582686684478298901093104301279046417971453113921398309383728673990415124912158567553504940781608590748051726148689029806808723796557231509216361806621434680350606911507211115315087249662243332974285124297867936516647617288553907425397160582554258198590871153854183357407198888101833632733037087751899983811325240099070451459553834652158471567288715046446612011024665043398881917512603974997762866484360485224427470720995735426481892384969723468080718655187380596349524453247211395410182702420831100206768181454585962392695943687153901926994388549227697929852597296950645101322260887990899794105484643763906699156713969867757377304687279140248726301449000830993256380364552852988591569977022003970011490473338623322416129264480040969316787367121061023031873319510578336380072479276909884503430998888586444191295216629668741709760549002125263531102419064848280600314294443423987950247052214374242674700858326012485772537455727039872643720952944643761999313782681437617386657495850986616609862413337511726482019722526936029949489830005300980944192009157727709220019939562697981219524219496088699132539400713799752534773033391130232636746627136929842779680617569193659599030273385580334692913108664788830318701180490463099899658012559360935883794604153010401795549666837210777890211258973711622355553822935317700051225407903089408084180151265688979274068334762789683341638312663251105940950839218999285103129789803585947227680478526223356388977037347060269217705534823406478906824020257806778195844775067201144801006064747468244925430508425234830654174057637614614625567416424064768898201573922554401918979715217011545651762583129608061131437141921553078597511587204369691488524589717335290297178529515577825799233643280588965653178904729022279587213984717312054789737454292911060819978961508918177050771494135916153012565791429737304462589039687888791856035922894297728572943075667077164851227515602996587648137454147904409818123291148828781463889305180903454326868934551727054140449740138095452242525145474982008540807542617199191944329561233417080834988441692823338453964615393474927966149461057731753179199425980417615492768912801275615425038093768321486156580830148209827663996732728133350787616280971453129700854730629738747268670711232541305994595921352255857665308121122062497543441128541339906697237075412250440290091099101539255405206253446527206326010108413903556319940741114727847461196975099669878317846344116266681263328744269119369991192933560996279937473899333164042479345628107050040484265313739263686710530092971680930039175639111116201546567878311369756562511914549071560317411471662099241702629122933884652016161477927534121388776502636303417655043581694722304670085185890179117969977866934646404872649422669551168549668901867678986034233717506338682421909734333218568411806727874312657793307414143500320908942275359237503874435750904990300473896059397136495592245586559690869232012093831340729478895661882751762119495091065156713791830481005575200335322676258271688653713649722259937607590063871700496600223788660906372948771707747166228889939380303397460057107899030665907014062844232286538732113300592567158875981531093539025228664057984789201494357208520887507974054808947607860304748830603804603340544351050250955148475542162580367192373487861708007546354258930703093660621476226535212218625886845590922559263807135066055882138994724731505738940156588580861989039894732752162530444232774326800100301037419218105330520547998669355402663199093940894248624865005541144012774621265967333547797986521464559700229663993100130497364904030843340306455894427706108855822386782427063786948564597970463750485890111292548890164131120236544622654263292881291664235329904333332907494345887359901781392449327578651430958670470226828773085282587511137730410474194240166236771693504942722605772124831442276801578218522578100433585453686759356377372478904519521977140997395888710569602573459798812236757415206851821031349826672301178889332289245456222445619964704729697680661037929259938292807631814558197808597163496539659068902028982501843124048114047447466088888048342697660025944772830707244472461615819129583957214661643515024401738234825421309843386265437284419114196382157983251331609076905047280818076044378242107345291820905462845247572437851552808070247258113559982515817064310216624128925995469706205849413413269639473554553076534481758822358085539947789580704514594932675192570854853022465309344030426755962623720884626623833953345644216185137684967379045522914729490148611888784301751138375674804594961822344342057628295947727174141780425669799370738302929030880178598248492080800630313813394760569681055893732137217586559923450693027572740710058886705749147043110878904113974260806395287201355019440616762461239508304917811433329755301449738133564492343674940162254422228267820416696115228942974241821746168188312801347138592283506055181755053237046208868354710553221225857993273119338662970991184984555917526926607337987343292050789652473571452128190039064597752033693226220518200102428575561022827185866552811741165812852793882542640422053965303148976624029594969356128964448175008529869416357979616024974811463739592659937587966673272687498561874795590529187820519897904756291158503859625967775929280834399898547940938261382162011559396384444161545643183357612617641014871591704247337851820664284430553054259043141326713713681080243210357862889219332386171380725426986911585746388955062100097025663492328848388902148096629876899962696791854297765657885426647536393818490301274110615340445069541398842104225653606735900272193287843828502455798055407440911870275448019229118947086764506467052104879580754102943132625094564634144932870877074246943193178558120538596462964403210469594737167567473823597454545511180956202045640277284204186690946429627956134549946701846440355705598261105251110259198843641482339904168675716717990812423051542366248477211691328038732599342669899460771461755755138914039309415656251417560629124533220058963130434076450092261484058086542931995832379004445737347071309256173467844640761852947316237664793353613011902387266960011917365469467714549838299404888985093185421909461455948595754761599803384444295244048062389410686681322794779715634667310617590191333362369595704708988812866982755479610598706240074844916012525859896466297635721573358721455778182559352859338766155460990417437937996761790632585854334251192410034881949423344476652858263932080168406540202364111075796405937941432681881547452119066072942660608157830067615520202534327164177372868670606327938907834898740413775101409743688550319285203527754692788283306608931205079935990185188401164589835241128326610968634117191639168969109035058303677117074584601903609435643181483100559222159496064459868222553654526708475315072435394089005241645213721916160891147653199991319243192159797447899385949807520780524409583047601070808894340744269142234452610681781057748739745210133276951095695104619121850249723170607121703626205694906392030931342632938315678314572848049012268594834001917813314581968038128686079240998798421193466372097054774332935302607478877442906423613134467653881870755173208684494824966434253626002989469167730382486139058620331853595798891260921647211691240054873973811316382902654169676214627870872611862469762585161783569810483317066702537389448427481467580005833136919600715896350070916787864774985105298737979910677855965770008507339524299297522491912520674208447789272897433591156378429021151748930637720177847659291543429140633417553307457706997941941708409585002290260359168899934470693148327750459493384574340565500828393661226706081023083377169382925779537733838973195002470863486744018642769841494978262833858573917464002337588966524854985858240826969425951504695891966461482823733612034874732785967833862405992310160541013350150208162501344945169328135193159730028400584497523038986048666503797831376755756159931933497746664242192942038280338087346641594218675638115103376307095036299043074175943070703486432695569395081765210612990405401687313891850514446723299449150669900897761908625913169296510482221500225009113280911090172804196405975257098480256631903271051698179363722572730598253979811133167149209220085948799770180970640699996276143396633010278958454636954545903822821997008565885145692357540622427866710966866246479703519402004181737522820123704412802371992400407358541285163054406614788810958105365044220178688221415803360237207936299716282666693585127687244323943908293638107028326279040292377628805943438719432047289152554248210763353945739129586885561640690616264526769999786824974990462053296465322671658921731186325922544972709708582684603432107880742052064201003738873999255148966607259467251882984501951715419058614492188938667277839215910216312998099213373998087512271929861866002693815239474651826962482924535955600785034827818437215888893705288551819809187322151281537786750339936120656818977918088543172474386322188678396524814153715082869214454574274776925782812761932622008106570744795874527806469978919574333715315278153157551671789054774048004562402468508564424178840094301414990439698103406110700914266529406707799203909388177318961422466341454034048363104407750521953184634526245341868752624376157848427493146154536639740951250035265707365449107782826755290812799338897840197527393582425539908257802758113261393431547924327317494522634765123271047138663089987655028769058615387218363405472337381900307648831809750460824077836815030577857563339360902723020928738954331154170114194730711035442477635725561659347582707503603760591599346623056253776660752190299523297145580921936995763324904449647353507335994707990880847532625501283984036962713935041563633895457012603791741214411209680169922232718606887438748464018089406858456537117127483020696360778977138588975224313582624507843342039633109850598974347167585561227319076167632306941112292966179094788122532810111199317829211048103114023583113569505168087099620968930220390359974487332995800500371071541146258135704796352566407558764892871960446006581504317002701483572585665881674321907952238231377175229217112976936815017457677769827686286467417448038624451109880421906079984011172279490781971185470859081641109409467846370397528348175305349970685362317415938428861781820611992011452988472834057642124303976241954416053567728599018235892974518931047064940124220513759398339223866990849827325107166869602894328398399964034319935654735924605211915283255944076955419305716610348047278085754952246890625549534571818759523946171244902105043886622628826482927975301726893017054252542089855006697385151976795089864062440369456939369894562031298060978453547816812617859891042830673204953644011091926437927793271926563448254439235194811622549584988764766097562024094902869589320315280930597546849049641661358127135683795721186683380871209973445546154236975811703215986765137133448956191182730507427881410327217287866585725284363111792836390408381070040768304753519517471258174370684601107925620215934117490133842540452791109324242674917276833115877279216534561125818773200460872108264165774701445279900949592272096009833330708396308830861998762396036514263296246231702203440056346724132883422495059932376064256432213422246532426883489297273218623391873271805002508081510173853628036107433963485715444694910933858849270600814399614547296227696233838672975056180039175093041953596078231446172136220765809497725248702773450664383528969448385611097040662984817241365056027806883312378824271111955202914730631949676856370580482849984032408348804408917559224372626197682716180620014343401766790974963327890912494870346102180184502547185463355999033953552046506805901422765246871503850862449183357943050860645294674060992856533441574606319132401628358083141488233901536120170890847775068874218878813377780546112516660174980679796956941711407022095890662321905971217399211538482048772074503949409524469001055335600586689524196618383486672932251902276526075407302848340594533763279356791934413495555205026660619297541988833499512466920089207076179271742392745845897122353317651105767717642306106925473839727798452612448253280824156737860718944946873915079007875272094443991367343166708301735893800517750269736660746379566374070538436069142276733018882666889502812845809545515666741455199021899004236790116754757753753472993670394651309405501703707894704331186141905625226379762571735206474658423369427716483575492386032401039380916135979402803219390552667808259171413833321116893459905123489686488248909227075032460844929522524506139955596436202963725435620396849403466765402871747735385175319058827084957591397291962614289302830305217078278787610277819885639954261380291719506774972975010702506252589019252022379813670532746812856782705531885076254264858195353710658657528375513552358894301514428931005263315271283512138860670837672625915969379965909206190293370174391463505482615048558973275751706285500356654266987138132406255833096370902103793165978616149855178084100898032566447598042429441949566681823354684170001520854882121190142322867528084559927136020664513467260575074415483836079722579549839394008833842993787308802258420290599615859405537094959465863020725088849244790141581178657755281332291414561557397797914024464136342343461162793663737721437767940790517701150841969902464460721706329524550340989606414544981535111208935007030456243302485214381607101907504795835041775394464086979075181599637826541380907895595217754831576044887442564753850821772804508237001924610687311556747431889892876126270562157602382558393976742279615348799254253953212635656258687797517205749125968969453001615518201595054744961758012330950038447180338768878333756276323601604242551257099342756031731500440972797799976450365825792921571467913705304527341033989798097994807180199346223522530812948574420888571556619420520911581702330580901774458298053046110224272352750965146609343627358961434312918597298358960800495085002158734840860756042319844143434878249152280617823005184803013871265655695935030578903964271120032161752294449155097508496433591682174717400975978154750099036807565815086126048366733128709970147303100961057512646306342151700973572521349032454242886942066593155485757531618493469921369604195713109506870779450505160273025350597250441071020009792787951455263081155497406320895891149452132325590541041764376246250667919516663540088861376192653381511562478005286845073699850507212169101906738747598468463181183673925614067913790177842971967069886054400894861440950354231825990360507330712055610598425251769987509461992982368565460685178177213084270635524296568247234399920723313117044463364531105953641914462505577349608532638019279180220108899561178114451193123161383363785484419907002350954207694388982592219462678435177869377653628507119001831037619324817585525481979899860740770610832063770367413906639642373352907363373086402686550084624444519395413427042970727847244249920976050169991340892740994475236688042363459314075070312185459694463951526583591233313213292360101077008480908409296548452870786124260673926184776738592081347608391656788010773574868957497378550727309749539296846467637617102212324025457514500630285479064889947370368347151373442847084996063205594082824499882534135910561118518327193387612210301492967740331670396108332548864718032299691378675059578044815669380252767363696563181723761702501988508577578904230228363072701773683733971410210207670165882644791027687049653438814205163166004381930263134700874780919361838509501540423723075169594545782993909019883689127141722764764763469527096158702411932865622014510246662507094417906334243714244014197371005439614361056204318369612306581847751567359226322001179114205147653152274808138974589485862137136529626175532688386010008261111411928242823381664800688064887274976000810456501460170150600752026914637073416786322340137999474336970973054810165404710749511525817078581591200751606807555229304033601701608280747736186712977393204149730646013263279651075121159342742270604149392759971602532929986587371385985004424732351146828143398366758638268670269656382924860225869503620618871540831066538096456828224208171466374717419558722032070064305301305880317730384563753560451173216948258945705270134435439216714501136502301231460017831424093657560731988504527716722217263912153567263687890124823587768032393108785495726426850834861311005653555006347984046524195802123455517831021197695414726507900632802301317648121705576517975265264196590984986287370820586216302480416825563304794583325687572878448653961207370565767217575173960176941569587716560989706698719150905891893339993732534924265742998051355388256068762861580261701989578746498705580965624568800398508586009720409542386095348018136055447561542253471742551782850953363325129755909610607257167806422575610500558547123044007221181356522781759009703024644565004808867352779024673333771884268316655212632674291543554485813421122049203166184354990521104726152165619884676130514195293759854771195805930374772778166887709108069201514594295835097340332826858170334555531042792248012933607336486041629372655457912960259319892034909481417513233263928438657872700948320551541615637963032589116805331183351628717362467782814217933440744212554946871812491723981267336346417268772093937502437813430707728855261636598135101672774199695799343833453565455431663945157805936815210294494487520242067831870323582072771150878312788117826541392338397827759302801276850824109059196103428296539736110947501423036492632087408911699282615842683153825166804858531024930836007128733911692675398876819722997624498987425144529400339864791113956389409697642059128441610569921810767908710819263250667096195415182554275775803462664922347442313994103269538713007283371397522837983092588505751743753891706083075208721588632352096968374955739608503976536470418753041218762622699331423108696705134436821712687096907559295537071229265304952670376599319913946853924766812253397394786310154266330640005957608658090716389750735565989153131193622490885206487238112887907856045023461578926141039579047765808977116403051232985227899443245360754921124817641225646362432367696493569113917489788734049295870066519345179666033285004128929241403922742758474560677196467200224030656424862794472259427074583532859221829051105973217533746116691429728926788291705606781510343264037414693888536174458764991870772639233362347809396828277207156633280588172192903816631262511436894601014934413762544932683003921860839897712591755491519138692813696197194913325557556213488713214764138176194959262825303082097648750877003407945217225755978509868575942111375452973815172993697399523013088706356861683515220164626611915237426219073401583907284350593876398179160555085932145109802471339207967572256034098703938921350009081366193385921666802543421586401624080505490516770887698243505890920217372687437155665191738271243616934484837042955735778532714985117967028921405034056054182315095276543979376869017156968143472242637308062113325344350693296489145382419988044879311557579613894480198747924397342050613999186729630107794752383024112026803664848164898479914263019532157547637216875194627224884386344459333621018341515168323532725239304484194572216173655832382620526005772264814269622340100965859319376131646186111356097305177023109843958857575472522975250064122761866225088375709713161610598385224787097253705070667617933033255208261946889785975170147842246916948540285219782296045143159935626084461569538007840584388220610530299802165697623953902035635574360193012510289540906029576189805277266369105491019148716814982259278869259410444890079112748610928050568076935991404888631206181574984418194510058862675536544928834765713560815814486669170294114885139950499500118753339712839953544788769514449697896757966828993790761563736871719728404033370382838904372847406392502065851865143278577037485978989043385017581670154875975410098090123300661492857762928297201114600393018620127597252869013826950705612472870019869235715410290240238654516688719609051206084663523107741925234169718415231072152282630443865483556260291998835167242987805942039397681038526023333605713617706560856487710247542683945731898635547236253166527852439961734225939515204477377932045783119570569245203525118223612409889761400023451577788461413368169424571282882987824756470005827263967391893142189421148236913781308061489599543533764827914723007940018805423086196429168231724525356088671111951486051524837809412881239885974803359013968782321126643462785599553843522063180388822515248121268420479403857106535001901870044099342458950875432087180898640753453211577643642466323954204513102735937631393558698846502146987763807733576877455934496060787330080320960353319704960354705021337029221565497911443734350803713004173291683477914676727425249570199495539942244694079989773257887896946333208129275409122391373880594280571573376891548137502880181300208711175737511504269907948197906581454607403559726501539529807432472269826169831893526446901195639420477582021362479350960145439627689704471609749612817428937889214498745781531353079036561851482479246257110679577529025270468429188564094074041874821881788453708607076516413924603081278949194590644383867524802730661348622332323942192419544736808268699956346295222739918953599218586249490766914626601180942663011952141987189896520796323641289558345505271076961758810798821866549788699508051688117905793821080185319104606297576141695752344547279463262901463611499082917846975138523276862247467340448282122033609547720649627291284744382509650883882656583520904927855985075036752513202382293884686923690091499189050989273820889197163191914662310161060202118998159681486300564707713975291354717296623426787637470740665590861750289831856744263597076314814176740611269690648709882310121020602046491483275739860586804406789351693373859024664622661854434370531877790558120169215640726757339634130024414685316707951279931509771285538377601892893530330977619514225089780343086999514859796264468526929427343661615656481262650469346228886647390536936218592675517210171098164985329516328018290448557617782853196685586909534056852821097036078869189639141439000669451958486752377477584302570153770130196272172882178194129405726076949310135587932272219794932839071777985473241519265997204283642053214102235926806438526616538556752352756591916027951986392093803083006184929898833431543641145318714097668894769029271686118144760758647605448459247372584312257292845207995545407112803409859899957221329882492819747732381847400361304439538835213296486633969915513714591650569408204175994859837817167198437864440566883617988717125136114134775412855037476237834301502726501211888984911100728982676341636172272008323655776808514425983931825764612521929053200676208681818181910297651751404364639003689159251042561257354336574297012709628843362918056117460703619522587366425896382163819950527915450822731622600315877449861265081602337259468168158722170911671362948600424896824505506577944406766298669798742994088432233953433649523354775603838724117223714583951107853453055749471073968431091309581103351533503874393831081310004936786727757403550917671040820179426293938231195746572174295858544869954900392532247141489884142899856429655831213395302983754137345026292495101769512269941816832320759867694430213528576890016510405053401180231974993431574308641187087380566425730522322088714458919004910709964727056830298062170506570550333923700382872675579221662771385956823904644808691414172839173447170357430291771010513748842872936599525036244015969580549077113232882029179698629425772921008482077789892437131169412284579108411576249330937618823814716603969031446696193554176963265937571644160528318407266591463072453603797842456515346087138329612291503100887222271918223760391502260234221466733641978697134338509822994948026289853994470592432247977407446665776655465383565463595637802752796775210678147849647992892627404473138378006631100674413543718361340622000352520856627996026980733458068261574541006913887103208049672309341407396832913291003006066315807725544682845690358674238137736656458743253349458144239110519928115977885733014179477107950747406661557117423627369309315003096995441695953499119381267248189661686002669862846403340524808094932896837825547728371166784452713136326314711445264730372174718497017574796207665666062877406695319461522115833281922090653838452310805644745542592447608583592400840420478913506533401672703661775445420197838265367771736761685968188486225494417037073317578538628387123384671965548670717801336824867874932703505015921839009741647961655791821734045772250608086698450013536304441966150883056794217638572092439825324207430961614128485096179694768795470826647852093407736241189566383806288485247904781798123348165719353149077837775162297115098731117998327716741052012925612312857023020793865362930880544313142222151161271630707566393174764567318934686837937543978629199855833344339053484002933530491379117389506419986978846396980653314838798473878503965408371338375349632458574809125180862093367380607886138151615318413331697148116957631828576128816568737271840114545170939546819947766447566541504195688130470687101899890457726868509291047295009342718701741612567240336210190965129652961190982739379430951952535461549014936626445877510836033170801152520461266393922207219314023275438048553274434457757684201686523836878344973580134935146835499370868523124299213884632211934312877488269454367626439745020138171705358155554535528515274875982147011380284412109045943692469240840714960216527761795130389115575440693801668811681962510665460544072813872210319076712518842716407552776112894759085563376911907049921414023407539077925517342439243060975714811177695829735413038672279831317043284914215724286527348753659901467470817517454313385012990783046379849971416753726444860700014031857920908938898406790966546445089062485895132676083864118681018017618651080907888990520422146263257166832744087849571714195796141631169772681447991812740740393713543285882849173692199840145532352566093172377722145093281848410247269274312765275144425106620526765141578463272257944445275802494518060622816532242572406699304930099391407947336083247692430119269185611999430140369132068622641289685461776606483599353764472012665055531685661334856209380861038341006076852223418486264238745107733736155029199943988653947123577879550328323091502703962583222727106596323610712765825437465361029642368688977248850206325396573781096746243678701412835099744876957281361828831128282965774465860924861095117856489085522499714230550052066872939047083200689377984584944840735577243579431751140706349886323395966735411937126835151150485398878484747245552480038852191486932804090763852724876668915071185182860687899409064509593950219148565984913343657395694762271185884351595638919969466797745865724739263743298199069643227240370332703198639038051247888607914962360546500736446564704548437951202685749611789204335822748291977593608754163000483865693389971197622258636270911333588693409611863666464283745404856981451550558805795568764619869826250549878483139444347668449453108868339272360571649034155958486025652445221146602173119919739131151703469901344206728355849321360940730042412986833381067774844870122647044591015883845810250925704712767045741140948168109770315311651919094554341881849685707313858790865351404919475202927929849843452996985650467578464922033651305274632691302652147565085539316455288467319947204744171577691026644107468770339658141755388887988135193353488046165756892314707334290164143526275088154828896587929990684321953035081572264007585056027040775201787063505047802606769429920454363995187610853062399826922818806050416761381327032163817911301683718303684800115013847532113771638188031530495969093659671121370371137131361862146840376569089988714776590706615765420883524270761144771879164906005977702406623492469620979190367686042170007215592791727902320740010667511921232918747818915238719643162899242105921904794818836587167255775537616096491240521490468433730267358523904819854933862145547620182881905456359943021188367036039551974801700894109814748045475742901256144956932319755881893661390412457045072200270477716939025626859181827329959344889050988231879902283793132419557231669604212875370213248192928459676525387481936256045557530793434513055473576383388400735283649919498867629449607741152587775120760810277134579136409739709365989113519475613097919180144971213765000509288046940430853723556381060266177132452342819783199246490913139435191213883106096333305356057796972941738857697944278824038818265861617895715737882506889220933120556455963928834746753965259008594658711361493457902591696801631523034724254081386650680965028418643176189367404787663107617985954687447680071395349998030439821272158072213520260253732132625374130687360662538395948701661639934036047452073130533813744521121992866180489749978432289874779836600228258882288931132915412736583625121931279102539730126748744908040464794756365034359804312306560622836329459067442912534397041443898317339344304545607647777941814075963665629279557967546549289319958398127152339110778109224463484490889177192729794978359670570849711651826433926754715417239027424938654105231912036812123088013200938179015151029059173549969520993117462375776436581242914607557964097596971514222645223458184053628155383864252407798782036295229786825623946439050927714976246074004358823606596831778189933283969596252568339124985981083621573490267043364634919331195457769554611912646582147511242036723340998967073341101914722204371563403604260582304018029225048130999914932508911730646578647465814691403191037526650434447728300201617474618839721824055598553393777518496840837845038600437954023312354310171436206916016252463115674096037161885324795553868044720095044799294221011107349193728926480276856774295759894084942104724035281985800660857211558255637625364598110514022058019915090686055037668031750921107255084086480289301540233852413378508780593343739717482305223934330618223243642861748433746176555191032880134847071314900014881305963763950273237924758427057951650597015653954635863472870751039618670519370611165284222479873240006657419887194661653025124412577840800589458400728816902732105243628783591264106490672940430537026044609581698321681598666647228048803129729709393012723882120446679084938426814595948412671893692594049563368556404522083834460095741024272360862597985733552235331864739870497320909640561930977988863722440655143788699728051665127852970919166597505366000796326671028710924633319658688127120569022290336733375794978006901738230229967767891672111264439713978151928871136751651757092997020491358783013800777524067572210918678137053400620183608298097907448160662245826209437820099005838027472532864855582099822067052360105285805137643925965694671244399258900194059286854951592801336958565057142703943630246656393981897908238003761306444645653712517311942651835563533425947540270002499867190282861085279009555641588794852284507758342497624801574371783127819827646338076654485529203731609238903222323019905653903609503645796067801081349093968523629722546904207697675398429716543706442555431312764746241261126094294850120293843266773957082728442621020628334558939288091761906483050496212612019853382733199576179074064723111242403844955430392267513810509631822643748546298128659448497923511709538257670333511170833989736851000792747121789280796215523506160402705172407605100678400799926197726370902987443910664546316021113946402509624559380663863214788452613827968078990155532770046492606932183795332863341112519094556656704652026004319615224892065106432789362847499547672535690304717760361538088621463468979217141609335188709355541030615832229864172816039072478560111567373298937705217446421919790081633053522601202887693650405596299588660814103744943578732518196346854954404230087609172361829733602879972828090530525763365118773538547895464428206514460190445245900725148336386282977549764688461362444760647754191525988163581931486163890225204229762606266720279841893118148874298755274585535460332992560270656722487225469824752081304928204570583365263615277853173086602220888720303580233518811395401665366292592623705452945443659229147137510950333139104891353846402631014788933948821408379266181437638355260456618612414492842874377401847770753584652366297185652078794714782549375557246087175071791415472422323892588175778404878076654603739703762633329417960255420079528855820288209061072134478362626128770798062339844530949390788857296898051289460993383522446407456681866197838283509127304700334360949144635601205932171927384407931839694876829280145092719901576928700908587465506471077021448116074776284225679673871151749405384277150593707659280249686701961846686771734235575567040128013294876024364087584848826500424621433295900756008821934378995754800435521520128355671076147532968785895679715338712222767593560108222730106457255875608440957700221996541218929508213817578367142428548745007467310300164872274616968107929478742468828436732119302528159228311194098396220687470996187518110511407731520523686298911570542341688241470284865419142843973438108103601034087269205753372484647017510103862896541514445335975926374961094949064588124091049255533399783972144161542840261690128540848525772484164148410002764915470470635156408838689280578214533589066928292242430223736605250368190182738679710100571591852421714007653333073600032634554849827576027187494535762158280731490845540249607116224199188294952225039472906628226337640467699614061987112831552540300058388353004341430957412357162244147911280758484150843677368735979837453100864243390301122965772895636590656333224546573625445825850656828052077974664020421063514351087120027587200772824656143732889327024264647494312085794088409975696276526033589795035277087661020771114296150341332355421306608175718076271819811124807735652016415716052454620957867466236270769683223287738184234624823537211232887450775835394435662294767553978760438678560081590084982771133735424987684044638347867567870479523036223909034008456895743993942724341712638211049356042136187715001199573459081361299482827677349630949780608887993945030098995908282288957438439541085405290259765497261520509670989754086898834967833471124956535474249108201106638465504837858760480277924408400123858847790668801877654495380818850694121381159473347163370660426177142891063170651890523386003143743070713941170615056753822049708416793763621152412577750489923636401725103602974697531365594403911431974214788154616235533110169022542874138423199406698317616742501939007092720704964374139234467928285488866752778873009471969763332162056135388824475647830338524855548250914961011986402416869292943715058184636010046445750920931980207702025409329448504703432861658918889032690952233473950693961621237360888772475216725272795292533585274630458707172408142561482654628169147394743910399994765136718009602305964882801168066584376184288655518362671244024502868606405436079305975317301266296864646038443574121471411489369202938341688180556242398599262405921709582880729227657233413245066801376996961813232841844907872535498177273912808639768767614066036702603233700562394554378283076737757661982320810287418913854882419535118318579337080782392151347818017843207859240712987533701043139911602712053291688443339442404812376767160250027196727852274541849170751738503890244411191764070452081223565681591905097477923891265564143808787477642037654163345585044165161047543958973243778076967734748178571212353708388421368097877572750403906869641357650880569657182380810559396569477814212479887844136708148378625029469556757651634539796187167519196372960527903148205303346560496736189079987527143947298078350117747766208729181328494775633065422893323468783780921764363456837920276043682788244121307110465394591213826382536198136962373254302072799387891199311302675109528208116457573640045746004092141880963105367482129305766102097079761526893876316873669880455222307408621489785650745827993623971410449778532688140673655358768353248364328234428971361285113195185241212094916530435317506523973609031471410279296703290310134652801580516997108622965108080565973434163273982521909078007813187049208469768848748552253824311347316996890980984031103325915734936506304423479094775935446173146534785606356077385241937037965418778583237214313061760671589130669881278656326736141094821814721659441475293235529778518442809246207137905405412882936930648674758561822468347078399444896641397385767939821241703437423782195288686466384404870960276630818468537643650694381447726912598744202468844681387211901202343920012248489744023736838926312717553461657495881783827736839553474117895538265466832906944253128725380331882670266841404663070499773219060975328865853033124485885373642235743469104258830028323018597231774699573988242658486017243423987975249934919688109631471394530809147631044388893170340334941294489008590216545317133883431188094065823692122969829577168997167818203009748530156814692279505779680586332152203699155881365218668917269146866151493637550797801180842136921515703163052000657938141168008550390387657116784842820161367609393570949623932011239002614226834886171000959434548935429502464379487185888747372361633783818676030111748361175448913966904081469951807272781103262196228242239348436023128278635647157266397207331419824237942628288728224712737889995005839263568917874455617676673935034898774422369955684722329379280635945274557867092358257643424868263309491777520056714853897847954777046375336134186468469463658700718344840456279960072411615145063076044945484437930137583320674357204425601988494995437985363096805749438748853117974197720219607675485542545571304828612526922111636082625483301332339647118105631966040729359528003463695493042289739232369729595053812007798281729481282285797147399222144162800364004935166274423175288926144983721401253490030248528214586776878835423406717874505502262824896395067320526622432255733842584524888028371414674246266703366742944436941351641408229302148618725385021123857399972340529975893583518387358130715437582565537550771987108059723855944749710470334272444412666872111514702805651499344599318836511125991226723607792341378976781165181393434941104308881243517405805158563995918993344808951276720821581661742443098343947299028939345852144808580417450724351532475173659795684006974862538447488469394625039258215286968366520718364856161225824462648739106940672603176729228886761919166728172111766629073499537627098868532994731141513521595308386286997251707637937185493714885159583921084172366475442031662553481618676710853203278127185418026981903630927971325772926444750410332977694827079626601643611060733783399168101782032702234653887027611574568555006316426971391571017754702426034037714803470673842916062653759565919908797989077053160221344606620098867526215927019080553092400673895536699976139981433579075369443793131501258009884717746413893483860899966112772993706138300655251045664672322671798121514586920353233556437626985337737741265530324574006138679358435564495216938404085867464870914700493825522553093294002475271029408406634565315264081694083968078271785608867555684024715387652139929108359068800119159582092538336811983610474534756915757029297079746902984640497952082986211866923648376019225231999844312255762739479137647621898617229590254597401179400347125874531473409519982612225779901239799607540881328068322421085743640575308257623002022409234773747735820844265281958412658195156596341256118825433446366059991653774892004972787499821957985995186383633925745550486590458274434900749028955589162817353328652612245798036285908942955429805491890809429693714705074255514028104208390498916939383733864869837484879265351776721256985581391815423655504483777823412439975760569653619219173137385327569023930540578324312948095078323184028302039632885743055823128736072314929226159894388135305751836373915379442538857179523348801926491410890609692465736682891332439829272066766190373935245535784650752370844189933224910921427352890572353617093443906909345995990748060244789114252321760053095787629060795628969553746013642047197702838563872232558517633620527751187935672422124832698818152483294592081407003111877880556711329897712038232913238209301771355490502679186170183878381248155085746581289860175041024354241688532754534067806993123751104919109632985929780675481427662161542548010160743553372793282756662161812237525939618491192159004826134232347522142042194747074044016865191799642192081916030986371875463181265737266628933301865168837157954700202428296307719456130348473002600270443892367017571867083228405508035826818111396344383354024229020887733333007852603695674354746956838711974319912023494688922515336249024176849647860555429753707410923702203420007633710289000741348278118820743882627005076363238857067898927149205718742248227515764955464085809612496070582996040168791216365558760986058996148006065642493144174424085724643679892936804831284591136560203734472372430957103647193684203697167038112656810119675439764781420446727136937807016151418136140463564555783658243936008276722700646504748912669129971786053234827767459200322332845601505496369053082522833994216799984183745774350873472405420828641238516791378701760563656184909140964332141055785774120448929850342376446376483689396774650867834571623694078772660219255733585703286371391758168674278167781666613033283068520392329242941715682724701790279566152184969063545798900008806975547964285867660536840073390097260648505366153630225033687671676414987471083028612454486837976611272380466425627032878036096068856743003765422909980009603761672146702269043615475712032706757298335928632825055293572136423534724016000141324825273764054944222290488852129869112224697027881022221598913894296796872397164770568210967971159358023531002322504032171378058424227810241163561323094743850986653599726743065959226611312768505404480209509661793788045260971972241982948188609565951952955025167755135355770921642764071513760272399000928638157715642029354255036808584102855152430208977777296701623206785102312675519525416691916942293821354859388493028194492771449757058707370571350939925677474208977540226907766979208045115856459127805681929705445705002574205329240269884325036312564316773876469619314485019653963371063596057302768514934367845000215280818099158483585632222015936108078734786761452120066777133852839502004154878986870504933768668803466688208464494179093816210285644505894424879825096234185161840124700759798316522470124523739294401316048425411658951944322161645649742758469864962908948686841385066797437826470312985887162042122520452354545738885642118719459615668139755735358938198658480064557161444943149449343216336040322444088067771374174156026926319102534992470717095104723985718660259648373985197219047745031403727628174863176055119991720882310170717643150978013869534825343327459492731544195894959616969794154690279483753901066910025270846334209067491526512151722705521626281016389422775891416714851486308990432886712656931846787421254196729814690724367655018477141466129098005692204301898081543936449023684155377776734342600718221105822085252547338118734509105855046227836099238323931820285297031618910995765055598971105226995038475857255609638306535064055365435130851970575847731793706869741913081334366545305760487852077597146317308563003344985321509964838649886882156937642777870831423385719437589828251383112524974655364684278876822909117828454107597050438133385513876482183507639563861513962043665802640681335665517196483932058201761001361257149919123928924317661812045215860025617770365287405233825130714978347486499786751817443329994136421076370337118869424226079696849830015321514339461117416119148041233695550470947351398966727599352892918446938573022657907728331609891185291704136482013567430275253414024301352051609171295545361035965628441688728060971949950814135132350545595631963262869291614333963973780571004159058940814762664239581240961036104367069136109358331917905206407617365414213400104127627600710343952867767562378238321654663866968144159657664702966242886041699576519128085178980586044270571519035615870583561439978178340872991583364766761951765290444080752733525350338763940123607754404557250872250612689214941438138007759513855852175244809873651349316636700174086065553676405429959457887146992611613767385851083552091631797131194579723946293135497707104691031406821704912945698241074429739724017574821950620839474866359506835066764727878163083161229484460952137594740626802956515970055466896130655262016895166450122869468405407971094102847515284878699028727431205929005638615657222979839985944429933133409752947854118379993892731926484885429900961056190505952875835480698488803485176153901468238780499749770504833587218278407495350645484474019464081352554772443665481736661788895354008078102755640269285532519107786413240875560050224518819604836854925641673899969484335117574158388798180405398371890956021760696365148288816295085147304744960547238510471213732227228884467313335541751634310519379463481632614112058230191064064324347348291323341444022828114695304925542021380648496455217557381673396185776328596648200480753722540403450985892775121599374556055747415687750064782594777364293861267163531518501976914213904222019039945495770345167904450416474191430408733678452377821253558499352064990859507141648882034371455749745987715893674589674761595400342547297889724380714232032726612061189687156382629156593375312727637042738920445618122749691530584305268698255069931353642173090186888678066550574357915728768184865919205057146739263714014549749694510116203795437631045670999166667378045897254599106089706096696074458260078851828853149826738531785942948566824436314371288286049097292403747912774655739504430994158231137481382312790882655165789164096683414320974131435113217530543578684265888892573852649199758312619913065922640938114829487311147144980313846076858714069004497961758621813701855450173100958933614827489334260765021480189162550246809470219562326683103992665192986974709201432690374294928267177124705400003276742224001121286934088788904490069917431317239313590546747041914447465509684499030944746228361191278966890224865710534311380585112756915272043847529566886546001452643192751418548292558309711879033739042600005410459551852471297368014855375656840568804255543077116039302873899546165645155761163446686081931303044320645262791255200194786677775465976754799983047729862000757498984756962787952282795146341986135312527687404718638137456547245148912326143396926668182274452942100312909210619344979655458195846703903071749347881482840694765881377079988590503327648454177548844292118817218320719698059364401387694533383586486425198019338259711778728899180219579455233581322032706658285943435049947274221936499322950521810243774364308068195512839001248775164064796636859081151788849593448107684090320665666534481970682453789273422177029241638223349789026641028543620435047682075095916666264898211799564633878579965551901264140982333051748694415997698650620084003872483335948986117684397316000566963566214204700373267858085143562046345266622991396535174517238977715336668572765823446623890327039258680089305633697824900043296316370943060895091865474426365938425153231260471898920720906643096461451947283502174322841652112793004502089242108240004340913916036797357564137459629579533555062694576705077164320832140012045351552013600881616834045443165712481920524194829860790071880602497487853250258485075676183252452542946186092740104542360097095294527909480359398047229271676131080138400403495435321898002382934221256389922366150500399425142562591056327670249973519366013594360774230834875357256753295633324497378556885810580711605910217893988597874133412432032017292347542034462007729233880768862873218560487216467501699843337848204928256584884088760469776783520075010137542404649238497327501649630570739108913314223515506716346248248103157858825660428297354573981337074138636331634000038327288732301352336480665568847310934152494846455316485571411364390202462340197783698924440879745712124308184752952070263670721456566680495189554450011705259412519415709138646655638528217926120273731582457814021609684192265279695657708472582307312026014126418889712800762523100787288865624697463270740844202046182608914736161675925380716664847809263341267392896674153407309542949407666535777314934443432055442584085273258751819817044104375496728140258897504264568155126932185524528990605012268830203285945303321566254080923209694719614425012869280736313707524341026788361798264274425270015273039428665477364399389490624447802694468826395405367541913478273679049264110449105905525915823980502772707768411062931020624669302216838381731195105028372586174960570752216208496786548696581802037934750260741646187608645778181475547304844615000376439981635735128856835462353039221812585028267703352713047961348433485670397159021025591309835787668956734165808813266079326112348065053943875589624231756171775510279951481652882380184890106072191703291201447406788704642193091681016071290503126863543642028098520203700737204817851334759578926355816168221322692553957725815089185425743623265937771320989095247776083493978187603697986967624011540148285780274209539823344751453134909166164465750689983429529306135135956005073812839766958217440702589441113660335050903314252279483783437090824310153555202074859998099373279263905063933801547356738034407839582094990287943061361070776086404572952590857520975927345059556341111293430073018508522361003829187702054050808531573208109397405432219877963670864815741680531746405109977013973852580938272996653596246961615694076755361029614723377466585159742743929883863651869937346682302002106800946221444577930850723883732372646127239714295759766220937290511958891623285220756720165506973425299746313720597777677991165198226491738158601821690311610126351981418768234239514637568797318584457702472182947169475701697085030555230292471682930460002390790234309972864074544283048240818635491809703831685143833954903686033206327107580636898575648095060990069582701929040841468724625249989937867111423804696267157444496511654691758464159944480356190987457706709147467815768189479042950167099643798378205114332334395458361542777644233667720081329807107948341529657806894666209765854084801976036596494082565273297207312158803516348578767757970933665462045604139826504686178348437221603973871705889549678403624284253116944460034672548727172050993400835229568635582399767912896156142392596499297880556415953507318119769541393651766036435837814570329203820678909927235805929991596972773597804368564806574957188116839576039072895706790900746667746637476408753775485716269206680001694420894091506117969097689145547289789716552366012568323467451152068098140693730257091416168766511589253175809499378491225678196744893787966045067979919673755575348535799202570353921095780085192762026021686743280507500060187730165273690672151722333807449817927260552109256749348026392887959563283901669676579522316358924866739389874757704745232133541845024382068018953504587586987724281067113851293390865936313296517288161112683161631372418236014399062619354544347050964888232088205864180538272488741805289293702241950521813246702699523048991869907777207800681132511710497858276382356369847236559500690403049691206330969219139491936819737880500075177716080450873483872513643640115686589190642436934212822836415714869118391347061480559413483456660437180501697391316738525604904635147496817129399480213882474283024017230538338592081883946431306444189822132361985534801006001537062484459320189198092501796921676946456781097368131608979874898241066750559401165254625121544635017677919724627256601500934248932186939754410719202339250368061863650719269025368370735432159471408084935046207872777692296387185406861729373579319299294321731967395051688786104405204325184565933549341976178374464929228544853437880153386679666219441216031348242328051187566852514826303653098700402598724234939849524145751115557393444365630258345824928995490958584589751611508427230708992590374608661665849410568563166486975843536180090484578505607916108786824402864286116112241502641912060891376949917867426945136848452007729200338486520587976837644394078961223754509260064108302445578745951551009943081042464893373402989293885113557129512571485508319910790991473019604845564761305178775241573450209045541686646940193385350431151833669114318747040607403999128516299555438244069729838053934191854457445528257601908432124697087428156391929205362782723269899395949545546604739434759435199970294358117882722604453587206676903930074655170888579296453801600251141718506567732519124012425603216961562635321573541164843571395378347519393305505579510452058806044371176029306408612485237423542365819337689220086809734648794974002737136306987488030426434215696952709196852170115495780329466629164632868990941213124447221521358656595859340877414488409913948144473339854281709920341466266024180312680744433957042720910565574082370207267306084785293781049024463620509373392412896749388159130152679328945933776037838719602666271939204137933235200719443900513544876976595598226397587882285171658403506008327439050787659642238733219277429135751905976885524624370983503472912529875453874822464855426701887032015569876260936973540500515658776024613184009581874016583768754458470338560391626059581323947109433635918717023611379853503634600601085499773134549712195097762849950622031258437139821697634630103089754770931540919548435120475887377474252626169866639983897997421838538118747425666242012786913978966031606422195292770762742180208604506748192789179971703966802302574715996274529379572875010199144239476686375482329109897200613952323130223600608458658588860204545944340016028339534853154634120860553855177498579887980109651328630076878768965843577780901487088999604908268799183278213202828006494142868833550563548781441009491749663764338767542635775081087491041106842336295319271788417938439131376562113874199041452100480498928081830098548675120339976736891069442554421143724071345626894179811836039600677615469519605123424647205771107448498744837372052939788590271001074942098381485684302299786054524027471747869749953080857709282273577675143560373315889253052941930015905944250803203686749064684896721777746554020370793262622166027853677669986720464757691377074225718404773121814511369908971677895274509976251078573745832096750084109385835760959839960403826053728109442563787343761130334660871274987357418931353619486130689444460283824137725344441332972676930329756666680976493723173144060209313126794163409075424087980812634579705439428018036777627152744780609512938282205959839962257992273388341343571083313769350499783502045891255747414891087572274325067709724029277405113356951630133403340643708374793260910773213809764889489562800351806978388246509405631141208354111384714069579639999415139042300898596298184763370676994261693093083040619662440927258398743177468297461602400603082654128720201428758625988080288862999711158749992426092601576485422029086417570756162288525050088188996934258225516597602989441389031876939584371394888564771522946310356044374743219815174500728935846035433501184233209753317601533215589888361728197729330037638956305885098142173757213313488889409578709779197375838670967820241390421387053383813054414516665133898864595877623839060570072977225946855006001172083233350664746000036985526010518838507504781529598150436806590445715315578915690580014369950760570732052052719689390563585598949737291261198095914592541082370408269358386682096836626807131922458229167803559311450934968314448775103541481601045836755422747784018230666353634631005934171948549852621291094309001877770292495644847852013604721973514649392768853304369533481160456619025608416682942448798458032508791894633524092471838207000880685643659515871064607342929523341891759595128763216265890132844510058057765199838326097525572149359125163751147491037395447973040621502525899237078208374553395370854084736266793780588886958440553004199377749899482659687855851717529754412212758539245912242898565709852533078811401889020531057386698556075005955982107069495176282712923403529011540686003913650136760333017299176137615936205555491383908964658667747975655903847444420474855209472251135249344386273830903601315156285567684537337739282568336113000582276251792395628471347567746387402118511713719634607432221603702071735898911916826271153520411433229474764331801416712166279022311311738378067188488726321559354733376959520935528645124380074995447751009129556876678688111046272776700833795927305775814899083604217864118101120290014851050995359425157167741110373602636446358102057212440602514236839067774630906478544444289593229013819091302002765616248442001160347809503130228127124473572161866487833320190049666058160385341910523630416713650268339074560029350889210647064206104493928406685125304824339962172394293716943633695931571894739030972544089038792540458009334459304887943209235162552447798364840334380688256490534370179488120674160986909073507067573930258274049845136756686054448988218991266069639572868238441724342890576447187837402829396009519043669824027262172141571905178931201271700372999345819256376411569113623612739939260650525343335764859251201452257442920324286473551223144361276751295575096163573109839240709285264157002213072286892755192489357901459796326033702298299152497648630225068242257977855342382251552060013933643865889767259154665688120125102015344955746378629105373737197157732515239206767945834360895965316364376896278001075321861916734416230753503211730022168154522648666542999165261751168999500416217140385394599505926780248952945359888077200986697324409817647228562626319088974051920816721099132349953360385600824003745241930539801316586277589811668582552727143779750974448624869887805120074341591182925313112645617702633066870785222866519107338735823658716530198967874959582166833770544397256347611212739916332420506200058347617027032422271267400013210155860029067459468336573686785031417323365363499802403402243025159374966533343560678965722318876982797511908168433369971419414074016028414634361225615415722358569081907422475787436778339113122231981776709440922655121114441292719823534844444873808451231414895667980529237315173827522239743078445886926149332047672020928461396526190063867811244879386279335287170234552902315554504403441177645742728442036920699513784706293089172984874571525200595417500948055993529230716271731632700010631715416244714783194888908349183519161302350392341640561774091332989975931516076336642212033110937667959113294803966690138710846547665565435603669459739202390621818079628138718477730668926337727720875730010754527298811568969821967123500155929428248919177687818759091172574352313616118856211014821246081093139558301072067172863333361496945242721788008327243410668422782593894189590669052914693329934708234612641524153384880439303835587456701929888592718250201146168942390782708748409584489522672696573241728738497668694033107255954405586337558332226544935291805114546853059052574439766708374902171006273800731321172536851136007424665731709855614475137875044818555779090778288283139987521852233583874547443230693128170399015104026918123854814288773120746616896009048319616923439430428128612877411758068782450955007138461717191542699065920602012055763122891427777517932868189841587573975672773460765279797956801752247786868213264072892967242326783053892247278705685984178051449240044799647888634597037707894421134971556055364353506217131023267344500862605437334203822965044578077372885356498882632346127243682730098237274501177201220507782810557197776843895123348947165700087099189803090972247456340467069716739635417434884717269361483507732113778968250646203462591655039193274285623799494925059241975379084449731972593295455985741276453625674881352465582806824948769169906155905346960401051125969905080810978626457733228302011576262900045756193441392545373484296909567868565499784500773972416176046563675958020004877711093365445362979611179968593127442975266501471959814631584899381416835685378884919023601775472777035925223334767404145690110421939026076394033188747904331548438638912440720678307715023300295668806535501767736744100377679765021314643395012606625861355437873802877644408675832106560209905784277208271268433981299105123235091270961319652372118404978614670641266042742169289579873938007515021740479309166748987832885128717447252680585635215080717781507136051391424041749987037137891731693692948935433104093535413340526625218451452959448557519249992206073965179443968247865927448642204006860837147346184886699376587909809609572223432173273659170770516917532062097429851592624085409190403774450465018820476419011578332939484796427704083658749821904759373384403746406648301046412886046920464373188302346788822756056022598158338497205586711906966079207472360478908342568496909101461588605219928427840586863768696956390558006121182523657397269007046700067918948932397650759401845181216003131168975459668727657016433676988442061739158870944710586329605690633904124605533314158805999690864969475352982088320679035839233272643711721082586295148202016141013230563033319530400877002518764285870665746813899756748419114431101245083642125816745371917723683194450223452357855356560957704513715821243785233090225012065114987017243420804044920110306735494665516424652136098712363516065658258936281951678322317048240733655301347203279799827269415304597317230670003684962021289126761325050951301951611510197560940271802986903669981150868916150897599790869569888159373465260141188033829035771969992443844713793887161151315146202799188075759122779698522816092077516044596847291928584296229471752540231927394422620258072737065287978583849382569803130684471113565488859373170611406827939551530506830563931121920857851519651107381247042112943435758554693579004687335938261445800034248729385068831446795952897556686096399256773782191174507054673804125258296638326895242419834907162005777354623590785605231286498767711592339846639247393452003358396778042187069146767203570206366957938638140836775775616584049711014751382572126910983426453975031686599509339883787913494801927188532174437690770209472421232956934955844421827717487745096763718349701240272964073169517768957648216525251479586951964328003630387589368665678689936938403736543044922715851909370795032064690523548747490816977127820577590199071470337200517550935456025214153771260933622653591130389884164549474435185071305005957088919031776304571411539221589518708226094096849540392998753136206997580330948675373808270301964372981612645218011216838776974946161137056341051854611053302261655158197197879849522880446944282021362197395552346815642982678774961428022621791615718571098081677695423171860639214229584074808123587663162355409580010195176153797023939053151453695031280678149139821762683466137645592858219121776129747327875891384442092588443856160071590261124768648915730333401529727117644794228981036698728848193661782606927719754420367961286575274838791843543709933432407456332166997362315233974246578167682897178823079177747715586938626255982716107223223770711346048258235297396126462288550832232198819324547373570098797435198499604340774352667705765097089519077225814736014094783939184238322202089580197901959723872411543469280416967940926164578911630452762727386123864243818147792026928661789301330783745804056762810596752747907428332376516680098863395915968276669527873464516622705118014877412621568414211446949735793646533806611505851244028279404439888617165034837823575480956801883279090649915666372346177053190825620535487410461172727409288979373718644233417936433898115491968914152930402151989533518292679732448770754333403062661224384453917573435356107368423284931131209936726332093818967003755464860221560865230034833763908453824743899318355445063365939041425666916110274157800147192834296909583959481677632068456896602574154587494851821792067914098881153592755385881579560624950254260485984598316821345717537869725169195634859183607430583439625986759907570195517452837557027069534337405450909579945929194576629878685881854621878918347424821180874695393409846003792373327175733979724058513593685072923868739682953181473586033863955521284748171626381595383167632172069598079112825760617363409691424543870819880165560443030021079455707366068684705226818054300590736978782919388870665240923881218770602554053114971992901123205652830057337000416300675820804429094118188124301975638833518875321691377177874045310877123821835137225679525151958320993952549262396770160890960800765418796708114392013400023024967584396479350742080404577944544313747688438390088257757725071265137135558133484966985837331791673613315205484645799280390047446663634067176694929757563576273370197122722077375695952017563599358207331132827588453893143812054460220151836956992865696667484777639770442035206304836882386377859907336009058320631690559882146017819020966783457871491688058530765138307142498486253509554958628439138768037199360154757625200237880363226659965260582993212276787108706356587060650826434166976373139832808603807356976794942145380122869696406323693564503555631108943999687260880662402158623695732879842331014300944978875270743423253119905767331527617966201855169733675388899988391750389314988912212022461187519546182522205885833338470015759416182222720905893951198096299925086700969352472800831533611453204848946597927440193109524935410656939953237501401507292934533193005071010119594123029136995903042892750155408514046595031143338465731196030701548146531615445332362849346210661786332638687652152788723916186140309841412289915794714418406805730482355483185985132567376078804088275060736621606247799871516190487049264676018194029638755603001669793189267790215490363300466194531370538258222298289891487076768590130380547937562082739363438106063859404700809296732265519362233627530411581195632474565539936016662499057403654062433388306676266584817843997215044329458381740633285878048720179757875393479745228921459520833661412129990217038721418526954470397834781340550959813446112229260557571414443074137949639196623271497783713683418297641078494897610671215622420737586703915020228507178948222014117007363227785966568081629573421599339156671912406798143447567223103295909448382700930309515055950161918392147770569083360611212275710545016849482338874700822362619932619352552796019009801866421517920908046163895407864380819704720088906658497355084701335051501031305183098342036585366771496758723114934797868742947185840247300424092162476607206867737540974245826309088196642707595033712709644940332109125666659253190043455474066884627032281350053575005394743478971462621548894014265332790379592447342630973298610338856394424208170193223142457216967313284978990180602562597586491514967922673636087466792152325765783600509861299993257486957165430016191180005408898447231880917899058173481226227161071789587963079329632966765208686904470563423959102392401707733154806415738049026599463813654593714369076149756014409252156150773329818121360273432502356025232859175564710981366901036889716460627313449285796360562522278718198133666602281615675015805030128139807019188574323306832499957626061159629416486860591913793679837449000989441230408169247036103022446545885325114353926972056175207954019584652344419385688808350473777447658465888659549739758612625041291244964327467217316742611384323370481535369481329355885214555569447485429530038582175876886343737964875671098742091899319230611025073539327166235604424000596932389240359812389775954692538582410951165871665704255067759548863911244179982987136813400035597583109824358685492243580166715506746493284901645847075837300448580196840839912039706763389729848068648272848322058456553529486276234795037791935531391975437510026760513039072476741233962183969569405183607662643609744509324450666443548708334201100203658625005222116222586909903813849562700961300496699591392553429676733125281842816927223275008822835906301847715742877065421691718553643220691841143540093959111874042387462094357959042591146362084460429440138418864328558402483087402771344149639578702593713747347544176248131270942449341205869776600431501339414788404964308767175547700154693905031881870810075246437070931999444854819351127689124276357674347055602096925070658040964530124684065479506232676065355836957117365351989297177579953427153491041424122045613095169380560191006216536916612267842975398680399642462330099695234724345457505746296421552669509619005627621425881558333172072195413727304779673124473728047873579765324341116579141800660035075635210686922804264772870129318271353119826251128218794665149231377862146404344992029888355745446619571412015379993168775648279664322528219827183549606072134272286821576345833390316103033254426803508892363751625331637218253080094556941067355135350793750937724678179876133677952313475555233287531696872573450577290041022749902511183105216965008792575072222342787027841077958473886497991763289250023039304710560163609410524011230529624783858212721835539385345528515187591273464703981353646363256132832095549191244464167299043516673774720084085501754842718894878054759664974244733066186319994087046966543872517218320540169823629037870597657353385736783363882523496174078597293626316046378357121632846569968290433829744429169458949229575108623701135877334047601418253384767340956487522674644951648531202125622288407508570333337767828390023857965098543547771555628061958019470819740205595366945609294628334219448976616552318058729503430932610955792608062778870555032184970405048938041793688797750349026001214610966070152300892244889272587520519867838913815618344462172386163456540560969193697355819589359696134816485742166133478137056976955737176060271066013416893228531127712004787719062851590123618382685339362787198427019392075027960894539551213893592562746572240317868641972678402047560663510353379747340705935609590299883991047849913776253958505630147773954456871450640349853236148374444426816672269285581935778795961842336760633489530486407231057501701803508617795896027483943214559738627386083473898255717073880832946220874699481091268192266628542154976551031465780421247538980160032595496406921528950332242015336579100538848794861905265291618035999313475410790462723359761581514174262350837353526896022522297909461130437748244917420021021383785070489300423102844003440031322743227342718095259069567773632075819707592445376516029895984563236268939321268949916605053276738648961133860474382375857445250113179031863470812069197935198305988544001214712989663877034895140702591293529277953858262941190880052571362743811443579248642799907603714496937492443363025104522875325967155948039573595654176025878982864021032700351586916721766084548629806395897095169139987206558043546343418172658470070314048592294016012898118708524982870160392635346143563950864324928082291119900516567156434649967167120897801151786468384472631046326113292345543962393911574909600035636492629878316780299522904277397721835047475445444595839975362529409136414795643234925405285229364210542925321922589918688001100744832910613943989944880458765660991434449365807449905660785097236370884899810634151454487678772630486864828242945535322850857909029346001717529816114225825693804385544828261952997945689851584917325152735241099769438725254384726491444364447034411449133407821850583758583099281992323850371574250686366083590379688047857671334757757979373609885789077176507191986369074913787223964765908318558905506626034926582305558476373124698950663632127081336084468763150122632334512447456281716991914252297972657847801665705322424747557448893342229479648796417332694041328911607177164351922853719571092475642802315968097729808109936177413034203311223765555155221197808766419987688086798714420810591560049959300740209443551130008418836289333931192995360178482183324876379652394316651617545034476834463316906681434146922713857371517261825997010886847291739973068197512345562740810575553200144692540319406847483191396963737452651122433464666023977620822235032973628975381350379172211036022322044255592237668779878431816455123401448916154301616466890700785695137761355905384077387197130670348398766364368780556147961756858376858800519598464969414277474690692495508941320414573477545068568254590645423839363668290399674877772490905512296404301870756645221438295385028657408473260308556180429948734067026246800924796851435661689653944760046956666456677216104125437389401141222962328275857718988679590247378827611103051661873462828015627857363097039094334361021428008956576383263587121584558888992179971606039662046388977803485454056133459994432537457321066900458339226382205543140246155307457835504041140772759462302390498795636768716659792475007784922183566833138946609366156569316050933860415050495570382257957122020567879441510869691512781952102684265431875432067849211560066144324495622866033623814889144909193931104432456828728536412035024112189928033448503594392207958315112620530921531448154953528976630331141473866637130032100585332327857269921164125711099383418416051877413073337342796816474193851705665281058258250162440582464657872483546570221234193261239315361535183539128140815473210747083352085715955207513008435301974279530704947775915615401647039727498084709786954831482662388280082165771377757528480093464829986493002921464448325552536118433237902190603165461156747011000832973669418019742173825451408833275753605893222399819435695087949571248414387233928820361206749270511059637400686041727846341800611985540901326710903921363902410413865656131339523909964110870414448496849470064136398091538221048667553950752918187060514564478884672208317138379899990270106912836204424062529933882590738028928813154345206211218054630706750820970368497341432504451122114560503045500676534339643563912219023363124306808274888758919189782247879337564316420659217610344303328168752555786545153855166081112615477634142822831469840845405190167063472913474882377915038816197444490987490085606070901339929008793845583736016517282770895344350756414183865662271122049152382737935069060957163927604500069813196482250455842360577886642869498564319173575663748164186935020061952227984136933126501794403363554927588337723894382002542303233198955879545320623972983872947199852197744055178498976575821290944737593755095445543578979953648129698200609962790559461955696039803104761866470872583938304233549234731495182699141228985777133987055772284211756673434315803406469991382668079840197205321584599547293339849181351030300342720912726761682615171422454369546767704765972489925773771706733863781096646848781684667936914888150890571536242359644030337805837895341605712323162443694904795214579430048059670186466114867641216723860518509417509862816880898585294583517554851686155795779150195889311614073111990192939305216138769144906905096412326433425979527187688650011635372204427054646503329773240920458568720493256725932357140940795323374157966897896484347579925729632359700114422255920933489372531041704515780111054372903667806812632206235092968159698652332004370684972827043650904425988702715564163324671290519370035463681121551419909534407916621145045372786388525644835021983087136535142538967698686813842343963601045180058446503424560949143625535993110866810974486079057270557129579470513251611898231646150103051875445295209048072752036425962809400907445734830511786356266877873272961426465681209735520369747724143072495305518873684546438984536319264575918063193967633294775267639507981024441871101640007297633351352581728443470873612067883042674137833928916555339728850594167804891096796424076392298388017671203587737352549016599538472843863529276999307930491177291769478920682549091179568451747329845816032817100448420076103177758121145414414181366904792926748715993381366133570367177672024908173351783165242063035980148315683148859891491863300931331693793822467473469004578808698315544573386518454582246205798697943392230491952904854307243655987279449524607177640626843192796050996763689550684182204765643383264092983795534175306180604770371362197793984612793973164206711503303688151754920862875568680519468958990050955836978536601160458866197447019911903207423480756714787652877044113055218169430836881248919696452100572565435980369257205873926515014752362888894505215583298733771273188013221060067516677029286342141755170735165214488381260196407539112013284254359734860227977775916643975995169285628799212382676896037310901213753150478706052405019822081721724095998639315067435828382376591283142100533323170155846488998208949742012756762373288693788803304873312424708488099707879623175415235162226385115440724220474315351270196292419287670241169886774234437894114342645976067808061262374313016691222916857797698872662073026248185495693494568080160595449638330579069993841043459431903837674747421936096887884820694327057556973537518614959597570364285364432147067297787677289349503208425098544985209931255771016791006764728612307964769825376980254852730785775440134349055432110667201419160595709359085151958918208782168173041259785238411914880776822558762747965819736796892464515298441802498517569525555840284569036799649225474542289771776237914839534294765249292249370758707334662139608048146244401414735546500772209524072606011156335763622301955255662735826539106261166702628052560036821160348986282976655381794750068692012680531825123391672714049457530527866511104350684622256151946042658179445076268183293813020294877660750996440275548560171432541694832032104600631100553793372467599842372821030664048877549805453419446102876893610603957089494910201426739983693958804454849667526270051863523365463408935159784223185780559471206857784764588089289835225379100540574763979757925799004049752661602295680885046617362992787106338141041606426930002038990011687701542534837692708896610492966834608524558718048150634081318523868611444013598413466563940905660984254459316458698273642850415461786726558427730351113928603460580155476338110768207977166214148304331249684306966410368489333010375393589883036547390117266779017227099556443058327625211337739758006690124083858794510051528345310620069915269377242705900746931813596902656138673510010477092687526329294605291180006149575196416389347371504641945849679882469575417772889998223409303146250933939949709657456618455343100999555381176904810105107086397448278891572854644605149615388362762809297727222124042551925249917006353298612566853575009457554497288970320896656052719153031769197699460358337253936544822045586310278367214791797276712761683970451531067350057748329116966125305574844951604464320784818041355716043275763603097160181504066944019341320205275867217995870256332553604434310874221837133283175047149459190194179267279622506816378618081785155373731087119764626965332238384029586355539999800643622838517096305123599298460828686139862894016909076819455598403491233570821001812167642332398151030137279933158994840010128261444514698021304566588953692621559362833373939343767006080474233164357824849059236449742244264270802052762915028330655542712587300787063168620430986754682420639302863967215602144611726760601161751352541503941556707798947969313550226699726608402574941200800171034697891318992843454302441147784626551758862273703257958511576946923387932205617259067711685935030908777331415519200160131721743856911345146302609452597722868506865365009815482107964519841208363034459860710898721998592136294253746433325243536276791747129292877718426216434233521254611371838502794010974812154888133357268843307718724203020295088181059092711105530056974252477042761714140622098438860228488482570260877550996641619815641914683250590905623336694365422665903461341172173161959749834833328926828830250101957567380130416682300954027820743262972985358465072707319001195511704662172042972737733117135310017414742491241820217021277318312988277006916396157591908738584349448313134745609401249065686747806367263623051086059424364932857203562030321394031862571746456737931302264384013752538680888760732872879069750691040906689516304848099134533611225046768041085693255071065635036000341626160003118487258119758175687689950484332259414133018967813099593546683065735014052492306819772607157872287747239567878913166312019528826240171183855796132950617958783178221662548185933119654699885114188988954010835779503408435466624210624388758747015452498726783608359300405703459957774065801629840245970781857125201373230362644249831285766979212623683250743682041928051672169150265933122047041121353608895648023608942650542335925611795102323402617199826826711154299463519060808463941733481609671300012676049288351150900178611669797866959664980250094845360526063232083593518823381677745442170650248815463882176830444361936654993499851175981246367941291444852087594206499112318760112286083584082475682252300029102037566232797952847565767499191885166529778262661533120971073947910838762374572545458009305565097125181149073861025638429770444254738441127516527853944333261366898028809228252485477756239404756920273083734133994558818684192268865076337260182874598396610252054421490544010809093796789584149525520406253220578022435685089543761836061463721645319053396845015787465618621723399789451179342078830133440839601362363681083750681031627846521472390465668269632094237675803280565913923429138824478178178731567588811386733415765409432477261291609373525589468605029535382982201866325339760028134622457629472844181680224864721136449113517751634618662870260490207288022952636018765401454978892999382592509853099805642559247982850922868865099627407129383842713114899632228051391456202417849887710134963488182485115935173367515001095277476264914535729240788279484636534692879960299387247872331233991195997605055107468977723363116110346187452075369712913058881810618943750061540341053168656892898399291760806040107436188957306561692504393725717648409437245803558092776991250461103282392648505884450282633338570637918738869000932118910755037106808213447827684105818596340735136517978987577961167177775695928754839541362303010562224585611558127507967383792362648145483016618856436879978344234595390436097804967816989833730119123781903388176265279148299068545965447110144821591497838878466396618062433134995986911327586951963255024839806401202045116737834454060893336073716257898654235114806778846354409786510537106561548868860497237582898813028899751530540827493422742685935684058357500424937431103602659827057655000023629227530814952504747081471880475627357588628963472338286863384638295125656241754796903795730691121611739663096160264611382491773316747388542026189271550694910455095685945164683579927950469354763037187060724923369047049413221724111220876864267200410377182058605128923028994047942885469851505682140097066641237942550993351942095943292368901787073487203038308203785878092187426043742770118035743182104400964332687680110977422571445938409740658693259836635368703837413179038701297135253856732814764134852861828097705833585348094466574684856091504638062494527646463117257933541312897812947954056226164977247728157701759024061818385108723552248535675200953861577639782842556101228823840469909311451285674524387632834524275564087203088367510091204174605677337784753823536805729035805430050889165522112755327080257420291021181717226671964183544573505684513825131670053377768323159552924077563276950491088943402811684944068919090645329241764334202291067911660463280133450065755898069480762914171551816907555202555516128598245274746261000685495499231509623905993432870836010913984208025428308535885676927495006752092917608539467259991185138883554699784471889656333325042458189351027288669697149412224899961175798543570282038009188029514330162818298374896453672339692419947806213502671258820505513179162019668719699343967120885095751747017400941420403349851343271129551341206528168674329968661351637655089947984681759778938661681404824560943299991201664543757606039874776054899914643578894280600040526319977172748367560166438744985749908567552647714224948471822518255065955622085733610795112158891443896070754129951442184687168334283696723391598747543263043389895557323705594767413678422382441003892707443346919670291900217091139304313282143200157657356443386305490004593811475150343644287583327277769101296017067345031766532296736201134742661335926072674385733734191982228001300128762361606481185818521343694284772128770670449751028043846756660750931188774586992167618081699320964395637691244555827687698873529541048351560994648543074814888577331583673977060507485543389566847678636326292884121760266883557199385492961367102307747272508497613193763853055297882507645898359989077144154867118407089084427405705501818259788488237025600688264783834181063173092731917361719743757206596124985778577877083976249527438623618168943725496437900121523773013473846172622440709222720829658601695696888503482912071005110478463813793943043861703118107344645545810605495034215688024464325448097058734783766860994464056543720262303479901148945182599409172181645460743677767951332242875257455170676600695025490702270136799446284664184182911941988181988950728907506685034061906730070108210493662161166170713828382505782329487793511970316112472537183653507398522017162945829451777045122354342322071961057255954121471587714605134849349671948256664093826837847491411445360609118418222944527466563703896885299981454944075935390833575274920456484385661630705820981510581716634766051791487141056908090144184480010278324669057896936115462174547944686333998105667249090952117996511662370971965650320621609215282815821887882980103231055801027879436002977785770465458870165546671760727780076024430916620896049808783278486794663271859966323591123561920958577351505586953247275606693151393423927325725926917552294573743465411802536589476542600798107566197893019241483746077008340915571357565353699933348192182989965433202842746611674475123050983364034668738526092089110973083430998932782948851327252690655662181517512993913510392390177758093594188707251559128249323393230932221982843478725681708590318226015372740705434969658378702863868087014202729225324835381049764565332920207385323260794965241356273572469585800806521992506873972098193109026342679006960389624575657384895976221888588785430328703386559897442173607133207104388851329113571124016907492956390942365305260349736314064614211917835632437240960795929220373379770246443435983277133248746943830500908033258466079457297616676034649099398474611917697463059559961279867256166986228840097299887523461721420600037189426363836074104307270194013428117456456693736572802435987001449770708916500157126440231793799375240443373406396101559098102022184354610854659089131915925126001812160462220648713430327489045262501546841878735986563579299928843708791203530144581660144240868663137351152442487331957802003509510121084080096770751881771546854438421706051954150471472939376010447391240257373738679182743142715785398047159544568907418920411596815353552525589415280506738496284526310284452729629301005927488148580608964767034933191538721958357242851584989579439244693455896765604842985944589984540960024984097305209375326154565258265866134949362015270930796399691803975332985630540828546084679588245315486538527981447885547205312490346795329275458863379057792833274377232684798855759352492260631252901888456298796503166674339443950087447899598247694434070434608357707100788435808109270055005040180143936390110893999716162573311702774846302095167242582136803923858888812850089141640785989055544114564721686380360760021242230336648529999289611966806579280268094015102091714928598708506623368762040942488559071226742922427345188363040267798187184686459976832529036954722865811752953927516590822172724926201425386091666992520688161548309073774697106913062380064762005353980351012764208048516835688835499749158606948712015090996223351360260940565901342373320091542405616346539296052583959614173101903973445480372307197735481221973342022321118856107843403448173352002045248004004120227723731786557177785686644904688162120334900717303657886075391971282458516832544888906507235914908826807653091014478057536675332168400409277783661647690567864458890587668329694247683209130575574418014582359185212907324145172612287428219624921548737080064980137325536544281739520939616631881668819495188748737473439936985715729833723450655323176874067925268345348974256091600744227470893342587923025384879685734588537318414109870730470995303853847536209284807711845906308052266156346503754879034133239668247328250722468027084880099261036169226004507665063165364571661359956791600309902293945556749935995499275263469773460590398918326293115804479851827297606178387101731207634601068636190737986052659218836576463991184062664846262872962298650972100663606799905478577954714721268722331025826071471584601955709545172459811449000207934051174305051083305867643932057855006598586985118778282866772880940496554920088690483786613293439771881308032728267971887177258721241555469627996157407165301991162863547489998089142400121763984851829395099779705028028574557749302560077864480927804108677222107807968704141391340180255639533367416336826328865060627429661214605192573434812313511737733387479951958364934152921755684785335085744450548468169567916714811168840039390926415611016065211152196857512825908320403926684287548936620894503643919603405228215693533598416742694682769081550944944974517284402886728517597712930006436832138915887987926106753260399218270743559778634823036298990568315652106407969762353108034320705321811997328196391961095012417297106561102628835643153733371986485400547545347809988227125489807384511197617172074256378369641553228250255308199469652316254575655639931739215883472990657079428460984284003430325017548371263228421945032165453926726358750443638732781216005937578617992414655259187203243252665527167071036807989582722873587035417730383556588474309358503443967701483274819694573648147892178260140481289805795623636295053027770468210350191245979239202103305731756376449985926958959483140453331517156628880709309502991242735643581624062660499318714867209593712254039343881483587875826904545631988266086587326131286228835318513516247810107094448991364860725659921009224120945600080196642214623038746076222067174744941457846202950181904799853521960568109765712461788998251558660703624586651549254646178506686788342553210853120198183900171905450079629361489073758336233495217839336321149018636994963536707021717140640798438927985665529257262072648081692052435730744108521016527142599574370486125092015471447682740962774783860016133085445848954187473833696220501929746249274113776326457707981581988214186847812577002061049563290914599312882096839021930974436111683717414644662052283802744375733970689758809980943497005449604555278130596307713084672403702449056294120395043389209846450788659136025926327555339929684530644511773712975160501227416507318816026522049298663834499277163246277659049483115466961089272376579065446841862844782031346942021703619010937844422472092645991829526330627873736507070939926918531409764243726549017658328392156153644506443680511490738571118004720813298737761000054036282565772228963661056226830304297939735517304698607924549263365993676639657575724520217808605593729142030153798389936465722008088092964107687184936010197379755774668768794596933922738999276945986794923971132443535550827516366634887080336817945715794452774506146402231242498147691899581351946852891284126275424748461395174841959432616134470255588528088462286796722592551705741328448631847105219112684286846621343271714237997266733289712025449842136728197408937888059421326288923833545500251887746099863205250690103534018435209642355967940795666909636921543297126483890579356049538322442790096676152300877535884192439463168600486192864298288221468256320902230968337785940730356057926832768318186734900063111015100601841484606136842381877451962034838268645452606317903123719089946220130496982068041143198643897509714687588332136833205550868217565144551316289405225004817784926693678270932180968092370655486250783469457464005411781064759765264689735132255454228324890761306313453774320981008674008325949794655660227863781013138962354511000685709618041624722858991994351555501081887521873306960008013328861478720989806740899060803107126799988253438894157514514003815380951219909328377734034666052241848672961205261595909120655631027194653772885280395823636953601383144142747912808362042339045273464922206163998385449800099137141306644382687917393041500587481929467549618572026735642043206239028944984562882938974483051125212518341343858751129559016215519394385231071653716428576219926743542812191336181410226407161228791736955919216608824281051794656896928474003591990166382539021406837542657090094904377418391928082802894070662843964063458401723916185862693301117210402423505877381108634109517837671770504578887301923473950873151724725502235982647645683233386870154956193379323554503037322657314239086631012668797951372839313320123829131238744570016028475355345201082378396946014896895345972892725470567348323967210546186273164585190416581197121815352823337061499448094370099099435709107049450065304887510029969830721981798363833557599362076604598182090794266273586085088697294272551281742200802661688221819896962160470481534489922612164188116727999738997597213276372720360578117075129984181212780726343459716163063224989611588977028535476523551692118084481385696200977860646909975819895781061307572137227242978695873623517156659962417481821633937908351342563766671369405417964212513786185962806910603181746275702727719977937534562669735272239942338460479484491533105447406103598323319880030324255019409014147709165761168860143566311485637554327171212604611276569346012156341607473983827791714797369719794835682491642380361321603162941485036160143219624344228199311556571831701309490314171160685915704552993781300473258910230496144409555378453038977452968789221390865462034323506970268464613870772964482920424948590912173080705236179127179889744532606944332957277838669450294929458819978561928807018294318121371465299040640226195805908024672693520031031884024231202124192562221566360921062745127922071545012667525654086862922493394258079675096929243077329743861677114166778347401237704012107246843234472460477591504468595187327487535579258125878975440111452441665728863921243419211513775264316168194932731907513536599126623285741019199362687366108455212048464365579950478338887130449932219816652205181470655319200924042552225425227158490616614728772923790354130519057657503470154030819062973180455543842659608382740295562920926010633044849134905003632692846004854355548537231306034673039199374977036874356757254470973834740738634395642159724952187700240850470387997389560232529830824799289799198251790700206796932416368731113973577917738257599363796604714013829893805350578832055797239536667263631808416893888565098833092180887570123023942614069087073635310065942798673672584935315134527459273456265459578884901931610371925196934061758447154107047185283599973371423490224411024625334649524920192166633723457067574299261164553856444398815291290139295965503873887665473362918185179995961710220356100433819982007760721910650633510138940542950023275395945364503123670931999087987037373160967189855666585050351407554685990203906084139624236709918297335622889068466007990741121397455369378841791006448637508129407314002693941388336978604034261078860344418829516634835705319303102510442866533153060921647640454534826637842458437814311087757541484786436731170160303689610788507763872017712040682798197924409054108331121424294043577588949872787528540252803404117624797492550270159865056686531627176275247855379744117906487213178299003388481687710023653767846270203171582890499850795651807956338886580869081708931185111145619958475023843499351926189433023764128533243332331708269505905651001797160438635948006347250552658744584209774772185685341258053607921010442226506930001074252065142508626736486098648988384230909010952092065987840094457311104965498577004037859408359734774651538997534521942482688331054918967709998277084752436420588736005796799111171834257481544707761595314934553212008610895206765551327704682418808865009732965765301873025640787110866728930364277787213226478139525304835115554286652138956510057427607126061287650541600429515408125705024772092192407125758291246948130340878720700417407404729716158035012130957932098447921394481871032446162617978607693580562081923180473712387240071465493951130885200895945489430095745832741250559403632007367819485884864425491880257560766016146075679213474678823156274988840740738904156184289226597299213800598995794648328806036567628901989345330651086350149804629429350751835481081773099411676855440171632150342597884015014855105861550511241526397557108946292747292510088617650208031885158592187870715898203176586734130251180098145770572916226991051131552144373440348439786878696450724855109077621430606232068708671891405420912438724303068615523484909973804587511485028931068454900154111171536115905732319210602391143378541512798934810274739600903368978483572773749784719126854320895167433957672437061974355479392577151460966091899481009621572269992492217704857702506397791814873128765398589299318753443648331951911703604412746587295697476933656173976283152545461141343061377829009282770885157701368568338938282006700388876840753603736199436934603940751986327210901411247790417049394920237323078166303469455447620831669227993604623445134680019212952527002092709966384917051956810964262884697361827525780291539606713728042433800915526377516852663278103635910369300355213750644866588652441736468077521163892963075936152953332302521434388467236959325644368339649833128408816579805164860518328197683351647206448234719181413376323625304331491195590352469021061339211215245396722092741913397818978862953864319505065310608901815151536529701749517983469160873335417996698744144522864143606464730022419821101902965880007152411411405455919487069454157057048043033271316512249564693299146413417842676901420144044633163690697971138675898371054733768435817869641480714372089055566914466443127282167322140304023327096766918166925971849683245130781510469837287492106627775770844973693352856484269539453414745718681730370596972566098453722931927450033157699739087451099963257087707579678970621457826060958720401777797780540174539088707570690052534343331719022571364339511641231284215183450700384878575656646896367085711355358908744418213661599243688655536276622627098435668485709433056797064838932535455716533516261466544510585418243033373178788040832037530091989384407786943919693840732908603416620075170081642897545881904634412303782772981481686190017058579015358749633666834828058616546047574598868007642235144837368399708011633715043816408097226023088771504340841436307404023037571977939218986433488016357271840974949216973806860753881232477775398869679086527286888335959794418869726561531549189569416928943671845444590192894805588918439004865080887886218669472674700176956845888764756986010366980843821331733867649419772653686165779312989343398658221083479493857420402133998324641005768795575796220396477393757614846523559716762094223787136771724750652343401906238358370351169473832630560343335969385774618046737580493023293634068238326573357788238176892131687205540449969710312235751454711059390509445018507972466989168911259709285567015680923723062999398402177481748710872459331004548000817355236718640808788789792105148825542137441808522393797969487991584619515457665934666663490526749121609830401477316486913835158867563569560054230338089093731047970543528074318472791842633080020866000961925243841357933390301932304452195490441359848927306376712910594085447301336949487519448069479889373988316709419467155047489809863342846273462899760527145620207145051687879588149254665748172030770672690508610110420900568861201112562974280578390832085597904712967965300389536010177744874481927057128879524838515859064497683845632680920759647797030448057529936309022991675199665537730072442668410268946646333402867803494836910653093199939633640645786272810665433569639423368713175894162619155917447583588591503440963175433465012237935404603845016093436909484980921632266786983824164356559690496215007608435361219239144595152773999231759379006531696575048083567575848872184744277447587916084366890981529298535038984231670415660255994089664836233339706853605160955263233085611497637195970599965260351154414575065016530113353503147164113687661716010894664505669823648336053418581988483363145661375790285427231474697254976025629026387767318487388426110437756277726555012211279817564738055554578944282343370932607781266750762448106820409246417734355360855810452181017473373176537012263615980823079082345178171554149216187893279937628306287284930360008802616867137791534400435954344480523297084415135957335991624768873116699962330846535299359134738117899995459516376207720276857783145906836561558277356104916774405652356644353385878997141212813124412254673640958010369299331634859214287694652058509955785216084499171685329135788499582175596712975610050376642434612422770776785125955448307460579150046382133855631082737712762407007140475058202269850476543263769193486377859490321436559998696649892441132402761648754807346867573244541563187804398739269015415099603998241371152996650376872557209330097896223563035297187942581357437596417073701563524704862143559072416512020349529955737373598879143405620098176119209732078435648114794041206370901077366841432465615688662053507840772471438999891736421833263059416223298679880060875561798055473290259254073794408331601278969947550721204408454488907305023291534098290549743157892445604969785989224154953142420096151170508689337940511167873227911308491566687210194121758824319921275917046990211749769513899707533244903271293259606526990494463388384354879082486913218605837724019064942626764304522745823197788596907859740454573286041534742731343326844595961177111951347929832098162588088112455578811561920798487251318189993478194614256905565816071992038381248235651954657431632574308125937149877910677950907040631446614762658358503845189818642929412311609789855495350279217639098895337030754160731944678683156716927136448550708558495353860485296140284926878295766939886516647692905861864675891490452430215098385636412884947327469624000885043446412638775313606671674134436716315161780300510842974657239253877453532425888395106866181810111460637293185045911330357952496458854142222916814244295888115007665843210199947388891081468835766860128948562213782931964186128830844940667004943193467980717699896893095335282957299824582381640660184156943054183154270019778619915014389623522513427854413736139867054228647871981375498679793700396165251064440580668343641689616314339815967477067535145672015672919351573063600432244149776491140973839531065413253544227742181499580617888302777184392213679767471962929023202868038821695442238924510590591848527242229597684857287164504418681909575089500868622056843708238247670037631913274569000001830717819626285171124784034522115105927816040179393900815348773020546701267309855009194440676723010751748661054855666578078960117642631826441620488601499119566355912087677871453305643925380295567002482967723396602829183139682674003202118852270784681990713755239298940389539308478397903913971559637537691426203018905679994689056353932793214234941632544991605088059222485464510235640241690184156358488854291932432238052927511171716805820070712690099402154924985571029270393170474626996870133370532281749627414843316361191400229394558000244944580949060165498486414398558339273023961776725028511684363242135323323482283322408903736652212481254590686722907320342963282213252362943466063255564594235902719144234576482801033553477043189035025932916515725692659025146731263730147547666562023070621610627870487189623953507255910538810133143097869930756521866152374318039045831838497989778867507343508814174328841513366593177142171866738648783204392417716505120265933943488871246905309399168662120359334076848787413313330471548027449686032739413697077270123007934898361845194125958485962446268648283538986093455275158412135288328831534471475036715019201751914084565176372068802557845017322746256751168109386402222572367831172958653021336460831092624547501319544375783764588965848369630384165815115617890835189223191529469662145051585394191736805108502021977644179420725070373402821560251535206019156283068179367964676001205068052897148126321806890274403130138338511285173625868120235573458049745323508966470379250416057163551936064286176886364287483928854417508019340887751668169437031513109323957756967384147140926418305095601377532975618634353810360294265725266810765284112738716212919465045145302678519358756814277457384968454476777172344150872414279448451682869686810389718013324490492308862988848437119322680007946197245537008708004156215184303836052281747411761909204558671251865721341020332346584357908196494167355465928077193840899221684865390470994573424359986851016424428181067858938586720021287214009164668128677441350692071314260604122958737030479170732817010002077573842548706642447372582132647781578323704072906359661793667517401986467687442626849952064631110053178023464545529006354013935770033642182082174240910322904715602759371622362215938746645418551272847068507562976627579671873254155876431255066022242637091480182604244650318496762661643599599176039230945140322712225712916974721945309566658786327664244591535309986211323384285051555504298711161056015304146921644525080120049296971553513271341452821098810906465584701694159013413501505191905419242333795628009997444025622998480348388304014923099148282212376781043673187691890674943904742869331533824370577184417889808863755605210726685772519178834648408358706477146147959184143518189019250368436409407468267858306789414728611076544903438351478962982975093047638873922405295130005119240666919222121162031438184422751443736583930660342496797421964792320393262206605258894403987767274763614040821224001755078429333178653671591886877417817051765379883071782512362393266884306749416588120143524687595335796154977888549894573342588522818384914998234464580818092131142030882531224083316621789349564919432645091867538719677675379698873319050867617701337594444753079167664694388692325392432028209112833449338013680567422201198209233896950230687917496314712719239596453172891180492275748658563256581365243543446645348466638772622047916780232045673442007980843278541421141687185325629022139234772266125635257949863111578288749803145573773447404908298912267883032745866952392525633415353477799216393654021111821597964175891748255044728029531619483286548477024337345263825785360686208124893489537550425765328916181529165168378705624872086556086780307875373482311987326645578543263223850137021066460219449131727446522537873322333320653291624942730587265931707978327190366933619834674518924116319131249659919592768626832881282529700689154673330558694685823466860120655433007025052750523527765171810544115947428687670489692146945100634272623901380492364498996880967205631993247931235318760300104333273613207189825785423591612226660566741198972405690892915704812059433148990233466295242449886630034585784825840612000128365776013448733192562198557687001919072488198356854480984111060985052236809097809051654881454194218820934567127760809881149790292450703995010033611642236201990262846139939253071171677001196429907888943113853585312504188179708605411892830429496894853352169339648473824026987517398822472014594137850251099129407546493973040466153962958457242742320560074411917440903135905606311778619972292525987661007437720457993698392326955132758005194748922098150615923833138748002617264785799700743679559167681745285540216297955493991014509397550682597848875818963634297592826436579074210675763894041779962131912453950358559099203645150360333303940471366088562463404343873171635503700815131350662059369852665131641253861596238503275482295327570073504301706169737048363726623690138150999135243510852285037649749676991863362128516599305013166314779082485922740297577969867973328346737524234061617521161373501415791961207743831932785845200560485579342425957888400297713971235373323127002855482547757942284980274607068641868579656101293695789241418663630161377684655188035487689555614646219045553382285077362499128373214593033253526714919863144214215526459893579701775462107476009493599948346096465441078710823467802772155717967152006628585842240039688718442493832623532365985008292082932416074377364641316651520807982826368014393042066953255502592771766009945811091428703848668202369358355295182559651318144393116384672637971953976500131327102060022159097573596444863245097118319298907171802901543632837370997919520244336470098298886381785864778594997190274577420686163795310781671696618456107772708342423307316212946474153592934860089292895094358612738852221499992430895546569357715733992407612338338331938941817258412174943980367238494739303010240665120562910397259518365356211113877517929116058076180509369481046591408248958739593705594665763429887463872538972931693626631410195284116140083561953424058839604775880551575127969927815512363302448045160020299270412814775964031337188979534757071104967067182699426557275104157931892629768769650838299119604036311772858299160930068696928054106227011540296497067326726990009633548191775254235409416148160170116580075216132944947771583400243999757027952170236838898896614706583622873897852913809125967193000365606064289769871024874455645769213884287420065885589139526218936543114151468992685099339848963337963660904697317219181710408484335997654783606858927710115520842442439286279900175858255865881895505572760123060323118649615141139217879751892981992625108307320700899855141134718092002508130237017056226178912070596714343580855790900774946241835150508268277342092569999899075599974501809985247819419786907040519805490172891418810436180862121371941528225947531275144045981497123710237090897060326383427868438131993676554259375166532775326491584063959254081369712891966141718990548694523626384170663819335961708675181175429577370806853682997804658995737062150293417920067458142021236865338189685182556705174340185548767322777373450643794772644174484973514751541850675922006977439061536616553660193379090694138069855148960512363481780479073411581867171761740288271071817423175798004719036314973405395759362350842943654856060723130043081330913271916823993440759892494503956568231384751421825560899478260357986212363021212208369027620398319394515544465846422495749045098057132758083325676590334342102183530493290005629332968549387473625055121846490957784741846416039347255585538551232869417082406465912117859413496512259318301945606154934560769417952573053035360027045755696259339814807813394588317023735553515615508688963420815417349613605447979659616874480272234884597577269171450175555901124834196998442726768524828178796966991563736472995240578508527643957050678910583630176906063769319734298458699891457335353109107975922156401590306800521602321774708330940356652402095897433378224882847498512313105138558178325776553863564228266326256905252711984106206388398033195478087748643340807982074310022019332375458591753765978154820081704291914202602029108993065665905772084098578734329967562681710112262887812081758099501201555305096108739884157480044073895686959591586014820141053414473202945389805050282630021993619282330244773263231334589115375420131427662391814650002546524367648192909794973227545656993176416512778441856006892249111057195147808012058417550275274228699001561037733564699835728550832019564840917302098942637223670504879506783197496925400646219133348255949030164316667054309584799198943074344415934273540464682305071773474711581341580499251991324366694685341757971080841966191324273182743758063467724167263390193659939032270121257981132740034740924407225059294233738419047110769215265513959548801352356704519132683911969213356014266637941297438524135754803175205624699868227268658153244320390959850930110778741292721450174408856713489880633257852314140808120487715728802696288725856527640416266310239739129892419275452171932570667566765576747528478708378272566085831428422072292859785239194412149935654237812548770508848666587741235621820603402003700931294836832654170633375118143060586894779357325962326794585061296580880706131308837844790709363606866941204277709135385656705167121564523967113249121109913519569336402889252163181299274772907030348482646006477287404698004403917613498860588409636010625833468161005196130568502237256465782217099442033363795460967424151643643255059254724769399868609202621091015168146950658319653820385130297605337466402465407609863690628181612109413989747973645857346580748666432029305719274688937666353499726218868634388977501116506553368482883193794173698172300714010588966000546690368429511680523569356596366042271595830356949784728524037024349724775563791037718131188941385862750376486369474961822065252418961253820469185000338395067828003707291950216690091100848408738986274487698509525896770910263029779230900636523684482317592649578071451904427634629292872841356989913953282350087081231042648395409481143774014440313620831771710236268342333740810299622324958365464455809971553844765471775761270331702945681124555807721361149904077396305997097433842759422073297096994533684034027916866672460923458838873512050850769827371062449256395029588725316608990078086785368741264184877631684117451494278357745030147057889661096259874969108793991645768088107012945812151108381448090329497210156685068953590454265562651477861749715197830493542517762157349933525250175325406964323651420225877262164464456266129097921346887548683484402387455449998042090591538359109705259348634987858651666699809776132532424594967924281285841977302527546645771881648354840766311677084895484660255806604571507846031831391863134934458950689719073298511676506531893093119653357271313658451778907955295749950030362225504360665751295873205479856470506847451426221178725335172332086864328097947193940779709006866826314382811893879371097813629317424063141875701259117597312220661193947525553469016519429748378903965244457320119704329307772590354905634197891401255915367861212239513740716560265618290111150213857525347938109251485164408937125456157054858722074248781037365612689594544535485274520548454830500028892490997587583627555725442089659762071413398823168773105836026281862834652659986180956555233815904401782142617568720665754876217851444939279196346464117603948911677208531295688273359705746566175839256592633598232993919930750666554207364409197209589499355032040787824203304058049822615005584316134240792970922635084856440287975132662781411847235475482698463850002071761039386327720239147973995478009909847377104416599527427006514878766481619842567420493109349634703844678269027288091285156117347495939832010642953301233431881572722007504577567561266761913038002610366086526533399199550297128009981485555471491457251631510556107801968605525532599114150485637549388000851050911274898672135614064682778812411948233429523072233107009047485833807957668574667446355558513512485371170379275468877513781811772926761953042908867363166309014218658382409556181461508726491585949461847543917541408130748598064487553341696464758089187762259818893175468254836719276174255125960168446797635210506129806210027376824572231912098355664702019873183364760511933222285923256460084388545945115277412966551166168962040668568688031596397479883137748892842833218269735387024617497180640182856734332285736743776374738957809732448100104442621756518683048638733738019568970908196505983389112342915600271400380514842386302610714744193747374849679591344305304685605777644282241208200707689722039760181620521695523333186799177307919063805101966378152620539640345830288668717633379236127143927873318621453296056305659236822028522570847645546441615317129473683773824051100341260952482578288468528102696612797358877549072185329558830964972343959868692710070388388801521808589831751616217173032103639621932254897681916713907641262627188498352373849943824634399890019477757851735429351877344589392570651712977238739680042288545788672160008864458183487340689569451243711386671010227267504509922085848885437612354235394821681005093751946591820292402695824702037280711744963854673423934940062122173121216792974833464489098524851122333477481731090356595994271790524234980284045708551153936308526850752723130485598402851462994204785899805492131179926696118379845793847930183533588888664362558945914855294712932033873815540036022645117987715322953334303448232291215489356213820785769468247916504357540253000651803704308789133507452865066124170575021260699051743045568985795303279810006732774823443229283306695664025595950404443081464501386426223493759601618394582247617607257651296792528093319662649086489870112538478353011180934785189185260607686725135546415535357967127896016944177826850444602200502357759989982103058624962678226696234845325083708131315052799082120268231829801581171052697290200187897659014452024392589646853161160031782759889168153846822780064532558859799751162959710610818083043242520493821007313029542203602553828454989775805089633467694162593291174595799281835937191404519065815322138531709228566557502450364581236522752674641154382208840692004969238292653748710479137541808118205108052964612854787588605904860035768111522227044113582523987809283564303542916745267865056556678808514454652557230814582818893670301570734301776745172314163825328114740651937492040152347687792813955997533324073240846970554480418894939292587624165505662284157818307527346636629182703899326646042405819939599066005660159562977153025238212139209808627053526769000660106962350885779133733922275576460639841856377190117197149410331032180246656655080211332584385412146915389760328747125804019829435287114908727908768923004643527531115289901616881828947232847804582079261876390796977900971336603820651125692069437853976374957176045809481634861166831937461407634721556072260716091882644664642946213186907472611543486716425505698198454597402880714024673545498248968608901138314166983947922225406442560750050802189449237765598793294022621964429094659417233198848169363709646771965450055145994620020682723511300654100444781476201729683585235231519874970030488628016527611040554825276230264806550891222926030314653586378751709654010908226828754767217548204258051395661778418813754537680375043869505759982803371355903249962714401332598793547901235667064823708802167411568454726880734851726274179238227249801357620686092096834604098597971975475230976248703073872516130969044659289109672101510516215571526339954406768188553458845397053570518425408157826789862478521548554842751217322105248926955896377547320839671773476236962021557070027773816577830740606969336689651103661784482594571291334495803713808329326349862820668891116222724366461172726878553210024149057569299338285702869695034028398094286388580164468145708628969451478792591497988813401677605270471711415746461080654766046394348514853586539004499688661916714803064156274363728436284155860416030385812669930495600951119772504327294577974371955732298159528328005167516825761127987455276802018615775279289917275735598316575749473026059109387376291837471029619584326326308561509192295751480417207860770846411540156948682310529403114502398577559980225044853363998458306402711224659231155775050515353994522340610232924921408559890044595130713417557719061231900600387374298233321673563133929835787421151570546513793598821867321481722740936752868798971381732660751209527249876190710376623756527648059169809457354421272462862094581958027489319723874368297229294115270749764108242546142142139639912453095493040636694288765767859720469613634447567618972611639524302821627740280307512471416684964023521151691632549940298419790412695450091638143504166317367554918048901106525593962648953396931811746469548433590409764262265546182650653584981706786575965804118942454154423816471109227980467434446739800709661586701683444233304264110730608874016374226891795977655666031518301775464671859851727680606175344901303935505784842573818785024169637598757988979285124094704320004064551191357304083632538001606017968800884361865542339034811854481278888071729984641373744644223859554222598507051604107338914658815662698599706239026905988425177755064009237019715090495319116618167040924847356382661494366708024913801512183671933059054290464920339241795023293489603581029045510905394725160825193660649396822755494299568602550801796076338176114122656960279760551475345202118225653927304583424398076441340352619617286429554186091064040462698040603361573279713806316191818525966617411563537114416008035139417627695377066469412464811716025026650295785620058267018874762356693028150413523342444429190424227294744855462387100223749161645412250193048481421522102107357544729060234032279807025625364289312867258400734291019176632616464026304093226787669304542601457822236051756419661460053467442545645675245970551422706832281929502843265319755484363072050602390266086818279856307349919444942416342861695624400716169851233626796707179763890449152754930440679165235425757991719191155957619398740518337412362394334381429967641920728667211792064841453784703722951660869613126847120560521704848433933626726890770715056742709638981000822940010985465802475644022238282876325969421717290145776731911911793493879227177952341342484485483680265866371585412095608591784721611638362264208303846567358035656735439894174773479177832163640502031011180865027892539462335794127829638792762199620184547698602742614083199853382698058763754792660369441580359986681930405467387070175645534469275729376856210579760354510701462986722978867682769829163865159507650044325371377265934952085003163342069919419412549740948631992347859236237612094560823879889227328089615502099743507233256078758320868240766406810614728250345792761920038482205563634394355694134384381344255005720679229263089920923604438424486549801483156447398744290959525027859170558809350526303343809433249641789084478344290663135140906800462163025593430091055766281430731682010988097002177402754646302110228841116822865703706404657825884224168305108004673505467988187201807440556306106153276676248203575674086097706395611994842089350809728059992199824636217263070295602641181755417420196062770967946334747326472385224324684279317808941366560844392450027588981412764549136977180866647268950892110043401537800890443022269360220145901551418311027502691223506553366753428303457249563368975422009934108193184321650802666881723514354987914145591083389795237219068928643875187360638629628945378375947593509407675334127527342679304250567895709372613781142026211645877079272500198116553461575717766860046400546141469212513327836752035876784485336549397302546326353864945566995521336389151596351077470472526319237113705558037256247899102160572484190659530777802917830580757568072926065335392626348193611691121750397484030434102959750338597602915063225309448015176659551178507141591955603194091109736570303439371106832311392168545948588647648791447795462399792262352829313622358907431290122615856454226749073971493614813382992205498659534630159735767337373411192313255969951800674209142478913546224710824900117263959436029982539880801411588769726379606948158404961180221848209463826973750590137315169609117916145846081448837771960329587086414522374277525272151178435993681113650155858041862973667451028321046047686504663363633092208535162198877637147774220908128489355033878965537673808506817830995758225150535682474930679568209078029010369980566811289739790811276702523645946231201427152324869552289623607827422891494582380936249459541833675445166914303743806316772432784746388669692257365718954572408522580494969005424666844086804464780545859998742852307598996846743938803518259148528854507341485154012523612959176606126546821324289394934752175927512261380118587502460701791820174980969295212551559131129033976683654176352906424551308651244734358656589909016913066439424696386553499223007250420140729105737700992180004407104226772747157231519856936976625117160752474124693191693239260724400484732169526409828690432923542253881736771831352859123858827978951678856809437587680332346387827088610268042722118109654541848221078072557922392428679941743898489438146562995434813549246255174215756122360640503016352117931639500770045482199636444924343243501778724453626092308575342197496223698737815362212208059436104765891012540167959480184186377433165120924164392309459337897594756487660261002631825562910866569938144992994888292330076850973375381252732177227278876368463627195499828550312472494465417932974955783937086717717734583966705956693296660131969450810148727227471821170628628337655706951767503220265532644544861894092054658726270357026619847695257745269643669560336011894856879711600714324549457823635564636166703815822229998570628544199557015445236103602138755376926759930103910066121618459147173191748734988159429646152286982142806443946868933244998546137689315388382253192788167381982824705260641897592905494373391039965848939046689364883984403121825300113648965721374352472177546505835959171287178057882300944220596368131239061116482256812359448623326649416871250523603526666158951804955276511328428602284417160794772268398287108046786648101969001846687750307883163562403734496738673832620563564044667999219666954618893504196167605103368483265408016741096106666059595987327890972376488153077851086220221062007662461090522167882259189084333824379562622974028098189319329036561159168959988384193639496652530608319112525429183781787947040323118095210381928734499651935877802299668934851951194727498179149138815718455515207898946847402256673199192403281135992242522376020915124629138390387823178668140260599002894523263027841380188008240458750116257805086981810187305631813320955204806458089518311443726507108821063404941546977493627164979679407976732727684142865317822850195550172617027625931976153595478560521682283415867512613736214842983750616255416506542388558634026292568713532178262358780594520191104500334923927829861414426443142251632845448917107265385345050891178077568076654667403092144262743110989451432895232558168612710458669761347359113794901052904480068460257224956133997918570239935699313957999417534114937430755066100135266987470859559661677386141808494096010651238322108716120938458884491665066586022340844075997869451746734956141985510456951764510931098189253990406645671958020479711314007455868622536990148422815606316221611307144606612336190759140672263550080601717708676094004020094473971738202778935121895998222736225210283703923482742115039059246604533858547675070349411892873491097037737409457260955567107008286281463110849569435214841129479612287241183730125412370126389877735072215450047851635388879743444419469747478116301431938663236320446376518055800650937206130849011109602725146999136806914152016016898742636579245612407640180429774343590824105315653327231839961094658534612279940669141658482098953460629402963306380297055705710533860590969598842912693221981719707671769182983265231456942755812844992135792792553475055594325434565127878216300947812809631279634048463805049991678624972533836173761565813541834299373241942521862368662771542859191840263435495613620357384642499326322688480916484736862180213899690025904921318092264985604731130095613670485984280950533872074920780654841856132078562103645765886140312167114258070668218920421981100133691645984956143723113202355844058490458695649287708590052081255934967256820610590549144547056312357411836806912240797027171990976081867278521676534107338864729721917645287537158920161131893144131849700451704137028404899215427689635823728723299045426466619991189601924535991677747286737000234160168586620948903495511483822571711464537812167683845714989255114335147347260881281776428227741379609714416949064592429037755865063760934779195265818239091932629080078239138711035834992240175917716764713993465615117597710157810974698197632854191959066099437881291882412519827278625262500542049918398785150472394779517386274618491535073845829685583394180679858483041991854826107933693054749938888311704910973428209417641678557336821619816091853021734030195408825282605942460857111807268899251342139318867456828454290847601706303099858708743218905706143940085780022378743929115594795634061270820841374918749305917478550300526356693579638934501963186985179452872224126560653507175968164487342734847449736881116807025127918218382256389668828025502913294195239335128337667310580288048408737945380639267829641817477253282914706812984816395729869216946423030026203440339057904487150364940970875354514368631085129520147406801162774911723522512267327680099035182292737362663671717507527930294659017543564658458888536872622803476771267098084800879789683497948196976669248894922858241673016793059384822211604109658757473264192970906041845239129826443373039248438323517070064965956460899030076351041921826546179429309464954015091252732362759619001643173997758482382481683806726618756614684085232388181322111782780927505728390373219154388552845859398819205872504869864858756655635915888017248742195774054527513066367784560005968862288209267042710475701442707783878746874545548552393893869757787617286167445044820538478794043049969447242287919642618427237255029302862362645872328055307367130091084168186460225379691520076942359347002800212355309876231166307201313438181765084342875798616339520207394464509484169142594702141294797615371265158564420041876560800007834662461822846407961249661221407116684174845558809623015331623880065696659519666655329177465033824461782565063524228370725225353619257066126919809317368638242800295188335263951797532157462461863699115544028866961482891265519335320788260362467549437178259739382241567754550578547049026095141674348865945611778694072583973731039447411413147044374893438427542476080352311051592602985594873908184889914024849187882862378626242427271757953058946076442908807568447791804820488201471596084905132508211845476577730063280078231686658298505468499369950695702039640800694960745035378329405229126378800538262406805346315392119689654123692404656640895912189758512087794819724489943840206687973976459477538434956592533252328338896711711218155102630098161113692012743114046154651313649657905865029013125122464239746926122067331528303397032446312286936650967826287408944011851774781367540288366861742655011408299923457390619583496072645701030221251057030416287452298427990576143364534829373388471388145869239412955167044784287023471342783548270301109950199694966785920459546319099386703255511037050234100952766160137342934995674992822520348841905339538777606630181427900019243668468263761329943110467136538631092409878943043249330875722512966089653334513814299135817337625958818989131875969164014652864883617696648888223967995987862855629512116691264430867320158505365672770986146041302761763776773129741498956058697053411110513331058600353597930209519996949381731070086102131118673861147462866478417694754071348152223260821548257486583361008364669953164450103125643107084244568239301216447342339662230339888871171996726853889845416309888067515165800841256003575463880754370064848227272240718122744231068888675586508466086703697721880188530465332386049105917761070411425224309099166530192776876614662528658296182937426175429590430904484344172644662530487266835134052083522174370649620299304446252547314186575332903094798487925789222446820720273449451421266653436970806176492668552667730539514966822979481807021391520981200238422552086092044748083679233389061225486047505823539392824003995467991093138944406303804251435852354176825487813663229852126823301807746845080606960786517068511262421667124672398023054118500710643735832720825077727735887202630444940324980155957423462808112103303512293750696802119789854883710338996468622565268747654890058453772868818429627397269210745691840835814383216025904185625418861249014634232849128743947152702794669610937599789978574477334765594243203299483265869592366800538573383967357020640286242116460582099792760348318170071308819932220418197553454367430618841151886322129034383949771731013871935205600560328951199460291901840892084729625035058116375096212312566833106778115781013718039235157188432833389454246335447441459449554015299960941842955546803994012863037052955053610560901648264535097450855279850915071521906196304658668946981261101307413706996467285537520657685755789657256215278886304827454965015306863795526009312829328433095311393202482318587194898829726679265836771242320257177669563669149547765138719377397772374755256381005395264591240508653986060141957704153605703269709872721127072246480364226886958644971589818872216614186672863304085339692564090572378121473451607472435016012505356298899378531326729975321359239332228563231593618090386142832138440219545659817873247201779756928683676586035052833773114435073479323908124344273451988191785939571643026655010214813625799716062821553388607723405548057173542782366390930171081066038701855129228514552241034873452691320976180967752086069826521907077524700037226624961368470316644888217900473078433392389077921761388460113280426811646848080430439675113164411283345525140444614353071223189152264193069973214434692144958999861132318538465489755618100281368175724285851358909943512206578376115626393704128939798380911888894372775010924129723869578628661584663783661311332292293417365147426679377858599624095613814393603239042620780088060945449636926499741267457877634052861668551118914903540630891427407397180839532384712024241258453092029543985321643219144165566977762912638994877821146647177011917889971755402425737625286399649492641483982025070650172106532025350862089967655014586931978017866550582813257038458086386007725560795501840338104389608654357750328056095152536335294429635494245985310346083840279946204934672806635888075543504177617661407852438709882435079021131778173382466939722368344833049969111137885584704971640928769973414079937184583180369011919608714909937228372691363797064809687062835837391558114612308617783776405293344291566998776766833682734200392069487154780179528966213900730425835885954386424755906026228729507030903759808435736509860114910724743326810279991704302568497364089573637688587648128297959019117950009256591985565307065452362753910461718835750853139998649880760010361650684959432923771141463098463074433914628699567181494525946775152427652277276950472360627396934321818893368194812662434949869389732846086476469527489620830928221394094411047946518400292488414777964536357229969158936796396560869858089485274500673990832149173229780079604585340866558411909826625954928430983981782557431263681612690411234306885887291979849015471250349237833958540789027962728697587018544750384113570784574809231243913441400467791847474682553807193112657417952739787339402769485900264049820672271993921762322876956789293739516189152629286313291696717240334084354732154784392855928687424174152498755677004249101172244010644199870441260569609545693371806107003563062700625088310747569357251794334964718986779947697902885484191274994951205468603566854687722751648889456860073314429460722811097037176917174108005831733071657560150178317636430844969902467447706311387207910412394223106473525386377512521707826448318691721448196070362976321498642967571596461373987650091999508033861584205741688923819521830673826359848982972963002717907708474062624619991490302674049016272692063548958217903934348105640059926058627547942426975713309782774866195382115114797809945254009525673222389526826288102329475699315542231422518145576421190517471204336840428318973637210667120711875791219700612289231959386829765662909987596270210814789128783286077577247085517183817011396336082622130377036792902197667843823350906248526092052313967151923860943142548086005404760480051172630868744292399484301291551031921026447402888155305610640607159905467674505532576294535607941942540325300845995930434191269251166933149871919338458481957458967400114197243293337381104230058920289747169960003342749555259881763803391655413217118017972206791827836221014431299891748561639490999940045550140096593146140348392746080914979127149989411505658778696426731153450156032291447509770415265078158470120504684516197888625098452453435479084346796304229700010161868421253658673936718157482571491234943882467775626676525060639698171714719494814469056817194312277669389926539189169740336210650229045144104223342473082044447167516533208960446827776810369349517370795805503278334343128596346537931092736221018276041996369997695688057942912429745198372522957352475371813191648266515704590393130796940731606824744610050540967953528881696107834275326039291099032286350832153106128233280894442625894042500263815534800782318551079400861323813833097949823733836651414955432207367014171733948271755260966287104006075026973721665910520266424366892424199866182036315252085066478480648710645105603202169892256147178197575204283681647171174521715638766079963057686615830122157064223978270593884086257607430434499379709509464145978401965418994608695944984048337569061107234736193853983805372264334891981212319771797972087369513778878542042647892330336387986960040574469509171571595591235023635087284100386008370001061817759283025421633116802663343224985196920660402544337622399693741272240839169753197332115817585630788127800434821792827228577694255585216594272262656866578023238286649920973496384184093572319166212694406075277240007263845633554879617354560159928619768011179937714532882359994415545326517503725308287681112245888953843791847965814129663983962054274658340498488818659721054718519890252483082454393631041400828064543900147766359626212883335513919807496713473225396522854469604620184505302314016541699714507745195474211105835436507947368360022642864697071133163973381483017438274063699034727130257936105378723964517733871974255627460678912348769310922628131205075062842816556417184026243506208397354712444504683957395054550021467230142895625317325519886414161781525353373875798706401696825075226801469515139510502060441872376761329655756686751288089870993158496170301074548334691010921344124984313769691965304776041283080342338904561836960886808111293550046634071431655577436040122307065875758800876129189045441380760613950410951356807791775455245255315522276073965304587394481647244577745165358461169236712215046544348309727152440233318354243305579439156450439206121467979717207554416331780139367155343175846383780857551957237516510946289733545256689773915361473360571228744711243989837998596729253841952540432173503522781621779550306334161715683949492424696724713259452681371889817914816597938849791380146872459455207055270298856615290608965992843166616588260155669226216345460019649527099483808513249092406197207437168310557964963155576147182852903217505185017712613246624306451474795068699057462157091392417758792537124797752719374012261990242057203277845821707344533374800532937516837283537529813036325568712170708690698523590185937785615421532918659124212137230441065718027329359519031960168497946380496249358378044376310459186139904826111362151551727902228806404248020027412474728720294115684669088027556912137673458547180629932185437669520896381042112395895052494237519289215609910897532169841390780604634087890322215743261992213936668879024585050203110305207569330796527325417257322982151028000861094305835940049467917876471695320512440393671471719312896711501658619630557977352483345630039697744919804880875968775130109781852351911336988159572065453256185740195832675697135141567511172064919734714743953771854185634065302317142986521834235661168423324454277809092969880390297940827306336988008019772636162218559242781561369322320725583337513380379644560088870718652247449921625759116397291955900562890160761127333061582996025298135380932157652054683531733032892920578917888635351918280251437403219175389318738163644168375199770021811633614012974375523385168649893927178725302887974763614082054283458919390632069779724657900731011153949102338739826353355602944578437326066390024801770819891547251118944925687266186602549779213624419495982649831917391061491414897505402516771890405160401299090723489281212099436542339200942646106813461871308252879869533759117405368227732056979847971580473355254509200165694252001916639045648658346198877480361544487327012109810622691009528118395733013129488059317048837667740783085861795775133887207118897842292017336216736241176345045799166521910630467452069802195380539932738813468192348513203514256957325729328502865154378675742157922647237034454023054783988084936204590532989438706242330659777835025054854771355190058053072334166273966194152855832941436177753897964369869768630955483345097326059522926677816415057925772023658657866639623107468690430471705284736083240205456559888499972011995949581632099009021551243234015601945709736280292471606184703591828092080062837523720441301032140978183205901294118361228697246743112688197022128407303474104329945171498842783426539857151728042316170449855449933235423922728813446120178315076904233267739162412556871955222685032219374276698695250630986358433861518104202820213365892846484531332635584586071289215828070097731313405125609207168538767546088292412528007714622266370978328312084718515439712252211365653144665619497932262701593221001211609275670344372103216286489395014321293528590906333946674559421919194051838473150869892094120814783210058572394973208586962264631196920235812044931900607135791150810199702640286082843973758024119117687224129368805535966070858257593628855103155138523740732172373192391095633212370702412271272220328116058807220876523548740523912334078637954925509482548487610888562985191122705942593972204115031439399223805320852491730800215500494175610059349809711030184112220057096036238686318757439916882243577999816199062962618087685684791706628726830804823069883647123762192068910806747115709421463679264373583658391685078460493155091694140142049682207774271669306420574726342587822910998166794815379751322650318901307832393993082750722988165338913679438972542155635885051902624932634167566554530436234991798926923359581737650482112336371752544368501779511952171561431893434430259422166819586431500774187637441422907415314925053853165888027347001625534055698680056531659595390171884973838425620837099261151449458555108473908346136183990457166623611354163109832516041673850623218312670254144631396051033267426227785701992598444537535418574718110131601670613214432970469649857645973904599543376115247301905884821270777761513887114927194479053415492280798112222481451524967280501263870634658612078401571041624717658478785743576350078534911099800296001927895633336863651468274697644671685921928170559989178539948974438154648590242945070262703214587330226436087791792510249036794510061919200232847044855411269843332599026831068471610974453638894419284228577472159437454149289200860800217926749289000474467254408269184646224300147533263312217673428126295319222164658019868757669314690200339134155425025413455804407835714591809123670818810534330115272068128763940516389693470918917060931909470764755433005973521765440183916608523569429476671723311068704794326788848570548171660356205956821587009771652699482140064626597640352835986680164353623177541633591938983346610732274328800355812240334829673882269160796071553007658334646939033494168287176090867795668839144696406140760992206533902505390110029057563531022641257884556947537469122697619562185086244054808840774835962905166900812078979354468798269355896557610283529645703422216831233592561574148960057619209069378059295082110197241921563599143799045014052702256668434669956114892878872345561391843079996991210573208277261710767250018162504893497352899492871014878130914072940331700880382512009747205110530203070414314652043385509423235154090128037405735400978462005374448463429588250186761024040706585144480183422659553488895499153581554874245923453067870334921832130936908593264877180770363768691134393539590520178809268960503357834305298879100114479187207985003465347972903521448382725838144625445796157504262885371882545308237250040914664045361086453519004458940651985817803805744093657020054092411044809764732597237707011019622762674631295364007773022832926810915801266253941019926276645513889540174808178596004312972514787325847916108643232477830319331627923874559184206222052359772968542248704447655273614920037370110792988394033854433963145441166053195427722073404698392465732483075912429236680744441292231477912140232082063073858354722929968416847444960943676099834433484675046787680054871018277425461635102675629184769100118848385010401646805105343800454382384569066629973254655507509833603522567956666144977192488220602171714145900382496074714983601511493225036543646998883750765158094024355852524690778638137574456945708652918919906903219783468155704645565436612155771723013498677785182105233795143557375688072784328668916982823974468534497969039999228600448759122112656782452441121909788981025235173450376741104328819014159540043940992536070531542621772011756807416107397940842637081331303883399358034031296960461370163929879168740569129428078575825057293889293795053987429374335751826975682009080264687614538394644694246175794398794106321160653474186664161216579269283592589924853371910406960169213187060443600056688944787806219171685797279591561573355999261958572024171779727526133341868796803226332920284989371486940862354176819628654534463186739663600768832374770771868614014650132765952544200973096699327667488123364807378297229552193165892164838424106158595035914133453496874192414006539363780696436832419005230374915463103779178787009833863589286372822131307500283621756614416810700446637858451226710919881315170380605417875862309200856093184485129361027172559461498182717117713489148921313298015934645506419785446603376644923524483407175054578086525587938895752527703068654718600988166642815744781163516498171112826968190870518545276241242509974252305414164109097963092343753894868609230276505296284262587537759397344853747888101696101876086311601369810820691758783533607652558872650957220152059097306619677532769002397527186779741876517199732645605617384197310286323126490720440260290911645443604814273429370520156529045462185453380350936963367275912654205050540636163171692981914933223089716549346750000597173753646296311847755209457826120070677916479530855586886469174690886887711880762794825310552189103698230706837459310792590381332150689802227721744723446852820873695502437565000958549872032867228688376420446786815971669736372256547892936670382339663578116141121650768070195792771676766182595837459351918851669854628750176824994545167035925960198278869181397523067383523082712846802463344391657312990323106123971871633706398208068681003238362116830250176894752116083740538272666577257216113475207061519946163255027468106901345427936388109818006505525006070620297787325026491025504793901198071638167799389304337371021317640538600475521263283733978833823224369456240358492551533757139735180748939555029358693362199684599720734689401215205906506768927433565970214525647897921900690404877376296871330210591056870406792474768289410146332508563077549272022853598297571724687780282810789312597362365041015192924471340213777331734281858660003899295249750779931355690582702179511840328248074194729579961016749151756953762947113724169041626491102999826567250824609753915662712119969997464380749351071043206533338488277230832581593128801043232034380596136914801793092174996398579495402789027846756159346747807256748011736154762300260695069395389963591595619354148903686632432280652090328972233970202777534617509724923700331801922573570176410540658347495528312004444087003474121249080024686048931465088437658286526649849818663259459313604843509188398618395160108923582244457946759406750491775647211728622219692059150551035437384913712169589198491488704076479491690503663580477298625982625518834371025465925404739949507941483405279149540753406088343030293373258274953658689628478839670354819550566269623045767510915321314436826351843546349985978819725953708845970543956180166850977096808280543469056188143881455804159226538410646661314299296909140764541009800384697374328269251867229275559858254360009178441823030236927756038464496533671358429631584804718463056665114713787208390413813013123961309436161961822854444505330302291109539625725522677089544676568460690388015702858969482227294720232611337169371772259475900278177279647204346718231246970532531955660422408452581331206018913767333016811648402900069954842819718389977477081741415339371207739210484195633199847352589470101721682313032872170752922007511272344585412847037997836248190158083927063823575803682798405003277700860444343218090460282936312606744904889301937004098975245228187320001146097214226485418582119643019115177570156994788965027245857947262425669302247481056408703692626957747425844050901141556748213784473153073807626595421463224570176021432989920524151225096019346109047447977486350450957396964368114796603487906503288745203800901758256325090079300218163703021728573758774159649032664711265551067930799607730965766475719106197441337449798167606476716549868126321184691890050439546864151391244694815936855688786311524837646021137181490278048788236160007153607104364872793012228344357764585167676439647719824143581203205947062591050685747837496547509106495151949402985848543761740716348157088828230759850182429081648389373857141535672260367159525620151014746941970556767020414411972795345485068764767877900338303239257770582834395506725744795010617405164122603202014030969250532397606348070985803212985211706342737381500060021465842435492365010872616372496160484654670237019523773039962424970271472490817098897114186194159249000390565892883087601454588909077628457427264103428067124722322735137598666854648711671244846032341891933682674720532118808681477656746515868748285064220619193840714722116293343665292219913944931012398635831750935494257852432091141581326115003245434617901837014885864123368561566372373070398609118992407478746200783845648092975765027989939017548974181701222769670820391479733565910055539402416002947595835575848260224390644646851612713684903080834613374867249052427097379411200380191753123087934104346167026148178029053102479038840314237623622460230665543239649533053471087818709139636165069623216236439285479746920898506988159563329579049725347778051710894956990658898314602055182903490267924920814557089881458930336618892202563726475999142346303996867647105675653587107997241618462641078559819461610066276440568181196464148007866385442577792864762449051849639461456254312289673987232043168928074326606711640548981998917623902320819464197394788642573671761299890323752710453622037457944180037821841775649121534217457827116814987728087666805905948168052003641468983771405642035614921867674639685323565871347114539199808899224786813841895025573133199948396321286889285328352352717865859198266681836295023764215751264895465271246512923935978862276721551063058496688594431684226117079096798824988300095345971121334119577329817908347507096527684547854562512082392132961548391016034433912902883034541733706900834247347065436724558193315128240465044334083031244486021542309521135342571525058254608925107504639389238735742499861171401123006926979635733088059477164230301324113106899063262598091154290115422492053796815629685634377989998436423401212921089719663161107871125173590285443193385365567684337997232493687353159413787359829218276155004024126864017462928109268842299758670145709239501522948359403765786396672269307562200987586425717726229622505020227715715220992565620082287792700770426904199507437879237332026558913010524044240082191909068401940410615876401344360180338956924166502379087395488280354912777185403042498057615407974075034493054776352797983346426277732249363020225945763041870134101108594273643939058330175131184832855806698059193493546297282871947557913389501472787207853026863964520321323479140866063633604585433145898616413540354925329133266871653397067634104041586445442010787212361018703773396957419001156449858632216832680066069945070485837457849168852250582152511940552425384354128208033774816511175264762994893830841782786171805395194767693316494366765478136433645737803080972106623086234903117395170694901995026026220633856347621735145649683631560776811143467270024480789029649183544911598992291118344629955974680140240223106903963784628250869122704963783412796572781999251740628273335341208486981379682837557988677915516714417196910458679048577272955619017995133064756435817751478788933889830556818931614749670030276667720894059589142775462420215857661175818260430485035954666935767028825239050983975591705691131112547365639653502164795015892182071035685523046468824665545374373865400135722128837333082292037499204403929053310742886598016722077822121578770401839861580712866683145144325959879922457920702458034646334286799986732941936104056643383879207339325147408951765457574355083704928549668784460231751678855006200532204305233603959222561944936721923571608911337164357605738834178737359494444599495436930732162116552868837645319322807490537605091208065335392457283760340015503436023607641093258004621079078227574261535605738895614244840073873397579183268526552890981469310794214014685469021323146723247674180749594308466476734093333132555023304972909230624745642589997011021051783261243593908193260197167278235881308068079845094971431604366862061343693642180595581941470874595280314955124954232387071190148338190536719033617891463571809220147357980061782215411506804504589370757408723880810630281738260701070741683496728381785363610338694664838811467584056390159214661116978872953558613103360233923650631094626846392274157015956589875877565676707991016209566796936185138164210306332115576069288892807457959776598303904075351255583009338717810087549213461173734707594741239885273550978757313766550340420650516206248739333702687026322561793580110106118631178250653585422186198577256897141059466101702208575371811082573207773155319185358130881100901783043747226772982186765638707388935387032251340943619416453531184595192436210244711789028402685014558573820094519484155890775189638509785843092946874695484240461525420177926726058134713456017552748283883528132308948720397780660839453276638370290088352322527679847064823273895382317032788121060379204161687132786655405104955889093351755924600383015288046445888678333905091649844418126449698085219225550202357906932853210840547459286126280978545739455090812699393715917032758638692722968842716070546444204512280600727428033866380872493676282573725905865043037318940556865413184233696783830706007511656082239800653689654901548594034093547681869471437657757134043096136004854671049707089783243675503580159383854715818483920789620400758541603361006560314334940749238609343717962018954231216580758067277430100412912474879362105327543728009055003972807999595308264200355589699153427955748849866974219832307938621314052905084893663970309419064978161447979268493443133634868285654979866310479912196814891356240717693626452486420848300922578941856862170175245353560900816061251134235321873738103050891538143518173158150008885199311548332947001165656277289447914304888525262712688861849723783174236869687714226252244355078808112959802964410050724144781701364498944749868334759830590855121008675819504333805969003705251100102142815860890404913597564767594836153280207538974269033524073247278917133463184318588832568999929697451695081675452837509302765514322075770793299925070579379481456235698956331514513255109953584852289798934379535821576240166982226940741191248572704927578194155767973148312751331164680003029135421139462870759735900590014698259595674848696034012715006433674112361768855765558618936101442342062662454404698652520023265877595515201888373595845959321567425954186825409930765822201785010255019855286318602744061528765824066134728279630636546805891813036392430511922385671675414047556556082339273163070770500219940089218424163097539075271463087190056053540603262942048954939616891553912505393689327973562726292543333607932714539411342339426036655584296093279605189856530942549431171520852708568894007936759369455952810742735817622765426960792616721559651501560029025453540924086799276958540206689973902459362597261298009542790454361828920889876338235547279861039951408186866779525471160329703703614921218167626211640348174345679943899527263409059123502442450003695563927295836357985269439939023104785396250089350727715623090899146440510703482702225434888883897439073623273925383835731446043155292496029552782100166681107951806623359513111582527987556975123419199788223632325629128196107505306431574320086140378401797149660553935852229207102774894684362079737933410277518353109132546550842538178698388770877490607844213882236990710394671853833882218970030338914493002158253083539162257739819064017990172126240690811855812929256015370419346115760466366716389301092622366516303884907220071288188858503825234848427612277815352719097606582160663601247016785834480560261168049736824854883987618373965534795788473543908955715851282347719662907196117612202363914089617450847946382509691934294387415111231371894721727123742718016736172781567105574024705360803607988550083912425242354666491022454629399344919424108251921477392090419598168205937445684292530199842963238964748383875626770555088576674634069517745406508670130300886609562212955042865324077202726706733254259161877500398701307988256600343176611705403987659901109488492720279158655663622309971048662203520274024449357981489097859769480522396099215737752325930439330327043428725224579594201098689994510120994792465857538520327160861715582634312195316994556951481979266912839328316344302681349097299950153240023677002772887067091223515844802089556647193306882474778607323493669783263531141270388002621220873311865719838261396892184182198106214058383914141508162532566153151706654434377442894983702782787373560470612444919204386253193207817261000342909671892492821516871417862511786405716294611597056202126612550273901421141709763631350645148470145261644711974457030203742006424654885452413085854363307768869922969693318586553333889027949399911224502891088471864421927400176596261367339383089866050661013836754652013611450152818071779613343458383551563260566282743640736773604006712156380137133068483797908617139278983617417708958519222952666581491569208355308995402064783364759783474574470076007431051364443483170792813749598277468618560828997441915275325803129644630738970127888167424399033666801176881005661833317863644623597371970167385676212913038026452233841840926971683254086698308560328714647229425583147781337904112575060114951097589462146600188752236098115530081392919523705151100255210844856673111449572860989110432567145072226452484710383718393410633902573206018847209857169108084997959536308776803370510739601778372108581570605811069635012459277939677337216357046553577431779654444313461556850680787879056160197435609161960044268631012614645214720592781765909533559918336359545546285032016602887755531004186593156300200157272915808284674930780133665057992970315335022639265233834695545114449878065661767277129486290127174230816020348221844322973919352822166579449799499208582528222308113867488371500603968612118691610708184969272979772180044689812099357933970727816362681007385165984986319361061916383183611303767966566612584712160342039105196676980008579261370846458718988008486170602763292535251957751950591630657184724745571922249917182314568274919558371351479609940113718071944311999776386251880687080170855903491859812693520639547883123020702927205389224894612426249783967758979393157084710948042060104624202468002193057188414591478025323070337692903285138161195508885441103716956108497466525173509124162874745480567209894431989922207839491076572026172636960968015263295509630927369298054824215069032713817998741034593892486228804545473288857265091575870683227024039217510560918953290602332815479813885144822925345545959246451165317220876725664701301734936584522304573169741910866432640945647828516905565174681309192805607515110239150996958519688565751059141763636473477661052575575175611266711110922172407506994919279221851550794891093828905420400025813975439745625920675625546971559412143416037620181600569236569582559900479479837830017994280735285158357684091295172464532193509960523976762092388202569722788872523718986818651722070461217374618549414618935191016626461045071799947295126507906290677417778794768128577718792261163479311661567352314903054816926766781248094170425972919429794697706328813587442544041626214901678222653075560767618397152726131854001798186563099380038733332871049769308463537151106698390751216352637517306689591375141214224026525687360006446256218797752261981811656880597075008555820243738037554573984180030887318892833695548401844177113044112403169176386140169076712331161056200147364977454315936461248912087699690017997546540648061913428147111518070023273257761681911280225579073762568929558084004666355475407318935060324029085853514583328439237890983734494324701136311657330238595981917820736454732407017750561646080721489888922979530699321725484694727056010102508929603042867384203349708265686700371702494858849268841680536418507592663735798595701077374082828585959264691213762584872876427078962533251191198195018257021274229988876499247054472747524388516010843461444837424640553454667591275892991508084112092922236240690253168885307596397099093551436046241242533051967203793977103482984254860152244130569292153021862494141198565355268615702283307094799808304855674292547771236421991275265895261122627398662849394812808249302378460267453418646229870345669533492000643830207706831506166580000231544907705788380978026869437538848075587275114107577146152556457535701740990188014763275206321453058344449761056705310071217652800164003210581864745801101589864616037134173671376547362642130811098133089809345754469071041457541782946477134038471242698333710452355193449402664148585536835234000244108768859293183098774586429667167811328463972279697323344900598973902931059837096766215850295972610329824523418492659336524200101937512414637636846580751401512192029336538437802815175050724281215233008710963214029860403391868004583116025202722921277142442966838710139089503748305301292479525992213210208502148180979741639409836337058384968450613203087168600747772391877979311755103602697699447412573552417182881165814233656530610095095270170099580197487244457227650450832777239658002179098347019760225248554863203163144024698043327861340886993676985778971874648109351189933487186289932475696967693201525526461573068126192596406699233407682048819105479647516212264023454963736232064678220901087765593910794857644791589109979722084961776198255394550786926764686257155810096875099281735254980845257915148165041167115109447699456497032112579956443216950270800966109419507284105969991272122996465033308455055815701743661260167732396019118186295301232570797537164919535074916446283959835132066371006452166269766169861795587948469941482254049935380104237686661765169172295205204888415898275294696498624122699775589610751568028796064609790470399469668077053160428968583893660281251471757366342161205480633063218407437994728236923979242132311170791584503199292711283026148608154018189151283024584307788335607642646848193058147144731018295651665502570574088082192247996980815197793831278972074665488535156826842456785380954243646533142747729979411725336293483570328473921947695276923990992445544583100315225802486474460447788799489772018581168311681804087272695304020470002240522392606121175967216238452388344023261787307877891323765475751786211972339497329731241545321706414320753419976915308650025926900332393988753694280270751784025192043206240699814877899427999650425129494969122859642695164311580287804490815914688063702463096962119609025361020476100577958613008877494237457725770062278297942197881813150239742309742972318934054077079412034964563229021515434448633483278840403929080924032446772871077753805829273643737033541492076395319355650524435396830282627432877100581076054397017744107289798256824419863143745556474904662336590646867173446211385378274954561678599400268147089854674896167453424884953872407398884768832637463445171536878946585841154394701385247870830803378387880376788009830094447787471480945132179451439417206733620664973683859252906921210320455293761268143870697002752515687983110402195614950258452652368452905540763317886592824008322423845359959105512625823365556665793345647789308941959878100732844779639372807880182991366679039433591476707191088857479766734402843208540726562892507424462843415814610896042939624022941197600468979014839442725955439900481822866968062429427958059060524708533488943474088080420999039895500253633851380861973653209369328466882663672770358379324392863408983940574847105201937014529896114090560610485087965566644888585801054646098976160774204700445176927354186978342213940806227040978867146920579998593124495283504887084570692939301054330445445650355553956008508048545419150935200000433590668234458141148875817067043466026154551377086634372746062954492093727020792726185815777899263344748206366484578573488040220396311515366305810348380494839772565908110757178089084861078673741026798797203044119822945343793064589287219021721656532828688964399040303198525611154519274627937837799196322214180438324535930749309739548647855477114048954803670224828407438547310476387274445319889984909276242916112847186316497227549574345676472246642316432674827758507932806484852092447141495187496352807527034136577017627716153819137292694871846784866010330993930845093162672479880550153510006652422866182777527928863658346742991565734369313442433716750495805035784883542427997350225733868730472269070279429678565144414033280636810661541846449656590556360490323582719102425445286659185842236176711137742125931407805295285232035326115510090675513661958919608889314799190673313951391045182405750949754622584048734683691885005448618709495316174222381622694185538247866347571009289317222300735122464340255683323710577981614317848849625424551471979612899457202200866561157578477199785713487432571660451334287631539343100640579180458935047999223577966757414114252590826706027312755637827724390418631290203094548370447559448499778393617876680670847687561486862764582183530797269599747138466505714591728488909177520122556281468105601834558808110289875926519696597991999368483799387439588212342046770455567067104771345065358512290184711115524527768131548801579528836360163834817391177785410240108861128367672386376816512424101563647174241868326218322602987230918313474338749265840904987082961605235081420374911194292982007152142135626972573667911835244938160419031947337774788181281498394062966369157883637652131937952182852165666531775709554057229532227981595370772290174504627346637797927400201024319984182655644455736155371986150892376880879451435871547907561137087478754523813505998607634567958147387536655347634720429997809387767497997992379496962212986571658094202429594242919406732865740394940968654527752971225019454390367982204974132649325299389825236680197140558784998395138188560405586845234849267895845473571653814755206331680605784674022966816253897887621108344382927120476728938235041733617885954055282124011459113888245948142800747869268870314090179222101923854186869698169232324174330613244543050048617699994742567837106458095047409890481440306492652743061176693106463754823394768303371256493157791753481108039576006981497748105725453375018760024606662164528851977045903662585559699242742255882376199508972925285132329108534774012865893518095921746257126014707664878543540907713305101529174548995046130613533338700646026195517616261594622633552530197844111711081202314122927720185125284403755007033403434404323452622616520614108726147131046144781718503267786091311665336565895153564146752479825497581346544778061406021029252585565074957721735141875259899414412363682258056406459142037584325375904640320048780022766436297543022727372797245882902506018553262943814305006355766907286937720524572768716867979533658615626499813620994152109123558813644296356348126652220080360592570221213327082971356137183931296780583813514027857823947842231584680675859766414631127499983059523815315942765921126293224077740076566300054763127148306052204482974436115643786969738888391841630897801405870938324256573729787790088729157255717968112018943710713119847244317999190213930658134862027610701946193074977567669232460651988370246861451117691043201835646542954951226860212305557823932280700890410234544953778680299703642494984970155637827023945666579092966754443249613477618997319089387411719101232054192367812080623555729577784730758118703718252817402308771626123182245031453089714188898977078793257706399768324285018185513085005508499332941859151568431975645649619678935930865682866958298501620130766688044874137095004709828274777000058319374930582484004883563412477752939246595981380540527553613846853222610121271103083132639647540787154322727042618167905249033142216129347127044136873841422845254692481099127741566469854227679836179928308605835181147994062255587632931024603508482929900708301592580343675653779318896314010741626415645708383557845565039528275392627353116970663731295810498561242053789126605828577613736838688379528838200542816399802258226460917033776659098221879597749624862150504259313692777161604979378085393969747952155595619891997459681145746134357930702394150336828780051879680921216943869613883371901431569331325647104472855013342163641194453288562232630056542009262747299988829969334045040457745418840250775219066477059099385407144159324786102140197967696848388438486126587384860744608288845676037955805922830644742672147616797282759112301681758593361341550468590488194750858405538537775501621464502055155651029562177068626041225911896465815593718524466949853218624962398857390540023352794352352785518979962550549383900267311622047872885983200244233000306980303501115513927633885608662304077094410557881508312634594354123591030771826577603660524279395726454316481933719075655930665844250864057174629046920094497367560212919413753317714794887884525114797765975128803117412633209409363888014003057748921464909046128390916690885353412336328768506997049295484940522734157453072800488849258823153406705166950464043042681432278393208491124477754997628461054827527632650965916072257169065218411822678076615038783257335453348864950165136455780590366072725177863123751664360985719716514853481088542755802377367234010602019460468240156467092012490510708658238253948095379310383430484703595724409950112193001997695588171292334754842659898801358457446976497137253688759689948940432256460707351123717985240759099533530931583189472360408180662558984647322003553696622460321538324011218842238335191596703461952651448357969716016672318795166246529970297808350464914829852637007653862635787155796410145468982297933745310776594038414505103518811592076268445876279343940497750483350109861015259747262794449044502468617792547004782316437791922673320105962549493375010905840494328007097495359338141249025718443734125919205131237877934696960980259697388055420982167504582409339982260143655364236906449363974682497814724773215531605969875645952697048139876632085346966672699628653907098080256649659081626610822040635041949008160748821937859157688638570235848243758266797978307168831063569599217434251840727487994467046004403763317004376421302656352924204200903700695612265182900426137522767013317909062237390042099465098305772701762975555954237054359596662947867278859118971202832748788174671610211842034654877074336032557172366993000835357144297705705087505417209468292942087125452248568761094778136156261478091350555644643974932230035883136400369083732925562596747471079496658466901146991392475070309094090253119244511573446609192189019131170988869981531910200817555647750984472541281001588669729680202769242791123912595863501700926211497727378428086493128424206847304423722295310587659469771588424897213292463296246361706192906027980450449484368107228152376282332355664601982270598461376468152861415763903315992879371999660363814708842640303071171517397226260364580883146751953576630067908471789117083005684721595533425002080212864080259993022785459526594784539977782084690913966514825586756590511556802120046214355249100034416354299964882783700687128395096829193627895579899750578301173171513963133405981295055047244231196464034938313325398332641415443566923709130082035306062888778929256626488111126789432742446585013514748212557322683127173643454417308006444663276420605913618796138791816966627577765422312662864149865502817103258332680242020408191159498175502481991356682244503246225321017702023116951665954905170348656926519886562449778061660217445452679448421584135914341075586387167531975845423545373691652406529669688358221328412603962366685558245516418319898414057119494716089873665968486761670926015152132378772170316777374939117469403193550096480952264032781570261618975949018558709544237653060680568108510306778756649509766578787515420634212568447276314295371442169867136410609520702092013163781624861068348428738158320399539585850908582089688250714362685911171059766136638858952192348714669082175675128306983316317530958521255618390827869411874015183209625913385539264644509947767839950682405248478022406563968610488984892689597918133082106017413937504120448788412562522539378277444545314685384367056180858168149923482431098378223906521521735655912384421990970584664173883367782705936774534775833007334059124658784469844418119512986274824605480005433888119155006518413195931896693211392422153159740675230367598324226297957653900227956806557399086445513881783371130241507688338812480055909257915467227202935145531339419348642383074855807946935798801100303331384281800469218648228165041982678876319836166032716278954228439852209004222268853580976927974879613791938073931700394253950033588429526775239849659602543269740218869140846521486481824331456047746920747004315193726892125555349364717859293642205627137915059750314844374203400013590593871557340263882871708019665302173936804386612498259215143657402579914520016253572307856595642385145745315718237222655063579867733953242396786730914011582837899184728637858135077252755399171714160597292866290893880029148417939935198191712772138950603448091159413294497271629039924545394611651426555413722761312235235195181898802988183330542256752199216453524877169054751431651304469695293244856924359268644229039387277808918995469257148318528863609309852594257099442393919640595794037614182728977817950544689974897234301904081042278650902847833236882022762071816457027046056232441264188015121386459081756389549498772799223399239225522803414891072378691754300236366310038758031159475837580282093199378887415640084665172666456004351162118132420022484265439557523232157427490816360958822791433051788464017516041502575938599528308515218128252296090287121881145893741442170968884237413508210321218726531800921879591161551183011641574240147660091289546753198715477897524915218055543187988528674221033751307246889602831590462903516165954656968216025515748320706287930506875791613171210190359084805734915625915363917912836976178732751330267348814853354646927877135409473129874044898728477224844187468800705390919251254342705354726814150823376041550664021783655015809835193370418970586906894669255536098427616147956726489034287561872097493801472395050298479562523640341640040891993563906046657580263281939986009126165288475061445967261031216847318737001524157652766318699121939713192809066157197733422952617275882642992280906345206353536071078836941006474624210687718379206036431791860258957145241259938655354657782548483375541063352230915239093506714165938031460446702612420379521940701253338219775571520731929897935062462751109343183562471481639021933363513562067533471147516853532071051161521133601429216285727185829669638413882575000203463758926524184986962247284653908293744783958441914385296941724556607823915420640987794254676833635676589890156772928280097099726059159834841498418533365941775792956814124920097168790253833561440815744389824020815713427782126224014820359018928477243909706496859556047913515494985660655561167685957140151069804888579807352758308332936434947364366835598078025466871938343210483199555473393956024563734246182050545421333104072480764082694737987535542950050029326046789477049237261915471580417693756868154066481542321820925909302402003822607261099026191465013475395598412757241394122805659415013474883153765674594618415209762225364806572506188470063633827212817743958318959058727767042183802867578925897918151555668969670722025992783275603472159314134730356913801860225510725722382573455209173835617324104649963909238527571930727355512774495174874246973722248386804999473898626368203122222754189362129574162361369239621980739107377256145503254541403989983080283622254899692817692983008323393136118305406076263990290690837356055413189704972615006176747422030723719317376570567185680323248937531594355283848000552897311390989359765322407588326126014647395194987744941986888046850717331160958923511225208586628269916368877784494680668793584688965184102541998932922380742189859379884172150616768290389899398490760057690275127738160273505143121617416137882034779655627442054211169137831004881815447402249537136210597140975360071338495642330943034251554677544514793910938619566515855884253157304658651495307673168730063133516884459063384379457948978398656841630520792079157086926730292805427037836348709639079028111084201048263609887812032568565827052598308897666231655971733221793138867270887162950704559201190788005118092656120115359815769042715958902275848496623978269505016023598868127845035992819199011700658341656012160780486387917736215413578024119576280304023791550152465896217898549874257100645231369186181329378083424019287183287115963094345987994879630798930791116444937067996504365120577364595581838976610722012970751145277652065564088446536638037796176135883903656649384270815485071414257708901476185383434671269533497287223649693433111272088267881508158407816112528042693465398319537019067529103482980660452505610351613055099408454572798393669441924827667258297690663109964636560361071429802345065464127795722974392195987122529300010109057114445587880727375637857100877016269083987371592817697230899284862153125552151766536000059895465055681732870062476123253857971586152366129026410122760768120158205516640642147533562849055418145679652408320412846159650276172572392052254917287649499853933488746530920264093397844100068100176133166046242422212969509395593250206036184292533389359103329364014165937603333977297411341042478919761328558374270494443154573682575949912066599212479610872774611996887573097703243520531683618006604100247114151295844918956696992319632982462203311507216206516408989818012230367995320355948148145234853524810561590826204382304054591486111678458872819756180664404086486925514128435638618448105910862327823063282246702613066760534511557003707110191796589418738461900219617069288007887267380146917094106723831871969033697751867844840045106675192420536476116492315976655039195651385565801548990845384801794209276817472228386845848305636688242382544301193802993704691144675407406956581327069789659544834299594911447456484709057662757992284324560424792407246848698730907952796195956584869282247066657915504282383034680955902503400225354779005547334701244910291668579926095153267983829477037642739068680731150049967306636546378461993688963350303238331792013428945695700383345871269397013255379497939995521766066544233667223128153606311592952741040298722821369891536399898468425181510490661403427727178494111312551331354841115165280352484657066571602630631837520859736283374474285625799678398687688424321294987119231294955927191674721347400005327527990760730790662838077323601538835500858696110575547162304704731674906620633116453235487940553038140675469988196722452047381969655813767065881579138656829564311085718918128290077229569234829301234994932725161669564644445664282619058472395771124107091568036992285279397042919137899165393791155082048456322940504976478640803227195276248586209595810672591748830245388115656941935671958395446717130822798473732591154465396595631953242039662297170824159231762772072963991689073111189660566870202935843946185948193381441493437657510584951058632075793632679934759594121595819701143668707061908986245298745734486128166164119203529443094723945764272081638018192998477491463112267155830148432384907285212195084932852031257884293704598194876721093361676392719883473788891353707354614038122181044270207900457736226751202062841881935508818759992408834578188248942056065915386547809955324483879018259411305962603314927196091024939438755322150535037462672021493433257418423332995207287692618346902058446021554040124538839953504530697712235027924855311251547592334604971700079728789612283919876515878487050872255065629759098024684782570231058509475350978572357135885141073065996106913921939561325772657867614972650598603270151044798533802746676185645420514892235440598800525710897775430972669259891694395578276485122373555625998792037136860952353786505633513607761370246327316658851198251812115189438482245000654242225057295454826948854796343868889612826433899935777166107547364822684511622435837224135667354711089112755561484208638606092922920771368174824076944502571744876533891409331232868505089616379649945745145785889455879085064223796720131627126561514756481498287554464901848536182523305716938025533134036862071300588403121412612479468700474985426478846497503007311623262105767443066063761534275536482563069800178623950355187796375854656543788003658767259318519877890257561660288049892990536061002631183358949784237834483984776061624921668909641751353922360976341263556811102650559374518317801550697415373716607732564020993243412106422269387585391798143985400947368680543665039626550000141628970202138898112969208722870771624390777687635524801455352995247547965944308834707397960372370851598119127739618167706728710194846927287703093552166225360632842996338713010117725510351866326199443250097774302517270398222960873930051252856445695436718014932192749969818750115886538970188436164814042765980627678588597069305905640234142983813999766989021005000778967639361055550252826623608099588863136377957781273434865988088264861601258211837677182505766601597565540254500123821862435306704682854413674817976981451760312580903799614421572380226888401865413326118954530350136752485870293423495663078757933085279638486415377043703338976755621876662232022860073399398281944929796405519321991298577004186577198172147734944703269158878319472862415008439233037497580317630752433081467275237513777210597600833537942152451291576191913316448625155294375228433842051228076679859856202699482637856953362459242576972530110177088389209950969400488479126127124183612567099248698861333290297665468567938405218356943749898207919584844013614186024742115398596375159588765984650292216046083603169918402043382604751180853463969114100870567496296522996872392591590802855552281696813690281041971330755506378317499015251671927481063419342793728994719883557541292863869000286826985026119352748403357086797439830292607261231628662235239711032705541713369681316577630773244245182266133679333054879013383107840685674533436231787281595055775081531756774121564092122934593274669453851300019947252693033436798201565292564407495951983318267240985109708371654988414261579026243670167924866052776363170201828321214438782988661425422301575172177801398179080706403945254108157900854737008534078538446393870790504236033755202902937864579663705090076161116725763481854150077736622908628872633811181423604692953098779135335761069839058468054302963300853183889351342001945975749485298705576549513093821699865408118840814096090416145927053218731730276525373271014041894800858994160569151663939864780280254214170700619904025433741900752915186138351152789214163104468378239297210427771398266474557966573969113559956599730422729375586972777771313737097039837773359036422754788914621827343930649548967491473551136565055280758159906554770664877963966507871797581320734768395297600336554579921621369310715209759472062563571020473833661644789571036787788791515211814300334519383883844988617197059725008923496992266109666283321432946935291811880893006674369880410824118639227699418427734769230967293605076043385987197729198722450133509297923021886389136391687905224050678030508213941494928462329144383515549327895889318554343879392886859446057074607520245675853604470624718253375360371853664382504636524090475213006949886228763434222517078283681834078046679790849398827426625113085208786974334875608359399887386798381665184740622159975462342265457328315855413630718765855493539092154551359888275107684287039990119010636904929040042343835176363831007955184692981489652746343051559452691716294041954653454870593233110393215281679436251618719890533212572573846525726855742101266459283659646449747454709648030293474865511872132599166701503354467786366989781879508567156937326970369204887374898607468768835654613873885283852527965996937956163910177695655852636612563986997755304459268985704539170065266907397122881198824888963841061018746055135940801144786885505386425549669201536538317273776424147518597822528420746091736842689242162101836635549302339234217817083617086763194954556408512388308918864129747415229361087360643844580216247754793920544090041967465582169123936315944785952727136368313410069253086087900982631561060105330388874857185942549578026440348543935769066705601943915705400044758580187685740483319823391818924015995606907875431067022927608497431347805462470845661483988367421383276179399697896845026121034706132945778238224135131862864889989056109800517818759809383013229505585631334935480257051685001941277362512308507669869596725153888107616674437832898282919647113090724967682489507561658639576988984816283434446697590519813029388397393278498519885881253878653702593079470451850019850276572114993186743512753662248130915650102613689460298843790987192011439005852090127104985070324239661739000922573693713694643095217970826235069755752861003858815528767589295815487516304160618359867656435742594732115202826554714289814689406573792709625006303705804916063923673471629557433825240389771406978930096226924195833417414807168409504088125265972730357413618618981278472004450213261641329831612608580489173711551120114816862629431204231170466477585273916393363816193673334879966838448107260513017137206075036646629630030315783476946824548558711084201108731140476558307487530708403096051600677816952206792125221629742457657826942216626020875336984802114590711498079876886604455965681156808206859895836500183226124936269864314397248087120022034693139794816821381815441727759878820319270272287827443356441837027506241275039735866880396633747250370466987741944913038937993337265642744792131418668868204346295070687950077211217616111506359918377817564547201881122253619076088890348240795729936809191945453760171741919455068354559374930369536927013087604657744346815463533689600518336314995206483652927453837657630842519607919796902327720687346655933018377942928322810048767021464144078493187273717314289389219068260647294321907654351425465012259357357188837599049108028113407975728863654766405598911623698251798876913052724479458983930953578303951656522089183983904185463670511707886477328504372655394679960376883783593159805812822970664306529338329341897955996127598885719542396210669371177432011035039466423119143118157281981732083034541055968163697923625538444803151125450204827811705751512556624343615396421827664591619896377140881926242025136245408815222185695638469436583856166633194051877816953935485654703556971519739837242011080331932040245357270444030430595686444949919611271430267789919467698390431858713778973299256688360756513996830886158376896713649774178050085207716944421332988970562819045077923297578392947427619001201078836818837788443957472612711752564934763235688987492936839034128722432542687300146371024134607774436169097926757615946939019840357082762221223719425749520741616095618014398687409331150097271635001757645621524090444939342030431454830415687642791576388421979650123874889057448165619154964716136755252550104192236992869542120857052897024730841754780952035884076250599704615700116098246322392721557074396967905331416004478689449714703113364295278046068554104781781072320011078682476191207854685184969015989557589402839348311540514708040048486803120059139627024257320452105963412325318575103014954340696182246191936773821310518227893875587658733760600001987635675802523115421841872499048791672345582257021902358306458610231703604943668894317130550586705905558694286917842157636823361113462850711897695323921353865460769925229916607897864033444320587490658560273360418252944669948807199005458443337662812746730358755071397222868262703223500993825290363754866544450814970488899872067088631949946207081021085209756696340152219841147062778567555944682121848340191453901338210728968587462362474559003251214546724980341531354212653632477007890520623826006451928646368890947609045912745341226419397486359663665264526834396614282776929002701869294539617979040369988094917112632555153042458988434014953332918423217993279567926262521185429378530556255771600009094383121049347564625838522225696457634594978995839890020119898091390545636720160632048628162272325910108529855219688081898912291243141473653083549081528940999506144764608309831403167335544955815633163046576016104050094433715871553260187476079868470792432442580225221324721194618025452715600269720154113039040750158893744038442468651254734185251995510188188967375985684989091628397092913724489295794600164740723112616549535363720790459766895818907750677953608937935768723481916019927293619380042514902425945475891073853221275312611661264010112031607807674450696861940070582015638486150356146254738048904984137758386429152409409494944307153968881483263934587215387429090258077242660392401318235262438810527173782847955056079157903078153195259504994178094558392645653405669043777299065298705273784491769654678228283516124610101170693601923534232070359430450154946646656443166726702604445399742811738112821532898958972233134632716496839775384942019707449164951838588775511739963466034516247446865763215435077507280788518536690817042639518751579089838053838723810001225591431438874614407981259805954136552777281057309767956498921826139287432369266552775673465660511295527349042312269220053419818355383925391776912913271496635492996572364644651203053468874642170986778488263154582004400847998069667147278021715791903437677289859560632395160492366858759112241298772653189232948088748375287064763211138380137524313524671449913802282458836408712483996282478738784306978763214131523089939979675716478891940740655312088125215324826621383708911030650457866692768562706351269187343565998125921674990684968350855416007213568178789168965821452292515860105183122440290836914405620627323437051656303356544617925839048767067886470692498852392845398619750168282293452689476320507441889562424770311852608425777828720162489374888680116079445430161161729027927973174467877168780134008540508182426682411091263983977981132477756864236603271214657724892500839257595459857238619234266000114827802106658525044939443161768219795610503153786943168518174273036357185573094408808617651360284531269847831044943055293609023028883816499780848077651674815334521694140580563615683671354381904985255178977910292427256622737232345501738267550399656478997670595386033590649969239234853762208684060922120077952457683462542679996687700901401423699897980188529823224787572626032205764366290328255127241402800754029164542030604551611925819104947341323678416129245082428122492194413582433396273257402478033655840502231141977461724844470295203060909138106110699290316358856469860557381637150236197019318064794562927740013013462412205177882185270611059709000972475911431719220701966065957771636973123261520277611348616208639596400505767575132030800172035218347000627823118984240933897345235466804876282600369644545271434645754847076437650623528951872751238070049609110260747294252021475173741178185540058367302672529672428953370024708706386551695783654027936880780251173775005013178173852103068722088894525427636622945408672278418563757284109279129726381804753636284817310597016385104421317911293951653434167152663592247362578606994535933126935591836928544674909444419897943913040240154752065824675744309521708854160125303057377921087444712608653974222094346607856056685126596783169498972893055793559582964672940886016247021555830362178196911442338342358757109365318139958576844541463520015039343846958283406995490637212875382776866355000238274596363247451859926515540618237904376743040913509627365446729909694560158236812422897564449676095729666653357228082707450811763185413512227726617394388099330850025298479437762424143393745919042192853428808612714989508045466895891748220313419357238705724718831412484312321370360831478851135439719499983788427724281905414959714563925901817917680016346822037779575536190467071958105861629500258278808289329901491828827790746367574150678748402380970874636408298739858930815211799420752102299110593565025360004962191460447746309262360424388819053994887783852039108484319542196449285839568304818917744683113255711245596118009950653910939327521360656283321181357436201992805818434791581100498396052332567759113040005233018809521428372806139128015008058230126461384530184499066082453216705369853138832520189281877859507722274660283332380492767181865341979941081191518597457561347186393922374380633698440634243320617538279888993922865460068182220208436582567812020719943657747607319140096038759472113898090384777339716156081583239834491668727218049944816285407723671233640295683097515070677002832043194686522201827191779085804174867091638631207084336076170970734587072644936595000145587411961712009673361213967343509781491441741033101028860266556501167023827108557930545911845355170593390114942418433639591977756340023524170672287203335038361300263759440429027794184808338884463704074771176372974814311573722248654372996847594408649077326071706673018469612381282703766012798420448889107124243163489869578017945971859952386611239615987338076883338258776802120782250517676852048695041550311018362290090147462154338790477529458168152677338176305560163562077580124723543927356614585762477577906713902247480477955167053065328834564124276107526148742747557729785669576147672590378795693034872676630647210443116333078787988633192055823045047597323979353098973145559973925023810162743912332409238181386693456669330248545167752910567360108390177112536256310885714155613247647919407341801424419861626343179845182816281570969334326586188073966786981659389490637773173751812350573534709221904569294564222445928950486814235961022664268404344152347151541732831275347939908935373762767665412914558366132481276053779575948114913352219178765800678803676364861963421025003659814863962786548401702054157344978259886317880226217880256076619384416102264697217578838796881218486718097340706339611907833619318356275008386473709955068871228490354214870110599519597769726917295498057286448217384806566764882474493307774527964238412157796602271146437976322226964274159613148492607150181039679184065520853424720741228163235739758961846713468996389381830752435229632034120229780078394756061577068874145789756584324557566368328160774953497718586500752185902593647803436560088792078078731978305209042945179100986841080860999490415181808167007738715800893838816197490889679844008835142791178376815989382206726076098439409313123114141288539369252868695655215413159003226632503852958459801055389345098274577036384626856074095250278302393292281568776171580082721704958375117403178748862962372254991664302741190132027199432655309602846966341264612921220872416451819051987962983404457808392547639260281926641069991409351716362286047123070814330090635005515359695439395242371972402556903578247757789749665927714035196768587911758853331885793265730135688218111855021018220857447826294199339726781298723202996164695719385220353912848203781139166631749979225543125782704728300627181772458766722800045136610187695236779545142152991071793690180976391278764325719859059830156803591696193209500243036975918176038871819522736067321376182254016684682700998084688944924877842526570243275528712939389066256163109198618790982176980788697061553521018881909856777521041674442235226431677043532794588723501859829990754689081577783802362230179114103291369290934378965798448913117381971775496949215390520214183602773362463613540194783530446861099072176632034562706313309901527756355218977243339819894676304225089502702395641747499849625326926015454682978601224241296190557902818910557682347936328820072174751383423025930850960390746894602619547500112539245774218903305066532316116538819159147088425613683768755463134718676725612722159085096847665713437896208648271579882849879271500636902760963586991162703317586735480286100169416991176781741364190649688441791684342180164858849812959320864582804379215969258012538240956483668734240118304069825276189138612006694284906112781744602622590036629447950675974757292504018694254047369894391835662649009680638202662634764812681088753853991472383518384052788344129495582969996037926469200155495615634029645544156986840420232703123079796219081146465574090798585418783497360890693909233516515697975841118749772032648951583232744772566113512253957028352177541372422724874566307951951964745835833852361961440182118167007359333042350425937281612577264359810074573674988273207143024872034171417343711438685152597742745872951226440943386590275089831047048095050283488231732400319632412262365022128061597968542137626071343063837118637551092035048157313597177513616513363733357921232274761451875201370352379769686324403190271348262849953227928807142612897735592219422638752690566981388025795481543166740527737765912016081455398832272393831120218658371106904648540341898176744031525341102824864635413184820407535765377469131543213659864158405848216528593572078404818949630991892251375593883757670174801993894692518058757023749740080880004076957648662085534018640153653405270735114723808162090685000640840220620275778975097132266960735222058594130848448948790684307286690825531406325941976774439646387894462581217788740951301343130424214119054055368535405263912858585919175782083322344197924552206879684246115639360128903981626623095362662078651565167481912515432563968955462973393450831497449983818354630027716678390720822457629452828189673748543963581909300294883867288722650912102068075299048757386810062145318772610933630613487821229318218515747857782886434466849689421715189431845870439622230900143195669849235542327805993353788604496381785145420808965269964929470723550934202016208835637943483083118509118981643717555089951370199454603682608861992677953592420738836691058665074929521379123638041748372377839760579587473170759570502194778861861985037441584654848056038540003987228542902214269403414728676350074809936024558578408397089106849457901493385470656631882168625267755887526297085245535814161939666134546255881318926659220945990753947901927859615342669469439008372149200721652099246914706426581211159825919033788025210870498095855288548491445412967736085107255532016023424723913032509653275064506124644267903924699115346549568700841362886909601780371445212101389268816512966129092322189924383438198517879863053968220824201238053531080935791418526553307532888784757900241486742799012388455345454797817272358307624219027761022427175452450220751686127382396480833951944791362464786173274774771352007626055173422135105676570813621426487143401792919248231640571293168631646993961046002006157368644490292159297205290659245049912161281750415314373511265170561212135314405423387830908723473602503480905603561429414511623046563944872844796291159316443732980228585446078341054346190143828429201474182342918477424443649368709136893503442329774292040044187686119437737370231316389330322515693315431456917546956223838486742486007580764540249283073086063778779509359911766058154001343931614177151864767719717349151445688226859282514181788347775539350277914543473498757434227973892150704765497424323238633206796967426370771185717451885734425867231036323066816985341573238429402026720751120886900598393479768979262819923750407468111360032402372659333770073397571185391471801389764470851764194139096429091113538019329452806970958034052920264442404582267055907198536209207598383788306013811861661991675546943902023990396458158989890158741426670962609642071419138602754142330795698039229163563672377427821236791091923442705950430777542448823890734496982355867622282709112119900583935328883452715055309493046473028957348249989632324060921522887739137542515982037405198769155642844113409157387822957188379590940814010335830563407857170771232731062693982378455984947046606947425843659590533104121092559430600568363260228091871544275261573981394651305881320843407940860941304086798554016822086844167318289108481560154069224069683901538080369437656802513311202969806017860430784027902092077514165712294475613656571823325610049006208559645268905180828845585944660367878858321495996954189712708439935196942672835069813654701112028823780212996989341227815463605007987379232403846551616350091532561094167212709932570621580230670564718999194400398661301248646341496545998055909333968520958409912543697232603909698383326141217102214257949501756482402415384095167732638486173206892639106293992987569538646542424791242517004920045687628358781642461577617026045695454166481804884997608903779578830667514374143967343930803457475822785478926660780613145257724118364171205720721630937821582220091573313653037318596447832141341532609124644435896004323888263564457175085723045659812670483890751374472938639539424574591291255289071366136239722654226843869953850722615061917702600501055574632451096596126832992901741837082627616691869434080645752946240740091766995133577407490184366344701473220286004233307212054685846656642692141476736657404364939893102492147794032571379405293894409356370009019893710959906062306341971679529345794484316551963520038954427109460068596130994588519500766904762517050384706943032655548088797229243078463687920553096360355495391902071317413944851367289211980072923800502704130541220406058562755364932821422473093661332276736249144918697928502994550658558032642384155867752537091059941449646553539885094361172270925794028514522580065010367760571875545527375115381136505353294508225870708030302432402504765548493465272856882295691923493368618935563004668413432978237810054027123628037500406797422604295916631480645764974770058035019006464671144860671093484048924689137020402451881140272656738647204551254507428806239841382810370081517886620863513723649161007188645728633160440823383493205049964738374320665041389561131692820003473764220562055353854842255459684170424432818130992815959845764206975440069831921544142036858081250973045358714205719235739938844908272709074851202037617617784058861763575219202529200474736164192251386011166449103952846597536233949415910547288352480760331763662166957544320550152274082254244439323827997880694052483167525668682913259220705132877622452749859388088772122543502952044003597585524971393551464331584459695766409936519752051935760064303960622277618451014860941004070132155498210128368236268026375256916994719750340273851609466748541825681027157683425245239948482361764187839658471319792742899468717429409624403290949208187438005887979983110943665359197651305266748060350789167892859385599702134540169057021719854576102006885661558533750901877245550560923168848843914384730447975996215507307118071555149016448060083657389000179136108627916525136175013493475427301342771571337980104011312678565695069914161369398602351220936064762561097843845223514186344154201685860001295199316507955046149986424982316094491617151578748663983768528584601121901826015628415380058032173095873229713740401110584629914576495803604518632609640821661150136924142524435654712868199108944212918532011116007854995973783883061557193996855049376088060832733751804193584817399762593911284299384310075643043101981479796724996798480175783951671182128280828954384491907502119565385818386780907665528377455783121755903481117275517918614832873997154187254307429384804547302412575547535332309290783972628203621938916045934796804519187242290725839693445776356241295369517965826168586032384458527670368245671249166173480323179323786740740583591076446859397722721050110126757230645877929549332403403840711663649341996373482088955420539894740409619830754206962341135043406025525953425319790504025177694112303195087900390502790855180418124837144393641941048076270316365346541880853463677848729864879043133478263760640894332773957978580662365932548254127352560613362089391585063727550349815453725281561224260681627478521722482864058726647425979242025670400221310237405311541929339565076579322208391358813707389377768349189181888043629592822733314870587028871574121298385225422320750308835927478116260004335846661268920057027090632202405704819327136630693112703894728545613650177729547146557177398285260912605132396810315811708609742004985538120606993620608356603083799917165826962963571216649011004419689718397415678835284774848910093949134212174135466404866140909546991046788825024825062563847957746963098997021990223307398063637425144431297194891087409865874235102251359086424759059876011669867834759197058988140769450478756616955196619573153772718415070480142110776782452984978580097144732708732535981192353796970552265970026727352240767518082950678517809910452984508081290873767620934736753890394970150296682700489501981770600254922202835473941319482430144426490360957049286964850833195329964188801809332824194678465346440363967333753571568537742268292224251323342591363910339365505031131566353664422363684394075496635066578841150539162164852285457825185147580318442965711107032071829670240804498881795059085268648085401670943870115717751486345876894451443031847552662920661827555271630811981546718323203652084940237940117155169940336811067952505249846510640091067890353064033185719534769179236667458730263989075428640230236700284135548643476750365402667067328091222266940275719609342857094163081852929246199158102756697869242482131250448401345479530977146055485174445207734737121371788303813696928126578410056458899111196867382902297023187215375950232833399113557195293704103280034266203435138863771253441221800812758869144390412568465118227723526748367877940493526618684200080226950176422501509860656731848329128750172185957004667045245152342086985760826118751997163823541442937693019912920755732733023133188400536899057807939039323140023148716341521058962677991611022917678955572799540401997026620236857275855128737548506169408660687623385610377579150476150338146789054459315203220331943667895661961861560302546153986771576050681214843396911476936173143605120382080349528404575709435254687902533839399945658392947345368684288775598320710673816109951486601987740523732424366214670218386953358151722280661993671862213523979867920955308218324243963512005787179022424835034601370433898718182946203238967755335365220635637520349291565703549271921506401891439780291427289961772200767504996390046767516370201465500374160327262868038827526852719631033900393615103713614574824523274292436766331166773941043354679009882640165166759567118602780920933256605017157300302819256975216622911719229202874587367710994354649931760988909955101654904785173215351816249558512713533707086120447750082395666346885965360129636725996432889071894553596719050779835077301817039075652345081355995280727274868763778569612701382454697130758890672957783908465342642980211551028068912911599762358341296263129971271162140519510778557202684525510924292353119719614004215678726614304386538859236217677794380257134248347861716275523680278160083199085916801912860432167094743799859329715752357127367635377074192750971233943167817434814717580979012112061380843510693231590669227663426053231715808348172254629590260775570525036823451673425843227734042357111360853361262895838014689418414859914061014478879300627563150271737406640095400212877469928409288853830814825797456294283001883255178856041971546678192849664592237620963234312148478022714385355861577006547257091336363592628118713744353294802817735777566596632028894888595845288247951715036476298470169981051158378638836321553110043923283682929018561520582803179019299987287995932020181600510442970408100317301191959009710092235782974022076509718425030398927828310806504553890121058099375296673431848393873677538928370606847475229591106673341493175885323522210985691434853135761109437039555813106689626712118257134355494508772128565392136391583724059325285503420642269838014392127367292728348635725503716941002198081563600838944881626307912383640390925728233462026512248681637580535326138879972872321569932195674715170703640067162468830009778079116534079875331425475928322637690296915657443981053325397884576754702241747815757782837509853323317996415699226248767778345045608152113375310116860149602812412604943293896806577161922221981040130235609013281660929914381046273623059803885945553357123115799275089904668201782071351877422433737072530346539372871015943949128122777308216950291977120945078656245645959888268175217150059779765671511878266550390030649271051676933590238001612688288904787184130523043291490285212197505556089076920348777538450881846831786712998561354176057403560829910588374259293001317459625265447901437322344901092922745223722375747327072696549204894909711493001314045273417082381157443858902335298759401874418160496655219763420761830022098772122644281022545397635535038802126119063242524875342403221950680464675724376728943061315340272572938896915065004108032540134746964563678837330515555538832753076233318471156227643141488466873379692049261131707888207020586338404504912515619147361520693544631677129011767518627881900136095971161455334370760345299060342546562801884171649243662036132868843312646320535448875731989892723918101516273673048238346897985721224755447945561244296442245132369073997846706002766816537862770378254941972717623293929453607044185041499028893135687096734423539758243592849957908383674091716026194060047616225509210417862061512315153702688910018620414773242028937042410849162117046472562727853115904338057531719189082894483853000445313044531718742719821413003339134583582171639918470154133020427307460217137051345108039058246177974343066089322708964123611769469263421275190102413269225153117980951557922399187794618999294416947052248777718603078779363111395508568327256130831913788367312739769774829585702607518726184770345473541710594446566588832941716160017479909469817743245727185389091036234371761013316012438520368608817389866092729032395430359044235864106880791532663240023941219112383555148869241376553204219591401277583806719374367455732738280919777787402437680390246078445732252481074537639106485152405256758254788063661247493587430543425237806004207580196668467582099437435266441347778302699240611925499827782329817307859074780020861507367888843724245774322662605283496817254266723375506283739566534725757166820328310845233335936307905546729950465721756953094776896834789124183411417718250643577485796829329204641756422051991947914391271356080878449475252620740372714345253333445725371097376287473109036883941983919974870613838606729550260082645222629747529229649975018305386359364340938947433429349561641742419440507666790482711828754382826756224169625189270297997420109967085546464664881602092738299227530414958853631901701587424745505222477876412562147312596314962394876678300439067001051853312075653790774398885824471798756954550842450456643549798293444148706883205042536177609881502605670867162695824334480870815144372662297937647264800654241273683089386822364939664494491437217728439847459353517668809423367226734717954063918852064818387338791410408586867749528459505752288417983168267648836577152890744902716499612071817719853933969038444245802300891199392130097188469240636162968467754434458358083456694505810864874718971147793882000626340598976929623608034501581365885138510572774375051172910071086874317308499932926618456426345041103500908487096641669749534624566290880397483576473542135330428271314085106415647458823790369162127629369635474147448435223869951082757241274124343765839019550281535891598461346618301942996605093712925136757227834411773701652982723704277244032536971877352656248403990526423555242046997504285004988918265226847829273018339844802870716039173720507774717310771351456342262195068570066287845639741189197401608551382064624664946611590421336238487061114548974247327687401770187540152865979792035009486289164249083018136181964221532434929952255734785574581706130549184567419068785261876371377987692430142672506367693966333015704827680011088713018260951040661720489473435411985087994130937204844444931698692961346586935309778637865263416035298998017236968446305821698854589955870548668283977784232900056954729052658961759917440178043798869384388180674851824778692731389327426588908069512496966733736461880309412788808035030205816766041548832029626687012289633128724671299369800755937645612732021631518744109707967166830894415324700492983962327873113554173933498749593761354461284457512742398299214907524715398605791781160750776920157020534144716947157802365085982766547409471963752871641015933138284416471404817598471467133332614126198592499250015881838607780808810936812491710873466390790319195849471237029741100517844903141521634176003585470464133948482863844367041566730436233930373019971484250984492021036376775541879839498448374515198767345054103360785662936761346489670162378655535005521515601612063629310153231321178004697938057925127059316097600444073071945042894882701221982168836922193893926531529491363981871214526259051407903101841099302597175690058618039840836890870009654493709053251369743473218286680751768367115160765948867655138445208389572972918217003283629468665188837749405006310280291925388185992702255224676307753468098050503308931142120966523650824619583619035399333698226282054918238749086599713249240284983736052678262267396250975787601298604851953729586912562559747194438895370142155856110194919774695407000817247187250922152036307641799529452109350848452837059679477539234063944877292617694547196620518793201155224320730441975991282076186242312317134354611893198845998690104789490901743552530935817665503535986398211287708332339093383850151299401615367105935763914445251320243919384824637998625242295856480105825518185783322634159356006364672176287192704289145821932263067355065788151887295145819240772136439225532987051574995324017404675639110357271036316256362498346416795470812848562349747765954108938562781255634061132596185743089628742993223592533449269393537170164045802591184682592142532405436600912205377675188252865448688485150570910819964313356622842474896659329245520569513127435815844055044040670739490924530499892146036163709475073608653995779552813461262176976976740624545171400975533549599287417576181676457138309942046434940340142843645074964276718293936667760146189518083314629382910601358864248913671755839237523659048893313546979664424809911722058583341041416515176052944702183563722518392887104693275204041132139330029450706520122001590737254791390066260202237867734418148417200253113853509301766113325946837099489800514766751573726989548085846974523184449387595367217031625323454883132292064848836393720454709358614448009070066244480829933678712343385675040205938678044282677265522986906272097877009068788419246190964108944275776347624850968378434983836410563399743162980032810139706655534499974756296151810818357248537087921658849168016638374401897981698594972085452808401095293069388558082551083425514832274195509906362383487775178261868178051283161428110149268568724593527537203800849834269492100297915974531508416534628095923093775199801980620666079952778279556004568683824539247505202556019016155022021254586431565672476403061626706577136460690531777835041368027815491261422051700001733467509807160716680203172287352656317886651821351371602208579083001650404753529503484771278810369401949444028950388209606968318661777838066548201649397801343471524687815313306972808436487048681364493885900373736687279429414382774653344775491845653900958550071396825487953332279322932532194404193021719463440319657128810264172980896014594762545892442586487213020361396696445452087110448917390613109221748105230682049580273187855173328004698049568811378564536032631867836318314919621676304591036449503683301303929357861750996361081842590977780729289951578995826118283339826637249043508182776007481375172079569890644600010652934705138862823537194640398142904956329177382440147215887840226500497716550381304435377789672028019995066120901825474606880029236452547620725102115218066291047228582507873655490339647909094393190872789161532517720038557053008829810168750987583842875880666948210878170564835192288328434385451993973157296522291390210407648744482137009985546987259414572445910162663911175947907852357219247210850586495815694354485821748404153783278664088405508888211181013611832130744974468119890800489596415869945817648085756393112939573938199109883362471086467889999055564568591313559747769466830943591619528169565804928368664455520127619415728867599922654686142745388504050649224898987256725994304605638407117450785259863017615552282221870422955569961795866680655101578354472302740446453183020132885521872962763475070874195781197809614114734754132915479285993314573852320227813276701062267169199830848612442539889328053048315995489373362750760050486339502928822355624923617467990123276695286129987688414855668572299084743131327619090731819941885274476143120732031684316166246128928531621005148139531850642119182862564778895300387465770658571712282089812426837921447696728527245987253162116138320929996032097462993464855435692734517250438977413353493034847627232731416177864860725678977432928464699546723413722265447265884247686062950877170587036208527509843246927157736352024123395131820822904049066028955727848030064962386404242166846795336939771629389067919020934140343170133619273786889884059736706128401287116607936304957304894321333497664542698257218416411587591511420600725955000028480455923857387001762764381235785026257884414216053280539675043804697216387194346725575036047952196702826931860344165582002363140715764969425819871248959045408337387836209306550953104010937249069276438546381449514606644645319948769200250951331637681823272454357349710882760159778544191892873232721371956776416804665641577694736294206113308989237801452065734713958644345242794054953611955130223500479198298207067423855495614396551942297316445586201014914573998665885546535125054866765713495406725941110122613499406942639734415410611459701814805498141774955626144867331037484145160725405748822223485699506018008171561304308035347834403182673452431942840036505671010324666596320662684047848383960699364801330903582659278030300399077554523533666857850048856935956996365544199777660074820924527989288575923778066289372395035510601153151204879869935787863125331503652102953819037918476313693250726432482283497168112996953922315634372684100697023989772066631891149842931037438159498574564480718809575849712469741876659659422077747154967255460874618376618503839664586536523489160604286943024163937970566748192302057070192434110421328868776358622692285522522123481894800618395871925284200525273634471484351411329575718594351904870346920533762138373399627837938705249866402331409917017140650282359708987747686344974677946222417519858576586674598324156670857858276841630825533016233683855279087606695511978527119255173591561457732254302750902523317651282182079072137950822937973710412844420322932130919373096449567106802032338434543533847022342158572528378220828008818243225689744013284853833470202951599439139553447191795542277686687829465033383737165975690916100157176405998004302281172619360392933608806015458081034276013765726134961101204832826125867601164708605712574987723230885242045220535175370675444763752927848639454406469938908399816231302710451570064611491767196902355698537216182953360434616728689060793559391607767660569691075159399620555217372201830782782327146007171275472844676220385818818900087477986199085500048880861668190746242416892585542666518457485324124025236471300778880305570577656176394420571883759611835603233578990075717915246966162436757860934184081053828005367439504477387005761938824892760171473451395205232230763586782480865111703778262627266249245602662452301905834989143545981256455135212217501043831963990436908429376737630178987151474137751356823818381508655566704271559610841336589683394909065849112245688879419941534503898336460527297173445187795484131548618267582193554751790005310301224238031665665381220342207922717281502888684529965053600328212306529022416563296756898341606101698958040575416268128470473495509252406740219837000727376544685783855649072793673583174547011193709030408837290226986873028737243070682197248241265786427283988198702843550078982839829330423043826727813512403304065245153872256514613898360317814990306805000349982452933246657544712101288130219279274239686089930162841678475977153788176277401942209249506826613294833798633382281724829720117450256248541264027882493903406929895112179044354982606552703513748796925771149764907416732605733878897234548721419083205371513264526236093294409339128235345044366326327661854849023602340045710380907299770403595989984718522379989468996520221489674370480078327713760529831611407767414728940850367777084555132242089776539381541215630912815510287655723107331589926316791226355673524136943689108830162737196859900056835614134806077109294202078240340659308628701983611122043096626219463858823152559574679451988982144427541405180677955928067306545592667772737246867391937765773822071926267072725334244778841431743520330225270862292139889406449974764068636299673013098998160970798742158055958686962474572066717363920394867380330283935159462335802097580225157217222584953116882716424222648848060545089090456536353138534839371588592647511184634547433683105167962470806414944422412494324521425560471716545807444494927148876660372306887017853106042602445591705030674884387790594231313507322921793019859316352435962650269622201498534419060967775047251459482786120715486627137013982036026827597282878301726401778176434132687592942489270500473393102236211777437190953606254956640343129342779392789092186241124082303258308250930941119087799460899755411008728973317510950006397898235551784468415770614479205339828071408178505812559643247021005443652158183678017890132127056820983209899143808166743506164376773816076607779936028674590459987157254695831685419948169714376426860207813083340805538371091127748931438922017460681703657632102346688983512443655201907389228371265986749342767868199842236618681996346115096118881250734222805222272920354491833760435708117145392580427030290611860985016733979859569210812481027435158812248824074459121004551988130120120269354236323398207170975929935740253439650717667529371330656841733184230456341210849468782019935637631347921681319749942018897913923849907070416749565731958849811442200896423446925260097033883787201190013462185719375686113519772008655005834569040906270087480584983482218804353706497144474776203301575521838857562656858155294058775941411707983091813361752280756634850507728398763674344506167739670430495214814867956277328250993611865478866102317079361517890981267427199788614404498299726330144813894564930130932579452020704438940703810679834410224821423497126832304255452670162161916385761527427405706088264350915521605930999560034108942272553221822378593103243302025395799001796800273444288812337194138565169716795478844773879048815976602518687463732633028539622973276753048536971619821644149491982738296509283599798009732205878408272836499232037330613362761865533594010278353146934386336080607565396295166392619411142618899126946547455529283683042688986340516806086846253996528895402871852643191819900389588546594277053436606796421645658123117499885791579772199069491743841632226216388259268200775289587855217899759553069400915385794504833335138133724875930304081828759564357621204547549867446328004570403365648410606608911027709859488485125610802291433569756005839654664379855920302161858104374344497295289232045375720175012246249110776848672686282640917516862454849529569327650616550142120074967506146324308540668398057934344101166296119689979204603222854535343900265237190804008811650547704942789966008270974358383484445131982722724653705364930417965987180703056845330613072576113221328394978243004929198249717969554309252910043239349994782814779045498923191722491087312931724166504070029108643447267955605663417379012773427858147074153520506564839803172899689727911846549600756502234888969314299306165425262906741881009546995282383245458496943412696383155086976799664409151627479436782784493665613453451145899012621022894439569330735232554511789115580835319500446590538933034939374310603963718029724414747785634355377144362359440200458170764319092966379802776422932533580744608123751434048497255102093090978457918160773633414010996578672799240977683975885586810977680144326584358529578301897909943691106141924610801442454797753977447397181053541896288752692458175672817829433272066147874827490506403646848672122908619751818407049430073800807094098593616076207549691030275109861908171284340677125340937428256900104230132951674187533294804776272060337950082923343414154141708067666651079472088122484600043796828562098900947275705496184454418302858318424463583290316162807932754322328455577406013430462974722880869461549296931310703023885459349633972968237796232494879033727582072500690652485109255352570248929530988795797582438566119855046178449040091156825581758675186291170336315304087769099549461551622132724218852001613421544703449350707998773174236923783181482840676572256898652432544860580376573677745763715927680636386514774269752744627356618753640710066533276712568098256276495923537523323116852714169477704644649606070054373948258939700461565670430466681587382695503896061421701799803292677545465628539123624537935911481926806589231582747380616925868897056350273376760798590152921341854519760139781896863162365591081019834270719729748034287318396151704630371372816463061778728270905676826375233589963893484976718211169182029232539089146710002566977327564222373353790488251988952700157915319533804270518245342521645704283973277211793854740905858405759963185815422903149530131754393583929267280366817620794264012495069207148653786571905827319376419272887569236172020729513680720865095079867392802112251599102587020356120736293547912998001040473271745614312683769167540765832179672014315163229863693747194094069888995923547757887857651868824589195854038260571678678354326279064501254995966156525148476814847775018977021522569622365992362611417621796571888366260203007243288765798866850374185250292641260900777041395134057231414131739714814751478531886335255305643549913334289739000394776489895616146490537913457054027936908006366425165066366506071271052797836428014512150129516450615694156787340226048919953601531734965962442077005459108438875276346624046307730666521144811233028304135740133918659425125623136292141138871392036150904592332012967350634931788839160699327391740087897796035250022450967771475287111285766951151043480339100304735579475312723317626028786680432067629103844636026839409942102824568450854826117924008080409895822065601323535858210787825983936836078791566920134798116110895203876744911991729078050625983959526972630041196125545229356690031766181983656213267905896994237265244956396637090726437508778778567636887132615052551955116315514472440185377535085414481401811582633453338356964486463191568454742950933619554244476976903805517256769184498362302145860878622442445643902327129724948129631866680251575876390018372908621980845962010568717009963792646000797225605609572613039956021420086644499992144524975391136015633418152489156275243384226238292324582132037418205758725249792910283235795389075463188309660030341850874595075745254462895572919805475125746945737336781697440927961231844591751491659419269371400169169932157864465413591697352786877249275972393638129911375428338476634609488174313527370426709420872773766477570358050980697770274516189883604659433193026997976458484671059544987540299428363492362975739077580525835805081975175754103609377226081406854611937549226565928692203070948223196378699507962201835719046387334951466269888365252072804126871584765419549599154365802504130590471535484864848686975853180731478885792262876217026345852685728481218554713157332877197104963155259043891669619250353187421486340202251163909666210361570763194160616006929091762742135262754896081762595412602388571327620595228110835843360272119086893658531017506429815377114055877974140230722003273348779247013386267013101852337735490331069515306908081163159361428761717109401640877425102552429240445806167861750333961237914168113325426828618774629046683197914805363200739572198278975060161988507771181381460242459112991535014124956219590427075951438145401114488100867772209617572666466214061220862547636755015867447477594384738616658630972633131618173308361398074821753621974567705562181794942423106005531844373925992790942975269158568215835529833471938418936525877192855570708836818276591332288639118507230341953495919942244617859855896934395376832998424339562970849786482965135533325092937715004831487450544080277730722137030503201113668147935713359156290535604396293545253311789320613773209986280456002060761218436557467002359723530343120363767564770547321186544113106412601149035548734206346176506421417055659809846457956055906331626785109159593346893914281713685329441109765490858216515867411885225675577065778263348952341938640563282727210892308857011847202901563368636335694302073553562348399249178797795461076913043119050032116943655847226336720504244402241861436246903316161190124571855791689953808120436734602504477058737939885400116266933436428133837784980877276783444237202904056748569374767033919476521530163480824364046036917739664661261996434119121339073198950162615026976393725403215085175696262919895088142682502142158674498884232414130425454558087629253430509835380183963940256584682275122516830899468273491466397666386275209143683680567516435532650064954266461255163329691783685803835573465352174649848291238688498629872034852401368081291090453015695411646537982996377151276516106091690106162585698727411259101350721508185801086346593798353488337968846092585253178576615375797498472521529456271723435000980798626000805688051679161323487286555316083928441677424570774716539311725419676379029502114157657904932817261263890584352873596159528278764155570431400125929229384918950087036024561139550837667403926847700141774494900761494553542357538837131821797841734418931186273645132271654668023327285599750044936536675650068644497683662277832515794932889366863808981297291409020628427040160641040439962344526936210316532615268439296016262020129147421482141211041237457811928126181741526451249020207684636324614922639666109519960759980756576985170917907824221734785293073532488740965932296675945878069074456684834339815190806872816017331448950477290272947425619876016557005498543802857872998854467543446663918950469394865237492522382265215293314338424715262292083452945223647619809014971768610884499225058506305475346343642812134432433837303360971812547660143363084628252849028488134102745133370362331360427879384495422141023353196002701965097515471330511513796145983654164612259215917979740735169635830042694337912350749024749381902026770042022763762076150310063046362018736651221439995667546159048931819409649724528805246537078904379772119794979042086618584600081671262127903956159053788426035732112755623823913353109968785506868825208544441574597148820261314393395308281620419381253110794609852553643768727010503903149746547509113929021236685575792389616428381655420963788983603474152982085337052404436128761758057856588410224802477972892379512237195896651154342299166897396338989652498840113049187694784833905013091389109592020977352764606364777544404698698381525775668909632376945431227593048085153993181995087380223939963889064375787934253843038480236132394335121209211065079027294754076657872308255321918076631138427095729753371412392803746151907778841802835315418267853918319687645517338265235548645096775343377178366712890952340137611801758620600295777975616434905482682213009706398459660938302736379827102371962321462513677533942275826136338367707859246383255098999871680224714620077745720820784352550228854079615870117612046300786377333258023401180765715399436524034535288310540327156586133390486737439283419382352684911719549238791468603179417633498446146635193032877677563406561600104188029109744623630435533017373990508147386814928349545226839880087903168672812670647179134440868990834956048561761487781632039807427765098249236098579552617778257489515016321946108368966416980897274369807900519924416665930194270119761664760122160441701936821720375502051177185438555841702695759440825080531305569063724521440857371496124498762519702997929150890418075639295028302342819180714357397213458218885966923044659995070985791118713945758295784586348010764948896494103785748139412359434723063515926745282531494049201142407338492621961066874034868502490230083986016749614283717644355286179941701427646778828366673917983372821716875140511900827912100594985431361981089234333328042798455116499756561126015123068325964956808145513497069660405503492373739202132172552392752017875103010781872955097376202670892280889603375919115192998694232846677570395200764607468000485169820019685136241638053424722572737760176360786455653459625298778645197251892582316543173214785699675960101308565233779059807326550903325649199018851275410359447886065264108381762520223114110587704829981266036013789190570896290117457422919614553810038946065910993992205422661320200860178364739928823145460729807305404932183150726280968289335519891531853685536879128103112672227951534069702470552199403704972539856222534175207403375830409188336212689465886384075497500835093940100042219324366672966290571101812594246359487356726402801454225974616401469986388673534639303429781194695144696017585937214339109122172977998455870662184794570405091949640389311922467603191582411767385219226014130941169542684809610767262074162961369436216980114845012823741753479593330196205485343553477374617012225003148006009388788766919721888884346702175067856519726454742837485481523900276739260426354242180578001193675085508314389899983376192608843556686934500331835084456930027637795510891149145610730746200517931705068094571693696025271315125539292090904898102134194193790792694997004491419742273858489233803020536881843647313706194460038769437786944735545493068687870505495284663299441436310955050358463450864911188604920917460261695008282516300863073766287452350344515714362891302629915371921889457023780174317413610295244494645959268568451875127757165492495177272274862177893230450539038200148685562243079183582957465490146169557769953196987375950866651795663504744480102685770496990097490184371251824138192061357275346197285048871315261080841524613204780825387704222222312968769926428004093183337211856494129898010645750887494165930464471304991359373086634360534777376592696344567412604267901935427266761275128972347501739622797011916660400826084016723728676148654919812072536703338750642397758446853535401777424307364005734479004733852483267208448672485953720865891706711773398967652178747309827546880237185162602499849768607901231844382123657749114889277610866086900397875024272260479034053363074605173194815482327043595597350132908279544827818446601177358247533010285595623402494546341958400303788130518389871515462284755938201726935425960123899662199725594759371427175176720256078194487071355480514144851028973171971674775630316097954016286782119028711568530479173637966935581508203277019493357651871200773530481673306737487366612117015546046981883668574848907333026755570336609036332401557506681702123831827960597492722441776822459283104816226081728884166991883853103103011716834568326946100425435588198627110514437931333878863695694699742829419977820762401672006002094021948317391882993131360065789726180416066080300524949378019870892440384254519701513708097229982499768380092816670043386926665620824034093401052026744296758482069661897873868673172512618745607401677216513171999761890145061349939736684054563378675553069326720623065331502502037769609749343576146603947900257140555183251833135054376501075576846289624427211126907661623271963556117262393721840961002122653032611069664203476772105613940204633944261769217732993492698456955614202005330404396893943580825137612578454613859759007559675103563414426273105920804440541027094669313454107353087365693899362224179150393731224829610172995715723431617638381111918439895805141864248318235714850239380673083833083491434034863429670309536066110592749753261320616123364751944886720684897706780324617315042329255690366704430323745802256368521008032022882654145790084267511624455541067149898689918454707357338317292611748774449824915352482465201190328022243392742961736512530452742017597667510909627182077374762194304297068186401849343044978079562790001691771782321174317195835193394481392104477675462124092739209931571014068962092659757556369560313097474004178463150685449298018053013053491496347609658866263402471237737398926780294091983375659260168318919401083384178934108701554774580087194597024799542534401439003536539744304023590970645126883970919018906090213148099774854062053537106507654257386042352140763017366302476357483800566478746520635878233132315667942069513118157095809244343974276465846190646906512242239127361053624175520545824213491760146273956519913887252710170575443086368720446678393934416993115378912883300096450997289756259333358671339875407923725465274376138342162236800858844790966080979330699542651005054911884198945805871811463095255914983995206847082186648451673451524629115947596990183002881530652625568909688932174060292095730709164171186508408665110686577713284804779794539964208205631528085962899276390955022480555893791230219005121035278459732237731576500778560980559026859812624186304631279181484082782092545559924237068357772916695596558416521634197779284450583248978998117005206403594023158934143099863800657403895385116796224540315830822756739057949540839475804238543884205847054722010518083425184226575302961309012798417939439167531349190758034534071579876759392318888499712661249979296869311321190031262291202933439868652115879957119489324580018931848461496302208613963756812350535199050880443558814744524097900901199963573636605091074639658533909636377702244985827103417338752054151707179706614626517368024876937430025467174434355112405665803469075795847485875449512120489326939215286689872890203270968473167722118934423303344203665442101579918357229154932047391259382959029034528356322613780034194246831152813253107543630967191515248313265250204202171755232859535641744527227118786003095046399815515772790482942969538864282029425943519599224448984865465047231685176679093852407410343636993151791470884391832298481775712109816377599316098938733628009266346820667322447853147938962606879412150223399834388541151552883288927607581922078510549336418077242497643390506891158892808857624700827889720703562599794068757451619174495488578131239170497509298107600683624686611039157233239549821943447842142658718118824223784575596055711521604811841068610206739681261145339341853484939093810416410035189439855487559806773536152420604829942983248797895851070968983285332093410621780182050953509714514571056187259244865581887660664681952063056930059217379286018486951472214339380084979673490536021661259257110553411195461623227010191705556833608954746302506695144644618945506107879733525039092069484050965528935221562802818029813119899821701009026215695397498523053707179415561640320008576966940110553618178895594157114162318120910915819078889047426966209325512044094384545596239286123135477089746601368841973719086652724292274727482906275373894434759920634678676518335298104810581608352347096424468693013536650793608396985963846888964506492666823281335834963331546841659681876482129800905340157186018933507799140290455354013317901986739257326993935605437895595027579571828545053479919363928460090820631939077826990548411716051331259397215232322048924608250219486250595714618145022362524028703453497077190489550888949133989138377829999480402330704642018520820086458282293500860890989528249210268994140648787736946261800909841016166711734392336527138768210519025567789105262330651251855590033845271988758357294146513417711703213440937008811744157233695574940661444519934312830922757368582511276339263470565569043301416931918565168858498459898986632361984654836802928848534850933809228296884791394342346779209637547178617605023950250418904857963623771731393513881595711948042070816856348938592390728342798130055925943043274193301376923646823331649293649302512798752488269680084237488668145815531393440913672670733557405294742276706426916738184850723538110221114965592590633111343800337527723940823911301724934221704200739710690947927594355449699328865060515098317208145029967625952440397629379967950937803991229520629842955776167348125332503390184691167950189221262960557902219691163113882342791847132050401168558470964381540346664421315256379078624439931498228121473297540742386529523269260041480751629313377028948686779906359578205547687565237690767131438123769235730928316720409974552778093712812125430419076673935683514694160200852610716098683238530110738657507822456868211381488174229808568523361809191885554395417651465233636424620809628729805995026851161626716085034682321189182015752408819116087884868389631861444691594169403879903318817464482064728433620894672428822421121675762835140801476759384726922394627155372791156001733251156620793990683526485948930272995299633585648351384904772491177166378876822046555455513373006946930300625707128979939407201550326297127061496208861979432773270434202122900111270265165768956199882714815976904206059653634523544960854625056146917702780774312945502546642189426336114541913852380434818162059232146307398023243769152210401934004487799994942318852682438606338229756790302829893475142517439418911411742245140872293701729431923467832478451147131977225927932151740147833304661323907752629144868364256522443134461957156054095881434704043051492508103192651624131374365214333888366222703215027476825767092941924416805329902943834545759806904068313451661707378242990577440854057487309218791473212725477260109682575628859589464506675560981087409247473360317043195437174636074118832939502510917710479738872869221510157464636534797915875271006160906480930161405308761292065676177525192780444293898652160958475466022549753698680479643294629959894651972693255502103525086955167066351549080191220702842930687255331473298718477036958684724814188409185012022153357344603619693501303417043569081525849807695588023068433620892439183984528962574130240393826059179923830286836532854092310624468287443081726773111312517732238301993527059469644135601723439122843858278081477583800665254440554137785674512451687288289509774364687060121946514095453397704094778598444670473720530340625241974645257113963514213607642303348120877224063848406793431360952759328692901079003433871454165979159629338233908521509659913747845868735167947358919980475411739348388958415158023687093505822983968153155169388049421936852955040867609594772385987088722917076009106661709228676062809722844725324221336926017948701870070128885851634501115169974915837395754450322763053253030930829112523081363884507115834063120865288239674414128766257701913454493795197655951414556460657467918195262620174535098218961874374908499441704337920474729115626086846092479965218772122560420586566186507273922185214997513908163615089920277277159211390949144830581328872701428123128254253447996729361901290462791804948755525618832566358159478815229244691653354265974967367247612367225258041957035176035075053416185788522608020608858278188405491342621523651578584588621171542119010305732085442593283847207508982516465209148217192398697753023783401742738966565499709662518921614411083036867393093372989526782495114604287170190791972270193100889318954129317267081419028879534144241765747853917782970413502509673801562302401285684038384265618950384853218726792057534670488215796721139339640036792956493267482125189958697592007816760128019589309192849243381057244458725621012259882250750931651509106115313548506416219109482668319375554654878134273937882392193123067334283377760865867814513566419988381041173757751615043506699978673989439748683675333557030063924691510418978772611370092994629818172686737526751435863953889174582712842618134073330832519453663377905759596767688966607349017576929865797225045663337108173744836346031390039606848339871817846614631126052058405833135491311075719379530752898585918221954388058761934359167498944119541939187987512712308288673222540807994328898477910287407027642327404499930968578106323124269665952081677194508372533549026486932749539771868670341207198414271471502119618311643981578595085782114307686422220644100073285654062152281315685059813814195087695804044212808397463070656077132691377804222286796049805977323137387480075607474258381369017705544560193211005584791135038230346799350030946578560109561715529604245268099942062470023825657945534231184717964600476740759775088927808164166584226239225318623791460290354409142016503641721865179303194156833090254366968694642381514718423959432818438112961215338393168878700969595698292791290603183569495400791997984253958668327809264004965143135472154288015728555305632138872483660659165817793024214715735980274441131324359280235456189899737651373637274278444032536035208757549268276580484123406161774749960559086344892892672520093438726283281229935519297864270502606667102468872334246140960466048333441755149972528996902050875010178694894581105052193730148958906793839211537023277939544271739278989503184837440761089042348533370127908524932254777239724481311554103614256645865899075484510378409959111378701301872016435576730901736266059593427118504480998192693913636793981922789752641788696283267425652412786274298883828776859776602750849802895891701152496657720125268583336998404846581710174551914144572309865565066511258082649101531733912454770752500552735387497695871708155789150051256233887304244331472549534806908870197544915802476724133970516027856924669814237964021159124416803136609267666471482224506089560538349162288735802608600420039151968751502260902739224442783745222556070165283335749705812280120917148957116794288203071419596154503378226482740076437602385216938267429531358401418398769571141312857665200888629269576655729005610842997329178647319585060816401792305646544450613043390683480361807782087256567062959749461437266672257416150426175722018266254986821837339245240892035446766817439034314432602418276459189885219151735624638298733338918747408105742839653526423924327443303422890501225504054156210067537594868468682560750508797693505939088039111005883119287948911113535369951671664961030911953925860221797793324772944425272501486707831708346793762328213552224987240183738917426296368487168438446990739184686354503605865180375231985473825242393362659050734294400330288886342846519904603710730319925927138791606990412717791192820388818009479413605418159971528611625153558166628591454364566285261776603412638034583887289878238099592858372722916909257813249614243504793443466050543813284018937402031696638055882971893824961063610458365767709203249695414718135135336819165542055440131924670618949753900817789685130509484503212058913187336316227374933417141581962956214060331212436587600151825647154540926818590299853271943387331367713315553029539664740884811507739298880165228208661754557013928761802053995266485263965869585599390541600242808009981455195482760746169590773290661231781188490156640584167898073882872617334239232014781687675377749590298523313782321640303144862707052183009817599013833562669537948006551675743218037885960994251135723272825700328777742022925222559800453956086605020646225837471535001468301168542445745659326365929151410930913737862009271061290384014603069281490873664326546685698697681921789407857431283812511702618303871395379976236313786913269066189455962690026690626431437175041747946936461209915510561292049284087276821158169676725179847854581543596613129339396209773960158913764922767943471985324644263195076761709778581732516905905095612497093622630593609433502842796899342260237507327137729610108311848424401591117593129364964380889651878421072067320975066758749900483173061432386241348325497504875428643002789566523759997247227719282763222631768525236973250216324000787983028605791971729004181818329292659570830812279393996294621194504738653042547257964123335213384106068879046765138181014665119203517711171163448977679469306048550701585485888539330986096785788334032589247606969624594940116698292309343345367303425466897873643219204505630831152730749114995568060550237429609860856474152913114385880425886478070127453410151790105045616150633324852263373820054754807831156798195816815168272496502065493536347199483831610923782087530035340187536286736336429506244229024934524604750944426002939424982181660069085306298747550726737747872058356514724930402274219108155257621308495001047170652819882596019737950022332507271209732532979906300724717832203381046119102561883865097686084179419945369166889552324113559856339212139781304242666367512572925372475302724099870122061627868552904220911954531142189370744502950562880778367174233443676798364259687604367191331946179424119629349596106270277884695669013670089398262305822390897631636052304254910090913333158233494792530232699612433947634951102262226237565890602465055355217083793014818088316792386885817082552307904041010282042868858314265256182777774142384404841466627771419392669963932528731784062828538175901950076929737319639602496071236954857454854288327504145012140714367796694659837284662821476326805098245209514293945489459775062354024631988231031208057202326374812551455083249991215937986434276109744919753263971124395354763424404417703107812151130059813690031188973166970996602223445922057996386963476518889905207147869733989610508888480245268018560100839226646783140886097047997201047962190759743735764183825542058539988727946326865410734926904481339695887080636782114405896664393522270019886954208965076417991478030756203869519141550255953020840928092544606372444775899944010424360440543022064795825315675469566415964954255026049983737720617501042402893692132971433766072889980220533945007853294295498689264166982525440692605057261671016733066602888031038546175689123558628359719950892909374198425105616890770366327541029410948738917491607674283214072987055003471622805364912993429140335084333274817309199228551075971429523186879870075444999453850238884126104274012233942276028810736051050332265024099692234740861635781509150883278717601841857767085581610440229476706661895980450329731062497745823670544885691761603861727040196639012129316160669084501524224437824043480181344381293467406765881256430762137401272015808598883353546709663578117222713284749927194675026906807934808576167834051327653840031590439329640461326237876584709697041290258594326053526186611740523881690437345313417313931481039318356038084757030869107910317605715332293199357904872186500873518558132290443726197410741748862488343448269949449307305197758690215906224485883249465692843374094310085522127813096133814240477897344985000711650663601945651267684569650610034660294391093454876835613370202538908532043370415241798270453983390654495416494559791263820990245165597757950559889386906620761572128419851638572771141955903798669145988274308822662785267998663530875196966702047593397912778718150844898613574404063408300249591548879059552775786708641896669266557139207919815408808577956976387005617321386059982792622091812180923551299350874358327901192742941481029043418366386413224869940604426594014111256086660381582029961409534421159365753835422287235588970916616039202107706406567744315782191711364498594509383088443268161470925395498132704642261641425708970796496063164914159235418979077504254383870705688260852187856487597241330945245225700417286611265849031911355347928706838487727168350315224358494253804545374560937670139571190370029858915665850763290466025832114684073047915848278377152038722824049115458148386185980282412561538903893008669926142149559911823250445744399259591422146259991540483034285102246193288127119357751436226125438435614800978837803802534454685372744867123724869748880672567260094276635219728825094939074706039616704692124174273693396265833697006860193324848323474494764969471231862092789873652282850333312201080778857363019167133332450123246549409173612248713390962713411346421292651214377484463381114550090788949578195451545337747849523971392810641481007592593797739220242226732598317752408875581727260469641044206185616682352856440747361169130582944477229460535804090089585487161886056703793342856000439031720752640730965625496548776728535943873248867955991484659518398725432592319579473182197268622966661406288015648458370602305074668992489757168248615988153997010192826972635897215248300978776916488561311198236800990891215805088404300048544640202908734215758698300778308201017813238005988169558549096080625904735135024797223859667206492127680658454636902697194634973271732796826118245766296149320708119450266131536874109006939747368661031354262873632582095653486200591535047397565707808699423312774581623953172313065916383393895554980521425436702528860192918216433478651389642705757290442574868800534327844637607396818610143551579586126712852184073543941843396706172696714651176643910350187353318394121834892534342328603380653246556542800180279742124755072269799946611897396498809777026797668553507617810756873158765362506849448851919952258675309757327619925592020533664009675748344412803615488445461804908779071743328930461123104130259654279377065113105197521301466224514065320676736373203074788388889723036768597285146333765944989591986184056266457027851510875248805151997686380609903996812309479969655779595330904329015392309583393220364506567820694309576151992451549567253650192812399671826396202717748166421587458998229488399652633417001641283699306994014094209992829806500717421486510945159168820903646393515960692619536280954150749475998923333011336191359911164532791111978339726346376078463349734778962243350232027478531949133735747688522733662291351626322575929531781693265740825388954385263014408994916853902564603029197979306188002569073744323084373208781278952628290793039414378355522369339585631554850251605323495954704437493484634236689411234063479014128722223662809417300409263432997233943030175364318715630738780802282943251066358832890024953890787429466132359010101677608804532254219423816439101770205732943356615298082841705538697738400324558061948580683708756209341885195294705996216458679866599217246581193618772919010735834105754333319294416518870435729518194853582960757615837837742421322424745692187425896002741589078509030121021073654664124100895992405060708237309703109359518030065575386605299886057780152284084824849628135906681663585073593655649553780789196768742689086999924920706974945923995579650468846258301108761932076463609944087274466030887931498239195236478013272052627126999065426934855930538614962565020369869365529257397840123238609479003697970615076563280485114467160251819782871759617128698738674015582803244329281419294952216317440435764257192437113117983571801799339177161628768162140824543143294010102042948829152288326404870926885163051129592584017763585507249361018819846201216798776851418575463888199497466733861540938650208402110142112498531020103683200618189398638965534206719736750312276415577609658579134601463548557145701651683150155862615692627131456196526660118188489320045917422094882013279127256358073701844083126121760661084741597004050526179209593580304968766527196477316575583290118133682579153868299050024685915341339008210142964324603466509259270267307704926065740353765407344534081704770168537456797313875691889716909277537601312377920908113290451713937077166498260927660766212573198302795945177036550245717359553345916062690750513036617527273755089497352549903228842509583703958142556451340248425272538413164540484459900674282238935901933101619634685941494422485268613207386432761024193497670654780033405332805429319807328337011860986629721283862907734295172728700567842641698413723447885394436506680658937373946685753852032084262931202428968461721071095826032035974584371213930636043525829825363659210016509614881646395905159784431484998399523278056574108149163666102808202509380090274413061958783570655735526018754648809339317717487159302512076486389638535049106483492984798094412965464030537444684974420545676408715053482490647104995462255155731414869865119945540716758064869593395195976815058688645669255350696475178258763216503764418020756948504994038086350327550407927382105931211753878698471022282912818239065399912827388806172575079609754546566922304157925543075606463394909165743266998017937838046237027528458787307710352968186691868624342385059458453847778665245172178480333320229860486157409322183950746643660973665983133624136469622559152260886256769295551466726566775624147092175252911504293558001258626921431439074757996509328854857842987188419034680082502294508497171464595152114918231349343326022297441482412187403097198879940610074263827530126175792259259042650843211343059373546042943844809499360807340442887025049989516003116248051410500080685907570747866950322712015702622680482137786771770978326023208362261384642209697795019446150630969539114088913425976544274013597873148369792535215678946853879616674111462040670279563815046572190329944199903119217503544514600809196108023260870720719601407399405316535725873393989588011405641476781390615445647087072602391978990761118979947220216309191305924928524342834024416928100492515196817467890952706155233782574792698256480530432498293059452782764152512101315794872157410556543482265098787732918345256301101533435449489754519916530302804737088895339406683861194942902219283001756924247339535713873991854140168992266555839307816651453675252374197804571256266905815641587780423068023805508833004585400388419578793660669649029280524218511882761469302325232801474992901100093606833406368075453101980438189213724142804963539049437111364293314642549386217922241788267172209427291587737068623293336676948184496668012862820214485137046777143410576642896970082652203611391859640256707410134918279113427570628179153949200566783975322819126492943584199605719080294486075575588030838385305053527434637341313811420407067118799733733178708473257194322183861088339389812895706222148191800389539650558451295089857012159721380879241043676967736353614698011886945503566189106988079348431620722054795286982511908178416471146399410161875083032583586153245811471077649108821606710450703031849844749086381585091301279867723048639073821207758043253720230603710651874284958592623183872416368858376581713322340282478085584823084368472228333027160453277681998911341273921404711295298923130591666887218598937753326480613564865158038574128082646811932492153129329806771921309667100478177163300012882734879561560797222719273339108570637312975897444317491654425430334207663406786112242552427890280463325961056032735812877378566661388659816701664000652301640091810643574341333201260935453193356017526702405567571122068681915307261440275109797080141381326268153168261843233706875496930100017261350706095133266729833799428414510161607101577704386980075745776578782611425220055636833395297506735234478609255512880273403796203079535409279362885574096004305397574219047852938476553055514913193682927796900282121486187022293869458659840778022749530900581411305111320399901907404308171332187610361331108125901330969670194635567608760300895903186622448759375547655981739817067569050835374133102976057546673720954239970985108111849273238924066140795455113749779117020301685098258208126461107632583977967878517229781204714666413912465413597484508791376150207693040797202302921629968015881138285274181401646020884361838897524588604570846384560446296123590975584302912779485302972774811894957838362386415859676093085885837857728006031727128016352876105032717321675594519008128853531514513246177360807050263338262563259635460348940609259970277959974889399678360568518593276283639827676911758560005937765746384048404164355608887520545669050174137062068467596997347105256471018519692436824110987076820964690538890734045574026723453767127852443024661700209579157854800167257546329454772933334126423478491244866429828821203743458841677884772379299942537433040662094040244680409515260878643020051956639602653707593112739486129757947511029036538847452856114122926077363195814525825245268054838807364691881471285661398791113895074296270141702101138761566790078952494086144318692610929016060835873848396035648681431160435484400239972118235421221182465606518259536012189763411578168750731360303474393663441499900148989548080160113345760235519757106512690026326239751340136350146798349330295443912115522479932427641142769331173502197888871174424670657245095930333107116609298857992060729848253672703320833427676231872620930895735672166513705453883395994172310191804959101586362775414684736962383650893285008678622971797137994477544977864726986057669270014380766286995642159138399575114634355691751234255306244279552663649466333630005278189355402504719594034324909214866001811160434090787374614517850263488030673152626612009174240545586024556796100576054694233178014210299717666869947368369239852080268775881650833976440936455830403160227016514202384680635958032503473798805159112918965822807598948978145456401554142766050064315989448393015568286083860465416670104245966790264797761757582051427025850246078550137638093035408052377686693836039290437493979802993843651813136726795695999731417445628767978964746912250865873628779823766243023014175893988706108585129174275126388593829647434699922676376787173894081683304348752810347980683992997259345111567229801054410433948042281157086162478782310697353071362274665506301259037012357208746317604076250984771782054073627335694051575459423142178790120313000401959171842932866728493273166739828569321257545040334720776516772825624138822266059354109218459060524360272217561652501673663361697573561124270894942845620778024623197072615360309505168230015443882078810817501111125907887796082015817222699377429254918736370446869624817201449509188924007039723944263479585107211346346030141528996969223631430686844550446165497882594133458488493211632565357052293950229090083254983414402000097910366177171042172625542175216147325479578977525691592015749358242749028312609603346637492879909170618478522110214612498542635017624567314983741193697384010972523090545163124108937496700841900699779490977034409866408830849762343887819885650262604364418759036117772607708038033511159095868876846489008983143246996897892104376857265163374695095844666520936604912781100366337989419100289030117798482916175555652189757989399216553125392116411420796875988340792758949129773395064093132922761755892168794923525728455781817445264989006816813364380190035098598767539070318136555420314306672777936991711157879697935743356955942528356913060019194227305632657953230224499093879661386117719310815561595379911426575863420137042578838790252585916572903509577211887924203948968371473638035088849088922273764218694132654487523187658337201573901837427599124606091706305605038551196502526134954711865255936474547276122762644101448794845263861868892801219884137049194917667228163312783310655833482235692076727834701967202116423502569794342704566402714064727903688779431745345160645429449875052743110390654248069370010049305542379291116826928839285301940271355113780682366049193335627626076403666021390251124925175331261677195064459080426298205911549554885792780760869242785700210912297405946582199588962493800471502456986433144393500456031530945687026728176057557501646324553184451582140131876538164058711812788943687394897386772050792713801138955121426749059708449690764969599366833348913255208265251098564561566518071115854045450160340362900686000021663983344593639231117119569615286790792607410250039001067516517562649642459388868292594489452084896124321421202484739989694918653186746274443446692397617235022028980690904798421713240546812625759263643905534830672320038292094495986370024444233837073181782588584349090586149519673551690397179828676467686713802231512984999033928536534266865362185486359224591687275253784595337555871020021702434384521884532651795563209310045614245291850250841605461908442915357923641313239509324266728811596305312086737190923870387302999401382247986400086334537684709750019550263976159558009426467142257554605855775289721887248867728271197281283296777540354475264819796469279670606485991949342499332385813498658903449673460937701402605276709172175810046228452027933949030760716214790927440141237573828372647654500802053237135985794863549343673658703365441710486867831644311841387795004343323208266137733821803040054175571104828962597196170694955039103686853922317112983190728818136763214530563743364645583235829537439239494973524010431426482826620036102966188646096534102006674205641232324805039063267220167767371913527799576308942891674497169240131135863068244056295847621902753993199229902657739981056245755858928953827173607578341897585431475179618112645030985141544553569106253414951928799878821019410101177306400574803442215659003163838518641806760100619589990534722638754149831483399843142220939859065966324896484332892885136246250413559828790733058588560254476955254881274441495363613476181183692304021569903385056449829995136322283741303133413654337017541601384280563858005200108454603842901116415782731937480763121144718421728438214791513720212599857286204670067303852397796636274472558406164890642600375324052977195413868774803260526439114403649178659298680474557400339609330761600995194866730202854472878549910373022966681239743075719261780351277557689095083902865026158161803275367984870726274098701355965095853723739020124817983379079334109470556348106568266437942582637892152902363373362155651560450650544074978849449297884001649698848181194027979136707199189532623516984702113469225783181273402364899505509011878136552216777512719475164241247644262549994586294929428734532765418039309437795710096978560444106635380726520881547671344349351552579704864785600630096339495449580218885148383137985418789475769555643514212472318570973322365057621491525192621343856183363384567058212427127657617213985071926635057735854629885868431514377824937363093456062205438006165682056936038586884705039443468437331054446717945170856746946387001126988578914984134407331426706436010702394001707361129459804658382310824364383349804966040192991678710520142200657753512398690573505081990267990395735352370692742901422119231316186522671961159282492406262806922453648331280244539682141736298472993203354146923483591882707027018494508134652655597809216892584833571771638813633692638827456775362807502025601659794596006910292182966270378663950303151031462902250051230747958691003340520051400863965212516343210384677022636317345140243528102978283161236282617204325464476630721102826703872158263148162616208190850231611599447097374429373524845728790400783645600398741764985282267734557967318172713627335522655050918193172675192005584750488724139269028140507817018763626614966123080570820078686121510541401441818520905704314080689905502975013104797091899195755812900380470294255910291271317696722319184378497783522735881407056354139313644240294293070053034430596848993481717878789583744087945360925540886010378569716798968860263688596359381551616223020629488757372347157814216485682553236653858544318217519362871767697785788192291681682931355512055531406997798576915761415366828469561874682838098502020360198568573514403057480509330584632585633281574748637398909042353538132294377457600881987582254410495793670397548689604148305803534679097107564883631598307341663791534572546737643084355867143618708498078682920638092198974838978556455632432919378754641643091822446463695103019377048155174745256069487031623134262347268670168378189524953358131700501670392073011650001613470122319723840661741229643753688790492848490298526600619319309475732032887874391019449134050495835491886072923221733401908956843994860307218037862252707160462179505327677092846872845261337049464762549952956919241481876588704793869176054581522354029034838382053476479458283508982640331958507547845761837463746260860194896171813058829114192360148538055740873654960620418486085359133915280623964550415161319160348695834665902662472110954306970556419842227592801821173611707347673547565792312055066801286936232717572216480963530294702741307426031392111645101912275778641881034177266637417025781494161173085036734880910362295743514638123358802745341394962574102721285845127174501063288377796435385574610251484819941261752531769028331955115248754811585887108273144922635816014471767195431319810157215610200036637249010482263583361048137235288259880676115921683175854644695330301170760834427959894059574838831838885858713580393944548602219478927500094832824056918975579831487465412938389065344991374872095396407492497418747912209575158558674428178347318849232687023377597776725186035296337534257770118774899725356061247768499409646973313131490390277446750857904577800309680121933797504549543462996497914758518957019980086347329104510940506171242439588864462326853646905724207993786102269698889108923366468233138330196733920562570618525569340188135822147689906923187542475090692561602308392944140381267868356186553412894204972576233550567004802783719452506314419262533852938257503177672657416539903082545495599223829924864176748143156285610084989297389886255711351188003909085774461784645322820431750374485582733167201038849822575165852992648301341997974262757661704770558942123562781290667624768859795424771127712706771072001896875070005841051336212870397517935884859544985229959350360233406929993683326337841511567888576786166385747639967318530025268504082649675358799947788249428480495522959336780481387078529392379212378037659678534049815749570472431071924066517005236396764065704752665259385821250761424797782809920782798936633415914477201726907094083176933119648314676855860466560912796244337889782188478423711691765308389479236133355318405754170463074518424094455708115590751626489202205087940728811532020679866018665094807387672136412309453132067862960981777633757214123619044459426333283459374430528066153627191850349957286186250463907322907143562852640035665991473077583345075989420412110180379703933407889794840324784887348694576371158164929274957104923080050313759813652287155700308979718143289107708365263067321694659637836397087546246690519904581960388355548898168629655579318659839421175545694255560035731458864534522535895480144151151773009090358494453363048375229131512440292127652659851853249830149698473904329755094557944137689759646800484525462976291870736145687837145340595065040745117034284822511063417396137647029942961223207353849709067501078834479868082767458560929431050540845540469595092882493039399600017077261173533155309040725641722271227862195842850537396172885244664243306849627180725988969707206717572241355993700008777257544747335416150873503925269432461147471198791521220562739718028474084461973405633758187346419330174551446635909432867663924183952267126216830002645135353506629559452065801864598809910834749580768246419700214421985860614862102033069965310257034476931088390696401287337918381432136808548742716454423664555745324621833528600621529088974942087136551073028778410213385056019107848708443923684191963070508435786231500291648245708574946427977165533955848419326590377640977618711956095837337632259180423169637032124383719054527449128665760044626843892073284571316529800743407045206196431475896576897198394672121185588137059980690836037632450466428222338532346387191184987174675826884599194225705520232728474663738625136281382483239705156712764401409591899590448021253327873787809596158733221717154926534810139565565498491650933219476987302618338350414809260080704213513164535116342592320320056200239810681880601815184113708133295462218339339765678451550133685739145361507665617614087789485720116169926814216752891426633771115401780880432981562445595206032622760714081307661274991904125952317778302000549888567052732285095702114313352350808014874107108737976397080580848708612952125355732495543932108102956233755619406577520480484464626222262752872940457759093357980957070709046691774334316880681788926400308471309722045427009949264278988654371199262326911522711217416763772327675670901475793392007000649279716494776703905400343419663190860621797932930278531829575989331077919763364916123730233110120320176825105693315181458025175029097579291087436746191909253403095829335383727223733290092516443073003330267337456933706590431216113898257074756153718950020299177869301094026533677513114293462185584402419107887253918067145999587250685261134676591733524988078635183608314002350363678727555453309681324691486442214262458628580784569607719813348524840874644805721017495759532479875069682434190690679380009967313950236484846959351382464804883875671417795110906069293493908515663568969591892255891960724823024003143725067457356065390419402556989423349142358151050493836156299725016705621028658794378894532358314872166914561388341979489766457280214727025243235739034309096437273188230432727608825414591437941942578942548445507993374212188629720918739061019822530272854806277610815880655457450634880015539640915232332436544799913772516774249246573077428087766709332807784377698319176382167038911951749466640705823114886173352810250985443908452240491662916905072720201402158233214861445478646135336877394407959664115437043082461642307658948102882943668654079502541953613356714346122318439413873705775075672205763630313337190478724260911316259681720713639682924655073104100669392351193573967066467864171373153012384381866228463608503032303708514838474632868854576291321538238571267017201541483271537945934800461295553753904049755664331266448383728096363688621048551721948695937077336298947671392049460728832747643630202828135871451528039318491825133403095068816230447548539017068830058309593244136905866495107859185469748791348626750080379323379140403632130936922146355968063118423700023993551909783729589572928175479449756900424962803156332151140322278356802445531184619115340570587645567162248796785815527100378331763828673398225413444277977335593336653069866439853968062016872013694947704835932249521991383462360455615827646164034266666291462864628984422030939618651842234236230510179947776865558455202460192295004654273383309393789087448449148873955403294497251696642315817541011794754472219347988223009663116110796636753799683420101224174135197952058702634609495921503023555673085281655384043521589681009206545306083420662645550727228547619048269814485242570408866458367177665135225203939516180965985757582058212805478474097840835731872124127021938736222103441362901023682919339084768689649843976936425680467802564663689677119859107000066961983022338935922551882421720999076852222347839976007838729144639346657025684240353680052658289075117020548963358382236549882773326004392588984245768265098371449277517274575306902916030804771406330935189404001050665752518315080878470028411457470289100429676009887651811262421442571879820368583451846490543024489804682832308389477024287326402671841210031757050364768909036875160782101452754712559012053220364225972164182644476440430255871299299303406074272072876570438947837473273078774910264159302959871397200385837754984818203672722219795892081166022919150477805736544391988140703286164988907178316204323372586536367601076552138306038663792766151128412465766857278851215117527293254524644048559137517620433102991967537229244266234935806395196228009906419597537549722174888621626124616975724440507794646457126965168281604882696070712471172377823140301651789117334407357675259913501541692002760408467185747566666389076741436834007305004654528657610012526467589372255414052889144931300931041793211138819507798896939094538354015172042410100635782424874399059295134914274335706962499178462904289075153482323151363871801715456289004796964897801684853111807524122370567443107119083644022066120626382586509090415501890031605935788942168139083952531323365990423325775049075215500078728506884186253539187998571352119728874329551344840934912471187863687668393044051569057761303783727606789562230520223317276517652300868758814681354019460519063777851405826158280259713140952189593825198477817563105823669975466464854205105656643387345146037265051803012459816114028146501744591363732584370399391150028528666149497014677886419118200386479335141404960172429799184400944264587193112208133420147497931577094535315670402882480670111740036162771423235295390287409453279983434023705011372352160722218193727530118479458412597005530672166595573790865299236907410999219480695755227387430262824813233803631956032222726922396078251784087081531402975631944357303812697474657310359844741607331536249920586461865732238738881231231142788183581315412513501948347095565792342616824113226541596102625196366001580026055868223256705696218393708662107326554025549520042289244478102663956137161513570004519906092398733817938012042302046923601211579093774446195085911128474888601212343575128475511086082751167861732240766016949761748509228730746755174275311228876894711580683338948997094868240306626761132811078530457331695878119524498415602178666575128725848652333443788102014522902115736565599930457396576549189900101629857943855811907836439777304148428180194516798127930690020772728755530829485387999021923410355222855458351108335948881106358237627705670011927356027284837985807946120787602330490303593117983510913001428114511577447689591589735636022130148811339426862405455971655702668764206836779149346330944391893756828180537932891066431068270716409687187886450815140001316326393436232221261100901662193180133266302244739330418955289026842019175483246865723059317415841541281882460739307693984247015384824742821815854049287712480169383504523549995816324200730765230882210667820882236237728112077372441908888575763780260122033851821185431812202897847853412268257428761562843091993376584178279123050016461128809409744689566606349415324618453642715751548476917286572370226736935207104272687748515582945092335253423219846604024365811355880621537381720862606676172508671749687954849319934805900970338769164625898062122914240463825830224002740042917140390061653572844667212194447487751969713415552712174503316518505182784382662049626332917947749973186699558741188795338003785554393540762544915965397562294057979796790314311541720690571730550250936786891122178310913270500542552118964703057910478447200499669748874816557759744019705172040685177780267704950020486964124606258212852810150949203133298504907126043011213789681014498164384066885174188180307158723633383864133641811464800158470911242571702095757875234376001873940415070753773648442023106251597822143252568973907230917745959819250735838869441962313335958887060475249542578264964490759557519328219735764891542548695306920469458819481631540234761003251693848748568988338364110540509023411006868259131650862922387901735478776732188616717543075201672833745489193178092939428832924591218980169364935178959979169370716415832712056511782961946753017558954384090646252556343659665282730454486501781128656539902008090348105042625252323032300332006145761228190323005596490845380942089114078350983615708588407319528033760271730397250951119453842647888110208117694067716982381886331975313464032717849428106526898797534703131963630745210272904324199265347888237298391789179028139809571159103157105879616396678502528201847956842549487945740291471897627810630082309651299472489239093677107461756648200933764828197588875445417407789499058609947085772377027824588677963786289628563604411921552646327089655779830594765180525407287881705319784460861371689048429026799869065730596337801098686324794284280030415811392704570932942258725611592883511074981491724160525784940601047925528515128230911090197377601938735994728711743919062883874092497493199677166625679789453068705431619065551039404173135640261321695739303785769355465981341091241338215072958144876549914477149100253536041927787772069595786983006535783553375392552008025735926551334686305004564838732469399897218207385767116390941331706789823877863257476937870191095350997110719922795355372647209708159513562380347674314023193880313845497264920440260108252234265234328943247603682758590425928979034905560706148332136421122464274625590553397679556089806352288109607897586247988589130913466712227516427282315205559770055096325035080637507727579398041119227631941107334953712574692739977495103803771472137205662161910019118100325774384649251529202888858045530318046712227643445857514890556972988472475357312758121070106783511885068975672794855579150738641000862719480107682968576668336503210836310538065118526672633050723591483780695301910321152144791266048614414803411799060556859924054237667618318360611861597377571824982812030665581158064667972631570776805413026425113342976439541002877658750071290446657220054598416000770691700191448488465392074285227468085073746070117971696823028918021348057448619114184798633020115942725729650944906068005873058687863462775651682767610861904347719898084088461302653719031586064865907114961665004469303243247868189770869308991267999720980472888389632290610812273838966802963780174040760833324864709954304520064037207853692524176979364847079642243320698210937166474115613013624266221650836948939677581430784954491662393248353042215241316141605688751079506474177203542270143879780267028662135028292813949194843460270992156646645922638621074444160207970792064855710322181099140802270351317500659542749926414871238115804968135200120942378120689401570058136165995157935762061286390162863308977582837241218700758401884978954499619777146374359570013349062953162180877260449267298303655012026398506549261841441699480706105263850627854372141128692825748787427269327441941626019877701408242735450422062670489593802625975544662879996862383551649843238851415520146684209082318047300278175916284745524219958294262573020408828352120118011634960151995366641577840672771364606570442039263061954517959213999122164843279358874357478380008012105763498211187795035644756777178897744358384289423922543779427689612645015217451633079860834321676320747361818872965688791999945960641410799966258333540524170870189552524530743239827466615027903554314699935011999821174280228196091719083912254440481654206035222685623377209451959638372877421592398210614653026776157007017888066386264094391894947011298834420447772201645328392587322530075998478046005075038294499418264397803543534557899776898581898410623327036104730052374856595427267346689059233950014958534722974069518366478063291971255452768140401334972004994772450282076462592637896513438177590941468830551533044099006680559675588942342928184582853238752863153431796684062967587945016592184256878715008108949892262376997395376833579875043580462860316117209330122956370401279888427729174752604293345381139390683827546935449263085041783359985771265240377803373324047329797825126710907117252032289294701320172992121411507508923283336567952522367435552051163260918127748787085803058928827273075359926930889251021850907669985601806415668008843317997934831151948398653461605933489107570678958650805367578485361211103688144427643270948605490474502550238140603474765337431371663722729294696818759905232642345624448530948670577330055799847644073527095910923751131421209054084959325243124864147126150006785259188574477830690574724264783061226334275056382709913797342310152205160729443275257524641240683474972477168767644950549866541451144488702645480504717892040183372428479165946594039635088746076676660054092140929448023438733280261511787342297696168931616622941649554586818983134509676867844160760048795183378509884299480273313516859956368523673510392260091935465198064711354319206427942111719389724418702344153593008335269374685633380496093176206363896246932752942781373879280864087311646700277088308524506699054774278236673429028619124734455355930698783121773419166171600962983892211064610901458680687831458386047345194749873268542590796220044985263005650826209698653089764316831967006779964795749449426631411314844710276100795395811313603954491005603847914460608656610152292833715695221619532697064741230048981249150995815004286029074819861007408060776053255840318106428720612334827299314605166503806793697147730945016252748637810421269397619635332425932696599878575302013148708703803467216500701721756585388443355183475191246437874097580823282336916451913641721620210361444922390027038153297223284015206952819689134106077124273956143648303912621540414036908558404986921937022362299216642462763969897229715955386831272087808482984393246090892623243041229768627972205873150505116267952992627990134479997056379242217909066117380754013740625263840068076888753107836504850923544023276447858215025103772583981338253869915342393038660473483307464236808816778637080619930936374892986060927125262424427701720164995785045111941016027107250939006990839699498200137862126608783982426362819895951414015197906093217550106875899219709275046137669582843673215484163540068582791790206799504502496688093717231894102579701835166222220221923871499771067783541064362800210387251555891647023519536383569096571184166887900769863533030456887254444160736221502019015812199882362556589761896485369088271913521686443299191861528005090392207104709902726736762629455409513950237734453350749112841881040785396060674407908732777094658375411755984588318793965516146877743103033301911739202449998245857450995079435144015249854158404994192379056095512560130640806105038701800721232982498967501380798372766243412490398747341945765932661504126422056521950867545541772414251999022916578810507261887847127193174303930054946868495184042328222470582528928900000329972537291507941431568525638826149588839704250095677206878865867921754963534844581479638706034866656218970440687444817110032052669725089727244276368126586497910476010548421011003930228527418555124494868385549695106177540523009382919097986656396241176879535431475115880171523307296090961956809506871476273565898757683686781850448543557426930127469276757601253716744482310317232483498766930964846736592077730780009353572055748668771315732254467289162816537562463473980906807925176668490683818050307425520471401406022264870043408410850559699416960956847109477751532428167360686925834642987016596496873198439037596350345269756378282725098731311227816642117559009209591760182040419427454185860299946768156282165517266627686049477863201633472439726773571882247581385218254403161194929279152070125663622576174999791250655688684280410573665814259097237491174758232329672387469862683592177232965437810998333404382568026368590065006042185513284926067901527374257639024821353392431671562121410699640994811747134776335870350904110506113468506236298231301931567278390248643355287416112004377993362845715995850705146613369599503614324526817429632475165277250664202945638980342655781423193939354441515303402140519338144523059051320703624550713259557372991567737891321607626888490705935777099018624082246341757834451496003492606437617483674938231768128818247823991795652304259483963322509203693283030876561727177392695462390723699351684843841419871224952781224022530752067115106387955182666837936085565113788078500141967305926008493153543682414827945770391548833450958975415454298988200812004145179090135558797444921214349847675428139869337433161410785335923830430245679180653515528265159027386794680262882901064945265447544001262716524162821164981264087164083995457231487985975317203994794898753710974150346842856920510401333030937108834004939099447603889776902768840056368652635838831054760737612490313678386943584302558869942144361267109115118172308143664490725167582127928537235606938801252230469519062424267970109205926274402932386212245372059374750765016205269713169515503620260190103980667928370234529216611070929948344245192368439290816515288325555598870173404180006014655690137391700568720112087809489336413201846976504774750082801262350655800474032905690067524217463146134101292852017850937781717538984743366127014433353182885833474713642327496572190279421668572952521649933065489504779668211738242945544912257333934359421111066256070174770321932797667981144492273471138936592965506312230240759537725651801086226758401117735314245158441020765887576065819449775701128892622155870686705920580918558323062586779162496924629675825679084584530669095565271897901500146806773400291965982060807264694691385768440734900821070755120937230160993896167139268712949123600520573965238929564677612372257114500915453553315854117792593408626915184040573630914351205486428676124377761649391960527036014056646568285344686461013079655276311134529739504479836959092792014670795832266106922081153756467486239714898930090340193721299216605225148420909393629438999634543482282659227400532229785218296466908291440016704050721348417593960574913889966219452496863217884351692421845808417929267933907716511490782897514232819086979095121292965598549736961317356190223720774552999600337654117773999572091169016860663809332944533975029563507442555929844017720955177563078176238938993940921038503295736523158138917526135791398921033541665618572476643314000947616638723393570560886356899002059566176425923882882808025281835824282493369716673356054020238782177171919278459238551936798783029301148627754615820354306064796655548839449544659902403870265966828728559565267965576691727423040066346405468830612899684183677000148502980792947321953433797759409800001754394810111802768054223520435560521890376811609356659383462492596888889308661685818366539193319768971345155810155766446400169929143458725053170938256626979294374603232671719840481190253846003629882296494155658677991582877812563702496436956865619375377557120819711501009476739135335886227426312496962888110480894128735434373448465899286273151816208772065906726842871827947735158758690059187599946872254106586865227987235780593020112014834035023545921232584119409475738878747094497528493844767771632620272263675014268669867958432426217183901038327618091961750106737306096617497149415952418775058567208193531320558472030867200431982471997573494461932534627357166416741206141765572006017557518845649570373138027826836957605615334469481449466581337367706709111558192470280620698294894959198065067989712911228942712320540031236773843752218627344743368763416859258147423342232226712479846832133519198061877587895244941161257536666053590865474818902184886810806929364067309348638722883106079720600231158903007764223189946137295759432606198253833024787616336813897392067972021364565471847010623102748221468842215053281819511762243570380150761761397069601992220717360728824852462405512877826152273239159938162163898516362110403000389209262141975105815239027429004692136302755686539608398637428204406943900739526684683691700558470905567990277151989146242728444868465929304048133581155387921113403108678672188669724568800386500727380795151968239858520733356112044604093990493576041868328001023975655523809028306910810459323371262851130512672358031887608256395390295809403979980748680911361229763556928771347006810151846472676085668411664039408249483555899039799908580820164955538572465125451078776250132802682360578389686843233920272121529698897137674574801273454854852227683500182291828931093239015997253763357885519760331940593928406162260980804719113624845727806092519743419059261110003404663314964493978090516507737838094822413287918013838046195544960490404214682015029459438993429030504280847057677579211161805364294786902104412796801245649525852942358206299389649603880914990152694218317647619058051797366584303505064298536877328466448851413573527608952978433127777735008977766374694658676243717098032356404475784920465178033046354057564460998345955498361145345591174731493014849129084861711987518296370661823389041034923237169978206478071879330022867242199686562328579472412143263906522478557655043492232073556715625809873569144939532782850200205690161723756211837206935932216790853597519680911565192884063459155805174813308179982542900194147108714874247041145340203074042098545721448301798273220996655352055024804807346797283252803734646683358753077068791028742439561543395074697556100356615627124947042014517808073894047766758526897321904588589716626057499483913305491241530513051573137648365796909107364768005863555854636730416404799519286090508357377186264210881839448915070030618023282156521666218049779292648227484721946458402679927685494587372517123900109366148261192581838455592724015420938440594514042659209069984244125532349689208761282615809664551673370044997602775599294114431598217048158964894997532889460248994335790063509699631457728303644452533757668469408348412569515032477129584477148119661000567166994979074600974527417219205387627120033657392584979751539687346895346257078907970093528035169354290819530800747045100332366306625652236443682618059419603514285702334723088178485896943463019095195290568879994788808326826557297199784466426649698456602875106760666571688750244851139611064993205809017532262690949982199803947304741194805469360858803449277540170446893023788431893144876765298193451185623513177472403609231351889088110945730284348218364799931278891938835253495420746340464852242304526702230198018637196432273513148737431659168870180737841850183504364534529951480692520732756168907595977234134967327280111378409093626531746012876382042490634353365009704972384376048946543598323463673343241810373016186405719484843496634153894358646514408331976881235369376093017597326942320666835080041596059031959838979538994898647539316061907030648050212821746402001288422514346537038638749920834877635542366470775761004970648185446427924393479314598429587160844682438648990932374466529246359256498942991638933067721542581420825136791940062976546828863964462059905576682726882659899520010044521307052137352900840825999600921878512829037929142701768549476127833282426926100572239215475205366490982673475958824217804017530164468076153167675341937758082803744560812845926859221472233351164843388459617835532025573925116061299014649945825861864928384024236392810486417569085440871389660165149072221953438948930283038340970198056017436322472512344728873258333584086248040773220056005161925648200797728423833496036169827713025900544944060835989264956110703085122389436395999992958833957224038346872986357481169770110714187929216078385016309944284682999273616447047253727883308713736411398370405818991265696404958028300014619003866988315748814640432549660787398655677055917515911415434948079417566664485428852850829275806806136238407510744754097581061111409943068774338929643278169853151368547263165554630190125725445403767588417864932225724118751791274266919776764339773972828077425357879203663585075855372205620772060912931145132733421203558860193603740439792506536005328916181299204535352104672647845093952796206085465432707582018054134313369626678913687252328166552573776618520473745885680744154466636625781857502240653363974372023421544692963175560195504817684774217993855539916333010803899210367828218430764774929496777789891572155383523898029001301424340924509975705519170787802538543066148582248288388937069318279446174512299028713284597961635463154508734881558255699156666604376607938204578924383348521298477296756135064731476392100639992813648947983712478792594300603332312758381182514830007886086020288114793699957994978379393792282345631110722821404409546055567543318275026198021834388086874477521299327978066630531426313764790354161073584643789300325266275646081698340214319553240723500399409020731172069284033074915219930508581990881358818126433924341732702920493660743323173187918783177319410227022128922362647112535192083758424764156615095141846523218526527840610952248033854571550990401672241922689155426170720882020881842728098342060058432174097039316047805809824559351420421037755723013863434850500594713019145643744613654022367755552899335740987653674395456587373709459724312247499497447865734531419586700687050061897306907025143873759615963588110644139455154470783783965462913647215832401046826003068854073185588773941150265117856464773385112494066358355847411621944909265683528035210299678754095634243828539090942695840650520773982839899463048922021216107687596625599281370696698485742571351381009693030213797850369128643253389723990866301864050435875807302203395153324636976752140420789098153219304195162589677355206416440509443395485301641095628014836520016394683749883812439125956050407509833985000776176923549607002069753938665831241936702594379108480284072450523166613500651128674074977634200462247197941215285517033312624112921110150046409365010739108127885450905896208546817097725194835369390790616263110271172887821364573577811916383846516648537244049899167287653469437580371332661620486438060242970516984462627402423225897903236705293624010982472892812982802454648309703696431370917446358996306380116415486676515281250190341942454806487485536448689547052227981766005872827363617736396538618127639561669487547280080433780616910395157924632329260529730456437400718014920884920974147352734442750732963165070709869225046110793754225399225799165707263887633294526157116137210082244387425521182348644919440748380599099491202081573574807152508493949266610266118929389592040748440513849165211861230615615827678942069677287386261058638650241437928370868142486738919986194136942330139431771965713186367884263110639763546387381266982369459917111527987738340842053427745318152374075836377131920652986880585158374018328018760933825839970391163141941319564099393135478847030232583629798037364300924134244382541410398399458984506508767532957961350296038208163860110768908901623653394111559153143995706185555059452919951599153096846707345942270580931508760785428472202171553668187711158318098290743955625479794981973039468219134841702606501795849969499195446934258085027906778155037175751565689474273640919698516937023432407222754181534902650667068722735561827540373028320599583677880476417896159926573348805935905813681299331180340615906004170823022974215746705150884324810180712825669695677979244117836003646108299882932069598083733692360597919110099242421091818523077515617603953862211667307747904060099398898521214005671683152166179863575057571532342620342395058141621605199361898135495692371581291414567720701991887273537648054934990383969147924828455573359015760686373166349345791749914688852428922183804410227917648538241750985680990153280100597029273409557528174032240942109086192980873130652803678509359289759430994830045263379253857498971023449691339408373044374942673441353403034429441416868783711891969385341882219897012110952264104188494728231298133968403302829836526585023670069603533493496944917483474326987428195378728665752118115550214010715393180738521384840499166497832790292302280904991347948208211732070613334059197948887922789450268498625012370285423304763816493664627442800824678068259862305021654156152365083952197211862774381055475853727461367727366217834493644668256762088494318837210135136871715111510623214205305721287848857572958281137745805372206024473367424043544827435615842701260002511834277907093582065257825879552069565244586369327712837711495464594139895746566683211730915159549374316450122770929632066209294915087941246326755963601629160944768461325897956975497883739530287978102679764056060595186438985162891916424289739524293794005601299360079288593252245152139837112601102524568263830594908879252808727009901271998427615309710549595640594270087913755527812807208868146468469192795173079846890725768537950086010092661843072120135705391645669896475928769441647847570435132479474816652783133009620716299161988775822331227515132406311431505647933333859832756640232749217868780488178731493958818873994114129490749961230317956153133584094512802131376438644007059312938826101928417464031972981659518905814812551106730913330562106517750512800578886753635767443009655318919343878931096200365424263996023598938961796487058080438582999189440086168830701240273078244485987880947450201391919123742722504234494774339417575121726714348998689374421510655875503865296277938472312904791640387814590376382028041998899087309100817239182599360374737149050627575513338854335506253544458283133275876651745038251910601025550470783007893032539121439816264761362339914018046271720361834098391190265934537057419666510644376398612072480586549304688556528173080721429015735639951739818238962230820989437427127550493149860548741314792296260394667948824637954194731506697012499094852809171741382429999074932806389025181058743555942678352940416384344590461200003697899958539473062924872269747344152052872098206631255944119751178041168314791050683765840025925880969905101095625024153564808214631167915820666171972892459765082168209653157331153011327524690202076171457271600467766308598055828571745783202830540758627164612250118587465507922408648110437824295929707668123185169376991086744821730251472614194470707343183892574141629433441105011298964093361004146178259417600554866206144773859325674672146369318617768752743403151574512800937434696618277988299052810721209794206378621245684281035884605746494112907887434969375923841589632510149222605848008056608811522390702431606639711786133172999801477748628892073096926834387169728004941073230524841307441539948283678160481692412530113763746392766479291111532632820875600230629497408874306896217353645777088049456771730462824426703565509593798656528117685452859953847700235613533480512168233291738753208172902970004124418030258702618363835094518839876055982439262768772723707593016169818796478262652442183761140427441782677437123807106295724936402667201036709067354740746939635540647875015420683937082336336566033526266026682065643741161933258336431104318253202733672159330959878705207929115137856567580614972787830197038812466478624279390593930727992936918807860724270406025194077234817206041423220111220472636092498692609736058371862783683923823604271650112773356054934373469821387533030159957034972497989001476837127354410249685337197657143632726810528700374538183021754883548587945728519060219483458271004962803125576252629616092791311007608324868073235805547892434740505219594535322341258268877042254084848102178554213648311507677500829066683677213911563814443876631250739972785916807944083534171045009387880880899919242147848962022724087854438135214963848842754829085306100566010590569015059224966175938276927239684189905625895792005742389447528441510548373724720654882811890294209198680469025834503946458615823438451192232249957988774181554243731815846258395018245968958441072812062288073756832900026003836609710595549143792651669156880063939336637395920557973333266592945455305422560529344396264797859434944362915014225905221552207619270239237131698867681408367799152374698189193744965530475481926681699709470461837879027420098170311333127402110428910497326785398370746748581337841064298965023110623131045959791645600637186258589354988592764529902014131748473406855800283748873749903469235731580489143471156727583240426913479380972502665201139350785666028666586335021581999024692368980978595947316681986382113478411984399647988145166961516954668047930971968870888667703395951576157860472618256099407722824219212589080015837493410706604235967499089931822316617517291514876073681021973310436617658482920449136340734478430665570994111441502868905264339145053963003538166442296106471329610505929808156569524748509163953441768851888193149159572770316091703114065075039295977643864981378568817277416167663716821030469773908437117860474947674141327444802461148815931739577191364692736486830069156155327405632920265907380158935502268746053466688659660014334329117141376849901648485561355220873454077287758464202135368336552220207666966538072410981347576272420707998539704933188238999539579796277273563818376806099734509774913510601664964705133141790386703346458391212890874243410483557426819329273924696753932050736759359933777637025936289523655054758714647704569836111460879760223462685761066705651929897662782600047895364854993917759534289872085144101097614514926522874757722625221102234263797724772936161462602243374633588476008635759074012284744498117509615339573032449425626593460351755578345007479560099720510127161601999995823863395446881618462754745798190266000815548001025071218178034655175249554391981909534311889636480908504312513887146694265881199561275676041217707325604761682004132781060894080643308719568954298252994852134591469905758098612001274801653296885787909529708475744957854473369196623215132149775206146648727824511266512398111041453149760067809870331663259050565571339379799517826977667244440310587601217477692213130200483282745340658815121387833890677655695244352182885678697245052868626443860765207877462137605575036733320616939504696327658817507627270758147970781053083399144554676961193899071375960548717754136821626150402954150790924241336758089812315871545617934509642716007805394215633336046752785399664352257530330732166472599188578504444211059474893399540618064040702596485571145451580139628461940669944850045832265647257894015255387560908570171143422209826226291030975371083341182739588219981606327802221547696355553328021975253672119932843410746755316389750156350506494435276782207882940478765454986877485752240463303765698663401045452737746376144699443674694598190427456961507633538522000095283653770204427981358558411331165267097793494566626995771395988565568632261724752741877038721534863315473476226092492225321897753371773034951716110928510708874363047981705718360735906518290616351360213989503529421158629573896721860495466593948390332925163454676740344238728942051868442085877719006309134384573797574229041748516610881473295010594572362044861100308394998282167173083005008482412646316663261827183429916436822940269813175650430238791622476899350111192964609711605590703881033787920841358342443651636306620224820650669815193877212090086123022992909966791959399529230323939234967727055327871302823716040876259352545365962956422976435240028421485883406668739873822631063684036777200197354974744753888292702381381628346515791381882498035221114432581557453924294194330669488960432647600008492367458233237120312076834292106736070968691502255771615228211252703065137875220528586016849705146533820577472110960471858628948428307557301712021592886080219917867306449478576498748700873641171172820876081539007486002898903998650401518427056391775419626007001510741429149582582553350156431710783839525942462338059079489660369468203900395060606749321267949107718764298523324853123265147326772095459863301119319025318091066309438962618232160696804365526428767274847214686434443221043405937879204810650480341841725712629623859154570153910825583137055875309075037979449160565977633828378872176684340814568146378036519529601356957929035575909977880354338481511756498695839985167672356571798983543703751157759005789062628403175077603459671749263583271483035184054865712014877655917271920733060098517245270433390486027277363077483101336843938595726348484084258813885391134400994282083043748085156114695490741201021334025545406414446917472292115728001774727959982627832911415596351632969005245162603059160614957964505192876779344723755727469306670235089651173925059233972054734103617140014577450265962072815414002805173545001518797539296132673604274216255834110967700184410716097403226357936647130050839511020114534346295427362750982926109726362797221383005791783995448341216818137741851099749556562418693934978146573772947602581761733337090220689997616433361680786333824629864482342557190725016047773970683406941326640148622040119582166320436385445866362807459377221145345314929311143321073880983457488243251018110763836417401699999528469771617756121786906522356738794971947096863538579238209206602633897986625867702212481283445949844803338893356866370645037061522636554424846499437475132642934080577099342389408910849609645568103717164424745447377949496419318461435363494836344530049092554980224205615797436473611674928007117361479621909339713657911885080211893733553064057899166231108929562703341489592636565050283809578002533384649591341481462290250797545121097673598456630460846369235759001018992764700491058270982753619340224629234006369323693221324626835217728927592167891568948863894141120468086216301005392455583283953738851469711211908271018311548873701171336566324039531705437486359144180059400416633530747611659411958862471078342412425736764291311785010931549618364420194109516266935972492813096649751877995620361807036949601273120699650244816912304060156089011589481593859186060285799340743414788539101375937131630640595555417629497305557789233334477547255507371624261695570928752845569808061121694314572989314614032825004666595974167273616194891765572425098724376321624306521275402843463463687012362809043829819945075746114535982539240322452765832864190253488499326456933245500178525829292421968959426480488885218479528549665247663878153420437398563810573001338219344719899717616084551903664930577279667911564988304452893141551605674733976754929624273877044394782289177361084094875079917552404942221931557883478582282249296813991244425596535959502098024959425190287941801127311147734400585199453932251726820150521560441569745505787828912105365741259745558594064685988992619500460784103739869600173138476587722872676932596567202769447771207923915466331308732127682548521417579385478552239265696305897477961806359112858243686476334134594757447567877907496358869049029952181002640452865595435586416345917275142464048576850847957688471465886045239218496761766159531629239354394916063525277943707227271088070241493076648623332423216491591978930615432533377917916795538302913375055710116308809238702848458874035604149138616671889666328416925433550420730228521641267465483205724369976494934858030040597087702199935468117381430185362354022961469269256874885628840188265536647400050189851230953030568768350815360456307225547812573554290230226403325052800066959077248790356950396622510999625479066101457388567209579489749749466980414522352495317536814500490433597568009422469743107219251354607914443504943136663350825073926379529595475841814826686068653128252137486407926651297615837279339000531710115030936381730557046442010637815144998255294525687222648370317635524580005596154542206960123935447030958965769133760712964378049799336474007093964792823944321947789192532554002971552607750103372692332597014286323230052308365241563616383525441048327013650021640182823409071344038401819371908978728145217255303777282395886630204208782124449209709855497102466490695797738575851170381108782889150829142626389694189620286601306995620675032661671834122046714479251359306575402952488240326359154978102646614661911901552853267706938339475871555607778784918420749819314935538159893982863094923663421633382869487365470561644176859928049792540958662272541335421657665699988655751093089245767034998623983333564707223662215762973161177840990025077940205892239945835440850366108436385263269250404108501384053223370459457593762891190989459227890866488180001390364743287260273124623301406422184657554146249243319568683750657156528521748509524109856186872599167992362669010300801834873141761144982050896341928475260010622977684076607508795441489962930466809392014183921530454883848817301050345566140309730201795445068806573188812322598722762961230001812415768081870121745660575143781334899947611659773266123783977370222989936626802204895187073525482548629961617741364907477472338331715784689527864575851021248204139578055393071006369031320250322210397200760074781437102375859674017114248393897210458850431783871884483922358842064281765639396232565681964456274607929309811277732718390281682712347539599659216254120089940820228301041090477071459112538212502497271101624592442160058370914165660674864895264163342017945178463637448270504449377401322080523271615054662793656118686753856179069400104936141962886629935557023378415832218104308491686025780719407296591529580424720757970417659605832755432296398148759945740818227112708333380775293301118013252334031085121860179539697511776909126303189756456402760418128125373673099529987168008565726499439254905381960738259316117943200256716622693504878993330034593032751182195319430301615027535859416233592519658756048574553833071205487668899813405181288586221134379448260476865638436004036097045073071118971464837447854201320840537786435706420697812297580972684467815037251387158601304968787986168147726185428211583176111730494002360910566426466727963495144332165317439217533754316852537768545917385805417345266434467152715849693961324627527361255088774627247520286595162020101482141074398217616015326198170742027723833839764447132654702609334886166286364662163943748401529891727117123219570065554605806847141208707123338076042242271183122314923310618827688643436983877861516894603492138757079719594990443473800094796637811133507530766250916102558744906192231825715764044011318652683807052821555582879530938586752492029920538655604544409107346214427710113106991264196072330905726418392119508922190801976520937850530628132651301090396743853721328781746411710037176166762867833436049349248381116227363315413776287616828518285699706280071935318927793062245185564142108115314158666998344282397996109977932382638848654447613250576494135862296452219543197900433369398286894746234351685854354205204047118946786580919053234100306335161750790748839128181379537577749559205306084231011305546916285146138815730567302240287724754158016002812305205093892900118370130577249978735509393890800672922013731877529680104071963395914844454497397515273910728684720883076038937489403053175006529636681562218287547134972599624201759392758614931779515527352521354972006150300590507342644467699771959084825998336337283191181247752490550701176803555624298876267836175468518669231411139583430296794979894589666776760390867773644104032041932765123369780936913958593860078593380156442570916534627931388752123538520812174457368728405933871518646998953894754304257868079371619687460591200331116358373619219066687704501125864682823956288222056387253647149372298589933548905096119106796970815161424048457885700689003143504523046355854586200650328079006322042243784243306419034104289034867328730012543820626586274397524614063698588551692488664173583638594301306840052699970759910461989787803060649371848840511564730110182250993899423135203584507483364759485611792895709159184182878170415463709904456973931226801284324417969401257071806950299130300720915749674983370807143047673769703442868763379664504439269170600131050701093163634674557914524337013435276414504432030508503960510993985591263640818900768278688510774088345276761869828314476237671512211369695358735047721278025705882809542775701557115004086930963102530989373192520792411549129010508651779135628353992031655020823286942221803989934433405239767164286045919114628903188555660760816657649303716478005295656587904327745942125601161300645585400186044528956564708585678766374732016256623440852396882006045749106904124864521969254531067745236346517019238166591901861411947980223850864847765468210789743323026464521645574962017878465726568748418925729067644015866829298496642580045581013215383368878879281027618078670644120574955991078126968729714164379429146566774878798434477306030473900702953480962607779694244685152036629135960550885220749918863462328233048313746305989906927652661835741445964230401468152148145038055347429505800356671009088906141268379211776494469426397362558400883132516561066283572751234543129803793378911805969577517607478589977902605787058110066519077660788363365164403870721339187742082805932543243118906480599944914021309654652026184441380788021349156970056964994420462181413833574450067379346711735103045392108353504103897499896555885003441964203808118188627814857055280057044657842449231843991237901794121340264814054141162254168134558463152780743063287223750496068027531427400472219834315811246283614186993609618825180664128286443961310617197779302359330284266002946015284491769059512564881079903368501265507548678400411643991689996628645558910661491835239165318485531501707380937819493851097917563113099530370938143019789840854264623527040696949196216834041104308948565994041539709595230803154396822264272946436775731399437524723860533911343662921220954025204281530838780709051781047863883922344732512297870585316628311426106807148048417811941631981295354198560625222414759092155663739005967270015549379130834489771167751236575094670274584955765632936878914442193817884663780912519820961584433042451117416009692282925606310330406907864066116513036935382754794081855461645912521215339065536313193077214645027027495883866723020399914340939675482195046918160163324221016982488209268379109523576057982452635450076781179421673085767012361902446054833726562005337598889375269336077033895891632339319603553310286338187719538630941372548098826516845057977772886563568622846485720668040451937435292311648723909467191605750588309100873739494938893251633330950850910208858931517965153554064322931214407424552402380857862037725143883342130829201583375128785773913847805880200162534315011940386719611036689648802490683803204601504076629920089968813948604049923927588846789477475039692713757908728640040377198574742392573769735123298804407173946422964590114362422267871428202648417767215979092262217358776452802276730340281134795168667855106460627105649361424355502549158421122568066230568779841327401160023182352615736623590854037887620552992196232950710640608568327130853522875846633130651039012038731106172885483879391246991950117956371743346254075673210986673157547668559236229266106628001935448945418341692928244152635430899034674480557325713793177704260085493334435907993348480076801593216413533771481266616454428413177620944022771157575584679405182778621249774386903844954582845840226696416520080168633069703464920890329411695683027271953012935950587557202716097195112204434582966968033369060205090258007815704459603156663905162016098932334108926235452744236466891586427547506847042482030244563065024289330968568980263365029804289670973630387127191585623997235665459036079208315010340124683509763407067932096560801024890941370009293175626879037386987332998082714298245388692175498115016946590374931429563881486556210119801243455511950671296643590035113131293833266141116132840601658545157821441676448526981940955333979643564844319736675951601005789778638822750573599143166039097645738680993908793649594681485261033394925773574371195474849692699688684620771239388026731970733662121776133386606351695579445687188175788138554057884949155960399117901203998753555773874677236583606407045715372860752151824507304191667985374275045082326857392786392899825642782866652689189763813134508266672707059585891357292113554129338111060462246522299527430589159909082313600557325652949281419790636599446475983278203395028636297161311192164494243718107127324672873988450060271571571442505704326854901650128538919039948981135555184223436276171508481273150877824607804240814043878901230784014371667505485033524669505933925783836542089161562457364189191841809428373152667422566344085971653971607461230522538640797819669903611369160351864822081343298013715568757635565794440984473971186719747730239172549446359155813186379434211483424101173450719287037202464839696760718470702162469589287769919119054071535105781888056526973387798107345444408022353403963389101856716517510458320396617551978091051134398270125576206528889985081772887373453200194758554727601075401261808820234535425361806859669633664290611601257329103797476650402095476270798984047674202320669671597858860076878320924378986840014451575601684540192288469736316633366016750101860863925562261060190471201110300627663385767675754585665440581842449389092648089283009600959764845957718331868507577974234293223257624591725387423068675085255563516229559341277869863668077379265426327828820505321213875157013664732559778838530816400892552836959722957581412998954266478177128669900662372385122448926921870843412494457743319029962931222596215670930005223512321063033468183768074659737643493525882017332679252561067736485134396827788087393665144186691815610026195043963572616593429019999879392610703586816912613240510624587053077838555234862578229163960786151088981970503491244692860421762409997917048854198593839289637903321754185080346748946894689140048933382857111110943418074536250131115197510138665729209047113585297313627791269971141659163754128337473798757712203688904010465774330348387032087543522259770942335669675746245021164183819944809500476801415452696375211554819755744381414033783357367626485374125381265806308950357957680800043397335654884912728139573701941764962228727935563320186554637856778652357404719659197245390131076482023322015720044493177623793123746580038443506575575985650259255970002513269169755267990617463621618083709018713487654954832881146188377595895520958406067850857657675480128141580524040737756516653800376699461475064768590634102808815956735759415992195563674760782258780954597667564530557939803719441219705820842200658070238850738966409094325500331080373433469664070228891150976410119521205686009341821620752187797772097396907197615255284989100933971150766584171987705140517209419894728245517184949348380351853030374992677900835688795522458917780143951477074006471862124504216808480255192454611074079335514180673928163106404206627217901077263904309077993455397320908869472394921166461588452844980251147113048984798796709321184474889221336317203783234050822438162582102313024533775873294919507730030712360773764555986995958920215589553021322304823978622915153915068077744639652214413211113066660491270793952103697251799740978994388747060372537359826902387169720394000749573932514270250102952482866349567272811357310221852106431662206107971948595810613207804472551232077214201350106272475187166833553538439573339236543593277642688771108090507555494718941763187325901400738285714930702032904202905216962283698097182713328234881508770318868873851609803262751872899852955416561022569540874665105691183354781923247688432300572855479256289898814053463423716960652158502261643386751425492537380794275463211695366843390519970382963116368761597173899340149769658790380051797699024116307780231566741966139909868134826699733265246924724559899874682559355836674215307047062772454703923229017315559707034640175867959696787900818746138602192197532403993594853812500527227286269667773268950911098951765894843799110687063891949534455737358682301282294782235059697377119455420430423108508525834381999562482686540944439795105861264583937553512310202134782570336321102688903655799380031571875895231907634481543554956032308020761171915031402214033312951117176572357603990201169324544624864349119373904489399511899698643490207377802839013574748563675009018248927866814080447963859272281099039999477721354833049567926598210398516152993300922521484397218601172819027349035665708295654434256092562339565118417182136055849077704500665913453712216872473123690659827987318597693848480832824517062339863097144394345811645707286752993876467796962168877297866141031989023800934971304556895134882571025268611616019903660192044052184529008758957198955781925273809083734694576081198151529322467205370051976511196814251428053661573254359645952635907364193497709837053294611589784392603350317914552848066033406950440393300645335976326289153986752864270662191077231790991829110494595864657854333135976462352196278666704183875143772410585216542262498841222488524111845939518646292031854379723051560052371630354038979016964346810811517883863709787403980484828784686173772214741906007895566732202756026576696782398586305148813944964383176078454205334903928793482473615351689477741331015590881707886874764778601249113277311031694226451702229325746386180030267214011794400968470153927948915167168205110653921320686668443704004247796172520272064617255594868740437493145372156416804821094486397686933207387252005260170093154692653854794260258246512029955796315809025495730610881872416155695586674310291706821433377372459245872048409101285560556180122448530528327159948180296827571028209301609975145787485777715492137163485350100284145336875645133640769471443668273142975095014669632644403831200635734574228936518933517384780933457324222482382883876468901088710863944418047093321827960063236808570165483106273723025518936689768396271442328703716315459889620365050273890320142725860908119961706607593000028609734672871863588729584508016660518413923325193071704287516759800149023633332352326471661990155294568837229537493933964806797754478589432416202673750088476319193530140940463396689850560727917419320822136775938750311120551254505564619217934317963082202881904968935763566535078420006750862356092394767600083412887646540058757641387190387233301705639056440781258773346664502134284869412319735593876306978930612764663296333041544093984089868873530218867067830958287484056054675777810457761460644996839033074226032034967556887202653619618416986815566781222128291393336694551352916274881277291919598727848534066203205319122619873322750189108950019795362335359357484623880693593146853826902062068237886841341915415633958196182054254904093323316887303308851962949059842548024591469216481109298248299049703330756865419456585047665996433987648769119959093923791318513217019767836425305486853550288835111771695330235565169322620693756958040430681745336503440708983473419496451896502484198866586142382698069102671089228317142684558948069861041364719565912048587097802511341898623678757469326367815659489659617499221727319961223156857576450015169296708816105943114309291345790825801386590453739742729673502076549142473468799118739153464535345224544167355107872657868410818760344839703005348581919149912942134205076571824854104302553895410753905560845960874102407086768669011665574646546534395608196759028254215819089429361531734283804889324458849429926184420040880538314455256625935550449995068587330541549323452126001591318997400832968396470997446255660111194688269647395629157902092136418882409940217609695134028079462336954814195246550583363034598787745745329562166430318935024322510958965366232620315413678180035973282427518132436349453058274762740118860527352213659474230265445759057024420971881796336937560280937626975058139214871857019236903870832228709750355828999925181545932808167726294101481319234155481762614084950200150711046151005076992986374101410074695963258659422366895572191343842691414831512509051427032441895836219201520128029278889718736768803926238994128859918167061550248441185190491522806762533602764319331803286410287995335542519122633879304741986727372255500509640467972320426417479049796205581075460950489278842355824116422092661596788884136001274633806845813160740257655301760404666737318167637735554876318662502399952384532856924562276457241858703444551117529995292178606764180019323421583975397086182429356283728002122265110874158969935061635598966790581826266553465651829260761297227040345305857630893795527244544382437327106202833758511205563399320022671553839496418535697055192592858820929358814339157208482911795521617505081363490472207783238072228720405028768872717822982138518110649276849314746990156845951847027805862004493420747720567780056550958290404374987623170678032230570577604512853902906780140567361147084706912269226338127211698732298624015957908464643246546582110880704547432447924750792474540880356808030211031945399803914003688988953894738130286848869676533254281755317714493959828486720419800488926677075900078839664877636783063409937497651687819396526663503042378100508922213172048953797589634962840694388102412280524366495750381176583440648839241253665682320490539948588610887966747467637225664190530728620569318244617699796744589976787378526500461587080875480954883111393004110457857851192163631555187023135490179276043266339602946019980229030962627437338072057101836477539697846118005218053877411544745346615237003149030153254349340544401860001219909049237284944098627641204044714683990826839252502632196255087348907718939869517361954426527605946557568050038276149140003350223185446046808750345874867961231802397839926836750127504927564943530811205611920561934405152483438885747074852510014308006789593078709935849342861864233503450863732452176451688539513679861768707232625472474955573029494181795565830027548125157861116001005444569848936751070127719982428271180964028722579829364827887492849542072156873394388240778544755285975904307878856285877209366918565615181713671699266493828643987969714482648246313030292397494203218581421782674070006943210572692427291907806195292437696000847470880577961191568494863417473016066266898015960792268408941786120568141028134507501619947714787076873715593461466082305583107495013877887026802284223331961722577532880091446657173525729830890655438682623733909950572208412063584354578374673106630625251807256447539442690624495794369420526458362332791202750096543290905784062535627154798492396480307708603725658279025816887287518512021281039484991916240070871057491011922382347616662256293609845646744548868237584385009656589281713810225895240636370272480238483437419656159143092942651980577033970726933189995621856411266353949675911838335196031421740950554445103872917905179730079221027765374903798355151495375751832269019306074332842519351459954634344138088152507992369492701954845621164576453653086319772549179202474428435025012682904661119478289562883221744797525654839512415342657542520896383769713916835772264093550178396989833590551059853377171982596339281273137206279556391920736570247551930941145327668537072272783222254570363848611436821639042788608352454043867511353323908476000935692655021661241507626778202442433374049373502606112510228572299016701067122072548456720611246464572622647493150586657548003111766029356402554802277344682936924789478334278642989210227465234758934409839716858734861518785383106894474559439955338465098225964700941351657680835113679245683538867869432464007711397540848020552943541608969845070001844785121141698022862648035086143451469410726233725665116787617555152477854613308966770508595542146574777618084608731682449316362513876460644300194576333055046736186835698621176004741729954473067655744642808837045674326310185947057724204321633654464598445537013855455272573470874501545443707818666350348667954432024476618970349215361682622363933112035081528736052617399810345436567638986322109284048194629043675883631414077824394844632598345186492666891410839976212828407963169994102448296674234043961335903188524385926903076981424313035185779307560807219281180636748509893286911729091379699460822747775427965538783387057274140517545572333845500253621444939695511172558138234559059853824768819243066790158931775966498449689586090600001243900797087020918257945121969377295707686853766024667075709277045237833854459817729724783547548476219991870958837568552783937437492213132111301264957723439568053806382189285920829863521501653630892482358678235310513531819886041235702796360469353812664622300659468615507443511297403629916811528066360211707034348553515815359551418828531455565828269914698647890577902934606251994179789747608263770932192569461814935676989271319231956007776631081829089401954001621327631697585729058702350027920724393676868392599355027670118892260288083307674895104207122684636979939153236054547368050589024075899012385198460179809243006804987554553252945008165115635025584910145256001529905510979624237532404738557737093777547626304966259326736504139399680539181333929380486498872140540167468288069052420467001843763642037684294161656557057135397005686266894664682694684286402268565771580957824671270129675144941725486071013223638484623073903772342112076716317291227444870897259915795197739725807975112772119960039938328882886983073133421722077600797190504756667930121213876377061775223510142565443780248781429428481686433233391707512635428001442309178914871879117833778992336681838112430350843038639338442622264739878550565355174836195421333305145994508272724508448302376837641855459917891910504953683207396719441952881871205051743106156531078841279377289630330342730713309433514783550202839835450100353910535257656234507301637374868686171817420517570383561418199691462747478449037504035680560891806089374077731228695796632430544959190474578616431024850792813387764860486899030845412004049519514767984088822489676082573844904796108503687959287155673040371692169748052879606662165576085771732957420237157691562537362074910017610577183261711843616702030223280318115051846579990200830433107731689694125397742132957771704065708427238371982783934870265562087401785226418978235448298855336118653827302277149485206764626272367429141831696003658661190585226993306817336604222056623644976063719479410995947039305610509250774099522283565576560523460999307128515486922187356212244903909475291802774845132122622719650236057777822833217483643946856974058734398374882851095589882420821904693529670987149965674704349659008873639406167530916164300619261153852122456251707346350474436922320034870952955768793021655646848740576958362960198996835457021162205241673929780827832875820811140314520025797636220121243444812259687459839003345407003696392252354166985129261611904909840666566808536911793582780086435364731007766591030215117558344171656875502404021301806747882874306348099759338820831515474533654194597689150441670168145898399144642885971328887506805362683979672386312406830776538220985442376425398335830560692851468600097465407077198890976120085462154026290663467563349339126285936903825322738906821712757854750882858700030797576317968206678511125870843707429305276032878575523436302942363213675716363278074774729855345338678406072288343571246947442620209445833415759701349018118724893688643034416079494553252266606787091408191061078421072282698141861818913114367855844991419819593060347151655340173424112820809266032568108255958253192611257094262786990421077791454763851199388061624918817932736986655270724694493757321157609649877777957481434363014212289027383331184466876913482140834307830941310355152991031338066185025611623267865124572786796528284063564011125333943004693285611348741836229340065480749262497325816608852380875897262821903756768712390699811292786088530544727738551406132000168945138483672529155633273369257029918954533497402529871702734494012471936400806717039972508345713838796886109013878465235350109771193713231527765330174262390126986006972662984958562377357397679461388927271536975346348002698024006838412425833277966881205372258094766512429852583903581969665662899923380495995734775135168538568579984233822962936809119985662638399081479705310142967060589499118121268202054718887408514284665140283412752417106289345072358600799608860146616214792685152868085449129607003376189763103239153401021102946808314481353094644274614885108967067968187241918014919627679793837300899863790543990843004222807482840316362257494866151815546290869050925095863609878714841654895414182987684510054336362841267953074158582663467773156759617229154356485288961095223396470702886372032474502477673049125428214578645229670372149102324023812267311933315669253410621717805267852109854692600975135217310800659470108156496991339667341294068373032526322568849899108870348521578615641025522095607465901935510154894492062029744180848253502215694820682123512239742217690636701596309163998353218483810434988788641503836547816624932854270925026165046346677082086934209851370567157961344864694018050113876841863155870216232578884358450127011753078916117557027867038842333580441857862353240966553074940095432074771262647965882141090611317385224924931454521183836766139641843426652050145390986215685396458199466753062138363136026540316139877275437287836450767783323614703338446482511640559014550523129456012967114990509641018128879115273892258524368299767945477413873483793355221691621440370673420834122329652167096739531167211050916204746390474369051475833809379541702931273782839806905986170944182315496808674009325034823475650677005412047147356135246787982477807622961546775896920460939250517805753316489332643529225350193545756740877808148358853104888462304758427671648801581228873611906158809781156945385123283198215472111445632897958084874142147127057535303068379025470812036345793139621248923231069924368971129272824975581625531803629981319961087967541090915329310127809593156103736793330297389143458804745290337803413002919127228308800793949168733458120484771819950064332028006460364536633272461617160258429609841278974256356005685001476991760528720232857730438390145129045782314532805400518010630287379284125266682188314063892332841499802276837326735049390809100163526654828642674845708012278114031819805683936751725882717018265484612328202400389349360120263109293178088609571684954190757616848122300799064345753565654059197386087137032148925038897636524404520504204818341177516633248751852216948573999653048844212174383380136859413149015872356335710538950506324249539549198371668523410093684411089507656688766951497277226009453791718085537659254413477010421451903869796743402744152486876285799084189824319977502537459531139646100673857755409698913600814777281323469169527298873817747299837137760140335474064343982992074967625925777717892172448468784562643633582748992270803180108560359026011966285947831907646624449374588736885958902359741080816668895558542918819332223158334347151943490332001416732585344430672012572377128251337929784745518119241805962072884895993850508208977701678741040752916451765036244070017514635115458477236266779941077956122590820452342256069380634221968428720372755242079425629973126510652406257866256538149485088687132739552711659819352771004467852593422042778890823120857930349738636063051425465953543097601764450919616501341887359952481208791250290663416277421453189544321219622979758562790064530503018671439173736445083508795341436242825649626431888935174859850954176564762203298343435369068968884310470055407668729275795652526534131338928806742720051115880978480399365040746584720913844008178552725264160703213779117942311709683114706182676023219331743327546380714179114424028266646157502183318385577592162508844954981572135578280329071243580586144037723536047179217960279231690701339937387706741093342538999565233589736257573859579485556060621559676039400697302137606005624635927474496298128854762157981937970438171777829874663812288785845593934253922733188600526275964144921338031578602888682678994159217281860676650859123563281015068511991926134986321873233451543384998051256030452123389071412751620458773565709620463545292120408098579810608086221439258036907678501698030066273735525038323537254150727005133235867505159968748091457671029052670349303998601841265073451709830976277017753236949138374630118952633175140315808929073032298532772898021501382935383731056980856264344414704703697843431148890692370879693689432288168800329083284361922661430314046689220013419878694834022533809787157189822292558191623759167256426551348005525041319467429482574277178489299449510434985199077007630675848868517804789497805547383128417438673200311956074435874471367655595953171403579365683829881045819954781068054259742855803636058785043020523046391456398533118782477763415467159974998028373314203761780393066786737827396224288869979516586175303757657217068765319260178900458861087750044438728752974595450543104779180089821847699193783876220847219883373807006405075358852133441218598618298800457941421997962167321483271506828262850633999164052017524218663728079098739783512734114830155957323946561168126259410749056322506298776569782148132450710615231233725485403437594069471549971078521248818022830341733227394991136623003107339183861698117998484897665243947974472164340826951749037291605935244275814220410463650722513112034267947351118261251933693434100864777477517628814313657643993494531835509812136180708644504091599084276850095055293030909029221228869301504887279603784219585694737629390303096837298764507394280695671037201442014592168141789690268055479851308253704717305010724873375845058931512772628248472139028952064791558969032968751306188435856730919787642521900685940047214615505302437931622944866940370163846942619777030727399989082968819529228642747227303506706898120391128679210657443120172423950466046752114577085083527045175423511562531693840095526894475821208774637875369831396115619521401216314281718505180325097938353314209810625314209662823827066685036653194678409235455350322177731703283178208122864838951936566101083657094485163609322416073080289831899761507997363106831176359642891826112705533161863111856406100298854693042357054098036102471273698429140707949936031557185351783888699809077881563270622409011355042628297059095181859308697734022230643126607688849919762278752520503346625043398052558769958301614581050328118507232749658792435842562387796870658689205864537875143141173080658168116100659048206984097803682581195660568541286792247353344345844348555331425509419579480452383533849671106362548474580970783899628310035301499267209249002689908104481467547693025684565336749759527852324580699308370818990852393207972096459004962574504804452307223524653728263949902560429995122114791840960364449886042680601293517875140136942511731535320223041434508456895331501776194403268667905989325440613051733509336763896500973715766383604166490175323355470448473273829276190461394116971625184869723362436223221611422654008843979063004046311488951221453532067811057579219772349889843986941128203928649294951327897966125930843495120112244938957513552425891758628662627289082509811413183098897469671358043622573243631052513663044743515897283669252055822752179042609271735759536374865609958869648956529963054803741302498404009001482356237701673353852599823270932459286538670975514554919331449437242781060024067693827967384288454524127676799265585801652073054145310246791324335498766441096426949268484185175688457117643357630424129570735058076369619614528182484143699082532474943531849618335572232616402383645593977547446561345937757656075834151761975474726823012686031106483834335129812005162033897685642958956028012427252893714294501922268966308791787819549122160474945436293080896294109980703619056386949009895108542284862480141787435249006548224577817849379881001271316906937462466215739149002221200109263174148757406519748643072297613015914119385668583329284776584615434020400293983751287209888255680465347358429986729561714643768127169767929834002016823900055518415250752629427785579459459403152915174220316563147513491268014742988076429966825445600880019822929349935225967983722828523903716507004070346602423762926919608594370221711530477884509103935355956932789552815403268742110073022278183471419390099699166357072416759505866791149615413171781745218672382038639218287465071840324807076847593897125591597670511109668897209778636427287188639868090180718850699970746042434508560922462261725870966415364220779880897129284746453605202084841182363870665405810979634072893703714304926930798291600337305384105081477837188937761869024548307005215743357821825068666116846494821496269861580829887502969492748659145422645126000682484801244259817361500453929423660261287570387725006558198653446583507979235298965055536438419759969123783606942269143053085355443444517148984160423382788124481044903551768117478475606248945954048095867555917681872565930034980774212842490591502330520385360641754724523600441370905916189264454320512856365342297787212686224318697453978388782530167506722057143577212110520958161362595553642634761696475040433624008294655891229246417310996978520020093448627403139729204491585279361905969372533031694905792257707280761648105682959770294716864452123580051528756447925534326397704093749723984817230757455731522342141471498167937679087599068955171002406750704052654522146504129674283269175268614295619359663532231496511572596652240142081345158514997960612446846478392278772544221901498076403631797552832271814471431975161853917407066574973970576959916444363684264837807582646782293004628739644119773789453075378100695571777598525680991598923652304963034698173698810660208471429998567029603342386585042254289485891492250580150785001146295292779410471074044883281421407395244302415183064405493236537447088681439716324351726495247816733628421610406176124154822018138331295631816081671670232266964640518031140017628562134229056276216597057356339919096462206748606577865171291378529372363855418467895347369889895311072837691580484100394521157820759954264844386484523270774172062482652470934061990690045206395914243073279231069218738771594527819888568944891104000385523058232274890017070003228718487976319214448577819133856550895688497290347386082420811620608932181875762435238187123604137647102332798810777637558967574864699733192899453908887541339202149157251331840867416880737341400968209696137781205080241936587855896621401927666020423741685294105260058458177511088314304297332358936831461447077748546694265630951729348771508138983750236985549551579980810763829166538493244811940629442573246992169834421615276072943827260929565681287328515681113632840477869390131278883008356701699996155817432806073618448101215949997321037775687351271946581227999801122230756858036950935670952497855449577065337204204487063451618237263944709039785407509884727380667601869914317738582467615946811862437899130467165767263856564008074528307136127771391441755078446189085496335178237488229440984803369230186869265514855277710777916699300120433657652407984967385959372520526342415133645101308222999785165776163789450975681732231286490555713043732298847011587379400253310704402163927185912129804131642297263747918953229662625225329386655022995140805100271106103178429220042754814911013437404404049524409788807125646302136927250991705077971094015844266541214350507872205835432525684013627166589772177854446200060700806038443697931703882528217920557155184515949318547513502092884275102144075280513652531927397428504314747875702971170560487965446608201239571835840842446441254608463598534996049155065644467290984761062020587643295576015571014982717007187617939455371216022852672308267831328276814240146701284688108595019084528493563427554480249716102049137149415734874069143412636619869169383149705130207238948077227511149658361028942476617923344523927905383274047921550406699046915605669133251641801170367082183545478604285684677573997136800696513702127973088192355748354107562703569090372263191454281624154565700689492758870663875265412111786631770011407964613881254154133124442131284409586289038939525285999388244273995022255502987271854137475220238491642094925665404195764708026351330514278626787788393819010014649163050155282703921631252895459840099394992086454027721866842920765888891342166724863052791883667042403622490935062491414687169093672339026782384145634689248782550722124027843008063747664496431092500247416336824923536178248116340882984276053989370242151359299984420100265010559668735312651738859775684966737563263895200827706480919372823314884520664717234280566507721389109653515474070822524063571556254008660933946611440796702170241754682955913403069094130136152573079344735695947570484980844161652254129933531401664386653076606658889074664360332401511228714841751252449671286469799972885508921708103835427201432953000930386040940918274297367083862639990455946530200322355694079221609119394478306418611229501817640640749899755776245039059478202069442973666620413488253184734786511654271849589487773598457594118742780452872501105992789165261078332157032993884671804962235214236843637680172436689333379524575746575969669635813914304540592041462352208916919719765494082468115459837511734583634185309591986518199975011578603984290945821683834979436001252178083845477556198611628221044210582646603690036483446815645104708878040831577365743931273780276424909465639533407548567204950159313905944603941059704040880230753638887129112194279498629899938035227998067400157289475717373869551209236104895512572755621402283752500400410007169735573614720884908507583123479765692356420700813472768493439577061077352707472663693250249694387785013099528125557850997808366900666844603613242989210519392297150488851716572456583198282422334225473078383249386347796104606092063803480864610186082999142834380590222886772752849370804920624553920279590460681924523625802570139042107280407535285449661307048450880954259543174709664712936751173849765029449090556501630714608510486447586383956254006072629392077623173906426200317439635463792181145626940875774173845411240732789414162906434931281944110963735702900235271013605457375583101959780848473856032818147812858927578290176742038835301082152812998336887189377245205872621065109613696600845259629548766886863671877898259581607761875522144971700718208205583322896434308390795820170383212383469197688232010395111471729560947563285760827596692048213946833352954218529320189504076872639459854905255471422559199273058841739794541647917442865551653562123592384087336589195544839254637208090216392952577555774748972784868155220821438421998946201854705653994300137831049267646228031833532368267753560844552904839131480742800076862309037813081229240828931131411644147709444534631067591393486156318383894645519844989574356585816890502684223797096128414609457834711952704485983874890313801892780757770529337406592646102089863037567168756662322209988072799192302157454926191542309070323900875210680259658611454939028336193921808446547224966137954306956572616521245407734105768903729125891394082190955063809437203149777690507320213603601976203042252141669888859193379676531781713551144847043452086522784900674619506642691789202286251238079669643934668123899768491964480300603424526895600752352239381835520738953367284674088669562967541378509447536207692525370843036253256118623749931471450959387863551779543713752955549558331890860039957629893637229524342562999588993095007483120450468595759024173300745784689145695119866772739260694151677417372800915449726545218608140791833988349734960028828126263946850303822413015717977264432481950737723920765100704840684251998279157216402670118263983294672096840578929739858697539790100666941429454758549420033236813781349665585772611243455437483352682274677481156551748779949450336397139015602798784995684884743551463522324797852404146446015928713058579608581772386329732384921672538037440872756952801325952272705585911486074726032931240925261035043679021100612687290743531257160218803525716902644738680418615342041878535995894935471716837981943664128775831473697347719656768060313083224141091465321677374605632080600066533257898278148323851015567476018499934537770969157706254289112040524536103437495551306337868165284947388311955312845626004775203211386614173148897782280255232165081306816024872333502253619827194392538293747939311898186797852742076314887365103353500450862690106577963341501191952350268233107662097805834233160514679150409727993044354580664753940082558365076979380981457552375841797338312264773627842982197136758608849573025572576044838550046438343375834140794742838490405244199717595629996545334824472523794464372378327030908141865034712464541439551689037541915420877239483890804812759768112745044965342842834409520205176385929409509854116246916620751617725794992533195869397124241870681605410335811719221953563468825064827366994453825361930789409570596731400108363989812772266208664723867449809204702267292037620273268261270707746795597613548831019735507686562335003920850223192179493843006099740979158833108918507881570909630146030108500076151653371917684083143248478861832342724317703436506626507728082641170374279707266145496418557505212426540396321473989753370938855636744436246527764202841944705791568020583917728611753173426919947117795786310033648092063898494482523987160971685906629225197735249229141515823977787693545467754213288662456690256944447875225205591688409017501599399770644637600361233875756630907836422123755009515530669280440958985337735324139965686104862085028540613440594290415673541025238595923040868359754415421801726283708371753773438160032214937897653988561568857961922288956190173721243139881167891582473389421100876361454491069870136187598138467231784289096222947986479632367309650987519676138210231422348841056095145986421378115722486266769652906832743098095211607425444155693200425665969510151604594305942993747643818790705356334124617062071390706760418119726442673285365681650461130633276411407016079582035760789700666025497930650067629681533909291542763454936843305767929703327387980962441676186817488944604535619439295813419485688182240375680949311648867804841435167251634436680914615085943797868355067389189563057390966929330031189121532485114015328354042541970657409762258324741316401407706348800967402071930925995900396176864099686321836596376792655068116991324267634740777085326018662462106099270159827145477981306746925339466643622173866196354562618442673713408758010568558821363153471705949584118712972305334252295850752857347188195793661997555920513443837249513791717563848863080440201254738268232580408213453685736783731726264494142379333577378050139050671587669658283250923064388669866750246353691659940099062095017246742797039983453016668460031956061773011710769865501126385616454145310881254198616078164686957165217366317155953712574170898799098589553960986823542756283132622064358044666713959306155714641431978400812816944312026618752380560083963897311752033956303606180475346510854790336531024354117749155484161001201546356203630601626373416240660663980635042801021935116905493007013481403829253558530530676769444107478099325579015574798768870639910573587237931315673058587675466660426100903732060243605491529868624354249318890778788704314943240758394023576211395288444303813584054744196775853031048479234008356916283442645432968391724970850433913554153010223840821460477446012023805453508884169224691372494368288240378783806069668694156474557522961390319843837623893530828532002366964987142239875988138213055027329555455106742719634469662075055021951258004940228699369136359008524540599536031864807543399690682909434249546675339637177911468457597991930712314245271432384760288492599867849449248351158388844134145489626560483881717429710727222108692789471445726551038168749988161808895092618873901686838537607215199005292986264596604373044195700810973861867251087629570792678531883269314049844938460068448898043777019763356918383138365205083399332297658065295088605406896962741914484079570789345658541796768884740254585358809736747552698783965301015590266930573683731869256487692693740377207621368191933934915178326034665756302541010456441172181156500334481778055368192817168684565061842632401000788774558154429105150015694946170851211164138509308043707371544027568995956604639234793146999157549213939883935534761064917350120714344818342926503116946516357000126544600989723593732477710097167118244079332763081116662954213353472782471963464019744269100792811624632344437271999131079998963131808609877593441114650319174234162202892023946449842772789378209314201107973810944047104589765756440825358423103493686508421572302679885956316720752510490783208707433227918523618197603516946424725683099050612723835602098575958613555972981841078126784393332740435970777258931098994314319566098901250725083634458888648623984138097700602210242266805497067441031329722496784786279967736616465466445103275557718907604434966698851075624412595411311155037388922509847979589523185158041729018518773884169093321517694808384129362771347793419261128922257583173981480508838734125814437631003866572053730696606454605175852488574882366916430204703563737177994824506375167078052571496885998438780406829933131264957985307846723905383886917178091983942616817953719532586216603544520691648164758475442724846729168498524299409345616309565898864423150212474946602140851281772453673354234561935977849790786427803341759029608066048631741342250826095509515290635483852067350453523579756481919226028335346384825304965893599350548727890744330224946720948945698051330335121920793019704973004308457800030092802450251820626979835456496089418609343530160715726888454459322821126478537331370820447867528853441158810259276972090590451747146011475750206408888241078045010704640107821217661774636720884779557043016703069091218891352383505299270321575744148024877585726198228221689320597628200221818812992642111406959230163689599664467695267320479685036803267287353965980732533556190650374526795283575368214129438809400102108172576311462478361593937348883229382821927593522352864331549305736240712932427739877491253582100060660294464617095472326032104477426064614236041618434335961827232218470019189766327843716335778692094028249610226387482505737468015912261590279213510718602051666924916585968986099525886360760641154755551728519250808933506451043992687871163443115915369650067582964281007036761068549736019069421690559859537905188116576895315696478457407465557680670230955649448163738588846548839564198227219585421368232124636152995247565014702818553991935360182718165466117942444488961472425343269314042418879456408206947846201390271285838677882755860364680536331663197939514186945913311626902649933240418077943121246061857475658321538488863540771718143652794272264248983746217857927421900058312829699778240028759672098856864644631436513420118482690371329690122984677837947536609807831249791277537726495103506847510647058166147033815798960827394035033562434028089425849385596253470901817220640546300956248688485042977801125948219984867021490300586556539420809657326340322274772241517979881082789494012850693778496266934082027847447732527726359294871517004760484649308638682131596140781793052296163655887709784140326121986090750541196988680909708690326061089449414791713345195180809779271516340881868220039674698822056875298049901854232201852126302927138162120763613973976101470427140540424635985052318389551869730808697637100458248038145602991248067294842843048498533048324837568019592686934917647622091100431849627532872272240132266968772705619632417807595119955254228598875934770928793947639887302185033537139567706073758552418064868163830807012142693424466369173964246939805055155384831049588672422501367915855789065504564537839649317330750174833649509238538075474006401587856276469241942214923205504374000980042255584297851018971754195891673417925010088083666237983009528514532447022168396887694019919555385816547484837052197435658729602672527063213606841748596766578372312697364297408914563133628978431583599930286069766309542529538741855513050781537488348826856040127567640351093363722513533359940804576282607679750960487844229551731548435140867190823738769646975891278964699527857619430650360268053184993048422843811529890365995280871773358056265645651100611693753770500408311281131472353384479993963416859151617515114329491059492437300628850206773240955752637595524796057703147092367870199615754750393584704730228180559758097148530940496105091428381635845968464143733816421837828296666600863192001548977356548205858445160214060396190585491694806683553663471805482584408979159796284967153363273985972012873668997907858472538724716239101537042642554246998284023091011200568925138135857740942636388615710998174572119158976034109642448352404864047058212040326112258278601210004114557827710459562161902107802689481953058424734566005257912650691075499887163362299972328197131265307847316071691385256589383753643741368010325176010393635148288191330848315141671715934889890364492588823595988551247615176679014466949466225098647009142240931392059454559891471994530270121552945792227846361686467642653923671758995773602142727311323191729475915225706085327667732919530679889941504784112308708216428343480854447753808279159783237046251989571044783598152242472045160543792304191590713239017789087610011698335706451535323933288644857315739208315538835784855523734538193031522478281510128439203742500658641614723358932989626076008735248454885674273618920170821439612338807819504190047117784368412945859229373894791758167147028263343887170099294137748103074010022389849429431867826642460237354063532915775962295020221252722011616652473357983977326177666003904481399102089735560843042210229896193469431549774295014102473751962890822013057476108640996661220416437711543799175267638574127722602113442303707662449304332582599099525147196868336630721298568341939609210685257145166104981770662269363681234439960246805496823984662794542576820266616419146666313119402343123268091127282485337925386076680397802210880532847869842921769682551084170202021189866423921983215655337697897788850702553657008636085160945739175622579636432552402423995638870754531331803244675670356505508240394025196472266048292893493148638434531009308859687173678253844630359093235981015852754787654929880116979223928461879049667478748025119132666984442943861743451922373145914792369324523587084641691660351122539435067834230781275841602779342963916358423327083410382690531887715093637968899830319181941762371320055873905341942143580871987897043732689508816550972381781962521934642998653946104989116842707247571787602218837266494207235567126297164473482725123564006733701947496975865581063373162560925882526759276832071853432118519079448964239154018280362784786917737667449444742982718308748743438828511595870437579182335947068648949562954448824646145075331595724366102162719932099819769624947529400537988154159461588061644482611944231908479997517844598820360357419732320220613982121776367715083844890789676107711506336458031848498571630156196483199616826651554028456757919227513536827747108517542998008367131033940565141436881669161654298416287911759910989441782848247524559099587434577363832762897184782780038041673408533409413647415344332537781226736677611767679207944538204363822261951463262598096920650216160102147552746887224528775240826087437128055682019308688165716406458925645065648237798059546481032386604980040949958810985189623733046667475591351076585161203439271512575621892830300841582519949649000382432220343107925061252891786373816620336012981188849897946301009592975900563581385000200841902939914101974981962441047822243375462121619225090058095188593502699004707840966080580307833360842277488546569058195173171872053574562898340168419585272883883740154113189761425384873055815798732354418719197152801659588261744941541211741951214011265370049260907269156074965423776483438863904396584442083340530736073277971528087618109912830277960197291939218777342754339151911671443333912085371251176084655216117928386502217084424079792391404019399658733839626513537061965682467996900159022381966296599361752681849394564736399468210917192185243895147141614957722998314588943087300337351593684805579980564598311010503525225011567937996094342763863873036955067807868941008604334940476533255212455326148575580739301342180871366620653949819860999759591794626943573509333712768758008430579163268197223474259714383814405452433305876641817788716885842225352827098016137779010880177008117398394070173476546109460603544347762090629953805691622500137242551702305428610202909025895380986838904855822828827430355428857793451868606536230680265272158209407942629177192581327866645079485710651693683924328845703689679847699134430145642442646893386664094159703563722532136242467310511483087526203407058088918259381889359347644019852981447084879421787050822422673803563209125910015491558252735955740608997035081634336687409706069024047510183377690270123816706651617193705251158295722109407738007953595586525405466983503462492336674990871874014347447427252285272068079914432828813459415772392366549398529570388745449383601445279243730906611194465256687023148421218919241802032968053160786208906821525225132849128164431696649980843684142369095580060645380779264426434436418388094798139466458398324886546352898412023147410520689315425561985905428839770232978993004992378014206549474268503119002227032170510905641354855354167890242439295229252344137897686569699300933877468152312131237763417275736102211699193673589393938782391581628821647881368973277255012847999180418402484777703122075681354290369153532615810691470086900384390986989440667788831260742961798114870538499602480200345980286682469410809956793675604591935929504439489319455706327151940924075681416599820021443532147344956761902732767546867021746819858456190600742512398669469625819664285413820110874759278027711856867698075804671417412777963915052617554940905422664352530421569573823532750760086621446116136656449627313254084057736640885079238014217859627720429192172934854627921755347907021076407152004119193842533844492760545837366881731006160405457135369410771523505246203290542456532058908789106947340917048110197794385339006790036062406171997916087841824164476173628411245275497362625468405890058413181545104669469732743199057548795996092735174922781683829052284207299537174012882786472260473964408639919544728830730844635069691354074940190891283000600451908335942444865242148450994586479366242301496133468735638738427867876336624202210555493218576131068326962569934487857928910860581675573845020095576439960774572201008723725197737647561608171363025456167075827595477189447838822620634790584738695939461586261085869724793374697626244170714906501910146508492101399924533712812105509110534739382944629397665171489153612386892712085849933069411251091307411321167097754909900164443441474567465029860315770133863456020519397208873018984868530356371102401929680276753975522043091789912875506114569149085647160750314708058553956500222411102739134311900260551231720049749608139559763830405780654645652683772828240190069401938094417058685840915621406037461184413254221140492475563764447827617008199561053270576135364531027504311281962982686999326374657317243747227404759967038960486171944199243524690248000986084158139879727361285271904870503286951789131388109923018554579223806422838351243556787501300683847469318086317683665667964133592612238875778261908724462469878528028850834264403174177444205050073345053424307715554466450898215136915936977529431864520336636927778226170233623965864311953049499804465710207832783072643473082764974141667550880603072973259127616824609162739358294896896335910191486000893802382496352802488912632039045575215725908525148985874840083303236521225625788835400980530985211566689530182801896296545007859785153371906000628172989972379141872320159736497037732539105380721503407297963740004053507761786567238503720307538466822194839541974610010197661524905187996536308610104896160349274180676663086251297337905697806568251310979824139271031665121349697902865924400656972003352414618424245385951250301137581039813503819510520964559237874495196046883794452237555035548317932056029306839195656043502735433628131808769771799592629943744669264693465978413894555360914051501857125667603595731840443050938231152103775732184459938632404180727622263842259388664536090681023006953450594433999693954845996654727657671658096027952847126055369278283038564217456645761021283564307237677509882639886697422411137311232015910218276060315782977049451772829470876145303459693031828195500327313090328983186645465859911265328658529828811379906106313190271829110015458524544101673431825695526352501791134609758587483367009258722844014309935743733242149609559236355869113503969747142885156392553559691010501049928982123858131634899171242169212597977805789851958629156036134962645761197639695595096023061477309622955606948218829163349139186784749517177938606144984125560701493063213150826567332739871724294427037550469358921129311659189465081625516821484803012469301965306900410424625247894842265124221228740996645145880663899763346208260060383526042015707804867389254016091264066138797108568739851961862357452559092345820757477253537831612733031307030367712917472501556002953334258677282584595489793754638480444778572951521298027425733335093213325217132031568180861019510721172047286210553418631138800640864078387729824030496013007861301217135414031915504509593844194477975370865425530779816103619387868195166535112459771925854014449280128561917651589081676830578405615244879907232723756353584553905281506673770447044446576059196401731932392601973671661911958959584489133787318683463523776274041203429654840087100534491043423315487628350792305365483199341254220913826661644391340036204620369252585216151744366692495913806313703092964134525613653216484062889163995749903695778147550560532226583446360854321733166682706686792045625205986367984607405654817857406988257597689762319540612056819849025726589802241932950174219491183221127232273308090344548540396435225265934309368533561776626980852052962425445221991258459821406924749833009666249771351663183922816470477344842637690577189891813587530848838527398470580277754012955013926468036765478491845868979134068442993322978031519293484857209644853563748458492629290298465559678375569017265228211116186172611051341027722490791633300485668290855483405765118041517526805269203194293170974415419763623545670184257891259207129020297161545438117284747667742446926169530044299565603741538058481242814403120635234317900584481417223469691808854754894593390813099303755194942097341922314144845694223702324689212188273962137721143251505397165195639644882294209110349982097155682309110742246655874446686995149879657192780099468974223166915045944705742645836908786048382717025259850280419119177085635484782038168069198468356434740610656696881990957621699892940797107123257215616924413302512606954887551571172321505241143959455655677175421773494878671371769634558235550531044589486245902231070230594194372669331684597864568096282747844842831789235835209417487974832132582638869333318996943502607068399789631718756949323165213422874975839174783913156560877250489733531470288045970549710168736533540379444337999517165247307287784115564490061450891398148641118174474927062949859541755889985805839721768041248370384262921208705177874151532549107585782239843191121190904605186211630796610187258571265415413405928893766655007850427759149248256992881777497405470473839563325096821009976829508723796885168406653232186816293429560768060750351075537719719077736639419732423027139546471725001133228065177231792938939943751767036240154281458216902861918018716568130126396142711998464857105282591387378179452731276488316004384139677099698978664882660176196875565587161308530823443421294900866026139635212330665377985508099461683177828003577653439959672091658125478295851783227477151987570902117712542281067119431455752307184282406947301719245223857195595100176431158901856014765769410803682805146642287213673739210111111045021135792648850690541592283663659405657044311048638765089724811296412312471703635905656542155263495386781831278732538850938151877916547781178557417496169783759360235585608533973308089232728065159826328434718046592390295423408432932827166581087755437491989217903481549366817461430608523811272222534958133554692901829477974762671241082283944357907923979591588659917340097955072847718401966776467689464407256666333424535588260447801689064773116684884782794215505010482395699188551341550441013489215975675483712545126536439099781507284651614967733778092203685307973857421118645222645219672747382019282049576303792915753609803769545850732622380704490763726330660469540546043709620341540464962034822357713888979794084245569399879020106733591390794147230990678050692795332755794018056236016928912161202347781421289539293681782581810212679798620334584830033942668235494257465691591996016350579265251557195111855804016195408362889646277275366230029498766603579256614051245478323557995757316101524331881730660663424177878004360145992135231457473379056365495495706755485322480341525552892971043446084830482926473404176684947725292230742655502127282104449460304453681642612993811283366234162288652646522702641497507906435878585488189822393441946405554523242859463321112471841883752371918070551633550229973431684565090251527712863235468847139538583954748547438981300280239931087039516574453466566372408526127691056061571448192811287080315352420181680337691200624071035949962177629364873647400712895846591729187936396705923029829665558096354700152483549614644696304479328719371499459794610939372709098935988741015890454496818310089640083201016634725958517565269400792405933554947064737682164352730826961153659242107404391723374206927585653943277284872775958427109883072126902735770890918867166960261757092753598857515778502048205037165518127897995701197143138619138708108113297841150546171993809519073960956310518099682231937546873505584297748547753351562659738998660945352499439672369139311559906970924259122127775981922146523240519829014593380648572144362847558736478544032508685132494434136540955901086475203089150474031371764079771299284332932844732911215439771745824933288186119030510941725455654673911683766683173931760176892416170652417271841604194985688003240551098960390780836004457008819005705806033056951476069651813118831218780882622118399607958513357763201394907514258538929279513499965022815343049824138494700795549089140049201147648500076740744222405236486783717847743152641731363432545271057616595624047006042013086373929032066242085781558897523349742865670659319812949307095291459961732587069967720205637361574004795046492902949886303028706174381249271901636063341421792589665910928556488030048673335641277116308411114516612068087923978521531032070364734592223803297918608982993503749338110925274202746994934288907394569035889834981349071443872622019107719354948714281683609028356488267140434600798887160826133520103441573774809990068897380571293992527434813342878664776023837394326906448039122419059897497869517393430858893871253932163180934566342540166100583118671934846798946142775127057336029816033642403567799744794993046816352081935596295894453771667618500538157711288931871757547384874324613734945334087918728310702628147295108803244561531379139677191323881915986150967744743028667547153860573780028359561725038550542692272967071599791789301386353434518031348672089038118385003093426834645335518985344075421943933961890558749809641304627159945826122438533438114579477890216493195947581129781740263718101991547584664151156589016566600164291624832020515605009262631792952383637928496377635475959204585848033964551245079820166771573564535196699163321360702169239734243016149521313575511605007565424321729005838662504800805842341709992242661809690057096672203432486039902126691734813664327797103773849009357819131181105486787568210319745577650212416471656949169674741559077591910364381929551678333955388022680801964045061691995053223963999873594191806689331594166949877236023607885666262975599693866263873953335152559615069149477262521401683439203335715224938362269455450833433634485585101262005973181081445888248603259642687406601200632721632802214248057600678296539403649231975388295255362561253906023385550285594862385237526257339131999261525139648893432095955285189541711047447847187006144360232621797069414332425234697470866871147907001095115581518880863012420215734934972582790398040277691892973021585630012034370469347701860875221069042098973071269652908464391599309939293984202251102230742837141257403168409364483942975111118399567183048020800939227802996362476701035757592400978076855859545856817694326211265501030227845420465744592148008319104446364185340389792871755646671701485651101128413474802416089956150566825287336434519677606521358823544386856935435540221283195290542869637351529741845143327085736644546916179125735608860900584145768853854533279069173198929709427546166950618721402311296006395651178054341002146349892477676442496380160782975157666737105551132394431394346060813976109406151582481351090225910444734359981698566004212912544959675460437029880293044664179719011960082596444813746369097791889072519479058406488470276779076735253583783226259604837146825271607215593774601992821003180783921656610439555282588368460361176108336252321178096687417928905442367901164559636426742579295038852022003652787623855375817519848500190837808968762084193969295808429084836840788578984359548748070745318937109289335283689819428439081119757027806626767947244476191446096832110118166148467087418496396452683579456090673682105415553563400194066318897525933772098403963161737385566335692908462106855801890396218724314460757551658854054076178842388498676502249488119314029959964798226745761562946655061193778739124656048769694610138413740578096444265883250145024288663990380447856115887693739884461689922817869542247797294431435653857500959553273045366690862616799733039832609600868906640790546456265904854646791039522540428757866002481171889703020904054327146543720790507604761168853369085199539891310705846201601325550720580393364295784834387030964840344848543997234439168355642837585160207660730046066434385165909681781548833397659752915638145844936216240703172255799570181466056956642368280188103936927519863951493301228606880628375292440580081415911522509218965352545119301599733855660863640046794771287004282294236086064519255930347948017107317436720334034978302972359056776319930403541225097098770657850841582162212708370046533964839052049900894079951925524907535734393730148618794255297718534804275199172628628443556256127652488980790140623343349043524889355621370380405838546664133514461878723229628287950654151468834204637681554513043925262916537032162361475599356199408139101451184082765797791737042018895185679529904723909219757214444563074255546720508249500142756098478650137496716461834645314947592536061336537156840483942858452491807748386399170876178495437317143866840911834757915499366969185147527233110168370976582796481719785593072785096877533874566326650943436551546742993169496937968442264259557661690118108189767528635898548790320341892189040221882665473041996323155490901350863184642203923631336990664635866023162130801745460338488845659142379955771208362953935985314231623068070414759153677145380372546920614012303287249041187983027523160813763621514829322354808979679753082584645904116192557191720886536922035424398630377336685257269462280809304124008585972870804471977044311023086759238893160645377989164582994634863872276651543085478455368960505090157281766587956994273705008437242868365597964127976874070085654926747334914780709064225215606518306822676998628554893854225625582791209339070183115900726985970321400264381441413681195121681178197727658263046069173701142805181028511428930093520701578913200894096668696173680921794812223065620122336165230317035888922530765870667423272047704720274528585015910450803977969736776066911923971577652220958395056936363712729319947635844954870421281440593372205200032362388853867386475532816459245686971027439427256927858984645558670037235536536472101457998441946556014769466857182398097456519401894556108358617145591073491897224114378113488606179561274045834309536154150043319471154290373785060178708809117419064164603951176720930682971947851952087979780855265461421659583397248911182747707394529501067774637634141508800524360880888895044547434566519139044382050092330652291467589561778641510556738722061424086329334928214925402610854941949658470637865168146729394890785922059424573523856414084734512420582325326641288883875352734292475969659870296255701478745727515817324587043992868433435616013441029942122166564873384851037672917526164572947326589043982131466410748191058336805651801632523960774243301965968873878923361695224310379951699664897458874871998728166348738549203520142644991700286216635285935410685766639560589833763751096653673209781976526650693793377104612124127944429329042896834815834315585020038727797722996669492236152597177308193760052962380506119734260085300362408021884271456766978766592324939761185479055374251614221446875735486807882412176894521581118158361524306554957674396018429836673659879478453642864824192496649098662973473242858680638872165554097751640494458465546715634995075513877875628914525874219116679822735045445471830734984564481034782584409421254445751579385075066823049417907019089669841093524682923097981869953896627551424945291060591472513319554869842462254710689011340391751114638663775969925627891023790983373180686631674773817054938056247920013841708777338908759277417784850414285615799418896895479149153641189477571756947565343734612684882421798113324210132891683579988739362483759009609479315412545391502850170555993539807929517263576602553114505686123395772419907298958409528005994622196536441049164650931717909501566758997191976618793270782898741706083517590973692790270450091098306208179137667181913387493616755324037742723884966878756426517126876754635887878936743137144821488904319807806218630885980608423763900316371398774336825407898848955863794779404802709647803661978613497413195510629868662049868455163812380385312357359113969892184023422836154060297791482231305637820649227979864807743865703340703080231471860390253583727074676783558484662361459269575333126571805580991483257766730443859508499493278042624880094074360611349784013268942704381533080190292835432160119054663338803108111108066545498356709433385873238497847610753836289944763321032934268095313908564637964717463120273268950441617367348396587218825430427726062649820144225249046547123177053046215695903345543802369277175575583120375676980857897079325164369783744247219534618296819363390193287922079088790721263373234360777701368397213754790039169215896620947083500007274529123055918545517099921803319306321099858192174529642260861460756695074234901932376922868616168044566069254060911376353947524032918436816314952390378057562746862773231619073715724006923806039264721155278669896248539157082392039427476036668300256039878318594507741657202608335092562604437606988161579416915539569395962843178220122520053650670088093255623978389977697609858793929587342138273326478844654544604347026844723936363681678648975980715409239515120180592045946197861056782733276936873730641010741675609044346996399412046695612932182832912230952745021545500866014655285713046679237906905513075614846177723272947135658542749744915506289332669125956200749073082479257335735692097517240880804875390471130910276296577340492112983302400399771544671370579658270152359565163850881993414567470135729950872884517850472945337961579587600728479676588702801162117108344035866104767746612074194903478764382325676753524399286620842730433560802527891383055682685274428275513414817202343536550886362170195439254194480962228730060999390249944467983618229760127720480516965805802526369145285250600542558790622777975146301442032571076573392280117316218720522012808705347399271310892699263736244814629320507149331829132170953269852865386839992214884524749221779492596665141569630735805340479358001531288472648442779008353908402976458994540053264185613448003763578196045988941969013587008042553709920528441226335871838686535983410459648692515277643425822626019702498935250388094432028067960556736826178675380580082881658520108777274765270566900933454221754276868329068623930011917269052457445235435947216893655366909355206546029771267544337108774953850890055173879428834691397215186542633234171501525140806164810483653774791492658705712312742652946237813434836354070043646911738602112669447184375622955527896430013334393883373799551786787248276784942244778659789091031197404758257594681144905970898725999857094413983064719776976450617173048656326386036898947310945145194219279698658691961073209916382663060111192418476712055847702713064182919529433821499433032446584837856614384511591499082955354853664772731671903206343316367734797111908648312377749491007432044697378973019095429901174549383817471526636611161329371980582273391337350087136834921510999246576985003230669471284814369472872225407624271544850924620075500222032528882538654324492971305352659093985378234138859181984920520406142049658973375837648246960354378529581970918467209446231552547261602860801285173243025830734974948142446181464314923338337120787980150632679149373505814575621183122867250939998068795911845040860246976542013954474932714434291609933671742022172574594030429768431170637949500276934329921623718062176686289891590936825575743413602547943384526322865947250834210651649844252391386372091970296916885585174302537567844687647847970745103573437578615669287760096166447878225104978251109789320978440698350875965358622130864523950997630386004056694419535271490857718253823012553469412003020528801756068735816953481315391033895285041199162303745977537813880681669936998269600008554200818421244450685739398260566416974777455590471985233129494015474885779809644011279966644577389316901757412577019059172291071061517281678332548094260987668360240094716332364930700078570242783241453201596228537345815510081791971690723877886988662026850686035225025898915837546602488491651240415322367847745966627696787658240242712402014388170512917604724552993941141863873087517617581443957715363610237177710770558991501785498631251204459092484666439042667974167443921036070265984929710597650997306241727942995102903420028031549474337122487464180350384135173724969300238693151289015543711309531505940363668145346079041540129595662784695577247444034407355581214374763066163317551417340742830741461069209634451487445002199108979362515260464441216046969185672642295766091545573727654305777121149000434640872755495462276074599102083564834432615773232323516852623231656807149019903096440514593608634951925220839452948029831703491579905013903687414982983339465323441388004051358926843909224807843210542137523779169401193056081895082976521998667728989630293177218898672189467141948273777584290219450886923390499418356079684774693770009578858708798625353027421117855279727359301484653397348294033499237591085749268646225924139742457113812391899360945790297486382636420044027737717514771082353896526681969207627506038946308113403444688462958656477755520591425853955217741917054161568065653945198882628193340510038662567031027128075626401734994117774123772806047339425849013337804571073957556555338538008736009757979701413357984434837993546811462299037212186886287822972662876548807180335468503449102437676799334573359827749075832224753867008937824443643889230622130944088963780219722897172364428939211196508353263865724615362827431699817060760058624640268576797641187530150470995087528725919155208274468487829846068735847487618068473513376941182012011925119685670760894270786624745589745791230618145711398900511115217448467229725611728995521570765292335916143910890192416342862394878338226349799314598074650206186972712581470485726835484493845765422096969739606228404569009800169843101153743197732150133333679400906918827553965786747451328319379604067965358431953992360199926093630362800024112947579151306529895467886146871145974179149196716175594461648839777350618068094579620909559245436405985882187548924925008976650658330018562146729825279507081287670476550244161391525269292882373536264374553137913214313119634596896281343130523049404875991527774558393460161101677633190030246814882703009347189769501702351199890247950218242328789085374615711290200821715760552721951492334218743032855289778690928338478381909224381859905394485915849108419060864409946262187705570657590909301301607165997741128050453667276937173433942151157381576038977615316410141596070113407610836662686868110568359983004945583356318024448815524902986425012528876689872015327838965139814355825776217230604774705352143527096482109523007155325064083351799348808326001709820287281786775533435632824295635882839681572112088277808674392133276969602486371181294383451220726619448814385458925188212535438837364547208231225627603217774723255376379796539704803109747093755552179452284429051347542688157141535814719339217543963806890683465670424490882287770119563167443449030048832061695150747047175126241682674495263631157695558780577600679367693188340657450451896811397075243407723793542727908050981230267996640605374099433203443459481566602583669907466334419221965995167973312754834274458324680387196488463516505979282925529701319570072983753664736063094051676880735613260250145789810961375509409672922531345730594104832328393828739464008029403033393645431603453261752638016992341897074432941244430237890087764373940576819419604983596619014499924786030889425964910663802434694528573424489085872062917584457578912410464769372241156809700581023248181288377240457728947529745221100096121826504052537396072966914577302970768627323103228936836391077331517471002311509269352537474150292599941285794357973647310592322567023351158150838580368626109227806853853935517593610582193824817403744455530560352265097259067168791429744246094998139730379766236463875066509996259968498282774227305779542171358978121088409635720681905291643804959961967406062588728926286302850037376253525805391269553172665817388601037384973000771511210533534231694213817063356450779676708451497795095866530487274084545861097492932694308915881089702413545055178366368767374878278772685063204445315353669152694294311596828086864758768724806429306313028214532215536930625186288585759725295705764329028207815584341752811960846345032443985688576760670520717777946043525812403354219870934466881963745424875559185100041389758607307698169413766152735946208315651065965719122171746781100327010578762688747168740816921988426233981207964955851265449092316369446905611390592637183196981331536757842338490174889651338647263066806161376427358913689317239250738166876772120720026847926609306361539210270821636610999637273574886159204054449993856240578156369662709924584856202033614909267279267354563643007525405205190713422026431214863760755530133593026032553572054855389066620737676833085841897006947849261082554504241126280904591223238072606682784125122384474000685505469113628183558822286585516926440002717998690144818734066032108644602703333579726004060558803019226710202707883631830325061971711188005230555824454411951305083953386118062222879032437032248181288019313781490102956568834015955967702874734144116913783988285747430180384206338320035023592273533353514531635556135684784843114212035682086502843992394813882598543638913722399235697934767520814161326311873545050877995972842134586441982939717135956948276618264058262623224928357757163142195244916661726946228252992181118277656207644938609366851087725649419755606149427138764367723330674137567354182933538711959428489344539170480142813876905513634021019846757516234753054971417650806528866115375818267190316061719175446896760263051323275142118404513257656804574265085574676306077305296135904137077675945303670292095128996368342760148472885010511647930543681522347529925245838188269238098214805677896163350369477801515750693115678425789750250754150175777721568529010878530033503199140933527839319789547047989008206501420649291700732589018279788875830458063288159981533123158604367674787737234001206949350915488710629586550743803045403952550948176851308318515127874590780908264169658927076863636359955455765263520010824624508534526278963197498200815208980074573561363421633299768666247510208176669678929470596404088398274857856625228930591521307811766885589278570127775100917037875336568490026689823122725847762726319693324546963446074052339364528486516427799618604147631801986112251928200942948645321550341181219818319424495209692829512453231705567968982126957119468568135554503360784555310120922738199909097808185653896855043177955934215161299001929312253203611790528472684273718437237598249493017919715938483391314342968754948806779054862319996169194672493387481596750727892603598488283391384575440480326617430611756417107411951221164157278924688319923243532310057794606663520375079966688683419019505696580777370909294342319846015330281994533504424997895899966133939636689275154475318417542540191171270948091635286023893383287862094619063439474918587215099536485319249834532502346435813547124671301568902004716690601580388268367390648923839745370255148712648976500478024377587336182720988910099633618289249876221174436388673510632425574484047804129230034163767315583677868470579145804706367420874074821013398982299472441789260503677335948643572633969570591555820533682640993660474871370226864700357615534993138094374995736867170061893763264091828943255064156855424050000302026297677474513278063415248914189961649267139937546548788860827158787619284502098682447429662019135442490852255315184205036525806042252812233151149351236260920000868965532846965759942094994861378149253785975955769942723939649417674224019694191617192779118952631905075468660091121715146764831998483251640935658989912853623703638338116480509428112013821123711963530348293225259029952832801514534187989507261330975730456708011748028098440603419272291923810968381758551823396596179880880482861387155236361679313018562850559166860471851636589350108070825054468081161902055856787369458578908214691693430227383788000431161904132922376387498712385651826661937078020864308454965400248604018759255116651870027660506974501104492240663386913411120068887091745269082748994581874516877823596844890507358277133673418509633185559713294514301243433416544989842881918882805044923640444729364197393863666907114535467666108134159936962628661943062165503222075985211873919621977488838663295270620635425746089750440007299833917914666687551720948701066861750209905726629024484488483255066727390135674612142296579768381666847791081349217205748794308338323572777248452588372486817134580562999440870749464752396818032778944883010036413033307820226043480362313947832887158565857971698824740471324817678348194690420615022546685220384420098429837330235999711106487912087900958258566877138250593323558702727616254982144629340031498417264749751178083314394978384606118469980046632889483134288189873887452017053461436424952045431574678242876727336211167673120080425623725436087248217395482770018087497609317950843398130641709585737091893066473331783024153382847259734663992071830809203268692232970369665508651846137065022252398431939542259586901435828600565301528148815266988521989051958439526522174483489781243222535593559714985101658642572325422354915416175704647862537439064254465163555791452110163350153478038744392715477635361069002295258800948374162475536787386887234555155447673226011681929961681033721561650521702136851983076836111327189310612761805182941822216668133225676917672986118374893743187827085459496214326041305223971062017243635816160465811920564289007382359333645139830730061148520530730585064537803096393486850653785934765260713086425880032756492097416908894286756613545364370232360496664048944481077124887309222181996635242612971142938595163936931824022518486783429104363623518511748198847354018217653073423746298787578248275696337146947103280884745315890982972548655489144040559696114040254701863675393760514360236889697743717289045298877337617963747181613468407101414309490855531174454210049083961665756565244320744907345721991108385501779007823961768562047170761362959987569722691773360734045026654259904744607102612873190006527064422865015799643312718276264970584781704014389323479614688739378271848728232365249585579348105852915523136656108689151136540992716230934673695297275366434066306402208308365666997195213338512790194904379481679408343857695221975783258556039094269761996335954535436181692581862053007154251383994869417989642062134954942391875883784384046104322839308884128415452741594719873531491763286297732780817736768254190797840312185773670987661485363405323398934861103131166966007719657877541627139421375060060962443448027031495147467591705463258652937768449811419904784256835294083779249221746482166420702960557761735994857425534567725782299497621026066229004090738681201843342079812718915123677039715248921606953441200221294682942097263181663131233557106928986151069251977366274726336239238188607386241994674196482647494585154986790017003522370657392156732413102230953882377605386350651468042456878864601916070982328858435778735718751787221888488277028846482536599998423628281459424058780542168977314644136970311552708232546218443524071223292543548119411021817129545216725192597762920711332584782517045705030781873285993764956145809417181159199714667709275145804727216315856238798745146764314373736054226144679705355016187014249267543104243082891371573993441722421681190665675899478194556577672562242367272195975988372169673394499155787911708513130101398024133983675259086391598854713913673986782127196067341323366865335456048386116226361174354546143726749593245770752036452242982718981526808583325991802852308742398228146518607555737403196377311287082096873550422225192537794722063616075189043065171812298494642513247452932124330844721248642401374405366112877640350230435713585659166033289759339899024090764271635994286840411234361893526560011854298030135336943034542888867665582885960472948233704961831994402887121418714967792350569857011607058779492468093510245416890818020903129549569325530534294914167931886857771105035277598016889091116306223374529587024896039493815739802823928500359953722866967421390515597940085384132925752078202088285067794703577440709223247632494479885248600644740513999417579555185786732773999898108613304555863721446120854115731308235919085967695075905503370020903293805654419929221411193475502784941336720154044927117536489309102982191773910997821737521182428535858067037794519914098557250300524636600288013604302790262039774767758676426889912936582408670166606911482137877515419451706662813916748132854929133393791766366127903905283189851859885130453774888146608615924328071961862137995885151738914474363503666887678955659385232953905491982459102341139595086623177479203048666217272640570314552551015968752414171458774445074334131865655676357671026071612038829741809955372455149901188555290738953485337902288197039523434510741740439981233888030600752502956740934048177024313926330013156295170355715971898435015061615201359049546030465059413086439985950507396151740264339749266980000735769615608531259721035216117914313696542591120699920153506923391856243454563209670528770790083602873966529759833458738461113011235851725901212086497442074155658014283199806768293043758772123237632570852199363637427080448696270415665728917051030309521477952785992995413902769564351830442567631020868367182538040302006758707486286309064691009183929075576447323551995883333840754076946288591510127748364760771356497077639378906702295090354164154353843575514667971475039922704829680422599181844064629359584812063435635479510849324626707891456755037132291206778944681027567174054060829222306018149962254117352294401242325742893847321556451690757605491314562023189654175704116546452106714275486815536736782127437237928936456210038533363765516096497159636120352917692576814306156390807193107569664684242957338919504473818480343346355100405287707564198022628188843840993711635080615970996108555359959048170858948808568960772805339701949078537953476556930687001807269763738466941500577794480031679596212053168633764737507818115807354279142824276531504197698421817987703405541293587843553695319911592851602617367507012226169389436728962374999687075489524176086427919184777419480666629049081174408183442562248194948340973701359552776225462203658839842288208031083409797362437498890280479719849434629113445306477863358572816211159448037895514013839414807059753552742676256136120780230754659579228181638287310511274193748568498280319010960924517771042575437371338607141048542938757703720112230636712726201584975301232927744758807106623141537266623363701596308730341152233987152773440018614306434724996043565875138269510597763344328294925143723185121618948128731670808623481368677595537120749659879631396641655727205996692715115544314381199479748751593531314053015726028221314024408775545165667626325922018941688013116874474726848235682443725086925117311862143790978745747773552314996503997510921774272758761116495925961373461947041659969172286429031208344752914912128100366082507994717475490066671474846389047636435389498409679843523214672963044096678485746204806420773291551048269742151119243438238394402453978655465838989278973242067441879202084204996561144121636826025845228396228838936726481553234119080153338665777743674900844048066084811551899212741557592197498395110124226531569785849080053560534279182110735704246740371513364721861256963705732098286965300270086881884411549148754459371639529206372135624372801458464698393715672779853628834291744977994102589102661169418974754564083950017604436424090666680842296198098627745582732040270084213865806425377854151297857344953581863585507691211913623671498819454228760692343329751445301677577062384541889754428110072005616538061885167111791826307743552924774304908678811663676333081429032205937048037929608001020782972392745618567242706677214877696877486529112261913608748125923440283271953815021051037065958508929513997670871710418627424522768320597961737685631902336695919454995891234099995458139288860222702655726917285275560498866603607714146447522978120159926194017558939327005839409470479244357030598370108990506374443762153063853856232516798552373667613965267356453745645017460322178354954554485337894547759948404627649118109848567085068686878635381125750693226409532511576230063081222619555387526955288373003747628934842362647933569429041896115301051024338311844191031085758130920962696516126334235136466495748734523548487149966968874588075981448579799368139146879735433143763243351599665168208384357707105412365495003481882010840336868179490917513715422689474245155536539028463356668273093604874907622893797132488116957916727217078398959134408655825578467914155957705348597776636266733624118421985430752410946878282518670735552649997497414485672093800225336496044188087222644278720544433498572416756169335415630051302233609506769297640796032365453974588944120435852180231186922020732952853988370082925291006047495419588628266875086935960802758538649255113900029014259903455570646722315683505247085693553842198239460976836304931114471158203633139516987032020519336343862183625577661636882362974893012165230962238766400447672039818724731925372638382984364334479021943034318865999530642319120591137152501628082899018709972947004426533344776429957249262852834536851808780620777209270526945542195070582833873463497012728313879981970478249194825632591919961608440463002858079129472727327789619501490526248105687235841241578028987678915026216013381408154162729977829141848231332776096158401831050392275054392988929094713237643121192296998822611621036728684530971244646809888808557535438363490883759167570557139717596495532395967624286507049784862299346593092591443697028346500600537413157898201552834358042318390812146699987995919610227671718325420726278131011489023498002953619002268263151345709026246424225272730706843273143247838924524695377896642022678931063578211841866639965903984291751930361142335551996595451801685596521728819609943856457971600304097877964310262613353796840943781303560340558443888848883913215466241758847383439672216706726465872218908516320657714406714966624387432678529492775418985200473673559287564236524155563542100568411678949954185054191241325744690020949321540673346678062923920257319815397622367650555981637183356584196902849273038639255246521624427390741407720542143862813938873768532035459488669419197973629504210537910697802710880546339282858879580654260227754173807285019832491768469606322958543227314286741326772808750081610805425594265129479210915769374590811189406964804098386716725573977425564136218960968804359488451840881081001880340282313340629832634661365109134047453336996761741288077943848435744629090985732394019865594636979856350464075035112400407283427577305042940369634394645303892895309361451269680562480641645731044660807469419867217567158914912849940453321336140299419365665281220995622242803468652230617261297155426643794723502046474098329754730808052279567433984583202447665782796552538971165868655457351614123943870517182982816616402424667835234744725955174442822899231695782501362048711586485782942863089247614345820041140680893638067732395347241242499939543634482512303340792272940212325585065590057415201364048994592855300990074223539135374159069200736992297472739861026663119567016166158787066287533583684213453115178887235652277357321184568780511959124324490097826256720113226453460033813454802656876010242753956742666020902283346120153373018638109428947542828917447933468328807016118076237213962627916859718186569840462204579224325248379857980425848784824566982263454862754121309138907783864231622284126482344641037827135918815309111484219591178818642595234231689304853971967543520861536374433983804817829538281980101443863184717670400551458759244119739294345819588503759243340038241584295909792255617089921702616199718836548463371633437264594544743748127241073338754298997895535326763821634558233639665841239138934285452024362461415116509289536911276325699141275212790989861693778739777563927933003225589775213902322438509295491290182233691292346213219076722866149839292157114685854720334144106354609611361914313350797102506827459366002227834633702049884447449492019077568436652075460514462804050475587647016654133804931520290581870406529645934735425600108516311126088375937292242162570602334942681774867834018925665741347969271685551038436097658155241700237141062331250082876088114042724354625435510951446390708556698499160278655195324810657218855255299525365531651271456124788728160685756459010377635829312888188601934133172212701874793845189331260532226057276403636774767167594739694184248388810470358842112640257809875267008832894722584556544230825655000381864673077791112577902830258472881613497740303809841097095452216131580640696537631802797881007251540174166802161548655210338127036771566499161011809273270965687654010046968711546505982337869640481981106340126145832992750060388105878615887297984412446858269295119558816607818599906963627159121649795493434501848400962588097152995656273816972945731827294300700594634165865155864181192861574407948125007999240923419852313056943064760338479424940629518928424506760540848760963209748252061570240001156198145022581453226339479110947256848363534788838471355822407069026715249629337046138270130509946720628454033881470108132918430302120548125103602844715935654632791447188551287356884349147910248021264685420847273185861026447721627604001837718359509496330422760307952717955925354036925348055231705414732048054934491176811054633806239681817847009680824439611078288993023029580784553336040014269356552363101554988921793205144515969364808187971721878633789437339314214449500907507524331022490748488679098635733479559723310625453165280267588019135285598592847791542436225459737381101822716051240391079396733800516244675843534638905547563864418661467048776873502203258230040901100858623974466636034661569320938672352736151011128940183243835438340371020063841956591605343723834273137043563091253946663653586396755180496303348806980067084166890493268919051369434873358654607157469402576882580267825553632070457855709223219956058729038782052260788184460782986428731255837351846646866494515467193689827850122359788343901281412541668469801803682236046667075303624785641719945852822721246147570093176086812052861951509830736549430866297329009290119027085538530863529828009644316437652704302066472003892116825479243780670338902843338648696588448113273864057609057222636326981828892596475657168404323463087279397383990352461115891023632174382390799332283760479702741656546171726329933858319676582025738224807905835374727746793102606906861468444360163789276333717485194083696372106824869282160100006909003371161898665870887847138391531910049634347428361257473973973597985364323021853681248103239298932696008252351360409928976575947638562164655702865576967881273803541052489886247983677557007064859833695705394396301346405194676728024325292036305208081704089211168991705826289002490615103344298097108416294028384805274169492269562469752665573693949255170499294179414744305186762558089107279532209770129296360047966581532359797422372964243129171419483704452685618954949913688882613141235430523317555656709593585893071053381107361203483131062564272752606023743261994421155962839501029585772818375976682414795508251254736120151478997523959234209610262771811910350381615090199250709523595015951641551775655437831326206776636042783101795683458870832037049189606305789175743372995323730479957907115202205391700733705462435754740595748723513915855234297577715602575735461225424083341691049478467002114681895362238332919151051326158529533920548430059654288696639179197314903025072995609119323087368809066513696974771616622690954701896610608980879663809728744099330337790290800942465144245703040662222115025179731316927310557178553321577430728067845387315999817151392760979810151507740077947964193946636139045405012401188641766522491617654600315460853804823269453081114522112373999170110854357216303883413210254414362575753558181485047502815706455662173825546105805755349293198641970188779412847090380863927664796399553392689756311171232352323463495778708610821307665267616738956202087636054084436509825514710315938675436403919437038780939583420060651587244673321839216820739652821867770557824821925490330189764986498225091594362830297763604982139267853517423046629593511589560891949085591621945923870673033331507074416568780788352864784014189344036360117153236671535379096636982178963722725506886485612472743352890939702877200198573260829663167656780328213344627193633184487805509976504321430932259070890241819911942028477219345136890617372930778842679388590045208976700864998057691210061575400471951597238660977482262036250696182137798173347718802271685114756165229851171349206575549674243700649325316852916675001379291188984132409977175369986376032384158905455730765399775419763731661253836416018904940537830624430654630324421198530265575585738938042408514828565833467992552643251238060484604569115858816826664421597161381007539845090198982581529396478646577249139336676266351244241668017646514749299221786657729660860536943001631515775605263206892444141606926192943402626273473107199349175009285427858142014414341745049414867334412477498658154006529197526711889558040868940040402487699814144667476499072231650545521117599592078646690945437823319917095195518819294719964891200414998287849364684063871199010693359129711011212598722901729028213143580265501706351867846458256219350740636676678208991412752141425480900186676841953457813747081473591586544910941715995340188459571196380999997444335255553729653142664602960249210787193135587831809464173806788136624897166699015097476950171964432297410674826939442146524630238561760781992576939462168822441827183207535700911397426027098333293176297792102011321142264456550953209204224498032562629555995188269545956533356295108049977558840502735680237562314249591213274318902761085012014938611416439344319913809214768327952813780492603425800940206448508855372757177454386987396509752681596354489339597669114613796475442349614526190797267343215457492934000652540936593270818476279909320441899912182443529482783315521760532079753330070983231587165410966681358568866619006950506754152193086670950613769094102567536508555183193801107594940503008901974671375344625925738125979030944782877587831459843041646999105905968856717086974124244745652688309778581094448837525217725094036233236296157282820785039521480931183135082375922755118270638232688663338980221962294147755570050032030569482952596851001020885846726570660281211597776786499204887943420633382431464463056666575804643838197528385542492161098202155235798565997308805328717714500242016170881819855544914897703539924650505182386493011445309711586344076692709678058504160361907283336642563774136116030119034904976843258802089834168854064050917594523168148409508773069229669658175498001003533099300885796742380781358733684073840876967572633379722800264377169754678345083712749658893958626688031817921289293712877980266243499735330513252047301188170987241436608368775790922463594824539984838906475801727103397902445007308119029840400690153674769754164629880472856730069235181319436937934076739002397637937495665520898749045467003616143186131427292703686452821952046377962665468321568214745261846104572236035295013973255858812253741170921873410658411866829748663343183128443935601874421830088031671722134068610124336293333136333711454661776213869132661303928515095801515108508072571892084456394453971940354220120151640287084952136249062796088424398836658519812132180229849239317401485561582713205969767027303927795302273321576367918539437971631946772700069132201834191666254851410843234859314900217839917837122220093355967596943388875822972724802726053606109638331523189143882433007748853632496291367093253009027368647586544186194260631818461406032534931848862520202587812752789764395130376172003450638423074675986839740791465479479419519318564481487896677889583702961947629990369278824925144840211936245781157383334180885125101883037339750294495812397770996145747257244301471656179529357851303755944766944916337048216721273491910442618404408985710635564983310324501465955403685466168529747501582183729378447392243565661401452107158227660917300106354748082377307682247748584806426402152843593302036741544449828360716082849037243336105098114091166864492507697989829023780527645572667179211548435748087617205313616380423836421992105270345453863350886775835649259008948341718010621853820381771315824877607579034920539964506826370392372716508975964040685686046993452347052250422229191563886401384822854185617163767322478753123728639972419260406150654834114874852189601924507418655564649604059558391711147170822917159261857662466579578403368852419212145517788326745166261526355574083824012289439877249297966384489448798972832076989077122123437982826857564770410328573277644232243713856982879685273263079622305918172041832337135970724423930496648005801299130248602944749065395071903041950451102997987714086277442943848374156926159155264847108489559574632008727305499578288140984372417250495952770844761671280681935106823448018512555398578487253074487814541694149430622606450106857003803895317882611804230104096145722030271502514417967160439308541576453613568897957357502015126019842916210026901544332503289361145274807863188693184441390156955922421306958612349521260222827891047399222199774247911913933049579610550129595133300517236646192694197228673064576326159770204740743538153398938623131542588013770751751340212534801201685253975770712465383434049308211667860885054619646240490243022429832458827416787489814938033344929836988701883706749717611646721421348757010014471194653578229434113545063250921220750404296145376127879628628639958179314923250678159470873400627203364205967205168957991277011357426204942299199622093123409311258422131503253493191637284115044206281209427074436972814078089688977389280413882468016846585073533143830994783590980936072484382370134207604045742621200667875745392551868908312805266962169273525434678908521897997163103785311342113682463995197404043732899010938414929285594344846325902951384779969056396661705384009168569946100966353401476939924308475957526067101384164110272574774404518311880014593024862594171551991051388618857734698574774602812587931169129663605158369190649777325322648518035450822523797572559400041722666211692161830658371200212183837000010416005359240409080030143234412144089718847232296191996999244009102393968895793666678348957015763389667283026236364147723706188619508853853720806651974160531835189928543986713560106977417659371002140545139707805584616691615454836857606244045399778093732930877270176416030967961756431071982216507815235334400044600584613664045700338204335567382123465033651774415468848934428334723882703494735683632647897891250658160579022664506152692360409177065101948948853378765724739066720308449793303103969044403799479419720143316742075050883376028265194919159686974368478815016981622844989244449276917391196963795097063337674737998856807486580550542584064662491298836761840976761222253794874961205175793731530746396583980435979354427740851495466788693969836597471885654041239202614985137705087999653469188985954029890290352619118182683969576653845408819483092816954629914421287362440303384784828413559681401695334911999866228529617525595824358904648646289795847582281063524707756666866667706428712865404155791474855800783348981818672547355367955166934842162127550069468634891529183714091939122805176324023835287101742724334962229735080905897107898921027972169002272931689495858435528447453718169846228255012223966031179283841085260746451076714902199814348782504165404578236437236065745465807773490607105618069202849172434570352517360744804447174837288969228709484652992601767530656069216137031378130574509264248631395025471871816664176342878375958757272758971659767597846764502059264988560088482085414192925979619620962744894691466695333703169754431364603184470952100828234534541137263069369054611814359383821168265960839983457796839127370253469932560715371905885466979089021416156270630288429071458460004272540600019309421824664004227553117895231162338688887804127262161756842613110565113164834962972668172575452082841353218458091490386810984537753327052478236515504047431544489489179837196997464746289002689529309269418658300857131386212050289334602347580722402660262759542912812248075917615772743442701132670089072037760254909534676171422577896212766356660719880450236225755062934378779764885236019811098168521622513211351102455780993248665734375237902160268063860271647895567060086227204140171140741754622407095104694029191696304588770069965876476161615130557270581516262777489182197472526836412315921131233638328962433469710256146918691319880755044084536547581937167709225850199330168761371570646415389746173247383530574359191843588258484407437874204161781083899075672551152295714842106153982032944915789936734157534835781994020727560633265291130805798858694244974740284868790873652772558047705270054325450952337334919118839957136745628703934052231940863468643678081471077317928682454148634817385746448809920370831970238639976691923092423452704094681912661188768053370745480088844173881722720480245183068239116559116225503200303613394703050992715986539296378248537331685066022478311131718194785711010175970795323541527889874993085683743337799833994624641472524147260164105252588859414487865937852537409494316066035896011293015949638990554978673706195633185535441980473515378875865160371353544394771624206318336035600613372325916979682837811518594602833020924514187012423662768167872388258658742785425864408060822854030411130792752164278299919102307648394037228126680613180062962354527190624166333330690771065265961372930504844381978653146652863991678853923623107686077752887677908645261753865965395071800135074721125844631974698763821647859329808062798591561628506465749679833477549704665142498739692102852909199494875546609859150780938126298451707748342632898032882835962496510052381992804123994578939572939069662856110147779408814333065048248111884882030826881003973659033564547637807684485503757622488050329650649740072405691093310843790797012409024108306548725424053868794818273037257648432317918464561682229952221268437588349117115919347202030929225056933425871536361678162873501874275196855877095777489527394991354464812520207543062193722870291865930925109784218506083799749953574083974329626335409061412640556865794802769054116119310607148833412776626672283895762134622587704449937731336550891598470134708399628050971255481815399374517244576072718726026097177107231195783700038440197258813955709433920010397857019594622662432257600465099082526818893229879017967111469590511724997991853290829947209240752801870762074698018581756630211832270726414981966152637581398812612343659256509880002556993399492039626660392049755169588285268576595363180099075621902284189387965499300744254278233961273057303851193708056803185813894877290410620551836790331198945676029058835072633266092401398964297592356629434177792951585406341062621605585859298660442136697276092941357917356135113655632017006785154128067051658399168610995178260727558246992700098053268405927919701309779676550548156497643121230496818357580515829833288681186171010345070919838982545703373831702446771399181451768040918757496936088221409323469025242435838377359109406663869535720943888390759981203373698512438362220715032564912758402700658314628986370298804511921448397620755210322027614518862799801740498034588481370044725433985411703085160792592427706017981318026806906111625811471390963008348660872998927486992517111926689719528073492652322297591038271894553521163097031916468064866254612151939233347970795189854306733993113582940825967203827944583786652811213282150892036613170511808635478494669883569111909984219212746446607809853975952298884886787838142869909686948520722949849859873296222835514867773973020715329000060616328841038834552827062201725572556541852389248279104050863816586674574069463921374562162919139690823948855889746053299567350455447161875234395080614375702229711354423840012809169285428851802874771808667906261294183432348014687029161558679987950923895084411463816654437121056437428206229881921824433543508852101331639779670224040096118681867000115500463219541932204888344281283154553814296049475572233903076002873583399455616664133645490487700963512438270309137102924858442269433694390937850305143129812325716103640886566321421177388724947687818872316708380605338622691216940370398015056498940932010260394006854859547927628909166691138978031546900199655694289546969754844677012831157690477870380937781320717667434948714750143356490163465242092114270232218682691230665116568928407796239625148471388261634871985780032135373296188899212707058296276920968230850775862024509404784495958997837582906455391888430200120207024556309255347584860651146216984204622704023842102168110915492800516930400847666491999238930359815865139874397237293988688683485486886503359363341891240676075933163141025015315114557604216933338302938451209882822344293324966623680784877084710205750521963735589380769382151503181782653932808553325334375503679681233546611788580562162950931371208726824806861463253617637946410611255351493409191298436158154098940433183431227840291107436399443333897824164810828718903387442083773070067713497476874531410768425855542189470129035652602701750115741432903680661481719484700299185861160434230856004693341719712580050503925428804508711812346381790994331758264034040214719093927129950283849476294361806411684397690551736117471445231916645350957298004789777204143854320423756414601616797499631403664563673901126814254482663402246204152728983839527058447421759289047507263948747637116724949404457102336316939148283632943876729670616272565764042002153299879390312375928131600016516757637924530486289966211482737195859912787908612876769079270787207436696952835826493494518098034906316214059793358974409323362613121599031346685600114536624532044485491321716045208124563680133099756456045200271300290376614539576691011344876537330146550764123879357592070818106942010995111394703895497014754660718248945682569940465416249434859080096664637520790532353576871316065501762537165161751953824332346183409656642874422187817333393144927938500273557635432783202825087050837512903491064497551346590098543894950329501144965279323126867281986751721561219731639671385302233160672495139175712845951339291812682156828732926624580467723762206311442484135980689386021200943584061419869605169066754263586347239255854798557548492402790009977088655485411537914183586900352580665381254560987926027538922769369779249939123805246515388086573193754720610268081348186431980911912390799265252243988046721559762121837174725923212861239722722360119732181689603233462313182119740909419062192339721333793824962500303346218743200496557045336890816296682490269084358947353437813998148654923391083498013615968762526248330638559818266397242181199589555203627210769141441758409812648399457844815487439951613044628812330832778463455842186099160638785137214355103785754447805059781057750937224732602586543511352022892238206771537510518236053008688479377406580964924267634997417443738488073038137912255357620972657162784932464258938019656520348189783211863412717192913742733928168668186402445789512416647596226544980021424174782539076546876710191688107229570023737659476948243300960272442092496474009362416933020850993927301157672679273417815129793430915548291559723845601368248217090908258426848451811051744606916070748167809137778469235297089044347307378441037581431021410527309999745801935345528730156652378405945279133360744517144603041581438591009995612145113003224727752197084951146161281069618865801812586672375707152756011749969109980505252585317072567707306227922879205290559842255851933523227677789609420519252544971101159669532290429325783701685175549864820974462866876584872258671596067587041338745922715597103947177919833011719882712192429876607154023110082639487383918016198052152988786548622613432200120253369337435681097191552069131034617166456392816817277320926498824559425631625924677332564913953811289699372552154915562093087240202092173640343317680430399469053874994335429280719273589212264686250121050687182170647915573537718449400994797780221162886463256671331024189112671134116682249308592006935231764951269099402336540941276686377609007643448903866714241648294858493547160054664455020029519054717164965948947850729843061299698984495547741081220103638056345187720140663679701688134418352910698224631749724171744400638416837408187915411174751251413029524782417616599234380565818082326146706212300452113015370510949354291169844019583940465456522007752826231785858478886738972784189513988251915908290198218368884293737635429122722717310737845607851530334166143768836984398849896544589844240569620787890269973431750640940819836778769964277763847454679780143394888042042016877868993656644697255699084926515541083081470616518853026014065206104294381408858513532772573228617781821413892847819805276970297035597747162747373419276237009785832133235253684441745436901811595566871106746876768521763461229473418291335802665544748637207994309807422675512180774253062849291759194880943691056878677828704201583851367653099431641888764805158557496812122996627740649884494199627396920274340000374066267687600360441973854544534247316490989299836487766077050203401988006170301821530893042406967867477364939659162126852148603286022558148554660129461422479893165120492553210581267159710528208401653103993489973396774043130101472016990122691040723938944089551006645428797228832280033779802255657662096516590101018713403721712961277891001696966701107397333101977491801196129670481526268111862781275062142022963490811785184977613128875682905378663276451678896187121138276444864189255717526383690229026390804339886000462841468916573817761961021242377940581339453458244212941167665240143839349681136416773159764841377716286460576566095292554432409394445134743102309108382249297095086138348974581823476415934555513279895897169623236698022735565462284829156692047454857447354353969280158133826961104386113817208558356996209176833037205798482535124894631223806494240513662929299786909639148459159567783079681105192075018026245668446014809906839723456594296112869795116821734438843924822037247087886003708400919394759001624850272844425231699622511220841166041757952521693665824856435265608719938794522857802955110897313207061917994819856042618437938768780410092305163774434939554479696874133604471278449597442829952415222830348280198333111566147000698392027894605176547737298521783084416807243288821119233086469629891948443859353099468649769517402720311300193379728718555901215780929489916547581547921272466420705183786835471178382578197155303023797870970376589929614937047835467649741089539321856516480360110389193344489215347664549421427473767980075266780932554390554337234182543408405427662717615151376348846280863600086919415915795335633317664338625752730345347210717545035552434822714681989677249351052155242130835808793125180070595340349939733826711938401817319457532920442711204921651154938773858835931381036396002335771428300972663495952055864734846802488786482203610719919882279380499763113940476609290394232659411775326201706149475100269849681704978028812848503907396437999551056116880882362568434359013581000565757892867281182590002464003419465069240952734406644409548448630214235732027059713567046602191544301152669792825097632066392724846071064048862447739484454383342599854758051450660609904650921960695538439937508914001667521944194335789025274971901514906207579274690350013690565357181834923024272667845743429336082875576080938483514248220602510676381045679457248170868832206830130753675595495569207480966530951493919472267726526747956540762928744733562719910957909529044776091190410282160407524637133821554579907714299789222001889149026362129953328072165855870932618817267293203123793069903795144119005339719887293717767764931813232664702978253326054103956596490591657337529581938361907772998029625511351869021387515475016707653914518804009372998877288019828494010778886560687564255578944324375647769560737610139577930442146971281176006597482283866236134192920874685157052742460183280294690966402204846311080262603472617641097650989362520669139266162999443981293352492299564944609874165561716006748545445039728659460828869643349227916119157432570229552089822867356895495883608944322066199185012883591101277357489932472467268681570129326412626761466759930867048820827963767598583178942982005848647037190762102691524911366329368185769710271426220076873950948222031155417214359893218900677405997485953415553925085643029203269115703710433908358703876243939283521144728366564373967022804416697509009848432984032769060140471514268639415519285474245919846333455940389015143293363429997247224300857972716757055929944557937986969938615424028568723309423823054278983005301931605198891106493909464876773369333958131917411521940203746970168847514797896110519521368479442633131926342848278476799597347783259476365377693674874397584866468019956379106729163842480911346239826849333760526096543497011775088265575318941551097061447089569803133447939776590968652348933861744876683273737253080487846773588574369167246895946459278044185565553158146527066544711244649654008045497667684459753914448994305856441553851164806521960259192552097568402808546541135811289889697895283757557492314686325350704581343177881673831380282152810489024431331999861198403673274681865758341974429595673536874829108380764152681844546534508944336154761624899810431420572063422456499661201575103035970098093519107965285490358153893192627247715384390506960444018238012917853572756298280985552108902409030373288345541801160315337882705978092012557502050323429431898806114201854527272944508796170167371500684578619392163383992483187425014239718605360485634808950692514727307836339918291120326552518006561996722210540771246150467709514844681800056358276614390150125906702669543194489255186178846006687061292334586823382388200489162749654283025372996805236503178153049548010128812554576224091928112246167981223381582642459596548471320393735817061623854935494239761644051848161709452704303631027306040801593949261885009590912844708980335069217530913471225229477376520125339915074414883044464085468081345539065692917355503292315043331693729253211795717120118240378716629079579267399207232387048696523116006442976301181507830032324750666007139686335384385827769742174432323723226228788693812271726334207709408338249474056904388938188056359049293168319325724487570601481410651160765115876905109314667964126766275581976328225750153517452449286368492922553596542774850404808529574822158566001659852151157071269818571746020274352211943130780861113873087967220596673363076122862364388775722873927309448465288169407669335147916587096750805806718142546870068421401209923808992881745136636774620041171375453694289335620201879081412646174353933881450674894395591379886181428586414716635305971941709992624890650829845174717749878427188225621755572910933513814321190599749595803076110030815564261102393324195036077043790575715762060068077003854986686499984302733168853268444439009699503131122112216901505063256669578066803893022885517648341605209603190433297165615865082956669036471416642788344838764831586733641534303034661698771826694784877499221732292616205810828615645965731484847806509171366415248364755861528201445927050596670896315792082991244460851606256983070934818153317520452409186446075242930922838938974500761499660046028626173626476678673699171163708749583705569814624321917143018628308658831598640005901991512410790302885261965003121086232876865301948469228543257519175668596099057219249226371166740008647779654121856563722983075008701279584205549005267707659323121374797663269676077405323146458982793295838980327883992835941017762258045821617655339481032499965382795798185459938094351809684304128488789862785959820058932334479869869071709288118999288319319519245805052192627499966584324671048601234689212192489639942805452523599398697121357680045016240477154486621679195919944494711424791739859792123544821820424767350780684898478523436256211176198230194218582330817819360803394216324213664236120689455425944856946374980303131087914167291737363467551225941638785629231586489142442375338507602327398676887465500925576308499015873161393402390516348113000777350616077215917327861251135404254196580891425729937875020251159872748996214942068275783132426902964439551433367321087808231618318401941626506053716609286027181878027325775670376371866458132023083724997277498510183647860831917599992327004752203616992059403604466368111818007236428778074602194147757327047336653842230981458985810848722832344185273717906704951028073579868083067991209971911402855644303410222719507818532265514546820526048496328766771305368311320203668947503459238052627196604984506559918343344622593037761186567692460704036737520254381392676014978665760930307154235368597403971361653805766536971417621182042524671769539468717716539181502196904885991877952354143646511820602009715969231946095294328392617558069718595910281679110777540982710962523366463937844552375994326422261743724001484724060129691166244370485690911589296563626595148225967491653279453017412865709315371023755298028769803292451620771781848945041778436191211095536879964113800960325738950772750290530220197723889017688838917575559101897491540336013822035594297405499519517627097569491085191234947084502699792201355880649928167086450694903079974771954612135681363232032705829329066613931442980569217307854168783593056175496356270237587203267772356233234365073489041298324827610590270515433643724830323110983830781086045864759208188184528456964721220909531622990916186159606447486066490063363769030741116352623481046193370123656795475466584727944526906348774258494969741543173546612697658667617637371359081906988325212683634071066665810420569698882232799757781020584472279467945854842301180957547462350527261927278957045072721880866311075327686212046130958959188044325332330389498720096001558280707679731648408733829051146247876040005022717585578676655345376230686782511060993946084608505220755141807299696339250587136140484087194082988224378699560479493980514636725265542463904939341206997835994020641110489294161469495725329806589028444882657909672603895373107831971492452173456620378623159261643956604620471624046354476514629788261530384063379785886765214261239187483779903426632319231180130557295789230278572400508380546637101998347859057360976257627358860275439795952790901736966741955023145994289973284715852368283908450756114490477376072049475073848833636887093024930249655482927869483829936262290691286625463680531524961258286184064074908774476106612221326819449197717440260457566906476840997427066248048370519836530983386078374800137677314137642279319946565968478582315337305236772683749963752413819082716510119749550177246784951198285546010407363609610703703670542716872959462406644629338760930787235918796521903652135944157397485193214290385172630428438007572436309707752233778445804367840507233116101959473548148274825044298701803370054993475544381528499836719706182017074122749402938730102201004193785532087007183771899397368842718863314831979928298349588328558095813412497507142741315693662904757528479931347775313491042675353999353425641027629806844028204509536719491141299737147937330367910607817388491078599276321309451803459919678814380504414483154506224305336779324451190984284308049431228597372455896897205272822552094052629680899392730153730871291216977050965680732782774669173921843459783336273470625558468953788861705124202961873653610072463804678819264597261867595647768059246992252040081974689751921655769325643097547703382251324982619095753929510140294930367405085242376960954054902550576785897059549119865411271378440131060642862527751254455632884819568538497999672828520718608691321487223842671068170707797878621235380379245076941010275314364494396532402880375397054115526935399191703542588298689277787588952950780556618058749320701324760123229078802416771861607827842178156587082429237796773692114113020391936638685669144238527184909585007232849228004662330488844972526698864372713676289260520598014314293575241412145722656538151514220937165973142496530231144174683084599660098579077264742843723888729875574870689465748159195189923315018540972689640999758253388274310821279808090828020491412102703115764053049687120337435117291491806682869477219729827090421211890215017207442019011064449243416811468914112023911320674242308311547434305811974730427565537021601547028512868873936252705128681856100412743512206103154859518375824719289215610027858110158357489016227348714700396852008976865054559937197815952734097605985171753969589755690588622905483489061394028303151426659816583780881613627703258901084349408129857680436733655272415531166487179431425328476193891041350924379141036954256583887687878349995595997344123379141302162844850102894587306539658583759755721662509431928911862345546136094448889420833146783172569008293398063094328371811979682591051094842357212632527838170269575966186931048397559666906560113517083285832003743738657073231960369067942594966586076368119585146934390379135884775717762744323275100842239210788802360386767154182036424093210473680413621188512458862343054664722345230719531273069829466633591491793581444336960791346280349981433242445376682276499359845319045266398185221446761089322565958197178236561739223010567306351251017364069345429993974653291225195472446044973763265782561117396094255020573262984269777450610244059972077112295706998755619391885811886763841164641858391885141892503728573491465105936837403641579586618760622834371488853935540934782076232863751499863170181589074369951031567689584626828994483895425210646491783066310862790419283195964277797187664614296094885531521830766927342044097534583556544024343214720194821109151124418817087878531107713390043625665545721057441631453953420830034681496444938999437746655229546994724195398895292203113859282785380896082292751125660203221065907973064816147923913342765876255201355173368630431159711959336238878369785988955748313852943308858355883062750463160490007763019508547942860211726508698411511468317770476615454671877757484417491095542834398031748255261974939182224122292704887682094909899068969059407179650385870690033660138117841506894145146748504957653396772205441548379496934312403505444499450196989020446641601039942698850868883652310597825979882856379049354233634069643181161376830740490708649652460875590384434404357474306351133114720373798052835914898470011381336822188974432976003848668026784542426009253193220390371534968734077013051304199524672569172017260082855024966212350736309540598985492715070212400385064792137309009463555468721363864689443748774691774072544876346512356153919534743784450163871318414958778674827016291414349819921323264284967074125885922048708923689293463205978891706671727917882863419296081805856300677884313088113818371797880823736722699036404071011370520096340452065161579523242083591018048920562056932948353224011801183545086104279291971219419617355918947825664170879027755717666691050656721804130220679505293065692986733831289064148005699775860784615559178296110142970095753049702282120522595100139422690086799453917717685002151016300388445802424091048312700311352438877964166068968613057074558020448668155123051408240886520294463668243856930535781462316109643366789055141510087366020073613827878797359086023839036908176180696237093763810471096625148959037174505955946052959241598203968295503548687158744229457394133246976991526501906129055234091536844416204528682718218879959630934848227076929883955577799901644662994602913642942439340000316688672690406576102168347386024833259214827743674447543393039360397422321758474815076969886713152206394097941017982881732933200450345345351609770369839973995957778988093448552894568088248493680767539649646772158498928822902697733400360767497909347865068358578545587012551127112510398664178743725222700620239012316262493801964921297830338791319489053876668331677549645167620254857670690158666026081496955842893326965703906584986876734994388514443496515239913361442508941685101677573598521249288975688360695954918631235922555036585747360308741752510668129456758814348328050551499188512804780633209699556342183522993485445157932662885821907952898218443707268381739167644304780014323645835184592314774605462942227103625135723384704468385524779238973904011396172813901340968617550959378035127672406013106018461286970382457317725087350591754476400257108675503724971403346079790699579750544653111309525702017823089494787530962175031148085528998120108324485314290801974774989833590238646054500560203104997856343724261556331218643740626014624585610811345960364208112937067806498436308238049975355720308245495671628082619063688855824110342388338538869947660539823319814347026039182785590689202712315540639734053539954484117533472418006454084979362832987933524689866568777125816423899470700782872722228454089038931652240665436507513467054565800687400242964192964526391136557180543289572137097404966483670592645877494655670567680291478412712737191738431809718466889433019601934190090723209797454504109989570615776127702522652883701300886218002004845710634236073993058463628741333849276055403791112134123433039854969866216013726720598871448731800098779338929731026759315471313211817260625221968011037031070214982024394306939973215863701086431835344968780100773446447697834638465863857689290251607886852623733588659129489120771596777838225035625892530038745754566655074170036355308189451665989128393801215158846966608602599443783018133420590119515271481059698605906382438047615927175965778566886137866521735592514747458793808149421660078469169883493301773816408400039075767255608562173929248242725453600857171612633916840322987241910598026272263860277590321181173963125524381225339950883274753434329383512582977868435661470971219578651749069080394049356807484252608443212458944726963137624674360154420267487228098305328245579833928295329546666256161529903704879240205892596599195287896995668179119440945048351707107012187047132155033365025625566724463204239819081961968860470216536009492751613409127031122824946402678033272484539481342481954217649323406733837125916965263450371153146433560583735001563929116826810181570082476847207419592223247901741676448729674291188981880878442858954440591999391176376955010213491713748228715323857314217434654346812521991445056517160817047977079128313790677201534790901527834361311328049926569248957171276978297366478687227481265503065183617052763632303234236251941991267049720170689646775770584346464530367028018884375174330396534285844560031250370454500804495440588222752865833051051768120985415297217578744064829647519460015584900326744912759612750372028001158042762074264648071657707870898751397208109064158850100172266495182362226181652036349932194921767048210406897847485911366118492737129912160252148933883500963255388757667137686749945303699719564705804916580224559167181342567450824974864931709496723457447332642858263069130564077997071413609927800033385320399118584330372891575204689089183391447557906294117689119829766963090095560336840609488121271509724069525694745492947951306599353793171417348092314740444523145193560862463470504258982254042738598480896220641829385218757629746619587212134987924845097782212333757086549650081428416211687477642000828647652811509334729825537584261091304146223169702188113875403580528765698718467819429122478512301081216502212075209559530811058097404660667355903329349297961670314986133800501173717569301777672420727937172225440074959808433813865224831466297952380364119665640575186453005493980971220553792199610517996890829442574814583359261927379855886422375031587141345308669977799272768664829796492542640348347785410064432284179184294360175274488838705084232766633348483490375958928840605972394396509571801337917505163185722037541279543987267485349460363139434071552108749305549520108188090975241298139789006924936881135607883710347018810499947118402355525951737238051791523102881249940336634626127178819912697495711125835478257336238967049410360872674209839834614596811755375674816044633576162640914597104690260776195486519181577728415151350587531868164976849437909569375344205667013867358212166930035376439359217985563358250895676792832090769758455497746438173234969632918176731141562090585577806079325347284663103614144041652794312670531388063359527934393582262761156254610209975495839404338821479061459906734056589023309908655193889964195551836330319601036973176881521641076789984034112525883045193822516517602581246969173376266333353406145376186692012876725729189628898652784037846031100278607409902381951592950043290473703262783962446683011305682675830219784109315845629947192660902397497408527433259876290809620553340766763937424814624981016191505745817059338675626909704565250741232662064356654003854359934189630824106941258528912970564260706002339402773509759513220885025515942864856971563506481559879464757868447429896793698289585326328957509152946658436182977939914939932879594975285163320520788611339800672342613589558065273751633614846610596350728088979220360617593776419688604624158887194444707421055226931560865682319849281323161162754217450022536958293275478370095571784629744340113393888855453008391793599850130911990918931676031073404382383490899930781101660510408098817309741921584944526107634722478823136682544532364735130159217107981643801406015965600441551522742263807186564766834798825905142974711072892470602928916901963934800077905763749875326193102142385029222094533124922864525868229142230910624118182706737050146179130411217754868274466048012938353404898654764504684726051371467774538406905013717753674060744074686515972379750096000678786016648289917163675657034471412804116337089976381389359837922182890973991291206565290562581687749932509162709538398229307964446306980956600485251513170492150432190973373895564775705553986859178490426665112605560771045780309229563663481904416666835313500252847497109031474606572330528664893280899462891007280305811410815988249493390620158455785935592652320706433728955741535638767531639352242754747688422124301739659401218421913460064338117079140884813531518226794119327241119684678480222319549618768752747130527964263205126420840414105164546890199092550441000793758499348960948967706706199015554294757070139383765108460854743341020082129932503468681597869347667187364264083060178948278443054883049656212786484990355250140189198169274296500144955294327484046480600609888135801693152280243661960748191162489499867582990533324115635154844154407050605067827568857057233670095971878585915710141142121460517208331437127176711899212257349566929509081291644969912073806545859836540749643706366559974530787288948414670683171981480367980229039030882283022717857374560075839453061546249309169576061137714564618086630033374265984215707281936547886234982542004558404404622846186120039118035439369847458696272200260541521605732457755882273617873721736145076642621265320590727133588255774260502739246354996449225439193822663700971825704643166727551344530782079601240650337774803295380395316380425708057406399665252192134319297757376583846263543311496517938232402096728149657051663678189952783075509930454723824150405201323233868250056545844393203482114228172428367521220122518666325196890762531327301009516854654079099586711709325352801992893648846113557388033647334793468113180464436280113247874028317344195057725362915756664671290715038808518745761736603674841373549906576287698453953100757301529706974976412924912384490125672336905330840691295318449897575898121615047463741863249834502834160203383220756088952497267129454509701851338435556505027785088040000096568288645174961841381082431556602553952112664288675747152000828024182015144483876385210933618437298469239923954433314506555033329796321597213908038060234369712537392875197468480603738603494476635247351298612930227056461333330225360282200016432325991252863240005786774286660070326851386222134116033641723716813712663005571897985140158699905399779328166764116442388587351097477981849843216157152582732125791929973029796279552962062382757366807656472499479265492832439564653803700360091065748333508309000266497257536903385574084632270449219891836529732792419311852681396284390909366822798452601117145767717753059116144342909786368692752006348708663764782684284020531438241361280682074875369449766994685972209572166045425378730400618583724941405389521474652786789141635679442503347690482594229802916017453750980201704533951450534576680301505402355142442501152171797307834344788709307216640586297363975088943309823706227381315310308516382083653154204131515776446387540716401859600869635702267620843702488812223444483208503033296950162090948037500046451065761768800707779445785303359705947774158691490663340705576410326814844231756450701590690891251562741240473953043233614582257194638771547890472677449524695127446239250110515817446293201666736319301492395340710418085366210116431482348495955964444321642277754199185050701868277504112059073835628409451295542820515563298108948473853226647600679883665594000934115463566840767189206511486166481222890583224607889579105306254100410375042159780283948551532545597283180991611920438820503825332298884276611190436786609120080510708169196104587170066570129125903741566836251732004711740131291415442518815783778381329801681774783188133016862968643373354081484589757256549938647262594239164754640741749442742194546956493764527997624667917503845661630080386135166796991882486352744835068248032763280392197809489045826407737445228543239790616861340907003568208718170233937468189321610338856111565090085956812014521018666092677668263340042191986322004961250236335026571309654708960397945889373802365421968139288339090303959894161429533660423956832793427034985422356487332585221740049651941114862730931595173350630856013183112301770879782628074991933508659809152662921671105507237407704619235210559213444694242366061010484098779441437663912213245111976857382092656357826323164914186232371498296684770758493347748676606862175260366779940812597497808367695128172480814619043455402365136954296821798520190846886957312695690399727763112772172979832159757500401798482225395378781615583006033053424605438689744631083721162677756440489176716554156995879450934431077590741793371637273722903521482577720363720357877814735364398842759278445571398803019936575520544192351251516538943894558508169208147270557065387008659426102898788880038601383406662589990067131394271559417626152274896826145288824253318914393839948286817618243116171337566910482417177330716005443672123808445971600691796366795450321865971250070112106884385444069713287253406495348474034637666743215375075370543727725303522294518334202288339022859555521119096690388494112062905943319999957344422894979289296943241165746737940087195027194532688388505871476791378217806499770582708746705491674886507104614831109780258137489009454870674421752251310621210674289575317335606346930682474890393971666698534717450254656570063166454204052366671460546721839417991030532490538782302976527086477359586094497014428243751166186130857413213444672223493873603886591133377257838329756627919471399214992803755270855747879203294174772793162809812216560219499210065570491465347991790375886225252556797349063575551869687098416455029809335106644871732703415470328420973428398711753436299364702799452005629741408812383080195939908241898512673318953361675965816680266482869760153324685963578649626685019818350090690299575139833294826101081655140817952375621991141975784756219367386807139968582178942862001112269179137560517249888028604338170270755826954973619609856960665039548170999748879094737808743037702410813241124264993039543746342375910206383485130680574067013695138654233394301348267462609403222053265973710071034549971270246545474171924063577841115726530150449961217876896729445397637317960383955323871873153737658156484575351940519985077291821685650313762109904270706737957162151196207968335000588966124459844847509350113627058373305539420139183074621897229519198880851830843551696195468920398218380233979067689848148890310730802520115186382197597304374403267298276215432942392424025483912615713889908167594631654434315932645874182012612822834000514591864793404775753748231703717605142926392883227043428664226298275450630062224711589607586008604983327500630664676563251215000577325849022962241067294642812817188660106690054997768083470098542506378402441227594228606849330851518457270441719673130799156815636260743068804703371232460216475246514556228945342397065927064928029681454591676715515357620961729187876794574503120193269662956903952459214125810758161357077027389408170110798177946267461095486977828830563083896571803922337579027301987084532285040023787783129452489116998340130785623814291526049631634381635492239020383065837045114512587702771158393676537473680997813735543207977072211526886502996078109677621869998358033406408447118909542127736211836150050607854853511938513729464598097908212290793867164634131011645354595277595205484997624664795124090348398462025616871600381796259675049786989351636639608030066351547843590451871828091147291902128574106558888675374815842291570530767513950061152310905339841883860607119434798115572026933331673482976776531517831434916368031858174651146187180128055999466442390753104995226444052978445112350904336404597015695674304403388055514831509313060613865109363802751571654605539529882992673162707820048681215515615481557072848678918580707718002972833319099129921774806134325535993062442259273863099245498069291194092043791042641782473991671812945572767724143780388430322082190141520832351130538784697785368724099058958373431164707721920564877900628124574611849649500918580316228401619632369117323110105033044056098022270306958981374532760166332498179499700176000234386087889769410630658334123368352923902414952704653736517515542710496269486155171055742668419075251720125753149842113521444665546919081077377308724775831028918185810466622669921095105073943276638347998923390412741085352053014071190079746739832750974047357655587881629061951571085903491822873970589932193170896234575579236207475927337141286284958846804541110154669109272204653810440596702881623046307152011669596662619209790851792128102679304620084956019836847575516069779520376800443470215320080528663981055944954461926417840147550399816625998522896137025090451252153449559038071545837979695445574250404645616245138995475988171793106122271043362903775505625319577915680229976528769918537492714694921387714274242541009629785850153351219183617962332543042723795016192296965128662595123123665121373557264249371799755553441158850536998039743902881122369341560347424656992627871801224032045983861821791136953638659953846674935690477424726733800197143635380261680670320592202459648534552698828042082775484416997672941371829202489761503758223687139024028150628215675680482331089414098077639933114583438530124273959926514435248815111942718941338463238310958860221645976736470291142341704151504202838453713044907079886562548189715864394553040551754057880385645670356762110432551295380652068993039998073074493865206518710032867648586414437268185687911185657615163884019726391946154853105754347956484748111112765419912492595105772135961376475501215821231307460738304538758915333738004894544384714075627375334603982766695968915006969558745159928442967615940968113975617116017299285166842399845283443932243544213707670203371141234282018350971917631374017988226631557239320310391868628585262286183434571411879461068650078394221167299050856051353330798218197851756118715807304902677770962424133147255058737249659540308178054300658761043469330642140925387352370790059768250204018974788228094067157912188728161779545264388672212913810022100759786500613356209323811213871080755064917353191726215540121937730659092329583564730803077971761840521086642262683175174598785522410114390808494141165186296302279022098877010762367381006810153975272336047453126815883298013210217116513011382803965032979569859335858403344891713915572998298820393790649872284873235607939484384358070975084047252874278842268381576809389219451485095528848553384373543339176104099940421253902987744946257500162111489262410640402812189727959805489315212158665919126127617654015772626376593873039428361058158826384321455785171955930957603039306404086816177631620230639660359221223921901795028207506707163118484387228897935062940839221252273131407371029131244263826679856127906605220578574671366608336444670245237951769904234528629152645509629019509404832975737874178648622845463328852216869530419921618494903601098048348884743378373323569003860745150185341797102555865967576792108521948112962727333144878528751305311486048532680508230982326170595185646321396623338568452477526833801217153523272265439883595551103201223762928439465786444598797927767893709025979710996458076557238350318174099534317865474068635995875804203390479885731940097755642376894417399309259568986282598059702538464898204135900302466171886969642304915784307698784844568505089990465364901943943966849826238036025113998417448126244958163605722188700542186756159140452973290476426403153253362569555417975804562858413943847593131578310539648491868616196830282890443675444556747127289394872743489228518680467961755492864291604091671893946779568695574719968024608874500380269315260507549323019672103335724387621047594660402069449795009161968348926783226998167950136021884388051210109374709781322198413950671538989562638916752720620162023242486761494768775884712930025936535765071493594179179419212871044749223685725651321593639571300584557994672095116209711191127727755644870644842298696259444255365199020437822566447843128720072000409746609623252433139119466810665013134308274396567161438706906834452090969540102053939167490567661822421087961950441759783928754297897752084555457639763163306172258798100453390576104361078485664467077131737190487860643469086441681002833269324859953388194290847935553305144215328655523174179772258920018538901802409312915453642739107028595103791551492783446192465507724318262060045757340005019296239454901644625132660269262918149642208410295897175033212947765807882390027637894919326805134517491778126906745213436041768163136948021899249219767335730270220910233625831693911469309008571457001856983021198381874961459351420259398691050796193943106887949400264641029264425809417077581522836205749263771505467625850221588187747094484541208765752272664509106272616416738462182947154018658943839077447233011080105748230013197714479798617950396471133749951546493723287562606355998332658486604063455582463168373631547362288032249373184889015673777800995898354345037978919017594719971980978268086687392782203512517662239742860575173913068731491591613645538689804735511606031231496375598546061720417372100705756574446803182856242007449240010731838384796689485729504188141215742008185122889964701969475546005604948609399461557727887573462666808393118545002665384171095256314695180709427239440614039851107487682327218138180257553436829714743858225143840330580354480074417797213340406574848386317085197260463911106195147075195711572197779749743821644492703683336452415943177704307966864084537417508100569996731555368138656046680377644658440362790407837673067818536054670201411583453338556807694394144897370154599512556460468704673734360111712102452306094191179863282496828164941462505235903630557626231900534718201379711383044719483911146692289054678690828760392295832505162785465519158472717262023226720246050282486433665283296196680009612674224932905274879221869285291877478763729099009047847736961011742028659052664030003321180459533019080970735753397149674349351594136257045138157199294294805555030556575665992020219042444559262497801619602619358910236129432495319395681253180187850886524800923908082694135731754024725483821276378593971328519987985586948928473224485946513635706357915457603444521594570562566678873837834735929870972042932844193274049454066143052055542535913962732994893996745402888467202117762408915360696246177867951754696862777051479578693689784911547357809606813371455396649178728566857883719614463634701838090707195229295521691161777297878850677137147154374683463517457599506394036731481662764127166777478178552599730436245925536277417718586014495346465869477765854278492521065107171511491719107577135420032929277643214590531966869204889370070416387519337670181802563719340407675306947849556333278672574115490692026619179526415265187109430151332041904216933281736124970088206828797725017909125456528465019728956321549924399890644583730237461600596700318558260282661807978305207534046600209321524925426784830521641951088432967232449466694578040154899567427572563401631195999181838320806513604992141695119804970943354640865030413691446150114167621664573478569062482602559972005837930323045734227573709563856135222534172606880262830264047024122240545021809691836200185152093897481297338597537223261878312758036994019339756115120162682114494790388022370167942091997923605076733985156099647693948007073962154582400658561389585867168660712248442951008961793574370118764835144641316442207517187371343548649125510777248911247305095496531974726740539388765817104215393916632391992674162869872633619353494868652429322606700122906701012575681047890090254176825083198629121331739287422311192936125050492271716763001115315955182100525428043939176376394466415458991586905190457970450484491454218196290118468370342185127541865294302464354299223383448697766632040910978781990164650615862132172024465392838452704698422097967849044240783875836587555195725932014242156792832377207195246501719763034170925613411565606580448919882831855590046320654324507674548445496828793776258018189422843510230619149948907042617579495701987190769693403797048813290748193980031911470772918432284874072440788465629638026393172077625883592579490360112048698832825723504869482618575158052915097242341292680994073122736429289719178827391602913861141469650871306472076658700338987861426708569702682243372388714423113145668178793463365119399346864449672953497632205448420506496638626954075485917410772731103711929115938210695741208937970790450405801429600511196104294980523959807340382090075707729990601434625216289685192109912428442549888512313802105527624584988805315360969855031368753187178112191691503485065077528125762684732259738245347317344178608669941976548814667427223953814441230359347138460865174911601940201046541909986083876187340861420560429749389842954900032865666629559146305220479024045795367028242833876065194378532691516592742433069535914398359132229117140990298380097351147110095179811250853584941037868542948916847902383805112652539959190335404808498320231746381418103056591664019074642743938881058339628862097448311063183119973457068224196829701754449333257914149742939034766291745611142733224145185414343764913418140570014994767806553403532627988673917144635743457641153269731779680402585302335925476793864166219525929017915964249256596037510833941389789448033562814995754232085809957475228231135049280533848960720822219640632960740671530092725526473050230618429910244417270925038013535750817710683123922566979531064191533782098894329311916708269215186077163388981809428361253301196970136589422855050978013873034469860867979993969801724986992258404810033803367522057954193773658648412440585991423588660524226241689906332585577496244333501526058059168202536213641489187092854502766775724745966922011293919762220219495934709833927110194682678543782943722992230441900798486901674147040005297837337690670994497969707435733104265480867616333816779217501589633865561916400796486225446941248910164462813011192236876513546117841319714912159410071566877305071535928102377051356493683535654504165615563846676776212825182690317670817155431262096294808609725255872116716853923530505922681158537399817313892593882407177389060502979816093491919793637269741399291183402249489644316985255839684672700622723000608926872901187552698666781206044041480335096390314185408818639844184041231678603059990696839989012045932521705292866603318293941704626766567901085402573270760078531633835209204236846914218271605098186467767948395283302605853135841272574425090293612840104693068931546418362859523043907418953384783767297683094024748775927536692631557108956532725149103773959737995615325199110580591305890503116418631640935855262251624141073673240044032093609940943909679018809916629490699995461525156362339925586861100093404853454092326137891223368170606755030350131283164855707276962733555200050222708525389344708242767588463352848926190812036274808385820261389867512313762438262493050792670701401577216076114472457785815309054935334327025433313505846415694046836105002671073555879281560352857802805005869038053056889241955394231405010720669931016488372963357535931470736597065839392870930532263330094944829828603231848464436279284692456907269490664741922874717519532000197020695896840652234977817221116858031426272652943710608094218528311541155268300911057709030250504287945067885401840488169216850510387743396832892281687574427810577508197224666843624505156625119483050038889989246406555987884135973252423318015145868336149363486022311707896817109259160049482119250774798184660710493541261344376627575399336113205828641050979237689223233999336365928318470741101146180758021595615820132722220781827316268811083668247341943793143182487375196143794356720602652911003639978208467566364766617264811524071225088259296645620028560905321514617052497551765227309150353141345524304964315129230251250690382164622579601825529062114973923610278463336081072644987166204735799422868467324772536872698651583854360787907568011946491797709810187715367530231384525234481319778302752872164653962166419286586281294061168739051311365664276296062165604000467594082132999344629157314480170175648624584268056097351412133299212999309912329039849125801348927270403501480757229765542630137725080316700578531598295963264032269261794577381322159251178771484635888215673095934429433329044997515617528732068963150105395567228833649772095080453541717857201642590780958333296437820568534496553162469622521447518882607241413435311676072238913062854830223430749938220852881901603257590874459933739771512615830668792609756835291999625486560811336542984213095022403200858958619772597200121005575968723461118642144848914195056265428476080501699331386686186277991094163445615108442307261486108091635784924383949214214861922227400599148036765045835315516572673156687133029369453051267831524681481387276660488279806263074541214885243290470741754028099206543300922258338393977446501576505654120490659068551783599940943095199829653639647294807973188949618672012392246337771527022177693364935172246136571583996953672743870794847847620407693255833165487345883871331703843976098366575622588447612420658034579090196212491076361647693458874462902180129243346459682955484913996210299262607258060807939788024533213732942913233132796296490358607178681758102340318126528600847259350642411716944364502288570069087207102107332525840203667282756398001149708152208592753902849375524529239718217021260750872609826104303703135703168049401080193858526684817433963956625276364031235707196539179992687568782686520886764790812803225414893772750325496491576559554231553145375076001596615970939857089130089457104885710520409339932130757026896577897022599778784103881908297837600604582454807080944606067132658967332314537852246612597208205884684897594605306583804186865671818126179737090211438261233676561081880269981457136470274562603440581242287655417229180622353625065012708113694245499185518145626365974021712328264616684943218721272032354255723058062190827136687040858221058657450594001304420055653034443297705085231248625573029939357493815439202091688148718810502224918346435766884716668516482050556921896010512186813515720035175445288323195722171574668672552589495207505297754037005437349799454657011736410169859215530017093369108912042410011784873076656121492263281245053260155767145977619091920237054134179698083942342197914017984227693029549311829603179619757928082357337822765062058198658140286412361567123634202629167992356055755471229456430137000844341484140816668452654832717522903130112251837330519456852279099946327824464719567503279466918663432854634820450034482482408718302459100648713993103361876629289854607012462578885425241087240084751089841555374844433768189317448941274370415156092103562883299442029985290676186823311436408802279048719745161298715971531943868758536594840472086298208661352613858974559268573065843542532528359117496638216811527701480734840649164475713442573809782557984362388877139085469452095453256816906372410654259116927033763925952672123378299054932233352835396554727333373132632946832300695899755750650636282115702886704897597873659117783390449252447266394181677135562024742707942965686733397560890697115213935371174889449186877596330148885184257525783028848346696036640555710685943201906327865960291650190907943406630282109996634343561295383962581167531426944683781170883480885448538026330528502105234118723993855747562326743279272785140217977821054010964981014926930265714345660143445863227419090205312677109920029802551749576452470474773228126993519036137504898679740857346713830057359537552976547208341385720613843119615082583018546245976080317549015014207723238108524531652606783943539471390193445624109837560316108331617951379663609811742346625159984294986188321216063246313919110782522615953358791540251775702197109972715235890918014244416548423913448578561597012007616473236340178483641118299808547797148224518603908815952244876920267238927392022428866370033713073056873344565441071152100299756801227850263993586394958673959925858252958072005608408626862048697716316249274935266049971047791958934537557677261906941680675443358459918312640969594013030232382480279274671669064476023894751534835701698595584468686446112718111854710328086488789134644691370895907407351697810044854168644650167515183211208900415379924251605304815671679286633789586822262855666030508341753914013099186081091105970544274381032734712850972280903961399446126035005536361217165159538308960072244424223466763906830399310092899782553971977165033477976872418720140201911880885251084076777442197248997815104806506136660825611653043216877292311663392947326720675071339017102456514861206424290473515381662154916152957530884315074641547290719809489185979657483143269460452721713518708059914332268605033484086582949714682695863832710447942605649058633881529254121131324353953880984095694688761052163706892342187086658937214892851174080981801445556579258393984260874311906822739713035858405314540141756324440710754482334820037319713414726439962058066784402526018893768062455500216220833251719666322092052399586494388389068950227005210845878657452590818326792080131532266833807866309477893736357577632292679383029573303457189487096103063240979455907727113396467470576397327425738924727733313938563929234677495714286866561528591749336818251435637188725429733771717815214806215779199073676505218078198373295266603594446875073158230847586395765485512993400307569206376623566617898446068182857101008681032758614100770835202418371318647760532655615370714701601484222969968046975927190669464208180985607347707673831051049122300789037822348584012772178621293192753190015355910856022268483974536703573038153336699319905630876840689439256182782079619206942910002118841733107987386316095906958559983581945189647552356765516685957188681013063821921962938901259745500711760603774484122645774947702913188835821050197385882411140418367934529607855654016007137068058269341534882717111807753567299003236468464763181984542262941716819666292087368013983053770327965212909667262649944958002550159780352392898895038456899612974674267578434091690757377635347485949157799011568932611494386525483898960385278266249995834735608527078915846332988545162213620141269781913285956267226958213981255018127157603050816476416557529521751542784435136662017638387498044750520008561618167591619136405840360237228442994557425369944957301507604235123115405240815899149956742290994046394030826554549216227212769255944069790710751730880446070488645761728534141226566481604922060398584129933922730777597837474636259275218273350310330110093304829535404165678835501724346801704419890199037426749300797994485280445497374177989480681145707616129677692933890437221952736553635712863369310181802393330024633507359302618434143834817259990697749791281259551300285936033083378451935379749922873624002212236102788778188252832261315664078971050163853919584648960564995372759458275758089179127814131259914673626180027270371878996304831644428256489782907870143912362839865776601022602770040000259022905516416532548712121273732337812349760922625490315310780364720856331680964775042145935321360149218544541759260293545170948053539659699479389711181186677376209400867718153522328611389842906933205233436688225432094236736713906640751031887701470082794893346525721709105437079016718577698303970751819972729594992858591587602927562210696054392451922825836581133568876607378615630034036568964441137012963165870267861555423473088802683914595499666366655704416579047243484670719501962755671255403964574324720871269182422054740763554395362400861589323932376232183338502204305616725773145527681966732030179669204785428171034891533522255439610350894105214838213042001724941539045096662149075926684969690374753242419755223828562672767862394027790652949062940666937005863373562685759953571547529014640042246487678922030378286962341096289628641468426275898263884737873472568832026490714397411285164106606145695415922142463975990918978712607327074847739821508894577039164764024226459270639870008343408690922166645275038344996019203415012803760178904442039686688442211943959308293102803181837996856409715290968579070705459424632387485990762534796405466741352648387368997424019311225744146714990615943428073689879449092814538557679677300845724693532578829345856826881744520947589610779607540228827872512359785054931921409924874230634705019104696394449615901785830404624063677780056904531576528365435987505225325141483470754559575787690570018266521289250888653519126743101821625930115017187796677576561698940208537288154370385793556742706917761561668845340573708906992799792608355859738064788040163965835065829128005414055753000477241258103688316170668135631192427320589080872135998803142628061818415171820741001034526630300936033758289949975638706472525725007943654427239341297236806220286477508545849884084346842226863317264132204728288427436941064926889607695484223325202315019004374618589334815662489883457387255066739012191025404444954746757420619111863050223501281644186097555778691120737250020371378774526191740767282326496839787307093008501593837553500958315646865106680935585648018817801834553931907181140345823897261450443342422221282991301437258682266743084115650119164112178970058512811670817638921291468438850987848186846645301582699688883028643443383816352458211764753244324444462827702129360468409287921696538758712233752237464999053800320195892562034115987235924361783820684328093089514201520810283641635889795063688507241191415608379144398753373110732132296754353395531375096619025755776905901961893802629008164329754325408758601747894226209799130581323517307246059859494922204007932335997925884303453506876313836934886430802443659568952878223166814847410951528686644161790093571903908233402010622729018011765073761129552523702088268944705325180089571238172629174254520411069797895240515200416490252211037563801851744487730454737156989253695828359169160165667994826132849235423344494629814608956744493277342847461784208844412859275521513590287290938395651680295850163941643965329874531676080801669772861687913742100438024961380106710216774920921654392311922076310339441831411337968178334316495283980003605875648066301298753828517018897698359336498294262404616923850283274450764659210498704721059814781277305592877388245233679834411690534932524226087276686171006513909685607446251661613748399076693282001133599441049063701869712768037052943672512104800449788838392733180770499506451477818168083716252826610960666258078902325970176736549684058825141684373696279802790624655136936591886429338225243488667129808876476499461708135784837318532377806519493734204550870525923067241476043769030480250237280669563744555553585550801564418298176160795513559597008953392567672493594923133374908425664623648927216231069660355089278594554838255904973430142216826886392033875012506443933997090042911281751915251471215411063088229292937315878927392710726840075314093137910707852789420676193152440298621398264832939753629850451994302015946494822367109723010502981889287589137334068999235502200898243693347603330516454364132746315381895494281203050308857247230808691327961348835251965635294829236657184680050536127534464489414244348592729469153771143274174420948755587665632868587686557689626880556718597589266816332450125546057940269949997903419968927357525380801427256025201712700310435632793306127700376103025785732759465785249585231204517799455906559065006157206493071421134959455283329144167141547016902551352939666160316458219148699285647110565931372709634763747556061491701741822177660950380504337766546891954721271095050202211954322438854125375233464762794564480192323861194628541100448387468627485932563747829624583826141395352144061547576776088021288089858165815685487601381734665318482043304147182233934858297382815239897489902680547237209682344674195412953897133892967530581325109878172905633535275002395379781109541431986538250852312772703902823390249267644182975466409786302347151554521808712332251226057873960643350871329628671544142759477173781230946976137008010000019506476455233596605319559097409190717312108848835993036681812338025513813492937910752995667807473774754948643811315178565082101935085884323471206313128661904811673512726501151035500537701526665039330080548875784904666619008669818041428920874862187763450221979921092922757040017810792594824722664465976327913300963875064084623811978756259098602194351809591911175004268983045790042805255182263844797679621917907683993742419000119360577691884077170169120131210474830464040759591801855797431415232304643444109380164832932723790047271044597620371918824374780626341150325360015549713880140092235628103707141989434292493086215235847465358087752655853789371891321705118991744021837783115422139946317282564203488856555808372327461764746640955450160660175078373044049424529623263866209434999161091459261910530822430479985396551783967557795292001075872026172528874256164386758519337028528641840475796570666416331363833174431709899530268636272160655917013018220872493205933472671342836692264311949107059152843236069566798677046700422935367781782740370967907022451299102327270421102393025821109218440132143945377999386820907047077037347975088931548527709853743658989236282000341451271177340305921990385441004729376178454549572370545216487711902881509078162491382600104102266160939405273911855484720730630644630590685735195696327548157764930589070936750139044841448845850734512991079431939249698871669031151492232498973026130550616821484783576385825608071073773426236164248691824205804765687505001821493218552419134876035828235034374167933936870726060759251470931598270964811692407997790318003678353727024621522793910814849284954026037772105521752117450845280731144671965011915481288857961217297107668287128131848746902027279843609859959959944636991409407167262987815049185904727308031320147714244738210320686584529342121781558764194247983727642254357706534966849843054206973106438657748174251504142244925154311326218654482791333669189386078256293896882869727132079469788555569871814921234678853007236115277642991258944862886632637345159123500022896287673252709872942940336739096517153470393500811111888830385726128475491070297425599962883639339786129737965852794904605225232273465050238554392940435808169111312280700070598790649744245166138230740005623361192769493992432137820026163248720129188671605775814504845667108836735621439578234648919482806329515801362457012985016431653022151344096072031246474381390362203858766059415361185980904915664588399367463137234499005117277621313517133756116775457550584968618034862004838236136751925743553084244163036960155462779759386148485054908605777430949723447883463652662037751809486334941040147727112028962969635566822733328420536179442241389459316738583991425858063913390575002168006342889295119996736336932691463863481566005219076310925443708483588695480884566518047803331661439240246094216751681089453289892723944619062487605581704967455824529417783877415548360415510645191717787220094721085781832682898993260680671485970541014782241185262929249409880159476236872235700577956264816021165723562044917650074543202319350120913740918774407819512014095276124363975620466955666696207892323873435219073312518412955000090584849578218460077923211647197079624999841662647888171118568517607364118518358547998510631340182012587601586953545284051768516835799227589018889729312443445919473858529172440203148022096496838286981068425526923104918921783456795698695050084523403579507027108367489251067771344384514806482445858795092315367936142498059046959893422840768928512706631581769610247388114180042593250199979821100353669856760550481526839622924157728432312876392352833061309786386253177440795454610807130468655451381972319661466422876831438568436910233782506394359778970334091564127792942355567217173203983313142914657381674562757403908519215781378448687025210205991945615085913104324506447103230570943526739650297460562682021325066205374756773960096040037472484534430940392945147202679638238546471152862648522848462173255900828860769334405879144712951328910655377892922130099994382669049130206695042980339814265576231555508431648892923379764886093349860580871510605220462754998679379677275811392043641705748711698093001703465429069551238198161073203641674597809782342980663283961471790648299021855077345990724775014925164116494195563164914097572567142621380177012359373105869496442571594160491705985178104693824460327631282037187384271098873790519376414357329484591491005763517478734897140197367009271738777921722022727698285755624818350778171130419089312534679382961279345262534735569409333186135669308097185762238290117425693579652916269746991907215537798345246121104932649148360565327513013098813729014924043885173319206878557739748621814407021745789240334816113847331889823528641304586448428080297853594533031912259705600323988140419327874277551375715159414541015104273975991445931656644102068338020131262780842977503524577020945990748087282381924432734752312433386659994390816368325193370371786932170116771752057952931620116626419018510622403758790840187653033893073128863298893610028499090153119278979304468740201296088064815001307278331196659919329412604620302726578099681686241307782572039756230766752091547204027417151110194532755518457073445497800360887241745563288478722824386491562151131667278538240961211686538954041645228901259059551425005286463703101429818111394196162784901041788883047592331013802791101271470149190446986375857477158480289166870771181785500591007912456583916533915805212723962553192548345116374226197512348359451302893152183348455530192031542392770216767651513513971901807362579384627590655617829663365464647725834771777239761095137246467422835271403088023954038568000304855276386083211480400229155166560331054390999437057765641986895440452786030899684500288037726773950231661637927308348767746933081069247385622335233733799520576589089336493636190570955007802367849128070691360736606915767221061675469278708518778215151504066999350281839040386253524941883413316703972479660981756699325791118793917641654240132819243989100656881705299243896762385756808021197662210370210767355880848427903220067253284944803834415037985719099159639238020371303106613542555923879174850143611690984032538777707326888052577819355489259150596805275352603513914358666792554223963877512533226168735287338818415630056528428856437292267955980184358985209560897307774748144208630957544876318614926940901232352191708582881107911791510862992999903301852547071029367266115346726880950092523185937365838692181109321796999820066318354784437474418581920616485896077552430526678693923629764634826918664283840090656312890198818897961036049718800673547478252544343237672870496243112701416203376382965908136609590982327600682438711333327114408571612316800531219855911965522601851615624784860158705342931238148045913447375860147688330863763651954316713550397996789018938788264150446232728415630248472747486806738853351048216185227446394166531922925710325426434202850944108417505017051061397131396287546240155295770268394346935919344129849189129437840530150232051416900724637174999927440181179224093925193135367164193652702470454274207663868604969095857560010516155900818649062294018741798039102656007917006659295446107247074546959185176007648351424950991917611095539872117269583653526380032161165088346643874365619942116487761612391901202384412653430336512307675638329168568867210508807771911270945755778078871337428864660337131760432108821489619811011258005261655018954341439644693282726301538110998678447888775838154881494482356634068683333766423996407183621320888930391027127759270832623931648928706792879282626440174413737854693488348207704669775623721130633663756348075429609175312642865094109528425595000608882111584087749490826822834003472310899818733857123535788752743754578230951229971489552079472361116974036299374343997673787492959383869446114443224952187023894174357246160325880413199005431177071096070394289888859706187405006442427265601061087732836809973002179397257649553026851482963206151115494772797821017725581074800330819780350258700776854973203842165615205586705797005338419095747299404585847238068794641714655175661978017715790545772865372115555909965541184394310420340347629595470006320599361139528514737860956973475944402191397020872134388593435102993383307304409637441965559703179689684063457004592491561982570676246160911094720500343322831697246452549077527154193358723841919470864871794570251018743483810229633388321415450587239011371747964444930672257731855968872061233308676076176464779740713757155061018013571033821811318822955489309098426267757579479617264385619988836924517342133451946176386521184973879316623615804604080623964436688613113333700559003514881501702953385832141903040669778904744427841608759591117048498631812838540486611805445884615509079936383935447496886166024501942473243659743830656333447633291323372796156318546006283192846148184853134391728270450352933308797585621140696506343550177426144729867327017154995187186950356338974466138506107201664578091786682642277748176043191782196635849304755454650018133464912543206816945572094158264656623971903114979013263126277941754167191425740941132314861072146626308408048793865367072682146222041440100102592691521005526812665852867911024587693398988230291636651629723365311460767440014742158533577670091457532448363031953420309652106546133103137686597850783231508518230359036632028909002320350157159770585240362048173300001185952194305164392856143837000755101602569925025094821623698127194256465946669452850836299573282044994728410038248460661492208536554978800960656311139669234060624131037382873719044107664610358310821982313150542326857990292624611052047632127588776935101577393600524080810240351275876842664943023721747775897452821618974735465428259540148762141602705547099842167639857043942225592996365952676267681765915825021499126863376543298628113986507306424006286549224166164412390633388212759336134366745778371058237571005475097120340823436598940576448663434327965515670818300060178360760556284962558212548434270286123318382575078139353335412827019237228255315138041600648094616288589388601947545448387558502321669590685439846352693512983151545913470380023453262453732663423068224799085002406683361049382697644978364801513523380330633585852599899117599481985913395342077845867419353235731532125132548405154601812585574912813750333119742257939655821999728890999145173707775822177045599568019563298770290633861467986847508944579655119732476060864694644745256029091138691415082736957837220507304608410456111833576135763485047224422098208909050675429705488622220309122932799833620990526344340611135228280290415660123426208560331002800255797761135282533855925915222594270045800343278377290925033052792787942653103400434774750618277439635007206916221579024338839737648344835439067236412480441860204812088592497911428962890482346517985322049532413792836014602186390895702522791928950342993745537552310787138946628876203516761637343524295104810641744059630492401723662365300958028532301172420308907808988534350539790142407852479911898474532489575497098439670173722213190372292545324479647698158009947575603437163202381702311731734340221756669146837589369932099104986633349578038400667170807040320200678579034983553924323650187835696577382167580566924336502895903794846967917888434075992968185969361784717231184004582663676170950518518000071538633121043219812863406316238025518765200911491938297947370328521135178981128451659629570463058803967811375014955019412416953350050373166482551885554295375786440671247389546028799039726143822643587996002263735047073938416522335011278633130535718930117996256689759238497901911066661140449120874282070054838481163264989711962431851636923581559661539756139021583537069539779819810066735592808752315838649880734632564739831335734115744651850920974762302159133075468620238220260351409481101079900216253611809136960205707397108459966510960803017779567129193991851075230078753936537526596181507279245739672125133347012661915071060815403605753182583644652464286164736855265391724661333111252820413804922338852505576507414098190267834659346083099088215945591156897153234393771491525276188852205704998969487208834123498414659681150401614000660271449269866738529820800967891649748542526193715640467525330632964751988325207008902352582131799165787511731927772902815094448676002367643767627804865697009964300007586585979720845631462088772672190476499316084479187513708147866834102343319300109995722271464540395121966771699631226440348919011413817807445400790250942449330228895906558808063410838693001888882665190691605388659592992966851277819256481037424274409216653166926647658348486029097278680908274728197099674718663085855660946825083025001780002680224014444328487322759192449477793003118622857163431652362370035413130017583648188151760648666209157740787911606089335234651280805086570873798891933926288992817592804026523623794083124755728731325849289571268148895242766444223154929441307862486500533717464535080759343304865072930400108485128124995508813999826861938855383205224191459377207648752308701058448304781718604257669786691440731326496514532325999465853937195947184135644039383353756789198723551755197075386120862713969478271264841388538324936305271094517175915053222948123280940512107919171872683721313393613929236410064663973703101419913909341236852276615273800228815038728834444270500780508220025575087818357135422732339712834311302603722610426870148530943132053395596761861550336789420819490392835701269214448569585013455389896500673717317393060852014463023155252853566354111337647286648399024020795460063509627657682895218621589173573372186844935629588213076545401068129501168547584585528419944157578883148283534367587335380219989983805299371898245906840435181143342944720428155496975885140376979605782246069437363096958686059832547318814738282822364483059025150813795636770824701273655970984659605242420013725438004671341753362046526590669789971406350858297555379123839788022101363759869428022954027706525055228486103230956810131173875609486917807500144082898906157980685676709290470131210034579352119164646864462610893351552804285387392798908377226839810656097376000368695854795702440774562087305319252553590491290482915168232187707338423784937778688217016947961540679082059828196463475131746432229230625229314728573648159829789676969419791902046347308012731546119373796353786810472341723452671404642329854595335575071406507032348942934031945135484759716713414794646162744416709675802951570124426113546903450741789929316411485054853325064822597288991185554403392040134182860598954233319976016742410073678833553270880665943875635933014351632483609272683041966704341214128299678238791431114195029949818755253775304940713432019250661725389477295404328173800778272679145573769750912392256073077588010700330728988412281923835361827135204559802280701311268766381421765782115671700219825460931373445567055410231505656520576607768322690746730802037765002312054307102256465112328668015192567530873333813024879945214453375341533121438848666551456667559187203402105898453816908199429374331129710408417556376513585928213557492918242081547162293486659459047240711241384563676748225808131746640197632761854058368685429961817659245949347704182136849095234448611574311369555793784552914813189689669890508414206253003039337940118119384683033607200275198105098070664917031265790526337188240049614571199442699019272975710992519539268929025214984693785494507904987725375108120015991186762992484645820448987106877972437408142255002978846218427061000316848371595336712425847209785664710663141387699182284777597227998053726774036495885833700693950015520771258630324305519451953127191456368169376164997610110457541229270899208936112417962714645530078761482360744523334097465100594344177341907109431667846368377699539970910598308405624128773884015251834335107800644470313694912611372852818404878791055990190271973987153924905343788034622436265019790108047492884645711962408128309957814312016655038578770514736780581524247444631075400668604219118122764322348136166438152967555410881171355188107014276032773254032003429416420450194344586643707590732175797066019949101995328184969318649768034795764408740412105349982337180901379518547792038951799899197299638732911720627864723242928869016542193773874702682279400204597428168236384415410153504061185862238932737059128709234046616990757846707680175765791728892444175442615745810466171011896516546697907756110473263960168234182031511905621106794377934249785734032442921529674640753831261327061145109869361726872632834086040850556289257841323999918419466145901221952796258575537029418179160223632538019932900232185856915034491124903184448738751788612271276883806703502604633687166990205728411558806059293208856241586719613517363191130785064001698223328910696467006683587042260082891559234109676555866470927327904982786359122276144617294504074403883346878027857409189640486048854657317581699988599455422479166025264441031068072298294058939650982619536726604438054211795537209261761474780140336405152345164917752141733142799162037177857955612239759442613780553389568424672336234840135550342021014609448604634418853219935533020172400277347097150927631715305798972914209578024971870040467190402726522889662058338644834784208167569490370278223649801548508580380026924687104843590486620802827523175456941483730063114230323203502511584802338333167236450144529666094680303306266861195274874960169641787542588577343597193280807938183419695478473922087228775875199164516665134148567000821437372165451593007480652667420444904966650260605140640623160270425399822860842271439680330415933411148330339986269291977491627885220456377770009730520852498927518910097308086046624391230408400633352697701355637019557073955875125958135078698882972917295221557910736411535580218564478145356974305447851201095068154875106825346543581711319115109439521355818007065252003259505250028937645365525750099427492873069906677548352318033944968255036807478542027132531176523154030265457261923734270666774014874141400793618149981325960275527355045001243424200057057619670464788369818938160213540850981696158098656316228129424232728635835943682579187682621714102520754584446290050742607227277992715549410822821666726345926389653178233091139178335710191054319596805736516691663186346901716777968734900037187063495474413316053580074958799608324783602021772157314353308549217016001484261804218779146015406986684010937320221850090166033529012149680297678691078559133729357223094575859004121112859284496026379202708048373441781029939724475476609153280329958029780034782814856891245470975486427919461151275452256158891104638079587286290720786132711096997570145301318872523108238821756391725206853591680982044944109054725931588114204091302414698811512366616931283818601265365371739555575827672872880184027354587822783746209676312058543795346089169553392748157114919816528045131436041120180956979318252427457005007881983420023114208425608716589695895465264713925673821777007677309920489034993339266557239025154106488377721566699877396499132019085788735941527259101075534241108738621181964846845406573020383687921614293928773896530091996206611853267771321591525729128821995990105651410878226838819470856161871041195476890454131392017942146734111840712258688175261828896039335877596754381683033107329658613037772146996123273391594857077983763082608257763366499021664497820184221143270238474249863975071645424671683569178247909565060144486739114077934964280464628699803945090788690578290611179865086199959253976748135283810480829046655425681578733775056488499871702652976802436702062355535514289898061652093861408026719121474793117851152611092572930129799409873868126727533455463156558794315840042971093136782951781888295866166602613857659613549014950377699569882611111017888089941905995711730074086251906441696706295665479733653175717117272773397032006291344278999812513850165031938378426603909554092736727991398794754326180191040611337530679697543104535396815842925994111677976499776321566129013388811785393216571952930654225421760420866663602397042251391201680777282264680678459662688303381059460506026125238643447073595656389042028720427666381688791613349835164086773401820215059749623919644392895099534934905728107866578953074096862394917063897351126411062247981851973611147880906978041210237184112521886692797388467910140043589899914650308481847644961827811193239845744656293796331300412106164160945458344605632443432221688152911329689263186385475274108879803131304969597492561266197257094550165548767552753416961675278106022564111689113193487027144042431148604718554126847312885700613911319053838132379331143644099206215492610707917234756492109164736650759337434517525175758994915405020602472945373976902773367199534458221065248255197594361521665176600135705997599647608120828570956485352206494150723648997712249887529628595633546489173431695355853151166772462922330431979067780210199745071153257432425959429838130678792956437449640154752009936983902939694162186891994041750075778159558333093663863886532152037416275142301628427001617772227720978067328895982190819639548141264928710969151819654456536123058386445751848489677886814910955260779966083327829997636387392828828572187410437673702031961553683298359526352025897758119687398269752499477468130721996466290332979965871132864609788231600616135593911470963679703950184297355460576509529269177377824714858478946965404306236489907596918652265977547903045681626194317926779553818191140751010032130249257975161351110748780906831235029958058674847146431594007150495023428515423043653270495192899955067951630629295067499448435753837294993535231322405908903027979058217976457841417836674364922263923544659964984057422013099358304815619973656050622745817959454229297799291255000804212789141903218732935877044952381783610731150428764827331509585670844760040306595526192727831217999985500466007754957436060065673171843466302681198802140063413014084541799311765255562900095244203769258840170539820455356276758095886494180621013074194794944083124711788833351093542874268285393810247617216977802723213735061954558084419229231065267098279873227224800974987066591700511035927861967796236382217636356264332897757580203595497723562954963543997808090051921456916612085242607677852936043084979565703954954508244015398487115998028957742172315193837860969967669451292853194972933792881511465163697039825203018195953086994249962915506654874986640849200071949203283621111042042594265317708819038860817624753517352571555986476170892473610661036074884389349202251827358955438385701502411686811487272259356249689796576943185686319886789763098673578970212213739634196634838636424882846470666636733108987911811028262082760528773016842473650403030941795577629824727128767392421836642496433194060395242090802492823212119571494742295841906207434512841086193070449323144127435166673064606603902146246262757695863077714837821258436942925433987905106226211075881509616863076843911258476516991856145241752678265967156538225916169417660943726671348056082720251067885751073068021119032231710768440392153835887657260826352311088915319323051362207428145193024548494619319836067849811076914936221602951196137807478438468659638139944302322293087311740301434775991309382530001639284018488646517962750818388201924311251901892493717786675223278646263109564141990779444670715047126057521799670116551402930082522360556559447142264495230921155581376762364841398003235882495277786361360478024110082829047565250461661325241506302740925506533046084092398839240616218529768475942718936137011323194046693391099110613941944348165555591378501096428729356135588981985366822182415076303120696755825977359647318360802585230019814721718917958782836284603984748747140998962573283285099673044134659862711765427012657807920544792686582102833297243872281494256949221126554592435362609544778416863272019506584922835543223674889280129481925633682053458710866484825397554478899708329360117717318340299769417632371038264405124131122153609671068294929755771517734734768539897915726097484078488817029915354630956281669789228592755308741146375855418675439121872628570608890867752518462783133306241643825805323711993353771971421454432904587753509374503628883368758636333664848746817067687308923726929561587223159707741963630033734588046457200092843499852030869954652300444337818818410812848486550675112881836541587683038289070515975534797050615391968818694867006114946659269088863447575746438214230861379719495796218586949730396878410154382057335075436265194306347207020803902394513230561857684853668305034014438688557830157641096285026253589200360867162231699803520121953264975834585441445884949362949778732474789608181275912143661670329684311027004261283603738617808751262683275864650952705499722486507856071242833536454336612372390046450189074081591752823037159123578278741759497531025798777747784408670832813639389813909715689435915851203083448524646434263960592063295267988841713552352575259439687456797385983497841022236930385629219450058965533380461378986043212786696493295515731442021953260737997318471347117706424676409546207809892713966518140700846983745031122878927704631336437815982178842791488884221731139337709314655056807901947496566886421183620143121158964798078831290707938552446693124846949836914864401674412650938349156582521525712810484208565080192642791442397529681741618339818298563459635795593761849470313187432584670930058226113869708509305436584817177743559427021656458805003254514128301956143273518046598679758501259165059981892976209276342666495072828797497374308311614438222579535336531460625819478305815670340512011338054416795754758231821658153099085060982171021994142444481099537174946040962419372074559088200801702795196498953243246275880562143225775189681469386395771262533285779036355538906831490930642982671829016408872394533939167051403279618215343984122459716347773395565594833712779756779505119195020152289942810739444408420081906365473446260330813073474312476925908480202986242940811071582336285905691319681319265277867311462388402996123418717840701480307419174506844630485184556227237910192902535308871393927431229750570457711319896929128542802389505319123294517515801757466234970164638323405550741945077322836339046994564785705372132099872708590726727102584037031494275998188529441077503770812704870691113428371950014698818091147313766534214557977077324958383550239734199948379313843411656176525430315725311404018239189839578080239714068788799688282187808964043545255831654228863376461316807342667931030540783466357460596264011278370676748681475138319753421037800751955421076105545956020804292267420060182614362095362429172785052618482553052201801528206283686096742738066820398760706082691112270357810247465605279627045894859157985442520412947848200788982388999857363260810365664304229261019576342821337791949205225442589371230905149433161208415425009776303621419530973813675298034091301007396483148372349298782983554350570629353241451906527788436899024283801545738501382270459946923369331427853917146531432351811021600050141835214381203348529837826468103621780636592685170784319617069566476375579601468785636352493874984040945937624584931230341031545362026148251037807392170847388557318511969164920507472695236675287482775841692490565897387381180565316402309622724659446573232669822527904732721202480028840313783869194760432130591704486354208318787565738156958277545662900632607260195188774141038763439507488614357056498664569515983044050852177405822779047246713773453038671530137776383438626013381214973253713201914548120780295986661145154702309414837153475893238811615766195540043360160884667222840938580842400778756285113733358284550313885132210288633590471116010084019419720318615014523132729502609821873871041668640833787447059053332796292811541239748572612459435449315745278798240478184654916105831329733240198971862451051498562869418464363805897074217691416207469050525403582006664346709456956127716907157802053476440684701077092898669643067700855091604342823376629514855532313087757855739321885240417151345754391011349858470251336224226907523625101708641493849917983745590976395217368902030934541465847551232411092889237149305686974180713836488696429539628854115101674378971847915715532867675669974467437563536697518855260563025681481584324665853323065703277503212228582211660597409602275453028991641529191206889198118203533000330809565334501036938534659001758688015031397951117770226509695909847905856597713217332212823334354825624273134721712784128883083603699752231972919737580872694331344334136852950919234461178184568725354744519908404234164856002319775511797085214389375778465954147668088056846534883547337227502746448199699350099229460189473995358700847300880286967733411573793134407957250132329167130341324928441958665695202850384867686003540870455523097097288258476678527432356477681744133290049442395669118083685765735285983195554672758531742725239974631733378057269705046557204590421569168236025898418266431666857963419264015926507025811120297183761611774792445883976669977992216198703918588101313474169539017099886617131164456929816196539394105059538747795042272263993754688334785267270356745369782974992712473439500089222842532912872933028402690055044348731801675809973704498483306006262442656348173703340475505507431406833334831413853279068212721186694636740411615342201612880203562223466196090575920335134656814377672641596042714596751243578780523263028055357689160524150158912753122698650403727391666766249756011689986221319568352272363100774527351792524440036908462044592113741917039584503602902649006412037069698366525736429582026310415129261755891073972295286721867329194768217549693322655715811598440120941080102988413952400247727382067522037593534355757521456085037052579779870453663527926907134170350909615362400618789063149887263896563363758335853614128176891642774797520948592085501066432201188000626083472466392173798553545516727530078474812924805329652644612427378091731952922108567474956244231551695893355585554151704402430048609612202586603060765521763921077773882934477081017200028268549471645024268985643495709771220790173114699303314766927943442588905852496015972569490342667652401403306994911849991806586346330891704471231595142133190117035373852112235340478077306194413073254635034357546045424401440637125045571462561709518279174344980750316760762044185472529414201401057679214973429135169468003487018564454589752896631895178802439059818380680245781689487751115323701386001380566440171212804779600168440873488906119151109612924673608687962415157735639082698674088632959125963054904643933126736642075164862525464866646533671298478290865462073514170229114104208300407738202812460494732537529491125901187731708592580315963244373911952113389179210814624942945521020625837453301567061255033802720643695865198990023043130244623921633556747461086519053449833553331308566407845759352979845906894133334153448628121171757618677480174665298056315054984958827639473103701037134081466901155483436895314820503567083076444096605240315249749783790171216119643479601404653705967970991041496761514445344002414311564682864631718179182254218490727156020176620541365991904841319312124468362012625072616981250356231636841510904009980710059287607713694286426455486077206920466267078443607485170113388083208134635703761037709402271232622788596447455913140439388980827714989685810223217411332284425475124617508945978059444130208954747981071204405561302287518721402908336959124248211054116182579361001987688820264285235877481557236744839398130626649555953922722630029444427013075642822141854204085942850564444231773463617574474914974191850085531814604611193037405658463020593178133573478538819059165488804472599109355681297278258875150653322530555309221469385319777749978403973546045659787744180524392209906676826456374291078866088844094548537773888829288202350161435802800298082100154286869255259972699448456715367531818261359673956392286113825648715035841701425355642092211904156582477211804661441644346115340590998200426557335562955439555582428234371758405554189678553221863416359234869248834774904922850996672784378054424588447246334182874448266889082570041485096935373717256717669961012618900350207077498075453773939915410736559462160006253324226732787997038102987402568715969392443747844324162184691391344434950049431702089989567789811902390816825466240029354137402848181770333460792252098477812594318147899516270354257550770036643534419504933808274764001706417296717553420031927449356609589916488886066083494653474979451178484257955729629963799492183016489460253376584462793208646532202724066955481604529955650421560782225056897720293090984735123608537640938358960765466506411759980209525480533489617683072118545208262763983575380949013747822181559568572374634796455030022183592418301819698985685253790451381402942225557635094104777808843561877295007591885526817994705786153605897728057496524862518273185967597400931613185489047772851557860414484691647218581982845979193785011423481047541921734689995338105946871648161846611648306794859767057234712631838881680492947518531169068847871721494630799061990224716657472378659262315481407373705525658070415058626624298710714660595082921346512060373769835945203001546382058767396434158448149380420487193101029562631744854664366443265279388489007578671922059295801978593217084936078354109683769016417865249112106536204631010148388680898322336734006166616425390607381640197999897241926415695300245326592412145318039129930904203336278259062694100292117721859031209066142503792309682140645313395866542231083749287223484051353278757428290256903857506919178583217966839288488391665398762681120566428382020230345168287201449432606031738888051759036520878856236495967838835179795544603620654690296760314526016107726730718939766336812521828424813186900651478132714038633932734114116164854384630904091950693957635713811457583994054344582240006810400468399683163428506543641028019069972357385054537420533448731678960492344731854878149067790687716159954334099118581011673290419251708488658311406128227264676934584519236811084545197927263699765643431965002812595875559603328621264692290751034743206265606420933951912832134352698782269818060799493529158603948461704409135463119239821626544894644758283770212230994731225422587757606028104836044770418043384975078634612782633917067545449682122209281056596947364109244403420473764231639068210017717341276038476349142674006518702450120823957754906549061941274766367869074668524579419038643512714758525672715293413913792072358759212129748699560119577168657867564717825666577080771571771479255814297227632719912518524247407629702454771642368914335984615383070083819450327752567946647076353911083520119371111750236682924051778729409026025035163149290977992815811676496537394256539385172374235818950122724568837673215886056947065034834114282961799965813872925077334810251254078069753931123887590948074793372674803153744490875488641365137956792460068384188789931328944557340112033870792111912022320610340494297340424844915740573999185113213486970893307072371381585002073526508119094724304696190829693738647755236064809221968831677620593439007329110583133302887235123545342089417409336357295114184517560218229944219957747512514387442616926307695201437893938798477868449056268388061542217794197206576211108048442541176085953996136231415048120177001690766752439456480624043927735047956297222618527250130751128540788081752414016907611800990064674856506466106034125659321630992743370406616831898917130749469831292359589247459039953984038619919837428675672797471910842302053222745424973326987056832905013504656745537241527311072619705046442706360383495416271347244084230716671578038626163459395863638171870453166217303427400870084534040555601847710236078974703187172173897634024653937308664849229146571141992939235376948676425248565769412085102768354877867645925811215834442679447353378809816223594636959620894874259836081786719780606207017510465463477657363398785938759998844317317879979304968523463288763134510627784733257480735975114919307342294039477709495923834537876863016954376146776349271395056704651621479016165470486163468960135768395486508961186923338102356936746525887011902043088528230383141444889787959205773172191505147157587218723464897290522151137311306832389642139701787390735031595896284098736740908759619661580809070452963121263351613191515168654533370667733352438621136133434814589138075934847097909916415819831285449879253785758981725635918005832681812776732976916975199189854565190251309628168791682430015634347672801885214569615292919331886585473087363924251096739170515007527542508140944186757671398924337498105801223019991503062144532904731032828888011155135939408802137787995457494641787362617852452132590091650082184406429385663132900152018293061042113314188382510259956929975821362626620428124029582603301286757496246999063283339744392644316810870074467326660559035510917180800806314956868482968339102018515551120111559877665043301443551855746987929824973819466240799434597417312453302108616618920132960621049585346085960367451308015507810383860796220977773258916696489072944948245956645525873982038260035264085768426473049901898984130849922286200200242767346826360745812660059983559079375229752683946940590581381991088265954467493162916673238111292299357812945177104992570722240984298416342263946412140495748359179204028864456992012131993358231794456780035185812421610570356283150063984529668312046120170259616956918779859835165307146019451778594817941756599770676380580349218091677091408673279934968045770034532365556311510539742170996138292065144392674733542720410455817635807553851375788619669105692861287477614146839766686474173060294198175688166483527935784944554946170503984651682825441940234071156430792229529400646798026247337817670059455116149334380654301075762235942649809752583552741843051577319590452187445416163558877463923061286372666080121248596494574266341243784398682707366930996665495570260022832395152104570956772209170603834889618075075572929541555814686479268278788919311367567156960166115645934108326964457779069637352114976937138792343320046386728506771552269422804248545601476952784831234864957505283300519631801508221915559690172699834302438539373117995607588144191233336464532981601904871328046451341809503603339537265412775042796761999385756826811577939674187692513844024424711951819152897758770497348262568758073383029564347549362930542181362523544263418172274112775681537264995842412243251046732773960169191141685645274270762727913385350865675456258579004943351165637825946792338033151473149762482140412302722602679354276757968949804008440860588106072023056443793635278454771999798720133989346795013991385561738996536816314236878788789759095572918304123456735605496291098758858299231745244672457234568973723546490493608651979159225472990566407048656771861365095220856180886402945222477584711004769757812034417869069018750227112918692131285404226690505611847239566218722051843801854495358497867130203403435116379047770667898916885828883964168213325403866751523404651468187128502557883444040174886268890788891894319026785733996087245912506821262269055713917154994749392393071281037922315144938087174334905511190822413599808005791982666693945588872051594484078673134755240294632045090510997149534917538207848062377261068017138392810550277614207081311168028090325480829212950584005277880642617103123712670125696154180698009441337815969405672589603619479340095633408639905501713444881138077648020012034672298742541315901835552194193464929604163969316246602242170983724890326211252599560353342510115236634382323751493732903563738885371639413850048401836038146506589291210386022597200192693036881654683246373963323404237014738995824685095861218357642486883711058103511430537065396017400604054586308881517138870618477214065315201664925317995134725415172878481280332562600247746929938710016172423585548899807761457011981805366693863995829027448903266831834145637342868361502347867284999358535602824822121437483760472255269625121176962549825507498680793471006950380757685885878198565740164600535042112063915695013912313775893001693295643696317434003602554364885004239756757163572723814677183471282224739094705804490274613278966598692610655441863375789649865969665438647093971093175700030598437797824416194111835212880859039949368707946208054164202815545030900976262055795006464315038077672827226322591097369062865914114452758283435046699117516386003228402668546863104742162986586922867774320539131076321761308552972353711885861901857742314606672593645012349427053877360315111784203501010658001971805722260831965308173739571540553128189194339951348004377960745545365718246505964878471845431846865465150880828686764301920924851959062218559535673988029394064082040745078336815995704557515397166066986274019152139022762343031435700230324152596018316032044400680926411650168507775122163430995274714894799255355543080202947120289073111287657382980588831292306202174384405329084384152471984393565740138425303078414126857259448956704258416919601545106361002035089142394272152486468488169883697659722414666812260308024447312754677506946458133960844835044170409590540833538657267659056944801938720828960778783899317556615047949940009612878474010090256513412399427966065761340028867785614510506872252979558412946374011451844189865426342865546994811458952829938689552146964087039410004380962251803963426963312387345389776724957345883154044730731573727800088905769028637560409438801537022829126082276747321278322006396043931148850197145598900638132694617342179246931862876216568991289312389305474655687266617736750286560375480299420481341094448436875964913083326255474260653721981716268236089477446979106244291636748902078331835050704236993277067250129516183026449350718946727499861120595377530598553252293267332857574358543381951953619163154352934910303487319972348203245676720312904136778066293102272136569471912943659199936801247167949456690601594657112325049305363587573797729537350551806739711790705466584403660876038257601174302245960017092388829796910701539554416771473738066734450542117485991451657289130982198162867055924110864684170913284132565253940991587805527169177541384479226401283460778737785360068115837964180919022662057608129244023039736442839248226679826362570437826976816656702469527224386131851863176477832572244592652890462700973005140883096472719043949586163950367396756355074242371904565764176686357050860806039582548773484719401469959062548981418975960516560104321194686808696385709863819581667254408666536329976328508126076022594362637162371914514731521845670146114432971096874670962524681690717015757983431407477530412818551784853195945302533998495064386846310774646457428538286406201836801922567816979444222726788591916705794782619731406440112783925470116968854576973780374509968241736369969414666171477740192541880952327058474970344273275321955807352144634837254894063283313428694235422415802473885245380771397937852810255949691540517833125949378706977013013952028156999969114627563651361252887936139253010300690911984551127112954595520800579628029984970216164744908747565574406017574705974054344255248030243090311875387269072742294436279292045823941254055988648980717801854968066099267681259083760215647961960970438872726299726644920375914233986965645950496485428921568748055552366160180926207089410515503903603899301655357932311681180310387475707292097686385585451279992195743848001163310715331813337378039834204330998882943521130365738201499900567812126731512825280614169722120713137244969048699984114839931348491790064296737784121480429150583285671438170591070199546953552212549431488603576293423863597455631928563516798786326636102930216230016580203649084669209890330890012527381069509573529417990694413926089758104650052236783546999220029125039263439048048322452427353162816324634010018071192958044036443493696616453098618286450328784016745357664991144341127929015898969347985307676249840167886318920662047540129096323069620834859799141313835466976607462024819878474549637129168941421359373376943008894199393679772633211368549579359671463274560938579684303315644605842182541683305919708036239326705734564250515032886134589900944077271172584750126436875328562237411439611252665208779014488687694842921196984248029970170278883560826711610215930647972843050847591146776986099015571326368257311676513141566053073437258938127201726954425457938830201280142420274923817840921790004835414743166461293954511853642618002014606718642545787057556126395523252086458809007368367909502705559326177644496597557106896767960219193745462028281526358762092961549140813463689092088823328675820441678650125043829191227181278374757065774557992209301824368790775105085317099546811619099086738821856803659116793846645095585928313868903585041634931040454933020818930427877553772316899491509463288934028641323550714763825368815758690165231862930283946989856154711820110830697892729827388032908103957523840313444089291222522756565204982408843629374223297421557829397639942383343977421252379287361894410573600162935263054927778337571599069376061249734935245855015145090338960362840267616983268052416534693470136764715635491713371877254325738926002082247052502512309101924228963843426819458832936513921617865288926685545013100666982594152744109541395734061398482995936769122122619353678191138673943928441582296127913674207693355485023900744011866232261150606585906326526161639848276872876333089715096347790858480614473548871236028170595044230837277820826080650848586246282867355916380189500106596045710284086267580021183099538295814346907580113313249479244395068003631019324086592263818080642718468298626452852712954801898058117190813050199948950458058469203194419110934907879428178095664140959137020770038251753632230000146140049052503107435625252971203534727853140623949891503259679855865143292241357659688266593606892197336947929543900285525278439592259968917534186002963611905284816737073777941487806192759085820323718712389101203888429002896165252501816484313916932566794196462311154054170020306363233827202717380418111383562267004596656638054067835287958019702942172193437473225517005048241917156001045309801069297786580777853892566504650310076483688587672234454312686336108013028960268957723987603504488028242129672011187022223870518376193695803939785479720836334278311799075902672507770900564680335422744389372585744938029958774624816217831080340244933329811898423466294672395257039633658622869511203957014105593198134278733971458641940930713025797469159020652350335236658654244923040965603508636997146326275677269940455843268116572851990941625866958274345624984789791487316308360992378917039188791474345232410418304954646956257967665609917870545815513555348569781521029431706389018705662356835820344275139429793840282176477657288491409754091510288935566921425979213588748833828007935369134206212792051873909911227454893351361184532835504009478644451571801539656791677409527185906507858124818632419502479533984051790722827018628211550156353349586289045033397400972298086381715224803844346175156735108164070280831912723116954622237515289264737605196182418793120442354501685673987418863989745296636001932978749966092186262949441430168387457637908574873004426116801449519748803776661865487985197927404535188084545055659619046132088614998245691587834845363448386435823173637842094541959969303988202007770631041249702200295857405590444689908463276810846932964858808779932662492901373513769802914522586754396858723660886985168573553384733890875507212747891839124579341180110523773061572695538736382607452242071965033105659528055729692984079123498099217767542134677324200206226356958890011934065786776505942823467837749474230961168915589982898255691983431800199130013651946188421948704734132168538299852670031720445419904051744738563843321368668960604540066230702762445489633230195611093800712448732061319841990218628081770759296093025833255491062244366441419825082510284092999734586485370039921083559048449285248269416757894492101190105773070965061950186854769643313362192551099156580572446080167718022251284538354960471470722095053978921162875346706254073309001077072204897001575102997585733990900173176372222385767884474465251641409493885439469283061768864263648037724311770235904206041295615373626382310018947283653701623462613818624269495625937342836094676350505749365413648579689255288606147514350293464981035856818654602734719270384878257173732981976242051084048873122443504110526354912252702390538486042371953245661125294925506902768459636458684808054900215861692206688347115454344815780568409966125401375143567537527150651603828237103853462982114434992231150080862502435602470716097943430031048731490200683735959193014074015110140731951881427131783523425840907003573718130132565156128096073813713750652080904212905712642418001001033767311529491914577381305082446924108696807440397238702440003763140831793637193051372221894125133408061373697983442052840613992652230856905361703740046704024248928473867567912810255531632059539153317169574317568898966897788120943271823085391794832882840327343064450183852094756954560096027394447115724661200186495690596583296798333530920540288542777073921687955514465962370444871545817025131352270631470295611697286135794265451404161404386255464579519024371815082914331869157104393853734513854683960297193057360494981850760293240679673588775086814200108912362788591313548575511519048071006172362681664156971376322050571062329703120895661937137088848409613044537897867887848569095415711969226660905607182518218897404434059421297028780921418455419779316464843212572449915450180508477279642289972642761583532708103544041033813070930848552099515076870540619706417371691093499555172116715514773073918036188913649490033153284700763503097738732206110293667501125941531411016903979367291093215490873208892576778143420529736703064605366292120291963244187977310557583781124883666045162562477179708940815602619281848636854471578851757930983260756866207312879550952749027757093186654745925704439974683993811459460240761312360861053199092035126185032670062070377411896068550818746518397255640308652038846492850017930158927008607031925292973115561784553391351613840142764105892647455531471243956669988228740196837424548614541171345993396368581078407710719653279727670909501462313241319301790941289246802234761571178647063194496650957273217637224454982216196424837003657066846075351352863393431054291393883934491503444416483228335113292513047492932606220291911662020049785442504487039106856000420669785617453490076470586611150668791507036700291562908196343453884526234038495750816041160598575488603399065743670300662669805583879237031777934592252361023828992954556916655638442927510128178306607160075909585589918771576389111879869922361692291559480921896729338755215034899326747583985447561821614772321046213366922565120240627034258759409678340952367665114375787203653109328895993566861485724890559173188701454077711832721594680733304329968589018792816302984080101673086782654940601645200354998202177341998123320300271009216365476425680457934734494846343034688553680228484110870040132766110085798370760919293491667483200707584207703042264889043947531659025553323135165795576115185576799616641840456307130312676926641954117288687653508028615380676580171738743901684561079416107575114838576133764129050002110959208073433797323487029824929745041278632373329805930188718708103881466908093662528069988815015233344662173481798496526398510137196132724747086493410359173850693545270810900349217097163690919439381286035995720868313164063907103993991891253975119995520222397829945179079287667254902186628531226981374078894931505537421061874966315843709974752101856837672595723218494570819257132423240012662179255779726681801081750066231421011183607418642830253692977155909665446862345598679545678029416148432313863696674225197968227028409580103323262350218207151655033890941492689281738949178870691232769019419832164578237545957657934245945849874877206654421692986652478734223952559030361056458553637226493756969850704689108519449963222105493116232820164302042206003934452771925680005628639921942885246685974879948299913511741132545879525362880263108486126309263213693630278763982244626358947436965416093517958719256780248811741157330743224615725208841979655845590421488529534961357030831177921065107807559055600477866607779938978110280319286911486945841233875760488265278554697645987486975736575418442606681121448770283223546408036719473646757001321503249076735626614279472111470966768117536487874071013007504430714884828848721083800733567975648056832600998992829201448559335874089293968368052375309302307486232712078081644459003212365502015168451532496657473186600391653524988976708333351320031470214268769772944028710786287417904541190906050913148566196268075253217333143076785170058311907095456849435308018072748912587033721468247240914487797466036883853855207434058258361580333606104854986751016592021445406447934478570174718228594236156876238428790176102314180481286965761814420953438445287865433949786802924722097962465109879968386779533728630577486842262773013189605722663191709366379051776810370775929622703730161972523153317265054812762899119759086169625583503666726475168724236049089744004437879782485993130119111157897300625622420568987239511282578270462297879370221425702823441365895699877044697828910903938143139195904560763908527505689945055316497544677666707796767730675891714122719618779801856877574429127034724702184356336580527808573617415752917702463137439118205021932971528986775578378154772722339680099040716267700345832456466681233256478617687175146909923477334011096903552083309540888465767864068368498367283358339836956038254748787812357335744140390105276305278045304734312037818809284200249331421376070369175868375406311417987381507379560345295807724529296770745692586230860909066822202868222166433470039666908259896583363300378925676576830876392541019433940842254043985293142926626039542955063307548914613107227294809047002702499857831767917263211603591166695981872586010040745820686890581383230872530042700938009795157131461173927511235226984271555719224601235856711638474111015635005484174223893841606613737414234353818449848395563297693045064699016064836417872125914464027102668087450076234756674119862042841069508377068955742055836677570657558967279875887569431814974959278295632905634806520393050596728993705918240962673340233352925080861171132736689666350315823367739370015710232300461954106238349867681674348584404285186168398102903084941646841895599623752067158914161457609836137996867516339693577885593963168075795558369491408564736111873226817976787520878861989948240068325537415141826603354839385136541207787752239624319723598268859307114801281461330016506301532269493912028126484786165111712939314368505297895167210818932049863385837904200433553150110541383706566716695784182970266410629078161474969714506379656248934096140271779586458704828395420763663533760429495157350972957525257651176869179655360670355150591934801237016285280461500463503959199027696957852491660832579799596614315995895150343513957747891627846130965736929320992906447908590947539466075599450013777743427945973258323807207414794626553731310491934127032450961887103139974996637778428878992349525731599786755960055387060795692180522772994703177743970292875359020212184098594295956667313515217479010030119184174792635253426314081211214878740526216583205302106604833398473747648928572798992391751555159344026710566597315407565352570886791039205050048268077335144019791036036737657068331395576668993423064086054427622316971727152258283718431114224465429839869604500896915005061861145438962717323107272873292244100839805714244881804748788375931763220476660901645995928784462828901716894646357035654853454896950475515159114574063653698389013784814067078181163488760407941818430557915023607830992615219398965179075718202665173096904430010020357822760772193732221599428119725325609098981114392668404791771269508455170600361831740461653034442245115670705087937549738872787204851743130189609132666288298367872278914669866534341215787494957591168508601961069257649552274622830417704237809418489559242467547211433101583284143412935040665454026360908492675708619830637176479436660790579024423518761561971091725216067735183618402877755171164659681942368987757645373884948578006549603225272997466187311339287458513670012211040127257254914715398471668090206717719754808244881738216072373757298198761336192050197306071374468885792986373227805606244027748058213037070520726352786769141087793226697973680258782560976881195998067390838578155661456837699697217798939856308726936410662591451197745516853453887012420049907393545607955365643992557802846932863554807406320544433945314957820795643906688937676056532443242151888171666049506718134873625572574007537642758281254012366233720825012460272864951636675113766800192219681403059087529013014502986371668987563662177972083846740408412236127178258380707905623078760316371787527475789600144651558122992539712605940753046265861513471290359365784925579450636857243765812045530357885890431990947217716969451773918485270630740556106759337323220096497716985415232140688363262774750432380831736285245846820277791598228358126425980744744086300024381420766548079565474660947021266166226728718692435049935542263951847955872240766926563382035937617498315092894016911085689666683635764733102444409910511149348980199713475524306907280153086835197072176543145853398241647427288960678882981676708698381916329220524530965339129557160641833127973220240221022034653549041097947976672403559456334673944685576631399638780599509103820721117763718687679609068144632136457176442292888066517692265189149809846827394658330445280391379387019328721502549208333932817422704762302486727354558407133257350353560861539547025935183509426301300292238644112580697110415179917636448201735166545636967195849143041192068512308651283241666906128503345310370601217675595373843432796376166915660941092603030876703265041347931241140060885653321954658102887813654724166559851113402460425834426354121007941878310687601623618304550049846565454190937896174539133696753386257544249278303743159341775820934516252805922116848603513268685148798403737936736912509992210539505465422241132734923401241708407862426538476590184054994685538931006608861175392075113990607953355118129888430653477690934409902753128842343719614145739990189123463283875004548539915511674069792788400833133456796030443612852648154538866176322543568592350085688758847854308458155234782970944753308168346339582191469114999715688053712036685226082725374529881610169582881946285365801711793147709371585236314913771951360566164368869574133145995628744215827127274562565592480588574789999835882883291730802880783613740482382615027830297839220032216178662949435413188904040721215037674423267089797250506005348625241702965809184132269454248243868563821600232020153723292819689312525470021821906235904245052053837855602975203449205627730771446333789481424836048416689274282748969496056996567486853640832019912796484428265210738878100652240365077055735381530460048416514424594356178908308677749247669708602734743165919043236895669879035189100706003873298379873955408592325165907935610776616074794721042346120132442583506737555564166204462588191180123712611619714249951918624347330677609137395993071078741554389162257699976099927589303621092735840645563873208547361378943193336147325603381650473667013953721851082617198705591703011076491547623539331077439461474380991284763612666725423568121317033842749386005469025906086182469215107767952897675967971718113742854401139425959052310516558672879939644853527087317825825856578872095962113384183230067606533447886853975150865351306734154162515094778735170238642969843471463349077882961277672021651370447117245953896708845764625098578129263544710348745047437067867864406600706081052151772698078937225984638246143907108619561526707133873394171296889645953198079236467427288588409107062394494743691500102478931442674820446203514191383672111929727784027183175125442194695476861317730937366445706219429801835993906330531871071835226925569900354706906031064463749279234490720705705152518293132522909279765794259237985055032502941744985948137313314154889455353004312722008495134808455517432404365308879103569029519997677418048421390957383939857509476966467979206104845688918893944871189800775849086720474735916120750123036287889586020366243696113900194938650342541638959586275853782091857365130747170089077020785451238374103818158888526205702897967123882975639203629121407331305995135534175629082618669976272437965775980719185038433739110577985741713463451384759021743560029231231512576394633638885496757649815033230853517296147755049398710328801859031127007163567280850963386962389648514838436840953380105056414362955649548822432277661195798031312806421556512015425902681787323318794527857408213557325869784966860576682076194614667960751200410874197753819941581033710249113913489268019317717349521150642796834591634366532745602199890717947477925557664309330383853822108191636455159670207928613569790876882407827155212362254743580675812975006455662218064798196542487443046620581063511793763063212055663795521427194962638432086652739165612953175485766541348396005473412271560069568810247456413404515608938902729794347564507796575070859212929807007657408380854331089507278350644750630628336721128281871910293043167858923819728621214326934143792631945716259546524798260176186479917873560692684305641855909662539771842722458655878291939667457812190642726704592347066207710478136346692179865257824679657166560384813055920854839910516972233598551611004788322139424405268321685961206776611978707827014715555862082559577023524959928726020073764619251060366187591986726685800150739924702939521124582244310728773046153845210344777003839479179544709937021264653736293663320293966156543266065736336185783101856368252867198244552799069589611787670880241920845447969197765421184204612663154983315042741868785844785992617935479983758503063572299961272064073134928542661267632473933912903454824523381184221529238954693179307971398118363883199005389742345704323572338201084879238391956783695196955094320369930957828232814935384091975728229836628098880550007668657397465494035091458959652692446795985683847435406775306756918985383274752678554869129617123947861945917963112991991407075884889246117548154967918253398091177892352561407160127742399473675980836030735483981819933171067364380917317293589725861811605901486168890899411445528708719821268008610508413622779041910383297070418249214002509546143244341194964459594919792590060970424358619026677913913688146440063739887222996363463314209782137463394522644384054242731851715278428340129984864781203028969949569587528961783242797478627312344679526275692066649481752291559431068660839385575617942480301828466161900864628458255024204985689127913410410359473945930019193862054534016009055436772937831209635096416232989657828267223666459146031658900684992591995603028064256565736955876579702250328466875190642947446315493554745573454052949214844102723998670452702780318533854239237083265509637155565997750053919303462268688421496888799725551514579944134676704692891676549142512654363485736026424543990141662461080018844290281686645226426648095325248234914202826320929905730242950271961669157445398814159629111605896575804865106206650526718600241654285448638733636144347951095089030882479669460450248124522422773423674568187004633700237392056868051945484635612605076508414873305776643721444746094580349957317317420041151084391512991036449410632500566852138726770221871307012572333431725675411298494335504377932157653041827540802038795047252922035147020892715858067979892875100854182051172637968894505644818522824189067371483248039743995446679146464265699203680255631951005962593668909450248216808717041287504468086765428443776458769735176876508963709238084589385568334726936062901821872617639844143468716681999048473970571556561172404875001406645847968358335326191642758389600839930232132308875657662009378867614918470716823178804820690355669086971812660800052974199847824541030405268463031240600152689342135673252825989902477199081810586095686515723376818817997133693865042553835259816551639901008499292672133450382299914669562823565788964950677491087406172871852995472280932936321379966885381987717047078767134420541419796872546189383479721432174566955013318590825793094026539559576556666358208100004650616786801927582049234972269706123435893880940274425729779177139506584055573136421321367015526551125450437898626919630473641251176194189786836215680588084646213462627288401765327233774766832705115282832313343042583986034042999054953461811434472998945420213726760941154226875305756683727667709129367946217220420869347056949972047616410209327662156898910118507478434067675006289923777007482689488146271706768640603279690523401979685263250659168001223158479038343632195574899000845865631830196984491926448250117727372096328562818757501328551606864879470000587281759506019862853024594255391788720538854123414489022355148588233352122409486823488673035426975091375438673458885798899247947315678788910915801041870631873154518621986964724771608186509295860398664951485656478119720760849232080963270942340574005663259020499956241400790671602716589748842967606699923487429705708505204861425240640574675100621129919502581507095653356630546405117427130602539907847236387384044257913094451739370009540950813529454835316619245894009688993728359867767860739333369583896180618878105631064556510224111961215990329565227302994292267211721911825193671872732527232527240344809824801587414528813379881183440274234939121802599437800917181103254285668745097297361095693505447634851639980549457903022770529807582502166217438384525348803715644853882365279088983804567560504919198172491895651956457151960361851764488561923483845100758922545970740607861750564216227839351674181196344277558564563694424178329534226751394619794877421267281046790878891583122493719879788085576847682294681433203632584086460569507701501744750040748207059143418360407451529373525978637712409190587414917858731581179645315111056073047320447988577009201653907927833757100332987527812043013898668216868690428990836771310477008261511571030988434297394507594664681957116470453286542427328005283131943327478931082339414821400108782713279011370729613453147640107613537673492480722775289510304567650048063532141051091588246237341473237661617137249631822385207065185900234559890696416417603320303619073079601605895772195496134820710757379638628104623009310175163933704222515257952663426757894679344851491024261965651886394360277340615201721437842582098798040403583887769697437575798098888931292788441721850460939202648052864731932719607727521979265874290766993936342156233339805771863963378883138705807829146236939992843528619986326210887149485713391446048837162922447528528502483088620625384073649352439225546661454835572731661780239044114438757237768079115525500510044771821385081414370265793692335598018001658761271696897018248455879458668666506472728562512290409776047446807497731763008650141923971669652686893161323594524963429437232060214069806433576596269705752338136174192121056871721994632844423391247914443828986979794590805657974853767523135622331553863919854275572914839512920505439743887602109170961226529753618448950371948561757997233858987558360909543767756165987149975268718518909194908564286869069963184849396855702941819797460237336511874769213358810691123307906930503675399467934918350559712344035826562746877938363366910337820079873688925612687252185273839048218936802278175335557044807944854936492057771568189825897895695518870233014112441746396781557586652550316261344527701914899187826362202788761128058080476479409816896301867209513244602570796885583572660155166593874500358401350425400918855201133857066776677876814328618168763987330509265657485522010625892767477112212815151460089912387640303201404041997799849821019236634208982039738892892580660359628882851773214905821389463142612376578715497113134366085666868938600998570023198360907113897007616107457440086449995679753737383606367538680484059875400224192220372005908501470047589237664562880093214659450665883553440583776921069561247738493164291977126856620641764883631771580602924382361364495462511671792082601768215148951519018320398876292279118740124619808229855353606543236185922955333017216743390308250071648458406111373154673464843769539979984769132380933209492363261037225526571426982583832962686085068716476643426057825934638768039385069896340108556401305995821355169402018361414701665296001738584075551153372980766092733597174372854337346303123453977484159040063081872265379007753799263221260701766023599795060735465542501533892876016183139795617877360679657423206423929492331737370654101267016574237489658992139565452744247638849557649889741860650565430006922634687513113632990502672700454876950437995133974941107068970189116943345541261039860622192585136547842610036815596720307949911998291045660422806622037533921445032103302388706127684772205391706502093789800445105202175035980252041784005478209770552035856266003201195561942091682408343702911456113295919733742990157308587469695070844882122158329426434297414927984273870625871969987474012274504591750729987052890154563993030278559753733171524725018985254295191335302608059382721434864059824366141397576676455822785859167335152012092455373899238688259583485381196194653539049259240303770037136040545988741372054560457105602507935525248960095633412653741007896341714769912277007611173427122719228159499149698899041059328957664134442569062542678392481439968465456633461462944241627679212486850218840661696650187747365057348988670404809970811491860278132162881710153515030704902765917059502440788158321525891634585204593279329999042744557119222058308376244817349156818600339461966162063881381414889464155259250412941450964376043451357735034414578830156547385559249657566828091796401655995278821983726176080859052017824728295358413265806188070264182358727206779192036624519196665571367828557829142717488410137286093293044595703311891420254611053981039445573156000637795433352001475357435489009201180418876092654993485227705062890413798966612592172088236027045147950241928050211247269948812628169918717573891521657357072348028041193434740665348781325889407864631875036836168956321097599108854007676077865036231154076048758367660084197189621978943332551702370015460011521708190075023292126900387016800804833739913729999862292874206671087141153419505454941467111063267030490650730464451993146727808796470693246414029165794135829046716701759134868391446719502457051243102147300947282767259208811347445194380217512712642219415059499267613532596879715455417769424324424044895970421312246115742889853625765769175439594146219770194350841041537700215777427294399484051594174868865441251115993773947927603967823460834367665628321023517772733297689180396025776949116336137532330957968290679218210358967575139191126190634897154391012502741106541210514386287538554187125495645431226591129014934374681844292174176799250078653903500573490480201684719199739796631071878644037417777356658027749337156694142888876705254478240582161767366026250230733898183252887103136271331830464957993786515131554539544056683101566412394798507320984294124340215307800479499323962872556470785494064387502468307760364396939669208010090507771547407483837527757889735132953366191095484753138688559104752607123964678508749716241901517038354981500181354926302205323555957636206858317707572831076651400062510581112620061307382961496128921311917236328105504480206162259801672732058972221176741272544204557029465580640223629309238715218195574095834122123340855589275551838952199028822358398515484438385976064554190184735685359971838459917182282661369267135286392259370396290429393253444076997542147227268841210829371592509574855705366662128763032511619133183715233589279712753760764531154214432009819762094082452647463688180048310578438570505626833944795084419268566438890539134404340229040292060459307059098361325300944155804258872401931794982827463202860280020330596435294299245647748619284812769095426972971242028515852072974280229565252662934228978934617814368888621921872441973495891335700945568312795644492400359546094056649577691217761428778073361268658298761746662720583105903460037483206901464329004468422678505222427028738718718752912950328159996204967343985982887580006365951116411313747560758202371212740750392276673151107342025952575041623765502181871107491613805443116748975076164761787064241466958686275038783800684968266978731985712916406398775878766090038860157551088088519826244248325394345989240095713343654907728476461133946350175351429649420081721673318176440048218456070185889792544931435829567836807923399999920969805958837942531731477839092890999080825682426010680063443223420728983406331796933287387098689803141684091416384339799180169152897534121248840594856267054982574296708392168398429566959839131437718924658717436789996942775621876706117036067006766675365502479332283932569086446464898410500930551947335947821595699775440239525996935186774094152550036596945835236900908653827233393320329276011648163741857556249580715256872492516675326290006191260976163035429085202471507309635749136462446863021786103820620893003079343908571644508677669678095487303898295044303377238400320535378478532650807148523206712267058305569557603238060084592090808472446276098500919846768811220035844629287453465698072105802444841891494936862873850244472696252950339915479903233155401796693967658706664481237589583238839291238178741657378671134236545030574545899002523480294269302822572414047576670325093583231945388167646993785952622687441293009650857710216501406709650792046976913251535652292975448039249962608640832226349287035144937075194894062249924228688636848525498685253986151405162415720881175252353952065572270413577646789917101337108114972111444342935745293805321698299914858776503110867193915879917029830506095303451484198092397252856943799670069305574263871697189460761276669018125581735857580013636365694717843700828995387547614544406502150539055270272264149891063347195213981846318285701683930273017854589228513505918411884314401961031509268774695818774730613349770145598054678912309717653384164114848918510680384424666378378584682429741896026297618421437272727716741574947020848160557329800924040354264676749947957183203296059171283260531969168926052030175521296846794923039967998170812108481538326555232482923059163261681821823050780032653775377405789992026348339559436561920978533314981081539044154153364106597591611737280680469407076069880134302353821956908906120122733928323521812085404894622541260556589767814256902863980978766820323126704745811650545323646921818519005089222742488451518489519531092378861622063444601879274386543984407041508390039004369663521796552304846276062769748262770031572330404289290696120676918626002779062418910768451067560850869869549618011765515411052891494679795937817414951100211943807566260064797434430735615026861428424316859094362898333963504407903407949348194894593256675233894986787959087670128789727160679169954305345557142998817991373330631084077324867727931331368122914156187566499041878074518166514409282342475082342192851826214295304445657535407787296772743369368029674489562264568484572828068267915923201863081244213101698567787416149239822450601914589420274766608250557306826827142166231518342845639866911599806173112668816550111083671719702254070713762090735502548965057562873702327006990969965369364432826474462966760925175769079058622420343075484215008661070784058858677826251486632993161923244136258217583232207638794098570312788244887472346292592664449769018115815191490976742328879254723252626237947824346734650735431759591647554926228015677565023264934753330041017882812577347938780679109411191505730523778663245126948720027454384282768496542073943319908507128917973937130842128230647235798158936413622905795143670983922120877828681979341745014675022752145254363616637391608821227259946483051100422104425063532155322052238081650375404742279518273443118002231411833756306075260985325411562016619400055353089558235983262563938190929967311873598772188019790250054426033416169802104945971264820457550343401216037318821414002734334823547834848011049593324982555222522401775633408111486993103256197115596827741094467824081888035478856679893481524259056397433300387832789917214898574861055228960460978702177200109853808373552447627834879228371251437505630816219752408490701421641179019412284394874438118028236054471481186394523466032341702103697558458545215619212392593356082452397150363253806314911493855495544327239666992058116635618050384716398914219448942665787249075449309802615827937165204926822649061852419958474540314707968981416680890750819793587459603520116654736867694528192460120090475696018108022319922396000224203638029947618289082771131232616524788752137808448430129918847392058766251542778290561047464948358748357932338238207551719152878865530494913749575689993012321192246161132035864268863423652452678794844675988222773971584547122920675118519721666373299166501790369107642477902686860360457533869758606236855842712374587039828560537764571561638862032946312066501189489339434171518692835190820198864276601533840722510325990937399749423110738675280169346486375079803226892192204217918504489071477463718421471731607078448821778238600350508543685709371342523749648930706781709512373050759930331516479016906152701439676883077608592087577716127656036296230593397266414297515370492451532199900129431979038229364489377578517543268503342379372848071103439774348892878505708947586207127027786781528245644166864474777248784298202521706172158254290884111594177049396452080367425663632878349920347619711736691805115006224033878410770601564333331919558096995908360144655961640944913322825659096597084356648854108112618080179517904129542065288458777043538419987461263577686875259257037806826814359648495660225567414552322440882641776784893191260715160396211324831794975530839082071699980091190822153098103044807413125342971127849544650661745675588654860673675037487744766654589515827903106448067370033225067517071299268661509641093808426096501645973146889543162333934514534742495953418532513335075893452139781611674454349453794431613723419497374325628873457081857315363700820977295460831170315044691563645951745371421638687312287193143310063255855387362045544626199431834842448511931304619726932030313655630655219821697699849809856299185165511623512961487247778216538781498539228595758392010859716136840050148253701599713246439927313623433996274131895811648361074938850264711987679631455457879342806198692529561262514331517475357643420724354779986324714488310683052221968501942282198169061732385184916315012977626211705041221983686616701853205336820954241925709205353892553724197981257489208400430529387208720565715207607913690785341112331783683617433798182677498692832472752409399380709648241455546811121124782918912380286767882561252355053800032610160230188743600387922905851110047118545743755188446293747024982420115172779733467489132536127279326382861711161494891651606812184997499580998481316844019855799498204281428886337798222259488207059685025820992381549690539637626967524589538452270276839683612440862966127087041330445769810191920451404886090614998789407000980800436119372593241631581823249273046998209201708947718783887569609956955096214729206076963297509101398837226534625623746850523541624728203355682931043600306950236737608255283083775496518359125926468797116564101834986690846186652639677426993734672238213789361015945937127697972584474870916993528567030130409645382705341242550496261606560685941835476848977026828781858896396893999852746926290232783306143430879104404932945650778165266288180838222306347601418927948310875622347464769969726469168955503181519389359081178353706657496104787771916637174771073616086901899491903361200400117552900583548951988268237434123099245627235045036008647332073186939908321777777734127851424178102300756859209291327340863288505269379926811819567258603795034011199720605547383983952390513815401578091849289798037632650680209869749346869158861386313037322306548945534776532073613481457268462671140986791759930092713410501293257909580669727286809560779625882366217718153798907062472065427810692387733152442596357340239666216745101062427065258779068076478758693296702287936707236294453775727865020193321428230728989918629714433008291879467382025131099710818992251714973115101447290615323675077595781826459732224848999937429971851404625445411811660707369841505332312493689397133925982478335063630977256676398588926565279261269077686874548798665002617589885221617031778797854081608638752294630784318204491392749279920735167296278175571428681156975543455587027412895422026539423700177523067287216279386718121809405788818552203936000037175907715564470856883653070957087346452855927820877543592700569308090854410233472979922604237396994931675254150633984507859997071094768535072389812251417336054977812305202649239592767343323537482493458238780157859915223245029678827830708666960784517412280369067707116759566103501578760650057058435234024587327033308230724076259217897137226772603783291881801656609309336400426277177557956641884904411628110917482801229295674650308864737856040512802820930206158058652885197943732531018389730102969057722787434582702361347640449202657911489507812872201898500357641799342916507013128482183001641860435855637967659226664412894507343504992326169694013939810047073603741325010575303356717664478793149623761067355843508113506743730726529161859661960312510412516289096749933879822150627465451384366167395060915009854561509786193347658898493256327338703985876496784816916245894362683790346697139586915893118338290151243699358253961988381235754332183090977464545173612431389437143082513549097027341565554826688130528471266993799761208708004158129816016389216213323737738917227208536517462660414212334576463460071284731147696714771713851358135427770755793083708146075814770043866339497471425689841334906857374356569556399152152579434738449033589787476505005534582125769095241130057125939264290593705520383859205265088003724759995036942348349518247117965582237573101085409324504917482970129400083924360364395173548821462601444705904536940999422626104566779303227232960194664963828878887700769138679319251540186580398413004322987740951489034493697213209787563082572530160128356176218556318094907712666238675958133990597020175870764060045609330497586988771487725812595706228377161959772409543502785018737116319100246574199906996885847438079567917296436768840623323463765117168238677049457076119091636135731365137805058132018746368283004857063915383297533277592795721254323817314246037584998595486233109863348681373218977514954352057651139636232645730584977213040238955424459394676228102434439525513400913845013263268015430937222788833270865269450183151787027181916340183453026310917585388146886559532873517040784916946018336215642442134060427835583929047522095912710891037629738937483473224328647821509398807970250983296447618173128247571917996405930117442707796314902399913788376917168089546878822916162385171577190124848720746972698428139975628017053985836443545504814769057639757430686023949068348318784457484461130362573048683086055768619314504332676126559028567955981823529181222971794780640201696626874263641527851736518699575095494642265585683297268975155069422501469718869583477561648818496813219384604208726148008281826941573437214017310774884673259867555153530299237176167428801238405141411194347498387554737640519214932601077393113684354477834798146916803770071581362793612203379858106350298051804068837723563814461256170929044434384692610415242366636776668079263053297352710778116670619571120310958089925766033676667443452915951532939202834634908538893118679672574557254494998300952296225590635963041005538861162669836471336250036926841614613638005832766325534348137536491041692529273794405188019567691939569065796679002522247191914095386904598867873936755915507231535889467335111722168317901782090757614173929569079474734733449690021562915383076408624180528951603961331744280091820528907774828933730980244653394949267439357715417603122647587481388494973715692311035025019473285342822769842373824335170749660968984853818641664976706540460029243713515865326937757716168005119279331468522498608024985654906337217821996017266541170884031752602946118393212166891125793307014562642309159297940440113214868230764530391133705200894577724801959947017405334073570752267852773093814598863048347618218519315922581268387475375918578028230135166112336244191738634142774598646228620241245770806886663299350649537913677332715970179034322403561376542645306873954749389624470084488910951439634332482021372764736150042044502671081972657722033049895090358302084937704601606969976838540712844889102914266309898638718095158365186342410790915255629477119432495577358964749830986491920042893206506649571182998356086220429258279143229464379724394622827632830935784118813485919186217860523193474955646942417615102321678375516295369453377034396838311265407388437520689159937255847924688751078577590701330442713753547903413076382010698552399300141470699346326624554442726891439031977287529807643946030488961460202086133632143836792097473354010414395036928350025074730669554048431291694653483004903129282057924339839467989151478310936308409984128160336227207100083243404058739350069492836750199190417559352488659602724248126504144478266839590747624352922321805432921590632576193015933877051104816081035754370308071680410864982887142846485791936487631929410296611775514810856476825225602952860497894389172384639077563675464701622278431617708069834873878343140122332584702492619658629368690947523138171847716838273484483868303685777092869553948543847211722989088979168595420354980195805921404339285814369239595659787375306264937771624567235064239132893232646557645891723867051822837345874764150547400330948215781227329647812781973376136378434409085802374328308312250896378064744280520047732856647577523639033950925009325172996394786915950787438120341740249780949035113504549945412571050990834380631757835598759169157270019222386513556692270564987641873742854571843204534616460081830516228164814939411100953885427466009463869528699779950423815901606477556510790680662076826473482801764341132629507784568270366804855556141493234306265706153832959299032373067624197144725177105736517649905521685511684717658635496193674014850959822272276889006277917271210309469696942357426662919624499217479891082827600461520991084498881939164526713608880956976561393373402070757710493172594647927214500234645942331956153380973022858837042796332959651232404138774755030333334994124382964735471703043599767545995773381030672549580141994640439461980233980398319220455515832593888008867901929030112690612801919211754986440953352168413822974518441851343728555904061732570150631000722030145343878433888059592992193529905761442669725554294878627527518056091428754419069851844516835755352893908114454612757408461576481131639136610695484711805029974248720352833609695612756695949962185511771438302832973608612920599790449241402708300105376698772637147192941840031291055697152468622350977207056746274610327209230060940761613413618818413580080993561761309424211717270381084677347859487901783156926993913690770650589842709968854344116906398499304055016718542616379035065071355405550536075631340413092560024098671692718698683738337958922833983114361624810667429803028797793159147573639861028528091523222787998873071410188930869069917320724192155481237911228793826970986827639465706411531392953398318096932577169017824110853724307004574065953633584554572998359164593538256298507967811273195961900562513263495404809518219307781564495105189617708513982955155536798074204870920572345978088239044947621973454908256228824067992899789459841624189186202639153740795093155895663539756925735302087849549320289761121327758079224876677012992263662140342080774388254288695352817586840290854122295434732583803644822296417712366039501668208184797008129082808107972016159337417813962228118713075607909348686637445978513197647612903261813074230332912767776918485792833907478954834566399285074099683200760746383828389402514731923153917534340497360907627500453766674795946662230840650442845873326789515388284216594747443048575806771311339201132224469318741233987829688157284067095219568843925153568944204487267077298853227707720176859711677705456717363592603462145131438043426948244961862530422353661240203314366560155721136945823630613371008337517674627802901043017576023776812489322343754717284798663427152919338124888000940562062742405072191081495567982859020543375421231338941571330823982801862471080976917207279176141137519622787205489270531686860845304459329663986691792221198033784940565013527814519507998360472211012449622512354244885156913987579597639314093676207337865899697498683931449200421847561041916856288249172390725521366796332530231162656645070978723908101694164329738654184729931084536638349553677671352134390399905977063300519846618194073483923616840410094555389705061571443372975459425729153931903005364155040228994240770872182317714742808913548963277102722112331259286492196896175931171539042798553848823061052641596442241798168604659690440846718732052354057204823175651741769086741899257308205062616025442073038830196868917527043755958156672488533353201864355034811940532619096876764054838727849852796830421709649870709307343456867182659437775515326582547068621433316350994237982074285734933758130856182079018893923247075797041263797594255331671411405290465258294403452873458370264227321518048524715368799361410803440179243017020999719074616091084272208243064333029796940167652550794832832389309817849038861594103799032312811818579698035884713347117339519851010250924095197358486655065844427537134954341181499796927251423929925938052373798451483880516640488874866550670086526223393178057677615523344509789847076318853039471321056155521187459888050300843051917841739072379856965090645538944808879344632987992734623125095073095459614865061356583123995960409229812602413203568351931569513967574894616698934622730125310570790963429735941073936228257418211803793267646272969682158455628982768006648158667090580720316986646978595004600505644855611881741930229181890067177032096123137813300457395318370874103993535918270090686496078640788736117296509011298255284181001742257329448211407704436313034461863056466392074342729575427948309826751049261798836889322381175657471590444704380771483151503977336069417393077019624426087450675253243124496691627980637161734004226204050215208640576136036839487311732643416077069901444754587202010352658229562841518990332695029097532614235927347428970458136183494178556228398877953408624682700779077724688736136057853259063888074703940172078413040622018849229145636507947478533917149724741532725667201811032468769375313465589517692988940818312834762423518861833842868518017510804834897530129584094187579459281998663683572238906653384315405230515634972524638583391652300661536589450763545510293520088246841590429868683150585254183305512178998826228637357520813167902593760066624637822316410302737619587000999760833097233486879209374368700646624466411466363404135452321086165839121521351672649205255470842942211106537778468192791340770550226386170209462589606089033160730155212367143135385229769563305026210256204428654362528545105232544887140301504956144701012303982063177266032304005718823280177818756426458879550749106593480361000296278662039792876250521907508660439683224939192838388738805168031387535253017274986597446909731292728663109605308636720393070190588561577048892958235722432646294022278338192645673908925668750509396500128021362181305152327402438465365027130161455740054095247312248236257293861051811966503468848484228397249461969937907099174351997511659099611687161701446579236310067340782415380369998467517686817644895676480781715413028749010018625814228158903639405607327625058017857435385593042132070565822269985106171224432555261974233201446871113234358360067802259494166381742624517578169592258719429860751358383906112445525128549454138144385773284945637141919801192803020903612229831810599156869095980842543057056813902138701601831967408511156007198354139643510994852315169463789529208376710395026990219814596626030412538268038326305606303742025893381891661811742225963596472360910745286296235390366869386041976717643130350130967813238585182486782942670981501424937582795044285476474180803616454411454342665943482119317944109839272248469020547727811896742245590924975715071491925922030492555006532082014868230972831177531587073102527439912331003063941984640982897624477051683946912566869400549908125898758988251872777137529979324739171258400292606936104177841041444714250579400592249390857412086743056629729604394586381585193570719466440933330471916287393786780622406532703132056599645313890247080634563483734601055876069402123631289037112969827091316868381871537966699646734734814717880543578861196894893460007793886978596561394906666704211599869874869512491120923240240080200752060065953213578775212083826861016892987250770656224446844052593988969920554681182810209934356090000165559238921368813986821101806664701073433048749665583814961501852309573075021583606897068431726100283537008186134906122812224650470092387199589843457383036515858204893812457393220376697438908592583496932802964938191024099271105918655465573268678942830408159239851713377505712887583807899167946229179716412272694479008228312017602613037578622735979740977697051794692641499423838793029399470251549767792849544575893728777806442134626153639785397487020992224211309309465525992734229113332104509193870224432615355345120649606430197066954260706846282444240662629498466583574436509401439373211884100013309212969033571894526273454837470274455324186004421928481580528271241656859786692544984087835422222117031270768058623159907570902403115994801377947643189957009605306247922728898479329812098414873430750677592792777797183773753717581844049392591629524824265111750768515060602146286264202027460658381675868835986172685442126750261879298462209514063984108279921004125272235433412305004670169649099558844251013493092306451264951621805231548070337532097536659167582146632863501602542772326441551077341647397055222590117523378079813979522328191892469536131954883527452658198260874172404119438046596040917209798705725165255878670042787776912575819282048597178018207617932453362352646691598650322236376122439878077570986807728036633491411070971610101435345925158325341264095688012516658141723276355262156966186412859616373690166232069393226041746571087334465299422217990201687605192743169310154656611674246208926996668534005137224345756555934981689725948598899482292980530798403563712227848452622636339910984319940589498928561267908380642138608443756620766168297551805038465165398859269902183039664325474289193507711403281762325754090980614720044944641221238845840860330058719044381057000464835122154349979118332049472401709342586946170440397086937514716472256580298445971160792557618869333478573650214079621930889954236786814500012359223213382104789536558371264904198870454657647391016470676375673301217105461176528354168901088332356591586755772438928314617369197163672479067013770674732624927357469066049858588970704236140012379278080446785990489047998487672681210567045951796605055789709978820108663724458367382849491471410723183955833574725048688633964523525976184252239571093986793772461182733117371020948748230142062407867638696750202041032607599112908030708661835319373018576406737224093611065272291971082737725534380463727811998515195956502282031876861154913927736313163070401745352327607043489105921686508586713639643448331937061574005601973839679774132707807349377197105154768883062246468881151985659443191254188898477671557768162847005001997821649582230527335404590097987607277567089691065964250526021289187367702620053220746832401624580170777608676835412979975905437812241170236478556182814013743485725781820296697195610225227046892925792996276092701157893894457215789530888945268074706160343226115473404961118003503229651575111004610516390685621684943216053182467495713581077169066615197401229614282214879279362979637215963242377655655618363870708328845729958316718120645515282404103997488801921665962280733134563631487522458407624244698029167614129970790898253991218695349168511307887986213540615034049290220808600338514943024923327274113816217395927005418955797971484252128566437711079595861133212742240968635282925157774186710633796266017884750193152526690676411269277653709711432848664381803814788185414804744744013166639747771437442811755004447871554907604078930771838396051973535398549904346005026047046864276193320591805893827701886401710479480026026394951907123598543078826238842472030126696931359950565287720274805527832868606479228054197318415369877126586516221659983170259361243972933582364680193281019361192937370216160965410719376004933817924488511664865250698795148534036788671909143458693730015529800169183465563420239252818080376589457342958704706104393865045114719327352333118310923239718380255995126685673053119355994502307883418288754282812186481919266917606846724494903804701524096451540901938476845149279805878961183142323605071053145130028618306726922210594363909668979563378508261754754445004699780093980128172013499095963787806236375543699343608209376060879331138400502974970269958156291902684457653347069043062509754385358076183115080296458279358598840502187205334371154255696222269338221551614095379515102908584723175498171764538661166351372540685012782686592096359673755556962850425284292440373683125403386261192922551154432539871006370595359448354276117629407873280927837290224824875865671488706087157135258376461168231396821482342029715882855418877261847272738804436340234236656617320051575765321567233557025247117546691497582418289497257386435992409889011812306837730074529322396001697426817631766320588373855828744935138170435561591168326306677309123193978930945431322593998033914302354036353062063719166985333098214964060798207943144366547013898605584823376749870771032577252895752830959791842296410493914287575605466046289109111924507981707526218748739237314137134832711763509068537364744434120547625428337663499112124878332169374119764950025235490391742146038490562305734417551058826675688616232322840698514462219357937849904420959870931083079588123552231607382031022043556708857403450314260444934394725626889227921381751775246583624619702129270027865442371448077445083272696699795550830193979382584153761227802286544702289896544702297410503312642591724617207972098921920955389721521338421377576239855479209111178039948126660710963067288316679618141578460909915765469192003346276510986487159278456771188422371140705776965229566239787442016830765687195148912274183373262549806677069061044908278311728302801056290302806621641862481459032732576672902158017649529328422535429777868284900693486079139239464647522033916476363516656925963169709283238666213382733018850270828808635691648209542872134095867388558844322150189022582296643569750906340014107463313036043191943942031769398538495952228415276143080586606129630833847720194061587478599090506030046950358942292181655723145643141996618752297724831039856722380177002125723078364599755185536994201633886798124414066616913944553756832247692936062099892801445753773141289275625259060137314806285572274237637287277050204577822210963579700953159887732180526470997791851602888241030641981504816124618442408958504872089568174594763119985198999911890109854269936465777449310816314633171110713926433328891754729297257814269682557933063977018191188010377675590732712726946293174115934411685335350371992063493952214067335592284935057263783989241379376774366103520821260247543393905633775695988204238553793981931961179037148443480500138040362583059160611557127298337589161880260669085796387635157259753739833408838251251700911150806006308289806152677968862786593132817989062552547557270844214952314142504831890375277562719095961877609468762400708603952006620335661780224972634759189921293201662583587787851498392150973982580064398484998621809148069783125420480682032099734506392200328141845346032102971435971804113907985040871059337835633587179429720021951173283464941535660163877744927984561593106710459097763025246426577798645932240750720901115744649457747345640592829405782486957409650888326524052382849260352718491522744459547725320200675990743952909161912656561465734870876701823351346368716508609506412692656523754229570120195863384647717257496821071071761329234693985457760726432749467006765448498970758385770340389308012724185498096180123706688274988782713434848749006317195684591376951298730047142615994973614443341618547581328094688000379792597411189758247386673749210582628688919719769073692787606746604950888378969772120746374203869132887447359075427301325015467027524579585568989329847062272941842147268430706798630297417377957528548548878589890321395532108726958944434865954862248029487647384549028923454490273963112365299354678502649228517245198237831877440228078045464147801453401463515694301033885382323509012023870490008911663170051933877964492556416100647515020560027973933560380780762031129935674990814384897120963133819389050416064197475299322986006011594762093610722775289159301955385520633829671288184661858161178750006736071795031206363239723581615715557510220292817419143462337177914726013451504902624667626609269984636540189403325315150580293390847720380114678426950190935703294756661381416596342171277499730389032425228218195204667485288375950811804269300493649390342325421996724734805948343017665223902662780439189414316076580199061186215919960423108438216831957138257848705065934330821592979749474034323326008802549431057712940622700931691420773631922094150300293950742532833755871749055444653811931019431705189317294254121622723483056241014828201511658926482165213867217148047642458417282366231743664295198977481816557779706922240844691436424053800717570378047771620315856219812874154827109701946633724477560543647199211190967311210219735637505993160584656359640939889544965763086949879676282763078744045723189134119158829702217972818347973241988514484868533193274137834398251608021961435016619542295181192354323732563929943737466428430728462223813534232210570432636520742308310035326138873186793951808750109079242091367362034168807176386840035772011074856775190952861521660216700158009931456239994066043643697469552389075130387879936687745028652963710327073833414014325383645331450557076380847430936173415631790723175391666391579118578697780221657025035704369555714598605020315461711092425455511868199921450314901563964971373243666603194477817512369116488646077172011567423596450655985401066207165891219794388715459057786130581948077738127914235672767138641597674874505311927321196649364143262415894982315404365554157363755877469256786334653953094769688640099828736654426018760632054872210453234630318996473008774887904671926606735455508673012285018457804011445006723424635433516697098373072363171413135773594642251993227046028893137766614943028985491180657467678728283489242430569677240202655651488057329723392517571855618481106008363930387039971684150744596392081570104145300047491142849377224604970122229882019975895918610814618071775359575046447904531055017247373026832796968635677984136431416835890780250692136378274148516259769595201487338717902205776764444241030430688323363712258321136314625630133203185626738255786672050105773909697179340319249317348768064312353094923330727661535695710543257381332381976029356378756610524286327891513340336802204055736890764734054642004783135393112217675355731806279389581265634789495634473531164771602937197887974308957273192453839822150415735553922293255729807245655822636581421073717695552394925939408091894714187256693020526161265588832501588089664144604132329748374960730401776444485501133807364189519000328162299068503039954910277883017646554663985879852825211678507752979241583551216732915575229371518130639363904724985735870145030078613435074046052680250556003170387421025827718355830818639836158950377611480682722991807349830324411715528361525760140532643541088828076998011315422641771770077867935590631407820567007327819656077333388646186911790893079539483636399954003423821414885300700076544379729261537418966099150916113495276572534038406221930770297755080626774636337292331518968867477765031126026201229161476847571831357035759336900056818120472006479156870261219082852264113561932525614720380947216305409367023197634589084595676725382084237579362533449864953438024474441494498935591856066139082340721669551321222514475502253719350105261837250201410964409215458813726010689022483263140060215671744413807502677207768290505066088920400909809150294280238633077859359123212443446647422425438077546422660380677789048189953467274668934676169195926309522726225835997464401236350216139726997323203662437116107530658711002753465209550420288326889434395967399135575394220798757118329089942069347952502791272957876727974181688396589183584476862632530639335651289987488227498645042511556933767402264453163914430793322355281223204790618833527889545328130899571342590152798379743829960095184350480839578139634939259888559554657555213481404408392923595679096056574813914845575657642195769203218790310671132668441567657882324360849573202790423321119331417044796111140872930966515551770475556777653134513703105029144908401561637472465359140684851371306832252143233825130338549248040409652585781509239768080024819410499488479084711201198417634935701421421090976834910462542008972273059504267449433089843891190506555217671737543809787989776218958981296176888553189984225147995206676858769394414637109251095079482925209818309591935397354260758092498246666504408744190538958925649244254704120756158167756787939408255633142019089665851635196411066020025974842441799392871798763671976257252357901556880255221453074755152598025603174840238018475310302600410603876838789495317355691226792985082485051079747465410420804573180494941050916644546457318204407084861130813424116470982639785170109360538184961231679023780877235356967559073003746869126116210042657210858096271202071167150798751128727449235569412024053151509417046850098532974658228673671444150912698828153777068368411775649618366693260922243824001015885089198867873143346649295872062600945593863451436709290724853801690565762878882974054561346740395452604774362996076671601596413081430228091873084301463427473720882746716248608893262801781789834176832198433432055481899814240137305646898296458383688807245489646597772733099626289750419171443962307529285690973030875779653459987625335293473138744973694920579291298308468920963801698346536225532616838313352410717488146535034761391238592232007208973840486740363430775935816680739866178244999235465200889633765190876691202128592915108553618766331084856902629688405902812939664585859118978044233666663869506431482340260738669384778405843630379788040854575477016219517430333967265799697504785990766264269410628611559771576820462356534578792368904115414355960577721977080937039220978216984683540148577393131726243933845705956682787316900237280169368323703015848943335185898391312675817856540802032418922586124975816477645652624918351633670859960811763000869381506303300186772447467567107245477204552078480784625173396078019299043313594702046779515752772870965737202926692288030671554813579512464251125570768630580894592607166285081200834996298823705561987404331032280005536406865644978687307854424320824314578096878879352569989242589506525025614468860583512558989730082516750215862381856925382522089144733668043026372444028265799773971724840142644497475054425387787096090847093728109854709972381615937618189792864174759299274704470189651715880186199460419441440622506896700325981658493314444148077623662349714961915360701802759156019054027135576866751095757561688036294634927012158762963407673953952226664615162656898159285906030742487638450163468250176824813400610833989766987008628272550537704212934548532928226373013917271602282097366231192187601131514372792517061081051040510274525388686502517578894207246215923617769352777042205273796520068630343234184988420548448218100469816300057042154147008325506250569088121431760503446933481616550062943416953327629062409318502134061101806325966573353945622092620412486583750951007800660326136125980918751788332585387252236689632962443598842460065133062644557217706850016551830109064603640463051201368926228474802879432688353729104744349813317832340433724447348138424993232111456256408291355515887388740390572925732138780601043074061236130067944348492137937007637117573696358055232586590748178150989917385547393403904936826952348519946151336728585352672936610313652625112877925051431217339125724187595145063373639029291528668466931229820971218041526839436043928901808059807076800876792219425771940080861929907847723928570109123403497073758652041512936795003258541748512427592536697289210642945202593213954872114443624721585322214302085065037345024580797144714922537802926491320310402217432450219387431806519451870945961935260980160115855147698419554000663021511909321908647130229000212470692166083633290038896461254032350796026714533053204750692502648190191522578978937033564077208842479103678996405118524400116000404965687899943999332258664412960812371809127611645099499331734355620291633291320908887139722996153181499292098767552547773001024488069037186354097140978031792605196929980428827742019784345670901308934662967094847758760495647084105145841630365427226572285398607853637415761513587232628864141376309391313825811087504478483854732752617727685970873877474151099888974721038739282563485167319452377447722862700428798264490532112574977608007809155924217498394893148877311742265145860770719535710850208910991097906487037119238830697463014316747713406395576682941396926606667177137627487777624328154366582373353420915193364589367070113296409211699131796093315250379433992100713578994599248327907901497940769458621514832627671701779404589630981129879796704358033964866043989236745886008350275541073131537284678740644531024719010804730553080463940589255480120716397157506701645062453808731076693316116083086550298730277661711887298227554692643192303001453990903751424966405736956861877640415326446107627915976570063809698553606765350331445435857242866663776147006060476040763122676828595792892537667962722556989309139997048689183137858092500407017250845413051240999071129056457813071679043264702792761953839920208406465239704741701635974391081646030839412734169076039599911450189575621656254679192653983809096422242554173303279021270874903238715864303685611625091359674839656877396120371803080986498163330702802412923120395640113223787704633311168540042044492691413466962631717534762418803699717787313742140345440574489684848258527642182543894306406297104220085278106935261925681908972284325056984197503597289879344476969261328319721049858523054212200133729601744711085919641236004206658521130224693485979813217821007094874797087951016447924393694357101195003158966392436980808009939992409991791805301345786894755174341972753204468284122466967391871038019834178631463532811309635297588447215875416107399638207952811036186832149120713631949250718232697116908762754614260269409938988269679159254087637764062191401858656636471036594629400243975001133103421929669143724848672786061809793856422245364216491346257292587144622497540991783779977560113830399835124503750168119483061545119694036710118933940830142261750227569780407823070944837845823231591177063753535574929557635853968189649484441643450627502060956871056176343342730409152093691543656204223222901104935664392675426303515361525416602420868447654142365125012875141896131135676919763226668614110126716234979773167405208101281305851087278798219501667018986520657134914768534453018180978515685006465593455757363165828600405653818049976214387037294220828115845615550812143108073892326152106072120294690250095502526577804152384718756175726810210281075596734337838054225348659809249976392491038928116345370711036204591811231098904021764478358386704238668568156933032481952968601202365885546314973949807450308540725976462842026114829082158967801283059122466100003529845956977330705730155772086024106544632317547192543604641107472791755752426408025410661900726792852248160313498385029873080459621518830251344973260175235147525341692267524914792237536655790071188291099846087083657634346379974718628236043535600199007368326010230069163848683894794169146284378822285972721140102037820067348751947970461815193348694255676641153524000981053554482787370187080724591941479192197663318439129763328549218376412488002619506990824805050864704312771426422591345565459684211559914593716019796074883215358642500683716555181184103909733463172245861291141829836138407093020094271754387604721554935388760340553114901614164807637015541727353511906503300787940374966924879358946336035943951311249397314027718485965293166951057393238130400964586668504915563008994092240916597350697424872326623721337724298999588841873570732664545044533459474751903961660039148520676139933659817358403216041788815119296150635122208271314016546842134572664809263245577594625645913361416761586984849390281410790847848011959872288284585710214361879611384262466319935768663636102052173789393908033612805465998222705088064900691166968117287683032651653264376272961782038953493168291706138276436413888848297162017419165386352311970066570842614181861914222373145859483519987537735199048761158410816651036277582257408920914473065514569228305487364157589380199605315362468652196933345175178214756540225071131042070229458678395879230517596126929777517113827027933997849527418693049298495105548657889375400467134188629874487793690275536894033526561369488576639247235618858945764088461459371718000853165077393902656761809685339129578753995963473013038380847327499609772204377939672039087904429319720639032200495663580761190187555943767884368517085366411473629345548729180734075340090131226822792322888204284642174836441798838427655222734971440262472942620436841730752668606866011413257194095091852645882000027667551545829034335125983058063996240770739199425867243511044530648668114956714049309224572083341356287792067676753453661366726567260820432667351371605910208998956639165094919866466639238618283570982051565489471268103684925306309496286589871117625847296445445816136991554056491403906588869306603486084751791870844258843524266869208948032528697556341773867573413907102471130533046571736940818726990289941998976783663953395757117863398439138248733733207825115419460725018180839690874954239251004189032845800925086185854504371637128544608674432299400380764271004283114795109342760731491264329866446864041697907830675689118506989617357955399288304818642898333126312718541148659044528697281639227044248860074356476265585308266042956314942446946855814861723684022817119605820670548189784095297023030861044421634693761825844603599552262118473961920023413093812368421322822191871883883843266987907072488388933055093840974560141498913631342664997521953333712971848234730721175853358181440600001368881934335532147787586394738887566267890004321551895818239861778085825451471559084073619947039401786384671005912900500741756945382402502547308520029729698998490428995314639710567248930085991838186236269508199918246926019666116221767425333793329491256696401447020091261851957694968773062822201764718086305469259112599603836019581769502409396795367930193348720933973651223711124033894856361226730079871349165479954647974968730785232526561935472300372291717480168882825086375989112075125203838799396003205335801279787368200936247267619593372174136105138264029458957923383661186130792717194681871881886573396798138936545916636457180842401382420967882433658603356459290130184961734454831360906971871322612391873816559310148338835690236156526368777774257629049145716593448719894966789801411279011536110184550082092469562987472186072563184715617103169338914712497333642431756180577904653997846636504915978307620515202802307695520175147250725395557311846300014237803778545376291123807039438523732526957981738889511424872286264560816348934066171777120424077357605078391972004748038385948729658043639492913632755453326346274535937713688030656392059138494271737676896978713777840584504072287295834638140709308145073113582584252877694636500271203881322195530987338490660832775905722168288017346838381805231649060955552615074342331678710267375195598698421700926027450384225207642207456261822710624626187315475029920584454484021260318631342691355634811291448009909411960324017988634916528487858795668535726560393642930056505280048658094660282047651152205133067950390443497488135074817575627288979360801286574955093960628023140203453921524400671671564338047503910480913825448770547729380956594378939574538747613555128418958173758666995624540753146044597480752329003112635034628527870761125817548594840479783921006312659595229022859056762080852868498894948778741182817982574284179168880224046809771784076729957453187464064784543500070408025118664661500087743179893594146144645294498260887084671480492027978504324021853019007554317363039027523945256805619760504084719826704095492438231890812848917748770466410205037071882866803079028778130194311916306415031913414536499636358367273343272327646691949053426003977665829927270634670327300056553126756275343469022451271530190340908202832034841603188554663804215776447833155494126286543174513431801379727657904041055798457810860791143928906475994980065681748723674856987357741650688366677612636841356164595921278508158071708884978871718038300596646294254174928659612283384292875577729973491627924566912301744354460989640325654532756177165496168002671412811525303080143391126945911126730419494898871051249366155253473967195368341244589030506167065763019129818075515386028545985067198768055716206434694778645689704728054772275670494576128393319937623675573465007319531410667607655347535409321246185114817529815673397161970709074794227119053701954053834512444887711580158598728351729187570941487006219311517413639249877480527510414769758727531983864777516097996001068344912557699013232056422057573286632258321677402685316515774541784666341421011345156050441850180216601109109710214079418303244579579435437156376657161911886612562983686519222133432725054274011143305075904202867867029577555293048624886180275504344390954335805069185247607145904883430279004497014501075900012094859900929955303508495455174876282650206698595223179373695295271601733234549202645341697539261598659340038188842703610986879942279625332170021535418832664146768793940941266629374390499033860479484423162821593211026131366173308350325725165492676928739015142841280419737375132184282879633349477750117164880588295567034194546150459224384226879015982976758516384271786560519659019514099749760332804652829705761026898377525318828283338015930212866882433250330596233938685897799498705485100705345667955485713315706014862555633051269026129904688087568528248362232524542167177244843140536415846865378218830778197259111836127924422609669695850209099936987400601351693120642559436382900284033257209609860680204711258963323057324199561372981253206690045297054971230132911101601115170674330079656530414945478581750260369266264840659335261664128599569052255967114497579459109753891238075882238199373932872817389024077895762684918285211339630524481822923862098775929058864194474638532076880836577008117889480774455242709091334777688052793726010523370024326513415688917542739922123736868715125632379021579767840492708812421704805838693800561568732273697187054780828656608283763889513705253816943730129687973320085967386099756597562472990066840342420286414306423413831899052879839897721391337223631156045457662866667802796371410504810435720683362034641999676137016335382832605682165622621236606325247236374807879775527821645771214419680137358679745537286918031868780595843187084258097340129240639363387653604013718315406664942729218688198369308535577241536643165949538391509303450672361396386464460209371325148522733855187844579703304495094763248228405833318002278776537947222661242095853621284397753283639872952804953952097643801181416665506838472983034316010803019510272991481484876906387967617230697409077126369996030771403711463904621211268967854807425805038565006915346188814516145563363203281998004652708155316265841249046449264422731607159470738942029507720913785626303644077695646088043464222569699949954902200460585867308675772401802117353044888519914412322429485836255795902021993436968595564743336402413607981315867876587628508969865343327204626995695519231806650301133818483855814221207460961598185133998158684194765099805832316293728047812143760335882936526367114884186075527432300583024873944828240608782972042477895175510963473426137451239522686383029264611406022582276074595766112954517880013278924731760475283778408531208210537596277971067661890489114434461589322139224425189347795422383259919735758683990943137659622214337290393757594869112674572138383044329304349920018384463932948547891620589988433366056418764601060496604358137932964872059953377003480344169489631008636896498517443682924449009716991191928772529213830213170713489107441789464659673378078301562632322035527441000611215807656562391036127281916577188934072918708514659958608297023471281670887872623513773809471264512127074519736179593526888930962874582068580973596895246317502780980439861538515553299532276225200788310772177415319164538880828971351844577471361127886586742828549644186892715749643526835302170705895053072243442211196592482150130027104003345358122536998145919405238440148062786219604589464680966339595702119035399744035488186879544717768584824492873118187246593983732459189704227331894384186502050044406864725266004249747194078824024043240863801387911664498622220015559713926463770578378115208807695666777010748014992137371018788287539059563208442899423724879068204509794450412465182343714219651006832605771235607164622278512810419091139340289865834796795907641415743153243948593130676859645146788794304699444909102672526051128969380383295479106450144426328316943078089969731754455391810764544145790504703170326968340415530433305268087990509767041910742707140262594486675522390398669061078924572428050649367335867776355754495576540211588303217178920483098527989240158093012268625613576679682025253934558471265675979991939972390446193062107434712686260905064519954062233928203980340877120277498085971061059161578336176959663230677833729244115863273470920516886479465697736310247377247455783310694399820818323390890780531313231967865046155998079450218435874771893536575811674673902129110768523119771635134975922217917714953690199919089378379440166150837843357653352977886244771103684214035158984241924938912728178652876112099747492045508699583723520413862710623006110436621722896908210408423073865708057752973008968189571171404108589735913544711281051729603383325545523029925371068922154054063073189141015913899323837387739794447889450008281624114935491368825373620866336334568396711066683214497719754152642612879429008209929864078018530255499013846523618846136641874011750694755277143823525132017993748702558931739399780052644304517832449503779404877523679086826224077272066177335256946177652609343600946212739666646598706294931915453864218568835812513062010314935029447171275524976276400022860568693394608467202630594481783038649641548898772854537129250937681573461553891953702558442312120495855783320610362782853682682849163386741857952803191974212382072901835408449791361026798820920476376145830827499844943770849231702441271678762248048237434248508259622189979612880441230861867959250710305581814113875618198675417310534999249783496410850654783159744826536871996040508530167883234242259196610454483091817356663346877248284537123104062968896465570667188202879018135425052079753015426775427951897800365869186781599321080520143381241632339887506721397700770332824912372806811069928215537877704439838693765572595198986033039442047724797655293399641466223028633244642274291403710917598819725843424744448966855474229706132899500351164133422600419345984175675059809002572943276353561550376555577067479539559611492672420529565006174086008888278410170696339857379934390675773293063247132723223821462066557273264530545242830017795631176140342109159317156101881460875877130685799903851360033031322210405995332636686937012301407635666604561365549417765586634948280099333368682084319285196169791998507464817646745722925271076964585584214585289074879441950109388414476928896079322843749740134839161133497437209819056476109054269923221079066670415658237365993414817906426793091639482581189998736134896349646115399924950985079850526059560875532469653872227803383839311268268999237652544606965713801007354457260400792979320958645303515635408288730384782541702008447635183632569891793233339878014540948957741244919774406142977799124085932567777513998164679025096253034680460022309679903454197169589750221301947318541210232645958624460746006181740326013500535068396567937969209008588913113664922091059818585174745280175683886562591565311761705063003655594517988369287991722032139635157917501396186788933720418245623862389457902008867379971193029667324005850751852732565613395045456039938570231303402346710638692235806749450196802949504995113925383279420271390671158670237094364720999762582418161188264465084497426875796912473474550243397849534882602069236702005743954873398668021173841191911562589607453177496753643044324102587212979315492149764770986585024490360018365565021357308783193446472028238866018728731705122800733365734072600257535337856054051352260411399086803002123418390272368363143487421146418426087645028865927840387780526299716153715698200106742136002036067099185805322038390342529205743539365970150503633445427229423988650426183963416112746190440319261509079391716325053833809294406210958308175379848681617258781939036377222647013839668547423753464507015729545524748376104272522825388014355889630458652676118619504939106626858874096342393480006278384940900789983960996347377062634164791870995516377485049835558264185085943806096978948627657108271512655467024789273028016083966235169490385296187564737109988183898361047716500861390671066814890930109288984895084333204120851914206173353297983809348647478515945613590860310820348739010929181369277851775348708685688160956036319471943659686307594628336680954956728799348195617163448353986742686516461718648336043910245123146759261708906402524985556606254609819843787937165025409584764144381607929468807325311396116224826913095176538359378024839760094496724234285472532733373368686033267985273590291135973930319812149448467836620630411593921589732897399823927708204751433799313983305682359429638736664888592744177228010866264956045690556577229564686501902532655622257682383028079864591147071312617119943743490238011801820235524355298178080776742822988541943534622623524865424953383793369872784559236295208718957574337451187079330972197248828597262036669403075477071981113795576081857244463536692702630103002334704351315331394015606516343567171004458876589372609841207082804228435408156814810445727627996953537281371932519243584329949863985671411390649847305188607837733089262288136011135480507022185773539509219488565747484863176097398994643011715219313133044988974900930167543186642316624290611246726887332166015545906160210289457093803813736867917029539005437641871465467082376833124737390790751549837314552928179698987147432151236143509353529242579978818124165406296541521727933766984294120486164947519400893594603852710223490111740542686839508289404119733483795952049803364865029868460622082986959813851612124221657178137007089966815431387159271660385460982141221370261858479703528158754670567698849704796377710375082272882309682982803168664788623252805605997142364714081800671819327507051290226179398529141319403667104108935879187153344937229186868656818233344921681576992430068465626963847258679627655460306429730338234585184766908518433728260072928446184340844397836814181396323193084735356035238069629401753285947587317382462282953054128233763102644519737694154947201799531682045189518002068435085596931322211956631941353743432974020687899201495149082220821261914806877642000696950233775173518431949051158462341647915669294018442043873893898050894024228308589644014065441868568246665923383615337574268815009731274088042257191113248006490909150722039766231827573672009401251148845638291213954357519525064391265941750712792392448800067216244278016774073158849663523046143364114135471795739122107600219748165702460279947257120354678312346760783108253257316312696253876745044751833980934266574859378639459542878203049096647927608550355770375870522711744538102255053315255340482044995273348831226985428631919085869018002455428414485517376168080504747154810077921638933342490869976585709473338888791599340986765065702536059601104097133404517852992917009412828991214826470117490821596179944945901536157531585983280897213923415647763104348310793996338466224326458599629137287511476764228176794813802747879011234710430145605816339414914185142418113386436034373609420808626365029814664764451490959362473997390046151175534806628578835215440598786376618765899529829653214197795696501986847281539956240651813841292935636329409637264184307291942672839058319530261802980222636646232717046213248840143014286254050880594087007154945605314079131339053820078361939951959217496358636589890088363586315181562787613337660979699781812695243222468471613320722609591190724946412057912266058337636548238864939386876618268934902954748077264733390884142041659208050917055489788401037268516878735471192321403548826670199203804179377447545520189087277041260856836572970174500178798401420479018280145167415825328713632569436990599898156705658839211167774086775377593568364400801992504680545714139353619714633095047026889522290218384742281323457149478452380945051693960887637787605215408245814741423131090035119174794341093741065149379686012676791004174656207352136461690001343852170657485159930168412829219903601182964073305420718130986888878751450115123623739275710851210601624008959554732787008975384689908116112840566492993822636821495754606453128196550262598674966899359895907279063763740792986687238871015971279584132285727506842446788040669982102820029695975994528674376558779130695108412199327619177220495026760476838148003949370968805008111629881821433825786302467181677745101417470574002523376649128312214735989722449556042422361421814591518788490471282737918554808011954274273847026340453868914115756930087469924866555614549736040581114981818775602255751234602360307683946270391897226114068501156831457183265041192401982166504286061964752063870179168417829123379840945581090920228314505207615168240991915231181090043910249271587393321101203042891722188358536591296733676720804390021176876266373703569729012875322507422789629476554498887943148163983975638205345652156138148757389172194964687169883574456066747895920305717609408314529919983213524526078187153621170296466212150149030038186539037376141577523568127596885562847644667298343505943873320682343852526417686121219862305204279972653354327732665035180075714388738218848018036663451513974288388347188430098694031134762509993118971989715598074901299015691465113831044600539524391375524567562041255295077240768840242203549420930062869477502195188416757645245506185715131770104512600935887752973008354315237381114457827916254504540591822788302966574085524048175870596226321466984415309198277023793448079127503300968489377499991220100247707707199162765369644484509786328937917319273528064772160225216208445960908761977280377466661184663042305437078863918149517088390423546277785481373121001415685950693416368761168906967114765098494021860958930558784112118560280598540800105146352055520610362082349977495963063646490221784927708202785155190530794795790073711392665008817414286824315774613417257155445430267366035215292515849347523930688884342259845577702163138853086563926059251041096705868937864856711244815845033617597266030304668885060209723823746670866231503570777170407304253808149881133128162056278188594160080321968875446914486349023604832949052982799529958459062930081372347892449506213416249477452653367194037420162982830323594700436238086227439502370016379884484525363090063311059283106605201082236406625861773584785588813881350365785357560878283170817115950381502787496114574641325723387608728973231806606328367531590177183732658934296602526301454674419829914650911887425656705213137737938573236728311351355930133894086102679590793509740960952630542293359641095768731823155074431837923100004812602959591900867933598854025952657118607066411653210154219731220797452595539221946423743258084186271505747217784530121395292077354049062581288347433950183222828698924397464983427647580042831777724474532053530038636622968458004464835745499170411082843867871080117989248993021791938363079540561147572133759133794711923433968936694313288235743616998736406124887242022540464462479939059204658495130538361943813617856339769688566147626656861806952863873055703412820977528369087215842519763976348984835335550221544653238696396499817725874450159854237829426789939733211348127254274561447164064699088605630324734986752700388510542368950919852537289111071784449038837328629406467301932340151917951660487419415019818141617042796227897583830795583971096772148248877253551224990069399703945766334761107475403278986700209058352591142548184956089661098565799887720581761126340832038609083304733639121560770044134492866991566439529741472148257421778867388215936657639580528930093679804769210550205607034956796702722977579581209757955898945665958847606506432480422260959677971713233453553801405666924244683769992286166166023841365049083101115124212285370712081592220267487318522218915807370355875702349765807466765833524772894752145021373297671011754917607169821937668210370332837415498958693444453761646678622982004147567064451904528876421943582990099040718298153869511582240408706876276325326553731936080392090343166104456042638096023353620763081877934012267613472835377134119356927589702666159638861416242225313509588697404315144949553208176003063540217767599904900354305618668998366174923018760841419638971580353618818219748626334460431282534108951582744670226733173487673218668950739530388919128798849836822272574949104202980571501176446045459055461026570025918062916012258731669329757861260211743839307999806013789613923285676666360993055285492052206844324254957498201276817796192026325400113097770752636165332200528847736107597715023282640499285010204655218762130217960937856570804450804665048348006262607222822037688442237480390962128381188523507414603205889027114176746680413574270414244434476111697047151495716827778956960009239951061686969720091480557615037354627754830337996308227968899607026005955330030557901404707156247933441680922834251048512092946337874978742485493911769537813677094401223842963504721644989016003897484894602260144360396401896950160100241387861494119011981558238221646639848916583428526052325126425557410094796510024000731852076653803025592787205243807854284138367163292350606393504874823998602478789450629788813673357839554649037186688018365918532459959080742464960320478399970373277660175605872550907310666659284779775754062321721454963393939143879605425436691759361620036455737307385174242797789739938386807819694557859456299353819461280922669885851891247273121612283315716980203429282391485061202406133604665425159251358187882875563252449474318986735885938627917298700104435203153228036147816071472918095665795731212084939099886023772269776716681870161825058405184081386721953170276021193274050907477091329555775927148902088252752403260700662454248776621689321967116626811875776003021689380464095262391284475705170033079861800005479316991493286837837408144389250705823562243166166231509052839702119439808931820945594913443359254452850556350009024217435013123292719598988475811629336062270385261379663087998590168519735852431154242492086862607294247332901143950251686215606038958564077256944098134829732178786777840297714068007307600976175440041708521492758583804412847811730604588249320770188630535544658995983836888298210115217114475331285738398467086950921893413812262183679949666060827712186843761522033804447884859912606943811320918453290243260514152870372611568750707667311577093546601829239298777444384174321467310775820135281757136190190221427537822430119336520725115647917978594120652080779832359953725476113478693872255247246839114623085704778868023946131285056958151319891610746042516518000468201306981819758794173593552254387998285662479780674721485308719952506355302251972528133180432544202752278358614865366435063333134197062024400256375388637367898863013265798886322609028012726245833841256787014628862315097208106106096122130646447614316927893476120690399662251045923052731820106819638911450039138486908595698589729590365446228820183738550967656121015703625459876207776875871746221647717837760507402538976440922018453973686338322853280621308277826147200354386876956279083775289285176601564509110993880357160686195149548443176836264682584174153123888131944122033808999501617992101803998470684014748802253426107977209892521747315628753217814980986636902871142815137213793495516953949174276097326813657712968490182816756369468246070953502972416111437143356446939314094398472476389894414851052622929559647366015171730588275999249774895882424863667069601868651312962807099655219822327100293672888848717562498674664222513618870831076821214431232239246654927898581363467386099750883757612399042150289456424478843519849171148762984559967974992438106471066165976050889197685042740713721216696603698271655881391440445738740915900867408472837179265509715417834290065011581838706829698107645837135396318434944554417683021150953409867554926124613926542673252454531930697615485929507282306830099097429130188033912306033504996152348622888476366086815717736526069057722837842306070461851362863597286804859776314861591061911804769306227415032943214806175460867053560774509307573637426661036275307757150205739865483535013102565316614812353231385879324424997124453079944857384401806703523269550092082491925138383055519253808919479751938701861309344543907307856715077543781858367593051137258803050862249730435778576397985227030457481200767178629030028294178784384384362544642729755784741848874289221888895169014995327996766943589816633623428372084343154982160797864859741196256826399716196465086450331586844742174944400572607562719875721028970319317694071703869655542570860929186900869440280261443589669691405452086858793082454356503609232958405806184953865550877456170227492941905906007478040275009311431565013421253106486747530410676011713789855464942906570003969815403187436135139859764754570825245473429816706480074232359739321638831514805318688697363086686805409570794482498455780737734753112875354140450576914399710959346780847616465762130831021970637909091921033509932639781684396098475560247125157992932102494398947309991043184232085676032858993268415027201253354310496786112481114423366651914039951592751567596294244388953008879076593479098795130247965250133272942394500434469831367770711538419827928513121955056379031733558571662371738609762555671828164828486272976476666487487773401053739391088061345341945463849472147004212973391111139068049214157705765940757157843513790871822663910916850529617035677757052954080689828915798075895547500119690030326956305141678366466659153695239457685759096776566726648056939058348962541858373696176265234073926580547415277819357267191472189844109885514511281283242615119673994721532650350931164030041005557131098309524822701714504994007196794194009671090283273877318982770729619117983245341026918237538570933851216160136305666660903124138847595948618371740339935351046161325283446863539721079592651177246226939362296639883323168554727763453090527637246785491291155534425607978459870242127314081802337651607351552934842327671174461526432945511658371456390364000394090444167932219877464334150420530979405000367376860422303983534229506601259222187261879966252304337818898395185405607212401984195985082826432028853449469859032069176978479492510941659006431567715398769306996967870568036947263531525514043926243991545219183078090437062558642324795659672703595131994758489369211402015320070920035492111842087870189269286382864035045513397845774707170302478494655928766666642443343008463396763810024940332159434452204847398804106813634194056955533231291385591227831260459252696523319988923558577231247970628542422413633455276768738003235630798597822431794855304763540125636714354022698207930165591824455029066758037274548186853059426612634765178799675819625403188344365192085229653859825979113658971053991632960948130712729562271215327142424368139984088785692594927709252347967175696642646007171468087736418276341054468785604004190844696862776384170988852335107449757285021385935654893598649149080596042326062031521779495039056563524182613374635614940850897195692075788504416577880448925594111881992331158846956827719557244657013509508732864829623341430193984383118927702444259104284303859614930355056828190917442769967596779525923671685444031633595243844761542536690580237342899473126941114310490120256540907143677801758902342210154457636379307995862695829529330309072936771247536910594859542709115457524869709657726365513685322705678571264840270984430957167983933210508003592734900638318159661361371471167575009331592394626887002394929111390741094639397999603603290026903113863645308759943570633121673543115530607492001183705993209727122222020576819767379251946833893633485148957071222886090848535874326210954172624780970868375056468078021340288198286612851753742420598737211137474046985223230369367179537704596351807781849188603959280618963424666387103962586744353423572513724345722667101195225092780048531447606003823695024658075895866669962597798391203400869413343656488429402767331950165394203989938326600738425214036793651798804556885701007788208761364321795762709807259702265942486656424062767715865017597498687599964474975774474131003005771552479736788927253312873784949762689897051441016261825349618326570817808956071990729639893239526481410998665889201108610790292598160344529266719071151237705479636968278392075068073202607054458357134864230969158704634610843454540528774947608779220648705709737286090777978888550140181521812995270109276520045269836770469282671728820988864441740386410882574214534188631864907858192219560716072469999848004642002649457820836794633828993475540961868708212217012101766591488929602283601838527631219569367562450648201473337327572959581576334110519448533803668037083003725235761691063133877044682535910917312765472578865797360556270120750983169836025811727845680362333623685591638572622570003568648082763794425346607881705401848880735641468443376274613137307781374734352817595462237266796785643890916645387301250670240822846662133799827564771879359034656862076550711049175039905943606334874117297976584320041795433994313715554821104956406567329035509446676651471542864650869830369187579337161885477306329441409235274742880331136459660335039065606537600473356560727336363571641125681861133068037080190071490725293833320212781463606407645635596916622940406852490883033715736845250669337496545839651836654243855599133869392513547663766090271033585880888782578838771059451402593713804737654178286793625464630004225990514692910780173883521218662757717966964131161596488730175404318399246906550414197174916200655253782707275193197201730929845483854969627472335537639098075083468932255857854746355711718665442645415333643142251251403094700392406234164733851494028943954465122267734473238839354808127982389853386638859379524179929114599327440554563955804541054549159501165644143391082326172535205466205636759291468276893736505129166883436752288548908630368096351181449166789252404765587231034205027344278163303437171332263582016436104937968304978517227250775233394270808822229971771992237594594426541705221192538509252949433128475823049425909537190270095990364903827037342744783326655126531481231691637190422126525281502481096881131578645707880195362576616700938603462928351570306349962233883001950153907717490034062060932645140487564046637192349621173622342727690443711907770418344176190568131361620759597457091808480976993474229413977662051399886479211301983567522929578487414278623840444079767735473887170924122422073739547319716007068111483040678644472736208617638756856892675495924467097965946639390191871550023757129719393923331344250130136306718902908534701069180104285273689344239013067499607585725362585207965595209873940566278093343499805993532365318038849616775045917952156192469907140110182339361730612536114439886221957785425822328533628522451363248539047168179264763244519355506335587620808650647307376838125605034315808645739843653163106560233572997039766382054402770941731911339572985918765219298543899217390231634541958343937833380159827216257948979889844949281597819474427203227108084193511647744630790339074157986789849854444683752349764721050557443135065215002997213564590335107263911329540709048558964988331279731284396350537934328116066231376773388807996841451735825874759702641977767738716025088487768279060941505047628320926706893671795636010886859760270558252273857325970963279371096887165847989496646147921034963226874348417945020490984716377298927619749523082091184904760084550351704023392090926066630374471745821875259545318629342857511055462306924202956488285801978705567260796479964301492206873892061590437835401626687163629523811906695654156484239869321196403100605286340410935861514796848774004376320071554170610689732979216223986715865982628530021094889009035034422824803690584809897721887758378614247322360949509011635190801876689492105980367287401064748308823791028122818996207610895281924524638100005431811860964070196352867816337845164748519043774253084842983611450697197630297948954706838971970610123461727061518100143046082651603965226605284908506478923272449633944958973169355345586387546696366415529894750108023284045392408423572638880588786753725022086021473222007710765921540030730342528294356081139165407156897788875843826166183415983948345364578490472292792155520134892855563813970555440679335014393565054787524644579601785319385744095696177958326816182925714622351850717007178717546647978470271474214204376992234740374163788464180349503130297918116987354995852706854113142112796803332105743722645039630469619081643588773923821044898517812362505940980967485793962573792321136986488818817306098117728405416946956471973795211719484935856704371788617359599723303557823041267975571029001401396192521692831326824985880226499212494719489833137992655997447418840557711371719086352749550845815618186888530130684966907276585964308119014238179494034798459613911368726478136550698354704198356414057837349018357030329460370237652585611798112013233049187938830231353680411961221582214116782760006379934886754271294069759033178855693665292593925083096429496353294312047075502100166614625247662587249071944500710999472008981821896839447218987043523566757174548719992642249737921296766010190340635226967874958181643874197421760480870787413290159597229568550759535902246710965138214796589673349364105634471528372133401802470020179627485794750587815108826717767612170943198753014544042750689610024604430323698328500197382839578326584106300000721631421239051367156648811039964110679632863624853246221277108758651503903130874533094384749471378719015949552342791466359930287430935311437707288706516237000919778362455664565440878975770593328609870422953514472704003341591730757579419814609804526913224949904513060692150364466551009078341534654876967093610590206744927560315304540512927945373997648678201319498937215043480464555642007370819762009839759623808862522607520808668742188164563610835229215726963994106166574524835474003766059448851556397255837756653548457173199004554561755135420236607632578366711628346921910302430357481622450541840722234188054372015456593839933501698911048757620245367702150017774587747469602146502302291404778316955446560334346944454205747252900019734328303764695701266417698049014369207711782052533941274309232667158017245937679021330042519879342625366144124878260895439827910119129642344579502024427140807981099201578841915455709141164643974083839963934515756392360237384849640183886255443096775476486169464740372437088202410517261537098085758142132194809254613417930614577483942258185173879423443203541451615123002580610154764546927428282158693233717957042281879608898593091091527939789007225101464257399121983615233099222682868953007162366083329070874761439228965454629384602823518803926190611977779729044925543058436937755185688356956887736017756550615316696826778074686940861490021287544919908035703551246415584939102296116552070649676531645003079327477902125871551505588209955029041155983214911251016917576537969774914547064004463117914118644590321273295204748253834116286050779433894829097051611638729535986412153694083791942515982505321728771151578684287220009114046290831837887496690005061250745138151594215167026714495238546155356475844621107019603742158732670540114705572819960636636804247410495354763134547699159371082049163933065302110744939741253881846910399567894474228197418551459384965510347465758266296676455533151553191851535020315570389194450702215957218436590495340028825679527039006603027130857389446044178818311349463348634390737881568430473246060010987423654919771763610046612254847100378520792352972764085204720969938128229001645621142954306789807309773092309649937671930863118644550362972758619824748425147975284688868356541201548666835199154489265199959015948106881160359937190914587139622114489213794956726233714061213397719072087691117347346327147542439065014072238109326516053257227930395121698793261766957947388542354405168079614173472751452265258287241435030248171992845712440107570302259539982646180444712467025417129437012722853173997455763160138571833696258419864114174044707955528712131879305625988509329895448386460223813177322052801955692147607860923287278638030837176203783816492009562812224561185782415858400345300602608766468610807792976176766030266085607578241855803422104230191006749042404555212991582684762782889241349238145162027792734682560084219398958368332896324571866933574282652536788095356543217895386145824427595515179992188095460805802148323498917032417511648504026914224840191770652516404094167138182532957107695398475298339680035479414067119935923647817456589636745778468336516455199624940834776743411480395810761689890800115837650116611429322042530327780488428452985827454635464921625291926283793545001712953322857674018276494240827602723013772217684876170433491261274804130845405659029714580353666826045869564451330025750148151580606320973751453184354425487684246399633731377819874326919236223810561504463707596842078801442161294033677794862081657091727825458758212540998649311205895410718205312546691701348548598821245439409939999028576694230234275012922524427343071966781216336236198050015436512105306384246812477617815544702467734904964969815577824694575932865520954681070285048795654906249417570369866300473134647659257108748748381212586687121923447201105049247785896243734567679354781753864019714834440734049140810155106839022570535678586265533139335738873899215154672044935339467267589521227161747785298017251052072886610110027122761735601576812990849790560047804854656274006759993200841211708423312262967605397994843343597501745145963411490946400705328975016282916594552844957617693657618219296903149185713117183582445936262351678752693746125461960254379052907859208287888031118298209457810362125447834858828697989367062886974284483146531082709554516171615319434595928156673347805188033621421566039643251027642993781404953367129395921045090147114788216982601838941252320245881181398917773713910769786197649379001472155195791670305455049020295306360840498743102298317785993225529443586224870864403634180245602363493432413149794251309900681996366130639694418530241506122627552621973448528439744772807806468444043692781239914294881080780912885657772134872879768977109915757565507033085598219618881445193359467420454515028660653233444674685723116183152312224015831520626778386147650826346852726457477244769026883216986749093229925327327709055015524517573181798939747668001738215155060849964518110494063838035124694021032160541290605814840228817489492507690773223425873612012521327840965420511070152810190264962923213696336387117782469274898245747309863483887497121720727175616161140488477947187141619927285485932800601201282764975855551984697605780197956605456891736568359526703264158693476550894022677552437884078702472938395875772045081763592003998441878895045547378664322354056716060065907711560900252209034099046471934016044354697251860017229703062178165038903390140407601435793364924660009398576784450064004025978667520426859429501931313104685487207551919621265283455909751468039410523326295623737758424244086952540218255635187886744473464621985339296650927967247719995684345984262138294424152566316477846256805272056683843584525021408083021397635905609163583053223437375730236740306141536334655190824557569850724106802902070276958041791659552845925686360180638787747823488842567406295419973054818592271124735672985640703343077459887689774807371615958611581806409740808060838017371691876555529931032404970118825350425179039030174241573939929713807897295213522610727104334725688426633406003330414153722258053873403942259407902584172218000018168640233429322018301601195325892834005233768789461564771400523263956470596404444464867935230635764068502451936846545458779376242621368619549314260775994423000281073737256615688583138516946736259185146255766572618345796832796452581919342855659448162847066282544716899995790577532830015906646872236758116418118146381770357906867248719186897798189097318427595862344958926155299163989587134941647500264202988195509413829956688606513857472635913911944035878230287445047946913349739425235526423563929129287266686569710349597405507959771022803906177424074029595807343597212648070209130770909336376226910431990751410639164109857002034184887653994349057290806818660764158740665105924098810049375793963603632956062132927560802222949551639702726054385199150949544543020239446044526684026073439827724049117792817105568018183856287923646218606986279447875631882629646733454878815859256573835604066297940950032783906545934783319271875291008558326785778707637543154595234110501287453326679445488449008836151829175843843388936813581528621684917049395479501977195741899417928862388433526700387417086531212562021705018656697193306956713008586562969784642885396509051604430541706737411383407889525734822244795956666064161265039103076890519013542791782247693695549672297252687815268848003877452167654954171773654455343621825123804842858195046335942544093133664358768799575775274446447047351095452397406964807156552505012517873613008031682805457922137156710314810116270067598132353104477440760858875365057908872049577303124118072463459728423732546190098057420451335102771233411285491582861373307319564024678902464760851528551793996555691458472394997545032439277285898502498307937984127820120065465851421236692096345893577398930233383137092910577649854236944585245146980932178587524419032951562069134403288893320492249919578380998912280989944735319614865662332892388449911710085181625239118155643861077605855180093705846209016957888766424080035958292483768887303553485921406586919015933960792374539486082929463031053771598181748712657290487415724754940041371798942435818742787878841303404480109358592186598631710033818188806789679523418510046590402806132277780537453069289624105531184393999521215896472663871781592972829166887090408839419356167937526946116321037853573022716469272949870567667701200430431750296037919959455917610483317714192199344161412235397068306710131535915058637419813760621920239450069987995646638539267819023236506601420885177408392594420248012035475240361904182337253454674456098679078570965767154623876831794783359200430983969165445598783925486098385369018956962202112996253586667148785858982744618588671619833215064290524938896961890448069046249825013144686079612723345860198649845019035820618572481728588913641788362537570275650033927655391579308495422630147964743131762243862822439175301291026441955942498423854174573366548249424635895643961034102924521174747798799516841464218036577061955280221863439980966460287164348634248097196294411343686822205696954565663740198201981390682414762463714838943803898879618188966160581927561614125310539896768393656631720476565204435417261641455837401607792523892079227116862589050982410610193182077057167987001124917111060910715330204181125063475555565422950179739727118271229389977158531725864454429889643821483900235429013840200181048184432557310101396478392381696420789850186248106583208657792949594471891660910303032471103835852548843511497761415685690315690644981139189302735340572766554792637512019727289213716821710331816723577235612189193120973617531631886649324386180616646756898576218546691960284854150079010505284724789873130681730780146553490364132915743985946823218155499330593498888692492963013589963181554124143793945629835291805023747260316717283405000421338148810990076006086783413176437106608138569944083642999606611679083621658362112330755181175363917836295830962574189034621776895936483560861850680463947990865657581859604990296785104530676565712184121276651143933216430862227351710457162425476072673425216008517333216754163804369866360040633209500969927777022397573258663302524794778414749701967924494879275604666452095136077696690855373344124851641846946871670226889345697816984594374525480205344962692502841257713736109192468185927115435349354459951785692431320099650447193449901477525175372477949357291789787678059357107255246559146392065069450470464475729074521123878150422113975480461132059297666640043297810493385615179349763370795152750202599993735542867178636273708288199524449409387256904356749393269488514906209674737754652843772399302597479769233090475865235792478757269938462986816606582995979303850039667214706983716949232804699192834973895996790417152167421130101042805607060878395195069119400897977067223398862403899164969435254793299655670854720140935284245251614961681440190028890679774415648676300128980960373737087593875669172517990984333755266551749249164526303586883067498292611235468113771442243158706785743894188407421560569224101377536065049130488768948752089662034316414601413891857360584657069468409931130335262174024937936303917876066619174388374557778076127157964087865984718858730033997594756033199863253910174311782545147903477560657589321261313456475108561128125803831116578598857021710378147746208633666487064617859171254790608771142201486917155512810059027502292013121014837778603326871553312901437180000463896149954326658415389490203388265786899467177874830598796068113985611169242359618750474049810918981851635348373347039382619769179994372167221833887175250320653299970553376517363194367674619144569549125525132757598893236291605291462818031645752921681140871566566584719694386134033424246971928144421938659724127166371260795231327401866294201598728829589263553012912438004725494645385676398825479629852105435549764416161436627155806769078966614611395898249475825755989767491699340697211656696762113859388908785657261059444602780320351200843596698453097473395211185450542101744490195649228093955536208245556093176591170285984005244106885785321172936486758819282249388095657372195583565546886432851491847768906989283211500710302653494623147302178350140458856956475351849351936400126914761595779528746976170004921374824851414762727295678372657874579095460633981907627388144329573723511752630824715354237827289507814982564208475917265342851630561269478334882400306329435735946380243393532131124963084270563658530104084039393016037855249642004217442483190377522840155445823879436759591192761746137795018899370981752883294174060114973749362230946150119826350171783085355812253927078818418898142365010267963898684758655386411442435026613848438161483294062831634005440986993524756479353482561690698270675313378366401704639469758019976421882026212382819643322369803047036993108284041503851338537793701857173383145960531456034357176277808877902560316508841755087722964327796731598741450321304506840553619987931330866199790328757057610615982701377943276694891280911679802929307887435513247165718535709365545375319416438444973910251858733298114253200089761306158695150875136851869073528702281155133052101926877179230862211613962796060363023239271951944101109365341909822161759709348415103289398461397659783957451595426504620202302968317593206231747263510204711931028825945154976614422906160506785742830470228807777112365646306736981502116500827298305315665585727624837514615979499524025491497107735008131982734730852796327094667760929781617587896396771737562124589718113056768471449758650515905376122521666986075147615038615055711254063360813654337234001125598137746627470118048011585875005967597822284774442021086427735899580184162779148512459645502424528536918625563225229417445725846651510738103605666487769436857257889680198764399957844374597340126751755497584783032852162472441404211436790406168961778048698741485304932714636083302792521128929980497902888974645494768974801937468824307130490112867503922564725832590335757240391915655982999913160067380101722329355291621001650264178275195266552461389702869323796495601849363276016942770369514657015616908281385069072896644681114333013437235540529579155934704601381495628003383707734117480267957532494165531624329768106842500488334130673239699218752703692678050151593244947863492593521642918675736169089904199604057112192369726623722983960298549412973438989985161156040068452110180947531167645864577706074644825218798460495137730874377174509394541303280721424148393653093524718141825304100484607293964785844442183450032328166156551241806981055027896210384125272632649655471968053684336254690709291391740289251011861516055327792960874115233279677443620328094175165264116624570377619342633015154608076022735025993713736463002551898312323130083136972035035225848541534971264134419523633782853205089152508349960839166965184079528983443404231986233766383988911693746847780024609667999011718665642491751403139476205054168652916339938826597567457334378677175194377776521139625597926495432787733261074327146870946110159601942671469455104442023053405291870585355423837984978453776302808230500155615696706578534676739774774191075017337530437910982985547908088295846002844524776493705266024425228516510581578594097232002025942665922370084301482879955630430243795466128836040533617651111199912555445895018262558584931853039707582065306066113867939864618646914142784739537881893733213238111360075971010131892216110928191423869866972734524520849387620603299583873174655931679259476539225789195812661597475868428701840293905041820264124545451103386670510331701366430977642754682566685012028260005284894206957146865640213825308838222475167570126069950098198128221533163332695872822778590469063870418649093316848982037595130642812959494346860572065205805154755941478765186898398902765042097645623708323312480511952824356532122400615976541365585404225451251099657402448963464706113626481078820774436861684466097325473781649930755577528832965304659564028763984842479422421056084541940166099931348017174223440072337091872305216480836406375492306929487025168426063931670458598902037385853168776770016185420513779840506749660379594439075698711271623476188876938118143778223110320969009988893433383334908424927110758813076753222921021368294948877721556574378526864537212649350093066491280077826139441231587650624062091292241309147507574999566732579772548016435953468431176157191780889614129189165437361161322517277439732682348722154744782016205843356541542987466249952244337254666020971221357286602672122776430413626207202187076970436956709510908989328341196061990582392086504234301327576251493519378270958029916107697592399504775644086165705882214302384934117577399630304382321441296243686030727485665950941319356577044325813835189460232089219206694233797746418469934428837947316485273957770615849475280896412369874779433868584203207075889782289869648792429137588464598797718630975886385310917899079967360824233156627053797130942496815740459228792585233670863926479309663520695539889599989519913286710709810208708738643566568798333160231579804090554050893961285655270003309171528963414521911078392433856734980531724789167848463157274175162913594791127423609019471900307090353948430551429035016649465450128705991217041819966216023726742781293882563042804034949363252694464495675745417942996698877241821917397542989686988741437284965882766651708942311106711181546966200272375609814148827577454669099965238826693316154690109169890446631475451498805223735781213242031850151322277647433362903970375481120140772619564387788102692402548546578999473875071365024256257793692060709471753847826289958420142665635617698599035561552452984217220819828165575791034894826674334405033956422297502429471465611389174270804243600162400747465057864455525304288885911286072619057385181214406836493490794721835847480714725671529593206905254900994704784336730358648606326707615941697723762523522921943218614789219072078326339293943190034421172085589750573886184038004756357022308187717540783835122615414982382235517709925242219602673373408294232472087245362758070817525236357672127878640105378860404100913946522801188062173820018578317759257717816099585010494467948481688379776585920498892056373515224423257425403224467832703156606443179908500041534537715591811227228814805045823865936410258635526441707924453095397904012944045450844619599382435886957179238859223128970915273240119376771645640931469461358446850115730261510063905586473984472478794331344381343277600847048407416407253992343536778710743010862595575072605817973456918905728845558926493755673024134180073447083481332171205460608068159254845951934338750371992772975261749040277651541080115903999135805369175183516205561123342073061096826531681377442105525805441036313875333342356699758436306414040445022458879719087257066069893065808122388905857672249064202543828026718471692186762227380118858711836790128799941946802198883674480798528890504383698534518307149322498368476705840369488777989738453319010499859209537570465270672094645511541735813782537889181968071153999485855004251128388968661643077981099668732302173340281222655837224063535620461458440077725386605197577100239996454415231796606370481490203698786419099711489183030147317637353645408133452170835633440472623004690563485200279397570353637784945292519853129467500530952672713635752530514955554048320197852535710561005049349626893040236801208278007834753862137148188918861312676225247031475094935310924877940876593471418654403749684321846841922309966737725915288866828550215126607825162676320685857097573387790468019397955560352195838639797579193904148804362049154372044322335166706265044606733941960780867267267915698387520346417737431181877834960305745913416803951530844701887022828582901082381433190463528589448599440290623393372479161992292128878573086490833816929092259615641461190347371705290358893716187748092837640219840985336644331645597048839872536458880212759977298678728005463233543010393619117563105248115968052990603772278044328322207381735530266986551050021436544131806199140739197034012739994150397530447943855655217600915523054250731125843359283522497356560527306809401331946242114101137717019088003608922580659945297428348569624690475616200234680146002612861724356750584891501680058114759275428449280232553360687755325009497067734144351683749150649432936565463914726784461790818816672284629452195137395633048308831231421730898522456487496515770259043496421863559756048435748386893017277855403007852284206639532861762523843192447614083013624405549513688572448164673750586464490188442426113892788313723099245052973406351229206947667838009467728400811217774644865309758434593897555152740536596377047135833816098802096189079297217832863873778558283139074085208237419158574149617226890557626005719510130300084193200878837691422658105860179094533110247661662546454814436019801656047351781730870002698219933239285546939239423508178491452929476489470648346731382554539098217568073914888591092429049669712115027536871527728939639078069266304443530247655649885882585047451781819060198841013146154674767353117190123726513338519669143987306465833477761851855301120582870323111873626231616479524588025112462751904569274403638456535123256977695555445219125586722191991516413176391069151092418087092706730956817120013117605240795346373429569182077649489999968313000841685211239704039714936419254536116378929876347794109801569970523720728520569608137688570560926781446308573714939112228205148788298450007081879676984272020403945463450240894300674459448468614802550866485300380257446054640389243398742560923038640001153106027060540473907989427649884635219836284493860057930367859730674807367433883424991484672670960956950823409761084566008877118606908230161858590015862013919534338788398637718878969612237706386606740638369776743951406718881937927383169755058366623670204452221443201059029482973990478526100650400693759416184855958283963587941254743689542039763308948989524566022628322267624642699576448658130552711671220102029463518600194607141876146866779609657581216068638052039376301717814521608437801907081478117702841944085366588133820188093616253633267327342154471972789384895773357234226271175446536309652869120074931104600322963471987897063320847034908714605880658214341160545120779512052892523834548783028399805020157901625550082383741286161367851860570740351447975208433539798952766748722728595618877979978953008418661795917744093879924003396831956001119645404408082438867691655085072232408033075952788528879810324250811640164197140967670588346928384236947615828556075112746815629153105368054084030862844346181778915581458928494415136745337086344659893515855776648307469844425831751232397592908327250617736833982089162614368814954702583649658169348779882620232855834499524965590755968214880053670229852763952419733351094246988119728277158319428226118575018073611459573041681526488595324393848295716248491387975563306489810705239184328001680934322641896713335647254080359641633499181391471659998067387839278380540016590588740376419345250941799095520352457265067757464548591501314678012242171341916132843952076586525600134826126308717129565151332180064710620970651181464280535295867357094514813950814809015452413504820843958242372035034581761337259351481435362674036039508330790245580540672939483683797494795644575793743894190284528294903930724892328636692303451130777984810960765198977281392379513089794156103662646725053182319553893807091539737388344306167719528124011228385473695966527292357497727117013518154874438207059994578480642590542947184430915078155575818131930223331453454771798908178812008308191524125004693029006865550836440269561513636651208262694724130907348044281876965286434344677398793287469154141699728268761736788667687462894253061094983655582776481607620141883003917518033250560667382064290775944949132371289157500139822001056019196018217652620521462219813918546110709192916154742854035780545848825896663028527925023010954369424248972832832425134764665836137773769823099967317861759452838969629478258583574797558352529763057916029342641488988236984257871857747560548851513226480176756725152558256086904678700843023063676679366861247867498348512288967725078535764755534159421269502903255236289921543521435600638378299353267866091314841524334890092881961565239128287659794945571963329484545206647846363300605137845556073445797771187794582705920411903644739389593856870414949751385248789562862039941492845123409860768452875679408834999947559943500265689860726002123716224401127708698053055388063974572898337721838508326212753398844117322548290248692043462177314556146698078144357003780665008342759579088609406076551580183457389878726842158013112039529331794215671004202347678940840592060993651652588566492283040390539705858821268552969993565923513436557657341051651154508241931138112332438173007297135856226509176581598986832832455902369280868787296180673006807490918568196517448009795685969736662745629252850924172758708471324040846160387348645535610839891976196092289404294491290065652860022038969056917437613215740809801899813560860214366282789834545278920031166815596217111892608310459719818777165707003448193137930257430203156883399491682930149466273835301059430058012057380762820070681819780304001535807352065534296730215812271876145548769294292685944444164174300114644749068728650652573128213467744540056335354021355528297128962635412530013204731717828718758476772613880534140832336050846260969433068617868802930782313843822901979949728749168140261318542593876113704894800096422712426566417800278128620216867623749340959039137760365795689978409983506110361168031102940281687361946925939723613129289955519235449148364277199263017613123734961274771929797640269018587812086604398425495802457471380777305165022732594023625436515563593798893548781621561703550291208236754385407549025481655201151198798626078565180358222079112129241366363166071504207588388633050272965011398690142005607859934819932269726170540027415287821184445168860571851880806297616899371869385395417327201638550994968762880736996702200697210282923712863736676355021005855461597288624466352733783610371022892341258623477522796326085256796771633115684579537086769995178939949758785525823462435901342856661393838120750001480196898468989281249922042884613607797090238311854022035830561231230618814343761279448572189142884066436611138667331815253937216520516708128835954660613717992671952127927833138139415606420910374786768264947248556481664013055791331871371504913688922570879379804542736230207459476057068031171030011099578305002889192308269211608258689490615472857939933741157587789490913457418596475556431690861016919662042292733645800291990076171451567622082472581362284570543761032273507554284865679481654145554953784186959201532627829664123140179612064169932032422056665854499515644662425758067290336320378345587574729564125388842499871593497912061250740671425904776090237419396514494380359844363099652172129219701331446975252691372571502622632418205816276216690061798184721771040423806347660434083802606807661137637777279846734629398829745582295029637530937067504111429780854251450328144698090100871398997951980779829780245525432600941454939997142061304076524195316373192560455958462736905838904858713235270263394317517244959218695868364828398208049006194827332845595801045783396976053481914071916418588501098447326057665973081712144154310977985470758354304008079818098957575375694893108406813723552274970700496953801141421672757918834791559696526961544253978621091519317864193038809300801771406888692436761442436791504768711927761149498489078922037126052983765930736534611201806311195758635722441803824669841756134216634608374683648404086144034994033255776879741933880402983339701955526339862649614004843022544150392373365119328193976608057412199844766341714557331468730193011790732849126221448994634538114497050940561400821496644658049373646488685103008659016217583527465472029269498183931990940095619893261512175869084642085122996122809925609782939571557980034948635402416923823480092990688106571466988043437762644724515719663080782784913303399687253864453578299353508114339615800665389635445738748650605817456603266917972271711249724213074089050317470019536570150125246117447405008160894894612434760340141170059762479955266141743625815384948925858020447728083536107430806869456524043953426091806942860013050139874077544914644229016211822602162969477129723281526960405142449693836645248142932481914442303106300227866968879196422769129931560962284801618369978557647034970423984624289405629647608203211373890548892802160682286654447359541968799907086590191588101412946186807148820227736045135288607489886052168187096971821878840138785120848201733062034303805348796554156613859674218485355157948479643808617659580632512898610012859749177820624174328844918722392048807282602898779300627579256044883874339382211612789788750793426558580680863023602016071842548160445861221962081152862086665176825245881276045846773452007954925383907612759930926557961458802960200814770489937409577069941439538099898811846972041927430870940595531052725992812554365615864532525267394692171695852946079808937102744485417281487939897535736680842752145880288444534013729334409452251008839915092918263370478540636158883351676614545910192095211589802321941344489152877500619495735957032190092745860898698474228024061008718766177852420663780933382520205562412008945109738675933485408404608645160278237373881996182698442571825826287772163480796520512315546243295469147556343390298616633041056998713563204789309903158215074298032733881922911790190933525728382470323112729420648742187537617758237329400456895947987302812963041848550890086126167306670998599068167795729259024716827618792916609437703383211929925880990059796967952557466236342290056304273853646955178248165955750399785839324085921172072041209954615080164385536457574868856534429348069131394267666457231487700267723128499289136308294629970078149528149448271645439752514899911531270441860051395295348837942251333859121173621583858992541062719843562352857238909472173164409475672087250656355093830243342479231161496600570169563369923411152593373502511898444940933831507504205972872133663630412698818184598916133909664927781494610990620182210099460163726693639270632419303827002961246144324747166500334774816053041548590125486841522082520522418588604886280002521458528352639107439198266670269468723349331096005229067953772853593891666411294361608314560062007825820000067003640892522263755545595363621294645162145851627187615905367707099198759752400937478358803384235495861899523660412231277855213015486380214099805409460664733399176511745951753719314227294596757501531637918393395585751056555790070808796595401648588144606278542880979587804245452035616427388311005593442475480157449002837731098977114143821988383874282832613675945577724136498644616250329658445998862746264824395938972190881283374734754402254370696263703773815678019597898058245344216745007593699905561922012532771975180104905504473411876617403265073963575992423346081099072934796144410220757858999210455446853501132653040671852820010087443363303158016707769083535682974181083400745898468175478963034395793158541684341891563392380330713646861163086566927907813711928060898457800063888029214720687817155273526862008870170622003756420832806360151550883162126384044465104826186356573370340920242134175840452859220060265013522020759046578428525979530871575055939552035330933863191037762771558784075670806045357211305914887950565607014421471658875796852180106605015751622937807406404406829470262172858010384810563307219767251371897381015891489463389048992425384812210677956024671190683103593653526400855844641029862406937898522593838552765140869240119283287365122517506242881935921625335452957484606425777718091453764656112451405596523220266853923767068815738616575109451850103909930600103559829577882375739644818383503545943759507196439367924781883378630884603023477980056854970296655278869506680184048116289922377678922669284067231588601880898920844861083339078569155429104575969020094939479162090587654447163748193481430621419888797186257625459923977473378048590689720425574936625605628400246735684218135725872183585411212911195300135029078314027426348116052091483705846723985502585193764945705078014392006341679264866056976728581340951815485742305298200187258464463720859276294819830524026850999940389212837761278161983300115777770283237961000558851940903863340585422055629750374770508159312132139344912795145245750344743069191624570699944295894711240931136308282712992365987901066579241273610276894297972001301393456260395869626731939535909188488665071572118834428011650563155114833348499275089013595723118302532437356722642813956105716456249807820260595899172811505739464473755477419072449055867358105941927505467072981174565625240293880273929164126860467249403148641580132124881132667540783734401535804307283861705531911485083748966277747768808198437819154440999452281327129376703502830600033971231687298018346080319315930077510349515386510703645501161466920961997720016740196164952121649906105605977627409262096148899184038035955884564966078588645840765627385369557118145022828428432657928407514794188952424142520407903530413024160979590066311447526921796376695738951548305806935384438624826939959093905846230469314243104905954269362307902770436780763834460547463062360358466851084056960263066920101755903192782641156888545710532387651051484264247661117097406490217684719652765945084263410187156496905949079862155265959528285044976148440493215974089766689612966752525413289197451234881353574271968561675697512397227693837051517038884504212672581528556497058668496156223206767352159694612575962457938338560991533720749911795710531282702816395338285630984447904685193671099301560805676666278200859713636474945764012155647594827251639349791784078237983033872632303280608419731963865388780764244294857455552045195801344278887811787183200907902508020905714651341618085804035844704060516197095463167160498180526891188671440600408138684955423250315123974633032474218676690354271215711245108258991968930007136083574812581501184634313948194253224951328307063175402940011290506437022773710460209349903273155691322290804128037560370900865501018593200151604620227985305906469847543006287723286600449834942090792019853160130911970201283842012443564576816704726539182308510930525367426516755931086405507247698069475548939016909591519201518586911504873686031008192381914531503004557631562833232575072379129204583696053950845195366120634305209904253162233026999785382440963071488075933676941922445402796081327476631949762441379218543799684096505841285282610414119916996182679409865920330173647680802495345389937722591215085806728158871791008762448699321198111874670428908808317700090753079386656332613661157439948673670907424319763536511999329634139711213040614538488537681314527763712341237014180229505106916652269133448897957228155062878569088392595914827634504480027347411104468512050552919511777303519316598567504253968374152597147152567119684961758626165377425867758220453237341198115231709820596262465881420168524093986426644031587463115794945171199183594535288806579013418229703224310911747312056092239707813111635082999313809379565872349296747017258892751233264844805434653317155163806308358685030044745235505191847670329036282602581182557055326984570422471297721190501687414499166954685729365399421337054923541268510124666866741853001578096174372902686806921677388520302395544693364968250354435518819410249346235060786290168578759597192233768699372438262857316073636949692820889004097448769278153733800658309230673621517266432159517024965465548459906906891016059464386502617430351623918576221098286099233411822353224383168106051975699737530285774933811315838499252358839505786959587941991445109491177447441086436541353826677383272655431994056496993126728206362264838895194146611884129843271327288638225408189915663661917456772767888208754363145152963166082909537764657615327292845278520097901901228168696455279152503527214633335738179620312997193385853797176490257657135349395584062505684526889679156741264577741805692726205927672405457756064817256906848906199370624739507845546295899484150230678713190149297597957581905717575640539857323027009234292153436107421481653305038572457902000059637232317984763684216457982665992210621331992670988520314353766376266494413980849652756680315776172965281039880681892644285883987775664806925610944047819531029720872119683814315702390448561977027944183367270790426433783831012980456286296761681994457290240118578684281847500777192536074534633754602452630465270317401448347413204567135535264248300369288274907252389841492983318901186728497601195088232831378682067039436447283495761870341168989464319989839410065251821047561294989365510140555825914882732864063149194903226198093907374018741941744748382852789352228527054012774206272647049462132074103618073871529511166342998702768180519378348581455583695961544552920791623351004513329253016956556139013233715483169270736756598521457465044179286858565907536042966871910751630559417437697940805422540654299292653416703158734407092830924177939591267807143554705394414308855438928825062872275354557658168999426354627482054945705264418287566379726678739268311165213310568924940153055236086599614055727827267995707940671608349196350869376392156169648860511039246998503705268968734401772818643430861806713932168874317749903617745415257121906158179567363297566707813060483815997706029660591777235475172278379173759146975935652942133268638832241605254093754946495024044225857405099105868521361989519772962092046651202666345990311005953380987502959758361522232805157540899625708286299763862191160666161285233427028392144556506660001281004799291864846280063471293416294443147861673381363860037929658367928469857189183407861729749402605520509749089569636869760657047141757507473371022613705369823392845534945587174392875412704760772905597677117122462054054185294413185304685742959049132997484394272402751588659017687095268091425467461913239230981170777115602654849557298552736308786825766226509663349674183056489524216446177319053245854010582812830090823495948011636728831951481180681730648755984465122385957636075929771476774066680272863159038918748166387988908406681143069042564785854307165144531086927478126972079094038749656682922090075559127550054960877923407099415508575588091188732437363021300741725771351996017119752504964215788320263520667946140765094701618076023000159157787948571776368002029088516824723277652216168554678856640513050071619487256197744796042863702199120501814274995280923064548987904995462361530180987464057116004690822051458114908437482826992969598478180627068649961802705405342294589804076130989426429827558449511629063405010839547869491184318958299421555904930942323450588142635930866961383333898618241565797743305065387774264403047174604580076641113848992684371702668802769373218008317436103219072896848900178312643032755008128094755429087702919762850200544497961361491659606975315309988209157798824679884736261817401132452996314900760112069741022858491762974785774157881150776801477239728955887174873058585024768042861099830533182157785518569670184427847872349073778691690423668827050135925170199201414854033952432825335417775157345291367417031182032877100009038895761017440351574235784579635279983490337774463357272774252342015857038487023477946745260305836829040033803730295309557276796246945376991842793176238528502466517893710985590490490447227945128942292179088705273275150159525668435326335959799858522618434676929963176620867184574630666182578733194547058462072926155291814961726247692605479445286465694325543420274665918318046852389357028876976342713683094166883609737220515161334897025706299021101142742672374018999814645889243297161256559585873990410875382414184293757646851451969615018863920816764065983032386765248977755035265624386719041909373280506555980302003431751460000172131980781461951130345791980094240065785511674396997029344835408396624369135870321857178344741784124651379231116970969265985941011113628213303700920558468088238153923875358661659637416167042147791479790992092907824808898765412959286657989437885073282037812823811508210542878554237646287893005277936217235795117835647206217551331404865532051303109331874020583606372365183604347253620679616100387883076891218110868346534390025971944694321668828665313650802304810621199767207842723524200182565373009698390592177325013014609771225691065524059835900324898149954231916854319881325272473487066524666735325292954826893908299439686319335290200255567416138911005483583325654155332887937734911079660577098661274103960694902372346860393139791074012541513545270737666192205499426335256021856569320694725234349075038434757861945492587493287682813454250779009888453978977489604008599873998111205755859122849804060706075414589804655205505095459285968147775750964546406574828120397354975771922116204047778917696659404294634872572367961856086630176715326788367343898694734928202893027260217342247225821271573246725613326994520427375511367580227583419536139192695311394829723852396290402321294838185193266555012641040802390636176953088362046187027407277520052640259757166540692731759542050846046466824496422059834633152895536888806784262266354875538945672080939013442033933055965263686868797015058940437755292625195185167897305893543800062481055876298237883091775478703962218558660629806364392312053950736619476236772524719515354974391847446650480883167882880173652014317616134745089006710975417393217945361331474804726452308032098257729561216342624470475698565125969160215898653862917203821434731417577584747894781901080079382643545027259434294352665297412978472582521923082784366391052083001000463355336600973508839992225589164352961708004364736977513734818522206504268272952548790315700151791098023636936227407727346892158853688247587950643635193625767625263234977548368958226075881773753555863646401353740867767714864967724177479751521677065957201625183677042483741066459172252023215610280300498154065944700579047831484737434045152254208713004541829797973514430809786521510616497093134695291194337947977754215674159063412429381413264650321510356230816774491075099302135687461854812881102474595543080565888623143272741582065507953579948182152711630132558782164576391591021321385682467949417426654712947200970402212649924576000616051790495799430714825150906239087113678620161825549438231420232829106141674004442991056898244060205309055036916746314982002501297914306350704596842496333227484659547613612894532977052321170352621741220819091192297222377734154126096404351459957695731195101102774711518464344105787279720749764262005311876960907251616334011223443006342759422367612919670172570795157222426673638211838929762622906694683229239041019590401251020650962699728296959537858909519293801612171146320912277022238064588513828662049939395855546436602200816552657605598599242024412107617500194717034562543867541303650159082285477758031288425891448425089042169953355186547135250780059254975699803514358558885668324218905563411159072754357647961992098907302203303543508382302986614425504071318244746477310291858019037927287505862345032315448290279837189226693934755025716572380076444442480979497441703238081907538369801363460132961136409479348873469871414033018231120371538830622510941078519089405178082506253184473030096022181249931295503535509949755382103623306152649879378127435475865930014165208492924854707004754319248945017002233166020584621910095500178104985146284058219940159945250232497237844488535629300770190869428007316741536085658411479695510644238731884852551438147355110009448114730619638625538691936361013995591127706500806234181908217707084457769384031315628051930327064608349431760373621048219998165437478400443402303134027458471701893559845935364247281471866744712154936165352288119543119637141443707698975297328942100571868977994809656240373017933352605013179388496915032551026130674205955159452094919030291381127920499634495269004945753862482349164642161777119458580324211438349870036652314146186139719478974773386244972729384879335528717320706340155101679497146114261557276387266778407991973123341038376575972221055534365831060978972312820400841409246004628293402881475015502983557869935398472105566880679971996367534066006769753275566386141955312020105271830758901024819523017144736282590057301437087931719221716253191423139444441436978861132919069008299983071707682578359899003818934409561541052816529074790216040837698983373291488074978728266435775174590398184450735737291451401610426746882508029480286649748195582513007900596058034997238459685276836244806795393711789725226430324037990799958790183595147979421666937771298881905083414696450579548934661366965627075356113309417432003319148220225778503375453559216341853014939028281303444452800724626154398790407084561995360688530757812756599237943572880026667360784836053169310337953611213697516177155235361102699735806168231800251347206208156386075780575141048478364217834569812290739907455122575469709560369686711194676788596092070644672846281671165189555553622326552928327745750259204068080423059991225006705970139126340032723516526590396428444502910902426500167256932923989435171800778289272378624432401078988017606087515036985054850368542607291411798541350449776305891541174260212383636654611830160426423550119544246101398993458833208118828305415365576642488886813948928336960121745790107127184024144454819478077935465062699218613633254923248132465561831342769897046140352641776847363399942874342606217453920433486638355827355180078631688703729400732262182841889546928600894446790499589400239349800834330806585032314305326218824286602530509366989258320840193137240395073848220993023716154682217765061537728662257901346881032881607795201601783620282221930260160165680355485809006469541101821504080133390533259602765458135419975236240620162398145215008633213210180363985351244143355302859252332646240205404177338838732730592309758891093456250387779067288546714790392132622497823288840659884036237166348003627501264758038245491463949309377254646641394715071561936595911161907106850469171114878258482553944295333269933850529194884663956704790367620018484864555461238037815522815366823857122115805092023978164254877789558610834042752477870612037042671247716139595786294128751488757770017153442402460255991141573722044872992982865608479520336315655479802627487947002779627826640323706984177872293595631930058898041725832337323940222294063173416275945826785815649602322165698888031187348267689796943502700373926153601268101502740508523231610960178507363977481139885503544278439744563997363110232960922532848934783361194677496354137572786600363240293728076446771103573699846341889094227897139618535553284432240467046285989309676761510212238382557227885601287361306116001882551593471874485439981499334714581611607697849763131736255723836995995659661430525514146713323163129833494150407868052683706230915464201736335930863959797199659921488884297667684732790963238874318429220870606333565631760795699665215007142125916504485342821034745203165568346326990547734319698306011303718886686386822679991988531464043016063751415868200256311727854264974876398136231915562593211069626341416313085783055685442295504849097203530753093857554042368578520268142010958581172654070196846978859359264024342620398422447746798378801214726216312313905555359128637227130880618582197598749852450288129775497070547295936723275124957462440590896355913884051619682117469290289205312574707309304569931819081920492832985259005604336722826695350355649593328887694648277670963370078077191882126818924979569333570715365247227761227493853608965437541469625922775322001721759231746333767724218429513186279032415138017759619963735602853489854134129740742889688125483708331604937585070809206054580105039004199268872079104457467999838515873404454088681126323799084783727021505898544638117207608289616336097347110273314543840249548562687189263230043907493789367883468599024356439312556427842724825492062492773137231057257762998281101825009621945039443731127231712051939388157656473283411038771625667317544270528659066264620803580751528459066080342242694896175766466240877311790381597343080651377851982125130341476580225968218977947996130554319324709530659265412794742576642337946631172868474059108669336747759161432301065937410778739659023608106380775569028863664382090931281948328201841850974173534924885722100268133203117472375287943138180792550878971991229793441811586577498786842602228431194415830870128344795379628465586342778130615800280699539717926635324690763850389189363159105467527853116332252052046184422403228019074205831263299066764600871019377563012871268068048786511535520366901410307975789076301997423085543468287951877345147898491992669378349227467165687729203853473477774191312942425775873334675024636229064278214593100129413966209158911849720419666815026142841811922857223841598932115107951337625401964192703902612328178182845204683369282951312341143437490144245875978895662125988198946852115041160670338787447219470377206685573891725956309820862408662783603894057085916932389353580817315267212994423529440191034472336754230750877945843895419443667425212013503766123227369590812225358925931187332998198397738133961475610548723265085590534540267224319575877490543881731774729330624100313619843880843178914021765443078718331939774051605606634168567518129072155171320996865552139777133417053462836072018890544880387824727659234770348883677897607068166842367882950147175157808571825066090847187370394790789468465659055680062542121782256952659700619968484076171127799627110320377318794336029069823284870557492227385778823915775835817511113370918373991421569136601596450290732574145404290008424860769870596342158198388275940673181699282681180346669560352235839006867694792866575792181706827468039075957224578141002629490112679586748003191776659466314304053057402281484125872730299965216760212667050620285484693295641157411496816843677743065318832862125526589119667186753602352480803239628036581802367149439393842052675247836445922628429296784008941779077800274628343391312450131009009689408920264254667983975088858880770603508925260931117460534899352621473963622086460382136993770949816345959747588598866420619591539182871117376476356005341857165603056259392656258112207361712791137412902137746497523867248488254008384317704545926240604852951694463188205694487463443827915254226610794583909617425019980253457681815780817237972815319206655743420237178978201365752819754448624218455420230853467980518251272315399286927247393570747078704772942725509326636199706378235526313887383796140838815213219549516818773310240223480776239642378491926116256612467801817500584884474334180949175190621318343193395066945370923038075873733901936895800972612282481430897327093609874347257149760687407042584855377483422832327953449861464405825930115995005774572433740635315694111433051897716267028845610952608514066781814403947760722876540756848853219053915933188544809590548448553399330734469858480508009528615078672653205205421342364519155317377748570173124287259911735556582944093311862955863121360214807890312551298783289946390713907641671971572492106705609134554166040626368879700038696749991605302975982972393538772831079121955839488544589113675433197675519152975883831489352624670810407284358830162164691076226900180330515237452927027358781711494664331035648095484281771900908263156001184666869539942350989098611813442597310477909781575937722461244726062307530464595232308786177246472516270173725888008885516539251552930301362628766548443409933566806352042991204093613852842347977663920259590568608470442895390896930266419800194982636266471159788757856087067042947637662182802357434628948500986858867832970809613465724779826546641585415883183492985823776067214544846105081396553220741413618295953441732413321858841509294703058397838979374922110117025408159735072087898970677384643258353173480839653806607502587781588217808737459416076471935352360208524453775468571249324151527641196688027072603118530904255540238351684475744002405092156369450376181242314969023781112102547826244406481175505010981165066311037249919532629365403632489198993202801478509820202790867945474005720575348679544428556167338878326798863348212329881990036431834974056921521747017152402791184558631062322345278108461903445913410682309340592847225019974629645946908735571963021321499979748309479694267865647152707826718888926691632210991531623314291935901715911109309264712449162405666196716086419965299946004640119146610565577381132485548381492953537747180771779459141466166855198399771511789329482934572792303234152508976024921804362348856814876397819828653872433876684858698576154918260473209631800837485173460251469512722424351346961174628674887494569224009709674406923478542122193653431018156497811733162562154678057010795140537345152313622695035449174735411779111134778153444886798901441072626267876707246751842606941274779888335442859111345254900467883892039324500275619802779692941527419160632147190158155923603572764358947741056578205980354825365935622509671950095264233485635983017078520716774260127519635924159066670337274082336047748239680445912624874483232946247371917673371805413208448039698219563389675595957344974050751300845572573872342998971741619272808093881097122077581820555273250166889946367764607833174631811469094074161360367148282109455925303940494344058306486335207456255242917049504891569524427015526661804756305714512574992743689043306204718891045070334144240593734677408646355393591169194188602042278117338890541395884635726554366738052944804359368413223956925689027114028522320346346957386181115843781395825202423143805313283340199678549916987354737168805517653454213316134495672953365185053529733494013424724822240820398813184634508258041794363494597245315179371506147997712495071326076936004903898910516624043760552287225227251354268232078150425972208361844509185787765781398468841114251799008983603586950717968470747227722586973989229569306500225409624382341616538468437817552264572202435499843604541601241323348841588756093048396772328459448052798912511920056733147894696304875028248833783134964776306850154751845125367300239036844412541375330096501120612125430302800357199490993687271598277760970923623491424781584940831501686166242138109003941423199406872177729207284163617981468673253463732752043631157013210899301640280535604647383484213653637302718976652577108259211406695472710159195088144757664377976159177363428079447029892769256621022333674177982921590586109453894106615899490917205950221580525892370422272378977556450178737488850567258360933891684848080900925091767674778593945183651004834616342772442177136540566894784582348134719752889183807370498046840862349725967832738947835661395485089895238734208696356061968416378103620819216037028043226330796797491186581142385081038518099008431636818505080011568455969273515898934962142910347037888115306825370575760245661271591220396580235167491408286533502223403043636541182190132318807506738082735284942916240580593201644395344991230381523859721545435651423277387677853034450051315498312247976750827330390103658074487467180782169909588389145841137427549279008894544391672771894859348418756599940671451213674786283575031643822095447190774048625667373780736287748885244743266000852719690790051898602099562632254365955844031690571723364911242810850077384944075417560709037798019127211630566087058658566440650095713910692969063588707223604619060895353585210971483606653098468686850197410421769405755608652112284932121219900563594710632134563368060733434714878647501865318186045359140261734355641587027486242036380186597455424270871761290022090763511154672653890732978630722989112905322748241970194148792761712336840760345228549592955812548479271445302792901595291756368198632241483361889683257572505526028103767304325748750654332344963814407978227689818065122717485898574168011627206328938075908088723225859926611470225217173329462924881604015945676434328050732021310976753608777842408583861958171105020756671823300468128736253863275224642397217474683423328396284987867807746618738396369799057694975321932005879374020654748352900883806472272327447056218799896532795209528431407398324421227200669774385509328962385873142641441038476736910980954911425753046996809234651549128767875019322885009369925313738849170643884713939984938429520418272633577585788300793651380955482199377050901956850047666290749977205847977006031979331167616224485581621828758035890778229722611055590902186666837053062088533722951310427138836341036473716617578810189207194828984689877555197177545760373798370945415316128639213368620245757875262446665636196426022556109114596421358838132575988092652995122075737616765295938599266462587984249059156792980826239001324879679254973367580491594355554972223602564739011120997981147237407600235086574210284151309533977076788618578551607034861727264140692665971671687249093997926880414956677465785220744292309802436821262749832795315338738808957611553659683620777714822179283299921238338883615618803719800752646685383651211267934598922074704241706627243125653150928415200078168982067810340035205333421607290290191334398738303425126832812630589073155745128042011722071264732653234269252758031191078373592458318767687934032963289546806181742222007686652737276564872205979498824221054132649219109547475157211771733748315145023598253736305153254785828408569978136161440105321205411115121589337994704481911869577658604861180164868891855171899727377429839237567362287924725258215592153833504486332470043338941127155327580298850701940121040713548676197361381631331725824498622484404959156599720546669052865064198266383195877263894049467396155089629201049807046234461602397357712627509012318890170798005960322100042338366081859730215165771904477049595356600613302398970726121204187114648358749587698925677896252364393911836814226195635300578197567646657069425315051876210351107682886492326494374637728623056989639495436037809454344267843304471962624608339723321973945995920229930727652869793748082206552443831084581789226469991139994989244615057137750215896185000010758358641101414236006492894839865867053352390835812779673918520998770328694592269380261883065563625701319960151704103910603053441189599777692362505942882054879896238359869872762308589984749042543799291847574635499891754712497370193042735631608990486210062909962092351461799924447328330522728553531672316833446623355530997950661227184276557345010382608936065204840496398183128073223181280167671182098785442376664139439177083306275934587174042957345233231384271245571764214695656394965924119811457090192726097804003360776739370400209866392486019655069387222806608343225858142796985712950849362096942414593122649992965954902890876315277100267357227173882542254624831299746744915441466382682397859728743662774696359855946104010708024521372918977603926233941055132380132270298347222710309250065085142150162504805100485688112462527420466983030773482563395201389836806165673444394903143391098475154692259990215909528390777983341149644431095210015913486667726365556060709321660842008402097007863295054583087072304645433546157356383852261828045019975632564905968073000232313085217196325246482340602311005201174078983291812131310001294098716808426015271214697607151614446639024873044814193414081265724002939290727868985457022532096065741757329583797222216980462098485377897588744991631319925745508247407917126221063360445413746799770940402144834177046296446243918159849908123356312415211916794438758971038009749500827001897997098135018805061187065237261901959014593601836132076931198192195167932904860831748846122088242611230325191347167258804028753134000835306463542197308042974719916884054964289979435303522099869595908838581026111945812557862634412051293868662932072850409754515492436508403938498164725474495210871645101838308150864335603074583613392017118291162257671335576565803239154759034421077944195295591946661163884212031515918229249406321647858523751268656115069356920158903647993719606025868118160060063957926427730416076516762391218529291973070940895886605594238331971005903333683271401919342062657773733493441550274497128756174248996733408372272647413451306962393571513183633333264261472203213811954469529101420509290937245863024142605938304350823075541209423882105420028616518345014410895316623912487847043484721899750693951615168038883095729532629606331224631493421272543089619281941636057508225488645150785564443795939399231097619334455007676046753954682316715567795558308899155977497897843583257987492063107712536425232121464297309050144681855884723961685555772442755090630318252290575286364112862707630886555646287020622377056492062674339060090388032053884618978169763963020122616762992061422217087169592689759462530103257154037877580259667335870659856193966924888089846645383695528032368477680851695445762811517661236939842142093414123322726177069520452053772268723374748568952061535429073300281768608196701813830054345413875293836663133260890788638787174196686946205594152763825805693290699624521465201371148511707359100771113346706373463562654549857210638471531618653766857840877160559534002642367786084062735691673621622345509549776605586718444956942388655864284587551636689596672856385543956642634062829159005734932688960472055066892122035683967891060391268316804759052791393291760788097295905417803526672829605155322852291212911203563828043292670600954432299242424079912641466915224371218120085837933613980247775550323455705600249481287962040385185898864952363800653049131493170634022504108026101089931417282206549414525192508884893600298964637718333162572868180609073634033451574209528539319558239923199584522366523315088008665208351948973000942581844979002644079068821948739533513335526672422961521542338408544329045334794766866842677812873813194973001676713283452338247860592209726554424910267015277192265139517982893036027469402615010625217891428585326829997342227738547569770281622196807531412277796404126417982915553287380983427268126448171748084829967811469210761463307023525378446478356947036261214347032350740848020962033228049484980767364095318847247163587576122400655471976965216270341482061418579092094121857707842495366424223148531199324441510874818565231195656855801554285097274713192698068487233223798400704184582716404618427154169587848832835381182423835157282743930736246428185896393504022646233530813037165837111546447194806113826502707439554252058287578861910167213784047300507520007001221235862164944064274984042419475398281212957121338596543743659882185226088963536620102314057235297904534565235535964232239478491191299736306159210749975526526572585751448807020619142688123613553236138347800635116110813216575085294191891789009203166325943481768441282086516464652040213540039709538076188674711115329234599545808614262924358155512495903082697537421939574518863012634168395406726890523826667368875037174024364535989491306947746196376714541059239453254852946535342135357201172701641580740555493120559283367582662870353551205881942362749444051656627507090022472226585946217061963619967350946037194559392888649002367091967820538428131789671171236452290067722622009570342202138758639330628660614613954519188996864035887300696913337763231056368209510272414805940712176454514794002039364882367981531051360296924917534244829048377798936028087774587171994158425943888222556201229694777273067374981038071772869331311338381791202439435320736691156918394889389305528951090390012291625252546304468814392008348118438247071647140402209493167713957832662959982418187782519161203570950911885928321058459130024025218592704705895253094475804796896802117490612133113592333187773024441063857950196114984199287220559928030937712182762176191345112321881039032158700922607841854366772983722532646664328704363432426010731025146435705080962979170868486375914779477700021499732788175060006445875438968878465487318502941104235174432131719194073458465392291565396027475907206644636219106752052439336471470303144650765851057906323705926979197217227567418058671836094793430334867165482801880228646990922772957023036472355044912038372701119841302079860808666075165842843046604822721706084879210021129215406037787044015268329241360166765449479819776840629516786057193748441112384893319849078726038882112271235540601902034077599199452397715275015143468895574992957808178166032190069799154017280052085489683219759442046129066734607969769795872559929251353067204168318576648840244478752005152464211722566323729500819973575266704650312549081962868076935255539464558910486624979395500007332945099603778575610286140582955644094249389889275203655511166835387397466081830017425827264297197741895080908503350353691981929722598557960736346944033385780517759610795223573993476877689061631394678138795629182382610912842370510922006912293476794918367442962687802295258900157324977705418731941901469703391044287748869492465935425645752091506835557813392870432961364316594774998837632219563175328810365063287548603975768186549246376962347305445648048947860944816620469646163665094239912838239174596127497940927022128424090875843274907643301866800671484892497426885776591445645911548373584109225327311913293929476837616941857806795282320972130659137548619014913015837445189082844244053957688125711544494665210292035717572403055876546630670923944347453997677520793630285590277982620314770457383352685829474688141233148035289485402904882639065597841671687012143513149164946726352256806059394472233408364476815772800241846569600610416918089486904859433840384324066694365088206908638586233908361445004845734678437613414131498683170062218384486727884291639310151560936754357100201797003006743999787413147202218780598948281752461973070188692606999305900705022922331316305967515594936457897787976830309797167332171806604382857416104192520369969476850372487014589049315434509171922631270241484713202722495168148820462023426592098871683664983546750171139189394228973402496497369760450968271641560355542010082825066880860588756131671861033124057685387712955901130862682947179555823548936733743559533995915441939500064935042525511231199405398431232809838471803170425481182008703341896763731967143854358733651694834989258022132757197426672153333457464523381729085174038551275420622919338101943928287329050254281643816419074414424472600535819408567125405942604081394184257500257425528088379486184360315498770505748000462307697050424975383808641780504543039798456586914772119275151050967223421983782970822155029080620631548507999693979102270535908920474405278382716883061730295447160845273925669088095673438045924149965446842619928094320782403876745329940798501912912266567880877347968787753439458235442159333284694391880630619706168072547237886225977594429212395951273857015372006272245052364959632436754145511304121397294622647493736096951641159175572559143626493561986142512022919804152349379190932075698548088024117417410959686953130181030128352251454123141322536770028541096969381621659970999120512469735595630208719876363502418626994034089285699820234192196025560965661299080770117633705314670796112477766931909985877000784190379607638901537696720359001125833429933986502937837097736564031409199215663707405378118858410383893777836100897395656540733310967420205854092179720273136810356638795224872388879916403742785936558895045768701799011105101116614326689116081174438250642702687133075991520521737014321033711536861708574110164221408571799754655971181270251173944325072797515885920344227375828997048870738383923427153719848960144127180801867244387975406432719194221657104919788951859095551684840077606545875462240882093884101893011160768601786240229642449752879302592897675188336462950331631198033472152924903183298443283778675843975027335348191177949640264529152539401326942627207208497328341757914130404504603776445673951211427046949822848086059298026096215980224333959148149845843335408080844704987165166236592433229621135441228458052947050309165559070029103902270022502996926511433615384524190544922377873233203136977308536584959443865791790425005240442177842200256163885164200609570035915036915248836309215342360106914109768485298903871893061459092607422423632847287935636699226643593164620742181140168267698520553120002287435594723047755468331327540953398869416109034840179443044846306943581196962607313103359654868780791553905244355334233257929602666605946563882994068130319633065021617159698366329908870552315265404729770889812757644954388808126069825004107521147692756385177778697547605000323134659569218516672629202250604650645444998779962113725777274490478498572499876720906524600801098461666311019141019784167143135358936594726488259566788384480791092753378962831718618620216497410962832754304134458720837877876068157176685175545015391443080708891139757423015667582337064934017641955559005064129633017380438775551701757439792696178252589494521261844939072771153162715856302485705764598197585928227770878641773667226987090444819343205550798793157315381470712767925927829203643203136372353806058286069284300959458060093188588781762278427804165598059579877447097114072559396350154772693122402062686995164066017981115516918386627424931456596248046028814023554777347230500461071089893355246174575008452778064312554647473534570158923067034779070855830325025020199344240745179295710479880161843405835982396034854279496954779460296923803204923360322437387247928422803905655275897132474409135678987133790637950661994708781037142913453325952782778128360566454429257550887575770896359628579067311183093698557938834192112525463134300757781919571243881970469834807599146656633310146958517917330907903087920801455354020498205199270120282688252485995450339604188424138323997918699044920589816459935460553803189641163556851131936600914461186555256448658903188041411021148760896782627091119198504204265764343112403117508891659104669179270982799138455761386536447003347464412898478840595730943415273383808535499539464613651353764108384835765594008752512750036450335436762638244077908741287366214577635138547270292047934924002412045456247346438153183208550378379974747221056342186847002820797915888088620331219462200450161365030045954423700000821024119478912505628812691230311729530014722017667660574979287478464541148234780564508880137563421120952525286819273256112911960160737565190921225377310102736061556386471982472224360317299802495718352491862656611901493696152908344044957295401787320283060367965603380123244141201622651577789942505747800474965007011280087068825687472977768194806560704398141629183808643714676052674897387366580912948349938351345929074629684052147193683976791513410623502025950657236844436299800656123457953030675718102522485618718392558396061190360527043868747160665503873222671651253823941449811311144877086769328569773640619028611626134151669892230111095667462540479103060065033409642883579451779646947142481536322356697903590894931215813945550071272985370707162137748516886843799940810637638798365254760280892306943333618386993941560985151873779355124525768231945035927000981468157068497994422338745945966648831070800934801812689324545427394508110860662251951019264207450316269868028774627613644435252162452379495697250830353811575004230279010183992731445308964493266206776671821374728032644555505698351708563612500130694624412307864465244401855235776711651936577417651208599201103492714865257922498272857592061275619821671042879172373434939163100962906983978604177481959524221503504318855268394890189713404128718312345972337969337355947156728865203074432471059397446481863992050162027355350916030618795020673392609239026572690625281740856096811476883674438771953291084399007221343803791447800478496354426006084626193441296828011614998114052783051721702372481217096013841436203488291515559119774451952787590803472766551347498472261555917081371047113906484262081052371311446738887389437445278748205910946697802396646995266649169870118245054423209838203353818482630548735345886631106342465900937763857029936388367206113326359569113027491272292432032040010736528544537819199959024233294635372458806142237758825688957089437633269430814088164919201613214540978733741837094661112813617639342510482286382540875668544967187437556307628789561060621016407583089330657171721697185382461009717876470622237851980858619741368900099906631547625972568713250452127859075600212226006848467672176089260837557477765697745333483129281919720933955285390635006947381505768535789373950952596785712777343428950576786428622424822234531979318189863336334600871740982462259680118818835985838873430471583010457879031534937804582812582291603841757012370362086562270267452967181913994456445176039718091734427025522234368505280265673988837598759930405833028171710286644236870861137415528028544541663243937316552376506719124830600640201843503579718043010490900261751507727822027412936660933548487874072649936205684119241816705937169279327798992901050631079874911360948064532650509493063156012030500795698230220357073297927605530277176791107977319149250979690432096473846562156930486596367760798567060496982460193243243403521183103918153780034035821118003653332194545297301568571998119987290094032815568557550227450870974039368977637865838028788983357552408513032750545904166262806522923578543510731168748267359976774500875012734450258046516076762746648183991970499838079782406987599144843150598372224635867040327197329991522156829638510131901197907354302716202244547532407848304897057963739674467755228638899099999899465282759198850414866126256517400663390266265887250432876843546739727646298024354504257318909453133180915130979333842114009720941251257711118261317047853455387695306899916713177111914383200614869048708681944412727231326118391306849489311427369445650204026125285992453705476779948780857008790981122599905401908876991781881488105208775149362511851645376916180199838965799648595288948524193237464488135332521640828591250662372914675864794725250505704323016199276982397115765461924220697348136923894481637674052105771691176262702676895517882394880762488285290150340168615610395669745280315046356084851492732876019105256428520403067067250663192378814388089833350236422500939034340401689991988163730721294463073492622325086603178679528583117641669315038052928025079110712857856022724266888419403771647847146740045508564519533869246275315643108746564816417681619859473788987362536532892385062907096085537384146604794292959572378807959781818904796370091721914751381912430593363022856285539756904135660311098161225871689420757091271307056033900449017067975789965250757915636171435544331657386621564313663854667633496928258071663001707996521044436884980416659925871296102802972270676931926995114104758977621644775902105121909643111348188690051302206879525321136077091242576686358611079794855572219223010937658475072179518223262764474872473358444421318226466419693856792699876531945737001523541117712693155079975811417805177398797549731417122003292107909072982828730916649848377496572294970138699128238194057305460495133482062339067089333398980813505557523234669267577597819419728353482892377446878492075642863295681445941000671946132865765887625903330356969800854207835497279903021246679536605764944763471709245839822473703017837096054620287181666582529311503072740709511367614096665543719524995381867686731458919307558828015801804420149645737955022493217372951912687935812554539675278274307305029641221628577676676876095363104768163530304794751877728191966692001769487313902980198644914281333483560061285760760450960160333059387113172605867821422005371647580653679042448500231088887072366667663880758386359766609270019186379909685662534828023509052090927493460800651274979648946365325152038753497713477687570417444069008877050798608348803547838928944844930691155903183286166842255485717724766755415254871784703475082702220660684885031095140038981396265618280444082801436054960167836960484653138836075250683089015539166026301492984923362583086462808964970604000898649445036983957497756874635362461626201686360384997651482765103927131201907616876304347205771700243672899447297770157813899933465879035490027335147959109612608712983170560838996571078186402123274564175237027228892208631543186125449842208607769429914628638295716111503174870155950080335872345283893211790913404981512043857676711227866236427540760065670319208561038991435736200654277631417840599827778629335365406954803470328948621826698970078060128592898957264414678197760426186934769319188428711660715017895166583271577472752199217605053083944793747101678675886949314975635476274071505603062388954947688400407750090825563781980361922840151437005474356471593572457681767024167138647254458061386976875299951443246719992115621774142430186745845413846516564125587931402014362396649381129952687864731330341757824895365073319558704496163347943247564638601845594876008568924027343300080069776775116911269893168612480179162661224737833736935790721633149302822356456249243944008615392299065367766604783506870383494381803905145736059268078161386106349693804787667650701186271920307240731198015687145829604132877179292645525772235478235808537741236090860521011577350029209416337558393661275281667415196753364992829026692268280043764575131878801671874022557090280054180726618015738008255068578407758800619912203583157775771244379671961171914270385897803553099452990575832447736601541394729976480118718780985679528658232692526282493079277934064809754456470326053278238715827953089367985296411139626660962307023494253752131876885466684962423006666281382228888006927934899467590806079067930049767649447331306921284818672938624914000310028060363774800628036976156142655670460168083744269793559186881167891198872689803635917467641223354217613511889758686060266964212123135893168755039048705379919286850107674804674428665258052374880966822994304417142523497596920708601359609983915430694309365325267536514470997653820340960130306826889230016156524862124095923466873350303512184221002367032522596539345015224525972250193631932035258240608134385605876162455757979162787617736931001287984299178273902042518962203638277868686763479023336843648450234060001600254805955114811215932697550655969272033898549352455343589449199989710370538388567634956885993972928010848434762461470074202475217015149397531082097055767319611259163653466365568595380448481705020818338954793642424711667753360274418440849640140454404324852281710406497659576568931996093392907827558521700219545676308323714317370305627426113015815322348681840437591175523301394159249573541340377594983498726302235737807922641497993508133203245089951791395081055647063191290475606688655888570211818003479343370824536241237125783145774594108149039791715938220889810198561167269183780988432137439322350726230109484462639443300636063235034727564582570876154601503889722936612766797807859023487822155592321588538751183126615916798292104314212556169833384722309765080193284086571994477364799516788172271762005647503295677584980450451429290336217242584539833121035326068094422973451901422747420669670937017527806957825549495058856313651324931113021440534223689261403439308844656588999275964854236870974758169944846398365308908735197232008438264464666606589537750591972693079241563609343675955982642625092840491392573249260794265434885327117600337581916391387509950684832855564622107188640321985705555249046236518486149203125876544367600828130726145975840553876465167087753391166560846393416264801749047445869007690295188984664852615596186767588695563152047382738131294742147718012714983581452364021460044413033837740704442601625842362472168438984037411230358697516777833451647512915156672699864142469010925160927423139886258653864675290578456938391333659938876254175833975766839249523016932808951374568266818090713424033399070319659329376610691910876311284965516630002344380434516379446802654782590582568518735887372429423046642717662557193331499390506797713569901131677779582689552868196669721267507118538762924725768269154917286232580696847387251036501686191967706229378463705054839649237220565810803750196630644564997025062756320295950655007345637161052117292565505290816698108035022464811142381449023012734941485779695753926283848228745125161592092636694015196960664438032986492630792283313059924040217560047502780525690023482097774840810093335612657405028622402422391462784017695855734989888166748644198786711559791818769795837259914377643124930809861371379386857369510058492340019339642384988333762009878116887893928480283448000681143129991128667719963007264822036544700093103362249798918240600027271284673719171173962660329057960862891394161585989660541458819934269050314977657775017287319347762329249773619630605810924225269026700738207771957165413068805443773945687565456420069621330879298480454978354577892966026003049168970689455604797005659934844376196200456271666088134965327007114118243128661841735984584176112376263404988874952522348693627912504401413250219497466314374353185999688276359983272055781173332580774253756676645019210806831507334768741683265501393295451501750600694061398073873437421122765206723034466472274693158591060600853392055687146565491570544232956437682045626745533654284046632095709553853664916970877568754976389960985994285253748741764929242893725646823525663739363896203037664861355674349116183976989062955499030681245106220316581617179499820211674608836161265274388714357722911879190039275534437063943451997195717426121229254659513426881472886246255226274802078608095699361367117408191774279435967622449640901417452657037719084682205808502510634169547909402583366094477629158477442006571308740551698721021957011612504482943447352791517579316977709531157994147069369660938695034454352870465260365968044841727150983487318508993363079669369750108387603125741477455648169393109713734836020376835920109513057763403165399324300550736692471024146919630285584585692810082782128230497411153417225954409194692175261766120843880569983147277033087362886917997123088951537112233093925895945339243127409704919753568702234592910284496032232786052804971669632161081333395721972655661910243259855889289129735030438272683065521837481171614616728975889393916647632479895079598306067526210798910313143902736485819979334277060599627460275442983083349453846818946446059236891616566294928105867263643515239019688415054176213916502535579363447392168184251098392809617792194100978884671308504844383451954751834151042587655657398885214613975841832381812019998937663727821549059147584881342976998526096235415189454531146937262665265329026054316966526900279298314021525386493453726105866157720931539866110007356944313517306119196497611756056479843273347696461202689192155122850307032060502146187876899333811754472103521549587038412598325584128404077300018538276123428071807394729711543804084792515968225205363115261494182728273530883620816234990444995618157734145194627647545760640031409215260934096401010636203975489650070024594500249131619148582913995779577596071159044722205720414614058645925654049416240230764519059455890698199096715215952454760988111835181057892664627058089565749488753665152348956885609722636391790802941007225408713196243045522762611689452921701219071848927829319812031222915714538030893007693014079565395027331104642789373001815803651254865737626731145156374763676635574885756295170655831824994498512934367461207999569207694188250444970158808217272087284477265516011156584064214478496563524300677649295018551041629543214774967125724540882606626297275896851797937256874047981883948081765218488938563477656240747063552951529131866798749631219689612848852629255248306562743629388900095967667773835093432895063270868205565977667103474327362344775239674220783711256121343053167437026335615695389307192125370180250993941954917711870450784007079780529793277799233743032665483351150622434042212888711643325424395125584013507570371568393592664331714074743223465443886801133004460044007185323796513699999755393978326409892449215679998227787915117593107869357407278994080682310693940510353095358145697297569948966464838055629030909350448871233836838244856391085139555640696816604955649183587272280553503914653770167222946072548247806465965844988131180483740724597871250991829333743192150106934058216879992893431736873215957237263799296971484610619416944471507296811777768599185270086034255302008882001267327530103038235181410835466895753878116813244824194911589348677124202772978394545025831028507835533494372476462637335423841474020982342413032316471044596280635945771567531251821062581935902925483717884754136322247610987644835080694017649273577434745826384692913629857476993542879246436822507459476580893863046398944876606264924390869282020368201772071025548728426715145249434008524689881430098329217622181245344390973071282120784094160325606281511313644445169248007490155159453271384189519045475381974757131299907101952641363812851571211348755348108161384636772709623820609720479682493456090879885942988572178762417445358019918786825568353236873653324343693500934783209308850623737163058936661358503395353844598426753981478834319875778561561372133256127051393297287810094658634990567552208064627683762059865283018710437117908719593104646790119764202832335904902653214501876449491530288969391106739038308064288973614193570848174369183579415116318037383364282731444198319540069155920853018035378949459753914210639583738791951993203612540333996773596020019282638614853828966179170565639590762275759589087681532390672669439725920029331341399900720102047913138559901151881389755293284391585732449756651821551348501251669819305403525010567449062866861710641891021219435935865626121673843758239991054101177588813234108036783696027847997234439512592403496113213741877157644643115767913874815923489074110783332004873418368777557864227756578112326282239561392594525783291350819655863075590185446354565696447622493481405553800741842040234915929726600953635586641639883547788288757183018471387290003513520304642716428301942274318668275039532784342936871110721396172051940077770970724994512535634621803913179003263802388304715509934482885869977051490635318294321641416911727427184483395011901282502171783217178811067185762074125418872110535632234250965222359477749954433743187082622559547111110365627685592035147354602998772402532038803582231157949627835577218946342962711018197811382690338407556175853605082849800565868235131275871463975667435274357791366836464184451727019247734251611271096688562881108151253643944883220828573595039104223495537574624999795841371229398885534778436540185881122931204257730925933453451579761951634224126615021658543033951545626917655448237223669613009835486632011154920760309627591546224174039210629537262600087129160470074404970657794185753208928400685635694039627794140896303823155218630021036743042513667785002163712867703855445310473947099601268529263168669422019476724767639822871269958165116467176705118563854334703860094216794602351030123568001880742882742232331394426329705684532747665896960421954541118005783413696814984921555492217855950034661761748101719521294211122213324107096423930627644668383541455491942122825823612697922798424971119317312223105554201699280113699089933328464518413675154224959360017763900786147913563363175006430866831050054894636403389641033816700961769142371814001094793527810453559445149552081630496268840640196991503706587336739650305222761155501557100493500338161720894957865904612306876047742567914306093343809454068227734307939466216742264015290016389576283129841681149654449108729759510003668465554812787154662925187121285725843199913214375689298199390898762547141321854782502612808872964984180868584153378141231599514314910992682746716238178450363681622650867988271697723508419775290964782284134468750077803986547774470710615181557844152386030533439463227898546763713185805337822120017102325372155582526662298106984415250380786934649806336397646990827975793036042488167965773719403494892573673915423423580898606002647544320102266018079111282711333806797345521199692139867100069597753227990755042103800636178312566409341260909581592380349354748335846472545116271834367286410636079089695107661139263313010715122568584564418843559301555714129813411121901557922632723289867832245727958205151123638504436088222690595287384791805285039060262439292124312477003006811713545268084057069182671175051490720581168963627172787878974894337731385712855622382629207609134991807800749185360723053068535741021519734707587933455423373686245329712500990660718494230142301899163819312562712620530537644104061587657924527092080064061493071658061643026631826283612474197126546533385789712872912251553757764488336793801574549840010166015723624667568451831964981696208509855239844853967329249132349624939934516005390234177574080244879010847567859631691449893046754119537416569449646312221270194718963590137123561258900054966826663649817695696321457491381063678059520716829135843597681396356054632646185322605150924184536497661839365549269876208095973322975710878400057376462549362344764979010881902729355792552907946877779111876045051013222744833634463097713825723063815071506470564032694357223996757343901351660025931690123749286072261771768371264459437798288049641441492514756249919355757093008584591838881937799966753331152050025919197414816807170851609527749190705780000072496095831685951425923634909817418283358875956795106746062890436421044388677220890288254269920722312674819612820600565049366760339915797360811312824969005364560352432429501860552032404799290731062640047354610138809610185068980361764506737738069619582221004202063287167184030819899836170338022899456429954321365624722519916418105143590794751139753384258897004047564165410685209952573626763692060941383365834421144689680656648666934622804829879920353564113671052559089971601842493510371578424827837661951444335759887869899173535562979648024524751812720710221506022968224310525027106101140922246219996706521731086225446451514575988418825115610878701017620178862806108318495775788747390412172217794713356114802096825323695300651806253056288221198138583544379075617092527788132211858167614926817103105541102830867571981582258687940556778160641576503435246133114153026473479489498883628779976824572405595257823694740315959182696169169445501499594328671216050701869093717608904562326628883185176994831139399258994364092808489466753405007526753169283244844373400016464714766796810860640239398180786768492892357038586588779944048152740385150958258129640245024314027354132812260994274810027850819595590024496220970250852733168760604515415428755028081531671269239810427409164381507475061780302292437500477261498693896508018627739438695053468609292520742605150420205352989554686409700641935744478182772952439241236757480431282430504321225758805221485022884417071394302235957886113791803453389916096033072080796004207617785047595176880878232633769712897276991578167361760705488610526410166586521141856010292009480079264365462822665751189950801001639623271910754962439319084426113318844271548758897552183174568463868078731363387777324998091026479567801926684607605660189964789865458415852685080750346473872152619300845329236942537949964019886819284854578522278131361999676034488958811542167847740215970718020337366111499493402782069281781156300027287007997044927891990620121120968825743761122645838667960208461988834703899310120910780371441888570223917688994936410625514136880938452855485250106139325026548216924978734045596869857081847909485876316049425787405910336900968376496318945591913385786251676888868246084986163006123762877497423732365301062175173684144671488170593058228659114295227216934331050538779648629235649703688102441735304961763986587091755509192707387769731388555765755091592501934858367092577247190105865075076770157748467659589734143620865280335224349416794151553871081911398156368816799372451070640207662172040254321864665484279348451298574095955708331194597169153003339457930999231435642032412565746650502020397315814735612213712336105989778962091558066909832593276564457700964614238022439598425832329475844747239991917045644631926069506940133261335310669812534031400599745185128141701386759566353511952905411404580468661559457506415790194388970616748810108341729612188639026566927800506148136055739571517399982463432901031861788755071772873962493886411081338086731567707991898739533675356527525803876022416523215236426514052932193758522325813759825431657966387197006678977443856415329042232628835203017196961267070032323328358705230903976828035295933580733418919514591213946094225299336096449331429082825483882779099334365037322433777258091687528037938329148090858532942984073463409720946624016144780510870331707455495230331259699089582902385550841358634785321594799267945867068048448430370606292849562827203971062984939620848774972779305004867417025755819916071492060094945617901619653942271515222357435687555222844620455474092249950361094059563007674852967796293235235463550778484053974083457696503239467787651336380423756046812741775660462722093298839862364811467471224515810097682340383418998385352090339700176436608990281370585284948295815313821283401994369328506048547518691498326273514380428565731708028438021685289309563185353236058746586757669776951128261700605183350169745654073476762543120417826823571454770884031305982175867065942545513940700732958757721922719584446650493041151222740887624804750042828088187183955930163767374882766894633662380474313149085705760856398057301455532884717078392679747855195598203113250111473116245510665768205924643907736789025383347531931644312674588786394591482548321448241586396015317465545866075667766686595793493768040950068298196964343329813829866533226278250262932764127951638352850473693061127441172326614025362309929063976987190951979604860264020783561244430066630196581272908658769193887614471749097014224711578083142515521087879038098001513967939566603370891936155062228947263491670268079087602990130208586705481845469004423073878701647312160483062746671396365440903375231023357857063555058888909452406838719141407319857386665008639236393356961317203473038738990709065096225610525157736607272848168677259507966979541244134161387479026160176113816285799887045343496307449703591568605573340059912737936706060005918148832491168065758253959533080857320987744162019334943744146258986031798124552451729639958016204276589664700985578594353035011490427185345334084677690298508193425878859742533413854364684387538290128584447319747422519078190143212937803158631639448106732230987527842798369530087909313785250114634054129701628424407454655118915102511327577876354458498022819792302671816950410575343545714806983192779988229056595844411925373335113913082096926037538383567274744870324393352944827911633314620775341656851548982588321117532048532435649099927519829946338641348959796163111202436617381187279228422653675599904515472017968034870395021603461951588327375731857958787800132701964002534370844472376288083621846760450479471358107022857557875346629242090431231767038460720030432654396842534823637352769427187012063640339189971400201079729026771171703860881225026281278615255954613513688116551146553176384332389323413791133382639459727039636739449813690394095168780039249242361348703332886252745838334684131452851134197738583572993496877852694162620494500832994391168475854557614663464527697152423051225591373133988207892364498662617839682510851729771213826622123002633658433225390641084933955416738728158666214311884324476430227127421388395919248791453189215692055576428671551505719433588623990845516587270762107514791883988308307050126538218482585572129524363813409992075237464129743187780456516646091994607340007405980061810841707757871091241571928184170039383838897539593121721261662467287911146080589047767736634857760360743513324369124130309828194236121604841512458755594925931184520710652114069158193943799103447129253548141253505008284002958691588328005706200291257107464384625124235705752875101915825067508010118432336951131161364672252726882397974090504842822786770738653762046405990928230135137915354467338952783227173043529076902111444033465693433435775558395801201660902273008182811669400253823932182455056139542656973054200136313940799289562474299124376673430719410429952912958526465921969616762814759776037983960583351912363309488842618956609225796730443934142936837950371409986708379426067585778601878207376268884566062184112042176992161780328713238970723601377324513499771142440991141734456837357409162533163663064250152535258127944737667595489989329456439853366151856121269553143215031285569193598889078544596017256616171917469110381249149486852655186195497723661108005956849083095510746133700941873382390688803808872333824381125673985010238254106247012601359428928855157726030883175955055688918539732926274249550172898506887993159561373891392413406244801515314425679885739870663571757456842639763578143519771425505853060760863707800490524224509321446328841764792833529894429734538744060763122223145055663886231031059742417927948203339171135644748211622606280117584119858910441401204716310375823926098855937560668785675841297107047297294352394844301102557106245399612965785406513486628392824292379684341956762769462655574970812072201717503725555706168911520893920585067215393105771535354350037877018261102573192220302258818485111830377883759656622380875961818935985396577735727480710429754582191322599034450872135593636431906222590162318240310364194196390154360440589615349415167605741059190104804616813482555547471553246413443123649696338444091112901624690829580215121583905081273923190633003375267609319325219456870819374921854608286112428309350264655345811337851872770080350983203599417670681536098532690350142302749466975276707182211843478974454226763918004760169621313151073542080729537262870198967560485032159766711572053691127904711180569962259793973900297010518915082479570953933601483410001304084374721168792085998672323394080373555652548971922253212992277445968802948074579956719016616751107437247378003730304847255015391416228508194749855778399562833657148450017595611877620612164655524426935316415198790272516978195643144528668160364306433626669528902723540352564260797180068809107459583641523307270175628001942124842041983281962454792141585773754507854989649748603700137330700450981217675172608182499472485741554547204005305029647558736144911837689012042820434060178661065038695847488596497533486876527973423812853640508712763373959089399214624370078708809374439241018084696490305429147956563285730747770057692629860179928879488747608969604372872965611111518390706418589317042023247709232177412149597938797908725332569770737950726525825795003143453337895664235187228754646312476143532301089743403167497594755061366809415999204538671094030396984555349850591405299115502005145899491373658140658390848601202300606947507428657614717231970792512351875091080029863132939284350080976507800167160934794940679280030371477689827384323680042516640674456179403891251476686489346882036423920107215258098593961884656792487808686855419440453819662519159722009163765537822047901491148714052439940423149961185713981360161784237458237085504545543117815875460211893617584871522691734170414487016829577416848992815936888725287185845809942697024286018641867316114327698126873875266181166857681419509258220813888624677451710712990194604549780046684613528555178213357238576879871340668162778569708689786181708284201541869382567034036921575148215442377760777719377596190835324431090876833162291837473472326846849034903174671980201903844652697044286714946279243825338816821127966779207583613657981114431167870473648032423453595308123575668733139652654189996603220753587053564555729274734116589321368905299400961836416164679166970534945927740317702433676136002358750401537079805723817667281930547525051884014329753849019464357027452982982516596071175533338620300864768056985570416205844190134256877344297258319931568096644668047123578049274388829666879915861908025212539558620301285233945701329370600174353338499117123026811100235173011179758218206814647153195971402424512563633139355084953627873831253141080108367283429063320673933513685437278742897319368641308916881881488450726657030512294279179706545609561325581108122420110682489519001378082495908690836476917878868838569064879664084513920836841228101117644305076448984185095000110491907999577397451378353991730705787809887996537145098693170025553268320945721930692952714040693156252803364323607051786177969525059311445810262005400584038502026744155997033893879759850818528530440794749924540730323688558136658502698195273525926195319365568313108020616865333704957657392354130916922665376595350417426620654461523135159089441695057207456684008230053259343126326903273374842662591941485082472098278870755928178219413725430528592025237294916741191354423871581785113582723804877507014008063037066785994219358416134792590563699551056511203495039796528803853251331684749882552431698956836005654321706145259074025011405998474653037470446352449018702521632411260391732080581785049216933272332663139296659087338609516424431235163021268095624275983838228910951141457818332637347521234732399454480802170720984626631261754520096140423658249043466013349738101058664783512028626555265641876439378140408980243902142343922319538656437723504022202896705324165404690261902708251418106880385792660491498283941557924380714079451477322033791828021206383483518797258206497257056220217540331904207692220429281479265724139223537233299714021200613254473562291215599085846466898328401552244029444229632373127398712158084283761073665328168824639076253746470722372502561929698381015176247455946279947583225694454959020588067603463156054455664378717913048082850972424068273862486852278264697041652253163969842653457205928185310393890454978982372391562696590351811865079445265197388508502874856160084715990018180932372965703588218357739037228959535293781392475421520148920712510133210093145982305293336771078942151513338440536548215242239523527062812391336454646143198487017842531152364456133122453241553202957191002648239422427918182279673791952664525513351744664344052506852629593208394640248732521052863732075548678268834298861715479352831431807647570691764638857064550745290323846721228693703931484417422212669518410791925706348104614471211892622855613462880659059817351004748192867064962274425329556769955088426468766158560439905232587795574005629240689835877291617523570745750540341035025228565352842602308958546715550981176394050172071019455831584927005617237837519930151289455473196806245950620269727636964907679127082834067914176191019017255504402720599107210432145371565246572620723922197234369728227860282612526633948301861619252000282949442606107070891804558796087396935236907735483736405562665107079912820507068520992086459657648507139176666191312662081126539669183767601259894589397565563925988691500288863822534266703713473016083483414954334545591234967876688425049950618977520742037588386465478145732632742535296788975163912692275266138307199362046353440705167945287075783800351279156061851280812436243586676030151712448587552850484319328390202164385867707048451867870341407049084133612740076696355653994607050968688573302676249073680643069184489059426489550001168506676141180817187416922621712586983986461553632045297362513047060609842143881411060710756556979133428919988486143287104572324675229000783489677767010444506859454076476985454677067974909807381813975381343803133578132294728800548581402763873547039010892699069695076618505579772957248291072670748247624027246095020841298662838836085099583859895344620942715484199403435912781016471639807244470380354581821881032388466515902674154798865504752915088344415267657292513189218874766519184933371159438019890084225413996737798535300255208565414166203925183948753360800410335411610715503053865362815536082711601605692424044181531541453460587194703512453997286489439754726781597344356432267661695119133566333548288375721325298938028931477978436054307420015086330541630053969832485153614424408185966387133297777076878924922075902563723953222702505644203422316929611350852950840618261110567326527196365849276101062985524407789767359956612391496747441508693795964152691226396896417005760218772621717651568742486341905733109451773847176877388900284412187700954279713929357072099580525975998005541615515356361478525205623340343674818588553343345779667746955406143179666738215827720827472318660223428472659249058898336676490542804875500711821477983565324922914471534646010581446511890167707235742235559577040113322514924341780345551583756845049168695901654385110296016929587010815495290678327671142296086516647476183401293676248360170387006738395198718638697814686679003802507457402153759746365662364363462295453246452641646566260515011760868671798724754986862398915951414137099768942078642871805908622389468432558552499003639535620007954708622629836592425339494861614527063591988419555473785477930208678564017955332154244889185660076450333052631436706734116568504081932594801792731439419529726956897481818291127617608534253635123625474524384270417202174568549433457909624149714825960630683970857189205065126474530487578376828672878289293023634560342321361540107644902665357300817636376990664913979554937777174354664795126042065323929962447466215935447179155274805798089718455814757625834639034487790986352388922059163193776383370558081194927738081603183208532846797133691937571088978095711040473029594372136029128062730925693794787036481981229934959749972282031732590435139723189948984787463686914641457634599652464491748054622163235698459527802934612907353769593605161587756010475122848443314608819751518368564963528889679379874570260831212806030571688901103585577333026958673107034103753403976664029850898467936185744311510758640034894818348153147441158884986592046305167709581223883387867420768691885630586269593892357938691221928520086836972135133947721774707580492451224093865635650456818048517311154955889814655018801940007120096524590210974822441200972686519130475194902872396601521930486776124122428051575342775860896229261575132994936399072524882096216440179814879620182389034907576419928272484548412595210782733263165180798636199864537690059482917547128652014862308589725786669390524216669010896920698602051547075260932642434010854165205979296663923583037515070549101771536019022937167732997557883075796257488264549602765468664852748439234016439594313898557663674957814978704505470642632559945145816375309240658299449663096532709335138984628643185547143422630782451263881687579272045343190063784581458252385982328770710213994220218071473810207430272781569476828782746955862394142788373135748387049968219197620548027526754175732282485462346799853808426784845769757724122446888509901663511342892015481205362425647586264008236552370226340873405010945632438770866339626251984265430313505520034881659815895074634631243031102516522449484864536277962691927840045530005845189791852797137397245737810886704723673389585614039385652853519865697914530820955051435605697969946771365649702691262476677508039477474459118966234446773183799307666270468302357360572077708344813475224538907572878029840621115632049871661380727212473596410065164572096713267324115183983869247831589233855612988114514719707625693317841322185957859992836890193843879895640276513464987621052757157895475961782645326151361179541663737485327001342532946165951016692287318496548379709800636532291968795389983417595476339405014409089126853873444798488840589878185553090178975573144146438392626457692295128703746311826275630992958256259915630420423203374820672234848286991002621010432928712485204774915224985077643376246388475903857963816806905213384988624000889986829390180674144778623875251902996493352709874085067776421797355762295362235275376288179978012598519701924687484749507533943683696153705888857853624443505312299068161200772153880282879008097788774685173046196224176517235516922760805331309680511907944763746136334653579708498057457891698090932996831366428297362609192678359066538526746938421976154299809104554174007792248269110109464221156511729197123768474361640243087712854822316144064044627657527372274218623811354310675439221070925780168897638748395978613954587101529741953034488342703061193820084787089094587444872773205235440706551911483718554181790221192472234830459498674040801440393989816107127594863054404709145241151069717692427931111759997605707480393063849202412836523198331933652663047271313875859555278845987914455331534188401047342677253194399840249865614898909311181756266904853045569519336089004579335906699841593615319266039876054591753221164782687302737050031835096915137847827867096992040147417868512206570942518430165018993675478800304059160590122513063519179971997335143336667755268310350247386206666510972744230122661670671545413894491447893032090575553875185819045488792326656812978043903125101431690487406601523410190539151130888461675678389257378498298148773731556848133734344684038306818151065209534280693106970372053844688938301167801158317088057098819180731895782597052724719408680576544859157776113155039007079572882494403698066687615516514896249778313286425435232098888431131313734965553051802183376694467157356017137630505695605389910937271600403676917868961403331419229297292293576469665035612138984007988615968926081305484810293408858468598431131733294857449138488692290742379532043236377841769999826292784576723987337758943135198044094802412381340184598086048749618915719133065014071388661587218809185043474058447330534179322799561537687258892348893241205311063823956724498094447220533812912743446113885058516939388580579871396551800419232652654752346878618697959390982078507525825071752899083880728364515947349726576088631824590642347118700687612125641955452276379530685003872127145703396298634407787896385006801320903178269817062464144072496819580679736816225928605272903988078157308011727136271422814830386707214954378761663872676008218714004388348962140828778604479054276107960127710959209746820918472070725123208733433920885730038672573493861146049284048114417355527084779641345778787561192890017055379476515337888974402309066688489176739757951326602668867829670937199560374963635564028763187155749723386906743911175681243282321299223670242904787668602991991342549704349049801771800607560296925233021104815121081325562523206272764718004653409298455664848349328517571701914225399179186332849702048098114568018556710273182359820344898576904818518599756481514143278380559687996570968001165225280619362484592926269071094878301618694103975193011138493876383936738234746558944786587188988340520613788311663177703116450791771720060981844687879356741367474858796359211738798204779576982040748554586810699429385230620863951923763725338328605205526473888498450995693944114541699327628018817327379732339221294977477357437182461562545000189878653475899956795346033785313857180065579525515811779583721203290647495444488866614625425109294524508352206888209270102146252533931668495275836535062586127457741530720349417465450518664529081759534316317381266867120380731552424851440890352782749229637786892254116647705443175956835849669717083899219779853306276645537870535591895939368279112465024553168062073159104052356022508902769605151224243840678320713050552460393955418985163423260893480804965511714760894264291814200484612504229939641633446970324594583772708116237389499505771568716269432251843504669298291586594600366452932879045830040498566013484744256635195192345945408979476985489462650444497686272145228634979417272725355409509581039306593163122874458362635986241270735413421921560152906604347127029857352219047970765901971073818518154463288043497175869172330400730133427605494441646819506520700967437438189302580087384855456872837575783025799775144171143746199808227637367165008970188262090819381346141441877797505525919783381314529610058252587464637421147183832644225592564923514025591107163899584235806236407671211464314584053268434455277784866363406209350708311531400489569999063983748817730803590711976142468627277212064820978369558369597860778426741387909993833729841302343736223078305552373686824181250656299819038787644978354735319354866326222017956441327808530034537901272915724990587320710850610071058169031309123698154437586418635627285290596314550628146680059573191780341053063267366649879399676789813102709358101540110092240294987203357491719328121488176497150223826910725849622182304208535139664914915563968981537363490010318935485550715566099591884169004573556773547187690338061911526907721764205432033620497715370496693597147283754498578729979212705650276005816590595905714034476139975415510068331850775922507204672298803908190782246677002512203968607618340059340942428486870421491458124024300292796421453400501054038920149764774964981407525604522401322362923791774125300398855486374197160798335226735925480388893251302331863623167499719663980881134204671961716666673424411515741542013368818511469857848499880107959897668974398343709207368888655393951752096489055777690545666150723867739646503011906796606716761524962291021236902972916305662619837156643477126094503740157359598982196251877097632603865320438253004720744055039744855338215044032386774507330327522897106926875109444725804622700006239287349508777360354441571608152307821616224151153012916310574834269920156118711380972640591549565890483815436100242511704807381777503177106730563124705397969061686310248067612252410759498121953262323206848057247327779268245864939367250159832965430845231995777770126960327628747753039674562178710604614734266282418424502745639739972269514790830968532498360927282426029010126933857114594228156588698937419699745040659525768727114335463655198764592354516756203553124644575522035770780368803478951606800473484603526125451430264051843674211677201931267861502622226345000024476324949388949170696812367598423884177649978924274775013006292372529622878396195385418663519101636046144625864177375446296903321949719385941562106022747545079801345943721876951602318660427431206438521883113856625064777589140984244330512445388619953627506987152329190356481733978047571907455825432593037285465104984359157065207718505825190230071003834041104103389138475465070449172518079652841844668113199081126867061560326862827867117318810889678262245046147405682841106613584996347929054628368634478764050191846074210136453037514332684935222575685373802597078139793424133130652532009150462387503181686588481201189373821728453670547481006040081349046684798365984722587804796476787270543533288342092460703950805052574955761305610668607299946926089621634473962337120554569681117924987792194670051942193562233678756860077430301080833399403095645420836381914647946474387042224852762919545632082200405791878743321108781132680110693650361684480370573192509195413984559999235686402671892807104773097499920077974707471168451274832865689301325485421888860770176534978602926549181195996593300202262263535068249540150038110593345388888123724773165463680398547276825832844538638934947945397009321259358448432554447830546995062990658815249931319432862376868745887875387029234778122413348171087154072367321002544743896262698269613804435496754001065393086925596250934239364121416917377318649575841153738814540298258762922518566450421071678859643960338938813359784668106352935295163923191141936922036460775062145877105444129475930957074528674154581215370134438901503617069073439450493474373002658571731324691809155600022572983128982585498042130806891415971059584742140707564336273335020131862928695904985686376130469957223754234719013431696469795337159667150736489103278264983217597553700793192882608381025774191784782557832052300171295268054658827699357211931751964112801765894759669539538060740353265922735363833865942973443451997701745861048896050336224120858180520799065805738312656730409383645657799456594859032849598301968979570987674087662587617511944562478938369914978956276903088732758363848656482251494030460445994670806672705213512255120108928417942557686988085702266973258525570812541707041604342168705782173742891545446132255474821232834605603975903516586134264677274808651236392760035082382782505513441742920052654482782416976375296980525294717726159451794507395210770450970451458003770272351395265704645434991691650900436893512688799547661421983463647185936293121790701347903467104798911503048097177902929039995479911968805526599019377084493644679275894356186693256211335799093714948880866833517749821955596330720879625487348789145314780448695893861891020324887731724841982176467614436157899283532640462282221671238285645603901365616527558787959013854924233904893275860598367671406275979929258872301245440613668505156379720760806034905677901194229810398950640287500275544562970066448809341436711076896672347610348535628540009290845576763293362265039971870845576559194129721833221108565332302171956913626669832684667681644796913311396733827834331664529684547723700133194146297385218595462937475787551438045331466592336041712044849493458469416088334574773132299757605005753766129058462791382335757629786346620639775286060041037905934994293838896921063556104752771243378656637495046489967649686245732296508492146445039978549371849707841743111661344039649872878678983146158005868487956966852722111768718470228741947850521297847205983775754412690249277993866794804446785767299233705357373952455052739856210785295299193982557190145445336814279074018744394305052614905919147325027220166524773561804499581064621678212206169251301248714566804608026171223137468489493710118036557091407017810165047773905578622181462459430660332684049894488915672776945831548879611775951537118653579073037762930320895438426309880528497787546840285059746114705491487467922080579726197960380016318434173025735163065685704225303677515855936829394952287347943370716467951465958735524095530011649990769448185693969652858261760418732940343759705906337142701818903707679750550121777162463906615013907361042621742871318882890423511251180989346099525497940262397982694911995901490381160817565243445189224138068621683886502706347917558850232011087400168626736788739641422572138735271470732314984563629541898437970619613447437313119834078210554735822263613991876092032885575555007601094927341860574865522165951890908963326985329426444518752878446458152940343130036661960584191308606374560997825094751666917583440995586765751406453171915246876689732787220974906253780099088346959845843331227864078951255607007894876080070941478381820884956475957972998650595960256085262307518064395671897714464926924802862785739061939513065139299450098584692417620366305867349980043110626878676079390247746952851430168018267596052165159933698011944149052360808980129072018614864129394273762237546061917607335813995427706454213088455646064689050208424169797517275426946622047593540463757663646524198399798182233661415188828075281881132720473332129570157887975406185030279024558102330808239888490441870870793277466882825916905730546763556741731577855977512017261738186087918768494793267232397275561205519219909001247355143258747357830203486559546145346783328614038880715332470241616820111997215484816219734177808053250001429443712570275239504548635898499864013755633641076370302374778252296530558168829944435145695318009404642176467278955485721444125425540631967380471516008479479193686222471191579784205545837638395339259987051580146666990658179858849352696171959274587977408387577036211971597922338301713435897817020401000576766586614014068171150958551762935225252619334226597218101426279179786930705767373733315285072691550099969033475358827636209579588391630963759536538901523486612505829516134980991393590032464342431478936905786701407486370029613601502437427471371005058024109030068207860857809298527460042145903372837230338414073456788787957546869579402303827729901264560286663725423049892062092628431160176642548663261366657151197567378192520103008834631260786372788815605806282345854839752398641559984778886801400685067292119193335269147487224862337429382305204420324780290926724594639509973972504861196965485670903209840474302331544239638911543954435069940780282633219409431237197802676978961205898125852211497801956309619533201997464877831625230594004589061344061286917141746286314465788068904472116592815756537156934441801980580158287945342859922068282706031880027524822005622343942331239769968439345575570501946391250914268364579474507630127843221846118701212389548850237063053181371542008306021631670472915813052181593398748753305423443847414336547335042667290495435678963128668796804624384540623510268995737108445941162927507886333480162858077153602805372835647437328837287094159946478501158333730634018581814127091912989220718971056139696008828204936653853341017770920077597225000862222729520165864636135520378171238592463534873828302521265119245322296816477785663735650222472481870147612626228628999111015868167647661408427937125777875497984489840775424161655513412272130071572059156532405059309160376973422411912415597910827437213624479983043700635391617725990740178109134719718027430750765812033061232648452565415105797957656328444523938507688248674929857491998253971271791527526933556171681077488990214096320003297774213864640450345834259726518285584182518017515058783666673852594049565299022213193246245660897092826806777547878552879256184817453230449309864024685001560854458095547547989178950040298715696898766811681747192246260564172212969981640682545477959308594198646394772039350091248673502340453464303947469012558756386198857463224364530976250598964829334157535783303598283021582010720546900878802034627304998894628319412032315541995887628906543972242838904237116194151505323160257681025766709376877338442960759694315673506102296041365425836593601632799939168865477938351315828494234112731498314895717394503143966235043396479108681256515995060441135727086183288173608182425645663778328400149725336508738599417004330280784100882226089535420790854274810571867541579635196823874273160872371088121404987997396925077516900134482529994575279697640363431362004500009057681868249402859567509658320714776178189279702390972380427875285886055657343055644902891339528310237527391744235998825097469496982362126470079625510952462506109220455172173441835272745456974209904927347310337075979124497380668464961432456440968040060131638392084573118070454147701077984326182548973394094459924426963503893930466385172010073755499759753270838422529397852945134741631648016795749388391150400274592657109823797644774962782215262492191756503600491406645751040747176681515700372941128259743250850355438075640399918314763820924770535028833422513106290484115349462447623771977190257307672031786580072919975302599201609455215762169673709639033442729932474003774489015536740731699495070554246773447826056194590881761340826127064762307322905755432625296468116675006737955118958157716445555680502251459503144471527440383352081352633101914736901827331298337105184578414372722610535278217176489367712790682007818696473377172867405577676986231088898052275120913534020160436455807864465681753841500766741751425617102686052451485057332198751098549537123154801244221979940958739261537433748659331797894915187819166830808326540498956878200165364082030784136450304962477107089845696889693570134321314713021227989056521647853194545279269429568748322380075607761678633898367899846551172911832791692668678200807916732379840899404094409006677267139954442329722095909795454834388071989274593524617890547051254751058528591568369239741169619522529406183806867239221349227816593689840463988871862237979042423445261542065978808875682300463154777078523407723166952711026106272747525579740685957883873344237273585705709104495826444705684688496040683848304735711665340861643726890142837457651752926376725778139675035379328868919957371084830074403583551999718673053076256855260288244282389316795491403077960965511416481478280588607053871147472856203145568402484884897555445590442584352545721651674727209597033762111585898472717196730976241547071248995371859671283730202582995696346338256787840658552020029865620058551510908240351116473131731649607664347521555490067351032142668690780781481880973850821824485674407752056051102810910870036306533263225424896078386724014931732749607542281455616652009745397249301312516325071222393431789303379469721655709277541039609477662947662363811675311161848029111169816852127946472233985306336125941052719386583423820473952609731752972546707828723872303928034433662323700952854645283348983317867832653441860739883639711635637557138595699343021048647022696395587603620096218141265164466021193762978397852630556620928874296409103921781597266606102846983210891603969717841951884397838941305408220083769090422294408430599736722499168660759169657497896697292681300975811120159058286671926095137650397608891377134262931502957586143971944437209632181477602835573760298289675797146371183942561879209766618641413836502259472305082090235915523257621958510743387366397436341331791979574747162995995981189655685971514127051385035693862999966952246725784820248207926819427348982029898333967352378277925692271909525024272867886761243262151144331579529061478481098182807090221634948982701991934317150305376934204030309497047781141349202344787230447703152755520873480155495443837910070549396370151479498533528841312716843664853581576714995047906845363376952701496339976542844723864724590934971318198634177642181378356218427169808146761292128252854574353672599338796272102969302506728959156840811422595486832306225057927159233236144077380745149903994741399973723429159014904162593448050376937906623116903058964200286231409235222134834139598094084304534345427674673428981652853946896825308066376496844932327027105982377735555933837287103957027342338380845815945776178123171287956092854123605029103213568472203845350391182435912757224320515799720833053266583858974972048065067541389558054018485266864905580063436763725936233435303933185144482150385834621343341586540029183021421430275613491840423880196351710811151598068526222942025245011282803299814294769884365603190483222182702455974710180866709580211721100175645777222822577350252921047868461792164879926504004589869649749502421989109457421501248037644984768652909409443963741259392627186699373169228088434747005930729495854329032628504244865676903075913538624442392932515444462141259150256901144194195292035049943942313122681456717528516462883711840691240006083734518446149225852785984859142752798268668816926173517408949767108611383795800033113402126985523295857014325508778653446652678177402924182570695192690408024444155391910383459007829536955890760018264742745841849402508301516536428859327254159461705794302068967030773433536650977711426987336425804947607970783303800630619791034727749050906444060715752431204325008636573147103302687483477877824247721434854365464988049728927229520498257910072058912722602622910563035558965698626698535294579663920345225929725038598959519739317420711170010544459710495362819990375699195183819943436789801792026764798444122979899791472915917901286427324184967638131011598505863967985804395722500560594950379587477075538046591943562223134328460180053384813547110582808881478414024822122584714489865012974256360706493833369454090766710280471534383757655794045300199185292306109865679220778352492988488926466608304691227642725462518275995879401758172276162765587687271271780820373875619886149153833238347982697706482846573207175176868680107428264130040712767757795611931808309095364811530225400341642835541871728492919839300318872545434689614302076736075449860554183226280053672536822560425546204929190018917181270659819785725793906069041273952818444480646545203850129237940909239406810062276083082391714408670713562394475962922591941845913488204633180563245322104100430500132498739010140208118869378620265191827215807743041613794270093541653764549552138638982212010573645749383232211849640814500993371155641476877259600785434307507601140905290275552973861225857220516255840274110879294316115005418083397493296505483508427218902023359949333046275670891350981155586863316372111127593048773593144488372635882619634632944576574135986955059511595471151023312946598604093693005618252987347600406334331154736532671934453156352981221289898275160946538473881810145262431180074259918172204444618140836733335516502011999110730401851481969932403148622442372459185263362767599227753787067365621915517108333432232539400414723544736333272688337119346856763595342410415933518304499438599034052655229297683747139427488860555870255041565182211503219207070415272095818036199050750102896696270616637849676240878880586100097400632918341076130879064790100859912158117272353089881538427797778541724187579965524847935800756007414858918707148580272469389046865455593802602654171807654456954055013139613745875832354526705768962255478944259235787477866648162862756695491771700863783434620396483555144648813872839754234262847678838326477577447937547008302802844552890608494954334711927079172747540475209373144353531730701120088933786219809204358625494160270596381700990245032015843441350853774734670793626917948441804103868744841105216826080447770094986596911864957643666418579560437529531286649582914554159502368765342311448611486365607235397958263435206235840512441654949572884709105400348516223682201822198423470064095986104119268671963515045799114526938919420778500689532561523149658734508601874211753310124288937545105103721052559991484342558356627258851907216609688739592974702480441066631180976632680877392166636790216423454688970510681613121255162145450076913802731908485925614451921519739551653598295707852948451832683681406383120581485266497572971351661561933600617230270568275604447539686595922771051321659475079706392541060499999587630779165707769712167214573056911911075349059025105067031371482427008561553838500949274938956426004896638418693118236746353266992143461451799444791462005241129746083377267440655019659447189305815654088089994834898474046716749571177093609151569359776276439019729369723857210832551325159771610933900487637531837425811427499152853079683881967332717429803101313970539448388732003485907043676586662852090974794134364242778208994439403297129686836368627252992667804144125129693935146895299305682782413883959017805650226224777296708436854966773799286447539486705682198402868357523672459646612392318480553233281296667346261900282528713834458516322124060779759326235622505732338228895088551967895178617928750801963263485430386913210356942563900594922709670144256767914573902502334700543322022459434276059791176813248855533995942448131385557622254557605960187655159453995897539975264934868148454482301730528199356821070110536992908127644511886834874966916848038982492918558712650199488638008565108245557080306875987348564513877002689596281714601190833623258829282682259627415063138641468638833163683521398979921433957238039896688587171525572066266141600935185792770590101722947101643385240431517842662457393200928154639296574717845573419697792558089633692579653876523784158370154094549144948957452298813864224221946324271410377704787848997446370551202310922980761179128214901476962280648275333641847690905822935924766352575120278257038935016274994783691932130228739808771644120205336945979863619900626398975998779250911504848865089450518760552421418963170130335135882084063507440567253677572779487585358735737361265636959928726188903474615974937245451064917749704918160608882088179721058983013677877995737817585052484053845281933296934280139128951523601320361230448567141356770559260977979451328308862088005767847065120735078771214165776947657532254225978486601634279343671965111967190611802494183830768500301711347343745192003752766276451075905474132801352308341738384717279163497876575279406411249545179528489548395088391800821897827068591410553364920358957628613186718694294311952451059711096170236619542297017976222131486366429438229757952104364567391923296746207638844678822048642359789939227634995947901216642686155451240504319673511079479419179539718449347721052569014815802429754435701166337495774788953936157256057106981522985994093675840443413447374784218531445737673010641302176306095415746281299069693852279834251807724979503151770588963143250055653225346437142424295276042336414678364920799996519063323626731199191375375070675548270629469849570564922772302512112967680373433102715009990394681513623170268718087919548412137242259816653467622283002063117739414133975838420127980036207241523965024347781900640269248070759737993065672714718833750581340422982017339541761882361360035288936161295024078011671213890837382454814980661015562175435995565736685197787821416868559764241769632156701837773327336996440617046284411515846553635010857291851733121114936615676739024061488545925820506103268561222098971129260546645299835560687329293863512421598083432156695586898738593776463468519157397002240072598988510237540016288739258251471466239603028310154534619616497492194215475884818182403648835447584207712648886367367437979609323863333742830129938292774689378698381109615393167295021885393840512160243225090895505436476952919565949045888127241844304844884467652340220082832830754866225702399214077923341015079178312329047530379174165366387325207549689188082061983047436896639410377776487698278232116263589279131603472967923952417597472485239507529018569091336603339492665781134944929299357231563998992780734640419653254494330306113806657255636647663682473242448255684662894382109148086122777274565422446872780967662061418487024676235098723708154606998829934021822507783660551443752403431490125628820208745172231600971158569202176892663347781087285417670253004038582304992785318637281871608297911589325318828377784746626858706159771640130519490243126588708242355742165151953842161114257083080866048685540545854831217875317690068926510343752817710024238609346648088890384804010901510180753059915567286284410228355612483618633084068771348585632671322066429384164347169745180990369140064301389814007317267623494788979179985112481049974497495573575635837370950741311283572638574926794804830152821100824616802527268724094488624289263351889021227219258104062251648547862628430922670853410841080802351226396118264894597187501578519657397439819866255343869224417490932907833259756786444528279253620522428883856650024418121857935027958822957494955910137450664819654738313700876304611388457005515331329912615714664877247579401073067752026681303872662844270885153146676724638328084725923915552596811550456949533262556194730507322306168546681330873592459776899741635296620681875683732903278874866095612336105292342569607645561080879534452625981619623544103031631123131810024963133151230395323843274314989836871757874563179889044230881886433300953152314488854411348882211187212989862160695195949692434042747159949316913574565074617243161789494642187520083318431753391812178458217894273605294640088567340827984563348855025112720410631952091170612788573112103743001439297136492011475441796670214092386666289958046377839878708567501346055102637082032604606487242039811277876957497003524928135309624495062762983526458684113715251827826540043560379438403074603127488005893604102215715868015942100794407669482540325373693509268316384157181257970056674235923695406928177034562515987645121134732779665291739087742777538085719877542799165689207701280133771314759112365794299270485675327889900512993704276111824874278633679096261628696176990618110437361709759303082350032539484363310496128486385698942228239928087868906747505475124380909080685540626789648129848406205647648609399806453120600380024681078129663890972264070015574526836139076631232828127794726001754643320337209921838945998750233891653877707979074883226994463190824135118741903045612720502819621087675215532143689272088984125607973472320149312568367061401927960141397108760577962328269899869850277997571236634170722381300207865162612229926861453278593095780892379083813801988533939689590609968572138760230997130954816436994904833640391863563692714916749076993749775407070047592696063962798244258965746091100913956284879465847508360014974635255882724132076461756002674897457892902887375206002279643619933566197850376514997958221578530013761891197464049805316544920262760463218392066067490396766673889920126729290450966833593696536207792751835895351943642424822178017896719480805594751091059976905040397955042724840737397743372680719145881950486754056499302003417733298438826606924352389541556981778142392982994896552237847366914837675401614817246498156726800179884950806814014235707791041987402086072353071075761243554553851722965119896695354539079333476976391357788023434118711464680786680051378930054150112032665271663863007901234263738058895266617674977991280795181478333085694808638591332790318767254182548779026228032187907127782466474419550492631265030603680580698639697356455913218077739782927211541220117122162006133889229627126565865569716966832096750132544755054477410711466137686217133102015237317093363877326537984540073491466983870822005050726396384419888295181013259962420713000569519430257239270553207183014182985015410050378162343041343232565525909622284773398065015680343830832296755953565072214095364940556871499731046790569094342111006936415701818242447694243608708148367528785554972943537713505700600785619190664583434024312625078591941143563657108482536973317572047961329880209380440497081531990915140010095149385527836705946876567145267161071302526281943286203247424560513463853671982441421571232955956962722645017446853856863254607954656187775898438107616385591116514421530473023425358549022159093512394444710160897936574768958882805429850402684392685686503566311128590341697181945174182909644587816577075398157214188310311655220021870040681410298311905610065243869891658445955198585643916881002940457809176608287734659753183396978479751989748753414061347312393824961228020661156304799913920004348545474207593059867270655246813621915855858848586356058634471803383728188092237077731873254119699284272724318606145657695002153933926109262192071262830286509839115135356683045428083031264528366695823136545628582076307327667839940420542082619279187717909872716348013145976757523973746423363882616420991251720072709498967788565235886002952603783924229499757650469870697901687280095676020169978177380396000259901966654179158883743771121468195754145404305534659514391056304577659809437921729826682951983655284615908566203512062231575203734640527024222156396454923000284851112040249622048476126529413290987010065976320498161375635071787803649561063608558684821231907195436069438486968294937988120916848528236368847807490717346438541733870566606363325008407170072556990154048455046521478252940261450746524422599366941836779057183966760272018872923398259977165348299036108506733742991391783351677557184945700716076833039885530835181163920839513425795454178125197853664586531437021670150995004526263355062400184268358212459997765685195051496976336025204437855170259855350958573658287243744748769368815782265483878720852087477641644298133142343272732700569292146672202810043687225786765350372255524915424849278088193773315462632022931396211868944843993091447971706026333410088528473924810301189701534362959802702558725963308503427827140440551797903180234347119859891987017873168365078288311935741656178514445326603522577658521105338376429603182443181484286419704241590252131053586242285097522306375018495993576157535425803527212930589931866956723191212150098190757789209469741552154515304842161327182994719812638180584715647431584396973020411988630229072719389402275025087538136875625086742923340055255625897718111104330018272249101034040318283495840402059416308121885070855478644190996516432374865184447731074478965607938482962218243103429786878840057057067903530913575241426373363656237333879960771820272728846376764464887576414603328646619528844963227064039918089183069374325192993937377561008738235921125247434003011403196976136791373065061382179394965391134911808411148874057392868303511286165905610182150787489007242816718461322179571692701395396712049656501503104523449796090557552314633542718217816519981907672423454601915673034661909899621355938671030465845679586605691220114315243168149054991782668375065611578646396251714888409288096893975213945838577822004331220120108666223231591962583495438663671750265605621026986490385604696603051633340868643916510923804178090510578972215475461872840264467109303758428337284314148679182240193719297269822311391131538317731989308401000332634510326437949022511267183668135225725757860349633423929219086432195863350934363310708106668172420271094693741251015916584125283169007543399930596874833864270324542534853381367233097770775793535437423487518837791458508320682485679698012116705817402217193492148873338591177511727119118009679428296458569225447141069268060736167407567209439569542708914025791276298279758769642860106121771266571439126579242482351352447758997374855396791913532548225130785693904669678561153545837913145114970835555347456322404188023912596632408323087170199480944512134411548719579771097852005611828981642945701516223602056493386981087088657504975258823626837752737567931093100466492752273437462935443268568418157927955094224802374207805271518279819728285538455521206890080917082265610676689557148593984003399490593548669260746338230337247678001022767555397112252174183717838091587113442043837628555038077770946037784000008030751130766183609481682627618237930818889393213117130962243070805708481254459257909608627439016370102159919832215071012929745128405053380838651940534803709303329042727317779199955781588588887987928583008768063643744993236159404637358355588139425737896099481351883758453464943697125026379715029984684374453851395398151249847909412704080235209883493358076617772738433791745308082504136606600360411628011086279548704374229378323242668156603545020853684876132478537933106168182170090153232604889230298253242633326530882501920948925870208859373549253674691775825463873560516938407986175437463502983265452713393339360915924684737574515371409147913901667081467591537694447700039510711222683414489571684963935008296650898743684823905313120595458460122440797432579664701487279115669859171363955075642285693255989787449111115444482705786266825875928526115784861611032716267341822287681100564092901927172806776731095601336482051797391438227256366772589992184653745637926606446100251736935121667355997779099446798303585170041292927539778359254843581693611867847555595419791358837412553769601032971626171146959407417478231495550550630424895478020326604905439281978715576668420373910246484906259168202260820444504290467275590718684383289225990645583205513972690585709606308748765077301774390360483041780515907823493364937148135510690752082493255168668015958456333307963570067736825348848049320545144813679132948406376209086904862675628195868797788037168748285146667867727825199603565760657886571498344652395581352639952107855442361371421350822440156284197709510465232198763849042154884728039544425572288299741288728676778617141420599740526350613721253130974405204672105699220416459797526800143901879212029626783055993200773208369982895504025415693567219220666223545966814529900490310015660348017730910379171196700731261248528367583389214961827885650007707819096062600746408372851750676717270701964115320020553196031087378038647836719002471802846271637771716250356966199061597662624684675895811890690721052798019296803345885796858124692743537254716188215469583579381498584013702548422574705780107672553038051013888564110513063932512650069607395346116163881734576504113739781098991604721120474400103542904208419912225280925681292571730512914167881837612659660688605572246281652272669982009977419008281819994972316881628272788609803351741179414120218653857084989656706378295069594270135536023918808526629931848192881986844899719117195585761208922136811922421694881966321996817087845352987457116428132988299274687944991029591005554339477627637935675881378143025034301919099773740058858083182751483831259033111258634747551756864435739742022370069104131523993261959164037461479887297835028626522120514902030830527064863822215111534648435716466316156071008486999626384499415431374888692456919572777301266169327375450792632798980940779155510972556900217329920377501505955596480631988457770860501956974162581984178316808170855858622748745730589818481718885455794106698246549449360822867364318916047408621558418014084534915165953867064160058529962563652551881944635309800795986970044732879528274679710185194587719905667634047650892875193166623684091992581771785210066359905795404337590026033015643498852069322293408897054317167074812044772561218682484471722504346570139169577759547871676947181882974211098150141416362397849326400305765334336893992224672717876160851398527804495235147096325970915167227321800956776757581676679785482063406197968907561116167079548883531394600564206388142294050787323844564279157451146057077635596203778607184275802086285422215697753761965085307674359682700577122263455663880229763557733494860174542984119223467470384357787525040327675128723910518512089948715957307414929793431633369924077145493457160667701332647691572163344400412921283478535920141100251489071782256571887730700319821626356609379864618927015375868114242136330595669089034777507772814351288961253577158413412589328778419193298457376577329395764446104632137155171439090192010219994364222123765249315537169396534460263281676722927394751531069805778153825420012948048036124972514543834866610454470444353759915481287452602712967914748401136217180086643086400389750595357931990204444367711546016380086081705853446829408357143729287464111729775530996755699181369069639583241907114439486428853784816367498307120227482081836501038787759223896385083422671445855908881620164787679090917230849139215401412809543734297184944424272513494009382370187693850490063247103150972007946956701346037722768266344249218601695580469894619261419948055349983260928110023231327312865154800622671809043243165860272365279489355000805703644262414081668255534217523695248439084207756793407522411758662284668547246955169027978962574090733620745478156364260478869752202734445275696697697663718757031766036183599710500193969257775446454055700868179599841089941817009907768382125430484959459426920678295589310688393417900685335958869565835877931399724615611409937939052544264679498157724011244335332942558334866508152060435848524015614486038044949663519674360605948810337794030189666347029560767574104308640246952347007198049722203514795337517701072119000024012218498589759466368666800828212970238954761746854652768965372449077856725922732845561992997855617317531089118921661818975651461946706913572496422749415711739524219697270316523563538300297406304690989990986441503913397750162212443012149843220449731499568187275633086619533963178456617192368536581645599299083829546535972113646188356541184409809993133833315112128969966111906902803246384654082026852019785931086393644298804473849059903486810485442119729447201299779992247150052227945424548051412882212246082740258790779952873931368364492639411332319923607812521749718522091379707385214149521935308315336138028625240688115844563347714997496756331412673451544402346716989282100962195198927605587154596433931654010106573911188123549914281408374813721551418491905238507746400662937359455276618156788571181694149410193927996149483749319793265587816031589729273757778197601594676712851123352325917703120468297583189789425115612926857433087965245184507596647301599835811795487358159526314473169459983004448103671839121315611532231433649994566246893581170344616081369503413882224509564197159677182363245177750769753460811431743831871556690097830931955057144695763293298910561938167804267353186940038948756663708976259630732176499456359714416950866324128566407442205822418396624471430707515997074454889823886216008409533403656410683213173641224305232254945989968753973479692068647005611732827414630511260757832520650325321366036776489857119466604407297473116458990480109594746041554974892497837505542075995511054985504020309451080514873086274940394876138068876024313433492221845166962307256756855451940334325801841296399452965040083595026955564085147235470616767678132910599086214536940480525259158037350435099422156627093412245366468843943867331714354300588443839125582322723820855061340045597992233732116698777131445735670633919482811550853085770681971127654211094446612317466255195409473885090326048864119837825042670374998853149410290593322260431645255330388865555403749423228192260159743040545729236202517080039699655043642930919614194236585752155355634116822451483129029047854231203021792340919493530192676324844855675578096589571127693949446674913201284166458781855759242667540371563225488617273707818154524457262568000507363057821240426794910523088248737443054929837567036795177184091153626727193714920095496376307600321360647258301219430827073695624045131811606220547806500125597825493403423499110910086626218785120900862943537780345639500070546581542701337571768756405344773640042041231058518924851462443584424933994257461766015254049772080068715943837113104078019241374609759211059380528930325267817533900737185053595544929013080720206605431759030385027845034739794495239424951007993319781788575285541114216842166124242240580506397819170440964310760742732014715502190413098305340075003608177895876648691496233739465350761983654138199921277791231620078106454304535816680184555867248832912207843291702428557876596866799857710531121376040868750299650437535661771915724346739642487251795365955140248558622238676479965904630959565040204884814935588127891275632084165837007046932106329252691981111965045920570926272620017834466096506585489830330961449087412892708614599296026194256537436845034017436646766618951674379537049497099004673115653167993991152150723121951131702832089179638667046708271714800957985203475919614964906201242909558496063359145671575255532123349774348583052427332286660133445260306700644519321224250436814037466319207856534398563014916634826354413621642093514690280099376143570476025226876001330555033501518189379028617103659694567410328460928310866544202821947608386838996966595334644328088746216112350923716300146356753763244796981357036461930996163377789215010808081459781231325043393564492953293660786956420897282304099608135609551848214891586756533002224994191369103666562479090847840446697391398226079281548163947744968847038241181381156848480686619210312846468286556284377305458912320014423806615024706597634622270747124089430869271062017063535495828311505799629386557729474032331947310146822364837917962591989314328621524050465847239486479155639225412084010608975352447559454665739339057697022698588259531502547813959405368783871732229095159955215794865999271005142672249683574664452080582821739259981930818296691652846803081336525639165321812723077880034551860542573794302990638871453884623979912969191393965528926219833351788089685985458824198218878453209359104200327951252714496861179753792201756647058369511880948567321218499218563566816873595214291826905387656914468233485900374015810784934177598769937267225238501404237296417415371177538847008040649354667093593265081486278598582487406670259858186444700223395432009184353905279287998319694416089207945562186736624355381006729169786808021600962130314051959221816945581886382955046943540660035212327801604934603282403295087557573719867505262154123680437489186298730021894776930001359305535252242471243019021496008947748330490147601738049762237269154591867719118734704384250892612076951002466181256101474797841628694917218944391835394684541277800175434041513161009233910791194065213474257653277422990915714019544787882456982899244970209943745029503299653945354063051120842606731558617984534509888857987666553956475361071217944804798693289817157687985960320316565878059901461256597876293847913957937690754704977147113475983019504339743645956396052764474544928113956920631612057530443949211782540649429935161171476823532104349940955981120790041405084985978145859526107030432443588102100762118015049143844309263852874122698290923375908746441274264910316846021181728770113691437547367115776607295748755967856278601723173931502635715156727226232130341008310518795050528079905221896174301733569118977333342029663485734722053629765266533208386641225712889862130040939119004052480902954970433149887191065082021097036106698607551021753523414589821664157398483970533537462938423382121216435504850899452973770126575027158423179956061865119943045178600533286999200020074898663526022914660798088890459841800988848534710509777016078960285573314097378495427693107617425516949377056563193653927591965378572703086636809776354262087693241721345004669736931682498943851422002485816170050115809987166578795907941885412508096620575805840483980116295845162205235577731170906682630656413811715471738398150119467320468965959383590243350355352192423313002401768262825760541261459670413795383221541570918696313029337142309513617979615292952743507959490347895882966463465968321634128370197157959208616676907926705641217058654768989163579507552968970640370812178074067841543247397934755671215505792921526634670669254584322074997206808404755873079758566454469789090281259031742626133918491731307899666674054481450695041591924603817169001437981327587159286309778118390431941595001111285227565436885898302926168200680754332672491518216414773770639486410005492522065985480950336844638374219869334785315392954323570759274249213766145124173947771815533725139961417129756538296000139104321771699014222135074249678859763399636566013545291494483074396804564620859834543026266194176586147196949757670765672926643536634651593689671150976043806520557717388687595711122597317558352966452030534325852514817185575479109882300417928448915579923213442682456731980248834789291190714728622901170298020287880082384259994623489878434356599229085736275800608478396604279834122909801332067472801063044914924449962234762168170372397923861877865365496748814364448952520234704833986929406638211966581229161802077873807730928291921280895849184060567734437572820258151990144943818897343628170516812549105643113183591044448060323516703540466250811619011192280207592859888321930360434525469632965117019881847976716641272951023475328119464894973300914374140844507823712709938737020566453503913157402198608180975987410421773647163651777805301117051111467052596766454885824956499844500663648733468025440818408049807357761233952180391213576957518533867327635759054335585718849741056241549048193002004218757390815258993997658945102363171793829235507351752390059726094073920436534513705867964453730620131279663416102952468645556305232057185161114980649290256835872762727146820599342340418307805994780519074972425319913130425172866319893782238285845202155945207689990463273851547542195699305366823012759925552419659052162199744993518799353204356449218578572789196221656357361566494182324915825460827134326804558215272747712962849561856284188461984075712177057962534113835288335836874320182270304152370958870351812282325644522582512915204154235380784110962338884855965885349201385938837019092334824779473049752586929266903384699836516801316497046113655134019644080753846445839755628637154918601605797754735256132977915523834692409524197590101248057460431668737268214241291091910757935707765092392308705097104645634293627334328360980849073002467398730231585684823957428646417577114621786281544212258966854865397684092288354587896960739177538227499358180035334233438821143103201114141252070452724148650519729678447692938775563588471162334586700004280189038665135559571419034258130938773088215498522001238875502573293900361096072556203691720220254100019836501661599965774302550666495714789502952880504320843702883079505959956544248400841011370285378388342770360603546126312643756895260219612065135670036580010901031892272279444431088580151963293602363537013715564104175406887493407304640572366990263682081014105747081544880615414477023522252598188501602223276422992452660462347749123679111859722564633339609449583604183291861884318029191639649702653855460920794770788534693774662670609162462178450426695056917041278593584735072207917165469249800263779272942470904969306030678983513922710613798516383740157472055002509769963618207230456726835239743891134398431643299461066133936730959416485243631490107807078381037071561788064689370300480150202547800496116382301902849571469402726921828190848924167638665574176989252400022740155101769931196173235536534135247508646532249968474314539322430283285671607453217275211529457699446231904232524265825818206416154179412063735629249353408892975490897369137304639942339689961136628990006347241808972515626436334376361650736584053906332412974985162238812479645625974139801664842247256906738585668030055469352594005013266470546809018723830768294215128692563738828972697181096085202457739032419467370674295791314714892665966859146492167742110926099350830371382640034375365001053027133974156638933516995059231606115572598708415587946253610066501203222894599433651862631761096044130206941807793422013833307980335666677048199043459399334537673912318652835714959125123621436141504131678898268481566867095647020377826728626698802590244833954152717663761830720738115801055547367135027727416676103693239128696912269587548941921580589408046299162691917614035014664449729417606003787436327180031529479617317133622408471074872810352033021872636102034465731236345367537731638291474008219110137711666559686282753620573406278489633935460926816943185157897543573141443509946703969198566261312174118970988907626763217085749648038146427260173158905206864889835347478357498857529981415132239229236775499495891521313728099635093755702914291417945950625857848526281414751193525144898860192176810703774900243693154734615361342358695912493069022531200047190023869473200489557920967473648324607954208596031521634711368897265721759809415887805204496128387909378888142555463276801865954267550665783987679406981048479510096518785644299583197308978430626607899414687791076131566214206939193631582858847983762080457012788328318449059265113248458075764988986810395812462634750744202203861046672546377924354971024973544593131064570219612713812973086011676846755816310810176978588894789618617910780574364836905894587733920454037858484972101163486586724893201567887836410597776026304329976870926072526206412893799886109301498135281840320002908341555401210572360215111697600575713370659308920729283344791425233976885783946998945190159837799744586317820843358496046038374965843417651706174448150450244387136672560443604300140125057614815504732059457420185980317595533911871941659820453817552699451202333866846106086482782254966708265457316800586219490914476809811422551879805525398377048907800046722867137125593200715053455178064875603787161583337344858850607166717978530251683349228268717789291191131923753857218717451850288653933259357102684222213014614315236283800782888997558786650660531424348301146581541043894314991999173088919142421781086761889471109740730012637571663320665457810072208882909006271511316733720451045732756708920210122243950570171048785010621688834616044941164509258156809967966673718890701876914238415609839557984017995253570879271330157448473231014001573226675964741441590140537577626103186907309002075102351014472040842417714930266793704759188062255380073445470233093494590772176149230681370190875211896469430290484699640655714196415038251749647063493855187622177513734313059614523527395560527742300223709683847920741733480898412244916212628965890496277314446775325268068517922618733060090025254068104639668366334499732118210300964383117687570737695687432973626372882492435953454440186784707514315498172133003547740132704202567516242258785641327161064982503163748731539164472443510662878510070290372018739976467573947944618997742009589045369268763977712937776424351301595449313718126129627381422209022151073243898876117753471628629425203772580626531599243000206145008459109457050980865601406193617769121196504594223458541799169442665378569784842359617646263214015241520741815646551961054536879841597261417875314867736020384637318033239994107896121462663271932838038947632556109544616366315133378922922101688671441469432492028077256587338952574721905390952261425629342665524184834663140626610501297425569673518670902975750910856927266884424262531779460836257474182506840741881670326594713176382662161189096358993922253220753230116412312474899212455531330827475392350693204154656139691434071193000957650650183969994573425579948889671597776247438028707469178791153436269559429812816779076156515579375814318474635690880757876622431537839755837408337938752105939445383081138764346556545762272837566084811195214194001189016528838218583639895089411391687302583004127494101540869088276719612635881914451202162861291617916532199764778354492940072348064246416206650072083012488565532268607401977701126834321619193607749015456748825039405863619467683443367602291834281130421507757149188589134711085295219554299283975242806587178403824208438407805673611105616002928063933908603693758052514912077610725430135003318159525711503177538346070885194167565831953415843879589180026125781690543635766384342860945728138413637792454524294147447630342895730239842193412725114455788109643012792146499562697082900093317726788034747595952975539948790673588414127171307962063603650430423423551357871259377569988737986437406487205855261722923694525519537034200322829567072994194431907835080713185476981432532479191163192539406145284513165136282990034661093037632178310287477324982189944146912826353389919551998085419807146456928237569511663197500808340671298798241143418811576213418801483747837185813282273395371532221471270741309473547365021667059364010092438387074946989385469222817463636221142387929996659903181086869004376876899737012295385956158745897000194320452939469000667815888229421201425062852005235985241179483303031869009525258951740329569031862308112298690529633011768261568276151671682687182814510105794429196204546690746267066331717667103614424524769560684071420079766206023033428633676644994824711595912847067869482559601067807653550132820355746304117388032644162059880893218603062885054986110839119562415538889615623057212502620461513778765432184644672615795193170347140939705083019127353053088464400045289138588087059083417474956675837384995268260009267573713352322819282828509462717423743527912630690585207699713569801868176162968353016131558668720151390621852232829844833730111774071200940417130770572844564868801076016518904423305880632256838523337384717487136863635828094511610389438602545078160848726420666011963825138288686390740543901872075982751834021655781398805383888579139066713584219164160299921117745976355650970159415572425072859167938741502119961708827590133226721573471509835687250602848513079445182792176360818494862619429879604993699764871565942836289346546946910788940165135499653801733054335233763782834623008103261753140471840925628555873081954825812533387899555738678871717175335771718932248063322546758367350166540440377104796935793290163139176389409670666487416098917614414447646279981399904098007867189248361810532327604778447473690468580174225796384798466295747789174530628891281416940692285568153841156448763331978938151687689856133263138213964140549620773503963739885001624445169992519985277145130245685952704921765594607723962122455379021321178814958065239069072803370163119506565305958185036850475400655204763155764910682466078367858825301323462292084316938722060640781227973972561325272988121671398254441243712555467380853614699302168420968058535981093171567140499642978292176353902335692492894521307942834188321004645238602268399292269547599757416889945296734622732805336815054048077981872448804563472078291597381192653608252493031793671138301954651170204245074820062567043155624475045348464120229396246142613072016010374421887171483310250418197988971746493879273263835545911175655955372637721425596046965583969212661580622408105664665075300718795859329794713316280751257940885884533480038174645707067992532378513518445927844273017168492181529583155851833168946429574864559352790030916865125062143838176433974575993242439786217176376043541106648561051096394958903567466321212135878463261782677285321898361401831564237315632938344837169412495821042273565738780110243169137843209724538672115995729360125299519111088027187013144197032916327057888365706021306683693016268449617378225917842440696706716024249682759783259430558609194378172891388773053448475360416712440330234403744008815063591364799160218547281451737240286086122814426306057768108945903453156599424773591151141155598022847909592859315230811743039877038624820067701104371146378642668939798357403686093171263528599048321377273135570701240116395331107144770927975289080959372780068849000056704975058668681592557143233243989432775011992185828366114443295808152793187804374232912482619644710705204344069449088618558261042464673644034764084791984279907838081330356372809653090378061601316215233572035398679103033374343567944727041463433222645933861892652844026585781129592572364077513618519470620055715514400271855698690925520438967047675115257396466057439724950473316065121323838653788515603828919447480453202219996353727993118687101850245474935398007879616771865065642278226783131855540541100398499237314033429948776068905668234879285120074560237875788803066502806235868773422807036428934692661186962797985477524763280820675910930491307480998272023011519539257824067966248092595043238192954501616511478695304490819878283536449073867444657225255589633003831078646672114368777589528387249244482308724137950018719002007766495170278495184235665820583786291733251053544683053526504399325771337043200190170025149247326441402555431118750867539769163044601481042508980589009899356357082874718524318563139116353512688798665296168906202834193585920897629690856040687250227798054735245362901811625583563499602971607650495294545295321244394999111033035754547283465247151116031492923005227085922863190515022685709755552816804429647021261460140872103956655825502261003012120771859915653195190897748289764055244643066743355500885363438085992254977091514272277844538118627454433518969064181309312812382380040477792025598164840154572912704296576714451258729035574031870650519252908658105753734119889541084684610541404626505860819012176852435402452627817858824764920567716239557037421323369628084010550670679020860012136692904208050874313684558146935299402606507366743901897667372580867352505416886330643751806099771196025549642209612645655090304356919823503263229510804366085372763459658892210280401487794176918162052728191670280732561899375251157961884740149187425566217981439614829606144125682145193640696426501331280475350512701256396597442907005520351082519777741234990272850651919747321735645782141846534692022262807165823055328509866729450136847066435297027825820507272675029854522951847868380235427899058757210469933327707164334179346331313393336428784004430680373654644597265448120233519732029000567512207746857478537120858236527741064592233352838888590548136996268422952945327905114440250831238688669742874098594245018689528086337022611898461435651151250673783185321014651932127523903323794671381261273803594020389724270130270310819542706329382282285965929758780611498974456602601912899020300456204337069182907756343848873508334599244314322805439004604999014382988284606135100510320884028239448855129086627005359621211705174599022860996888957320163890631308344635942427653323451632846330258080418045114596220929810198718551362862900238588472094896387304127937530235619267086010415884037960141238339151589619986445544100042125207783801030854874232133068648235037375290672746914211441933227853869268453754344292223391328627525449213297956474139697069044011229389332333617975372484973508243958126531452281915963127423035429456529025686102999751956993705071718489530112568929293447815971992571224023714808998328427083297981093257071073442505001747615261539572383712925131090218871359832866709126048766675427561614129342650874190976169405955602908711445809142108612940838344738332472592263080625458603826665593579817049369393566928362675954061099181714901550859953510867882684855189539631837551977214963522992151934381026292349978160494825006778161867484755880460184495896478878089675107131400029351282775143855731823370606762987210929928867972710631272791563925539200323980833294273873470272807147404983085222202964358047809058088204628611357442831671634323378326591056143784851093164137242188726714716646816705809594687202030853276247880288957213517672945104755015830966120241217821092332736054865033612743853855017130829791734478951253549647071750434482696339724283815539836388697974830354217419369942736414506083354531174087722429101989841363244661027021078151511640220925491865939356634464462435133822562698720422413984183054476353545417830040949352960397647483714363505194349744118241006555245509960898326708401781922371191811104715873665363495495162325363196349938725150801610424732918373033111601575375237461140865741093856775734627316692087659855281932106076917316963139482125776868868951665763421340478394115817635289947592541311636331296391273026583939741634259505064461775123606408805063281115157103531043277683876676576364635979214959786879880797588174119647892224200139945370822342372183967769306798247631844018634312696468196683547223468025240097198391411977783541587306060144989047531699208519623130535789745854819796993608347694841139918909877096320823539543201820878432527001006904754760659862425708698477654296619226743398732051358294676701932197541142852458098886573812318720832140247672892889477772352670734231450663220695277446042301922161999503923875261446137566385301127839045934333266336913093381685390991948689064214135861789239149939628111165884670680455807345247847900519481550299964978689028685342195945592320742618896874772652310805580414798597931441410001313977455468951510413191621502479592142710589035958707533042574663616624998662121700452873392077688801974075044273693940381593336738789113416753348142609659433974506319797431758809696751799696119669934265242754513802336828625598922291588208424749298236612560659664765399386322308696548988574581114878415425809299376361885299628013007565646760516275480612314255753410633053065464130609402656321186725057226013477222528104322860393241243862763317469636192044878709728372017573529849040889334453771979332282632420503611384073115316908196888539116379559582180744075425178549874111013337125636595506295867867315332454996953094480912878366461384073812503085202061520445334453887320494250189031988830185098305816001341055046300184408952439947992342826285862391118659850816463883327647310296628316894692754859881123416915127382514123170931394210925220837030834651205670926243395457242151250439127431644679492842178668555581018763663741220712112289597939723184863547013125561966835011990878498500392579229694752833360951154664267585831597855906450329870655887650278430292314390705792837295379692578858473741376207929576284205705489699476895198384460303882311055502494958783641513277568333360855270228815389172207861419756238967718781001493727605868810700379729299921289578816671933146823412247775635085644754654060404687609000648066801668447845426398157950542366652367474235884501191135258018277191782340071217038534934125783954616118544591221119696707282103414979294702892257485619212176216116595901612446791103785034942488216831532694537096017470017258452979468786970828331224706185372678589422771622405643576391279071848930154821066555540314107050230608316942463392147099680454001721329955941374184240106736550980065492695323646279939980400111071085663528630460154820081115905260278953076048729040922680540662327441934886492044773667737427053277161124225675805252483446946648023201904785394707270645836644818489318003859751498442053903939505219620382803576226399840710867587296390954231474353925858247834143498024533157415682641449313202947760560010739655598423504396249468993256724436857107214716030523362722170169622689811952460955517694791767785285404527668095382417763515171389452156173225890456193459588863098319609689286542835021953696401269083393506865735235414880764772098666622479120574504103138441802088824310994804137548877160315081393829375032408694892680363257719745767996051060515556029245667486541796019098446839782610744695087565761852113719558961405716859407633968145460417598321744575715755369454479104075418155065895683706741429045184476374178291320533834642341054517827891583882628134940792914850382019921725527177322036455652327961809002173367223780678154815123040035582786249328893364102412305032966422948716882321798880732533273400653261005394452300324504952443853338922595486612156342231795329647944520889835307091030604872313397816577817717343717600489840540442391897191409196745360015250438752471735576719280168290984967790112584327262556953907224189483549835755191399475252646174658521873929325902480756169352675980971613604061903870872115446321658712635576037609926835013934982922116768023845987748190236415365405209864090007051141225905719156576106809347132715851691550260545758171814632910316471713778548329726299385903986057328311765750098645813390886055632098429553829537181532736693224400100405428947280827764514909944447034115304341617037197221509434883024950946243652508300796505862051835653183401363068876172407285243925239566279896051856857222165140815794253264564321979605369979236697253206787052193574571274167665464123083839841081693588415148262380741928457170164328386985802374573140704840237195674949901850902905429083514806306376559405358386472034340669123962814108010594140400474052289625642156603871141781057351627871562723379324062552416311282515071321867074208268588594865800736094400213568493326815359241856199879312906559110354635120915101786267177514635504225780799036715626015147403307217107844897208927515592757543407129715566168067131276784861905567354303760377419606973641906961158942706902355302942583724267869879141833729001921668614473927589385946761817836632348179485086507571036741001742562857265371171183890642538074007157515127257143002060487828507748003837703547200139582801875156040139380822002538425201832886827811913488284821055389595822165019113473081873102912755534828215283464324335002205778831271888763950877510792744837005185370059843082926887327376862811522594607619366700431025662682170523728248258893021600913717240631931125027368503705807907483453844563182495182657842608814856197586243375916499929370566321838845225843926450400685859569245594455143197503507648299592620160061675763225731544124420446828843384799707373665128140122698936568328919222287684228107767457905215962670628663211384505226812321371723756325643052245897889117979541750830118468170358700904815174490831246328778491047448211367150970802488325493693166082424074047794100999776206788402936910260089472156182853722395645706406153766452110405347615308572113836367390814431539761619255546221517888835771420718650846206942756943845206050232806963900732564709584936580811499905989243611405066911478757999611576347294523690896339704603903590634854017081624466356785967779692837066032580287319366846115619252086555787757906096963225872428750045550698740432891338834328220538761360338027434941795139358476740029961916312970178843702551527743409651843744251812562486215473535474254116463548457034614348874538098384920328792715008977982494577793872703751712290986548106135440476067345297705668634316410539676118359498967135397982664279273413286625854745561652127921574210716913507478147922627996045719234435515430127263564358312752310289507705961220824395812956260822362727103015830185675707552129397233531117128340683108298233603608879066169224400959371430686181953656768712707331981354080968477102427479340800672803603501569706429366092078317558580955748257799053017275216459486536119636976652065092534567263170288651594551164720962722369994320245082800403076613146042157761700373437292067047209641994158800225149955674382878730546824747992228080336331012319117119633939063078431573764507794207750123466103668314599320542800474824880997372699674086985030913743433298291640374324784834141650159963192348072425852406177505716945752996746120430738649332659146832783426532414624122985284565166977326400844150881131070809018191644773670716843943227349361520859972029899241962854193170587711682728691658557902994022705783264712126732649526122780811542255274863953667409950498142272115121360321680790628824201260152667714429582605348864115654659859357324518793743343843188278139272096737756191201364925310646950939583570445184343241092633609731554413667003922702037358974396170886185630209665353696672365022885830745031357556359840717377289366485051650618324356823682931182013039204863928864411540586868656160197343307707914183950018451174591175867760076188003519591480057250142942830611290706451825730197015823056637850797119500047717051543826496285821044600724372750456464021644933018618449246354699279056880949351030945210395121454627479237172727135227362716980710552750201590086858665614887809743069913808094662641977177906505036077254039214237426685996699599112471327314086204856072575208375867797369049567146058878136028423134146854958668188557468778961089632044402468984477888451737416776332329232508648393743914139460260784345230270109114478499361838901037128330029750102685763602438487115173885776150697011890842457287508091431413027543229536925958650775129010614916472432300694387235440774407936334379588277932503180627660397625267138042884790734743168031631787741942670522524528747822780674232197294792829003684343955704715429170581704636237579916010265195890766593225880063533425074943968502104666274356525065349803505810441771090085779249264310833975186042495926175717245003202632853984378312079297743580815011717772351145628141082490711934982549935215364898062145173806027631471818314185503563140019464152902224156831145351394305802083634828126257071721669322493879140469572175311849478875748408729217498094885253170496875921188999400881832960835506935475388575573748468972490654119616020664970280537250994791305415508936068952832398370753035611120588823383951706715602301422096651154386873704593113517337579692631047625627621229263988663019451575432912219998534004215895552710035655471860422185685154957643814865963000353414220654991292243750247579204788415049843055347245871661724649032579631582106402652024170250453267398298173204062505623589529152370861697084806186901816700111126631917391574002126072906209243943400609675270039363905856215825290185559981465986548551708963617542701903404577523356513049160938834046422723368984489355513525355122746583288009203255635399085603360274745861598688488633716016025908891946183271473727920318127475113570423414485603585777531697277241053186762194826830113659933899234666471591642901264681501516161304871172093530667633122630200657452981514621558720328025958647164971674603707653818350472070134424379570722195017531183860887887229013784706000152824869410958101086168717778593211332328415795707390298561491596749407513005811616473562642310517846022194625026647254377463425113314661571433237632392066274634214126046395704142024182281814858010966095510825274529575236103271084979555490204975599469702554103663502630571263873170421312118172212019624430828247844756251227030378170738716081556534818407528486989599578714378581492535810205243869363986298701990384485062889414971344899734232131034210741596300210585847730966530077359028761849415056870544046839529165615320788574484897673494000137105048065449772086813627534958729409919237677796628469688154026190737744716754641074228329933071193274088918198200251558896565751056045152776691584613348222325033157516249999579561685736762455242362661637534725233339739172769201832644758359975126471013915895111747624626654138994149545737370827212332648566626637952170507385346233130257588901149046599260641872643672049058932914917040485383572306640240286696472153636074648032803451802326148987312353127540811810948666689223689916491791783538049370074531856949542175201111985627386420724522317448253448402338950524879004010755618298745680803856243374320068958232496424535574813328108552101685463640397151588097558760488324424571062696021752298020430893101661099849527254149684773141834886810637236103691001809208651005344104825846876483992429308556152740614332667456422160218158182929657802208981115602581825724368863960352510038696746129024565347405823469507759474209812642268328719778022742464553237075868657524238871999473222528992409421509780076979665022958702145046355194823586291869156862954609940599796471456582828922903399611090465617839181478975368141748048590335586703177532010436548567861750512902531160620886351319305515218603594912602161526704929113595776696618377791177278925322866560789232140569866131488903752960704828781127830082513920076588164215340454468478451428808073078889326305211995810578796613570588405867977759050627835367304555278662267669578803666096261754755690204432987775170638005824047796389334534361279716945503115044826342308132745927557842697167116835704899998081013582952457305093489270227698857645974695556310882675746521371520935323993179435908804947241573401912489205071813157636656386730651368157358004534185780059284973941654882666899549862652080069470016921055080759908247904331087927370755705848152850171175364155967543821667588231800287391616275476258956110594914952585655001876613722164746142252357470764718436032974679549059876113524745063933839863186919374301394081620863910320187830987670101146478133029428850725092915177128559847990312082417036087212087470605210048964580043402767218761703818337209828204837606354739792483353591419222940315747044799756503542114057831857617397112475853603005016107947083136721111080968960851521572374220331885392034701796413551590823045902669743598080122479840870199886705494283325005944673790919599752357670461613943468775950886212655172988188148449920742491710959037644475600489624616183724241359117124695039867857396379219568373129100919256364438803786279061221735516851196022931250729154880732899977685225995324248362044852857791374279981250095239424963256273252364054203406839674299544001027169749724483201916375270630721956193266795302767938439165737738498854852298070469005507984485772354664947843186887649119815820661362546203448346616147588805392042306214421686796849090058428705764494323383239578660231709527628634466980799400005675634696716676958568864351984520530815592285327373247297474826223373063674144325979282999150181011876373648703950173716974810040801405714668846491403329730988268139168685128448814041805352751817700696419616621996936979117252505719023207149460491315708679153341387506236252952231994037027005637217664274061351270050773942082303407754952930625652655413245239407749829945682970808800223628596927993112196178608978619753726745014104778124221497044013289615412743463930490235651763825284860379406434755934245649040921506384127942514401344337109440747518465214945549526997861158649796520455884360065511888935554965554741010036312094464128083980046125623093502768118025128760157383599567067173597235867701792345856969463438825941554172272296667801490403445490964664650732233778105256348429885012698953381865076668507952259862926677462617528162592708243814228431761219490364737650443647771004064673838865002699585929445248915891854451831848164420459018442220487353812754842402484399082818389330484573836506948124226073508484603992332817089991929977523452967062591366327239168716698444871467409916396428504761473552225983502477431070999653664765973467952470699873605118505025009810892422317253773446804870008888402771073155064891103349964595307311442252658511057394038340290692156714667137850088852008378740896166198728009149101324444991117793088254227348579664672261099471520989581077983811492589832535462984114771733991942088541560668089183979704342044345083559816710797569294625888066548520333721283720649676067826919438967769205760140547789586869018205802391436161481888947310218842543499181530539593727914258104540151801684554951921334296731479226427932624055831132167363411840735953612746548454602264627020588319031232459124131793156763251252152821238910350858035754650343724532327208877224118891040228165372720063933432120259819051011218019426385699298238437595752033194591427002675073578856386249987496538217912246070149368764749998855142808263950034007828316257911218594787594990600890848378202118848427470918189280026483096627122354812135071578782889608854839104414385732029356787639065464318101545812805471234331840721615198768093065643848672320113092773999083728063450398699337353682678603312693989238203485418931246826844545254410852246734744709025924369853668736250345369666889983146567372207246082669434242559144933012090787197991744493409754265497582326692368797668237569158843140101314258259698543221911443064255736801987377215053071420997813211395037148090071045598286047562001729634389982490794407120173220566676311113612553235985689432922033155651563938012731811586865093226060488887607561580958926840659036861602392873599322549588428290468116761224126914311564611655038937806244205587768988520925480088151404139675124327256562485219353113426409043632257967527150144844051855690610364300870850932060362960695528358688692275033564831913980424891391967011169245879252002347956913035285352498649621111127987234336319239542162780620196063859013242089494247585463321572537337651266514698770102805138401811479244935027098061967369721633485284820672679578763858521306591659557009009295686727131536072736561609888301142504491576024229010510936280384146574688779845722615200505668180009368765208152191758638082362151961644164924810014516767821371831339970323224050189692654050962889213783288543669395966648931060807835291855368910093587256943629472304468674068007522613979727688609852761467618985586032749135114236269414669553833825838360652908585099470037691494507908476386307275861377269358025567842410717717019771203493105640421932788230880559641858966858441481888327358741079106458111808023342705037029637741856233956166016467884520013074019968402838349072320833440765914239770127807296512306935081206320077181937959880288849826021869551241694225119359222057191083559313234839412616778354315588611098705773890671551232584335061673134707371164108453469730307788076216291240675646314902417404938874121458193301962683340268881607005621257358436280410828978003077063943563568591457094949039731894111862153761595629585990015642876140310583423947419491014989594022080731740323918595897886918976876795220362587189713287617892629237627900531821903564582585724419378233997098061975034835878403472028486333582701135942963081004147286479493375735422589577281718035647392346397645931860041664392094518910996034056220949757941951665064408507760127526668583171208681582087201908468719045941869569387133883519603986896743020462724868969442268828752043865174187113008806519250354584833948373135307343489126673576248732227569722425761182186950399472337720915053547284313530302909051012502453068765727065310695935891125161144449264149691277898140055683864025998916033659424099533790661301155609851365179641771424081706564889001825051624208972417269141143783618196920064394285268711073382124600695780517771553054481829577059229470612145103816862650697984043422987734064685073312138742820067271826852538159918660340754728257025453319369585687663616014918081254484796422089848045701765106446998156520412139261824176769698863077141954033799078280997366509452712348873662032470457813834198820639920957454369646305837989455698679541479613972590324482380483641690357344123477092648451988363216034198063579834948259638166954113003701571658075141062918783385070877694635517055518787313279652665395273942369655437948440789203218189415484244299246725420308085825315270484218475143778171495793088938344567867520662622687075206096444488124303886053065862076114971622084063029344681945824835390257682161027432768415509409338916603616306823606914846503321086917030550121192865406675239825369840701170432808913503755677074205270910989512064986305019423901171182797027647099317570500551528951157779954075907550865347543974724317805472330851497978967029889516238644256175094768828869777857255075728420080142509395161475717762043916499996547745697911413923263249380296361467909630937300863234508805047765425626723471098617710045718942640963223420330824162692818737585466930589165495611317056681141115430070993728444257774794842345911554637342318851416988921386856277724396566412782964611114364161267776858419326983883291697673008325303662819291968383308534105247215505850080882051598115290367907254513506061052509692815039453136401994883846765496428054680408635319351523734593075429701271536979591863773910320436258442951686413370908042092459748426304239190731656868726700696657305266043264729501026706481327082559911068616043577201086508999210056707426348342813227313590057856372262942340374973058400653817106572816812818426565749436277096605242007920501157139432851534173860761367661877399895087902203466314433628776395153376415524931278632762909610715575018497026967046560220916655088597817986194103871095635573776287835126064344409198282198583341821612636950282118051825189380347988608272233614026501203648467028158995075889885496624646729513218444988645319719749454799743319599092503877375070927239360982903881531779045053749799474087587954313578190558783544249897335774138142042556848902716998777933389597430610991474950210825310217272103156021217462577946510399752327263502461237388301242216653406528475585094349816355514925426037400536196620070782618177371881362686720351168180581369929382755175760155487926199956023302005572539410742544390256248522913256169500103636535408735780867795034064960479671865375366006943263742896657881335398150530060849664136864907585960378260137497879349652212258039279152313410833570967013111994922346612934402211342071348124406837328968165683886691833278534032405078488359642555474329105584785791431353280069949930818856007994651502013485111207551982717361731021326669124952060165414592358460807484589197113679200455101997513836247730023000112014183625772421000482790555003314636728934801176297475785069731624319414025464404013505492610496062405449647969851014748731246118291228951941547156328307964500468251010720224029586687947798360669625723727398443657043230384183082061555081343783963584089363254947293530045956447446867706980550370135223981995632629569913312809105209654646888067367887441122738464753869535291924794596069347448848280406279604779853207295415718794884687326138757947820244241650122673116739265404778910536395641375996372960380614284918823279629060121529589424404814916675589753768660816785315108879376689693207479343480202405377089784657705691493635205193372301625275262438553978328626650093534368888341801462147465995030696168252705309665831330327126829120134718012515063629471169695793136620092619652350049952703920033300237435208134869557464179109779988511348432402839503566273150878203436770877536481627214826137911644015553344000096939812556801230222486011230310915381752026615856795702545959922531649899077953116617615000526403784611106659437060426612838442221212766460789287998587259000704882178966352859999985506502112063898604189092362231031890636556217554541731480080990804754944519483060872723887714274492284957155111791079022639053565651735505463083307933276342484125292691116177228215124081595788266219826917734883010408570440619476073535866933810960080368019148279772961335062575581615832810162740658335897167141633524298890758222441072128267976018518870858311042935780863439125477729766106948641480737367617673680800906019408943185856380371620006450482521632754900001643492720627573062644558295116770709955752493096921555644909272135987150680664381832865048943308755403579477110634350385320380526172857435845862123646236288808446117309692599295969774314558184401579646862152640797997244831015077346375139149644817879756145921331408057712862135333466749488353441581872263060224240003287001794410429664988040365349098172210285565434262768370885738116593136762889403988441674398829347226627624154720562829933967324455474956934452286153542835064277337252090377962589369752674822695420046879915943828434612218718513911241870721390491220122435656653200645052207347320759789563341154089515034931515893883761259518032206730630009210971606388526380923481915256690412465864962948336345131053652083743246876288942610267337257955682335605278793189782236635866332610944441244926778391473416685620943673943113846251151852123230732130695718944467370303868832522431532450095238807061078887500904894960352063419511326181296076317779285266405032171544541255616070166734668461627293610589691668827347287602584017576184721549196375395880020516035200484971723039334328870657636079456381564299724221672947434078672483442758602160214353106797588187207619968122288197121658233263422954165936157454022576345102632320297393508862655212680563121464724473898891091960518069812649564204084478334284359810131297804872005324600833251394527497849167741136194388632934860200351368135075048218818012975250639501772990642829609035253287490374018987253414870067231443373936536176560811992710126695370319312189855693625265142977104881489196431490596216002175119200827666926022019387134079556536532216634972976813417321315958011541266906170035056755584388144798581228077985952555385377608805951589984400565087841359324344145998499521451577254272092651179328790048069572963146055786617103428364275748856598238769681226368472905395213274480228610067886358668608030637129176048551257375756346456020968203905595556687516955888113809313073449882040250810198269893686177225388318924125775647196499295257857638376700847506368952408816716326227577135395405631881923916610902125129865202877155365682633248384071300357545679544751128178882115000225256977153190000853453140273732250661146320216985743680169631878450569066094524828175776203003369583863572837871953403712632958742815195137048563648621447147369046033098192284723133792668714383207577241888882093982738467930270507722144130596697080905786433441542397376191288640045800331327158889191119940279075753611735813439409896467602646055710683898002993277353790894564101575979319056530608867346420653600879414911268309159602797666779309531218303223778800014837958621113500713094380462275151716210950113521350083518015096441435857730450198177761876138390747817314469860101131660231347616674880035251692009696417077806524314093627312385180186745453955661502291325849507806565100366632220292995592900495532596083228188333467220698755458693627831897879693205240813042738778151898760714296959679644105949103144158793435558691442862360305883590734735870359832218044409268904398546222453237959911116485141212800481879941121478421539618961988542975725969194212076908762781901625105189196726609507330374737444934758405477273460783038527230297556604115841618674858425941003412386007347676671131546956614841080116761263648352852801461795580736439179027411499305458422611363428307426557842941055406047462594571401863143679057862410748600191192244443019360306874575143299012006505720019943297493983140346995035185241770065388872628433720949480641911651867878698368202586958734327234533051118519486113482720478900423951927612222061974403475094214224456397945231176020590052239980686108895865829716089784842577173737562661508162079210328602581951623791422550763726884730063041265324357730334318564869079434664826372024833720269028718317951609224526229683060437726123439667783058431863892910794901468358354340842928037450381027698803598694038018999073123261477959378809600807262758550822648966120788236841457610046449569973466434664808162346329810517266028017730479509833941596093850874327024564992824537509029147583145638887733792362736882698913989525930190510972381332150419445391128082283205477979897437549132277129828286446886920378765696862972496608422449790946678133322295007663829161739782824906948353095672724086621617745503864375407062248502992041094568584176326016365460500941190703327380114852593521636366684415862859621801469115074569943462534882432403375227532672168399630292772939614017771031577699869864117979244606718655848503238138636148705218346528381438240121213118898920082032487657076147282643351642537737727052033358659761494251230395319123576372007819939793241738575030616837835484700508376041634953174425824480964646061421028909266065380316298341677869267727954400317720455173531165366062155988007571970469950277645033564302777345293379963588784827109854661574150806328900976940231672591616888918921407785047795518620209190657624725270665029965885153185776619009211655177143213806279449299901409097138899497446403992776507022296596127844069226628022125851573299705652200290704862543903815818662525515024450471654303935012855417384273526393535560066284340842890862242953269215250647682089709450716138199980961391848271870958768358878084718314601899220194745300208342913301711513802294468350324739386892996366949518232826970511508962502662434656630634678398275874838563602139229672287703455976637771213543359686164030379293090255951578339678207958681698240377404652032032015039366616875925659572997254342162521544314668367353947014633203452334780704246940566044120017117383874114603610853368149261872666414858573956103229362021732711523981142281213096897074216512380146637498328156326930179620328338446855672711736100396079631424364396957967395612638584355411471722347438355611553671227070666729073031754440600764863628840019398840238503557509546620100707773637952476839226386801126776861010129671707859505497291592571055704698318635320942785455012004749766109772265358229255252077862765593558892440509214057629802359976542259378969790347942829477456831723783522246728232419762794413784217410391472604314177062541480183765261570106304928439578926489056745387350484038107338548562186323784896495042807356736270007128260580585558486385650623893957554265848975387017942754945866570757640841448077386129939972574831767953002249393586919133673671787582666973635023068830750142246103286090443976202069715211551894507128328781110526061954373653388170179574976087376963509556179909994028734808394133314211788459643549311314853322863580621312036904956202019191407401990985296871501628542983892471122742755751304535430112178506887691942565949717706217654979866343623039545211917730277262071410732689516898476643830653873543763022575705789435559816785073375997786882967137974028336570938909914886827318121824466020416197980514028870995960286868854565406269606230321777026649965250127689499481171645041403021669003550041824022307198663865987472457730644275068217211588435183786832801228209660900359931615972851662612734283790577536620858672277309447741713518364849343075967597632311913079107418209732682739576531803552956060553243241774121340340312516508481190099620830781720144800758205275424317982985185904101361458953346708127481145047145860590422792947196827423490845181751632444052653339598576022246779139300263569046051848330568368227580022652822723727729704887393437479519891656313999577803486494055574105217324200742367275564337180080532856154036582389599799279032706473831406077109651533069908430567318209354146457998518568250545492120575230610370155985132684015052110845363762384557428974345040626802661834915703033436708356355824150064877884667939714886950361457566314027916662561314436368766084532301495421541141267789757386840851042570738822839299751723170421897341897832309993230297942155240553935233461382775283813006715700818719022319807197125853044337850166411575066721920103434632383103386263595529580576833460523440530971538319055837192335909833919738578420949640312473256842107231212659539460544173893731968971530772992967761665053715644863199951900810054233376921707579070016993009639429507327076678494474137316181954345016121018500100773335605065107623236247113958793342107861809480225745504483262534283610436778491677491921143495133672847951465053073036591100870679133102452896815387744145068250582224526781966562116325937586824756759877716972572164049374819173615248192664515372009859294149032728937256759243666574845481841273580994712811628772027294677386546025423086151242821629471405121309973625608515089183213913863976263459638218408067267708382238170534822711345035854877387245344149911728205551893702226029138890261121477623097121407408362105363404243398854998429645534518781375603202666241076095630803405616907293146388631107731441936252750277755194270460011994454337576919672598343549148814842229104611054466129558600270338855264232088049152253734514421825804154111233546698023474327066631427356246115879774685186721541333166768648551314059466026055781653955549830074461098521107876191372530863188664846823075310446062011575267212862282645607216359776531615634383469791036517964639342062229859726871158801503608757983127008031375527885767454727751188895733738589825910585554456972095635361168907381617138340091055316287796136910560477828693376484551750161053265890642177460234995305976935901239467178783612771542173714992714477577712263338841173454537013034754870248870929291904185425995680121811188663780170513177322825640600579063931786310162278918642033493229966641533990007984745284316084350844794888193936584770577636860454459599343476055498807933591048000810486141648054505853736602605462844716675971195935569103170304234967422708255811455413438677782344515580153400704110288586507302445604071699447076704789895943454337647139485530802596216342067703002040044047045426287064899931298371712083678289275428231421790501433485906229151664296101751633957885201582838699133160258711424183651071359014489846987764271583221612663838991975578623749030363978508090006468419220651546836838500032238247351478282439231728332415010479538785065095448288401487520951971146365047068888701009550108327246917017357871609483687843837376912815567716983597748034746675938759913342451561371258665188483137497738625797211432627057780086725993614770751220566561410324500979041786665340759895735195100582568504095684258593224521888550609031635587561128801313982231132907653649364286320746447806469282284743356615311141606496772667963213694558531725222856488449531147981950078730632787542082314415352340470618044872453921043298085724483481987506647004677526389070180031081225699653963398035541365377439525305588705203012208486704541436749314187750599200827644301211851215014489824116942813740581382191363482219799592027469911528468402038847838966887370211836392237748500755699834955174397921040950502437060484041868371833596548416044392982398384599892313904841064120100152638378456689512300720038422175157758164186273837553809452836844079613042726899500267903777502769121732823348338667542388359802290816931984993451139829370226176008026240790648756031022137947593922477895153099911409270888518866621935952155512460144903119823724537292958641238534010957191709665781631555789871831841368993402907425341387848879727249575051255164568551014053161486972240733004122799021100778675273305669530650517369973379619492965724967139968258349049368897785609946447584652257854687753852273606549485203002837755601607402724609769453883683119814804818016378483723556871673101011999762190916347417567843145166272950980971346575432344263449341866788929327925951361822343368464522886587417874087876597216491391915030332995134635099795800618687380458214964805670865287118370651623796095204859545872591939453852842099313760767533995409825838354678174241717770565890442116638703214591785177431834289765478747202288265053343975132945263465231201185346921040563362061103840933943762487106207465276077617784703630903695044854533573515165800589983334592939157630340937760578163816958472810959199046894877754575630952662090974161379349127360257268212394897789989152303411805636027759863210620464288737134590369082337402134178087706710523037976084108503115261374124925265943882838086603156502316307452548901715724471353206898475499293518072870676362870059806036476593385401180439208818072694136276855661030908788691968343385481400117656028434922213432413773135127073909180995441071825497524598668531140020582010696936031448606264840827905113511721936460828131095489713788904637850128900532318414313787940243047247263135870461997048955255676352249861332096972694095847932885608996800575257749047987082770662028743295783759088681151837269576807056178843873695607184606339832482818844282554349237224839479422426478959848474202987201038684793008592514098843850251295095118443373781602048861790498377901387835182720622178159520949719409639326806075680048352608034241446164669914448134434372224680824887658820522513620353521428719100236916162738816138605400594196915976426575625070934466443047230689878995089159139418541222799712946146129637384807005447136190046559894036657137853730007832838882152449246500340590509511652127573301910518692875894334253929302038968460820824056924047746049816302044513729582274217599219085278179477081882771809992903695914782236194850864464724951634838776330948264079553781801478852366832159804862268377878347429611777147087106430474409918472674381843830946408269196349182773296201034558948692812869465568432718853919102371218633845259721551387641530755115529563895290688192377853167973231952379406599849259803713693057296672879695001168950760727012543013136737809668517516818356969867340150575807036140133092915090839564172213153999073520078120807537683634069203708604696577520305862168536468068440970010824346884971126599760252160337017401895409272885597512712504399127945141405459758871337469444205414898639561770139859922897685638461395050766227654355289152926066380026209085683899380328608470511425398741995525475278821626139830827131827911168498761965579537808998451175159426664717824659821599821702087302009026067066840709295682275141022718119906199696557861916640843080812977700895197106355889858142209592053551606818134110579968978197555503170669814400063546449912545421263082006828517676815045269166924047657563685659238385613978814140189238476978791229503061949165387076272335030570078639158178371402095942816407586315872874292363996696406774045720413995542000860597564121799683895009253154800155578208785231110437629347139098686169283604595659830117136243640302457631149985194020925863735736525111172782616643333020155223360007968681265504644477688816230954394416196241319373118039744766333248112583931612091476176529569838152509825215138573757098943716444890796553678460022052473933331781227760454546084513852310979989788576334001298774082916810385904309640387642303084361276031337287085610954949635560891316242309191283753496691923518256284283447925759915435658287233843177741342476378131644235653666086773722362326600194029129717761603878657017765202731935142197665063824926430232700295754446052678629368224001150288039004913297758712714840906929892760425234369880309302118729726708238957441222005038475064567917962254706301498572834802044980366563278435920379593316063303085718534693400947357919360693475322068037789789837102222534340951123902739455589595363507646540157235621629773465746767728014651603079917022731953733496251673110688222497437739905891324358163792471928731913272355521316807237203424771121093217859067267657446605409667908233962247957136145295983070293024643232860172363328907849800839932156447628354692416481109131626041286281653269781064965411184610047990594521247458127137204562704583114669059393133394570272905577756181514360357882463980571159143621391274193054594309032188770404908205104216023482946383299916468580620801912392877869903012432393066130753535156936494171488683425644054075264023935741944739576813700304067628451423648789932993586148390783899013669632093361905043677512813551150997276205302231433009129982553046259083077677975787428412117282671189467917633645822611900508032706233869937889407351575477518441695225335906993507318002406885220714620567786938455156429735076054484370016790682427580947963144031478807425381885873441816890519923924557329909685752265459920493993787641067341169173728066776183482792592365512965816815485574183110320516417386910690061593881653072861375753874483006271441533681816200866732730504294916282104163099101694432209648928200109165115189190400104238495289944386075930564834427355859156761952332161795022571259199789600701684063871780889265111445914028729179834064725695224031944386802709232127438581392292807135859775821316691553577144034318670514797243186723712003991860550691157752174328000608812349287485361180866406644490803290910002796892434061838629449852396528090414450865514528314208511958490383667402274099807132565634317284727927678716290066945303697165787490513931685920956873180185705211891473927832138367160069722322475472666853557411021625787438479211593369898178506889225144717474564667417493071078960473119575605335737723595201731398297299328287762278089343411931314694130496575963411780919394467649872790843436938825180928889673257691734013212306935303841326119617818966525924746226197366921019327089153107539991343834308600042426059268612022371630834366852091068071195538669362960919260857070704577552895753186942282963810516988072971636543559544333479219637326789863502208671920594971139331119181642584423231606977876790072998888650357059003856336898392500427645516069997908965441065942132825497447424009776500623697270310214237532327153735381448266770653413285130005021748608181138698708183393367987514115689045668203377747959356909856582742519101587223378478012214630420398999788672037627416309499077568513386283330007863817364760362386272147490334773325731690087411549215406949081569846126538580143062362589414940154205614226335562261666473272607622505841013074554550199780122915095374612660012275720018080256183786214829613293219058270351648394107491158265655212222627980794090745527628343472517858162625875402246668551484869493816155301042811922652053377741452354273328408992063044425442284773132948602507761557852305475675770029810450589870139108014223527226764680639317148002158935168317323562121169276722609956558186054130922923847024872015312270605090704070340556941690627488562550656812321635866906087827330260705716179071153352906857964279771820901048526876823189042462963576298845065621062500027770278830939303946498956353515255462666549088598274759806944131207794415013539397956929845045804968528974286247663529200910059181252852524343515340661235967971099227974203720879376720309879549872731082474459345250314904836083943539500611263499470554785730830190128149784254647033070399232706981008568726475790875312282442295060769333425391123612291220057083286715674944703729292557673782737749954051080754696847874077182344568169979792668400621315981755308326470209239548873928620421555733055497194860511016984251724135815462225002903334734640102398764457664207436700738189052706755436348608720923119752303526938223156410639938561047019193901614065141610142035707847088650676407128657318719849144596882793032609705882195689637444833248704812832513384620389309229562893480206445940272780485963688749847451242217938240443970972711208262068574891632536752911829459407529056626379115346916340653407973487228010732595208116387425238600690511996252608889918376250435002306997146790575156209043642454865978223675342801610175037813386297629279313921443374500885169335580410525235981784840811260951607720917720545644154412320513509990443460513317804545504651065422836305508566551847684716063424266133982975068570141704156149784078816399248475002422328539832634729093682578394331176350469428394988922628575706162014874324881582728804196943688647046135642312630452457049546580129895458296184887199525826665669111709350090407911140784823477022109123138508407993870820491096036719510625568462736238097788685278965999270957069836883629701903782049174006573247003896844169176402476168186898233184764186411951561619309766423629009148717586068252419980849338459240530102678418046703408120978629747982695902309559950093325889063779037877551250676373240091541220131841082073189085114606652168820787385102734660044402140194020670400870814775361700494367920024188508969170738033616344100267326220346647263979790872478841019082294074753886078584349512154377342887775250038034600077547375034136470197651509323791100176339350805008090031094245104259851548703372552589193946645894761488827722222692068714730132883755845362629902597549114181101312802981605191933935402517131657744799903179691564168844379295583613559114266693632260671392852323521408589862421673316674534745837638241332339201237535702773352541818507933369343429357059218010010495550491942557606769915153167883065221018534917953668286254737781071270902540462276543669458828662213112278495920942222299059751779227253416017973609331937136826935798639192589635491755270168337391479582862146235186504718073116942383348765226070487976139896925073358583458183640848559510991583637430171018868226726968603354561046043091507279085145349195097709632449867483465643168863663991797696597561447542424343365937709257135325511879234045695362661375137343700358186372790084638353949367442736542618726612364831304407508093827332991254704928039840848128313899929199390611094920463788453581410445288038583542183329901706930325786623847025762766614197347505632120009472069087159344530590495474977208317957011167723039084415163363519386144023300309951512837303647587328258199557708172718147037382148407360290979848346739098874694753233132487493156826254150247838745307546493127291010090601257600728916308918517953464061928254526002339567343205063868625193829745523781881358109817156647294907866812209031162914559424974943962829516652104747187775647895340625773047306173714853124664905393985562749145526081263535998321296535271208851223732135855445498976069399304232785234811249686401337410739543557689082860996037284890464396264013945307052591801788429447156713834435023300845542612741944000633451694749446009162824856063152449254786648587814794233634383865052449879129436421786304347740854929730148261338325323961286684869674329186088054750259313541107543991476400774582848773649691118422434949870325535398775623487216680838674602797031557776673983225899818455177775942884008305191252286760739554040939401514892066858028934451870027899800730248303378264839742784299161811770658232019334440136987650157173982328277861349575147425366729143182642948981725307919607459062192331834648379895913347645361527336536079720916021626973160431880364289324762383545423617611606780223359653328631706112055793137889732327649937334668210745256496692740998187089160023855044824651988158268369688069111797893135062380005783626089377083525625979911808401849088974478420220014973192991596886051346738645576208401188116328873301784219114939688742481720261677377204328494861862070117927216580885134351171250639691247947702626231807271819620241806085246138181764994848707756213224261037653503280292299526991154668751929056518821948229197108684339315077821834885959396346072620486568191768849691925893341469215110373249783940956176618345262382188239162113139617492863673450927047144275538183912063543974377890157776724540363905421951511065862966820500093733430258209877319351057688310021324549116511326186802606040992573057074348475330908826555292490716471608859693881650729540488828539606597723945095864557153466338784476760317264277773362049942918127104480875228320782616209383152479970227595474682923118225493959969569195513758613023147770018036618818315497028231117287977832430099651451700195818678448939658461843301534305280269415184838342016088281360635588999510275535190980769242944483474531748837814105384646286763177540757664014327196335021930324358465456832177678749011912484608318573175253994988875712728670297132616752480069415464593663891556002350481750100086811436402478274383097622528859050736268481607737902805405697054775601358785686074498669743865974429730930697160604953769361706711054327140078269867447051991710770306053042933626639255872343362410128781693327295228139237038265968951689703071714757514922608466878228687922277602048352122828543288177985122805309609427779970744663187340542301901938367680609868131627462848178587019280903944696299751357481299271229862790109224030826732998393896049331540466594350484711745332483583881529097732378926328633624818514180800929499078611266383964398793871466949934842960298838830870673686923902277606480253752055612199920813651802438534298262724351599626749617977904062361133132212445119336602523463553417397489259816888140535353040927676656352573410726523246109950553695513368244362780628711321820150021536557563035754905968156149975340366979361599806870538049485734253361919412343920995144999887313962507294478939305713857750448213828148471695315878526092912818250826338359341633830788772809823696229264301398629596966257561818429394921645826445970453033964706741798752654026529435634254865847245353110599224043232164215188295823315448123198899619670301151197716563829822909001022716970626783246746218419744329729674385544378485531856226420303235321917576304785641045282866173847618671556260348377672807363026450932343267878634125995122721555445893868357358846356561279652385033812148497339218637690443186084211984708467980915934971031833653429193431300324101950808842383845507194949885990415497718912901829965905374935714501340324181671024280291547964553072574548501708539579311867998055023437044382925555870234155794563212953218540159809658473293288319992335026229898130167552285938944961513983855424898249213836796415238111439649209677574201980410127366999386772583543148154990203323096882880225197874394461930672903389473742882160019228947433334952820987520674913012659462099579366032173393521244803420130846320044365021678524068342535005218475568492968211854410017928462356096073311660932593215216210636592962128699622747511219235722269132030932869465668985746905137947601208989296455357128421419001157224479458320005037014428591169840850188213859858587851858373656621281692375099467277383145858428132536706926915315872935651844351063027016134382709351672870392050962292377150765198066732736078535874850381535264466685507006825502827495911114095085552008509493813256492833551647167560595983019606835699297383221494957313531235413729912457337207259834190023849850781665745937662547868525004371465262437801529751666669209984037789553842941239107626915225806826150416470835950684110250115146001238498507216876098276700267167885039021797723829765297682836628953465994170657237132752516262279065007073755192554292866080981003543896514889553105355498428240790012064853971892865919268569056535816443912687407114233030402240379069264910074656074241753144838809052817660002553162223030450908989627559847900285503192519001484302761478530144515254061560890575452911238179431665331497323157839620970902663929878446235234233492982075858806991940591916763771728973809988361598982183686819225857573036134232078500432598965396673662542471659459110304717612511260808741744767130294047173645153251133310889218599553826422105570859837105372173049498567250795269282817548267434208471187230924168480205640652054676590583384179371424199255429036076770680655519329555693272703906866389514555078022105606791734276335063535292836101610015717671125500653285323406279311454946558805194370737386716674296244092908410211367694148039246540794203113102403009496046376311766668724123719613235122986997080766119125311506051220363895189507193880471048458692128405198205281104638016529354474237338304440988563757907257543769646543335991936388866402420292850855286785046709753719836252210696790417012946446299538195229784480331090396440509446466475713588567973974663770107882107701652841030333693460698932421280119159017402547715467757746180223853229804906491125423386238474166218766368373547675696910345039064266781556310335326035924172539613779027116588790594100301689912014449214693688013758630843777206979193442670631452990400008372538636694224373653183486062641704098842285500832586047815840072716346995184605384529431501373279267491238097358124100858669691124505076256566598526844288892446986719036950647444766872973639290452668615673321492298243205970661409318833629267223030149155477667275912748425660191615080261008284098820618166722856976827002419394999526456459910644607206750666374238408002607181160323927104278969143633012591372309696531320204381311519199759903975557996468882491333440463610256963913014699451357458336893053920724225888700416677082532573792385650059225197866439236455053904757133727193292910243820487132426929831348968992875783739436303806955667980815647607161839837446527055494168035308010844032171001036215938007327307501032449766992754518576378021421796099180030770826414973444140351553535356545388747370252531769686436882848200700383418358951866667214706838994242179754959976279128879322308492230609949223353166038244806640184809822673973273870653983135798276559565003886995707429399734753791884732361378577457767070599902711212508845876237340146563087598455470365978616133999007803717180604005642952298609050804077072572813423304655184882905854336949246809226309791717272224115732964714845931596341401685529216210699869311114077512925688387176679248914589840844883181498985436812338628948949434935197851761525789857303609624351620926394658553368659430738880540439249225985796989182774357965525369617887787989544942236502018691446339524845260859170341606485873947643001372927483355071499218517009192616657037215099369530132743650555196901662732453730652599621570320435121257654779420084601182550190716828659803950782224421391215698914565495067035425332603028622221485164904120946422657116646552269203171883166125447763395160988478148336831797097960610774738256361102907140669158859033216050026064242425836771843356750020338295108157921245541788894660060265733426503654050576809297586151871433050988600718585767102818645525446115887384660272093844594365454204011576562036390028092399186330869718588363015787801742959797583272419833675489999681342651714567939303377807421687372613006120952848861711261287640457490264935131388145753679356689280947867602003032170889907096503020323831742752422016469007345625495571000886391978929039991183694832104766953923860009201723090161034942837297493181701424604901397749897150320726556828391946063077045201310698672871367011217787189506606569176468793231757889123535602413440964976369749199201807255664240543150183191944623517257652857430554121186366325973652323956886358866964548400809858140706258534689601643405274311155821512836924523976687246561663970312449410690215860955046514259116283120768629546304192205489596036532835873239766284166081528681637979199419343967797677571380456438425121613177068724090545409800428008302495849611710234648852814151509780106316634519604602031756637489205180257986375749985694146838198903465095374805943935860873077756702950664792670749146155294719977361488131821788715699129430283466240244782562953679877194696287230865545485588119943637209954142573677016217741239836192409902251428056569261964324175071650781632999852729272371800699918326463656691797274353287543939052694515423407378593896976445116217407551642943310582720009086581392001678713170874561355462290442664134249249034007172570133379694247001506219139416851680618201450353373835285331788519819873563372348941676758555089303190850393018422766414650099490529990846826141973371165472404492780457461995724742437999745513499807402296809941383606149552371753273196052357455344089262018790361433132723538624842667918743531847772212862604022684310907908737912826134044849013001986875681731033325429367076511889577635496958030882560682857822878988880303636749106592569690815040780248038499407481200709492988159268427208649596837332313935121760401340494753785304084254174380170743004898559380486277519900452704957785957542721203343164417831942010380262439146668217380151745016945363497012524279580950789035711465007619369322437843708237130884759001095763093245786015532100636526888317802928983128507560958376113961174386090175695788808561850200158639409237783670464515310016417096340519022169886787758519696724998543755106178967463974466553226683326746955556915221519818103703840218387188767889801613256704084962116325193739345371983742830056684063602151321028641473550618980234756419146598251699210967772770114241144503673023234015710583705707147997178286575505313721823588739488447004844817958541320849523595489958675953790544089476802595696570389052690936719584114690023552807438649484867372993804860446331402534345080619912197390423403473042909843071756409078628656987890930852994485396421512696285568975162231956010629943789991121509681840249270716273130933421646839767250839941487072022803707081186154533660937739174402559941966056711321877088924478058082858423226949722168220991239207579371933308779034460332374774470563309427274087386273922132970426724920203006988787286672985408561297749411088425484215234095518614193143040968801888987927817957041017812559590527893175747496692987298327220106016529275810375013900758674036703045607625194115054080004927678196468348329903154784421479758817681729353312246495175301889333493149397985707419517209782472899693021162650106170790478156252628032837218908440355411148915901644144689325120131447288268834903200019372201393570149757615130251661400823630084443461266065790891209042205891519690394973092891177721826625122002495951406839523652512017340160179679647740952616769958719421116541872362382916045029007102442080677007175351559571168083435287837302493735233457859896458962188725217998967682702984759987203367394897545745157036667829280722792675114067230825030630958868003491106473477320687204072793835092197883168676402551580863563680281910095430650148315770449567981844586910928456263803629592165132002810404976146790678271432704148260454739900882056744176539747151218712354926992431060030169510449269092532786692094776251317081756571530999917961856095043594966354990070700084478507988649351242334762827184557853724983697665403908181618323493239927656472866355606005517197602299816349798813909349887493173034706977669172693401749412548696925619110784663060408634952115634115916433467990384088699977193205029629372923270371198021830317263596698590085805363975098845999310150425430627063577130963121930070551076206569053016854599298676325935905885800550754119866597079756589482616046180403977489390769070800012626862031897443104318576498189890421161313063070972273295366669642389572190469933972406753544050196416770498165669189814550158300581794075446143192747665791074767668705007625811448572406467825800617062276969082614781275323151658023734113067917053099805413578419953369915093502515047636472615490107055035661301571486341354049479752112033914197608710855416201764777752552373424400778305003258639712972830740350583230174619007345621984674794428011985602698996162581581340646307232255216159777433886162012224032325079921817117916050302498054607002236811265916831878952671707156531032624772342436748312259501312358748497499353732748908810085966195019221703321273373605167113067051730244173557914801916000396636025242889949539512325036537819293522962581111406492190236175228955149503773666439279838389828603837890153462683698839831857469642923891485412266737291122663314554906892478298431531053430681537778810654255914217231025399892117936562103527864912340126945763879215419654863112590757489942838597180769842695932509563172878751835946796562270226296033459618933506872147260612419617157807327025622229520310828960914649742932834399303351116711353615994661207422656210540340384103086349445543384077181138460669635733893887038837756029149800029499475109626697976558373833803998593968720720685457413982253570863244226557478888156692833356888106486062956307232266543446575627357598758798729933546101591846474984323614035299176610714669975310786228695194984491035139240274927835455390651939022273659598803199466257866328986133868566612360196358858399390682268540130943341890543580185198389150254443810278598134268397247052226836626905884010623795086266432852756869760153299032945862698901355758754099858075061796651098411410192105764731456856321453156835343633347332149988847085014951102788659964534830301005985122858495710756821202565051923164513669961713294931886222077892944047521832380214554952558548765666796559822372971630107386729198857622667930346518301350215945333677477263827255589431444471810886314728168428755499516430959273266833385271723781080889609296470807935029788072112810470228259932452487514141540452368313587397148386269321534580543819824045971003806169676957499668745978546490183861018786149838371837901760491111567783710743121048630437433883509880463661599325663235903270754561000469993097324293912032414033395625646688380111462610197853547369592407943252920860672540563268791961592863805569149278517982594097392520047709234203537912156048276139149087563645155588279976203483583912885621058429640303513468633150843614405839875064073328659871687256036773610756139134963548372408632980312516529284990961925693327745412788103073818305716220680283446661642365753181932719342832904787100073153739395245836878818543819248112533447621100995249085650079185100580615494181998084834055317790284392587207953123239514692043508529576947211410919966777770317433188607368266763387071746178787460156034894498591846218882658131296205315635137685150686432944887095212859308245630660380112657005703683749046039560652452743294307261850685061924664467799199179023224611243130457305422519025541202433760677288043708830119285518280844687621162483154040972298899444981905010473544378235351850208528855151655418213007359930353997864281714565128843228789608208411851298412410137068054800801146086033171399545894363384113804049859026732189278602979335366780344674263959162706280293755297523202645452050073565222483777308753864773100665966419860145672358213857990387733974709066483234493123896698028465773869206123651766076887766636021992952876352314402454204627636556870275868699111305238825785788665992601733616158051241160721322135791718203987445305622590678458403027946782564641072796866881120570661243171422683332727905427302275677071672332721079032598100951073832161199413168574814966889909751630714441759707712680356618171673198516263370175160973661369228626110849053486819755888822267857489288430567192172408733110648060452324428445694964131192438691867085410681360225735157730728244619366405244568073867110772493045823409746476245649312000120614016286181108451670801342568162197024404305611014205908551148071126432787647805509601666089492788819181709476501094431699064560011510943835204915685404020115550991921932000284683091054057453856423296436793916137114426683237059198537359905766115720179035482017692149041504131617494143470004689941550727274244432094882799129348186500963941399924546032704624599407910560784290336023070283067570669906857860140062555929531412789455357840166832920721578875056525169451174626351127197516963464875794913080493283158601794159591352188563802205722239375726702703759744134610600151818766836815073679873838172253116389182738204095729495869604040744893304322910864258597310702153984509151883895700598877940576896566923893249016004858241739268362350969843779747422059681219671463489054360533274698777088774272889245408072007990880103408176925662783129188063984426119554404277377449348270899939686882929342249401269324054107989507781173969227127816815885205522979974994526548681520004735948935826073127468963390000417566808960122851572084391520803481072285314017281731732170408436756359683098032284314544168931270590392129494472722180509846759661176314598786401183455903426084893695792820540104169049329470956018097832173781402307788044996746038693584807785506794386297680101277639119169984975310943510791106984333446486344668452865060128308750546440610324849275218194033477278591983025643941289051873401940908028697800182733058662515896295951498775269166791573135874817073160828965002399904599458870041063185495842112674012152645057051701827802490294872017773479311172335809711617108102667953992163960427083654462958343450211055664824492897334746841284020999455854824369995261271012910808628772957369908056475856964657135359718317611457929912150351434020767389182607823358723675310522101370282189981327565088330406966372972712229115362136882063127572378011156544278536621940993631457724576904340675417202002626355987592670552314151536185806591542430453116712757098507671830359387247676200878377617794858733684661585917756123301347091221085084290796446218961009603940626711678813226658883387010874348374068131651473703778757573326727322190110348496607322107101712350287319555214950687662553000991843202040185470338526058341056671432881998512170794552860653303723489330918818955852384459895131073813945994841528872424688366216791646320481118626561801444563646699873418082493435808165688175259970504405126763680532118048998878034270900168640707128454840929330817605668778484191606311624734480767929758742541190951302976119689185556269338306270616602746184019930703723587407424022184428411591265676014260738681865363082387112995473060382432048826662822982381253616223010859791379645677343902172287939672326442134306858387551434026572427067588787818364432517821586568615180563607809777231300597837733362317533917568936830794506527248779317652623649437569699891359528237192490598275603230726387946327716115099038381876045748950570752196678450344225762405969625392192769259451206367085247453765189512180632669492253159266811663990344952554012216556785459957597367703174007337063256789904987931925127041747651536805899803957575023800716164329180669338524270157319455243138572821292945894456889641402446197767715003061584133790211821494094573652352655088875439883966818702809542844373305881040811105536650979558601906009922872432529734554908775604962253496310030830753258220792226651180989863486217303726786389854443094788004342929657969400322455340542760212039037922351681907378847718202445422657591226352768812565792402412603115902307342296313660116316030417074944861929304879599536223659976385879521409845789722318960716083948950467291074641958676777291356755692211170605291967138366474769220559126104459622119777307912848808134485330936764460714202970384793851761926652849142814226196899194405991218804518582302682469743995583811086681509987479578784216193394144022078239409991574631195254270461301508098053122366102530308832182957509714323230528262218662781755658944331711888222501446234699799942945215092285129367150488863748102066871167019578004570948993827657738633639553813250746610979004136425516870542753653460106533987667917237824556810754818709711082412257814468923601835706933185395840764803731526262509656573762370957003549527178083966596809745716378469794767521949066895513892988939251321362790303652987493609089384580752286628703928938533188821594446615118646135059215261952660765174006657365466651534802682590239279720399824353025755404866679496772195621711754218194157764045233509026588453065770291692201883630552697684530389104451225533062591452153288163958939711766744016425094706265375731917598248712331370477201188438219528303320176253922316725318678297733221143798069624808419272659586653334679168367983892754350155465568718207614812675193587222969051882587476056835449491536213371976159965234392779321690105355431611092642856144592170885723280371323711732157187439524021116417854388399026959942718544556699253633388220384642534768135408007074343023595774929921343965239454581529274603641207463854593962787173473557534479736950767468432108720031728397000799663783969061731515239078772018728010936170100371867129958470907845735487617701429004238959066656538212719453464338783585662799817963012576390306857855390237930090257742714403931207341345816243238222744245458174978488851937685180040820658776839118313247227933025526622730219144023901492766314192804302309082662483214510313167742701585553517882938640715339902452257691710620217660735741890937771483559544230066261231376769546661751973773455972222409465839043686592028580020312126872178960922282796563006930760775811892441190839801358599330098363786932765930452199818572264389713378929553526132519710094244441325078344766092129938007151590971449970638399989427113755682341374054777109651190600904489901766989236893802243283476429110596948540988588158211137106655784744326912795076816833640744032092687959405462698632943267990810547665809052511268242041535026746924573909806660379088970689239010460528465092692586767487081798052478471623681230555844389423497449652306565324077230745898932118030407197075894188004130426134114735238386505485078766984942483171288252732118999590146941359402370976926621248635270322842251380829103816007085305482000916918974684229871215503461740962468991872857718688934466771307743061959885368341473401516662662514353457579600274783756395680259266875735383087959308712029818965627420935917998902157427304146815157967063229604309201789848491509752633593466756551626465725055535113385551743528248882365832790128909288782356129127703671701394112033322497684216116845178154733919977134082024779378429728511921225847224516399205521283349116818066216259865160234310098228734220817157834428253189441135938934769556073751026882533791484059469268911510014713420776586168437363466184439988218299733551705513386616624204371878094373910844608558474853699899254201766422884885865889984492035296008537714614096342758446450890313397452857633806399654122816828412009514505308067293616163239619081718501976033239142117634449405635648817345538864082044998281712830033868583303101502840214951462707359016817806200132143321348694674565006333460212101670404958194124800963093562800812527128388255624743732403753910044644321047305171540570154637363730865346055038219241701022092147380325454087295316333409104758631386718128512540720936452068164382318299572767464926921631560004285604744462320580112259713641364512237234574701523929042581804425852227245983010816146631488946275430899603370800462731014480584510501995067687840604731055676356012689963025142840648264169115282202558069379890666947203386306757839034643828218255187941192908769625559645556719499035030630470001522231529185614959147737345876501469026600313839502142695885332175069902524266312044241178810122173712160540471209252375827297032142717199410821911378331032829336346132624172563303775138617669285815609155692279366346831612284324404340455599938977944225827784400222425782073857140711483932014957135895624852979307229973751343412072539352122649966366785721557121379426620640809210185612477644096817911040141334992492158735694442755102600131852641618548053454710206575644537042551746260698156592718188416134827032125280504942516948361144707368157068831269466864551459410913587045573423480497608339788813406301875921695174892801610904922871921840119217414903526906600230479894928558089336051011285351275695917594062709986695601757304804377149951183174747692510046958639750638063122363938261066823408140466887494518680263543860220130168482987675117248260022278713746745792064035968174712540034855876164540494589391853767982899664584616286881905671616528266640005111853380339242135836709010013772090401484286327548235574695863967429818479240066997266520877954951130217033075322607648200690861171435536104220839152607943407934794115749801906451999430155388690868241243785077655977381975675897014935746688616203301359197380195868362209769561346996585254654290567183531180263927676402177565762972992086420407758735065388364098126951989601602566119142717908501405680594704458252744781924046302853367073209758027546821714762426137571701078914075859329657269301168107651577294019992895192356729763748051762378483371209848961293213348678750344151380890063817809221400730251617451589866061852513603730570123037836132234173098040592552489921446035754421243569402490646669265809751250938485746773074600220808652256145937310778805419195923577588810832195941502154597844080082852125403318139475512148684375040632198225980957273544604633977334526549061985626597138139378376133968406102569490392532024253795895436902270114015356686061602105090008058174579805436193228164154378437226596448836902375890492597864661485206614606419734354786524834865421234648778224027250121391433139703522584107583309938755777859062076081263748184628258714476580674782309556447328779127180247758098376786074798804274168931168421617854247908785996595411685180064098818883637511766364103583048246961182633586298045904717829240442841896497667168659428230176025931329075828056686659696714803620240331040744220982886726613079827788973930577859717887275057538636952156350916299406858492703250101411779362927322268481732298200831196135987375009495923748864980660741969089029189671474811960346998766739470947091772536086089291601579729856462031339439582058794110372016535155312542842133354853668266890942696128285679161396403529788594336113530608427872872157172128638050270741113774523226079149817262323822057102737563418266792370169620841280784144055231018934668592540191675885960920496128074751858206499709419526178549886730386002934726329379516134335948672779731684594351252663525795612169983205352862123994625359018515228426701364576180178153905835900893294315985866678862595296058679121514507715316890803602880413457697017311724715756350737991519212451631918253987870857756493004791414213235921496730781180815208466361142663850130908859207291404700552729491607930737741910008667749574796966692742351692946888032873433474257067163492374456781104953495735622963532207943368625986399532968213331719480185424815734593318279041854634294282101921606394151804325842063237473048811862387057001846882724669874038898713245735341386542737388242745239939370581543297030070240501466311036928868763173769462808115168875259445758149237197434838020348958456204809524564010546905879279835386813463010096537140693158225703382341589488626858448179543927208994394847030199313744130260940002894112798253401017510286114785965676280308654475621183393647664228464519648866631416298413577042858032660138822266871910122354544264249906796280570650355081254315119559303276171069648068313276161833402512976636688767014392768387616481500316857639837793234266170089840253213003046006618321348840995647250426103826414646089955923655223395437582820874786022455601458426393043512768747344331705268225048100598747475900867174195573236327627991649177077783606883512749416888341184336845188311051445258693737126227036118815272834177746405701655279556460995701585377355422561307836697380511000033883905639276561824206159654905688921990985322563751079505392858213408202643599906475258540002284728226071451234289807695535682999389295002429266854895364247088801596585150097779952594130022283753882912745220415567808095386343515535842394622877999147339543890273048993644661130004710327201807320973771905281902943832057953446245162555653181336875472346391168564012532278538381034146658769164851492118963258960199110273576354635738083847737609763688233927085237183010645699830442358801704418947405674517068951910218116258243000809659435532327081590367640147986945619833143145749309571762061602237517803523884267586709967476342379888257401379667278977071584101006839148361612485964614396162893787068972332048025868191661110082354772013815753194583654774694338088866995066038745787152906256781209985639444523951584949734094759423109448907702518842144165960432581658527919383961366654029633570007907220731715860452240612846497126544777525081124962811203181493930836525664541676199884476274958262136854660457281822846578189998014050208691147006189517580243257137135815345485130576173127663174921585168094251713551965918348845856310668506045140643826902408575662856189651790549817877657787937340240217389080475503317339441630019030696083615680203855306111245982944668195577736736653591478746299096685973400436352525217702604816700184885489572649654001562954069365351978131293640259627073893635646137852150394813452930811434572951178644383418240378812018542255824313902943692411084933820654534675443151125579330486383857423202493249472247463520398021287719552598279463378047798848054039520064834367100963649210376882064479510392115759533481274160348553093165438456185940956108995640139933992260896850734989859038063943901548095507987940220854847496949750000579182979864858306736179260750730259101397504067282226329715273934457894479952098241456529528604103645947699713242493789438212572519576074654455613464714764245972666218560918134002359549641499597799243643114235736601715910254800675120223340073053981084640491532342037399727289465929931966468305239113702801928277927192043307073221527190782568045733145119207328562048196156487159722269173992004946475305644097579126028948517820109810462813938165479350049426231099334938365923605564039352382954238174914573430819467268984925009704974952310862944165759009143347568178600560182828079762483526200813710888926256475531615760713814695041426787213482892944832494287046434917583073262360839685400860340632340574310068816156839624017431449029334960022051223353312675679885780165689060850788398351412397687243411816633016510966156977960827125022217558999762824302810948064042042586595459222282280179864417024005801826866490884249584607587893236843524166072435111190508515311314623555998048994684753341984680490176498332688802045063056144490433504351034067052097032211535987358067917006584904285866259101164046502548184775609465485666432683237915511817876277642775304889038494660132325423364655096697400056818303259932059773064868940458025870959037718075345778123505408900025190760470180788218549495745141793759447607229749322623702170091048088385398691953576994926441092636950213396073087541279355789030416360719232798207543301721066466913930603088545308548553734739638428855660251421251063627049664829180870828376680814900900813843184718569412494728638893795510809636148493396858250623648648930730227969544428889838716976873086027014315943419430304100487308671792177470277696427224244735469771508024132268146526871044177869731814311373852500363009935931540966700591725333081663268741813434350991366386688854856050095715881301776886833631315499485943925236828097711515291474432208005611141724932073608421903184423094317240253841549712385272726137610145687750474205567356152572322094411222125908574168217729845078361356149469944233096596949992668713736762068282259466605954127111308655663873632328814968258857241856633816022188440647747844700292259512365606298829887159719598316742765096062072379753408550420477077524969996818240094116709611987037009164705970864302987129217433407611090182402422620203295902169797079889938802949815124041337537735232371358680536135151848887590350775690321707349832689861115675935919686908035469553249002867596042444058555761864416196087964512333182154009248996516562558185324684277850019560070775674097920368220467975100879117524302828572770476502686378846009823244803936349479095737272448875021453789910878050328213603826741921279280927574928875186099983539759717352032219692449896264152447247092480916475329473585583274296789849060407977233349234506036601197521230950371774023085778002098292890343771350829822874861070801250336888986320556827426338918557120754831334579209144839434786264175580692693897279082907818136753984580957828627308830398267981160637172250425307006801900000150457813014620944861616589206348018201480808087665790732271874105265457279920376502578776478561462326608337570996829885926227940625840294004004934421459214628460862962665311249323413528948405913637884976412037921661768733260636623005260666413317693878650102393398919790813465884510925990679797296015740166605614535075963609244740079421796121238611867107470908476957954999594102076011335074369633461268297697452844573540572231777509496378019650989748377910549757385637022059789382350659171175488773356960111825991759514203057591150326064006891896289667110335077198066259493765520089517605099431340031003258904415746490262060402730320712876112546844929909935587897451269004780377138356023994114023518797386325769122746467519822126066339596124264882373780558344728030628947760210664582001464014750111588944103101262530284394221011048081138872391771799250004965323879421801027164505717708924656458064402977178181710706902451472100569757600021937738322099302126632273712523514119332538844627851222375811864368348619328486797071345529073701347313028523477759872895808547171336420302946922038959486516138043552795388738602941426910117563073818819881215966679199549080912707903613031312909858194421520353101026637077020616435334103668065742944517589785841934679983068262475964654229200181107228591463700862015304051989831987057803513874385190781699231668321807970463826859290428077716749417071388996390401730215482930000433837114948491426749923602093593536950678469289300220704420993853262991215230967617400362564110363433469333946183369318260853968846061041561587013820850887674688332867240065403017174405109041119019799359709052993723153157963233314613743691188057480767630081922802629274103076161862506466448623386118108891547764203236309852194635761643826523210778850178466143642011199944348398271279485498441090751371552528316983240589801906480976627765634811935515355197592897534503066635127798197159473874485881391981556729683470805731463221526754376567479685102744083486529622370880309240050033716855196996382027773037627295010228367338560469894223513064673706464441568573834902755974708424671805792107719175141682982177746989911449484762379940162916818174347725911818813122703789739276854269953173617752987254038302942885120372668862826139618983005473467828739708631009053655676116364154976706372210136109140889802749412819270144339877197269656447440474563880529843182670193200157963901797638903004962868002864375182335088789590015531258301899819847148917952107922416089712886958849067083903842548635510388596050765489038462221711756968128823755542763132384798182936566735382267472316665092607435424662100742390826007001904474413822542931445872732846306824315016830693249542899764330039971278205093278501096680202517091946033359402545508563482976869473501867433221440093972471705873271120650682244629349821780827660163140965585394398568455056478808526310177673827621973894747224238877095255420350299738342888816648104395343536867622284717513088519492052867963059320450525224476648206243352437340981729752221842156789130477189507891160848925667032085625258618308211979412742693587291786397705778598834427598862872033611103564649044629029356097289299909251498036713807561668782834128783659661957003796089705385089218042490857383629618818902173469196269057844288187546409013492337139435492002762286376648974934662989169221286490594576559431686543786354133439215129305841421455114299787857969629089119700440867658180617955024966136101499509964927123922909022035814025733874094767994616127158345067616821258094267160574523915819513066519689002077797369645600591197980392182169056830212981219824139336294081169880080661471036530157848362190037948305985948574767593136646312349568610866487500811669887355120316030373706281669199871643617329819206301676339745406240752886243878046243578476894359858206556579907293844967554453637279796267911789899485416360826715920919162592343708586134737721968654023816748264406956976204326486624809647432479723766842223954692009731369581517344883547395193128330785692548324914279403221601628616576671702736260292502558537255135907952892224776546452012942653098039598338547296262632810078758004334776884976723808685635456627497380635224939301716158117116421023343160269802468488483827569975839780068823846207008785698245833606361251081020060403910729657636144553078993228118549536497218179993181236506227438006017143306864878110219306408891256000687778714517572218916303311530087036417520397652371068992997421371974290865847190384366679254268175565821318385747055052383277260292651376146956976018103497880677012306127275207514417270947360051465576820955898911247022020118921306364861643111762747653831518984129113567352273761542255884788043273111464930564428607063100834310214256780835324239819814662125539563341027320018845315155958337521828898259912892963347640751042310763691669425878645068099114580230996668653273894541360501487012972465235394422338846082852305661779060313685145453785643489368703622897034421280585625558287642093479261624858309747904537172301436059754902755925231431584523529506470464950199507556543521146025879580759523050871495309948707444265904042646693796702820746479540071303180398345470990413878876797880637167832018193573002035015968449894657334015961128754127741614562385432204514364712905645165314554297505114481926696048672422704565923666879780260028703424005617374358114281172591553782525454874778550116385100785124909367460785763474014113268261147440610173670143614641948515757559353213171050037045440079191227679323191405937200639188513497768948026150867683820915409502415760108599831702219385366194585509750897127304681126044949381359946884799550780373889591745275960707011414498996637292543045248681602228173395891392226592802305291104139518472333064323768693877514685344044754617638641398196656776307529222562447270375018191903426127497897395030700128898878130900146788503142407511673215677748600084139372203365005479382587531573463301501841951415858726421525669341102749781722694074612198743662003606834185750086737787007534264101032997285094764087023064504643230102320022489491770090968948825501025369877168308959038454401102715085212434360647899018340864629761090820385060801489130342458704722297827182081786457753416113204769376928323482268396947258679566186199709311641724177133905058790056347770186947732508340625231126535456965719568570872557870559791368241951653648495189372260265892849666841268678279472066418428837676562195941234295054689862095472987624062494656704647992806044250065042745328041258265808910784501261794833755040654851653124792727277844458725882223632778773600663863032492478938973808791022163916893779122722251180929588153458330678949182644777230174311696387462197602334461682635704935595288184935878000455418938793811825389349863443337406659545728733601354060021811067788577677584977304022611301581421610425758663115951407962540724209560679134219069523069199941364862923799708452925905485694975788787507424511707826723969261868116800711228432062603948330756075576556025882558432199826883618484700430805878665721793590318264523019967187748553265883315844258618801714468744068979283790771087236340730631767057586333327915004016661781327509325184490682461076227077171839532945911402714756405219502317908936278263597600605406935948274381182770236936668775270668020054968219236616313873305917428042800074417252896658575057552982840742574943143183829439718205181457466386672225105535456705644187709112691919954973134488105792028109005763369012371340569932506083186684984562309480332481212116169766612854450458841400889441960110416895282652142379344307477754359924973992467342509984764931077446712243839805997561859091711084036449521893235854053599324411348245650649979815298698095740283712834144685842273756852344373584019232890640137623744305370101603145276863895273870626190885095777653927001889248594750072662891885133558254264314139356887830197223316135410306237330323340364480819870046914696951078260076243458956849703141249422648072499725676374891113697609247040303118285202717433819675344289741576931687534279612006555119081397503932810865311382048496789666856601223776531401717554565180846533211085665026079381153253622317793186351169681891724787198836277305043616322779910909934790151387051043770773948975565916059468013805630806157996483678361753978810116139821417736142069264986609283954446112410285366099393631720489938281723617254020988662603960322893140428505029442973073784157517955874357052359155878735429651352470374666442407530734188997903910750684559092824153476249453404059875465311549794300177561933778267138523505344053031053211937238663345958978602820279147757484369256980201237932710364325213173032831895101339715727593301369344669087011166662279425830456315919445750591961330111736656349739378053501853717574163337016011528264272363663324726290745651300670432159214010322197114883609055955345068973987750689263973143464478641181889605710818378876850831524310911973426390774711215184586338666234084158506202394667379111296902207032013222620891002884015261692906184291867436613362159832772444015765374730364044748631377704371608728618015053498462429233229974363878872301340519614377799416997872132131334592964147244698241807419198464708478170583054088612120114575446913978429592003465998925402476354885990696235257086666100077720737095589462720128072502737266587414084882819501750603372713471485720135192029428246564276342199030570861267516257442312003543043098098705545415264091518991244278958530335188964935899588083298842704081775295013452009533020791866050698690363835513111936317927933916363280876051081165380938438963010981058650087946696799321701466366288002306496803947621224809042957092290592452250113347599635305691119260048268540770767466142218523950471586721276406576046050511626663597504497123384184198119897202322299392129242579205465950411761437399151440040679013087223148504181321530691606289718345470070944520595009948781709649086877088491030505892599706406598187047111888571038735722300225774170990394420632597374015816058890905528809959791766299628497951241762543010166093513988349603061882702597810628101041875323527194873492452122528482127015435967116021952423872557890820524296002888717806579670494621961344153565506714084885216516675258466874883769016315503471061928740727165843884426057565810052472796396891805823408438699448584472584411330395360921052104086715258535657281337012141199174688813298839763694677202648083649474635296900779321926495218019297953902979940161343492834815481165573921475037550298393436593384278531886545133836761236379032526177042805103803771188158798954826183193066874630418013101774985097861400761680560224037571553585333281947061793525504271253715762242711584447582734317346348998587189398074932660140456474581747234345743777731159239544913064899158538974749012961021752074231359637527325730061097787887496779278522579619095375886851528591656266690664499456563318424988691994226113778673102061517022549170192033878528974612312543329701800555423681933454830403325911977506579098493565689972937271294092682366626740435557843751527213972118792532103322781714273153194774528418643826940885051956198943612750921283465395894407934778261769176691213179023389232520964321375525671576060443343095555081162435616909170094785827768077248186563830573893006528489511386505739764630147482609402779379853909033447666733386708076685177620578993985542461418787261319810594376259113423895806332207444196216934469937434598673785600081537150021450391243990203546894433416564850514525333431250344436420651998111905371393794996066238502883693943434619379499377613617964034854425447704068773228892214119446165416273062739466312635506483398364251328653579582740417551774792883752383787073959220637689846051902031779571926193485275162712616451940171383513665569132957910552860943002766754005133016501501756706400462023005901816838031705952671215693656727798266095709727190631399633651386086068348990631289242238326243189434443522217162897437956455720230005801060668611842777440319593488387070066354543621360768053754894087021323206247237781054475089044061281549709474566361983353989455202011901646551537295119865618758402950434791518075933092004483844680275484394557045926929092872096394827503915590196426002122143183191573128769517929610999231608840546236922015864234857603551182519491370241510171658128016649290128604797831575487876729306803086047407840885272022698547583311156384893164236804173894118603981670458827672957791835641267394883392468242968369312721883555369798460398614240303694943997718092771335325517383460008475841964964351806683658500672231714617118474638376331793747493982116930042937683646377786717285633243414815993923680404633957126490001880431574291294682944035342314667223078188081607774549446754270745273333397044641000604823510658913364150177487284606700056389769523151007203372658965294907711327268218643955362423922857029106161879622720297381807053286706293459735709398756377703399886422044615635962793909541042467720039282518256303739097189120523121176027053667172705462059697289285521609766448695389888002651586142390304181024420168493990596535612650293466728969238963281556556270057023857387269808736291818979081339926321376120567481372312998033911471826553291585660758487080933518153437314445827225247194064297888972974037613978272066800466043643691691538595268940644360974914890153070346533980089158218746012603577965914365766768130031834428210963906008835054409047657373913404804186021997913514520928192119563760366535392986541190887647968348590974710441236430562735360066956673175050113909527602017499130788664268492006150002093149223006865419726771676220021816117020470521930046413407443012411121289338901430191888256361354330777444680992715241829937587624302635724748648161799251063360294613370701029922036029599899199641179882199822722717055180585591418769865840802987491528867386918575084131232366844393906449744818221292272613375671197212240412838135695892465342973022753203042258715106369396512370714102142766338559202011743554374043553344227977236606947480973228965633578299558071991014595542949399725393529692477355628003925841540072126930196129804839501801616762235947092286329196815869101593902193366927419721474196754668211026459941006577914273225382641503993690869463122236595697415252772480771575650724357889221148105934069874779554202430353617801548140385747784236071536687199910589374521166965407592581518566808284269814617083137599324750667635986578114078918780073984779613252408344030510161991692278528436182282674631547779853877426102582327611625486909840819597777846025073023248817043884726895116236622587910213342256122438654009883970218573654664910134390539984108811824251445222146070110903346593332356712750546931454634814899477029789847874180199354220004347046278185964725856388880822582516503107105403594595760125938112186908933391240853533963208156081836711306224523311836268051805903267491848642374931389866260147704091130754057984581369207726654601908372130414042897037170371619562166170313403218779640770274852358428603930220643532805823742866640470463700127764898577006847484156668855196220180284845377074956180898337219412001723909172744824557345555779305877361572137282801701590141876182347537674353286004327970058030529359177026161310474858251009293186015395710278174046817513780916625277968756619158983629332841693842719437195242857335370213857411131924688367203419420183313460845208125840391929631268752170973662374176311859147347843699257024650059962551940715556665233990033754812612962973180199757337828599053126575443253851458480330862876697897032156727195177893396649483284757347115142893501447408094283859597980254394524904282727480580799146767506826884038069620750072492630888718159179298549634794413468249845665151656684793496666391879621127486417139967761923218441064255079548983671390221166991165696204682665869712997543362622508136428182223529074924562285695151594108869905752395343597438244226058542974764861230331229753944264075223681913894599586157972445385819824380672689062125747883728256462094362924238060503055947599397820893157302585998583407412022330395755624072524466920461551425081323551708697898379290716443310539870770691461399974459847490261176171999220913424805205295997343110571126212170698462356304221025429894805307122167295655454591144658717882884231680229229172578130406132479137194308497918957350943271248981733508785308337300215943081220889806380505927382295437212188391413105002033988516317133219974886798353952296151513228055792683580692104448704751433097780839802167540972223933148322291465870350381699409873853154353977766523545018307500691773110965928576133746908214352476828366969742136890972705122884259436965357632431863385876644046184972268842941357951625674381058192685907407022289979116592976315747362948987657661569471859407044323010938858767834447036999504812673044543896205821889861999606045691327112283332530122035305379474673535681591158274873993441529357295235406656442904237339191231409651023484859928719477644196869606641480968025540627250518587754223258712722357234734794510761451733940153671029157458637042079811867075555655049589707165606630165672755651032043680509989481142701391553911282845072313225250018140701627598468271430800028728168401264630780695344066507883805560071229521087812733799474288611825782530387137036313096949421667777307429174180424963651164996517611487074919464430327560434077442011151627744972421469046175726665436174447107608172672829307501772915884409787675027313853930387085390302041916884458090676051959188439331166126928053523383327753091664688983053572422328100533624373881002563968788690050590840526250188862132547307558370275853858822631496480912151522226589793533139076916936698163602775325961633879863318595368721869337809718409580294932032062148579929239476664375361472774457145795736875855790753073028270077990465624611615965453741066166420408682339646837570400925523842856596506217417976605474516296781999789410207249119382819365156720779740513877001659215046999018862444912408929088048096451030762930805361323751858721489534795835985316119149673214958363811517442806154711105780857215132692363155894202349175188334640315849892091618844565477548889617901467605150057323670605609000917480002004054713193790037214696196781393322615194705808129658582257223966925416260664016238726730769814903064346088296339506417138698947522361341466309558577551640034659217911904785580186346048995620745292622213842602936819301594285783245505626271921603172615152352838775685054610176821868812325799263566139466268013300365598451966129154929542003966395702691397030396904958443893091354844739617877588388057065100050322282347732318982001676151068110372751600460360159248819116474959846964086169025183440513932371256578883183550947932471690688724029155574933913043450562388863110945365225337034516206958115440772129830579166871641325254651308320142932370994721318188819048807799182967644934034215961704688871852789888872753345711761986268600707899560366106237615470683334395849206451340317941455609451536906159427196192994960619486077852043539117512871640548195353498089380234037689225801422538450404445046888707102841469962911802990683950048310530345741417583458214735657613068600401210837582212865359601596740943455828124527220967910849146333383098310318497259123688050482963575834839385383341217585674888238346324374289915580670814677241135384527069466708498137666201375925253314449310822863598359954076887896257658423578807219962679657219791910488087673969346159029380777701028093887293237478339284040231049218980157838771036707020530430000093193018781921545855088222723326838546609908329924588349284125941605773475434471092989678839124292641786638535217239401499309047511843479145192323402118371853296092854318363254532980052490380058411378221226897601164482224665405617556144441972587019248823474612492489150139217823516310288936411119387931606497717075350148846511543120982063261446823825674300952516966923679724026009080150834118086647578858758099090547095728283718390672428982871742541048391187763458170677006736476847778445649035546250734857583233059531638423457441579515243585430646831596691750817463807130398218144002406080417430257163005819318361807615805298574367306876073025128079083346960599667510366734405025227499388650637186269744033988426401360209379308694851604059507399454971939710662437430366061810277849652452268331248579381519257665513721200906405505219830993446035202194708161747409239461621949683318527112908568490510654826785513280031969311038859709798620846486984884531911013499232711743278844459943768715525086101233791578048125522359156097586800137769460982290928905205357291421337852377934758805062283201049890161185405924136055436763040004291966156703513057514348848550772343103536079769320872118794846858240860670986249470675437701900242835864056714397543370920019012816785198062722374155708808460352112259260317409775946630803402001650580135439315868844056752433182694119001917011090870665434392589433777400296113428902850052310249577657047468950452173742934463559460536701843874659453177491834389451231296088335967272408907682969707229266918208420047502577488556822446381609049603486098168981700020236287108580918743643192297743640206508989544763085585068064846610904891605596677564237978306941436075084943192069272880296945946426197768328924951728108523782696438035110711796091928661005418486275360233495314285871680643845519616801072978042880754919501634558144700805293487982012060100550580614907112710036845420892567500616974387889261909434426478411361131412431414337527710607789400719619282312240936946372469457395524855211973808389904209205922990187480773964089668628075877673386765575581817835437172577233477733232799292671597394687702615458619522970229903080464691328881971229644171583767946074862746910470869658378372678773717597590323022159676191120358367474239752426205164631327078070088097905696350788335813755376071303767726630876179515743880993258626938662890076525643247402740252351320974625543214243864928890523478485170045043934984839283491016311585157032189230418223936308021319467644916416753452890179505926004484388502401770192984283365320901106348627780175057141025720068809908494920131844434698316641376447212398981051329305478314506607501561694890765970947281673576749940517068376298279247853979642292258391370582483724672804108589764016898036425094000118710561087597696625557407568563413569633649261486550974862485470899062553411063275062307475055220623117378681246640086752197144884389542994003727332426740148207561170286251507412832671376681780164947113036098903359698108512470134998455957774175617205397735955588888656986336456027111462416321295024184578835379541853490869041062734848269787517449968480484741517980262402946097495745753648965099295101686599411489234907999845646879523856546489394042428549810044346023133274313980457738153504797993467752062605232415620085081514903646015269310827299893393239640516645688991766332699382324876552665559509178809087735696710662338592541803574557992556613229662597136194241396476727291098451703828478795256901805940187323441170384171814498223179200998734373087118771778988974196743832833567557656279969886948711331002513797137881987287449567742322012397735774512654762955260904380397726575385904103456115378819051487603207199871632021960536464367679829577190909476499156932854701855036916951797848450188587435963838356545907943756739878090304195873776504417639042861117209717886348371672934043972874607538994831667289494047546713278803628403784667956091163262271085529013121949681227486409128999687517440117891439713572408023480019247238827811087167644400602998127491193681708432912757532821057398268173187258898205270716295031736218773481678334446550157493636559814915321979343744011588463619938076387939720310802753882223653423190627921423875839047429646058208905665471541914716548559488295789656869344868950213231825659274491192825940307377067859383844396694962026236046535382442977830342056477007662120814824403094757693457557348412446847573333355872441560845964411777013664876725049464982299452020963810430103779400144294634488810052373902977320659629021490577887766296603090440026765317749862912594701399519976854895658246189395710934175740195434381047404832954670298090455109789564295335796366341394520990916191642770796661774942975553521627892739804137082411664714680499821311160973209578613021681505748380814128166559668905168458226828575815274744641079115212281663984609627135730232303448792622494777595632967879588203415727687112903663132058872039438425297098951278027919451242995144936145349613971557823226493005735577657841085389042396849662935060446336920648457452712254415775998625527781580704525808091460261439598492451735914918244621723675398491433270201201202741304226635628307213018726309682831452849787179272320286509084916058046290676631825911550788731258850097912806798836270679755464908292538230469905647202341666652684777810773438154408905016084108523231420062712981703804867297086507444043701434418195771317144941625491976008942978083574408233178676509307646039997407038422950516101206588748412597739681722407340146944857316954472230561233869570653261916836743516176162896786694728875867331018794637404175405715832636501606952455144910772385624769005846493133910319795192882210822563153114072839181599845009686988211719996591425287024798546074577223979520337223345180221663002919371449720013079602267124781837823607451297448772207507282609542329880604758921290523214607737507657016473985140967821301963144142117912402668835186838594684586431170885079026037984785317431159339040134851009247294548372880421261790867518520898403658420975437452870280241218725181452096828644765103792736442491578416745726623216967554444929527621743580379140173632343538516883598255842063280321164449364212018674953922815021940847358365797691423398610939484348675482405215762775277268986341692675470641600083939882880488755100307229485996864216658938776250940717101936679221245426346881549484636651693169646601791773954342279948696041145311449504306775104676740838717321020698967378189851625168484846972236272329137289880485798127808546349139377431685759747731135839613757490785543677455577134833054418311057848355133148572094453623213837288415764608646606717277583746471101941227378014572380649575786659389777810926508917436259930029298304154737062838372435447184851345333728248832242497555521207264600741478037649775348190976576563281671376049255338627374920284649514404488682479047721590411471249129959497577712267800144448878494673960956965066377188871987200352432708472343938318359268295415057984568699753737581476048801161607298715904526773891774227158076785025136849893973049802799618972627849416204466961554929599744152294898071713743639377489676029032011827470553702961935472681487035967417499802071806469010785340762149073590673085641465595534569566975149340694898305120733233920987204493235537957545332455933463385209464567703816790348982342014108033711819867010130866308015853492077046019686477023273221448509163189368717901685823618531065040354232507347203392490781722148288754263850248361865279397397561699228889153103857991996568043376719181118412584295218689989667941558200682771364354389469176720107931898651899567151023187674730257082506946060373247170436870055842997393779048255284221162292681781246972160926895587398406434368564366041870383618004652866271181167858786399866319400738807753594155816636266802949721084633979882701893172738595763811423491617453192333521362047582413838072585171425582975814860996232532760405179328084897222576213922640987584446138829967665819802751492791558681445595018087488636028882565439651595956874815058648886309714775765171883935790920418645005427586405680301098211753711525775335408186627910086299672552303378943699994584709285039881622994850332072409795191463316385653314721127608598056006196645945552923714061373561853641173963738540917874097058099931178657561228316326465475802670083439006658921714689292892172735406546264442873526051815572503893449095452178421411817663648645025641631586064025149300326827271939683888284029298441497541989281617566096786606784115498123776604657558107612241867708000856391859248716059872646393688835833779506099702146485176189286929732464860860041683877604734996225990352333836025694327218404947443693191179137721011711708838492265938615252635277619179930923584904529439908694086261951892878353307971809221447662378016206473381049628068153035424933222776599428014641292283766843497543988081018270172672203787960464685757211495913507741873149674525162632120656853373816608867902101836854288347450799280679523522618719391969869456392161314539208972576174131926615576352233802265851939505498129322846524013418434477888375179068983201647304175079993735176112989169991751846521582704415319643796198278686312720204846591245508495932053643913166394262765380668632551614645201010847729250516260217058888231927061683437946832497087999278272384109805887964521800581490717120540389932809912036749893985788127119419061177013090730227995877230152009979431295994936454690827623645818866023140403279131796929544092914230605641327904804252287312732723078009377622679081351107370913814175980449734683225502613463831431529280493758340474629671186213745557058457006805059420977539338095782360839393296871453651750459412924613313136031386371526967287170148946435440728952390986174111289401220079670268569302048095452804701910290837729524397086009459443832600317238009171797713850700458044630967229507009132807077450827916389161513429018290386737558343981123155558610765850647309352666845392042448220972796646021556003915735697899799628022422710271058986043933544947952576684877991142361770864529165042896495432837841693448705842709491288960703320486471513545508976267676131400276213442177612036226101741705835630970443191474946994359498445719890853737218279298167201927758371785277312785166061487053017675781814624334929498907312707572340653309639343435309416069624747102207569930460277533032134096551277502996937471101469581998725786346790878791262077018779965537180506355320371888140076910061763173918491684397479212639480865060551567979760361400677567792240827257715890814766332589036432768084022689193568211083558072999395693201359663232281049023153216288385651878591615687549971508612224519641560842243723659739437969809222325392875294037474137096143573899070217704835299588442835170510238240076210683719477658216849031510294636105434184992275485713373921808846326189812552032427211199599735036095795460048907904748469920812789616211939288096506002730133224762366380522125408524528880895008013838486113568570682617928969777429996822065587188754441184073763943235261527187365007435918612049239564982463982271649728530368324381776261704314534227013802163310874410056085116926377875433177409248586437018944060678444954411523628756638662207268353730701454111407268303033082672389241638012428282853180349117416161072507456383714628282812294722124629270528991711254824818673702235464526191737346115732413664107748237362754637050061041226714217326620370237494637459437850254954644574619471356046700656367321879069188319419849658744920887847682904113767495722941159752853952926647413353036714562339240734157725426027577640492916467091416884835426465877759482838794642574241614958359757625184250761418345317966030128202994858248951898189761047221078452460143718774766847688881585451546080040565062913787593637602091696336838715863305570207499201945082703115908218612643952656300821671106169040799509786295750556100631398723835991367614926667380021505668576165856798127612671245086012965599283350228738728919624478142540884864803844822164396086374971098752626652383846558152724492165348511128097290916103035904418513604453447776620717615952135402564591086768026728203527949962735479693906878173079908680317166185686023332772416528799926692185371753095596698127762259601396082514811903514449941963271379498203578896065390942559934524404374057164502792097241306914819517242177876563912336677756243896328811194944949371784338863953127083461899599177305575818319487689529876221834614085759232439268225613166715376108641534610879946323572279516995595165392072308071753656334059591895361662853754879082315860562820293044926252391310378318188829629466314560454557289353377468419245753228967765330005901760436091613600959659750922313920811138328964899427697269482127562577399882838067536441412144814758620448810313367857686748926292453736795242253733776133092375326356026083936051058744169818057056407908257513924785159092755114081972874595604338684909246595919730027729584866290675240046697801300530926613344166309429081605589854870177969072044295673663862289063793654770108506649145775687094600407151269626559282502225956343602239221279987596809527923546827934155586548392475234950589672901411743412561119556413151442527529866590932774339551416768625493738739973348754232692981093482013650443727243485186135411805974094283254826761690034458874142328974609695524982774119782119672398797040335849924195970462443177911817721675452165529175271060820371480832936912787109255365880134215670539726051222883342863366241086533925012899561509680961632914152515031376695787634122947670776235864177388804775755149572179801367076831983896187276883403373311765688998456228749832005565874521119614599905516905347226027809821116234190188740683402426236513552612929232671377043122590605382676346794688388353527052549301080158809661508047204452100420155105973678646348102495612119001327037135586243623794857082141106186661887441838890608397251628733423441499967532938548447861382774942497261071235371639816440350679824132808587966942166409914934696503334094004475383872676773015919747023323199236015906648700879022177641416911088737573875288115905419817640083144264746434110392005982596123046750876933354988652186763687627216434633616289376441337545419937931024798812517230140295417227406177119587630490826810156665219981898378545086219251862368432824083792025291340314303953415389798787822883400059683701910165109180122188210867931269860422065867949373896057483599711276062352173263038525175857401394244357819697449465639578669406055075269534977762837993220527814296005523651332276414483127837001033936708561798017714166826034662720851617195605595782340488227337208867934526383647255507999474071810177424453637517480225305298044341195185417466110423001096544893678561189820398029977064363773909553413201245157655225197561524576976847614788351221397349351397386072531933080565861126187749884750570393692366739694386786001019762347164825294531683350047788259809656172954571879259994279310632659752151206550466313897536722971129277016733713195083366736801835294849263509013143751939118564565686441122594487112629910612038361738791157208323411364937546804097900539658798251838864638445449475642036472547763639489236956363031598039280477794259300082568267753202758797436969487944454687448083668748910132245702030414979160955937616724928186894317769791446348889122157326726538895064035483428253607176839950153784033116706378064939416124560798610047461210463970415927276607289202599504660544857249167428649508575848224331763054482601594099200304284421021559054858274446123378978766564482728697882049375126379556934650082108850367451229849264772316557560542546099464021548109277524248952712245935142970197414822270102806963872104938873498752104434273229836971799873156157083088145986739632555111677563750648772340934242308056181334331257121160125695230690933105262121543430412087678146043920778177625141336682394487691318277182585383294923308124502210717404251934484093529894845451300947159220622618167473247659712131134695331565535707042351135799594363870305700199699738588328635141634759107635132438893115651972502249888545252714206244873545184783692955435444695665301987107525737153564936982747546586529896582856011398401095646460452012375842134220906257846178376630287726068318608562196539624289533106270783472810716831510848904993455148920190505166297590558627900277021610877795086247342591404038476929546146967269506762404816850113691965370834764945584118871256257245619344753766672183187251444099963760244886949948542375716360856362373183477518438127810356632901237669566969896581903119092901216827759172992830279734644276444759993324770730648976497382279405951279054775311551168720951128354080828220912012896557318896620158843312511100702064408365667296079295095623223913235311834135057585653480821075038267150403308299923580670853184982861441726738971449396235609246538090329244526285647324147609605237233529572055587359489186967471559553611245670800429496898156535937898418737256275224225044382202101501670339858579191225014414420777817090647401903125599139431766387435901171743156825160587551054970360980568575076956233421121724059809928060279052761781384490525169527141572588250508983785610930490957313290980325476679529000665770977842688293378614158136639763781259975907202346175167188262840494434382966877666946300918071851560194574496678374585603636953772090047452702217972012042121445917018059614925248158101941237329202696949782208081223621899970347749955509384147600290063011388795965818053194949480738212875845680311652912663686756085706737710261630268808175940111949598731753414370297608116569692073898268928767358245262196981738114778805699113523123467298867742529755274530244495201217808502372383426544535294001170065955401755279735661822657547267999014234122808735061436090848028475634077904962227099699470178247962752521331466766977244297705694596582937865524210019229720892327361785228875568982488823339668909350217263747117389290249694166443333133440480019409074266909167745147283181069385074855796163815806956286108389848678438209755028901444288692669840435718148307606315161706693994990641045372085899458256603827620027448630654585715416841096384194349560335321048884510114525046964146773747689518824556015057019396498504464068582137461460740690720314557426571895860558924123367561721499520630304023596801595186248011392845216236971034577219208876764164150194819816318551704256480417819464066662282393732679741293487345169991740250010084849516269305935919630202421853127010001825262164909424523626288604021813454844474689250297453029871708933819318739725178222490044168000613896331970520669119967362125591519977254710302403645817029257748865970125132174715962684015608840572185868755258970215370030435015553176596427387552089368680865574012069086926393079464511684046027701300236472236111808456941027821894356595254377917784360541942665943787876207152203945025759997493944743512893874900347627849668641958780768008283854292158212127267009419086736621389993288822964242160461738706857087398418709073450729686588580000995628427894573459975892217354936265940484510498205903289634628605000305346119236218081760358691645699558685367924018808978803778520811945735250006645925952965740893977389480631990433164771320310258508799550824492877421697654604250108190038717089750300621062645512895491817529334445958332589657053210167572064263056025592824432742943605596315798027462683550510074864950524880303655811852597765307264855468635141095479650751843068271115942972409966346272901554246535840825169628925500177030315829785360481098749591514770510718686776711117612090392465601544998434436619944796940476050958619963992796844502313495837446243744964513421449732684699238024690238156884366381497454539541363913438766112956841566954527607415747737944907002403165552557128594586803434839436281265779240200356864920730616097565556085850708644623692895410841223816703350909221118723451713617463265452145795275943148393827146110919469148307240965052377135895805132426197799869592042515268561960543350373926431291477597879648048344106673186753691678126884248793465661790444203205332618563293670874278306382113326527759032544759994603009025100924024728654516448693698592857731676670362855329318250870639476790107038671951251471977165247436124770233206292111177283183600422819072765763630359201685794444637706757795309298848535172052305720522142146744237413696243242310976102661883612103490347523484060806125097784393497141462117814753669002359503881858447484004895546692022446946821207747127704040813234853401428200218970850153041610227190428994756914930822759381989485814626047953683844614681350922975836100316017729426658440962993802597689572949190542318347505336096848414654832877447148452091490179192530776376678509738907460122055930546442640945837625329168478784217358012643379607765586819189365004933819788378140319093450971639665508595519202349169464062807118021958318691859434123476979440334353620049043462439880325458348502672008063804920559659653980426713046116681101630339607605782630414222541268600185461194918326898906755685499847064942283555081852254710599310730762479199278370236024002882367887510658477559956024526217487084596077991044785678456011555247501783548777189339253840289066809653815456872843234832911867192349941242050097630610365774197787020119919764539878380468489379000940692095691025695647461681750643931318924208172321908378030018608112687611843331942331386761313609364807740641276364392273579533676659583519383863868831416280735988754681921481193981916046627154074980318134205070322126762421351741572052953218869513155222707443947427216698961455243101460805480431547719348832209304490166854703224177500905038159498581382689867386801698216958655702270329144693453221786034867433222048147008264666684197208337855382282319052516291174899247354197387119613028930813404575420147510252720717741628788514310821298122680841065522140443133588675273630002279322685879552076793921524560802076056340220131729832559070228739530971721855819889150300397021745024432503723851724170059038860008906856984287429113720628171764709698138771123616504772852802744505942621725353772687605287345957466787175001086277685920577869531915247297185795060998134134149892762405068945066784004445471727321035165744216102950569914096984578270910510777555834628100077778374407975238178619521905649759277282768054436152455238290499306804660696449928923842908172068327536135760138981683258563826180939097831927985936777379367750138325338746271875276871253219755512962606737604601787062207842003347709334238534747908359591922950471627645382738515116404804380311911789513427156474726596907678648199906887220950205685565575264777483036909036295232209429123383153810963831306986505742732003233820172723095414451620881265768104475571104443413420838031121237532787610325334105886900816203018431660837176374491178612160797595634234769475755934217231878742812044523232253745124268537576397050252163067850849401909955631188427746044623414845782324058614670367208559022204837519980717123906484610192662898501405626011299585829047957462554034448188144980139910746634543824655066233885654322373610335558166384931329196609178274148665891032279878860631767966010046527699660649025401931603332557002150004717778381556435966988970517031858782623807031215986999987367790705705239298758881564729402819632133413778743186530816258184085966735289781511720621650941010819377014639483791467331966074559652081249804203066011434979905146753705975583875526292630696603909825133606437590289070363347495860316356308609194657398626625143445526095357510072671590774824008237430341226201816061130781804540379769566803820630133670580015956936314717208386500568452657801060507556577436138770090017337940640941852105521324212760054123462398401352021118742417029456061362651479436661090913308680277148126896221240641724382840358046740263220765975627580385301869971881910305733687457340579503164457331065988842426357353310973524758683043688701277874302780681971252685973448954928835537304587150561791196918135863386651652733492136979577890175247789712805208394454940945806332994599077393731044536008261470664451964723974458789537119769070941432225418081743259717919225969254746179869700466822677962030275753857923162584996328648059041537595005067163977283591427288075833887470304993694466583388153572996227351508449897424141843272516167829071893380115452596923806585634731548910077597449902811771025258902784334214603149931320706440635249667445573398088902722415118015437183026760443296779588850975612536598286406782171534744131650450155584879287078045954905691384138747002416452832637096055083995422928293173210690338674436914729827976964988783060434393201035672301558477691552627225041255564684443863817540095905396004288171483571444898982628640736187465097419414771759661158588477820767154274271590447898913534271677370205072978393636799856742157143516107008534572230819353082532507352111946303222629568724564778740591052451116054417316707473715041512438842210889956542213818190704865983725181500529271030544513474167002242011725497053409509229446207281276686959895757780881301370375867780399394360839173016057866190454871493777341954713105160654218728372665587564265000633856866594969642292811051455320973562612422205936114028876119315373264929841183199082898922043058317926195995555947179518349234068361967793541431016225438350223725800480350562772798699050711198346545642240980055349616016566971897441309421721871010486461351900696282079518823814986023538160819123696171249401112905138627002088844551841165077998134141269488102011899286076236320263095836934678337296298310670744490561654177308488391589692394995290101395214110572790727370004742757793067429074977980072712038040777294426204647112135808855570793643059962882930168691790819188391892019736538038832129366329711502745314079868567384222748948247051856908551882294980747967332044448248950177448417198679585594214778532413336183280293766571753330338968298200714455300513161650013480836540318955379069609053137408763306300834654870088019313458126561090682943336355606986409244725948941727980669001885217716324684304543143722066683286316381320347911676866846440253811082162259187786157013536625294344983031880704049903051381700555010445477656777007767762040559282233683616437747798647795431046736578490201370897013563235496331262463585949100060312977913558401740671880601867411789815958964853664754019612391979192825475539048730718552076060164336666466203599774355710737631050054635933957999245341321352856255009594150911519188446895175817520824789635661739607351024747670647597795712560593917816666875921561849259340639471808365954642596538384116550396686314476051462939636375767873786449420939115983013749764240500769913228117930346653072294349364359590327280375097457985093767303755364345009060691177364328183361483954980478170139692559866473892379304932730193269624555906015348026245123164476578402862072686206179665069709868073302405829362790458181947738734058329159142788651475274269736869541576078044192183137754506181430741213792954783676437857339528097346654218137299603351850251653042145420032487237075481620642184025344281863772426044856282791129158871709648327433270059068834136249388404326985660918335543403289775809172465232325671590818597818255958975156018191004638594303156090705573592306957005976780882159891733531969290918759929779965857393492956903358184795511453323666412948618505415562285445360191302077854542357618228136968418071783058987067357517144542732560267601929870318187027680911377385250652707176020518814588211444939628009826238843629804534543946717972108034042902079702589271829835358724134567079536882964433180489325826674983826857116668875892370241220419167770568077273510106327277961203177452389441296800048177304977160431577993388811841172836633488442680906680655864903338705927649799566777340391703582604700598732326810703919528450950038828562005279446272238165387298775370000290989994524636562934854765627785902841128740486975079991672281022439000839027914245846181008380842413793654462097569207459906202317826048723614247443915655989572785796922195822971998545060786262199750004920349064892860231279957117054533813872446456689144267239536658281574858030943863846672654135183376526107789861623493852955502143956912371319680601179295000802188858078502559017458718406927393376722639989759231969588647841105495767010364823564284573774831960393073223915076219044699910229591989773032250638174837176517459844017519549195638775736250289924784947253360884243483402911035069978697814174125413418419249682764849762892821156522894762728097237399795819818422786037218168201274584365155424400212688879888796573820611151652028273665693363874918019452911013040401633002295865390419467223723268689437376538737935889574603770669231435292351815026874335718053170779841048356189062336658600676708574569919466730015723487083223665201997884771667522562684745803147642855880840116469233556088820328382831982383565146407258868331986955030398461511812183600397334748232242910630671962659796419260136899596949181367974104921622729328970077899285317498463071590681900316705149797385862882588941501760193874546139417362589868615180982074206070130449642791653162541680478695264507228967315749288332824906774572281650068101216984043040235076633617672719668425066658645442664279975495644614492542460508562927313050341949801016354208224315006683722567964927626552030108333368110281070211429463123056139146440813722618053078355243788387158246186648553354937895059420609964164419784470121295083073232409192686061832357348834871128795437577268327110737944251819583890318568398115382691539130179934882613148350228103018879540690821366525058289449295246379056939521426573207097934312139495464126642452456524877841079341700218761487836681844329209273635960374997139069183242607931198522856327174151179096879678397242396927049284921518621051643521931651142216532009578738575512547038275346533462184177265727145170219002417906099822897696150859637866781879104567126402319937880514177501540992243404561882433155947630161252375362972980754902938732370696375720421102485843713374571943771351995032419184277829605857042175792663107519357683330273711629024578652538285627382852825954880862734238141104678210083851246590877961653043094211259150163165041331320809020157770808893230138167224192951214793841005819339444654846318481436339640395499614625000933907837444789579578299762639296145792508912327741540839535873213677994174435197238020341294875442953853214903364326215727078028651864857967115898482524906998478457838395879595313835033721868960488589007142403129688924378766340874382010462239325124296429783792347685442072374875813877375021494012507709896337360284530372366933177466587766563883547259463035955285957485250992075083850519666200609784648134630463008535721946340013139304601335481992528888085035130176060252000120308461826101438093113820850904042544851157460814164947807336646863528017781506855237214994929986830371978470855357469598787859443630375695602531617307003299767404152792472336204266955820092176010855515527655878823855141843185287064349709528075016834488148539057880871313894509680494771864688090703830024120731932439415216169415351459989248085893303898602343039187124204525858242807973453965036451650662558617092901032394449649247927143414268637282370250462029349534145574817754316496794940184548283400982527490813808130307901797195138535329501112305200162975148274668357216001827482535278029148598238334401079570001589031504662761723463994780197472120675868435434774168855168978197405807557200622820329406991751334158908483870750255057759844405599893286338150411055689536625731539988379343456064018131530000853400574033734153401026778872443089488975024209570726316299939232255302024125650548452149909530739747296361054225062285996444940475164950542318069135757025978408509216846723041783211082442559346485549144518777889996608119730128352806230976469815320168005489087893420935350361897570417800533143608284639204813040903262564384859063041671513062606325340327674840582241246841552449512402018844235895857170405994623791808836280829892898531992103806377382089067552308434257948209214629331783753874015140040408264226832893735892167551035564546963890743883674082059808622877782700962034082146827335872082780979199232527365085887591039706610828368572947457326696517965151142757389723526491690738493209975842924270867684468723223465019567791122443464813823445296211160779782403781060310739673715709704756534545631081236867936882454499215015588146554500870626197563044766605376892377922972033686942844660575018502491102799199730513004405691011887104608529979628519688211435746170172405741440221675050283077639375544942162328476277940393865527537658652575526343625771762570269695684805906580843306150715098446777804367967676920525378506995381329812158521591274249146471312465829970164533774352789783554358354192517511133507428960430975174442801279222506394630749819629720840701743797868000519946931791879039578880658785101909351866514326653358358035692175640662458412231138900455619932112976055967464981372347128415016802007362938089994461798522615005365845578059473518716040400182148249227016937751962562863482547554182620168119982034867984500692482263032277589448674570021947681583785188771171490981744872874130325613403000304088874297623587286966359113776570388033521287539640214394103765228574161959379840593866506099127323760759773509723507851628973465136884499221949224022617479810712681867735992515177065240781995427173783241021849423090667949630029785600282144869657308785441995129088432764900303830885870637496161394172715623967434169515472381192344187511966884990654781601074619690439910269965871890447804355420707735111027777867254522654378393948254289559213579515359951909454369023047496882517371079635957825580501625540323090745602633507325087620198862584565634433934836036584804838995333244026395744667431653934234313203765067415435354561778044393005434855537494495580338657756793106837000739987875514351838766931945164796635009772893726372126867526835691556293601385254949632843559224699765792358997313379501574742599639508559335950210223094980814197043788467019429323648158311733112667063593663453981152144927438055922120784330117598200723543917989314648414543427409823913757558215874171858454555456615091767509629002578897362485730672429221573420484938641701305612706033605837694102228536777182911264044469652356848617570382406768589198278757204824750162731081781140122475129959567837144220621844223018022683530180446832623474587097715923278979982758353190416577166421697544256109398248976929689377954707047907314384378309191357218146529619192747269195541280017595836793720296249521858187226926163990131607305702646358099848240186547572326287232290952509947994908523222897093679782010164178212743048488546823278118672137710182456820740110978828752307171002383288257455915028892446468713930031880310772661196250337690043129701049321284285155095722798734430984526500733955149749352283967143370436289698812204266534780457524481121655982087865310725240003778713092990080287995182478577405536358247401171389920734547432213923970036814626158432081749281173340106278857161302464160845320438187643600724259467765395555789810770461685784386035597688020635933687429282318750129741662373901796079355597090579172122866630458567185489147027778234063854862983004815496547532862386553333668385506967185304865497915456903113557486441589653233634915222767732486746783400378352719108600896437759039237069681252617203031594729302836317098794451913011563712999925992981341799290907435457320506106142373896722245403515906067016912124325197793246371496841260946284842870549111661017502958839003990452833859549605991076310528298477318862898199329831118509464448153225774638334566105023000452474741742226902976378992802734625214909918706756173471312911452232033657860242897982457272076966261500278630733446336647432213383339442394223411163969869271350343165207536927468331606487033459042713070516034031087334541132152009155792500697789409056502333408392957780711190362470838503121750874078198516391699987838707320291142905028821663895659988896543580098204090858502195811183501893292387092800189381507409756717453657065438993790048121388583828573668818987512648416518108997212018124418809208703756240554363252093304008043603908605812282839717391400515087176436796210403066833875246542807293663834294858801947493138039400925969776180111229442489259531680874720022852764335053183377644257669069645422066865846200476701384005488829916627462782529335978016413245390691717261878618336574750921890734181599881270707116666155643328599954997301403294483096133156334860926392265698915268968034220680901097645652283368889872698146046522827016437226273957134174084279760401867229421482183909641032632054343334516940838498762533403862982690005904865320766372615071410961405410619581682849151673859032447009126812502306674365226741085536654623504988748044484561423059965285040132065419931261956052382787386163084196585670777734229928642290490007146506294131862193000587134768075799743974799139938424332386350866865523123805462513451886278056697698466809827453685590293910355477871542741672625474665595740986170234139742429023519674657726465860345960724380905925088603025504406010031603372083081533436802124685496851258609091784200687244363806794835724130511906365570332139135697205234050204950910266289942578463897866622777566747721675431608343217241118973124941876273466849383776653568751584982809547941620974632717047321981649835846079447285040914921287359274737909244899930129829396044716073250128756682454285308015540611845334371841649724011741557256688959064752208318115391034900791700219064195224341456377508898050492691994741233629035144177157484692963433723483220295661406699186882423263917100307046110937571538463046168569442329600979678383769066706765321536085281780496859687983337214163447445542315428889932438133613436938738914596545032185449465551558620203213126630892195472477034116258466397699362237592928301167566038328549134461393566555127451601721367878118801323725339071910850263439275894613083367568712048523814763050586570525342915771649250712947410317929876142587296275783558004025493996376424689308494788074767168240556680624193306612118325681938059804056379221502903318772159193712904684788662271969640838969985178650572539057382470327220341303103344316566308336543261001861223349564692848091654134247305397439266158153929216679874281041527196273381297817801241348911944006863092820322472954584745650689171832030871880520038994764945827318172339470483384201107941705000311034894136086366900823634570376270040444082734569051099151905282620935816851548142026394005790413802821377692982908790257306466224662362990621278798604074416364530401617209061962956169848872265291653284960410689826048225514948384353684325570319526169009897738759481645635321834212885806794925085683458745440542165636126012320915537151341730068868405083157967436539997524320966649178240673582418851411551342076394347522225433599875977828399752214633808745149731698941824056560382961677698240853288339096806082182361836806734748486699668901784356895233301492840217989667722889341069467285838342425690751485426584021959071638360925206006516644971043912964874562655559520426915032079435381985785822464470036986393929236066374600826648523587191787934866549242103273109421413567247624048372012828979554838091823148039079100472717779593951453550972191959019122518346361784386213981640450183258045872768799983667913246221844977436936276899866630094909144351395899822550259942903930721369291729367015221738677313793517225355976310845132507827583807559957858760118980478882576704631667494452707024687740610509787498229522280885543930116259306540993315569857500098706338210193045222924499810065589702880752995090335547984083218516507938324846766420569972621126708490146864586325680207910960866717625826810606063854445882595430593226556383915683212856365896383368871234940961519016344091176346684039715032978232610709472143819321817385132894837289302017673739734075582101937575362775492261318623516795738542474195526831859961774325731622545702036271833018313926536956698057444446189173026434497904854120989033912920116729626436357209227223786624857210370362391881981154784928198547494754666617406740384135347028031143841510210778371202032730982477378820380184682288425101604954327219662980063390595228930477267723581178052402153035899523361362972741320191316948438565520736097944376733753797626438234395545076298197285785588843647871118553301320275050303432147398807920232926867870870432648782705134503284689430619119828632370591654916468291657141466255010932111098931635112171532272899392588831323065237287267295656353057235430118832895739994920652882581878526943893216455019029536507705644307626697644136152417416894578315376032645059036261752023915808725181000872251638180455454088264178168127751884616078476973159673233165038930080715534970138290990895637099218077773896284377535679055571242510927278646794138558181373426182529296730213692504588822946079354341660065390668908340046782187478421865731574559733584723284740896431853517108121443443842324920083151797648355389182602035365529196533843178931319983322866778103074813799184324588804251495545210209209656423335985621390750677794599864899125892947458736001652090030640836520642379570225945094352315005759016114101189419132821149641535460737173000442095695873176838820784587938689083845781715164284208217456236896824372669493961099879644447011254137345916981772619206103981196723496293360578938032652597809830505427488489294885283931993995574224139829157176058050685235773958632680056073999078770736439923443708509166509401060294070968605309606982251501714037971422193312957379473670814093641605711788229269301061491536330060607914872469902339302291484608573388852838488386303114434622387081083318578615981614296516771498925519005553651518639788195831280946881869027550242026181819490331623913695351729644508545514781026463268126546462560009724422384789833372721205660892881125165123523641347659958063487892778993054767129965874615110061528437125389751184559578366228766975642211414017178553086039739616307144085564835696099489411255559255460744084223134743827561444962672490420814570707902027431058084279461733621326999696022226265268306234723653564261246300611429536905380094784083526115316199133381686969975410287946871513490998109241510563523216511826794440086723721502274362506134523060614281447756233115140593378043882826478302081419169457286275406630370305868019970608905811773492088893141154265763028002696877205721223298278922008221496318883660324283399726414283423002689305472864173736646468921735518517036551231940997071668936045534720589451942739766415972729897727796102279060178183587296743953652353953540164949733576912411525130733955437882441818807976129843790137622929576288131948366021325598008138962328427572413767014203301978689701037566590327082500829719859931146308642597191035612015355248825361250728056481207118117586165418589919641773477607331080759792611108068808542835741411171303314513756872123162729674334683627833179009657262315493415445891606283060726964681372696890651829193666857295213222878844859581316205856862796467663619166956846204379531495525668703038119846144385202061479603988874609309073175806191805203456666424949635052332377474593883946249888914897827408764077240741582723066133636492977906882410397449387452154318138225142058452753892581307880029106986079567460656496401497875803822107773667258415284201166975452680478054044806039687812955795485142161027495189938756402923764892129654653939158041330984708638006479176188964281334896994757154211445002168715370317595827791839278420651803754947948714613770670547000377719617669502502886650496698217833118174476518362482407489584933646739152134306827505801513103888036951392145147618637053634388239974623775988474766629722538231149358230599235054224851744736154277512768912426599879157505489340349513575525373017766889470676578076771808471411753231415234947622881243626606902339616585431160731487849836722984506659138304873680967036819825067278338454964617536802449557676227738402918549702688859565288866322631774564799348891981455281955556039254883324466498843865027447098051168541927866160843398469352768799346901572573069646749351038908601151949956100697409066105756937701836729434249749753732714275942417669098621690704520209825615980832913713087236435508543569815319676422304991373965107727681674539335052087504257786028599162731302282718483765904894476174406203061862925149537692983688174888159758382882640194453313523614575568401082074152668191572365314525623723752990100532239683465819742096196846756574622424409916450862743295911799093539073980329317395253616691466009519541569934394345660202083034405597476899654343410247550347089700282374699942106818013103271773858105630348117754339527616925004960108123620758367004862458016879508097298617775378410244872744936001371467440740180776214834240126897776528821342953911296750028125579924026764444078987165467349787966382213925522526610870993389794785498864617288441196405452034312942734409761580834459700196991840073309213387126555685914947421286723422014737568856837233116826615415547720941814995987075639528208953013983609150256364990849117561567369484915072234451836551032041690655977217840221646778713507410487698670470818446287344382568188767374730031400425636848877191785092929707648029149831225220965306507638899875411127137232867982542627996290056322569841628386996299442977823143362339419882094845699897830134925068635914568242905915438277674364232458484858639947915107674273310871157845720213963622266774724285543882309298067170721536112746069826627767493772706318814450797789713766390454822727104539671362233975932216621789278330957491875808078910278380582608355726699096955428270899109474663626474268813816083493813843443085423332144863802907034644955151337978099585884415937162825295745408309385226083812585081622112589943651348259760294728675642057056395759819672312486993052094434693516971942992767747732973234976660178093739245851430209666337371797578475469694900247204268294587516781234247615817920874806168501615514905889006404871528296729729964864837998005313052094695997831017085262429559410745909527047911059343963585712804088715528727003195055889826379126944958588590092893006650902231583471067301138958605023860379059574126146683860648415152761097891565571830246936974260289284450305710188626605667761689525043668596083414622921155797001091940529536490116839560310144620214540689033975489532894799548567968843898564012855350467600585909550455087483438925963045059779922348413966217998409577999654403658596579959326279479867820614034005465504833948678074029718692814601306744453620014594216518586692024870718800274181385512465185976118893906945694052024829326192785118733285142931982387588313428579635805512393812138457643322304182469455206578402814362043973694975232198259479513828908792459092920266138103886847719278242380544980432139018752290103387945696775292110353218275382237514929498345513505997315121115512903991224643080063854317639715300284290870897769704016944416600422311406117065433791751995852230150355388581384054639550918061751771388282701568953970959160439524268354388197034277363203562449667596763276939886478964154267773432095539024382863987763661550772360943560589348159796385540380111271307237416737292539504171819961603124808395413108231945805133542654721431481278162698465219599142450151710614979873688769170403485019834556289008072972771989832880576967516243093936263393355778469423985225534753043982117877354196760568912358337564508224840561388021210773926667887889943787943103168220363965093640509771555566224861591676432790394203375718020457097953045022814605814977300952559635595791180810547149481255612667792549969368172272483418341797850808949375862005613457747676997519403669400983130979984464832762367435117063695755097255696962408809047292727354208735395291451925808388957714158173518941445875718785923918472703476693077571854303842576633716083545026323454640977839093986043627853202888958980657824798362039981249903211534787258382329267752167339738595420580684941178801341339842352260345070299742665192214336937615064939988014923514574471321766233458726112155092675178557585860582139286225085270845553210473567491861968742235596672280138710511313191708262007262125295434403865743665689890959510766452836655591689317719036031667256446598933039052055651555084776523847117690121437438603785912359646869484165425534988228374614586667182117732251828548644108202811016438927383192481136296324566378398443008210403970218300185020836340277665117655167347841682096059877069922162869596521107822212000745611133260048257318968504149753524106083928733423325639599667715098202733884077054421518858877561122501858368931063737677006879771741080928149374012155091794197185546241233871867841334098418403723224938891203422468490918009909863598144286180560009557632626923373831057223415011470548042169955871875871300233735228168474389915599083468853217730823759138411848935359415223813663569852460991825661842172024828543441118298804889617412496148181395353908672112062231525235916724867415899730028740577343835994544092351898354642053604946618087541948000674131208250026682397040531576794391141444979273587893145531950390805337235144659727805543502386960224459751877145902470892226969959253953444958158428846343150665478034721490123058000378313122967083533406202989792646121602475770510489241041164487565052192093335246237237874731901863413311336403816943583246066549451626441835669089195229024668677771304403072048890517199694283961126039022604741412142092411415626080737881302008817322105425040746089364960706296689954646405723445804260691891591398415285246467635399491871943119563121584156718120913122035307722978446424737300399024532760387522552376492231561638053190574204095296109458448765318147548316027915478423705780812077635700992254255965294934823112221799095734512065830847620650613839624081106240230926460768574995339009093515656262646758069880184337457849166939466508416546844097688945090267814091292103260043934031639216215578671325144561897310014460804708563338161950771067350376026450610899163095542791339060574202697958640191711534059820836516903241480910164841265302532351199159366621492120061131948358373391307846281864615206217733784708061355499564759528954856459499137051695747138709596418868664589604476677787202159728886095092143851577876590478340827571741512637703799069964543482032808106433855005510015507137583414696464375099077711547101479925027285617785287680190948371923488806881085749449997390616893362846410234037056279725193403589445710383472958121696823055545275167753041197130231316822687623746768804968307934386261078226950765492769235917619137107949945695626562662619042828472732315185114736983135015523203455838823200659056318334342154630980107859649435734169789987376420248292099195625082280579668911159180576836741923405275114127736204257193824855562076163935969125369075487358692715598287927936756694660211795834547489724316721682457588562953716090161084008638500003826349605574537539917822053024707146146212461045761269069769962165342663580619903522534746018491846400623334745499386611958375981161807290890865824440245277692375532899938830912332026980821426351533666667626808968607391331461867116242716257786007993645638180970321439330223949274295422700514673331810278175877012680183944620044684398922838233327075244850039119427032648689092249147479931898292175094638301701182669781384188050781007755162473192677223782144313193262365710479703226572020634648099483718969250605888620542453311593523304515469698977032933229968980471102461189549867037060785837366893228218327329889707287653586886330602241553390032334768598914011511230579929979194590427709179737645408189458052317183507434283080305417660490403562183537231317958196631585069656304317373950527684672249923727528418876370573027050791219876787826032887735785538013013184534415300253971813803263541332844996097265544489868021066561023718903995859513280666213495768718564657307502998546504040155605589195866244272232071502070054721439730152095003230801158601492288713992661864679158287906754934156245385081805404878125307043894562484192690045522579815426090148452572328133545968223441892416375546978988844722985502339115220683984491534373942312405738488901196630455901007675301652495569142729185232242922424348903360750628548206841463425974317627028002291120532302659587092966068609046426579114071883763002080470141942337689650587756988061233806996770141213412664578806234117155793763199190537250626969699092963652887194958002513833986030324935062746489912290256489028131080116995078762083041371631126415028581318869272360515979658777677498428657309334349938479358698147291697071612896245198347257241342942394319865117995398180317807649941009336478445407892102165059373980266225522816358286815168694286569704807618795326222207509470103655881810918133103644895725441962733011509038477916197934210721762586682660518068766241951702261559524121338666886568400471535620162093937383715736599719856963798300448649851462391242067767078815359677852155446893863995771779156270468160644192601535806070916066292409925831131399747897003160114862271950371737821613535031382468231038930821386685642052687912362521079828641948742270048457941032467059339728885478510070165266611917594190579399467108231563104165768244361597209556610770764570938836089684088738877484121717433657793357348560323171516966381088341924788340864200705185761638774981585592275208535040926671465653880154063910169958994128487505282380217680700536195937473556369292723151096485721214929850142512915264672542117901271499487485890556224533241392377404300484482542708986347877942728021590992032403204847155420135709940024790881215826971728886710370346620394421123070347504335911601110107197692989131567415849026464709460401402354697265246793900960977600040493639210640082592136975674370260568546994755092872980107177188199268098950879348330061758103900172236138497266683608092886634338679274775273856688935219579064068961842291293446564645810629144208486281438953034739366093087452185048983380504412620867921820344163203212464533995425607843714132162302652284164879961699506856970023254634968539747324059656598477346073235250134340112345730377585494743812487784864989501721389572306294685061464395003340092837320716736687187764388794600731035940951387251452385474112236294445601528188449564126668578289117739970877495529864929052060509313284899825014121391456488337498669022421084023746807741507133613072948557436992563915238715176811060731767501833436627442250285097579086600051631652973598824363791414940748138391107918551851495687479217583303221748513555271039395686443837733102257611007879762134133752683152602324073298812967788725709005127501822894430448327942457510044008635163373709471476383078348960962446988465717965932293833323687204373088845143643078319027275431074297211326763672168825682594190700218836315586565977517823513353415866577764136666943305658007039751570128946212295055986569109433968892788897700291286495720000348610069522442308782491688985325687093982449355563582592740570484291085233227066585388354418842214519565517461042164292059958515115620761037529578121010621577038534724011844150772554541072313076155314358335836446371145946198728916147961494146811830313808342353669251319866557178991856124066032615149747346816170314517526030116419569669023821634285262974484359393964405058734306240396359893740841404861811980173633615420798064702492521502594778158506387379312864752647005362668909166945553337650449404427838030527279133860608234950962094372381876514570919660178919112602676785292461721984387800766193505471161194106743281160051898191989319442470542954036532223816193692327285559794215103755477915439604151051649948890338176650213280618389199490719895888147938637249563821218177377131988245141417966755515941640735371124714113543601713143559013654483427652165522050433581840046124160103302524855869246166903363828761633517419275815579934713454221737652943471982027839249424819327808433572947712997693877068309097076225012927593206501380800668742886544151122516928902562319130020189015126213250141061393261884560853035465356923350709721797638381020163841873470590013138206283489342833658418168701825163046662846682265303092255610243101675401963086626139393397046623764930983864196166289392439637460298335666143246948961919042207729095669334128617066086297108229574473830078464961342860700351133330161175064503748925201433540296950552768196508340691078357480048550099975352245452856273108328286693175534419874427158776079526648548438033278106839015677603753472094972112470405846682097375217865475562144698657021456024071139591292787054866304331061220888904435131760352920044795113313100752757954625321710647067820503753442084634589626382214903848521614769638457782737468978174060703195276136331176210388452026887214585899950444856672148798577280081143802097781888071257105015802352894448064180160822788905723776517296666466672891616553938582840184975371591587310963234373055119353646849751152172949332588769218672709686548692888830094230209237484859910421373649984606431889897257744877574484628808269674038001700936336099160557467658122446653362917400403494897387980543706376838526764432630246305713114145821525593953334953827731824656091775368152251808816355266150934219902076100947977055179543441900818324576194457765267828322209362496264383985077390609643021856281056202035509534476960833657310609414055108206138558106814631049697328581323309594370691436689581914116931905522946193742807207083510282225593898915364666663725587001060652012206339912138478676206247522666598735093675657623443055000897795811747458803966069932280633703738256532790269797087652886546213798232823567784421404251130896684325311552705785187957157857715213183815688020243973485407528980180324544560901866337206054482532183134925760032676940228206897935607222523916161658513743664545491556340125820507889809752930406599631261763700125643667926444577098412090547616729442591775766810922984043504618410158236502416082599204290048894900186977258980675978833573401916252959366301550244381741062270959738637998577455377453118608166689123594072877043597719235749218246059639892853880161819267087729643238650052101533168352235695819763722145311235401995161801646724820754277050372840092587732308465380111365609005714350769907529274881380590156652711624608652231492163656939347712350565875350030278527612743626358954981637835471330178312027722942574840529338719874037588429662919189134943366088993195793693174937159441177729125809586996816017581314409578613850604842189342294301868873063478856686621557890433924693863761879377403978259108591133123104129240894878214983961419581590729204624095822192384212096918205788322556655949347034098912241879863431903417427272455825744041671498574963120871079028543766326393918418613266014963707797304943820440831438823676287573993045512432842795780833111897140842193718653132996622591985931217671959887583460826833598072949791135406439588325493319961427149572975833378036939513971055821849754520361473300587644193782465110004335815721943409878230043062961335823715850599384635243054927741532705929396202881891406889976261237678230695886619666290408484259298848498906836394760871338346077918263809772684456849983262363047740273217380222045017685428160238988896748018398338311940607013134391024000571249770779101856079741833193482726478569281695839698252325095284741476866574721117694572253080852939789063356304716521299386842132671277647867283191518240701303155954352058820856000779398926728863380124509688944735330101856415119469123344891439573230473057419725702757621750377523847024562098731339864772335921325358983344407160969619686249716232768808271666779134065394465728383085003923567230491035425262925119514024445560880804065224935628266718579198282448706512464783479746226288361815075575802117729639253112587572505385782743199982489970322992009494870913839616406929273815053315470881426824658411916634402418107494652525243177818949292989736819896138452798516588530898491614385713879810160999866322271253809994137452433906819897814519995063595045951722036180643493999348905839037332805016774101992484065925882612978808477994225932582090156198335187600371570580270278900965600267396139148379844086577453727276165471414918126346666544567731172527492174907110723920309036694150488457229440072030281337486501725867549319599750760625357476655193600713450714911521692743437979017067684441717476143369295758746549360552379253916991589080114605609712477230409319706399022899165972366863373421028889723108521299979671311868071830300911310966183767374737028361506464221464594769040039956321540503926383443094643814737199500550590813711403862592740153567435772447904668890418002696276077036970375413835593027268143102639630418731823791342576758194758553541441934988215979736633987240873904440336666741133038793035568875628624158666410097243616229866922720793544629391767330661209302798236353616730374037316150045432317039723636641629609382666292020463084387465130890853967076120166475298443645465054026295068521659530732357054280879041027774299542633894763235710534247522036799303755412430149200990942517688242570785512433710358450838240091649622229874233254360671673561268858594641261593578169363954377255166558374239900142556850204403151873689215278237450406830831006158718466577966587441202373602466487741734756078264821812937176889505263279185501421048592897629036690748819054228426673835333611666514177971881023032560668821656841918848573259847208841428860087093995010773437874845259259583558015399565136104622225160241635568140035441874258422947857197277122819784270894766846404473214368011644183560823106248287044939137799577526434785021954993442345226481342698526089664073401926033472745512912341648317908572973229977446066228145308455358731563608141580539528384548849903509888333900676618830418895882570513808112672568074736753713377336008340007122853557436447833381538381729774225059264193870013577849724216234539663632031717758949212111684347184138034432512376760601265934477040442504745770860492143209844597630422867422803466769571736429673295571854270515696735754751363772598603655485970952474611743676217280075536695626121841513968469716289108013182548288640382162069889721579138176745077879352283654785999236519918052985816231506690727978682449872021707300604083493380942940981492478124061955209281636187400501144730953258898804940315949257936181318430998262907233591751925766771468011186003521816704802759278669328589636663973663729367525885815651423898943211485893134955141941281303561716112482373229152760378753069958570245923015934506623494467972540769904268826050171805811164078269825469943879526844679048406253684448334226407663890945023545948389890894361116984157742698538386952004972912695236477824750112947791046739009751878742726255059857413113870059241349571151624886349349712023139147798469290527774580795374292794654286218791384364738101787347406125935624427132409301679725747443943894567337157755895080640978866112090904245494522444428320239241410802260249463147847094517199687274946245994909393161439493460363322204551278901889333238949929709639506471749799576749554288222659186027389136609441960406077578525383959664233722604326556267921934353693315883892628174148539834517375615289063278044309681794476730193175449867078426142041955280700191133891351228732528570462851190204089124359174417448177702956776137147092302014852829774780316004316665592449431345827048472532784509992911355393145180455223396248649148597720058251798846089243825069082342778016408306391883795874649971417230169985412336172401012586392451261556781273077095612601827993368687404852203878973192539057981376168544730792268271367861346765748186732689078070310443552151605160713775988010772834075186792374960245648925351093586357998604177957098047974263890231840132745569596862665343765119685284523626078591032750093955545897243596882704803797525998947917619652635146811695114543835834571996959452873822747374970706677510253469739193811815031960575644786096333071752704233959054222710826978303205317815933842396197557898583369934885405376688533919867542461246425182468906065823849247472317045417487325221867964509932597867854102957465330108795069316316351020267126174892369177849591691531370306542369922435332578992254838861037660681625324338336216490612921862283587111261804984340835961395861975207246314966108334560783093344358706978311928511535045851197935801880607115923560126840495300097706567999497061056000741640752886294792675383437985018821918180607921181661925444110854415246943801108959483837951363620699261504176846536640422145570294945069955808076678053251458529305899839928792362283631637005160223624240266471978375059997366854191390150854251233698613427504367124557769180194741083065322988963436664291103265708816257413231288580031906718250598948002337467260095550884380630875902316488120606995616669591498994397313357824779839240437261318828591422988804933292730041353120486239116983039212432012041263932158993792619226487886156482203328245959976877687227231620282034388922940551798008824560251671041757989593580588874815602493115628766281971837170741401768938209100815106292832919472642990351338064029790162028061585297252052179733394277859175277454320576258038969295827757593565467847333326621060401073972765634127826028868253851631149816356512036315864005093933403626242904689592654078969010693807373086457125834531562045144372760157729038664050225748021902470980117992215880463314897920938781753339225114763197073902850365534981820055520956942450824444933581634282616492317646005874642179087673216836604393383138123608766686323862591140499110221709226742000901524261451810652722681639130017801515390044709921032451882610232909268855579608948874851517991360385281417415386809771112322616577677358309459466384675970469202495841205691185704585391217838817152725108371312039831931285127494789958169714352207952528414863560366818001346204412507424176289256100928033167856600585102726077270312301231098063374275882167343784715673729347696449801978811576984247648895152450967766669317862106217372070302512365533112145922373341604939573120909546123276611192029813408221510133571471576100882021789472093038336996172308874268106914669752143789318485800472997372318976965418739621382517524145812153023116399764176502048765461287171771358254262863331323902445920863417967990692096943764958296126266210184480895857897181803662898332419800279154227335123371155915420615393664615334937169967264573524445530450345415195003720379186935554164776595716403893322921518219181880436056645797106587226430878526108455833707589856016242191044487627948613385148516359397812683755689194708375711259988412144416285585203394326917943767669704397372597871037477726512691191482215245825535089231578315197541632012724480114831962123263532495113953063205905639436460295867390913943573714059477725763962073007944429366207249857550944828958131090351362791800388587505561446604373707229241624448966390643086895149992140507427675253468735856716943624230225054853348283132382525892849630895119506471173938967568838232631566420164578685640969128410653890877108563514819422599480894164814091062078968710156432286569164489479169285902367393935284019913788144853987936733836846270839049748819263665572978185324336829539924212599787224627013238566315378744744107243275204772213782250558604157108458943303447103028295594457853265701556047238762605502298475303075386735292810242980807458636940701226465505656219787615533036834290055355351803402623712413683988004433668345054525391025201906697553544803412049770012388871031022872769200142093195569139357783576537206412942187806740748248814962132165040176624363823191465799689710666346245311900165116530697159230357664168256735518705660511097281497789552484026578792105526739580661051145018008349121975848898148303133076424180947696674961586680839333567373784619712199279003627871667031654195294601997411330711335666453859687995492635108021080258901314474553304498710435066834251756559865134000068708354523344746392922117118714741807800816013906466188380269333364928351979710276481152402194285107839587967886760528553148849564480713531444828291411539619284916802365069261749374943807225483429347202629734184569848866962466342555219032501222883570756511298516211260854508331843188986058515504241767507614902052499161781609396449887916201166588534642030458832725583571294871728561926252731084923077219110637948847207780503004686017739543268152069110990132159498357111241496634729617453619685265873464805309348966420295922038722013568112613944315141977603347869067338913251101085920679009350584256066019117288008354150909634700317933249751454119492196405976845618810109732770831218020591288971223684269968587096347513632946966507739798413700646919388104446116004544226185790765333933257074638339969177503958977144913061909902449050600756041130199957337130058464640085111979233491810623008887087514564242421928703730821193790656717217874567353053730994728040738201036230425495078511594459302140833746575250314269539066345167505619776269199023210988430978810701544172128302754914524897210065584789104025766231051425320818811473896325898776725943534445484222803259793442780829064953778512606077057057689283816391006680613298207712206192947889459940733920831509810732053987832902557683112886585244569845723976182687880966805980537274135782455167981483175673114766433699298923525673092639321724010289059106659332789230240579867982418551553506933069403034005995214535501410393275628567701224021782110314808466524266682007806391043850683871840924164935894000621620470019566767015746524901015998320903685756455952152764663848655092967355051882670175652026648345269114817844049788955436632460436140550838606120420375520924764300937077182796025739729024948223754375158258680040359384440496498522206337833821038868332335631644823203296625230613242155512074148748003713346062712254580254860234332498203196427695201109587546939555133074973389590542981037134653076267290801934451217804098029644019718935126471013868044501502963754498442839346173380243253849745799267496663130740075742092979088600981004292091145543908201375517803697852898182677953595428387812776872497214985172442267592801505364264909683842846744323106199134662627683489840547384988866410265385676145005268705494162341340297845834308332386815711391928778287362931207799571224750635618901681474772874278440752360040172046182630634437740270464747831727193904290461244787823245167960517238293600243692797998913079130310815274787230208291968903058846946731429764424354455337915559179025306567725751078301152655259068102821302376859173989316683103541012458714725751823163189847671606152571457765696275396877863039829571185969952269209058968067560496514912526647745318310423947291648675175624989903759388175609277218786305772421113075011096338232472657296375276174092317652908050624288840574773509234153318004618377685290068304626140014005622777506542279192254205580902204107005395294556049865770081859726247051553132334871331660418229548503051507156173373169564429569575842142203705585448249601743080097478335737529030127523691180499833970813997710601519986366239155785151400536114196867039774105143183282557895558187452587148207534744723499203940222081593289141323399871172264949253447976786872862256810331888010859308326905668369975163891284099903881354771954885344003385526373487627879137800785650904874991118093606114477485232297965967136901958393693999326072159414310185528280199688567662732531499750243369190114840743565861047823841305124589901961690474086656065859188955993596615061976608797995064090220656095459096843200915920462914341816098078231492570196377566760822927067287793321693454418682249186420569359852932780946660268308962661740880757566780191075644292286633672923737893135336569658890105869789842110824755547354536762969716231216311133894512352690766357261855193871602751030722228624908543062932125996333239077563915853777633835870573042555248192707664019121126545299328115773419577711963586204971991784260301335576095803550969712895545936205216965810176073081727408221408542472439045107598956431157505143537529739532023322481430677195902143148664786106055587519231580014500893761193327830921913063871534354666132602455002045827448064283736531123347745933392367707455607115266202081469595963452551953020576723386102518904255455374764365324383872858382961215650630414940894462709256365523099980770280871397845701906482205515688522245150173302904779626190716898962547286814466915850128061543321237495165985058075572768593675230140426811035074266691431263178811615045161039843270302036632111328258707969524346862433629465361253061605536717321708531063263715838900806949475322114382309216117370063501465770061311563548243855110997348821384861252489987199414877980291260885063171717692443617136181379237860929970757684679614513553632029344454736206403314433537134992927354392187680457557312546810135531302118201506070924405137381735454717515758565518323906185967963383112569229253974639110520432527266931887000559187580108825311580431791544467801690368298219876373826588322624681434567271420623427339303995297915484347521739495088053153263074756757983114157698545575278431094940062125636328607939567369000144638143762207469032826420052397610853570475241238448903221628515356310642519435359134645420772936960189290128919137615922268679269624560717272296389955343370640735242495285831788426941980187263337016124213893696594200527174938926161104456423041791203432137951744864459847376871105742832677813797656288365410912884134188706343318815228852617389695055470039607487990606365326237556949420628862749250586757891868521922102358384155261172341678564540359326928342271661980650411592710321181267301614996431224658713701873805095377423956723443484737059195537883402429182072584027300471389745280289243096539250966049603141156060652277793864069887117349125720956054881003275045303871111752368149487093120844553239546711557486360820677372408345593740786144917428105196392751284093008419960717217183153298060391843929071970221421078271635642589965932697191475889393389019465309710440922576706602528052578210362667563057401487051120713687492340837250133754706023127549244418990412461205998179227958170040344925917630312064800021187441712539428507670819757753223979248492773482089101614293314828427165034259255812219592968959104077098677101266834828578988905889624769104689150548973446488717642739963290077862702093259007582833238406191643659034936571902228957579537813345317550262212909579429367887241542687652337128789149760543613362557525831743653938062665135590901837523874674713991347387704145093715900232359006300254504809282364947395967425847379917059968203161272410866372979601866052922309051183117376164231904139333257394813279958731038142624000089328254585473751096684993577848182288328472504568886158174321693242224854217146792937972247686810145008837219252505550044542076731216216841270165567502303409959580015969304090018081625946017032209307008195483878402058834317031876861517407474945357147832151392351400486177010298536629515258961699427434902579350839041802280170571815742026540676293471929592749199775951200463752129762228468264090798454394603593526897941510273699643237088063882028407284245511666315315953094997712278190761468075232369696163391715459996861480369298165045697274112371179099306983243050677736890708931101234690289307403632702658452296563627703517308273248594954736265662531936793290967167882625337773492332411654591592559567500525448142820081371015030860411515136669461972306809982628467420005406991213829256478793772639128875591990732216481364710231184323103364616228429789588877352381327946694244187263983335097301324983797375072430236544281388543590041576801753999765523700809281449504212960048263735067735727049483749495397552445833911021178488038566363987612371025009163594657974932946556897876402352838350790546575732054486905258288812481871352078340266321941567184910987014223565841500249333610948831632433880363918714484574159526508614517086109402255131651249385668587527503632011944328413041721247211166433673394435058272366232536661834372735748195561289001962448843049351101555297162205883775676902475468590582861288077383866305434515199575777769148209008393814308190344179174428834677380038271850151557818849724648398041262326246884038783926084655724319904731546935898205385623364379386844100738695157900479469408069874089677678409681020455109114316044584935980222039457315582503895568661451859710273784545811673456114293251300409997896687177639683028169423877912599162727910126104196487028324159897849460415129391685714423369258480858204022427394353727147344144107091975802685867682764132441277800004588911859039766443194099006136414082441035829405354311200334582551163550910960835607012470967963044107961896764432613089023176857637243407872436376281052266470490531750027602538478096136685967642204297925633149339988933167758826343838881043762290057389256731111431171089416674683428513890757983901132027535509146046001674106558151618674563806555611630352798900801568618752919951001125321465860738443108669178208370099985693089765113587976536192207689508731154520981952927727430269357984223425719140743846606964123448124667529882506280652639724602945100402162457593904871681210368840149745146881641812354851086475446580892253394683534279266756120106001224799703201441276791320319705544408050971495187367915416126131029249511567793144200114726833486205461277535269382550138493104717145987456034120203985941987841167472941146490574056155075049130353674344486291909450901057468124313768518363418410673354659858542567081456408592007196776014051316626625329932694398556868430472770500754913647479308037267300526616815088964560236358188968806942300395554544793620502507735209714287010748485582642027542653354803023619818669141600990939699575034648382860871139072154940454513801772610391162954666753529958104854204534806215616498930313218105333055761926570826251119208279498419558071611150933218606387702459085265610224760042560863370490828349240512033611044658014896787310661629020872892327845411308313441834122623768710031759415826485944721088180853939424621000589428783972097018267553313217576361472321157258287226292189207688433446877920828838321413056513778800574410251603514325720471519508088677679086055082069329445849788368537605915464592948682114762710273438440858644029189279486581805767845712777091528897112911978473468956251107806643700130573926637085074836531412832699786068226771195403189768384688479483197247458476699396523962468530936330454187896231743752404693812714143783317852766235612979212952180353505589374643778692218263217772846198891954486787791905215558905794413390964936747645338280871779108834255121698959100105684889393854227932019267149849589136445812173693637248334936861433138612247539820725783260171407293702274166102480131201330979344478849972406547715564152710431815251922295789546500117490323728626124015044001450899412640139246173917916079731586972244394655446528952712512987515527832028687675398272016231027300154986905313536613043868510931579721537036627892489331824991145148156419141096915517106486471599860906317011248758490910723629960233078090398555927641085232453003786120053445935050963751073714968286163902232305208350502202490500323949434297832394336183411142002602241348370101576323327196617505321824855435685668052562223742172725603025591028961640884953604006106503067509276898430806315948204424301897047021772148627646801165671710717078839250027167221703483698619620516443091124126631401908891494621308049130590959376727236119931115802200375705107793873414832941431560540085385605800068537236498517840736317762246388849785408288844268392704027076736105692534071190285191865748230139759833227943364619931587716486843664109066112535611975315843270520993403700698808661876188159613718951887744090642910665000617574194411557062918680526659857687232512668299224165389546614119069595657644924811597779143791154660340276907872050975522235875708890523889128684786972341322596063733963129473406293066538533648291321351671176432998805676288615541122474869052513309400368889703001124589307873162469309570871930013749849622045890061388638969297038243815239051623402328306225899783831657512377955104881240310904414785602097211681102220182815297082017314502640349535706150761129050431189619728282796162193308291883458400165714310231048091471240084876687615968343804372820324600189990527570764573309391752838071537988621191586546679083831883316123540536899794953999897952594298158664539546563184836367931240838137370764591768294351940194957715399775660706553224402220326807828754418783268070240539524537178428978365446938195679962990414689867954307187619680297561216806300238899755021931998515315614613115054927769336557945417378029145577512483779593961288552532816883453912108390610617843957006483527276118308903639316671317353522097266486816680380996136041056712306906819245648991037905261313643313455759902194130552357369560109327739667730421576205153587603974793078076140675117218193370621379910922202743631924618723440061675818452190873521218013516156313386606184793303284216108578131059859353330723118630625173162622082882053636164831164160679380675799664552607384357355068983804488090455298008053407800909971971783066244063453142008924406429584360720284219977100347868621166115724966931634219180684145293170460683207194944097497641287982082085198785816190339327352276390391523114945025841118678224697250456292186039943200767157290945051274252037229195614712003747195654488953873653501627154878184780852283782680722023038676362372756137064497194910532720774100829247911615107011666212132556408300107839432257547801085932708844503661430223850507453445366510767261694691379814631071333548577061152121081151486681386560757325600267426467979738676972020957810350834322755578349014308183552428212324295243113564707932430025796884462766256117274652594697944418642768125980556143547075513548190532968994683242360291542955444351356453418569978322050399980627468191877062432747156964412658118000345385363861027837158568430991178617950889140221728522869860631843698598806684901951499718986445334932960327567608302154452354977459362065200713433473764386759659570522824336163438119950172114975900902429784041930295634508183626713557845426349517174470001045585490659196753766298743565120022814043835455866677310448175368941838857307722810448388772669247917397939193593053602961168799658295510520952059749942299517610882138693484181122871729870880639898552037289368883458170473680445183945773694567996194285334122952582023852711170816441424259438866894228985765703229111699153506555418624469192119108722035199255989123868155861045559552510399408796780048610127873782338412184660865824432306834052541451716199841985173787622454159429666085530426015185668781928006009422921296672642243947795212509008050550272677965274940194522154228211220403792767665975804724357865726327182491334159527787105612802410176619271704772634472417979299897098116276563813333551420645762218351798675918088968232054261645888198286283535285075671085459082829247654552179049823528195087032489692395079619114033466818375541789870953460621385755177673729076929837324265847808492361042580321008343333058415134763525761615058154602663267349372717483055230079485849331656163928417703999342080484963583341618696262239692137053408453363145264156704438771904198364727399853680737294933105085535242153600943319352997183480704928651439188044077595066157683454918705238499990366274679338504936852220773924121709964484244425022343621513937810886868710148289015515534392459831867151612811870059243190509174450885478679831085963900767492098271965071386027905238754134739741852638417439774284398525752519680734024925035783849669517675236872542492820108519615826251097170840653011821490589479514214104707803449733164957280359956459123920643135505771261630710502304914206926417644702431506835445249787917553073448327549776066680643978781327297040861143557545183707008042157318151984269629734433546628698049205434742055381281977407547641198586374414399805113864452334692054031126571620919576256929761600963743973088932002561674332691386175263389884084722784470580050466881780788723001108614014989516571088585767958257343975711438004837916965255060488368065333559279281520575559972439008555439939362869729460939753362779616205967748176926406813563766489818585507146533152559718671922937933571349130301059193648635964061876725976198763571285204029266061583544294109546893945031251822398367956080224079354793900210275296638845296012657331626525879319592185476391767808424755519477139063273736032085341071996903998126621072716625939988625538555231868448798434330458082994513558421239533196038751832790484935184505377594303767504877716982241582205103148364309964867720127865306903556765843271485587449077136782972283600669125939375623537743021831704300746103504815748028623281868661964391981767390864686358450487175496156502328292715810965750317251791479858772272215266506962587145607282306925978018138268509963894762211129326772922369446047312608508646177592737486680420775696288104896546650604333910385668096774496243710431630068133080817297130988819836381512025268128585035741997763467212009891080812781575417156595216579371266333513099176916636395345730783690806310564279780476867101745396229999277271712732045977219731019627500696366734388371254366192131518473234686825850771331696724170925477943702276945403200460931034365407223618676771832092246594024554056501692448412513416932936049870186488272617656138846947465196187837469506792318204986356431360796484951246648370014369867915898823980869806039267285602828457056901758506456698367626161452777239636057451991990631871364036062316377110484403210278565616906294934788283059758176990728797665501405614718615578746556315127748700491517405334802730084910944256848746235867865595968115279523969355067550581681945648776413026274920606774999723170157871853564282832316151631468374967430919654281781646388855842053042199955055369665877174298271908502305615985954083301569396768174770187353152141296827932960486414993784362651676868930549625304669989682497361224532764526540095077009981217520349589070584945527794867252700234559516131152765791292347506738335320621255739273260348795601931796079252801635672812289844245241020798427835011442313849665778321898363960257312284954230777325929828949121078412656312207557199083270961544340107280686296128147914792152404092051252294830197456916040941670162623122360617328918046360411699723265352446075898425908727856489658878004448068119816875167539676202261491124381348927833569327967241671243816734101473063524437186095698765701782789907420363005868570401870298997066277521244317600478704342612771467792201822132229207637332937478282906051775303217049112514813077394351442628939565472044119694156808560787256043845335493308232080003493601056822008690405614092104304070636347780395297198045135776001310907949850648438967291243787800678513946233912329265589004075143403991229106832836553252534708580306025024410957432324546747975086439527984087630156665761217776609463051953126728479643051586561764799303737124612564347233559832239751460262494548079046089327137497600682464373752184430120545226152461523978891847725045692355057709357999734165169988623173252228917499360270654337326430561542799748407268541756527721149601519173337784631471858203456824145494013837357104230098889478614886852640156708160718152915897253745260673419026361704204942365796670048189753371444897166646199057670624846612358735764518923613739589040794839233470106710757634991650729361677416304888000332580484598597589082580294507794269943259451013964038720946508076019274451284023145252468623970374094345577418871080540265447527148228709256304180842585945391353656734550607425916968555198233419463268482979014380570797458886627949704053858899682463252968383201512184837819338585370589457599519122739665492870242731404707831921410410713630861359572809781814519959158795124455653430266484963174521270803057303746463684184270427421368055532938625734693801763784707187585513417965842221611872609745814186841559163626012729750134391159752012148665047597285093488696830836162614006682460017238407567314603411216524689978562024094510820007141890808118250335089360204110117610044293024260451284041451834945230566494670568478897784445167097689414012212919157356151274398257945482860562835033339809610696022565336821742031932685857812108913544336455659213917203834340957379714790914609314390906713349612354878478076638530348714415260795187218872209693678460385283921384308239042797673321564156043234396538540574001464420106976532983002636022401235325844365502381343835547168011474976161645393115260621647233945108759230091641748059905286304363829177173250293673897515721419786052788437420540725461207590188778294464398154790561678535503098149330004202160752207518757040153613126363962813752102264995675642159122606722392063434959976822741025353762632456507875275499548261812629233334473907867261566149995930579458005505523562162791007033884183107126751153627700341262001393135154749062998939398605207200983478846840856014380200031875523482913868099402968226504638653148446998449156217513091123580601151186846820470780602574466187748384519353050076558521050434532320155999286508651533734446655549906013831861282101538518554621139573406668191903344078995898743580783593963660638246601668540452658930297421660608406962600828403311005670253744042138471279766858370458105606016439086954942981757451784875627209124797296134517653915446642825949692164217433121551516374635375938714529867239492427629603903798865883907059510348838997410524232098262958681693384528693803664114699314737822499458898641715686439433264917033848610958398468268627398548598690889436968138055426932152416320754078413047177715994623855748162965422613455762179259915695478736286743938452628606836152233001515973627177919237292737554749576657992169553405088411656288951226484259722902705091029331582285740199274954342394527955658113682605439990104509382526917426553798373899766119565227421986535484437800542466700128933301061987440190542883104337470734992020585719817348631598857211635006609540114365404746686037134970979369695714629859271745500770060864518774726189430073374896370658667812521740029109884125108121477143504432589962672427490250661769200598127747173769675742546218398218321435979176043514299899498247394164553477840734018597960069375496095995143604489848914376357622348730651199713532573718775362658270364133337626817097946198351612238699343949051683025514528754573969963921606144016984876796359317867658220950121086885505542325543898206519124280930314012565193866156540912085571941405030565642354742191324394169801946589830998383986367344535177659997910514848558561114019067098972085123785906442978982324525912824833312728309041658379771526599698323379331521584917652529542421100513684160904113656359901487404305967015586711969693632633372551100248871248359272169634161493054319544485685306845789570894556088728808257358744541544744011320809828516810774506711083492588634142621978081545986267501424781681898372623409562433693529186577215251476412731489222798337205862410623452807540691564303252051983016325384609802084490715078910682831218259864299014351867984842777359071276071471413822268048718744840424560878302031132888336141354016707641476540544418031840113790971368792828144920794396558005571981475473707759913666341639894915275023824459754171711202586610533036359574541772397663409239501856543096880429275841981569390756736700204136840224811940919751473265810130807967529819267162495304978880701485231782149228831131177069869082837216003473789502335515076730007011853828867745606093066373090312831085468915225263910775251003259846584552701707385579634621704886828843860486881658329752718817414871410292508216993084263749461040347157206763839569150034577989051467059323609474817981776587159346224929672982860519193082868957554685668992991697706885529689802793578854292036557636782298481523939970141742595737855062216217792863912825518318975809511293350111678933876828533808407123854839546518306752913717741562338648385689170829344679795895024009139771081276998020986443616846085080549095845310233414398285920477186694503974035498016716249325967137214076753891518455305747029750604051310314270725049299668242370118765619869642821863777571325801497147007178589491022398169818180372712434328457133222619154333211462145347151885236864250667592277333733675876047834117961081815829032318952310659722298297942860426294635697416023470549357698758456002541576361441149990154806962971060440809040275888629858472517130344960058918588850120682331868329071607581305681352022165873034791614730940820304675768719065696959057524011271599935008234567010404527560077189107974494777373123598775983501564498332580669667169185515358739727265884751398026427204017050400574911876026544150145697260412154700264992964391046174795758475251853967516202093746482731829218458381564691179910837592794955260053026233883478152398451770024068014306931218130647916447929762845292110684695645724994318569895440048005824556814777172423667411741184186837846657259946209052222944469890301893045280776186203005548626568873797053512030525420060740979208680943774552104223289425041826883957107234182755435763815295141744088188853881394661868347360139692127385607305203800130924457025595337415646425481113590345048585615020458188583512304117498242846934297693126539755406654169262438290840969840966046545972087164875748367185333485263908742453275814029824450448169015258132983002973847270008467899597283753585905238451649726916505499246197739085989631121880467460795642705692782903152534204050472261270302179613316953517413341723165583674633396362306275474482816543943259588679016279645206847297374923315716016042533838303869648930822497228697314827344473075682273765273766931188953834624185886043475021583421345810030069431135832702305518177336467294854515550946142612153338727556629703730842117125071393823992915990927948848739833132042279724374668401651206268436985399920307115510857324593996628558472864166866762635574408413731669123843121197830654611259483996572540343134780684477126351497183464554538427402771395283335644430581671767394010741520762052433240448458626527042368858828051870891681556173622791042410779853295107213272494812555360676393778338209485378784541541222255660378021916923914021277392828896637509269854307885853731941307618257404588569299749588287089933559047665521640360508877091519845385529064255269686607817688875107623993883976311587135254714104883158402808357519762317384591459681555660314442341323715945052927424291111478940694749409548603103449716532642795643346023729545325141800303067921396790657034544547820644110558629390952272371414336670196204585920289304947204193525429382909206992573554359816501445104386993848533802701413694463070553421335599222116315134183719165427271294444986646165793109548681957298824402781039367083446986606075116700278665567230300629418892556776662099635189957021116456735363996773473241503822764309143151819048980932721591557621524546951056711976094964066784431673324370001617892707133407152301205197869451148258058825458581402312899574364002223656118458973700122664535391203715885510245668765415992272214159257257136803798186654179437584095789297806794566998550677482661043919744592004614580134731171435556256513503759838558724889101430513689341301709316688289973586304526235525449354652863040534429554178734274817950680908291664771803648298083486866049546736816999865930645447249341707928836814627576105513090939671703763293330894073187117100064790192922303452903232960079579382449021565809011816284081745765339309719847503519413168921351284361788742402600368940224577911661898488098542311451423233731417507549459949010492725989437461977383256561884395557805296968274536426408481201874432347492500741233804170157909669323175546871918777232368957855002005466965996368746864143631432024500245503584626980784421910238796806656952237777087191178976879847495945128954833547075760554143058193503393951714410158928716794582415525449133578945141218621365574403717051205165824314111915141015900330949955242031990629013262502101197733665994085103379730889597686599640564165543975471932572299686259635066293303165528707551476376462540621253792229447196517282840696062175047207995308013570292117633494484628911992384896883665307121412069960878895477446379514813645404064023350980249992072297236523912998670276814877492530031705491461798230314059888546480740960653117218208980984765097505593451561579763702283017418558183026977312342328733268392643082088271321650041970038062353514602223976251380502932059290734095099778318890073338953790826991962671126417521097768768461065426139923938865348664302784967876856347077339096772308850942367786109653521283544703455456035295625183126196388224271190480321069258521825679485817143104193285150455265636024952289276682964333674905743639954579245444669108129959824083492618301421173417771081895071896100650115467040123415198414895054701654364524901003266635132769959117108457234932243204471966800245256250113822186321408435533379278195120094725534553078969347715096206942998720293171896563279421074309028607139076344204245445875123676470861224301104981014318937617777618786860792155627329952103223905752531134887268674763109862223151275945864240521777770554094938193700813012078150141122646479939946145826477939060447374204066192467408487021830827753665477791540296430457658688573570628280408643876493821256936772444970861901789473822648405145076417366232404496857173839700475103960795049708866069849222676973605990479173701688352725218519989425545780908448378535447378066929612007023198205446085072555323427188556556521682247325287363293242074195512539300017203565189665556523666840023635308901088838692334648913656931494752717887926967774934740255744412215432131061748554152017676408760988092513534726656669097948980667281397295530097731012684148366832201114717675841961731804766533841152760741381767851887647642789935167953768029231966271999543657192133271972970469401816915612196626688979377590425841130965872002632811241493171482013963484964097564103477159088917141172237371262497405571875787244623603271739088480279236620035525324969216145776915021617883443486500599204103892577095485608826714145354458182439946224102634288648080749452698460839944901355971290430679565730083479248742354840566837234813262482891256838740666297095061556958307587132936466023013273686957846464145263974787287177914331709709175935220645228466498313424791984989633038526230992873114615140795479850465159982817263855894345536406239737842830380188256968034076013899643932215309017627097551247316490987025044372505610558556953067363129644210307042142649100000631231600803691560720929889987334212976857843608948510035666406593546245337926704023836242985097603427822814444832767427985061234582381812841643002220865378995386117915487793493184941143187134216497091099402410031213390007728993133934964252362893829741636732735553724153418437621646777008704203688162908361492242277036871123132163291976998463405118207449347264267229188418342001924846838419694242153617853557042707747106468719525337359356554404476196766652465400507574917122737078955386537132695489532428181815042093723305647186556069550248360637879496091208593384352576362959583186851929204606749175957677399307083031644341033423921207593197298281034378626345385154069671705265831195918500801054023434774705119432049316811403576460014958273440687135104364492365514185266069803246196232971834758725094724758257404575006032663225766579411019167679032354567078361997213368107177687960956735317367461330475423671122314559196456980243228266706093763982181896124591237517959614577200326163868855603164818474168722755131504328726442003481742922647436405055581265803030254045030173069258072585308552527352436273931600470119969906248865806347768435569838833613876941713605627175800245867234499139215606127753491476770724701874845823194560944543966666250682148150361064978930987625827036787433715454535656398450891178717987359549046085081745553577749114990136029597108097635983259851037503076204180162732448123231599489810339614912561701993208699206347204416770130453530906815811250591526592617451884373314688973930692292897221519630719093907923937680500212427648561056615480653993997182597670798867153731709263964824622539801415030160048513082949015055749304326627696220982820253656771014477697269123082081693953828731174269705138282575805445677696662031778775572617789992630744546666982022647101110362767585921156666941273898572524378494402854752348167780717490886394701093115531903550703700759917257758292509826686473731298935932330925151692291170046190652383812197309353263439731904344290662936002465597579099198264260895575207108988782475588572208424931149273172009057558417734808871821194351912881793666447631361531807389000627053826772093972404269977395119358424861657019471060601898778255978614384025258712553793433371367455192767229934378780584505703567481352455048161083538419065003968879825600592223502938634422977075598760104136379544054215332968217887676246345147541373982492153693084358434699438129236670494479976321680235935460174718687203246982020571189586705305149031290413638797808400891444743385902419096397786177753836992179061341007978194921129471830023339269990091902818242557227106350001324505192820984887279743788935137966310176812635441086336417912656388381363077244997769947103547975359139357435752244053419400526525934735159159900803299752949857164941229624962627283283056519122350391416403950935898181455064925255729770276596239946123063472339930893037523344462880355862460950329671174833422262307103417673891623121778141630806687789735675957509189286976937874801620265760957988366838452471954443856918803457045844135410767278045487562903145467555551086025366427818509481507644248563948688026090711469831762956147805423951627453834447320451533970248933600213361730015220440802669290093936431783538272924869765709316654553285787194865995712074880571408807140813584454496310849224073513617056514635322852859392897576394530977005823854545172389718539342318939539105368717185408806805888965785037987552971355164096461719425669662346372188878854365804037961209909677772377687473012442523511543482848075283865692035643572293673174720192358550460621480875704210700374638049662700379629638127928471628703034006336344675039637324344207492122630659596914536592073558769284358691363335988722520624784889418100174815007615461218572258139952639847893673557568248161729406048349576283828189246148735770206532477623385737000009446675956742044814182684832082250378510201044417275316999512984831526916752773699600940249376853015853385731779250751280602734291219461476969603000906135317744582537155567721952778523107441599141260526583964387869739067170823909825028365492144743198214324780477775617721033694634934606079380712488543928345394801321148211830559044203416799482104492847677199424795228240977019278163385935389106210017383934818823643038615537489154822423069367935116895336348009821843462312663905809744091049118616451232222491456769546557500871628741408685234894414485810759362572137938186833846154091869052805763605395960536052100921099560939888935448826782004222485095795972553815502413846808282365986347627540416809470333002954738775994641791722107066507653497989432512745900229755167127048080386740693138907106760484452161447374239562956690388338452718671951313015118864431559036997180844767979749106183289025634464704866515959600399256872212038147231102403405836708957497967136728510834468595088235968224983933587241614637788715429769685997418079008499944422273093521805589847934624143535268793707079625092418409440306782045656008707958274340329888934583290284567379771625860207327711866918613497933133742698925225675950079822490712761624314103849574972354000108296750102666373465172278735162379614036471689273183062783065264158698031419427404439841165394562062009673485207471046284056178481880047860345584724553060380222951275073877684241245466858758945324899614662113569698833071240871296781172740248882386632793559693980659926843870160552204808141342451129921726639120396109552372566281469277625748195853681392984192539722802983499454874065146630915554875250633321890120247575960222186036351163887112244854072452695181473604927587432385734834765916310315854849668636163019996531889461903354999867569105824968292129042978290821974058809231237319504035957543880641407914364976427099306945511037532093256904158383248429373756239893851919940711402030464927334610750854364287374014988919411078380222345305637491993630547683942290507976128941914724408417090071876992283446794789688716624745922393505469452387512709946656049644532059953939535300429584152844653320862527669663793153906901068109209563887459880804124651286195692505496182395221786084871582421042737937207028680495134046110873662618893960130270984940602712762752726625643056122258899384811677246347288274695512040003733003619662837177863785694244158549749059252959923564373244559281186105302701785196759967831726447468730764026754104689092545936768495190355470452784841735575486940376460856930586044157615810160264696346289684167370557029874014787234587202046326930704465112050773841112125269313540619887637921495287062317334653882916263344523702441156716627682906164200439937244702782197078402927713419159430946978439991929798466999562364674944466404336551677315197560283244815088960529454199453301684465988493941710490209075972374350245137491984796365252667769478336355542241236139749293742435027222362624755780117750932307370326244214767379120327858820551495003462118939648431706156293921163327103433283033886633627140959030526538043325331409459109146666351249487448614744170359368357794221345363259475556767007744186702782690635845658189812900940857213714316084887100752057721398216189920563632838148078733752742455096002267752171562301617403065210625962578206684661006168711379279130201644319540443846495889823050644743587794127684697324838553478364969226130373528390750511958447653500488495663374777643953155010511053967244310578600925550223620348034987739970483719679865886168328965471790520112287325865649934555963742200164029088122956160589464617068723797565450361489714781139862694883315942681333523296971801767592260806628257114985226697744366896261299758942933617726434717566504895575368126910814868286920552115839721689222492647215848874192390890636642936386455140497202306504849538287927055382857259545483709602788293349791713799851595013636032530932407496017213520992158744477792334434138777821633562734235303896667430850842800572943774455500450928875508532191687303828258753623522992494251817390857027396037104917521076332320425050583869082660155743895136329266681666346879537117770334018707639402046777562885470287729037884261114391242595891789923386291041940403454629575882144317017702203125440045523662835798760753115398054979732111079734252404526631655905012936051790672169665209497796419432074334206468040452026644574812386397991566164879820446074731685608023219143735793214696331340817783885431001479130488787028754349596129702103512438694440951313444649601706467840424531034007284259607597363657127527886084626506075802212257962956636057631496823773458307598826720482673544043846464930076359107610889084197745423777422234130322907385968361632031006280891647382262470987883095159068115170385618030425396319723133706389363338085431690226542341278992406315798734429634413426116209464060734405148010775426899296480650408630055473872177580307286851780590134533944922742272531704715087918576593511660342724821680228652339538427045686685205633706573587484535592344131548755759203385148539354549513565767241885101462874492485099229880764083815063434596921609221156269040570802489091167892157753180477905258120360579601409605179333879157062590195612614068479205646748669015446786220628950388471041082924088805997334535001635903578601051148388433177529141281304289961006365455407614202777494016312154482638689310995818954245623266157815512150607402297044096884273718034819636238679097295846465449868028185797519051965302709497975749105354973542471465731173706169329792425989684415929989276262089093246889546275717900258411217888969319042448438442918212649177204032841832219605198386595758196722350906190848353094249535808483614214455241924706506507813642073819846644780355169132762212844892666066278638636166460223295052521470548548322600794890804385839416888512604646623739057805226824852740576003106550196455900148604266944183831283604147042375494570548671223885183462936548381810516064948416844214797805702790157689280986152864731899315588346459530163489902117662169682372359346070211392597160810089807814225300969286385514126479503496562123261487075724652090098445737273173774970588562811098379662425627056483397110932800960801123036284704373583788974618354830615665938495914492964702333825415973997955223888022152684580715410270335243105312824663945674503463085636156802594622154046987493566256349553825667577340897652525567627157504444674015881659746485465102330091315510034576789612539167085094708839052107315823607619050107420501677803763629082825331183641439727515351839810684814084346415765204774549015860114822356725801221027446149179702597480470795895122867531943533086676738660890517909985368391380881576140516394881833784172587426541508797010892978282739824475734966732317385332406923871438208349799152547293403665004166024717911120551527914460804311244939473158452784130201353921290977408564787483866331817854929381170106920662157141577436273744552401014471611202984766160053670328712496930633620015174641112990419022173299098653689481232558378141184337925445503877859207938409746009513096018268144353176761884566978060940421697509900974500374080488089641577389046535239839993830201111886610775632544655206933834304534427375239953071384362134452761825476529626190956802904565012239930106688021791599918060868987910813690126256177533642120930675725624029299072790642997933882853692901674387446479934400678320732478284877946342975205142332798416025544187520949987367501816446527107465997518425278285830248446765977679608492553408421611559980365714325081060658008191623846917642041468249633797951170391391198469801787236723412843747722730103799580685555075111806646055646187075772484193001387862485318072735781673228876706640007501441078699500800985553268773754117685050331624615298425598014377102437618659212241035643413064387885374710022613111856087173618582255473537839185357781361916413534782943799926391630175016909116039241712243102115858493874405404296569438470413748214537798706366961489305488031081946584109570676962451307906323321602506407662322060313967402083952125337136573376830343116058896826649150583948695217865900002357196112760781319993101565827466864422984445273028916571796999788199933518844898517195772223817641243922630659863001768489330172390172998760166734904336977404275922487083202408541473228371291852984454558353553786252250831056360149974995782201739789387337409474185304069066930312152191694140219497560706649535305016188976525617587477002484374696829675887552618044018989809632873350600951937078224184146505348520016300142601961027048699107947468331813116533958961342806482778666547374396685493090879746976087794452902592371803763638035664905849173068970820298850632844134003136521560347584696922226836802321047009601303834083104265513465843026703539789470785707299887319996360366542944788723726773969452482913781704542496920209120997234071836333238281379874591399167199075218337301811826248853686133371809225836738968396955277133132996221265158782086827924852696127320890694787151235845411755322364576567623170713604041378164726549323101537391717003801622489590420526115820111476906366775367939214664477142385540203861737696989730856461495505233260660985048023053158552642275981372329281302755856648716139091989539442766137896600143312328297824129633581416041398672087291481410464358000796943806981546121663458432795837625542704220664824024235982296452302594407231092217752140685941437928281031774777593942182655109993609347662864176815921931079598931746961551485898964077100554320787827686410417666026329104798644511154474696318132347683687940283830576682303359626838424534902622342319288408457779955825081254320829093031583753730518880251720949121151196740124114707098243454037564441615987333378408636841112285482601446369184458295939835544221793317943064145113657176222142722344930316782846645583937006111779811212077521175817676555418972119439630347817677130050461077384922079285327985294182282237319674925284741564747927309814810117938294142460385749726508673800927950586829315082185480195247655715870360399836495056434910318328893310529660793558412773992745144724030391816734593152035334642078501687884892134191972427003510020994340275604235077876669340768001368414663177356113776637018841055474297623558714892349128594059452152292496377883195242211081855191225463409214597928106873460436222333445410973581962550690336579475294958753605982899787129564303750378362442721596376119747451400697771469285466804459000324722707272498486090185687996105854719166638037952417116552512851284009720436621661343867737314963549452826372446706566839977770758200060453576577610743409012155527564177277360224963332369641067554049602072681659083474128987161245659108755414944025053675334437194867693141446543301470189812695092286901836132818405919287995878996455035451253015574719211649280937487759466212279052719631190388042711878924316187118109807663304109345558220279939713077356288147895676820689807953847616793909544948677649163650696162135186142646754433568991630830169639740102599056607022543455880858761281298778485561777183461371350252598335353997282514187854551133886684845181452419368022008800072906242907449722120940179297187752358311179722342791589388492284028589554329416887270126144296546862082106329384793472786176943042489849341271741937511739650540450436891660146813681113347677933358814078622094451223311031993419370124739546674502399364298244498879083220360964304075565666023871853035213609315859151879941971473293474382969296832132547464721897815645054288345408244131759402320171599435473968639602969223379030667663480936237089018847498061526629593440859151566463629982575108748150458489958593142410174664186032292611217658145028073140919271184359732519084562170489090488075330491328384461478218818240700519740193583655182475535276536608693877273740508112522489842533771210707873327248531647563743286452317169930425265540159126497008812537785941364199469045766517777302910558740543502596289299244550115795603007337146351565205227195797629111240981840228676405054852025466891389924956189402187424575093148937216121609761959176067512067574654045101452609811001073695969852725458287395669019299308223637261006614134308937200628501192904292217421775004941643876533395451007312642890872114996452188895938010744134518957639826884605064123945211523381633575945630927126545589305003824915080832974245495997476556623272091583249138608798908639656525654262206794427205101464359990396283508521250226169907883956232802137433682696448662123442002162741782252699445738331064700194591955992487488716323112144678204780687808869270664549699019435540276626333947045784337356651543528618772986996785568199319961817799191833387964543606375313504707905638940931210133411490152043422963664400191089210852920242886669025073137661860308894382706340719990859160347663018465531844991068998666609899466794580097006191754112806126703426941885591226136882446958357841939422928578269070851364413445808298174440726464971971453955104419377623097013528655773630361899638169057971842807979340561002596383697425028335922662359725447252709028913546287085236165486394351777877844856847975097024980297259973819682511491131476904827710018353425240725035708332099254703324953123214546967083173010724533005648317282178583264449598757072800996652515241461953692846065857241375510358211020994907912658281850189646703864426101199724801397264900928382624761363344054340067414729174677073435777678287954456855122177403814140584450175754221214521973118863163061587130060646074531929205482472048100869734314223393415304580379388425026495124421807249346718440168106337136266497334725573078094472420390295039508363749185206873334298560105567267223383730451276931036489192438423979434534259289426453979128677494202097285794835232634140743215524930675064506885678997379182960838790365576077005401261904740888774032951583604118469132731741620942888308252273503407936789250166717678562194645036475227375672815990767621177831232212694708349523526347326049610640219665672624554021783214724661295657226670804059823129712332630578449056435037048503454832032655459921112368782517544477978524264455051528904718069339388670453414461243659697255254873815378650632623659362107297564315078010034183665382567440992539515420345805362353376382546944791150089194303261313242716115183483326656474864243485502523303886679337632319900792622412729180720410508496513166516669013372271418372688958298763647299951932752958655090232901987117236776699817025677019390757047365232799968409839506444945741981307376179967361554373305199112250059804168189906152198026861233655011770784621706239444572287039451422827676852065765357011242550549410408305523391426991291804249399931904924988424834304500911955526164866027739039917060040139670041070133842595688442825534684564890498113265907176409884495781142953184417531891060034050914441234756129662472622151626209720203273746518510803651223783677086481588955326289637111387060926276749490603728779563132203255124505215505980226272685920906379021397986103756844460877618562179523615247410025437414984153630639817051398570179471466731347351624860186033658108197038989362722219671145573031185469999781058930241708277009903380931585953441383148096942339283702977311744700507402460978086213396514104403924038603104116093913030336881613114622914824350135485817184586518314552401401949339636479668920835767731238548608045926603938681485029515125574653338397552832140942370083273630776737924993070678096386827919064080761554189139207340146946973268072268660571934306114150039087361282814924045045447594968975298152761697513430155968339509497033061494657624747566437302178163348256061993815925653687794464633478430590903491514752517708313936774045215086770286118294349688701787963172932657607795941969011053569438364387533042018660002474642863832290050761961547608826616988819212029331231139580437683772804804921501001066635415390273048061467814139539494284027767919284679272396187176224195589930352204062812562881916246072456015410964668371314835126810736592602273997714141908606477263326828343497850373198675641249040998292293445463540788990393200605890640979779799339272718628570774623616996051978256437746109966510053782861459209758033639543768926818084705008788531950490578889820510648041500896654598524500327157697467216272409412115421621546016570450989869110489947449406170721635566786029832975306341345091338690765222884246209661295195108869134530940070058792600470972235926337183052931696882484207261062616511968937949750777640069094731498959864652040406742257047361098061016742343532716333492355630670589872245446295746553047151646653351424426714241574242463835342625341336910604948233970200894076637738022766762144665901772780973806602399285554912046742009845146577773602176312687460962069392074651607087457195482026527201407029556991386361118928600912985827184552662705650905965590392555307212771195508074130433458512505831735992836726853748357339141882938201270655266456451023631649957945121536386479679824066491028771278842077495741935555405548431209522341137749809592567999795594043858393110581844706439787842268805534649481829362011547869638692794894513747982917084892441458958742542142487852453336542444918824311503261023206051579219179825868057161977073076337395850462427033125465737818561729085046126753036610102143083150951039422938057560150014256527447070707367503995381053428551528377898536501218696125337101917245578962681588444942248893765530382839712889556555571045579109545122634659051965172689047682728052041341070882482062260395487349131859058748219615049775037119147003771701676487233600450398390440282703601603710398239306759506056917265840832473239480771144425990207958808920225172502560106547265385148417915424429140968826513462763991418171533587090580577582104503782532092026702260720663890241058972189925827197126581655329256164269854251764262254209260026055437271090037328300278908135848949062039137969850630272863013152199164178862050108843717789713752370353121784998983819602602357292828447787442832606158600294188160125715468082920695802582452665337335228457487167642031128374972737005867260678355840784209073807123525088689423564477486384428902376382309480164023090358310495014648460837057251973912655720669462415023511307189711652123387992642112564993037923272673824763310012084843605277001849785165365397177215971525186600573187204845512063089527884577216753290590348361548799242304120551233610898621089657248434626858813846269395553535846450092426525961372406731396451130018178454475800806868635184454147210464203928189723961306167934333482976674830157052343060055800985904776480404094613315120995331966357356158843564602429076913234899490005114073760158292675360913106914329975456243032185154829100617329847136868082867776090515823462629490073450730224115591364835596161292979920645911184492135724305114308828056562266957574356659941235709709080039672396678253664367071393630710175572050685103182877267157353211134892488703658742671022848754496612657245157205674827194798399466840573591570583544067377749312303333724477307977324819196259550874323347986707842163135933301596815928596507720377650991295241488144177053027923562652710254701305902753462081672614996708413819796744075301482054798909856045448842206011716296268585333635375220414934271462033432008231547735362927216458878836221276086469826216359986360521812465242727543532002715671665622830663413633570657795898755443980191263009853162533614795349011916608061021624460919340129909116371436384409613611437078609552628690192573015245640069814175593017928434304727107612275140525626119092549653671375413405410663943885330586384510431194575589955952455296903104450804379196624659287307934390697406162803531725534719387194084749741697139194100277310334351032913958040734251501672642211557878457430656326098645649683375210676689752364873288833067115636687916199932220254847059592879145928474370383059125346996012935018967020906485778419638375069849832743310023764326597653677571742897853373330350837767826200701318834585662002542637087068337057409216649921397237052634472944646732408478271331358935855518089323760123394592723054348726030096235382778141157104477955378146661870409951943776043755311728339661303202401213715658266997057033397897051102281887296894435577203183334542665897695007501224951056972618306491514982614384802134272613944495614018876099538762260254195611919979711124558929258591419648355163435630773825626971313801865963222026103433504647053760596698055421474517630099961563091549539801761994737501254215325193534533310991097647231921753154010884163136261911354624243732716686103207005844472972447605117442437494184826409736569340729560258126397584854565757687793101924827452977019807538270019258102376087382909671077870439420844006200649942712533648677692504771518542796469427405577706511615702918729627413230207403574834154744474964783771384637562538429967172799605085386366000251691629330290414156142956635967004963672008831980051019011710700958757959358829266769172475851914359110435066572294323524751486193845002154590876012733404812028546545352184407308618884066100224348028504478369052787751812187283023930551213434491853442483739107376370121174008741557097739336415146608298465869680033403099476975212788798682952866432149715570623165277041080718963482898527104064519442775791385228121554736782751712496619303354649723478371071290139210840803705327765168310538180241312598696453418473151472026485904019613844709357854767207400060247011462004497652638048382891737175209578462999930605474392523390204696601583937301257721155216676735007254929532750036406559595309686753677352155236142535690008734433847789046731983145575197138117240037557972608282245566640655415989729406305641526038325487729709001736142557627107067338197290382904544399004256321921525786163704663839040711080617765979150419198511973212364941253845470516914604154885750819919916771773986350604860894015998202835671033626494820796835331651870550667265099865234271393925254620796678551654849598494576736099413684341972359249838949469446922929549952283152341118440659836407795098656863819794693162452631719121051674087602402194659489614816577745185376404160920220169505840521514448398534451928007708896123588109179753311671512092665330181275693334242857496787700750726599929541578892988028357806233928978617450584360267889518281068353275737234250365654073169003178381106138117356277433970197446928461241595371426286852794059939815298390712451103492515229830892633950272308428734474468313781011551616162773485731822434049775492768528704338312639931597313874578543675255050631095971079833258936773425481590032468916086687873961954510738078883633457106003341058425219786585943004185167763439369173505329800000797484939692469153536347592428939639398456210822048355568890078767822046110720275577579400800331032461796777570399638190972206301324459860456150651606134424153018031772609354767926424184147894146136843585406884695929992737911354575215715788816503963207014589543707365050624361947477015887772065011940312446202191450683670623746346294807907724436034189075422760160779900699459304965042011953431063484559845714839523758250924338323184746616818965111290281041304841646173496760765202071578498556488504512393593831901042834717244578865292842960183480806702274426759732899647610623022931981860279963752683424308125624943394047173162025327749749316618731425571728726488111373504618923646681606423061105477740227396936014769478520263987081894678930906566717125561066148108682792353034632904140934776351054257578687371472766313579027704882677113255733613247404117940268044749277606093342586205678522342676603617335245040659245617904435433098532355383565994613904619281647882671453635255001233790153751258515567603682048737350655491961407252040047659931213390684058704192172285959238246933906163181446005702669151048352071301802087440096686579655310119862370245134946210115302366698320867458403301628105399532656404697952396817653330697341112294924437777550122222303165855777351167119417401011606334866722878735792287112952187257744292142201957762127459962840098095191715391939429791587036676901570404922620311943692603367483302758070733555409369020203846322642099468272146788771200558603466562806369606244434579490074043787766022005894150083923156760198560448387182213071567048199240938894873030976836113978108277481740368513349686102327437577491644495468712782141090118073467277506411934289666635283428439350378913016029463534174560542433604484921611108374877563683751142193482892548055846665659926890980375266260889633191390607082758185625398966284768588008782633949398573250515407169992776898209530978268911408127461675289229511695318111815766450050666934510146797167801660591978542177782222149146957485089808389116411428478404643122860618284901080728069701778722433989025189578050817746444132175406004781242778959928719929041832782667735536649706727599118627520819144210798469103141837722451172311054703173198975991846171678707606044666362561574881568257305958963046519405903394502350519835813960649645073417099876449009782421452805281027309025251461989886459084227192153301719937385474880184267562947465867098412058990165816270405791831389564072780408494834529495336063722935027396484203022577955533707359486908549707866448100753243543511174377236597648324317638221750009698569158105238200642563130760539659759421739020617672316825136441791886191580766596431089291850311345945191343317417341642787193707819291774447116582303981547695049002589505120368982166017583245756622026299728727068235888532053838826266732746234086426660019334384971983305501288952460393562938965729012395251155916243279749308243215828571605557476765950129540104959064911471537158816398388036779190319644783174938881343365625127017177192115666591690414812002087936416190498997891475963183467765657618496315641246210490418964944193509577607302511824020962902043306136496444025643841160593656225347053751253142276971993157342203683149916207262313829125997771238338841270697192867085706662989533800969777870478812882841205630639642944327005071122131295038204334758845197681676641211757276846834789356993213142956873581153301530648141073497569799290666966568841754753310983988610065652113300280676223777318823028512863734923772408459972544416561495645927768823680900550444384514982777665934436948010980618971526108281612113417935491523794061322391443037504355174048952866202869467673220355355085619352428671103048462629897445045465941169113471691922756704893625436770108805224031376312983341620484274183730072514435425770046331799201690270193472415424647662116147445112364675670099567550079203721294893761308213636678203738670260344280640060802179772933215810052827132378927936401359765975832998261898090411188390749203345206701903262562559977702147393027379407795292757200775022945958611628111054326138979779261975637516894022516632242506400667395091991339819798461158230063608244310061201140295523725670835813147319234410118897535368334148182478087522628226882895348954549028350186665608379459371670886083200291672458604229666503712173831519126186469864985162822229772872017997084501383184309211363799223340826258458039740958253472422869041049428069359444252455006738040339041136390490247441442720337893459280316750913249189276639741908775739993611831482331770097972724922897586204812821063392572897016266698801440459994393050606705653551210038023984172310389359671279674603924825464724852346789994700524292868266012442308209846250636354374348457590683039311075785628647946840287207485326864022615278095044852930960101682224561128374109784923907978803428817335724667055577169062758937172616379099943636380852301831453987302740787641226864332120067771117367964564312958024349335132907568162348383505716760295884604373357444919292821167225168833831976915267597897169904865743964288990953405386042763927198121561971471846612388678698584711320826767014663607780776697815038923160267025830739559482983258409147382259893335028714203167997911112350199518741627645565456798386840835477935735493937700122369901337273499429207391489964431599152034592524058750137129636579879343277713127604914569749932590132412356269386187435953197280692544790082884229915080504737003868590407998985939802557679057707916388610675086088057987953808027536119208021170558990931015031657064512242214547892405073195758769346681378791121840191906600000054860596316408051530781377235259801526597828943511507835337040277692237489650144146573976074178096626922200108899694825855651491013796588846428653246742779776656931897592585426831387300695267756328262455108067293902792346839877607576580064333650281220487332223348352607040884456943194951471871541614407595052570018554512937997962709996106734070502466689863328105082608630339779161122519764306463904387412891560434271658138574730061654962225617777923122953620455531691833853204994370547398503433589650890875891302226302754614033629605559060902423998202812347857175262805906385015951641997796912081344716469958451894818321311110499493209129391759864575306379629571398961923781678548225581693438781599558151385677780792476295578918999799321761855732526785155195463125980253769970407974956021801334806065006802807552726941092693864357926707027010667974065489311577272745873220676573497393558670558189953751077064208705415257898451008062349885402567652903689566121147805292145021349062422096216588035327273655537427095778505370858129911990484545156208138456338751643115553566816098053574902271875904625987450169177029096875601527626691586243030007423779256558477314353817307261041062155244176115379537742237811687157047829509114448325434127813063003008274258527173617440752833510124188294030172618812446600164795342431571344685848353084916958326455867273881007499867766103639792540452772214751360204875893824143123015895064047708585464389871892382253156144001260133296003288868307350028846470600024533737351118800922380686734947656095502838239793685786406425551831571347160769703495881115081200114699293302560169208355541439231337272466355009142202172205458526298459440601660074092659696514649605934343070264596265330156252379430998852165119439232457395209177824177980837107084488188163384727505316880491251493470902147102949566264733601275894393486784483430265648950668112073847233833632764758256008832666491305428083021287478425873745457073650354868394052216129714697347131482376227527831470699171598858155882704324395965611376650400863400439190343454979446949036094488825653048475206614369080027774784008619688541414470966555902116970809908746198740994740158065887640480811859885878325434189300560924300370883404649950652348550432005223463104231284281360012086857293376561509396228431350492539723580999575888498955697346372183305218006639393390646549513110028844680538139483119800858780669978137652207009527339098129473772430086759484812667543590966691404099807421461034152594169887561553397931452186139621401025023404974604953288010057288351731690632589820618597026698216040140452456667018798124026045360849986747053649386268727416153504855065711649389175156519016180837105174990781550513831256020914571279634080809190752293916613693878269982436234065349080880598066119787750552777482151027549593311697158982339826840400003820585243616167716613727377355807078679652407648641642398848702954554856270617980474128287466554610815987280090728641471931659712791148879806050724390518332430350734110966666374082022014264474306062569958396254827772344446640955262884077425499655306834991410678987363275757266079735142485280089501150860035282574780420173035977677280250618669846989209949309316109655613956777815428143994310861149129975982862054985145530611144872056511799439639416916314000732606872511157591745923519982334179313161845624039656329693915675499759749839681773214490051372522548174439548336547059592731351393584705426917303451899681305538698196094431452639409898187791619879015373423540375593581716482091281631674189197413839908064229395700466142973944009795524179527774896570764370925176729802299648576319488136594428879904954552272354581405315435047535509951576662388312540037222483090841853640958114624500209090600644223323059515648312373374997926124757912466414250134802764887613917397769165221909719747382032807436975859757386235383008132902720565911265459496860862115660100284542261795919930907079844649823675538123734107157319759957749572619429120669726438865975949644597050841607464336924381421368892507931307758698071517645377865128692853652144805601235068784563540583056236025268848622584510458150042385201711775043777800091126400134462789588760599875692492574182249257284816848509321094244715099374434093793304157791822129902667888409948040906421321327746080106445906666545436287103742930006951252435758613793957724059570664756627806409481492017714446822281803367166124892417333322115256922053990112218617215924255203556893151103731609436129526870607784870166742364733067869322872711602530459414981246038985576903385084909365164839631450407959368722275637343478523408240427307555873259402325948918437255649144598661728665681089472227298647149574723855991596449605329725857652813731831676093581684604681871575040111275270371661028908462260024861980998175628591030489045134779221326541477589633972236129280681875097369627614520219878579952508051384206292535542296973288309096461777949022329397602377092710319067991587268511936268153436457700118973421309869155854691318915483144616857684811252519399659520143202291011306925376994526573580621205530408262236550671392880412931310578332267984657337652477515040647107549660876964783426920332817702475563525850810581223848758655416883055438020591887722069302440700902602733575852410578327568275526087143171528845657608336440160297591424228098357734057882841176189715537142264822622702395853186453788205696154326276768367318398711094035376422513399072545341674521847601528957623357067440010430428177704324335807765786911279541810534354740751399858933692859744506988717369862110292678311745125567978807278304154825895468365241344708995697326572473256350623792581350580936739894328409917532365984655622078628664957446448203351390759270758753362200113276626500666345094141907720295377553045561369870264055448565791500256573435086898146778713998022127854671937515808219733836864793338284321973930649942929324478768192192071779929065027132243511943563450136264630715307793380546033866072965834915003046863998394459683298626190025363330539544275728982188342312824748559996474712936993020609365417525736286551102018195396696916104884309181417351339301553787470953686129647890435096420481630184086815163926676100104173624878903512058475228515326412802091751813089664996061146439646560940845120784379472029578482259064269072812474217249560387702314617045847651621739586877165528150165632559823382286513633546452650473241070921020622151884565860378430412758347156724045879554673834670136556509692272111279970869943643357239167424278715416368128075904412050774545988845303190471337799572381900312235772464161415368083497308755120482589359317016241326818836977429332475815022212174440362480882980909849316139653338882081168028293223911895527233749648238051567494503278187339045638642932038213605015450756730871595562644981598536823359425943127900699241204751899675566361401397885696108778345423495997900923823971049635705623192407875671765149394257065370151873958729804667493077637280475215753233858783994415638799522934359452772081032183025261070780561904807887109782904737617971686521902255246070869410396877060605633962175144760665125529461141451731465105309226051608547002337115647335374327071127444304282736968772994221148308466010542926413931175567527598267382998770613782226563177696788248132675552215545592209527875585386220331601753091867833245876903569910220536379383525362893341876681859285967730109747672844227867142842962078343451215235890085534447064880834443930775764475720595863918647803417830579115529513658958744019227053175956333054174793701352462066617193187221755151514978892562594639339735837589602066825525360017250535410714647710301749422209235345916389846842663169989741769456203313469599959098375041234031048014272422015304730073458748761643919150747481147528068162219763001767145136252774468728599218769097073389291338485534652566712124510201424288900806156050960280967397321038912712226244939013282246521987046663918121125801713002673252891633687956814590109289401577116845362848420573621734110536831206794841497253255496298714398302515922944948866318067866802191730883668632242930184932218040981291984402890104048813652276176278116070741906669075413249775778135716477975123594624407398806972896508101950515732101651605035933273427772342954533610918128526062722380306395188268413524286416180242774487344426851797122918499845868727205953863036698718441422478918052084781777002764539736393558863316094536286233806873156411072900244898386011319173078591341553537283656581193402136575722611463678147058655846695778554764560421305394133618360579283805762779060010076566461312065239721936291167406414407204240757927986881164675258552010952611510696350302293882981855702437355154170919217582702416453227519393784757115116981700515361730197636361736711356409367228163636732581118061361895763064428812629501376240473690796495559986414920583421341766549751961731014147171201814689789925892278745493667628154619774199503814367913352912343292281135167264530101348917657251687360330049829404713626243395780063084656468786943896344917428429717373348761191715922122843340101547032131581864858631124430855915405766756699509048075327755109235223025662288123475857876056932918142980438128932191982801248236508138087350174663312702033902628595791789823407764224351181413528370140394860776024836121847896523248767338396198080088107595446676291419586767175693965298816772075025858044410506711473102901648557809973688599003758677147629585372943655206423028968098218870794175622329446170740914123612644571888593174819450920182219054786347471532859486261984213994654118991781567076160859520046929923304541980580370170794183292383346938312925202776529883195915139518439050165655415162509138519857925696198311139761435164066465508769470029360346088889736489524742399000420034690672034150070064188052140138763174146529002791682627824297467894982448157030707768748726148958314315813766556277739572947230056531207175327611226672929612359263103522673851306437301957950682809035621048216943052675474572335459753310527149542127715840719818162667002667666067641003166891465504028432107530925755259311193719861225272716068346875743499809965995983230634356612316703745721337831800817002782420265235006772740128868957978955467199363382602316329234811879948111287304328381947568126044966478948071210159881134160965540989246217292895221602161216601505989784267882426138749616791224588731654533104130564996388384432126347973350934953169852424895232651791600564868506896182709002131672359934855706458043960708767566037406977800545650185248338709138387427150213819587394502004976653034278714095835924602161617361704864877320622247483109557744798465167051113519082729140706385732591236745516861107657126691960556019746494082917903161966754774563333771238600822520588570930174693775855239117262387341926254823083600590576553632243350254013518113484768061907662513605606081811732454665269870786745895574466658501299034649773136767223035484004949358348107503888304992992944403847017047978262468846661495729206985463450541679568233830117406281859103539996768569653044659831317137743378229821316840605650787592823573157316014695854687182652158383502299884292200868855976355314427796318588187070495610136876494458326584309325720884338137005622033733349474569495677347796834223778326586552298231438756510371512522987419880152780006498698379281419942552798353519622579859765751493804544733679178347534570472122200634862425511135500030178476219473764360118142999724786580899078169751826895269887731625131301755594424647344215714057110828322683181220607922488544710129937702448284163988506889959900043504014678631824875011808735033235155828099228131976961353505116820124297564751623592879528729943175739803321715066455388153375670908617113640788293403018020866191858694084764003640236319708122924713437278103216449058193513386042801024237460879639274976059708766866149165773789146612546675532804576397819282636857677685106890968436755128914915236646157875950739965592848943937722512345256999756602742890056089929115042770287893308546531332210651719191976705719438101869933639904716327275555525067661805877910811433281478171410000419388567504572529834112739131728798742367072595096911741832868210533926495878631485582292601040929415327766093965229237245607823960038414932095322764871338143528642322832143655410905984224080117518935428595723428754339390507873713122225350292521501288030121093998469058294201188832962757479982825055095928301827170642704469509543830768596204897501596400811533285615133394424795393126896851555701526717664519468908828672264075749702964760435539609184247006646000187383808093176848989691239879487456821800052692006088844548903380064706160240415729188649940255036248779482589016001166364046067241453811896378030167859153350216865996652844560642503334371230668184192176810056986723220516864229373212428508014738419972046464308645272895674304557213339520191827765544120208379215718362064660233513501829568485773098801919926091621925822803482973750626769424154494331903315500847027158207248870082539415226835889213736400180423243201860058986392782047404914885616338842804455092693202277080539174536325847844755111978891047917488819247028067344982177952906858831112524489906301752841780131619387896114433344297123296494241059322716276088255422966891277543847249100078303499148027325791637997604333652239749456038667857685221408831690506428705440607258187289250963257690262362308770864685597779630092010837248169154945233833465149750998116506680179603219395952698924895677318482884660519958100408052312156605710110552781611415292263175544817894692600743671567373198874572538596156452919517850710329193863907935045522297687226787875325809173085853453469773657848525489016256139105482865073665878949182008884297433306118058249777145400021641881371887028516175187082353196488856827647885833817989399975571326233354465919222096828201606839866966193742199539356044554449523301515222466682908845550469719778275571951565921048509084146638447569151314710707895039998484465087831018971885795106588947975394096639197062815795671035559587595940190804189641417918207591008726015934375505425338679671637006932014990816093282652340437022874492383340681690940950248799084599978107088152346548139461235962375969605307321846698095729013538232041095275201640131071199300802628406808992578811962736088908696620123582108012280568526961416121310692421691782914042960666946880609104657844963447265324316473562008223415421190409784137223441604625405588044180457357266694469632790699917118799219540274284750275762936258694811162622378362760170510138947638801000629611922915795172078700286338824679442754365200641776489278871561282725342837033194505539991231936563597541374293592179229006540198935851549272068540076607186604473590589318177502730361335543940404653559045949571128272501124062185625237679613254980115785224116133643305915091839850498827573774740373068387596480737989380901162522509600496685083497615112077956048899613535306124656245949903555506662707013687588788102091492356985722581875269911821758081475989882894709469552833236637496987647595101583786571348675321984790559666861839690454086573051457197434060223887172911404949622000222860539468207766109129592239296110572412573799453758789044596940498313476972378461933168759158627858203133096223211464853214557799231629878198016751108227105654094116384063358995742963210413584801875934255181317018054725260956340366062933889622623019435066996527810869793859895569396684901256481621215276954703530646030342499526420037890901855769396876028739215076082247441053255277598050376717034019589409015565752426674764337467997495072725806481590940178476411237512737899279035348508694754823784366989777032884564224106613985409295544894635842300357288645286017043491302966626234471579964749482399737740612460095761584383474029099258173295520941369035472504825893738490826028773442220704496579762620697599447134137235670921411928751710543043042844450274605357539080325879027801138337981298147586864153815258261424212136301281986676212476574522250646649816634902074147834223141410996473309028121984193446890905771084485409416458361888263623051092718961074033248317158774050442414359061788792199484060173076831549285299552435659243216729798462295308209263883473764158055639998236447232274223879147157540730130848850885776351088881130002712439557183974004164153381405594564184699365063936947741732651856674242767340886759229680488872881567284759047852076833767977907209880016652462754772594656541511191275875476382129346847324731032116291370595270010528526684102550735889980418031245787397261080925584189192484149357980310206598473869180756914166362709947848979010975893641133421761656738569897634074093648603645370269318418614161174457467269408251507970072502601555349679231451026808192370182794401990434949704505451541387311500014397236238100728282401945908268867606883782283524796373230049037493548781070832255896220735443665553635889194267419030665866887880663025890971266947924704624498096770000956647912728972342688046983456414825247789802173582555053615719451551999812379982689440820182725195860103282271931677608805611999769243564485128284323026012704873814140273667081627673360702748946374070459364217714285708464930336835818007973848384267485416771642234385255262063406892287263474716035029597693207550677563269913957744893574942529738252839196807034416049631173193292479756206563342725296106463113320534340395546626279188062947370904975777948521349489684314536090837649254274163394157157191446795381106554151092941108356669798213961061974376539244934806854496938200453420987985457624381663042319552728794211463698598672162675037734859983944961838714286486927842321062520075523974751359121111150641431011430517034384378679092947671468990237863086671842312700867520604348689348204525681350945441120599982270626049854760974582260446610968238448487734359272900982056763442801966362042162357093776154366726999075038600465060380532664184932363914289865467860864827167296893424544358062675716172983489315896173735324351251370733141141206287237877733141901197663716101808302718679273069202044024697277358309185160876620583157260824900333505498253017764766824097198119485185163324710794489170755175042865038257208331574006406246130740264089197244089529677847913210882249777862257276365790257989591811076489399183769268126163129620430219741207355118175307711701785916529422460010291315699754995607002777819314638694555149406332622922735070832205879799827693272392650708107901500010584661586161793630608495770223186923141118095115345858422576862623417020288751427297619285020236493326479323024535834093688043558686356410064874943883549945045685393084119555878032817350893126222937108590739926820774923935111746106165648235832726199229146912744713645475904333954343455822236392815728688214892710117436044348925346852001832915418552104592946227705892516600426700790317662777604570806939484430752717057553375134519574256629740138313869303941608176689801967873916778599435293190896388562994614506404495957672591470118083869838009103730526549636721441960256701228211917680627250236616102733099024772024194724597970822078603426616488853130235987415131275888691392378082708553405666468065221461277781022727338658028580536405688529445133617267067392081940632748737975437519382317844292227690012539660549059773448273656682507778986882551861760053176330863198701530500639320682461130419450108804248019074388355660389560661798312149022680894929864722211268047585299008985059048749118949793201888391137409120792005453146638041965373946770036859478583292950845448945031669163740373406667890655236673577091002575858796091540576859762322170770129007241014695546354748199057166772184165365897299001309099807351518369636508075500524577927302689346215011647024197305368364950242344443174073013134442795350115812253923369687355409830243171688551300263454071335601362351360925224430992472230132579995368682741567462189883613747592311146323578842019482596368280122154769619389766507841348523155743330563799547420096308349921261707918134289286095985160343670916332871173816133209841502264171103103602012931947951586670456791502155589040592768532812049466877383755803763026046563813658448190434759050131886267152343825020786123508143092710912951451496799150484878803254588345917513966205616815525793439112311614790284650527448459488371631046432507191347554884029057973804625389644211077516000232203865527513236853848086958547571424199836653012831818236712808904042984253955195764298175619351649583373123014098775733497561217661314548219471935018645753410734129964439772021192422897028463152159760261382003736892528047476091524838380775781902935214415192822588066887884584417578168424235063157196967664118913814368137347514921898202734302617218907540691989921851269236087265983569886912412896487906613583999250686009295402765083270943344088080608109681483832180088918687606603999956423389754737476703379412406817391233407378090058911773016551623931197342918243560893789953083531071852135335128135785538115269318348919175691902669546795610891562637851270359728607521194934204384409701008317297788610184537695518142155886265517061797126636697738280290372004923761378840159319926918684569508926616700965889133098067298336611011410849828567614897148974444074488158577550994626928576977645269549944525567199614149346207600802045510912699085757242843953940964598034294185973957492304947716242785049357727332216465851978215563203820550669019402907476149992571618242454306403123692262047888624644031755013421750888898620423929619121533458647132713139795120131438543941206272322015581131017934333599066743977170130413267724983100239381546940753927014551185353833667609436401036497293409540561052776903975420462289016455279038596716081383383052917999577433881857921030187766285269621564744056589029041042571431689723659007229876560777478439860503055287020843549638983108205404120717474074235509581541563170193618046927114653551623372485826989298464444424683904964130384594709927869302453533914192973883087895588183303804449404136934766065784597824999380820172262204392686610196192038466989821135865301588837278076487530223143471152305798412870388707890068686505647041961876778003125928589393140253366130000672215991758227563041076667218199294052467153248954294072626029497965767219580993653291064854782351295355656083104606520354006453995021549286338923696065552348124925198153885299545100897002086322750636519231500719178670451996114941850598469034527517773928705274460127516908568207170810023719463640757312515717376758995089025786575503961787211305656541401769967073500979879065702822238039404624985174935482141455411184211528438238848227934013354578138663580418352179854201927568281626471478284959528062604435496438010483583066022979521382904615026080987883632174838215078223108530482686394071442131063929080570974547893278626067248144142410011359491021212700832315599639476100035962597968033912713751303550329139697809215195455401786073375472808100605748633971963693589354267547042091959426261410502305305665276659595745408650136167514525553555038028793199151538884264628410367855762936602926214551715746306483246776160245554689911874401060426748782160021984659893532726021201155751643691487038454712859623464226071756853988519336287531223485918282617287622178197259255573427181956944344255621134326380817288353125956632742092003588735333445963511809862777085591760485353780851486033537778355019066061914074186135719036445844527163740347747616133429891995600036627781507123067823363887006164576078191423367540526778414056115414092913150877583416194525597043364473365431314976468325701263206014178934939312401353475006200781760087820877426659524293362580206004889610797959256194229662249630959508637289274876673084066746903249981289565948432517367869598963463442345233355652685540461164926994818816872209810497459392915781356947917185717385631659389080509370154340293438364095009378112321121247562170333245243785320589703834346882663639931326025366098215279260706139581732583975893377064946898570583350983729109560827953592836084789647226047304535740156515986501752294370012592744908678747963344757692181736460548988384199313200327907229967918126246452687470569736034309315357815058105954545097525178209999339572643220978312078461649444176390367381753401065957472966126925397416408135831597644969580041689059657501894960345760465730180618858215027948513233632960139732234541629129415451064078462497476703753679697027288841868157941325621249609679547427445616687201402139520707308090220344412647869737935912230067189071323076133547735830928888047947349438107099895324640309736251507267031834114686419969435313725553357631141031209498989803497079570307335287963283717512984985295659051193454140495467812711944802652093636231271058033053526279403834408791600224294932958417421858727590760638153976952026703773983610450411044590660334256099449987749809865334108645022567904861423125490449121540556120318382110356291424310328331345393997313936002879437531600310427428918231485033458437072845436549231188874736585459567972914002044206824808220889640093932565608240136453467333274179164727875405765745839824383532220333266125884104108335577172716591901124961759406965183267199939850484762164997662032526545972082166996882631871806507398892468888897144176719193946368861378827443511837880160215834154468730700427400429235847951191987761691933665659843050857538789391517887980958600376749005252098172554723351275017420121737770612380567106959245826347864049042290285386067263518337986143265749882856720770080253805707855366563463555820336515630256986949232551573589580608525640503866214635818504586711995719855305388293247179388851375085237653045730637956806863794511446736221434181912372711449883286332042133729821469658186697804848654179270814960678310707315831654705039310750052387861096082005700218352113857454016907380595645787893532048703172059103758993913703423765948487139570874121589368508258650961676635151222525374761888794131907170815031777869109994272208903273396178385540308066887451097354696221445260489615673923227634765337224532033021446260502581893696590648906257714074593777300366218370221655469477622389545662636661389447253511276817296249273458690999059708436724682031062662710821125960677817342377733905542190075325743912710031230623115631951487976096426644383945389865402229564919031215230151008259139367541493828212364630287691472334115898902461776144244444533298422778940038474685673598598676566594987472409949102952462463948736320281119235948657283233931068754071780708782093326911287440357780354934299210972143702899811877666756022421234600976400419703364297759015735129124236792075909032720072442922158567232244882409525687800598294861537006084468844913223907306657380940525146089481144041439505167058857412355937181811398888494318684062894395631478651356828791793598077168369903434720235736659499532555017912006167300854258097217175424770948884232028134613504874922430816083188591119504008290902679433512882489670146711633826398388705819170688018618382926028552135460655992792012421113048595042408794348838266685674204617629140827386823863005775297980271085677338040920214265895586691358705860198673642641680042497414015631953177068075382676028908954105109731027555633804683653272208208272389935067712064345593803549357726554715044971267342748219557072515852250493462339863431438330279811825908224090228000855326189383360162559390731705260018360629627003606992997579680805697361392817774732748605870019707493191233257138248178598249823217507617489249620143326932885113152141816355457598821083222550645265155686234375253834455066633632034094995203807069302759925481973744507197966618549354752001475814019474919349313965745393917689972935696280695277654213421346048813698061125776884176099046675853227128367035382409198719020031219107418445945053825727422960303662575037684750892740848859496904725404739651274534833156775010191723697421950749492978440223798300674873951755453288252792337831878522186673263176197938895376534798108022317933779825631018120935229879950159770689100933175795733218229480694120152741180302875038341652700330849600902796022197988527071471784896990563093044246437685894137089089567996430496128164143336829140273511224790384957194687493077948952238444277739530980777044511366827242973507914697213899171924109942185967430568777468795242989748179367260164653950383832384611764871712486315540495701655939959798573636286469503351435296386427590632750358935927784885387858719752704864453796661587894053966921760963734894129801531607468171220214113185397960375825723600540821379571106298272525794067430946946118969182392974614382570072236447149318992145616107754155166750793004251033227700365566181200479971518041198545017115987216477594848790958438907691874528093036078051508534435065029846775749908814573264618027495528944817170216066583110385630319604910771646841430089133583428333208161158615615394171805529211849572265354398203548082958244030491694535435389159806042901811441972253628122859228860574780148697733624708947768528290635633651854021469246863800320328348011121717185753328458240341069614255125074277446335726678563334541168705439695797818055891936164536600472039485142440052925001134892599106951860734931736128457597825196508216745422593104786562113342919545836819900897040766224864161830335305334220256799827214815267174164372306494043750381100798329362748661767327917527480528198824765355766708320803628113774666176203398976695222014559795239526919171910482553864156189881920941704304785978567934848957982743371321991289604732039895104303752060116537286720223763257588243598188306287527751799797607173902501347732240084139346615831948861123050411081330426770936916686442124848470528022296190434998664177441400012925941879028214885008470798295890947241854469409072499102156249425191807741084299925182973956374570786192507326308552460083211785606671309139497260309794020731253165124213053202318385297242363232894973573427010568037476373286857692329008006028499359457714227426262332247555399850558511329221064819233430178566084583296212833077418542302632530664801839142898127317073176931092095680596334419994719963996540384070479527200716203140850833615752204797723895587428041001765882189271993711049827605237529824250027888901009846125645280897796117932675159507953333387920121147234378766382169061320282464431391242802502284326999147595879040708941464211766597577501806959870594563596903220311834219943312390404712389827635773245560923830938857898712065468081209213680723479034686494983228513223563486477341749714882876427776465013864255897671860512029242672905968729215523787514777628244033570513971687695646382191206834408207885020586960546517441795785131639116925763125100918705832819911482056538798823251865400264038514417285987806403125528504468151448132917827036072164312860016770680580712583804622509519114593712307434193083043579455822261252686139203760499783148318571089223958579314405821601187343744121600070810321477751428612437282150288002796163727145865028668115293194142082771441184364470071761627164704695361036484681423426588562745786687982413364648918684260530054536906533703572092104337110745483520767468492594573627051402246814930812090089732755036122371310326726600528688152000752855710649935121760318481391400387964143467778920609969881071114213907920320806126385558578669592724857557132066694792905959339557651385100693151692935683913676207063671977170886026985021938128697679837235642599095330368005508842201281820000510429565535223582773160048249512605571652526435892949633176565399194273214997515313346559659070851245646036079721347824312674694465878223048530383078330807050854751333869134568458433884819944227510384347000470275665886655515890439422363278627386527706168879182365919745876083003689897003442625768400203199691064775791133727898474892747907725721299882178807295595643731335741736748015638609043729113282215876564225076181794524046855552606580339878611580318360526092982736438370708528302617112193407690225548810970953345948711111672074874959058573660494448215596899932479682086377927633302961716438649808347270515043987351785337654620439265613706822893010274789862280599109469890314008324072478404601152475545199578728245709741046621400163305871720626944207103105704161834248540091267615294604957427516814774295280458287931848866855675543858334692232773582426080851511158259606932556351990984105995340688035226030995239853467208569713054686209011862867882256036563288055906013360552999540493085936433576849258841453447860549615225865723414992053727455980181943236388381277012045605124526951415264006819288679603039814321081511955233835336037021256377998849279295739360623226591018142458832295487095554960126640513748134429949223489693411522023124606892235071415034186204393124375194945903483726854467273468095174158135256782614696899941381262109071867373042976772392118384715001401406704853000158405202111492710997580883280843570888347121764810992788613144618738656267646003907286479773058579352938417875289386117495412775132493606287947308550957736624172302220721774456062094081505301393320638568614342984802785345102525294270491386524898081764622645169793879368464964614928984517247195111555689784439687741259318098735675367226129042475247482507033165742322621447452331448553947915408795917390263496101148936601424161159560584994591910943203726468770589491021172305554315391386386863508858340566508063882582000262509425682377678185830766663037010937935277028399070828909695046175882637950623141072494755273606345672917760502297246155366323199446292594500201725224931315117373872389048491653021434723354549808252176475601860521646100416583199156164965560561651041567442215819690494322974417440612285792919703780246710820904753148880152410371900068532773697820539186347275067674901561011700563148542396170879392915064111779147119133598465197534841363657141056393196054513698966700534863743099634667965044760420574308445879767585303711100397594187437842567471594872020313015673361092727708600933182986058378868181012222214165452119378636755192350639033099670688411148432547270858733873695080251579244028376115647989959314233789677530889773507779700110138085041402981950036457408116367438542745442251431094959126933775242754362698902715101967992651771085837175358692901871109502625548579646788736041330334821538996269370895915441022629633822013025354358973151667225983963233783125382325502708037180325948716659304103788194251326208177206651864697066742045759565092757546729349687073797810692874883963167682226106378049599884575823076866502277339605567618306095584686659913382017800976341700408566924602431640279067997911730655144051097274756765897425829614524664068257025551414587604461410200245968741573207674188435986815908592667858522747211994220116160841617717519838619459131146658016491131429623608310187152905909206491253438807825576735246104997662674553466849623434491711364507698155510628913016608674304511658284711055438510683821830006096111155593216185966398285184625713214662275470596868816160974107873579241561326421478968003222126795511344150357699321581951542686931684825265959044679117816235210828721379440909814899507556699546289209669133232035629983493726976831042443378998917160682470556505139525679770227406842383517640137689195551345707756140150382168540525021198805296253289678992844549651470204894500103912581703446100447280746954512642444484948585556811053381917835726697489815068474987995179466850940401910542099054718345418729107302181891473221129958287553835075391970838407455770838649757501519405206889474874181359755045865936532307279507889859452994987134108574222487221380961332422919227032708277113456498044966353510882691067330042854385959513233995955544865761876156279774004926151486424150683552970786602466365645137117424806229536205746137375600618057655246013614988157530459731751013848382623129241848771525951209834167425327383653906457848711301653497207486916937460560488937921548429472921516821159935642980833531768796039745296041985599871528566108563564827542496947504151898512452560390590022276610494637311761056838158339915930119409959498285303994291480185683164832617656693774397294031989825474668433271812900027757784997473441801196767182400620288529960207994520796077120887157668320921689323020557918372880610539674886258518060126601787885908991317144266249919476272859849161054662826689311242491601835764750749704931624597237750095324736069782225489826595550783287860592723526870964801132333960771629829062904892131731398549005078622133588362709515579891798770050362305184738278674545588664890018374529713590807948221752450050394636868671440960884252576758708727066611637806112184892585976547353200605056820803519977636014369311658650544045604097985977710382214607356611281021388290189366465114532595862982179782274457880318591345529781033088425682997689535728280726331290563723307690707630763801460365612377562529590639870393855923665741074421827670543963885952314772635195531055386587828360579868720966559563746275367287779193511543160051511366685475761214100042857432914321250412951130483303273431136462520924555119479025417702113808511899318424686677159845660567031226088662611073245486996795022288245612318799131899053440471209582790352023159743028410262785471247362498134732813797474139040315887397913801891384660578608174685458861231795915070174426096464074592347672975617038385037037995553834956340194751643886975488115691621777493897412526185696231148129451337626927958593411649450691751129964332137677752221299986680668224870158612762753006227185670797651477312943659785972395887440579955607116908352079802514762502420919499454481564116172972453346747659610238569867359419475385427782000219409719993546728220452713483478563975304017055909395986810408090744838958010455752609583191336647401981581972674312215917951529995330502540735877827214491980143292758819480786094784902297886827140426267092508105929871378425999676497803246267553600900761428011094464384259715712825728400006540224111919231888701635073609066561458470819498150066921340652458774523981264062955951541375425019482456324102652776202361451731474453247976306136296782882067636755348478332529653739653494229463552742825048922705223364644628104035095212780644448240672136377826170907624871387434288868022436444246548991121388293880771347337435896137907980041868362620061513277226126223609392531544080764659757633321133231427197629997268999169918563233995546802648293859774016368913374577901177228267978315664174254527989008021680567741123920383780186641534469776040071835426760029090527556045691904733673523640927984378879539936480293086749534219344701898326763369100451741481448854045664783803263914551268401610863111858281539145659393388598802269214080087020732312787008395305736726367018962640638554528538175980868025628958741393292430707472159370842016006756301303094955686317798134733779549684484696401940205921008530361131737749809785143074794679654603498304589828013772198286740306666786172948505278165714627100819553231078466685147232468850029188289231064502996340602119525823874019827513759446860200806296490593648931236201509698329948290988058257180462589132749861127268480946905686312350800002400533467802241678415170998235499180241640024950041745969864927881511024816347665927361166066658591787134487886529132471670748151703406300192017354908850990014249133759069875931184878980091557777404642495379569557017553603643355398015921662704819563597437135681083526838930309133884307851294817693582417732707924831329928837537486351158107659607884223911948172997847115725628600407260442518865387248346761587928119163839886511683551832564056883161156616437058620382399507051559744192803819559427668473898881475990971075337186256720472464337492828962732182569004418699292320440660960084913219475489441566855404664240758105927678047850761962427822108868864269881460829159685174634127646735138204227681066465668040021675965252943150525260551353879642699540743810147304392756364199961547872611191714265645986767369442992622082506230391425038488595993482010893554707199287616909003430268830511436555360202328354690513338894281044962301663653809138562134536603071701374821790787619331130893650421039645801186116016079040445850596823384192751145174998487227328783484678830517010011636720140593812929058717028825668506771541060233707616868733526451348635740753324364020235198926300871248533438952114868984969953892626035117476846973033302903159012000205910912626889567149829139434369065843950180053333072702254529243655612937660985582301500021817333294139825069358732818050715844511405476735860487172651736136918735681399321468300420354582674222660786806177839636501444799401760502749249536365872233201633399348284500651875653101341871560900557748119401318371105593183649350026518145685190340908787621973092639719616325173205263837551405424131696802877342143627330892543368973063524086087996143253427876806523493721349813163661963279784393477870508643413653203152424855030011942345884133358051507806441273572638647322574784813579055472006668670456181134317682833145789238104000552713405694049127923547486363613419432253340424866781008627965730134286295739709631105117671179197428753155126732595630680586497946709103811347968967762196311890743575461507515874386596823518788976104619010969766054957624705432137758560587052154796517783883928846125267605428864835028923813842312572190141636882989870518630521550234268050058790711116852769279602998035682250343618242929021567783226964994214504839393728618373552984486241386777177800430143988311660350132864668202442239189394092391730551316091085337778767671992743191798847024759809626267146852939326219122363991508830596473333539488167914466629903520493131476613978897812744691615139943859907155942557637936649888720928387227962759489689454710818178978982784573837320601437405257515845560219967838711088599408388079505482707481893014305954832825400531065106077062430467778093741394326721832794861616995488728826288193685217084210005644102087594084793278137398631172420106449830173764592062593227052338752728229799174582328871837911113626898255199810379182440398010341671638687206843987841111161388806940742447231052274726131054638914370329599862591765374505792679427304316917515618499941159105649865581181905234904325861334033897203975299150268452989071861247145845104075223053443468697343418361579038215143089066393195299717163685266173999893398748017862768257001346994489080764325805641722594948903810263326225802935963336417685471879395073704754652684633657063944620832460755793477834287561923670887089484299491114827891848562505533597154931838987291361108713439453521757781544412958971155530328345165768600298784843936116430243381461610629993214337481779664634532019189833138218206962553524260261896274545071054604516646133315438658365934930244495361176818029973107501272777939830305851306762407828808960907098932208452079746256902993299712284880217299799338540518750925590292299215104316661551878370889178078458022548611161009626231968793958650717298048936683457628407151403421810426971690267997310640714602324790137522334143914873535361152933168623263447056357266868639773931368490454973935209143708890250834202020528679898729757872429886718365589983146806074185671969322244549679058371362276850629185424379116511625108477073323292890796833643762169575333103818513663245012019402597637809870127460268408898205918975227258889645833833176074449556368385421589019415220510531584382434262073083214749507236676240224603513033347866094713220389007389684017049166771287754272890647493530508470194973655194110184609909724252493144966700013460172139639368515364812571157109957435998931468887259856581802770562190580263362962009994434972782110982601421659195106984208284230222451993478625851628938132267573818053653242745991817414900554728534424755904579438616134658544414391638664608283767939309640011317042250751907702116375524858228113798424541277700469991069522482691471810583474937827391011552923855025426502424793406834645921545868206062208310754967016743685137424234670352437927396422358962280691952479317008497939237168014042386187418530958765904157561699366656891627668319367593303741469821384802725963548322600749724259111278592278350437010044728856703190573098804743068110238232231100282506852683416554419109493993422147287274938431266032220649556162542156663835701810199672332900763371759911547195618021358460414830561135370931703700946893041915273444572024879126693304788331751112636170395975820543298898611431737195306392495565517193098011318038383724982505725302620324406384232377516992787959473728273255167456909719956136026822173350722474405876256751346204597039729783876204219074267327643596980171500955991083305457003519277645291444430260854298011920289887993141278511562409416532898756539302189583403248643578278347115719157453261842351467695770642292625068629327268193896085037922466782182084897002539082382728043952231770173350159181996595060967791364307128294052919955312869880823357939738576862869541372278078473586821983256843396334309129012585682682431973589615066411892990974400471831771196215250973040265641311175313154723380263698469717900951989801536196629061270414490864404861419613751747551232459427562141407417881760853071687571403009882260963700220830200371254133128582316283295978156955895591668159335741508369233882295969760407438066864681556855433421045831109328244411164610957561038617655226776603888940176569236498613909716237354589650790834103821218378158711633135668026577624971767799990260279971854193285889035495044421415128006390692313608400783781651409456860675604100839200755652452835655000375907762413464886407174482386340431794946838380860995712043474186400049953328331983378676459260958152691923108635590119751982721433293147283151429262883944660134456498415273910252324984436687172317983224329491162359520674670177239066882992984655678812842948670780516932466611954946296001377017335973603659444478835434165250742620986269582766743160572650395713900506254691308077734552470898856251395661627234728925765892047923452183260344083218712061774780990643012610993448334578083744909260256586529164766964418578132549115054916289070163578220366530663847461248504042525122498242844477905491065134521522395427998301423207266193011970586473661912763181773555475467592148463409933854960902284717027527775527155055308711041557216621514745097838815331365159727130837236438880696448014074397911573944207642079316407477064806905979101388860193152703613106940143822206548752783581839277274746103496019278042778984951323482171938171078165417818978546851517656804379415026288756505454795379796195368138738016721144299605094153847051369783798596897327559975039698431100979466699303336399494498544213027815756945700023204157837739072358292157494733513201397688343168790106672199796615015960776750379239195915927706490511574532067955592137218913041061157321080022576999268035056533974086885487516467560958523242636916533881494067374739879508355536858165331713302781123123910506709493564269003421103990401423717180972692063007814390906896234217325418382876074356577432017814563890407957304901675319389780766034803200906195061220371617098638327375267100705763275025728834824333481143502453264436714485934331809632337079689144404982134225476121911267688618681205226952592306757182748635591607983387437660555271266505197938438027128416763586899936477501531054304201160077570272870707945038597845963852336709360866129764455259707407529253732067484452645674412867850609524323681709575533952037540871469722320868443051367028029651295065763332296578458089401244508791940169354210254731400530730436632086843532353982421199569541942451025788007459779953074288426373382721528318162863948768361454925509361345029699361117510145585928327621127470799860204219776541457511498191588691685362823698290043637059959850694990907696028006421702667288397821191128208934660702367745673713291064271601761635439711448792637239004723211855645063845182136250243055739548384727127203805344337958918397650426784168191508298517644661353596060174621293062946102194956318345150267639414115485362919663094587906464962589378919243321744694985737953952958295137537636895549698479881947433319475592151698602304227701861947528995238358259191826672626216767160088670808033179750955833933727630928587191107902399660398748130335806033110458852948323984838288403931566244904482839969899711309778613986799113882468436203596971968412745844938423922219805364181138028265300403036698010571471537884376138871157182345867091660886242496179106184610420975788392361575121886524625980677745207039765011112054026003308766043272781366503272821689997053682312520981129072578604812342038110273609163833293705711111731505280947924388294971495473356252438844065297626409781625357055141586653456369522916076172107429153084575903100207943046103463836225366788279950059143975728481812739956552656679928960806644584882366008836628458527414513675623506229536450467052902076455780186350388559637494762431865612610365765786367029426904532647954872257489952675843712754233315788412912308253459172954408647093019733230756312466228188648100757027572731962078564739407140232338900772321127036956365501867196790554769444467568601325118080378415518217474261640527244013974553285700843671325429571663799406504981573114477777038788179914967443320848563160177813915551973100181611987407826486489122023282959261362438039040443875595396810223398149104096497814667571690430591281326264780466846813734613733535119972281536521805758439128607004157058317468108281782277945938900890230941312318280124445203389858005319974913768604447141891070539407505555005907054618133962565459413211507957944726352114184731111131073020641864530912828860436269361302200576725838650380322299187070205313186648911590634778680137434051638980039097661319640030183544326704840352281968472584868045781762026942307487899814273688470632317418159007480456152015944106715112069742394137867635643685467062723174725469808294840415055832503970730282156307314883525319952849828956415098559959447269058069408691247761834692758954252422423966729863411525123559355960647843675981908287264747509335504503612804651334058125339975146074973076830099817928217302393216640962213533107556779879608073343339712862245271392009155707569536673198436597570438640599057717287593220665848459135294413534500173020272756815478033945711826090885266280166728232923949718008238320404776685864164783825212338057353197053749480524608916481327810499865543383787821951782227872112542449582358255531668283489540746818835098489003740378859641341153598469772849504511009256845128989016775410466008441975750367112647502203762633667207922420183325303301024120742764350743704001613323882638872918459777515041231280858195009109529820764460315502852615800722361635455901334171112964035792796195267249638559524028265360568897859049167892853944930287953398254640316882898228271183805392337286013829719956031595235120824694973258114305434623112529462949565393519171936343107613240111425921092778189373454097011451651743427348409154082780820160453959348596220793099735056477123004094816094166086643205905362364721044102279304367602666738798279346531568054856607330847771946714865141597832327365421181434992556986827543257003764007618597182556854717271573736555577492511997737891650236411357866986458450901169874926407314435764362363214490574350242136692983329858207175923793481438778191521623019768794195575548156629161210670470653027380752910167273364527272572208464476592209867901379368000497691732773103258741902165491827753935606377700634489963275887863447220227935999490523050016422333714434369451334550146331973034467758433610713598099686404664122391628267823219370300499744761680484421462387640354454923861731403799266187732001932174226491282039899575600424694015985792665493979402597404685454550069514335037168611860065557700954151703958936067010028213277419268589505974219525658091872378454327304579715442706503866140639884213598138750319286016011768213628536147488812338110773059183759072357153648675036077891432571364046758363523984153534186955327343448015007970730987938034973434793853876865164360439642470518714300794022289861250042044007016503669244253109719465738083649560088293131619002890270105738588878004036334499832073998710500742614747156377428823772243258785254657757424851748603824294835644822090338399490667759481306495937558624525970494565838540735785030598607298246447896448121741019222484318823315477316760205354029420913532727109844614702814392357307349430644174765175767714285651593257634404778830793410035460022889621177955526901166981249414096186302070807428079421384101132545062373874925106851290598697690679961773243088542561477477122174472595095680895339242453246338877662802092624455095528893368657714675913848953382739779655076852963137581571962575289406108702719884679884183093161214384150444543153736516133632633968798397579026553574878860608316250645876423232377720218383253477798718538696052844663220198247028924038003058083757703653012166575228419325669946778523246386893392104896197471095398411333005762632534911332981058831706522694755692490384603578605098911809427885413098391303266476137990372526803094616367146561275727272430576877156409310087386605443026037763575046806045350194022555809334919055555441017208587252350962118740199753304665098061755348835409064699715931029654690136643851978225842306925988912147130102977356390458171166030148972690906742198639252285207034550358480518460334095825202553511212551391200807551141184598833394692977308567629018778804368332288019123558306750234869848104395944205682074100774025809287164077055829349172486638517180939541561613212261555368595729169214442289602150618689198312150483007588918064356749594632811066805176426037383982244468228306009388365648629343451247167424825743418342493835474580273776058090927662497408104600292198383185154207753349756554926461814989834191091138125487701755361536195868509474035550577424563449541962660002501113108730571738646812384462122406148955262254163108571856072632810682523609111701414780863370560108058886383682994447176284685873404809070087015691114128114586319743595773587521706412608814230553494665787017080092695470032702680363142611572543034173249320981740519790301745307987099665854112781390405023956094065307013423304819133247162648976945258177987045913729397845524246585870468799728903118068004349797297281179639873441949344853410847309264258671855995313432618340326113892827686269740021900096992643900163443447981461555255460530736879604442707634539318105873738178637742091200059925836318859953596767750273225162953633750486214067457801287496373067313497950119170058065039321983420099843255964075788002328058145593963253079312660663777996804366271434217428868442001109898804789431652733023690733759173163830115334066353519423490113414321074636739406745057118345816818651038171394485639645064218364943251780066876210625068122039932267322239116833410286988069845128120581384052359864821617054935808064256477022393328598792281068233804497456395310709168441388372330753312277879778618613768768849544634895927867160949891747294317516401273058822881433729999471111265448389901744622752814210771772138365446094562896808454894631163010438131367201855519347641860445925249759901743077384975988371240345032268272837581103282247699179433791202304161990366605168367149912880591247703484242962048784261471614244357526952786112910220503746714662247708638072564964948882804555828145775983055198479529253216098141874800155172681861138323128675532689119865754361729503647437317659923643597880486419222531278175879322835159171312390766755127398687510178164944496399768621323457311322574392061628791365369508281927977132981183308025056434314717092781858626106198705334372058780141935407519923668291279170168278759650800273573026656651672681632804720012383834009314378614107531531008484155836741919712556008341092763239236127962523332604941378682374981012201885415705838806551225049603078212091080858019582039064080614379307865640893500949206738833480673973815384621199207276464548952747549670582079304959897314775593730732338006397623437598518086612042989505632273080003355192882244804578647795248006011059817619067835049517820907311723857463911883969958396257614775428548252067504895051433756614855509475334462054287734092886064494377747467414116641302295660803096071428579070796502403255529257803239228529191144923390273778961568877829759859770292014282602801271638177385450745577415870008760236067091102926053861218101506186544571444022956206844332944797538468229464685768223221692893652005224178890694003315575212616863070748572576218286122200484387866939533432648390914126104504137535051441690293248982040491299549560500929930835960796405706234386885638820636132360398089501245189584633769746410342513833781393979085557103755792773119037503651018187774884720419650639279021322295149233318674429557201835351588317990581108221527781576461507468253072110893337400712588215328115124714695110550190261364904381320600289258987170255742537940917115557570119285639093259014544137124210372605718650070504003255644770011320436619906771013321154207180565819478155252282183172659985854317635004207360467341399214282072610961789902847175198196844627394353716045891546719580379825770272194068105223613514694216946468578002558344475864348299541031466167924567784114718414008406382338779628766894610549030517096507982537557328370889002139990477878195139261684027472796757498946036262117340312686977570096058178018813911013728431794605314239063946768706051449340119014219394478956377739808469571535074076573786689224470948108809155598176072574034018816773418342527880451501335278895681608378332715261440785896012699740050267066570136139459990627491046639712533224608008475175872295785856556632628089980532388474285561802232201250266900081206350615068176743563640649311858540356654352920378383021786812146567883830702446264489226357749376580929572416711634003427386335877389683195268622923596077785756117127640909010779085652103768047384628023718204807484045226912070125243260165522482779873557831993359707903446378636444692995141493980768516106688906605811944645915369366296129422787876246636949481373711497369492428451227944991295351295814100014061780964558447570283600579662998145938573206276405956023363218885727848765989223719292914620547774679209053900774723532828429365458522426109625246919433245383214100138233431455470894027604759877719968306041166590521591101078316692368835839387216339343666357466393541961260067082645240388651973944987529029507118897779359065888242837723343025379104071406549956917821669930035654410917934284799366175951965629088588853078048256899233597380824291124897530647033276574195496652442517398654679945955310444037501240611333781840670176317367086543522346096461471752107842236683378394384293855164729846969809754450487710806601923881286529413693583124543068398115395836741171740668794260920900183680715835146755150894793959537194574025181733311882101969629655860364688846862828450139310439314994635343545477211708838098794112918560491917240967911665924420276486673889946578634174275586249858411419687074408757100239104557658012837674585363744664556330024090398572966889898021285167708654108129777573449525608808661120142589801950549198608592843488833925688085262791754389522206876248262905108630265158357622835338203841950830178172702551048532054784835061388337761385762065910057779108993145522425388592942573058347501571393928037139376302072526507650665160744686466661660435275625374618540013573227441178267379877263519295137233963431154588501378118489964767462855177335157485292587010444387227573039310117891802107965211656914493880768582073727533793090452780887904177266282708859277058770695245316345766530577089329369266387791679052151915754967916949257172996178963567111986630897651414420835786765888233665846417243203596139275366492812446802592143600011239055071892450694686669138822601462841670778194877510576137171368222507319053076582026058836863775360448014044129314628634433300334277606721773150017123947322935668682024118013976926001199030310337127630849352192059931620314625407512108421968434783364720029496205716215612394657329089003715549037974344790758334905622001526490030331948980746014001092861907988522492248252284972769768801828443435563699343768033325679572435811730426104915138349789347869441747771693436034745039242912133627517562959483510840338130567737886693392807107460330438682744561339689750369501110837755586553226602726281851763774051506818439120565429637875211697960931223108372321175881728353779880542585731903538017818579686596155444608094800284673126931479909935342692265474671755391130654317559512953148597879210528196627258317574838360769422401807342594435629597829005236632360788378755508817452598902874457690460090292864892709294138058721853762922811499813771443271540354458014928724137005189199277421820924865141496124681655491026023592160083201309962328129803408524640979273994262450722455022615281724902715831167308488925018346947760271484142464968469353459028959290333930262529883570935513000741210961636203929592185636268097656199311930263618338342791698197923949254743887277891937782781892662386954671742863782732650173314552816300390307122812222022953840366732104201462807892735137088154544663125868482275928826366699946137968404515728365882504753089827959495983327555559502033165281558852571695759010778831224158475951612695786932148043310031329684550791282310334972686153313990766587495514907472308001798742670699121085601965233308669307585970887171617213397937559178597206354398788325404836989181128072547549691760966203169065266298379654315476434819685616914638700645948333812067646183118626034758984231972490168195954919590607212202094115280123909568118845125863038662705786513670111063183270408365171943128045369282202362722396786387126660331883319611167910960075559482865213737933127559062544037925003890627839008491826108623279811163165075188203265750608080740141121054306162855164145692278196378422566661052719447558400397359168226704446539823303074479341473971367189266025382489151666465963827823671355335567564424890717357832813429559687224605888837549213804898101708408464538929954121155258961442501799779476030972944503951093399566935855305261463766365770794715643961767668609215214170444437641083401802346161902323557010134917549949801858878647746541339149779833409263475706174328432460082253214437201170382750801957815163572938718137015764101273006775391840601358705216056915922416242115437223077239610595994502532664595874021992876776489407718324015460864296663220541554731941210629024870457378513103263082165846085708985904416856831808553585663143666561470581295023734542791238829389303212739799320600913782344952650727777813430863716278137704025163629855128925397922277720943522492968565570090013779898185205270102184041020856594415110065643099348814786773175117915578194418772186727491506166592850899631172516798644794724970304468307761270270104521468158784726795402917880875859169741883100513999774086227413311591738958650867760033319157845499348610410911835418383022361967662231836569371322085284314349127576741771659391516359263714356273687799445720017009338136394703426427751804187094474305747234757206402612318337905645908125650289226336956426900847882077836697808028190037361455354496326074795632817423169440871284255226615076077110617291997719213319152076845042799889824017823653950851820621569997443424113130402710071912888132593435150864778326388834765461146557495083738510121071725972604878510033611756339689956556869344047633435441336543196664672821092868054695359115589858978785120037373040220928130597604642184279253743148828791072801562184514303445223298150809530187234943163848995419181299130575491152799683682738152023711567728729990141872564646420195120560579871081092244497553701598711704312266808537499039001492868781649613607422528628445664689154635170125452901337386336963509558589371307619952305871704407669933498289488866178042587316713673254823424315069362574613408887840729645376780822668806763082678634434847495742262279523779469217066597760693626066138988630025059746114548442089072510475605894542017467417907646060374959067659680301392650334029860061502697330466746365655284940209535039379572027976473635124667486291526255418326746310545580310579952981658849679621666616964350134577734076994960587371487427792813980609059677783996722477924913869816559342981517049680924347310292311052609461314359677540058788437359087031791283578879216488889867535202968554644541277009592257698430263761760905387059723417570054853062779969735003186898766110658926042773320838744374458319733630830197633060078508468664957214892985070318787455597108176990444607296919308060913957159851044308816045485641237672873821181566518189466268145371163408510471757595604638367386474008360905188123972309691194327784368042957066364295616528606814909081855688762493585121344363744658707550666710044557723583414920001422435554044507632547002673754476019742581129846020856333431983515692381877360650300552473401160364269147566349384125016096355100589994711605786723498619805933642644525282001821182143722304475467029539931970448624586929981044996670136112142412719611322384362053093196318336799422482514601612602893664771398867602216514659360673520292162732671267957463488815629828140901455644365691409620395921153993372689186679665584209296821338855447640123852320644852879417919653232287657452922855626084019464719942204158908381869718287276940280920535123039751520966206445831361744559867395332754068359447579086459575997403904588791593414182004196198700712316311399820504104488817101457620535332466616928748024864513995292230044562158681271260773013867409329335019618167970045919822921022256704031435104831844719780850275666760210383820546858875612429688245284252859085268193844332930676192223676429277136122837786476881326668789266275898687061261531692946804589662545865014039013316758887778616641556798528735615050239769796729473318560424795492196143333286028579265114578783430680756360408875856234732195718213617193614683973696886320453122295940321432345893998422057330626779579752363383505734602254709005853485718367249607479445983551796331022091286934678204834253223064890806143401561069770327328950722248415989528964958445041211096455109462823943631049839053149543157697023466766963002940164080947869595930000709702669187049438187029396670247217306162977863328521064090369354108412860135795099339129476408024625545994689253439956540747347150443138550875326956749860369383040785176942312374284440849671415808089201746259737022700300728407136394401658455776033336101443857666638720957736349212404700876504714016194996200982581437979772811133022061474303658851776348754525861143416027941357225384824085604231005857105072757008829438456287704805925675181738768098600136490382826224452780555045005614451548010217353387327689661010596984932298814807487772159648691681257918179509532544026550839541439413167070819740096019805517752297515536692735285633368308655239508596278695410055423443937506938035713871546760486782230404034381193232982103011292223768796326183868521474357854897626766770626352013235652093817386961451544910221861192965233444363982145713205478876908469707237497701262425186688627499608542720517793534324894484434194213399312333218159260700860394570931109842382393933732902056767250096494055569720898099122645377808756347855218979845257160441817086664851882352890818402944371277728931960698067262549800884049525277052753450187255159722686050988954692361601228131680403033182671188156662896753243444922084479943680659774539630367047643607712363940826745012708970341931547231848502997933151053962513009941303528149407773440285033334277523006135702050923825762787382071799605529714910160737931400742428557197623925359994609400371847193404308982988150670240555111026699114303878319113606457152856232426485691373781059523010412719610802492876622325333691215099713680685024896088592188952134060263844829949688784898957316759429918431713784776448445976644445941366015597023831745147694645642845628219510564214169128323096508201434785343903954495418667333483124807236810690116509070348294781683643151610701835708434516624606467788848229573869220690807081918226405951358628344627890292031867190877193305548047029492190693515469751751038862994196898062972958201798942699496295940105595424840255179918341081901490761042374535961989644447456740411596188747671592751103957089126898470700556233466817183281117192948001428727262748984960910335281071628844098003686821709831755424691422849714581027472876162745922996217431259842046778465063270723955000767803867838402713301645957592834175309730964958217430980827441919034033070486506885440849081890497383203582435410670931685538908046505277113447494173156646843373196695611942745982781350608697735880715719543099718148917982404748764754751429958405374605137255033033205561190334110649903320738592666775733122349038274169706239565036767141786572422105118801576135428490168680443563830027077716808218943122199952875352327343749982884491219248410279711587003259400090387303396675182060581221668860396864187669638286518487580621168638751569326663380047622653665362532429927865390101380260298149479250807114786934064711621594464916749855092925138562033189420865229853962036769755309213543717131020728007428075319212526360881356835465122817519274460780344080959704540984046811537267648535701372638624540672293081101990751648775232394853724152465902088207736765959253214471259669211625246534179731316300922100932523013255360044124775223668464441920248325510940879416725505417325727081405043867089773298357407719445079885269517053592434996956861407175308480048990826330359674966581125205762255503600386678343464060307250925680459510278988380795601861218538520425768032257918281440168084984476822980933157113768415859936722701745659759627207117744918105399484118600573090831615478327674910093389073365105722354401180180714627145644511427076209469192621448922104068874862177930423679406421375424347268876546265280166620065917460228358118112954133963960654276609019115226834034316659066412098769977176835176365833233067212753452987405157727105634554029810902935967263226594739274509386687018709062629170329759725167265592367613306065019791564067211911193803895397285996519773766280283251943504136706836495388890061325115290957021030786655358489803245201885390996171607942120820160561893663449480329422810153470740331196315065833779265224182465235001283620324061773710649533425438146257489983359290853100486609409058911491612761670984514893252290831593616465370306040825320777860554066748657665416879302569100449840170925607832601501084842788406852704773698716031847966421092720995525659891346885376961907408475736375061025333837133890815647180483452301114121429511209374427469172531884287152326541703343222462832901725912119473246438853384012992954228794707301566992186778898831106668544615346842506752479362664955954327862238888445151574936526238971074196451121807425252892492456522747011109485765336642138895166097101311639875365280760338039077519854857508484957997903032034888408446990440314820288464551630989931636499536185072091458851488982690129043340248919502353612589278449906088040010605008109325791071760285957460939107396250774361875979575084830344351213190792839750375514871290454017062120999246438711182317639890126749004226613370588730737166999486639203756535835136614345232260584431213606333513465762799999213194971898382167650977032728066780830056689927385011580876845455245872778744976141359059291569846526650364141357607404044370856902264867813158186072361661644078455269658548188070670659071291389650691043850518076280291128404274919292358540946488292788776535738311472632478660259340578453137118111614827196753539204639472786264418092608197207332375321656321864865608626475553831005766046530263206260543027868736491088064103176897738599115321386737418980657114777526249891716355065603667292556234960223433700646349102983282126192878779978148368375797233570590446116540873463466429399868536966415282701371786170444226676374419228201017424584155968706191658221290482333972333390524893076020117610786208656566362836544658780076189134857529095163490674684212222591233277901216974851392975451054204143596210919019129697227790699187715288752326757728964404275098308679731290942525636699789373911361975311249492949889307098372714245959332363098470707648712725558373140435572072398372942480485826390747575798095410763712795280637316175626671696321304607108286820228813890239452663104770134169306895752431614576113651111434604928774812012447689497074575029110506404741502575436282254467706982851797958765652198379304367196926402602242130239805272333285385631554521811350636017932060741872996436095915556593823707798593396363880337391838462216274816899072166601963164424960900943198055338890828532748497222306633820944469466866732197851828627121358669457174205875612978211476784435515268058840574171112646964592937836297782723196888205269427001408821038348465260928913618538725026875346835519286449042371144966451472614534019865095385617540312774567354838167405230571353047653710967795102626541165335285295542635162191340820432929017717433829186743559056672215310557362999330603437079855533855932884948584763324478404877443499113893756925346448277364722348115649600261839712665308539203570350433698110002723812789710462698098266594305294492761364817863455133499733586218790429898707617181877948617968630727081789379660607663594520168672124780027283235870408763765445695304846958634891156576904858450420699951327954981390445601529704320110681457465589638619014028311663457848874735877597640191345204161017279605493577520953238374020802719628409198198762888100699272868234148355674614486497431715588318365962407908958601502582677466084706192427779758359018636775749756580216673030089715382823142550018969955240478004667056268208831717539798904816770533149649922434732329701157599025241041642777132840751602851595360723510584482683528132008002979285383700290563847620977192135579551477837720860407424280553574590911964807969425497324071211874221355926857173524207977820114193193405585181068742761422622378680136280182230518534205033061563225951544548909188688058740220907461407225296336097695822022913034335139436528994767375848382935268119220536545459850691059918651018304177639043373403974938655695524270350169062677649065760602168212320417962647749437050263049693826678565144755641119901403721210857742478982585647128692083265347150956279845309326746505778655790622584611617615657647021131593461200323039767310350016653709682305019341060074688559043530329507191679556305977325890121084690672824348066382528847750932221873647749485153494531879037825596338422990249024413975529247747291839330546741872315805263076830663111636765789464769767527826834194565406239398273270521658046717821536631213823245833179173489737406019738547631933730353617201628984527617102356895971465406771909206972088427149047612706094842745421927437254458908492747664432669715089034615258877311262105220909076907383051939032444848063311097728407391308189340406394312068893926317582379512689343606365349765362507786893336041934437497045854591119495399155124009380121826279700903488921406098033848980395099527074056494161852183955212234073457889497595414945224332387656377899000461199281845199165144056952017540387309048750089286724723561317146249210379456473415645050958192067508219135300885613045245094695526222576734952507493919360963895602751606862587012729235726386404575723674898350765178004826796612427829618146545004280273269888304752504121484871527418397959359883092564405776408998340832019017936445854905148329308672809424882668923135082482055244929743414788371124494042068920434711028796422426088555309881292768819214140758346855327300071915372123939428234327325857836901097137279436646660098216902682853792544441233609499768108805434588528201324446988301048917118227705956447186932727939821776573980032555377929197590490421872230529986894668320800675640491803683848076985276898839539477155376259761830098339170906652630406737818829387297995489016679892082642825379609744402092686707330537726369474823417678797291801169273002591597483200633923424069300970871081033538435071915064979336191579472336802892685745290207350664823177336340157060585795324511792077010576036769495034852367166424871179879130785792649242771439213766578763072090165808686448479839802410648730599419190303014800245037206855208709568338828597030355665264657439079622810172898388654362833714119235288570865207656622754222341220432453978596766595775125485489342585618531130499386133896810074010220706725845341109842672816012224067436068828264529186484657828463100711568095590917898663643673678839036802990331627746925195349615278729238980451867422870448375319373839150871270655840219028231970181494696467574442418725822562434674889091476757279057867584727799252324182307818051115882187295509719893094409839808397938508446168792364021977353310379175144872171990182293211655168703179474692007095899129786892861935989787113922310839097601075900708794513447907220263624512358247689292858253030556819747914754175070124812424504433539298868670482050648057624134657572803937314645142944961747770134173778793145054346893237494829920850363841044310327700064366194978993835004252067197822507269323369416024821017667535257119743529600171717003338804867869120099044112602040839457457794661346880304229688824398186107389059148720805958034837211922841327256419721582703324437057660370725772057390934173842984047436003597585677232551864709793704826041484609050633755808377147734746280051824048341078787827431652872264696590389519561787685368613575755695287636950333002544349091439888158090897833813567864115848936704533836126188539992598463787942825366370470066783523367204706100626169486880832894929413506633239354331321415784498345335520627124960580521930433282325864495830827027868157079816160623334831946306008688924872896523836548251172009570691339315707342048997258996029138013087306893402254401496115990635404405105480372628880022049345941114829764345472218384340351937103846356636695217252824367769198326342825624570635045945100657696270377523142618708807217706504581709858112845846568596295728055561328251194504559848184467120944331918773280699835216387235394803036934491105521132810883136150625160965886084773008953128010183379697609266528304779970866481208138796133804388435610517442208294582049230165799183702952904135367970586541014848011589318401661344155291543081909481532111409780230314211824611770823359691668815662483530617689841696008882385876263015185112116741846219215839520154692569479475495195582055891310285575675102037690954209924118974950326263766856273963560993563677414571245170605201394536281813257370185809551890428417973037532384197455300981502627209559411225614842651288801192090373674019242613045274778754094135528962042731983372843741319501550319058007930677180983963945691124927382901134838135353824607358269282959101787340603063332298461998647644490312981238427107081414146266786704737161553605596773554509702328006920506752599454446124317921283932648511851664406977595599921572413884766313848891276959549112282079337858455205575294899401335246366390065785274465936516142079778226243163436462267834984550119761990303439304370713260576176508606169197074601848696882595837746242720773671493748125683155389392300261405760342474811723998577814940199408750693799393779867642468766838031601047753158963827359012576036081879084816784759236859834423086231843401126155077410664207479066628528246552391032781770218540493482214905022726578321986215203086627722543111442855519286486190473243399790483715947348839467850062248250493620439609637364333713420553983503171768249916213889344890772063341449265234503337588846150071540770697630232666847888580178483050600404058537349625946377551264932315588756675438021965368964764216052152389302107198509093263168339089837848147244808008471170932609034861164703280245958201476055167693306275129885710882833650869560768045209242481057767899225067538676020167745947714531165064865017317790697710295085300582739394508393419124697058896850416794183640610206252621070377168696481843922939859785800787745493395952961093018367078966737275283193240526886304146900439391691264612752861059512944666197307356660430175668346843103728670834221942451393239734954557014349977102745775836431739909598545306456885739237051732507425634484277954400635242353859038801620439469345885506445539102762994397744068988569988308235561782238252336122028233746817792614584887467383828797453657033920909751333125064513060149081560960876166241402796935698457985226305077287270021411404349533571968861894476427469497436886330786567249526303506972440892243231648639687355882061563591298227992206696549713228339829658612608572283280388565942870179735481115296348918223636701809096012802303582406603367794238856033678294375806585019408255444362301884038303168116894180182940806342516404490801488340543681282788700093757071998606278483502865710762226500897168562231474888885706010083436663628929933966077941759315428278023601821591578996878394683473557437000323558895463321157906484691133241142580838374801433119498828105726128220421657258253315623460177502130991755104509002762656487043946888056422438845956501910673402578630229612363552500974636010013919410225945540010729915862563240095135907298321223532033460218521435612001964481464132005916670252485821309917071715885494379233494209336902467780125638911287474810470869217189964411491568858094261924042817013545967561295036909037869385939299885062352788369283916283989271799800986757603375130175617509795585453634230996388795872540188159937919935190068884386781597808374167313918848386540036601148785893176698870808810530337718861179546278973562085692620275042658416505556421661325798862355672007486844829849080699521111840404087375480934337963406147401371688415528668951708244028205128406604795082422214300327489518769014892088016778357350188521575359580176230059294244081275915775523297519321597274444586630616129731692028774306120566846983655758462763821729743259710353890763761915428950632936042300995376028519276266784929182056484204632779827233867481474674316662182827701100458508616301737949342598214001563359196570029034801855439703762113411548016698258309366066805885965473601800589189195285374728101511330057926947921696879413048874837394103459537744107135353761016179386384584964488573212882806390951467032381137062129662499909632287570807636827701642215677568419517326871111993717352985000524786921650342105130747638152254457762961109495056777636882248993284053116973414393971237689014964255841742124639215443855950653348338651154085154571038655250677833570041745236109518755378523822159541565779104012352573649416395728733785056905248774072677603919254641489475167696942076126948445386394893580762997375337908234317982217252706324617789440597354535045743045675506040909007224699645540089066715465367721995889964712852279805147614032967201552515219634460429139344588339350502033906353440364349551697270505172419439323519674718709605713947904918024673149999486388442675666059739273950402050469150585686514185419592763458243239024182847188138304204214473851132497212989900933803956391366207132578628347728887756519171117227632311413833368512417869783827372756331482526991809233483130884173297591082128489687554884123133971773682274512512582246512104401732251087500493253803249370028585035524922570257738108885266758372401466396540644774783188259598928761529327005842716339549713065317416213993323796539108119039174992908957713862576279302460033183943303878269905190566543918650982091151536998024791418309589034925421451379387427932957289273071279572475777503400227240571381239235974506800530833565302167160430227648878847113839633525786657206769060685812959989996708480012906978953565064148844513341653999004058037101199721029605811489158650966599839975991102244835447424395070808621423861695450220760309677967417162262845321423169821406504400289915963026846554173040031489790384901703953111496210370811324652628582951349335435100901367166540577209930868183774116530919242726949476464129623912117648817048013862332213120246902196825633113656430497505254505160749722744488381478483786182172786520986668527745342083338164807184698024290437338467379414117088501579072715633599040612143177240272424655420312291932755651107723121897824331994324119422817649585669275560032806164197280313215219140601114724798904398960195789991799661459787666834217870443764498655339217601991429498689255574751747567673128590232301500925294904357085649483331475035347155468094811562581501573276516699308312090194456237752327365605474175613713065492749140055127458063978635849988558965917867196820716601347236663501043463048627247459554590279213771534382201538033280215407616896196289037211381954508817568601336913336390234159017979310308507047481243128414158972272455938898332979325035154592332688812287350219430455540383205275566733028232156929716024253392058493553075415505781252962989885427193785724918706240705052649714157125821557645781814964088188992000211534958110405282781543018418662655827973128194231943969552692302765803892748028872109841568156222352355198282446319000511554999104097497250655885912479472739147723703158035960197781620749474158086367777000706758418680623574761017086630693286394407230302778775619026350106005396233835432537681315626394280290126770615195378981051158855733735023797782401394707570219179543007527224311337605177270570052265222786148321382240572541025173841599695033176348344430204647222418484062290066120570969977503317475310767715895107680099849978559653462575714986643816061498588849475465198861364628758569183453442308318103239596843412260315262560027146077344978655652281262232579288688095393323814789960218785067897288881250393027490832549774875528977976676511182350348721271396786901370604493432321179672760087976207766578918369970084908288232414457303169056954325577790120098921074596874413926122994474279418285900170035830230500988657528338724248617763943977513824425621562535712321154520077053667411907393117263343882294831422658309564929008565629426175080525125538556524291311698225374366039669592507096926551770454057385766353408958735089699239818795750848438245581437941111522871492632490464830331053488296463998285893437657893337155466756599006200571324158950819581581117281643995018837867638493303780206007371017683495932673365158342235095185536820163836665479739414970712340565865463543551141020762210174974227807524369865112238557123682252568809112587199935081961321934167390960838030707889942223719879006883551557547481988607837927146273206791444957379924668470426348773311942945698602887174373687576008586666279391787143640450972156907996520654828226529706487420038847803362704040868584080901041272558280038330055555216280633173352472769503270986640468941889437356546250192288746763803877218397109873451836481486064519934858439638939545670553240303571528832120714336667083892941659446765077134666137220494673363591922688915197698484318509102962826267992434105677754367556711792368081056242518577916955148779478308920429338857901311138194978909897905210054468846972203433402408761061218283868529127297482342797650217102640511514216079931155440220239946198860078283045946537078940503570054627213090622215930538610341441176035652829407472830392902127594186156617382711300164005595346446720325103497210419604289949009186161281414409150807886404075571358164730777200341828385655975599225525352581834562276168393663189268770312776254362851309933484862540689821323145692343786997470057931334232240477245502641013644414138311669655633984539880535807828798009332902769307240291401800457138715576445832900503284328553600475853343997440050259286285488325281834206970040050526300813204936342306529487756654587857765347760722125689800495139600055296250385634050421657416240220653164847035404602050142822307574572344826007802413702522071613997830336795329744604403346338749343742190813386683313231287620790612845630033803670658986392118435139986946653823095884803074281130690062381955915475839433515379542094844540377637561371401941785406071336076811968242622383106169251580071242572429465755226871202192036924110292206303013679292063921301644318459001162995599117583605714294821521183756215142703874209635807163902694459120812552988216157746606707365732146113371163980183499774699558229493819074829338771998592609343478809861415590297830714535611761137516370592434819326667348368016443638078263376812364321746572509000269938281210823286765660217524166936153319348938118927363902032146364246238000531433815886003570899971064544197102196707819315822330017604207450577683423855346344547555635450862465322744558612308240950581582939699159997963174710617083983922037362324012844246047723042754387861556472203072502599844827873406065451491997401799269410202133831292458327734059916336887345408913315460563594050555105911618941189717713473107036486312978827824810481465836004783382229272064368632264764103368078167362092737370107700564672077590321598775739241790462024582266722721634188233699267605718143486065888142943285968056122419600439851290803446068201924008358183413222507178870754700102032293479196424488404469506793889713392650715455239642722592607896460349642937852754496761416367959022842050099417899080252262857797447115904745794355261312073055919726875181563206436880688021231797421810119660840952990331239964661430034643516357303824962384523077516713356763509251166552056904995826482375714346414453566248709250079280598021071962694901087178941069153691987166722336877907760737994300875748693081018609676000603075263027500239282712011646852215728159605617678811324720254392507832929285880039823955732151130863071050219517202356588320732768366677235409945237338012825769022528479693701593004344043419610372709616886085441364551419855495090352800667739240280479543962126306484656498126046183521726712414454243416659719994520728416215549736943975177902548662383518540581950305220216753931883273486795624833034732001064167470008038724705129943274974467059046198637100356633328270785938499591241468144453581024980628681730920514234196996013690987150934582836675154731878880055524917389422231039352847558472751503921067937611374118670447105091138520042596348703099339318070355105741559522093518713401853722722493326400043504938172568725563910105974808765520223891102913250413653891776082084411557338625694165048225078105443790640138602701719475473078334360660137145296299151358825871469501128932543931034111427816128270840663769406597465846157635217074388419504880863098256602510230257005086969318875022531950498195866336099238333739780033244297153710956488150016460007117566476352665047395606136957798388309015101150007894019165239153981166750413785423323890543990007279504205406575262918261752251330465135450321267696946801651186371752422695394337074880512937319493209546254308657971106906903356154685840914294112548173127684067671416105240572305099995345996313702212550087632722254890796819399431026494625491481065981151551895817688982530232140553085486908793994438625399500352995714530655109227401213794029131824677420858383634807153034996458548291124885930326141600921527042574022407514908313146491012713312845575077394899226404407658980888953262188102848692312492281897958193679565759059666281098142390778544624287726542327435463853030306131454253177933419800334636644575802116318393830736369938990452978639718105099937830881420726281648304289324863216513786570356911437241786246165431030523483601077322283902094521588566525021275601417762088489349255226595054550547594762987704130666923727193819250000749628835237914687096220862613522296974706128481326746804739381222718553783747551335691154991346054704363160778388802308498308237616242174428572645212641412432205031130000566581197627872325089575114156735267985951085517641047847236544172429938670113742980848558775430987544113385817098503974694214775249308703651785910320706876721953817130773678067061382143995554464602169711650966120321878080442859392187965643977009426785282415647646135602262521165295046076432630202881693240229160977706121437749575668081191235141545319229121467750995877698108796271936313156783190963242563754055779259202679757372683328119205328772826559032206724692298147487899584475137220789452691990093639582765240621076426777478018795825510382753298757499545883270490139557662327641647713117641638360004385669971627528675169421178995516685666371319315594462024844330832633160578307432383728092252735682084355359562009826771702626243766180807080325955022106516375253288642323116433899616181322448704626271940677535833003700944319321406474036163870772506587228510175417088038363785988110333506799859493111812242988482805273077839810849651390656573629580997701975077004713463329075044907222048184899932055957873296183260256831314463397202668920046006909418126567854497785062396123357211731728417653082796994443438600877757063774628195806400711898963914435592583126712080592538330063386025076918503532634424223495065736702439812239188947846433817272235636330897151873934006993374267580188776908972542751204882054103845346037524694922008447447885849990466438400740513569282511273694643328131632482730832398793198708517339184034500322010280323351918167401917501598376587505241736071982648232649694626568916175422612819945434534872765222482174639334975381013762977112054374978865072970409277162204864168061741586292093555564287198656855120594785266753118654361925745511390395240957954774975363755886488916396346437090177507249748136648246645565629828754299285257080976600091408801207397719335050894240722988300118727019827168509357775594192832780202064672184534952782286777489170997865445732041917715228133007007391700484138465326565545020038014248108921263320812972246476967800027487949365091666636889627881490684129150908233603320131634454565056576003993589505477142342748597537760784987374775958477435967800668587075061459872603245433476328522970746753167438050568069942131092905717174859461721130084160759033936849613425084897954663136232588404275906985844529358346139763825598114140360831378114429577541576953287993106086305675978939097750033274322498898387637535066287045854254379317765087295306918315646638097203896969995273789728311082497250843936523427437019362126939295448053389504296854155151234483984160056342134393669237696922072024722491864418439013678214880927279132754678626582473813219410026879752350834872225965847714904676887016423795762059994204926165761786677707187030516538736846792228423962755584257429436185174391089494793514799447944765144392254894698320600200827871311134829414797294582596262456409763316765219363190241346195641343229393711475691472796708465749530222246898160468839025456265408214627042430322845251032235359785107062970926616996667379505180005973313095603381235626370122155589621158710066101646795935801344202960919282655428198508269426433567314404710879010465618123662891680670883991054371389253104547970633062048675359572159090739586073896849224332936991257966119420166535677168066099141733255217324381411101059507994718970239311412661080490494885026626984835941221021878221555894310189050584926102559518102802921352171528514401287790002438051242754123627503986312296075113034318560925567644207966618943236060129726771839956187814314066672296605200747317442750457483930615276294567722773730539168469999873172939356459344399049066234726630551462385469266027735831755495843561670892742175754101912810376244126563357127387653432752725802050296883393012789246433371178052813076878206504309921612283294770037014151175082283280094770737614031777115535601650505646150006906631285006662655724642250485296272788150243972238216064398485136161951830809473280377668642949761331646278589806449001908715413479449905722150260960387233417343186877493067263295666983010109463767513486219869152413361363629230307749460220656566678903475594929032310238138751048676992180258539779862909186659874732428845806633101017379895004659910074609357741461894749480606581743266078296815120818077677735011214468722868887176500719313316682682914814374346557932949917747492840745913082911527738273527817470869495065075372165657922805315875692760007054642372842910910012982457478969454615356465888167046083951503896098561137022471648244842284378784264528771799068729604296985584699290182968107709650924906352766781154983564017648095584953482996965746357147407203847509038007738042804822299520831471816001749899236625997044660084359128435060399047688604126788366445535205289557716473641278112060386343416435643301889253262683096175862103938167661803624603271289395612363723853889553800350955440236270774729962527556987915687897294746174273819721157397427723984373608096798991925224644039487513723508555652950933857903645895655494502386438092374833719836625079307518594421480961027994419320176342760108928298618107747300150663595393413750053943979118545431579000805081179059532437512297359992183506313624377057573334107531196443050387698753818119084395489637553624624247660630025665624298877962244455079463739923888090897769794116027512654836269646673631216505846457683118283184833797408404112354821315053777479686005303255864675832344599825625494159575376881842617261826886806054628170418116349107478253924367694303382018568895668488489487641667305544366243910789306805413910913659118825972591126241347499434964239960758403744534872566423732708624051406094075929496949508809674669317976328413490171998982085547447747300683496127064356392372319496904759097307393427564397225167808464313551152869468807851350334918126183021868821596621121405503633316366055726476531023369312252197405582590717401883136758651681950896292518971920336797984932126413557427296740862284274421455862386958366197965058198785369071276605952745545834049650196589396377993112132441055576102909900409824600147341931345844260495780327752625453663391059810303833870705943012563935054688295244651457937128288221336130937109450921529955994972670491726395917198333376383894553548787086289493847322964711998558416563745801431377575887466027973290704716728104530908540994363473125009059068458702963367565742716685496249277751838425261699840861714344355777756638221438745253507987593667122250516803753607554153474418493143484800830369387702334859516408176308117915894194639260747233543601898086915027907478362632846405877406165515158319612136383455622456604594698470519866219782840108815672971198111105559368622909665019859343247330830525940185084858378954565190818620254688950283068893309587786552805401405908694683800487955100559371033131219378535327852813482436969441490100538716706659670996157850088470218259112296572107343837794687495595916915656856737019895497754657192156867427785654253088371068197873269202911807973109236536599941496265908535205324082724133931968993146870790594671972321091660578756239746513397167757992920101647303537779428439038337541987051169254327859843294651502250348356546785410893631982935048498597455999316446454876033876186098512499250915151473353724815897245424316534990329510136725693249588736307542697069608696332690722225073534336278892677048035587227482639997915214959994434974667041155231075408026930527374185640341744106953290121190785704107995127856982564780303802659298596273812670279826519187103438947096777465292631654814052608138356153443401050517653816942993831672003315921619010564546306513899043689204446256164382749536009556000471293824691775488880592599899941184872556885904302345706089661229364937470480194706315934014406352742452696812653428079897103258442334961681214782157495403561829686470339428445222856906493005970954379399103199232215940949272807307788389168890826063643281049486983527690230101610423112280140330976757802747388554446430912934068667527422234142837373541941053290799858305024921863838952952217815466859773790784330895293312050372910647730804041838511511679016010973926674297218434902675506627265362377184700287497304951172471043035639270888826788071146459953635940549248540094557082495987243376713692021120516649527202419157067087050551727890352780696007712959644794404812529220201238130942876399135701624220861495215593540897478165216040094591143987100571848983467577139353099930666029078641072234329341788971010917355246788904853688736438147822176513386389275952303530869331576800558522295014435290304275943315014630976151878340335504121680650257180567650331196412209245146153512966596431239632651455809934017564354223969286842847496492733261177217562193337051476338678426477047971502757154940653434147530011657549514217718981657108306266387518971316417418730640247750716168133947997332314751189333046979246311636958445397494362093554790761624901239330967626717942845584160040372838672299478524635687517979979205653948410422110181915019032038610783939461584165015384677459955664539894231352340082785996924572865064943706661246898586248289995685604603645046763306812897580753015021416720663641515389046433372504203717359897125112025864969267247864592230443925384841579033769019267758927262814224825481705789674906737341166018396417683919470547671096552301321310557669649855670163830781943119492284557235172525564332267785278559498611168907072876482805500246748363621404397329049550060870987836910027307999131834593545278803123119689261096401399476624457174043600912562605939498961329946993682672728323012826835424088234112833783843319526738335799830074796787316818873484917728301459226892485552745583484865188859712906363694297451888855872030416071729897580173346397185792249978398606664007829747829750295796163686795141788378504475169943931316151171929518468046352224688004533698364247107375772931066670943382482990525376827529489381835814143487018910282486630430012069151992887490088479187555257520080451696031656826129338942854061462951042437209732323439234848274075506315244719298365199109228735549770693947416787519874438205086518028070183995115490144159833251178246685013843047110888911777495756913264433650674724502711936944557275539194501608286868683839404599602807919202816455993749573523988792572622093107144850021136292511708245578190710514361444086186281307301185335400618515875550940482222210547564290827336304481120903564196307420057246255579342502274655143167042787039507604644214091436439115699974052913897918520642105834758858689717750663324687953429180966898996793086407900504678325036419327542415990835447504261377668598354472187154578167703219885784524095534161868372139494161662990720560291212773975608531505816763935269971289957246442222282090236134012698228917227693621776164386242872628336072977069663959129970539959003244438262906526009311457437310781387141346503249065971178609020125099659243503233144431339095499756554320766531715299306844957278005785237042713926719084182746473897244236905964568007848148223311681430355972430968466662289051049457856119358123787207036979561478546543949596098780469571830190509672704027809890370205688466338272431276832886374943309504538935364877321213752279610246384427498236519807168563905138049670886955148800078001226760526766401682668256406850711949039443651201534118445710941505938930725819843800656032195565352240881942124342160823036604701905206430017576195169141340975392068049688231210896055674808683432716315460545783015652589695883672400457707837881732848235507347966601517890045064367533054781362258604819111849337928925978397548469716120904283399875290731281119175008226726419366957268288347647909283975574113918987829833215183113178527748054317087660319368066636570513714143022077414524196981131630617318623599287069505284329569635773354421150374535318387556226092770581497985099491058489850545436609635225866908820312810795010990689846486039105427214887778413897589111638515686515952828253226707117555401000712865934423519204134127669234811192581817515547008776223128471607938745324831871096642369252029053363068059736096005955145670534723729189607779227548630148630056142183204093978135778083169678202240238751955048356781528680653676186763666319928434303748838412112066344804426220669109878186525981150966400961159140393669571010612625918144897104441752161104635233131788921655926443245343841010428043760990513871273909255126726623836939375098982183924868503783843702872423575340458287999721294888226146999706649308234958155407158678162046010206303275570263101549196057274970960631058055176517146553635889417957604554962228610566841086051606975395382095137770398793029203221901656617195242716289656614889450139940002090364458813154170147735913376050078744466475711177596616501999750334955808419485724324767229337583967056338232553033335793485204072428746404416871145385545177549041107994404874476724772006584167802013532549239440380349602964569868387733828265046550638007466699930962646175209104090047143053294172083540116230189872105280464404161537867950428187218022896661813504742597147734260271832171273180241487216292392131671012039454536425362456480489047796904803392455176152898563633891197134678021382018215699269929158427711731064092041842230109960003738042184704485039006229840295371926526016598230736730555319025587340954092179389303782060541903172481007405778917576897774787896569631172469796960099347003496126087291416860020753098367724294272257419872948212162967377486784977362074366937906613311773673128063084111198486353782803955450611883080162631584310357169677590483869083248118447537867813560240431649493819982465489467737150389285395396271800488428849389679261212419990424823009263739755346999186549345753642816342279881292660558542369953645122014605397716694536084875046161973732787577483191883628797630131311548706737858873224268839492150782782267319458984185555194469586426641271952955059167414882859119170488338784425073260380248253920797590029980346255740324028607415164904448675058058232127287921233673704358286155513207586079179145404913281667547642936159422932849532328427013687216313671968005332010990408658637674252194169453984808681541471975626188521414553327056125451676449522841976680723457580314533397367520487531178983708498090436071329203883822436945925130015107535902281447006533549465235008913046662625482318029724528679390069663563846720926694176897680941130525282240748863411300125387905368002438471412837207917890325354272820714194922164480475555657518071474572754685654181608132596595755746597554836537469285444324521113900371933939686576246949320595739330188470739119229948028817297699677907536395539598435567356547387338181972786791208569680975402322774553297240167611037937299665254333387542844935314085217409742571212763312849476710169499418059632050682553317152001838577473967080188526464884912553342632344152468173459593750934587071240483419779405665220264250047677567604311589334987818091870022917881862714134864538379236220745317108633570282771962602827095429152042030742488975623300103140863916613417448280109812465940110001749674174339712135054272640251377468459924380179726228792529451386685166451026024484840215601707938527745640447128082425740443010223641505779680744322552391630740366925548863489137493804642200053809955054992683173710061867519185148629691525248889501034714443838565630724884676137898100571006175031352136374517480943965707506382037220916616814417038553045930482473691741863758542979174697532034900968375460676652164574970930099636226120423191359270519910612571551094909908098013115898861535644814354241771542504944668579949484098314050058148341605700282798519587787213622500463975853781247309968516533887809387194923068630927119921720810469577962867685448866505171427705446572571570820103296902473913106200462937753524021787322984871744460652254150939960594969593394352351449849146778120994083402391884973698218934807092158619775309911128061956245767708519258063697335267480698153247684251072464390475632126635651587518408570428203261718197600523952667917117980417919359025329836243309284436392429763089706586716106172084688419915553157386543589640941236638629249487332994176624775554535069108573213446126623293939555762473163418623854158426158301068415049636633753619854368437706691233897703961954721253088864055745261211334909914036877966941990732027944250815957727166328247265826476739642746638038113483920141781239640592456206960631182263927575003624916539164617286875814577742100928218202265605134339788145167271257064247119191118280347540420821849235707893712144019728741661263369321972271714825469388171578026068495452036502541104213896526203321917420827614994570876293754513941404357149523007843754628152641861089534532272184274648724906303685666523512798664240877145064379645542526333370610426569034394540138674236836582458107258565455223347753625100703236638569290760851018354173318127621805906950421404723197844773725494066131327153127749640990059478957781669473775182075322236361803000526769180049211333127896573929779055672511562551479707144370136271122457581737270868724481474755760755804555005575927380401117745898174618712959943196704104786836642943885987870583794032888072432649021731033341991103364624224850832270304786163343256599788763481240138943160433776592927755429717868464453158792519953892361330279144661557250005394489029638167049178280795874151925315027290039920889117983964653073314670074728700740966434531792363841091878716017103730763879441789804977880991204234171374563727426989574961934830961947608399281440830950539442229914900202832895561329962308462718004965937375191028376006384195170877381011950568973021518396284339277796743588932240839877019507068296979887372181037030270941083882820099186751270221553044869789744550657723406950017170162466673997727113989598259592033579953231471714611867942987934885746422388534598303948045151185908015375951916896837967959950575163641554828364531016288246097117569747680433028780326524128536696622018716916862888958850046038174737525352139978756781635988250102999168297818822612390288454466116398622054829208507843413567807583407036194370276814492793583775371815548867298363962119892332806420004349951049297694545136013770737917412487387518471338287612272629767401587600523077156242176517287842057991143558746001534778277382454270794125024765398374381724541230449440643558900910714097627913124931482296694934407049664291706383443505291667236325408918180447623623114361881317270534192569407743977156791083233817680112249349148168708952946741315932119676474383597525635533331109412616073778496252003394778106288254480835213254086356086048579922913563628123610362683048458626902633078990165126056898572316884192365624919976385930904123407065074780717452539299182646846585435124425440521076986943983931531167477164041075348105517311829212673204600972474930794577939704876608088251804679831323197439079065933126787530688360371025011787789051906185795994578797093284388746270850918182536255799012578550249933974658709838409766931780437763417075654539654345203000544899838446345950183860136159475553974473984859325348983611729491955992404530483224282221393836539650015885544565459437536918616714107024397452869074653732673645679181298636097270291000250185055663110898939158091698112683501199438031381377767680667696021342092889280444759599422222209360216300480708958462977700634744851624435697261944456362850598920829227618245295343238550774562513773342122063329549365834736047344047975285540534239210071374640957256302469487371709384031676869730534260748699060574576091603032553748829605920767378170152411927142124480565765412731881650807867764362854587593003783368487540363131135438192858548880665430307683505054463298651200573854487183878081293362122407051600181162131679452314453135317102251026026781227960176494711281634222861051133398865776775194544298231924079449140239898408705008499580301665753419111956514403215913560719432129895449842342764054735361554513847665765210738886677036048534864317424886944046523183553102764533068329297016079108202237532408347232264174235890709596609665411278228191538908682458897526319761915325541889202676093712677615245613421917901019891227107016442325869399332491119245064593508925711376817333921440457303458568148328226331352531806424240643143381532293983232682304718298858641110078359943449035443033179372901143674282815431648924073916340071193411505467090473627200296319389245582280837735850841533100442911676101218636581469624645736746384767260149411990772453054748611637610589901508973466698888726349849999145568588889296822877342368267844539995925376018618340792630136218321835649252816423879259007286997754672014989419819828994048137221675040661934749860757845252994121605702655840366705918042170594006704452349931004909303952228746476384463735014420278315063377930806107973948319983907847508597244808220840151865670518152080388624157024209897947416701649326607191139486915117956083206338212069366999661932205347852127572282914032434410764681292060568229877762811441997699775085616840147243276718299268799839053651810733128138943099421942007891942924648969535482033010755457840887780149701236690442538070137907865438038928106445118007522973418077337961564620938802786753052795135422722170626405604910377668277865927537691035010955665522843498792245223289390450595850285623988446767566721872958549603483441210237127816541818850266923840160653998303814480488591401705633193500075340631581917767355781756170246815442277668510396678953601225575461923152423247897274230890362566610645992187584304373359707503357099803354828107609699834200008617402250603479373520348817827278212851780986669886587971216601068756709538832287406229459455072458452476012840114504689721770552608149782246506679013164516013675700559541215432466372491642114235683646176258574091696320486894053922571474706396664797599011840659519876419971652101874542024104209028324643004595913297550971913421103345273636033605434416895539612878688130962230147683294042853309989449254727323433656999011082155550764104754167858664968074077431600625369640369707934258075817330255731034945942157392673937342848534789794434822842769838464761466179190994173058564762751886039482698066568181030608844286620729279283782475017372065493062082818997976737826528000304313522108399292518762440562810860512680196831512448879399128145528597838768041042258594768963600116534776260928086633811476706916307818362689452181738641166759254044580343745542318579812794967030069800129037259251902676326184750315328468403040396984684759150130773390187754469363029951911156260467640567136784875726513946306723156786035214099604067593893865919164222135121475002501671974237145880029377783719625243554266810988864050933481353936825724242260748321292695987748352115840894610052575578812695366477418658412954403160521474897843029447552482950597790827718129884792031043405608010651661088062878351480538185875569287755138013735689935809606374780925891482565256783390551909903152772879700294145416593625641922772958372174150018135578411546623662513049711061203791668961530856563381106319956392132811636063474345550991873689530013441204201250385934557005368358622756368013425061089147052064223867422614429596456090672032734992754372424083822694408723441282682715124313739737581328089631453098653982611156782603565168980536384415227823544805658013100446029620814537684140779907907281269353398276599902079371230327868040304804916860189699837236626085269766398244485319675919564939341346170034252397583967617353997224628466779882851581352805520959650722246095413803124916021906335876485993534231554874488066288073996976219269910289657028830511534949553885487901152460828139916799906658874837325726733822396102252844308684868523719164843418320703980968089845453542081753084588412152958929919161770762145787186541487316691770989217408770183810529210194451506986260354133044389720831632114243120775208097798192941808196480544938771936197757496864188022516426890263619389052086186531218198241642625603015456660866293410965343713381553064195256290545859344979053579347134829091656424438107970564502067307623489526627421100236552734325011759376832403652639539758680367051682265279854121433200475834637102101723998354991245539025151531988656915081630281962645533377293018478970968722950915613983710561105498326412686737481255228822375776180149677761075056776390890269230935302328296971408479363710379309762577416624465049119719918058268699698325764854510493937055551252998483426817262194578917292109289779302148267424340976261935636595750081371869263800589333638661926040438255689456026616530390616635044430943176542703189906254253325954872880399091436733200332131233138299570181780601747642137252827430751509809132275388387250252468855739326909998365084943522343704717403538981092007043006300551620793531568569348076863713742021225241247027642423497423254865042794162192981199979350528399962805347494693897271157048146700120734927598233305092105424085707077889000936177677689724837509611704079519680962884310291977939036006159063907394828738228090791841780241801445083033697414184732240406935385439775925763811587199788465791913447821606928366757085092008116290069842662416669651004979091089497921102216124973405827951741353557872891899585300118254756808507762297105048941232693896188859463202526771528753460375990247792592416232562118676792133580230252602554184937977897367450215228573219449021215754458857083959705008221812088964994109861207353168826925268670143030389008436477629812995651683971138372469867052083383406573041530274005157694906555608047015428846083908914163125848799923943375761903073651425408960522532118200579828575996180247124608257457106324388620379549366184259295790892433195487528269967051013670022901580360355958443070441491407322632162855854758057203036442475985920038506197519568726471985008858854333904546604963022182461973244173860212365245303071425980626483635554554069081912741997495901239560692228683129892711091317675078378535169244280361126288981604028478743066436179227504922144314549572338737173304283907370206615909470644209210326617941347372406128985626682801724423194852800427781899421288825372934436415797409236742462109072421321126045636467460300322377933455708877642160350166451018335606389094584087614416439090855814480698266401350319978084632609698801063322755311774564136012850588913519423340278185311022617412963845134294322378378859896677034426442452336867697135219360531092253511778835583161521464591889965170280681944668791696987516985202193462522304510437112345313048846174743666332252441327840697396004122871008119399539274640365367241748483450019152781685972567318567238542997604049596517749792859547197790502485205972766605717092311804720453944456169258034451277680532960410759676900044831323253653065581440353442630821704904414240031582925760541350784850775257527517284697582090486908951368525550966996358018429532518346396970959130344735903786836772411035768834259990077290923467500936937368708220435652850837893035471452596099118737503183272686199887391240972504374764186456999333490889200831860548248613484220201850528063874263121127382339365471528848507997530177729540218241377812962683922871008274520891416143138727844213674057483769541104931266764218261799551039579753297840328226906111265016051785378859970720018415455890984922139110330826893951014547034963736353587691441742435158772922266271249142201326283338152830827139628951468686741116643099368351583014944918346210274240086574287917697833551268529696465394004613668217599476106142046045557213406313885692873242831103750153476263248936609672682865762893649527153648607281764765958488208623625807160784650468385714481439774438289306420830610070368046752097550899751850375423466619105423990126197483988822595122591946325776746765005311458946458952790575348376989177362433418947636506428884593172912488839092512047260225922199383456295427018898423219824417737434047632647567431030282316846427667063670522556210658986343290739122649035378762362107155276965647939799805367732501239586404678613994941642821595983615785406099536081832116545517288083185763286200871953874335061835769612022533374682815398406855839529011718460372288588954181471113155186420536009909823083910611194260840165646309317500611404183753660677595538467847169783361835036897032076068019699656720740874465361166252217564339060061388972757052585241845252933887100936812711529296927282460940431779066747470802357256133274164598382266709780901772148334129650400846370233420920901795187902320093528582744563345165883916866089369640733706359968311339243204809800245045333868871694295383145561974253950419751685017587186817364427059230441208468592242857269927987580089459012843505267683508948013846346739931666842438678658017496288082276291753379014637121397279288641076343642028933643905352015051288359309066747536946612161529481034377558532075559063277189248939930687383208886420270896779404834085326936256979535261162377621461701500413238229555210491475921705261670679308036266570799207452916502655671635264397135878989257745741184269262936777990565307740258015218559768046804090540616979004267885524822271482314453124927481175273435046237255045828684417969475684412971339041191345853788914913117938482813864251664631530367878359924962700555491618683711545526620878780647838981024641285956351980324587664706762773815525797582785997137548982472328812214607396542094836363568234398591904238956568592453265597479835359355025444945887182787541743162703624113215521171898026003433922584961821089010326541265874454589725599456893717859518713187991540019340795106896352206045778881331564338456019709845384706662237830650265171307058248560255550546303832679819003917201744400371522520265708790002536595288613924524361294627861062013632411226450039201039405585691548652931003869168910262208054105053798471452707653673771026718158294046260890909029001120091470884809754428241631105170583200711748554921951601386260466427266062583113099864334483913348892217785178065391642291232919150008707228414902474971431086627000884329736952596759498285276201328921547394577170577313544634028472949993480772218283970763642828382345030380697539343362545590983642968249610869187918851823598966128917921466636023406261599663998028884035250314321643536988030914660289453417743967526390704510127475211781565752119829606230751076521832349557914200436958913734176061908647063996909337272287528061404880469980545184732236953346374734027597431737590993206713973728383254032355280977857521474639208506936450048080200462075948729203262290358671458312904122391346493959524626564537013783149781831111421501767015006467519658782607302766772827429351643385900259523087864582999037761255682468070913324667923679671702693345931997448943138590642076953796048733661509419629072643306890719436859095620327819865731756132970115411638398209482837085539032676799303386365973243521730059080568828604757345783673153808153853462817796470102360942407034515512803005151190409236133188729528414965049116323939164513117516095339149946213089655477038600987426453492499544229780691054409757604917230879581780759875900676064347287816619743291462081680257671222498670535487381562024683192572452208285355137632476196717696195223076447148936385519367623959731054862007319462024667500503521549911518723654834499550677046914516404165868862831427672437259910438528226425578184415277415530918778248742670324956964895044430236211095513081597115969159622973838867387279621545255426145927371243835816134973985197589588855762873915345264324514549379019741225709741340825546828392721610606328494937915960205761307491687559511984853896001222926794631835451530055631817369490480958973116820893354327236995672047293322992889701526518371079413022109849716363762390669814003246275458615347683485251556463134898503756871497915767769196375594014710980739885901444661441395204275289793613664828056504370049437668427013999891947027694876121090812686513216558857145453332531112546385367937532075643501425860493308868141458931236128369465674141090817531841614206368990466820414261209041127585205753079082992671852318205019163178948076719933893244248122394498319456966924350269577508782490403765767350175566508233723939669170427727783327852601010095252174769618611963525468710836253540664408130152091351490847601513326665981442912529947709304277365877749355648771821397877673109481347429554698801317859040886201134906757082222871700724019217828969851727149659102764711323156260612895246821206800445309520578842254542525407935092994240594407089686709279390757820180926990781701028197350807665201945577795721297326992804655260834212606830611475802350736243341533130954907733908421584895960445664905521659817354119323752902437523046010654963291501671700260160764760309649297591604544205683150743489796517841569467039995200232621818868492887727997972294105506676893261483824364639664948271440833106997097420024823142223519927837125977129202783150824500991207340064302887576103207785413081719057859525226677762104404173420445627335839396372183952341698409036287471571473089777856653018657403214643307180459074794261644303711041178793626873462262565988322954773134688319871858735956376560388731240784575294839530450433920762821464185794029865019592166222121762581311976862167072648336255275404468012351220545595546785151992043554897959537745098704162773720494537602252092068851652286921966500972014094912977460180618765026449440243698765342622694141202194114857382183144903827353030575850223531431776851610835095068855997092719321780609463109581695221522841569479473111948858719887575960491956438328556452766360996039129860331986602660260871511502409432985388396709788327480110961188703239420262394917631314347646526576891098173096170234149367349129468245810979882886599417997024109121058276514463858217748776653789379033508216380756968506629815019363954632191756510417085105671315103984202021271306843547150403754328758720624412509986654791173307316494926247423946873700047970626795801741821047060330223494723315758668025021231521959691686148542019944876572223689416887540416954429256281605566831612884203808234121641860793108766896090812426740319752575185396013367776415526811689754969083144261506913555932018517741486395888862730114674319145310816436781199435778945473214710228699787103969380616702953173341838605887618901685683342070771017400395628790876077654229114989869840090052951335701385486046126403887042136498264932075803657308371354787587322199365287881465655914785221736777696025646579009647230203004508720285853276976265534603964187847461851898318852342189162858126960072089315515433650203642088347664900276296713023637301171755596996020878067784485133796707108343852345833122895698039203563949319421167166584464712036044765883385724258493555677058823337622455659712837447266439115676982463980312008741242733765740918510981293185467399668066683404158385348324472940524247773250646819679295958205677740257675232059441486250162525435201653948455467327925960559920082820166361204222473016337691644432758345460050695409716652952970875537104011085200039608178658591351928110576929636586162007407478285819215446151184087825340592386119773729987716713495609879360357304508948074726864569883274059455530035364196705866286956783823743015148939778726791134856870849584793557317540939053809745304184046726076543076494359767706037648725425757423195592984091001979115365378430036479469618446265131396385576545539884001774663282448419515674471776348438922916846536136631322830294550970858921395671054972325308939267994127247552027008686489691947237197454042407023497002819049899466696397630635477167372051581001779556179870897788133650095058330994143353284259955665790860050723557238791780399455641284507489417468234100430768743514763836003423086840390983866912977258392394291029977734948875101012786325578117169151014965960058020270078405724471721631083509846056631834739263476011497938048456994625904725731215964385768632107240115158356531450550823814986386719650092755841583063329278464375482796972991667732405402905350998477688275567128115724312082391366469969247389571506374520230639981980947180737135488692806829047291527510728543351478982775200959493587133968194440851293593410865057410680349978877898851807843202256660010695628488635627970642478227441339819707082789407065757863853193792719058172652208321034548788934761203504168823285231589227703903918746204204917517673867237240827961926894149179166784357187526477462317065133103370703053888931038801994243462517277587540324067704626876007701388532715642819851720696133225863347033832878338130824838022160112090279974854551192003582799290488166202788677804263485346008117883095679284155215335624222111527456035744483043820748165212464551742569938933770621489065217487069117393684479208303933483233971356946476715305721769674679374030796208265992251620492499419645222864517177163146456950145642148670123512914259107666432665446018738959601377214244293807153724632911731379555534739353524159353658415007547105407612388932706253696129668508895900240739803133274928489823469730835808278661107211553426906443631801703674859965956254051211439963077277705461840479171509208174353768157694736158500347339131877060408778155241682746031567579751546752147913737496894147310071110285386655395275404021809173968039589915946126631581560588172636156371438273988383255454950257717595922483650113706464902686194050617849217439768549805270647287878688812443381015355029941467288103636960419068825220123214121376399741660033792960385198408211674386249212528993686355126374931809879275486449500252785758358059299595039293098645876626497456464683812348687810088560766323692589759708512503812766818416123502771698583892967459330165286646438212178048126821690320040318394807480703417342658269253922030738733637452107280363808446821457670743705790240965461951131514947258233113052823091252826983111079093764454642015859513750347816295653978801569586497890302277105790581761479528602573357853573060017251055672317192720945238202390716810321382751783910209661372629979409778446777141890539581209398197776289609879092783728690680582692423437796352793232259362551582919973416852843501646972816495191747334574363931615436207006628547041550980271389987884542020416189455598993840870389851702875438199279894816011748511251747208053887726009041404208832522159291340340086976950858963504691098455665061261522114360730549174572039072220674852645955901036109379560747695218904725964381052379025975850985703614562187234041859472091673053865443348432652680957529575329917604560161379332294835206705910887112110258963116944082752650100499113475286657873741013281340885022132633662999725090789491827912723992358037888584581096301665792461490101049030845769107868845315844362851814390389274447715993958441714053766082258893291229609469958478231297955051441208932869044438651378560873505297770417626932034748429894707123340937291874618345704497327129802181148635745421133965473386947913878942462287424820339242200300716892541243247091624179972143026305377359437601152067815826264923007150276117168770730041311799989331289787398445126192930568739580165254861442576833289267007012861365721874739079460701132970611732209746921110945700358641264983690589880237890786717897688645285379484040482006202170938946246533172349189317653809602406908100575374371706355383529454102033282210289202405533196158085700297409439634465071329562886619280365809427136564529915643241109375448760158792766229119784046180018260440145209807558966724379899931428294474235116574752528932319510990983376599977188355901487328900063705312960570367826003109738633627929695420926174515752301291649395462456946423976231077249004490243763072234440510051078008953494974471951436333519871011912411929286651599730220710857829475123260430777578974152606669727520611388292161635286314247942786375089876609429061861071811187773370916066053994577655753661270617926187535873776093085811746573053866066203354528587561209840346719064944098750316530449908324705492366612557677124788731439397360172119215962145298992067775598088300840682353051514250548673823713617010245096722938874361287271755184256513345964326269151250351565674052113958858701218050626390107425332586293577840893149673217039608566686470583012452886449875655539554820697159732173351194849006206302499970859883924979946296108574644638040122064662506490660036436276320717009896980188607222736960383604896713725846929292951468281730639074274807530433146518882111798749318253803054423235644692649232382762201839320261676002150532793962465693485909727181103554788110163462949466599722958383047940935797971358104988043482137146689815972643360371064972641117678847330289086629388439771437780164910013026531526723885461963077823934729612547868810895866408698381950980422067687037477960608774533958972794167074323655416628641760730034542649880487805428254508345636566853495785500794750042528924029332801910686089501694338141141225149025883746945470615054367867735219326115722033076174049398103473737310032992969323084027959443994387307117220083711126219878794836233645086837072090777165924068792853267029320508794008770654514294508384810095192029880409102415293204368151474902862054077132745163869062540738102108196623626411781227644860141345742407595577065388601511194679792639238732304975400007347575901075607357694328690534953939648526501651187130704828513950764300206763825059702761921200719688742565210001348584705053099087711159259891208317035242009212697034912680702850946755102437927130557943778042758997237353342819834220628371246614157014466202849160452441304086924884989587451743290107100833074949098085966701446699682525702859752853052211746381695666719374018757895490021340058146624715018186932142757769155638456538785278934754654983498273967121390550195758210643610331468483871712579302240476295115123701920457042610154299163560871277766119352911339661196029365491415772308499990704429999495660381179511648470473140943308186526011973415259424203581249100212150125794767277355270586171429583303700591646180215275201851181428536858389385120047765879161957116655631231822232465469770471355254393902231612994159485728111338789589691104273991474671411795621474331395704145785730478610778839212560757663789286092247522699008125866884153775432524879741492700294047661386882086859977000835977064525121345726853165203899840987652728964848010259751140586669866881581739070898149478486917103535116511498124390513147716721825837384887202243430414497840480790429105822865833614532272450806677290379850576675237615109432666995405834565621905756662568690671167854489848428002388917493862271746566070570973793938502410948229251123709276143007385785598541582734125848974299389330747901527394326952601214346623419668997535757784101957335789701822161865131686063906224750316745274181318722176218873858900213017081742808141694332515834174964385037791473946254027957425080285894240485377954496782319168005433609853287587649201651733847152010360277344981641537635217914453809674090165658873456498171656324248863563619359974085159652618588639248996278367342697831878940401628658251585276455861852752763346992494834513333640432248878942107354757731252389240187891348254726354126155090384125510323490447214222914349674391680158046950480729872781173229641928345925890279734431551547375643881318817641253451473065887962782126480707772371731666455034430520001507302050421101867180318303796278414451561080234472758979656030814720532273398775199448845251883302798026479866487043750770379656782282025341380964822705141171205019427883440050193091205043243970557682693543148951721560434107426600107840763696937688668110559838377851393046898608042026025185763742798846468625182509062350089452917912239872407066659751167639884786127845537712863372530250367922167737048826112257398015362620660888293387181215444001560903190773466354698922651182997343915109618477755637943560722841008490109624258989467443942217226125528435656845289612721349440423504914134857160891271901803433761406795923506726717120155277445489531050575941623478927558671223046787527282709981895356619638538858746665243522430587279430419893243128160215490735862407725389922558241836168411214057842281768870930066954984772730492726812259011311269995580839716792042107076323396453811857121096182208662224184102191822536271454675878449742534075197740388903888593509311200635233891912672331938859898640266080116723486091442344167028342984349639454894889568318641845773309723555990008312834182600369018716193069650941975257697624475318230336025267830865699606135989351074206210684604363942234361658751846413286437871788495388571835647459397617877669270449958322627683146277862450387892575066780735064936320523359908802026044596011790643690769760818594307121102908477822430527686503834975486126199514053222575883854242182321408124819355759205395834864952014221427905300069678787636691256917673465035427184672346671189367985060097316107065132803484608093943139090762164208080633315553742624892732729855267326209771918468868512076633639054632195845833906199750425755381605595893987528107068528717296357414328897317841238189867166970099159712676437230505809702399283262176708198848378702907162095999580997004548370205030426230925341482354780836832006359810072451894051051921748204797726021960814843053426100701357654657958407745932150584308325846051919429511850689772386255395849479617287872168805622766908552380704749033951702999991974524261626757869267529656936770346059403064582471991679157017010281750012041409309788112387322491519484102871205604889805798043529943099569185988441395154013859937394624720441846238359317915631584804604160051138640989596815765454068995223639193191372951475700525616896974332868818365803536443214391476112115434795918397479090013295310254377093721466569958218265532672443788788951567275922090381285909746753967221548752107180763353214002579225699519819669772680271322715755224179249736918549099461302337681860480985291745078050141492477707625734335742838918163068122048783381233475654250289928416949059059531663380726392814592639806690211031804319948466662173908211920583235696958584958728071570946782677983769677618161676969149885645257358073685483475256655543345360963071809393231114348770985795694160648161723351251525446799105764844752783420351844407116040332651282030118519518587396827547265686225809806170620305651568483441989954987942397541509466772074724720697224781583136913860970595324172705898910192584823670888737932728396428609499597159429477179461962227935771279687116898803747594969851153702385718403893793062295354289858893420786626213029308642134993414119675234337940149100347580099936637262111542187821187553923200941686623949646380343224441225711701699372368662740116369782413867023128468326507022058359870410084926317091375434236438250977944131566806621468204560740511090597732536187206380284357599747495647964640559984392701995517300288074276750622107537717891189922028746649760421876105921953020925559598863163203476640136973884220184183992604366060822387136517280168401269131243119577679673940423782687191918340394916338820178713383440297696959465305860131181218393084111575369253610835206015642596637795013420269532882604375834261380886728477393402567539546186725270250482247153192013034129000624317834837664824947706411902384152439652273545859692203851772294213197500155207540879811217743195098603422470660323712113215013831125889703802581733987074138825733649616139972147311345001781517955202953527981941546537612394852973603180769949490978645016248494378818872597559369376853935450501928054357357623919012668977911084085523167430856548951187755130618715124978388628698435133348034113209926560341956953975538342997551012599910125146559188244527378593825396392303240156915143364822522292604374987909181956542253370046613135704500741672458142981378742036133415921867518736729442833057564613585445928671131162121843240917108524459257567024911636658564157673082518708809853783070348457756359575545194833672734643995460166217893057044460398590262584246361100399987325074366856194305821611631420323960576078830894680027526704373461521999423816415979677747831615554351087189454239114638570844237091663365899630305106688078021020646918147546764742867092967431261598572435415312277742003914902144698036248714687101733726008501958626086412272832176044012537860512415921441996992261123494364019492180189828313321655308009373763093501581507870600341075045604655092233035943246558571281185538318708294143493685354729730142682676838419719699717858963521779537991017934610614602846666702490450527245371342577877762981365689304488184297856294160493691379223964098696263948860881798630836707429399163040766594648715899387049159513967008265902918080445443897764912637712880470388950872352201000285010684458558500998230621832257799269209295615916682903558956588216352578802186611940586391616140767418913825133075012131320604458378462070806812100313705873341861247106737853773117730650779190497047607641321764492782383857265392068864011789987680837568845022739521519601201078835909235918501540955549347346558153326809958524082843322588280240299567487182346185506658473047794324773091881968511172250949899310338156305140048510062705695338782099647134659251374533629689554789138210305919521442076078291307104244690558974582139162890771487823987085404947993476687618882409760454206880778731442576802195303081845764756507203357533290850388079238081127644378551637775233925721990397915628538492369556691134547208466960061845941797197650866178592955555330081153938856211024022154936189604000075539241849742037457970254582351881788347038215716988605540676980632103146126811703228422052698509304659350462190443782414625421987442297716802722450289820898387510952649037064743575799262417163018292822711582278643577507644183438374131456811389031060552558602759383946661223505298245913034293452529350956441888257177230700301249271905249234434301959934335713689727004677196514060478808512959657131717180008365824352717141347592393856925688151114172970185668456523932204388453998533338032089355741870698821932894407490422112688447939996436381405268982459323790856417610321299846217733958219659563418245776294366443015026820248425845277344260442087911028116128666260934438366995749110920412865446303490392123538020560387391490896359807362275425697546970639236623420786634687808681134847382199229969435373906936492053744332445652240897715233133692185983460541902524310209804607739668282207647762056624136572281818218796177949372253258069638846923140062489790454075079419510487833004229486548554504709271830391204808593294478768772039755313839831498802314654539816860798460199774761800680661574843099781072044914597599595198831203254047376803647499684092991607798043624299574699823009626908871125412877345327496469090991144351412398900134504127399380017311792916938682246549647933285470942438023990096793061468483992001942990604788420062987124695113831440434337833715878190504756964900033720406015308105523919071034717890814292611180450624161659210925072513396635843760446461718409326841984747418252025153810610517743516575370738599266770012067396850844683377508241278212992682585896786995750238700203868665401240023149927109946667861309573866958941732418359872690152306437224546508928483160027781514362363743698626920208994970460359279398763762946451119389677557215492912793517767634832437507328437624665843356512731965078200862302070639080248667962641625435969440940496238122621473556162130447472075705843830237971351223536929043586934137445450677689193363780835073097378745899974764797503814969864914000883568849035446890042486531055404770504885431156031993646031992957952059395587497679204233501996495720021505824205665613152768274530327306260089687268435095558656573855015200998738299518985947946574497226594374494270735605601060438332151144346008610807672157738886220200004846187617507015595073614882291184490453823600894648067666043415698032732338565370276743333716138705990150185772899602638203757081853631408358754174573518735277885310833497999601390825898463259087650088544008584458917652365440330495432905014175709176967140336981895889647114578914168438624000001361650555277283394929346633994102002559543930547472336768649942139806301491043132598121914963406818595499896089950374026922149988868848056815823072009728368361571383634096195162099854769277627125225678826526444429004818194256830305409912559719052704154669796403961102450271066952798685738824475772974750585559010126669526139450087745669751510924356998267055925908372921673487455070512856974707270000353520198873991577781707033853382629839195723838363482311098983051488141631641669571343434233572866676078232237348199091864465709513932604859569533802227396144358231217004354059554243536976436732563457570917761973802303069379649931351137358151708311506481514009842673348990925101585881132883802854252942950234006003754050601138226159197825223039407983275015884656090144845625654533385665005366358085247069676118354032287908735050198650939522674818643230115859562873437114643956771257660034271210673678289825920197323049932249395462090197401301907634799952484850522474182571073071550799263049688549336338839845097371892734376911622255081184639122904909576589767409567959050343255297751650187048102782113386465532716660397365846283916624308440962921651220103335827105973743019663204831350207885957502640478952224363903934830445277702154889281374043155816601212742553539541087560062580820343072532695932014770877776677157249517734400371625685022358969732617483630330778432150198172772582136239343857764462126837180800508299878134353709066861884774350291798352883608929496545396715866741053762149159868507554194284683533669080443373035392267301484057884744086927719713458930836568612177711948852537300025549101688510292324609513770454812459621529524402619493932365660250247118605056886922503935780512253022352878336889217042191737566290632294581319852872647261232589390299262323841038015942033309940737206672470072774750470679051842724545533553925974634098655720440025182811560348405522736818727120815126193060676134457698067274429815507405505253837468221856454334395770702661338655730752023786428750902806071437439539351279235899291074843023085911221582577548409961253735539164692946210371305982150858517898179394503389501154956523690152194254064377366662779133863731038090475244381209970333139457013397450946890723878083872971296519647405744249031420292286720381047764956630135235695855798103685229376630667662184784763353815951686077769657966865451673782362151931648356846653059946076838107814826859837777743645791618333434543093527697467898905996765426930293504400878109781578484214537891118106382491290032124680002300837140062048238307052797012209800184795543943869394070737572077645591592217240822157714283013523665294630166557305154813211876266860800787099144888846911353085912847473387513018728606792376632897876810849982989015691445004585408073671073213239117536824895472864049299216325560472430612388072462731955671085037023125802252326072111508876588337804753254363969494811410050991293823123446202078175469495584728116272455221700068222362983234458385059977510841583024652492127568192354904132110733030184407313496567557828761876554642230719289215695318820128807347053521295006252421312914439153776901615921541419238164891538545770088408987651630661589186159106111831721090319771171227573799260435331241256788781567963139092394241353743863327757647363983720139274561615171550199419920413982964732570399958640616039958363635241328001323704964768585487820985349407309890610679512395741668679256960691200635796470025443961739576866072744263928708411591466286610781458567551456345842987459904636423439951470396629793625711884190705101477440204310032761039120073616077155636786891351368360768539486356393227020548033759913904120697955048066225488844671500343939229603777465173143594492463304290756767641681851466538200296992482739770462462327649542646662045435613738800240952554093510027845633046007513628200688449650626595325186825996553920611340936383638165082515216624908105559344720138409109924562333673214679422564241652072088587950149858759457341551485780162392200133221240648366907070060313046383817724253339051456317782546619488188937940907396095468642118833797941857874113254036483307449851456488982075791023280088312303585431001130627996631094053115956206887329851658652388110386446829590617061619076714375134165677675696302795507587825446980244745587545658072670342899483856439572637042382068691551694864075964852721032799665556133781466050994641276894556090239629868043471037441540174997133256098433407015991752972777658724709283072246104438154220727960778348001421741418105834556649691449274307681445240033943969684968805351994167838397708250948017523479087850868920537524328500105659121844703377139170417232048322665039837364451070157424996242149362223545442516262437761729126045520036726250730330669060722981984761261946755692907587748676490603641178988954170158044385425885799387003024505596060775867252460791300051579073719679286450624859173127862662089810544747950939120897347489860710210009614345515584717541738604042711338261149830219088174685964173591182905543585985396763174105173360741964241358508285166895264715668806701350630669269875575444746412630181128757912140442806470535164530375193022410186414381885760271013672558387890291593025732246768885072619743283112199419701029289745741348065224753880144599212309486813399344590520568824939184099013113613147847918567082453925280916752521822811638996490176172118136204045335268523967588052820404571513269915408542763108500582431927079523473760974022437693929978633191482852500575759980571965296876354116718774467974872720257229479081626460927163452018442481352332831599432687340521874097815450818583657917928432396788835484839872986624704039499023450430183802671036777801283313070132038712715146875675260023942515545055389759378017680882585771612668970872970987325528269134210911119171515176520469758315789937750749553304669385034790275455390564228095892364173401484047629826820396848615733955593912652412020623651093417906966934878376370339287833930306358120621794903286082299599463803584322512189184039300099965619595770762104768773312782571496851714127928820150816122423959937180158164160324294977988005264379612392410494320730964645589924719339452807407225004047106533656961224317748737975617940818720878053099088675310676735548576724448644656143667673909771794639258370391909188795022947421383919880207602093593403153967030681934725718305649402856038688222987609047311306178816003401071198915109090311802214817300882945994023760464012540030367369773500986817799003965807933701913689325481012085010156587350239831565577522846153605023572703757222207354975595829263253812325413149879929891716491220891988938298127733719429564693232732889162502545565388597643400882673581273016653374206297329908029002456300967543280192283930244845200340565189752997166987488254715782621452279260263560900265710282406462573848083489183933070362375829296143379308364539189846940993601688180065412659825420415942056420759844270930542028484806164943755750490419178420142685406367357476471229666569871529512589097913554318119054420730217700589922368919743533402062249071253015148676275198231475816964117573114405038390570832758188743535747398311074308028243452291406106696962250284963621404480519781180169841173398554138526159380833445014829998462452158918726584816096282894615409717699266434338889327213696723288650793624111425826207190588392282375943913055483497495047077296804512733303599450643256780852888386620978273664192116524177170704304830739713666622850976318603444859024046189720354697872984728958210978017917204682581605984936849080634044011555827050399225737227109428106290482254694981429984188776362734232570218493273319485346040894795527380076818680619071734406663116953570947058420970321048285002341150459775781115057785822272445788702838405488944908888421814176184300839656309816287028258958493272597309317732085262995681374945301096549055027126816684307568256179621098386966948114565614947958197817900272300502255334712615906404869046412120821262566997253390055865423109216106817585030783115340108287357133651148929065945849243445195584173668447069500812526794226081657053236709077874151268953899882470638089418874868142781587414671404639646558133789834580815178806108329109174309760787751719787823577349076150242903042919657482025985899029228326267682179197861006641007801578984885769441676421380252610346799056137082431842878658505360930357749668040630067966113939413936595467627419356099856728955328098309623912383146885459646721181665268867175967117464468330700539176277537210582957627955524215547826533061751782055760691203423914053527674325552958270791110297153702310859422268031054199531509193243052588832472235351182117137602492822933317541567681581531080049845777024806399010429819495575248225105825803258248768748042757677675640161613442848204337630168404799604403052642797777655256835998987844078633089162764094441927039227075397328321855416049372217606605269893838416651706018800520071325545120955378781255197376216798660651281940731267917493580884788741208108204301519287431112994590414346631550019778221395767580435593948131677961217362933182045692964686863806399932571358390678296668554566425736887405197888717838167953307629919809418719008288410772800853748908227888916135740016902229980153479420712497647297133564863752268683910547167097242650228532443314673255980593766525355561298474311965239916641905947306587557374770889090807200755425627375258523164348419361724345016331051812415448676828402079998359771968233958017334538270399737345359250867629207452583755504614658948790270411227846852368825896249500365030591608328933768561775074952768689122559619701863191782186843748723934567334930929075302194453303173970742426802231911810096671685157275297026258493057678290632383714805192724206272364706273965740435670087577796850849988572895223481215703431729102901543970579066498402508447640793946970238947004220717482981334117409335759864621171285629344090500664994167112729461535938646320138768575198438688235984946139013110643580049347731044295587804842406013950413706039400129208662536091810747769830075137659166602881171626124198645663532463972067769355659246920744556437704169308636668106210088987057689078839654969564550439915978203606647279711001019788400131844216746798441142122122403986786160992812587294370012567620219382899201197077986223199922692965361762391745757943233459480838401567815066276785271689943224903884648824793647491359650686888770135320704768727005608311911703651346109487165301034862322590805611411404400434818783427507760097041327285375046478754658134094039791911946630552787545579667198896347543891210583289416251112264360421591442190738426449637708662869123935317040653152939972509095238392965634065066513736894866644224113080833327957824325615339312052652851463169426853527114179442852741816915879267075581954203529254275177703461589578471417779837973892981136058052491890375856835465287534238215313801250598369049947730060242852858679848545038749649253015647411922974112927715607722403521225166250070472845157399753738855337046600933483578574642943539336702503995566913304454397299931895055924599551854240746811797863813213473254432305061291129136212245602526871376868910886426276282339216034781126593470827406562954818065264122697427023362210207715740191582190394616876368563872699254048186003891222602521726004064716757909325729181148977033055282910249616004679525849437995297542784164031658767758128738806839454687359612944152836144750175981313908788228883802366091651375212143016022890894953377421500436724779582356571358785887709957777570616004555068344805253296834138025250240629034845740608409090049175894603142253759718841901046349899161392186416211897292659169978989283639530188768227005318592096946701114345422239972628922519228121082977778401117772530712347207356550352764892416045928560229214777095251893772207270014722346896967923811759259728992696762679501726344304710507762075171574698898675571684504863276526166298212936112688512087285850551192574070295792864370031912174654190907475523682815681034652746783326982855141625788924245804913539756702674815517071634577287500451610862184414248409797926676604704514160695462272974956567573475040687180406423380573688426082622158497193752609254590102884261794199439149207513187315428015713418748916054297957676807437525502725606202301489186594811722185631356306909749751885582124810289812641330519593422884361164963547819574488724386925401452549118769672769318508064396560183058042730296895265902651752711066082723018696193171786986193137642689290187047743644512608306495664755097447077501186270011435117551774775504772400345191349490341095021082955533872412738061628297764233931829509251482248880093824197600574982095374559675230492671454490741058725544929143537100227385315440509608165540207309447894905662594338610137195734421451171778704524841303821510423719738612798503111667032360057475883206661982618190830617819044000846038985453568582170882500897198765604482162891352451123587784266396305802951658263770164169265691766356937983070480837517427594915679899821920947030747751048279882162095745562054471618013492764203308912234082323176128333971552648087992095674235222981346085103738661905341846315687946927587271228316380255622461649108737781708461864896741967029716610346212117795330667377928989942905364805645700081305215314143773460273503958900085849638627359368214760256016421257312156941130305118726813111817204812766971130406972569629296422358295782686395058624453559732232440307467537714365017035044733184160488587195775302751038102125033304242712712298283533862922270467716691196975769276839496555207708565857332220814714314307216529315069440399866149852691126891911713965913034476272878397467442127387192712052510070882498053285495152957379881426137967233300095560700935641877269840100543305946738995086393328181443135747585116331658253788373835020335467214002331984167964563179456349905327639824547507204537848324632366629060921890716119605496876139016654927892867435366879882032224986134628090196313119633856466308897025974008708587472115878677413960311146254707428096951097016710400382782642356188801604424536231045681323652401361074277908879318596493333706033318481467013760851632976783326476642546369531881067299511737350350026386248902584964200415518339489968764010732708671302765082169223601816382246556832440763844439075856037816674444529046554340394351497740433729065420003218515789523901736808713604364563283071214170173589873602857681646973320766107705136124898263459098942448735636229994268704714756467881077913349460150221569709574828487640502901737875214067626304634519917225579446355535981798823970950605380726466370503300296696401286581528550486436282680723002651152438414218039600282328564418676521068122980425217239086448957655319278211095601894168669381666579563675583852126258309592928918038885725340140947682170655922196453410174982488587555477344086439636713055231122571502214502240394467516515143239564062409926488459052163510440313355797626130243305346544766307049804950439444301644548644404061338319561329154469460972078059623174786042492317009679782246007800756393660538532627251690199003862062954821944474856782612473003232075788518978900479607698731519177171563993034401286994286204558503019902275858228418213418125349242800635171570786670418518596784788553367089387758920116228251502099483803317624589938379191156122887167201070826595828348928584435067275538108466455336659117731365599686176014312439900410870270791926350184819401618575067501302303650638086172545185032550649159042053029860700176647837133874637465862942947990167344057159130466355495512180436739863169492586104597854085805994576904473859111673445778158660114568537997837279814905563939261474255939498652397582421281881720852992175917495042426416588821299804768278090816357252530041575287960060604558782216965534833256028324156738794010838329012460347902205467438240854516622957741482154802415033941970977085275768249534994474628139865658303249366896499082504408241773060690851452077795878931158605325083799257289895552364119408211729746062647493959527048033602150413141543644995274425572881412144953414960274425294080299071249235312946554435865507729880338818119277901461162110474082393578957619686958445936445422812694205220043889970581537328428369172176869300247083464427707944295239894452226906058562618944201145747981180264287438253073910392200318366755608883399819200444245181816202450497734190406221858582757729106078325532255378007797633658536671612480529143795249602302180753861332757645786508378875751207799763995426140618626878772144939133998468395060469320533011059787342987031840059073346404440354730133545559960852931042589790526881940410458134530293247191450113809781650781213369749672531741461451470846311056621141300834375308226332772754374207426276986373664490337819325962212845300506376408335263322233474308841210954926044416993604292678214550909994027757946307358093803243879925850360914810697921098222498965931362493579494017180561650513631940570609566645820167886118055432592549886628469962457165214535077865780271703780847643065675820965350109341999467168983417584959755131765552528142628998151445489949270961442298731205909519127819065742572907178051327377967471349068990365466615572587790472576839769836533964159782283049787977910673337109642925680030625761795531049503384471568138764630414786132589426806068379182789680781793043139512099840438765529047770314604359627106757444057412130534694735988928323969015758324189570599387023693999873266510299776980395522519303807065119419373502389389810198201449140397428059559134916248909664621178963401670470879432262770856361652090809222334782737546384666073378386132797691566696682492895272309570406364648988770481455713965992020226298987958776666040126708059841640859007856691824332969395547886698391890773415267906158736946186248928543618049965113950061165198391579446537204072848959623802127030232401545589929675907374895373138138566156080156267320637242583479242279869970423882101245710609004473001502960871972676972611107925054879118922474362324952555319685393597087889842350794537734687236737633950992976550883138845007077456145412105085098970582324426450880123621226559061119243136055554336397741040463059738767468845465031743690197993910402897887622570419889997814303138543884218305150935225840754890862998740898585934560459129546160803948090559480471037213527479401006472774214136650903967150948214440848298195044015135609984390013204477443714752727842838286565786327849299509657451869293533424536236179911252742431881238541192666675507252071464881736644102434279472517848223419040953572473071115621782584723449425088184549621755159403583757991204120264232216984095846160821191635612984472956266624808357548616878963603321994027864465737909518188142563939949317317365001971399274869389873089165637879915182493472736894937457658251247124437394546163442801899061080877800953481574966904426391931501475545980546648074292034529364923637472483228484486642498439890726619036712998413378839157232023762746862405263699914396997832885178669825056653690341794552363861113195695158738154996283711061223421819436326768736746728601787158620650681678355437969427728777161087598164246773500415343672725304255975558226860963132306281281001520827793205067482867690117162063397264315058207146051673390108649528588062823486485010980818230724800148457168490175052429803260057457005078998967307179745232679602269813900247908022641531089089429822157365759507149916102858259734993635743453510263357916730292162607487988875776098261533664509058049887096167160525579785611373504467421092010938307775221447747621214782809117889320201803157015879614593272116578985117759461552639458177312628631220103699000594501868185415775033702623519674323299325812291838445948734975421021955384832313287859050606517187687153682922011309942211513490917574241594888514956352210417868485969580891960180049824418240846003555559209483983803642635777899698679033076733257260032944489589364540324538539129771530814104422204892621819786464598937978206591464653131136633952654321351419468543699104897755015159835394491179388807981719422352868790618895167539464949573389791985990027102307227129806838096338589938188044608232395626853934005275316443726679852846473309059924029915420493619364861055295000350357785297462134308371891870031647347086040967614827092828519953781177660284955804805507246400491432453345943460678883768972125698791867760967821063451357130486121267368077345325923262378160221402607593641181948673158975499117667500744103010388342514569867264726275416345975302356757187051685682982250866504518527781645621441448029162649649730503059999023575445199936082974761373681185513774962106093799843370045157886219474576101881304384086096252883420919635741190935041293354091787136430052658309006385651283913855364991986611383536792938615965390943839281175849396110931661863895494548388249981870642716475863233304901092667378746445858233739555411494442527774245779853949788421886121730733802651379717914939136356547496895249026511560723436671646890536046602499649643586230696427023305913252762891266659590054779024383770880527184074933876688981445201528859324724057030457446369314830886886821902907232664011265351845731724233837252541933445346465891242353234852387563012036267451827345485395465418349639723486812914432474850621126386449273073249025473644883767663085529716784028370495841640589434461691142283870284691944022349441937306030533530092485509725212273796148441162536131419794392411402512733116275471818558347800178052791842133767612446452629173549219379236250467561580686239053935301327998894594385662713135273651779672500873282111395073532979261857016194557191552787172729394975233719496125093523452548974623043413428666149018774454435920595753970255799758448333533767614165822723942329337723497940963389176844069378365022617942966922662398128570149805393775765474314207827720321822944582389372335176771910926226040701538079490648684863117490498639367812780360510207920611081416061866659431425367308322628119883975782823092439117047377295366870734899116046912617070060416524485136607910911402031467047261012827904072511723295376532287557431608841843612334062893623295819747462108528094148433206259130169480594308621708216851161497272774350977371938096669362404703203192067289394823666322036654771304281274759342865729426228230782531304411909633506018520689772254610544121683767753386623209781205805849283816907826730425323703621295738754351721884121661993509979459829105845669725175407608318298999746651174245434589309532020603436376536435242414919550553293757333710736130418091156217419906914676860213669162397081552306123986936451673649931516253971795039542764835870952024866633554110286548382661624596716428860885370506767776018402044540301630602752950067828239468826271720417640308922437418589990953427463741404287657160692280782781413896067515980113391489333025099091501904059546518357754580265728578144404053499418302491999911703771768442952302872031518063834203411788143034525666501050954105985908441042390706365172725686707956199078664555277522704705874807499410783644961059588826173584677667841044032702002665586048319905469392200758353446718966968384245467831641111487932795684928627164067087204245942379146200002844907102664880472625107962223886736805249628816743943386792134131827946556551022283087511545558967935606106099530801486573921819963703720244256543581370974106225166697719406688975474944870058597695989043054560942410955368668998747331230430325875478091033010267863478274463704474627050397036740188445731886423048042204802967322309577466971343344937124907775633770978773679237855771763121124449506706766002536258969317979853559012648617938687873405867159661606764555703345902142658533204917514787232190159968893437683195760675425264242873789272992288627681247147925617271155026902136086098727182233795466352177101673498588191615740854915556357471155355507185413569776397188460089145804667844843656513074952076188093729637808013235775114518103054199394304348267368789080660887494705961694552833646837996582193047698699970182392492472984007268183546865739038040653381337117745497877983311945137588341211702379556380027622947614062504259038884320687869099858782466145157904847438681791559505166589448366433997297209154623123223511920020746798512193720009630238557234025620492866797130237871060412471958219661109021823178075794427256910821253181574788952245229970954778281300786827203955702551623491413865209564776313175497085305491743919343363193999555585592024887022494991126857556194081066023296223730815104388080764761724715280990029292036012845619092667112385155840222953858898283754865949074192611466961763356376919564564713831468737348222868692307854964353539174800218501532508147929859532257406971066107357318284143092377802058912010667883648059562573306619845729301993553524363713459695834375319046048084261688284288624171139247451101289296890638244629239643425246540427030724866376415812561351061489880844795657470646065991640473584004987720262301961819478217970896943308927569336256859862046250937915019313997663498639174002128270856600052542962272748208291893436316681144647171806445826617010240010106850673493684097673420518286433199639266564971799654837042723798482494263180084613329246772138434452439544220855680817372968140249475870466264080884894209204249195631358282441578828798093676095135937025543542816188816079446459631654829312337576858982375567735845657750745917352693557945589340655511963902165338495338193010511726517092753886598533209065320468731971453794177861895042666748572140237581674400041548268948943754059067470010220209010101509002865646256156663938792737138289977908720561187267599829029985681748033036963569134256798308034575847796392933575789487074799930302294020471269186941148555196361103150585747372132649624175998924502391011955709009193062381505627842216961026875154663660639259370056113642790100447843068783799524160840905364230033486088851292228805490668733130972233174408051221320839476505117604638753731254344965075023871359644000001186570400839940774667477915495742977451384094280966370287068061168109403267075029819015474065106584802991694867049610534459580805045462444244665683048861106736858888557026271599842356323070835239655665590599527255786242338378806891452285550363611308909257966704280498072642649994666845359812878019530110350358512934184879484473958273903243846692061854076804065633864241493464547412846249249689638675354507147844048114721219117126021262273791379039613367577307013420034077413221458846859846543298901241450428124196543031810040689075514275405012424375659791137529595961412948729773026425088775746541158162904614918531353790544096204869668250430360840097570811968677498671183952015947589666777109596670090633885195589938998926760608648371582560623670369668881313170812560556857663488608688503211948109578451662779249540709467495462242307744378362009526723943813862229824496506764966095643542778018752295671838752587671774210700016932164292889738394953754267292825705886841096703743873243350362790788261031392087523413790097942392939928142010833823915956028280536771950614541813715742160497326685200753030304877154893503590276474566451790388719511067903570900693487819045622766416086077220172013758321920557268435982666989128851320145850424817109628451047247554742901354715901957230821713207870436757007297742209679748538286354147117047317720804773144856895940769659262990645275816328870473669404857117181621638451543260622699666002707081101418925352073997102162327477836907408479390814151574354884769827389933001756584613984978320207264182605925639845840523100448171510044450920883256303030401644023656282294804832760527593702920202982728614966666928943568301068237181839213649829519554266872070033246949721456220309788693786862761884278052905728732029783241293119107280515534460932073160167640951158355157318348885792834565145543906916438240457199481405346984798125637166852195246541123790453551170932607871575102201269643876068959887264974802543847640809156067917839871620867309334337226303713200839426131252381873469810502059316777665642148662934419343250917629796263774767064862495833524160166531482059915583008486082432416200225505148225341766143304127597969180643173021446751589633936610720122583909912647877893864648755360387473674955102454157284077938920523434299725213140173206133698295082081471329616061965976862061920630987196444111409066339489940561449491905550084723993037558925453759116930354659295599887225625319716253654535418684291510236750168095740745700518028859188272028821901295188900738929680676993516489936437514736233283915107994214855776073554970099255636405968220510832447939326511238018190479750036065532467235618313390433088516853982627782942570392867687272565048500149150898796253650248758094299085544975574231957899095490923392034183845551950214940573244889346271814725147120636819213175416677042611760875674878900753637632841219450967127228653262373026319651838640353327678328128661917350677891294091924582944067648829998436076063685652045423420961602751108256295142367029165697012917700437921550191278942630158467765767416193243483633585445004280181533458295617237674901510309351171376446540203439053460629268491912588653163802445090553983412541362412644484795132726354062140595113138346174131755286631190576433485839099323800537000521530095480161995941663823432789333675778342797931320251040488675550048433703021934662427864923399719916124310589214069422309891723433122550851665208834791813168552066674512421852203205193637769538783847395337615443653735803792215039151516530225382597019791189653611450224693173765301877423045573041602470130457218830999158703972542448649795880744892791967151371788713410836007997162510571583118144084437050544362954862402351433567115431166476188692388672737358334612451487336068735244622119953026260408490784152473351075013276469558821891286683650667784565287874903774734849874836031205789842203778020126286991676412279974828200142839245047700294850147324915751975038382679028965601935089665668328889173140969599880183590763638877708225599953342456615363708430625142157902862363912171853289757880683321876413802852565915286196394406826808016320175273838324690291197411829470199308123814960532275739334103497283602777342134524288576761509081952045603326957039479663788856802632315140497876360683075442589716549155904862598245635021481057634462874472669807031689609773870927085204733732377134009753735030184728552266940482600101114764969592746320471989019630211054754958703261978376856341929613902256271582987853440244587071839285758232853684666482559030872743891342621171051138326509708025094895168681074632160478382073966920856060253724804234838621704158774189287262731970317556119078340875398266880918881594420091913437994794135370624404421177466088787261740894963931475637481566782387456006813698255336774601528096393360131112497637534181920977001302435018400784389529324443668766474144416703085059163460192588733137653195112330455030964670580317827140602549883571913558567176182231654579184622217064628526924697728334701193794632528166795038730018730696422079415454089869420309023754807960625358210608084201891961037911331673334137776620908916592363408835714225739088028736143512897316882825070543851965570039970656431422750699323106017509165536120887480896508243758405689873953326237788509053260046277124394239072659431501749650212974900147738652775377769730157838114285121242935137027384551701106555309082090281659605409251030253004950004875642838952318636715979879965098431629512148993974189217625024859033536643290956391977495431502111379907393591850904409146870827965344379603249502405272265147507917546146853192167120761567275123964799449258927940635421882121753622715673192373788060432323355212581200235217862724031531009700289445275140175720840222561214325774217455008925082390793908846216473944956745314122026225682190687864747908821974981364630202669656980810675588110935750728753673792400217602634203776417679766999002971159413112267234995524160848784690126486419788768622821884731622495886460890134756399094771154577960393408933633217842870353251770492225734350108553967119541954286637944219158644433665048317277908804682434170280300802918154092711422932340357252003586672338050991272539122710948571865885815426904029871403582107165709903246528187268196116063012112178663046631521534725374570315211680739751593553507497510350804622156747523723118087407435770277732040230778943852206886572863244691254198778592627824814010688142178895554793591158646654611495860790696955073398505249348804636652279899371772019183380428294397650428200552873311106017857027585812613776848810252376490311777240052962098724900555898970791560089322241967506935608637375566660448460253933331369640665898475440410213721193797460228491659847902617956265716982887333303414489142077643260185774221216046885186154814884382509887696866669149153870134748391152875100610533661680321631150642750037839929186521698524021199510943657501124838940746709255575829227086095352404689266123012438609984643481572415899694785388672425674304762395473298291221423530049790551223651531956246776411924800821888451729271549686372330558158817082098787956092880541298414084141086816761987452675914915846839410700205608982567485705297505455926470200219621782837434078205188658177317014136073532711241839518995870876340506449914012629073922844953214652111489399998359961278623598888010302682017856702885962410437184690288407705553429219537812363598393386829447514444159852675450757515296169631339859263410380739806884279250840769561833122286266049575900785096130678304831050014736074637062239094917502643585747577297526012711674751290901974202689959972801282551023943049232897911385053837145531870466806437619870327626221325841216674872459984575269413028284098950370430321947031297468236808082840215594708069810419605092169080177584833619613752434639745713214195385880534896677556968153800012153249610194952006135548968769369175586258593811891665166744190862750259641196452942940543153921363839793380404061865710484549678226877453562915144148863475282386884275623990922968230319933620083419912803182730251675165754916777988389262423882996376223416192529789241296201172226931665923047041897998659670409073912327174009506816139629710104990052965905799614119544566661132347794116676956915830213375362054493724392612235259786114645298644273945764739448414010592669006140752320481039599782209452486850481255117844530292423376136476165265764344758802286742368947243806797145188632517823152873874432832929892569271616774912262813706079928985856026791428096232401615360432631978922376037263280606421086769392433829036680267528129709503261465649835711972659245822643909036225857466442457379319384953852703313682941758870403242409352072161317475461070074076378535612528547934634023791505125633054269979724090652102530724304141413916558737600962826525324601448936950897940979979004455746038631114472537176595215434162425092883251879801503025928746658320642357245638755808102139147870359540178326681885644396578990604068065368750166912161026471273417658174125471019309113706962222660490071491357984810539605400080448983394616962389364441673523873741901871240918184926319172017766670673112238348183247548091538701696845607425271427657741975686987085749567601002127462114080155641747872584995278159651762883659028689698832975939203148694723831137159872507444318192923812766785352286771948862399069806461470060730397843669528737000987516769879555387832962893269553022015641589848295707996512705856042970194111258876119220739236668072795400445089708080605918238598092759135355461834917342867951793339167857402283465023638928928341374758201430212105111548890285227769476253020843617422230022714927481646729034428278548546222351675480476516251535697968253031491118450392461197237488595130798852980579780571514236629078899403097688462756764014600139627252982183754735820277291603653151575077359747118810350468732902636049483842412963951549845376470474532158261875700554855997903570454932314483934265643399633183138778875489194484600539338022556165065189456588348813185976811062653787097651448688222239895174481739579113576189275563862853375565191900329031033168918691567635362576893684505764315111088368806354903895609487374716480442374528921069731363765533210595921687501188639018079228992339273035520681122922467538260007395152713050525479486013076944285572239924531026060962481536314212644056653808229658865187581319283390453559046724411637494622699926533263174314753536283835236611003026085710524210539940692967022571613809794085431888634282252717217382302500686474983817374061535235034096152919735901293302418195417978678509614940775647433590646524629425319455356126856982947341057379117834841240205185360783101014086853906592818674167540575091769501437642682474240386945683512656302418308187101134416387064969091564151895469435847935343957176801627050273955006944626423158539553275848967332880118617415399602691154636394809167214114130254372213941580836734192667053673424091192410073616084455273468662279911916283752174136094545259209426939578484548630449384184722125668444705809174461009345948170770083546334641966840785061590019873836902749186799823533390628078268920175077778944086654992303092385647520248285152006189060366931822684830889159282008415667519137296145428017982922556327285835457988322582308469563007844230032555477085451242642107725766368464142352343322257019878268736165066622919380911248154690734866490241338126612705158699156828025042482777244826517313407625095241218270601966898849726349662225270082654778985055965896528819657235752564479258059395885484615732378371169134587930831337779732152816860835826003570971801854403063210901507737436327154872990421051501225026072145105060765520683182255552444696850373054514094841610969704255253420390946732731016938110979268910824370708550598659050672703614028852151302679516524103735334577515676405221032235772004945097778153114325705265018084621535244096171894398478384621597199467924799626088202439153459805823975584351708564319088896709044898693005309287098030310772100602217120762560511503570804947907492373396699960650883838088771034899588746496298760088597350402984711240560857288910172607829995859160890718703462526258825921832903265358326053012785251549924004765920847200863865743143368271076193675063325793548258581239621388730959944803543170125684514666820633255196186406407195765583008200866728536519120966578368635814262709770986347545625589264819157260199787966037377072743517284278235405500710997831173725135254069726398921278613570140894381439643147349332186879432379976246771225111753103155612711358163625569527914653650050406063137714942888061950139853182965235716885764237623421662409675149339611628335907208849737244727268349870378389299051112915247113555866807385913186471176143140867546036805164169373219439079765129848194342102091117853982234822831826988091717569567035973149052959282329112687534565748448590993341141110503098396933023831747169672641417579465880668004201116911335261151992566378183621920183019774297198175473957399016770625158979194046638499697157243491689378683449180089271829611782399349882815313521817926813123576195017951229480367014306202926395397348341984998061065464511311094204095652980446490026319242356127253421374699156778772379320245240961086918308941494115037576907736931891223656912716526858246264741619788276970817284512856128445808205643661614537878829714170872054811627058052491044110116536933077704200357990914699434129407701625889841076247273953542946127650307906675788717594861941804443810811835291091716746883304646761079689657671912044390821438295093803015833017025533910854625163176673035502908374381581299230894817149805318820701712745144556867220688290208761580932901163714881335072261359783265390337026503433720681458763462501762187090190525575449005901275123283745087352814197656847245927564824748132706878172795407695927832527351733666076040291478828740622022159397314326913471682024796377310822595756573034766373051548773348523231516427907751973286489474504671345687314836742626348786057386226994189758458940092942422712784561324859351502611793032525274801222423492009023556567607849251453998170355197757896814732244186018507892778560244056261282489920043847500214227716329299626959193203244188068400285913903030795781573491402135172667379938735534722620808509805281055063125328530177791815603008530232922666656696780590578615851298713360343349594910247922246519096402886281590981002908552478391058932251542494719449213917715341337259000232792595629022308293210767066794337719162389896065998595460443005610734079298084102144359735343976961251249213766647017075447367275933291547939324038107922176617190014349964489188632573017663673590084751944506865040289741407568276071921193942591385362789697747097269851067578915695179519199561151470857798462087603165157798829467974317106389750507392901704265075195235462177809465461858122437578638271003525510423724797566778401944974915751514050581092888139431189684589332841159164740618093715845199728265324082149228955200370081082791160788392037533001112411037528959237266915738114654111554971391646784091660209233164215801213210588253025533251287780757480948721729808466756333388071275622604818750311145627951820759715831050826437636219415359829315443740091705894020922535018367252080622782846260875548791696173970092664593664178365610079536580269474373494181257657431890310009605334364443341858735112746391120865688000697811547899513233364240113458500616747956154489512142817104762824751161890631998868323648046126632139567857972023099444260020451068319544058582011524338165309133387724830948754487564271105925568208430491236383497743568420915592607244075455948561212716048328725045180037097025946658639830608296161549551825369843448402375704938838150741741231712163616648888568650013699846270060205644570100070326654210142750664860714781235732058434181540667267875242756630729798987902036273263524102169223804917804631369641173865643381495111332819051346685413570663143209163980499890086853269260744863686624280038843736728899195073645231082498636992517514850315347926150401051507007295693398782006773882573899590467495965122331665155863993187769592810158371925842667708222717045955262750436016588991595727718127284653927430006655472564700592010528717639063562592092900868985727990558785452533733239508953377604614882436010357788397345128270214897056199958714442887802930302351693345416168217276916196136545978336155465507091630513493327273710577805375277351665945671004976061660555130731020413122232978580473357206270677337145549414807697252273249029150517941420473854498637465618485860014586278904844699690145860621254367176540234564153840092874340956432902191917498581706428258037562080291783744373677504370980743170269779276513408023384332394269850185987205786601302705199110329413440198693799769614941063110257484282806604250843177088846340607310978735000836742764276265701820624577490607048828448934650941204033362511149337634038985068957754013600156177227695458044263912445284082811531666826824528887683686086830337594889383041663673038793550730070606362298280603379411101581682694915416963730364961167270363535648464472456800953477523811130231396969983285294848547146718494541452085286022238493809586896790432581443249742348433802250890458601802078137075133940065141764721002054750873814073013367477258809804681873249125022912049826929712139936909354052478081030589927083135699853467252799137923363421957943148826709027656902673966926453053750289096685816748252075969291809120667380938133253412453322861050823048027114233873403252233047558994333286402316207011959796068033475958024461159979735375686071128373179885348493110835919710581228726908603844837857255507697432482922401773220817103886175487043589552399611460228099401842550493461465297733912469786172427415577731716729046170041077394796362993157866252621104763256412432357185493225022824596353031140203290527556317755538976326559693283417531707202653299136302494267501435457614603258089143057059151320422446080101566880856499485333899190800685469068382761255711901613837081611290090696467290127243673234497745363770206591111300520584089255446980146903649991012865155426153194632452772441068430634115527328904443454960686816937242612601490889441298629915225813646036069923397192054126417723782771095925614979394716714092384226997527093962715642648735416749336450268051427828746936856763043405346621126755096159256942220204137656706817343303801341957931064563518042399278002048391162482129459001983214528526298493322801841427450739591674723332485256521023850576534766233268575513319313963062528330006191624021663516181712213395445980271847429534193705888240342361873592625217068524078576358709081265402087592595583739058301141094857687593521979715420004632039260979002233876579518533575503121385531967458890846584829470999575595034614118288263927464189656922038779417199047249873218114061861289825826829898383645846019660001016524554070867678185612650738060794978115710153954484729554967765916170177588139187576420951931725174513150434235320827010721917289554903682749041043998345995027093564057283490890264297355019922037045934570849503362353026319449267226795564801797255884186457722360118879999835467651402811208680490114304739261166054790380710372470210781126413396241824867134180614864961915910945521410740957122491445664074087890574726396301085968399689597391877138440825359948406104190496963126663568981805138202974641179192777737247063861496805776424765893111326636447150030385175842828499841814929956524671044541967091348140955078060727342739287987821023797018286967688718178957021038552618489896533950556230729847155634749669205966391927132231645104511967816661050416431242436334304030112093805227033947052227212000150244064425522962988660258532784127758506618480147854269507704712986723469343084800712655582744501886845703294451603952923951322460389114329930126198916572010663475420954713435446065065087899765700624314651605691777921077035407695480267853487246310513335929725222205513652392099369287604054451762545877644311225046516951536748205772067002302152301888837767581246055829053552858789692507206854827563797898020096475332760962400712314075519364782229508976480911700995442948413168353424384029999310484676599871180936256949735257637955147950167064274942371486506646867939369173283557232271821410074938175743837605353218915025988314498579538673113656731352438242216728336313789651615424981647771515612768172616985236638139588786719552143928581564344625361768563197826465892214429486388421505348141538673212314389033072999409630605983775128368851652236228499417445415423622157302044211177618103149911768644254600884146413458388899846509453634558442941548810373039592069461779257852698009211642677257628797456127198676665797043724140029381247551686946289739220034477966761016580486548213761244222653416252653612651833655597348304340825400044823046761655821609244055561745416848014113237560813871752330797059271197791867446938379404906672356796956217657983809458691505873460481612194550570993325964222998660346278193397424516484215526012068503823722512529069253890348653127718404305856538456910817791154938632288333951155414562772481475707831556746171324392031063646106981449394569640288997071520008917344323738505201039547500124193949518305486688701162008649313126476489168744637619470619732850331963839922660684390701076091672338444920529160295225638451111592693771523174023726087721205882423976276392060278136240838981795667811944265212559799710734638960765223840923569984319532945063348541248761047432511344427041999294257833241501593161655695208714482575346683385363011077310827908787970370864600029874792458957996185946963847293408073916666270176038168379981906133642488354784075354309594024149128494692543210861491205289384205924158384931952201188970647721600226368215800191822375592595086758281846612880380752007688278794782975934260085308525371679242790716892360680459752820878624325636351258422334321274240202537826286088551313056017193283088724297368425830790462135190086812616151406131254043637353981112739313743430365276568680389274166319195495266464431120927743296054766041377736566599778280742255306977501971226927519885270331900496725019584310392431947541321359047023290117508299629121143916465658774334316217308065347807168464410802579495681101697815976532156871888704743478295813800170387353418243138889587116530099062266644446564453045101618802422005209957023058684649200623600215748565233046255084884587510526698928451534047714426265293811896523399220254939203524418684122529394679242466842515671426387448510986816114228630926579010427289344086445694407032735375659728995377961279407018749066861213827542427274304786139624602542955374295668379633104859185276464462777030588138054294009440038304426920242726108818776291647432716244559886375473123154356988860359165014922930198252997882678039184383498498063015721843460725587696533567897844001932621721153456559516325788900603190644750982865450424787288970081159477110164983891824635049639181395681760921319143746956337105268107132646034437977740530835512914287519938726558792827112622905658936665395457770046363515019687912914405846090130013841759048818672563452739476553431732634697912055188368684095387359737850882792929608520616804692029155270806035541837071572515872084108743501802760916108789390681131585814538712706037705362124940881244143015375005856007928463788444547584892877116147553294272557685505974239913910520498995969039636595923648703815014080824087768939614400987393760924054381804159605135222772386087267392537219231803283469994425990038603878297275368620755239283550083828638028665791511692436185849602156466603722682855006498951513806008057732016450618782377551132404117289023951551385174501025874268220261506826531920557929109729570611325703896914369349423342499483647477620883641497306606571410381120115163061600943732752045708072834748668502079443693783656372655124680228020036603267669401523046372939501014033994751970881217742809674716344297922284111924734809936648499635081424300884155271252511985425609037730887899737695133013409835212728108027392676164162290245618804386309972556412624508293823173369935345575769184377024680537017644525737257057382813976969400378974794669342470868185345311389932237231594488589086350396255891286497462437800166454778453127903895365273646531903317538118014766146146891998407277213883323979929200531111785488480566711008916177822457794894392107453546793656451139112331588710644036325883801633099108598419029830709317317109124980592027480765232847829303224452327103406022258909966628765167680909777048141125558787168783461376831840711252733234883907528946791209658739017285312748159232309304432038558558674752792199382327329098981340329313183261427889729283845637838162703741603441267338359048920080241514899840377713413459406699507332085775061256234450669286713727669688285379954732206504187655747478646233600210832280144501806401652566053078529704075303480440213589909538088287073310293362852271196423798428996138448943978418863232138255461466294269630834642208438009104493189649261757552360018255243831973446969083764767044056813555809668812118509033019572824826004323350516722623752762574775136846503598787500450043360872428021464303653960171310243707963700405938179915864254858769336705642168997156773706977370281151079571573638919524489636650776092720936591204652149545682686212327908869914576076900732101135291470293131048331363877101132701358077373260979747476113201754672207730401075504962755645354194770532246362588511558366353363349793364287124991928637016014099753666974366930037886104454630250252762593859070113155961328141621221166336926338849455007772475790948232471187583069043720833673999030387150560223627632153000302172808618098890899715400352092350268244695265883800499947069126241406805532077353008885330038196102595115237227476335871679321708540947418225508170525352842446175284425943572382060967058063969480119583518238375084729755631820201718651504519199556951953011452894563846945032260473380320233571170421432552727582125517359261509439981106074463890314506088355325839553848684536328394525748405709393554247678235052753517682527538589160812910391651157397661956514684501761908563542576857555175709427825524614277902512622141399717990680959105471224843490422600600738312598936015454738679109445528307553534006916489994008069364447464485593031723630096167880007373335928805628527382787542873792301990627089965303868697062256645710309659621300750856480944564888820276308716925606168651368831737835072876753011903655083935946958171599727417464367369768273162057014082766432571718407753187476928827027451314428775470983627030595963124991939894076103500889474651361098560632431062698848370884202326608970083417406900940330115124054682336489961193305350077649770175944516411362707994050566088887735116010793668313671146140533453973661073141484199132273870898228265500844932582098798598251572774257584699597178056748048322571316806377820548991777121381045350334815405318589663810920913558060818000469027233325495385374441483272610557234496531537337044537914906757693805406123458920474120365843667900594219868210365945691546443775199131975843223465206025031727805708833264251074349898379801894575032449118067501238643145435377751672309169298294136410944387738793709259654532979570851153391222480866651743999153442714539434166352893808265600863522331636562298039945389372645363065377845901278211477697708156125657874681764459030438541311929760711130565327480764389879719473797547444937042059799671494589935675143036587533132841683953989264350191490937939328286898386466972148464332599278333830561868548398785248857112812393717261807301571482376815798610574883511278750702784933862890248275813657193056857454447691498254386877205692486879129171333193286859202566005803648665295049126852922076567245251711093190289391497889869764367365771335736139149147170315538218592126510086692064074417041815832301273926679717280565966523328906234136837547624640674153293329269729444818691660921406535370853175816171043761182477356284827708852708811009595481549003169333607362710564513202703649112701638402438435321206543845063524688943963362981519860214880239605759075597376853054153364356633492048275828747533880961683078236474850426980421802760256580280938598401009322928190000370661115366892808165364533006598252828522909759698420225388440042055814777642101639545576836141997348711751592635743953742100082393114747988995072067481521656523068486437525894761885867022737549609375974543711588365456559965512568618874571252672380238398645906867977275716752899109720293033445596730784348811763736493459295423728504937803960234892004375757278690152629007209069858408023733556894924370607265560438874755555018178571739957870428825087207394318390579965011802251009857036493380816463941118047590446385529358739977104803312221849673887934119869604350839283895560451109472456534379780953615561068568517514952955312267974279272269208212136110439298214488277180442361790539360434777481040516104102687374833774802880998002067264197141868406432970396979636821648983687142279061354048039036722275348660646976780329685862160082280178139497126942837977884386434644359313596495124980755575071523479644287500650215547025531269239763652623182742270920995635760885116567678167006710160153151921088894922068892422446441594663548271232264215847522309849655461727742279568400163301628444636529219344686971911618908448423167968510427360703987293611332926899556547272456135096706905710983249019596923146068228113520990107843302898956680132356555638157369693984880195987226623521840699342314909737766189944188778543607274312315429040759226571097338774610733944187866678088203997310738381769375791632647247276563984935664412015694425659940611533211102088929586922748576803471620045480336701570631344559033035856835386425019405232604329770036066380282935781066072801484643214211993576877804342476483824678791735875692481321109191348051063665936788420087207720043455360296571349215558259134924880488404418582987642784676373762704785289126775000755076848029242371945423209831993534716511978031170148185202471676829618513917983920866745308932387477554960854757847133463669717306460041974244289307732881367972089198278924795401166254465655207669953876841314190538983164225485106717413514353561210452940484488040900956225013376043216100025831209963761885293065761151004862557311123729100482291689609133046094178513908218133370105519336570607674640847504320979143785840990162525583846335012803819208577337038382831241740587792813049508544458432322343781212039085875277363108839648301955288388231201129159263090350164193656661029756967181311748648150500975393924238292290036137475365030995924275416791110944399144671608509280948886727654298621552032330406896746693735385302658983921966179729442701997386174141420237081700830651112464123497871347873377479847704844810827364571038592180291871667920943924110475603714417570459836434153682933215251829792180642401068320766809820775225622253749307896767221450212124927615641108532054728651702890780772410990647162642809115261623784004270827015913143723901579248489101412171661266028212695885620001484526845888332859725047232994889384704137656280321872182524010379718646701918192142189173231563400522662607986954158594364006304584214213425876986523378532963157960609870689932096657133343727576658971228364792307287053498673866954602295862960401469222558672396011107096679517977268478212300701192763818073383862917790426035444167609131087570401041199273804167451289024240539259578839178952605849367695391875701109682590210244220616249840963055802853678992359566363984052526048725162707466142749895334550655056194315040804701998258975652390948624336740850717759790331268488321159439178572851682546345381345571642756094351982110659511240646945870865892760887166824599744914075198586404219081320547988101317392030276629989352576653794262933663342362289435093742169105517335237196441069122299625980771564217180934583465863826554768827762580949123650969516740336733812108982707493711765835625889760622700303705563056340912361275738648575492910672805575310928854682103686668027433937908615451110242975390575443876574857063087746199185009157870123382268099431016470064380715793738053889787818053609732329893886123210282354346808110213324103567776980479901508429446348377527269027435989048698929666193166141933753899987496517067168516773548627281958023626162365478053259365503283421995630309924307840307454826703063611399478096717257899898928222183373086032773058413764505437916726156688833541538598854880008309217847431258036576956271425325899173518243188611741401200774572958150584287010882578194173769567034476690462500585404769339006581080250095896471183953223164937721383108734300829023656586276104894227948857368240209796096514497907647106593156945288628560131400967683761662325606311797269592327130785994945447920201471661691184568558837601811518250996226486287294461632577296679756975779340370417839266541509102517276046515952407442424940325592104609452746166115288687426316852200797279875588706693717796941799401466457864063334723976109120833646489242055440463313846002828012837336848155386059400421187969440241193662133427702757820898878531348209163379371670713720501866092130386280954642656153834244235979682765263856110425655610553155018039198290532994016337132889779449537282035666558176880324510227095481065621185377966120648931645359497895124405238738431160983732162350015717548487909175512151820931332776306759670071786931253194543764065898231805915155898559405298768406344641358376389284523929235386355558066464902127416749209627144158923051163547952981485558419375539079062651387268941404866505723323279329596448336792776245258285526655889462324129514138467955581741749973532958743366603099505121894815194854038648283321680984803494298383656376945876736353617381392095585593053724120679778397356213069313714610417220804449807077423430663983291508257870347840227124548938792896604649843114457121879156453107038955270846885742877002256119609347258310346000665428096490232593533371311524816325354563821789183301265294385480296254190786005277313656868023364645611155551959132973367000043606681326319905181544024357323522354271299039472383374540765046674703050873368233231073505723865403482423624611539436488372092922763050680739406923946242464957593603051801766799717875647570419786880152521991345047702441516280387655075249820281657349438919974513731450096629671807617929971045447979521890395666805820960787414212995713371527136262446787986211288680027527119358613265322937308756146015565849796744662067885235189247268414241179421367577886773715977316904707784034224863992385954008834097769293809522887980949849313982206806048564064375021986162521335838808731431061273845651630415048457192258007930374884678541239783607575232918032319825098650496388331953460062044363195523647296234851802081374448822564380111643409239685755766181084054215411906924890812242752135595740285150461202597313501087123887699262553213066627534839624568633470371707398824798430514707486798652643657368678409491084276010142329079805615898336679036645146045403364162189953833681434945371874777064664158079168981542819676481597937888784282503844040302064118376860762301582180325878051074470425083628599526681762479749080353942713156586115946437287876967510505994855791749224603254139778113323640166429501457098945757176695380171000834276050513095675528467071106805091883813436793200988691521632526403688043828612287940263881600230684729095931278809430305077506419037300616817385540215534325481923698808301774252770834250783948448812014257009282923008245342425095910170009465572172656457400777872758492687591405124667924564005085417898289306523050737379080942238676918400256331090554773800119783979231945137620542120951210978563531464671609059274962949189234882170394445733861026278522970864693195081071020190664508414256423074880023916478109521609405018580287954424544907419999715151904706869524657412471963445211113293117122630460035615592958744870926907143239871948763971586355337179692263339850359802592543773066419657609076377522667426966890438938170308476114951775651047866517466476652334249333999927264057889112771725744165139070501706223763161628580712631401361556926364868245068718328194850268427153808468070698603574715851909546754913185349192590828524745503448648739870062785287374083701156135106413036681875036929425275063155761395779901832099938432695360195294125859042648143291464935532814032784467372832609518366330250955359898504134060967928843110583976830944927448228267627262089528746349475815279999715731569094533258342698795606716651358972870881733757103380688336513346995095357670750249328935953375295275657057871690086909700324172536111989693705964256540236306723456946722323800490440406285040210726321939850244871804803814262280938701459045615547850477220928600921908949016300999536254520579892921625728547794981894416588125973510334989309412631782304475496616355566972041990445722777465530300863341854996190415523445613178227376116141201886817541216739182884597171207008759144577343007167117020046197609382496698805574594442189886426205358680625420011463300018894683006622710115297734799748568207680189579881557012825545743309381577742543754223682580097537960423905719762547814295053150143158421273205583546449877505556413972272646683331110774631156408293872001431794021610889793363375300666490748935884875007151019623683846038877150515731363164368781788898064977377491810044145507141161237787155258220835288186857589539537997945269266831342069614696968461908966488601660870058798982878322274547836375995394048030683771842456278508549680359134829382795253158873874297114558076947244712183211654603377884027238260223011041448749533975797739383632305099103735137779907782414992719301430996345238132447728325685668293690115980881683824198486772006008381327471262578589974170090694421405296241694676055801460653327600529481162107729111519338887145218460816161058500646441452081357640290764742932647992200309505085599566549968163245303007456145974593388107004742750100570088653610032996525539019000716724610535373127876770616143559336004129321034941338784444070026008606452889790961824248541444024499761045176825503174501846248415886100840533983936858999695255482497058094672172658237326912537474773740819489690618677054721872956798488389831695644603408868757845134596929105106427750407098248584283457625099688754185879488514011575496500244119077376706397253736740885224939673722165592612570823874760645069020067192599828463974621067129364144481150031361771681279685143920917485225331086771287358341044854703915895290493029004564877662554551518279189898981527320556724104823375109275866155983493294368503405098597412295895951815744146373958183924278775866279142021217160238903067274972814202915031744199377815008072947403083172131152973757317365734760546972346957218703237963057540452551674308296294346075917322398624794434313039813393144067111487037828889745821324061826353025375642866597962186917113806442832189342911996731128616155285646537421638792973876913117053035071258924297251969538255619305335045981199403018418143666480059289812752860662915323057556198720235764870409252220545341367408581743297990666900131710802674907864695804938053665723934684618821135978509206079858839659056511027590533933455856042297493677629176530933358002461404195430667194766895373879449973624103321564014809636070907755402487326687182033130364990115407941485285013269942359717506469992326656637750627266982117109729597217842026033038259530352926872070061876265547867635001047182531464661120680703969777674998160815260759194865232922398165441097774220910783958687784431171901148780256024532692306242355627844411461896297216512555252200712277108750014037354149810246272401648324933335332924611081522673013376863606245796237861215332565406897765827107150750408671942495262647256228152531652526482843813071387803136931861073118071003067247218389212511666925532523142406500806949360255471390695692224042639719238670569772232553315279008985948126389465392670919613329025811315309621302031161134445163598607481168339901905756902883410398166322020151627857087404618035126403187190165731722224730589485314178868521467157168795377081987130846934950106929620184429146370440818738856944669682272130968460590855736258613860012760412716318049816094532730533571075400322233546149905759228313307285131835513506479750991807798824375084002016284576867498457735011026044870911766557952843716419046310152435502950162923909067429511954975859086644612949379243291354575397818595689409288149478590679660032893496366856085094924168373030989227679300449279007669935074656526900199700427711621287398474192872923015830443706328758321722185792459423870378686034534643934193732349200221255608651423318758570129465935197852764739727430661546390059995662139143756306877538658705701397539651630702542711163842044173728525876724619735466160298043775728053473091457880143549448856867215637187032299707991107233779493261972587503982890459936713662109892962963872294750188020573572027881737564400454462725896525114884041198194637933446806379667594819403217061371262608544193943000409365852602594355038025299684155551780610439220518804722793405338729032092737001912061312706209317954457837624092987298071541577060234104558729511123682309024559070066531981313546647392116647447908349500304939141311662185142930481531829129213498926833937808073309560604036554215617664957564498427984499065409508248611115350735245890228274262135046116119013929329739377650097335566515506113476100024363598773105974335490454468628013289611204441746599485546572759438044526406962558665484800043154329837064921736064795182905411014686201463266288595951038415163885655594013190375326286987596650913958956504393700387021743547884048611365492005865930110328096358511150912722311266807859476714614262312024158036862138081608096454945996712826066779739194580504930883357512626395526784978936394389778123572206125376963124817971589502971523727497059170509866487489514937288102676426533033269089247747145027921737214695907925062547086189359975204325123865958517496556284198721639743426901984491873726003656906531053801254595967477240412000925940896044427499042370261741451022683379631158717705179179717203471308275317175332363950622458592140434622982272087579652087197515082711491228885828654738053986835762978535208490221657216267551070390951247405672049669983884707751312002957727812386662072023613364006547620911993082919989606366028443737750960735552103082488247213630864306599996073478885790479269517538584544580540808890432416620998001581753174736922665584611863790527149987790058107932360563945185994065500901710182695308980937222354187437757423202531164102622304359687174171821505237098846782941510554883250560332870918050669767432579941347261570174245981128807262356258677205955836922838573275398044524543894704135347887426144751290173310190687120388826082103945421908350546977667938318770548242481347090948868665992703595387705514764887577301088924764292384388935642049670734453185011951674388206913406055381398861151022277577213583558155711649267901305104050183928788451638282315812823867750251009224656612984933441105319490793216432826312585050713480436410427060579081154097966666742940541196292338021890442905092254228579991656086452620556081554302635530642120829510248406481162459362859689460356859652861170099188388587779376479916216424401541003167097179387924294937365594233476972615106842257399117361495474474047033629354525083687876896436744232318722081860627096232587017469901876917126935982778995155922173591135008754311798111515228636555702994820924758501988272071396698945183419885163094753727869060121476141539020760541413801511006547372640641130288668868428903689178088744357328082501593365144648348827336217856219951587004444288217343170023395809382973677886708646992213939584842814553976453647463461741803798409194420510503491152697193656696980042694879843233116429138189742906119947872273429682251427351676807252313431509381191993672041840791873794347199133964221696614173006215283131841168294354444840339321445540054880913884511013120881553695734056305721263709642742924745619148226596178885109066164473612004521551895639613119329912569655852654959734108753846172013303452852847286932208055919530035212415348087290990053174855832022974477253750632793983855730361682521039953160619076035493778420010690103523989607009583722048329067757821961787795675030092627715173316787212645869881062879441390199167322745661859464610063683881252401621652338722608193911936491903092946043924279994598325140999884660591719169023854594440670404030890363371811241546921747594476439515813407993381096490747637978914953164467984343322873274812608809095563000376383193734704688377272102486984687914039876923933231149614062105289037086719519739916162245965935641629988255587516134149453407292626648663073672537399577965854354418956393309418662436632132747960938161152138633504452959069305457243885918288745581880844285275447980611270566725779093298023338489567051626020157131871589100684194137693261646598931697313709402036573552334335465956185301855375084718156569318516283696561428486372727444740261010226846328804762122194540997562049905233931524851435396255135479824942282692253444371781302693599632276714520047018703339480435330284795331412850067116155422063299631880443299847199469614943340947984283272072538579071776764568669737349711718412555693895808087268924018082937067048259991618514312111587999644724136269258097894931248650060528703348361449494968633294404511754785363583396532430806345720565833588723131724267027650905992761724097174122895136602925899777878108445410686316133896452410442409990943225803712812698178485545884649186466810976496254255369663536444192714020648590486856730539565566111604854161571762365216500626459789467464048675745862623946800642248799628332331727785658402147347157758865253308515233915322119107014102881000134346991457459292417338847715742887006678076345012861773168229353400623359613848271062004518866907682127009088257518687439399023709133200097394210994732776503050670530280682603575061989235323433423606395963585140190200735963916065564954182575135937867158616964625588440339663236089297275146287317738300752382863371789768748403671827514721382639800961492297301911354910227969366623587016147678479142111253585156331462947387704837630534897213755045305378906972714980148666646459186252376116660742166271362820550374992328584155354689085884411645327403091821438451769007225245748685757018015369359165370371136263025820127343226511812106135576255144424480294663488414041707036834553508240778653178301095545194194601784331235046317288880057234585300569182456503295921192286926593987066293290276930376832862594636140236159597480396670224061319765793713437230197443075471090326111719942253832878991740283875292591451183514674604986939877926869665557085647580952219535970492684437232503117220785552154370570900277326195298767084107335136115738514801176578827730452565768122824584775632960465838417536309702092144689089422281060321688374633459086431193652266442439952499920655142288498029284381721161124584822512607329905569515437680232524668590581680125935980717022715575419890028153149212030424840114307323648285198884228327838768974011026531747589100362489956310568335763793028840669678460548970936499709855187537587349671287685330330612924729783689437559455695804944830331161978773169486785902221215748172401192749430714494857277047715280982654630727697086996515336130350972886736608122620689713677543232927980373692985123978457684102494334130533512318868874688872644759638587398091754338827217512718181594577190228992134469705656591625318752187707404423209868570853832239260721917870527451885851773043174816453275719405322804589560597577266877942445328881625467670911891857799805223828841013737647334914661946746401548034845786468545380672338214490810279177036793768658071924686928265611174740274684242546811624612624785823763079433139174622639473374176760725260435574713862555023919730318610676181114620421680918134860829456518189507030033605399694645024723111152599756813279808454334761805596812000360820471535537059869808764246448858352534363569135148270048546293401775338400290634560780422961078619745910460001005537817854700560414342528619506154964432000815309403471457499918198922636514001817127703964832136296064636279681276088689254996812757015180337285398347265799595962567085823266425445642202123075494432641775341465284258845065989604491825756038239150334204070487641824703386762577528885766726364214372462955004116648144090942097973500309018387086439950372279370609325239325628411513156903983825566242818151204632249860061960298089678811828251522538056349364649466785119752398361214744602090784577686792147237461626721365492391141088985901789136453897320860788061927786178177493536917741695206985135572026485248662623999817328942463710768249124721732746145682861551323577616367767080111066826786151404656850390191031675110856429811537672089425168076853246148114390429221939770976636394175384190096415025776593308827904696251243334786914724359023948419627886136608964236245214602697426671165938762877471268814554447302636757585834844546596709579563804274353302468521208635890922641096897441717048548071154884357087519202990451707933856668758507860540454817819873165846005562916093964319459149867492851798015554258168946294255245098281806722870011920950342733269318110668814888192358911399177017875342534150886459223169917335949247124052397811236422050633365837253542131042626175902339914422169966239106736906060368817093216318567331979837556551218884118531446415077518247569802331507651745427773276376388007313682338335209924048194244598079146989667791076403774083039015627019605913009842933794509393007973999714488450810922146143359987424963102314514367131406796847550240685673704048110520133805384395850807641975541872596178124637372137410882551866267893786179359599260689032297477694688816124692565096089752607092132454613016109011418913956460417997252330874862470157529197233963295992787156888598055179800591641068975156504726543823545405714087073793923107502119408746477082007897883076779015381992801042257871764227074593345543134994175834171450255120603764605083888554915723176075038261537523854811914832949527931796588633783021481880525888386320124322017619849413449137749252967613645819693416850938651126436810420264421020956982188537426317781759621984006625253029426317305590238928473849398557786892520420505426049616125460502128233505441899104434419452927536362527244505539146980460951239348384784778661024294442384855801667474464044133442763797350257156096352845209638244674741016178506139389538908612194865820749970728203395413980057960779297253746126731338081661284671707975439422319453846297788530571842632342255811694612076393925986371125430578410698286252671878370044690211586110034902789843417295223515504108400074011025009915513517000964285050076769541327616797711396629451449392796947389294630621327820940855618397594393857089031452332620624724207025248292916435968300926912514158569684893279791734651925581700995815067026515607355850071674400167435772467483699702789603185496999867593364528827227582206944880178330113799385346162743918320387526752187153988871117684358241377202851572752305530282673025423310715605864405034330633567522026810201728235071154339278533011934509899930045372484982069785063144463382602967748635838984688376162238211260786816935787094108949992251930846866374625237730940819199951289234130885710504853028629893484081802355531258025897951973411709032429987745345067579978001194397907229313034025657439062442799679954534925413083846434352077722466552809383097826052904594908950507064766876558494876269812958933801620269818353869425435613583896356814574493605199564082880351730974557162638030302984161522138546958664798961751596017394976613183084586010841822902114574560996202884377123182984200789216466400614879757542583194591146418285928047643219304939258013119271604021482882753373091323295500746468726490152150322870930546547155070763084470662630260066141595881899674009588138293681311063601873596731821776963595829162484064577231683266157395306073201332269156083733233754895516129145752711192297232622982625450986279741112495284565994101117836280704497014557608977193342511421173735124128849265222928232455065009915528385533270898870240575580514615897057353299450678118255145924214502210581481748886532582139319367579775540433205218509762392907184930932541441566283961953125992122511122438306051366807323549603123674591296793528254520592532395585493140976305180648955278104116064533198425042382196668604335850803171064272284816964854362078671220395468152691239694389926977851305055631744005575744405852014629873253684177617671317758654587284353021114430478235350338156760375204122296413244779444225758110241847644324082598312200859219785750415703228429709836216842113832248409486495819227664530290047784163721957291350695064599230779345981298876442905438504033477948079632537198419411323542381057807688957501504550592485455676352854434528943258779410178249558862482393285893543820571673115249555585925729044433716793074987094407114942212819657043387073200734484914758610990244195389257997246197161896492872181015290591270953904085404336441407285114944790488409372898010023790654734862443853276020751492348723126742864016942417889929556213406045486717022958976376604367131465247805356557940629195247205270086864746890822973513078221253714646347172843755884966755840497562006727572315199714030699811591759045292647032415640596848939876915592604665283469629844384384773106027545516991180391608587704258599886499319180519699517509318855125707964181577698580663932756460393494417826342405653247007549394214131689837576059758020231618134704837167822744913743415532730727684924193558022373254284359459525080340350049798570520949614443353853366288501970324116805005908641953666243389517523474206372752482687266861559136066999462251167125298819118008127056464626816649747259700378033807867111727822298676806777742850858289970595507246739725218222466510367490166561265108454081229857965275310680954607032684940594234864985071055819234789941034943141331216169416480313710546125329876172387613159892932932892386586994839698110444145566984039362200805226596187446396291082405122640891944936229639605407984432748533747582250542744515339515638564978839345916634185457141708410747786027643794280872328154271602687902419355829465248726041618528908062717158298282919115926079204737372088659555573598862544609944868429999298260287834737306204412928050964545696046356816880395176199931765072090161226983174563927596454336929297475562354467005773975498655351808931925232376297691211657148349712204824772187937485346937561341903217321630291896563859367559804981999346613711302639249364217086568343828094706106146486395732339219175211646020335251652080017662129077084241379725977985023197299621508779757674239797328526759075993297582064037066998151617261162080761068428812248760402426530415848804469750385913935927041457557978136594948347233276340982549320716885307182048880787316693541179403767115981901459649513735950990475413585561612079107249216827721863085130818613424241136294217241953141201398533420917977704157252506522507027729005764635368734413592461656065419851543153989489724751748557968997718945597199672224113016546480187189672522452240014620905572715072719207341297820897221339902790294358261105066191678176051692323498024899042997128779044878170854831324900063376088690619318604377110149932097616166472490000250268325565875325129725777996874423132224695949558183494568692340196809517797566677216335992124514940616295663934439625560031760113083906957619721467118502883681072698893019372058675098555648850706664328398732649128886924064623173185324322601440967069905404369161187927957636180997603620327387601762218243341547825544527159071678040538754187240106358018549416798051849120101477193190555066296680585207024095307103316988986059094785677561637142673903511697244413817048806242491739904450180735805399044222054861503218751212981298303186368472914136276612667471894922651297312574859805746443762289915883046089772268196795441053411510363998003389801860585815424240689676781666680312176509571744735998418503150164201284694353300675458322265552293159895768479687350774450535455668700322720894525800959252360019027416888566322298168333867640980714623386398440578858192613348302993417190855933149856544492720652166450712250977686405225933227503111734274380660196162632722117607080364916150538228549121935291909303782695944461783011420922885930036794777788976308852043506572339608575715319238794154874720276273410575130818379736049163886749890694192350268231183778262766632542932535099018755052001079095314645217432886555692236138267874929798177776642692238920254481373156016684658129198329511562403769638917859742104530592714976416525800462738622822061037073061055495106112448238988112636447605393100631930381178163661446912323570815602004415959650162453042426211655315029288702237174523269942719818752658385964672144684794732886516980869078242469360925662903595678444944679504529522987709084650525663448518037369503572517532271633676909724747754352949967429118372993950190305476987269208220492108314288061710327510669295483507662538931288374558518964466642162190668037174139809264718051618096303226285308707643743955150980627092111403182670103540342630777013858022629259107098833769487554009045159755845031759235008551026619670749983072976997366331930505660378396751685535910154860750687024255716577717371874202745718778163703388395914794875722173808152173495095376092699661893217716885470183840358350078488867329193899426534926778539405087106390846525257291985712759938647188925539473533568421455588911560357418146937128294512925607391458817856284649351734919449196305536090620092055881530053089738390941323555554753112616498327075322163708417704310453181932512102332983135753933907331325532143019809893647887565620427965840652362854172138259298543457365161397450715840651310886149412800149418387843754233204564726455135777677706194421662675251062309010880837308555308721332780252598043593434810161615686865763907543525487391041270284824756043241056431953734902183628200012579625644610628562993874723796439890660234707650866714236918720257416269491583453515725857970001593061402471704973328844118045980913350665370368492470276783657081669905008195298733285343599995236240412191657650924955077094644754773315364013275165651819822831363682093921095007961328749841847520102199820818022467118854851055777041112650527486594081570567077115815188507822432365800950288722352543887736667379298126707602648786309991784476294669099985140755121336680517913282898007948618658861519976163783979890378372069263859946358785899239701677712707849355533753074426260410716893177515403353293606757253238006020945816020804462796458472873499984356327658178350978532419348188848943822557475127925736285862661816362923594020341328451645783076131510658802449534481956209923094759199555031952421831719377240124113463347372611039609994381921311097746723116265606219944333265987439902576893969053467291902582736748880240756027193397517202909640881761758263098936054885282465864630557462769173212009948532380392716947981322510841278458128880950859318867629525363592852688139819693653474655427081501427436029637406763234878184864677978010774090074506910501296850868499916771661336279244802199406177051892334152507329434020311690860807522655890808521253510147646191000000494934546987319982541155085087585027005567514777790724184908316930724927432004274417847276744391302492451259676203753530014067693578288875375999041750050753031673258541167762801496919116309848758692899763678741746815313727947799545976540588400510730311416465219403152563436598328093268052996759132010833246334456605430026231613166344724670619557811447560595322494413184728986451203567754235387359063506362533514375738587575510829630275455834708833556736698009938655925471170725248847226910221983480593488842225185224278371830010520887754560252601977230825548115377445235102468994657228276521143341256950816433112866863457740557681805613023428703048175816699150119132759541176173374642976187977632957956850329872708572499672682111589596476934260096195217714360289929746776344685201433880293771252926021663671228978283149998284496238490681216464813062080690917469335487833117968507585046276425838216226320210666728418885412325123518658398308394417137144174887330655027963239267396943697962214060370559948696467564331591327891744054605098281503177282430588212925304891094280712062116935827251403072368671373329874508079685131090028757309153599547536959682586417712099840432948023633132022897145306380968635595589651968500473925027127097122019125149025100617465524925943727884529435200895447085528970987313127236131821212215389294262469555701229901078369585054589114737872568622729268329470952914800850872003942932306404035199335865551160340302273595157310959088452640773992311018661607763019880747644519437701453445351901018136659724080628557102927485118169663246869839412038274408768014379191372709085501654020228091547735269809043802529664702255612568784556409423306310991132068223818404714524460778547133765761454228274830910730355333835988428266931279299506163619859490692290182034140528728805598484340978203670395957963300796068770299275959553100479142011713908475361736499651862963252998602438203825301120305046944898236916188216642784171869695958229767518494632096033367205904190008431116818398637795534276318518806873368335908306183155570977199167184277384636100655523365129214526361433894125971582156108773588987806579531825434524593996484498995294274780413279756824291958756976616842830567687390507103576109657790267842859668573900956182585717913544506494784508550083017562437709434012789891558579173239396931698731402044258720248427883803026934427421607322117064300307874416211869410816222707746040535491483538319097409435380501428248072474092568553228867420675789154736749348892312983796663898010670447555636108769186501340073264981144865315623269500649637326902312396447943751797902544362521121507879285962754382019671115573859540655433092240699507297549488273780185783837643149953537659597409025990115907951585351173055340172400823757507571702569596738211903278326306787698973820678361160318056415081274158576557698866650161346377227017457457591267632388488058855481380944630276553797491385238152066934827233139218159112725146881428625007458963636139265612568867884658932718984070549391310756210246793803015505847918445564514133653937904143530726607942867916100216033862398441536429817063946641218009778855189227902141290846072779945848826904964690870199735742879585434942032742911938308377876898779590026386494425956701092417744002331480195289326473998015827117379084778010982382327161739131801961455196428220377277871990533843173416539296313463463882463837499769402734511006346937016539547960137325056467228305961694591988340469116463059754632263956117670769949698885776108780740554282429905491742090702190632632230688473529660369915360601268160089080122977294642601765888834013569549831619758348537045806127470395345978218712749647629101584084166380624337913353962478846359761206389911702186100678541154767343208201433751016823649015148965722013342373397923616191762221369530842055356026719126002469351988651115615641412158875105998596419528012192175440246752775850689495548533740937715369403348779805269117730033290472357170506480455800584598170447605899469532709739497668447337901319542504052124395064799167858943655963626754962384574902416810486730805100859943016262237219503696675259288632034603865011951841897666031666080573610734671073043650088798014263968219785067977232305561025697899588032118141500561123135077792741015717111782930599834337883684770694416930055413078358959407797869871342452121652494018697646284079217992969602881887929763242212255768890084308839039982677460842607686159814690964846852753856108071594112356011883580320569245765848512271136360904908192728765607954173983157376191583158519268194418591100771671226075815314682057564013052277827398071596633594475468196853980784697079748837589881764777732286160716862565904578746094160477338229257619528237135083509070626240473556802101323018419794986577984132162939210118712247935444648608620972190595627249882380005767462904912312744057045568532481729890904137201339270687882173707910180663402755614455248643861942814183755779288663965801121768386390843947250875296379372009943502173279723920205099417661686162994108029644086385528093350531992215094042947281008751623150148198623259414569785700653807737323447524866612882851419573295402458692064173162170864481450175104957678652470212477640490676596911342454222125560413311731798949496402932100394791205983609329128365314229583954845582536644208688806841279138640471907083310841422458024267731650259451281030766638843446954503040899228146003405850836092403733244560435714404531314200278155607802963353598742872682695680245531778118813563655121499424334194727354116154099825311385029322976091757147565864709409817917354707073666802495566973632695938776469200827693172242031588944703004089730328557335296002226727345022590087253862728397942579826055264027338994488656215817217489818962554481010284539480331299746212512965416146717195601800358790919242630311540853238702876056046092895362765687014968875628029639575603210731275910879466778653475363199444586346494119412454790971279572813652886738571165565072721407193926831408798763165023821927344762697270419536809002808608190962884335213162297070568242769214019390274787888676900285988923440474848616392958946473808145107956462200924584611193376119598562935970311622101105738651112538502201101351179281491225008036327478532005681089312759534924682041866118441826613916793920411058760097122341602781939080448950214514315174470894141022658248240889314835228088400742059093690024767441991964534394534025797419686962308267334820268778913999042521622241389965437073605926353379173179813105505892655632628864507618837569845484748658550055927052344353921005366618540562817839811324685188096193570083417259120408703386565892091737789873646852347619724863305074828926779591637201658756520472400332936286618775762260060070369339338224632186725179830471595258028556933651173488482927460685248775954945219476645122961832037275914680747078453586252490664301544134818423088002896555332990959838693962534195704805835063804525982743111118649026609799506673768885014447358494716886338788652905834211364603995787388329703764430843571814344235963830654088932760241716831908982149932394153536750269616711646453053654268588947230436350550705918373767785118602070703172792875574177945134355876231334833530351844547392906221102174579820836526316519149724113684505673882929284642726348452785076698182027422919260197863266854929036617928535412349176532313201455262813960943711227678865643543342323163694876118134841515180703692692550955311944303417113159971634124445800954961513634858042597475806379387260083364962123810726564301193350788945656155982344264004224163319356859054182289799462889480097096251373224603106336265761365079215493954398958997505265924640932486351383008084618843940747539174939794551755979514766477954129106765947734056464079319499233671947864899401408526289534942926447271029819109677584070644127065543624963139835315585389626758556320784062833470920014588094641599845527316430089736878902515025634415188879304198391611717101330965283240072701772738823536072621589343008479583516673148290634793880216219584046344015372826828373428239272400885251338987288551786439671116324398504638857220983149754812733505772389583740662761609642891413462436614338730923322113562855164921049954799315204246487283238122639520257439004274381964017675167772324236179385785624718975672168040496134953280104415553027707526836032704057032906957061198099375916062581301413003715179787853031634111342306855582121313997492253817379639964685739404168426551085360042894107571644486206446004798634398423123606907320733569461802409682059444278393555574558423288801221658677738479981787507071695819004864178146947793712787711336003004129741120532208367472280314737012645204255432707192360645650684019686863628494833846578569344358475687671435910415222902417257281856322642831833507031122404446585277119858989898471706250946857432499637134968371020039439890254054460567596382918471638723658807865782910139472355235135047848841031393860748353232567686761857935327520714043380076197274354833022559787808784263279761802037883549515131026056345400497839618009704203915067801243958325943969841832679876014309006024863129783783944908809107469907433819676154604598869967503166283733623597593775416919569615062733691195097376859127615656993964249881657530656688939503707304723754665811166629417091653987318201309031644567490052717741388183739924326838141678896196114003564161770517796277860924911442923366279579644637449938364650962043399601018329228367632666161544933996360030049984221264169250676345880383240738128632364696473034504445969397591203981989329636857056248405017973094384522169407889687056325296863086589390353639087042533926107522886794454643137269941779120756020500441079656052158302902112854799966550589426915618800237190996026953405727084179699231936569027396643920911941908505505573903394935296461504188065281868699835826192070986579946666300778448827057231550365395457452666764761958110282061098453374963002418021807331255346176040608965615175657849774052222573294139483956747945181836463271854268426984222291336947756744308546065478183706572487192828974708009629360944427695054250785595626153821738290699388515929443453910849084587286736378814073915057482018151291422840393587385039910256785081929447899803926083737306955287082306943668944559434940059748259240800754151485673571844610247548032606843536527389235945618081761714210614070194838998623566902788627487518014538263725317638798302461382303171816027165463512999715076603427154584766301480095297252009871359347935679543459385112714632547257646803851541548942312150474919576910364627590991980229355406679686225308759069567243145555115256421666513599970882737501622722618393670150349743778272489874030000922597775543269312519693010575657033888081591706083440127428770399272073159887265912669869307402078873962178241424650147982967144127273328148934983765384960995952908483145931378223852250890415727597770471335769895264700202879105925947824710406764496455592412415406625149834597574966050085834114051243731088284727784897745810743812110718102603768921817328166798375600471075423430531665262120454936025713471513875705573739533377192031529702106111777353569631294697258336903611123888671365973826742589107984194700931763823824562504150301797036533241526067597860438879356740283235896477628880000267884458180961124644563282574130543829904969881348260887981730626232682621763162549067793334011614366180023297316704282573009020175921749915646908619338730545259898123460847623327876101785086795697693497700216503778210750860215946897568290361800379202338800170181414942493114772223049270206002092050184837780855106514611615109818719291331761354166967499353219576549011664677823080028261144657648583594117480566383928945980590621751648057556210763150233553864194739942285301478910979873661200409073832038662627550376988556849142149826867219846115339918314123148667330166782069507748978081884821399697859071846470439442798924522389438920016142187327287978655379790237101358460949399841600580460108607212565292658247609712745323538816263797144973902137438530200670803112720906383569290230813185862885564358647718763685192122376691133592228352081427124725216760968183888690695067148599289011093735571862163776907479522428358575726413830874256020273151040588380201529724878760015493659357578941688374233178220017491763025143727363330361458942044863840064541564443798985550649947869863995579243805417275793184067110424032582294658094813063103391799280139681412813745144485249193452733754330881166257236844214431466040121247515261279975986829891143686514333897390954798192697345900346632558503803596385952404625858129138857080406099001163238075948602288716034431607920597941439532477816681554797337105197707599278094433669465526979127426275921489886321878389932360855936901383271590720116016831809185716339710707692239253424278597041973037613761261600131224829251903308397238185065057447938979431238855481972000266741685664074092384959703022017264076163346797392150355581964820555100208186276444863375770260452335335652640372200884794041809332133745573322267322207204784059124472799370044691904729390760800709904688613123221645797674551212370323193124777795194092511807065630618892384475748102372670457548259777315857887964223383333024274505036432111847774965754428215325905816177163804343358619329621253852211869398183280377486378548007266813219007800310493752850560325587706965418735827243669469678867778857173400610991574458025624394837379192555654549552234881137886268613090522571183016647215292814104974045747144047279829791556005250943211423563615322163007919112158923461037990763396369155121947072692772137296015227250099156299657976362652889836166258444350726976073883644263566988330452263009753887407647256347979413122937633241403434661894637027901649823311808076997909916376023519611354671014354417865125165019450255118043046836889624639090912612341139806540996122423231914254303743710328312494875682266333893636242753605667181119398407671127577863808750757798982828771276101967697117328594296350284524227201983563229289639827552025652087020598283431939311346403843818461855533619057714105457822532513029210388442280950288007510327985032377341969901467342947590599071731739738290926812776553342164720112188755467069351293629458574406337837002889936771767344150437359242354043944304487302218114931402457514319720054895102230636861067746010898796460273039489031626554383315843297224549706672948327266825689990369497640403954174348396774948345402968245579369278867508304824334435695423686044158237364739487749918642176223851236701141477443243367928554642739574235960420415447924443474398488503726539573994328534257771248931818362566700183259305476541105649088325337071780854464622467675470408213880849693187063702764217331260963904229110893721971615716696122029739729873147625456076018468961137929587737605012056748498361324003664165390185481662461106564343576090159867567725980621921522541391237782312373034793049831778785755447583680175871125494555940951503914746775698999161283688878332908848766523217787244330194347384596505083607005059636295870059923386024245427969447350691703169838220890643474230382917427113559570257428959747839316441461648689134854739815626452198990597759983665764565822191466814754424950482989655330168761362903908400980429768468823482651158985835714253679274049930441190718832982371983294187426121719823550061161837835549471466102391781744430952719803847232565579947405997941849317501118102999092401812502894325796204922183678544400156975284687845845984683475465834925498370352879256743538237648926374892932209255675732468006565644232989338831227328609861170514655246878970819927421375415411727163428922221321047916342981687081307171285283803148130323727757784369997402412233638886697941318047813342126784676376444609964508997451454602949440145083751865945545080422758925618834678706059330389864641628793116419669264144863747484527424232734218905310477026836861012626744207842161029086844010128506401555239631779860271976523144439467225140702092615784103469934021191773644082286511757830574640407911871533008124810364346700062347883850723192449818876820305258238234551746791040299317241962730505037769696765859137359607069164335442154210841592307673062327089964771149684623175622456701453320009808554206000617472286000321664947708993298517457454972768260568449438870758375848233592036015173257368422581467403865659310660075651400889017738360081043983520131962328365640845396783114013313930064116619954682323604147467651008582609983116427290184689658951350242205927900679705160606474200468593751537326926832554117423889976484033237397667090267354680760737260162857151417290577776591721472564741243878418105407642761037108841207702180538213392982660961814648814053235159760637329182880213690403272463458112348364298806336079817548507766517595750484120342786395183650453094342946204658125275587516739620299697864221295443879591690576830189605973224715207803026328928359869076056713811652703394278907088954082842631701321454542382649879376178171938861818452679646934426533907399234919258742165310608730077973319215302589184717372572646366789113822672501426367435316803737204173249957461249161933931606479906368126210551095939136066976227345530035911647286714778345268466962973466840955299431357650533341479164399042493341506007154370057297086061824380206904219841505822834648273294626773427917497407441793582290215310136699416204018833386084650797151759774572516276981977998125493483651677597342255192911126306812997659236728607748818752070681120091611465004099280437366149563846605213317345641202141264997624437952050471844979024869939020425269064544999724974215900029544971870370782404897287309045688031659922538199639335833153939721353469632092866326362882025073037457319741160767222344001451484346407860259500439041415880573560994574280307222926593187247393417704718373044408679745941849342562847938622202782732795817161438612007322426417648975595170694188609463395364311739823121608687665816907766684685757026427832177025512610204821937450738981971466103727167272407182339761236726346805804757088672027822980625146922292873652334095512171823406089040742307865340033126137074139955363714098519912957693351383033482774955779182184512549387122870495116448204552164438808100563019073575502447563294322684638127618783600229202216391018209793956998207637525845514311008546148569119623328197921472265990233483377789322310780151090409247855860599939187164614041370942417353421205356432810105552782804866999224493349353895566155240596410381448078274581189506570891936322058442674668489583577358503581685510468130099853495445981260822000125775379022064962375877227988565162181724738715156554750580582653231884125633688071424793382160875201879667864225565386538720903898742872677297594856189598657189667864554880049247953170488855152139642998104754201378149657848286599895976434055267816929634738808608626960463987162558358528225084787297485305515824892717427915897599648900946606034414635609379492960762983101921074185922375732002100938677214383139135588637826104331287906028169257482953039356945959529450621922072018441382413540521933236461047485742472629952214932072801432770846649156072146948403060110915266494999732370166043267235557263361680014667203397279512420970376094257543471383014182824133632210251603878664483376186210741469777433479088935109262270028388903946225012149847299990044145223505606847856546692340720889753230592410018660910891865086472502896486695453380910085852657201018997545711146130763061183983444439929430570933646022613502731751863083879356939150611429344235921980972239958202839886621704914270743104319194015376942945761156017690656365458308957184267371617561335545194465515609522541345593650139647551226678788973648825163902521403848329007486900237703826576053067752886167217083530349022658349898702943952276688222254147236111199464717607616129603117074926252394141753734037024505119143287401467484736744173059342766141054904005390249041684173476060036079866047362511926009647981415488885643364102209925467892593462136415241597799119400764652639170995282890503209485771193645043108920042443925103428270996058293745018520640907663901013346546724160616656044809916844602713728929297003543277118599165015460183005293943776899179015468289028697148760696100362078324331121648366917682024089348531363428472493958988368532580525183335233414391557695929821215957794468361346014198998713815985190956419066501240467271078635005931620925729556838340995582936989337332083025548850107610418331370533364146486126152243421929876434868314027012749269954126509153538089641657371816100374913769716819523775600289869429757833096610505476487069224407418636289044002453422730377887246249348145571371024852227938324859037001445604765674891000873739972359190792562407570757068917734003703976242575022883929095681824019646588952662969388527563103969010117554219090130422383270427491569559808808379062090938713677234008990700827843860009692942954858056167958776134593420999947743888512531555330218379774479027645830304095424260588738589927366814960186386882951739238648187372465791876462405721594434438746898412694726804090659717247625761406398490645698093169891105806030990133740197472083697036640979002874989236912104851150861949775489787988521079297951710664199813761268349678715404014612693915027224130486993158104847680277023261745495955670599387755814600154207019292375473772515856085330637525894316483570425576345546129787170239177865002161691179796372275882951283674420713650775830641145332204953014428174782308835617596923497964595915572367924896030209781344615885245907259719074253025501546718625007588259823270518970327357513263063261098075983497736707729154785527259913734480391358239100376036185611997553773927710614254584356924579351212070855091877952330753453884028534458833682136360416717359031304898146020109621164502023975471906288801471455979967357566607400905134210106077159804602643132452531790695235324528250771406458265591342036890120290986971767792782666653595528297706585662143644031503813543996062579769811958953543819963707512005938933379065210091821136698261379211448258649587198341511146400100051734788352013087982940637475903312871033543657340492924627376588679374188465534105835000482047630362730764262748600492986157101510390614057402571627213504208080649835154316973845200647189553006105983653367030230977967017726060249972589905939243739914407241545633020361434341655266705717459482508617076604730314022862439340374419516782446693293486723132178450931718925958690698738739587593963559459491495973064492747434813237087686945950302458094403370675441881736933010850326027049835228794287692505443924678868067442268424766419059407348188055735287677299827635628332792454337938121313995323859994333724699110093738232314600977615851147646719485107728775465310767885485009210453303639419377081376694395427216190710071817013651711579242176792583307985119841198829425743661878749663203484323368727917194048330641338230151916087241483206072623307494623421750135371641569014356272551468724639337664728463473474517596232538472846900951914741168484553591316323794573214221165571813679335427404488644930106606863796890937747545347689441925125495656557364692760917526880697183259292143795153493503694081947684784356066106765143622811534462443085332339637753638923652549404430205889491448269902468193710279084747046745677711041786008349710766396674677738309233012271918793944855119503415147495207892747916673388036810148157525796620474758863303304207273823719018085577106179112736364159073417331258558396655496632245817751327870532416960287911714405346869700937938759770920127878527826292358288198479875085030775598932038850094890813385806557338373526806598166514344477811552024007513733693716386084787294840430320817231462284897722385596058174640895725159302824303383507653210703892817366217486338184562923707751708476239054843957379546738071687937073907644281812070692135731291445651766646006363503243637600935770293567318307674952076602798383204875606027755391823427909784121113178843444044298046316733684093027020061096219480667051259287515940279530855530435891980549024493496106819229599716872479671692082134843685023370747042227670842833894698969183953797177387261246060511984921455052538639697946467041502289193257780848789879114055021384809614029798057145232609904672114978025162161708208254018873938963747891293668863722021845109844220648084073421942131842186928563819132619792731942608436586177480857487540147088331851418867467591251754586422474823443995257499395603278131820630960392382339575838831666686596574499864668788237097565349986654843666573042900022994267594871044617841356862147308817181381105234595794778313867927162623215329828016941266099074626543950133284340559330899470428698551847666995932632270682222181298906717156893845851650171903981514041275162849334531583526947087824397459767569708183442743298594815007076333111426206160876135663926405751400551978972486887839631517667675810338579584038770329142851932995260768157920221699840484320516846017400449231162841575712094620063070081731491353231773048646531682593409144328419267715266738297083841322022119850436769577100888979077136694587459168529462609360330809576985802449087388667770906363723828033779748221996916059472676995896289606532188889670422156054535679324052193783420206326651653179132614250297100032907468287263466829893574510525067797491256096941012137405562231096990971733834059776932135850959363360256597613768153932671107704245657571244988693120485406243817294903510420579606336624236642735597639261404863281458013721343657992009147436065824801585765941104679912328451845051529856045123480099540840367545373156007786986128976449982749163309882190536779745659919853559726656134505590688181508712276251663615693203561741909711393313137521248771505310312562312276696596266327068143613431779299212719000104269211777214902037149777665741886822325127857366921194468029583542817839211533311026196405722687352404811840883029549882562986959627478706545030774061624706963307139928922221179877647632011367259355580440880367886121599218561505654047349085922855742935496808377370024255984440943880787894206998174064678125504422464280264948531017318322896679176636428524503406277334477706553397337856621065928747051745755188565633802127543229657778972204328490253415567564536573689859148635167689815638973935851369617940077138216998286173186537314565392556496212575114839372454535767792424858218162876265784828778134763803487833441041040945549850629132534246796361163915143988819439254998435783531686512046013197013348841601609478028009626160442733328313404693025018413717343480742357994586958248148111428674001667431348930233990181752970076758478224379639302482403937882993443571015452607147439361767868924857764412407550435271289220485088576527474439732265374864625103989649622833013897651990579969830523775342925288381797350840126310968091160905204393651804735625342785328808760841940895249478035936160333109570869157825898403263137084493986356852789978010155795543234951511037871390009483132479080818912923298590659236952233369594524893997287974085459615068291233607329620768664181665577019433921589212115274622727335896197621608981123338907733847313284143236694498250944126163143503791980453361708587717154888406970753271461719119874075587717840411690528529359314964123628212419359920421759617572344831493252849952102259746643387563935763815855496542996706024511031363186087152532342082418380931813691092062563814231091562016023902371876557299819938934702648068893243941944659616609984350162607080026859868748039116696371914624544056944752311520171750699977070023066795483225954122600869766128123195868987418499382264963794930770286932922403292173716794949371319717355241659057787544926410150161478076669782384071643024126179473562595861109126635684765293745412991658331198757176230838132695161526791736783525377153488015850345862926077953031596666850400764841287773256334673943385911606047875453604446436627501672614933470995738257516576209935631061015203303138282692666878456707829269109312262920928955580176653006260355920212219846250048305805886378779421148350805391006931757189127826986853565481632816342411211853394966012912418894649488075812994087924838211047138086623349597155689469319029435371038864761609025923000840290646203802940909114964402677181445962117305980126345342009255756945711869579325718603503102856441201491350511486314468889062592372183623157602402353753440374619585906594921861977909741746971096385252743016583890547473262413499052488558373555880792660497813159007693710749556276968175187657437651698653029004511357796864344640541917689888629383591161264992473940822962643778202478650584330667941516806281839907725340697032343869741050842676049109375983529264510898019799368203132294925913196852117422303001525346255417900690285572294128262308309407422771679525104700817682861342310023497754091293842071140285084436749537132178293073779452210404421252787372815220047598353220953863082428544007135522587767320012786884216740653261370424475707080816526079356753484796278665730654248148462328562155855736339516687434222585911324277966136153925755674921982046056396263096187680272235341221890563061428710467501559744145771873793657951571656185598894773335740700134882284715801103796132031257085195508361235448023951720163183649666793307782123444588015880420548531806862292453627715114812324150929118467890988000127533170654568007139355543310449364587511128973515908940263093508567094861000641857002026564942353986963255200170219445288497201953288966516428115448850015767330599802716385879447903128624440211534051088428975702663864365923377317433616397302735265605068441547285361712823960542350455261859440224299524122729405849635082747543035791808900532408461907350897408356506172777117132047723394951182040925886482489190318831873436736149493414848727815687745242182407676527568237711468469714583983473265202059022794061318062389700709619189373014797401640082330876001305372205717792135654201305317355923248233744132227002867866478150117489078967063653553440523888905670110283022137454914136744126889351401035918866014760255200263197009642744674369352093888415310891461365062304815809303035823556082832065512500852646782417638831688557008940330756985629813215805533687080776105022354560365536397315623979364221431325369505496845148182166456594347288466408268747251909074505543663704056065509684335655094407140102723922690734542146879939475716706329147175941205309977468569454973309121599264262321412839981783971659719803371295308036415454258962863120354689401531376919741570074349617179784077500592398828937227359449168096127092499850814906710447494838363986397030869111206042826175636775074036691963146533778395541485185985414315985967239573969589747972405457177643642466189410965588043105611928596148412967561150004383183843559693921271486752656482156197449264655594658791382636248142537938587400008744301178329227407837741924617807468643469825547075866718332336025652993461042728589689743031263450802508356551524522402141810283622357499885230073300636154217246423704506130993069741632214828418832756130889435223377757295985993149900053098910285346306015705022155350735854797821411573436691752058388769570710040192599747516493005554609094591243782721032918794269476134880374088625731080279384336905382350467264816948759059671190394762319542913836422517141546304148280435797214066724803904515414261560798996505771966342309625526561376574296733111321496134419407047739284473566999661976159094361784693344292341210596668002254837719795305163710732852822254530566940290139894788142524698510283445539712794822730161442326534390120861146067443531914328839788055234686297399486369155355787347339308969057811861302614660693677831067293022039533540995817760138167858084590209574942296415154327058186559106594121764281019727360871001823301709995451778079621618732318711461570390251610408347478150760495980559371200651531127361868762664143745368728241537990653826497856571470425104044451673299355832928507609210158230784656049016037956190071180654082279640349578300993085418686034465172744249574519384829233907329515888618827190618255103647769383914364039578587905539590699083595089195083144851959355566451940066347967434810748445169796291406846022738473651199041936880450304341074092860430102400650980015768432298795984458968764396586450613211574911139893529146074880635428509897366079515419859850470313214124797469407581499602055607085646235705043790571687537849825173293168642051826105405382980026967157235792120118465934820529999545726491643571053046109023407827754775712629018139854528450395649323880400323218748332263766508827284968086239827950745075330678925976268465405074887366213701896582478101258663143038286485035322811932600358108935352609170294513854762142886729052906118689217325405340296937406263653056547477147151096775373249844522120721319435704297200567885161389453529223769306168721635642204171246040301803699524848215479321004008132336512982758207901389120505038186133141066428812167453964985315350718844718713629965438871501533453062269873194316482214061150759903064147269530613629256250976976843359734958447653846382351339843564928561595871422494821424846112441959496491624700340298142893774231915968348531956773330357861228953469457328776690101308402909330123561939228554832453794599924382094368939118550467861945952707194528762002762322227624875230766985912627567091945512061579393749261551611713637771071352699442626663308768919111595899342995275160036110341463950834121981788500367284501219533679726029813929978206753492302134816634603874861352009726857192966295328621317002367810253725682375033021733615652113669438021949971385668349852431848956923775680684918854515244608828113380632143104251584789532522406044230137485972631001246813367504096280628175207987329840318307667291192936768901436207337150996105181938521548996815234925718869957384703757901841100306781801913576456086532541666952392937198590597591653458164040342037936794142502325503363269416436964420840516525377993790429016167390815783758401434505527521099503366641244331665983352406129444462430510848374343713346249419349146892908760759565900775262166107933481389324770244835893777336835887311953897168029481923568217716291820789882939457566657497129587343378939170318328890692090953454914168568990903134686182962990751749418392760288634808223688746646768277420962720360428000997513722771092146485818854540837983505464925612487122582774622836974392576860104360858602989262893007352351508135288549645274319343241982544919121478904000954841723682116488468486053587108877603708584799340101296722078648422605329630581371340686689902863741490227388029439098105551180861331876530755641657808462764565107268551524263572635586334623101679968268724628266057500620224403803931165266355266303265842434163125717088327379004792197736405898349098478049902855168752552373400877293307971669028483862081599909771450350261513009344542202593538409721197913755663419967816539541025358109089094399019988788133419919001838942782359372185111606064084640655881402551142576193964144676804963550865616274723320620715525361691307812973597704812041936075265154604639147123459505435097687281093466105275326890471423290383957513908315897770114357760039100020641958297645487864296359788827095530771524879159492391021177053275669389542414151408433193464519551230277504268439947419208834739599377799596316582352124003673802153400968603876113738061376438433865288308847602440175014993845470347816187001978469553076318617359722167369535341839814845767700249588934941477303050902341056561233823226553811087381259550978700710171500760125340357383879373875097643778560819826934755723270111632550098631411627462957109801726710360071898948697456966379423035950945839710507156217207277534698371694856430858952844803267530809166847429101532766535604300831842643040409779871569367824834040298632587492245170764356051610876366010198765343419895878761250611975426135653574877331770263667131331139410178380906675634790938654049435295039309376856636726565200959961380999807825928787637861457885423735049052912730691600334028531240381859524667747369824561999825998661620880233257607414560150376014002896652012149446640347307464701612878335110962275822916706994110897006742663672488433675265996215911510414781329414751777652623714588856945890321907570922529896995144014456690364841575857430615239941951482153597086218598410811824418589129648700219291585782234153935391919105293042175701609312621978204555763106811931780367135563102937538114088439322951188291392310967305338003709426251487527420499435385980954001977089010933283855910571045416261017195246079056678199041148059804919435714641728976673087634533353939947586339012699275926345264809237906432113902338783160496947472551247178835109763432660394743774743033272655104388102130739993376163069367238024673204332125054803087267625684773436147639463718992153150917567702973743767014804685667394154020977157227817174850505394919600009856963729457249248079105325340663370219577076977386492782345500540084435125321780255491821043815745714190908528000408136990251941800153812670965646395581178691734026190491803623021725458458392245890584900056508105206693941105838911765603590574467325472164609425216621327418822475708201224496854225332946892621453055773484719049630361744683483081544062483965283537406953897003037999742399552157875192818521534692851802244089846651848743421947897198598472279739351598782346300258761202150351713684724495994412871826827813286792351728006055253149532629572663265799703023230934680999485873961813514506961695144711516566040225785656075715998516121289080003935202370001248778378312757377783681415150489129497508607867649933699059028246676924050283242520896909385824357783695100635914700441372585996899642542764361682075244726331089387763830951140467872747704709301213356318874522558735981733627648923230369788864101660146467513264306654392584643485479049193343422946301076897320049285991068588263676590883225435900605135578261834980201554554698219924004491517674471941609641718241190256698530570881803947512827563236101278180630699695219623387204825879140646168861663205375080179830092252607544715618941793272190633465573168630892233255967524796464975502249972883360794107302631982457134345848353325789044948875762803358745776209059519158282612271769112098794056918029969934633838892050112871917126514506567817147258513110891067328395202344931416126643966221930727998167298436404612370457637410434643916528434980430559228170149826064166314662204381805429037349512771484541774406827628782902580806370298498798827002716244295459345267941315686779697682573043138631072262036691348695742849468629531773897847842166498949916563678694007435153091843780851031754498299986905805793897940245244338608015975849080694782072341338589483123597251546360751310931164741194581546000688092931887497532624330101770587811765580396955466029252453219326688268437805729363320605065233226399459880440559839093839902891744330885312936640070074898098209995529832731475469403403110654806470845458134590687333028562962501306899615007002184293348500102826836518529665815779501061697206780003809722289348088188032865469535404024583261777872405793003260772900452585924087597339023691489122740906778998484371451795285147420987463233943650775123952033800424006752421305029108276513270908574376740810189167913454453296108180789041757302060589582027936295010968906833062589752340334402682334579451988532361242282234200366653536610845737481262003969845057334830558292901752018985502336892728675245831575363866080814689185377953887437048982478686535247302187785340427107805144403310493158381122653683078385731330800679441595087933809560245484202059119853743730391835870354991339303006238021081463788764670575632850529373214790238072862734289201785243327087904531427648694347828198889268368673454526533257463139518409260454887270246152761012299547123353668179020473269107156069165369173477622528188951647132423295120518516503282217603223579425157117929978472820613367431279311000316549135670817613648515601730171109962534979387679289797471391320501272376756381026669808525391616182261402660065357190376289908896026771581569416153782306198243180466736472722785545946755063118280908461910860885486050186246235726363034198550898092176975379403615053586822394749160928240185413843244191116102547331186687362325486900449272272311127592639807121162130637795265160742426625698131563676709764958364493226075593059524054807850899440157112066165540690735156468466558563104361174367345854986544954278116727635171829256381180614208644414227104229230659771187586295214498734529399302898282516628993904373346645729519387176151870808824232191641359301381013750181097012617904516202478512061775995414037770918909584213969299041828572526967523426474115803008620116955646556787518489695693386545530742397714031493787895505904232819137497774905272800742999916016961095447644168722286775151571414520923922495771542807815753912604215031374064401351068663405300602445413512983865112900693079660986001946054318607198585452046153717761075776953647873566779695275449995289057928317404826344255103911722929740820325990839668178229888559174994556950576527451094742910231123214956105937533159288652718338192780343684598720330328750372513461403931496926337385482897074271342550294998817980514072676059831091445214837799896565361017686539360312804021899100133594521828394832329007535083913613633640573156959034783029930091961993659332869658546922879574473096757435008509948638444205237474993294419128460847836428063839907669249994410873828098289957119061685671141891218474107471216285172343950094454561871434593148494364793689411562139179277103017731538985238798454795681064494132777471561315318544051186962488774852983427076069214030621962541074412280193679326439199708017326442083387251251104952973335527461051804303924117761992307184772591382834571365050373562651470781857598094719606781908684453753687539273002550494293477411783366043552711761767707427687825547853705798151782260771368660169984190459331897430841052937909370772279993929627343848916343428259111554527812676856144049892800587936688680430061788321993121337195577296141022774399907941321154844734792412794001774447130683527117946193036124115563440615755563625210289787542454971730164054284597419961813610810669472371518852519134278816511185827447722237985505698104965912944445907905122723434889645316348875836905221352624409184311551223786126625382259578796231171767683423611808290282276357975344514654766025634614383757956900109678057229960761455007984672606396839015045466876630439399018401726474971899413879677397761638329346626566016200763546705889566005957683681330568101033819826784023102707699351791237811537749130242080030588842313050136071517518053272624234225783234829549100504791966872843849598719896019023667810265706116063777773777435715902213813029462030532198146325666794878577179381409911638360675151461703134757187318537334427544979557457285501597678716247225558275787506823999787827776121030080963597774774791508308236195699748415264115433861711964975572086020967725242497532093335410044087082518688014675433069956032026971030819686978446168168799916805695735948740664414215561895672093477019934401548883698420073603095215652059481707865420217578839590112735132743440484646129505472926915505682700560097570957647442721597053509638834735846057945870235448984319587076895559536974523318242258754859375767600045170990071181355735186243583229312507756857218816484783865399875265104071075510114870280188768355433237237919925265197054939313354011333607556245483799239477998222106951447396378850460178749987067420007842705232971847763235420215693642013009996435710532740342774348309367934774402827186395171809696375425666587183784335937344332065486352313410914921302151866668971612430756300820524199362770881001458616464671491993644645459042833188906041788977930488881470394683140340832641400221783110188063499893507372625017952977534768038940430503714655323841752123721690550139940747155824267293238037951266990186567930743850559890540591475991993382014580422596939547401997986321255821513446912127131562965495960512960314340319088910164833535468797572666213213250761694790456460781013086522461889523419813235034778857737736210328355567192435482890022937687023000457455399234736605374450732347596200385431671079226194079032960281891167998909279047990230146610090771951644512842424861426865422505394376341542776577720758270867948431507088079338320294570443032743024493273860499529433180582877281930637095943724207442211145080069545050110572092082774738357265905194264917872826865912237632849561967304915996347912004896456179399950548790750556614272245049036467548080264426353663158895529368359973408213252868950787651268828011624860221360574714497844984262291472017684277745570244226584361228754501541834106305164685532455571182944292271333918222179107683125323705611721215468661433088053351039965805269974012038234512651266331849231434614287954448102136343582837305835395105187982885651347606159903986009932588155645801306708625781400520448426412024139430151218545196153207094113645308212971935639114072717063580095490092625275182563580940551092609135449161788549149062951558268687555359097239262086144530631394900305582893427809674468521296127679914789474021640029039763380664277875447654802403467767905094815708010724201720858129130832439380732780026755227455048503188455539538572831643774414000858074663609787717412596630938497091082423234114410430744194699852419066881497284403251783538749225599779349679777043370888925472822280585490266407700213153062023203535767431083610712985832284289286468420920467362368638298924944868032754236438835529679660311494430434575391334372284717354414403744594822542066875482606430751471321312945353184691373609481353901694923265202646399949729432621987098713418027866599289924256697546270374200048323556852973740231541038581485601803198609369100714528653100222106749348911073962478286204379836619733528455476741136984019115350525522679969796580126328501852710978271414607631950947985980232178699764113946182117639498681867410624818117939035912308885025584284940091919569022618923777750452723150897228006318083653412617042480442130165380689743339946375117666496734688197630205823652292121208805204848197258558872730217337014001917212118465599505669732172987623510271190726140173435572934247871740467650985779799425915077700949167466871870261485128126087276246292769441188769692598373734316336401059352927597601342951033542847834763345776008083840325561396015101149390035939507608320815055275456051321726457262012344581030419605811317161327402303043364909042824924303284112807531418812365630690407299022527650975608975245379697046908298601403874002964579102446718292631037427335529600075323531643449098861691314859341807657194627799642452378127281184696183589821413335698972722067408912724464905788603828676729457335931194771553987904144355824613831281466820263110475824981653937989967354723782064970141613074257351182812208785957111735107562543430247725846918840777132087766734016818738193325068211614240939690886359939853603110213383195481873780244884742133887308649004740353582435133319157981604738062189109266667259987290860829757238184906951307285981896960999710874886918193711824046559760708339169370914020988020716438400439390812379939370914584856826372098617164740145902330241266776865063646330959848171055358044189413340421251991097794029581964463850292102977510638255132939797146692837231969700575784119607349049620098392960920199953891060445201211820185936517688230477583954598064143830984921834729182779915996169496898339579726009451611957424833114368836541213392951938344793293801455379568079768870014461010705607285274165621544942860212981914579855341302909216149899451338261884265367853750075259785624828610435687147014107466945010639681642447803914930507192193033699881232887315180403100536465021007903502599950308125324512018609871845951263718962772906779318196057136507457886262163665945730592086622452807802482934218015010287875427600686110199415652415080562376924810652499349668828314522985321571970000053018024344805641371540089014280526939350669723118560999426945502762766282303562909861742963844663709550829105852725077904573052199833615101620416476239832785072897312025579282418163343600276710024580805897058002539555081945682215077993560988812549919220761675956468212678698369433832688494799442771035580606670455628053674436986382947388662329694581801994795474332787089422244550422693111019437958799520061971416583373759808728103946708529111040921906799247910903037264495093341601851938519201527592183815785827079630305105019143222703929679991131337671737686027049312906388018874027794935056940457989265461199986230276725063513272713211441844408944264588221532943462497524194813338877733363955866236097975455426077276387834657847610767471496761122718715016544552348462296887902448150549082627568997017266443842429350999296006843772526868787967087235636029630332440746349525463900624014938656336309842043563220771461470585972581388443549744319554378086879695137074877182470092979402979578475471460039955305688031916918407257928328113418941284719738517790596167700749483091233155762816749687859416159238116498313243744364832371587270583186299959355481820753640050102169950849696806763880578671325915741786334165570784322512670857357896499732321968335836621519138440177279596284155527720056019468188836968067240697854076814352707446082938041578443696902184257783758368396976452448935243813599008215555297194093168773740419277343232435209767441494229699076972779359650296046333276693143565732017028286237708581365180355389941442532552541558190163021491028072881193122225270101299325488974214052920503322453935991901440513677259315696516784794307146612850087419125046678920886826672505002428124318737863377914703745150485537732861608761245626014043092223225468153366085946942775373515117725119368480602484194756691713943515692327749067953151327191493918299439459600746165390563243713336106280693604177607252992505540973687547795529911840373227773013921930650990979191240268850158417696104486171334974247422073479208724492314737727789181474258954503753828447240649575934464140776722504444429361409953469004648525317160287277584636568822684252423131207352076929220491952779285613117476708764435544280095352837094394108820431299078761701953346479147197376634144817239830146144702035158124661800063091694971460330425709098388747801351219448338584956189024674973675611543553845740778685418535036587615212642891598608985931440606309215730556729018467683382110466584439466370009035431892463020558407205154647599903300919672085991748495857491642803027669384163069780806846789823364147544340411125621956608119315403064052340320558945468640009520800169455998560427311558030604135656482660661998100327460747904543857737090650945301167093429609861050385540897561170652922694348452391776109869229040128289154786476466578188927509750405098597991031922158541966341663240412075117240301744672716527844463284063391821291883298101121712316264882182200566931927943803197440048746710960998637295698281160585782118013520547203170965060764669547753542993198129942811198222612372218456283506551314960008006958215917373316522009296797338198258300791082707983660771456801757133242587607343420232775979096546374701571091284849417020666665258734710507634781060958948628924808793855045150848670315422600349961349657096722090917691460653019690755988391502227901109225159818115447256420814896668565757736271571958621390278337727813073568823114992376241473229160076222334564508472508376709057192330857928518763741098175752300579791258332926160135176570097475106401448831001296813214115607208172035920502118853768552416273039544145767660420499655206823750231567749905225009687772738185953372558737732701736890541367609203043032821176370465307721902524387263459208527688595330184166613939322021115411273389853480392776827804521434095157163537755437058442963705028240031359478094292330157586032080501565101024788588551856015763881146624014511293068239994140273346382144090278191679393142459051250088254622053669865730956763390643296298037747119265703223353931394076055756900416624586387785101586780993733737983874351189244213153615331370835085257468696764029550325187117248669822650759154642412584945387691265629670820773614781801244303132849259993428124723766223457009946261470079819560298425694309321277762439860724596206077236385302723628462471638956946382375194681076576152199993409071931882631052106537806742202478389802249137104427126801562769571652638608207320157480998956120695700695224536468595088748660796503180359075744162034407640421791613646559548174603874914962989828603415241598251385389410065273439735001667181964031244883030607623538901460618107033200054079570133160838568885410424236122443633530720877501422849071450727698272487391262530097160697363714128565856932298200785190642604589582599707201584484002564368899544736072204737159845780996241982294289984638166613173312899777584418126095664498299044668485505386313203405668685615984817436056192029266151278216802960033424393553318627090461094774849563513885746697366272242083650291437043516996147012550754582566037490426198363544510819955285254056567656260304417185620582315618640575534530306409303447010879578218609037747264099909084720544230709930977207670748578474503616293544271784659891501402680702597193391020639370488833812562269168917940545994724042759109970414586869581108220673030415798664206468967453690691703715028118421532515987977278625786306280479415655684806716539851657438799929512903339771735922867151678650685526977526858302387742664603736703446663905620148017009644723856602177450325775842418026293604217646414370395019030804393759186811943385831290308898076381613614416698253116023729017772194705522942867053755009657922894338556380666128722885181890937989792738094558270264051112993915182846727004681017116629295728506414094858212290953528071370134683069272407861797102478876793723812310022539318700836057902492955362811961170275052460795935883317203228133764741230989606322127241037589570773800136742430089130275343253226990030966539744397560313330682973922019388187675972096730164341175185440023348677370023692213667224513640072175177667765309824244745272750418486832335514988300872654674510332602798642974762826362251329533514723188776947668518656010663387885933571121016337113794125219890572036878529061550532189824208940191551070511355370440318924794161695404266955874614577574525142368828692355126942185773467712042066899347671828759675699105763328830390888933630612437183938562445085276533456988199962970124216364861311519270175711154812079015940066955330059824812007703607205537316792813638657749347131715724358694537601582196351863695077112713051247122483073964140085235724325186975661205600778682148375342421345474870163471132000590152757522397810856560163885351795602693206907876488648782924655648200081193903427649709107534796236726278318621346986550356661632055914591547400917791546799861321076590973254225404316479031010992198520737037811159533352911690597858773576259585364848073138137497039249578037923307842404320119455769150178715223777604903204495009331839387758775517768084624773449843156955279738168754665853489680574032808264261229365352851867366273193125534593068032533276746302199611451839930268992890708863300088097975437804520897387525451169396440166818380374798232465460223513218058089069046469987182250018524455224677631223898706647738775404504564167754155321001987044009587997583331409172779589080142349989401808897646466967975381583130172226505343003023449015491962279154031852630662676575753744301792437509575060584802516842889304364906254148258223075551210236853462178705502093763192738244616401775930804759541800589387248288610718498507883437971457207784520766431610861918087069817738891189019769536687983795068052002409381040368560184013918486040462467721568891028799840932625572732103122393002953961489361078773672213443458434111725580241429309540195147623597169162789177286200497138512366811714083099716651092550953577593367852700955595076657045157193833665717439108629679902300042041157289232963215260661323352677928713504481643073935465529909179269652317687714369585867149377839346146785837109168170539634993560869375249659964272721676270367672129558754872485359199893867261497863650686894664947657173949753961014596435659429627005201280451788605379639741372212497002446309492061063799730320848355278462832222815062702322207400635903409580224818944181628290199625625541317467317174094000040040589076719331618662567397434385749330807314061768258645756744019936567451098714717330636409039351073644864328455073754599704336218159499080577549061993970369534224847308441972996752373690019240906427687841195324565314532327770493735446746613926717572409429934095142576348356681167424769916983633699291045531166052689198068164486645617917856325861403963003519286785436350778058641951837318551056184307092502471276132728680149677228209773605494895710380607572483556273386702124955213976144404009746996762174810183881251008710662378826281850125212222787494294300881781841750073744490850005322723068006107963715462039972527681568174573924281282596437818959457592006729775141169042124290704984536443133326849288828568480512583193577438269393679218252242046636402731021870246668640231136416001234008048283198331583068487261831263326766036848720039299600060274448467981036596996955428113518130408498213999189653048427362834620486036325670910784221473752890436121588125770620324219674030027300234730449667210779230933003517096780195571824053064666006864400970224801429865646932333001390659515205142746652834309572027924664651420216652627844755566069990418869558973872953477714348779425712970455262617739955577268803668744071219802224567643496335924093542158971809524711165570801799225589493642095800229182602553390949641928251029344536417768951097033671402104093979122078076930936896421885230235770557052154759204900503997125091608345689935196789415236714696421983623630382715024885547820907533681427015879776990478157584171291031801057114250379992694653938903977030478818034779915799087320028195471941292189046662541699051931774560270347962276744177504301799382925738321657563999745901249279963887220522223310911938865322079425331304777594059728019201358040316027821396524862752075174100420300582455708007775123592334354107664282741321497997749995288558423443814131832522838363353821947334407854683412436408183305909198828686441560597985032003715213865042392111262710849684446865614097500155611173357580926869731488315996735171312359500063073524678606274652448873386368228592676016254556214777011772727456448040130752256585033513047485370903987305377345497748993944979231039962892601937875297829971181374262979150236472701202398994609051457477302569345320547123526013557417962910833737138919169318735621259634250566815532890161144709248531074064157317788195050675376502034817999359233740752712977873098439761599495129991210097095434532913624969919085803500812203107618432479382978216755181105541938133427728908240137342399064695721386546586671788084746266453662698625579905504582564128557185121384533406356667483499263664862541684392478652514646266264920303699424696547258847227532220629723212944293784417834040673732225287356715014251081123669104512330539600158269166578653567071913567281427379440576514516181739810436725529412681168097940830418178921653840876238015424157413118008894914316688301109620951459969965000021311252467781893002814215255513115239651380818477221195010814897543986609403478888310898426542496595558551001006639165045819113139781386183494204403153205235590231209932515494982625841111586543087139267557935286494578073430343621803110911608042246052592473247787377396005041935827488259216354948858627239743271915287796319559917480265074722742085452862546913883603162683083069198958738287576436869402044150095286295970447306609910450320132367105465942013333117325380953046179822093177177369690693328563340539667836668673269386731756951022382670043483311378465329032745353426002201682654876399866004528634966491713774177674495470173917740994845219005861898699059966938737447263169268248592691393756301174751484513839515655082167885386192361933073181771863120225879172404864972166077954691387805881314344341181591078118543583778671468126174970161260132978882672425874176189363297210857995211065442360854135004358351856584963328755037579348447598632601675401758247265755659436607108307626243294174014844917077680124188589174359434745485671404696366096889764645179468344089622630293935755335640227969854665085620676286484608763842074134390302685997924124226945464068061357784994135287634110523001629850904032561741762691093747053904813128120288455995811829440063876564316215574815497677868018389963993839758559652152364864804900700117998307509938623056613655404053947198755466639657020516606040245778738921891943361850991431751685680816665882672358290189599882067824514015254137440587632758356164440034609663255499487228285983363713510030205547702381640312559798151197912129915353611556216974632826189735854118187958743705859012093958920631945289642994580521198209139962809686402330520395105422320624658358550101717460236329247442162702367506046458498791418570609996548393292363247249225659568165676230582345387296782446297790087405016054757629288780261290204309229237083137745061402016035203024163884663567405337333436050430455457945686763931743379507378810009762929554339205815812659184930075161382844742890554268226722081692292337083067464729037346946191831113155231147847911111250586332416040010549436931270203145644452634368142638800502561566105199713181725500219638948392227280583891743673356925212207115969475648849019254369302277537712113060647417513506053996814597612623292456774867763307715865357962849420007791005206260130193046219567307210567134982847241032326710487065952786554613763229317196075621851032433909195642602117160738213557369916057152402402007421461997269697324725967746626000761568943443506468035419628422599031756722790737278911040345401320546827630775659712155837987774441411260471263211310958538163942980011871890165597113239668210664640615981335083677733817172064761020159771358603006480767528275941748290742486287648359589250925707538070002748459195725642184197081943465257680931883460008568242879204075700933104384859564473450874308605158919957049120781068233112416883793208293923668670608438998018611295882391348822519452538403474232785063408978489859314957434924435408654999947987987649798633490460985995919679237474655950747060812075582992818223771956829767329899669389352816009025580207495320336295424736764012905722521686887570631475260531899913797561450577002251561459802663798132527792305433416918429900721575460979644464902929936027683659797142446494048342630104809211955156726722104334138725009363997589365611809269215791267566887481374488582168196281057687123411461208402922135115000109783086138438324011460855734049814004521632352988637291498342879735562469476961514016006339957389974458802088783814874275375450159203501820790210721331088096740862077222113628669684125609544313722433608395889153411790180025585906233708555335772273454923723333170206402318571525747799328048153609750111366750255712541219290297261581403123683202797866916584496069210163658770828694092212100986450083882018841886688428714210829468090324676359520209242562503865524039912535346089365111831763570288164381717463392491476984468115974765099453159678412317149598556159560213351865254847235581938473462318997748754166390694304633478880216704940165712632481483816171894349929512133687627407782718964913220148822854746886956405144273154067257659102485805734077272575765670409267372718518599517527918727431039819716828420416396965700995059933415792558592241583504501478071833374189910266754200090880961620893005636790180157124295325412514193580402627586793168634054819723247001820090441359691146829638267847373300034598517293260086072973074746537533378492700825410733896130155781252692899576667588576997751910841379939880038672821672450718899449242016821840434685830530608989726495534290576773902176864732677097643011936838928492881573369882344990765107704337189543538553691475890183942058146991386315363527700036368540112754356850199686599514850947498553176500853801226927428150052583088462363708827999429356222330954703610068572823186131897054170208444588143227150274232396088870000574303633323736882411657384509344813387093281307019872278316652582081622218765136648287139360125970183300418196666934007181080153351021622985605560188010635876354814966658634649386477645186567965343423795026507885368697666319354044345906078865969694976168062443267599137633201856798729690192553190216559130639120473445998884783461720094688414904517061438469698660158732396216055424299145474722230253827741239507088163729920903078655452578891994991527252112217589209862071430738991595972654469381639062076886066336321841415140246267169904558765390600904422625876905756125469981645460591349962289710377753466378269461690224283723365095542982057985788127704986373240278259301944058278015900012201614547849220401308572828962239862364979160857904141022935420355959099300236141472219875158046646656522321220458011021062821083928246395416421805285804493118971249986709629303877700335017938603135485708873283265461230142447547549863732493892800085524873748483823445847294445890857791790956458180177984163562815925138257928547483120803078588395452439158690164300159054439963256952610566013206687894206162720765401449171807784314585192705766719042832689225254175743887954138348047795872774696666454746512934295211104073659339595662313530322889689825394926872715398141888500579495870724054704842038336603887026237810529639865899977565806875228103778561910181974888013129631210869800615106125495840283428299489032700187527318776998108181491745139463768811883705072335407427516317744574465052058071169656060358996202871512131122081366039504933555404618539365522344946160071018144046086821701604960110659729197916516099494648518122045823078125283558937929447349340752150011073163837063854312428913649946662692171933503205637046310900058372217091682242529680835402270837891722574387786297363402620634430842981845492452905168720023358862569493200828510231688065717668793410985400360583229522520226933377392922116144681125610015989279964895444492086331969467754960993343436324252420954210115484514666304735336528994157406853230462107017351717156834671520980339518610400305105141351027332506636712341609573686985154130189669429073457441120542504225181948419477283431552850717549068461608604625105863994777973899936805270368667945943517372928506759566910768359326336119576103883949262915724209461699038906316036350039814763569630744629298859962604244749809383964883588554939956246566192605120422237764917290626415851204141561062227514283591823554448977102345849352768911849032449612880257559792683554636818899157297584713217402482228914410321390438913643552979863411197320008482247566536556378453489382568475568031426712431641557791979312627312170822681869730711539060482426003051009085211154068256445953674876146561771085728860338996409266401126348784204142429290535813942353934339850807857643740582116364355996126498643593741290370298720131928124873170636133816665057169033140525718015253955796310729048636381979933347803167787640911742607082897852147990861303382999483498308042399032650892215463905749449910864445975721548287418934061039677693244059754056074154177643797681018497017715327459909135078011614094760152367532445698450047567659815754611862450790495356252297981578038336223963776177996641830825654775075333562980642034393096392887740087103908444253964185795421138011405594488334515337956153692461647544525900849418466735805801856191704084737214266079156690250233488473459973709238696932315798729308935624952559382027935165624195597130790127646979324033239090895188515167175990447530872870557144404988504487607601239724650365170017285452822114576784209126497972698902334562508215886338888633967384697007423206306691842190710094131526675473985551034034507064086525212568862981461678045703968579774881868804249264401981288924291831979248455390313382888180384004430983140344169301492628093104546215558155316497191101344336875692921077050732949815291318568782239061618085041226537770513798292320312509954841992545990968284575149327624418022446928117827513923758901921933677971950980975002268665841887763001668364910029833302715723610796538873254508103924555809252800027235380381397093047119126210119527995387236716227074465720239786146271804339666134541612582998965877226540738630960733062325743631478526878498820965015945675883238858451430134743151204283808653480665939873745825446898917849005038535174222453409205915079790532217957758695286957913773749798424263584549213416965839679083048121746568898812253349171009665407021294734113404633124024510314090345067698385956890266690696391768489355491524015752974342732847264825419947449503242087691378470794549014106197350545310404713738648623405875976827578268173323110621069385608780472222194229986134553221442158401436794344235870801606143091126896957205683268469950503346383051105793861590370539374788180113834011580651682153773242950257187041568420194972699956944776137941519852675107844016484832787039638751140334043264267292078878664150670585367894742769348161046177200963474244035742313715810139985304285464905544218790695016468956637737636113706133608155722532390728553090053987217046345323164797380826335582589485510832633321063608849520018373296919351404418374627539145969913651255668500000874986087943519235390367395303589646526330701950963834214894996685010010670202449283525861513109513463591889274108376641650408185117013374694149277906941497159569192033928815891809734634322271267070158013751239333322506227027466752384147951294842450417467611801526521524497147656800973440434516621205995829761549904224712379426211597267428833416706134043916561493156679158651377624890471754484652221845063402419723474494214237426971111408285259607668364638504301045249653225977877298804500026483638285308865041812147046524269853410250266675026893951094161643229358333922316602650971202769037654878380542767337086246154818894461801478041449217282557023640013981155089472462893626830082000623886444911261635700015339600810531928365228014436401180952132834235199950805637130262571927146495800225003961536942216393260310096065414422035048173293130050641791496504061046347475998654901197249699359254145675552904303669704621252117856025053434617615531815076798496436955505468007814058606671900520443380909225534906536379764882220201799517225401922855039742362641900363206164148042924473235696390775773183757424185042784982774775953715080194372247003643333307391958432583725069005799462638084556127078243436645270209539115072575562343851484563744383692626018415510803911934237880558236685190608784220993511768205336450343341837101013976618068272200167633378916401693663390333323146606934837877256430485620549127604919633399354173283471805765862040956594390428313950080188880833631814314489634162257949838228106139565551805451950936712573137097035166932923030008516830988911748854555446951241662179292322174004281396079410959505951592727529021472601494842540561986735036344160322028063638625820885408161330029075551186740768115740811721108431047145892036188880654291344493266328417395316565651451982601131683717197519081763253440402626386180981830743361367427196342259918400552747829207484281012969555428845418654016005131174690786989077548558888384467988327419091699369864518478845244339544225878307465897499430133967957373495848550404347709846151866924374634289401497602993543294955279859697085439600156906263168220307781433608407669112025901587392575644090339265092649613327872416324537521809913073006620395200988583609560372675454298572380416516996237304155819189102096789075497869478918837583272433822941519536952659565124694966199823511407298577402431603656063782434321197607722877911952390057580106182090340479852749617145375353301556709604923059034156461046121630726194639696537734924410585536287822468763340856066932439570971172169770153040664870471940293991167267335843064524694619307927660072298443119561741025228565717269314681599365969289107482579396690815733594816968969511690267286108374484369973261501611727029530210540399037358157664350150505204039298243894811619284189323962666078944878676485153047286255777670981489485914432821673496616255090268420547178023301362517535120066496826603981922271544926743349860782783438401791122348853665467450310937156980215383398855840218899064235848350488684654757862021661361055965268747412807504195922185794977742765589415579286328760278305183987210230989571806002008627538518660086467529055623847427128318874720789158140685859919533694659372970748776174649905652571138966018030392140609843890699945895326398966262855532895715117526769644490564546322493222249245431390688318845872794201398800764455266234430419901626779386100828262546323756736067789061360424598085080033257172036702294010358110599482852558035896508443709246334928772681296714079470143556962100024461525720449397966216177236402177176883390189171742127360745360791500663480461833365596904964867839595177672996449811934269676372965497270515342462983000910985231674411916610415237656605701652423214878566949495015592051679541505446852673839070297360235582717952563680101990119414105719886591626485613883358261430011679858581310072424971211818522414093146404304710336762401470456873215643157962808237102280634104184796026236567535821267516407965654852121991906186305032971926390733742540085832104380917589023423861082922875476027664025047783199550103179921878453967291614040918031734916229175604952844192701456840384367156491251208374250584444225625883336461872034067489026251271920405828923226565101587368941998331937522880724847419401247767298585945212491816673758123143173361404628147144875083058015360568455936729096555241578956598661988058879271045730323023211715632206035044602540717025645751187500718825554400298350995724587924032722514745091696335059293236229950176331630101227290162209630433108801153210893303042063338621570647646750393107041848751304141301269881907036268378138869189901235282455314464973125294378453024624570220267351106541692589779846485905501611609700876505646422501793378579615319832884241563107323663246716755832270019223537236096947022364627590365819188144049427627920596738434904125493194661426220379277172608147807761357085062703001069759545365959002426021152642276122123996081691201458388830506922947172582864073397635247421415675256883909151196613964812667533637001729187997008151070184464351368591692334960770653263456842592471721333615077331079686230780701176525234419121540206341392857516431308289479788112576013207635499544522634265872389423368536833238468394574389300864418938458351936560335424729990381902475985204112338389915594952863496220599817337012184486907982112841818382740781875776669617883815015043221100684995930381811638690320190046718298699300678639848784188100293833402611774214473292846987529751483228020179684507715589460489015467849257692210073404046724264053706624243160693339710621641793408083074986966109074685483052999441372210674940683773880888908153920956494781439288720678271343876581800439546301240629972087437543031596827740921182360496139950849099906711852918223724518191055220133381084956792030326285502704769570668070121113503742316571420506941530604666609782311427342462420700444975943217610336973202737376443082925865332621037767388348686359304777459201230858278320132923762489488717024553560144300281595539515117551716257904325774690312760969585568019762073804105043680139002544156577591684883881377558415763802636467768620580093520912325824382599137027549019426377120300364515726796989340901801549862911090646339110593764440517737302588118386406135226508756501878859224957401742904400561955137271191215139055970920998519241994021426513764081593676240551457516858472544206954642673510401401634263861440627912469562155704206314968940553968644929898910912534744732698340958261085236051514889599208624073436354375370688537943119498528494979260046042618784833945353431159422670221173370479793648705470768545927343995316414002462942219848295104641841616250234254272724342359123470597845238275100035131510558538562579570144531984914907877875644629999360376982307145582949154984919800309799564512581519929022688149827708404798909564081996678057293912869647985943574435114897763113959195549293229780291146395711054469895029958336810392319873194915724532001092501607432859934185711968439534376581950621493764219582225893283419067096150054618223907003616848899234524463515511617384029826406076992182643108727444956733009185698584349708958570855537980164721175031863771316386643898586640660827805370409513004337059907650835415027866903976798857514433562066658156014425389523916466617628335220423454339268800296434556328618353974521124451608827122560815776163092612725835207251592246338394743640709688205158363187963239333139488774974077498173671521726889970276054018208715894842610648625491059701967361572530470737754165306513993177145096497272132018937922299466184667468056081211730066858560216502512753801101522474456666936279351087783269642276770970152014946262859008688827174194053233334243586239186252909870631005234042833019454569476277604928313814020036548517978918736751701592684332552984016819938675289271466395518050727325116836865628511387344749004817688637743555236268422163035672920239201240186723414255914737591490000393725735711197828683538617100424654060878507225961383043129626693617096387264003172434131248362633469001492667920450575860355553716120570716848506968433468546251940451413528897750412439900586742118155345406010687193626392089043015644440256636079195074565524831683873220170163821523901998177983507502284834596407112947822197137010547646155005682880497962277466581738221430731829707174701635947342256789282204199512141780019496347672141815505338723768219883117352635507591878315701096998267815191439493627757770135389077315574172700831082841667293119984527901585936204117629414887609015447588524903709298594913295050988349838458491098988846585986505295293262062111681305818738395803200874799821823165858994136117355969935473062417861110271957031959668191397179144189429388729222154760878771351045386714594553122232533210558981863076922474212555871788071693918655471926049848644418761482930775356559226949792519156204107994579620601831791211876490328442314111560704032503563657300997547914873786187269656187174348199967549547408107996722224143631119531208030764413648682684575502548757502248120335147371784993029697085510564449330399270407447602786239583923885768072161802460036190074176066286402574710535015789202474246697123050117316957753336706216248231835347157704572009839818120550525115262552680906015125770979995802607864642483716972214469165139087739011914442020437674649943282896703698422634118701009009778265167014660893581949454140468272656949302864288478488531868619728180917849330333823555334078909278713976889408796081503715797857074360199846462628744986782027477943374878205520437856480819825632522095740592024858232976324549192964599236680797499288441981618157775885053188350826742080271166399287408121317827403261437938431663424352072302865368035043583939718003480196705561826762897288941298398186371245926520934879466868142778816414860898483359659321495131206961864368523692646638903932777630861512782713072233788915197210965500487530369861292839791386763443408986943643066490632266848862132526151471844414098031598781582108892343435405180375334358915127832130341289969240837569080148943748935666656202530329394087969145427697139815664214497471626431410452103671890832241709946874086276658161006338945509606083734332542822511465722825551751210646607007685374165800463079526831180977598710870876953712266333728460862109106392352243028310445194964711044392205630874564293406224486452375760586080266770673915251373183491020881947423790361357150328095761275063688924775537898850014264211956228786764746132394708816411789555664742971687652738655403423338026635722252159112857562960866902991755525894333164215840372122871328334632366590376577350808109688803549014989755959956037571434400374859983521665594342572059548358396582665506448171487614739225505920615266733573804936771279404535412416940365359607247807423593774527731903835575477433419457696531636105246246049754302831547571012493489390844605011180955478511863023782492807536282752714645678067474872143676334516345955870829018509707402733692640479189522239484855184521294638607366449052061690051205952895264748744149856048005387046346080761816204281797080249306553202759502026335606210479934317965158571241164548858411935986260672271601793103568762815423458734733979614509076430972545747015718460271004161460341808722718956424507998354153689566126225214755723374200485092989271458331603831356977436300383837394616563816888216683650881932088922069079277740002978153564868867807422547682818894081300328938007488612937322636310653908489187740389565199437322475933884498032339002226972333334833956832076084225237269126393058116242782712169751144495578472179237562495220589426053692926637471540803886193384508362407466132347374492094172525871133040363194938536722871255444039461639138808273543429764052722614673186203249214550270948714982482871933899920273852429940802422359334772124824616959167973636464835189717878458330301465435609519276805187649878406224341308110492888109827844643759012322977079944300566852970841555221089605539247292190183814209701664648404411516343453561511337423204303334449078317400070803797837143883291992388484289666318051066769694376724257847209217892818911445376938252450368657724593729708747772130860950220911453008594208764364575009421534262653955978181918367389781436569662618781672436435703634086067722291400508801245705346353121949172483481035290787280445770195792937662515247255291738951663917448764030724932738283787631677455184699924561419866571329451862473109847453817022325155543808692001765615868487072883915067864524890187583940275490282929319436231786483827129861661958985762328887373313235630351681697434013989744142629490077407273302556309468462354734217129698830807365606329600265825273690731714783647762285968013734073891333922045688575304453888103117649265159256495880766508558054658501033456250285660020472331789217017298747688482635558461746838898906561227952930401418262160717812486183586298856108040613266291277268963418343086320090236123887198180065005540522702904913713298740941457175476076917200864577499168782113103144521163048360151959127929008067555041070469531543552809012679088858941934368733481128912696266711820853634019700061604071236804204695220431222244597625377951640298993087627624644326016219805139484948622848418722855213953281522689849370272341251873204288908316928620107409643920296636039026623705086468429964793082084037466350414095343492680535308269663706174749356294864316668532519967226450892892990006304707814654369449629051525109298684326947516171105694187907884246245371989041137884431377146940894418095233694731403150848388512227107472774780957210194206910815730100602755999632331954614733555116109838989751511712171791111002036512601857423279730282681400200845903076153564230319707976145953420471008934685680583799627080325460718294523977571121296102524251302453447305406689040608824324282079388713033255636104636791718244721016775900834436342481843207717122414718551090962672073889176736075933465689058513690242614933809039967853961083342912289423377306885009963691004432999677809466392865147995188709279213586644405412865100125877810785772527312453781944888913562755408024968884598596170378348931785020963974398698313846140548392663221119185662366686382812722586258876589507100090898310313540668009924377020996187093618613708206199639532110531586607659233397853026303751782330060261462292159732218764449782922497169011744618243599586347810146656189989852359252988908509950459442072844153493747370967681105896121125992049591766454881768752599313658499534792638369632776429665320737949816745427320574683042015916137083466911957827028023908961219765466735998782037597063552488963378795878696431949352208352985608303932779140992415490535732552500298058128648060123955957557619242048894697671930277816115566220821872013896235738775298764266550056606729855722306704640670406835462022430433887457446249715841613964117286693222156902052495785381073125397697106962715569518799258266891966511905740839362122224675737907068195043424958565164826156131836084009601353155563424537285609785851456169672576685230098219035876972384213426227610079349703094258954230345206919998866112400224072973400438731046419373147432973533111432830181287997314222985990268114709563279580894420564837518001505014825609028693391366840050898106916106976292227017842055899396214738118519332021514953259763850136347523770197007593684051156592403638299306407263490789988914899600087932963609581145993802666039883886947238407168419852204382677829124502702424159220945106356402963488883148870237379006871323258884291885348980295855634558946679256072555668530260378409684114738519105627949358311567190923907733732909769443367910337505978778472812020972481068638979237058598635787439516948880226227335943842270815424136613596134693540273559653453078482024379614740152360916992788990874652007212735740628016441365797622560622741612308397260069680217510108647323775142774630095431872180298337274313697395433100168535646655626780204767738158782447929044307490315006064585252883382127034075193738158412841652215960674619100372293609815265987037555619644670389357215907794903052352193945480229294435671292622249305743506974720763691503936265714713633851145659573630247814884504421808888011976271820910524194114778185286935292800439185678246521356822771532464562306516802250068705724369586579553432748997534006307086737109089937336046555294132406828666087709688517362650479635713379731754754305454404291650733297418591720944576462417750596303972410097116202278789502665125428265937489751880983679405991716043899566534220221298747377961883234850205708134726077492047727963349050370262993807532880326220060264592302120499448822871672746105433196977707250468711082434181418412206361181320227980451042690713612700573714299178763583549041488781773036857878570649305753082162633091695409117323168033497745102875520650335067090236773007535648544090982288720488200301270206695826181546081820533998346008064696826483882466322658264327770184675926197914915152988587276340776405635903307003970326987221996760929048413634632360819995395936861633902185326167114854941204280189373035880317856442251801437808616115670715239159429048597608266790059056881974064223441746413638237764621341354012485674346627541776942802832118309869651929282523960489044308127313520869230540876488243496211417899904724607265363965016620176740807811296867397378671161037982943955942044741801640675514996133728823669150263597533190963281439836032325048481899511305343193658440459501590479688596492224949228749490488715440102899221793401169682247509272479619064532036778786431609690038594351758155512776650759793126816135410422507849589165081783166948539710952867677415070941854597887627607507640808748947856341905276081728644706874438203794109580550209910260856651284589752020700383239938731109237315669188954849125441231214674486696948142017520214193871222412061108579905067756873384730855809371868715074794579703961733346150134121273763421885195097957653582761926896095580760440923358589050268031738502868673922239065297029236110709400392843644018148626272986779368930483696033077388866389363735240583916402793329716244949102958684517574400585057614443887132044090806248791445457611606793686482019772516520970535542076236704854817710977674772897265973205789448097873677378908916358814867077553137908417549383760221402166363504392857873107471395389469867362852644420685185237248944048791680618709629869418442713027986845586402979657929289471548389730353559330407164143512519360930672305472448013891065413698753388240665143644742006449286260651260784433889080457332235278664360574581669925066571243625119675571725229962718967941858425914474698724192971678920812384325837411352033742479765450779280730916445311530963191897800190801424411380961049172962300620507796252905789216797192999346650205956049701193444168957123771834370724606493810447512975560681337779401218669963784791732225229968133703599670891041447262293820649972868820947973455007866771608240913073534859125238242680172871345630985751292247856328914045491915096042071090155798049126813427083982068626804801403208850031875936093033789433816144703106184916547002781577720094045989929335100285687402580592943596675768116060605612144431821467229562517752744748099570170344198492299683850705173827426624989531399277269797933088569410806539484579059929765346616960001231836001823578936493722978606994891243999643910120928285616091169347732708928732690206332851163053003285733730895695893542276855957858774187220583067377613396972484521644200824789617652931430506690228407016844441522903215556589899918531884464658348408459508792729377459225954641797680557849009289134111667599252941975437798166692487078843105309351268530225505967993349440339646550386909778456779842787101625428507959422487546368309742710868968467361755770795480558540640284408173124575093400023782982385604731200116216670830872078518153908940203144596273174272260555911691978286483293320688167141031295679837936248012468259087070144808923227332728696835564977129700885829561469120225411439489372879541657060567717912669550754640276315407783822620995398705901296445869595285905533921536761785168317892831462951445959752191771317256651517896520161883153155174161786428355676360281163596113196211017203842807065483622624076521030517589887664456643432876492406560013368303383783376696918652216004159087761250284220704617133276230524154338504629192521875623516238617030892746865495578768622631491164176985426458874174693609635611433945848151006882412957818872674392979533363186494181119329508800746204705664833355349474488943492354983699706817541916482349375104946568769513277434646354502358109080386267820808016141760632315980192678930355162575253047619983286501635192100711601732801896318198398192626564704775465470031869713980241528266638393510598017711249215504153431916272062806394821737535123619036339061012744046531832942829411185837788048218717382398929380010039901789886479333324276906240266601974091570258423063111146538649303868423175991098781076964089998473387386106095018321672449987718724601461076239382349814107267723599027308961499215330677773388909535603765575372540296875054218022699125603584001759666608059405003870801808329565150920346487265966777163408017913520976580816749815905906207812163728142600784311191244368362662561651462419431830874294376344631717173303635744259205929850592071906575277890361168646493405334493157487885442291528071436897289124536024745361611050867666827708949253207190914552591850098658299032787164667077602547257033342720577828209603012152375819019853886873147136756617401362902376150618336080694995047478231645027558700964308633175722500856588764670605862610103675803470923546425131298419684214765499207155972836993296732516355621159767571594469152234366279780922776931116994829870905639194297706986921682799619216389980771575902139038932564990564541716382206668448564506711833045910761218116262582236759347245281353642549597295311710706998836166072975939065351322519010059567725349295820172513899918556312279952917455481524527612691651302083298589177304867021488396723823043265957520236283565840676117387092496807794924771101301251078292226850641774455098210084474020653998202339814727251879707312950610174366276926134717345285541387187196705168194444802447590796807473886842831018886695250329368585037824822874528964199156151984299907048834117443115095198143998715740048454683949364366661966405336682601840633136832097193184705679512053527033758031442269558764694756149915046119831471473424831009046539872288155371828449662339625489565087173362857416592509075572115780380351012899560718167337406591937288192582942202911700190500493378034713155431078859057995999203703796100043813894446983553298651862164613570006200040293884265453309325410941255946336024322800981015137130621090111849209743676619080860029703699717946516189554456839814832243206670166568682465154670975401785775822260584394704322143027878190521958447717537788957820212551060405621319949443390858077034274871736424916367808907765632060131960723056026014335416939878687997423236236311617674028721201533518987854675646663079624831051514895930521503642671882774518036730157963668059622267895258940689112460041677779509350104018879624316822804924791384674680186274221387004169776621803372819962795648933279102947706697323430899504777829828419466692786472343171586284301227636711746877461870066646441139843720593292386647974705889206719743966227231970507069705119866218443866627792851568975583974704216511466670339790041278025560548366973798626636660555859980139992427628400849662955209268885389749173207983760366244656961989174883012010802825686481014092202687573335578555675142767369940172389632772618549161078635255678615644496044269932853642257437812969832737616849053933807850825049894996786983835433968931579386512629261208955627089446939055696806811604059040561808573248431966951341276022204119026828583688473739633305262806063366330488629687216598812138315061976621193028169528248337129149401060583959451342739944890421324347033340111087029412187503547799700004310897187643906660629183913906471215389408511501107813940231162024321992375736367828886451092102714483093158704265037144073219945780726279128387002334280969875357510271138376023276311029817596860906717153362742526050912552756444983157000192849738842786090724188063159070069163457046814643997428127782951088344520985187905740157218288380685003890665295424390775042091126162460048835920716774910049742298863285249398440972027050708521365728063917741895631317256292339610824224828694495201422135980938865374338089031263999542487371761580874929462160184416826119340529541070874197200300774913707477055767444740318318051697277690762682282975751760880059124586284548975454686939479861366124704838306711899918562648186152495032512168395242307906820113848745889358444644146166429315324881574224978224438372577622867755089909856748793163935896373172434231402334744308493639782150854533979491642592079511483256245643552361719942446425331937833320652433523163619449434707428073759867666246346385622761670788718578784000924473389229567275527451050063220968400703898444900559979488718737338530071884930690387099205726766649759490543854285547213605556996681119147761145311549772982117284899224038604252891331231966191147627016197734361273505632214224145563916898495945963291635883884083503022432624312903343742225692379757190032980461001740480539203179478498061083389595795588693531397684801299134429448022438703620156329615668426012145063787179417134127902929029408502846672859624160298172303262665849776604322108397120643521242769933622179871558687794072912250859266722789694502621314443417762948500788820371902426824942043479685080318299173676464324365771876910035346633889273803829553707632461459488301901086042384912134409194986398050782861283925633197871312881107600723011272357384148700401530489794522436577789032770180702616872531802156941699866965830375980526917256555322449261693987241951361665836548237248298586681071878724707761490703740865495400752861757232699852417907934514754961805521115843658213725777277864264225643319959233399018551190939431938338361764043735746111299991475133702659242326237609457064424385181262852141947569500079342923901735083286920365809185753292028318006111472777090991698215223774110546627004173098867571980416864078294464984894065450725635487752165121536410567337448032310686858463623287929033262830171294791055066321143251964991560401914520671782363914451990900429094959693183669555406002386501386232055060034755068493835597612419117098360299536196930636701274173635271636292680333542237054178876233142532622395795077997060846621098073861703490302620872201163689399223130417700058999373795377789748702000110342025546399419456586900690702299857358931268511104262488894047634560238096108215956883312970227711591802383440644441689184428387691013136257347903940390061505609880645422575265191764202936478154892013780162680828319380509611952184124256046708537985334087081926306466376439514289631600757859551821795529278690331407618730651431019488450288450168139888355359576028708399851194567220858334157808731301729365025824839102331067614352326590090599416603145263032611549987999661442552535006708758741721004071025201591850853827537898863957963319797935421878864379090160218829830879839125227551759881792920538331574066971132292628103569879607327985134039944126981345352385829733971100660149837518141506484293226102420896258679133969708627351571183118897044350861835254914832158248400303058151001133504991894782630904656303711746105586172903174446591237259899280646568841533501118510513255830258372068917513183146769102790245541493105806167940720214780707384546382834229653398184804037424846724757930494546369586737362216110222963476269341950426291341949920616122267183355994171194563630139983058373469330231614685400731414046092034656147223345214278881439606896813346774076890161553562492535457752375151213284459029752625571393268702263556550800585546095418105048399063820122993042563827804648532647859451303625010236444660090974904913548415438498559321844556810249968469483473902254284281389339337895697913943641602809326937197944147000338090405288161482439522015796467070974413785771351716667563811501087110628582554450225345064255688506880316947160737986718990507413964783842171556514702601697341914509882348372799063652731206653449110045632477702181591883213287646075505449853942410682074482678620947458608258604400162536502825090532843038135783896523023937078013086365328920995066037728389337405731508323428490333133998079045157418050738206433216418387219086881623274843719206857663424132592446396270892736561526239731749989066939785276945770770143171522663846898652067771961921546161765007338612312217038565614886592166938908834158490425813637289496268449628702110288628830968288282766780703505381288410937302758164239271867896337965320760507880162092202868465728037728102983677552491574143627776885619310790170238572182662089549000769298693092042684189684409856078412538871432131979678817997897486244189692934150398716744236381144243999617472247708702602448419606014121872471601285849306706932698351285971958201192235151949602344081702216364141054917390340177347413415304583632755049692717219183247688092346918330279027158204670008700221381138273948122610094943896351540219813308830495847690130729710153395398023051987226328955096018609164352585099997025568215913278376812912221295120585984438614997403319572830556554202196369597159750135330401605425935393556726501357911168811420121479545391199630590542107300299974845407030351266574621234668778629045236526019192376363365230060754406228728697806647706315960553238050710537596168496722763613749549661891770313771325971855452329816666324309464253337655871282266402319324251306775152970194911872600186761925708193338019845563749162881266612513230540900876711466932116050453724622519468628359252665990412936770579607247442628660679139350000123264620896839460962990879442640364073788232821548290092094282959981331539029292373220414952314825860039632585660668850155176294128051426377238392871460043910328390166827224396077975822864186037646218322828793005600715867757539231293426753949566561416355435767131343218389866951259244010683394228272541747687609991120757674721406693605634097296274044235036727178439723732334433838772042688048903135263360298940824274075555755824790911763721780400189174061857440968366175165099962491052438147702658075105114388363731058227077592556870645662983766777304009647174432945359784719949531181025348884778277674193266195446234474771576355636369714348732498921735085101686377002374609851282746200884195341452699470311687930233085226739454181871219947842000202119533392254771608726470169950988430018813230645336217242844732296239095627503696103480074787477676842845268943517490253700133571133411299747165123317880926394864647596152305910817565794591482997906655861421803790636660237437519423010237081042718938339020128651374700408307414235853622104520657015418255725019773157090746604584962899370799839175448965087336549674232479994160068635551302613972212302389054258181100621468115003086544714592826954707245104531845051290122419252938779117685890592123042697795685893586700397374205555282564250824319929276936331523885787230429987998255368916024038969255156009368623842913860433185627892210515731764810598936982101196804015189967612152394697340962870740643935669373885889672251462833127734077252597180533600975097103160028545874935775789429723341132743082484085817278987314467276603351890771429441557315199499303851787323854683789087267201356910726435553000326007610521007410855110129111581175690976860302532639955939570738483728349234521287149422888756335324645618168935228882801999907964960658127661673686489448213764852548312027982260505717124125332835650968097410576786096529228604103750248947714655444785107620908869707134640834573647179691442260993113748896023484370406561178753505701978099905368684510972382779731204353697797716812839045979169509879466310584025564338936069394762819693139231841026781748162417079829238965094865297995065687299582866720557968986209792396715566030184045852336272835879761111616622492940274467396920616241249689820062959716451485460021181409400994288585279090634793300704894825922282658950214294486301097876428637824429810213534691612097853216821893351903641327604618721485368344399627412738184957738367233044798123287404242565847299477838350373679467781699937002846064321832274819015567415752702302377763570883764907424240121023795031730637670539249827646660862915434135546489698416849548701799836821083200064248984761305073591335934924741909192991114352180057150552500228774363942711434795413725039172462746849005719510234125816223432171053375518851529562638615149147403123643516275547430610831055585573102233328651096693620188967992329215762202471172893903647823691893693984401123988773211980463365417714489727020372106401538661900040151066372014078670292226205106011826989317444773800014042793613922246536318335708228392612982496426878317259587876068431511144144595466771358970307826338037262304927070257960754836442819670737918954650484046172493790081687012843930574301712333037073867949534238547591643783619409828067769837203685488151412297826817466535075507186638135805090019852553495381782241921555279474736988420069609778787034191636348396792270537466186849857776082754677038796354184238687429657288501059120495852515153673577404545552459352145135139579922424896034656556703577383222519703784962662290754950813068290332259746264159591458010564032785618487746854715363995558398432187075513201412631116452861601334698122090145100855941175043951172203543098838696164084623474500027062476390252088083266617476133911493026047076877669417673187482672890464151421189674467310542039539350866004220589541747129537876614242565689619391846464822968158199770090169332156256566052901228512507904009572949850747880743900010763090947226426171865441529337844299828497532863942523023687905778901565861336199287720863475316728898935271013734513421292170439990864070102939048692464303283376205243606150486490469697444137976810882057787879643463555165210266813348592636790429267109244983083470631069818132348199154693697217041095223819079980055346937908379701471198950304372091275427250623133236832709609111720710077808468069526465837103910355492248631114364387740813096347601769479577868074106442127432633898405090684732431388781373351423829347132385439277390741489246430185818641243557564583084397473811923840830198883773194123517875195769533628987267451714241761310615721734269021182315259923431594977912684011216963458152390528070969761418404660828339099676391624120123267166955210224914689724546442796156265431794161163628063961112008026672785708071499816816799409516818665415106674891852982031110255269014264016187971601867646116861315001136121988725986061833169199089199720918306282791336628093453262886822547842629268129818846340124974875638383186526335475112916983728150799431932940604983548113021957978494219384728159068547016022669797901445312190269146538755233381994211502105360945193047167435989652007558004834311403587489357190266381529743643538504856117894935616690721372096250277670362108536803637666814722156145256041355725920322917715395283248063816373602463846379068100274817370212622344235161593141833446650785965777432307988710341119335135261118774949506091723632461153615076608413641907336344372512161544507037428323719476286476594027630430245413462965848602536697453717462985526066487788622694255710247635981086293448342904092350189397089654107522078704505891350338283693681754578186606439185811674739595231112054602508764050564851157661189569061275887354175655224086843114716810440766447457465993764082800793404360524435535781021489354813722234486308872727967090786223630263653566285788077691968813066566199933626258567474399089053091807320423258715342582514854738869045117203273178650511875937250975556788212440546114421384389125762822865754472722273285058300445186706316852308155379221180533699793027699806331938961324081845488747512250986697587474361574903348421642564414197472088341022706258865153739654150205283136986761275632042606310550561749707298753892113764695090260830390577782545985879871977558223126726428815196303781126328757399568481137928665269125043407247929804612663834286684025006303232018982289109495458051317099539874608616294059822165742717116835401661582096699062049352691847995526752754710821028048368850954149259537625207780132130506707116465286044338509963476369650840753338250065270122851893317741165574332381317268981637314538373463255367525274943191616413142387657666307532402313009090794618472857558492630335282258104856624853302956771888394921466492765873835649088807879503135788715312231721869421960897332581901117173949125440301154627623577701409722776861633108737852452250774136659548091395621882751011715818669964351766836028823831759437711772148142545493221916448245718052089848954993701550106573573754070605715484309338120739906176804925017307004687789584417634439982270194051072167236328990667239161310010858997432005963712171247797500231416107732555120577044877142834617773238883620476483727554280806667643985972627565324473007627307974611754607108003825100456958638373771996995594822704115868377291739548274264471156794555922251531034630134178489090255935562499579652929810892817173134151200745311957244117968074604312054079844968264768698739885645570095465618455422145831462783798234748147373758959534000703907313643597945790827694878972847517340467922010995648734381505286138002816226801916215491610064596079531922982818586717349942722424539785918137797833249378229442711780756340741334774163555240845225471970913131563139255979837306646068851956293167669047567500143130976525156262722599971646492647570729129865429583727223689567799889360171479501777836021591490798932040684058475632083864916545363891820520675515108922143130497907143247748109424376554941443654231623661635344855713249326639009020558008848182176466155294380687110279333435894882329320674896698592920927783383054235485526417717165339857386899765100552093042259367020535805612687440066481321889039556355666602569950472690057106950687721086432885194741407201169816047576991744318474783053262736627792619432742597943498637542317764319849113089164481025036086351224818092532282627046621947585419444817610536477476569686297683835041753271729187206566647385006577335157023051967409281636457369138258959070238093737380492776289973230527909471445032043197183979611758957475224551507563119069388787380105534614898344471100279697024814167377657526811997007372063073160945509012459461676446423721956419528067573377400931682525079972112133797033479213640695599600243589091535382268425763678638727508024528195858516485992113502973777186531134605271986141948954236473123668022760071636373301183548183549717765985579434564714061795638758832879776808569738196835043500912575380767417010695894759116644748296907747792266363217292803922911096795744068201568887677442359476978820397704856919343905272673008301723594124377680257214292894206390916845471543672066195698529088439594852091373330041452099607252508111276647312295703307626821265284077922013843160561746531759143547084466953513063474215639244606708324785739649992652737041754900524344839251779098621471715568669863528246210835931564862050137730624471279867940634931303041300211310094894419462056050683697203461777525189897674518001193854130660311883937880465394387674814521604745296761015108552350353934489131261370824104610271817944992145444862122088745385995673319546749287049537735225265207653012123289601626825268017175523326778169354623913334246567418234484464895978218046773548993408610670890207883229612543882368717178512743584380513725257007660574104105845950502092864065929795760393123958094328668585078152526211979473073669227404083349689449353995552947850798084727867813648326892665564150026021831764548905324744294230325500259885610366737428309936826331044969570228103484591054221892273537879376366203736827920437321655683947500730355499786590129811853471847891653401965646406075444570181425725033729708309122983373431928743830951401457341725640012824286288984964845022861221788748900260873335958207641148849043723254047682453918953006488231961412334856696294396967750285808016807147480069748571295498648450912658709551630448550936759065894519568690667172782851129434220187305631706046732728298944063759846215728776464899904719118066228964028169005750763263910835017926846598635783806718200941219636071077670188138152916432467389876408660867724885167065303559915950279819593261839101066608751933279232383663330130379193899633911726171384496947275371003054636228423522473176785362627412202182042767612253696661053350738184683610293250140536564748103672744443585951555489970398968833880762532520472117702147591065865995008561996659641736005939340378548896695068254676886643165882482483773595727334939485406681374021410232154668655549175887542049565215607365224943532724101447058459698767322320447235446345674386759210249852361972593848954617842026222305791408358228470236512877623800951505127506850929007608593972059772184799464581838867850502491443101875006816939788678066488354025576970894810007974631676507706665807597462670528055849033527143633538883559667411740867973662691222612692477630351978357736765945184150645746684615610626607314795517746331767244093554368262189291581078338034514368696425254334527653068008668017794123172392483809312216428376459674217623486996458614101777683523822151786064599060501590920596993289833020391050739120656664844271854836506646921116761915873512283344584498188695194873287438023714120035896796120574154258334817179879997800069549158844772914078648985768293812166042369373846822329128263033079078124781360977335015647440063116602887467323513397375837225108689150499454410329936183746215308147911996813535815765936100160663230250855042989732185842690514952807743717850435183420811991350491863111930736186971043347671039275442099760877236676792189513564604480044639883158271922531383857941039666642087369172430520522182094899425007649731869617863640372977519234007858662494729286363691719982661415707727303355195672315393110111943348162714758924433884025218238020584713596896756998469435765595841962575198393189140771750900066221313298321706674131053804435511725604990874912724216300530111903198081591181508272510494156063975230033572095527752306221766941752828369483964514077882664833891857873974713123899264816427843678369107087582286182975715922002757567379243525936278067093652620863881984284351153604465920790731903165903254499228832029883851567545824387985546480438369026661898268889646525577048600339492876671106909322047346514051568970361008581669089869060088150945937059263441576918308364767993177807399320410615366598703672319184747149668916744890467300972402274785963807612761755086214881025797816092634525650584017780667170394675609977538225135019167764723718362609298350544518203510992799352139882732737433180888970217975633988899933376968648804359750146838736792315171347472238711589928861548863304519234629297389379984589203307836182678820899026441134006406786991872650144771688342093199309484819481782780995964651436088373091328196966875930809670292326281942926640477557566292477180614087449280736034411344205137898535749408707117050100768755451600513412821453455691039699657838178472594414031271188120344945032543187660396318983010363039683603925663610962939930730399045511149556669063203906006716502672533500260003822575193122567933903415923436513891994849274376376780078394895362596960733671181989160644739207475098324198637588288567515009281883286869402568473949058125936161801683554273349882411885951030983633106632982291449441153411200076006059931412284319279025604881003909931714818988976459128399565616913467814288792349691579873119704254801620960789870252784025916864922366602951954565932409776753528402913031623815014857479934372401920727026321802819660760767508138652925048824612921043249178082402745778686153570585785568343188539557804320950975479968351057443221722760653312377193333906723909630048532172927104341524032066232600709785939256065378558925341104874802257385300401103903789103615084592765042510638988228526044681217231564619236432220072551092269219040954289181800914790016822537885895241279183051846148247547378741076188509057942079342456787132687162722420621912923898554747195489909189201108210748296406752182702913114129697366362332964682713888378420511053723341171926594710365522540735573131221992545123475889726407972522905209714267412125352576340666621291676884346613768821677226170735420659017799464289643730210441845355132433212959863925064052722438287975442074734343281173437019075023811280439257194248437071452500490600427973085449873628417806388769925329672734661613581657573192414705001287857174872560451863237902208761054386610912465760767091101674698134704475866546492760241446056173957287328750416146597820250002927669864366873485418430916673235336906750288224420825051927346743435049599612828556738166713152547907875140415714221875084971691438179896897276128313281454683465586111504831673318462630252534930405648687446720455713301257150511977965214873180248496927723615607547357106191096906360744194718931966844219505251168743522228897208598632550471452706956181347051303156860267426149384983279513605882375756717373307543677483003486186361890966999254944421827158738087935394860324291868530360311553581239203062098690380544396325588948085213100935312097636594014609882394893138012272607869997864421696671622624516500930617681570689868504357488127243838898678403759252339824694480006638416137383426986942108797166483497682235786189128505233426325619414057711905678426210995724454168122875853325057316282753487960722435739472067262252894120130014164486440511148394914132877720173972173348330812020350268598622162348465802299036049924577295323049184022177707478049664956288327955378351151235258450627153675450176756860992418560726067447637589975670636814026019188774107607639703056955291164431839151891542399589761521225410010929764433870264157134530958331276698189734090154332648411191644505240821334186586057551553254954706723418916332202037139711206275353387781023171094679420799795885133060641408916078639255766960906391156737645691634902190293769671850650035944551398830232721800210236130266160977460882157275542646137109138555495629453893195741118880059109377201574045975731080695080195553005172709251453158309360498989341994158278046875269626799597800218217185850485750589292288714512304649943596161899119915438962222909669623584510691859431897890112983888848714445552718772024633636522469623486771570924320214744975678937071529879684821899721935568073054260893951690783930901656651157187763907779719147638725829655058920017486560227243232783845586468138682489791851322553147918315946619764179241239183313068256177469750791694700100849105617546963891380743946914623593571686915147150504406563541474518429517412941236542442444770501093943298038558871515976485884929610356650056709385548001832730839032516120543837056536778033720389083109860620967726862980451815581404229997355720604385108918428730665543453433816696723860461785808764272212668827195760035658729258729870929620249309597043556217902579752784740060361147876086013811654343025962696117367135877120291683609509434787575310783402301226224333524976401510505675309696928738258719743028467589992310687713912190328803357176862335840498871870550434625399602405292226419739793687399649035300156900019022623224473997219387885832161580585695308089077628715300656395490523213953832575673239897626290793453150950953814181748668005072550118783180522612261343424063867563887375219164035805769680903782068629734424726119017671046145124285556359132755671273248720695428716412009018212400355711513305037310858092199124788450826682562017930973001794994587155788204152260746232974773388929060281895813715964006847149182515477544011203286166888593590852379451941661076952669479640803300297791210851666508483526112922041501536200411540482837768078469242121681211620014108107590966530701942941585129607368217965475580193835831467434130048229619216076841291254669190322445299828829467971217155323865472188431808888620767737926791897735666109848160191171348790319664464150454321441344842579103275510030464634746789078845439734496251755121557432628591952055114985914630224620048538533586362694101313506320794508853202839339010084045537599659418771672630701233643727248575186273333629105454094215384013684983453760459440865866917917133643591251956787715709964038599430687781486407263371014490047424971364031930288692464207839850605966641299840415538339574418126450964895246108131345595276850682181370645653728102312742254282673640412786654345817683805371783888837139188625502545479464790629067903511428084949700027548612093888587820889298270919297957302365307482510522340088516837654479153746425289318052080460444429414339769159273896424968292634840155740557685287594466180523162727287053248032900177902443719240091353318851683162344148587594423115174488197384261333170041534575734462456314506721421731097435048172839281687076886925458507777080346829873049345974774145613996827244447624144617229359258767558906491358918425460737777131233174780208612102677826829449006150320257818867465810833069232495940942237766397294442565753479000198071497535310165956009229549238336578797597707815241057999143331731799747373989955628988411771110258446128242217318672758712723217987564816055952349671416727973015229497689991844861374191176657602133392955681981994554998142075322408816627003154323448519245157004196385607997373281704438268023880667046276785941523642944786921602308006021718607075760118812836783146564731920677220020692701685426689168360008165339112514118475769279880680546714532320711566469829409835426010576012778513847460102370161077067758960763948895997190310234539907706173288971694929935251367045059196659973278344299740090713040774973087997187679339315596944756463949925908715155795464220785682729725264174173865333888092725369958913501288482752097289451359700607889632799548082626285557158495789242961297689685319035783335785406967351144542698328917358585216988425367068006611795566915089136940385659230643952473598505608959467784647475003036720107982184488455315817959046285208881678638497395577883283950155764300149555437585967323118110464340968828509626264059034697504918062681274456143606496862141583695423801826545360699320694090322329664704064157352346438870407794177418408419388211684260827714083999435318155065803128589880569082631581187218464236807829722759948036128793466000982273603293835700506919566030861661201761857069243486424276102456166653512741431919909237602168088838252041796495040446389433857110962724777819392621917372633792636898544855237272224921294082935568868107987277450784719733636466633364199877347353318512040436779945989801770727121841491883186672696567274033955890285282261899666582963279751269027225560765331762344417007169244177893133187340135092970054173209158771437386282854290080657202191363060577037935475237887928853393365582840768358884026991766527939458044403026761524894151621437069758831187103520925355958093241582656987465220429310328378625916513797416614145124889781570892415733980532165365421567225073025226772140471250424714013616111499012945748499170136043304279748583048450975561763443067416845229089352828355555396501221945505666935188561493341016948315480034993208974680683880909233020469027962751718826744902445317690052551855320970670696122088622270307877326209189057713100313135818287011525137225320523246493978223011126304192833734696416776010079583356361186552169918144874701633464289193030840734133266610795894960784288697952383872787728725515788476160416873844217841639660829823134181156327140768160343432555834724677543534517111310902786940651537573999649608827409334244491262632189852984275815268612529866569513885332685668753412148090022758216326577689522522452503693203265393627437922387618035517171401603449251547582135256329924177116206317730573580700290201524645191973680534751779373808915316282258754243486965456525535582561662609153574394755235076561209988034553679725944580259526135857660264830842339691482684286620175056099551480885642017525846263705088743519311513165181680184525024168614660447046163846699909196484193016520272675377437270770578269341033555533419582594784867133442780225630154540072174340966944134609157456313448578990888879552162606035537658365267930670294775866482817031011054634353037948686466079136650722870610118667524259714211465015346205763328722595299970475108281211055660528102243587970467837992333038845682328200556206302885899061898244026684030325960533575162059664555304080493881690794546357585765190114193626207433245095738271127933369493046338982864838392787702021710497739998650005464833040687011377899712888877432592807743916354764375208314052462315736068395779885941713359225828830369022371660954025635344543193718400870849392883519913788214888368265184702013837027019517694742406609844911792209463256076046515186658551760311213634132824176844432606802792325004251799280869855164632235375515042170288517612612069282200464039801368319828573218610310276229405931517717736103725349266235453606422886241157527647596796878881627551380030109152808719170770189795503127129284771963378144915305741151329269323545819958602786406344762680854453124268909139370431763275078375627626148688068355195879990276619838320979917265777516907639296915643729799742445199498724919490075115651780707324355744787943084803824201880139124457349746886648434859861422193541779564681252915331095455307096901691766222975213547381897896409442742449856291177688454089968213598678382731676263682509976842973318264119947070416279121137348491101508024856316118780589757914697907034318002439708610074905843217602097164392566159176283562747870781813942033241846415815712967094671887164019008279574583400147268153465953027217969208814381034776567889671489519096738641825248520669325533159946950037130407806368109174783296619618822237083979866886638958884896948216450778549105254686381099074710194916185487470889398962206469022425148036889474480580412463660260044423480513895321760334961976696850462875741811616072685035859584830775229852173867748724332535586427174089412476749819300911608434449629137816859604240988531456389114709947627539928745746864608469632916394102619863087050436114089257701084059698049719344045558559775321718203724792094760569080507645348547170962136704721365594104075927257257748351126737850514012398943509775701327393541834903040358075856349884909762633976692285079298520019051089383522130369501842974633436231979789410380457220146922281722209408240822410574676325786240283107147204813382906393992997842488013925821119523608565944397931861180539066593277093057194634447169349477198394263103412630714192684969781700107493750355449841038277632940468126091472300359231450916606651684106047342194723865105071551164240582920438242465444418100550342231753222717364274599711531316927377729172398062771853024239301677985406133961738511954600033550236176937134942402239193150821061285470224876348603012927370365197955406100172486039053061139619197899836222898872292462060584871374077136348187535270098786055767338992908925291378281843572655346266437141727415414717762338768517877879748756466724084641666034175951249015906016100089203184682940180237769568479804930866875855218614400401926920735141808620949861819895693142499999033448846130115000178733138022213022732623525082384020825002423414570195411812157773632371948707294617839001973754329615639229314617301390872217729038392718748321435354813397879244949589762351417643690724167687184287020781887056630669122722893207761912453423090049908612634268426611000329848748885818207082191182779984382867510960038037307839107737053394763768312606251398079781532717762468916825919406376991704213532668515841356723856258394107876990772578466898108974004674365102242774207811772312046276480151487068987568770938620722299122555635633080934263752112062019329864968377521359394933998570837691162758900065070151940809783551755262681930560380233384638996091043597110616349223290623074442571049854705673093420161462416325579297346982112233519601306472405580702747713007008294248630229749367320988561664631748652065788731634520560982451501209384324098900653435321879804589532494477694997975417479041069092399972074785396356675486346276643506432528380494717333508032066961317927153077943151779001844221410409545189323892879815700481733374618437046903994427875405325795681294545146516637910676762507048041055510382893344572023516399962924236488058909355715060425102625013687110940568569359369412622194974074016285773361349752329282559767240032601988816170540475129426936621770964937192343218491339851727588969870704116626906126726013643557402088786892646573840076089405324345874456169799608101278562010545287458324465560405278874521900012332645435611937183013738749496016728895190194151343826004702730470122002945485600373059626637548686150754760384039180804168284959401538388604401851960750732515148297403396336156760528909666032648190624972541881903096533572521372658104704225535740505954870892342833376977969442999109072583924429742096354613646889524956729149212672717934582613759582422432199400567233687793391327931950543322106638349891488844585210453491089947707613395496921702928635020151063342545599986303690040833273278048415087121062381801224194640369616493809396524435325093665806897631141894600868450477123498093703993784507395962282810192854063291419577269183664743125008567660986858148741279730167403936934991548308773427683749897637128606566492072172091066672358031821474442938389751889771646672451764488793389625313357450394937369039548006277407484009630622823657644753459038463045125000446884606806272562240990371905111092623302615970857747874293826559455725193711318534126589030939256438636891793478508219671443677406412760430565837925648111865623766480624288266633783552089042884019723645742417744788875779657767718870915764058068366202995001716005468840629589522710478569377011185140150062909146773106661281752897050758608010799435049593143190844683379086431418420845956608103989670535909215845893673941238039892633262424559062254182800257987220849639713817414233011098622379657117666923172035143698825293595083682952159634975045873315424546322165851526871650810226320800086714538244595494393191382085883431827858957241571110919503092922428740873635432474021105131561224584142315059946448692903355570294307757916918985126057819482784909187326416807256462554816955898560818608439736617500139613778850053847071366151218964672313878180874868161810846768504569658575570815470766016800663743798499474980223817098442970446510083131072687486804962848887136507929036737099787332885443943587636694783039946347327810356129414161606172420019575369318487555498237069247768184304470148776406455975398200635809597113305294378338412391540397207506642072250024044530322919440170704540086181758752285337132056740847440365576530712482216437566552659849270171681669162040878422685966889009731269570177530119900928018236782111265800954078120939024551945971682065346263217235816460449271368127862292835018994026686549660743481288527858938002864278092993506333652805449836008634447447470534833632136831737902357783353575957131754672884902446212069115110151288792330791938818817524268934476154872269119706837020628777176347378738564877551357953084683786085945622467783802936418823988868036682723476676186783422408707693443225668191051136770386658713445446173332303525172346446682092598781748903096660534649443025479396766413612369109441674683160842694571489889633812586687598214672499711329059683557377102786923175408302526482911006249657517577669250322468061170393695515773050969071732050247021753446334605442651369282576108379435513925869777392714486273573453545612886676450896195978410694911922663659642309691142001202499595815721063780986011006402414641446239018371426326656064102644940166667964629323959385797597159066057016103237229937087016033374939980130583038169215997788705757351171935403015414828857985239022866979582951255659508080025597138304274270416806058471065308752432865036463449096449294529547656220052654422746324034554698448919241017331969791971285840530839260065543690100276392767983454883023611589485452139998468728269190701806930879151749852516862024174061125098331833298253716932263106746119844435609690958504944756322411456070101727647670791828592725444593167760444564861271522621302760018818313797145158339935355276847633650500900922500163630734667180536505238359345875875369392442634712894377266165313800469044519969094954188523233038474914148719340590099245166207977585778053595591855598039490098885482731142428895632857430105268264948528648475460838374088623551515095164147165644234963944281516482804072069254970556685389835536068522486414855667397324940681868837993226010309118223457297366317806607959668468649644556088821333811087576701929037098162722407732492925801240794481361947611299773551839494043761763438679704750541165098681251287996112390862015986936485578847874170249350457755916406708209995174518562082423084523927574104335242912956558227540603957239850756248226365340340952920690449286996862160706710602999233770453675409711260233334691618322565666228531034758943526560218807162811526934042963153972746029330074188842751090077917651734269820510489003222023523282542001308238882484449762472490962400849142067985813596756052415001112880827350306662555352208084014566821434481551067552166071815747515980528056082715164732961849887931461660980066910144719211211951780776640865743968891530436859897502282490186671236663306217424199736053641951369928425432918241104171753001033538911678216024969113756180192742644412930182915086904716855272400730122827791471228470158122932095895674810111553851370510934978619067799108279893572029395957865507361134490517366757477659699076249703055556693371488685861348500888630944131852962758213856363695498169605963516850589588436572725500123309979269762075901407777902603407014405929264270837276809105590491678958128940484260451240061579696613352708488075490381018524653656533159284354107315607921162262507251836848463845524204314221019173964822680693243432964103255839273658385236442903464833986987748792207083248411749732386984660076918195867598138729991541469216690975712769745477116307943742877349852095785116564692323710614962185650878659853231648112494757553017919600039961951246738440576763784046440653205318905060550476809407067408855496842411057220729985575098888918250369715037478097125069484904673394947604472811904937653178406026615706442779921027987922755692423548636921027695967280502301112753563778244683837564579033382453854161604593903284203079378982491140892731339845339313756977039121750498383341388852574638598046334088576309874456179391824146564595820593418110546587532941065744448859712296667044817810550269764727176939371848696364243929868359696660551104612571741236991225128601683286268074935736584234674804315923793718626920526389190621988673497114280345454578917309573016767536640503846078665406996429575803437153675760720512214290807383816119849659899622473105596073754723039116698292758760280933216500946448557939627697846885902492154132978957238124220901624261762616288405730237629138040442374622135244267044350174134533122441067445085220149514877761845095519629263297220065966784083201987831436498514077368018226305004951655607543810165393375858077850364774516174764325022196033236482603659000830584449875322469009836983668403528014749750178564539767370725625137102857399769291914413460006464491775896013423319422524156122701832798312160510865505418042124730277846017850703436049025707979562424012652185992464605335711469077989790448992267120916165958784479694031809168046358230325722575428468378598564681637354850037675019443581932869041467856002917576670238020200112397341894569502932475534299712436593539719188133488249116551267350143042399346259626567870137557469122821437979333485463401754771819340531854689547621882719019358192821092244496651950429387513493108573537928873767334475059285749458615168335473556365052827887912007030960832559443866507570564277649907006417963140798929429298662875815967281079241578301774708951130516382298738097158010787423899457855833074341334712623139969019716976077842581266658198215996417080238161761430553503828842850827873616714546040364655373410136228051741900496235063324841937398068734180341793647527667578446117683438768888818012539206046347208844674582080019483515195957928470980789364300908209411258829291955686873191412776052796280467036435796643260741846256428208646468104327931113751084489217571270800782534649118919874414785724356370947718234318832371731087067266088841471878146277999815558365394900180051847119758993118574880155292685827296104802189569222649339278918031637254549428043856101800611896441910628280475437672986039234466823084565357346181725820513990815669134332125445830537866294093315578696144007992195190472673476092221950090286379661218558929107423941789569536655850895370997444393968995773663154326819536940809969308432372892768040685545624777204631328778810246670045259709137384452654413170782691037927366410350766258707517874280102392888942597250186301478710090231116595425878250546924860811527211512044760993048831340312049477107669228669988992122711514024048196011818191144484172624974908442032778504806894027384121399048043956722754866142286933051355484047284622873194717028798072518180984135895416193475526096914933994036585042851691620165581096655522557697982136222002837266637893975531090136041813326960779928482899723851032539058749463113410876182571209301282031012405226024355060283164448589783549455505602516522439448213676417941055136415845067287668740481112368195637729720487946160137377299175841109360781578248351480144551439145658071315229137070998972991494557882218128625265587787573798723565139224799966171821556130550852172718304460590435667877214092931475797859055090585491540486056778337000223411645085564048204162463532286697563033910808535691021497582545884565580934089119890990325543495502497296605523594315320592234176998983048824546399302087482861954537248577453762531088255326089325006405141936748888912891302944326083662838733791588492822491006305358824540286340088362846959643724499489900636579698726191096584184588736499740240688869715095138660804227286084191875078018218669077464573011056504866312310289387626739858443124286985703035841749593162900203961472203587286281008560880791539844883353290001596175464947296528087315891013347927580858042415179425353616045203282971135151035760836225702227750379255207024630627329194427595773116684486206189341827134940480726261414220090777579908592957750419314174746871409090408694985610120309078249111058020074584743065565262065045894197272063294276501052537337475656956928972940093383032667040467840974358539832313726953521195631385198925554838755795983369165890851197804493730035496689437911128260351542289345286137304097800203722749927701443595193011710869395370218018909059477912076995469971532263576561949220458906763593400885101385048641347870708045199806109164643600214817786279749247399911450733356889153250034651496247230044675515510903113620085262795603307292653824291055526958796549970840368776436753429664630292219703449246539027898423135521423683873061687062452188332619342206560448339544622422838447643814963748927256210489564410828261005352008683225033198992653572920006074172766646933556082006168395709937990175354693384192492791384678660820002705096105009706920372160797787070037410793719841708569097095391809295805077607709634260582485119771334665728094267707437544674708821579444308752683931839686505528584579816242310415536599721092700800904072658262349490733172300692693805328047737578928175395951052924937189702942783042961990238769586161785165482299697277896456199760021165634369884083778736554456845815976412713916359513289169018505554412218360894438713793900255955005334685009900702777414672586067791955397812465834736531041623474887988300196751286049483800560560835545111216456623931622915722832154705431069547435302618450198513456376125103256073981780421183680350728389973002846026958187510720343816509881112959612464978112766465705665683740797696314647885438155049723387232245450318017521735587188642909166793303272324505273644017458131238156188247087265696288727218814018003784015474517096343829609609139489233463705781474774731011055849545992890116069711853532643381183565126963439583455565409126831037985162320827314572664678663171302482212576786997402764221829353364383555784680191270135273794565823917890033558350313037202956767607081600647122498826718752116687887299935449563360644395514860501137668533058985221236959289686670333267200432470609766873744969745608577505471486816585623105761128492288289858543786682874914524053557620064827790561201986376357878022667506665881005507341448207845219145448672994026350742174375280113207891781197366229819204019107649856812251897800831538684725779383781371468623763829653827229259422681892829213776593609436573562476934234898020337159421422394414925866228927139286646229192398772746989329389047448986818134876563641986883546729397656867788490398898732050745576280852449658904662209364570572398013883701472642410402638754690590046549240341352245139307003412191219333340288100258666802659684152456671016629117966215919295656148850023657782171561474069770897451196700555483259820414824237455255803991343683649118314033932357798305735882865744131586626530472635252034410212670806217864749412094267814691940006762601668629791632857642147151565869272624245646982774112317535932577873511802627826151611569684261336851092130727732829030859317408323333428652054585744308680414584928046306396264357387915161734024019286999414036580951738191144672247060847308531608316482017582423747022703241752050289770263750181324360975637939489459270314352706954083739414512111815221654644917252477013763946012498720865932019493197744168344468498271681524880295521472716605875869444961995430692559931121484480321227721047143624072874869656754723903927984154576079514234893396947556005022822332539084576783390902807105596395473835907441006424137191236003564480816094779253968749122987983465108659463724243707643594996527548893713299200805626386013408623264010963291885764355689127212360188284125446385893886624746388712005447372573757139197769049676772455582762975633267284733553844433806413577247130236678393595808736168420095279964487598525168380099176424300168144148398159400785986005947415351341234753401839525570533132440679926096048862246376620093574755184409751054098473433163551965436021942790277777665470168551676897149790207543555745944041584911087503931383460320767871285196270143916985385102183297699475920316801648381815840743830635368864377350056797180354988952343035334874117593183862384450061914985136409951023700094926674753109146965167629927173929889794795330298400745540316965082619883185105871704437023634850443569727577738955434796855389257763874948347572597478733291400321900934713367841202649476417484125518358996238821843710921210563561350021071853712198159435384979048900128134071964082627097085989784408141240329589932855788170818669953375825401033704332743782883042070673225870973850829731980974057811711422422982371340776387245271694069547450042763406030073611252015572052329059707071040518367317243953821008215562836323376122275465867087156548019253252787334223481092060941250274364614973504357542748010111848148649199766428488044959092485728477205875979241039759341634838110261485923996527547031507924710118357490464077276417611524788085770103309634594843187586265312023327963102673374684033358706138816843494451661334447256259171778074515619834454511523908312029752155837314753822084697088171018442574830633403243129537467849142087284041558697797517414889046350931249911394042438005419617746902173984379996406461126377645704696180454959654646436921729013957161800377357224273368714345634367947413457027069761521749764211104443872494922962616704535325720022007946895166421012294490178902611951842349212523747816554832715325506039629942184557485377479979185521309756416648933346074073584712257498966230499910055307585341811438962843292775833728103206140581165320839668497833004085100088408977199903050053919963878268402111758310405272795027002177251857545201561472858663564821020596763508257929141762606869935228231334688914846268979228533142033745485600443209101175688542979486703416600035854287107013071704734902578787507554881525109871439564989710113101068559209311540419971855163524615687305257642695665067802198284376652254556163011375795711423766926725653438286653371600358162317698815322330704657886987250141736974375834666540197342150635261623332077668472194954121419866952494526182825626704705067833544683286309164756670510471387588137136871579430375397984819187125209849675142073253825527808333399745709279563031420816690685603587356091368766161259899922817579077893795969767754857168094192919778996519936739262115904657216666397446936664708383127166244209570427973514319410591351276487153659017037937652547156069658832056702326994517000346554594450619548002039396936759951657494981346138525904003772137223360346698977810397194672291323398183301822083255824373680344074879947575505178497999417347777651159530568242704492631526305603180942908952842888405588447443993005733398359299069074936777285379155985634660207596428966534251581759519481005773177560777153653900779902371844825524023000291593010304430696492126979922877528540432262597174414845648726381093829833012259064832795789291997801736509393199291472880435360359075369012226275962594800996235377186452777010598369605944986602466093243392861311210735021686899118847472881491074798826842749378578175209811016826381987409864817010191852339376625620973494023127061741404140900329922210747101247245527340888360100322756957372540035081058441604368691647301474932473102082430868703027978612376522009387232373247785491614257838903655676867302094902451887450149687765422171792377671946950370560154651389825028868718057801787448711150066295686036591739784939728437954566883813063490944913357080832844700288371364321123440781743126901747537526435149598066841052437559919884244862122118947394265358367305566709053140850324703536640847558341423958526725928986744967373751629612048060116792637246853986607671981930866312933902843533565707234326162540809376686447658987042449007596173210412269068261405023935268303932044501603608556525384742640460699325765897734885508988488228700494369400305298060312868886025760463527566250857044925748598648922814080684097169190337774068531780499957596163123904381197242702971228048882467879954172866860152552339392864621029369734467218616578045701736922393843351215545332291097235430786578342752923594511847682866954187697745834333215935912056601462805980529271356858429736368327738262663540816058820688223347084799081845795487331265850760645572272885547923533668543178757294593532575317291354331919148268826888347806590282210480750819904237225628294577933461177675104112424837679113206715605587061447484205462098638789298240969491872597978164277489261776677765976350795760248003989163864880577545757367315598445619904495226751703929701955135654174231276638940989310991436034534315531278694210091230433083770944460580455595237071270755754348952744829358824084115949732866442847789422172127325063486829751119603409842574597801050340538343677056523900383287325792796771756313923534924789537876025973416247609431205145643729226513111352577359737062158725073313365686968796503946180759035085272357103345507232392929485696337308812943353182678852714326003989513063051781753813900142496404221449290923821829224856594898304693815192247370682153949206126028670247531199604783118615803392550379233673653041556771119229935621535853664644374185293289931746526632010269131826387254372850475384840839332275616758036987026186822472068519965122312515584870599086941443776509236188051210909419739651168503820104226495226561001345741555108207653580047258804847941753008736903826898132853966658496808299630269548792643387597590997969506159792790801484911486527690580601479686368658972005846155308512174683422277699527481308320228022928184349830262256345056542534475367054284083967232751193637246714926355078266192215437156581864596249762041431853243507659360601357089848023757266763172826958746566391658329815559413949294210292989360253586038215503082332809584981360893651210298548422277556245315568271245152075234173152452791804041394199998182075201443371443576539626140250998570655348455996976749364256611917022806540054888211979136060846709676163286196691011187728866886713709485125637649466818824541236565791141886776865948235927996117169709539487213332386033952787175584366071146015106514062900026112526203767236406736020275539686125776530579040337102505778226866376051475838063364378079659989974364133068495318032212411045582466376760384885854798973092801783410715837287108667867404816038233995510865651505650397582034101740329223776727338023760923240214064955151627561762924635174136110423137292941657960693826987119057906405219905364511166097167032792556073985296931423489221236580789451397255552804138046030685361224395982588019334293805774843455188778515620505314366047172806099370953025567193596835236396354791078460918097645176508411879965443880423226097036704883096455568308243843496350870017665209625847165239707674222834113857829611805418802935208978610242204203681973076060835184491377402145075331260379740978224255207907910718839460239092411566947591676623338003022969078325340852334698236982021838835321888432915076352015827061110734965900755249903435459818546506551392865326730628024844801465731066594831691815329601712223743602588667133797869943467175825877856572526386230761907501687987665222049841154526061596079011716452644110727163714330864614367257728824087533413708231133883154161451682690351806006538870270168396072799445146773309590874497319166682350030478361516167155820555590104425892864615197107903300478573427034670541187899895692608872988891634065565240195948320158854141937977681632280374392257692107785845017602548388047365193578220841360174860999478830270193344471498718520964965007457728376660516136958884618979163894080847914677831544875194132006637247739555444719924788117822050986879999442336138514755708261674176322526286243165070099817506390084023819095261319429492588489498834068483960008370160758579967088249995911547449410188698360244343055727154784472038534046489481058205733278710314847017489675185837759106149569238759730845684724218507431725208715317989611628729241680849083168773751036632121519028311151561357450743073702831419935320772093412147714151022365833576774439195645665925656386027595919226411505353831117689704036437989524346836062022422404794198561107421810963717836974131586377832734972885194734411805276180413611339423653586835433516958836538372928019720627738544266460714270233542332883604127368065250151577661452177252309063704701436905595180146900060175622609164066451761151374462310650713579955356626233847091200555921782059360011233373341216608663384106182742340660681275175478866577662765643148868737366039769728653202253241372151169058558545083466160291274422678144269837458521833742107095871058873430434649712984073486723331456798141677235457648271707152440162401961629403784970025694149567770523262487894011404682756915809565934191855336558316637555283320999141524808319575948453740593444593463458211276771158177376119159081126879313342322464262567016205417196536743163602620170498359451201597733895754007099257833210670103943419801438800266023045000930843819108488592354580958039415158797367557554732753388475500568973471655827776064429654246988613884802688382637960486038132156140872304351004901454996880131543552725641933365394028054203035433267959029445877668396209701892770172972795049003870520131997188406347500246084789975329788178391849333741674988288428232810257676900843213317005966672259839352898547602652530498364404922982270040804059277261935412017765826490015977384372297297868151323179197514518855247817048725908357030315234092151684915606733013000672521239533714336440632123338595230075857970621632486154304149975787100608408589688029761378954995766899921123959762873676026466009583555329694382539123725455792057741998555036112498726879206361165158668442860561927480648759838243586083511924769348798257865303962944106174986687866124408730983143131998581722767496714791906889918720322281304738708942680195758445786874995290550080852208157029152334807216096981602067470841920132695000388533650346635153437209327005079569276579130049232449435581711792473548214604305715776848341933922808265543323962473171327039900793777355438241391491108452079504777581873025622136606255456806634167380021358245826170219896019300616489772481537516323774127213170936709861119086270846411763704301287282517917422000939097034975177912761307159545144106210821633897659763337097660348918928366693954514518240520111746534972651630742421879370692999643324751530489758050812644922883922141358864527781552820103583396037857945259085390563498878302568882884156049414900739209219444184509818490143997674423041111739242750634031362006106025089598369745219712683166999281269802753970084107692655902308443325127645156690718148964959537387884968361974162056681204143593296229272301401578724944327467064655237884669201290233383261524428448964698256034285834577022384928925481380615085484935642482798840600744515989043209355370847528322133173968693205337103801033369904165091068815051433451632783729650014275585249885036851311972987340771345448829793172856453183401429465640983507911107541997043277669443942214378010403463473454288345169298377626852498373451447467374325296236087578263977234003033576912505864105058352736119761494778540065044378173767848320620989287219652208677809388681770765966456313528252828376304267256763152920185897586404379293327407313968666167293869182530744183714884884907181023250157174747951371069845112567613597240645536942887278026966205984710600081902270960261195331547450574464252055940131443839437416979362827319951734777075773958512375631182866673650036770900467888842998048055678348038886814149004534021749661620440725738326308590795773377346256333182172517107757041062967900789123686687470687096100255732858930946494846135243552653514220884348613761441897875731349559036914740458474919031689671440860334716124818880373723912488548469450924315899121259187355080979069259534143098753920302405878788942315212632061254747276702898644446196730576050894729724698379800722743453440501670050593749259461757866351742879497786030247400564458932958206069896750300054560624900645743896561164431273127678707836523314294591249289625548841330608311556876269067146571826378887766753152047025941108695859113523447404900763849582313204041393913585574701030167322067768034369925095983372098559347107489639041595546277842262135893075797770100166181512390889229401729289399874699305051939984380450976933133156401537339736375857373624135283936339331383160465654036373103796232652934118404946716698777000175477782875335495063781444797927574025559513470474235078549609379016065259431813258376920795587219117753146985725757497313439223441263614626541556853510159932274832285781475321675639598279436363767815328864168344135526369947061322717758283601926286267547635652694642032680511708695879197741072626138178440665779685569895037980736102338524936537934631773970082592853350588978564814843646350231334113870486543322791166041941752915483881843272645011365652269476275020242432766083589784610103911246435332271767231621928772500889418524854148276031599520994386179582551637593144792705393004822042944591325001685018608906054112512300286979534699045250177898446755504831702285832993673843183310551620248738679956959876503296786702044867540002127894346123876401296528197208951868067731331513294947602073459970005149203298291934849858233049283733687735635452295244748443838751889117097677828922983834525638576834550068078664215742571932085899842798053400146678437384585856961726541977764339974127806738331514260702555431903998076151085128050053569184187166579821131222034537942205826404712221743150580456354644616049156465479845108254209365177687568537035722341469316785356673130717000923900016299401555193123559040334651553515179615056388321629086812576891445242004152181800792459806892173076547468906110297043406312998008118788724890020044773603548775037004141813389694161860797069614709679617150855040244965050985637079639573085661025732057240929615106496833780731071776928796913575015013073640947472273044779499838569085057711669868836047089649368286963866002128454665311923428757069022253403539813996204605663303612124631168481583258508861842892846296695947031888961508228934519683803833228554085844369084723076629517990459081129697146115169172301296299798464578171335368676307123923565207807891563265773244425171454324748162367144323972688290604325625400893439602722856235480943874073949403026008846861064112181579397684506479827665109155612080941932623581169998726900153505155049772832678560710421802082837957313661289469989530321647073723842865738146819537943071566090170520843615625045110187985563414207226415681473953825567766331714855169369493352219928406065681435967245259965696239286778802313734948913390195551774283228211517790765133917542022420873706477714187490427444311718126324761007250059316907925337782932211025405670305736308674972328358995448445978482285880728044152272912618417382890150576030970909564990202166992136042498425359980232677928207265299524730787508035213682420471340997330095064712946048251435360418887806039040221995632796113458321999099708356662626293246009466664721852974198409441228567033978026181902741656413816656881517357718245656979428685418474411372857488187249627899252376107156481526985529970434814233135389781041302391500682659039630973492063634123237572529119190345603857343888804945589114675373460159882659448785990672435920495797054416934842994723725745834343310802980284408116517948746847540868305609421509684125223817061971044932038764523596012779879270888129478290576566689834192465984962403602953831200702742561477317327581126283112782856740411135061144722145990954900793329042291535492486201358505645172453770083671874379572600139752933765928193432886630403419386765287650973710623996091047919195238318601188338939162069464746550744926859501006597759578122050917760587633082379108112930091175644338313371793521808468965298833736521612190697129201162744875421605843121635749069780757761372654630820463420151836156163837274215116437920356676765907119187097584673113960221138692078089936055185334126213241763918393597720021738801670236689805006865866437689453110569443273012905557453351270961846774367524759942298755379548899546941036780679123289765797689698727792230369939291477476403226183975060455367943945591116449742580679607807251342501689502780132482627740340464031512502569086025380492420741739706773583599487109841465338860110204248538647243029173858615319430800068253046192240541134290407818166295515078082583991352074291154827045316752771325223647059097551743418506399056093648000934362992096380412840833803704545851399575311875053765910704578388452940808024378315384220631671816882466459316271415860257994994062503070367356489003984578022525320743278694330283750194978896732245325730627597724171410037633357141470372657192988392834213119685861338001703806514979994816042321289373788203336765435355250384154617821781848844876787683780143077066029231214272960831721937142552037179906247259708966223856008478317888006861464009593215834150406182720409977610407027702995805222194934561508514798256263492419008061096173437254263993141647322548384326788615203176383333168921798472687544808817940148783752509934146495940779853146127712669196729510789765730247811813187778715337710539690498416467212288871303830328410582015467548945910527521164017663210799295392771088254792888927000459132131654952685137903631834143367399759953355092992416488168712087006617175921888703990547853289946242918475850119870497192823586997416725856964612663836830862086495250977540799863013947025121242284680692725506814090986016331434295735835145955491671330967448470195576667500534294041722075988568977294603440822658702039990902469193462426689704586787476441359796912835613577114306663176205098891320955707775525787077510328942108031765919251634945743131305955925375295270355733992635155436090469143302407300562395017756498491335366617096669059000231186738061011844051046265259866608946410058981315087287795100436667352024966235705098431287544076664941212105479634709353518923910975885320238154806755369636891123130818063596271547490511872361894889048493345596565544672492923606069747948568977077087828360701660254087073446158579349912688257187908573735967794380836254399849216886454440377334864553099677472036834022775577889228570085573319356441263321419746696095050416210741872354464425847599425754477094466674958358892013592062710584750118871548202451534535616436692988099973865452369666609990968846231045356036009161039519445224507325702727982289999413330800416631565031444765860302600209856031854484429684477616896219795479886369801947104524360215635808000821462769080204161261028055708529491736816490545703897805570121192377505606288022545864880510112613149281064864985803248498742929628475293097938927280125107630593250155558992859819115954297782798304572258955014493285520001506630201090975456179564222736778230945733194108097875387423270952229440572608729857389707368678607916630488440413507880320626462992972646819934956428264343558266174562550256472943013757528557689564918861777993029793314961487747910128161617638384400936463265769336743309575634644118481891143136143571428352089605235460161543781734673144142311660815180713616990728655099321678158331958519035048439864121572579590930405608766667901052195301079519005152079706639261872408711296692652667922441724108983685078939821296307353843743685244354367631596943798065851496439003374077152438325573513088130083724169509519214677096357339312345221691010998994415906367024638589512374277782875922738925079210429673667394041986880517218184754083330394766487993299208969404724395984059472037921641782461104773702214443711905899509830247821369911095791019953699273323384992242081173104821339958632644821878726065068224962255333087856465409612320036248583742569307147028965163522052524581883225146898666084340792846986988760411035618254858057772941276243642222577950906176399596943647640239000562939321898400562916036793104772689419521942002744153136528740224496501409913020975148331017819544262827418441769812318194559008265893975109630267046822956839962020697469608623637421563170021920639358622806924977849310389634179046757972435702591011526256214356472509701233255861910959720280069987932906864581245622430973186479362143491779273458251617753851334831903424446650405679849737272966121572022036818868186733576263750463251371594854689621487621459019953790657880044957734202257056534255551381076609118077941694583564655549264270575908010830094071979860507408351786972586461795227515944090134077421606281384438555083258612258871425575321030942361040502498601603150817297977876622675472727987276834204290932273769914570893386398125441160575618462331751110861287149358845393144410933201823466628592906691636934605036483713607596077000139667413044953334566426176391032463287257370021666179387961774052687457053363336672315436100989770138084875498434266296395304042017816124842985739116522888124354582128555491589288104378751356630017105150226517921473257991671037668674704720132793081065139044384290775879090825694740488474798198917031416596112430458818242837067786561908531604498094777720472997276022091886764194107092532838527238886383116798585252802255526034681386347444940709711868861586244880701356611992906091566046085275546219377874047067772308115236351784668928889064488908519941108943291614865750742834014013966400779864563121047020010321266422257975340431761846446219736689308270897148422929518195697337265012730151281124055186881965263307691518998531463399997442866715210082877934156710961333425039362497604731511059588024617535837433498645695115175558639545195923799813117432196683945995459285027916975280302145722602889947754279287435142501274165760120494266745474944886421521012761777420238851666653888753723259263005482450955160838919436138324812515080192990238607119156570884599962100307226906218456899618564840279493750383844513024879191326733279602497593941346837282520090227328157673451672880924194896770460917804622655089689877280475843193836494613554330717368024729157757421218173573232387654406597404630793956379883422335577416081143174959408835900186528842409304329685905446035761810384697929012398463514737575864599858820521604507029383362459588526383085983298429971664057082032146510602609127171130663957591332992522535340623118928444843094369237832847848601016774425791813210562121977992469323263992575183211902539865462631092934161925503562368889753802034208925429720276314404493119227502615164855994315227111089830740627912368650426986281972227804318563500506937630435881859708381409682480152833862375495530899105672633267603388886310792386000391139246547720998641049289996773661153997824672957036207926655861416735396324617287337227232401057355720931934217517683279644453760476762284638465946415355213339273528146365250809395508603348370738036469970106806444340699200346104587936368073146106920079372833498472207112220948636631494108905104340238371884160186713594427118500427312024152114687751712006199093819557037226949948533020606769922836122371368456389557612203470874697352240086551864290238993567593188776525779931155114484340871084217574654410299636931459542683781912003619483344028240491919246981300629925980667359101317410072431706178998112081166078505294628507829985322457268842740506440969438231298783136024783037437685173718248046303285660843883257406215240589275586298452609017311005512387095592261485321171838137921984901716130679820655694073046232857908897245944191849561261272287427784136535710472693712957153134891496526225094593523803132253473985526697238668193504042515885800245420077524342582626427687672738599140956453386627734192551170338200653699786356218943591119952952907922319352862129272558108702635153241852346075347612991961725170909270748280382666703098263277071307219209539729903108787339435252062229311203196745148301407750177387591149130689835254595570462908652118235184660116585911978630962527346035154822248374886412285383991819932539527626787721271909132226956416922151036159911098072816416735561532253924861497096325312250303922452636779810259458691341148116212604885948948112579185248402499527124054965947966385026551513305754210190113897952877141851546099339389121559749212141187092067796704444357914157878390985219784867210030685920260284467931005640952846109659143033030533012551345198224489471569664373950770763448533040839926107539094424471177252093251495271354082126824095647441882209043520753074793658868358984263612955811519085538591049233453061667001116953281113280205130171588376379835111699180650083749824231158789303144292548221609519087817873053507934525422782162071882123377691145402258980056068940387748202127157408035006984316325150256866442803799939978795869415597082060472923231430378383144791273714488417387433619775880297762051379287661411557808910983998902776227260126116744837251412619082203806506895386072681648803914194561109942636540579902603391170188897918650708740744506848376236778611610707752581049131397881195904512558284483540454963530422829137078755577614321915750814325723826507218791625546505534795615739435497993457313520943452986212961129606914794553416962017120897187231265118877028446676945194105712226877515442484458983051831450736125932606502081155849631924087730320809902552532962875513639327744498954830641296821729147258824794966921399892239745747343889707425267607323416427185316123000089950946972457157480889387404169974941092228789860936484531884292881076229658310329125270207378785649864719305785368361594578348824834827275058942991135921424123335138360369193075450685483451059309426902424371002164248784228170512545792630833486765203650793043734967913476355405754384359430097548940233200667738854305962626271869198686572585432990224142236005567362793126079994744150905169942062924468503796837878979454803069691132401226123570732287979200630507925577221711908916269442406312470687709730181843783619640763512883352946899884183450161785469688361419718067791822570832721606649745874858752587292689874751675404445246064103617099954727149710143502914539076322446900784855715095081942496195676575210459916194079863376878494480198859739751170955344808579968654138289658771374579853220761334731268063519845212939715636890466106725197625780711032826109376499320224059060642852344973696562964099165121014439592689273584482028867344572964577402130364767526717217480424900645742401248837428164684769848364519809091657970158463077977863869347923668932414226759720173214196412196151692091621302317130688400817543737657074672946571275417258534762151246787859010860868801751747921336199262371626991426236823338478312525777707658636957917734517167556560834855434037409737868485479936236952323264356649863342005643496927686464551820907488485292374013655971122430923657348512974581129279800246312886280799686125084526101100523083595520385025118319174945279077733504603847804450755493655335616346687584441482934369585715149734840423103741364018217530057382609322462284578839111649389755166933044170983617736342430451480355269607834405209231966773959212607165403207715790852150630827793289643417481577928324412478867278733743966841756031300092384760547474838912085204104315526236258524062409712307395490444386292656905453569934540773015187128020056148372496420738089925537739493318653911270647213554945365800997917984823843389999925888505599150763465238095822099308467473555334470582308696416117694271074740787239975492906336176539462880166056455644447919592333872374906957911788876353478033340509704140814334697062706512289778975780425656423531985773469721306002877154304563287029028811310342118898406823158286264897571109063287502698091260281031862774513141663350004420531797037480184184237655195076378990952864321481885068355496034205158044126001527931362774729538801549663407601316118379518682000820087533690936862292318123587609085404249737786573725981093843445890969571072198294549598362725186900507365778788552979631374906818729799557610738565028498727159384698239796937514228207984626793977650303962880067134954522702999538490367562750748513413337065558914120720549019677994301811253648313920097607233280953866397096507960708554972513723582606398782691494320574054065957855684905448106628608325634564311905589178653701211612627386382407759541770373402677904197685299456196440578370042860848132755250199684873673076455321253496897512831717956576343405019287187735962146199699953383372715441674141886104088487279799281013791053738658183749063200195776279228684625287203510320468039844442584935126307191001118293024446648321379822214339636418647613473803796102838610444890588257731664219416326152844011874516821233096029832095267527388789373446194658572541490180133019034153704243691709356548245223313998763515906882186383351034799213475841411105757126135694618325644830969433612966253563504130850089647937330558461679236383579597394267211990068607542433812670509067040971587604852085088053164521404459889796274648902167803073651282131052613149025081808743774419941045034665488103912058639560173874144844822628831251149598935633517765707072143315075308286547830469012190659730381274276994344985256434843062942955675098581239786958837462370729326471458970329130730951105035386584403827398389693628316750112458085858064043254278442433525256047550239341959414191283049268822338279598634467564550027967374053322090521626716041392714172295041876209678431989427710439386918603242161489613902332396873029217260402587039466415572413712568530057495514287235090479413380304488387711741580843554708023469150178228259844337432774346043677816310672592683065792412550905199362116499870920803291463313350355726213529758838514391508028554909874588039608826847307381971557034912992069387269213579001652159585863021151736730152995651268379599993140196080651777875293439079056058702464189277066787402627722079067726565198950521396458334104475060648715729933664687881219534564982514145710749916513816743783835067287891759116786524892830853631464860144047240176682523061832223916376665674491107796173434353516341112319625606407118643289692748949922997447155107044051907617025160716076075862824935873421991391252273268003955891956763253956741173482228617361000575517513662648004767777466618842621820393110957967492936636464039092621132562226145130033760410728354378224410197121327183890383533395653782420336870697075078870958754669809168466840060511033148855411202207354509425833372622844669187000418971885046367787003714435429108446792635318960151407192021430350668333820343478579647289481087645250199378641258940139588979190295060262861680959594316976643409058143092394426727410098982573696116381393954260221105903137012544088043567298830372813098578762237496230408724640997097149849037876268228574733754624719141340753012410386940962716675283414596320948358011513093262157387855580104837493545120068009644930734679948226736897803983071712314029306182740375096165652202326793632815863811549198208020161589974378684830365407953032256691687981496625663093676156158720420648515284590105701027699249275929935155340167869409382769649117010824446747270386003118605819353529226908731876653102337136653462217413994029855290344239952104935305425676587153113753314606280470483634954394252552151589581775357989200630073492462939282587131185368773569701610584502403875099229955969837258069722717876522711140136782958506456946374736291746802209324363554511734305953800854056541533429454500444892737235474304106083090363894175722289830207181663251224488158605552714905409954407899787373160481888724189906941524208954242081840391125816348770398827964279865760180171229208318645613150873860470556940200209193073701370515265083352525478855085338315614259151415414569496426307283935814097061924012244248916089127540159857281084926068788424872823356828369363153508792802041246505260662742180810883999126550746969941259516521344706376997707999530876427733609803959889746236608577640651343755490123521876276757486174801741461995589806430619380542005161369831756851715541121924623475262457022881103014438894024486374603099614439795401775133847476500836489720151834748412774434657238679804350537313051245187657773218554053516184462316788501432227288390730132225937275679025037120846901870840032126921312391839089582861842759958927686011535305234427307153635695920672199124403664281927553254364523572770358259511737823853616730604604526322980565477702319113902607872225163157311714638108309893726656643307633464097838019150055110420159230292315846444304494503712004216742256712886235702195505581702648563595433840086612591634553295306930113800482676295856822816702947211457801481630773769101653002598722511201335853070328082967793601748178921159335874673821206498738417325843979350376388341456228186724465931372357433371090226374163735833039418343895075772427803925412262839537401891969497101127768384772022622651845676834005735932320617879241284758538745854345698545525600708300453112115712922706946977686867758445908824106550087371984080225596232413813835226982473110622945459014625499355166868680624612560576860723283985624611549622910770214783991800488780337119336507952247684183685937034666603408158996945062216863794456527089077483856308466144236556239903082808682138598954341519830845753373345089361491631179925788324418266690216048057268856104917436991745571566363817361463695814958815208310111905324538337339768256685044431281585141415038479948468151748610050739627335963227442530029577022540966973074729498374646433711121958191210905107800291077717062515258681419782481047293465520287701210201405179331616300742616824528342574177128305867227452130399341847086583093751217990557903585348460237513872745205229489776542840705941546683774737714312749532905204508348477030485607130388260261414017801788995984787590187756148622424067397555088573376715408690322794125880219925045205589987394886835255083437227025947693832101792007339561090098839235279234904766882161173064002810299699523500415722657229124008532444688477057625373230163394902716733511092350064117066194733782614316170935209358964820303157209830908388441218713937076810840302637308177764340070317811246186142497100350097453398422198528820930658579420925568461286865437088156887523343607907901267986852935776290575311922100154342203677306425082624094051474140929805784924828410797761371419737328692613952770352095650620406139252372046707828956367047905963913619635824898163733051236102931717331218586912320988084359858123879728122100255012882388155141733625258984172378747985729681900395553473138377589291770623736091272468499287959928751005668820889230255449250422175589582877356098969833640491925026460713913115285540568010094768003125241579686981456721550586007189212541443578203807716573745724163833689096310425991029472120804178904061423632180844169947665776968722036531701605777831086258390676600953271083732376007483710516442306888316971195660173155940486900133920990321031873255481413219503617019907543625924872710253285055840101025250347118091705585878719172481667564401187182576968920001892576434559276840205949605897737154343558960262144256932886793859565014069563799135398413141408054191740529936099555413004483987744362846218798069258562392271291946270284802540259128272622388144476835181891765916731638798695569868548735698973867624735548604952826554508830603863883014221162142262543110038140347233923633870911201488746002651167775776908423855600372206238296998099125533450289624796226314226985085665315639317415386510212725135493793271781361030910328808828855685814183918850398978152091032157685256256470424210239950092893489678346434312823458868591880732946717226225098756302293790543690212030761913374547816965868719894714345452393026427798212233055198140482906001516581174311374475609283088200991141157404918149383065314576289430657831728889959462386523315595421962160059663791329247736474900909732289767881235925603782517801640032553817788260556618429885300177963991839763147476596949540122093186009327329837484633199165424384397793136891865762224794456222129118725490807561662144502483432374734881710378670071273698510556796658901507405727385899219591540587600951317698640545851006809362678412901713025195426660709827334708110176741182312209588799421408236735189716015371258746282727354365765146108360230568144565758649878000433094265664175577072773848743514488605943726277200392167639226942374153202511390656285319919118209890003072731184869215949638092981574338569324305348220496744232360181310125537849852526169186037770469692357368258800140281971127518501091450364614071912337853998137493057861435916664644321725817301699819719630858789148223131059800410392566554393906238969416759756257942241915108310108094832216496678702833334180073082896609704056910838142486153382940722212625046858961140178023848081607963575152373427224080489365514589133802111448415837728087752638579649347144287203513632766525219601103885678140897412839328215079171707133618977542449802222371615319288840199579478386729688875577037294188307215236107758701307608765697958480677154048244608433291456231697931768514426902961849441009830653944337134846374063807584284938396090764187858601607194218859976202858872317249108243586225978055765292691211786797127565417855549386181654895966717921830869945171701896632895926948493151094675982690932571879759590240558067126402522101946036075545896741133535749556030293454708001005073325677881119571701399447039275453615857326323644766946024771888730316345791965327928590019232607724327106194647495208493780984436999823964589783702438716212684354661516063810060929945333373818235772265511207964142401732776925860772864698524016092285416742809196811836591003112778593538512103343659127224587851948089057305324652326335497126660246297972301690511133811338626211094946335184503128682220281743477867673182228134486246506461315246053137003666678627302482248008305733418173105336509730436408655850916351197834155957339433779219664934787831158271780487039806020396258049844640260524982689437924741703885205696409160986625772533244140891980610344987158699272922341686806889684644985775690767764613467826059750184958666418436452488491973569353987524197724587944317139743685912767154324326257632963279972293708410146075926417335768758877307001811255503656101181554976172581445218253805567628416173619957394166438127787911918327915413819083333510689756282018298679020813287869851323438075935992898616574078919082367117952087192922816208180062963176641769465668297769106511470349669417268532876090601942720016608809260456946016457876910478937919012883277759180772784395690431358592005450426742788964861559040975968279843878221837522658607423913851091066510320228963024272258206165361654022069429720718437059785862486757687315543076217224539766184130576632697029045284432678600764100624389024408467898777013886473261290565668402546499028281609391565290417097661901715589426038217315738047025205134110544575856641172870704400511931543927754302202882646983420145556231407706201877495804070257631920446381311786983516162774604328712766226484474630224992416984844485745269522606513609028497361756883478785928396061350676076367770598842192905281352785811129569872674202256082785674292140367428171381626978839222919222688290207381466524860258385832942362393827732567121493281563872652967807836753365745539291029863071310799535633899064288313577287543761858197793726490317491615706627724559129377484043097034661790904108986000113302419583748960856339482426958235720899126295654393223602125681579213808156395107800577239692449013577416406104085348040608215224395492279541427128863911851794313227806421295454637702994090295977463979154779376039979063225142631688055336710764379220785569596038235818035141823603862652524660776260960951926751056744359514642803359533696767238733948438629781840209629746520102533438596152649755798163423491329992314897973794719245606943488088519148849252214861463178399659937133772484761654002483265839178783251711482018460573236480281203839478327247824131650066528815308515096175822298435489812962658183593341494384130694600535847248935805634024599268694336569212724048129101308517389453959305006986439758681740926787839128269956135684451227456787971270469825419411001700456962913661298577157606218950594428417978292867074081952190068597339978863921366779044008122233791477185395761855136860041968949750837687295802432936194606006476343277474557573833029786445711671162377417252029441882859401849432781869020368635009050271531909848196532155725080713364257818242786162301219492259069468658009226884118386752759898252223556904649950975621019871012676248574480740050853329224550800937930597586281528296306897911243097454953415078351492881465135755954307762652044478482757408224784775953457762271341621489611706939577843946091510874564089826170059997234968739091453320876299451751393472093187291343414429138410747358675017282209418761382250755791214267145156648507025369587708219459017048781417646001860959202382486642658408967638916589569603887731543019305947792702928352773706560960783612181648685774891018633359018221821425127052839388723656073352446514569725104337113246738756417755280508625292369506572886180707978813015786237057128039769657619269175530391113495303793825122504485360824808770936543413318119126197776613770997604766097869448774279823089504425937336939908245232806354134443305380156377435164008180017758022426711302300442141045390364089653755089185645955936580433758591965241539990126735177367492335789892412934997089924751239340451134717073198010847783295562741381447562691768085644270959262103012241097157543956001815429070938572602018701261953908463358191979152959764851740901624126624284513588581483875739913196196249357630085073493436010346303629518376648996510595156291634308195963724252732043652298184451463924798819020209579111675269495483817272031974169530717923705817081465457527146592057882621560369517556010900869529092600962925370410346670965360551650402089092019091837759439849530088110880388152720024926117940677126347597749678528911565646907679296835648182888930427611190889402291827402481335707972381153961510196244523748702810800593703608148017609670707126327472378352374109208490231838415807962770085857615415605631460899282292195117882745222694799158051151784288272970730810761385066953660690257542814840395860739461221861030861922072914306967012201549108293495393727469311512563966539589562921001433825073291919310965328753002820496047545534675908254055512517529526266764141385570618401464505537050241972867999194334719031539263053108796192569214592444350396225501081615862076156582515180682989102368171199659529886961707151062157327263799130055833472614452486788494874310602498051915311395652728643474849676656074197473725835797502169067903329580933343802424380346859441521264392249865063578566636926479150247549941995346558931883782594206745471263332546140454591006361414532268998503556954243178475235006083277143392908956268024965691852921063585251375753417677802893232883272095399624565755234278487037740419411330551142466774714630099962234298000038641030417646220839923154781524330574555193683697845239584821311686094671263859299579658441448710687818043059929614358316625275594779837978550018993680630332276280957277788964366399271536091175775359056156564016611816560665269279933109921216433114150273043600783253353194677574172628083992311580976477670343468300038196028538680180862794326623913567229396281200331728055235632057740696182421709290764129450907126638095355434541978074997399952470136486458053840078766918131329037852674102938887949808602133620751502161558159466373358334343046261213329588394331265226979387941059544267232782281261007458158531533470610617942845135603610924859649927627867695867429712158044331709519374067441149162980981728034808643044083154543566661064289319565765567222997433478000068385237212156788762461894376414953780056140734392959684100078388483745672995743336303817368775706689432427148275139691130483124885511822291319401480244768850557260017984396217754966691025360023403937775235599176261880758620098771769473724803999688631961561112080562250498863680440870703081957289871224119617597556727474325138378320463074901331676836847440848942741920687884693998655301722592163923942057855355596722493773978040698491413888940858924096113288832282397299310771301039283576751432987211196579514403611695769161383952777123886407606986509823422328367473494993885102717918710025567493152232763707499772539061970783251626464482706039123974713715360359872853940421222898432251966793308186659896759017898673656744634757353534099928156102985627730094830217781007661721807776124962065183245553695415663863201878890848527318235553051461257186408941786272444087385330031164798985730606839550884963523309904700933869328313249692530394284077308586942128278027425079726507154870044135184607696760943538457361852520315745877201174399245286855526364885782627214843054409609192987878821166859776356863444574660635947945494027143946973015739404050154627356447735884069547723943492125758366073074425728902833203105249368815597540052685697590856214310196490544743532096425456509899273803018470206406182965305598162873384038941941276955608355706408097137872700282754870959053942100618665663658402668264573157649169188544677554179250535129760108786110735160943460148362997415947312753781456794492869090637523628757362071006540357536922873261929543593583180710784391118672858208768433611598367427422621944835718616470829603542082866557413408162641092979962678508241178662037289140374931916647335483633923117661504249597724716143652242758878101925477070972760928387123980345967847196361840511665937940980201198355428958954363426680431838589880010243983838520679918978745966966844943391899581676835186618926891749087436862296338203024944608291531207712103786018992491193213948123481480248407920151469484962365992985068294321177603623926482871882257054433984699360127058282890325750091563374329096169463710716618428420682368857240515877521150925679014341763158232491146206529697813225041599157777415009878638791407617324470407431693194059124330333455658323951133301920238879896726306181554655192883986390945842159091122655078688121426169055095191213440257452631578921388007082392392559736754963559189007731570992878368696286384774738201511739755852598839583341292635788117108744090434225697724178296006237207732838309161467340074553628802763083100688249041794229035880339006237421005448138733316211055475588663824257133616759179435759332245964880327912315004378513488840350966145629844081683398651862232687607148389340137056182638378574809587043587474657664315706394252100885721319955408947572355753400840845609120564055667771918507264379025960635125763242736528109438597685765286806010248563578274908483018944033487030694565968144259910509117233026842022158502857102558944323078549188433944868499601955646288261594657296147914817520566731146368571531271152491279134702652889592885847774316687391414599690874587213545445491070406792206062009189195797785231079187402451618852206572197881561453583240785947604647979545235151386192073050343673816880404319867373338825337026705557219042251371018276833839771613536313481104540685037040452209699330921072621594101663727033735351208418813819073520676407701351598066321461812786424598150935244310997042859272165006769429024801496349235435374450728463363862711263129174342135877427350782671239171958259915237165046964553606970395947969358290254362780173473652636804495263116438312294452215966718448293480761623956158639902798704497210115650697138646772078240607150464289894994709342036756278429288921755037455374301275783041434629154310330436164218429641069399782531287546687437405756624048411329284133955229998515638542264156010520450416950888316067264231994453819693249738546451788416349791212952679636233205247651646250318332051329605391159561132904034390278353363492944263801966560542905764427161042113896710520631580792256729931698770889138377011818081413899083858643934792449498426713786727976427703529854641012173876852878624613597509019499249009417957340779854948678835980908907912493938474992648405147478181638110960866401689719934562989680767620254444997236734938183173809537816111820208349780449074191884056210611751446010290303139181353009176560132550795056648101578952997936370737462946078279073060289512262006674744139616984249502843559770734481498879437480670206874277222669308677170255448192308676566083654849090696243873314397855172163893606748937868491762938621326816220823635766728102825347607795205077412624257101061735626325849787248243862375142572229067314032759617543947193342989909665238010276343809519294885178138447528266904760908854865045750905223908977229703250958425454966801151938096546086223408421889487583930489921038818899275530873954142931778462279316178418882562989747930739099050700590557459571435935188574781036269105718170591957233941326897323939996755400850705883711391816593689782133378002996688072447953819050590976728665675937519185256927522750312544353365008316466158468037204713081236911274012055327208521520303665106255830373190390005188877832277516236803651536092111211066623669745457849589696899920389713784816600311275890597477755397423661467705384539021222839885313940369443105051183506310372349082582419334573362131641770016222279993529362722587926946407037471341934039289966997029408011527253945755020801745687614014425554415717473461648073012103131984748586240760754370483405858811422963751067785535665052161854951120429604576615123615451635763032647137302037590296342461389706855833217864980420405162916529580628281145865217652911573716635216849461182426060430347913152672791031669782108952701743121243895098826714521966659236255487741677157007169489764971866568725209890674860475167191145499171249490779015789609068399730529236950011010069115106688332699056363463179449469798937863595754225474877585488880202227020259979166297057442980244675056286311345456451004376141143137717198876789361189430271985428499704222842675267640346884311758020462069383610035800518584767654292295403462293524643720512070897369383860875804877883058933994769227344890562255830475082352672463870450352857941002916242619722771204468519724327810549391789866452669851455553245215230136720091362217349948637846090649564789950632657854002630800554653212561139120913656595499149412046785651457981545236063860306202540544247373399890275434396468822343323455192752218427400175421585998207057506789462919238502085674579159196446394274891302846594879445805334663584360130071797604717661504533658832329263142167955918039786291306898148234262106894488456422278206775866862835883153570261390166543479568077024743250446902342496315117599764897853661322395583658461428457772079441203588000550069899443279677585635705170376642926946473174922508069736075166907045122124338064218030457745161845619121569623554645037500994912601685275415986140257416658815047843409760480524267128910448860923103837529466179034108670698376855560478964363693564288953010906140031512498589399709461976999093104611124147533832387490356453628638583606841968151618345963948896994251878336949194132768092568394984377354313406094430779615293359273510049370003855374701348471447420723920920588416577183821306733179453486279739638256381267953115870660295049160343021185193212293696850937705713156816362858208173555439628923833140655836394211458127398087248758417041310965954749305592338049210683913659882932978746146130552162890137991216679975697032122917587774852755554095128965202696918632500730124594826660870833080163067900362865833305268649675667712804434692861674550080735183679203137242815980424523749601420720416914844190029045148028393401138107811902744498345544095729112403813361361769174881682816601799645324746315365894377658525959728134106239709559734738038810516073389939859638894222995498650790885658993497578280857205789340134851659983428617175534333891580068507111867666803779311605769744594230069946134921444043866527972728578566664186395356510510572289560580976518686818170083222294938922986401668048524884225833319354932718587055527681537445065735798378495875019170271021570438335637607281479371524767079728732946226113326640278175189583065488149747471119687019177962941615682207719771945740212878755833312624623587988671468374622575345441955711818058247658425467938961430858683124145981977211109389205711035666870367189509246713645818773581758226584672069360766780662578738153448975671802223668734345936354529984329822433932878211777567713744694479205391051128464523484520120435051288978315466550438724982354699473779769831879274115088918213306081511265173464874461610679631066392214809665071985568457655657911745885066339387285367720620194241449739662948343825130696105373096553583723186755604173666497174790854253355142172589916167201014197807184401384675811318133159976162942488046187312634662930237204506162767521354281168895111348501788689167779012378281499782243430939231977912432799413734056556691902370072257446069382228178364803293415338620799048014608957365020784551792246730776962326287188580229508500962566124713229672178231045666640607883246924130271692722464739811326682502581849281058792055095593879882647925546102283928168609173293295808060287030915527508546291898489994328807711072657507646313058223804638510300090030994613415747636317727136963634750674567791382469645569173436793830563201079177439440997471079593028082739009865941815827104757876539286823089166678072661680308628645145683980724049491595749381276889332194208825353883350250963278033595650382436990948193542116001984599789186810827191300225264266713743942814920927640721986827523088600020015311379316156994779888522677552226352137522977710440415112412923071125104385431420495215910565733316061649746461579668374084534232454434910102009898705799799275496627797238261536938928034816226942102121746051993549744348843685878331598156623815670826902577864520149738245309891871370178611681500590898543515784861331197748696433387649006987523378671494465429724206835670229949325838973149162813694877324202874279620344063771798860558950996780970737882552761397696169842687918767338789304023719427442927182938277416614761419547346551275853228308951454797837511932729600184289398946543641288597985350436640817522729161793113585722205060874567549440105162527053426233206286132733811827125757561166043965851253703529156519559231810449197937206573706562499327491602955439943410419002375073684325513806044846481146672198043269437476565450640128696793260781446260883039296749629271335181443632412182415346854798963137308250127304593495120795991751278360766382977065102829037737826923454850015024191496423917593513945574696187188648536624902491272893999750950929173706472388707126669150493388994033386845095626862980307054118028702082223504653390317688131362240026124636221630690253485672015340613394879418637583005979514361615329909299189651826720727983985516407989698793113955240711975645255230504436807073414376320852550690388804455802485008356610106112070765328273407380162989044043792653003288473229824126143988274117573168705616609097114181885834560082614022453953607948127972119714456882549389086409220532394143335264034577873590304591037288593110087487614430544363017011279893050678184240673156274012557101329178498197607274684537227018402533458693882369929459834926004571803691993460721040854897192794690725887832358281963232779733131282603172055924303665016412168740118660067894418665618470583937106348534992456776548076242507829462437500951671846897238772626662226943027128258321640591686732602478602984270805743226897283678320062837547323163044199370512386568839313910835429244487615954131437862710373788017920493548972661538292003358502616220088105312117081794940380612089151686870171668220897307009417510494804652186182093150119911962151269455827400258672857992674111541518066680450495013128133392399577432794918085216092912565264639227335335312873794966076896459919090663530520117779998936505496500445824032113782223126859364141178846241544509750976209442117584950759131160318425026964357091021401573570462869472504130271760667877065005561367854218284311179449712058866007792531408088204761427974810994671479096186595597935204896689013070228818801472390479504884708717307349779111001604610785796863234505673998569564176951374897914971392201708640090184574411940933630896067341812538318853147779545840937503520876339820150314941370453923885445549223724017030421197513278189529714766833058411901588101851075516527411404405898318569904254488946008574773717853889999061917789078431790609945542958979118091588962721257362310808873695670269869639478017355296781256400363483580766897764930799138466887863071094035185725959390484710794829585821144968244523235449208719276071647429659908797699409015372678473405665811940983274130341177685387846058375869810742868575515806385821369217952811139117653828657615781109152870613183365396137735803078135516298667286045768266250788685960125046511352610156300453169513551064178277685199132908301401244112049191709672862284741758747974994115550081240024661579424271380787262797082741924284711831612267062553704592027383224631028806707992284259632858719343175828287578763845673168199575873269457489010193847184103561479694751256676053181950747412198227117286361394998160832795811915325132235176270020190688686957144459090918212448530234795670104483140419082972537854643642049004252721274834314080366754320010157962035465338486856782668592614563773697042887286084035910377149575587901570691795344091954402947750457071136492003453259637270878812842222519128992117043051766302170737102548137795456283210714884885619903473572305335370191346508553729238721793043735452174272399561652466204549615163742234626175287968385988953948349265053534341386408105162756856592476518242383014899816889071949751657248135748193904187731978374899126059062358442411770177919369117327451401833690955491678313362537306929166447722883804712964479873037263515997832114357851140449038344546249390980892217804875886519110186851517251603354489686784700430688160222776254405676198115603990136935162950821511880499318696917569300969734153787037200888835837120304905908760922785368723364256234194342661492768133307947717693512902571059173332770662399227028638754835707156648164947740820962552884745652127660495826270538791758035812193329962306508904399400453338845358302895050894479574559777249486430800707385343364206350033235257468847198781855103469046956277207831826872742034085381868082181698949877374742888325851052877952080045193788521333686386669447459865826226108714209696692180042997465458211734908996558135463248040675044746896922211353606333828014020100461872404962773930083114185005570735526287599246217699553169779660391504967756605192915524565556288571053659517642080088505122677842847015855355578084430760980643551161616919346487029325535387897448037992872740402480051750312744515403357041381247557084701278448438149961788898809565046765438327193541647001333750217238732428573722867212478288443391909108491054121417960540890617383842527589379549624801682428829148413656714681424267407094498823741030701138918608856069585244708078306678485859274490892087688114694702493499700202765730274253586444016366474156891397985466852900096075294654904784498544995082267010646265190605795373540168097797126443994236839311651319202961912823896461355712670268702271268487301162556394799575736023095068601539078177532105967135598007386881971785283809770823732865786236662887437007063036547141483065854988889697710167370820465125631750412674691342153275802810185375907596143570517471205327839159479527075413795160134717311679261047134157599643731120250574868649266000687153333955396658078106442796566151962911092960172105967540333518642311256612623795058783496457288868756657136785285277348913339375919079486199624840751428924014404277109078198260759669551133687020833278049630687203473001638871726687416743016068774822618831181843674576264801998925898766904148335973229350183040168259839661648793202690337549195984693097556063730607632741140541065885454732176099082741452953492491644699638931631274933362095581268034443989763703987991475459406393655837815698194522042598958071388204341642522811103856790999473961596845859622676020147934529770451501944228157947295307133100906090374701883185374537797092986405242602469927307604975012576761037461064858166462107964746953433206125818076652698683780651236835262243592929065065313334452259813195804163802641583370525635527837707592490047400333462354565445336431854189992462454517015020093686771965733617453613721288628910026397378141426276117240365330213422697440716984999520688930171733378113174887049655442279756641595376069059409198090407715839838993276365718060825513852891407951913364913880035674058181115425019775812636618023796544134192508487891405766163141916191170206631204384158434158023994581070598157273933788906215028360858440704168716215380951553769014456709483929733794791754724197961815955152858214508275368622778409023610603387883837145770063184841254762992621433281904024045094019782478735850486388003063412465072627528525237570372148207311872131389804918130052110282781999221711213146722340746748028274202250180631023397840318859534413473248029567910689756247487723564694472932544004389623712847946816349401984888581314850131782811839870307380467284531452881264918090967652593409633448717834788932105984608008056661040148657663844092285364267025432051212781394952046320682398827818155588573181507207958462562492181698902572803626721889562482913888140808995596639642142791666386687887227274094972486531295346548073860603472088208604347435225093606463794527928117383304833728294559645086205435111505122702675917540172888787588890789781320842201496554191897112626010489528500717607655157759740681093880494108726243299939185188665909401425798589031726827695452878366755539841112885217029484502282067499152118679541544328720592839718440789669128153658942780956421680564980702910621103547778811718589758830895284856233032605747310004994686168520003443635726830899189903593494239258128875082111969491453885678552135364855705929316645293442820562034206883514595469225390102148493453422428334619764091054121884399103635876586471409534744186251972519454278856544796782520775596337042233852235437455409959039215414141592813643117863323858812551021247814269309680368855506853249124509972221410900863650247151592394290263463325217228955728510171786006341912651653885604206742472426252733329476617801392825406321703440388331765430101968253354698761965650958548095295878718714488587652773253410724359225624069807579294533088931549523328275522110730085861499101335231890867561720487033324225082077168769493760687642194923610673071358791197878940215613023931252792833096053819880041084039435808215935921223240026015643254430099825307766315544156752707173545068589357067443515312093322740487691147942471305434719225014239241075929195414680618401579069893572216833521217724655161701391147295753764459688657742647804830930872067305667405786864656639766292796618099486508628535151580921913156814578226167604626487851387670811782585402718173743265971305701394506024091771737504271320489630805585330489738269432042534874583579725261802283368920801437185735326798762602377504336996070789222286541237048102150510896799427461476124570571910466676534408220622202268144166452867858872510380841710376537339788286730517440274934766714414497118370104089750515801212667868466094785630818636061965394653559935205515568783305223016769004393093097613957170900172048606643524020498540855192956934142128686336419614783706440247237783661775073146328056916446303279613238762095907208670131146607613508521064559624382805444215716681408216628154154492233775092816046213934548560625655615527323447847199537160307923965321168039299071302894144205069812304732886959899879994078513983092011342626853185611111817839872825445059088588815617325933446557337299300239892038923540084054622849636729214774338812251338834042221272259385664092176451884243558718437710544966584329502215465203609875479920356563463871732692438848000688818573970482366601925589738924202155111867546676781794321300595555262504167663606160828893513338095074654769395995449061168032109305362918798727443200236305178351306951438313404152490885086777548156381567605174716362915404118964749864434521844138960698859972176431799678696426016942551036142433206452821076484764487115258068270308523112274531786386894556032209573677636137143497081081981828310722566277962745573558586573422264657994983662043670228633169710047251904265727495480534157797727278766512667126577958761301154051385822316245509110466293577564375440801006721653230011042602180657555466765320634253100311061175183907497987914825883910018772157560148723704335318579086940792420320222770407554566103170420331446057803446180487290112989565208135819371040952763868374474346962804811445471554898648426290267966918359944473919029502238097352675681829327560696070948277030531664656344974113662482544041384288366874879206208858929177667840082286548961093586979238077483115760537788007593877495928729549376610184967920092484693871042302670342583707287352016927550837566717919679192156984358641100224223095522353871819957596417428774838638283279345897874401028702842794267243690285828002521305340730098631912256592955908617140255209981182957143729368482672336373115108036590557442447901666709482291242366434099163773847165343607384264615106345307424123168288828162309091350417358470347465399639886860211108558129408101591094028179066572422581402407141168190677793103466656028726301628478605208894583616876253999536100928030503722100224912360319117523837815175464307880052641406374635033646867289286300146381413256180861087936798536051741473585646468780802944581446496545635387376241208201990899345149301292241691405431135913735021854708190728565102472462660438107076824205686824986111716938049605413111685418396461966834057240764062366197231629443817650141039822364428383569982337851545521674641205598467909169474122081444690715224192166273890336215266851601151678148353293162468721797810974321430211931309618546677899049775800671892597489735133472506157857896071267814897257602736726418430594021132316814080643806302900239138613865712341474124256453567007150827389511414342618706591370952653672660101188942545955370778851485332203664262704823998631376286006430358776272182991331899754626394453982927989445294639714526326663574077017929428778247096578527570765468553236556449933004711032147186092439771411938172472357799161538529951319398143680729201308679363666321255021803894392156448627871500749618005759107010869648702144521836281001729468738409996552860339567646339519012508618895239451977307952015242053243569420722935795959707707355974324521984671254684637360690632145037387692414318997411658809144559337600772712868453676188615285922662428518137080958112083371277218625601049266583595184159832764406295834006157961501586891899558389102004919124266528159834346505862546273390239983932887814747922223933995083758767025016392512313084887204363806738550849031751162743631262601797803039270430159879539078355911632903964674008358419797650581589277472450714770618379710648546065652719070795078723096961562866187837508194373865569649979039119301348331031106046764165539927319750819875487736774008297139473730199132750902011505036354098917755470684903659830872656376192564958646355264889892443476533729710719258192925461340492722777390610494797026276007698978642620246299836877260968198320589241113033222137283959672908948169136270418964644561333109321894160336951485693519934156601974205254354417547951516870079443030242549062260917202203273007766197377904036319254334702956077955879389082149510561207588259133884245282683573194712299651493297634865045382054231271391326035348394359185184525599292935542155312033361977552965420699219365943925808312449554526596394628357742540247714908233196077472488245334482620405110944179962642000247446509760206732361643879507310318649744156540223856488616438017865884413551192601177117514615591804219876090363975474987645389819580454184441846230538007035386908693476301840998891576112640207724966639466196232278832212726537593862054278447826818362425847026073465734434350097207092374240329698325667943626937249290294904248578396864433982630634802624341375982018004938073755920640210994101948295455707814246268005674915557829588943341438262977530749449449946393260481681408326982454489292450229268671172450177550830669397158104291765642988561556113887355191641301286519131554925406572366053990391363358218468056139250456301893083408589784827615144238854229732251977893340618255948209070925755105053136359439905573838428219964334344772791723671635541341156999703939576173916147598294490058632303611247659081260704703112412370014441302312203075364737942720084080819224164310372495594733268115363233366347673330374650543985569589457201181062485323898778551255841411111440052095559873429213166867954596573717340088247218111085800222082123104572691468911696454009699965326802375650596339126958970901793474422837604874571203259627957596746662347156128802932401926764248112103112416603844125188216913211127066011921007803297054414016528031855670914102345938795048737734612995648392955577312047470765461896854505437409630301046989422441977837424478109563677914499237568707360544708878016396229725197577574895080702382755961136631652296591029145300204215578790956602889348732476623090451260133312081596691237414525996839595397200902891163220836041097989800753634064554299684391867045347874207264770294782253852831415544440964688707501849064908346561349412324433689017357276439328399051420802647539851650557688642167393731221251074603746960690014173951244816778096595104573191347316033580668292703980351927678011311842079472707207591398492450956369661319684771169326639719794211550757805556089167597227282303224976786512187865539756732137957341831800462226236847815265310060631038615198733460190582963934494940436752881949904962966521704566854037451737281591249899092984676294474912856252395577546099678793562494831232921119383016309421128222493594937798891487642615054169609009326752313307191189504963893762729696486839560867189668499278587116589953500764304195494195274763951112230548297630931139898263211378498590783176547953121136589026785841826276632852933477297924903350384305285379733073583028632931012360361114082932651887912512971383190011356081270374070845611925169283477578787058112557256499858324687647598500279809100864196764576240272992061787403369296121791721191190248732611536961345953463209751090101420895449430239789390678807236347324688563747226090854817742869281922824201501459484045229877775147428810523420186711510718622831970264996671378177579339788613917149864840736953269190192422580923084639722725035502845402430011268873791934919848918199984917903690674991135455462574834250529925304604989878459681680549046922353476137856292558799804584256381340189415370192899448067760622814296060694872248620669576523487941642973242109659284575275101482744669048081105260235054180122158724161138592398748452147058078082372022048022940029775231184549084380006790742620735841382137179724469395722222513493348931652092514729147062968552770184829714728537603830885939845486028846920106502455459187244478180076516103176877767240779098982344877939258444090255546478020335727339034675447540365366004663113886377839457683723764989240398551591636035967036341208451572468818117333680468337500490994647605041363453011858190832405551552413444156438141844741734146792184926682494721227093205379174237658281827842390605946363570774442415266443991653908018683373340684550336615990914756380545656041808809829848037481728528880154962488837711863403866727871573225703093548390787245615744681862585502216657858903935768150112962994010109280258300571167493436724017710646937667319713918492651482218974354756453981232824363611449530874401472722307507664988289846391497956515934928472384022272590182296781231129030472575063266163856027321749819620435191045208528519500030628916970195174104903726652898615214998709768993607658134585959328894857230845326902452288600440313577017499163316861837906492904199779420652513134482417612012931623026801368071574711826068182072511872774994689075403045610098778644994411450425889125963696605821243309240256849079663255950899786391684112578483642085287234167178664606269702834022489300507462478878174829905206972756191568002464329114877015164222830426737238722087033789648124242552033973709921285544204175799051388345517059599051191196687046998420567099560762219130667951718126869339030844720251552583179474599094180300638041026072792366192063204360582005834309939859970460607152546052270604756068835388873910769287951525434972871792841188266882093224572710953022855725626682112760130569754669697069209800561321543860584153450451560054186075961393122898692306094453526105372044089209565386010081301515927373417860001179529596678955329514993003688396078263900151218608501237998930698811255416762931615496185328498710223588940325209072363845560730429861821140475055447211057906130286708476702360456011320962768769941167298777951656602021348529298351194321294357437717850999656305376019832308352462757244279564953255526347191878541784907036817670830600676950850956480079373327229996445876084117520727434006385722347856505459221974092736471247322406538035859609221868008820275573744016126230845744070026319293127250639927377497262664730923351593911046324088237269332081810837184690151662102197087118202360645156730704428820466736471384195881210538378114422540823258201317001715007357534711147121694661698860138793418175689293805855212987060554778299571487659971514569024799840831086002264453024227698679765322564569764329006077727599143970251870409343405775908591692680721016447487323905348504767037640457652164351252422280716838239431811581577479867288165699518605054794017049446244319034109196432001942873116799858175730794580742967221595651697226674858973858783642390606030549718205984800311761243389456831045662031035959324030824783819533909069303614364241730051286465235253435228331211849600853988476731379134853946655809424110174978511568963152102883269460316557523403821505504113754271094905142022417261075537487661479639774713793008055716133806968080104523257863401138385045416220766277773943261331007664484747956966434211895956179723164715880467061412449079881357847509710441046067411617745052792788160476963516214129845083313848143833181677377284566376912489138328345861932353064469878236983169149595772439579429541084895940804189813576917773903747290068536933292408396118160265053925474869369927655009939685375062724335311721439898460362552232871947934150483577958413148136713345820244598100371614815338074157522379861320384569869121395565522425990872509913307771171823063441124024710892310405404095524170316455515754769726620845832603102472333327860352806881015776693309559478622254607286936345582506539909403457915102356903982522358887363890315186129550793951751076264225742487509073616634924559496079039260784953311468302799242022528078060865423596240853696582097513081773639166352107304522630235030144187966052371619478781130116427563948580526182137224061414304750821644269923162116188150255814494227689934628200867512953853984712020614877804899447543588747789364653797330752750666024270724150963178326885286656013737181283684648546986832500901671201342693688329801998538723064767972917025600870187095174134110390758821160611682162621250440557023455630392937893467592422061191929488648850439788933737478141079363409182802387526528486127317942093326159109642507803818697023443530860633910463663111042559681901621384828356197932414751295329263056510610256831926368734406505950756364767256366499827808245403729601407039767261826601302670983497565960949387652773653234350597138273093677625740636214631090104621389091707865053586154095006949685474532214617298574310297348135788778310698165909727105719983652692422887827726735579581242849143433604825047719207618587629464290826678984665650563892813494429202110915801670173333080894341873311517502050925576150807889539351320169468454230087711181356530744314747132014649974722913537398514728017002845982073033611872439976931191462505737135274916327682684871354447291682756694392890356321256265875456787111031942321593089002236862390758041825328196418016116766101743305175169591068009456795461071700879837503927694961794680657150307244120760095195894133933778228066319239223356920648483683144539615981834503218188655628186367232280188092969055952018254779935664920407997312629254343240450785046005070568456339337285888614665073782937673196793541810246750768181559479510906259762338089337391518404639614805119201223375301007352801121528325640054787525520964104221494040831140183157550579973676230957085871471835458934541745119653667566491688601328571242223530181544648893260689967503120609925563902514254608359670575423020514969232558744528698473877511001920823066731199024711331072586635783571137727528846173423569296705238057712731848275527543609206234435025526022894403698969987982675301426818271535990287468573706287978953841567850448200939759708389233200337425755470272832153054145639196304588338653634572930031444665694561268329938207118173394177032674021802972525724471646569067869362434798548899052805609617443992327256423931210392070510378643316523071673267017282347219960741894789413681099680266368794817718388106716123730645218810834549887947558271925480225416341210283816969734814460292440387926882186903573176936800179768793581490901752985621391450893181427717120963061676213343461372297741475033140866075381262132237636784882835425904297921628556741314995197682738690189918132797521490015328111344559262390320038168101642338360410022150779334135808902493220128049286008669650535484077443977809072639904434698993099022151457451598354943513820003197423984269141361413143322110345249989125186120831615068501696310203333849218296340411049431340911064025254947837273172925226612576428925882123462395425141883595654632638934692198207540036678104343383458842717021577521739978564507083140485793060207546912374106362577872810298345292327254678957394368264650039845174521051156169955921676046333460382617746723730399193985935087819684160000287000721995669232794141457375857081713582438093991557243188164808433056890193709948809131376596795831546741377115909780903832432105383250444365880400043335037144466289950529688249724366251563902697003969458169315951032361333050600600084375004012808589328096476023777598409486445488545711740954002898804075805752178076397231991896064496608067305244900344947591627945351233734447187175813554625314683147930660210711296380248863668228314368605120051602078533258077096223803259524566660602602529090474525812772103853960304498939868471771083503963714624762915566650057220503826963496015675617284999524330255292076859278330523591909604603834679486246528145049857596039407503571320853855889521892960484759823078270450202975947397960645905898249754168205584260628019787758161573306935752590534255422549336249743833364854882666945755415788559976485237112246813923583588702284408345090095576804574810961916580298006580310258840532133893702065643191086029942418323814483865767053762039136768577927091418326033328290489129741535636953747052377596357292499352647112414937230378871675029923429011208535775241252649994186562571260316313888291955589707821898785573222939143543761294524605491978462666718317365914647977808326713658092234475968943520375159415632091643373082091954736628097117877516857610380605051851752481350575920958029754117241107466115748249931152129329813664340638867356984474445527183607835849287668822114371987001737813532573505434914908570894892369639054046658461149178322882693474506546298800579614562858074926707720026160976724510108698082893339542112324546286587890987285947005569479164262045544188936061885695188716259830836465958680106538964096647682452695979606992997700220458452268588735986936860197395753942960115725266970504184487021142955828004456581607232871970978369146194755791041720848995627790001400582765558457698884079505914515718136843163732545665453216857443811896899148438416027112041398667518079225889721207768410459129694694178530428382401841268154571161999278813833955862664217631104505325305927140027778569366232733613601203176479358042679121521582265050931350131319745945670179713051023838677080305111938182979699930924805779527433127126938124884899008831625646244769804500900280624681891303377081358191730573536615795403595964168528771431059833676680003254192633777595097249714607362830196312257760683950715148931868719630522367341744061969795027782599696660730920135827707926758354976843159491703886650016796402761741075882718035211827820427648533313540641029537761795180159306893531791831284457669205863979661875850646081515091360597115363784151779043765562308441160318841712612899218956506998823445264030589530083368927248004017631696011563768590031832627772386410814928636260675653621089750265117152011897669572359581420172127402310348191742136687951306566755056611432914306806615084698727036118222370296607689152290199140365296637225641061281036461862193133910028596969904403636151273261911148608505911085627507672548619263372612388180462216984559418587100544391967503703099719358958417032918340763822114674221837174991838922680785266241074254058160944762665320056936813079563022232906707490192651989676382437449118303096168092392521521177869947944528254004404862911239882392399203692908193965899687945444162490354367363967569773001248239521024024592402909991620090173061389677421340359616458764014214861428799495998870427000505161093193607358069757578441688313416028268272585142743836356315372232170963730255299646814470763785425130047775852729995939805649739172591855550246989248524274415794093820866740007445912419141930606518019647493801694008091544131355422398468048483114495593484959283247062751242441335897241246421207314617254772468336889886099603195825585173618584491290971085358828574771987856687171938288354801803761716344533850830861715698496270116030107008406811586237504758643578086451800000694520611906263738235931022017542488161086372953764678368061656952669597107168355229827068723462312577941629634130776866651271272266200700624747518729406571852429679743111687213724749144629288630747742234609849219299286952529558980562589216053110134363232080444609226164325631886194744994153561607088194034898152151473868385082196905008788696488493658910759105810844654171388802271039749106046476194557705800842742883527964451945303662277275349865598614060643574301406923495582924376081678212314428047083757058935772795796377170983522176621410966957179581283855161165435724989174819676756883608554046117775375004293483881672482357291469563250767572886283099517003773622228636389483237555492689165855789969565355329089563302135258603409279642937670551562415143178486425382710004756164322287127921739014872024679841586232991363286248243327131086364441074610197588931011061678864177079542634217074228196723707231257385606137417219626914961980106996812279769805409702257022938818043082403790338285852455545954362970360229117588112326917052220447931343644414965762967750917305479898160195952240889359915002766750488501320267398481293580564615279223581049614667244754643872819039962270841195753883639011691579746389145517043938405676327239366779330989373945435202690417665200916224887289215145150937440456510850867059299812054670820809504896093550101607550076963561692753034431851021347163385509870837531123388762198625230540319263086958143643505664016667819882665322710533419209301147113689164608703180075405110121095550888912539506467907987640566608126847211833741272163402637733487398804290529536429591197042565020277041961512769609959311147176256627316426847363288384247537812316860713813843445364869034148216147957729737467217321707767439957634502495688369792989943740520817463177681721710416286733182472072585748597763346915207515755419452670585179198247398567432962774557397648407236164123575645868441726823933195358295209792608855541862669244195175177780767691344499196771896180354216552045758334109392923785471494751345699022850217073957760720151271990682627967702443548463101479415616461856387355994422298886657013496227140393322047034004607870351662887127189826126446246095492229467604579837394662837295738799548427318605087504393190666029070284522681880173899908206323669283305443716335728971881352043052999948425277769961523679013826073782505163091639266095641579445063327510129581737720903253762803704170321884450085423754026019402647822596481356543534730442933485800632510275622330764362347477340257520059848307574650151261197971569762507261711505504164963623542277392795909041691867514122679382328919765562326642757128212798925496158979626089351757258379767527929782018282725485512522319567878527596813361892821135630774411178124769360512839003921650233368049881783382099585535505636604052820255125266480998436173285074013067089446482147944480206156467756200419323616767025766113118248603680260976408690142437313600941642792585459652892450193459065621430388099121221969782425213259418961361250701663447319406665110431294743495687027812327480270448181137594780926970768638021503088094282499954247529065777248024406578531150327383866814769487764933574242226172065711213256719965480717000032128460918551861959824433216787008922753511481562180257820936160008448691134366925558951219306321998066307659224678831189184959616021359197439734575202789443618317091773466950287170113700787717207955362531814916241921392868437309998098738654998172893843883513481973416690094494040440975096766699096435922887410210638804677523106467750825357582585701203930441046576224244553232271891095656443030314794922959545320142466108826365419092269990649806431638401199392865825870096719911712603424692372472583683900558437159945183856080682104522761214225748088240335018032822399003950078837780458486066741281065926975277017981483889236309718121959960205696446901253523707014572239699925029861700169734302251406733913793300090474137990180257647035018989323271329062409168652543578320249233702216935799919658529385997040256733914298562690523672685637026802374107356760966976425052374909250936547124579439499711989432620924141156034564183985456424220988184483004062365812117268133175564316700132956279921437574588195691060049539220540655569205954585403518899333714018822961706297542544572103420560902918016680690537740389148116516167147520272155783474297068675715857998214345270867124189739218478458413228852716358794747163496365205914218051505977106666061940208851306922319339822247665719107576630710319716114511470646061028442406768490296482101844306255315874635793550719594915623584731216986342196288574541333794542086899577034936305508467119441149475635656536957817955454533894046667848099487993665314334347360441025507987829069339154455176276653999818555352195447482982014657969722380567079366082280533563999397082477387836345694957167936438705012567924447946652208238794275986769477574692429754731315802249304320790195520547296239214691640743745218751382444005720365554581909407094621534052774990617702609797870829053612233423728598142396435715970688664001343771694450883458025184388914845220596334350667859274501277379843144088691677530137299124094717189922959654616275762841984205218817284126207428672831838420655012860700028032200506071198459074091101768666034317031663210152550494180277491552125157228830850242340611048435650068089136422768073031818008230969498589851911032519069671474851141559053432058254847835478849971419865232644717514535068009803167138089957849108638240897961753757272707595820477052496036369669693953574329528078286217938627496227359928043316507507903885269818606967384790314119221753166928956565110624978969239990287717485978580416128775747879331521637500138721740471409417501735950472392209713141813513108388908148695791833947394934777629247992284117976984767395088045446030838096924327055703355464711515194322547702705077693948520590890835435047267470236526317851436516060727700505029991206020317268109410236453734297288055026746805090220453663202357449015567256884820208435881764286609972440794180121405381548696044256729960503105658437844853457337375506807517645487050275300592759882500543524468746495290538587053648678531327905069901071738991344398786994336624182248376346235904939058554297142859649721303621773517043531983763432859913071649476411772496587733335873920523784156344928594644029095154746318109004967562486725352407860312692598139529037474931100086664932866488430524711551530359483830226393908734929155965471737366404013631882675806160723076785270894708006772069579654146933762442788877781112370827072810020291145730501249635705681607255559669684867943217558190815353841094256719377225486185403225295067073184422339568013487020582423584435618722784371119659377260826265908877499831276043467839388938313295980756388517803492502652378747841309623472135673865410574754308976904594317145020333989752334878778820709172509359140048516742172742915401393278079218489153139022782758141281420826131301286744131371267936251747820072004360158472401000613883564056466612905782925433268481364490610830905630940484960438548540724027466687021554063161588637416634028072119938411332771592686832891637932059476225384029495230436349940152859205331626274559932681347375118188052750611516206850583621387632105740902265905862989803276289895554401393619692903704776709992062491094991015796092269128915324776635133824776690692187861314803585453224728773391691293722759080684727210461614512427288115744580642087182855048583618118207995073638363394328362976384436990387948022669033207572753884655948826967060901587627904668804800846947886633579431944135500185264872124416365341115027163142196788051499063464222267368637466608631043717525766250890146533125364943441429339936410152807734385163429738131102422921548944362237466104126340063945540539896521690999257293419808273081209492580036133950218981728577132512515734970304872377524702409800343273445932337498290816334970316839538827356894418488326264106457549754090647123397887256680307403954418869972919243779461043976747923383848863602090200250911348951607282572799187411571896799637155409958390008849813135557253109702941581696589021971141928864505150897869813107066489980752847179333778722242218083518022989254507165822856728386218628560449238678869468590195679458975052281038244767950895898253978943964528732345871362713314347176620391023771203596122248886472931836550310194212391164245438135132507783501207521016617126147833398814912579517251778206663868903087007802845524241540858838255267018765362879115200841750674996470035845146069382573383527985941372571326470489997454933174243935849499037102503988683505505354214451228106252197818242623696768631439216303545574428737447861779765940888890204207494583880178888380956449144704626085398300450190116184031331156093955060857947851066140767050954863510605344296454395679466059210902451609988083052982343558056160987494034710083672634913318759681259419095254838446793353498216329281057154354684055176197844810908387290615048326360457745621296076031704926951523279715172606728999462318827664194402425529582617181196444434362755571585515812586354940920274915053124007594648228585163661980013281595863034971895646402999507120972596984182528413099778996605934696094258023105252231662279876684753087879312018687758061825618539526059335859041410721166284798879547775003172254794357024885591235210186408882773220900861506256175929460984345216788311804699313476459750706528240762206217136255853537321420205152814876395761224063548495716345718419893416936947411335688045529368865694944728506234082007324203266639891684145220933250353413920834021938119159677806990694405604973590423334296114384182092081285005909231205690137244399664215260246629950881079994437848341640328503074291699010889301714246504158423836457004540459220501808068116029702611211910216677232898621398437017762922562319461731834467147028010453989341391036054715559840327443785060155680781929865429576742490532097773989709909463190463666735220984912641120968909529809857563788679494861103710337179538364482347934422995760013711660866216011401886284397555545235747985720327367070998206111998967948807758384144971343608992920604165690347942852394059676011789627232674303603384630481727415443351237815247598157612391003933072004393645876987487742295620687009470689018885739234162148457904645890987748393440720487059006135133388977009419831801719538483416034242852805582301894474557631200199802686472973830632586416596275271044862597125033178858158867671331835959411795778103546810026560127141478986785994409282460052933367682356610482307561618605463021573954541457837959220245485584486390380178715008822581509131340688914878130594495986178174832354631652907451919051765898299633666924459232181604186848141339342308504049597336054781533401672144559705417666485148838527093311365335897733467724962880204054022086621968008743004728923585088310536038305919466160987038655169140325325171629506073373375203432264822061943088996593046925730010342084452335257582201159161547023746991753398910416308433538121820406891026771763347283758803552271450333238259085921190849724311744742591905214656291062937608760207071200158548562942265562750986240347253156626824662149144698468448424561787886573523852857399660677078536872756661525092334412346544671724885219277957715244591465077187746669295630939910970377927026236762025235031999767556149073948553039048079998011294449536712528976429257988744492551359616003371060039614649644777410932290390385346504369329926757759653665282101778329795194736669521947256842652878812126252899975596229420934393272376735968062940526930587338100914839971231898582292903444096549022884122147331010442704114337343198860605409028970693351054421888538961259868503683898484063963819321883951325356183639641574926544339718344920260262359087368693172791133262095627753709853382768321452415399214829734100255930101816655566271443071043345181527421063564299280040386893267408381426250364651301419889676311762054122035018099190334770450150941316908360355673615484600105978704207192004794028781922202230204408217462133161147683269254443832536870776603386562826393679470562874029858468778011968059722633757643791410741259887637284350524155304616222020183058025511983424171042169698708593475631628551594995036893038004770644413728294323904429036890740676036784647131215366503187125290945062370825868878332276203403910253732832431179258026000670802550318322303207327027236679045374083052590183459753749691649287129872851610853880739054085042578205117356319130927592577427096577804388815072175804028785403249253410519012047832014653060427283952644438997251835382793825538330283170520241835702885459882007872377917954140198350695237983291780370352255447873094779602679708638532657476208365855358333390104067530952368529641575782486736835805430888600184675070301884097200751689882904026684223410958059438783176505290616767583650881395257849388703376879730568624871476904453142566218122084413597916605151249186393998052546428390693231556830133203209756072356709513716545193430833725262507012362704791130517217836146443359029618283500288677044659381480195940083175474665978800880135475334936787063868972142986258280509167670059803624483089246139748222182841848450515308658452477041360648127315723334701101405924552199893014667044832148957714642535476263142740396252204976151980413565971003029894127970060345572838422184621081817537150238498880947768883162197551584915759771467566516742139244407084433304598509784629080061897917431188254809468524682001740759775571873468353777941220072103021016317574189267549467981503884125945283309296491030453272339687907396143983031728819690914805173945536690130255835575883160516504837029032025243918966958270482715333354278881307069079164800335588914090380093769122096175372173376148511795216435847670946574326527687787222336191763536043781046148141451738250582022091337512943569864800068863546009086826779690465358089692320369339980605464405672503900688874419547632776147558955866187786684230629441988730201257031294080570541104957861543716681947481489166698003788366952824106912163303869714937200798700717761734403460088786179386161335525312702385657328119558908070575545694761903830155923368864640152970723472344758950660675591131807981634699909596196817942588951010703296264145075611491393618991424371988037662338997820731569835576765477301012360530275911780643463899553029239141143417786842270326057406283464377289641255006741483434496769326315202792836268072731555733541245764720138454104409971148056088298007192368549090508291818615524442724939002753554196611320816192661484857847681768197754176925889507887567662720506367545981585373432270138085470990164181019997998883886242493548219502082504299545357018926565648453692630807079589617625542337711149956216766445737367959291464825775751715910388765775711143990782048369581318042234461756575318043842472535848219376983755491712841501721819328814430306338968302477910321808355779427355782048639532092637301920809685444813160312663237035399042343968466575710310789597151162042246850034363363066569037273360920122808281732682085469687259336097337792999689311254229086413650419522703095883708894583862409924562104571057091990925791314792006725875865802034731314109685126769809387977780589911355397929510940671709747876325468066535450901140251361055478418604619856897973114776825016628554152072814873992978794596533674504188010244438720485979556307527051094309387457784441379498722053295959690700052640558114187493019483683813498275296253661466264449416981482526694160620240285698577177050224240584585541970881854573676510221072869104572664563133867139887016540054787376960851863461376405859969779414087343678794067644872336461315511250385950420961857035151753792235902733801661583249740691750667709738322139155068237489669455336224119266799237918834437879316516201445502557217555100073256762456764518095295240951514249071362394861892123654681376577941240075147817272513564596153164303512008205598512890479260814545090416323594989155204157623105715818510735248396292461385423874767943000728039332863650859131577710551553117948751126092646339695702381467139265754966235071063993930164289718472949843895747118167547866224059108769263629455980534027387011611931889723251627161860143583793530781441790532272147413968200059856636155407682068618199037697965841788933612300480317170018279586030075555137176317352271762904960553504827862494946770346521268212786517421943481766075078228328606198338047557884579437451199656248611855987927666088109066888391665350918256030841973755064267132124195873807508346074605170487401483824551033100733316807017697061300121434174774160565883101334732494108999174185610723282318140226668825140222173487243092192124922818940019026300498515887172306963891424091540800789623888899548421774500498081270016703210892240406693709850790651458352919106080604268099633808488346657661581782354530831570330280557594306805384126854287844871569615743723000310208928714475731348022445527988121113527861754776718954024315321745708890629374385072353649148154986890359473242966048741921271331337679898045869085971881929379489991397117535537076343536194039956548784926291952807817712753422096630130525371091551996166918236442247124808669705690392011800567067629411602137367536783101227039200336544254703527493347144261254363636565335031895537964601543372804521476648909545027763932541341378043127276092480848981689374280523427829260021917684501675919868364166357023478035228989367597160607475371395420034693710691764453552242755061613083866274241679359754109947546017233144072799076073024474283912226942851789282296942066717737556940574375875935015724322902512557779072152387121468614201969805149166111717140817233367631436746009445419049283138385539680528434890361477982410057761735346927718980520806013267235960486811070046542920603026400380872830794571795491986333576766661234530419399121148393856185679032130607325274680038864270826476101706087087277020209679025291707833411299719923443346165564291693155821750478630006776205173045630152148472283914753947531727441897346787508290044470868045922536080988564262267031605219887734489812772842036531508197899599733076593778400634835816155158351628403346506690673560044080853306072801585658960908193865866619504650124387865487939658464861266475881072671142797000758464244275487342568538967485136228476387285939051326815538038178151025215092524138769745714968202125256661692103437436095934086302055502344820944507955006037439168291398973055111717012461381168316530347843995226620551650203467514053045355834108047270754882849387529301013011544009524717088173231418523715032600370833611468336030079032613978523059562724761921796394409397715458509141802882588729555404411291519500518150141777069420048195592703624689738774817828312996966805273066841398418353841670982621932890272493855562389675408998356281727948023040754123610440082575372975206525041599734352397480332048006252445007996905091474358409654595466936486499225385528597229341252383716158679893277592908425202735218759552149836545151800101159561925740296481142907383285799334261610097203052514559322994273272500812627175829123635139112335722092094845543008115773533849310973792597027145585948469129263585766157261686888139680262526190655075708888135653569650456307065424625665519578560385528486362642750950424093715493731490180350936916318395810826210578944002217398098018645790886472810308015612032659645203791322457012317970824081471172601964139697124328107202922948787236335830762917188158358771779339120588644436384313415813298685363500596310177555277406823119035588080922023901265313339097574374361109613972006385997893861264879051375498927244117554816195745695893892735967774468106634776102451096631573307885686782736987882379283372043244664921081886539146464168921473425384228867696087003917050923588103667838940476614926223619474325626608115423012434277881807329479379866807645677610166126175795134832373208169992512502894697555002200766329056079927680786537059417372598371277192421245782886404211412391639829159723290036129407530051403155655949894133178363076515734166787402818853914427969149650509933177771899869364255330730120465820785550213053004921125470434910205923304411181792878772665766625971964912160767408801247225990548514697479875256050928747425615717217205521547999474018242658290538467281717870081666325442059000038029654642134214123506133500044581048186667159170094856834527375376061012662324295860070424813984688317285083965448462265565630181386060205657947076755258851628502355104432142494542486452656459312422942600156959807422752006927619987298178398381156969071096938066238634593675810410890274475269386722172694354362432799045909583770141802191706673373487023878096655498968672603710492329118810363787611874190292188037771804845208704746968871418208034529885753379144645584182686669763698950956187171139185879584696731914215060675512870664781749736906106516358487171966200175389982797036107589005483691274018428500849030795412048390057025155497199658562143164338454093744225499954615383436091476694627905467643279721344918766845764353360722424926949297335727869002997647628642440052559544586505142334755088148964088185790557485712125179429339677286659426825177703409951070921811048355427917271505509335115416031527768729020629044620155914003478385549109956365565093643185778974455420380455516368393015682438155976513244416100651643110216028298627668773660297603764409410370424838131688683433448190814611345441755001211015769221516570445055992718883670999269910816748770598358020583583669167300596316858213280881568837355437321692001923316599120617681188813322016979560630516984920898524363911041308797893109776613591565125750431914531905623586815032574833064582353082850845598257489515545070967939428167858672972267457410626675574001848131414848431384472256361210020680663227785238279129762579959376439033934611850309879808393802160966466409262005218730240879576632050327341099983548309982537854656905003104157515710560991042886123584572967075940039074937658403232853438282775160949957548720531834818005656771813891135698520264117386029793353283925393395599581540138548978555857919579595117155773508517754443619020233305526279757681315060376345353758344794429774539336789088757008820638649641537623992373918992181259419953123418844000817209335371065541593398274735819811708615959303873086163093287302062296872860255130543110545809016607418378200947574717390365693413450505097841020758085669215916070036280944851059002961623674327810804104104672759135362673354989183464343878588412057962448752636060598803921209819749963840840271736687108251174972347856379851544571970274504732483242260401664805832068962465415833321565177524146722528111627270001391421417470903889667733048372856468006226243486870287316874966737876463027202445802253905612496988138564194627611374128478704125448471800480563486868376124891428635969825352580815947351414172085311954564344178630968880274440878114491784789750147540870481671514235567745852263059479282247520411068193265160422630464087280651515564689207159662982779984840508236561954633711845501335073252665172152222170974148580214483724308792539171118253618269769425980956845529750337254499097347289576106651878734568493599177367615738109079903529104418995373966890740458752498439154044648909432943058393699917043893933667420039015945246344924722449961532384005359551913798057853883401407971604649018149703330025300793799665591617463040844385047599520631036586494863092452725056655460429945208109828612113256366938833224644846001918284036214697091059515227419093630941489777090244249778277380056097416000448835727289103630050196508694112612624710884679915922520334303294431865666581525905038988099572001098250088458777966109139025850610103295478300661022860878210490014631850332253695214592297694900317867898459998111186994544352694104438893477471958633271342496482387460369870204928716864035238060062672167942304048186568048740561134298662112258000524890812233624705585421652740798362697711790474420652545193623585292061839365064934565266926985512819457368622004416482903369593582255883423999509146355719064425178511287082974645530400680548985821810078260949296019267156244547815452087141970679158044104931011171059410936494916752018755842990689189541608272748247637799551459009012687284462369122536454326200369226065844305681989200246748573319067026898028038222425498188495948938977428441190998070718297137654809490145827036573170204353080403970961265193192672874733994219311468606966404660412697183134672290748951536273843055738814415207656923415189641608327712603362479568444800469727311017870857527087355557456485449095680535349385461863139904441904042383523473782806244094231620633499084532842428346337271181874903974303338410067738534560368315191784158216624165259375832687411582926647375432734391468181820979456218897440600974541776111131689926882158382398246264276996166713786318051696103567795597893815332009827334245639807640165679432292197451672747636079663648632145522135446891233925929065741402024913224962828871615819851515641252095975759182358043088254689147602569056303391365982723679273349528406144282117577275297887599400052998766498376573347823376151283029995480054557865063784271411219617761442815749661801173223133466258119739658647097739686473293091973623325471720251182880279461727233484437655393065338828398062294277751410360818088777644767176100163459442080616372176070562229503574067296382394088662004640995265889087691067354664482732982519896640528036676808144414419538089906227472661925262030861464357833143939986719595123624646754677974742925587913320900382567207831674036897453925214870632107324423854879000107580417230372985636843585004090073659865107957316946582510813979880706403763138614221886850587583799644626804400571279072501768093303107734001842907291553784216378462720155118026770386319446090731232692629113289985381436219246761665029518267155541188954410616471532801888375313241841301988889726601349985089434700455415078744736407228092332885978666885702346106497386711614776696648463546388892320218190745251568702189231838725097434256716128179290264231812090452173083788382815141870145161734860739566097934184763185714562399278440354418182531053899396732889660598901683381214279840323050651781586575426174581053748057617952045527951481638468465787941699450876018807993260431559366294432411557677150162369439739383111534085453099526182917324209425609490096048114060489597372304654979775751894744942209006184292306227115033443316151577946848405718130483496549659677573615047527645022583086627384514628691032092290294564635632868946965586676397016259019747220339290794826676488380773334177395825798689144845206961904030335173079097440654082635177784501313054347021304622998596941789354008484869911648182412938371253364083409256147470583607955861782993770301062156142566295716359842885022970112427777705233524913075892105293041988755760598128781590773568885538479273766978940477621932112554835073028774513708519397030989537035024302789476643754484782102447027733998656172993926849860218818777422475717667047146135637981002377998346466571757471059650855170667428846564781690256460752253105029817410097384520484777572499074435541339755126291123623169469414457981019761318558561029818954386224795110814840698730827977403641203664401354488771581127137747725881268939259475068022984254378119061274123434889240154682550008683172366887075797904841960643227356842162084685980821603091578800535612163486570770710075621248086789839828777710988180767283231325511500519038355460667096967469365159133547837046266310808478431419136108937903933099825606823023838474884944483982231940775791850515707271977005975344748654232597870595831772186033889933058826368052435145149211971249778303904833457609527514112477468019211420293270477409354871047884192807124165058983736864218284187538281884996440772358268579221507238446647175686280092367938325513100105525057122686689034953914926644341517104826610375042392185250851267006966776422805158283117238056766037862532787317440730897767810474982749216777261591651213056532310381390114163549402966319709671131579628459788346445401071854695448278324426212075413652025042072030902286355542396589560367712709895026902121460207976963188449455425135860317487044243128540547097605302006266077129903179648798741830114529376348355631864047773046047492597058028921238749955053468069008201119193653496300295808239729284536621074486699816785075722304198831181332515047111451090308483584589674030742061067125410606665906121933179099716159651440655353161386623801677801808947508594997021149382246399652108095057314807440888848249555658758061942169873341815472914576538285588124739119583790206260886206352888917991630985737065643108745029891402084391952264932430230978722446388482966056321273707545414503508506827449712807890451208642120650736705059778873160567583087158583012518271448398406273141406399869605960288675135962745926687890898484446173291201778486585527234503548747325576518645162703347774374582726848365869028080178409240991173869450112921049784825754927183430755214504127315095314680040759599203177399250393483370301583856610134530017417983280941869784647849535452690613700576360948218316129610543759833349069504556487102926557396896479508750602735091422545362491647325137411756533176907310331175778212477698195792557081858887263977498394972256563947473256548577426672877863044916643596118934379325892617460345238769709188544711696853272560297675667838064563315591327429621110378445031578488392347710433470672400984586933804487221165214623071435977525907321813018253329731610704286711192194133117673723920823042200376449398054487309383205143016427018903663548263028498796515203871619424034555091807233454350513170623421499824272148268531680035378353381986891967628489508641085462912340603160528565134263251246684274361898977058787459615298003485199573304237313908692885857232622982700420055309440619089756009376664831822997900102150932995083249980470723177070963310778473420722731072296338713591227199426154015048523705392756934891605984999383438246213795195688626157198640292299802504502852447076155460932580694627056831155558670417122795759953001655224120394755299837481846649605112486366338563770427559696915054774574664392509173168458600195321673463984211438622051414370278692254364941511869935149542389924523080693642032898173357462708214282670656236558481734056179516197369416166763572071392627292868304001003190817409789890209179032603884139788176903909342811006430481664307566820895199978427618883380151676754195850316531082271182185157045183408002656541551700319363843665098138177254610440712824500980656217930580321986600437371246653109784007067192073069229345806129578876899246033758002596292828723230552078474653542442309054099842599125990792508874903556642497649559524595272219760772677965149538823003489679754754623592776379773180698783398992988414651479053633439039631987793825924511444523843516523933675484530035262653624562518474512247283488614724436126968615379429438931447918335508194027223288175733969453395790924056174491631358407059885387050541464844628459911820690096282818219357249750970504991114635673497199466252213730068419956811545120040222216204629848009819853572103911870587744845622231637764899994163063374730882560470465260287425591220073666911941261971855478132342481297985011948577988171865280573443533108759979259610979230202414146994288968062728215452157502434627206161493163866169673551300071483400630711893246323350414652583218341521155595716189759199160387929060768857561063835023605732102472362970101139763464634266083789009555855728688110473319102323143129387536632833369198321424343317342350668734512257986940759019596642378024566914748979356207359290668758278072250123074966137960349586779716277489498687212251139350829299104532137979627004803354599611642652893881677514562900155875433700320366115869699075562768412753010553399296476205983953434350947830905055542206832459654735052133369707254209245278163959186805825682284520390894615886993024261809961461647189402525288182321300749685801526252565885400544458931103814182998656161707446313006071041166900417468861177151889585254252261094516491720247629545311989316433254862017954727797382303730701367210904671369886942179082061625567073210047074609464371566929377693158667060190171985582911506522131045838380808545705966914910909844739422718949280654959862778370297328479922302653629759415069714268052900537355513428712216590891510771172508107526433520850005083732330327136282180359120245424101245961403430960401418652330494545449217355008093661818121558497422693391922889726675590889241325448772209838818091014518066375284185091799948527005209815024997026447245669045711060135305824305530245968912533649188289055615256187462884234225307854372463347287338950206635789079378871872267474332431818437064271762438097524071529679920875784840634300899922671883836671666250202772967773832047585479869863140573289341660325598014372482542745270334041586745994941357716963706446332745358821174347532431970319924955913799677985309310617095186939400262213487590491477496503489609146155591869686329983975404999876556009269197985198642217861224359362055442113074859360701293997419143569321307563897392250357563305974723407874985476599174313905571454421270976003879850503775510185419389072441977894563156894773658210915896126745256374741100283755629977867436228912508351345542654846264887850018567724542454561526288018974607680329228999387271705391438747333351666924866545378151750778339587448574464602888607367111899469036933626156188436720063154936699927001613566594611477797686844019285156717514274729429681975363979628595399048527551076948625832969414584248772749976461525488654684791166076965329400894632991952907988267230351537427728115708271194964347723332594782235138165257557450588653631932418487857574277149086682026108805607077763613855197782411350550277369819097853489038826706514858046345619095318694582444804161348579830391906512553859082530786397501795976579252753977502232482680505392091547843219702234345792808898011220346785632763930115932461152912058792248947995460348259054350547888384127290402481989246375761487765380816760089864544098793602513142152770183018565463182489577015232701938774235231506447355479344928257882101931453969084218894149323029353696126755764150395163633706160714580168624730736205375515527235274969032420384943679174164391863497990865672540365814055991218129174945863930919945746978732855223880279654191018168772182988992932321628405856247117213931510946806199491873811262668154964338807817552903474262960490074317152775529993850273441932255515299713732340809217599907331367461496157196834846861237505473640287443098511986485169411796663913542116710846064060497388672859406286490166048469483195960728023311615338518926210788768459545866261678960239074358762639667128220833973198922832073829827213844128135492810295883188483334493462184197183209816550771123347400493295171314892748865314607315224761754968941821600727181884754755042395482190501082714734660068207320989878328690834941128294079919903717615719694974732692845125549238496709803974232629814987114508260418436869642295459881781861531628153052842778767050740709947293968759250872729370525700128728882146925543813644337083946678237083919757401235651000122688168776517132689803632326334640542502556702452936425522059427154391856746511683754721906452428123122955106920606964491789659684732836211617667348089343589088812096070784500132990869779843480727733536254699993503744930828755698834142671843752827947224954858761705970916891741380310112437511517999172862291890874308228325410709913501121581469575274386284096764056302165773793499716422460672409061148418476742493514572690858606789908523124092632282765077425371549164150548953967228122804255905994542065138446952313613732288817400458546340705247826190986500517416735664810709781175538245763417133370803627521059273654364830970936833905516703165636570775501363749676745290552180470456975544152780931308781930846811976041258330787342227632015037745322761765598790087404241349355030013795802113387306128838859271558621565170345289071072743253454589005526081140988062102132354617173811088536416173307214451038211873209363798278954991834040260484650419543259782785431969073974055181848969599308746965805673941335957111082032058426896807639018424861380642481458987138829736396834964268617943787799220417846771727264256263650560243317682227790836029453340636159430812064515817604157888931302115628427042758519721264001167263349762731578178543439284943678372750201331418838082702534600175796323593862233983777151935733389336666504875911722187168160973959519124664409315038013685496068884794652204664111283461987762838848972942362881288495476328962604886996696181354481065431405911528449998137194569733187984846191635259344561542535493420230872018276967433814989192384985905350899328794505743812146255039477840539110931533558226861630454151444304488351991601536265149558782297477625459825954971730135712620596847358621518802519122084592991691071922942324546937293550042769794266363327833795603169474530078224060977579910446665625508422799726411153906395821435701640371610971417347133495743906135390681886229288297823921141559103702649861095857283708292544806068356870227433155868763112316742279142015428973952023271961292998605963301193145765617317517541080737219335853097234702334159006410170348514929262453100551441932704676675154767893230072145627411534484107866272273757429486520714048003333907082678222495368628428409802766260556242012790038796379414229674914137251457196069502205207308231042356195026501021306166932815635320640879005347273465283306659540986890688884636697210067148438880568276505193565758334911111869637511219196861136681365488665722888778293241280986852648435451374361506092722077556086319010965292446294186166788877174879639146202282102577199720976402805719354589789536702579617455282393125364242906785972560020224006494368300608331735738130441717331236968369300393589734933961611521041466128994111466314858240037729187086382348848867378719843686943906042902361131339296141050622139455398262345584506428619594068671366306996988191597773097428483072308811969800497246783938428430203287837032641371682797278825624022005700806501541122786820788880541218259279534335012886350385305277786924976711548798254302363438093307993250472094947870384918751278471217500257884546816115109370151163532879698318211932948847155939970216280204082232580230567784712478218567057848141165437539881231356994458058475720768420444490381116283792569411053057739861343890127822071464243350205713371524476682922711569723481039966643353138420799543427450471928625766577520441282843912841744802767735211306031826414205008215319012335968898764216083060618631702132927642702255607947916968296651835733582167381084383362598998702372162283227817716037898249993915246320090007338176874986774344465171215415998403536713252836630020589033279203071734051150485783762371525821332099067674343374721581580517494700127229877192179615736735274855855744299949604193648294893382259393100393482809693218356678969003562147035122892483648604733071497665198986110629532912589448481117066322014407546286569769259272972161429819688774775402711480877870488743439786095794732481427398917721554844040858467602795636369521782615615405305272954699702308979905067022711019240316902097681567795084606820120530793081006011510622782413465278481145882216265671701810820158713469604436291430455229810503789549687446284292842279339987474130451002846008195150702839415181013144145324985267810601288599287062888726642997949199671819587434813045687948900033030546691033666485193232961276182774582143931150096174957597360409379781820841326089391685931255837013060485858442156369261847320747396527513513142772200134820261656040755311355326362372125961593045091956151163888093292879941710421396882135120427152817010599848065949202258746138865711242787637226122976302539894535068314350092292219515536335231070857308865753354277566156414749842507832339657812915246800101707164253538002470865990738650381146026802659769229785266551727744744954038669476653227414913126119011849951109588582204669285752959476719056429088937587905658756924649845308048441217195288001422690794577003130096956927262484811145625048020556885347140580016011047479494032086264506159891848833236591527841781401822730077581240146907754193845799609073050519273422135825521237132284588617405690123260677265562344115558596894156404101353327249767450802895211853960538877603120348755465266009458903631783296814461841259968067033220779746231820781134237905803219359083288466845695625958189199706692455267255128023504941304088225138913501378456427102298242568535147732750468852271859408327234813043696321637145817413730484300589370503393106789385887283768720066943174009699464656016750618424395540239190582818657744529682671799815135484146700603067091118228025738101889945438645487382853898530283153137080503106983728570243778044397225674151072863365290595434307366785934466789974257187237509797404851824748755630339893226125226295959018245669505781015258740144317713566321623226426004152466379338868029710808049379557378395494896854502421359998169235554569089896857200760817247125855993456422819808554528819306608130373585826504518602747073946078841296345595963501911673117580896373094328380983298672413265675486827422285789405304105604726177925239136844408883736181441315110437530992505895799119949368473293159891157149035537872207824152111881696865075212227699012237385370718727783628961298183620963542902871538190873613343926204992598597777166415044967412126777090147582873168246593992887782892193648011935443990717674950595772915130798273281950977921018082072409865756493869486869665543179259453592437202144596669458072332197689692121948310850861505346786873560849828460783879691964711350803321597350386502492161139186439657943316599846515442875288809778348102986026129086022727945558694443290666542300856460069235127719084798363236750053751830466891603565024928155959260462589808060883934366832353464395492308172867984385932755711118819649227481099282712929718841408845435174335461581855390542111187766785499626065636660598447675622865862043417268130377615398297705998424836570876663148222532469925333485702766126453009724868934589665907391854111108866948278702160184618925846469498187295224614639401610742508453611999738916104612621940707845758966378054926610346641298252375578372793030980183545943865953121364535668858589637303355285292113444317605311441794965429927980350424462362355632675400682394217154094975609623390032816713484500526694888033881173747125819167976602210721836676924692515966960030674936701767703082024873994891967583132138877794476675497857552736265158019174319349177808617339886144570886496610344287818539306137164902321654464150150757527217396796821438792259215070563501855677608774662905525407148512652815310189076907060630374850647435061925263612239218825620744233137865698519662861172239900376961202466946442450588942433025728881331337759431597532292999899129632444152734031309274435267602800084039459562371133691940869876959679157815025912789347053120034660080843938598663151723271641632119158598171740162352496537726450358525887242577044807056973894696189084588955104027076151258923034300576079473519153979971920880475724925326104726140163028022513438922616517150934694899481044298549301530646723659066697320678200046725236252288603291285518328960557329736124896445981547141869218305043274126348678523342420858768143769357676749333666939130655780296794501095597505591393883172477609820354636547288485532782528331685889901347706946783281038925617905172821881183179331121294619801122889934435715670870888952133365217354184514360934907051062209719982953430776024225336817414697033384319812065499044039265901151065822005199895121048225339681925528783591092333339335461827983055064183549456620102138198253512142079144574348348718988187625336887911828150378117993772335853253178434065305346748946888036999938531339481067897476151571205674833815059890536719740204112157745921720767451255152455346475119986024353342356655948284384315829576491229864189559773210219597742258348610857151989975318416681284340055330490117354868270509790926259088539754917066142022660597883656386870705384043889862022125119359477308246514967497041978562305215326593017398439467448778879877038855678966199153852400424522862007142875640400490639335816669070366042830047163320352261082097749536629652564803835681231250786293365800021378997864147940972074483123985470068375664942628489268037552586315034129970315404149200831199103998920052880742441504028793625113416471963152957846272665306104589918040925816450861657382455281868250565275539478596619618597561916726000067756034635198671590009041974661428624878455492828556024942603077262842603432192401291852925711262521854859064676008343716430259541503403198495632353251341497412326510705206014281372215476362483305163174841045942354360764411821174588055444999982093589610670533879600862760588071242698935431102805156600857407026316593988506094861694410410325790282623544821011794077373112818484963337182622958483318156576172385834282670771919198455786480558646018054658765505599913971107230702506407243899836035616912015595258633497772960571475593489049214932152541600726756232124887123085874485932349806861393849837435849406016205370625848605188688097000742345750678266345092214464244138181638501924009513739679149630442066102325734650682056912720815663791565454639918004365648248195839360719499988024241420436107433619867611176779019665027528234512025969268995484372868685578800964440949891383786508618601808462855193645828757761384163472069946916348140471084419397943401726461083006461123615308130187646868344888627920153009099640508468714916649020214767868065209558219926349707335203240119612251059688364537871835722609844296187818593961505032355443179800668980501000362289202980088919567213812388004346202936779490766103149139834881662989669866015557011003829191554228390130982297859715227904176633883259198982009982508210253637924229859276414352528385710240775112602289761828515700458254003763155070298022043451894753948918588290477275107483730573077039667310859811289890836265075151386299703362449063644676212706182960420828132253350688585734852369705451124422744124294127676192080627649086293802848718729992371553517622909451707756925484081872759402186113752551216440633506216608436197206647615771399646905523143002623045906948410544103109893051172949257231972202207227856085108365364855458759197969163006426268165461079920781917719293819518482610824622008458964672892579795021601917006348012887869780001695137797035841069450216382357804139614326096074234926499670219938698168162108917140376335761933464297477491281713799199610522502453573651975957511502691112993401123364023612300506963061198892146414425275763521825490981795284351340927916141310600414256570760175978875926460136770228353417288365155219487093238465765136657920829384026450351615684885191656372068656973221595128730900764140168508469555252494304828226004877660553838618491752645156894567739281851482799367998463846246205671917551569372514797214694129865779594032181302410968912215008739624720617676558828683947132095867423901584318063315560668000165874091753571806730238384878261455351790868812056887122821336632141876139624088385195058721909166438219369746958463058022963828486221793088192516968912377838813368502311047723708134586805552461946583383765643405932376089131588265366955629504680296859420566968062996562137676041040048169007887100576179339771786866180589050895969028877492695424993545009641969179044792933951691517716331727202711628017202624098691615964919432440298380936272550322752569315853844658252747092826500019959809971501632482578761413376789862112288017520551376864763133828680984590828456758130978279091019078490389877030061989524024199220304705740353767703540522440033736622323955712604553740062292540556621926152565576956087346132775584836329653827693321234958300168270591627593479542272076346387859425707172844633277050709212751825106315634434560015644910160352014356044838967632921950571741477438151105846932309298574719895247675542607383389219748934586517263787248540764674915957689145287126206160832098549382288308105353112245836127049243990661087453836250010035302711491300670147407275635188250921726422239625122588642577403339989652158950225379953808152877965854533328815456163538333192197997864190121696233046145277214658911807603523844807732055823826948400390862218900427619731993989048729529156826710593756011339133365380733636894595703038384716268316943094983035498961944759580769211251325576358084284763252877958565282479559462761919667716105629313532024936059119715301752440456645222169180224132433248096786199446100320047697123458184045105860651425025888482716633106091607814817058120338427389323176768586042746939893733749965223842660788351290490720152557195954717749115513751622569903155631849941479913026624522747532337590401781226776213663654952282504250615787514867613938697738106430830741757020719252215043098337483199508775036103221344672304785733651562497592531391867490284537881005672527527410464332090993488679482456119522568980151742679622451059298445414699634573871737148034545102147811708449751197119935217846284410907813998549849672300558992180548339201076007323752790064230600917902590124520130043339813633265980586418279952259170958303326417569833912955834822097584553012540353409176100451568499618143545649404674834001683144703345763763797532601230084327905193559660468810768686328155954587985026607183374875621953154297460769238842778453129246733913893554687738223412852322790464634833400668030450651011781163967809573542360672383320032085049009331325582525696043037883091793518792829385814605303753731504613676687215684132244368739802691647319990331084076763503529850101302974556667356629191613828181899793300468411209578933924386292398570236358262833092580788604062893371893684270670594578098362614397404766653655814005574271745370384083195250931763692020559675234273597333568804712516203382021321007369366359355418019831143192064907617205896436114482701141154287007397830908561051955232695984771386477142948887444867508414037368906722515226710587413704877906089219945935532264866222355738188295073882658231418545899169892764425058685348239661052862145068362018177023480568877494163367572431050698576400176166658863241721495335876528940136680151043213285950508756903074296378724953373568531441078374773510655513162476944454338306970650905609137983417994415111677357328442097914808447200997220828911713349423155418303088024635147753541962474383836082282950161210768884197083055566601670108095064347240917740060023158491424091791496134139596594065226463378526834598769800666302619200209627730902518839668273353642565539524532725810240487586280228619986958355459132764053713992634641618937542069999295393569861801908434420427243537458328378869232697337005025335502923029643731885256141301875072036441586437339384349459008436220971602066441230468206615712442954387866697811639360257890140407331492194442010447306309219594328868915079262851025914831491258846151363780506170930933299653130857007189397325573238905821511645123645448869710751761452046511369929683481530912634524209387207821805757697095264991784146790886007054753960565921580286641865609220715467841010972349380042336721126671192049300905692040552218175612731427420782163369008259460186294865417256328760194854840037132788571923167959919673907998925018742200669347413689968299734772351925618215904541792988040231896438005549320817310957557966741618051934169766448012549262049309600144841989125929686355072199078709712088372091789260375160146544607357989283155129451823758746756516000440127320724866516765251304923577656253599868958386073474917575611074817478346186518735146746458769874907867197006056955752390844044578803640262171752809776619761499602180321416618040490137604724091256276494041879270048985220708080451473233336366416907114183492682447381135322954350001549902604585831210468442390039072373941236773744952191034958035086945293992630204406572066933880516466046617110697281019997575646069943070814320410028896657419175248272066228263898237211987445884993542864780773359127239041636046873702383055816949458495641500715258978921172622336730788482784936019289325332653182941877781221076496755212714278768938413000349887329042077193114293756536025372850716046013093084888662197805523800655974212628286766470921794432292597173054766137791872628103428594244942642725965655310941488594209660734105410934845122257679877286780731166980127397911403137835431754830298479455356213227819101668439005248913496813455462249254691230647575997041693820894212635665384625852280573028330321181205325996098072416643135556166931724027162713168327839477885940230234152669307345513051878434203336355564244742608175404049036069596651977956291228774258956527700905979028550603085012331277777989928009015572685456614647547939543958719462649187281237833976512638180637958066009919119172937436450888899757321020492214721471723463892627008591095640591403735129003023806466821325864417135304364529199592338350673034025198476389011539182646875216144021131975864934901741233588694774100943501258753688653335689268201216721225906783538094366745027796221395662770934456803032628085016192896434825623226294361341446632218322181836358359181003595990460098237537647904223401063863914695865419919583426053258274296595288311458736781841349737236917213546115263899946813381633510401791717706749891892523886220097316413873408574248711136076593437794473750799698067645382301289271882379081772161186488330630486352276749002416911372463392306469365994231817090301086819282601153438789646233165698696352530442866359404879072707710048918601163525331587078495452601737127658300929163778637865906564012988298014455223264365131261004296235025626633390145963835319748778144608051864005415006263366929613000653586562718934423546755033516446949327124175886247370862134897215306286074003985320343920015250635759042410328212375391112525455599522702338799439465429799598902281849242367576434787870587711917410298531512762864372355124162369052734968782094884035105896782506717783918648532349754171630819363378017964124716132205209424217873051805493334642110431440597757164472359468401758493691992178598294021642725096925447589110122433373808335296929870923446861372456050687907520688370800919196014678890919785377689594912236466017368132233577535954001610548252035914267826083005743937143960571365726152123737514259510573467280668681751711981923840553475838223728785763053671072143230030937435185288585355918568770856548971972178356868155741523557318506877181936782923003622484642198937492997707594153499851555896427798957057389174094246434615675887074769613164687202311832338364385740662615602629424954074194828045385041340030863662066031314758032947976316086239120065730288572830322534602432283147537447906538684274836739474753138168084077236097197004494453608496409568075098167099021144689991004154099642900916832227858142536341017587660330186641090025624145382476167929638431683129750151895391692840117730329118288258493612988194740409440287987871659556952278865766496611765559239664701464872942771681911372446267047602736874037687871972515838033853786278372211833399130109057586682232364539339806630357020474351389435948581425716060517382568294764302661444113176292713473432891777708774730244387453684137134073751007773782857474945474587820735361021118206581237104161049029382775694565746621961562751544311578871575507415468138888557733873138686290645007876800636591703730456295889736298917363359157351513682248367952784836918990963901111817548228578678429593783903571524578079995997873401580975161435933178194726864167368574402987284220817559275694460858999997441193685058832718338357722142195433627901621908713762074975339811996660019592019877486978949443044735955718793221197814599173483219558588629473736351933002859692140219124051886823596070048946232268027294318700953547798420916887178506007719754186758180628209563667358892138588528593681765133685097451367506504642988177325005267198993972464950461486753301601099065607426879802485355191578796291833637533242549486626756261355493894465574334830632370770262422041452942373263887341446104274767355478020557948923435176425639694075744660185216494006105815471127106163310760827814979189665629550035340555978375357218166390708890554504880674740505049937833985080060959353346174301398692101655911940608382828332521468316141049880942037363753407792973345883761084254615255157883139077974544256303762745751060753166719965192740547467087894200449123041794305040495008789585809194229770965044951625191114999519276583165421548964160644963863449492461022536587934980177584539461104494840551226707855474496800826023917288073849286944204955009089585697526516757140715213176373161672609387964244416338157282172180910421391675221266160292623100790447276064057219266010333614768325086494831326602013273408364000905697591348770417436533389739906242695827621400241457736942363965920457615003243284235210368229839147699356173121629595610960218854899387924427354576739906409864137076672237748277608151066214507708579926783614218528030899583403439314281736884303340884620984498484980040524237837281354320755853514534721901064233197809769581758483602890096376480852283771535420856448829564988459457109577511467814091470393467027871284667048557572995541510586789008852188433503760538946244511757848525390931061753493404230015541530044346671450444953337690569190113497122005133545509818313301179394066936745774491767234617287140970191330470054719113322739782106821515217268181268995229851066231240199602576951922383990372316340470661105727960293257416184310445935388223631851893508830252977102887504411937403216652172394507508046989450437876042111997186271680715373662832956016631823462438344160619925202689149704676554307935705797440867045880877510634696217160431782275327073779382812341512722603131662244892803200346346400304141161781262264704419391333282593057626499287696554579618177596673150840907482622802334614512767446014349525414965851703338170416386174489078391428454295299217661212760170536081048724802878118875137720635892080825452722554561439273008319177030092063361325544944150647106537239792863894354700080172989562066428731321295727308513900349290427299226896239345185843515064422675881603183933879918839779120180776977998718404354594421142812264907909851202739991412502113153018079986306120394072012692466690914969203755162832676950276105245710127735742448003588855487671893689955707783552191728319905660074854237056369103232000768721310123634188309502453286422197660086405659857215389220828230969199706555824382962942223729917939602466045907383817739435407117511183420021883250751199925193900932658026418583932520168306783059776790079550156895079509693685180534296237974795281568108621855606229117764451153105514966125186778773519424841981296735191510679285556076560522773964987577935868548464320560269435964502297118459756249048275860288827616562894956629702106495431946783801280529247949679707854568421707286002676297387048639227410874068382749432288554657790000496072279986558329077798682907121270171138281289269936598472741898206847017921982291194977810346363034365935384720990248084501020893502296734978461514808167550222910712835996525156418519849043484483898562898551203700644618836941670275776339301428166417594021251098913715050657460184786496523840329458778230932132646547715062405456120382735670736956327237927114793673172068358228249765904715686809625695035283358060689173683257211484990452339029397230541069857233210300142429923376214247538379959118727553951673481307265652248540443037584293575664726424237181827281169599746610998348147029683840543247089229206875367322584870459624003316617992109479345733268240148164325682664311815547842716213685119580640822272503022816534053953280562580215399499207117309528215902993328896329812421297065288107553246232932608048830442750534782175769051926020578786990234888278447646160815877579772764469907736195252840607001484733731868912905199387079862444121179823195638412395081364499147231942776840850098762398033978754159521232099020395887068992115838443871735770711860303244525496361499342285650745636892735929493619869442494027542990260124741329509201384162857679246278005462826341149423258744397973613849990971231014002488891623472735946549661678677314263746680292921537054792553281365093604405583326176716882681809776263095584807585602509992877005295353690770587083688388117819965800954905236079530788732440226525090301299286226945042916774646548518256592126731516511652380806914537252936624583914957268807133944766400937575045894893791900490451437091513326368589148320831009379660251038454223044732618091282594905844789399665929548882985850070198155068472148572221655499431974591163800721576089049331048214988649900698419895197754627583293175239016886324572598320654005396679584557078332565541820041919227609688274110478652638854692875459818945554932832531785182660531151646770916944217006495515015873034030236759385810872844123793755653688175074860733629874211467119798832691931399486489518526046979329210589392050320692887507622111781998331033068297956798522225793616746621673853052994555081268886390010094974632180756205095760311659079415435756754346754433248091819131059286614826320672324271444550698816418002272478205592662819640233599557594107453556470086777783783393454812808091866668132945401131351902455168644407094120175396101203684007724080377647245437332325272988123147164954840783598119316373015830212681114125651883131076942602380176226799416552890978221233251178156069524500665855188213066361824049855562260512669088084651672580184365110379780544385922220457867116527732965334677056082408996871541207567721100617835670672932912887121605063042264195538933949581007868623016837161504165371514133808080274382381325559561974045136474235744384927421684279284112281838765316904840270747942370962014513791343593258413205006535335290807145657828732006111929955913920647930266255392317215601825245322715882321900278164432748156709545390030138242725077047316063490010331164591084379564554265854968056139283749801094593257653223644497883081104579590732735477448498415962189003388123315019802272084370192824873913849735287232622283698997162561495092091938712838015233993482860562102480023261396712987724896937096936699342902608988612328327114072326618825257625115636579623789985091761027362718027153574122069414834348684640845237736871383080901116940759499769932778730435376123190997325510221950076985838530357258632432139005275542995342974526517784955388950993946859695323317475729226735483986389791456317983375773063809255313370886620989128901630037721612988491280705635461822734772047771309493231728106214602536080838137469773231459917025642130895366973605135897302328011835611628983290566244687467745901817459281850826785293495448464909210898424614734788379814911609696169166081588344374117044803030594471422560525912284471861841477061410704385470887245111366637094116110216198850602299905045119378709857548156673323781737466452093720328634680736801655829687135034921131787175500660450808103537638680643524167684930326964380724194416466575418899587584409280679817614838169878790642677660675413041716631878239584159480258522558306008561439601578381922763075338754367097976715751797490881113384000597878920665749922016203298499060305839796288443276101987359002225604373572524749419389498480753632126083655509391245311706226187034807490147628947338066787703213311617980795114824830568569207045357869386012734863804006408533924286756654463852488120961886366980425828770693986983434329493303544809376208165938806002462206304393046466412106911246693842825686417758477097068450220604239515167128675151274843936739763482904090573846312800157392423648355389583487880865493105742304253306523991144498668749757900539837412998015097428419126523944458267200340649767049818054084241465778164997938899081413167967984076844296028250188770295684672318868386704849287352288167467364399612514606338435396130617582598121270040356992663889835506933254323131197591765450140151787749794180306665691284090352984657801380102269263343597896421191503170328142826539074681882152672413815770878471751788190659488122848825800842555457880712109258446265517779285893867637941122458910108347292214017195760958962104824684908783997484089140876296882582456379030712729105559904895641163037378119064715603265929103981198200700549976064368720960663409536688303899363253710200413532958888536067862558601016868596226888943512621106148876481030353652922488915291740853222231933443163786420425679429837105938399382232536138930910864212477706933251564887019190375012223252757539692312174824972359137082590834486151333641606555769434793216192326663910180608579332252033736894697824801193087148601887875210220543886827282399699473794903277401912609997759101310763346888368995428706032547857967717215360540855883689563005136537767406139418195075058300563080547559946739281634232207372322312215606822731232179342811367077398105112634181273865282567395857084970532149104237322822740824315624206661175797315962104517175778608552447158646737200225780274322675552905802636270956534924557147023233027983960666990393066680047272989235577824912413275245740337407470862647230758979299446573947008490198297679144666265768508318416836484446167176799092455523447894610121021564516544261218824950072758558517178205476114576849534470708289192498092898962689392886062936427482648544734823716954393506407706331194598575606637139710693133442120018747452554439068926292721512327777981631616419924957032715418777879008479113331011946455808817577501823212028498545243222082012159590825495637351390624397556034220375626087259981106326236361981411973095782667394672338339178334392012689234809906562529297641644117216495220803378439309870299559121643255240364527226742925620369313985431246903081896638269476466810365702134329684769680372480806796881856211470769219265059017817683112701136218626867813003735936023316483052438911266417407041217159872505216154109882385167106089681090773666986546970613808238396824393038961780555632168972275868158352223176625393797999226634388313133889063199394853219644486944375655196774051788696895015066726120004944966368567871169365133576855516911046821293691692851684977549176160425215582076267296706963481365049431518591499751961028801146858778182334250344786313890939546173552750919475480311559145025411631354799681275373212455133804668575824682594750155578533235250436315559330119367065651493088052783638337774701520625889756564817673424764573343657960363744418693341405147037047773332999659392002992768035966448512193502714487495923002617170921942745447627815210108946994063422239822642170124341657481531510928977432715185096658970959507836061242038623306878527345990203750440060027125783480696956104303501441177971259808957554881027531412937577387102639180562628979177169880213935876761020509422177909299346023447381088797096582304736877034280982594502058823740352955353895493272787583196049409668732925912399939994235704419215121482143983089626436772599337877396888066347847920796180271460163659536590894508078787243404324428304190139286203588963800679135993273105876972295395240154758289980767111848404738809462766685749025022810399321262325251543805697823764101010539122749764329065749577178480665657526536807843928034709687945173783610209766557988267766224977136662742780478082571379216494589506057695526175349379850168513596664230159794927247701632126123386535011879580655314225102547749011531367629678546368809092657595789738804773713837014688512860874573242108801772789162239510487764590321515708771640434329703987058857957121181814749830446569555129665374552098557854245464559035059491869648473277773381618010334444769058879438863793868071460253922561465122195967253277996226107528844110289000092922123447316431486599880338699848825689968658555701006458725115141704402718527903229722136231350970812704135260430343422875235493961649683390028748361182546223506778051511840517354853871954350349643606808390403118266450093022492172789919008944514206378247838697451702111388352493395967004162299782264653074438791977237909053744031162598029497350054353507017537983738056518381819556529540991471244251522851783212864708393903184682462767039679537444799262031361555469834145642559377088752482367627643365803482969762634483825683979037023377303934506980310197241896511899610289653309203796297153950204948044504919743125843125373603082368658490973463404164610168595603946919436798203846220797065411179711508901128159146877115258096231677705995853390198126696217300585931987637915818548020265660792109250028390008705937738446587914883302443734752521757769907706998461996088967538894602314071725334239316355070364651578912139878154333128079899010690859044423059146166285245930383777590676584822473286079649744996099104779137324652715733290496840299306568559100969503388720583775172205442222463840065876686036997837310768814441707659819588735489309144821815662196118988602139828014053274607239253676856575289554494105360529157674774504226541432659112670688369154331977301006007864665825736188715623654196676171017717777924544814338045144155146793023759412302904586953399748759066578287442900058689320255926350461779798351280281083163571874599856502378942005398272301281324124399926181811105580254666194574974265798410560879674859506436306217984178180352571084765123539849993478027419051095134997408244960513672871863303269698536562022991088114397797218168545775646764531538578760788423447228200842410048632161606335335085292473676651365393654754149862623682305794995276190595245176176162980381513667509223459396579523068007285622943123239076130251791440857462653940062631090819567508388094204598638410971461184234804101626520358958393196124642844361564858653285393894598310048518541249080269368611687937242511146905542135535231404496086931457155135277714313614454604514085608024472311867745777445942349399766820011896821794342870260580199082311527194285784707953548261390434188746392556047784332106333363631275161383895167118085041229532326171830699901164068240767797895744699702949293354004951919298900830181745310487636767654825064226466008624190003740158288125295365461246040192894275073517344357595278187823291199417992592668591452744886344719318274923475082948243105461107486271966831362313995028016335036380998736036088572586746842912713024834694938688590549045676782908565491749502854019411770779774711646365057105950163587050116039882132332463125897292105659392590774786740393624928705207868378840210823301561064547311982360536800455692655002939238076802164632778875257239016668087905626211320880245434732431720421167197916208010538597050841530010657815034799775319103171101563740947019213167709851310474802107494749141857429349243388464310061095487688427289706953013756165578221490306219067094863809843798143747668331018296319897286238833994057854887780943487663893313546724940188342798073964266901951388964308777155935190837738106705044499722952850958324668517435556945344486586062518487876367523583366719307848258967222145320282867318463984954861142110549787657176912781888878398938609091291492257526332908435978659011644597084934980024339562750240683463683040773848078320504964983685797235765040969240092612438516585604453030055490134782635676322091584745544991117238903593568884263681771019757283283396962479921095938827339752321586689609349445876030909987113199211850940884277938795864667612689977067266699094610004092991283363390117432738789709489472418997904953002568569523584700409381070771232487981307809607412303285785996217190877202058939547840944116738406830080475954097624135229555197862024987472604785939294606674610172819767206920777182787847117761030192099248868326377809256798686375028800679984468323951336591899056638350691448054178077691709679805450798812739189371430514061020849854908077660898481547642774354731215710815404084214299067608905795576246644986677266071820686451079886441718652494171713368179041726452579994138375159783787075081097695829029628520186660138135560877864881143642081946068681036746456737311441375259875724767755178901012867585080636583972569607571505837679057127356782655606317814599279842968499872665021258635449515876728612976933666288047311568314303881744713071013134147709188147822155425222711797069530013379443019795492519359985477074100923311523608468918884294509140596263936618755514496857068033912548392822008395054397332028911901592241670640969503241118846662054831000839894016076302293199790141691483050246978058319871343342951492375558470428164752974992678733864808200930917123437888307833561340421935750359297007927449490886157191461471528908726328914573318248336039362337460446451570363901741925880627585305151894863334179241323003192956912079455516355691800618170268580717443795352554561464249951095216370675802960927798264825117129170749502103863140874480057921211880975240664775201683130047491192659306566071519455990471958808475434504015000677759865724237697244244544161528375753461882633337599269872708325471116629659666387070070414794227009363409196010195521960928404142361415269382568453269991157922130263597031918407060092088753825490022467451287398059246882292621958805845412642447757499764522355899993022879490130059640477462472955180287760676176440567675853857201581404793274741501078004051957750403913167946476372787040511785892493480366552534136879028412345870518992891107971750320430324911076456374922463129758584221831260892986038911000669370080094556374584350137825043892575920595320676409948227480157201904502683532173598831095235602831809852407848006460665891386597440233776269070586770485252207150119469708234375129334298926546809508912209269289107947840821452796765109465963071109877552780692975699232705250971337253445386671516349594513919732500052474709733522469943811818888035566587480987257579739336556809265310107602435462347541403656407948059600143516099116851557458661679969396461105594416407925996151103735906879342743781491966280323464490931391944458650210849983815918718591275956440649182228878557214556972064180995105385232840953001836550145665256977944956207395705090209064171651231526413219939606945065488437541667394904265793873418186057695576798832272954623286990470335891056683125085954277714697575151052465195565199816032125047118534908727200537712053891588717142653110255436585806545887839107844010367193348150664525675246712251191108923826001612935944374338732887809736238916304181513429475085491248281193101887074322183476730571022626917164483584804951575350663635283921610497051775101892561517087065687207128938969625641367448172831711341364389286299848632830629645286794082907356349060192539548827783889182350235329397559280724548416862253251231367679916248718775717689656187093384981016898008526669300440497085764630862105030015029951078478272886416345182781894270597935925417377391820365064464384077353412266508235125301507885149805959387130698942754057411317860346586327639920408320139528378223771871926014149229640964363919059404547972065267813665710552577841203839039345671969367279410491237616728468391873278005716396574629927053091189599521286959493703355777244958008660214974388193847811398654428732022608253192681283831680055735911106629792845126967916606305626645492501602607184859084436532205771170536754020469430357761822016629795256457027484563798461773841345944659140748103218873409378437798481018023928386659444172939851257658004356052515783554858337793785093500983896930021839498667576073028514997328501024639569739381885173639179239515095740871553357328838274986887371641581411441026086741195490532387355218745716460288374416142598519440704910713876193857582151969304913292263355903352183121740651153857945122834858881175423849580683119435342130621485257394144356971511045650151605433641700794023397859826195644304325249561769679170154614082220432533559226008896732657076197893688453078329014992009445418870494267648019571070605802574205160477753170501751469798508969662771149824077889672477027862995510774579232927681631263722173026006221772628261267298160096221249259123872514514754003883133404407700841548164150069462765786029519627316129157975779600086477236756890676741038971097968737327749238430268463995646696401322592961667185220263254772670346658286413009820575567655967817006632295025564548955755224909423327960462311948810842160945802638661705431889193489728946580647865019298220586341807046229843294186484458822737456661920407385342148783088358174274027577460861648799340856723448650634995952592867152823991603855386239265730899591558641391997073168690890322474228540849540463704802353850125639481275630671368792781460683300166066991797759398768574739396191657709800184922040993062767154708905325372192144204278590821123801971985245498903588484786800279458248830730861745827251840494238713885382937287643075545717187115362999156118391259061161252637673465132948405676290366916078248380906678465389848874470208236110911383612624166465167532199177765689543546456883320283729395080946270264078800288098427490853158150580015297063733872872242862333321110835231030676844483866842920475253552840557898151628808919200951251974640337840684456577453526990585521367511648022320829712957617097036331682156731566037308324860743028011299104473047094178129618607852660050981220055688596060500341245889709706071317483196299585814015784097460625675607096454734202611455775173187946569514853216350319562651658688341007843393153125228366769086755911147762212007782252463424786976566079480754030000712839507107277325207453291890769712404880934773609077788578356212901001332434673789905935577379623442260199559702973767532871026785723757821141901313772910009427662333267722241459107824740799199216459420990543186814195596794315788481588836443960577907523400211962808841001400497368178450475689964991595918070633352903282475125900244350783936873079915743259114826195882112014894509213308662105589280080422006744603379745265059774069997853036215806903379419261984417092668751932472633350646532331359075922661280281097557337290090799976984764998184484181473130486586872396088412606637089496848506051979434360757791369608612854408016000172984188365247967088874395756759775703783847170347533061238405218466685181508094142308275774550208627680255421282310243407945829023086238150139328020439168726358795695019219311123067220273178956332477281530497132133190762794869398987104269810138821658983927053828784657509568276393086423885236244898314246453469471701627672700960993315558957505948720167839482328234293810447996192707496762456452810595748442170400083446917686336284717288828831723011674682858492346869617174411337055801201645060586011998026505822761886280678953977186006556523983686897782117858012679438083876590860407094614727494333133626356731194322892076273218376245965973061055820750576109421672935136200934674045120208801707470936511422939593354956010675681764812583918975924695434608053501160909218808998881593918873997715851185580305849661775909980859279861007805600586943524580875246391821350220729821334116634530835980362442897383836471766162758817945310805319030855652303151841512503399535435434695902432444631248907827664408635649728107128504158524446069058941512000200665522769606324124497269204542437210916217348552623564066960683333732501135908423013531290390611236679678226784293835198388252846838055230860752045708230370171950427720272651598073412965527413524937698394105511165300717744390017041875298743521278182084379309881691349305476774123127061792872276307378991791815733928983899488544913973662264473787776074146561307331427548898237259891960763809244564571451388271046240173393738845673144757265612485535635393014813633748634997660269149710580188488988901574387711774143917046753441950453149394295272161987376187698547904515197587273581528751285372582034102270261346583405411447625608102017013763921406444587383705946888672249995926165559100162177086505589062152278369659647206846382705805545548996757524038634938659136352840326724778951870258499394527314788459895538146365000074647228612857938301992243033587804087968931127874140125949265576551905738916038771071462064079800770969630450029727686659653045937927550794531497905062215209797472658539693615689375600434375098252503541008317258960845822306536987733805293582121016862214233761089521272933017009317853906084126877393859956535237652329094871519966348157968058527539163031710046382647583545173861135131228775773845608074207549127810355578924538890914777870764563471443461330420523117836606088668507696193229225435668154526557235860527019246858644011115596278519788499226260073575558647704475556258770086031698709330960677582138383742240513940669588291436724381348485534094742137484246255768090692587209568112983528047124477238332491338535766850585930885669520659626657957765062966024943163866172372486596788416115601976518969694029218478947859998371169856343029149605091403320556590132385837517383511874337338684870922549768833541881147393330115620948079080006724940439080303009819446213050111345291529535441317843071205316978782978584845942155205068760142295285249911591359936010497898123108553954494911092079124084764026035200231905059815295748582754692694411624473508133354280052487292848375466714787326343840540197864558185505905435025118743939688631697405421997825140586032903876882722537200040133732404902417686807223939827221205460412897954051821043402156923113048445959399529252862310237954471593106782471960770572692461267132737171507114749835608303051804732666980186382540813629660924936770214899723316970226963569517297696329308960040076796804567780478860455298153137886761264121704532036981531112403405473176084171700147974198276430413066046926537381887272328910460394213378592792352339640491674267157685395952844471390050319769709114788543559733707011123713889213628842149087908743319211339766500105264077774764792959255108879065763388649263235896444132985962305962877450919259330027566024999538231353542208489764129064480713731706518003781180487367846245872540830910470540452071134373215026000437010728451260409330662305867288377160011959239242958147925170457350921285366585632747045096595355978918860391394774163759831124106879771396989810415206719671303772669890957440580092488685786398356641308656277360210612129470433257657851923089196694641436404976105674770286475661423420384077741864762723759097761354251425143854639003345020523951640457634505925841636770800649159310042477462721103644197755359936131145227211972138902976537312310025644892173588476656479063659919504871558842876766833205306383621129701297115562477976017284677447477111157588194014528801858476087028935568571345027208366615502772400511334516467865137333734448213547076003859977443481537306449396042269225805522543129770462808319238966812551327702319438417869543127743814603056632089029641080346634928528373269364043621370124791524078613668054855547847001312587031956976963674436351134210822706245004089432294496654998235798138138461562758171452261518955721136778958686285772929296462211447733051837488538653346291730484287927518529183535220273185980431764225382909882671943603974907253889996618709877898909049969698040106146536320779430274029245756107073300965155230357178299102711128724901624457698897136936538559666478655298444658076407052175478991695332619886438575241504549892513035737368827198884012030131959168807430395241909174583946972296569519683787254074163560353768118998984608387441912363218565147358810700574558872305057228990712925635257235432346471564911641859044104773500782611797706774177154614459591404390976999971065209610547037058401313827379003455926062572265351874374742929184599815381454127443563655467250816750179611952279954735388176379258931373939202114304592766548454055049935593176480779394349692309945684158392986324310547306672656888293092664575786146912157351036129143512093452505921906127131858223480250853511123828465517907308925167347713861798751762351542836650340074876631633532112070202322039051098468243137936322795714944407369959504623930498800449732215172081571462371885381307923688619346161288429879810186169365896233718674897113129720303861533097506289143105683883382473618414382070188533715384295334830206537352630138646381366423887887356991090860419064860713799591889841892550632580966283069525490883272157382298134405881556507715857852274632263005939454182621349865576241350830822642400426480412554498761166021183109671490539691235045713400743752431502939523116322975199509791064688513391617514921837427331347032480062105916491502802388593306114537873441845927400614130308653213114881721827449115706713208308188421491269363531690887646183430113869970031340062433730886798486053358685692271896161362807672333901108090033002739547296427569601010192668790203040681106193531650719385425999839446687575637858472351749572578360277367103398837754871230886553300247393233706501476272152887530213854665116677551452933158330524935942968276042000718589346473652457833589553547060705544323606561647323964038104063589985184883186392346377260727594652525242342841297241100071693172637081652419806911616146545795555059407545178061420775483163910706779446375149068801863186559860625100964726492049616456255826366815172494375917622922233839736469685039821861512289716107274848351423836735993709025712888458137210259530725761474051719992279732819289848259401346197605014954431069638533710806119498167783897722075437694930030838878240335144892369257640133546813333985263634129437259242591169459984128450805346169835869585061082007067500295401034211630044044123690663192972502332257126564511257528113250456294425142661268521039684386189288286806466867100692680684001068754210537499582019074520478067175276751415783982251640810584618246984475762387283401201131192882105629331917991800001074683230153024865827626073048024433908619712804259733217888747917472048508933227083728124428356696709409617591336584203854497394170480072042223283207738846897472369582378166977323572503320507376132689902159609201860696169010543109117172669690913426194753081060048733634370722975067976501321956192427203400270437436254825343307884482093119205123686351968740427008209611323802942342115552824050557315515717978493656036862178259967850992113577969869027992785013165597747789043842505058422472728624844006168769723089624352966917924466246663487874002366475698712260888342923771373474334399228234358586265988581784913395643508210263282130165875155370646272799456295849144550401763352520383468020067893314119370769514584073187142660625037184586037200022915155784686311900056065438746264005500747012049081476077390230500418606600459355830467205986084067894617512234882817121375339831889546594465548319409606923086116013930295847049690283849768738345270072406833399922112137197399406840353742482457724356505329601513217766772833902824158472280243497436008072180663360355093040264550643152675958087712717233702579629509098184282798238240576772670487579357730764094958233565519748844496552599590109106046306904977012088685062669353232522556952939800978116375191347489513698315693479731639361320007291546115655365189175174860392931680735592951204638319614048285981708267975324765745690702455096245945242310846505787813972217864878777732966907571124692743689207838719862499088458583597164131275930472081449282972940784131006255241037485606081736726631694638279709332514433166964532142563179949156358374849672396922478157857029703460956525240547917469087482362154951811710740394569537575193582281167329492820368991386226377348835585388524639731132890178868978858371304629452652474646743147233056007592917775589357539716331647726859247197856840285779417536359309545518825873006085784963483002022380337851515054059234169802634086559028654546057508482470560357074189404541369740270000552265970432021240552974081308217091162962750556356570264422736432999927743583640960753337364897557037258625935286993101391625969814136476424076960244265844590985823122250741815364979262678358880965902389778588164109199844456914640177863778352197075110536350722438764036839745918380101198073980060968241194547552496965632033943175645468732878601449728279351494134318704389800912929903271634213769211898475237139448749362532108208505597413985151550073822969227992016305596977958251788337262700816984299532600333281289015849532069066639675519908194503859687817460691845352354066046662183543426301178645130370055116439662303587932086532195269415647168009738115216353016873746792414422059476964730003089769840491024746977618067658821066172475876885059840550684246502562088799247724910695824314154525326815018341879385155461408133383877208196843886660994696156160241709467283972678056707998867641169808362824151297267618077337988853616861417656005078474225684423803362452949128641709902528528330444696849767069829027672070276081915770860036176501896562142604038110129758863773065337939454484601892215832988062241226939190072957968162384729388975076425618357912326545152363056822242255861609889166031490689358186738808346425142165124416185217357527387156119299475891550990723711009803184586264293970807189415800989658338272065608077729696469143638507311477019813245979391085036251106519238718960415173501231835575678291270980712212216599243501578900827454145031701698951937650590825919397322798136697164087537335519524710479814845094779432983634186678903051088201908991348467781420286564386309205526070331770862762098546506083190920305088306178404608753976016246735612975195725406843291059854485395639251739039198289164314754543567387970712184272745375168372196308472784082379296039642930691641834920236895759819467427845479663553301032313151701709022352622138145235191082319998067246760662978446099274881675573906290884229193777503260746141421216683450022526673299437171124684054501307305783069359719463208946205768619827740627943918594998324128255814052954153528432531546018771284777643339111275759470436869405697836841088903925075563301087471023987268701561624451981478717061605884508119766188880854264659657278636810435092935559829220984603380928682579895841366950159081765265541555903397751959572539467355709438933213135794053447623478127269445005822110556173852784527827278370540883553647293256035348014798188654475120839917469825946507646787924793609902440143011940178283670337409407145894064472172948270480703133513914674543939512974097140489286585233686674615104053529402510060250596482879572246562019658499558747595755617162874751205954726432796659004971617534676083549873790085963560835941059740715326214271543235214245774693339671450639583375876083853882926351540056601360640782429020379764405634868631206726228954211699041365592379925034650877741376621273680836077226167998447770557636314397226175549797113152265803954539505905500136602460918231947546913211097064522880447799774004699239956999022982039200435214951365661711831528759386489427887203613147094415445626811869650278526821423069460222692934755114041536128699543418739344733937498094766201427486613876195380633622908402283369795766535227816724548555095778696775488557461678561094247312174901060666096004636088195402106665761231136176163559467144922206445525838804541054325652093104951128868646577188555284170514263871637721277751007787941816207494885396676985935621360976725854504793439148599423665937264246512511811605717281970203459579202391862774139893543460000002224803997219541425260505792152825247047429082953280325145318800702878104471964165712838424933390307601685097562528316184319663331427872832934297892602877189923622570330669476459911459835226684620147004439205689518850376018105119697798611334924385224994084955484119425182519479072243572124804254429024308068782476489747117860800571873579115151884519558801255162713643678501533931997291514525600135071567196752231909727916208116647155601518575327224783779354219103425677344242085284682049210187220535587844872726700965364208023794873407220925471672913992448405562166342613272205901114963880732402783125075479598714275702302283531201922064491633488830685981675165282721002504795476486868948454574215050386745024492480361630204894973303843280566414063487298054926663017736296688276128393449817183092439113447992116121285515155171124430065375422102580565539373175046658608035638958687550121598275279842190181028159776776984466863779099983484616831978906979819109774740825473708186143750623094623306327481047487067709164918960018941570757655361345368852605294099579313435685442289573581493350855141054811078070910936884479323558743061617891970658756819932039777361134746269573894841808251159655898375791246243939560369300422967658924361583516757090414935288248392049348437575203911914632292292475432470695902434581457218475272396582934917243085016531557280060177619244709616552889556691186598524184092458038946258055135939596548512629326098958375747177949197523969998882454121876046708945734576108327567831209777504766998182522494899702688598837885425209168839148702185026977770414035930664885444790657018146827338597793109421078905648895330675670547124219228862742052915850614905026136615956368108330896752772543864130094081008380030549598223697134780418237096937267654815702321592136149587532112372447073625762206593783789933739714223277770657747821157941624368722979092592082545759714398145937214792186887950806430615109733340079970668114038057473227097223680356199294483512786533763472085898396434865957601125058765752230359528487085598539847649710109000876414363400523876511378098651611811690132765064402157285721111539794875831071407263863359550129523237115051677672888837996136091824397309343915990599540421885632209338086773094658782625985841238905157455421133760025819587287651837339462891465310087790689897591009242864510987590428602759914278390273396200148417316244913487020553876839781867916787049833894707398551741485925561073840282661805252051488564905203188926732433135792563039469678595966030683298869362145497188798347875819093475061303133677833162109719307355856504941586631833564092011807725607243484613012202076585988418045982912431417118560737260476819044306158093028479148778769597754012267850924289074409992390874529060770972256926613533659438520704682813877397970690123498479703732904972938716324493412155248038047937631558111835988906857147833763328524356003842805340291225377058885426629053046910407396488890135151279681683892733265811656700332378334804172730546174470369055504373738987633606540742353976854144464445023961285815461544584459957328823722163439304667595188533856597507320189187307401317554475663005624075627086789974593502336160431469915932080652716935157300376228619287894057407503809100193633585551992475285489338204758111977247313459856609305392429499410880140752471053533558063436769935983259006661562045705802325418161019372972523929940120916496239830340439676886107445405533630903657177364329924419444499808452463907700723569021671851595968577392721339888981798404427634532538795473606591619849777499510609969707752762209230857023656777735153366643584654706177435595930964823877949884273685202051869637448491734023840653833612398345574914873579596863839766282214092233763079472240934479325851870346837156476284787087087248589111996394742120170069069669909515752585656264571906195558824539526178462389753581199240047677777662478177118029144455658780866327864437063580247569473653266391427027911156098049314684271747186594540588457606833053874913704609332267505606019793051943450983769971489573538011876648191411261243066625906307467861538216881963350820381124666655478073819921658089830598882520956382142546042507573719456279911488224499051636869025358697700678711491847700436110650917773906951886010114844023532099609952340309473732666509742408283743694748899421957968715757790780224106772253206576129873514557728989412702636531617404679498588230836945907944938773474938075659478495837589178170684794745516588904800666340593587359265271837738945556900141512330470199715618583557354654672633529482145614661213728541695786998379481606328777334116827988943654179293558955496808636574380689605439723986527053792216107783162604158093483306505615802549439327966753982026755147075048724512688388494834677957691893264793751863406656968561965358434966584141579611906701742835767595787758409863854693112037797234617754722175077154805128945515986633581971241406734276441618619596054393186060280361484251400515857928313561848981153967145799892939351311088631218641976944486132998291595503401808046923523552724914179398829766347305050054379783623242433570950974126305006670983682583658324532400340603517685751724380026078031659118884707869454533788848694292646442919384482822630661397887017908850139528710821476777458247598254931377120708151825599773281445502089207679550874651402641205675789341596078685615783100266715374275606721969336391258547197414494664939744228299284244771820217862455882544525691356887741561918534996183299534021743802069787203247850758428404554703927380626679689026575314130358205880504991438412798123818906164638667301947051141023559025211275554032216234570138460227126163946421683237354024397143558988274337961806406996798772035787984169261952123798686995799559598586731450102298382832388580044486573192450136614627373843056636447618761652606206719187907754974578147340838024210130241497890844273519135214188270015725314292982061441610349116103348979100763265839098880454522285674176027656213739158399677446070808306152987759767286980581173005423325905249623352915692706761284056627736474769153952669548845129221950897592889074556484268122198170596197819215222797251170960515556221548608291090118476010107815049119760736848156768908508870995679333719615712999341332660661591244525977848607681377468109569629537968458492009443914669390479878621781043239707484173525895804160866699329608848862231450600198910274801713111180015319219408638204005498948572361757777445307759757547732169586927627549642771135040480060426089446995551815080714481715966652761392588090157226629741737832623947375589170436764395660395576950255833613556085084696243705945295849940950383457798410768270833144763110321439785129483164808696343495391691808529736428229688570873694382053042285214796693298843546478086898066858719597172370502289975086297539976529878206700320166865024541238953212743351614747580202809321193537962624533063810138247275911697139404822961070277719665232899113355530196070679282179493503288365241475697363128954024524442789259334055438161877588576283285280821128722465325004106060323007713521661048731204563437858641981639699983578274144840898557891693783892452971815690325424514163233015120791900196087691767084363049406893404096390078835291113999654976094995823816606102363056313474803359387633851167302017961041334932060548271224800857953993028642495405658081924327689962866657971816572707272077452518463550735303859531385764009711258956813749759580771018647780012676044804199628295968670509115455600677408707563717535199649528405831945039333348045333407640440748995034524885354674424437798790951209714345570107217256724155695561119102977223722708794576177458880231887268407261761285731911809632095246418079783557460069542979813847958215866935406162432738607351530881790628522734457388506405998694661553742792990332400737946611030804942559848502546830479991542648094241180095387145945146320137784022466939604904667567169723192621241381877286027370564347423447173484483040114371620958255351261005483086073805600896602823186467244411410440937482546502264126039776675172635872322892400520220125585858511526164893969570872565039951922960878323425073233418198726673003592904149385579216128298723554239973855734966672494671845024341523794723144631367304568600572265140031093366093190689545467558266655426816508481195065303267213933130520611710651376263906824375826840476669860431218966818858916331560074060582496258960077553654871711392622975179019792074056357042428589223035041172831550344769637619402704314548657979310242929095085883500139419783441109962693277956800025110119981612079456978343166457287059543382107559509820896079508377935515220385967786814699418284794340017474610510887696155915595707882197249699174202255907424800640128154195806059151154419238086300874705842748524839600643832991862428109403233684821562424743640897434546852425742008051431849858642090648730652315198349335980592919493763595831923427970076155194477272624939234821933079919160234858944813584602885046225126116925882622208093970120046496892981210165843592584377116909328650793919408974265848616456634055285630232717201605059798602981189424148539499813199635149514251880163772966675001331271081895128578626801832583194026382103762340816330214429945599470554238119729984432566873571462920731565168071902390256937454228664271894994911617972377582236018916790252619485960211196295151819721417929619291318245230913445379059758870553659328301013504122869469857099038251163118982278395097358016851345356650807082826946513228909909696019519051559283558591855450005482127097333691821612978568778092665771654076616018451239636218139495156339612997310846867227823045521846244303376605507532221832751079077127285412230297963833737422057324299720995620975308209391069532204683951371316257179869334923201721747801928298436550640300755201149913813108793585518931624583777133344950435042231565212110198485889854450230089783523481187648837978808337067123663223172144618961653768509241617413137165129572644017961045682894698945151041134473189419777457829098146154258183819338384196128113279847678140344047557869802088562982720058454284143690307002798374912196279469235516939745825368730456680050905239468817713902805271539856997602732996245690364315119181730609949065988089809606520417843251695122847792245853281707307745034774175320814717255081893077274279435754314696975358142680802644911544592993156062400379222596282334401419083794062309339503029947677744585240417452162504012658394384428874453862889895011402520038464759986967317430367106477797626920016619705462416457833360987480967414348151061476562233805580313084815237736000190885570775374439854961739453046076681936367587782718739710622911148607422334706773567187386336647299194910490976944860576936159660355142029231699747032576444818838349573101050447596634236261885829705709128739758670040463961124064046056614356965164318909688148871692360635166246862668598152104030494594565814873182067925925452425693816710970669085902229014314090094968847145198661913674161029131029596061193961930624363564116345575362094162326507341195063291253568245287245164415856575186444957647764678112809653381253429869726477237965343234914185879938879603812972587503254205355507732680392304868520790998265948360436044664476011521344222851227685579072049650655991489844203562327720753298522259735931756875144173428053788322305013364026895683357727928296922105611807738390129916226319014222141695822656852052168930608433654078114130124797324459313489374957348808549807860238285635874704187903031105938687839770762143117863879111876611858506009619065430711284812891414064737488607910850549331458469002190341838161369144486070781365905569658494191306933882621193168973619585278136694384736320979964414508186767151370068410133925581807273965220394671502522119793730534148046955725227180626210857875044282163024606293764931823183875245639055044044231955694231414684936620030162631682113644693465035004905201849479899592362520675152251675223336300056727764617863181150963471278848054990462019595980336637492858708480357918384453550831495251835010224506231357974349912446358323221804506845891425565996298262806049615534461714781761990395511107439749052116186709651491107266413247130263509016323813800763274938151092466870742011043956950466913160942946197335745311685262666836299160371162571730728446665626800996269304726069069318827240367779695049085625379705359602471736315604181687912977679983136637718171496077223787682945418875813305315254353370973318924360579068330465771659821563093593484881971671666052549099841688489181443951623347350311729331389518545402706494681762663477835861857895539670333227832951463335964055672950314324411857614879541022118981372827024194941259695794897208488043859899772681466621078038102260265751886356798918274548133795897777175328682145994169587520594144217739561909161221171802733040707785487178073798688838411944611250871454275289111820785324160573373586323581968041032714800919374620474237914539227143164833393419401501289561174106870652691313114572130266734042720227415758148776104344838602333078102061410186061344933846765549649938992240169115462039995942254486030804165174567294450024827939949382752981445055777847707265607684363345320643363624034249559099840876954627629934847438860487964128205015457938181708233134023089676983207738289000236347489214083753415673868652501443388691609256014377042464814362171627115026506412986596274118579700953626805622726009705051144185500908680849175868586960393312711288887063710767890455923471145687281354776134872251481263443771774595756859033267949293820142280190896443263900073514603990167651439559763006949735831331867532183412465617142252399600286922427081868815070165702356317149407109783392744763942706703240781840570660445462369732906394463924667735160851863830106393744097477576651104952172652937345562262136654862527484610848167096097871495936617152183401837785295123349345686725606582299034623724226224749240656475126293110928327473002419014281258725108663596235233930413709800171105740371788456938722839756674812518538648121684539237395711419089591925672328482989714427449873454278963564333789681355726803973759246619378083530658723008295497083360088069122045673795433542530857533570138220944123141120112527179911823467357025231604198080197906268430699949850421916800838807444235091119126821717448545575151179809994086646819363376298904244372892957421974074780861801141813214092024974341883458666385845785480423331370367258645388694973295391939575915135110853830714756273531631017707980500538544088421943131689303212631128417495948233187308923107642873965122255256810245134612016709907950156841331856057336858840947486421528139242012143705552370614856673659599396924322879139782109886383767789044560072544253898901303560824184962604731104498531216750812665450767254291911311901526351375556888029913759403672291873219094861581171303728023541696269662422127480100440885548660809169117648639728940204173260909037712366635564290497424986433013204218726474638172522555482557837979387875026162290742280889307737324727790816534128675597336175641170419913979143926491644512147370250440841637884742674146980300104897974511848808308389625004347709814263450174635235516323682806996236273815388168477443663046348411912217985077860544039613796494864242329623743603161696672818094333616966502703631848105284019628756758417177449700409710235464466554896932144577533725532729662645611212053235372482669911592539427346633699994715940163422191453825923093256166312928473323657866568234417651908345094990665856879465305512910215881568881226469981306164534366645352427281392390589562997176510991621045135589196915279993831792842155705075429317581466979465396362110262848782906258183279603025997527613082896349552059207306519430384282602913905899823681128001386982181642874187285120135999724810568636441716328734984294571330191884819207280490782379371836553160209742897961731883317039911882712230584479428561008237588378894101632303738213386465572846234032870167341268151210629887849594922982691191104019112322237482627932473656984605683063322141583637222829335721109841117758846006660818492719777490848240605531211489773827487816069648414692766153075867498448287858488117783287026196117159927398452666737136005191393260455114227274928640802127314387858100701953508651325343187969067061379349363913652580991745907907497039257242416053232165274902004672233442746172954619198525626379056570251234084398355699752136588738440507519237345465935269096681096219840556151087031910690572467766804602312516274736702926037343921890748063034704109181503169229145683180141116542385619582887769485652333208251308472203541385665923982552777462928412406136787558750677579200604339613522623535922276614366292273584751651497859619900251239174438532610528375356879616590712053283630353620782655322331342872133737221188662116923965102799760694861695790702742751160544177176721248491100350261728494961557423529551467200349582070809513197692409937575989391246598987512976504550716371151697583574948540774012635302070808451320725595788363966855054140582490329353868921992133687902035848002112350349210685179117930394580965180803695560700600241562034365717026970668680791158921501579077938820483585066648088724314675373214392672131580135369614903663129227894163950227487303254693708382889353424916984904496821670763839817740305698111313826117420614726923405919466181293243087271767605965762676001262349243507496460932333356841596979924539143223199053811839779797873356296481665172601419741358675730475522599554721276427003926374404261762096101530820981173456420420145076338918574891649768418582819927938573697264229547382321738799317109841676143497971138770748548027639726040859039647151540966553561978464035794549103664232308076993826895132571669065513419284022356142593334932239074507545191015414197114515985104693266143081211012619027488464703219775644130084327683114341865350541192010533532520009558668350476556878075755031855356886347720577434045479592239002334997437227491318911568485936395272018225859574886035703858629162412859507161563325632974240570028283100973420410173362222354540966337644925096371468054833039302793296892092528467360353544664865675122988240865061368586100519730019828588267733836094821839685663610966823872686751712948455696330623317535619766736728279991712730470229824600862929728108163168920273056178120658559617704538042233277239784471277275237571284531331375902570255476425904324689751611375898581135923338102154573087172071475784037906075955954150541701910536906488556521802754221475364066383346378261138882309481762349425620831572306202226238753776571505734388906680883074352539851316040784524264559348016544319336705488692847544570333411187653783828088027756109508932008028604603648822750642512464247098399247271559898204441932932826237342881711038439049959529452364603322349170699398019265002958525128687347864631835280610337864068200291412925757438539356254147179020523606340670438133293029881352282884574230590734884513051666424062628786411229506064253781587349073315740444151968187532618093119971561191189620568435634059303571326556022359723585350630415990576250891262773672432779700786559401975380538456760585233076398667234783017746756259709969108529205780392294368490188209045721489096624138938020730682837388293796577915417492646298537815253259749121396301042700454123429471679495195661479543786296567274251097947639989591406901072689008435685733033076254488760358119828710820344626418289645694627897625936395966520064982786702367744358527729935724310574367346005547578820072165535190160204981511090228402773005564449795824805260799086327636976922651017146715967297042236136460403494543088984732454453348891786791128592360082490923392231739780955459470484911402851850279907144315135800399046004896055425719340846193999459110568344285107098976337883288165272941406883547296404951706099854499651874204886048745398212496910358344335249312530694195513224810248526112559097848774479882070472335326306096398667124067803887467586259338381618040179450109019665011804941667329695211245508032294310997377788201309682839211560936721033142316692851028017104598461412067694993985788630547933387400119731994736380768797240279847690392201413280017775756269917265087200426853543000762667319554641573021066902591191929782570015708269555451398242297693394269685874111984243236170264394773807635940752173294642386924303983481245698422192630649613870628151694814469067119055840423298406701405727637528934563445405111807913368333684468305473327100005083436891731995171654581466440416354377365258298224434516386769714325999638548224493637269042206988216450986071191840612573128085883137072261901294214286190385552755990066297994459731259671395261393637953998992250136203044569374518780669739667370369466539005101282347598155702778833548458891519831827365683179774940659481799352254944705197501155577830700000354179639465665711751827195714770959128310093825639199651296400411035500162369350298689638312801897774689794726255883514144839820910822467388872837194494391324595451934488092319517380724798045235542671589388682301076939972308394953577710270893722477686576459020786471264480343539412881005427938046673952251252229760391987692041256403024272695233143652382535810309702544378259328911883967830909272466347195743722627168460300786136820158428000935408542884672721817786572228165557342305623700529033410476595608470362242115183129981279206107377195951948232935984765893543062668209050199151343330433796007301461494288546755979143465945657770885467311625122501767715811751454887030717599081861189614524357229026019036837792261295629417815146836147010704247221604787921639437150203773138672441338240653410029808751605361679120107695433344573887665200748713860880466588006763368296670281990461858092300583781861009735379018480842639403859913585403388704400846145161512418547763687610373792726829574877917351620624031465143215957604437199910116685890332199521730674812897061269294489078950702828119231894962947318437961180785536372482776377547057880848721409147204454021668680952298331684187472946339752711600377664869910653084928515588523323126207069084198582388797696890869787645834855081531052577610722920221009832298930813094040869059263865129862528566545838136994617523024640052084298360105569029227087516928012387417682611000548626022463934749854941641649536540991179082669931250935808548467906214615489992479128888167266725442372617885863954353110699883209113506768521674110592023226698243319403331637301432325571526567477961204599532065339971234623964409095972920612841219477357575825606139336502578263759882401530756004915098461232591476711260408072910746712329552869166451908463672198478528240828637915896584737860935099319288818250786929126737063255124956474660460334230133369004117066724321535255166111040087923413450043942240712952589397834555967091406398208173166019714139662566462193567698599526178953427714068964548026026994330540134687936663247609194468491879884859512034876406741473107084823569600224303092864862512787059835483627205253043790209520240922995725891223574990466294699954193202483812547137101446097153178337222637047594696213622954563686863185045563525760247458812702931891610237002165664974299109628354789202049131184489785589485737769377178119972426187486360356158346510650586318065209997310869611630723804625689204855971738916890736354719487587340255390503753072978649359402423139317179379479875898426610968187434928650294816806403346582504125807862658630903427135530347521462895004786366492709314338108768917365544709515942533687871794620200415004504577294941665398164998110704831772201024608872470678642970779752960930801908051711641546510132566631363638139071853851071840603291374290018104542437519906284917068462268652262855229625605553341700126737753400991926602238404315865540809487833090032722462104205422889621742669301991434333928980213228909043818677967516034627164345848808860680854759690005132808796930793242355462654038865077316480127575689683639085425146209691710776171770937765136097856251589921098110895815397063713597909364689251570014948289858726892189102088294916418557728789077771064580185340299839733512194659863407046329868076984236188147404653954690759426816011275833204683488741264931381532267632897319274884228696182633408335748703458015848160855581664094517434466176294883062917921849199682435533239506445012811046103671542916005864997187983759336539805231502090011048269725807438679047233734754909264008197677490631761391536016211712689117895858208653428868362438202389111319532566449087815562149443218241942618007045523758440151057652099490302781064468000247938723441532994102133785017977050196316480004962883045970804625470603330783580492172523097609406262350079645240989331690943335754267535120964640877625923257003905263302794714474035389535931698226675999321196551544809335466512019754711171262951137481825572332519330345853215975258889850506375385138649538766469165129221214865721161731252439617481215531245201932512144828801196915606506374688206513839578565661199058689534804832525185688146611669813856730503016550539644752072181851979514113163787108574597787543852702483806651861137431821330212134358166653866174949814124312798156398333552388098309331644128382811493447880670388976519897329100316097475509592948719342445589883510874329097471841250204367182042440914633235847521488979087655567965795762919196977143697302522165668077495414812082835437732671754527267370950574449072394044043946456941375381763579248551907970103032531729747263449919579067325492491462424524420946590886335303852842504592703766745459386039476309069786044182267815932238760609436073486611324282213430376861155364341028148384320679742945575777362133670523371091280700189317778479271748844042225813517430855202633455460500292486228232252732854544206166633782231854025664744261224078782321276763656009753147886663397295378504911035756481815267833427040855215178213429355558561154882255423923256045505924927415160475019426320745468645945829093087151354022195640516352978828954538764725880465174608035845919568341359190034564532628261040521575658694740043426230823556031840974504581819989742765739185727111412658054178982351186371829906146674989156670761884719530560660286373691725476484043144713903014949901445879170439787644215741269602309753296376467791943847572584462708761969395196037192010436143220903549926695865600025678615179029241234525037152645045505187335345827212381858316430174892739493568075309455403202128750626674127793921813162390652993599702905389868905637528253030811783061235531944068510602717220810810930750429572456109577760463042468911873523613147990501062956714844576391201662504021250021485808757788382820768037239530352917289477335819512636899495949586747040491271723414623847924386013179715678613277144771918052932834718410183221251767775810472311180537849724387905952649131818780546017204270623087749807717022906687814502857092418496967665696922922201835967611205891194835436865840915277779887111658999045879581701142543265198901026451212003306534590016035582451243712601281361547645819746444821240328377760878617655319611714582050886784906905312880720775185532678605642029059972436899692708841220436830758477658046373639058634076991816914653112982146861133548895006700193422575820092181924258164762717929956411155874087756308990430890425001086039710195264575557025896971602433033611489174482157527379290482586553890141099379911564160401468255568840627816126426059384207191957113819061329456952244277181848352218394902354121089659905083539630702614470232552098358940973007891945962837731418065416305521160448011978758809268868795454261648184614030307171300734226386906270672900516781621491228263059562624348420717043226712118489968219005877074992317385319387831047502086870404801457212171657088515850409475818016419323825358969749034373793581526477696270035959594609422554804907516848978256742734138881068293592856916568220922954555478206133118421977368096861627242378730278993584295732394824075889478216778445095249883655759491910108617935308316112885370546685330516864541324048934885533930895391406671579064468569745641281719185126960902069167190403425187557945359799659686019431595413379369941482935783466388310183921283250251641589993014134516343406517579020016457447720382811575491507858132696489848011735850936273950348812696633764933669253730106453851032217278064059058066990306055825275676789794372876946363444783121721214583061352933813164945501933082160374327771749737748397823031292277014714258940759546323100957893077572810822033591517369546516363459111059539942249676356730616592573599318954510978035794534655945991408995630276917612616370352618423696344221841649774316642430422600656389829176732985572337011587122885287317627555815783428779065555293276438674087008196889111199793308263031690975520798891702509902004601204810093352750292447810400919980938986666383956100215979426877182575822670107021790410572452877970245459683101543282398599068994442259891356716241397649490540368527054759289170828000088241586541742447287447095375930236454106612007687178389601774159217740833084507086539609100177758960435146999375001649334540100275663574970566848431087422649896125183853428368986069008658264872456496606043221463530397182361930368065505549034515738872891354382965671082944774715047836653179442751544244159430517628131791038334072483593418782746413273594694167978285011465776919728825601369028958184696975797147300964655706696576464695445270923433519275292183640953134688275960092728941964077174221665010918136561532317728665939082827899205722155625671633498103516695982481176393935536212312051833765617786128470167379404160657872628007919197233556913604107664485917584250465659436127879366065587298343791215700194089672783504800216121402488221563219929710422422150550295061428909523259946722148668400336235157262857981063807535806265826883941457107212059858375439581315373717898041622343642308224979010787947274803939019489848519865500695472610042389752262360166268721422848227215384521548762557909485657745038218264833054027978942586961903654992441198414987103412117727463468321674479420827001573797613991917521946551829577976307262567326567384961672784399193556919710804363946057236460211103976314852644023056350353365907239777850682308069751154611559850644668607640247204030777181621972752934252659464674605762807151761142187800125877572183430968423147850275885628744911410563210888775858242909106475947178642196110749078165847532162627233424255273955342835103476105371046713999155418815015634911155279792363193002749954370128307480391707348941184576747818001377842081915207105527302919289207382004919266692184269484315393737176268425140776775802664769275093201977453960622862292685423494937307246387163085014255479168399663590436867582604646325489729733864717566355908283195551838040248281557040457424177650210826054072050856441009496339967343212491485162441037957312275696779224728444560881569333796628391721433898383190594324070232311246525603493370256640153445796342687244456276981762257329855478839688356786502002111693270344934586783483029647435420363913986132521789489714783299326942251358919933302733426521044241348397396823166575137673831902698507983549204078406775651161208306452671854879496955321600548741249407767708401409425154132397668560995007021435371041791595627892477363414973763739362877191141858222002766603292605378148450204618742837814951248575496382588368335521927350620429616987284049780250143181521245472113571784512022255217977383195444214749050461383397213798003996063077622821553517565879725628189188637354264101092907358416664973476186930871733555074802359816996412372086620405931170678287608936360003937148223070169793333435460469653008112780536079936191922103388303819484437684044194550363576922824016191049572033394034941111941248633121156463134233856554985704443590456786508601167368920144062784275187313610156813658086767462334640197929908598693114322348150655965216375366245519403111242378728275350477583190588647269957903329063485575287543983822796860130255823759084567498690464907456085523384306087528097352545877201588583710095859817747537038617540765366710354336239601595866250608016548047284541776791564968752888255029824153047168962356586968489792705620706860689587056489690217201178147636714739668858347480009711670405401026221515212614066067631141682438967764118704572236861763234216074447988682324216525601951847923467297669222237980977060405505848221388608096434778071957101563176762966287866115859257597099642575931442134006684094447746465098573993600042444568292220110765811160319272515256736439454715351356599005251719323694918297582620122737538309832703266317826153400123517234867154309001159392722148140022680236275511637862265922759767633960746520047092243484777592844775845681307702266200248669864363061850460010180024538383894705892369995109713533098284686135707527353267967498633941327984420932249621709101594953749524821512740658951829792445292398333833798893603858488642585955206981837259440834443627142498182343621101563135427403905471639310262326821014350767097213934520433015354291240273894144708889772291592243502498037874750318815083900807817283672007271694432392649091580209679612516658134363479933535731128949022283483255466633883888690851527810738353311343535161657851741060552595124109635029461602175693631310291617977657996787688264514719744353801492831087303877677830496343003158538423057673475883690010043493275310610758277804266533864222574191199643787935371108752608612919069423300068095958026818887203308462872843244688743365635812609277384598339800012689056338997113970237332045051595953664864156926082314256310187730089191263860425003961663561800362499640737989690142924735765870780648972975689920463314235287706998921337661161538936440999429734433075088145220608842786192766312987537273863601417540504146545618076820156914894895996115333382379976564260901652271426625906463603228153573321626596434540429313467911101109607275305157046983916257860682541127749114245933354613491883951577673660516928505798069122343928958340737238099232665869589451237864763594144524579399831814193553762134963102591538375129697972502457381948008028701589936460591679582775338954601743457373994910067660381087131153423331801812552359939566953329720650262005057130323325184541764938129207034210652664597747773653602263399089266427111343624870271807519443738926846126660493621041223387311485143756562987017795287195412667445690926436348818915812807456469129431269290696410654123663257971854716393333320977927826678041462417841957089991828745182420234462425253577937650960559025296543765885328474275813658134331206747704409554763631179758548912989632469563160476434883151061512817605626071549472683283632541591405157258455060468038021775983907799517856543813252951179452663706315950831972577195040434420314661780169996497639882398820669647479811168134323403160070467932719397690407350253715707978157570709833105387550487552769440108328451099775371243429842264043666387552026187142765646707564814002211605569643198551409289612856948461753898531286863821255201580180269649873838915371954589121119873979036209325859148304823673647620679941021578037460331969869399949636740597037877403795902541887301503692182071969902746851648525839126403513570463623895216552939588732592492451333015517919953802733947503121914561649523312531822104827523765520070824743066569939684111400228796251735600581489960798732734704761163135699944835702600781453818143552613238399429554275252482598568579064038342704688791327739904703038245295569646748099346759367029899157316845872590673562659180025224844735915649214247456972292133270036321258209501359643242111738355038458953091479467617575688016760847886862586294192785682318970628926544229463303416183007074197570253834820791488410130678769870794914446665528608100950910235094857367322530959395011622487239859134942209486120245203139560426439076151763809180474782017488266505059598932488598838153885873840894598637518631885291090576734845664561803345648079259436383497609258859331148578694958731082390988565487848080984983802415238591026673546490547038981542132088196765199045708738277635651353751996438753091597126817362918338517369505100268043584424393679498657855097544250845442406067128205853335804786293479899520963554966108659394776912913813469466110711706198882390803546235833257545244485208579136897401512031959879845757768231161228919706321013486083443681339293748585476276854361190671227308664654907637112203351386824511297337313766731612784518723349574445013119072348741804536298838082712628424633207101789621298253752720302377577097061706560517653438607419513376051403093246853823004113799221290611280896110105355822072436355371778141976686792510256520232131951159755618289116546959878250677572496881759940568414829380899075329626153161573939964949487150124242262962530506570972333415480162162430016451732228668051294723920388929898059183029847470387886677281267946275060897150518087473813278337209949779519624671286682523670679113954572689906578782433662546357329555025299339236828994277217996368660608068958018616785893646499672915633527045999810781819960287055624584124314151474274037088402044710017563844535003891723594412409235921104760106594115987302087136014114715319586398917728038550201217184039634743761739719302709004236826973433434550388302523094804248956565511026174508072568677035649374801697145167757202361255611223555955544841112061267447863652632055034079343558187818849616718845317535709431012283986518739585810914785485146962287583025958173515046219271750092231469801086701789148458291200852802829136656515622005860601029459012014914479587053617540052945016115390002693421879102531500687380414149358705818490400376966911100857087598609969067451293018050960199899314787122455901048813852172655486595715812884256270003655143151110485821284360947904888353316649715792707757239818677116027070140281577172176292585869677217053957670473425434922171716642908897686686572740941196766802384766496302855261371980248825510081760117814436796761764738191818302239190511737820365150714679227827759839832380781767650983296227861429632258313627210830129554216680588790622905052962028162454943700752423515121149826051667644253628957203807949976066497600121607685609747051946307992957882850517954554766220362424995447198203429932830040005390229291381360547507457259664904196574088798123545398642829719549646069697853461705442478461329247911786793453138625162862648452320681524491257022682752197816631568570614683791273726033445463639201196880092888786983810580969308366183933308153286933771607557764159845496102667561741944344652959088157596702897656491772054229191018856885734238542551091311197912340366212847965235182717491122666164798071276451418992921417300113674689381661164470303848147424776326907966775354313487976900714801903902348979112815256197424678378200540786411670808803431540588559875432011812349364941166528614707436582795456679241266015248376648825864639636649318352608559462500025051800001070363247880376440413845189621675459893697393928628297680584796727011323456225381397201302357621235816693479347983552451586589040795234563044262312485264464093189007510747064842450243559358413768124837221132973010418052782401861723667332864741213002202351301174072859147893217844472908809648240155214438814584579317587408922865545300037689556049039162245004989818859451358440621386943684187254756369341761158134659247511097977173236077680548271343473809803865541026790580818544639914264135697847258379685052396363747594578412477315119539517367317219538013471362686048116494094943154054024210702937252892444575407695144358634329289696262490947805815907673700627598643481059016115926043247111736211832465515584293811245896212282299357345627907894807532878325466014177683975821146816898162769613236460451697326253838798126220042337878193944522587295818042585837779980077055181803834250547705356456404020592435139306186587445387902948569652096277801604562903501881615072450261964228343016188055312110958816039518923621689674276733055032815766758404845956033527573685813524284515511294272815132540628623004486482530753703623091538784234054959826543824454494217395470540024736731747219573944932008137245109694719066644522306837579243211905457569258266807858596757848538520664863597102913456349869311246028948858435942287845967218712633857374001272759094968285628047986520362852915900852330793991515656771820831234972257518665351669180296826396707446644319256936010467461950584177362855672861517987973337514349102599754357420708136386637187418297739170077843836359723252134443881131592660879855139369688185294495197195592795151662350767250898052854950095535480552298034388970929334595971360532957818954971897090417182923106430079782049895366369947280438468013872745182626814658887092752828817209062006242365189049978844117164052121402438303327699476251720325053607758233926421438756106929394110597530033298736933183169518333519684445029132056786147282425695536654947806412612409807144375277500104074649126422715994684525852877611203134442508304028447270147076303013727597948345506243905373941405628396688824345644513950118571218328350226807004690780240106263907476135954491732491652123491181308223122721500531895399454549825507230533416363568378624744159611096222233184803069925182431771374060273225700488768236772549287918134999838271306785985860468850550134967639680554045831136983849853028612482074334071752508400305315900239973421433765374719278987524060309132755190317689115568270029536450215763500008092309393656156339794054425723268247731106494458003767340533515363064753211432695076152780682897785123268310708218024212762431343166907701825845213999606617710363355623748489779994117416928278776330344500195953369853814818759570621793459743521818967485314354499434081920902597328434841886515487905634758768084361133267993924048004233892192023587560403379333732101062174113071001268660884963813244017357191039426760019318931987954281800608433876936832367037869792799478620505704758814330742690066490167555428795443402760117471307467526143396302787998202428299037653149247475525414535731429569530324954810138712512081486970457383358139145368593819591275929579081036719496438860394830252086133575721309004602864266938272652632497478288939991847252850904474324791954854976593017669806780052278000233455259244707161559630138667707039034152082389557181780746788704646279486663442148122811874628308448632908438687116953269773862016625519741714282969974267537300020092807018645931754125185533688996864822080325197227405723071806632017530231184537006737195567540847355476798266140689611219877752381342408865147384586539002692337987904092078193381260373466105570820088420060695086475505342448275749584412661226311481018215981791952100753787809375592103907251097032860541717998195839062019285644394865017655733262977122307252850850707256265446544997914500288740993743880630307790840485523067691895376493792593057431711815325536117734583308304840046806359898248493862933005081775258204675562021980424503839800913790768362620094547520399963929810752707147321183868345713830157414803510846333022374673604822882121899989900818823551109558191073607204743908693258611336682508623817423289060918699357407679671148889325128062391681072193470753483925570782060343114670241902564514759877687299718938841547905550021357094149972874444842350685836425344758820815453475210723236446816323061948696816062870474937172445607859770529240872652580588436266429810549773877334189273039459522642067313666499769840321182240468969026811693116592986707464964779469961041382358754619371927799788976108458148959856814193019171499668567961867345386131023084114661546481482283882303673917114366053811785077991321049114285837385113348253229602987277457551055357752328707356692245421838583865045770946185170720522334987614509079479267211267294811740955641264675496924849556133569926107425336760015623930350832821462363074147468867303299146692474796025875324236711793842816973058695897411352581630195487297470480649300854302664143358826885329132321951885485366286906335676136058915792773012259860722400042366553076354922528756554110949716125538383908932738771906797682774951533793551347206758457714360536962077760559998748238078211615418460834679705067242964323173649726727437918667978085114459187644108592583613194186696644983513106238800319171917326570503860524244997432112237438368391765758817109268631205142881036405725680538247179562289888756593269647430516179719925551694713811398105433812270739782255533073851088889952991810465869094659577394624245559891864865166400668782216043092546036700529732843104533632710103634360486521189908662992308286047958012085558580328839993358229365788408560685199338134205689478924998512815513883116947474302949413475972559747158415743865607001635260294142204604388026110244884743974872162219154039893509413670340558009185426402984518008541186439931246580159943608123777230081719534069641372014521532036265627968572828075163006799171820480849935699859780159208697373875732197948252909856692438610583561028461064977763248527410265971801534347785482915400155499045921505572255115337291451156291023764258512359897655457224603206982054322758911355852105269304906301989227976122913183064682954203672406510632386186419733063552878511451869044327195912444794659322815561957974095040335661524722464236473464714164557513663875144931183527730667355982616086997976548968478237188712674492201038182825957599000367761811721844457808578844887955024476400771852822307456640140474556914157196052791085565402425456115910222401310473192273343323368603228125445834632098462526045231851044848295670048746240128025375662026751864036035129686528420876810340316845929333153782520258564828746892319869020910280355557472945007829239679225788132054103127096357902649209211248419267146593980382482851879230827909351297321455527571503980950236032723884912033934094571721335927521119680981598178330717669074611898452712901276664222580118457032370883137506613621407259435501450927927598559324667123811922022878561071833606689685598620056962549264825826933003183975995467515741145620767580600873476104559612188315921989203437365121194983760844324642453663923305120311794439901385745071213833143495659093205193728259380493118534525341478003894136941774398760826509184132183734488034483950246258488897024458283815129242184575079172153268176683590007468891098314544683068528864514007302444493450090749063545834267679012406980914011032550991437132466783598391460554204825218709615832172456883514923035047236739907200062724337624494240939430282438421126626986263056545473245087810195637011439804885577014489123879104348506363841115936639795471983412835880543290185733324915885302239066944632497824747374939655445525250350489791924233196448445663332667047340126046929876323894246501375527776626573020939274536943178783879490739302713920640923962209422838812114180548324734082993596592549679081627809305432874843519160632518936924349970699631326049318650640197535917552519041737293121670559775819296758197794694203238824337238676607149706344631018853766719673326223475449994308563085954320963746631717149046184697283211134915911811043568050232150640597548763315724627299573071904502721971692957399664525406942283954119791214150064422096944549082671438248612688552134479183387210442814668596848486355379963963008927672381283029845453167914901812401505131072938730795081588794900262546455344658624319257842128648708662927823135640299316103479655977941769689011738865576073925253711260405598301814490059672053570069208038902044167412181075132394322447917996728895084599007114524546443698680110428365240175785020432818574980382714385079055517975174535278099316859249350878999717761292081537086404926948006408118315247170692449215616954986466749844685017908144059926001804119511896973117575870946901456185396312323863247401368205352386294190612122697856301309326501438340593815843173107112476179241797148293069758401239321017225335863908855648337724605176545631578537807086643697586025260599799501923497723751515868941358401899613991647157409111136531654100818447184082165882649777656411495833476688343042061358808098327844380745311626230761755059437475072437282626602525709321354786264422605743301368346644005668382185527693717926642100952210305465923082643371120867774788309328768174743995503461354741063377067772299318824597886207274084490061005016430811138075954994202129765298162676800056101809276492285590509637988301772400697049820198143364068029629894476557094109991266876378574800774536049001191678961995287650541104986922576898595442916100249069938244379347289871691222238347271500133038239917311645611226735169813811329563754214492603075241783262293652252995868305962387862686511881487662503731731519702377072278545835130667761375800299722528688426976596390162961509041035741330533357659378348364662893202381342078685875368543385869441967802656803468409532818766834596226329390956584168613357260190539699737336719465291452756729384928830266469304877490504891399117318897305673526617767101850964571955020220271914798203374557067301259241300108777170468783784565133449713151857045392059076491508748811156423358180577777155338859540230480001713331551861383823576102854409665440679230514311506065401272371399997420248880389991994655089639203354111547451414480657034813307653742719930656827616256379066680090886351600543868471840488656059172272055473759351825958396642896723566459442252847921671836746280332402483716044573701592159015917892272693713594330137571710830081980820700974560368867969703476238126439565579051018666839881492366240726287516822350148838991007089519754725166284316562244195897966267345625981673967725824018368179132216481217129073038218140517296423053654808004026725245163412007692640460446170988086179975102153287330073288385425292250130611049624957227857201206984959634875872567179360754532704672231572329846524175188213877638577553591143432045551955221286666434099668234691070766412857307539351265215828384112707010358032787315086911198501857779635879228540819995312553367800110987948855665270032975323613732446659374284077610440112864879439367945339036045236717820767912061574061510169327055010450217913834538682717941337257978566093624326307230816706875333103216097062465004774372500327491678187028548270585053878058083684673693977367171302147178631024796618523875973532076415906439333987462956163948609288758144030481006817456748541635043934718634693062043831398897180938446907910741499505763624766208967511626922484640252818683305955354519552759680645980992841113946532954670423812948463632860044934550026204868498485170711054201402892229943448809481129064572177495138529498366648515367065399350922049233016462193276262940014498227665842397374019677377676469638213480362447928338321166662500855748375857641570101884474112555481135809592306184501308370283829001397624566601367891747839937720290763257824741752230799036284794530828680377298670116151923750978970889842282312974605619945585843892844340322688503589876387770024496867978634157913139331164882371875265168883544015019095410652820796332950523425990590448786834223979478065938735758401925283620136730280083403736883920341825364795475216231043538557470290830960663751469104915253423771851330941259325993049142709869970819221532145792126227412919543079902584650799984848174423971383158195606399609680860488481080898916520802680181670157691274321249125753629557695391584700268047358924915637851924897727371577718924098791365224750992443682343352904264249303952371326554557003690255263093919016178292604121202204922271412093247370508060808214174615261985187652065475254449237779756150514472332594235022668706048635940316747358672707434697255205867034046919460385538130236211505868530208312402648102243345921013912593716091672699019292354070120408875770323114392608523690253798978747218560991687844909745619115024675320509290768378543618301358228532068108846863136201905695373789969446810904658965672268025498400752778579673371293880503041617799390102195541019390903322927382014009947028431326517005970650212488513051971856384708954904631501249093190822224457718777035596107040376935810722724198362306410040637856086384966953424196706600329884615581970707112494412410667039661307771641567057591917504835826480724621393219671437320610526367396569058658524144275133052493126774965764985517639757577849696714110098637971250826112054733634741130213686219945177650877462547934529387585395928190853052128265881098862961462104354382903950775009165345055106802058172638839878973542481102068472233058597581669646355780573892728656788286046018146633834154355773748044317321389379460331319927688611767193025878006964507267234561147185784411429784832007831901348244482379262774960598659641867544695013764310605830578932540406509706339840878052180509662194538401959720535791265937532548142143973630082211817471100283734052621961153079940826786460331587469803896211129209578245517605576830004577371558740610634022712429750987851249481871472901014186754464489590373130081220529868723328654185077144398004962158012722969987569032293978775902375874018789648404379089168832092817108249170263564394836556330344049329362999472884685210505989013199012939254287356568955501833491295627740846698179903863405036518907930848829164418009634432083220011737329577658319074093173542845619411150886590075465961806969558353817233502327212797703849360452442049390494316745898159504403066455597828752488585199649759362437392593872467215553448924464714287507031804928040248552128198202875199652909759595481954981914957606176961942216348928408082086110033420261569021968248979262324860659923653183067674820605401449500008128614003115746994163277993783672980579967773764100238516343161666516748017737984254936097633419863014835147761022066415713089757556289841264930312335463374615080839936356250068645692074952345732008580117821642362648871027233346008643249900427740427541915078623835594651285621631979673019812751164921043976645326338775120960332559575006416756412207601582131451179870442210665778144069297900488933803380159387907005465178445842878697203116453412408248222654118195048770772085033578313713354615587644671114901504469306889572174630055501315760553596003431990840917261625733751655473847741148574780157939094508451813981847183761793454205309136637214803117449698446510819797274557743683579589099716962490339195532424567082363161753196736335830094740909419574315903070019251451242580380007273920249625823332223497175900016153394268949021313676926174830190985713908858391801803249256656409211507943661741043350114044274114433882641927961613484851223195005866871683753633110236343186042946147084029852639106748066618979849059741344608668789270488039588119910717397621998940210589464561225069241285502398529379262039347100141580517829308011377791789893076046844547602557801425543737228769788876478512540915654292371399401911067146181797922747546300879714778016664214396207201898441378928885891956446611316169498709973118160078874205905500825030038795086534899338759294170884156825130046706450256087357653721176513863392042498203450904082445401968978725510199132059780485283961682054304841138205300593278096014718058990557873182879275705342808950806424703061418310883753147486021923341836293727628552947617738149930999793932040277860469582983626668337884532439261583936252045467712042116739267872058293008847187219264228478166896069952969299495510342261961452191454886808495555182151879142089438623610269248767389331044658093267655553767209430683737334716860946342184735873913336294329253386685190060618028091575706175860119994993446165906964064949849229271415897626539869339869045713721253899629031227785756367772803871467269199510165743799981209096334198280721305482703326481555482822607355928885172997116924402230200433589255167707661655355489216655440720119961614443364486806053677452139794040601445589641777569506578317687059597482916338191588756069889123057060095663149475035597757174100910542361742418317651640553875853118441131960558665558064797493916009481559275078481301141817005975669525482711664261954612819596614151147405618006345123451982459032736400368423119893543538632917342841350316470642204654182777605251417594833556421741645670872053925626597832877529727136299247246469661650269773721741892185500798220972330676347969023935037170188899480010875034533828936905501580280426815131658476769879521698844424207971848043564427716480043468286732200683633022375292295233069853525116449286029124914678337006946206385234065275309222776574422018456865478624391174636765112215369182929718808650759402434125573235829075182079681215181111521841726899889798180746260391790098317201660915385361743111520457774279782674601609997180152144756631573368167520732565817854518937134160712782624954847894890263335316049231142691075533549531390922646207195825142103443048909923293166277933909185079353522280977199207907223913443757145937261735204889621903321293884160328431853493229262189647896048676998423256343502053353438428133039806520316608611595767607994399045234656227403552991553222693729005803265027488235998378454120737308881357659004611426761243522239717766517045328112315681047869130360571772005891066856646443326684991125774287252266883231730341073016107925235648241013135561438050660205797442558627626236467284563191118060144813250357260974535386266336288563356436103298228291249924618950818598340420262473875743166506104275624548576621931597566450796026167251881932486304688682454256150373834755559690398239373760994773321268830574032384788908138851376088031361447995812741081044926924177373562945001587122317997422225272373445528326805930134547086878922049786622643502489183275342134987527870799329228750457993935384413894993019645838238795628753353985040879029233251221374543771054496365941831448731267712225384165786768690327110290183309267330141541106151405208376116963671943493020613026232421488603195166897467705665450874262315722954699108050251228372929442265744780723470215152430856050363400633651431214707422683355621160823572881941509200705202870957616603973276555284939193829121808727024735519876681053206224781274132084574514000745151139235939531702706820532849643797142201158286115010225909435245967662843817701177784703915447349781953482292972123622293731824840930669280010354766004860548412226498472745519914427410651431490162292727885392396464946249496443788027673911316275436718224166583803012928285031721361758100447011984915043104017202780216886517480055896950872326021690133679834012846710155925776397613371557039647367622136493993614305345643978301731285162384037347831770218563135224667037690975802277140750793002071513910589368660657527423932004764095804733183702107256111658478862087773694289928851160704747398576610105337553828553274707126281105677387945015923891092967606722873127849497193541868635625465434275369568367865135058998545258497100990848725562541655323848081422305359132796502585316042132447466624125699738399924742566162271702529387000429436524311983625568825040781457950908831087434451058563107095867658827114927713399623893672652258269361398580239903499614960257879630588688488165590262987101711782424473342434956436911899338712344120689616240863387718988128196502466335653677752903998644454173358739306795208670793119558583019920461654908142920270956743288227702382314958350505600190520106778164072657140003030967872243433000723752076272428937144961267511389676935338695632448134810406223615497908351995483646106680721503676636165866121512863623577922077673784712205032977583899859507475684436529525187435403998971452051452890795188998016588088607428067263526410661276329932347917224484381500833024591476023697188813355579207903865788587119004587073269647972978398321544787795417055322797391934011535231484015896277862922913476085082938593367916735301693275525675015861788308921539736060828958099299124266915711001557691254396628786165363471563706363394891024678358532744579799835310154469617242062172941764773153610737259360226174122011251686200561820233503357228234557647784310572750074185290462170825048704881201985603595671399436609195661662651456848609350821329222285350214333339249428845282026608388795660944392565668016929484789371848157090156996155279222187899001640178992552727115767936917507509600412062777026565469660956297827848773567480794811233672971695866540746143794909848428299660458034522251617216945063580823570136621605253136256285232359667955796728113796330534460932951444269890448874656063828681815901817713764652383423392983812383015799470095792550799599698647372307354085320106613607381352004125133660854731657772681525956586562164280078355703718637278933161248741472706265368293313613352547576106770629917100853970801878234016624191602561904829338916964199246657700539443303410175613749529156131006350788657175717165569503127878954987402121357618528658463249862571523426885971228744945784581296434929182248362918385248042752040026999801329436684418521699864991858604900968478207116623623067932606866362904234370232768834802254653351427654994436486976331666876690420026329755397598611858463463738447290090041336259076668877060978824353109006428621440465856826833522233755157441383953774975200474802422358313867691870198021439460827010291917443223360162863507479869125483109925179795434077657014414146456885820825445567366716896561541489018666115380982259134170184152446376876431573748907749677783524604822508912505416157994128188919088214582377165718653043310793500619156942409070432687595698798882073230621679269977196701718056170117509855666997587347655342803253988463273178274027948300098522500191771039785263333871283322511805086732980181752654965689966381680160648497690369114986078918268056762186129578305869165968589426179654990546077158547328569566198777120326320509765549692455271313292881879341591084791128842909555057801574440506553463532275112857177412622821671070981903667826192769866592783330555183385408546894536030618933150208180920336995751110201948626392978109096244887897585348797610006233864861649242091722036264037044118770073792174021955106583617945069345087590150111182742705381502386034571747147699346478120363239908402523879437328867265003294088242590883683096731975425268340950403372784543703562703555580908236512996467872692184349462874096533845147358345201000654981220181206847802872423948082633005141109404577063306361455773741662208349319877312673941440220589903932425072925014358275771101410407533207899602302555361166814397161136904458332797532048984710939162837216376581826589455995456781366954297273826514890317479828429373877631160367506434041459659656397757572197250364565781838942255199100800309596250504708951461552225359722952997145029111705039408229986932750886968450344963870619982226280625790480214500653834236031893307783188961666473442516435096688130872737248668948420887432587203157676781917896131627275723440791014801514468305686732636726552033780432570529100745795953102333662883716538809950477593015707848491534266099868082634941465248645811173233596889113826116738762483306232997996954807244499521289560220666440776968214607537700871714821769498127905308746374804740942782304396382234145247812901605044013366652065010569497934644202110351997080880538565925074627172972081916674801655570347754309087221830163556812750427904524870583141165003828767283282648934461804562813317984961791826706684023736346432520772755905106274568300509926394513483754646369140817465866045851609965447423428125064684984079622763390210383836910406102807907601910813304175722934977515606003534368774928698012835131828661627688496878523782134312116175973518962116482466132374344401511728573628451280183509681824875312732485457785274193572271653781442875524049551777515418602264981898396731982895726655160981827695200786843524769261144442299657033408396934692382812265254942987253461895825122179932165376174809112913786075101573654125022946421536637952291609455699660718917265355101527281502015461661124377527564632401845909633773159597742097427621482894735320800535837867769596725417785429614044991771181170285204208538175082723019067851500366052934681312258638033056052025741527792688751086196264169753456141473123838798328146212067483626655793433164176591929407948726876621625566536011813758708330075580469485557821038157484302076640287703747045654930467800318871161754682051281791216206894947717315981156181267328739010940256549665289043062465952661711326878276310764488072688685660614941021433435558737529676898165411070919943913433296115520427004347620269852357032240255716236992625444196528535922987352718122036998733960485253178524997890141217543769304782400934222582289808813842639751976099025939723960427523412206586403213839381463433904642613988602502746357433563363448076616488854639150688197981225657669229728761302928099923843720891500695849414480338668221896154283096131461068348782055644967202438070852790334793729366748346751616414284103214468393674263640875770573662281986077934111769995566211047349839809457243617348552879038310512908781725402400702289417853337237946427104341145265295683940658146780114592949101663345702099455512115994709944143760314541135305437964715855514838210368410763269874220753157655983077047613224050705621859142407190788554494766457699993657971427619111844679827488561888177211695937601193748377733813009231768392885971068348132474398382233752016488422299723989217853069266842089040548199626729525682151881740074925433552509170929155135873524866012997582155487713972943126102027636842841932797420268817697941797539087315682380336923494720244839960820326528518328602023441461325254524090234554183181994494948270848510716914697411223709956173638074482702227607675939915342893921164506960480104514830839914259485215202921181433411091836000328955336829048076190816317624581342723898845111042507334368965290489189552091956600202633541135456800667281201228032104373837247889440679043232408596357526461150919462854845597000065801663230018444728071638341242376031683509426966500216328774622209458561765929829407906348947003559858879932803254467482149932807479849869644484271378573529372469585773972381701775862952653231838541366271863461334568905022112379412789952173321838773192784694659265312436193983591744570369057038220948259797295016149021702610934850031386753714812081209920525000763341671025657197784609278332241138420522946607642868655003551768344631650784445627776193489840376114362020684197221475929967060694469195092768447105825395265859134464682647428092733733440351690781657814988632270109807063400305736780201429415543499307490937690348104203410496941643485903662821903173245054233977443480055918208395282463226324954870865638921433506102362879622140326540235363911962554488801202762941733920032051010354583684576140379335220084033508882488990564260198909855829816429634576679657000755590865897337171666020834862596659238963756958396993541626583976973841679611249212603998673433252560765562765588026712398486557746367564563901319333148569785561850618654186306054339463479596923227387809839998944502893507881976311355721155785655711951076900330452251017956103540887186837950596410161393964858097992389771226434995949879548519087200883965028978329984256484941851470958749600540000581691860312578204511786598166059815576878207458479312349538848768290571784894999602895400487889135494951509889280970924817121272654049008050043559002921038526370119217526576695650932680202619274857601445424389812486784661799118585480582265708041602013411729926122321738749705140133197550509677010442694968653579126314366920479701141849747002692129823583983904658271171495449460881690100870085367360471622135966794414079813148013549575502868686152297678748016200515845527460372784866112982501976172736655142056936648702156369536065197959879102253736109025205406528262598247985732486399404634979763706624749415334372291345257741100398039105336457625659151806514428184322952110891380441339567892126377002832639280380141607905697212594254919045754339753589267820045680917744236474814592027519232536955095201881730211121338403900106381724299795121582028853685959464039270194829791299963697964361533587007635869425490321324904985091860696661809369496461113547857875756957002125943407902923468870995982626278816311769457316098921028414559327002507207463862934767499502150723733902982202820289078080471405941349238331173796783977745626698668746118751087640875469109365943794857339178356926457743177890075278792962546221859925277413999855915043996394612757205614690015758777793528591696899955154319254634041963542525708238637634157069881984346756099918119264573957208127961666546127528739068738183171967188267252855011688896384795965363959786230937812857600317041710036264858357238701969705298649710534276291810086448685460984345961692091296877993338671575025639645678864578319559645328721354543181955799410627966225036642222496501756281918100691050731333186975563600742884782318406041519067510690379357691464154523631842434401869980510881574030398733824831451551113604243444668689605062868734411415753129206703772175037041969090446505126535416513255835634209106734382743402707641295689420723693123897289251150767570306376118212722020544764473398448212216031858860253649992103822452243401476190063982185318373933865063382869819619307001082511023094810736546210097876120063693091829066951953528887127104892371621828381538072139443942516243396690044264123282035696220167201396635115854763446520170607728065530977101085148005141913530664430784364029857729380591809432475001350752763800592407323186726018198792562523902218997312894020469580785919423016982221052474821246449956322823042963603176252053893295417351756816602262981644915940956280127192135662902101737015523926322953726802608441888031761187680268557913766809867816558514841727336500030981559291068549541824077117625337973199020819136578458404675159726817791017808645168561719396855700116451539785460972089588414517160051415435452159339680073170453921908546192670492344809557044896249451283801454173488242933407544216386550194745961167157919417953571292914860400827737805837225627125617548153399606209090076082697287209405984238934149093420020388712847949523340274167360758132852780969605177259872033775477782950377218882188603973113969959850618919569890935176178680990546700995664768406442815160421183115356610331856496433318712073256028468916038429758775212588511374284213304479216196430764224059928989083463839147308321292039941796562082414718131163805894337182683882800868898703573791777567251503253105579985972951988450803744100178865848951104682223744680208552709120510540280255612995970419633719408872505789052911601166454198861241850055610901350757151873641315621261962701536242855468309989390798979018544343490740597516092923236298393949135142305379849267973067229302659137955691253931940014847725811782766745501382878945168873355107024044919616281079364351399432974816918239346743063190027371044648640668074631115035496874084019041003677985102384383359406382054740788990902033227951682426311953727607054974597331624246846403647911225217664668227846802201419893675070220531730361851101704061110863949028989298735048152058156179520869084945832263302159654509193061372244150165837631572294383918865230906420571368936435771832226340020052539154881375707532280524310626658456287463338548093856604111059406796360515933979230058613466089744508122372268727247745840957640282037238262823650825802146689248540534320865568280525127117794458159425940232450362627180899987929850365628369083742657951270209386370336141532581510549340421330092781243121269016757950974825822161251248866234013707124308879976935518583159531635015960017867277984581312545506738430497072086220764405175337739519261487054140045904954903155542471588189051359013401006098067906360751322748389715413745801468636096089687900877402597732835834826354377192494278205270857924786982979924076979190523181196356146661248741861389016536217464449026786745963125182327035682932330304547654476388564371927260877883428018557760233978913691201060751286479058951498323740685994982570138502189260514351763222271412114496918140670738409196592102384238579435853383417635096808906857293852320982581659322304088802616278344828753271555508359250691237950803099858285447810444993377348818995865670295081596139586872417278004246541529429766228707130345166686865844538913285246691202280218889748759550194261547801675799167753206249294750110791196801102060865177558177771118992324632238207396850598405887433444695117261550026998638398750827805987384957525238060043978854775297359508567148403134630693589788775296007396393826402745428336807338079904598060645291225504351939055908097452840632096966959796632259278890936939909891130879332524432613503404787250172386326551818997447462536716351848312890050571287106399801917699129775260286388557822888546646714762614081949272685400896758252578904334211184878412921595514035033181560965182226223475197219964470247401331694514379275234074574285665993129430172899400580453794534737425625677443006980091087555749237860512121475268121926097501823114529189867080808769400392597521064313380828466976426146975973973370470336500506312015162959380812556303299267897526856135029608278468472164560713906328414473575169052247985388333782674015014326179424008758637200834617681242868398308763952107304635351920988146601389432893390990274307988681355406866682277501829564216906327698107629814288607177756919919626686229552910253352832688610355668311901793027605038042815407693508092395516195839984835311988894639710134810400937118119597560721666201741848554076651325430364922585807683481469964332160959148919633348753180646335873491449007951112136282544382202000932687288081347386409311355984845875449541670612095067330582467491840850316389623642050348838871915862359403229512850608821084493489195190144418291213776723363593575674337787516909935370220513687666843996461585507933591039340867555162231005182098551346750816902840647904487237462711428492836618220866399862012270317098020470790970757698372744560969773780359480484942929721975955207369835636067825128198571922785135122580248591460126445119038694294509692854123464481680323733683101724933731451637315900563530014748330108225143447661851427930009840801689611887581779033152676199932104858861774730981054391109873692794861887255920900111275238058212991617929662217724108404620584599303787638494641060682733592303409897019352066619240356417264131739459379203138974905613457956891402914775583624839882506914242376835279029508879794227361216255457351433216684811013949889888937631958281595945168952320854654351632061202324329521610603723735353666266775391339688761929293122883887328438447783555330635179544746981169434059253957629189060002943008757967195980511352214400351189686909071945599730640875712676696918392136186589045222516651475400092641403634034232211847179421080828207427873567764966563592181506012512911675446607956165789132934794858971257949738776279687467588585243053718137746169189767157118640769998152035922236314891833660607880462596206482907187527117854875713737624728210266285718468788660786896766028745090893304218461866598591963867523215611657279336788054297603117639596811395405698479404326200386562689433759935210448662079440395178249043988622545958239823382008581430651348993336245559408569507948007045825601582226000817050907764293259494927279284915753700351874071149013517501742610787528173007396983681560703445854113083387711575673163089462325895206787849919723079861780839221682637518296826981569452081894440410553557183974107219832687651213825583444840806959700201022007551860926406216264261817438923447600908712496007222405069859226603036284456037823063692947405165909035343403403673083495297269408685609414686931696547787218329042446911628961050032774957390916178663874679735058499247822201238152629205450511976907661057049225935876010795523109102736999671284942056788863962324672709984387851509863978414366816596488507294569754490938169490829294844909200753499054081883808356077942088973860808830269486517703109917176780175726490691367113773053875727586022626206807868227810379668163537358413967766186139979240204410322734699705378658647478289179453621502371562513336196805636953175246228124189995746483928674578207742183543678120549750069216229512021952604606223981069096979740051234480128865447663176647904238992153510420147411920123612766969428464930330893379268678717473761248300808596948317853093465957289208400821363416928998057019742146436712112679587342208967014248990878739511647807873827228614012530211813580210232951984613903612780742186667351872196270872315041353541250880843499680260679657943857096962771824861145775903894980588412788825349725746590749759076395986787540034966963921585507596833381793064823853395995842904963192924485628868815006244265737862594289035050998490765638670844205432167904264438790922072198794193202236211687710986916252204603510762276693359303124331792955793878721695552742623142455142562959298674355015319269642553474103192998789836022265521431232849921019640788511610747719852105634221734940268742037206442771511867541647297391823284574842223236756148012475299062339628640729815933952130187715334578514828300019242169666739251557949224792637533114727362482434372185495193051643404330958115013960079304385911218330429295845372889811683301382431273388032616718586236153697201588250089802596888085753578614190717015829715311375473064987873849740157718150286829794129737947250649156807886700202682665120963473614271498111250747112621380969740992679098250605185409555397702229549875701518479926344419756812141463802257139937472607390592132734928190863064309494106848981324982716775365726445203312846791719931325659610462930968740511417399037807014947614564260722116024837335921655300919544946141778912303439168801043292637811843249716656525472745605107067445948962121041445455112011573622353944488798926086584684613312822547043938815788557340184417674797133410850033084222307535935011957438015361371897512724469203269712122645899797726494779003340502655725963223346565127659601038547658660659748318567060618575306950024819676406192904994465999036033286637741011107547615624830422536446171037425894710806199117191280210813802660566990050953630100267207104390722799870511610629478024069940960994157750421801748812882163611064088732810089714697131056943307529600958329546391874501822682938225257165970235700930144083449345413548640577589108809568135860584282218742701180478618837023098698070238180751111775209148057562036590749870467887856698557119399276675735600513912527816704647035763384639523013564060874481392754263811592172738544925596597733298387064753169415362946715101605252882314583176698429234843228460658048126987830048966840169964659163381798537534498258205235598365611745537742324083971253540963059607238155609217647450919737561595992065701420186000792701909114346984587686734567175748724812911425769311293153773410540851065118780991950379175553781151594680876030790998713980424002181113211174725840572264032996000478677131673801983672557382513927269905602366905957475818307693196458565085336808873236116429817736044438342545157943792276094460560904385363160170603056857939528750283976765178279301603212823687764613350183965893829894741842979322065426020594154359196281426222979886746388469807935654780210777956870933781032614272989502165764632607266755079903461754677175597455399968056152277732256325381710915082519783211074062267627301670626946967728021765484236582024356262256165931186804293799859577751356190062225238136440185083403697628338024543768087878507138693056744785666361534253291975077114082229921251523703545109667731539140075975666924738090650706175966040768749695860567083218609911053177194960664590928659162546038807903261581189598164549541687539248945569473970435355794732654522832143133078584751207398151111895901930717711592009046144402323341223778856893185341412179056403322482077103676618631214958216523224198502608443577897523409754824275878043253082577586136964776373199394318402240596226239539472556557633323462296934790437441082538119112697683490385836545770200684210368268626633012085753237686633387426634975924713223000206773572500498663828080118150360735245005908161124456297178882776963953232292668801254264246259733948558553354093946503007730328456790350628080498320660470545032283137958482449879587172323582907926541365224847136156085872873079777735113703931620445828246341989921555889344459846532510662601378839094781617647961734416020962557851398337490438770605071710128660147666661499850177870825141273431382277420974309963922428429361449188568026735989386228630786447970588510937488678595941243628736931738773179398264311100214600521858156882772946391046374828829908375291055552436259854268507286971708164913544820509289463229673022577459210294320612889334554106275283800579722590078542370742818754455992883480553317835749405091461368112984468374934613584536815819912687570054497524486598928558701519847306510580385329597867723222982427040369638437281694805353494432966546060320578888714569352345382195209994919930320014336331840151896086235171885028723801302948046580744855170531347443418736464332721171527544841959424108478548055723085507361072581598110148262799893086458995435517388176407606661094371278207683791984775817568000745937256549069860988948862274045960756149038891039068898678533281777762513609216632933628835596264533931613200138368008486501758411756946096488904038770728058495036830860059432880484007666701503993960665586498940765972843140008796172141521042363143553926878233988401778250434097038314602113813561936631755300773385413133688882711674595453190389910001961515738462412408221828265918650782110679343883879349913878941061543096081533943635095022088920051312252728378263038920721197285376440840678890064297012191281086139176764152400869670293290606477113050188781804775954150898668492442591785887277114854902609045947974005048733891513245594872518378425935437080943322971726713777695119148883622861408281762467436953062679682696135756258600768514264812717843282075796425919455550713552603380532743842723137387110637591080075010993779068881730755675986701810815794161529763967714270294449022535736806194607942362171939253942599968774617533412584771594137298897062939660469663624056768472994846896278530979597056837366081567022512774195143641820581547176477313741114241119107053902751849100078388698360121949057812966930710466876948316012856719590800589742340014593097114863994952009927816434538617630226952437183431779143370376915716767886800848064952463867178029594434926318997902537150236098141940532823024010407228237094649006714671131496794376983903115719243589194171013853988254770217297941019465104996550376970743113435307323432255936611736645114857018911642827205412048837216274391333672519053376617002061482504592298430852425018659934790289427807984183808991360594860547526642473684057091992767600859889874822027204825245878418956399123268470590786987958230022182319469824919306151058043401862460402749257609760134023028044086990602412425346685832196664069859904703672574802229822142508191510869037154622734934124779533732158637722938410194197208738289402702941312959989274162927747314072552797525080966710095308318729548706556574967288432704186528501036284015041767363900534871707084094885399915814064534194006329925235933257690856831476094935834503531503522007651557230464427055094416166551876228171924343845919105749076601435141372561652182597544947067610204082409349798741438583625648327944223533606316340178288355266791731771243956044994829820610245423289978232631152032062806765108118842917640671032813439357033309464229628296978044871964216563777082397979003309957305777858140509470331510318902081983475328305139188036569441632003669774336210810761577885500348610245133496080353906439464539334064304314021194419025064515067992881786491651331167498380605513470857489251580290473366788285036330107458404598762377779969523698322307220236377304801501357389395721452230332721655544487394332948338912743979768810655315105113731543206310738334284311391586548014933358811238343721151935844194011211592574923472479526377464938811658826693250328815116791598289082075186861383469941063919716909790500286173557265515545586487834497508137354771052421485594024215765997212617625209057938916878021052272288669094353176963490394774026481709616008639742672480197188928759057228295300657844903525402438124003062981043836621132544909722621062712912611779113483435938402334021167380018529106027054578470942367707094584194219392318921507328359977852179481050193438018068405467011966133595749570092665662000677568724698129694772769198234317476637911519807020450069256466222394178194026506345982393945075650898952051770551763073378141226270059041865653998278138547312042698778133118404979588219978797971860253265821277741370135698034850103355448281927155495691455957748778837093611336828597012987254879359271262941857701171210991264323760228916053339689421250572642928760553655700646741995465650489448399885900163867117039100004561516701954145538776607110658333762593925211994241840656855146935116857131536426018976560077446696409757841464425372116880914382849163730064976055750818595285009183175860191364028269683155238511300807888378318231278047277602847463674655500102229660949237903734436803176959211882783430683837683698259212354655164638927187606725176637660275429036871875291475991033299632975768460573044342994807503527672999155144076311155256675288755839355720877226026829224539940217151422598822413197210736271350982321248971986295617924598229607358569535154543643648287414943435406522220303779195323678593094271239874618904407739042465392643260132092245249188172799692176610186743899661344773747353818629429120264540981927905549374574038725213627612589204215157358109980248614696175949018391170128059601588166324629079259442485016644574174410425544041245147510352885774828186829526623668869237030105406532484864233240463776469939876233045677969136201989473664345316560991730707896967237369545023298441330807820790734559955652107091301753428590006377745623221274742081492579433259618159300412052535093431995852783067343904481833527840777379620039244340644922607719916525109665310571518546629913073031660087890048468349981972025672289580540028374651492502090093461598373846243017529106414485178143455652503548694566531497144838968934672746503534356383278161724619641032373703909718333091370962580749861330973517980869945470878683002863526995079736137089303442021671960994478466755251186199409494476897754944546702424115266738634997013744324982283656931272789464429040661515691272922267017936558658778999310491119845535526299421726850313810799717949680113665233169102043165960387352226846593140486672666712645267948136915714024020478989156185901820486209745825692201626695732755960929383128320300586841077584985161602067303431368830013195487325412601555563020473061476097662173747099745926529770414439752616369177292174026018178230306932873518989180453181415370762607119914008207770087316472434071047408999235008970901636352634886345081669991518780438650304173176444330036708803960787245919567999760476062290269635105072884254169610261261725624084671987283058282000055330181120023912186231137172978092062974651955833058555072738269668430561689123181727187664160662381192748662368163180507215654865768803017452381831586474737310958159070712424984892519015606322710722596867501233448784590134423293531746773903605837530558717290881068464186971790384023899602993051606390526669315914658958139020260195479645839040423854884716561994237342821513998851634636923305852667596110608631438213034083274893067595297823657249418440711458684897735314150253248354009687245649973551629622085613629491960326198830515440742312071687078453561934401462496317507499926313647417175761362757807356498314781673660981480310237639417353243040190637050862734246246602851941095716510111162214415092452341440652121051436716805331639896207770540060319549735625075698336393623357623911663938906034434571933066935635676008938622624262604357412832766407544936096429792077025047353715361116991143048936287665094680997347406379834554611048746293395405893622719934671947960270437947020582986810380053558194411791279063919549879760094233750309286358939292318266788721215270222873388827221664432575215854769766573634789151985969127721999546336976576237956884558942934394545725765473016490041059106433709604786952020959933419668932906615377029613357132650705557548944235813277889722247058658375422405845561981120472975630891969203314764086090755666813809648004528028647876008292547989166927193535321697288741395897466099837167907744697605734435671915389936383437546667558013547488049725670445500660761289426304201976745427782124982008682884609229500653332062489503094020791956612296133048246969669049636851675094614500574446713990774058417523694185818479113289439431191052982890638265231606319446347710647025318902162101342066279862632152338365264352976857883979720907953025415479906307065592535254094731943314261650319918156576958997494898220215347694062766720816581596810476481765024755445585483366605897812650006391557774705557678723449360869866955189695572863868851811928320017868821664532629222978379384080128452782050895337130422218696617606845493080807629107616445269885351412232951848317093324366395985848651116631485565245675608917845667445318364332317155567651748693046354130194916354453632451451311144214292216518631279984637990264513970030206188156165577509125651721081252224210435687761305156466225026923274239171917801091167560434061228293759726820968549705689103818742062035913723324497473261020023944068300356335936335342724092076991087841616485518095732667050838500161634470671240964346631596762769469265321772553422966169148949452501787318678060284775538605500309423011008252187847110619780452234158992584666977364035790361155026832375195918292451093636601346535405322701873448119227766876555094976282423300643090290960287687220316097368610073162351035346604007863077346148715973764091734721020166627820858631313544788356702826133053688450804868653099626796824825885127386430390839709257405439111603959335429906158412212453393365427683870211871178470900797791909855386528616502092358832530302306725348198555417170948801779082967118501379855823538813357106139349767981370447450288568279537700707875958714421259845195796971706641091575441091604460332049580958469894256085152796623299180889265311375871996606715537514885788271426689608864853286079047357629873174004077263451352398350584915231915831511796566737488348547850553233659884560323463164232277897621844890433929284039938612004708595019366459321023627089599008297712618280333880136781286967951867665555225304416384310674806051164982109690198780279922824799642116889257149967496061568428593643353448922205931441861042511171439398787912519833145686905671182890802893351609308738724097313642002305355895736316284202111617546706476653533470723829895097620883656989935270238708719543102178670308673221914596488647491162802356230451841121906805246731425894278224092978449508432114867437589102804784961853595018375974153455988701492859379385272029150298788513886499210499045184754261324582938048683231841094766133409940679158211886809227496106765237387158280372237633775524064744621510234841096611264638663537476225251578067452343601326509769404485269104785324386484427302519179426690615095661867144249891479753236520131125777426957494049258505530579584090786189861519126566431593489532857281938797721012817476968335457887862927815458430262241733520204214953852964618757646682455394861273164801175789507057574501259222430072256468904876089709867443342717201813697355839486731840856036905282808184658640828959079144107851773508949253542955931030733952853170947476752338686000724644458376642713924483978216800568619769898248947427762194812095291093667460377941197264341433108994984324320159646995968753660904462867453072167072701067297831335775479389943422082233937345319539279398016757940510231568866151907827885533922331180088809132328181962101107838404785204524171496535638643982814286228583983629289480358184097405572087854741003753734408456288133061650296311598895155262344733837532800570247045262282092189492110971449263509497618538533666846931570607489817598943630761573147136090689360155506583179631315926933948621665625877882912254231221879228675336607240353895547359481843223090057526393513645300091759382532419277523552407541077228528056865820907498218407022496678884819961299297061761028616768186662128917468404325796696922149131876605438815134810830692189415491409735448159830723239455870807595291133894954335713741454948976039872369159318442565655035887172893471995455217335910016350699465206366048083792126459127091017275981618188954587925649188140953269275460161582527970407594630284948902971569699088413169257272954465923603877001262136253949852006348213171773856880675690682015135056912256721987724999120051882199454928970192527171073195593843453195151548103797374997267690118262491554575289474829036281817684028521780286238435226450991420490874583592366628242131467600653810011455380286621080167930537687334254786554614521649981551566313713344362987573919262175304619409935180613175739647493896725106275338128039346674499508101263382348968124474076413626914612612665941622174667890152826812723355756689456084214172744987500847181855356930344333071635547714141387973422259215320326683849084326834356345181331696130534225047594602608696801985334525721254383091320351832955434978660131518087259794859046999349436726480526356628492603468003003539384029488012505688225458614441237728118222951270957143072315470845565654465970823710243186403857240607937093534119288982457840432642407072701182421088454154479150115188760116788392543115497513370177582551216357633536735780075286174809087950630727930504490955009214699538788966666640115695106225003061753593539643550361371476406720134460455773569743378692810435237216605291080264611538207768793057288836255353214661682560643358300303118410183840393565630613830118941711304569027783693160997735700461573884259811950190748662613412533116906466365142566785291773392891170600178495994173635387265903190499385936236934605228549733011912013417333388113058624310875171301655576118125964225951636806658418095158125256193381882678044441812056697530926396353163897123188582132169474716650406355508801192203718982449210801965595464179319067127918904230119884496030821296546667861422825196802475181264466400415248280682849770513463121854127079403272337265530605967795587360557526995567540229751181672264611379162074370001911879698988498201696321523692106380154724199304071804801166829206273763532272579951991642491267355920486705669957415522426674720913201725425559393267716358936001110806601957906421414668326572995703659166042880519683191658308896637632054113122643133259529347798419657082205852155330299419276608110645373962472022303611403996268204387425984862231164842393769055761938483372545671515986884005367648894741397926376899373103850975481421363290608312470083918856630796559175472365501323746609061888050621975688232973653166605565770361708691711404356272374028536174705090122767429468063240369605303881767547230293915409628646360196033065482417653123044512139436160943995211259633090461772002900008841629287523536498846520900922014119940035782912760323984585299405641874687956811834154813097280357048512592055834438249041056777370686716712954747107084751844635910076761962231315756350996119577581600611879094865670047561619540083645556187525893059495655799266581224067258653770600008617398876417692790444646578878150759436881757446895490785100070456782098245769470684211089638664466559665279378667701286897081943798412865758670887405361429676710447723198759699682720908706878081124508989045047970599119700938728285085324647303431310883468343976230260471312229749838777132949289889142659230515498663296807966710465953477178550902422521582503555981673120847023389542153286307314054003399331089826687010264501586224243556436371516236217054533897986659776450914165982550906435082299979417684216768295323215656990554648157972667122246259753167948287022035637781830294524385857163386975596664260913897628135105286994236362217546686703239976502335073101341427577495243665218807520517244915017719100181934118344025761060483693116932655020168941046784555275111863290855500332846313578069700750192300653288402311152416721778457393770623590501890915752207916844450866707835032807824006820905614402979415246888328687991792257903460216711755916718885994403272676886226994049220078534242696545876384909805374599060980073191592595403369632402516604569850769965826144376367097645122740823636649511045802909785923574744671675512207047941860668828192729575477785619290586037809225484197577128486557611615396636389771689834868747902956098582607946034206820367676058532409588325753188925336487686432675435150755964096732699399498038111067352502107026605390301695259131197065602887979540462379908892740954307900872024151319379766979927824598629697833120017495168390699151203900444732495675572722160179552184350420199829606555243484158698059890523878617629745626062280217568055503322346016582637019358993706796098838114978826107174889021011412161959080046049465768446933280242836433566795097203700893236396791490136915162659941420792721202983682376340155226954351452122613444572021168969366749412723532080896360973958125103394845251326371648023197812947237313172404299875925603169167193798811719075898168868118490993152774522368798199213314925827173697827450394990952642439138953463221306490799935143265267467085186265192092083578663992698079920416427315464461285559569406537994778186034852843915195824077240458426776871119620171135166072238775637563532705038928661972302257976062348838329180311746062827510361795424030408007764778500357198355099332949475595094060891259554703826808932193664563055031371177835313032605569245603047243457480337653057451294498257953566690463098637037803856878278469976649830355395527334197636759306168132615764417103697682610804761431673063357274001856929535947504432899752484155082171399895063273899136296710919610299138598401031695625249771615442196192328387227384269555744524516296778931766986023932193569113445486301674805668761207522213339752077296095765434664509924590190544097621297728796300468341702877646489998680577641634414081031994528807962532254504597448594579423265218675109462273433771260848221068256845808378897318724810138039592854699075951389188667153738297697422360817870866102578331246559550641384447155702627890097902579205217980684067903296374585523982342416977989900487230180223112881285503645356897838274906703882727019790167283813015469948026954895722601503715946693691327119406414343618103284200879868238257345529737977214377328068112744825511176615716066551439055852118105907858775673908707315522219721093063741688831596730152731691373451910069084370728242445982946260482495356222913848272309286048804841084877699839977865818145350318697393894952605189268226935222846023155246537798380985703786365101292615762254306076664202094087976137959101817852261793622262924767830551533762811796037923738459203152167997539845027381889685425679447316819867159239789422192063138530018837992044004666016320410337516901954309797555873929620661203239210984144191474596837215430280760656333470512388235555793030227304079208372958572969365535012717421295839384571740591235538346665027821402239938220997173937040888226888809803184536241245995462130717509950404185623925672822701439634009375112152222080336290678900153806124153019680177625453242131755071901140431692601682390042228368497020255962019574731188732181346532539374826423172995027768460231628854183322312654398589335974390179002447883284592917875405181883258852628475985302234642478372855292787169569341622927995052179770425808458447664075711732866143712564750110829947844201850282988272190497028950490245604805986509092293505806627350619271293758442323912458070172569655718457042988672979023120255161411646366226785744173946997427640711788702994419329583599842254082791812705057321840395448620702976834981333204552081979632735081021824175100718800703783513466684021477969448421894879775207567234088993981498607017731184723116987965522254430107947201108983002148079446323370388821915837103011939722551434576525272224222886287565840218284259260670698581636880988038520405796612421950146524172682952381115392986562438202376410018135444679137682215941913651646870308897981825814330466580502305848762615699658298081744631781036712345312355456510498362172908973275937790551047700080104801507916175795045381426916879090366273576488276593844727865307698901063588902576969681887720824186586593990836041554584900618526291857237081209592927186123354080753136578586806276268942933816389664870966890392646111757725872888185606230540752611507792961716999380257262840289444180773430753265919552477137687358526698244122885851979765850826322378164587677601545686987161114356177892167581856317361385958171189780625056553030125859307392544337574095524497542027661208515217817974533614413768400130322775053788462965819798939333398300766816865021481885122603076646702915895820522239287030669580806860074127150723896731610763771223755629369871550057095968361027270827115918095514738905339895044771168634967925859416804925464263149591130840663737191527921778567543203298780866860402802345273067108058118974087877298899755043219484740037392646204303088340753188194682155674978502139598831039301187963073857450727763433263970443060771725920639369661068094280889005408777497817481519851142210415460926067335832088799826528910615898559422497765318551219028901092635307221407328012738333094341033324103088950973972524484846086896896320633833966177511485594987786519365564746431176368483706168921359217753902480332424118227896175985102460681689803482581898288875150118109580113336899408189282203377834037681089785661732949897005446454652182115297766017704285280286781710573251629693036425547644334912825379083336706272688391430700716634755785178492068955442524291147034466248980209093307831937975438483777192682241206709311929070448574083432111925982500921072103269100810393594913219401554233276798672759783800816402553757994569294249531168353075243819646932957354534533101091271570880484823773030672145444997517922500949209014500350897017348580529941396670165921632845448697392530361583013363294135632353694351945160750568021583516263246015350512282005160283171869778707777785273533313800653903554708500311436035652693781597093451060345133116283539414105364798980063525899713207426595259041464286166189880010457649836720253092559310609397313042123416124315134823838262206330304262864334744716515837402445182640044342309368803150980486840807174140318622537859253650723692040252537126814874128154208765377103040308333466951518827233385630851128791988628460574869884926668397856562524826820552083397347732611669003273881420697185425485491723263729847902851343908548613430924927374748052835761607937984909639185325320890460465643479181996548949062002497642082819407111861007545495665035919932002640597009192675855919156007863116170984626064842740840067937584371175272935042322383639327177521375350681047619847661888726927599358836166205626264593712828229083820766098756628694861430261748303249165602838191728912441046475773764618545356482606061097150164360104086435586680886067049669016011862054822071639396946952872259606707544988596578660025742679139333438397397248557349407948877825538037100821545109590544808769014323713490380037287079209119971183609678280376265069038914082054034243181464519663436389379786110786231287434279291586099310683058481611082880810678076619116930782136414898884577986252595120438917114667237058980474146344840179240773174551366503660764795830557380105290744945573355602206561147204750519564549074161976221992693397435231311923897923604763804225207866719165986330007677851401709024746811017126903202072753940936077326295767276147877739808306171886311593001230250545217768923461576640441174820706074561117844946765564174204720092125019684114715742575009327815458926762069472063613727132646429706434331117443309466402695011224060705617771647209068487439446628201699960081968183422606296762916422029801864819849218959526457525515804306933535709687550417157529022699202227388857191037057439506242206782081807336939249502637534306049305109458606524183151466482274203319014530540261789711605755865140231553263903287610687311064234148904138546867350589314542228299405011066246875633727255352501411875375887739679882965647059855821454354313979365209819352274803255720036015745610972770862982463272911472756999506064642271632501137727163305282911708548313321112837623251935701470714898330999400170698656026290486176107947888791325482149375640626232277300062818477437706528084769185129509812749656510425954302256331468420785266586618360137316977459557846561829789316424213079049270421115427848758498444004910602696342485078287062789724756339645725653140054695555116594781627622726754577843525895461684917175543532852533111634149964342679116895846564168505771435282897349257662903985536263793988688398714975612845624925388273682687764277482640846862249628134425291464786010437668895155698184768280766299762127910188946045672543051897597026671151465643422488422203311162543156986499760343891894805812508401913174765195277504066093508135897899837127033819046714264084541749393338619327324715103778844472049266127107716882972515746739689882838861100781190721224009423415494398429831071128823507756924286488160482494328367439917355947264880737734745287119956131780358684498961502191718276140121380374087686970518274188448810060815318814176069770779037650627385819537474706964405890337822961394917351656817119022043371464226997897231110647774297430815465330014247486713452438173469540452743004644492827837351151528740579827072102711756123312476548641699117140782991987061631006829110587926742431176047122302627416382731261764763355986468683134649161163257613920307111541987470912334321052708194152226223988915352543342512878454565103436600757932672194581309977216527457058083092254104175990438036380558816850267875100401508101129206906292694695011686197039680630340933754351784382144509268614076136093244027584183664120145660331424186337358428111328406297108492032324315931233091799345603027232641064032679137119700215691039396441769417495343206971577393361161761927110461396157333333528082695621508153078004760908240909904545546534781804197172911115199778528052645530379510281824418555516097323623969194471313367427130195245517492576112886005624862378116783091085714721633226566518556204849738894877324627004711207089896096655848307681132806810288610984254224813643669033292745925177290861170438550131039136651924289222651155874019814487829915290080965038013772633706960633109559144550628088769610656868175839338435819783679378177826531653694494538061062097825858727551659421358089509805539819762654178769446901280981950631645473030911617240772834413324577189995027860631243177191370243127837717370300239063626316044501290347575032288516849757488811100037230149862204610183853989056991333019033762260231591789180108873290081594660018131532076663873306140712861655489320901936625241448282545413271609837317144428678506117617361902447710847673328436024729992801888863212013895338876648075745727288678343613131388514078750084275986464585355264551215232780864588136981834889599363104176763125335151827527258092957816106830567728357286165576829549240185731645495573178243704873634345716003310139458722991053174088771972667981938256549236742118390451968104604208997745845578632378649793066382372742190991596539869181710922066621203890300831297978646866922369774753331943383720766228215946736156710451815683836823821812724246847397949623223511414303484687734078013005481290630078326209632580187224610907140556627283955107057920578200118360960868088828149665117084927495136764584905617169525060064876332015194241871419582792938154807423876175209379023306694489732293222160109115873454068292827682163566536158818589800252239570847006264942124964156410515395545501722315835982631926263158108370902150544463056115349518414184813137751789332009559505493256476136543360926547181909155130428407138779643051186044631922481615777672424119883780855581287310024518027370699770451646153101972475621674335287284412134352671831438361355301783567063306667159607358892629488793344954375892029598095261539449892473796585653438254185514128121476154214469093828308631354983903458639024028322929209890215515988609423595709447703511147541517447604658450650549972653416772398622115062371662753264531323465954671452151296514751132748318013950437532732986980558343946921817851003756223105002312466623575737795483373828764029618106797493025522646881847580461317610746146426977305728614451388332225939086496490132311485138789170929233315837503956235607525482921338653166989975905790411457243173353414390777652862349586553287191308250637708876675043197112165835822654144596009771798789761225283718794429956929985584501587437226044404763246558085546742871033256943886978126659315818890274152964633034636003110104316866809574878153699026035825910500335267174227969084159938014684862811718853418601460325204806475900539141820349913611861625821483218322415276303417847645710945144665447592373527217231734341128399765148481046085741052066703500684487395445182752342259205856677272316843899387678300114084240981552282357155553077896760450407560263362237368783305802262512966573145044931640173946023129057883040979282952781836539235484065150023369061882834882945293878450807738318953761662880790009414388433801113262987480260122374495572279286240947365638645656728845631826710596718666043760507143923428767366882029984083353606568867098201414764049045305126262977258592682039947492564012650171041786347121695946962505046229839296401191164962127232893426607958967122090367380675523281647357914467086562557925839285442857578241451454768835384401285489772046412846975787546127571385296320002219553553557819360608617521429657626676700345730866709096252390640508112003978915128883707429763896169539660296877685942810483344271945493632814865533809814355673277251980298311210157449609607015718736255597391450435970690825100685305232212046533588663826200237873800982585831898683998806275973631778817194662351040405206759435312281487182481257257316175958090506707040201534931384832099427505119750730006855794391316340536900857908721090486943296274595777953705920871079917102462511352719675823959756201149960006399027286997850802661110898998145490436749402381951112187156097692453273213444127316133150170691243365426130290347595274361932105030809008827278473598274631895442584576847439584537878506370540482565174639918199279209751691135309889244033928345590243614718209082547836185698538452228579102637118045785904346161288975028066839653743668389224603723309383954573860742325007065710864722868554491728430046320238706646539506772581112466959166990360017165242441943936093435955730111750257965014151546957777005927887509323848638788529969370330097311106010978657440880962756592948844986127809874553818804974476584735229681862308472884289963150739616812618981774141543732774675926365668664375873432219198744908698965460601321645354506563738103854967203216227425922205489730041425123356976986673776216662463706680292379328570961915501280576720247266266055859889625844215112964520985511616727090074921753705303017819629609311628856045451779890515400907334128903750551118879038701022080088131908563113360146155928522354058598235518958886288407368973819807011765838852104299947170064448310268282724306563369174420111393207772320009555875385402908974372698778978957971090740514277728064493831993954701657355605872349046500871683760855471755610152802390557323081773098265727479166624689812877759020599684339435872489070736050610331570467116538269739688395739690211189282556022565099033813704854503897620635287821323683163263115713293488741465559966103293002462222916719800317702255667844991121496663109222635086958146554815903709861082812176932853139241176613125018806536810227511878956163702623127957984393157497966555303162499697965258552060280610683847764940048733120887770658576644973302739906203506190591146978229038294643359077682488898035046086768194497683624939342088915777372568021626792092503281588691672411780626010531221285533292293120334716002533693503385527326319862441963477611695499400184502120920408836039680696966379116109324104309734832549213446294475849315098652950755461993075248236029603908392674988404088656072881126004349431783041497252553496753333807655468140964518427676717054741056222074257301129437968933814690283508203072017369822862656092180709203511164260021995406291753212388928622637982920204014022789571591065456504259526270653333553701601037804119014739667053745238568484332077913430814061436478817033395497952164577536087414901248080081896210630887998059904849814555548523747580705290385376219801767705024688316200373220461601411731450185523713844659315005980375463346888237461602047937450318181149795801741508776318064493347925850183673487288165143670729760292617157580463835080384961223655330381514577808827743967905581456616571655410844291444648660138846503847770140051277517209386028657502279375753937046573512734585007124314827534120007154972584965784121978282281621137492623960292697520754463746117931266468475427967774856109506672583684499064601988106210787092693156508466806910845234192813136328385645467629102543616609995858427785520936826440342961661739234789865037898443458254925895436162836872946854192626504531383141665763727979003719965058396846061700294122361821432997293305672760149851612772295860657232849917331783717036520957417076349851671223442941093396305917235275873379705067799726957559159683165950712367985690491819637584681756949651825821379237689805621449723323798232542399580373072199309822077530288632271098208652813638870606974745121515756746575674346779595873417359348867184519797378548829370617409346601800844793755614707679109735500537781967122373956159703127171657550095279152269309237680189865306135796349833411917975193176454768954499685397193420071322397270786023039331962361522272695877583045361680292246407006498699882219702444339428676695404524869607382525142078489979314037030605294467354711810875992499622364627466810476721984247887117711319793588242945508963293242211024102368365159670490486572651123599240819826896929365355174743410522780378975316075907367191994913519249992093635978660236965898250204452593583671466479988986374712644280472734695400344879286143203675793590582777731716196711768969995392747928485544609554885761237865896560637909302182774763443431912133783171995291255157425012855541999949535799106035256661630920114257895815918320313788201452680743442378419080423506447283953639205111893054197053312866908391439132458557657149436271779034674191206070039855581261707507555226149873415221779263615628949092501447699109216022775741280916405088287910279509110942671254419971305415496705203475470827676645655700799049169529142569094594765672343843180465369924693983087439635312774253361373872621481317681372146900962692317630374561270721207592035682563641473566654268987976178046115862532451500502539255014844193218799494290831051828951853081864907982616535481110140926782338451478894116454078019158954780978685058479507328815953348047131076806150301942913213688755874981333668764975913540633171338172382658510238573868258133362991742445721957510759464453848343290159422003156736972973912956339980456964627778162076823697581599357201403929882681640810078871567632342552945014883113147409701303519160002281139994802321252163394581647727213534121693025585238387567606107401532302150480041477166387571313960803229118248886971828545176592844148648268244971893535353837567218966987586434503829989999286152642874463122481520217429357313599366889200619165907879740840244607606315632968687743111896625908067936747907981483237143590789722620730311307806397469099551698424567216270958515819891234018047989575515837532739075836548555340905729631567089260677256079548053738540011452241841037893130998303590032169207166838933823613696883537743342542536511009459676560964510276910134855703778333054315409104194568645457176223475335882071339530574600921634851020747332642117286992035211449922679587403479408090578013740635067168651049759155867958142439305741576310707878055781181016632618965742346357781872988305372821960129062175567864178033032338282826090360298710754032730445955258805767589122315106003695731892474599877261757333510279231693472353855007651169652927846847225913015648359381118919482912115030749715846384557629958035313846990146830682355763563293925022227331647185425867918783826241325516114687999458165709188159029541747728809120260811623754089349222749436154166103373265226721437801610928712115539116889134392588406525387153774589718912311130247950466555199128963373441955088963645479649332198733160156817863099134365695326209092496666157706339554088489850178885398985897376347456783147479760551993184815048028083207564954991590196562560340426072899814803041136846471726205165052271937898824687890706447743971219562650610658176719043559213665782008812064199284422093262030510781615176137903207827711559515312223188778706556266827285731188887892048189450496448111895243916897280618623019372179859333801645431604709613556360234371613616111684062068716525616970963952258374507570803763144600144229310449127784787384498966772509403403143339117044100709804339195936639792102562139029492408335592207641952919362077771661884052147258662004721607714188658661301767188594980955547329538195234549118923608696344684548005595841011361494675089623887156606824414440042488207579338645532181860971080268449165292503378551984362379946488883064791641874612231883701032358969111925259484629348464007018270934852479626549389296840560797005465168182742795059526602553426608796062119924224145985185344761426007843955733842826321034600399083130118949760172156376601934344466413194055898739382250634375483256999008892710827878730946069237699666213766365027349979895885007248507016069374189358442933730496013883740149944769641060178636039774552874851604116525814088504408099788837644301749881209659888900235774179092070721780275056867195984784209446493263365767437624050162852653915145641326191985804720905771961735773181961546281599604137136376049126450887698527065808126788021151110728013198812561794101923741440655412013076229037227457790349805444956000243177032534078432266920769846274321092536584514009264349703787901273679183084801175480537892343864316510390135494807544289849045745332152901521117715382964653269652976079744647199577403244784702830961583227914774098831870068003241897990660231095041274715958252027413314444671436106741184467230940449131547261486194921096778261806455010961632517935732430982414411165396762251771147353896035054956645461319257969931214098653315282854741219949677810803750985162153447159155725458318033580502566216566630738088922035989371580157157632625120702884565664735553457312419175834463251121962371602107695146661119267622525958068773157344830763431884163171423433867053461939873944322279129678316976752492438222939013378634119391307587217818989028212216979091681726317364867949778568525944031613086034203626658246787885122578941732767441817689932833033601253855841341585768432999186047569529650457930391700068781488875605167994165217453454643053477916354082645451610529716999147360839250352164961149687563375520031801213250228854934034440644739967426767078565762239680377289726863201424927385636419443128135668336209367442516511063209486168145573641536531497158402496176368068313954278840391201875576964292507923483680461130269961877304361669775888521413975846025360671075385256537102870145296435290573826866632053584863530797347892696190446407651422753186188828984856134320643066121138369050922683835555527508248301176212982542838175220122011973057419736596130630160299372141664375233605886254288697354457634583319593379762095412640833850089589908420517146790738392980095773980347519954604513498068850251668549721415717875270831736145008225490794116771829390108419783940567209311889876141968448950072850912977052499207180430894312216972457704703004784645901312183531323308289488577383256566385844735809362370652218301473208385975295042563126078981943568669269428868981368415300745309607431564466288655316149377826310344072456008771972571499561204886643786417176506954616496655974960836797778892949239512800487255557042157689186686282211682449837978403739337753321343120654176462164352270394445244109968171380875787846024595155139918323733431354968290570997797841762441787841409551746353962244752679059510682712786523013189115634133617328748561476953857802302529573843691554484185866689614251831949704117092668708503904452173584222042305184680306485869592087474205138152448848269118752494309999900023786872504872862510763085094325826854225012560271230717038456273433813334804998922560850223287488590294238297966367322170806461546296138604020658086585547129037560828197764555559345839408632202255412051290687623379486040647292207813674272945577028525642999073889181124189773428808187915722427558792300089003563893948973312416429123536507464418238917855019002255901943111820596894715590091487284590174798295889408651824534241397760707629450733711528162967573622062274387714473991693114475513114782603116188087630892074804314287318758567281476614941499734555999508447686809108584208020426708968437499178825156840244856257084436409437106331822917308404687493913972283676927797279813352861281797808453948058478099684411888664083096402665926556468401011275115156463609916596283185995561511155720734737169095308905613640692970148539322777849857467998283800654144135603518974840989386148148004631606529434232828758375982767058973896634801943970928079253504605540941637550733774192058862789234763266395210868720585559471533750198851010799301955622817775047391710202054568175411147084191402388442185732510629880586957988263082639316578767286756069995784844890878287360223672272152444139377386320337195975269298671448817855593260658700984724324273922881805449387567069179081967163151455729544474420970551696012913243382797483681119980580845644508556548131873406081836391853234595948773915747739435862668554349239101669768540962724091742886115532383408697060959237811471988060970289155083284258520058765054496662193575024611120167616707927211075779381065602452245708319185983087139962135663172039434749820238192389667164293161550305359570252403773744111881091264347285419828278950301664706228483677749659629847170802030456880080391485130093477284089372295362996737018670363922111234848113269887440210929791144288944578148923674364363851474386754827062682316447597537174142055510234510666308993956356396620149987108860202295069907428554012334014646926952565967359478256668839677234664830735776853966230234674761302139470740874262024121875417386382593627644377543199405860938418769044056132803209164725580545542321682300558115662882038653292298825718576610857039617133616488460059621315433234547641398928405644737219814384203349165943639157137062398255990914994195304922072846759633901326032442149807950017238944410429713061478821844413348229055490544255170208696537364575984471957925092485754078947975459817840129770720020092774055047756917452665517641361192532935024682837174956056641071373921089171990804905986741401577071394952060745895350583409231351637382586238505327090378319456034682580092770196333410081439678944924985943301381255249846323338433975978960463059127771017765637881659753650516035041647070414166748673663459736588391415237061236075952669789455774077373326594073283671522454535367394200089735381169142172368056933447807002166992452814843134263057068376357425038779426698429086485310226120993502414625749581096422635623972818018393892958980749965407046765917524509891174331696427199802656297883774557986451567090302392827427939489938749973581227143467602735856314261869648110263936790227069806660057099676369930528487989099091169010471451913015725115472768339589707942400144318002834151518504937630008873401191862643364332811635276279447990386861512463125793474770081087824656490293868781247766468967138419377114636684406322052581589488044612859934739343612389490964474088125512787217247045668247136027727919103138060847462845861832273845692901915532204658412222702586880991878762552156371775050992687833629512046911070207864988722640854684927204567887798027593038593776821964709356037885663281242023110135845661573429622467915842673257284895181057087672754534132114813117496109284822319587450774416041485579166069058115025187024084925820197787340515773433183563824396963766919388138645630544009684829765705489732522260484906167408872025298213650633117068644798887285065349499671646587473212997015112038900385463747102027000961524764608215331025245859699969728637726367457507505870830704646932027247051726137926332560691126839463896337682519393950489302353749357139060518097873332152424116947027281695901991753101285097226692484718635753213481390270478999660837266486394000630018280966684972053977073161461691713552280802353242968656470870094779647993984036301674693679607173859433801092140839461229782965117820520083354749431947048962201177679436822148277972480447992056746989384464904747526954728968251378732622176794123538854830102782047980607137713474905095881149615980865090100488060447052501745430996486715774348634066078765862200604713130768022104792170982906455935498712606903211783529777837049564408466685413093214744205932473018313455541430252763743659350274477661836019900462637437344034687434913906368694264074835712637518366501826143075243148084420273411292662228686754300775865348603313112847375939371221494136787275333556010934422989253103415891776551204880528355409365035965938902584349462683051342731798831471633690353727517906907802805755351950051654284969062273417069114665085885351033244674475153386020950245378356555568301451765600813141549971659971828477690006085290364762272768125568845107024398338354963364124397727013849869587817232765000581260554819017323003864351122229077169959971762913598091228637744899398504964929471876915243680844917936063391253444733036355101691792275889750777112317445280451642895226951731013691713447855748268376540200469944432463609049944532970189616321431508619802511176862050411010151405746927487267877668521012379103988380696001096362854959204936738903645901888183626493993463826631473562575630133800892479093794601037318696610648006634966471519780882517861076606998127278887717141278284544698593583718948535363799388502818116893977274596318526835955373725693590779415793966472890030006558672765498366850797957296309290478791503803807878782177746202537958596284582416073816142536693533866202019891386730506981129967934035461757364954661240549351616622670825997149883095561065227792658535509026175207251671862247167204157103814208322948362615872834996936829653507129818125167678730728263882047842894139599202736482579242534455136529431355762819891979828903519483331928317092635716793328109598591996019870616753107332837314100162289834188094386793523628554393299666879131888640737765304535729063338012763768406290943178111518801888633679610342483524645687445329921129604193903086228942258411597732358945252883277633428090551897842016834427675115656636282601783236577310475513085459448076776427313400591529616871292032274404192560001165044868686531615445242629016777226232924709154590009143348456616291368855433411312700576726248249366331559049631842253982379672606998144691506651130494270026906515342928600808276445179328667731539741540596372453173286361899192019394947617322985640389003254058366493784484130639688312697056209263197572694829351191254132472597215913137750919490495523092887187520408086830350441950039368409180309043484488031505185202818786151735076063111816670279667795039037889689645255238365661197157406164481124738967571195611706287647314133836855918115627077655012479786262851081487598258858201915210730863728664190722877656086856933193353362255599883059800653263293520145248745589623216553044551264768868852137781230283610056215404925633230878701811891251227297069017935603983008584807400280867347365746113141565205784935243581728679525275439439154230495985587388522565123071336097815953065266701990313896883214869714554584838672299761011853224938324799177870471533104270341745775423704922534565424131378243489514825626193913645274918701825738167963032370767372503596293087637911124849073023125679102217831652908012752404844640218262630088246550671919072861407822103371008309449224969375913003839998598739408312024745663792220964503152990830683543921671858270006727588240587006353113169997811542583826348447112454086372903765842242580315423489521288417186294644851119483036694721335740194028334226656409544880404693297769758750904745369040100750670425761095985647134498032853664213731591030919746233111315142145211231855030779103945034935432067854288393995930980275945670254668367712743715253407103813874720597806862521690615016594060538875537330538584345679077468590328600695142668351823740326873849001354806658195044151305762902235096687595420812953702596371499472962524378014235637565081047698360680520274931652419139510556303942071769795227002589332541363807724555827370109739276253353663843977512572755399099130761952863741511957912162024867435126556216472084590382432862142322820511847433825522134698212224992885711253033505611953181854710856000520106397660940607086631745225500500156208938445538508973934216553842358745222414976721693690804450736985613791634490669858951906232512728900159369827171454758019820530640138490086704711093860910907394124869918672138443865114167008030891182958633460949853696131165284599746685547653110711587125472740130108896095872268839033264335925393614351485678856060024464236173930482846247073978254234418952691343450508492883064358829417042417729734991826880204479817422786124388915160559130374774917503623374178164635686125471661604328206883230465289160947770127978415391511608665439683966505509757160789108312458633484999189398765523400949676105655323457359194592457979722835409306888499065183094895492548880224000188960101055149979818373999023165034235633674454453710992232041164606174185947657619080414976106493787953796850381578564277205581840703522715467059696371238137880840281531874769564319283923656877485717898349393231978467187509241000481226984552503973878561683612686904410621472198288121594201692314678018301850820162736334119139173268875480533594539112194262764634442197431535970777201370438553095047349434918931715441275482766119139454300150319389363156094968644013330251543846539513475216804511355131316323085485797185105667070129041038737368269121149705077494413431427563874549229591320228858535908530815578621012948999170276177666547275371544946802043875426101204994558883028346668776494672065421597833328591106830504182545553058778877395104025542621690348735821987901133064678000934285631625451517602247906209758509820578883859811453761959136640246288126132419023670745759198970122004928928945450208369480562497282052950689160376201401227486886782820432795934689053470886292793760585929572670724915580302336365209077520867527412898419050121466167439653695521858951883419670428288461100152071483590321425925996356814370576995345740438081383073983913730457036558177787316921086201198086778529091297121073830559836714317546357970700719758656014487451341052703151147722851933003353604713592727395389150953061417828167095186202097998579791278121857280091012012221846080814870554776373717184792727948900079653127189343879696326641536063000172348334590241224425660961443868065635195607025135889337438054949744967613760174088183576449652728099499301133547374351780235371803734763232153257025576822928735682530896381877986146337820813565446811841894012889322739883611403582963493604809895478969855700971123694473744833851086311322111336946821165884506512889223354847494906548891325969452803786510722708719400171953947716279265359644684727188567995963789532198925590968913029430627090062808804795701958211362533845781515903197830529238201340720630074502223355456151163603895116475849089214070512298393502817460551179191236498750362906053332026141483191033023962986024739961234196557677618807978146962909932363151854604037589098275924317294308427476605565452038470150502430963271733816574333563727216413710040538878666163311565896540899203782530615313141329633402027620863672917848491315636761203462147333138743068601184045427193398630017936248488880247604898425732428200150647776596270281070617889835914663735234023679041376292049501732699630464925855581550726875425427010793994213728177396491680504163694940820841544383929202527627374547788591334781408016537174686125046476264119372773647389701238571716096385982466550332951024130990926649640137611586140199309357907001892224538187890125366352997424510052326972413640052073255668830080918013140862794023872174116790880033374296889007218079448232704847457149612360924374036499176081231032750482955150535641614252616445232014379316641639938181531303271361555499102516022303477923711122033531334601090226217034102999018605203701128543222022921721607873586872023333276844924147572246752485106676018701634294174670241008931137632928039731367612715185572043074663168354527578832552307219215086078878789008497133906090586000695936755699136600828483826971346276710564336909446072057047650778460927788936361909873768347143944799232626479109443100161712190083839737355223041310117138643481185887815978152757293639375189678963189889768456622501724911686751328693257381305162512332855128811239040238665262365644615301880176047543984323966292396715682992608858240723940053531491648998867485432463502662313985940550214784404114270883071780873379337740374590566004012049058226027922394148984612105343766257044935607723745774261140994101577235755185680068262075578906840335738087640083643618023541214516457226194498794080553076751317850837528438298734801734742668841026311529141137661267958037539747262133152269103667191557727708070431338515249313521132934362192606425609338629734795997687415317929873710723439715372093793945066880033438181762448081837348403935998220007746789174270705528505632189218089642424409101661893954843832615977434498903339629214560675927943576386730324235419968413846720121376307067113838880686998173077858468297964485956491262384693436966057158582567977490606610308824635998123133754459082959271295460322372675945741107368077919053862331485808208922920400805116774586447327110052249668478087948693837394657090388286793422145345122953770904641611478108528762116139667300002655829914665316729183100690077091034092622678088641196500308136702860980185176353192171272800221145536420617788751738457413217367739348413186998152680732219976566915474515258388209845942050102838569930943099664415659495386085159358747798161022756865783897308632994686760137892456722505186625022097254056055841434671837899310651013924015060878763137800437066348351233096064260270685745113947104413665335386077003857562021143980999159342756489443994041359220902731561991171618200926367993129697206164763229130856830164566618435911082308354858917402875763742772253412261831755635487572637010378802930848354307220346349845246481857264938249332379208268786581003001948218736834899436586323923040863820166208004328428035674066297471462217136466715206659385527710357117514787314077856885960383187510077776305751190270831393593986038038322787622138786780726861297466321407531314133280241602840391674724222981932644528124846082785504894195710722655891451147545560511585325097789246194266886349571520837608307965968472526107830720227538886706765394215097557643608812873228367973696986884259000493847754354003988976506189198384257844026593527527097515766287744211240198192882583122939083957489271117920590403150995300651293403909183128921824829036640659194866491484896229347767722721297648436516347459159441611266938670493856805580746267292354409021269764910513901251939710243784661104397619261734951448500445027206568059018241048670480701689401720202771819585258965834113871476974730676616216568084908926361144552618712982703669509463098125568753292978540766159284860041212854263639165485895577539718983329029855068033435081745452991015288313020947838657006360526811385515564536564386994360640915784328800038704283484286755872558738303123340355262946808674792083919735821145232763982791274372369777372390334005615971489900540572612980970188022729513186447183138432237982491620090132339607161731848303351063016511816195187800519248623066684279465267069093464746770983036241761112112174536010470013847011705411258819638329315727747499507120857156815256324810737734935432671767708820577596067354477678215678410223915052415508272192966269340861998818092817993185707388041138704059271551950443317073723045107148969225054550974732784141854194888464080259719476713769515768318870797705440135920562540204377335600961024810673636571472131760544135264738768771909316917365035496425838234049577587151507177392270994670607618103067206716756588319028287811662156782477236910263651900917618872016873590801650279477844110054514087076881333538436332934135651476353182623443784510602847882231259757575715079867694194995295687412389109644864096007951792012485140665440214710738227987723475884006111533484945847587049272198584097117848751707288086808651674589289868980437308813114113869548831768205921820195502588844349076752821596070284576185600685128252730406968660280688664675111232755473862662781728824015009769063463535775800687645093376186878028044563904239352386826068701396409969714367521652577777526104669529334947653948961742256060435080862606061066983582733239815021387248047480334284317920978867572587178316981789478208595086827295890973971794598777802956622903884136473102653578016814003010372678692028331259645325609474984096787060441790014660455313295485839701582359114703129213582453290765403696427781279653236670906976174790214897693799482360538054907014978777235504515925132214281000633850509788190733110427046476462405542960169364033324921990543662210354894561061244133847443495811508217088076033125820914529924137865493065740562918231161820816234697445425743329853501115544657976301607832996143179200271175536543364129978905045986251591637244699511000885921265160806669474295028213869806916792288257510724675670411218421887016533496085447080873669670356628634132529230641815260961199195662933204454658893786872117888360581683720878436837857891790201655586168129505762885066656788545242752187940991853062885373381239896079948209381621669033632711100028937742346824184295235218870619198243520320747249493617654147867601330386036284474347437667898716822504446691128179362564003828717979457821865903952282645739099960115045512330415701480422112511565952566948952879386092911630500367626209128635366848215676855838627947080630807821827282364826497995179122985513622385304859379871300984394820471043540995340821972269681706449838744619319307287763463286203179171588484647264770558752547789131753748411886788909155299502595187860083229864073270124164103859068453980994067772058453023527826013657035108466234174507663330361759383583944777945552574508105800651433926172948841511719733221426607907272605257312801168178773089506022622445912921488878936307037168991434511833994856219159148265441197837561012183432633108860435329782030968798332374511776475172112209763269438144434886137925033930428728421536840882863639894844468421093569755119706772298329697344866039402047445257025435185660845922880202382171507192901007851729467917786875917688137954658333607809353752811695573016408948019207673863117910486103419181155376139988796224491750130146183903087039629043751566881982873283472615731632548742529743353992606893645858198347483056210812228993059232345906248543544047354400301701264237502479498061296963075411315102924843136443845226251231061442866106632568645754954112568115519547331046657809152267811001661483807359658247677407147504713026189369072358843806530593851860560534617932465870532817168207210687819763360584010912434438301846171079007847057118048597318688357061797604222574340248688502013820826090312631834423299617415920357706791869335074769377949012397786474991856055209735151515223914760315690014299386260411058465658298158444298313348036408776678885330164639459781496016814423582052340395166780978978749353870215986141177222440041461234841164743824867211150917662246265053374555092781668729061813089622568946329197347845067576211287371054563679686722134212590628655153997471794966216556933900439966743303607587573518287645999831223576120677148477125461934083176110881126566028118133328765071922211527581480646697681166055103046097032963693456481045450015125234261494532907879198782886929451011154443543753666049934305274517272985519555418370388306438023388213076215136896370819425800260135953517164349694273233812250951494265359768817912003467523662859948516136499829546721431615540739993283951487953790584646160196209218507067809639576801127393187222078797048876956522410274353186640375416525767619100693471029596506079769631089352176118180106293245015810490374116632545332407980305968639803052395037270586471813335418273028098054669170049091872057758020780913825134575953526379391632197569496460509999592605691433669714268723231292707482549511769374498764263764690585633853637526258381159585600469385247198945216483653898339973657744048519943945341869571696192547706932264811445100724976359632323774337263779190791412676043150505054131274721317777818771328518429142368333951452236052108518382499498596015276325227620302519595707043700217102374196127245439368047965720377944379311279668904139099760970772256319263821234720690106877981243457233982026482992563666001241768065765726181148579607357272277915258520869780466960922611993429115348308552865490856302062684592424626081545141120751851157811268948329328597963069934280320985109448688380871321420052245656968557373170161041101081839967265826830047547945227955635079894512590616241435125028590665914260145882706800546405848039043025286125998066258844905581169488349953226694772436206752665744560359260460887739245343231679646175308692443708071418328957957154740429351752736292053935478154277425815216763934087735579276133845028101516814578208340681281288666317423716735731438196305632541034729437813296721671789698833998318863734766093978900145393007320309216853700568095222871471683255087005508320822766087727354407157965682186190327386759002439142715254540273611225114567875632133873247073329485373300203140734618743256711817518807862750676699093354072544574606597405228462094813699521467323650836873571311006306971014398133562000490202639104079352065464335043462290116575151211598760685147555439897397591092191791055276729818492140763125869688573734138514849000493537958119877852574720525974301932189765994039910363100221378574246647968704807474454706667151474152047239161940930254690352032254205972975968573154546150234943546154415155743479608389080276853568570223719854056058160777502530091229612962892951684255220914615430451941650343013422905014081043154263621217508616006190501476718189809582701439893504276456755995833417932075715963379977107858617161322894348613146765557935475967588379654750326368810212466883162569796756549065683897063383600143042780910442833519117060916262561668988820243569961677966164939888638579345951618661819975230230224446716233254717819337663945378534107415631870172748063417816866531628670978232429348830165253033852611402917138435227310080345559030612677960091903541483026521768696014927571083475621747004803686978665959989799556741027840737580932156099493645425047152000394422543362328482716431264616265181311428397022571757067700780847442820003481682126719030412873807418084130488226608611011730546833952402709576790695213690670405084658728642072665273630394670253340360748469635931163698246564181757857458255525382261283480922299823102728593825695761698135558844676523963274499312738692864622251716229823064371019608878972514399351836534641430580176277176031217051031259632935400127650769310577478967068910328993431108421382965324150491268704743304468297262493373993543332169049392506058221919238420189162958019754971883931129229110915279861318229106791011364490403713532742728755899404297938355473578121550627444444937641707660262701162801009291734743186664586560342369165337899579098871019768417903950826171185725635083624248843926562676811038405094962250330389323703179896102030276508814555217051871749403804472876124036662131218948187196933300648634029130391667613450047913719604079400155686269050846590722430263008939816338080641446705143341413766591434557521083502162115601951651568151566206762068068310112989462132528676562427589435275131459743855955106915250284054912081149339443107722185730071163580440449055722695352474687419401481826250022319706448189502868615437966390211084115496688896010701565407869778053935504442706464945469568230364284806092148872452815189343526430821219428140034456059854672639893034198849540170644347090367683169926496207492236559006621747868534855988042638594568196140545372710069333363925900488717149809962715321008235456897608955352892394196777092247689390262078574762261671646035306908873331982751447353255047146857992355590098029565374353863334422532565766585288704254121340162942757997554339550695541171444455491634151413049106736166273165080538128905883028775507161844132286347745839603301998490591972229798420617989834253617474492428709793561729214281769116453848785367997745725775583123045662553750774565010796508535478587871014397617811244888151413340951167208944426967502748668647498157757259013164143150301601885699645765384631882105761875587682538189655575584458113255260567959653542737246452374029599499794051755260473519877034781540134880067244783830952841367996937607300595875090730972790655182518398789978734324509967521850716345278204585220733074908022681432714502293144411441206694315044143108064732715394270412382367297586846139309817078574067826511991145415445205327708608448325811388809861266858734568682201875295989241443216965055909454214758106827618494266080332006014399890484903633529888256265015765711870032514744716478792610296194344831925296921751095426100337031967097296583476295862150925157776102011559036822989283580488471410122388734645294819743108414810918410519699746116744202413390799278585206102598903725732449217652328525092863512200647985016205319791196519283691939205174844992164860689722814720325638374249724163730442244618486000298495494514152606081893220506274663636549262629492772153733206013275889780665913170335671061903809682757059056441057585416527130581871222312045311505358542892455723131400269476927691328826121546230269583784362924045085414699804983768365462914840184607863669984916015469351389577016528574001144704728698753052664341650560980147983333556057026335619977016816461113373613779306851122180916017639036404823320325100684405184874102848491513412030776859958991471126266235642112667110615098413736985813848804757604956624525382911483839326044217772640345710593142595349915938429214641317465585090462266784451431140919419782499535126184945970676915756652085685105009031880717830419775752878361888187502725711668623988700257900235765865729280796913151049131899401945790121696397735265594631501537989621366806022785473129830122017623254919544590061265823354125844740671631717550893645704858772249841040895567565787264459359251435184490627286250894093355688923893420830373521956548336184243267922700040718123028890350778713216295558113623614690676696149030669522293632940538837907076677196843122435173638418612217283272273691575295220648366007924051529717766949259745322125536436579423960957825175328173879337079454319983604989069207622334557089808330853609371502201307006656845477158452118354769479749988597543160636497240948454452186440505875548960309059629701488580876699830192972595468536364351019566306607611549853278192832673080001995880118698101941505512293742721451186846287802623238268974728455731680619389361541084101636345539760178186502949105648006823326060768839644183974620448082102360719842001650688202439092495455347121017053743938170206784342160992841816366704076427021602480741000364665421852450813146664009340445492366772914596094060530996629618898214947726543931603403094692925403992069412048601666037345371520185894611842479137087270917065590964610910420473416484844529020216990800562731188539687184405345539972292291686033554326284026859258727906288914521916001909732376889239364129242643248666207740711692548524448337276904339473076169863716138538762871146434994815027740919523699165502065626719130535687622682880400349449658628813414486132944633771444860880551527763953217635722756327512419048879532854906344902187675095204121250957855779709749600979453764481877997463450063567335129562381785730437635081303949822805521312609019288323496260621421217608848785626137917086142387349954939739062783839929199186375358758623583641292541638853879147717643771903323385642866503404751463950625525135405897920035834476677243326182299319301308139368185794521653862499065524024667749411578365441988943997176364264988744698633962594892624698066030098651169450240115775260349141577328851366915539200703770558506971580431240911366752497426892701133571328479550228517700833450859240243490669458661352868290109970053686930946384495917565246018801397790365635154723317088155111581984933948258873395040331308266544995460518677547284391859530937552762235366581970379285082914624970657303473159795687127065275454363563619948467540915152674333485006584878271192609854206100862768668480328754501853793274880295835223377075419286924514750995915203720223632625174339644612379095075919500707438394863326381463080483853378802206674781177514061951393035509591515747149712256208167439104056789834447832006831032239894219147058618048683935736064364319663733532944209406575648594115661280343747805731454257698440711407452706168216011130302114538694299931426306776850951056026793479337172126878210812499971396065696970355859442366609029814387838620927884444742930005003775480104616725540728237846816294903062226580461317163370600512297197875263850601881027355113610710053981485834389085119652233917768227330106599468158033089538502370521250237593711297190865381226726354367716420422304451439032706028500890118557865161783884773261747542740762902632344803859195181970147628806846203866934248148839242819645395670541600423489978140365579178196811983583760569078513795042946260977358716161651808141890142223701643307681432642894905210756421326713328923439179532474407571409924940060989727956267554415767670469551590595772230585977415930235384516952582681063232670586304042943454477616299200898629486251214678447181002187260448023933575616314887408391052593448468525687581051503083642601667753419172982571012470288275671969951377132067451232617926519151133529329488496298634010976246673195109402027071331081247207551565497851538018144102169044530094236554878665654978055718396137201746807069180309681729834007879834541409998315955061097363494290711008349023896179326648392561139925605326060099747368972797756871318889381903843185702425711212472641845184835117956979570123986987549444030866739953560346098314431264188688040809661042143449591754052199708684081077119050939557059347569461446568783471709531896151017516548924370955003679982062318393999325032457148862393070342642140903444875927611235906107549629821523946621968048683748633748109097890045004126542954738652247658161627700238731026785474765396833200156891435895830199277566621783805049075191166162416285319324460417822230058722394004264995462334192460522543704770312448778623362409511109283986757118990286662181001579663991279680507279712244733703528703017891109475987462882951795919642512559303156808704644616815430184803150159551533652640588331528190937195378203274270030834185453018189872322715830781031050661058595371436686886539476524215669965853909696180871060998915331909203798475985797235955918154924088534119321659951508431917507714784757401784941843218722178854380847587681547536563632966074275102181208773597510210090575662363175869984667144480281608371906500391615384436155848763418161221724652749078241081260089241412955885782871593765254081708844576024787969386734879556557819801341928342886920268602987979627760345481360059643423689050583531758301566485649120667207249344765775038704200149003994572664268415198384780789834763853148435348939523471592030342915897551158766084213795189445235461191675403147777251419363088871768729181669288190136915429632722826963324586821348697878156961808842148624387635877730818829440128219266234561768839768175286259820620069637228139873948300568775483737509572160246414373917493912145295654508900886736103820929732637320397006114140011059341390402824636109252085664654936130526899212401826883091816848769395757484718471341454507886452608928966812922510060536664817315295722377254241317035453537131669629514488316383733938965301437130700347684425387345051454966874621348596260188544504948252277668930809090351801282603583100123891090986367436782932544205542648033971911807632263681269465064860170641800279461997070448756127354516801083932927684516544801013724154895256088861080662095775822396794610127691089214664354870638957529530794904941076399668089442328150459503201522154203657879836144658101003967876723063684876502569935189916326526802113742567691793229335406149010420593638661760341512303260688887342210782419096743483497853889047720605864048653741576484522247244560784019507126264754707649771357026817714558555998390586812375630820433480320183434226274429016538218022187219098556158663400031876201544437383280988265293097266595953602108246171676585587018969489927674918045039276193185274412141345768274087902075033375113325499465400119470362992309553436385929074528026118222117065728196253325458316714995831132075027101714455522904143681601527192501679576105070488484705847362256160639174038652051153209337045485261482665432976825739654140532663757329670554441106695963681940930191927178668760197514216213805803763650457872489863957218629566224336424115527227908337519066234376954581491745065740822433277734189480123592205492892192252210004797074868989271286332279048855972420096523980790154644859061930204973445526692416456180501653940629808616543423789118551263699435474496772820398461161558548516999878751867391182364143300606068118184054961784223866057211912601834078977809070054356059479889137966851071455364026732241083385838438341359301050786606613765674994704513878415921512514831275467517356278197805552755538862386141829596743249784664040547035224101822413907630653353829987882662666471225381974763918979829199383616844331747767404872177457669089702832459369294185535739690752532678820732044460422060043484517094827045014598491470321853929041395695400167493972720532594261153588268783415162998792493329361817839712905627422923444760637497219584779850031328572646190111878374191174109574026775643828614322939073550749480800329557841547549801220451618967886346291760307915000922258663630970716121380458365490753169744709474087694828473257015144290852515674989872761718823141368429635919468197019783615080200526455309331810068335126379627227327664600049367807555010162471935290662391877210268061310155850874004095805632675552387637631305846813944890692220722285351028630325502713969464750297081285699358664503891660224522434498328247382343141320406953866558883326999139953155154617730633309326344519857970205695800132113072895390204968458018706489764695148452726683661011563289710877473034712048390627138230181212975419378574068426718070287104274214732319435321711491078544809793499683217427614797532505855564880541140168240648373974715915305392233296444689771975538188869863336297765702713232454202371158026216186913366729876390996691009085530710192487780943965601928185526047638570390879248068538266768728868969570361386592325800878428143657439007919079844645485201826597114661400680746753453986067220608766885304281889219474856457339064761654289168548433384824622042894471742660321414363026980835115783212697885535214461915045159211852466337509785624383340047004052314811638311440440415142063888196792948935506737341328358057586758106101362422610001888360320473786138627138057526901827002145123917183774883634561220128587671500708181191401312777038930306148750579902552631812430218519370377208539860113857673064530308373427248520316073973029119600067779264217650503358620596295884276496298936861481979304466400052735307874310647046241423254282597685275245348568084626572150955041925309907783859189683436548769192272444289746192794017897317771140757593768709894635271848624983977740448349711837735758065808847563227402803555547167274341057650925979916241711575476999589944580068182498978030535172587091314454445883511932351406478521175788380071784319660874841394248423816946875840468849360709227857711851769488842835514195189404923844025804631531949297209967644854508711031038326489513307368381371193730265999638320546716032240132064341700186287551471285702594787539094147726041486619954758081688021315111006361676558682680865742736350011003022323811152538064234703573083907108404450046438703849738188453798917055832957006206583336579350720486318440735820923715861815535551192307924065319244832565822885409000318122960292008217106961953226060715572606854881192642981258396646973589025782069489528083292278506466865596578778624283306359318239526273904946634986626974865064716522153546275213461807074503400391413932171180564764308367617075874024221958186985865561013305940768035618583938983172831223904476913870491795080874976822509575605483904016109134616395619225497087108953647338151252292881219967725302204209454455145831693794623243197142963630587595947061106676944528375878931892753945652573810741027557279417641905179179941734746398675911255286844902891373691360920004255196482557345592180598268259546893018849258375927105140543565910976168885728967746672051808623130733617815442304993612370704098511378542968490242856037138864898127357821089436947602459469353919922345100454339038393802348819182876009753839248972942363657611103539830615391176686486721231738575984412622757597623013317257796367640922397567016093192993912219268329008839524238252094021690095906343522264426328437622730195117567880718297745881444616294368534898236394132979482268918517716717598616748499284502637955598864338165231919378094591197072045367170404539499376309010877863333475810160456582338718026327849412589192856095435450946331922066211253769777331375753691253141839078467893849314241832827167547347990492377975327160815219498840440859644798569571513169071046307509305057249261305709925905160858470596107665857048412054102688952165876250613777264625278791734467227993823404192951355887211475657771579401617531065458996913419954733965348863564600425299071723725158369592839943080631169054134281770521428380004538961059688367280658344513834377346620608446873038893962051981993457106435052140164482369981581650898111208862636518948018294801333022229703519597723462513258786260150268230497110592664493271045526493482082795982947081020522243296705077964949175826709350789619416126219671544569659579084180256067140058930902769212842956358833662605838544668165603332444010996319758718173332885492811951101218950222066994163862183440300694692253834822690631040079708636706145444233449813507001900257587925586432637020705176682617238721995075925776370788379322583456003427909807842480550054190212723707096572732883791115879993452848193478717010476741298292079133007123790474853388924938247682804914878574874566268979924250874221513143508676959811042120408324548953155045638903805646172034244864602107805005042282216025704895926770262766514046876604688008132872294466571404388469636728998824233525308296928852527294350248303895827848282171801847281632997105684752785117554543264649912461992343854333738518712799709577088644876375556998748551467468163952904979633362340877636349730376616507240739739472814243555443138727638404542427228063512495839608556986079824646039154202537599694485599468640529500050811000607164214396220773389933679503621150928555097797734443469508976224873971947791978534372001754347378740797657803707246990521370954955878344964280467590933824296466404101704470335785004166192356351765476299065361338363672381449594368099365398351037387594081568165614914430320966215943700236887476263072725157270868771472272415159852016878390658899098575182456489234109845872543066727482269793816073117547078482406349795019472880552256522438411860128981329871588724762657855772245320310814245953553400897901039930069934606393557028241864123177963384846758525556152778099358719913207184117205731160543679721427664274869747491313549715426294682996058794294287547836537384259601325029982751461723707384125224685583446290688066006726977102661182377862996101017814331832260172375501735352029056103167427716390633423127494682890737215651133815254995596011981114447053369778749711994926939393516926370241189616772536693915964632334508304002268950632130785116760128456235798808872412814949666804003962823329007956700930528245318358835348100596885059172895300243081853467145279941263776293922862669713336272926937803325988809699235725230984762155454661505495396002343954435835333166062727628217676720677104720906829766601980813627525492558975891414910410023258488822782207602961954882001833790643972455464807229830148570272255289321484897082450365437160703461927822087388514659742176686197111484110120464705176659900954190946471034862054510474230570100912850447200211981398846430664672129040566770970847247878551884332290215666785826249186193911186364237249538967221162028092202532558996981115395802004653830182264639757587293343919989569307380021359144384995484688896103433145379436058870331977826599581085965779933952539094048597036874967928353201631066624787121742253054826379227161595903539874593507549826552819808389858609837953849276808168254149410776300770128099216367771830404477795673494822457979070665910965844673095622933652895953096783170464256955481997510356580178507360731777335685946744118760244047088553125386891907321732511230056968173859172004276937460560206841418623692424760891898756722338391398668493279866299644553791378511079931398015437663694761320657690942303746377894250152357468342207276222831673452111281054775319442343691565663822248472878758294111495925281882095371206131043028507118347975579333738486867974792484296385195214826329504122210529689815790023267821859680053433271122119342381295196087731183609376991051427160752536797603150174926676145926289381611082073089271583113463305724973226253677243947339188804006888457279764292557800551132761464164153322369549746923704359467592560957277155316434641642357318246965791343758552429211114658641901528984811218188864086723113046800496372726143611277578560816959516601184221591667784749122067580746072676991871514342626826367596831993994589963804442332069239806897506872901849843768199877530677733814299798450578564853178900342991740377923921706745284079841320162352704460823885869081706174873934828930070304693456494088113635101252929109260802892931124346505419119321701388843401120309549157649644517315791253283640646969654279939399832441539504277252922617094910549050744665393053824377008297544764953265534365856137752158668624994706610485516522112521064387718256692868046625868798890926236666036697224059989172249887986909232238664767971970153608084735716774430581451814264431521990402915347853206292887383944097273063905508223314512839584358469596770630917985299931638612458589881618026370592766734251474353030811737756205094536983959038970539984515242556149405505695137515844967136776090863366894983937972741968238735224266597074003110970642527481907101778104313212847193596009833145391991208309831230897888949374422782805070971557194912868044202154667030783444961364507002174601155863418653559896314462764228154513686466555265574237665941714399082793092266562177171336801800761106271859052082924430326011503683566645380586136742004902256488048064066162942718153276866355588242619834131024488702242306774472337540984669320660315339998777244129312093868113865058805120690781677199949600929210783899918686389356252591803169958645445808815092649273342687614280750571414588812670719007262873170239945264846285469831831315334129396392434318895063096024920098642678977342281987505451036652220661550670765985328617915772424085109140350192057191619588055750423120880133158044751724243425153854781373561436910766329023441493649980750165636544710714725598723910544702812274478325741557826782471515299395996154155122473781940034335331309607363447470066782652083329435049895673713844034791017527156269198135936121647312518213509217609848932639402710980920928071035599241200265189293972944644281821126206066633576430409154328859286330416913135560844635982844477985631995833093387966261225214942457502317440933547245848642101519380226640253206706301832768728040574640029351773236182646318391268512465457048498508004768183648604938202648584674727560262617439493578091102117639251663148485092544771556205451419447141007104890041975644906231630444887909775921321804708287670206421211333272683197198373783231513241324485843806484770460127763662274298957853315689208165604522997969109813254818405628832112556791280052857694888910454764474345416587506605398508661671088427390444117893841631808617341731790371849707339622985978926814701570368489955119073561635474359865963244905409867681993714035657704372373789032818483673713563230768018391489211709377914385465438154515105452852247074334409057483527576083554668537111053221595244816654806871972502586243640559944673182992458726209404361596049878113579926239532282291923227442584930100470663207097588836070871104712549891464945675905254091852535911444316830043749853413683419447151781035015873487677049422080986644208513792591908691210467150794032578357109811774802593295371597393595998539094416273846567352860204219650633835060485822427273941836083145483129342943329386243532755246988594560438765309751210276110422369122436499355496082156794628433489709373878717583731450528679996878330570071142011354252223775587931777137952949635012264006990694201940465657347759339889807315739862132076008309584830055301760508761340976982896090373305678307565552331213900013995496755553769577157886942746576785761213524551577788026367598351280180102371451266347742413536390443500837051209165217224727798856930661115164747771385625587957826806104482792524079081421440257158563503612452333875208878976812960688059775371337759248896751908878458807526363853916207943088216502559119078893367562301798016020681522289951424847209674104621861791956134505201972871168936030604124878031410522701930980607488684999766686267670710537927372626346453321836850536518819774523431540436039072951213304804010352805183431717935856604773574417268348322636769364607024896390769308997281966714806412178035836172933506282170969493738425002863267946940542685498285731418261490102125277251020983556424709766883812976921704978662688514070328358020081909020451189530410712519031154660376553264468557089975679992247494962947757471303672656472666169670887303258890876126831326014279401819962341608944518138348731364820720550891116512285811493051739066775382389883740098343337960056521896823510639078701105934767136995216598590748704673639405908973495850140277610586734356921490334515170364639708414837532331434508219852257250161474908933053542854690776693301167273390163845749708823265051227209993028934557186945198819101010611307798891463880730820837283663095790957327146650433454650706619326596248469752859182231076200045042875645367460464277318673224687095499920887890855188891753789835067629618663497264589235668919609499033610355145224215133852604556695798269257631140837281907927109471651993095030592484883901662680765390966483861869500074052240651834765543772485739728656204023982556039007935984747069379565402758207331733590481682459771713260947249576166298566909070712984933852478988460033797623984635025106907252457250251816660258359832304672124681728155276767294874369327401962896798153695267355311220175394864716919145144590123487792483609232899075945131623582266664736764229924149197655454455931739731701167436285476156741284127805553278706247555097518422319887795393430617789833873078703256503993496897204093923329108936233474652392814316023373663641984537355248009158125310619410698314077429201327682056267672384243424604526774243903067789973555820340198788223332747259307042234280826552131087253379561574740128347977319061460175387968582869735938777448316183158948061938048509561962756113471823555921344511674000097283449542562695034496231544587025675571409136964101211041328670162472006555565493938537914657350363783042273840710792385039530077895453421674368846654742580029881523405686694147551375779987710012365119907251509563936384112136782624748200867809770450305540805988063239567537396203416285284894828632829432349878498794884652268559017830501290082534735150210065340385041952175565734155443563116927038275505493515333332459715144714706982753121496976600070004062426468796819466588750775279707255162958640285097332672534204261723400079158379529758662871241966529582731326540683602500768971773150906464087060434137385808356705577780055099753345724974721279271092233141019773213617809571800927223235527584121839472297091023016965889121754407597586840261433115489667445781643857516143024438361939487360673668314411160339530937543239650085568881152372776191983351354237279454351159121340200885676172766368814195553447200109541663383787493662787149531969515426703556201204712123149415351814024231778249884334718352119582706080329913269700399089991790793013836289733597426887149333559405674466079085476649212159957360140809475178883417491124740932698536883232837637967538436309784122498794585827043061527351340936009037466479976463844748193237170414488057431566311390768935381075627984537167457702215026795790754018270490325720934355261136675725975832969480846825337700330441815190953838409814338791116128286014614198974695085536203180261707096682532567345994651077513776577684560628904394869158257997961675921355492152488028778691967238390076116324212385388638157261048906985463438882372216895920576748188788042973006726368864297843988069828868056233936264096520656050307739203620263159259447947202861415165677602316093091374652124897991296382140770976990367213585436398860516111299631643830640797335868863594231621658843453469792764529276252118526969120395499273424680786117199372363384881209018221760796927960346347632106993381545364410589477690489962057305088111969222183682441877656192134260985025905417934310321631469608233373634127042460805950789256664560003427510497482825968219239778768698609625699175161733924860281585926039634675380627776099291849236942568750829790689804176564461636540849130969447919364775703076501671960337966120723054544971444539889337094079110990285949334975015756437868681652971820599444506311039787678427580324976872606317723402555983724994322459802779654692604267283040738233690673435392470499582337406889128110939662079938988876479920382875853824003765811670549793094385973949024212868777887622705816283878000490992350331089402649990424291169483316963070241029762267861583097979092384887663768224056093562829069366642184825503407418708728893371775765471082345944563378220785993089220418200781710816468114909845125359247529408939264644642036303235903186806856259631265310217488432398167288345888517136601573656583278752415183968928301637055121067396912974269453948539967075362517229371558838545603993507705660654957919149752691652797783338037000746026959011504140536990057455865644257233228029388195483302555526097606369204469030351017544886448302118560575017473916529263244114418047796734260016729416259840472443429103251267464284081725955006730608669610139813131530900794589113377853497047004483674422781840827361221224987692250476953098851955159594510460845196858435248975085543446403831588687130511045291133629091522750056319828088799205572212521457389424912446114306055117052972086642811310629447843975440297329782693961060330345956965137935603757949392901793613194522550107915231213230250873756544344685919291880456763996544980497029140944603881180523412658328926253762734058315816962661211522684792420118235966591908422124436398616343830880332829750760578147584692257755793946046673869543138245542018382091990738746008783196531656998044940236383114866339325921343856653103550037406260830500372589995662759869952153293179820010858477420038742206793336546622752329110455809181293626171641870519648264971169546664063298746677686113470481092230670168165627621989175152625279805427864527690830307826980798883599603047362390135549720061937489104667315162258399982742379822539909838485345089264380936681311853001597400059126214933200906000439520901839327206274816227615752908249168604467328984939927643651265192648195423682551989129772975225124019222460313563328053048978939236381101939373841588061217496141642306071037686426998243268100875239579449356637933328896104750552618475626356092089969885586800849226995455320504008111977746643975819691395873326879124423708627353946357102544554762679248088770074658391073356224082037231182016845395264958627496084587301612473423645246281081841668172806002493604182854859918343514519108578316860901684211832276744932648779358542401408731252058619060804286233109211839969162694429789892305246193006498613018009180062075780381354655566223638249127468307609056117250269576622796338634559109347368681539764608720651412870915289299172337712318756317259998468969102519864518480607477477438095839933660497541569791501607433456712633188822285437392770206242484361911945245225630615878311958013434701915724739933682612076645992516844788076775478961132331492842300840726840447645837693840530878320742191385252478268309977575098208106060411406605334560304804734749666417926084137815812889060305721773219185579057801598112651339070115537547843789919054558953264088067055573537880159864838352914344386252774986101172282490649867935550900055517520173850273422174659037960374616732951752175863999440870095270801367408453871334726788040302129627065157434588799759336767663428071343725262414980404369883490500727994414583656635856798215457899030648511255545536821669688526769629365570951597616938651482975468947245772374667390792583670695636368070460487104898311338421301056428622218185217362428556155823317466434377797607067185006039507901373381304369652054082643828716186989973525362077064237594033432822829407969607407070457216559200193048988636943841555628462281801684667223673913522878815233253244143676424766114839333349415647729135572341626976661027054439822007661270581781518539159847778493568943748115550159309085757588295689281342777785510919302777256413913872427448393516447628820956327753348564307209194213146157801926816321993539405726045423896895515315066985346428397662330480349887870003740763947650765394668649440720426549511882587820660141494069046191301863868136012801317382007204640929623154894421497772062133002240833262367420603685375793169920384649669614720568121280558620898207482332326836600241283356797289346797862434469221202233865986979057246910408837891487362219708575154662883938779333771790630741723244268968184622712758957751758844597600859847862929447602702163034154719481127567660664385738968357319330960043264742859456569370006344690629854140007039355545890183119652694952551281233506148911231476650986171575232948506815748120827407653861370073633217619025828500213233096759034969974247564206701533771464540365942940142097277910787970600873912201814206100407015071833662192784945001322878632896135527743437890310967624816752481608856061174369982953598173200311402002894732103734675006200101778536663051076220321981359491406511403000167895204730727511927110497436913224755593836253096147016016094004748413818138674066857654677921423141614593262031809677742502953489703237226169677886296737093917668057101732577772743007840097163108707607630216795318279996450785392918909704790001138978662359417644450869986186636882957731510106272125987835658751211264055541420895128157307013857983641372439344798738888254608910633883168701793436068621413529662243254492248037937178531731015056631842272352475107881617515577175866030628375157802480088307928344794984967521678705004601720119029097631378459432304135555043359629735670879741089962483502909199075051042398297912595643869118464417818401633248801878479574962142324564158760272324688876415436076392537132721401315153158142846982250040242290356903564084144092880391806934734301847318000077303708715430138840414657285921460194334338930787039655352899705184388519261267877130880360630404196709641576607484615376193180913776356555376157736825730197005889865636171709090752227990674513135031190219824906314633965623256006134707513405302494986614638617936360607247633253359190659973996289349504757875578373644377500279702532838994538344867311578056647753929774410034455548284067733565740197996526634252116015272584111864473487353628299129331931077491689444745011898600915787931826005073129583284714636419595603174769108049108736440785775055571651548635014896256443899867891432293222155519729285909507483002936610085227634425349582571845937162145293660549973742630957517900812004758480890043163202468414622308553480061685714092168744894255090403404451310276758628933945275808727187367871064956898379315383008462946514864340878299509267278333520200591884806799766132909388634438996688177488247339400763062592229989235667086536042017760825923200958636270648776527589211153293592888846342343673546039382672505457125451675654973998436891491555154015157555482689407977084643296016341862938344867169338628186129913694912630931745150393142081938989829947019834180533105531832549000523208580905313369831798712488309297248278663314715428233580653420699294106884418290719679830493636776780927706802295754156979338199390414094348832518117122753318550159771486904063871306056336610580777766759231466627914888540556630078807555042120254009608566181183928872918967227433938494507194542650724632686722652937874044475584252856237417489906868940605778439612891625950973141671231324974213222478460890646242910620449549142524630928380085575214423734451515976905834740974550621901885694361872612174849989353377676183654005186415103309244258510451479141899230653067808722240110439687732812290469688510353036808611496853428782859677239019048578995767589780435850182077199722079667745809900528291331491641292452567915496307815043110020364286326359995933427106984176041782191149758307989983497243625968711283971295921924256282079147474067493175425304938965080449467531321712032303703037170745730790449250428231681155817889825151462921702579179048965545306371293443361572182385985390444847258277512358398022438934519075994987572755791394209756690666420287402511572781836046571422684766237389792325991742513839032767078802458174537465547361928604728051799771826165298557944600706345166947500155575240778003285382090881215750411810110322325664830284248250694342625427086043853161607121693522568335432725851574083221362064379360646808066862344274384121872261108980073671007791619215482698400300379725018098524825851889981502212750445668911904145392208538888633646641869928555926032785941052181155826657182019382174436041916098512159886304941066151763983203220098400854869648439025760760393892395551821349704982212669256021715235295877377093781012148374567521550559381799748582392317288739854328679107123339194193914748124766665752212050182376803822556249706473973905514576462348262977932472615945670064186927608910485277008763733193328678067002434852568601278301772417027626653449479716963545595437825646559915146267161976841040751106807075656323897085990359771885303154197293508347472961561372855765382359143615716769016285407726408689782794909716259796269992452281051547736468170527360613566826925186585236173394153083731200463678128754225453881824566739810403114600802188864072728032758408227021992259596918071789937590108039268155703817552921237492471916772339495444364455122335217191940138256655207856909165917647677298956002931511503405888787243032505014751508273548519917506816460225358095491870553725761434265066506866510746731748577566916257947643973233371512518281819871647718670852433672296797408545339091785258051745965781999426129521961939390404076391927845396022705819816438212332439552293735634312865626753108954547894465653301570923152663100994292855180771028068239841994870112943769301524081402286194492322033221723312598695071475682540121841871477219917563463584790701498861236932184301265804024385862780953787234441700534493271800949454016707978895682941224162511589217947109507399857173170467487024229264583533670970771914855657565386748251243953378393434903006801898509985824834385752129166701043641706642757087636952852971223016950454667147824634748103303223911238520727729334691668013644379646431005721730821174582967556448817913928716761710292947808378952217030017408024713492530858200056782268047197040443117508631697040344191459299950441749364711313820562490823813471089058927656244625984912106568594521861298295405673797534194014395403360039380251535331974710224584850660759118051323120944023662258940925527748648753149160743916887640163132927288809301517631792695852586121375622071637228482639604669838355942428564654794211032116187922168829713724489471546522161644825866036231486292322955387973422919720966681232332480105210789774341314364624079316562079057017312057344140770442285145497298189692608295521327709358741592283189696036767685826694870930218408219246603428424698792514930162416341762840979164113535046442079542084411193070070088733589808506286137082226481688273327367733329610152966402981885363248066918905217637730735738289973074932450625837648426217372494419637255474029415657374324588580058193339916435419248709113458798603508373101681780485370519160737853464696186632039491189317573375530036281055789257811300631903542423302604411196102435280494673704829142683625388521421632906131853957641607171169162288342809110309018715984485925097247621892500524246671936487849337619628967832857118544152978685696334081048357769469467326946015819773256730605497950105377259915220229203770250301776652976325481985696660610983368203191904420453205179367051024264711708130861355527702925430201662747378953982246278455263629934946173294175964555732928500889452226748089870274252887379233207822230792514167590706450724383765501040241920586067838410583899430979565223902209624012944315390438779668186326251622956945417357026908032171337948980643078986433996517912467806142404158572509327059076078001232797852267512642962287263236901411476538750072782854327240718068733072720179989904083904667681884469632319706800257276992493848073990603338920516679627766821674005889884073519887262248743322079758738028119126193030777637030291463749758864210771677339944680485656674163148817689677367904989260130189959156826337687672308869469962844948881865346941442843054936120129349612798338058576608325491593833355750468440486850572596525273056281036169545521838098094777992294668453745458372292865844669476471760585130994467801631796087158831231595238511421238223905082486689215581514922304152716357513571368206204659465934206425830778692160757220024012595544218160987165091474996442862879547039116251900435648059629445184019052635613902012096282505358556481007839145635802037471770076704289914912981406268441941099014963814644188329704562475005400470961241273752294465859166112745613667502671122543115412155705645904121665130100554206580609933098796233900580229931072535984722282565042478577030685311957762641303590012701614409677515977750259859161942301929423453983551997346990807175021550835949989818373668954022098159179407724786973828498972752882290049715061307641724394701510169628351657711001635008202216573651397058324153249487664478259386940907794677147413455685269970826655507809515007482914520983458733556023913629361520079045557968459346273468779390285582484595751135150344333920617609006420590017538541599361668270728420842710990124153838287657409029256309488093255014081243216301883069266621391022443874925357075456433862812382033856248602518628173721739424768460880860739183611782381950187406574645192046237118179395381436138176890539078272018677292655139153187437390608358768118493163377449725076647087426401940204356379005836656096731601917126540179863449601473262989378670200482493073350672019441460695488109721134503639422078004293987476429929266246263281831070430827690045702119466509469908110929418283247540851871979362067902873468975810158307415594035327605256776328488015585407760102010000023847164722175480005283047234158917499671669408181576795552008374890834231568787291182685448928727798805151316902424554147577476867816721339982703372815893639428554598150722735682523196366040349302239036785057330678813445578663433673839865552451870410892324148548131487195339598576071255665074729370804857198718730562891263724412557242814938530820612018463390756701017050819776605457892872300445736365551897530671846740461704465099794036116219454115886156032707344554806030957346278065606440678272301652475079367416714451497332386174179469437066685811146806040484587738314465077992606822278546963493984074587490909250810704291551298829778049412404718399014739346873180777800536639229744130702144121159240390491316428002171414368736899718395540373906704445402988095894158172862227492947620100394656882642772936285346773405981408632880068313137339421480701289418954182962341237018289289169637489243336348087061928903003242376177969128285281043051038769624368566340617037376604083354712150231700832568429751678133292557790567348568906767656317252024796859249880177567346435196625007538717802696712089823478808300426596747356347012276070486184147381343884930326994256912830902847687445917069056195375108028093252409307116203654225996714535885541132983808403747323862106754810959945689151968274129134502055992011260328205043671311588962550930764152316517306014910614705294793659197527793846768973538793907462151463629162332955992557220622409365326129742424382417047697415590045412026043590416887509794744573868252127625427931693451935632030139135278444581656716216580062215774576775559771190561831232266617313449000042035463133431390850219023944347443459940556160678048547334713269627294887393383100405012210971115742595881738457030864722137885392227423014975474624243768964147809971378927143066475036153053221830250126058493306307769320191706841481835613180907346535178151593473211493624176243894661341794457313609086755168106217740468739233078508799949206100599687708989367500828305495004737433133827989309556016620845795962426261108694724632009696503972528038715884636048241608592223060301929514859572391132098216679364497408483218089633860496179695688235135971468107246369797538913666489600420300133939167423603583336003346967175697767931177160029313553046451044477517606276020703817298882403928192380524855971899850784001637532848809934401226354167714675765910807236796988595567612516784452553679034650906543195104226779723911491281662236586173560940213794703504917553698921423235682526709239874404552912664562383472609894736940070380814191143515760650535935824577525189955275107182757420494355793075714093559728630983536619732871408255281222584542118838812869883682946907280300509170847438489803427966823537823815629813457049640557078985267964253174608127537664143853397681934045727526563301567752796190561710010244789030462318276177623969265357679762686295112597063779846080595651897361462325837994670754183446291090635291767257115176158645475764420600794787968748948178265994595802898750597251294079939546888900728835567953044793854014567904003644363535356273330918570807461790267151665441662164489547235979555989202061334157220861654993014305837711168114138433280291669160141148996753512520926815661245461475391524449712318753850633730987523321167053317571998562002650430701019844676674581561467122849256069551643003215815056369776471110399990422776755969669925798341152565347547629669964807419223066480760370204969144500187810182821228728712877679555620192325023239606447727161137292806752730760901356672582784399832681445719786788111794851438888508151007033646399557076801297341703138904312889772820241148106819852538838446000592104351654644099840554163414745201912105163670528151575076101714979980805184736763487291012245257828798424045860033046183464740926093815817539481666975895026419411302882832854234830945596223712241670208677398970469746525657527656496740647908864494552373583988910494091013399404545391096024289819559197727513364940516433148735143310877186094323306462745712119950663053201488578190625169190564293750346086145513773740911469415743637784295146126451179460704400053383099414425705046810510251267420893217940379673029919219786420737940360258375711209722826925020877096902718131484759910584829776559427567134284240442920306457582859200350961821565637246325409241557696860449996604254225360401563446632393694255473391369356815621843862077052269899968652347741849467875803872871784508620867263194845831768908651993584529380582902966331485752000534053909660416236765514325066958410938854387528780727871339292900142930886969993672432859399625164816136925266707916687029892659113774865043532278663229579794177395149460746138717085165730416800094809906766234652058815960163972546425131361445713636203323979533551860385818320810812866073626578883391198690443127454751752627654127715950688987925964165571937653127525256105621331309753435681710113388755596655769677418000125466887029017349722092375523714923536663786379335976424302176332773971934371954566327267049930910751809371119197144088310125148552121211943105341666311007856857216268084512643781509284682886384491402279961224992706426861877320770910376137424447676995728712726047527782790304209249660175299087068295324251190737980738473219608121487094837612761040055501356395545001714916077893298902745430587019358306943598613987964146104251254666510607002776783529780448803508142305569282285488251610234203790376408286976954945914241404364334601763275424007850675567109194047205395738811853616983939862967434397214469457022805082732880585594477880695357427922189229769353465877710868155371914743745435945984060110903339126798263778886427572325011928494357776421924042774758485130461683094952333502979912563775369953984045709872877419704327389317149839834731380699313473470010716965523282234795191523780864758821331430892615463467287713623875803183772663249586608722945599993319244136908600149107192322228534609189884411067526813673947500627357505731196624060772012725025796840282544417042425244915443682732288715748815467411699030699567200915185305790911427703507392430503003201146397976411831177170738784833615079437513044925572071562373759781968839590926440707360982893106209910231740411773688821244503869324450597073573829962024194096441606601931439556529172375586928626173399270195685994609296884051277641272994371224957319033404769813922920374390454424909288797591628484501156779241036645845209648682308216446794773038363358611163490357046290670219143726432381746964433358409915771001014056408218181421529824121174847452522081297287170035750110111959532582936846477977714828719906422476340557523417758530235475263086060070246402176651600165531162698021016488863043919824902870960053247123097480139507980665347205738694406137882542628831025892835474440168017774303522020939968176518930439223348145487055941071845155685186702793401880445963381546049757939477663493376011816571179582174669144422952820228715910804115270837255938668856627870052025578668045494259126357275038754746865887210620028190406393048865845294277378677871845436493157831710403906913931458185224123788487024883058307948887664979885041621003462933149483665586477734506525070542117796495382386869951867497485864115197075109022700825949026586508398757752118330775649583444263349244021543772816652819192650435361197357585787168863030213087512278566529929471897955610060103452880598321015544461493650911752453942760679587019739376774065828887628225250438242444772663659315513206255571812952841982432178427213128290940118881297113623408000200260074161525418816533181651875130282423575236424614885125231823689194079206937098687531630891647630239973741733554782866953576153435576108255260722159357637265327742750870661572109501443089022663833828802213873038789412957083739627796030039289485335867026838844621002098942019521438120559176035632087336630894230273750541195369554424258178558855257025885073732526545183479997592617824969947908711737508431777170990524227656624235120831270555391182068885691044008403418084584367965297637244958239025518546413107258602714997630821809132453721846751822200455707174090542511944585519299133423603041448229949526639061361798501126610395259438173056748811305186034213144453246666567498212094538859879451893499637646715677426047679736947384046394631050875109346768846399364994822299529611845613367722107464724800834540277928343475637156449356013490460437503236372593295533481309512094089227327118164656595457465281721365840228024628243693053467197479822694674859854025258934947557127941888300969659987211659784066708056285202279937945413007060232313964202115191659897746642490026812015990137131267788437551772590851603471414623187548402360621641172797444520086491251320911388776129475090867822325221697019757621110281103196059009266523854625393995067077161191395898516231044950124890572163789814573190307059018155803035648405765145031268288740415822866094362502069381865914252703942187735377800425511803454755790544518468158726860791424418336746504544687280773479748441339973106510481572363388747742771524451197375944285866229370619584650443042863464948782389825574537538179496942368858131104198330394176791362366016489073558740543711304152653882014781887479606432634340267267065620689474769593020232317286691828005695304728446015029281237199234754966362576314432555448527023189763390959371132295345363592394205646763584998343490325548896368967658992918707464308082581370567355411572691671030234171997234625301815145254951606807009510610617128363735321832624091137653636104564183874226175067600689293787364205231131277638882790565079477412862847131204182793503698980270404151693189577972756274976553056195609869063716226252121059348831927117900339041084562975731522185228519822050247849890206253890973054026205131365243290889502018242443871312280498700305422071985021124469307005929987810555022097077194148517942750790542727966560446282215587334234520162149218913965007138307665192674339305783769495089413338624781178962172675159849296401880391370424238427539385479367273889101985388506965894596400503742504999358755012691083064379181477620259959726273559407754538695437815635596697722869430010892076328723807429136538293782629238779892003100813798163605634742247538392393541484314385501346570761740926431283316375872827462208813008092384657800491151355753629243527925659082841145089905289671253012528516907329296434961532562494515338801582293715978070992864049241159749450651445750178632207835670448393085694853274462048841053504100631076075990105893294676271060720847778160666650775972714655726968725436324252983636053234941400443975692643918814240411526708791990011676033288788097324893180646357713381813280384306460980211529314486829804568892544030788231070661169263135992869181828760747764300437016421905179870709682746613470905878801923187611915886462620884631684094523186858020016051082398361093114353498554761855023680845047360803736551498779293467908154005884416943341712768200260985690019578568670119447085497135855045822206132701608170418522100726236627795083083282488687785957230970047369209444007168428244485586562642239698001745412552728923114333060148788650445024299113992024404539200098084799410257882634475726279695473072170706945851308630616252283085762978837229499175199169095829260300730823312690138646883097426855167817022925214331065549483424841523373207196934501721638330344477881266641820071342321257057591147954452662225896126063044432678751758938544816451675710451800952066057842096167425695300130999004506914234142605030515474773298562478227594753946716350567902874523313115298053043662253675526068215639051093569211663030249765736796733363033542829350679845897792829252505473622355059900848649832369867394579917289382233046021646215188525045525376175646121710252354273848157427831039945778178051918254694075271762858162633296421664705929999117301848644172863901324134389165201400950573437296131850037682435614032676251391893867274210867266666982264684116598525537683543631545879478718276732060509951537213647039235690991904580551154068893308643090132046929774703443001918089619590408257877896997049117414146977281378553259809318255103593754082245546207489912651985953140414180196971681478648229537629488566306376251910375736333815355933191551313201361417662847691251781052363583073529699046682864552858660041750237570699687893482895918115857343537215939817452438351551949843716061398307428530855111182948958851717079518023849694008183506219705354143898518842815410239450664038255183150826413879440831740755265216129180060685069268710394945382274701870506742164793790890413215043290747881722764375080504711950071553938270348058613660036596851322495896546258669916206861063763145638415133383373758579069460453166186945304425973049855864173994002827768144755919895260343282659806462323185497825085755427309486950709906606845868088652280825070552918078132718710227705022899069732274655047870628844195338869757330979716486900285241788121490151937443619606014529914048018372544368177470633548453847966629558686695124000350761196959643675958330567518874883762140236215976224332034015513181808954296164595499742263494586369833364689191059498714492965609852929333280961949928982564258025312136199028974247568412381464113382759326596226296411709496587166544369092566480695835561975233633420549037259777666131699939701986665875580534668218570393104951034840369489281432278193956901845073887256477112640928022708690993615704216301284481638867840381374893331929722908369352093116134460052725939253965738725072111890257309208096189692104811384686979506928197707019223793442996291426410454400693088417001897880669725925348968514286557736224386874312323910826261549948895256070808931420751510956532352386831038921614290997246648935686107453334052601214369761927163367231762892135064815969367646665270046852420693512227785337703507247196311971780143516741064974690093481441132287629430870168272181181324022380598390139015617839486548766560403683199578139198568066093166412615176070891674718577978108098042852301697788846229820612476877570473799505531649158649415188949990739034755895079730978005022082230812654588561099771601267292204357897938077609896997606457982603105786253341070755202668667956249166236605030845183142785974563683312541961844804601790289604650610705766543411893224310996227762810371166976439339040152289141979444087178627697997460416312083215129072561488374976226327216091006112240872820665071272303470161734513762345278707861486107837404312305120879361997750237121664578305226346911956899763468478032776761788255456309570979272977914355316833805733978239084999350411637685286820832446308317649872276199331575922128847549388117591500388242892389467864963246445848623260414871015148608174995522073457894590201798731283447831039461654597676633980988282630154969780286119358863260140677358931930832410091981730312466612100744504263398331409994353333333355983862040146939821875585240677099936037366443652260046495138947000748556643888131294813780224664041150818551913347037183457431872110302241812233806063802739929771342655008518155122328061349985343895884634263322313698787247918134219016326706884092447709161447190677835299081542897150770800476895883162351309373434634952637202792012668654890757664671676355833879676681604808740373445726605371772013895400533634348076619416811397205790384081258174366204556653184487278877071876303666062260263915289199870534769343804143624653621513207526774536613174292552707208288471386464337846414788159239517856806701810190566677330005827542576169941946158614201816762912742156477978775734277928101825260339492570385428198987971109591889439670758637551428027517743419039569732449667212874885135294632161866337153177098210320490395278155513326001111004780838693240524300873774805151437307313405163825067136108874366497662220967445094332767957742245863424895336193850384140940104699585561845819979554570492416922817412998392832198091805390774086226746452630748195144999532279767580581262296477303342627492926651391636900104189149283701555083335896263158181505259758643974441933668504689974009927156230898503629327076559424798693978843786310047155057808685780380381788348593412240883338976185982490096590900203131770963694079046926770414853876398531576524305826726562669770910716358882246243869165279810247386811455930267492815780901154748709799451832653409268125369842356014734611127186026207716691047132074553230765521082034475223284101456335591170669485887552189986467644260284387395095660760818592468818881506258074646874981980302543989514915145595740059800527158491901622065745237338587158233927132681864270195977751771006363166095713420107651142059631202005685811907932554616714164612109279828699996091769072382758914203701068675972040027064767651008223605628304975956375041515940453541539336689556919582717523473229111663803326835453436102227243403227169453864330187984458222466163262259007419572459060140365253754463821842172330889894502239592343175926630918510450054775350750665480212210844165810577973006401886161006276853597960266654553102849155392521437373436188970990681497735286775306144378134285933298912413784203276985301085012339154422869005365019591675829774474583628598965936301564079942521896755690098743892382513452367884821766595440803223157141323378663242647115209208098626549687078226715975323780244108132829050098260457514490594227002060928304788205439260995196680672564795032438536945658191042162966817043186726226043039670192718668787531224605069648207040124441295362003602682732656782194221342803091866542212432710738692803248547274512902177286156388758427832186363539387445240667676439663537235867276666556390589012994428237909717351274862108764260176596251492886119262910707016236143972587487912816845832577291780630631156729504475524476743077470338003406355806828218269862468244155662978226050848078340523335298436758687394413541875850264064660818765597561352529341094591738902462940473031550024815691748266285407294826534263732657055179165243420040464254909634000241460555182212376830388018143013953493330531645350494851493246336530748891669057672249322037650494742763193875699589883937022524767931357592752370438826687698171820888207253992105156619901573193732235961345533470388461847204933900352188768170955218518298769086010659241394938187106285292559682842061365998058265965874730862909042525645306184603191449331854031740970645375234859406198136658061769509936864120155492496567700417275086187879421814917086776586389300998829122280261743154994915738291305791530257159501319764551429309288193855097468492554706752394549149405322104828130559427453520707634520229734459334799432842678504311893901504375155762273086830422675637418778860511287791063227548426820755043547150435632072059962450405943661361411178696030512620798283055271387711469509339418096036553571209749851707100284736628567430815398946212778479677953194859549674319115117365895989648424547145295463204474648258686707603668811294163919131009220713841362838798638542196946569980221682823646145731664913430947801731887266377230451530926618948995794695905736610123376438437889848839550968754279412935814158687936187495811548079659591015880815177414904615962712452946564125035603953686834344905881360041727934934314696218138715782595859590215456056067039703837932779268809693214881624593144533231287939557172951367693730751654018592501996701579866085535611322610543039307959911575596579323258901935737109382435539347347026475529389792693468189299390943327548969891608493042418901459565754656310503332326591900502459904555582823012821206018101170677683264578088650946650094013470384489285983754233956202646700895923128332888310523602078728050129200065298455521228438168894463781899480993252190382964357356193438714063454174747691134454120921790418435343477025837937948312204596281211839082745160052082762965277251160212393597610605672991417148508443589326332370028198088491714922454729641947490949955316071442106820607062160030906583977426052174858055051108023333470122519434535211838422266897212369039578030503200595159422747166823070117884414264521773567496296237837651781872796051229514322880334304743605462468253448918540631071631831753238737240008272446217783313595452960177448156091941838914670699756059993917271295111269376319191692940357667435543344408131173001179142408177103356106426739166841525316734493059899873545311024957098356590790416485439212786843478258202947622957399802244941875201273773911036156388234569533265797732646270187388350955145292155126593832770454913852704858566361661128594375287347479345607660397320899218413387817183408360374216965610572948628139603661331641173778023954064783145629505485276202899893266838443553137792215789822081176976997633126894293958997623496016980791534875023407533194831497432379024795726222357712811117647635040687781163087031071754915328633844741977475076484678718342791077409531135938970875027653284207597978313935155048528366840605037118674848717141034079608265006335543192127048573249919365714583664871526428334881122048653242488719610214527649371209287660998873135091902252744132627552451647821801182731737093513605593983317034649511136826262273242122215469719852039687810608210736750156692637959478981397518703074691964792764516212372449845042921554096334987866542026376304900175516646604655107623986822852861192610633998962705987268060292818721140709957343450460842592613776264066602282819609520522496208000334395107842150815603012422806020464492090823391371959126638470273045077198434706729820711946528076811147156535816903674741403771275378815962016727690724092085525543934193281224911773817332346646965165559472270041320718285685347618548672739953727644731274502272630128007176077749992568508473458272874130552646833116027633621146423829707129135297126889583710262698757061183672592710352125704706302744804435837357512238158904136836349969326007390949932346163644360826459237137296904709024814126513756743353410914847712506587423907588424177355440004053031872785856244660458703285182825389403758379769277714189207325156703803684848150238936573237893664774541738196962105825485437326304734988493867842488198816243218880668578741235688630144285268945029866678629346137143350018288563058022708187197227329338928678726300777243487140280637639692885712118372351811271797208361665181799225285193779240525991243801599586334215426602469393001187152615469926127141213872927904010228013168600616755279520448573607704820623535037344096290274771423734956185717669194135624432803249690080547307989112480610658823155849328259105822821463244247702705561168811287917191707574892550708335763137186543059224560358764254089283262232012560882244723398142057715563572592377976528548262391557589218441308914774408119172042290508363855986090713106105008700846397371278662194229700590618432861497222806799634235805132413801589307922119029481175451158687476091628777828213189161937170831882250074533555851143112620212836260648278644843059802740280479113344410073375578025626135248863708460452780664305267662562719890289592717904987663560946398779855838432178811094765023397500439725652219722835571519271904718124219893650111877589762903999968971030743895849977230324113891796216315865945301428496960597744561502232397772946680840693479830143781012133513161185851154103879936075954969078109208909209042903737902285622901642376803242175114807607884116450902662903041361581224011986272426623666559607720875322072687140028784693504490701393745090907450019398547171756523548134512673646887734371600481430481796130173477377164728222993912124326440885922594931529920222027004327221180385266142856667175514384544894287305682736489396904362771516739993992326485554300530983751668518516642800045215677366927702661655071804016984647734194142144900557157377957575017136120760381214913999855124520551060073732508726679400456032543375976492787556132157336719444991670651960022377776163617538671276023815140026904566264561697311888667417849535028143731031057890384437649050137312737432315421681671471185460416747496832174727105447755849475467482808594601634204773827669418290989239968918508366384278085589859378358506798916942669522293769469690933965634060114998749446201152073305954056107943283969868036299487240907077523013997248556674527378533500647597802536804521168499083964126994206077618259535903518755310725869592046392910774515279112521820779347039033395104531926116323491475880494072173111029464693695911063526549888215312643947319637056841029858490507906627998783986429889410868820633076052423189078692169427047202464222745178933543720164179561185348120257420760786930200098244187905148838299937147592213280584463627164651906241164896606107961470741594010652740760564117054052004119254563711397808157430248840381254307320668546191868068956684607449887644595827728717996983390920298490020661016869708489249150274009031551540695293445394436558566877945456302447701451662786849446217331819368836907150569387867710784091768952431290927932818444381256383639533573377426462376177657644094345643732314563534593274787716012394294797458509283365696254349778226018721223194591773608859252624817528497257937896897380901179652895933749200420482918126580318167717232199170757603047250250907057831630250798218003164543189110043508965344503011623579473414254868721265732745127209921730190855741858631783587988701774137368647922130821339933543440683773979335014269112184506776127290740964869478924843576293554487390086095462746574297101068695433095449693876309693888402822314461661124758240252530828223835785262542300384552930031740118600987992895376079036921269231126403830337727440178552157243873674673318995061015345547074286440993271567557961197648485426728772385295567225385170535152964020687505504644230398784398135572374965567823923429455279643215483776405794029094625936469944655821849375119953303743226025525837811769898324008856440431244935339585710663122840871926863917931858392085312649612219740406168676541979901928320418907324741448937246856779478592773786655566080487011117028382242126715799129119251014631930697820218679665435779141486161503101786171988913459630576154062200881984007512066289984169060166350759751079749289719202282657697165474505134541674427133995853068469259779718250254398590935513056777134198736868421719452201471607413315708516260790827468912962142066844973429578177099835169164720187064141584788073060234566643479061269489943502101035751404802121082292043841962051350701652938814564790798632363211283500657850730172856770083819672516784570085056189372436190299082122414723890017357986829106367320531343506493442714255939094653820885533756523010999509652570748582414276495869858418896151333000372780574065517073370452410996882617842479669718634287584840191531322746183969923464452843868193337887540838158336785753982965223802503769295325003042628304674805145608252234938912531128076618122138539098136178546630707573862987952893960379513615860488570856173331760722251695687032873413392471711884669178475571311265243997990196883998710824977410657297460045857071335892837507411893576075294188484181078108592517856614585007294424677421016449746822317087465323340547600356832727973680222503392608618995821332970411779310366789397499842082375286021037877559338341598751801935019949179851635056093181790062392319556922548923562283582287168683940253035197848412716702120212148363072495313591242364825761878340362356997984890718710842601238169779560026024561639129821699260067287560701700443265806993555208653838374528714307186248222956980165437213080749992550012825238017678329393122396527600723007449416770645888505290158481611839462852358935014780649969115650505370274084000366738273658468075627522225894721250681434536115814101954036107043068107307860617639731867689430021593562645630311527904287795610266743808342117129090245734752610034126893332028317523606496535575322687115697231437773276333433120101069002268619160467857265377715960499031924756759307712752016968920777265152310338353259198934286914485796353066567945599215988457778392268178382893269703968902184923770214616205218192364572217098189365139150995045246599231867007489059051898256541368037080573860785669614826002161304406812214648677228028331010670543528737104910200163601764731828419593015485114652256746631638898223781295844470633673652266565350064812035985746814686920391454899613304718042172442138971282389464654854050359579085040658570902285548083398560257043626364579766390828557829680764796637021816287859159196911820471745499338194913167145240224991754126364320678355089382477089646071781261229710355336468202817622603261050793690365190776062463369172996142621656165254874866511740123151143202872151839372806295870633537707798296668061954386367719037161113868587877995479652692623684488483557156896439120204278758662194591463757213101331567519911029574522129021804178548943793264773326127858688912253677658383869128464440338063119411472709650760934996002820939912371347980905017186255084510084299292012119743689502250323686509453318477484661679133281533291772470563347335330539668950952810802645293663176755456054635659890697625961465828705790911207674607631240787497900220400226610187563271915244556075561727912649836164721799732892395061816324466760585493795284432427205219608538283977786711040533231665155722779837335242193337750093195869394303246316732561977492864810505735231619830754099749611281096455722925761699811203518923306972701604361325217624033683446920721651015098822389772024883094614675850260830700939738939383638939866467319462796538212232190205401701995391790101498638028210745047559405070492200133313013597679578237732489977843301062983343865726475885728893041073899674020481056617210482913991118250814504676052838249393218041364062832464934111553043879757470793743002395351881531860115402321308507249126361572777257916392240588904519772721651733237391288991238561555133939988009756617383227822901308484331476251027036482612841767031154289370633281883856127953939763367358770907187693580065154564700349465835284879586048126397467379835235862662943466915824892650795067950664161167458676357078574229613730864971972660365628985612921736206598585606304549343409077327243730051092702497421676063092972905461601874486370898380023668098598913318377512700476482671870433820415207234635074734177528538554316581138053017172429608911778645598656805361034286871486761872377627592072192350471572198759823504852454990422801990764775369528325456074169910256956461820173212228176988200054121646463608839922985866561521605799092181652050055531639315952646592558656450922868576178803013465101573485334275553840952378094383751891374413189316904286482612174849652722301409347504005656001063374186166757124723414510312268697957615961365329905672638694336098468522400250545309537649285384692113964000108695827501577346494765050400074391080719833583059583919567402675453266106698148989171486102335336740553974395991024366659223933154301603893209516457357025802839220773591335564489907320251104372252337159004753306197725222926915248773074509566285188761208527695606763456647554354093550663850029162756695910296583556157612545790061184624061266642248436154584108576223380731993687462719092468031712224994691942934988536529552825180863959251013901305026338806722803240473619634061635399541684634886249282769851043806786834259712218400630639809262168826924064589586931523640328444899013481693701118868322239564128904779396356006458033878725781243819758372107920476071655069333727978565288737409091461222458748611435724985972304217205193782621805129443546897995520434294778886755495610682555196995697967488758341001302366493802607107504690602734698519918932847158070693051810163326673638857257215493652066619944876492272637527202023407089689802153707070217069444931067336117025236019689208497347541269543618385272617748895984435566978761264532181844955725274727407816688548219368037081676644117122073985228986036450581227118645468036998088369890473002873132763792268962408457177580429221287458226749452153230258281991023373480347579491884631063467540694776165953705148970718834780398966919402550753914615985841566611475613425748873848252249929660021059297257059949744478420590524375817830182442949556245788952351424473714966439559016109703355022286794442848110781963852869282807888841508886252253405719921718907177250145312220241016497052127307133864553527303663640345254670360958781382796172594415785054119784140512093992776453719593372940491530891777428667074501889843495019981798966824992304726721510654627088311568362182219204568718981690878346264955457555086243455617947272569926620718589820417495084238554714076065048694007976972606566080584591870128088014803527097610383059665794948295285060424627027418581845527989412719813492688679026143280443345890194362334757894915335067036283021512877347965581734768439696259944341376116148969912388220845965591664881873602156954996267200514063115113851799344719320512149535370668042996245800066129066505828527353359460268303068397416251589561837269693170780154497164279396707577551186004617772873953428046786697078981738845720268165928883986606728082286668324999420682074893713514681972965476745240851744619004130490338752449838602365040169096978076352165874478773349954521718171656066816222473713048509791270994862769627133522219923384482895597644403675266214793408698356399536792127867716566744072278454955250700202778887831432623354251063815406302590497457271865211747627396866390904333777116236421890689028389900402023030885349794849451782567159351741798047585613224238733755145381511216068168193467325796763320692414944014482763931488600453462511435178631249377865141977226948115592975010668951302557449079492552660709107847463093070968018134440905596656494892602685070473269737291529457250975891132169325553646252847376453377130215338736779267809520803559772366369450714297518994843105126437488912492099370643959758727495765261445287355029951795667671406809666165097217795825827130295857975161976973182828639802473720919004245074748204191751363567700192830662447620582583221336964624033152329361572491361446878866689913485114349485352831210150337686313058386900805567898276913012387957878585096812598804965338487380925862606458214127190758592070480877475485831170777697609132497516008260205283648913834624875870275776004800375672786194459123506807125087342688437786113008731900048385825644605766452945556017391494642183080710410056434519975605126371044209219001517990639212854055597469120725752451150539431854126991901935692363860948557165278248542824069628569917551248165501886287240498565671962422900608495910083437993307211283803890799041961087859562000392161818429451591015500161125093877229451090980926995802088566824135788135852534737835437716571411643662501321232833228382969744239279608982589098415060345557527041693296506974071052229718518484539424493440288493777643473891045685164839046203697979438834160984283847572293223082324761126180159495113068626717550889789933301523597768956618908894351921124534721493247254125406551589050239809898436203257902316185441560770806425894283826464752102687490909517402624711299986761658844905964131205060284727104113032443172110321167639880322960166295831674422219463991160049362348284150984299095241184630489561439119023659556053908832413044946187276831627540640004437776358096886333176943678261999638636811253476945793053150001899156229183707793603502051521594102490624103801248685296909791397633925488583948309949547561161099434398613811021015624341801641689035323588572434985306666164761984140184117114900861616088590159539287775393062211106153618443481074961795044472837367198665302935991460306340818812744641897923959319689871105336840226112227144896984259868383703146656023924465713480110631300418575188758418668929043196721844925123586132947462832924407206568975100768140267763399851369998706246611582453088872070964297214968251459633944193706138274990922443219288752094846940256914314373005803822671170542910305351927999682032015472466345700822177012420709061688815068045238839736006857715786458707662232616676173480021955969499108589221110474671610692727083780830097982525378279527084035678716659930868590105026551056768180779026600770839311159635867975879147780300774157411743797162797482747847108517257503559237522417074884275097966515584164781187564129018502046150254329106638272164406035064494246978041815699969682830020099338674770694598091257011791673496305725581516450989999731724501861160144696119482656501342465607640212521616755409158257977951280942533733868135931856568070574607019988747295319848243805978239864808588580353336111005393448911704541044200335295736680597764934570774491848857043982064444495105417420470594503991078056839813466034601686848370480464412787819348156126090494318182227216013625215501652525517158865148229539265241346227326216208647947072915439000507196555658778650256059461795926520634762883432695819933157588503585181354104171436765729235345227218294651175772748915282036490270896734177291408027897446205472414009192522709398636963886509480651589447601029924921234141839800847233919496561664926762378328375183827590811676734284062019805501058848789493272267877335205731719452546070535839314907427279156865702233367441537894074952180767885936163999767155931870751973702603270426849765898185647008335107051963501099430412934432860222222045805409429537412705446540953429306449066832932793832054722476056664827341320257679059816549261164255062050543105035203131719655835656117685034584932121051813467020036207299815628772872336146449720742766172847052845055907696083065799282270400511200500954835014970995421219795471486598367388804647541714298497495211608198065416882234406211699289321572074221994382468441782446144457250447455597911090979142705043784859175662333189178753357392976810824947175959799225662118247532094014995189154565399249346550161892528749699577214722773886034306669782964609075578482157782251758616129716536103537072331606648726423429307845623352903595632042936601737530201634919141355046325162177483896150228266198008838519823696697328512000992389816854686402066832876748894235321876285256112444266036138152443980467305280095394976165915506049019343989195329381686218825578614303509173486243275937151982524664662299942221968474900522452524381676775300690545403096244082743104322236712347025758571645493316311552649253327829318282353220315523135422380022523144338474426985665605738956956214166572616764782706999176129795775110069818489637809588744227060445368966697298196222466388114149576924978621891243773997179612884666478257370574648313704811906756612037413738564201323716257269581045965991876625285158102034674595264298467303716084531403981940532361222380632488716773682992786470978400752871302459279912964281183931510097849185355781386253032931793650089491674682500428822207510365356753930203227254158677904503349416046429775268268011647489915094792811429764373116347630316772244286624503978426020054449970198662209663613258060096105739404413510925312600083420104817050253617608613570172084695400755043589088933598448727242891790793613172264434061807704769739053685735921447495385380283761432006258418757612802000752821547830144120161775726967697962580437965978440866796267583405218326709699959232072500689671709512504639992245872831583181076810167888103325457288487030936402266847012445852199927406646516193389451648934820326721498480001797613554693847584217545624903611175641123804330203106826175904431810157789699618570051648516147761448188855326675036611682067853915163945095027154518930732017114438979306413586225099052773190391825989469957199480071452626370945236143696895379963529043323665788588537203431358016482547794742822656538157876864740329971196188360983655378058118754680930161026858934765762814901903093176118366977987668864366646484757409238381662987537507546445030300863457574024516071160091405057113618155883347222095635161271456846674654214860948770253307606578766515162124487163719506745582883575821076668372950047189028412151590894146876684068919868874814680116314697050875365218422354010837348133075561668819776224314700772108252431260401734083320312797111047912371936676437186307476831850452877675942071158538624325941932592342621550319056730409613894577747969894036218152874650401303461892165511034023673323955990954786446961827569451727442910137641907842797329504162141444803413422528802057782305294100290084771064358578255947689394806287296550199007220307170345163027475214266389477844238862493229331175299764174939840786196801739596537515725005182902168777348824114559462319580786980099670775419488449693247839312571487833407086698215277845941816181806020699607079609599656107584336431066315247246197585802391028185350772908559639040593545765476517359011118652316660339101091922569659475228757929972413967632984165881279664977705468189735698572974579037790156869904447781715001887410059850668500317996848972382207586184798657637994135157977032640862415221443047982779998175706095737469191343370855489710880146353083778643420991010283420584294866723619361336368695864095014704809759299183061146011364614489579322461829265237807236609876192554352929536600416707876577433344936563223520950195689154319140955512251220906305978145957928115316023473861947155754192806681023957726212158835453050144071889263239184249520583926336081510597795239316094541830740789851413894160801832690208179526939274245171341355979924246010703062135094912263545647632589919214333347350167324880844147541008700287346673068439527441375613263227144959869884510276585091234247340752977377982834636033523153048468600178839314558887596419194789521657308337534443433014756128159888769677127003874367016829842250159716160995230907980186641910277723059175489997801542891113808234933053667488021251758360927305419136662400819476393165885334282712050929110487632008492175050315678326057070713838116580001809233883022464120810082063218498844590277973094329758523045558686444168414017835515099843691956723752571150509138059272978713387657199436120002572798355678672114217028987471087507589470017265952461472521722232297541903291685773978997609499023718518117782200077525325298518314254710461385677658940741947411877954141232258841845590965741295788909772454361408231250469847056783408419492956222768827401642796472773827018357145526567929307698879411621613319767299962100609373431798252927975970241864772377645616923481412099617952764842300664233955002786221453899438181042475857833041552068592648455250642370630523243068883527044175870831328337995888052820433279519876690336136910940592712822395873495528303377150223102541887975503490900108181671850978697917429885129141149698524472292963450823375736408235472120764871814223626428413437130380230036355667530614016945066731529286643259428154692821366627131619279427102154373412137520803662808341417791919868376053861835536822232064704123478063299830583458508116517191704630811848909935405852139886806593738143946109775445841571727669616982003092561407261279706445758779907709890617739253621438019753792538214075824584422081155605073124124869058578753305114302743931211082887400053079480218725631974811406243321560209098512802631915657379433593249994965879330175722052124967971890144462935576624468641019073467780195380551242041202140232071454622863810203747092159869739341750163866204199964624657560833486838634916469298733447529664102855922830037354480497392271668454410763723403376165187912794341506618262209593661702274435609406286172100251421436195628822983212404051677827873536057895641826334403084442960173619783743930507256559651560731866278041425895806117254477750838949959425556525646986332280727423176766723455352681445550661009225682644431675031492303812415892469362498011564135589130300834573705245168521704157958552481016108329498769564818047734630003441073457782684859841102103595036485382279803793691980014113574439998492446265244393879668915369257475087454319494666116837751696418451752254472089868646423437496042675584165512174584807753746621740619737786566220434339595631887800408914826254869257313085684330716122299976649430238098925970652253040940665594210832987286422039261399469818945942943933319006211990954407974151088987366612367582324278391116343992431514845609704403962763682351403572540840827597337924146256798881526988678784086822557312872661383109306945761980393087850222805123896802758439201140255315070508880151364820793127833921717465812586224398523445152825620855778363095881685498686047877445308896132690201768445605986210628937166345958515832342112757876026766513473716101781088155424340536137927721727638161551397257173990735540698571754137903263163955603180856936871249763174292458402593673478461014381576208582769764335587655859618654441675934516460714116357214627591735782780495249215256494775248669123083004220413669565131530504725918164235341205681441702056952704495377736076564341198499732631336924126672745282262209195465367478828206914828352721346454616016344508069482827076970363650653678759442553483426100474583721236055743643639609267672412483892997262268221437948084953867416483776110189252646360561644764852888911546058551419743740472264894317881002060580848140853896036272127902288192302679999507906696519113047399491020690061162084274609084026266484232105808192716269089500291330954448755342828113468872681680455929747395135143756153111475394055073357069733035847047205645402941983336986326213074152319003631318492349993720062635158371077812244901848999037049724799166083780235424830829379344873143932193794512150295786654681547609404759841022345210078103044766009835933330664724532221634732422769522030184173854295234795611617820718244709557182374159445476949596803210278719819966323137614355606147622430764439369984102753796954140173711381359834096318402007766976943267113273406909199419141066892654571010207091472984939273646132561018895198049475945278455604169703571145326067530444227219198076585779362911588092975965655273337695553592385367518032125092226300343736184657116935243169947415125491960449953286079277745450160205222752380155357287453122932182130830601196545327772544827756123987715880974354348040623424554753079308414911502098208853688299272600857560019004728454032891513572549093425511270544327021459737374418380193322384611301959485865300006692843426555893773097316882583890346179473312894872185414533034994200174776287782415338270724653723976605820540788935213775068023755843773469755261748215686296034083927690999402303464366371269749522720539419695541467823023912048536389897296933322555016083556228765002762153788184150829298658462087872765710690329045332315831312538722294117655547519145944994953120746531726167373189859520921784101166166694086991241755736111111647844208511658812821850103692225442472918439308731124479173934387582494904646196201432321755766849563672555378795789628096888204327408420466670895593764847952913845212471717687037221589543429611001096302076463341835228951876056535698211641420543870485878617872562257045814149726950581334097601414461718562278425913047257558766463127563900102960792247952910881925779347377049149924464376304442829275047572964203342712573718862391627898444579746927021271721645980658978892996325678024145057566591422333111688022357232434792308908365631365771455776948836044447689239727766641899056030849346507948548396990890280715988519309281167949146331578144553414475666950887789343767123217031300602668887542503320921076627193640486869373017999777321721703354560636540956955895141114206894221044077144493380507162023398272815468954499689516085276556333693905444916151886907193061014277290789034859844333451895627041773433138371414043557039189741128058907406648732588188582393900275299774061040554864445705995822419111367510886005763598939068591616855465949093905029075362685459469454519868788594445034338765771049843850945041680931458446346917415907147957224722673933832391293815403162183846715319446584838960362066268065635641708655886275280837303319585594782777350837091978468928796276472844543100015889889845708765665202284334086510836443637770532786718521331138075000491275319044375008640907792379214295009692584664299080719426559751417623853609435176425147130566845420326102601827089335953907550453813641554100258254625294436754228758081747422183041041057687582018735905495987921501452447187001563014493578206419054843663498973679518917567830536519055132219805827681475799933391781291018214657639198098676912048760800475084464769797210678107121282743350564733794595965022003446876875646577334593755412681729378558124008615844353152815606309360644166040302215912564559502324434907514462573051985895649121843950680530864481237330114633346341454254142746197966430305756473664168128514757004918909799911528048724114693834974544758386022077974863234802810249070248500986642615157921393756080898186956193694887675488859723127664666553115929390290908509526397134466333230264313238330012350229556770237229218946742665013156310914228272261298389374713272256266578505725996928540948690889118249929740356660774589104230023426875072653347156631506752642217235061792688491322407939165762656842779758641492890974569994991404194067284752098734749418383409379890901753171499541127744017637168490526343527535146654151977109519969645358858289138800734329772845836273420377442368447724648683923977728708901829107903396702776591874125801316780630385524068123602831556987875278418025887568268139665748178920099088788017555429438556169361148358716889806550513638793550683366468658379864679809952528945474997445207070144159758663823933499895552433045154844650779483978471316489522385644776673159887258744014083104248997856446955004090328593390903101056635457608049263413618022537908878110948224365791808092411031667411478431122798480034750456435745523253798880386205209592500649632326437255465587556716760892252008809984869359300210652568510622242825354904839422581097483139475328366628923740298636779543075826616992412357506565187001798631719145540071276969558583579604159177829435945999141566442708690203682078738574010176429142456785307018430800400940512715862608701786732833796952001499437867281482796775503127997570625501084663679015643337439710457305399168905588460866961230680619288463054700570686145766119819620442708378592780620059045365524440072314769063686707809479353702530301511175700916318642156259228405509165279286129912296972413917823602597759934685868392724170339796813460072567112439559288628275177244484938749652316778010941623393284684243257269183233688112405518790617661273463297336308400704700608082312625439501175491373544682537789497001267062330556504725724826779915176373409851094979826655704134838558655540504340462107005105809210585456087334680420879953500328398046160934486644131299208645404313432215629454814016410371590158229952496136390108871748763356338200547298426118514917690429014514493650057565798786710451285144785629182356138800183845174680556012021739295470294302099527006338394870761666126543429386950353259116620236415946531734871220596185148192283104237978964345967689167230470964912692567040506890953933083832703083709478827085312886751421255211261967475462895045597004888107490871373027187648578172976049132732338369809907817306568735995601280918341931731752743151549751086644289428901036003882069248888525890653479752364100124844135717501939329527393794993147539198199317251895897271425772141921512562635239345215133181209189593425321047009381641399631539360931665667724841238039601324394560542595524906237894629032759439838306879468497758201815807725956426948832728200338740134938036171099790687122566227357612695479821367541211566325981439363509924384411022457750657673763441266589297100324489741800083959592686246925330397701487361570448852293422220373051194948784198208353401212755735229432741989903070781808999056046792002970018461730790589578372951022885800160233378217054470486734347940489566321868875669857091693010277201767111328913278800934003570515174477821827722423938441906914370221109636697688397826308498655000079041872462625872829558820708872037897269959636240973260720056857946882692891645414199445270702176798599677259845604482153029906777739536890091221006556748339315932453564585685506740181543776717740552781780310287005251519442960213726039262456804625928686647602632212207779803332373215647665160072370065155246452472132204221319349021062456736378495038857695018149016940995855391550522890240068427482472191142986791574847009414651887712441993196189440207030776166771878502995020625301984461658487281260542705818163796433389761023768171492339156357797019708431054662043181491375824342976172239252763325139809893307623564626735584312445861269360383784649790088893623939289150078619664647597764722372992760053265342463624448199243930320981002298353301440352484079256795090547459895373011818327554281537082288722069573215145699573401502066437191394846972760677292979306813828730274582449556618109555150913091332773733478554078784880223855446988397077701841048062165006163459192035785884257055249418854996882065725861261315329954181225330969583981466421064508538561292870427207852456255945446222018310824533063310905125661056550039603922393611893446387191753026417320001576977404452139382983664972201912060682877857374655886384367549859884122321356227855871962774937338209065782092118789618050575647018340413220142966098805756025937069788873655149814854122615947987368767718011437977664620430788128085027862043537930813590452128341170373891361764769462735272436815202973570239491173390125188132297720922212873167296477883226627367673724313314336518631106872793295200180088357361085707752748291313140285148749026372747285767768431369319229977259342186355516243808676577412217954207787536646683270023484398950354892108397605347860437638586587259339206166827743616240886338491192176148542036898295015069875370814783051440728290591434830315200377103941988261911732252825759199768273857771302837563088859197894808259090503130318475868306215219208439204616031766565781512839483246241395376562206107149393218991277931236925931448232277795862435513687000306729728767804361449100907319797365447257336381731836441438785630156737602628354034929325906885307083528398323687220683275297503123817971117873378369939456233791841514852736227481027454852887910861750322312514248740197957235527558122346577183117019944423443212708895038759746709184411026100636010571699174681257136757990827025002982423405323094395848026113798762112293135978572962391130423120571454533070303311556300973899499845401447906477339912008539973772267191141472501901571976618940876518830579202011190184742326476369913942997583199144348964814904977962258727852736452096515604834353336130167733638402489710764030783141961182254005342952487346262639827049798960997253319666935265598523018637543806088006503087446069172452678058897179989149328433014396509348926792366603164036020426000244130233922704021244889400561410745623680918941196920926513556704730996247365687419301632184370047764228826514710450857638017293084659132847280938684408155046708398271133943589353886064179119153386388693856306828475693057505946138564213252192814129754109759558935418964130504518400837468131899512213787613217380604041171164179152996418478927581101255893938373398659481471155346760602411939890269170894861570650914655604360780515520031923958681834870746300160275275018093515848028883811643590821451828995825156048418725847500543750035185908139376711093268767016700612859803081783817980318156227433081557776261257619632945160262280097899628959462057082491462997463866625174027538642910401650958260544598260069804675962230115781464337759738762546353294747525810718065861336693825148180815501496307792269564816221217965585610424012194697084522919595229928076651520782329462573595070150548068640458048034864448127203483108604676467564265238767344880459355587785837626962791781496101751486517760178045270950079834109775922929227179276246660558705672085355448743678549836087962074306467066951391312081784157307646117677738272421864072024831884624229007056687079436654506050092632587923194445408582836056187820983568445722183635834303377603500058739598088859365004355452932707603242854636447600899869374845896861598562897737195554419377539924391331828923471144554689215296928884499241472679165828146545512927177869374185742902178249246513130640755335041655212250023148791281484326271133798748905548967239940376821675173779001784659952665372393391067882713627966814148777348871074224214382993190405829155095358971944933113425889551063284160080480434317225128299750588545651023619881213773671875486010810167730108580833547188372823841932212596461739760608323290412758971486773195509365235455039595782317215681445445962732039662247066732898176190248266652793042824970741740915556119281367472494729508067067040932142467295566901884338403112374819029497010596928331280497357083545048561347291639340002426343365877327939406810648324846334542918165828761975393644912108564728576470430142173738758945093084188477317343533103009550048003419113622172001808238135433424604174646569448890155076565792398479747086115082930205044407766681523262177017820572137875598890842886622700450801921641503175970943954783673106781798738608662266245962863483844148058482736265740547549875835896382529075866020533488230703545591927556763303319317465196298725571602280310820634935238017810104520465134110250445349224900199381021739552639819616677936760914260023876968563920018112625311558851428597391860403477811999163124907137815977658863403237030521186002529849356673554176779836485398710845871497167681450104994511668534483113624955597452094282542060889222689362335266664444147740794343291929578947429240785859393537165425997131851760787091859479719636953405564149667998277733173820726458068726748582392279630300993327137165329012860766332952282862511186779329436688952857495721955909679112481279376047413662066062906882923250834764707527106413615328743767174091488839995667392897960003170828695274692239054906207331482052240311223878973630998826269188338067190628615968299427200129647584815314436945651258847845358925400139649692036571220123722512372926231152794973113994866468414407039367545019088410686897405892625256441483976304579293252372447927595680887124728504079073061118305556724614004797770133752201005922032198229013750676423868869119544189467847523568912248122214224128615628145684781669463822834487086192601103561165357453583996041050552931372072697510661099757707685726452790524748412048841743737922381001127682376456729077065643986336255785114047498936665967384536644847440505759625324195874154291548355010108204953002788099948688513308629410201552470722882934662920286813421304385687599586284555656622179844861166887851890765651575402620620036723361611004275967145581162379377989743358419484322501920806797098976546428163226923215577981709258856954441001598607720953483858730659347183078757993823847709293546245737202572872948188657884867802166165213097411473358957929366465415614347831009230231641755086876332236635099731233392238654524091653232834672010214504854420152239652166219658552056477095760297866003221886967166567176050608550717963985874005787616485374804918568448399332698328722795312844965533817169252306823769385167991674192100951242384049324177087287197706286215292493157767718096988915232436508294895635592504890509188112602525206891790932682814045392848741356740065354442817372475410236157037676258240498490101168273414459860180169345049113159604446676556847072457406826895772917083174771528157942491869259852609465622652976625267900339221753458748363874194132964694656443138039496824814661316734145041649304384079891735800633902279091460025803889935407728816345945240812145106855283543945606022902318605591799435775656231564097648866821422580974335540611668003557780715082268794348747831694116186679863772993124118195539702774120851238188160521345638492879824002604422233446954722832587680141746190440310323156231004601583405086931646713799584982677703330719723133509314118866543026431179692707265652196346483430998593424528430951616700250958932827382125868029845675880759727588357243165677120430802749969146381274015136156162525327639101416019996741330259311510329514810713726886060697799355668746675183882235083554757647501957743386224654769242479004487189094318388853893941499131892309280577353280539069260301311791523230808160294150438508284084496436579233280531604240536083541718819661362721472579433442878257930597613356766019672256699966214976623942048240329936212108087813780048925916421435985932853687051782017503272535316712508876286645196699210029157697007735279562858758590033134338190573261626773606204175368045105308094193134445902342616390415919516856711558787288670053213061283387700184662078665109204122301680623672141305544595387713159433843970240742657753096318970060964670196458451154594060948074778255339165918158878829117388238306058291609713041537401537586590391510982187663751894937374745857424296073235746589211517344164665265361819932134858830121946385064570155859489548819156104705453774410064373375218552006570663904397537199211669104666221913271793152724711502003627317920857827366413961791130026041254229597962382554684786507567261767434204030887816147928350220830525147748087520428862716030325390919137788913861267894157247221094025748663501973196128581605541867177144539679312817811935729567572808793635248362029343678400198069379935344880203666115659636250151741875303333070834345595538379053013770162213929296699218729577754922547593587938588143447108094957317485704959413517812035111790036756539818029304677732378740084199664880702233629271856957189667806888637152281447794332417925386205702739428447632043608948454150269433690927103378053538168464532894274172652186257486458627664079416918425214715461162342531241903522565925122813741045590129991643706847981718219989346584496849880354840298568683047093708456507262668400710812338282662342691007226414836345264613862680954399723577890227472999717931798666073551646821424843231999721514165323667033680378355240085156862873476059192805583572613803022132167671143971973520282393763003593147056816378420870865747127225897753898130727518156364085686068062405906553527570005540649835381454498066705028196212886233845065171756448431593225640390919799804738230061724364221942348881269940821027372045065739485400733904884516737190352849528214806779030267619540370389279729719493004093803213953247786674042436492215894134506752163259157808041608746117615241520010915165659873199105906457149290755850558993167730602525496090585798505299778410874670460567554316066784275807921507031056270550836584468904703500679064064514565137828714778678837687273681398351193036601898119462570975061235533245668830951647779150324598322261094447520047343050162256738971136501917513951286696485244130542797469315924900737459493998511685557049292334401956336361964663320510413623086653343586513130892077072766275207228895860817975647927499552110119494842610707137574434805618298583368756432618310053727776741017572742548559645679143699581103445687223091418533988635643790117137616019990438648986788724714362294995487282401011525880993728252440499101710814967235203860726097663641639800922382544999599127113070123294753268983291732369636013748577951238900369140373281914127405574987336241293511041324338993677547961068936891827355471372200021387347544786109521321011972644911206778317081714511997476843441400988563266992578173984898250299560367855230229894156940205209222333386701065848915672745120143276272481370979834853408951892572295754568630177246840940242514983139704886723472366367815693117657133389613312687429284761148253108237538903844213525377148061818932627691462671817075665584571163913935576789459766618724461655294272771868221255550713192025493049182466938650920206814922597065151250197595126560833584935566157433653268702879157172368543395719563784485008509139792527020508342683493447720990949412090153188088619528459202468045788141762756123029027663023340546445491610693881201679251156517374639657842013898378751847613442716118913969121472296372420981378035620996644267453333111840993333077972568484006899626539008497076150391380804872446190720240021837937915575853728866999832429216615684715503430587849635199672628826922157952981431439705903461657426444382910777687965691662605106354685512726704804564659922809478770850496706403867412940690853977438443584777524703427005276932118978106459831469661457636177063685702164711853566944027794154348638097982628931713663112861056715895127635938252804048696728121942610007933685470194890474075934615793055338028229245701722082932994430388418862562954874658193291240652118515424482298075651247113547098474737115376772664362347743836930398972693785740732776843748167467732843273876823819914110250615128284877580239517729084463938274864618377701893062054655026158549032828199598719032915107360705814305643447112507105509519925826786031045061168913651887006950605702004006398089828228954696729380343556253100370041776615124373602283594414684741668836271514680259928624619951648559662549609665788571896728118500846024663073585870538376807013876229458417725907042506377508883212565253326742097622276679669223625873326981818618143585418653021026890838880780032631367420023690475812356531352758301300331527640044776768150785685280580604309516257958611134868817249670583298225769778470652018919356709380035800649135205657060008680796350552951402259771805568698828514999437730979871446064044973241821785363039447601598286910616041021849496887433355631821470480954551613154342843258637543778977730914894273303505394351078098183654262023751397401845486604120047990224972774337666021050513364054604582689377524675427576527760974753855762534670093398540989332960157845599996838743646481212588133148384071657147850652072588876411218808041256793343117425635841965595065528548404029030902177723495843208509587878744393542324962282249900376402305906852835831118068552786088251880308131282192256306234356324997064233602572780281672274167392668245444645283168689303925850356924225745951526131970777968063191029386564107639156408957843017251703738859259812963241454308431890064679535922906706113075854782585604679144291549773898203568398914261829562117328173857493535445911413309578651069859226468064692204993488876719748233821913440264908165371972375204551315008735185181197669461916176204071713770750192370317190373536743513941052501255857421225629383253047358241709594987135694094355046170221469378061778275546665831250599032654031696432270162194740690610863295057823319511528445963401722523575913850755133656152008331750275434344891050361789388217991506716224538449147624568659734742614506765459376774840894092986348686236509594729600095167963949855866776400055745620831642814236062006814497896558682032622787086085556784137060292344527409245304090994912716868784497415604260831886703848529422269925120552746979532708009826170185709244688049509970856378522204007579360557154684512599552496763607299881407381566527546762801590269255718439992910193927387525875167013583068883122356276390397409219523228129419039825037898241402311072178826011123983188525671058165078599641198930842062872589698452419744440350869006354843258283263067053978527091490072955905755812159681877505141198189218829254013143837844227377465656645067698490866103637090750011030495906047823008522609976711669784001340908545529026744839073292691574790453031878792590334872032271106318728967532517119339381454381423883381755146298194963185394663124780443304396289959029715957450076920202290588871324707470828250858981885756134551438136335730548765918519565100235475144591624617072122263481180253332145330497741842193003550481878952474514280104835234506914538048858862144044728452938806772777521390572941430958933141327590072083303260117942148171289457220758312034374920790745578791287002995513200035752708088817892896141953303124379985771738030692537848234818805865915712344107049792790870397719373410631937997802193631967146556060439927938316784146481455259178781757631574514497785981785073930339158183559792158690591772544360687184799812367086818802574096127830633094199523608262364237094514846300492897706234813648032677061602878389559917301390345002547750740026753437366760335589938121591406641597248978130566986539923097788311611937130345723780048648022461226224455232629521907781467680044098217997305143643713373907161128254197922473607216660091282910996232903396826130992444702181511856296626609312613850530762802371660221478328928255823066915496367797035045059256557112837857787584585290105090927193515367966779058067792938013939756336285924791264095418387206737902807215051858490435004440771159767053401605173614595700159735992984218359422969372098891765602666205615038141984363587083852566056155985938725210734394261785210130760244611249436650312334701001231031810756144034096668133028779644367220425169233369770216872434232172423539998617881529013355691064202438025884835133480430683208457163117023205377940504148932611162472946719747354340813641086526130797813250812799984006270755429386276964567675264881789535949031184020087205278366646231918407980106821361852329296058182031088618631806079481415438792740245353318361352648399914873124714979948678421086361527555213151760858895195300661670980961303917879599873573533549195213778870246965875708767126208337819234051455133322829147665460465918933444883875547835236289284383167994985525893707799505962712957343558186417968743937850928307422848003415214914703546565816294314225689631034777974308436787762096566897696845553328693375877002427127712531155538950136228938973351289163139999212289557656491929574396793432605689891571041087476877911861720566780751257217237075182639869435601521672070629894069792659892888847607929791669441195116661224258863441871072825225873942889636716519291220250113187280798432689571740004349829377977429778434233384781927560942231421970328171223051067236850327464194125084891884001576118863021319596270649011847827568142074432120808815072102296791107122694770603968108893655197960565354970670454834879904549554307483910897817470316561864020946201681845910653712976079054716522458115642872550988365032458660718566126644706180821939265563740972047207162190126291617132883323982131974581635748235326141800663815511706828345976583220448621818303897420267160812942657363209548785457700635440300823592271523490028303221290777793021247986395292143938328709842491788886311707106028278036075554767425877805521272943060985655662340104365379781291370918293677173810519882134774449628068223342792731075366392101489913325320474425611447494799544444334860411320909712113249284201063915870830364334200639883895040167535424995641875324240678434933285905066868943458751884180941030679281451978616435065532520041518540584789899585754017215838431372976427423083979903499839692547790063141936387966438259810665283750475989494093612943087203394606857624993649813927245906827831829599276000413014391268039955421524989666495654371361673389763144574743183357124395772745986331450194804738820231890194148282077634056131999707206909945698043844752593011406012710897904361413417806452698235818352525883793450962554489211003870054548483204896881436765307827974739466630734995956494171270513075666557696375913013229963524522126421297873849056753553266487302221852209590642377421788711270298438032792527405540024011341372207032217501682443411946649551421987655849282045279914572258337119115361484676428692533496564485381429141010094596778312595597081709796819395203277020082862377044779854627972335719003729443069849854485946836479811134119097011344440493875048663973180408439959062829309317863012487649186761060279838169792791803885261415314227430316546853903304348658924010987530443125267698419993924205529399318062540171033227890926647088229495010684460069915852271303259524893245522961451070732107970791248386637376277689158743045277881431106373910867458178391044052611694878693872652406823699295377608921923683114833512565056264861352635959058009760650620885820807725656646413258521780135421303971873085605179061726330939959625428825811862577822865310954138082854173228893215355768600180910864428661087629072411475351476978509106155582740507354742737123597241473219855710269092306146220351142651654562475636966897738508856062762378505859711246829223322715368960871886906853167325146990015194757934130099635198279460813644613971397587031828362794298959287618121483413165243154446405990646312883499244618843227317935945077997481589974518648180187718225816905402096806354277936105293749647306280174784423965449446000895483914471373320483279784555113781147572462161313916228417505813019121177332191860874569668320682596867837749623334794440646006501129899970912856840152911181308083359944009511469396752634232135960088298579018508225361232511924916496058752976757001796383028357620226973657900269146640081548604723981112436997538740127969555056905183562053415433207228140727660920497478229485249746507240830172493632556152929628674817227407952180280532747423413168194126090147006256622080010474162064145143779656499535295587474178396736253908850764566191081865376272585827029244504252048458778001409242587376400958753872628912330892608580093784802177329960782651091830361702975055623219243275648474917491929307028335270172231248827296453895807787719555781296285302407899600081922722546192544147769756138025978891626970992939994511329690959784069809645959285010704321917187586175979494948699251170794850368814313500724418169757932359016169325571432823460043578965431384069187527366543013932534591374540813324035006555322587363031251586637584551565045995980523676280130948652522215894016634028899392052591039463593251093954719916714591390054580767626115191460033719599995452214622892024778344342500398291960550541206003291510747575636610988078491368102493737914439879623755921647383222708028748122780315346940657783563732555312447050553243700212278759688534486415750919894846403212207498985031413392936228817267143092952297683049990982481052548537392882540976221259014042473389084714399073481590143467926997876252405768988421412543788889953458248934451916239167861481558737974037373993323932035065676875621954941290908295886124430344309820267479459453496795179474815215075243119496519201770712079527119054362203353391615518239677217659451903192035798295453246527666824218520723770977471991334841174798347032330591380503648648463353936785669625740554457286515480739165477077907330858553553326138425323065182507229318126743400678333896232914166863397360725836891971813284085796591977127486649883521114633623098267093620232372755287418619066410486522186266054034487280912412860897178085154686409832949877671488154408743773846772362911218104293489963769310666974243802454781491866886969449397391739352851797026329068456064890385240058473378339686126574916887071107914840495634615470604780845722121270090411185483420002445976685264988729143133682634075721471830305657038702969873935692909321168671485436643209595406420461431274771560462942114633348157235701685236547334096132417501015919972434715941511428417349351474984812535039472165068685197707125558154505716931801025670445272917076090310649940224210628969702383800029695276010023180156130097802203673819163935518974927422189447041432663856021595725904638658127159139841173425133533919920198823615175761622558377781855401999062375091078832701278576852849856535174166862055906767243600165453247930195593177683597943539705869058697747717894125504733566247739912238970474315906137184760134567534808754556857413253225249653991785566475762415619977762020761947365265169008884914705222493490889238355569728830571136720323361240531753664546064195941532607250088170676465862113427566824814890182181321809505881943741763682082257960843116618394339053416981086199216172176176114712763524552645815391388107462567138005890137921930397809957103720342002653380419162047484355031798094476614912594332961790687298946418097805378296288146615270613277383551060661636864749230260428754842258327174151727371416037315980318260721782905535875635400010387443077478301850601405892582548369821765687378128285307414124653679783003572338031322421170325692313985154665085820339890557772160188684972514170084923420133933137987064087365316735485767492360896649246234747209462153350599744463602912739767603379403674187961754370529339351544822481089796526461170935151954172401639522226876955009757648581775841094422672924780579601419850540461819218532779494991733701526499903094266272534675882571210414977049867379661040681948782000509355707571442811424899443012886907069995246380460892207106727944001668397802775329556030411330777079821104850946126736375925522306541815483264554509400546079739802200089130858288101614911253601232951330049505406852919356037819939575057791040733060257235461398544693521830004089574213034477435822454371588156950705283119137638932405956192714168461504975756283360928940176382688617174832924041107553702589536451734368467718239847841083914933100732749592267259915470253718688789916338527469893969876463232410024491286755170246288363800993144946988948484189258614314523516828808911184748517198445875667192216681462807603980216759725809049959567112433624673370650886515298890164126258776274924324251705854279516309467170383548438353435639767544073895863818899003856412302555692035824941402349353704600404880395324212060858501695386054563960590491064283505581354284224422687657489525943560730872806448840762973139636847461398138286526730618101424549284152550974114855639803437273128749140496002348633305825811298728069266622142148577096179283204803398837864642198339721597952670837963720012181877754980280573154581938925051594985320724964799098696450995633553150107943769492780478551639502373648099999793886868505345099304138345287392064614287187473780482022147286976680063411354984301836726421504857662960495284745915383813226539178871618733909477374471000436301180941676357286172304636017611729888334059452476877103498357357957456225031816225791855405253699333471086100493643476389889091095415761971370828825211070230149418419509356084947734723443661259508551481803308529111422750458451272153008747863184321921374364036072964580567023306036127278658675594934394364895928972775990509531733523526877485726820384891677988455628993064288527849786389794722087342608572160375595589452341232926528690910167352229881208177157705485957327564868455878676934949966473401738192506191093583019812716123311749570078931038890591013940663264962150687073000695742580430654675170500055109058478338777475215349286649829894075200620395408521004959980094932394949004095467824981647101888637794585585532309826941880906183485028342343342418929598230633051846146448335903293061893805258427926268626061901719336146393321378501326838585134470223995878091555755280397205753989413754078255408823613269070379732536762632241846134130066719955290085965640199836163780594536751926708557122868891971479477559876774756150138928810313418002326400868346343144366035753108267661048926370975043874187133580138345110581334975712673174255236216733406054285459992709648391552134538850706021408916446989888109564392070618412993538570678493835761195850100818394925817099125454495630980663305845985177876409354434666053195314810274115026686852492698055045090629612510950769540872292465067237243269678160317619754640618396697593532537617411677963935848183739062755747947833284384244285536875188639853092147571523491857806374209564663920847340425020197929783280916889092527314066637952937425735599993691641218869400603187708075041928995859227293130053174956718474575868902030757385073365251109795827994351626708062373066079411851291480137313096935943528378073388771870790888113875219569564460987897907561408703723608813726368003154820806702087372455083107265624858889153761985135824582537682070653859043429936344472985044721458554157907232788044114740530467443583494292580030162090241682195938251527669990196152870386453297516152606209431025331903887536166356350478386548923165813457343624622040821430145474365064433351988102018954935847213550866954636828945778202134399446208960449970527398967464365318561207027104579883002699804547390890735726953521860072211450303066594095108410951535383768767835699975395578098341636841348261346060694884473939436297284027817821194221074826539991572050187646342957068681193977234994757773601098683289352924806391003125583822313437603111358792419607174000034900574219187319004388688062519749381481028599498319044690015918432519020060457497227955082220220331116400563825840796622028969628484153048535496106896471062644964983419356286455886970658413444297275567107398726417902679931145615344849559428283196600724943629134846491814194760853730872501139671290301324984266572304494436596551951158311374315005596025314369575413309220048700441073975240224542220992788447055434828224441736798224002554383161362212220432039794368466672678708244809391664764127648898947260837119939279308962570389840138084521458924136049283089215319838752564999487120189296373047019792389699159108804979843734113525179373061825136043665105687386842904216852955663746219731330577011759103697165952047700371493517867741369596795103303856732155498182026095671860123884234359032326531390455829626248710715049167807256144241049047876066720725999588993905368749335938110891017545144653276659537576138727126370363978173300282608365522260856275517374201545901473872209289975559282610021971324492889921703579356475419422582161029740397400414491807196445815461876983059979027180653423863279012266648199224017057872315046518683169665716440979183549972423151784535801613283911619508372285696100076747444829498925040789986262893306359302995429265656500726891065309285504433166263231981345423000122639316490718784819940063339096539923615018888919208677111172685279301494148199009965420666845085780314436304822461507897194258002487115568994632726583169384367627678878233159472295446856061579372412725087664223932432339681425228021065011711645529541406160697828450451562303923498280217721525036556286474664055514576954887820052628540602163176037838779856188213422718576093548732879766821062633478989319960244291739328300425884758640717956162994540868780233344454174914792310741014375374164754808879128582599159891400561794986835305189445125347432489819217732445414264622684879008300050275256143202641010276668361099032328314802648961162117241364663035110066608260095303650670897146424575638443318587128924047788989894538167451325086896570113801139568104300614067623060487793929227873070878237089764515533901871164907326092958215900198592750073727970161001996316241864045077504298272393506955988488289727895401907218458141977114528826171330384688795177972464594228746329861461571870255638592010359743115734813551804319374082994835265127273773752719601474661007816798185982391873322441599694527285720268856998781407958454696185900947516054900171789667890738046779231803280626593725610563120036558427515854048167807872369631033757200570597360320032426038582528453299957198827005656375860556053287836051444047392466798953010367336463992577167749348892879352423918604059867003653055073680469271424851137612547575952550969720749738937956796547863689175902036674857149127663780207541910859630244287427665791534684059256900703584152164058349313829560562769112136743537692095448406184522737511041037483345264646660083290103751146027926848578159593816476828594887746161173816900408680276959962833465491411996111710733814424838709751219391700165863288768234971225526851346599726934942460417687970298473266114393075063698905174709945624846128910359855408904332210924442064847214251849810488510399222186463887115916311881855373333952561419061488376029336932972545362105837788656016193171406840091553666619734343133389468842454416299820657156059172233994397114404784666919004864660370711626204566637634899796063590128689315909379812171613464558108959413983659121659065067772500844587730625130721858170816874519331571747712682665664651448991986737725903514604565838253060489130587366944727450057358672346338682955341927962270397333617185978842420360419038376581729386956760913087050337416878808864185092236092188438981896224554221254831730055714385916524164347630567933232825382328557664554880173338224317347671194193471140988255153019623318078966447413653783498802775448098371127127486870167130111500767045836566023504223429778458399170529693433406846931643034361304274957492109809594393544708038393376273336719400696935267198013994202733203466896814651516693409729230990423169830634801747165212289079277362140555015789643434938665528832278670986929675405090312249889037323492419598753149271931918666831658167997061208646324454530248326325733731960220274145429880875204713505576739426530520233252079713448165947276693235253715401575977397238203580325539788291137908583369556249516651964304207928413120620704969030448153078744527028301097047964863398094045302767638651200220470059902584502911838827838593577097915572340974684237541331282835904972488732676162278730250944008958785857966228621258626526308945785538675713786281158956929737347383484315335467093407784028356356247651990730668243130241545811323889730755064532209196254439075647420312625108065230870387377716275875059227575547720073753241790343997255586571408134173607435461888456332680900012220231073187505101223554835726869765717386692850887494271212604030187589200878909174110886309283740515868494124383478721852372231499233824911516974160632613013972414651473253317389628797178034036503436804899031346688727375726775346064444310611833305896795810760306503433473219968287245557878832546550838675296959153381348155437017021933683959481893900372119986697790795549569021722987618745593832993310444400157447763465335259458700680243687820981690278756344837216058172316724391533033613662809595248595377526527044568757566619645054735644807518876223626434180948819395907569929758428608095472204790454617774629481077852023220247854211836690916125604007316069032080439892340574288527633714824372838864122442331821867426032319784780529768931183620775221012811283119741011271351784704882235856296322216820680590826057592082227570587975774463208248803871422680231444068739002064083149312951707592705646618805449272413118496848650005802010815423084917941524154096795647030177863958554641716267263279608836666649361021110676370370598249530905823326294419309831653722826672775787368168820824203521652723258724895483264689199998488799475168766552034712900585321753521676273463265433088997600883295781115854743791558154119195600725139630112389083844739849345130749269095166274522219577140197920732187364619697237310754819369245551729773664774999682910784245670283448449901937174292139025746219804793119993766722071030386603725036412395357165479484814078843480918232498563368682234482542122663022559319272752439854803331446750741533114740947566775260672587360011940979540353134006382381063203004162451227692870556245773712272681098014328689399309658645898113877743250475488636103982424158842207935502427655363490404152890406888618471044761244930906284313146528905777236094895779486788375600505884973689486210104933104539096864177514721430394430054534661479520266396496300889677413675770624198806083044921516792388086105834629392221128320517783076013606627264672901277323542396037212211889185225689348458365227147565245513924941806528899377121406215788419390635047568032414313797911930528238400687218344539437238874286053473329313724590580322248813098523187283951270012935231938361484667951391635891370806104131683574644991560443855399349717179328594652361683370360021010593728419027252856866732437215269048540595298474162359914990070677262298593057695841976791392979318874772893747858607520533940299482508892200274877921612337926556639675807712261241361323428450837312347159389378785213427941865047610987965518042144000964839369675706183319436644808566237773711628407460430218991996827278434870396918971942659647896530706128418257885274775236984264857595026449336590679377507229159408985790672630566797393912032751482444640164491256661832142750941945147852222956461774097666370042084871755848208426470155893342081764372405893244138077256079945504678000941300163305807634569609586092225185888530790811158189032278359430552479876109105225195171396879826856135687240989944447453648765419216887239959122923553951648315274455869280117804055067794214300788918850686141941984444985005934639686050872693429182714854796680078570441658874017514177450072204690445877988512801164803703079460644416733192746268007036920764232342809183608898148100389019227527592545900941771269243734694552211277141452057730548353943352547141820552931724675845476138911981990201859059204081250626897581621265906945094882105809335342071226295330666119017690134877650622756010392530674627759040161019797144337982805501042890997644071607840234075338284166672927893398371632192194606640971572490651179564431811231598785014773361672769167848901808318829150508277575475386266599670069039942954924005142370928838829843013021270602404020820438652458235705020156472054702139840779426668929986407867121269143001337444206734002406396642744416310713650258607939342531695254681976118859886907436026903058686153095435202815052432437733849465690432271714766366166415275058536104872812635882263961250229467800785910717120850352148524827577969615405076373805755387985599310267199000492793922043399965318018568878114580490620635272331778395888241984366909214334606659018768605190818004246359328037775689619867255985304136215966135775721515349912648016375894215481325586911634204341719392004856203107425766101147643244368136084250036900337187456758942320774061410039406066022642613654822607586761883431234454391824967373106418154702551340029639137389812761883698216004962884808479921993897910543591614475371102573347379807097988240536163819488445221632909160177263480459799974096354745777097692846189928826036257406927556183307746439416318488445919034902861907358884605274550584907727503380921789177626886436307261861937344165175942082211443795800949806671685136730072094977556892762567570244790495450681636749498401191787800742799477052961245103584526552084173156435998214590171622254147258239510585371261399839548980276161215490522179836179111884401257695429497764340441526243378216011290195672959939548759471547771718980319772939828558658905983616804852139310521575837386176307220717532246112926279962768997813530470577442609101994173974416484678802373607303560558609214777669500908311250393298327953683360315525524649724750872725032321757203315037931477431282628448427520808301865885986509292520997335858121095252851607057697730859362605231613663813330908907432006864984359409671682021475081870565874380224471240474040387389459198270914487939236714756130178414897029870664867166943931981629724754458132734044219383352712489327036818309017774139207705076075293579947360834013887559546467712493755112614949681301334209946959193983276473218347983731300522066414983934407107193422903039514044041068312594602520315762349576323522913562650999978682440684331518765074054124036356864271152042975358383980838302089732050265953744230629243923903448798196774680625403167972996479680796970958379622506721077948835010196325547477113301768286944050767005740337270275944332400042979023904346763426692757136895239321543916684304770877491634699495172480213386509316166461944493048044741363026207308382943604256592742196657963403772305015839066687162033461791589222931063181857233350360635087386509951329821762885239189444384390732377342060247122355251225647239277874431965857681006456064256464176322265423862434152957728854196901698300015231108877390138736595367083707414060683250593192043164548950680134775388572608180632175875578901406719038342339623403756755712574410322304574063014476673689491541041997401984274109591410813373831146706464358769197645726160721976791496939911216653602295855093109503954568334352848820420854147563427919409802859084637114306202404697796314510134964785992348691212468534712612286234607318993828314931460222016056810619068222679045875806744345776120114103504047052861691718678083027400152532334003402170623237797059007998338177761451827938428551424040538387790086052325396285457341290868706339941615826346549141842629053594144922341914170680761263792243248750259936836839182508474933114649502776278338372435403020325241102629832398188763542701646429906436835055049811897883994675078840068796284212220010605823289072457794388676662326438751466027269701342275384620104457534094363026508501994913479591255932452556366547142552990459227435142964617439559744494741091438828706711341552760941925508733282143962712768983644705544713821129601070969736889961885806434186337656595711110088098183927619316556191232180982401315323947616919618910297204232365431713688702753341193754352359223550957770461250086227781523971495178273653777098931212917966454967770539867277254062742496224839919294914880609293573657273328203795123393452302382073251504418583951202839449798186697964080271280662870621458236104395182496067102274755822137852402407867865573323099630655664223958176220714518995817248885514052612360452517872898318682879231919463993959231982963959595414722642512982850015116325124577406508506832480656300483765522575754061519582836836864535685904271204922662648128001841285903032503616554367515371456752437354954417339766167525047163797006781898505722802362068228897742575006810979888010078268384502306232607711551406881970641940515020499664009282070547361274459762927797075267384790564826940245400189036292594084238798490083882572722846225214987330260560364328226457517851301638562367235002320105942075522653040921188201596848221362080908930313290422286854370833727567144527919624922605096726379379902575137152568348150584478244242803576383787556582042645296173625017567925510550112347487066982294837603837411905680776234022112898825000430276135793877460882909342492042000786807965395631564507203829059142921183679026476435520251660424408431325817378589589460524928171986799879088964978242147977206589892794853638597523877718232697221845244759223164613570450259034982495352478386477864304266588326240494695937033881616143351985277618526479352042016360131928942162950119262299438879775738931595218651186212665957694598628906203314503810094708460192688317827171264173818430187526872358268407880911160269228441564832186346214078594786232274073264017464524528967851312738782578676420165448589357974104597457565206975837938179535686443502755179521097702704014262305043295333837045757819766636190387706097423419270264727538469142923663216217627096573513819494899165059559141816762785805239434112522529477078697390955318078657455621718225550849154266902019959554356843486428879963310055045565505610049444990263492322801263840206772696233979888839894828796517285651835617798912418847798585710290709160152637926449774798532992864700107882713208522573323909638246625957641425197644023602843855952580784443524419528574777876500858174464325966999984304392206024792564276775110778244872534086033302082407086421374367090780227317166392777828647946809876649790504906066615056443343893495975281730227873835923648786137340974570675463955910218524118511675830500101879480701058935923659192839031392291166848507902937363738294213345173282782502229828367908100946988516331452886689460152629663577467454491027050915102511548381373459426219876719184353595207171836191780457646043261804961645081636786542918931600231108652585014802572842846055084727666025880704454168172387837907528817095351923947505997308242795345422832296390549341373597096474618418283661364808459337874505341174765341582611075086943216393733401028649869846945489356470353660121931268475046675007682173571644240830300923029849873457112016635377134933804908781932845225497899376717274945130143192754950808758235109698941335605644761020962871281167685418877580853616432232198814437672355167550201649192405983501550540241824891166861616214945195442310120553772801263452284418649832773669769743094260837622601194985897440601930626066041186235702337494477011032320201536599750482439137474809852436526497001202429119544871476791095071641666908273261280274947147000448063621239740452323117913698302936017263285702306305748837153530988324314703478271079705841237831940077914324417773799229173839233059114365497836888983791366403722404884629816146388474376794646775088001390915381341132146633917550856853860883086851158405570107047228203016812271181941340792890140100274203404479893888780965018883818784600889768638559018256455699370457423522349437803485603180586440404699067761958104395888447323145031456971797389996145928446525122274719219288716435130922327452675038479372518450098091067177881906882848853717722999901727362550217454158860754176311033784376053049134978574670869885702219447641609221856416529538619367832095026127018661426501739803834057794441806187714696430774201353912810922329700502784212560184723494251277031574504503855360551066607848216232696134172367152833477384651470202544756584593836226221477896043956273323655952219706423374180053722809726193801066902714901059521178013631759954489328850407797076193199277247139531309432821212836649932465545239706187844607886670084238151381913794933914608281575217942309551256718188397468602420582285774171959369236802504228060883810422098324387508061261671672436422580425681761191769738700072194483153689758041913639919480864200101359053730855862460672105147497829736521606965543286732845127035889700807451952444056720160316227782319721476457196114033075366336171453433624864585394456084392176478959922478719456603565067936317378044494088888588442528268407773171117400850475837448198922054644649352564036895247360875643213714245103807254068807204766533021492310026825213510991352988806724669727890543979565104584915176263007858135693611221564907589376504554883711404165271075408549207793219389933653001205315277098877181366706018590720689810759237150616458216929894653454330523807500519605304357086998138675799299171899868417147518596228907161123290843563305968631373094255315634519570842262748442926814826777231891963033901568114328114234588721359988284646869070091492408354527467731592575566006446097136542412187913377441103312450343866165391758764335189079810339860212092163767040145517191225130079786564800545688920419585312160834246658096431359272001887783701842370411243115662257485461004455330348231525787623939677145117024964434383391986144733451784755189109329360934507014344038940645008028268110761089044889179364761093708826458481619412442763400757758554985909531416099430056012965307592131340870432789291327258399598261767661022655441338007784288143398038747359113507076637457033034765424327974164587960728237335940878432951810040034564477706563572617321459367213396455734111100820861426460980913081552554463854143819074713803887303368954536340483130708517795590927851542675586824930404408008578815544700251643272710978667595767384533271853500405901118725851892620904840207638483721120686953260329187716809590464517235157191802292391732233789895790309042082769894336220511378484370901545112205151691168451779976270390875684515691637737256401045252016585219139950050577680816567319297202581922216577928401751125670345923820927668670417581549571557418718746780241740604704696884758262317842772251253421584547784381962395333600205488321541748904630712967588929420330201445391986293656013966984683465689102241752698239762014494683204109517724907251750810898193410919695476417691095874627515486481893981985482032737584498874939367581938412578350925882523785545532820122274747091356736698291546289958348379939884443106607498463944413100971511385453910787169692768199680819868725515868769451645384541339806894075444698825009785567043489092045796080104711051117968242908146364645332025087029930532468516127934954316055203804090663579326958437584629343300964949049380620767249721384323759927256934510904676509167037353585283175647160820542227704952044096368637325823913258822471237603033811976195140849974212310535177005043915728739939044635799802611991421000418507040252982469139472995296447726637872162560515875843950345741183510684622822096463335343078414974842535579752861828421027465207686519476553404290410138669704482726438660262644062459105436450262291371313165371180416493176375989547872452087782833070980209544345014255711208734306188579127890448062280606442417470401262441339192209267086284074785364054734486377957791221662066163490073771360513969968156901434049178271585969135893051914396069393171967142807666751263949808755273931354910399560895827553292604322360999650483375939233131192107837787133170211799619710022966652758638235315385567576579342741564723029675674167505391368161502026142169827750459131561652401335399492467779572738847466283600253330848396878679951573081608923610787873442790791981651984028817639834850621856142995284256151296162558017380804449716612159418780494092162388932054498583641408965514758255412179780886200998345987861280511684640678861075399875187790946196732613399832917539373719146859097229307260720985684182675861576406361466067306893107460714870052960968994169036651341932124335596418137218183354828862340288674526752072717566128925418799088780732888434140856250881554252702454309430873839458086977528137850165547611836734580420116285642856449490730742250583854789323797924837590654736517221167525919086576690402515446388679253807233994680512170190345357628290603633224204957992451542035163511657254919194170158645707890986540054678580566265238719912986332188995086303073113227708693932904737080448266843709294184461201256981276006862395617021709995268878365416622405680932002460818927851692888602779825625742088077813534864542383470740096907410867094383656254756852869674380593397871413209616475273148629224143756624374967690928585181084682084784294397459064197034224475183229727556320288004914884834287942504327866625250492611466983896632722125790507220617351986836126441343021096013005643959458587197147753826859751716513073476093026672435835411568321895535549236155310420061155861144609172871502897303987291919327666815760283991668046946484127850037000179550344524878902416358332532717529400321315573962381625367894584287575310928150703374277042080425227340572293905145554721900524343033215053602439916159080072839453297767072522143538341033824378484575956593896777030590421263452726221947497321551601039954659203362142253996498571830162687765792468161842777445579905041334338856999145773684953222613618131085806223467163848074733350605249313500721651523033753265506308096777220983959416083080921598036386866181436516164833280159793197035018188679685706776351383860566313133952672632841519476174753094188014829170695817126052279110424902816347413398183141263057717643591858395223810486640457363333021134464624313950904829425291246407066242890229998083648481649435178948897681372465167105552741521645868406917736696409168181177436660799019940053844904361776219171654829602767848336637695297168166696192682894730801837036364357143059248868761467544466529052505467138147491944244162254727272004098527797646546499706657421956507077465865031452057231326203939592529734764085663318503854634551570532676496888524818701869713431579736696543324005978889948487987083199529376460031734301185702856668115077671313078553376746493308546675458182522423342493325773270479692216020021103072510885251820685297677013054472949681261298847796536043067131105943029095446908987577575678535484650578778564823427181435398774195956788314340341172594526724029151278134057231809221984807246371413273617281065832191572241167294415499491429847194825860451813137084289954600087771995924913554412349247663944111303185969814391805019489742713507481577533216721987756728395725692290167258501904285924478279587594299253385314956612046043243464529874632047100976405285663385657648448042185600616236572212764162908118922338879247513264642627197984974621900800831310313839055500147779391665979231935872818152152991063770428670843972239984414473961199489958718338778326422939218071976821290101627734117204288917774871652641110147868736145350745419459442661801998823195503502050834593301151962158243987072325086961654780322696715701475659397323003493552170161989190730217045897179855298347573011853353900771144449953491992623305459254316054471720857402533085190545901414403799829057843238891482692362469510289751212918156593928783303765175832323183350000544066222896973515843593222125633349302926743876039597317322325455229428059060922082165831671415469431792567966752590033920693564276457964616992646421167082203266319762911324708147349174453208594939842280371823561788300690898523345447940010856817249396128044703153313407594489065367862915395327782207767747988893700551435834133700055318629884493658467297477657426929064928173263685103661894297915529922397588641893068585877811404014936376128097398588704563414829761518861446478487818348933558084639350557193188645141254660633765110370962508431704533115524833646635105792587211585125036130874649505114751894739379237351803798365765831812618672463354188577090137372182697941463393311811869713862352878469632586656380642184382675567973133460973126394463139605090379054073731346484391769877414093829027944374440014264197177645014414822183056364019449734211432295350448439881558214532376564943952990916366562430682923562715230895212182275724437730697122686095062372673708841941011122464387593728768421066219380512471697270538799545488423693348495016172285433272569254843787297728558496093477550287144341147388428736684777335636475388035611549201361445147347490882442527467732280315246629536400899657548384053011779018109275774001424368731083008840831140524884124052120012930250334735042683111566520088050276515101577490876644708285141919768397494456040010599253075425606171222896230938603599767788330159774690121360661877707130610078808361924068254878208899744136452152649498701862100370079142990083765682166724230112352469971654139728840378185635737568225385456386769509548406092582541004580284717149562431973550246539699295187099046564722872293982570008555292737325014460225433774021047779036338424292724879616476242777774767225055025526223154838298215679217403338551555630288632354246517465233381925003907594068267680154792736567715068878620226094657654619557913314091007992436118039334265610374744058615384215169045162025864919269372233992273898493507444730809803191062527826316557538869504469807361387533030243833116235055206820970729139212164855918447811145145540414248679661335421711078521697178519431493944725749554176606885737380651034731883704038140261857295747509442210122516476355180504246729831943645690076223861296995826483237883902953785134081176410917108041113279319250913572717407096807503642024743455102879492821157741236281697853766961585354932861401274161712924132179718679915341137945106017751567605112124940299251185855937419011393777217216786921047770667793087511402485203735771723342213287543248691928786177957960220213517300125844332072251381589576589978585942768840349548950356473950042173223626080145207212833115434911384226680740377191052594699484028265305756254764403963122405485301345471926625535711602234176120695246905373159325261353584012298565051544185245279678812706359388404450947807064554527603955632807065421977104802490316483459261340203880772141189886465859903927647205341940313988417774884546648206844426863160089909808475742014628403101309513637534606330266704387926793981362367592293966340657067878803613349816983142293982525371868581993669993547400198774856912109119425655943020576288408371127454285105665526250740610197643039548258853562305985588800211717487929245360322674761572542088850929275276098421065852552818371102877269048513696884978476850595894960526896674026508382566164554924159011390263767097200171774458161581881084275620913446223913894684775926187260136543643369023452429213156142911819770765543355761382180162268899629586460096730508343605308312782693518937505271002280522770693682997087531753916520779786499289090167196302086673467706754995796866916795273799187721012021940533911218744486235848837377871878314872009525046812365385762153415072662307396830765270404795196149407118227277426275146914249203985404573144211106247925236160416252105116439777192988350632846127662117837564581000699076233746553236066882484666840053449330414783813988861835881010615922596109796320249005431642485414716623788221469657352240746090403098480699729550688468803691328788299798121976019874386106865512249152195163700860375457489536484099842454003328436240880516046941798795205652126796341958972690479167697249715783982201138535384516159615047701100034309900596955893268463525807997976123539254474025622522216963406970517273021899765599545439926556949604795090269793519609778582233064249276004195081260577300780164975030505222779817696547941037977638123045709569070980881742651405987996570622344697334900592483076722394978521061534053915251053378406333131262137246515936847545753061570881597150695730910881056761950120987245299426143852457105649492668700320326357337515879402772491122823928463511265889852961151712207482893751101262799925962302248265769995753377930659790843236343710641587189776026180982983935905185176889291929726670875629117323327656886866828522048709276052135605657271443520501337456945620101755361671994181241316111076489123562082678790055243958380754569295594666404618829300316446409623803162649262270892885980765251032328162496171439827405976143245550770137143644308104327411076819151189007527197356237805850589957383113795482370845106399182559041631335714707595068867012673856228013960780715367180968471828223459955759737918226996264688156181231880491512810337339001860549923018719755326121060662070665045560787300794131249047752223288162116992942237105479675278829102238918790187283540517229972633498379372448749684239395059561304090619392489348845286785627973800170950888831645099790209897261620577707403545249853630246314819553936427867155861444374962073950404376207168158917408165925721100646975254236762036175264210859583940357781527943091592475713082116252399217392099198224365227882122655458357077975923334952788937721320618742311462717026579261080237990465465832746821795882714029748834417374097521532731474429534833713999972340873698977526653515141044565152129456155408831835805284903918704251794838575109465551100002041665716570174634747345986181360947308572102568350059322742669121582169072913468958397448979643951822691260340377782302485612400470505950134738059782787459284405448952578925239830981179699399477411748702605821212479887945994716603942996873522963866494735300780479026017880205941311987082685793983889004286296943819518675151711541918362193341060465539657153473922100639593779764866734914027458408707602439339189964969081189826178009087346386444982839033073510096888318070126011436878011160068856432429374318434394624915648698426901797869881202359592534891091040106250697310248053346885434459555416912765165993886247622221467983059740263677909408923425977944255406863505675716769809479128901443767253901316367718581108179548497153434939143326459490645361948357840767394340247464215425576780003948627946092829354209600303526107814223479895311176376325309322153773104565408359686227384234069199925373698225706986401542389368331269308723425210282218496966151486486567144509169203413849451266602049825811993443330549947426054598425691328901485055795840493042032048707640197038995950386916592643634742708618974214017547507441340866650494433605654830931800099453781632033332256716125913085698278795741426762150036341544193905296897137159094343981208287742141315225315790673597664465447566335718894512582497288756829583736932410387239696926570429991435010467795952652468843816647418237092184431467924202472452599901125993833906920239597517945189038687933924390287809049257971835453975642745905472356489439760687902871047791845385645546433160639321315447358830783152683757199906934440551523505471327034283690129791058229920506685414788543940000036694848448000440063111170594281665399720599873402316652307347206268215780978927830160507879224059569042649488830761625122883250456991260809529354509796808948286655379870281120374322285494188757910685828692773272145460717112472204761991523038616967337933244079071221212831200977638045533412990256834066205813468399606781329030287613198451149705071343893823469922464087715134449733548369210059867005293942985466350277445872124074159346628522388150769742106061633694909165197113957989440880662162932560795352608760744169958594923140017069490983196336158654147734443414626277810596782327255555432307833460019438612116663671358208177826159117017762987847267495917577064983494830421480914161212330762540942831055557131383182529568256542988110849418433715023429972418304994068672706681887113239776605491761917885063747496697726817672182519332254039237519703169317035436377556152947647508848059445668688549391352170894235416738137223519860850556380269257247008917036789639621878183267423207490232240516168652792676575258943076679139621403445627530281884921304431308229218807959822036330468202186672778254565625050441166171426716626993559652564992995451545477612428848076112480218298746110844363831742793152269387772490162312504000471602391521925547751086414986398132261470276052389443859893330329564183332085396911365974183180728859073706338572869893417494928647103584415435532026440618894316459849125848322661739222594627567935783938757825842194230955954233863074435168463096153088405918468991976617170840655783206160918254491576219890246106195305815147230953027018767089641539770619056796672135240817631142973135583996020571392185365326238461159166700487697709778522728833293207630094027354470114087740923554099376244214015357750110601842076204060711304890959585629677691494461245287996995489034270266144474032342773110628400314995316805034096376819530148086579995599695621820760839739163808449312789501693926252205192869965023649413406989194317919419019458081924678090355854925579418150200890668697872417898848402251857498450667162951518477106017231204131240353531472289097818442926237216835476400436981877048220657243768502514873205947501510237337044209928167607062806534757553527236233695502733430887807772989786325078350630124626808108975601358040203214928491423806706484644063264601594442489210549678251717806230865349093106301360445123685535637212116094867698011502386883308392778752530606174154988009487204696242601790926305167918838512135862184734091842505271957670580635853876146826916798549558409880822664430053271770779417984527290416649594412285854555627128758640294756489528571279508513849149402418301882803392517767215575586411170345774713790006867628604571774351044348021966233746161748866003712733878686829999800204660519677284103023782827268186479265180862085567691632982492726802527481048763863490414336724389917352419913062464885711228168883311650926342539059447459748019881143157737562647553439745324197687417335563600825581923590405976879577512198749867258698218442195839531686683442052135826470934006841144298815480952008421465092515408101789794063789803872380711718706349080691924724386129366564778744048441415343052976897878256235994480470019364197457568856615160794975153999511879493700801821000788810386254779026419469464112416144120141336911454328300571400439407571969092586076316008636770120196711539002526002548760903021547127444645021326309325119089482973216646189893302662591601034565330738280836995761737261397688053995494340175961282724914616097246971726440809840917458925892753990206307071305071745484520648195077779972631527343297698737452708849438563901480106754362968020864335281514546236984337581616279623571894778555774243446905051476654435961695333531200237444666977121901322908682389456728910472195631565474686557427937616755656594053296927510574040870752767968756759981105215388134037255344126838701560481441991509056141109782718489170641250698380168522094294558656187321164196258027668844813195616559708162060645167327329221649508861953335205039778655853835901383508085523813091371874877820834152700086254363390854455249446741664044359257471043948291828813723428522520031645676178881125044858348313403736700921896036142778789546918489329668369189630653407148844975171782730766217923431201146884551945082311218669314524978501390137059828946909797788702336133549066035763762823210444684675135673153676613345086412829287977678237714536283965984579783044345966061514948396005986262788457776443951256760794566454590440574954460054450587844949068799280135694687472260781938725425135057196299151386249121630034119912065747321643494501445973589310949003233298785001380523536063243061552851048699521026811546888028721281301715268124942583884314363291650186202687674152711899404319793017838164841706780111364118234141544257256806727449724213383965367393804515315799488289971452585017965424137318461355134667049612319607813529882562261213950712083961753966081368035519161346278504633239887561621440222653251722177107370981947206093401118680335747923492553290346368852853779618225965431316012182787028697205475639223603485920347275864015767832548287926138974858538540392068037930619355573224089803508836020412853739890931582658093028269842713408057429358821376666280584283048558436661106758026997360370100017878922492212346050431587245306244688991568945014828276301549404774527307449818696173381958424412181597415934399597917788855707370826027209629652052323463594747148323884740023264325566696466588159052309480898134231827062892594365729806701818846093255216318438717551564393167485282786804267122391902817018400466697617877883817495289484640037868048463428485336404370592268731623821373515452964426696690400961033985427514183420455963756241364715328412440273009776662354283386822903825515157126942737466819743790739633087322676410208393289868246628721212185142953753190351791894142108519762097477250150288150413348050309137050001245591243278640922501332424030929778052193327465714205394583156046055325665427186427808814959298176480533718846946039874123016801041247266216454542141924026166864251190097346922949556144832745600384652047209737618265375209931750164166641972599352456796232465602539438753233827355698719044925782360184751095700499845656422729755611327944795180989057724872928945796201484684081630200549377595474531162809606349875962902423161979354179186985964723271495232381572919204720800630846362092581510204343207021102735970172882830257165257375201045251402506091728414453941855828375036790770747717200775777910886907851029756001762294306875186368529816813035878236991046271631109251130238923030860906181835489131882817237954990909834899779207683936351454085370766306566335843663861967220681538219235531816409754835777685205288995866845082181155800749508283981498400280593211762410992114729493216121178286782805039960814563214417626699022917018258441575574071449852670027276451964602532157916117994321787770880411734497484018363062287202628767966033785276561240473147189540792901989762875718319888144508348012952650638821329594167983898918214564815036491989678902013003309594013469713258008108564165467162895415597337238947177501677651754977583187059424213229052570080805461320649566108744301667604849616565066123614305285035128534168432770620063126713377266418969208062137113714337907929653597231758188306314822634879033575987041760557778997227994026432657982639998314958201643742446452907219934042283378053351747365187799180119073968015649361672281094379433699853193746110207855480393479329447951872977656009663348485294242203818795740718247155638772834032605933048699891980573230185898777832684809474207703940951650993059546295075697186090027453082314939651606071483373005925041221395736887372807593387083961200483616971274815255249139959965219041274054448263834036965315042332308040832630179869317968480326197792075588763297823751161018211028690616701256356160917455339270886553016631448699956959965976561978238365728214743863539619020956724770284696301455188010577198774707087842704063338609682374903592643717135617407206227474153292966084992997992282541419807433688216970810658070592611610333987172636564438600754200594372135933623143279531777074515773205593883827949272888611572867419989596710090601790472321870978424469500981754537220951257194618348258138963400534941835444398543058404955115993061383918159058105653056856429139055254516623335722843005893386917144461858480897569887079714521663433797889215661412829905074810082110553799256321455155273250052809907348005906691635215550265600253460562535929419249506435944093694995082963738322054175158954612588260150236613932848912152851840661321824177243381589577528551309042849127089882706953937824327132137673665248659600240358244559303491262529180903982714070512610777283670450789320157176875034563189547426888602127602783599786722948243400593031823453690761473834199000550185890013225252839317968322387182592598407579800989504943788783359024217203000533123972627921451128976798380694399046958832649632732819620159489948983138395424422104784738755216308235937611873286408596434301514714155276049685128046169267296108128749847511768784923060847907535781811738479609799521159422988567064417870829290271783967855445138501281033592388809405709521546158400016984296642018273726729380541949823436903081451981443945934136801262376123800744052077906335418783219312693474774320400249272524618182119060840068585204589163974861378471295991238359182481331826886069888471271765508451943195580614974716590044804984514717707183889569404329103322798388232636035219617632295408743288130287451990889917578627270726309900503659556725526870261934640609256363809054120983154039873379916241700472906982466931874160067070092684374563734930099610664502983160541715075992959219037521850153561304246633970299200868412551616779949636945827004240862064984213081252567395092143614637704895199310354068234293226532326242901746429177864868294196347915962527404242185332322123494981059797719244435525296287576221548580428378185485947737518342882947633366666800044765621743907945843965888562570247545403903005569450035975371952593359171225676495321998663618210538385791951147218238261809838131801562857868371027787395094685295123699937029219425553382128698633029246920045776193873321464955222041818707676145314793359824857263928779044777645217155205298746975075568648636940918482730575996627696550988895436615833812566596509824521241559898150541653229620295314946922557051295637646288500802865475365622814466725860755931160028698409010568941605292470411165002270094130829247766293431732680708928647350723376398734433340091249973395549512811109989377778218580286552248656213097846083379750348852799924157748264105321029115387056525643087945498829164674869106096205265770474637846294241783759008947652966042226989410850221426379683357450863343900555359742653571234438024367885867885790043603710127786363315895080124633109035265825539929482611978347754407907797014881139163436197616598675135794378798694781174382862317511072642561635209788881196420765286561362633305008514346938782905854033274495693803815822281035586880001494927507546635251252946970011074987606031493223412197082086933873881522738612090069556247418927314741478455128482791783947479221509231795852647510416118337402184136160687556330425439784721076696857762890483814466203051344605273744633188901653528537468326150604365392296104137732156345104125960090208472227501420787692565411319770198136060706595837683853904169895165595118355663828081321520810577864068137630460861526406691064477229180412928188072145428681317844540482320281492531023052546623585644812223109989562118248315193043775298778054214081031432420656910906733536698111596026639887911545247728954902371753429034443129698279959136439881271869316818444746747194373652438096908071609361311785733267817137604347599615427280418211762824163028476162169189365350477101370803390111562141505617205153575417969281778961549692857928466687757870916105148301787967152162237077929802000195034237161470959213913885681005894752299003218375953785104017369410168526512853972745613387731587683776652709881277978557798248932723008937546732760881189711982755062433689543077940293736582243819792154511019709405540514631978986332170441493615190409867557391541118975037089321950954580652647082137727717017576227722049796803585816239113449740877309891647188019325327627254305239559751455843531028217412974752310854219459749638654621650444034144075806915307175457913461624786754276702466311461046664276722472460267154503183154365877198017408782488561492667431176552661591479830489206683037072268317690605872856473318184841408756107794037853622740229392571414389773206788348832638924072851695847140697408144845284859413023052668810606478945858294415361629564733966339097735553057883401970548184088464637601818825012104720201434649814579884998996192985550561002215933753993575329254709155127957344024042655014754337657298209537757793644390372746487332219101444014267407365986095395654566860787404275759285797349710548716221663531987796272291332233369458680861629969614829091816645816534847573033401748394351901111982597821731503950644563931237675510357029714204791237295230712672716651768041262306184150055786978171741519694493135622668358478120953309018898932193122932631618262356831493748041513803539277460680520243341187543736980298436369517108218144126021059107383613450138010378294112694160339087299614019576420938051719159514869066988344186082375513628173392642218461868243344650010230852511094649336624955757808383463093987079881291171373067283157360957026580671160324782124084492752139163550150047448393461201451998650139929567735433237876403634094495610342410700167148677127320561300810425219793249656598044207358553282246577587252239834179230332286643417819556259342010137310479643339293563985799979071404394850052074075559142221272769837596351975319216129341337598611451124284768115318445671728685549890810023870247018889258632105608726781982693855373444369383791423232131201373628733757689685077199358450069182678043735731597111206728856102354016602733961314381759150083461064349938467110187873771896931167408032613212562713631624921696282564109561395733323728720420374235449248732406132906702723085226369417852053461921346808829950459849253809626410994431047132440909355492450849638772289429421116833930972012097961977608745577955338250652186158273740839231748237228240028935975073998195114928931954300164158643330712473396836863444595805661347483443124591360539350293487441964332691183440483551823651363253940218801682175743126533268059113103823461301701580551825293627647730945019460242744538219370749028566209584890509557469225373126640635950583433315726886214075666510984393351226741871816925526133571651409438360603812200732325690631934955532113170964533987124307022105374239114567529793290568949920572974001535286715801415332025047379962886932609929444787871363080710741661291356249536921259170243584388167208502570104954170148905580619647240637649772243828692728282187311579872860246476760593181257017700714117082086740421709476842224777396510073817603544388546553016397573618586241928657369102181158263026134249592705857786209764706744132673872168719706840373321034751262286121838239560697650110585614737033707155664744333386942753995519580349930843920065262261257896409098238390738191795876437975382634283600833986106073680141243176044437604671027398661975355995135584548913273621585692695641511857598424284750734795331083947931801640906561019335359776223208389407455974760092827358421346385909676372237055234062463008774401948785383655849131641319742433450576971951795825277354957462825141866431718286002561428119970952752826630698320888303668056484057747877717158483544816263226887658059978965528639979581973822869641190534130522445478220332380635916906506693995532337921798852852548875738667957806045645698715483455593939793429758176200928849885964610434584848272348151339545941205678487093604155578579684860743664165679870261249671217464482055583831941226323390967463922823203390925230766522435326823651782807319921722211499848114957064971576517999281180361905104904126554914920478010378287340273025834686665884695850960564534424722490811826490170354773334179391379839606757175462980846969289736403372109211175552722887077474776551473218453897976409021399860370011817590501809009161085991344973627418319399568190450303061703647729115349948442860836985859538458375322397851442624219827211492688469507066791978202020646170442372898650071644347611215705783734821662955587801403695257366050326926807554416982276084433450737409917942837009014941885458322852300466960509793898895252391710989167658747707276191724320693302588809662918760134677370422298257537988106074575663385375615935067382360677121063165236355510651502736945845466972970226809727380283189361934866193632108414749626737881386803984418827713635507568388097796429499607067180215769361013557707807866813670470903306007967188017859049277052936345595569190449673317225716418232155762135635881180492893678314337503557135278461072339945281405794986808550320409124191237389336530572584573256497535989203998890933905042457855111679772811075776818036386338131222779480423335210180091186139446854142068765245272101497079531355215281443112689771135207928188334688362728448769065363952736812985782349477280141623437647245571794278627071246278000888637363631939384003684730866047430710828910580876128321962482682014220085339532449624175027234382272405822141522612960244642957693899315279689068397076028873551422713326137602186839956195290017315509334572179717375549553034244662819635134289863397627633875252465376372387052979566255758252928556083086430410718016097925066370917014568239239347888962755453975296373642889611643911539276539294527811216608609320124740704010527293420062742285546617244512169845078205491094639078219970401827061653299335375885040208747210070135023227434188921395634187890705826440852814009361526106211971706405140918891912303599149807086760665101202891963843930093974826559969721970089127573882566861086514260149578956031052634222900506421906159487571062131081780466665393832665105162738856715015635724671482392229511689711805140911325717159532119029735233672592901022395940356734972027059661407200161765788187733726772149908893617708476613385788584772796471562736388366899887928663860677266088497710438995523141291666742372799031183399312470022852763453871878021232894576657127586043061926633151618174672208179102514310014656070517394530343935356646835718530498577775210297347195423842880770643618332463591520377516965816466638718542892001613758356054703225116330104336279109677310453565687741944175876235269362466123780814773871949779884526901538684932165093119961260884934735822435117413802130080362506827862585653502831011009660184084665059351031065091062471361399960837499002502123722799479928739202382126095261067035522071821417291342089191876619793407903550668351055734462135321178996417729986315404488019768628579506906080281894697594709813839792743214173134190565268588407078995618278510392597512402686705337724125125948641665082713015670242586271927639739058702140459901718430702072252287881210053287333461240822412180655492313793041918321816496093252565617699809404391568856492711079293042803004023574911992707930648682445546747236244052455936724021181134533072929590142281197474696182289229891150371504021091337801440251264855790216589901378553677232616764976398964646731161899387084188965569736529677808360810773948753632515428047867104336879804363253359708963600734637329025056383141661919594095778135660446702882979905659829401122803828905708309981990558417821638727224224103398421251156381900678906203834092179908439291293897154080129708464556831685793839984381437301098209017049909769782804873505501462091717238181063143522706142608983135937738232166672543966658092646588801662261020018599324739388446775396202236759224240486028760899005410200631594500960645898590023196574809107171568048978860814372517116331267872214745029050363474272559142476365533003995916326517589671101547929626886544033251216014035661670963885000662872835683803960767090786976297427703790960423781892892982909375803098154129494284105843702400082208363927603274716636027625738961614638904558310951843389140465215923369619274210759410547630149642371361489916250679008019297094713604357547376281318249794967260255015887330626819546353928350589069630636951024891804285875577950546186626803705433780895681783610226437549221223513018584302665000356820416790772800170467291916096984095380033983128941372071336509157778084501699955219544990735739540983033015085447802812051063509114472430407834916041196217159865927007831953288745389004793279608469280372439998104560151191288687107633529206777155210987405839678450387176306789022793611623213158255634527878631535989879085332723529231407195407454275921431118136004908315118068537375812721499296695998428757880597519805474769806911479560242442132197908018228752109996878144427788187821356680606520086229290605547821870860634547978881978031875666269557677146548335333954041631375238840527613248104624096488678551228243737618624339299873434821898099763761364632579796564331903330865371832144102753482681021208045795123719695548075806064278906722729212101826343297831204906206210230813302556156444543155916090326325803798403886512327559613457579133792716121851876096497113105166556673512630024287726244740599338082885644112878222987506610145384743719476733981601473230303224486339328370377886809646513319335544298267718655582722307065993200809692968766503612754012911034033220482585969816384846047602837341063455007440947265914047167449255178820013493193365581239343465053864169074140584059697342041245177415302604387975276445315320278865241433439524531172164656538954928507582563673605884988309881041894943752113377243158779328546064673822306445634113780225371422152785251968373348840608629921954875997049097192564275328669677688877122747115166023584057210450050010421379404843747477353009816052807380922651982756849741138068752690475382234080506694885638174028010998860398983458493822850598351483805569801757323276520376363990456128210692849551030143341823455486712764496190143155416118099812877655787038820461475361340629990293582511496399269122213211937133539287928655316349055508959550959373891199334223058137777446764118179838155557175944825274987060975741447690637934676248227451848362816466682123427015839960116857347275937597617752642991720413198985396575395989512240870385803000072305923947815804266321940043497348592191297618042592405923295922739382395005542312142129249994377019481007798772335788326886334018259883734178353518137119422614360012682795970092169900989008683836140088534280629022099851074131837792380587299675630205406083599340696331352678558475567753761664410513704702022754201425007113915052337388629159628543225561566284698341485402075646250035982365490025063019650122533128052958989759097319890830710345173491836472146541618756785814280625684832022017291256041562289965094392144091177917583123152386800895218002457253388284262575642415424330578228189398524217305673591473904333198121114225617724088853371602867663116574975209816953908122917154855263821113980465062015680420566454585002257988614128331152839741509133701867924586543704625468494274485470691875951436471863850922539244738362281698893759036701576847530605034470486784479014930906282408220058093393912939530797928198469888089984221461759324514245228688946162359293576795564300912756966722144260927804713095735651492651611759259599930198249422286458885876650971749517594274124321181497253481644431386840734581025395775532888459233376114099621420554558729364566855013095848221526445569385354403664813735773257817550229494736857516755999061611630765435981519344544008895698122546676470030614670288700486337326962248641898439716217134070460728693057562586336867812368975026965050414610675633071113847101435235132811718979719665684351920281490350577179344202971225721747900287572214916219524324222253707963163013570139624280725866159258941645942587825731775097693756028446618148806250028581900888631296225779265241986937901262575632580743086010160674470501532241295125153618338491573764597520855363746104697442353940196247252705545549905083991647726522316414741655866906747024098621197486071416747059608515655801069962498513332801973273964500729776629181279262551765691276062417941852920251881350370373669176687656600278903216940298160496808141801182908645581316324568848144210465186249173036857630377749806437647586938275375858736695380910732397382506057064892820996384456928344545005700850129022410001563426983884177254119407482323783082789081408870127947151442592583856673226493061422120832249888539554026018389897980875829624522550161897883468904817669987283373095992881803589139843716582475667144932821677234386349600298921951243956038925656743493277483739019441791570860526751733972967862062939880110358486384607941318050586159490183305795786898307318001224978563295317643597275806246698824504056900975152156193543534954044061198014245504614451178167039400134576003778255520481036637627808486266397083021946730607774603084885626321939635861024832598226783791884979405430091922750073509655436174265880539979810248655520060429114915265068939703813269327105797982318060409386562303118247300320720026231164567799784057996826558827338401905951136420297911119559701378274472536839368984919249594659746028513317411877573474778363765104837222042634711407121165473406621421397432396252349012388096488212028072132838159883239511009604318190247760120877098342179092796049699822903680272776849261067360799114617202857745642354359717549399048870207753245521789453275932949846505184197060182048477589373907516639518170238984281179354625512794590214482734853787515037323404463182033408062826373367239278503384910059432410426574513045832679500113717718652785127847941944091504134148409724171521400465723346665924713604958360487898839261727015536064379390329887632996748487276813033822064093647718875354533689311782793777806103991939079803984407063805036939190283916479229333418725801732313447429861221567323366561018818677248200034392497413404295516320016127939765465700415982082830838167665546647420998753921074994863430906961223028064675005511426514264311817555286243935679348028112289846000354452197999135899524311259958556224923730710774396973262466443527885584484863405615884321740532065434905506909295368822777830723007308761245586665982299941892859917878394767301170585630707010920413889982870834527468656491604151816955814365012658069184123234003913859625149677135351514466746898437965357892867046767471182817999624126655373348347287377109360982598538012134239230642242201655071068703198020319953276364286876333810199846416623237184306144284758915912125518542305737139249244537383667905303344046735101697081533513963395478846133276886851507326287133969047536722799764241116525050912386603322271802205674841481931385097133402270608498992388047108280760359393185869797190126363102428336508651717178676614575992752323594703000429497090001672194384198166880348120477369862960966156507964168715308846748556377519682117331245536612833090429253306656415744553812885894089978041209994046507729248059708179731019182902955021750808873372918956066286627705472838759980631442025599659732014185319557933297485072155315298411158019683299733549615008649242030213101275030536533022655015654250988137054454289109829640985804458734512124028959503625238889734022298253905732803962960085286196570562582060643425187771247001709724485238989681918224295281917734558733459088272229008916474593731162892708950934322499366097351510624185111300052755620399566048750286193806053250989783363275505539057263972401159242162159711931462555939151243789097956971120704849449329303881802023818622358763659821046458259071109162364637127453849238257442331895304644346842776534684223706866618726776336774686627723307005499973946844065553380925605724159144080903014269073715994960964455428351774724041915801157398447478063572260770294024210291429051095603753578266389794595982159941170649556858071277677143745766526722638701853031135463919888257180185186757171003691459601930534240285128520683440778251634439252470584070025332577007898133035801950674232306209009152072219174221146968107117587588819571983732778148258508263718508389790606753721857795308976015955587894883860249915190775131044656356248940601155779841680464020723968842272691209316524465567294296388076627218972219706383578498115475573270320587073786527867306105310081584991623658984506604571484625539372717931461556019098439523542603222688042092505946145716969044818945083948623821084140966110722640986087371188138964698269945255472756747197940533849220758511401785609666243619774173247883633616354973023330793175582757373027524397279969575599957397219791060798476706197777482224716317700930602186210244332733818368209244990910360990362830136958038925676220287825591051755744851721489097648745760817508732220770704471054008034356337089692176321433775254382035893727667999938909584273483112001833073001395168523518269497759690368489995039141103771538772430842606535328409832253104011890718741208404242169557780222011530997498204716680291173156347059768607967280980048471027061774332479356455886657681404130403216017980140306642155716195050453401285489921174221405026582478594798297270660837481129938063207464711802257399148364074212666856028494342868650922263499925523867529645361123406054950302643750513765163908089550883410516375153578741088366440489309002086845714260975585596204921884750917076814717810928225239993747743891017186124560902976116943179503442291659058247461847543231682859137227966358754965245523413569685174584511880884791634462538711513532272331051273879275995431776383042141845932000181890343086068983367767053984993036526987620145037538879600867525412380414281202313602630296909095589492120394434197796471172558021412221852189182720950014252597886154591305385797785096135344281990659632240942462209706298715699702684954836837205771949638490370568229775395308935616190178434083303649620961844773159334973537636805606206960413904801874876629535195954760687236732148748627117008293872640315189576034407737110780092648076924730753358232539972227327305256015777538266191309841650264495815752127440033035388585946714589647929571265242878724128402318322844814486384086291992308799479671367415070273453960274798709047146015364302055645151183439910878088204291401101062032652068825499531378442839876298150164168412333593000870162409446690908698147153166756543483345028125420418268878613925195034087583598232046595575379841938487297466650017981729414289778694778012345443902761477395490125497213294096900854516365991531106033318752807986942215095707627023921457003223248347205755162576834773291523008526060031269959026619349002758892721725601836989645250938085129716801541318697655978083546272653189484714658681814235662534173592120449881665344630681267298139121576772086390883900175144392625728909188987324400002377079538165512757415620464877185160322229153886709883853042815044823780364353107256069906641891303567982578539922305162637452226623606584986336920426851797970787411286272841526555244857329002161515936931834699640471943860889666631865524865636850325401335733955174063760379646463252075020180273470289832454371668573966778268047968041084509417774597591343250323188052049864586651651676732906007380922019944601015425035333166110117436844394510276774509839752004799672266696912179940872664784417963881351304859188439296686829142731165744248230001780002100291332596502135582255818633478088945302254318681269419765501573606766431484753450811089568792671186129697368699374218739622592711728582329152789433675506028422320504023968915379871224745999903383460360541176247755596172190892984404138178554600578671747705487442808878334316395844521104318274131950092848086941479199420705212401626112903840474076268558063546128349603689335181698515200773638339763279022658120037235304017648952889158288393052114636025859113693347128939847657024587661428128142720721597789147965905199955933361340677189489417299701465092127148982974929903583632083618447925679765217031255460852199179354891785961788296671080994817456111854901709912450127894475641217904458309976356087774087899886466991852965761004708339422745118623319583225883162905352689430332876285557432569489506579113452296599728266087855100750683240490619548028901046415981915616086308379111613230914920565382070208164353462109496687413296674387296000956876681170399418336351581502196911803927964102665379392567483799377409873972195696967207550573059557351655599893551644458063081529551308892392621752243055241911294659882423605821543699246086128653766143902604408440393743549802694066498539182010125852583706468408645877321885153654722108982813502602654251947233498894417531466590663777423295542850515979112417788591398530554130864619392398023414110389296214930218318760923679383109859669421480211515605332167223234554515779076218759032938061463397604062147180879780187394490123825964458396816557736087954048411878493758640331246430989220050799364874079807440850660565546825145383611100741871508161299552223688491961848980379527439684394397407040630279960982639035235881856584635648853906660838302355658331721822059893358983272816043916264401111242323039721076087173166690072815794954372988102261357798276580096126591089294390404736344325748493483816748375792685082047539721855754462992529322201543344928885708408404170159709262639227946267478487463615686275460478937799024989277541678751751137638115219971721587278371576744575828934538744677382016336859165977520815031294992390280502950178201673853237364951563183998372885859335271781658959263420166919140661801347149465009283606259709297459741836671592186357712996789255958083704272853001574535690195934194645404444358806666043123477454754100036144508117781132660307051302832906315469169285928707350988961055071016386473999878074697700557377652074225067433372851404298487989613371665381928008011778007490167298151425958415062010284442171244080219034842469052167280000478959908935130422041861216692849193800061388574204582616300899640828215954320290460952490583488688513299100359913143869710543340542923803213980662147960019171096792984628164464918135569870134651072022255188589509978988335760192923839325653982496416218427994776241505004237643308086187472328397393420732453058628405502220657956591029596355340467322554616535598277747526371472267168143584907158747581878723925725764781898356879560929820128880837789028355828401166551567659885848309968679570384033447052343355142462919905866078476694423028691635297858954642151982986357478960829610150410913485120967306157816971183211188682233390220020471537576704916725491459806244546837541117890625028687629183042753392561608332158462131278532238377855608155921154548927301201344611039432265082511403948548208782298503753768945761844040024855580683075066950573275818269416106078559545760427330761284202249945457071036671913396862383200199763023873370073560679223940622712123465775899938832657220869113079325238304398702897091413861089062361313244589679104006028049174947039613493543609253751659867844666572900835838993473205192813523844150492106172618349219922020083192575217002308659841404223151418683158151086514379860487406961842465862705710773763310393017826345988554267357144105095065228098565796219742609501459973076956977686102256879995512943297541864977018664868485897436411352807477230224359572304552399713799141809893651356755270677614893110707705723132829818833335574353572354252768118210822592215174326155316622663465942220738304438320499516280292381036375468538323816382202103016995094088002366254557131020898301420616650558135873074027005438139555520976387986721096236617006136097613764333244998158756857794417259090212207854800759815987523730932824465799436606935584861555954180483996968025225863815788064798197557642948893109763716354132971302235224205244389502967169620509457449392652449719441772033976727091375634636239273614148994364239358213547868164399802979986029632356827882583610311636107498781158992640916076411330260552495771118818337241834332810714112819226272406268077710156876702071961587336752252535303493523710923948605705291432621485560723294064100115445280500800920547060984463126289134160817448129002984774793536389414601681023067136103384408258830991781469286254044422433733300974835756396903018037920796024195878504625099570092961790922100622369665855960683005849899042980147752696662038055915447609965833497437343475519676969698691476783687319809696414472309232012825139465150674925508704435193036445930388060246427741396158699757257593442455997590354304520021000063827269144790038788552101204705752145000477917363177062264812650422506586177229498492705184927345368224869372754483910463068092734708150814777434745454225811790885886473579579616151364251651929444109409886889439891394024838378591562473314444344179053168905608760963743500388495299681933447112684225243557540519688555035618123645389449566045557368438150444277810396480421086796698248372034111614784702287771346243046315812331767319381097542773497048910551039993792020351632335308026419768820430549846504782052643365802833881873568702426550211747598415665746371466593690756285154767170721989187372537223900079886149441518287001158330256968461760127019094235749499446861937361538540266011012175764234937408026196176419934689641346573565430934892412261075245763792197208316846730984567812631359606083041849771084550293441857602223414188141611329518052384418521212643456511901061964674985685720302764358350048487902741181121018125713982316622908177572955163213707772558653122195235896650554310155958234113560683148218017215818034155596694831445060273457294150430200227392560090795542242497301306085427102320878285510696830237416207160823405135959736877390556166461663971383926650298974166887271209668357777056865841323403879294084764411870598082323066613622595183311129667671677203134975225176983916341042977265423431232843180182930672185190310314678453342352196224762046181516341163956868320514393122805611209513161563381557762020927540675891743854447271211464869430495763592316799497820277163858185945151385401089532264143822687997911873555824743974311144490122007406107736477158890852585065078557797949702246004706431756728691647778722965866821808093605436995535512227868303788773043534607784665689688521185713198388676445609009573540397236628048789901823605358727856615730432979952595971072272450776775633197277416060435707641840215984300185024522566703178065639537589809191555372060139614213156368336606172728864189119159946841578081580120377553797199031876428944692167464351301499730277834755766486488565397538071736513769782220342148827932375718327916422705937756007199608916452315012746509015190781444146776307332197342542795803274851713016879577182469038794056116390748901170828934092061577051960519835038951195642257696939063053844506180208088151700261009398963886455029555887881522582475750752531414600642447271130971041826645875858211272051733778975599432425689783141400882207728180409361290027706842383880807155376600469411426476518663864234470810772545189547701495523810434433910727633242309522949260449246783351808960148112110489289630085041086022684027806302708949326336041878860245428072089301905205485130875066502635696890783175633251464547106062733293470243780965893365917927314461804300926770967472496198315067183580369160831461203262467500541674631917659584871561218023264291815949840091784835308194594126638118597684704955278340605545572901658035540710528103136442234540476568373936958107323871159429346420761661684733595966334894589527949135764467605912583960776772157713740489074053576130947835667142863320713490345913636104933691157419166961311883611882321486953408852154214342931139996128742204017937433471321537886832264165496818251767201816339915613491369923514010530706242195825026631269479737438983638597866567579626878763269417096738106156338967459764161555485639403796514150606927975674182437323358054224673688777490410090826330336032549863053953413238201191677966489761326938390723035910250088826132462904148421604698017344474806911622532041071825944009590982561513040038178886541385793880360685447318549483677434001322118263053418236744668161574905526918845777604867953867663438207552438976533967590333353474418730213455204693966064873012728224796649284093186719659946437132523332246926912189569793632474436098463688993204653342045878798552298321529479906156936524433623570718535424085542389432529031422995756557520755453704961939379430763143637030341809611536123325750004255013471341641253299431276893894714973630346428381343085060968942010522266992778382819679748583472490306101945704138158211265090930357468157323938612227226827681560510872201770884936317159999347477101785012383322629241610250918048372110367632293434772959309562264328946596232108809663176489370634814439365994657675458350319806305473188451481903713280178858672896775283923538337131556127423777415984484156325265189933142542808511268268300915759052356338721828840600168029982809449215002156046807350761265892742856125559599819548953237888047780646716459711966793905601141846757527877573223541257648776598138028264922234069367935981117094304269243823096840658248609653713404486436570435585021360487041834569643026719052707886709938004827303985731310890660134742954543849027858213483993659357641028032067282793881072508013407281459207988305932726676518028522244876820304134681156704625768543063092009596958280998463525498259455202960514196709419669640881020121192613162826186126536344815781767564294236869699608420573510904713182019168005352081705310422526937115556680768677941726595259380205421313634901687676274805372584839729880936152114806435498217356506886867750418977949663700741631044888557477424238024647006641408560505939312753604488958488373930027630159223257542814378269714988824564104271812780433860641774705799894671066523363759998037450155530676173238163642632350756791846576726544083202240997859825887206560705455162681557664230953249421357576048414025805249443792073724852119856475543954384323435731976677055834903281145958504076673543589949113926369521659023289211492216830662054658610552347059037463974181353538708651307030586198113818802895400329673291765074630895761417077953279090072685740680748929408904214778057461145167219512495305599428784612966055646335211259507947155879620355040673671915049203627636504343740817111779393456516222897454958970635308203900429429213345946356470673706195114024383818066307574786853292074989804948448578386276352147835894627314023314117459071412498815639628719540460165339439508176739907134436184250923148693791615523758070912275371280142110237346663505838098727483739439164804950285273952766825448908727399460908523758481276111433464903837490451640289135729025566099696608567362803635318300445494284535556520242747802612449341332421783064532432327442802902599850395414462713072945249345504430146639615271005543654094858613964381790896278847152198668025318856937149135376885760817609388650746853718252190111116444757627958056048440713158767756691263650637482322491051403345410008856664901708493609082364055696351032081363147355331909639149813550372922128498710697052862275457050932130725920685781062195194139639301595385130447795789021198782825096770747807050597961913275975698079472257112490950253129691492492495096585941537393111703050039794653010234206609941570294748725798696947409603232278500836393187695902662980401810838121379006108395339440415047081616087454288580030676011207314774981957019490833961189813631158159549919285064502963466788780689469749602640272718375735213484999879259607031564422240522659694177930757554539009571983588497940846738422157472948135396969065953413664490771211732542180589163308136701650188264058267986414332909582631172759162411522057568740786858998009927709299978438132187452820924102930533679637427109543541446899417719476525541620725185158323743377027718525781835174200283569811536516587479895051416257087411708194017738143530326311868317512298355076747023128982172970803904712682072858543723103942242613263564026087089445737213265329983538198733583719337463528853242169014773556571950620479035804162811699582454045212817798693716279446683958253109789200943881732296027193256119665272816060048131126609073431220054374300583960149260415833102496959097280353976649406915611690898089560267004970005665782956063761539769015700458315446736401287237753089428944730860435811769067689605283314456163629951223075436331146220160830637362711949217206907301364261114952502442613573025533684490953804468243167066392020044286255193905124041174326199411058713814435887736644496038006304770983144086274516212314415766170575882794075452206860799668585026768664456641847979992718124936473466462407506218373112222578318791832459925373083692135599991845236187636357622324966804421103732981019218456995564006849250629613850191781738113723990232445422465866729246491640610974459774912523885902755160772235322130018357034935747355392994998679728987492180211330461496010752912921369767762053923007917048307502516915177728999711119408112899082466243643616996554174098138027446837912019531781394510392359526394648065522138616883786394668333880720622099687768009517976012112209038859906203145320879944944291530131563520961576454948847603003770927182981714187068844467606700181957654728341756623844201188309051045873282364231991020657217745601300879016811494009442503959178174055433843237209818921601962236309955910640602370819872933730586565309215493491691193743674971195610357074498148784423100915557600953028484191760359803422440757210633813867980707247468220592307182814063623637705127440050475816963531619926528757795609971296058166342473416054709815752893391318096812899272519834535271215314372677895411953802177276731946418201181707614711731898834960407888227453698631599024624277593778210236315818438756494104259073067060513617917099892251786949494268811401452018848997341302106209570453469167776620845559746403851990412471542302450698394194884364002906812828782059838543221335529990122297040952020750810264463286567421800502724524052263579560283713605794689194311357869033733002171008835742858899737774890138335297892547641238618935453486456327556705852559485626209002891307557133419553101600823664925681919832118909329959928050242974383427100002842245460370277063402820632248639718452811679288538443245151152996772591802662565340411901311106522499998224756144408835893569250132468521139993275347771436761640957801578891339777153751453068386904183521388818717405123050397594212149141377328577999283987756651114492672532713670315290951800422349243830350355054332041349568090035216661502241453019931897622672434309571229224361495930375722239951018215969092505402034638550211515514446419603749075313806872153271311302338952825927679874796522635307216143235563406394490426152148414805134984038136858506113649680276703169581890548677981402761104679766670447150833878379911821977843619331599746721000155930268762613327322179782320077042026033878334482277789314869676790321630045004439953010722512074515062442644806309094365295292778442702060799414986463341758986383097311210551697853268802692279687923489286255550506429546996806155501053448123031820004701646567568421661207334449267591683012343513860804010420703067311180686239351318243615422962800716117928817368874009023804930292090597485519504704044536535783194405593180655203785400978985652748197788993259186523850015930393764657977702632804107629887179328373576495064233296015004633591223121442208225971213089574132272057118911236079280466198034893486523333114575779714395943608639334330163462652642932830768271391608079902554030821304723726702810212172292500549567086903548659566330018215250223464265274825471689373620319876844102450011639942100853427408707690451893731412344989270879814987375619338625908148943829389500837131264300195716775474182781587900438970805225412183478016971340974996490785063792852287945778722788078925889316360593792887253735669119986029910471851970153000320429309461742728788968661132862400632881086394459142074574093292364856245624407708732520205161015912309497948149122470916611379975939824704977280994392527612435515679895233626428265194317313481880106890615262978128314904267086977760036861706950950079096222729445725830700726096828435459354987479999804992914162404748805547751932732746380927264224726535876630590508086305640152597520863758045326528535183318155876905427620344943330043727376067039211519896333467328475254958151649713622710692306136506837303273115554129106145290431113097308222942917053669699682125144400736445374775476530480359912651258223054107432916968599111618034555937087607362396886270241007174133044197191214868322199083987767632118289262041723064213695591650997861396833337805681272430917254440578200383520041885709308594695948820612977686239066104774595913087892173639854720697450250941291180758371565972572772597374069931367998815873564363587769617587529626770905937303982961848451890583582062134656897656922462073479781591343244014549139427412415224206001085646513934950560809796803212316863085263604852071786059662958081518275760803959187027036380640667899641156734824868381513661480025751587653917354173129030118156758796680258181642369534694311179913244827577074476562707030662627178948590902335111997216726785810698153159584792259949567094043419283088587014645669846887214547103891291242726625448699130113346789714577683393631372056815569134200239651518514341696751354744048374814138938444093948331269757158570299834755659303839162047850748079661767617496890179146767073973485478068889735739391677689068147661861120376271678954705269139782698231495562854231496643142403852364558930225505197904961257449926628995932004264304212487713260129151984915349085866763551214797354298745067535889585485690831450534484383777938523875748570560264897444273459604190415735091749587733753330488253621652522352240237383830428368378744875265534453264396151156858158645017272094088877862660826772665480833522600019568631450992222297281764328297658753701407155124655717242986100371024555969306703962126869077075011712682555367627841579022744929919833793867313343886574219252740262927222134482322397029025816835443567786486602227098053066299842504074067946476812715182207266088564857751246273871311620986288805879325136741410347543212082048031525024887582903337687833944807693609891666721385582744431180762193312180296729646604293941374475944004575645069270972263699152061526778786209020228810734406815361711623634438260758589928632419039939112821068226990573438836746489932513533354453461428731592151093916916637122145606004213405669351538603210537595094951385535662278061020774014346887307676292290925885406725116907302767559705034232110559965601737841012053457906275802206254106462778819043081029420473125242165669298355870949910413490066414473592480084991298189662942910763142167151925204953306621131926449438725335559633803958567697133505809673691449392057524314650350977602372652990913213180771430660445641165591395298913984420719443880034963299964224498783421931917163874828871955317625639700067803284062405829592192488349101216048244027318067494825380818508949746542818166961684425166836898394384332061490007965213170874879462953751156544619750202828775267483396784804951986119610243618916469333829449986191447660947977128402539798460518084156260743247167710042234030239623798922986043890728514256830905480382559022122829072000065966359764065370951118737292994350775057041894237870397333793773038641498415957785872055622430462050482252082204206700728236544885167535057855124194526403004573199307192867463973758604668637442135869706889492866020860352518123193569382445163340617982556447292022954053021667153696026860819957807543508265361868985828003248698204658981203645161514771340311229459257428585769476312849194373089249425447019693575258397148451049528123437419907455024332017429031886379989719861382063570044682540633727339006413268547335093951726437331238493771304603698505509961177699673511349870462747631371123865174581890496311678389593721613102538608937614652895535528945280990153812354403578812217895409469294736046835497243003158010407713912855042566659279764886561657908252363204982583115924925695113188635862013059601731376947895606546844981515107881723102951920549286283754542191698014923900027712629895703078996744372304667645042517823135910470981594589229287025054011089959946302554451531597439444270025874873896915775715173552553866396880758550999182911997316001429958007891754755930987137674752285406368865998657229136517142444603262805592854490252729052947894566346428512669272122800749987063960477506837852659928778311456479521376243727123765644837751978719830360446098150260826070695872527476398583005380371621245701991418186191505272185682877263929182117805302622601234034259092780710141488551743851551192448517532073418921686297733158725988633566309423550960280377342742114905328021573296448391698843210476148041894146096484115921839319025189940648598908007458049512311943960708929795703909548440535207443423672118903732283551729696786881794776749579360677062383728971921697411388202485195737110594336847354573514016185594394825270162538408862981289525842864320100925917419290517152125683646145675771383818213681366209492817029704173094304581028944961124267815685064549185494410598321627087965484121449389873462640816543296891515216048762261196826063366702926093033259680081327802277583521826224957663703734244887839922595853608298334786018278688712495300430896609483781401486173799538994506864919429470582109841242046211465294725716494387651163961849442605992068211875115040245720492638539339860382395842715387592878660168856681862351038002695097039522856965128832219246904820807868816977601777680591309916730393078906788524938388192244682138574910012686874240377492634681183264779402873749491190833253905158724329029979557300487263191729338525318206204134440523831250106393478776271299431677685529856838318975463492591099006982940611677913817691458252639691364149966195839379324678407000260685675946314140717226597114099369773771543276852887006474714912914061452373658908177778560573922860865783637769957293210016131205658859557242348340548545479399418396165064022083167537459993919642276728472992625904458569282572374844793528108681563805886786872047397398803514971553927431912972169921595098872311938421783684611873901214966448378750190818294564606676218370834999584073670726839408746390945062029316009019224710880687435806347120181213204692207907640504307030445902560556297713887545904594219883687742284078917860931989595081742393841278721637957459802666942304643940230311906107085092297623214455606454433053992505948064430334277071997621133002973371145693622096441382185180612191219787818942086157653828024279804816175781678938501824847987882865033638197445090295549574886473074376714054380794461949542273669349539348074167494668575339964551525714507911516943042361825331391095814675788862507636384861577096204325936583308837334571867562975934477483650435233162157125993325818557185817819189998768933845655709898811219193580561559137051544512090899046810455049893983773281461388219994765363019982228621057234818568659725904400364452913200261373402763884193229205073079095350274114269493412447088122517609932868546904077725375520177942332486038999067331235920413992311961579674093653514241914681557990337807232149982318434636375596097760572142543576549078792747704442034925460287445336815493342069069213417641294159462962165248168563599225598567180352138616876074013309286776697542503117685325584089092739809594017171268054656453156584648483828076370374689032741565252560723716684535895348774990581837146435679613085647879659105220345903233305860058823754972779833030911114008591031177490151144349986152520300633807046867932006657145171876109567588950791786948983828702671289691533569409420810965235336580891646855237538917657129211111477869122855801450561705586039244403644225998990031452889443339884735684297791579173242737277444823166678097325608787801036479634746218324742451760197429769702566319639447018939348442940776453970226876214357547041366073378358080971314645692759245498180466752336356322728568952295983540895396161085704140715815836762452548544049120018608566889070408798754063331304222314167221837219330167965669872886752437891931963396270174769120069963222651285189326290677168045624748805770572007207828455432490550219074545642670182631200508827298993579310334148886499348810932816400777272867320406827267772957569201754191598605501193378354710648655165315130852529569460110194437559947233713810327374034285163789761110711034282696248122303223943187643547554271978101572062019313197579991756770620248464233010799250712634833173664589153286978585965405897025825370595571253461114138209907840999699152958392293312681346771687789652343566528524743867553191477540624121056826956149115850024781123093706027088042051136542619202831194234197042051054165487077028751814279666690483252688640395630266613059232935582342516206410498630638876390577392286152175695021008619699567986539049668412363329563309390225146624733759671091627464019856016492126122202365766108534158674630490011970591554726136091272431863889540048725196855183970766309744124306063990982309571948449701262154884625392074274240943617539676466048165284186110711956007338552413008810476770996695165552037481931884605326973658546499974860699906856888171815330455261034606739236664531852920487519300028504082827078653085780495230026805582606650176532654882941346801861327919147943565578705002056975544773571749716162574241621712666454032125632088788984025943399252933355745346276382061042029233666417345252673230307401283717790628132299054832758045690936418278543524327856937403810474270977053837130306195304530612582572902144740365318044372926218119023215648857013335311199939968879227617562691863557448407566588121247233821204917931910348507763600775759218997059866357206208979428954937703479218313486786713905550578351329439037951407362077595549735473377562315320894072525857639863813747015583276715286267222563430766470792092345573905983370458693861615960145411044601169225322925184270171166166241919407544909565259202923134547322854224936213469871932288751904551473773096918052665657359036339306624584694734729883633260926404244768028436101618551248651291229906286716640249979431627608484198947468792903321709211491129122482270884918789597930005204642720345494160551654638835638233988079576093264525315947683238138926058813873019159301845295183512348251117199536682918036514719665741196967339021456799400303239762286495141011373135643588676761173632670965536743385271419325312992127054039155257672045487663623405787675352665753294930313327018849473743105820590421611034021690948248332431853333895754387358002853053217488605836150810363063022773099117674916045477068161885096366083171036451973297664689449182215047264769753982475943205266965527276356827859591845528733403136014424296301781722745710774285299987118651639397762399670596092111348411567004951741576792352375011194742954027271111897740118115074357882780117754163615415185524004278181937890759275347848161744691542981756812802364993406213181897870837451360398637198300813703877272149698573400944190737277291776677453848348961004795268347901911876602738940263417220810752198716208106553038147679671724014924811192683837271267349041337115782171076374735003659165094887838212189610780604439281432722549060284343320068454665217470130665398974134395372441198222819410492843266935558210361338765505347719738106158007425390700351926259167324736505415170130849477157595421258625629417893940509247311821288570671540677524646277698799586216851096519027253988996353952250920327121235227446583776753910906129743293252757862316503762650550621807089335539759152804692315180347073056582369051806609226671162233739520055759664614353870881223589088641735715921940767749976427339201217460888521094928864508226075167658870241199120323937911450120835347841946157179865208309824958612298408249701738765858273587265885312185283156536499094135239643607546091491288428681563579201849507010877351636863781814102248447905529845091880877598787314722737261304633472863437573020744318719027492729819560839290736446538091059554308359380607768751016635292640456468434936761514846995926568918424730457644058605052319557318519857040672087399723104431210500358689769135879513378202888587279557677451644711698768294320961944987231976469701087253099189272173007938425122786772712444236464753471026544961740067907774290523774612662279970195555395212318143406100643965203555290233022195855906210813393788873809511302762863133899757189142101158520380528681933305519833378927795439520101850357126284472312878872333511671822776874842788212864024330288188181874548646248812814239242134280233862997713163750167785625109332814726021876279156258493340433287140993584704448265753253198144783714442071944444757137469868791713876869823713232442681229109845828449191235793087066504225416428033192622244826081623428515613091850223628990075121380911382220084268516362823936038436833188248735903030220307268405480545939661562831782576681696812197356459027375995553149893795585886149786803788424456100689156916432833957258190085239023957856046093915935730261757326978221873606002984586889428268130933462610476290576198865297134099420549071917405431865615607012989376511354247315446607610733336529593062081831245515897700415623282617347179182341778785509112799999398054242147678127395001004687818809212614922074782393802631476830648755096663013559303803391043928217592519824398064693871854450895300832853731728030854711873085254640834702473650032048794882293184098005403113081570249360435573682357221395699440167968032939963067101912967404036708666926642630571417813363644108443706710152496870306407179144536283061543848629956605260197829923775597653207605821212308689622798573428671038839462719683543714280910381187295533431699932983685475467480045508291902285154441658957262288858551390473679031282438142812923932727852065631355867838144820026318288275658780078704120206474138665810045472605279536393574848971258158538668382566932020738868279222162220161921914072285290532602824382510702113597091907509615836925983737861794589400972320323972510963961797016087312961395170999924427375430160875958815589614872140999718779088402874497361460473318208556756624842050193055717409461643469160448720396573456681798920138144809634810707819284287942244732161163735638101917683557142520171386539218475471569607429736046991013463477190981671612994879598860640967220482563772827874414585006528071180707411329109791505555287410062497731093539528856037093613147797130244162730504557305089124414342081699442946519702524265234800190503147357023732413506288974573562974811408600257983691241949164802974725610847068704607581160647914367855361781410420483492810525400259384205507126615440626251437316527296489159425132816722563350826354278629746535290461480972973319102728694183906164593942962302594210928105591270685630027248443000384954027887470527231024454004504084372694139310924793233793593593033337924220372747332437854825364517129029008442904286071583386143736648526606109124510233834052115004124419689029763602997679479323565449577018475433624604837247388015049295471450304824040344076750746268160912771799654415465563473120555075256357835788420253052757135186473333372621889715609709031123951571862774867464067129776619683345831854969175823177464795827594924465129538484685781623630390449350209836021457737535018120907792151664579687039358704436494663211566451812916413311347521755571585830897887318518702656625796702458653065375655992317668620056311474033000000557425975313214048512963230767739399211992755853272071835261970937381145149663134638799924920362822130881909279563595642069809242587140001445682163317950248525367703882170188182948048392441355570898691324044271227544803876093086121605419836635621139015358005004854914467454267972587949730812895969329511303919009173266382671527273332354499690673497484035487441092534534691310417847355095959172732250751182325390449976449098064710548650154017574284593349113184915623532104313248357992727507654306037235643761764259743017582758993439735668888542261820920012226733225542557584912450789636380546321728172949587143621569286955786377310175492802296894689256402542723464324670728222467619221412417635623895350621022956649804732565730770527844903975118207364064624350320576686902917991264783682318585128431606498483506928445916566129282772149987918208678500147892248105241020168459093143939948881681161851684870811451869101991670354195332913507553596530664754052567367354265552592640533741992550689875167858862773098806187814163557264368423791581372856606273006413274718599251167332779093043671208454580439174175449878641959043257792628109350905008199026209350952399939836318452258623354171645581418691311313407088633996737961256012549070580639023353456995231218812360759384095750975805946498508857169781162969936933490818274421696662266939021172793298265563097565426414313342444903230972775965478296831586202268069280482306160514493701918352001586685395787031662377750775255743226769878735089671419356312601266492366357181784496532443554871814635445964002674082379593193113659146142598455519289996473218227174495876796219860026043689140104360845135187882921867988667155396999586262417306726171442363732944543553299259241687832983328859832650226849617534873258020190030552625451420867349936123907523278980416351970718280186150552807689565110464823985560557811466886438912522613341467924402929020526908975430723985027752223205587139647904352777596380860427471531531772899362946740926973665449631117211567997823515432906929891757191722436052180275484011266289828572119855963659627160069835391604790907718055405070358181905443380150509659674760937786336391673438565966195435018581535673720039832934149230081728119036708373279695072695627871989588175820689170512716708504575477953316621192923681124254144485480184339142630577210047232654384439051132438109952713025266106252795634420375805615306499586462793601661207674899616531082431462395924173778095008611052424056909841000315478523866482810171779407599492597688421722407485200040779168115544678532821451401053080083262101487368547486432799486266053386493560447153507387086754056138361107292768144427754883401656463255794730796663530897918517684518226564649270053693933810675861841797800773040795101011251960347024123145383100059374194605434687379309857136225233752718896814363940835967698357301827928553199228096736168842170458200612117260558741833515567724641576761314401774913292600408362453910282591933182972678359721858082012692186848646365006962687941050818997785084626643794448012399701948749790441856828074730644370268815093660107995193266737008431439119354898099117779630493142197205901169512619535454439824098396898529920870487928228216666938825887059278381428823030689786489841852709226553267563969283831007435134168116837210056297532254811838222583981228177556743362717026056815884828055649648564918190240569660497819740560647644124831171004627871743874067884106989677663775861811308593429781692835147269288463011766437616850512421302736584414136961104904934245149405313687200283808295296087125278398211144656004187894448575839155123317889300593448348001224693490929057988315255105595471216771975411248090612781436296816965387544557749582862369601759678712949701546925941741264886956101275384984951701155893075262089508238305828453832790905279467127956049238446644322226721451943275068305329089651479750627111542920955275476760779423224650461648238633356858954330127699697300596040197935465248011941791710464082361957423957573963616529138408352291332554111449027195537218421286518587058802883842097917088639196769189613680513912938540352363466085241238183271978269164296160460629097322213907040298325682292389048266742986967661346338890971170439361462375774908602247842630422824685208830590534208167824723148274877911264468459862683049513293596366691768485601542376782586775345714931016220516477322031222037139163138400806253543718423189132716563073581146216974382410796184785123508947907626473139750796826987563595691836189725384412532893010893472837100582228557736238189676112963495569286204544224173951148316637527985194543408295849764128709743526540742498053988854373290685008133940307999507366358217580923541906901477061642680907897845666740737549272485752842888148113474053503967046476673861610753139884408888318078815895420309007823720264012642348147892450522637001796164534164689046227828427397427379144525580319464862239368772656228419778466032944085962408616750401146756244316713084521588907829543685169427421562768799815779421728581355204926594313865707599342967088979268006149935111413472718434017211992475505844050695035043162881214715401053531741966525628808290143483662326702378756640906247881357733507512980864565811619055134023787321174282834170123102641317350224815285640836641712272500544206327645169543738304581466575960259358535344348308016428660887035705372275872932363145709684322249684552859626151531548847596890557077491369191703688145710386871785270752168711808425548259755727921060696469227624752010926582340598498303694412299742830425033562810185601732086637985359561321485346412166204888510856441716088913149180409306124266839033844746743946436403516615013500964452775428313166564697436785853030513456685483239087399281407151173856818021426198280457238931629155795661375603139444054068418582632023800007064319603299178347414078548762264863794287961471005247453887696158217986847378767855371241338638860716171019521199078502445302087973610068606814087387040528798434710050167872444358911648656240822172196560498387066652961536862500597487804033265397314950538217872154061253652765110300357468364527538651629442443125575110629739210830559112816184204626454592993434574822663040172694359247677219042794087431619270643036407673089231513325190068629453991417780162009289405361083192732683051180243736965579305175373235532588271504572334123372476339202800738488664908538715569780915090394139651407597404305839793664075402672280642406791797323505501795178424513056584662354507914263684013148079194353764172482592882607813306021193792124390699773757252887883749129877909779024010057002689863658308525280268454591623680840632634063881329307148441478245505672273918706524159146876321349517650872714932858132912180805511987296639219303470797014363568975636842196223851116238956070665758147169611633626085322816674564637286706404202488285167774926968876452659476983122376268566917910043134506557379610707003465091612437851759181569186210896680644346686315097970891157872019989134492767938741384763540418603838901467742477441886924027914022869163011647690199105329537052180449134109505979872566162801442791273053945620133480967673414642961002574719683009858607998885881926828821399659940876020773794685037297976577555094971291943949825670140029648411916309658325808036485467106145979987259238822758922876987359135497349464114561077212097660428671963362334263637225750454023491395793641245357976445249886950126045276376004123853422977701992086215369151887497463236552780208569717265364613336292376886379667613231494701599796979605088819793170363426051762395468790298843378804190401494854572137478802996041191644774307886023127330242791742094809102588465625927880499344777621989799601010827469854608308545058072071201660924511298149564502895290081060424091335037513549929283829461710720633972711301311715392041168548159837844128353187553536936053594570210792296315784672585313220508533376575490002467669177763105392437138712908691986494197518701650895852720412338689327846167642316697137752810751303436950699351690182216419050522003797437802400769389105621126890952734836376049898439556403522290656340705272799614094072024240477374574962543174812192220709585397788884952292881618389504818390824128901778448120976781497289586536408952938310307947818620692756785122016582812550387164390499317683542219064743723686308620458174494006123589306954522619161409369555571317529222888998938222834525800853033832105934966292167708989153242766384715075373464975389221791827469670757801691140866341075944126911015142270192306321414143378054692514547488244350219731554372899610150261766082731347392438536936526434872129844729024346378822145294835504607943422289538113696418307595414078667956728415016230735255680515391961685320462353529478128831951220803452522463355304736417096310328516673081205277161028318215013404558908292935693712723799329118577479985178407088760059516082973197295694424387173266959042283226464719682609671922442096574033030752425910281847376514585809833963034114078917551426657610390438279540821015589271309288884611614057469661525660585409038649311052596912878401987754717584872579830238347171682672484159187219767003694054541218242338178397419642454230359986535765652826868280255974078431931629522086708536136291067965499270556916743709719745375187280745658915083957439471441893387780825126000457854339780913007438922875480431690320836651962264992107007544854115562322278802234683201768226000354867185099211930987372550367276577011920221382741402117603644032815460753146780532783095878676892982967464340361654586406340534498623638692205030743588333008361206931363840706356217752103821103032097909428658508472840861270636307531400008746969162804950501765062231219839646408874111308303742527802111660515979491197221992550352950680528978432973337530662631443872421502034941686464029208691179253974633083968428195460504582650186525752929763215568568858840708945164848657514714750982966814912660713901308316610426177259059236510217797387354540335797493306882405730583120423051204548977009103989266057879594828132325283588879884274115105681272522466440011489056818138006429596120964416865129024767602240389101723129002424372430981551380055008965455432613518723511332227426896501925762583792605256502225137462098822957176490338326135755259948521975758579300572440373930889828996805387818423075997063302757358096313924011234743217330967462305965251901096303750426757803550952223536783258298435220314933666414834773004659481476361310854325538901962091280711351675383558348489773063830333088230056401612427152917609953037611593409709469606888070064436776320181222866779194043652506953885610127554561396832821962653642093596783223563250758680046186829119555641739971895985417937610935599653337030510255498271406346671966301022566242748882896605321623079664829422678205128002795932072946234603958300900168460699739589383238585603779153050902747453950821083684908086377419756501951226252309509177833859613934544499494523213781494747508084344300445917090164277856368424024995774750164165356362203536982727431874040582730758827807088811332228270080617778281553249121139973803861899560858001301867410676501065625260908683430591342629044282377525427689606139641500991270543779120014334377089273347216652517946851128269337108714685195894223517604397547947195449168609606099962316028344086945018721799879346208955530704758553740908554348526540395373415718494202720545017949110693090300358362644232494430244267361935056395316823832947074739812484077051874201468668789558274543711183910790620331655130367490289698044079706948617938869412099163774070299706075938442381049695920726303900639184471254422303100149488623936154308006481375925691053591200284440218972230662379749285027757410204743271543543726767725364847136577895436395410563701177035454287326182755413562528416601515899814050970459394067732110328222650362003493551869984213469931721571835000581980924833434444109364816569470738562891043449760015570260691974615238243367701422623224607686197686309386275594432743539938508527142261538188660764116068111879282354503530582747564660056114408310094277057235217104526284690600597851983972640639924767534840370308172428716733348868575878251536263146517280822216748947741016989582861594209528039514289744064500645789697831699482515778653715626271389852477324285599445961826376651817324371340986595278718916759504412126660310102093259739190607652883703298058026825795192554251791423166000819842250643239852376612942533090840776298103994103527799787853462921967553872539576990367761724433072880055737077804331881027692787819006050599861458193113923757853942128730575060274499151628625596937529470944516063429794204349535315005866569153784426462223412794761048627483580263869001510187245986041271669517687389966417669044390840025280362099437621470555453640803469286804430352947633723712901053966476338920631907442974635175637381121326668358727252216395270064992742883835490824635810875356811804682372661845306394699139996663816468948296913385939088666062425643434386822833612042904235962377374692779880369657655794501942130287943458880813547664957386316847778866923157724287406049122881634003555430795606484804321310024013871495798807970020139873162677034285940907679979099296136919700873907500707124792777859782593279338896099314941285486181659170259309943005603707548165489709179489160036793064282228065132977036127797723198667553555167879736777929490107756669616352197518339217212707250560630272544600443539914806166766000805897086570567302453693376787602152537411321663406492275263762808025131641702248417585020479215239605381644753130420157812200817997776235497913459604387103745707231424479933007624346089278584010457856133515859378660712364568339790716411884915423792522166265343370737013258336631367463403215694244795622372067620394643411827004334427552892753013470217749881648308160649837375770542907128813294470604116727933812082039129340894365165560755767782862374685531332864537229789956121775386501885681770436132638983817396025033101027901938239622586245085979447403898091409261740141820419184593219558883511426313334358374636065825182597123813181441069775726389775277487697975842203136587199662930084428429507453537485084933805907017543979087063935546209251463411855842790583164360574727148033149238478801429481301028970124731187977839344570565290618039698573517949021519388814689498732797049193356665792705348322652353788280421504089238213654168825445829390322846658878343770149856187457498223147047460285121699414246861932385887339006708035000517192201576445276471790553352518258462981585234029407406257394480558701849850558430629028444786359607582222639002822882864786546125394808103212100600640570105268227792571125088213552306776570889719136737375351946527146739321472780304223615078348167808094860128443112292160222014389064550928537583804264919581449255925997508050636091591817000529982785716423244936211265490644934622950910899783791808824469253040830986051557104870028387701293617908549877147344289319489983067337087577117178009623367458728917587126478757933506920059555084670183387249816259131537857633672517141496631866605018923197780863356597169063685456184193184610578070017119737764506177281381712637072166293183141921630768072783548880806368225564245010199214299541000302376738894404131452563271476539498385827302784172364704027113994770738693314857084047171790959507177982569047116314782034585340780306947219209430325008547454693987891639988840443042864023558077358984447343694822541532051350526977181735227711900275012108048459157258753361535340947336401521001040869208325992634317516256801601922821972796232381660085125902762279660865535413096650920537145755631093978785811918704455493016945994690825407659601252844074154134035465812917918511101704821195699677861444415318324926398429712290631446493829200399410258172834876625762325521110389145168161082804300797109492154834673606048096641441439180520647088811735492103170021551021322075816385558853702675613133527719682917580542582378489876777849901141782496857283792202168231010415095599889579889721060010448625375305005363134600930334390865605844560614937037633643214465710196711093819185580488973106066977920982436378950147545212457044970309392292485879607584444782934502403600661579790310851162968137905636770375692970636990083644375123589575670556057093477246423056806581293786604628042967845097060999956274708055575642378129999920266195056911034448374247419642814097855749354029303299199613978373701004308884060032317357997828177157171836353321238658726030750933045573068893857397738482085325455364760408881838939922604003333475321186936332892647875938800010963510462757538338209678544225725272657791768283786353453227089898357227202326748322312103556551008878006465384047222917330193470740891666767863126427218351291329475457318268426079938375030853748393989427438688531958573396676786344080296372812978764908816659188198519804270332027198721597773753257030537788867600098231184437350267086183242657822446175810922689697401134591570878189407436537741399582778599170314244692982667010096894247390115862952217554798992342666010451787456971706302527562675345694584171254707736886316751801317823062359153108157316965404584461461631678214805335548947963104977987467130091616850984755683095700988306562590535940931616990303183389203525489277902745907380914134076289335199458187167994870899469511822564331041259117655088348001776925146969978717777606479589247195943047055826929155025899336815642894306806212800181961543319901149394297950645832430185117834560341672993956334591602498328719209279649832656870819242322196459106914258623555163787531151214627239592137260799997171987620325471954798171607236206776285999253758542337928995865916990427250296454528401281487597781104592930736982171713439246176175595052094954294484239414816655215086034361400106863732706827281148881931262977595649590350762357977307989204920045674717702945886319522073233792818283851184129335954410120887387942339867585602285502948578998555903462318846080364145381881373992414582933763813384865786338201568892036975535306914175943139973615528160882034038891401836657648048782212853054783246589547072856172864391009914904624541605748793307451457421531182596370613929549359088003107522468521280349193879494463851686795668988292302192895250090539097641087605149046191763130230184345901834678630967734565249456429964964231769910837056176859279697388993507465938448077019110356811849342376119401842535869844442701063030525062852607868942610173686961539901652299835372277805639679295219462012586216682273746809400011084477698309843556652844270730018160213753842362246296061956619518661024393265657689705300114962347363854277175275919397042406670042886217358056130776431509667737588965992222694472310717237077767107562035514308250723163999234895735243215518463167280293684604971457283525437851525187190062894105655786201875477374228294681635556605682342837033268307839497337164712516480112376024111784202581409607011981298680698412327762263051822236559231070212372117378161602479660557327686966682495896715294514947403238417338835589995146121804109337442525855525920048673871835119092629559677241443974708237251190683996169170219704688643686158375169762520508745942145951882022900991479672424614544644478221394930441893247209805470129054963088573653780471298572245378553254800669547308727849973677645843849653264009541691354638268400733569728588589940270740244634475973606772770647036900295565819720256860514970450719227499513454478842111847668104256064522768727162490030349864727147463203338543108714756158962917611771695860098588859616189813035703214193721365379994503983634244183234253964690719744196318218702596543925101448324352101911161134103336012251498735869995825591514841259193574633181174703972289734254016202290793364629569224894171442752110620975574222453628226836805176873680265899692199202328260779635559870866842774277982972204131498693528509859691214919093560024486841374482963801923918635996934424437839868732657596069412880639477936340487921534797502502332140761928974723025035537447321451730615334103502569806567145447054136030930727102730028912311315915859439890629157006937543206947088026470911581300405283818640888153258776529575729441985496921581015462251861819611026449802151666456808763035695189567943333035105321280917918115963616252359366706759405521282981828115575370617744137701617188008875337276356574830576073968364745161581364209063862508622031963143075526156752547301992593622858865595967220028290969573239119316629940035548704221084624010943109590156744993465135326917916413368311347189416535059275863477664446639636748962995914926166379863141035997367521800301486910041860582859899947362333529225226100620036388305122587739060049496678315671703001173151723934434561939437093117399425421798815613119162912237176475810413718168903459869521673337143972414956951188103024895498096152040091613004356546405378904633299090411100299334312045685562168035280316064002461125147190410888669021253860302004062006194306159879455660906972568416195459021144167813777348814154928841793276656836967481268405659194446994896293282006609103964783089363248584685242483704291828452560022062100323383231890799304296127287459073601092226467047503186852240181567638807285879482088409445160291031737747282730525421612595025949582601584491273128017817372484510710919723094758853156861588895046751860119560609519529343765933072316545613423943140162677488241625600244756939957349615602068185435303275830318795628754569827549518492113658431493066813544918698120214273364621842796690241260740775239210831776763579141801522564000868944026308217178780511955179251363237442161022406108991874650124432584967192229702656192726411926119290617389634562349029905487828109285818910592461668834356434010054097445586103679104259353940288817204898641596423755839139285611881380254541834043015903334685208224522430758804814275320297530662585513917489338010245522473304314191194067331306554845795987689271819271319867795964320458175463026851016547675816378629975342386930164418950332125149991380783268660730915404019985304571037518862505308931287276846257882031537113115262837069226104808354847564028445548932409356992463495025677455688136333953812808667541350286067887828239558328354366796364323739747814399575246781820323574621410780238893080664281180153612118274864450449372760563234966082381864332213761685765823981178391478592353480340579264777764156659751049525420516164268658805971611385826317022637015153538376289686801466388436213856461070202294076183711157268532843545264055747697186027631656199305351897550413989023953255702766139493699891830896143252589760250987522433046267491950922645528640887802505660255199731188321217770002746296287314541849155407417398974047320852156417274823007680404651003291142095542473717677070766622172126172881838567139003569398941518378244936157686238136960129201470744833244073542815046604478044204151371988400016116611846178365443160530447072454274673586318193945102980407574724598248289597748097513216376512595598476720663240493032583119167644504732238075885599585419286865643784329885201617704387357531409648516924185637461846254990193626409074558895425438553224056605412375251392755464049262803791385887948449607945670419106136798384931474078570085577671238859547068151862950076447189301693035217543557451147806148048789476504377793673336153468313014947134131432882276958247099789530755639737390860844091801056844864692923868870709032131369055731700550154209000149566607638666835483131634799933736829048082657968339459394084936562452059444391304817719140196803566746387332096104007780988957140575629711993477309367978731940073854061480786822475593363316104353539794912185233763430120190172063649352101069758698809367517396372352491346443223340927018680230779526380418111929567041771549123631835966020337547819394449646873821386521508779916087141565303794800093489182426538089069999614091089395126906343775085796308602039199666964765738627384824220199738413292531433827810298730548199064855386850240926299250598059155786720421444900606929685718498336409770900556421657322860336670246283415581989632458754785237120260837572326278292813041085404295239238118291145389020606363935415742779921770715114529071788476423059219082865938234212516117114838418467607569761286662164329233825061017382320346208519842366144509966167665480817515318611330885108447695558965683072356885878591293463536869528273407988445138294743048171530992641124714213510465660196364519092709905687407759924270133585089713764993561960297496746100560427270862145575059866861225197447724288646280991370068518739077696770161249835190205290093362642338389120690121113069511553122681915452295159671489341684626676695143765133783693056997140540284052000858815030566754272103570463120831170555801810490875704289133951926927920031410143891491643299283011417913556418753634098637992889383873922480721753474431564535936141234527620396410934234785879475606293649496355083581762541182229315264678695700602882141473973348304093906776382005308420824668111804937577961474469924475445123549385092724964799049866362649748793254063016485981974341540754975959549177488762827720310593138264843675154432418187459207982485349787777566020925252822255651596813647830640721940020667605641714173701057865466210549329023474649786527923405075354081119083913837998226104837367006409119210295922109910625508101863070895078740014087716680481979988816142260663436613281205484465502711543638480695856576602046578850360409569675266366827749704469284164950878339076545463128488810593244207911518074795411807985293900849200879212165692484358763215464306780185865259408597775450624125953568123493609024019396276744880599809878446487113801385673083840471910392997790045403964722248080768666709731307094188321073902148946710054207709649923554390255005530991661578239431893243151268419312537942914282214807764983147531258476164973778049876017189345116535533960107222579462655618177817241169668666940618734998772193514411466750950112431477527336371745631590774078354940610286439729031199311716504999241897166758685566940579923847504103879661770558734475919893369109811150942824033883709956559910173188512279992316644951511253985414374938598606439326451296098732851755971871047165720005391934714330236203874263490890803150515646333694972060277083116519786125336921851120074918074196494065256308791888550699930054625215124449931774639699300726408658659223087272489047489514736665046681922048742857904090965492761463283957293325074562087842913874704626294834134443571634177868739830372158572864338087563418017411763703243668030771656113133232345529843299280932164047151008479364581832676557306104220633096059312995011203670737568733185656871837277433394210225469878959695371320860023018958031990331266752409041628545600179388165791764421625746762198284520871831714627106602238305312344688439115082580356404979121267085985607442338824907739392335729943826413618319088910845328614878207256641771238472617757134760369313101110174916151091797705297388684085516036110320162146903292617901775861845360947667402232547465841765380119725482084521289176475443261718429449888924429761755580635251276671529931411994277064696762580477009307734676687903738298698017775281718488367567552428954445230511799054050342445250823387756626699624774278348504855927508820646150956630143554213850757853528495425291716480561449234673668989828710196289065710120403078579035435892347625428864791464617436610382296252332258653148858517266742575931803045928167849225262359652663128619909965631227923531057407009962534311588464388197219522647244618914680854683591164176045284222737597470148742245606558448743698277226151350350943707539310993913136047133268611353143872628907330074261079535040314391438367883505861513561868615161247566277528106749665445865307823299716415879702009060504098988075680475606853842363943605113687462497790158407488922200932901885192231994995113421659741245513859664382327199314573556327829362606832070584203455916383719021978342068617543971688670159355504457169578005408301808108878556749631684195390694607545138902424171046521439795550833650932484879573298698702575475847935126908824495287615147139606127640733164130849230302967606151014832560058155116279592430708200016168672282048430086516984518190281374469601046831319017691461152193021837866055229875308062267617656260915095348746498125768118875564186838987104687002351387636580081189815328441270071802733114184685662371485639772187866138618979272823784792928210713066743513806481685915395974498933976421537563956746442173654769739004077445405434341896727071205202125180668533050597891487915626364270168706916307437934244038358541428389986967114056020787049790960021951055629328553481037181938112952534179511350059982261391231770445851711138393206860209370024896180121237541518662946133170187250848734286923217024757810551073700639418978509220253700342326751558109260728673087728575965213980837863379405441356190310729403479491145413700187636849006544347622527561305477489655736330120641020287727925937614088513851907794348124800267361748083405111879269674232405321490978803128707802718185703128914748581923197819493238502464370352056146655760300291281158861532607369200453128002461968228570108167670463757109733289778575079258004768349357170129414894220017602689468216236262421905977720551772217497801139526573840204857842032620737511974646003136181972074878889918149006356801051593819264346169192451104116490178948457755440285706721750205129890631973388897079466426929010663714592623217357048098614709300910050330252145816218829242065371337053111479456462386211006566669512049786271732334075333176266911036540797288447152860013135553185686368223190232062912450990498894135887826161514269381519494570195863038583197904970829749828633422424125327101625900345859987385195873884128753735604837776256936575260431943627958103521862594223747861662317946789488008873596132354672157531429924499413290698293228192503632270992889913768019532962504560045179510941583630820609995072394185802849790722880836088883336793051869106445465602082036418959912639382084213010960013430912049997771474620019395174167310195811234986053601055718324377398584339962623290276509251484215577008165599409415073656474184685506456195196744754293581859579677095788343786588306843227440162492190659488461862294711941643950074145293768753164643797707510688086167564661215957787562663495212919678451500020531131518369407879948825721820556096554783022438210764582999386552703261765709630007343461263552363790223620139588928721550710418823875159220031764237259362250533104629118445307363712498586314052404247965734693255960948807537688426543720264454813997237711928535537967533050135804560322213624114243246095875311073506598132254711166976958335752783617414730913320012745571704547605725941819658474896559329614616641078187547723603519096652601953965252612912431323857138118708799130340854912077679857580860597128258828869920227598462637222479419310858378634972256999954860374092454510856703395918107402832704997002889724665288218964429190419236475281547045745385790017162850485328659442410789626816542366539112153309535413255792403580842036713333763116154141520490862835110547104556309938823729769082961383912014115677961948503530716815009555615273513160105249066708855726107674865319287626811191102482743795854463721097304712494846169478593676475405633858475532275231071561260623768949373227811269058809008114405389847299483522082331115035027295734212003714956390995281766427207203078861721177003567898719079637946342646362919305483998248572359714074065708318808342390137634239841217426117447560045401304151033909860836869489034834766006413290496064062199465066162262396170005449475766361360955578673079934132470672785804910450134910718237139759640868507204443062640404503045958182772104268267096353145075345564563411344145887678769114230526523546687294397217827617671771847597172836464539915851853073863095408596915610321207377904618370384679814427215820936711319340489558961322385007898642089846615247404247283965646819733719556924532315752673496989406654891504872611185919697482871592118793857497033986203977384151646744588803058906068780496028241290229810522060177855611139743428249514757258278970739226304816041622308224603439642020211779793144422240118462906710366683810807980069877230948365506777081508613878036252613046703404310245259896842411965088946205211521575816004223268172106708395442450219861284571040731854445524887540901307033448294302759867751721580153718388199770958275485334911297163060257408133107407779073940238194856006387897590666587022231863219280956356602942896338677984093624060618081971525433827013486013534940255199985657363142248578867860656700462609274500348252261364242099610363486540962423305773572674349987991892304152526939353099917610214734526710603125309123731271545920138891977557693175447251981335010547505212327668316228592881039221109487938497921112894801375510654636769135866300345149496201728034395358752207894740872865128684071034526895254878831624573158501629444993102751348924083118955535461871926739597781750115282959430942907197492017973557846517330398350551592692812591872436643015249097418967780183850704497705204295685786962605779124113442103344574619275617236981148639043900144899804132209963931187752389639366666091076970140846224350177252261733760612497794303884567257839023455943705062982951041617268382476043287215838529923573366023858009189870966929366046792281587921375071520800787031698084114779911200588764991728622139137259758796380294040692647438595582068249027733059105646627413222129125036033137936077044589847268954879879137360232856975990051605418689024021006842144331986415533983155748868199538667906398962256720196895129232968757229553973780626289190226139145163109896631022191819847962692630034243023011347582259131124852949641422551779207433417647825492454410187138346635229552742878564786962548360838974291703329835289463731995003309557094581568865810060460522939138970548345889538422896469869413414035179584955828162355126364639782799277847857046748008740450126094293186089760676576200356111689655760847048946686210454457797889359359187380120197549801350470701800589572924507483390271775314759777202026168364516071401896169131016860123996712489864899542530384650760706314296355557584661486077975454071486189180608439262597870660919139190077300801104786629135049395043964913522195141551362036056027264786234060555828301359682293504298464062329076057815113716459465780005244470009795239506351644460106442233882223848051954265939887589716664418697626530873810882019969494704786465444653621808489131861313513114866915804801273174812725237285049696676183078137309586430953070215347734153743645970741747724602985745021232096181675804831921799343267080389609286900266986665744755436642769856302081131648879248028876750861017861869424342677216100443967719618258961217039591065984724261943136470135371237392143535975386569487240636656797733669043057920349717861774027602645086564068282702861078598415971312935845313775599619816510526915823398685293760904958633003500225667753603864790427952760017628461912297564793448675356214249684057919297917006375982033769790947008547781494380682594282207550867332300856811809540415766059912623049733779906437373180558690742339613889013771748477397843235438838711518654660660263851239829920478209855601482268206771695104115431070890132964701827408057746602692299530210735362429350925422408855122942078777387184674589273797658941246869928831884747616105146607467375526384354701531759148818150396131682060723322535965707284903035603303922102889386045041886537880992201439742597824227383483799009237217725729788020042197783658038626930573814009922811916976707927959372676665946818129607983720672668214091806035799099035017683796049553038409524039842162651370916864855027296614631800837309163135873681760014229241639917671681267371091807839505102293858338241638662736196199505302847299127765007320643897370515445215878124100106739630826307142115009734985974575200480978553674533798912567676126437145628681050083658299069506930751263480273930444272352997340530453073837146578052696379669645918264990625489894651195565945077325234050149415710590717003487046282325946340014051220385670416425428186895796306718671488563368189777916717505519493691195002717491704104666554673811029587526373339579463518196192699343210976024678470725600831887464964860787540153364978895644697998891785974171197563490102056335255376778694666867333383745728301643119241914811919835399864370179183417394506396262001954220675463982481531463555124182706555630346318848541005001763616742407560960962864546652440821475262468384911801314039766333877154513961346844368719344900813842230593080184122853067083165314468073940045305395389710902025321998072242489519966872728185170106126135750190670468198746470603825009447849355625141466292797966221719257276025585059183405940791115078550454154882816840971868385572477735268178487723675762391685718832569711276697894452952597383720927460876193024274733261162954117005723604498290148792536769932127046270844324945769287187656436509112124533458797733057727087174249182386293278745064446171324311473147254293716655114371401290112059825212447750696669246327493142474723102748413987319728287234014717588013330472366308343872844159968815474658483608075171677333841219145651897604252524488681640568170531655364796549814135763129533204012251793393992651587719437940081949437113385216522150556617565825330233024355224606178040584400807704818440889165893514532621433210432860280664408667417171834170749167323340856558987018081277023508856898825123089177360381654658777262163653033144570368574152239792005980558343531191278015472931498892778664829317276662120802401922439250932082648769067497572589371430427987884555531585229258071925430960238209441263330279233852017839329171986983689702224093274241775382166688619242104392810596360416585504508258427955916955169958224467057453074271378020713332437275840806376707052795972554724652873753786449694734820451340183444712161914354584697807374338195509360149780283238654565689151018853852595452099366967152837345976102736656607664781132362104843895176239202699374841294772343224717737836796861719750139349065811595590143802848100828405354145578829855083560489108338916801062555428479690783294340910791203121982081518267779538495656614554669104064766638019047146217489263800839484556162306750436079724572134944348075774938537917481733172754137576106344926131860363188618685969525061170903997015906481351618133277831877331226799257191671876827656584678477504377291055888806293393980028082468355019913770860257120140038693259588163526496048504152489935740723902381856433155224377601237136819688977577809305541085291991912961541207155041360041634176783957598951796088184101907767048429583675330636973310279044246511527448621479274779973783353697182840633687192650737174990003353324151973536619149068641982709927531771293267256726512707564803766681697242017043330683229587055493020193623344571069255876670811099234131786998491217009167970635023603128826002905046266159309286369469212685710842879428797911404194591202142185781553618791008279876178470028787916180258370107367485618126810588089546684634282062984920980209147237939399208915718352475049751489373908100707910386666065913520006741985364349301510109682512167563686661967890252284170862505222220615006212472707245764036113731042965360779199741111686233198854261170783312493728921493508785471598134843270833799385484229744769775977893216984659834885941457038565772817971082218195024908474479087519938757485724485699279304804162719621331741898276154475106771222563886940160073657129098894816792299360026902287934125590839186670111050641857878727314123430455671170004838164907316071382172308640341801276457278993031955789595348466839515322341633303509716793144624284075186741228051563540955345674742415230727323039097749536366829906550887855879528552389274536743522602471609759458543300839819432547936370643627314319542372097906023688617017688531180664076786460796700495377766713829595572894462109860992317587595649345806826632511348698841380366350439298995567182754542101777225195574420077335780298178223133976654354371686918006472370681537709628571965889805698067248337475890780544970480936112564936000596017981658659277105883771367373313850429736112077980136078037961324281935016503720997974704525646409287702649309620622077731514267769598222148737353742466179891444142649837719270083866927252736550080144099683174185597951786685323517031158020844484663233930612592817340190153191129652553576306914699742487772505310502088501894426251015415653573464617389224330578384964727288995911808206384247088580626821660146147952769924964733829371749303378796260425288178582511744709036818613436636467503517992708231953016554614315486623615285839991336342549637664772505997862651670252052170576506835011603328034728953935269883907865156746745220111649128459352008527676317319221682686939171474635118929753060312574195652507773333274445218565128979894796323991217796934523412563812314523373109381830763986526028826139061504464909914934327748971966182873693496210567107173429654850693105366795339951973687168961892533305673623898708644814647287454289538854543990946516977167677045364115807720310230669384326056964965507158443087189800691763158883903888780245072677963391092615783553024036457832325025388998179562070067628528669177332188458047464959943149689141737533951375102633705509106956965086902231076367053705400723119800692554896876807101231916261775280527362555497011035544658406179205655173699139233510483224793330654227207154159561728522672839277556383626209678574805093935031238597448859190139742928870605239873627405571477277588107607595478371586730608010065185591148775025631574828767126645999197054857689628516675628151086121243817260555701262614757265671736199074103216452644389486947922565100518649065354582951524569377111175110936866521777423758446479779810463045309801907802996839779513778458929505908673327386981215475106864329859494994823533088255892570176286965038410745420643842905871541410664328495206302382390293706925220179397834660140886119165455007653755937335046838077391822592847218684545990672131105513567516508744132449819580249833892178912917817017523747445327193364622183172625611601271542616036316539177573296821940846268761447886921759485355227957986109766014425030497118923029945023227854171099829177934259350642171945023508233836044907088257312807738126661211511464392236820772912537397897610183820187691789053944843324254108774375989026958989685808345869006071339568994248261996153617949522207824017128120201216280606893278320052619991061759953043553486794041497970802969891793629452472396767568449055722226616749757129802035883324630927522368979104127707914540975165859264987799679948087140337090514407630862343928367786206168681986356541330392119682965514830390778674764946040582482067551500905230708851778649711098194286183566211831300839832134594990291114624922777217022638059610780304668754713384641914054780821555842213352552060844532678597579070758055867228602774201728104966852978478404528524288553551242857058552924606745501909584215992715756452162538447974128214513780512313469801623513120041332551511481165949790555397559455398309760982776864003279458159146706021373252243754518504246154400607972186136356596375414388725666078999023826269093929662713993184683901870219308951296145943362599182941563378866766299426715386823068162611215537720313767051599393876507321211361758658471204163674019109885886464614582727863001304853805003418899250958926594601154578310037312268739739354716453715425419265863413611557793026140944124033151494482485804066860086589956204874005365224323089623164807763758586015085592166234626274123033011982885959355405167357610510347031010790399071373171147803835482871673196776349401972963377221462976439514253713217253176635083501041179588341138152499640129740862593563738954554780378497123002507299356373276666820098175317755688735284855526688539118674025872119679034972803722004682487652480430583282160440333477448315923340622376731121115751959114871832698219465994721392006913653609684160248595265007571464614976674474894996633918082991409881014156573499398171434503457907209443284367065362044105105389620584055476108522617075178579088274539083560118910172075830199524895468689271060461399480168222385971877270805243179602840064303402983234877594738149848261415573776985103574605496476185590680599894600399834297794425660256202387632171383888196073966824650613834550110542582023525261611412229521305085816287891464643504689525904682676087470264410178430771809107507088612739134149861209339869133480829432532921457480733252229476943815592324367465388366277486473523034081278869582939846879037746894620817460496364635697965227911965626348726935041736590518533946624092429919966333448508894657818342956314616188239820674001584204335417245341462643051233711444253261116359892155077291430073601078374121281940244049923002369124455034379003200392562731412512404602222224845433284750960637658508947375532032692247329510639510008815360085797933844028084715766167624969243308885198610112382704549766504681302766779951528803183639029197929214545254769473880455653280400353857097691409458600867402065575234579709305787338248642822735470728523775823971968346570946379368891057804154154656130909379943684196031393449198757352763353071735576687613025920188913880242275461984184591838057440109848377639015454539485415145611991757509266114998983933900930446507729673424056125197300021753760354980201347550415957290101290979252110150892844347775670696242637823122743920658070786937583416489081749608147550317986512462556629567315782703882357900956809901208855299229069727666607193918529983845120785477025420957100801986651828461070338788860566116221454634370105743629666079947342811546131338179043824653040842265455910135186431718815984089910589260380666025900178355406539431051077433631300623850442981781322153176044572005877111583286306108031862184060268897043714320008891862130526055670328445020758138954546741853924195895479404033671650412661675138131906811810655571719482612212675729756139988884209449408653049890413691160899893426621688790942728237450699690326844288256132913126981110677904082805646132076047993269313772558853254585706577073003155608261578260022999946990679464582923545198151013856697281346746503754900034913964537107923750260595253009466741420194356693345831886010043263312150835889672679512992495407281034999261380469253917417681419736245507688174431991348348313943907193079251622257544655145373556101960409630847855557739247807408176316808458933909164523884153409699926532702225527011682440836567027137205723952522789544211452534957305115300446442762364107515747451762135297426953219843202979542084084844792329086763201009653396193565756096744589866380524830591337906394883831845471345369584211917997484406677619897161487927397214350643695455186106785313348483604358559004034624128635026513124083373829825948728975602980599006262243323130405790859617796819633245985111860441580715755240576518129869540729818199692617444197610263076618508917295645515040024421008092182236022878941958600353524384259741872533375406143945189954865934592186701527448848122538340277946204387580569356318015956123369300634884269754657594955745471098830443783889405417352428253765585734405017210145508659319338551530938833231809804244086183174669298200561349595222481253908265207003252196410118658649114547372412750244900632925221825095111418141054489736980330214066288658411950871137789398826512592754441132349585258335815755641558539603430591630343306727892187512428537843882428029768820778270202724383053701158586792602417520408681127827519978708568032519478160786264743583578039179419208789784063360670654325788596501534452594613408156588956738309592397777167726931267911058416729011871798638488220902190239990622094423992399404076380156353024144408784858166131664367305494837926034503848821780582017341507967237504852143015782797235142969103915327636239404335539798392202717488592631097611792096940618169377295857200900189044889344383659584149690633607938782563275116762435179537038247880362939541096553498326141188503148538614125941745558234571766637724271600467912843704638668969209101825695254745727316984960351596498556340813151038448074090394576827363460768474370172268306160021274336141685185466868480825337638182058792162840649440479855135747710913864480098352134424674084025964359899443144959234636610495820010739862914083986837621622974719523114244007712319614763445839575559347177804869257910667684612915054164821388112769086151205202203853591049961518294430255478235696680642140071141189777693527783183305392819399731014395900450716952405013213163856407201154025033239011902884634391079743045256261234524955517556944024179466154459345692622528591215621810694689737947130146803577898886584966305257178888684266943616048958012244956346700231762148825201916370466644872216761549673743113700547650757749983633876085037968067655352285735826434361544313791206434009594514755718215203654556856539586375263902740013782550638269281383047967523407749744793107613983485927999416697243435001366194653974915757778919416508161476292142564802124570584934852141264689473717055503764875824835983056653539679710521977268096367004074297053177950133631292544763574824001456791262961306691071090514093335143130109076547200293387578217301189856835614010170172098442841534891054691688733681141318656946508452989413969555292215418902238610068930855921647823339503671814665644074057932435161012581696982061999469026309052789907987322351217070753794609896332144226974943255238365619420014977178416247223111788381862297210168428966112200018411333494380871130071525917050919061158212007210435635619567132305894295053671269824739729339814803159104177524566736164489871711260229565852244494353785771071559237863707588675782368980101577147868288438253825541833868243904803814119317687336754104093450382219458861500065375722596857149888851076221098257823600549097077727329744337741155653003008970755649236495178531881860392302173840080271448681017443822995400128679271634016334474531412208394798081579623377686301904186827532197342633340601130127489742315746332161078724151319149323509360009245399957696595027350249230718104285223413822910607051572069700488928758663967020117311649792570685847523393918690427575437267658440787103032181105941320477498887961611900413346941758384564924413182050213610326809478197876186978485757694573368944459860772131674225524738201488787560485272722937868863624053551580741231853914784693166813569802199519963426145798715791281100812582457516221005870608141719828397357866283956158750119652126749764514588479752250250228816346013270594827713901083080583140786711631990046204470601171720477009181977443919608479596277050783360105075143216617511930582609399130635383679920174315996974574541939589574154671028509743473821733599776371133144550020978825402178011545613700200287465002101238690938402893375249115970036146642127255645248191292453543331814798634436037378788667141485903714743924489800863376919121809457556707309142559992540388626720767443221918911358973920196900293263704634016080382791757290054327881869531628930302480447844212142938283022321145296967898240503607122308709987242320279944985897687011339396638159782966197774592663903066192917729123151332552014020664857711284632427202080751049059108461907279132134523736726934339643863930129217136410340044811539583140091386863271130054082606462272047425357210496296851067612395537676582224123752901870783425789489924409060557955627976917094258931596702286395422663346488365118875542733156458172329255515607770614471501920854152127182267571587107817277662593799825308985136269694957024009476416280751064262643658499084828970687438759622674306648967867767981227688713758138329488582565614387497731832154910082875185924691161791725327488299609420186455194414839435433124060196664712742025752691405463060740197096116271092810832096396389271154868245970638092404783886430525749035873688941149668756948025671182096276018717035591172163664901899272035231388217017748519421411305091415161137979833661453289370701982385914668047656201092738009603160192303575620974762934323510576502474164096494511283008363884074563844752562578950760739873483444885161815657775002260742459066562667992508723453557280025928751756255119173767228582479321833905645172492219860399848936018593101820962086110307121025362953520039144778807637157995550914733263570368216454315737056170959342758975648983834322665108695931175534991810953793209083494511326867059511265589970983704107795524001511111047328115985465083679944933215692409469135206513167268643541005990090466251674249772868908923392175002465823682040910737862128341472654700193160973404792049579579755416550929662476371125782681777786604743885917005153664166938329354198112399663329389719389012332044555636648857433429401675196801452267858389170792076887295584036248791229301497628492521901809453378856439738897762894783333987872401566403889165666476380310952520248264756685766856147233598324652556911425937158738696342130829053946376647596552964897175165257076930267044461334661907910410297212321032574569897384590977308904339551099409503277868046006129889266919935041397030899287502695808179943969403388016576296953841039825565280299369259793732550990972094837586394276964144725613609987260668521040628693583170415141939682286233723690803805470310164075300317450793697878237314468388053118941076101933929114709424082439703742748943687334134429832472350562665706172666565677824195726047551851972642253511038856200347445234615966463631655011103328443815598648464369985401012273892262451301627631276147347418775313192233586088839074473392456794945695353526184049706074028615070610390222739478521023409669205952105337183956034347492841684217663154711007222765963290174273691747601241806561491139890604061001770922664319484928384075534344133398917599853379350186224487250231090447288074173181692481921017723223182133839106233386689365046934518781908394574543285470422504400682624787656668663346501741287282321896418614900394273671243582250902210758651332179179040887176750604535618981535854736064224151763508557865874178590596198886735836300208159030051300316428803875548989359043098920172083701245600098958201388462746602886303359405353354636006215308450802146336718889059240142998067291073422508254507713515048909707269706400332244321892592673850413285465913960898723863435710013577126166775318245173521987442094419301995130330689912397254637560912004894337570398560455131527941698279145714304273209392059017168341637036847329243111822357419319417877347391745692126233804876271353246562707970464258803851979051104688604440498780499778139267136571989924082017070475344083997132384007174342031430720049735110168276196522044288752952103626352749809317045008404923143268412045700036127770932062637315638807883830066884699855913614379477988996495808659849315928790790314405202360314168441191391094216384664029221387115188301628286688983001432189092465489044462259895613184445265605913994405074522352923580971961858051362749967426398796833406020252708417978872963563853953702693144632948698045057252919270779486941730769291674765155362162430822294953165134055890224468768875481732371839392075526293305316191091790990655544140013429375071226469036625876638460080857787710491684379537932265981712007361522393525495804095243889392486681504633341950357983072629931172900200272188761248452692863992509137303866101659928537835225302022036055816342735681983905915193281924416808815757514328780433120231360700061852937707947095059998734050849651679789134464036446896763557284816006949914639962812808297658898788025352927597904008114619286848754359028215559817604293148199275169195970043040086621616908533529964816445198384423507752846534388474918962176549719563526928649584215103538789866832286171041464007768826895374995977199181300052460636176771830994669178787232469501453068919669947889449927503383955520489804749161713793714427656017677254855018858843940900328348967771901033253540911582928821084311449101875710345838089643336482634806711953244704529409169245900857285112458902848025805580154377654062155713567129529288768272713764556262881540642765158774140598276750290473900791041231616477192354432231571009998268266256427987961647183878828586437987348075035575117110353084207026734936549534274150111776493243034435529337006584342608170747805337799121979589446471892833241375630712354015318098715414418400637220370124678061018877015558765963692332539917215566481082265940535714486315964913547910991379887009677820303798425870677652062379877847511540566478958091526561307096398343103361322888754609796944025129044543203889235411261980802802375354960709304406237058293074275205605017244198799521232241140522145551188289860219557843500947601291277224123882749515097787754378594364179427771340550688259373379732017212769588580046035032484480443541052253691016015114333429473828762223387856250705965625274253421162884782521884913908767031830573812873650082573300929631587487783715313786652959889393796500143970685701754819408597421566169041578117759519245944248861051991490650870277645296928804262395568019268117379495866662374062979579268889139255261956424206997151773829715391122748458003962952924277807975978946530452741282642075849880334797067073823490156514705392016486598806238524592619538817215762364158916820193708279147583092474130098370996331214425676669220393539838748478153894835021989440956356039184572236015172093037228182418828083410111607460534842992646254642365615799584024177344714694266163140192800080700419846439548000580830911789944998115683945732475645072153342775137623616868752102243939652917319057492750324266527689146772706835828824158955418028294996480082133532557969756673524182590298670532576059903149713481731940067719084186149307099646213476287042470946927225898190699594696054534730774487019862690732143034077845074331268467280664390834177381683776867520947842192936049687723584370063302548371270720360209161902538312296093820178405050612436919301148523368479409473006930759739356957820017416903303264076373443868413180111491054088486377881547867690136910351812899351249897277132477838183403758244471654863803931121810089384173438818881713625050902716900034882862596884637134115579625636053463705533202429382392445983843035281842896676144700053875578479430511346405237550887828459737152344051964457906890000599615009874964736289485322345626214812079236592004182867923016810165341305131001235100440775396068010782544516225074613346115421983687830847640232620750171655111546233658341606193129029466975629199812829952771811620634401762458863654007335536385641254819620974376662880043279884305592967183947174428087664359595977672911417459321756630827535139153181245827504161438072600931123487261070345645818812682969757782020833686645874436207294371001299634851620506035219337584761752132848177204096119190381097547175601680024371561215322989537026728655793083040696710139055850953458570019188529912506982000732920778055066354371857652237857796423375216592000505881294714373941268013621290999846733664792394006245750678749741290425432821932231155601319740842319938443420150101728717591883522351214845758853259635295923603159331409095413816239114310529546003527968001344664408480750026363628085172341255742811245172312301851310798926889125805669262087369386820529420782970792942179381801267098280413891621143697401510076318510489185646538154030515178702769178080265272731186956341160927975592129443985458565188018327815770300271717883493909592112347231815986918193804907520850063913312815130096437299570634422510318406630865424042135396873778557876590300826449409394820438700892796234622093710863277225949975114300075610389063964805703880625068341669853857508768542901306533885683868141776584538888644630230028188604218912250006194757451717569670744867534927114414112914931504199306965618891416124541797270960093287097563570809813929544180047570694866277238341378969679486827150328589565718423045228871605716998609940366364556378688357160264412741977474407465679581735246455515067393265436831660788112973926434466704345464935147606009677198387791836325832965963334198306266627659983742231381931743472138791742403720846262119819857376931748196377684790896431772427708981288290710318281384912109951064151952815683751809158987589522700126385292086953991063740284942361747423428326934596177300083680303512531792845599983926393481548161621734709783932077833814455583855291877194112651044724256300701969084573316766189084066379022126057348945754088402907508792924385091003424761230455267769755435362285956388810175463933726474983224606615892989123787622582883687189789534917481063311794855233284566139588579058693849734504352319957501662223338401172171138433912282340126617108714583093017994275155747394279873082141351777794325308575294311260204720149900931495699377368465226514121720558923015503850075709483691582665227566433094018778670385018773381521942464307467298828883537014643313806830170474150903760796893055097651771004154483974568636709753612100714753968239355191906054535918308959211735003488207813252507953993938943032034558003165010225447098296416222825266849053391057464405195491517759750489227091324086182866888370349561229089671622138221033515409903863171145629981542363049391086167554500306772725162972078475929566538721685461251371251692994956028601030239986991254942549127687421184562301155385251967904863265540396872927805624075733091139590479930232502482337878248269491466411747664484476848117125184809535175477035554536676212276291664201188434201333633228375371390673127023659959586078574384248364732396967353031049224308571068997956920544590940831446302255133687488548261137169539153185732578467448626555339395446275544631534205113820932884914163467242098000586506482691681732885335093300930250866113361015070565959484825245260796129557091089572693677416225121569085572687191684992124431434213275825802014030356837395764312413107270707274736033154480848575512121043055845939399127156550886733066576872654742639137728781269619443181273645669726712243360892291213080661730567369399806280200159426642328067512405141451723607510068364279090638646300198633878949494346929511473200198467185298431926015946614760673024620626419374937592963692378217707074933687501315252650922303610265150568090338772273054662769165531720214994619724396725587482366232153352551469589273591559856709927736651948064889185970400924583511094034621754832571857462845257159246648561018678138507518503100508900459065884946195384835461537208466658989903349364968361325862437500816867425786771558454436397648271147177304431693015337919697482849926459292237134789043243546115797906791265930772620920507339364028869303248619372774048305370616094432077745439212184111622795268994330181261940662329811416506481706770208957417410073562594524429019086007700993665103846585228909239060844840497886046138525611977028720266945749750289808057715044104381279022936384354451382935781363559618312450599534133520503442681652211231955413238320620664738170834946192555091024669523216135397862884907036683445061770942122413862594622029664816562498003127317664724297430924601381589372940784605359366094922804679652992184743540541610253203764096979004727552878653590221438913621854282561742934489897751312592065737116703206853925840019370010470458633614324808246724416083955232364628923896566267947233696835761942094350408069543616104621534130863960768143635409899402782678857230609111718719200812120667170652695013310481211885986173392603255606606817573713618892349733343562247683370961747145632350861741311890557997287613385350291532622797270240141085868653382396569921456280130772571668095574295054354092986834029900624803262119108307280399414549762791137815664717818639496775498924702125887581197141242455093371469704259400836682613741380014659044031126663671760362875114601970027939241989384085832263709439869285758002665178565975300019750384088452438433166524750189905875681654768102636617998651331147494356804171145291716905571353813474811398481746580519913057564391272796877663071721979711212754398071768297566949686557480110725486003834494082603175724125033016812886230748965395768548971714512084748371827162267170490133848505084824586418447994260796504455082043603797385225547109246865943041508851090754268167058097338766350100145343361024379473663612385261927882530689041249305211308955634206486145388331468404263780009355738525036293096266417525032913974885655865296020988035990160991158287983676221818552986025508866396421612150591109446264355336593239001111045054672319730136789118184654287185418400983298923369581313571788156836030992584869188502080773506887966479045825765026895075076377551300758267085900509958943723457240680192926414300473558190514135910358345327663742351004682127757003595303091715602245633573407225731674817608421677779339538559413622594037370279475310569134002639458451083935297138773671582556277845041075760878510070717274498105414687743307568965933214671372255787629195254788169727298701030156868790696035365122469784848251164746481033655127220440811088688840142670035010696989346544547433409617631800822757515924022885594303250198150528461386508486107270729429672524553060746836965712174621597021426409783639477865895080786975059813926660270978483614204019995746518732205290645535096470779826066267551554821710774097772523913439557677987990224327323237513725276298775706657717207740529872090702485648936505104956441803489648358737950707988544131045334736176150169282813331890740811195914979499230742733464253503062368097836452090039227959780644995849305561534753280626160784980467414950507756391096115217298894808652845653957455712990485512231049249118144206125663158228986549769988162717544300193794212917014748155303105094544394875744617657562905358162678879644815438344806652817815038162801557758288172762491170648481109599381482509108691787362305309572458172030402740953675863737325433843032341240197404945766738174601020311510122578495264086120765775257101862316097621693787069077113430819612936512446444995876856485600948480010714741669810936397695778066358680958077811422302326068026772886071645639805915374891082138622987227367285290086283951603941980561018728777211432256788459054492548381419468649080071745537938903104714724569305432192600718607766711097833982352094781268852803593849128489169147098413237871837550222023523849450056474874931816517244057122864436259121913628624494345781701163281105826513345167824734486411776562581988295228147747713271064927899155687274219515619175301111733910168035161391180896939043089171753232022897860867467604764865543042240121357381610975904610497682721057997404642889901447269869841567872637367568012503631463290320491390984362369355447520468382036415148357247690323349898889129225187391488217187045012274143306851196139629532820212554590958839760326680325653012985895956486844992578123833277757925276749225398720149293905565236339797301127174854489795247993608929904938898216069673634025859539584161194760667907660541562694631058093020191635227316402873328197407944093146195447421467700511715316652023489309378484731789621743748208799530573829690789967826316394753922387845576043986750236205044604292560166184415507241266711630010573277554531712585861459401358876602392311595757191581820232195359359842105127925480600595777385549240593020547472178081751331662416660397716588235718924159746040590565267504006313458175609736150822010045217398665615499175577691096947847811287609916682182375154283233604175279090054890455573183927728483126177344982788377958360664132409706835204868383086024408751136471853497472467633489680088667049610217716417147797738565454733481603660474779335775217728170904388130891287897035362662911619707617293454454778083353345651362926599294718399948222366468931111419818943874586264874307676039593770096309197458341929026070602523890932911754250928292291950900298614825887001133477529136499804419408631902725166690568962066695804105779639225830424911961364420366610421056592528600445911844487629079677927028221483823812062982864985232781245636336254012273907634785955264861154550933344037923584370693482572940670207091586562501091987624341588794028738606485345023583542765723780592762756269387376146114494873183034572927432841994749533232000910900233519146631924249369361403946434380640421274255303861872639630328638643097201876110179828738721652461256512732153961801234813744297799127766723849571010036704670687197257649433755046455525119273032857375896111927198078092982302609156447589390166733056966014714177672990325773867564883959361157071234074219154049719947104203166895208239106241611388013049429058289196557921584110062068701929155418351845642311675541454554625615942927926649098746346178384884822748731196760601189907187242547083013781720437662106623216280310301384911354325365232662814073307748316684028312412707932319210537270382380526856264846191732489622763685633356116266538100205497292393952332324749667102523036962143711027099992081740079809133549483308778687425009933731204142330917343732511536828667189621713080866832279258075741199193860942770965067608136927415988924485304831648443081272783964107896936485873162291544802718733593317248486962788137605363840253109260379361296819172865972678080103651252213384122114427957045289149858852249399602182102376407299705624789335307949702483436032689305472220654421847721191192531861133210955159416991709602122239776987494804005895742110887580394354868147092567694403359560423606614846500487849816818815670277125343950225444822119906235265353192634806683790601196707197642553171601980737926432016986122591287515552810645912419921799919013010035671830972504408110354786968896422590119897635151572127620989727539498882899246481587847659603538075140073902726100442327907374661998594181341844189460135749594956539756295633152333169956224741367417350414425867219190099600839011394561321559570093711207702662556197960057137593376637901173865635736081048087080323248238526510707933504844741722579813962079387152918681130650322536521802308838610901314837082549829590528196454420332684769986539769004341575439039237362439601063941385296380067742854744154064981566879460033905146062099575385406592682756445972073612057849294416905400417653254080362531294162100065566013809935405933576592183297630045179222320238873277711860193575148545697148005302784838096833393839555685761229664920775096132028189480388680980580262209171711833869360756404792019967250734460408018653022201850189353444394952519965902911755587961158652887880000167811944189095056251353828101706557866275589141471218105499335525205738666609512877580931783543215689831339096185644783103243033747870172157200853556063888688254540777690363816100411341440132859580751062633087550272829503592410937757365242868550480449931335406211041226837405718816350443177519354474526957559394054215311810739519499378859457503121486195152868941560387466795726941413302668233418220657652268427487665885801577976762226975054427200682218932070051836302111538925002325510156316689221696138068084959629679768320877339973475328142600489484211609669357617042284739368346562647339726529008999152816551351869958096259386401484117023899768327108806852771477422285114105171886952546470249640402667185672401715480678554409168529667340333982362778727961508294972217967482467546184837568813101271100310216896743478537110579125174547145455002402745537421195410224642798047865867032939152990402129811319909283076251222239553659523665228491236660560030089751141865883463114229879807525281577577651978211904777090476007509568111537784249745293371227510537849942940094217384952805366939427778081270112958172819005254281174689523459650863467260295536952611174077583074516610682805271423739851755486321370438545377051832849196771311290930640907978796319651355526597784675064829308902298006738632012568530146444524094807692705833302012545079543053869040583450627647746045170128709876541811304769859536046826175032769723255022981690484786480762891599129730556167589055151521007910742931764326581389276439721790314172982714876341364266729132015540044504264795194500623431554526195754081031969640186761345024047729500956746920796621350408870867180604666807087685161167658338209893460286762197916795332519384423742669944060014470425230836375850340649012111183671820609568295363251736170567197934796791783698053606690117270593616469417432965939375933562189190316323383518967627209233502857527467038245642933951182971517548008675368704474537114688528398142193778774471405683964630837233346945894490738923822247637881018224183336110188568985269166332527766333847921839373230236991031905345389082740021027423537615655539690146732959166351998552126498480683132391322528943498548252741117876607535669367879294885969010608566663810027676291429287646862069862715212382200030103735245093242651579304695615229464865721702493930271150375755617602959640415379229718962111714162718033861542238075529389065629974757598218885150364612364350542105523378565290737929284139959193704541002849340666841128594941617290867483185543691014741618770119728834879097596326332030681852378638383117458577779792194991915794165087679234555794393904803230411562599209511389626826600580472075037879088002718356707043059065203986403549122634907224430224172239279279309056286390582016856048137995248223622657937053267240267011588917516048833252264120666638995933693622086385499397541753416885430390985426284339991089484454607281942647241410384579565648083085241381174195633423007090803475690645326085076381286765639300365115978139851184307343028817874458571216996881506672860116772023408743747164058686137420272148255389766359901540296257195508479021086131144036843080994985238670930921223606855616788626034041231801708391012295234911289720189827950525269072717580918081266870842286278347793757188563253747727215855756625428537728420226197287761986398744697833379141336177347283141314939714312958993518753065452275179839499260837294062698385533300495153937051054980327950359456109017647831885939301917637765881118519912082822405585579503429660601258773824213417232256343123693262273106354947722459856693905498407571908650011270330879060593847493363678682811715587777067216967955022258358750788850342957901680802570003803149306488301035011777770648875885429242708202801046950731677697196745126877919342044431181524886719812978173390213214454075435572044380917020951227144994832130528262329056381139693912157254821527009074050620033707157670107445111604486151615583401166014056833759229513567301256512879800459489284523527269435005751667900917574282426878835901969704539781875741795617701302301858035551588602585298747174036183642970574946899780598856196203189039471394967321325235601430523936005673447885085737627304379184482153333811531345855069734361897137439205284948228804003491169220444045228459325964148256744323420698468221373131414748082093245974070738189668758730970789654104513071290811715725465177142616271563343101367488634900710088383440828702759185458433793096476345339735383196194644248368378231597946827154266439991705126692722596744440196102953944653415661771596451846945419091259793156859467268722976789725771781700771147154799122194873106924290536985788777218819429359156713907057679956428785642497114964088575183710269439043733555936606420272737491562247121662717497854313508397128431530455717323447174792552893008657268775008073703208129597865421714729682586993070288835120715764191148868614620693305583051999090258027191263970847125889344661560073132650019121044336097363250240953911430019077433699048570142347189209298065462003988291771525562374471217449087228130075174119427109243840654902606847112781472860822421159012666807520502903108760629133275237688384848493673159273277883529803987532706252936492796033409149069402481577091623301014522992602911323901352861358794210174472539299203673786263708465806971782683310048998632870634381016747442615860235008985010680854610768172676838335731057894073954525961171280051043187463148758170313506057580455709283818617208088284139943705460611915180471606828269033937799020435162719807881007322139369141907851816210192890024324329731759631835484199268512109836291544207780794696015688393282672168508013966135357279216969573888613581455591478991807543957514646918337700683748047079676131887548586370873023840900991925243708128538160095894307814151206208482992990035923067952573963425637737723533415646090493303935010023970633414010288016632613998576818897131595318706958900674996073680121894375356508196016161269244777691271207138617954719154109516708628973550071135761953595212174874422320318139877491627275101287224832376962036902198017749237765311976980414716338158217252109654583230165412277629456366561226894909479255941970277963217275179983360500888534054962577113570086689224417330339873930130610814678407429577424646250753693976916411152457275342225122374587652097028186098999198011638830497240104151703081687972788332128886834956315728010260354184765102810164056243948297260604469562643798660827858209421863573291931377073998811274031616854603959148445210971969946329921887247993695965932175697958042498594510641533739090023339985477358966026658423807893084360106952673861934903013098384153156529875712037016856230892599765236818925850955631123407111254697354074394785537532707958803973662932400952220928560701997159571847079230684204240867498819421136350446841791053029644887769609370326700700199121678914716450591511041553158845777857974446193346497911267106826970479015841396189558601132095270032094649880041634342073213180962445483769107209507524311677518892638167541023070272643242266951550157588135418158535480309428649438499938483014865101186271474447347107442266139064831706883757651240906555342297820128567743231730692827080352613306669397854267270213930962816265882598270512314517885848130755676690221037009608416788320304047604735134251073479318904493918199604673813249555756142044125043735450474178174572552312796797497699014710252633654406018295227217744064924168542053734557788338420381730665269615431334012724258820763188088081107260600465342300618635316662957826956496276565383272802395121179328720688183327576826744823409234709776527603185740623825106277380292982255093916194746989155649781932301039392521925702202525734984819770918521487229791526499431713076132535188573653279918825072736411058294696504002240525117864736903615920798676072833953605890578629071385466331769644608328855680609885105914647114769624296229146924525623876107750344129019724695159318980842823313227923149728539250209139873135020316831600684381321142586918898611011672612578983919595874410979051578238627091314902578251657190167064844584497204705236693751969005830307712823750883812159479487439966183196737316876194436865512802276021158816883889385724895474469548453550161979500116118357509698526294997227509587608544381104446244854122633901924464523607919621171056457345453515221707416472968855750973024174832037989619306140548079681749343073218947853736412296188974489462930790440392470244745298483505325128860300134430197973782102632859393615991080531053388550925675918599281976950892585150054697583776714150393351308529635068572973872490421464793286889296370283236408642861914709560960520603869318981553707552070372363462179653097012350378959727002195771963284395158319299168238885311963884813852895269972356776390790556348764220502651353529295481235791841525449789877566262822392634449196529868213416363209235296734814675844162101856054046465634189745911784901285190585683228438445302824025889576588202754253751788300687001828160213844670346862427604914401869092186210656772466736309383745591305978240396749497497839824446916953657607719873586081309803093589423272745956979585300118184939983604748985234041331207934017006456546409723722470619002040967648537499811919390071396653507308227331788059504189730937973590020449317881903278134214243257850318926122861919241110599465688490617207041747196886539475322742316544843847326034508527409011273860755397675439219682103717903737075306990242879440531875528363419912895181447619977507299944658574267930391641945028333198773682916932211098948120159914598398633943777100644143747268622560389178673471449246758761732480347889998540114740946569039741719291886458475537237584241387785371498029215956986661214975635623183359822610766233989722659871284488911708385151002273642589546705549810583131821237374278101901772518440417418970359665033424885485337414166209994457508651084005301233579716672905738194745804631118946525088858540966821135798986949710804091526876279135870706044939642022035235107378433192666620904326028726228654450268253485492438589269291482551230840000016328992680496819076739998883988607163706584696109774772732403729807886710557429682437848700911694619536268856316707635768010430723979233046385643727363014354202332743937898197420829518876055567144417410413381225910550030115723419364399256724469662365520295858687735098138768524678352864939187776750455575541726608746108434596521639064179915983536041766000549986406722721102773742356300618340855137695234718193154329422491695695518136907250031253957038963760317359296926826664349204356252891348502606483114929653925216903359983273026645356732596196087191327983962204520599921231097306353685957851647604564113177866173722123461453590459983240335003740494274635680335266275300538057850191791388564519166643375361813414726026849933362239053730836203533460642540933723674047470356865139759792484541447435657331003831710483317978967724726351454123560824276266848572430478628317013015462749476619829825056238536600814941523885352891840453024078422751886422834009386461812894950538523813076981941627179194065713908854962388924195144641845428298627908103522362193205411710457977922529100689899152842129224889241608828419467820990654193497428685456652039600426463619081494124180975662682930755732101510271576849323874805201692638033521804669069221154452063979237196826871185011168189211185339652090045476021791997355943166675508041557070766598810752864740997491169561338325668765874114507447346201489968841930690678300934540863903536111651616179931141150509851079892135939877448977133108192552639330562376757166152576363688267832834627478047005399826751452967988489022928981911687458253624290870461171634315974640390473071414778460961942710605784623909728824806614729693961947248121512898269177873463098603722946117139978592071853310264482986810738591497648478800359071973108736970719833228302898288758512489582464981045604278506095097950940498300349051878969898936448503094936696208912024397499151069380700804493137825419966727394658599708011155560026738086005245286994934297821826363907871879297750909489318374437712664951335027906935201380398940393428140754877278652580022737658578901430252360036826924756352263307458672781215120288131022034950526145810568298071664272845219021236362027049908024394882605500295367177605031875875951732309582916088803244811603620823970224049407882210256738277264461611105606073353226144753718097915980450379979209683863532637374783777018709196510780376588617521856718257189350959397421123333752996863568873054738905269838935649189317655891635049807843066434049241265165541810907827419627323641340405756220024372801383973072766599815073845174699574092228537341275132445018792789491024354442679263055130221491034785125838312428857718287404797961422020613340823671050417943455008085368034169791303191150495275988371145637552153979170366594193605916689033747798978185096563925031140779022874807412732064281054174553034938032712674583396019879972014913362155924279006132309041229426852596021335974301147542483568357541106546747362205625316102449534228608876120978245188414001622458325519104461388636182245310593414581003663253658060673075444860023589514278365623171931447580446120965104279350283096777149140122677712272179631456669026850229760578340691838347065248811747652926694009691195547082095706528793294316172530815816110364388145098938392398675848426213103671479467467815544056321182646071966026810314105554224114595898848128120562071372983366644920268504533045132962545073166733866797685918679347002885258942943738655957354236947614649294182186467377655721515730646399455925349074794721760228845292240447052033038848745291476357618917332148497811221858524048537905709623675053263309199916948248195245479465681799958464873094851366728016732749869868341841701424621491656000825767079252787678839107026233956945952468595069182900983687537320447138427662439785878925341303389273926915544141871335807055011705914442083278141165449016193820182093503843464856466815413722816149494106466466145641115908222935281477192889659265009881090926650314241985683342193623535072170638495518708843394511821828332494659023450610748651341066365793913888522432635089911455889394028498723958615263502838766123883709202152925322381339955881713139490728259240518593941741290602494355271029031950011378461688617161981990904963725508418167914619344689326731883911883167289193744452044023226999253884045350124782880192291923530347913898038635965935739820727914977459225931245784219350823228242786242100862595010754906712243954648836480122023803569250027163436865627571792737329970599677918958632821611674729955437451675569852406934989948973040955179454913932579906181005085953073665874868162964951402430300994517687900086421901634849556133590146644490049984708201301961618484822879201139746993786148476064679944420713671515664350825146573801103788894633530436987394394464156357640950272064385667132841619869198414439615196702226033443004895195100915430123178732004248286210241928380328878953147584022290740571852001007930406283678195407938084483283308100236920205680151678910523690757471809479581667728290335790114327546405302910569166728592500143125483559559990396737677873960596125353013801090408248188154471112114957670916388963372224702021743487473569824429863055051647829251384202144457174431282084185062553476720349426777244968799530440585951159158356430669728299689119667775358670115429019583175297738128608732061213849464300130903685778959226758054779158770444448537292343203153917996842095689157933843250510218151705449430576588510476952374667369017024668175039873866312812091834593166392178344442816643935913406129999136935410043131259006205865037078124683048525470467942130390590312880242877301043234440742003125366123686506345855356069416022659549710852542360107708127682809092860747247027781369769048843142027520157110234378142319645679625354773779992515932100298399231992250436695662137488287350356536980069868518011473832136023597619309196576594551307671277794044339629381453586741476914274982970495929075220095574798281827055221414682216056497149097535505112413678239135190559476871549262322888689399622939959992166019670696180359793200580557182107580239728798527871718656008308776662221830692657021473814247369423741398299742541991799935385675592480866982064115839663037930793071464202936951831429161486276124803898401194510123803955966468988376950705615140077539929998703451716510993759641659156600940349669286876837792804140085443386460777749894480708193463642002892832684060639226410038321570968618853469629141153738111039701314353154755541266742304772127286391326214069933191066061193339599536416573098925638557106293558324243253117137046220352703241586445558852865120824527664436463774550171227519157655231918425339460266274045119607503014260665953782643801161387922683015994076073014402422430672674775139419271526059588080296216965268682194089850194866509459624736605955567869084189258115617285380680296390766024655434267086608354206766946321421826818816703596455864313217876711315095176155521860955526074870548945814564918717698141928337268002275414410782475349067707960632939028843090104248113821414417619585239585117937479705104778834529293992473566478343400464169479686275316516154579159678772512673427802328663791453002553620387461404092976483506391773223900202533992423955986773693096405864169970295281501870001350264182192314326434272548696657376302522343038099572905458435735034898094677165964195095133726225063900387386334264351413234904093892777567942344755146839796908929202590029146403342904411155369599379690922489965886587782959917024048149075720859310624264151297476932540141586903682321216168712203321366063986503206964395791544828794743088023470705331694734681593459762386539891763896033786154580152071316787808289679245553065255214195993489538698600138044488371842513664383701780480634716812097501128444451621668782180986578209783848313092115455941564337645380876668364196097269356104166383546377603946931728826114607612136262150852994495542864328122399485676007268844396032485416502200421070868415001677967898808281293450642760235302571278539352543238827982806144748509188346373583264117488104160994820196051679155988049541728247161180888043992823985099717190039931580436605386055112270280894843013968903017644787787017208848887942992940311462469362798646592153637927896180875550359132092974684253687031117822304561012559211826169827048276391768015505756179267582052344428331333633425708131579033705134525399425668200099352812120031589588050070274114701535631893381732692933456051356086948191823550733799054261855009209792795993685745798700464208466669413931075495426730769097526690563399402365095218165525287086255071606024905209021804657699181687341572504108182204304989888843369689074250206463605978878745168765912543094598699118811342391090718298776259494574961180023403886588866611313780419309699337014631815134582492651363362988120311650911717506787152241894722719348435954915326417216558266878116879896788040787996090595607754705505666826417055713104426703406414775645376640240528338526921914665049160365035621569584509308530381214279042007827637614676785678801404898365855176892270793169040999387383930101291385141529226350100067267872202626759214203463461471550702255552506580943669177139674094702552836211626710456522741837575258272365725780388573760517385673468294293800978977849352645135156186857237418370239164891126287651596072694832489015714326174535902210249838262728403245407544907344424939507497515613523699854858931173511465607860836803667071206638974320669053877255360174796385434785323198934657713320337040633892904220400259032699020617952465940812039120864852383324889181328215806207912440271581723272980735098398325093400312742851536966177151692149418901920328554531557860315099440111669984425703409707459801424088840760916631147514627496009526326198402662525696066707211525006034299420839621834972487052202654273517993798200234030793331636707131904941836185955154747092703958724528010374975872710338974337169126294410016146688266461802011260180729542121498946978281150884253555154401065266940855155948393278292081179100385006760761951034346652136797930244534313402183402072375334601398058417325721318922061974188899397867590242816856298335503876386831785088456409338482421381246579125071349528482159439472658282950621330153049720721158190626527616455124430414456987008485937552950853690494306101777251394348910970399437779782577327797733276107544041357175875923983982178991898941670944054140259340967488190952183035052852740693445743655024605665750752901826255475136328964285158238641207262801720164967259857587072102887682551565616975952933215411080510954200307638892667300845649914656184640403558737102635600555841333451213768422417893933614486284071304650066748770863904540181781145476980555947452728506708980237307614802111267144584295409611344796516536483351287652747970405392443096123808694552469361289083846202866874269795467666820126996617169474014952415022956206224927269666114340049873425047557766855928539959681323220072307688676048740567474090886809335822600307256770590714984661404611988876010257313117655590702399106990167314707914704857710445608889320197621164462097039284479034156546653128550427258676458200879401514216576765665467924079421099144441008121951558943347744207341189872311439366066759555402895675635001369558390044746363153741253331447590802250538159479925265891985442069873639696829501727168272434565637720773739214549864290017006945596650591463451821054774444595698543392519182284692761716151705836915557658410838084587615997116001100506022741128531179265455180009791140292309414960412266313911408538120146171661922716727618909241321607091299030629875855594114311544867858637063440673023853645941361726917538895370456322851475266902029772943646201163888984607202636714335816560791456164871978289262348321664222081361074218306583629185853601012707724099357563123428839002629258116604579504518418720590256007174241083824511824330678904222722282207858360528949371316134088719431076506021335039215189573183903987703900166022892608159089889388711684415954519611858055384414649577729214923311522210829982572105471350190058304589219716166039174144325981016659015391793241875556532547358561313288932671910617906496596848504591995759062366724276605793779463144320837726528870602029347871589405251239116762559269547950924032250744347548316979844289834997023543513668075173660166052145457357507094345625845288206231399576324807141103484738884162652955944806465613638255877987596151041905428379675798690504762972736154823007969705474581679271188938592741117023991629458730919326223815832462208450483372667530279528056079801769314240766569019679692610594292220919360669860439766263912252519327179598451022028583158687095785753648840840079536269706159103248524142533294287623788492685623682237553606640309649955895941614621185613296364419275459501259249668574905620935270505577747162914636562347728721306963095571922862230434524215259832928472399350593832088844771024475383920500195830173441248792136742650560586759428730497788254866397864546589211817049551632157606529953355883240000658918086516553667254517094374785582152808593566591292703884977351532280013925379247715420325358454620195656118300985910680004802976685527189667852380217673783578565478557464446463235233495969860407845368608395636792988359757683011054311196816029965615877474704051990009534275662247880983406030794521591595670443263646694069744018319865915277339944815802839998984288687892644043687998602636601899294571297269618315615817500681444432916403312955134014827423232995988564036553015022124340325940531770128305796469577357683686614913284264626300116992219437023778711282975166396086030047762580372242868420430120545674311397890416912033923133535309318014795264519774363086260687163064217285207118752660889711429244522684711007573281162220623576558862702387879168518623228049632916187583084266079127763939328194084751944510909430595172198027471051599734096350459246650461748055184132316399699162984991950553329566224473765861118838528288815656494765940862653164595301413909136286757438794385273562176625257893636984780239314582658240930229350529571502172200367195952957089763480329201277017634451262492184025964489074354641848606506431047000877154708017781650855565228387688184687566101565142426471589161555101794143532431487227282961422159653566092941827365615842975395937033229278393983982432042332124114343535521346497996957670355781898188409585049062316553203719915028915665343367302677092892003106823766628820453818170297683720369575107806174421771416251102035358801028169663697034550889343157137441296618495208297995758203929989963470368068851402610898046822027955023037927752128051457501716991684572051586438012933923051840661060944437562606218630553300779220591548191372758020614226429364148029794646046753190539280258879534275556092897448584155610792359867698139565023650497499833774938609340317725528856310252423393228511092338302497434837595545597953724550174737014566864940790278902048352214585888796748588651133181240918545654934871885384022386340896200553045256919163209292129354132113394832588127833898050979778796963795296424543429349828237914894760381713515496397067827475275249016524177471912048348538587378166625613728559930851049955354040974697051076290223028619515420849959264499471812301881824614254991012640860516834558601813809248180024670937588932601413836546573882471629577040145185481919617947852013818011457142888814394162297805492590573052673384713394158265970870366893611663567039814906271419911070766683469403646813318222701293797402384436483368430094874510236004463995909457696588163733159458671035486378127806975578835435522446808118264407744594322028638395313934696254926732317232595176869035490014368848561616370850927668090386342393867868457512745485078017964036773078588409186333773199216564405370152642590795376395262569153097926441718770139384099036706036847810204466219681370173565665918968287796819936424348090132763182534142859500992481636181749130222301295185446666564728503549894255522628314199135183464620798442373915531318575034969254090735013692288058374955571375860116169630361535628528128366687473788063633258302329894598287580860985829796825869472245516295730597032411885545138486786033686670845130007181051354288678715306121552280184383390480167872122819336646909463967622222817946177762914059398744111768454573573460648189839512726326830210843168775938840887144645033437057590764912349875425489565483578416588806122043527994307592697541129693390540711442538783574526722241772322797656624658777411674823668463896268509201372945651934338154426916424958416215721275572884914347097831125189619065289986732247689166103047433656816994227777740909525869496058158906313680109249712776215889364221404020332091881766767173955382268954420982852691818122093266732237644366667904573996029026557267314421497841824034263509308144137642077537633227901629755546957784133146544796244707208729162060980164372748154286328217223529786378576517659683626445251877077232530032532600553321789055972677874222905263419826618514981766091287121168874535130245308359703967541163045062180639123078092430631868172507425056206614086072020285614023553215979031152294511018883513275430731721081631403706102579582557587084646643609232423472870465571526987051563082026344545202962767656154396797633093970068371903646197868236539127221234375108970681170318691204627181561261049907010458974716479980550602174434173804360250912796773045245538150485496166006959631733247789544942443649058225234090011603529711815320704611340311615187226292934983445046056678287107992038460971860171607040839504434625023485988087955770650452344396615104395903327606319473130348414628881818130049035010138114112634731466527086517623544220781303966017916807370530793595100215237411910764454270670574442556872351139511600288558694231625912624178414609094466712967435424014352546184884198128396481407188302964568904202025581334022468131932264488074225079802713183898552290179535342400264544056999927573024151867904643334593173760102698508948991818179957680057019480459805054951559348146875767158784368067926467674976379237150717350444918538289288209193115301325279609197986835331945217069402717675860704133989430286129174579595424273824193520793804662056052905766159654324702796189435260880389560318158766979654217241772216266212571648419878101145783286986861718798130810646461412526808388864316302055224529545051581126771698656111638680935460070371396563738712833885828971599857535797664670340161301704613203514246639691306682585776223322980448560537836082724777498105561942012498380528937849383062099624486382174914116609329073725981293596218692696024040608043692501710900577344048423135724564726683994570836184422308951214385813565541668411758575365257367164948006397193406994841635511888944205871879810352966741738589125123261615609935149081395371739460930187022162434135588009349118574160637919281023630316205981084650088594676089036908135615559195252226587299004974215285312896800855982450622045813714386136874781658898174844668448893769098696488297052852900897715744156846424447114169146075215390338189396625649314790702827007772627313887664362417007625103108917992078307967968305079919064120161538605812451375313543421932679099537511390689425517044990636431378206760152414826130804350197930532595590979620496089012623270231141218743489860584042199128269378166147311023043027518587697902568277987201194215272063973057110368148693405926690772800824474128838880617191309134771717392388491274410105140230217539569299883066032273915016022879961076013199694607173117450764292625364087555641901933840629197919368011519791589090635181982949555831659881960355280003513604094146232181881371785193092577284251782818032643181460281669310020516828424567402725310628063876256821144174658196581973489144115392703019430001880243573287936020608190030973528060553553878846864995040724904576216197310418669899812080040193147694413884349449809855594100563217603908548728219570443129741197067699971411901206448603939027523817584411538207037271903654480880418916014183878123932724096433817388268975298885904883576636825344989092168947021331604624296483148122344282063556397497627280431421649660566284136928638253400423738006503067557045114205263184096908287252643286629325782102269004067025171441028735556844054969477169988023449093104341886464067907416033045599292932273456866904385118063854129638381333504845581320564031984840947233269019416082609261879432492291038908415592564176588520178764422021480376806181278096241852022393031448274747046077309055459850913337662904249645623418770104889621342639582268508433591750972279068670158826383378479078549776012007585864243377632396919566982199260051038800248101541487489618007642401774926517965331833565539727940987085236652808440340427744516750553229460676659789298976018182636879997373232987143570002578718551847494844681199601595125626425247716469911095907655440441758630279461915831772291383282038948156716981358744580536064841843390092653409536578897560756659621748042492238007734711925118561873731543871354778555657442810520033973454436436856137883354231966835451762521262522729226148894521855998967765187884823962475907608146965064476136221524920837575838988902840709246507607029680756001994778165082806233015317497310709201976946567453021057793185951111144544388127500833203717786268841914316128042028674071182497359379468036766982728204008892116304641411292402303595853234074342895673613803371604732769270074476301023589590282071947194276543942117179116081490842671570697646104859391746568274377390846593292829133024380480927977233387400229818232133002431873402756290926257988785963908988036216116187206304136168460747262382581622038664352116535480978931336667144777401894436788521049714896153060141464871773923356926018295869218949318804937284968959082032691996825672730737569162556601997132803515518660534605484152066721449724207273575941799638850353585250167497127189785567059218314433881738676789619727789610666642867815233030662019089131136708039473450012068197011192079459898413308622051581777952974474532745066093396658977360103587641812227380014276021728171884886407231334978087213302278803566648734313417299589821321941287888488397875558025643268435986654466239889684737263982532968658982375137407885347578148614782440493518249853092372388288242361073806321954880876604931342490277549966474701674964254953536717207942684907256733586045478826971581661783856529931500575979254867047392956270399084998921621036882616369162193991771005447198150994855066637950128710880191627631939623730950738315842379095472194758684356224470668055546317100835730137907350333776334913214463188890996333415949639505491718359169460254948586915526812238617377217847792572160972474192236997161634293527404224694859551820998889440249637849161622334123638247233032186319710328979373342831580455602194468139159764124777709074441900882228694609083953276317383867027638581570589857702031922845871983389124088502559491181828898726591138555759345618861902911206446198306384891311569863684230852637834436429303673601696599316487443570761149336222055317623533200108362162900069888388637722894752503449568883588671204179329963963972867568902019055191610840527902698239169902263257685182391745555759107184485700079427260443191071412050175316336225520442090643275804151469458309451517412500272968138133827171228358545579766637017666247090171849525206455019002289933381559822989740825497227018277576051737088159237528614022093075293903592693120110261023794639947915667868228490149643958265302928772366251093218328720296519748072346532517449985497766545903887215977215729506135843657977372440975715459373428062399752392541014468088530520524692110543782878543481108051110449117530568741632906308236665630913249371844732588244901338029104654084137987711840468045873376959750525077701965302845288610487997635751955080919756660568371976677069761040931436942822356671192878313037108089946107219906871552809950192096981885691581029859115637505310536234501756911807675531752373932646137454149893047864742501195946539566866811901301819596958566473163178058816344648304853821285424908757414325102592126255054708288323350615225762392861416743019549278988996706778016912459125593891006493197017536225501094227389523201469683554643912520653698828465365093780771836137868974442299276615593394464426251428422445600905577396519027440396573520644410213835394835140236574918227676080533723994097854055831306184737652623394916396064523229176906510662760562603861912320220101868248277268341537648936143329537657610588389172075908358513539617765190386458819707981069436126420141803355102531521193073308809311737161859858823723619848834056869119065919537630056002400989100704161998808446889290063335229083331180444564478005026234966204083777651610830409217133829512880299999285285686956845553767801315696521674729900028791625884290949838238040658255646163532850520394595589703897209515898808283883169145706254612015532630309737652205245363073257521146095437110350306566423058208307423064806835028388552007010008456342455236092250415873421789302050620386432124153716765277264900955811693287615746007547782373079761203287193273301437180208059044858600697056262372096345734755818712416862009789241331809098399277544351905606699690061944364856691497410099930050758880552677622273112102095995175628738743384017520569888152154125724125234614786421459515293922316960313134501287566811505469462485692326570859275706016764587351361401599670167561114741928275911295496354232126862590319113128289800164694654540425343308930099711278963071249484394653060725283453335667099298082205169536657739944850962235147208045468414153288497596397911254492627957341299896925126950358903236165785988509769285637131407877970706624385276265132578517288526014667217227239942767121566487602640969333800286388039062375754189038601164622295952080824879601380491766693410237903037746223942954178117550014522312335973451238091482484235625085439053658000602488496015398997868659551062685313274542100665421733477492971950352242219780110215977620723078107327816857024085569265120472270665716069348076722630536943587216139018468596420782496900834680734667921873612470634124415294266214488918397052241556579579151467196412456429182425127440869517629333494287058966991570203991500057121887012024169617495127687058540159615830803710244240940588102629627758798138701244707848957754285634938318533189655397118731335190659849302089346218504242478842048323269562175546118311021547824924772503359043878543934052743392054355759279373804995482784854149496990649626139440066894040196663668393164824626586461843603662000498548607156223602674520540883228619519418764708240356298157548916336454040679889297753555569465005450833612440188953202066240540364792609209106689035210136088813154580830649209990313775278421092733885398244491552092453559033681609577101058720588653397773884293857498855694401057419427760757964921936059700442301155002171917553214108144650756429780845708520528568811232425068350853787629509180582805061047100390242450404212083823121457370286302180827212835953093206409366006917560515941482419834742568540207286417762687694127771400929383189842998693551941209537480377462155625857299320160225927976560287492801316331268654966229250244421012793235346650911023608065851987307004142585884573538052128795689197161024424325264442739475356559673437149179472397441071293411501806822256594269653185060290523670008821749469357014663458681330352953698771158232461615005122922997785449669766806639099290779157129152807453997226985374809657031945007814142396025505581467161740738269198210072282597291957212441972292519580394164301663533273532478741908189405701753053697702794974317967199085090885167673888595224272863437336548279140178966362150194031855642293813612788811160136191311381241713370570768201889903467362389925423284966018636801557369716015996631707613748909762784483906175987841233770300131034958473788075138655843015690528253816608878633939659857594304667625665910820082752801126878857535480405109199827151386090024071012730322030652386254787501266341316670555901275318438942742090745871321918265946985847145235006077049436681145180327118818768032608656690582421627078452804474424653666008282325669342908121791189094554209650935342035057820093013448824422656086197594746055504449552404993790885832300063824452170941954544323214127597599579136006136489635914783561046946460058445028964630416221957608258362076213810997204308572000077913382886980090673522929990620345676318234102469407497518004184822110797051450024077266993526381189081411879430559348070900463524620607932315045323583123824411204632680886986605958769355459077016753342699416819382442261681036757550507190834088363357511275473889273241156740339325026659974601079368040631517873259502549232286470106294087897741088295660873302936858227361586783583816278332716591584901254185052020139641225940719696378653841698592017181351058993093443275546135364340421921801107040705145784428843683528959996586276207585544169166970080551199913561836931379286231213309323016165376058724091993399358734505759084518127480638017194679137118514292922987925017911793348869847378694107157373707170596804832865506718605104463775564832160039849570147839493722747672480473206968434484679914634535543157678018660821334761358335491680474522046378473603930296149904280141681032134848242649913897922903840599967294207023634980705028411746583895954569658205547987131171689666942013944144558620625890936379440325451469513018511716388932605242864019842420993070099095291069469042494460304494505274841012694670582771445756480381210990171775676940211150496031222002520461141684105714110785524072159401583744149506537149998683145493468012413396974184099409520217441424926074386888715326167973793138739902619980383637476359837002256275732423053717451319623074298095043577464835020237898923986999069025359391632673916891706597352411057285530848727415003101408771693343203155556213855520386613958561463320897013311800454683266792365639317698298533123435884554972088537664418582650837968123647626581718266796138582395264472952922030788067377731573803176347936768945270767757967425366270544880650241795788254231119518050392347858557691865890446224370732246543671424527453612219911824459570431154534757171317741244378198857283082631602995268048599104100173099417099873001486572171592802215564471957759078971615040421809079181814555271267760539737117466510372019552323215840249633464181707645848281289868842479784349110318999335506601075026667511912311340194079746869630102248335832444331236632722193446853596035920487080375956429900710549113326576932891226447585143929489930647026368300463707412571824809147584978348500583070348440295535992783420782084671871085626140621135653196341492496775311725628921778776687955723815768296534836910185622133167955954701350140423962850367296073229573413502032599525490754850890400768730096120463108794541771727227796459189552384075490709373690549640630886195767140609322720904916901213402587843466223575698199397706406789495182910928134235127813134934800178928622038883164332974864347131866622159829922188117484255063409852501949066455736186142715742469451987834836808390817900315245742499007557230473695160951966614295204720971851406204314799676027879940005891577241566804503504036963860015709513568338011102181222180959185127031700051992806920842864436678636969175070234101070042008591027982521173367932583880168996705753910931334651602329092394788322052097491777863513536237238906778555750538425439627877256898050072382056060610479404558849089396501768028766797916647090198848342070187971698639785665978355221653376009583302208204083366046233493084443230619516645460803821627726906047038048083992768714393998457304341103825200071532833242205795550365020109714887022111636512822490105719444602843520622804690656626484910036797804841209147939982504000795259932592829218601828180126234242533056716927197808440000438544906168217737823180681560750309285819060026151575674796690401284922245282978153707683027147664846115144196531255782648193487889224239288365229728211836312060429949640894981417459465279681831925768529971387061102805428598320699163204642920490353499446214414144700724632675665973017277770295582659679137197242022452263370183207513777178784852048951290401031788905813595538625945843591219553719872433456922060818654487535178079008321982679873359723237794100912314474102433167199716859734909607403671811874652139095982700471013440871688958062541998022510834798942801943397880402499900313836979882237002637756407221285020801780873500915064423292820033386813586517791100270637749823061463583039156221602814755087412585916947970650792255959080411361734490146271639519433122029608857312613382271406611073516390177380515400882098318534353648436286802072175354738521414345037729404020458203469657999190604182752891524147681362708423351434915428317583566138535129761992007422839957054237416644094720989255330721724411964314070309400383775803144689440803687589457410452488926023169916101152650254191953220820615636698895281286885962292582855467042351704718780424817721167847848066942973161681604141489030910477766319332974930490989307585482933585139175765578950019667244317438452744549765060673154277474602920096037497762901459299014234106273894746323064941646021820794978634919079808914702206400530793009381324240724079673540644680308498168837446086073632919509356597491590479745021119048884109748165258980052820552097838752290394517191001674109001705236568331488847671374751920311473658965270311057434399898380580356271291726204427906786328211104894420826385674893895429873517958682664846971296628206511224879138681442819071278820532747848414301388850112595265456863214444122775647085720886039265994070617066463778336029344496624302898522030476421636420355985884669209775129555890082418516500258002868660009123746109822060634910427911395522086911173329629629946421416467332923493660667686171551049948368738816433605647888065608188375270101022431309914389993897719812554472714297120854773039695458440152238476428161450766584181709438261884937438189737700895739038630929420423315751868334343775846116919916807840848285639105286692603408945340965708824119612753495643523562258151014602660598571730806001928956756278312726602440065990960279859460176327210028404171798210301675983277671429951805073327447619138248233659929481254551546333596992916855817374803256309788188764709025575304961369883786966471416714417019029499123714824175562059636628768707243558522225839599703042360272271801478467195965381142428031341931432581641773961906009679542414375281523426884420989035049429123077606000135513248570313059488585013949238137368280583686131948535286291802123372063669885141199475898398448889523917103483156728045221515322943778389038312533353089339106363786006915322211335892876021118211808717213466277945962694137207419751171211903916668859344753212125291369328822470431027836820078687470657518051903653030599639137736752962153304687653160517246880919638561178402830554697330061466639837377546428175373850361277894826903140436484006890796171488442751308158422322403800971403443232710737180592918274047490627720632719138828916790427957070304306896971302041460153601859731566570711706375862050412948478132465957488500989477477320103489528699330694597044420488859125927313215545476934511839400813127861160666281519936368147856768586363478553515280102856439422283807948463950109001050560037856319513975181594347780736837940699406555710991092859131361143981724581570985371013575058411225763592140672083264818963013932032895830061560234718352260335201265403677224214918735901518241275842927489300222017938978974749436961438674027557477062873357759807341912542627847609289248670798905780533679214619821518446415700448085690823610368646513989276393485725795608162724859293429975811017408846651047337884568339952371583200422347650694789590372227491435224268777922313680692156015115918485295162860089287804751910959722819239200355294304493163534747437863533653271186080105216721585161246849284252763914079188133934766336622054585366794429097691638113957227889118109842003254786271048577702758094732582290760194234604353890452471096507704309702007215362063832784840134736064766030397397024214309081789592283265860353984569243158438716095406066320733888850497688080262051388928313671029808209223808754910739657530143279824451220631808877579482988549640591799340510384833198666932975754205304688615295971339229421062910512644069729922731497316635200931411338472492454923481210059556856237636998368248323732508777682558440554076399699015258186730533781327896243211812772146145695689158576381001384996180181117322740236496760341658259160283870888164240331733255503850489050330974517683650474365224623066683701255009959287250337612167342291418797767801676840901883929080304141022280338987291047935452842628577382852604001780564431550728010807758695436158422837098185659559226563824830499862128221043421715821254344338683159981091729863149844991514233104898937159160025253929512737759408517911858747856407481336384317735226051034422544724628336885314847323936732442987910714821338791511617447158962683387041566518574517342005140391098831788216850520094730451345428445938485286326171820386890686978057965871754220371669012617172082298108414277517427786554471321518928751878061053794863289290237188441793513255417436297358067164664351032186545740671641244464047606087534932059206346929146062991698300443638559622121401323758664175876320992362628616124692314594898567135785420732470903248042965060283687806343969753021483219979356185279790398671875843658773527630023863111596417866125042657190453878215148601475976189009096502643558876307430000683908356549058746256432674428314789761262690550427837448585715076711915831492646567664605003316252775880706866759248192676630178122131573025809111580943761927208333137548389708640101995089547752380749736986115133781424415145943034337626237159185967540807415224719117798069327705882329713712164574399617693047474892624163139985378559383774039993917589795967686554452404425053270499049228677549610128003237276729735918949482447240469761103338931370658387411176323803239540896328796393961455303862020012195677613724497671211550135954336548648829538895800429417880586177609835006346890022962699826307690630791968505246380089252603077148561222231373234167294617415345095485273174785670516322566190480195826395613802008406086273117103260952289602973629962770240129946946881452315582319577877732296313403322781006617746950398416266147775322733832012039496536824367098223087534345497013723716186365479603110616502715059178608995796669757062783999747294576859271324029061408225592000309471795028634624690589563036275977367768304922611746696356766634791920286480848971350204177409257057161740079386551665936827438438701048230891221453148630895844719994100337531847575503563868360692520904197626708283277324777348277446892656766992014573224378643957366313992467430381037336677271744084579051204141662778273960988725151550173154398811675875090132110096955569060802090505005762209867111907211696077300419200810868442040891400533451926794865921380264045892027691059834074169929641975347802299866742128386543262967151405784694140332087107194830774113532972923550380907661642638807156554143324183662006204006382694696768600736577328245348693870094719008571148323978261947165531403919271473104172389177288563956236493326322814435146761511514677794171883206504952760689542883640624874513080797756833133580227550226842996645903029533665119220047614155227095113320331182982023536630170868322283036995257792760213010210917821469920520097082194853006644662599654916827265093900525478585997637162893625056418211254533054263775532595932680909959781178776724889744483989301367079077175434347134355363602792850710194798901249867633361655452740376912186510648706072049147981641025815706725564497604026918134409675429388252429524063844678187329877487302404219327041800242960123459954397186461772346151042938526712704562537097778359593975212802634420502075952817130072661929096226725227040588383562283872840981073115923778419746446150157027160397130501744601033615630654326749173861539800376680185827344332827852510121694547879944497715754398027375580333195839014465638078613871639901464980852425275910844974286570748796339527767076364085362378124395492010040638554549080011922429128432670568414215332870737995371912393958131646916087574754031912863912123202369489114399896929700729575372383336091013453999975512247865121031671194206217503023099405886224226279440899781082076662977562701682563877639399745330071939525628561099268641299365702276229590014033073627658729877738952463629112644934881681530573679639829940840230085792036899875155209277106284627323306831237873815130302690152624892062649102588328210459303987590881001001985868424613418179317334258765854680003290289393341142587467584024141229154612980807057459790496285270251315542511918226532724091528729417010025331933294568166823909817082323927469861331886767148824895921958397586603458957095469001956035837486491455737680967858605570193628870519682439436104565687170877644469209244962308458834353677860362302184197915047981719759106047093339999978197920069236262745324281993751553874823478384197016618812867855967695534109732901309233595038967602882577458514954354364230427613696021746682813536004847113814580561164595343526605692937282194630077763927210355946491033262474397815121004963555876996445644784288577674689801624938160115489881727255855746504587431286406365016063095690706803506502935797094589498171688578109083914003672631296690778135068297190375562253434469048224935374539955111160417845884074951717121365898713108598876149518930849278287009551019918045406115598967371862442395245659785058265880290863917536376872326535514794943763752847342697626999471828650911909245941671098725281002373146197635022168882105506774056708724839477601897872399816730580931841706480679809439287585548280440848433406805778058791199718002734669649350362417722859829364174315572958026227206375692508293398343014147950943684252880680962075195820432019807534497415835445566601384206888663442660587948608692447852481191091273409767806416749549740184540855640575826103012897672699866047984874643944835660394102407192601328953726400626962199510717565840105717951141763607491162366557427083459214434194678602457398501601369033694027163660342531114810065154022871275527660403095144357881630119004407658287912162599607794801026337468264184193067969755125602629520609532999379598777165240324833582254227929021295168502638247960190966167384241939014864127149828248988860071927817556588389403417153461118862957345262261712195632471886993468697889870188067480312802084567512319449669763879853728284010893165892904568685074879153696864754580919822344731723737296100063784874230166084761624111334692553702863314797996834934759420616829695055311897088694106587697687895248250514978668016018292258372061644004498256164192969580773244369490933122210383618959547616506248511992298063016246134992960134542247065194723009738890167104393718626053313061820803124359317370923079477946382144066716662051245449910352147031763805490692241825632498844638123495771719244981820457942224733140116445749695201164587336269219583745841713663993466686577910570383335386235625700264767450310554746362770795997394873770099508257819260888672468568448869589672187348599579230613255492316864621733556281949732352290903528323481928720810785926843125137435020046815526516365031676076600596049444545694490809422716290217708867094050494692181093318938219712877644775281199154047382349773469457500251974515100590287306254160910070818956010076619205862311612288565143292845178797085911023262432869406136988775996035373386032942523005786024407989671675284769723752606708583218492214879662441769971933734435536052617597873188966020488797618900017443154739034909558305715476982088841117831386555418864761483075282542888605234615042688196380843297621926116940805378961256521028018074785998690455646715271870254520466515773792831735784713028230420351116030708525281554695194939555320041616732253828844549325708464302294000005539071730896887169813151243605025303464357617334735414871027113806473515047625974912473322004352442210681622018821186901636189313628393496718228995196120874950312172771116901698365073880090986505091616217226700252383956906902281542335606487427016895708849459784301291675845403292299069133111566550959903373128451229875018415124584498055859641935996722751370470902103332803259094261577844989907809716530358277408510379630975034072112130132825685902949273386938368334402931002929815903709177188280682992366413867166788562629480080563370963247116684715762906310658436557312011898463833072042575503159685519697331530160290747845811480566858685939727351885781669244326364475842502680152176306385595731077143516944328740796920414732849077798993567485939398624150775578390201123847410095114759595429019323940781567804393561511919898390253128813198401383563191939356441306708043506251165899991859360165250600226978619636625134536069827755014059477840053074217316096757134986278481624325071812938101550545209588029513421442643281786034749970701779368215405433462050509372058857607595820126348681561288745526652608512557536489779545428275355767851885945018530501287832347208220139392608979425473463694350794437170585472557258672281036236439675815511345686234659603719827729056808024038959319905517165854873833779388015838048178395949499352306971470463404284884545230463098723805465689554443878939502940445159301109147352657598960035068842707003488166928092705212195974570412781858945002094503631421919843776464464950489428685589628304049710330063582909044150391248619992357793697425150060115419881251127407542261534250775385563459065286641155543281677460318901181145099893028304933782426058250699287789739666770192032991264437551215916832337599209455597202247045755188768375648538220505902128157668699252446355431272109984602572418686712882009471404921882972313607785516550639443385669244905385863227781543293406049568153245574057763114992761579955790043427552608469184700146033516584747286507029900481360739533107658533402994500053229875049635968087674909063441982929085881753657443764301433774084796605787375897784549095675106973716527035121831061750129081027136298421025132997753792522998852354581106604594355882712436860707192528167983976219925868686769206710884734869892965844699004920742367922946684368325287631574287290204784341155317525251093708844567879494653764825390496757008985800518985916948124274052402337086562357912081520645847725047043878009830341602034196957891646695229495717235208571888202376562378576882731273854019733274919605742247135205013388193188932571408202651830058827780118730896377561894555814109680540547976484041391620172889083675151194291029818289123408782950691475680313276682936430087864991036433795982452983161934606947184846689451111784890301061566810682358980167111665554029999341767985843222996875126760178913152141003482493653679242151322336446420229972326467934723811166118494936469049649673158432874385334371598303485188676103682858910642568188096313206054079668818446091716473959498993939662804233331331156313178299666466266375100437455030802157211702751039061831289217185253746007770312848772832907991034112365312540863793801974277339596817959870133736025650376938038960459488786409415658043623166243047491091025053526716116385558472534514536145889108072905735214304229004789902174061920884708498008509327450734891126381751239050375054424513149765956896608679566241776689102005936655750022127494320044748113588802255697902267887627998445231446186258174652590127294373224413658710691784638417231902320873111226927529052435618176411725744485205921616262312929936663515737113651888036639086590128553583974470519687196579349139240224026210198275211756697684981206681444125939228146981506436857831478236021094982272695402685161994809203375528002365392559727426651392187316072748522963859380689780792696880010143534588121133672851242503523678433777103009857822540580168971403914170386971223914839715340546517945342892954734005565458935224855278024485869017407252948704178365062293565409696215645713345996755230744908094402868008204309132239692747077618071602163392867041522960604256126835000675608322071628318667193270537484854622488486666329458252233816424328059745848947814982070926979465952559479286737978908045590120283644933235717841347299806673710058209103331613723890231776042554403134839180558662882446217305385712496919863622375668265519147153412057563089030202497042730724239141583882962195419301470102748164390733725240686341772774996255643904235678825535153389493320596464224624431563866707504508861053046714635504187507937702471949427484923890885329410481486942488709606413356947868546703325679355282067110460469383425272734210051565307006776032159193793456517937814604827182645707007800369281396947958295249468064299152381412682263635396435266848902647756619821812150711056637907370151814406341983098851603635657487352283396691474194166815560442032347277182190976064537244911133725401225609112133931744010963399325425580272699261936309131081902743137213676762776055345818777926443762382402661869541765991589003593797373680047293000775263319031079998939301668265973978100729541414858669263315686535002741319519255708993214303192685696528434460414143437623284192809571768379342853110185460848598895126976995426599898264554414371777486931900068377612748264944332199126587156781912283466262563155077740783828668402595485807130290788584437413642615299353714896843126430714290770362816264898636220321600365814364409468642986698529531262168086523687344940905880135679852689494852069989173995714948144160564290330625336631718625875397215322664719535934485345742737706591236265324182488048181002348458262871611874746990808848506666049894675501543398299744404134225969345884757148555526010516399143105016163193410689653003797458714842555604720655394339790285328103165023167980864485248231899829519143938015958448532202650251331762356533452478331455910496812732007562347396024544524834734682072637212077917785444867711082317779599228284116451884441947413595675757798770128159714504880952164004206459820272363308322474915763019809931804096879554030792706395142211199497229460431721335767543706497750011420247304019643912977455101580073520367319073996355494693845994638140792382415029094709889261864310766157710694360659229658237402575144305563108356299784099956514769126845521816308892078511708145755854675252287984270675588333466332039460867833526612595034219670406310696261248615706073649136076890212816447545677793360259769060788482775880613883303955772069912699013413491315956027280756178606336911123448923226667732172178784073651817350884270156396732887149856203975625728612000580289429752664728551252029053944773856333251303714019811856786599914367865777934523498582286117210116727383683270275064941951955974223021671775048991364661604078265297149587247251029616708726091529807438170539380255166135771375278015255226044807221575215600387234159993023191562971769610921757497113381979853894475486889480959599037040222275052778254001068956806255345525803198415629233320528996067507839596455519674077897241660772741183855008651883743380908802315033150230675423744708154631256884505440844034731483927142553388124382329648304763049068005055399585829614034582596217360012208720214568927811988492711835021282004114696942874635220266653369597592227518981020007282946206940851794773780649263915220690433487057988452427122682723942476739453627637456572729182390168371275193789247450824811764764312824537755513618030474906670273357830736631199001094572882733840784500438448737625332997370893782805480896424875800027266869701682047070419299611888761796610269617675342994975789059287966362316840806103874652631005361432250279926495668847427309379700771996030033993675795161517759702404129805518302891494401670813253898487549819444107370762800333740036093579656084007989195411400705812002194401207753635758807436551081699525510828831475586990858442082329405490982987416063861725202767467755615991288856780343703076843290616754169350465585506339009874129434412491526954821290963431243624094459571313931746841247063095817733529528043387439360302818309175294873916329809038495497021186640772587395656792580201958611474870381944806890870722189489711578742567360315128938764412834738835738297490976860355538583884860266709282507791744616542531044159810352356973611927349069745519489795710382330724116642225962376338461109749863917018814167877575129701122074078129886951646291756406434987992345281321678362865780019414774635709044558894536920270543236774391690994659454158085942883705286718013451952443597867746515494465434533599902417418460162527670053290610745405328047903808598238814717086657938262589132564784452190237727582433281709130770815059941444874839598275940424990144926464179502732006456617919157506450857668137203699837191699699204837846595535906718825412664730695000810848310229031684798455692073459926963202194508270519005336916746466151209724454691581518643708722865308671207021240585968889717449274448320232105020312044548124572524711232887385906651381336914065985208788417732986644924982175668866332525514025934027172703241556427772785499960581364036382163942930129278229523437742853139517110402555184304852391950688077312951270019397273824659893180619326711785681373670287055793887978437440777792296935299082592309705179859580639904693351648077957988240998043250684896778877438580548176485777344270695649601988917571247310699922190277396717537799111338749458787536551070218546095412201002127375731116155990549568601305669111928119757405814372135038710143782818768689109286712299885592164720303487057550727404069493577352061817237344665647806196843664617994651766485299373499154897216973288215374672824844788776989962132166991110965194087066360916652710951695147109867518909324419143814758672465309576782117793924112676783879971644909557402013695263125785439946276693141317188549947416628793902399888361603501951049085163176913864542201050181143272276124333760781763969027313277745971666820193988939466793177579532355028766960837082924798309968772023132187876796711347519505541588175168173845935504474730482274596813100196259585523571563620607463159001960128475061640193334499318383846412738330793904703607148011416467606041548010161975024082870292665593977151199361926722852452756199021425825530164372844913520448202597657264324527178763636342052869027763940674714241197487509676546373265770966754681608210321295491774331687917786733903287443846158994893166352710666249306670512962323306685136916136330620372119879958711537247004876357604522758183221686055966964249780453967182560493890972917431691525758218111331421685571535567945861254525504433797351471691844406517503569432308951534116145964692884321165532889951258175250343452291105008999296959189519562926590996804258272231583263102849958150521998483336309760174499779231770555967855184208014311727554404038934952897994454966461792632597791166295071777371828705572937496140984172354304102273414907428059686852028115032624252831836430354366533485652255672976283077723992246510517999016135760775587381720587521210682239476386573631545328343321970894514953284182268140642313059593340448418791071099257490293779653262037469790620094137882365918514625595849028342224147150709219366511903850808020882595012023358795476858658696387180398898524297222590763719437084452977225315832141156157500800658784807702761509427075666661280152882456209460482971514305629827436448606247832322204581584681945117962659483858096468303631218427422363427584853749642282531501218310420058984124997364874383737499986471755440754196070377866002547004818379216589645235496174231356360687362136557352369369158594087010169871827119407667440497830485391410901148523736360276984985157243419670056473457200650170256463872955457657958799952133636271868690382402578744705850787026248428101831941005996407689300390911094805606086877274248121628271746545979258296974962694129020781437414940673432831465048847648118142794609636669867214043238582520911023284331055735109359133763748576217580556870442400794775520639831480375873845292783895486351115595424821899104353548745493996996046632920922570510637740429753755732386457830727795203228712574671448081189248480698279775699776045834130537440234277909553510076407898183294869158769058508714288613197084029448271746702975225053915914206299140190984809990920646489831846277600793676592223835880916650968562811792066314771846449518992821379739729740948967878073494557319346372272582162436297439209854041430965294791412531228557369808329181872181387019812042778879491917974459156160155028520018927229565985451548519830226625147008146944573281621189813765877989863551999442440519226945812892568100447285858850559733145437956720876329035989659928802014334238932147554571321655032711870625258424677607404172178250082311690982001677471731465769212107933058627223175137592384500583808898524987108587659191122452110664448606985694906530274018552627923786526928655972154848165914879706260861031043290489369661268354467536840783108803680630102138211582444009881989104991188777919997706917956306316630007689092932488053044019541943330726415336223992989889696186866493937099526091791571694458489489720267223951048529906087853575327396277545621473116708569065038131207872843949983321315154634959931068751578639365889752161501654181649952688557428159753969799553669379596956696526349763243793644697439083348175422956284353817370037088755877104001948258752733527085486622860035665346359013258842066472885739107870817846554506990879426713639950351856394267025075164252094645781475075107572409159510727742219882601072448851370510872622351409764857615519069174514907380623203683545404178204380264215459629171063261553239344564083259350013355442738503702942375516413836983451740902172953334683534016782888139652792074010834498856016523824075001320846094484208980057185287122422487680557223816384993333344625291126105901935627761853936882003875426515166080907656045022133883000646758870134331142362214252641443397782861477296516754291986071361224428272308160301859991303912755551580539876576850161184431665737812562913155578626382149956563791257331714866979547176909371457917374403494655585885574337023925793681125818582521038245035369667495725913290131972350636005355709619970464111703087871201217968327093186999281225438727857444754482918120437161355750826537234898082464779179417625416876014131816309391019089835647256258632802068089413685327231335607262891915237677094408665878569431500453346864695923284269217828771485940700467311705496726531866523560461930079043030720024804870081725281050067354289525053730254298357187823278775625976662057108896303387375218636154266871811186050058656045735951216760183032052074448276220813001949569183074571804372184284402650487854149896013396187707674872042385202630446775638198691702867469726790762049098443075645619338000973601498334219951285100077319059765431734879471959423300830512650612631799481984992813717697510295059429388919786812996521082644440216636638144834908628091772651995387308326717314472201722986025430208025485357916019884497456176578140077606284864960837527687382263761855479697472787262737118924544519270328007487461306622535816764824082624994769826363278688734686251682943166216821292026560213332988091626930617947717938777462296551939859287242646247873769420250806289692785373776687330540727011422801102562945092034850948005084489352433167261984430309084559023217868245616509324488962863288574003382007014407074109239172573198000663924680680150326067763956318981729504751121400098967310362447334563898284926398299002891558313968098295003965845772216036436695317512465838578426736615259777177965755817055182608658729161847744098896129656793879981178618891556519266714339984315619558811619764466220409826700217610525012594967796974610649316969884650555734162093200183387690368642542992519319883348486665375851349611482459316935681024498565643367659562448753786159150023381075792175915979924512757476641289671133498399104559752326926345252173628782972232544439084376726657149793275610960529198612340788926966953216751768735345870045847535447984901102919567443641598733539545126844318786037087792117272168409586772793307707418769790393372085125406739096445652522073795400220887891059960020654946786945511501714571507130121244275800294278291724363828694221120413412718700776493319243899332960186983996689432580421885313873711020765835100418524113762127414332266239650031751805040599443467507192857679553550687175820527595524774780133874083325676822076670744346845709716086360340892763220634959722560978805698229764382669810221661301084064875307166818581267182444104533673790937836140845926741134817209375620772264443870304800600053930824637279719952076722022964402104882525972950839301393605224756699120068022671900646585863258892558023393097770718937525432721649271640382027740009130878169472425333904821666080261969130870424874386943211431471496817455181503136757038270634845438067399497001662669561207230245965224726582159276690920699341003485435645947116837333211868446531439856435294588806193189635310648441419970987570310804985024014645721683535310908409664116601902399324533914823744114264433748363493378222071702380871494413453219662068382550749670632263527525621845332900549315883527542665475537394690844123709083516052557473439137913716170924562932702147410591885010820928092457528558644803087889898740282091605553799917433696462533735472814884529842421814706551936664106912643819901353332816455731683133419415609922176213454313377487348889041811098225150557560659713615715984273582964600233264884796262698660971652682266668458033738622761759579500556352215276080357710265771592014265283955021168443278931682313657943680759772769768769276294227683708102528010425960080876175313145531432081551011596069760147564617035708836465465232459673579020207559710130070000518951969056025789063927443897501612598873333284465000229828656290529523715380181918345240231376526660727442863879109833009510246662264202444231887082148590090328538660980412026439092163015774950320767905703367500636711433459995210358319041710627466575317882356951784044003892206930762118813908141747944213983426788006309922916119572489363141238019584600390446406261473423613241107242004249395627961197373567410380549557024468783547503530155875165323139969840410440281780215887335983734770954325887946913963560205393273516669725645340161791103408470883306002715972750106985207284181412290167254903962641789899352416450812569879673424847140314998158523719337582563296654103629411331772353643004609987249325648969021330505368770961343147774472536477264959907188849098846926108814730088445406033356491587144140231245481727621918546258033139282711414476444098447576385443197997101309636425595502237635252686244383204904573575346588771081683614595593316591061314026952136222496089978643478399937336958746782250076769312088631830421015086364218682014564938050065794978298859524154313820385653374007159275460421601292586387913528636583935207623483480601989564387943064018864515039911690606258556150361006602257697764016501974172847301431585788386120878322796670101011801006412481743018005667996420305252305682280536338544280893656086137370480245265264505557921238049180904642325729055316206289858433976612596204595469568792023640133946164602708499240209468718792459332087350386820749891792483578646427021370066456268183425800257445362988394541048204150268278949735114176350386158456679835560441761995630488572044113736373241108375426341390172967721873332900288326260015591391252292173793704411013271379222331550363167724038900777586249167651968773240429403874825290116386370757443839917928452573777817384063356651869779694769772053812399487053472718721339803678549096222738143370234429746859610053686532276881654601130594091478225936218278852277707199307033789786052240117622145839106669886299892283475512282566580692834312631573221216390150789877789823005040043550825368552489766595536116539188197129981120726686753059060910348481749490659682228469473883729158261977988845568764341032839345098173792394354760311240841536997151599415271480445158029803755206426582017369296303205023903248389800514130645318965176015665539978220071337088898360806607552698643381506144114580939136714114588239905501234686134320913741873319501808517448239558621725356212635030467803947283982358123537233895188597899192264703996070896080737704647806420036991947596234991679694735226642250531274694558750637308763059011524239127857373592346305514861808613388075025670244934529089166572724364617205805195796489733664424151636249347042976017865502018338180562767103188420145821294668751264595849192456491858783134315580520276914039933945270290138168001449878642899492531740167806064952305883613242227269079656628290177685490531979155090097771411561838374410361065122820073401973897598042072746536636215952113425343055791910932431019797108880970788744942419329550630735170940649484338898023900251742198698048963794665225243593090832360364456439822770152388172185484713766012842135243461693914733357526378753329311308251528988331581543081661234168996195778966056729401893886192683046231090463815481171100501467653057361106115772064427350729418764290251610074006120340440700916402815843404101008375463206319923604429107874494578665554612140329119566781869645690158063959080616690714002994080580192545574445524307436433936581664584104602697372356691191527970618902600524607925746017923921566078868024862607716395848625061945387292948035587558361535877293584667756920415021399264767738494885299475697629361000544513682717548947791325100907958145215417124338858761961565227391487614264165797132120601929654104661269717519414186918855968456774157278764943236202151288560443519556053533396800461569342878916591278902802845816079689344833118808227471201258552185332423023121929306686255303733684897649394464661569016709015449386732008087956877943741131534099304182781294647273059449460209395327988706168902361207987525569444953790393749580549033430912494768165675932975551432372740410735138947887146841627225979846931773558430661643562397969800663883712474669570986562409706748076378644686105566858224067073307481071744476788490646358236364686025591435296037028866882541147109262260141496674659219521851781334479298651216519758844695921823668585067761943153952781026083822672598427332912699211120809837027857127776283518083667584223052783904882065681365209670912165982355018668519296062441815801886224694868121918192541941196877700752948163658553140415213169135928145980012052651924242082571888974074915899277524096164555058057682954895901663356725004654096609855190596747974775879864951283306833939242478585184644597270185960223626330638294388734966837901956791726159555532620537089760344315810857394692245948836706058588853432221166753542851125575366355210148811016081190027285661116787446909403686748132917582127213754049382748927351923058077216723518310730770643422632960896895282481450580897017667844808817104883227339441486185155026882874572261616065551606129090383293409115279444739185236722514695963485940625993067365111948278028470800853312127155110023541975601883047360667841506360393063863924667117698584575355918188222275128240514683360638178744002123229086583343926199451900264736486759940089692004749269582457035231580835685275228537622979239324923292458680309574516045493779715441070703224274517656069942003022257773254015520439984733143447445477848230713634749167814392520665621528986769540159926406526992770370853639830609928693835621989729795101504680556727271883148214119086235220257077852560732861295007205219199748280437079507136086313863309473535481888558024900481372458741252817664269424380965670065970804716387331919705089278898764686670333466079693193201084514681830837213023910158354355168449465339567249281129856009759218397691305554077396278746054278353859206442097932905359836041295426123858689184661001373952931010748656338258939454306395647694389699346540035826335349429995756156377546297330065985997389850904339539241177396558045185474981776143461209991659928151119502442777361567334571251387889864181769946985016814780475616135357588356591833576212707904306112395922011633373234150317764815285554521195820656996969166475560490841329005597488661260177134988422013038883913910440091676773397545180880629609271581224416082930472824235712924074658637998793054139650745792226236438483195526045052985501619910729684855062861634017368278708674394823981679171679329702075874031081998864921052514195995521734587146574655080390718290472420001486972079962890193062449177714923132445620205370724320744893315776085414929012784756023599158681702973541680845160578182518107176866295791858786201043871762701933241855060936570013806479854203553569769636401812881400627483113899402834887765695824435288280685998205833598019499567038644301203663297702268983168717172407966199231233768387142711385719040015803732806137508608542808609038235169117559756272124411603418973849364363888025325659182060318540206710683703666775235035220391307831535158640838939680097776814395445796352207357150857429760553904784045048353155115429625447371746601183928029536757692985934173512888943969446899559572456797513178214164982385696218387252038524015458490363271704490883418953345655084621491675700345711762379409076942632128053863591239526025743503072316830313484194720580612275261723492630575213320939107407547930025615898975386170734367646037592518145977244289900674349534204173684948673453158746704337417977868082325814387222736357491539206915561055636314124131569801860078240711775580022528442397404846939630322007480209906283429010602106007111644153484266555909714656979546373361020915348528389215900245556987719407945348251312271565764764092038916693762611342418300526535375364022241716283667033743858838566382455638656691255437286310943513426538294657229731197466955261683421111989535613936295437362832974754842320607048243967270544247497243619575793142385362092713504394494211429010052452174352706659525582850346965254950663602113013769583092115880917080859200621626714782997696334216598015022993702960782592398547438840750959331528886798427297786991608400087322994228741293071108226751528547783746423060329882429842311347107111235898602253170268176709266263454923321830442799233649439990008651624926627217923034339847985725172316104491108873719143799618507252238537501798741843148196404390209147284808315817861367653894276144974519703250631408012197699533738707143414547963637120877280006645391799217748378121902823443475904717393395804609066385793232276348463322444763870460944707342876508652149137969500302646901868971058417063678901486144876087402292106291421107813647625024105787074284440917711167205442066801831766324253711745285767191292340608059946434962463379549303755939833736628531227613397245142980118832602146837017766053211888296857365656335756936725802188392247927858417965989047365482062493358841869155392359507252137190689816703204326580617964252492965604597112772853662863338070286184073173768377881471411604279654593035350842838642501280611659363919462681802859996094967544021714096528938578403805288315893507922328234257290568991657074164589696857678462107112718203457295360610639406551403482157670078397888809783722754413786999954096243631010118903890426665929659246346147752025635467003257945404201180312434675237613703865499378069198966044515627382364879720786340610109649957622642261336321712806168121984098867960929563209508192218796718285137523986419266408697592869278361475028636873377786936004151884034174665537537381825092729598753643388547119710865292332186569868875572103108439251114372878607868142135570079401921293907674128936978242206237038752620257855792364422475867131753705099475977757511642803821507331192753244412489348514245916293565021186552573508023016152216321502028788594125728831382080856409506177944586323555634570670865042501479150965825986105652492351548973709763668739519277613305337177789630246814073969068378571681903491065907842217494724565611154702190449042298919806450254614108852582437308575370481987104693980523839649475744816826254451068319423578107940848400659705537087045629912268968255408664261450615680471703207186497159085290118786949861911267579188690049501779043212707934950829518221057207978003560349620351764134845347655014397751764919314283162326601341800425145088469457129542010247547251457410267130465140092488412782204485894114882720382494797988902263502693084256545427446226498482945863728400052694639082551975268991289086466693408232999636131996333091397251814447682302787946906810999710081308190935969434827557880413706344196091442028878746077603449008983814314199739878248728990576994827079393481725410908005190921713288175300581621463846886836362236430555063933914427911640289086113247996757251158184900319710089490677669420451720195558475677588584036151727177044588135152989461800119583546035348358246376216847415518820888819538418303159886962305936589287735907811739150732004074072674640432138782030315229287662050993801942202812381804821856627839030233500580136379687157140773018841205623341397085704938892891875953066713622051237137679752849871752114700299245489381391033060767648205633401276407999228712793609986233983065651206285601679669944207042239528652435398926283217760326878191990562730764336530370995435189469113254264672894693179304520182830780441281113893107286519192012961276935465648021575680304590446550014874436460000122353177806883340834723184229051211094883918493355969838432294227665916812020337858868019213373045604847129233389562011445148095207192096716816728191688239342554369375966786199987225189948088547909603551678491401085841179332421786241333177357230500565206852403231052603139475688407830538529731844178664458149897105150111104448689090403346925521839001136289918759104680290228757769597923648030678674729656886421412361377260550274609699131687183898401046817658050107598421428450929718585587297654140046597081269169599973533401936868479672099550165118080390251099207227260145592731450179150129130907004070247419899187112138354325381907648120594406883776886089001943010334288718595235727372479538202518513583946918914735936018110284532713697440365570483115931446411930783782849394826596354411164156145033112939683343484412759688677626680961445876801450612608968281378027939621862820219374168217013345843221891330008139774987710046934705565359035558149394115480617803444594515284005025224199256123566288397409054052843822015474952212609003967488246172564605830496680975113137146069906943847503134908111542561339275371820922543249419032887729253307689033835427704206684300016703505988870581324421725638142186275960503702860524239475607479371289279019498060226589263654566893692259386976770327456976823691330032722670469027640589471535814474939793894740644037938913698905347528763028762150199238613458344409890366538791326653078226720627644879184160259241027692383912216166633489240561670092797820597788643671483541043475503556609282709482492741983238017703964542639776020242577129802502018023723445494391009255054489365898511790916916135799285939134625509138527918374283410167178363841615930080449549643270049915632218709447903883813962423570758324060750915726847155273798821872723635227153362928670994238791855360425494470805460577496579965196414142114506197579046659149718500598752438472644743214686328701105687173130188617668668152297538760591670495241068334013368069934391156290753214870958853109891728893566016142755599709586264212305750822203630114600470405865479973402671143014589204737476180505146463353175732525858648250470736623464177709234089545865803521127015948608288472244952697288807217509806997367086063053003088623719079419425076768246061488704882083899684370456592603497522136755703005426721597902513005334715881853233011676288736018572018468308506217833434653571199818699841801489425394136133088256320114796320966640248655656618161741653092644498687204979343579594550026201428123797767209564043278423196097189293043861933267495947755675198720460699957435728226655052782215435580055133894766631176600678813161426911021135129046700394385937713210447040149074367468783964006388918626059361959329841083201553133251278175430452853930814946590532011886249479686475003677256872593318864622626518351447195944180688578179373126823683210063896125596212675822105846893339075160472855659004317917734806647670501806027416736615014424740071609398441764321218587591759163032477719312509846824922270014238060423249262897296882773483240290117008222352941845757190661758712659206860459842180739049841617744800065847654647737517933515570585053456294759967246578709606915721182135112025881149206188880664045502148895831770555590384493417676121067384754389891089100641626566670235240315562147128218346222240916302417857625943935291827863087308468232247793995234598158302889433882312132729811650210065659044912687542018848707389347415753045514950526205938930475969753200024908208241583204252058872760741319298374908424897031420629303138249954978569988797259828371045611784903548228271549559532624658454861438838425421200778754893718538349389442906505979715905127996026469125696205694778821154080401905285801953413611198825578986779076743408479339860403974793983247163628593499529740723392113966611606222571582324422375722535744411238003067679239122798591252535618245914369104114605479923657827166106523490613843018593569328908565042712267821252109881516656229881704690688183093110907632248622443105351557093811000686954294027742992804095249294913321794153993220109040556586836109761759033304417135958216146196966146713678824695432091851439297148133102386421417194730690425627037714493337382672953231866646495920253349118122820229287737930829146766993593446443328075680063238852127923334626084990843268012705646486363083591276050397480999797177842900474808041002355654588064368950966739739565029595347901443826641318210680390291453381790674446444371680485325263340665476152629518231253563448436548186660481645471691846211734851181334012592994270022851249268102388897796753413244652133234237613750326725071257997357024643517584924764827779212899657798193628543285177852162695963278778655060596646046693720892838665917666383732424654126134571648747073371684518482565453636443972356426582930624315336602610545907218413248286953775994787182838004582242312536660139543218702910958970403929896288921264283517407618543369426701395921640373732904682986569350168214229449093223000698856502431017018928957503435423493162968172034407483242995259663976686428645093403166973106089324095461027624189411434874587036234200330523262165658324898668146618016517002346761793344297539956118720843642026053593577209913166654802758235572636098861776715609443134845647839800890816638341250923022464804242904529784982183137477286637252448004134334503191413038910292021235847919464028670144307008776456050942398634343846332196209868947419059851380763076999977289652167929381494494822358472791394545888590815702660588010836146162231283976297253683066202533367534120510286620745490983854936734088306227416862815438316258562369160595947663698042684614245050718006251037119497143798255873365880839274680520188024637593434869655051288578858887443294468203488037338285096556556037153936359908362325643725748046677530553253619829129536333610157531217108971552894810837624142726908789884005634673402655591754089644642884337567122557898013386050033029328570706356667342250848229951663392643252873270257691058796155350872548245198532531575846244884475148574387115351954101783205630660794486375938957661808660260478223774049235202616621767876476512462484126881514120906826611008984875501993597007168819116396965919901720594609236786957489270046101999156540771452351622957259008565146509316777794663720544106490647649162814105981196607331148240329606584981194114742343361298537927418116481282839333766114774760284975036287969230508068370405191559091088393772389895599988172087878390676003325320178957004581798936562843466179739778354205521500587807049378268023864109919117938373877077755594768978849639696292533404132174660724613545065786624736635352558278162788042144547035436024410533423427005847430892156100056153475962418812907652288189855846235161356831944283666190248936495816091120529661982100422555283687975873480586366951138103017833881252353159145535708790089191182221799340213338880003763044142904176387770351109546078352071208266906606853968895868360571153277018850539598718123904199750697452605082613421136132146623541436190493996422017781519792094142190634580995674097315170602578093280001775192185725486487385582162638316929520140887031466884229581230578149138620078136261900213136699313650931593604959174585318044177319601804752444376430559176234615347097438006140503188060611967119716878039397506988245763083260804857071388649932477232029349143765079771090361626835615056655755532625784190130816961964834850748880302924378416233669262699421265977599707646706283941801453289214450799366487013820911595144414506821117755305276831447881471098821033837685282548192655779224986729638801616538404018944591878300623461721323817125977494261285873382167864561577233941887918888578633439976160374975684784708271751670941819729613942255284699289564300084679118596290488271602772952303434701924465808712040123572151532223647299898095590504956992428588741356542101882681355965875198590197429051152628034444145714524686825434198477504415522994672806289352425007980520667716037123365601655796825482961068662305912123359707835792812357677063123652126068414676903685013484768349876736419772513104424947863847648727372902298877606554058522880658983115667750490726249781609385529534930403104164953587735601862407593806681006499294671118346630969311757712745713837883691598329359876974399432287193034240257204316947844000850933844171097266697282401923256921989112464116729237226372832876825215849659116128849907125963006619505059638096273453813868719969735749000846824705872531056577996213393323326408911578973208575822419506668861227939040835389515178010925054134253577573880647901311586517681744531045484709855778716849234579317334067977379421349900479383363901065870559593444350664191309839709247796416580894588863169240976247003259813653270713187001736231846422847046171901906219122785194806136458630188461906574148890992605854625524535127561608545275579158040341315065025673137102017826106230614861675171919324839179825562238484115239428824351057245333730953897304651184623955406938982626198086856986784169622923294524058945210532041321484941247840338526441460319217659103140391218780666254646369764238477296443298025283201582788159552808036890454698545982655641075291390449621696009474953876608667152300142020685333612172730005538641891138889954943424135993314625016080681739595369027472675451657179795126156932694377076667088389154921832061975481289551477584359128288228211400132263977957398679247753382870617882718602395012762568172135756594543629319659426959732913130804440840386984113660210547017777823898817018422334865332663215306851977168349809668942595846627760878850520574351813375091050485270871111575290175274206211030702866880026286947380342184170604302820437681569347279515096370096740636280228799403778087203789559796373954930388900552884206607057837377350517954954890549347987853276969953019003522078078474625433166902232454104096354495672095712580043474340193228565123623436830753287245872074659079018680361451044025292443542635512352727156329164465100966072038381506224763232987022364445934516762643327601744877174699986717273599620997238248837134777019292021631092438854922949411978075746128304162840929046358530441785657047040396783340505203230681458034672766266422358010909374468954968809538488872182459111409650605521853147026984243289644097803720725307918492010994625822920786010983897843601717098315851218821012855064217402545847541658653537579393823860390447169494516866455955398074497231888079999178504314912281295215625460675572497673453788543566774283362493589914686672689254313901781831905664642194473579296026444633833079751298933864593801654834012863454169074603015312165634292457853631224603892077593104099343696712749438802253205379844715372608640191144604559972347182094600350327608449919669939679623058933357788224866124601015304823126430493139522252235198842177800149384209673620171799544048485230277723968927838031390733086017647986846344139690539023953196454153503454168428279325053944977276495475046551326780002826858976030027508278902693956498451611210071461252633802101275188914705172981754093129627971228441592968037263216382332604575376230404188934590973362697200243873612394148437894980460378525872827759120006544665467809156036977001004010883667583155886193940066317484472930888365241735616163715657747804841009641420119432971710784605248501282086954851990331863527117037183936916730938934836731837330041111217145882934573627419779073829582648993638727581430760134522128044755586783288437894520203168038820221069506330014593935820933236114637583013655913238228834866445875054085120766679538957411663016901659814188293752175771821588771592555381998029004667212133917974215998859867823996559481473495599598716070346471989860369004414224987086710905145827476931478091326510148661056307896960766590950394213194774161040618583672431228967219899388220068452501394345204282669596644611053882788052120920934632552449369105349740051657000141327764891565811656904257316871564760333099551096092018816873702743086366803774965839370397653354055813799055598870466167698888238105896693636871628046047728088747572674595953985850778970001424991137485389265331633562906364092718094495703583815429769465967739733539398237869719216363765593087164920284788767560287990891831838632432006873453991244659911494249670705192205875056051584353956948394833148374093435928351258618699977851893183422101766519043734965430815630606651762817641731675961469165251868952557543482577945906937391809970575217614302403198535093182350677037421015167669204050300417483272394491813641451753414055183483442571356948941541757819105542280217335409949350082930096108556092726237363885970789798515224364339422614973547318584828572805762990406362504084559903436472810004663654877713317739037023580428374449713240982431482289716081057124467898569393685098909838103744320575991455872552501402031311874266427747844956868754039841748246197353104971441087300361571879947344416565430824818496866950069895985855156128240155962184859981142567843856736417963076317583366925560244717640300261026325047642025991167289135406420963026750537354802777573603898163359565979198006728653166999067497867304016362604392678404970686205817910799420356415346450104139292096257679014195431271292336267910398264091039092922860506727607834405930267645150178999791928134659189807509886586047590607776423105444350798089971255767495322367968662811234268597749752592700074554939574174213211695192056695274239931427798927748518379303693795197037460138439002082052422364203644757886640205891910406554092458640250272924648406005053113420846646333264453750926769304433531415529974391249006751703701779213251145920410260656347565620337884491407095497008151440594754414922391596441436744901092723062171490976806788481543193507290030247924209339092117822599930816600501721368212591708517262198053557070019449230318927515491103944515662342369350919684066852098479132281080986661308031358937294633671510163255923839492085260902151966183450876552571930929738091300141930905136046816386540600680914157625874444063449047297581766886888087969733653224474598535231689115457256298275725495431380009160147182515926630045362083362666912498016507116592443651688953839251356102434238283683307029518587275206032262822191462917147028537332329823634719624114697770096360098876045030742072860543965248282969997390551545837824015149831130196642067329132097614357106160107075250154475470550210524022697646655818502430158261391591287305442752855522458375591947167860982342780692685798822689464337323512582387479684770753622200123153510684400067098175670313568948266063151557078233431325145598830192464123107653472349810858553515667689894612399944660391922304217965004720838406456686468324210017689646497022797022412797248236316150058719886978327833652851410106176832103837210323930873872780977870394208465453071132245835432699038382720987849325905988488827005896669721445576621703194953501618061236798756095574900897158365994418544913245175806451010304366317522691842561282368551856843076272107697305410227478351889229483362914674578057345296976281168060210225425016139166354459291229557091902817095971631833750124452996681768567763085152242752854827747260599365146668562794710157861847913812123113956436597213405118630067285674331408464188655263909062037359511960403752902674452174613426153576854723950700963162949478142806345063147757765564056319429808974269401591915833926160297461920166098992853951221605819686988002670367519967816653472796607053045032237057690067440692330108417438789599767139532154811099630545397892822626322089090281010476395808878363018852609665436307170756445586815104665565097218290320594998987422386519783441269457036326210284032716091666989882720246183724369354677178661211656888242486561108372431422184849248185376281254277601161969703724889006214553399444517126019265227836441397436182303099558886145177865731919590849551011858019005688951417881214309178730219471825270153598653131804675664553145757347775553224957170878457497877145477384260106352274439752661609248603289182161329688241135197329111863167647565670384129259787416305686099012142966485815174916047318987046541714457212731499347915934396378510225291068118159516342032643983306438988009436817760509633235107055447013199053989989277372769295629628634294863211512205571479365272990125583835499678205235253763998265870847397799856840883220035658732065171494838916387767609615593066781974699707296388624518545212469245118048144565000021135439561668689964237618184133935777639552963425590196211911066648155033605287211439353724464103459717926630831837389791033187723271494210289338486783097726878720580777217270870236531744608131295926032540382399586077058762960072004153579514568237986412901188160976911884041653634862646214471191047040142970934550177505478411661518022102001505337601187545685592443821347862708144088370174423106595361826153258117550965317900943037591237590167240157271550486943665924474647647505426281703783142048060961452873776205151380536804574650526883927875324234290068325861352000595668673366722275449983703980972673533184593265998659020736446753911471684435105391544144876588158564383182581737045033178818940336670810688565000416916017327423970687445072209646677521227647144653157506465398099900151769102985374035809260601716880782789146003639470633907919960857213929854967839552797470816015494617963921868709541980596870826192496951076302762843580204079149678426562172608274108171217056664169116927393601468353401403804230369115665185409323536178188217663161202801021033842336085657053071056805621989723672957231136177725865445316947411037423134450901899843815234809420888258663203690415358458269246459830398985598562510118425334560318044917939391912132200869829303891731318563432499395651149693570330932911868098636163843246042379096932340856575626539691546421954823752843999926958859127520914033458760637591462490481378916429666891523531327768516177529559005678353355550927763076937808610585539064202719226891618572533210728222300955600363171952163215120725670600242503681802803260203232038639235670595435252268894730582672477947758355354980004179311483737358586945963918139511232265442229376194105867126886346361816840004221010874568955115451351252265051236615280725199483185344930513008021061798844444295421819485860077291697431788117026961499351746841847052157286971949732196747719122300734636288837230039668724073471425910567825450089734029672650903407066488323153689857574400352528280657725845326888765033159833538647288987108676661482427641606389143420161062858967918132206342125113723182717871279348752172346708525620509185602739740147525827111658920826071419966668154597386399804660627656096782460106642916721118385320852905897775262686734511339203056072660101126737735359455599330405035237573744618482895681503207166690910729067745168611516813187176628368085330551790915876214611690344357000685682495296767090732866481576742888480650845332411111253734685472749634574941268823498003437511348376348900429683085548837626682025271962552481089578787497420195612004057420198323107954608477429573495895063698982353423900921916035389539884903298866524068229771123786477768565167133260193114678818011934448468388486830396608953197083995957133277692847350451858390035570892851494378146149658013912894256703217803803401514139102002365340565697115868303900157710614395180141048858907325002550115435182676006310338867131213721106914478693151085354504572652137533570669232274637347450599440911060088202734076492934544317021707897365808305106722832802951629681002598331368635946531956195977656291934721267897220795383495537340755829955144880422860602578918377902986828228622058750850487991034512152980390640046200628112873131502584526065027590539468170666649910223987250843375824856607629590772500699972905354640049793660250700839914945091037417587721657071701822966160963482873476991735205036538297605235192930549214604034792840230968546445777486515708553752427516098399034597287128472690900833122764646662991124914231145412024070436918445618827964577395130466013482050087342103858988354716109287137948671181489109250217676187479503324032548330506330796726536997003961150907059112561865502931077325191720741191854811232957420722052676314932783532213297745409142206920302180374400193148505622708782245996730819199306410848955868104121065308417526920941159693354013690472106396624347042521051967714931400538837804351898730276183087112715689746398332535331003777217239917509063051434635488217587178450990806377961775424923190835744392774869450715740253436563691293749524725382139968390695675661762772001516607613351853745667240081511357826656728321795704728534701327553407651950863717136678540247684741919953237828809538022988606969823134191716342180456357309849490272752331684927799810169375821297074404478618379565790251174741037493163034831733540890123672249255818578154293917679897211801085599810201861665540993241614580075559150932305123798616966590233016626350724791054725614245049245636978922380434911574168776060659189312820517613421733295554265421485558797214524894335839648476004778437735585759903666704340787843241440927162516153696316280890728552082300856419712596851653124753692235134851437980719676992531682047991481092541746022044218897975454140149126970659822407925332443052136248754534274750307534713596014846513660909722646891558531681711595892850059822102931158716674443186470386637453790468120469969675465550146050984748681918668333758628278017399979498686526700283947843847378502465048526973565634445947484166828780697422320835969473563807041421482262501798013627040594604445177894764959282448074719405735306419262573331988612599634830063723970726487531063859150823327972261751581131570272124492490546798180373338443691064496549637204461539286115432821246917921068765237995469543202932483550673891654489806043394285952859414964576580804206708388179968629572153742311295696046134407739909480896991401659831275512492339514145873073174888771492438296589756117571579895903173810629140289769430602592562333723510461495772355394748796722014415829807741063029206627222777981479402645433813812236474832888579011041097207527001090539343001465798452433875428523893887379609251562393680281426998691054068111642726125028099211659550224936674621244835486122083750336324677364043807038632074956073356774843854758442560316976070231857748818808347324550931904712850654559877156619732073324369031831280684151453807810402391980173259898458715908721914432186410469762874999743719217102174661916410974724583112483465503009101557860415253556289230874060376982095835557837007512672118048481983104976460006455878653042802833408215400158109038706078419123132797372857437931038806694415925293712654749404449347414034144725891169808912136738426621935023201811279645308509130086954370647510190363738262721480449639949620016922262976063073251108766078104742611347107864010508244241818311984575534248581098444668079350309021097026591183973268178417983086409926069450900025152413052226843014965077071572142417588065211719909687867650958123199574524253284630102014328671649207523823302559650098175058831677254298391888311490513372596997336002609747816136230685833542295313157301402920236472145833324589263494243305816100876394561512798035495565394562505047965936569364530253773252915518095075810563379053213710941857137949753430398002692447386384842886236136019838865557957274992723993867875469217985352921697738015940221464316799039973569842057723466497404121126082510401219458500338245530811756773179713716867761224648262836499492671922181869670360189413678473759780699993391407960266859540563919759056625586824874998548191475921339999812918008003441611270875201746585839281303249125142324391999974627609432805389144757720337478064930950723988600946607329566436314739638359861080044942822956286247196409604674749885118005610311974047744009843926790890696973878411219672834395060277507575423984221394238161905471270782974193740406891586629190600312146170494233166992988920006590518971051719693580893267697309831486038107692870161733183810591500523929856506828620503837402204320636853020793985815785845289449133323087078762711889288887800922328841566831619036653845142547113607320223907921692279921623142818097677299194576155133874237420814002497930859830757085182916959681568621791367307516418183092288538794807054999377400291000587544375055717873067205221663484967138814064641200763944499886135729167490126321951375318689552469153565475613694059907007338469226050053650275683625127235540275985537737372439702846106562805545156910356460753014952815187876751356020480089819439842154710757729687325808887827851463378234914388887804939288035936210163022711537928186652096271600767864349350802577537902028250531252142705154043163209149888905290009005057370859334537808796985527939624970372545432666207522241952686468427679219147440394351979578240880555326088880255669944325539857538277408979657886247511350505255934961616688535975622303743762331216447515791418398387971962369448070457567452598593521669357003876649954069711183154608325521977605675863979291286487937195328300778787748720503678858151557879380387405806136938425670398126660993255695860943137795901742004687386442870023782221597102250943134865655004776517228989719597668537684971348651108938171344125414419951292924531385234880442093110296430589337550389994586826102677694771588934341189875217230661768313186644232547937208199704869664958064077651808526564166173163163170298038317022188132803045502752935492116347101728716512033432529005475271500426508861946065358287605798391030545219381194507593183772290938791092648106086229460784845491914451177618625078821321754212984759274784160649004945567322874974953717149053303740750382899473266761073752425399875663091020179770923631996232729193835032473772472472068982878916072183007850560433734327577966225154226403037922610558487260152412129376946774274245543903422866297458008590057389626801326725854543774510633538397713312302676369897485443946938546655464335675842421137520932277762288544329985422107420555073750861496851015458731241142616171172210808674842484830827165966913134034958081299334493967868276199282762645882526684378743052295037260062359692173529911985680256461417795977433159654401135217597585928533819390058895745831276887454752198350216662912667388018479286561952796371022912875549573349279231904281403389441681999838743534035474897385894310248501179592630069073329118778336720251177720182297255622357270117207707773349683002626153888971099457837262477585567824980008600237579228615529809589380362182870298546543580817921633707595221878383246136901628247519652303631436065952861670975272811417137461586586709897573085900213308618035031157609246743754180858102699138484394996849744661610762032147378626773039976472386032614368941955854440572804810152481118457494598209377152105669844913808115179799664285639239588001378810709399538243181658109360420443077997261170298533782533895113496586803455789179181055268170524352971708868769422609638623176444120391503787717390745668036769988063498395478212180634952890560567186348586121883432802966410715612653554891860553138513138839831739925766188724201684035355256011757140530552484907384583891878640386359671471162776809196159084240021481683802509114516133999156504095473552486272237657403072328027717604729015432443006971884670985026032695087069023296522970605723000733964782168973292913987454558686335884971806176238802477870101062831283727087363780792780633212477340689913148915034842274714503408965629075260399141210828732475565416379351921839798178389837319161811189415821443354033947199076960981055666084344614405164367402129812041466147529690859238270662518089169390476236085519564290375354900271100548458236637657277243880554450167529349026045860098047526276046475329953245532586200797737760197484092389815179130961155864714189693785958239300599079919931372863458850645441516748473649509648951027591197079594475175864107147348668775530798475732727323640280654727680509308502426963719107921075235688551993345712967235726211335340955825269637534587589006124427262647429295467246857550918163810821919432477889757715423819402384987641605597383146788887638961311055803628086051828874658082081232173403749476747217224451284402675953575595317830673587449665063269786753120563392255269504171152823036509223700532267240503603637759532820991059014180997069234705758958906256164217074346564544038007146175258750033688487727277606707825986490643476646351103115969721225022527494603938720202489186048701442147998043684243796734267456234928143081501035074282973145546547428301956559459495965197454837589057890835287539237187273106222678025797243739700475786987931423999260871416393223984431480837128591920937604487243678868523904952865393600565281707166505942026869109168405767476931570552107315195994659340562941901853963150945337085145055080782868470597131447665529313229765289914873613732454562479208538644479475147443059888767260552304903430036623238858565912980284463371263036613416160228852773043615047000519470688127005238116651990116739196582200288660251667568911656568033072521093123821989486372393346191592760194052058384266380592349412081581080904110764651338318298223906610908745133875625361818541718352627483171856819488218499151395643627708911978304891241021628959649876149996253216054543155491645555713613099525426855092144332698614450014663804361439323614168973532959616939647510608938343780813932342839315965310075445338412307208570266321617983746584990775413619871823071703484561470955893059516534933260848494043217099723207420440704455989592537040055045536424418261178118988396829955378922379855584904173087621840730215656605323821786372757459329262840442894230481784458943257803980176126166016718232011933545432774626462681627410129629666324524870607698391527255285095183040961863129789218295248985088658568826119448382986188271480325645177069741138940659516113736223311338976037180637729738626438539934968648119781316940162137935356421841914374019134577789717550858869232101901522379625277242519219849029795469371835684658446381368919452214372663958462024327385297062767980777232605949805861219712517576330956720508153679172905952517208168436300501065595530876481084982494329756659873967074291317152242659527838818468807768209000832937226478066048592153199640436537147159586564777765936026753400157538255923222544758607360466146319179319256140067996466730034298305651975983143784358175302940755443498697594923817094814787151913116484274068719757467708353189959937488623969297485549977010902429284829615180767820209380176990121416202368438460861257847973090290048786409522289220215261516335305390980918126125699028027264129616818592242724346252692156213755542394286930469407789301237878426484641569703674023155414094051325003416751207334732601076382965221797555251108763740721997748130863414978160639304119155541187425645772822666124370502801502053389320144407620730946678655227141452289304976566555313017767630268055135277518825569453892897586420808169469600003689046531567500622573401715942587200840831003672331624645792202277852236940195435547913221275519567889753793624666285304253144556174505190017633861691291815961226743966884041792749337940344596863385597270019954800280726615951378808876691198487652797477571570260750156111108219239151557238259294374670208730164995544718894041854131402208471327563771303452459070740950842004028391691469221864750353965220340747514697758170730283699423009885412779106474124397016433020083564812343659156027271863898348680026526873113708393389709004431065454390620776080708730836272323919827066511383032944055986107716021894978399548016417044674725233845403342713020274894180035313060789595142088684631684182996537192001189647515009018478417877127604342884518396424123725862287392225737159019294763566594231629651611058478462495485877922737559886493609524416182789610911283239283010482505910798289175176001730841718945029452973711847481822233672583778550153056351403605639842891579680461832644335054758479192811283348211244053771035828248165653524492624684598905235862480092669792288093880158646555652363395802033171274010857546710591532799974576257471260546742297945182166773265384203779892797495664046795927816845048189689065310265266179320113108962941608925702171981740182919771404562459131535379668742656154676692721666694401596630995052623576040465077445502604210308283222868762190773519201838397151804825812827247006639543372368825997642134106823852068322155401664095997990944829748045742488430172155782287473350575254675836423391240521560694871964127343437966183405958271022223613286503185168003640246406970598115180666573638026384180032269827422476119947822496625145281599186412723186721440025725452195467568350846290095981338725147562404397317974776240276902884871045155248551547768755942682300450137626723017451351486861061450603828896498194413364907103360387729275232967886865187807937148965109001614143950956699033809246739458018334746356710081428597277502300887150892746638913800851365918415325101748147556574051702491992456425262324894240472127933998246109984759534059074577159356606589441377378502034259884521414841883175945768364447297586919041380781613432522077168291226464485388021187103070812001926145161414219247146021366612746102597820739948272593345608514708661639968262277214921847607217547589588244024589515868018000098712117831239649679336844532312934969473167258033224562996689455878787912933735563889427929414782463961317953210915563558021396296981136645162543785789332018577268782402372722817461858875095434880120530182191679882444753615852903241488739027111926340581513879834054975411257556571151206071802034247810590851424196516794203946004677753920905098749721882583870046138507172819215615230530593192962311826351353141458013199160545669596970568360569854743390111959993499315266437593623676310735194103314335615689567351861499079895751001438270444551004750470879625239138130915969932893198819751973259260712549832050284346113668029080254586842073666103366415294320129433065812958608757895698069605842238967099056552982275279689133381793755758208928722064004919814282804326876723732765064068990833214896215720966562560542227044036612158722048104695207596049329086182805906718776216552123655878577577998763324019633368590952960680916030906523625958284980480347602355087078118402023077826504325071492619934893311764473513442067827344742508878350429709871248891604689570541574069305132659842083448208256116680438892935290301853080159303598473067196683745803699657198663565145761289426797074920750009226894597446798563721619991759609305171737771504351039095849889741024344000909417361627341575755742507771509336835036887474768070222171340046489887671809912250422446144364129660402288077965315344150327279457188917543563441709277539257239382313896761285146741153494224064366013381763883129596025645972211462001468483559748529477641452440779951810437995156124930487407381299640585267202650277084281463133036139302912086411060528922756887296178036381241441290560990141123910804083867558468972188734678836374727762333542579027236755338908957096385417299151376369734126778954152877597353261643602125298794789227005997396275423538211175151122445321144339151981983540839999047676030165307395718638015725394627851904115435616044519696072574316511686202086168887280674299530109111258424262346899609130883383173937411287378091941917527056642726292446094758703476161063313018303795446854717769046523820727706492011385378853188064910020783292122906520877260431973465641557315084172318377518226495053562081886225007643636463262638420878879295695252731215377440678385811429043463265174700415909456158627496524355786028014744440380324250216827769264924131971727558801324242914829542696009610503488216483132479499871187888593916760470628693673510411293230215773592458610621989853650136809786747992605702748136230678498658482936251676472788980551640755684321089736792169836749654215638329722048609839281242701618527503040772512406135471204065246940088457211037549289250656857127831669079180717487923275499233578362335387606137958777048155879843542464909203445543249292460121761605644087380988624405424070229259932726033898293337528340083478386131927919321844297153383633748139688594632182991962868054045987534345499754871104152538687996747806859647627885103519742407865061052463327797126591245043885244212120546331478878133142185640542141968217593932179840654576607545594589692131161571033135948935566055676261584309053473928967122967815518349158292294772100268149083636839226637269404192720415024486053988228493423694996453009441927305060605949043432298164648385848331081784233970724163779085590414249564901978824086707994353194624393657095711367980355891307461813271272784711803557204102948947829883214861785661392658186880960719057903170252801805615888555283866458553571449418383364027860991504479575078345016976834110313336502348423454383410598748364619322149836559148836889820975604723215650261358428585178428732665429000286191727534829015095529224832505811988714143857013094494814869185803293333711289241878228618371886683034206596736975369755612543966861387660071081148603055687500938525186284865919517016093503564271693564190139029678163101167611974351109694293642958330843837501631230449668583528885734942793339775607816558813266746766228602497319073252940568964962941870068214972119897031448208414816279502864920594330725568665054845892170581500428764926861291405805304924899156076556329759635630205104379658797783895193507721111005588370124360794482270676884778741756722186318741400672584772660774611907961489936323380733451921878881572850598686246494418970773854349310818481527203084341172029915771654287500414586970405675804506047335773063996230652258253057176191224127284787996891842110194082562770524296436568514545270316138831137801610189588415348113067511669083407807999123905736577749239538319807285402751881621879492118704916918380334265392501740076507678910439959546432776770874585578161591031034722326963030297567210251563419151992473763802842006866278836946034492492185947420537003943392071857398937445166824585253358221832347938940559926394182756160914680247127848590273269088167042875692598609781247002832037499365714768858276142293294796991408555519123981855277791223052294457226088466470889859362620401066352606166326702606826736395718410042908813298739087264823241790186987179941320611731625894407210994723501986120617156108241395207071759153378480992634949845158524739014125891190732911088797075907473244728707146547668267306391808061924096777902040529221556699654001985441792994253115553297721926514596310749393585762387981384222156004680931019788929022323394477955354334999144605703183040001483623182288209162004483532609951538293608930144723006932549122351234859925518157503536142787115674075908320404116783278234796497392161592118837489607939422335975517702944597730102140317087240252884907914084096643467894303342205209332844700809680560598722447136511667212277187551586199139072337526421682086669326330529940118612803320240323837227751308264859789133405436239351341180424294969319780442273678658638850590404627929957705143639804473159752023451351555128349984596726396696869765495743276166348740598615331846851728063102743522319519760596851108187085401572768923053285539230420432052820455558136295793591376397322522946912865267963805343463639577311073392297511775525567032449770857326414182302927409703054472275049586911878843652759449433696093253996141039782392840194862260404454543865250763374592546617887544825368135815918818148143863622798275935183830844516430305527873251465958795811383276557564095385761604892030564369472083050358849689769039822851256179576440430817952772444781064763838470127534114505604187887768136348635200662774996400296819191603932144423061880651860119844782569563812354247969729489672706427779391557650708815869220025072830051704396547045885928052115218435418576051681062121703715664593476383308831530949901601922758681359201955270900859757983826974484014408023530947099869708718498466855921800389975163535443479320639953723489950968411102015389711994794963809317077962416504025613167354089977208989902448575391660209611923142594411392740771399525268880428823619295513338216732260490182653648007702993126027930342775842108112208357266434440435384946899466642817515151891805490164175401153914549660758563350103061437093583897510210512012660551916289892914040067612075916799986430827791380483386740782676294969069090590017657702705184741471200093527094442288909335259637090971692785995863724614862320922690363605684332099186032782149147600860536718638811936242111957282639593331217163152600533652873302816012246320163570892277635525970533844507303405136432146692951892706291459870810904356802436523956695430732167054099960857121707558441286144841947118039930258051211810069949668264950616713891183417796718477176578224772719317710982608595034434539453363429287567802650124955752280435636260192598405934433556160699403255396291513470489840863648629750155033027501573548247834598514355382964061254796620669540366528991385055331992579623371603839503697137641202677197163045667520782419565861940967937003685113406465680482557272101828051314765731055423236552053675050648423154834933918096268073058928284069012759041201281474302982387446563247571258318156627020349448160118939634758611832355507249301372748377894737988791045422980446747329807305608442583804407137840843247313316894200173201807227501871115291905864030913518366808072538548397464971765951959770338205972949843816371161441291900635811271040617021097166110670880477943870436744968147603329189722906725541732249224155293323087851370673286219053993800774386288953663953396813747297138844518287042977597685651424999728162745480181926331061605232991309774902758867369568706922626168698059891365224526537016230384227452260256125898866443120310937145504185578774832218294641706881251923414655475427511810738224914263798918722550850784017978920909881467991554609745566681989059908604278657256184531786604797015662807380242221365000320773624430888897604505366853924918766484596286696151762872682459328216426237284237275250887288811150389423826151449824925979724195691488285593417097638077746136257447120106801639719783471909774137315194273849537651448313992304639866423810570275797102706371134434144582019073723744100100633111409597332876960357781338229956467023421641995297481290407428615773189331810999752332664104910242079410979741763577536971533520697590799934113908912365352554578971903957908942385469069281597924135096270912231082873810734920763614973009630866482996494017281855205466721610187129062529999629793419371708968251513316996934905817751849228304644517967523449550370676037725482409346205036094888570203902863935556223151154573803406736090049641518044682552021511149975677264468291513509396759101566646528500747003130873632815732265691411969704357161799789007982162921880418729629604071169921125788939818916693958393853565389568811321009076435584449759341572529882487164034202334980007807515105165318763648713139058616579531402527459832814575747310600365150387547570013666959344337541915002528547456468263121545749678259147977602290317381505957899813408870559699156930328213879186956258785535912361448105221629934633597116506205057686311642669239769470724958101069918337804502584562952552906173537966075988344523713356390664011686491938449893819638574367622147034232392584355738264501095224344947490637651143811808803717738990441051821585527890541530595967208335618136719435622834595565834509611457536808073318417817309445544239229190747811219489754682882867492889771538290536403225841024175899718879218342414649702529641762538962094942102480985416918075386543948283270759504511906030148826085283104002121095286425922436063905865166112087410681864015909709184931737484915247916085818294030253781109802525982917515649049057512516594789643022385090523417853052076833158467984132880175264158357903182332637031139059243338825962972484954369267676573067156317789903775381689439035273446113124129531488100699368009560129886938269396946411890296902759182581472670868809460887669293061236064846908060495485347310553962005952930773585691596776332642978953055372771946414049412026197813561598703226126959451912943026800879155140930197345750398107956217480063708077124376416339213939874460971488330790912574528197753321960483055527069101303160995730226940668372062666889417042079199432464075111682314837666664362979424031482241977122114059774004568286091558155240695404727269865290825601316678791079027523948087326145176544108884527076260979630652579516198089703558874533191237938450017321570750481345521738724999485044149933182858507682340462631444923615066089507198133957854303872261878808900710990061393159405401889649278204743895245939965532563669693655721044339278691286584100925770013796294058111317972951755610288988941663725912530777225534908120725365425711328924888866340034632154843106382224597483547785704486638680726044003731516669936500569301073466491828395338639191973021979506186608336889002041770442671132956485089180117487137723215201968064373888270557639707087507433187544597090547404614385641219146130013729327576089856436704202008895745820842781523180984090207834129151178351802690585860059811442475711586155426998430144194537455339385067997036878393139874368200064719573027913629821715747746973635946199812443449912978142395162688409109129164243209238979923098154734304552233752319563289921160034120346663302754648381411734055647492780974853660646797942880369221670258616171490825336808084989196372035771567154758022847766819874228495977524162646741385807914952267628433190801734544764512131249865305219413440368916789542546168759470507344989522375241409835807959205650291978083544180347793851782248710370510703815622996633632353938843545451330309840655745669962295649468601633665009337054508630733636008697533250526169494560399268927290887398017874989704698782914793904530705691514410878414470242954351201626509285509192922057103311383097176639264029084599599642171773510434462405269847856817688057892916294051915183798184527800505381778476385247805393785070298513784633643205801053296827724763229295680484958843420697019827815678446988606436959934227749299032274186968214847093460368235017419166903677008919838554779843532904365638163476052022160014352480788618767932860058953697987480866874339864901881417512882402198930379373988490160249667490454965034488638316371323164363474522215679655589554899878576185812049386537092378273356079495480525258282581909759935580497925454539013785672950535427861520875864845404566070088542444827060061143906098829701037503746209915318257706536196050796908522352245068196106374298623759660550022371399784927407210078758177567234501260370961892571550033241541503096490838742674037715137728521815398067058198961964821765115344658035200943481680641973001940409361868678310135154589427121989476860784873792549167393538102941612969946165334355770706479831749671943445405248024610381217684421697423280446053882201953871255160310249893543175339178841362154643992748418940856947909404254147797122852894329984224588246043463278299163376302257783787271815900602185131036942624620633148979087873239522449510509117485427653863112631998030226539923951680005818643012318705204697007488820331969360769876061169208185245172883379951133511512223763475929632515322289315536909151736419518027118704681426070562370044571724421214135682295454386375493849345430861808512665459568870015811837571867511940049107409040229755046960761936670005972825750820119235858358569265752521844162053114347894937281957592550230404707551005939614723832061198278283989454538335687127380086202049835190601318535577760585122694968345722967044818255614190484891537240468859532698858217866391782083564974047886380287128348432626003415492391209182210795635123079018866191697908505425245584883511088326948266636412435228330609702986246016443759529519883899779050004898502080382553686225393063981987919961884946101641937794387965182981296468321592600950653435567516423977854702719320562313230110707985373364303936216903363781285434610710264538878472396345869945549052190766979519449770925252897795047019021883561098865167434894766880343180830518375632106884769723238044848494565250589725567998243419820252771937782948749251185070889959983155976520205970807829151706303677838403511655987066263389791428319372673654692779613069195632436755256378357555352592729951108405225316898627452498798963711698972602326654544775605584896085499576040832551701749765516547713276330359301631476955427348632032095118926735470118848923691294364450509879251973940889168225542056080464936745738368759830254425311653354056814755601813278888978039078682650591706476552521046102074192584555368530249744910779226079379373293920837119363888933077894607923283300536763588423932424739865134938594530560881804640275301045390969098871593890221635863156334862687570524919861300290617468062847854782158621198967970273582235040884350727061238393086233238573865202677762911492970652026330511203736201877536347774976311564566453134795453958427829126184789344957077903578859951347638638749301129700081742972543738225929130452396396960159431127205516058041789261913023188397325444880695755080528931638931528691258584932850574528784863601238465457111044007284270038581571085441126565310741748772578233479440877822515683860493101471181406611293787799507328516633796432718741004962242411600679028629283507982399469522895165170972700083233495704115849123514001767980996492936013093240612396435103740155727760845715410435606873141238457257006087669346533096714132160434479662135243428260786271953526476889900897539082440719914714987390464169594177203647703627589652488572716661920871149152547230626701445718289861871384737878027310241059390754007763116121542017716752903134471164040227905024568981495724103322604874329851959353567032978559418962904776765089798886082490329293791874279623787037964622204780194999926452615278502544324510488812939859658643526860560205778982893458355113620038094063648136742984242364120695268695679745477655961440630534551351270044705721125974916345379940095595684507338741224211591812887018956802435273031466991472780170689132457507665304920550283021502500047496451180585925153763754126637815995635540523705666479105873071414630265136640635337290589054727824787095063760118622121490312993234325108786568943518439255081925942828925764198659670273809019878404762067098136227646115654709544036980343494348103022461101903654188473628510925125468334200923578670673559318885277226547853863298192941183425058791617194827670020486296211264654708499306626319153740971484888900579412781052789144375551956163078081648039402833724410260476674036449286572866971132106401423212420697718611684526147977834022077413803422638951276217784849875114141411861138491831845327196509973044408911161404129599093230020911372329896633298995826516001895073519445883197142678270948581329204154219019923808089312627090549023215018516535931160728998495217742510665122639555218038217646071883150124401576262670831088296381333072769383787320184744085689741283559842007844798675793404375855460924115366532953617755708962896404948825388569188171295995175483933448581694316887362371396867387368319883292342166710323415127324941859894335369644225235097320155377618001627247920450727799609900240220785150028777904907756504073178631863397606581777485281582173293134945862937653746491845496125488523637274541027935750755632797907000980165580648368868629118836194067167175250748726191899273584564000618679283151795387143973007829832392358931034617730835364632791842373685345479384886062414900918508171981126366819738511693712330436920977187029557571863373823586255707692532793230229022370732331925228163619082680455928482565603082618711679157950294984617563440237533677943510378186497482845060027681642470683006437125910701336050479874761275008557055445198861860880214937809095369970270634339516823164301619289702490419973030268506098340024474453761106510021915034806981864767889543570486718827448854356651070839719908406977495772889650360597747639379534108108431466091541406791563871581852699615462148274891056039154558090626769921798245616986687708415109685118935482536597967901031770537028492749229096178491048430375197145381919658318471216175488537296323174947256425075495229665965562148470263295130442603953169203379957204783356743640117818953410050887984451932412502073319492510688996236405663976358724561228616719514254842881546116171337236503067550165298759363585299341377569601054979845507876845649634365841740057526329499646958768660698302349359395345708051086969512110888533711455018997544512835582030483743231492094729128302116321976690281115759530715800664206139389159977840610535136359461173348502204235313779471706649730454480638241316016875370270111664341340629694206298817281640438687910682863554113297041347330992545762870532696273796966048056845823494186034668008350139280478782712897049907719492358483914761915448452229021611515457969265336182986545506886016829278383864563233241699191799070209677865703866132862697187775615991749212969623446117937143078406395948438233608042488896497304220551733828005920407920880488195752722852543416138358805962299671612028636130301864813532701923863986711357419605224971403788719665976326336162833006572456160194965562134965669940232069678256381988445558504797580635986265485755492611332786731513884378946417439109333323664587795146764480565960315269381483495111448856802656209550419780601469773453372562816058227245986082867630389579679063398180722732476680159880653648646776508288490069661081014329506586146684748408300433194912863470501159962361285946358067567781387516395866818995122965782879830489758090648293675315604390520933876612568344678262453484983328987229817837204324641863065580230300583994512454715889449466022811891912699801525871917786171296276892812967036975936487993329317069111097343016959133730335941146521890971507414734007855791985643343952022083231662982993138516076812757396803448998752787712786609869620279306763320402947844543655855890286686856275348461310035934600468754591754990473267336588175876354325776748596505920668612985888311710673040612132519013400041257984501283897661121781536622112527722176011738966236167455922746597642460358521680607913038570050482041395017604516006737999904431549255312963580851636935712092394693061206759782707549561648116202179674825051619850740561849639709042738241822661879750978466879480502366477387300370362238245376951229282718779954016640969437606991538069553525725643000881807886978684810482069254500928945347589074687833455246434137487675160738745019613186690453369220185102446950844043410130100373239765196521066832285409082919012988544416789172922515026135160159521161186633309416927381410254928981101492013239765411498072275458557170361047322436227176939828534393582057792134036292354334034015500091784573430727355457034420287114064609794956768942479518801145380104754466489502838006207959615383696206910383345006646678812549671781011010870083707178388596223304871615006084267047661193774115203661884537585334655222570851086474178715519793397844018942904147176820640516783108434501954460010635757774458855491748291792226171613139824907321285546782010494198995589516496277841956739452269249387845718273278391659625818224862049446286205863131889285101458724359125431640535974853848793725110013350474023950706668271513946884258029092843823440473083717142580333987384530404396809494114009095225078447179528674221490155725046524953156392110857945065865226452396879550832765419602340270142660256313949690701286726547291471275713107724305648692845142117004489116371447695487232350512240419852594685651988263663909150940537590181657940554105727985616530506881475445061357454866086394965381592866528344196892567769518324940234612860431240817926056051748650529374882644478390365476793972640268856576585178304323595631882926674786116359416312480065889620876248447448895175554394556752631920236410879639610869401223430447672696335897687609512692075246726906956838264474178676035074076273441923158224249442568016097937286785225292094791756642573945298494195940502414477634444724249603572948126102560796260030124706323288998278665426297565681506916059738351541101296772007996764750534645800365522416437820201085132879163378051776151525630660645541065004245091891634878957157902845817129793294234048649904774781774047292039399471879165628758694387476020343625290122733185536115264370958520688282204817654506374287662397972278509866013445073274420698994612628852613512613275307819153946538649628282190303772364566636035429999963451752587137064479869711717578948807454933911037391521778509465692248542623789355588039468632043180255403088362273781746055191530561782367362634611950131650316657724852091781578240785301981434694873151487169585432433734775137207400624407850586777637316499209309333799446709980796401264000639377236415214052565105361656596257140752230393986579535442967924746469481758899258447169188941316462558568534463210925956502159242660142126993025585959634944679265987320986712915533943836653698945011702341493581349481986627003513394611472335230471958590512705500714768969154481116146002108037907346029149517287752309557166275384580197707693090298421767368536664704310179409161068621819788053466180145541014243286642781248303576880172492444663035967744519215525026779565484412472976865116351390314710480532184934903606713600282183821376664259269459678237292312888253360878277545354234618157886834295133967329513000161114739475229722003413913121451439982080190576017298886191791455717539480811290783394329863097359375029894565201697923653783966493360719243540077985625772031678465222460974445489914359480753553166282500575302242506036828892150062079064146142457062855688610516398609183031785934799771237473430302392851889205854462289643145840554090081660381551767163789470407442983346445831756803579325787619551227861701896517164179517677389981074942228626198026783382317636790918389974597104072782921508231590640005936703376799668362506038484935430008452672549075566138561296783300960183150624323437858311392178733519315952090100114688023479621648051681790791100456274987405956369479108412489544875318133440287054819743108077634851039702718315035287087910826490899481674197860979219402256128167207061000406623314072734534633868113525592302457410992660422329120900958103616920894375245232308282098690868054753707506943275198919275932691798774397786477723359938086720017657165537237339122374604189713039511854375808656888490135935351098036851223741226336018933906922352632703411075202666998871547947498183489696518928297784508745486174312790607407294294159580753075150545808090633887229218626799813117218688061841761551135086765575571109833354759915633583730609980834183412763816261960579309734379936055000714424063688320299340206137864908998816922846687357681283565869624735429033523239303999984218971934777826636018985012493588319570880176541061329197684113475931653036307828148087969724915028032112329844474729741898262181947515139642988453445143791501686683310914482036361803435885845513983333256647084905850210822250310688290336848121980685334603617122317741028641570527138162391761506800794593598647203970774832319693728209553251794686935872626171304897803694401287484284000312086486928730633317692107435336452084286310147186211655450108434295073461482081557265426450392940240756708078279655395930776203912249572970758807999256567865744972275484843322230637816748436994724885196894211779568405447993726407080770507665495377739518549453374156055012916514074623065447195898914765859339438126698751662394745440647968121190572331272186348312982683765926040209297778930130891508908079314661750381664062528688162784793436003247375666771556445406854765713078596421680888756187255543244800229184157751997684973925008193235793874842165089293233980408461728377208133448711173742963831780805423184850153506713877010142959015485226299123803474974107734874911738551680084252069167828635778026515931594798303413595295131076418787581525428832117372614687215502525623291738323596810433531736193921466947994719712765448572154586881668475070916092494296991738571207891948074990555054714647392729102096589151563211339757464161289852597460644853662982452552041652031309863412079614170660350336906724849685148038630740265995952472374606960585788043308689419002218665592389424065625753049385749968817661336248552118125776661472592079450245196535551538723869232447988800890645711614661753869987065072526925721075054421108507222107255846392819111398937076610824198662112798263912049804152515266636324960704051621479637251370342531950365150808920722098206693185971735499905142690251096772735989583934392263976365046674972434483626457260573516471977644995534710291509349279911167105995517148871187796848116106769464164304435031196139927639986901396606203359029443481213946362018306920303956589643568575623684595281956848615222570999449039429702022424287342622238872774972400261484794983086486322491388042573753868591738245574620878795652855973409663816757462880000364983075027746086483346334211922480663624789973660597219900331223977919074068257639018846352517009660278888839242580541687008068271872651276106208874338021948808898217706537164910962867777582150961683685102672916222606173777914019649036886923357414122385290131012162566399702260725238899038602145446442385912847922674137649097348163676216785561141023999056912054215142746481497403659116921565137126211521076625437088027989647442030914017272259557736040501626864358511298905467140707214788100818035179574364880445867215065799948755748749007995149790319626583905938168275185553519688376017311165128853275415592107012703036365906145320974661045054049367707177412007489605637588073617231581730718735672310199289994868443624837585687789449569910884917474347693344351507031802421543715430815306321145324640186872438320531745900484238858914582127140206451586122738493807079318460266441714487666653878320451667142643266424994109905927351209942947177106510102534762528892143866985556368142955941152994375540397694105685129205471861181475772847814272744495916295656783191296799768755194125324505767278389270722157967231733619486734789568108583751564706564836587139659221410588338990583161929426372722205316959021163148758488676975153486241379487189792148918461001729121116636131761888078616482842969959890772537781603379458699282085721374928677000738787635062210803127490472289907500673688641532588594220105181901272179731863553739265700879803740347459044261824587392000911554154776741881181152891175909424787672941671326539271112870160101560541277515921652878964947651819927344915477772359661242848525134980114154404112877533047119905077946573624216702827666798328497719019673151903861993181505840705992661872166814678797618546687239255117301302091591430273299059051791175738958228488988978441716214633095736402132178485262833622016610284469469129740161284587722444381158472285917073355749097758293355481558862301621837171219848208637350292710965897499057562490393190312733434408152226737703252118757307642864725744869133874973689155112414712878504468666914130601709799902004311547298012550020303014346987920142386587606003147164277460236467563308851670737714633639565481097607147222771575572857864469933454872842882557600924085090534369344946252852067778407649010238788003980291957578271985362569414190067529957377266733054990718767785088261213053251083390746778558939871986416568568824294804503086210173588454985832984164358969026945259832741874772090021386189492923063288321102924980388135673414612252962720998251180126324404011935306959568930860934385483558040085332628218082315758062312232072778261336294134464144392559973860843657992199405133927350394225001060131279139452866491840964631503128403879381371370119924233793669218843019885258204879491896867826651943215862269538872239652369306886998953784472898983398911296474954034878780789186360563484981020440321488488759657335423319070658828544795952668585269666252991206084674489115809677656532014610288629081625469490513079397823124903217302539674329992098909854890334684073827861005787317431494518053651402206695577684680356680496211130905213119337876080431458737049446190595621775746799423148381961653175014630093301761964272778408170090607931277069505856724994832622450262038018130357309545126601716612469385692396349646099987372539054851025759200486725517472066063309385388659813193623262715509307080262910432778054623068012275568315746820216109096931498383222043769089691899081410186798186929040146005768812335732254300375819321092670762692664612517914658910073818878855464392076955589570862752516543748085715515939421759046493466323214978851081072689501497156917975922544909767239266371347458286723134251581870921648400133082685909539794371682202780933689897255953689399224654689612839820447111616230962329818395472187834671500250328742970646446841173292171397213034070215703442094432398933193189047980739542863268102138535827993792311550817555160576261167836315069737896234583230423087301842223848705546092500794454216565245344137702248406307113041730564658454592194771718224716728479690942826892839502301492976263926519941957106643441116071184228175800890672658382142775860965032753705851920944692863397638695363670016026426230555672231722996346360082392595322914259826632233854918912567355940813361583095725901225761902996281837662250092985706769880132239852697247654977522730799994316425979365882648665883752621717446533537811070235453312337728569697437538109490263964468399435498175235631444809152835050983057946976931715422562912378719600892786898305670321658704658843024173989076958062657030123719172738098547118971977205301678336736637913762637963326517914453030568310330581547243028679090506106057996365526865525392594955998012028244925079352615878390118627385721678392267189201643439583898300076637638709127979965865742610093031239708386528339449131025575954748093097830206089301465911442199590881250270562507706179984104616882146044363750784708320290061988365358598949967821841641580128623528451840826601536210952344133782841550611523105273715723387096336521658794601200160063512870500146789608315848621612450744581983258341908893150974326783194561381292437854490478525357354450829309262644012428191112553799829993844602088954610691606021652712562872324023575024854425241385840681111116281691678233116535032438284474348690345356006074629447633114702159130011105020923669214111817007269624978831151645540085102038902018104941678590555667397017810797751362294267340432312489911764008838206865266421993567000426245246738788984682556301309322381246048462108665087215560645502471669602874342021515227891343908912686439611682739318819596283709605087079970461934916256343225123140495064916053426982436394430222789106174473064734378304243713501521624502850424086071164942237800194142041196099383717626627187304909549944091762616954133693055931590849812382774831722393923693815151117756157948817403357777550564361094402872084807447597435711913613175491546940310179273273097872343654291161565058718125605248215421409329149355273992047815531298989640604075589617600620860448895305242202099085493001563756665104938487721943527889449582296696278551708361032218876251181953964928857905218863783682385777182571211711284919512969824356774907671760485701708713907670806678096355115750999597182846679905854564564194120206880869367209888503230989718905630487862913182972480834733739453640377852500117244953313572201723112380910022409370758231605830652544366192357471556926754660301902048506040749754058407306023636507357716318719031387878516791391331400625911387243294489989115132082779595157877411613618822770524291394368529448269627310916543810393458808306367587133675309404324672167437003726564074326089516624186573130087574379182964475084771554375527101470930531657167030501987441785628923535917251660676641799717829724805536336327337588555610955655809567910285602605492487062550494318440152454758605342318328298413204646950784594039357755139302457185645792465688121671433009061715016355181542385830136192780527212727013435856995879530582065739525466288644711494308143511471019967754207528912887698463214660997609095680280409112878395037952363557945792878479159593178176798600867182759949000983380467010590311864147814715086839740324429813098390846137297029369734334281905242690708550002913512374248785339460672970798995378158878508416498428147875011485233829068430033421062319112287496238661947759439606021557848271193773627768105084059922825530070627344568556458687431482636218365562724306700882973686943836755978455840975405773814981053327198160049273545373719357124681878092589259284134183836940542692482187262597611795186202660193459578470161571843520661033913817652201144598901846693838315037003126381116551531177549830985849169617049086526266959775677726151256715112723463101330210246621636055319912385422181202763384507724492036853873462183295143556687887427038245832748224800828081433684707212811992677151769003785563793781638488181567693983954642244857738767480114580977820177077059548654380907184369663919845143802614001583522201474811537353795301642567144672737532569679928013218229783512481437610550953059215914336036910077324972825396230837678217488921335352233800298871308345289218569268083012151821147600902495260729997291756529166190509152002858290502655024646445864914023498483204880040401594248522009799557111732546433670494800286260264961221698036958271192332817559782288674060923617449520585214183391958557146116906763186959949111136482766883120972756329486093698652693076403708611816330907405617972749815843159450059224166230257995183940857422316367270012753238954019099683686927219005996080879646605645125255602331881785704258178790616613603127571182694379418753191857770426696814605516527901999599588443892274201445994680504636523363816849997691570347382604028967264511837643893480257565446003056588149903967926960474632378016625094482419211456454128913055369427720882894497285150356805543924412695224612966349874649236856104151172948753583419948690458954777721134635587946797483949866849137182502725614336982825683773227836811620827255322656475091685270112123529288530728935850273202359617279092163324329266133270279252412590555148690435502605947211597385014406386682912557483836971338296365589051588846867262416517433447342823742342661308161407143578071382864691141155315565819427673913462291982413348186137772460775327497975353698375383883385069936307836348992274473968866120621644967123972044309462920391137068919382846114206822103262160133001028703327500037531605680575896551174126666267823583110312870037621122100764374378587994662931489534577445373446722243068402445743794171276169025732051900989071528793493255012006811340895417781669381155365943762650300298282423659404213569449624074723334894651564379661417831824570408234521538676223577962125421967294517630221836418006267574328390593244040947804277790784070743416632686029404147117977004522913402578068558437838922823511247675892627497926344524686485739767570445618450589341067658598513172443235169935233983735740031751426030229105561999764680121603438336824986504992489286121363546997399003972433419330382340432882362743178824960169575620489014146582648879855280336804768307429920417254457648416996110278721672000999739550653012062569584248809938646996770642599329258541199334215747529151324135825094568119359897527131888113646864862727961264375634706198797493779469860197127116051953155636455994389782236957230880180241766765364709485516468415598240387694903946934214419227011142742616196888275783988973982470284167880980100012230003741240845239492574660732242298728471012078914615186633654433216846623118757462694321376683282123383327007559616268573765405597993297470999341003970821053266794422576313183619105425772917534395603617449067632827246664843784036411396361468552276195431169820996786095190282406429069491484175905441150203219840416812244930979143199168657678984575972060204788007729846804252633428098045065056975425906525595666792703340324818920971782259514904053399765281914554564776419948491943167386822886629331859528281858126146803868630128602461791507468945915314585019406525201479299438534833276345623268268950959444236868315918853873719887555538791533057934032484369912521448638847341261147482419852562968522840815173324758036380626680869134751150068353395010574135027269708479449643300021093391382122432716734844907943137874863046338977510573073709613694773346588104603556803186266964077286993433141595810626090005366244390556433799041866435361115194484217550386347192022902927321256176064101962741423667526234781492801402666553354909041881773681571185873352836216984578194762508299595997720118059503492594846999067646138520214088906938894076986392449135509339333440979696844350591691413197013215571050764622871610967827462861267960372174935669123371294845552078649106027517830057418975858133092979562082862974359687540448353711021993504135765012600416637189449689712528578739524316408789298683982645447279675584029262552267738076558716035546071615983682603822188478994931173543673849689234145685907005752782207883649743775320320975759609001041732709699704750928621112863812910486477205317311877855462325044899672648939216012471861668403307766641988710701513867365239719519191498713871827975765948315176755764260510805114219167534857717360841856462124603718792962077637056545177471510235680885289935563771157879383805284281037106165729229823274424476607793790593724247080722507901177526095390662840706158277486151711407826793041924156827625968335917690101116414305399092607907934014186251579624830942335682283990458231165013826355202404751574344376804319775750340135472247430325549714100795296569705595576325825721792415701071968679626543452707074447603240677504882344943093705936933064356971835564548772547639388634665756752734121974136549109925943565801557985058044066487973589630874515030998306265805409613535306379995449186126591124209285688134757280305102375527960738884855143641686916897650658283614695390370371890007553883652257187970865826151527771362672698248219670062681778118534216462908941326661485275565817927902869885008397161715028710849461791329686808352734771764293038738833102121502872591483175891940360645767674450002731342167294695101541716853144394462790359979776843457873605330311230651676392469710385792947263725361257602048041845834616074860498609922884842308866508408350819167325385306950048052518331592431430971754868884602666455826505566666082380875512585497963044581033689651905333456684334474245746769249509805332413391614559570589261963956555857047148941580974926553756002315557707486026129363735310603896540349267946379412857220888501962511637406153817436409818104100445719207005171225590473393832640532499471267207926242669294986215786999040547751625976576288614046374496454733396107894992297814619249429744509768435025968520617379472691109382935789089769069297794706499972482975504371300407425212024282973857948724855084426454157758587150315457481113210933326120084110694653521891845313685391079293632742603728020084962222313745478831665339311864423171003793321364855510494872264593604320643581556457395452993317471343040417195634807458183913908617063841981183358749610911089812734092413207626684131021502843321167308609027367859805996482018156146535081603920672432666321644819194869327138020573051416255502960284175924318365969566786318580149030739803195674752674970301387522927686700153651727825608112299541918283669254308692013608248982736548764843731270681013618037484517234600098612694197568693091050500363021323484874549242474597578254580071428878080660740282390792368776634307875278724514108669241433375096861787571622536752539720956776216617918008816977825358962652806220546960434107740995449629580637690335247779474181614240527134787799209070318107583489864933768223655611470566671155795768454871478475043188713014080140538929313901113960321199317603293982963903338539574496662184158809973038818719963732380114628243380690841941568067625185619273599042230737652436919642333521577531842168695112964598546697195143559573111343287346961166395944518968204740831209677466329383725910626235325705074669587181841532446943622271677537214510062642420017786457475525090070919179294764747686181055144215231480416688938887939963933189106368800721485051021353728749329160135458881475448370969642972337205132714462500896719107862199099709177516106387973938203636802858597603805002480967139874171231187311851904175969407746725024003646256907307780103707058759879369864813301330618777602298111705105334638866962593600689616608497363663649270605085191635594627994995856473173537921403695960334733962833101388395224474530331685776038552916315557459529664801789578320832235101473561930603633185171990585089958599321885007571165544286621518028670455323930216811986589181271813632554056734433923152372577278810397930302644750190109691865948305856278718890501880802865838952637401130417230688107977052282160538663776069590451120788179285748175561152383848823404203035826873900369456125787067287984854902425908314973617442620595039742293677906716257508502881359219263426171742769058869748081087781585825351138010485302565949296005621908442760364196389545630483473970308720209944884473879135630896768811560240515175807743748492031777663135544291423548673141271882310742979242032855597488220033178088515447635766901387326050710621454803780639521514576842618567663200876046428963290173192503658890554076005612585791514754135995349199215503099184010340975603008627669840228788070453953230634178983903050059305661437963821338171454189826010369013878410450788324616854898341614520824954931147433640671628935481201251176972307770000630747907000909656100354768626984519397924115603192360264997296792636730127520894246547957934452899991814218312138870395520329563564637081798204991300965269659393756517042991751815969309785332205009010445523956491918921135299603016046858407714479736762630004616007160147429774496104728248886337528379993493618466300711014333033039452547572899784043242264597482705635589887705628004171368130318535441691025734075074679031650109660574437506064267648818680584564875973836472525185969149919106906826542905201833060329995479947657132580379312836912405910828366111314591248570454163902936487238251556757770396928989849312287062593188285632337194244000615348173404131963305992832808633342319636145903812520917599638202104854065453991684010891869878574407654134555048291897722094085974310009286651334454850158375533333172237216265208263593698492523963130607267522208262715848781822963007355381574158372227344564301580159503290892403423369200305740680409647433011459575524623258169299183552974687979092462576254536862111671292194759645370117023056832728308468004729565465330752161441160628093782349069512187557015285582815240648707683925062652893710608258195833852495369266433047696488745077257247403082149496917633540978283497399527246716306720145696330680533654458000300509490737384865299046399413042892948047821069228490529720534922721642012608736723148017915119612757792400493057598573660104590769341761211006726544379102791660015865774549251226486368018892377044134604490771734152312815659193423761444828468946779111226898144561128697342621316912952673551487897835974352197121763735977361654512099226235637210258240653435663638390330288181509133403119906843041105918881531026711625347440605416193940610900622510277139144697653179368457055925373157687052823620417908742707515476660185835653074709078799177263158043647069010641867666302759160235510351512863576451897288790541434768830807721190753860110253523288100671849206041454622299258641143681327131548462383353489347728355102452272704847310304754440515153795109567759235192564532544729463605707096836273834022804197803555671811912582084683764657341926165714167642633059566934353004120465205282953322840223542465711431624758870026749913050970366805608369473860552390741266556659919167186693403353642515009122291924707668821163580866122999727335369098562073727440108777992174139299489689315543681561830451476131199121884963058025294559081526917978754723015103608382411173368159076337471500514793798015701902413782736673251669881623814845256357405289118425614767359947494516038787183057919015021083725151972909285397813630745732131714415084283514330089433212550045788011522922098586617938872170185041937399054262828952245207766815137776652698662818469942240200462257156387000929804377206992709311414388034892980281800566496988412646290821140167207840288361742947353974742507922418568931425987662004458117190988517913847500713089719861611927786489704954476671785032724744452300030513156656913108393449230457588626790110149464087980240873487696995146526266035502269004312812551951646755599289097378575543888281875585585767861019197036745370745004838323680969685178533195161178984863494315642326436296868286910786669352227030941186816684578804975316588754539007633800712304681469335778886014293609071055701971189108859660164091364310705448978423189989990025593446589336940815102725410539558303717412390346389624019411139570331029538037253193595094164383284946900577530244591173612861879766688701473779196755435006785577041199002066405945347919087991393959126761128446967405955604206296117441835807104058318748852626061256709614891457919334325276466851777254530169493936422421123049716785591048514570379156232284981307828736893053411719032995839366563939240695375463830700783655518252825567873020115132405700933957124752886724238015830833752930631869581527569480780178968109403778978202774158500457090751274587993545135669976039774713637170375948652826090586001036027827049685113567837817739873132997184276760183921332423183057510069564531939419697084763171060908484035090410911095861596118927792540721675077920797886298566133330818574539265989092449867568713232886397941658461007497068880283198875309843952326412712143498385995790467982152114341297821515915012872980891298083528085689344001619295500830296110499332663346687357424547040868308075581986216863479872621251197592723321517534785148346903972310279665166191946363686268985067837552818056885506120398895304935567545668771073578431444010949123335675212039530043259482890587154871673635242357430883441760772896628723806463901473280529789260753754858788970493543301444174698231937388959414074707910467234225550691486139967208934698453235064789114709386310144795254783345958378936078457753767213508107046137433662143520660134121672064284087580168551382783203626479154953202427522410249902813161652794982322453018405349664240503394561524437773287983722441594279657770493143440235531215947287284091493239868910812467343266470145565577927569560279947542638934014191379062999264259053651178063611290472372732032770273856844621512241514131024307276771653422564267078540585467954930114907868235424562256153348624078745037529486006936539880584616161526487105629424142912492194842069083866503121555750313767922388283221265337373064246211402504815961768938548663864226131267965737356459350917748685885845967386537934026227947093503301036079361386183932888754948209411029825087698599348881009995046050671057196965931028024088279885368610233575234660838536760099709138679272860566288397761639799792400427449791313304692721128654313024328775222202813978819880578642614991743108090974965555743089424928669610385756687108034888780081664918175953090104292814185598998989128357349125225094998015912797810764284467079829114734702483785320296336475526119521482472307055244492920409472113076638538585618281569644821056048614041205628662689305475430949887468007709713301040098543322093870808385017499932487316943411570468289600190689345535366231962657762165913642686269220550948176714316553424564978613945235472159001167914864068539306349747487201512508872534086480568619859258132777625423311413921955585469588854933416883382990539330469425965903905002765063256091562192280395708782468330793166573899527894075526452088601678199087023598650670857100009656468979327144600614514949046473375439347554447509402703967965824198930274892476461139762406058950858045499737164997972653461391505289915224517813040492464167056470916864375960592768510971454978162697321189147170305045033799931206239341613807273807105952800989924687519991987481845647508029403287990732322396145413872878304649868315110946263266443187914339242706224162311591200666203086319683567089833640523328305396486979257742684484779336577733100805305661245978843795834651771458856185142943034064660584215424086053087303977257765884888975326239333889077895980955602396764953485601998386235224699687620874910560803939240715312839735267428344371123527593259222748267358384383313782189722785029941444020674711731739187642067963030489709733697709402326012462353401753718830261254245590214636305350711350798556960042353380764083756667059596221194028010074106368665164536991160732208134659024783863607442575202927090841097625829680089412890599687353895663870862270115986640795248980640262989934649520003378077925378527414474870242822052806126669285745050267652325904347501137760483130958076214389813996020658719946071873236379094643291897073076701594876496263494659799282018604750749167811784641081470103229552001742527623196011511803239810197059015590609034567358340877762861740162259927815489850848360341385272205169456758704060160571664443559396137685763861975221121561221703984761788918459277365326930062983613887753541343757429897969452842597530910495980473091984873137042159437508866999720087076256120442892388144040904366680753147459075352859258398731381845146118519139230750798877418940673576952482031802353265531606902626223054956891904538706009117817838514769401049728795035095595517944386487940648881461599581032005671213923831751512983201699961577362075644254706901856432116940699846598728650723986994954047241706372997069432281785818566698031563795469252026162497169742717935374815825234888647297535082958704869573631405305096352533972756029842106374322192755959949707992375149591795185522248926410547954961889060843050943222679709914802004822097842044546395352927482964063577963108449920340187542456245819919865902187424058108648346533835866338169861894266260502955280097952342910796637453351449681619316739995903753809807927716155664227375808806763711900209528629937252325091776184346973617683652126072203123462489474099463349246905310893401272546797960726545304694190988240943703370069229554461986642058917018077379774814262378508751047628220615646792979634173338941080102866689093026120305742480501435867346158987691426590961795729433580782888353216857719523576995784902907985661767127846191191281164517374606060703470382503511280968416944539854008555293544399971937795965399293914186334755973530556983306788438226619965245866844368885833786962571161498908304256671524421661289960564359961588312922322168827371293072697064999361706373068010531045702885283449921188870445082673365592100363363232503573808720894515932043398291905355042168335842177938163427231667717610381408917895360368781172337067413453666802657049744803314435080542677377518275832447881373119861739380308364604300233796622047179794037564555778977726239440920527367939365923421728792104020911616882470244147667994637447137098274956579994470502729535696795297870395820254083290531977768839077953360609318445168791410000678324317012745472890358308002371138783107415569443806882857254465911597738636058368741802913799117778120173102746397981525065169096768035465923775128073943976594414674328371841124915082931469998351988360926895768954712310139953029797686804072716694337192595247495503610081067241433564307215510710448119992246129385766239147689692527843527261098949611209867573146682990024923540306832426011342354240306685283386541737543319969070086726255630742233323538529803364336139864539484661344704620920304768793663435936679607806496861869575798342280540032854585164599362030459805876549992960409723392883233026646225834995035768884166921983332256018858911534684453544639408297276582657096135218912837549125476493459996083248132108791692980509389117974373159609560549162667263559970279761976381916786078049909875436031911412093905543359789151525201414243166773550262195615533469783483134138646034040827906830169696952714537830872967947041075187438120222029336213288529603267058833700084271664438519218079626487765144040779431848973531272713334881542632788507150508834180855510106962115457117186152161379247475083876554911090947221382630368286638479083989651797966399195613552564159589831930248106784328579856612856207455192016896018685765501952718556949076815531489037632173111898718361425555338915465038013869595113167007719330995437295433947433061729600069560398251943727163280472120634776628625244056233178720893994367416116239093871329706246560488665091331702146149064677051794453650703331815002208891056271597505542496298573117464443338507098788024176082349455273359429606843614271573239435090267900891792961406522073176253065921882171834712087230427881950812104876071849285859246667572179528244041064482450239981512073880256565400119005802896270000984187190203301470873927509436002073244057538411445449382172003223435784257427113361687626714706324434167174626026044526661881034832940624560393366373779921639386106233349253636427080704703636757990261870835577525286759266759195647883475197493283329873602645468175034837181546445702651249719397306564946149286917076916708334333127419224841889274713747836314489465832286235088828002774691265275560955373713559647172062703000110129228151623940893083815978164291395670816237432735041937563830837627765847522059237809279632887090292650319175661349788403107451869333649701136569311266513298158622072399213679558621127799669242027008564724401406748880738141890228890238115649185725614142782731968853660029246635756224546615078982077382195637039397954121345747779324920260674158461543090352348573786358520396472292786736146797157936669253257470419640399347917450205569748337474462908362593796182110646776154765211544261547506484504681789039815417970746020616387664247978967141187604650902855101715344479464728063618525477375639319083257263621420499614866615673104644989054708687816845387387450367117653933518580199414775124005834330351444183801022279170011640894758718147438894259744065585211759985679887131984296713912342789442682457366251177777243299602440251307516942807485735105749725156559426175710341000483655554573261661742422062983950552472348110903459808234211852906061150911533205412213422731240363187596112335049113741438277054440760451330665536871104347114398574227466015083350405626412218553241913769280424678043449430212367574782288555316459128732325705188655308405159705970255129488704431621627429813399998695406084153088690306520921846981466389732247015097326066399032940558223322184066315222836687845671979165346171054853183956600033366968091670984667501255425652897601321201194507410883333417603148339853012170725598079666322889887435959773721981272243167464268106389118047939058115679133984731110761795409497919376009445523899753146059920155690430797208397701714846242729490582801342076251546316130428947843398170878647323440604650952302076045464246849300763521424761400453026478468161899407027134287501535968679545431695492520753409384785399656381146518885129724806500785223390896587777715829106111357207276686942497602760424598260758962487528983841958177579773951376179930374469580770710251922858906781175186085130750982232895211194843496537654927393933885848965230482157977041077836485450996098805672095770005526649905994938277977671304819946442407354775219432472178712741406213140373882006313427099464530795407768858589332080505758627727213942023713936972137955036590620633777243965467786553008580387612470219333121937388231180005785289613669532292882396617775037897479083317362677116074782616749673975904877111849889023558286891805796038155983811953943819580255528430047643794582503089250706999189127817117094143611966766635903717098677148080799707760287079479454310493588115134712274394662067991499730582659489213181266366417963409231831756709055699438506052836517213971700340122185120360930471597293619874393554827379923221695176864188561184871094730025824308744021390467442148902216591433523790013724581622768217277500808276603325028465775290977842312857860493334689882411355784823248770729555165097390155181873405984224489923171030731282533547871257433259576507634129430903100195637896601068979637976600328319749887814015643729501266529462211145399257610478192042580233365816937742143175907974887866750247868734680655407745871022037641911971410533916002219897968484257515884345298088498481736068733831847649370507321055642316221418126992568302146242350903403023243046106270911011915746388844463692551448710058646678984446696563765192544911500954682598451903387054881451233680189401671100624107493415545307492468781823720383991336430335665580601951881214281169730269471734785036545378165132218971719311891000090705510615046805780444263154738684514858579869094824422195304508217777213060577243095298337185000542193841726758305414271570638896295250338473250224349693702005354119187288406406407444333283278737888334910435984811440212602923587401436118353722301110694349526754132715195796273102760646194564913022324618248147655632647584143223684100169356473111015068444273410479331367508869513217623324562858630263495196679523798972329579084998365582177852109950418943888839310654289373807357677903827202261789759257666184580885880468979405172465239342608145892502514253230736960003458070635249896951520154606141527929933160241274861113673044264170714083717260477189238103451807391690947191004002480187028551006603176600726557295039427388214194921984051985328717167441725449694395180606860418129140793573627250548127947889278090360710459507749955885491943241525348398892058590722850935149489816147998912216381650985882620823460251631890421911946865177807268229964708764350047873240334409963423020560686360255239426639711666382604246180077362893594153932659165932971883084976556948170029507223820596940388015981737098748812693428624636751335077735847766128701433947641090725325927349431946000197670417839223948292415069948492039542277449663664693092740981395491684232846851145721148981180062497551311293451560198682899977597066584219479974450684353176521955831516428913923749631985603625780585563761645373916589599052593577053722488345268535676652651665951176614123721968094943641069764241283925738267675279548484230966325184506886167653873116847591872372182106176916911403857838237197054406026915603311855130774278482328785614403385549484448372471878633202282907049680776989974616435783128094807100829471293492125247987968940179186088291023940567728539562765535430978638351242983945311529837185275611897809445424454106145382809862013552531673240191811370933141458275199679490436351098322604385657172301874572649107774366514654972312190568271693032934549244431917902778828218035710296985129248988077130535573158310628038891251114886857505653058603987038783292074830749875365968964583497615455847253111521368141297536137233396177836250092402818843351559810380277604980219472703763685340530057866876291682051099238353804231449107807861447052705078401050509988915035639305887047551724703559303033582515042512545622561032332752949979183226913397323568385592298659408611342323075044686034050535769933522481452333322826896821613179825926414902730506017448784200372674793358003115169032179864260111304137199460297808920016478205701325717975283312862669814280520278072772524615688067773178643894007931118987189050440851378598358309334388510846394589077005936489951553784873157499764103950476430179763249665567856722756853723959830258855293754204372929818521409468176525649640077444675489034730834776304054374855544975702502160684775606960556528547303241029513557125957784988261394343247994498519539928713091049971085659759048168738564603287320645159998941287788877622994611647683013045246436590685324632566201074653777497777987949506099134953186235310366313296441077568414444632356518807514555100670101824578512961665477671299028792138822264379619813153002069229139439888442179333042766935480700403105757735989911997947963922898511516844594598638292130180334921375175725509104956205877344297761128023968585439385857069068874222543308472635883869371652475330158657581162566186956844859924800801053968153884419249639134179811585608216403964623459275144868870679980122798829394611737643946112799365488874001985796512270023450933672036590346148048748454797994812364707920830945813312840154372157077694171758424615396929759443648965139683550470668400936861959583897073592023526000183242157493456645002870278097604454567294803365228189802768546481615770305136113236954889517375754222043119399440087635451842571841392801082000552312507533262948308880545115928422357039330994502372765070912255692428149778036019232714902997197109894812589042986647089797068366709590676263950880031586011879990363286259576882169990333880405768573289637644865445108113804476512324921237456458221226174773699483077186945309193498875847161268501573952308123502156784576908773262786287939448733220689786958671192903914562590987437718110464535539582022232907854056834043830407806043887369547421861325022294157446877307005140232207132323704852481267128445390443701092416743173319623011233918082917384886893124722937288438206375380077127707455710751796232534235832428322983135938387222923768484479584846800680644668750738819988879911571283172415056065197412943503895844852270241754345362329443737517962526372382511436895653204939963911518139820537057567734354413520168337654720107522306272300287392694957358256618266875409875241083387932355419958294988859467471859880066651551173124350023203806924167692304910701041418699237271718220897738060877829232033527795536599272468297919113011484575901810741482009045699865061007919072170486003742559324414650591471593804998094873728184754972982840746097340872896023722468599580789577198721471007140079874802986293247647593606598962014789653753298290616506330883723492768996860957154049117719280289854911461366702220149822202919154653536731396741295093773924784589968913836007875174172599232246560592031258600439846255405737844357549498643167193290983347242926260581472163010021964037881586324742218609603448497462827867299423348461721020042010600146853324540943629024235076561776987026330142560358538896252263062094769386280899328885890844049252294840742914098766874300358184195499973793671706612118017344629881892511251030316812774754694044056620062589188612173205839865430407854621989618860996997819221436810073615825621827092050528711625896835431015300021164971689620537181011466644100281718914713997968516463343007309312799428191026468489805924428705058651066279101607660845761103141883610771571285901679980542197522228051307237675811655393415206731418860644031625754625248764164225103536012899148457322925663394102833594245088315887250730011254000929355161495792034691086135348422557022309536299745041755171124923383119426529947497561383741681446765626908944826213439982728024218436172506146004111830090431014319296773141238041106773608274593691091396219607112150367968907067593428841201718513084291727564782738875425912760856240735676470401301995836326772946451097690786966482980770065955394679775898202564243807937046187743052568109896046733562605509390185692258573638983786978799827833500436998882712683077669615833515362278140449933786303383209117409209920589233203259391749182701885108060116264284523263529564574963814229808897529071328956815733583780942406569148902773742848847911026982724084359500808760078784045572127648988970232944455474342080765360902663139850683590078854677920950947031315795554425013284789371579582110851775079738425606117899276977018265898476926058576616731729045553883064369098007837659704441113171180646226092411572625724838918612512834281675933102310549220276466776740383162054393390519981465576774703297121153902852434204525929356334023603418599150878761702127352191840276095601998139906411578546320723089103652325529979906146609617607724138939550632983732263062105459341124202089117720884208852426622391453390916222922752440758283229251961160114434452708594379464636880427120463475838371604505344636741426508142445252972465192070705076127703422715240851719537632900925802032065688987274191883991321890136248987300792200235613184470202402132653072453382091310729023660605745355099655459467051127178891190902705690530815185214079417612303597168716919412835397176189582134329808712599378726264162003514919530948949756149897905844937241382192788156386854133066453092739073820569207750149934987980808082557527824572338515145136690889230176393927184983561358485916275073885640812078982439662386015736510632676036651704317283324555501600218419313415683688709657352700779936624357778738221872898280108167168192373603951540638158255090102328111869930897190441180998677911783217895250415364781639556699851122778665467312494485612242291772997172909992926369715551160907287227706730240135888302175429006214036177797937571431312363479335528394904080184348525594027453979567724529011983909232754068147362225956022300636459760550192885090855209675444483914429889235460176875002734398036003723923442001199784589425329157572251655362897457028261412925871111886273057994321575642273041861234866782105371768127955604179000776956572347294294508708648015708965378551895944108944129511433070768433467673516551041888631431928356505226246734738945892584078993505007550654198881436576993437125891557687717849371802065464093677218316612408002057437195677410095550202776204287490143409175028210785623862231635325915157201275547073072100125375297470282082745287370619550765747272137809478015942983586191601428638033474352902120704465366768857759922702968561428614316139311737313937689949360793782030053538616275209731353514509605786309219024214054819194795398151440112375218669028094966381811661455912578996067420018548956998788323137566873175112846316947666100669959270617522056459653045756612561483551088699780645813952344218413705439774216218787772208024651011931852640852933358426238764121082553278920456399246148536315306315895783270422557010398796487075691531514635236873271559537154537054690204637561391427094238939439167937864891651131809237031860834496130473763958898032452154903796638348313623183252952474234090657903200853410729712538743220500929301236482647464010073269378452242272337204017791813202185252014782580667164961933530587622207806332701170177696201829338007894396516537730271949973395526004308277816506738754437045060791272220659411049123411893719580668538444605355183742067508457381415697302989914195776909659465598341707685348698773566252941832192253108557752802431208120754719944198717987302436798367657573489524965448933867908765709549211836812347740219131210202811781299236035804497609622617623813352766420821818585622376739039881385357649635489248702299360615358588131154305371046258818839514409554030857217123225921129471381828470741479382153781968320530446833733721838568716760698195566728535392826715185076706397757046995719614077102197189687826455902696416848371831294845892704680744421382752428952120890785371826834052709861689849704645305296828200854926246413081746032807776825451907486054309895022042718114283657002606513586630978944808798554970173757336811294852358997019062298204776736290691956915894639646345972710101075047134740594464437855670046689611960417618455078999161653382422622196618215049404812696227678836596141876921938038253528721269925416181331485304822310852351254911965810674677805902381850939762005668355243989602201432699968654006870123602699197438955826592948411837797532271101373293759766911782085052297363635068755413259617105347245628667471980304587405919869827838109541841439527657603704146639340713803615989662226443565964842630241716192215296752707910282563974568239101034401280164488111695525412209263420009551321962091860589881193909554294928244663357339061307911308215772461928364604294383877705830919226058995404622613392386953082867962891422848097783503107608903010100720270084551838243339607618525537019331458140838322266849570693620659946794756173227390370810451185468054945182620990837643510035893853179195160649349072848995044729516577020582632473125126813053973777012273897522713831528611347835517976684548500317503643124524546956940369562243948817461863334705588238889165307878935849289440210340595600028838731449444495393595868204189959990533721288109848627308051568665386465629578199631156517449649060699191746776279796782958515186044187075800110377504833975587612945417385619112657524909136447606420142157377394056423718123670460155478997451347133723599435953924759921649323132389740717911500718796918011290190270117778509494740242804383971586938013866804113871468498000759906351824707138525286622744096889169659801010460846758363870012174602369417507072821627308808602497754642067657472566751834541597568417185118723003036371863351693745753163535241118528627306257555749654815651803915140559925731668051501123526597460832552014817640210236288057808737844618805090360997050425858436304759754934425480268092222323619675454331259934476807998086677836711835370146714312917455797179493716905221552529358189482266277113298715302477347364250879316401389028130686617201616185496907457527907308734246331279255548222146849892261651017098756987702392061656704969795486546917759576000741466557194593791124885860479881624912124079013797783839388777058243239005154177770856087854775397492674330850725689473024450431378927425229555600966026752033606726742698449569138797877679935445131223350502285450447547498279008602920378983191390264982490427279277168903824713405162469828325318333345031996728121385461460801662700891506348699780355515393587714480594543642751238270518695795039819467106615934889069103928778081850384694695908423991270024040745627492817501368950217553329164897676355503191619351734542273031844617358545114895567709410529437905554515210591419219347074361721252809766469997651843509093460262932584892445697378953341158624122134965643990046040681589101711251532492258679411013593710511962168421189560834206553021891483362286619844751198704706805730514223338461727527706373032743101419426439697909576942856815915280359702566673244548456760016850478035563495925179424916528505484001378153631896924710081088708689601834590200728733636001081540199014946870605717041219785816873089091984982143072433851101443508694921770151600034917712320638285539602075839702115760114064741688011498525992072987597085032467629089262050848328950042911572236579150287680180975946022077944774167836643606419557228984707488368621438945358111582116613301817179635755403853584725731579882943490886622854054907060158575867800529697094715177813890356196695101166438584656125289062647524286290877485919228753774520703313375318119906945363717274207270834892718899712023680126909285104056281847821394624131823275287193538443095744943427751878970131295320844748896972522653071389407343446659735139307963236275042212616264188385474740134552007839794611093077591598031602515106531239400038661637025557257199960854655113204893207916690527849040742860931369262957102691577073430291577599787329918253790604970403229086011649809306833227475016994463737643603234824546696488273772781202063291638394903711195413647011434390277766963760752161382238312290196654830398248631167880526332369456035299648761848662923087581667256667462006176840974502489067139771941354773946637563424327142344712621578226156765336284321396445990807085823023650890663240881174234209297267085725011907997549589371814919442168878226801318795585753209419271202699966493966978384422063403518188372114365554914702789147890154351793690055666759532453061152450626154080937998130846179866536276456506932406026232607024426825239491681375064990405507452413125008861830158676341431141162855363090777596718536376196254319772126104306531946054581907601802373049251465233033135252669731922458092987609450734379579262276347381914336302393073627019468051726848229730701660257509477811132229796398094597445933074211503659980476015239485122558165781001079652172666108460510586465768407609564728665745149194673806668776886029826296881837203306538594340375582669467099572794701225413763880297475339289992688744039560082263076053002687425802040361516543818656327266068752775816973084749950605001465261446506032597588180146515673812466020145366806439953409482703336913320235821020802053115943236195725053474518308511172153893259788279715395437364566646984345040437129256600413579847314003589222943925423912647526005979217931187301730893453486579387910897388284200999730053315464464794964636817403456182523046041552149063034728748506049146731891582706784378354786368477174901925227397857476967891842067805666399481924348434248804245507829051027748820931773604347733504855480206064037661789878028171507114939356304184767534893547907023103097787714648699280986432074533034226446060950773680948605520330594449722087096417459591412390510089659328525894214689036987194959890984148347428776418765627103798833134284610288495523312158536848827896250938941381868989115704405037701861734003264460268628736990820440525926284681025683559519989973541226287616362140162960697077016506975311499448742385867350431640248010212043047402043128571653829178424311317936620782156414945790061615309770010593912160130687388340784325005256526941763436202085695682512772947119680628737283858409565136132072184088110170798171123999628767083219543305789307217998385503029323838400632391136665885446822244167536949669998089582459649536893994104222978759183822751152022725384879450233803565805933891201392365730396351575487548246368753655035862905406827117712745781899455232201101237387245134433746323184485916734827263357589784500845793424130058634984563616976591425673132302695815042650743964478506892600366577947359821785184700575760741200964762236049853104833222067286233704179808505088861526254002638531802762380286328709966583444684623590724815448849414551310840735067928069040985086983177590299226743928766310241662409700808767199518644718722503981215078890187029307040389667304277677528635341740688093950908191348792210694965467448869270289757865514734350307526221624046743757602468764843185516778433999774594728625834460806964920528286656643502748398761874045976459865611308021703231274321316158884607535862438558917850235177306438387206067462999469547486505031254043271345043650067454758776047470407260311191504472941493693461735578674951963947076812647014982262464114854959421063499082764048781583769847099862688158334415445675341324071948298772484380888911643227961121269737579582117449990134906249023670613006596665916295804986698224722484021517297963024790490956515843795450930362769547973406449717967130493775836662870134830714254591920339000507983819008669800375186718305938274858534368462372494769703346887192654353145315090929954169777280913156819537504790913514678258715062368845265580939681402860634088369924496074574766921947149805834189162727356949360064082750420234967487133724340037773543877921792201945635233357035358744752606050342942987138319198509383666994475594699882045955214296609655180700005768302594407222217736759520446517385326266782566743312531985505629165369715812187134400238211071856927341824000970948098539174544173792627335955805219173295492347308957577018911998053526601439883004540234293792420289630064689835300793090149024762939062374107622827373443406686544445052964297988847997459802265954613927176543993415024768894669572927391654510704237012007624410731660042376586036739912405530444676325422553309277330896201075530847396111203644938569835957812398756512203036245438186918092007617135857153634699079876618124005084651785067482728276454790907609164123966531026231098849286377351831805553060387217466655765798966583647148882620726915934579634902104240778587309646178303592431145581978229965369615558458583082588565137523233942931273400984461867987713270246028611078215513533552803950895623861213519172917343060899012639404095031198328338149801084128586471834821484816120798211316434739234542035260285129377750428737181840732446100803002635988454871925370489801636951046965261200817208299341725965575819120876143610615324327077805471826970113811888816843489484396312493016213972679882699030787878819958453273746281271965212818818965668541991808381983986407863521042282987326610447346136678016884892035212415328199975326490972167238148955269704918433842272632010691500711886196413723388863872077987090076603308370277457162373672798543523733844253650414422983132088933552874646313645071116042661306809573882478220809204424207830897838423880613451337646894984811037773411213829688256310265465204095878738229228660743940223866965563860441091943003209209091504001326539603208551779144480992013841099329548885618231391239567774754024036596408599296115695255571035529534844905219355775162378940275820406119850720245681272238281517810479047800030621331255879903892121348620669735545231974399343433781449670477027675765201592976224330592242967848833080311082602071477384787907845011516446040230482404259934763518845803404348617381302041403288231437032140350039540022265903265580129820597670179941938966117801491938529200892111820221027949633741148821098944343563477627520600316629110506019956835461871742179438581387177214942715865921555001863624714334076414709196830003731728393150861881579309081221705860581544222150652206504357119368095491570926669528790195792671397794960309459830284872964922438968473295556628983681293679608730921884796338518491596423884046537992708237022341383761177005906039276710234631400343871252821902753491018691929095359083353139152049472981147878985420406770845910886403690583208928488860769241865481651349688152037999307319390430800216504378495516160382251435936048297329815815661231807683826420890246599258512023614168028956503819998919818891010594837269813765076329125586070584767487861802616989343393723763404441502974083175548175078252271937422391877746704533858425660845435380786784130829907720710353367183100518961266098919089835428846188796626800926382182575201135800503073608647988055193715605146982610923401814214873315796488291056520369508872243492164269516706446608456169863276127818622790493087723059705841653038527826737373483789405700852489627408454739468361099285837207360341462788234841471199122248661861600676210946326380341489491559853199081281451056078420523133118511689854507424122822453759975283683036885532352267121481722609462182024034914903214595890084477842422532980875037476198245451443918345329861206325047507362907157485159664277576714518650322866156697909669146918361427853280439332168285626262834065361514462270518400882872693578583897741884214043948325805696817245090078626007242384402441310060540727736917424785170893963538709660574184348841073074156436128624218150286993327270005744706990231247836071814982180077480354360820891333547663287194539702577950946337088597979404061235999838514307397955671002934318635301684758399648969489862302677243976089287471272872808467224496638706050093315304373925652710406950574868343535024095630039156301278435437530191670232402605611911114776515340623217350757992833605135595494550066015177302429571451245435551614524743566898629086377152924314310853728225550153729338021040118516810139352466378239813210812168409990876102979350551090117679171334711094401885893383765593167760629859505133463307957446571135557444367959539793477444842411493289734866042386868665550043959748452207863156827424112705979099779147066881327760283062510711336186260823293748705177782389693829101157087567900230294969234362540098947595739329920921288929165199372478254519750490460748264548668078884813388174755912947646643255733019454421211542517029805072378314875242161804326540402461027924873109604221409850175904350605342120517232972737162642879693350039586342634999836697461758938460975196194121959027095639707394351774887103906898286779463666938385130313445718102080710598140573738808318236356844446097681384635118581829219352804189288483107373853626331381906802492950858082173379492762086244250830961690159623170546154503565940797136790782246089911127488796680187665439775706287943525330928529158517486599605990522352794212751064561276211838346298942657736400967147795822801468608168663542856088863752053023691130843041471317500271815215690436044994626643984510174131421509669474223385890176334386968114302076383704659107051778868188437412198073285798748537084550284359119163463615202792288532679731750004682442273873251827164470337248427649449580705166750208053832009520308445987993492437770449900369252375696791283131975596460609779769065357777924105021753485310802981071406819357962289365263511353667467435436449960730294214059396733075609351322491719558080200383515048133812752828308300594986016066343388882618652230690468963620151495980859587380067635062913501447616323872508726071907875475428399845379175976199817074275743978521782869651877358493984544081487198733581546593576014960842506931607544231243217184709055203244461137612303123413165794111335821321532924568543063053554057608669778838352395839152077835997357950565629040957472227461676149640811360882843114535607505372827317125671973683256064844099143755403950786337347606725138173738263785986332985733051279259134170239167344367247653713000898455004614102543282265409076563275824942027430656695768577667853940006423366102623311616193452429056958735608071933124463540760033390520126176265265809583139773592370138818985827200516674172845378963865516774134030783674846156662509614772947629501032321263497255764628132736057743553112538391758379208132752305074693674798096921377116138914377976687099705595530832965216227063851324004692516823599064968913774314532908950948793652279899381218878638184923587332258024687179777596163965785554133097110180602167647990680402605687825772810867361235017006335272847990021981041154805999272562351858278583236458458374831574643928503256338152754514919464045787310089520056778480955894005751508932419533122871449214805521917121010956812992056951246195712138929849315591105219025075288286889748611475590873464442398253072797539740263704704904184512915589984822917557036699168629769276343187046127670985132973075910773490753865511830173893553605003632408314022949322851312835259969940866316014311836008876619599787268088220128462875473286269882146250839937431553100279783784249204295519155685607096412245601861182310281672836287882164778697323699248265805895293476917249294098925788417708402743525055891565714643735913897248486421237068599160472561632143700511517666609233310482852282845360805227423724778291894206379834847782428206110293020497804975086558500495263811580660771017299501225214213193701926085094386955005829986317262646000570007891345806541172626143779149610348749878562038778246002652688688057912345686084105006829148729367786909752884733873856961244445069506273254712599143222328356840979721724590711860606731841778176037070364516072812510189886505669524754125056757037464345160091837324569584741301460943386052680794717946963696607685080355789395495675060015672798959849230261286739281792553186592924025652372394331416543602857673430582781664915357922344756790769695340120993943621125386589261776327204606577965335111866384240391368372185027205429088324570544381938586843969314125009986120927573667272729123742333784112970124895758739256195233315008903519752841715580971280540246700973955309719099466914074091191027640664180066349890180025099581006438575918994457776082908114409475992124479606639532279549894392235042111085187794740256595557164674835625035050612010613152455480334108913008965659817900026316126847781296162659523725368915749410226559930362364554709163873759127625485036280492631958504568952128998983178752805263616810880730282560619824167632026442305246495896101957228997042381005280209927878760705228565865769618373482579901007271415604122593944241192297754458699481884208878834124282233350780640819036506249090345027905723476038130939713943677352498354532400469395894917463153495932541167006634480431519658714836612610875587316151747510003206012896821145543793982883573228523610075912124596886775651688957850661778472359992004575168295409388702606661368021863596824220095535854977969573807341586618634512365011074323846321314341203737330523550347256204180075233569846245002666225151025909549859576184807828378234712571453091474090603947141544054376330290892367239358781408610882760152007697800013883312144389113272427366732215913667863965473133488707594530665855622170754575669466145298182905700357119144506929624700133393452188497961961444817895221483167358001761189675105026709367224177720089635563733463706609814958496091193668015896108209989435216398285068532399454791776993501526860825808085440011514119277634126461481082515261436893231090999315988091199214344640956356318824521395353515321949406777654142193840868360839736557837879238464697699514405747268751243462393967829815701513557678381720614363145457798780912948735606389614251792372855654170804756226913638224029870595128801970971745933669467886112996005635542865552095490406482358955032450733939942925912277720077946039954698531715480360349841122619760876597259782015608530135187725187533198659854659694739028174889044356756033525930077013742297271429032682371489838560478888346830681328947883750768064787515359232893255724151163284768563540637784643552514293149946928795993920487632688132893046130182418310154756245336231404234759067699636369735318033836657789127354318658656258821580999603027731810673660540864410914036764861672627259877071153524721900653834035573615027540440494388662993189296431945589991110642439860810965554343323209910864456562755119803210933927035451425323664251831994553717905628311614710975367030483744116633900746474959687198872425868445562163913135033166570120311205597552917736039757511942815308075597105673651971827547076188061338289040018499270732834904884282844946984152263868013157267260597615817704269159757962103663365147854922672699968951797586729080689607570492185955848047712613482836715677333832460366103041566067183051907990891412014277947689363535227899965571283808032721292232489510122036814089312318923028818769226063188924100973341159950183515790657339393399132319477331526718074506540624913064612633848878139028500102354097737626354008802676465713180086407781259941898518356834506641691218872550333680600596259126039892750836867641042441545832196735824429748464637746081560500478467357301517373936760805300702069734195808055536350786757160567482218352321426582919892527918120805191123440981362023115296018657472809207117386612231319554708879422386368054204644101452863080762423959958193987940072511216762925699716234574100443739427280800673425961980631533693293382556892410744300318851673048367731576934861756767402462702898651282104372212119837567456446494793147308945948334057040815566956772068632057647742458855199848371013170314901622579832053538969412142909853414271466643652821560023406072275399895289991340730127987217273272007251090900779542880087067398165574765477978044284086281320883456288189257948733214829778787139316885108717929183709587788764314055003312263614495552380285552896022580851767063966074809381618291519139757139495715673736155152265677369385245077448468441775014479013134407440443861756433621908108793606714782684168387521297877260280681205726051495484065920777974413409181668067279023447083603690877744486432249889529672897393470356435910436471050658702929194113898915821633407869475484992379991013098818809893343340476658601989462027220504152813104583938002277203663185862649777353513577256843286501945862205974580002809350947476856983804770364167536330325087519495499136142208823481844261215245604599030244915537680625286359248550840608238023228967944997035759400333737405084364753538214368531487348605466619599369756334771138341321917699084547649816315336802250024539711700034651601571034369393210215710680953864612127311013889077060816354220457087107747597219820039534803096708648446242966741154960387839523990133538513826841855915451641600888645292542570892749946913629691021754943936126288707557334361797080635788757740463283708368267744997972100655430507645111344701748889309527160993610609386715087069102906497006018362247550218370611907638986470441069424048156389014396442296960842593128882941573083558313230288524245868417050257632901077131693712533773309725196004874496708085584153211529470204429266244373489085819673272047033385871251681970897973033967151168889201713005190277354935282915290770565369413155853613880658947032962097086042020563678000922196905844827784414084601240403506196841137029047064015024690137993077471774614330084400710358199025428302458271812474742438780886588143446021727396496064258404309506774080758569692887766729195502843682265588812441571057731343968055301703944507842884859398457679395367371077433391373392537824571386740966703367282525397581913953716857690717450457373937494731751381358503188931566832219317235820785580905180927558161616913470749588150225318430716919868641593426195771275506215743515692330922441184149969256401176664351786322030096323792172836462123619887781652280538577233706272894752832597467585441343788090890373021893823680400180212884102272245842073970981596487000319971875091460763919064669636910395026744904821977095388099281112193010167680457535715536951043347282456239922534399070305691905578863446666026864383922575510701353617671444531163391105558906155114888061524691017106180497937853043593407617118724053193909823710048920597193383831259567692440362295141807234505389564791588572536664715766487609704635958440148327393968231712760083236979879227331560025442678339948418913514011394873868862061687853020385117981774315580509243514386260017245972580072431079950834861087059535131759142890783895199905452931782145714450588671447322139430782764421224073400815594952553666618951426156958797759556600406849645630622178886272766188645797806818803087667333187056301837685021770376179579630822080969313019114884336029577254160739602753002079782377537240457070691755379385736088710477950579419844193921586250975178385178427609465210961660284435294701581276172603644100015049135179804546495492591352450223371035338638116222384474378731234601941697870521858061514063179188772052416347172182777457528691294189645930839079001127175131873239259962693114388719975461268660923421456059150275256494024108137507844462099525007167075135153206136557767035010868715450590487756442680444496059617127621826676419773699298403321054744770924505847730243935427629437155736564674020532735447449237972485836392304257012314863447753959275454281225327538822185590052950483313486747039407164533255170884235913411442466727716979441586714298838057743566025410379293300522475567128224968232355957446793607853839377951121386655488531517563408253775470368138386074103753634529073764635689320457919875725389703267764266731442018163474411668981952976929048415924913090229439603963529075745022258626877053564412367758835512089276468733855947979698403576384049587723243101880214361497226521472235851833067924229177596868088312631602868542541571684656034197311998617918483084511763731517673701618682326503613385116076772062038033445831307075444268358163042462957380197999571638050395785198688920396715436673206476620852757251670436362426516269868785402259280828330612238667400630604978276548332329235325351453392807130640031107449515974057173043609091372616670775337603873066577933286052175863000325349104658891056066966912118570612578522908438207842265103896231402986415517969270554826701489085710702745110541381167590567428050865594218412295800766999664228821986932823868109358631509489711049476240398258656381411999704299287089494068153771351852440154161298288574816620843513861400410021901464330330710952274349437916144764439219545112687672199728427464194572783699325248805311078444828636294433937054686583656329028166212865160421614837811124175705402191291417549476452440974571783703341033531209460295127295125037115811991832637136253345389540709431056114895113289646100672336393244382796855429933013848552896383636932122331729549296786096262550209966262818263481327644050346540498967385485955474378287095540587556958862154325094340642632477044361294833335490799954163884456533480859505250624303573592121084769860386442232406557693516061875726137529265174547191694045329923975904278011611991025690150629729015744690349483203849021407866098486925914983629678451400941464282615333548453849498224707338798988159562071453556643727084250995979702540676766632089484732416735038781355628865864344852669936267031073089341903997760197047710156461168041216699030176410007114609874598590086687435126480418404469606051871497974816640175769470488562577089241077556180677070889837765682736845404590309834821276847458271185289932904616392710663695465848341112457802685842204339607146916966700222898209904313300814287127304463900194546019664987866143677351941227262821419792505565681283162774704958015370666998383070971739387851978174569114992520467262052471108027327338941911271683675568938053408815693589544748345777477713312670268388168042764289737740601816396258003248559319764479017347290173983582207816659333751645810268849387671183869108257837445149326299222778448985432643026999714988945421018667970319942012675155643236138737181242587903366361829129405728274458726022816129130774070045092777476429673759267241792993901626471806899501104803188773486009119162063233156443721961718254625957449860539617535778940261202057742393717863512731747139994471521448355039238861182954632206246015958424084220500371281546468080173534257779542531918210869550776852277156253723638745592491345972032573558878049334242936025571469897898938796560127785590072826882996196993371197246993813394529575171709999887410065037131961380268464973556536470516261975320277342158418222510253288586293994680043980870892733733782291925890696613879033111380182512933582209698399907589840180580091187012642984195257134431592293140115092234732988525176177625078744612469281604021125137174144809417527311643903103794603382958761916355352318698371946081994542036848864810098678055489786708846864286971449684945779457569767782391365795957443256762369766091581041771290382873173231505535552174003955060572309327264227633696110541771363131209897969123234089406942167039267543466107539152035456346051183728305645197523288393541592065918763749514097161240968320318634593081458034009702865560867648772936418934847527069144471535454004020272892539333267686282352484537508924159754174001114810287996741934293496165954705871213245219863229228528830508535916101384502887521506088575318326289563408399586109727356378514286713126750874077872120569623933902963614897489833772501257605609263658246027502840337337276943550869766232922788225677243860718053366393012168417446435011897204185811529667036941512316889031107106965638776134836356399611182448995166669458477202299969625543417975735215804186756037115921267157168540774983847465739365747054616635240995914485484257369288888391806266590307785389920877736298933795624707796332442493523265956669802666391898631695523341899533959371260041222574109613325540071586432527425003313209163167717113748127833331553819933509735185637031822113614329930679849170065039972480610031629454651275472362943176149659099590506881669937407114656399362883247728648895152967931773107445063414368483042129390915699493915837931684562920330730004821033279041194188305247497740864480529934046944590631727277157216531434499085363962299556831975103553911580916307970516716554845496064272761480781413570666968899178838690256904657613390430426969325434401184568501762694597046667438142570983869121686381953038625278118376025130838577883991507647866244223067783176488741330812746354588305425043010440113728093885336191744543611551614475230640253510408749869401535921017906007590698377627046934345249194382566018617925375277492513941415195466108757737944417331400368540523775392221393425340020569678235022194992767217089145435519317945770009373245686057858125724839899513746820030476913817089497070081000862312932443098078224034693007437512546139487854676744027078377117660701478701129239744715570257652916419539507720234887817859445254985921644550300808109051366513006160895239057777555134960142977975007530311552537229792708555857086065710921138295430829722033963573483255561525933321756102974727414172986782592250430782957718667693222681529283796828221132106228670282466406486641850840195739324031959048006237842012208549266339716596582270360077097801732304108074646246367524946791645736485628634797714824853092425693557600255434674182678336958303666054282736510597922261012784289869767769343052972784109453749892748584216538421085423320947581515397331757929492276840532045386485118436627844490810210494532128895268288005406451589516255207258689335254775988506376218542277647527558996017883124115948615810387510912973278225411029714949092550753688208843939477843466152345464933303344887826346608232187188804595101792798840116083632648862273857983647127968325764981974624533671027148338458141208998494063329623058531768673342642173574658141371847836461880018268258349031469248553901977314479062191537051425729542886315787451833179458597194757394541364334199511053813314806004870474679077385116613750234761904269662409514312296270142895870585156439785139810989919438242534721935378770068288006542950493613626970725338466257920321912587045267243082159992984841172686187246578869174272573889989435842778319955621995462816120388856751087751922497831773096292737605717627476258550111514366611354227852795544459777221444663925106589646923574474157240070620944342772886534326771025658849711523011178734871385057047241197611434063080899596303421147414034991357240051833446109609097604199841253129509584810074440862808102263622216973403911422805525848302304369994489749344970743491433826899067088818136924730369406779022023165342673093250993859518238908913021855388696944895471018832821038689348213813625537526075259729354322842811547684224160150581751728878897248245299484936030823014807082621062959797761435393262509215917091360575276131509430507665744047781851112616530479912162354781596356550216388660986946414855181502788625449037881383226059005432468877034826688699479279369414426151463629185753322233715183245354459726658025535218525667874982519996169091094082094610470548068167885001832857310083431049476361761833886457667799011116403567340524683900734867222964858836798549314329890920003113368950321942708224610010098829915286028288851223493965122628721461309649592707788168209942535634516434502682947154884433389247043516290177881025569514964747560947523812875472404017983411298023010596067026196587381668491239166582842450695789143409985148475474151539504776171231600860718997029720219918413291966012669786348670912408536393375593179609322000567052939526744593551573163230082754295932393753220582485573707033274838721033912413004967509946410540134921832769454129407982618567541990908792270092142076055035268070628184324316622686706276243027190828624350913507210003590105290670667133172943320352789035034205665512485672942405979156560601959857667575485455206303560971744783230179861946571566775298890107967607365969147291562352795960944833894333548696825054847014996239686687564593164635067478272672580650662907603638234915056280441270194569483153182687473967844540403745239670118425100648287098700391021461027332196618312554713134675022605076284637766751035856320974432384049021467967875666537420925762578715323208953803173522888402753678072076638086513174390989816971707666369037998641221744686933362623020877576251322898119920611836993642819820742839186572724277809196312955732946453889407172511271634137811458342420652662781576212832541379139519653096639140115341952730124829743661848156039594200581005394643837632248124697188365653979392546477998297819551584977831099782208734750517409225498589411289282263039757193482597060236936042913775524721434620815950905691114479231780144171508558535810953345872298541307397760586456361205829073327729381126503204558418020287218685465674410051055057017363906250463728918527451359116037929248222518164186113335751860877335353795825490068476201545304786380640861221995166881692835459586145255383660230488250344408314931858141928771590250104616199823173503676527708444892208402594684893128212996172501451242121290853571790726856178537870892700825747842150976321054357153122164848262766305572863762106564424214414853621631827340662329562859544938995220515983462961363126840739472771220649930251957437183992337262259715542215064348234981936123157783945708228704709214549399817609222070045119928236180815480502714172620567720651454938020419695787929880948926238678915097625540387273636206054159045024682786509683184103431084960718759646571851249922978931648438191254062307006084433759436262544437666033931618284569058361846476518491180671176750253204805205584070815672759508844194086464791633542150504745639118177623260613725888166629794920318332117654639209530910889260934664097885236453650421743811768375360529341898652056185363018132346592954456735994070556748796883107352731249696718352008419644011713275588436889854255035003567050584555709033277742932399210442080177873900148731735956369374246397419352566915948265383251963258011790877134648195501320623602935868259462839912143072926254985949764502391148635285883488940816770208203659598369198529226199721887630123102698448681442237823975135382658180001065289965525465012641874290389250856855892792057816138398743646809363708290653543014696178508529774028125562538211582851658344176425380518465654947931874624575976883820841973178935728985192196955277057904269541152765836314568951225927828489546835048921024920023566817041991005781165110532527972673090991936478262966241248613521780606114705168272148554166315407531795146004930048005557728020855935948279573985725341924478690108501395595585056898968478706305401875544107169812134503004463549367821237161226729095656704660316847445000595333314745486239117395895957611407947205757103427436928345149646740236071522535144911537320617339108080902953573543150949828579489146965059188126743132155435911350765025715991910572262718991700403556424144009314788237005310161590343858143394594256934513596388384707998252565694368665133966101241790185253437801141435664244999620750836924422887407157508300931476032756225814158330922374471124114118666453356323889091826934529011683757075368723254292094237029547648727720194306897775728580036614256435172173714955437123519826205302218584014319605022113848091205391456956905128505376011094339925370374248408254048255426082882273320445230171906761193627320927885341106816180692232614332866174507572632895899280531588845344974220301599086979386334325004857360229018922427435031881895398955781311505438613185687451266075078532673948353962939698671174168638367076967820697035274189048532109340135550104100171015781331870943538045859311100412864040004470954522441931299838460969884073266975516351857323773720215018586898150373556619668647569886090201620460850616108494226086975744775647335054060214601056425847446763679948784391320275267222937590974532062362812296564704390632701769242761716826833004955026400209367589867203838516857461881813753685899268178644553584174308003436245386917770242336224992902051106306184660342755235600304575616594334771975969809739382090973143280096193256610382326578097329190705899048992183344507638742061114473834081592410972316682028004192973186537063833659839946828330277122735269996495311912725186737824134303739483643597612293413745208833737598923284196571833225727121141142584264644077700284424090746239674736627458107790453126495910924009441178053464285758196590942711313527609642398294142136254996661310530141517659715695060906608958340419313139177191030290801835855810387722291769457746194610862808309460009751282329207001087407817735736739006347971913956880211015375633545271971139252474337683849514160044110408513474155044789104318229100052543195901549091538064213695920384896356485685872860374558513526299802050397492356605814951585655211339691688251501010962783941805173328223747889141138436049470466004875051583789241102452702733232485355894354355721742894665035561254046913060623191786257566513538533063295711325293972961887366464489416441160775316133377199372990350809503652019003746846614156242381105640565330108220453731774336613792613073805323883173726252421821317441356629258140300880836075194944708174458807782334632286963931640260273379519870396460999717812339433037686579382917892457375812394136604049393825386901721719037401242448841218948174430383687927256828918781239226187292028783689303609443205498188748945246939769157723350207870929596187956074649406599647673552727852644694938613248218586753972525356955583588186707341820664375487973020059412040444945687179704028391857489401903524194982780066034012065986808143341203677462539611064635641994665522047557952896667119931569049288358700144494843549335694100934226837245420357282446291266316571852229522339576434677642785351863125899610969508329146161807765990225695258256010956071275028830305401421026385677271038384858364282230331761080981559804822138781970791132967024796905821080137917272798838528566525989742165374077534811542000283687816583475612373354902429891022560387962878380362517912886800250717846593991796018090355625903854348609946349068204034853215543848816465745448832664940711516225204239965934346642911781610576818699810441016460812959811103307956644418797708039310881731701554105324096789271514476030123417422046316729059949073583190619741332091798046615863888442785502727993288292456434685573805397661389170095760543045045968597604768603965862639140800894571007132315400274488819063403159200357264433493129315909597047717476990281953628479804234143994945136050268089924287300619168511423709258219925585032600053812503443042364715919861140083853001918336155929943122801951273365278097193006961335705925947572828427781511806985365350008109151473009999418775913671067537919157978604807235521499341757776687945560886647930051211966530922337675410927360483717798552096071675622434145865894935503336732777933717771024689379110608127808907957166047475493821774142952572449141984967642539737322277684429007776532156417784803919924418466138761583009364705210196062394525864965910113402719103012142501358459353860472043752064843370643873035504512577867549711480935532348746402561876798937539381720447280136831633853504158342706167547447333822555277877410987157997444976049940126741456419394769005770302101219464865490679336924024281358657173380309747180849225840048940977356851551762674655995892272435206583022442799484683806785206574176649299820316596950656138377984871915957699833736110112112254674184954448372538150357590963551071062475589536637848077794725143838415609463854963364551227222577232830096833351719460446461427347924069217382994882963350566857562080371314728019795878337902486170914695040848466569879331510952333154118747701777045623255882800453962642803019947680941394244541329389385640364210090928854943928422590152975977220740992464726452583452953814494156086877292399661199940411829046771656178732327673413767486491320325788307501805147230047515648233985783765542165965758759671670506638476659213649969255632997730653855101491140052524869846871521060985889944686602933826885497141017997649726014727443814609291775512611733244168043025716357682387379262869825737312515215865676790878567708896480262374168322716033442919441727227342836193322333724029910550490451942095202973279649767292090336447447736581304711164747564856650278340772363284192711350854557800215661238753798512014647184787099149580580117731109799864710003148964813200952697722323925800757472885011057984376419548284913142319308605762803977437738237174941845933769821095148982225653970433624084684214480796028403842434902020769695990813366032062717976121928609995257463057649809813995899269172018307040293420528460342350751670474217704881485810240055550972563474638401769002321260983308215061982378464618246709893393973149384822041941633790803624360867073225071372404807676862191266187505260989464876901139664099210813240196246473500623889156892280461144529893978513614987981940235691461528141215130348602813717011330938583398239726068533439505415627991702197820134141121580297897150338830174602751940197276906925849566887977813331321897492520021387046313377876155987214341889063164458317227972248492505183898002375900821041456867393734484929024677019841023488691579081771438506353939397160273883032582348380505972105655146377095887342759442325095434281582802652077693449764646874526732842420078301960741857895578560793559994895301653419095055921874550573717803079852574644575295776283009016251600451544202515312049906151039610961220780889483623776842520080172155761890335681409377934849579502267525146738307534915933611164070184779949912297911863832808616493670264433942081122891840747430655468146243599714757975528503615223607172098869246140091957487565386373359157350955277307928218261843678912769252562503999918196903625842040040052661352369360415403280079916536859892290576997158935438838135890822822740840879548983124357523874130031896630019954672276798892504418933862166762103408751134595519345670026920118931340988600541525351619416685341122676711873364765254491198792916950487990681127077547042888750451531702067980142135848824160710620112405036221232144297474966177906926768626338849694682191946896628168016352593121997745130367141116789843276014720543735009098928188980941632451322247479856998877299385368832665035034398792397143186479898308631141152153945778504635425458173254348311975912852134375725708965100170149737893544937226512307150836338509567107264067173717393836919837421634122819304896595024501156397688686066172599288186619447108910586871578837364907998888492715969810190232582406332210632619993685099700038932583233887902243972746932625339351632593362689397208408107027192745102190017068948058129316547427014117985337606580551620325118154980651470376439523207908851684601159028336164105231394457453043476333839446838947156293997255116194631859841709173189759988994575972548242312642895647611388094036237499102402105447076562075863361381127454578636648465854015261568902333937042791693456249060053720741839317771582253552181692505382204977306835990339264407555967061591125694727713149046355944902786259221111358612351729594729757265232754723879634887745705269536310829774150176850513838280677669766847395493981175527731974495384068368318299617178260084145199080198616953485545788868701105863548951286652995564490015962162842460045471890820484700239701651471291777861175406279773300340096071493933435795060041204814164207336479634769013764621634696561011010147837805521674636580536682126189190860605799639983950895685805558675358087198335310158146334369947803417276223162341635995117021087344709379548115074323372430484881320707431236005925023626361271376351808985452826464685809816234459112332113487470128331513730649229464700042989984840609534386398871734458404480510525405711203970729135286113127647865533790083485938135373096224996882017322058392263018103660861022290674122746753570544540429617156886400129675272552232041035073578610768726145756652029192227905034954997885567577284059195419024779339365456114451065455325650400474311512062964914835224983662163941859634290154718602042966494947878082550389117678976499236988056722518169384115842773312014502609275996031462077583943778170820994484710249217496181899243365273376342377902433953872746832408875094297794906381916654472306598460330926560387528685429843351587399342328571559170363478237234361847391530687503033507259313097913629897644508204693806957550578253800291414030822335930149552067170731589171439253573744736523425424230440143015863546343650474160965138599888948606929566180665947155848525004695958375004064670264130594497875320196574975995839162549785818316227789199526600127715222259291667190103940765578116193691123181252776174048839414356852664540012742836021936561319828728663956546306040612498580427883474986602989421645782310488751241481001374637807139410891179385127952960394901556011703232641827554760614180732627266743153555734276305825523641617751626531752980975640941311773217010696289914407607916483317248626489489871486200564484841466495002349355873077432035273476122125314514003106810206115759814995746083384618588161515663522256261170599424316709877725000935590228971346720711883671127071002351537353621785253563280529496606313529925139166723368730406247366314793655720196947959748191696188799108899588955788315836286138982232464401585279430767840970818433644076512119065411824354472918964809368320074091742536441616137342688546583072024410729219297061246853784738580279283032353054195191744000252134521288413008850820099738401283813672502777331702869762287741104852143681550172831103007481635160916309403268155897813521274961951276926027916358208421887506749463421764447513393098058241226205528922643027350936273092830452345560264364298579160561126075568769781496681080905572674602960297018460861624606431425786495669493026228958433850104882132026390075657571581638565594700400668267657818715212155852748951738512573718638889240852110100334809916217328570654537395737634201423663470520074673016111432746539268299779841364823481127163839736764749910170902760632794701174794360054606545666772156261497940654420714275575147643696597734437527521288868762539953243972892466683119803507021275441773641267566884135318441664881910383088584447617751649297998497703663261188997210748226161746338608450434620122426316056172945793267331647886145330787680141151749439297641582902483903449094656971279140186802709851211973052186348170009401605366912467291037980682605030347668765244762514450886769620998007304373994468890424209860766301193181040320595033520763027638331137670826755646645100516564614836312581982831791948645844079030662314205484994829561603020096202261061181712138951508951178360423274776155275940871246332568120640626866646674211907515760894016133101300132517636822039171756030424256017453514966796986662496606755114921483212443588440388708855374492955413160879108684222746505862460062356255389545339238867455566955833687481828566328214791915234844493415429903378668648652995971210768260870625854322422082385915779991747776340713750782893945782542993921344989275092348898365140286912235501027398104672166396259003501849010884632803750241834391346527635356531106907501215938737928140868074658923421122322124703320744698071760771539452720790658453260899825266710268341034694107438520907739938424258778703350440408210028184739404149252811258647615877887501243193557169142702023359871602178835388567696583580700014830982024313375511177728457611409649330163918036742698516412480510829332671675002239638989713599468000373606170729856836662181880893325126293919872103631500083427685900367267965213012528379326541107042100438074516937669798725828471905944779604379240214438246363372395145137433673070370167069477774611991995434397652873055291357984476304069373474656149524357654960618364914118964095209043317145817855972019892214012118079593206681916487003778531805241230428005616837601227987631774227284638566037408312552377697124026023858234060374812917352395781558402847083383314320065303436196977725647100259212871824137674456031226928244566080437105624544255346068060602826056196770114098523667369184641412406285387824475705629236587273506406371022880828122674195628593230312905445240850803320566668518385430397332204009407477650030509724786030358757648981765073708555805952508245702880756039030098416675278952346148487399994856725151489198151777882968820564149902335713211907408276906807877086824777841963546205941613803681394759840678447206155489974147828984004961800738165835518688738874234978351901183527584936124726688822253680010068312918198538047821984427859679466554035562229836725131011184772142039192788531196616213279231309299155231877969476607810807532323383283487545639135403158027163889821581470161219035577402128953378176328306267503440177607322286933795377339879617834442228049634835256946458813621127813021283061676111112601621867751621113338207092824752410201502568095056326709232694411593903471342962234639734117331041525186331168888980681901327208823612974800956548079788778344045686042012656642757372816095293997577727194730977672049955630759019342925569107063057609896855828248558391075843000625220608615254598200985637276347800132113414440995355540273625398423829599883360796348438730848544855445160522073749255957918286446414319349235147767378255284616190434788525435264947111993812967935070524681986574027958923666758833885055731568168598827913918288690456261275653174830824744911348258546137790588389944668826547009215053191393501877354803746631428178309653398996566307758838215692619490645092892849195327114247987693764932359925438840818059857345728585171113074096675744297732762826934763878598254921372278436934110345723282622514277372609442069533703576624139214105231313695088942739919578887067247860808224617950034480423844409195816385262327460015549194594574835775676150372140029125119192464977457769071448340223735691935635731117410744748592703758194668059009547415943361690207531334228802224265234406628686475406982690654441184364038181615506166369053386955287905568424097919506153290093198403232250067236128723175762454057745073311940095772830344761095280974383397743681051481278366287330270374564104275849438719076417147732344063242615202732519921318507084907645801259014247848653468028063245161509568078625712348839126694552565770199119104576011645078538196065037506202780668112736814253142377130057550653640811837337577442841925911224962047364586876799641391931210264235384378460684924049307278348244226978467949538238361574162157679417750081710397691587312986202604377980594085039865279617050458960800854026879757877329957098191045700954248923159347495295972621996332418807097423954689021603951389901102814581468120744848190610314429745181219624997490017978552830618567967378720420760469677122717724127413686437671790155869068166274611053448766037594158829465660320487499804818441671125259476140130016831314866279645187562822275558962348121917881576116038784480342434290234290633057176123876310014171013742629632050971746546991325709976806082371909003602406291655042581735079735079223664150368849411088177086964402469357991093275359158355447213700980449654099943757436561965426330885036488895780035386059606284319175181887333358186370946623254712008818979637323798835751016971258969610729545515077943519875010314145097762895554651829728668203315098840766515648379069281463220767440328693360303977590714273110203182692424894840079511412243523436083792908146319706815823767238795112793866175845142791827585527633061937542324713489989550494861859123623180824870989394901440489959180175106988291225078415107159604263234632662523618250550653865406605846291596201440090000528084720526330651699522267769393352050619121436864407808420111715135193852877323721380129876345153144298809442456766653640012497197637517081035254741803389624421161589309044229866575989443361500554510134143744115777316992521827195630760756538824356769027103719529382406800510953720977134521992533666244319569116498244619262880997779905764510055133244693349985663431966350299555104491212885907147932854659112465452532585657835328841701334053722868677225665293789749114167703834498012008833198196498877480603593573388891264989401050064509896907566576483378799603606440525893492238185654750587304080475288696152126607014104530553695642862068709542504251245946888833901265706569942421074250293515218636528614643424282497687141216450075664071106209971521899879145101790209581944372469520725588161784598230610520064413744583100325664372066161424094410109843328557226064606485751157886497240916775195873633149316405310452716210575932054754824948762426183790341388286771802549297614863843105095583064008291431550703988168512600905601240928355462899261293562468581522821095865255586480488757765917825879212463045899870369259945884514116585540820807641834953958176372721011710063693215421771248095976849908539303058073636073681025022578162690247567973758943231909024142871377585700191469734356690320727586154545776388238348210575185012044353319774198523632394170789461262203821304159631969803054324613850726525670742127293559424724061136143159427912827925245415163869179356000376341679962251828159279370255011388132771072787882967611709903499907197030023426916253614924675273710954706418532726702404265538515892634627956385204598616040045428944365542695532178592716050946137452677841804229339998562462386604698145510526091112703659120556341462773141536191431036590639971580117828983565554369241742362300783494975556524864788620210624654507999001586075729961761345965351525684881423484741979416715904422006824546585097838550116218089134681490842811368401868481341590460236616086674329917134925864294656893612743922289658683695410641492424206664403868052417703574049926605092656589019430740417625283630868127233090343398962483788389434093451432936181183602260948503691974216388960571480345975286432734262686695126212705754920492364911605388964132403383078184459257637518786046409040732531982057907382361190457178669806474581401626259193890888610140116329020364488731080665530479527551541912826356201977242707245303993762099326953200454652945067612508320873394765464114067026787980063759684392482084785981572606194439326030873219162680481915963358722463329534003438092896940939800066883424747785303932891374635086617947922383490686605081262231399697230150003317359100616056467167532050902433340780875561508480871605960133503417336197132177877268260418269427498705169764157084487068523821086897990752320122271024694296038699043530500205900824392989122831553519181067309929093853714015774570722331961716510528123735130653228158324104753655202231478300995790645011562473269815954806795314545044520655913978053796906797673314785813149326826582592998196251497868451483379559574838984516655954623569863361705925861495093622277289532531718153820375808193219453274041886639053121548440176578586406667883785323331064417679757039441665841034320745330438369087902915498113289596070534759323636178224482987731937915442315294278746106433208264660495319530848593070912434818809753357598770723997786419432416516555945864918079491986249232705588949715112110669896455772245038501683888673535811525240137589993647848170999482510587987042736136212311677659633634049536949095454275813775999388586358317161641001693794371806770757635734251695791427467864603098009860971364541670044260876267061676385978957777318253936441889417259459011486282560330657550361031753161852723798909661998000739602125084007479009868864358327433633583740615263005719433668016605992069070261155850722986357427915632216103438378966643337583400364195922390503925801362372643437995843466438293651498918315969187941088147516383379532496884052510938568931974050646529010626585287263197129870837437936532627068591279692311549504495024138091881328885669892064314449512352074323279230390369975617354778847503924444626770328396134598724786134045052853147161001568276482009260703081319290283714570695442272751975172783751770936722124906255754816460197057960426498117007090663246758990755438823115323652272264048660043468987622577802431968998823911713108137668535697657876118199602048460732805960753548736750037503216902716023220296439638154171202077426613054809137784978213979277557042027500151997225162871852010814274662299273098246750877996310489214785381076502920284600892746265150846955980358997580926032514536502182869667082402226373577058081815440032846163210900597460196150225370648171652919678789258815121546318118853983961413987872263525642623840216015942796922037310680953233052326281282752944975660096974809013574612843853167681372990998520166169238225074844268851039283837151182154092057635981981474425624974001062264259607436844709613693801633362832563006072661432485504281894699093988940933190150014878430009859081927925212293397499512703890745440660197430183924867113555463643867223248473166663991926237078533601414345581594724322148702649413916046689477728911621141089848438586337948454727235625117576570539453694090635121696488240420137746953544971149698282978425303353465351948511512532052853561863068333621088908661713123518193559109834092768827968165610775629219419838944913830305884277877456378404597255176248277221297060783277161249670898010032414612023222943500832113884204080550972714108845762219808526147436527845080159012826441086737771057807937425466897828795420076600772825711829452960782135994415605229391533905852841288740437119236075811388362368731330799532850326193603193957677137925015521231638825132402676599914960100882638547491545431806471328370520482016649688246150334855212381931690910028568096729843306816314450278586765438291687416286181329646801314802062821364931485703017191609926915193510118389038229909641704373026864723175444683547920211824664990499855332516188892011039535504840927444556102051682064155947909190697804323386317441127206787378753776364057833791831553027073846985436897487763787250383793759423554496762577681461652677452530854088068287564089601929279397231304193708253240540431545032549981983300519181351649731148784364388914956916633923146551094921882062300382699962649969817861368537033845418265550640892976635821968136348891543242146241884809027115220350138999286427117433745110667726932155655456534211878550082485130249685620099922856073912687733141989978948117258521602244183640264032416040867082643701769043123286200604817497627588215383216304305971881507100112844975332710443758917931557724557035759540066510388970183050877248329019243965035371171580124160556642355649783845793403326073829944984054901823597008840501133188179109444040000457685055179395677168937913500720684788251242599629588950408011892664730608717624583409726685577259221043773215323368426981857397114957219110484815488435487780823971758691155352725396581777322133746142848804116815706614571428567801411579502453010834697408386856321024072403729270878086346246806244315111931008741438834725586879780972912597177908733537991612994068456661350133631676844415631394503685284355131319040153367495607032604746586190140364983286887604898380337332054822875328141052184196873385333340724144708574370182789698671983901058293393341535927102277494033708502371834619645719748243855258146573667399042537273898860849108449192674131044885964598608014256189754933575514007812657451690532802344651146114730806669016140809318638016459052765775147438957337974344149059317106177063986558431885667440394124617209543579535706419983918598250846767308207149751524273947702654459757835079552509974945753224472749572954762587281717322227573267459162946700285825789551216965183429976815918379135674418943257020526246693449120997989608813691845369096692095172027353883677525592724991772891982340546555834994020372141321981200239891075429211134023132499596667572421816872218596174984591090292377306738405719878605157078901588946096043689744641375311350823166492624509830532898879865775274341807439150707555839621778781773640338508316329019668015807879755935407511071618419678046969870690331461316699979209927904602172943356849218067887050752449265553065098872238991098600649554967468811913371866246898894812867491646766921284589328005336784117870294269796737983902423249233446878413315418970240470320682058895430759783024558284704274605224049084384967283214016856109900755532066639381780075043176352498340667215459141760989300126109315251060622789108036229339825977909933427425294680554137113700297185122665212661653848159892322793541972024649554690122858658047340392503056758881910801178877970240355349027680930961930820911074896601379681326328359872199458749556624353285936231724702438661069268238464537559374012491499306259869827654034363067327835351610491819868256045695938123345144288540643879108510402192438509360277186896367402477452034741149286898037837512638594519547098666556469990410296221762612150436224460249591095816928839985918705899082724642002495350181721101203450978947270645461307542404082813133657335499242904710005000336507957216923749269353249844721438870226893342499133120183972154548714853547600472807538682670686562049746407628105420850185313430904253901411364312250439935810781337379953815903111677470889662112096362059825296371767097767737333100422983026881252549836047435672716241592683047846984358179519797350274710955669123144564857196954575674377485560096130839649634822665235647786849210313398685524636782802047248216587050326172732695767637601073496907278681559054221319768144285038707817381365607799684436446158870983355653424052298230704199060192284817786820575435760359774296852670617298210717513908671972436119156103121960322103413368459231626912988404865350197855666733024467915325873751902297513701250824796196054339352885725757902219306589634102400984914143766900370586560100544059844753629576524545248704002557848918703437786141287452862114135097776186032183214806183996485859919129620145082612481872051764631344056215850458381871479520090426629330837960239253696315017258011601165097097614286360050236950300181287951435115460997921284879098576032745341430271091762411135726050848796953192631863007159459855367653189856710705000270936232112209815868669099092484462277126105924027637421914566141722755962948257790078018360485545520792406175534385490616785855875423866184281499870233590787688718666346014973249994473821128093381958943237880239296494240787334053959895803500180868414457317157933290115637325764508715165320364745018225065453778135001900220633614744104317771825528220792825009021610965354963231399960135228455893180072077334845382970185809174932121942870954848146107280291095671857184156677151412527898628689602239790147303630461502767108615224884338858626444128024564426228083392505845561206607235028455760221281203563351181904920361136899410843476936929378619640460578858941578303085607625459369868272891524812290259751275584677150733445344353998578959203245878820722490185248476478515299694548959180643034014280067176393477901557636281204163651619747076399638905238499732097220806854113548036780056721798771735346322081037706086971415059526322921277439264181016153802643986973755977764029729588549435349750668968597196074987255767801244449492197110731193430839702083329482311842723193501393200646057868154276056195177289793955440088012101532953000435564488860045914844563147249363739710551630101700231500687897616789048440653293727471522834748611047938143817834621942334033367974401324315541965984228562953041036765819962440573936715441329121708004697932289358522232069633620873751291692384455607599583874682150289313570029117791184184581819643641206912683930786458241597853386919301721408864514070213591961202605395800710523877659457930593649407347642990009348490511919058380410164526388243175626890927213942390037343422558277102568239118869486836264321120811419958764743829723016980322186480186049455987645879610479813778513929106905370411288774405782782143105377569341845742473992944260645042999921100932676666385209558423461923013749428160423936377420660591949524053234201860941807894915578536037595527557556509385550824573135273380904133915609671912625076603536689982602199986684654527612101795978625050707912370019316923308447539633197375662529686494015732390196559115028081638580865297437850449186276697103298527629844965969042826371528161860677105754443980437091728756564540656279594396692037820551878101506086255666418751241219770094575180070296866120672948462584220267702773762859304036190157556446821003975521491216342253997855701011667195288915350577769098432616993654671466386341011837811999374327507569761953723071778329361823907905707511022755452035092995640020220420815456765909957868823127858184003814338263113443726169792648234295957404557922313906910169675241759308640641331153762117079409473808559967484664142528780281376085185814224287372780975172833599977544812049910577306182687967742632559686154772219345564101631785703537606479646658173710596233948208598300593045384943143878699650046255545865164243488769150289405157486667393472376158996822661984195957612179903190247492599772243560246391678839448767072597945995185744381748357952261252087597746806882812194535849992967556770080408047305267078791445105436961317252789411910231418475329323148379167868919377860864985261742509616674208339185250528002628807854995061236956993917311475503850827952845657612421926469176686463222185965733848246050544843497984611537219222697682950980017666452363447234424368216038067497344378259584860975427333206896899600938642381039734270689392479169892657282804063068711724044596185977914454032616803174962912173201612355153044884399181021755083230235081143241371364904999515950473815958249729120589457345313645584588413185135020311110518363827986380223883837991547854093103550155928664337259268691164920450273623028623346282694115264185685309556561827950264653819825619849045745684144054927492518267283429225462155673584459940719385150206041373338302498827671525487463934734938957143380673265727016256462272040200154622539791325094902269607799371444873244531978856133491605864181724536515752029452458527148464934960685512936165401460202228990238662404190263100824293817163254967311393710577903155551553338301938197272511433948158251279997169370634241292217239243663222860237504184099871047800175873569465001951542056747133458598345027495739445678091744139362425939470778385939462175353504093940616219249935819293058010005267037674543582688073663984596773659217275582761137456096694137028601278701757576851545471866216695238991084714027672096816605736741450414543389535252243746131759803160242162741689173580703645140016972702421160528603733355782407696897016136101959555918517365325950805708902989142589856872490904999056659821616170549829082359929775349848368517196571657674149627032857072644975115483100386700011355455775245112372192949165450685468013643471704371842602287425061460144504181412763367467396214559834540044117591341665437811497885692562627070225180702266078332436505849486572742086626904286638849330223215104905452173001097286072708731548133373332073369470785897522980678251426573608957677765070989348158125530215527547988049681311801219457303180383595428480966254318279502857162803388791639666530343067616676476802209737903363860821518461887913812424344900373073731793735782015016193183588804755767141319999593863581910231791660316984956933072974436860069876794818300719165900842466222738160431366827126139478662940167552876979574281820798305851130910122860776959580632993351824934038344022887252392759937395698988216491727196990135153165514277938879755253712809865947689106318978807997560778751896388102712219865101731330158385156439683801758720121818869603863237182768196480096539195822343468846152257895486827835319788642395741287311354410691193018688335223064976839575220643117676363170801023954943241105480179348342084901689244144279441903216985040960667473728574322878858341437950141138349424799943236016958068696831530298200861212198515624597688742999575030017149914021353733138988248052095109037683103293916620035460584892045371472800461389654716342739123614952384450540811915980473067345690692365240443073150473572353959994695491549817390919049359357878265309441719029353349849715677064247129665279529998326576800049122359084874275147252533163706461013823896353668605480036198820609277702014202873509605694710406398911901932373698843563161090692155950598506603140510055831672124105880649035998213935485360160947967358734901244004471295191531609858280705749199517537419427781081355102074942397981863191159510296142714905359196075761504148733095922826463186292222968424257612147092330533108892200869825377435731518113547191808893283435267504811209853233912711309182521641911087550298664558468707217901875500210196329621069461774910738838319072376414515493826398066383273701256564766764813084580497367720633300224725944268157167137528396935230829445089261735084291966001933312043817524519370240699546390517890649601895977000134882559892944380566980725029785639104298710780543069002762822479157937612006108368331159344080308253474992314563233021705430015324561786384793377343175422798232591579731198402110231976539262810114201807622175046477520880310005813311513060405580958593882828822874398853019014336016857641093513421978143835234887982448833072934047197694584971034036160161995253246635101014454426109622751330412818736914912606964681646553420120709138598903370485714919720570985056792958656592991963661897906970888169665690938599967163301349560459156093392341021540860982275800587703440795863763258132496292033880904134504535023438168552088460897916697188048152528165977157217308389241274668962635998515427904085956936549733495600794700881256626073682957025072782155543815816441697680140435591231168583436630348901432366184318486331233438193245596008550201816614011510305133405018988812661226512412261129886876073294586022548289928791759763825407963495279813272255875883001789947841884182279509556468345043725083136817671887843571738055105613663586073370528015358105035205274909597726378358175621316124027022521018669510779761756674885117117769734856446721227134883964402753942087666372294942826861359610886386350958583650213802002319749029181664263364734782934145847309183150444031056551885273192275713690135737847045285981182536321812988308804945013830267048559756683550145773512998551276290839389353016836574889423537878418696435952773827145176220125434906190971239631147626129097479978728038778632443476741324041842600888329774556314429116773068492761859797156963803772211546609545455241746380029445755210811092212218366840233806633653417225366294637250782940662132289170130175795670730192482664558243648078918677601714507322121063458900755453254445733047172139118796639547116960114782040659937533526772912704155684642541558950297013915852868194272332403764693704699444717109117714927750635449696908431606178585034512721061297589101738995088952894458389215695627850032734103910857568511610065851330869873516146256198312331328519583895546625270536544019055195352780414958931489807500059263271785486847811447990498734741383461650858279002373231948487581053794235583395558945230469892490666679799251688463447995550646933122353987487069231417035820601563296864024726728861656034378144178298786399653396369193123526707769802733949633485168281770466258807187211311504184911076848373839985269456808805931692271294921488397135772623576012480693607592458284411168584971608732594786998530204587175692083401214315277807319109143394248061011798117897907313806099252910995227040806167041856833794967244398569862557903024762282923672507834985389889102835592020160717851259315243363685292030594381046873546204007258944553753859329258064676226234437511557727594782668796709476380192114017144194924366854721237136173562829868207899772535168557634915115262531494548733815098438866397136690536735883980615995772416562393651553906348999952841698766078517115647786559611815492988388221698333966601427353106004906703565844017262649372812616184731124967876845856157949832698790861864864731425061810701066501228949073424169852463203430046168952861429036881659722027322593300932842527086236011378606037967629096071472484338347852243840389599630971766081340128280304499992996059451381020458639684892305020908460198240785487752854805382672571576733716977132348560622870890109058414419755733634598624250343057538219551962536927382074307142402346632964751003482932958955179774111080091311881775428176194730979591761763032237212504854767020685182893046280338769740204644966353092103720674945943415303745893121695166435944829703100438090112008506078317721610296442353817210709743654250535511110853418420740797269068399675394617304175300721451108543388630390299353185174163657075620712379611153662051482159253743109472486304237231265099133832919465461066188459714091294939231446798551546597594278701451906330556795656604206518810588094391816323951876334129355281387750716774272311908311964456381164027749391996065731520014053642184631649604967271673882884132589513370415975703884466480069714892744570161089262260793205928686213062275713636325796219773160413374171002196496579186491450927863109474202134456941460657924886475482409878235934360494301218931227108512006022986607379109234084045062085151481971171590371955687235275666401071052515589850558242754155563047155908605812560623304143110438699001241832736767274382315038565921722446742315955307707328076014808363018870559893772934086656984582835695574029966394085955000558538982466253446410117012525690167861125180257780860837076074408145977083410287629712779850982558616702164229853340225536557829941223056038141178398011541189822562023946829453925161514505601762772173577317144451832243270716493693165997637374437684817679045828890760189093452214846513012991484509240060965769733542678292569293969698809830594338898279185934308601018170514567246237407283212340715829927480086660947185122488558043029466612360430551014937966075342192362012863165287695384065404431811891157096100874209374454325292435203156233700699701648244321180731890096789695671797072458199272680357668443381328682101524950556620010264435001464733577464562579136705377134330499761622714993692901680057610158099992247124346582226092516313405629253761933144565546155394660014737850645737836319730509110688868221854053727222491292562512473856032135822266147059351667840385967001109646251229986655372148460867993143587812828913258736947209104529740981253109777126991367703382138337979544194727263909731718179977518456902412669983284460254086243511185771993167200428312639544525527188038115455081968464736615428949765267164278037610373049853173452242145841641091372741493119673274677020917387476918459032791593359002729560180332724871188144693425480822396267102114196757482608836501313961278294015501042115151848629129086934340267471562025050454963293150330196862709960453896666157879368971410507429578856090708666530558869651313378208694205640104250643921215422567741458439754453611989357352513007031347516982781975550742315779435646493510784146355357299066479416406100382924421788158845056277542725340558565072292299534611506662111943187512008961594396405989376291030078704222301245888156890547149700498942582613608447942759679932331309415523153272929459630511940030689490430446809931107088585994142176754080715320257763389690197904351861656721037731067771643994150465200536808459188869269889793799321450877841583610755486190459952670300004970647396031733220497114092603429205988394252017851139674029842253838212747512738361296584574160736048942289050605415846808666617766631112501075825312834954102154387928468999629649520259522567915532171947376909613453761992952801080089692468980895066838863635486446395858495534633493027213686670248887398106116678411799458079615866163860529665976277081482126389950219957263030198078953771241707388058523782326941768590754265771262648064551213268763097060559545094054427689221842525327730902000026890785525852527820673821395744166429082773368377802316703921129340002561326581097146325505847330130706155934728181262674299145048781066706920661551144363605413793614156876446389259736381237384799886154704747690571636067111717061563831696024872912360348591756475313442822128857403734697387704116453535153897891684831086448290078241508620199580925447905368862217101077659347540118657996859525445154744839566120507115994152237846405394166971793810205964110854680615780614539284020900195617031004080698039854246888746750354845022433967666272409089277716767148386460371837917241135861125828150400372678414070493319609066019642626905731271165260132235896020972116592214942590456876376979318411230578381157959676197848817076569925071128680027577014897577530240346949666416217223047003894210919796402686733005144793015044529498946535414742211801587872173951634011635721623206106739417259952452229691384852575088751533525424441543440375608038470958529695498900230045765078974485848558202908502933493721935488924137786226083415039015783192433792770544940943908555543598722162603264398310650608928236603638698274910231648526775569447161551850993042738392660613597977380405348639765852410678464231484877784205824480388483910007905523706558401256973591618504811495866332864813141845037935278961719185530135423720853934477005564128396267063245330015708074207479777418676202096536624494110656146438008290670508495882202363242413494557587453396248543423085149569448270475225174334602562939134912063888805147047537273562972419341351239080962930520828580840251691665340000623734157604602466454454056399354122658531503412612085934467814508209567675959362292659565899179252921386797247342463704655474097845121131211759119310576118340098123332017029769983378387832679770918024841935792910885409596615969194831452094844747136038902879598046281769158891761452719838458990436819561689851484581002438357749209240381890269509885704482980363985312362980280552156894733395370747341679452409457754276735297474898796237354805512360294738400625687835114736324540190812758470404158627522298873094359535016421147793324605902429119855704154026203152388646805684334848701601947391446289373540577951991675741239159614426303926921940559414835684940658979256709501811577241198089536371367163186872533377602540490179165557489627572625488212998697381125025077089985395441220042822978157087555154557733362108835965962694591551736986316002348219912770646509221867169577357744417886632871667291969456159487019710814256024528668212128956448524051542160026915009584748848381825925699330135975581389413943243774690057890356395611361033623033572698127744570983353966064837590028838373688527658046243281062341868889678100889071222594009729142480768938753216061687505045069925305666754094814039282058008026822639951825226464374871902702365118712664015457348821695976702209366767722762262642715151029343749611123972400706473613923859969557982984773097221657313933969093187820497628354159719592918667230922523542879400229436493569799641848585956490509277508661535706940700209521707524973218718783144327310496318524566646686541375235490896665551322658707255897665561747361105552152514100907305596648187559666608857689242207904440472345871716423415930595232534395442034219372800876575173039340087120641589011668787353082411028626641564321791163972647850933305606624086734229932684867301237581790158703629106847267464387694592873955719910538619195666846534272874642499516439013648360072427960739638073164977555939299950732069031268411911749477268028072918796346992616969905167110608417356523251979796890935690961367035170001442308551802441312012589027372113656620907564994890618585737132035796021739165162624172365647787563656385932418285145580922292069712517217795330509359095338536328679197811743993656720092904236165269351683469067174221557149646294202793892463340273944153392674630759644403064035855410868812265789251286524659118025854384854151337813991230279190735861430167693098976097844493311562425868433756173526465245454560152801035299118318099799933755994319723534625905506593115613592986214522877375621543895281105814042309509818859024392782120189721686041906158235624910411297694295064764960768229346478744035540587057842392926846349134068472027493546133089037802829042236592231979413102515597808224129749795317750656661656984291268988815652516610020183548108706805249158276377830595984813325113137078398948783265024480164003983046034501208742030382720621955386673223025051215324510794473411026392887435521435356404358308987115201113550448317596745595900340702127007155161155304106507827700404160580618749095633413333537900017865325982549419266815822767637850407397209955760710862893868746191573288865413734952375647096926470137755391113263590235836819532633182370733151266085478062342833808613760825753842803822363691231705713665159464783826364323619505075371986045679973695687740230557207647065331887477912899794489059389336106174572027473291691053262008702560168833495275661345319111485713805691735869066853975289339959032316283134981740362563166156971414912537480986496882261608524598360254697376738838798623701941543528074733352994629034107902437401289210099369076950253502004727073085760473159149966180478580269207996977196350003631041087126851785242936451812778496937945553658001345043524937288414577223618208722401082556972008510525270394752298007439544807152636378164078200258229031732228127861821885237475735938723083220232238812878493664415605304827702768728339851633066783505500177271711705986715858513416478526149967145110670409218266260417578196742022104402801308071058030725227470121008892134917811312026211295844996077814589853855738115443931143171271674455582107939537350738028500120221698952703133380075227549867216362557054098653463957117142252309423078126503592596963181089562069539019951274419452403314518405089152235346325436835732377565744142701635394550807151951133903258018078341126129348544727426267574893099381850534099543298729909004904278039316185697425569621258173250729819428615931116887877289084270319662183112671009373996966020705995733480635999219789179257120332210817252155492962126134053534566159383104324192262632316899101803954758789125720846124627024036663552539755768959989647657377016217091346446467177618107943222309156157403154401111378674266307152034742015206865218880447078428821787315440008234122888456930415086865583200773566478529660969310221975962764127598937590799639669199780392344660105810719039100614385885128398453420366786681645381925850054287184133102789374438864300102362501502565293738499401287838940989970412199967450037950465216390700558293370442941981092887665106738688308678223427315697605638542863399888783082993441919239239794888847078402246900890965466116609080506026911615802009394477855832930160309585186760487473550969064775812077428820720064044264991660754585636488406455460240596070962722691160111605307817161354265695460561930689856623112190072625879554281446420483995234970194494347545711441463776989301019200615973011995752910504407748597741444271948082852172581144537446611428225919975348766476149102550177442683902910893272900193478183179452039367184094418474242536492852383059016402338176814072897401801564591673964320985661947805294227883859650656438265961560233441185948203561014719370729555919893438955600672351114500989652416804691333639059900380241164913185977830912311026261005909926030833026968556664201782444675570377462727261514804849093229002843095622804331029602736253902534815668735733663468375471026072721018544388869310845833690331182310881904773446282157692345001529590118977078528372430071406587842699653185796694852362663039802769983070377357671593272317837386742964677512382511514323924605602341510688532297045903295710652207025417078203872390697528985625702105973229655392100118110598718312199416898053080164328948201294729932050760253159817185204136071671729859206760961588092763118018818914884761448945132111915484139889966900405442453878222026684234291959011789006899986282087860872277276246682474389154101601450701190417347988852625959746434259124592840261715303407343246703264298479128565697236511369228184399268491154927968161406218397808141185479249761232529854887434106661346445620285879995888019760399947089935425773867246238046873830670337475788098243418253007019253781426116542600801952333205647588173936986958937548777619252702687986047930216733491763282449888719852977871359849464607102816048735021454813886662752207985576284879958689578159686221157855504259696447657046696758795849473388095209260217051732542129567253431676513572437370412011048799478551248408476282890022447461747947291210636236507671403203910539657024170780115619985901423415388929566805634052963124349672061639345084400591427594535199323114046958283969262763449594777755234023287827078831980898016120065287161219732627753860376596653336505225659953416291745228287701406633975130029483077095722000941899128700659628372162735617371397196200034780123929140932476219890607334064173051161519355249933647785528959139790649764330789612800967983353556971619295280904924637219353403515918933429513580929070146479258779735543861978095697644107645823171068530982063772175671491465921043876207327592694623777274696498725622737489604986012303001749514070317272595102168200554984866458716815171431834895728494993937323433861429741799772954687675713239133631561392254231820773006399564323573354398413530502826847951421532470776945887345737347290148094364936650348338607994672283137387201496798531736993784459567830234800172222763930268230236782268616003282863165943488533340779854817635205466611428292191366602934064842235140621228708528312900970769994607077442386863498200646344189979648582874224406331062847143582320662021938336167322341800416374510858543369194219714151114314670443277937562244009975637951730493432998346949834329992730978120860852856406198360136135143558644868583842038589984893652195994123679909373205473518887510910835954238288811934226803223900872325367440640297051286064703221679556817803685969651753278607613248323959449426454536034920755071845413142338577199491380490299889076768798222236268450712223548387534798613198940746489044627821580128321863367280912348238014043084362274592594025092497772650464744129561545088913598556494014609121472312641974815587545641987824427240802604107365867079956001360214049590604240433043260561592846856896634482731133558874265409178796830237956927284767894202314828348617694285217440339019309480287197319235408748563906804508928432987441688975300889116762106011578228863608790544564456625249388418142186234363638194592139837621077440247480887311560104235021015383263962884759154410653669858974330655156451858432569192631660600536853697775332259355452954500714018997773854528048487898380074075214527100062128274478956923695733832923334454015522591618452932875449364547308396642573572288279391903106186557064144315072249611212199389112673468187735741633347148111838206340921461195264872688160616919706793911705224776574158607097204983526582254895777634271275024291749628581466109455052116524223413812340686899201958061662796954604999914944685826009925863752410594166264848178801613233218827560298316981322128466312465756726910820188998746678556274041330268515786462409386127007264913766863573133293527949379497731618713703476083219339907262161093660409426035809158372125228200755224634911096732520799443685872285280230794343387545368477899865960312943775670768936788836009864434076751109418451942910542595001173537630825070920649994045205317119578888260884169021514141148769606403540749419063549679757905291083525827276634505845992834411279982514798179977554612936811404856279808915237953337520774291470904951480095439474129371825862529904035445838091764905053001741126284423474748768083695587507283227189762503265161505362259994636059228821212483596402913911312112412126066368506128594260959766714712277802042902555556552166136921712823470102533991210835604486894987082704769513703501167842151748304162585111330370783172320774911035314877829109634979470762776007108342156128440087300027489430951101629885581257204261579515373282028962920019503179032735933044746459918810040650908115054334483705135821391041441955215273788738319164355800364676085945265997297691562531049780118725475842495882200346181239438066992805313432964558198298461404852641906298740389794675500333433810717628734771801372160043652648507895988775655511216013309597371750758646765219353423777789715278952450309714489942056265597178665032537062563436096340243561220194856460043791085342579497810870342571229056626476616467472906383188432346496513842816488587896852520442975124992783683645350647773965628421399594973033324373136096106449597824475389506408311814863894545981982328348405655064497433283335844307706808079099042487015445513859012608481372513691611572888502818701543347189414023394980592602561379938841094579997346002294490651401253187353579725210406776183698860278547247635847480045192140145419379646388136062870976626349117746695356413841487246781124276202260993205280114041369057494128256872523754803458581224518152321913072736032838301651883622282241518942407803889674819483133971194434215117631628929938121279976231534667310311865139349491915344614613968276030629888065855934329281386577181498878201635947902009887130887240061951824573523440279763747525296214198583332980676404925636150302491967734937021041311073879919429621655584419203013852305471437781577219275360972045203856474007384417885202567791793522656405875157308632383928935338217208726901367439803605079253430593086149333773305284798031549090391665209835434988581973437839639897862727705050764787852010013458568624408222485707686481353451959041710942802726125149738045609664770918766793320968104534003806144858746183570039898629464842279725555413189184425913824253370256766350603253950515787110936268971305536955398059748842940265934994593533474676262580611217894975263983524646712606147880032736025973426596694818032972070473771087511820790955683768432104906104651199263496090093657584455085821646603278770344479190632249794790963742986183191555958993443106985053527060084172431359513984698598646285407104792004836109211797139611157391223995305239284544211634804212926087809223776024453415999514161110819878590029336940491776163781823370217790681900561671241797605176724358387276962894869512863497365887520556879312813052296197896882802797818601965193141228274977256765026614228394569150399927932755311848892018576258708218995838152917422288498215195182373568216781635736035653915825537781857676114960339624206954840154660566317236301167012472443822372173508889198064280005796904952498021150789401951027015921508984640191135473730076142938779608148536440424887137568621390261784134258089786264061436713481443443978500292568292823349409090308357367678134079061313423682618187611821649817009485773615063816533795895397526466179155092593892870430502034620196711583271881221425528302943907855435425096503560862065679921212740635284854227095438382561259049886133009312557930865396149470950247866120234157733711831596788130371551930310900259247537216584917812320329277989508463728022945946165849820186123933399372153970541417308004551062654252177534487892743200029826645060416280262232403250850616603448869450322742639358555143071600328824715186005123115950171747071933939846329249607302007176253530468919335613662302146776524673591813449669949068065364728590746684212177615560601036361952569184321641913995350603171846231933709558003224816755451718662325699313298443641279592501768678650064649089813722291071075349101495275139456318094551294862990883363379672642681680730740008022621036638765930702813189181011765435556710637350310815040944056191490552993220840035687099164713310291453324326523741576065590889152037044381539675713342256302085723645325022624484152164694863434814376704126251657643051822194333166509118140539163398569737213969991923358967393041308641963801926335240328196921638161508926420016030550589193489086390229994377855307546913480482211544954924862306803703242939099186695924793115654630755443138309292881839627845350018886727312080010444438276561944390198765869438019770488479536732047528147967065641914516219602486542878396539980331164193321445365167838738406516142627077533337458526893721421236213509933481169298203580462884278648835838977792520215482211545234846943118295560267967003974287066846394415552965457513150800026490581153931112144668824085205790086533109765748810440097206802783448985450241320333747857572003857988850106953111940463323600523939353310422597848448523854897371003749285679351716702250744865792533133316273831126902561464606940368554266020832447509212782349729386866001988864915676162759053412604788034139985478287747718807048614454131751737671940499497453568185272173052819015225201233720605295244119162501769391301591668335394599403027612901161825820759608484547738867347718608868613176100469432392452655978163158603404835981272364951002507249363811462713847488088909258955452948689924799432926806068273136021558401219412319638291205123612817290706286791463720222688653537591598700586721335644506179266121886216090276563931244903499346827638644141766963474888843761563305984075183980090204781918590286607310275249884529692304889228234032365677994090807648893156811324502657239333907448748728902243817579723760796193424710370585301777232787991206349720702825823126741850507950604904516468212020335490057742484005418928873052515605813582948906387700689506524424107211359685541918814749745611803062689743535947452709725242587993852312532697178742499536325360369326582602994845553515594819536283153469687924517177255327608928384732093047321605869844670212727541817161682715655533048444909082881563885857615429547392378933732471631274074837593364087159803583688945319209019800774925119754375909502058674952536282048827343799475936647451112165826439990480507038940860400377899708802762165206159613361394561367745112658228922769954861552454808262489167889335398905747068009476277064183676015332544830079041348615777941200126270138384434620977274323405024633036377602625846931024911008538371069833097670870326128939684186144265620373010922310315436676355949365761083681917350308587045628912640231824983758411722188515291085882283520259793046189621600508577697498264895070292035204521448963682259733864491593111250125203460001842245146782169863089094049755179411882755436966624085572473159299390732606475612131181036196756955244629330637353777256153550491370368217685446979102268301243353693169328137945802490920916376627724421063493432133561695175779150233558881250320760695326064626262788016405001294450239833797697269366095523263922117447418965764579013473205285177145217505898456441037294941572999376194698489555403298367270750700865206080685698961626924506787789646611898353206183733247671428397203008368544218566472651202710050493100883693250008066963147243902628518700006897765545501181834184905639462514340678920996296971448121921416023040876598310289853400123272727127845555583873584385460698832011725589308123876301629695639409870289907741823269623779083183498275684334142346929215007752285847640107328780446939602047341220611444756584449005103609575553410995814339662451662785767532011237824298530673842833296058045524148470966588327412241663851222361307320032326252746629586024670515217296545502051142931050703040257832155736202799792341746261379148051134093388469232843467245257205658322388992407129040070284720599813797897949332483254838913172641469244653699164763301582859868420102717853842837529603689853577482168566363708817663774790305164988358166380337943650169441220895860759214960798034296470985522068313396771415600744036852091777266124742362365333996635846113817033965769146484118587429020682912351728949938026248386093381761624336521791962404292160844269399222763804271773773895710278988208248775935126158145433770056029565741223007147580829626795089990087801657047941953396743327084691983824632403841751957320100149735655504436675356717358058490556731707896770023069844492713551641861406861896565648453760775398488330285314217836514779955502287352204118137801658824757275846301191156417418032792293138878689716184528104185140775839592530685233067376465708135407994621651690303859835628202670782154164735843760675201877944647219261998989441951928771929136331978093510240426619023339375192765923141668889813214279448659083286226078729081821052270425236233421599638626264128211675294911419542869140997149787641807212660868055297771787913008074075991547424640807348285606922288160996283598936284831920010973340810803212165597787843993925664873332436051726670092306135684930168157453714366090191773186802198554888850588930901679572567635285962085911700387480406625186276853919867344947273639914129340085445778557440477407486672544312748422605050361112812937959027384012068017333380085926268680567865801972199471947557860084364531980614662136219467978580528932906597156185775136210642938416061139834775146298138092551129020719145107616050771222468369838604873941778106372387442843817163079985180718879029099198327173909901437491940624098569254754070807414187999938172427515909418516293935335310176394841982972088521207339692991070289941887629705847516002483424628691073409143417538698956047252477857348599035175605759658212277886997675010348727425335640540276004786731957960857378260888147873061507739930043546294457660128541053132139049302016564732171895112523680509218329837191311547960270236604546092310260980553720453924836621209039646951957900228117722296384976517081058359881578561564766754811721504607230907530918573873349839250940772331056773999559204084600075437394237792007464472875096489462040548362786225689313929259171680857793716048029611733991430177556331910477318701191370027636643402501751052651784581903650522833487477288993702754757874742782495902083106310672437201659600630416946488060401448685358172785013274879349768519147983390131103726095415924453887826257742431438482657297695394645694975485531610382951822666321894248994377998735376848336488525373243074569996423045645081439542935513849499253325268528131556112769708822953550475253823958537723565346963731327689655865223723037657579474891042226309251823727841009852337243515034870175936456243719104638107647918154990184646960968167724846308653358102677285085116999841149368738852998097091768110671553401207790370655846600693852557961467702512283003224767683983097097924980062652505995789255382136581646744609602944522792972052164964894350202224757547247483129298960719135414017440564497978758128189293416971586240864512796104742751763685134034586443449581085658031406074398567482839445819084037967016420047414389443874936662026656422372067858351085860627879039431963399360253555006023580582062930016019348872470387620191551062061477520235654247749908119409939126858182852054553961245468896638591362021250763080322264889764832634069039201511061516631201270284154812283584062403120994357747882282662918176467411772977508347600117139819324365837886610080749162382064871311759275602379942873901695847873612865553245685716435179934038757758948310465168414055665270042396517546964283853441175396267494219634599447163238568161219116448240463485271765915367520215311644451418191857869516304051942758931255251061981500010282845564486611599100624139813709300838161503993522017236023867402177628795064255991874224518582419127725014055469714845352678458137630408752056988844849456048087276923927067366607127461018225319074577718995069412932745657438044477817377910266522020261341331145769744065619988828222983025295182274041369885412649801129344296678093907764107979814615810408507719470138732339354029623054695052387140298140628047760023172889715623604149900941243217563962802865255176293043644480471636275396950927397400205066386835669980345157373000407117494589473575592486203789223928201733424385898297613965765989252236500439277947657503492536899655565330422246298987781777576498878347766868813161766138859696527600089855090351298252842453070697427793789649368484585357173306584001346189246949821152175900585377771330850231558647606779766333265778398608982846276825197703770929526739274408971268758952126996374821197980769745780002112236403821039529726647584185971458113372276740629368992721543629231318398603909876217045415769468671034079814141836182618872972653986218217400400520988112526238653579496523794260983724834605869697852907767600044494724565116890678197890567586363633783575404880563512992771217329631466987557577488703369906933864420858763937544764667504561093535490175356196409322458169681484768895729104301315682663659246750738467725976476297117157340913074960390686665157821463214697450469934718757950112045967564761170021568966182110624319031377971787481570638109930371399096503471166945780550796968377687280561970894055274972211412554944065894918904250994114514940067130893634416208841911043595692692850091858970754220498457956372525727993606974443652709744849649985044576660996899026227312013792916659188830794723348362086123882690418321092665380720758586252935335623980681835828825389411002150669417247237493723212783065728096320275223571009178498185559823228889351869702006740378737215496081416493304024446445666504716468911983783596915147966234072903074764998711599548688173288390908624980424835632758991083488301435059415216965759140533100752955818270096329584273936521495792892541622117532557194714100085213103778672370841265962179208398115533654732165623281421706024452597345263850340301851798432346045138675657524352805546304013844757900013943680450765728739794657709728340423186618534818527903888982409007964351023494082216205246341294381374666116011055086194899774805082568738166861086334861978025262935731733040382079838677302822355712899754135013763729126912339486313988310688187779741701426548816726483986986072182921286405222088128216554593790677228578836583267470345279742767427382975126156850237788638966238973870573444046999386697961144745344824891113724090991070294498009418770711613604265777138830024466890407134992273863877368569111565554939862508543496541289503000711073858762336779354374177373542841099568009303754039808666434409582697434998596814987851967330436000863620193783790214916186613501321468269485690726805620371249042316234481696597046354467427635965567372016604010961743577537772835664394986743635504691349011975486084330761219575311747793554995458821302950140659806756004871664394918248150517803778574362203149330614248837836813337853384893628812161214498901033824128587492700825540455901883497363364105412225959687098689186417457959735158995336578264279466501042647399053087782687000747887577167577136753893438049188563636146005913523507258351155849908317556505065404051446330550137178565817139990508277965700327167527504008775354169508003423581506893434536119266653494046332574046849736672031328304150335144774132257976631937807751852684086337176258751080905988366690350839637558199588861379318592050131202626449758946258508148016071347971521134423172252659415007403051555265688663908413766668905358397286217669841173410513348340543914795176763450359600998506823105789541075086503129330208487506287686248282279919866762696291748020498829250457194875110017189630030931503168384671234915285524534113200751065756108066907125299424007326402056187662176606984441045207963679034377535275343139495606327844576317810947967464577214456850508942717793128654034075514956024866494360974875012812055292449698935862748872987454608986096519499916697314751581781792114097705212354575699019254756506732062346633043956669881106206674205258986363604574891684877092567108476612327138832016435052794548551304387865061549817683029682485211319225681672116406583488124997873671490789526360763201811302282484426977938566756227847626519057428844529297871478568580523325083379304930898650757074612182370402891868599030846051624579887260409499618325872643279686785686223000508047526257984703736159729853218588587432350721757569644861768624759964854831631940072459819200878123443987435444833049209124340863362324832491250858599327533756498372072402424353737939805796794353132979394440746999208861211453679317596857362651816740827652779517420631573496163915318876239451867011304821533581453615892728800688686916491185730622218615284254004430678497527465091580483686615025732662548209143682121591341199927889283155819266528006267790876281365050782835849732383115749115125033997519966662244410636778336953195571601775330748554528390238400367035550532946015577483068965716542244208896247766509316283313207225899286238042371338759614644613181539059772981687021056622242784184940834922426773949793424692301146126348257767040214274159509130368316434359170061541361156706888825299297277484392827283816205086765141098854248146564885420552709468359892457911203925778822229492871867114740925930535764719534544396879766081186514595585311475552738247067836097522980676422237252917934715618421543071987839244191302596726975111410742899070709525515182685486608008642578612602892315755686676050249775486471812533527188857793598451266103480070441835522272396064239612564249599014119636130527510777082910180042373040357452000384724983604782620484456031418541888954292655748660397533321707588954260379843847939378435948169715903041511739793993303920573276848907047461840649131016938723536415534814470496152592407548255131533285737686393962319499037437265519088495556185598622600195343870916747078740402520521674366099685882092446362366987566099962885793829331294110171853774671673476230215186402876723453390133637118922431056798532360394710563373037831250584446049559581196388244868955482513428092638437088269653604163032395230559902793328522322261203061045352759844240159594779958821631464505794770393293725207601640895209772025894256958302245828086354971866944512007342139861648650374488021278055517628217818959338421435657985230609311089049920463228352878189169960975796200631718924889352596124528549333559601949624877845869415744775921161508338937009009276005410179125342455138547723235746262284564548682058729750544447383374165848690165645681483139936772680144593628089084068433665224489621144861889931535972154569161589407497510921298661359368545604469781908608038496376722315295193856249934647998169244140933897514545806240416017813656861068868298337895071611427368332132171385889992255859943711858866422709788115023783152403941480225738295585840497749847819792811325923246789215494645326077454897301463404728249510905485123121831139361739617316072164626449694141377376126170207917642409562010481577201442155302825342941322608343596825618799681504235982513636015164546453156034078665619479604147295102856863512952902747117596473749796535174550849907065316820563520077702021086452890638729256791334037044108027682134128240671474691430333210820813227152153577158995518731358074432343793550438098575694718942057929803051345249043816037534805650671918641286147220830336765628069043795298734722275064583139372707701374607621358252275518398559984515558226045551770049168342093147562148079723328619485647782383824793718538888602840953219278205916101348215589240747771758714086657707447000874348859066407394085929061654744200079999914416022336706595091585009189115182102275091982809097543630063467436702614750611463769595736362170110998890450115473437579732670044599366656648976170993885760289278204235116693721741788922251545216149589600383200120365677433258199538211795210862950573440398748567435393120976682963311164846852785320389386827366003944774257369870857006063126816583042585971139180243503128424780382475003491078828880547151689459166752710667068730934209414254116371880496949105888497240147616239859160978722529064020819988337020895901809975484370515265884645462270234641099061351447185435968823267719837629826459781957127360787907249253196236530277727157796649228825170337306038250431481908904479097686236080612920327396197663801659102924146234742379685106115431326054017371019438625898690089031382183690506180111643295343782256984480140319281250890792361610282565044484683267640102353884485445087395489274079758444737784396892861348815088755553751733042658536719335711900811466818863854285569363840179281962122537832095760843712975599962101893494715725774670576476063130962131947963355570095584504380596854522394532380414988783781586807765083099143849772106283201188888044492215368042092814832344297451634084178337377368136708635729738376349131652159764410851514341465776374618480031605632385373787108663460820457968160952311160884011041953173632954515365383263434014416124698568565316290505189278350381818872044551756369971292642537672461529732905953929845320239022211102072081674275295582276848408222971135181548832441640546692347208187867329645214209468764313590995691458987906348976610142288803329148727641227171397839507613679624817820473758678681429659553676702495714306184294066312046880346194446997799421554524408898771039533146057533593882728131805689788348086569677710163663252306813042563265875197222813744380130260299126549267941621362081528549116695431462285825802411830693886459618687160570582163742878834076747200891662184701268886119959697022628921188070425422999788560855299696172674207040502790990448603256628685412040745194767318485590943396467405847280949278639490222522302271588383402130086462998596452851337403035488224005692101771187224438170163001646238379650946701778544888355367731925607356338678197085609208907391079545704345677323096928423442474900998501126235215140462128604879788271737588747122681418344764423012698498205704801688145548814732113081381755984048399012840972862922178440480153676022760582321934382519153100865493504536461325188057118730805952105489007654305447261135718828062075399892101966926559630104795200798909304934231330924733204644137889490865339927122978659730704240164899642125804144308299152442241252411025572026641187495682262193741081411581821801265999998401263134753368121891923356592701846509508771902887325336968879753930797684702101812054371332024702588680192572030278080790170397693563378513917482902852855858757109012125799138059130981360099023595338187522501335031701454044447008278574997183845975316167382743259853905709081095216490091342710699266968658283110551761862522487562307554198351624956990778706054097291554381530381732330476756915121243652389625614714954474737746172519746061918778082028815676918166591391127110808051598942743549276121981424935975870106956882803197766611460253998476976235465218902969772567296188280770461845149129134447127728237794607975767335501806158708681581114910648494050491615920121428353131113316164358796590456305685153338153503096716241713793021056482504361651808121158893556713907751037370198976300072523635010690012092114110456949466690908991140265146693433560457787705647475867481305774456343925256075930204097748042774128569517884705809110920331933549352950914057728894183154926780740902301107899211782475672165525681346843161243304351715133228643049813510458665154596509636832173873800477811679337675020284042062158799939516071128435046504343490711620283554146188829422450006895775379658070124530421194188905777239584108473284482159481649035266903012314625913699649730916424752274537897965656551568075343620136508349836148176902017627250231517506990272650879188060721634013213364424162440120612956923158558528958809600443289618754337825433764940036714384246350317646998530039311150753852743744738170040283294423872228709140400458065123634377229845424632299221963513392705707109474784571470001736274327185695101545166151098394028655837795961844555850914234597849822998321062769264538151726075046011258482186274142990920227857181759628468144746811607591912603654139085066098407115039236734932381157651628091995600244099404426113272182060990300791462425769681706291444896449749431998902848378846420511463824679195013620997891509485667955745124281791521565254068180534079348848646986466505821133370024240931355872840772073782811264499766624342004339499622533847189897713338498327269474208562991411673678678315594049435690312729590394644108502540550219612723763104514238045659977789702783416291944028878055291007164563908047279223480705937949370214205907904722734259140803601918886838257763263046409983393690165356329070169364258712872684036571855534536138473947386443418979343856762993167714647811498540923206841136305065518693047178351396254780050694349236976668149858955452091543237144850585326796616591854840760290824792554904346573543650037113028585815039796596304744325947873847924209733403059334868625886176719399454559171321968233878947932765962055187068147736780676687990382231173010449201625151900560424082502565213873078229101486407447463159086605220629999717168847572128724478130571025169757674778281954471173264162334577513272437189941759281173267114139702241745719753036451918056718622879493087805948383521566530551456448026640383775235045614847265837190569919585391588247190156750582098264111000257637363365664905459808885949508660684914154799670670779177690629197081540716243753961992201152405146295658680141522237376601647139124226579587505036944911768155741874784880466167435676562154673257102065110360866552060620221152514338141740076989436583925068712406337461891024860880424691341467272475814561506204305465149951518258593884463516017249336488818534700562726958005339587104357925288244895016559189688032442018023612057731291032785049673218594933296921353895444779038253976295356462474991176212685006934563541524548215370270393209281388493332193529181061984951238826494794550603208406588378697852219453779643911791888339108662424761415704021063984286327482123874198678813691696904213332853702047597226777048634776868146031033730974524169001663179906306230007671048563630508576980314488775904864375581481180620300404699370644312836803616009804372517908987035213102648640248193843117048733294825096726177055682606798791974195418859122038418962881091071624812344348680393388149273253012360330447243913109765646620705079597868889596596995109248725694833847052652262384304490139840630789615519922971256279477620778907895839668346717937214807366666319849049556672997292447029642247672248744908117742917549191857423890038565203762919294444899119147382078892696732948475303579435722606979531326973714796364680966833107677727349193101610290679561571020513807653916471251112433122617232681984012678704032275837652762350743267185224177259018008419474456195742700108729393391527641704490694354297527781480850211319884383446526406219203070002679765190484180952729611729675439471205432106595051313998211352060574300671467248788045497850527431902017383940338984609808084070270437794835175074491782622693949126651097922990787279092849429206563220863493099054077366708222032094390073461590592535651865722086459929466440678011540387823185002379866169185104553591970582636555346892979341837120792737095628360233314702021434819630417343092472578710277853869003548366633428657566437076347605360080894676775801649944926846879786144548126357037263757457277023839496975326362681098133514265561528060603249177851972649634648854260701746572357955193475557730388185381921623611750129112164475434919305825748512143069135818739920807061754237891348396900744158776044807419492030319269014031025908847508289449057445127600153181857580196667731577108324517705486076991532493774758533606276458018659327363178847344286961108980652931073004967467371595603500769976738953019157472481658620927779832513896707009552028529213541661365590641690525114846651869555837080662442928834775328348672801259354359755904536126487598613381917690215233564455777114738543257490288709953975943295498170809777927638455022367705547505905726620559339209606656190984333280793866223822803650025804922783562295036473795833334906690750281715442678150102888571134649638906614252253504202599107452076654517232285232985470659474906351900549725030340796808808373613343000219821778107011315978148975163853244373218702182017671066903201593224292685384008411125807695298494120901752039394921218711767089740355898689624468703594357820889650346372666826352491151087599194063068441211662683986902940074767923683623983577388646007739964338943920236176518238995864413416011721463445313254171514574087729948721609765086702335161909691843054224276840491622502779060762063039940416223552476837251158493081769234344509613579187786618581988260034024991052330085794329364284148367449160562847320839203136442761547785583161019920451978934961489949955879017115264828571177482684473094220506673159733815547186599994425020401692057956783847290154027926504670788987046161807271410575136418684950664262194896191497569732377703340304685595791033874746186543413311593716355425184795044652532423800173007739524339957791066450395577143894696348369293996101485253772166416333600232001632621312860103386948246307081876948420858011604075112963470731130782894686104669470061783372333446279958433527405333289739110056506675016906872686248068529555613178015371128865218301894276095372885053749001058504247853884656626088468059698191790441156930494927037118875833397453391765067789550135196399411874400425964402762487611823979587928783007697013326627644311771612688814121763075595516846168939781972570248643102219895425513250635346314008949767974436297003734212630558352692326624477804001676899607397226794696796859763468716419425261799291232166252713153763526575678801642909479024038334651137323648512296416306012021341516242696979634834721985706977144731861380864424576930899709076507546354097887429901546354167558796564318921778100897092649684384964496824024564233663188401200719834741973838681466531759712431380320220216934767458009942937431574721151738769719565475661056742185264960887665586691559127862059023186861165597439751124026174179369893654199299153279978353486577576631105265833613535195762073696815732471583762784632513508354893723217541078325591936232533191685021252773703741440995927035894797888372171230671036109112835214296558027411924740859940979314575451734582033226273836533455313025618919464245101860556444832551685703754182195856260596582464872707097971159098717600706828224712569482040580262800603950039222645693510533898606949737047105495312599540475108164380481033140060524634229669509340887773284484592076892652762209137378498812585791160117114884608461960973875467311308101651562403604425617319070083267137169754159427077271355055404737923077980487686197754614188135541447069621386403329364697032685394084015311104214115708037239739598847569018050867380814262315780457600189903454398490014049849884966899260806741644471732078354153237638848341227723532568266326795888044259635080174723350254207861377065729404563820230520026950222182189213886416333925213625219205659539171674241127527070029676317864778536117903628729643652899030889431329693935261362723558249099133345057744244837956982308296422672677943876462056866910941027360881223327286897750585047040592351328926644321421876400005181851191462604386676927802293067808812415427235113656864129019546993054365454126726118935165467660304681923693415134510676172248364923440990375430054319468806650015701616259228728269608063326866680442568744309965172471078898909897584441184330145284214304166793982369876926684840021690497487427299789489194921770453157228129933446223683445935055418817010371676506248656951428052795835226198885715841740064823885377359194841326459230426737547388894394592548585820071584831192276215982844850191273022476572503818559639001668986661098603325459430726939350344473037536145843611142329500390953540186923963629586544314858647208322899501218749663402523361691289971136715348927681424400895472162671968232533597174053595046434903163304435038859372203940857233128419240837970430012146076740452767091474018242454330649940705100175629319610670042941114614539246637935982511378408521780468601459687923495546971108352989878100013747259045204707816630747227199072584797941821735522940180500848330243743193829441207109862627705715830109869317453068447170009060434315502133197246465951486234361126924036891000769615965808456153999179011513476989943397481899674992393824755500939753573163080423587257217691676676649784131040035711455134690527084982622517468520371553153223529181712085956928804403787927331546340520159943656264013848684510234133843590695934139816772042803778386622551687082271888380755783910860362412050420978374140158474757902201436467855437376358446568545358521812188783038264735361067531910217759118688505323846585165406234614363185528864015380775061745614085289958318239667012286305158272224622676688448352412999688238155143129701890432527418603546022986381001558494306192346885352222482852266977913258868020947905690321715807139028763065400661255663227795291702691102254557293214918546857507913921079902136086031827722168192812991510240555284346703922410961739879269628827934115493524605702456097869757407912119550431145995220534373656975197636107598946199934066925113159318066415134434567723963391012970679159990356825304968216132372605970700867822885688315913334802154668357526974686507276412654003928119091508738097655347277727080245291591112589129331504449511493587303719348085409544483597691195582611533043248808215502362500505592506873234945553014703966054815624775160819125070780272470119326845408827047522050141733725428656825847987580947671217539597064040906372389033404280864765010594683893402613295572887600630915752125072097204674634017320862858653348300270167514160143467558112608067438960813848084988726482890657533114645085201900409843157182158895109815817060728185877604234422661183986260958839316246171498508193395355655553415720581285509858434900970995484409315081043932765219126775603027962155041742827508924297015838868143312590776637254986515267980827488738660705731496596881865004925082685347256336983843986817566980083872420650419104310550471243606073837477532244054311177691791256981320921569963770962570700736348238645962038539089141898744796493969646083404223941695345536406890367839135627935780633696609513591046510604748649664188963854058952509086725345716359569626253333470588626888114047093671623068210890331722715115933139526162748005305322858113193005848592878612335607665543320703192962543988442148917871759236819230171593813127070478096223400285351843151995176760145359718749281665301270830340379385619093134325445544003425611055232840439098150970326704571831911301004106331152436078335886443816873815987125647580790250461646845493208478839424508904746930227812711315628355780923602348269798513001265427587552006915056721570802320191329671672859293610001787204067238005968842846881236688185937255048321560579070150325494354246435400732881058422076096776675236212361515146045122681130572467130463810808466597062051181509455939754418481168534750393277915181184996378274875709155224963208348703931959346213279073186967001875587479948831361401444728915544932987261458803120219296651332254978044732688289407699218048472575417362202199615398302945373479575292510617065740758627179243257112445858863547346071814357804644546248352216253451028240851766092326657530705815136353890323976719691914585968612152225666077653297608399923129995256853083692161331869261709871910462219347558524813211579578164381623095216351597990726566723031181682793827329018842598580807745911664730092195171911562872890970789989755522214679658522593782362739075458772384285671350526468877765726745267770115373812233598111731879589295392867661100445374592748227273678655733671138483643974259086126638108040960905378427130448446746352070445560499559883150304774864590287143368812081843935306408945507044570325009169647467256596656763375401399620355034142179899590836355132744593385652707624578178144161264916389146629486217400836387007957008422491114496157741402007183592319249543765725246029338959199077521586415115589223785457197064347943744102217600317612737880462293511396529601740512798871987236943582676821801077404127499966704921415175778852538649509533827444640523813757027142553078868935747051240529398917256066899966257534325451154245901580228918546904356701402268705744809425118783671709255360148632470221716302984663328924508699793114404155028711558827176432952183231783490680116049227058794373539654376567831026457268589136790743954608229906861377739043940783375364961854670722124514748915815217277299756376798697535734248177465290828264169454315528704918892412197272181132080125508088933179394698671539712121767375771096748258562242556008404533705044058108531655006767860748658530642602551479847435726106911010175708268272628035004816860480474152920496872130011357828455550095141381715553435916877253410205553446207333508310179781137162002169978701744987999034398102603729746276839569196421655064927253040143528416142906133689382662244795152260543041661903076023861379701192474414354691998044474455616584221184580398699651957457698977657656265486109596076586699665905448252947114821193400040417881321126322105091871317492288410619247849992924300388849649423617873942454624162827833198160229441715427383039345051267724347202541993050016020192289461441793324574177613427275573724136578785632403963803897136948099508521760295891651587125492847971905744517171915140808568888560442174952191350294522163471807726575274024175787319185120272856531315474784950791780471749994654333469271918190876614281154129246561603981753391947623022193217402195744303462489293067614676735254141058760498794489650026910631910592036694161213976644121741884145321993431962119083987765146244592567014934228992015399718384830365049835597320137070901002962820127940333013264259045706808652045851376001686378411498343240652555890432086018938878757079585567553509423604352356040938838994305281958481885322590184055507513144717147815008197486867555650701895130505176213059065709343947132245835329931521057111519152533058091712234846046018338014179100940506954533457598951926455409868362169439757568286707673810480123815016472609985756843670161404546817906391743035873313457685015842345321477763125795855372751150259255553845140193021643527876808014859987399877845366461866887015991778559446194419373592435981976545832254283949261486869335831409494185247964199043953790401711178523647453274269937147988392703532115392958250876611502470035356847983279487280708852511151565388927394725847087912016078415130576249733574229877798602468040221545268472629213743330396616530585402857089954019309192475757620671140190671227584288380784394460608392536255822842929678897425984574441732571225293900612906904600914469194236050298858755643932039265003132121498481279047348165337208266131367234700073096473057188722994181636226225259457019075015409906243245959697358451002973190929600628366040053651271033345353610800531165434772205202898515505296322554712973403613986109103260764987563233248079260316585418572081068857712419523017587974651596369301754382756560356338292954682641195908121689750322946084506414593132706516876984738633962929139012165898653536440689592366691437361718315207076522559016469971740214959932091699771898114409272156177208702763453983364640751397266259641003368058804151955396907318186418386180009905192536082589383679924015227452744990748349308115094584128712465730594924797070098244321814547769306447239600866750277944677661692778711492908710727450216154660478583016160274770735093046871665113640915882286794404685729659407842126779756829204807431621618857302607627433282262806885395870679616167869075199790571225023643660579089411732678643017770281325126885340091449008766427507342226306784728747039611419514431885405862352031483555972272554354697482654556320139501608265648204248702084883580138466635716805023889532487953092193761347759207455480798270984710412257778915333522322336092523661802571117939981890942740761371605084418210561242252688441362291147774854145853777649946878605444603234491283350792493122994631359208116401371977537181780326936672949270033432335930942847029193435046940946989596438444101070835070059566971720148959446120855499068667622689963793574925407573081647533781026437728797286535455456542392415557783647006855879712030244710654334610929264745320113251949695167481386161382005141337060807647710670451023947099179981659477478511023689916755813924274547539143488679233887437065521266306118994629373964052496619609342892428588387970662186751828846098253826997584598966316385883339407629998660103051876490574673588062148878319842769991108434149500467375848711320612358853539089312079294441346140331140131140452979856977335424285728529933101980775299462644943839057262255552410176695613003636478351780603782150612060016674083024819871272726615580597181172578823550943010648123158556287172503233479630408022101675414788467607389879484061033335791946557584573201490988407785792874941603777142428966280967819699972612321728528471831378567437357396321246790692387661616618684450340457754659101728951829326295855648312723058607223658360136539835644321954036141708095538122456744412260580001978813204587158792608062281360909495634118600685352181796377676575708031374748983802486813198453467806431247573176808668105604873166927720455799854684304972983048453179261357608000780916230557496637674061837114928654368120143018408006278154490837619893869617318982316720410972522521115978897604429413854415761576722168271422395630899536017111883169847248711519742774507687327115157681362804058350079353097456162628546398316621678011110589247732556445667254376450296272653138808661498394788531642565549886257081382868998422574318386630087519129879625785520626707773418234181378931598900053425646314102089242020734902464676825540275636382561467418283982558997388446121539532140303007346139961775744063360101583231349878164013106466253733625446119432992042076125811422883621380356592011845313527917676237810410486958040378682128111943987472504141426848826290068369669351366177708387402142317231249849677392063859473712637234219383969540844069596561866974466175764348371896488714913434072920780217055331485813563033699203133438352138652953513271392569144530839013236226392013027609081684237106209762079922274817025398123133234245419129304020396364433130085499552119016380624923041574339134949014681149173651601683131888171652426279535719329848074618501503456920371727666613710089503744348419764467150605507034406913630301883855711176427001818129676102544059705778410075092899291731693612073428397930468894523107324756486810688410455852998980841850456439687472199103115469787293816311990316474876540388387833568731155447344375370098167507491648057368781443376734494233454058689276672197028850188115552514936525338018939325655702317544074254072981664533919296582613171185168648665905529835387807248706722619202460402479266109924843546671761632007441532104062170221054347714835006143574871178330547933291153358814314053430553579860839147163395498385947738574315948724970580797773548761369325107989560420347794361636683181341801947008740039362729159097855271340333067512591937760280607593179029691657465294783896806016179903627638381034435436734877961974015382387644312841121357021579859071810164661052669033322842420929586487347219399387478895543756981151243599903458152379429970828791866604977365807132977182361261697261442069923671544245216583094312264140277848017997145098748514527481881874588945190008943346684359972927071871709897395723106104052531740239954629638004596692271915948842829921529698416716685376677694849890604453328998542457830712588150122222395618860427399730085525921949450989678231658062389548718911442359777742812818381557823009183336247047442521462031957078922211595863155435340515326788991351124308115693574190227970550886005293821223479032882676773342627555923463928807606663035335708074145168922255206290804966787817153496899618543130360816048675735720239563421099611265523951048628794898550164410244558883950801310041162426600921773468930041836489238329594546097099425225838162022604371393609770411840129008113663183640299754698758886452803399986161408925885870522486629061501608582406160073275732358422583374916249994698603870769967156659856438274928726692653517890071873109849004562338891282030482611736796893529652408361153116378962550598813919105241046064787494516709571967749106041251849857658648021328508824668661213985004929674616423033885600234509478910435404604487779223930568512709762937033371055897089904423218204416223272983584666011454316314230298627563750822465885746308759165154466189540833579265062965711948121038229971657803201706383579423512171773760373783399559146121158200457265694192749692915255374375537039751344828961743299241174526138495074079890454789014045088881921070807871188387210853681541197978432399638405005197973306499038042369722600763314618246772011636745247753763081053532160325023878927671805574343738290772682083582578747298607447869216028028936208597498826822628153937584527444235939517333952906978931065509130549206112421656154223710252300019441066216913540119423284431056651467046336115059637831843326119478028300359710902634533899443048477578384385856315891363290865043502318075082153042249023836184490088333890095858677609524573336776711480174257396386922962848743449290286632035385669614034348425611749356530340345321377213822547127506599705313870750132971322136811924187050772690071544727678636287168234298329637668279299410483999421100741418360473360693082713338215142693506680716040310089732806494561375110720596375646510351652569506768537372924399358695193505532969317300903670355642473590228166992747515393958159079387773734955678843378434287161377903510440707348898999938075918748959643778145886519713387657153965226150984852454272783456407938977599123107980414016801237893563310396270901566617828445339138207979585979140384069894879675665210972357610992616198603237613686823799524264172642491669654828562968936585599230121940973764190086507502599350835192273490017921026026055702218020663658591069645296640237849245713222649834424091803998343013972757187116675516321976554419080462158267270309946478212951229978119253875419751854490458655841544165541792243560251739430841941827705275747313806334873419526654680714828190766696078707501493128391836843591285491607102947411438448516409660936632308090504116236969367775028154623181620297001308783437140372188591564772989915843554077691493493769379711299132586308075014539151236951380876956365092881105757198486735273909661913175961487065261031695852956844459661485238228357781671865515388920470139594010097906625157382298837641138916212773582605167703550134677573662693742555875976942485095938725803784272037031834773628818802201353573427558771718898427674178672082826735229229127367126716094868634643395045441533463578581158230272114156524517691189128925140839690464404812799603773038213133571695754061164306230076629560192073400211841030103117030874882669151736398939330403639569043098612995368739641476477894974769620827989617900192084951313704648081977877580956907469053298078330136257276528228536173619100648713634981288475700314263775091006771267081485962061910289673917216452314413869167700172864628325123373376715062732798802217535620312116728039175290132786795385059441214433226063813442353151967271507081630307298619830644930888641044899338216752949669696050725087711846262367092511715191292299620669112431758318010951460992029231288362740968025730550808549676088590265079901031200883621202226753895659546994968838767811552651756208254260351084149906796532330715519963910128536383245141994121852109418191038524491639075087123076404271341050846190004982759373882369059986711409189101396806124480233358935753115072179088581992548324970075479890008146583264455141140848056033823996023013455812903686922886895134558115833568692800865129455371739283061231686418333691338950295725737519728968688457861868773851705054059122020157323292803179648187817873048930089908409099018159057067330002558652528528925729098510084189949737192337522398295358321258895067950881723112759659421554518759425952645286457949738548138126259384031425519679015562434518393350601405973999641383438328259146517446319987090478385627118833575624294675277319516504541204672207593071011758195802283311906523586588375716728270529854489864776149264927056933567212040735639503815060057611434191546454955781017380257315834834082224910816461385647057283878819439144894683305870976597135025327555768573589954590992109356244513961607843722704966161553201237010487303898690052162691115354342803595767233372352781632054200433545208365843128087781416574940358775140550858443414428529954587219127581644331671414837732091624809421538159916225579716355817344803669552320049681342555577455512887638257447772161287330444533561189467397575613923525307191656135616059056480362434454281974153312758097212713454800744811338669270703987721777845293676233311225967963682994234379560793343163014248944313012780803492006536262609885748041291892398071252603600693905776313887562717331387826959920650030355045911280509574025738817208889465087232093071315225431466852138029574810928440254277523997650588857995191112605056188937999759966320054021985335273418165985656497417402616865292709133039415899145738785346156363071139988900639662044791591083736966284213475590824818074418876498099553025722939279859616611581632986957371475586488255105140583569208023931851094533088640794583149284566151443510803710075735572970492198190950284383162136453425561334729283327595216247172364688639704614943852981124942949727255371460545854057433026527472717716963768480806722186699409264912884241338374775538709949618976680951758149014452800372511099899097332688770570150797647563573419236176428520337927469581110200894871047476553508152440932451595073135885204858350174521608050142721449706598719064580236787439063940643886976675977456348028830303846383536278299382807273242640860213085889995756673445408762716504275530469620103402221315334529244667605021142985646122360947360831112154686588032727613702594607767643642250383240807716624740629668011588284384661082805460753881994379894474812048541966699482676432753678332751740017685577573253870656958446067432984625803171428836321153799165225807701185861522728528202460310011862719542985959915303439449371300881413954347551660019503722891561823284416593934991274662916030065794197131651419631114684070412288888161442768296776050034422054962254157751951468423673376354911712274998909793284263036320215470702966825231764458011525105337266805502710566069278746710039472220746484208003036189054860549987836925661335571309945875939616702945035712333466811861068703903001397238358240919925295678741917241279144937182192594394686460241578363033739772017568867638580020498361227925363703959244701451583009257283974248227156207014390147393644759151960909746654292533955036721772736372802643166352028418203475445342533270503032247154604918616273815152133317250602905556935989124886658181663085801899520421091548625367484168088456806477562909547577601430568337316666749698417000999349417598817140015782758505209739762164764579228234897930272159515111882320881065919167671973704078716094005998984012853538152552466376498233888180986718409508946011854870299943085609103734934103200523556454083254573517486149092631883467681697029370732795055364690661815056182761110637686514514031966241736274114622037190096523861495049334866405590507398991809143347687740675577216231842970852427127648527080020682396340352167366651542403514343092255114292326264731440496165701132758437321877999030327760045804313323860400787371144338257967752508110243295880959991633430752180128335410740832716602428972726595632772528834357401759632105839744087820325369967823794930469938547572584394274368330127366937383812566737786233238162486490021725232525797450641837748885088844108172782678708912076551305965495261194924205906227010976339359692884173501056568955370730117581743388017929572168703541441184827790742093518202758598208280918852684550620886931101640042126266940300554585454510547390945296840272384558308685176169091754518298872207478087840513939929411133118252443554073330461092137933336315007554440413894130582641345941966276092062698564516460367078302156398100997131442389363684157706474531057609989482725715520492844502247271143789983798692444179214949366172881709474926701831894792510202437820072567956656921520559501774548376914006572423021946665354646782432448203699510572017412504152322803551915699262516093482025212091461825067267611410446869546032831541414280568613269142311596446426216961008678936016168193393080419672705358363148594574405308881905989101680073122261924624182784744637564881822387363710134405812805919702960811357943805050778872759434399734046949522464743737165649216097157041512645078441910961529002369691331786468371063337452417064651970919309338446033905138591373095654299342703663343891029367822235731448485460254536657537452471796007315934708486203592618849649678640692343340388490786048591329241611979377363231187908948073211033623875426117595085964226789615177080301302274172053293743783202370383969606496551007934274319867798560386917099670065672855317096034667853043563899342647358477385356218849615523379981997067326006683687465915186212364071401238279651770607513409165291130591600537959713610092461511092559084548436767961606841193384595129248289324671872932322002445194471881904311347774469813462199758720310191480614461365375169393741687570179459629899198396162136824142755254387563037196489999242114269790709927217400003363884244771278563077873898130455193772030848322488483236224716578442137070630712811456082387500231288705773321263406211847932909139177314653382442276782441409352782374977667712718805094259476862723838441596197781362070659206007856288294069300927727086025599147840182911863853958227147779916618907048869938535421782836879775773358261218870322839634468081530466359553090255486073472567607567932316883092335831318519371249896098018849252689925434657815756764065924179548206361389624808263796073362175289053847617508757992026772517223498263659266414108728235668593556372766468079147269669072117833454211678079052619497663569946766019597244305319118063612726506448866199408116992414111362267267391378410963384978160993733177076704168516479669481006823164339193850565871371601659450900275425491089791866829454188095802489341967192547905793765946481646590253198674326121219931888656778513905979581019665104959496392930719897352252440527935984520017200451282476769079289753718113400428421162902049692608881223108065694081093019966841015646456004360554829166947936676597310005384871855082915495746866204459820103697895935662548012854348780500671620117654015761541832527811964867812042005176725739179880216895347184708919685411187450806144180347095793062041138965174590186061826728110474607055936798351944485503682051229126045309164710885459343874131590999580421224501933131938334811982909224204501485980089997482744759797198215309685527245069588857949634116435444573613119018794407423436683861639290982158739118345248618750226536321271320211606065144197595322890466285631195595227076640650301304216968513876167278153920379841035286109803046779576142085705956578822239311515984160618010676460643273376415097222291354988658786800542244291754053712967851781083463298902337475546746101656313683361654843988475272491048493205605198015428884861390069752759853528580053411569394955417977767839727185892404081894053430921293572404867641076065587426257407329610234201305857700375026529003236084565819155367879871995394610624234214343106707648715763143965591966892743055106392532336071453447826359683946129967853840202220561156956227999834296103636067527915899435909810098422800820111922550918658922846897220928704968762882209546256028655073523445496513686353754795363718248194314871140554137716512500284196240461738507880421270707620188838169385224338874943146363221831632322879709955472858609576228223535129814112927993239517172962144366557451715312366318392735607466521721172247536124223859493851376506288392547498270516747186110536459616566476482636242468830540669855795713905880523134181618426445583995651801524837159349936039596366348246207464813947619740825064082243402984442834759660314109991587043763461554219502954658977259697767211578403933904400736499381136781753628893017627005760283976994060931925280354774759213093622704531029413276245110981188983292661088990517344329369132065828141887967910615355119404019441417189788008867677653015734197638336777660239038935010721271691062979124991246337147210888448712284757962814499880264630524430899029511585703001880268597281145287402888345729582893041916188626799742473460063302640586109104080886823226971982178818066573081398670914900421255366767029617037587833182564998355515182505247380775360339751739124805993860255335542888308732774113132631163775363585275187598775689860101489794331605595986930770553301495374796883369245898146035957159514282501494265789589949686345387469358473061737501950993101755513077752244019559869641446191045733660318612022417074531115547657422917393974149097681972012761439283861055686860794675194417858257456768732780018143924912169534963490184720630886768143588718125173241551975446575278371121296341000540716109368309005805193749068012118168713768497095069057722821704313419627213944457738892128459247114862615114287862048580136435260566144277803300169118152556400171997975535411578299345956649137179248083760951987991185097353537199879338774892503023660471565790384487669438660298449354155849121866762602526204973534102846251330868939182006381966154428485505173230836710648468268520151532499602194678282261968041202772241535579563556712856338577625336138130706733001547916235363496969718295192019895429734881373030773755917133492557497446955213886738938975682816425790043305227291704157976476260685412329370425277426449145353441236390011434866841896144450786451515086819306596076038506546710691393110368481118184508825661301021762154834434205572520120637984752182497926959496350869854122952905829597320321374767879753980996973468507423289426818445583127006133333162986580048868705487614671895546068624281572130870891480059759885499299372161764592989137127094513961539770851003343425646176921459504030949956485687367366464455988796428042125216174247518469399967497549569264992210448915918180735566778150626753985073075054151254127712929880775462075357079552833766674888421606587405692886101504895550487183530418342527365303318233036414358603515689854589467157673773175546688230014708526398576300450345306099204079780217366105740370295435719074591101345819510034218861995550742655148803816975879800483130507573678227357468602357141265045640397938780064710286969340789248542498374030952359647257594416576843044885997580702637443877045325974956313930819384962273721400147743942941790541192322391683159943320143333963325797606412571273011318938046499718665073805886535892171086548292920011209027898650474574815576087544279477644420444422754740637412827781139259363487038255241663703597539285499853610878124763170942778246924948874010002477158161074142308289029509236044740045055247881439863639335667757108586251555755695579670594983292774408984318538022166641179897355591536060329988367877968343229539691929146717230531982757380544034689671625214489741281550339146967268739988141380444770075760609378015237654600490279041173981355509967494896361465578572099630549919557811496025866373715849836014428450457329503675704317962751278449223085430989517627391377480846010491054411122586875250606665441190156809186704185038418250376445549656146139836106474181175006755378428235430050749318043189534799131534971113647598590759126251258380108152554235029335294075176075394417399644663958152385221436389881250162620717354598810510804256119832290551565682068938092235058618118417406129198515102000073733801620892689610460747450452647330164884886268966059373572304578084719287960158436143343137498060718665316526413058348721024269795175287156146693472914749221827520657206147860502904315736387976066217310531295362879398787514052492916319777631211834313473180035650624752765299836637328853479896408555131648466023891406113184295433426485943417707850742414560252125183953532722059098875105677491648657417466626331630157510083866488947400081458293181600283743269721231501123999354402706514354726985025845197310851496753488217970499975272273748981798037653902514683919258491122226406833230699795489366673944147021556340177445773139730910739328457675091925132934681317823851564443627598406297633018870998038981174129946289388279078418240004487602232980236385220844076865098585780036604092661713258031730002275010491043012331686136585034435663520463238607767235201434418288779543919806826062298946210753970325108731342338618547020257042642431297575540410800132172323224890861814498442891152654265795586776600920793900746297667492018254109706490039202128461690696762299980682495831321518972956007632957869675967010364625941131809377312888627374573095369761521266254319910529590865941677882190802259042198749556296025904957476142411766804120160663084894120366937456406933662307449023806217636283819170716270318416526610359705470083579368527157483501335696127815098466330923302731365098416524074668383182538088758650719028518966820380649493432653819376155763491726497623136873889849749604776066593121042920047904108678083441593695573274229332700518556545706587288201094889701611158288039841213959688482345711029962037191959261583067436040079593773916604552022447911685547173904336177378828737776421898404298410879309216963246673909603605741561967247855894947428412364249575050529225548611940899347899521701912615419543941294301695300479402609324606506630603211603553792782490811055902347324496404957994729068571700024718598926424504558979211406145603874413569560125151399339328893707148807076946800326628044399387034885046037295680411456957441466309167536268130298404878810934499112903859489502190915724849306993613738124127179269138342045113158884134960527184193267220881871519495418020351986182242702276724770971578680761834273376676987439483673166652946914326361385364728238355668543340261838134720832690199299842215347595051085202614611038965154422710718350962077116169803938969886255462545347852425964717411779003791248345155565601972136066167841335604220863467412337817388467261988247388875893783672212125772996697179110460465621630333477206602685081934066306310089537682793559563671621786523829392449581500573498498467370050450180320105953984634593211097454531676881326033209932506995366467798864962449234977136249694822619073968174796654970400430702415513075322721368165219733284254193516869499737613448756255151114866942404739861527477470060138370694877753738816320695999512647688859138082199640330789785304601326848863943788206650986741809225288435014520640676570085427764148074027907586307365252330899586705080734798084411929329113074280248138144301221545863896551989489053964056731129235287566037973838680923046891628254968883628626577842441655443806584018860809779087256222014064647052961927745879648566171710022802610412277909761165498376100302616931884698332627681431826642121923384556039046060289475939929084253598889859296749485195822976611533398600941114505441691952320585898356707207376621348179806665522199577505954368185687770021707052902172084887386926382396861965605648510227668450349114557300265528900658060996746353797241617899006865824199005131212062239928747342979565287949507330931424470568600767295418095682451100875981047317916581284184918354445631720536634364422388407182682676923451564690934401413378280367272640175588372253649692487792042480515998407689665653812855121166369577020293792240842809305012908541750642683501091058700518480031249184802065214582277180766211587673274160837963907427770402990794466979003147947443178192649289562241806455643631538242908905331684524700216190470548800628083449017109292794854100314366638929024946493613611735767810185598879395489095805903559729497486491684526443372354475645146810683320442261004740451237198852921987996165701233910156053995517663542565390361245456383286623833580204654746824880213387758727615530030384670648234796423249165790679373361861567364474047760852716751250526162844442184107955269283618095017586408041795456437003983917345355383023124194344336874267287951460260345043302286380835775959489022344736338176287402535616671183167299060788026257050689322739326961514997524562041342437348241910312144498684406341021780108240749717534586028779706838400564095534521691764732500193283051741271292849150054460284548877719312604650331522270231110524496881042239469088712876490188975327923269379550259074308315287083981719098277195514333822482395776675862665003680695864509041627759849788056967234774808771734803824921940214107409608541294668135230517177001497574456890772541849846865556605139573470581694662041912449141383712439087478241168022743684311750667610444207907510517649703206727028439730953773217244756679691376630276621085004419985528083700225452639740901243120840062871225334326920706928953391961785571124116007256168205039852501045884012786791548628757195571540823639860743250714186562897764049618630876398039299518469395174321468612456515850133867059374972520440173432610822546726291041613798166100316482188906605214716440604716811155987968347170308997230004854057928828397890568591250856044783479680235968750180750428199280120271750303940199837076296909118453860359185506904082498103991036671857432561457442511341024316899186698489316536587841668501524749925632936609462810043735201343428889820042559325444476485588096722016497123424393641194755331958810363553162651466276632530654476031405477144491147981142366708264643508946449449146991116853362712865748633133287787269356030018937976706429999507711111900877548904752241479480681644756248147210715429165533168943138156064634900648804347665288419429398355346343914659855425728832271549883069771541221303832269236291953401004738039398912054822851571086779722812102169026366125213449631281457880937309164507560175695095851095190553838402543000596144995655816900799216291500879581495395246804382978480657003704266239108603720096968232171562729834793445130700676321840450834281569678080203225238455021555655425871175425724006281338928624470928968146021277928627167751179825266342558614569241013230721869573537436972186283251972734839326182902835333178573744150421107358222877486220900469040095974274057286583336014737149808583226418422610275316627369982221922815577516855306286678723066643332537519983331452972703524340260878803777419990732946848873750426315425436979559691249554292517418222004550734120325732945885444549618412819940337477516075663110451611916855730314698233740257515351683784657492535492678346779446432675530273304613826320936381899097669334009761725935934274518089968540297543027442338786669579647944529522909828699514670733937916549927733758393792974393546719926626321496384780270549459999525819331001195949354484042817294659015025066354033598846563971423314976639869390002945994240132406967598290621297374469617114528747227070146394488868890389963740495569494815103816256426816506081079144516156347257723715337332425661828146122795082605510961735773052172923279941448452190328965619698524449872745367406518142718695169144144062801283760614216220343509044459727632225664356909414578983861269767140769262316689483245288142575438368609995502720844288295760623921785663045678016996825537449097325579895001388297274799629886780285756544278760110187985080051607621571148236198306007938397263023500358208877696855389694712009955731228600379679937604342393956564738055935106408345333680067258300522374251767296605198793410716812122524718062121581145020587215365609089326932756787415641786097070445616331355279233646046298569507555053955508472942839750830871391369196352971901003055921358470972100850809006861394665052818432577975070181237554374568242296271120171789320256998193131806895233279664774054347663431256225820358434503871455503670444694413305836116144320911317521563520652607542931436924410741720626376414012378151343556755009737172466170790663779244797241885187902854537903084041536665452251731414409662600288337368347930003289885802900269093251676165980901632709607393929244866057380378466026075681586612618591695861817648029649063833003224412834573799099763199552696179757244421213119925872029764939761000861830128788513969063245916463321832715438601891119962923585107320110859752222894341223574280890474909995382797564752280578227406358881943192342378869158135319270777490103216189970869036625412043268716134004567716100222899627883036180171251689059550284464491309877119861566162616865708936393977168869496328543587247865401105621788088433992771883444869168888097372398590114248549587582670344187120925197786892817367494628124634639671960822303982127588568528130335795351608569564070586688751698212070856790884465703803436524672378664890956167141249337234003949292944477238297411251402565062864866894297096386157499504432524620690506089152734698169200188476446524376352499166835852165263811663723573785232804878622814690855914619517413314010532856956234513314225957710159955575219029657582222409189369486910637489150981734401596015868951801866325256074916556962452500650569794578072038199688181598767681195609124267787187820072534160906592232423272662428450579691250397038908911962013037725666189039342636327705736777825441152952246937894563463423472318836708811380422871751542235898720459474309676859472622469477433300433595592533786948798943724628306261814155561914485957114212912366717375754599227238783348343852642677244647229193104382409938294132069760651308692133810503515432507502879506942472983335237040847523529618747895180968313039209886594434383209132860594352022246174194234115183496068199043937077328664102518308510116973971962063415669654472657981329934034338909941061149069024537393626354426376340674991019997862677407891561004196687127290023895203941236601609776965457465424548543760405233988088452491792075075921053433931383573296097573122463856739844376631996374932019358006896940572273137068928200069039442810422377907899679965429621981831784925167489555069466913634799592615621455354706007403717620245723531774259021021913699671267275812790828590276337637310523735080549860496018808202908386534858495888145001719460281094247909645970983546200689539409572689454481414018322487346891224169315877564018717319102355023123929899330882500887602653264601715973415693353510397893931308321377609089560297522336257936187951681621710033667636830412166476966515698371224742921327080261626649532206053455708264562192848133802732548050739419613292124292694744666968530537331663360998660021178066962116215620623508239523565030762452659056303386969847816806396292451124854703836321855096782552566147305945729613972953809571296150329389393842859960626897030566143123348213614934164651701645416343967733684454695230095881749474561814414790971966936560611613823649826712499403225948904294051098060279304711092821627300638362285223585115795589180370638423072505526792093654051559521596332197100010031277245144310865372704038022363667979732505784375732083638767491813800896283309528554701578966719413673343965028656436353741784137378480423712181741808000687552711299754487154130003503912921508960465834936443510060729421432348803915982695767639496255229082236404037653540669453623842511643996977225837113481914583107570381708960293736216589775059777810125209830066086099680356652437131132143090633214856111490247315358087651393389637435516782581708422225540360244288052336547117388925675916430814458731127159255452163947630927630794065745457082237724443087673508088020794290371367903472293644649434430917527571970011748712601860365672424902863533615207537095036721560180590072307719809696845382879599773624264195763468907169230327616217231389556566098901690316934572736354749506592203423486873798715673238668400304043662712484697015463386998902344778695443040363360801738860061721111346225860700676335660447935799345713171900030092670206158516215926937650767177761355668640201503108533278821125912534071873214272101252816595844869337461710762361947641847073489015513914168378308709409963337322974222483188813054899082658180097982918646061632430016948590575192709995966299780752597636172773857248438267930108052337050921213528537952315805121171060493264106180509946618855190280074196330310801659668941949738770423765908641986743568461911583735862878001176770433891202623675487698572866883423544940427245067674699607716095699214369736702372274776439810408593911367663775298228448268066977928459865215213308001303181120637519795093501628196478935242931054030250005395100438398998100334874796379684038530227898220933822191523307420548485340499807947001945472760608863494423387971459560956255315102310259504890993959474707512666163880708388109252063761571389101588025372155355037520376618436612383553672853384164688135363501589339316353498331975994612851300012201581504930084922553482942180820503532401244077052975595083411995344160057487420001636902666155324084119342401010863396865612109984832036693210738652054825198757136784128231239741738132436615888591801697935907337468818184878251810309404366223210416435711981046887920489753404677668238444222630701558094151074694060517013249787838282123562804958559971912630074340638639006541783978759592684503845099001475254960406555923650245174419634203363764431199442981395977492263768222628815739362351071468971982351319136527219129923458618354963660830880814947364445338383718292693755090230871126698949575261008223545520628978274626604482345602689514461792015019622017972667565222844650137274607269343991477410287429442628859644090342454414788247683207160904303934016839805100320681143748458723633811006892286751641436641843906412361554775857402217537724850763106078432998031481692275929009117110303141551458223666394705826308625091351781478374467682228324124644377385706174246301036869267746449273586747032931727806963595607049042812040053609824748939478279600700886222988885835092406356351062164079173911497970207580654171032270313287745737869910739278371401992598003465180854835802475579865581151329310280596494523299535316034111434201163531731101649436615455853903947877325547190454711593974088052067308945065079402243247266630181000061801276981434883069994389995071614670529606485078786627677646566274061107893476515706381391480460911527440772307606413895854512291873228635956864781270032993919993740678060799018650911854729291055347445632735320794882060257105893613316452945554949268332606614865186418071397271562507813924640809855397531050210741479603225272627104834775196666148892490406578620384565744849986609204684257454888841373932874220026726333768947527166772051165219603018719049296624500308810502298692125557613315874539658242926874412342008565562693839084370509149310696229697428760186274993644434948405655792355093782072702693743710648383895535859201427552055536631625265027675281257282087117659216204445313657259947190227558736391648315952456013052640694812428473245934721996762373260100096566376096554784266919940801756352270011548015321068255358737359528546006768275852505962512218407207052799920948014806847944151461661588625241452236541600185062132141987800957333196711712195149222461459300593950051009445466529345368334423692995670463401324876365541083752391725813721177028610513802521538346263097100094656228462574686094400497242692950813131568843686484020064735048560097554462798948400097752535214955588389537762160624074362033641368064310367837701044224984616482190403470865721089046514364215088005850727494390562253662910427625260070812230072522679495134301941975019179261185337724257379934345387997222012792020680020166637685573459034761378799184502658572842416209055523407690034318838565237347521756441125673095077969986937127774138509221699025465556874885329152605131551276311585407279149201930015696103537131981575757892223710883305502439610897097026326349396365963673046768497842355060344422037389921966777237365903465894944452768651574117834266647653152858029231923939604050757735520613295924832762921409866668056723901829554088381563026795649552966928936899312798613843443029961816153310359792462294919205750126982177288393262286142647968786135573288229753967824412924261719015071589864458390349404135659266273484026405180732515191908913269261182670091269444908392939227904258588122816926590332549284994365415046632966542392330234258597567929867057794979875540783509140070077268623223331099667325905997336748269154425763469192228478600434420817100987871116637309526165856454966293271692266417062203104004723582487022294879957021094569420953156436028319042216856763169703151553096816530049485747417201227202748940117637605848884732004558827220142672553420821396449582187367469144694868996666481958402439226313636273590534148904889304878371587294275629166544318198805269614658563097702209575132552592015115706586984959640708628030601001338438194632933875283882059408115161745875899700582541227296173497343866154628231750880909036938419109896784724230278158039765127730591214102997313823869871376278016921554790772944166530550063230791343116175598478125376894499533085438832361956519112576604207923239487689144458074555669418462505437323594127033876627418997576269929027992515726211301814932706976500368450730631414263249226001874986237095094308420050342930595620281658551940966050805396813732472151497753656781189000026511838642631242402975781525091924044221947223269728990584691096772524377238239001475558951755088142083938983053289364773518446004476103800829801532076360214155764873772526687744519526029081900720281321851449513038480984733635312110674131227351638946935318710491628969480011544923023250972616531345739027909017791261031290036093169069466632856231949569749009141973281087706377479981217481032262890669999152927473704761845866043413424809482565165647923819140362325712920755752553434440914418071391319593945014807831483340902562028516082180791987442947318681599996990940158551684794248802663140309954047257276335995660501812066288920657677887845109432324815681424474453220747776238952162779540522967284420609396341739927661261714212409759136623807112652376522875615512622340503348435869700276491694793996536945908927292536392417355913135034621875189251327448170655663399531860367642439684820473842819714802173023439585288349544622340380641747774650597445865416681044060957536021058380074480613166729248381058667095281992764331947208630055558934143486126794708812060343209776002108209600676962047712317545301712360107911150447768146359114435458706521489321856910953064113764525462148750401282635802799644434018155921717959837477757390795661895348661604887325960261846543423862851638284954748668298165140851865028041442522029598276209535831057472757953123243843257127156970501673458973647770173503545336593814521109744786564493131406401212028478645048732806717867375846120333707590641691387848563677532719282143141274155541724349231962399487329922132417947725324782151054594249311018086138637540185711590381009522560652057293234940518448814214497271949290896480257075211023799779661006964987209808440820409083689047438594115958684058988621267959110143221496266133410003312161180267648336458328457267707161948453112300057577183947408314850687111862032094976886880242667211617102807025719033807800734208622299848641780316914187721312704849126204931886247491858425063730473925024339266338190774738800954998781031870181662495212715474066638810638059758209956258006027010504693191126544147941963786464378839553978423185589749661888634978878751687491154220530909532156776637797476987803691016042442807619289398470960394347698876986158638762574377815363033708083994758209351330624972012609827613999068827900498353930452916975314419760645777819695010725411557691242691770791704212008261286325338411313497728014336283089934628687501150474972068670964873531211961225164673010174538897447317286788175979840156553295256247916700006188297745372744878989535421831023045481018261530791128412021873533038166514991016192062027792769432988437694513071536153073594572342598357641537162591802898054746991362988350203127339731207405090895614513383007006651452926278513810514454389648166677655310203853338748130638056928475631097278203090119728205959300079189161758301335897152945674489017093540879508809460102107544016821374297841240589512172246478506868698948329517207243035235777995148878050921510064496110334894356928180189935984214987689529940670688862126104853040610642987305384605746650569094582217711826236522678463023048577527070338546393443153255277585554878899139033100431943979682879636335885516707626995047716245523905481486545575057009777945776946144716920716343951429212699481481015068015663901623583825109180381922195197014897880051314887727502206491526887023153287229939678650364972345752773480782579382178471157768979959162670070793229839916253618600465902033025101035254707854673042120104769904976421183816646063639448468510111350023572245980394492507340466975143211928810774886715228511106376798748031580683701035661987577004020950345335504416296818713787006620843236956988466634543969800161367506275510332800937887990406967511220552227973026535561714816640502054403167207597983384924318702306993191700429237386107621556489279014578752137192291287515807053440800040988615831645480340541028984094421852350963270893235881377473324538548754133873137858554430828023110989147822816544907530683697731649442614382310163735301200530794299759230329886231541816080966044707137447637006574350659204912838162492838959471144778191179462372294967584309263873411226444577619401110268798603535406721537787329731334808662778483953485499766588815507644397932498882378859022588599933611523162803288923034692220114010976998775784777966348068776457772856570504224291975358751699498482670570206254259469256825182711731146261477523496204601866361898558301898345629528484001266147819083841988091656537387411210359249435305329656257481523660521236409506084983116702770631463810497532284625996641919815635789062392393063725559248529523843761151224935467880609745546720646581086484099380750533604042724514641716135110021535577278706276484653748981522347123688270565577283838184973490219742666689390426984558181872795472827751410888281912576787222359261517440003679935410356527972996526690123603567969691911608045702830354879099287695801591742888152545218439157147741766965040380570094388872403231062623509471912158895706261337937414873436328102433677835767414885087662319616098486042656104818332837332470289303859438665119961690922023785823480634670278697803878388994083706694143273687888971806905826073656538064536215794543772007362456663435058387720514011642974712607178624997894057555969951439937589922136123984205047129600931553693809750933561913171584255066594371479610514760288505411456193333744720634495453859339059206796456263651326415599266981344748148702405791538300534913563942066932327901416004151500641641847484035610741811746887687009803532796765339280208465356241491324068550933966233730702469195982405972643427498233882174104576744227781633250397064741193632422621351301832020309757287830716325151551922990311104951979206968332659399535723967772456693297756151172644278381374913425713242515902263795003488889486593746285503265338554437522370442454600573168305486564896549369005550968186962506785623881410418160015708058522355314014915161630045734155158871875252499568001525180391864948906572428079367868028239911836309438952990017727104623865661325137882889801129912131075104588908192001381818879038267784691547187055204905771772108884455734646689993429717935444509309437646002942144604689507605543262207446798624126258628791328507791641988235464508193354252883279412218448355701923929227510760814609865894407857725575535668750280281611336913051432666306946937342121300186496162086043664571257665158546916321510473553520523218411267277063647078064000154372881461325424341808820628230306668528576923248410243438468197457614593383435454731112911844363134836218364786158554964115996708099974436101030174493472442150244210461558139248070119092934742203532064601185941470836015512360440840938148648622421164974812115450441561503641478928599542645164892280253237065880699593040809581284260069187143944419006000883331567563666016063434512768338457678099500298770986471392514437126711775367998779475083452975975598232438967749766072637604210463610917781134738405311178703706012675969231993317637036453525923062492067418483422714840227998326476855639218586002315790507378668599141490500517037282463122247516735047197538219652222894231339085857461933291208631983705208367166095105027193816244640132650515792354048820935937700151258646474863524724678088042321217556349789700982362026317843990125472444011401607259925975944050303425408947266791104575338584526897493982347417367143124924264194500277270411324440588131865915217682555675223646354801776685339615235051877542513402846429915403286444546624397664860265001251476948166795639554781388631501284297492082949123308409482463414827568107539453791098638562545400586953724426019705664250373457683992103121022240248643537473630648102687037080369943794802733346250483428417668917561998950929197725551939965662537719339796757303060345914597977885742280865008128806168263112907437863430857624699097416461411227642759126002545517496318295854830768893911925172484988866030601681738673644655909567697561777541537921663687584676115620939602035235451320918754165394323472194328498852715991067439166860869868358576407416936180043915789670963830976365916489311034497318389864412014115225295624629364010093013148180650535138814337438589188186164293414709321927635514076749983405817567555097368002848487844765958238649071110676178803298275571840513531178784371382846028395873513231247391579045338449233841243949006377221864696243648334401267044211374024885695988768079522571905845613109355696562037304389954798503929968229614623675057788752723051285866004540415535641425845829492748778295968314139424089623794474247891111256277948369283166508599427502448089762757448802266589261664816255459780590079315784483749681124401933376714890463442652144776594626025737034695475860707982702594396038872518141044900649537650276411918561291264824507780491190337085190251389126491245736791311485891892355575854276255321385660299099618824087672811324646121946456543841881652336133147225944511367478853987910315262739343585017715884820998963564450071443036959873488533459858800249521347251836142137187936624214436395627299297660322680084621678820059494250545873171595468211508409667394363803271605027233659482271068377666055636185501778800875775877248374666266325374268567399485677338530862702268590081940595497636359649982318926490720914717075841179197482437102335355557595720287325034194764858108010545277468706916936975485618657246273141766294396879569683601349090917349373569399982828210698629056863156367350015110521934063162696219085440169720693088148393985833108092829561326800707871527316850050880654123076079391369438606262752928858021589637926821897643059502491984267589232606446670246024360393057258921788463353650829149576070055906320778844630028520918976604055124229270270114846581143645457542631851563657819588843880614454197425670167743777368642556330092263944936846571108318282924565442676132806244986037148966385783598468478744518830744440211263375702305579073000083024621498260176981313610126306199529677269039940942189436983152207802356390378208857840795893242918882093313440818402721190990348263669012157608902549346135509573599410413925397776472013051542396520918031648320484835881042731507689934544958999952266351521402286171990215521878737462820722194357433666653807448698034999269981474381574070619530641024939911448747338990677428111046006838378213938361072797194653072231872366995160725573039808250657609831557083129886211121281521448680002096831026163628041717112757444908186739463328623056770967931927920091839025865498344726291137606044401344152589846831163947878569153529969818948963897605616563271069788133601053952651145498252771122737617814197007059341561508329383261007456389118053733175991991234735068133969562248629927372214416336060714275326686170975643896203914473592921128763060893368343585874811759801067800288063565336271221985256156526126711106786784287438456063772601526363920075060438086577591226608746773303015102046870427314973370513428830885655400203724473138675734134342341566181636051151271030915319161733455946096811628333208429623412169748416995822789386560050535831054579612746183601279702166849217138972985816182993918095259761809754371664524392934751370536523057791995821335050976646899379731516103763410477831946679504093026004457129767618605291018865217598692435955252880599772081206490644264647462149392597571981944091662677476787864265200837468945391179157200945828559534086917026554784336205232771714933922515145857206214299386680854428195107851553176660389608296075726281202729978880619775979292774870303781812701950794144905381791406037316800611102520618275035530532298049710191518184681253960701822999249980473980884910828457789070773937108545074593655811841947378819880555007384069410001298697558434673284553902758911401708750015087264355159714538846193208907952273710906025668794195786348241223600659178510906954460140593398316230985589487250945118136335595687369430960311920071949138495747674481383901241988269207275660661957303937583671412450583637352410151668902985837360226404790515605901859278065931847503302485476228028618421198853692768267591305183911060457843499732955348243501563805974048678938400721040561470177822048966626511522382653587948626095500129417731745637250178822202026672015503400497253258551496755714489397231182452113208107098752961881339594995617544683399032475769057905364261384106319884441498860276089810148107405415683141640168796256133705267628632127843312054387515560554806517054785953243958309824941818036690654529038435707530611665778355272228934208555363501603216866674284625244579504268978703648192412568919768695185482097693736435563296504107874863100707613378091890641169281575035024461554822732037248962985461548269200215417220430593370524038222864111795040582918633795075636606700800925550214118813719986892022168867500918898428862665958169281220104901211333048050372986631596710518419609882288092114366720342530243950980825873703923785076362030080494702377666343747747897086173319702269970046003262516851509891706721230540474287062274853211643031832506974490985899470568110582204926419939411476365118906161518087683431138174280682003525341758306663496045515757537737703927877290933668533529417455616010377166642905448063064527507045212564013241513851777190238271100064744988208991859109863727566032702593532410897417205483366636109614635396028994443153631199631544152010349048485210470765483066705379542387761302573574067471837776621892477412312875522853453501163937863548938587527079477274361542950010581483147167845989281132465273297282827082808998423637728882625611046735717193143991239825822983159483343666608250212138239413153752331287245483413802419660755836475657233308160189899729513675283433388619757623148631737641817628918569192601417278177489795878190170205904017563773333079016350418192700306966898092158262097126928967020788187771031510469856681656358334164003046953448333888623307285263482894547277432195907885133398372796020195524592786235310966890943381740520124221937900108568642261463595634466106736154708157948634339230883961187862003324371205670073154320174529525748149678393299047857385558827653946180338651623834139068577080986400462331042310708265671847955078329066458318182261519037645896862541768984022135656599678428315232524375432842785879006836290023510889010389473778479753903435013730893448646537473644036544368072591521258630353313578724018047675578582328500696825041634574250963398373617758573795338943797539008438240131404954187027432874921305949744596761054866908719677948292109548214946825130433468116159382374645552727732409988189827845165261603651913996332487563667421840251585369029262061327339839857684531620503496787449938652454549337587108314378991473789079543940793610031007131157434484797965833670740903454701625062825763832591432934905355745594253454882410804573856620571708808821036399776707129128396758800174434285316945174443367852585892697484004494145529981596598735701585914404445764232828214887720441891821918807417856122901652692825223772595122439919803050852258540797592394902879942498029259943493804233194208252626666236277475223949420562967033224051570586736911342875588875764488639854750369365900505916851208440584652354522285175044019001240669148376545973647201147938603190621488503772921040890368786002831521875372406960015088234525373563435469344376021256405872758959836865645300430496818394670376262462621062041136075706921750207583297952370821301599751417039049232352063885430560579532283335258176362786165228789056232980861541531911151314616736788051242126312197796921272758033694457280208172430371981984195411849135869135305399515012944674509202055838711007050163259480065700462313029855390166113435313210228492186317562901323067406042457664349514921642834323583042176757333333980553002210959875743712845766283099934106914326813716789430242244613377542583908131161411737617957723454668594325479220206137706568438206387417181125897520082173654656671800601744428062066848385538714400578181742151756383836639113080856360043107696978810916475245517534666162736988911049269612864768293962610857080948562205348272138180644542193565024782056357063878083796506778101895856660067513180613250986271640020886906146181897604849815666286345097817518769234603335777482352135905335450355073634211304773790541007142358371499758397663299821847918220405059520923825039765732098519075136547734867844733781884255250962027219615005134761436897361118249349319078695960112978310367090244271213787040308464232200807099595079196628104399600855599621678603313238604923099489055419154046940834123026503067172654803802717384652977497388671779129740441111735256506913258591161507063894457401979591799809202847579382979848465011056655673092895828033738644954137594868977547117326301207606081323778467431938609633327593881718313459476503336535914449730333908797663644467184805064711947083107873144022042988262012470176084751322753153342220017999785161234625336034126897834117750084607301072270524223399627633160103959437217023738943868835086590279509526326376130541329190765972604132380062334343608924061703053993505912746428131887735150399825492253452550650450699408274170022304615883735733476092151986541960540237662103281925172405146046980236568444165315405201303677935851371298344270317414147958147379297419649317492323090878813705256448242884158083085319099034970671531843696384081163886418305456141665161507740367087576764354159836314082274373327015980729515646041465121733463124375333669416081991811705212366486524596559217863291931971529631831373851986307321229402433646857367252924593711559289917200290029154738460788617594492932733311233783376593120357496373419725750491113175491234024756389247704595181370415693515363867767263316367741622154517828216506960735449662407943090409278594976863455128248199307798709649553140186083543882773094158450868252154738450572892285453750937944408769822554535821386518596577041129062312462111011350351440319759844257578351903024944056718751212716989655128958000045366697902973603005379357230616404394958567633363054014956491835070315874649851457343273688407952755465781211363549702843959959791158772670204024319751044102288056020153078550622935440204824236459235138015981625223267099000614943405916234714801417589696815971596016800283957630388400120685903258094083996290644761250975371231402929698684312337216040840455403270113927799749245914510587966096090572383321220485217032476312460614672624460946531261931725569123427201155733398762136289545480969731498976591225110518382429432399741697264754469909661945145646135639832949446285562442319097954398905879190322782467177388118560590677612103969953070414478046889706113686218241165349703914316718253207870687382709883851949891023902078985507379460365310968445118634657793496244958590641980577688482976861037235641740129944831640942301249851989826587759785987734958832481626542647929785246143910962443108217242559408982107655022538040983900390305889498638975058342417486998411388836799242715283964169115810998997005544869269747220102118112196646500058352819901155533162780390191429604616404864201994644328514849503759597612362174904992753427539864348059500166560300267309094798676017692032577357386188263194986387355403896013703525791245164375983242322277793897304802521013629497520409133678520368118637483974727641410331425663047251526295830490343858414976863194316387122270055366546773715088658452663498970732263829589500596649732211340589719218464166908408875205217801303003235346015911275103483588306638073276767678404965544186067111683875090293795504151430660201279749472620421758342858477303070314146876108766483666888220242579779977448107783313580858945393824137220469157424671154474336411587806202203051069529830083501868882287713263570233866287873382666747264520268625972949340986061933736138849393951538881803390208742648369204151262917097724642599092976631846042118619687391688891385099096218543300293917756622747430025000141630325126762647673685897518830277153155856812937614092203262675376201231723481509094360909075513243207082969344315485017780653757046200137514164996345887185546053343790897585826165931821536582311692568426924484822248165910016310333614378571833865124904311132963736488028658092620831043597658909237700398321108667212051506418952851992403424906166739432813544946962216148841355808020384479825743817847343015867018614387318866364517587874024783664639048369317676975047114222423067559826061435857295295453564401209566969559730222197386296025297268994212459749938574910537190777731170305861939632708511743850266519578866337193940596694653680676895083348719423132261705282412650819635198344989191626021649619765595111811745989652738264435298314720039189242232107704402991261611600513640437068463803406416858039385792405096428189177988734741715253968473190196253196814700784505593592838866415254957175122795989284872705970882214066526623328806381188418213781958216485321122861811685004913236309320871371161312979206967085649637857253610309291622754618119773747697281518405029930952189368636391853508071391000598275319104471751951658246530092040760396032594521442733988192232325665748991999243420100716213069354522830454614294919921353116407244446746271833587493430661227617684004732119064128556519108326817079614536252077694133111203362220048123162835224484819234407185321267014817746044017127781619962610347488499009713305691822424874690076430063966622374215743043578190572058141781505207403832357033476396742738793527171206101959017681906521665773084163404827962927804675816213061944383985282873790869667686583618342215636126370604553216913949714525889294322616164917656784155361273990095666656900337409438766658211558826252872509512328935485388990418512243630750672710829912214782800845964395913561701518994205710946735587694174435375951477756769630031050765416399977114682202449470883574944316756247751939677048706269942345186393810278267438349741633358241508180619839827507829635527286030604943807561031741553623641745029747740223569484330008536161496522949503940123955369836197637000264714799713612394617916670756784486535997252256124189697660686444754492221053297459616478761557015350501568594295938433367452992964571933191894465510742914412655643953168504987158695997887957514137181623630643672813354326601542228264289008512962317825802805028948968404464132126083075945939239057574633896267058845934708943309027069031187761904783773645668935393291111674226507360229323447291683004803180449419798674516775141285267440127359861294274443444706475172161321583765840879849936256254611721235960019660001260503556730079529538061880937788777074108207959631327500720575621772168783711032934731436750236203514408336446903445511207074407481811863577858118477397800033321497226363961993705284001145944136754593750613840149929941057828021949851336320733226940606753365983421656536663177360137113615727842518430657294291545930820206361464924924256708020998869431378107248368862786531693515829840346208234194930206735756130410330979926943155696881136409513391075078871142533598860850881694369232198883650408202081738297362850289213248626014793021598580860171204685685513739185340490326752870209418132783263948416434806970163631805512912007517366527912546333230139144024837445752325437165425900262577574941684322984906838233830340897034972291570219591959070643260883670135380551620770894483723919313976322081516089632364437011609928214319260510444737443996507535982637046387198956583221928202367096727517232942853231346780127159882773777104403140665660446227852753459921812953825353830876475496092413933178022160102933562984890263786974210433938602396975840551572371490872925092159579761032852133759607368398639694552580674497977483126965826718771554828362828824261475140094137959124497210464140199012800111284318084364085918619730856043800868050896196233843152002545610326314859162896327009075329100391121032839213787285186038069603515226987557539326555786782889773591107614364549864526631101716270219678202411278911685126879285123965964352473230820136025093139270387232065461817736596687903727825446396386447086383899877633229640547928063608196589000185557138436715372507195536517819289325504236592686812679588027234410604098398710179132074762497769479426420578107801442961427179770448612231136789694318676570972857191240101063898481834171639226086575946539343590268110517595456409252296217913954260815801777901524752800723450063936699760798155728869732317038764490951242376312909339281918816185420962615424774096924850960084367281525278887853532785290943669698522085913722304247354111015007877403424662777991903393724350444383574798797651202993973474985132346638763213306618476573013720153751492905974333944725144645858916521347659790965059074225514171760926678493280209095743308027983176600926486321561612033367665918324094202408507653993347511433228142091579316327484077843804534693169213167241399322283548878511925716347061562104538152655620679896914670024692408673163091377251008962471801225304039796133914190789613681926267667953570804953890068690094026621584363833718089977810409589022898272563288219540464918223430407799596722499351694469222598339056867958475560217094835239150913811489724705911611326757763280330536236352587152860071963106654043455946602033208421756530978209437936911192954300974886537445886594079234187964502052652963700440347626139775487840707861248927408669255518604831996636323912576369924195045162740231559295933633184629551666110193111772871418226598643274731665945425096993146329290595204938744557586838668794940915431436473639960805317540577123728300127530653656244206012902821088040774350202164018799736636220606853254016931849217245814368004930706304791738955581902284292210336073360487644901633239110044471762407030475119570805645739880383750568843172593712846948853982526350228640538955957943170677999827436157376237002506594745107204470440556945254787080119178777659529237549588413371094589869707669162131251036756714043901566107852357222167927676781058280442184814879920991803060381297020048969061053770913175673491634752222126349991038299065638445429842117401700455126620617823206154027280874639380953238269226061660597435812215523722001545762690426485117648588114015485217135615254769212492446004661069794198697615734316789314869133934194043218450167600818840599038437081939206319321793258800510856704089254042419144346079371883980405081084871350369838130588389903592530083507185043578080721157026728262143982422956037724210094588800985581276483112520904051557936612437530824590334901482834792338834393408025478368348706891976499041360698440143227364784381446697963372256615854647142001089391950555634957147520676039099349135028687099177387605713638963426613711095653222808206055819952390854016127174228344965620706095675672164787011183227911891808146995965652650693453487979359378526940977184045686261000515586833210228196550384211538402816322784701445437458620806894990298007918343200548608518003763882026216653401070345684270854761681673006636734449117498901916067916215597016477830655028663127107382229680473906191955183699044450271685961192416455366943619206365829472365372053574527390594362095842807322455138125583682817986179773886856809152549667762347238664557235039344529581070289365742091101349522555650667188481561714397467625165844711488799538965981832121868206587502795675964873255618770025349624950858043377143991680489378965051407590510141085803735051319536993073127063138638584542687043969789086779711004680642866509102016809848767248248445765195538150255415540005983944573922711357651674590633843117456503805590842223301520100585811923371714053358413635508916469639481990349074954580068750929306913711762283342914026756833093871180909343486256358520340878855114476668043621561211985067036434574971454026133748576136631350315913709865526749740484388530718497986757879491589762703456504561161207018938436976641053407808348485358451409566969178842035544614113913707231750462897302850826254766338079851563720065236951382150457159359756711071361420518338370096223675905169199805547054391197590276456736075995124777162226887608000364516445622643451879585160088812732011903393666463299334984295168633413424309267909857923128968435703743877449419978326770952420513764316169334089235612511322422795075949688272163109779437983837556662780885351071701647642431402964892989454398783240690220503711749855715147399988797282666353894990027638402067021888763012705892855898635758362150352871409061063713892488562923223599424123112019826743806356004632370268500192705395542512900523414039491490207081322600491028648474554423542014872850071451562256529890715705176705009583277712325703390601410508713760187106531819659274656593563103947473293081984170847388455058271347251622462542499386200913732264492098015942556577696563376133902120374283958696636428243222199694337061002704574925813404674873969766816367895809651634522693757508215782225791217362861584685960397545654036106171675975416102593070374426461001102547049785703233207959828646379681888457676292056540361335447403897766587891949730361618390907556325441428717145908782070715611145820428607969231683042545626748103712065614778127284710606911324036045563098420092184409327747067690191691541998529824296357922207629318398752145430933889269384136380423154915550645670723610127490792069209368569702783072231544822040539379108023653589794810826770836730122882450366389281190229840660574516746881009452198568424145754315119080863259802606670240845308673783596964195899697025694025040163960242677413886168516311860774649801343085114783485747622271137387231924319763138666180150880278510998052458936095987216614513346884974721660960558697628062942765310997222968138168524783487545622361696442096360008124433176783552009727166215568591568166444750259177733120785768242343378651127710775676995916634845251873494460648925090821061036562523553809632188092416499213133878949239389459133678627429463497009188966153874230633488040087278823968362099320723525876613136333894364367297294766736579117619736044411409077357814060443681520445688706430004588674288237144260662131215551125195508092196312275579523924941252776686834998760026018125872719502833227758887674193822924023964954503209268311140048407528260418732678175608059397522217690051369230903395660549938606651211992228170641960129321738980908621510531271096787697728244167538630922556702594200356563468293828024901381295723348611641736475914742607003426561749549803500293459120725421823431737871786965665375197645447401593822510821528319833076738611020752293514837194461196338198434205420346801218049268507903032111366175683658082247830907721553629523489827487072423051646608754244140625836549676587712508124055733889143758346689890629293215547310611290414101494340665801828813002236379668820882631840402158764668735691296856277327810594835428025824747215858897568719364854845778014767547138094785258831392400076116484802147756245468772172013783504808009993113754311822315789320633138485603465935494064569659526403745028196907469387671042816525854637960311338367647554199540097044327867956574503897590829336767749409351683683374975834425012182363433766040756563962225508108697615147098746223456583626374517934201313651738040235513775715765775644068510150633004701624041452971154892787537958678164471067347288189589545079760618266351276437135974517690713760082744113065914439026278927008725999361771116965928141773184828818257760996219755040058165789856612710527211943093613705319332601105458565384810161205314947665093785784952509131035934837004299372396820254704836078884067228285647334966758174756071408021731419422413866354070552660059489351103113725545653134207521935116655253663244848986253297980382583610018363663139788178247104566856899449659756541242561820865756531564558037657818967340296605028100010238339475765234885228579677356061166910975713359361469484639441418473910333096870376515060816382390566287290073754788118852682266354134546584928562356307978877284217968613520207270506779444255931973710941404767073960512390190928128638715563952475693333342962678923613874924256099728876952078648013518847156579465839114723512005511029411613202009165296775484688801201811289037554845928908713625913778799410012408797963562860734222497007359873807156087283665217785064825532444733128202570700955239623577817675689906258128776787425499885849952920273697325009104442689934889776822601523400619501280328335444905733694678613927180461846434050954744565012584437202661731955092549599005282124984532307681180165260719739003277966620889775495364047727270160241169877940063581165494874614321690646538372232913650726175818316098721562428439802809658379659368375860236244838683274262827565845418426404958697653219417056606301907690046031056851335332661023306605431377451923267832157533083872068898794334880075677304860244716871882944902134422991250014404045288489016093859100977753825542765359193772275461520748490940899638491350664006774861221667023329316874408193264548290041915919449129561906773794280059200557415354983497764938276482871889006760664967429090758830667016580414838264647044293041804049042323921299712932795314803533253237382997844175216999200299650412276083393677583573628509619563791094600581707572994429677845003745909614014766830107081298513622654056036182850387317082350231994506846799069841100186067163641164867055875342549292537182419961141310894013921886319849014413819500879815339977846225508352905328070886846211846888795069260879878315859836533486462953456591363424196038728038797347843931244612668353297831079101566727911937385579104536689639860375658399073603103449646085750076984662864552900560001670893208552287380891750757900547683439408375993684626263989342780326121104111538748474832692196583341228835575039361488702123666574557493385065384413835844172033364241746625869092168623461410148337847150293116359212497430059722826111310219324648325277615529510502940032727994151792816136744201278607591088348662573502237490620632553321150679176374348899371917762586600707089490069830994165508978213606484668257863730170160168999438913620565466608766878414250946875050434467573575939307263622908828369485963485798649973860394040463359224118403920336761513961371407461157020542703029846357224356269880963120419732046847894238930917280678605453009387527390241249720037886902238971094422318007654638306076661039909275631232149760738001340793597722479874812163125817746003425941175733046402362285036499632085885419437786178089777361210547964867992818532086236774469835244050501255452024569813796975680253520753504727815802431154327178778249924870505549086945349807362274443332331566700114168535163842355808858130566593419950179374303409470761052973235524228766169554819743521978963266202873894953498229415044836953801022790245287454002648868949744606410241115242254976741269786745818046980278370141440129007007863855895973746012997400883028415552760508638908295154926388937888645220604994100213193545223752575528856811410174841958577672815542144993465909011335914825034206750482009632167443520892783923738665411154031506203484133287147391100878295414471405828977850279285066316867225026426694126011997516569772792152580144928732170441149181465525300580143941847224751724703286722646674563246792960013128053670428278264372806194454828588435595447440724539330880306910103237870337412907657132742536947907249182117990479259170801006827990305153758513474411820683422569508718838748102892141225124022956259088788325592871761540314275604279480440625768590931377722100330149367495487638694813831592102489670609420887173299190286496326900083119450900569624337682081184885668805500226217515478588464199460920640714994865244301262482655777687655528704978006092206100242989220659232847548748055432090042554664761857478607251031899313859008458406586233087942667317602686615246401310861137822478884548109977177624491370450180191702411659540814002615913141038260884361004725093874165181993724916523489755044176316511164639266136005972874335456763805610402959037696921482306582536332686026331778948165111929293492818969706954778045400980199856895640762293101773703782293396153480683748535033816914339530827903555337897911794466405964236164936984926202347626080999625184828699118366667537536245114435600906869482719277078846940006464286419797874984538285686665348866190789586261058470183017326793971733827034553031073702269550619904923970206294137711846720228884276972109207570847788509190991566677710187151737638418978465834105152712040166061690101972727798138131296509414396312700645754400959265401032713075684463792066818488824906283141498311297412811214951400367025472460697176862086941559046896065376155826762386243892382868607395968972913643910087615091082605257259044783319663062153050860010780393003804142896590858315334407176270004856624373003180829161904083593456661676509540829824667342198172294632606265000470238058566146369098581175468736097648934163422212032864950055795720521249096155231810775767284532277093368018850582933598819787718366118365757119662807146759482932443954006584717796713334754080654376376752344615862317269979976459525036796096487426540448895256722605651630195739737954879224542795154096105728397601316542631143428201464263702728819816633895562511907556577456446471207611584602890928587773866781761116578937615463114659701679913611217943893713080146310454554946397823314810829552007586402981663862444518565699934983821603044928477285764740905624186754601053961710490872977855603147742908649620579328586691326031210434788593271006625773438512774741964979855768699624582086801820904017707350931107623353389340116717819365463763139809203705111845320648534045365444480779002861994909614432741571524047915523826179838957163636856594673936319882449320976214551291135451575736184576227761530853961045262913236096889308661015758852662053379641414334687996780984562896080490960952277668567479725125265679144356227296540380717438629606533310131070742966224791578748867210858946218550571888795854211558300220033225522145938938779538470122752877106827484207005221090577482325584844819373388824241909746408045684526564657915224894796709039461489027244973949080310615146697160215478957462367512507313034875725054750024602818331305211982304691979130428911433419319040277342680842531425566597015889794609326888218649788289524053081176749981334681629871908489685214928045988806300732522430886565980943984041423852373049411754543826510404002056667244087146887980461011432017050082346578464331058331586631267916308968084087338057948121453558754286525385065738366505869177402664869756132193775751183608062211079670153017794888494250782133859027041605942356797693210555949723151002360162013418749875549202486912961997514956617556927926709314345484820399020460175772671793646000978697681422339137641379271643337274335067973431886604570398258140919471037387852570528098433966920149939219949234196158937006862937862107351955456874777872826231535705863198045595829285157944031219062057030240841221703666815883385827897927877684438059527703802497997871810767951204262275248345461363533699959114189111943275957232938542413264715496534345031976239137663488678013789933034749584472411472587437347784917189137974921119976558080167906387943392985559128664298927814904133130100518784827167113644109259013499781808104760778671702539616796275839427304416548070169764119089699970699889164854629254619462083438516830241791741795387916289611331434154531716966837008380549332994011858486747372838465408213514430721259410764510949317997420443580519121651028540835447888137363478312542070143000192728101592810139926397188142778383797496777981421317184017555334517021055278311363480626344502986362092881573172701173441477621201675508133186581286734274230331468973367060967187461229874562353619228909143355017482887671686725649929879471530399835418556719452365053510518309312659130700678978014508552099987712259503387040415696051238130554395593796926560695638404084355764036013487114203816186496754139553639092018524883536468435944138848804809276868361011256836966648036934869373965957295795194511414779990139713799138742197326015700104523059178317591940458367533339769169563503455098804338099671500264243704218962745326256141723343330570617307248334868443913523012116977524721055524674265970929328527191371336589141776930796403573668803117588571857666774873657124650953299057515610628826891054552115116561285269565784090397488920611130902748854223095444725239149121293370260860745594148476225125006228116206620765046559306031325105548627887271562246804928036042189243098521229022075891766796832203920583299370304277819877103228503114276566760396013352816393636710395598105148825227991327460232271033786992389315895440086202440443621335199161080983739147877357539117305775180045816550082157929474483350394621841746211246367795069444717184970666947823613626777648964019354354486153391401316158872550336040495489216563886724331215366495440626905022469107118199646930058198020537464521892654547733071842351791532837164354218392295063434471103656720754780350499209348544003152617048069162898961858363796108194352483887733251156504964801255276514462632066064999354769110442504003902940705078934487890580991882575546061780465339336162820123251492816274165729582947923618776625736678779027324289115386906815468720364659841954147767514100540545599479990434807258500017254004385883998689666620956271174932405394032492574027883227120125399889286719516207362532545276716318986782255855681997934768974863991382101365286629773056700606074029508845514869566147683558736246004865869779731380504769909410141520052472406362327887695051101251268524365070779008872946434877782171495980764891002500420423412939706430721919530693255410749715006796048075080994815320758763645185405998113669941989828944588465913454862281219773428542665656089443315392300852757279088634478032705433910021223160734662055444830022387465326297300559548249142691551312618779608038206466928285347022986976934395109185761905039087479502853012246345935489050663739887564328415378228794244805118342496595376466393678734133722105651187865092353165069617560123417106162665577539755925905736445855102409849490448255731977767925959006841214346286073571932663066037067186978162579236382944796915206877882388272236587828528196273164120218012517982213382252814156066213243716227582882345415496021521402798374771783651531754523307912058794308413583491175504866704288818404102067853332466628738282402354443495314987100278169833912692906510707197406440945184863650316970497018861052996441209675028916206036590675583144783501627196225427104668138669838424121369946076852796958074025736543948987052515148218355869669926427613929031717080928960493009423298426308038262387645663710231706234365990025351748638966949096579968727034522011761018904265570171970330059480295793249799483312995892572044646814594773857159872879823795123199919169185783693417337873587990588780254699650193315670588959251755315350354653559736485779410367741235117998417699364648918432807201983265404784678554537592188670739250250258370344956209482478200315221563575806324239207343474517655958220340473284336763268160184659892155650439006438661145814258656991742810466275357147832069777866296596270264351630493835922099703998797029866210704056479030816625723680641600414760257547415180741872909924175489819759659042026671512975210784308170244571019132784803149816399493224802080139622900065826089397344069956820461993545644721114466020591910889007512749231732235480767133646904580291115123303383388231074323721733228957154911683755240006128603098817879517068481386959968195273867466112765839305804576185368746368407650180712878089856053606455384260211206864319177212913291235174928028915113474403872476404019130901441053984006199778467047158371728364168684142522735225603516202658034394628047898985877038962625238482350640923821447634167662231405005773938628641515607117493604215995848182741024503287464888278706302534656087443988226385776284356529785549276429960785741686507505912615148849774275700502886300064716304260952777139386888409182115208930841385879812352908527438260563218373645143429619868188516994619522825187078976256158947525609424351627342948053272686074078349979230216492347616439259135363600380193155246130654401274407225109136055321698723720014400217339262562060269967341619440401706944915409667431283027160828157368779125679659457492844351521927554148347047256210849120362292270884441009332306303279742163962658397098648674552071012959131115312635637093699224184760359221291299475103427160088789165308593027473110267378735842090677168485491245223700530396966719913355110906711406749203761789874745230665242551824642686982982212360147585971758729983631074321001043809760318745200555394459816645932560687413211322516685621120488533179155928694346294939665774853257912744163719892776365436922080241385798106014629003366409507147558971380187735842728713338382267227414457109786759249799279358454761824409547782232341468322598568948295685564687392945069068845933560996284648845307480367303683208997529582631901277061434688241985173027036105343250612699233812414562531290031346173286165640176190632142656831306960783289918873805961109265029217135452781728794851735258303302849465827265018684356127980133590670475794453771357969231988412058679034437453229935061024528223299234144242934042499260073857577321809059497626679827500768617374997455193552220480092261793661949910861261439416369602478454535515974415242685204978276918899453586240772660470406451419460029592091186940744502268970605587369562159377595224056911192471063718790221655827454225189231779652368247925268472886237678224315291845867129371713877813571620816504938821333472755344749013446405044449307394933830061883131110353751972663915567177382245750618834310086947308739728615914228077024223477054441448751479289614723820184356493171202802540791072604169223040865384140624532968795663595966199701736931773189699530779981689542320428287488093242884434538739830280931384284621084641411322008316283570339827288580988994620033506928492272815543253837261250863945903687140327761943010024337219095916521067311264919578646314377702808620719739240726796306114571972849606669155403549060550110883592536310978328724592492435144008794973168059187230867855387051551849310631264446158612130847696594680142857585210708595451894482779373808248609824719620097035600587027492408197619392384320880586957001361241904734772090275140263538721448515581951865967150681841847790640771835356623244901986278139776429865432966574581493777927812988741080525127157726985165234337177707066714378521287139961856734537985148666646928438909278743480780400028272883937125655284937985840179461092938379878868386023936435027310896708120564078402973850776554141166316660800965073293813917308411380183888889737216187378883242707883529182198874059875468785541343584611573154356371052110826856232467731908933444744991037674357828279713446066583473521275072171454827237333637716412153037849756036498735913568547965039963772975720973302365825974424895639688780015610694864666708364545524265040776070046207379455557645109386802399226612745044840977454135176560223821988264767246193734986876624760551469220010661701792569433677530677017083646663274936142228625164663660572958375610505156090499230563915888767281558692809311118226407308783449090855807264142699395420912791145285081138738135630167219722877937680976941924062440783990406372302061918699681596327337763445495822333826314817560058102451815904055167494962607529677924906550616760080173684364397201168310687755305153265269175705690331908482029529730871608987123489337442678411893196078429174304293638078638689611779591291366730823595224508340176583895677189168519820963891678819840111606367518637421619785982472223884544733021973490533775232809399005059768548412237668814967115285741029765326132680907408795742030977878746520584999453014968385302668814455020552272934936869905857637947354536958903830731655597346694197506292385892968720061363981044961743761894612109619792802138410132911668522111342305650181983165410212108331005611789774067556953495715727709453231123217369433479556716296471300486321478765351462651514109007719477969650795457379630067805750005120915821217968693952588076975214941390214772236289910095566449806714348552127036102010043419431729896617076687051680788892944258248405414997779387904746526017952566696909536687510420110791419603496417642645823079670432183956482538395613197851212893346626243668947457897143508133755391753687261846913167764704380037042017404431674950066486414203395415524257692826291266233616062223685927315871927919117645147554032216324632699724838630319259761975563622479863082457554129766689176834353852020868223768279140717168857562645079392369920251063813137555914791133287073180688197115193295810146159574828631714136667675302545897290525118404237698589531244203941515985149949842394014747785202745535391788736009993052199618528024302744221539312872353841379815719732757960341208874400499413510329320686728358741773880636470535635973498525682624999083222270137130466155414314474181154426659830357553219455564300760005587894863665002896139039333467593785018847166126178706318288547240142225344691547583508938751306094953388498595328668038958810247197070172459651106934907696145590361655688222001363024163861921144113305409761240483245819591095643705700048084380300980632702233879364736325912034383598679644274008092168380694078097329795838650974572477230397504478710544081595565934054452955977083943844983747374404951352002998413729706200623450699031135115063096267176756044973008696231934708166342320551282513948499520466696469169551675999556800728309500862776063676396982860563399557486099302454283558681986248040314708871480280524785290182757743714987996193746474742021608021857263020096834669672116929952736260803642811072111260762596077723787238107731285711856885382083898190400352445522501562899260084103396528695059131823472836623590288023568224446563285983418359553641028064601190974385598836353708145625422673469219512668328336654948925746474622483033262002820401943380863368008272217256241082989880409731315079065377942456111436724979401052140008021619946160628452885460023901880004460528803238183103477255122291239835589287253533816228907150773054011715580040160147066607159877161668329233124851003132093903984652121253519287335277494408575659432952287087603722239951914185032387644519716870880597566238865947891513618769955963090095202039429930072169423305883084103408187486796820886751746131500551962031770884417227091668187170992623362310389945459574153922322893670814178499249685361266986854102249509145304386672410745547752959373726604185825425212767366284616783202065710446804633461435865743812663715749514462031543493997507504298651115752518348176268922527627437271827679670811951463658321342534193345681452593312413993685693594564763715373002736245735999467494578595234437215820081746318556009238846142154471703543627924778258234469472223615026463740259575250163523988928867864836364784377520629177852798826650453972203877181187297808593135664285726113281855848810612983479597959216394612916970860226721209431674185597030163529328659709852479331901325147239043918614640790429365282052722111329065083110212936321573489528176642052336958769656728644325736039283864467093624597464691823074319704676166641422426596911835158349055106673604354611608364258044573220119633647370573208804543958031748527120071710452255271832855239846500145524652420116752332920478359224696452543561778384852792050660961912504689466483237168825850106861130213083501687517680769872439695080526593707977631217090071517969145593717423245962369902453535434603814338751828137296890978432526684271565263113667577067442731336195490474437359955585033161100399401841228866553532705549705540831700617830466294821474301699902486736368608525438826265123794706982918597597462769459738703369323976397700566010917340699453083196652227741202139193222784111032758053581832028592877371943681161397142009718670570839347927266571219486188907017954210543523913953873054339529123082433502774212382308224127103476938577356204182446918459890249862598923308733081779745377528683394694445151051246846489876940089587568122935067127170615318271995278197639027699639356140777932539671612048195287553687264686769013031724049641507569075187727345310786552832961982746741666663968554564547838538472395101908293474355602408025114660710110779176369902231070167743836064504721124103036174289094907701068285359683505193935048697461769091978724159524261464279375806613034825981208151609474057876847526025349552170566189348049273499499590026601839954337899175579125258852716754913399537348917306867755807484245781725445163833875622543516856495736063189418312259083440879075338293123276591160178424473733686444158911401438452904603880899171674706012138750096669215720149563266482919141732959045841309669814541322686899887990068501838866776621384253763646310302502328834552972291331691700631145701276427354350175551279977637940679156072980566121068135324839670250141407916054364720104271944938332259976596413061102875082489509477378361111177407060698753474669019123579216682369310219697013984747290349391240109854248763746738506517618543326805953326329419510010619668379760746261051731690441057289743393818060843962980504700786776789200502254516962460534275835521544759198058948956497431486756694105782233819504436083454384423076029711132247738984434463973782931582925347224571804450718019603505361920992284430617089753398589609881100201154670915072486972894926356995061830202907322386604058276942278290294188282926080977061040674889164300190360264845246527415950061815583364935391930460553079378852168737134224860402179057284524094120952127034205662322340292798072324841409328216377518664137025248936479213733306407850719098000517412253705860402857293859138009658463662647010689372456402022828453701073545492361522843027101092278728549324682233058337280829967710307990186597654635170368454106717553535420344561349456224793131992705718081046478462847503656659535600416139890286963040883818692681382555039253640049424712564688549538167812227371628734485866660551459034166496005589657592370707579868413373084003612357150642192656257761236805627991164156100940862083545602218067445941435885918370256728520132211336923559463322545051683254261067502733193915503350101871252604409029534905310319344224429785821566700564739930597625982340161577344432120603775971593027637873897855455869565074310507021246691261432637157101202230917559059750620814823508841773557037227691001779962627373575668284752436144197042143411699712132469264827022760777640396184622693783809195189651135044370929720177639800273065098196665028416859293173399960971484424867943089040556418860782120768292314366828152432958189521326492787589173287444949295049973511115603988085938190449623098528310568746714018373940063931477273128035059715109284578885779970089962585037209517583641995917497257036459708652564765445349493891048323065310776238016156141538998708708135516222380673590368161522023111820248924995847776539904506359392720227138168020769031444196629905298225722150609177075503030712452455364725037797983233743519131489175496185888904856284267274353423171508727767090173067619392978155256334632576367505938173160454106398258521808320301933707855437079770794946929396501223835359434239052205941602588588307680117274695183669396920966167952156131350537888209849587169496289616947756110340122131082466179243677497359508821206966183146564106534986216656615382557968467815042902112566502319351058884889014963999820474685876691351439870978509386235711983801194820278641853778669997600982881435334287076193616807979329028447561482220563234866277871572072177108454987174426172333296437569160830189389795678827038202598650305603725043019843301399872132198046901107148817021112005244200603751376373963381708743201892374427249482623688107126083427831099425575434273128693128897084251465562824584976346655442797021392002452766461529919390455749594257720399317136550906749195351134086019425183448636357180161546225924796154176507514007126009225058487190314084491402495730298315363127730944983012082707224442586184644152481122741859172794400423158267788408371181008342502747029126978134454367346127397714580064731207568279780299668956143772879946117407184929179829302589960110704736064516019860322723552622623041935327566380922153353735479636935333689858525161137292084579905338397031740395736511847422277420019043976587728187037732979214799566034179689828012025136217670619302984836051215498580141583937573492063931774744830774356427890919768193533631051478447522799715915139172182950007437554457101602378786870767311609327166704135139852427610975657476118205782660368634708000233208691919430461588538533639493956725599701013827438906904262793897581072906207859086577123733835937798772879528414038523770384810512418402350378916045438195211028301654130807989091168094313511597928210932740209930838722946028450699734919379396464282783031367839474323398265063768690434062718789677580666793439430226140508348528499526156072532542368813999257168608385804153605449125749248611752757275497573394281068945368449138486095625905986001815904525262589524434788815401061654061804078898184768259839166584233860344999364102021340013290501516350975417540852492006331521100633632913325828724991595931433295112798675585287521691654352559437099517923809833532214288535209550625583109970157076874423554429992048703351395357196067902887209996422531613044597083346093165592540994661611763654060249049114607391257820267197361446110258243046452718732821728188187563040056215314952501740451812249819785536176681523057708727636329419886283365994720921583761333524083305965231136376308832395014478804302249363721557727654164207035874307084235037164085987154749961199354892009038129463444577468204423265792149056089525561319569322583846770336158905013293878873823630704639599358253872290786472326525471646840943976729211461678748355719979256482933971356160004520126425668314714279340990341902340539212221979547983681451305180348736128860262512609434102189266685864071148940709428835141427385467967289575178445678951641516569648525595698221885400307109609030971427562390353621124855777493949126476887429320609735300372773935978065444300730812261061987864523624505772704167546572811557252215869444167568120691842377218269048226607934159693006300895571410469444162015548378211917784074745600370223914866594368465300650808461862400937386849013196456126639337797551258799925119280866664970767329952679843500666676068623081326220039270033790962903220276492009044531517975377128832986722215839656668704493906613119561590029508361697316058867978143865228094401044225846545699503919103784102577400149048380776362090524775037536113595398166507664924379103574478836966719967644860814352402705263294941076878107351599414182547597489425529846822355890514420541929357493220638231450612073134243121542060125421570350715404891284162386664723250413335911117266581333174611983223167870935902401496925892643991647022291460930292237190143674858472466070825873474125427305366380381028661327379380952269461999185552310551463715673983438792822012275247115988698501511400012342240990891014895596237213333357436567825112278462731412478249846830399137522312508762503971912179578068350755231837747763642195089876911674372647593421816174583573060066523700087928430299159734295676769262264775060972797488410494363882372385001931872743410159215577440912454376931899305392191857166080089981502672046409526563375983282486761509353539062176595772918484596858316168687850358447574128850350788227321743862108805650984269823266551376966979498043469526236275334787262707001373252862562349586754512738120933888297884935822009031425010289614377659724639998190969288525672831794959449677503222920646156819594498857183982845485882727095963561074225251044351648657017926045124206680764147918782859666883606223961736254145268581932048259576571694834646440792285457487271229285813354756424390575546272155980441910285060764006599842234555740881163196944781153923729316956352047050825797748729748642080304305077251490365670219604844976365966714978814230510413046631731692186314689134242404186685038844613205249160226110934695260906189537843128058839581349299897622670620335673239246614652405084196573785893692157555641324610018665736451243802107604692083299310627700924119182729307602012048975493069322692459754824494310013126266807003674868600719652252607639705723192996788846972103729631018536763191567207616932382237331240504741827095822663287730345350123124509325414538683898150058740999307839995614264418298409078308746287080685975554856492179461072514028902420061634325980225616351510159730909501699275538510244989240031306044429916135480218053866838049787652447128511784385009829793548190795597117940020151644049931977124376943180875290615668638007083521132322439065668474116225524130661727851123116247239224644429571310720240880925736029680237160477796527703922082955522944541348611415377192567379628526986343735655541680479018267671474723038681761464310014442705369351601226321537268994743708001739526451706418483867819817755336770484566666441831155346358707071730549325836449929035909128171846277999588854625263547814535105320438066337907491926387536381319910556810174121124478183010609656428294377582246600585526986209244563937596111241474659580682453538350729705546544438436222299767272335055478350004146970732556718620624360908561117419525684663157639124236758454199666764395048387399960043452851864042429222520412036287198856252789557084824860568439204537259598495876425443857549608816490429655177332601758199741780404780909106342298784704015927157168155051345909731117719688232501264204761218591807486482032828844439682866579515426813855987588524022063234500137268119335795651394679865902238901023468892931641791776318071743247128867908222314272305888765000249442902396610130680854654656767566530354044006783936286082108792579733018828663308210079437055009007649614764859376224301109988782444491976489454195413683479290854676874041766921976648099651319021136866823236493875859459705641484468292300133284124749416979567800124053193644964442419903628070181237908102046668893271650379741613351329604659379702670263908828394808477330135588692510633239209167963651577936137249873656850445400076058443055027602316748986962763994121325155740622152967845438420321062842229156052668845573802692998670095262301432419928859729968501688708334622475873714026775605478775394322252547051758047616076575181267235247265946960627074973742799577200441027172300524368383270236865932664723543015684844730609450283553889630945463286744979359558487143414484154652697069035276651615024551401871449348511545666409432525361408569014605656001465722674468277464447731675870183221035533012611694222497509607972005561856313963443428394817067935856014238146702255127684270322601856311254917119541276046357652386443340198015178798752762610882872274432707613396935710821957455566144079488165999643950411412048533839178242068571466774100015050824583564510196126943051883471471643661324059243556340322858585543755220306717576241786770042921302825102271305066391747450352997208276324436697487724631500140793086710011121991842017117398205504688128869704958588976527710045462694714367213197188801691026080146060117031339518170491581071263865380430476908471262234183093414307333437576717895320598132097934686819327303800673948078394527490763903540072037786893185351334401213650544142637345899879998464432808547354538047475814774480566122738279387387366338696609927294604564673114353460459595194049089342313951097422413885536518777905372366287186205657010770748380626777480873391689739535651165256055346773344693255831004287530074015322631772565034162851391004449264343329615850159055623123494227281054639627686493553554595512034053541899870465369339945536602953079794090945278447183889909749072406651146263545372304430208754217562428790821711159424034739268208964082981890958333322628315512161467227943639735679143719425552543210090031615655373413942460489172748251178968450490592061717916113810957243905014444226462840352090646832235315422254726701196519752864389131320401644080239811430849725149620499538900248020541278841604162721812913036973165934770119512292282928298525189514088294418141657221813494122200674966255229502577459221144296165521422816314743116798125991338581864772722125698282230933810589474487689382682001628017660698121092928132210659506398621504229482003667304451382613644235616364169092259577572466230865038416868036754512141593448643593978808346836771056540319294395193875254507560796245713059919644027923735143629628395011601046236841107786484504434045911256076978236304257996316018324378790334754952727635351387631727593649440595893614483494016675565736328731268907663527878783360827888314325815766540230277201655604983726407220361916433009762785703711365143573615436143288325766225196844527258466370252113233037592446488022563425801540231871659473406626342335478178070011269160118306206710608834338711704309631450177972934753086184199444559170668717560672354819441708953261587037219516511082799398117245608522138093221949160958807522824172516105976450918353490241517518193555315834488659408109772394181728033186422180451458860852871548320428710842490771445478346997368089052216871397964361525977040080881735298639526408520615442746456205715061728335660076955658168991179861684939159670768742311133040044301608255880043940906932470874973938731939137304472897917946174361539186310847344894604989166042413660623091015205746377442068132453834638030036519984303730631219134424058247088625144440546078564483727794090456811584878281577183833092548683822297102543673243061331123366695110461624898004798166579740565664794823114222873420883463799416100592818197337644230689737296563010455073164649933223313159639792757707015458312867242125976594851619903217371404175047282552917140701730346167546450697506709891878439226644269856691111595444987680792027428505087763111868471446561612167267859427679389390022405371723502044101105712418335751114687825569136724365769544442818765196744076362397436076542215470404593011441898207474995397925106668398070587443598781527063292599129536078553729756068066102028020206817297369446479205129064330860083247598134065780664639448984477246012912081504591227484369776108371626538540910557407537572050423528184516073247354907578182735622152398291175588540004475969114207555587061821940344259971533647511991609870272171753896265288531422444445969096099198975843608040309323693594590698564402616493303940993872664302674038707119706870558440670940322641973148326527330376515021933209306825179394048477199632127442540491203417771213318445682025274293371374944347255528119728903697682387182312074757956042490388454522459538777103243620122665986928994260278471766705369873703650479654008615216348480554960214531418175203034049149589097699732971902838618916583922671026889633711799663481364934058359481320422940995320094466674138812206992886168155652885609234810624774459290717177541055358478743691894518819803407472120619149041545844243050858431197633640609035940777035346369926168068147384865912605371265776406878524932929023497622574989801862838238295165622632445430712978001349866326753097248174199484875426999445118165013338812441694150123458290804255995923014769445778572906907485048140586725571838729039321784404254633438962684587704886505490019808226127118686618354001456359704086691163074416769518058343950264132691768089885361221902972194383382802695990613267020897009602752009040346244524021187471771643910959269269667682451202011552811565212801225941132853825019362845104108790258335451488596309347826231121657997414722709254482951949703279279129867167053943392850468959348336413288771157809866386154050181651222423241179751827766921981640495754443788971595960661678558341845432155040440170052206031178848936732634607264357971173337621678441329787668913479554904357527847754045423805139875679124073171251975546672418342302677276665028249660786515008093280677949407062297406824773769527888427887237776381409346131645379458390502521979649565893896478022939075935756634012037961759720175395434363157597451972805018848871777870316577046941923281873148718240322909763051201468894641490550685843160932069810117797308811546930863573663135654421326036815949426559647043406726742668774324290330969514012855480623228863930126273706347775972091368114073954834845353078012076589984887554630182422121573448655449712446672393208288564392388572984898434235355285435790804975428337986516765069679504632141090464483820943621147982043610153862469866626310107027609855865044239437173224546919452775998175042441853151693681708836976489325158859167020900249201831207579679960396820195499388151545812619586117008681139753959591095359255812143565123003410618766291466584007887285042351326275600955786563023979321094421265982122621754272922454965948717014460184719391620531560287393929341572143605622395759943998903335138195210061069961208706409956801151843739437734665164106566265606700764073189342638394236558620281156839515873479029274801227673240884101462057669815167426578038668904171139971348515991591093996599376697207501404757414334759904009613461303745056551256352708979333902272209642172887190635737086278892348760293689786079944530819518426678438527023422805337242347776906312013021026964587903362282271491916936570052459828224228409826829088646222429547807015681212802855845455406534341203004420018403985914461601867016714357471799488648866190773439281910015888595407304220381667915898619998395889862634557179990273130738657136325882171733373034235740233492057615569560851594204081474442962019025330726540476216373277374575129859539460571875802987655361383032674535103036191770608554614768713805637776008048652080625202596632769860440962988631520177813130021508666493125212459860261658911581732485962285833216038577195518316670738359219425752589550305025232997032087279366325246968101948018053802131018773183876895047928517681178209237637363596258071582481864835210546657500739617234163764386729541231439679821852514923986601193972150770743069234553193658743535606841272802549828337150076970632308594095807471039045862029354680083178821651171129031758780974751740776417548926438488971194799123642708417224863205283798388367438510926459617965643715270600814349643065276127234338053555950555751984442557317211684587102754191723988734299183895339161662473569956002441517918805945178337136045697920394385332094201500174287367442304879549229066915220709515279595540748872459639021557499120914107009900070251301329100372467044959018036087945182495080631256276569026157452118396145826537650139871205082914825890840424149155165762243786498836817999166797372386491671450802075651760425264763575641111837681842876800165657481374180368921777801259449547939837054743796484515414627061318020494383868510218210148786897469217182285836656498842191540756413281059777685984859701794848627978726699250009051507756275760268941830529861655914902619553268006574036829657456312910282349343642911945661106387207724565414475690389431017632463094706361732963883830287915129583123706071220763988627111703445674866846699677375271695563234057645832393920960484842455730125592210541287408560392115347256634849293594692242471809540428803002110634689556494134512782827087253324662092925952468775552353153783916679301123884042200259428803242669408969798075597393645203572631753263202504787163437893847776411843459838794157167959621299523095454286841866662078174709614705453873646778968863207576377172084385226802890898856714051963698925570793130234627815378293835822878308484083138451301986326107364311618410572316956113935561712859852809106383342724415813753443392402315904390302685228975102351089197694534219081620475761276199894222557307255338255381672233308134473472048112431745157877979211538119417519042332681045326031134356142692655359412694952926576760445552070774553079423454376997770569385229785783238894525352944575279644349827126881389453139944601444379482943379475246278061855742329319342315301138084414970606630418594585888316366730865541504959261858385666547934026624210804046986394742473474558786742488221326231252871607171028742993532669633149374137706763820790744657775350015442074647804910102988718809488599643014864372432613461174442722073590498286687122443656879890734077698171286743286203473461818118067693153354855415167406011851469955682665339358005299143473245855544564229426724974105045091008843189975892574076898851452953231647909762830697579194033686912828922346319675427957992124965290120996619012578038128707106239100704169537819870507253137648267856028419229827307257252916663133073399732110390027896453956663089821145814139344946717533430154734776706392107271283678304799044981802737729619260409191995693712425173748550989051472273618832844756714759257972314190348047397432811330703149130797609706595089039471573092088410407991409146779088858539286709745357044519993755040220817949863855362788532219765820808527801674777563621516668115879230483603040006688309914558476710971813639902906515418179179002858024400655330920558097565274596121007813481048683240973075242368367522764018411129999592188383693509960879188630763136497452574222909767575437185269125302377538646904041545866034295641662110001658418138668065177057309669421556455915356611073456437178745309336175649098909517456666267236387307646568164810528696695145658275594343970625017313005958676235265560886161959325719434211561638915631712892484874323787581457174116617849767649353416924352301938682328909706644903401467536030854345791611929867763235069876873291871726351007665948049085630736848141422828926152283039218465685132640188805791876389212465855152545699610714275260171664845992962694837853593718016382807065001108700963278282446914530772563366516635032902367084633806382793965784448304995266295402383853113936861612949529106695526092813318887185583359259463873473972205244859277509594737653835433864074630687181536963128792085964255026168385232507470922047544754139898300666841408151726129647336319426838161105520909419002494086178541864595767221335936006450248049383885662586719822425377852547315905291256897704064927134600755877484221120937812165908781133278423580650754582672292636841442797590606901095283746039362076580252351368605280705061443484811695660485601606678810545879551722782071256223969971844331797408631086822586746097431094516400406715751733218010897606805367541931201179919191345629094376915962782368003904054012280901463040093623596132153166867848528771780042585856850050307693176117752577361400235695377580496938824755146051374012554532083397833022749100689477016972078693820978147741965752737351939298229705194947686746013972669030639113824924047727854179548217394104193136899901657999717519283113121016001716016173253486002886455530048997594059014477560101287169456194196942383551493108152108558891919791714374672455956462688466384115560314322127867570279806921310602514907156798013148190277196910559047835717371085697104530870063077569512658912249518653190599988970647692582234359657318066521909497719635603293957552335552510489356035714360739219370314228183230300827081103920567241125595093194631041205375265769829501420322393023199913609853714063368877692325336482104284225341437530944309457471281196007026889029923490133148435061703685739493164556013084624974925895297011206171475293671583089954463077880926090421391474925050379887237218819537171105373924605514784978452464926942609339882343990784184709140849772472476963323569811954962474448048182459573831418359115454542276856622372045970306864252618968862582426541799396464349174590546036459489692993756317266668915803822081018489757650885808938836501128847800123018963869132518396842862747870925735484885160397285316907824452643682378537939206326473257658436973690029667864491758406245453626013863308098751097373097143481384640217742536782074937377284026253580806264777121475560450401886206820295624118251216311952814535389793632988023096317001670662613159789258795592062089485735934784877525154952223173878750958644029311140528181747819402459262112447275303007599145001814097706226199412550977091510756603039916927097674015572252174654307641235594179333488653889430660228541445602910774680286607509034689678935195601061133707987996387050981121098870434896229053900773321000644592748976067522417183054179828416512763253988586595622134298426562756030313144387724366163680916363030780931735406396209641496619156082747517945803210782631001766356530193687986170873920627431024700910024979724181439485962106161257847925610544241833924612779939215592675818992032808959376663568575340508851825526764261881879970069020396157701199539635077429489281345368069834123991655448915505732369264196079993627390318785012431256987005210781066267529115571172267620555814746742091418367464840635715740648949136263865180328707650994937108238984748997080099255086544014387705236570341551120778122923701123239361104164602129312276185623039905659617596935671588003811967640024219495465049562936868922888808530150907577773456637972411351988235497534606349479014051113176726334022113187519730786437727409360834179702689103999445302800723891142452105092605190430402395024326374538354350477468093984446733882315434757681479031852687619984439453927704827157234247688271889205617011083469447884183164964472788075585726802528314722608988285248718057449737881952962136737590224724543324579287219001803513663644266662451247803204215332267372701588504734714042925836820767844685652939384901482692791371566292407390398765954229003703262443856403616059811146137983649761040961070568593233904832443380334528743864915537079278365510321997864658148534716382205339512032334466184034544962166618867837344782412657866586783196072014789205723657065831315864013864328983391045472264692917557791953113435430244018798556394374585375014827934336706534947519276285340936942178302125094459954701104981990844603306052666952943462857652195637622117280060659145072689378536099744944156605662864017563686603527734473331436423802205227090005645881296241966310167422059226106035455913892415945702791588384886182564286785303427508203427469564209415787893871098404943121351548303453913357371129114428382859558214266822898413196848613090384800638903826675325306256104653814974430352760588707690779845576039852820323273798875379632291879913172179558977524957925062082137068238001278023764956241139040479917365216641228622704973978040369981197347014520249182500994308598573018384768045056422864076815347293991692983594015791889075621092398791911130300368868755706942547176773578567690395388536797716003577784708655348005969363095985345725817660117748880542469509241664490097286215496763550839004363234243490958337212739445979618045164266089150352612647678742805974688027720376670886368125635937613923895707974957977908995974947984466808519954900578383971095169079539266921118527419470153256345061189408011756005941807756992020197234495797858660716931680262263314667171052138226319115741937362992953910525298743645491785018648684973683481854199910213019490268645513788455055166418466013741560868789488352255074165729273320101938889105756380559678666001997234760913868933508041910425458717601401691933454849435880586519931664397400877902464691548233776391229954385664467154246489473211114104535326401670100873669787509324707972480003232078911762242444295044737535390683768692403522167734002775862994557290729913055593493706998531525752088718019954692990021107055264589367936649784663703413913186518796837028961454020168139093356865704404266074020690874333563076908737188433038876521516533806984733679286258333855036774315053619263231516835740642552672263881283197125645273355265363281038336804059817516319089992235069664742841729065377786370574568139828984418908084155714395954577450046726621507326908387706721545131973432835714376678427922395892809591105006858150129278642296536330229529286118003775539919107666431076170059590184784983312215524651743133340431171972260403170627797456126243420753395784570794780537429164697029314827032817672771156942262701545995378159212899403361016035768233427503149118880450494247189414588183531529530679965478988628840704225308495299746539365539546291120689561150711784361152663375036675480543450198898835751959465407223370921029945742410292514851316198720595095265871492078472937118129300626629545814870609662167863644092187874738418500151915145919958139333991638798590773257987936878792888592682463659792310995165280279537499000750694075152518681475355643031415334182298487058250467735597910675664128169780884099762533360865535736001174591818470591100687526701784212919613588515941180763149871347501782259224301494819162507441896923084914147282896307496511689143079908877299977140232160793668411458930269202867631192668821837886346296913920555967546475143521418764279578296480234216663545432951407085504155049241392459856399379000624828294328029053496020626908878424780027094127650339623984672747788911190560354443584859032248432976795461719292611166854566203193727711691508096798276665504473425557479564127895497203596978091345598183600688058569947259824016163582222380626130739977459584381758283871190002890947715360850988671632876074111796971720033102704921356338635638114163359474109977839102353681719376446553377287553937833481292741168463309484945018195162581890295585756298870342827888287404245359434672175728944742586690389517796490613307657011968905527420966003399486483898134207010528314960624777105797853808405003224645909964606976807379766690749948666955135446662252300758585155831403940487516379553255976741622369816317854876032463540760138726338853698587338687299374530552936422339546230883641925858259362419592083165342996140711184914842829780723560514398631457936239799102033590580237546986306426719124080363750086201109894803088892096378554892147554615946490225280089706035560660250382778034525351060895265808351259403957604517575752466008585433049844668120759459795244411970299720530154157250404142975340850161156785337896920364834968791675588934465142517466255164511315562281398059011689531249842031090687909709201846143584017480989748693741029446673291749520417117539754458677210829897000419570863014828984167349153836771760419044968743857620699170075572465037963607817863566420228627120978365443933416517954684682281362650476456701887821975640602790224570364573280042821900075370612046633177089792323701422206036409852432882821537379791297414501961857575143762728975907406190927770167609375441431042744668162785932773779976376325371089334345435851118862989587115819274010166251121618953301144826210810782672846666984243145901423529734503191008522026820680564142359556106708747797501272470241874382956611053860725544882210972923320081855604060491440890841485534385821274878299098708127479792634861642960821293948308461111090602547952540137500238048609043816115177476643288550336504446379379149050699598171369943605732327610520348840120616149302417670204969138709964789010899920734471990849547358263886081938237399632024363336402810865890337891566724311418223373401980874479315814965721016770977046440871981552639516970197004031821719982846068846153978334134053621668893370709249271156885791759086291853558454244174454660326259385493040691226755192460919591042755323706641766490315774160309846823550096766033285261073331348751124795453801941021397288777166688298756702264172984517581048001863669977018084522575027925299739972095361359638686195960818691833547217466696142768877701131622097895933606855259901554113034214442890215435002764626354511533902747245894760363820353033785446694581419955690200464116153200124124494256438078034913850469892055644943190438814111532418323539483302094586202897242816618573740170596957713808043017286939640708244505213461892479887450564964412238504128600855957995346775562363342398666895817484940393929873664158211415577970284631474781187286568103613246702087397153209756261697947357228112599823569662216008031928266747795629600526821357805621160870806295528597264128127317657691555272097933194423548591727292989956852336586595287069118782923427322132778061318699140087783438552207726054379456676594956936485759230822956876080857731212365057191535152124783525445247333178948028884269623176214611365775015402944107461492390836659246169219481995270969873637402050944845186876961996911672660729233147568330137044345729813506286183059339656351619711505096611642665536166480360308893573090087376953321150817812668779925717547824738056844500840342284708471134775335792508096843233590330579495252460335815489788415752382976002413710355748623576077681209242777118331542203816319536112043587402149235503646379021144984020088814788248208904989302480499593605257709648588161668204429914630071890557948927327180188984121277753681066913306039150510411177764192009553059712909146449117448402787710399780763574352692574795762584338074292657505782053714361575660940281905693101525723775014830211972976803014534904103275409782660756102624624316887278043377305054847521259945655345755477268911615968765523095097663847825248726787316775317772930013414243218516735225791068966764045707445454027916513191587627478035568643649021403794642290340872413722877549916398172090314997789502985567933995727002401384312003012520532554974152985385783124407885897198639407389543754574208314476571280394470713689422307495267598377696628079592063423607590402080373314549552551450828429170069308817051580735178866397075040291845103395884522399304051104431072468539546174408122857456361907331177184232840199427458838844322738444985357854752767692060945769547364732940462223907802930352907479859764343081687135780676576633334646385866483352551446528742314275915635679879934888516064930555580673043280503930999117368483102877447478125661973036100696191526238724056047719834111615144728396145192098799896409068136552291325569703390177886149518478628784766432335018908406391461989126608939597929183208190743427910441059685730227563745995983660095406279240040642469578747831790872022164412748353477917391588390691283028661537295232412835561993006730780590249965736948639254177532153287306707626465985788687575145355554062152021883689789339481562123166164804604064785396107948861323855448437846515083080152295839285714368717243833353676434938623330212850089338941172653756620648953904875620493616987108298510693653471923008571668329092164694296901303128480385383727297065199687527898597887640148444086636163856984975783528571931743437659834322677539641469393680326403265173028272563357526601881134948014292787664762605015817332591568172907269751733184935940411203903123854436271018108906882459902314311588135926827463352184249207092647060363323986675943188814269413441759624512858569692449019240141695945821479897239129104591442063485234770197005773839618578018709237280917803921205951008765197369867338155215490196740884528998121355536364051984149808589445723236047105978621471090168215363965635005260413743110490868631409521079691543576715307997907659950331217458438431623710413498843304783001076559862401220819333684442216861760547535928893284592134963540154624853617452122640122358439678294706103403619427687853811477293308731977935992432345953617589250568549514109615164120691371438462598939575835917366665616615638518313051213273009343093591888477847807724023295663383669588647438990088426017214367398226807698842937695454850597975864655296215190937469549630470595341844505437805332933133026909122467692063580303214009327334381099704017006998531607625807792323936916705403106410755166759924197832623110504654338941444525239292321303219952137086636268175591752329256433634347758706111041506935897125387741323555291667278021810870603669393225661485149700824201998345953677276180055964670004393902514961218747182149540771369114057144465292195853908042393105147851081526152653366298752029891375285189102319234202195336476154786533889006340616771821819287968975660972131785251715798457841314399331212871150160943035595993474956684548276177009477417192719717966211672360917130442928089327270956008932539772767959929178029082891567617414703157283017974312931302143970911090713713585494092021685982625966377726915666822661470334022060789131692034113882975225425252383313124193441496830057366951283379038668260539926926200130902508956152211387111606926879565740657395117696612037670441940671794373404862149711858897136646497373172553026179032064462332651368828832137305217677641631089637152231268103754410998508144177646298737950444773749828195979612030421394858701982690150298417289113770414422339004612563449215651795177472514868174263908723858926066947920401029877487427848050160638690152019209624536460796193676400427578148720493573906208262165133345649687355474007511358562827138224663803319567383508923971869513463036209129406820215685215200503819955575406009333317169649659112908367199704566601164443001270624846407260420358157904117446652470709682210019539957839684132365828012894778714812300177225399698404434282501169776145907837000891130960902223158995632630770210752879228387944564884125003493631604028686620395779520849630635734452939775612397254957107355840116650211344108088106504885139291815985351100207200154812764665501192531257317369132629792422453567639609794293538207293860995297145749361498932705963243994751920575438812701992058595401618449223925501703509208261761229794788456372472305221730391602784067398945614168604176076363532612155402017661040117959705852979285234159588071942932178848441193505303771155857970713627694177170706661931519073466863615238080121605202465832586341654036096394636358270432424090840755527642799667576296778370104874596617303671322352928484449431769235337760998791900948009060055926481796484992801542377055365668211171205482667572418213911624501099209423651125900924612592323666333413518024046580477837005446058125651941284688049693496493850614625023622159335621605809147191829176743420250229559012318596593549243641469432200997723739218380152976335961378788917349551790745717300861823013345546261631749827842251985668075298744743888143805565875316742860794373229089540916205864015473040334155984448014610066874433603840394122103418373497873944874263162970644741511793119709310430052247640418086640550322536487100337722983080392758520084618936233065728437435701034491154974727198302024083456390990110024571283768066847960141389854941719144803571613689631546393314470629548403333077906946846016153268340192410140307589685304797911344691447871309299502925684766789091990857977140700334533517149926299405698028339291244379238629460514722607812139187753971610069730717719443319847252944883854396388355933365386606525171899686680525460890446405100020419937564402911647104481855612666820635738725713874840779280019925540795452924288330889259214560392864592203612857007802763386884986682123944015774209123988483510940967398421647549117830247131646115138720143045325536756925395757688134020645380532692288586592276425479896829808742829446235834776019769033487448378752350311232537415062031662261625316603651236137519497965316862383357508220055668704314090637919618337882727566777487483472435724358045477477791370898159533879117039203740415194614784346213053000245726213360674782157706974008060194383725605551547418197809965904561238636925968391504797107286586559524866041883941755360845402829210708213263798451806745732393509295090860067732619392288915788518415290163832575714120325169663004518447906387367413142279808537103430889558941643065242144327378960005989448746761069612299170485012551593786291341903833195036574241792632224910028277173920424644385970655651562722455463991426742060820863909013447213638512328982412675242801643415174961747630887961584199318456610951378205968762569457917437700470197826775927085559980027165832208554672589690289521006363984623655109204432997741471898128748127085102313225464979546742610672337394399390059990391295834778566762674132930674497554981678604056548785976138511116935613907936883945859547418645833207529257806751276720955268278439117740296880316178445138616294502781992144658245734684039154794142547423080609894723371319187912524803081405248400782809686596390382040639321231080537027615675583325980810623779558558352149432505537352073806798163985853615491124004444943853901288749042010568565819448240883647508420645016857337989924582204006364687248005537896155768440578459008622325338006223868701562634720390145583427167494772482459401201446911986580054780674565526504802313785075086023012184007562618477582208363405673834400786364243355518940835485933152158498921074029023302695626772859023288991443179382946446069675686574890743824767918373255769211789470336549387807991066551811192827525183550745529142766467772283473429959304017493841247854520071804019420393883671298803746540565586937414925311578753842802252461261635401076488894966144521661121212058724744143664193098737249588062424963918176825133200249973525347140471911363296032506989977914426963609357433102338975997027664910115594586437439743314899602181837852796725367788878741878172931284267141440236174440013457853455342307551165498200297222696898693004263809690579344565995994446846946370698965710128875063380164760929175214737235471219475029568031006356003592355403545034704774788673394913094031764290828789605377813753891403071704447402948198114203259503900676418117842349778512563165110663390901605129150467588939550191213263673539740795125961612790337582321784069771080672574818641438685735899549746841322496767679930920333190690060692498441309590457399875104816150292843923169635106988895953355335814282441338616212560262738692934773953901282045101328630228521767454049670916437549069626487131742525884289263379779800464471372613424901704675870064414969274179032008936449497229388546886362793437556825772738728028046494531614377170744859822988823784026231410879517928497164776409707172521751313746327721860198285271022075121935763517945988678233020952419774831266733544714957405882678887683287413247724971995831165881241696373111088364080371003490902963288137783504971528709201241240179300736243394879578977058410052536370464198315494768482820976144038059748480685601619845028306925828270568514463991445960010790431997161010901924988210102653775608413237284146774914335874801194520965614958553522494894531224859894466977955433890169990533119280281818720399913115691203894909611287657260830501359972591309955202191457433419394091625624464012562496121110444493003552723852483360272021519483033926421436066718985847090050161319038854593373758476801294351380581648348160417251382324690100235252016014211623573488266566754412705422753266612829690667598691277948453175322035268623643279245098390996514613553939087575874272101779759479964288608230434248436426057236819736910742119758920737353821206417896481454032719878402422134186985000179973995265658264980737743891613131911742533165995664755704454318566833070890225313666110489502729291749758559074012160233860633680942123819024908682091358967874518696968434547846650636761295371004650612337710145938240305432566756428077009297091808608520931584452439191132162776196049472363788554660409341437067485228495848434407634405620714990982106396748316766852226419960686951440038440555527494268724480635031567445853112769282850770101450328541426352304346413948212795621363960179185227553154533874056851839441751444332592635151097013093692428329687590991206400130016465241685993777551769856465007395755775678556970380241218595801138480856957072816124446966506831655500300005365754862363215153015298348605627651045354419441958027347618137073534711334000622801475242493067301392970569370026859604930579188492653883835130999212426523584421917339792263921041451703521916872499317605210055372270093092054159306639875475917759302727632112357862071066654240572957511842573322738802089801474676546362807576942831660271444413396698816749669066037672933540725064450003271761254508093302476953897148628230635284284042953878171414739856939861038169328912445026479119890923376567941506397681145044268525728892892293653379627336289706729601213169094168332888499267551331658233816914771317775926200280286557480055896577795157685007259210979987120947829229525138481686566306000415074064443538951554004365206042556063492358894985915461178528534218437550306002722887579911428347906568268642831205364236644440859220981412729577511157671802298541122018942377064829782255880788771996534279559324442142322643672478279146679348942263375283462133076150416250988970213717132751335078868345442359003843699065330506520780489301623078894849436138942249172053743818524995981942511927285068391308230518657471435923131686647088464283500760242265670098350313508543387005064008552654427142666086177891004850397587517940166031496630117001254454278338111531085033051228969590662668699206327094677241432182210596344869846576339153648918917173841517276770416392059447382630235486039907655861330555768572113662093093827777131756515145585058785205766892381998872345847357629356478992627161810185050029102262227782785957778142920303762044431310957395967259506490708214025329896541998121189268481906592212203739024525707381352962631268702869482243904519231107323481887163215240916368238839263149061315020255870335207037577557377497822426269310351467481914887303078889463631190283954710530792043467285129430782996507349659218640116486509540218921649460344338446739703228137160082400573586123085672191517106924744959050830811152559676872089112216413530528941100846355422151723785113343935003726115953143488385431781963462295109324810204181014755074481634748196727412006676501203141377941009156630137507718808587611195970016808079438766556573676754627001930594543575826482132895777150994591669384702944104521985572590268189860924366603159511741413694752716821728809875205190175166592303945519961326331254231362354481438078835466336603725564145085196747845483593553419564866168647279672535794840188136925608962987308956954251111607441962600207294530246750766237614061452927956290271822428358012308276780973654510573916696398551215706353486060556420117011453644762613413524774246638880099749605410519902308680438466355801509426619118054308459627550186521619874837527943346639174458043510798660086798006807085381715944197986416910829880493671691449467588016768795364037374869518462734946129808047784265415553755977269935005452696306635944904872277582205558190580494744258330353906326499344953031167527123297134880542327864213096376856914329104309841548757941912524237293292893670329058339753969889817048101781670051261684252673799954655458336506135746975224930680427623668950924986557295230503744445585664691322737921446838130247907440915231595932850288991847562557616929750269583526449808491642259018388941960222566207974357565675991798737809693478251606824796899928995476765435085403337125391876938739252643107836648580925283139676719659734214320593942865615681151542823980019731941737788323127922202141514889961273311873993448871822136146722659581113762881807057566222484384032361914046080085774892202375707480134627333911797541466966138907110465084820217351112163927778810826363209691153609150747262990408919674425762788419338324500133523836470658576377390994890569555809432850636221746695546488338541202973021882964168184065390436508246555018424008430160109443265658074757421401196608203342380812493338423235923267869172603080446431817919207280750135910171555732811696606977668673664876298404043952848448464753702725125530733437412521698524915632840513891561519494649891784880835129686354183603655995579555138228181679212622189226170388760525396689905928280507450441605010172715669028195583124274966247362131109404244895981511170033903198983182901148850433527788902729388424101850930448620009436908065372769239766968647999609328820320479714809006713367532633791128564049246643938811198736422559710948683360742408507620964121802342982754252157930307367108878977259319408857946979951505026562799103122333036275169082008846014908829844424343506828077745582162663770449093166941045227838917460580000844893798835790860232747496455468485501498639309742618507696792276576908244993136913190510466833880480641845275125553309181780617327947254160272956027912576605128116522829665761494389673124566656302415911666632244214529283738231691095374162571186781582178188271876859002522451943548108149355855229522256247718392509646724585532402449873001199922999614459042563141624174533862595500826150121031844713705553572713512494923499538007474570940920187704098851611224729501375435045449567575196155758272158057355418068878603402459600406952717072765099851788338036822522254844980868218023907113261980852418460857973807347581519395468167649167499174115301277272204902349587755082970996568542441527258250765752145162698511749090525767384272814575265021637392552996140475174561694073898303479649682477598592033001227280683034635083380006861674284114958799364934143339027692427518434434630850145413388869989205606429733721873148874397768402646074408325822456461609099308560547197254975968334974700694961451838978731775487861253669419990379110889975761313703847445456922529552203465065286451285205446862148274722703722976997822823766368592809718188070136475452925654466805167482112873005582731914567071120128628846386279921811919385955001869361260218853101305355535442363917671402804901920922770844508886582920559804042849905329683128723478374718772576518714064524890809953643498636615101657381223484320781687548383151184077499078187621441064883347039339809459574266141145237882270552203510790551852356631593488795926053134672611064346710808102147757472541101287224433183839745423552533371119515681116706439056402153822329251246866624253733294893869252707516361240750355297592209697724897213151938145216548251589356409519748758606349531627506941158049654128835305484605015845567476102114162969858193049789384504989919278457614423859354043837119284142553059862114917834689566953370244456840047567033582634138929391389861456620579372964664497234683778779981422769895487437448436382933224113107658138000153819407685748738848108486460422623519884929775829248994946482644888633419223430338824153003624727856196276864625211217610596783069432054448961469173358411477628543271387951734319177599482804441962283341027418288142660330414186009726757794562629114599488270469984452609020903414483333025482881665626259318393225374578123551334878617055100731249075168198122636578077039772409456164463456007226706481504431517249496832790315056203706754295598307109922896500977496375117587601720971686169127654236121031974176377017934678594683960353970919842455906480612203563989404442078095025723606082736524297898262320618550741889054492168026688185399950909657839981240675151023448757718085112225338867562955956538404960997631638358989199732275061937498090938115617926388214134639009470267393510346582888342970600965232852156053961937224110127247669620983017520149012209304029199941659945211825201354524431314695886793882573333836522153805050386424723174669452442685348997445353615736779513559865900605529500484434328917654938839361944284266328142831286216616965412332110769424026114552898567799429995019883593528119042309553803939392129105845033878625111553380145171958402570689423784201960318188441899986778369565016486977607083012244835691708995259109131770822025561977066803611526006921120178848130288719320310490885941765861422501903172528019364666696267704560441228555026873660381329867583451025202654271374866794641433291266656394324313696900923757404534605219637754993259786311190550694852091343114351219053190283032638465437660400924276876222331298179163627111386131740333877808959906387155268123080105476347356798506376044113864994187463853430415030236237873758633748096161594054265698675852382407849149963161738902175119144167230477368272473152461372991776392101267500796870932769065688509396219103882585162860984818928430058838426598759698344155805685650036065454907725012758620695706754756857541634933210190614314455407563288058333622938293169993500640279475088452179545952136431885005422467655735561761865588858008798548523356223327087190606125223735808757245127753908172276481628666823772454118622810791051901052154265674509650466786628188142758064948814474185321811321977126602927555187654035902043320415117780773825856403069685859813793845233980686181000775672202100607768986920129807862590303138735545495031840179629701986488168918085164221274794673706586622410467135466798670582202503790085419309802613952235748963355140555940205751391391343916197179372005105815317461822400860703083171950466433333856453039690335533468914238328003459204008348390293391027231911073446688866461410110325802184639012382232703857924772139693368515380891805908927415492381070884728208561338481096741958975714519744641146687048538767512213100858054373728985389467197958361193065268809234587421031121383779373230428889596581185019930981591968987670235771877007487809718218085444974262057430045561876978252303366276668896555517813964827384404019111481320159254092751556073996673565865733791879431406680491585556906668269269581443113597158362898494182132792124820505730472828179205153654464334331288415198793987565945064690144976529275446182016650707576951888866859806721719205050954947366389448106212572221512835846399565140952243168457200664299746486311962891915502178551014168919630036850336354099145512739430407178446411395338884931896597353228836682838907473394154066231623983275003739080607535241629797538145654483399053328585660115232634488458039180592678459290621523428656329520631988873460942919232185312547594509248451132288841665900267850512752890361180788304708180627086787349903999465084394804432385505636591477381324946203737575238202171493715312812206840689573530428054137308910391265934107628713044226200062926592793228975466968120886150500388993617147331863781038365895003975591278384643217348381246260270600886393959502633126182251930829972061698053015946078533548220333721604100214307480149979314107192439190586173682499753471145134184766719618191278088371933049274918585788607227056436685159190044115104955616882779207767507112918119891454628342507345611060354088187540571064813207421557143987379912515286400138934251122411253620443653569538296691368434931918845494311765450413560007109589886470611791785524344874348674707336730819468539590232138254942426651051342386695317058769444332105616360330651687717884266880517556976953536007647036447547534822858686974268157505676126370068827288150393038325623352136257171347893715777496397220639713318620086466095364335201333412634358791557738143916419235501368233776293540115396134677114048517626251816596890564835676051277048718749479182118232427464661926281102722604650727890181679401647821048980240667164110600544207724106102974335535658359434528537607890564858390618844007257739591731188659125579158058406567758889834411416340378136412865331504595779311433109452956399169394203235903131461309274254035782154434135412377615453373099180243365025131531393538176528079064654916050786174261596123554112541848559551742228153009711952533625075790165966659117785892075772161959466283620804767825661685723671651413926583410147836309286992888719475693224697252998713330271545984928865829688308987474256611069696408677770337471452557703338032228615910337410153958647024770260755688522614952932264697461024447421120578769500488327133723114541410584397582214273125393583824620000849530094713330092088469170409630124116183208264977325872542853867817294607251577403951808955084937917876421887386011067746548556997588213505749435199256231073008603589718970096049655016230563282085899668997160308858864555750567184345897822051043619299556847679458833897007175057348087459980088514861758007852879851464011436076354547746167862986547234083478336263459413257944580415694259574571724915736154742579656625103340802334764374939750974488005391944058571292347067035127754046516491644699770742808154205550499798773373451191487024095215917049839880585032643652931079948135985233432524563224337488669080516338552486629547991570881498721096414809320217425813755909908127664456059575342271543800366192948834289254138532726010664315626703519631552797875288778955166998997630675013672083421195211729875200034192247426768734342168554004885016198022179403610755858305350189818897189231977030196094332361686227622426403923304983508451750444079277443742518960706503577273266551594634760304802379349561639221488748489002161462662656047262665185121210440521076640668112168129031722877372499144437367207773189927017804537050453654191977749718551599358585895351680379079400386386290369455463189157457238216114883702256757719910167012475175153729405314587667690881762322083318329328113105515099146006500415742369898980197955835387812542412445933421734391521245759437092921043232979027754698288431910212015228439932893868529271448374049665279848027452913993841419398242737324221117453057215628825333014430926591493452528995473154300350106635686801454058401304734696454540201738836534672726764342590569066733096528489792005053192513618082632547071871207031558832862786102256115950893237684132691032652596507081703413042533767451262325799140071650243955116707278099799288284319523722232135366713033542399933246589325958288326319363650683751812502922941966078169647834131466674361440793004103645988180964529078501634931406159357493106695126134270496782465402508206268748764953698723745428470356440370672688528581178541153420102728478995605356044856013101465021370913234059134533509055230496355110683159548150513190237934795562025550623793276930176272060208393183635617234598684980513845380687393089367492211732935243939015971766970989187616013134998582640663800462461753588501845793650833001868671392527481728623490782714316818910666555279523871867544021596357431098064616792245836388374529807647468035950070225016341430727869394073396646366867463198433465258613164616393246314225913705812988047665550563804432287701354475881489502022999235112333084386806527506279013295405574625453456923307396536799346259865123639478070226908517927041133104354429313917411970315993252741627637719401498722929849564885808399171346861968123037037782116651146341490340680826951892560155881081157347077100534878327846156609277604574522833457033930441123672294955276364026249569018106876885352429148182791007601963058921999794049747360053391137395993488349534428788661827095235384593995380258124917300653503179200774639668271735028402155194372754109459994097466342911076224440062879060017725377195909508548872899950822109844377244508037985412078827966251418025070951829862346458722913905181664242645471763563491353414601879951532744959109093764027165271343889196338402909369046744092965098582432495123460748322802533853170465908730030099194620866446186277782666424104259988574175964053568940366358778547809371968964072114611005404690683900410876989426581764483780443961959146228842235727732219084129342166289398966518562727733154286514261864196843388273764555953059254425402900837377827103776938725685845669145590322319399657319354405422997349864769838527179908050052155060864951163344832923519248706736295411091638769440288443733334482149205036313652840557569990269565710500918911824644361562003766792078571459416177879989631625757598854056614193342724543791917672664109303161303551472274963270649379781122813717420937381086269554739338774917322826988607040398953274846132352354433085753903751129220023220700068853239294685470599591859584060964671699185311448088088019962659623975919013906405430467166814926000169848675378426720892611454822112689132995318935871454473200887263795052927700631697612658406848772701238603672548419972255512450604882352726130214795898954003756518312582006691961331320000246837234221832321682037875856228201222796217117429046358682682223030911287816207795348696020869914922170311125039554583450240933786620763357626305622516230412188365726408264886886837734484988367007816285777061995472410132071816036632042701734740679434882884031311511875885810414811518286994137262409417817696740224222787909317794908926790760277780714351542589550150062493307397108255527032015688601539518898639865973409505259351282101989133957020047103010549854980230215440511509651158693725998693174413308551666934132873248881873724740888989742132977824235811053253158693589924152103882165060021264399205742264591740750099257589673814874345393120268528096998216698700933204635870167749090212273205504220715628908044517947119515476165532908057230363395657048700117110769026513992349107938888446418121075106429641277829709235941249399424406216443887557774026141166239535562151200583100013586209686377333016046602939131508966625123404157726205557002760671491013308537440556944388342376401500696394685707655855776770779590239587049071810915664930311432382487289906502328827759295584086996385484037346869413508578509919599730285985069078623988159148074460722855475427238634502797041761821938229189697846005196169067449419437211280029461437966199734703464235503521328882405858932322491833196630309037522852078198171647906787190723471582015774999287750923901789288808463227911204122512975556203830186449876046574995339863725659426934301978303957501995024015954074956657828619205632649284936572253185184152756063542710280549437150634430490000042407471028191788350597918399243651490374874269222913391350994102716382859270837127939719880478936638510378163669329732009736765607525361111865434708606249912868769798394973524429383257805408741379595579373272012661151099127024916205009019865543985471710411533100092038463428975731151665758385788001845534810220868250306060285257493412014268152984091377468634717518721175360846677302093080227120158217263544353793358819658313334030746600319014116983210488347607627063209549994689880325435177221723679971358368183433153717144982820250043317644069102029630706675998971833772338659376030002947963981654169414283109850225758480630060394730868853891224376804686281323928523159380393068929922127813841532659145980957067488955579638871059218799139308738510190579188536736863619635852287396928424771067957818183177416513732169555277770484642076598118548280537425289778489073153341649195342141979010433461546637568343171115653578768295400623617194102835772058802672786392713829902656891057906345855181470768796685039455204534524320133683754529912577179351290316510082946382618756785739903246066073285403769368342396684357187020598017452677977095069830727782501453217835157059300038327739984960671880239255409729787542141527156426084806677996060013029424992260362596569462944765147338663238446594319781175627761342238844047044177155477122502564253215082393784836283190295657187152740225644201090358753523139234263608623595222669992061798182875746472266246801879953815660061953980744838282066048547514113837060189675003337839057916237982387106527153844764557484064886594404289746709533655908050783239706989103835235442071576983200391863657615568303084444609920932702783709562307095856224879094093165762849913145531453792805395167955014118236919995472366014247422708843299931608404493520833313170517728709246103112974060041552498588456463095335351399129178396481087511281127225098832177880035667555300677596309527406608199883323946678316762141021715504071435534960915913282250305564675667966852684796226521484149462379011858802932231226060456301923935275720574315711576331299037235249706897948653741063069646432328519292659322486968949933987815619999121844834656931706423768800213443775992810752537040660912569328590619738965892099144778990472523639941308879865509305757410347751650699237880835782727936430964950092898751592561794207022270431112164368012382981339131854856999543519661357184008597675584143557543188023054534334664084818346177815652271433059190037720677456725554421661414667365250452709621629506961719995705651416919462526676915879247574341878819865421260686106674087194105062787901202603403133849250755490619172929665493269895236593010299516535350903885101000497910267973187502003945490969715613445685749813545646739441223540348823615837595356822157057482167014059389948153251108204388060427960825765060755662470820996684682263877614582547170652916305912393089030346187352738125354120493834416454436758231437253638511905914997415470310163624773599652018597028965922165552705177679449962950071093511030295299566718601192439784102899414008983336160088344570557889844529218691588779968402458033024596900767791386260880764490448363454206845014160651863555623913313633624719490892729575607011232248838870480453238145446442361921142148304001271189337535929785329182264374875583093311975101805793660351758496221787075406287567225515297387489579613655354180793281791627732296713150908688474338372918164116826116429559099341984957143352486703612564120576134548405573135728569822769820259225024254734905633429304313819449468505152647408535502120371030902809620532940753444186389237048280243740581286794162201410883057114210233993652450704053752685435187277496699988796378251173521993764241398935755777395190079022668427774653069895334778263936914053290276626461328855529587220795150748426503972607399893086084644567467067184894029173607783327192235472708883062839409952219737080216123381900332544964228602663984457315823973633389066341742118553790547358164823889900712089420394357155251963340942093538228310723931008657137409757317031590234835314624765676440646311586483540257811309752358167001823610481242133650954685188563377304710382393421672899319841103497826399423694496302827675428228175960955311276144657579189051415559673117725344438002204808064771999100601802933438856659844320923293663939414568040455735840679800527168325801724264840854433921060260242841566729017992740179437666396066242615748924318895242410977280234450248882644905978272069247578592783159838730286194942013137294602960698601140201523335631228494201801455328256548774211010791299800536532758930280798700852398475234803609963233400481997584902639584333459830910332324805102403577376596506045643706183942492029731969495176908370509764086693029846982352192667136071293859686995250261562965591854371373847307002249747339076676552497776027205812793188820599848772825775628929887026571592366220708935863077306304753220500939513653052768182875586289955147999787411108824829258595792665745664382393410958666222767055608207854475640812250874306476750499882571293749017741146834056743513497193866743791312737110932593493440048161969691338195682410533276667333990463073043316390249349433958895055605847733647771029378158231629954825231572999321951157253761235516988531701644710721421931014420423603053205817838219782004571109678297833041842640854410301729177015912644325064377904652420682272622057605972843337405759931456375042402979367450080490355223361861777204859835566506506405015755265503972215299824952588579412923041045414781991368586685740106630914142861910378748569836260879635821362657679337081728072466387999700521004134068473498062750250511182286023253251611811451628016419166955798126755090300184487335039529765014233424042196340019107034334847944798261716237742001596729659952051283493517246478996655688834169165725366188118079119558765358751051327986684608014926475435221486765446184302986970389687244481749141841541133265989980778538438958725760865438394414342050396391115653275643808423600671927878080072980857241121401663962700081350175531266657932973930169478353587897465358835669794584103624064569083314756054717060098706020609340244511431273998883850091048733507802199609730866729011623566796562000171523085404583059115038160827994894555929976243652091431214916511026415258722401978556451103444024372186143919571017623338567468701274937637232778881393610193220787321829221256581753438433413726786379450197006325486473470906675713464092477613592300433055147770981359142932065157337932932417628370737735205916849268026108157428954509871380422894308423602197065879046221846390578546768948974506132603775101664816615140640344126349019547334325571853354725763352983500910805739049853655018365741500991273769228135893403847341868288582776739196825980600605995851357635646375752728853133881194409498752662839768027303319343945396596989762002890051294336998689741759178628085543040084489644292240566340985340463209113502873335307216471833547578235541350878328593324888266996795119578474271787975042327233771717507669040859678174174983646145347443276119154729942055266399134567644204629055773745247449057029767772902885934170464164609584985659827816550741548706541320768105314848869273763403250174443112849383441470498572929378041043999985713604086503990602702044979712346749550437368930141205460236475211662539163331407666790842925937495708307073082130518056445945150062565651186260418606301456991779816151793306554791735520130896837547404363379217021757533311937089798355930853693679901620670803236365349577701452800203266809264626469076699624526373245123166086762244626313611927680132716242645968719640399087946663781571279844707138164905256751718926805071674441871167337753122066355790353609192158527662147174546483527172176882613983939005023739807951138167688355514928699849697022460176183091593476420495398473205579617630897557583733521517491141062431523577970807213917654606775486109921764400392828304908317207388288572326007631936208795516998911263221611383473572173527988451444321745342712396167242010702291904228534861883892254542598117263933336954104753727781264050567602076299577577134222977767346875927110456159451301402207668052864047212890572038941652997019566427639891420193897131136929658396626604239751317279777637536690666686423041449649182505476989516149276229407627177493754668789325997198983015550006817439552208092461076584841211510115406932899355867975254578743265194645017548408263813038516589683808021751737765207210460215607978792759086546568900384823161720593871539023623513768419443798159641530027197925008937525625975275456715343549509956623610545378769566171753412881737190821824436230854340274572903450901062298948890432519741773274696601627204536054252753435547505211142140414494222535989752829238720680506186120047246600487486331067783498390160496744728724160409649930051007953472289783105063758480143613912268925736767721185576188873497831560064160360851854327953105667792604837994746544145079903053104484943715542139340153267658400723999035632072303128652433244361984017889970418058177702642117945389409144481875611097279122575676303754984448415720372863217493425160445869238560854262472216923752650236853639604254865152728942521298807927800525717683343822798436681351245864125508093581165246088861035017171333412598904111574037716825479303123654863672242435485492676470211754437871410088017980506978781620633251819443430590081766798913901572229890155280296811367992425826233595159724985458812790579992231490299892451879957723798896235549890993395129722599967518168130396159097118712337262211205047336211993845280135654000625481798047639705053588100946809258849644139871773886715644874456569753648010629201739671095504779241030298505649264693783498946235163050343897681876175028631991262650517622956703070852999288432773441898785886114289916802797888573592188368236469022387207865701728508247629908263734777698986444080064265525869856026252267196272431833435750023924606291934764777559995064132148904862202242998134005571477087402227823791532988376952025012574776896783777011657081396507468964608802724462427496688889815608756333876834901593788457061693580022878374134301704764201688839795265796697803974913260798679529880358521716660001933280062936681682925293960378047761437554877019316826503351702732495991774998698975931553620374815698516532959054736466635894589399934195339734239821285511396188857571407709057089538419807291608938111186432631415635960335147988694300201459181620019659177659035214827651158502039203856176675342952127130146568827862162926729085067751740493040097476511494554150332093623638819958838276948598448059290289441158021574145929606609346751971010395883771714203179174831902606947481640556312159764057278779172978344363797677078223600930377613012088868540819820829522167017286468997238973241448364824305749873936548630881746875104918941798826711117683763976618769062537463429904617192021638996242034868126680388831825940172408578540634676416442971596169352479102282061026849326649323934922858095342362076759390911066486312639997864604659987735618111496063961357999386513492004956829513961653090839538491577420609532318198990977683196479909671844695752776682931004607418992072670344843065573516394345645769890949547042953864071342150913839845793878719371213995237353948759142760602365328112285433472133840644983770385692012865988999287942978010640634256169999696393269176385443557826093931672461626064897809898150103185150958944532669166188889743880080854355846036035773195980069867758181447042982551459579164205971697346616571863841524506468212497357769776317256803332645288442350747343448343113389922337738777782894215980492816211131410875810868823446591847873556927314371092714808750095146560452003030788126020490850191885597197999210599825020455049950971865340911997349789083960723349255367261439995968025401941474523180995938956383451362648988704190821257034212008540766894298411877494205102629379516668850261603101425866831890603087397067091679781974526870177186928560701783310268572599240268187807981171837638824729740274984275857967538874663632505756044312182623394902633629806155478177140094101184855896711592682769302390177003011824914939135445929120986129540713929679058719720115617289825103072035647876957718691004334700516636507856620491067026095664023902112654893688067981424946428898560441105375713378398621705129177137575102939425745788188019884214248285118337063370335673322939661601544936547809515907057189708092304670664456541614553425387658521123854510143976920975997066711160422405223356849366120654203025033321917100615966058892525051671357533705849157144084601709833993620219406306936924279218839756089883875934642318874851056678905056079770426511419341031834505895493092753632585528064855222432963624974583420052479173102235682271293249950222190449197355007956050725205002709717050937990965784114001206779336590012237019429303065700689363111429015381967948637396506862260055926659945102946396076477096953916693725266879500931199498352625718182666513141349182900849710209867584158267749887206981309795760830946853003256706066776091975757883722401108182320537684307283333980102313183382511344496663770225768046860950080439915515239191617720234018375772815801199924830494108019633372800238034761963037397785032897218104029897084302208029057070567381843597171751897215703508264367229938530323362853926190898537998114659046251467362482721524232096908959283058492925290710843806065596871849026108194763113116104133992981063910637630137894294223966869077257249432439800538331734466661196563990279194929697252685384850020499621924563175635152790999806877031673302024069575328478511821038931614188247642311377002121412726897744833907110966098530602691984850028290780317595541910583744601661344758358754735470274044438306777854807861620296491472960066410293104420868552456909882112151551173767937126443094242661126818159560015473951292824469750849413236931397812592946774450240181062018748971965824115321769734937540972294365719002302546330063007874820868595486841973780430041361433721367357498939282656646891305855661109167055842746688004846867680258774211089726734475961909333404460386496104110332560574039600347926030071853979652840882902920324072213855431784673004770263410104383364080114213545470569098353608125348107356993104074253217894165190759153169633206307112169736342962882714050203410305791176231692225986699103436380039819170428257551048553902290164224280686309286618735942086832644473828360574266158726504456956360222779040636853662838730091292436503440276720916311809698746906331892327236033049553543654448745073845556846436472530385485906184453646298878904862597660737489481480238663342225498614148666438273833636157570700356570273349934895608507586909005220021394334587673780891223342523179938982238665121588015295014441711880202104152926761385921560823079985672198280418372707274217855274863100696302703702144944093149927252643480227188231959833696796355338891224959005812652997772471268618208047759623092442450471964724053794573846304881933404300339143131296219426960583462995065023142019031858119184440344886406629805161540810782858290068315570091615842941772245967943218072110501034324669955087982223133162949075977571882984475156229189657153423332967945044495445601855160357065823577893958017894309186677133156095019008369476468492825211798473720833400702804192446343705200525882101066194136873564899051849576877345389718060643497681405283448067314942952081026251152592718890838862525693373576054875749810198704415307588920762451919834971436719863202251883066300312416580991667606020637886384729910115563054405839643814061999512002689304168451590831264184844517206485496593148453314268069362632564632446021738370477065083551832418192110139273052521353839887405262361422202582543929816454943125081120183498779179398428369490291531621121932865978395297825883153422152201105483713639039751969394100848685298485170898362135377167648084447284493456101050568713184275332824457508524844157539842616558570421211913982065494010427229266170804240773609492305738148748944961688588693419327348359048082797526599506870391898997465101640411222861908907953901870334420325041482230222474420283091167898892288179539500994219785433207363149041231233924236535713091918981859807587218845509763007330740308702182694065315268204259698231077682539608085966074421839018264260629519334590575289814938893297608112344750318213461077050881735697880995080220719825025748840236664052648680170888174333178863517380053861269130918025921030845525778434957756883895823389845284499100136044950772702910317079815842931317071298060019233665108932383122873093440409919016998182408132355223164824431608855371866829081803140478754265418083804110400636719318586365137882266645880251313280661659284641028479195404225318000258414485752763040696929695658551399344317902478175657326384544223697363015216490140515054120196077769606190689446960848297384680922205650973726503740737923128788956905630056785485296773353857122216578257857696207429061516636320909158633324244706457082893010079912211038040473802366170998320341064308726913880810599245151843581278492723657312545685693974119267043149964551485468010102291112133079342923698829681481101629047161250172959467885527965769768575037029881216963650809064753361879095833402644556659255330412430434847965921659779765920726259909259705651861785631721173099282704020787756778645975871542721618878918710085214707692872743013879372596906704265499264565491571334620418705358873419914352542739054996829585497949897668736535535511681979602858120251373215300912808845378513235749195414502513722795498391812932244402356809686448497310081957238514664430344415468521484950365709452427605221405323804248510418665792524804865049567793682873915435954374706934440193226493400754980314549272833174549854461587183439072834393131829015663118514887360028406517337115597077634754317271059292934014679284615374387067374704780550337628923667919882803849218008611555713567150619630934390677311715700114212263804175136823226959570396438801581415808047781939112456170069369631831646298498704504992916762421609228810197338370244682835585572510190578932808321447698270726415367969992961988114064074191112349071516099592062625794755502499489625670792785628325830312213144841765777267003293889402130728164168814829752006885013237352662489849264224657495281439773419078234331353038668536970885196054722965541851749175834510597710311154822239608250303804943555596303107868384938409082047369197686847583494751261597797696939197909690600977239149327798026177817257070213825152382689222671599822658734236468868557014888155115598962256163062541760330423558554983055707126961452108057872840503397733202554878523286696759390694437133412210040803690150682227894544876925653983387953325218519136206919429462876671835565684904445273923224849704631321210394562077924701563999430611220788115735148453698877722297299565846033048010232654684845749460792083754559365568620843827133350930914151354907869065438278726279371563807537828470667229548320704822644273834580318823107952290750333856484819378966559519097875879288522810570208442369850551858914271336194821356993692513527584041724744409162083254841156742625630301989614940674342310551057101930738172572339332671768853820912719137532324524231556900222011464083475208288709154206013268374035983631982741881536236970448161556982722592033424752694814429152616946059512093928963446556832016653445864288741956039615288918199435121412791548298236060758380391646343075943015447912350348367985399267865976421475033878529854193262555702165786842343504166420646509067645739618984091128830642524159072645702446160524965267820126149017021939834296607125522677465549403477466356108944956551805154488675768256109576401601722046418978256015422527074574888733315956712020375643286666285945317888244128950700720793166272963865191843284422459270475668477352298350123618315435216628028704236044624284553512485025493035010869850449171774822269731749614824580453987704089883697297645402259548645622676878965271780496090341401974320782807319001594077161057270317725429574204524832273901600886108574324987244539156467912351470375363800897635887920710019783035290891897339447644344771240431140632308052130706510472574442540892161726088860933455047198671616411982766237569310025964735730466278484326417547201669647120221872797039406736263209079079049975989343749246559721574190831940023930569845872190793085322987631780817452012038575504097114933432739997179886792255065520105398177071406865106997408354205704885704915317276782074946868247661175928603928858876215314838381973720239990678078295133273986215239389864158280134678928416860865093063016722249135707758739972265325557436028428503375812831639629894074185239918279985514053981227107061309860964136536275463101411422710593454589768552784788670531937053990695039583610521542219631619838218199326541059604776915977110396832953240306125471704233770072870192465670600351470776719380324872293571905596980030818942818235785987073136318321674691306444302273026399705787244614883511238241719301624983802624618237580536171761604071217678445315441090159052275299893558163201196597912641809180055175423462894245979951163897134791449357185557089347781424066620877981696002229921235324958402995931646470738208778165186117647239331311270926876804292337762895534932446851880190042380372804983524588755457165380609363097369135602310752630948585171491099917735645196767992923179677454648669583465425923883033240132950141664794536866561540137662970516386805007081496760414214439208121524533844460905373467356990452222807172290751837781958636494510006178297826867548389183594271145144407873342757527441831903641138780352923046010820221611457359681719862849155071108859815360784671273829016420773184020611539525906310834122907648771668994677188962533453043490255363671908118144375941510666109968912170975426548917103981224180394792002769514581650845394410888919721049151813131444607884733806366060685282212712314253908788690351792233724945495019263094212495675569309099454158051660692770206566693031507269827183734711468315506079706114538703626687855962638674586360986942617232883224543305988023716041731014332717676740867337910103232213249512414097243171797815714583997875289254488484515749852677156457550725603366350154773748168842368759303408174894860388968486116223136707214834981654956319190536701328880021741567200185548963893345089755454672158850995934352574096480213802978076850910811821990220351553689001199995058887610330721813605949602630189367909014090848251882417409133827752025891296908546772722059261565405231382837387079880778946915319219938471793212339032430325920143683018036823947798795294460412872861259314463235417091508568401211896912842798097236545055667152031643599284170152831310564515693148869234116547888963619156132235783578416703234276584767030325518402915137579004906711899123724356428492139027062885014695053027718748250557533440630562380675141591313208155519831106581877324980417089686815742541049097969150403820401340951727528692451411396678080557313659751419171188129599334733589085507051602071949494633678644216704885727099216789095665033891468864046664217216240476406079400997262807337491166463442791428602297226696282464127204211257107230615288842841844444400063841774724453141690428435149477588492206063009027874145810016376260137822969933956562267498672504403016921121534472674860870346322337696337207867695300629133393877016726213636403101517067026397474046661908714970721355013041412294000480140952942054881892831278318414271960787240579065316735444104325355292424476799178342046224138778018358919776115761077621824656362927405593420887238214755816003440450207701985826485209218804586285872652474907302058118310389691647936401309115002842527176118297898897395619416387527127321881170541167976332735764495102775685598688485764685759689282850474195986612067585849658792902205597895974032083694635439322341094426269532518088148716430715358435220765622272958590481596708522112064215073168868365282765511036325206863533500655922482950845628243501075378995541113365235471986115396040460398171170579836878421913806701453492452798022597186537530407683686562270807107765155897013708036005135617779172143894693866132987335656408618925146745727581205838896827315280900101978553964930766682865919956959662183176567053024765201645724188569467561754108395898315491525118062007325229267929155578143532849036999000780796364211908837228073146993943552603319133403325490168202099913819039060439592406343260642815833651766555766004091191865545574426819085422177543149156630317054883042299346457307837874701198280949627975249873668972228899514713168530565537530574398792000919761456537505313862938834197534516261425012041633355220782058702340679327675097434204363267598434804216423550511764445583829261339232683887262508759924378307329548939415654326400681693136395080563065803727589571487858556726641277657741306693122976295147366584705164160934433225566052258305232793009555296663919541635380655592473347377986082077000145398500225376095298058285378538872880168216270709817868353349878838317997592660800477651311914008488491582153590613811008257906952588670491038983221584573854416941870969556834095068586501035202312296581870195127370258947007051748704350467054798375060624265920698206135107653914086892186801974015436629069140599868835760916181045141198416881929751899926844044722595187888977379146609282599873594074786164840279343332653613826477646620384749394413811567523248118700683397547752906460451542572582053987096511801135235002719026695109401675392155352916756276025680127562853737787653024236948225480199129052609481567532232965173798240062505059827787507172347984936055468471910344341767632224711778136692202394516922909987716288993294298095523455140269750812547491199152383878195601075129533354245762921018841117368454537560330338048322612250880237403039691481728980073402543418795043015023442727750544930350731770423523908063709050446425440211541325046165597023302255925921950563878595322150464983914275072700537589221613879792239392754775724934143339796255076095353586235357908217549735128814228300615794252201288030014733660039710468719503887914431384245092370773600594944999699951466506000821325869131106069093511630944524872562347649051700272226511921605784535777196649429373488744149683298880943076538959072789078303377237490780487000094284008560522725914824625154091426398431078106153759996414341420182370675672945006082056798906523929097013017493386147645448493753980526877484623692418572062132681463047192746760355068976422115941898367560076104747962035739474922694148489170420895932385004589723141733197006954351496627329007828698588770396918046744874322153077482721330345338617742621202026541336869946021440058332665871860433542390665544875825042924736625983458858387309717461881083003321435707477491733952042020011373382121444618555872084704253078694174923515787933417778206002860569315087028390555966711560282542724712554483124675496060861095665770831641123209754375424898870694556587973017646791167441838338744587330862256453579475309142290071739371840001993317227711914362351311637505893069464942857166545193113873660637563360315527690653198352731522957869387325230084615271954607834867315753604606029585510478826517257588942479635587580606427287374330210760103863284585180680274544221130306904030990490922100915789264666196349823088260829996194336974467800320519683019289386609250442123096534082905851855048797627742622491502923119109928466782091755376460675059632785800021325523371611273037409964266858426397503080709952616583774592134555009699907498372351487542846903582380977084938818825026126032983450162985150998905030097783746975319064545505167181491995458547573600103868913931321392879740199898297882839576729276371998777317592432238665611191860785465365228833920793440530324513812301799436101171130536390568335035583838912322788349832766218366467370212615995681924114420083625639012610289380211914006618730853853739911479221785334242448690677367979895525186688976878131783721733660890470083111920749392026911933251103716506286005418599379576957682357298984970182783556431935454645780255201782081368705667112798278278716649973063093094888948969550534923474221768255819094583848711980495190345824772303578933144675916782898143184636767960025231357291027906711543417303799005190031988926930507801252434459540146609652775779584195404146253518977017665800189977754357377118623488114424944755878684152519905837188248727751782173359012504112945179829115386313102919596849831624583612614192637994469622263755482515760660420547311070408853349916445862647356092876156331431623697135253818405876258574912213081467136831934438456025954901447963986834116207740724050008247293656277972933630159207906333389981881579587774190324934281770968287760501162944082041217482196946596232605377808330284333811933573355499586143188119409313670457621239207026725569857950901268004783706904832404490595005842376945391254443259193533815390773141783823148974034382560069675904341672493883661254909411938320576042586505400718626676253685518160245067419090601790390403974853531109658539621330348735542747098667620625211212661834007328801453697035341098778660547897365203465735119825111341797997847272026032335265372991486807149054332473142556022105520255033057439574902041230257000971611494955326294293166520755596766025838872001998155946027796761329144737153472532514545941676020749384124274290801488160718148374336606798239013004250336310537307541456387649780258959454675738592235706699068922437547088901790714795215117423469660562746016536840051968334415169372022782296303415912231284669794035779824354396754184518957564113993730177632088108516517233292783047950007465095189725950427387145254369674042048671669871463161183616645558380801891622298707061950258818337144471733014395523214024361716246294573596227311695698311429427458126331328682005860158711984695517857526587403570616906397004725067237559709751302351336657044093116519315698121887087624234211752828300865108515416169684227163786009973358173165062948279259921894168051189263868012259475037631009426619410952607094869945373032755140223081521644647407827479023399136572978729629738935472532284134281168448321128483111148975621200086559120152277429121485095331764827930039751555123976108225226124616203134062185259373742275392444654639392557371340696708270322753438524950705600650538111654642088319704954754929131366737709969975109394788778437950399623765827318506894067977521197081953262953531088073352491869112235579991257149284254649395318581736375640084184582951256529903440783144656036075376178359469586073712783801377574306055535925658137333279561977381784195468841636337893919746176528888659931384371007680375973291615937576502782767578499420357427556614553434433405555190656652545694135058556460866460136126055903697378291819855193760869786717244397170942084079440385882910631872587340298102543766743806667099569643367638998751987963413379961222091420319028910857609543218096492409575344484187149655828625032642828260679459491899969852801600377877570312796275491788992796213333117531404343543902476426976055163496245274280309859424803212320584707308961466931720946436557298907423714136807451320248070329856616594272480434681913401586702680819438111355308679653318869901161600094330517833873661537833153450497056163317720113327570413144518697706614442607329196638672451104050367915228737818484784485945751393637349550191829236015135683156147516993555778239514752306217637382654971600724516553546307121653958073577671007643117485534670229978095681924001521329191449207164836574861426398398109989629119765867234228024887812767962900522446434638308928270919347271073065944773242116561697309521870412193992041663815680534605939140455755182663936866089632196478403001486255103734499427251598969923808870860641947338922820827568634294456575476531411456320735832476507789609346421978698686151556109201138851558275243755073037706193601238237624655942685831644428315952448953663156177852511476436346374665839001662277070205927851869120492560056985967259837464615267450583856940659182900489068382102780676277674900350446471721444891610351121362091290098260309321165515085219595593227199673530706192014468830778052453519143074098582451457133426677864115039147304530104332610271601984801868798782043020193194422585666902259961848722676777051014709960714176071255298878168035288436445057103215615322051460214901584008234775993434378993734453920724397505333913523078761404605175433075129059952106180446156957268477314693452157163589258713846866236147753502326184134253063229842017940628873970966857468723999875815217006721780691610022995030592696291315530904836974415150479026013342250741499410993122041055839652431357730483140400154446514485093511968595261472719771034375493949985751557922951636589938371348681381358480471318511280362972467652296784773934125837528690721001684484952261442673115996579210789886660874641836717908141684544374852374526395071075819800513500018270071809198806504285094074848943796708548127858817890612499347198849439802665711259418340055309299885587704193923203879930567780826475549370285227041512072602110014316456690914232264350339500457086838590625379643307233331103542077939348887226478810755448217091489200368779928812342263078600927930275517591053441281726078346538522743771646820845649924404700951951787083322885978363624923777030266567478107614893603492884955945122364457333084087549280544204403794599765990972983889711167236928151970017497716759959425900007912207196140224729657334560494114237506099753147730784148079637585881850449125910846211110886725423935108277416693154465170335188556032561665211923298607723926356115854345190599789088605421219479508688288649175929373032103575521331346775840475370962982467536441282104383307845702075875444436240765892058562248420160176385419906607951424134512153433977964490344482234931699525981978440334014153049635942569368321019015479340540357541368005976364680617955882782450764977497940629682161901113278381244596015965946736504691863263404570242966698133776422636206949504010030741609881010207869091219420073580413401246420016746364414876980090233747555655388235783569037046799359303913458091549985936999194437663475442128556782771742055233209509782359512599455079215718058354007038522692057039643952912004635278840555827028423468429289387273278905931811512947268666979121778210994004431511003681540553943158172832391701456706454814249466768805392753580562331372465646046298940748279358032718867187425725263119420576549758935926021850379567100320295966516351880633309911438348831346122771025997753553838506188130732511081249018828577048159386415834453615482713793162318130578972965398125405447835475160348585386032900188167504717870072005720512215604472640281375955276839664668358561669378173975179102134672883567656222344184324124147362319038936390008079320506642588313336906191600208923565230092320001868910597967039249813844972201464705944420459957536397785503294890922812844890034448945754800373147722950545989958248075000231204149896720926932791599316189389207653295982517779426519718377939790690949181660489154578251730745038066244937823769394589910810847290553513809967092553263012798563016562552409029474602099637204035976786034644392928516808106792892421794594480333594723657710591933795314759781994394768733728963484453583206722480969220484140290394555670505993162015945728318161458244864261696008569970326435942468853958214882997957741991309981672914405238058729638262605022522525158238460620829134938716624281548789619432846540157227053456304609372033129884862410427699796957861840042509129486720807968268426868492640162580365324954928227425886421568530963625400703740377341909116745033687018158254192434795758230404874083596333364466930802712418737548267996468422285018073035583126813813634755181442983395794859477072809691546542914817958152400190187896987891889488411253235036111205435061875110191378237203672368362255818117302458772703582848056290489067106287192999020238250300291731829351274568482320945440132752639306657389558500269736569562786988702132362682170641424097226131768019271901677932405645558902763828685251656993074146322473962652727698498152813651228014930519219576318793951360873636655191192679910683625056399115705072322357731547572864553266329820092759784539123516128089154995798998175122863820813473547755199217636343670253625613031569961745248789289666192877627860909311833867194451040834215805211487275160243021058050687165304177449628496069163982647020549321885912372296575162386236749350972132531501149028727066770594353018894736754302140461093211697309096608648300307148352594134454707791564470288102416559593208828625818606524918605838419029358884651141101923769353237151213384470649662143423385283945945205671759540524222573335920817746725813895699595080054776624235856679510822584554852222040896986698424087580639461045220638064471792403950614301237407162849880189881468283817540397458851563528539235697580017264720315207382744521614905778347564320656355423744763326779084767143581733087030588636811564156928478557809029267124103649770875044171153556669980681819457217600212715777923422328447414233270878396413044115217799630052912558775434795633000701824754490984137525502232357430150788493062845020696877786369992410938296112936328978934958037041792177189386581907693951684118468790665298727273239953400495616001230127351959243475673149553871357114241433231527346354775624103672912237574102030371002194113642920584675072697259300206318079861120140654616816200227267757190269433726589100556851332505926742397980414791212912582421405506034875561530420766109951496871193570530353247004634983890223769239455000023069455162538461240192086074237408049897772388142142432995557353390186873203609493538499598307494514139175852617942682079408990282059228233797650341599470277627833393435699031726644332544411458378607493806672258005557015604202636086151898581867056725794711160303985283097908651290101882164349293547641682642083872078346031430843077813570734868211014731573568343749400025987195474710818701410440976728372093615413495545779579034913373352381499411408063892743401474799461862465000206800556420558294390612739265124831376338872612649058204772695062791553139961854314242628359174300242812992638646481099371607810272290207305489149954290825341137324860102120774397743555704477051221779353550869727876091512441162764101044935741195134901763526941023373862763069828169448176518303568294776397048369416212318326189479359706017335166694246532444871842516749301154577500145400642223197164691737323747354016175768934313590732874565777335944285315830145229048134689962121780863167486300536520001551031337050831318978265377530905597815463900316137363623158546383387243085058303498376781657998994376917530664087660741837043991935997542566030926645650937756760179872848047781159708879886908304642837027982419670401512451969655448267877816759614116673376890313880537581607151732326212186632758545653714891092154786562517693391077924463160971012419512792104439441902413263128097168017811093673265343818158613317923947371225617445122321812615535177020412585983307754692180295199653440094316889934403761791957416218681639024225776625081845246062234732679338920443155193319178781243653867571484204850678365920599272226818938237738936948288649008724495129943218180828666778178778180872302132618928872392279452142951657144660654586026917649783495284947998465068452707725993994534306891959721590383553768539525902099203152090606053653154347604097431885314753208840774259816283742838280190799412374882013994556718915045129828082276470512613391868123897777737303551335428557024104494560920990064547271845350603675792705979970281059180609316036835087227837007489178965241221332920463422966766493642786371943330031187870040513619844010651081466062466168947197902441381919275472662661877641622871343042446805138028390316843259261214378376491861795265513617678463697640604032109424243835307636591842564051638984710215416981097618694358079676581491353294621817343203687513869008907493204199246828895126390323652555975296589633076424320290226162096372785787142479797413485257309397289515151573776346140600922752541229887967047882587165124809300602872697127894889327887050812476717608931079717244088556499189636066218550746918599644394125498512338239152807532076257327470351261303797665958729154925503292434399994330889279006836419369798230325296689035365997574905709869072924668420553803671882468229285787811370447257291134664221201701251016893672081745055973777258201387632522540017182429973848001628779005134676307719791064745642606495300988887131141008939940231349685897846225220787642926649604011415547718596546080003311239174195540280840374590772087140160208451065844503931379527712005982572913542467744870625865743547760386099585666569028895925531778123066379419077527021558562903695975736785185345705243080914642197585867934939621604802620125943462119669905434307022872650235141191481567492990650528654474978185342792488120495243197355051789561373204609729783956262206335416410955865525912645285996517059040188701583645783647239278825956387700229545516509262062659538796998887580048283411273372023364221236332236908773880097117328883949539608594728581173869685745661962672958114224948044656123529842241566468133418267307648939669292629601237768907080320768630483130915945362296006624611191177923376658838558209793945503161437646737948752415701057071768239538172482465039267304002789082940029479190535124012705183933394742195184297330832292859627963789344076088654906971413500356853794775028786226363462249290355258433179655929194272359858867849744622029135369061946053669308484060628335701256866123996559930899729531534808553475058663680206097948640780651361384112960463897047541810454585140940475657178639706306479283062144187275985440044601431409129625927789552775346287484631686474876657066136204140474702160644160848880157849629453460364794035276523982875038716528058408876040126446789095924470909252402461800456669752914587727118381175550754588720163560320328721271172961715096850723834631638844073608401829247597531284910909918915872045073238015264224426752472131387637969864935658494019213066102518151133338770347909302575471746631652624139709342850978085369018624325419626170689612053761613120732583425399320136682887695264194036163579364901136704281060253915332891152339605526171891715884943423530441682932999817136722696347815884852438914559218961613127589237717305483248852645817060056812959605737135617694510769454836478700018381021468061045893885853943657420978457441318582307774715677658553617869011298544794179905623186076186187177666163853539635234146220356689876933529088741357654415879342751824316560136070632806361398373668945216688005961078788768282450213625327364727581807739844007657371983419502680155218973849724890991381543192229699242729718097302768863648539785688345196098903692431620122878513970138872774092777757426842572552193613580620912795951211007003804733424516849089456467708479634490247953817036303077468243475145324233598591306912012615595578230000592761741842944751924034926024457641979732418912708070042089684316010940449659564251354073748089258108431354395358609648279359263535800372724050581149076001169830831329288915476946685575337489586714561420118815767212981504829095334736551800890466442126773521075416983672008927355141338462344233617834632940619692909046509685805884375953309747776816265335055755946904806288439285749973519182405344609266242022319530526490227812581076546638372212466865160554977327835970294350817194978165732493261155703088266970888519375237016967047193493817044701111893071156200313579869490149598134154914208158086524203837258741099381684755108324627308135081249545187052116971494024897745356961498614736987069050530119540317725228081900503884433239954982226697670436095881624486211753414742389654843776580652510204463696096900345278857073109371805003168553514509724776549749856890360730245831660344896297531918509725352257477333313116286557913915159113354176878489964626199014897967243401332312521772454941678397685316252855038567131688245697405887124723143540170116242580939180763376377510856048545039828683055650025454602529001644831313084587221157150105819661766161805152459549389211017318554714335247100992603129723552996365928157004217515806777663158850615226364922660684178107644151328126287818000375255212600009244058471034993031404872035596770759374555227138729827654034682668440756101699774696263101624865447462284419818540280594095097806489590997767782507616810563205180349024151925986042590376583217556243778267971470623779711339738947955449403514801371581998092076512956920434713555270308637860655350454089684418202951327799095731766168882665868473525605513318896282689876995145461360540346971359729648506067399723258301780593219286875382204816322319906568885572597662410871107208708718546579512591257377009352721157547885802176575990183424577645882372034390720330579061816159033590136948125359176157550745455106610008616298827130158258066364797405498349298065314268076136028039218174979175119189988286421146790856252942087580280290340002262565929017159657853623698190132002939308974494008346481039913065195239108485844510618531126353016527341321359474079745351595995136959634208438218554514334709393631248275172385038383131978188791410452170985899557569667232042657692154775059742557800365054830313542180923226159754054526780613716307522884481410764969019729436732778245942114702408295736375834405052970407790826347456884913489174322145641288250228007827272932297800467051361815118170640020337589480670386198470052104975348418627755974253023066513682879184313219244332233760128629203372055530622793078250927480609246853759317007960487712790105420277898834888523171681626910122624650156881595289530148711014559658732766669362157363798889665734058500215951449554982452148033508061173557602936883858406781567584575421484913781903249050299334042827017820339107403077247024951960522626295135697425447713872356255477086375769941629465243042030189178348064991638136380258293041076666599870676850263654831458798365838570084483982663907377307762319918451144215757073072242930572720088222039675041708863651818808663851539435048493754555032719928832337124576629968070967749263531896817307613089713504236599530001613474204235062988022211710212889399037542659946169890822839062536270907486388563283114176323222330254290635165029614549640115231698997059074304444441710455465775849901293304370690756027877727784068931532424337143883762001397408058568382899266681135022183442937076444660173271397214228851345375411250637288933010976004311537558688347472870037044949652114264365035982508254434856390547646713405989710014810376085007598606290363529011888191255912648026764363588471628573988127719124413693493883886716850775880013932635916007178674305299515851621729361150700866517549416714530787893917768547383163037801457792259783713028802539312784723923446181389153707791974596363150921125550272627368856559403065116194337556067711494831498327498562273853283184258553665988494239912495863225536093148920146359500642762075006339876299856071586697968298821253147037185091090229795248586896912638973203321151766334861900955551851295600305133802759944737879377419507968511039350372899392997729241150485152631539153814521773207218697182759905918101024407259063685112063784859447812075921299664599537464346665540787177675491827411904693583144155877665157024405933666641338574802772011641358000812666410982435196975560921794017174800929047645166480589140180319332604400805192924802614326071181565513351831719450963878004962500222480463784871453911727054372158801901385049335327487952120287948396007502478913846229315860395266078706204478940198192240558818360248572155147366740360910695260977553422011151354831510743762146731781940014500808000491332131364223688307368932794836057995602298865534431697915030438657605326059419547569957079662431883015623078638066111693483964496152771650965319921565737517630462748284614330738007176746363930827522182117003850304328054887540466914040250608322192991424200917307351646854901824382118952463628374282904511250655057567847340987516493222695669873896133840929555483723322231417481432897679444166215219343929522100079821528735257228582381527052567661715919773210270519959692240132887189781977759498704270552405967089888368566487766603359149956461158388394595190568649906898447728414561928455874293493467685274980446902506276246915658107510893880204199250036752092997654213472342935251375540578934843584185332399509211086539774280750561907233982650822807196619340747654568268755992271208730124160998328650420945334167436587623259491358967191684996723116553038166227494772619923762215486845875897533918899252920478433702677405654957337753608573328706459172271125963638501959272830059814541635777994150001228576801861333764197776802088152183763989307009296599180511709708882651694681313498016226632565610898366946977523653096550789104758255023578356996263305409898913960547144495462173340683831368852538346259694299588525971272500135297003258173763029166204994447225460763227105288689554612883701372996690868044775029868838369738456819810027214254946688862503313788087154178455175591823820606789383075324508461152224473091026050847506920410738645978215019913331548147198894716621862637194995843615436640582439373681117501303062674631003846675575494500171555447085524389198476949933972566374283683741219567990723915810374709266853721745099604806046701645809055418730643482713515359861493865421560561379992780029141945401994681051668502841782828875088240069610413118183317854309934436994233400427293709465883354309591365005286362000925254581853301526472269561245783248309842673579579547932892086626987700820362420314010040971928069100155478102725592858710109657529213936031442814993850586124592423661987265572402815138771826922923451445775982874061727382124310721142215738908259873613377783352198138953060820419385492719759945812009060430415298289806299928015998080139527480301043664639528335899056521191783857661778099676481874160871608499685032704223851939190739181320935310398807107255602687064938809249803533255050316789831388285591569195564794753149416911860305130740571758513855651199264991043224451766135420128809867223357272433721561101825760853117027047392778321284134571450982685388838493503198244760827199089204822083408332133294367566084971317282694578302011740645197828733695639669346062443426994045797695249716717226190202021110759811726147922831229208938046608855456791784183230318522964598679677544547515397344673203068983041382351082959117958710797079606248471127024035458670692043934293490638035952313001771302728923765807020977184877614141985534844308596209083296404044094442572048348939379855916749357901438045993016307198127686774559428366245340500033558280569818709170789603601453003630885565019922328783553150464151119319861336608549656883363302908951585262202085570303846478108954848748757372364221505462088916173352585442646424679648923140111358096053291114880864219698042358050217909592403932275893982013713973211837444715118219386725491992761763730704467143228562656600274680052314115773409911336551936263312859305931346089748821706385756093600171620991177726084959776555099118941884112835944783240385112877925448261866693515831693201128684689570684246507636074839150150104577568154987323596903502442334366792024970155686005686433834233636026060835550889682426426360836871624400612798083572558704945652580844784469269440735450333772425384436644025109838040307474152703883898512631138217629230421752898486055764306712899478601014454398991456099657023371087042060802629490817334314497879160295959785384147215036821928407615170850336920442245702482930390309262592516424928236120244090821186311212093671138907213488836447701601835171698985823704226237182831253496415476162484311582272797984192282454469951177600126775910692605272073844350981387030495679385429061132541005116030875160873485341843164149610660731991108898104639073285117803811139579100126765367945510250034076358163326634779193307144538299204507087922692096040786741592230618856052581677248866604781820578183254899858686795427005382651142985888084692039542570372027953838129667239548198886178546060396292853183168110003603750746420767947166743546335099018956495664905814711112523812402301313786141853197837955939254253262847663799359597013481401505234134161463455881204723593709293107233972688909755547555056424186209774780841816582801546340420216669767769134146215936048462494541482129210345280184065753277056735146614784769709116313948065528850804349815364263709092638517613666382999706642936133117422967159603191331647849884168807961392871871743724143835146215990055978663190557776140437588464411445525554327068248752228572417078119727723583389336977637236884843140904523133121571313323538205769049187578996354763406308259915855871845145213116403596764137061950363478020306318504754119501430975092139539254909520334021918446990475719917371249026118447508213017049557120191170328559612667657248002596715723555573038193322477977042838460091853873818234372592991838164240606107108456853230809647166372818320943388272775284434839969255077818271291534921803191689765016111751391613000510954164366129143399587039980154585189561918941633917886824382180260984673074425121918072385069974200343226572258525365729574490335606672733199415785680175436502733713303320885155582415220467632663583923032172403156465158882786164570783645059554593670366299926837000699606572523383380912915621619066607777229963960096436473422010336327335627837184130435924235355412852727018463992222134990749491828647774397794228054787552274970913117657249209327698144902787609874678064327546632348816692173059730586612169540305330444478773357466428219210691326724476233698495445547388590846133120442444001615878031856356202474055861118830322083805425078112243636294764916413099924226748788454259307655640169190936880957041387443354941515303073416187659630545268328615045050838603773555293803643829433113045585624427260838130944461759054275137982657402928605577324326021111559835735609061943403701301133299279342417736823645811836401221705830570739471833161801399102885669852796822158004840024657566936734796594918537354126622925106626230038426555631669966824807123837442142440946298129836224457321130769176541356622217271991980459171868607864772264244563434774585721608811444477229493096502472157727342088000536105496068235834633741229640579400341370163486743555091223588534508613430977842930617487608907805952719129757826001813140549383336342096490918036526894765607864144009536470720274018004099717302430483752791546137628766114561033083877326403633674348704983613209953580116667889704441068144747267784106520033406948225605630942964739117926601524176062787159676116044510486333692393454134197904927967905842693972328443580750980981021222919032427621873653756191939981063017347524754312365962069624887531588570434939627079731501035703270173513058759635138983419516301057112415765506177437625642970839366859400487483074992020372374777981170539422100529336363305354624039392021696135602704861174896028520436607576598568791654150597620734076011295100092838882858286412852031914643418688871675282453421064087127195681447378454131286701559029497779473260639139082672714149470871155633426772120663863666857796593242415335115640118016108545672282710536500025936700751000525089925335252711362167713933442107762195419151358112701758874960364301849364463319679319632359404500963594420826453258690358852370399923092867945552526257057007314549139688239481080578516447640838730646246036645352954052732705921983107919185742500607874328110240645042477119521171889177886015918616959921940857426741386935623897356013581686654936289584987180499134341754806322399694041989976625927694638950612999096492558786189942129914106760068581675449999251957750159756035815374710034088215247774413437540406607199625164362611066525325127683194416187416877252565136002834852832632874619592320733366800280914818485566356435155006608086427356547921003847328694487596304514865630643556592554644654044529781197229421272841748548191468730428324508182721454169247155534273171958528265815874806256765884958306575499030632399371998387973283402374882208800033637539725378221438699739321435403298872617251785154488312367412180511081239526326678683946498744857027446446373136842145673415248163164793491250701125244549689405298336109076744775266492261904013096108544536968182119411050345988469773841118649093402788317393755656457097470431133708119006352405603188801317704443902242799537279891942109704022472136235670287408828613096756950647636778976504796351606089563939704989835942625769588160283892012109769300373074340031233037461124495660982223734311200216128411099810928027808453289768140989857533975427181100552555817102258795256411057073938598123132611330097164872105947316667096986331393290958781057187086155845592450102833410649767117043372621457141650987672541313388400112738802068040062777154275281852837727738070245924155020216521947650425910885682034078111766929655404335460266717662937503610694111339272925084733173447315924739040175518642240416703715458328831515195943646222740262052758046284007252943612535277512230447611483730055571109638344228816187086902517036154101667356276265045483861722902923595365023512993718338513933672815792187564670081106668837433400427295715621574466826998622554347206871714375063221801079782384067257811699165218652580716041880489528338589117403324686974638947831694899145123396426730522111533669368901344596057160925695520612637690147051455434503181835234281283780556900378770956082546372210309769635296943216914464718419966887643552973150663411675027554958861532112278778358391225015964536351550123784553528750348372665152704004204489968667968853477839307716242820862929818407887342008011907384171798515469081692808442931439435221799684737122077293103483978648382664928015313843894082292019170414555126325189564432604073096514654211261510832851900051657020631604320249105799190098807050243142127894156819864182814541315953122520278873658866503373593934557902190587359175935718976977047521856335339140025397161488642641582570871366765496821012013039621753851577199399814244765395392075446641930514572187155894310874398228164102456029470651377806617102451280943857909902919093411550497083608071001308048476949830295488325687020459396429109380539868916023910547302740067433376260376643576431682205549266102472874537872773081564501258378833108118567170776286704094901992010097223031257129204750866417526921609935904229046621513908135944608626297719497061911469996994988488090050843907490507500151048015628456801994209642933494254102864043235398125801548038920492925234256095019956712507091026395179450456054920627544730340606660655038162870595526304078695606841407212084673846922313632462099603668129673390641989182292190067264607372840821056961820656591248694488783244780286906491599699982709259489824667341732674598766310633678597728875470502402894835614489322370401397019274459416482567775136487595613858597572805984485411433469589179711002521619109795596737843282675036861939201671385341237713181506045770161361794723224071206075342090240233951401587985611898321875075026586699856011027962777636131471531038723709788104433638279933074258364876395177569358601139630068503258282959567137440527573162620102650146792784937422962489727517419941128902579821853881908469620492945741303222656986257867349962643738578337688209344915413965830938314714551876499560577728596918007980149703851709054309115208910450987884913519791760711760296873133756279636644802914929240243602397132330332924995201144809154179156368248087642574408488227132937526654125821275096652933519279890777887737941206896205683565450471561966141606128585311999483233439932767859399246260761649385343228412916489042770549524777351074155733568298409370845077376820001641381308936892412755276090094489659871145480259748922209621698487889706270433636120665346484123522401297439628772632862788468926976498421091844727564318393872171657160487624513598058923156024547772714425793106577955343110869431156281388086282506045511149659850438227442358876631959277139265242778406923569680808626510048197488209956823282601748039139650620762971677068633717533454550987381615538542906191787670809737979514433742369936185490635787459588785514260759672617075847151666321285654860340446584971010692989087233681627024321130338379309502953893903576081608214350136206277569379840738988103676631382014194912059307458133904769708104905486272126973251065234919459986348532773852611333882099249814423273270570023894447560797904423110108363370547704472350807052256796306343453677016396355910555213328914131307828556862284012853262390562299922825497404459748014760186824832379876794671695720607302334936370376112015681589695996116839727104545433490459771083440750537456364559593876622588164665938506155356019727143643863456647717700720365294958001864851176105405104566919399611504055811894282172901252680905827826501903708120063836631541864119775307734913486936936724829537574290032269992455622891328092935528184057025457775182057151436998600672181280819506007373723466702243357715623580558013402816786352255849195299580450797510871951450347722996825982389857951386068971812358701852974082062780095752386791140663131326774893594984198292505766631701492235910134177148930801721223492081199934607091959815929454649401906190496809371775537185155941660423424950783590259273296298915740937678605362690921604701084164135304744410258424825859333824689082127585678279211481113228836266619208576891269797890955352405003446371014644032763563589617479684244700868826041222476776449914355038000857102348261563981674181765993784285402472092939120807919888339519389337360774450944859113374954390702784913624965502040783630821753159382016896211739628594330547720781495844529941960507268632879480907017679692927361359601991718904842256497904588926556728493450741635551226868489632638870527980022740663929729941715679720878312935605548770338148208934281985120895007731968203045892701914607231078836797372699116003369064324562869866554821070456941400906022402723605132008337165103431129864302324307941458438445548809976807942847512187941641230415641616406401004385401386528362881825820138833348250391636804687241204221730966350700912463550585954719757888782193781001390901479399888397854935384178273811653102616294600373712004282504799055166399655776903616739857294037258931140373325887722087645981192441552587236121368542701772233619796958896252875743948544251385918838734667198709696563955320420906499411554147185453961725363597811872844194575647391907846308275033895255695038890808214580739746065711127603590776769002716061104490299802554279668594272201022173885755380942611293875765623317739601500980320493880040125506228102011988957671346722904829756553417143022893926421102675151800758992691979479907036076019240831454505326289985425718996394769186038350320655365994467792292394155802682612313831283075252569482599517838297475835931770707470448545401136760221633407204506862258105939907359337783448085132991636278913639763298971316634075952400853944656700990335959929908254650119075642914775703371055528007269973783883547001091849968335713689933641758538278620988869121441738919552739038781326993370947164151806070870944117405215906103122525882250279988453039633194123309535489774006877758268145676202994880338617409087494693130730653437720927761233410193688025800141851972966927246360830917495622696511048959876637056626401407921969034606707799303022083392010622688934993420676381491988443141977878516405575357326145213294531287218526005294236689893472825023045538947992711512743987655008619386064835032334856490096947839689467925824864519029404142472553948737828105673038880054386749579830065441148390742471727137671058670422879490806611829917216453065001399162160689544230841962969745950695633114092565992557840299033279501021321731076380641155096663743314109637109904067522331666148749951832032993324799517111069854757184019748845669337330657022792105578742991780090805576792256250233983533190426725724344129760617405474184715759590189307073203885434549358006101977267444964039661701483083884163672649353964371416955345881053913485601720335992245916688016848298879165800801310097546269419950811191602111842422935236724474049607802439513750915231451219146015834224734781917491320482155446607755289745031082273494451134792404968247252401357408000485377389689641052171827792977747707193314187977106403867782516063200064023584766823672748520291549709789538619598718404823429107806714653452811670353044717862630869687132986926246646277394121577342665895977628055532385238149805694067003761162892617096375718192890953541748215656607058799623699113553614647703779104257868933485720939845570722420272999536404771264267859263574694204626117574161313350380347178636221543382526608483887251509027899415535061448230100266348813189027351332756208545453808193231073786088374265699760607762387688311043118353666437467588515348726584438793118094839086674175281104958771862085537539896648540730529644298086392997634700179491505125846503496484554956386761664157029493403226500944448964351321966158275213057155522616645133501498902887317718916779625250982965267169958688957624923499432790767291503258525163901436546821554851107419767024299636071514882560767141265097944617745567198837397377734207408767967730753841023694402291568305202816453090874916210362227120437628994931187049202368973246873669457461476019845118783398536646897212406312526876727088822828800415380064820981298634764645131624168181726058364004091645919068496866879860941894445537241172836286425767374666778550409718084134535071769548122323554075056443927643828181265347071015881014560947555919255044109426715260032363178574976496074081568158461017994010319469732766022646130182576376354907029845886995623349402835228553060100843898043284334560021807969885477330344612874031501280098910764291046695394485664074048850444683301621115125536083639733701819691153048912810426673573029924414996980068598751687756780715080597559370010624870483817285409168396288134537857095054586987697788149244692421948290665676171406654840821482850384388277404730771931137617941334689086033532165710712326218860745532032939165819167667021056219999046244897044531583466896297387598164557782348795588997260565318922968699842142348211984911737597327079729455807286837309864939473986064785739068179194603868373722636491539958922015900534450544000890965567424038258842923739565196030103591253264772476331263084000337020021882569651403683406751227042080664954565160024580805739590453790773910159222074007778229270770052999342612845738603581398137684114426734756469886862880252807613358921786566647253333880224532115379295443495583316729508509480516956530454757892165572514481178711654673350421672591922691814889648026096250744309187300440683371385475658885202918555154361392594750585447672627908177239723579119115267859310261701394134252659618838524785619184435994443935163701701602821697986971259545280018921414768990558757765398371873079435398417770561794291445780736253482944310551579710757569903321789007283665908808827543374219720079803938778177961673134358064650774504175246108032224206938314601018509609459013504825393531433188110801523696148032986702923008085759753079052272455819115950607650195119439020440987917660825471384649660654534793871541754017016124329550023510045119887452560824613068203311774809089431433841779923748954096487254940942315475027772754332522382003360491241364058394976618288519446500678128112755355887552013025241334799868552065741497338425678740138731489907359203058813055801650910909299175526581033754816083988281408755599751157005072810711091732548721408952809418996115159041775377407964116637087126497407369792185424729498826200916580855587113631870664153329356373427605437773326115183312126161857334187317038273547726167378795218610619831756573952503197522210121905289158446648986086548459820685674651466407983348488054701970883927203988757940444516714887289293321881301906180307457889922811348755127787480870054726608490920790777477420935731543803858778729644845411439439416734331377874805204480749272965405000542373624647156227726841385287847703001277690839985437060335813664567200483175255395093226012681858257154387686366651681674894438022803512997806918334741460615439475762305868583666995176749879198715856572576228749564841002729316718366501269039898653063667138021858211277587177345685423286565993769201253681531035703725463731687080029848465228465056028479036791662151471191693981701581532110817205874921832176205562080951585292921111372749904322487477579314512738650251807388099720011441650129654969459861277336778916185704388561803161912414987355772952970185436212132333581406197157623139344071492278586080739028122659731703242646564804071309306714295167160761478263543591621102795037830670797303727183544246305375434850763563961047550106421982057929245506778079882429225466462754559881658630216834965493806126135255406806619957390038233313558118954697014458292174736401196673268666901202176645458841787935507828685765650239851532774834972016346451420193564230837879601473011716098613537309730806147097601774257660335322200350192510003727443368173477525679687532954749768524273171509663143174875582496011716165512725333494877755296080786706688913569117316114569645733331468214138361389747433578524721331772636931111930979616869223445588813115522327735878630363121114766317130401265911959008032327618925241586414794365171896889131446922863176785409426255273432862315967169324996855918565407288400038276963702636739269483762335735745200770790201152420945709054736599184841392177710130944256752293251177384713304073081452457202109473369600355617444877042993071100164166368479275353969060169694603226643043413015528267598287067144763456174100916113969310344311223430308048769461229291990340638336698504183158137607879351222953717192258290716144237973248552808841225657361951328908000174787749202945698633181498885581087863598321992069257148481535396179459053120158621875531904959091170793286234308416991316049190247609550940038123156614772066746566858317505997955288415230273269384423631072710671206733368287997081157591684674306799421128811113109032351416165317398422666977960631013907532658928289262915701967000217229990860937451712313369525717213243807941531744761619092894266522991353857035722964051774207298897617985956310862163280659292728257661793757552548521949283880591769009420648049143478405702723680385291331417456990729933874750547749793275215688571948043775446397072248016209532461881685927679279165547765906860981841994461603409081545959420432202045824653221328522265845627101160217651183290826530979656303618010709683198195990537327034828401476699605524584092305026594692092149804490679174164009100714775754301400059481356012183649451935725519659469396881587650697556373973049843105922071185404789213423346362872764992069100214765049738075451496487375710140019673925025626598991380242245156130690476048262284853542275932490386109901735452065952875837870157141965249543575010702487778290566907866524749408735641721915188782644244761626800717407992648733072810311121213598624845260653742038183811823002299791576996399753410780458810897898294362455952333915512865529800287262875101421683511239667642295048885357453893097497095764764435560194739275767851487113870499981103846706314993297821554214832795774281219670569159116169252070951022124781792262529267145338482775243974491800566756428427576073989981399489373579280593720362377872576764531482112920437969026889854287616266327323569752974826830853733967383315178375616994912323031447175276878099381721410757384414217801742317632242192164708504523087478300115316799742056174480725684544866464400099758718999911490330808625732561560453926331271479750742490842974584093882152439617842938652661153548100921437213355013094839882321024650592642368240382294682251770054851846830248087036534489068589151946099284012667422056797026783317486829564130135634104576892855792046991620532359465272221452892617569748225835896798388663223994468797911251525133013169873601154686478815250272810763497090269390119845224125101647959464713396162664187572284595709795825984578674389843150111058671551589030062110980339783391951244633597992147405046846146745402609491607226624531727042353574075836142716365495668909948301765130040226575866315491568010886301208754818727213021577033070653846199750000164208190595631887539522165344016064387648593817985331626539748013111731789621285848236172051287329397594927894042528356604673606630395546718085305581583450966180950763040163497965262471038363732419818267538071240540225930730837437701327537115110846142216863834362472154836341774511647972593850784292117544894390752784277273929246830333115819930452675172102564466894613723964364301364717246217376526746926006854091445973173439954723927009788430774789450221088920085302037260432924667981817186934093597163153853443932758054881754247529975527946778593213540682935979203467720038591189078578218129995123515813509358528653028004909402334897708482106678115231045309857946653728732590396312736241563481902667715025931212440322408634948865673222292463030163352497189843807031337348482582727588901823348427509981391292599755468879894681684659534527812112293847321910848009700541279820730137782836986595418361458584707677070804311522182372073639928492949639215721726801006345395182063746840995409963026615951695167597017632198744110803594367263182652477865708406706634404963235581181631999255427062744479709149157636195922150671985037942778278290110587455057855761339933974239918045499516492925344292891971863100434304515461593167588479557107078577425088655386113117332538710825972880607228710243030402535266580584371153077956107389354016586672777923247753050292505987584179628023967930928975370908449772922126158561574142241302244439499091743293978396048214875444859174096981507296889505969921094614951552519141449782950862824053365720104295133947912539504334178767810948917049929501256577004642857062662384924594471694216732151025585515681654669567606259385409872585960259787574809677761449586741251931069572876386646275325685826678693056243745355000943901841408938289945361646281413816423386752960390591538796239930997819458392785076003718221431717928125270178151444795526706822003184604433495836626718580243633636484579499230083844616078490490395718867354707378581546104658124407438214716331750241553366797495796526303396049724532841320610054780506294225075446811439451362358248710166288554172584475814235849004598313256488238308930701036764956388173172895253943549325956743634373836242381166081543756450378725561193856550807527142506556261079870420707003998364785623138884051194696053509317587915247014945560482590579890987127400391192826320825918176007871991631277600508052258485168746397817711496039234915485541211526693431332053194767693969340313335815066810915089401385497726691708491101207726474613145663847367735473371769561219418956240165630996036596567677275480726005113374759905967390707946329221287943680603567424052801910312315676984645644019479982822646660905593804774113638325134266367725483973162417298437732345928811006953104003816326175465190509989687298109462160980765571583028000368010024754679667465104938055188643460593769726481438481328902555742449366203517783416691997040382522672938220874752089624635177172597172200928088568827487650739086275823839932252699505501199514661015724857250899794997767470696842785246499272123014499156183071228574115287250451629555566883899665245364877131578981142383381180012777784891119973926306659955741925015327102930603590749330113903767657592353542280912151220629270704666953355914769707306551385008044267555271598362979672138460080057523020711274275154809496415967970110698388287587015704407398370822373054100158013362047109136304105188843434946268245859843604349708326933243029675466592329816855692610010916024410341017329116846062813577149327857411993847772436411756529766689375662007136177633824715505292323590690925307496591181385312432215606251931683468472883226954827815075903060672092207047528464008085167525367514523296113599338027692643833727682496301190315774983808248832288643258210813321153020906855150819889422372330211325574722166991336278650605289710162366659978922571616540221342740195033947891229883454125636310100295576580988255327133182806748615470195869058090360819039256796419936242160151594824545181678735064570167870230406253308889964853125292544181483831764437789099872324150493425031968919094412005567281871739117216559029588130835965568562714555639867765293580770553318400934166722463663302104252450321844481271626798902875296048560870789153576494099217074492855671077509870402345142490851659213352039691336781910093200165467406232749045166071858640484250561399554380126166542706708182766661927371457026073967759622251410434354295290217510984217601406142006780970676900629284022708930496630657745792287300494566219802724355484232523525816234804600918642695457299886406155170700154165982943921294694989091921072029037909789585210395432795940122103007080648227021124919580205260224014307615928621807985993357209661340112226937904727784089853871002939483505114208143764078204940098829084685154010305926166147230259433833548966555809210227200062729373466539618823315109087138755524052620407683640905221822389506573987460163476260405492054296644838076304904742524864180612608254528541536536404027556537292942873394569870955325518311403161516324684034098759733417759646799951970986840953784146941257205341520652572889129364459636968644616207840096571264384730003156816541773723279942002499315444580428010105719163810986121271732657099148897265765828460706078390613629593328804906496815866825315429739779822760153993918027959952697991856742799751198989103155231121728909155719727453166681740629809262819140515333159436252815402083854830508549186375622870784563454986374469155589922266924776936478139887410673803305764258923156467922730861558319631905417944741679082650321025495754508074291928703876541956554122914295863775909333143932300248408713954011995909179366726157626468822954978919441096474444374883526931557425647404554125759440700654090754113146941669735668728771797239350553151336870967976216257786363270284153576346131789088186725189051353703121291439093832535502444966981088552065039157706698122386209974895228481468777270146738953333742328326540513002809078048320133737122395407214544541174306962140688517828730322849154545714314087445016337934095601149180873271623063369726546218049220990898654957262774219673054042821486757831497456073616458224171728699027140041113560393313776464068382374745869478469564784559546960119000568423361253682210338624683144194610405532330523794844884420464344053981202225262244209062161737533191212647040462336580370704547667164592043969268381451063460546988376697912941490515266802503685813033104085196440476767202482335615984233982472827723998737932247760019451255822703383576329089374127273408629127706470877155742460876355776235658788694417670764201791316064483514150037340542367341092238703944382016282341976199522195824082724462762003643478628735665499866804207990350647623458304847532481858604250572475663839732281020507853602805223643302697744601872615045759922980569786583161078259540552839013090947431478223222176161492837388716069218526360965138265639965531769057517556295392081424632641866640424126155274792680535678259364673394774441422655102212181311273774814036452604174960154387579265102649230017548167354357865220765798114690020062074877288728034459834314880298542926970268836350891856484041858901710112104975587420313939267079170437257355867740453519045609871906156004281923708953212313472954300489417840758797511707147843889720656737949843370356291988373595076753498147778852686750219918362540340787123660974396641887748850913607222984456583823791419296608627341971565053453303189459633483257692310831622874974262532156607248954527830371139292096411413751240415792900316694175174114618376053318783571316588491317294669783624197196043044537833782190160645619992437944958664201009605271121282021196799112899877623660848339465133840842242409172794471566155338984488382234338151300285218184663691193511750898789555799947485552829050073921402028425705487198685109506008583237203200831874775958429844931742134886330106005110502771753300617592418044934325802963883393941733855691371717740963828696351360003695737992585322859335597877923925137055515373961006717718111509771665063236249725725612159691346126773672181008374889956910589469307279864430327814356885546647367299317630750519982027105794775121438502506097734870977608701593883534089713986835162167975814165743200555569992734531359003687903491820684184193716347387548627765964065205648698913076498334639229267095913199260823571626505194006832013270205975767090647125754814603260653629893371494063890867143935914121060038930398298888076449676658823508619931916600408914771438561876651879582443853361898052385571899578624148705920837009694904844321372334599933382830958484963429751429254094400093440365475314842350122454089675842912317059953480469417388059153537890048986097179102065675555296873445722379875695229785181585382626275017750378296927173000535894932664086280509085196257258316671266419232574425720344741861845587564442246965244770383400872726456806865669336268370052768587575075775152841970952396626538030895125780582817804422950565308383171930284748995101151083059407697001847837125352816906952355496499820289604863085593022815448345408911102086270115549432040936002300077597479634548955276257988683569593877026007387541000066306106405812709739896949287526672867203545673577081299566862257360168880660739012402370694127647452331927853827308218763276269155030661134126237300368993583372765622239632755837085984794146333826931573755503899015732554437239379940898972430895138069428791635335254064928726630343293996821150942526221915198742606490440033600212879526301090268590397037475327106272670080491861800688888096056141641623345186272695266982681370556299623035117954567699399580801156696229194147427511567424473979679079542679720839201548636123997573324739124665150956290595794541434987014610342044790944264367817079119617249135688396611326671689682584536448291980576871956798062210543318154194373409333592503557294095984480118656036769131852753655043517906390024962903393719366302694967433656881187843164258366286334560990892393755491885449995136829326032903427922004710851990868002514222856854555926298003797339483917389390843276548425175208792155109858592206355739525276709381246571976910815478339546412539912818130893445121587436960244228583588309722679087391918902984187577215115163754162579410245442944513158072631378604515670837120792953872690849620653988220819518573005088933554564408390766476652397111145904008759283244844527412934939779256802790409514867293226432882644529883915205023348314610837408603113713409388034949430032020162033494709599926365679863037597290582412527006422387800070426012827993304429508171723417656454846372025328703446637621413056660252145458800734826720751393871155627928735658622386061100631501828682119039774436233510209238048288800818800555535475392694245859802411023841614148741376258693750774709914399999304944961160004130500211175167591804933556805019740247005199657611167461071762476682028109509586224484181383597829015360586284102821412750979972240205218778008763577426698492228443927568833497569392243442102805498342892042310928052906564525418918564438059677212561022494758977133790324709737257781442704282295579554613402868803004826714585045339081403946088520006748688538513501573120127338911061474259835109952598281390734854171383658867928116327374050052822008986053417746101107889764271921037654248047816488913502050434332841211862134912248880124519715805678901102332040699195735863047928557552027114467663869040811875365891196921604976106984175659928544255383005204463893686379744376853147597462524741704861802027616312076932906612765046085236386543824752590350285589936445902915146193231351868420936681675238352165067382832568360775721449704268746672547865539106223436799177909869178933124457465572414562511720020527646336898233090121768922583457335125194523293116546173992327407346891720939288125704615024452761309169328440010320344320839773304415458408514947893012156667239912099873904395319503231932121590450455555851848276290068276508480442084888576359521910558565405693989228906875064205679591457860784821234595024545769747602788769530020770956500932420719857001280460814967586680221534139298859780093662200034452464092958598091753733164227965945869383485907156180624000949090794677152027800451489373096692435247158779381597789226081651959543911356499747884294742672279156553899964095768849903296392907281604372857553831608997017852927625894494190622254398934713286738862327129217778838616851940554713732725827866788296861990712177889986679179133726189655019631813835664624925966418449253867566560422619684314740972872719780184326405406274219705106592026441384877305698790829749879582525528683357377736356074691548918057141690578801378431983544614035550420321816661570355532162034111565801713371884315347485488243630287761438731457186978185013934543509835622179567218278840189945424750617150815064069728330304573351107904581288736403000622587995759266544539222056894083138645993399575729743695714988287073161628192468317332748275309129625969183636386937467954862470789087436510787443583472728964563290291280318609417985201461191631116863836412735167735365855983386341109754897162830499164347165416180214402210740391049540882031996874320737094822444772538781548489561518027066961294966850618874964477814210019293560567416596268778694325791517836134446749474455088252597586104610354432860290373804736949223403424282742668252770508434109555007173411146277357945390055835511011660838593770306288249656313553604307750669750721038633597326440347358871724317918590591258761469892779737177632957779491046304037064175380085744995574734342717011092809066619518296665025992960180184364098952167877277395387508075656904071643758432587795794874816930278746780815365977176771814465457442286017717415978600994298980318854277409439579898733651943288970056231177002366119871606114489837326615349498248888901987929961661527732998593538928576899496689364856239987488361191095640862908613593895188334123108296308345439714835058258648206080346043152282479057625877922378086573928514525849669325846864393671217021030400040136393416919009119793238041562441614102782507487967467967437186316791714714625133886059786007880410863103983234134743103100626432695342300408299051959876913323077215812033532543478925951654067783294700094630236985239434339421186947880000909821617197951943359180449626445109106123380107037641925100643645252357858202208527231948593756929652308927585381826542028077441255896391699537173274899939060801274087653314386229077186823540945616046917880381858955112769415173541195339162161129168893461353380067369426202209488802836795741602511799939108191873981082433708551590918988837523575496968713661511078291185154751940367992372796456220651874851016683058312560141422877989777626673668308320094132684544509826588067167088638809989103956048072048315930067110114268380559620474016417647445231411192243316537865656341829354623608394259701491882562112959384996341127182258536184931177565688642143561103967500156862506679774074820684964185631345310916921021794337203559856991966370453007261007048800782258011692130220847517763199645854755212091130995355289161873909453762108321466695872976694633638512620547534227189507411463192393905827271747416513829816797215121276974704254443298957275930765961338063364362661292634155130499314351901228068686429696139436274949440974307211172006825027660350981107459686708813066684862925056358551191042715815853202136096681675278410062058373635694415674165932972216265620377900783614518454363653862699026567525368644078520113338486191439187829310172798973178332334754684378357505445419154771786018738192586301560296848183691216469128240223110254286932709648825014799843627681404635830268361063391215630266416947820478802116472152223751948906252046855240117823653443368580127850018617000690150252487673035190256695610534666420985988891957463297316178374403928842439121867150498574907358166474717608300822657585127546726038298061673909170854911375095130244329728168608360069709221240925825329252812339475892191260574661086245249639036077980021070428798255825520039050596491132752870948474773226043431196458680612787579608491220777121332681816891710883597022054930752172982269361691748095568567850749565695585821143028464841589772554190080292714822980446618721536559461468788375631242887825267765330558701504790018313805171035618065545160227536345893031988989998322449637075929785618383564964474094452179459604040063728314481713913085513047708747341194428836660800290719522307190932100361196320670972840900846087734071854546089628756802108004269434262996608523340973955352065886150886549955101532594011920768218502747899035810712648680325634281538104572886705122863846142048349244691359414368781637101969432456906443369683172217253058836894809862157321577340850427059100934659613873881985217987651356819572940758736685254022682202661481147629090455948416856697082334984360251572027062583375446460826159723472541667527216924611150225907396251473081346967220641934505278280073449881174067913071290833750474670064740859766598215384750428958130923209000695022174910435614931625574800106349754834372396318301873913718157229908043593363232868109648112493143981235253935936125213946413643760154518660201523791260312916826195020215179658811072144883458585769760589312007520989854846677345575936303013772567751213744866278055916205545941257041245663072564514448964565419767670995924364374080762397540796692158456072443843563968064220474345274570250821322552991074360079673500348855400720599788963094127630582436641178272920728748630606084530177470595554226405368655653889043701544842887123106725833892488338348145807520454356131870134825923492740439806690200974936649912417398154243167365640440055786051756786058127202548363841794401173371750252415806506478535010127893724165722575902224199050721997386174900754723010045871434085414708255299509518024690275049112885044328525164608377740176236878528013754909228843666954017984507516503757374443148051677957767468548750279731877897711270416208436209600320712620789436774932972457371010460559746928625375915619735000351912404064157811295206146305728550968545776656339933572687804453598137609598940908270051576615109415754220325486884258826847312690081447343267174725003677914709675700620181700692582620401105932519661136607121761244813024324676466846622769384105697120142642857189143919064009131265013564150691394305633415110842813279605840644958408842493168924987912260437741512115134608771759746948169541884364739274613829210689250348955744205207958569504327277784796181254616330645485482095050533559149917762116432002293114390165160476262714332010874054682303561074981000338516696175921857598284313979691271586687733003482488428005410312115198521246644264002579218890369971794617848708971676711667417796974953345565334504237345412665992117527662531096503404553442537806262355525304805004011950651047209848331127595315362407603041824338500357858292162341386372732733764279051974591774395187616100675122599225121438481808314325914175200280342029625797837860899975764151260384467305303708167345806741468352790855595552550521739191206399235664786630288964694775488312751021910397248134775567304059725144132960305692769941046954840967182564116598033809623862078108481050481037072645699699203571699280494142954559217906677133230116428000154868659771855104463598128426730879282082090483702832912718692797360843364488984303843139661357297425585729328938583050126374395241366380823083792522988961999686992228222738441282810699884409624295955019922550824839060644118199150889978098678157631288092935763960126761978535900805514644350829888884743139251952331745912309743288059704510171447725215716247358203947566105615547147650620261042079068435851043829209145985561084998441858776806240387960926183543083851107130308884055963773382077062056964594692436456613515977861505476371829072880036177030551371416476223563007156911401007795654014985810913599812290426684407570501188943639259064234508355845680396638233120062858850097454299964921719458775469374298093863134797246100631315820604289550896421423961629293853764906126003583886870456730326471366971516591657444217240666059538999790776664170280015364877594317115351758724167245975138295471642828535071882506357142144600439965260643224048781425114353948772775751471235959270263101265145659400098824465626120469549439995653194333820689011196292144695646373591958805410111478176183732989896620510869262690892206403005422051454526055133525390930688505403185949665116345320466200054424437067718353251368934019715441003923237808459880605974508490742190524083396631267783694668207125812582520413400053001879753201714714744428954962208172292037390291883471732603170879796244174543882097701241665704745579735468148077899964989588965695838743527602899271063413779842368174011979109115887591225184304459482296643479693484870764358332334060477552763033704482567263814474907477152622704590008255822521811446100043707911858651149291733430030557642055566222892934821874978246666373666797623824344201750691800766057084341578676216896777774270447006731245904356900562122641745646969329629944587301876427994394019720470282311146015090761850470848276030911050023140858774516059759849364384490062766156289205799563108602813960555063209925860239704653344490690622240332965980920507080013398423403824833202583428765111207811271683075235634529553320265427099354623897362694881465334798133374326697526646268122770429890723869681875665472512529607248369812688560764882150705349144090944659250585628748779813566401960635586570256608442546556730694702783141440255959404795371548084619634583428061452667596071220239882701256681835835602970087996209223170033155995679465094479201652383874482667856993406305075142077821456508440430627718897704236536784021584938043368775236879385829284746872515064639498524726894875024387531677310176066779081761059414308138642079596256747318588531261527339036492815406306274855988157494357219022999130519390790947352155974959230913193834630483992835646838137347523162458273836151419176272653448939344565622654584116683025388470238929714658850581311822909441281715178354337435535273556858229639702882199621097131068929612105857779957319454323927276789631858668208399655686069019558308522775763025273562451868807437296884789545564827945022520706622888369503056290626118294802524387424885543109020461081356798098072102711966854028932121654060641167266099556955854714264364371929241742582040073551818006103591350835298329174448057937598013844303178001299236764274539608686004191855852483663251364643724925462992535154745113131552121395321413605435598801258386823725285584100628427708378104980842664335309552454585089251189775712823597565172427413042245429654588880873895682969149567747082733313573771594037840884042647922372639309176801813800511285076535101632137456388457183144187567817614242074491638456623449455462561791093346403208585723915134621712301872319855775799213362630074930729112317998834747467991657876155782460969996892968380952327188012260858071773817081405857496856073329402291255084461010154274659450099791896021743836223501936348532543037171351156578376533359179298977349065525853504283597435486888304598451339358199268316769525766526593802242702112955748309637031336897480394745407346207905068591327953348662255590218268517717329009866223979609006334167440203782668992043036342411265392844841676706726150827830249657991313324366968295693303943678121962028570560703596054925065372953396714293754818650999781912192795507324053079490904309279269494817515456210287234739509497702252126404995774631592348568783179333127689965597003690824067129706029881818312216790306787838344973852739739141621456911403059023868029024636097031482410449108850114734045335207645659178984808244012906369634738599403402365280614833807931457025537368140074703752998762198855457607438081996957164943937351868985039602421099112330694317055611590247399039956655645586077435763275940766540846999216900818829699212522877277265104227125503938863747102466428137565630229409577005358907436405434651067420432310480563341192191932593831652818526326619315782545697589321283843666980709904692528708319874200756650649501564191699272833353802886237841260956811606160761986777430588240849499176602791724524975054291675920678645511142135787115168512588978824676715320027079200541822883043750178396152762100255430522803307368291161447876253969399088695607733476145369009647184121480124070424628013267677958736208605702139463665508544041313915412817917983470623682913499404491590826953647808318851163772794292425116681683867287745699325345626219989434315132583708945285448580028038585600109754869098227729200313485689257674515992011870694280194988051397820968386708933100629392878011062757149462777053527427919459601382470133287762722370816455200320299241637085622937268864702428561415569633918466963605956216851450643384861154493373347783909558613039166159951440941760217296423947005989340585346337687457647400398449305160223438265922567007828768874179804598852033726557644635522822609449918404806787241291370456031932729733748078660586717546708845431507179685850938469995374271138768860088236125218984240250567360974414663684207643256010767664110991352685320527251802022199787380776693358098571916448505893670886367699396506616784028752081602101390103785867830417253263461344428572312594651744147071236116611447296536038170930347935282687995726592121840461425312432873693309095224040811476278748247661987075516773122036388402342540973944045388204180384668218285771885809023163511379296504930123295813333087438612107734876127482958061884335501105992963579987405024965078592718662619417009100923072644061428060703849640681621916802042446603840913909241023264342935277036357890745266645566066425196239730824611100351006280629607796827412296477593656600819190818335284697191591978713956267526849421343425177867384335088956362617479414337161871353509203477388291372881058304388643756943205488665318325878817171357267149440205244840991953967167299617537362298853338070334587962819456689208623843203459106389606189294377829697386263268966262166564584788087993304857787092762964581497120038709747804966549430702257117567682588592099229509791919164490577118253226297950218565563663372485172557968931539656529958395041673106487433095702205230641652929018224531797331969102022440113284190642140252533632751554631020053629999212438959452673448281720206896521432519582369147716903580567254919600606156469722083710109891016213792997945981002117271357767543523287013659443293847513437137586654726783641588413279142299104753212056255901354973434853960498306273457406741602454954557149502189218497526039755786666524190706821204306750586980627997403190510449100955728556695881147284730155298046567516407008407346443552574611687859047905978038150682861351964308226689329033704666913255252788455626841075944030283766164344856410417650693744885546379227566873114333584559042300035757983556860110389232422678600412982321293725629941142385823920139118594354792701173733497568191814456547253605185388164068766446596034629293064390231047756562693457432501972635196168224497652072390869005292345588066746708265125757222007617689475938745320922544837744971424215961015567006174638038747436825372642810830254212801501216802877043645842550996253181320647733023862525311189185302503226607059427383989699900923549861744022532273465391796810272524220300016603877581741817175187008690802681890862106075622059618237815843589759097807272677353020271465983527521258400055429066461320986475428930573134357540545389341711498031823184396632631622459517621265413633011722038889895226602008033858982728760597563152412438924715220676280456279593655169942157309193885819310739875998368947112665546652718413916748367155449159815658174726507795636864734688507350057499483764747485304747642771277714512289926167617107656036107247141794578687401343565967628086178787328831995658036821695378368021307888092677537491594556603103669133535485283679408274638292097305038790450757727359233296613124129965894398883115497757808592260613850698760870031769706455927054947789489859386044181414676021469493108557717002200455527575780560266210462565729657503792229261708812809756239086553730660547147477392939550492840379208670450197964521513129963001590755384855669656499101217733940737625765610194073954064351837212427734247797007740137572360988638226222930856123124579653930768887737742362099082780272619954308727819939595827854448899983947700653840163392825839185759008147696502668354659850765886762028892884780726693476240166237790087618401428875528964488305531973771221409531221187986060760129540833639044917876620355736326250881950204488642183648873053575915636800940416867603034369674332131583112675179622741941141995536038244857059486440078009432862002826105618474591324455311954122420158215314664960094454953297564973202106677876187108140276411902130646718902165684555562759629593868621922902748834085767190862454724129149119219484866109727113250118288744736620532135032862393412113913667013058411898220227002438771774944674465491319701913178184475144275582332811210147377527028650693889804699620755264788173538604321300177281113046375600992089180932455996466441273316279034505782174385680197397876008147972037903852460910015079961280207253976071531980945359171205727083414621286474453165931004314522500594597715073324497629130145390260225765536028031132897274553649931863748487948544834412274295002229988363758883174904440615500010650346737268306594149080460723385538374645407580975063598781999067273313303516757816254280668909013572123188943422463804530142009839393710879352409489554112569031692805702484105401673979659123526097777075529132183168433867527547792079877729695100291219678021571760777970143886843245036175598878545639604141903678600259474097375545321248089040068959890892983431023456955163945790485924465858248405802520060416606287742586832375487102369179517680804083403147418152908899829834465696354552583872738142890506269083427327680354349220205922458531280540384227575010100756432139175352571175750818989560023428797477569174812770997677805398206360235763153929997939291412003149155871486307006068082256617991525601087937450678789752773534978923412611896673725639571414264429569877799570967110760721812878560021936016617344273550351611525242228101598361905005644353825209556246902487971782723885311329427667177584004079999291210826385141285765951863054419206639464681966370833785947862320771417777137459877535529962036429708272063847317039597048507009587467893972737083807786889891731703828245169302640589305997000095009306284891239431445237677587435724013398976549791391921541289283385102406713801992049338701115018351341214691939610071176949277597446737486517860546573450988178987347125649453545846169155450329468504312288376573170551258491034729089082031693745525283050945589786635574408117462248563530837106419108705713608246202979085624053354471313694403123773872974337462611794017234866521322698578783511489415826102575817827199609075843614098431212220375575059209474118846398142103410852431414586414339947432025795604168221848950052512235095816299149466125815956007490294777745373557344520474741268767366478489711903065562981591270413311670369811867887778678349781582402278722287499143471820760427315964341540214687499392990099331192347514396256476124133015733118922433821203391737589453820742351386494106851213507261350628524178395611412992309226919952525014026606518189554805370600868997660966686264475850103423317025713436106120198231031717467475736555719833357363654787016661194137332363016841804670381127943458155177913052231127508159968007955823678596593828752038268631668804553479364140582090442444312378413224464324009698304747426663162851010822645752235361494582183380538080549509586822349396346753109944754394291874835015207178367785655253289975204535307230635588426584035081028371298005908318322222821597273538164626193200151265379348180838982712502204436661728511910506616039503140431361349556562424891043499839473351297981350632652526776577579749529659828935946801855172252726300379944377128063411678459176671829090151544552691000546380592522915570314606665642598274328027819934310381010749232323614926086817797630003340528835267908105071022190312364763867229682763638287515056901169514784225046257787392650933903348717909832503496993287342703590205090623033261806836480882655184467845303380833369845989126044221687224601096995571948223299123290183489931578270737222268831232802424890017957295495660693998617530955454116323306911475900498739254059758808781483276576053947676665137461819213972218879275151112112305898656135862425204012827154474234139705428758092260720335102394855376365090886289989883644324280599533680718550078510098500281885162264023930915855751475633056903154585962631102313855847033803586326390493528156335030897885177787699923453528745076196052417093438230237045100096759442484854777566659674316206624814003615746691077871272881523257071626999362232382715947924648209090388070994060097438082149522350846520104174289193625546931481880330287611577310971599351130298877073308018906728945055867719719320499128009257879465709658987555783709228888223977851061192945590793009219546036277469953622710086791669327973354814767734599671763187892080374322668940059808796897069056544331986409249002814718260751187197160379294784334118053595979677058052461159009739559020766640027757387613304233555445661666110559923860838898916304657952305633866529152780542417463534936591893391797315188459152047668569049285060311100317504683564039260858076139544081142430843072616957686022241695912191209753947443725603645341175594375400081664598697700513764075650834635631723311658755361373289739984724119942717708127827366200737563085716785376929769192852144890222221434745599185782276422388791235471828080056817903260020729767695962060239691329263814518346644756457001818930649269560663372446114711782833467298508664800957767469435783152356281915672644589887088372822936131392937480537842324563164988035865318464192201495356652851817576664787092420396739083311090696922648994581005729157894968304080966825549685203516623798125074866585220835481568650541973801808252440610796366855933280272678418544949318649934521800673711277877802322980721568768832824255142296919276602944298641710685209222391985325838162859980268894898555239503981410114697063511606666059015051467017234604607339307108571804864058707386565850736119859828314951700380208160172331319432735671207071651816428299892747370384922898648918903264794157554601349176043998942231941952445736727806584581860008441574107683187336063642767180779160426774439779700259318661391049366544019817060854434922558107773675871352276126547490634252597564197300348329679542633592430805233653710831518707092650899261743972133587885824879980518274440132801555375542515844919586602527178385036216668090069448676241940084400097766064864298215777004436486254921495538153596113566039896829040332852590772662620726025328669723034197345565259746518004077934479965971853377914734132341283348739188771374055662882935679257964469774311108296781781123123775498251305988480619074860331339415337889657907438059473942677997131756251297490749474143536161565341790461671183775298296543000474753362753783589606741748617796080283120386854151504934911104719695444624527433761939525168050079128516701195691948984652040282878232442976461367601505746273444549276830412099831256100621788869636667840921556739341838950873725814393267171604066208306327058700717641638943344032195216339932328117872954748949563678207435868921620782836310272832578396963636520064812128165218363224792963647371440899585123957281053188941296781594269230818981988443003181890205980852694669006432610931928291418716486206578732406417669490230827155346509453872580702120468359928057180770425824197862462196853861956122770264231597640518653990862553481567384623991601877313705065559527675618135799495074756022757780691945808540619380425564441839733126828682435404873402898257818687957549969695437121972565923339925145721284745532832620812504644181064750861081499430682976155311186707198832669294484779592220468392792801322764523646423624725703497112978315373891425738045350227499669148257222706884026818231623095144391901456770743804654802115270781081808609775212965839740824710619748114316459477406990152069950110147782249868770662172298700876307176450607752225637968317869215420726255758382450758378392289574485252918523689789511802930052794607074132680610909770914092123177759201930012994252699076646246510772156006750574732132651815072309856798163988243231067858353614154432649995588597300381526948241104700640724644582586497753883113255372060574892321506440142448097150687776645456526179465875697809280924355697170687543831686685453730461005718102806976022203265251310416242382522053711922851495646986862430113925108918116284573104970821246419119508311190248489523942477104395113174357034128114068334567653846414356279937718822457961615994603075474682563589756255207165277593565672407417518671805385784748182134318222762248420961205397876740533752947574463848251501633361451509726731822508933504661248165632491308912071895276836600562199459895572796110972982913802304410368569802133326683538020775043602281018131603228841657248350470847067798678505281912073638812096859849295672678796663022143499498814400535454724333073342727376313382814975143075794669046107603102124736788980925389332850453029442495751281825724587441143187876617865692459534860462146475283822807522436364702903134996610977168533660931516487497660774404881367404916197268964365047855726397709804635343974458325185417902615433637227421354386372420966216673205620076287046060023307436621548057472597045968535826136828970899734405695011861007251736625795144911270726594864565769893551590714203344584161410907234915951501862077630332129698613984715046727473305495659779167168396372752220891580723287304385695265341317749227888685365062472316170249264913611970314147704297718366875916791016401101025474087214163439541216320392225955346629868993472086536753100820546586558915440843448420364731868136087815909900823045526067974112338690053437438510926947238660711893225884763733340490755691092573645599317959426850151339438655795452811043889593407577011657897230082057600262593049918803096675548511652759307147822034319446719122015181278588488993267224173699362390119818889874779581631928807044890928053495755983969972335492657400248545298564665748443154856509596174455642548393991389995912810065401374804953008042159813247937697505909089825687428492321259825249783136365570314197110284826752008597554770881948245160577645400598528744492254088704847254884484905493407139323237898215430930383983217349219633467143421283420382353486668091186625569131474372766119593412218032012887811378848698146288932360404263133311084828304086463588599697705852830357553038792523481089340690854387505723670214693623293656881781843269799309338885926496828567111768486991238840800960570243920246611063853991568237775849699024377715476024674612540061102939814248025759219086335860861765298703618456186411732971503711428750485799884383663826987041697005686914512919081809944441592349944245794252117043916056011354747413596432353779988331458631752023256594987182331815425749532510694299795821664063923043311303505129451901500615203415275204532154599677538932553344070653534887258789362195910543142131573515270576833868879728306355119155528085614971574595305001426465926018001218512178044773091344699645477817054037326480934419968985349670882088245204598540745491062732575419577179843885260429480056598995410249293331705642022612633502380647687066615710038457766301392435879988787704195398588105377310942346512383270936480105303020175662572318908261871183891153772203050356329319291317237108756603723117047972644349373692285185776417098751133086039229964897782914217220743638524231676443682964400887308328727236195896501054424196759800710606720215938695469778147528699334786542636212217867713274187073384974480470461167172354190388300063387111360832772494141210628642186135851975372496965028427432420021582604476230225097501133856769346361438864925001183658246682005806282882169641138175085005224723632056045037608450668230325523597890412640344076766802844463092448800350970842460988026009573756729998661077719062664751323147760096904971800962068745737640049863532787528113658366043296865089046112527768344328411193859270312875287777004017658604573313520348885569133214151048500505827001095754299833758976234128882688896890224524821410061607865196805009614208623302571507728031212449863592988242416606399353603170930527277124178389431127396793476751903235723102928108726785447453935429888930547245712662923389624262957539103507089390241005302239170785870519972484802694477067940759970472958143399646642608695484999643355879962056045915239406450993139600300615263210464239810021893715580429694090172259850500747273130010225737100765348731730731988323980488561788941765177658877213509831070323031437717522907907809481675567872919609923085113440676032159835199298380363216978573950392831845766637940029988930977547304085102027166798914830182686298348008857136162477655858860322803107666797107732219263992155173082792308917955672041076468593119659292768527503574358811585862983081560321469400580725430334123735701803179485453821054653756754274373358344347440352089980818229598373247098039617733896699122172824341454456586328356333694841360922062694742260989776018599061802855932466049573232687472403445498605398286499564093599233587117707065875898799022239327705523428966928997077828989211098476482319784114570292765748775453675483438082283317555188287696177278699726386839660564915852222630379610660983377582312411076473908887960407863916796046726155474466796776486161011079906193699222018004807485985109546826278401763436536167840159059069214093039387084558395715437040179510698421347588664825823499635672553745572077806336171561430149445130381653840662593191599711637128985056944804917725155434569343970106880951704911108593840811571601792106010057416965272229300571005723497352842701041936171476185656376799008820311385938456803067052919313024853767856596429509812062987685309643135563544563286615291564215381692485350442321859088795660835173072338407674083990499102855989358063382532471278527909272704098448718279593763152328986380167198926903012282454646503948703704196689022231753780760329803989061846834514934514511721210375287019040622035693641531139224393463591075991137889092937918035280066926803531917980243496742401250215600885152826250868047510836244343920080650936331234505375856373552893938019013055955765482748393930077174818690142009507263758525924589047970485280059291478409003159159406667122695473899110141006710409710520279892159974033558373174852353643993492309666163092541453094215541105854632450841573294981845233312145686274144886542921669987887940966382568420124334830790837961851090416949562537764747523175370550625666078328292200176084083662188786381549592334726176460102069362835252732494325256023321568483383337516067326490806212028227836521879369908565103677262636900641662291425017974511072792909374957727662216271824756170854123292373255119043444785731989190854967784363491783084417671796805256534461428994297624588119399708931996177585551065769818023307034975917802743175524820366821670932031693194944976864882100970280264993921138284493536144283285542191277905470509812261364403451911197940899923938766872046357314930403123269763897900459189548706587385729523457657615188446915299388238542724334694999961749318201309289588746010236121441304024905075563406506117014592364109169769413043195272936431220006845822379963709280492248722888342036807597433490305454113445443182977279722521215007029393961996075440808737628790512430792829355074501060413487056561278340861766425636602409574202047774618408199065175039412392510393023057775638162690275892218771504443503574596058376512195716604170143808846166198209220325238869366313851078124161406355037040200529556214552962545598603714057880578681061969232855323317883192788745848159826881003566323221268903761510263530107810185650499111838225461184134642238714674040583707198986031293985891581007408594874122026352629720924541280979438724463921078741441524225630520861205961598334411458761360315327428978696597282768192245010264981198862171224599329518285169803647749994203948218581332375567700682553300009598555642046831168639527573125055672701812942597455968677825379569017396999157052804467976599824091635078962622680142057043130205122301499987024962811806121713523037898006463835121649792083488036070310626771153008189944247250072821033363501391186703195082994966361693804485755857342168619710876525622971865662814069358597609972896441565756571550372116901733739594802062425926386166377824869446524769992056607462235608732670105971889845506554832216183352788456778892204606781934422731489207424079564271635941603012843103560183670442038038820560258080239709769101611333147148537590468675292242177861409652242788851111558433973473178814345495436364161970022331405980088681715987560388265025214473035171157235035440597051329381006062477961176646529738187396111132463520158036470657684868826663863108122582353740586463304037667785655636861252219026535685249134816062097187284954235289149762518666508003728798727802786154135893673649534343870104616976916886673255241690960019570382176761986255979564871075688627995636851947652485212095234952229966386978554602811281917859016965891114732807043636927798073051958115627055891216445068799846860223672970196432897426773502586352966143718567880518242665811990648650318098194036337206571800187948951211116342060129268929244123225938979083591569462980932322392704631056076154705316909590698936388410836089222484633328454920661556816290835036134356374934715260643291345740844004855817272229500621240413185932672293969231110680815048812110376883263761354333332189450433329374751375589684689715905461770694259499947649480804669599334228239211043474024632494946134959458860758141037529008127034838892827544154509357087689411420605208126333023510784943639961181890760139104782175727272610122383213786903159447088354221080377737490331281442739160952945015372534425397345341134084925208693607213575265412950138622053386925247309483142266224653007146713290294026791848708680162617254535605711949870207842088220825440741180043683763028789816703942531303417706245798243956424059430520550400431477542757695908367273286529977658029519148109578830838272325537638473973165607108625551601764795683470254451518372306416583853853689685596658845615630715169506117670875417014398802593174984286848155442393712131257062995351636923821384432132460462247190142216214206002905042374903429248533140902528409434165399662836385543554433732696332742616888018077113429517253772524361696179599445718680418735236767701605937364706597321840165578341762376865620190046823706259249610051167191757433315484729576347311314748993724157076339902106300009639715900117093239955146544466771641310117478945363535542296855155568197810669804747806961176420040078316565858043483748704324214764581071632389260664647705932543953248957070906248891133760989778340394043053586385227770843603473876207963868691774477070078917014483768925234947799394351229812825969291661714044791331780087761061211553160046350083375573235765327206429275731586355041110684323887174146311600138740426126960487002461694087424042816467162653663493185913702071106609623383749619336368706081075791680791896297038948212645662277110009795047290560393529813949396597760767652767959550761183239813167926313198333483790526070043706572115741659642423975654871218283368473397183736854621865484250181696966383664640220268431596348630708565549377135272033059355950716951368097980115211173050578785528941283663773304114987907355810867106004391804854254356942970576308058935810513698647344742769724356295102216150627074735404111741743730914624660196965862208338450328218662314409367866798279743628013453383661928491243470123014459831557166517334546893087835603875078334513577599882540830990214486805805411544357922623221387226207659086603959519182400129563600665817617634251554023165984514961741825192652754242181026357933652386573670929438020930981184601592053190205355426155907949902059305566724342970429128587190769142089174733756881278782110452481374258478576177565319646736410926755327346355552375652527727599434144432576095854053778715294934181578073293065579544952662871451631317428886925183443838223470448129443218961240567928111400902724322559496250833408672115888683025253894498374707898588425825133386148104368337237623816110554197523223487197255068702893807816398564673429515917757924630750308108160096331665242782960557370328586275924520508987101149036896324679711963898353760389573269235928921194729017429739917676871002109368755907299650795150972799792291019894892086803229031945962180727109620424096550082577999304107724351181452866209437810079997128633608586247470538860897972320249562497145109929221923854206304073141549753867433932154247837730834394258728682593355434093898670488157558806193433643999915169305137502453646954760798956822306621494722252600778778498498422970077107847135509210079996855297379859425781977321330837237762012375451653432446615141061108407827513916091230294658209601679046288262980624750413522431357007872233708349514959794907616209906600564492728713788332899782465902202145147270468703500194296192838280966077818918929461084207269725895275467894310319916566436613274685253059487298059274093342798836121994119006443090140032895674299307371161816932487567223864942511429602356191299269223060947755958256035538208443749047874038082409186481425397559679862978430404522869323826229661139163039964846549154940121252484067873954431101164650168055980676346913292085785978831551133158992441739843901850713028743898189100873172998918774812678230106472758113701369970685584271851051787305844587157169317707480517901712704672299334834801087642176776055844039237649780906048989981210513711077732659789794971417848735929329872964384334342791259196870784884393304352026055670912830623358193346474234450543732348746562558676702835349816946631650175229838486179919458498120934089917995393589452349570906813258189700623348110499300364842333516137432860901954437003723395639254446180284321606309937674027632234707260157920409952691482779192371789285790766867318132521135193899128594835605808391926265485777448721484100908335236749854629405653977471426958261368541470871208512905627016730478554988034967589063365459195312229401014903921502160438167624462929075068655889247920490501401022964666358885172015403681133130755611277805873732885902863279567562265317195670540822697563891838422575202532212178593479849331714220760941376769896639276006089790126942489605079260433639737208820087115469611895905202445657784295821014939565647073922620647153344611658181024201871975428429185985928237889860496119224280636252364684097166018259185879887988458419828494535689509929837688498705646240832615043750591361334106726679296144718079958141572190581027449071028995748797789033409463283158408950376729164003948667690431609783739769883655377174078823160795055373287000995165236418080500098214655177006981486618145567015424151187261611156872749087899127310637489450788996957367290403694306015021481753948102528202087469983660898395680698284697860281135572209213362859193033471308643211128558483621419881230584111688854193049292526549453659617376202300387679861640315053735808437489458163190851353355993952097492225191719845361171849236428360055730020256308319154897432922881299653464866303523816875033059789738317738526032099967366499610389236124973331074587648404667847088606164974733326673173911110080292527459858670752654623824563086110566709179749696245805020772701192140520612115419393342044209311949591300281625720504289666172861587381069878921341921198522442410230895855502901220894887844357030791202122919939522251223102474031053382168641673335164074044183937991189709981655725206282333772697047136301669898987159717152111426406483636894917809610068804653723620292519794205087705269985391603368936320466857636361872428422807106773623073884488378879847093184190812059050340233423160010886294942180381149737177271205157949344098005886470942139952020966395869987035364251139352859755121966863645719353960907168262911489767995325816236129372515014863704058956129774317272522416989375583856715969609741493594362472963005404692061921370423478996958238121098390323017119106166585804510748528962603296615019912614608715971568339840884873824536816698170872097460930439945706146457933872711876187185951457543943885970036682120585590284388922379759784917207238364076527660403383536313311775339401854835188033929962082121795407422885967452025258451918011486781040807001307759768965214338720334230072118892831873659867904909800882253311899212486131766180592520586515973887997067941192880826313943773720851348207257816296111862200779274479715492249149028938314256979139873766047831615919428186983204912371220929073746882964934500698003432233755167227391811589305386384055510695857854713693617794679127694734275617277783976118480290659756001584076396548898700645594023331205723785579830408131946657549615420132988337439629122476172572858729673172071185184210910837146575851300594243255694355221584743075590697475237238448121286709918709539453146476090450716924276298172212083253359656569412565566110907888146369753439661182349572298092325205141484504360095622896529645885260244608195126312989451197249254194182279722413833614191190093631503295035643967159789876675432191037359743078760818750769518335748048555513835457434780405365110977275385062959789818636895204334862143160419664044847885422429907104071774899476773200287423059226522434593680780141718864082973325824534872145968178486095466207055709132642910519367655672496886415102308507017455721538569637076643291917903393210504780133486766618838046355602699268562765971700935874403928483150718328279451709789257609249006899861632702417737423326979802186801449107345398272776020065918395586313595707089249511195547112057208424138936382441751096424215329959842687723574072672810556243205223224227135305974644941355969445204916916694227594407387701183885910480960147568519897719288363628403073863786177475544884279899052378864241319925116523731538214083326597440174480255814260367187940182701879659335503097568464663232680835182575858357402441566293537691236493096798880548199904469634244842424244707448845027060229253890140815416020147572556721145726862241990500885306550750633615998338263017162968128471724659970290628115469162705504107160545151613068047720832098015973538327158965381886453512506686426774790673044209957030941239326793284083190321463015380658299910237029693722520784796065576291404010938879101314824103750769841087022467100839039908671632638704425680359559801346656148167362878274652852262078743139239715730897944741825129800042160917304175658966572876027267694799288943048921555083071740786142520014733947111261944941764716331441978868764754079994510600374773953071901531895934316666498960458101951888867806264735500033384699286789115463893807951329852134786669935276021908357514776054100005733604172820472263210181404221792414158189985878215183309672587399047729003904768319259595652251765019253816416319221297849351782311757159853886861511475392661274380115890037875518918726114465518062678168144502217704770090317505545637826386437252504709159611669512321498465179808954670362216294860506025235839637613018169043418870881626103206503573944615770959520625522922802945072552500078439405902696104839058608843295837424241762226485119790387353343705111240268063744500903530102635334494515625257509089225564816238470011198951930911891602927333370692530055892583558264428550325771056528993412715853287263528690026932102300909774996203340593865305810030139264508454216181731312822494013092069023157560768486036104727312866572215745337610985165542603317525411372250749110457456181020810131078461138682920454428192978686495512425611226645394446546602194331234658857414785626442162793253350170686158120249018688362375395681729177489249397742212866967327369597207695729481377500377380954347157653405873531308677283688881077593808661568936369010356132973179124015375454512215810732775529997207776711932327508171193051124979711343300218266028204485085432008989843156574982759357176444539881680253853863354318466705758373723859987217784978526028319735786883277910757430181845048963503554580391284510201527012932629688458776874636828595544844671296586419435492618611226786662350070182554114580767830100521807425387004286003620027496552352563335112875673520640090918446361305089886512313388949675617833401022812867305789741332515582291687122301562882229739654242521770225145996990782315946057311810690883889823937295922357343976909175995035610825300672158193330162192311840533835392656145000642972511618678072209441158279512640333524941043076439440424847847039679818739150424328409816540417866958973233764188879197819829203620198302769098376478222925364435908233090156919767860020403207650571532808208211022294709795727136043729825242266668885952312683825609077627075629288679070579268058168513781710320221562562513668449537341183736515213796844943265772409402685553608900111479282212115815200603455936254416895888496498909500796739567984919383442167382413612837960551862074225582505925514548118335765345601669848281490991071204147761768413077651258005537303301328460760821614785820874372765670778533983124252552904153312689979084436948448641068749698741161167401588517668996958526665355016871531645663891349654537100367823273004252506854146985763338104406386004693572565804652612861999714481617216178784731570238314253155680167975381607865867964629264604243937631859648470271741447854753040153837122535795169661688436790034822738469393236205628957423176344972816481071116567809003780171846150411660057736077820257386218303624108590756932608379387218818306134758458477991988947035398941141258299920570795081575742321460238374419714320040914122143995219518264696715108721690414165037238180603169387969117617150457546273047442611737126790308809705606567400653749255616213269688383504686697604587969019712195378307825087562019433151046634421112168455208915956051671607823408690872029267575369701122363879807798811498076926418423397095324827538434532566945717771122367650889566052022388929988157768357997029269251952225192923498708611618106593045678837390496169165499719433262539895291042066436473636598489743459735199840687716497043444011369893694603856097787009890503136907945803346072981238588652691027468020205984930763570693958387533262735140578758982884073292691970957736680738992820273143360306418595135805266177412590550706376022935612844965668393754225490185583315225249026391492374446564958512913654933008348243071596497294374440854018957624558919713874982091535647250047265642006480448355744655024940515274757297968153814753750274243675272112772479660165249137797595500885243849831227389077280614947906661329013851024047990405406751597660752533639613711000903543224492875522765524582037845312926530775802696659186931598900227135681743593355201016068183606203295668212837358153231597781265177631068304238494324584363564167106402072938008672921769712537691791077172398223174580087247601641761433963117450461507707629315982981763124582677888169212712892499577612940216732001595999177199771847091296472499129795335467018424265661910165992542744599407455113070056966248589977428369214205810860656293173247971892390999846259439552706067837625988113371423241673793001139339344199157629798681952351511803923409490346950484783254873152439094881940893605078602682556595215403238568057280067741572508338236417206961840734753797543261396644679645601762554933108283865371885649914063120185538018547945775550590670499696257597815583075477578058997015367319782496315948730239213521794754788057373433971007493927084520381154224542847660687975119120108855996836884416706913028242269650871097690419993931755551493245238989550545701785094259899104000655649218454794226687692529090721522525983141110327834873211584735820251205366133468916756168885492541904930214850492044961354438834499604656787014819221532291451544456288238976429532128952867944243303215534767500615113413448580545922080477836022695406063291491131258167204746612271095085039309857567941148701029690836134991025680455711775110854554813266919690980607734734487577889911415109826122031515800010810486276437634272543933801297168373012055696954839001976979971454055082467127616962618581988483216965572902147735571787601187201224991026136861471910241122318114468820428547806738414261321034048192791784214361572678094897863064726294980803910355456868094412735681116373744133395266441535351372190036732607531547894460048975789163312009983484508723475905624856538975414476618869682825212436589394589371193819838282662824885979732982571939822982778931265638992838643055858771379441117725725504689436700950919769674874301392601192517781402838977992274118994093523030936092328517463336109383198844297642021566748294901462230463926156007361188778055786007705933176779402786108908225412482268088511466382664645456528406647964519125913129311941058549195569598747157589437476125362560638318551027790714506950777389990604821709829273289656846247161974754925476306095164160803787534032424728865973909169162966399724026206632597443485520253135678459234718299863368968214487284653025266768267547022131688679635803633201902450570599339297479354067863434535242113036346081994859372000589860280053792667333220073788579510386076600056521027061342343904488194778018981617315331718187288690678040160789309850136212291329613852348966618838497960515080331848251740985291967272815754368672334051776286866083488413196540095584862922416976004685987350188602852604359132116825135047202866150335054417999554732161932789202617849150895164814809719029116463310112231721295613189079658213822740478781602888754965697332012323360420444688549471069979766520125432683653047757550325195744654154879224847850310002298962772458425244192558389401646415151751006132401881055407378536511434114143359839348410697628099523486366176654995080003192557211162842321061027398469499653650917839225692481534572683718154730786037234961469377214417024447280144602387366703498154649892730019085286620350613534393313396043650161774676706246120995626544160931058338026050171994851991325818095312432020194114714150679625752719098788280704729893899218963194328558118287513553082934598074082929030314843152512614366892367521042905001018327698149089080480132225905761958137027100593231233213066030600055523563051006537016863288733470227275445436125345646977994013213447713306609797498350399354535687581062057440543772332129917152261805375643440167048858506002760040915041530168738205562590317993150585737811437720678111352105417143185223565755033933548407972130636814551034259330148281652203216720813513367470605307867098544687413773444703802113659056260565114998579431126109802459921038169555734524275089853955045717930429961853735324290959889352701554082440594530329340292195248845234014384434291340284478102664772985208365406527951373486553245961721688448206869157547530922613741350442764622977121577550013166207612911449979594504787245745217314500359933960920706857781639872628099947375727888091936267612968260001181583136568310502538807181238695249392853293694502003268846410730340730014006093381910495487235145353082828959349650024432532645264094179370077054763822214173458422823549621600877140531575334091314927233763028638920976568695536321715432692380424093089175658865906585438974538443512566457341130381093499994295544878777335745050421452178507095908845894068901736396526562007040542364891422085535327055949210873480956262483954814874716427310216446206048080036064013082018937014025750436600520920750325828067470278617149738025391750493199417166340574018184299905885384155956320022430654653739042570455324987498013939049195378273900219589339493847309397953015577619772424547989737077123208145320794481143967203703254413987038279902110248187554761923922197427786808943185357320278375112271366145076117800006105900818836603331445280696513864779432818811779477137547476448135401687553311788805071842819988271688211774204341839959689818649723922608039392801742712930366715910105233647569442082897121096144694493732894071789674529330289937269607133485682447885309924809768722243478998580083943109251937861031994064423860490237736245683178359695493731900448698443588184065919019882790910485959508401977135699295240346138754964658531561380067273750188947530314258683078021625530124878161829436168715379553654193408233189488441073173935291594233651633623442295305116906828160118052017737170255835685750713311160466027821558171729043263394500816744975373725983961673045652068152517015086722421294838852208116555014151287748234653829672317841894124758731542688077835813634356516271482913196887372310117130958519819519722553989232755517631159126817937033746466559626994042185391789166270368364822394259903496549446857724074631904195945852204630202455472458103645508387384325525484959616301900186924806208152113828505997281132858248723474523818158181178414072697233728170548284294637251381075428946624339630524983322282815616071097167566725735110680076582624828883844200473956991722653599518783170973623605941706007242864742561230833033383936860636741328650044671592929540398123426083528947313666939645984891146032245336677634454694271549466991298161021299977952003482961880941705964324553877677829975910302306012694353519343433205401484936311216689263163247366854157092706812865876662368483765312275102387299406231178539924759052199926597335578940110234338012236296390253747133402121503033890930079174043414283168483559447268264242736549431837666443988060739363028594793151164001335530838653244709609443758162460615132252710751342996078465912099655288705565401600100323510280099003068834670231012343847252367843324381509679797344751293682727592773657839312391836268755081888248010287987559816613284172430016874358516560906167063474794528637679749774937372297441995965378111695312510658362089032902946137878551030026798702893438755574365436799232261443053700940152748843520336048740809326649107157743840922457250844043828493085753972212418149021415575520586608896702213755793125175603960186608628317278604025852583479953897497587856717818776165165074072825290544550164877367028254282294013105034061145134662318444150597174024271859309456670162758555861841538404278733318798826202472950740732919465029898142776494954553136330273733895270133591124430273942454472470934441346601317273112639175890348117373437823950191212097597015961456637016012887227114203716484905817941853270705180247109208382764202389599217200569614333148831178477123652655938083088202472415343926971230315384834236939703185690991543895422663019187220842111499931982174191989080708711700464273260289114127735734450623647120363347100521924309738034878987450457298165301003748360565223422296016362064618989512594642507719990050368523790146526666869253474488852469448910922739206371011035021736988121855071117900572752028814353277790445252307145347957916431301505719165480055628834098331590292921670766236468260811587995038388953409379995086525572079863541120534693230400192939945780234201631551039593477441676051658610070208970806011700445223343079455069126185455243848103262994482437872174931719789041736487685269136710035399242432854518441085344164503001418735376931095720056144883224321191331229927840074851850137849675234822604581081459896404895299610497083480440271733012444010043801750902941052264147528827536803524999352065987437305301177108406928263997900732229215285306048920740238167186565999492719352489275947512781751417726970817791106019227865044266060083882907266172032760715954787028798780240373916916292988013022130926440209080942584860388935670422610506310257437983073184827925756698145278555731307263087971797591039503096546852517826838489326406952689217284739150717829958148175867354008711048460475924858485607186915328171330992017197256823188341178389580772258518608397538330201173386407484006127422573709886314878839352431527213531875327540039642861983870477309288546689266446715053030610853824256567144398826453920812875193718554975411649866482092806433826280433519672208462157181629650268125293261986971667847673616692370209988411920244277799983660296943834623103548904602838024369656963652067153710707096730082802388224986506176674335740992104976424466561755647482633034525969726956134303079315909165332783305020567186044316583370082529835383876338196074041940663417343226393287557268397954343807073342159213975412984782164535021975894798977247971312581706304682906560148640133840474114662106907201780060612096197666688949397377070351023304937609597889606045804615591899323505447297203853348453947099373824445112735080948019094675244401622697564651009143034334812049019296152702785319025859380221566609926504754440925006233659657585837067373004366181744893606480234910501217962553937131955588903996068024866661356150182047403747752341690938131693988391926127939284563693330184483833075702138549833190354260415769690803793454819641497057362647809212483794995383258445770061976652068900272709339422763048471042336602351601231821532430733928883122404419536240233516752592018611019727777760141200067666554326058449524657278619848400935301212825654515997632530492411606214766216185426203512375264134219657760523527965115034861052446743330424334062516294096380469836335280943815208009015431253760518420590000233805394690249411277640101308343674142318518020670695642078317796375149488476892538141303471522186892617337915055305965757700200596497755391146879223920048812830599147207957137633735242239475380393951176778123361374428276351560400562103495615137341237130592505901616915577264985989982158142215011641883420624306109628912724873938706376335485992009626435033599686026748437033334128695870035847219955343488639378769741847814174553953702433667364698256029199102164577269379815020876695122658170825707801549153891951331022075778288144337996317782245110485089260517161488320797243402626426999760889707245686759792998875823494547262713981511759232242523968152473815854349715893407237612589814626603746407268960648750655269753883438589219791168579493485937116942751978811299864026918169247566323761853407429056328211894851853633703292228921439278748287278924987506157310910609785486041702777387991621525833474715985277612743302225860687931392303712183519138653178446361749402878252351148857423301795502814553305292390778149086892282856641923505809872706627769554768553429456418033888047930505276077604613008560727121242813622455589611223629912497326750026922750492624026846345371095485812596665673100714894626790300787496631425620553723041949922865154733434199055271201607124563576064110966820696925067916169430356575970866557792279201764855665612376113433126417380438413679198392294542074093391506528440263565225801315799930294885113133891184836558537402368953012728050751196475284070464236173975197722341744068768417679197503115490898111197330409101296971107019653992304639072432096372475105858954559243968137109774018349521972884261798035684214993306818220711069336967028197634611788904992537660529033842244639788711736888692080379762150465867990416859654346217642738509084059695245244635811584913454038813042611794449783357299659447994945990708287058836141607677884451403341190571948619894170205614788158108413590238284517029983440252925738007881567561711869125698544781181003271725942604781397735480091654618179948025120648417797215992295703875546415268671014349486974366558472804356775670816063714497189845682247699544678338213463871311870036256738431634759561680471883898580154666704746785468208489273275796240541891129105191158376268160766532618964748826246603262631596385632161696239373091858205216995944538370030747549539528887135299810469213037620507764741296788474070147182188965112029364922749972009606854506221106618240423885199749786719912742403764506681768811402559536741347089473349513217982372296122221971836337422198767565471271950272800600939446714066840052966102615678000804853239046860236796479170428937363256814935602508330482393561566374376352224637213278734348498492548795083100387028188193691786174207038421849566061923208392585392195579533609543912544005444941048660038261112995051655094570487070016704674984689162279311694475610576534656207246814324200189657614548206405450615228866182600567998194458536478826392541395882550316930755023408725177312836062125904927699843823105186386968899600712446946396682929716810239300030306649636020044197244849981716760343968286759977311217145862136494562579412259032363669450377136639019999980725576504467207460239539962300892598716496463022439857317450278411090620830921310434556041763436279776120609403516584098810373608787662903617331447559813622116481315781786913770856319951001156991071499537785473839271739943755419375857631780117902904326128818932832621494112560928647765066176159949095738624141270239148074542648333415550671180700926399747865570998793646810485121567684361943404539513965174993867168520971673028701559327743801344854336740182247610675998680305977090529406618846770304578822308949237597733995598730131975843719350617082570258278883933739167112095915733022305915609756285986243757945707406310519102241365710018740335306373715329737399627482584039132508956380672025866381014882156837487708064926906267290717861579645123444876613413803158200011471123868965211111205474502010716365852384644321237455322665761384535534331384899338192358386392880446860049703638316279577958257339377525022731029733794156921323241381562151904577359982462348059391362560315131284565696485688178435790957201555972457906851468006059015239812914750030491365462745812279455455094240152522445363304351115424664100616331575681002681963295885081855870108012551954686212003741846863438281581090737735475761956576911821141010323328613123020189561127258108356750476303884799843207340031018511511286534400841330617466481543619836277433565158997875307801346402783354030328521139440384154680348197468486258524029635899166287631951306555780815797034293334403926978365522844716173859309049938190265549348343165925748350746513687199156444793272023098929563575922901914253903928587665243394436987538238917242826202354074826068819073578984241237299280547035818101403465004096113516383150182403118194404306657161037212992134559946294361497292948978299079092751136927811259472298423923069319546949400297244095247826141957452190743679843740462891615392913285641826691593935040178396003365451319850349111895812176288852732757658106369354451829264862362314527542336461667204044105636252132568856072350798160199777232913082293139483748349251451800258784975388167236323188017421808001631598817431955106104069909259777630496800369267746311843682181630155571484026988763966799369082753288442863073280309128717823258895285050401481914978368500608819061319166295586322533402945946900425239892277530219309722872659915640450779194281854664221011774778982242217413094872060972881959981634946237496973365571887140752222106739858573029513169550156448458355515156273389753822444285220408062867228898767540937440078564322484209208016046991500753489101966844255819199896631412180003182895757416249916949462353105694890095291385498839662925622415492230564197844450220109808795334622137261870401998492992941052714122739108505016934950411747847900341967571202585149323441899852071707780971628044989194291501360180955295793038080651322509649357571491411736275129591970021346070424898258833937150757295373228838768884764524015530318449263067686725650989465600787732783328071187170070721435369495625172197621386149389575616721921660223054615052394712288217373872111985605979267676289209942026216501664116675090577784509367995781943130540841778822201377421471779601865808974696643797490164633504326995840068597199381823703013349065553769047804355771652369834229936515765592474115465680236201282419978039128801895339640207114680155855501332124729060151890673193034449746752200856175846757420807222621003452306603046950713991638376388433397868999973237095142878866018105506233661929372827641360095719700365228849031688625936448042802553871425025316017085206799193549590324260466680802643534949507696068003491381868626901824491927726585112504876310487251760896829607846665679702388416430848850612157486760629759749951307344029367103097809641667880418853466871105690571787960778738008681529254957564941758434051139792507206978104699367959639054214745845653443090781296473818805316728655590309112962081610952427627670035002976117399290137875836061026756041842831882082943312009848481706619092187845021471693375968202865535812712148628569804290139038665085368240943316356240222819858053558365670319748479689545623768545312614982456963480920334978963805822264418148920997318655320753415195777012087957621813760934315497781506888324698200792863913076609438069460498526015476622054039546935809284980680426952546844111385456207049321455948526158440682861232509940389437490466201104121720718621540663695153008148783408071344489581485952063808980719350308503674368427527704616675353429052440748239289635343181845899771913280500180649370420590676162300037399772650570838512930400020856895414890401989996175196527584072794118805376412729695484443657111175461185952503183308954356646258718069243785750454280705327053308699497413138703311213994027689199485327875711042683090171209954401308621290952075331744009798827334794723480219825948314164945305401336846814237639315563656666209859615295263354360441334380239460121319523297409219629211683168833997791654928506830846678628231602889496901630990549310177535897138041806908026552716743298577363176537905993838263500354746407214020248668932504203619986013963834639962192571075334780545564086499231284969219534863291091785346684257730676438825788171393599903449966370890708707541578977920397054380028905616257455760401366516724353099430639518180356565854322537156158123993911328407323228278421985507775467087364618082800425300741105004178130444988012863405219388543694245039531411392308777183435817086958320951716983969485027266111713998334153760044429110587389336516393306522440059314490627414355165292438881210778494102358049742000076322894715162041314073999861873430420540030360415412860961507744703710899796578606456005632890807718641005421851390780667232184672070394818361139580352288413836098493121989539457777851974357591969635632979972315288882548264116813058554564372259588128158392119202018971043082969487533705861323583808237340825952589551565467504415622873906304929515959990439959914264442291433879604017389018493182462896670346713860230961684884441531595769160266253342198125436276071673003766425840475565833710962920217349595933665836883195988044593112546233046325368846920274070318767839868498409769772719729018725908657667370266207345753055178033572169513249407395091522456450642592397381639135993265027987518295213194172709891869196229693081914207316064973753794441613220705554762970822695386905166372803833128880922331045032216756878870487609510610963948497003167356110338176382143919915112006668335992469073757725571363902345802580834135275593769823259493499689199097054000663391044670098202034328371369377865476091750079466199500346325808532802803841848413307986412471158207695836766637979301493337788587454655989501918868452382293640584808466263005238293407726868363674685232244542775210961480201170281413067317444650535730049944411672797063962915748067544931107572659310716051664822477052888734609011059352991241186946638078255040357169524341406451071211824144260263106095204558486774429220110282854704879777082508228621892607579574763432752835265797987691188974689909245378733090296804249706017956872415665569437567629671065438142155979456639802790359157820944469836557510315338710509289400121232880623492578260708206664245017531918252163580999094184696616534276320794670306760069746976480941388112581931270482896555472619693624180878022204663619853155457490364427656375740562704262470064155851870145461223237285246387796465885243817737930206233538057020701378944737283187313233599589891223542872609860476973482055364390002246681155538585566322471659089304387455795390094663383247655805482973609938941821662700694665054388209192813640454680589895853308506104449626400706365475520612089444576521931117583725349450902629829106703038490234990062653596840125561397266264679264317595756029821435846566987674982032531083963645067820105270874789555729318884805470134497769744311334559052779755527946814588565149819674195308032924035275240564294170411882080213404829693945983067681544553849653263259583820227580791224329884965759917143616932612426146963332344418260523465456110577524726848360613343222528825070921202202794254791987585157779043368947205065160185099102897394830419169155862993538503118509609839093325436004008401379268159166930831475834592247196453513831946619385151172888161452030484915215303328559770895879556963864232474610489609417533474602397283195886326345815733837131125183557881600935195925483159285826081492639090424794819627967786732758872835084692934481407281684848986355266859999183379162688978474707782784883208825611648899353384989552599838403195384088577667512815543162177563139335940616699397242387609921690925901783175302945615685754992534579591415855796199527515926137823791632996911607510434692580274477431842639296181941879364191373889017500227144432004296476120308719528475431030244533014635082327443426956358527093170343125145506430337787591489614475055445251705115859422024034010311560159210123665695523703566365826252072075397917176575688337225893706711102772610337067362031429570900769475032613079380168847609043205920598533521052755140962702562406874254682373717629342572074765890740080749470277867331298687538523687843470389630310132020362935566291847063445940726787122758614105480556244585486762149904769904397383713124707849715775602598055317953771867911052632995294760912366460761473045490537923687445185403483163462477630360638083606453987061940004432278844945134043564546610606869426936558069093356846060616626663792813799490937675876101988425466984846813187353405958948734718371166417000281396834901274361899915682937426274172689896546987873388087980114092100186522080971006163926977302483887942160161953603733462193814890179686607479881772917086102226449298610326511914113170753781396080682031401210158980928845335397854407546498292439633986749583321265579638262323492850679744011939684894615189884563657739644836037218931489096908882494487246284220867949409708183633560306794667439845727430610337035237205002336362327097369953133497972375196910605570486762371101560861605766661029675596566433844576905360971753570289531195382327535530383168354347161183576288498286471827001376404637363653716833960710244482132187306345924914962529026373427473504403900729693055558185876430460069766406862428243664970419678231080323177685312514441547075199844752972161624068102301096158712197806661357790226168233349913966957822726239170091342407053039118731685832628086448318673653560159019214692367542433462873205498472931866068369219166286317328465970327145070809185804206651227700312256105404021454048753096594245126458743871264693647150388445353751108914865346524077130663598134832650504951066889924888229634668407115505139149678804147146431321423058798416874417517331205229923895206868270112635609969063851593499067548448546404134076782794398272812625336235899927303312565267604923023624562675019844862816732980889143166169701438494560569372697291529300624799786383551747336205247136823864238192051173722783856439328012748379031600622932960748218570914271503382243643705510444767458359362843863565437877260005602576295516662350386481870371071685268234473485711469986792146564225642402206251163175755065211519449459675707727038267860082389173973681127700820660435177831132572283769885881329475508256359462610895962719865293436170459732012217017918944744022215302165749377546608104312333730516340482854644844219344947276433564314632094842806062371568445959298354065375116218198726117122138116674242219009735480702229569345113631997425167865596927887723906117416465694032401551543817115449732801445013046517140040638339887316884871054406565628539437643414213910692727529508788020101176494134000602377740448250372037838246463398729685683305526008609741804344734992910687591664324083320811632643261636147697280845080587284142437527944633746799971035806536393263440051057060763156934649161927444990549541273767738653008460447502638668999979475699882039348450880912764384404294706904576512200613900756793736347990174515115194648407779657967376882830821820109639279112620411377534155234237860954427699923577328926165037167430031738934969484886987551808635210257105250588760670739574771792982139672050439281711514725446266558212613634963950765023658742866175245837332189617987300855746563260510007357188926805913285756985711911094456886027687594190601922787622735633491232720433908229400570954486806562529745087112019749685145925901601774312566890479409076044068716567116275410158966629802862294912375051587740529956208716100405370668500726707568350309255654841552999877333699854924286035098473529751488571515362507458543310591279707402173142732417871815234838292609660828191614271964783136380854357660351051896267484811080327310636930446794853634635809061259924757447008729965074531697595986835037350749912150773835206451844118240900893031487231465528560699553289077437539156588026640520014014306047114163640508174299889441128945389567810562291955832234256277650740556706571661951358658849811850302519397670160985018029306788311740600549366594271251286655655830658308811607632853160365862906955911946861049662716026632577229498233026735333629658869382887669308073038049062779680991813799721856314758284104170616054004405398764376851746362703795524268785641328687613574652201556739872865440354532154885592530093286379810224790817380751057995108597490712200903215624564579234471994815164480454384514410602029438399139369395559354353344353368666647821588558038629384520225604262432003072719290506289320832299675250725543068724713697069531737156951691146199444216078974633434684565697135220581374055237471593131850672705229509733023263712732511505120048215877196795391217010497602420139263249545075256089683843770291769699110486104097530661651295082360754027971272266995497526813598497958313183861558410459532502297807669885734326960275363497484996219368824780421809727571656713455541925259346439181757027800750579755635060658160722448843036820141104110683112141929059358081621856224390146653727098231648945016749528495284231610134565469145938916271877900407024380156642283665775890986551395304898391231524960592364823954014705243621592904439258759887636390564499838282330922853336867173015851993469090366090967685281110717155403086243504903289807891088413200815164376280740802161602032452577091611336350035994210612267199732411811377303559005272389952830894260344270670005225069020341177515463618519538844581415216073274794960640068763996978149458921918365421069941858644689656657719533012876931640157872948130291387305662287806746273137624841999886834248437816540841965066269400590187967279888180749030120436197978128594124462369153805006141443314459077851144513100047601907979227219944948065193520531431794613259764005069190764030879031104511309901906261272731902539561406843459464373069325426031565294026940227475113264615191843095651449975650668831109594596609344432737371889145685491164746549372015488216051142450779310865977058181781508095467897708402188454398288575154645544856436848753947350224629179710194407741480347089988447524300513674456343268927066867064876129548424018017516770210080756062709848034588033786892907054272915167300629216282176338766117049649529425851324587936214021141336102069344553164203071033473736909508402298327600778372809726273450940177573918136211240422375581229325474065768904528195354642343752372717012830797009857124873244926528455110344837413590634781535990192375471609865174353717402358475310250749192271343321959132965919795580833943118468018306108178265078628020369419029180337197096657162121604796059504705676972480246420124701783978681028121998319985148405597893301734457848568502240238558084784239260417244716274037887672857871573401026170568504202115132743660901260354205228993758742108591829653762657166266346359599065340019318858156361144383353865689525610920275478791235660722491567226062083314711193509569214443599066425635412812209431649233376556075662108191135192373540269747549534234725682677445694811997628653824287389750434413655978594518406017925631868930583095553797137114712690160016214379393027550008949037482140793481267060717294338132082424058590379788326204316397607001670701923597361271900500731809370927664781289156120035061355678055389340980008205042506820194092114934408545987421139873698973248771921126033861570985171331397460551865009273267719168743854274486169360785875662050778894798906061509410700661647426284583881989384529295100864798575650199961565216162157352046817941497587185710859863537011027489505074734551881305470788879765099345434127163411650815782920258065019791370151960554693589597895647249083154744166872806225948438824809640021823356684563286109088283902252926021389211035903969804363066427479314753917318778471490574241852918661654852917499420153680143144231729992412304271974817008605842313279374983187978408693377602976204022581918941899536987227804139215255066652144201835370110116507168108056380555586161568858484323158486293091865712620855775772008900947356399619375510401035531415722973468321619076320205803782552881785157046839603709954269795841487252982456214633257770296582005692193826510253763437209113139584871387058874381593139752902588723863178316067972374661315436646213052386685286406352417328985734436809375560085095411396473643114250806819400140369956205755553489763335831199383251594711078294353546018825070728938661133475953431088451802426300737236152970015354855840466333317291729661629959148355307184777965189737683731569823463271684502867606790729226583645662026975482747289939900584271921643053205728516364137039716852916220864808364151523162499172848117512986843632644835939232687292871709258890025373472135424754897670239690461690346817865042165824212037728752249360696413122396872543805748868267409208847970490514453706080226517717267810760630981372727220432196804501415250693627783624509354256740603244589384418662832664465335996654368256468150348988980497291794278621990851084431065985305540246679790274642562231986656926648223985233123722359895711437218273583691281107052391617848753530441621691487764188319705215558432673677728586321758645149892802731675957912888384828261290669352518610712007470068346219653535510957080789509511360602424910548223901244940545227124583755933524445073026258658142773428947956372861346032554977419824988504163322380647548106850288471597836723270503316970947045514516484521540906489018670952406286715105682060156787792550047604721249534129938839716437828491965852157672997004225477867138429888044069482682926094021728614730893715310700439507157341967208842360334931070274032021967355602045526113658086290393025621057559435804985363983220995202899266798807859628771776474858948850069512685324440667827104154863146857902157961719530531843437372548742294803514323158208328595721902726139428908118453022460658020646929613468141044398597234826557901976305224373077203440511557397778518918169940047525983711810031672407346946085272684309621329964492206839603518658952482297386827599463199259790233644807475164642235429323115510569147753410137858134185094299671080307102220102342059697813609825619873831240930494857777361341112447176212221562693925742046185934210074039231465275506486753474959920438084816612431291200114102461476594377131089397319577034475911144765188500003366615816024803880006380737605797357077343804548817567476201972611888354251578910446202280200910270927664116352822027186766081899630020874332273456462646812746412814866872179767498659365394951077073201154247315373910191129842651288071363299952104404481253235215999135982402593978121259825495891304174870294625592949122555154260864167694741236554202397756031368023191094682540862677773346843713580798717001856741658333047471479513321732269094247366899595563651961940252984338080474377113929677378436460650951271657393264301878847952080833509881208275038631422278075095343688047664654898203527106920381550941463308780938029964925909429866711331738980589309928653989794001978988439548459481552937109266061951188138882020787360813648196225906088407342865672506925869939241040563666795854405993879201662728803028156156258694612166348523027984394816250927130118789576483144589659339744807365237376609616902223846485073421721594223202486992114745032727864864295033078543193725367591564138349795810192151589417641799347410168099668224582241787995832262405423670321466649793358179633398308401278139439439805358919714284378904886620475954589722383225998098452022354786356643421299693431354396545997571324925603570206967150775435720748187500970103156599364306637397387167200483471757832114941116248371056619241885912338102253739416031536423076307263184307758750383379024332014689039317346895830376928737658045361216170939680984861760180139485976521259651349578227814778600118309123608591852006771294488877455740056130366780901400084728992443983653489090134451540698148313673136446158358832260007084948431365349123059413487761620074096219024467392371916488947266950050626646359026792018853853138078324973530291964163491909449166864040562690777830368364253422917870216767060772382642403821593251488811632300986061315731446708346816581725671382799119591089380102313770654704019295480066287716476501572557241836334993428939349868625525348424618345779185877731930379223388249890438930844727103334710271434756826049197353840343229070873237534508962561550418582257391038301868850301246366718999134027350152569851894350603546073876046317002037913146551270281066446300092485270238166450561206908603273069398471661535454490865734227433085943622831514985053456956206121492932192249375125705592059881382024793791846607903387619970467234329880079751284527991195961353712511896258604058221796423585782482501344608547182894782483486840767932635407431224402424407681548129020180497972725920876348363997865435157341266116385031428358624459284835617349189378633616923721301000963728863204596474507739948069490802652510805404369233921511566663988927457210615874163168691440538869834044010315144211540273397757678834466518601343885390806040936858242323892826372163885356888163973207106894633074296995321555191812571732852568540111808923734395220320620957632763556345808655212916512277306027418107129683975453258119522289774175246041333667686419234528117647942771073222324026144108510780923261168026617542975023733208740590152769927140437212303789301663324971345872522604971099784641912838410261738200330143542378569138812012651158353447661658181694527465386580597827399649141106999629052196100742223659256691351680435142046849361155076695684374568295072804122279627748197751131383009318948897552521808205614184997359909998625305201246754549595070951124698031930561647002220820994150347193837002285509798572260527070101902944253375171600868961207057345955255643989472474733745511466254293477246168302675678872151006258293334898084695210811846171813193833405944711549887632180626946779136815012341887351800047055629145452218487013300666071436892663249563206869222973219793346911998279572975254546707297940714012378353351874117556467533118223983238554966166289272867009288975595507715207215074959678934696816742583663767078278661375624890806877177997895188267427657435617082710114197796381909947790020302853472037375531012022966367541283370412826524073251425775486307073720344224480180344767439589065126778930060375196404452939210510849030633858885719387300860572103345935900548301629365553466866050297498406023943913974133815765935571770400330881758132366166470252810915139181342326910428992968123804522558896245445880556856442485310654445652508290603755479873243343962399437724494695484779500016768486228684459086313761513797240909139567955686919581448721335837917611296369097466720270336413159221273032991166194184029292408635665156733643103782146618000998302562711982094030314860683123005993096115563054540769737726016301739886949247798466573201576228925215567672930577535412930674261093185813916312837729462534194325498238744707896258468850192382151190173317337823359166146313487582579757701959045879444662736999119857795035168132605359205594948427020597226932451928935820614983812510317680719032013635915556131330031637689552133231816405791904057226484894599646933858690722377496651714927125553835383608518905265669113980729102504234543248393327471940187225505312944967039341713517138810967492749165617369664203129392364906579357563988892008057621397574352681108158796855480055366464298670613492482854354145346986924443764486530305597885527667258459880634489869318997325330940971313410518947590804966028149065937554067076474111175950673791977253603796621679715116809115531780925564462854004984991448596818412176608696808382007385093468432595125320753326641779735947098842724582459661485864238563289300702280417614169877748516890829140163923015564022313985108560616676549247162385999954309907156179156610402218310464063531503694666791324303471792737979028312076313339073334520296609151255321395956482204350846947490096229049225421233832295948676416453367551258379707470082532099322602491207435344007239198942451279416775591627389354776056214611450479632164490763572807825977934026432968980926382849805189883054271107780852956856136482847089032127175404080993561746074965360134114483220572250351100731331167667505890096227221648586775979180361432067040419239633559601967754611576362745673958490933194125915072388067455956546012611905861659390040030952473566790315652909403347379191938083462196704046697286694129950896306901100796534144899349098327486231873071476045756526139606436238081339518641938422128844210194652494985598774210163416632707514846669524624783391787053875444461840101372229906919166239338363279860177676462723596903916256422792418154780269434761519556610916911170484486291420878489263554227633111279050812544575339725428861585988247172700459417782546472890699174029587746566362914552461841421690512045351555187252413864319022229043002135620931680871796279039657040839140585223321112463804504661822679001617901035479302444251500673806090374430858822987265386074269003795016731313775172961844015580323016737175938934119491038471756240952048919934264097787014469231632333229828314294253121952147274454605269779078825528965174158198479421382940135546421301713340415622045448848666107943887796399782875213906005319014774288834832130432543343453326155699857966961584593067687684857382641787581673228040051853235717654603689544205471326675064402805106969182022396012612121104556015692882255019900151359223624656253664692024147440996485783818735083026332846684375458053331042526080687173769699344660325935380043094475037661702852447002683658972543506727677664073882754363603897716584169114261924100145452314034778733867928037446846997101162099582924213326501363455670962856345514033628662479109871553104140234167342719910372263101610206852511663716896447348308740170196531405096064298134819586230006182956277729016621366371647001564645426989214989878835942822072844737358302683151181982218009405316200537510906505850642828740190192125438727111964818889233870567307941258161026679189944012377855718660432203941189004336964425693836486950512829190982468413964507570290199938873335579184917130822965856646520618691337392182755120478356734068002781254528748258576513521072539575350823623337682340704289971082818494553840474008485932844981471792642143831357654068663787207307669577197394445475280590861442354872559211870717151064510697660253607914503129765504231295516043499373113454692071103239649005631827176349722063571058692386905600430516515201179049838613674746807599528725103675645090379879775552615845280920236733103225761699865220391092235798950471876566826732526728067738898622301562392890585885035970503705551445698406360979200904163600946717544591779389192255007779737278508668601253590459073968267881941890915656436358875559804710572850809389816722249978540449285527491868920991170156304935314725384998227242159182773314726458734435138388361962117870924823948079723962064982576391901445698038632438505978232762726084286980162452298660650035184600486050603457767832037553528590077821611925739894989584975243168495162194546488645309911331062875691351283293769528377823332580586232058887667714180130329639136636390686825800392592879395123184989360313212555338500708696144047146696889141946416672811640815618934055906349509655888296938011015017620682436911867745321852863219651210400862885944562048156973232642428901993758315872504940829110120870302816797387970837927464627584135875869965042752908423191611246184044543748267072506253076132029906816565996333011943697288983809588556190673267699812202658513393715817853284118072559428756578000367516142317676031787176824844400278231843339153478092179310579600258535453829912752633847081486322195850666133212347701992472049209545217306909454596833916106598594511705054855647647397821356109570776744657909206193920538990746835105275465609191461954463789593109347040358406383753956196720351949054741480528247360878078961552627235653802101475053899944805571404299179157332989077366679697653356954811662929775252705068102171737175388500467083110010540936293771690077438648413011414318447921800452441747488527147218693348468548916653470126673002199755998891367088566084370641658276477986313568052575081059575775017137245747148823645076726359056733238248943605430458456873165869070710735042681123905998674860075152962768574711240054216967055146464250496908580441608985238837568206802724681067718786604670252492222172765804792296003639606682992395332593156986239107825770108612132457458457546566822599845915526249689604917710404924102457785970723301662554745794582301150871276991823612837447468839679159790107357433144799687572847730279111250940808102897512912537165832998616248436633785443068359014432662618758787519123310772787700816208197109247675820161167406098910901221672933107799245616219936460227204688688444052824383522443472694322653341066556551822133553348420090088649955869128422972006494354102257885026583255904764753402900623366448422912191399280341242769245222780879097047719223325350042217443803219971449101739733155216310061573778485665106105823471944774378866842745323927292874013399353132041017175591867676729883545592542124077647393382391044315519834061161999899022924670517445945960781191504164978881428404341584657555488910087551504104220431977678995413289034770353438083393412973419942742227503252124996785189733678734309223006536822286960292377054067424329098224912364388828608026498314600356810408887223032130960485849754366734024183333278612571377998734522085088865327410841832187109151947291913052444079479318322854769243971870896433150424479544951101249428373355249851168437920335966042294737619893918612473028705037656415587661300867600536967382925474385974464311445631063693151082984176242654593666930009712630609284737703097939163854543224167867710140915931355792028902879793980195106736461937935376161860311819776009830664367582026062106952018659355805463540854287724689082543359682980002382808379410691523357960962887752727416295966926924622158445063794938783172830252743503782799929185671948179658841145362383236534700060807171202458416823492651780240023168048773207858910316712214187048342463602918704437559390345330439347647153384436248417474990391297459850485992977051434220782473129969092222084169486381844084277731332561894152740390037308336961646303294119586811444301182476982873139563144539850382885357515009795530883146940221607598201275985214919139049592090509579362393224705059633357769362799613710140345641631270706988050773135222938056796361286340412121112643203425377729236576145796955729001323882461920743735030445242550058363300863932861134075536998909217601979260451454664996651987533629772737945550149779123552419562907839930661860984990797779502081214705729491871586719137353515572156075192878666876593377258852859081457896795270793735692037022047482458666137528851496043106149835833483162051935106950541845535831005716750933374297681562322995024307274697232576553140285677750208105403182958990401892951246729926162982783995427362463633012029611645257268963100006430372067665780533961490823511353255388067040726382917058458834517248788060063388817448037212601662037447030877183718990759815396395563933061689930834502737301470467621773776229741020638473793537294331397651372807953047358894611116282350853095010872257577934171345525578514015412870691868328594096923651922194707857649560978071080241190391981308421419327528461621196471840357338306893481968207661162760280165368808139893481762374070263984013547416734483219025423382621523576178567168438223426509711103599406826269515154972218175017689084605374242128062439801543139870207173929544066620407708544502581962198964218716165429832269983307612433062353404631684987733953102090251483073782770267300583231373854413558297841891724144089503671948824691169425998765345379041443740921479108821853009027972097943962779355109238456088474166937603442044903004839031589698545867503902415722290205249537837372194834423973050948059392112164313369232764474571875436607427468030821899255814537161742858543820614957609035385930131755985867659225642918084820383689010387353943050386790356998990571208453797204992083483935649156210176047411676081950539613062121047003800104801416733941427494225060006637660145484718770096566920565600514940281625115972611915601792850251109183663392269671159686975429012393006687267697891538096944959856455901003925216670300811343378297095882643504637125324738941218241303164299064195580111601384357315434591050041780313276448357307495379849294738716467231698254999940854264707567064889942474933379626189913488970435718171656571842299513233297649972217986224176157920327249741896291962806935171100469420133618630852501117449728675995916696915062295370025830005989093204347989631353402655780017042684575172438894580306232612873687840580666874446788643088247853348190268203207295290099843362618237958165589636391887090371998925556543644378742790986449133325930685341009586143353784537266036758412338833735955830746190322937738373569757600606145114595734383528365294195457836351899296956542236205135397651654798334050201096897778719335018410937899315223723200532243726329063131722226888473378652144947464208021818863100121563397206570615112376331341173023470069859884524669845543808360245084260957278335502906753440871022362149658993125501048133558904846299801389898196765539558372938096005776513064033635364731443713124281374187164960654558268126789515313427992070842835481222182036192850188594938956409774599801522698187260601800957227396501237806087211995720502540716750734283320726060342886820679284018300479073000333648639473823993742917211884322538491632954854894751344101270877878755314247752100526948060810873959261968572853613015106361320147810146888329727522871524918485351463105535375901751969706251022871128702571170536313800112391282592277887359156279633537842612860296505728216434778296522331406643183349884105007042062159971645896676494549598847252333030888671532373083134697323272753360409729472107346833527294747501076428422454719601857328777072888037751704103576357940016711440507757594603926959575173072509777804674049033167907867345004052857589290345163845105653676151026723130611739886820060861582418535240688742410243639010477725426513351702346572858940798778368006110034238629595856624900134251999246585207851680247635310141052205887770286240180197973313592735550999942110723356538097180642937978409292894801435914086591051864841184805827929496062705236891733885428638018277882603603798571223294494286603425975022011215471638746796282607457644849013410894365301621102391362420885601000265302999822875834279232374773323242470953812011456625228077732578998768872966001425006798240697484541103487154803515757689920699968836284697235524455083785576231798510835120386122663694526849432555875353184172576156374973526659525744586398627599381668186005650212286019486718058828507968525086113761787940513296688834121885213759820133831070311114238659935318700242459670869598907311956558471631575605364055073376277866171420708272273594808673315548047121193187533097965234918388978032340050311116342209784213973399500041992712545189458643730485305335570168248877668701957344825085717718280366241596539186336982555204925771646483383258145674890669775447583446131124922893239224377838128683903247401742129217602230675753663730076813065558551450984315563231982313420183011936311149520653436104852802502764695651415426533885705697982750142600042683219348105198955301275048226528097325660633661813234245515745466330548285518234300055998270305694148106597277218135402910995508067736249495524231115462243760849248914384928036313494683736084393209780242069741879481984988715869448412972576294464328250386946721756029904440047059136048474171890855611305915675150644372918292853498916646446768339014652548600796213323227070904089046689653434973373724795656084403925795844388851744888081580012630753292838415952553131834574003923304037302907295273520321160434460959852850445531730272030481312757194518846293941607247647639072123067069592924373492203348736965668153537187565629957090361931613828510433860206101672659714621567002125179466820983367647294905468551179704345180755951920343464280124827809861094428648790751517616545392794838137184895988254724478859519679272313688045421431308817622360902816400380049950103614207605413177410692852800273462742697344496854121601937166156194367566962401290184004038307761871760421241762500940187447271779483490746139312192261711246272151163383803974651332641394882324326017995019323690651013090175881438487978893363002620264069282855800344512737509765593119506628263854767809361143807573316206085114179774644938343600660357367352746150455878270811392409122058993570071397990687967607642513391681113962079116127737668784521009173934692284989239402045083533232762245357621029229938174104151933421661703895483212904863959617175952471061108266388228923926361321645989293417267661810958844164234591877894530107412905952801788492808889316530513990079574761132040561246614075988649807298602681879058960870412842393623528660186906388943521239477203547018356041324574015319443165646065081284882590844698412281022779718763206591568299852755777163029023564978263544755401940063586093044552818717145469035059096713909685056947960071917938177838222057374046665201566486756758457233417885947871146222851877224203185593030415012008559630519728683988345944557198460878169391301167564538391489108093205373889666461779180351890010747980158562508256304291949428302248477745586132975490759636723028170057620149734725269231445700765312614524603417153556915220825365408954124599929536179574860305850996240091500370498881294546132478953527376014781178574921511953837980149298235599530009436925485622269333535939734525906088881751254273868118998337392142339141510581379484965353703171407501915864261049662428291230183761926908639945375252958215747039714228258625731135862865901136214612261077803232944977483200867104881176819563532937084883245842321507296403793441274297194584868423589195541014599926243608667420818805967670796189278606585401718169318436596160445244300839084558852082189657771773780558216550233071635913715528950812936571789648084390843557920524443957622582569455723345982706408298798295788852676976558773938984935103915964800146334319180868311915685474845002603397782171771132870689838440249457952286595094717021822181798090814638930464254616115627458244652381916022225056181297314017598681313340529352467763765319266394945186287407772881949710244671690232428207625762559865923148188006003096352172024021345818180796667516964301622414293384197232411492837258907293077285502309906816473220356146314508474226299989357454972241239240325693637793954138364496270065898388747470615790882327634978842039159400008157002737972471514783578848298186203082621597233352497892822019160975943617531188288023803330998173278643072168028299654933263351821492385816363246689235745597702406675208414756978973801922768474164056118659478850282139750896291431086790012284186223950557964956886480035699376168160116691874343626177866365211681814004490956450544116982262632151401728889217496823863640888266997870950917956676176576733019271624089136614122837852986296379175804864192800474371577069456473969236163280186357935126763012673288602788992642923694130644297189051469158740804427085679875472218718498361052586327780630329459882497993298075079820608494760858840935940265428731172317722212980173043315901665425308833853783695502634693510689652952601873628318410835937736446241879822886738878025581499366338512675707261725911456297123629474694727790677928177979344175243731722167284250436160896731547226144122401571724870606554419518671605934873958079132755663072965699632254031787447526695542725830782417168753717660386543303826328351156475154735390526007543537797288683182458444058308983033185228170830034943882774647860181802344002303002853446924536755257471963797067806504181743651956357171966545898587082109778460942521113827406508840109385446255106135035359836982211284627587179140876841581226105480564425129895434171711476361650009312552659624670734275465363815419692870031950733852356288511031659084077516285948008530699645048919202740363135940753669858935724557799127777004159427762151839348642465691858554301175383670878164454821583087455873856195691006659626041175720202416128888633190359496574400726291702366768730222876363458535330298120561684016418317142020381634706267272507679309748978885725052691502294853326252422340374181688607511966793398466625650459545509441702901125194870297534841119438579585007384492281969234594504991194303183651753193535114422834905335166701356996851037812996518900413144400171708893051524838579371423563614479240118815735624738583654774241634631304861622916312628654838376999846414699145390032874897010067356276036352374307282666691688958150221720891503413317685876916867393265682889627555366759330572009746877247012214952725285137085786130293165933909492033766555438245924474635861402709466479171416018960210930339960635982110128053379850968938673934251460931935245515562408490461610081223994727920154696820039918557886095158090216158700909084396782829796299760718494798178879343911127969363408528680355498304157403451124517218019595558562289893189932088839614503839358271850428491376373564075937048726404435131024407944658594007980021690300269157884219317250742012812300851045355275421088416820282480154817113710575845072835234146755022116806005331453288229441916805760934354731236629105155917355936561085803191869577452390752195297265117126906724220200436623638967446476709901739749992297681412939867829030685119771206546625836671518862198130657664071749331801231884303415764838000836192892543609738709766481605424715811618504572658965056443001325837822482200085381316113641863430089270145957418765633196103627221394520843568020567115215540645798300403184765982313843148235257027375515413965857750905217723358883572643858538580856756966421250152733995023193436702586915485875246363271640964593654248601290331310921314024865456231496417872486478176105814932120601086123943349848968589600888613545923104231339417378714382428134314609620276886395374672814028869521225102315496328323519575566846657813924282117130766782554790967622600303580271809281641976588569600773315624160062626082808383273834949770887753229574215931642359781933422421605746744330311695611425174142580301456395886623118064725158603085965827428739460969084714937235283230386330962715209371506583577703126968698264719184594207801754998108475729913561015655328408646517920670650749871122155575385349800469037186249585233566809979488663414255758301375470181436698774041888325484673454262145975738882560743251061079864744056121528041779385972946174677025825087596811729060778050348663115550788475322874232967144501101197356111099536653718788094345721178853872416516166466733163821284180383238314838307727291815584794408268485334859952521026611655766540759129728358427776227611296183115456281227718371610142190047702345648491874118627194458086736973546905694669644079281158131308832650320947258723971342891031282852581633292490771841307129905586212538366361603733629622677101076428288651925466503562341014159630152825010969955848649977565134017583484870342907741957426928819896311743225198323989090503703342809601849083311429056708256276235591709193454232588569709407718175980545752420091799854190185866373069826719316976377362809661559183296024610350260789645824405070045134310457358660251290720183617174123944177720376125400378220114146812850718122005312038652567899859328618560051915331150360136749829680511721885085289958378942779258399416945694628803671568778869490589991194324305798026391238152897959233023966523746633132665667237838817348746864832265263094311177081040021798631814322509370745040405810709584034316537842374170382776237936155707670074293248986597146799260651624251184457114813772922560334545386521363660406531774036844527513348171683120707641923661416278464369683534061682833764853815509611162737995385827827584832375353428927711105754867556783226937153446875717831667171715062898444235197443792245903741451615968575921647863183949127921246016449055730343853490446856910502111626442350803580390965118525359491550377645113796781828255717118762001768606384471272953340800437079865760035518622326052658545844152736305686585186489149284994671097011258058724507679303023481907695923896380800390222452270866647278153677684365383968755817600501528647821721842283519566001367474864380272927809224279542964754871919546887123816247527443724862217642650071079368462295916287638345380223483459546059205467292537194960450752445540196562590643795587604957630376020564018467023462364863634853926213207445074157684839681757213924240652283297327067604839906517647156868031773681500879323286490864775288400685282728091982786580648382055157775906677902071909757844503964693703779890406700761342973495283430175692480594748022035630182139362665316045062975506235412537063844410704031080103254116098954363037077884559067309785123037991145767805749432546192048777314947024508471410379301555082545306678546787644276753728572110058699654493167356763690077672804624291625323397855523791218289166947453438890790313604931324307001613714162089125030777174236511475085905847091031793980947106372855840336899585640043376182084873570242546352520487847994801837118483948992135249260861604341322445516873469636496409991458801093870142348523132882396339669148665184532853313894693976052906340497428973832312355501880490103406136640102832627420855529087512052677700827819187659667051662326339814266694948136660037365089415898909153556376087724706955933163696917779837419187268254495902236569659287494193069260217802932045844935412462423414702965169402231854923649333306810427838388008300266811171247828833877510892676673090160632845948409267656022346694747428720870312248184311074894831957504846588838178454106966217914479898374487481935465012289948038593428014613082539932141252330859884887209462681228553289202724648476984250741483618275509540794442976489432897915390985555972299809704940208832569320433281544831234421198256364501931004357074638125952212275124206008645870729399347232895787208595132678597720699047165408527962376969969086536392628542367311049216623442873359812123701091753604793236041615901086555555576777486646741400396015711957943951010678763629747878435144618696332205088064989443173744772432316261871688341528357578352440239734619698047474687770149607831300771863858320619950818231604889486412501762366160481596040260989761237767875015295770053532232782443447494949143448054478982390307846608520723955644594273668188548626284834437563865763635940381060313056070312777702415413995265091230543548607942366943133015898022155225814678477751768539569784475242147325785848670651781279837786192116093571126006382945807865875169755883566706901575015768689638237658866171459999943731624810122400121622001068955859813373599738025737790189096680793708078285775668185968729625152576851260474477100399313745505424836128330447855063835650086869151589081747925815952179599794525605073860723622091431511268347951798654143172473911970165879430249394745879722610783268065722734163828481200670673463405049991236352132997555553315061154010407416248305590121482802554731706956303191056462374387984775971989499346567485451409008397892909596407595727502416545848991714241562794430808057482150992480274255252317764344056712196323936489800187354538529869535247207454237684872337259483509214275617255108393917721979145950717195859753784552936272070828701690961019840122850601232989056528680198697583423433683052908793828636222044185453920882370702188115362044558932559217965395218960549124078469373109117634661069445295731767769661912515649942253758828904083263992315687493212307770073536537167040859495363012284178286115665754598122369141175320821488743526023361101963184410329377364180992516212152577092772202593882781303160344005074008791825169930371522734563241861085315942248112412255070987134472474056167083021522546932213239884704571868604494460027293039410527926865721944720738061407932335922245709509185350901444313253407896096686804807890286212974762382284035322794730974148659741966195076132689547974222914292739935762442932046227446079127572772196796797405838326950649580168324493745544596931658287652944841469245139798946776012212588419633528211474865559262786788527527487524036756149304556690711942461593103515798282550630353050577558733281891826469025501313489016398775855090810509196045533652784597732217239019822391571339292661069074628997566925338345608440903073702990089404679806939082890613387582556019226284324754135047870715558008745818682456708376492163991278434537029407098085051963050614078737136685561660744190558996779082300940314385909770461488772106923443273692095221075493530333021779623584387452248752892000434770348977103228079812915269582449067964980979880280680811110820550932828374530678080918820743004136894777408260877879482879889946500963280830045994648306548685132624053381007817879932295452011632790019531559040494409751884076976544221197192491553012922076884721069638108732989595854958192018372991486400939506033746852055615128312739919842707385257015670456567549723699821698888444999948669338488957081838442092235330754656953947632922906399333905110715032697754797184387105509105459929987910487688626672111058661579274799371466649624720192997379672476045254193002760413332372564803014226496726437290148758761807040119591591368658766118132255653628861768552109268690362384981492425312635973097187024743560571675235056419900876297039103394285599800047897708787484286196261354196761685140352210754117812857013330739048114466829790502173920347186741598484937102496740051552464802004350442726067097068696776664400329069542506199856748349831159580445512222046347386402102802003349104705082159053984942233683962069093439833011283850967215956414706074540689878299181319688775369122186602828047474658136432275859613887285617265757785836388430818334003671522230753966957770833773397786449278845206786639548514151257294272112128630080231273189404014461873895701419274460639591996467595273696330283126395171364286523728326166290855037581929431907442772418589809104580542494020684989651672690705085495796737010487123436773874034509007034682993947831008941870895890543041390588434848212792202751812227256685954043986980306921340947086966586491987476023287476076614247785586800115349591575796985123577867406798620474695665094089702219658638739194240845065574848779071882662634795223092286884532140257985190677887255254114990608311884946518524895981865248384598836559280740222621088743448612083412810008835460588790748190232514395166436576072489858502173933402713124321279623816551371284935969329384689274645133250933380038004420986832520618698916609797244113547486367772446209098767700222296129411058551332216308729057407451200776116799046371404807290759531978469829858923914398887066471979417859125283878099903306368937946719423009787397242952713059361117955638167969193188055071538796391413850257814478867724428564103755114049679426045269197519944946980456739708181793132118704733652515432723750776268678736958583563785342414934942645634719503082702689685138133914002167744028047485436151015587567955529058321196669873233669634932860098478420434651378065376474026156151623856363408929156314619184708124046326861643151932929826922183730935466070306503761892854797479536612658412026406898687480876691031173180434982269203806571918940178424340307914836376557397745139400546246376417288827876726736797568806038169524416463568098272092469885879933373818489531518434346631080150189523852869468805606958378463848553027409939998692552114105365058744054439575452799416292701698750985119006410883664152567758870966096249775388151284777106680519018327522595718532912565339895281294173406323975171212505379119155382146872193532486423571157065485499276635972340558115184688989811183935638216166495189788144045109993753323854497699853943936667863022161149409688722093496628612951793505023281502509460080948560399003700477458764313802662992390605802342857756775417604768601288233742854123495236908142778120876209515403854700659782833721706811608203890965822158098678173278722628123191558707957336894189024149967204454537465048790057892817989599364112260657229547477303525406104880390294349312887729377622387620803805889903158378066818059412331880013192789915741371568099214151261966270198638184010656518758370033439233253403000985989205307633233841659166185865364838850892012448251111879976598782328218468245844749393356746544193501194439019987959754563228803519135627501825025042739338071625736651252300362691852387722022360190967583600012408572282097350109548107111935553291196338266408501837866225539032616424688270344195326897708593544802316231142617154956240588308712182774137237386274486607533932075441109088244654677841253114974857453446278606405480422225635310977632575972909736140617393429952977104167509191426423711262180101032228435192172688256444571423954705582522920668485353558757593097479341242866056796723757449677980753413544503151159366697950897500517244171503303265850178821898830468184571312313920870626294853963138255912504573355134256273287599856153091730376536307603752870966306186549610431170138936347854103848681092087765729426669496646861605911339595967783706825096216277120483944509299126753555889130490338122342859178921174398021813686295994561766917344533527732377849999605120314572990530589500441856023515829605281602029368230754201929770658745745594895340505911218871781993374149600723086866857768005890643356303577955446736940720281070983409689772939979246383405437852801270170382573716580555326088005289478966602969133059063098371429799879975751067409459425370062704790831930040758779763455002427532609668892224075736128233421630026142953382669030107936938786437173555618708824282845189846378638493446729188315739394418296550133043258030864238033999551752612296531468647784861146095477680722994429399668587911944535443659027397920716133814066805873318867862210122390932058603525880204429823220015873711241950606692393518097605252859958556351499709522408757695297188726788868927582853602383891170553572337017527302212252602798435679796619590116574857248678156447626024866823707410915980047206683008464024126085488162505899405966019506042479861634393966018184199738514245199961348706171589226465274192298923650070110967747267360721792799973460197373229900088517031869284685047606768963769050129942591760927898574226907293588231489947801146831376154383134190885703665680529067350286467604416055233807953716302605139663874644012269756422846855971646502925522579320269316717794743111522406916490212645731584339090378862404329505247234361099311904268195037605355327813037184672970293277064967250516230525769733529348893986796899186605163112552489268931429300405794875405165413829065417050346350086894137945711038461691088615015414836035017857930216685244435002252180565776741847483019539437328354241600901865593518712313836586843243683220916084907234541766477627168149706577988376492606187070917753680160232754659992444134401524447564459971241153736860304422527622997004205444803388768205682816463161462076589153832198120028059002881835391029837751309999135927561585999245984784261827464737209780094952891353011603062105204320519095034359372259389185470389540004560636077472277199632072416230676373229661681097954011888041130251105253908062173921336761550978646120375880690315488731408699609323383890509299504917382765719374320942657870405714488178318292759848806674335523253317882998236957402624131201033765702803477327324629298540102976719923761875411510960535817334251878695078119276714434376030950491811992725680131357861368871322824438820846346761524321569789017920143124877753082400193515535058596391855686554009452521619153517221286256490398017739699244704128421228828029594059982857927082074547277205774631851096933387304138627684448318429104444157985579689878830006356997170894454952297937745438407040111790010046320179007405681711269958308487795599391445325075155687309658251298392898582567821285518825668694564239112064889870325177833487145446229512180082971326202357443498263312921244491445461490305059333759928404147135122077870608626398900992805992549772524580347034391529950881989978535086166537514727566121721750512795550969926179888417030500542533430132294704550255805892787283543896572900854815255564861655005966261990328868942407565702685244936509900669654113512463159367305119840586423668245429176292789252926946600835834904352982786331295365188288807713959187456748344365089430627013581646931724421473924518828346176722252898411640259409848400048705911953665649931574583316921699416004973647733721223001548537099959032185813625967506001652538698568014823616610610695830915513071645197764839534596139944594350400016718846426075306267833631657462909197531226273914811365979330604419805713587626147143928972522050261238667423817861620285669439191058434391381505563261167820419794142970854924131173220972913171585676047459559285218701327509551790816140725391212550486029790798461650872957984488282721083167010861951926310710162376883587857702765070357307830429857734268490236542670258645776184684498555301293614720289288614541853691091907899235035241095325983295788700919785796260164454623809501605663366217364025899167919873062768617721490833954248870061975040496023999803207146802678590534495714716677802312894179618367249199167924775682057437144083513173814496677973532357760917988747296055612174421374557623212524903799494893161796541652680469087745127702669550691413520301555152117862938785868610760257065934055789043674466108469623601957467910699251003312049554964434437829473426548512653222895378642415881460133560024115117033315114363424857196240429514505409255042916009703172312342405932458673201383702510734612936116450245786218758298479264014928166348796954836629975463101820684108439607492642207280215604283497131191880793667268119858981596582312759624816594728217281344245548508333935414287674359753725378924531547026115803172287421049450050820145348793337196730655500652502699379246717867005983525546547503094945131897200279860133031511451189084874046898233921088178715758530357796777136422167186094899390778990376582975709793374826707190788109647848870008744312872909703917706125767294273057332727987148714555315159634236805990661626216831366264219841669680923952101565484532589373496900587691294949992951092637936905153915284013693491181721687549413635811258670927929389916917359624145099613676898320858839345477361575563164470843834530961206205420711482258197221296770385044125789282850140737772456030876186322562122873411141275358114372233160696956087299362576453810261553282776099706554195702087223886069741691631326818851806265301895222333427864298706236761974631158898947835817506106266415713214033623156190823397297148187003761133609549617869542212303027177787761537208030999040711221472149983085339406463465004800431515707548348970211695686288321688431774250919892145624233255185910518200282800064151506044965326621583105961362769962775930345798369430013723833070962316741166248585931956164135259074752708768144354454469986543717124774080553935811327173815730724503671986470109510977003494668853434137341375964738985288693317754821415425812143387104958098229599798413246081155563906921538948796098925641963403912198715951665419824818653654975351511511060850728691283041376201651393475644475444290823032756158617187187998456624748507286991632816024907390283411733489566708855146134687498080424844936179992462461387150444574847864909769904355708918305871267183015800583129869907974317677880927049853132384812697388127368622180162850526494737258937069683781925446358904917877571677407978573290598585992888194631028120232169154000677471121457381608033935214812442922111114826793306997567000750690746587748076869072292183161441929604613978854238159449289881765849047483317262682203997311002850501105356390293838466271445781557374923438016467393135041354596873344819967301263732858693277941745772470620950324388047318135985984370227873046809565460836878873226398585860745489203788564797863925140168643364976097030038380976951847866597976609267170207990967747645381849287449935172967930192796876940084383226940044350440286339321223530251076958293536982360843461724179403812579985446134396544680634597859749867286562578713703754600392458142128053836678988218325032044590646823991837323468833502497640856527274180546899833073030962647291512045165231240936537948806232668204354815543256675765635201523902391340619970522235492971778004374415357015705166539165986048561869868110691973330839059342133314673211410392344574887472220226370292279708362364551895287396050622621678127045202645090023550217959721930850831887635786534438684480435154615626223533613855178306784460748513160742570478044632184923016127378362744636907202194967468879292166098480304422462661075306523998812183865301265460687872092703985848297746077092498890880931161964925104108068862341051448629643466316919736713756665030687642557044633898494603209487711863543558234851106599663578508048328975558849098751567873807196931074574352338448571155510913330355931870522495597083716360172218181801377935653889827236445129615832802880303610362699860229687516861688997270873873077810286498293889448042521091490355535132274734168823148329655395727446605570478392159365761459947685005601021538007512457725677607247926401607786533889189020093917155711392343262730699566069278640801080058521404609893076612914608070511373714737053524549179287603230212789216880711779609204524347872825916037328224716271898192117249016112447152316590892407192450060403608132013048092751822907745300558368156096933610704423767581667439826154249314593937790308655496857542781063633769703657305413906667194587818220922582035815872974716826710705176776594925840842461861708821571194478805806843694010824597210810993025810777117126082432623646557850419599826217896690821476359864862974044960980631434611758368729089675180975759814783230303238035742587286990386356292576247772350055788850822283194195236873696768687087414769382976042269497365333216033578878120782742496747723488441464434029910155580339334843542329203034192526290904226832730968004518840079908802235158946777397719985099950436975434133636689802673563091200374098098878522736027716505055038105451798245586940958686863163849423470973191342372815251172371376448047294404344787366538409375834571659337114459995995936056784351771622905582408542575182672365517082308520447129333604852168137992804188167263625814968815325506300257521986069572652855714412745297469705920718806537688234758050140438384454842129864177688339006611730794660584763088457453948661293660423440466810256823871489807400229967853431814931595888945544363822178315078495891819159866153394837915199028447540512257805908763101245854272068585886443091708716792213175427166623988366604592230781455480312191182030704290318593684474595401843294589864546720423849992737005327026779708618275469683623919877168121335884946360208958697483007439507641060022968479585680267392023969507830646748651609662708392038467774718884359755746874746024287009341083012259611338879093139773918425684680699632472157954998495146458859968711195116097932383672022157221399406612696481069029285753098372903304299774234165429964940546507918040179426730705573145967460609240321644607812337775264130193829433920011700859508385702950899038805983854292052389399118688405291156002743270620939002794673912280708293717259797560472265502914019401525984227780104137333736789755602233635924275163033439189075233001961666393947164902628627636970932611305465890800608319248344911630884811202798570633879950067103163891761136421227303583312603298093465812676055796570680544201749262888979320928196197315661144981540668971982420590124429376399443488568578258722056741815250278785427409726442476216335405936923934172480222909280665889150268017774187585060337526540439595434724854528897418971886047652920449436427312879710195530774978045921042779615929980449135777761867083704237850472940618545303562988658033909924564556978921941764272458425418812785191041951466335586068560176921080909315905854992803869906123602626038301842427994311302192117530347930028722816149219146508788700211874500480706516595238215731039935907730123405612472256193241103287432855354585229395348502351806533316802811113243342803384495426015748630048767785116264115593998405257882317068901585552970624238389326473978807839287852091689649004152752883071664505041597021014655986624268700084254995172227134839501651360310158846072775393865155733914497914758907917748392627894517783887984411482735781906931687874296973684756816345790398807162178980082582046710773083008816136625314580477958915876791582380580737119776339445312886418223193037505396538238191742698478973634184111038093780015731357474595377374851283196772165223756784682238766130963786778677258383397382810517100493113992907593371221176703688667513068101945714749829311611958087161217502985082267480591888891980435928024669329160813881623518573546189953401784229202800968978533941209583441202595319488214996005814672657729252161889402468384160066101219498266106697021031797672219166740197555760082874778807948835212883047185932974459243356283369573160292408327079652737472270184218371704821373594559528058727075265141705163495423662031390155886991481013757340425560547186512511443256303584187750777597988938257691663786859830221558851738188338659970605817436304857190784154562283057916077540010207819251944664303474399143792546258798823109948911166868758865786106072014122893177126817182539270728161879792242716922260859399439629054379439894138416028326741426087645519271688401486025921767021383122000954867353979384647078490226382611042521739374357643108802498785848184688382766403821955831985903761037646872544281599870651152531175505299124595009262887720128775519970872611528163623959971463189784784564961957215264147085222754548231080971246620135752854484749011455174559159863896057894330972777637594294489865190760783756457027032128427289080917021619950406492578170721220371588288954924016675306187707853878963752935463252316361987475799701467893308659570453238411692339712102429304516768083634645960489606919482880088632465962328695324340716773248329835093804207850521888856449525242049417730547635665518086143976218278352041163155978151312553653943455332075265379093582312075872933177331647098455637475357847341578541499983277463138246066382753852292365262041744049142159697762923596650134098543263815688769982853379344330208942196612619303997243873009847764591999596417810320464049624328906792227678451720447982455739439596369190951121202320601199080963772485772771061915716598805931784992159720965303700820849785041956042961210237397250384693644300899636265867561833586275704127485497881679740326281724164809364296203907716219752389046830386634047643581542333758714072549049220138167894330328360401157923964079088123258636036846086828767380722730035233709429893848748544789498367527507096886186774615383028795737931218087648066569122599865656587046711902601606123540912265422755187413536981163450323742027130235606991615452545162773411803722779565146728990608952513762294517896237731934182609897732206975853907692161783248791423589846426735214728358561329952522580323724315135100574440172666076122701713393035328090653411859121418795631419777965412363365117337599644472678184684342986616033049899039253401130707644796241771765957089592848329243290876819256443709301156828439121943464782283892398655238253575502885963182747108866507968046467535781205178219955651179214982763138862326035988183544190318285295088601039403457944582018939868553941504433681455375898087380187453631070037571171756541117182793368291043636329673758609474443119508177568883724170109413063642182067998944865983207172120797850862791459542338096460334381679534812714942424895181264686427237442852852144123996454536903952367302284515250370432835096788457677271233492250185646275847347266697917819459641832311091392640609392502256155823810541677955139514610783250952114582984873739885810334529386764563568101745195443723086039709087437627208306774102091634958549469057107795520858285606456708460626618946996215826785466911093013651689437494839004912773071570442046597155053701892145364794661191385719249900558824541042383167869839287687846566740865750481047159155248713824594076312440468132291411731638448965186601446504635339323536782356065610786529443930492662456445846283044595582278133798171294170377980526975395185876839530925324904091029526551805718386863254766324037669744747893300438169936965746333212410238305505020470044439069141524556148043288466962788410631499460053237474247865455246006942330371719681052045873362154713320018542913723746779047839558257138768994248106932602474037278844718817587740991648150204008146299863169147981097726663221050232145017588445240134744827144289966536680645190545707938147489408896240154118254543105463269798816957050545399717738168861391717771126202786662182930842896229135452486412861841510911038578938382186925706736527414475185027256622185338553075964504402917277883990850753330357655905662157634196912806301651571291472535865692944894408639795065383506754006320323555098199611462467115901170981166776655999725453237605879000934857991048549554926271583038707039364201386105683563025976679198167768132548903276544094267412979964266254757364781557728182612638863343387889735004081590045481248232968264028349538918929559051281703530550068089133949468118385075136070245015480753352300296326048087166416276752691807965411514297972637644635162747446999013343712824245426361074807527207953333326559267863394643293618174058463894030318442502704587305300937221538149401741338963202487016606608947320742092903060832127373436516930816491159436785086735941126772562395819994946414391753694895933539884859880389142001890649343512614616140143127075119989741475706069649434341092551691063661493289457022888779803122709546429302862419707700679600402286368429413497444181246554873277098251876131245628065331300993157059209725131368046813585051818544263434882676201988629260797758309589761921226797330821943058386087188804229778576774899994909439990416520243969745364401504941413930596145824325976389764180940601368233752903016154257452496778017014832173136265539932487242084510046627017867306819256842344167203242414901521284403998834784380573272910273289128082699325640310699236178929009471759630344988245096679755263407461648973401867508411725746748903462454941037624391562201777150120256783998740462873365766638058685484066054001568831153425801833069110909563836900047074486926199206097563913289254881964102822157012382786559039650715767944427902568561328639865618791074280612065316385819243924917333409897163581673097740127840660162223459209635751106620993498764819701272629668860045043906585337139738458535573947796189106567563464889362378274836960769807300398553186190317214107028832533937920962870629674922727046733610762724887235625530603517677791438796102571321085318869141139974816759371374026537668510850171890667365824576844406533203283033412240677208676232270590192642062743388146887979194003089881161166158087398677606060753226742629494931483413499138884645060078894465013453849427470174031082472664233439102658190882159013008961821395164017929918228514700769381386832349591257150245072331802641400762412048368915020900345230293205734222128569530184813793711506497022289743386619755673104819505422674312606566912351592479805483961353151620983258354437682575961597344928677152842520588925202854163319732805763487005845959913356070533586527298966461901714955909887734866300677555840848919781677082366115830158210266051066826185178266533463472780153153551254244146580892256783820443965971901014027357812368932994049904770818653691376789771819519930530874286387833390188375817593080202768260387174786009070488775754872903322766563155966240786847788222269410372787044538229000820331843494293291541143787407247771171903550547808403372934081620726531011969968822263027101748141904519865703909313322361819636409956869598480472087885427014784411114027466448380367918097343199056341295287348030664234805383175517946051937856275467820783397683697641296766644010257779146039245201122405491613405760414287753772543102363966373953377402126644461985835163839672895912144068490526060198608808276094871583339181163542531316039330251708137060519962176576041885591723319469401467131244752377370086653743987304503799099591387023173984552790863988073113251751438049666683123280041858483441001351539127442265026322276984305572623380119388520265180554643344544137491416800464598879700530141513317511296662788749078178236326120679748159621825467233777809744280127855601038501655467407276415085347186322809213966411665140426915227499468849601618788582319485838068711842940573218128964707155131307204669160954666330771311072027222716833374249918989007701177130947957387128092710685298231816841299475593337056307739480222794280410603425535517403598030591233862503930647386322676659059597824044784128230396871685945908250042798226990618567754650315583893144646267433930973192920389155519750275942167899167453357876642907284948209314530127218640810580529418228942412958503807944115556707609630090727849257549534009666163518647633102658898120908094703554684440059089092989309719355908513935904832963449894952591809959197655368471975693905236112872098337260255241549413851806955974403858105597965561825212081623673843855798928686198368334562782963366895293380013653906000502971586574888798758420389308787838134133514814228579550524098473052953843733982338974167393126313475906439786364917593938717716204908072739149636549156382785583261273606006848970823089805635903756512087696238147879087324384142475192591266253187429770872258446747506126426021096700029256553864649167790856516072728465273356258750545680807741986516126387931035918602586508115864625227506831780598627460723093782945938985804640416026283598861677194216977777020274070284826964097614598511326540364148410025461270628460259443675734889361733508825575885357207865720949752576910446576808733400141231149916726630986639985105959079602452431402519842677735578027259862054851934961524477661694671730272462655459949181169069444825318965018691065686425966556433953615441222632708239608078955771017261241872096400245592253877855049584464104070613357760986113673141695281367271905607381521196693893915920158503663769606432901497764696565111249882324132740477318120592725807209549587491234639188188309852469335388739821565778294587684624878959636556780556657287098848455648694336559208044231178930027017072762292055259872541845677752402428472521229151547679568313411771957985488470413313847871633342531687480660657962278903998875109530975152321464855376710900633487293961569086948908685638201548253330342024353775548309687021585199071034461177066855616351335858060559776543881447538445979367302909785608540993829753518126026524364081499338925249800749368201215225748779987973758829548777400227985915126734513539952716034086586893889024141421773986043815411472385451261893097574717723562204714996406911241783150179714291636015693501142954164620848903526098752202197027919993057482549115108349796400531093619546074265880539989550093558005328512769817624476989028449705281319302087337031622553196370352302139279393487035766374268863145448001936338187867058898962045349508311029160108405466319115816094886169117903417791443172087667323110717078111345598854211559246622696581523350420219471372326615513321794118459263326631838633697505745919188135949996569008217762707250540872818104112593949478731326472368563939586104984705932360023226877519867544241557101000249614677049603602333528005410353050789741934567746749071735263771423856953196386641928533803257855683518907960911323756448759176938147270033334927262198864651945945050065414016476389200164875205638538432842518319698400407875540376457486669210093427035590036568799774855735073080897299858429783154225049895533460859946023788346095519088488822784496966193638755375510835627913272929621297718641535008785362215807321777619720359511406551207739211830110071286836751655798673733592968670927386179926504713026487029728418203518219864342254339045393870190763779402099732672104566768843547597679617426039714794408563819546832717777449502002047045193853866665683325195072747099880357207604911028294843060928262849201227087665076879567484191016559811904289149704473804548200086800371959819907423118925659792944020572653643363989949325961276954121843193150744117806453792320666471462989203664574920000980415848202453515526836843970414557688484762269121583243724791081555832877964960432451887919734707916772219440458662202144015300843637301128847312480993316196305828852959478065546768017031970547233390410578545407372092965734296829609498844835195133381164602721410754383828595178726069424091410792431303792114879012749696286618914576337519801666546854019144164814974631312730530799484451903574045689175202701440993996193278206496794565109347764496948650152932346859664888009620297426939335990207738615009867738545224358004570610508980460449701670229391518487976498318940388765759197420071686022884856737805170201562675311684895620582824116260975870290983044153951357899025521053537016583305348393308814873885357342457906192364551557756352054541401204988214440833911520243618879474415674941233633267734577389475548657051603235110280904781131171928052781869694337477644650127945008607270123835397241588175957574551795842400310655987168348733213451467198988389756261940407113292534167682536189044171455489959483802748487739984529973444419287443466472501208983590487642346801134731863380724286747367145664100534472715907087803295063175290701752870364100292239958851366372023537327900068896515776158930047781028241595903637882737732952180078992051109192021442552108082263785503354169568872853995382694896825878627175841942091676974553997835415723713535888382142160201122741759134245161027627999565395605574888255334267568243434631087271257575823289412314124521994168832584512462195333620627192220427956484029797147453051558556239398598141082289415982719696284753038167244237856021937828565204049903277323548297531113979752616884350162142013644736732498813123931826670917054631844098895003945522203140919589529109467149145275284874094137970004102823793987601423870451556975489399119267681552441143960949452840202491326648226532215033107179942670774224579510815676360334644145119839314825599360587775983326044765186989874047430719876950267094062439152874938475499647219768977030366370185283373206114841979528185326798086776298075550125710768256925621093507521619245481040868063286387171305074784164642628543887408987021034485581023231091146053257153108858142797003019627973866084321431675912600897130944557878344894141897413241626174686537331221375350237358762801736559281031810571636973341003762639668849050152108073872395557659530340194374499404909431135864843674108610908914739321010013160602009421960183574928949937207060679673864877636210810551597831697680521799415905916553701683821045147754606853719768801622315365567353213299577036517062394158194782943385471614857026095035126948575787396759339889124220305224456254391545489846885362618975747773747471592097649819543288688593293610740047214228734952945087127968268194705211299875866873435476922888815327285309655725570791421856422810310208849847892635321335615634991797528137589059601151095861809879693901869662463423379368632008828254005892095657580581424714554480678178461359310113210942051338233927080461736817591119406133672850030686684278674107337742299280124057042626035761286242841125701808165487878023813321073907228713466609012673209073262046658458572168823395164643590248278600440067370024456276071036686180970568311629164789831457675240863751781764350823453415379886894846311018487758328539631882921870510939226758605668683194213604048465238390822722452822924348809317940225623326973826683259351097836067407281852724861217045912322567427423668733025135885471157316288031142816332146381405061979298438180622005599158832587305535576879951223610477388637555162307273866788132148457120326531037252090503787510373352064764954003716355275885828989697333220369461068807288177776486540570229587028531025480411829937282024175978039340447372242433434903740606940775584757206339855975327752723778890007777974140671976647320705308486350818180709533888213733741753710771494279800573241066826887891740521867854080499913073402791929406417856859056047727229449030594717929312368755636412476935050658533866617356466155467698373149039916945062860860302496146045975176781708686831048207219599570838091861814940283058698752663613288283884612182745090055733556687423830272552371654998822459313691357671790297277208166389063485154142201620987506663622272698695419973998178060718061515717975182026436557135497985728887972548004913813198583560608956981019503985301338871691340885042778820994477757590915969285945438079114723444528988513278401295796941490562450737734611830722604848908821670475650551818576963835323910571241340996665468928959008809586634705388149750977444743826552397224031603894102938491752840261889684523202266103365085080671717565539970380414408980958974655420040055379673831045156533522005194735891377779430086069940769794781604364930935687957722638354078758231350033334086607912287641746784322758561300520911976768118820272440664537510144403820202334643342774121443325100808986658416276694871757048983224425478710411438452350253110308725251760329839125736260676619884334750115870006776662175456669493920980049888377566986950655316142110750445497587928578032191829108626638246975279999104840930300197946031806974825469763353133925711967680804011603212454574152423543928915651741018676011823551888074753697711200690661866768066146763200332427546872410755883650522013375260385434269835649819294982623819079712285237785878549298844717183860044755104418844013354095282757460361471545513079338659852250776519983674119829276207286204805545133606821582271017839919042990037179321436340336393413347737828402503889914247485406202899350188811390196840719704050213855910207712786041969426455158593389012403163685577216131960977332984920083288987107377058745525835740843520131160865940383992517945643939098861154937518012961165932626896564003347287121139813562884811731214973487719224461313185188237188527990933950933242993652879536684018968409092346275758661156513732184057089743781112584006899982793305761664358017700450517600255464811727165672255091954317191507631339223001856015948666770926866626042074185687071993022033452228921355632261546467956572371905522905191534193338072107628806570025022824228054795553302762835522004794615436672202798070079637024999683885094838659979475490528055003714475392985624609259182075282215827919357452534444251194886413403108480917031918005224838337256162098171774999815233866905789513231273792282820796824779470963426706447773581841040944658651413578182297731535835012550343115320381514967810888242547282389982697917540153366169903195018084713136663902985238618838159023407017723266675580974326537385203984564467264604214524356273888275384521695801791540109012557442195227525833472639498857958147513184220187652655471344576012040218062655110217314334440732834971499289158959255943052796532319556264693502772974791786020767192709962033143264581081211137672229993126934262898594841785889107207922513340443068749221492829125790871604759223563176551346908612147734798279455084454592763769622508622978670457193218715080666009981470771167904526450153338101883859374978426484995208695282370870899197423884467287409028359697348019980181884481507342005539090151365181082811921307858518084307264610556583315335729990396367979972394602220056690956751300612332585865493689538782685527957098588552802142031469536199292555640741434234074297854184323588230081587254174342587084051479541177780978693652174873039619652203361461129641463804342309116320936327111859336368955122923919888049183186024278938739683497738736434296079797755062827397060695409971825370655349178419007021237794577160389822744198212951567855918474669430858501484491467550855914226899806654213943428384716043140762025944756792332689776927903154014006830081411006865451578571262250753168600743030565333029901167325306924862473113247180099947258510292116543953898308129033567289565108156050400774429508703208513657326363764559894169839286695130224532774473779200148527993142616740951093699531642914543071861978286183787944436477720938839051891661254831740426370496794600792268985973038629112036640590167784910086512931732008894658573598978697713870978046741611142621477334032627753726827205862151489092094312393638019621464754682287805871121308134692326986325981121299254468517159264223717523061526652575202334924890167474972750984870653388925476023667075525279447869041737698130127688726187931131888982852822098479876892690365134370835287945788603671480150066434706098843804207497699851984300627687713638433921239961970677065572568484280062630813180949785974578534678592236300757784430718479914343295924459220792277211673311668160936543377164774737544397994063039990949808017732631282544001617456481329263894586215578488045412910838723444950306507586326594991680376614713452951850461133232603294155235176491659305597075648562664253288198612421884059211481893875694827802681905346479635643363580160576808160308527772724085582833581940338869829996185954528049236562523600857585895943034895021725617147722953999320450661056474522697772462731067371424925688782984883638147799562677871102583853963713556472266629828312467743791560061657638901719689035015464660826404085764784523326223578388919834945775003852495280411576269676988904226430446811306379727903398629758838268765475744010842739162375393830360074897065099965130266070393231531470214861484375832146491011799479170650651063927326302499645951247061448669243810675918233224642804731548793211073472795580033386698955972834298619294209802268973022009500460006401106931652592941916100766036885214638753433940982349942496217661360635076263633348205640478894393090737814753032172286133006461721332005506426947044138599225753056153069103918617674635079285504460501623128796282060146213232801274930924411029124218366913631882596113029541212773118721832498985375438590261272067351220892756653391758911594918643702142342469195010729319861612748548678909981757499059427275164075854590629768473195787479946629185520514483894567100361685728073932458086937062852252021638643020105799104161916110395943500588702272375492361050413163961995399128875999886098342232309192506040347859548245754858093669512820602457352278821667854885128218753229894095444716644597958304965022705548720975006704716421667299330552595255152005899928521510987694580743016203770067163699736135483453126985159508589258138139862550856308378338684368863630451684474152510809376809473524056187455512348922812118131658518371378237063756694510368655610757830742145248629167965698991728839145895795948261254513404326486763619915773909855652795612959636588820899477058845832799507840396119807023078911927984756442316052814808158275805005820272991912669368340364168952904092848178965674784443025155823269396503170469514321905479272363807739460791852275272053647308299915964656448209804653749338894310137461645549569001575029827511584427489163999263575602935654286857974838323851016602232865918168760219285323738070501952315864413884950920661881154420340461719623098743229134550826229517456979277329258894462479844726617731865462353312846714049557002764371689316461907583906790205459149476175003271881410053119142531917611662746161922254969269521238383358749892114713051653804725407282776019067020355236283707005076152710828523181273083846115097921377983673471674979016315995706451964655279159714522719060925727354854754771935547626839204538746265650308632549269415530687760870065416967577827829876190468196305160607262356474469224662530751932683987344561621808328406593566053020859694818016049673325697281513925074189756649601179008544896294698095224853952537073475368891561134388897500929045789781185961678632924489924428660623313868388202473854126594553228383633848115945940356059001961554512217667475684570671486602186428271824576734842706802141196075548486818262942654564151598697767056171270576165676494890130360577931299301126334544505521786586285895668608583178429147364445578126196120122592315614011743786363163771065427191730448022168518083586847060888494396506045950536187311095119325911623840458425912154096783429215148195111906899937456743575574868613872639899715168944217721913830541749259187246966587908143233545788604693186118001181874137815500689419303431648291081548315596077512098153398453236141455096840486909554938012710330670367536782447131136447160180688961160022556782363629670285100084008148640522183066337817319239402593929135883075581488845524625634687433984034131155001097457138979308453804696675651272347312228504057838639826394841489245769288613593428325119887454890672643232749045286753418866405937982095985687122497167057657256626263137830293500049771327034864177441324140238917804153406717638956703006339627566338750634479946938997943716850790790946508489628638942236104986110873437538540190436589831405901600092015467752800839260346687023982375619304008619650486791954256208865681012752862252877912005893432338330448100678023410165293959793273719952635322129400240984455725629805843961801318792927393155979700890143316728769000176663094926243109495570287609431733166979430907729602518744366107740927470779054047596822405570561177223974747455075833447924094964388295879988552316809052720072005042940014219906811296904684336962987670015626984419832546702241993956875039815155649684516971486723564623262048213038770402427828950420701349853913752020100058685589436686503218915201919124788043720563228077818361241004429706356551251742098404877333672314087326352813634123704564163218671889932436642150915557548759086347155794405894589079658488652664216178503745413282629507134713050611885412185865291878584349163543447462004136743338928893046236405167043117293412186577989397395535392822151127759172010790689779012783166372844779439233449052202655458170388299896363185939972026770693863511135601924651083772279339945181864349624773990902107140580814371364387495952605495753263735899649962022179046170842190205328665909124779774561887934299923726372203052359351465874174669409256684302277946267094575287143300503229881162584127349558590721625995646793817276302377820368442697980285428829562986995336462755870672786789012930257493036189553759322242863471386021158195806006823442894929226567737265688307447869454521919688325813944852994460549167291148790064050164656561296476801761068066497688342522374446659350327090204482931231570942823108081337327401837790025997669000131034689602534738414604553815969659841499635636895411969549938998073066001494373331823123105526186822571274062809993571004742325536832563309837404542619415309014012534165472552301763381666603082854159552107226695735886554313854709928819088213328542870473292358639271683042407767262821339805902593409421995075257564610407701386514414387660435547378454790725782991401204465385918645916517067942044170994479467849611053726671586673766584650788522824431065560781478069670415552930105436038068045028559566295168847661363685471788939110766749606359576743183549382171328108286027520480644410083715614118346307898160743731078561005664031505383391718164125082204588748877383641099896958596100286180446820895692563756070588001273539435135477989810639466221836487151084304910074539479680856912935332794152302558541603179066585204104038974366638971578554595077053376793771703663810455940922972297411786962305258622905816713473224314425546138497075747671271615468405980721345993291377555952944345622248181849005937168898684959438835129659216722434143339511417679878455413431997362723701643114479891368455875336821390861987130426159430428969710294463380471835755693322504565391098897627233657866192253917658194790400047130575932635271762161644947757174690092521787960432839581066751593551726974016912192624393485809968827816236298540311592386826023852537712263608541733211063341197965078320031285961553984643415214854763697838476035164563095113691689296258978267463592999353588806575793080807494533141500719655670553517582787511449588454540429459745471427913067418764195504995695414989505708597398841930044344004177149173057092162548130125659985629669824225357105857342278721968460506133396673301908544416967833212142478076872525911647897385221720695475433128790670469027875979549356704070978160237217907799449128060818130927367506377880150709013626215785901764526716020881046704949057040538770101487077588652134592239928202060738621825970004218569841787939340815125939943369595479226115686422056142268402946865311469095078127673663350481315620230015956731185188690518189196672702701585405895665017232006750201816486315308900183459437985237964813045383854117925870721724854573475964685627357589853582778341507227920947944043214438539280750169937324900428691727816083038270100494208516825741094082081075952162350871311543327958769986143466307505527548355661746841509693554507011485137795516357359410801850014990144333365037026627154690405790050447820192176800628520580340388133963945114818547648644644382076882813448559830072607843886928641632190658267354358741809661580068704643319656520455669386479283414441335901466279967248814462521415951585952418758139894592095232872892870560003814276685850923525555319879760871880756415122563011374362287865274197238978565528295765347899444046417226460447497976617235514914568551444840523918881975220244023018695101173875418755633508151707665793671973076107280194890080549458035296953823155417709870769363523866572809391301664615114761794966631950597492276598207409707652634580811976368715385865680288219638077346983923795214698497473811113338534597338851903308497204699296030106768468696526501391592618959704755767202654852407896024175384964524785336987385171370836561568074131510083608254895120771345147821550217438992300010799215451367549300198074281581236616415314795201173247298512555454080054613247541212931278229289718949970439833365598782783953648887750233146476609849386934940393238870553597847950076601941090303072213094749124158014076543717512370701242990448188245251354386658106236140557139312117003498692630111311399949251411477466071848217212114994627397908496098069128158358167662281442435241860599027525118073992594547753713515339986176811001939164695531561184186533480034081862269654928986195018888622341408215754707102953063638142754367566803722933458968765192335255120263734101448955066638507013820232722245546274072416543207654472344259305384671214322455073679144596544203207151899969396993050288166638257378333237826708840219496949352998733427641712045805737785617432592160470731672790147987918557560184944897970263232400514099370483653079268842256755600425571605713758409354482633257717820260919170067092948877534454120672269274124763698413001648618409621439982020122131236233358938412258822738459311922745291944354828198507838710957395679467834715359620701244783300506715042174246275908191252524346488338510610613425337137864400931451181171150996309906046249206894478703806183165510598967196793475333251594256792300593477660794125941642116009381636711626532396495407163864219640632668752684003169542117396039787980520001259174496055385701044177499255067906209332619508785867001962253278469787905919930058157123124750104146246057538285307085710662185238875289296468484384192801261777434408990743231447021910119719879143717201301683559344416704577840585935880650878735659310977917496691340314774849366749237148764095253899238229867616611809301534751608537369200937273295319547069275211650390371032287958503384484618428881247639569239119150603202758474627088588611208117573093980416830558368349238559074099665721666907326278350725174924077209799077960000307347579630102001772157700913654005317555458635804384974417175629825337118930366924251807121914256737364646386485970755296821103519404956850074044151186299635263733699329617273479787166810644146452293304429666965956653446950154910520003082635614967362899151872828161131631565226271486872769961525313960474995285933904475966368303916812688252427433268300290978890227436384704879319171917576057406509294414024478177171174092017480015803512450728336478427391356459835061972392106487948755462991860361499529019778772048778164765334782930685976463240807647202872105989995449922972152197844237446188548658993007853775804669372150918058771474504570383487033644893497458409739076093741729430280830047513406393935220874163102187286617932280758423363667790026082126914647782795204475072566272149040884079670078889549040061663870299235629179124578243820690107606382496828650312067654843534638665709224294409372545767739034256109600550306900310590324851980903537267681881831263904936568348766192843831888869602219238015562860846182811913539210808733091997687239335196589031546369959054100765367191113665742226487210852706765961525557164816173845510819538928104019227890086545113149590375010189395136857764190533397045149729717689315896104916875635180333869228943304353228838261754785885673289811766520178181873312910833266836669193131764329020963362430761388245251413290828355496960208572547800631293368494139465017360136622607583815575570653815045920350618983455380585168635650755402782655759489665750998626964439547722995137610018568398552422482343546879006755512861212637239650517874374462415607611049543423073964257624234609976881116977413248085353287878922305800849781649034670905024900790723072780783461310781592641040760505677597132158220615901263126894663842390753025526010807436579872023918917818691292246264841031519927129254648823596418251771061776341694163846321995250015839144291310387853119005020812539667354313684248671437751659721363212629103047259470810292790479796157526855133784366356462219793398932712113582119724710753835393560781541310161760884269403207185340487899368317761601472192500031485668384314050898189803283673608781548166615243438002383791369051164269168418837086898759053036308067147788467201972512148528428329625688293768712771478478204414958893360121422437016392196536907009942126648992519747618050294984860045071634490407466926305173728888371299645260488937045644654184411498210768794515768856921064611291341923056667153446438894709863817699748644275578649424642594747940420387657612674810712664070757634965637489094497959348843158558117507675548108281794352518929281190639770442765368466534200597589454706000929052297014793813420450339420360410342515159992608527759135861665156036761612724325953752602977231854169674430121371204343876027259893418531255708508444917452631896804694636880667725681376712651493622721071258092996596108210158393866477852541146030467531121646181887420101307360959916351436466432901819286893112014068994790061393844844768552732356649801045557587718552074265430195343843857359547100317653032384242202459647916855601973194260537450099013732701825908203464807498220066372736374077175804620735670198726232242065651558219438252740528517990286914450737756540961190363850215702205619857817536153184062224533247780791775216187281862751924775637917754443562596400923687985614008073091278961063054675817856100197412329540519111977341864990613447167636917434618399217585610765541411410663406452733781975634844956750648462578085843865807101583504627105378705631644293502460514287951827241217634458866210368919529394516420618682982420375207628842032321457547167915420897429499590060524237058839957681958403546471036834917353883286617042797169729328169686977320458765548229389944977859049440028448851406455368775818894065418726846790991060895236549171339587194480868018396897703587059258169438370961861956622012900972850780718714567538408968384713308326772658330954517007504754971320599637997851087128915258352888680059381625776744382055708295825510107450213956477399513224645932627499816597190922111581826274654592754844352935587986146722664790036722410150755175687391976969130212116642741564254504255137172293415944704762045352348437449327473092047164665964887029118980207185963134733898051693925081340795157214186427990413528613255270629945572834198722788334093985740539743308934491985460765420434008960084374238612231936129815209623783304554551801380857975390019267081069188523374271497173947119469354695646838437252106462566231863095012319865013796051171023991787936299043869902848891802255179873031864689881513569626390880367497631994532747521058225999686209335137666786467712270727125598868934940837722998373351480618070699997127303169171598266769117602730790489982325025318812870096366184491322168153639097611521601829285340811200733393782630302192707900966008876443793847489751529613521341127221950036137051295166324617645984945200254590137793788397026247251295026576332435024902248094583015699113546432692688450857688646281757517809233981849776667368111728405673781566985391126609120862401127792186647962497216542443192714146624129164959332705635344188792729233121021078828013336893454534800938460812273841210359809897965936522592863298714292297452419769020662385153619006040346573828370906616038778302154708515215009373465773630778754207369004015963587385822159147997541163259862015654298536610389172834177782202386125789025873849102261024320912643476355788603916377342585482499331454241623925939273191822958311767502065176134741022515047166487180683241279736723365404089696184296500978431394857130950853441203495961525930928884458565426822428348047022710632908833601517095411339318365940677162055664190022538591951745115031301090916758830924728949350021418082182465472926219067578564642792154917918734316764328502425239125741873591503556886495728182530909477305453421069632324522655972223702151462143751847017278720574223830490197743487324687332400980102804000011697678594874114205210509438633534099552082810641824766237997283253762107036141398874417879575920932950984701604153782837037958841972457844791898715277499735342746963656433559669493398131330101745338518772096169398600329904535034451595156539458603788506564479302922733686362947167090022845872828744972949669243225201121115023749604325163468093893640813812754282385503662298643379224094939519494790841880830532988381426219763525417583384212545286729083509066780395583495441966953547585313076455575539174531482270039593629673900437403907910670661992637912218610421981445600142110493810942781006798215733494356649709437965822239185758712669653940426717074225241969819671094509594624708633128605884250389385754473123870399185924960329667609057164308006988700072247358232700402271724459686548974421189355945542075741749443624478782007120509373025692508653698986701849235535783050185151633377885613102650437608485737092446773329121458185976627751886755731834747987338597194212461225039804785015989766231500266247666059439475057732992076078230708688848333326353883296883839191454472552272101543840526976601252685819938336256612262828034358841554505426862298229802805981621917808956194732145545062486482963357841302959110810405360376567900190867860401795198829686001278262788218962790987121708717463083926375138025245495420186925125426622638459768622631823032546255538697243430083099130927337236620388680767482631323134071481511888549370777517130361084079917943354377541524366342040961033859668316724685573930691319341336307611968549811858360537591133765320247437910062522758520013229831556424874430424590796862575198695448317580676918031065080561752879476409707782969648448808345133778957898864654084561682419892466521376045309152469669650624175114619197993335630199034558573562451167784672779686718686401832547044688402141289236569180016806857246310596969164831367396407607622496971552014433697453429242801595346872575143716266944344589002122734792505346150888523440631053033292218641696920537930177819616806981875152581640697715006664444179760196887324311346672397098073420621427604841730283080661812513222584736399213628543705735183225860617002223172874202629103197034710841174061562710685279103276454948051591669851704665268232270624824439851187108427216203661971767328208840943987149771990409184877376236120250218574542793475103451830376363082211175582464236961067396930992873695769184188150019386518046329906358094135181631155478710196687328540033059625763010025921160014614209101740643131608979157328310859932787375041238033297694111616084829400610963355160305819689353735053512436286238729979867511192435122568022127321229107855109808192021827688573298025458025545435082162173784253075033847754511454561107473896854114115976729777977108203593229823222699139169354431483238051050001379867736649611175281755456167025504723228690364655604358561755539040841502623289351579127041397941382005474962649358793499357808343816445185105732637880584863266762928919388317121068963599321613365491698544166528451830642369390646603982827523139816713907069103469457195059525610909907505026547476146113284231223641885994152820106847504328669021024873387574847376353309789415281725378693451455266014938294210371079999871044604933984482772947100963725005040400334811957703964281174399530221896887904696080220316040870922765031863264073430583397163080884477216076850210356520132103307376408963186868824977522002083972426501431606581083823203381045065248920483517678291603160627992390698949726006864272906900725312871233641723750960461648085863796541963594197982142862260577463673927290000700374645066339797487838926328436975296309993016814871592334754379138527865728973042438983793105424741932259076011386627646021595050738204816434413299549533023454883851220790247185302468733514643477528902430614314773794866640682787944549476607353926047554002862878453665236878603966871549646159186611547016458432967417379682797558688239274639866323537330650471287536469295598556811350296932624846255850612138104802665593641603698701423558678262088759771996435756915064702855439905864257904027993885072165940331913505096981424969843920584822571248067282915771531871093092447147995831560569885278530274255190951611418537109257513042433605211536205316010908376310619856461913987514203122186582403527092655159003055311421209523713440864686809484237369477011099436882893179400586018872424819377711064043408422920406889298616488228386790478434372189084009575051209807573941878738756568497161932053278968793808669071900771352058342973269297182611220720975506092517939806092354454720116841994802138472391483052969485490583725146519091677408523616011823480463512307660919071201700028463405340644491608074050349819627630651377327420889021610055979758287260674783847122128524382716076128479060438222491846243602388024174369742623606252480891144223399763963784366900408284229387735377235101458522796475770371332152229910082584018284453880701453416383007705113836787087295495457113789906718492790092619508633313407456955846969159034197186929189118715395492724780155719502612562618260133659265080982672267419273426759833583854126973446025040546307572093753980101991058650156230821292397334043213141798178025634456778897274749630810519093068664909975703784798241481494009064982119963703189632379640951419779714458068269444648071055864644943298901027911698503103463256742509285093750744873729942636147090878975983377385108358899939694083155252443269491714501186617319772553492744348847148474664898531019363813472371444657152396567810983757468203030997104487272598135060659043185988426120704570293540624576096850112774015493377481800177949518558319203809450929035418429209981408955692821539529796351827134558670740134330387217686082510305353739822382198896272518810092999520061451153555990825237782286009757966812427827246724087989213903560506813435863544198273588520317833447387284519347545987666040703832982921531203183596578333740684483354145258717249567265624701292920239399628259938390028381607823186231694129441907058061778837131976366662286157295554519652537021312522701338346459624356125154547150431751355739543134298768184263067737959438720997653221356473476381854204750175836625022082250494252151744630905954723886741428885023915882428463907612690253904543979764717385984812329744081102436889843663287383669463200887349227296626885245514023084398846239302502738498548897942456032857412211898167856058521535558367774166060653448032020460358717976317479316514376919986939928500401061476944773100350720357107248293560762261013877819814278231763133359544445635617691291274029584021869994721215213919316813498832205750033747835005059121728963137634427449995619135738021830950868437832063039753942836366758646905437348924961173777381501924207840003324887508617489593703094279762436914900129150593589054243076205289071392973814123508791421514619548341894980622854800741027352626165875043336036842482388683008872081741830781139819362126670289765973008871683091338288248940178409996203312191264909814352719935519051264472106040381471472782832378826758982367808887348629615221479931031163334172120904232543766557992371972071141601700632626627084610572378158086195039455980062990353312576015928811281952264233137709750882820110318970892583924170740852740042592908994671902991858179697227093024934940259938498296966679760951339387580304309897718820384525498314344820114165184090151850069670885984917276250568047692332934574363394048314464550215784372498640622120924339757790236260159303982817154277845755837312751636367690113392678813636174966756510287260702431236927163960415688581290916345105251957903733046122209519500707135182636430183476203254620198460626946870284513678069085031083271598892017430958881622658295483189315281496256785182516891613368591143743329589925460875877379015354854584233489222182077769806740578168018584161554011773537505731317196238083471046270939761713132244093657931957828375609642110665171912004852196359676921565082435945041602355586504590953162299135891289875536457777168108393316279740236404804435058754253228281855575031538932715189676040325578989587543282316796897262170220074551671896409349324058784538029907874772523825873353745799474200226487137244443130489011795137182391023243667411751193859209991647353908524983343289004773728401665141298136188353879551063347548774969848869386403753024087049915652297448292905387005400594757070395800267490723500933878361286362121995952685278879381833799366552365083514429910967776366804922557241120877748294042294271112161058709487832043295020692401800205360140853420518540857532714662055831523050590734688058661909977346809748686743835142699402766257095697053267992727951819322405339462656270794306586684418189635536295378231012969436631373673484699690808743244871774668602353365850979506615089514268883121293520368777333194283727675488634023493525837156509023935660063682101064153719881687650840555490656585425832145057940006337456158073253023959114788695318912434456208414222821126831786696064610968273565771307726288295454944880733956416461798109794504491198771519884049885348699617255971026418918557545813929885257480470634077670498848390415366813893237024455683418690409561696394475249828182322773943330505228748219196239598472773472074130986739895271196820222918532015590141687001837383910277868095705140885559104692433506654267736305663206425993867415994023773418301623844165801293108802322460344170925814118564151504901732588733146976215094800323445312862667497285307929993053898942384341150639489863290069267228680414869657113492332941636076641297802359101604796195068371473707906668217943804729490500507749741655053508271718788923012145421087668902367256825173607520409468561472987597262628434897727227746018314384152992107726612146929322828569476720272624510281754619963248133554196186880441044718667117167440260814543496365882308633704570053565318779932407953724359001651599309673208151694606716434213511443730986817393800146366365979650289249702262523107907165928182404248713571254820807547870072361168316272485895307194045509469740832577071057775350667072568750491427073258946175194970464854967924351106175100097000419571991152460798590945821837571178702676631880880229925541015076935613080825029971247008307053960830853173606455970313898630258075144348499639043913086619011301814542875054773479857633232744790166817037465563341949765998327533599447965544591694318682552663577056398789665052711722978155459733192468300689899197590411100828222347971195829524293030675776152352603184035472921622180052324530596656577945890232208010014239869397023925831976274703453448963946473032522069431154026668907297358293291813681079204842884472089218001415647565885981361168216626150779643680988864671827878934816644500144746591635769367506993909159214453527594174483071589483418270895461146815975520505783846996586859381356586605530526699240981778846804970708850427057187433642573476948667573425696867697500490576172115699204486859238851429333484939635524642207677468382580056175079039602107370796803574716555314431612296454984148923474941060403097762992629191028303181210703277406067936360577752115871037566458103965437024154710274317740036368536217607197262613929331320478776536356768209377212607491263732729213604138465816513724730790014964669830047703899498019256903366849869940999575082972219302516645220607399882679315618955959827848198815368201517461091612243060422340365991106269788401075452671221875798100794809377238698227315971932298238142558133830294014792094155931082813725386986074793550355439364723992846284352158859660054235974964290784484383436094700157612178901477432858696633406561028389358813387998046338749360744688501460445464869560902114339898380342989092176473189449573145171066790652733787839164291626513066000557349253234639133092750948501350593236087023779482407839544490890545406921600081352040632640312233203477262068612913719862019771383954265534170103406320076857529387874388529323189948484704629645826836674330547160196646392754534426907758742693398392522466942412744491299800263715265315580893530509521882633737268795052809641892462293724033616243863456120101402873379412110340793074871188058896189863400369959856653392603975357090139555670827512822307860584522035173507092500686302752062883067679309542126356582348246456697683898787362983780569185352631209657834939671043661949889072728724570316591280240699729096481786054396864965494116085671760288936530156004923917870793262098860954315821938771926080741824271087930246259487345974738801375554264370669772830910066504277290155051314340887717126513379400043109856161938423969762896786379078639739644654277177587448951148135546192433590868360124046743127312328029191412093920461896267954995154478319772013743956603569766932203525001581677275340722430684889654871729520035179863576118218598947492639892086558027269533582990840578921751070202408703954818718296623502213792662817127862215855513302925927657924120138010469765876174706563224220061211626217596048025334277174030442274200134718742813951815599568885036167329878367989752156969584624786723089477288476527312702992408870650530695182239269188388033710530769223484713035036417689487416111823627312701774663517723890062249727420145010883996267204152247690882007069057481969231173510989734358613353012104420117051839812392696044440688863396626624151225760660233674418264923248651520093880940664893995422216467694371614236876963475467368488637782434931028032401357798770422557963539315779233516576769837051394821724731217962145472939570734874525410510330053547107565908230638075689891575207017855808611763512118126811969777432375298653347714840876792743262757752087389970319099557236424676638406167870499509029009281274755741277837938281227018791146281565373502312109771432849022270769821848621325336920091011090163602247698821930097806562336101407147485988982843014482123065699152992871538231627347225888483070825057439365995760630610819306323588637022086153198059550907455391884161089418066114097454673105752657898997400622070391701128996838359524353012675629191221928199973576826696415279817523072418511737695411154570956549668079190022733511217165617445210422254312000008546901470677048770815747936280015757530017155015833997799960979073115200528545723334486415113425952132229114798737521595144616730872292184561652005249919505259794451705848379028320576689109733130405780232541216178378840308828371130863805375883653964137640664179730058903325390918133646843776032961667471267265806249400420974610715471390925327506958696807381213019982722757445191621748692306857865834611656392679076440262069999462072685323129404573539433197784185435341970361184322605712381310580273695254861387310874915961073700300141492246246075110451349015777602506428395357482502431976361692847680994818019210369786222423138274437467653895101782011932192078781645925411118523251814447402384907338429874569307702273640060393599585580189941168872692566734667907204741810266369315647145970920525893536615529621392005781664626978074788084306359708098359817071893543386009174296407163034628532096862220787948085792752411800654061294203164475205028269180016329432311080489914488022136969966251344080443816421902218650208504141169311602606020302582446398423934505207961570308576470584759079872132322462467267292322166289476042850596069692609914123144079773802934491012261801676241607751027886969821153824615945759375959892232041268881066239502614413637557324379287958626589084470514187391585621078551276528065353359622289556921217353824623461021289649802408219291710016938324431263199789901734661938564117423250487222401692049324105378630243545255404553169429962176073524647213821925411779118202523074329518215858731091923139271249896997843874746882866425867336100196684221533572370226389504569171366039589999645689580005948151627776282148857175406097909177698220628318521627003898778967112830760903814003523856141199458635557076872394752780862328888597558886883005544028650751121027701779581076895649683625029404344221545086394068573308167596980006450945738685366084004670848208932107849978091775837350335280988434263812178456919636232354989702764896250260913634157534737563696280245980889350047520604750564254970313022610582531741943675452353094859754378029322688934479274507589526355074881012862402589195780103149341684890975040907502325937417420119586270161694636832048752707267772880344085499834612957357765484783970841455211411416410135650724003321662355056000657236724926298847148952082733666659155972250724405295411239254736432381887484354868669524173835647019001752634590397804416725584272976519699774806423731627825603040513184278367593957631401744871180274894722923030367754824452625228479460459884311660482558194012809663750237514805594730003958110402907761694792127281374944692103607044679300683085690250625709537796611048063084575072998993055822329039294077373116346571008011453073816281767912224267032855580797635078433512503752094911660917921567499433743455613668223681721528043188900354200765053778239784047141564533092627392139856673009501040904587373450364080754989544820632081739324113406960914122163913985629701062593073966566062785867973478259705946366806474959100390392854829708454445579859007557069458222852866683889565368206957341070932409390698471673071266858584890721077987692193139354961341530331547334967723543714732275230849808101180281187232141686603601207793384693635417822201008597722979792219285376071715938389274568198661037785715781522258902682641614280482756726108769248591356089802219171054515266876861317197551706228710517332782622234745622912383726419045796820474859140028425389140411206790836508910717304017771328600633086987172866411809098742912625027058751227769971401172050340285636522152492967583981787658327252530519457450358207095608608288719418413874462515701256540066346202220297539296465333949716062835263512032232087721243117514705619428978002444810387066792574848340507796514626614693153820877064436431874881720432130772051938540620909894555060772403023684964909684268879568750497829779219809168969817209950906593434596556388142470616894171009469330231421166501324699897340063561837346714380230695033127516689396376912792901194424358385220516278281612456718684781562879851761718010495081035318998254460688923928540233531749142345097870914497777965284057846483522846264839802116820729567900199562904074206524383349821493159675510629298354680081011957479318744846272522863968716247308932576889197245129747704870286652702941563548199383055093264393540084248500933300588800895031380954274581783597085261366621437798162935386750878634067860014227986321310566617260946714443740928328106246988657083426918467665898860679215338007910177180579743218522171064034836786089152940694104028696314762098192616301114014401833147812473450356653219968760616330477611413295958390287329929122997199910310923838975295022103481551252039800448412157240044757480063667422820831887850389418711092772738784312369482181492941324500112580079230038081519469892917988642940616590810418243057514905271078796702982424912251335252581368714564334210025689385216089201800730373645719306959486517796475538710649945988682463025197091521932599629602712245251070251076548036081442990550808426602918698210248983886112318418437182914996121122895659980282473295050984763912980090588705267704580407992823312848821702365970073575395657995939872921353273162675950477313684158118088677725778890158948122921733260055080064085527984610586113560010256790922729186376641006980774151443310992604213125808904722372028357932230907529242879006939764912080408231440257528207265517158507257482082856592934797497758441736352508281662323618545231552447916576672366056506037552115795119048413414013094052091751850440790880689266642512305061772556035752740975993836370047398547693735577871748028445553528508075896635160719323456326449086985513884389658206230005074176553825428810067483235507665418542677938311932146398803802676982158153128643950977826855607171715017360087091419294762598994167904859787348737949709914349002404022157698419558407433667538937598390607277797330957781210863941505040488199432921078281581239138520146814829328918941501995396697362491943417868019189630818189579142704649793205311141129814789993846496388399064932723546482863276980570056360667247911768994286451182086095371667009357417645760267204137040501104278412169956629593220633929167888390195690800352682455204231490253112845525458379397018898430348741723812917480134756834241606948154051441537414265419277075024670070017926453444934370266440130364748372730146834207081686773754298972144848311143011585998342678853180526971598429378870078913466925602435664513436349888171517961731697126142646622901600267615299396767452811558154417057239470048661933636984948488992400648820183137183043687970858574926474839205846081896805705383328239116735341944205672135158870385987687643359331043168795392622845058126095340160810589698724172743419141636936120507181439947212199809689710857517818951141101533695929945747848912508666961162553498100262624164666904724319789069590254196124049076538054158915423069537704695517911646206076405152498878868575946999711737067780808932583783396432311343581111667569205505622785177117474765768437294020551288216739825704793593663802581909505302861650795116842336424920545261828746659123037757871536542945105539410015613104606101446503944742611116181268573129346384458885883368126175753105930741833544199257957791499484517777333190050159673720731248214699995489825597683360194719384029327117904463420669975190792342115281422847981636010657916858264456944742145493017860721963809501614395335451079224730761504573355137127166250713573336444651348278270125792745026568166444064437470516000495453661197056629680494185186676965927997756035919612424898518344337435334142006336966697086376791841805656642109707434596224504059596860745268732279017331159491416827558075362505541924387176480025460901071876621144225929087697588357334841964293215331736855597815591264561898204067507175994801016256051757942169593934755377058215633439229331400899368769268303381785382618811214825925243684257813031288121108758614166381307075031347800049251112020318798318794425335232470496163478617331420165208682761234307834267611893547039397234139111958719650284385568155144618915871042501234370118023097593107658273100145509153769343510561516581838582340078949672006572952828853641318279181163463274209785729731700678755448540363138879526892842062446268537870956003519472792910521999612461711355419558208957816517896108282105143621362668614346953658640485247396027103558807681610398492664254634566575277029966321720690801242278977172498833886537805905764432336701642021778233895991307216024836857268951961589109456298526495399943089234325622978218921673293796522784459739593686365725490301685818433841733446350513352383763477271842329873120302804523694564418058875245841217193283102624891485868701135429352177890028512414689191583738707653900963433482077446550959845363672278101453446112941769221007347449430439281099559568868494058180473498375993835807592743123902280456060858219592850268771365584286299159989332700007572331348733610900335056745542227270974115796177722296221543027782819290550105475520036501041260298179635498064753938757289616635443609915173919157919569708854910962859834203698548120405311471989726240744998543794211855199185533185394484525278777756502841447007657427273206426015271684111220313051796109906102759386681758902166020754189560360446333511170424184741128595304608486119961571280452355667398263204238534875569184113235903709704996903598584085141426301903555655109939483786365767586416971391814194775234803038034956704112871073315367121894468346873258769943995741988910549711853874335390574936627971349338347150568713987435525185032219951700422827053071787214043967525422094650025593761283978861826000861900680556942127840276696069746916911403959583968854332326603589382292744361915325366148584763561026020736551074351586872335377536242003463354390164979907065673467091636068816143199699058841029916076921240792023316449070356731230571225507508403500838292887013135782479328965798226173263107310731198472499395343809502710801371090987321789396416382842826398368127171199092206394626522684148406702213751895584098759627460329334192764009099859855233993144231469455175565460276761641950024955118239578246249795357595889752630908446430950880142248417215032642204912160477534872674542087578227483386185653987406123159753174884151717953839792487745591865196465565508507199706688229994281847673091051935320579467282992476683495054815840413891431604064977541623242793919251413448452712716422339751826554588205043590659441267507442542616788107646799212526684192932203298367003428082535139988116548938086829199192868126653239951842155062345439784998647967830257940530301843280816414287536111026938366252627054876168329747966725431032129716214194586141285949425346698969314105860471401037628961689239703544694490732097685092762805248393705386892877739632576268527674718042953814156717083571576087688731649128854291115221344729118786266072867594188773427628886849811826418476712551865411492894554729417341418445896533425618270659515796307143547787665225325153145410959880139083458897636041682093427146430103970987679419907323605897189526948589629810633172925576835197915185110863474404808227628512581709320627784635398546631616218311141302102426147024874524636069030365522692285864491262066543190694672183626918209751684737238263140924491740014313879265932446629295170844497930692597768616727359682478637421523191525179647137850357050919105952072322303839612628841783944105888550409853080208880229438513335444371905851709966070043103318586294339891027380088881468979181081447428135000616090304672811713724123245168480024943509751062503453964504787066252213475377823293388387040564536808815942393250669606981721352820174640695890963093667014800960689874845913167222484705618019997762469471242610630568207411321780060150381603529233117877284686042329221253455220202266854138055194213030738517143343415421605018032859047446342307116439819800711388604638100541076178481913538874545901730245349813358523565675070803235815796789672758334083622526545505200931648942113193411992295770735787959669218835834122473150247068400229509290341374417584962139339619357316460238097737954357945199535586118167093866141749132918100157085949737848279748771309681151259269424197477071556280517141126092339342073390520604321879069402151344636789411160985078150008232562925265891758360028639548863884997653179678378530926372026157168771580376583285727471466407864482956102145924355441913038047857461679356779892940447188052288757476966600129523715288822590104443476178542010230529413537108367439442931950502235610724321499597524842252303814396558590147872351559325981091476637406662779151070460344138174459690272208809867402812857859641811339633810368055581373432356474971481472694926452894995491094538655586459471540177799569426896848622259365666881969389769721766377361560178525274955622675189138949807970981295012674367818606290496752484462791680570691530700416525676787573507917816789865630792144147434882240990058196131013308522921525287510394571937215903746393437604333536889360935150645076593345851983041964787784263443458058190741025001851910512246271499860063909752587337038621371778744503204970365450156589294378543529246360351462024852017285406559571468945644714614718703398011323393252751597828694559307398155339728758424383777829266576428238813266917317317644548112086996765775267494571415434991708956520993100457776218527808957020375459062983455977510225889135269856759196929856401925167504829336437412791431043055131723279870165354602264150421921228502449633178946114384644763695816440454670407194369466427363364316161291679015062214346160420122860040047714052319758048726091373346549552384581237863228231019141118599740073401955158512870755579674841944435720815773330315064824538958586138525638050125341501026302501478742330681582862132790677590900397282753693487057856143198529977776121840778815833038113001652368729939946315324034734184101008610265542661503213644288464708830454439207829065398288026340311950205458683398763977465703688683729654561331598362484735382085940230222925303675256731835423647714954950273636449342764654043857022823145296611854379099624965247331518669354325992462144848089331973397464237707942890415688186577956009081559998121652398087338486936344151114710455881765132854747659526339708560024828625862858125001588366576583442680726379218403850197289986965930414555563030185091698155158611862190836523555075376152341540010874566569502726123393535634843471801467386146250434872889632526729274541293920543695754074961006559859876280853048933096071783868346905563846286543877218739639119738186179684972797987183331226827162448913420309368374522690154158946970863864412000027995686018309840869567794955202931940042192492684121543274759826197047559515885020716145851072797777683137057191431209162329228876537972389668803754962731412790769279002206670146962292640029120079012160548818788011736856650378466058861016376809009908225991508480297069682457233768987401088160750681773028542100716915268143075711852580929355314497959789784139759234542781846754224444886798790724469439398438571428551638664116799736790204576449441249853984979837190718693036866073552507952837232131930744481155756894204388467410113985142720216622545003099973394063280950015911785364887532569137757648886186296794515831277793563202963740399260990352597055519252953687456116859932223392798189964238977353836578247318862555327753481018048894339842658440103820529568776335314731499086224323217788181853802865773983525338962781010153104645876269653710621140250163061402812579753146511595742141524519313537412360283310788998146567369440306042281759961267614898488420748812044921345741628789823849693130302978041684257443667595192358525814272700321413378737267109974429866086133238363742559850472740835880156721114187195670248793968273018294023192887168156801870120774898573356005262448482848315130759810845918700874779762189329562237821126995761468221596222658937461773388821238669296526403627429371038325800539829951614265582836227834651387704958382901255001077412207060552440847852801578990192111383940178521648029661511823499990215825169141910006330652133135269591885394798073341970945753392501436831749905677360799945092294949010645466443194050471356791841153745092233299821496217407937749528788618632260775348522341541471582519542868714543948621226789616563526917050300122598462009560362367556385785542034616091658182276875471811799200939612677822277519669131700601130866246433187455986951568413250656204250004125420975035136161108658403009231776601245614791411371552699724709873339335131920087773753625864728368372555269668011839084472492636985910725497809790793671946447718064457785482454362776500393265234465655605201921727887877415146264213989851765299482010036978000679170614085814258430428891258641975399036823277355724981083519804507286099163723208271598137110099789525471288285093671281000600032033463340612620664752012786098773630655489848910509965185343127325393038806792424862815981257179153486123740582555964608379456373966017364499591497531367589117714700471007056830920176717811322229568535330387627730890007762993488389991340656493360446620997071007957877177653512159491995273066116864492956784354322322758806061982900108748039797921281439658729299969107357214737438270528530745959785139316617002429628451427403482370136036810037646359130687090963732730554352925275480669441856044408837707066389649356838523535942444171972789957193768251656276281027008961557482120699583693319168728953478661575407960738745473106527265966559947628011943632694019971729824829910393005166055952745475572455029659825909519792388183853267828217346266890699288219027527140794454178388253198627994037147074329651083122052707600140760107894545586021086530683399337169181686877080103946872082163792125616577108294080649665746807858097056614415871160250376806252148005347233125814695975040620862463855370643598159323476689569503841541846708498767594574235423845855370468564442179214063087131473368543396126979561249591175630564598264099318474400498050873538878098016266832203006953627141229120661501834676200873869550736736839987631660961644563453152995361483949079604997988419191275457631469332391314525975198237401262504451514467300255419086911638029317607365883534923602539375365891908033931087390154190887491918119774644258602112742839560907569390644498985467672650743563480373754520673990945314823446851045273570536300261781299906119760038092214805276956809532684142680868308616138175533383823748067971501175433890036895803015777688927971965478316676688825563670797365032400944361424222806812577237833630002498572496302271512621054578514381196376112466843733295342057195253408518954656874951274202840123428864097322841930011832278133859192448112243126844983352070145444388157296890472537998765178642805530137848890451608509948916383806385219826237939987434868176721309243287786390671551621183405292224413578725528532191434952797392279412741670362099300575292899537170321854902269553430947979130788078105908958645341180867556144871835302722253941393027969569275970836242274967507191006704220303233020424388318140619086870801607395783757373145586519251837624724069013465761335201109889524207800656241838074487326018724081255785568045049986144012669109759489836645577269248815538138827222352574381435326815881634259556772617392576812472596272851469027292285927151325382060308368374662549009734765166542831852773021392367164947853287936818072413818507799721671094616999629420800930690421947149714785850439126763080865384358889759991581586888737400852019261116558916480171172632933003324083123646854714489879628046490716825855299435726729254492686988460361252225830161134517622130738288524208014489847211684976359204524751186696461533902826114099753719251124300293848616661211311455302829369897036893128257896178727599651702213362359501159280805191310081785129159598902200067499737048623894181344611522592082981903889893908248354892855582475249476584976050000669466549913372420381702470530939640667773673946885806411355068289437080763525967158693431179701621999721304547362566039010591274258763062419657194048382102810179612922994016439069591575120533522614483842737035252091358238910952219638585529188582702362938140479857332839741447101573315999327141754096710376591933974069275622054939082425744573459159850052467938228363993456397526521030544201824322092686274260157193346583617789095531855728422007783851824820847610160724736457499427968438619480800196366030962591161982061592369312911552479562354306465601152271981137977518712097068060015628246257689015544701049177913177130964736325660011905174542732181119471490669076016273266088811091371887870239690716045436382224367065027720489869203087581085453218180702320119610346681879440957555672437558880123566162900914727361082029558005111118693674105883524178536476589882492274209747881151508986167189717458749697389276068736322589133061621929805506824690425081241158066508839318044810887407206802726563593542966788439904126615739194699821372024626937807438193800947807134288138624072093708206413739876552827151110786660994836862598299387748070911674819474558975114657699762472681061722490805478942022668543181325402158046694235837764475176591693649513704743349156800309118202010447457311873449167561834750757186839934521966225171788466584545417031449073761911083234522535064908873247246100520566876394133240577250602017189054807237673619122546581205451888341774057551968468088090205150024278868315190754017509701083328879585582249742296487180067219900623215042033204785278021279596365680765309313830858216537431419973090439875352439310060741243785358340928584886304333222007775302275877097776937915897397051266348066041520748019889759165450407871361805895779990421040056699511311436167502318824068765186215383391294194358052450648082882235629271608965933001925918564891295827923546631764599333888476492084420619811494900388018801699297736793081441534144896556054207486162300897693533988431897960533683394167486978575485959324876903462272727633776222682745289261175058227184671179920077857766337450237659922585199757240850456758494624789725160881716959939620686276278787118002148609820258215553807439067043174712371513988523882812499775148439599555508800273688724343731406519497058540376730338031648431190903036340326116481941222410393745900603304167260780208491098797244291009223469993141268366783524112114460499180645403177467681579487653975252594106628895398657248347733566706265006718810452204654687231223792700334117258717202761055621924843320419154316112368178489301302589013378327457904352251334344356289482337962884940589617588343208284867500329398343859037032114314298004976990208347789259679534874464626614541014134083568546958747826718739259987224803656535928441918289370572634303109555238370687374222665960765449635286425742620714270007222853880506615940654434261525820107810759840016833937065765137724677909434455887071045961060230420424735422040711987071992205193279179822836690683353974821494956141216521735567928491209652293615737497847679454581073030351455853785569429327278947932536517477036501977407251445624410560742001840050658055693027639629228495385060075636506370379362855693653056605059725506451687226204600461020371525031671604589620488674744021322112175367442889669885501211367466362265884773499569455520812660762016100446879629921131119344635739687370142649230454727371782592921870291471288128280775466469033297689989747344789792646919768270422208094174404716937585535162443598245237801069669475638678878443902915462367996663866079666443942347419365155755792515201436319215934333541873164274764469551623746486172126469568114032615979628804687172849436446535082736200230004864371271567072054234685724788411115817785003201152257374715705041248765887787520386252198444095942532613087288231473467606044436898317029736555037439234606777447957060301174305884415602961687596697800684568430691770985439386152069465767142707620827274658318495419216804626086706107659274450302991646197900122807613624045551317625845609896589602600643087135452675308937723226580564004238061487462113312734716164945326608846298755758229949964037982784573935497611054372658919672047190324982922573418565136353114451557877213238448183233334297972931172108510831379647236204108062601826478262027316124179972877239743294208238241989141516311610444055941791483769269730691163006248146183815076387558804305631185463697774847660702905681096847335949789186006442080625207001469654955637557104079736085662023674774646379900299270032036900121641813529915060300459916972990050428476910381222908425766060665642097976711241067886728187741486126442216338584468474473421746082414228466286305771107269926861954370278018266152334741817561991985452832199852010020661645740202171653068268825172019493659662555007307559878617439932894217700434483228385462302989453258786634129939319746359663818905056134981343515490138519229376311714350545042673664892265438298276780908230377421480017418058772279770904278123382417112330149057270401937827485202923018502555504157514671715230061585316385068454763740558918704430762260443692624699231267170333954056463825160672003361757965064915874059747678472923467466077501509467403152627368898781386413445109295962272480249068161299125769493349547521032854342837480923488855488660046409277517893942014153355193498384117278204300616748610589340422087408636932603637354828660482253156718840584676748515832463709831422667211266082552117032536881563764205542668861906318670620420114594786308961433837611848950319403408131074177730539241504307153586813217477205834377185063697855083838955339726046852061444037489584868322264967614828448583942975916110740836371778841920778356128383434077042433639903842915314126337845322029855546396285609608942017468129702289082543366447700812559495568672804462818266860374342706122477017057918116200327063671358695654795958855996931671939177604547801279555205950691901813251984286462256351064363718155987657111892836284409144630007541649260485799404643545103731248437376187136204502398742685775692554039274545151448554613720831951546214277883379992836839245585285663803342933293974369142583829923426056010389922933351338034026222777311837184440200006754063086220754514358523661469697909533687201881573768684277798130965652554211075398986656189414764329094490622035158172762696561751471732523030037378598006192337853650435692235339989545481420036970691535078575690260146482711565642036400365868317276693269830463281063286003458293912554356092335967963418461745279742885635580163388414535136660286284062032732709070294719803688123649925073037952977852142135124465140856245832209612328954266671719050243923117806745340103323259937824902691457886067675945712528507168072126521978135647647696105270432180665070413763614009286239085316485455995551253395263866171635683800769744829475046381305283219878950069991614922865453142686852108536898995258412212912332337678587894604807636244149877921586223928853794754010488930601875274493924461958198271886317501133162620296593661379252130496105193121107658839135946255142756048738159155749204404977450949188929589545778397709274764568780046463374533827937775778502590997505317476028693232831877348379967375033323169740671875286085668566449324319358473700893686827726733241924501525277181258121090205431180687727654546652449031615485266625286347665480752064498006149467691259675682442294799689524153707250614471637802266866368487544520580434426359166245662352786549677130784841030907513658715998875890262276520520752365886353655908296766478841483765878526250754889735997309185346438002879606886702651760705398373038446497547978814733835326251396029276019128095869182562654855237654945058235954779649994415375855311092926013404435280299285724449359796144554847149249943005645260733961824712219501082732741176868077873811720036422100910051027988312039425641685156175501823409575648694765707502920998670032080173995013146175791949027046432120333656408062680347615263837775816100842399429536556620808550090389384201045797227502604876761309020052561137139368613084639958469942338418945457855280209861781175426912437786580963354066334109212604509657697404191851444714031686393236345611807298849887011252563949455597438050344638174633499306214846192193792064535824009368836632368923568661399078149291218244375191866875776466489456319292473830272209837265142272103981971009129314425148470437351984724009660479511673815157429393948570590928303409645047845246259019695926031787820895856840495706568814061100436624140734786444093181944774604244724446679029432336750882709522082644772477799113385945142242452850881329850168076118136362904473789377827448255523329600956605940239630960898983213307566882251219679066916443332300795493222301381110386650913620840882672205116651902788277744939094179430186840449230712081417440651083661430479296693529792661827209019689865816702102744590145726974739684682125852773943503776294666679894328010806188085579300505800126136760957816513494099545829265994785625947169145477743628165523266306542342552835994848717649058197459326242599358544222482932134854730550902989154668996621446382587073381836105053401170223350537405647251249893162286089716407300676552876962047230705914033319637203567959654856872040168010796973665149631701883861846217485056657597513329648743480801796650629847115542951471099068268244171010834934874806520464223598234899811551264497896720428726308661828703278718527911784068801163955786539134426619484360824418135774075989613498483799691615508734913940712641642613165215993812836015516429624438341635272132347353876125000098229641903956268167419900305751822917131221958703730651357298670217960084515247033067380887719109516304887217808440515144454429580306174660688549128216806003322774924154947639148202879787508166496158686691939285399656303994001745190883284112285449270260792307748287109689738579979494027273280536476476450884338164485649964569103636981972410932832823071263761291337340913568254553338285269930760723636185914990832990135009016537865909707138809698944221474246819956994903959638327517546384349281102890617437176530822405494007595532237704016340552696743200200346735014007446210703781647784436525190395825732952100645247595860014802432356400452869856398626382062096781182315754883671197211414891683452182657863756803011043855492685285078449867158080466978874149696533467737307210510740737476057339335090474881982147897905452911553453485710836990433977357492171527196370654465164597561536358267399578854739922316360785025583631324994645594938489486381312153867366585066651988118878483812170846534455460328683170853752026871320491202355667768615226362192225263418542046140569093561394156981597546587313654524940689298600571424538884820341794051727986825204324369513306112306233901193772967911583376289413378373145019438468338202901744943474280609430100541365134431157334669277907738140028931324976670670831370200967373577925519084164563753375519959330245720226731047115456165587636235546513888694727747532257704072008673254645681835301913062560051527953541742433253269238443985022951969113519914190723330904407493809936274075079130847000411256615728328691102051252137530389711167596996381808215198357735692744862950057360353884627959899701442189599103510440583741893991504180540938462639987427916068415009192980565114588218011647634926165676047564117157395246686132583468429600999665857401860773728075734360594597278046080443282707024183643519989994072333866059756999392038738650349679653774185108152734031014274063232335524065681590939138104175560770539384937066880648661070080976200981191992716246510201126936287823029300067966951326362034621572783875825489246175823053310735716228971730412439928210934045106330830415463468847391812213901712650539265193184750185184038163027549815016477131805822740113345913530902451430693594795608615574114448223073548363675213839048359449133447572949565643744026432442606262309572896379279919167563845140634103433042586060158367425909766455184363172801396100106971911397492891645437238379223486147977393162822747027070052777003375035463804441322872053337516040455785189667537909136430903439045879294610071987617518290151650505879622288714981655370375339710637389018254421872116552660671774947964528064628055379582411008183205730065006541413538970513737985465056873613868450346571133178378670419694511495224418624199093026557329457252781098468558871604140329052498348184459844010064894970865971683707588641060638340615445962079444687797999803017967813332983800982692295511508359832855151437213272865616385437242886125511300099545336329749308212464383017748007444740560891773534553988332853853151442201958829701071958039735367983350305108859179761698583928764786270654655455337973552362989136743722626701211566262891280789883734962068833961963598217797650607342990581620710191639142274100512958406602900266259458340561686467095643041553690217746475980052486484870662490219502570858717733139253327968329468009948619182403927066590734843107193063939354858275256767269046339336306849384014059492268535411839945800180136727672948383987287989123991828155391369317971618254731451194458825380722127814628697259534416188691382234492337460739852817385812715847418704599338221150598716736518263222992530733090067977327339925199517522814322062362425412766389352095475999038958025824465213725769271588813368059567546858986010002278357988068140698974660524343687888252167029147576888284243405394978465279012323561144388668238883508600625578296225221968110734197278715229819821500420770293463475026467166729345652359819213283275862032112364084891009536939557900928035215536724951567277999614626779253618622614360794838582183823041114624156209398180539496658073820644424281911042725501586306954852753372887557526614203331985723806587660329463395755515141792451058344075995490284517876271736725177813824433594212990450038193958414763327464573471372183909118998938360634932634179423533236518999020853650981317404403918381458491934140811902843114650629531950649443528210035958397880688838202257626683271704270563214753130706647135838473284000105840742157082033706481162308945194258866609421398920041018098825321096841091818170516560737566344116988465217784757367059428374900119336677244540831016044896850387425094891437308701629951775288382029163546924610871092510009724052093228371213487710783716570205806727914302235665770527783305529097979300118099201596450987777219585610684753019856490075926434083954461397969230923588656572107877849476611206092475148153596713517074886680760239031748428734072443249967938719754815387996235513016016837272020795206969259853469423541704887332989040238118915463986162805314029914018984478170881751120669882408886332268745606733019386874252548889637901442091204214220038350125039090597396434335089888527813960709966052430728520795434971794781768856281028444976217259692299784005724044530445112242994848894633910834412907546300096878732053082202837138297125263649159157870159659381572330338912607506873524376748617388759826002575784583527997486151238775012801912056965675621897104995175684932703023631853148479442408240338682794770006645936667517374646421680543359745996193806050646872352330249758221045075291064380802996291797357257643547832516397904159445989738621494430403503453384284292589749570247607894216052134117819746984062552264273617013174755457993409233475100366542087956226051428192759856472688862365613969609891414564437189164447240651717446637796180005094481844613848757799761268600310077125748313203028751386982312983355193994269941088293145917538643136242644742187043955895606886182973997422002364789823599071489932122302176739788190921998822247164498029424202164154604593615794380636984525085830091343332235048778821314311433930539928729794922696163075371785125825985941217955031725919908573725715954974047237971786681228229221498139662442492575177276905685271812916037873886865759373797049704871312371583385150244037160777149505109731282521531882267268957758787978103515608747054370959110026843985950160268866021858097872044805478042518048696376795131264932222170991204126042891111774968259603758587939813470049936198026261635177356063925732614634288727221705060224503996745934749677763637052698806096139523982429236692031384045171926929320064618730725838528658812865548721959496643778601611024560453204230499381158204735411712109946930932983516958396565350357618773783431513070451353314794014694424066521748990988308594700679464094824881436381332977011783924705799878941851198421664652370178417726590403519676810295208347032442391209562955680865071016290944731500185352904333034722358933255401417433251664757764730812682593440376696489497021849180223819607720396380281194720403185925637250798097170908912753837383645987623239419605460799390007696522379062925396891617573808992851591182252920984504261754443395294464649003761758069568912508065671191446533154393691578366489227698441938606790275544693415588818674817405839965179442322608457667544719623597606170453676146505537284226853940145944394775832031052512737551586655748204113401215948640957855930877268318411073004867253588804392208472248353112886351578811967991494844257496107428472757129299512639257763871843502521543269565373483390203703646881848520215631089932335251209854040237662247582751460738804508203643115001166780146340812132181587534709654606349148658606532216782958928382287288755842269531569534619517643825411186348005963303625835903391459504792765033170292426557694017423375222679523183925257319364727240920096245368918301580037449356740948401442116693366135336226864423908309038300552375664842630714901431809611989878315962347059863678450490847898549534623183884453764636296213400035131879344677782346951922498575180800101034931335730719243833458532806890252486997787377860236426739946691081291215522458192847977891975482825919043563005501335163531137123040233346091351318607402327080798117831091584837985925702749886949797008728742467777152175971411147450253021691380763623971820010297331883223328020558295913080509499179905848251174769443372454392241306654473931603466674251158142387141350355207625546127935580705512098554820313226876880693180121636309671960262281909012066411440996431527296832374782820984723495633178305097411324352625035482639218172308667439654805146449767966033743889264810486515423244342089094588569827754691969502429675549697468525742028604149488190748720407068311855578413831674375693859066974367997732185994586462379998719871272078300596441664987785470624646274086635657893393381034349591990558903952709084654751084040752736231929722778378930573954849376450267396517547811150947794175017035438968906718537913782540038655304194001733249042166430061667194014131950626598395919485043424498413022553065632487466970100521697782473513503654719139512866998714313442051302686940407166060438521311109118983068896900685403857112228355270755758458233812915229156801730038571877536914200362365239621748248840909326559402313361351569715852551946532549668976056787832514609989015067722564935751836105966983600729903666388304421554459454510367801024642670505008829161237769184654846322542936581218612260657888365979878576777385351471135165227354343159698570100327511480114717928762884414868968269791185834409977023888880681243747582430328181206531059094005430478115946554923817323282706416356012492834681022714072138837919002170243786194946862570297171984209832700277604092062486659679079942162614338593242820236312922440719558080169105307786691235867621801852451229115709038330376919022115019580607991911537200737082552826594920334367342134338150456160935208756976378347506469819356254092424507942687276236503950338197751980072469264169191804295791980545715922835572660299938399559811228696488157657796177578141976754054710710809833761995082385365176290025661348925481047117312007104247962282032683679104782887171786480625472159655130789207049119326086965201047057818084754328233086122312590752354633979593911442524755059505014256381883799453820584149204041526923718331420810649816726123709291184051374747836177414323613514429787476405248373995380780663207822991290494963267677866803188850498332955370850741422206200967297038437901307711357471267435591016674998508233701778460602644492148020219817140556919177700023087298290787964415134490569879492936730493600690556767512344591474593793243563032276196642757277195856970041854385052719666601772555521267702621754399941808800946872797795822780466672242214937838321137798964874383162161973943098515209117527076895850156766056959331864383314753265991138468666252778206249547588882829548417215552588730804551235900496734198571217141496747376490587985836040271021216863528628147812136517549172815047230803420813942908084825902910670464932410469330033259014537685033679393383511187449674132997103971248132052367220973186128339163071079005914294510983551851631157908261570696241944608350373436168800582389987371393447716759146684751041871053948293887774408278973690435656146145957462361135019589179919616950651389237901464117208051607095694797516753104439234349559882655604040210966921983026453456817580093072484678411697641581945485180912351503877916190558860761550298486591205954176925472209449734732083818404517888004064694192705854580627662997599322944505110951752495531904737809457363061144569906708502714557597771492853473712388413473173199705612733012657318537173977447807184885751904296923438875950259125127711661336548810684976480759601552030097185680714594060786492367419819066556465478854323768617151062816942661431491992166569390811582811588770213239911761394714686616187261644063605416020322388955521902362698383356980566438193152797306352919060237523299952671958860174415406584913102559824934871492670299239792224389455719357291055999279057363610297824165236842717958607022352170878456840814457845668236937774030341755540041367713445324975056152914788819578308861362080470401396542920260822438555944388533945453914821377994801212004113153801395053988662826479162114997996537768826554757886702703340546801005404710897870365954104304587036228437292498788696918020329616776201597961391506411532175567297356102705817615018740780360354146494452649941863239925239096080488308979701833623879244070897042456014049322154912980002301384628164067386950951636123619404884756928434972784606366155190884003931000686895526433853498160548800362239531605460332982228578686290160413743326468818833400890567639889058157133108709353561821538706715298195829615387343723612141757043125448720203671921793178844516543514081348476578821892488212029485714327474283766352371201002544117564984420287104872256662397246672329850050364727332433826230850494154478446067854788513611272125509171624336567482283724609883335199776674851482766135425290786755875933187632379009825331783160051960476275019228120486513910756969060237576999084309525845226429466913514558519390318812813478387602772130511083956582102994735986583958720660411029451732395544321814693481832809942443770893339051732219399447256255002690924928961963479342898725370459593355035720529498135979500293496417910734606003043280950791589726129238753611768203760702992269081307486037115995843679425155451014039125513485835131031209538261492860653472484952908019831810051767195520046107412984056569403467285686680171015826388990352589723513713498017835990310836899233473508132841741766595557309734292228895072286122382288893528102028888276865388024981770328595693433098606824133854126631299065083104176610803168155614131111806630083393899742803368345584774579189007614650986396742459909879368401237610422059504486737632057404948277686776951054317761601967675693792711311653595136524425111305053755473446131091664016737332849612552754712645392377089461939785446516847592495823825509769563009224189867500604507895136428565141015817185670669685370635739952830843716308050043685920792240569254161133100524542697861525817177310875521052597807191710149656728350343351711459082689339524746118111269923602183402526281902274942294997220124027329657654909423577326808776662752536922426407530671973224889455743164485591645217071796867549040337571562099903880714138544311913508775829305175374082155433099737504591812385766085429672950906081330823172312975943096742776925631969078086624057634148274218159646717958644326917424114299099784587097399256150077301013684918945903684208476682002226984188329170815869419326845477076596147280343051194079305553932726631725201088256314511824833952277842862750570037895058878552174712061419968470300616401553447954326314018451557870664260530363553643511627940636302972744956614680512622208449416796902945588910853243120117292100295760815144226441503079188943778917790819804289557738303602654567651652576424871080237674257949339437330383464860703822946656234019717927103840267823521374536427666729190551298409338912377766479950880246020356483165990531656295697093129699750810448083532119156650373347111833944147859105115289822720126573470008198443808041231371318125705565883003332876422082721282789815778370490908885009470033610503760790587404550250559409169676009575226519377819136626361760117913427763188600068029487648798106456116315276456586671791541167340514796594465613071099315549141487840749972826403609090893089857706964165549106693775928458218843440692324562903493965868986890673157021411386808266382217027434757416929209993520511076780865377045263729804060018837401389484277930691945323981062236737594594105732690748815141945478179680819876442181631871785911316214524714085416769907357442122066733895938375676708438592239960477514570047065699999517907384839323451901252094378009891963226810471770407065653661426738979115989511749795487173923564382384718950156950211796987872210534086850893639537487824368644296585583078939997092538912575481708747219057747212804254341759127302426473416282533876544456293748845757995607403581238641118799820904600701854717908877908692782875186137126202031755223221699076931428274010089614753186071370367250104779270902921427375573735156034604753094791140381242594312100752490046798741873422800309347800350717141364283147133614777049453545229027617863994896396477438413150638684963685507380724837114952420015612719701578118686743290434327493078499401859750043082683322259885587386159124002279937772595881189957196780067134137346881768377191240793876458803675670277290071834638037005298429545366552018107410940133792496882486748802116484565741318622191602922242022800741566986625137377529230223378929322141377535603792700207328827305292380582317955472591957473280078494694905500592110637472810578182550240225674141480973000539615431184488782732977177674415679967303907856421443027833125833909506260820167150679645024384566106220811356582727652437775250291910281120250050317323381501357870077246461675565111731757221281657317672326700538462800319948301639270526002708360758768033208983499719494734709462753720715148687203121957944328193866715563287345241926005851936017508511633543044795667126390845699352319907194448847556853340221333688069877109125623706127012394435801576647587763147792335275815573704002071146247836500285853983370596160419455749032478128212500857737995408206751635655137328289359799087776120413072327413822990609686293628493364134301371626967416028659052608638456189521555863245903192953321782914134236151905234845908400658760144704738635180400864109597393452024446801275143379955642532662733923088346700870812069922918515002462241813509252812783319258322579578246870332210918604876250313553976879682679519899278206594279291390362963445301602689605307589149221683184889317885216830965332096141032842910483733384106572177897788972698143777889671348374834319670402423305069277274903676448734783387325393505633232767979957184736944350735852426263816648782256100479396987643784803561006579267375966295969856790538055727839705011259596363351811707363288832480013990568567519433581458634079026743059036749001467180220581007222776101212011774745086106759839992236585068889319055904605116724320315280879523595319528224763739930692206880586436907508441716344490649880335835149473090421874644180776293738299837917701527309351623307186727800492023463376897685298368790857397481990880784394119919267433103525264760929941784457540835901691368473982163654185905326842649903079337613265552697249454660700457633669317786381513507250415673647156423131767012591262676742302470253479747900798099901379522900712288273120306101285520510482845428627106610374133690387649774266166217826221978786548456180462540682352299407392770152915588279113576944048190285011975595355845807810555904081840111316215651849644823591929370587524645233503622931386186607752390068793991284849887050429774624632644262353444405816809255534537477776720082722024511477271466485114272857759706445417986723775075230249266590536056259502969624521608751116723130940120902559969156026125590669549250995980583107910272675328148521365560891515238908685251517371750975753838806175756851543050887774903441292772956650421641776836176895099592952741951367769944443682669919950603384182262789229789584261286776922341053650610011249600583923904796174350329123923107940192152863069803462073237231320934916782355090642499405012455384268322740682922426197411205366336460408013736682061930760123528226537227031181424939054646541513663796741842605837722208429529198055503915240262231770820465650316337887385139364324187387250414056782393271718787828606357999287099692323191798325375939723920303031963870557020575894927783338562669426807262510934396425816241635752585162450657336763775085310336659520117042527773153765286256118021572828522039059242895949651144333490645884844496290694117434487634962507619638908401516605774352679166123959587584284287884845462609271939625189957582303777496982704868496130565402177158912858527057401748940417764511240261581040204608157860615064530165316824171597377954103769431501544948825664573482754600944617813963630481773630638329182579436885292263338144343984698456165453537126710530967074489193223960570227860231436977422635433385866456797241361768987533647779809095644580710148641269859418049693074321839516298178123296144291054316440951158917582034019337068045380034216910058585628265595595703306424327825400448184544063961866357261715724006119743283860845842626028574614120725024325866867677505332807613336967378260512288621908322612543610854847758734680541499477340164777635356684187602446438753891801437622978432483915762691698643162978150813502001005483789553722123374628935415430607601097689068038262282988499342356356594199565159969277266553200562536730241050430262810066769404284248541483437526656068019901807588347757667205732880512182041970923625544328716907875910441006685734070860521701933600149419698364496592624065512889223698168997279529947822074640529544716916934935414225344934437812875068770891912189043707624623965402053997130790530184477584283269298095859384239286685332888504446078331528621726350423236793312358165599088676005449881781520055065323040976388888200867207986904491733763829750601116064416899447703865084521520710212231797679901006120590758119854343516556927937604397441924715213837205885597534921102430886028336626139596466060710757570387404922956712305702163245262475830048017115183942811267799736558601345555100865648958429071691894074748479022951726833825680754052297387440103993483684930979031237092716676877904076779563162263594808998467539378372978297077369433898028994598965697448439542194087441850902486705040370510800409488935879318311369289603959792249323531450438260496445436259400999668443022532111921794678663617278978872058499001978370358068378231524071649627274822461712327889662227794936591524356925438146891426472758201900186660571635041694387276349089213797907871629188673146893284091506939426215445113644741594714206800190613022644148178457399722746310103115212737557380798898887630428585421591708665802360931997636804904714881271235417927031518974064145895958437286304799907954367160013341775855370871665014952420095871276449616606908654451497650721060689863132567389213275266635641046550790522527533027448153404690856229925764648531831423891662596536387732354181842045839001569375126938596895081436901969671855897552091604641879649773076518640742654142892190089910306761176629716010008579325761203715805639259136539695943775542437968030371129506742590131880297300685356540600013446380092334464618056371933686099144522143425373223409856273324845568784950270698744415733031189453673692244430570586677865422380318016748410604887063924806383405985997962065845464467696373984404914959655586979563434621037312554967440451826222825645448374090356989271165255693797504851837203678446590672893546542669688206900497862086704850397660425968547572267291687099763088961750901961502656600315975684338074290346770109029662259873451082163069757722691066730929284385884433127008320593962198692426295074219511276766674070588174453744348563107374247331446080517468550468723204588353442047648684279695417485403694723968539276095533045955011766090686990099614581314005954572301910046980241437600448215388211887521375214529489855332987302114881600125569229253300786091719512287333714915285297619662323565745888253535953499473580317183371979372970785872626077002772862557998963802807914979446208746317749909371199828993319941217734061572361618132899129667848405904401161187865285433882540945291258660999520878304973628642612263882973252001798231277179034283681526066171811115579485424515477373365968586510443888731090572079564021262227640419845739141439118996342903032262605762643905682562180514638159000738078304862010114346551888901017646217449763905443798371569492067803991878648870376714736574438366341815950836186753753903143576243341186875580511980295340054064783650958250456134031073562236314860023400603108587674016419291751995700866896332695293182550358535351270703110015312004312627722248463322867807177552756925953158265349648155655873192074899356734501186775722872772443640450600727151620554340551573670617484616474036747732958442607573061540263113146783500590299532938448598490523228653260819590750133399120076913939698234780190113751048207411272424396632145471035052642048851304817902887773623117137929358477822255416494690140589424799461547216075035334694007649578294394676710880959874549200305905240741565358829184964212815217732384867456068554035838625988450045207938487348939069251607157789917740905584551248254884587862724239148081735192002384535491713741616403967301047225346030491629076418282542310533319430727316385841101302102269243792555724644496495958396445435708094953962511120095717490086339306847079421749386758900724359775840922775305748306341657630965234669672734344823564442870817082313702909463994723603986740017299458037307162208468576467163901638481305470160473509834662839835800139680018722820399089790705611719901302363645652864772882498129888768426099342509496972197537163144771839764244948792910204166283790032759183560597004617609587466274336405264941290677235792361301416694964951668314057125836133492542060503866245696430552501915622034513812573934592792435304158610020359612058311945129820828603063363359022210209292928157086871051883859280359400238979459841800855962007603099374537811619896317019848461574590483610097430693189222418890511732883727409709271288025970155485331955811126645829524688431351552573687042255907061526217319222684521849545088226292626205481042072687821176223090649066838986174792561217194847131244405422709589712547262601752429476436405567135692508782828008448670174305877606309805446462994254288244381458180526388960541509682235526791657797128824301944550657792478831578739234850797031616412108093691492012814627202593963582167891267674164456434267900872490699581814029358805859848109848630166636441803723277993174627636174232205792728299399977206100089778306803499707259488227781272333394545986031546455936072629941525140550748573330928466427363734086199078505347679979935355145418003895753172851691029702900311886606682926275026276205512967037483913670478012701876119945791402421214874568651553272629182907336617598768180504395071336348791070067356574945879099749592839153030751765860114174761554066315311222254750738077540698320480019225364436526004889598675939893167780045009526941230410114171750990984967255431366303250868085804740078438167492178314789099651774612409755931581677760974129385271464330665251749719594154776407336297189138593687389717033700771366613471324018655481844252756793908695048235050260601815830979510375915808024232836124438149252125502367735278830827487925985859680810049607208076611213016727243267173717985951788569737714176743131814881091450306810547968834902831644724217758776835662332490616720657073356627057716395144262314903211735848908509432016164326203136474399798174663892881337714555460868083639729602253068948815608687935999714928451470324802859818777837458818050142191671584035165989252676481984104627250119318701021904617440885913517862378020563816130287173725910312689490885409152363110355880294775977509066685428030152269793231302758086245455001974443134707492216314425037002842979582681971621165135907644046354213642437191158908610735174929546628906023287144786120517470530232976030661644867288947613477463377542071574156388850186759987942377918141759029004148401654558212122769489289651087882064273253002158607909725647142086364127855212061780157621300008424726828312683288733768591793341710615927243333245125329718461008028270383955910379465270955940968197678117403274931934464002545575255058716085251653242412058945608027301049946492780577864225379963352886534970875489082846147798671171876847657761496914597728536496107745894904807623174061282553087726974021477073868591227193315594099293376708499230117045637068070017526743718204296585397847593426328744381169715971676561733198295370688414277284591493378261335305917504739770293758799587962786824249798672592376940477497588337547274212087682613636091781396509533520574866791917732375669808195516839062223116861541442197065889546413454714296282548839447058821781574902843495246705320466926878419802291573664703851600342158204011055581802162148293513852151361486249310437780231707037631980041627274285241811720050320935454651947591990777626865008019529314575346734587870744473067160719246814555010617271140115109090969861613357458109897069546467264787401469468974906276682115163108663560140642032390813435589751139823761523611853606149177052181510277585460082129341366452816394948289135123202971237124412938117428728545421488352871555294763232634373780986513047562850311071401300514129214558858576051405907012338771474001643041594986360090111769801482919628807750848068866041443045125657645612810554778605287131897475204375056018473254358751802397411860806697820058139972185554432649198061739073312034010488769626189037807901435568209050047416091427257737604706383293328952248478598080365819172379705551117175488234462474838099525592217998968579307504725176620133794872165521022593368562675038350691897747832331847796845060652529134610759380503156581164265882054137321742869674075340900724221961526474846738215061039411419920003863413672692812033340803648003989299728330484986211938813884144192899787404199555219053155750349315269316174935007621082552948650308051565063678481096382239715083955802010504192408011949590016051461323467555038438684025535852321228209493484609531832406564435417125062495556387052934827529192309415453593169506348775977427522106874871405619930328238798562219605961099509829917987548756602259197056618970933644607537957455178907409650964229232074940013585276365181081632487377918046065200920056111379872165376774615313251372453121595107477211335440889964342321045967111993922620137825682038429173934044414062596503348151048506030129363307782880135365214344544356943982536507949975171476835026208488133752934468864580889290401929066442081084680805544154144010496022864715289767728984639900016000800197496815504043983176883567089836787098621749949139851457350690975762616839231682514509581800297084307579523459270143571470273099558371180416540588689110287867384332141893225681688326468666970810030745173856849586531127701769006231916538493034557288252383140248113205654435422559766485622157909365905228746501406434637100624220882960994393065128926108960658118141310468507016905202469517417698773006700339459407947135536494793602896935333167020309432824882741267939551173870637560545827212565217433188917167412510032645621672374545877226467773742423311408024471731699026218969634949069286898785201795371102908900000657047152610044842469286269206715604499207925596675232510569299350613453527384406262131247710357653319521751855523828191639925536007765886575946596707112904458219169869770657123896910928001691526814378431373698403469534173114992426011295520401793406472889752526292368211597266289537078053326540241417542923192276659648382477888264529146746110862506271730801019731311985325997006047780273937162656746920681041165074880323907726927016187697310202306806544450286491137026180626045886675518972134754362050011679851060005905206691816936287098699567566447365137541269914720227654738467887998532298420153091038081907467732775147171035341402069675363042482874699694137760768014430857115344626625027014184095281611208940555042184258656070862929764610641244277711325585046736765564853332371358637101851696945775392766521553123711456888122083456442625584012473927038873527488082611513195914504516140811142496395934056532648585858604090583175278871315510073503034095330741421526831733936653564446799458072335144359085162246817357648281801041183447779489565161545359072501763579742353234723968659430084028605623689419686813141071836561807845460124405675463263962668343022838479311826638923180179294323698259127050827799965472119792477532934786126945645684987862402539491699837832856953432444439012986929362803956089106739218076395585626862397726591698952055866223112329530104713145231423943064054131088927990159995994924132161943291500867554018264742630381847504849170496574075706730099266827708383727327039529417851105998393576601290625148474666745569070670649782024836276195785870655221770384000024308158552836426969041484618375067392492756827965451725724097713308260690988818707126335572954183071344664078691301558808031628314943427389809988637107316289099547228334788499785665162301398248026563353600620396489651680850491486408981503777794242807163440747954581629163872063897393977251841821509160085688295856972976202988953317666833989909778088874467329062386031611255565207495692967910714171783895266603157975860373131421113748679797892514567830692799340432412256988026354107789485616196510271780856342839448957323468064272211011888779731447788636616984565470387738344035646004703667918503448091501590107872227292195799633665868048132703616578332839190631202246419306676800382914106906844130884284369802086822742760685686579994642702523129318159709662926967515503622939278993242214982030586946132754366180281612658431680038485259057951916545522733698770559628391652352658915921691859020542145356859495060443429967235024545339224079551851102182499389980531232489861466819170809878323456081081348096186910047667980921560593411893719836877035166206076609690780155794382737155520644075246304979439841471063704752413683663389089450798860459437542330599843052167894415735610536820162999664011358587439473469947291274000992285097794216670130587015364098956491316451013928782710443821014671680042951716766784120567189556758272018102835879482637350053807778354985558300223256245669142322354758800893183316715124378616123628048840383343595850698997787354196398524796546230951998983187297198454197820172110176770386378111021949826279202591629009798905323458028199833688846723014109478692555214550169190606170242896884652727290785869191554113551063974158356994787637519253154352331650460376240356545968572895700494679191712472054997263471083488616809885973047020547924806497217017883410785972005975146399166384903803898781551159034510581497957275400250745033210599518283229539750473074686416306722476765168174464242822677839254616619765347637708329206291653142683543368801193064966112398469663463665724321244823532392749230561395767504574731081133599599048199728450895918340014201123944799035128728773476283801705045964802039820478573229256227648294454182365415175294742851109045654515405980795081471568362741427870908029489005578578087203707047704318918503063588511314567468703635421199708167114060417547468958058871462374804473361619183159154532398730264450048604651126341259195402636087074081573982822056250224640811200034496319498596700501111190579104602056743023940811770847549378827008013309804819771965954234103650423788635531010802810425744634268473520319407670139838640954886459356621083436321654352207392478723350660935592327395687576694991689449615292953175512619950257004733678277217729586912993549121822202099655921127694101796407130710693967056039366765820288869113019683438589696042656957542532130968886373905566692016606183029604414050613313309527714541896442039426418656015311299351802838097896184369423945773571316458799079810545162369475189531543693579665370490976582068891606974952877434539870420738443598494089049183855357479118136995594158457096577385494468436551625936198670331948106132424824905878006899916651269291120174608249053442728305445416761826470796403382248272419658543759028680305139425153136570473685824682180190303690146073266623190267637328899772111290123751323006381637704830840224124471260266441330714891728368831736332033860094835459940482914455995565708115438490635863077772476175584401758887580837813256632731633252631873739858111128824499614735486356059118251425698996077961822551442550715382038933865854269683493960893700071675460569314732728781501528243963563944088455539893267575001538698894357067207559085402671148480327247718300238390972348121272191575166650367477568217320109249641724079336385144450776873243536399342511064335562060639217095998702338585802253744053539347627624118876903525521015220979528648348679542689431244941832339649317630196989601343986372760133723317976040292538800541757839223131803863317209433290743506061057428226385832148057423722537602461003449973772534635176355433814920163397521985970549821378985222871486722791886804384698185217948424990785314042596560094678494400799234493991839611577292151207897790816022619037419766682855989645069380103510914739139017466113981081123193392856272584906360374627552221513563747456509661155573277827215295064212833160890554158256008043232822747240982523998188094202634866854431833921847533874936241343740096413466964459884731103389412305111873355321751218755769229356476800090572465293510353542270902822504381243828524409156128154190450053447241290526438524565702094744006288715309000594795576253537623510777998103300155326552587951068014908958814065696597909002106497360130471680770228919549563222513876161162981531470834004013566011051363381841513251169238350610885504802386690056618362846707295747820321410775982642813280961797806844396265965323720848010219154899946793692252154594409418220385663695637296177483823683092300269319460725359107959623640049390618891576346846972097664271235948387345223934613210078798060014910892421940022924662451996244907915519397876150762089647494490929761788872284050786104719747005620137316280578201379246344163940625999895055404963258062396304843341711935700605056480109685589677107915863650397113848545586329434360062746059606509408345223193706758434984531244414763722347041457680992979541944438662948999786697509890402424297690930687906486883211525072448398637742703728304562738060171419041002782356176422164509551969234431939558567548702091166354291467750195010372685623294921767529229178247081034307517763609641924712516694115922051881108993181600845106801332388622093130114635496590130722326204053618894582902284364217012922897723955307241856869003459841915045021397849221759286919979803728792393996208495979674500954330956581215015744451631000693117373719869984176787243437825064518489082742716505173102182209845643433510796253788221555679575762866507224103905133897510352290983624040644118029995817710020516227133966216812558247253749555912019716607247855520032619895191552662397193332634115452099899459676785025233975770500900786357506276696241506821384998000197495105893405473381933787764230961900084401769173335824714481269221208672673915294655554184587571430833841166887234132810076803848206152308900519729098711779403328461285746740684604904986653615573843467324197751939573163249965514329643349896785838684403729750790883094802645207456654742147241761846344740555232742699744822559325159814161406850657865146721905907737296447194086633913620050505536655190296514521218080291894555311743551686860316218250424736112548027253376803905525512011428912650862242073494678449009075967128742245148714764240179947781675811679036098034414162345341233574132703996313448298847041213100179431668683483204790498971963432803278987127828034874899384807418258070115736388755157771945166828249425020954801088408416258652317380474048391075838822569772446255813564558336931309984119942923902676592042184423474373845362910199956698571392107110899409635950081764041882841108659847344184663689563733943152221651101426430919416762806774528840170208431498119065956397874801402089023900873985661891699031944156479522514938463284549714650686174121899807478838108506348723135370076801608584075027292038319475423913954860213378539769407721192907791954526953409254231311761773592687015634612586492252316618601633015977096743450558610858960125306484924468970940978143738211733874168374328942130832861388205315117814906219599938623160762520802793713161443223327293603622392841151489116386102119820242845882307897049045698425535246617410332510870671066027827845366582941513141358097609005357562969771772046854988368013556823042030264384982763854377407643047097873484076248816912507608215617375210635146872014472387408645578019775604039806971246382322437234877459926375432946416540726195661575881069993893131014694605896652054716348088761274538167475485002314544484891437512034096227545800218667074188721977623026580483046722852985046471223908022237819279071946243864813772417696172209269596492091861517628727989091864699979921344670668102073817223517511915572159210651006988070829605109794229351944454327306469562964401643753027270382475112626936239763199250499819791744939357049267438796017239126897487774934309970246906043884524471083013234500775469079350557324120838923003651728358463906005949920981072353457249102721015716032828572878163199102452441120052008982334263521304941623241769582066666612338873930677623200031570538969699496967957158098175007552182048904016666541236272189106620197034438722733408076531306114250892672013085234240498737664211226806200477929548601832294322101393163004472636949708357030436865232116537835216736293824465229797457147355159345762576322795127182508488497649724649730700053762015382478588733220564070261415956867380029636666715016156425086218294260169791035051671384845524277627536409298551350182125295610063185926748232135363062822584017899352172969486494575945403173989348275478543267003589935752101171092076204353292872586076200874497208462258996398041156928288677522550263282974261816994780957614058784389113018958348414359016876157376539395155017644857890859746491478477279679295296093170139262428371494552613810794531995815136329979923967289416769798419728383696026314948378102585293478200959826181481334492792951730648294791493992939000053260811364438255458034496550604230084379816025188284455479127368576705373836864090001660391300778142308279586825846226117551908063566984242584484743132072596559254034831602303428942808862528961860524180936300167518449211452739252507320283273267042597334153609497000427479472637383431190513318589585515117337473450767933142641417770051997926012288782832414573775357126184539364729147829225965383918242517987285644470372595398253614075106632107766897501065472622603103732971237289297332652367113931385760679317244167943680171685071145265481834924367610096943900865179724232885318667015151177772525176461560515907254814407613110535880598358365532946117895322025349504663111130872622516512868493540859419168716320167363087382419341825127564034449856292900148697760749842964234908394808586369061637772727214042806305881856468092101781482930430679144508356387396776662936095560984445564195462068461041477262576445745653674699313515441302564179065399112812779284104615807128157343413182342406281805970371019164819442652937211351364046160397822505829003970141148321904245326569903614985393062342932030509620941207638695901887835302099889523904664986811691225138007705811710754514297930789320689367897605135753498427401116269301013564328188104967549501432555484131792918120169621659155337763519576296429284507090627693219477694754074155944377082272290136510797557584237873895307342017243395964264941548899152699544465241666497681279872449069382089281547584907764125996421159142934994048251657642469812854227637269072253748236321332879319965894208095620564366869599095058003270015476964532305781805562198094075773967894134589074339779301182155521885177095167620372628647898882705318351375260340591645179496762539155218174519547074976599646586261907082423613964443438396432736100582393006304663715947741866720596960601083099535123712944912888418767549379452979008329385696904188311415500250243322203566902783668167224252602337631050728841721761820218820463078848259623048931788092143595119368757167575854988322967057799702843284078403465214166002009020463104339960591393913578515795544730238461198124421260927738204741835150102553262942896070027339639850174763727300550350147278494624212930877522267266091317620562091969578352583862470752404043012123780808216921919436174847225542596432125477245303581683478679549112536373269563562467737332448521333007778258213642453695824703685321187921721719672503122755203743726042330211179271911939160386815558459231886619130800539799159949393847295632899053801718256660826101137576487723031900530749641180834663518775966744982803678736432656609108911684139668799436894912985913568570760839470456289197620192068250667395651046523551236823789761651275187934403054364294146146258304290134048928071456696086239488538909635267249271587248887150035244049216390184061837084529921541967400389984162125825362098184804034357602159241561876655221242028025249685964891332561812469365517314513435954724173274254099794878910761160539877018657272772425992640070407520868057934394968664668397520740123364375285084291982832607055573062265559379629245587723889761054417321842143527225037177437706564535138871362551428137159587633033949014621871342156242755098600288581292423528563529457479421960539365744992715611593946608045965532800747000818923332811776161686032924510062116122715838100376252609305744182436289479367213474575837018201353832284340221363207251433568523066129118134558604550335417120729900582812317378465132379335633616369069208220682240287109057168726533863371783388512265663905072499590005378515822814915015170390871071202218743769900475485879228961073000204268216050581439906351904629719129336478244021150483998525554530242469735391386250044456538278563161946425912604195607694536260107984283384928985935046259296352802569254859432806615224333124883968830331671119700331525352873092250820789910151770989097271896072662321555764307644857174859217256617395546025183372349939578454271761977160441763387024921439580780010253411540617171124341135753438835430552037750797663719352834059149616358154183798956069770113567209601977294289978339389864901634707206027360410666056356664602177561139859991098023479979474000533120016264036793220063167188422156869375021234417562017005170057430664441429435331656758255685240234590868825704597562677812465423483079483878697673714960333388237445367492284166306268593500866995585034850185718583443568549821709433211622355197042192267647465947866351761531773769753991966183172541285192568538840488999228120649977001187777464580784745831489891718310622886705167273858185884691087044686239881098823878476182507580571819809824667857760592648458458701457135960261379525041175779144655155462198886530486873906805400899226723029017428656151857576044802933711942696135956173516609438737207223807668802398819238119640493709294246566642138842598009997455890718335715218290873935661127406610128026245120051342965298432634243188449434974596563026359715999848804949682683317274284382560428941185090299430638368928917062967450739698345241556484884854179950766528934177729737667310639827990100711760188426529093500574612087279628889877179701446475229354966231070094220124605129715128747707123777507462595575020698376798353917547371056499671609539171260489645764549162224988274060792231764405839392413165073993631154459520340776540332646158227596482927700362086384923173116970899905698004582059214882731233478620294857717773195957937511727343411087222552938775585607932375580745486941832502718364315460608129637146252795383421188902210665854743652608343046494647315157324610495675369034942182583609891596994256157309550292783809771162471951959072617952911000566154921187481946617717818499294806924979122916560965207752665824788047952499782923626471206433078524193716096824267710243183772410594166183733402148020255631838295624397392303663256028438150016774338663017792349504456376657005292609813773118051665370547472200633900983495500756182622481297158142873327543864213178189323835480236955837781513145418880308974811336379215663375081479271119244634813994918032535095194405763616269089077091699186272299987874959655974825244716004729678628698651678353996699757050465459350048870166369341979232632772655594801567849958037209341488075890420538154759049522081175077014366023151111150597092728688625810694760919481544310506625370273181495079835197061516759548811469459185496252916801605514818209605419696625022880655447743196546672757775439032551990148808094283598507871075001500594315477239215274273208056877770150443644087947248877225149742590959280150855243482977221364547701477101049352124665408920270374244686604347067351191360741785544031015602505963598052387732727501758596043689336037184414281693879542218856472456201674050718851467302152745037279844882143742168042404561478704392381711178308214368312099958069756526426615708719281384533731636523100459882736377560010225754355540731883710182227928642183157210386767336818913097190911641714435265366919634575158266538296983285483106225594633203454219901139200428430957158845574990909943265763806967940932135815012406939725219208132609088796907594860547178462265832017151249605315781518399833475620091577534666612003442608379407063067629684105856658219983406184256478579679498052210752684629029400977197831340298221650819197518148907324118588049544946697727521284736770562100033220375205735633021512915449455430630174402602892846989023849068667387068307363663270167226861478818265733740094567629565565456014428228382393759163636043902234133892033758498277502572312341866754918249715865983755935253511937891512746300954067639290255893562163109009912248561588093361380078963384155285819092500914619676467824831484197033653298943351047322829829805037612984955574479518425559264617907732531670034485390176012434150502981326019047978024348191607015399105638297221481168967364120411247074931632855433271660773338173770799351956930764990380955075346593149808865168317788103715834800730714338387985409762733370137282201140765394929275297449122881464720571384700190513485277342086793203879518796900997005004389493966323203070750599449466511215293057088125858358900426343322722931900214778130265368017156619646661549140797042536740849272319028787390426602886723010460613616005959490857671668184106955170163245804216981438233724873365049661394344969538862575105021148152048500567903400695638815890771483859678818108815326624481270140674700920943789601211819072557021456017525730032676899453398700452033129246150557814332853583040432286452030327427445973726239656423496048477691985223782577115469782021777944882306007117353293793807350314325615560837780826693614237190256333347220979353107799694124568432218127490820279101772368164769498169520497849435005603023890980572069895038196761424612854919576003272994500631939165733858578197857650942093574647209612307237648554787490009913993196285138635270920492960121398164635806627981030601618217152705133765204356480618607619605212224092635137224936486395611289080456857758520851300505637763993037834082508958449564231568377685216205174452328760627188173282421584367635509392693424897855851918168151824490535627315303386769523277304271071857636351941231406492626923699446558317243274883943913604804158620329446662009622275138310295917870684383250773008272422177035033003394487287687948048349475822314283365466482183220775027180254501055510645852628360544449701280170066373337634481359971011097817294022667183387713908041157993237275667639735770426228052341980604709180850179648509692232449080580169406732745562910025385480629277854307718529366952821766924359485208616624607209111720315189564031523330994657425690317650204371252815608384967969053949862638302383848381009026158799759027274630706058274675756508942470358294432346496037546492906111833860373596773598887233552967845006530346499619880731181849781302581281528787036005530332406017980260092507222188804242429549872520915170035972569259322962873740825146322143182390746765928227979514269732843941017528832339092151274526551808453463609917251948976527529197742913697290400792865510537029796258384332903909317451132218717157562638355003479623809185669137997963338955569308277575914341267266123855553890150623347356286728356451151425993446684484865424275452442272069351450051810459015968102887914046410742011276933468821795833691115301035794086141341084926758954114286367605992360436239438709670784432996105660628963852607481731503505657437798257389065107760619140847184574046878173488101854131655607617273398001105786706553730140048682247830826612238883307810140931804199353283487135182006746830889057588404135858893337962975697793184683997158712143145207574500056796729489584720859067944772537170542130150473083502538721578471193249637479135882012310712097003787113323365619392951326665182870762288679241561271410598969736626733019017969560978727214319785800662193627549581595711314989127306409419270320251458605502786316849809457138628057276002130647073877236658401965052000574633867478384774204856364247228584426129825752397970090092668656906351682440181759894992837017395945346254329225523710194571300729615576564191905092840597998606694742993324573752137520336166959722516538589618152897990837893340024523057698029982075443775696598339688587414788256340260672657088702573691740475198463649555270396283034981739158102918701205530588422838472267507968521604752491297879821903183535794644277897753783914151141771804969360240075909434241602573772675397058205671984449994987113031304991908803011404798748515415441843239066986683536929420590170494715785620307181573237951748733360265665938783184162821036124996297191472682358030172556788548066664730034381649392701472198959184714944585301870747947831136877260845166525462539004119404948681484205772414954982008094278499318065910426771629717493603434902320322352883474387815749178868410849479298502285690944490517710717184425578879704616258383498897968661592663974696740422177719911156249654418914888363933542229457769662238665284616708943330606292996054068841085592093944036702368251704829524543496201884739293401781732785648584430907859489657171523472462344176906725017190553942777043349687879340851111294211980609917862470588208620710444091791282437250696121408232388038718446038494805842099046772905245395452273830072582914752902117001820858479373123849319596257995520774079256964956946227815326869296652685526268193517670042625291136373718480589156021234990048705755433090533038788809630491490994211427704805277358764280526845775034763833198070079503496948318491605420596814737763261296280090752611163115421799940721737290716050794528506008479327154913583040711236663829132583253979056890341514046618790123140069259867808830817053595274177632511324971287687208818727394444348614936540174010787730267057641154203284064399575777233171034396419535541574996263912349711172213507733577894141622681681843328425624856529468389612259212819496573684209800120603610275915436933737509377018658299482284951805078875920290080266321868170703767184369702742407446336149954481269930198488105809862624882600802536381779933480194288783717956285163371585168114261078310462038637814713675844991992516066958224982619745701598129388109351153542101875850689931447186105631622754420309512108090920449177184538566085679338960685235322944243293766975451204035251903254182903331085962997554295535528470456786402276929769542665439221580411462353512630761282609942983762095029465771818573053551481499777211994145439977812719401610297266993624288390592058603593305232200282978286015463723317086868155092699955728359688646633515852941784165060544268878801959158867338717770814918931046332144510684242901572517112007398091794729402981779601406765610376125139854804945957553944445669102123343002578209325508205477559397326385367653353623943757240760605307917244290412341995070166877905848692468415327426744837434631006323591150920874810616819152929317784267478259863345856686015577301894689127145782132599898057618490227783762377985223693445796937276353042216421180924821175929726432380402642236262342442643383665923125946697360951741689281771431503672341186255344396018865317796347027883368303569256159857165432583005762361581768666840911978765565582519832338104371214551975101670053381058101748691339321210625437856798244203576785117678614453038453853537697072778217725999531430819716515242673813938582557243822742456085327856062191081168788591868715289255749292370505721557849285807430153289008658602063072692094783153588021556012972783836845785241039643251080704235808674000417891190839963405143909402330399449333554517308942231627455086047744976141901195020551467071728269050310155289943189640815384272814068981662956680085961906128676484280737883866795109677879719122554237961891384161956973523125303538967342780959287004759249063681393914166719504010287993576669660290681827890422928421320894752976555843037837205816484574693946633694147239093721366432460196351636222353392166903873481006880201096136922420231835602701506322017888239855777936548502979742047542368591609090038686476384019199356759069340853896506733833927066652525464750405121977081333087167117261550296770777043874133263879040177275569339756967001408981877640640680981125539617337250084245717096061425216840166599436918631111868299990174117842551256688424247938010042943566902460934851682008657330240797468284924223665180195565277023233013214656472613750937850133585121362346577267546678797393376734456623578626912234960783232055988942172329300243246040128037018038362871951721048149860968849949354828375964811599093077954554434551295675497132519183598992974903867784800988972141559803019427867020540527836624142099433737063641339188477017418116297784190558322722124473254408508102221126592015757380766011459308433087544531693046175330595534917608798363911467330140192587433334890382743330658690990398786493714321855079467669563440559308505397424879121540270960200112706656419965572831484387441884526251078275489363122481977234331979421594931645204464115717449257008388954610444206419062636932986005390382556843740994889947215641878991075927064486193867551312504227226355116489541738900281990771299782725224363619630713777665219893121139737443372759041233871139987314711135845932378306571414141061096414674560277509829061250924238499868707833833737661429172721434338939818702752912457706839532599621583949893455010864140831659317429384777460786364165627911392105759276489593895540420568303603195785659371300903714605796312394667853864814579867083854875849691133028417709776872341946932124803559273255590905390867278695540413713888027448661615537285424873300560085452104447782707162909675244742261135483447545659508677999012738554918690473553857078993135078587671891465627983138992801877043646983412384811390116113813386702369225311623080841997054599419609841933131107269016585758497043329316765009146799131618277387408941277749581058235932008864854623853549545662415527607078587831590692796186786816168359157791547128872270161993573164928517064097553195768613352073182584802591067598667050650599426525880283637468026957542547385786607055857200264051040559122368470836543548211204080219731251464368926600673382538503983753941311878160135439553012843868445472574695181052918794819168594911231398647012971350645982562645320033699945777189445044925382930703069350809935040872759491878798103017432456822512582494591429502299006001826372526314834007680266034232580866675756276849970492815269333203468354308541524921250808523818270601696427607159283727113837020926518756379575463269087491708311099175913416781008493966947771037375456942571774371360789345189472828190682000818421126807079499649399808841703528924578140563595472307230249088600746592719339916363567807379192529282334425977458901767711277039517269334532507238209676286139906478662607658622607950674443071923343695684374019268048867425554932485187506609022445496948178360836673573695935078701534807905482509813270643520547076195257055167269437596686544149502311341939028013546312101383949767999519110943550099859427434889501858423379510181938138970150866616321787556519122869397868989317189464413841208077711349787815490334863773307158733522253771961467601498539122502297768510472387488128615917318320399286120118511905083711800302288410635555257348949286271733582529761274985884277453954314828524233659288146490108465824819260351697251343415109651143978327182604875443872209555820358801778345929106094750327316027120218050677248032043187988454636676771544261011126679117590686494316209898113590081722842246063582008628046872531340131720898194694084976558709349065485364076136302074883605723816812720266864510339564014637515183379741281564346567356222521053517291411922345366858270790234247337088163030297914123514079703305523205663093700476653313832407078991972917423315131303577590473927515165049500492521119353902941467062932987036022845351575139981582368328291959114089422956015658010450774065120573091726038194094631209660359564548204530617593838989177369707778999475700048175866256503360661849146536335072107667713414769032896037340484759520326742602942055352137778658874974228821108830465337364893221921268580161365985256362724923818625512726981629716973358730489199185581058881819038510833813838462552905837682771838704341385439649780346445689873044556695706504758715613259235163300855241534589200886405700589404238269684984587481582321418838290925806418810959128644201194850607798937437145145590618667926323447247358967693067697108084752820426712727605870036449676864039009928005550531373167856730827142583655811388737739126740036615499322905688871595344292764160861949138133861981596702739336123940650389049945115357140116129179541537895320633625689270087819638151468970912024414835771003631007583762002798056356520073089830131773243633576594767529752613480423499683896814493095249795272849267480007472951359764829087224216388513171933064839291224243647160410779610175053541419555239083351121839982679083093748929216154234657180693010239985141988074238646738180901769482789179556532890961320459885817334991518855832707345590423249780024524958324042466940482913927833093233567112168511283137242552471534232182604624325621881844559341145319033953546197227808910340807091189853879397059717505361577936907332162243398007986983624730845057952770768989526958783988870225342985678175059153394229494533354690960859789164734199187339788238888287801557677569221416830784848797301325527453725723362886267967629569679120706858695049649872029869297902498380952503543187307261489829157950307409974781205913016250021660755735989823081839630795441604009728838570087829515837911941999164603915185815899316468624188349305659070978530751397790789288058895490034634422695531235583897631617511483184855270013088187282019560303661517179891048340212321177144699295219018431112426839365564395551044783886895590093613686815157686200636090676483176032468908201083960921033368365130534440490145229366763650990254647828753491658004020008343420134583639194804056970191480968587129686780029991840378879343730106323091180341641092236490725848113983459973121655675401049976638869988705099533522155380406235935810852887177902975067535045778796439845528154801086818308001358649120729430172339900139235478099127399559249115399665252119762533433954765251944049118727725427921985089147601919005981121383144558126245979773313934900916705294133264047033933007290333530983853403381837034595691510709558901901322911950180676989281342910405281018874440815795207783504982093253731399868978590985098490595606200241731664317594514961057033256799133318797285525052184928564675477796883565082199014056845971270609679031402227994327865859555800492820604619515679441570289253980472439843792944041334732972735442204376663575134587663979539962305679762853585322107598515666690526201359199746457392945900249629642294255871668934222789459421272063267449762659467145937999900995727957516601361511673653197047077154730664015594462951042206078548545255377051875682334776338256639210465247356354269415179895589411466209190317813602805021472789010596012533302542767858288083190539802488818115850819944940894723629000557632423053020575639090793969784881921098876061153805217588654200918237841673156066668409392120998234822806147791112566145006217342859864582696630741225275803471603822805384713201062967426437839649187442405904711055104872845306867227364797348423311114391338236396377129610438403892872575111944208325391183829244410497417274204511460105300327160731735843171995151732638438822438681472400344880892306932348550892150996525753260930352936838618424274562226339431898935637466775340621141756786938486194463491958371213074369003810092271265248676829331233918535340650633645657206165861859532585399891065512740766105787180744540719539619236209028028414035009171014767837190745067772782887450513389855448008222275168933575008496992303478102174511513567219973642708739544834696810195103267966278678274257722726372669528686276580390149807132834168306138338890011294400901423003078227711617697162941537462317527675610549320745075813118181889521822025781973087950191421419176821370350929152367334457595469504162166755421066505779508988095578023867885852547009316288467236324484158475642788614600435560464206375725888017408520994451759474356074324092063956106808296612167327364446877293641273494104747929585050668555072411763934507470003750628648138834794292830380490109890067358475049136357145867445598292040517336329720732623951380648552378840381924858153091091351022671165112845995960695487845810342838871577801517469498681569252754936347996411842860640929459158886863230922419827799813759399082079109506084516241307594012449146399542531658824125081269258530237712784090321256015692132242380566586578408605355008007536188191400782226596459918216907027380682672490033875755221743312136186132913283436349192198312326504635453528647298715647352439289931289232328443289577354889288409037516455542312924262163230096387126376499831182454099254314964800229677351313349908782293236762724545811042640699894519844024651463357835120872851118248443894684369677854624519634052005448413990450409688663501987110135336634804843721079835874173639071367981487390128244975458214252302839989237594564103582544280178153355399461296956290251690984447714007178597655961078639527669982880726984436814661544683257053464674919216612346526469965010183795352294422618577755599432841743217865238540663103610099183886605008941788996329221473453637060613473069417580508482138532697172827006725188066454277102309504431290810712757331192603218427468614768906664416212730098540735013498154844357949685038307356217445535220784880691435396593188960231775903027411174161817388766951948409301724345552912764582043374913930554239744193652972328715028244283075987528351955454567556098050205563267038598139435058843692089470484448615222177869090908811768677669381784809876362404302149114541062524972608983217529127379563547588144885644482712954324868590129239901815708332098372283612481536173088294263365584642078766837801251154564120711732057814687894421140613572175960294198918558904402770785851147134964391525107570001763342142966853698586045385639931424469294811088968590817557985066771590464111562235369300504933872196037159754530199221065067684809912213485552799976273449273332851878846652019858335667124893402131953248150571743833315061860074130535179504224224683993184152051942885782347153223280458992618912889938945674761195824927367989713870708428829291932623000883912178721177241294653352976629302810998568311143807600441291632496295874147808036311494458018205930894371123687824110345519092202990832926309301680696530834464188884912066609940358864367238509176759221475088965665223717010278194490427395164378598665056536099428669596138831021465829592325839569656055785888588770116037728436291288441656800847917189647074021228006010531565483242391483424495450760060109904674112804210225473743425454225824674990779953475999597006713801687165548037225759495508296802502635142897030370774098044133521671755988559482497186393131284995491787780337152807911111189610584650520904619542605384016178081504317281005942584655457367583983891499102745846840726118096053457055731769415380503653254400197495368147839924176896540668787990386017471410014812435463988142781666509626613054719010192848174968485223747064271549982401320998832321228250144584907911496121814872313221530397104570960701780326775841000384215646710974328961913355107074373299086463626583949166397750445624512717235248634475201747697899146368544583440056287512519706188054321426212114718577620999987646081602010074226208043665098548063058662913763862599907161083485250586355700277524604191911343069777916387622536843056348091555603222334948788665354767977676099415225512061217590645226637327630578865544487157662964661715538204479868116529714695557250895362571796385419020387208425164865526465170453942313257917763386908607057800855398465663749496647090011226082814766194585167528638128309033879548578255296834307785719921727315015688854524301249035667752412085029123707497840987991079480671542104888476252027868735815561327882419549752500112959060838467583180371485715671372982931493152792373684344486520994253196936157896733539300926511583768052804412648123253572454720187535596670673616873546112922999634624238778416724861932262040771057774129084965381208208439837253674969092048603645439091849730351348481257544282640923734955057539930045896473991742340448034627654787788586107874838730948772039596965680325605928638888013899812403622560973536110685350649722616509808909775144165995780719452021797103080782190589922264976690152358142218036884198228418173576099022424799045618017671243730789125507977272937927343074660773792696519393917623334186123145513295288333928510796940194511100534473209091282954731323799603392152060420698751203695086092145183905727247641840624078608137609394768983799787038715536979478966435375793691517583037599011670921377496570436815913816731233558329112561758423570022594188285373041948601081501871940283873816463933835935674969820829205165042919978346189079787047268852576425016119074817021796143507275366708079526938043821395445965329251190091592373715066800042370004987655164780233925099644694305120153209048233527070742651039942639019422038157358926478108368855584020215604843556805503882604086004489716309051509157094683579790988107559975870433245781821927036888556353876989309005645736697132095371492221765134989760317142515629153798604309112510659146052353055971322772064898621882602346166714058718954302838028090212581773860605059017901510384825008589621109668159480224343590267761468501660132258629331734122605319613807235698149457682826114250206269740515807372798074681111696082638525443620741662876991206164541784008414539027194743418980540617178068707117904608796192347199044667819875869109985422022571543886363583287657283660706186045604034881308045991391074459899831783363630362201521836506520737874315445346870141680845894442317314339432545514815947359796965969859710411294117691328456314922463818732738555860538686432255285216576954661631181943950742911958936821489979700233988995216433186747052430594367695326081925299711414701172130600141703599991618074578407335856002353706931786401822232314440947028662280321920541546319789581865394701001028754909701946860839283661291258777093106515680914587926474115249990605319071848691141720070575917729027574809871876616896461587852502065208819962083288403697656968176965274031874134484897768863877528232381753647030400459627651745977758174756853633168346027572780516721917928695759793024074831967798089357336042391226388324369116257155053260083432374348673820726927945073194337658955196417928386579385259075136791399227670007738286255099128438237705866371356970898504820734481941725801746693107908678793241356040196171855615963065976274813267355411983872449634554896682486551245561197092124942140256796390026139473197289511171788081688887399103610661906648808562359145938024929777630425642057562940541509552217430727871804950834131942915514581317414745453040324969344555866443442017589390029180251731146825443476626222763333604695168462417149086393440004008400385074007141534701078921157069942458700305844951809945817228218022974245484277994298475659823720129902996545572229914075315812544987408018908597495000777052597387298475987306647204681733793019406099471988325054529713296573490912749620440781918528630101725822911770997205322215386789933109658372229537043984565984112896335476214378470921845399568382627115491770757615286569709992351563534489483524083152598238837046173384024874482941955367736051526670921806709550003569677046059385335992864042786941031716267370970329478746365890549945950318225549010097146163371299222699078877951530889887858889273924343112478878850847143532306866635812947558638425927717674173136035369047780182513153250502819552716503907546222088452674623244720741192994244346373308991170982371818441935012636773684557473379970386633800816602287076752403588959461041742385384648196242260998346992544096825504960774727524411226095446480554598699709972928280155885188765694445375118150063932524272380209325108496545142394157759166780554913308021671328140393913973587377872507099691911425460656289577962871132883090193255397611580949428488743972366042970051727055386422208363536209621906939061694325837603542730998272190254695930137569520328677904936636858015911141215124570430244235753047966831874980769072796138582185314529763618817573738534839634891625225479374222789677455058979126615015706748355938827664890914963679764903116571843028238127913064548600516293733342715725918623838451415032044345646098760106658447723691502069099538656139015263859453421083711079598265319383662994817026450444134058723670770068604482779556632245178836089039531688355675751098729416146323089025735076722149406615121998950704340098395981848150943462318263958383380648409316384217550528538628711011408746651110205545813978702137881212554566980777577788972861901196915887824613286515554657683754479574760152027244725257879509484054386646561036092711450143481435952547956932936057556323997904370513140505220450201428578500934360506061333521620265626195743523419573048887879238990058954342787280866465666428002211661489249970187900989351169022120048163073052067860135656221780406243760506867998973960298930305371721384541521550905241949465323291036206159886737006076594774747242964912278338999443520287300088814471685235729735675544278352474538090618914119480999391821506724405543194167689924409399323790709124666279795100468687856271615509130830481586697919075400186922526402191048685700221393949558706516684946096001834704030540863051111029415216751388543365582468448785642008798505509325736170145747747451886689129640074676645799187944152698524289028280840701145221229428764840808035993982360409005064139022220590692736855921423451046284548720720738963151903285875470831916919899449278749240558884041820899645540173769799325281623924370499707214241051700438204274766144679163628687026691516114415818589535298657305012550676521643056717654373121834765548125371445897872107269785328574082316592681207410340918964782828487308239686803213982780173743043698204674285244618644308346328825002940188952238710862942349466835123784167688467004729894633887163870752320119278056961934676394520318507107289706459178135843973087268493848442795188038262681002085807248325279472489092299482078466761882164622655356805576024507650817265175902843420002007195499935663508657880760864558889867595741559270684636790737645979325221977363454588101433535886082279706509849001591508104602562990238665180692281877024150345490157039165140814946444515090489766860035709697607680172371809270284644036650466142388362188981125471131108007536707487527536863833585684609277551292665536853242813920471006771379905114440151011599585728636258059866695153547973766042455645327855858740636792288905381189999605096739961839820402472621003729568483550637186662232672917533132312879580939105194332625134410508527323745391280649570647507731240402067363389467687666897641793956318713292883517816754090166047851822109607152204950085244786742644524540461412856092380917849627538764933499874359312534231703807679512866784516132907386187322668666721865380852332914094984943308940098548686262592477693447816787238532428081165870150459603889276825318751471525417890395373347548579534488530520188786134095196308155073551040691042501177251241789541628116788597273511585287693123070444601312365103003824232340077123566771631769943712857941871248824167748712906012001619739919289824708881763272091112291715227119350472341782934816453294630528468567751768901979688028135728615535990210366636906720971395302193006050179294067985556228933325198877179837510866436906990848992539992257713145036760223899840138478760539901748592653998599374249179112374786443478532254583877272939281018100126750413558030410569083807460788397872856971053991778759497162145998490853546292536876297101517073670447543111907699312913915258331332848075102634538500473066770372306465480212497026795280998856069760750690996390024929399452083429164925003642819749965514445514945776642553185939949118302649446438665350818659680584486595130137765743133452713402844608630426766618394757677126324256239686125958195053074764503294891254962225407876913669352678352466295838180624350706287058369471513323990920155760976263830624580863897216098367039055725241451329653656800547330250515419326081898454564395751178325924315476926296826952264753896130688131869983012175188440177171732561293674050876117755233127067276578957718614848714343761884027586442089231594584294363108963333122489855234149047301431990952911120460841969525561188581197973116980508780678223859660885648335197286064507988463696398191860640919688837200383282471330885191365953232282105222980836433806499131290347966906661995259587315210829327089895666769939636704213498315094496863748307262460252403050196346689995815356900544464865135904336734959792756629678022898957599206312015463454991582105295468898860710712561353732450580183263169234885049756211443072610342081112125521254786700201348864176437891008664587955501639365875859533965273931961230471454718181527593635275525418771739186095210813497977314545225426896582322723402041524964933080174043024393362852810176107597490170043880298190568293674331628548464524739249906709827699917176147572287541528214872848379229255204617242896975962592821063779077984658125477334913450678086521922044508481774233874542561593009534813707428628352397968207309612717954635811367031330506884806449555762155478748647606234904125137133086235362973013724886089726540967544946105413776151243287024439043303779085595454495013508428013115454765645520938555278315139790449319056311200023538254046848605412155376069284223757996615030568527085215601112575552784387261373669292833718806242397576764373907390688727392447661582521154589932584741362407337859455785680459728818166539969931847772713765258232025913400766084202036557324404336869971574329668309683590623736993391900784176570595492745754076279863135849244147735055961285786849874137040514278577832384068563257976583686791311867508301536929130380474289454151667675849547433636416848018537370132796604150169367383814213348390081651377227059930293199903838457466042271133715789741723509515729771766102628095507459958625532262043981130432023016393782336388796056665810193982349745933502704922689982908667321412670184882032974073397622902559275403359646091013716196043485129146352529635389565013884538683988845605657222263732548601475460344840488718426476369032504834801166617605982271819307200769224709427639292635115205685958391802056729219321291592045046554486278436763870165385136184525607767152482155374492697154188013370117629490969844761217405368517209190153807897228931209960606757183664103962786501445093935003479638929020057756665222876614923048225327036562678532945877873801478971769341827876615170046067131012950597377889284418121261053622329921027147366623141481155775343381924038598385845446928701010274701185429417380886211036342306828428319458497515888540835387201252580100924896954656012203472183763751532618202510439939841174678436398774411650453711748192912088991230079671940474907943614857795859065326867726058184765142337344485025882463248412163880264831635968534435300247430742404119015669231962014611902033110950010508991015755016858506318127104101522237173000177077845616609250966100156241304542876297055938523285037773418401578871262437575917299872643059236348791595517375117433726226223483862116251313965203814337166879700534144277488931455349894868210590311980065845358862047625469539160042725914610015821791977942561304944270916595350103228802067740166689803880126006305115079582424702206138418924444206387579932111370992652515749387984087550354952049324204707265453784513821417113369383064822360098353933568348838708421667126968752368195747920040729000439440040499457378070610268293110033049920362620412542169586013706674748181317585022028570589965375369661505485374723805791697311978909608861771633140136699016995076950187809973114768687329573995175113843949278188628443193526784098550750498961906749048001701821324854056637336396029671146212875550297345599739065363690327171080511158329914083439288074529599093387782369397821758614414940717363780387770949889883201864173973591629728774829973336518677052834012498044960255169377983533324910456096511797250266632740838058388305151513432218586257314588491536081404065552884845913985302430769822500524981034718834974906434166309162487120629351907583492206120643107580416704285637103219043105710387710489922172007273533414012859031612905234263199627495127725407043476725882103808691414105113573506326813097230721153944098446604660044659055562619076615274765526225278745441935607170067902150696519778241004453137388923443868662567443839916042105844204067012832268086382404251646732025927709236049337476089002001825239573757509957753688904663769995966327267042559164510031736996817997758789744097191319022248639110417431976096830454359754503683070141569538514806732911115176461308917173920497628517369227534899098361811983369769823207326908734556524908916860755279873969735016584271874195256761031645625760496456240214559426039738040515331039768349399442487796139685466158463722983199300933691892871853984483153977679610318272731814697013278918837910482949850637586363671898727021629662599825561591115002338355615605039208167219693422689326503809443722864718063764655540225855176884709586038041797503777946926696263207723089255977763260156335793274691390950033546120924123360463462766312076892198198783884418573028553827904940803427647635290725883160691124930957533742880906652010461724097209963599662979746379407985581665015274366746135787314865284626274360526344248630072798699353713740453219359812578544446194540009146431035474823473551835956205237491165493918219651047948512941751342322307638261728816886220000145578323471479862197854279627566278229411430824245993480473871338794712621596410513009288726847027822910019097863809262195948110909916735787003307201418375622537367312898237245768467992434968282486306939908693039072562609980773857981470468164962784349878863998619951760405555299564035184928115722403917140107431518898122961520238461907828286129638346570386143755698783752813147204620976598863708994772138294047375052528010225997618416502441341004090811347446597293600831954880204585291375979123011685580144329732191541096737305384371575571812347418953405664892326367870898976013976599130950819537237643832831485320659252615322035336342805909692618802944168823662516278503796961227793389459558564543053572140200221942305021086395946408338248565444656137078380725742153332203476306226406074458006238517149850690286954991437886439480206425975964250100820241675782834615772085376924309562448143557643468013458088451986551302041551053005711372675288673992073824027796253380649973891375813503815823755418647157912405752999674037323195945114813676388993335359965386830108466675133976605511978104091617554192184916470527884864935223686030000381197476377563023592171018421963417857519018106674519780607600333962634288215851659259639555109363841928002970311607733080285828927815576334644631898040473396634086865345388447526966046793540922883301798646009403983683890235789570035913289164137944291465167209507216417941720204867336676013993452724810028725460027000029517054343683538488646463987291121785098532550990872209275121328598275034705643165993118491521004461395442329099502722838373059222035234222170462134187295859747197469360426404166171351095937208368502717079568134254164134167089700712449281058191929024135829065256507157287865791716513382825726455814418068586624024103759501629989334755625216006836223054789982494486431839080603446633505366061749002342459663883846811829911268399766928069528425523553647186317039066808959656931070688268970483432616538918158745599569015688742406315015333284503985719163347260488954119208550812265536960605582478610308220564949099158102960866754264876886177834636031941178342038337326965771785914199084996210103182286445673190933713199795349500684649008104728379925660915942641604673224190391827811678113666947992131103341484684312083074349236185428699945756922327208207764342941163213021455049073768791443369523068981147819140904288377467209184568980381979533340520058179046401761787252953912257676938944981419527407852526090242278287085016417283875451686834300743254954236003922338148698007488278162240110392129640648271547803192468009873693818188558578834286054655690454082663084733672753993481568644206344360231452541366340564494073750539180658434473825249577794016223138336776273348453024517220532504617289619894153833174958839623415713376736455579552379858046696776083333809176216148010606885977881839555067010432326319843532166442736938872719400482794869863299772864839823742377613487610145221960281892274012950625606847181845670465369765831604144195614235834404826002606401115211697998360941752142524625458304577859351680257702851962332667339678094865011138119437287957050106016803860557301412784589231083626366778330639612584276065240359893465166966971340474004827258876300367092365420606211672202629938640359445888984135586066251885226364933511406874129912798412018358966172296494572832111185289894202698124775107943752057171678476640264122490321392064222430872828044019687538045106236181042888538501947594401467596661364510178170382007061216496851847421605146895655441865597609675305803754224642165305821113955514949303342553343779786289880649320298039475579264056157519643454147148777972561127936087220648056389510675077920577349477246335820703013646400511064985980584022715560657329959374979227122505216965558348718370725656876378341994915332666827518067845067844816289173416970958289474865376934418766439730281616507401035053160957858214776096471870609124021777682834406128853898388056173634529556199538334663482101629771388257745212563828033061175563799507706585735913898219502044138541425190547608097923104855592283758129676784739546426980458372343456657485266036178414193122694649046204046845352545340946317454420624938523583869764577287358704770183311385744276669788502095876763744666574075020992130812543676098204806646517852743656694904985388508017843974287300581954586107736990780393435279305190663982805863531999502013861999374579299219887315776174486795005189377508079617850742632764810289382802721398801803329016993031042904007700684226290016715735490930281169478846988165743480380491813846413240992023863707425675384065213208625681130230329721257641226257842567136100150555515101565293923640881503076457258811242574453046250288455394993745770889301685277671162679765641027289802558715190589552440214241201130923137687883605134358159662772469018431479498206821202392489522237203477514689267352923497080260714034708155297949758637243892026702235406737578512222391642394761881454986385267842181379281062544685441159048330613680492180834637289669300127356530119509925170123780614013855447227965526364663512262342535409410720716612956930273007786470936494026566607099036313799953484742408772882370500632513134094941816290782823937512668070732785268174724410625483067253594728939259101484091936021043838907421366871186719547612222467866319048720130494581792655227636436677859506716856507987711104932141304995616300116988680776662763040329382249578934140890034814936809283038538412802716872891911822589091369866916287481350979037856554419862302734572521728644913227476325701204528688024851667179132702754408115075339170496042921073294768838884461935707073139152553504715381450302509059790044119678230347088350288746026487710996635387469394935979439586733906242461756879027129546594775147023486986936323108075731059095102001534521691025671020387814545250431772164614126764386561097107106908122207743523146856688255000224944881514261909163378816882569920307674310910004000170183977101806440571337614092817477999273312696903030990424962165065965388922934175919735866466960892189516753906616781287173805444661132484975207121383290264027768318628081413740379252916003935745848583026948364580713111009966321903790681977028589731338611414410652168216743053913912315841491246871349633530572299427298136372564216845660477205873561344313991263393338359319431450974256942143212412229565426619167652937788018762018588331302655528698765324675144711954037160403349442379083888780967526595886135671502705167120442769558217962948211882491074218916194552163259541100930453951801501106641964884415017240131811034901573518109951109233040248798650660266993321013910543478461904878538280770328306494834598916551108898751686336765854719298053767312325445001860231298612344418438355269005581022926154782505297832403499296992999673312358198494272961444412671156253556296009483817026248551793079641345265614888728072336643373114035349629398009152107726612293005685948986941458641232335651491460564939145022881658622401256683578557316701832002059865294988186419248941953275499228575502067968575988262999354193628993780230721929999442071150579742554496505380193551207503049477427389823694966900656422673174199567381305677862055398082231033808320361503370870189862649909728748069906134207497281333996763172195795158544140999033863760430464963171842421637475090001833746785189019077816179049942144276111061994893262544154032970941180164535365572263927278405700234286943803830202286830016171977394104837453741796145726948184247566670415503620593114835200577957288904088342177162704391757928646444132764930599153829347633873229295636715405013993429703775838906377028255755958249024797087246887742586401485409854692623134457623610360320641285157243000588161172532552641485501875610112934410320870500119250742976468370104607883566736109765215514240327122014245652341300138528438803790707223441116261030119335125155287632659171401096643033591077459053094194241197031504894667762930165428203483836954249493700582943239189212423719569685329156994841385599452807267143263256707155736140703672024603802532593697665265283003409365762111127882985095130424256056633508476427368039794317362501080365374840206758249788499194163435797363629468279733548835972438356712618305154889477047249093323256472784922691496036489576200959526244071087027194795770504372874312485568141857200870705384734062600411651818510255187698382876892250538284180734805690718231204876205513650353553586950724096503230269975905004113628272717897109692176240473079248006132955597341223978443547853825366764013450492554307362151439294697144294979746945516503567764419680514819598549449278571154547800163083853619523123080794902844139099942595588953217424539122272681878827488990178911276309694969050042089958681581081119324719067837652975122759254499010309156072581935659401409283048335692029089153437270277715101824495467162592329594317697672379323557053643340317325432131448899218447752443919683637740955038401621709427402625762462747721406785087401897012536116937892200106945667595625524331875858023031696365151520961261542288007844636460098468725913765137405388393707050283474603346299371425668637538843911087395694570782711747771131135644349150425770698951274579670803664659305301280154556968806755655911366317954962865745309488843645645793479127800806355262533966062621095635742603490880812624124198829314630893155074097399606342443501639662518459339399933625209601007226405238441893986149208491978289489680146344163264691238412512101437880010100667145803623004140099771436044121810903286320795448470387721716480934141379452484475395069859108047443079939086582475551067014807323863139157768984441357124123570482139403044861229220628472449755276471249295439057622397549488753819748377625511257576565378259017950659139690764720011201323695381789437255746212805215791967213929525583430030832192173832391280753425046959252105938784312998585114303287464145068405603915071652477479236462791438974552976343300409367101832363313612011868139122211144686761496556138513870562453285999911457860551593854576873224131034062631729571356887128967176827254260688348906364063046530363205932472448012376347146082392628533043902580489244123438355381794296838553098061024671151903963914111608812782888664120131147256054975945560444928570088252190475221398687999428339430391898031394292965881297475150189507968966520069056564859342478816056920813900230866867536611851730702223956094773310406090815822751438148670741967409243381084701279713551546945841815622765550423452775503437232222359462035148157931538155119842334204691634163552139974332178488000738841344295163485462834546553664432609333797087591109701280837918593044294821076951027536779595758042029365515217597546461385405586690956301429972992704520157729726163673232384953478776518271818092854517503288277442836506162698197892793293713529181984108283196765249051526582416810956067724057627103486663035581764786586551791262476990650945203655852945892135043368765270064047672095465370753772731298518175765649791880409215427174702453940043562891827775548852206341363307276141772195404632691511760887848681937103772151944150988402758789724472797755399785991467709724632762444166984105880243159822396503670615330187601375546451596027011179743983799063166982327048584778612856356434519381899695983139196422393289532735765429008855669293718802183070317819961414701063324439747195250768220022494716590669538904449959458165396965178911748778382697403595569723448079571340334010072117488353912386036914448460506111224901554010596767678184463982831238060557682036036207906151433639154182001494374999965120127987333698326235466840910768507489596653824764456199632740148445327686739281153638544976576657409369727790136862670394249673743806557882543601143441206545823546143614092327969631077370161050912412413498276739298446172908748231713565810237360653407239786104086478584957585336846468940391014730839889804085122587900798405284621556986075162657882168643586265113550796955480316115683921136439559023882715000705523611010814973034737465172982871783983563257426824112135278134462380383150883135968070841543788550337057756786320315291695200241312444585146323801852529397905214958696960276189577326758912942498897212123594219705845873458218376486345982656709994311976775127412995625655450975383764999013723082921756592822921693353094569927397739122644809023419105764190793977720240895733598897712108986046473394195470586960411749341063458225051062903955130392110193449433275883226190754321694381922138737625243320490763020133892861860018720279229283875165124102656329815771161935486580954226070585937572581866862862435771826637892015315760231326521781626745246029326317518302567160930774579994735793709620967167282518606282762036227184741166732426154947125651504894173784757681119630449224249443365964469364857419525163745964670057308381411666304864072461172969051049394142654892811425131553055383910364632747396432381826726293997533432975976526920553606796500939128111203374567590852380604068806373960134820956602131726838611750308874310351722427242894667712123633919098019593541771776509002964484724435572881216721150082113581750504674212349665192861225938298086978065342817965980740003709242947099943087119967174002328133558405393864809292816056838715763612790873704369728018449647379442967476407773745434448086803323377939331189233551099940837797000585556533598801714592568129366363244816078749792846433612750166649249452437722542024549837988055822199806444610577346043688920840847525943811267686530043381383866084615114794329520411236990483938735286565781868943758296902449392578554338125256529421046498828244254666262229589954027485905945370375623971610236498970588144387767691723854080321652832760149459413136415556563872557040362816568258030598436069342719496880233935517194479605119376078232367266091442993757990266789598839845545232660064458760080414771427258626941026343632728814501983678925935489544908789742606858061100337551298712952119704767665371145921423560587758948776170410878542970226085132913807887813466744555238734250724457678403663685798690538317546768963849621379515396771951743154636698068251645997241433462574163099621723648189912303786894959927308169645416738069481205413425278408907391937452041492525499654678217641056856189410557846670701962928950974271884059089383827904756400231174802297171731456039748524960401631092723969480356959327703160098418347862423271627299643453474118242607188255537863573962289036625808800424898847625805173773217330969921863979774314057067101948777193995981684757655547642896966200334057577292511528196774714118889983137039887672308351239091833376747509781302940933471282991726939738109387475152585135999744842047971902407905349170774553711939099427235640941203354549112067308084611100280354705140236936719017076624820949782721097329964298395238145086460920415040630067019164401911371145789906203290310208137107304612951874374855759816468142269334146625803311327172900119629252691682387249970851624741173346711355724992609970837328004028040067121817267723008134313069884474594943904086196282385960790227995570244924603546587395608242499618465845566243141650807681270631204410823847013331459106300326279532078801737935112992984095490637806912332272522646259207179727639908725476757348447396213241400643442464446418231380381046928622598566782798543803501712751742739039127243369068255305262999767372130625336642957009075538965600700403946831082590604787055862720871150115608352638237442038358971617259814666205984483758931030739715732467556415903893159080017970104959791776024867065196375068077823963383393710160326866126585390049476531444003929905649893050897824075683470253762993241824505952703309746861830184729292442437447466455762451654660749989406647003212664362363336034362417151091210189247304944334964729583828517717792229512768922102662641622305384284903036411204134046610839127152559096157641180529610839057512183452091792319304903877555902245518939352856513237221661064073384732046787207387419502765267187794545968912339841361637748635988587107516211445158951693157143168055437724580988194594544283290752874122967753837279725539802023947945303735257255305103704058244472598630526024319601605560051581314021050448232239266862035223771152079522418151512400780608805710856135871597324712961138834012659186818923515326473554906717274095393070852207386208249059431671183108960238779937046186561336347428961142365871260476075156003742496311662562703609609865361463522875315526622905632465838879719625090288739085068832098440182261985215800383934163559441693695464837388815192702711669339517239589127700718391731667426327890300327581291010119837249552799362768198633761083328462609202764231129520531855867989878507115675524248853315903254771199621729654882798535754595100341748764487172535693421198502046111947353130390919492930492965717834573028748876145599607998602118237776268855142523026327068830240308198735351857730776064310441217952473367239822248524854575826851442733842498053638507152766406562691315721661048845128934249931841567865023525210639672847393682360866672614009479713335249078382960999435759894302230234702329940887046176274150996334785902085347523752725654227612282755791475318835599236017942115694225045478999928382591414310645072453222719312019979455769539647401434423529942400035022281814788828321377792105056543051012375730806944161484851187894971168137716988445732903891481075126080334732089934272559550616652060255868964187869777350941912261445050500178286728201576007273145234076610037827205145838476541077952490872868685840944502492094798515584434316954215190992124288400838676048956040040349226833885198809006620495917562439589072906829295706314424215376111031369607778873268669822177355263456008646541624378399129502289754220661843877331213268564814485975424588253249694647292624472444992945929381463621519225165408858853531976058728755862704817716929277979205893986184083838352651539333242932722149797568356182006800438010239158122604374687385699975371186181871489957636287751690480194830169401180034137186122142912636045810607004733835790978860022076995064213505825192870860739514176841285765727407691826055947388912950549180844845662618536989786252953811338518615755798608264235666649815059020370107727166299972745771748173695561707667825469292672781666224150756323903708235570696693989796061095366578049970500702670348164470510303082182461146517466776605936918065432328619371642395084563962600890558901067603296101508411709691841558448160236201568253227891316263142860854817891846010480116576671724183164563104106179314822898116810835897530103813872792349411036938063835402619585471162161179687475635786564415985650937211165490123357285135608687541599838768208097299016865845498255605586241004298533264891032500201458637064983371936196272753658561597809555645578819154258757155854877450337673472175880087331387704333627464847167317080083987393247266064798380094810202947196435301961673787253328099529805872772952698664693923484213006322443634413382704164485940528296777384732815830954204832566816625665938213672791970094746867275268942531328522172469625601870963898630420294524765869116692092865982160131252880509913892615461661285959397829319518508334743148055509622595021758210010995833101026185642037451571070585746937540942772522867087049181535190811679270645119440696728807775578826554809059927712360782349019764257010102227539021834492398290709567612198518294305903467083293526874000204270080037513252414920482941913296970973063175209929364398312289612175817833838783543446823196977504811250529765528996341286823855845871134140263178754118207444918343706879429137470468282468184023664903247022233060031886148036913602836785974187829958984090051524103836613246242612515809140217081419845820753108705343053523126327252265955938093761736073444942930204379237645862792931737995289251638760238475401889282251667025630247829842405953254153599446835298723405634563354875322988550936276284583947854409881198291727410992733190042095916226883752026229645512831330612624224004170045701755349280912278137928374101805355697535537617845087331776046874322364362192968078717046064066189301144826167104592563939266265987428226951138711383563304305679125604151736308024487652942953867024840310156137192988387362947045128485223644230932645574170738525896550085268026647337034001584342589181082437062092938114479550213444153081959326492575307666284194022657658702824057034193071787644055394542656708822467852357523620216653101272411437617301446079555673100831152134179665003893291686115882411545819712685471006107856404960215145332677058608782218649235073223352491684686809300521837872161618106646117158411247228626121445607158954287047850067095596121328496473150580368835460203457329543469806156051969225790840485207915540532551589302912063803190387045557033194199092942045001325596004400799662938331069173334120812668270924418501492752531665315464919554438558641724410852153908233729432284078551078058065674458691639004824034158486410697360714325935431807770825251701762061164028403399547355663863421687141906643082200262823052505493026930187026830786443015618824027347888638893820338265962348665195853199697768026060823096182329345539977906272313863310674136225881864153580636905691622025140528035843734702441971559514333538625472384883092477189493299186906292443792917793553857438946276406987962395323882350994791265627260260805587216308169703730602245457710539284484496775278016930266705323765922227295835788465646607945382524761082127978971568260015726974560363093187902909472268860353021579101782707520934516607869798402999874034747141444584542186975730919221859066021647470463072453865139249204326663208238693246336930299007335281653665538221088756804909822220565094280394782167336626962863755206753198326332097992878197371051986909810808057169062515709320684792038541975700649042908887621579486661227468412996298547786049456600284324626231958486485848280456609302067710457563224500528670651038887931056013795713547159684517586014583102843160773040279463726699689104767137135619366508160603157104252845648229052256317470983588580314458506868158811499882336751383780209586215125701480498172367247260840273519280834878891737018035603567189553448531945110881594783248802813862015263813950507673843284339457199395959039573781411869858336308199359893991785327057239823391904628625989670324971485339680699024597932383606921122148156586046649833248798848442691356549039217713429681238647487464788108268525364423576580339021838425479355659858302530008598155633083908922544165196259094393889818314542888038471367494785619623288318844199251609353926916494880515268158081360879121624715249278803434986237153366112940046837143606231182316593492863077904736273957505012219985804321741935542119075776272308816722202253016234896937469598246298554576906396786563868855120067480547223023784742287123234714164472790432090241787650123764439284081294667133694907615961127994335181029577275589636777669857837062262878748101761850514496787559307856528999787913488651466811072079272303094396647580783640654144389543856914537367133286018854983487778846609239797022274461895253801253426530247329628948679355579621856117945850004430934485061083222752784157899118598165546416578746824479368207547052512829320204934169420069934805289634851079292730268452393076156212458379321622024429359780923968391853543704899208773846341885140050901876692176470486378751895341633332709963627869218712075787143684174436078058649459261993951002165495458092938693534205836350976850074760037272318515627679562072154630721606948671432007226319890616258723480985807311956778209424720405693396783064827138904972618654132196221459308448397503557843277686725169461777352894824989509043252297249176716027915610243240829730842302522733119581289268680335469224594351361102811944481263634187449216433036537165620169334759442336088723990871193129716413171019698640553108689690812667053015136221815059552260170160960427000620480851967825360631641458403995291465295295081700533644224465767635855236918354914183079419760409590909830306431452028904845132392803221225069351219631314843671797055320536031022688956994714866921668044469149899773459798771574483044668696570725229069252014880871531977769621568442079850655648040340029766097881609665190198940419825535336447776062238858758587233349602543659939718909413886626723836424507511850613706601675934362081957588728046409818256399315452820598837751548817425007886552684288086673351549606359619887911977823960571447576804502813145701107011347010940010612452574642640975636029497031684163807106099519127115177701452669773065884396455781624662473749437358087391846873103932083907560884934336280174169312751204012119053362258007987933235702525357886766686330673057635763437992247788427775408778988635427773813697454424295974501560923796232367835030955038942676436244843340774570071532771949277296986298218963618665412612250078972043801879168535853520736892075399165588682944592458362400194340932742492951935705618394967848269259137670216837374362936936556515504281603236037296140457891830962406923927316271577811812471826044591009146560912996860435412978428489727093544906550111646620582289018456989088572213997373820115532665198149978223389817356825823743235184016805980050495582472624285038447054965113178660404906985617106887036252411259080344210516079010218817960583302916072813768880479820399915067500077610048334126238217329889899259287742892041950185403048073366396209925496631456027911549811855308662588212101112457887086933562988790816987479259765526094030412215193678751685266339117652641605509530289250748163677210991282387509061869196712907563599497034626329072957111373254949492356659937231300461861877392813720986411877904248587393985884330722399672573532425955578700717958105724729792466828221649236884172867111631335978999328697498992292508559004261482247194629256147866641229679807096697869174681682642620150578928432936439115520840217302999373597909834199812444618391471379721417854243009550043884572427511306842704138438435641433012775776603243865092141777077679474140529279707822186181865124649536860712760219088627593296531837629885505418571011689968453856748794532554263900903430027771275752220044706632094466527972854313993523973555783395079989896367318446994823346593953325585826296696920395031733218492776827008747430396333857046319288879772397296191182410130165643495115793852990618226172228886475927804172738306656944120430148201242889247476812412228928122251855305051315859502800802148508595631767010006019793360411244045445875833368091206889627864528840555336775528631852524694334099882293359140203678118316802373346339351132594048507507202975786557860535074309677552450887203655549586208423815556967205535435241353302458117626516353842640460165741046945065604398453645743690591704319393605774878345953558773976461675735512495099240668725962147985575573336459324767041516204403517689493382562987149119819695747514686549891668910234794323990952353290705474178680819142672229405000348169453477221823971333725231505047119027351466968452242867339744629655805114328175988446666619791273342600985052234185590104638557990537844754778853962385973736247979307322166150052802428251246629045554752491304627549396885739845904789538234284767776708913510456924401567007464290585677517056978019430016764295881121546037359715832388368949067366775169910971454388883450223555644691227969861955252621831705500452966289911085511923501953222596932109029319149990739087562715944816523827031517320709040443608379739795462214807486696123055205799173873011089729001833061461768381643121402289528439796498205803099438783209171098248158115413975130300049661769820384295130295445595871567893248613176840707052374986997528819544937659533584563595430778615136415466849857948649230428213814247964339971995339984651421618908766724155066065415397092219143125132859721953392798959801662136514095499485880324280350982604882107230890350065500835090925131165582118247987318431591233872094180863476424918781472186616527373140336965392753094346286823401150784118045771932999079977628441422276968679990170438481900910079657871175453263510653015971505193265074116732264798888269262006608056123168819366816726101018491725959031588660774198332791115997687375271607142728713567003165612652694946926837293061393504970992297935122746258231672336148056407368978897393491002370341596051753607537876789281212752359640663042106917699140667666791112706636315630906791309276183626690122452521162492253345615078272861481422074119143082601985909950931422609877964853487595083538237384380590909955824627707144572686798380674520552294269472891949438612987102977789393526664843197835231080030229398317873666660625767317108246243287847600984646307295133474040619725292581851071573383473752743552601522958000635271596230572201644012591588730044555577926497479121045879329783630689901015874851648570438537237666368386304028467393779160281399592360134532241583052885050332693569470593176705860657277446277983932599134463746094023806755111336820836622503489054709387085797488279259628458514367930010165030086538262442680465593530300713333840963790535747437761199821832628096394590587079354799762347898984003120211497060834352458115380252101549963561545780748921098151569042762943020379128241344838075066706437022305052145427793797093457252275980101084801551593753560178694909898520632128639390318765812489647550179356743369676442826441302649493421697890435782683492181330450609368551993215723737417029186936923390625387094891433385425036289729963024165961779158236247630343569420400430146231764496152189393143802479151438676308619015667372155324785457620600596791786054336192660245954389222083970050891208463488893921860799775643952979072407254984720736560996961040622730753906206446039652862085148604887378366277153264684023219907785075655789421501615192789350075662447864173705536984759344947418866393011593863908107532665074302033249946169691131223220753832539687558973515207944150968505229298555576669734160969953376663055134983548569133621862387498186182850767573439931764754776285560289076175201467214638327516318047222236613696521101161696993305016680377306261435825197467702585894787691053008807145567458552455863370970092705250923809666460269691321164219458748624063902821071304213026109067815812417872448527097348998524796384060680331432961590114840522397551335244190306488855052683409435863205509574197202499128861172820389174096945642267866657280345764845285459562529493692408640308053919008056351670079404908451771979874862703416788755621106668110710694599923906357213267967585415803055907922906611461090097288715460537654997328691997844899305145568208545303056963971049525467270191805700440127509996080137418494219605962124836758063774914483596675764564034296072550422035840493894759184527525572134455126629905244650666073511413356351942581532844794685759856885491067400004900216251560756717228892500298896357784525979724023375962089086453784430126743864020892378026070135983879877515624145958355884061028365752815326616225824038174058635213421192090384448790717405992691593055922493634821551842860924485282508850704083619586349286023867121879951972917002130221171466717665088548110590694636962253145597690478947249729900776667106864063019241742474631894627183549327295199429645866848015650872882980397927507387891490360414526776487562551841547197014975530045606771976452638054294699875208860503057923471473386506745353974390754456150967067080214812113565394683230866658159901738641167994307088517315968328632163547715182649865195136793191759103750892289200257248450541084607888656316188387201587982743481769398201672713532026186947866998158661080647970049681967948194631958387558884507981532198893344854061520576033388601974407993479758004364293583293208168928271865003094380057768428822084448787564133107759205611014315280671992114581297742437492477036431821212315391671980291978210944787430509998090401546583774424644086776948912917068588806646490036389206811723604298184472731916437972421511285992470462319897791597137176512094300975438232960995334776359037515396412255534582841381869532162634725344386552658818139879527991536759012657985221001986745506749097946008836653208287267823705408329237385488893261248504495209426799930665468175498598594266357623130957214459509277179927857267973977791017979827641871789389168829159979240340673024624115619298660630860651376490082368450205007446357101006029006328861352749220741035089134331908296181031023002044152920518864641516650865356002724539994861874990818984050349816831148712682990441827469093153186152627186903625164694771847898050132929156413913340339016915640291276322973888024394004157955010181718792864424941551585882571727482778110717093710055634270759788691344442882865776272588294875979860231291186983524716110603872952618444838037048462779593555362163013929178126604737109073058947054884027250440986388549840722242848200900859472061284247843547029677967643829900241279965325341235906870985127311272805149555405160767362050701633275719502170135483295074408130117758776566095338353424942496849225472173367962513329503837648997098805540086420639574158116796545236755193351440096305598027222684514114186851603422960061449875796272963136877201020147809414512398302802085115015219027991107093353483930992060830909126897164431178673806495748453830609663707003230019990402793221313806386907398242218855382855343437469204940761676966111771707710235851641121325797938991357494815473423220855859086292401628440424660373324789020779579236568399986035716850696047213768584788380174604559273687756291340055128444214701230407187631356237312018198182448286230072996826131930248264505367107928187681953605524229226424064566169274948785668714980968411061135447912403865670883795687631606422657193644010944789065506102236565612598589607688226067594941509553826528266940623984264369871383585537734569833630841695253891354816592718334982031844210737253106572743634056313958412917189165510836641388789165665771019475025061736294778962251437210596998778431395309113259386951286939786913636146534623474712562566620727661683898814985098687445452598333760449364012471528856540957605022093127049815724065781215989775436498854045914719455548319772305923211277801309714740968539003764358013886963203017902790907184568162241575947808671865111342016297445321420928376490991872649036754727455354487374353392108506376935428605837926980557524879012604611499483364330426918189103543843019327440044680806383520740776906424364903700374019879719770147949348648121154312205510523150362452102252318383406562841049449552937744606390424233621842309335370698206929762719031955785991444024708102141994198038658662431597909017824343363769586011111209878766554123820757772765397855637783761110640197195884227911302796080918427163690933427211573811086204389898174133583241756021380857196910335872587927717528220973206098737307585090492478607268162153237776040883660938627092807624962936362037545956511870595326813276630184877776134267929337930030173854647308397796364872937466672234639459296648219210514801524181326060371289801544689449562749769237384340056604694368917213885593329284708678488600506035312352264245169875269014567166677463921667989399524280636000862068759339248348559386294007961832475970804072366886728301085364144921829993422131021944402940253363992756488977884930294257112638001613612571136418911836003277811925985252768941108246734432542778015486513370534106285905118323883579549935027957913417808872470384622576621617545235129103060345949786039851614036702447342755236621861297878553949940782276714739364338570578511647579694030522748621862302777960126809706351889322913190354900985642926642426794000908915745118165964734018612297099258636728182431566764780355245678072810580380533334486218501984405695817817775825497509916740999916661403642793011285663497419014154662156837343827603059226743106465692830650184133173725770791938010194693308378494490274847759391431367594963240680229554597163363248103640412537879324924886975848223538913921261865748347025090634611323672035440653576017880102421393656197999608469654442030248077595662849199465673450776617268530512515266614734301277848007415782570296112188642822300291137750665420985821053825620110847798944411571140071356111039428901902825969430825412032076937353931668386272468437315835785946611298992615317752566357204420441721835038773169328329785967266948200694524975161731505655051160151384526235980619519355704913240015637436467591116623744300873258456629505926421961932643123986837576955856320940488908766235390664880357294293771804058229352238286745664540744929641573481455670612484611293165352226580021812848840392786806469131196846973426784892219608625983259129643648713216760547522027774905054497848605360585218486554431465336428353393117561397385757490820288551983564276460430608473304705746580785166755873290311304259664969357359208874584778232936647878748977975472175477182192926613536344485055341804309904565278629831044943184635340328082227100399517705762983051137041146634774802274298402357756594882667847609275524913566717609816107425363960184008826220235279350762700544201272486351807473283299769662672218093426824752871653092984352730989409809348294527335664113252028817604561802728732483753643344504707507848662120267825861885403877315353136809157063052418026028770409509322736100887450400998558313976997613121207910525264393991589211908754272999047575192263981015328383909546128718758405871031005852833911180028161726063889247143590345665899175570526822401947865157027393213350718069232487387216149642656952607726215037182890238094741824731454280352190936140458657779684655051111170889137764635778468059572110846703820615140458461971194884636067966146300344023427690162655018318008439934934743852261212619398459307183289674577901980196865849143047549970270128549716242089331008007493182489479040556530316239573033946638721066995199309232717219010918382562113879573560554842891701768635483462069390879953694170748369242756982443728077849060858621338417426036901191866823839263416993776852400722386332297195026275256048763313471966519003103091457811591500155013947841094409249276851737779855228513213248144526259051794448507021304188861380156358841621507829388092975890448535174352605433840169858353609069793792186518103329672951677004017991672950722073879586286172990483404288856290447007643995523339910133795287475356883903899032049231463112955009754110672045474033582338962447028918570339399243443726022593990207115334663267429612860462315594681407529876649737005732567537569417098465849784429198966233968102672157203793630956248683682884585689327506377435446577052480345728920149865350658135994053532206146913292059505033965482791415611569472402048079046267855204875913759468723939755295431027381520631013621101677158085019564998204693115222095771620134491769236048389524308459754900463919248332542687615059380639839826305743176385803723111327877267057321404031460874708795944321908790935466219233156311263633053847873042666487154786512643033714549097210859041144060118860024116993909988980664724640774811244038973482163052789217642016414861759130329164153330911803734371489072888702406341014934829600383167791092994583961417847760415178203559019679085858787259447472031250281241718835807335166394079197013945348461487510830601503369415747188088494912297790814706888276818050972381976749110136745320039271359479317606191586450713980089516216369907815915964090724109468031826032760254211653111616609453718241221715558292439620825437944768312921624768229583885423423930689634793570579190626003418463785225925626302316898634366537292068249894392394344504415808855423769244277799596692745866955060720086015577372627575504411436671028295485008378502404105612035812180311403772299389666243359443876996102232955700129288482056455110124802316982085478630257568521724407326180056572549948720289541765998381404845709372820941774371431191030393863378675087507930990588287356041216743106641346384903127387019861887511686368987901957439426689720765023440756942468300064288191109244959740590309549278731242099829361730117961055421837017019548608213494642279770584454163246991937296059336348780952866493653169527765380966387846233383864061700445873291454193617749026472999102625575369112136152552544443512896898018676427446563799473499199983902442678413826980152852641513282687567334387639721136321837726415954008908223249274273276932185630995185226248408163973365438872658954848769972466209992979838042387728914037708813920053935851959556886519109023864214390061254565633638545457961649825473785586398679145791853802325241920137064650224847674184565852314828932031980463239676324483268414029408643036808030086582991339839707372276619435874059224168849760665048282489386817059509806592323086926681782216543560574275162112663175493050101772251416835065096889559371370691912929382364306631912902644764387492476463612389599637711423161094008864013585765007017969094099486030028367104771862527787381208427005426437938947868847519161676820659755459847286800461073665147106330115612106126658652066216283134145245535018719204667010361518842762866131715639198319284230782285454803218694913654683707431972486898621859277250320718842447772676536195003229944936604534857821445919932093890936352895152317121783398847034185119747407257099465122054147739456863756518141056530922380618984565802516922466392576574136161149499746482945321453509444449063861513851398837205500970662560073317453883883984299311226859289837840838008113463785829155191882641618886203429725492070631160268830700799399736025633040993817695941474766907480034028418711135376791462528025584279985040011469705927620950861140652145159984949963964387491490402757760212961041654176010034218439627149560390894664038389793746958869917760918200131661377999884596687978464717945116919560645345311739075467923654321923824474368309093738103989194100042945241527853719892774829833518944941547934491454841620343858550083627341577835986433288132520865861945508080923964012282353656374209922061872281780819673752366489970548062956573205467794215325784003465464458670030395241200238189319482068724371828984702357797221926989982708132024233227128564710305811331682290372955888784272281700197558114879762764989059239993963477631160551952778472035675151678490846358483354545502009092749891016547422539461331360316064790001835543534804040432887648656068439235274192270578135471482109152330378627407537845962946038628453657973484693034042409658603608080519830862783754044087526225514686060964368541966466408657448030815768056618093251778318980455598036741394384611001495736115230562520030962865861523019668270598058522491508069757830512767794735704380343387813215587289315052203888318471348231462389352037233715361357927506261381988703916771166168360249871970551394757615107171526589208869231900462516880282839920259419271126168841749543726178152718997671089328274479743559138460402740557020256025678392918528290099486409974605892938835416492872089142513815082100102244326095590531664503417688759361995173036771328116388118897455333336736202395025704951592654065108861497500303726620626480206080012721282933941316766991583308034248159120111995011094310815599859728800292165995386387919475969819496074725312960683583484744732129676092994961585001932677328389555279339260527518789761694259748884852783057117294014107327842203516000396450879645527911554647319214243209217307642319610481900965753174219389823292386277631330825593872876293110113053148672608832997860498220888026241616313016212936315492121617927361026479679278385540900347563968286578540407550086483306953224437613845515947111098468283279095468419084889605903710660553194592464683435661252378026318786428646235297786346038920093512829422545742258643480489477636211417486213573412546262263522129438050963064538504967070794245193521613860006912751738595601009521823624168624001713167290353967289988002940919007854472845397784006305185454099106908775805041709573688491904950957052095409367946794454658438457523753769319897534739672276129888810985239472220988942453413138373787508745254614983238835239435857388446487153522792793340642300090412498482683696832984175552231996282143612528882618738453744688534601954700212046665940735301460475014064574065117160601550763200835767207703647285149597750977642288472876913559700740092886585795188691107831988084197575083803045612664490926801431824622452025664311466659325737522310742460391022802107207850347827720652777768050861937955544169730914956009909612491745636418857910004041748513408275309229004076074460489541212376846472720631662348611840130588541269662820632841254419965402503073055355484544447778524854037276245769108575482141022567234461284104405848114320363926205492480757922818628819568702213421831694101330547010842636253466229294409035097437140119404634003423986464638451357046055736962997195577485296304809433453612506223775048765044766473905021143021549199407006342675031064044233973068872775018737523015761617946739553707876226477477067589853415040692188481579527127182977967827017387328879029228003374466895704939797390756546065216071176222188688756220022513710573687727180002788489932659935286242738321728163379211695688489466827153622472329350765576860183967531070996331555387211947459499094356945425446345715181246833488145539981269242672325335452484977832487396867236316911348811887464169837826771269031152584714903064299706633398471762585391825965311222607609703721837455821285087128313040248283797424721230832393088713309665578822991707242426890287904981717764883478406996738307705404557212520375237624455951242384221270534672337171761682223812521915269799759913394737595037153972599679289931500577100794687192991090083239882024155250452341016321667008273611620425906574081028607208026948150716306593428487312083324576875958908493717015073473187571593403235618771470046085168551814194039192238202434352081858064727885488426645349207714934723692238635561156904867248007895464223029382089173594171346773676231119499427281706326878578828209573395967368764567978307869041218294193514779756869775530252970385322238462738956127596816743767054870638752050994102416013289928645016037072215325241022340935706652602884346191974957425200909923897849660572246743516483225624317403555582699532282517684644764496266037504297132809975954375476498432433862821893575054740415950080965924112142088788185746101384647669972108493029582569414018357465560320402300948374912176168341115910565183151302543774202479508593264407249454776846287747452142152628469451375911329893549272248712082702289586326843876938387526145934179029142359104946567859085029434568933051079950779289365313234719579955951916632226275926678695566186055181894691927174332571864921544432601964744808404342480327122667297643058683186375763854372778898511354378402612987301538456391826631581019741054023034942150282212996371630674687785652221635398167848142581014096562018829324467708957508004376920860894469458511461675643274594248802903261659361380676153021349703167165470201097428936041120892404181276091175932847913989774428890694656579349101593144220025984445023043862224671501350786195297691647675935229704966721377812595501451533070082634223553958078576225516693128565785260038323755842098188259440904823326814855810942328446964334346589277493770824040275357602939473384009701526990641275496842117931068256156734929675198674153574250815860547497894119451905464885112016628659238543377182521517480645881094915427382749855267321697917614235486646135732246333855253504278304441305244560310109760842749747519455863180331666055558536688270434437012408266233916212610270777562678374480539705294874939961160075198706791575782516855789181017788554542679669980060958328429196287852121751156933989753608819944845080582881610344270194039067179139432109372119828958092269881875174613114557969465120723346798350455637585998080320659306844420737205040706466404969985805878755299871926081147580449357057365848913410279574496080023202936055923465041774180013473354085619562745267294356925911913440917766011563917929708823556121540807927607548009225299525169303994563475183734835947910237285929026418425194712586346106039684207926419655414450458283223759350077297316769078297215073277773016449121851385119061675490411842317017547314611949249014980601999541313444391277965207831325139051354628189746182117054690213736036575640304927907930777326031256051577927692509069240575502614567204681859597083746673689184567435032275546085089077003420551077577066838115423470202891807451818570686133886919323422614265379048864078669463426423875211950927638095919667092824130828891349106352753852718863702204448961217120500123555286968881660005796377015373516404892447815028495649277228184469160776679269878698214843989170171632897035762366097039114865542240549194717914552214393171250936023504387908513027852643670474997735971517501792441409587361859186025937022062208704187296805351566899129979429071992001542723322894964407706855117295680237394782001472879877724251225779544750463689080001771466839080515802303446245629798146472082422735065981025339265402534429670478755494267543810639816929481674415989203219671706142546012773631701228910487177770925067263228445032600942276073140297566399700304730097217908607600925138463753703583280138260031590410127536729352671094334846700653408229215928821628515913788787961764617102418799014956419854306101250123804653897134849984947052063146552875631058672314747447338168330100621831739552837219224260949148910077334715653397616013694314895750395567073276890707753019886395522927570289174393675351978345554733057194915932400205905797127480918378189918411179225100623827632963976858978608420876520916825873276270633275327530434403618171613723483659701930297484726391605790416853662707907531066537393804700160230907134067501879707359130503096727041229054370895048948696802174032691360449591742110376943814300924185014627837126859551432638970456323608260035776316664287331908447488250295657021852043451360767928409514938538517469417297022058289235826336132270022354483771808399680870586255748520077656352501488025308121903888590306195206409789687590684158700236872864961146063784643426291391044867891086098967641096585413780168354683675562650196616338736589453282384391252649640393094918989058537994875091175287163153917813639483059384367429961872904131434809172285835620363333233497088050122198490125479757394401288734642343951633101840034521981004656284495525407714535664404942440002454765672800406288388459962922298226903234306204877617652002589153006016936728909435572223181219678034365326597844590425893561661920293275683897673219989250010988444106484417759323877450575205709707379080815354416118718368611616270168871442616814177683761475180609475199429968460423219113950351226885464793461183018472419347430259903997161498947473391401464886935926276417410839688772183969522251519221358790869449263484939726161280208885510730456300934819722566203874266431860658515755394360826586186163205378293442268885747101926260709693645171406886384624448787896135856427407817079969592894044317585332187003252806450925739667987084527998002752439880084408317116388066530911022608713482965318112207388168347759177684723905239384162140427840200997928562004027113748664842395898600557502120265114803407684539419758924680321994923951022760379921583099925841715325435885354913938866449064647094703988678926404121584748720510195290263789096739987567712371404462134970485005052567975992522130324960660795107893535675023830862508284134085611813730741827109311167178922800958655295859521719884249361957014647616847318873453765935111664123467386818570663493884820177226849772432576314646432781609783293819433201234689240588633328154697872563814431118713099752989973559419653009242327521533562388083641655895406365948194881502522636173637310494445170756732860939386356870596669940402391445540585849768112254813611881872249719826591714984902536342591407656348136527710228901941312192532674527595718557838091121148060355825588313464245331493829595451202574941211209222767136397519949546583432136472215182379074683771984215233187194647299845871535760999629571416191486288474276434740421660223374313459341650515247644937979981580631180643202996326354392380834957887238596612061407797582333084532230191558591893156814435317107292001743712805596939000872533400745885440847703204991364858390565169769858546434961426000488805251835451992850795963529813955988805420690365449870407896841459701462793610692901100201286139024820991973868163723229857993112520424693092017577398047589996990974238865524781602974745970515433243812875243541513789115870223192425787023990248219532655135264424262786312783438955488401589952658231027959924674763360563098600066825564112341749846751763892111455768340602166529844272976809732263188921847500645807708888689662040151604164206494768015288655225940661876810362045747992921207212013671242153275311996657472311499081724890595028566832162870449755147185501098083281178818801922944225621092454082055508169155742492430366132537959886734554628584129201125274349567195484895401213360380274275379474435353905699109385032818192149288006506222127805861404042843898371616448686261876895641834427850266994556870895352414788992808780166187333630107798119949360502663362296123744082834926554019383965358380199364719355979918525489365373677425664567819371423577234046000241986496140931898681559399503539977430069458254889268523889846472972135659292027993228098613440334836627290271991241149986234355365052550459735865478432736139993426524474073568378890364895512762745771484858222525838090229911407973068130974785213249312966255119059081998424572629106081917538584709748423123043122031891205503880957763641928589008963264400951632075170854563181669894944247874733796574430893383101916383836983099438684382623522588124091437956505803298990696143553665692699221062958638347932722583402164989210298153505077472302940985192457789626571565227973483536011416876223415806218393166227085987130189216608367749476106459220799184336839605995713344430543017537121742099401360404840401545962498579538582381089037426068377988994162942738629103772886722197273757946551251865565069129152568566742754384804594071415279795199248780934760646406841740553975182598174736280104959902467770139419751666878173086007872602275711737335270819077598060862041937635229321282724449970447428715210519027876184401736696551647664900065332479240118918731779950978548103035543755077893409878163396663208661159974357211950630533980906355093318096090878463108051321978866635273239783161912175776299615615549288855173753422391002732936641962036582569688266708342623919654110416135656605466240994581949607242913449971591950915051142067868122295902021072010584642152487367221326924055874125854434970805415015185994043727756598522489792573368652898011421602217915536646626270987853414896910011367944773493967445461939263068503375042342705546117490082716107180343787649107177834096354929830399174282753773844736447822996261370328176099800221821657389585440771304403056256072227824090076407395490960425471905472927173155052161862197604957648839393411201122239173693698977611592929886501541812905160622500568465638755513975110438359268952763267050234637804267302151585673059772122624556382180382495046335566652205661534970881014657875158565157445491161112676619638223232741621340626168015690352440847916549969946390253643404376576028376789468742766465832411520256970029221177181179874500585666014971887918972793741646826208104149827589749934773714582909727399255470539752152402258800851602404742917141602969375442694685535317043087025176759184997725032712090952206322335199472890591672453024757972083251659849302769646026979824360574827180348048467363049129453870671749274207657214797244390833785178959284204847651617323351586904589581520822498785616298216881575752102532935390058734436894088476059735554675574062940774787678039050724871490871865435695546847973310367636692933545146400394253774362392260626833527424433322158061560627475647756174799959506927756913872484204604580626116039434961546538103606064316185248064637732003449639364231470680055709817009280555719091407411893380659742340967276173978279239941563442981938727990990212953326885234992809039072372722853145980037564291073954861881670311907294456006061385378814752671809893891573499447211109838468130207308715835137895047876553789689011168833065106672229783696774249087249145022959441888679121599428877154170606403196212698549551626537409457606527928614169626568299745579378273784438874933333549305407141560105182139339463912832905817943033003559799655905315096148250422159660593113519757360138134513914456962503942271652066093738237862696550544096403597888328215282759948126313922147878434965554587403685549959049562815308435125564302924513841627849627620051600832521075861182791250871669835957020567281387915380316760929916487435095470267759553703315563416601233604161097257482019229213983796976674250221900250413643149413172430438825024070802741874733983729408760099959532400884784042914267712744226419944595755339921963497784622555010871377091438507740948029243455712566955484030683033859461557719324080377780706505410470804441653420173241956823726486086583894672058237886548370656559475248696626440724196881175650737535318357637581817117006008629236059524228935546355016455405326699261754804947423335774248038702939420033372572050365886045924856927174839970300617047802378507233371193066376874766439985092774213492595569562184089335469680655748700535175382862542633795150949511662448233251841360217632016410084465548792805135786674144625925173108406556764578222539387786802633733079888041954279370015494546285332326238752594266103744706489641180507008828046279848540844013379446680088882754068588077756628381173556625329475499711665503509291075233116834418115502089054945343220277841182357874004061372135870520839530489281361238721531099229960651328752381864681978218433889301243889707194625884340482011341397033163851064750585425541495995406286613397846113938221048894358620271329597936483113976478204856711851850711695406868187766526104856557939223091632821915878704403499050339864287325206074002080519290761742060944220028404899551686737196523305685628508118852638219263744989804009647653214995991869175119939585545585545499289036436235127417805995402574792306325962795090799760716293996086044926392895068657244991431350706134976824101122503325879253430969281115399071446141740655447991119622378171753984305846061201655734506863552724578136441400100457135645887484503797012843569979109248336375337816611493907673536271037709820837659682145036633866024759210202618133792388821899766152062981317096510022329505054194765782677866246509912629577391011463396146233538736303352968399113466505364176192064887838640244429177678347977073425127049542853133485795177723330700264556859777633086361410537541999444854649630097779966581631312418191554809651090525330748160770283578339667437228823607985284060039802321110457012215134345252936382269015315339248376278149432177760860278020719091252520020991519902504095277692198979835500730969942110317211047291722338470850790657197820842658548288009271762240841794305034907800158024644879510736929321967164976415311744372302091673685082518768733689050458560460749955971548381097230240876769586871919553024567200836708459737767568498513118125262726036567691491707886250639859371003422260045217648126863022454103748244550563556317970131939700706366175747689092040277478135985412044692322586472869632681461099179842965790827111017862806097574324905640061277847059740972634028803960621831270545395261550037536172519384693935459797390456564662468016116990993903754322589641342953162028234246082225579382196154982233213587632728699884240846101524579418843964311370622548270971684530724623785244580670294840171236626999637854523980474192755737661130769583069321776034155966059672843246388729509212657922459182120541282791242372312336642221864274451719362657715199498270412676871974890325184917006321962475705708666713582939913365148778573678930682029608825622790869763019555667078409573398045069314920285562824799016585580362327198080259899509472689004148858516410118397195279374049758824403493182723424138349261581047691498327089474561845163780619111405012203283813438039786012322437238285730394200590109880299450028290799890920722985067324098619149175185420529099049549674705185367828425745880365912048651496523343967724804637274098529899481058674084638909748366989691369367173801161513305026889874909957664502031108344288233060544247926797494190477559582106770107920578784587535564956007048021355249851181483838693623482197905581934213614510731463111855074530588008585239734203346287099464431198136357586307797651439531211371979524414344490481742521804767403790768048294217792829843572103598813956276223025244293339782832465143467886643293273651799019909264792572238135738378765832933939429610718358731182969548639934643473551788337972893711335899778500729084539919382620455344743525199251239978297739991208247540710160917281719189083264443228490371918437073979602647989844254360069157454970369380449592776608561109168970588299774862586225485479623696993326195558706941979081922554432472299675436634225350437906205388639481030788220754371332118887405913854480544015407681115696785853515678298427190661440705143544519134362075043340967919299566777040578583574799525773859339589659048291044684699983260188771122956699652981965822926725628510131904667175001531936036167609526594873448048339980823302595431266325488344639706803528002416944224751298493938451793043046288675160539357182618565921474264824082237370303132124818154225962016992234365844723104031951448049950090482150085791733246771756422282736325685660662091031888168074584104990878319581656989305192402115611520064462630785237495122940730370030944168696059591614293915660604547547037434848244629467592915321131992569465736794438411957732470632482163548208980816417565619593192284669340891164935258319329778488637842485714819654068046732423899476168734808121139887555647682087097042838745005795856827066887753608846810291490742628657711788105535864019163946524440660458303036481964904904182809034975659239912368935384702256055732557073909386782356768885126369242500612379659930198273368609380841949076606816417495764444884492605303928822072588623640355687097583443588260822912086643596735891487373651901035217247164778533995832121066008561072676353089797178018149475926901831142817394509468252924401857926822954471001970470134170138280588761149158460401545861818977975808358216253676254459858354604826396216092447362260720414381422978910427692583942837588244884759331016035304365614871188762075470950814593766131171336718521813482107158429034838990632693039533571448887251600354564038307156110574268610758731015744088842908251723619316166385850194007900092920766821714971212192613387974448565059557295422537259577425377244280487042375258128504009500861294251119381111041742209795308397949784333040591792370232230833850057624977692601677665263476668967793500319677559175902813203934430514655262314832531800552816140149404134565976820746425338735380801215521313823208698983168879758722226097226227696713025567658197267277207322954248743838408294490340696026019271967792280999084829394310089461320935120423042830441185208442409640865287307577554624724935429725438859951477170534056633628490601909754483735409375513429544798375049381014087777362441293435258146608887716796383052975725360321095589883653015640323482629744219723165509871366010237313378859869392464552040426937481800857638013108068732310402410533353353864003112981743500108864568044217984465636334124955700332007575104177650517323111611114859035509477895519974479563345159395051007492487314348128903041563715098711136497889413240698085393592781532892678638316627419503209092637677546443591082337950619166091835598183439825031327905163136967545976224970328454276176692003947141220467310750277782134451590231407713076267230355917273322712049191041814243501036986331594038901645499410758836961515853867737402904285006062748234930933631395733430396067277847420690953904142212314671230458400139289235264659299252692477332062328620308424163164607783893611759146253493743741127164678187463673119054569614011813277911726307502845610074631036493556889422635153587165801253839336970611584027351240473997207953442647568467299391795195651357827818386534889990005757828504544022300203747628571497528053040614062889990991951956539132446092640028975188108719339716794163632311580797297649750508452623449060122811387657965069145103478719904870733190060620040596401891081975906230822981701941121695707519960117729134808386428569711795422508548786628721139899007126194640523028264394759597019929974928898088156140456054126734617386575496494079716576043344313569467168791030156844030448237639685298460840515371898193187127175010643787673842626978127357730451936299079076395770474585437373763592209219775108861615408414828609217751205221626866355046806706208817791798527523261753339972456764882389033879784550449288180219988377130374210477392838285908609974803947252429112264400238357741540092261069842090980976331257026815957327757885017805520195828668748050227798917340204917082057466799700635390578569509401005048540323149756671175307663868467800431511767311690675219788472337725837618048535606362873709753697780162417140468978610227320522584637556514710674435378732878578955128563395012221215724889577431832653807146095374342835158903405782223808027734965697424075678878884277610812990152578354794541682577634712591758152659534169501451320402910482818491760824640298693895704033839810854617089395912928546523407753492335920080763997182420165214919674275209879676936143602726450626955949199753993049965985269172661749535903636011391520229022577870808737387937667231621961135482233214032345458174283566469308859772433712281130181132273767515850047657508977574222672191165131237007044986171473370143301569178499058800754200904445877471968352511408800649613928125549939256487904876256595179844203963538616801858699281659576773340460884133578684095154989886056434635151102034839400641293340321450090278186400786800464532048989042994907088678347150530178531805668445092795124776583434489791324855320747321579347292478550933505132084423311131143924508013448869966331746271460497710196983089998673448003728796601692469963533118447550275159787519519756803345310184650885876340475321167341791801500257355357365349545221953096147642368147213586827865500193945573170133012039718953021003239792920959955644261826485050981031654254978241263507691898589852604995106219877512673543342968230300171152430120352422548845857917243520755278928748200555381396016977311986886810396482236930274814659606336162611078586178272486858873053741465027956068424502172345001380481745965866109667630616035506374074449976806029538155522523072843344508126173545733080363085458482668341520556493289280623619498821567490824931640171100196369097058303484642416886431279931067711564429720563931274441432502912132575312398067413572181628491475995674226318361969188224639513244486647055414556559122963862834036495983689612149363726851501765082690139773404312420836061671940573614053026878440424531588003883138089263428339889448083601592337302405532751397487981905985607915248788311636641692550885374163189290219925902326813975357735256326810713984712990250306673987627130607190498902806931911392072405126590284259600592974701585665862796821221645070708154766962282306712060344317954194334994032184889711324122859262069274806684024259302768505586481778254545648959599346225591668461886024686340281266714199059057465500242286680433004541110346079955051367926854666034933886225257257891155051820526204338882981875079558473573643950596358820240379810186435682104658770335821196438517932881571373314913750289294860634607759475090054056696756529240044942606283065513362400758900407752925461823992520813948413277417215288260368935009837753979944762483491644822134193707578332041484331113795872272579384041931507116046556148362116022948528965708275524539831859989952409218284778129315336661465710301447698901947287902776941782063694339047189190711670788584351409092932255227019485996683547761973411896742608539419736740712559213563303489934707023175311390547814422445019906276184551862365104668853016951464483503368787257448086048166286871543229199722877634722396771466061033850520801750104930247834948682983432482183183824756801716721961089949042006826273500893771779554873078471070336716213559068897714840862083867469782006557055434543237080228498847807913622906388405575934716634050068789180887034901076691332583705039713595806441904282466722613983422595422958582254162354390615764501766932509679836424371865549132473454861312874878364752457927945600341229244236953327722718399621014131824869218625542690897707072401254157965086837859332461961393300635066113396567122250770199269652691957826082649379657608192040549569989028590602808727504605043181680671709778296988252327056399854773047208073041581858190162452468372360001621969757686431366351231641428269776544617687807034096831870370072574881711176326449988881375544791547995329800972016595538197001744104724342094554060130722958535307959658426950545962648905304226009989178099464757731246633091534452010330146201442616661435198489141126423109414686742535876324209808489313201182078929972539457434888348222625612866627186257796657158147387140537285482870904443132217626152520993645823538382779009663279382835006262718143425621710741162008652014251918914143680643990281850974530014414229274985404815369737989649845317703236510348330649354198745045056337734912521207013599325447993879279353744311165294957238445131356874491920894527040445136046599048080727572108443738233902028980663613391490686114585285163391063825512450369786916720412799959333245392156927170800876199273588165463712186611654983147087398615609920680454280988110742401593097889078604473393144180989807926078153939421780436430738414088358149245291862212786643142169339800874139326692830974399157993040954880329243728139403452397322485421713924832605824196646039858064304630055259959505537138243022862726669052671298090928940693950193636269960564297091330891867947392779391448256635697576160908598533041550186026661473447041187879918754746273390467168629420783201700729978829146115666230366591563717755161916084083903052375911254624364504974136327832174998651902417006784682587027342614830235762851604854513131739307122755242581351122858422378137980375611393955829114884598342301530131342465422034291832664316759370225318355134842394177792251518351171772113924185070242923978906664245744882187392501981907138523973534689838938770068871478260809453870481334573922169245920361986972136801772153587635367887388104242932338112519920392006776135796427077647736383318072059179481199460900769666451430137037280895828335754224397314264340083591296465460458788515075542758906213266428290179354506162585672714116022692733181202266052485088451540837547956159958634905384049027847091946130554287106830508064508896876927070954629268798723708638299052752799450476721420000282378095253190299444095266295080105586406885567135966008882558541226215419653440405033967653525849023269133845054387556479285288232686653334597809983033774227435358782123060124330425186933124722944414005353307012914715537018556098655354293174432194888445957093371692286574325661909170794640089966314517863166364666979234331226125698689362412333647578533110720949548037551382812853661996524653419755292213123275258278962925949487382798588796548331969137842850229182855978560585615069742815091814176371955847023194183148278628964337237130424728774834475346382444824712115680163349059778246699763815713060275537978032387006351343432843395835595995494846576263375408273602147322037541217486019399147333055683291058981714741121100846500644510897345019421143592629456796774958370354270336453838247778528394418799140384388172090677504059600636971231798289094836118370450444073959274548190440235975633573462781747743062758962051122087426731579526480464214272790464873846517233352600753809145974058144308376718359660529042452722155757839942385043648775587595535414299835600732265650618477572099181791424229988645547416660164540272421003791602748118836423493363515755654054379399476974591237932549657719410813450046229335927899869710403482319966638189771010513341656736535930871825416723161111668099758781495841981960504656547070374819031083244430624128639935139820774017847484607644445351622231920318862882988150971069126001070638549357886362038621619952118169767429117131389855297655385569506359527564339415573786192910886035762425853891509012423281446048567805212280042114700581228659258520435645370455568712717567271176255517312033343532940008524705849707112977497561364155815385406650007638157175614893697839931716690367591914057262859401766625896007800645635623042562109167232080120343322323425288146081476349993096241840318640663447564708796565534752291553227603938690542337581972186681926869270282820865024757711989276939143888319730550544088062173142178505798524608659430435731614759177498267361686028934471415701320331675305573054439964744536214328855087262156955203643293468275440305820650214557637638438861536795027001988100150613807899747287734358160542444143436273821411030068013086298577296591869955986256730575174804472435024243879644410871379437264185522978129218260354010223343114070902809620994988279313847856277325240805042980236948421394471002370755440313050243944977406757986767969848758333109078534841868749236051244542647340391634352829349615073766841935211275865025137149888754356352082646139181929995796915381793083776538945000229507798791717287558464291545118429551001470585950669481280788150039337495632556155087029199457789314663672819486651800071568930904688927404455191533960266233289157056812530182050963835860030556667311493270997071751237653529836518984343522322053190288065442750307469940938166009707074065745006446575635671912981500796334520247527057445118987021797471765161859722146802867661825039424896020724091785623426061174824222990137516603547109016830779590936765457182223892854222661488684014895912908151262073593849238485735857879844471492238132548361850858289923946386989529857167105832723476826723210405136627197376189562755202974859501506680274063060321809350578123326272134881231989422537835360486373006633538096894055777837656547182997323920786556734261826381469923479418776501972920294891769048995227221606498257067417278690866549622125557493692573039652710291029736261897974332407632703969871046911204585164689726567752585322244602421003996066663617696946354686100145770567359028336563005786218475405684081367896789910083483748265992014376523409044371207026711604749253696702461818336117620551956716230513932324560399807705998111848764302500751782103257234492954618656713147518710194875077160450375540193211094805756164121346185013971921435102394480651421520910250082934327256716793268004073877402781088337334839558803877588949081577999956232734533832590027702777624179372127321577575434600740957734213516049312613700482231440018043485394453225404832763199519164481764063720310298683795000067906516886190636675953801189930847841876144120321745564128777957875952488264205072886975338042280648338267254299113170506332080166325397684361036252038093665761663796314933104968652061234523904435990058054652675484088862073242802156564243808057794401936309383905604712756625200610645964704409612611234758219589646242952521219810731085552812128718709107120910050968033859384842273440703654777906385899318452580431262355298127135038313985864711441647299851984378636657184424482687324882638152600876925250120082021720791087134022986075477935510947014148549437540601726511750847562507540435010877510808393975483631777908087690248588309213612301760915783501475719923906064588734105377486200732902366116025513465209267919855563686943871682970293605706337960020058462001098926483018907974295914459560249526968843220906126751696647925703914627671853917630702145438853807034258008830992020808924508878054150259875368336602088384104191700404752208892297365019662404004924063535808087398791107215260466065872814221970480769406682418790178460143207040344413262828550147210842767854148939714888447879280812401166289014229021749037401605619434798201811810862106979653911345877426480371359071015712770958770270222517960851083546314434873087669015098254539098823373929664141207382907958605573418524019814002083076625119919721891782097884117817195704183239533480180792693757630961706721808817006735480732173393932626263876762806787595740214694335091619336041951546539942507469821858446048147033576835978028124512727543447109462544410977417787207831785536844301879383857247445185571406605958163875609342380605164302249328742146996249820342091901084521258673281440487089606926426606062931065230744729266083735038371161325444030695353015138547834104779763755830921958540423392474448960391465303554591527740288885141515033487015269988918733676065130745456977172763053104941932380730064506452454681295812348721412929565346187682010816822746570156456070285510414156772734874405334563167526466471644433050899597489258823207027821307626699219607346198544790794779149084509760629569274471525091019929496808625734292810536790523266930300090170803743699558744826723452323026971203485649606808137757970352671927202418752916271090840633045138370754152691380391918916351739230963016725158409800072006106698925044795559379784591412857644927396137723199611186871513258095180877884723973621780032350587705192150497140229026419284489966914477903219742454578658522728457570240531028036603872552887065356046881261340617574293608490894039092768942818226197801442638978352599919112643265586626865404380267375835305463820959616980657233336895318858383073546425175599243175278522981537522120398031157074497982285027172189611591010067917327624099412521971452458554342200602552861884709519783957945937264349532526322149131443972958274868188638311570070228037435371195140686118987823929068934786460752109734881558183652472110758812029693371386555366686143581206455897465641302279621877417621093078812629100296099846927467632688821555786691571860650596463294040048969782983567418972174319300596403892004490499064765965155535813651300868231315090473224738925177033457626016906876083593930200581652184137405574182896242323742665275106869638813984184103608172502830057802339257506645454366848736505297022489691005897842202221386711904350304790106710127599311172025517556255135673988047502824062090244524399570463804606580046403613716506255447633519773060362904120621232586753390526233542732165321420845571502944538686440139402860577225858840065227158571280376227256463196060918353068337910803982990748505405497678133818260507594558211729055713995196330474571957095011251749638419529199995959152752693434593791366250811384349399416024982954033541886753703753526813893755542448794169727875854419386673542916597223854840288556189046824091671272324271036542303512995800515226212343978710680264459207016256826481455270318284534364392699808228465383374265171804740327885957389737724114409119649817384233029581049646688952870225841248106296186723140500170634439347847483613962422603052643180940412485730780205382015912370942268965610971072338618538371823507111788864678802973032478704447956775662587951039663812918712638773122335431195198471584716505560891466461107725947470873318952506067054737760832028314231704899667258861438750087881929479587928066591935621254013828188560757305224510481447983134480269662120270558667401486721888844322479983058337418508199680627252268381779617600287248608342994007001298487056100791717546781432628329929681125078430173947804068698307627056054860797321325641776922688687627144872007259934051986739707523084320291818816696875076629023080805434756674650580416788520156918943795841327227536511281304151826934345463987312062371462443535329713471123267478061301615522188232202893900405370924105735367043155501424436987173447383034113330814175101145197799195988134403174094610145671359821191910319780514131538762622596019048089614613524466577194440711479613684930493399807363167840657704958660913716132257930357662550989458472390886104926298362469654485035976275762778217132026835572581977507462524609344155987886321127260558940255040949721531490454985008342987873642818628204141457829112402491261409961272039736255442543971718033933676400865005080101307358819870231221046420599890137730605774443346560329310643101141791143417300255844031877593922394442427519238823486442881125628383283949025572808673513240137110222414991129584728887390855501645524099305177105131721927800321933052269704238379416606178689211225491869226823703481048230925432485183507589943858688633126214812654417654080264912791548032806130365920668002020386830485817970888879524961687491640233600060197093267247288291789004288870579444430029756145226646495173471669504790639592889118307663652278029246358898827821940331042113205968178777661455097786722302146498391949548944904651852528806966989506769140790768375267294165726781453811329171292998128950231734905248892419673204123853176532436781594088019527816254671171360941646094334963283386360156641570521530251419479453177822058111910199262388652484707547122579414783819222143710093492718228686825352748860669326250637463849876671427154096274413268152193958828590590803115255631805339843928761663929719260204119178572136590340745637825775472270318806181121854097857084999169743246950323669803503671425226760909619500042646659252199551551997590763818925420848839984731155450236418731090828210066233407658499639798988831704436319392622215719351253030330756859710155208379919000289229843048481614238789473107891926084442516448283240378929999593181035302949845305532904350664441194823473894008416190295995520305352564932900152507491846858686264965505998341114559467641515889243943906870845437434013211973714718940112175131982287506539343418266822986753755944729647681981378066441271680559345668260405410051029926472228685143309967403261825411892082888468430107564397743879036010408298122475814856786298045250576645616173803713464622785746428773696044295834514309105221685995840392896014736069849274456806699011464727547225704633264680937407553440566743944813576513937542213494318973495537155923381800024245481888355030504832917800252385290336017685677664143354608548968951616203156449355160223234657162019659317841768153489669050796716224767581490208238021606411907046610094902295507917951841992111475858148057707319225162301469596634264715969172621524034648418996596947936035721760436884941032957031790805195668138768108748858755131982093167323006593525006381152355865742714300375813972339837360025124946947785517087252230910812763775353428877561879787097149758206913682088872650595413228478258007689107504215330539137085433112592593910415824301746614643564341020428401873015294452693654026907639232483303055920914845980219756336148875061313365898228294184523454971251540562120957219337737387761109427283287072522919978535843118048200122864916553793485630001802293143830694676961959314123425903787235737973343361330452952008243668869212735045939895823502219704708681463037545512523936805445161623901900883824221364130055709770080362408985106882984338051005587200048000967870880128045994908602214883613424020160809565092563914715181872909710135725039861200891939726739856962505782747815585663347587923043421541722703622578365891187329450931956237170436927818943535076324951613749430734975443076692743294227663924064563871841254313408297284417818748335074646701458666694126575699015816007074467508853730259893750562340359970787601271343630258309790889767299734017649363802972975323931239580900214765822742852849042566539684166354235815425304106742926688831728041106961250959907499506499982035537537254368376127737522183094685422034342930676394116815471440798507296288704779259524348726555941319179474297956066571477502897338318901937871569022342652721902996369817723037058499451494619799094248444321350165594719456518986157778387997234757266768606121595910790087445184952825813721366592733512867008801444335334671267339229884442697068541634847589753941888144001821675559666778627683752739402922069933570092554927381153353009248852805866320516669158081568912333921187462433951995873059226168496152453130188646156839698031424711650612441868449150198469131736796658178153271549164048154911944879799803313163210403249796816272397506768227024721057685982165457860671933978198033539363324730471149751983781702464654392447266036209850444383961140076362862438839447455733831114494131364460667573013068003669335307551501376747790828920382714891729072285603664626428945342536426371210538032031740279479119882609613115700276551853977288747836949034323910555992766893271550487982371197091461415946428090586804311367574329148710524895930797602785941277914270870247042069013292104817497464603992727551737192334368386556583782033431217689651820392032699944499215848351760491703476878834372161993562993909244039307107361741008236389550737623343922157570255670684386879657338117683147919098400250846677837769629906403963951233154803402697005255762417735308936675258140178701271115671226750337051405106857606324381581209024012092330218492102608999277886470073625760998258967546183591060266682107319942645975742153750392725730405580370192863127671121033159304111745874658734591107909944097826067605606956885718022308604750416402610465558518520645734272398991579288577167407690674153118356377563497261815473861577744842247399322900222779379542066936158937034021360648893686303163883951542466893681033288703546633248149776261281983902710627635786883235347284222754462600453854438540965553175592180867683538820904178558379693468715392652337090911516029496274440435830766427676049170978638450044251089850941398603800466033297810020086582375611172749871556789011162288441511718210914279610156947535806832219030433778271705190980758527868004553538638338057844409055700758672621278505002356159129225308006892121135453309261336123678147792230449096198222809312192188664547831466674326175480448812826426150246209683794936119185293477135644605738059258166968538902777076507177036227193971509862244083316693924081006501174961363685748981036029895956548807063731658757318714003438443638935530568202916034379055118163481133404693155436494303330399606581402637651090275346759179401278248489328173539659828869849187917706181008085781606583106835658571771889255548787929911158648035564697132558618003280222234332685580079710123037226010372402862113681214304753527500639167579488057089873949481451887333255088788722866880126352866054153022882289550774252575461020706709348531338379119694839587857299506417199473751816509058060601121924112855526404960979237799260715258062762192646843838325514255921591896131497965407170499545905619381659655089451954396948804370719453422710507407844151134989267896431807498614938133387285052542943239359768957688094061008519961935715516460156969215893110085543520451600840392849121389628242120639496163477462803538926805933472485944962931445740272043705898255186443821079567572128240631687364474623633470029613735359350799361895424404389660883603780435738128823248325770407815521588294867737471981373747056449102083215832920012859201276334190091374940923888370860011855950161647167573256522278005105606764979185169395603227846450692701675435439466557757119442252120645286912984289925947370245169842462505440098353183948412473355557321842517091463575907049728959023427886883015543498478522327995534210010001415078886337887333817407100364673541489283627297498654291149337304065560743370327583197433626008177091320583444416878893301373868639711161036751369274880941146431283861955606444113959127180063399876546128752702467563063288078397042624776852092187928653360551520084383239446159972617793028155435127509255593907549953293432396418370539095182451022682138585148308386711277538929386967143807676661434075422981973951692206470067313242057381427600903378121481308517005139897288197205244021360978980833651778199552781449093579218787584135195856761031390310761036832078065975524998232501589166026526827005842324676110212358060222934975048865197465359622589643546431334456669180779547638917352609357215302376588790178539459303162093726100657516598483192926426239239142424198808178997007244097362333735452765087632937599425251380073597979010538609406741397582644392779054653336711428089536533836046674969390257246640522377607684105760655172233205382609138283991098392601658075177904781190271586922074977108315304937496109333065244277332202406836598961766241736416275420578654383380585641791317935861469205423280198376786880647133935306635577131118958526381643461319910118546634586305736233370517493948541639877152000684923033201671529387014502147678657529730542789968562255353871203963318935744563043284689542896728925389082475433952520023878732076645548539477766361396655457683348220888807900979902801123425523680016559732409974451001461975656061710311297774128373543901809438769998584697147654017826017286617613076499348225286388643546992002095965968702109387397362763879916476631542075201853995451802084843464806342364254642165402431298856819227366934601408763928873948992128866875001120336966710850632850739827871924728395134933182519590714005166491597532471330616564115921181329053204539087266112032732152504764199303785175758687505031489869221830410618137920167172943999433612296044606436284066415472616283640883938439076594164277977163001065004041997768174996016953157865684618250031040249885255339990267960981679037365608780501306966549357370521152090719589078263297289052607689722820672850542413082772468892622822910535936341139562733698854785340521730740042781126485456605461557828401335630354125801850821747815911181646777227235518720889235092152209266869665894358439495283847102212053847747015704208446703535117364165888534752443426227282446419673419906880402756826739456814638524530744214520777532257211441486094389636833694760262977443350681474894131207710487861630032961564151036105207127691253843977137474705235220599440516917538385797886086085014214367759857722298986214812259419772054511384285234036554240924489938154935614152292584896699459270212116094688198363394230264848347702245648409543253798985965316283050645819514317270466444399294216970843764665300162946107190014309570559896912755005626441032922036252319060774338239660027544661137005672299285269534886629893197204029545886131135407120888537742446721377473262408124962565067818484657239947439279595106767984180742997994813398082021563160404711217592340665758845706104930422371595900697879905893661950806767894865490808275955270455876657457476842857393164469254881886224305838557183269748862915192018262350110624085703619587623314322564100185561108315612454578512081238124180368277010194983273673031662610014604373908885620673665562887502634576003858736145655084866094583487734765832827555508661811796584954610100922605268483412734799387825752299253069305918937611798428281518550751990288740014373678957271741085809734892344057909877529626259997267689558624292057948592143100689480717268494094497901105267234215781126013235107727063523165770852189427234718567750304573959481827899673305695977093370964866465762739747277975883996954889607967104858129209550297609995010049266526643993022985193225258013096253629189570066885174695553857878408630735010151214899715319175548646340341915243167276162011315008155446610888027015126597350202741749666532989339250741928801801111197394040058410984704995983172503247019960987387486172657682194858686828402508920988263366283306354841351993897118807963585384325548348155073809373598645856816091035855952541201867411883021978562961170698844922648796167593262997940316477672877587882413192989616515695873678215163446611499699456889814074834727886205824175888333782743190458493560092733661591481395599852587759317638083815609860289411224291720329173895041195703434918537539575409524998143641157895233654661641156183536758084544773518382761540668581257905391423168487428827678630104989014423737855122349025780030588564286911335324718788188741374517968629210242950052855073005588100854355578396730003500132554018049575379930445856297342659262504383553719000192010354983790312831681294842923592776523719944199261722745970885979828356373852634739459995830888750103351032927227416759947638511144305176678412703536833150051641311667651600032773561846079972286167053839149755556181976070931419427503762134132074100062756672494020826195741608627777806544982488613008474940532941893686189495929617709027734253687759871212504474565621509473526177362768838926062178345451843818924691042270949281092067207376003098309563601659183638807162325818945074278498288336348276191715257892401970325555702529275343718861782384343920803962100222673055417744447634276149024887166480074337157132305230472007764662633459002663253767177988624171665804625430073517752079214606947685884429098575845700333322647652457543196783335675356493150388953399337856893505769478570758909312234339717439456148024088519779791059147054648621629050322745297318657616834503019105953989801642128463528752118733895948404034652384054726623310105654031293522741192161120412407924549798779113647687274217497064808745345091291254429419009052004710968747121756601257984346291747962420818167830013584265429353752902936394521188881045359782908358509800071645888938989392111769153160712313494666119767046907231595284981348255542359272382824228948890961825112689323028025121365572208656058370691072520454314884112371940695874176656828790251469417538274038873333014551957735313102058536839305500922592320523432833881065459969261344275953646734858189061336409330427615595563520881991452928019616759489813410239500393381118449698650153913916329812916697654045096402049514429089955564826634379393119434313585870657839270526171515967915333801407728375622740383282440234815888395708103875540640608797045265067091031054919014126416070383108609033425402645173121702174291625423330373710858090696597779773504281636839098272784294857463369922070671114403458076088343615006658142748918307053344187421050016150462695266942703422047744899284469212159326488195204617890047551833181091614568867289612937380781227030417535572527664581955774065757240737573821999558251056440801954088037362770685503247383641054104756377669630591597867606486235954719151509162300026658865956200227968595155415324310641828636747545845497197080023466071518751750924828335128302179411421894974823731989258956804260097887830362751430230442906700771250762178221055850104327200770830763007007431595600396761768659731857357608846855434272707927836125071895759784397463507941047117159307962819059902052795444764868871712476870965086127088273262629473780825054601839892731439283959152563715737255577865854532104554995024151367710004231577967663761059917688263671231089691670260850622090100192336311440018609684359917044162467160209598237427329764282363064658549630635763337013833792246620096659750423958860272694518050479962738707389993073236567738038811268603025129635978958606944503871155014618989765272495033869754729658928086300681920151642771230342754350207586187215540539675568664056281833123361082553594299205127994904772182419162864203248240211075410349882609076811436475621116507239841232301179912005219298559731047924832857216427172469220085149450633899872406131862708772671375475829356614786426327034855141045931889734010390373978319001240502384324362804922675643461218722733929247448710137920763196113301178153525357248470267255328028962993545550909966237478001600769606603921792644904446251265973928203727193441463905922020101406718406972837118703155159831956605962653459961225478668559918211698233871196046965850573208164460351586393737307306771239937442137078216360009732534832070850593773746765689331150263908417257789597830161626310922337893111836867863521172802697848070963263669210512065579610969386762720614727661490834861848844122458724823500206194132256463724839225976720623968656287046444657949552345284318617555597304482994772236272658426450816258964726098814952923217338205228452115587644524124025892973660152002891641577208325330138273097747018290114756775360422573984918990008539008298718202917788388194015982963470341903177568639314568791563451560374428194191390537330093618785278593329320931195104118115249511816821669545725011824367262505651823656490146996145310791414610434420402002348260274926479241075630974991790190647155132913690063211898663720574668474029725306706732189662352880806107254694142202322765308312773583887981376000970283967383478679265699761952430879036448351666766250459546415585671490242735762925256369008352913224664592407937021086236449017134419529742757564389953069802379715643641260907820908643110376071790173225172268896905345308264138495147508273448879978687064231405295947195290455748092399774764578411690886478903374283976530154518784345664608510738871387356208801833453028878340064617910184689439778987098329744746452009933042636941191564065575014275913098445801382104401426641722673561748787495180529040746784556056188580380143028241747635377430228544172841361955559768096255556309163450122707915155995524860575575503262001026494335380244835823434760760694619224837780925060556506413310460129819504270692080630591626951867088327002627917851803337110745044931059034231743654091971159121229129889181906499045934799454424347158302183841073283364834553787043212648833956083756302694865555300873761247478419832264732065898587868337160003417222029016974770612095259789881938853017606339421306860642130482456234412217830394171722114829815516058463981064381712891998245339250664514405931711742750352309784642387932801993371277826328856688604212482757670777274521751865634010272280818143186250552651209000793731242787989139072340800185203649060069066049383563541656950577172137329926692069479302140392694243454668004945819766868118963505883378408955932309174435834156427028011813194698661901376356030873883622191482146626469246806306761437110232549233299023985205502835550694134004877925197030878202778814324297508345441723397952966640530462552900675141729643792070157314063648988195689032521040497574627617664287173911011796821056451870090583072710976978699641780139332627667784789085776289580201455653247607400120265435169601731304489428129572829005375397337939316176350073731454466228297656286842233127570528840931029845009707653549988638119889502224421190129105369203155899452635350306842547774611185555730465951072811419566746229669931554014927108390762478680478090821764921956623720763811307591695538436662979434782260877159221039028876207140974744217213846859541557475167913251961472501099557562859458143105969069312609988377650065778025807921430842168334309431993284690507591100182116130296565429099482475397499093733000697287730533848757259185242389551295013416977492680965180555541759705731669614963815134174553515229497169440489823229296652648018311152443800260594448142247089672808894466974186868555573809216563452570471637156193866179128749620138809915488002742391718411234293462046595127114926733788050660566230885235434052719836163323138829672070782734082414842944735258841301327074310443171727519035652911451776853864646209810726685114259647003912129800462835742804842484750378910398304145155715246990873995743667360797199796562851085849559351233776701354261795693302441696750631725693407373984619107301917677505968282834146599842584877370450743196227464147078049578484366805497059254253516378386014869498910187235233493063460036956201700810738522345627229777057600173518128039813223803283170359740803885039645443755569234834847439312982720439314381775563404838533207155962589045581882931999033880158339779477330044612580731333482241415263594049239143364964831651542914995827134620690845461422758915586666313014001086154632077828355517121973880816197522830590315953251825539542961692622897890368277704871447503252703030721838936007545971352994070544291911096339388238652716024952639326524524866443899097236089657367553297646026741530582585869496698761019647990528749368954905936547070943878301703435864826485758090892782332077364304303975242754301338628020418015683869577636459401178634327106307299554317554664139274126674626098431446122446063269289753158920198022258442753866266291391506883899709814721013056491107995381193700003331422700941498127622933860286332857197613092593843217062660417301666529010425899125019706011597079045996320207261142420766220093893500978806237299427968567474191672010475727185276562491401459251486521775475497844844442916651278839135323329877290458603231672313039701069575555061380512319109991230360900710073906679468975272327955201963735337026896547817837175559711577593961797148257010527508859974255890915280297673192797945174766341327916854481515977948504903132237966672417871318652858416291496365745731111679650668590836792072218783172870087623231322774394257882711611715325473903029605313925070520607053287866838021105605271928274042875654282907231531720824363738616084926234324110726023739737966420939237623078988928736769790939692735890882781987458702820568532782140245008066364705377658056983192988895019321852603891618091393562165506724788121460166670651247816856156551559290368615316199901269771584418106297527598505057784049054585139009955283009105250120318105722532256265907225816929027967615933012516422886576394107720182948593119165590965595727760409520505179498078055102289929937549105469616809586366912994885852863438601735183684623143839789564972669575994110509656398186679599860156421660841103639010439513655101461778992135446269919640923617543355088100454083802017445577867274059588373848599053438061478626243913337975376445504404630093115250348953766177990381422080575101354547862378564893439330616678774399994866060331427642977381809412005388811871215595405330784921417445869479521586871519442118642232690890784713625637237060122816784468928751232690964966903523015231057628250017542036402286981519861034255699623965506142718684003341148426319126352585291713711018119463509019199465733250288325234174256217160175863136985871089964607457334297018905872009300825087915822160544335557910580388031992262127277281685061167189606157649176472714032781249733117460406859881893833391489842845819262143573142064396612136511465347641582939620000886966978002932889410244752536956974516872099501222040084961099589293640305459486934227949306423866906824333572796828816076988259686528065569019577612859239897184400719979451569840858419456579659955809017152931599882260931690828938943243766308395247254619548636637093539828374396682555429975494158804152685752448504060493268066213860137591051375940635713778743590855701146028138471700787555220804616721436542276048488594296899712189499782203333397219167353387252266420018424793407366361375592356605409318101767699566209234019331744218995309643809325756701640986783001366748573023748113300062064309858176421017447820940541566771005985787099610835410935087723282440714429833412529380562332042828749725824166263358704352634851243297635476241623305511801209714077924949780579811215806762462968488053132338650271993419763138588462933322228646306146396452728557725171573315194157643725815641276111287966775427908704546069225634789220491299752590181702465896365585024368863312249299279967991667553441445430632739235369290695851353552468281086219666550568793358573744645794119490421750537059442138067029857072772961532030808042664370455054240761114112101746021403664492274584705111657678738649016775321418469415741660877424800737379220959128276296327672522561899282800768052910021611308887063280910932588731449173227324083951795874578430522451719997242371966163207923431669773566703210051563291153459285266224166900685815526549179857231544330068436272515571048531311758384078742676919259731746158363190884889364336328225776263072817756462608229449410549373410958999810357129181657032608085110352622472158543789809796653439175409282732956400285486895976385050648751790948119166858009924012343568384987006575681780355172773190249966497055357445822007834199993526367626732673566036642627026430342179878408207410730046398711212477868032975709406070455183996028535224714887032560304310072204873069914615415688462367851522388257581110989145700010636835248124714904438848308214307215562072374562119462127030650167273039720589716254961913134741435131412349307886048323923687497933206346061771035575610759938609691503178733717513515636014103462970597755710511934981269336949886604833885170284727466827690115392616438337953740564616874651567257189599951466202988330191483109159119856761241820946179803750294273311033040624804484184713141916336051014026498948134063642799184272077429399582259103586821004824467882276426628435051628963213238237149224325123856887532125034244258370238505282021219908750691709616391223697208025984844586221465551176397312285344412430594906343091656914114631071333732419279641745419907321434231594336093575425701690798291083440592139364595106963981022690452258544648672018906188658486748328121734525997615581907181091756756172173966872122903416386810594309912664571894449368739386787925789379929769074251763040509114863673566231232964785681506471263150147685379401591790500570601713933954479557768650241187614826287175561155961263523812882232851646266935956583155013600640815957641641863143134657154979233017218149933870227804316392826663919265219885884742310120889314361545544026159846019906847034362716502412127918980950733874891823423533312247687759763650560112789279616403091447456800261762615580126260786790052738597313725622576625681778419602692285000023054330535876121442912457992752835456325444843048708957292239298103310240616376528740679799075541110167665190101724680739019665537080714982195681923187895344701089956101682240305055987794753298311779865132819182225815496599337876325490969160646741160580827494998065977816264014416543004980848350620116488786586721431835433061696247122168285627263441455064204160988557906113397963473136197057331292521863914673863793998877257338330327720486858580116015950181070820444803380059362705022589431922496781000158400730457265553493850351037670735635888485007873018288896287478630117457071288517891838199309593191011197686965511017283299183888335656192683296776897432635206250837914067448580965082407199341304988785100807706329626922260756576385845812789923116810909605270053662946192331015691386352417902926453454485785679953922451503529044438033070991199255190145150689386024985864471603291644870197793463118451832296865878704202601481342128752409166453746737671639154551317164118161501598636874263442482285503209026555657913237665334182404453308402523918623734235285453905184321493880872130750171783101097830940420395435707883326639429545191984397331897669320743892913261490251002632147244300191810337149496202942707003795089985575309221861552918854722715933654028353033715416364699835952375479251386997583087245719231949572411789038756517930434768334892767401505751422919730867352509939544079021535327920265870967714233228028307559864594760612458736238853393996220737761757558178036277410368054818691551550503135125017668121353379725685138617342245086903208702846633277102455867877927341181445194858677356354175568270896877179234894448573793615045004158784336923522665937446805924903527773672902103167202293038800579057540165990783991960135147010125631310594780738464778655954723521595445843121482431252167266330228656199840660873257545316920690094562836956380004746426986554294991218487641252594324943432171388659671215856850989793220598182988297694601492975676960735815568550991245782220666177771696176728557492557291787286962588324104418772287567857963547294098226248251959055709032734785189460082341877561247343010024756650949217876936801508970727301714802903879513795620745556603805809495491691693130759862671668610351200319201352048075125601343861736916007798620027672129540800841791075047144931090613831076177192721739880322627143426062193399273383781183878482463104827805225748631310995364915629690148348873446128039959983531072509517952122963301242018766489075399034609139825393326092183679447902819736183265064518998552480524047738366200845430844156946223183756938729631047438184801315868150647458434364194411533226023032248255080050590211078906353512986585061973287119088703353030421741861584441857240403306457607556001673281815942389007039277669142025373019328006220975321804750824770356005397824417454246837279582481066751278480399488801042829902732305655745709932286058283219002705318239988335605456066605520425694411409023150372299404801683768115099061581673087746634353966804374040415094509755703371269298020639095955089200138788130510149174005580246605525066954265925108128726535407954171978440867121761394256829477922262298779173353772202293967098691707106213586727573598170357816513839983149248101682412989168229935604535824640306928006260061626834248635875410942766285771721234422580474726076435224623256417555564249938442887950461487691236303903194109124534220157161685778753451304145926566495612032471056359923046934143839459497050900336046601140052386631462627391436326379759914777212966527614333928821623016249033950283581518030212029631434259281398024136452493691230905674565219415740244456892207650626331252624821069262888957937338243654480216889705330279305306604591882202335493144051747607817788466436992138714639872378117682778870893633181812071200692260351493894109393562286672182586605633555339322349146796884292986021061466074459984970299279712230962242376687642055941789385340124589556600662835727861239992209601322295440180654701419160915467468545734870454204354621521745646672640552715447879429985342404913502784755465935836370893483881437930213800461821857585133027429458631381883807497590398147071220243891480081560827209435868588794587254186166034089032948404891655038740227386025119024322662811553425361584819191148208705403031409946724285127071323926509890140042636434293858263208710963834876962167987984513091343304951212012621125107520816684705329564813599659623227240969960892071793474450142210279764087163198013893303139410666306547566587958416875855217168028255324865264101326765932528425176510335954451463270597559045673234070849545482332828929477608487883835925185986664076126351566842203176191180370466484384576319363458062285684681417233819621912995240555771483130619828856412454211081172261247462761332079792679756301767857684501549840241202613135214209310736404039539003548517737030359382370431786935470929747304806984722572601871152366929689490695784938640195479307361235201963145403842782586277014286464870019499336746988873430304156669446904961020344388786282824447989669405636453805852868430961884255238180566060132505358811543285657847217147892056727725434308858183424365210553302728291896208092433306990531578139670450881316124052777271343827033292709922813996333936710069731582754886954680045986019467213627933948967217160028707266988807221902800810061747792658302952210114975683102892119935198938417374079577047097023892275825219222764222677025777951597176379510165204005354053658421683175860170154948102973252194787749572004289955945095924750945697415754102013059793547395641474616504446570236892440225126712048924165417149883620800581504649415692190655305829364931669273069190588858743455179304120774717932661394144638757728188953535996026653167470480895759872032658335776544443751208741098012757104101972094603196984409469137131963692918764004138808709373491989514575077553587438080795560375675372232617691978479576981922417315641947667424590284438838053368847936083645842447409878240397073989110521098488438961229650532099871493415236510902772624232312203816764338767812177311090779983656562503507060639666748134296277711310613518402694703317386038880522746515456258663056004609588186759879944667618878797320278535406819908950731642417941978743994690823882610563497431509534674461857260752342160514548622338278386706833891389687683562371100242410866568029378186037318012913300785590338799444854094609573867565148684807647392180250857262380551191570828365291016002188244388144709941146150861309652732320467900469536795772077576349970783957149451020543807169427272462063991959918125981830196042622102060135517354559207716155575937076062456721195123159788336001622702353144049855613259131857360593349009569396823793987791492297376171646059730255762254691758579004698512213929345641442541784887034703589604905897953748263953421801946944776400162195807095345493895004915100560887889572532469263864384732976819206689549941702153542182214058347924878931125891423240753107207263278610080623049135373153248318823262488812609189013331884226594720397703533673512335631186302503529622589453698739934080822779296786417178657292883587955928416703219361293752791989401988840055751580487642722594995553192657974668970681854753976266072466425871813111297702388355839543923347354022739118100317563701511300810226489294137947055343628532205438734220686836796511399032908896071890654226481930563948268124093622100499714758647257370433784647776316795504919189367590047073540354920316543692497712882545278586280821250832407844618229045576695358099678023475614833125758931769905902610763316074421742516609533690715395873040544678573062585555199305126251662736126372851613217132303660248849847749117136535831832925443022709282505633027721512686077283805832369179709597892829215186573177986423319726097174824557452709986868176747672849757014295893160591396550120762090656354905105650172799382277916290285642432685817092030418238906253863289751394909537360169176397620414909356210560837056226337887449636669664583014064877581142838495958148568458861558442173826500926562057938571998588656581345739606087524885403290172421544641779583120079249648027666304495685836209146684366263034948272177100558911104361111297349173153577974930563967924130341166004749800222931028856575861911722803180532461806889470230858607408581284185204713655221779676192492712169733965463794584852525548831716048277987982023950024768045750958128251296901747054627732392041970750339904278611752753493239582308597645405998072677461896688404797905403586031415790744057813687141020574382586588997571753659401678466122650692656398881155050775840371597825915818279924549890322263020344874047182723610326342531121742526677202341647046967292244449163594421586252591952468626997384212444941530447112711348890715419380121312786524327071506238867544827513027960507070191411947488548399644557223357331088458869399181162179648280636236577674777996972869628919591561149619281717389523338445675653961611251805395336167454433501929227346366630129968499490431472826196644924114277593728467112773776483642803632514570037745205333967237169308465318813711296331196884416009055296325354353686228948166896388032235596933688197234968215921219936016735259785689238984174060447814057142540540329484193232340283750526505016046172792505686503495032853182383029651734707824698559777408744780292091692361476066508152429247877652440906746337222485961527663854490122012657839531314864276553696751332200824704238905962367293492812612687533153728846738163898484194520602584186754883617663954377311239615702706993137071161587658812164361433805693545221355066209560826185549134995664769448772391700396122088336073446446656584902323615787109770124538342421376729744448339097844585486531723888837493375657405725043243372466842562563544574649774968260319370451584495207137419760043653203438904862675030151580996611950161362735873344358078282752185220792844799900063968262753676744391175817765187297561748671459426980049880889266061845303982603690528558927727030691056079996740434321240967839285211879261016620752595727426244771088095101477194466992879719115562521239317496981176578836359112400610712020372486991809068914305006767721753604070906153271805942420835847214840388503572668101421848624800634569099592616427912481480706706267272110893810560304548014236462943961880007050120175686055993835580015597971076417419895792719519320099105979031461167997894113260262840224229673916759104060898198247223944456670962299873874725899566680107351205009781275136849790128093501667270855987663473169767998501157194709396546183808512248316523576842418844716233617424918119036953535125633147918726076312935854679206066286839380521719059265943651542169513699946126702128906185133352832629967868031924453237086096329555454239545716530480086875624993195978980690743032232060023613694968885604884068118875576056060756219085061893559630567390480643102622019735348780116983772391397262832692299339327879306459080143130941751650900682873927541349409914140867311726423767334858421102919721198341619607110199072793455118553861235159984601311583041710591058662729053804059640779858088392130025243802039661227554612746516723463434427329799952956994218671128346321134075614724725299471006802918264922500492005177147179544003502903944482315604199550486187769982490914677187165964181675923705170653617470228736119105968374573896989019744304987823495087096475932056860859545850021998421181872132976212028248966213349505720569978237214408861172746119747616024466506179300515070354706429688369149536577140946715397748555047693132581427714839454712592653219321173168668348650779026242623066097178934431702063123920420546248475341788844712020755966643340536038523046572085502632611473753923319637543908545682496283251937227632027817596275712134104089119293823772497785700696106082240025790765064883600392838064266828950929838378710003642670418405276543873308385938599075919106606710087897203371696777927395407461696666287801816846165624220647707195082075151291592797788521725092726830690055318679910667411528334014149781556518068310343779164742597402914971355031723904332800237268148581568467597230957346674124646987706007584994550004199041667459720630674981004571666388684941795607773773151008581428288850747442035805051048515892390975970905860344218057096682972517357660714719883807770442686772405999149924244127193045736347887115132875047736124256508307442046267570793806813919518825184991460911049507163604437296326556382806994451606737304858122327513471167070114013345757584502511637175129710999694691910619156892289442313898195462600060496013790365365461936410393346786681282845642617760733786832220411674048401022588861788235976866754830334857237516816563525160483046310337159561595998642836182176062449036483692796721458950606767027699569174231833535742988888727262676145471652592130980711945118996940269189779224710300990806914728770768666398448037260098290439850044307162583931805994403596194724283476043576381486885384425888352570232917998337850278941302591064144426849586822362389985745249780103035468362612880174145491877718391124287978250915727043594838115565256860738350230152651099265275440643552352714062040918558046012362005378479490031037590868019548807748227022791412622043271761258276234220693873700663453019926512168782182506954314953779643136338747377485169935320090958528691197712787450173881977963207959278093843094309780514537575253731854235396189762982313071691327498570263979578897483834077997118671726184637382605923036328799607461021576528787200834555285220212265294109955241582588388605892970459368850223753378603481292002626995199435461875235232208764905251599417335135924730735993248753852079735062346540890409908733683470810847028905536509812780365229818094637060920806793743489133846700764610052158213335709051472314588636468586672451655456935494250374655384356248488324638385904648482905679536262449279050142418205630555046251463517722953160995688558397741270504085674345714068551801049657592063311975129346600145200191989260212371540423131692381506357372042198736523838610339075307373627845855295645369339859134627891638465757652871814858174221495658972065081334661815660621156966252910873882059036161609066235832524814204665225764512675026820803679212776410303254774592970674742884178544871437622434331298111408078305802833157094814350639416169229106802219203400778738835415662057556668213483186967226753023160885452976027260707561616567073320613492162193077763445669612226991370596882015282061795865507321633974859540616392260802155566095701952509491528074655038117924351446840538274821426931799134930880206167246971858441171525952755140073723961191671005580559927487184427877154680658576960685582768088340264446356728613358846267436852499373319274793759604388968046264690597988384537233996353679606651317335670464504896750676320887362543757637646216803055621208478276744930733790889916417148274353893653407917517238233895146299829159546456413722498812233624279517631829547960392514744176346408140694959273376536343379696517801137922299036913622374230224424520647909871436382674171747051126156628294963168086280152026920856935818654771030294702496449579438157409978702960153039388194044941586408711409581815632711514384804834730563103842267840077548089293855796925076004113211780845021015515566281208400947912906218919662276600236464321478845051194548273874294040967934740946431244337960925963243803299635486718638932763795295764085757473419331211495327138591222044376991359872994829861632493383907908819787740604444788853406905279989998468912242204086082818820205443810866930717615723444511690497055357082376161464746548225237995084189419017396431381556393120629846782299388411176629857457287096889584737476233037417841028994541692226147899218867913234353644410655968752195275755415856254597314188084599702657797110400548142309855866764938953007633445148714538063296232542995560059015813500787793075719394395243772840645219487192945949945172912045539638123241954758605785202546438874109004270175924870309388083547720412443768125324727168961704069566194241569575722949680742136715514787191410443630725652128775001866384994517145452901246714866524133500793728016848383428012653674982843381501934745072793098345054363111503636745190672736828002082528930875644866214632991574355215956948269729089976351195351533792960360014251233364891514981825188439720261386266301104407037028802797662693506951697488490073240798660291620841179761062023704650450847239023657866313188625056128889354713922165216389322237352437045201176897828139090592106215222555448047100944513399571056321193807570952016513151193638665278178612464284419718337729074811030501976807018748558784575970658356647521894890101183921484730681486227146766613414047249709267158429702165291475552014380580559305770425652309600432407681191061328196237377743613857929229784455731217804036805907008819144803881458731328298929190410464733199765725614750631294921673842071406663225184529381847455405085281927896749601738032548404065266060058340827721155408907438510719590957933587889967342123382642251042715476299717793403895812000367863173440222365990525141593005987724178246202657792656456602161097542591689731196627241356598351820309267545321039853357373512283060524555807636102388607027086665066317735967035012624264422073299297537751627344974451677686853405367335280998607751433221204277936350924241486771323223917483047735034300217550126179824743700345088495327653101593754924453308299370293754463325804717673095798483523419548247950313049665600065235660766403830544929775708397230348907310018655082073628802423371759607494758057401705065784474723788148179151674803080240977449055889681689986938085524898192259561487629863863407834757749150428653773940602103217941100170346978161316937743050923120977632794705547957554686042658642016543738696769222620056354854514553482925287882195043335444537232263685631634930198379566753648545349453757829112661119407843344197992120633361032656251588983906463325602942213374588074514654725387455238219065848615533976769895528859307163908376121136020663387254405142953488199215803981714852507792508277606881411067937041863375503705742703007951097015569322895274473475860084200524018625552386093822524001255217313240606853401961943706051161150797870732269257658340753279838344834577995453061078148807694863018154517586208318757589621152090510176271760735947589069747120204171343894667080031401789898131451107041367071408076219815469295353137763747658521571038534188239862085737833260379811646267561612556066051107128633034447321614270840561460958846416389109061964810606290831334156082216371017531410982821744273673462222285708066119936158473529351340648594446186096602326680803532707913357938420468916937966695793447279341855388776277676870151394173509922725333927535216438825341262181218353763024715373909973921566749134665366019900314245622295665099812480220781850823919614742174249196891133962919799139105656092570380550573759078705721210427203989404084324192472509505611166540338450639938484883233423572467947054970174296225417099452651720929030961474360776254895287995778520807651599592266674299638751701960487771196374724630262932859058638921442030523692310487939822469108915175751025652362604665914926009736991068636488039584009550460324197791230516979935846320029985401147144104849619091518767769140647864524037505227160863671666268585456436590546579528912306418914328762701089548570080852129570665144008280307745279771062562942536065589211174798529772728292527407596244523780733495679830170775031701512795405734603714963380260825324611027422449519494869494086178600254253845433031040187202979199915053511260800837653737812895309473633181485933032169204561463271210496550349478328415511119568273691529174915085126535457517860227252080845743002845970364827297270628738784792416369606114428082070098748611513879532773904571192709518938194916286417208026726210216522173824318926580580096836230890668265424425318689987632583356758292118657649035750907025482817630312089731705218599018371714593253363827583792116688754823320452043606929912745314474992878420710096298941000035966767055211432679032901466016103569485203986691713028473571614875508524525356702400733909080287715018511983647050512544858610332784909013347699915119457071604474082795725956262588388622699092094279759612824621683022567365911234988852411651486522233008475552824098387610940609510224876382860202060356913192324114956159579597731635915225928801703365876728206290953702915394456692488093418022330698232428301398223207301455463483022500498166224519879616996494525125950755260540665778958010304695218872147083304983942351796986424607748824740707950721303368155637853190097015750273325739990024782145939233926785235202420254178582688605129398763474825324439258198997988240640940458681750488094948662727709893281382791138765408837070864479191003717323971627192874650204169654591635609347452216586233608356538646853272691464470641951508838438188023776473982691741176752295527800424358537709674843244478738367471788840036999843394449693740475109285592792234469319902719361936645766319059630731308136365209458954152802919545929066943663626180479298826766042764325168712282023267073108636833634256883904079072671970752679569673246137099792548718528661151250047220900842885053352678278666820411033025141517575551577478435434056051242108007076575489260385868391430529906423101791057678647139853423098465102566415655140737456400857601229084953750301879940959224579954596684026072090346108578589607637242788328837498656045346636275950087824475354475510694834330526642070806660919025521661690915348978186186415805362148080398232756380709223229712850454375681967853513208142647052127715741578843583855593513535482608627386658301312435525722576171318363448208873130567081085329266512508373569365462937417413720528339696500254592114107131827326513148627180883717924757628205717400092672123416311008205677835132383731815858435149264315237085990808917393132605213679030982822946802085465674750161800041894230272675806031436144696996776676580229068727442381264521106026087394804407569032498995936004014590088293266369448888613980240356412856338955138290422592878802340258345090345968886981310647248903396188635378058591417813036633713844050681584870964243564477391273288028556902847518382831898360517875420138114248510610993123426265121022434270962579913455133073192804733631038346087068790397048692453402177433347261290352698109165835119790655498708848920066915087496553893165034792782645031125546304835915861886572571512994031846171574322939084561870762597078410027323843422595849598807617369170904602010279773183505353215520553849691341359189917649237669613253376239718245084334040837648178224342298186890366903415408507778079377783015765559986469288159269369368217122438331807285333978415499083160696308947234787738092868660674466862646656755628474467399094478449617519754905863017752667897545341201472877423302180700070858381310045259824685549743607733361187604635716740927696426465289292605337064637885417519289337325001944426573496974336101101833199013294978340589405841549989351332426183935948129619053730505800560404127609346895249280706850646962651763922410051213276400696421207837557494056396055327378770536056693773150303724802677325639805197957036489603849641170295005109241778346201432430795122545910060777799917232540787332380837925610669295723110064634770314574193743295338441946557364128310292773508793593895696486468857733162008696222105454852066710146302212777932777208234554510768573858498649470494243431824292725147994485935386691126659400251818220733306402680367245774323620111259244678203939892684455993484103640538211305457731758803925370579889722953138809350062358117865253062085385596165503780038621556452217509746570725127589486947994077969563517112043259405390178558738405306800609083269672373700840960185002157124060626432527861895743367452342875537064056709501296451817240359283859909342482622891753434231033695686865317441574638586331630297898304812505253303047775430819487757525981118643493606076306664229527100877583150856994820679214655181268137707460529101527898527489629080791098459473403283213693912993042260648998703876418162621527568729292575843929474436037237952166847822785132628014105671630771212789684388625611408000149657686204465607040743833801708186985472236551367412881947018305669787322549695084010280339062404612854059163050949323659282343036451177759064834643568813295448800910737349897450232776088382387269707898443846148290359334320059067341323982497484426349677292674961638158987889884037554002899476524240637373692206105183722304772756558822085584154978907053500656136200800206072437077596642800552557611832231124048841935808311748116334548631907654130132658730648251923287381185629793689358203205804043263619371430871970511956212280810154024033073971649412137225229949054985310121385031018238103976232175019502141446503392303340295466277807787172774494580756862520953154967149802141611459371101205440213657315257075620682477964169254723435942854118625990834044117269928872644024951231550827774721632186529371862454176781300741762806252113508137666916817484072489827304156821412966901728126780705924874178009281182479746158379249547497865265646933630754534359971081144964136038412562729428304143769033266956059594864478352815250172009772002791697161204486955029757781160216343705151661130811306137768663274351494193836912262699465554160414247318716962967204996975479979708907304936780870363487445221222715705954835448811736385410379853872199134754325130624352571044827624791262132424975528874596792419989898890276276945033994643938016446400905908724582184212768036729726203620217993073532678441261691116801357544883394848778674130107286791970294279293974812141197030057929900830619027208674480308157967647916678724930094562587201398984665968884627480380325556434579245128427454069744937892580690558760830103784177778213997288018049708871262940022150936824529687653869573432635643532837802043687265987821418491724673982794501416846106937359736350319029977932003603345107220715050186923180139026621012033331125834229805985140951011154211745782893883939271167344570869795242036051162984578662545717065552584788603965917928354347604951456859760804973011286020751390649138190715267173730187636200474611397792064905215842567989537382700261136671528934436316198340556901192099646785069576089730419025913586388278629853181919708692164160364505511471276477309863704358877036922960551386968615046454606756581353889765028421656967300493403525396882021670750906586558968771277573920569389824111315700451268592169278732454589371250713883435556002601357837792006080344280095879443349764921388523792739661637263931564953973505530869465801067593688745518190236957661132226498827170569501835175871540770535411725407168184425378770553514055914649609055410832829066625184756508858548320894584803437227563628279318614327550817626997898531378194618486144710877291394476697709848862585247706762140198129766485401084705614962836946922208025726452159068341734759267889629379985952731818979560547764810817617464766427019081149684330164522711259508832787044021032573228851390064108547054032036805397031587255858637222831547280955646955358279634041992081547189285761571867580701008292722807721514308974499478126740077988581675478127161382196807646656442694758360028418500306206459795516864582675524902520257921643207029898947326138965967268468166207297111588433862342549738343266406580838088061830985895647793665675127995644948295455718101645498710613827891368033916002296068137423860827574396831271223199310534592479869709501185043577545682032911533441348011941131342590799390893060828460328370880076855641814931454409145752776032872080292701515060872389661846719178190051509389618559022124099845777991514993081026119284545815247746071431282823410531307868874079951514576819555200605743576109370033878469733059879613954547393309692140296835127319075500789161704697907974163213199599626323002390543594089843025343211356560197604508243316245157720177836897371345350109940936477556818576103515269734933221172395991978549424914082047166522538610008547983231328871522666239622280370998800611484570501883309685530398035127449623618300296076086748885915348985520309233901510703100047992068674197818367996531628263408690294802868046277027112302757288028263286098909844980012460073368406629712156719099807246824009725786752744790912201306633263170699840081014973316330588496086256940290037407357189560946275691958255172115519695449850698492841823641299208147247747142856734131924207463381250415878646826807099844410279968676355503404752863381513725744760987552644309830685105959663276857825812330563720549229406364391025895137701612429897556391135121145081641003262543207115927342879065553705040205128190991569553666202142865738114461102934962930456688706139634645571189825879694488780099256322197182386766616237333572245780606519501189857933989111291981409131443942726449022196692345225476869211872321221365680824118087589242667883274477684706343349610973193210618679024778816575134002425605833029798784341374284312621024782913182089053912404614157562649884628893444465326875167660084709881738823342270538491690435153215238781066947342503645625034660415375993539181048752841108739264754943089280841643873661206637996627039958841889755372101256584752408634391980153629657778967242242644398958482866339109296087440767854499620081856508988838681254934132286631524650660638751131197072904260718016014471955638865181605620128445674281938651085494746353955220983384863700539012765371816679926635077930480713032196485850187036169553996413172765930409881682661181309797545044009117302875301432216486222331621959220981197387649884360625760851579417046322443554208991668983930632154611357411622141169301749680119709792226456624379311539992789360693551227512230575920992053378752741529227709044136129737396748732640553789674521433455466056849419979217656244694449293490452838251580088653109341076676320277466614541727277348304990753618093956738806924223898727499471418582040136020656918612196880049628981921733821738071514071726474966985656133881933674069218556964826376195733679997916510917544950833901180143345955177692265763482847871908013239913525794371020717110373774158384133975255601137363330447795771198857428300733001776610208713635275581716062755638891937653911279812611139972616886115136146384094175076974630518583819604066027615340669007948191705211836317819472120392102721242548096215384311959145697135761003103583477054030282645790644284208474172364013720210537381421739280578537717113873118023511657279380395951665187976634122560484838358135927008472932605320438513927154098338525129328268768468214587548996342432622764506984789775836676710910693198273523352605632323082192297489088601780132770959146813068946208849074398574532361847374116578753239205490083163379945487732950003406058046461589454033807374799873198175686213142251645523373494677743354642679358586363912934776522975199603123700612903349980886954819998078164219345373470748076749339853661349135956392990241935411278216383658609017589067389767311406377653689786390000251044490462098070368687040324916657670109646539272530278170820417113146863687745178031237971206881858810726060368242040950689665870657418672328537725421473044093163459571060817464409442573734559381636034294201313939435705668652710434803478017124685304342165520759554987342325534842085655339605232578176531125424657522850823818641700283203091354211059846264414895662981694354163417626429026599635349128799045159764863138274003527272523287853357685259266917390220856910843432552519924756758195775508054486838823142134937151030500414555917935084513304957215405106645414087126182288239743119880649145115949712688962817020043677260754308005932436747474586524619866872424925710087656943531592067088981131541618158730686222422965947659472081028766189771350448297477080590161972386982158684186591544872334777531197394899078051286348554531147404252949255654313057131427780258791877423906520711623678955459851103099448787300681186180060448647798135597702044369752158454480034435293525305892187544659064103932944754365101782901199206826694379228486106746429275872130035506505578816000802342243683082401669792948008113245994707372892028333758880789045597123249093831724363838253277489109934173550105267366232394328006792180102232289925629706145996625797833230916405062694132207545065999461641330688228728218717522864509185469338642305438450547885990400288630433497616305626877823040168152490125707309528801216776712442282214790483113870958776452459869619764797098015150046472075699704296843408994310927773546377029355577804804200644100239768509252804741069465780783353247493983086785659462762976971860306778097323702912608735825472866386602433699954795861688541269652001922993997325332728705246231655788177623089656770646280435698992655755843141890112742946700400586007270553350369388778012802107449918833007834155089280988923786600360417784350686534951749590671746387003775115493750149170177920644180291716374767803416689057612762871721366691522626319605021754699464590652179148814761626306913096039819145632426681158069488722277910088038055485986691246802456161730949573741147322707947295539831694261647397938340525487699837344035163922173394890352255008195296925586922992477133586418395520442794566220765118829513368140150194861569882961189975129483831944880175615048553649603949154517795517566712957182119347598783681010172703238418744064947783470285098811327798460204367967614886318878730095872879132761670387661508494579139902985600758546827549715398426407068250372221920682502448667329375811283041589265326774958673840723075620929263162374976028216581872604386531662141470212024388526771468164090068666615045556076063078295415605072834219194375411882993352685656190992727313150882470672947953629868092590812918891630398851366385560288953776288093261000202294427027712110324077656251631828805967011078343780420463161327095698675077798031075366979002207901217424281504360884186391352641564405109812629895218624481805721128682371945877224666842496659489893954791283688607014518580496862833972488468034553068789736445629618918855315894245159173078813999951916750976962006736979121313398636976694078931075246130324562176559929507708237388361518371993091411074189412017862098476258682887086002821571414210928199699275910054399897660133560379235165539108000319415399056446075017037042808058473031918068769900374804325703491563632311551429269705991508446270731638264072738764350905058233685096507710647528579045674750420392000877126093466375699800637827018436056891055938700865410915531978590552845065308975726113963199248874043613465059415483579514361437686271614942407652761306929026710372433406267157963493657133458800367902165604430474403678159771177621219868549604200057489538151686290469643799801294537355272257017860594449255810651990586508968061540960916276711393895156804194849020001731790110511813957867210848774698396123359414435728405223157323205236857377491452529544179761365863991419192892855587620792325910861916943137753652673058760084161372098512644015167678696020309278669250615519503126894179965974592826298091094207295980283893261327279565324555246682484723928258898659564201105556392296464799905081718135150687883920603571902989952136258267400010807701530555931940334383087763603869663853629497812961882281756087442007059117606377784763899224065706428021482998353254028455234999123652373722508291792371183126705136743775034928647650209007653030042832613982814606614420067709556155544372766524447076461509406253248423781891919984062595000105735422590131848354457099943086136679712080572042945759317443548595481695597082398691323373873063691585425977132181461308266162875588221174193621551354224568500616456958051694029221820482418223107306941502822465348903443210414886067524738110144488973574277210126043166398892750208996659604164244474665499536538750553944708974573629005982594363322518728328955455431085995171108491940438646276095651760287091640186482763011431726556104338760550395789514440692741587164890548010300405549226201656558091435751446921148157734701556887723070784895735432368767842335917257152355715041088786282325867755594877872414190216299804196889110613100251211758779804054312254912591847069750297964507948376315102110693077657748665760696032252933527508372320979581940815490755362953678362976192682473782022092334712526060809085983201198522023240555421574299963517670748833337111699990608530610855866234146094309955083234923038698145966952562764253268868772351878368790584785419629944570609001778977053278204911124954090583835834011767667903045960578408773314417197035081469154242266731477414044607184101159286762517228472506739843401032862614241685360060524547533593849753560296842405012611486381757286524774132314941052942398788278648641552546697274272008371071667594437223473325035324521505669565655335420792417102185228781325491653334138619378237559522095573971790274236150841725005779777177893354366346860083621573731317663234298064550255976857203453505708162437969781439941264370210133825968893259370630482150640684022599772673897857727228825615952733531726874800415845303705362052999918624722646290753320333273316749792377233122309260985605820025855164033564749216973797782926482520436027197885206839014189129272101975667007082858765645211596650200671557772849158707297016263578455309702935092395307350800238380670072016591414738449428486787928375552766549144650572030397207232576663487970759394776339101025814837059973413642922751649433285919317112550453136114187725127565712530426242467308713888099891280130234278869016415004764226348275544963456382231719938106686075656226005374106950985442284866253765107339157578561597660168663125651413128686917809185995990186466742672898813285142709736126204616064802513577622671174822829268792311391277451526807105797096498115408908469384256153754231395321768282861242216742370617267443818687470111460943842604570908906816155343737792480284404504963438464003342554865495151568649987343314356352365222200929804658601596725777129733414543435468814300798481683820095015953838232055802223748062770889945868094664304309966610760848227494276667072924296985664507752862508611437872023166335392094881727813092735053628823919755213466022931862237779751478748810499811160461001159808670729783540350764857280014594793967735640977694165436532113807297184034661111395144860512441989232731896476632690663895763122285561921955948186681040376333914331882024264017412177953632456103797293510549833058171730660523902824735732099784588440408693876050731521233743938074722006739399582238529605717090536658084956672822052941024856928101409426616422638974403510368586166673752524958217768993847760083951982676566889834486932088164900678377780509921937922078619105069225252653283536423737881491627132101841457186119454485951169728553835107761281401042887560948269654894677105262564620758131894228174398157288437646628299086973250344431193026268998688065700054743839389065957750420604962310414547071552230138343825278308378814745542271158378871857093954966718632743526720220101708568193786085760259676832128595669771969141074832395524295686549864697114662814078051755864385246521347948783048036698234187739189355651091970965777770894895459112751850064752000564579848542533265468689009730957872568814179573755961036328326833369766069454284232088475506856458081838631649952332818603627545477845246232296865729056277502197941288022181320859763339286040123000484088213369485852887703917231749826078150840148769901879640806284172275159190378699211712798843015066551404102932707211264058044865229090872745442718964414458880742561494701241824271357679201005732839923382662523340712887402194581537905689722562917103938490401828046271628077934008219925493478012692314671660172474724667585797202308975809520251282849834819606257552553806085057721055470576731184684982546760209397629930518769044904728682541909898359761180987720069629887782394751752924122239576368332432531137691029939472730236816565669471339544783822674464654163520140638366465603849091181322922139141031169339244387684846189743398298667542441252150460885265843310125770464221940391918007059698350002642977894521117286739777985527841301723852265640156434072525332559611083670487290341160335808542683939785330022468894806472156291790525267309110756863532904992091276137339241776809599091946588134965378544068716516482182349906495646744763826895282215067284544313907888420717888510450443645073447160577333069635389939201402016089109820878011100397850211506544560906441578789878273095301009559312261429108515810508507842981066888670996361900415415440415320315785098966473699190474500255932520046180977334309543117046224776894931881957322760672739205844275885637729293914954893248216240422248851451287237215379906897878179822150934849222461571682380322432738361713434277951933321592817679137607015433212309619356578527407000412379091559757449231664745329600346663184437361511646408908874530111386104220645663696853183573468516387843196123804889497781690727104238673561737312676192213941168015163126717043083663034448089150474661544740678506331066148770998445832499940164542780151886786497357450831864070501588609234242227255267230856228249654997869012969220544873096241263458034940430186511290028468595860497126399856704152349455902980808511861801415040803091408101059031586888700604455224730922718352389010690300463066606135115147464644713464708110189598240498555736389826290723605420260027365152856915066793292691608822963099038881700545147776195533082548234562128695259944898729644862985407067129600131980964902857065428136652094390778112150817938445135759186057045531440802387455834740359695835813287647753699641799061463217085974558318486309841709056979663063465727626499356924027805137987757949618819102186574602413958054477009840907786150266906127998701548825578255320322602102066037106798235070460237852850280942233656120546366700663621851484467041774114482525368079258624414377625590148578677610793838106185434722003198177790329169988019190340034809872518414266328490954802891907236344977322372660551204434910494723835104424438822567498021621627863680796758306304696150440145938056790425973649166076267544683740794986168048422251944489012797276184883979540424341927197486634046519549189557849756601966036065948602851099184708707843738606862121984076248979953002243641415672800996216591911028347451330157210551987575568778339098398259283480434891355963011537302072657403523381678930664743419009101239372687494253009436650340563566355223175806655525977469352605210832066368596515433786454802964512036653377484274861794564357851712723518968600538238946626449420451170090614025434233388152516888576282720199349014194423683434022110878715556201887612217539699284241561623099796022234335020314079137875612408720853685193877110744894183505895094731568351509139569483830324241932725023558733481131840293745892197335120705181699330295909792967122013375013966918932229357319083354945536642639488628286953392337528625693850282316044098402467206626475450323472787675232159383216629102134194505698741380478982114953543824412648981152779127881425967437643275834661663149007295072404144283099481408763252999852673847962320313463037261119701666709570444381971100474116737916244033285406494303705534562517452519422979790281754844262217655869567630097623708819690618723791577691753469474745525238361476439532102049287922327086938440167066043782248334841962415552659963163836713106952638529411044768711247402280999548189774850055231209769389254830592300421879277583276327607133725115778478206899131733272539033778946572616389047097685904487277579091308492894452915841759194699394994541919786222311266369308510662056764004900164037515247310326759786173807705260435537380409708096533787885011012916264875702799809546822282923347224190430095359477716728075009823097337330088606227442708309756007136565202916871917621444777056006453428385059685654314954596509530058359779310331107903394923846188620504301411795706089521855301321380551426288066064804410721690209279590917283164608663878262559881344844085295781675148880110300420388151795996176878165769765872179840074430708025221693210241194221813225258693170124148094651422401550448579252296698425002593605518037907115551200638811565225829313496744282666082063614629629116646113436957349358612350159470663180873366801935851388084373481532722138711443246777149145076388058447724580130298197729885925879352418449126069566865987306480471633255868509101897070550083824876897417287745854319544820029384475407373846073912268083842193252099395330452303450006600333697500527122773272176982358778697033615952294250688203143207695686560250976661061904580213356874178415206296475435308058960871148731673165712970863505018654176048596403581182386627999425918209699750250687678233989386130687876962044180660063065309736873242790026742995859094767514183603519504144286279971493311877040762771557681056726849985236035895756029887446504285644509483608636104707520118498618517446453360565041986003811911373765264702109132488408084016050373780165344132642474502179731994955539082060979246470004193616216483614985855757723812831973648706426537098629091619038568596139386017137002687331827001655393028907764820876623579324095694277921392691629838335321760848980986371066584593256745445823277767966547481663343992517389568025109528952501828640483094941801498349569719999890494206372223053592437673693080253592764582900897611183509059112779282900505704459786796685224703671464885639477388359216801301708031909653559578159559856648840070305014198086467728515629686223529667682894954466201413741268686426628615442174047914790695950960496921153122223095220932765877867414609385668416988297083472004317398217615880655043226946146943794290719821603893460601151199518090282006543392441302104993943555924587524186070744710761151715028860773811798914268093896462447859566133804376853110372585290668387785000079967792391860991975640918746889973889281070815947559240695966173976560385424705708047070235220044260141103143034532481448156069667618248935020621138496962883870267716530978381792131183543304136571320668393969447774578828157574749606087827389915493775985379847120280941297586021668528342045900791284327031266671358793070187532901823771988429783150303573331181324913678757475433530458761112977321260792586352741077237826516180789538550181753200896357864804968040487551589452920256098198057282273081501594540544801085934222268149176175363196002335217203667290141090523893803535258352348142331183654843635111198973319737148731327379587726924807680914949074377063117197299106313974779329880470962939068421957911791906447916750015901821923601705253324918676121436924035103436001676386699113655358684702472852411904333417664514622275064744171118556938458755086760988363113732642685625398041152368448127612501251666492759627262509798098532921844676541845556756634660520323871119471955903700689536633317890725016978708078215002712922591735321543490505495983913755496480466237096335690466816303236748287289424548046853248578598685004536918973997606968483155502307111283021544550784385029126081728275479389713026121986520216921991228858354981577204200981210516025963147167340658869221489423651856732491467528674064456537053941919106353825463807140693910430230729628429062465118732829945946433758009713306475660658631711313449543031481423430018386821677190710204569438082776074824359953088546336396464761742475528577542412274663037051025223749919416061677831411009049836452530618564147143255160060818464377574451620557222717176499629658021873176611228094295628048317337300287223719585833263555655011267146546100959146556319595416461871611207156281329457442291835460692828427271552439673184884594282745011818151248206986864861275962745333181861781046881872732483617190019324694290555264423007398222941142925197795690504553276924010466936934786847854201286804115416511099305504393265741050498682117360924211855248607056945212662910309169677381316587278693844127823839546648205295298013837132714483697510206205699935181509464108127236985502569612833099656735853411327931746086816661448000654982103335440652437629654839551406115249306147310839563321142499628354968310262230233595452960429347678935950111195180921961094197741439434679777666373076823845305341434881966502556445973935882703136538130353006907789134762195634558519830695367572221552325588077423819113735286586260014473113226554640116926220846267242960402724550386647338496800939761941782649011436431279817063079950591759503213279219447645199375716850060272461274775518543879625721694250557667922937749464697949664364820137263948768151051737764567040465442498248411249849832313875507880518638825776349957926241676117188880669967638193742596516302974640897329610278834019933016362583188295337835142021723285794422861599707576752777510685585135689751287659641745910687455418239682006807079259932656850534525391853821214110451869614380909711100948786388508596539668210571841438000245668323261133750818737680998691436306057384145408028588504258165579538515054320321143904472877838255837479822360211500168832088396534175726908500447419742615912167007261053984875906179607165345705691302129804359642470260939360716863921239343278902361083875954611229335942277815540629309404697512667515465474675734429225570487803670748148022005907859307736326052111974462013257435494822145837007950288864223655367560733777841461822324780245861645689712009305217680270647311712379648880548717082885003931932161823893646890877596252078234683496179142418550084574588224002457265764224213788573856126794544864148906753099385201222526634474503800816953449183050981091159883649823210069172319714103523569000156911009290452020145663234927164984154582334402850876566711310100979466113801811075252030668207495776626615123817690135097130955199722547816431611221326262330060722682272703333024894226533131996916800893926892010406641769686518602424556350907383490796222543478975425981306563191107517524607540028187797641267232596031367544478744529529611490965790112758701780799077477913026427159274942694756233427400711325025421470071039047245447861667239632979351633857938210138049813472749972071384416743157550831166373534005126095208911368086769764793050164648139080133313681106613213169787287238282966060993723834766309264503153628114484987427041929629843146897111101317101569630354280212543593889561227717200966227411228114954529176932307627004763036770190574952881499148915313785199330996620281044325397488879347445463208381283556877663867656963976822298471304289267695487464768454735307415167227271783758457601938432756166671978641745165626616409307037619182776739604454630071114235723330517562506019183369470757507076074972399116774385209336188384690814680840218435902881132654761662438838891097196375061142168739947535881535485469167157968824363698205703137681405413996505252244600659548438010068357745304895687831443441875816311569654147502827236327710171071846635957087783982940606748149808089683059346749468365521903927753521188602968949673937321064362837732167764243424646268154274839539439462138666244331416593269851597385892609116118296310328861421931862913885929073289413732987417884135275346587975322930645013868562751788654870762929821529430375455966524838903199838302853970577949897133674122484351791966594337634486471857485525973562716888160445365423850616001295482590454403689339493023782210252765113080007950771290194764647480134900031957851536537544897644029854814530119850237153236669067417883573142954397626054810439502327397707931400997364802748085557945398197418301061576913008904114659679811248527910587955117660140282984798816575784074335210352841595337021689455602543792910539563840039863560999392068572119862700660884400544920244501171977840846298568465522833422115073789501714289451298038574930455807714593309188593880366322594839192974169814950195978302494091650566845076855267432703599985669442810401515479953649799786277358208730330859531239351066548177261796920583966211709652317104719670496409214544290800096368752083524355986788471776469784610019062080864706629663640098994157595545937557961327242977655320112605278038257533105374183453676000598571547348960178694492282207656098005997521425528752155557517992608967061516724665110996796344163763540779402370090704840303161535054194852646259959303765934653337202523267692227293876241400017659175705222028632113632171982807774681129510823125420525988188810662416701369505676304883814619630097405827089882181470387439926773439323530707832512442118125376594787205750181900751891356995751845839966460857673775690126859251813371639237237243134102487138498644466467706176241842049413464172631949442376276408554184770718725176606377984932849412284444558170576216457303845894117898564501811312382875603136466859001536385693706684944743441001649531113723780146746932439504934617855892531583856771270031553845988402104183022802992180965265720618071200821979072981454273018885757825298281356025164944230817463137708748543371346370922796284187510688814567187078126324925045589557997338717042452803837069386202248222736867838595627059745802826467735447802264241783177960181695306640696162713092327324390316842438287696494628856952697954715254386304162206947077350721354440293849405611058235046706075120826549727553568818663987716839386661457689608978502600385650264739939992355745317491238234539704270521114456853840583773483130193748382833705227424988883164838678239430279753081523610968575140688703716786530478762296435245851611194988795325858701872908690565003339019437951808963726529920483410131788661896029820443671481326158559845190661912058010255158327254233005697783020344638092060070666635593618508353402706184254746119974450428855757163952715727808839148478725065514195686651831101265278700341201564375852521550905929663639068298456763635453891273431420416377297289059124346267340707558521954756677262600280344732075378445632801225042425056102079854529785065946127081485156715541910526387091757602662831007925833579629815947390867292277483264742799679710230153206312772721798540416827704030255046866732832465025167339649588856740015696501695469337225346935114286696803764498522574765693474845912838851707464418597296455059538752457804665696328660201338888294105426248185053775497224714345677770714633504276238688186473127793589509772154699629767055118334437312371749159391522149404970586172143542188749432935520187021026161734620146843852492151175029154077635270328793944703729062605035332745734689976009280117851337021344402479611357744220852773072058409756449684638806124464234439798802016484456963738260636739412097126901472647069181792457249317547371771940306543752168278517980352871007625254663379417699507864596208850628139673459162162577026469703860421419867300889959880406995499607207212886849185468812344528974599401206723365862201701830896805531184189301390951424888687419095654317783150615036222823024380926085009862956756798989368735896906735632652834131982508368037820935818089107083834801301177729119642677377218418466626223128269855721210279142530517796816120577031066104184860007701352546412448741859556617956374062032196968624534702208821315999762084293332003083962976480178869015246110848963994671682975352082930086174473613175187515923098074920143894993607106908618269680614340428382599899112782460577308362619643215566927702586517696977716275320287688277044017934968774758435199263738112097933990646232942025403337024624363967852675223440677943916016360436491490132959134666184495938751104110158634520272063013216881085039985061469900101087240593152755433247999991961021739519138062216563350986696315555788424405515366072977162944798813763711382780695395774779262614662927041697656858449099510199789564697357859620194344136588444744900611849689148733901624185812695500316303069790882041730598041504000549312095819160596102962148446053031109417052693316327973106130940409337101774317501737922564024201016520831877432467307192354832133372861892174612636817193968421856664313162909735416234449849203863725315072049194950288464444006505987074374022591223229071236998187908489460885852992480374308092838643848441509322709557962702525099588951912273723176919644075430007547560186839655131709095977958535219744296970286133877418641084480939610703120058745999182562865339414580227836054271449024340949982238927677830172111490583613121782214343219217987921448886914854981761963007908821402250956853441092257986538004918561717918489406707920677781959656105067765144454764765997965649245638293591568304719850182854086322731586979006534041552225251239257997157223818776883548558564091124187113348795442902634362014378449313858524013031619397721650529416756973632064727799366929556374704476830713105113848616400363249358242276705627626304617626596117456825044764736241382668991194194259729247092653367386486834829725040986755187516648033899620381569211761200159676279766553346844447975581512240498939134816122768579106031148471870666775568185803470738550039426442318475702801278903640580900081489874575532798331649832930247910155914632056669508951873234590355762179976662491555956823481337269213694181791200429375757766776261995911582430397875002675096293209793564983731818329334383356425773167958270084663623223271002955468096082507577075723368665236996498853159934483298557171954700974652601421602899788351174658334331314804704767486752606786036973762731334552413556312724172897367551709117088022949972966097616092870174711455406624060267543738450611911116928951616025135413644042872182978593679081021716858111080331735221318157079800232959917832457116922581224040444148536425405634833190429823412823560556167686178787718849759734550070157941302828176152967332118593138752458925050391430464416741164933434538530956088130022774587495214493977887517295909834291151227322636642193298874377482799077107537494727409461148264584091634805084960453261398759485189152517109391705762956424698954754922256952588587696847250096727176880942731202531204713303956429744916682809380401360025063971272750346471908766827231051121353151953427334115740708974127388915484916438428502417929392019708753491872194396524333543057941383039049098578818335447896335332015152523539546303160505461288181502596103095634814538511963603157944929779437382657251170036852731660175442523496368384926997114387292526878538825369473249863744781518883930604533158599458526967740527307972126635252180000730402758884798152574545362993921182648579832930043686690566501955087713035207667306653698955822340051870641177648237425652759768633811021348063658606135853277298908497976171724243949205994151228343486884920020119797858054751098432393650465026868649529768359315220088072277026045364788524104019875405873653320182389459578606596489102681111429370760691032759632453745449499291317876635847023076584790690597198872634005155173365279210271708174896004717431884418022162033246745840472729269005014556415450629442848860802080008960631477854347847385626742765669420473816711659254701864327938319997412996759783845771221112845026733711777096375805637490334486231703645354295789566990136100445944332672053428059724545257632739838094076924164246447654472440471165498417950215619112811483137882407976029415226341275169283224464621081240328817536522983032910007775209328687307158228278099107340300424924356546864173445978769939986426958800388488716150556316718629075968070228123315014187552169527565509318107913770295188319619307991287268829890014603847025769571587611989869024830315142598838866540065478019878764968777964633814759449661815968669996791350984345685819241235865868720445595767796284687552629462970060506137130920412369091870725539334641316462262068100442129888115863498606270724517077575270064153814794891600603433055478694660551932065897883180516163947061513891044919516972998724220028112101462282521423509260315238068009467886523445259747459912968220315237624703259866684731745540928695157930503494678305103976408825504910398252109552490353340923671143937643073187565467311881950356267969021482471788971210419804091212450113889556296422121719803717090694950777499064507706259654999588660008590354274368898708302554868635263923779867083142097607879854709356990617177075750707032253093166814611569994087403491814076815202676389557118875388262098240942278131966709072782395249849673694448362576977357295805830478301638163329918423131676611830273708782741872569028099576440119668791540302492794063439886688437200137567728612171447232098219520863133102938288992641573753990310350118478157617339952436314046158793208814076288305579077529121730970241941672600933065070704630122844049360585257197739353616378177678077303975999471381114464778613650997217239485777887121564353543903068998508051732639692332966276928402951787290533778626406977936041779677065208357087089196158781453579885507431466796407726923302198134046351544767788834136000511411785839964106891951414400691967202766675327844487400664002279234785728455217334179756063799558160922327151415732894704010653775447341032107577633404112678479120083454801313108931644996254744348657498097293516389420241262215597199855092619754778021912322524214458611566209667276739772770519828961883496520684767782351021334230211205182747927433010268410502322270333468943337501229742500126836199906331589735005608520551869543905007490157855119876879855143870303521175058845333670056900656889220878710726905973708021608108761374940637749303387095484685647203212891593696643838983839916081556788128329981811915047745120029484285988376076092847841127718027120537252083472576613010299235950134258957453657784686887723395278788214541579657277216647251533768212875872965353562459354561693082477958783255766063265459503018932408131626893554221545797418650346148797679793797927303691839082605596164507009714659230057919889714476439649168304322665304497045082033948141817313970184514587150295479971625628366867690790944741023762491526197920392757223804928392471603618418310333127591791853087850177445419905913075001441834480971862448098507670947906496258088488921991310267594794884948628745009239540319429883740493173946790064140862088730661610039982957288661449194828225984706054762659006318403597552240817668913518730861826667484043442836944174874208217564925812055460209826489554798279840658382794464418596996042710136930167138866566138423208068452256940025110129792686259017014107859471071013549809874742199600866863315000648195215976899739538145728604669967331639159044106467341055219895714796746930676238934104672216895235602176670105885036999223972254807025191905935657005030887419190459982816004240733548533614361028704731615017543406601011614783888172626058798444069153574128686241940704913858852314401598714478311328975554297743236228318923356437166120575133058962836518853629630040735746652737931611495230289992932438953354784448963398953418148239281131681801292081787971156168570540707882413096918417537715694846622911841140443731909903104627124547376727194862521165985962777881478301413124334210398771929655759637000655951672035135307374921495177783184119154573963607168744562687511223325338140090015747252603986388177237592859670514286188402707533617312978748933314944805401181889296778408372992633159530051728900486932756505689305548562146354200701700988014997454836007238021210053115369115035673118780789044717910073540417134849218797143627211060741517367892915583378946733311167384416464021545406737540572646480762953125422373308641289276919708622014508688349825441432798493978147870402273908684400165602097373761254148131062469807910006457075647488625602251867366499005207360226095022519218592650536508379102585798553016376310429899592640227171112521556306596600181199125781433862013465414501244980352482089899098549930675057007068809365246822373438516026083835403317020686434068253850496262703427868965018863995856035897542857503816588484313250564753451659980011160961106883268502732026288474358173747760818092190382540444342306823358234595049302354706539103955247052562585199616282035743418290977222494416899297033779269092129601206537098310314603897564460652171525790186070566192763542340718979164707687331071005238937352346551378254611953204598103982702974773689622846537856118488758949451111231284814401981466481873842333609184789990578025286679743978773498291206704955812506427950888127879507301899589075752422858696629220686887318766111166640623210116665067358566085056771452030438096974252667256263809003972269859451314379676689734308580530095640403644335653427319013377707602814201508457156831402483546378365567422038215233160771485453617892652968599145031212671697480286601702068248063925460127972800484939404629811363571868281241627907745431948945489044466253002330297594266742475306842805458096439132383268012096310370617255642216766786421740611788289472284990606085616789647339589799405285680173081405836704312508412906709470219238127539251364140322294768577525339862373489459681782221207460182858713549406925046241260384137104044563991395707851322352120157968361793127616171401372316932148458305693104726090468735234104417605368335475890106748466968716686241707562614880433090247916990817341246582007095745563881131098172739622747154521330061218739211323507705527803063813119034183560988067508298857895509611469246299909837285470897857260305049737586780486568118345175334733861518080825904643538197785983743053386815440005050032102099417867401477509193309199232371651171913451417381965973530571237354496472823355969201482952329755708192320578728031857422313695832854864243954774381475636810708022003188971443445593795271811688777508583651337690602916469446949613720739544028379279267258304605353725645722982556919813684781526826434084856643119334660171958273216797843036125655038213399472914770218800586093777973093420818671107279281303888668993692345304320566178965169917455697373431347916377556734148016241623274299243644643046788807774532496796020750825052001337018728902641432168051004583699362139599541754552651473564452402116502973257756369451908137638274222948730945702205005833303244852614865369344323105058057289783021149873285189244326161165397513750113791211548739895030250571972062429556629345026293319239893478536615209831889280063825838658502237585833201324776875334821571616716639095163066556107513446711699680689457064071395218632309401715691528061106501684896120584080277862665766292735919963287667135968999770113010362860296474676869692822124466072453180816834822069893231584418220301739998499859766323197005587816198852927960765733036220393115495172630870020159731242564855718206154186022420178252272114518565669589452314317717122544436447814485788195297832804478264259205880894686052289582016874264711521332072275717721723682467439157861207296051934074645254063018153854034342790697101596964017596943635342682161504991749315342185582861747034089664683751470601693067288983448971826522809761128897053429839246251621744721130190524100576683213748808003992611005469819854255372459310564212037143959375876963304743444101248408492121173227304940782360762204603466778315462615077579007158510502873433532111000296402128636158021737260174406213889827351402606612650077307471162620542688143676950833590409387191973880234682145202313067948215690223953200372332913422126420330282566699223454645776809466547925374567913929704903296035479801238792778656975730578606812758337801341393158711550158535701694663657261490337058790464790138039486208626263439310648849749232483157492806727824573389512707249991061068281930653801784243033248725214202873090799741937126391329739868784836798661342353224129734363643017937953337593609787686125145309289929353038103820145411313283497966619467201528870852990521685060216224755078083642497136275576421236964167599893950501893611356982625624057209527415374138740502195609314175354942831756514714805442493332863784338421358288696676366268815456687733695550898870398244799838409992317037305535636235251229669026922565277436299954320541551746525002886394783467139251355711199592359106809241500393065837910856094598865287778891497998416982512835088307862853028614909716586032127578949175209629428918041077984988144718101022242436744588915055451153351170132001738668736530564755641756840125129883255231594920535904243550974557292957117138461524920549156592063330142529186850719364759986357951462002673843119236160497138312495683834189163560260236819181362223214614094863273139212021842844246785304136097543965684871644678970474138866872672086589066214197508353474441164280594249269392275665664147063810399646388369623431353065905723976025796575747162455118008358854443040058133955311837139746830310084543494993382070293436454750818655266445373339342291392474075369846809113847799207282656846623324591041630602636777011114818056119507953842917318322888422503094760742175187671613796218824990010017677353247082465793632233620368362956344346389225873636671183568506582089866938438922864662713726045641718148598808413694740255756819598431494200651625820206962805980265589349602352662997487464324059158225969271978006756659457679075230247702503135562235315055142639814230282617945161167141346832038280944985250155078959657724429299311638154542347341195776921375301087157379155430578408269186381799515216854912235219429536797423119295073853658165657926334501642495837734890359231779083068270639656270424485709035059484893850632627995035950202095146142266526432202794363308600246291604283134191543723261411336614320964018510568683904210372263085003765705154732321497478562746427886550333654692745479433185420904993285489140382489581139358144884957836662595277438849105225354097090175245807854512447962151775002858875889336303839353708692903757142755377824579604657948264226344217010396771940980271723155204783324900711197527892609594816351964032601381236715395646280939042092000742208860263384425649293875179838401864775262361796641854940669177646657208790693074453399039758491333507777789511141612941028956542433405985917558631130748325022107961468974690801171385217928594636244534699440735931645740155038926987939490392824680979904763122160737014450182888461986076184326486266274941368335799077084696860702049647851732181224832136878313691243924583339058449650702213243109685220919937182694424894856525893039480012473098456969062878570250743230896860566768769044266051802660899366383818986104459216595726875645564508158626594101641769381321702268782647751918665548621494948608400453908908251072770149668025056052571154297648280978008940850209811168196868411360022498454194857848631691410214392191829630719475682092949814455813472462209665916604676974377646962878765459481050165278376286230656062944633769880151215422992311923559957259432161612401089921065539622957365831954140684103117997210797541241804005400638923965858158149779008355434267251484634048156012028771379426793809488970893931736020694872290937066390893322616200686453290130815049277666274189176178499443516279034122196453489155759928170331200042553769784239526173063329246241575875084077006346198079662461665694562091982347780327730714338015878331863051228598577868102027487563864430018039308756068920763232731258949304543079137199805922613311961702303608190404723770566603352848115800309295597707880038427972865093078073858241894929651049771846870590737788634398061802843978001010775944178124002741524761601113876344421532962097925817946840685258028975425878155439133518926785294190558307612790296512515433446503289763610974379456007865806107419948377697682448840930815262326385484841438716930453798306061000759892688440297756120399198518139340217120009358585907629509315947069597737319856749796607847792408963675422690834306835720350290270630583649527754102581562432049827095798705917789068032668572139106175406051734724473512589860873540841546171105929023862208182165494591260817739162380589531683177047970653842473428503362652480237901065000885480576933921683183897178125062473034934753369223900129636985916310301895303687794087595087007158521570399873393471580070357373992168976720403053983078531690985197401975012484009729237840456199942395004328957371885905992515502466212143225966698396639303313424492845166720482306622171051552134792762696047565029819201404043325314124956053997451336975653410990038173359733636309035902733576877903081290486035683592178829193980479782039845867493363576947562004011299373481489880708392617258677390426777009975501256998754333955643243661483873627341583036176508012111223860479444234896919397238897610867348263823534317308083633873646507758126026102346014842286127818287050658817699649210161073770668725943839448097612833065174491427010088440795877785818010797079462815704244566536531192257726222764545256077243628129413186683205842065806153388313928143853623489619462718215850323964631475533454418123435760519324862084428975404223570189485137981535881468650188288620374202256861228359109867072380657354600728860755580102042359699638703260413538786879263306009992747334333092980093091156681386813976195808135041449824751998662988657151387655655871720693857881928749541247087421733084859335442981774233558880476676717544954972999898326748813346054673675161852404587827106363676386095363669486460296755834796957296030556302732394471971169493937506941413494656093639855122321772610545248522940284884893095626416281822861208663315868986637562377279267438063107760762847408679100557444710630388394874904991964051098784320230620600237892643332968861572659540868133815234647262228197713165226322433723967273812502273005052107701363696790143644302183851251205378412330346389765056162615571957510945177773489002203536140807735197496175914602859018024038642901916253861924413424491778555674357725008286770671596797479789697541362635424523504128605278278107234055254357774985134034771068261143945461582688803977977277258653486968077763010968284017259089218233708420533115571128305317294413002458964651179307186858593576103277060516536493857697334145888753556096716274224083757648037808034442404878340275115940924101956695889553046693372890722120479365364601546070405363953428967155606568323772228894455518380052861259429712089523427376445052809051704489431483156274031982851168629939575836533576565546371959698695912040363790849691076928013969287531001709160288747039221409389879413347332980556441453197746405881427611332949898606166932469221321501015283939615609527855174002680867279676051790239676250474839158326302247112327352864459257925363239987218576586903378991126759634177832313411927058444166413335754495332220160454998730200681930641207756405278952824618265936172236023913469957137082781537556798148229834392276445175283497933060571874344729154643050698384094538584532409512973489362721064297434561367252828428537965304229900949033507601603633437836112020418682142119083013330953097592889572914154928568749150953367650148615085067237283063354493400260563253159050699162423746012962066055240224506489067782889810015887547161783518731387318167721596719946315740300259692599467577596870912223721615169309135288142546422644438705120314188843113468971398465808198848229801395367206622182178149001123918536453228429228015890049703724702294025735530746480350594358794990592498100470417033835969089342682915446902629806670543973753546531813521910504073918253947221809310633766214953289852087299152511741429040253154133733547757972238715004218209060439007462276933437032270007294395911376598514331245503145845249402171476232618555629894749970029966074145404338953550510276309766380821844701323238158081600249008023136623564046563526097781345931472965844558435099424923793644775820478709200458270416129582965360962966730176541269392597950700946538677554386364915226155483415209454664738873876892427827191080722033917754429773703596370171187093087617757435271650341425071203563753552482291015358757848991197714769259296080632138617132869740431378031972333443968575469062168010757098857856331036607416545967215203667952382863810080291731186012501849139289184272980107680203455185266830056358730896711350635538332340535281218941484486644010029390378507512053837866938811224775207241145401778991180397624343014342631334352847618627261870977406857186924796795191950994966269452765263829018669187772156108267464116982045922939553734327158668145064101108767106900271385766168527975609104781482147756214535180953197298590265203248734007937743156305930212936741586182898396043980860199906273674016075626119877091514030662353564772770852137380403963988231392082239280026996553616456706040289163094641120210872172343684711166312974555481455164501167584764324443998461002669906325852339623799785739419656101701461598518075692009155312013087782285488483025037120240527136202754028435428670583222314164159310453826324168572114096344551802262729642227136543383943812646708183464233933635039113959949217792204082828509395417916087114764820236648802356498317633291864063023952250571536580755770151685226063183194847626058710546661308323251722538402090973275386710187259493946918126406006672144898313456594352497397994285166837807462485704106634468876416320500808593720807785181451520719638515221327291075848815236131892970834164156179255812537731105622928682189196425885397362968406496071614075528183117038240401825172498597017344529726081384312328817910572195924279391406247377680672075956347876920306806240135807008052081881308970436726164749125903257714545451180751081961820949075695978372757221197207707697050871501295359496047341185029325126954335220261756170965642325881854054548464863990726472489799057019756362407581782563816455071480694326522863432794910405110047766396001367876580949273712587807347323844739889011794291826536234341308552807688597889137834662827631539143545487984050053916498379090490254332799102699482610367996223276936228097373660640218959412367173666557389922974920627929301990485435648256536719559342597602295358984767551205188967694141362815072197389284005322036467241154815574839829976316109242097290457576592348712934197603065641856091323020863422647558912436305225787528460127164656716676445122234826422248752726753093723512710052365686296982925496391478139856645073383241175029014303257531347468561699639019114870139062642483510853793020306510083820936178385658974916939833994762316971536852426380302081958028137585414460912609902888847111647840758025049437647448858728387102886759863678398076321489398883988721913524587729619440189702411264866074027850419925401440671341291799735199557506941223949259907130214894194609717853940221120497105398504352019483894104196697461116385568358725119638973528935434563000845147377163139777597807357742873627470746336363930141337380338252126064880964292893452821995227691265819491069431155059261839404108822230915270722490207091088948559293813935325589340992529023205316494066123069501751286999792383371706612720426888007025469473055033985533241590791217099701356852747979460973582587154777678282522226870100495091727292607493982134950537437357615326444332972718287704419168007644218881917731937009151273012032295066938532562098215100134352380313549395641933227559393991931672923241059746587584069317155027969160420084837730473863953215213161476651527499713547007409911643618859737480783328464430426166981100198191758917147058857868632506227696759814184953155063648819638132367869823603576499157177208585716200733119940756754752401198533274106677112258145622070594385175042208975411964790573879557271655781548013511061398370370378874786070162883017622711729576929811833840620098883215791673551622605919669249483261437180580468226480771552471626741417335489667891257517508014672723961166057652955077418657236672048412089719743489720306750896214293500894535983773570358799248302217033554756070904116962090466924132982687914312751887354231753697522280685138264334097920399001820937605897316867660659552290959825816911560258405570091406495337959281018653041375559021605990651719967994559973899659646449999666279966060992377628276202430899209027460649531051115000800237630401765831864999169992083037485986428598355924363908851085156181103825111580899834398114639651964253252836565087825763957701754412016504307178808775888198048706459528055981223996699157237932659823291695675179676241344168221531623935580969315182444078789630892957415783885458418149107651901240117450709343796028764255566951028703542116164554281342554310634553753150211437329701603364156739111491158741419306534349688788077784750214632200013323239259937763433121798423720351882722370977274376163410356979740423374232564599071363804415232418276415124942722991836568464452125999172893350742228936559053807028044937072212662323991102313580497968710469391811746384855301914645694333410388936638922331038666310135117037620856832677427335072424816936877784663965209495411848878038364879078205583875729299801185487501754019841445856568235076462268460730880944631981442204158229345232211329116007876369162274236551506802558784031607500715984116130148362712592010447444243613925138474622032101437097489967655744344395044572150841833835234711681661571485770582868839997491037909841919256288650254513792700594308865006984039266429684894908386148544259781673937061667154667509122839533830104900224594074433392978936723049739263210877619271700176617779757156711394190881760594778860788168321560378805107969847163354793780584212353898192138238675731690102204263222956881601723712859124930155073786733164991190579397962386383452019094044250844966061023763488811146635078453131781485338974392064307743740891977019275241433454154629958448663060676884230684863609792338729626095325326531223947307547241884178868861469205178214843571105417576484134804241126929482240650243508296968608017320154248425441092766479166254573612607680697997267050815034352771119986809257408219114890605607665281289878492372448982546519049626446137708098395716673697625017154019577579439503231325551368693710001142535679345141146550417276681715285259671906193604525323882727908365112131822758382479665844584698022322271792336788397367622354838003964675175022057912527207647451903677315486975574850272801839424797325336788509397291023733592390304047113789557280666379101581480807908569274630636961334286253199344705711786141613275888586631435914414720451833482736019540576915085976962595371150268673056850486455840625013554717241505222380527266490279069688394135215581065299835606727587745758648646114741900314645904188971338289371865308413720173247529478369394232839566625681408344127818609299041481504698427126681836209509272226366256586024901733499647400458778159471521693810244274078023000213573371660444411678124093945677922667772119657890645420872338202647263163438430382711479577213030951047191176834224541195964770036011513533130373143570941965819821659449812400518029369832545061727138311799724785031394479429978958654820790023716980870191089055837020762568842482204718490632717038598551147701180177095472936334701880255068604571566252212727372816579776144979924691364781258079194875388559758526320738740332641131869689564392256538510973189847857938341901542189905515007469988807891082580243932679085773712229444422581819987603617747290823678665757828674333659358808760162901717481618988250323791460119889378589141497894570561288134139857416135874342886854741753277936478343455554439906897150377220411406192163736261660331233493598378200391206670993650128547415529035471413495976283582783782923440335242686416207070987925396340921117362872780880916947627637218495201860284532994008176560821067648819213368174859659325831496647177345279643293253409667953087231442055749540426979657096121547658356238337126776794789084134072522182961140710915929717224734226704185607485899984194207993895693988611957517175065302116756339195347167791614940283974330834659326668768076689852400155978787775285095698328311087572324305334695388209064732899239438990104198924199215544426026609098660125884829659454399736444256505875809888302899382353507156060792798157178779940074235474724697885348975659628337229475302539153841772195348430249173637756084343861124726655890071709120008893592947449502410740820394674227085909968076742222343339802377364692379374283419565022297060662391305142011813132670240924889647922885220896282171456691122907491275229916614375485194508599814048984018610142118956993464013448681754101598310923369574484838416077090831385254593043838887741403828057065614478080016417420939852249844434772548443300710588997787843629285584269260816965982879202565319747560617971838053504400843643839837271356590758000891649897731263890831294351495259901495319621165826421903145353229735759995435223721093828966010950218016300844848633048761720459255971963065960731273188861229866697913064887650435487479941139700609873307735432521555078821337115542575480179646592338224935128186331697003673673840645892286766209550146205088281433639396978632923954662896345851764702044246456889353351805225059606965368857103856157062847708787583438479946510493534014433596739981967085976315137750470135783834690939749590900643335704190143121181304916509398964711330251496675365684944152845328678239450455103915101989331388919412693955185920849724396468274443998214798242915471405084654809675306052891496246894643908462011542166951195209135790122990146148616484348976667794775968284677383069903015016898506141269076568828070605667278033086645251885538455948756413802765507381950215323860793515680947247547650207014449766080768572909321727189782861208302618773642894391789797401516840169787453836434604008947109010235412270262549995560216002163901996836815382949211123024793435404568469891688505082705089744463461901999764855935666335215237347289009737803286298934532376908879349516685735701755177596273385201554196837146067983930598933554991693850761575624778715420748997267195154947812155589711274717266295185000401298878396666494989883482977344874489105898901981053630991199167144296002186342877091771744841597443751894493938971073734215270417426440836809803240094712785943656085603921976525347410710784924246092670043090385231791844788351725586835314166385671490296853535792248486662821416404239101469064981067072539065140649083635209784742967765482214206830780930611163845867219429248454134989954251190559792246982478503140527967677220299317982053168776180386276084961931221341484635149888600223879948645695848630173220234422131043247030484713349396294280919951391579156958838439687442421333029491094245716008694288773677346315139689326436723491325743347635659113991845634369196631107422152425645547650852688441999166738019228475211601672358004854542335702177115682100596270876686804348718534592765395614673930172327481546721245213553322705685850352629585106765487810164058640598174505753971354073947294138581115260896678887826880685336644003533087823367536683525379713268428874792996492418003545718541360849000467309032834574153802350624110598686722830016138544835826115914219119776768173899597705521175095205340710128254578652406824130152532466213012235818070463111936871377237488066418508999441608496667469911643137346764448148883827338399803191693157444463673067842449727358104083716458417824457258427106012755256143901897320323215232171932747754230982164775068744112708094155466341274947051996429197606844148058810765740538375888786602210355189963456384710033457632298136029635156403283042906989752095731260478632001407775801221989170857622527314274901302280538926014809673189774494925235199273479712983840144664715052240950439226277969479416872761139035019531936511100736041889691380075119909726472784645362956861537082435268218555860027050090664384974864491405535642698647388987649257135121741756130956026461978731997803519517374449667864873709710424941038360109882258721505046042602132586302470672485956770486768452444847337420041141692215985585916685938581641971887712271760459291453883336341055611996761626433283282746258519555016822390190420090792875628541639377326642515403133179396750882430465401960008271016283763117704945534907718251433126280150875728184727498752808714672346841523351167629530525957203163800715610435510175292327663398453080412927847067080828254910626303908134285596871520942121525204083620356557615799344556107573989119742768657450741535629194635305301973859114685194312425477636562215701426237042615787938458795522846004704531429092747135420056381544351595780227955506945031605181309580076592224087379401004233581986767226631268738595021638683609232233052550263420472535124230586695008991852115154294706985544607662497823214319366695327248017353291968485934541960467428680581253086490733609127252231610040178025868092418553611874002171731105809398983550493007891965677947654410620246636525434041564726424164741106017948472440187044091748690912475664674597333396862849837746786691003145959484566943575439701301549500667146848075052862365054676734641872003535800966441160336797754526542484733039079004618196451335959555699299287477216531813373319141573647557099430205304468796834281162682989352033999688827991151680457067855223049363715665711948599718544833374254806935332289419415906415360478947209262574632886475799792624403729656848299117507024927751890907477014121593782843453953106584451255939780962789265574888897709725840338894835849128533293264872588187981419436951932077603991126140778674948442744246969825124819172556618928239790497656256099545221855011572206368240001318171813276693273736470129227501576225475837282882135529349451652852823241892002444948356269942460874942834284800670783982468873886185949858849372104201357680713521276690476181043457275144091014840014767589607149255385692217220127303421277450056087761946050952052733262017311413595495945252507661874265979484126200523414956072268790688209630946674510801746639398262966342136147679907347608504403733549163100502179920139658313745987805576077425316705602746349960825500466759243913869948006062576746429838751271785190170995127431404217826577294224391629958760932634844547718810639497614255575347772154714450772155387403042621485983076516530649350697673923642721343560457059319926059684999524008564005172247191579337196732794050631737058269545782807075545628253765985929090834777836624231047652007890490349015029905137538974219922916799345397190050865840170196236508339162663637429532842558690368347686576103258822982977495480990970825995616886067482574017707080152728764985218010945502831962472800135046490740165514053513419047832137905007112060887440785075012688200052480134511690673082847992851284227903966280136311097225470438265859890309309543334716076671770818951241328960801384602511701811954028654291831547908060182892574614723470440561749237614734066098362932438390513460651089582563750184894559912300776089570821152845335656770093268701091141262907266490263783630602515577952978677827584378937629629352409232804547740474773269526608320241319953519725461371122849240114952333690267415087673725407247412426313401193957718138747733724935106845275949832820344228637822607397692846652227881276489261868074942186867896382778124347272795477769723253991509044896459973539367448050109098885988630935106910579811826987745825035807038651636887323847607572539051902381616088734830989958627165519997090994710302951802776153473019085059936400880624883633039964679846765316140008456907770413535635361286857005875873118828434844767670122005462850807926148211711298712601848032691095074017096728183406650702950869419353162244220234028805964459671314134041507771013545794394111337796344122159682278116411857510503233075629794851417391729661274910068826381281809575807596335415124164225089584215217307869961680359122781019662651214007597568598583664563628895730836656939505917882971778980547166653231769250452535011796145023205368567539785895865751242985259710927576490245230405946922555259372172382651309647701428230549220776650857224004731027313175789629186259012013471788771816090242592431398551543516299127763441452617567120021010905413299622714687715954380289440238653382168728666820614382001610355516750651346055334217148131016015800045729639820016079644992316066607181970753708019212713275469458311962068581955576955075411686542577404953257969795924989533327306083488137633766879300291422347572729295962651973650993798698133056429157454371040334653799133550973135092531073292035383999902489622551631730157419227994867231067357696506854605091458728582003777086351260658999038361939957676370126014952859409564525196441996053108490089188447686616680273085753818780953294427741063496778187298628290861004823647123458217644686193397076355041874001598871085907554487066761436549504220378046868676669862711419164973334312567687775002084184530110561579261454176426484053430014062389394309332433579661634344396326599857089256419611136970349019836778038420158508895529066638656030188891344152289560179438615831390560173971274326835484578964241557235921782975696281997877447274925132379598221024002068949706212795791953959633510547051220161415758752212586872727520058597435149616091176435461123938984292776627684617166426340311104625757437538847627015246680741056372799454889357420659659596890851147300789668030918175201358274720004867596658054311904049822563008826393668236360620529851331691271360034900790967671466460298577417691347873387845261797693775516346029847641226027588744321810416000614904182042384120968393956691632119956512868726377089762288530105927369431435261644395195319696859770152092846486567945395718972187535822587777017469209461725934811300868535812091519905554220368147061108006981931804503669939996325777255925921268445217576735842900086051045795051730168628660435787460412335272142793581739373958208412890516196427894450636132364400115864575727255111821367855319189095275821593868792922402661728415710464126646496821314340941576236130630705713313340557623267894608272616260405769628867028837573765225548991727998757847313330142714001471700046071918125761046574371099055062859678506223751649690585009166115327753325958583440403982886684645024206078786107738008394379572378776991649400620419532937413365344046398105055609704188967956471935164230244440090701967184884038659672911558226193424608110863122725386905730635788111008971630409064446349728845273292688762716968452802374629304601595809117508064882792561153363659081067890062633488058927327157619214291950611629527769467074203833514269877322173976104715801893567634339535394051521353589317786470309759552918756333006417324908547286137455654395499285609549921958888643026491669689703556600431182006305751563827561033658369759669125419641722361033866826243808818572281812231006444674559998795741426827850776747259557074325632386181440231127936369977999204883144306068001811751755730723418979578627817359879345914270736148412895658928792169674587568371970958497363407700022828479776976030756173378480131075012725525733309659858540273804354806676091287024540826661289535092722381442226516485822526095534358721026465250637340099867809925907853300872513146147655241927721074958593645095421119063719393965851483645776293283661855779723345214609772884721185456237833270541721933944909377185782669104988011650645005400338450383894387849618872662616711175644716119854679848324057365371234025369834234738726948152875116774216859993520932380390825415564094507859971312098120810961425176369586777665616060276340270534683602652320830853649656213537264465538849555237774052469190072386035102743391818502045199648555567219290154010602373514383641630630264641871586100152839470961757671697320409606527179075889975273088481548933753117679557895540213317735934595472837320784754746137281823355841583844080838681595766681795084604966919478409660575291741837023814938151499511431691938299806289145378107753111528472335479750715938382723143489127280468611079177865646933803580485504930605966540792743331355785767785980770674033507835926554758902342664390232620661134490713641514907289772727412711566309768762253745152640105207706764413812861336330397647061197928617808523437634705024481476598425989899449559835380836728997949027862833941527355116066878675102768675658143265699857597822599233133343442738863034962651882217299858792269727808597087314220747850576580765895604824848972280001660708299217798359665185524424805129102183334992318011234548753473879868944423933485513145759499154507993784716091191863045029999257788556032319974923903965356251479587488135105155599602306725285991332083952184683000913853808980210034777643569603861130735782520264402546258999252771213602077231977749003145490716733555706790486278053546065579766865534703948580633353010991351789424006469239387284821987643065904832560700563400908518185115985500024893794015181876929757286438314304977615327827946413763710540072359245022171709054520486813469733805038384543688321488373262972596074898852519093434526024066662129321225176122864228877140474132182455800003792326461371101145052513430906341171123708150049279208053256952088534454943019910420383315474269854170431990439651614888211905816120869439551427522505610893244883938844051165631219464611204124700627832240192208326385510005053992217950146292669006732151358276120055844992908687190355735655493424603571234227271352392011281493848263615100974967880571512468947710375882113084676327131278715059263266520019044965030393827409662024323842528148777587087826261437654963800505997842298505914830140545272206899821473563453769157370275791189373101874158618028486765894821398488523240512766833608788757058722536197064934514504784115543084970747448548582560368932838102652562788578889280614172552276089527638066850838241378010185680661121149523066632020655971367883245730286151584770878762194544332158900270723321370807591944919039913490985958959288071921622212408393654106133941514788103908877103405773809395120658119114119139748956675428056399184660533726598201401153344502373510349842676065693759976240693681075303612001672761542886751897272538267782502290852928927797533196269292983019740485717719997657707202752079903011270880180318932254896069073649157405726828041750794956110170979346591216717763381164890995476151016355252739054677176277425129550455540550495467634078873089909563203614581127374834543745000831048049423746269234154163620194765115844058033536307100140337793804621154265011752608905570808015752787953746275678547846589795073673854396534328913181545513744698486707571343695823485694108822373382696351423824177030850559251552196430875013713951136345884968403042149721688852398311530204045109352765979579495720649699524421164248976840230278825619687833408744792514248703886382538056443651419235605883447174171103141173149415073040822390459846008559246214438689908235308533996126125189511284535460213869638206297800152268381273239004127318215883973401790714904452603221766962924984410693691469700773321557910858972247073423310489468748778822961353116378513775037429316589867230808881080266574966450188891763128789513693352657612360402499232298296106911646993106048426412060190710930725835485659507311757335659450620517517690221230939243914809816514948338093225820691020683551659464792564302299003752304073924674921584194589774250872494203315807045278190641700486005527069212627996583857083418162455844537654607566878035425318362459387785406609935253159603099081395514794655489739338831297448728955636162501238232866465746495557440747234580018949436631297016400438901704088656576941404088276712422516677233150774437296243434310846816843661755089486566502677114050704053273101702012294981865422977033578510606012022061495220128196688114657522889746225873391765581173978067380600000240483304853256218515824555368556236116450162061509895239994891916238076449325946879403576530201749996875747811754399817442070859818521505894996098421793938490453781363140360139681683831369655990947776242202577541181474947039047495621638898622891333632131396269638953557542506137977763775320508437977845247394248514511583801634360598423382839536928767620003774168154543756737898066786179346858546277135357845890978925882912472051157188847482360008892068034828827507812270413682741577364535628951346429563228224263717110033204485082823255968131503761743162119958792347152009755882864133019336387602189575512102049745207781365239688487866793001605156951634160697637068107587779724843004328562912743770428168056961514752678900277657665395368762917004827741631674859530044881378950518573126480759505356699854653190762678530330046877992559199912173943030747284924540551278909503668388454887582417719824867755527162182580594462977334409503454404535584609454906436838164356408318475028142938427261828625055356766309295692307844363997041919984621455265272422308472648529895365039696593621368676711463625376973137413309817107012844837438858256766853744147574596846385250969933558738146823092365080263101286323046410555567538398094127242179284437953235019383294046709799357357009384738545207351082323668138564426595411129548945118686301108750155467153888429051493762057676810071055233799601705685462014449046876800673998996229087546563899813359684703102462626511559552752503116107540584465206987867175455870740729247136835933125416138369082663319719036205388697140637148430224163542690658770811440020267765263133535652610504437050452083187898159534247792381499633859773870526952963587300067123635826500233210288557313616275920823965990021529303470248770894907174447478834712306848855494836333409696272938318355042179473333336770386199489724250939210787935649777664172761231737149907377276870701983861198280598288588861380222736387727997360969592862489292071032081774682108753126824484217347608267376664723206637988491116883433231544775171405993805757723951352115429607134745559851990398112856908993738860379483790385289473029088805123389231666210231996916751442520964026030267469928806264454453588752930248472731381578871467243249412500319919411604126475595995042657208977784849849147469900333998420881303767671655136483096825577087184704974505677324911694622225406875049411958549264902406526277089389049823067340747062899575212031531091774154617280739114505940256297261429631765965627620872465702653621298085809579918214393545620349848938586637598672573042806861066656192438271523001233825235512106745034700390170955437646869014196868181248830747425765151908714838428228112565857290103637728743437480438165178484417776163245184943543713785725199824622691175100405283661009475125729955175474184890022848271205415022139397242579676924018466800176154959692810479620687980211248581197769600627183111096775878337158525183112522382772676087522186292816045936958254796389581483651267183289805594072097556975597325186202551727729546138342165930296519109487341279429528779882166446992841757074949650217835499797931317917643239628603000634530445046605159686024241345261012385858856943264011890158595895823479408603844433240792259730491142194406146299177134108077504434870106432178317317275458033949181047798373585565654283022822730073734985912208039882202424514353064094109406942846858554205757430618412651285161391884624468221679927429866813081062510278120986288388943546637836922526431063405028011723922191093480619081937196586820893133809818908188256225132939088061004168638709389850666463978037081299358947656576153535124806778443158835980743868688956378965278343479972883168506156949264965789030716170164421486967522530515901067979130785266487638821729231553113396227122459274024667282157934510968829107948342511661235345365694298802429116904249378545092316890272500114837302679550705890017202488361318100320600223395762734488955686037384896072096880202530312450946191375791124803674260578260557868485775967602187766819508202281015519705097019956629148995084733334887002716729049627000932815793515351027463640264707243299535675743096600817018732064287137746220359715387477454434674154144355116706695698062069522762591432820298080816239408256010250751241816356777909696253148007099625244863939155736547280228082162401791876835777471733665266669282579151460021924390221337339455101846363718814743476445014621860452960773917104316424312458448153925054382289316705560021563662690160731834161920251882917792370574706561410164426964411745032336200696023571637934928073425922343985583414805902498468151746126399027274312641181036001856468016399854780718456822701008567246677964354753820498955181658078239021318848387414525084803537198170543543033197077080571116017907691255574305426227562287684710527660379412256826388097756030096304657497557985370551830959652634718304557766857880925246134927489439796130857364277597860136530024251330931755560147694239285793111784284372069301472014224825489781877029762136234715926202831008311192199235163923871918128014673970345768093749577596660624570492054745588029225294376507592121800648205529926530955500937894614495829278756507755098600693655522824844877445564775574508416300812731236117414158449212107886056451485184892810565596735788971340946851980735411291965984102383153995135971047665086801487212195701733114644968203955259245253111739226770271982828846490262855890256049274012404181452034756955441296911386842572667908926139859287576191359542448671636000404875238690442515472625833340707100927275079361497098742244310938432334554322638130802475289463445107608814052347197975854142652363300325367625276315187244808822768566940463174729803124539251685352611375957818907080614118599890713521027997323984020622859840758636478780320649060597114660195168699023871823787738855814427947184557832390781110981086443103753990901311908682869433432658750269298294284715760117618280687265510088057886016366467101753278325220525978463650539349140162646138328252157774297160362103065170606367496362074611269192741275417009811869065841471736894038855859416810916579957502767260571786048434426756545043429515401664433486559088580110352574325480159609852741990983799749509221436682886057367511080054116731669994916947995558970921730404178369938924990090111925607342963561752131662841457808913232703479919812288311197810483211721528640158189020587236996086306081710249116491235824071263143648518891411902180684220066617683815023816748651561360351236229392513417995208133039368256439393753715034146828108329049787274547750790057644745313546084017924408555285456865837375148939454062567013651121635001669472404649798567003307946752148158546849527097260175258671683401414313436059408935442354299059780200530848608682889061059131984805008757910508980808255237518129891784249092772480062491583775184145455825270441972037403723503079490153763201170369307784880019277012539883100654647472624871074090277843396836328377256764623901076690503095055237066053142402714759139926762037444759802854565212628731376531791399125540541521620645920177867347362952005723024857305005763273047071924824731261447261921472434320748919033759631664021510873766102910061816796103416355842015536789229470852847381389587678777818077442566301161238029680089197545533912220275275529793409182256885059701424120942910148321505870031755344853328132657286474957162148491848766792705262089673721203884581812601609269604729322318050848719048513648745570457053205996312358253118680840727631101157562284590664316331340751587570524811220937432457622141879665335060174667181407825289820704232017079418633750776132006356897351735020246657975969468547199332056172620803787071337687424274330816898550122105342230099321669227800177364685797383176413847053055646211383529536987564162090200814819183237385526510002942190743846595442199573738520175294627771259859497305808212786545710542869291752278686058294901755408520118339674271752052381151578443689111960972075581871055911002099113000991485954746017002905977048261715257680173350945053344768129973333899789838540859798769044274084829604073808898667141190028370253707324787353713244967675113833967654316311197518082615830436132983971971311352849916599155016458513395029689815126362277359560446762316638572719746983762389713611430203112331487839887207416464127017997860322047416119375013806784996075862326121564996352111707959133476196500613552757207885585012290382855270704806434301758149364753854387871471311885368642152799209094656804783451283138171038000987727655290074468716599129362686266617434837284701756332369899448688182695546480118350044349391294658826438165416178230777556319244372508699924374443249165478166516086223105377545187424419591823481195387602141766125997028520119635225655106830960579906823674499556561387967142408571793018960335407068278289406246069217598776757316892635730567002562532553537076424672950491447759635658135721276478349104647322719750735522850864308475910662823920324822000828694609518027931856190557629365126400297882389796066031604865603174788039429372998972957171655646212238509877196542375863570733939823875259258782985901856214513335968525252263404568426315420257053891292648246950886680268992291496929303847678697789403455027702769483004797702273075108240479022421408275895082845209409248400385084703448936511940151727575687119642878354005950339187766343774150226641794331189318694931879735919892042230244155830090375624319910785272584387704781844182938662524032840269366480118697229599878671072186870864697744880560537009229369270224090559829418145410445335298813508726612084971966023154505199147371554398290970838205646849254084662933692987819446902662531438968359534025102278765353588613201769148460596318198953657377532579111090282039377010940314732730017417155029132218494086303892700547638728637965144570727138515914938662135005345058581449432139168882836854311578467911143211371560447083472699441460837321253964491830860235518931041874862204981752853213261148654037957482641502646972655862153843212052455795548739836515274307256404917389632986166054458451262325969743716190687419094598787297347346356005881261892992451603623887548542527415166522944238080024401995349893174783836167374932837282747879099420415791628014331376145247341176534540874218418789037082397586248270558770944491462051971911433261931402530586659461706297387384299290541355832230170342142112155140967176826012694391455406844996902190801412301199229287176198005526373381896702117313484340629113591410377196647622995883028626321903127292005091228942780343255039636584812857736280480699729195257636426039201754050770021564058251561875081716013781595119242141020774521555844267704446033360262876236078904391744864528346572004207174714909366445816646192446725145334718544751850407130715320888457222998903950572042516271828754074581082033002142581295897792377184813522835265805130687766393970875395653101826338008334796682105305947398843580333060402082861444629658068153204226492324459412665576074423625833437669758267652963687860762361930104715223232792701610669064130891797348008493079435262862218795967678151838653885868938885687631193594632086349620116211320269047569028047072543893752939048028469537416570570558040667992176529951975542901067863645916005923082717849813060920489397329290183249714649922853498335703981598947244633998550502950008514262553934226583590530268754671587209023137220151193617831005083327486127833474729183044556199861152440340763751983362427773465390864672373297914648199071653670196238782311335148795828569991190002175091723600331439106908102753816825761626232931311760800653931836644405060507516083779344733696916816841386341839855718059600374733529680414833623626770955744759599616464826335248841843158702319064797253725077604586206758067317389578658016490393987728959767892490933818325778848613558178813366783445829315992800080908450918842027510829201558679125812674108726114439709804866515389598568162129674585549343457489988722355873848157247954951788891132663144862995004219800509353954929530439354928852650713074631808204097722471716632279800846387267648756626300072952616071458258017678259171427719757277051384502360665982246736325218910922484426519622607473525704487746721458714736848018953663265167601530976774449805962309477692673787121618661397409579168824307423166715807355602775731459940056768781276031802790290564969480437219394791932334255175134721224903254204523398186986680578631035185968495782174746690655167600881707341241277375697134404588633681186822283567300873136894869933799961647168825846856063892815103091362643761236127770133288684685611971403050315979894510501515929238153597667624038810784772501167616427495378580771064476699605438610373549897997686252999639466824938926787053320725661564670072886977437481985588390753495913686807807174697119366818679453145237873672448913509023410258075385102643935601113054621758606920444499700585134161087964759245520730656009781740667059597542902069479378916545661696274538060814291369948138656049244139258404775402062651101654189775510840746743672413767745479781535808363993338301253296287750532851338263531448720132342641789404260881100043847062596042339632379933120280166711503825477509353496535086442814114052638707003586604324124484472354763784535297838408582685136055715803165370123367178743087351107381797959689517399278399009409853122144643845551947449478512085781144698611135577534696722460135041080908551594166055965945602600144410446960396072901293117450352810667875249547493737102795967595993575146000672451695863537237026032031825058007349218835031156237609253215896591076213542338509979939183781664434967050416607225217991648699076499376062393573529691326002543483210598051370636534153886384635403872270988830774511973507666884936134154891579815116744289119211528241009975004535752116048907479259033495668512762300632155376134877026416981952080589832152145460715187487008258163207947110820028556361063065189476744384682083474845674917440267376729693378826714971006824656171271732363819243247058531508479513604469594828780797714793547850567725218588578205017757622214576577807155222021695439977575101389400822291088915003125866133225653246235479982949552434721202803327368133314429397286892210627902352781568554693440372499585730313030055665471140960577553655712522880812358719950583550379987316571699517577339924050372666717011386874798043656104006565406418487247292766832076101239279281041648824786113989238523399265481947916071233068229344817092854802003647829266863329367813929414133154783638882356879813172707229992968007764592913673376863340148694836226145960426942983908634094615074950378135460039946146111488107566814895917802780618115369969189708976620321925235204899925120203921220007732094779579352832179982699462536320649912672242511631133518799470449379459860722870962530572966831526924661978912371385550312138091525182213520446396271215357971025416980636608361276662967738425837413992157295605016375252313342305175932654981206268778088863454900385477338818242860193610971328556231680533957097805567175659943997905914285181652280215522892861206253154601983584126689919274751441601434937653667343958091444494778222734542039243752427552427430494467378925210894307856070295164778127386294874163211406360250404965504857678909378413222816973152794380485459980224891919050508738467796381496710160565379537840918054096733069195900038076729887308673002730651459963623259650482810256961551765794401265780704600472338000880940217993629795899256760338630526723864553778217278151646394763942117153337488659910350780350085270203858692203448579833390760537030101285281313417667602784533000763270271816753072635728185002896975038243735227728922293014619822589763735107226550206588575778270958005794541405309206774515751117784712466969331625055141877098112005473383529372742327888096641915253807546023978700928328008334239673414093802556948096026052374903203793506539851808006864979917153802456810696019201904718926854796194976126841246183090632071548784610810202889390952042743108544095861971972053391826001922811625475226226428149968727131331170241381895380363222024337556150477439011623596317597561189649317885356651848133500585260475123371595311706989773581352458778234877409996710232934455268306112952780164948669076929549832417094235408598434764173973638188849639202075649929226642111768688806946298175729443296786589145037389490552176736645859667464953829532018991573781276430590418120382396856200329119334636378394691891679915474541686659399564753469530631806465238655074013587095493841464552675907519289087895645289691098196439871719419921916760098135662231431716096687267829943531470176297010089563989972221852262255914816785060823830551136652011681831399769765700675548383019414584513040120327991524026858030523147408817655225134481470660592830929844577721216691742716317398860847140967342425790018057203360446336800267135874678362242467423577597494723726919271623302245668369301008056943693152581085139602198337830567585221815632053100214991089296470458123813530926885911561828920356422250120522474350371500745481544241567892802841502876805514304145553814328889493924824484844043556324577852849747057017423923069272225766212123859331854988994962613732136789562015511375298519496291177022265468005242728415779827059163865813035489087418847452366736576787008660242699588726894252373715887845821169925576661494871592059475354828963688868485538856019548178246957571170824251806331721087559517617447862244926338778583753481700366667301523937291220629592025614089526406298864489758423239833778538294462824052278692055534495787797162048512720818293316599414818861064580449716430366937741285445437590297181600399802974694787969067748614416578201157219976267694687265493211502066352025285858616962517227217926611322976275760982128891705930319039491639972172314037588733105782274137581711789926525389749047769679955598616455428937656799086004658805944939441330722663814254843818574792003371849728557159675406266123319449374162057094459251905627320953722817689679424102424625902284107134442794388077860296990977440648182471417314884508664580367886965562924455764869250045338125673701450339530303077453697173100044491342541780535217825245770582463937927837874987478640013294615116821211999660988711308047673576424624403665281202270400689975585658918672039122761314042281868565158818315770050906433291028678185297120883047743850489395350364457838226360327073943601594225594285246516765384549415753678444169804311727904350852430021533875926744974778291620179879085266944525148412845944309656153564843536697650888390885037249337430856467376975733328888988768701127142779478146219495100014063544096296108246519026532682194920104350929656083830729465429404882923993225946001877464724703263610764597164843289215092599061697392876198640849375542624880628172055525335212411680607686282492776267904272983746883424515413287037138409399147324752960564479089740413342678576200254268871574909344349630184398331592866683388285113668019219756861848063378239220060957933454100852905618711879457750571671930511154581192064262898121756463582932956263533224273794783245016432710977588168538597509670470774390217825766129796511620440517995744999984786587399341976849187889385046923937718315262706160473452735246174685716218064118211207488525900214686138274888468029396769507149341748435019750730472339155619618817077346078319645321373987956131048119681609066582177697675759544077111700529277427637290602498945845906530484577334835492593965170462887744843358277660049211209639193015823921677936018051228391395299004691611786199950145451114623184719290477884084922338600361842952819354824645661756533837047535968728673939982734122296268432544653873446448729234627664676786622525605093706705699363417913718412645431912806463087705740238584337937175708152746114534450144378867517106379489291145399057614002994708613527629979785093096473104272400950989192902085390968193684834160357393771548402796516308089260657329287179461747640139238915280945908101984330765882288863719610349833435299256731815451753127263505630785260381162414290300474483858223447507012572279954783920223683238444058102092567136924034945740407515003280850397635640413976692331976372053730773990129683044365783919216485080865061010296367204917422453775990003456905415877073390549082093443216776160569059480803135884916993351991378699498039035630702238196271283951495862125229558074681506312496669829558472743688123421669675286527534993929360846180299540126435889666063558477529925382432114160496033394333591832337720226720439875749499951795229002782408017349610927711772618585204663145352864103222961668493131032507756544572798521319152979153929977218817805731468285546004881900595751307819659971569473095090001949629130831223167179959392742773237158172683170005092683341403067895003738011779862628689100856811616856769771286101550059294679100756146275742235766709127781547957068772143157826020929580437784819434291897711178241539880355890591652282758084949861781978012667225835148834352651231744164977307277427190974115389120329660189290670527952843750623827037677772216739185446203858357683017149783988239411476809468070990270933512026439330372919044252160200096456459625327803309436906012918399018680204592371321244108463719836975713043832488471261025771437382582217662462325530986966084153607297642742825777028194505688457944301167164815716379674575611619214229687383449994920323328769929824913283111825353530369665669078001516683605239146065442075139003089357675581637298563194854861187248980680829133768407246066686409435718948106978721494522761348280881768436185638867764282086228930069007462915705437682171604257465903330450403036032354245486195978386856976346363945724837938355542560653226127851505960687398442788348647503305622267256076621025860456777592940485273820763203299335224209264018243103922131668159313152663100058853321086941465572583419975635636077267851823398399066742280229820215088162791703175004229685286220227860144141259978524020209164067204350263530828392761050937480814308731592416148855459270244468984524732598218819518155766582371135962653616695049266079532823597608011806007308589616203035624513346074218998946625707333634170206024728195656980692814394443418510416784890230412511195306166002717782489227442866688179500526108952765251038554265811255752338011221643777088326258237747732882117607119642553623868934727011300048740452964031400978356177344672300844047553666513448262517710838725193831633613655042927942657371704440152961317647630879549322211485548308953754003310120808158150695476339641935469569022372395953520009220198430254633655056570990904064928550464882963383811443166724391736241160522531582447443494415487036157851832337745254632437879483392894680041747035451812253142652895452843413392934572621759952164841629535438996266033551535399347973197288510191569796901926734835313281395048690393169091898508004745420752836501253500433666575329389067389415366571590837593593196137145277486234223253658984027030892122148219536344548587792515043747082986036554877194082179746125004748429996410365010770004363423987481939917360020495148494135167426315392911382872975992245379337068156811284993777234843082471715513432812230847910534442729261618490178224632934406417642387733833050943963653058433984476299997172103066668835579024815210924714456877978447415328037878417660186212149214595494313243721647581172906341394613052773312248926496893460758859413373597531646050506595512805833400765447723679810090273228831217624774699421425002193148051947664809535833968906791212529700507809226268958506985159403734849331236444675377495450203197687300073525768501562230678752415871571823677122484404936942103072359484843435504839221144489094696893988473739143052068343614070554337800327966601353586293798084957740430470927246849726372582687800274047685847639954273719613827722160562098396161313132484761460510744458833577097340640239102320916689620574232859998976211818337341395424206717244704041772405585155023239234599145168523921269835746874431607730555178307742175286537683618028849225576546799154600021321767134139164423283802780356627501145703979193663561249770244865863651484775993966513077511651194083349701106006842914970344051495321537196731949916823019226457315990684362556130449100045117521500663513642287955909041773651459067599183634677220848887100124871157400452194802816372842209385491947100787500437815404055663597904353628263123324449548484656479082792599204602767077468643424818157398560730062748806550027086816723566735032903723220598132637280995981611891888553774388114579463559242477933040923152861636753367372160834963445383988059470591104336483046910885674089057771735577039711277323645346231938232623779503822669589678344002894634266959985688518207217675375815190904300259936748978616980597239247875330329862741547542696251322810205999190623383804461287866616339858688253029903702516459769248817190385073908508015433076518792804504086662148391262045581841107921518897115991822858852779703993764987380198751883959458375663918281973911752946974197181166684249999004646408571923967949840621132372245119709840663044290953607635852490357703253670024592607039515059680953941819855100375922915876330301559533025399026114503462826860000100426746819501520127868790096528924784997494196516290673601619897590854277748244765364608919546732678838765569489033715141743001002545528411120557389732786521351151184681279847068043469028694668529027871564032614698796998607107419248812879638467810255118899494680954986554750291922873207597358974605632711545690039129610263123777519719865924890020386668610725001271358168541289074078410159750384638884915440212551807032707135526395182699574849538651959853830198048960618126373327679180899182154875005521441904522305030034936052276508063149032914066561669024674853269051808192058708429626260496037555710216380143358973921538575245761261921129158777545373703463027926485631972979076548544546337753494497189280775822535094235269334670443539957739729912593480666781085212689168710796073620575858638141970501523104373033489669684730088875051867384844168045539354512761598787587230430248702823994009589303461946289900051022391795616356006040508499001838459642356116371232235378451343968470017918591425556019101824790804437218807140857925489610106057156090250598888414720476066243711531139255976216471023082642889410513817539952492663172928840196629198301139558258840067362536265852885708504904367484856610554806941220646224938652674907202871198717026840089675812190306820221813394648145786253019959366880848192245632702051005445737276536487355834729085095767189192131490029786532793156267217967352244288924176616441966263965317838090300092318857652199557379393589503942284363283877891662192270891800811531146683968144053692874386322174352849141381221641283001869874128316831180714517518013766698194950500391016787226047749920420083531646184496506492862798954157172060389109933000118762576526907365982418739047784332462977118437927876013896860024790506206855129589322791647019677970320967715020030148857083641648613844498395377400933125311463656514408452813402591147843415769117180164694951990675845537576785293511893117092671607496328610299369091048079319354194458499394467902694309860041748757275658413863303026351268725963003475201436938748488053467709774968793803579358467883046476984756886237736705845663078846066267063938277872618097465778178860606307581146473379154596801519582487758528852362385346554132333819400652839236709188259380934530920616628234114659110832629708111217622586966784814714416019360630708786398625436375829391425572959913079186885297170166697996432899458920772694036013809820829702168324431951914871930261631778746141355456260636711963785289859246148665316879303998221480175342429678349128848479986329980000211156215648317400877325779148876073695697468460204230751003972357793375247013035282390228105540284923272940779904939612965182094697138411315247863614952022730834831846248957566144921884189849896686424461493874753202639896584199490181433220045371651960226734149927658502868111666723556395555773040541561119019407510420364224125962368406074606907810569758986990205958183801773045062387923368716747813007374577107007998242963505748543594730065923642646312588971005747594635676771458940059442187667166033003722931396155254959979398064050410948305342223912108040762253604672851569474841466190904518590719978746669036635847402030917074400206984006296033312450744377791834654608432207519115067083797773198325894768978839645576304905807682580683470781124129523570937993237805200579437442066997799359453690193410955359114174311375088678008897340855592589418656965504628104231713955182099405296222468749728313279575938409931653520523460652754346619170170458019330987065896630563089281492297136642729669790760638844267873950517338457705567760757468280938335444154019422606708645488616038842742770801085575196425775403990012443257661820663515728106351741122092729475012507622371130306413438417113061173600785405993617935901670401400920750774599961542933868685946257214231700864327289227814386303517592789241845405318769131194960322817443699260591754149424370424808648646589307188923277495075925537998213616982702769599108685997250060049259664401534153509869506764905086584946603196907971476633259206570061146955677153305922540566482580137766836188290175280515516801380025807438243628045616850065009713709957433719685121645376950569702246804886863056814334367055938883379919381909913238533300517349292217189978270202449382464665824194085368626005926837188967467127898054649600444562754847692451797530205813138652600224295543692113392386423820149803553971248565491732297969860717751577039577112423887129294840984397460768614984971875677970082346168836230671980719088061043853554360049201099435036998089998116715760198802684587443651788998156058971137606402488786118718767526018497785371381372013254290956483929235323459571548055898877869749764382451457903621350930793076164306185164355607338810104190625683736230232642796503012440729701524876422475816296641413644008919576912677588891610165498982688271912955516086045514446086219129310397784514157221435831293394225925329174162961912672063820787903751328185063538808454023942589810734467629962390465174863164597771047553400415646113217267058312560608172530347244591431087841722049073864141209398531418127789997103217462751639244063862081837325408545745120515694586101530637341530951452921291624766031740312702233752030505723813668560418548909379292837787061958870348277641472401392916019458539833056271692778102806488612481257335581774059419504054095772180338311570935834456851606084607904806981769047472357979911748336893803957597301881842866461815971903677901512968173419400356889392990412637306297903677108239294502126984434558914029885100161362351801158098210101599564409495877629035130882143983188466611268495688536074943662972760889451505875429738268965135327262819822829439037034823361843307498343621677586074860016880611429202772294899986522039577346705134865614158380587635241352561659004227223505793625761062056550788733287932530863914453761097375086129941604244540346216496739995655090163197174291889028015912808390008247543354890308266267243156696726941146720642978936489869399380756831972191001469220837505048888200185264325536589762271650213793475504566129032459138193417780547986540325072136747307307094267015318934467700316062602714907905304954089054920495924901499305635189366235076086530968680288731514000035770987090180433913778019811373774995176951685045168701277857533728021661276592260309531906304011690604053323008353325288168831754448601958103019400434029368691811786771008999996635190636790412787289672688560817192248245975296987668593633747712611161396790152431579076600703563966242421953879788563552331510405249884049786367738440667776128011537134425509224789420021909368115393706439037342500064060633963318120065539715047250073452272074663309168040127776944810826078726819172371515139894246444702658999374860043118024797074595647916060175303713724862173684275421429209885100487385090851118886094400668509912015177145127270457544334670853495949540478390470544515203009189942770344027801053861965096131964380318098435332474867806652658684139803442897364038537807068134474491154223144914526536845130596665637508148329678403944595163336884458102436731935633225289332530772110492985380629969602291137734375147707243438000492638118144526498569063786603497250755599002306474366269826212776992257338964221347443902941230455878080991954310096894112701356126586439419290210659359594930697598131157903512659722814274250605336260382766368399867691330840964409279995319317843429233962034157169294869296103652121463221533287028140396362704804901648728235188260056543900081870997994539771046876939701521011444359790839351840022944604298358692582749923390237669000906807336091951707477527799288107129708358720318964710776123402094765315924560947974913281960657797272520339727232469961666708430182749482406033650386915079725071960354821416741087286962189312678221598298251023201635093983594380234785424175896576385884945558212570627392940687574182496760232420733665811899030511971408169457736320996738971670895317586744697597572611992668179575329172630972346428451165349842957143703526186996875240205375795692337473139696241532912850438455651636752926000443717210080216334928312019289130119418587433572637087303188895720697174937175706246573079678300333259514076706030242611227051820466370046222628510200189357699050410104281287808015774228464002522956701475686862764422876583770679285312910186949231611107576594399716768745899883876282826030814936670291826869755907784570435698696897404425159615457027991996494255182668067688689111263902536713983141568468499800336405088088998665164819287804142807660070962664745927245719734965542638921095158228368400339493741990975732680237095035238508778173087223328582120440672502196834869675510444365568941835261402955070151911405839874313559656092354142408871556139262527631691056911633999158083216587338431179024386900874978684459981185183674733290808493280578582540385829178606419158478685394866167927499228858320225166216437428224220270949464665205985536537884246281561224903699903676471792435894034813544397338378675467824784678039614650975893524511019969022993956260949392567361681429262977580753119973783668365798419038523220223470196353850993638810094007707750415970501714755349272464647887787193683090597560219720878697451514366591382178147073283739298958858775256359882192328251089538914650046766629918013776231233097430289260055843325308019445231550083701043410491580254119993546041233807344920542273633015738650392169778078106729504551436160043055755508878930468232428848062157718316103068534126120786108256484303747722225979394683017208558557854574703285268093901924221128138966739221616948131544822170626884239237941804178005925017370229430401357570616043460650514628620314035549332936240337776682175798777012402313364621202505217457492755963056402589562340056543489162493958656771042037877551494608311366268260081524053716664282615489867893328889945469960758907920898375826094709292770242657698303792584190216528200825604008223098908365072147910643029126489502242836633087615515524531595484409118227394524884014185239871978126891900886102317263680683612011253222122666189881266360022370952285076801560006745664962841427756373933375915926180763010170121220624054766184754050141172420791183470795354540755694615809840673394797157136195870123449416360618354860551150881546418592244423062461848369178852668161874440609986316954708215334790197145093248635764526523319372613879820037592925096155069874096570377628537714074056884282887153278054130119106887507642804203687322574833027866889650989890414402927441670873211403615819156214573646253749001536761361356823440924878482228971187562151765585492893499361314521087397853713842079955566444840016195793798464303128061279421858930258371450979974063894644999988838353448630211999285316858598212281116438178847787673088417504452514807852550372280941043643631032085638411137368612144391374805297840802549189084432746107403671251043663764481810928139111574573972788779149269406326677396069106649086606720609153067855114634192328268484727002369999351104185900495146305144214374421403092378514989710971297438073390373467331377323886034316426996880330669577718795771659984526435517690770490955773937482898008671726510067209199174190419319671756072215681152449467883679450133274595971477438934406469175810501144279197773822975948511381385002021513522185201313525832684765999087132300312436962480860122018177359052389063407631439219877736344963377769555271710267807064703524655745865485564129471825912418537523871070336571273502627944836062383549533709818944593912278319314648454245860569580023576728259879469091242606689536671039219313029026884558761135047885199300161273026481081733095405668674345280468320998712629911856107453843048986282501890783419404008780840504884431508789623730534160088206091806593333257512218909498996587664965189097594022382447571906930689856410548612805419635631735679100713987347988170352052690134191535114503849005694731410893990451475983204979118244823323687137311410623581008662033766052876091938349576084045111059731419794259915631182978764223271326541263314513276484156472195505213311563685944295923197867441633058573939406373836768639369054721352735278746174342861105828010572802154177977186497992814930763777376744195597345702831891969571461495241521628368882439940317742139116946500873497899083961912502576692668006576753496779064733858545251270163185312174536969854729229947559147362022448249401024952434743413243653035962799864466587103130675622752336516770038856060666978145155065223945954523214102455544462470161857634099971516556031679895220468449939256881848436016428909808272204705213657257429206061962556920401065678767106299137715744330807731236723617011025854044297300395783351602832166481135219822146985649865859894404832032296399942067262392816914295369391219690616671273788287100607102477963426094088404092142063377524815376642321701704079355685906094136896326005677261823357949358414845195749632092508374134874355242472974868313666578996112644397039359794941231401866699283226111834298300683068600353016494927105575756247278101103196007767980444608300265583317394789595101418190889310024897220870442006000602781044088329128996369103521696470669445128209570203356943669660831506001294744127288868480442334552129286089001077728907701396126077409884415904046920759554968868552370032346125795797143333625477068314246516020884246509449846522591517314446371528882347945586934443871759342117149441800856103218224011031309301175849670789122025672962953203354677535919854903803427483341276497974140862171815393652814762866496368425562451987808591200912701235689516096583973428547124673687447206232904231387518975360207174448218814495475744887332035216272266102703589177733499959423943699361554979224681321908491637890345408689317469373023906715538238358934469906872912306849725541557584674495438248607700758807755892612875139929395324363555617068120972926292402403739627185694107415592045507509930251992952853346609372847565344823663066010845541747058796824785764912383106243336831533631362634677935969651751090026265867168320210321174111016383495370065636083740741239829260788187762161932187064254682282515396800014058525640832738361025137624596310195191435370461703252162045396446997961539173191265356059052739197597008152835445706138234385468286225614722151551517810967420691713461977112852687995830120104763314046110763862878976119203156972694218139479442867792453599274896293689319228928410332705521633414324606604581469555160191176525548943222717985757563804124006010547797404659178507266820641939723801869085853610093378528603384701916213956930494658067805756916383892195685534053628718460388508435756329464187891650529366128118497244879715442052027463213957651010865687712979183325782396736116352322343076823062661942776817324820159702431534917245853946231207124026690330493593033353250669388908299435251256707373140336781203692410618158413779330724023338686475023708109934188069967599183528255543216384185762923884137275215733283749394727998539865217626778006446363893995713538134251828441513766786404154938793203662096256937313141646992112735898383367004653955800992430160140132952976024852923716295839985174616298842161563975899548229362868254328313965168782899394497546081706959562125010841405160611031581816338736165213113564825576219352429953027183746842860815691813658185645639792118488380156873735602579895971186879303777930995741993658662979671901962285677590756211691638709226705926730853883332863658777223105524420084831230184957989860540723859236189530755321523774783539277755179686406870324852443486237558067643093595950278094914741721997237133203594500976304402868508886645798948570035101000656619623282724744965831886856792973748209104965815300165507906983905030522920841088718204844195732837481378167312699717755505673983930355300609031017874834656726873771208082367005755137964377940276311272630487731852886926082250989808680973611297001704332245137663705910764833822970309600416514085648701331857359177135653435990730475497130063634235119704077656924647877994979550052785865043219654165685408000398112059487778663870420624171957778928606463034320677006232263426239260232179960228234835221103777302724760062611836065772736248714462823618493875382244364209656172734610395208493489432250294939377212077235647100171931743577288327752249747399895402683906625831541854014459741412920566759898737517279328495149061100100550214680206566879485170898056361655685837009208393658949476815754064064081770280365039953639902251620938689509446612178256935502144278305404617711827554488809684988642682820546803892395696716898260424812361003292409600765795064208819176837031108269590369808240355251905871441460031281403556957482031903166837314421135634405055265545069482111033735184655788331597562741791021819350743135373295587302762438548582679668608510363894002284006565730593222826455221953229955426337143079313364839855415985676033785899362958153640993358473056543804593983091835498700044380502728101155449690626163275756028225122352208229855664111111346385616888472985554730694787692998588998125463350152419124805928894163225052054935323707178595687358193572348481140396643032684476836621807789210874169150548863875011526771656288030888156039577101607103482424585242898255603928866076376158172037946902163903960478189239588651452777675492081484769126735898669907270485415838412620715337555834958781371692613379744656416371735204593972197711713522926236453009045688633893798939371271073539455248336633860291432164170047011879281491466958558415215833112910746067298435656008708776349557787927122371073714162362055152180290458868962373561745154242023021427469628689563092532164769841972053090584884954978002212109135162889782302422240237771715060249523830404317982603007814216126173628900448179824049613739654255642953695889390704643000496474382612097450150704414426521635311703726939398560111364311443293406276301073188995551086757613551232375034954778833507106834223775099599895117524287348706344346079585629261175622728493622105078683607961111628584181736067454947896014296620815165069562208689514669003568215655098178318759519255869101593325802820531297852749885670322443980957558079532421354859360576128717803947635516520042084072275326710091815862611194187807304052459017424044804480450007967169628882905927755680284834071950110162959619238239257924821147365290058209831408009907416072785556560305969103002917465148791685635066056519246422433243106751392391658296432376160755592475341557702661641889081421206872044152169037223973044830017212789863491049792486889921845646799104516210073511880826642229476129277976924617964829707602675554126660681805884624938825121373634781149913668496826402139570988734928725072990510674711786838871622513352450546637875189827299535268296453554551790765803887833879291061944446448702486554475271045532462406923366798720590203171942999591617424840984750162588051521328838309885114942493310215704157923745386554990608020860627526486740816485459305541532624597037570905382274988857743827156094888981499544023671996824133274900085909128182006406858696943285981896989433775881233778621784280588701742285557338030683218881554422681366089841964729031546222594194161800347839867893438108881859417168557950687461288119596152351515587883597150556957727796270125669382145538354456881819690320506860666567096668433174126942743284330853435648331131730687053038749473909828595119228771117196282368616162420779009134865311564373025859033129943356956832075546594537808816700026423895009348247339466242236341859160875218533171031998250122579071912683378333440375511329620939259316062621269353824648983615547538134548216459815073992226643074372426843445634864002231272444320298124181121068139561010121056987428936946621734515265059937445952850119533608111533023231964201766045000696824324909987988320146402805524185861100261438181259390363723130463973203971752076984685307829290958662690375645989106378219497615665850630442755136903727417672223228129942636984414576974024277596695973224591412833556759721669921782248703592914586018093818353409527714044418034095377231571736024220764200708090777939822821913460054009620725364137905484973648916079273595725335597509359812643602659635561820976630645591822375796342707345808546167222912354550579321841303691841871003421273810847169370966343363796329636112803217178500729456147634463924694802609746441686077072702521087872723287677684820339642216209213725792508090418198118581840648140821928601221003060315571743195814715308314589254308290039395210853320732389086011635771976751098148469136791139374729764053111148047909176006863610933391999722871036035220154125105063735134853141903131644286338168444637739185709760870682284141638729095808511535965557091218307844708061275408177506068370582152321956852280277044942285663946885910187354810009237460890249018339471523746718750347770968277469319124250469418200324904541160206637680378892183394187800833774262398690840397454034663265098307371704964567727976677151792564515420687400197093611879195175388969529436956240848272471883811491161146040963571258727841992469680540338633901751849974029592210950156505596015298565348529193202891334575869481383747054866079621697478824428839104418337589876507327552478285604934168503051097300676832087342203487246550666019923669629665886465946455220620396319448470069150531324387509720909513200861514008750490143083647624696743810832890070850772396337173302165071269277176005763253628997005097055390035955614994479227774893216048990904772453040826389860168947019030503271308203144453855049028990493527004622122954836671743946260648758973918523534148187856562416772300883683810154754815588793806030647823323950361162943554541560308650183718207691453409110084800660549258865705009161627147028690563462915615126277667709692265220754365374010733453798087415140506344646443517110459110847385672305145004644030232955733604187436579561855103912547881835333491663576928506327958056638234155678443728344920903865433617137785838782102851872605629657375236747366111793174756915880289707524545299538807218182656269061210469181907881724869153123167597356135130701398817133216260092543137186923976502341148109621738426046547718259519205750754737454871941735901949251337224936158473965295234160178250551971079136034868308585223007915556058603372609762899883339856369799546917552091383249921741929824324572411917855150042521727826850579613562407056192728734939306810216001611470397163568663004441911821293032004501724391670867835443056318731893215940820004966645535061414716530578514717720212502544652342750817999612549206697722151779551465419946779020283227547584289163697035966298418765676111001775728928399229489706978691205060410046437502099982098334480498775972719154517855581720504508092485275458385648977526973303634793714864343526735226358330616293556040577666708013706761322787835520422112507457564272029534190432336771664697453525620247533678484826791330883057636480455059164883494480893669282452693922520672986900854401651800600676514004832456156307173858312324768148275385630317080355810433762621236591089900827142952646689321123602755421987179433350194887396111439027405604353568889772285480275810531100009575602457283823733769626955254259759050386089376374238161277042171282025909007199835025263223953822980490593090058713540335235256447341725229199980411515290289253654431381961121457779430286704637298990684012088281984319987599212479222313049627192967984221788432802308516240353980194273422603301853529688318892385216405296304491012899649611303844466348058829093441013602102258871634874838973468229850010484042532894689515666054678226886042640457411685974214102188727790163210314399340357424519861799603864176504228543041157175532412616386357867173495105299567013343830532076069925451291700536404522241158438089793123851583025347277255666205884522161105018853965296665825240083751565271001294066180448605856856300161942257861329282863496890045577202109547110758948975473482309061518305584271102863083501217663392906460436770969600682562808796224710398175846767415970312979418774250257398368094057219432698157489827642496055451200689107479213077748583564566869024560011886023440528481990636171062373574256481303591207110009752781768057808915414607444056507346545654451210932898177044674594240645813501411942240070309076349067461237320152574876413310567161730513543590581774220186995504449670487813043865010707419064715526951846271692259144616515010555286874894385191087091513384677474333267991890016866559807780968698130244357337870277475048073212954619029746818889883322516273483906004605919098856228489980906785566687658131127722926875096387639112530156970646797731966010047531224541602076592316384210384892689854661075249885423403208182322380950563280168973059793966059223935411202359820313090347723271000986799442059528837666166531057286018542463172955251506148476899309699099438770238678450473059662888084245856721899914683727618597636233885780475578640096302541064071819312786268013785818330688982769942544819225288271752788144261590709406127472993508044997705563237368985126440094753097186869940011622227277980701993959491240279003771566757895540229722845964600025930493962254852843656371828013717296497098553867886584601990521136860183705529791437780404405533024944516549943850237079150810677440377662630584476230138999997985936591632933607665947847946557582382496284846416402291707901352712764271306725372676615393302961977969113718852670500801370376839264027588175778737319728858704389868405743897689815075889109838694103903650066266548197170712775566653017723095210768182732889306043617808717528068284820230537988836160692500099943734870179032695830909239083070788202627788777063515320570796558926981204150459244814517293227428722499080601991854124973392602638181584451536025943592431548298597117048485687385488481224957722335103369322666494110597888232932988195654702166020868145717281922158970250517210600767010834602329948139174408882164227845188824568327766809493833439926483018016758234544515577812774442183559525096967594234551253236137472741086825783196555022312911134423669933261945755376027666148570293098961924118961186087275389936914803298129652379711109661547259429494028693707484273012407185747292082752105858815668036636420787967724355190915568270856633108177606387747529820496714931996508839574576204040789258086450109913481101455668920623004239705397751299459422300176311222783040756617945624851149833611808536841139072979883360834536596765382635888114977929449709141745658244734113427776469312918248357834166976335844266316522164670437433124123160444197311680759505449947288398634914334231288454257120053656234268551656379649773109049690238922725964826373854061958346252934081317946768989537212760017772849542079839506992250133654252373397276045391466551904869055689143607334335733674995657963757188879828017319325649961785904519863295275298359043161672702885965959536552694560153501202960251401903574682073317956630255559365052030860402381890587064865491903461067031628516827060347038170871046267560097423362629886164470077464200679933706836011263689645853116234414209227536063151954358292090633679617422926682185624637605938520859612380846205531903198594989763222783726478111874762821331518596217894632874718955403784863553422244643981635038291113901654779322461735724326775633588063556856318889471299424416504782822412495513187138552823334233608469038265960627891004555834707453969563609355175035671630036256416791488990019874687166844682364269350650409175212575751857934373945617025460801927332539163858118398346022416634098780872161086820944136481397672892402888768349458466461528765654363882092469237214598730171355117287415252365678367885677480749159912675237259316748577440770194728531646611684229702049217829892046578467629827171740151447936753110214288163977662187348760701498727826835375905474497631422149893586717829584222390007493118380490535392432474365635854280145743937770256470115388458517820245442045499897710360846345753907593757995682220438008318466850179839018452179532175000285971502897466258991292922524803297402800491596582983048020263601137850641159016903297185922233957948356234018414903361290325256129931137838032972625667008673647473426150956437512395461019596625516124231215799850886765246689687871215629556965417135757488384833492030164563362407041313035235590841621930329663206365104394961898899323789959272847658343500997903581623072751958808709733510030173256709198982264264222184174854399200912679250890735522228946967918124949282322032235720332411134177056600180710018061564333978659025937355791041468916974505205428500820845637747732089736193626219231079439335741142785506310193146583793376034630134961868034366900815099834736897445750407130128940006811978368172120619632339004895036905090009371255056870274195336745416032012065116649931184501515942830433594484773520127675137899032610794152739275135861443934239688319168724427961314712846626425701483095047125588162675124873759051985385005534416448923449420257530582323873401972694590865052768820412107415818093110885819565196448609299936794875024360032366889231422045428752646796290299482084649222547470691132600711911716904582510696020174732216598186042232903327022587091338383711629589760309995707634560494904417271685172060222105181797262803005476631171480918629159967271203638841641116016632304768157214084908366194195268790757487977844210167556187006621401630554788395913041263853654761749974111187884912783237261136213405553368936187193381148648502774588395579980675190357368334226703623015658480286914827560744078329730388950080460712106815235787007388553143857808603402994849933433192221847635157761138814733946768078228782354496696341301873363112915269899704731024148758200945969220102330437193404976307915557566867594077360040917462970864066602845670194336765235390572006629036393257968674116002555227356560844838689301865812668133836827487110875105022538515411178364113452094555185599552066556638816867842769047903852603595395991555793216279979012641953706136328493346364805909045418686472482218754042272919620595667400306411660184168023770223837729698100527791900209919999606350563612017999832641714105244051514829463552204231151117172744954346750367156559820202482468630012220446534110239222049955480614734725566220488343655671210333462798413275585115631846084077845380175335528778094602593446012270108199804196250319721814177268637759609716364876597628246607819729590288687225215425863216059044402865618378060827774667276858242784858185711948467752819234262009231885439759127929605833076380658552389016708149073218562970282604996063206882907067340964924605775914564458667593554238853823380716561818435363851419061882018362385774854595114235910732134056995162395366639265619561257345975567253148157372900241655909643550225353088424388339374344220664069169614376724890283091738988886840754392568357995635693520654495582228872544935432806199763535776084261397200016325386394935117493329581303975570136599790273556286582558181944045788114671101532639199661062590356946053473902970093083869680180994772415807391704706346358530448119644094048659620067754265197817455122710322200229554432679910929297323303872322920210691081318682251765473470891839420214037750175359270934377180346823185302385858035211879646185960731867598545976031112715810382566708414280583583118072860983411873350389789974351103279816358917000858802173959221132515214416589593958045453107937164664124234339109578800720585402184027716433323474483674890547946872375037007726294438315079604001016027111380983547171741960032356557189695929504081012431261531026386871539926336279203180546654132870594660679933750067442901530714991141157555498679191721466883562646101153313578712106309005683203032284285729271543802724132715570053745530919718365385510302075850950228809027673443523858321080391726333757180966411206498950278308941737570562836314045397714967900328100953575687840565630783904997817392999623264513285686623219017289075722033334107475281840370166056028258740588254448791040687123670541064039545851317630162282757893998156047453536390430915465413366783418151711820152546342117157000461228598293557172446121473185871681015017899983149385439023380997143227959673914205334895129114161341152174442448524901285596077958754170225110268601329480178213743061150046431979671295745128662141022183824643750648510415677518395718135127023872629313916910258313652434709924843198704073810651887550239411529620564984786095106171823886811334236132936405196161377376597332003683517536049988428309584649499417529335472561057784348821008417347511134570333556350647237330207011181844716148529572896940190014046882354688016842000092884518215082888681568867673968096467493972361513785813496238415014607888871962789494172693957967961023329761634678182134916353512302698261019035373273481603688476121509926451292490397034972528163953705734139148353457703044595909800678712141094588604779902509690327782042941498576226025436893915505564663525276488085403105585277117851889945096024726982679630230538602562655572402859043131577182079900162291091316444486375160339159118243660241864030790571430184345148770021660294561804547834505000836802741791326387435717583963080647712848798045131091428950684163540120575987717226796479493878796520776927992667434490486280139595067463946479950497129676719895649594347230496217186093724063238628186414467808393072459772656046973255582699472376092883181683390688357310212706533945227549058886572128993856595810523345243147237413403835959279009198913269244196746026788589528905770425545780788081936230956185142592059827959102300812560702676116147970724214610719178782097357850431963193681884265267367373686124980470216409037748253575945653621177524346682893702543762847899640245218713410244677737829728224908272691709821207256490224571817242941528336727711826322843478123285183713191723676701059289719398562308677965211747380730341062288943444881740897049583170566725313153537958679371657483847654702862357483164904104535398984270197585098017886031169556351093624144649690251195053382176007916163056000671097998255587003209257602227539002803273271806760470951154290392950246228648698329076713740125695263440246066383058549965843091434880494619389685776242871575128275374588789030164422077692590408142223175985436300225429936905003330445088247251861997698374409043866315135209671289882551577556416162128246666378437776880533712745021471008949481065573515034778082103412487143137190574647783857966472255440899803911866223403036316276356144557525097728255108164072643716909687139631195735544719600082602436212981359478933304650735902479355904689218699185887765580280386097684804056953667686055908189298540068761241154753003278830788469290570289423189705750093873450526548544984801034003296386979133146681850256763646657555871084133430954601669618283496216980888299682683189458001343314553010593923691697438593135509546939135616593181121223952491171584711064029651011268154007242236542621580226766232265059025115911165299789226272433478714867336505848776958855698145170264314057780884806817348085522233259528456826040804446706947963013701466089824315533384084234385032848634732607712873492481152086878654391599471758355989135022084779432870729268437342048816370368946147120072950510654211133071936256783981449727594026689808964576321570332516331081174311882320652966119356710579651748226885580809177944663503433491505503494450572393489178018357293245622588121656020855225782130926063778327913610815718718480774730549457482472427460455321017064340711157989679696581287397766231240103130064078323126449828402680341734194574360465131148555298518245601035355402439273256891510664186128212685294241252894780555363086076782020820270738875965866101839548162833581215982599799134157873597451361218971754513986849786126498219769446997816005070726878941773551722872018601820583681841914667541940295504122555149267409049816709080589192464212606880883413977141247864185282757338765620449549232409269195386029848044321115888875971966429239245609695395313969267879819293950695709303672625040117176286789253971895095335624601782633363045964681369419081977449540202145612619919206823443354004316879237883628739800374183334124853771179036648365633244998311604816326847577994217967170644088021808651312204432844030490256454501710590817615605276468991530724763837725610293695809694809354906962542097954864913738129691420088001920883907731397586666346160968591540363748309719467987397287388149071840684710688444596105445503986545012095777441650640039862437349157009896785181822248618387104343785687211695363560995824044978361421704484581350470837158420317115779507702705033116763731190261813453320279876068678782214111388580419473271324155789384605365170505163046792760440423498926177022218872656053747186569337768404060850699220102045052331054453419658798274734086679265597427086777696424184354216921023370647601866560153256602849973059636364345807328256682457345687167533434533830155611321096624092933134320612212732969126934979384584734206273939676002364805290930162038141963564003917225514320564154601803835442330094452508277453740238878038104003352621903589376306059964550467877499042481700590471542346600362411213466123474333397332068985588500405152508121201185220943039070163841939027156206625906184077763861877558008661679805105214786798926204128092745789568070011183430284177854077075900224518374376246313435583625949985697940708754935418835486897970798340616612860600031477224665774880506648242583262502402297360607829795906705180820302247695323121321805698212811018229945067223670622084900753780238468550856594553418706742959840903697422562883980106273447845790010391020347376079381891149286575888456976563059933335067732215878031334655028849351607900595218539896154484663808099069795568674886263223773349675227647783300192479260354819259224130572996356888337948623406118319319588182394167489221071538492018072504863519302051156605019639083320963712071471829016749735400265051487993069528401703435991014336007596513195949315251307409358616278598375415927540260651532536079530265676677337239827420671983450007492253539441669280274056970214671995688359800726236271609415633908098759933404994292522173802534762642431512832459920719822985521120448163032875617648658890322372828176304726903169256264129543672695250970644817492715051270415907228024782694741693530249276601895462018070867464096841466534504311591362042909907154478012194802048905127364153342868080425190783628917932744090798776151348002183468553917448981466574343615485191413539559076580903046339897777329387027094617781205639708107465720900766889067979216701715427388723162792141187045603883661394281646409292063416411474950863339142078501161132010588770594416871303828416598400945483958551262356710360515369413792035696179502711917208289314810265118326062384441061324791294509182605846071521095480737462591340776694049633347492178429220609421167334342112448963444144790138503775065006094702482522925569369019525710416369291274282929183240016795005153598827139413024956237906195924888294982945210971771800360805225205806095833227644633185045615236884028430448672443078170696797410800582942759087883632608287044357998061498885011174670577837616596128863709547467703462161767002970873422362339697985501511387275023071640361974320426963870941186480322373757357768851230532843207409017830738850789664313270871990036846333367214333793514071966248586856947973850308380072133055987401432788071210973658079673917054793166391367500123424059063247355198758287551166274426935931467094286092889246518710567555930411928857408467340837828011719465670890570233734988282531286267731441014632027442026320005921392812937811930054771161938890007139707767393609937766899245367896214176359734214563600008740965672037772645184809267690023901613446106894895030892413936597809419450724215564073944548380585283245809084165551146786442483612559523915333413608866995780333950805799593177486792045568591824510842213251945242608120144539931052046096391339427041280413011402794103904107306360473510522564147014699252343273935925251796121137155488599142763846795839455975125783113314454152360137601585295831788103759118734292117664055863981791832950551181866068405216221627634795447304490740849322864329103210237186454123725076642642245124825356738226939140135464929122915706720161832473119059502414048453649712313468361385669045994363145513169244836686255188244789359063016642386817481379286145347532862407405100672739667039580976117248105080916007942919036372474337783386821154359620456813411168171233687344132642128375804024192137715403643734274416306440636485573728129568253256324421461866033407138086468596321393973135484388920552403173484384547979881620212749234981771716969445160891570643472961855414396772967619224984630180959674287700826832805848077781094549852643161292800733690727467331787949795567017093688661326427778080288608955859837518366497315906783616223291712056191962792026490058829198732721323462926959661815402771690838820378697408721009432829910141966552738480700804081312925089155788030742631467511331188834001498260166731124421291126223349597784256126786123648087251283475855520448479028853406366237258863750572752891377313098588658258355937492470961272868832730157191578427292733149401381380440450950838005875297767338476997556444001902283382544351348266301414072172178401889503138408991210215298862500767419363808940106545032203731838597293729411073515494949408938913361247825303169695153667765817050550606542834050217034216837486565499559826024922483644567896396582601952110478867951841410689127367487374929504623148696210172834763657963301792912777005990488102655421766454201131104492329485846064456971595501235749373399183599819002987959423945294954073357064174755314165517861157381404284272517803809014600709679373329412712374508351320190040326527484025743071750101406372596079303685001306629465410751059622277837359311266672543978568413883781131450078894305063942432141583852150752578247841185974455641600049768000307732131713905777783125122931686367565129258441668334868942772360223797452000661746898689230542667969999888484611446700849843671316206329015616092846564722372644497965585568641593075127287126392207179716749948844267715368879939918663573484744873545041750537951894142815196058400214968296862225543403415830831107412531693488946557816468444811978635091401735033249411120070105884644193061288797458437202690900792875078800181216613742969000752822193356997754033198996160814788952098005019845465251997541411758825277475688537476677629216897774056489307523916712882760031945659693010688452402541079995615896592734532504494910098045140542550084703342215544932517033994624082936161320521886725997831410577845967915561824684490535538977675066279535067300531039502778077632013059727334133936888172113954124284252276596683412247735644784083892106448307283074233828787669212940126822016803336261084106490562899932338230791453417901903654953737681129730859391159844471284510252690753999382487592004389761569185574880274393678335391876435396044192230336198332465923233271103496228091965409542192459843760057189814915976781779635276937938522116448897490874032716379404761265335643973030319050291154959570624328854031324327600036546866011504263808778660951195525907373664141989300630682359299674329966528224418005914709693059738225903112798385464023742925926464330896896156268547606691821518183679798296428445893208323947609385902564776784756233583343276810580583859256765438695951429065454763348550103231265917229635931829194167915929456447939470611641561515974021610391073415193996623451837361531849661107363604043445826881949579815832405856770531400350526820380117177806704334961964922257106327869954219638711768122179844858981085724626803210684190052193194624450684702175781437681270506159627086447522466970494896541844692022263352235930588479238351856335249563381353957878128188969464030198377582187913180940628487596912090470278337967381434944979253556601374050105446217922793173824487882469250873781830724207740086865679475635015794453837980394230296441387647567020684154372533888570379830207651083870588623695482919244145967590867168413657054595582629334631313012999235524432565663974021198286390358112193693157178074860620332873283574349479668103259114874136577763587189065116861218577897273265526347478584312940178402995056207728518085285683350820269534100257467143805249794786548685296903617927072929043293311596265010213366951108122420173331605522343431297228761697220141852418533406578310996847511520627068606326135979160001047883650611851785544928337109547655140249596777957747988148142583810872059067880562319018137998124845278045108315292553710560736949011311428026784672397120497425441989859325652383196042482202850218598187479712555613718582252491838774112625817634100018769569700471545971475213395792091986541909326147649718496554819299459072762547549454215247665611481857007738565365493209280969161177316405405138242580480910066762522527204433201916709874825304875692372021292653760309104985317462972283046108151253877158730380450495914143948737296134913122577699755492045237955601403893153220184407460932138111426803800748374722019561278805132565737291450415827338048170906562474490697708862229223982762269073456688191048411549529313637598050014908599324359640273319961959534626887198458908397043133612011694315773440289427764021545319038389337205581155949767102647674290435899432459811757122128333108848691928566704465519324724751222303059642724147790087350248264066481537832810511094512467160893142189946181926182667100794141905685387096010319047397010968831377959410621105428963254098754565136161097794672366325755048125940927359820827507225961969033826623377724864469685757251134737969841468458543284349259710764405087722848719428272436374718380043093498343247759783514352044837049230541092637220569617742961028519580072178343560281393621521880524251161363928935016642040459709616258084111487434471430757491047684926128754380258624417375050938381484388029307088690402081500086350269381858756479652396419007892295484857216108158609068187382199564447472573522940668243052774462546492217351000721081346727895785963131255417042671983673550208601942822112298881064242983144569010560025410006151315518775953178774291662102338930794639167664899003376117334082862998731442552157057657249614522945802637068041247972835129957259258906646668454223063923053845492459175394848810093632780574166293940025133624517877136361630936378345345836798289872938676620013227618099582133962708950249966136141902593839611647432493718855427418263530407156631436777525166960360452810144374009413303100306838149972521025874881546853660096416832209165381933824781715783112593888355944320462790300052834070746804288006478528701677310540156983076917328542362911932674528082646839867906508796215302097160813030164004416096409888091081115687922388341357680046507381403652793722819142514261435715539101603938108014701274006389054411878747227330499859863316604748808506930426107003901679673701630164473642536779803590843039296197301368427054856302037929483753936583446156152303566457472911894804121526718523608677358230900085143209792849159520930283876813019740987085188796351507560361605685297896511399815055583349961500964260818541002782657332954479723622202621311398276174635511358986825484633114968847093305861350433659502286281253819008684168631109325109860009358218606943076432514401243778249658337924693843881915322197892205198630347788645727936686750581186890116282260372982015832801532196987602668269946194036404613735091657857926624340961999736887325032477782148781593890487914574553875013179049277590713829864275462628600487681192969593964235741518198480086824595424118574983947247262997192963094718330552775581284137580457869295626735211483950748403388284128579437966691785778185838401375174076377583726483615257350849915421732536661791508721948622795644412780501358237112222519335357785587143616442951167630354612775888747716760096725470863248447532149809834017087806222838851506227978670315614909061860466434963812179979043281683993282209683689686613041976659832696677595505878568488737518945509699529888605849423507661739583713011492605923378776739418263759067993021086378426269000492804022202890639713781335617559137094969241036451259631136787867137516785972802419572114653779890986856394446682646687345747443476119386254407733076583249812768384695298585160515665238944260912416612898196686924247465954302203212061533678041162367737709051298951104383175809094318061341691047798817466305377855924925091591686729737358424768786009396028823512949668211366950603516029831525841281628532369643665463836147274893005275189219463183503743527040544919990159224100190882885205681851118829828337518547092226264390188933857688193869589057826599862213883894396500333185033553190932272932529635400949162308951348775328052024543315769881730022797376100798951036787785160081630477601234269832354433375694341967180299080438564872288458621343833077018799535075567890893889576106330845588995852932621948247594679550386228930216854228838557065732959483149797207164158756286502260619492691308944411080303241373631499981890168054875402599936065100722225989322634868474505578013366450088724191199084182163230881071128706934650379204693921834824959154466015159069374734893916938087278211704223941665947948393162768248165159416464876331536167408669819792406705528441245570452864654729389781231124861621273790694134064943398627712182768600186245947516792933206071924868491024544245429085350206522002218861915967253197856662554656208861279507148210689378728321231881287789732138240306444245796243632686278284938255018818999696322068924098698518523163671461869291199618710971239991975556975252257593288473049826501109861559526115686604806577244361629862926491125148129622885031465150229112513403206969164006651398692031892870679715149059464027905872364716270716854645228526780417961943338496398939728172717384203651129411999777904132413049751938868666285202599679544286235182655857944357918211785144318432609350127476154870716488725195893620815957039408125895644274913229880831408615641657935615981031453524478029130594780682631661848436350186625241411406287323899010705666664598671635148262289283817116102499075405138551507702865653777689871018914796693123409407865436115277209988958108580685632980432434625367375963759391334872396306259683712541190374204560982359733739864971877094032920420498586293660300650689857506537681084507405791983627226545700998109801801007531294299744428324608306522987261455402468618453571275816226240684080015603630937498394710879719369378535441563991431819882975611710186728998883056829769145470396346773720736721148616237657942493784834357359522696775833456581896796826032709169013472726307328526860573094853036071577095195938617665828872442275041996273838106600847957290558113957125760754990241631793525022601191669432280913762257323463206743561734079898868699149306933607075029127130182033808105049580353048405890619171841995200245294452200506694843540854318880557140009619595431445987781463233995257247158166811372919777473747454121581531059160865032965612129114999371470525329262770729484771173938309846357503327594665138317668095313502087545430713814668038637670724332237456519901360497452983717908018651075373080347455783428784594061270945674755346806614175839274240118059588231265224807866951454844170871149065328599553891007035392586191754136703714136592019375514378831320418751137584330343058885284124699171966771643509772299716389142892407487187023928984338119352162689234875013460547364970943594194899589353364289515528210958298719567610371709462025708463930295240116240057065692213806143114187070237510982989587174237792495452175656048096575862573512158748057160359967720973863425272720349025335574304530694140753951466615104807091951785988704427049623199834360331869457841152227693527676620745575352793904407269953774975591290228910326848729551734353008462368934913918011262036178963120455368781908286736108715306080191548948527399264086203439069201747074427886084797090323574597183641423232614714175120535665226970176839490833511251924617449503122747222541651215514132914708267908528038370022285502570018785826807731945241468956606242480264554074468554245209743116544459855442199811266092988370940010035071633675810208297928098879368049525602053490150272224642669331712740396893962114783922257300934592533127376403706039094290341386221524806826878955033432689848618945739724805261921752684249499008292448105376065709953816269550004221695073123042616957249909220252196813416053406359267149556942395453667185427840518791431444114862827402175692783371920817851590996571428487303615497826888552485081060820701496812330055533493212650302648639293892558296027768535151143971542724933726768129335861305778583140501808458793834174116196789912788673334263230731167470252155948023261014556404030075108311346348688943167539281242230509917377861967431655924385908220828031689988178585346110516881208984621065326405534165834372270054814571263405494001723866141369352837832330922141567811387710704068289718943586846810907573766213145602542915754233936290453779698741267896967412085432395067882867216597100585521914659983008301372423222675898047023360565214392588338523454315379878031437435413471003607305006007101745998877014260523950420594579198676784652543651252402875007585288781970263609053000306671799362609941712239009869178148122362186248484607834056814166757799507094673991191399555480746432907522616953208443010328943065418757568137042091983919485042043761442405832165234614479723419096865364532853007076904744965530089078073144339730347534357750136127914759916648519439335138736201041913427939623743422508538856624847903146392628364647937904503109525949013736833231834510099367635348563563965701878656023507635777320137749408235794023898104510660292892604052077342139605540383411437547303611365540417024711066236361232234650679271803404999730271077277643435208816426383942736371510307601840285835252314611317299725401216266129404300372682685463962366000353511758082932003343592224614744531541750702592625555638922199260178699320258597173475568936767513676533102908503000918903934811317962675386241981543275667772426813353166421249241302954737986596963182479321599057225234879605324217721131035890711082858351769482331341505594031989336675547758165504572136632790178721061871355153560333026680855054288666474081573599224074312574049648167869603666750456495570497404979600663781692142167541004910046613593428519280227891218049370549328173985887394675200127337630757019541473516143685263297486329676373681203885032804003770366439860427542807358844415140486382515823894574252343784212029369886419985310576188855056523848154257457545785940807583799316890857923312742788867906373514991489884473216947102583738857504905397749413931756303696238445208521372082649454433120077437599695344100724112852689075094385565281919190856733785420306851587141511633709761963877997414505509367390072574278198620464858597210277405327657420727475483757204778126759009223517039622270074317639587723033752392651929122000225623645499654353050722034358030721313949189724109575646865350114673840289092603212269641071004706300684538421670736445421595077361732159968520423459567001312224828570608689007488056321165449022667919588569962506851139783229098358328741673219960628136445105661995634229264569389792518695651400036079958044573776469726731077407972281587527172576256890916159132023931428493054194152898439824038892351654339163374951480786973000558387751710957356199461664849606941918570240821412563293346088414972367942110019287702948906790851948790852877349678258704896933665424428920995735304702441708105987371696960954427366131892702660461461339565958168809587954199382667363858444457808547255685978443260925545162783688212905320325295476077040212345437255129306624241330447506761978598870749511447614253759269023722549323084063923563714905313044067330388403251114157379462066406449635867022520290947132581023042719482428658883439978426203245319986157152663349054173715478648172383499389891523319906358223140303122944696658985905171592486525913774801426967633138047125197087275477302435281932587032929897373981554751817007038213532856463050060095508185895112569014764498408280593602621007427713705379785361110114984484822379608919187057202221952476727281823160273541235595209494213667800308184561046727088161339320065781287511977607857716467840152859664366630300661703998023120566566193073133138825092071935522175737856154422456348963109737446011921890745902410425910399005172685281159088563994179433068361436307698085833188983616075696533344700586615205343841730862617368841100399901594509525739944949796963027929397358991449871602059877010981513684380977599849190970576364914801481404329268912448006900978355111549205516182869269617196302966408953416916745300664488384872190426533533842006009003569327913418029850223227997449035181644408047301746267764678091254637793669848965764730569752024913218061270543925478924791521476722685683998165987902933518156662492128291397986156476361172375982933838183380929957254630777804506180192211564786513421938537437255570136445431651366075828890392711709040064560611489154577569805211648425075312243154225601295982827328585177806505284356072990251761934407871912193256282014670295756855932650730935087111614585934872273299524498272944640862180742471483465763640937449343095709312641037456922538277653872170158555081336100034569319521801229249148138421394223609006040186517060507108524164758608650207704847981567546942079479222407003693123067009528578217549471219212163161261904712948374281084149210498311761770316676798054671257786107900911834134597113593577327705441658588034777910041520539179320071259633012740749081251841226177950916380538794983695658601231121892998446367583274280672531511497377631220879225870104843040821939877603708724738950893289210132916701844996023291764371286707381516807663686426838405936628121993222535457349944265018734483037401033678180534088755726768691236766989610185456502905736424796626728317126203307087339295774326162711438566167046617782373787575527518133862861698254459119439218310397673263418361088982681800708430847522118535053411764893192989279434971452997396953897225140346712211558763969476792070459079583127149121289015465396868560198530740108522604925657645454667258072494175546664058640186622488338924882690984943767115786091996006674814573456564477837538552320261085790334097462925724173546664481340252673112028034519031890600917627135803978899907091573472228824614411445123104642063041710305730465894020027195131497817111660125184852950349185864778280786102534709115243945739804206670541786137409175887267663560428119087687303354388746732560279896095203007141153305640535120248128479058643714572303865396971656289469086294432118096208390062566348531810546400580536484660624008430035662527395302300321442885461284551012911774887234550677318466552940396777661511024284644627095733700607739956293196640940423577195009212358474991120190597625341203470843783769715286761666943233830637155484150403046213758549277975015524301594432504927128044508244666693700371339040267262197685278353078639349285301450180481269275793848971046949078014093159923485514596623210392474217019310831554789283739542574784068420220388826449944702213831578727708428115913725867682409817825039014753954969488702303203635521003712857403839645968990723308305832036259391891314300060180245653439354833054256949519415324440200457815148748158913508952141755073000529659238146747274074534691418345944327157368262452236206876690350837590750819560261025665924912720897907405829779718957516944369524542294365019962408808451906518164402924213580581403455010543855246674582677931574299507117251708812252699184915537293136562854942009887941310934272814855073347724978484676632758749519246986121537934979549947061530073349424513736011699171571391066441736296350379858935863735428939797140847682869915948407361439350879028415874274323810999974540143918930892846459119186322800696149460600062911894181684283653974815732430580169098302599126167807939818927448519677206793015613255585882515931488491091065191252649847650097561197106910770725738002068829038841467993160890357470142069960394846639215706909316247706947163833868312595785338115213106028408135348001489579559475459500515319580653243405462644695437584094770673133372841942465440213431996848918002238808321304843836121192756355079596612299523384504243463837345689782862517427367552401539205505458725320842293183417850173946059070533012877905944821206277490023186413738413893316007735473316189546796476441315431299834517694648399872427844490409131662994800571069607974262391311585003907225143497501864988808568644548545201518137171161284886845803216116718370165747865225462876894930445918082441100522162387321086536088428336414068646442750430588917113593041902678970566635019875172431537361782642833236958880254625581816723513306559415707998530647484918109131483761480257093040062989925121690336229733023882554131428369470230753198984772666524503389256594956750118686953477859336209558740528633407195301281161728402762223066877170556636239612318019233267934208554035608354562040703827926642302708855637098481941187440252526513503205651677552115152649560199078202865917709327199757139309785539712346681189889241610383255162641431090241972456448121450617473455515613625774910228184698238748253147533915834349517407076406423632903468128614809580312339180868853183161104012355897369714771591277517424247673776563138434891605429549993968251573729093641640297787168439272486319103034169439029121609081270952554828618852430076936506819252882240998001225165862970247702742628779690546656812238516713025748654057732426779820787188188294333804570521799147819620998204295530719175609786661520786725112844845536913104647477506366490346591968476478931560503279797194425773646394817488967462744015473619647693446797566211500886846161043198770488128134127277921842356542052576005539493547618797115881838708968679620450807680693886476979026177425484225342008784058419846189640943257219210972114369150900303968273582884973583785544874625636337792333606132233609542357534356166474342981739243810150391761225401410186541413350333998682937796493556207609958075463314130530843488093061012785895323157252351612298793658821651775108764848202763268220570458304557367450594818416614280591904417571697781952367988479203355204247928771315773716926866161726283358089356349978776902820033736704695016666644042947245976254308940778195080344310161034298913168232712958939125023888154196498764589003032416218560775272228035377919728129646139561734497377868611741432663903870419516302264143052932086786414378703612054810534122406764034199474721270616908888808202244864578656513909387078792639043455136791244066341784905766802491308765794384792782610492793033847709899073912544309997741971039117193138063387246197193647014426948953368726230003020678922376752139813770064488785125760277652392783845624232130699207654557452283221451053099563183104660426770915071213570016598734221374277493344143203341086603329238553421893870204007875154885469483492093338246715393886978684077316077350174465057817950038669654441572864734391679631371556497149749617354689238709861199373431452083344689454107121626557017578375859319878494641697537107267705323421485349240184263564516310372184303762992192049486610566022010348821710773670072156840641616513927958020733643363084850519264320514881255064173997318351520925716910110865720772800919052545510671939314107429143170992219533650524748383448531010699138968633281740335518827779901026826023086571390705819830416365501534829621454557804749769394869272565464221569245257975103922635513120371058415511938069393729987629601649930486165935840550145436091732010845086767300757005501514154081662910034781805848092029713956234747575099616528436391993602829586012385143154407448862960757066493980712505149726238156538603211410614295434772174385341449759469258330470359537788315527429118574304588678327330097365673950065087548606951660581844166554705997297358615693078738857504002429660463799590460819387557133779798192665708562934663090165556376479259975760109355973861587489571049717540288296010293555217225368576093030405623023759194735992694475185238085327102703655383171124093570829847813029093571992139326737562438208747730855218523499300207331440912150729201660477759817137988898412991237690241804110372363263664906688645479413969362956445655363272955472712478632319494491026890753578215564074284013301804229863849084453269616414446911717746080077941699361957609147493033435238774161415670455826014010593718310351669708501048648973315824212183629551930644353896392193795464842855171051841532214112478951220134630659292227776341231413978670695817057885772202198339362481906184355575390937625483890211771905148911888213388313773126740125163574924201107170946463463084282256033082679463694284174845884667694856027426712771833587530172879483264729402849557776832210099194119626914796369555148575687859890174082905528443268608746986343209659803587367692890542179289045309143323336721019556674283627391351444749027620799762619670869511467133720579092887014927400789517089434315589265914931401267954924768571891400290263150672076631501303847883982773920365825880018858985782776757247350920667973181427260977713848773744766325461209823677661905758879760781001042649792191976241432540634829022959159447263328834097041350138622098872051416235029644888922330180233861952291535684843580162890544546510462125923140044140954050356047997445871539720868362386058731231774485507014883181442541443438621234209939247113845251804080099734163356219720967875509164145256174570795939571898924666921568514953014194814681676164437119572552623997924347113049487900552642087724929173088675692846556901912369177384078548735317131730634130965163657354980586542447975157035564763858346701153403624273031906542257994572050985450347581724858462460307850967439239807016169194171879671544681693034263574230783368986556543531614210522929011680847539601756635418920788889089617808821818435868819247393788647751011867427671997633806061269970143906599448251007733015200968211009354628194119719406629365094587283217131257047386311936027090163901439111959914325387663572809965888268446719257350046257579626928978933977319947998219144274443441392919831333477913188314494693542912280127778813700217240903157774299752165191905529509780431000705271186302899361391410111285669056223500364484468278168390380105926142489995210431898127607837812893517387529041378391675700875797183128485411384571403015860117388208806477849546184778650644883655042941252398376324882250879892857037112527036021613528260349626036390902542188213768923577025536394628427042658396418555293414673930963171899249974874852537130299969575158006620451236966670377878664752354706854396433035727048637109317786496656372982035195369766378132642563013466108377786674019592993183530227752721418876187226325681851603624407811147062970949683280198372166160262213196234949900997260980673799972823035569523633630818548244082119411901312570795843166064336302044562454325442089535076428227052453946106071198669434861892711290898232772570656360392723459476289099991188121709019693534744652745633233425926693627197980926309743860138828435348119254270030521578505574984801172736010770197898730451129202042272589619286763503852762224843656531199329964720522924655784527565437323841816747963819492002720161717237460987605430684627309673948925981659157780380185572598124928622725284233225523623851290180514438745903170370727124191354397900287050054812224619672299054439248716118255189315429855328097480004281199688858293751431703627963963592447559971010728953144622530842822283606909485255324787041245078593031768240670993144567185328390623433484872396487682519956284698636965090431680438064107025564565792431993320327579060414538814643744745638634626422118977783257521437824417454011883394393342844305720559771366101670768604427850097831474500888574538917827631791319581221131133911953483717453380978682058521711906602130063008264945878045642170980397403787715764385242193459017562834616800331696650785707652252265131711169528505796582687963697656955837935611459764646559184472119222106739975151452042862587648430201058849192028759922883770848603554810094958518945057357841054068688095153170247954918754384673930491594860801010775087990860880450837470377260692635987012388845883882068563255539281743694984033527789489723779924606609885285894473378810274035499234566494587241546485382148075969976617539198682855872616932366882162775996492726885144454492024873277176104460366766762663986637822895861425313008355917771462220429799887477323247399256794269085204318369186640019792704988196654655773649801458898273428089566169392579195716392536302219740622405421123460678813134584150296238443507470445866820144992479822475288269722018895925224088004480961693747572093749577278809142418564426290468973260331122576164152624589543767154049943485269679058421052489894861948246707159597784268013993599344840755545420997429748645310064626102525303260203627814610018315447995264066465006463015678103917037849219817901414972281189256752271554714091552741897030050726781891344842591718048674752718455050977150418178427003357838481332832707538968040535268101604785163628072941357756993872300731319835412640783440928657879235910676145119464217812780529953121825514074113184786981785076110497425875583020713254593514890833946615141592958848567450299118028788008318474083095922670121019097983720736893490557577947114012203552731636786574408400358514823993257433598887499147020922284076145762971383361909202880243827922470556799719106685557677951867510379927847428508893243142901612894576690767385952234524437044757346665208860463914907506193894368384159421499834251316700351557253914372589217605035883167194688072063156872237913681822175656538492262064532536020130317145376155839322997712769458789676633147503902627468191754552359317431528588647037784086357249550200739862905357934095981859698794296445122551816647604424208105828324414634345550790928709877754241391107719813954477677003976554643747232325156977626862479232879304293041527329929935263978809074629049581446244630188325307308950300673631536189135551582807284789111134594379972187632739251336526903971350970500674458974930675277878125712976023174043016791026169258889036519135711296081836808736767852540385848099935213084801126031717817277274686391473189213784428838839463036932854903628508593793953038572561804309457267257710002214822539926222286233283352371526219079567319361898171787636340527982601685131527789879018668974833737882662022067492882214639175226727894615804654053534493666614753596833707635579335152015451031460622274139656794876106679074033696279118767557408454300300633056531633438106067174814785577507314188576866436636849421751884481220603435506434569020940689111090444976914207623912752401480289963714984114477570348059296817586948462236796550243419822036507730430192251097202783423261245612204333246512669754292341705512305418311211828667507338056645598496879651715557615556095089728198044397376520426559024386958119308176168826218578606822409122421730353154642828643005673293186364621908919865949524233697870749326298513010501226135786521294026357534458468831349997512911510111004713396385919146070433925382301561154520810754361392079265949238221961421059920170599216658099813368560760194549651805706571318468961130314702009314710505383822173535076578458211420471662515659748726073387821731080566303661685400314205724038624651249041376156681191518499520753915157203864252749797068510954585253850471024916450173951389774983185144612668988694790015206311380671653911613839336058338719052643505474035897115713448052788561829621736521274088529152563117195013615839276976400320723368393965686074166768808155957902753320943953568841388407469512071825097546302961040321215153514828595860795187520959250790372110846410161252841886633232316216370800985810319707133097885681836337137245890319949495731838113058004457492272438780367376019838053015448491837772068680211576093776327432590513358425034014516683786474761536297356490525061625066729990769816061591963984056198231072697334329634842989774748301335850187646198055236318982899894526187418345107818362517362771557509041863708997481102128415826071118085761030056640039870267488796426735693486133439489288133235940827104004454605228452817894382443591260747255097456656476428880542332509355487190114751792791595499105608904940222345942212830180056666853308099217763074634656254454406107290714603331550350561263645717570895216790651272826212186397911965262111095663943684088433165041213053224151582803012412966155577277586685221809291566386456157482746666022280847535009266955237419101911087554245564639099003387361722306294107779141749090862261013329755433646487760661479849262266976162612257622351073130588779086126416423457607495513140893913054970228274753943413963432197634208955034623097858295887384686831406596623729209718881724761980264330626046600517330126258584489860656356536901290752127853046413228943420176556646407544152997412762873411744950113852648529000494888126102042205180626506968904353938288421130673576198098254299251587830471048630068344851638496876618922348413156773898231167829172400096537473256841934452688793962276401798903367786568732604395312960314796164569315710198207944442042478274259455087520597733620385416908040468524591360609718824274068344205540559496925433618307489190178308343346710243577209093781884514358358963797594949648311329853683503677429963342075169045763524890145191322095565251417325160837797984575577449542743930311217329142822779477258193174755281950313414399896164455296419058304487722512335218209788021072860149512827681403561171271330988645952745228378114172987958169377111043787514683877888811902184750992753724214483750280693626487394617060323748420260813929056056508566990018700530906906827497037268134296047719460534245395520600974533581240545877216917336460567718687687785166581093894854899771852631690020727437374187745910192429130405405845220445822140883873649848587736175053976317755525450502135376178139815016461185046180317112234082136276031011883869057707812458887341691113744217912451114791635028917433368290445875160290244121018095643458781922648458451384083114293732339133192351507045807144376902605866428225365736247022645112992995897961174994053379348185165245467531070180329334121572188060210401348539411946534325016082087200764248404437708426991230369798615366095704404405589248139701788522719118160861448533464761337289026464696204703052244620575722350834618383862336646357409021798908737745903151764288470924053101932823137908856307642171724803540376989527152146152522463753497233698957086661383890843186344732843958901880135432085864963951523734252122080409380320036432994893303341813436522245002887134280525258897904113728863671576207210234084659002352810345015276301354914432272076661094780854163869425436435968125056641785825245440103916507531849595568567527563952155378905506279558413682738316597411562737456603203616364152224467717795478356798556444391153112455912386659551563960808464098293721277290184927544077444190873648046556890870126168810172667325548295904975045822437769241950734238405495014479172175300840874562782215923737710610087386067685175500867006177413017533024931192427272543366098806729242375311647086588698156412217144128272529778227704113617437841644257094255290520526584308677287229706221944527378948863365195292498796477769273562144867127854861549568037034160762261401837220798619359321148738398322970525078616462233787693875192650494979815236175865082070943429575781420593638621474044073772133404061540010900385946039613836547974364168564655784277293289587001117883938574508045289980348948140027456648744733707527490541303719524032805812267720994625652626321360518436544155434943647582376618756252952415252682859302362662991895337017708390714396139478219826069967770599851383935802866649913113161115533867536706284336029455020769428407390381780921769269361077512868514958267809718187193321154003131313899159149947220066157666753326943986390714196672053348449907196173844268620685402321981865954771426256463440158801872219086286491049913625970210739314218470315602545334878237688321689843373564021076808256380509625478316468505248020159317943160089376852675225819609030355024061791173911786771710060265557044065981157788508603948020294339767800092177476096556803794763299319232155531803425234334659284953288586433737203752009274562903341640890326871344424362012642877488889052111755468624653777225390669067619282051331859305710095851960639786314090374482091327335195605329415525871008742232732343048076722091714607026596372233138300391781233221201070883596279512946617339393259309634340729546998712133442122049519886492684903631526417263032032410904669244188874787455168917245997681912920194411215782886094393398092176871256791358723189580653704955752935190225137067545819784777705721442495066749950382487982050426529806033176447258811046188363038262629842566657966472099501053174572805629098330007609903668171831510928540839834083460013279788455442558161627474694282808905876235610523547006262381176839676181759222810866499224068642041438284099341976165923346948528195899625132305300380689259663354068639046928069659201875115886106912363630082556008705972814942728258077388778576940144262784820255419974438111141356559463888168453648278569105370855132774188742756691404046760763401144322932295696362873912915652079729573230522909188909457018400310213432033811064608898634078947248868070645772386349977588855183828565588010035661755328289224521242547489515600126158608631302643074075501279458112867132284679761286151836047574897464889559205719405376547280259214082052297632850442085432735201614103383558838698054012114153341294060448988566155900747938198169238659934657375743904047489326176697947217309107611083255523910492970712040691367561539941623589298283735406448333962427312763073461431287163296353296300236997751411615944718018186986719265089632299525408765728898218552626625024470120605309761629452749766915878636641697676514570929833843627738674307314065842375503982938026892716278604471039028221972271704716414010881605801248104075608493117982428147288001502881805610497331209707780670631570436879664314522005061237901448125790043379014136017196887117965805193296856338298031883545928128668555873529356502792928482333577473700252110180059579898611280675580573227203342480758140350003924964741844156046523400825148294430332668539629194071745386014964715923449209682854710604724071766638021625254235765271816988508550572740246834534742119783648008591187257812049280495651095470063347014788859910242947822113421450904441293153628877470518375794138086689246775516279774404317832808020921563248738865036252476525421446454563859111771983481338577516282428996636735566676012629509618382394752330228336244132226899192064437429804455090603348086813993703198476241923866411014302067350273687170443588186706275157048107193539316394786862108956240889211306133823731928705983773762616957531448060922172881439719271364253273508955075441260518827895203404647779764816267555167439214383804484874412345137100561913075271232308340121841250701472138368247014238871682451601763818599345859363776887390485591776392563322069154756350312569367925053959175961121540292061613213237600810042800131721875287181828186163731482417327827588983016286008402035704435576198233994439964658074215600624803905842718581424676185682417351199880724254326191760172599152725387434597014369729783878337256373268489119791220295274191243286305329002445973214118479752254913513476705332788813197892506162813322933248102979641762111280859220512133043787496307639011206861134994912116822524997426843285243516204815200051798632262621746504542893768331339620656987705648208625952875170060250676303647430648178306370556516110772732583417251876471225887128747285300391287716240242467387024454089368182297167896112836054131145053728078918463053140089509558073054723364734230403732476528486267001191073607090628604270483463852546184624636949812250865929621004625072667000404321238032819878557976014961382132389251575058405057360942253238278170177488825138187558671088931418543272104986539447776753063245829501048206730242277992951338315042562186640792151207073865118685135796653336429945765604379462489120373721852954383409201198096483184393431155804967856818281859441932472044946706984935888572553917668308776724518084782968751784093146025975041745138231092616011359915528934747967973227950175097608584681378743091099782094145334657112651875976754969730397120028092783174875719764319506940574301959232340025760645292216707379185453370127329470643595858707389611881581159838618052589038252613750795871376993367494076006969070856999304467213459514686368883797921730455367164454810226669618399334207018649045116882719512259480237906781664496655166910194756537350715182316091538797876022280277672314640703363515676214401615836581302347694513062050151088873625419811163514906355201157226612756469874878733932076860675839496349197021935642927842753836558177541430535983926580697054966958355328599837252228462946035747462414525094989086364624918424882847373362572371737197076554247730116923980608588466563945234332926289881667600722358506427058464034400457988346315556212108365140961422257538124202473516993553015678909981528956537030563005052219932804011662370438517690551574391038618635063440695434623519201308342406621028885079028989443451559158973169584179689584838928474311561531169227133421412850350556523621883062220120284934318040885054254168405847161657906729073889488370118689429273685881247389685761122871246513156863538768851588219956516636718816014266682745176977704165643879638258644383033592956632033107742739569998177527658096152559865685841437440127661489796195300357694695963647843978135575475205237956388176016780899305045029847238256243297574269250232473956764806251124150694293967208641386252388727123007916314744210875631012850265553964786692802062605606996452542338253811922359216182726951740461414660895206936061152826189879233374311921278357281657330694051309518869890194278467566892754072922868927108270417544246626379176479141522654417336183056332746332835879833146814548119657127813986587640632874551390940912866121442012571231879239914291274080074512319413770169224063514070508045676607625742373688863748978988723800075707110483514651152224222585249628404454847941643491098500384427207751468872425929971052030367242945191205331713825584344523211096121705048953294353767511581942737668633858813109098913425141821560582567911969784951606695318760590343593759217774446304389606384340216450191922865247494447056384715204444386482067460812150488922624165281898033130435277421334129704804412071617403690737113942535118109083026891643867018399993897218247017704278152559284242558551323746402106424697760983646287066464540418197681939903786901661340602186644576496327424693383991853421705324004966663490673974636776212020780292310648669629888742286196214332700981599794700581904958420172489575268478847799604127169721787195200081081165124364054181582721781359706839787701236070524557687424252536354409356010883537815773416353658113054446437635878831684807548064979798342998383952581148973706211408208845841469132787399100538481940779575051836329460277906770788736456210349282661593518872585376042211808305354639701397928041314917884933599636284711598035087846147184240850327676491174928889980776754241104307425801209303959537174072907994412895279903918068139492501004854112164818923963544406969617213310323718801103067452621344717716151678185733939683916644855548880747688265479599349440691058858362851356987711162014454499614854006366414287081931305383493623344561225815534493411231073483219434624977510530089521646185910310740058295153341856748593012728030649427102920788763092391451692540300387059280034344997103720478985090850555412181408801709392235397530196697856380855405000362195169946867358014715260978106198444757710464772347275544363251406717200558466465285076280293625809087049523322599207540520976216974987118642537009052456709590993161158666134101562701266509328612284409030552344742493967231573561549414644694289561641516960293209933934145476714367554250225890628547380112002362498635172223608857742094888881898469402818516982716487188556020706902294216823105736885128516737554454634108248789092604705770656690061734478493349695794134495341693830850145327616050694829624845408310570658109118858949125740066137971248388799199221553144989560507458839210105773265870183886665330808836738489819148839625878916222300064337970192893731543459286663597557546825482415193657424109254007254366991177369807036552741366438518962890394226057554576309696208454155078993787030424267240809891437616768926754192731705743336017548466785906423331716192483929445536029108358363837042737225482439933976792354514096336836247921455192000532345266767728843481895494270578011882673154907393115858173146659915678615916942543105207506868324384067356234851466068526477862872661140205184343638077395136040237835556792331781523517448039222783414541583429479345168918326045852051392778141857525952420435058279175404172464218977076061850895408598340540382882144460908697586390455009929806664112053718080698516394869221802375121509817703361641595087413431590117891461403582035812186379451069596536973778241648411176829144708061872508214085415832768621801974787874335646669839184895005901706208136604367206102295502911442901123096712768482515411459960287621586191255492109062763218025792350337443797994217769411890610381791015411410530570153256694353976209789520098165784211923958675230265314648307576471548037453226603197777785712772054560294420211379454286577165849039038333677850706756787005702323466703206187634478860455440429508936902761363325327045126010434157213779171441716047944381452144199909655534005779146556445068574244300791560359052062396455833813651749316760216805855993041319071581442518938410696246716903195081893430756033670874250591669638296068393982763779901092016442758443114316460266124411024414624607415930851360501772133202602494941410032068750408806592329174163072960350625271269982182304593470449798199166625246708263464808581058182305195336449749857832769795557892139213688049404273575688574130705884328482038670592888197057014318118552013602127279090060829153890875864445264925393959234918496706430224769462569888826476487761078190776294720789769903893032816489575604005306127017268757572225496105438787064943745628027122157061724059474032767152934744835814085931988717047013458719508947017403506394936629225980321182496479181848263925647463737352981260199731522688524266475514913941170511109966991266468449168354415143962029672531502120797407083980748548052038762565442349141876095543668613468195674578665250183164634685484692321680786959437141394937146960708510357526177387490820392309087611217091274428973664931117832829819452590255628463840939679423777555248644587917109975735124758882001757616154953912745576347842279416776192348529169533430619887692953783447396480166435163142994288576939514775750930695781169686891471909315579781201531930459137313603894785337335354796797921599919717536424517163689097436963323092717804562373785949656006061364374897318983122634583021291239767875261100445813319998643467372434415731423365198260764228188016148825431049635395336783860825974058228442248818410254290721802043497095101558944796945588003938176345161744239818613425798073991945798113523399813422963422865852440439152133896275827522425172588596552007308038112393492573642264131090203993202717074066002229903661764520651277760565913738577014881309863573071544984869290206815170878779165688726400267400439680644299875962379625450298767069758400311783520043631288213866902450473792278143011460989552369579077037007926003916489047986909490475599081598099136964791261647962782056956070793675814610532494671869501883495490911729630055727091553589422918235925565304484835772883119661321175462228945047338517210732457062393905691226544132833722287888305402104176869891583997849794923377990716627814358312218592217759545651533237619550372639686272169851113886237100728415183307796253216595138301441894350261610842071098735636470681359060307154885952746173708159683410261518761205541552628888503459456433318960789825806343580851207036938598383850399999360250903630313847856939434055680139672211662708331589516923568186227105235787007518498336197729713968720204819513131238623337952859288247330570869178350120878389585242417524489834505788560417291916551692163268443569703241928027275670063991199374246156113947461585806670289803640577063522313237411326260221391060335353442175291623888253374419864516759102904518663181373967571992463243028092289347395583828182449043942163290411955626152342334510337046365139037700888294001581002160326046256238021736122796210062338524739473963937323335887678637392518859922967611498285026831292918216412082712951484943895783534237329278551885203032845364916182115723177095009349095003239435105677329292766583121650321933535123995185763622552683245236084533059330107753424610708402441812849424444137051228131319206580708140102225582709977499527629847475133314588060762289322958399713422614525397567539012318565943953694559840596166435275899559802687776504989904953329718784138927963815582327570867540282601845957508142702709026188524426213352135446054991887867376983427365857655693423995643573486998975474600901875551738142757446464726826807007451779180696853100232779189838317613193479519177797201238604601798170434016581242396684070449774234355698105176944609034555262233169259318899034459313009430398367054571894072845388210306612636797749754587492532965258164143981772179605029748367347106662356513494528659280033126762361652598316177801907673678435472570871631439924404024248246495434904870938772336129772977854296542149701852751620609893288026246755722861475921318962429333557758728238988394380823704810879437162732621079302003120645710416032912177396917343359378604320949481474865552318260404231887533403378009562752474307108405028871591846489002484631684936053744333720091757120376441297674226142458440855303864413237629126162698093060024912806332882835901476340244554248831717004739542565836348487933556382657799213576706237040270625733262527153705705330389061301016324325027127031663995204278971624862674151896228563810277389878010060615400623773923337168045783362128024368051255958369795482874343210461074220902500410062415204881032460527450997873589433174178351675203504832805054078780286338560194270268203217524938886730922080591292309000713015859339729767188060648894039465109805020781016819578190431067259203106884122587536125813640651999464260979893085224922751337636106476708938884044850116804715194000503518897164878040680075569179247028907700346693978701215190318107297058870158350147836731214019479083468568720956072399861124238234734536576601327707233033943676914264911420439918083143553271594188072615494830044870121991759374120566073182494360249641480159888737666174114762476951386063989967464335457635695472970910680961412889253756940828155955010860933408148726453475856049682958053450533493630773013030190978682463015220909570982939473516776261054505466649080100259466037078059182741905221912055835583094602774205935307478141522490731472184436271205398350937979627627976703494339989243935560264152179455978100119464825150065957572074287112382035521704155866209289549571196511907115532494054390679976871793009863675447136295484299144763260895502704110932959736758607779665260425276503167118421209307930204818494852812098818682224747538022773285808900213510112228056664343368982531075680187448672179407244036595482020846535466238453568085614113734064510922513429345863671452955576956148798522274303782778800069685136805367333544878153704604785702244555362220805593458327832878825380791719984776320855065066770899646238200851166336577637546990792474210625299343836759126342005534301297272879667170868143880679368318469513165706852273557799853567936129866775822491427508705452854211222277512996216982293566502783798821740548537983347246905363785244761435203601496322358940956131095587337150405867421076775428242461408446449028881284591227006468079995674240683748882956044669671765933580546973430024851481690791806619591269014500615018399418805931802247019037755348830685952754014079842411869489833034165694571208392883501431208849866676180186791707488361543285390415157980473136320512233458502915038674748935046121200209071517690826821155970626676078583636810804827285524445714710843606907026782429853083905478095757155548417260338385381482634782668854887832487398811658265636928750743546672648882334536010804050787910964367712661557815192124942981453971978053775226857350036640043580004180208410787141206305050194966801188083730467122583778669546703946180746076722806472867629712579349480205658078579811338595935871698289861566914750547841922472576336184293845850856498354631492459265590590916042219149228741634943916446681252244558817471425750220550273895133699740032293845175953909360933832359358672648303560618060403045741624766141434512618345713605568416812420711766014797404373748453057977721309538596044835683124096299488039292768546233586450746373983418994662480980882181874696019065632091993737226634442001806471825310758580411459470997490038300573386921372028659755556968950207152910000125848815905842402406070345634726809044584551660944587435446501569139097733655821251702241990314404095373374585557349282135587917970212680660173115405170190931033593517122274372223600596537865050132556888397946757043076387994875723062021306948577120395951242311284079796749636905464526021171416443837057451810035993992503203837915423527792385915993086722010051226168885087404899143805387813664803040780671138531034367233616713338489455606937581642841204878802548666402321330746135962720389681727724762448173892223328955428977393073063157496109799431946918746404308307183612485988694100241161421280032302823601555228414497420702695095363250157367968336936325607397769755854518167475351672371907207783922992371927527295290795692439684490038086048370197133749481762922469879575821209495763059242232970045248331232313436351249816526621864848875445013030540644055067379467867134735309472392957577178062099634379179940040545325251549399920012305627857110647202755604589604194005864515121383266664781230351143590752722062259114684034514065132475052018453484691279471485178652896041415633430424773792500114482522717079029528917101872718933224851250547366704793115640326593561040962770974561447910888736776042015161597988020545760387082075184048785858268884529013197897772378638414936009494662989253813001956770825058656297467984995971922313075980665946619174402543301843340983530563884216410251518050130160178623219180534021945275778574890418360230242299201693493011565884238337289417574501790786895019954407962274517256998177285702013001082890821785712997052844974213018911224079059736623778104427566456763460541771788135423147998464099821943282384558145631614633169522740182591053786033450851415609581354007265644048372115802455604610030003521038700114866427907090826366241178106705066156713846136263720137953639259231217304888650188238384397395488543195856789468228573906939446680547695570940124997886723196908079346115019423739697339610896327422477086320645716450276714721889732393116841699603764552139595534589296602184471401551357557135661483770351226551282957815504114567332209155624316092774824618401531294788096609245602082338181351439159474413591058313911666154800268659253765693952452260602415138259286481320744851821266434471198133339237363805193292612422599080548069177934646811506579753960173492015748576897597504043083987039289899181663831755400477785935441242244512470669009436319818346709050570710970417275870839233695423338233690413248110727096923135413442418714087499443513985060143043253306260085571308086307721831575106845384348669291378247251237147967454963200661907110259068966012320873957419043210006445843778276869013453709187539456779503825054370387029242412318723760964004274732306837159749343838743816313958821936593896292597739611003145778537055718099170589009637230259642280458749673212768002653771255821598041684386769402531786448406846247324795861479425800439253433655297032937219912856932643177516243010626297907909122379982884023022822809817966616015965637599584755881321303742991917659217693120397340364833270123167379955079456219429990606252591336749193385982800343644544194826456257813559303002494582443107005670868995228264686761098857954416599718389421095268416163476807279284757765298663621003989635344170381840196597191034655719358579363343511741474828300781697485231775043087876104692641435307765173874453555802986556318534497493465265125571036036218827766482717090183699730124696076425319578988980302938798039422363737250846052667135281941055592938325104166916549536500330003752304703178796782645980219365828007970006405983705861963037800287761505763257364861259446567911582109718887310630475336438158930746576747928486124921922059850119902978107477941845259699311412070368748854569008903547726046201695000768236761399134382412402406138809498617278895216956396043506608693932090968004138419428112413613890964159880340247410202876789462147922463336815368558472085456763797317561737360153790974060947927605962105585660436612021414078317516278380133766520960226936481925903264290095999976810176472221071084176947424231442475337299409837070519188167769092766137242287753488504637487568866459168294922058769486686356194047750961395310514023260626358375143419735946914270914577809310733245759968299600185246657031531779475317184981027607524240490738161085604994214845292620654671036424391009259370567703792992213926200433093014005057900021420753276469940006914834199009563731314708627611444635921378222493601717800744433921365762551217803045137084071431001242511149035833682879641389817908509139286785992891672200008554507394890035087348581845210163818675534043443265685204672265712894544911590091335415438419953816761453491120972336510680979656962058814586613321748436786133306941429583976340499127910439335091192947447909245681756669009199815379958835072741145475169664323370589085608428763269130118337263731365927271585404000092060412839942185669789039556691120877532971878543526786385582784637786368665557832981717214371566830970622530391888406942069334555162182187174530106036811148831565986372946113782379449459159370927100971399024552666410658359236721808741063091178991434477533229987619445917045831988749331979038078919441563593090103424052961710022156726920835769519592304705416788897497724057436346483022657888157383702390658488863474514746785197014967366507431733375117427556586848892945654903428801981544972951984973227629235950514764163835127356591617297688870382329086704269808630507243728933083608487928885663958589335597816164765923307496126149298521663914689889334170430064194537708804826903267944758809823899449671701062815763352415385697189247368503000195236601623461011341610340503721976037487438684164685407585293729468218963963982347507527455500273592422909137249427209508983871580776316090712214503203170727429806475907442288097608901462556869423190551685212275512149971024314940391219209784180955551662096534026605434580491692414421567258790551023493060486148323246657287599493749546420782410265865201290395106142030431819874632822051902718925066702353467421025395535130770541694266857598082720175124918103563474518255032976595961512020921572158765800952044243763465405009844957668851541582109457933344535752902155351047957754021739386310275591029186222371954649883594436587733253347157370348207985491793557510562626969803871498038216573014453100722758893488247172079862494508717927046664694923815088255462641871938158597730848374126829985329582997909286846393207931915546620865371204318105626785036962782692264513125380198017381428967737895820710188197444798708761914285217552327666785447986462085181611105687540508573816180178878172816247674688445567388439433356010044187165537770557288159942098992117984429392040533524712033433628257541569895053683484340059095137245573046918550921815251834965154180743524665163826316415489415030069838492753389807934424388457077767862084880897378611035192972456555566928031208824314657859844473095892513304031436210776730623717798619985062435029821646457968339492764836078177186203508109636381748034950586971382555755962478184886641288483523843799553775107441457457183646186689177142401009702076044569611062020783406294159272870896667336361316594570668610397405984246896033385850703711033729765055968256054091704032819721318166621133982855584584340554780713443587547693094588361013055928558825092522114073964580244348294678484388156012505835881935812573266445699588556247999750631251716485961542545082540391062737097863635041892321354536894444212614197173938299422788514514490451759761219357166160634787068344635269380195405659424215453764360167148186323048541683802206624588648804540998707956663100978420345921006705013531610907366314977598159759967574983717517611905639689883140237439374269343724564506861763702869845752733153043041028302276795973897505274342035955336927128690659484092158242536805214315104021631091408227475135479826844971169647215970083319755983033120589708662621264678573974122919915107071646154098082954343331411432278662492996680736812794933056769990077285315612980499930194027911961381729937685701454446981867743151506823960485855936378696307266712348551296535843320762786499326222102899982282839636067940771336159081578653663124964839167318180099838034989551207813883059259754716601610753815029213323962782755774241048014419982410183292597129288127588525388723271347875723406567177037338166423517911490198590278851047814906206988875964246964069376193411690173084781911814479074316802045953701546816844768050122561744994231109692910968194878089166751054119913895157671683197553576887293810271622804430274156609714244714101892726824710640155807657324128590860496398235373163669220567889191071724343006404611465722895249401785538008046019855428342275700741648989121984013582213154559745660477279800021885976372608805782914534622982424426907413001145347619505390359211353979528821723833323175075894613141447060596954641717077959636079205482719120528825343226773497237831013373142967860402757894536165564092540454124934562298714369799860498523611554906966724404317324560990886036366303815331117526966215057293806778784386852751489957251902237959077049520149751058401207836728441621839517866322324953734505431546040923558460468459700153043960294992541468421185017021904757237893016183150825515720364587726551387088056658064987217300080331362299885802424643592786184826218727368850280188437547820728057089312445249688586365369955587485315479194673731796005625214481060395568401888134703834815230043660103887135475466307240500749823423403691634138669859237554742511781767525333993118897212018039056738594026007446041600220347778275527604020083725775910849901737834607195808078773254017551669083206442847695066724899440417551182908209425775568202365331099848024528110619955835316732715061599324369433482643635001612349727920757280446192455123214096624294930844522753834270596340012542124288345178055669955739327105589893777172310867743485749432801433268398511300994360726225293732809522852899133132916133225182867518228356217450717126897952086756728535430522138594144432708010333064549949535821593658942073496095909964705119569505410973453870979939082420865417130974926054876655553825285195984280266850299345780144673363452466609457296790997177952723811774992860319590416159690321981785404000195732124601300618068200889459367585297489534139319454947762401305953604889639184070132050159611346290598997399564055567748102841505614464592535254874710656001001064574591968415235814021310373819599764411046803455372028712709765024001178190177679617055941846611720462117044293376064820496362167024958462515752919432029432940973791807147960218650523919363464366346680459909982906734246052050972538673252373203446714487757609173073949085815158788952724161137914302094346297059353367796856723575599803036911411750733991771416765802580670048593503850765802073147316629195491141781118667373164508409349887696361125422814864536416940417953119049209349331339455576970912319210908788652964677294170812925277100896141085876122588036422499497419955385430454871274319688674296452649414700830738833479211693441192881444170720119338056835197269895420206017358885928301023572840357923906797077110736967376829834842900484708361143052530595913791563279302067325021426007504247821311569686705973956298231263250888113187082880105153223200568893051504473596333989359587214047479568464531884521420888551056962019074581720914938829848137033222524928460696132515072483506726159353466692774680513715153853120530003321957885235206451545198205887857979729376493515441240955494372753737952019547511121039169861818705081230738902795615691843152728692739771371998915333195781102132548426364759338099862287558256027140252871432556474639913100529390317362754340091229506359961627577176658321902327393858338870718514289538935353794228783633845979536688881645448754643636817516098670199128912575815087052043591237668972359312198055235670190606653083040795867120911660165819695605788187046011218672133494490097319889994999860165617459991140970732599177246898837335462820787406144447687165311101288699487300434091273998117922275505962217225432634587743091783732406800829000025854575422331175609985626144867681162954790943334744165870381898110913028134500592429555348810082603660337316519576201241613095227534295178775997331617048421184143622669848903186900330711153511739082156187034372451683475248085341641814968605046826689538410194462973046303358818181078605483574290496005189274393191457367964349948991985939753249392464015940469600964284870214513901431242398740251063999061573110848890985553640480109101150875611855823945983469427124158060794621164681387141461209369485558736323094815089186449501138348322843548472712234342990629044645622768322683687412970354844357272320827912788096868980326479468551598035492902197313727682380507426107755656420123265367587188626621890050857481781860819879053211118765145859448119962533571529817281277602789160066602394262852091066430550928624504633859925850825763231475892783155406286103817230181862616457558760610364294883531652197488260796875556252799649573726774364121616709145927480769539856464552624648621418593456567769284297578464994892945600598012135792330520278401348402667515663033732494951306210858487880800111879224422792393263381265324624785652978137139534153303246277385129493073045481348580613046912040982192607887321473569167047758534575514699290877479559066726957061646421846870334349266926660836687102740448137386586643244836230921124542769664498460919560065858795130666519674459020240249530253048586448764918644192335649116452231379342030988811785371742967201678166483695578795540948444243543252439303365620310249648358462874624462166149980139466090671606176624147116529411457608077199876512489321241567749728965670480317669401696906635227764798707380391987919454368344139989254902097761785004015444154738221039780792945338736737847240477659555944927461328148446256448923386485215781620053303120061274946750457546341280831035059114599099843930452910575452023104913858658605327044080307937772898899634205614247543464372202162445285642610665901977434221999098507432200138548616098133166340940805165260883896328208655564225090732739258923925942948504891091010665211988049820286907711005682831060731158596694833812835655408661376144770472402639702906124409564558056411575418324035364516680463659214658048478077854806453904723920276752538902134506923037934143104077112169981925291720254294662419016935488956385882206003322257487946117214593119356076015397507686626800956158073711445283109891350232624817104290285124577496226576555098204786076385080227562002873182243234202156411620697925716273077218087057711302228789259850299886834752452797641422865590835762449185958968742722240396364276484302450890019207268237787753096297146109067972242151904313374297027801514102789726797427214488056565012363804494987779203553379373958297113700757446885579400288758147761825160785839040636104980684095643354672933514982115346773995748890958808302142098327441817970916534638400663752087667540474007413892194349774345604655248877407403100999872779551156084431122422141188688489157453003877036556544352974657423336382223595477475811640951037403838210092507196451207858572954705962064978812042881378769608202880142141568643198743867521245064613084787306427811731145220709590100690223964247167256555340363470041471265337752618760883413972746437931453364918138368873952761020168684477267120238641181321531678495557273485609782054010076473539716601646109613085870104105690589714930131010214961774071333468733399258367610545715127154421065971698412434477499023105614108010227402489180851349055923340902749644553775102913182539511285628927527418945674521573394389019928392067870032029244032373020904127388259446153724894225477165102128499249329547470340687001097951399529730559874367381941405565288200571462876032051748470747625780728468470010194541207292537739732049722954594878186416741667272258589990408062735219081167755044641653592516618999754526088170778494673305789418973260006748184402276922743610190298325874604965322929274600642668995256254556216840596802716661378674054613785129568817499063309419998257470466555392717760044135499891608048450774495132608226377003835742242954908645195280041927776545184454266270589620770458134291623978431994046374441701730095410279115486836662893286325635758738569943297516381859791100911799130565358771531313605587871883232561153545832808970482871901743228483531165231197767214281176482076288621351476591275828556803170541989557247937746870247221155721348573299406647547923361790392407508546859483832889633945593973441311630922541713439110004561617887988485935770944775085925496825202057004903155535513314965358325528292882363759738120199748901949468979733795280043027399107752543196510871247787111432510322817773307614944155578157231101878464187441814221820618605253858435915324979177092981768201591014274843790641413319233561919766009483333418935664521635931049734885668063394943253683956808967831808246113338126803783668251430813901981254448619840524133530234822073150023954323501566503872597415923553180906873570894949050827215771330760437213133482841976153551386813040211034041813692947750536113588908004240447388995958596356198213062832200219864707579580768181683629244429393785865959522823020062206843442862374915357976542544460970809573794941681529418929492355345412496674558202753676815822698440941405124971588909288959092974189711432684557837777746894297531993483727396544288181420556905852237547610428467554785418201691392477280343383222997800863428924411334075311827510306397643950278954118735390143231602462492230235813512604531175720767529544389048765806956737667584433538990139691766654834520097096131578361901893627982227786874216346988522926197717316352257430561807653780883588715999274804358209304210125857051865451312464417845144628119340848893349883418306186147618079337080484129138517481802841279194654875135979151265368858292174485130021079424152666355417791235735515271771722495576031839611105408805101104885007623025689103536133755291019836473895141067043000560227782722175141438899266884116898621512930191153753613995451911487587107682420235968996187128721039524994645065903440458131803871040899405424238649340781639081341481443161340678798474478431264741386768768330151423997030056572976718812353484492043187430398307944446152974042442292269731239377995933121971427338211140666673052197457653054341251038736185751664188018550787417677266595590685455819527223260067224233130973189495479002398397920319533272040047539927759726601038528683822870316079944503825232554767846300072136023669675664863712262988332454000856792139643090799179165011157237536320983329704849212232576366228568335598383294778613775452099479923060294030070115823606814833994962884108116525423440773147655969198296537624263709859110072661228558697887710100994525474812905650558659621386455265721976650135077416912522523959731627311511436472758744507191727767416378761055297800367137539507647961042220777493077408818931587375322777463286911575484099850767812759998955987670965376015071037100290867059852614096693327113169762323945739866638049556080966835169967595152918454789275308971108635964570956927755318314055299462623949664953203880373920916500921792334851486766457838418093461478438478608034533579439354316100190968029918485067606547903185536461657231958234958195023495452528815198769085216355850170107144652765336265685257229323839190276844293308409007260602759757838688797099359935156656992751348096497137857944787033004524026099560729467847811356078734537963718100368125323982514016025047340906181759817809580942731794859668553940793732636085210936728666601715624298823283879124389424334568397900516815216867934321564291442173203636287474350218006681487239456836431697220362612728593726235153478910141234434764309404012280541629025284261862700800270458984876065284202668755769498647967710227369345566582004897006293714088651136809345612662098578525817314986277182008511647599935787751979490242322947797203328626083960682957657832213401678679230730623687065445099073167052489483428200668222703752996750940490737540734611140555654088685470183589968686809276532683232596257053075301792526290077730786891273889820647442776293055595347731235761162196725316531879924543846560381645937216320909511177994571413882891994993063168602524698686025350124510118549554786994573577262289675191449586995177853416573699307303008227920809625102683668966619399462323406076763803457603480959886059266400895155106355380418013105171103403115527432944372622938770230041054332399691727080693487785401035103822068681237620284278391206492835948873820518052850616863405900113561192274088993575955842540860700460813466587803722822330046805709501827293464725715496840526205675474118718414900360044703549476609355411027416005979691163601918013629078937728112211677828290059266387022678151212751608895391833561626972785639331087977233593229436770605677401230189501828805160421607263519887573107061528180707213663750522561352879185045793117013673234391810957926771482415455916184470021462468791514048995545255614964605943496057529932010616310124574007325201132870332604652815272986107430813217575628575101158862625720961328071424323784449619266986383372019053110366792384951816641141627437488280241405337267729519354483784881910833593111159212667158894961499237771328016389558526510213915847527926855695940753449117683173027971402620978866800397783948847394934764326743164473275984840465996488293285155220091107272405396457724688419646880206181300863903633258817651324491146045984143345220127527977363398258299076388510057155430107937339395010510068159580892273199389934954916682676523078785132860729452593533037919882437207430281426560252174745760411261044690133732938736090620353337159798563702221371218379259834618766447627956936984700607775907263140940942180213109270850350514401224755262020584737902696182006946277723217618857531642269385373256288980275731114531878265365812004000245074810916986823083146989885005438724098983638731133849241979758395352241899634625943618824132110672600553990099162804242479816371780693026334304927550636086900739300746378617182249326935998237000175555795029594228877738679240415668164574939277165627937224509552657977838117892660747075583758669546970978144458465288890803233136727093833085150804601180090765842226350533725157516985966530091880350434012211513930097619565302560173972253744016938009514382921523507882773078235611656183917195406919773961801923320049588952300011218110168830960244119555823468240252892128903035378440489928078221195602175312138322979460802959561826285405255599283339132723025537641365248388227737359824165739109022152190868617430013358807825114691006130767252275289668606669736976808327401709967477941847806765932458333393407272244333827908359431006105478533375133227950498291004111812806226059544899518422848423083169552747742573179995468062345865142055391480065929329500460594558770886741366778608932364517296434584050820417233800167093426906124405943422965288203266511769243864909706175834735883319831104247427445869102228198860734859753509466751778225327564440445745001772989988562688889426373815625982496905927970314555281272665821035065260972554191015432726558313980842035470647578660900617350995917518329868571228192597824294515704348463406615853963442156450803219536649897044688534903365950331166813767188697852521566490433933382877867198183573795460115613181893036862847586220333622419146262192522311933023470393932064698107902161889351144297428366179044602643003211512327682589060415643525027095383706090143622183925705854861198665329383635800384483489278695410324553830903103553581208509340080841293424692644745042331035690233804750043315877866926276793220934704340988429710048091553114699143509554392601451857140083387121455085847158193798032701043146896944127174464150869996899398970995822707705128217410666452920540255776954785382141950670166007134427780743218099178680981971518790828919712644483715999842321256459007884992198082693235574861820230297235904630359561000637982173671054748065250912467388290380634793451660734548090194409240690981649546521420196748205174575204257803950560221226955110395239457082011083616070929499707068827073328772959834770867768758400854268032699440702628837792137432392931826781195947348599952805001586779491197182653303219108356464615837412158532487054748768400005062967443682248610629613416650348452894843242395787308440970433052686773923766694301416438508773214442147467457093229836387849985614583297655813568303188949154377973330398215679652487187958170465346905930465359451093331109785074814951406698283028632202889317612078322048099862442074357621704011271794253925870248916911758040016753359195922399841777667200141763751922039452864102000273405902449061495782516986579991201853048765355920158748468638250147533346747829450817205090999422151365929101749599762810285331066534530875396473912924130205476203161471474585988297500277769797767482218557562810391630257908686072207561183865102229705783138687850900881248629302087342014760188573772133947084042905049121272544091364114257958313582414564097511399517903609458270385682458375778291246775640749621592984640575202104658230303432907000757432852750666914090144755340849973571908729006384978466197742316576067463018177820881465215498052162183497236351294834615987664803881789510623213415301506732127948151576324054235849720047474710208156478680240553551774723664981954042015917879542372905119131834572160434691069997641190691745502305960529703478320566272066444772869815767296719537866435760570072479927694185324744140650161520384030197754945390185349229262702271778439191304862557688396625220319792491163032920733091266148019337196960905198056034703401633352517347347324632876426342005579216467666344798335135378802957298569403163840881162540893900841164845364092704952235215434846534364181092109135891234055981094454772912776094740373207623529385726282254986236044039851143491807555038260930924340806698358132082962266283911814934041664793403899188608007506035641360724327733156827079352385189183990643686236875668867928833157458265329638559234662262129719017698011479568296106713331465005209625526854851467841109015839772140068207176637319597700684369402115272962815804744137360617763598229009352234614057503694740202873008633566228564840110586622963048051704528769674795834191506291405130796096737802719132377321884842368659648918550838472374529898130353561111408371006271384441035789872989920666454343188654651308111659581338128370281617598450577342880574297091944498097897861107227176693195626005017298324145720166322739011692461873847716258409777145652418227087017354933985626997054215140759583984124004428017399681934176988350559099023974499034922953754900997387095642459414156925580638387433400963345746266409720003495027487222727440764271616014794716844156615204479215616737722963400967036694313231613319873296815916233213238713587419709994649893193113966839808390195608471729676743293423947578482760113094749527282638201457806838384681956909218895936909893714913419046427368058987229100063924358236331641490827663698841680310080032067042590258458127793245304282132451431087602730560203540663168177223332859388860489425252322978701773933868748772304614544906766039336892225506697416764299140018902480731587197862346803763150604003602759915982469895795571787892161533277262246940870233227001675311989845183624938021329595557416312327380951200122995554816788883854028316252985137737751907192307649385155720845216653011771475921964500179149154294429324034532642835143041835378667897283865365666890410749222621132511236150440114980002778561020097681214227400907145396149024531595929325957960086025248455674392694825165905969159944192906491937607709463753722360383171640082984083320802325861832215479867104793190792910713221506535907910594889919205211905283434683674940511995658999511560559012773795280657633895155388530039218325483087243266656691756424936963124590799397265794763055678880090948750874734608805794371365971799266564511866158008789476514792178608899421202115012820443184997716380218396512385902133499862762364529371087740595996930262748681359650903040598919398853598345841975004228988428331838868915035260309796353919608391588957828494913730648103041009238349137166504283139215664674054915315773255360573384144570031316567902033412698508996461116974334260961602195048915629079063840487250639965495290806558773581910810675590173642196394487332974783176066403810844904253036395123005627502773740962145188445974681556419282035500522732031289880630041476245036808460083779697175096888341124472507818294011428488653822854743153704757714413321457628522778884034873859516556120696847556375350663682206282115560851120859072356845871429021229303492489450502755540171733517133585867596725772843287258957651694619234083994791308870055641591278036066294537694735848762962570352912597296321064670910542549551011664134898316503608528523175986379208132440341457262543177290535787638310253455038547717589327396870174791422131108569235442296792516379009089120211599003859562801986176832870442590856868673206794724647166388055238457436532284209098762854281812120753759624514432752372575548312042226269882938175238427377664230810045248386826562928098639776433523833190205560537069056673149554865474175232709015115805578311964177715786019934893705237819078249057885363032606272262551004896486318041639591456267965348799708452798476845950968064367214839832811708091904025269077599759796722344604246188298765960714422748544093586663764439592410122935389466310765695105321873872747886592227291438722061604339271954860257028818582174229841675782550960586989226829133874255024998204895089478641449109402632519253408721362720031980785223744969968025079001493912275588849602771659636383197838338277073545094804142063568244747361278093512404540123949460610313412752328126725908942202686681611358131881249725511133921089657062331202538587356337927794351506778870811829861920828179877688656624683798968460395184684395738012270043751948858196607793583826522958722316493918643508072445087402517629927024216460940498016719777465474609264414853573035009857363332249731403265196807714431322355681801858375582745869372276268820405381823129849243835070332927844298607278737474239339229015838472970768278926096106184442955659496863863841776187307368533560929712858829737266986647288311134208288126426344218731371967908183885448845996169192722120449066437676154512203563863425509878882146996192007539856487158932808554614982749372346059678467575516965679607989828429183847490559717262676102525113434993057355429641489736768307506239374469446706659017007613566457836837008910755497502124234181071470312172481578335029429030764638708833055706934214373507216312469350958383727383203261515847566484373659070764138741190704066896461389548136718475287104694183391377237020461849782271245967256646245317744901229014790130241157532454525385151215954209195393052544199719468834054602420437131090328814256543533259210423207156946830116668935618435962473168695981087808174802531559606172036925041001911262142794276283815403239161316739226989117622291813156860848056167704292348788060709197939220874142134370320460804734067882896898455579291359065472774685153873819367271013503664546172499887975277842545615186081938839889293682254271868325191669911188965083044173685195407382326771155257967546010325989930730127797564721909011930827825410168264817814187132898684773704111673104249067311336113588715913398488484857324116059963268831773942094877570302251063664753128957468999383248290641298079614747676159607960527258877207307030309782807094202576591910683425576619312098241976193104050673726229156152179022517211436334759551041310341240409351960948832193337587487910715819285294937681126550283831263417212940877358223503728066373290338377963329242448607748633738533162450971159763349400137428461631263839675057164654298832795916169572867968361723134809844321956050198722789405986511666785963241183498507817908674787997213632669395717292218395793484759193363428612854914309457381066173768087472248285728906673775409753877934415670292878741973879711211934217463399839056908287548697800651480716665085913198811719231387537102296713636935934937958629047893033565084037621377208280599535702309850709167875373074676913434899528111463932379774322891895982767952374198028706427374296271608449069401048057449154081742892640708254060837908902073523515672999277173874480973708093014756341672122580942533116218518136490909988729412388526017010323691391241582680005048795247596783233051804152463836894581456899152161670942596026563975595435851581635020601612246293852327428656000552706957562962051849453001814968101049953405620026024992973402370719552422703021956431670794832425785562441751378214796674236279158286799774287361466593214752768473960393870325917947657036058914786807775903713508713142776084640378666230786108346519683229502230707287723971849621557608240144414124427786384972080756961341305322655518433894735231364259930978018314776104324482413379917418688893753532201251099238150565715996473191292961455641379735379231714190816311135647175257236384799874556594786219919485088200747738611634313578661020639093802429559527775402729378632187657348923984731311244345980582344019459062149758779760079935155466550943564262056193394271831875825050646140982208048928897368549444493906544728635527066184109246943833406728388374698230543515828594754322792563223564777772283194505490516622679111973643304106590797798863976187594953457697061042457591909043936013319586868006177914310841537154310485744065734187365963552644592167860386641798108156329490877032741940278660553644723961486155183045204677105349501879312592954154660274361692449439531324430607291575599057410316221640380742766091019071240885631260822301279024598067168583774319857862416464093952058730562679848082997981956984546522685553327715714125217227223466268667537982478190660496749024177453807636853816760273950136029375598785404909364540189299839683081464224932192651260495406159917099138336008144326733766639019380771643669513679217075144524191917708141831793017005916558848344594372460865032424983883090165607314628974514628661520743964504022332581791086503220989314588339394920892423040628278047454658493962097508485041301484598354951872607901354315919120602747210643073660830662000716741688552296380400857491540848635197248685024805081549670500282478530560776562315591689675253435382331574444205768947381188196423595898167275946236286168942503711428196518414274646599548890240608133134984507830971994848643133790278859393857066764980875262074737901242746719796534834658317158634196573909109683899977278936086204507915976964535136966320022760193034299406266898900930763099071015467052281099298868283652148087526763796776570402196894842865315250295415607580415474181359516900085774085234011096435793722201857182720240815109480352786297213018317115545050543915320674386985034994410448545364370336359209183811236115358259283087078064359750848407720640591849652897265525220535290489875802409070397122300888210995454336926183762720609590453573577617511162837413084945131189322353408242725390012603194333302367763904325052614998151750260604121128580103324221035523587339676688034270820527691766322154444532708200203002919155550240704051369745731020869163413086992128253683189078137467464506162792462114940689479685504485944257222534319339589949713650565227165701734472575029736546241149164328984507604901369298171926666467666052543500180068942938171316605004045275558167278065599807572130018452243930914692311073024684815469879353364670866192516661486988465602606825188389203626079175160207843017581512652777842442831913754305158796254403948594091375115219516059388166014534438700916137915746318833725746381999340268865736078905812621211124319499379133218180389783185565880232512009264810933420227376200465542648992762878095230458563498915611111639775981959348848569452144447856139260900749684950966583686463347296830220409730381176811544136390044837769222545822042707018659252702913792076914795818020636250005982573594610712986983170695477722077360214562216197695819650828190156347201387187764281515750159171970619708449633011452938515976241013470582723341835136722010386464794082496451326631184757428676326008487556628670801946230608491996655649172711601125847922716272379793999772053864575378762755193882764313905673283452606958155724385537062643178062081023168419148334344553419106214994223699851456271139076875934630768830942470827003994192546811541632083894715903908268848077275702120832363935755331371991180059300986126409958381143336542154652760012960712612913595770890228933468533583386197603413449118372563312016171179519021814602786474631248454521684808557659295287000099204658531707556228750089358331438520345341923435803525649262180137010715783735683743340538893044064317499687384754713052121365094959491201052112772242468900474275437121805561617780294218498491971570663438157434214259003157455033742108997895538284611263988242574956123605615799209995541304069075314168512816541827261056712015357682395250252683603188287731157892379546018131164536489294190492663521833585600298318876200298503342097434504671282357117985187529134680549656389902276014965730924251894677664364143430524992931911545614292812029988254106258276652985750478032663755455318365587010844999130423494173177332417547962716531878224982996527599465552598719396174548737467075832607250548865454732065224588619664790799604031068975061312889859996893211312179645026287475730486982601265815311277770117878213204034029286115648554150746282330963461159890305207968264259356274728003683404069726745005373281460237527934146603140666193937433431809840755908419830456245473473582883240512367238086708242036937808612047298243408526259106605539759912090602197587102256900947379082194989001606930752436184384211798374444299011291417418007498981780029882853360939048001431302686747352610594128216702233596701499027170122954553411541190749849167700554218012764792176223305208437396265237014046451710707170059271962587097331775746950701283041242204682143004902188498734170896687625599385366753452775539836786168896267886882654769662228052320026766232953177021122628616450453550402926062874657483808734217387613626265536863146986427392760396056020905866062018293154906948088145277828982417848104734011166320416606437391362254519060223340814848051822135712314698703984058087010079355813361785205534904198245994201481185623652752492936527089526027689011554356036822690741907594946835511741576617306970051711255633306048008760826879696386859436571811448691080719735768855896384829863424703059507962227123677538067924136467906761974948712718059709154265932055531802257217949788242945282234737916737157126252706661555181233648466509319092819718898979985323621762220413081656163459286616903166273827890562286616547257416419309124417572728115863279689417040206483524777813767071239405336347084831582828045721523712719153567725274853653849633687089071903670811001125676902382694591464046527407703819061509352951473534353915807443735273457758860693706150200460733657314850321523129920936028135273055929706335208405628849294958311791145671940916976654418046965348392110230803486754180188529107139441658159260320324814182665683091615005814166019222487672736471818178181681598798911538453869224566103846615482137191230726851475126652607284314853488313788560240334712357805009599798307712814402194391698370543389353276028154461589611167536880359678474122510352738555966357142513861867418301476890972096374425563571177472266614609278890950258575631408851773859099225652637694676233165723629042645326448608904203297096806160928744249765453064339664451507481832143832494614185026282963102047445968176153322195020627749418961039393267880760987589619509664193073635010323244463945946403931881681599260390759439311055113404408826806219310823209450350097715352300804033358249271267334711077738920974644754253508561517824482285046231453796424325709620424579284701240152981178282145302109774887805071292706888537659454026114536189250102213007115345957180472286803827171375684897591628284965697300685911407469434705516086270424486152120295851947676683370023493589590278451681545401511007204870939615388230708521905826182359783004022472588225894978761175740546081735995377892905732699397739815144832245909318772017449001646218426486481927045860875153442568151076984974988692998762831646330007494158373779572659501997801413271871536825427554969732896799898282048364621688499943127409476151240143483052492840412786368939440076374235699319875023078149763230750809392518642778996544729666216285438486146083977365056168299564833407185644579329616926267640612218838054415780790987656959809593612292482085518145246814978810874716536283695522799723422447825776834141073010337997843206057079111344783295635307559171517424984449521224342369581136636441446139925337505298277880959201754348038395201948861316637646664917658199762473698776467592819260912733890362385037820071525822574792181685872899686229087430373359052683742641219041726613702001044347421737382122806875337470195040816047228162136431744516946796536344887929714866837279734822149047289539998026710369473654010302953362655843247664474192239922346471919580686761640218064694558888040695815150300013944618759221096237594022609027489837891814997636041755408124904433421127023883047936417928221084864399250348848203469395672730030655372491150782371357489429657385780729059985469305847282119353378327557839305115399809199204259874800284699964825114076131389604462886402857728694488521565882055469832149071592709488118778370315428129848680637015277250683829649593239609718541606645014192859144737248758038333084131071096656537638183427911804725978370610126484622073404229961797129088895462271129637758389698910394429580334492030688844195018032837940873776283424031674945285630112392946188998668058866877261331459864698338772639221483914868184196684501989011079976743989878014016332238687842854954642909056027504371812565097037850930731042863973235338852913759742589932916266731953007988831685615087053913267174040939693471998958398423437207300173910912514225151436510589339533053104278560779699013777478368782507006296286264879970081930925018825121451924856165685737161672124669019063457100661009058871379472289268767342461668353887924963433369685663322176157943341190078575133472498859662799512943683005215868110476361964549258772446015755794421858382967614833947962723965149319952219198600249618410519789157160187057293687326779921702279240126498977083379245113347824601038943807821362359208973742579541917345394868352428862466243292436292589711117536008560061436233272982241887172655762826749726891317955788914439204460374018878751653726504234290471437120413137949524996034327231428814265408980888640116925523594955995301262324112246047194727418461107296511089671947733743485395404761622065095440961698219104464967731944010613645071616241210091714577605055393844797445702660396359143728741305759967177982510466635396573011823651606524394870418117314038717764967219835355229422906271139568615456212127832176957921985745435132714742153717642177547901246296899558447333165778917533791565634289122384206207910584813179040125332718028439282062650045750648888329308493711341783556649595439529873408921662749663171579473037919686777275408131523374667242220554726878899997116095359238970840262629690859292537165417963589189473870692876315018421419453954399056173656623042380779521523595829855236810616140235661220377074014144105701332030735555633238926135037785813942759101266413322423231892670412334230840459999647542200424693677573393903371927062791360243662959880209856147218801135102481447575720453240369359614370479078404833335246548176131148118848311638092691845567563162793427772367911102609577028312174700620783926533416680776234585558555595543763501854688917710424532767283170251249066584837538818560122216233166103037112453592523155946690876010291975921885930946592970199845290896109719777056053404573519551940152934686374210052663258321889827207943742105180391693131545435970295355115765974773952925077913432485919360197750355040193953315620272869419370137470108186545763383926536167445677329848354745405597935604219162749300698802187249111537594497603792936803477753500793888464707565411645417608648050765010957635321566120371967006272352747694478307035644399192401792865861384544280716527104421926550183924348689403239863186345052163952760840334971603300005475604371655992268967864753108207103462824849937482825286534466805876589709799620752468721225590664066384986857844103689153965857243535157705639892632634208468965433422425873833186445647986443285792715467658703125709731445779181154328411386099228701423068258806564583008775221023603148510114673226801166703335346911734537812036248261413654308409957463712365276844818065048299034082812239536369435198828767148479393247677767173769831046020320700787893261723145255099532474906756348266619144377705393829010040271248184572611945791236658275104911991548947435378717031329178242838060512335698747074398325769401962114378889579696565642626241429721386811779765208935842539822137558237606948975885831143930890392190077995775795264123124861804155804836723583169885413819130103096373000873445568608645967688405444902696078731155958545283077926489614461797007519197520613655458601214853029363589039423596783179221254681165876588377719376612751846971741701269978239589093270323387053533775779077102543172944335839535971462942396592214258676653070901766628032772292683100737186320951552075076390921472957220751289661950537699410416015923963954681964432855408082371363605044872151094086867674765043703055849289287049201651227828168370759573798945286709540807544852555835672902820665996845496286701108547739444559049416877920547755666144890035619247367083954507657154420637591435257234548073026442664572436629573609397344008741890413375944700592922977961612111957211602998914661119216437954613854793014927902835038268861682061902974223951518577587443994823789345018774706097676544768896151973822443212791954509773558484488192211190746574700619860765003685008382030455530558901728389802540035292555374487978385647256621864144403296958310299451599931754660504580856712268638587833530954533789297209654139923562012798363025142134873699277081494233372363734386405787759742364302405899650425633812902412616733701424071227587615959108624359559844177799305812545968480278320642755784208404560089743985691789889315751746526923919367488557498212826565176980838342285346286902768839214522641637894545705339372864560785607068492370695770315670008526326932439580483916306499867426573625058291876684862567260327172348015175225113306398694406025678993819623331075738428014258299124930969526461544263685684649011180992897100831809648832666853211800580002835621037624930439893479716287070292914148561992624401586598644602354310257444686576815542609417786251840585588983913333483621786371648426984865131773428796346872391956774345511012051237083994552203766550196676235086933340303085663228817006961686216256469355395764094374385914722463925784250559341386232507658874431722531126635980958329767930023724713647396098002231035202194771449000355409920873878364457607918485921791214963594933278203573092174924492549131806577647213992498921555160852898459859078030112551951743472909267049964071240083254849447909161802060422050272339531632992259428127128511571955283814915325861598153289845005253897675428162057455682102062129650457283249854393166325608131983695612222203542309806030141476826226873298944758212707237519088917222743447281445935123026637044827343785674319782137414490873527628666535747559459358824541630016365938100402800800078802902683999652298503094737345096934103737384014761698204523565897712874273397108676963347475675933361613749981766792920933838428647855197208356856907404533346937776244219582914433664602481704882470879013501710267512874948628861643127078673402076273582923008106283837567771737238889531991435677954793229203202832659803019983547147410692966498593570813370972301973856547043439633041709386485687364823112050662320820068501955267791859149610894763734768396411912422368122116572546760708890226243353990029979542148145970291158006322078652924992428644177791965896266131337484539173408511983437770589176401434992917001770282175104519987373462224389764147836457274221698106815964763895565487779306067290234965661122603188245761663849122623783388418369002288698855942573345969172453408222131077790928935568325339254167958197551624907729229426782097090214667161385834034746256820145958305742610797435622148823670627877717462193942650811691174069299177896026597741480453108336844544668451716157687118599168637830782496859901198016115164339151131223173920031978245748047070690739802254173920214381376863009872711925246179748898259973786014800649885233861845716836484574772981571434422170571961305840906441107188043075958935520006655390052018243159249956406608761830239984694150060392047705826242342920727281494091173777025574882246731052365525215974333328596119539454377305511494294270979676184164109453731159413811944774978589146014606809276445629581449120168652179711770729377654555026787146772113558028530548187728331406156073311865600476408253498933217597079050020277587815322605256720304100877487141884627461806552110436364190318814049361232342715495888914406664297595451101019144953798283927453349749016217956049349459747657898754285984857068748185754892615120325166678233038424942790809988079954022335508766085380262090896787821553251163673746731781477218883421276541206952767797581055444820161620641309393796043324837306942935170438505256441850537271404564356640160026777012056989589342534456742433138507731532319464292497670669012687717221233285629862192853025845821427870203309533039172943248275021618553333667895979050411005279947484769547387705058937938656252559067866322384080866972115154912598580010484300433824029094187361148806358868570476215317411958527701216052912256013661419996115342446425257933821257100071993640078631017648697806770760067187284948356191345348969015784967463439307545723593350876431670020199933742041670590362902790130471846610058537092543839919029606902630901029700420291141149322062421240926290895230703435356122644276973961435158274228424148824750780728138173162112649295225234263574854727153737106178964535136365434528896569681691831917857300405759446346907426403168975792914570887851877738968545811789487074174776267649472167483903783567630790497665918740328789857490930855964906011473438322796552632466874755686469327577629363976714699278167419416880852855839095107306157690882309559363227696746643708589671011917826941968462789689981380325071575348291724769361411803125763975047529445224658766224778108569399289801734203723591209667035378311062290254970012805950536011103213205472839736079762730311472309923803271569590751661250598746894421568474355700561330218573412479156173453763696455389211076839075265697315028273541766881176860434384618593757672033587444127908645186791936025486049548726511153756154570582145913443284385933447995707918623008864337031397589625533837305301857250716769577846869299025201891828410450995233971565372730755651783460894629923326479968376529442290171802653441666520230259980304385627213975365034583524381724966085695329430585952165440611140100460321342748341729726331798930958076113885005808716328552544295077734461480138469461168430800419832461398692595649961159335668660872821175804348456351995959739220112514048718799771228276085327714511567613085197187678813903494835216199003496623946836297010761225556749184189311303438417112889712255481340235117881129554034275499032540344622469399201239841919022053487257407659671277476534363572177168544167960038555003858221644523610509848692509277232107859534022608774868773010560018552042113530617249957716565067583511131962947303040545056325463046241775823709066402515971242980369704216552641021431231936758169555720508321359475932852445328894529827909928874153241218102651973993376018894586379792292972700392286124042335531611663127418401467750347188484166057395419866514424989855174285176629290506831681020614432762508256251540840932245601170549835395031341077985636742901072618998848684110838921106865132442258159234883948424767776830778601625112020537481183853273955953979253544529019898534540011686523522930819676039362876562125789553696143041072180904026241958850726486301270489692732330015482523418465238581898634525685853340314096683438891030914054865797091783853456176579809467412194991433926279091832689001453271922966812859343129181382570869473571651678610459266084759850904699383882003640501113451562822000982116536020364588246045854016044022389502872593928493326768286956698139582115120842313650671831009472530548472118721898710804836596499875485815525505844175544844808001483080284446644975709826711512434344366596886829705124812657206527795593250561248357844278163643869974229811965607367534553756687486013758545935407932439506743500217701795992532090465849806464816986097263478945282966300533178727358569811808760123368998860905504531810806325425104525593986223267655651466605594737583436268587025502171771841533565657458529983010052184237150448196248051691168206350059535233596175413385052237011105278453609025590732274141862528424454489986108781046892395349090292092668952085486238700604005053036562758136357518340852053390833315689888205360663826352181194106663298121074490327506726448837676850104693121701154464745462941931724975121028333670883768657325979767893437216279166620830555797819334570886056736418811796949005739944021440332688896235479453665518031753640506444235269601386490613016024663361914558507080620979475520133319753879518521973194047905604842050324562445128432985512949996026116763799615044670549393914349503481983912800483935535576499180201698548641247603640695309959992356152441244606964358320813691264947175737113835906964023654831483531495235936522943133602620105003554505845481689855576570751054169488967862707276408249924569725602361605245849099338471104351846459172588135985045050319977881105070895110574438037618694227258957059681031575694325851646999187206335513392774185367594593379044585403743316020852722789455293752933866004334047286208235169449689566249293821679976616426629539256180008355677221835460040675951504889146441442563621300452690125757382988038137996388495764272762214358602651800478182776430434770639993150615573544454450890203605165925188860209605919019410354370250105944963653511874729091969872728633180007432701828127055188228004828963579544492808649009097568313160680541369933259163525853606122467567143371475566412962284245947605373966927359696836030968007975684863867981477847892402811432365425967976300974530623782363889475257417650530822991150128414181450825656177475584835328920809659476891364576451287774469934514792401303769531066544379150021216034482540042537563073255905613410204821381936852215636733448388247383170613328656084374200210988620584956936009723958407312660439464336403914349428373298740158144817189639029127006386271372909705120932848526099702016627635713236762836564217524867482923569408890121097183387097165403146846119354151171987877167908750628790633808187121041358335391265922304496818567661202711209952927738515927145439269048213082939967219160281683311387414343034842251416788795738483446069515868416189345791307324877596814911097461414945127965256812748716238031430827607616650291617779839043675815772364893027656445038974959239696525317659181153884036618754976938377064200673277656946788440618693375602841374047914130275665079981355744363404544675471626038684304795801247164823016180915694747851485964512616441680359653669589804010656495427172228665033643093006763419470618578937276463159025840050015733952087060904386953462451493568867803159813959741850096440541957963057712555824500020155700840542995957248859871590229177338825419154490291798564174702786975461802846522892591559523772225154608604124632199853103864243179797990146409245134835730228540377729141357264869397356623025138646839093625862554273805939052029964399026228722029100134435623273281171624995204376454887371460243289998234377353608664864552499289989418941156453255739409847754040892727571694998027648070569087003988030299143789762816980401423026961417719203161256257796190208118947847403415864689913010442205914081612436874016123490615671639590730974793604575327133948327848789480860278817047475534713069115740982252975378543824695973015139311940893801470130188060268494127079094947259663240708983410162133490378162451828495341741258916434336096409759901030476450478789387189713642226773501319575539190208042933413000675270447803362569137424422123203295396548992198546852104546696085915910113323786476892032791772780114977271691063868009015094766896430067560288599934662987251113018261740753000086299768162171367144324313784377661599829827371342980514533121530421952645478253889994197093477423476110973142199543743177320934188033757184337119764253426428261713456148928812388561889442919047377960955442997740018052287270153962477809230265430651240983627206933035601907197761239895579900344275683698587332257433431816978946603822272303601707084989019387626427851568705719322977063768252560811761080267995575934567433666044432624728071985369958183231390110401372225318614119229613369022531128789420085257961861247254972045788880499096532858030331580437484278616643891699617587744018844780673134597827897162778615805252111392269995689970056458809282932569810783190161764476441275889604404094924718762693909302507023900518056992148209295158090875888308202081556226502902105337917572291270398293778917827271951911062769300536824275444423432115236396377478358128855006625694758796348171230058996398412226658680411797898413415045914365152425197282291349663533338100743301416714924026469527403156571391992134130307038238144593620810232135412007367048683443978010595290931107253160857319914553694072223713367006640214892879353171368629046650771139260377513792635037057240679316433158150177922283168149733804630272182791501242371274013751061616177083263451171134006149484165313970565843235434683715124733770971429854735304527540156733638116870040108353812018443072989670988743770617765476036388831261578077633809527080698808532925558877447153635617715866110052056714441038879853031246792716592312328541632546099668760588303209754294372320926735700892015631146245493747498784875018942566950608351394231470518769854914731954566296137370748341383940532155076847145868636661546635781640097838428102171693539235152686713641545713913428755037944717622139430378658292916390647387199752293056901648575848805640629990961126055987917141758958334982385919779443293257308287944539558269260660853061767292157933629510574731367835822287976885983272338882722805838859735489594531773324889308061595777339318129515665818226840573196816971301259173997411228962704008763138885793523211590053932006203997687066985033030050539061135270435702327331440258180780152136025022301906596091286893483804785952420364296568694732797523171672610904882492552739104697379743137365114717748238271494214122136352581183265386248728035685187058843052623693564371714298740675529078872360786671876238459245372030999275565727667654504209921707907003684131327135986752221067137831558472578234356645445290190627279912973014286493561126237323104608551652202369606078138075054881147813723296019240416272283444206627321907002697859498986620252573206183300813835126959891408051826156349529011313233930924715846556195113197838366396838950188934684908954737112760582155253044773290039014692795289708618696615781640197363361298981435424882191977724812421756706520504744634230567381555952886559506284928662100310651254683929513495718562005978970934537074077449646529442084201779578854857492026448162538292916631276124412498228780010394857512789935014226880863000564866629164669682506120246927991434311105249509549384666958449680516659355791507246473183063320351580350525871250513276062569504524665666339090304516320917259114975877776539878145033551276477360398819312361981866569649865743281562260708919911290760972157508202510808462260061320390796382708900275033180136607693611169121141674791922637378859971132048904576030940030990241013118285850906321836838639792674121498193841564912333579218030666938785751746159131397002038537089475323031961553060594593667587170685711816067903839502093230475961846276802262517367844298189802527212922945719506826028567709475631369535651984470653242212150833179976054924551604001354176501988529025384917726110270809387364943740511834582832048658872139305123678414943944330399534962750989292879520202416403247376197791332294333768503436683243991332087961909326518123656917151764197902727042634090501905970620255169104442237690098195649507041070475498180549566591103923703619580280044907991476733978294707530706857719121642826592376225657158564602117247460811752368666783718897199293610000884843528490656125958733519696353683889097406569278829903306870185691390142438030190167841880749532855833529973645270294039492722571274822422614165390145685766294234257592044097099442284767684608821463729791920718126111178264825093995495054888855131298801363593529786753192751998797842536500188701028451687227695008504855749431601503439487168955430371583491597887771183854651889282020064218717110239308629824594351861908364162758103554711991832258827277651724479247507238993156663594941963071084521221790577894672028587399485190695665878300242176606333893085715583264727474041519077505583755859802783737090727886924102112676679076913516121322442018223360147752367230692750012174192826429715360988259128478303312660413617895045436851708164563729118454783174547833230576777505897606087024100136011511774832279833364240389857871422203388738757049337656255990448190709625876079392241254282617111770866290681561227626010836876469549617238615260006671858621560248460033929651962723299653532899905875487647318397192207519454002522250231406026032705045137376707389807246991801693892597026944568205341806667456766316464909571233626977246088202842127601313839090127459113143877274736231691880833143266325236691508540768647167426178046155758005222466714027256634754246215211325063576326055844597385571315998433729162227125658624760394140200339896176862978150099312847501926717450694481017083147695466652576098690390882193665915100287939343863409001463198686396324495071770777241984601280901697709368304711814627350472185559315743563781743488407334058151971866928218247962116205379458563005923043047207656828914189596894162058660570880857756251436893015131206386930864001525221236030121397471821415853632122206543172745161671979147171936673630326317754529564568545683317707547486656546224079909257266655994793350395826818361484590308758837246354676224345224738201094120540338235253015909567155305104678035126002890752227127964167601318377548155427618469356395604238048272357784985258160467130655121145885399148326454620777516985178988623342984663570602536033214977690756690024108064764332751034296124381081051231900191047787765805829699516816686520520123923525298958722678519496615649219283286195368821085168283894592993090271880110293815501807450736388912697999549926258458060762207403813414274503507035885869714856696558602505638664796244392947140862590094110681630965300370631539384127368474928527552537049110574312406511121403361075914585237538115285100646918698743041829134649174501477556256293661872110691258408953842512050652046249148413419371961822609270908781607786178640978367543852466243080026184441782282962761215382935964109323531450657917523505221352973608462188741236087411456004191194703155280758911871622683026922437573967105340666653084794051050368917393152422946588099928998003797168788607203496915319625784989580174203220555297231765172265494248866245646885950270144203845929123174368239249507956032544532955590201310050657651534101273125843294078359009049833870129843993666495392511307594937532061497468802872684994809075062881181660042000300259836305696089766993459574265132974046522026005891081001426870237798132309205254813525475337034964700333717030060922396573210390684045592061728552369403009423316320174246581705671703262217956229207360240996126226608219425585670887736465438263076995495802324164843059498662942451680772376897834489054519178254908656198954944365059893368385329990785936544763911122723289019496282737413957448903318291251994668930803816864746896157471844953249150188247203379832499237919308379771015889189018492543371693165550400657231167966134685019839234648611595624859410858795255044920510076310345514448960550117449449620401894795422308680694537074406829297703073240969970243592570676881440006042552868666558372228098023163792621096684908099183538482875001918680072285780297653128394262945097772609303458219212168355919701674401910718628618416039219575037495905538259761113278815910483079521691444517673453827061666397946018878023671162803375838678947963790776355660106962437699976221630681237725278867646042934233890730987174804537433066787618426757586519107089043460991056298491633113138356977471520739279873493437321788668507726510290277549030423708769632973386635373940279592803197201679993361937391851189079900064880781288360204356096685802986798858888511341716748040228270271428881227885892876155861922947067766999798117385241478951199498867862355173843021849692994161795139875602169403724502366835319007347458436178937670846193619191028202209950280004709961533779933558072769129218368860613654791986622206432218307099517026921123139279149637276802323553938536196672316293759599080364709909301297006802220678181044481370965662961460412225738575436028824780957677850654836273259930310054394672828226666767437151463758406977170634274530563217739395637878062255623727174392241788756537944110793086057215509767251752160876517150730565901039029501869945263628728478996757970910063304950795177443107783971010703052501643982696389050919994565532082249516892072963908726905835132471746020162588852154459781137405639371689509064131893671459309432630597091777648490436719703686428984313803685890395899887792538871200385598289825742115577535758906516973168814317891562835531626002074232928016326890254140221083526480860935783005805770547532911019731747798035064279022818327094907960481096745190474041073632559274561749467374548705584771854703529999591758881205926499761440366724343331613993712761130111240798427960237332527167051704341244407333120204508580064196903682612800586935395688838905067379438588045936875315685665006616963958666111525820443885428530950095871207640607085474282651978122648671098451399645663447086275694931116570738944199891032341347839747027951323614244686799148895637685479328615636680330953708540535338298191803643577161590074318099774669650167842532128589556935537307963390601462968743008467771575436838669104833491883753766791635758861296008548811549174591545858401141844962495084416705387396210312619401183116621590016119301112100629906448918533763945769939785357041830795978197297281855811940059132251115509324879452055097307121470873519125939113710248769742662309403046739123153242589720934054667167696599587709032391458373435575461544159555670467574060379931422692085786305267324642287347170958249165395827396071071071050132510135512685095056166780186517866285425209466343067109251535400958437559827675294678305413275801534734342560450101006572082491576177619706964582079610398830413214357054911754968631473787193397797629442564580035519854545317772343056561442720551766649838496448717982903196686148706750176416929019724253990454750732982390814058544375049079954843601699143991280488349195026141302380799020211807858447969637500346773257310152774493320275960802409584841238823923773404394905627162071777882215457153224481395345579848148598376316583507602986187842599096567212384152709887549220209900794287790456080703239015381398283940531363530968651796353045511224960795174433393200275872035986969522481091977494471769207007194162535158225396695561236199195091397100459516595203198825621877960732200719777331492481853762859865912259091460013976104860608414337007176910231116297077880628439471940040389189637521189256205082991323629727466463243958215890164535079175126073971612200542764268552254241769272939235423543816557985439537865598516842499180918610485129099773898372122988458017035470001451685340625971739014748019828239529886789384262399161400088712516323729918081377303347148587522052716310731389030708897506648128644494018627419242850820825716732142808279193496323582841128799719885769322655815799900956324344039535599853252849025490562161654628628926087033753728648748336509281467139537004568378805736869686925010937459186782035816816257547727073056931824138541166915928995206212105134439669113712798713782884234237892184125601231129214264848869514397444238984493670510035450444247086466170660981107866777347632786859981769954988865238578537264667465263374449929206413566849023275068277676663204787159562173271780669806804576889214274129525367899498593962059756218936503045268029231355637380744790109209181513555489862341419195897331016058936681353474026314790910558296269254345968959527955373636053634224984131563043688854906006282172742513098430426874035007622298090256742653046997206294355694223941707252561433256773321233137341514293754656100752616980079851242243169581665069172358741471959759128750947999025863718752451833898932108704967399131237875218137702545135558166243891399571049135400845943104356177090203554895268230024884482309924254955934658706416928397407691298366829573059929314761582755759173986740241282229525963585682595263080278585348867277356662529038572708050051392805722956052752177182005766207445849312979043919534609257415263866098325442880598096233485464932243859545486657366660187938477317396241959746090846936789182004355843403388346724682734235287900776196900145843145303953382145258178170023825609785183347645372372722344147273786449311437858464201540504165631579720312113766961617473010607112539194588542887602070382927610119551290055519111664944211099142245512879257176367962276284491044417802599953364530704200540820317301421826918142059917065028752032288764572750844522785566619336123381803252725079563144610851858161116113125326579426191719047430511972985357017299653829062585542795082940883312509752862529543846427732597070886781393526026853683234484466867312308598706193508588250947160696333424724650318253354069028932331387040520063986091423632385896125824058016278514391803199110020298691718046947819592897157516374950806024076688513469679304001702147067029889665916745643822211971439748610686817177110382911673540626775406246705886176511640954082704496392037245606061961687072402556913325417563813914374591388595437418776540193206669760088559835993175063336774579182799396814233804646172848803186428781851130680772243648445626107409669124024761424691430951616925065620266621303742773487024204517351006793960326700366097531906122692978678427067208899210927690335604788586838098960314806394017229523612141643908248462612832587622811668500545771491871265453327727244459245170663515592694244128511203695395723492299799792084284593043893587462038274331191427094042485831484028713760491124340616011479222141991000340365107378209138579735069305471751747747166182745479503616898994031801777320685356509855988693838969906709266441364893883395777933249828999483357945736612721731889327026409609829521470664298956085626207449679121022223466408464743536663251892374235182583399871435916343239445309368134280351865989929578486561205168847812023459642169964869248632809673899356873425683431228096739460460631537452529571114626058881909886925023434602061402777645933792199787988734849074494787491053811784372132000820315851946485069327885927591897349684363625237694214607303118399862235768213124496299270191643660067963319949775061851884477120118440208798037297192156055257984469616134346552957234705746773088134276134296897257526487113012269354548796789308168729736624179784928964208691388776682476711048196406990943435837195812270872490978022322533279318465653227494360643336060218341044353387101719935829351861952792613980902720046727037463255428255415338487058806734558809723845094924567087033376134674396962986044565000547737168278388402915385761761250865525047441186497192108895006052753463120268536734497343780235172055610869633778294934767326192861468504385916117049999734348512729763493772160458220799242424028956422809173200610740524881274409193930575400178996801867902684334937472183398290723620381464443424839848220218387072591158324560331038549248853894379301468338153058341348846365149831529185979943346260077201704026809606680247582260629397953127705566889413405734277714638680637794994043732949925772509836734675084033631477746032258394863042034014599315983931937627839085361613341157348408895880628701792138290999672347058026648876602421675002441039668116240661064717123778596581628708091698286067198902661375915646077473790710624746846807281217955762421264372253348261164959587960090077436978514198385364180420644893758446785726918201011088253636442289323548592754080369099211036627476581097607573745566910313887407504229926942758658593337793542224618658542405093950409852094404517581838213655139788339957258772413743949520292991163538437060617405530084422759145348067272762598782765237702700423335924469519911600389111238998950920745855454822828948391414071638783024906900373683576956612319094253555784913477123430979726116817328527388944399741116143877985654830080532130890226193509277167725433370998091618622178643637795309791405554655236016002993835682511707220648222690278345618184281286511059077536750037161295962481120057872592145589139044405540762619273940799147190472456018760619876676025766555953686052912789872141481242934286206430809527876256252643513342269053181305361888316285600056555543586771204615736701408478354949079975565958653162195669412972958377081786688047637336281220351752860854265859405555617685789209659440281495201480500233677436613847153670584224753062433619778539912920244556824831738590958732483144118363466141079038019305846216432856154470621905657508288500301874169076810510870170850530877700406144266535962591805002234367064644518040526724920642254003574643869170640734445389689450078050858186308927971446277737761503032887773109728233066443813913634915572670987985956603928356122668325518385863705635798252538329999471788691016316092402083395879512873191094355786344707924433955004444852741170877035807245610469526099322893806769435891280438160509941795045448724707435223595674221634677907868876564111321859128674995140922246787076772880740038260799405032612067246375889288794742188265420268016374827957056039097463734167076725404339956142964250752093451995500253158772971651005221808352708220255142490291561596636265857555907836057466017220898234364212820132780531043551458120827435324735652204809560590504989196189442002652903298939294103128031067602759859268903399346453545256073372424506479746129645129669834895565234333132140391631592213495214973499008864979441183803741089213591557261905855908499184386085505894947219818593783912770612687013650191838689986066894863046444864235055167474461193408396424748528045020519707567214891691908125322711599708800246413095154825291809490537478885197545645227643002923515013987149984196723915223027252701958440585376673259556704050062567795909407166288605832060136901332020109157781535191905766675720052126644064375911863936449634759716404942989934650053170102478767575104874854699283458500330640629990980222982861771706212720366609325280835231191140534298133619471284184422271046122891507240377399051664940301426410218061183676659682157545020685621069661152398831882710793007813985117353334637677771778753665329036860259409132989075571248934068863335337044574892448561864733556330663763115735364041432523971216260229357733746424998822437480759556002957632616200873024951497141538123328573481998524382167902985232623160887672387570059911264462350947473048454586663000172143941314740263384650775073216057559655538983386243489700731891182115374260770058736475009269476384527688043904918755514611373646146988567552270926651985844282429659394951552373229916516199306597600386983013443968665202742847648793604203479100783714322350051405477011819020370315212289527883907985032603557375188233936389944106547614249426429019765792292545614137125329651840438190273032819530392923575713010732921850445605831273230038489965963282757978052167138855580478086955533470159500373696398728595714553284453780683308061817324377817265949947562211724825841668083724439372633860857878073012954175538542301242773488296091983694657337281778012917872294036053589706883038541098785221619528894409081046889134480377581450885609231419902071892861769276646415958818730530055299187002694849535564571687971812494472245795787187234755774954035718645332836642267947933340234560711264804132999564546192971231037298330738325946731685389776124449043797658085974393880761913198615850359866362554679127279707911867067842748787877393247662208239737522984338341455551758808640478272855119174355056598396566447544239503157702234075800314770344821884213744406479682330306046449609525714826976508537890250710534907319692494921692950820840582589331806715844715348402995390783919668511623730313379109875257193996974113828810377211211057568740439221942495958839788284836432289454238768589588068731787403025428640618084191158323020862383260347557654860169445282662199613153926907249603245367740876245214111478790727271440059956547799117467384013674488206199427683211443100996509507298755920694379245160406494307918743638691320376953382906197949231773414634540904908105099543960976035477012099641814647539510972810106579672338862421469112312949191880732404041770383614059725752625444709342740637647884451072740879109932703951842681398338113290053636876531859839810240729632456902368042000240215718836740960096473403283105602984866013371647837994397051480077206276045758453650355010964488095073834663863575692658211296980601730039118256205323420891748058158450225726600900909440716465026799849720749731776783190217948352456476982303303343706104125382040831157382231444677287971051571735010280806231186164158055199919674961598547282022092690720037869146421659141744363100115030961761903393033606733089365407702137529964508627796843327506569040311765722553115051807509220122410353167060197393183934320833386715106484771691837794022754859754450264892936419797634773853206809651288137626115096098097473501291974383149808386389081050369034935788981556122955686393962455182906911515156429909292019502220787917315685690860940764672149675194752254939167493834147479885141078615162444003703230311228897445074359445762521267411470644450386475167553355424626297172697723425846398532530000179879572952270139531328266797033942983148696456412486063298833314532562096605181418815732294020193018486604484872755276138743851169315052911851397883288968767144665904700893514734354880521773582678315040277432779938518389272152109339071937365468125068382791322867040829735715298230545402445669845761296669994320551212929762047407876053321905949147192029544025769039779394475917504038268312082919033496331045427494056583679956872861908171963095280928976157152207124071688032243653642115920857445952621146689080266954568537646254774132966626738355038842320387085946637344888569996166475868908606973700531814051217090372692943607850434390545582141276651695382706296626745616489681392388858258911068757779803747408104218781437038999266938563339420634091489758674306850101641825041982827405001815648831795718879131560619851063147474582901749358863837322525153526034308988093021561726188364892179062099549996138535235504494472493812852072513256847996348155017097189835670258171234676133819959073395890796192774174622135829856008406267109317125764610939468709229184697307750217899075154685654015256066411389048152750639555677423000371203457150156528436147692026199627562082476299359997131440123531795312806903264748543197270238476075718787973429013886881463004121248590342828270883558575899129673489885325040686611873884564755839593418554272575448650886273979223060431856745849434717599535254092594007459866955353049557121157829218476472191615716601279040856950293662859801066255816352583363590346653770290031463425988754569069180944140911390395555924364043430153033148649348798453740411482136860296757935634519054656034859845838570707868487104236901763449938951918012312302399173637672349405131011611355840199801203765312371945095698363418329005637960672199740385001203157877558094248148623469777571684122359553760501017364114380776947536578487315172399205984204934254794525051734293316926015126537705880090659608159402793352826885208695479055676625120877099648459657752531218976317895888708186076048034141636895895892619668513498434696193277299798251504261342046808930531167171525693971221389651607241064747214018165112006043579461869112846177131680822644478629857309748811301900790636494753423835217811622477963187994766534896903290432550096949233827713112577708430463692268567405502732758128599201122602196521461461588494738002608515201151523083865906787967192211587726895030878415416581616301138548859515829711741631424904032055355797144693852272234356127673962340724673793040236195810699152518945881839251312887463085730751162807834791337602426423364975604917325085691852631052167706954098897218297300170718404244281448167908382349206142212744186983944059824199910084655358565247965047461142494831136883757420663291376798297175910387194956952505796532634251566051658951070251584507225558445383516961084938327816779191354630046913440286269531317992802186665890947406884223035879450703695448583000929605253813936227740417131182673209158081640833394618803112437506145725191622552120200124292541905290369705255414136561902271991946744537931899465879527860625469375812619794303395845617269539804460378750381325045948371210631574924574449467123069990061350850771293913709734620518323793091001677502531515310718581532763089716834503564507610953197780720203092125119295349197448607020703756837827402716924948531081504011267550269041804316141661193669170484520336616810108861618196870211419025893447466852064098603427549084103414446672765460016121397940930095320636447283997360686703679914478286500417342532893416930647309910676547299592795931908277546213958672875293723124060535256237949309210460054085711653346451112099481163022712821656773083389741308724205886678629965052952851351713622210384017914684941104323863441460821867551336090815357763160290302472627870784367594419034564337298774644091409583184629209924698797170715890483576708669796112628258902931113036918679240349096074736374126926772791847298182132583577001851143831411824968147372617428938759353481601598745158426950179640302161540638951362904721768805942404069765415398164041875364830975729342503967754643381772199601729475943297904991232820912599304196988264378902406790449135139111613117107603890830469476713824441439430220418574837625431800830641702645446086170437218382344491308337395121022353122601252492939690716056705901717699451036447163921471420046780813745893505636456288778170148532193551588191050529207292470686536216430298111487444177630115686912115936376023805921833021343872471347448331263674813317288125460227696249318470692014578642046241827511853633190765769505786289195015570549432680631392704252687133654810228325562242908781604447161123472120031808037610901265294156820149010726359290056817242035852114965890328796958498017474040993919107539881869639553318615848763625072524096881430628164289673187003312157811009624194486669423284803778485569198573149301293633882525081803263582943584610352540540883151642443369541888663266417172592721755053368384527248560767124127753130050984000982281206040227662342042364654531797175202216158399145821127688994628711904847646737512628392972933506640000445739158871578688449524372882301810822224959074435962015279706148793538377289762774989165056133346299454571011413181994343312041940317805208041985604335661516028667806962029898761237025711718402304248452583597180961216511710370138710548565186588231358516272669631802405831311494566212736215042571658455187249110373974832316075415406850386269410332239721333476221523110573177701880817173753684543584767250417558339866882390738406390866110524640141195112531212802567640026756617926869217013312237404075032447419000844626753427919546119228689036304019167127812883736345981898445965098767216395175791223863542302702969424482641554355168797439974105582680874654193728150567175378524908226004750297680917113050900792855069628910333845746690012228947177382351455936537248395101568568498706133912965759078841631693237723785951462152000943766948585436641459359547762867297653737639116728535057475106886196048400943557717195285415760195674916418343167219851400330093346069439231676597341252909643162869659393653887237314162167167252700318571572679173225802589240138658690622008776451450861153863590066196600672899205365459233594359494373641308679762450356109252985445696594572128747613848536588030344433017097171986355426425761679616226384065375790152571068222327812753000748199477983659339989334505908647512195486808745589892327006426636127107573982999892767325978725966470597800423539064511382858652637277369872787599448714997648398602577266251646713485972928977622311783497771854359264573803474468831973984660903749926036480364166797001891831871592324037204223225773746426378539665255910843535435809895076545358480050583954851244445735306458345878439782906503146362641656405500870815839533149456451242860115243778982768013693514660992445919352998215101588778231771368198370352652931668354782139368298047576127733518156362683944352873410165690173163779572859594577443411075488778073615146010508658083216617038361431777220944142789845781227228712718003230124164564945828568638597814606518485799875694723701260016663676663795748115693835047607392845146307208357398451812662671217445734911147446692666969920425118538425378667898602827810472861071685447877795995528219491708813018913198520707644478532375334855812133030898856175463331657793830464759003939126254075275648230834836744791854274631349138644548881350057782191269889823479287298157379289902402094407274532280562108194893693358542213915471494725215070086362107265045548527196942674966236194730977699719360986915193670766355557675902401863137309270609253911567435507329697181258860887581314272410166416510858762790283742350524545311648133949234223261660116842859246055344161511389693802631887419210659853965687071109247422925818771477457327869555320307425039647362422102781339635049937653821826971691801368885382960604929604714186319969478156993086122934020527586566519147163351206735353212223616320780924896477821367717502442041057737199542187544776737049956986377586694350131761307007359655432057864705180608807701176081671813794759378862652435930700807788195218355471700840627865341611660455155600241010827919151892451355656753569327028653067746284604572249832746545227988788079191581911956788517822349215584926643367131083526790173184975283607501405697682706208580358357949991916992750745810187580517062655372785758377640202791650827740379854188696049605804028473466904134564696853468843566526484655474062008611210530529645349962755969345536594437823222342728059657459428168546270927949184930189802775579329484867418776763055098840374578081670060506485837279134928210051744556271560719351750024133624867956939578754990741984129516719821538401470138546278784450172313666204652887565322971971801158155236892412435604514001795365597932232181567600055142172858387015971188599301303570814007108482414583964207648057564725522459904682193900971136598771303251294997369306854002696303410179839879637595695351134620271035937184647155189182137337346645486712716709754235912997617450387627538696915287519857066042328107267060716376809614318635469308307539818287247418334873052580524824998805577615125857946533155993919331034815888539131280550509731992822872809772043311905545050303048100938708408699102748244179754714971042833154065621638525379462473780592059337346039988374133783980901352951751961460565105902684856476002431198559006246403808733691795295187938909083167486899630980010657243068121172611896286786359287729548974924152715254117572570153545214181014886080507579610698216842069151363902147374138100248034716476665249407192855757300081397067588513920456843459083550024212209069472328781894013075969249944892344988729170180182198922262987690266831132188669679953326836619192834173093585090998621981787675556953064294539843449772914519199819354534980670931853397530692859626869355958635446291056704151874603511034206656127897178120884378855474048449457767322639779070009345774892848577562567483701855163222527940046920317854898088878901398901877484152734781485700128494094443360687084360419564379364224355646766224236010939701231782210000578750922656176065052881706920898987993462155988735334755263397244811813849134815767398186443054387461677715094461881248078606407295386837149937183487522973525618218649333278631678768714204773658312721798023613021986345361559992801036760029713670862671520789388893255471673887351191876323087937890750374357021021755204314380185605659052235942329174819759567255705157444826171781661224046343743233408269421744031077627839473564917692805188435498838673586993624511886266955339066456589047957979316216343709918314076507990665002655122954565005749673948196191094052682057000664026886437240390796640506968259008397448413055750720433076039486500846102044160795099652273202820433951148154290921039461812188241867728555266857102169120247246722043045829862337108568314538985309383996989323516406852900730623365179134119398144456626120873181305870359011419724472242098145459880049618267305079370501377966725587524713225324775700258209297146202661979358184645876740313536211279868950758904284867951512485258519840887622967928905774140935688312201694051119965836608313780703566156887265811037054226963957814614507726336248788597019108572066767877818000837750142596982857794276872519983639377418422009576971730474002994479274096487217928039388486654122253779156616366514496148729961858220546655298249513684339329657982121226377212830928682850229995388037762693855143392093948855122499005385366057380383222141002912494603143761683014116556116724255805852665846443557236114888036597619464242408757631528537227655234387410231591392133246351612889379531401432887123185645209121583126968952572052305627674680175765587325760830232773300363177045488326392974901772124574692118036503480891667985671640214475741025618698704919407020872711224849304716602127321591192808695124380659666583096676781456684103982047033271915019535494103091080274640320249417785771008245960216890217501357539799978743423888916250237517757350013417837479707178936494045370521647878591556370821087657663827096190763697827985227809982297168016010760090205180176205611799190027347458535224423007228087878905788544657825987612338153386182577433580087108721369518229615846925136683303575000503704090433670946808179137266696188371263665346882601902435237730735044466670417795244100018299054308224760916613767662036851843874074368197386905746696081101750681841910160917328278998635566963532499036375045278834838104576051852281281834232463513393561231681013361999477711499356732673068750310855641413228189266600997713865305681792901999026642894021630395611467055379216120142792249518627781386520422999870493599186451612808601073826999934567981534343475027721504122542574466408156686683183108334397916470053908600930234661896918434959715284718791707840138374168590302025328935556755199730399448306000656724227977531136572021555440017224514695706998621476567987807731759188843879935921140575314764127237019099639604059954269584175645672297057138875811098484682506562749470608283884543366200549558852097661564541135132615069396104420314032604791298195421170765121533197373126374784116965615404301399398572530346249099885456266808138142303597076197643894859017862253025210650590344391352049333198237094682505408121724579844311085678206880461717036485869041144830805145070774241268833154725996825579664938862076363934891662343744056656382009522397846650642295014580046011749034400029935836252013291336519247381897928480799081127743925112354530697882983714678185982604221998690451379496598739254068922098855271177739790788597706464948707161474142692504228239234080515634350805549138199196568045078199156793186092929576012417665343425566847952208536367238565238474859136813502365359013909146854115395645087290775666958752088558871692754174682603853625964869387106636407954995326065811329696043893226485114822967573418094446298486509513095069015269714305657649964712824253246218617493926461831472112990766754661335352057762854398522472517469010987177522831412266044719820074136187772343274696381614530903392462155764747800270386233245062199033315206971560719900316275544490453333599121939024808608638895937306811867489620832865376309146447362284698055331883909951439641152604597756353730434907002634302660137944105296420439978726317091570933158886808040148105480055441036466777131391884572047931120337786855861607832601943448229945893345126712206973927844257975963575992181214819647027302094458478583473385240623316802557351209149839344697861253641097700267638993301097289960812433535411743065285292819496668781621491645834076567754857015010922025297717315690049977457836202868783940014809701589985502090449804788412499014328655230752420965424566468829907022566148488472676829764501863662442680885623643106581791071673207684461304553398294513383361711299809698715182569128975598312688053412255288231271053220747257375598929091575709748513467274018558236118696471191980185958124410273193222833577534250814665008811539196300052628325993043464164420852763913211969443443147248872744096082710253682565385179636597349343908502334396946441201824346334587347049491249709175917660802328789770992084960719475409070692269537869416999369852960059027298075312166783788578822774950053916378834771895649134052074711548964437642895361910678449937406476685367450067741250392407019543870350270504087581215082891886168347306249861970997510884705741994319236722949887162013647974227303373589675478962031268422012516305285039044874998573471673748799987153722108557999464073622924032124628391479194637705855722551149624975699782780311517079219663742343520837653247070562586255149820367599251944190703828414807849207387679094931307605680975877075343780603569180570559986779477231024291150225964632269551991266659998521446909800277218469156537881078990085744039613916986465667428989555848226243109858683617222991138725567926719830889423824596492411728934311725826436784588663660591112354502255247696205961971527073420954330424131232461354927035004426454067465000831850975209153733851085527262264227153355469923675825840884884412588608357357167239852566680797878531168612599080194041773755215072754471593388587588770694381900766817088384480422373029261527997165638147699614453932038486172923402022727211796098306392314861149064459683501783110347337833473744064973764696300628289452952558083901055371096591051336866342599277095227263326073639844074004834615292857790092487298006864814958953739883125596006764651220625561176058103715302199231705378383160161926490682081744370321368847727992768855949643314119609354524949300888594974578759751295781272667383946221568988249780910362093639315143141485642281699370944396200067056238716494319208755261751043367154469929192120964554374780484170011081947668659987148146185434461783647088070097803550575602228117329446629459661115400976651597038976629529745790537726911256197989329258043321604038813670032311367841008206791437399573194749571690217974289986626935499072723052219959512788606697548546674274426704617744892986178806870249092629898571706720384170806799870286314123384190012195852590306029951528096519648424877752096899757786118853829890259611721118066741272406334465114128883465215136310360357818830042904161769945858835943711871719815188168371762742413416706421040662658363525059066739582019057335493341617875322708964820904168884418787410805421658312369979449054962231337160119895922362362715833630057526328210496408156216668723265126756606734932990483222931615347611131264054984397446044433768947213568500418077673546224271773742297351197845043590928000448988796885250722298377671818827572946657499278045966249029595133211829866713804672588129841214736724297039653139864805386366276947846839443456395245807413250924392509625149870435700275183106773230607352766503461046580121470787429851396444867461006546905340238754499418344770559229127406545923975915621836569704185048890341858476645654490618222879013210447855259072634279604820585405174038007920818542604569915425430498146303173265243012351767088676680675905314067909632652012224933728042618975991303366332910004613047643384757565676123639187542466402329548696701677325550855114053966611669901721615026825866305773796338693762131772435645301155750662091005529568042770067689166389539915955171540962354445505573208455725193536745983743159250295945605492697672974566966759362538278138006269172250865375641496246904551449076317363751828189842966170601585559970064054733264310405252547586834009303561530763567801213269818775587203962983932667416797241258760433583840632377788963386836881860468768871773419695819356824797831670783074729273431080323106239222046355452263217232283135105056167741359944826529046787574886464748807898643604642274200069384025217139938465639902642661068595660369146980952605553178232310996044855301403655911846971560207174320473171647152634920159837244812804465269459905004786928858872182426506685559648971220696658027375311850819841347943451077762584380143760603292943015844660693499130617220841102448255885054387906511316429747920259709966556758880808014347866558967119078058195430332982967389833728043775417436144168877183842450203870157452504352450268454461235823516292710217178097154533064239897250227438940296339309137956802879832941122840564796463290216607296720415435957627150691799607552448611414545051007210460263452356168197219258592447656009264236261619538507508230405875429651574252196067319916576245208260132883372622915374329167229041624389619687019734837446699892639073739840160260453576978243243111932699521221139685527226879103108613437874847377141082775665039649211917686410195575954265133248810597803637619739872825573383094485431319560144113367573491726877213329629376823882453501033730175494719211411049492607825360416673736593638308202822253967551350180483490955103717957957954770611248853743326677852804529229393381488749073504380875920748666828961279285928078116921591470573774159393797567688811930342834626925568745006651788222521574124337930616089731453253048664573194807627675001960902455204146673373149075296518849538438055488078252189488307283676403902508779174755765117632538879799295976494827783023137830430939612501874454467258210033076053560801600020203634747080827715939024679314205829329776477648475629519854530234250776943295581347073762692409841089290247385734857705247561710128749760566893616302062960892467246170924551335498230714083954774591642404928936800524975728386218039792538599020402570707224044936172293808479512744123426090788543812117880182694234238255952683391389523995283831250473024372754875449778114844227004466915285334954976352739745421013642073267351859076184815645742667653093775520577519804260454738752169532500137814353890353581449788919008288463258586827976458105190332026734753436320917801232172438629117856101531039688713534502048491298197718018581106239064734741855417373374440857275086950372979074204356182150773830357317821011557307708838765167531632231297960225431393608688872692257305736247414502666317153075830142296482693365344773972224019387314171040159971482232906137992655812980917433470385552372767361427963986108691352698741102616560276247143358448133705382006224583383351830599531938473416531022716194903012758529780521378956606150277836653353003281839725164295166303687354051574203253335558837179458810371108497235808685861634162554904470986998539534867010232704929775995015006377461257798068996597085552993845498894965992027398863770462951223541963986331185794444433824330045971189712971447312938985425439264511830522892232437184061215082741233085356468573976022136937838125867428452690528803934969655455054822927213407772302124087152662663366404298162339282674572931555595187300791999196656572401639247095958946235048151722284722111624295675771884268237967828553960414630039217377486252795289039828989486904394086061174617220116315444052716643269217914862622642393898845938397634569057190776900567733378349617605662875994231670176261234470040109628043544965450359077360791321655738769696934719680946809902043880996625223426174723989865758972999054933858264658406428700095259260400893590313772576667538122540361627189400728895357424212686247942127719216691348008911774107547226732362565955855480878216925897777610584606489849364179356673074728176398423487888943296735745393025234925375689707892974019421472228119529938707509524150645946735166426922955797941336175637756487795730237588643766451131909870851241910715119553865905102246337373687730949988733600539176813975465497556657501409214640358878697903968720999646821561850563600490114729674564545391512294854783718856536814859478896902531752311255665761855347683768896371077140394090530780461751046873446667789798622111717162874905069214164407851298291452025196368328251191305925587098718516642191816775610750349896113613264333477303634276535143776527824008180112446851179357936016713067641092893343841344525777613205470004115891086426922148070051350230699751108812481378413026064393884519122679892005585819373741807087255025844655020502836011632073922044871392272105042357699968995057241876120577851332500705777571151762005547959154839327452471036707599741332137877774910689668157945943075317696471900585910335991273936086729078174884396222705424135600231860985291731490418403957727864224669967249232036171682977668010557169556608042349289113539036632513173978277011687258914433668922483369323895198559348706241319853261973740572239516202516397751209625959515475855298613055918548728956335146434423535148485311484054117708712206310114466356744952130487495850120683268729295110360912832469466351602829265726036684827125010358311459989218447014411073464413360559749049473403261988320927396700976261915141881420756547574396419598167218193813110695830192361858452261345009530982416772897219549249250813076205958705085367587980987487280501218522577204120409198659841082138575465382742856843166779464843774790329095301907517804570927501864541105484915590299097096808740045772084724863032324837266596974674705837240395290882689237370800845850568584650140530686797787883622003084157275731060419180352379570933035110455459369022506610037209829632134414307981701466139697480693878719210029750279049129923323906479024716465183769813308497252717695576707661193840326411645600926259921222484144561697751587593113775777704292703580043433448049728644199420890265730127028656958980505225006987638377139917195037220782700574988383615298433742959764699680944543095963910970373853157992851547557805960187378020600721669680789127235881372145535402813317172969843637742089189256312575380415736096815247588562797262069389648561400974099559566930157376985167119144024997576666665534281427105164627065377076621029954119351778741133764322771788969001157120607272099578944491024577881078891823213927539891463632161709022805223226176326272480067902127164800825049757250590648631647508851904095101742170648708480250100527781112646034517896323152876513184025143042216954904446308516086924255898363725357739840477175583094788877472259092622784999729456991728958327672046630697078818978522931292605476228786977966357391810356157361919318090043039201974657194780055120917595567011028504410918574317866300658211376746196319977994667218145688840921245156909286112725527883835841964046964219023791246914588525496686776976397047359283623484648788333527528598788974541484059848485792619004677183885540323272423702342789044543285497290805857198555406489935215680510509748284827474873453193333644324586701121008092639606377586066599072094150319319414256631542794788324142946887425936430429504337278101720008095918840866003700675130912166167050475887265907907074274144828641677639985681372692180521377217262169077722715786728166802044551102247731643983028729084321202188608130715009851744767262701777425768557456577514063489771273683305959671845257470981753347097225615851050520672217712169442454823885878290548164975412296589422588144443241323915311107236203792333529124784974280726272204444887851912185452731159030382918001091689036165637021610514224261103734474973574831652870867348287210654389353787417200577036156723593198906103830389618346424587345141918374263311099123559605557024929744457189262512378393108252524158669863583546933210745258155159489780912411075875952027401099715877686419819011182832811495211876679707909639986907003045540783101674671868481843710193703501326761195113037651406242976386999337382149741373607327553186658285694980845055916950984154316872047515892025549351115107913525112253980510217828279503732431512313395686661663686417850416504566529326167256160540206798418007097855408880072636976578975474642284927281138724145633304290315335024295670774333122019712349693890670691042022877781014208567342172501384772091018138346701379335218692545355143107602130610682536114304664419256624134190395314055879198153531943638903765823550934221335867159019224483840325664763837449032696145718754775764573170320211580984508724164659095092024085821713293809739391371315063144413714897420467365627597729249349585071618902746685918248817346526281400723508451254263175355107516076843150792523040780762181285581486082336630463772738359659056606309702770326963621380458886955164159899999729313194529956375071998599399905762904864334537937360214459017236192651521777239468164956691284723362314867872558792239877174776560360238376569552825219515161998462210744294917652000206752011221797385950500459376431006085673078644469208233011502996550348809888607329713221840128657548268566665012552792033416081123068415457303124587459075712095879441333808597170987632110839657460378776017211056160220419192358259209236848776736640899758367190890610166979188734390796144590288515117755055637190951336743590164371149694815261731605144701073323924745624289255606470553074386470403889218954713440165512849632460818319987333369794525122717123878457619882284753803121814546106970966790550109692949019263622777048322857935908838108313456124749224268422899930530752388108183523718634426340330555564775157405442374120880045918661299057951988355678931181896500221071694688197050536422662155575810158805927643722011295213023101647299821765627586552531788756389575931506288611887447104775489337346064604652783853779965311677779075692299993297591901541348661426555046174756121407342376120175956786510078415897523496463684325389559925446203171943321678989695068777795053004624166488904818435384995016760997309257807877200526666431894676077468663354931070532146902332598421426950291280618481770909905756667778815872402549419100541006034144398590847828631770008059708900490665621039969847125722861408718539360265752525340356156970993093578318958769713448851444890281215648895449772294922386310503105507929345659281490797870372803513922497349613981028083620669979844257190313997577147343331549311463830800936330108109222738260312370644407874514100209854616362335460412040106704076695398778526416954839231547885782905478106654464308325075362675257912717452797164259768287095722902930557341326196697928483044456351415749839783371775354128436289134614095172794131453677500034025004418212806619514940083784272448053257664822051664442293222782750699183022328320391453226117327244541439950902548636984198533854625777620557486840117479026809214543642464819345987708182430956330838509269176935583942455485344903037400467508435201261548011997121559300423430399730244407096100030769008917458973852454314484303817724449569916866662590982791172370191433784855216813968974533127303296462868683971468954981136066821029750241264967953767653483782648446200577760521671463520372296671670447932393989715115138369543982171020332725681262007011676489515462176011361301945305954557250819220633907501689118307379974508970441721667562046776795462939452320431982723161251296554682977860148431666041645126008687505672197641601713107094042536429018402622395114615727859491349653867211847852549033235964505334486734090679882292506944632726775041555498251202503700134009855449038097203032839622123604655311122449258418801654279978604841938662828534183852433893246372520532815556664119330884786362204284778554786842245219257583222456149239987679304293441654082551441676289112169267836073889388829918985029774642752019732229983299931160936963056179559153380908974915953977431641176971931626785286218594035742596179446342492834321185499288761327048666226966055321957117984981928486919828171868948468624560202339904877404304016460931166570207844661196563051964252929399902756024203397163670124621425737315940010356997429650628630609366096062204269779884591032232504043896605892515716099157376065382427984375629831554873157393850474483837085113561716714226201359825579705640348565442648166996795759128376736271281153912836826883112886607271923699645935790176235681293319037548989799214605956236126573916495833309745356957459139738618919288104554131561463972459090615684467557027369293168862312456111111749283861571332618425577036029026005815866166504621176361844552848800406872907648084478335542051817151021249030358370978483520499077552002924564894490723332989637448796158578942912555907340241619519187347475861657070348353114916732875637870751027565221110289218639943987431970551826718051417587189552984896562778179725921523116356478372286099656497567909731849870420097638609708136480329395207540327415100910652212581910415611687936012863325226804631550798030719909662656419831056126202727410606452443553160996580126228609891249500729823810159548859076656106939100550077509161347015911393407850643482563686810698348419983333447621892921643676290935878804267438929368324525440139238361806602640340828126149057368565612875112012960576708283364035954801643132080369851989766138287864808401054877230442653161509910956880274996030536267462264825747642517746006053061495546538859291212860124520102243602128488737627610652030616893296423220269199894888922761572577380935436860617477544906802165735968262853816134406248352128178760133445247283046105215994838402135787593468255587176518990328134427656049215111496720332347148770961862993533083110777748319319784384361484839720302921022526779647641232588280452360185746323896033997828739836823429631631527129697006877659439996238424681916625937816281337601644361877376713587623773899105093706824950747348758686998202164563700475908724393705312802165277769131831205565754217584319997925574459210090035997123284779180468663890327945311977734158334735229762746406508646702217448069470161217617440132992187191479855506135271099007661136664641163011761522498492230668471643364326300341766472907600496148962613601049690247603663415079586288057930221027019044753032033524919050697138794203898736125721142812176141269046369858115245393288048738529038570162757423664133302107826067604037516260177842443350021650872200353570836865202964561282142374250231495011391840358282140118371805108526132031353780900904281035613424698858038184940580129405963446139304347049216166508135414947475885956579952592023051189789067608411090181695728957140878916984719675179926510822641631062829795890592955558287290010473984078620864474131789606897714540885647687086364782359362693706271181858321976838850133895589090983641559220609301837786190197858439936571407316924453538745427004801203960761017944867048795357527323733532045277055997164799899550291699658179916371604724533100958871676394015265401493803553825836159625923149269949969049611063650416240698045240840524826924960721571239753342383016766210984772759803689267036613718068282127785842145951302711756462222653903743386227426509949380948451078401159774724594031985377576123280886798027722923490379049681058021895521517748776092110485002436611711313891124773142389677326621806204888261514959993653542561842443365024467354903864683650849452906086164593601548558840095332181389088257135479280457096911383819845832560580517275043090892851820606912715688322399245886540410408445678462474684928460258884114548576075903870239108270149809897176011343118815139154810074813453976318626421304411267272313780225790295043888335149096661217492860609124758381536320337078779358771873720076626883138231399576221611489711676755880856774753105681289376335873190957600228168736136680733435877364675658606972579409682063281362800659002883555054189747768985928879333306435316141344135291620218449836053600973010096595403237149770228713202316564667961404055836214013247867127037865963235380412720312290816188038013804464318449297545590743556118473035430067246122751862953526688126320810403585029711921401175501036936569569121818989491705902206598621240120067632165084931665867099122977709938213192313011542288897032939216266190972641510900749472790526638291916105475548517762091819462581984512283028881640200124410752250108645986778497831247486875610059906057338915094889890559358020080439222025559976068344943977211981075923269069811976891959656267657290714902893728296757283850356808706473598609493773710836065602056678673858476708338502708479794620429381582046744018121627683546244785174703541227147409499595009050244048796992500719859843231032016488916707179891989528631087702997859554240372341532487115179804111222480001272885569570896689198259987172218169608402453461075570729460697128103733237673213620660146353671165033456148343611316660874170436331161671532005988745844577876608289734313825148413481735897832869771741782768177887179989810970318642913695148181208809169701579873314725346682282530204908371521378648301525398040369779799065955011009466687470432796280841473952729305400819216277993059169763458511989528976444912698781860515180445622679957440866558679373178329936445186030678250734621933949392582676782614135313423859300827866007743844601103627794121160997466711823438158295835515844477881625221869527052542505578156333649994904159554539999638540174992595601155567216076449931881280098795069214221823309017412591271228935419417549980964352495104213520904182490921907268834599772627587942527241671113101151280874585493649980121155794116879832988791964301740367433642121857961531719621560115532344530420919438845325585157475916874518781656853808639903289386591945099145412311611159709691165746717587834823245843295873624370764606454981635919574711191213111947726058866842412492544008627047563807263718362005914453383810156765279421989310330480179374971834624187846752636175270082271129242197618295446362748079871862900909341969822387337398819163232774099065028253720933325841613005746461624121467894939230055041064899996781182280062856912183613288910821512585028585228734393859973055266700960332590430703829808086627917238720516720425005880300543480304972561867776974462795498927335069806088963412272931488730502715492807018496199037534125618789938418659777360778244246034324873967091993988814678188256046031518362445876774241316033134095628141620837287188019948858879231633417399298687427691080993797794725980532863654403327200692694133537336539229822603667661345652917876707607074301416993379521650165337110259002072423629196515922080170330436196665191472993323181034375438599862215892569174184546102304884044811462211389929004507861482805971670265466494629194020130550077765366385108800282497356909299015906289238343484349774623075866116793005053605363640620008028860245530552890096206916832071819694191351289732146996071657305788663572342417607261152591974333401140745117842301754414082977702926993009982562479379271106592521761008684771562495600818874312269859739827867897982237462238464031189378446170182066697089340675103581203703327738677253732016635973260766493872746804471221569869663930114256395192615887261485872444905875291762429770214413340417860688292096098594548294013137507125040644343417657998428258209736584930458632166348858568185826022136506816596405274199705710610877191369048749765323759140661230123164124626405604374775411238446031675696753175014918990085191353031676573067283439549734184536259197057942113076004507685621090786484167017054600347576910454167042445892215322385344097681074017224124702608865353781721638167956108242182111500085814804230816532786177161781243058484486850344155318725484686764793571577557292207130527440006998956607417613861785019228927406607174311818193777540003882237093350255297891333863153518974690111628158296103724548786193646794262643972167305376083789740624500022576960560767876148406212002059485103440820329251679768164647424691920671418460213216591749168471735105054284957035261058673967390144524012196151079373171724555907438358006085365370480379732719091644880337016652168776875219270820223630549952606139552700018791512198860295996053716224358933532059555700076811266914417200882007522037301004352284965506537407692324819887059118044880921233067387989617983386990064526984567518321934246135439103094509396458942360358813457611180178511821049954074785456898141106801560631635494600200794649830583557961754065422107261239155520784673610940169888323054203027501925568145577942074901124816432513735062634879982892461185006457430144456839094517268396860897107227069006620069585792326886793424663618291198901860923973960296318823996775892262692040080876791108266304173216795153704591853482013710026767521406407849943215453504380786379733728981930873733437921725088932049523814244190342960292222411902605670967706616699538611890914760048324998996089419980886250810047234483745455136950078083747755112798200576934640959617493701551652090538579055084333710417411863666892398051580702929697962911196865427893556060717417705521533088291967374189358194065982483502067479196455965640857572100855795922519562741860014972236418247420089112307220279082645863711967670889847635190453939531409229293225640432897965534467725986565187871770594209477781912780252102104606184131861406499969458030705140337778690154159890082943088492008657298815529073424952995915112896783952504375236361589888131855954896656548772908302021125635831600852817385194251340116504265927059047044620127891826183595319636798426776151609794289662381057613781442002024065714802680960670089342872629001406460982875202631111128533389563977187080611829827909580978075906210177107210723760713577343984845392418157713456181983878141875645116733616539720731535779249094572770576589925390960960046250510099219166072847647606165510585600254325036049898746127832263475294155158156978023949956505071694010227657503149076005186389251589745421639595506106986249670387660008389761096795869859113987754183029708675487149900246680530113592793533491171284545612561909878307772586808634443327046320786053905824066464848820640419603657613427607155742716214802095321098539072774932458892583665057575757659274679690870678291155573608655324874048179974643926563598644007211106551234533271493267214257148959148140510137582665876975118643013677427146434859130695382115325477544582761525453741762787503546790056284497330882996287233379251026173130208975426828004836254504784117975924381677583392184896456909513941916294541260722075953588552809605500131268396011960209428812290919559389990165013933450783860677185056005707416869460727148389714693480045336569579218755418354006048802722778881055380693824342457150440092375469128865433417406868404623027270185945397497335007078846322999996760955925850353465156596881557089124812321889448767143829352054557510525777201501357497927757249795115493209277873497592218826086374493710686244249337229745124694895116839195685582146444502204943615084105152150786991003601914498403635868436053746381495986092689772194290541142459289601239554832355040001065205190402046223726183488346842863484245254128645781175737956518846441849017065064575699978106460323840522502556462918206615619326086372989666282466901846612260646524977835625495807793830615303319435991161919843657231783941555614179131058639477770951968037607812559990351980819116656504395301573569896452807779806357399217682121743568641228300644457954559755520973133281396182239632523977374444358365117025786138155627626672219718991564307011929170423200042192355015194859268998584637889501964949693548156880210294380568562224057382364278676914112364057424494385813929794047392960434440228320297518645816690965064883702720141327052091234737085751646300699585095852954234201867214504437705815424982416880923395794707448308038569959807061255455595411763413877641420873266542153824683976171857995159087598445558142363210459223984453470194374813534715438038402431187171614049840411733939603051645195463728043212805121726042623854658780190216848158311464093409890802875805041888311563425715610328084360916860477122812021137592058004071813332388306047302781272765519363071353909892525391090316405654878284053045256734627237961936312770371185754261593112165617652719507443320164657184761053501177935207408182317188082554558334938932156438748209796843383455857991375959242816347730044646690551318695419991921707221826363051848089446937504096462964486673303648226188460541389799595695417189724736972302068900977246658647065472497405166866501343616177068970992588859135661708655200825167143319940438514004430813634428100765760847128704748962158307679656536333657363691137118491365043906577190718286816075247164750280527968854526926097074760457084741410414931237162602423850429876382805076935228341997146454907654199045140849704575784582855617233901429247612379580936236047926554733550752317574522994826235678922641541904748939363746506974798557270332546287599139436569906713985694900291566024089940554249370484279926983951073269953228843518314978242740381905810627921448005080313064356575275713136147332674431709843474879050646240475476274151698564916062802482923893353640503098318710268509645819203416659698876410291551057809017227535035462833358208242415946126739464778311573455358592657995615323937247191151139256092761006285088091000708814206008732300895391746876811140642272662046944896258202964525171182969559612160777158822890103200994066984852001858643691289965628575625877445661518007695792840590952012615283371420936519368216382296348308995360147731301019152967457061783105437565597359430280949611902151115321679576449581365644603392015174575391293514603997563916099111309935455478324797196164086715614759030307270797621834191195147069295149701889358257614753078285007168202175513173292379459994096482843587148094050861202936131896240436981443297892868901269413907559194318967461514077767010470037324128183070891432102680278695154452686009197431063078052395181692236831316733535627070789694071824567661498423900115708926183536319945450927054279771016648996069122640078692219004453838936134911931344447451960128340460160427096092573250657467001876655848935308848698698235930299252325651851390137703220470224856533387679222208691098458394983511515793682635677020346241370919236634468593695060934450773798097501382162714665054762411549096022725598564164228898490325492103008403883261764992373371615057819659097177144447493203499241369989022907965547906272104801135957233638297071949234375447718176590474395744289660219595533371974987391854035770492037163302617930833540790241047622107357997004362922671554859709080490394375604736902567884569897965168058047989862275521283556075041954094972603566266306276930619996381671945967422749304581570472372468972740716378042133642042881390780889951546360006909029441375121094418791137913369504883829838151641330178448629480010716135001244938380990846716379400240262442631221362424937656055694397093167618853349843677775584889542681116038753677685781149916187234634277628394493227439478241576675618190920035322064182506216361911013680105022671023653681118764521698215278861304203133714511443900239966424368401978388917879417942076022828826692133208672531428959391355263904303864313828675400837541569519560060031369890489992248286323827443490746383529114562927498836788924047941185646365475922804776505900391532484144191703855208566746838788845447659052075450719658382743364960155087410936286678893303972974693538195956058335788684779124988225333300497866734787377665972279185307652031472575580534033866996670626116082016119671738597204291424861493429713192121140133238724750166235140253558088096501640636480377639787440924424908231693643273068001090634117255939614395537970204432918751911739773833841535235278556206790351806282738383970447118195438838323571901870219407734430899964139897394081143120190545871862716090434686549528656799919368766595103578158602892116493148992945051026156096210190568215654752943949503870033450617677030303934944332772401706181233034232498868243479517875968723819637451975232519346493051646271976140791946629040738468949799709098567601699935376859306354755454240166810781263037126864746939532568532592331193530002128803530576716914138811911079358877605934075806783589073287532517890512832542495813157735136247795692321201502564776406299207852942297708873983273939515795576843493804968033362184199727240094717081815186321388403952362156305823886250401357301198390422121596863105869604082282235113570908544537759546679815232051429510526270758042757491725133233490244883369560863589094668284309881319518392594651985462256535434609918803273581800629100999107849196642886132042734785848588587652497848855938652676128214304762507426422498278261567818002483759277813029950275105615446243466077463009784597451298694081221448181086893321682147903388988457017139710825934030927710893746638213621779379229846139603579841108400826195825444734257913141606923988128441427020064792405845923918980164145569129769044192534164573649626243882821236771123851615072101561719309792274775260097588466711977285375438176751133197629773954226460829402899761002729304550162569200684214358336010997042111352383042600117109547885293340466165404364439774662190830912922709906986141639144879864518437865063940677111280848294871096993805972517387786371725195229342877130240001882360541261997065713408378813218150547025857544155399116584833978110557312806914880758400487168165472292060783082169297042062694963102998855967324567976812082186220467560013482744951591165216153161039437253925261751138792529791394864913195597986762601156345475676312152803491053055752438568371234594052098628708649688708311172390051196411537509397331108621995105244758477708604981106329347138429862761033230876294856479187134438923984476143073725507889224691004144892261171793417387246849120678218594518223147665123539543115988205980419383059959351393009860790445931175067905112573991413612440325157206104542030921642887323696127764168611447514966835855075758029189524046382618620925850890585344498561235742372590119363350176374506158357811220375708156080738155062363004579111595313330300600568146531937951669700905611338953691454716607804165495514234514314013106691225211040654482502211682184210928004933362577008769319656168251963554289180402550351156555671534131015499684778728280999444044450619527272729738290039813786553079052296519613468479168186207713068061725456023083071288429239812877902775071904966038093258113837005315467506056572490645353846168357441008648774310308399565656711290647273456907664320426024414115465554677597717156229175142660793325239686728329635711342639949798745559262267896124708553677293388774555386722411898716362764559121955518997021599628191786107050190494720710796500975719698592438321317019155936793080198503836286559976448854971823649255863801805633639207089150625488380754017269123084865310567650722528134380566117113641038434453944420845424090345557600100067173775902522931931283574053381163957367817805966917755297514244578101234046637427608398883577265113528401387991347732627863925295379412670032209930394377616596946447672859087789314265945888500678522130115684662511246456473981097161571135873199518263050660700915128559217006123267967139877272672972493809655999623885721341982382636284731912400356755557919447305418359988201279566432273047571035636051326954307035284725862107442966119216064837607145134770998006322858083705856237674189174429266494742561436206539606954665325221923255283893411972194914686904900675022234919544833110487031528948373898393925322685206837503419027199394297138384155939032678741625410891375470750158894154566819268322258327926062494832887036738697279947981728019293884918082252745171596517903748443337008582692195414407728503589227599951324904123730633603284334073676392261574627531077581045516571447704576694480026770736342294804545341085988980834435874168087652592858473037070728658789538632126189520401689820431886043075436401838881113578521343841301118336266348917382494196759435829449722681260352254873766207138748017709462822295070675377992911722450585133519935719507001281241540425420549663264921836360570445580724156405565072635009336131351665014150948496777495040833479840388949395408517619244360407795052127911782503287209925679665432280241693598868483904782852946359102435350747900440986569487434828615377761074213544139157727624869053483662077398943931611533079653035010058030559430440182136038592146650687235986635517340726012346277890588788075325568090528989563872616359531495796006439288023968245084749026603585124362858874203611420057361368045150928258126385786532046933351021484000756224579728070665252012254163436474910047175105747509982708875119174282865272971434593328849124703212395437034730933243708343961863434213882901388233849789681386679681353889673874451094177551702092567131290361246816684919136309084055003314346146113943962090776271331927577353204667168013221760071818244743462689932930061449554112001319778087283155690571367858951226257064053161815044122389396213192509169075909849694852907011910362603649940219699086602457193204341590960171997136733168033841337397845228523116034244610538703366788677179975125326051924009656890148758278582678420741376720175715409189797301567146183678520352054208073557343639675069322990444095294770598915137839860604756612507264313158731097678820438511045381980145267526269501807938750211044496295988228268623226705666047106149131611927588938403538437376472843243218979179652000740808934300359545866046455999709635684936985462010083789811653854913255297380753844197852943130606537541038148569362500812929730523879503799832796127850484093357904749083786517495770247582739903478015910595607410246052024243736470298431555266816086143219283876672114153385311614125619779775359647090029930880513053454937695179580520080580527422504588404930124410470240933712890286565118298989669472542974049823801988877572775103850476705735910494507434014207563652160128650031889187285306081615347838806560403348203730814602953511390474625999393840922528479416355495438920964863857912002842478519631847866737149259174923207471826825760637392412181519858783042598039306755554455500813269946625388340005774363895223605447130362139517477825200851306239922546341997392648723571040561106573747566188246536555179940258367772937354251237981256551611684817657612862156500483644748251362759692047251829892448964416383921396374860160470988335665175179638123823686524950385913871301529639528146732222087219565727494941947142726810916677457642221398641591246581386603247334182182423729738365039371293822623609268046166544976485008835466206636912522321637214920648576734146912625339726049154617542357433431236453894098366717895381445302004442949603050263784577349793575012251487752733017454567297154609899875642121757111645215431562068816569959258029860998570645332984840906313956852980965790082142424531792642251554513655552260110098932245830289371352980690453422610956591453944912055524694062363441230060054510935910814762941365512762093453328376275493417888629287209293319821674542215884673499131493693266642442779624202546437213898561522830492633008052444763220319864716975221314924687678854618423945632034379704150262235236918826771754464926000993272058448796824530277866756707637066856985610146061040374819292798220995426596471289750063057137138715367637409654593895259735862050588851751318119610862985058470302847277278571373158346542480829897243931489272741481539058720363743198824152103841881887594003376237761709929294318292050996890488156163098105355450121236471498306847862665940139487704024970285771533812785654193097180328362153750415054071370386001695450060731647870662355528042996947473547098248442746333841680873377881663281879944592226654599960602740403983213765745895994032837319250857956407970505391426584997056113785304253312115149030282155120486441367416102258330019309085192246995314360080025331320077130807543992126833992324119210357496833338530599611066275502344797980571283433090791711506351168655673713606751451686999187186445019336129840719185481383341044734623371155629661227691827997054298313226951631534496222535923941431303950281903124133100652546753292022451925586051721784305518189136642945950536858590166897708544220369368279236294164572311734306315456805387461868042833981930932712580658746883847495436566188632622745995926764958987943253729294628586240239553599004872501066636658216592801639375870177951675712384917817889556423213860986618777156395021090875542503096000453009105505178893155145585058220081526062269068278784862493451022837265678718951537935127089560713613317455621328521541435521256042640863283171497037187057337637901309147365580854764123981393370251425778246141743931656453310309894823650034489345924765215573765822196166056000270179053594914053094853915380167964309498479900163863001684546166595652803243015382392975621542582079538364599948258805780458856709825634209586341311815094064672515367115272446504879161545113102812578085116831622132866532489560421665497861126419959676104811066368950969717470794956598825751873281097722493220947367231991189891579939896516904312401995126961998413649602491763573346090749738376533125526826261235472427050280661595007665357305246849504275123473965628446430488863532239883596520986159287224566254129939291728724021005038204570061737035029768608312698831048373381794521495277011151448064462349730770812265919464667799301474790034926043454746997551453053815218205447495442712268922605500369039276276023789847471650384884529191695189569662470998404876641725306522278242533140671705585468325537245111217362058145567980143729188587089614786061772222513997642733798492240109402301703906227972364822163718540568435883343301650966661283943954911641346215316882736003590016366038777724753023641952487796331627511561706126901350348192896447949870952897132498568472665158988771714057110307513450297162792917730941326926165163332469307232217682213489153879913734607500469593231096839231677144299592371622831660312076072393369062086179596140195850618450590103147840605807420863042069327756325901953213064050623322393386877796414039905833164159180718689229755288295267501349236942313744082362261074554376295843570696024367147583645879124612179896937004969627862981757694686967370020968801814133466450213741903627018211268483304556253778890893045704393502040586113065561812818936709285486400912118324620090266507630301532549317325332139092692222330594501164363998900057790316860483888468758627927385476815878833983740364702151709169757672470626063837525736556212475389262523075205580995620114909032253825710510992149680582175942269523615065864132918132834911615654880996515835640901295696627727090231634168685210122514237898063443533807338802514607794712719470929950246312834237032005306384304782507648407428697893785910358151850707882342326939584699479992015223172016141982824012521690208696024399541332409225691249405569591679403182941524130381273017032110501663885152273554786713240060102568614696032341287234569911946926735942156850828606213293040927197679385344522301817832261965917525645165084450602737037999793567913871815368517794879781926669694448177804364322932123824509708589068382119152858352948005298285129867121523105941279890986902855189716502054416210941516214936161006096135582668332042188857684549676418259527843994730238496565444049957078914621469185699044492953465639586008084739872672505406572449048029074012408091823679680307803096090275834608252837729972959137163676761108701567662197123127516802891522370764282305354835495477038259983238878186862206056141245910645416756812555580501187683067624890711826877640307357185308512830100482149357687897317336463485561911095278825831836236096022775711933848508880070061968650427691887451239240628134589432917601812242000337342000146537986337629187837860389599217625524956066245628714655032839712212104381944990393219170280181333468068962848980480965799008883581575123987808754850384646456990204173267944028342736687230364883808061195520460729241315866469941263048209455671558363575673212289992372240026857356722081184624732715103123992434206867264254883747509768249543689846532877135763083834910035309819928759291349183463589277850055345720400275434129166735052735469956918345958279989711801035808668050511883111748910737683704259914769283404514481952993938019509590661699342477746781518414989178818288235018787583549876930180253858744087171818997630702597007707608778531993142382001304675498699574562664200825461739480852639661465362508548139233577737573219345223178062262925079653544407729599150200694785861244466139604720944478152912186306740620105594590390252184036469771235006217491776219054049946773885084398469544169162691596465982091980808258213747684248289147181084817857034645911133819127746558687819935990898154432468609790814523288590796515709652132748638887342952344528859727974300754976782319636547499503825089512821573298327568068602743647889911713886590482722261172766617854570967177510693471124999729617685880224978786439705877615300485976365302316752906745260612546180566975689318685069276143384846480943362887289723331109898931297618932964332885249283546519842614208218287636699830111624123609513463887011882907811691398584617265827546518944053748303207850279072482958156429577399148745484598209460083258019325183082405421980508487941918641838702638995100865905017219958566869716321328575362514929345850497339150353927512122634770805658292749451913310433165657604437151871393441608184895577481087922737919717959810204172117881932163754282548533362504251158479695439754105608160545224785352650534168333581766809276771900507912358155261816880277715971819962683760830282138826621252500364801939917872491136537208945522924038253872161240142856027200856570055856639037074083753202893335123434393526531183723550038349284219691663203367223506611335874629496363516736774109989174460306286332938197752336926291015876397054882579179886869520838872195638722813581667523772653441642825033605945869379638590964708320675340998439535704075997602925250941303266020934492944313136925939230592142597022479341965409828937625235405572672402102560977146154555201096057163145513299681190349295690830856728268143073285430711382957290880430179624677078100255667055996366474077524755402595295742340509186691616921285741319790667848906116379758728035124496932010845229971616800442661722625860318439629100958700461256055695998245762533079887389279512551869216275741852788877130229183233259089839998612286470830720799413021782973984529235369169623856501049850310681186781832155131938421542245254287889461517965535938398252872075956099967357426870991848633279350753896827346718836850937234595935773498876228428284452159983136084629204150146616382540357975861285297835186669434425587698229529332902044522670989543971317557430975034828330358343587017542174860331107148926557083693115867939713948462475209816004563308273122945745561126747131103915117314408236654663125283338308415065813046360257233899364719209394595828197466075340259020259356036690264489215348748565405582439757774707414226590251707792186093767563515573001636632453829159744486812041321396831964990521841551744971945903604716717972221852174908378558281420534979670012200839035872846086533458907362696725834633697407607709170338014580396731488583551844617835390237884983499876893193903680901152113584326967956161303849929571045923807975689844728153656244359857574788591035412557779746049803724069170975652393774402889383889819277488473262841517144561843217417945871800048509723000090004841917533235015851245630697974540101849878855058911623989396884023301925656262635280352200671050629169867067140706834366017167519002625490377150392509906452797340599793812539757700406654126776116139589530680104791983897150856466861454949132074524791731806635553739994477838014661286546328553929059979673844175008172787648993489336760796358378502856965873064750622787173941134686186946657119340263654240321236603666761225370309859769426556347930003303226699907137778151572585444928832840478726717953245884359046772819142329084028878676601495418696171270862870348781546404154432702543862608283938240741709013873864649497487694104850875083472777451899799087676952801820503033281852534526329092169865677029941077685112521921492554743107291067294073138453132787500774795859713163670323488343605112010174707964355849447960556261669968560838619067884781470338071716769465537241135287807550314517886311568134612171501148716873324861667995077243999152675636176304731870844543970112485775495857379212233700639444693892114232035068050329845967893045284144265424419500801149633228271292620392124291694623851977937038122802181464293254585404621253935967247701819906690972674451195988508705775406984082997923299421390100586380478050941652976579117277808714462148608772846808393845566153543642351624419468991668280863311979924272487113622981626003814055694164686749850555322055062537762783870774544598693710219821829743827440649640725795908018188072002274809189263287902212984415380630268913437324998944189856760267775619367534347739669239085663049061532496110250372050271247366929790488262604517802349410001459403245669840734477715602207514482110417463143986380224797518865113422382478077049284473085430399134957406459007227869048553502752028464284509299787838522469818658718938797780533186137249335405092527737346776954714885890951522071864060795198458505399111145117143057397422313772856451456199442516064392181593807901236835024121033346967749075083662181298619238232426737586082285075100725338478154327916456918503542726619536586647224691449422543444914754508353837233982759765054111191785205148180046053724548212482567691851552261831585969334058919443623679909088724770801094120160053595239367103034250016284548930067677992547601171485246294276940509722767265750351172630432090152326646983579334129136094961650663335141287239542527548071699694479709298474465466655531294417698965105905721893270010375990382437358474586637648447642155754284099610167947893569168476509112486227371629985113857508335489159712183277036029234702998451450527574094126238380247970460401561207979834270862158898813065241471019408530601281844995616162705747049329428490904602430058068988874879221566807252344347989704475179571651207930869148991167405792989826801679144660544706212648676692945032059814838549706499179570125619831363728390764588801176905236013822899965159113601412024807887974743921434528236359636489145084336004334465043885680342494832689182563383132328756556498453346710374454861924814544610905600673458542573831016079162793236301489344269513388173544758078678738807333794420447831633092582220362935837189038301574023728932484085223024673457154170453945128335863980427233217297685094468570997623985992943547598424753627138323528230330110730529061822132982022094548568794494206009654619932208426981340129603624688608168478136755509694758859639381836404103910365302314721573982325684868807917738932905242084424584297959819499609936848904820363230161495821382994527980423041720414369724253430637699463798640385934019010500837116228239025214667948194949376233304277832484163525025001969226363436243535643350000819870608209285719770539752284292221505956405013918540321225604330835702060867739843214094829521187147158197252844122527200435781312491029280503626198571365703624956608435938824854995143541426580063635348869192983700446790468027815854876516370389228928333004883679181159139707733370465039342603110960488722998294920514618705845274811251047649728569242200730895061025063494473143775638556523227862735433583797837908040691068610677421088389057518139372790602265150330225815488626953873081907667234579788582685943186870786203027829210988258888615891103956094490843422866405279695704863947991240722475932480459123316790027412117971430480822942271437057202511389854131699206759544524254338863925427295473503576641961540533971169655613963379292417130208880177415439582162449590579734658361224363020033916599063249693746368760353374473384403168830714593990236776550543959492433651503893321600840716639800352920916936725940230999693089716472799430590837398180406542676618366541631173102615123498568417369387309726521596744783352911284059723869641413326877557380945306631438393966448065558725588606578220067966856556381228901210607796327276437888868069052971217007026462552615416339895772860143078910767823735832630206912604353077889641184693854745221519004944968967017891610980632101183979033755351287446297022215610109135190651611730586911467794369680811721003878860194460791086893379027700726823643211596557307219315825808221637047227991155820044612374911232448480438321216371040663365647726255981098321608436176364234032986768721262778975728112676183798907543667204893477574103418183845265364773836833074400756005595267937054550705042315246462333098720440981405309466961209816434026192072413350830405308940651521881457259481982303899476099425782319137223602238647645192883947763715020345306443523291425114555565533139804673895892199264704892121970609667029011655077786820393812403338868800156169110744904629341765072619335502237843431303696702595239631136017365759902885564292950998831126095148140797597836268236146656065833186296486291867423384804952893107861252291072538553190466603113380245952192640223470167884038018658447834289976784703736131931224476251499606100000608983150119110559402337736793951906434474025437485248842262818824291266592458511202878970317681964964793201639107433575580949449925299717562615877133978940222695637197558359229663348975497803345881968743051301095315868763359276604549786772464159398662206731527532834221528945682643094316841572727446602575634588446888990137004778112414216389525801763560855015727267573496088962233202044284154124588460617525141128384946933657509084770801692019296522658767771522922927736520663034657030995018344530954237291623391009622524189178060638585511827455940900822101826746092707957961696645038115010677992687003690793453694069755206352664317391058074383474520267005336384390141873499680207891542405243337002596310834224072869854621700566568225098128423794330305875487559977420263486641866181463697036741915603093444610712342338379094687912511768074622763971973952153956711054913550311596443200949885116947912391371227945727394753696570791435468400987606331715021040224099566340768849927025675996447841687345502557175697758207484084959586285705704073210264596674525968676285416732195827511674242312399457772062472612890145632980949242311633309661203992713806560626431482426248300951560672930140483945798538591087167979071424278649135249640933872968021533866578864828722347353148539915352860721379222283205609807722119712450162033633402638284768040239470093170990246050155180738874675393838210662357646676409961559165207685574391126819359649200924665977327268874430545237404921336237349195200473003617734936609323237318091855041847824108725676352409343270690578027932042648082154205115750525041931725292670745039679749120055157911659966908762137561908546743545518219287732613139741678746227486378460462726383047664166564753691389914724752309869989895140717172695549355792900369486961577728861830210810442902239764365656053380849806186085211205930709205294295678821383745923227184615548550265668128702185856117264801924732112889539076997216460583052006682790774107212976527639277832443678253216846204822029786037064882621091001795981557671298144866283018709716389757507357861852652202703846641904407191604962565145958560716237041603016130970402927008243309886637989651843445039019824100259331142536946472439342260487103432745946165513265092115252052610013877458455639682954632397454064084422115353131448318692565451197389666180048074524586553040067846714979373741892991048199246593057497368990894342833320010571372475618829157904379335100312565358253578338320451442138280760688735375969231421675247104621952313356566849228936992079364362916910874098098624660323934704823756822408101356952112565206297918513829681609847975600423290504417675565895010487701141544187286719369887763286856254247662947042343607231991512484728442074787389299609052573265564583328160510443941772920577158853483135195709449343790810323396726980761093941117752173197038445181218011585402597605677776277631442933157739709165268666932047767185705075761283465455067353665380953823088165320579067476186003741365422768336102949121213689724855988462210201337217244335513434476056607037120048131138230388940007596584988944038180605872914962552101813925314968654502166727969600659604046102746749884486680355226116118841623295428859659517454289778670983295114929959498858831741270377799242175982535060997842695746981367299103057951821177204603724717967265755953509331884239091614719088874094187170373876671712522152698934658008013589333978237152961938267265343630004985900580314380519437795147739186295183594628303225810017991102997855776081007692764337554523405285762858003505929302992273708219313300210657649418518828607289814061383402492199413250830193460832114620011473298282504380628685583814498327525995655465575108298961540664541309110199653800140225306928401978288826558254828772062676159383762895999988044222449319366003131657661561370641603245052309369768611275707598738712393285015624302216606858043405601549510372736616581495918120640392616437015484209451064554884774436973944586909218164670785655042742327395788394907004229837874214219858456776997869613747459996288993608487483994172226914694533913958921993774412053277302694251359523869707559848706409859340470406561724974495315459915533523009771185742208457437350167561124472634006129927125838463024429039452859141581885470016475953949507411882692967421987744230387958817821970451241708616769042632715239525758202606820927428359145503719652450653533636937289811875628318095456589883596400504441448823331858669531914067598780133995870405780555420345336803603989193785161846347536794909025417492789685248660312324325626742748961247796048422989728953634618449488906833126362287890826155054070126450502135803425322846545422193190560083194955235579426173398823846634982441027383149979357590468859551127634385033938547834800108215869636824856351926350222410166078102300300028433171391363344494572484131382136671967727437864382371796750198055026828643019464216502779612047353417756710321989965040918348315477459985727434438437942073582280237773288075997547238395204621704011921896658912405122200068419449742358499595145375904431281617145829833876920653956905803842990712434995810425631171800532286415724604012114626002788199320342308973847162493338670106265274470162425009952982377494004297684133234667864766863351738168007887348460678037009770474189759500940483514756949698279579845120332299528298436704143241107875512459862590693220783345657794839984506530623058158325291966473167338693588640361437940997604874284287818731254349729583664768042998018348473259702734887109409279525178489717683765194151792971215198698008257743222158706742780365195607576709040736551400785094699879417194035990360269964782983540254982134948271068312110311583124612009222766653146576672022029886365173099586603417912176932235076807837337908664530650299175591176901139113178747047302641080030677895713135114555989330991112131333872361488617840933094703404488309182317652582064912165498085087455696069802432155319037852699342097082109891229664651068931068292108466344543732151752694564545463609965427530143731830660849914550558251534347110488670940522574173079510925364439386617182866194050186891720838471886162489475891726521361865938339955655334570904436747494647436005626659346256712735004141247864288545531268362569734867480866253858252782269417259968090570779127880570760749291970534691888773909928780850172762387366374907918657942530333545083939104574990793440141207773651300466876068348051035876417056524262218838115490795323094359881512793450262251003770237445384663418769837050127456377627915601947458417138032658431608956979445081164235815383977857858167358854679395575667992126224987863608830586802581377892269369218800636370098922330081873261271558542706577025323528497744600722491002837536593328310960283363853647472018757438358355734183703295421335704099336300989748717413239762170274118539506777225935388397704810913895026784675174690378022091493067054180444349972619429017700511942991416531396377183914118083740740712155096116898554728926131471282711682115827490300879244709259764308320789086425970779996326231247710268334289314666118301087063905381443391311019138577198584450534812703493663045888561386171434462563367785723611151300216213966284058691389396374979303386777234630071391019109698997539299645818136101208018931611393969932150853125440335886074042252103255200269897450864353645367661894060727006377188271118059671458961181895478630738196989101572577283862100950543160352598107023636508964207393639792061693789399048525780443267449791746364187853896829042313493313794139966692396735255282059228890414254243413569033545891858690253657881034818751536267890732682712389319621706363965186144294960105834191391467712398225963090622848402442106677367452075570099768046800017337889088669982113640719112171210083673681864516851352856639742378557965786713715522585079608650990606594452770893217102511888570007022173605829379219955021362537674075279683165947248766202419394357070354106562897478256401038512698521764408713103242089124915503105297002818149700731724969357466050069452155531664520040424940295137189012726420227776725713721233130187742917159862665454166738725252343061652905758700873386458993712632124353584243994393041474573960683352415435138016223177636601596689373224654860743094600779144801816070620212102897689390431041542412342408300393989443434329236731839646608504209271912090977684973302025933122654527001236252011137509476515197297906885651362731360299272708079084683541968527417508372711358839150969989952985160901294751851692574389742148626400895287552968135686258986411835033188802379171148699997656369577257404489216949939268965067473976881376143929166118028007051955863138451239168946432630920217967934239314003385393980362744115194158469619319138054605354371238698946890185324246200141320437998993562977160187775834266838539849917933126402443265366353723724352998225157471098613024750355743487955142837606404875678285069146267685993531936351418306699651476956355183033555705214358157334018964550393505894161301773005344019798811566624124059246289796327206318416798794407997141201977542154340929876867935105646129883567029862879231675842254615085721813030092699174031372329070311356883345763494404500350334796452088705562792650615533837223850102099132466877615346243378865335234327172911599060157999338214514732481518301519654239829060024722183478855385456086331064046517045828152134032310146931112405968142262425892095963521580404998388837369975976971540392979690388605811818719492432652106470882809245030344299543609572996899717931625334877026023926802951422957483371294307196083735629236765523320098825152042483624806049214840550349001851228475403105353486660222729745393627766707348609820991648809002990122292823866713832380951656101884220265688670096019188790467490629491472339393114740324482026119019771722057899402230449418059955867395286168340109238222329291862785747702118544503910401199406707566067785187606048902837230134517338993045656075622564672605559694414636609484785477977281670003897581263669891433294769671322173435400036634746999564890538643927752384519127319431807892461784180707353110439141977975424725790809538198524235441178885347424852826539259389634403520880358678493993771215042127345159169700577776842964637514043444012085516961917140621863845875528290220105997146211073301515641214099199329706433482129103944904655219535483688649431125106696220650414482492562517589944855471153362071965084394351422083836363364791556819367955895955398304896640993116513485186475445675139466618996352397361743062107303696508228166991405852964095112710197477874973564216562184902691230654448754212788608766866466176814529455363177249001755807464668287493303338165712992038577994751465022576410826546089007669381973580038873120935503192098323604842262374776541179041091453298833801634821737510491661627332401232599606666447758160690053881559663025321355149301000494161952438379165363079904546120118736597931776200435304387722380854612624638672439005756909676485871276523156422458354721275298490709165492117800167636348500898121216211342942895332256289980855385124357771090312817931279975210362405483065300726411110255163874836704172114429623183548467993025353981205039153446750896112011179730331711641532580069980009575867532026743782698511424679861659509741384764388147878714613040562613926820047268506924604292911716351588710413026675967736406548512690776693911165986477487830839225386218064798021382950517470784006414805797383134798780919321074225860731147020971847200486252039252896402670402555447304806383072872628636377163809936977062900293015468901619891094358048463316201949361428426830614607762344688736315639178845215836821144640924818868466233697743156319312231539213186376205159596546917526156578469771008269740845310842267277506928475085705920022106426229939542954784073656090354533743245651714142435798549930804057781331737162233538961550887851239604624791731742331679021208477896308140190234299277931176805988931706308788216237525280142392466423966929721749589881655645026564479442468230963764641214103526818705166697151854767381117894009540037001490207490390894913180629718712928327033896537049733855648311251253262790197064141162487607552156299323507674676897029822600792701191770894311042222735170247783560167661109815471701222260331229446685584208097695627224022926065297026246188101337742526895148669388657342051039898896616033881416312050309488802116837981845425762701999811669885963646502905981210360501309672933250699507117725324738794487874417270062624243092897233171314429326181193709576439409916478351926834294045539518788699410536223644947405628750833807630064694183477806468408079611572648856201054581328853567338849887570339805109865596065828680886761713129173771726076452509233731089407865029980798457733823836543457420985226015804394247132812511922152982818041337088820081079830003596763000917076506578449045717507195225600955680594054262748280327721663859604433566234676819580998045889475529499712384697291225693793241861968178001311648718331061774250070017652395559623794427682201787495971334752855855844995739525163756755890420964974688320022070377206311028951354450840772554251562896932538093093756365291722455172889179256959878712743993198635921618069795724796136892725625130047035430299260471651950325679914923065717044651768238222808206823294740984665560008257062052186872278578125535779418113301330625612047713211735621456227646503695711320454242283715031280833198523955233340597597318246469855057881095810322748080532583150312347605237434943738423612449269370849715252516829223007517972917944493348592926175078337152595985241751112819439848753797321348867957042955400414669200447739154446020891814943659072637299907899042918720680317054511218803805990121288768104196120723771391756486640879028598950394248367786580581040642143478240324976628572067367701870307648330196976661973419142032361667977149026521473807134545807436484219337978149478093973610782507128653322323066959373259566028412557395481074310788808813617883631408236663782843715244286696106110048291868974915229413746065496219664349729923168616223716463994352498236297032574283483748956789925352438919587854064810738371433877692956535851857374977658519775329710104700056659879577677676247458759989484357373331287708014385720914980221192876418375678699121717404268395334452787280824670285448986155718435842927719919167437547749446812756376072193070033028291124664971900378671887206690315641387538487924902977925759422508796412606930454970826487616816300793821547982279074215539603032497877568642012585928283465396219945974716925279062698327088640539127681160946992148706277112432510705205884895951181008466092617963856017752736624795172653535799220879025160881902033006308073828063423324628271858097012908785166475919310853693320688276922110158868904409617286193220098654966418365765280074621261910033922706700692338810786541661110419579126463053087859588238336155164916262993502487265891821109345145950983854259657019619140756502296210295912811403367220916502125129268051655142483602851002807333062337347642068993643816992771746666992570402999016428680160917129791342789722234276603396133260182762850732156419947931539726049036187043549045084175047418488121553459110978254112520929199379009280445559170278074324909944994312883468027847166750496571067210938710978979717143609841191283468372267595116672316295443481519162306036598228117841555727158323744653228451840981324338466986106380065822217172636963040250796880812742919671052914902241530740737491338006840641833294349019037845738135300878210765122934591456911008924175461088315279266410889053671911553733558964637385941064680512106646170549526827045168565778614691426495478892299499684947464911898066080395814176066356453859386368823994096506625116970700376968739138896394073287246959172931621019139392634733353854140473445084308901612603251266435266522736020720264264109112108439875313134361224155290033537679486061079905307862727214328113319985645818053140280136955439221722553548330640371723991651521514513049145675488511376774229734577618249203343537091917173380781172786734168902066077549851541310413815070885599183860363669099713762946212342103819722215011346947825722673207812227635351078118083202370056566092216415594382490926235553561975431307554595957212138903456391680407264482782737398118119720103053729355178144479725239566854957121892945117376056520501310447976489726222105449420564606909537323650320760842729012334723533276146186051411839834684342253532550780491915474495355844410247085794809048497014472234766037428108685413289503575518305608913064432484673058146484106095589979079928833740596861129514904079332547000793006428888518127364930178030568370094335503541264107150739729856970566110297585873377218177710301527887886218963393652161984971305646297086980159587345036145624330288719278644866508585614872528763441719520459511577342070552208504855330963605116026498752695675061690475365504053483753096306124036270077659378954151973754521417905799502879643049726767931312014685444405050619330542028401989433891977960966852823591955324285133599917832065757434896087904387737069619117364602580721523361312222845578095191788395201639229261182869618460146533521656960927658923084597687790467910064733751968540124083171325781032621173372087301000661677151079369688373058333151111796163612453089488377988799100330499226525536158045836311999391631663780227753417903207268632574769969550480374278432581921279625308197876637707906427375063989531593635732137568009625027565803096104006206659803251107084984320697549036995241047238135342105094835834164690829042516276904518811383913600764980390600002695424775690359659475741077491798027349875989366668085595036186973064803301417278369841237800236922383100696296016767586225280156449917787683342153370469705915893910050476091047756922843687071691864199270008971693317601836108556181250304019948116323643998236158650680565045711738394184338288571377757181218498304692336620333917626310578265211424524507803916782831689244006614768185536338440294895705691534722466489359085551894581988846547395677665597944951147088527109558548557029805576623654732178586673315656746484140824999793746203147017560300277114514011642102555542805608562885289182268734902682415471639712853208397782248426989563031335548029838841993554041860289186911836896511999494774691868919493682577187279427523290292876967823704597914012631044653228043823257014189853751868204549098345567068616133501410217191923829382277113568424131452923123716754390931198686884791992528083034221405519904771431626192828559645887560550482591688236557638607670231014208208101471591251872566071984690208771452585355746235013387759185382214394201527888638142548924899735020598508245994322379288085843420731616164284513532573706035541906544919171050815724028641654063793237996023261705847875158851797841053283540647362640210527483275387268590464190231490246129296290153296794421573856675403332500887277259514820505036213528143937943508312578513787819247016514666662152193951836732459431818953727270040218514020542250511874576027983987658146614563127571144545224117708615288251759428496570596694092070162381517176307177865375549673305152321986430679432694908863226435922415110573052086955357894743618630196866762165101004137748291296694242462973044839305595068745031426264780293506456914237279579823409912609778052169875385331929642389348839896748768451114571789196157780414068027280891793148287360249708407339023456930424147874404343765824818394457700019382518976890706471379074411037497275395375487946246044896978005903009295347662368986733792830845456544597875729853888899280671870283627092336329630657855079048132892499387884655443670175673148196720875038223905725967936149800568697529610689776493931337368174319926400693411304779547433485322390008424453110412614463961450971890656521993356866379508220923371583704481773037326553880313143206756092428030734120812968343643948279187867070414130463719341648343029177310877764709395872250220278685172326046984932217685002780379317986483598595105854917674810969416405767361141391053604355336119779091817482722202348607303006319759972991645631834134446590339026558122162633610883224142659078109800339428957509886806738429497528878604792364514852430524429470310716333296760527816164049502424680831356015176479291090103311929410693531408581260180847440383496250209998817840076780756451495227005272871886558759273277491768110442433235952267395595569258824553218524625429526458298772093265721134166233492580442593456545672286306427987696409307776152604438733524629850603846014187693953908516517565914680664919348225077244906826203783670624699550644949123128708182601775876727587665598042327384292580603858287354770212144397400015614561481918688030648155919596937312307812086245615486733025322739431678685051627306196123843592218888066186720367414896271546051090127985191627910387457888377611080027779494574367124391764458857989340361372259776854181221496851970544445259149061351000327319471050161347717213920137572435708102009955151266125534388225277034546436587521385018776305748577324962705795465049551068667209477763242367405720112411229576931443722498343856428365226958321118118696684665456647472601810929408094320412787387815073037604272680212365504266950627463457720811561676983811537908677851492088441786581399734708531026076180941168009515931255977907454462830842232409407990156221730549268797299366932726830527312972627078892366338290465335659564978738322336729945321733172718222998415252018207256438775560379315480171215420768466679010647125802356442933719851956019122309238495457166391996701541673942319299810682822408780043818352986616748378028142879529875311010379536780793537038634570677462174616085050511807121455901532074942703226884867991893860717326056702159823866060061537428748226554795895165454786818697878179692664989485488774228995411089714422765439613912892430654708758834601153257998232914106263187096116938557904113431355497143677324842724982177933860104333398192517890672532303184586865188755263959892512573654705913361150777572578753129695489875547427107569764532909888079868849535696682808062597197305542074087692775350445127926604331689908301777749515935504377018608516713116817555067824423090128166667173972722914729771280321772425747955585124241806524543096646864632229430158237567374683584106661617429703821358682284346348212945004907364634495934923778735887874717305769151517779689642764690390567963626042662887917963800913370851045664806300895954859814558063582590850719845308525292791911298970527516883746224301424370356789207533427475546843189786418468440453742592069994301597669475491671501273652422424328081008176178966397287250036659026466266955819428600840260422642750492810530658931373558867702884618442369569371860511877763853773195611389084968041220695629943082601228235858854895652948012847847642400629581432366820187121713197032028576602344380864357150798785460287649584539697669774164740930194701601657074142726110862198328522000838419791082459582981724690383091332148364059550303703364541180490046700557903360955667611918487608285074640335203715201587905680844679117360497988192225016946927501021028183849371905746721469456571894767962766238794548817132850445651352388437998258426318049594278111120380762611602601193607106522675406950817474560978271712526663605046734101496575118190574282222652242935763503144054931819480271650579783230285938073550848843114701218550076593783092369182259596329652544048505486892689617514176805479316836746644653339218373786251958513248966109448270630685505410366963825007365811787426850664696152421120876413053627053393974895265097187007227419860320856877957645543938051264095561296187734164378736111477785537757345917673015903735594269785827601405413818823468801202305600680632759231371435732434179480714356712902819492705358372020913906253274060146534788235656793334843943643207633293625743731088274609489069092766460770335839480894496683371965605150963219462624949274378249031676907205784406967801799191190070376806359438757161866953058839322279415832617684657184712349288974615288340186468744211689204619675135689267961146921044531363753586250846800449734068299395639178173815109225949764119963721679354695707472315764176496200987297007579316692894290931668237590995462931190190315158948733491506140409048010278188826933800286770480640173395685612500171085384334160479220007604715377932149770681146792252404518679439901588010927105788983380767757257924930971554530610885118347724001414527835714042696254740292812698320183320251291105030750339603891281207285679673426668018396253443088678175615900539466698790314060815859855841344231237692154088300376677908404501222765421511049922634708771169258966693847755769449605598652200983107781302475864396586458682677986743845769442866182100137790353049639425926928129700773720761501304064971950255878559440501532352164364109780213389581281929633996647069256068883364160123250354098236306722652347381009535138408027464700897575226188828684267166953680755803011666399507241013275774239167255713830069757820657563606240908593787485576215988728693084621343492146170051587633191660598418628458788252498985172996387600752733784555171900009095174483916855729503127747804854656737260417753733386255270930186317388383473208749336266227671372033205379132601475067014154262461727698716237222937072205314277463132793712340740490998662595701846231419320330836999764415803167276926262253812067173921599784211157154447598010282954357833066293894046217386862422128875028222865173518705489081569998590636716976286443901243669551224778996996711387373121404623186163702096009499368857113405480443809345931972555018867244031156746869390114175268589185042445526507295904956593169213230721194868736979424947859334829322456707601543916225671950554131980685776231403629437048996786598777088211209404217267797302140887876969547428117127433197587637206264147415935913720522668474969639250771141456259687079612721801164628443437028420812316946619187761284358457798153662149089583618929729449500987921110543716078609119833330521229003529128973569505254900385208088144208311979975167271999784764939666202858234323319231042802458984733651623883624493196108960335904860746666396374696794601279336652031054540508123758013195205434586441621213006854484383551743849254960483425122741344481611092154940345055723239210668628572471408647569758550305392560484997533580386254772142814169486322915623377139652091296861183858203102547310913042245651577163537226252718402255198391649297436055984061329134278081500254261134277907106232341391967767548987398917807931717214724900512521972971148165772725302136479606039483923068446731232159260865349092053140569938529765729656002644969364052631037769008545398169454098076338650167147648989337375700512397458569615106058305668091925450819229515078581968098412168170790508214271540073705730795526041015564109965356290844620551948515347673106913352207015271274957770746418959546622849731344708600778830354741942855292179324126627484816794174286155631120448662743222557040693303524946401658677349957274898564244761906412351755656013982757068409154790375263747572166130951132071935965339500895171853700561430114564874716413179292274853787265674502167033520684311809199271633295099227365224670834057052031851085504844644949037849479311454943356242083100228073275818461815945991624150582999909626671502181665267993571940809699282179853357207520723249553313235369659635836355734830912381654376881090796872710518157422125043399629026664978141619182706452695484662889166199489448952622091270365377519920864638979652449610107584835896952021131300853787052228295330080834302062221048818548767495381801573783907220937694181286476348686384899809846108022127774499116365479239841644380352529428472821206728120041979633881014998515326791648711874268392963415963836852388135695965394793813748184496303924859550713764002513628576641361172748998513141113787840150953084940226492551917019470569256476882899174971220722735652844187284202364775265936988014044211551980516015845233659453115785209062346172702501394065011346688768431273028385196431841774505444135742417189805886275479451232309269474424022189743717471014721392205655846745381026415609473861426094738110718991948345156417896763061343527187925822939344880146299614787508131170543129804288930868805863261960956800964421745197967753420389158780207981742321933272451592145513893750392876681151066242658276521179030816581032982243927979863887511711103991263909371256032473078350398425509985635562944243944092252137593116601238627869445346582482473569878407111813344307698439295172479366736477216905125449740046661768243975931486068153865846966273602359106045545405274515863032414977257797736320481220943575597169149354539882582305743732724410988346849165505039117281962053023046734016359273800133613829354469359654487011545086359865760088652710046810739798686373200348495448236975116661659146438420778410803466761131323177192199619267748523834199005093601293094727319027623272728193570046724759971651627388866695888418174137109315236965942540876268253498631131423341893603973007159149756570006859671715245723432123658481281087346462056400238498260676066580046983931885969896700216137286442349659074952023374957503334336762394089215313364933829832988600126626961755880546312943207490086231714873264200032634652399635373934586425545652560929156878867858076374218691648106522987010389071087387598800421173033306781115713746065328628913161701413544602815965810550715276584639450606625206363833773131701259019581598020127808003832624338853801510692694234927284758027087536335921487654584374535216533572986997533513253950075860676599998902471960287016526757882972947660508196174021220110565563725211278692745441808256261650725260432629640896398761707141917251135127978452873226867163593301638599370914118890911265616436832741266368624539715459142494605817349120328562708991011058495284475692521294718944230279993363294117355394367716055764954504303707019065640301359341475781959739082150381711998594785503856856942283005134485983462076663977967657199747195519466419310401300646666026967459068384710217090921503743983472158726748670136533619924333585623862316312515341563508144374575612606069715650014337479619498907546558659083925525280574140921464546035941993588394889915087462879651569562037465819529532924614332869959927446925791190941891579246336409539442568148618226191195274669316521837741572354982847422480786877052324122542586078631524692047266616992043959884463503753425074135504236119200564616049128181668159987913260818530580162272531401539355673637786337984584748523477847184656056965611065957226831507404255989079450300191887925682617805920663821536655046594874879634673490544889754899745124025321247881801760248441619967068415137439722644175369317986916938720438869796224516134991668305363859285873155035832258828588321684317446277693175556429970271957095792563301082975522466459025344840747419415561927682467834279226059508493551396935078812210035127576899866889090669379793727924230989282081418147049925998430316965874225529623622483222704556757638621619384952701713863902096242913047262803882437470881018263411591668356713200981602319230728485557168685702082812266048509311247806027191834198624684486091563591499555047583742851028693344585796431946854160785718024183218183340273994068789768993002630281101987326391201445297387803780105636041681489925379816393359013597756377694589274942622543283278310005409542865592461185727291553912409747299311914249051845084090782280126080484721976452335209783631622353650848378163033946255695695191006149889832753097222309485668175808177353485446770023500400525173154811222491584306400421174010950327956934036218788896526167015653401176276886582977180754693308664732618620713638417011870415664290778801940067540077875001093681013696755786208842141030140704582708246495117662495743696931995758707085403495558294365163045292143876923193623093452805849204651853485432080935213748789572981593822225419735929852760462542417304506286335326675190396416998601230961100776645263077090501409406697158936444845446991287732559809030597575722109408500165478070213705256171218110734662970048917408923722874448295757357299088613193904102539831616500866852939246410744000137050185659311905927926216880869572861995900343622028072523074007887108638013240655178580237484011124691003389403794225561898992354541142199938173448042095022819499718935965168264952990969620837876935599038241505925267619929743720749611255774542787561315408012741599745636396388706992833607303232898468185382227511112047152170541271318357149217676827961478856738543914668382998933250448881357172364500421169142317718562558450591867819989958718412126326214441721564708607357663181593320336978753128837189465403765440913320662561808540511220033147491139152470157142290678845260896789392474118073875979413644780781500443828498338525888024846103778634070862186503865904761387223767598386116920737822763644676745837421420795796174588555970621383036533409491162484923918895616387838434113859655604130339105525943766617252313241665373130795095217323050530652052649066663261378017771850980400120066717080044308915693797459645681206449069428921724634822967725145072164800324829854817450170626209438101865666873126449144861587808796066915250713738838267318646554091424387439928525134887525895404596975689723205003740312469144849858977633616152731601449557940237663520730818976280938625132496354874073281050604767822008843929536424780828696933308391723670185306298898438287950406344599005465540739060916259425723766157483775297319899541624779396290870299240355080345860271834493275145320582899827382436251126075395631573814290403085729557695150557018240642917326351625057011062970132356963838626746279376241740670222954147699067352219297189459140693903721282403896579423368312117855294203062026828319893309702123897836718801778844913123942456956667524387635891415071339946891227217998362368278799626353707145152486029187312566705895207683988709313795419986920552032325136450510008984814180184391968161910697834475053257197682788242173166306737906123883866170948790605309361331217601433018167295780557713702445400989415699689763355899371718761348567449344826979054501346620127005709115857793990504534443487191825585778940042561856068420525438081510445050241953452211075641755059686441007051867108361065907063450483965179397443747026434245576953788863546136510854029420152287495125850819142790416469228258791205650334255302601858950202709035605976495206780995287000291498123140927858336685423764222034073208903598007290970360462483160671746912274377930078776354361844335360051933776403989048588960945559265779820882071729832057880852751236918445424798467131523854992350134988909175671871403687744662288051782778518456068411620414769031839430478033160632308455651995810919988986826895619999806368761622785294260049897285334820853919285294043301710046014375553532462200429205377582483591529303994827718897125612384209635829597940550776589596298388459033243169729235300652360551166422666980903835300710746773472027891158254838996683033142007790714006519481821778697765723082179158409387002699496747076391000571582033865415660621193237858921614666359686771687092749200671321024733715591253249705243772892012888861021422241028311659787743483434764609941729168905447220263518998480436858209638078737029749933472368629631611066921524307681895496168212518257227881170219796617349214085874028338004164285781777349239045437317094249567010056290020678273583700539560297463876626552772617113801660202006307740241868187724357519804599086573536522720785432370600758266757333724875120067519895301046867533746319332627080327715465318931611734953088244532444767224415051111952548892541904642262595629683929811706851650833035312897072302637118730223474497518313541008192055971740165301854506317367280978669683746362851412116089372510478844493173764528186057359004977980775131803133920616781107804347552256591797363082481449217054888160978883876365734914803523977762060720503717320721446145670724587063254202440901916804099279008929929738712420588745825604864114937179088066247990587768080773572798949712763051266398024155373905932272548113470819628660693004673228023407563691505468691765793701265111420489636433719242961415231918430723829190279896309486053516992258931785900405728823141727060814169494719739490457581912854468098145174179986979352468323692864730937818246380057856621345920880048824202452854536999715715110605018748446429285460960075479701317081745894978951579910035286521590663479438194119620403863543005595000078067876891830996981879816263229439094236968424773455567592492376131525316124560063801220376056379212429143721979195087738279271355310250027476753043703533559600781864276167703878048231833396071411577820266255942317301495038713806403220631083749175672310093791879590093296919690717253773751686005709472262520541018831117087438149420669932721682687770502298549049836876509513825817420744852868561008868558423495739377001328753150520890232945016638130651760102394659492341044593698825368094041544674528951804849084926506138213566054451431021653331588982186760939491450333226795163063979529421016664203158846604914101949053445461646393226977590357211768356702754072273458161950365420449802136193071163576303617229750764849505098997511502271323188286410449080634324998346042278531423293466615970608109867345097793372316720289936160650335785608748757844938539239941454793939384901329922548542696639366175772968158098916703974447987810868214723241228797021351632569952869265122063445296559221057467963747215353947930375206851490438629467234764233096843935774549370561015018319867656267833089273652365823803702173173002047703971078360621617165084827042388432089472289351968706952871888549997349963236736968064672033760123684343353115514568334199573639614094550502423902784740997612757869314955442999408059766591500986912277978837028439063094694282285963994940863669628573699271025050637015713783597355829414647734654770906258118234096441798597918145188372027279204923368568396818650719139957049016528442649872123867245143095026583563543800913624027552569202458109133718119185688462823723419124175796819802642022808388661697767479989976295237922995093844937223867985160939740059395852028966231991052904022536554945117926688747446931306482962712407864818827820847700951505991006887200439053721398233332711230546660995383535422657372363066272052194766302929079993971531378579908848513940457739503509451960349903527955198372604353931367867842627781708150809224249925620959830005553192674665588467538290133499741825123256201252844463163853135601769241811124673722252017031471763306118460580031037042825074898490678535737752489195562307002457348974507303403974217992415064217657161266463247536148521118290062679287803183909489149380173120723589225866134442560072037791270593152908308056420485012413176920847415436408647602854795936203551893035369214753363630317696138354733810244357545641743671764571614138164891272326697581164012332858648250246624788401919897587491062786851048724116191714485652371432433841008315023203142075339461378013439518673818971331511834562948753725189047501415642004621201148388985870479221741330905281957808751429022769275078985906367897005390124459470418841140075671233818285466214364787648983228048647200769535290868954611018466442844326834117075998218919654736606944115863769072112399146101711814626321817972186051665322353689710869709862513599622194360035419329919870116039798538989231940395526789992757361572513853739584751658434644915481531377270063877163709227449322704548734221669787711413964633163439302857498151997910633028983878953294298309140150728569680500629659757691970763855070922029562929530108264951006887904168022928770641590205407605666843442766509812880935142490166016300990783678016479714673016482273808651569850040431790250467493573028703431916639998114795313678225322178284232034102727700069304148986067786104818898149717954954960661947709822617451930132136185358888434688266352489500984903975077941063392379140073518335520525814951860617398302968336489567075651326977088239654877256017147484419817268570894070366851698156084766473447724625273372217061143918071789629254955820756911274186710843937351906099047150862809576213885453668151005137376993164686652477489838781326266652516935532099507107352930639386120598646515253526513117177811341602044644335556736651382276843946641904149151953440894436213886864213679975067874972587970312521261358085801288256116147041728885071892469331329161716432098104620899426041328557862743189709678815052591012451943006141464136421875660359975168617678064225402646714996271972641705167397018753901092345453571528457605809615093069202340954606041596485160126655418110036622013788104581989950706521243210596237216331770498091799101620025644607028275390951865258870321636502694682752677770604185015339615225915670688485439225715036524759196493488977487951510611067959477815583493621598692783561798730692361867244087971541477278085369848060237102285194959298581564150219595825969624956608687469476019430297577706548365216398171613880069740797715944693122269292617510254972271205667740629782944576687486534409917998597296127173552308688980562884295867051304537843952829174162286850470097954516904657989753679911770576088561603331990285832399590352004907663007937474053887689708243820693085756097637660935257475054015425981943536184905710995046559955534708519132744922938003399241531882753871138639194988345666079505621424953550070601235599538431504078220180717543505106392384679797434709977328767206781809786775477391696066108871916715871675965157719868149234317438521919765468498180317350047612031446129956344046450269207733286252403325634948909935176278094095079497983047439335866239252131561022926814889648693556841548718241954069218712371829585804265475686608901423157435573726398966566168182849458723586585016850030088816382447985252090884247416773216955254645723158665475596560151430185752240559050392055073546914837438251099183098804926672717383320381796974450100160313005469418203230642271792365887665426681179883852747806684735961520236184059302162234824934949423023361621994961119829621528698506566013919654031153453392180986516862396479463084343684916500931819471072289447027142282325829665499107274099522441523572753783756203974235904860976719893298803597715734258736700300182274778797436545606771542501838468364309643593843006471331126731106538970764518188554571964128246202231411917960227530290258581011848828342521698563783588078233727949152341204447149334289724241408347007326196514646618243554009484707235605095601707317617448076547046955710829323209980776541245678159820433713783068411897065549177770109050558310421448776861397408278576855321771851337521560169478492963327007793640173156583155713416395593323617889217381682159516836938587299284514189255695756731178537705691460182745115665025831673883409285147276471840291664854703070096175071217694915013810327980573399202858890393481961887571089044857062566806991870143726057823559520534235752830683129082063542261621118186631343937143486944567544257948500153136538311018166853634846058741151300855029585031248951681880569070838050495462916219328378224179433964111855035328135522500239454501203816720460972775311601059963492018983681367583876071674153113405787794293965270541313832739699819186709560398788794814043978052641467649889323776226630215775757973624265229515009317214907027052409664699205037510922627833135382655562064517761480082978357964572072144369950148618945095222006450186175286036352373110916786655469512671144347145240666270725122464264963353407239333896360895981183796398233496853687132315338764100937625324352132939185452518446434805908898891309383115889789324611505454357962138035813569813422530019299556186688321060596617363578681776959805487260713543355243952643392651347642108493919249159602099221671075291699359876669095317136149971204094321040710391549839791929481311428345687855321153493233581043869407878467591721242047198631623739140845763956833518080095379397641457621818444608128552543555846117684743837905243466508036942251304651002934602351199583062487015306418884818768938133761037673513727673087864081720482348165732872413100920415959238381939062916217491687365652129857344088801787198199833467355613322245684943621739835645740298379601829695474099319198275555243446056509834886757813266604961265934535338300765956299106688225520513246336261211909057301700056360318871078887683927911532029977063736639294548311174553284527622394179946661226439276326795547879720287169553726103672461023747521144332658678769734302822377305434132638353712103857327330100896264893539664209829428814626361353683181948921884078031496917518643760348129225424960073440968863878680815594594580466518277450634239815901955436552797259331896297562074680638013711722775220593493814171118428757101856604413950032079785277728099445017544712621175770484365018245214423145848452627783759369264353655852251664607140566667856345271912249001340897621146772941538145143434830309923392119975777654854212314146707670280398178805954936692770722175683725486401310968900232820352281698638749013601637553776167034250565179279807503105020061989613861764906078806244185701291038406311730985204955657988625701784615762007471344028777115867172272461704374298243240240423032390586501081926368033880589409018515260315665710817164697710937004259014104461362887378265390783409230416079312113432944242313527452762797852546070472737891732584892334270654813042547334984609516428119018251335912547596263923863126851546845989653602890640171974447305599258616663428667879562025334634143307445047863790293440773946611162083893213403916277989548173356921107403913336993984444392020811078649239840208058090409333896483450201171385637366123575765298751984777611409323885838864558514205913336588673923215232844901666326658404278951961695761772003359625267700991377215626564205774128815133703997991954302443242796803343605328759835847534065165119255006321766112406784677695155669381270157528702565285936672284078632897200844387180850817034895362953116203734468609589823586388208457597682490954708443251849585263372073822529459718106426446525155091890415673265877933074500340921785487682163988654597366318170928332524948839150529317156366621499767531471908562906147492962076527970961692481205880666073789137878394004752737398240216509407941187990975257461717931948170500664925896250170190063339225520249078795132818153020658027163153708181521881704034067688827326289462761866163772859900585995554637600321361108978151012461919421649211865695973163179804209549840593328308147619332960309809111184961467362803753984435034079008893788884543577246183339077784868055898869590638420603808654230253007478205190454704067490550222998412460372722120887605740668499716264949663596948492924481629092445538192682391996509861755111908497745500168515282195574078936119183885765887669502489898832160197353357908783014052877647182593361167223723035876623557204429183049712855985347992906315080599766784735144453647576955134252181115893261732069395850851499147852714204294641804766933501801225188129248988376247187301576179415311198329377558990521085003572158681588684621297480529499967215230308398791447556416579229823091245722836174694089131277105976443194978807179664890976445191493357477369487140107448762926598271143080719375876891560843884814897864181962129776433452724110442275294027410542801038146254301745041494706591220854549509642001044382365324411851383314683684929215940302736917089350123123193208045092539439313454985880911510577554397322636219267628118044602116777843464741349544179156854817787811078489292825717300583422815880821145206746650948031930109638602530324038681031704704597594451979018259819543620198528164687350134640050651087442658773055737773947645657459035670129547233181148679640899064522267903811166849975117229933505758775108954091782124947007695243715365877880341435536385173641991039299634039309523305201366180517189269974095818909606507426044519527389550643554409658773292729420494451734679734762332974376984284167678428611478806695159042367083061880602725384260182352774449274103806236227427031833476382376768401335091058746764791406951237287298659679236288538676383756137106954432583813931956946515228885690130449437444360305314174351373297880189843380608920536137104047485507262319891346054132414660724066018652988100789376740206403101530172583925527209684487410970232401856178133950035829780422291214693533205543895964149108964566351094704076858606880891172390493821162151575882963093832214189931956875163537549278844947501757961016362681587053359457032493245263304646168863523912239601621640462207671715512580575502959151448090022888874571475612872831002441378313709016866962739509928906663622485756337929969621276772717235209975467410430659293227667872959748833105613598946498406520381893982854664853258244245362567754398977790326783368250191971038722270801454442001819253151134506305552844864868290979608514096303704232906768184971239089715266526106947956032190544619698171559665111377219152448805950270906183541975175411405707792041224671665333838877664303198929961819533029036102906101275818743211322669640169588662807654013625916939496136850225882560555166812973397958062157962271033538572891115751108383855637475509680369979993423451221663305102210626033040815067732837045457166095202582370811029055566542012651104945648871012173145725770579637920356456702398402020487609114668614306652951814271471588903263110306673747654797670539532478763465063419243961548143179709013185230525436910919517325011891729442578846376547569316590314275770877295596853403403712363434389898689394337966033497956886174715881218728513359628767482714871839971439404713460508351533983800177921990784250799020742468162336206948557160584531594897676950998928243593842212600148671373642683791900808385984519998695745324067584059287267518149124929069394155312240319174476761387146909616636204372061269968844681560783779615997653321995611414181287265740388956036401762118898867923536840348012144323077110098649809014290754663325677939354940507441783667437975369805841149490704127861826016405196517186838716698937687288731955820609455971980483601692635120583801326756596797572824968225812342192494947955063527027752298757028401614394504337623528752376737051361058787459171083484159980462315249008221038482298056463366197878001502406672242020780552587034310150779721928130779111368729355489912244508944230543581603882065166939360159028066909304339776198474939483096503919211639765118093608318921527401310055523538492820277802193181828066392762389618988198906400442780641161084283688479659038369261568111725802023604493354651850330350775413405101004353122868925145587510343766804730928276753266597599712862346707517941394508733859719246750826421073675694635108342229567524208646423183928890467572703249499626513902148643013499948435894724521873207552650359170096957214522649641846712596376474672074651662558029469461463302649880690510168237748772044099588111808359953104105103957664178431235948168948095236415975215163189111907567059758761448586992590646820673958640404822663018925637026400843515812802005674990770894558495458521880354848076098538828801362985758341662904543187918642611261887617512899036312511692333824019940310702924961479688813344214914791533872036347768812506761453097748154544102270075205832718265206823312151306188646027836857172016629916612655676805369329676877459780939386589919883856151113099760057853727861211192243890895114939904063964753271279404248174325181796388593908427992708618493305581111491359915152203184145340437460685859295574117913008225308771676111418614694840156233715930981126155559903685720543444356653781637477932249446832340559803842767530144107019854081474414621160248068861337036684765909298951256023810092318526680570019025521979465015014458483027460466677344672587772673991393515640200645566887031330907166384574951485218470562357250075620733622034178478876588448816344447853166147691525870573199783072924221204936719425113864400350895850125248947304215867478148403046200276404563284878578458345576974604260209681954085327907196360859520706011751300430598483215781775924012279053826808637839415984917193180621410528393944908332115573262847319871472085283810881308141580593948909005759787504285992269720994107663571444696403314885554114418873918752573851232289040922802333911771476630860585013598307597830076955839755380775957798844266405314812482309237051000523336112708133768273335527234516855538034719560608445890390481124974676723259755709506802763681366995278054991388702506067787984020908462684833548892297231681039844796106830423414224296418961785575614832476920364355854525510579007197036746012887655592114001775825144749241328806129251657958763060647437503284983141606970828173378493703268971614801377728890100777705483274059161162059997813477558884817908349492710754590105444903144337390885242014061369366232372426476125624326819777083044458191152991252344595268386153937823193271930513789986654434489379788782397323894897631113393153602849421914464592274883823631663460242484582835623540177166918417389382594744091924430702588077578677397458806249960044661782068370208259169166556731985375874065116153294173007158902147830351595010148115310121359226460135848167282108943870165365025812167596928772709719564143829191633505189383773857778023909492691750217622686124531661711610380038883024041738092049385667688947286097832979571157334310833925981290231472396008000392931915150416232130763998222175816618476869028072503609293477693386653141615308032232258557117464845417880154447081327370246925085014656386433119711250374394390615957602928427174743597583225403064025739712556980305654323732660066002838490805052471783373801498717535554409628993556920978986413567964198336320527922216291317097887918156733398521842571253593528599199638192093775169433255020111116139889192969053932308458762023975665798343804318446426836579242573674161043633766097050741741077250662275141338071245906752546794654630228075344974712270467571854411244086530533179709656945448357095441235470888514221166132958720895719894121010005290088055152478158503099070216391832859131011377875643054437780749291476531196651438381267857939526292703809568783922871325825385988483850619124627945644301860458396221426311674953637312473269908494691380512399689872248073780411141311184512422186374539886745643075035085308212573390361205222364347149841321234670261947337337626794496355757731220395406728334064881194027616831056608767903911060024621343570020823201458098545438538750970430173328922367938588781777429944092480095352444933692481568464290733596059305073116009780626671330408843611698818739976992969119544660421463479733915672853099982834349930498034411911546849638517860730856056657691144310795801907343170886270898110364240577984816851773436372148930792696777138712086297428456978361873271998719402763190099303441190664560018704709771520090206908222405301243307671436013044609942186794321748748290632755155237505105174543651471040477269647025372683765699630737571641640125344269555203149029176703535559613547707473038341713700096907507456574759031221428075191844766323959423389429375350381439060031462804158330099504927127812108134771854218159775179387148394082921716246871498249519359378823017441337662052114207719218609580272174743007949402212696043525062913984030295305919381396956852291648201437769058239018260674775137886253679340147622142612462133629161873089588349725563059264519891335462582446032114793753010015323276407047364365336664544671595307020882633799720190913406035959961739604503606820987081215574689198011276709264513930883275374858607489126721920299054619142442302554519161697708269856754712151558573439833737430723528833883697182143708968634160345537779672196291016980902815112967279765977201819276316766585956975636271224375837356366915609856828441963891138058140115740103406212859473575805805829728957498919878446079842085469338872166704185251095051648273092870934261772750258959146285129989015167574793969367835876469443721723577709701287305314734669551806782509899203430224612813300243283929125823311197188710417485517852214368998687242886671894408462528209318398049935494998093604668029842332991699757934491900851334008462014120769485538560014117747890928517771831838316158711357056436885280911981241440444059863506387480691326608308856292295591534974718116867027190088744342563385152624895275257192738651405443077579254234417433009259981422984834468625346362428359728109029478567729909678271688372986762626938214879628525770852761019900921004290708553409871308295382275128827346440341208649175050694023516845729238271927963616547150674617494826290167875529228356269225756930634893141417752200465079678123869454311699429879170987969654705888268864958366340595426114465779772552238419282043572790506325420588454498484668093639472183248064362919170795750761280430921774264502517705777909898862310742565839310205170000737166860941791568520238121425266998963934762818288451190171868885357800562455871388362489395451726391906237939797340799082297497751309328033614746242694472689197216172767520820070126835132011715709821710378332086022078562094450909422641133029733173236739256820916008051846934298399035985764704400999523957523326630657078866284264827351137790930059174020286610747321259657179900418778900041129262350210089978652811327312331555607320369087554847984824133403243644693928683580359877027478429285898020601897077378836953702944042403345781941864414164596223445019402928173677469004662591402626466872107053145191692933704289697052480898500572631349650662438855283623508674503364171951394454029304525456706784679754403942157352439584812790175877357045485526552588570136031928596200635998594918372771295633545352172552471937613420984342161529039641626573022392404617534588130946695358820405327722359176349732246624053919058642959955396895015285505856665654498221610043312020380287467197995496540677750213836509198091574030772265930620125953320342184872212746737973558335338825511577335311013272131428409173302384726248736485837905197697583056258902307855657795378214005365210318630069484776732012148191009516639149642507197018287223439344325931993072248575763982870458670712767389335878850645933995484459428818179295887219400350709728819277732063970859910782850211807149704254810228667767295943954367095555318232640360972288360442604015653372542887190832375883384232467596904944843479829017034066276387480278355220963721786509454663661108598009382589464852401247561328055625770976764573215337784641091024224698250145910788367457641473147004517736219648084832130814420307832062582036417961516057683690424325598102598875224885295906715794667306236263888466427616096376498325225162581581328176230027554979896100597331199138775384312000147764642578548167263302188212414154202937709228326589957438715877370674586108953318941132499208858538275843467538191275499176389780266685016256975464341336033146061402392232126513550503247836737528373699358199354270306655394681482717407783235617664946239931303756984580365187310751371283274967373328739330582013405478513963390017822685570322060745559730437504508877697994075869278448601036400720689199743496296161159918011560506188950374336160382177191229732020964176762333074783646797673651264977353116553373478415518186174704067074575291745739431919598219912217227998095431899017380831949248204316228976347603490289608170952119947979323005989495403332781209071768355299010487129462339728373829923781547590932768337482520397443800078694342072172601222875478557015275928700176679626927429728771837461729378163691776067915522794871769907155562033875926044521660233752689863857256505293038030028684367113236613137718370247997555583722273300734778372203509872392196132902147785563638630892913730200440709465375596462938265181017017362899962493373886387427562633203115285968629460467480189912867354431880609242391640937595141257556085233340681652689228771644844416013843077450133227993722672293371773031214038404372076980501427645602517875288637207596011017354525557632412574876075736410669245601937560504615974247614556907819620956676614831384790538615488870449220206146560249324813567039589655652949439353373272811624154081731424299064592697829149640645841326726473866842281796293520892536200331478832720446539074986431843803850963139190118744167602644806610922409767648684073545261716828999183728322421522887437055632581661090015233322266490267958860437125927190970361474023088609214147747495140609257059557604655929429906766459212358486425187357280935363428585261802035467506225147771047442213189083019366772257595923552499189735601570676820517107951584155707554260997909764207884876672058787723177780511882801787951132494432932484682084173423312399814418446336763709478103654997011371654392818603145356675025218229594938501433360126810425512586893117338822487892260534028849648301929607425572355922649998860264328681744182852359255507610174352758299309305573632470953886745088188790600957140746030957610462519855090172394352206039783229247074225415433021063603582819200227816676814064121742567875680096760768036664189671074776668620038387343348272838530763303256686083038310677040340583803213488557099981324501615350828711821905393146842132941215672654710759711980284600592316855290358411517729025963119724202507311108604414015571478331267319806322229005481253823350021352415003201775947617870803050297226987342456164262822688785019794694576349991268844314177942120989156766478354201468844145379733370120722988560942332929471436326886173387326698760363930906478769378593142230556804392451140548656758738610041040888033601095809087664584193166446538778083206543451488650796639780180121783453826533553239481178513818690194916616424549057537831410092112849175601731910801204766036780305184063838351151665543696161201310939501851157345781954914125019882067017687280949470391115729835838232663589963860664696142754174831619308962888191329080937959363200648095289445170234462953210288461792549389421413729771627086670304573844259830177293082848245741788856697348510470741672122799530831334408423849225408481730960798303825954105658269928223346218129330907898048819256873586642096563473671828316352646599642525247779278972301316611391009121346822378199959195400712975048427541357710510738795620395894303606973032190687959257672813310566463740205715596467877803081073353631850746395464287081774146542242308621409887565508218229715824747996191118035373873867935260997139861278657018707179040960428853456704951467754829226842466676281685388114235996419291394823009433443122779720334603566299531668691355813826664431925085275361700723276680163661240756465810881497871358607248572113924243098713126936995385544078115965694102385954543998143224617580206268254607086916199779538544245771261105165934704836875836205474351981384695651758380220803725526673683034526537750150031738172395851691956199646638168585011899325921326828849922201500125007245524954075743728815716173474544916777132247030432331136938611730883570438672975671201525124374728050922537704345109299924764679572857344760879533713413325350302045876692407472270539927445860260452628506728290450952263456387159597854922999711429154852129537911267009211854183955188464188095680096369328339826068371991656855010239557522946455828128324347787296493814869470058552737012205621863751969207538556264228558165354958871779941112501154957656758796552324846941022048537252657022593879582589174947012152647866981207757437550190119755524511573049066410735316598979959071953006866153844806638474686079541436644137164425295587265373103120218630315413777050335228515183168048029505827139562215107386487011492183396788847604811244811963613373676255717489358338378409952518450490417110446255405504864171655364476424175814962432500795379401146036890131004235312354449324216942171868318969905938400481076169814715030519080606147095355889677936575881354707635531413693464235585477779844782293485120931209112898750275298165444458905501481389763116065063798756599566874351423260712389234538790180296543409689703264000833875816981607672008343059872333574196490805687098660905081443509724372160226461982942850575126438149598999269526668696922199977256032748659073207704729252587074200454115112050050509958939119754294976203982524270047392666619557507296481624047756945017344789672902786503301958108577388386627194231306390428827317552706153979265729257819623366083169287071222634558464781589224905348316176409856096286192647091751027330918104389793412004053324104836743175661473331229384144890083926593413320679528119388691566189485409370620442919871478137293220331871896336065586501256436892742010760524983581871518113169244841441303493247201029612142059360846523076059064002511651384385505826189875216004717235543738720097075605166006662798889980849603011210501847194407844097486954055852520219508716217009843836987445681361341941583533308961414073025645982286892401092747623138610180950999398247948082235923663989745292959087502703107503610822634788835017450284217552637522841658500199741386142083973882327583454484841399017893418359023138155651421988826926290149910358483310266062341070009306705725391193733382280860221964147040889701425522404945937380198405270932221527926130252306511261373865771785784593389619609536809454494091189095009369658238923603576466058305009531249827937132140741238467237333243523467591014822338121739663426009590246525258461272961710105103264176269142805683749869165788652763719289498750147985052138086962754931823947596521407934250138899100121210020588813608586641011539610982065200369371904642912944370820399619107576878594445904605629369892591371185006785337517542134385958529562886491557268918409449989117292250910102834030816740186369109506507966888313948823779848271541632278064275586955779057873729068183061896112990226634901231499452978567525190037710719475224046486156257318247159927980033342168033775509437639202669012894583452569612295528493917456440268361680966154679679061764820235196877776636173060003618634600654095627393058947292696831057253748923433834934332973438914643966563627968424785835294069593942106774827601004088391089262866194367931203210079639905610488731698897910911263085584541463942115136702085624857488744671386663595217909083668636052722515131192303555149500293084121467603894348324890705472596638192893505598147809339069318662362249035230521509268579246614175457367996437990138529930025018883860030833582608486401304171191515937355977873294811871603568157490606471134623441895792137168740263256120530138093242456155699729718685611039956190309783817819632933928988594365951071848003894726859433300284540883702850106574470980555723465848549897327358010580315075191739926988898096465456749483798507767658928767423998693640667891549738093060256981628927654862264335620761768626064120971265461498072102648220639620479405195677123484563455370806405824754257638641323281909258816224171875155219096444614366017291295482300145938164494452159192261864742751521415064291525544040820577821755279368787752500524819708628640764404602610829474264428895627413046405946277570749831860296374661757260372790875227830858015216962080837867024070004664493580950059374319375349627217026821486751858298926310537050310525708317037996305771124337950629617836158024741405710981978495200091935306722072460580432310913994847662465764646794248057193723596665663403801678622648088122836569720655405195239217842521737847437600812920500957713230295230991072916096254976761189113279649095298661307109995793239123814147611580903470428381400084751486613991846905567579990687919521155195612792699699734099044976882092595942842336500379663230966089115591902618931646381464466056685823006588709752572846299835482407580879534424647956365735389752778797495709875540158043468436015531916339108849384202943857186844278175892337211320769857013302555072995471708763511152370357057044756047785937433066397341890409638031636623511736853713714272711249830371586638226732887146011528734837539101728734760547453303595493776068990920453743733054076658660808924260604701117666716862492429145528032674176932101141104419321308567709535093725736519712171644180825882365309289969237372162192792427169119318153978497643170154632083729601242191277961998995092437306102284942908334849837216265842090024107163369797245741268445409851872004281726980082705432229454918789105797147464737077606061306723569461506245558431858320006204342186531056738198062719987837263863594558994555955122909026911994881779733915837830795629277862601222000816532647911297382099993053541325193516522802516210351200976114867792485721668757934415088511509211326772750076281289900675379443400067105676004360772585530426791954900055757725957126080452440748976464034409937344611721877653478329220975343523325071453632472574463858156550885832608688605881156140457898599870672481419395182032458208717885310868479162776062565720931806346746420633768563130624559091540740946876072430180580868131223290534075282519667033233262463983438914932160275246171778179635632193924796665679257315298367312517274771270588369627672636067112336683771225116263987109753117743450925932896780160185270143571408862256536954686780048413763779455911949501303677903624167790460658644778859044737430611090851214116891909676166613507133812911028712262428421755201353223833590360529539080490000263850594278670167779580835796897699188007720600233316266275323785713031725096289189111710423683328322230339805226543538296585364614590859302083565795969233676157008833370782179230951894163890844915034385532586450645459561607460951594296635267923454212425302397057179273449376538206705529048873590981855637252794384705790165587059600383256428241129455932421167489028403266667564951259200822091286321566099587600420910480629551571494284014419870121147994022328464819741568385481209171571706266473547374324102950937479213195270817260604502814293186732617842363244042019269352243952041600100317071919674865964106666593723272369335838279626202024298743303260109295455025556627448632763388438026040164059641345377706567365932647037563183291920242942274887848261434439416015188028603784076926615698788546290486647049034820980953130243773039012108666756994612357347526609924039330741499981878696878046436848980429095106320618794132933397757335370678465692450545882512282857051280522668192443409790807579880829896854823710631322892354584277198630414582694220178761812628948403759584427800630925531542572916337052304465512185848334756608542727650649968900420057503666296602377532750644823124588261722146603723035752147954253513936803962414221406596495035693290044333364574567584918022474964786585542449524554269351618526490656250729414961595162208934981198502012483686658125488486730149402219540968043722194546452324158683588684652086234709128810467758198226307305278700703957660298296052467746795553196416737596513082417432037300549533769912795216612155649264664196620675740029397018717789611699344893483522225507729937056070192717610614148656704684771641871975615969684866413760111787498968554090186534971783529775338994747399215511599044551384035229805833848693710336296281486968624834109513154949568834547599193266268634354180728351535757730102585755287494762714215317493182276340301906621587159321894166553320531411500172636270594775475259895641941423591324804893689878118817799813227252684576411845858589040580291174973531320712560437319468480768720994408138254290825159295545486577103137081753727157285343081497028407266969294059926144158475948918403187548743954234523984622640346327727017789354816210392217157526705400241954801989512566958010164338316431481987204956401590754889103404735632055066959731561515181332460739556407511259594186123546396298869257671859264401065041153693838019539786167145114609054109379945941042345942925565315844538710089600087910578312826696291593323065774846149316138620599136195542581140214737852754230387517628587443093236377876734651959483322211456787916153993471675417039077986039129316970505258132581833493644205049319283715390151357740470333396801132420470747895723487542322025762809007335110224842746737602765780031042687126869827275390144784651077158858003230057976006831431868853723604750112231518523971907494470147264814954301304882103378007769111869820516476184878082174258662019617185360183967529260086659686733955138271777627921143538429264698935039799794008616263790365014954008294333145741483441662260185410611972129686872422681314007433198751630211562998678711076053656563260843938117232599459639685186742437897364232835500772851128989320543758237663875764680949539024993795141138851363196430454662311483220289228780331520931222422473347265508366485576338286699969297284166758452025927939960317697664339555641255309045812121209536566588619676321602876202995350098175649513686201810715098377034049686510800108527194320370175704044849997754204296780635550899556405772173001615621317016110820887772793897705229684642342189451632231273133982827452362735882062903223991319724714366031949267049178069283428394841647482707064587925030594155628345191738610045763671321928300585771859861955246022283861701071250780375269232494377998014036603767318916749959237115217272104374777698708323924644474126368303410165104431564083672961461461322320153827381412332633522176771103981380876903636930688496954900301855553409859624441497503013418420807406876256046300985048339157550851280092396863533448066611708586590102639728043964968666443170013859667186861076335681121638984872740334583288139391879516419318690866989523879188101799380653088623887538314174352487681710005809797131500967323404349466700882834955745247381722004929227790744390623513176272658255016494004211600153587028750683546532826257477606272384143911140888734010159903330925620317143194043019539593381777969059996099814767387920999361773658480732961618247503442562181462525395886767753823051056751113009812254013154241610164917888144742304732997829442770701707310801556910773191807106526946620841600459383832657995749053180649800734592515099794048921370016769546036050281812500091330242178178125203212386443040307789343636402266836484302082737374490148129183459161118609536865565953034487846516262658255448719905388008700443368410633208868135099406832199911513282534113892721570078107749751998666072546569343295040386191255612283104126638003019538545931535101540680374740346022719549922206529044997684759540962265651287115981807279654221925640080321210991262454754318570244457572303902472197008534965061016465372843617926652693839202311362360173097545244350438765983461645645843226220149496650072965882904584556242397906213824563093730450161552792260406109790744080642397928920097143559317333650104148947027990761410644047657859909670093671457823017936107926602424067838967823536146264264015244310693939367319215130686809601486206915740695196957769492565857636247791261091119520910010990338927286271903047584625816082917526205326292509643648392992707616929746785685772978099247470992169630562945017358382784523776024244113639395201526155388973748551801243383583118706120618434050594528446995382379969096344003585006852347827863085513223033843100601199050684563718265262600684289902785407208730508627104790716638972830605414024333119905510044511718113672583675966894695243613868078936761681268212487975910084770952600584156947075938217534548242781239694368190595391701530966415955285811321198625084763053761443045787431035646699841421548681932290478679918492589438112552516959300184292974626250212288449197654064454250654238349041895636419379852547010148413410914436455047250626646697472542972284623594295263734149750397907753657439549922332409780790701577880649722227006225524840174636758800097014512656864421852736973184564484290740219008842413398605320771825579653959781244077724007485211853273126702184850670411497352061123167468795630241141665776223882171876872501162300267269305578958069442813820256691496972142602153099872109667373327544148954699192549115377550965092999872517375974214122305799783738373741292006388005911036251866171069606099184636002270701032533701018608439485930270327512749004838072787758610644290304454924827105286027554495417521806257687990213710040303598116527526727040550591387276710878458030905048483501920978253613568225908733512078922842465109057260879172556998245074639476096406659020056658278318406657676450855533003676278067869610292150511237002786313881488456962158181972726792166502909994204278945078635571546605789705964704138412779353696822755397694025325150271411147945326604600446511688820014408524929357224607477592613757161628344214868008369570178958051581795112266371039753629803998920711047874152555266077419373270498445509232842279386303971788544550604104132409532859243098662635994008151866655504747185738249146238618764296588260987737214155845811990454079851383868498932257748851291255190249954155538417628753236046027149586130595481144642070263082939797433976127773341402670595403428492686643562570726751800079767037967579486117303710119446832438884121608091459329561475889812213054336277991519114545047203721484006486112953431006372107493339548795942501839139061777626948076293403635524421330738379468125742306690569160924029871867718904125782357648603536869300629073236872452210335327223182381895933113980238110537212290458824773296291442919613701105916010258311115542123017132915590194423313253793732576123705714753142008318637529193539510364701634726221882168162331977151816716534333688049393142847750194297026472429708081708525399981485868599543890687418583977925691108727654527871633982058103322737413794516718554217028977800123686745003830176992291696712185496301111555357115347500884224965276213689902855207579279585241890368284571770012444706590283892332823880738861167349883340878971131368144630652267381586853769461283850324569245000095471240226115006931544606563747797632430518286865556562913511132938670540062301147562960764160611927906216718575861351567761067290963631370340517520300978060418984243139051669462408355549475702076130254344899387604694089361739225944295207292977601076932869181162912186687306634905345232161968191805960125623572494135441844622491494914788661294813242174688287391258269679392073869231817723170129606286544437397211039818647232909626406923734170315484601975601541315419911932524754096570980454558030446338685628217216541744460597176988118253431057941641206701136466493876153701732497393165780687115665232824318763749173194388772055655270508599814398214375511501575789946468695708899786115826801053979687041487712904176494795192577536976434810213221600476026672583539326987699832578327775657390281966445740982669593169475891815419547240498564136235092181133641256629950430860803964349582267821585520370318598600465461081242626966041878635972232075373199223626906836279076880696590694697025034853200742612315673469488540720204606620618465070322332056856890648151199967157455523640358991774272715618403757867475359122213732762049512504101130509858872670359262907374816597450139108488258748805356416496555517783182402736498250878530780839732588219384026376624553542788428919615902943377934534846067178435643654516925492584125068527445785946522658471537422280886289199318504247460075782127292265335978624893895290070450959192625593371828930693690881896305100362317915020051032241348401193188278726769842008996730033430456076435113768526294502363129896990584042887881865703045530338233547030324719373932996218142096144639653768513487939463407478227048684459619852924482572154117091215465122742828219799675528572753065869184305963395311359425832613939825754712915704029127483768394626284240024244504864206115160447458475088227766151247066334967598291289824426292580184551069020717856241823821505524312098166732634957872890865670071654860611096414035964791423075153383243356646928541933753937920226031287589327370855823094672095177340459989132376223550014176846121596893688356198501579606176001613519176721685272823433406637400724295231504075414018622845968842679310727956798256405470539949347544748490190571358577212359241720266130302448917471170200007558447035289007486498771706207282002176749862222012312329103621719136906298764038811960037986002378435471381276678981864568509861844693721570510606280022488902325951396494217459999106125219225515950732998037118922435217262111374496164802225287830862415573619431810566363361715752875300010494495851683135385443814510903220964621051576469900082439942281952907039559801768522450000074390613051567428147239594177074944727051132787118796312429236089222686321415270386722513706186638654225639334996494131208157039262118701090237354433504936676490287776551709961279495674110521157074440234095322150153753953340068622930788683604490764589190517369210526482401466120367318944081343207828249790232313052001567337520519433453061069931094257981149499090164602182551577607207483820921603670363629158898739061623888536230766065021559188699913861851361787274473439193585758229030065535868379307102868060115864409242559891061776634367160103157127296819699387446979461110336288057918427168653213103742122134971973463772767007903376821060460186633113276234339832826280100990399873091444885302466501759317680583623108527755585529809637375284488716790068713489120778510950025659654141217625721935367795997453399313216742488588642908246014777624605859322638816954434940256831741486727070440854531484330497375329464664302234913080519350137762023249410008421307735737383543585562307909076766874600876609717050533455085627816319883100198263340298110156398744963987083721478809216114237815212636720048153596998511954622098697288060317273546189040688224445808935744307464498349575985540574173588030177916222796871168190314895928707696472712866828532959477199188847305630970537080104263384172949182173669531904272139636116365699510408992717771985596798155566244212446144975869547944240517530481279929772387452919072053117150647092633653429134948817325994555341780831849202728896473179669951153240501644028935368987545708148273810331826863473162832998839769444973129938956827978012632329675474780856412791902141694642703901091211754684719935150685893032896095794477508130434342096134124088518996284586556252238869810538307000567980595615325756489055845544830608351521838127352039327419820808991273902256280727687277450698370275299461344141531051866880088249859535670655922369912823071054330891466392832541884654961573760411810307830827208149401500650831475571801464990237070797578107477682725466888053756545154796763393475290302637187995894914302678812608142989292833344335571324443276431423876043750620594334264670374039036731345686531382925821998040194429201456991427177352108351353846532689428168979695988799195212705561705281650262872702050038351278749164227012351292885063597221717226379445293617788944054635139651747453340139147845590734541019987245037834699872349911099707180795462846215668232304086432384029372394027361139326749241906523845987694426651677329632462123718775017968027637261654058927831692126004596460906247821750976918190761415903948647040828079197709228021047512827448034599813355319063059812765897031277004791061845839086985102474781407904035067437342794348101688545132301623814199457913711345292525205194036291563013105266636063662736604617727502254381229714793027248106087223320021760149083542665062656963148578939764525841783748050769170556737788316212697529929110244809628324838239157810234391752977937169445289943159106717430571672159544279453879399793831805902158847275102790911189420139971040272634541222669742750374396889625043239630709711712319889944828957579476859533577058516366430596144829721249231228018670807775539854018173929581076267984604159369864399218390699387517992575622559131074451926124810128097632071976467783993980344560939284196621660582060094252233980720171939047098264850595520645092910294684583469722625348522854627637189608704952872123880694434723261999601008501334154776180918913595789702288875363910988644714691932353272766509455448727883403696651536761170089740587327831299433568948243565121372274629950113423110774125392291792001875024830802166889398855451574766995262697033909906712503846035956041014192462281888411008827084774392903722319341680846167392194694212078917360976841920365612811793076974595965301221638733292324492508712295234568720725738601155334277030768364743289191044355924253861704662952182248301397913779050882908922269893493293250880951959328930528633587399842355393614331818847553533896814263814085471654450814089035913038387162189971668930809051222748676354683097657653572646557832914476493148786200664454957233513793205845385925950801633295523566459492720170726607972924893625706556377673318089919354430569131512631348561608185203745309424731657649986104229900770604121898977366290487574770724683726534474780821204451751222865628894682292573706288962056545629109103867720486250761203144840830268718734915840672736353118020969223246894449614133226990989023045124726973716632861793248025806335253559631359682523132607022064108473453596542410408161372410820484422892861068296368796632043566342444552457028047310510426843149207115487461985499159337811304841783795489072367294245968203410502685995689842403247645768968075187424938756662931887987326560566394621722389188245453970092270781915746341667413233272682296748349819289748833476736421342117604733471968125197506886876398765363195812422474381829738252179686029776001165773589638439597060526951884448906153691862344303413785888580991991467162005737167285044004653248415209027337973399501769862277234032836841885065269099854042692010537003965645259965372492427794763053263343160267597616693838603855387595893444132785147856615637392527820655196180938767126778940113384893410164119580982971627227393006394340151716017178550797015190015514417133234537631413030330080972480640000490480156845141022764539802044038677079186845228404104249625255927402741617017679853898131142027751557528125825102227310045011501945529868908303839101010860881500634805278066375348465895104216506052026257853374549561736875219007938048020428167175988688338236747523702439757029582997678125106365949782600372996438443781584363300336319919580466485487409358607197083730458480202127500153313940469620520106355403137006001010672058895184681454928854123972802161163108746564348037085004431313337214012331728348471546993194587264268669385317041297992288487040903245474035765532095588668903955689028058792462400120925770124090740986188953441032459198599395149601265342581121097882489146153717128869204465510853680913477259535692334754974305033588869320360020306509862189459331892943758474122725488176024110264864609920967710182177228359875145223112379668836409653971010062790142296853766532580601033115755670946586496839464557384729498452129986644907590419560221534805910111456375797533810242085265329651198055384166440034035921241609674309083584636939091796134479674396081072341310768811810732698141114396489695131661951534199084044320467713926494107760231281652910144844822520238627266148464010080420777534537335711424949657203273319953491142394973454175857483893523243582898814137013384764843030073465143920444793919454806466734862457975365482835900508035882678398139896692309263985119298040063252529266010604029052975423797661783900567449877221653709744899692310301537430068381141369585307836869759879181067930620169993495239033771195654181180745869465068513490156837934289250497591804506748369122722622902390901309095701568197330661368938792069482147425632764030360027648328524844776966785810522003375156461155092665456481388606565163471942797790637350722259716432783585221821198537082364332603457501708193336423319353285941655371637696009529493656305887680439775532751120208553075297771655363557224371186867268569419951808233225196524488716647809982802748013838981796339739601246711129130611107026216097515634125632165456051099887439607649027994446889227518106881414376024031089784347980998758785826459988955775435354349269123810479256021218811905663954969503636687689621171194952454773631603758774803773300693794573060937528809816541001674478020533859390295707833487625088752701955247948159403273125521479013362853106521070778871520930186715107529712293744911952010460488796741493150959207089708526852964930762072451976721228159597145850940074464689197476137045703815267084367438483099797505097447547174973400713210760925684282448653012197495829561184331756464414250597881095273177128745336713075660892031829675185370459998391577264811603682930660393413401054772693253480551749344476527168974032231162949507662031147133288659350244401163866049754068631173709443133465168362561528084651388366437732492410318913109267008967313360511489911251340281363918393672885455363072251663026332105226703411029290006834673801347835248013341675438491281806916674995672754175820603738067913541337747914603450082914641618906615741780200097724520140214398994799120117306675770919718362701091774289046666141723708773405819755331991764046068297148722045268983166439282244016572103663871361091011458409486336016899111911464061991642095579353588381947383428357067194866988723934437095702289041319743793009105820089654887393437462047220447063491343465894427233324240698473020621931268777883009728099403526036182462074249209651311742911526779621923095969414767844320243758982230063513689725576469449522564675179011445632253160723068543513139471376912625377481021658439524538494377198056824480057351136168054160771351498563666675437578364931297209475897903257927400807680583582107829671551597040390116616070909001358061577234260448444898634689612770033354713433583646173329142584403060482779952082093265312034883658054757646380914895999459757058271506011363654231255694201231657064598793175749180391347915616373089862005934450238188395641846126950682435671510674133777440742379426458633773225688602030657463950361551588246926064210110137662509730887882598218829254142729080508685122520623124931025565830946538054225363696065793812687581165806854673077240066462487273604991967679745039738479121074155720611524293784025980826631231928501281121167867559059111940749765725801959424284328364243157842213269153253239044636367071153688128780749687348124706033903281605622117816679339052295764057611311755028390326521199481536719541635165617205900091975540644822449856155791076311267447329913668050947887804067789688590593182612608554542795856479437994338401542474690437304478888368639046042337686174931339357477249372521426315982149732914625356058120274030949643338073024612934857850723000779190553259733368364369211797931329324401332528849238315071757408170488225469001707410211083668694358954641851884014905785627312681689213948371630551882465066203193520362911506106342569487120218608742980508431412671022649126113518175678138733308247775466258397485721534416492810288119999868090190034315552895864287839693672253807005197603078040961973453500068008552007441954303714545898747681695567764652464262143154591146668176530218878657332789092185988863702544637611057625607611637462173312769760503039820112465620550850242497586269315713670034119434463617952993232125381624622529949409974272948313388588734450227476419770689853735113905448651750112719713074760634740560651811322721114491285046068033757878868997297379405763686618293968833734308861739179993994674801411641772716461101528256935974741957488586551080131821644277819806620778760089179324815863845759839743492299874242081836718720269802469585433775007273865771901988194991488508889135954919621876664605956394709042956510640693012793238809150412278058376762686458215193008781324001226676550929542597144114254224386945320426881943885553945678955792272915403116081427470511308633963160551631207080778235015788281161378945651875032207644438065077714151680109266403268696135506245087925928886840366105162222306972153970732250600324778660262624367208385955834008635159561360328977735515864400815175005787763497344894594745581970450907582111693323008976814603710434631403041770209911675570234672336174331622086037635134690711873865144244124647684792141847189906607952173234853764154531062719334978107799966038762227274908977280907873247851193951469867770308615937492068440120367762610938203647138606373174569295516839989505702830825810193402638122660147885278461239921644003881750174390737914745803302339775984007012844703922074016524696157981058099005716127589404235893152273212515525637945166936164195406579043157238480912540195079588571661233974765315032736207494803238935499263777268141148391816821475998685424952435906789379080832737279460333716269466992839065201736648840378402575541451954395897500178066306493214803166920927892782294977585768499329502440332766116871641211831095042575611682425882200632547732282298015159247312074152995293427557734240316030135574750581924524864100419616504078615603107004278131941814155831849647117212585760404481413762743876711791123173140015682095615086406808951995475616100068210634749841536246668528452273441388414203137982763149301443788288096413607255712160177764552532500374327135854045418922666597311469133760710327750942989283326478349809829155775493366645366785420017338016428415757223796947932441739004294253748342438075383344557675233527012580006077997989721911371640060004148865983369686409817064314874031595633618111089528681195848949912416572265504500831895126584844324645969438838697386444467431756050875297241341227869509849167439571261852303642380700220494795717881804606673591145187699644186114473673428442339544957303125623379787894047567822567880000729223589563935572992011416486931349717442398590464050053502909802730876823286709129574537979720453269624598934021923128940390617208460668264662059616239657463096697692856766194285443523968183402825232971531028026362786800215786452816867491961129562983284837047450418535647370763699121090351242626885189774686664662793934055536928120432334703535244417198932681493643285358327455527240839709362060036268095929008302851216989246466090938061455078195984368967926373287047745881846628012745443087423789829924657738833392493268437572246509639832720372370857816738327448001764090863284874290255554213536725695644348319955091832221237265100966897613861699314284394715765503276874567795363991830419395740981960978331518568269201198374666488846101413706984378320801024428806066416482373850778030085287041315570683678714253756439217939215309201347724295994609978682687257662212793257664334716590083140754411639749634794550094297315394650210636992607153411802458899259081973938773215658836949911990595000151957262329703459035122635535521839656876693863078428768178617096222710076754984903457085484126523985502443654219133601464846219421541125590582232571705028035185737486260963442492122881948474119983333724633855050015067539713878027065979204379699631545502870155201896705779819603680102682300537098721124905690633005580684540095092519694666830900778576091701457772682783365907054115189871015201014852753537157027135920003103572390545566016464574212512862106404301061075033642438030890447975182211896776882808642334957782319687489222767226422751395150755150440124282989478952027864766365129387416970214915416950258172437547023938247319647637693378278689664650448324619570278906219939574500367100419588119471382217083343654070005361730459111612575945018474466848298002575337847943391412738427205722847043929459287029590662513074107602536261030059996965297576246111222536567419792015266674348124570748415109696661386445680265775644933925671368695905081643989400905742311051406328651586071962224687353387098001186368018975395828328962906883518365894015489364104681316037419146459150264507537958933469199639335631520602164344186665007162919089589947998487627941475888606436165872621241165627793078099124323251021856535154434882878175804780057486529732347712915051641661811947226139870995649209261656536579345834374443151866872821201164363755360865330324771970748061280686383657708587694364656106096936169388711307102539326468131538333653885463447415776051704969631529250684066003679314071311375455145920645375626270521792293226050755389570966504209157221760947444995299380188092847279260392698434105527578728181775633680696083103204013599863550554348340828438617675261968377820858231739660664845131935875573959716328143999578778791269199382172793087568346581418772246526397784935211717132270565352025303232391427227582366535060885701658827706739243314974062793291923013704927860288519620146795338632789621257556565560584942006983632023538008057483710540815022407468880557243822868750295482928770762266073182121068266155854561809147340504050179780403183069764738397296583640628593843262402924696289293913003840432297795796449196586825151488788587869091478495635360687526627593090679999263838609355735456634914742815592854155561842247677628643213597403532360015376574639307579248887036160728950639917537048268367679069450698328876760444934476287564804118978324483009004413881696483542310411336750036634783108031198009894523543739521472270068768030703921062833855427363949114037415753714401555263904774114876268989924897619189476066946127278957121978190975606149101516418360454360574243267236759175816475099603939324812314269710401883079167071437475045308166822128653425408619453554029223464172680461887291874167039381738738025378980916010039817572138765193228945857541238806382700485045677066425224973830335584139510022787609508159063438304228008893680543620387915354827254070873269597916493809170042414024364216182897879811143623428830161753886349489375476323796752983613412785017818087471616061795113906805327943790134287822178254783698414367290891342135402634949338091227541616544336325194449932190534753728030081355194473080494655407089277512298351320292507741730706816772402431356904110910928889315362270999791724866871784843933074786137253207278703937423223059639133735117826797792465059399809972796945157036255436127443405009320142789473329990847241348692607412753108262126835408034052839888727888739409953905327164177891011131337098001709927237705328596597454477759813195765692531775333560481174798884186413514144323177227632790925451714301592819120412505957982487653355625425776374941534390011262810548581139382125299886630658561982025178758205921707443816397582469540275651722260391312864006503209847713420466270338662920462252138043221398891179048952712969444111172404604104821120002835162974491711397512759741620066666505754201724214119783399554982253188094962706785766511729069809464777073868904578192452842762809538264150826769653730552677516024557122800106175751485473918991525126186769726426509660835061755588137276828401788479586155899422429646514335881653859325109929992652385120351778886890161128887758085499992856659916689797167491524402227142225602954509870746902772469646152305532937025082636382393766877389337859680057758294222072404906241187480562133906437250235632296710832216670256182643750953073219198992902466751952656261933113475308069691871500851050735402679481483769013581645071500157393277501220213814402054524907262722749750225813054982370260817034494433480173906104835079582474087722229469600114916688381984875146928979529017117772741565721822365962713489769843083888958147574783560081959005898968787584526089882170944536289993571336969711356126559661717314518507773987255319544846193821087440744475024197753187735397724828825111831044828539832735505268232429943978373517385009247263383237917962749847269288988821151339782506433388138994817121288809912465829970749318834967410197986869080050439849773905268207125796261324465644876244883459533869285937201592601500545071951994084564657223205767662814409820685005221564515776410174098173945977596231117393583867555462212147996075951183937902871348397148977859101544748180874797474878638713336537554341865627900677227693664039602361694095602399993073575555644028887248719455680661171263195567177995107262774135434717123613906137758657547999502159895113718908688820832798130314492641810404811812463402344271542883649417657261234739264775053718258316240678118132936661243927149617654032154129846654728952279642323155231639026070588646678281350409562357552050262869802521325696312658205791950413850148423333631388454186050971646686812139985035315894930600817812207151898801565215649654865134421473677711882545045298081722585907415128102581187286876723009829924000509716047873210029379186502507522438108031230700652306686325919809705410966748134897568654126621045803072024991540605041318456194136482444957078772781516532334447550828009135600752538042480842244763377444415944712428477235526891795727577819596261379852624419472076966204970235892742101406693734088842548649475512976606171126593051942478651052530338721879045298775268598910985535519091702853578674797046773880953259897773271961867723395879632508036821922572977953164541205832403280047660791221043588801541136423368169273356716516799144132303335578168604262565613216539997035676900819655089471836150663943989105785302384258874969372344175242741260927919652395553880625389756475791698881876506157567522329235855523525993455533174018633167988991807199438664938930452121167566869871791483360687302449114708569429120063607859564303554593591525144677570789642144826269100002011728005789593207634969600489181190856338132275527870705212899128878275223568651450669706842859864556120267154317634344094218664204852901917701466616971448979051672536535489129741274075583729503013290477805069850465755037788934295372203386995073444309881685567586334471492915679334304297716428109557019589180567026918055000567598627740729653528330754205816294854027767845264889732389286232687514466457433765252083272003755436436198092721694195270254430246539013090373100448457888119445788505146899803116054639740344011826886820560983742440456081313729009864563714621819325941423135330359119945572208274105625282888790348235659646152340808540576326235331501505593415698624788053182801957183208765914474164229017546042702544673420708070134090092963476923760440194070429863896858678676292617189203671925056431567001301205471573797440676836327759232377867309197535210539011894024974762822096289751627425449260776639331939378719567799846159813198030891631129118508635801177988428467614788357260116591332551079287760266792184511087192874360038815720539981067669232119502760027623269160314863888783091529616871328413987904704837605636782575332048838163375758926515884158893019111802501324544337437360481977468178368368838785422461331624415035596839505862430241552432541596905897207212869373895653186776580361736866816878493622039012500764937450737066228213336641997045764229637779703804185366500906085928248996502727691053920126673623226586630052955042378153948027121782965423744031686941759917457661989258046000325065477174776155595189946638062950115825357808151692620413678659049922285882136716615199720437201016972479988704491796302374013745836303436650520152683670665060956441872113741633800561839813228491979675325591711950429678813068184721238021508586329322901822304756450258511165577056795882300045468422054313630745011805351465975728888967408778944052664590972750044903755469345913466551725955629591692912542505238557726476176565230355178142008997902787885531563594432771434247921152171745232247282052537615321897276792402917411036478633615162241877003927648966680686348187020741268129878979644803401000270716038030580708128087476130518955776203086625624831814141547338702822426830852533826393850866934478629639446896341552943880589424838228874288927092324848633367805461316311508172597663208674142268814108708395060195591843318704169065687131398554603031291775492516786555186441372187200939165784188290067378820253782525703358129748169536459371838897175516886791772221176315601047241083747247556395632195174856342751976364546688100400581972540190518361292080946205141729674692007382816912124990626467201339039499619878109454210987786578083128911086545862287569857442931184706592989968871087726121463004566763269551119927697849302637281257691745212018767111433710558111885671945479346845020647363147021230387951747138330508848784741084600292426577116353719181706795364794757047199497673088848751481609082778524593245596051678657097478672545515645879759400124805064029113206145572399242424323382690894037939341619885598578999193981377250944886105783036692267192907536932519719032664484592391837574216484629947277878148912221945560637663790187328999184565408039845732254310803683550396698994773203747181659502050036647111941815393280307205346054212117269974906177076109329705714370227129064622107294780492672402105647037514557650404303096762824025678038063565997416097651709389409931921386599228959383027183041935756434614163231128050622983400106659509002501077169029749339867787286350750623323064738686907042814198010426355270989414574012877611059747785527538896584594211703601479464511620088148966130386739723647639483265901900099237367531721791943378225706783638506025393812338816007052045960007446471572380157379704108911936316873256076815396407818524091269151217794662708146493930130747983013806991179987698836761531440879660787175135261181768794974539703894634510523028733423352596766313628853341168073168657488833514859375951526105199312113203310068473074566904776473847997609078425649425636742005995928080285701687584701038497921577405834828826580791947689596594175493900681525316549879600907191761185575813470332052153781720252454106078959105393257889010963996394384442001251041286102813346190232223878342874326381966638758459998194387718573987955979893066185309996275194911180797270275168421444450917625400679515709795625287392656209111789365343343924143981074906921654002453970688966008358716009765410235967593982226951261930038254648018901833979843063954643120367547964133670321168586018774459023330146840445049741725923426689130483420195283129011304079151527823969280168536034101000493149213059416030556106284592916953434549030935930549732963974169385147539874563321510088274224305060301285747398434071129204464331468914542760341400164743872450058067102936731485013068162266185184459440470937859083367964914629676644373999011211211308125843822861813397605935882240629961084783318534262464854743993137937410463492595047045808434541716971319356714377107399308540462421160627707301206139193455753676069018113888714526682260352902049661836031332963016062106986726418361711437934681404508462073177054018226556448233328056567836063706834005923090263109767636290615780500737340957745404051481390503695548474196509938412074527490592088866645878705894690148510897409114894837791662544330154082452636358231675176579883917810988049683924602168612232470007781962795465418753144461224083234176357653877493196621935920288498663178579547191865586519987245771825271475553787892947784706641880177716174645793970458926985041085124338480396294405993029363682130049702817739042774400259525028697791937986259225278982347518519704422941302390674992718997218625988011944161181033745862705545539327127478606850201393582210850539068309735202247465009924990152588928506927987628269527506121879110690401260947062070405793839509921303468415309456430277875928433520609282606869557874621301436827837131206339512539482221834402200120488321773807768104239307916235848363663527215459188508146676603439178559910304760008924075392970827986758755709041499778071122014502106566797583025010533732503628417651299673869119490810548746905429801780278055675538285480103163957568248117621853326303498589578531741861454686219317411061867836119929976989243926632583989147961748155994747704026711458064401091058492553059856495451389366630411428357530108026510132176121608803084499065248253398494639203061973471756562581368139133316201113159553885324175586144167964043113515951907927710463990983276911950316777251324414857653949167443978639968224870222402256167107736378968325411858228289970525863045006330819439223388438505897904305901405019937653274471334793409975964083247253971777722457265258530779063173268214256971057536410437928209004941106923781538659309256944531364683320767634682574626543793151560124205280600386375609518580268852425009845597154233364698619335449319732010107763045141489542019316967871321174488639380009323200904351647583517149860299904247182533274575041078540713867848030185189338793710446562635551727288548688749071224255077679145249606162717050044329524589422273937845290795536034384356717034297649441358907177270747266276808896057486139522957016492330503696904604632651419851666298246773155564361957901582324727821723560638269842918729609985248288650890047619098674156541304640540178993472073619141036205427327494897496036490786731350781168449753586319558649298547738398162036875523720827094575795929456006984386967053281642890904038216225518805937380360730969513439334446057968953181520959315044927627494424079417903156388257704088861329369245102778236924774192244771208987480060269298065419616020060987570956152029128995780370201306343425335991691214844681159990422325036988601149941052465686807092674953527571555541170271336690591911073632039578382486207967907857401357954011659821494101755680520006787984303846254342596376519727357708210980766691005289407484520069224957941782508430845986431091838259676841556582800177151746064237433328717020916337437815882273178975722545849212542822497155786807233760850963465529574331475131434977526401128727125916924183148856638920821360196296476298834045503415064184957459984447279158148762593057901934446885273166308669001315210438153243464051922083916342570578538303654382505045474703643410128145800550884315820619938313037106720430892879170165360917331401237858737114467622563293955160859838033427324694601523955420164816537215081374249362491533724116800105782942807488895904364732159936392403190853844332310382253206301035664042420761814426545589768161004527494394762041326947168531795896967432389401772775834678063672889019441720511877805597838457825365082709843058986353679169806103719527385591116027583827098348749966852285469808056692357340290426259091083288039707208642008972640374008273559568805196127106587880752047548424244468127903855213595633848296824683490949858103740091009025496353297423318281087250417582078859275054885651584685286556248794744573992834005763906442205199614175712321039964223309254312914364064147350106940394466315687963981960450682613599411856936791327081654860702029431857817104723089266431903565363852303053678583025205974209372932714656896618677813649808380385960381447242123880946964378770660463176737619297567330281979420057088619607130702996220768864504387319104396870092265929336758568704126503177667488845092562265016709956274274216867664141111003535885994864761890524576135370598346799196896555809501839573764854864785407603336367878931622833636421146025110810469333923872766133161731392650117115381338321274278703340984735108859465439237119911934393042679751526534790889517866438822358050257592377495496544235218620184904908482225446424497143709613639879276514223471377663972056497983723323118410509590770661338293949827947069155712030515270594178926002338218796868950731198935327878311923619668779973144095223053627412450310862769837772783336117973887827018678377290737953812560284615756378104603194186289385413950279924591455289384804328522080200818333679248001048563873115526678575011409172227363510438637241315799121174240173102685302823303647128053054342736269458281826332425337566776105045471197023862611971579828360461519620876136702877376233004684200420458031280150097441835906492785446414609884187757855008335360694172175817674956529072775069513156489827042788718267996063072686823391648013454381509768086619867311999518723736837439485050833063454849619675792670221381232043258658101582060841104420708763254516598824264694510190750283922634916295657534278898269120569803296332309315152447665551071562909317651526114133654561793858336788092591677981034999829574253523409982667683655351268754073161627171627364865994368371591568549858025027509683618299010593615717906460394224443249386537295730600578660177802419432274453650521804181735601821957956259388877593300788953514277469114421452217802605605085842682957734669931270462085067488076922444862245754439560597701660626499504692926634586497616714624166480129440217986070514252369371796105037220205899356946046213789062882904684403485736270965397794386657369659066058947892934663169523783620236719368488073265691065380588746002511115819450556467009515175449480565578276983091691016133618650482764017693706987512517110983701666941945430876482613652007964068474860331584885026581302880492876134665745868673296728298718546427448124811270599744122557981667208227389967878187997844337415743764525715627185911948128807184382911491759132734659387104938320400327041764746713437202380388237166322458476240232615223560080927221733782266687673877028259251347010759451958871760673344685993633655331724697169285352205244119915260683731590020511501818636730760468541509697939944326766869859025948473237826806987570030165514937692021619456291144031507424353228309149898044042316032136877738924729277908902974270843628435995553943541609687122688668222401240567915351184276639753074026222605326756365499406736781349895901071199507346441714244060149324708462639404634459264597619876365340652120682571678555443056831341157833380698399905090246456103090155146504730746714035522180188616283493809668180400261892452742376042154726557245346036381929667897152672121608448898572426448673467018517989068931588243019460111542544597403875811288814573397501147758120679188687953652045979119337400234239376160639561613388807853156750969469041518318998389755334204423993536182652123507856833021180752351335061222272572593484177743205894702337058509893119072632490992983968711868792479628950049756859639158762600387151119723024222013006577611563899598267074959485762200279755039844975499402992962992407826919557308290811480249961429834095322445002474639875187749202535691571503313985285694809610096774944315895855312185177723147535118396483479715084246632944425037985648987221121723925087076424864063406937447378999746962825140109898546958570403058172240767469692838788355605409062955538257233910802531322311583157440347427187628068781459882843743890075051565480356644291659402620457113094612859651429416631567810097457763553729886656192849503507068428289403729045338392241013165104627257138962224470764522181195470554566634200169228723081669237666653157558794347346374852173222338813784878317063190196899130628156468545259954856263290713050663139443664625428126539579775776823633823805565560613357777993641042893390079567793720612762219903400456585522658210946434165456528789778239968593055507437539785678739646879855850421871831454866948371392134905479389804458000078474975801569009415596368962229518663676050603486689418448244083277297775067141042864923696105279727387859098418518159488625461088722290652898785938323476550318157874153257611445079223573792615092321042450213056100647344402952893677052798417427081673283203977595468289558030690158873165686340666127372257513125383998116837813947177311057860761782383752191432283496490429555764403155363913956581066890364509588785502134199675398961572666082555613834933714164800630650750319261547739665186101614637826061089598417985816947064125356044775726015171280592188386850378123058442234628629648635821636208338419818051137258165062652945172209518294461291064805348906485849655824854642216047748579611779890843221088238132954530312332364124564475468434346124949007234286853883805500099672244401955786120584094093452021425067995460097344897086225046052759020172544971990652049253580328200800082486011015931256726114515055154806290951808309178943556700953256965795132448091206559887429424944655228955957258135436733119789469793883960800503348671645686184734517854174425558210315083615615698286769919396934433764218339055448018100229083402095229219052158983849345312580962351796273549652949938542444992263242845537961418191521078170995398130770122218492526888738972748650036094141167457871455282586889934619579074783469768160691243605304799463294650837399138643046350427798933149019968336280395088196024630616722982247530580272646381024252964386819092794162397886495495489072134208779099399238329429204405082248862174494158058632070112641961160772926251113576073381029519166643329281972980747593049111470492238700347529553994202789161701518112140999925587943169065169343246938518614609839485165733105588147784766795654539414410560147801156960481180771939545192081918224105924694198899877056623791685726226379232085911858288519471749067930229428768961099727042942405163567056476187183047003865109935378745831528599607023084921957881270913219150482885994420347462953761452032534286310108234296237870974091069828016310360926969367089998260458387940017788531917907473912143447207322183046705680954295861783391135483441001927441733145073607596675569045708011741563114342037200248200692610927359932297643403574269685595811865368055321704929622651332456496583036454851023149350322925163184485236359157846601494805292459593430036909107622964427757547770952967349074621191291250058737799919685113806613515635630375091157977087140465941631557192569359816701034275201282282175840961296141061682448673504218343424969000237618245567357951192106731127711313549971288303408444365216160534784671108609919413285830311809589466131484712463421022582284659816836351278615434054417746754990402732224563918177306552964023253863627738133706058938075523183865375090341329958811093578589178258419711785684999803979455506867779855960553269137040058539015661964887071468028687784660077927463130396858961928401143943949996972503463726650669048970135034656372431729006070935940205511595589228616770448983720602341413560872052025861265844739241341563794548327769446937309633259797854303620146331092912858160866704349928108190325497415634352104468054567697966686461907800526978863235004429412794289429626614346838097142000092557183803890147432378436425949615815036427202929418946601205357160185671817008012999838259099965578488342953556694269999890136343415157790030900473349895783381351826275525223206230436478853324142988550406332383123589051298749987191608839283066385719777200019930731022699869577706642535749478622155958466323114062428969046045595543464303014583672425018088747998374160321978467060314631763869690216880927557946077999827883882875012991120205355378660337171143571731313163637352567785430679589315910912476409054616699594201347212127446795616438027008174882254771629463196745135233127183836017396145613563321209638489003642276974787864328634632827506493908369589904307047859776970154794063095497576646327626638799606907552154465802710310209985037084537824520642271080764881425427071815346140936034418349042374430492360154133489707328060425216101592384074720090298341253999646810189884588569318750161764593641097078833301607507567382686167224177600253622995826999275215925693743223570173101345511972863330312702886096022040870559125780129614626372687761435495023511320021345350374250510414731044784743415420970658843660888326731463933528904630668997847332370468428039619529382195488277310833520971340139925698726498729795877159625371953518446843091470506633096431732676473764445816762361244376875457131195592931006830040350928926629244706061614777999652365101650415763417599698892798836927578389145447429900024493914459198978739216386683710927142165147260233121921436161842601894142992745008436164998340656768833061297050032745585750445143416694024669398224777911740347181886544943668081045215362382030598549079419571969413942422283406962910249366440232362458686013829462943451367817374603134566347444885079385538283645295466718664925073790485342222327304345495534897738536240628835644101431998061514501105960978081496480895152085655324842606153835885255518302547095688576755212202284760098256936589227873007198520009826653988621293383892928457898452961861984143697952888313197630735664629327407601996527615067964522490687149701065624801513573634037397858278716789272231125305958023166981233735592928708824854036715713223306673284168181424098800559192306306947354096440400274949812408618527054061561498880817629645470144758376287453255329696989169193757510961124295518523607621414873066554056940860087250365519722266524292737728006319654573973705144208070446561454036585597594870836198839145611302702930894321394588660241777447708307022035612918918192282066579010828967250209578873671085420857933069214827301059652661349552959046496565519291754276148022346889622896314916077525529866151010864594120771397111639693062817071568762935049109099921188362277622180657011270070325025827155805038898192368464752822290567147934194425574557524676959930155279699544307398088950848910518229848723382793308891844533716571940778761072920334508716392378537692627147186588028705847419438123083936799534484205844913223777615139927165530177336729932436507667002543744255260975639969892443447556396476760772463386236388035505031752049658200844742771488906476119756491743741505787424074168558337809728360946731674073406527390017022107231475804310091356370027199551810422531907090870300382591210033323132004101554230104034208773805573967160585145035033543604432526735780087138478231319113238498288487165127812379427155139242960814080863993599008885076204041826379315037842789513817807630357345944400182844942760867570469898576381449158911610100039821375999629778372448644444653181571285546763862094834435584560501706385080181380700290895335622299941712956495674887477914619476520192936401848517611869887137514542299993687743691008054488230059633060128098698849164212899305483537341848161808699616009575524247609517052557231148858574663558769026398828559213679856152015841350631355881989133423862547298175379397209755665380113971751937881387494878643976187813598204351475572417465217377928399755868545734083525157870538395491779200187494923310538334762082977992649527939012584311694527905314558562700674187047866952536009871493785781378310885708736280096678098386908340461861398518471198840519605902565407770557728726522955512918312796711496599121165923307502599340501203150228815630798936767996341783198554898867009788003033572759425420293219077449093956386054344315646187523139403652197301368255510914507490630038036943795672410348865941542037588061568738850375914478335013751034365448239979593875983478657910159591089917429960668954791325131347946136751104149421746194237497678266377145494876988025181357458390015963032587502178276535063704891968783889331587449570570352356102594058894621172246136231054363091989527148083973123160148735384819320736327385782760402784392646584876295677270488105907134623525045254492465926390369695567124712252344218972016084035528215501673223371782985869851563968460158887794487327015987763199699455988252712669746974640390479625588450249075696914864485362566615388968837842076958022304410782297243465976592450716602629041263230772043238051430622930823399559716047190736960734064093235765718035386382019992508740615815309271990322358851559373245533004721950950029070446989902448627624980848430851618724958417116199203053338630110578180949032564405841543011493275405866066177180021261887527822020548530793452927336997670577003451252834640923406781550185463624821206846056375981790288214402242134319253548889824186069240922921093310221633543020890966922381335869601518837290763565857724488503972214726627639881064431479590758008216121598836558384986160520712400304728837041716178571909037622781284180855293381070746613732949718808269873352878950249185627470212603720341709841960358618392952540980086823971404179494879966348888665829811217682543374516193966186971824627993401352392649811525407004901879864870010340698682154492087559664436219022043153343492174243048261378140260266961988183310431757081753147839457049093243512305669761459729087911039788260116028247472940430516427885662899371856114337907291260859673315811385089060300272200502034622554539202920567712492353752996448810567249612037931780725165869347665177306562240793711049557386571827368898564168819062145160082617324665031613329828431150797490206039419783188628537766231692898813954400322954993908391124425594104228400699570019765696109290790963784511285666754310737620857971951714971295540685071585145569332613173174715852244248385433782587783945037152146196233588725210029210061805720349104964605682152307792070315344600243715070241293716934457499425173309719532031800992832165877503550494743679796810160923407799642602008138592998707186050281828018087974141653305215012431517389576178516032835639227824828328334591530834197204624249955396378401259844601791988176034107435301174002085318487171339495357631960416809433646428981461203806993133647239726483370020703117299195997846544091136141699833057677276545922334923220673607126322028894012580530657030748962765418312453666742340410761363692574713733818061453590950091058790425050754079328986123690966153171030354678075833338611517580953745118007734419247869663272906940397988284755193102335229848598426063301857612088634984750447470201955187015375308884385328033041035026939637901516490991867692404973015853741192690104728827018846304613964893583954832024279977465723105590984233313164571931117006106436906245271897243754392087555707051433870920342581525880507410354396753286680899327695633809280496234699989434420892588799806829694184936781180831536577515128818699294114250936632828109367786663679832195135968251056449555474213466647091312312174046512185905342095256410968515421044078890311558120895159869887578797756739823733772555144187203356655796591313499112789943853572559505089400758004696951938272044551054736965547216363280402740405363162681794043942834696717806782148082763630533667521328744871670747470459163246635878692618602584076845207484076860519137513085183117695169851214867755775568028826241254806599061804359116258944241266103100174406393345701899740179665190061170471247553636404817181826482730478985000426435708418356731040165197443971340387524740177578373896653253471573029589096546293410395735986972870957595968072248030007514525317891506515958967986310178807562306666261029105225653258717844125103181552052910531565245667666800790759326946690492342381729975126005290652084461228314671206850878949441523759019086828833440943830567758996994099502622849962264421383979089993009379064967946552799086624139741460182866128111561687837394821693345353511150049597266241096873484905003586117939789405709176161435598483319791118753499522754233296595157908667014385310902167530142552602857554387346405805796724287763019773186564817947392442143510293736802588603718373442381540675133402488471230565601962706737802533060099379680203045623561023307137042061580022961500108646831845714481002500977333714456349283897472722271990320410310528355924732782039728148015886811269006585103581103050662599795809656561177082255857534452511060962749424126053220576196597178658998486595851110668236285743756212212640622480914386413691890735861806265196243623352373361351518977458481211011152754024760696820755843385871760377870607309512324095020611581560839254740416865403765782362655075810090548956773541659772165717518276902413113283505428176252134529306888070441453725761486803963101209797792400874070763530812156380243099386167810592213692613349690830627053841077968964785960353622976681471585445820333312196877716167723511332275540795802223178703881673553773285058194489006995132843531525515363989749369837704205333741882976973797018979038522792157304128028750374544564762901562526255737170329051570514112825220924234512404925150876955786564148273901424399580871505091373060500751289255149721076834802233593396337989176033890126454003967163272835947554819919869661620444828060461431180288870611126160812335011280308354729547444537000102122391978099191654158524266024335509348537544665394262627912206673687589632343598945828924218606036761926480352809039460473282877652410906662387108260589904131005047292439319395762120530129003025764220210318776264159184913754729628214677809946324396632313040458132371275896655844579956288578769552613376483125196717239236931168793057731118224743882541019635513357353611205294585480633505292246616451373488628555400419667850151880270874385808677151092101072350135815539661302861318575359146168675255503505196592592444055528614454959000977748202239143587678648586149747382663803302293847790978003136225485016348669796909956346604519331650500419993977149325330324523232905730766046550918818846936593533173434541249309944750153150110887488783517873880267021225339973653077927385022799550473911571238263726460061076318946780519865101807553226754300541691047195957692668396265335850777621396746988792121315152833132789577032161072029703317051571863288768910957893368815174969100151295977220990354971934551988209058100714822659150416037366401837309535429853530306382363139415930340720677906329479611361231622902253004357270163460184077129527573620305600754939520752481547905623892489824980430269804361551117639182688444049383015718526326007044936211831872569457123984876973998778867668001912154748968252643804067299622657755685342413636645760425109074396629999427345843588041217265821406791991215940501355016599698652591356501368126016107491960942299399434624317576237390947319494831775007116923449459930329804484536560962223007199906966868829246628835274901232456104268591945344322668526610962566799968918491009379718659501976957058318179268443172563151611122641800421978418881548421179886598223284571643802228699131629687481287116553421984672377369985944359448905395905494128101243854135522988033850510621127946057968359643592137731164650730561084855060012039537727951143682036299606415343397057724097709301604335654807171267576231798561444021866721579197947879271466796879645244665936645885389221884292656098572387086964731863352632335527464952498798109056382638228844460722780556871919821526805463840376048252191263053901364440130500432324299946029670715456107919818269465709123813626183960309659583852930264505795204169708461697726812105092152101874609089079290446394728797233374595608805079501825195509473834772843201188549832622173433499533100673048385271964607899386379343876646868780689626486931687359886376211093752138029328478070915541148931431851177972181066871127700875502799954550949656274096747862023331796180034972575575557726492183352704581532899791968214541067479968474427557276398747505361704778871203599188491136784996911365380882460189232054535902247907822770499649619372512622560655362158271553239314488005085563577517198803224531781356987512254522047045936007999877159558682513282409906582289672260896336380007047234816220092897629211104833373020271612862725052328448620466298321667499938897899456424182971965872824572209615563478207729706366515069800517429746682480479137970758255498182325260905916804573363872785068121700119460336114565859276138487842179469510715855606677160577172326389733541378675992607031334533822328746747203861151202611716842397066004132085956513175247232159150059741343809903151449899296771181993608556706951974278739111670102425321657395069979398627934345296448600920051384449182945338814922985049417959200717460477595441829406771964105113801753247566332236134719696625232834384872298536550864385073130552296580870221105646894082273032635064667565661970184668402698013526393701412097356827784246323806610622376134458807998169657925309630568122834987363213114112607679137223593595259880894254519874077049111364759992605984412706485805813498685754969846906347384552216251225601502067520159455558101438463337613440046526389065257708340241761787816088627609529198628651664293063412763983830308721525654892520056709762789972646874844420464862031894061682791619267261496443369033717993052642335113222519885174972644852132211344805826269839264939380151847335450535134546937074711039636846149892143097754640873656065988279209793802124024064773954999057544272449582930575115137991647054893147451794172124098275650653235919399167921709758240213285979035867042843412734813456655875263192956919939168916323847169086145884390524726270661717993737804793646029683970209141943115817272914565166750918457314813579387186179505199328971552650201566074614419644047099894107172119195256900105413252753693879760668905089899842935644257392558162032248258281768733519557106681114031805888192816634592883826625373680453607020794444021862620710205654098458961110052934232749583371622106420721191188450955975883602376589828594464594996372695577452550124952989261838019018838748606448992587532697744924521621781050235703614637379300375165083326996217462952013443905982208689004390306867275971704526736409590915811677230769363141634516042557069931004749289701880728663780222534632397994664492720692529897750759997457523036302399384003353689746368658738566525643753286971480094809300817071237045450537690854765788903832238166042688260652795071842044621418384541708471521714352910632337376143823995348651040822324990007138067741342714592989984135009804823721018545731683351069854735308587076247188401089428314723233157633914544044246215888970817011450138394205962557201054281336874460315929838408759962714266048741258762451464870648285318156398399154932673173992477365213827041136609496876714436847400492232892413426460603052779576363429580827199201297950281793698943038367746096909232023886946071624392938673083010283903851235200472763212244112109933868811034092598749843045320791624110957758700245041868615531811905573198444278726005930340227771263983219782137124397666353548558778525771189327791354117495836732294743953452732547728693257470433525721244523492533643331347895539147114358422906622694936889242922490174443676635725306382768239201213521797988838646665000160167499782938675723416198801526580058183394217733739346950759623971172651086479005438494244852065234559946254886068942538616869799081415357832635242417900437113587763230045484500251984446874090752823521184279170155386420631091864409868800425694676464928757140186572332129421337923624465461874012983380949792022001911418638060194248489272862104603037819037547398025598282175384648931037535171932213400923349334037498785172955554462713265683347751985324554501052291524769671375557665388423391414711999088649300521433708711548289872012141076908527579817651138407216622409475080619253453581537437896995116118630029839711667601233721567891808193567868990781130217386636330855319059085087513258496800980509071355355224158831490496017220865688580403600473515406264657076425460972873499055756582156287919402241508368000890767433025011118960314158393816711315560157862782863055185682592596551585856217853623675857101149544678531535492679160813378353572723093730938675423145761012309597773578770376061688393214335736147844064754757311568263050467007221944422702005153284593765973670025651227108849755932190585006913919983343081508547021515136890970782535595672653216705593452360821595112510258655802686884829803217093926430842062682489895456918144293775808333878306955961430289498652648572524580492489665604785808856059035457537879353460006654446382720024244446314209286847025866523166650304295813174723182399694971072688494415750221351817718025275507589827452067843869877232062134844602773239235923135865833332462780644593069597443527826308518215642538415455821949543343919817804041068479508621899242875813109496413537827348281036478058202934684746441799053263165873692792307203419684331017663475457217567815118140515946283606730805744582590972597799343987417004759872860681798687270102145665242646369873565618852765549965633270288102584820580235026263376526490115688235546148142271264841941924859768424595196009633024484896157453749713745989517491071758372922185441978943937580272707074887049850110751813092324549193039275654191025632556678821474054455979487560990160907079340279074881663526931272510351173267962467597391465675403620496454456801139197991676645093763455655188621241394881965111537535096393769062663925446043324732223702469928579979238351695810998666916261258056915733163274040650936727614204124860776735896660671365568324465855781507235638391338246002477407143140526484914577359623271631427674306295195377132865861330463636017422330318340525093708646942569062329232673175593494107242424413604312768777996702591222411236125506694992374383318763501743328434727700188590125254604330138430308778580506086287528882617470372040929603147504006308132682996566640625641522478943054728773721181613934486219660738483793754495449946582456244424475080331273293808017322708912735714087011432938445376130528545533797790827768307069082280800991968833547228043053386338131265188258375773550849248523766515527422907181808604334516297901352575595333171539554000011092042040652585354391418795211366193396261494487043526139425256847525842476084397858648000490021538119376645735634781111041195930045333119829452381775863542695758509405640796162279065271782892693123486037565448228074293582358454062020427335901684081857195033406202077567652908732163661294391174744094326586990532477103417789041838852510469463604501002308355049578015893695754428342428737788450877118560744385668386551293334735422972158448353956468932135022818369620891379459911598747113288762907409741441083165330638614341119398892449336987704150567923882751910514244872858310634987106673339093218588498649120309002613893495095637867503645683905286918300925512824798417120184586097842666342627592483471387109722973400780924549967196141185459687089703826978306383676388439441733556792503802035244646965961525810202269673971184525262174137949587420468269073554180306194553540396446434378540092905529997897206089138273874277639850120368502652628041802221087337155899483103932125474875353260765903853539517512225839225564841459647749150586874971967199543711465377362502933665145190521555457971257973770910270997011560972636142340998321682755326275171985127438625203489328388201998887891739473383627240243485597692177912548634686743299485987667345643812993406514434567162724349490107620901869712654792056217060619236273218603202333861818331533907902597012064213891588617771641724907959197820943212569556617604844916465108782330532937317064621484333398295584765550495600631918577250303089632899775659123041519320222800012608855044990042844631806636236131754536979752623987846687624954329629243292625395114539341970676136255254296835091162799309538143383125339861177353232704518906148073315995781024362304751385228139220185646911151126704722865901427681610754210018082840779237800319187880009379386857267955603586732095506628440199434572911282068618630621500823978355464032687898303166875890189430278216705919241629626596380373728161619140804517082050096963675838928720326824997253975668273499328857363162111078791190074444192567168148664538032187561296100299627167834821461092533582353960099174626748815572484345180768028880454754017158363306609502676046017828873577166641985651753151380207896840531614928635412739136620017001175178145923782999700804781536409732791602133927466286380784625468093693406104819640448104453313615500085903262084028754944079873578919050479345688718696951520062523037519510371628339262665764043451185900773769866998669065151559012118783946377991063560839206053221547921325681641690714414029981213100415056105415876912193917771276128264646079291189007983902600832168143384417468736205282831262461526163843784186488658306373662464560175614313396539848377993076533414613499134545822004951305391279711855763491596165110983619122040860491415784813867458461978333568099242132826496722585137872640023995559376516090277046453160168549849369012527415045361061049548683509604812790767123218415105070989895517461575766829764567593067652034603651814987890656212660462705382055893850005473964043017332507875419081987476068803192515528044066981770490972048197584254759802287016589855938147301398945877310307749027628720621459860194884845894704984730266518346944713759490982440797744843634584284805478605793790059087407950655704012036638179781708209452314533839694685470045622265685284322552682338001755196693719270690138777918769750958239838791240826870095444986364972234258273722275949662298219079352016062481553721443755327713541794300401798183484070208407223442149713374648726966064063358157886919376358612775264240421605130283431801632705736892129356742622359081667532276775326394031381762386427539970112528570610845997578594680490314675771045149240233323363531416277848306547610129164852650219284752194691843480646409819751592341534175297835374825171179998698826489779532902466894406820230262803691844317373483331675697446522613517770586594833547519938404691032265635567260946934136142965407902704559037893098858472927655818183843183854707368972747132164919672745005727974435394221600002110565349935672518484082319908647720477128714196620757101430035279452888170728713715426722617495393653226776433216411266645721832496677364018603737470091249285279830330728088767540320087248237218040274738917305675679436569109699863314307894356863364412413615143993281416985858999660080026756046310583684991050222570842779069359049915982498956009244760140989006045962687412342938944355624555342570123053327212161006174256505254399938347951840341840670234538197307903217488543042708990277352035953085178087833955859600999566982733885768837036550577772911821057562234325172595462225513319329073060033054159404523527254001588968376509368303761624646001252282241801989402740999503723708545611612633435133208892759627882665759462918639572070806052240297067652660155704484746795220987117687947687644970935192067958954483894884372759668431147845072704449143814079745869981498123258237959548763527587517957161133825839966721906031624132438939187651697004490081086030159392365234580831119276494330461651154105350077843337857608597215428639026248329753584056850562114392165027086942758464262574220212759435179897913042737081819997295564022839581207085429831644105573659871093110872360331233537464748698997096851454895627712772404321395195707253509385554601389596318821147293958957580892884857085661114708745997040248875125479366599804141360162042463864798854234976007323894485415511661630776837447053094147201451629460276175769728580304734195768948836428520631771342272427714385201778603266235022298013334752157395942455254309349401038942705579821629305846583145364656499470797713266185686009649113898559612732204501842321455692876195739780983349866268240205036305557432160589672180515841123328849406387984386000111445409381955082461789067631704609090075789548531289572838469667471780190751705423307709638094987469710752288387843173893460815442752224420513647905574073306393598842826197881225736685028078819487818413163189201866152773198862241130834509430867911339938760005758985051993126189548396817174841351486437109915194270327410729823795958526929796603830289035175091084487860964597680330245523034935151461483281760688664167730732682928117654664173199510255708667961286448427189737766604294153669615149290657633842042468647466203019397103574718941073226077509682722735691047656940124918078559411068235223178642370293918445224700348888657949675484076865421735353772533027395605887728485653891116827631951793986956574518203184943504238725238257899760717606603526101536019066829569538121091564729356457214803641066121278263087968753729929284248634387945640531846476687617119402175239773206342728712737373053634138317001211010682172210244442081928867097426841599442343413719258684491014395057970693317657199097108798227842535137577327777445158756402256816281712188181631305189201062126342869676648109229128618923051008542775853215876204393776290614736394362611829055948318920557237883659848991810855640429834369668111980077151038053288710859148917869799708795791073257333290817288884082396875306495927239691002424922344726152265033193588100369477884058202943122202515020188679747992934052982401630244075428748486306806495104149433504818514210629687161169303638718991337264372527693573629223749601373096345313940851727753722177039978855572516417905636718068161050459530860531562765348709913217925414970472659444750664773902819908804653315525491385015782157047235835719872226769288513744639529669109364703352858645888043158334841012498400615165430123531168014093180084704926005737712311583493093598355782117767413504043638391823555049020939086431064982582268512231244463433275002594040714057547820615223740325001923313575898255342800055547645404663128270389233078840335401917772484121592878378890915235256068513797873094189087016438593158087317221984993827819533358002766931225871334523684255271897260572899306130016281388092156199856027916842676853451232109434621128869887017023885481348512001958751600296156919021769476890613523579688454507306177986942679772437151981658124342274225622281855959406655759028142279219125650795657525792101247670726294137228640756693759125523726883223475746253759151019321015162854375251178366391523338125908418488656493669939968534332242843456299044253150893224104132796908072387684611863223772267651096767330573462952342254903351341769100863785336724441562083506267981984471074254224634719775799584991961049600744747326569537802445730275187170103272554088704251315893174265384892077520982790886341014544274991054678247802048813703591024566867446742089475546996168326592310614410425266113412082034746051192166600124175113954362096299953097071142582235623226975601376838741838849720900870393022993064454914414144787115773333606192173358113613955185466235050951436976277632126252765757718493709240202408634452200934079209687501391699577165425568754750427560357545140519413141410370572802740423628932868746990821896255001610052599327063426553042137036409205926431646079053744954323751850918831669639900982084741280909193404552979898499874872587872873114988744127228719291577827866255431727503285592308047041632338307758075508800854379401341204383733980640727039595095001390023792226832310037639362273215892273582711030907070605887978459613913850964257763644546438215675738931673189544209501582955321714762197283598983049010332121163703061165430412501712248325312060888598376634223691881231473365600618444225695765267593239379912299099448020941575142139057440244903038712097096996988677490307512995450070236573077962023618818693759237526069748378679771267030565821382676329399379379747960758834214479833400150228407171073542832439765471404947508282508469243873785421567477495363916290336460656316604402319677120034426583197378715616875615160194102188736415224743202899444555647594413509501743366790874921436308721226506914004950649165962223039298364804187602977672587022203494995782875296770850437188458788512472609557898299731289238875969429309459760791108382336660345303355027675308836445567915641226464905905080553192783796323520533355368713636138515886622577594862405233236562380346450133231350403147380118272861888590032388818028831518462884040257006750649908732835750642697684840280344763849515423297892419563732056141669570528098751560092510103906213031617399816541991176265304808464814928895773330453645898436234758505408062945113684973227199137629146266758246629511348650959616804837867752233333620481568414939521565217146230925551437755055247768758972518880391902979139797527867155863353836866689111109975017305100172246289803096198960688857078752204161958984940915088755834515927314993682756505401962309743098271148591681052480789271724485786332183416118156105059252058772529183021883554032459180647837045417101356716732331348379946284344416854347774783471262413928967559541932683376257672951965974272278362668556433732532560437206448558384950189107434373049381671972385083208186305409337791205619947951845730032667794344343335884423038771134493236047098722368138780415511283227503815838900465686266538734633227424963969018781640152611138178855431144675339884031638685534632782263465452948259786989302457546900574190279784777729783162591985891683041236739568751185120764479044813822799347541756716388804754408480064737634979652917330561395108433267939389514262036504004529525354325448071782209597869725007604437050530635805506085892646675819259544908018911645194524105347989987504879958333604163298799053549424446892852751159336507185719300827050278808733489658732919028023958207960645906796702662167693727593942023416564494257875021569812674214523318845869013803448179960860875539978480535436693008651975484352719735898692062620576420886765042372290672604665782988237006428827948959619428197623319834193242883256565510986965426841601234759736063550651043472757166177584685770427017595300189124897871166921536783478266442840418360029855055389469888613087716438717471276937055359021694033888945960655034878837125137640901771976048679647196067342006302105030406103439977234105479266195956152143212603065906315001772879722196699634864253328172366410469900070709513294972531232902926848116845007183721902379001862620397402266599997290787627673793662599411882671649371838182228326601054891675067881678460759671329736384012670593315506545612168094816131874013133115495689669548485723945014049912768627549348459909423550801953375360914320581002944254129890791396915204101687015717598962977956811177012809983862101811611046103816036029527303055653854468271579602791666106879455489736098716063658578558754503628632463058466877922143835999355927877622923971280057729618930115937334772236155450283737864506963413954653617265013295307719003151090863101484449260410922846065633675046970645851518294812389280849917065167965118515185515667935361066833729124754447929637102643053741707125574384987809484709510075382317014896719717266806056490781366510860180811820696662265894644044051004385017034465709188639800141893931626908812802430089260591148649412012171937986689869967288069375359578018318246145162847658401393015375017926872057911173570634609413044689632977965215947908583022980613570382873830946566121341341241098860410371377192783793683197240929608121233329080125864985330558908133896194389765867014459456287207371486858585587901889123160027708563175313808855378530506212585970650821310364678722516785768152058051741317364721916465151172456045540178810870791182898390791677875929667445520874920307932038939488633537971007696862509077274055122224484786699670926220666611859273098128201081680216578834714858498568326081860622387714725709625363509175372049848012453366445961448403432459347469446258603895213599274424245908043843463659707284979348281500453106479412738284773850712965737300824158316466913426516295575155300045883093394835520328734418853393391658549435306919536380645075808776525680323491054512484799743349613877823221958759609782073925177701936535294046362516219235824100117422868860433161004521545924661769898309563675160483655903645157124696370980918298191919606504880379407873269681452092236113029180553828904330639753417741058179899296490306754948601457663156623527839279619733190437475624832632115959222272845618055893492220083415289965967043327619553946756356966932509102301564908660028847711907518213761827158708540396063870263889676487421069545004667325666341766869771773630677233375846895083843105728175682460408240830712205337615266360940618647443911042800650563083843467482914695398590309093642388469170657224596442493579132074816380024135214502554397740205721666246514937073126804710599840113419909246027520336926074823850346621478730698922830416368201556104612021496088297064099510389413086950320977279106624389969632011837843643225363164727911544018106569085849589923218674610011991130282287658564033519566867359239020636604602484944139406070891403058006283158152957077615121080593277219849434579347023076826698134322388696261102431904965882799409057716632910953671969631259634213811028260495603479679669965025335869797859432011578979467235141631358010298078673668145947777552768883328823983380835803895822307945173736889678041773784813477104811543094787446839178929785496239905859891496168137994118348008046194632802399871381517436987946531357268945630333777195277487393857160870621531916455197787075283553903382539269423089414769597130087326865849260097965905456600126852212328974540519305799283916883559663780244259477160486293024676577302197923441534437652161995705765464438568904926957198016055033392045441604242030920867117124599717818809428952430699666258641526235921986153760849405221604053860805387326869659487238567653929062225941707820309890489047705453300869544699329699227665580348899304426295532104117214001540409110419390476106968882114687315337668876037726500255518497687160452738640114963245758296692125407709198551313054451934841561620614668881830275747445835786702316574682774649151182115667402276153463829608614776500285057753145771553807943139956471110271588238179543954627507447471929781672217038541630544550232448470077007630477171865127439408574230345972305044208462940490679881803251762714383471840800387362891583786260684507864758605024242555624056808855841738681519679623450227443480427635690005613815205755635427407121010271304355960396556736441288460545090003706858548069662309701130304550897726456686966821877725395014263333941017052699166448971851174085717153566946568339695065461644579104175331769870522935348807693137080669977624534790622943145129721296661288250236328881836221112863360452542754698678465046652519113916303072544425148072312945031378525120324541960486137018301487838294009122814406011569910167188831777486651138844969083245346321185573817190070403724023434945790446723319097990927787530834093793616773030112857927236134332482577951022710559662262559101971237960676351020637087522211121185832448659166603115770280541802512923065231414434077169430060252093571693140032581456841511396469993373119415811699409265531522571601592305981278241487495014479630402520483111071323336607790734117163464640669538110545080709738972857847466949907818316264524460030476815335387881363532091961689103788416950512391002327530338050259533023545615547513766193869062605494768019755640762249462052274107877146171229032257894732968349207624161020278217003738426361427586912520271546780639509446435262026210657936171351593360193690409790936590323789224520985468424385489070469920033440962669513095219335983639899379783380219378361627116254295311001713669303381764314119522693483913588884826303072592323699039781857922444610546351563725217430490242338131458257757219971669184352042029370821348638719280154826706813280760177686323571172792037570324766660295566435042262177415525346576216959093859117847598096239552851201588536681142670336893051616022099876482441045137406514541864408211204157009627316043366030881434791006780149250672474125771676766528023394428192101456650635560353511768660885202613919700247620878277305890826596297016863465763797409443140881644963210279812226100925544622382944414245806669334643562046900117922069658406151141895129957703941100278065843049386977306190774753849470470181347669072074460095622548684681840254811783606740760225729821236516891417575372085236847016240333543890195630185189752091364239819678170653431397755616520332585980668475557551240352608720077123774459096161215169814870305167580429215842789051658553703186236919459624696665728924345006210283821349436878963171059562345030959512158186841746852609648333939984547865322216270011969232099624642145907896140490727433847068412364836547231159795873968062395858561810748516811496742717165240835513691876406991077023903115654006984857858735809676115096387403960612356459169333336015067139242062650164679914813013634112252236280800368167522373408266278332000715064078903721173201457667566571241344353819794398056802853475782555272682302926760974164599093091306307948365642104362265735106509770135604553519324611017995182216197109211939019687463278077669107444682527555516195256400943532176122685150593121139556549054744111243914444449958531335343760945565390662493255765948897570468083812032094568861476527331958081420587667253956537158997121826466491610991330489470147653182339071127110017629983801024653137935891932929269794738871118606536592068704454814108274854301381319423672969366178325176426280839660769515180873860200409706940880741842718130796833671727463759525067604733349731240573416804982645081315624436497201359869772729914022015467507682495411515849714439293969589693636904936266892500558900769181024544395024085134313467427445669843504393346849493462059044167543056283571045170095858575782887628036788372087749313985796379805312833228413667867290346404284133646788885107899494123933674361833665918679705230672651281499279373778418878482013665346892036376153726709558888841038146742022408096721896081121158741649346707159506852589696149237329658757419776761311716635396945406507098652023033700046847928253741581242285780825377542869294189539791820130768723845885637947881181446099893121411792994828817703725738245487196569489442933693742069191819815119536068858247917772889613422126066323590867384033954063024841653108070143387378311415744352460576322195091143085416015395768627249630010909755707954107136519881777926589577496251558165783616140214436991432252467766230138682497625139732400233199389065890055636246695277417766538630895343450988831190609124862198563404396183411734337146441630739643250846481321368306959202180890278087537802492752420167498213136760756822764031107431718905543306489248425842554816369445024781429593249078747086666445288558126564587980657579719972314024834668240817972631778413464635204877431735917455844270376941705650009630231890628911134722521433251858504202359043075025456348776599071246767675719181226779808842338384785608282726154978667770293075899748654373086038650242994980551862523044889572956627679715091403924911865550192977811637636473424192150626541935912014705194188832868440631328050415728112570657862425872157488386649535194459274457588614024687588304174438183762198071739441777402356849991766158208558002740512726414406035707081171338616814413683678163706554911441339265816294643390844007985109852539261984838082946644425252447197683411884867718683453695281866423171877497134957172940860871482161243135307217417474004541261506011614879590699416266078968972349125533629757861686098875527338939893619444344891059260228594703593328045218287901498939646963758670230987040596992777844388568623975307556734469702851467553379233999366466065722711537072026203619250537303706378321065060945209383706249704055333397182626122743874278668182985364489318201106305214868347330816299724984539524748997076560973077236180249992160958625901322090572014056656786080420112484185277370175348332694380761451694072050348658436084435976049564321789524046566822260904264466531854833846527286710603026731971078034589637911684044912120647811863415823629628762906524274360351058013637526083356438603344865263565011249486103559351293325678724297712426758606235981078901677186610342327314031343768337960061751151256290911054490523530148894521936674961039263398966762045125472623858012304567103194039046425162897302933661131515933674970251895309448050482662040540338445884869449424161353519475083631087480658074764177083362323697708702838269220447756316896797374671547061155626019277979571986572479507735791992932135523887541092177520793845424171906959545121845504486871325790137147822510583287654059775553920196085184465341100469181710238902319424556960952373691893769318513948065189539009868796915029159167209681020711416823232669695773691885493830252112818410068798160198492937735600235918367549136439434941723502732852598111691582698621213687388272157767412461960421744815979042409439669159734256586889144654036317599430319961939359300783169271140688640001024906048755331589013279935349021373785884201401104059674041372388250258732234114227818906619581767792747761639550706169761965721416207921133993520264692954062367864023848417462502218048832777844456755855567299836815402941362782044724116255963183916668394029234926980351387990758091877715995431241899749384573220244380875162106143331964521067924819563044934462550168278941991848874631240182808675792259155880734109949675509998163111057682980402296123474843818014294363434086444712448414910057943839677874528718821825066515383700048670877213732235650464270106129787781799395486063668012430611547183670398575443883475136278925016785600907802712637638875652199989199530815370571863292449030756296651369146110695439946164865787297211400619205301902731522406166001989633521506044612557283710518164817399124164986059992511224929930471382510161497223805406559064908610504167693797790547537452974444821311511320276917407974269244492288414661791696222581432930358754966834942076656648712633582910452421077373322151276440179988384621319092652979110900681803156847428109862248784467556286532805367105797794690264523109941404894353185804286724260779712293292656740299568587020218825785625108694013624321422613318215693258791411364740461862804332041948404591092546813921298363333246586051579263038933829734979557468188930210301389655987076287674542768291137967303668010124910952368478679981340809802806207548744535177558926537703646102926195752298918669047410987380535339380225668511797712188755349586770131112190562774521769597528648396972711496556586509706523279191408426051489275931805320733166994932871633140944894388834485852518575569061435849951807252097539571956873058114178061033135735708387743803170365719366776395919864313132448575709168275889906143167594708319298251551612391299531567267272587886102934604051654372408888302110994499127690206289052654583500871037707571876854362994839490625422416317552211165459223168293968042858230165012740748013405581001180479290916503153877308282208717752721560606882622162997815227304004750897247763725691430387540688453784462123776642697543891920957295201399426679752225321450001333972845942702339499824591228422075522698754483663789313737988768158410483261911398050061696157293617596241352300884205361782803023397329133824582431910923707891149451476106145363829618015849294230126282365711264182034924417223051438230684623280591163894024777036010580009773892280456100858019987415403130857518628756512887727898383157834519688444807506494009791373462290876164409052803243351837216681381342992632344046842023141407428258674217541115526351778246968493632400568432011999195609595347333918609167180527109100066585983690681423022903459230716803777753015217951846637369967668498543883498414341958380874566543072124879968976383233251112297186410161418351117129833593535963170048978003883633845061428051605058399631634767263053178883719200250229551815618654815272644291042299896499991547791864715245765478444772659834900063148166198149982988931497639844760830791221342557407994419141343319690655091785041340007412951195775470997820961445942491465515882452472868289873605850310356267070093791159252030037086458583942602433326368342091914952603049506551713719599530875727680774304016925777405194078254011749312920517270793010585145533975710842684619347192485675065646478652305954557513791372300539763002531565263080403067185144228634006379778903275161567521053999086770492083322632372919672050320808741511169716330977375002222626186318068747238744857099605094223738132024911919415718904674832997781327438322382242423528104865597064639712027265942686109630745539209531448616305865213996386245551618258372712452615093616466441725065105733679130778868009786832882725555333312935081472363006627411676221384577554124276042001359595765236405617425037855534686409224265509519498643215580912169315634238400800178301888040733645399236566294766589802844416306318234440555696474912645383995885425595175271905526013544165518179190395118211133126671697446969058540908776453194715949533554503368516509298363146210542054586882252389770259340696544916696143122267670286435234976501384678605168289539135924587241451674004668091590465120769799498915786986287157094532619244079865183865466257701872551593730257593244261128821830949618937699146560238889468384142078185946395800415007863422449610407647240160952267315044682235394636358927699514082650771565429616972100727876503585312597992836674778879530950273865181667162186173220210011315178059092863289289868102132293172074908418697037165755606690830809777773102426812588475916831920240657273106433677169169084540208266657723058325438988833992192651369380356259578746956987868962050555706903435540933763785840424649118982880235650571073393702518860310108115178204899182130168548596742547469764509810872764124852179827675332097454157903261563563047637972996725787171359119273399644544768628026681732699339019350423126023002625047802500023414759724789263393378325910968787831982788010986611273355451154523050033704383970267691178914076937832953133572031723560508723888991027318395264857826364576254725592835943836291716881933373480393464533513516961816928908768629370236158274614641850056411785833043292368048985018895610577478411892100981182946780865147899240675441414039229272624331745987311771866237100189325989515113663279127970567547607877311749212129042144770779120600227068143486809884076482821625757153359990077106150576040820806243527896101340786870741258283951511151629075548048484474341401084353479562323669436545862943239041759186321350749372979417979980331971934331181936579649540257041237087746593750492254535588515453372304742349413935509243228561505649672170391061687880687802283574405932421092678685844011779149074707961977436591155585884830273918107741967424537174950353198106978973737939648120823995189131957155663769403473173829012102434855364601836349721590142343178490441135965324758668979805481410631896030146525028322211250191325043512439252004554686644898150303510739581402368551059162744577799900200752932849878018031155371343525491293540768687859334723380839794520234568657205745286010751007951947708516283879708528868232557607605265558746958704857093663569156528420256411401071392360345578842533606623362535659330347037205920818090748436219647015947808702226351169071541329280792250957265457557496534459514131744689672199317788797155495536033322193854023240635800081784045844530182684793190174994513988364017652356552882733436047970964804967080341706430295014616998853054253196758954889286601659721688322218391340504030880100086228527717010972454499307272208082620856447014247256440002030691386990286146952147755912474645728050914174858137755484057215954467437883940019675566409423306506330028674914223768303241359461840016574097850103476141736073521783150081972237614439710439650149220955679229838508799481796758072251684659525174840862032744838786941118956183346618160810510780145472162191617663833417814314306624961891756484135235592165280948171938346603892289003511701066886442509363950636202040501870140806295527006283005192787695522283994617767483865274617957833958529204182206439520331979826201598628623014699795268886405535641923011815271759862441174217737050289744251289682863357220704811207907750191465455578486356873618127454879746337788103353664550822211630729008820707249181592232157745877455399694688382784375897403695041558103613641636475133268368028983815524611966193376811328441050090288427845316421112339300890353120360507980728498285661495723751268525690947896347958203550172069800335183610833682400640198527175185092703801185593683104309554409595394740810915823611066474936544414413073091404636495791996635616399914392092881914547460161420605604308347535735881232847030065622068090663245216820648406440655699460235546010561394685851595208952849556857869727125485910679641983979966815172572351613255062837493108513208685918970432036843328306409143639538341707346535413293506516783296096225263853691465750250977698916390300707731835871120163390163997120805325456672277021639028463857670089886821447427580011283005588721061251739937645894048817866778540554944915321386184237941140970710459545169759677276398529788430209307142533403186525025617768895543283310195635808177464163421553355071229269935210186237217573518534349732084306862649163562747036923386313224476114703980972115244871536409196341442744125060296518192214057323073515178431119620018344341817532187531163194393843091833728885511379664746343215340004740797281191108375164791169068736525100390540213790022136913867529600919562298979325102431088260023423868472229222012945514079500787594433826629499973898913050405424652857310038477074489661944059228942125390155273005096512581077696938321254196942307883347203924558548757058379957334511409216145403541861688528657760879529122860748773166984293567169092963872341069968569806975814355567189829962915562086546082285202114686167091430956870731984144019762170134195773705596623301692768327183540855653207291528907393978892305794966228466107661114350012034160735860857786716610995278421579056938724201133253435895698510265402601524804224645877144141757739616013570460134763534848074948535589547267205343370360396678458260337685329499454095747002589787542537713557055205110253671313008753736325231328035649075255293220902511795862963388996608526244327841026815012244256927974380616603047505261460706869126196761141371632988805206366877679529908540874516853190246934872342536295426398510445603818401532996401581667179167863607028736123252809064414676107123424383338727013199264565939656889271042895888904980107778013377082782627582029638365863568591484132307374197209820045642513550497155334233095643413939765505295023592023150780342396029837548756875702916646242701294190644947957979151840115820396930189997322384807729828955148223905996305801199357942050870295616917405901624076159216889231104769835694974085832626434820783749298184485706561345843464326716561769711737569778770821767571064264123058178445986283381974028482723029225564945374610360620275813802332927595517206351669030383290102894946870112888711812406012936440731786822159881754529732478646411277108551270513401223541717188731057127999030244068971331402751317216301535228560683968859043416838299628154478294555780226400187172047369682274674136118753478626399763230718955483751334407256527449689713948378936556666131438069954467930146136112348744474228627162442166807515055657906804386097533174481374651901475082903401894020142128995528533346985977873899722380487322417640542226694653373935191894737705676084782160132042441014957114405811465663996840753358177463664355102095217964912769702764023090677016706967475735532427322329371932064373819466960628382415424676458085367097378813652490232800311021743334036668327773314723386991479525696723896347090704624078389816423414249577802315087577371832846234810562053918771914683732483618337908840857674293239443170444863563623679043676164976656641274133309745575843860110728580534565687019815376152095039251894174721027186478872618839295106661741476881278006729794796157827862372657632819016419096544435428203683975528707989708110882140608489959327382744167719608424033184299177003674880813905346841169487252043908156947955014705892054324448930228812008449931825991676445971283640213330795432212269639563218343442746222153405245154486373756434511215243556253070486598277326127743541508335169635090402635761007911908308412764326343104672512093210746790992557221204626663937404702259344698692723483683754665069628940284371886562707833912482419413133377886745477203254428074398392443978398102197365923807278410318014350458177818901294614002167592625314162078178588504037885799017528112697895999129936398621240260884253378640156699828764376160557305919223360027330075539367366263146548030647052357254098471122800989129171650060889428234550163862560621657164862189574956193289284930428819020654025482767957686860548643091832175555483748612131145890568006189121725865758180992949658547188177320726780869683827604750857880362076115139054786324212268155491996365709936923934685617822749232745908091961661061560408347800247176177513748260222017927950972508250366376166622876016463684697379269704478740788448127441254625019207000006889812145192610120279689736929406197879783833871653262937201257366005978650029516800103585526265755616949859918717688057205495652496321375178788001318949474820806170088930999591298852464386484105529248507960070510076919694873540366923635908433215715131532191199141082309756777265597043261365006307261892666073601343207588801398052766409167960684967734102725295314761952546808825380318060222711290612378253164125593813919042098068420675938120368728863415711261244617764976536793451516866532724481432850875653615445540265161467617941131456777746935589260373646862439508114602613061269551651687750102484831516280913042153273491213510336167504413315256048463525854199715154286371571680560847402820041433065914760914785809430835386136977738437421742372131232191586818917532491467870331579839234209575869112618789451037332253924222516698701837556568655461554300929670382454303776278834594816270937360459347102326843388477180913321860541146925768468745900381776929831134842686034398057830482391641345354867200822549471627603531227881973676201757530297485003610727152564283815012379113653496834831563548756031290161163416889185316705471049694079852332253987329580632336890352356370149498690064280944148696244783580835903795971439608132155428585490225784234089831976801226656329623278282337307663218130083040731048084518849708294826137337125485419355131308925546527437578568394302931099382388048811413411787470301291652779536328426118351613165094900278246937469597409493131708350061727546134882209734729428474204501017259174822813393697615078564279068249457510377856330979586826139845714522913087166363268096788410209523867561829273173955130237932732379786822057790668091642814659492229668303841514805374449904723753116118947109571964117590759592584699504202625026075604472286570079659517430830768851600771881038179910495171389005009768099243602540870794481684477306324854075704650588874220949019321251608868732995357657963019299472865608632576402663576476786950666735879672221202901634152881289901505196382747193704037126984817521394443754226058548831351137572171121921378661284517908075300872769991910292692396641619729879918974219729113660181245229863524851463219777570691623935299659079934120964997448460181678007797919039303976720843789666985502659481198710964794127749822920680486012245369386928156592018249256196739785109867844374286093086446723547384400248479689978084445794735658128519436815985274737697391502353756704903049758696462311150780298623251322542833806847598389151328929173545633517445947190417225039277925587316444112455000188597734219015121191040867530980451293605340838589956335755816127499680278375504930108859100651272634695002565674354894535247556338527109678122008084331362299052654151159155393780300770239013033548986986031864379569107966797775228312362247337914078532345927520310038395238297348431737654153924488194134491992047146256033154487024876227124886005285919270711201422232971116696302422071361520999412327220729221699271968530237630805352000858723169428535644630024216260485578336807500269813629031430733585764106557773890708177112581250537957719051353792738112782117862912183094695691403025675680279655848566393253294217967041509914517038453058578103821163362925939672857213138518517500087426480769025691473091835183794886216905417911424905323617692174012936403860804381419555001921029119858080123932365612817719347811931742011265821203559486890473325479141062263218426236825984000817974281535469676108298258286968505132982982135398242577117609924842188299526567378594457550230807712286283064500110608432468237387821038386412553369539825765861536685938951897741936756935849602990022014118386613820020341583902712184866204536190789354768757417078175000108561869851187667627397376557464520196845675454616911505273175157035552198338623316714961034621788720478523191133198925002626512715793541074554550822590092932106057890911122420990338578132198564819250624104714291508885401329999469826494007236268502111466336403977305631301496578985819369727354195664597157468384956391942307212712093967535374154117804637806522085673889351336039051524922757863902767929077758258794231592767377741902440896578952844588516683370795777502510288944701303097600162245059026388065930020895298237605605365445154946412893953022658693739615730357462084789897802419273047770314310536148960694808203588225630515936303417656636424142045330802366942958200089498068107467096648246399966948727508355677004243364312102355753431838914273527596792269738941178900991047466267840999187421041492002894219955289887182240263326147036607920657361323684395380389844424081955396114788867292464404742106190403164358531896497824312281651154074540564717686000142320385893153936108484104229545755760961243660792703797213847899040360494810141264748688828774538506887378801714401604219275534918347225162427488081086396935695718490842025654769832357792722416929086837509984455600281283165632340466004928864830403994695866329229428996444128137844610727172649159384710061864786785184618685351782414135049680161697861359861936809991601467344516111619975719197469227127937236193434448360320524167703792430786092657823086930536024253351794894402032221744969715795244795616833953562418029928699535893021880824560641438706540857874013674390858424247080946396403257268682174413926327356693279324720046745121626992677913925103714594628487173055541035162580403386845015076186372147915207186604812165647432966467592017854468568160282772345747081120957131881387146929897551525533014817466719010447027594829192810758776335519863754750517202799140856060243141123552970687953857882764913255330315568339712407835145536568558822335190019184432516824581634464079947500743293843325124023359398063881989296363152671029829343282752027051226723277287676700262466679502650551826134954719319207968372978629497370654680149226118445417381309265785329105110840101830038909480962005907834676510963476893342344100768065555926666918382300800748762172599240063187063817708085382829360466874213126205932136935254294492950496632937431588770896251569632195196821580930577207843663070326557017806429711100193110318477793517231446922179576671052956321698250997325250615360197424270127783142400501450960041385263425066205486167998453413117747819427911270586492920954088329813601023150485807262460124832795505179417048338278737016860318996244885912593925937847833889845738092170237213685927253369263550546848616578726173273824140687492604272483597426214143577146706948949712450999461736686939094619765328878597759122057177324971145392729183515608404231673263683539546553601736613301917726764649250898711776337463718905851595821881748016385036412689994559920927741040418945879039686709539167373153271574031041600034263471736425881658793367854409310326132668302658209282529842466639744041785271741875519089406067896029543510843065167247062862267007776765131860999369597917234806925852020671560542185472580827414222819404532138476953892819972937625238902053754658191933920875141622609961512120857612442928111582177311134613772072395525751416445468237851841084209142212929662115321229614229567147168485644032200277636942133887515583574653130758002824553030655817234535912366741971143815745673125358554337282811676280249672555618458620539444105599739308283877798909341419176134255751181766667894093211551665289418545950140340939802082221586364859520769922449163922668818733390791945906751631686206028015190395211519162377433818099608733031141183209192532203601212591760071830095495895989780903430887342076749948000281935437525682506056325348062151486805421372931388254616791935778906204961120052356437101600289260800760795005035984969227294645645463689077991442358664538173227564302248234576234482995631984343429518853976074911240572183026842814425923660896531447972631168801016018870174160304549965290006367042190878034181898111569000531653472537380238729621581038811132759756441095850109392473339836488327160158550960772724255861030445879276270197353252641454065855868467129700583026272272915402374861171549264617751930274017161206988843506341707306085012910660281696408760510723892783315535537003746714832710075263180867989958593244437253105486452151272482923741114888292130248176139697835703210334864676546884733400191285789137741218575248648057120277132300614074482514244066183140694858472894388580118482852993962269258451680752294417682506752404398617923520757445153919952071178339712019298694584892569012935011136524086049478649273964427637339483118306380030036856029199848296760554205158687572392853293189374606718097196084100631554508783077535501758270012291821811098409921119037920956361561564640768545932342544286952941489114592403907797553499566980533939933474058109055474185151363798688501401022028563775906623059306863590485278296085317506118161305840465675074956820116444421068295853116553792195250977031207523000742652944207666907645218319283071375338944100037667399319886340074750108159797194009310119794927038614612903622519052325331148229882518887246976288960833173955007630195785689189180151012040984013086147569573238642689825702933303796716994396588629559861545547887237911039914064530132826256686733158578981546217608526396580046987302185305424860449543729222058303962323727744525415010298936860736453153484892805973550539236931652456434793219132581918853858908411565809062868073021764052201910608061142583141045720007781131609427310761658934701003890604859710397389212595478169019297723105314577264770058245692198690121709301386224672021748783437077699040130675377549175750083281676086433363775859393737943864806747787683212388042698759151164091461458690903606221177009190982891339469207472075162139452800976822543271580178857311653374536269305255290800870698121639641618189031955878820743283164951531287255289891388175546089068231792208766261362925073547168291913265339654381221779968253442948098946535767414789676120302610753214006613900766612421512258596260154722992523567779429025114783192982545878321184350729963204180746636359088303026404878209572984608307203452059545606693956244624584402515564911296517658518682512402673315265010436989756228280026246821500515244325095600291898707408479012791873836381835159532834758450653937656583234377796377417324683498121820118653491391736654477585532549934485712822348903808540663090549273015367059195701881279535374458251176498311000172305766912369134075437994558013687557137416994182318065486210809190288886055653934590992052813032828841138276100989096551707367263095043703556519675482338061369103338209067679731132595136430761727743143176261063854888310082782476452424919570855053501163583423333056403750251017852765079394256038644380491192383668918087563514685806323519095295962648151569851680233826671359018718436701452601429115086427389640581133270596161913241589210868715069857009567385263800173749817482890539575796806699636979083741765849521776604771126921487605975555529797907136162254636193477536170911628545639241449582942316847617634021491238586321852853409806082163808062513428136564001070695754813535779543470421140139481128659939354024742956479090266445441340483124163760206975018604351036694577624048578489652381662645227104461603206736775417301129476502623509892384094776903551139999714484184335557000334810096811169798717108214897936561484356641921069123669594622918988979519422165769321375229095252382651722870264061147394446160199728022196752443527060789965284641599737918960537539942426330863975722838529258471838421992831766521274180709971990245389094924496703967018843703235833508292581949218586786570744603637690948858990999265843093329167515059506278664548206000540230135811514214555719430992396027746613819780931277175225406003091826697125422356823563000832974718987035965780136031217015570616869773595351155049091488341202702830240026967177080760177542371334035794038532853124468484009360605313544843572149584557003344632271346455743847186528227316310014280141107768439089346200904513154222463762213001471443083916100511756957005865017873101076727510406066519895547080956050660003569392676943890945373316589113865599663102503411895419287709563873534795133823462282453872960889627154502683953382004925572136045532469304348958515965330350976199914351310457218769817063382149995622284375724712952192983399396460279714906277461516461463764972995152311362429874231638060227361907227913021860754813807439901298852571160681478171491014077863279595124090472956539258885147127337910841315288058403314006034510695375242683520305155169371416635593097087519110356754931754704808144625816470790848929628559085945549354103194552902648356968982918720227936813781760973818004182336789334315425097093107209586919137430356761955360141490592630839349489535924739801944086394166139515514210180453161543603337773298974958174326722751148062124543783422732387557804505669876678929185349492291378537869110719566716996800500603210426641847461957655128845136404667927709292122026548510321636405666123203589832501382467657591976643974435670316214854161557151705491842486469329250952400449944852830741010036613504337507835940601184373962371018431086741229998998082095496329571732496097403366458610651407491908841520447291718363702470620846839398458615626215688645885655238998391569412339137181333350457921617018924652681250287486493079935078287983901900339741104167533618668661239698583146375191489788775522555168982031981474269914558816531759187556571035207439913855904149652137151708038806694975097033662932819796226319021369581677944846603893313026810884718666795392108022742523521881767824537414308943907227238386780188132579182828596958577546459161312124176583557016809885395589560656559339111878080404515301635427263520258262946196346327769182511379147929844994974374211754143443060448668269155726200640904026230891468387765669430608748138237266100170168830160022458819240107867180661951642529510184861737044394311172896183150411846833681594226568025473681827031259260957150172536882633316294710962001363686436258376148687444749113617745576855200862149147919111500589091370986413625748393554632072652295778355230320034904485851956938586745363543943083205503424050722735150950466925833891129730468534750678263590500154373079183700152007945844858191555503185278065334165397779301985110919067540844172904561605506215715547040403269162348176177818145083777255424942586944297695379575796487605675746346839077159812062908585845079953969846069080781354843416972109998566582266243904347992592328658442805922324589057752489691148460972958092947304451221688037165711941451232318914512120610958115217941367180995099459767262080301441201097583882183877850267247706885769907049451214402411998245807253545802989243742574254951307595328938508204714953614537782973132621209121055522225308020301715544377977233820391605627369049843059944610556310715959790439677923172288238550263732949429513317108286304901448951365355851342033521779876075228776397951335780435872372558306531396672578858208873002621841584307636138650020199696195565137384178241262513326390619393678902781315769690244939208218823158838204022439719287346182427757575705498394562054933629920021654206812521091626649443162451388655571396560124170806111431941789721470343401136808168696470566682466387008548506332978769898560088089556788906969673346513134432540791347941141286501115382681815052402662240052830647556315703480511901128175601682659271136894204510474304923467332923427515296944647505858797829846753161148676016114295521732371251168219256073960315791745784836966214057849243505731607249570751334905469618674165997610996895936345281155787918265717818660791766536997962902917447316497598064302739789819834026561996787332961783491471788225557290243321218908926788613553906892293157570457144538894361022065472545380295203079251277364213077099205731186398362185366553425108082677270235792916453475556901063969107457437216101385043077572698791330098809560798753070874640426368282923116974231724682177944019031469762491089952252523692896224505465350276812300694701656993109245817566140942766779532035600185858784572736213163485107093886276831730250105134136076243865414377848076532980188843484669768275440759655036116064121492826219070075778485034198524290849371744913158211163744692429964950200718555485179856963519487911715705152457645109546391580313565376262070187619527518088508474676992935362814284440450639032491329845283384029356132322193769671031530237346485940975014001724268328547651716713473559486652887792526263676559618936741343684797488670880245148112122902307334668722495743709094634650529584714957873959708960776922515298680249474023712095901288583767065185020664944248941969227306885836635149917246628663837449251697299842851319079996525123350096169744074240564381486158600505898115735874868088595304174043417403959030017222039101773185653409859272762114418249855601309862720315490450143965353026887811140737723129635764177298384054599185371105661386125201862451425617660908880013199965078527556283801968837399680868943753138473197732300197789679385086067149067054361029122530414602160587712537347960184959843117083188085960844452057979656703325202506444065871727306831680547201165155207346480649681048979143983275811991229213300009748336027723404545737588317250707776545754709717834776860466702096069212383588505003513260096110523235244322369091526346706065069190473029036423356878719714556043320135165425549311923313197365287187051437014570188207720764112084570030524063114300793987108355272611610858665420426543899897818608335449529301115753366655780034310982037152214085064101232741880170778303466864898479788564519754923192090337165020544953285504173022469594258498413634824818820362403407310567856361742904065693453945368631964916842077989539478572290307454564536971881920501060478714790273738904862269920989884017535630034350738999803278278342125610106573711015773080784260121430709643756453821983506658132472724677523947202490943556834699818008522667031457309213385838705021748765744342013572537994927201416923783039668866148719191884548928947063966578634966141112120071497926825124616849273497354288037739069002303403608285518909281988244618317215071830413557500320886455747263729638867304098790134847771320966671488521192885611415330936121245656454186909377532098891597104236184917325036413697740015011034576961585443348266299124412939328961640257931251632702347634190514896200971413744001538748536580097567591916720746502914831649111098299063751616133902519744050091453948545522229247376898117416355270950838567003371123391816742384486538096393088031685803257287445558420020492530524002325563762768213500158339394355484289927869320043184411397025159705595571856222304603190204073737555602947754007261854143016545524436581089046440532147608653645674529592184099292324476665869545131700060803447303590680382051808296272210047500063535569949994529154204920942433747290427099025079853711092158742776796174736654447810108915879037082117988196727125791613385439752207848705414916188052061637374969021462566061663948775763967060065441886249554661672988790108948529247333377853617246829941157331435493914708248745759993515071932407694450068361219640031133425948474667932019371567310834361200295765483632912780754086209395548717299967530159756363184080784473050989519012040739720212958180047300117803544148126338144165841813073422198761870031751606939843147373245671495147575318270663466899361258618432748292832850560623338108842373658034746953613603929463155414322787900913812650861508134219250141409141603676064816449734184743684437330734159688276430391210456076255008953506422773372948293362036666317054205438896420930342137808194280873825771295649859019550565383982314257376142948233716333431761072817036025298960723802568678542777314813409277342504774443759725394468339725133801943380473772103474442641237993585799314103107224031272415105899015967078015241175339563722894120662880418721193185081845184749148700986331287993494646171401484183366499424965001755105651135574519603654871986117223738831296936293020497266193856990644997369091135841876817286852151682969625000600734431473327374422459477505624122965151303938333588428245286162024262952497137234127278312047782232547825641150767868057096567187366811779270698707353634060287071377674205347651508742166547063840184309008781383735058689436746514769480272479235995316287853263400280851004978448964694911885353848659887608754332731958481688598722510907006093623829901010977285910021624431076768760991856836669156886876697720762712258427101889169377740893222976236129556065498505359695338282049474023937184107108982164529434168578963082329782502288921302770397540630775275919355995791056828678603297602149543747643848460882332992173493595616791353534979767443022475153105544806659604374767806060608789271274279584430219538592463197113009144297576967007584026303487990253484197595677537934185432237448995098901076754088989844548416608186182976354657186127078112801323338426684815132701843101115751208966895364788676507454367408863140929334717032460686849545140590425322735326677680849413150893546324378930712580072446630994878145968597640954468629832788161070306976054738319309593145128989638456590796607702672636121736203310852330545260085299069442149776126936392021988476346384973296846567597294523234378100655267065228712147399785977620785962832085923662106852763861176325311372412790989595867702740604698067563345280827048586940027271519476906729457594392531697324006565092349887107568696495020361780936426343781498660700362904218194177792104605242715211847666027231249013445339636756700483236597071644523046072323806372653256559704020951790979427252728900890554612047212241240784337329409203585705991454531524650160215717375751811710386062981709528996916741186568046882963626084952803904821916409304898464111655206764401667482466193831961386319558505324601346479520817216025662291769631887048018469089356102088383482558215628021882694911573851319915049749212350028691931632495777396669399304826122465800643920286118202872642780884185889924496082958164437965878721548671767299464800608384641609284325834427873737528725585788436401990616193099556749648972498813859005376363917470837709133822234289792524754735471068488084232493722650402092324129209676602352278838330481783659835123636506830136505502081178533704976714736788261302457690206660768684308859708764344124744028744197749049232359623428443877402127241465964270482619054872920413945125166500289058969690683797824258045199679224690191169869880020258964310376058475122634963865171145469631394163183175114414599933136987364327540956888174223106935436949709314225748803150370274747579336803861907051474759994636704692598737530724309064710360515006698617315587310862932146477167447706463688105044591138110037808577839230221736460801146351160139767483993336918057013462955882117305896218353806783178878790410125335740604143073283906403000189617521551504491102471631344215741309849227046042241964131099205844930129808581242412520737772455295830936611088886868405926015718903771275468419497793360327956915838235536247738599574489009773413094664778391100296332818870839753506441441915156856091962784571824818022878627206460456430345776761998941592519654393801589611521846709093325611882658175064276085232282350840586025791089293971246752107487847973761934995560410634670490745403355154936253767674017395256833266615280764763852324888684466239020285762101393561220828706354627250417843958175351767773868367599021874122378074692883173123157903420507058936492657606343023896314046715495291121335437628249521369309199377723387242096407797700813906304827190730888852361976088889212415066113079818224862602015103369977925562873868896615828146287764715818744766567107651315490550279186210239873345540436210759798200632650468830791474245032793095447561859583002462157978629533498384932367650013070454040628571072640545314344859564155354684588997930496752845909589261847140161422303485942272681475845774321278999840937570223397790206375959278863271154698902771085551874440995122048772106252147090751263782710267168675187968952067012378332726074038974976857397735885713410201826665162232591857919011711272258302260537101951591627958402501461239848936397053332625859016759388080251279971759048546802479110203653989803618181888825505680583062917742008021716506759049257942972445944412349208295704002823702165802392210826123522371585034567965747593972092062890921402620130289404799861051994343011211411388712315020029710889168544847790922603090010845940644163999895163204077602625402378056449691481281562438417158837896408227548972940552841916663708503887648751677410529605342074425468785102017881281772934531292870485909046600430279928814653996925846210686343271403753144290601927622600265095621200619367311031027390628110136249492796204952358447151199475855044144530841714198619960013194543811042762391721271873345126028473214894688335959414728992479135859118272644544948943069590831259987105342384128166492408513851830490600770829548640304668591258925933358077787111268017862088675124929838562384457543521888709456478960191414754906319532676031208756367688670818351447850202634473683606446341364811640161595151920664790047535505707490394727003174241382886589711867193784490094061210189421666452157285138216300227039896166162640420900031827694278561721912785517965198276857994063951272955629651563159067692722065731646279113569748281258035897517943466762369136835553421842462922474586834273345380680727644089086351055145198873615988485799101395725278703120112796334037380511481882929872093228305711769242718320695263222522254526251252716512498063628040166852280972094031244201737979915026659093912449321306055162802640845920044480454296375404471954145836211323529507058599043396071366270171572087932261893880184701190759215706396888640530631197451363607689078136321878500543272871047845648557117152943936130212468991815769052214703989877946099396925833895928126858559796977762459053623657552242873706949714198129643365246366806432775769709605701053979794502379461443930935143161577000646259007995940214376286145899962124270484756172246938664818963274749928238052182575900550620059396290577119322746220064824994154268816958616772238042939247542413185525986645528880679873310808212260750378344835000603720187750078980906921506576287921009295939236803851731631385889489034823262142486532202192045070333534626726094411057819357924336252139924716294099776450526013870624213974646959241151271786607451144846937347253337145961450451365700296277530593357529000420681769804536149367339416997737334670927018745862485704998126261958770962192504911854817828448927466570047889419287830669921035360341689743996815623991111391150672674272748540816121713776627848794943005939651785387708724104854331428449932845784485505425778405549790244197219179642949520337945958067348672377796610105019708149566026224782719296590904274033023260103564651919312215732774414479814163811685860203038265233045624909687616203750273321884125408855356595715884056674039295590732063280208234585548188858862420720913115176409529645011951604185419371372550454790467089339369091143106557512956505393891954888499947277039506366470872654201578947372665539281805571358472999498733798447513169430673325550348295074183462571475466159443101850426972330026004210216456595995981858555152518773419494904475362505397271613448469703980035615439972115124021557609101877417797784702519515714938230781504450938307866838980929721248416906636096848496166862959407663302396807231509923263104246411997474308948880521860265190763456918605062002610273242443074893831973949839911166374153424324689868195040583062243797946192954591668471653686487478788807361270810933831356569460592249947779074979612024756891824908845992491288507611366811474123312110525224763567219885054865654227257063867375209847810970729394639118362798045959475434314481185490032895890216137241019277516648786669502443264976768492981190995585949852230158330788391544419274035371755073566805431241266775071592506686781108833643982473089561081022326278269929949407247315917585832203484512145008355096353659210882185042513108813168135251101607459190880574512053821438506012691730505941433548475955397471938275993088989824195608997158727996350917781194881636606525836431697461572281911722138015001279782855119098006013976257536734183341647538104324094813980479702741274207899190123231008527789116645089342182575613200118298107717378955437803817660050854763853246258865365308856559757977151378074986500503471571199977152812085716143986239558758246210577057887223087468969275889890113734033997323534790266785622485750950403269950314984335921264611375515030968925684199042962352996491264499713314564729612361505612330489314558799641003210618261997446207221181188479690340546221756818867642055575918141709302724071790773326567177513279177691335330384388637296302354641292112885617168189523793325724909371723229464905743560929645241851288816925384368146392197630564043524599926551101246262252427124506040875683994687576483712646221880423281336227002416772436516288376355050415899027763124024185337048069390269964190382480249603371907421364849770670335888781444505485003663536818511624829604486628090471857462217708283342052664333411144049262402754122153294251840477453938778570849427524832320287063380305471184647580139009059757606839477805596130418272702230987050276381767389899409831856555328836058494412085431155517758376673712682499469864223938899781827708388641009297148757994438149129388567235483346303157583101134874870939044880986537776602877305977015496192459121679628636567520838686314347273956608795642823962145137637719634000636529430654849656853353484361693807961551521110392270385290528616870763178938890172894770262645606692282452457198223486341663248523853964965518956335969811309347610698967507123883785469643745722175540769432418541326090946242246646530045348144724578877565752972978454514845436734662760386317063707970918514062391889902793696056509481674108042519301104888384530208592103228740527001997373145537510029073654757525672511902312020226108773234886625002032519720474166516464343693089951777678331012745118695391326514637381065536313553346017059648463028009366345366569938891023425372887870242939302333759220529075984020117854320924005743948740285986134904279720620496911006681536541056371488350254271398861963506423210552028700798507454346382491287262087395788604388339222438636394249691314923159890251292130585711246349500988889081717374963691379610635505387905980008250077763153395550477412868576617703957309563301016851143613431711154073631669969586857320042280286949535308977270651803956657223024588462779910199580150779407207683006498482086306339810349007911072650161240337399311848300708589950571901940053617742213436783307845651592370895256777434218791804212674484295199538895893868341474535538795506073556478745805159341935152795891589928532850523620605588078477960984913533436357859214893878335739526865574827367840011919087622576099789057599498982863150643327573072456172600065555776383642637913184303759482402477384027503916594246945180899010872778236082018872916253971258381031274515183679039070487735195543134474354854484441203160369284587288949226628232565183417318293716708436948594971658177838797380982072192143188369058338725431989262728919990261538850988397261542036161640408575361477742828680457847984860451108724942415830744520208651886490790956136199886461132423995277917214876610718051699097393568034708248789359420430065401960796175395663712253072119649310395199149413447184746343853715875611140360634109970217185477941586701308173400502856653368006199776951350796252257203780011135166595025332451942277551154046070518921477696911142628173253533571634571236219352736018964865236710690701941889912658772300431624883631852001857148898243459520889062196858068174874827172434241933800179329183491076797347392129561659962196581487002449116206953477263119963333736080252920392578040233344608859154287022247305400549958060665662771921383254270491192069820039254665485223742526803701292975688479772474102926472581700600933676796715222971374786727544602789117961173260800899337578393816904748402014475369942052505702886792286117837993236534723544214422025960682839084698766418009689880562759370018812034331843001374718551665361414635482039631232947829858544414641328191993718555015434028382449331373483883535884104460758353055362556549849298865750479349421663703968312393173639517389509329591235081205535719955699342395130467716199885539669078708564100283373795083152060698971132760181398931914981839053556132158439489466610492322810712619994285524998928534828104351305503456438450004118140414477863222136697585612806861605684368673262613453291704627611615854376455654985917321595080306206649442020159576163402996693186674154766654215216288727994551025271377903852264368489192558009945035894553803625457722810039890902662004297511400186253107829633014940769509342875974401919627637144841167754829643713026659912230331958410529326019078185759189706681265480808365125330679367146570080239371093505632455703308694971183309645749050145623652048958783737137210984380604420407205647453318354052572777083070310199288426693047685052542493505997585288893327289433475515604440466971226020496569257885200088659336366774598851636876977454697250708009311313346146054602752173431685370414859925849569975404799446434289694434270810745849855390536051195924424770423798431358261346613320345405385455145348063919793574294362502065598984992416220704302711624082684849236583154478219477098063828018238285351019820138060796823194601394700155725822558816681793246873079063918909526813352075863438621977580151711613014913204627779890046738959028873426521389007815760611367844010887431224387003399498634286343788311286730430327829290979969824409763134773365071012647057950291942312223047574090714673054436956411337238274588912121316724707030370555021727719390876646829090034139429948125441973811777630491776589212473422846607818200630636187583059146666111886381221167134272618003235782987792165636388939006657390666589764182243388545998176624373192798256177792819391120189317372477292498926724104637496303965237640324075175321879943251893702530811346534324319878418322480297702616667907644829046568298889232323080124142484644256735020390847746333756791243504991716575014858727869560940555390371502002664481400532657515994930851868460797146603443412677128673780795104250545867740108379354903615107376463627247997351313659502979522558344044530774963246125573166809553615591523324093860148774907805507839317009333467767854579909477148968812694968507618420342110157117669783492166651236846048438693952934759133147733263466495776699615345932042223429996461465119054512811595824419965791379662020522616149581217142702311286763279357831602760525166408439710933806511179088905939083625045371422478527639270496063740498692336898010726822777142111390784919246702597283722315647697376225296246237224822027049143110556749260897511039598598377264797638634203941005809312990782900471094968900835912198533644914676655675878752049661782788652792320618901876851187251432943156979513512572313058396061557054664437618295207253644272755273973333379336978397764184578842441677086998023080208257101192196700931081229696281890058348699084938034255701950148137420095907411860493379726480407178573341096562416346070026952982765681182217624579752907563806408376906968617882788067904373724336379064412179082224214641225129318299304035742132005066206680507328749296717629021080557965178551224015288930907269328435291841225137495231018438935080238545601098509003540250304430328980877012649628987883198286683724872446959777979342273253239682328038771432953945056106988869993449438253579579243824417885620687779130913792632701261760144467082333711753678659504601733481856895416261449972158039432432115264262115536257609386810252930197944263850353083179490620615545966919782082809835549754031610168321009075258469284740342707997662388957034633186108800091685686772135326863021213258530944222780315916208321046573352357723858862705944218770277276905734862984069738728255165255145308439242335925166216220628682346631649359794734718012108857508452829762174369252677298446235821232451616016351151262684802137237908554604804741430039271829489401289163928796939590437655333861030131044986736303514494927151429878365531761899026530556694345651934068260417585254270435023582093448454383163107964422386987965049830835937153846965711928425623261305757828784747596128743575459276330055731922179498624863392496001875182462411392214806118622980911898968973686211372502831775036202834489806091657803441744982454484856881075108786207202336003905168660008109715616862534850910740101117967215356028539755100088962157798585083848481886547688560284170336529236893732292068765473665514455579273046316477054927428333014929760551773001574139332968878229425460687392340306731743659371598218790449811684961369415706503968475851247480527210363178731632848763916108004575834988381615088308480244720901665540922729617979503888491749341463891533963761272315077229000241525825358943730984208489028301156725287380348165209271688389028262936602448005083634446309060744520708251130558692907708008990567174971266498310509227146817688027989402176026540068367373762962239237863245696245461591997688197340835421808273840572011018057440887982909890303835582951164921068094383238514554019877932198550840902031514359032467202547240695783425335709697987947199272280190929201360783393450182395194294678549276108775422510167457567380865279922152204759844776142176076357528272092430006983294078905764793746047321571554877255279928603699084542728605501830447255934987381001919254415762147881492050739892715742510450460799586792712001811520679922615212945448166125605516066488765590969706042178683741587450826460369180633658289398215674481922962520857618599351314005662322847769335688086320397774946007219388422693572715665838121424040982876426900452117441336654766176611915601773227183161521756954267554414716826586774534935807644071639830016013155917152055317487845171236162633176905773544438650655197835652821597624187947939336974265779918891262735342698005050450803646122814672474923416760907746053207454487913309317445768656724667115249426267833935035927762607575169099899349247827878209991536104761093060857983676093283193063743923677966275743721430260868453731631120818760309049466569247328023576122928753161615961766161355747671061306343224642573668146278243589211552457862685869677742185160642468170127278745445551467349116920636771877964982503437702575729299895486097383981678506233941915849939812778601112390818974061358878417429771798462093191208978476988279437841341517891053754935994069522922189365988909487109901082381946804584488368735885571412802892158657945804998151649801521840606910158883653431120336420588790066747726708668248523497792381521715520181463876639100624509036962758462177213014643046680189423083764742229750139101325996417744453780272152153368420311781281367455236481224706209097721544403418380399561255811393576668401026841689014847852332345096239907177966132127227633668984812295405253944198768036951027961860251685397847970142331886880763731522484392224930135064992424257791653354602844422683844735320367715672624584029209701886289581489843287352024363096618771737508068527935759485314270590018250059801692012893171976103891887873117325928231065477120637459890768087502768789249417525851677814124877652346088310358268188379674245313099931847813326783352891678069090370835130859802065506112793204884664480031383001800275264644940302278316671657078684248814887773975776305439080629910004721866534918672097852535311906030047427265201914117952285254924258705634977164249004132272936521960172022411198635945672365955288756670757474788135376523249943266788102880884275292972621717144313258209580425026760965587257715962065685275999250648088337869292308518122429917036594296312668819807987181578945724234670312887721954434687132561813588084348711886400775363705651960825268257596285838523930485155411740011883791813344256995390521212774116670390262883171959694281436503679391856098185070149758386896022831470076272648465139928146183120568543911134070963890116887279306130992126675686361764812510784836471650024295076993711654035413314552100588638026440374609939858022619849441807093710550520782002067921045751100936176120436768417077345853322154333674195195960573039498540345322928388734479952344512256708269465389086572795742168964525745961976264245348871615381586735951455857416701370418035309714311764976734501186794177071027490212860975959510973730535528328271949832573192653195368800638588537463181415012212003145997693966802703169435685911265743120851697528995131032063823134229630375932928252559147556396058616555972179045424266010543896171675704311580673198013070643031685202687403270202317760956579454422393944493601051782741246916659621317743699482600453576350210629829095578499376170528741039692469334433536138010533835058813860447022463571797514811982177642461479955259937335722223116083731359524106418098088640752767808630186701052185034015218126949333142887664866889791414531518212834211927625461237906837739370857402796020385319351628527906954865481569440561948073159137432730011222877948822960927026512169424856651701837921978521658556712250364804015967921413730873192290839157560364280948993104386024992913739327612492707810475399769541311365013985155221379744774580521664314525035509933703190887694588212120893899992435919595113076236075538018098499821777737352239435814889360409668841158349125579931319536047164452641721232969263309364893704422649663585707440379248116853412057184635599654475168730129036404975177278067178930696763734838297277840862545284229400744465879798307614496626032582186036031592409983730562201708936204813692790256920253899934996470826364235751585802802643494181462566434974758970578737094211315301593849893813960524888021012859583330044163052725188779339014518977596543625111851759654216594628449278830340010107377848546283679115783548167047434601681537261795608689719773791048960333317016020265889220331850106859058746120668723405607556297941104293180028441964035661271604271523767686469366667809091134443307401975233905971488226776328335008015811239106184711318628845173456480372219157665344101153532742025134193268006455505343752242406010116614658203468721590931698078229049274319881985767675846771735064006473977115021560639849063771103100254103035093641385802684795091157480534707584163365646476394440917233983553965066451289651081587784220676956335211634347992960473608873329269150113124001674643873426606143713921600086173477414422370684990143178772977866423401384482353313015757574249817425176416988381826814609304045478491154518416012553974837548784723276190947541421007864831373736970203077486958278050905637412594295574625057758454069359972547496370504403971810263188557612219624264988576848454564205440753498641011912846203834122503095189093343673290370485396680440975264104965743164370705716075674717339819251528422972121126951324147012271716151410620646428854899510296154095485791345168783505185300221642123095375408726281644218752816023212095735552932740496505097952117247018505124059703692785078050249062251627655007474250502390672731157163187960921878793533401811007216874625700279215308890452314881094883683406585631327235585230750801372675946979476759948317751128096168214024315430690107751371073799383814978063286230969062419869603736037189439699686082985700857451246421167701533033361569794465898902688842581692459191790625690976735604081632159795511524736673335442251079787200365220059511759757381941309022672928957923266374793466081960543349849022677842552582702070585409759983307922310388592756405028729645747502701386277562037685930790688971324330831504163141800898365416192483997206840227910399206154600080726897782904426614651320473338735046324930290250762492690698977108084911896647279273695300449159032151626969280671410640239944902812521384276295535082033997140817199526260369891691941927530879626705399596010946596436476464032328142533929691998278817274161557149369017301501661175915214086108289566004366507321932430943304463727058848062155620910989685262109573149143665250944407624678793809941065518531033651344570100868207161998050881213941296190937140713010008497175241648511590155968769539372054707633808754106748877182737695859541831715114923899743180653342986762647637185136692775619417067677680844436453804592606174071565726140481516045516708346900370675997728721573292367203336136518384525696638911246873493192521144352791026319510783061646557268278593738313807473704371745466791049571979427999614168640451930503271518368553269473568478368457528203461281854423745400988052044309087712675006368025494054825824172785190961270825516984175314158106026372565374663893007161897727411689294365085890398435123816361122829260096974940914376762706459173497005482205586228942795255159550804287791042090482132148538172454734477063229222821278730328510521325361201544149099842564072642749114554340595780239862039299535770546018403481587680385435633536780207870423930084051379555507324945526908067764156742841333519342482269727733882263263451758599675526726966773605785363384429603608530436883298496592912858906355688075833651459754913908687704415876847951763434110494031139342613430761998352763243406467681794255426978158064430029740308261175311902334528149115626897782755229019426902519668155496873715600320869666829976302146367596481048953959830636871790593526534572652219666893035312311888399000214316934456978913447222873249935415460993003296006914310857372323198850481676674879516602213741045497496215979106426146387507119801089493534103528477399151377507352898610977158009444251942239027605474860083849629911520187873156768229011951050377551712770988626557132672594012165218942054149248164146997373816932634470589292675963894382433794109354747355578259606901239160903893533302231096636008357071691447898513848557828687371292752982637006437953908096706725273703744374271086163447086575419901093987824547481431255730008281024250862298332942245438563486821281899696825710256524732549356905328733554110907481449022850691342046912346650247463291075234590434939731236525782120911980865630409138753938072112376748399760904426290862969847247158153767224890156134924009590649170248634761973496476125807719242143343308526386543145093135213517672271166786139908832471480273482140242569464201111165016525390916595777826017234044351009755123283062892963828810683557158922129259371361693505252908777792453700832821882976214194282448063449447789256320341153293111972269484226320236364751645426289587606124738054981823769227668845563447259227769654460294567778179937908186255811712746900261894477811443488923602143579214866155272584582934472995056496231351596314137077251292840025053094600424974190633927675063129966437660900572257426821826992169182888645287606179300951527366031693615999201012096452916347363316601783405971607747842662562874207580282331676101325709548639309952677166513738672989497334601869866501443748712281751675457357214497951833818360784327905991520731206021578732086397573797081536881806019053237677672167389566749568828478707223206113851835716888744754592497016662405668843044843217035929666641776781953865302421268579422478217022331067031944774983710075560950590186090308677207206475046002700982087538154721766850777495766432956529601138604368289080356086116102164551140509643443632551008002011061432301847804022247474147053917944901260532996285331663270295119368924138624582117329512453472370331072852284174396818668845705665877637987490449577479266763748991096481956966612585316399541873643425033481970351779006674698466885516458938231265801350301306639410983802971476236989250496335562366659088242770855041576322272083394467441645446373531174152165591618234840556147679246769901908973637417767271733111389371122437441847340120282116776545458747670086940852250502661191782494973516606496680448634043648567005745865499214384884461912603628663354414240731820547089681582810793167013999272041811902026402957766287049897729999310734689134687013250773324065240768246890348115108396469660664435818453736546519722005645036388691221551913603920608033536098484230539899722687438251265573914391013924265282199326191926227658315802699309458170369451351818857022309149436540915647577777771231163012570470009433648614013163309532933382624303997980940374195038334690511949434004360446000201473337457907992936837977456836516993942571489575775740869956184329426845652264969217731814330229008719583513925769223068077286645327706949583929459076773474426178658996017807432351745125137629882535665953371720313770326557846733747881683139554478891810457869975283890096659012244982820674798959437348524298852695074195366208833296797046370621953556667957173212625518235450756262902397576664515133854750160130813313757475485563204799122492103659487916158275313528975685812459407761414990251206394685164981280189016034370997160603696189002152734186957991192320132474451706830100198437997453563209008255281316836449539916512923166475569748107465393911503676766111835718690818412665912411305185252507608382453818357241422138856797227971028905650279497983808824041304015341107328637945929935051273647043414695785112425612697370234484033496954181525049542781632264848655236089709168617536864525703885712161121011056297612647463632821147823088611004687406105126093195442855789514252841296934976460957081743292257713118251525889519198172504887079344376911111445737862663499939801559081176967828277649570336263613871248130083603261088347067749293048705649290282122127076885641952183707848052104125411122751586681375111647846994987020344403209988067673751519430398730252169242237731584016013540154063232680388375170509234514704858123220455023265413492748704624300675824679878326623625377005890129283853108394569888164443963132571746477080470156699918639633165593681051703238051031046863095463987720466273122025996356475510951958408376276303954773631656499328972229687600503386311823502763152456637570327877017989926644409713683911838294882714599354834537371675021128966457213673752824520286365346924195938055792359775263462177805057608072730655805992602374433666567899702208950156395453617572919745672370482895956287608040380599638545399703532342360831113990234504331083338398708063469297545051836084816065169736275109871534199414078132588651040609392965484020983837749061888477131406178496932586047520449092721055711724543881792030193150549950559978789883378907463838479801739175937525669586799526590774780788482735351309718365879951806061588637258084900735322270639316551521186394598304176639526923995160817215856694198519048106454678074429268110726956237227309052286740234496350698589819004688028073949235791630083819543998458599553452843220882721866950142775509261781785545751813423717949151136713435582998409369435658281821722320025264829830429816783377720102623411799227486779300814085149630640421981904326887430434198824344631569372486403735025288626717874906850861042103226699582572748115543167528423340774381291265465286653916657992376790452384253430216381855489912045834047536955866006374428977218528612873432189450333103640893361326285479394574096959685298735025196304723564458775850574491525085244438515064232079374071670879948046537097192441464533982910597833341864604379166353815903673795631750286291839607670280390085651024337326659077356988646831890950458481977529196344872169016772774470108831357583568519797147152867914364684854576266200332478590230366532107510597955767146248035031537978657067004699910477760600835782656830931103190431451341041904216414232036301802351680792215180786945580425710369329742771562706460091773967539843935277183932746127802383008342033209551237693385771222398472044856158183784237189857251440432976714555279760291721414359929406942976774126495899767795807646799090913465421663859313784445646396508632497086754285089806841520131768760051682911738844995108936936172566378141504938061635912232503113676293652244240762064676499784549590979480682060283759424192602350017617951611077798314803264910451907027258451639259037397809089735569611548904927495732893059926483233415071054092968207039449514062117249458752518637670293721953800268277212952453482092560479064370083906998963923974966723701585070647559706349417896911734915898920244689218851587209391835134596439904485628721118573843595299818400455832046679329195828493692441827621526364854396296446155688690839997810067381641401537439358688722126135285516151936767585127514455685623423209761164496841151553377611271772758410097210136475899793747954053639242751967499477223376563075273744028309564724026965579944109981263682389166441756956735163922002779899030282561063505065793220464422681918426928248378841974141023916133574613943997799155291375586367885769252577234865245125816794055231660904300525165444497977080229806109982050965032178576413252733641693859150328105705671026630520813040314059472301788257544129664451971702812474106371135867235978630235184469199579537352156056698823024298657183936464669981156165021040979902716594005784062938375423520615852602260674916395331397318321927150548131309677954946084380441056984667144804986510994737921464323309126039322272043767748764867065997702637842305766387895467910495748997060469726927260344526795124699599607787617971639364964303613946197167742139662786123959293138171708575310326650875653193100446686481091723271389821749599715850937763464594614461334285650050515830107929986704162780724243700017929640661446410095894266242352465065952222247557031797911644751574386357868927519609718906987865286920963566583020427272919605325286619293917752287865838360113142280391456274643646663840296231666896178691752067942856853442454790342152273279531930164424652692498227959491849710402035287339538189910094975165701355978555298840773956565077854769195320165407628860769207919977624590632937242647105016574717354947267618259259806303830090821934167686695216668991185249092087882119187886097629705584723386941086283864450741707472909676733642917027758471053680773485828431791256023504826004613974767320954400348859586250727353513562479567082695933169072304882774017966968993436947245849991297747619339953018437072527730109831696535595476864297135716890239230001998224884782854682395875247996190917341953391694348469051684076971572587787559474543203434386543998997750418934582756450847675286225927214487005382071999314297917005349902804467101167943110177107558428670989642055289074549370895304736844532054253071917036132750197761566197911679300898508510116034500103787005000291568577286793321903407460031086433454039769470920070683775927777407243873002879624142890667122938771505816596900441427165828258647800975905345564215914532185796081838745597927192956396684186375965898412038815773667018151070979952377918605784365749717528045406231737696331631912037147237588628936873096924697348852646265288860234981415792122798039522475546103626145835577280062675895110859425037614630179119412669502275281417516015897203216852810627624994428930735998721036557533805206750028254579496798455692772682122200726827431108356257129428217064185312904240500457370121195477202165345068024308220469897068962757103408499945820950144597978995279775750165226591188629953672343381005661306596081251185002263741081710710443938423617155287523658412778876236662644946955284918667560946002755561459185056278537835330253680340532740525957989099055612555641577308176344154409613941472674734959575244450873370043420082725389026771447090258890160973565096689209053499633006113864687798446381966424082176659673517507004721946395416542399744351151283744209932132048745252039394595556732472053473693739012634823231334085653362527018739803072044324614255164114645678646151464241760855822174589884225365772291306670268070696548258822259096770822960665700950900197750568876299690910293462820025105711567674396704523450303488156401299755465016157613717665224589733661852773289445802775585555310119144747196799624056409773766156962942532287759374609558370342794056232901364791239921932632660051526019989645763023236014667070133979101295492526788747079121872573112120118143542478384683304454951534899146557350318822775343555885359286016363529654586125901272274948576291312929993052757116961288888077346309314309268087665185524737270514782023497514615222510334685142254856196925729093846853395488604886519035410866984994068769418719555343739166248747152529035170372351573277019896694135260550741415796164300318980215752861261956764082323662841454627543084931399201329617356696431769481400206663874342463138409689146928985089491619968326724549166966968967551352750102368781874967658187577598597920619087565165868454524772764830564834488286848312246926812161598866270716500599768569439123979888670101991007521401070184181383623003653184175902063957030920269012496254399351388637624090985517354718152248863465768253734039113168792547625832605520797223519832729584379937761415742671978593656320792705985767259057679882590126838168681492017478905026194465497836919794116910836959180738489478027625290258732593586489498312022429158684411641529688314911414301314570102848767671562954580307264061023588405016482094747107150011278230176785252312776264859811046223051859601752934436907651602293488083185772593576225647411154502085102012575600198074307304192313112368367802843579809451222297525802314772620027734342551035328794660205157984071488694070731629493042291115935495677900095778380257426256967542587803963283548433419090120732990517727984408219873410461354076643662688364758285997259263418139682947684979063992368617633096753327105010482754430200398535030744879379455331309540499503014547123853677347347345971311547737205816134097199370607409930235500209748092670598632815621845883533259800940093639295089639180853246460257031347197427035088118986169752840278280800193730637990031958598588071764519741017936581917515730726095525241646266248995328761217982144625327713960624646338119148580395181081283402315936101389893079577141207226251279646199791081966580762461288585035830846845351283577095508579791048239332966516141255771744797740251350216171982233696014939391057900987190643304949692761780122594889511495717960707833738789801220169749355937831826697801530736388544860542964317821017543037054471665180057498988617221343777636970198362034149457639685321687861375232994212402633640603229756028769241098344059464515848008157980556763530839352859844603460781483402647376838829228059726718792812767290220058642183616263271034305829573394954269380209262707479338457414445980195025942018815484424579933822426144382216591604745556093112844575548279933062002525387571448536657297706741257776184363427413389326042717805580824219817884358379449655695330500264779773205782969934202234753431680269662014293717753358659392840645952877776765504860132948920342694098966972170552093892917031508856428037094418118606205143854553873833387109846424141998515789139715285464832382685158721036924567633157910872972107816059623364104908292101596499346294772688285686296915907595934783604461554008435048700075069644792264080328292739723116708068022432691457892363941758262702465320899426740463024781899920538371756838092294997917630471429220723433994263678808251289207784871089458042114384499013233118746913239019018918872348155164392298917134411426893844085663460040134164232487739234455044423141475017560980422874806771835874750751400031920842902512802296096498048520639756100359865001809679297168667175699324395434049085664026104092036112715244362362389108623673893660310115412354694548670571682291196283146276010709518530098694464772213805406378802606314128496147692100958661342134107907170586629831273359982843218395419659793770499863958969245388982859811609503613084977336104698431979774669556438854130100758123168334663864375843721204232598673208036484045393518806688387817728698062561650170634867053917607222224431219435189739358733425664544644985253640990970420853530558870356903317478967495063423560112577055646274253963024656302417704486867151934378770273857875799988364388993665627172409657220449364608380049915732086478777763481476367901831806715048652303407633422547312076702163894942388001415219101443994562894104154936823146572036191142299349155497241330802306922083597423113942993995663866490521176510497064402867737313309299460610264905335762905402502827102459751766245883691870605155256892210270627302482125804765828663256003997785897497470907005206907397240628794113722612353931308329874125367786284365693034369392035624425894928903031057955836367215081487012158341028112555089429310641882561844512104556051735841071257140941588724965579395040717803447176312324936283144216379227189991767073006124480071720607093282640650137776485393482698966689303637572059317968825894503181195659303724060546932874849545825985108024298669614479367776106824738400244157206313848992691041072917472534843256196008824767094210217520126984841442143014164975112927442817641054493770237332992546292935428106913263599820060802355696073125572293551735843099340671189806169965640468346456954587015845699494656134393261930851586896047964326701726877281228383747348920482725722723355468506096438450112382276969108368851165841097848719605377746210319994017030882025104152291976500097964343861116784738782669447066846394949718471090028101679792704629359362290127731190281944147382514006408397154913022275932439025342590164717406779300003681307020901018948885837283189517019290947724683711810227514218239882188834837871377779909672490151140488653200663913270183763212602661689025961314180596234719981264231085284340848994497103172054837761138691182098333728069748366259634079025692592829569716223191844672586015355870087545368280639894697530299743119901552196716651060617926929000925808400444837445782806695935883261592657771821730176230132500130128724316777730774033624356212876457310615097973872267935573084102325489539943783197653503379452070110177767866279438270550844372819486486110527031566837788865899107097165504049329858318338987528811707981883705763183867136146562109005127189348099390402982622121335377237909558596709103182399850581281858626792377588264228198218651324645430027772878787228267266658156014974972750943257788672607035363751742661859779214277726637975390294563016198452976366173912484796489260715611692233012246532378816220364734069847119143530605888526074697298077805396031534686162110951659116148471018681412823891653257126649703398381206843824133811106690904993757827397967213603599933865967156586146618140263777979541935044206859706551234145067748523337528226070751789181638594301038646922249111198207347165383274150730739747434648738961299046151033792370587739584702765132708196914009034520295833748271242064577985913563458047358620439416374273177582175860692763656312925420730928574117840287891012662786592449415544123399105074705510774802248703894044675015907189256627539491896122294282518907117705667211412795993858739612165574347616833511284084295900931000082167801656465012985002136884312605922720664353586246652144706145287267824655722948517403215522371431892873169740692420519928385180398564587824114224649803750347307047444088048060067912763985301114657473660291906800125272374878677336860737703254836852023421090157165280474366151895757621101321861836801787231888405900734669723720607733172444044946937913664273082904857798926025345837686079963212785447669755073401261402271835005399786454200901518128707977528096121455871672390632212483912111480348358235176716905864137589631698582536117625596680283323877643632334007666028777121247063831510612512281480404261952218177298798990387134952903164246008175323513669667238820511551859350939453894748659998105567289913325862930344152361470104474317505926681976593733423385996927381274908332965609649130810763486693405912223379949263235645588951623781000930033907014294005597074925149499125266601010458337373877944151129559362964285770264523173498556466806076735305182397881989191696031993330423774701764389626718047330606373114687854989002181853476814281997481666206388257465219839074920478295324264855846906225489138231615384990908983247367909221529298893886461884678187128312969821480872214053912813341480958986696763532948634580097505253046974986337964674440810034046578458232719309475392797177149644887426781455929536747008087148183912077953968439403981381268433654834158089766260137191952593174850708676373979625433597989965485193604342406904845990378349851828290838260504344274259642297622308387496685661291763878168170820586757845691185202621179771465845460073871833210405803478916296150562843324208320027495596689819963403437658771738441406985365280845067453053561331799853220738485756586252840104662043231213070314248250088081463703030603450035293697408938639469469035501426628881290423299828648818765718674886988315615729358212572095133734524779941390293969540526560570012954499750362592958116504908733601010946867658152553236899868292733816404514989170609318394661167993112162820155128261986180879634493184833384526924905676782215831759922243227981593688949168414564438994241908773893600219167740366977715064452999011464538315348569411493519192286157751150071396423641550087539188878988096444590041440679619353922795754186871971392775053502859057353892299576199785084478016658328744742568524244972359791094386261363123216771979924647078828905177508230504244505807679217144561614202562214428902149990789951043371138942532374253135715695635231844437820902391816586173599102631340146158353775986095788925206755545982487941786071537675534071122659007398564970661591409865895170401277536447051369080829429317012953622230985708704526190628231850329593793175826266183797945280391216111438574143827943436726501510472899580791537329252632331556118554221689724110545057194735412006706599053480170751132086226495475233659973908077352783973257382481398639751544711305383334103988637685337288197927815663837913571092717684829562675473664259400984686569369434468210647372019154633144517167451007357881093326896465848478815932419598052802331333200842703676758021324819670880680644815506832770301848668828176906478146672287826835044445280452144878674157291926412773276847886024775722060050341328825740138944436220245952904754307912112437257972732999724900801155270764166788568298630150107615982167252592802760703056733036651666680103272839065893797196247507706671625965408565748060852418378601627340379439603130974110039780821380575224132183804659600856996268043732006160039290073159761991239879535283888764680728482465339440705713791474332773536407729571257333440050951019514846315082775900783598664512585731658373823821225410017004799319388477145472790544717259591376253561524422152311365770059821895452588636989813125188243765842874610048399592527112632031619181340340382598807516858231263148236468891248042104397298970984025596339423382026798966164616108131258909523294668653830943248403097658163798750047858905703960400200249959810316142471246388373057061204739982936594574055222655174112784808473709728241125765677816065705655422679641243758615453527527375088734501184959800643065013227032766588250419682595776198886138548920003883642134912423952262989582702157310604250974858846891328036456009458005427120642626755803736374197036184521831342459362046632669212668943524306282994539399182865438590317280393971925531467742380161183461480023246215488232010436032944789090063828226365950533477445782113153720604988943236645962200234360339995363021157157344572495551986753198241286640827819048011277696912463100036058122301941569060122164435553038212464617176329197518437477293056227762357536374206251538204651085303931393667433271006885958246259078613203235611744997690115693341772187258744488212390155242006014235279472735676948111455747785891971176858605550450700132424995947159085028530430750247081589518449442937704367244240174599975429350744710465046834760763178577851049439255388350325904184148269612929218757190673884959380961668884534906442094562291057062939970004839179586202183083144642654454328746498666592421888522737694674696228308918394337630841366926725899226264800640152932477372019085936361373811436252855851365288909803376371902530355795731139065360023234405584743343881801396092777837940682694552389734722496509280017978037904762894107377817444294523982271590841120423883965571470434066058210797156265975186966689278087366740641931185977230197392517771404570380886838918499020724343139842365214657441807615665132150076940374772714203738190366557279461336443359332291993094029369097867067180059105881787651178752190841778118705876990686582462818319603970852946515274576120910695844455322812031100255251075226418198723588722863417518475319658543623098661835175951058924368145259344242244110816950257179504496624441853313118687016668048282237138463026530403972881790436485284701946984414693890101809169018660972776450108998614388622594929927623631272898341515622260042207268906858449765951105911710793155136456610732109669526379699480969774400943066272603556589135886151798673883516685853516218561396105273104707202593173323964294886792401837007644052959648696970944261091141311352895556423726481052775695142147430194891942406037736701569221068844380276654960479817067729837238955098429622438700152993037895253839388723431477248428287895166019694698125221224322876162740391201729642512905362803161845383119571544735591671319790756667278604599308080228082627695682418811785020117856774863205138708167001481857606864670403219108001182901704515944713166451303503315854481153171826238275907748985281518645829134877804694273210126586818897099159273609733679517379111037074955248445383051670126817951427897418928795567773037860556986344297458528518215657426110881785407449197617534519297353594513268659916712618735613796012296838954092630772871502506145855731152077550133579608321227419505780831686821929066748291335556671474950378688878061456488384775186596453751390092999516876609464097331650491819478700231020165604366975146026806644532989564157181636350471117829967678946089011571585329025918480860858564649549679392132606765939801366060126289927701558539770146913401426198583957716926025079921215356697649529796693725043333385086996844483458531576714685584782548594643686213817898794849742793284211298294135219096825312824083387919619415527490932330394016656249143487010110278780739258443439696033428205821791834469339408438656144010451261277713387765687639062611499190501545017081014584879880445178541038044538390468495569149875704404276906500888325025035944106831391067965714990916506483063440482007510096426256102149212400922293958067649514490446612761566672801137453323914504560045523029371497735509819801118708626848717096711093953597654815650180305080695119515891299194737923938632922579336153444668172853778030417685491923085535925190123460234592741021849046552389439048053733245877430611618424801466507860895816069783551134293813855016948192589261409460120530927614392962996349689878160944901591949661202384683355778745358773558407143674296427717335510655956100310820306079361361716875343698928916654452523227261044226642631147721743634461420902861312891916192012053772562550798664839448806735600503545234770299669215331994430120985011304644275185665386991746327854278365026435788741045661151404771065217903688151867839740086979794931474187338752871622697333507103147629041780178835116514293807836527559024426851961685972075286317280601930928048200548576361119871423994084509442234464975210156595872286034235434332334264460726878780165911598000064411704721885568658155213221420616151422920577358732255177715302041510110039352720182042460091781786165726339743061795061204432542827259302133434734171821169591145910283893396384413687930070965083197394176931736774134126637328248721546236008124785248690649924237754323311402179414151254827852049343273186896125797292554436949029407194047684221053714327936885688259557747021574916147151891927063906837770603625312005876699051353655538810559157759300517902890430643276579873366863844073858008715260851922266831503055764458593184841183353216922652512338255717152772285366875600981831122725365399095962634986963507565176880889304639851726624158178824034645468077141551773354372822219133887267662112984037348076190032395337104081033920828342718824941897534594382676171058626639746581473869766407020506774470472506501150070879998847494777983770624898834424465183876690815038371153060335073250140368346686255928335779756030715602296411748878414201106480815026026779394464985482199311967943165468352883041733665522258864338644012635120862551794193058716695747039026928542134779115779625467836841332294795558588374583506295705578901244892478881301302416511238746955627754781377932263550470123760818093021055102651231973148209479275137019793328196385165247786774356299712961806116315505871381837483892404661755661151781058506283479098400766887561492661004174757635942546743872003741779470973360194758397647588805969730419549697319350774020456079387484085777627897171297422936624424203331547285667202547155180422454096823629895897079389480896860939457852867514613616342235751289400351252473344321979869039394768047840171619240938802570448263707960585974708976679166156324596365947767664462040235966240085326598423122914093101930529359998861032335759213977625693967326142511742066014609938945259956620070520419399109613239193697977544211612180388160797017054630084927873407134711713616112252030341951546835400131318328831818187668563109341435436339440001319332303302141960830845539753749060299002814583315286052864293859058138706209545250664069198042838552008560205282041062884824544433289131618216064816274557071237301723766259426041590820081512313577023782952855126150042773343816536304797860421207666049379664918413456295909685722994853484317162097627631466702407730915172021271783751354941268160951014139242467310492589567376139399133172679271844905517382624711195691594807178160155296661123382990797676910392408341849572636922950281692752042943689939699176177537900552466079440553273703593261814091614461342768252707797131673098366208542644316717298413023078204998871768712558109740850690782680584953760195327853284267902439192533098785303520832506709397799048001338600042013092432174890855483982740351262987458486566915994889024213976226712751522760285714118289535713322725463531413377561784398890981614521551619387602613967532580791359377708481975371868321941976667757711408354700907463687860082479807191233996843971019386504303371069411285818559376273442133676830171060458657022614028653707966088049794568108379125397680486783731822505025820670107281679894068669160779488071435538445080349610857264417882429309958693382889051176987439874200518853094750211631941485725145390616561536718276464770306246686974562623863964693274952545217927796825978678361953577710899987118752384668255817460487796408546118290331036392512520173488983641716827475635250114365076856624095417349083033695589804852504405555803057393568726114995927539468280476683785242663116221817091256514204631986899717018394355728488478404049359685180765488490866187990942113904154914408610650604786249683557218396019250265745248274782542689404322731992324975288968793150584352063662915702956629782876226762547148377280312476679333848876920150532016937620362941185450514887703150777340231701904877372024786567682789287232147614786768984864558410428402838900530883013271681831162612383874414088247004365505944334678114662855485370365959602417663560254366496848638883445430807832289765093379108966502937546263663769335957744333037088343718631145624180547360523233352799802063703714111913182533408404266216618159335515165811128698291408988660726159863157291258035136611401293219120499112366562473693518921001715189537911181486352884431715288746304908894520658865314780039132815989165958066552186743550248956903526647091838798286817382170559985435939499432835479862370572271179757227710962327258274402486742929748939027815140528108731898630794555062731353696159320808141316917127773204897860213385625995536664985796638655580892349015343169598476922465626393615952234398651045990943126981714787839519507409626823611399012648638800531860362417118293901927993679109070818383471337149271168198435070476041959536596318092606767570411164428780641685901270111682375134334987925225611890552363743849237016348990069209888576579447004839196394051103878240873610187272103226393576121704544109932702614704468835563599659847121376235311880192476947716399026418652252331786410278126333396574852112900929023877715876833020886967266009725138352683044659162437497623536774364367565740795369899114543192031597054530551413010775060442008158839576665194068756127627405234033055814327084819209642379525242645338001287474353348429705407113578329220965832050978435561991177192434574164001603591116038669122480095974243623064529353257228620351863773832251478680917663009128274885982720046036855078583288694439848481541045665587366953779388612595398852892401542578895779843753609255712072922379545144262804860307583670647949230660970429836190622372123983515843201213102920432092731073920374768096469738171168471465125528565264478677321625918245389254692940101452360488108644498276339022837740590128265058390569252707749100395062245754236040918682738152229040594844070568804654474683480831034319899717272969587457782719734318376952861362065372100128952472458898923492644582612851001722376494832861424272403839223649589885463161220718780903594921283256631461418573842447461566141016612418528183570860655284304186720250549847566758112718317623966482391778708443034294191013940760967782344953333492558090327021929966272036882766466258420734431647235135886702187742019250808129691020220267342558950823831038634885783621427863307909421680438876786598824510733619820929058823239412294045565540100549053667454999151195277156930800931547584300204787404871925189599771367915669210186208175457092280004453001953947541511994137530335187815739740085735914831171680098776220864359360611640263253880363192918398007871723156796030551486946112697537582598735662018489651742769362027426571403756776967776646943660625827181197043123288740913726575041689868171460395178205939806371961351930893234243334300632693366097025497361151287807693549536768692536630759862799746204575800881667193853163791137197834371094451495665962863183018523050312410371808020684543130896050951285649995994752465430226062419507454452446489237413022894735939519546929138174974025905509523634727920468830152637192981727333151476117716679126123923304256763715945273095116759163430051788664643078795560041813697911845926755802536628713156179631147624849319641111428319825397857152741967813443339663402922993121513954729781133552811266553083179182256103892288156893504676922496254275094418603830530002728933253806614707693610998454444387281237867586965644392240823370480545796147427820350587320978403152524502925278002628806514051315229108981415950883379263768879584252654560242896421849333516291328786476941160631638055875630623253137917182164114058144129694590221970019048119787157162976091906553801100257539952183470032415309037982384718588591854513426840987031579138717053853421424062795566660060065847529668893649286343455554953299877656728563684052209371532549415969652532025600614014520820484467852912840472061464241023225857300607444517303009549943274032111824043756670545459552754624620684233871624909519448387968717714074573667391448000227196795813305379104405242949026077823371816496351197809678718770357621152318925423287096581905687952165517035996581371068628700793214805793967526808588083658157373306883436454167988330287195382226429722734015606801001812415986231373780993542106386234797034836481170684161124869612294681647483441874453933863937082143442488867738898783262270023314880009942037503130587695478855372913314281339693548266135109863674796803162652242504158274256600034295609413468472103704440015592642173992275930146406944435376580478891695953554019570306783808860405915089989144776689073208332831983079847408679144954109052749900114544454708553751861979248202154334195871416731803758753121286932442592073866049087089378208634283580518828539644905010730376644084614055097419492340344949720880271655039058823538838529363062646280860833241100146912879220190294623045225539637210210430644584634945483567779575033566988182738593784510294493402606925957556910913908837801917501399654395054338589608227701387542780528378873555338429230488968120637372082075280962469517408583875314680732942642500975717404578464438278710920489387299489401990509589611241342743541092033331350474000764995633132837172122746977067562384324185985584464177486885690440197805299115708615770125581549138122343330860976936175848681517403693052982536023972918790869657839919293835758946409482438369419212099809315582118129425036653980774596676562914261279165728553615382822902800222052187227350108893200936327010944684991461095282738470599775398625322394460434719111988338987820660153714668126831698379080987661023681180492975994197257642072023160819780612269262748159831331853456646015958199298470984587442912965470617817369179258628415966728583769054770813973528474780956345726912202258309503964733983570175301778951216867606472091463601386397129015599776592647687158652670183758517687710697565556406390645802485931433189789480152583930626467547936815364927182821432238208471685781207501967629611424652024650978111266276895941733636399488392091703423092954910863342156737245955111880636869851400367489063899057467771636147929881498508377061699914315973520084999665739326863146673500358034528176355091889720994203228656691867284055078210005035667716465662099160411759328507865110431596471752481429860209205418511871029687110350596278851242213273276974556518358314963144453132641198466698148526627272579290910575323510531565673107206209198070752783422199610118194304770804308128110994956509562354761106391803485546311295130533070143945892931334160737965623983572253560892800007207891946003137205317619961653241021491752564433293409841816021886027961303421729155380298993493870370429729595479840831331208018979777223651365733555555409699068198299880669907122263408036840325507656679495184444222679356578187105838188886586474991788946168541060361899039284245532475817488441755939989492606030713609387511024213547200786466589329019389071726782456471630565580756319218712426032677723760004108102783847426603143574207210266445887847545547393449143402977646428065461933428492786837852547955912669851472233676158745453482189574854764518375492408475805691698997217498650940715697004703370300655791968546111118718269157133402476565220518500823190837061646041818367793282203467349231505013281411671988857971846870679474244156763328353224130399003867484296367841484539339706333644217025246317869873034311701395297634762011898011519285266121646973277193933549702277602040191336240385805790311853544369786055619395710841883631923897055420593884479298394057464936904518416520819821028889814700321074246345587521951503140185188158368241893889615918546043248060435919805284655551351627876531523557749241506263217562450537744609197500704706832576950482958518915100798996521907764475311741327058910828323556310002294217896874211628122353811985356076425897153341412403204169354077649693180668857032954293619733675228185866014301689161035519507142786125229242756420807336475165249975176445716139454725461537228902363661426376998253456556423052193419100221940558945360734225190419425265086787275832057717989139086873124295203905814926072573047030970947604860477175210429920875443163334682608663113163576329591377844484645274887796072037451192383873187564266906742686199886305380294389908664587844925365649026880916166085761609893673699226654172375458040623159693436116594552243802669294820501194602087277963290025484472285947623590343136520929944964178423039119848432032765556165962655428589081092616323616103660951962535478328548148510034925236885050722861060356585402807066507124775471652092270288078445509404832394199473481845921471176137597983973740821802352329060499943871378391497400955205896569778832653065381655218498260214869072604363357906517226843356273508347212307551518235336642307900034881952676450637646252547338734841091168881885671620480893002317774686560770799815324146255709667160098832883488944101736013585773818841371401203251923166649196704675860337212383436811275713142962385122928437549931036557200308860659846705037654675455525785503152862194520523315652548117946194421074280147135048186284683504383209851481580506973323375635217403405762297059461316545817100337197680637177049162687287981034731969453763844658721848542288224456536362362674853418496187864073379402087978041404671655184134166046709126139490570250191733881926454081589706091127775801878439031395789186526412566075532341407841843074747431427230731342371301051517933341047834561847532358639818791745587708468950112192114742452264031324435971243389839685021930394539060822218871331999860306567126390969043935457901516270868947332721943176890357830892519640468150815621987134875842606981063039591156077927428671164882898541977932200604163571685616043367604351598391548982605017974703096168294057803044295037946080778616640326582382181327563555840528692588681279937730328071450092972751898700926503600526315105179402975763634552137055904686125224241791146890923090593043598241023159095869767757849118807582672794581268527044050443851927232629079941261850090450834373471722091787789580094727461018184687528823909416668125076821295214621360205387704313672622379511929304733985999253843477376120190909616345292906472113768364908059486547098867254996146160308138479479444513223543453264311106818622801954680330592502278931940445111032676704533197567795634426090310314417438120613112918762077704267647317113113131702110372484387685725613150764736667094143074520054130467602816019435680850927277178870490873406785595498890789692155836157826582814227779389681118855007399809612725600593311007289751334000077448967101623670326259579347835697580713613078042821767177198062897216128795697128465857557593740304719290841845201392940667019249045305277679482881001013252284145500612902032998115670734270798724747526922423753977681589610951953731312560822274584176933712497771658633872481221319960943901979424234460248602636105567920772640694383046185861058179195484958237346817136517293917337500383862247191980208831328262091535057290771805964856405401976527424420658179658322139143755599184615569236567686269562613379454183818153850293936440671075329657599170860149756049962992525713739564434374495372184035431156639653011898278152181590994625927991420359421762601124471129055223269450310103275416836487469375347325538121080967572986890017973351102607329338847988646827001411762338199105568443096853905595909815581298170330422282894315464413501329447241505689582888008124060377494901230051745613847067758059156257205664980454614193768335444925972370065990601348231370344692196835612084974938077774535305560846557680196767357548654818140036079267063613691493629656805232129147390169409990068717598696008310466663144837806947057947823316035157590227305871428911669862453641215744519543449971356809657802021597004855740337468882056924784931355662337779364186860131422184460964198666338350878921147200480412239801967452634531565587883750675284918345646163428474533299854540657158319806482865251589398380924792023973292990706604079761883357919589318744511355424133436529955184662234531820939396754617774244419165577844330783452961550003563541472176549423365662938876875564624921458634466618535684982248143623847793965909177358641752071687164363976673538272575735346951161876443243805871082588357954798013029620079131117872441994939177929340582821649264918617232308118335081741821751442572328273572061381763941654849864098004651010801543598741436405676575745963805907777656735764227572123314731639829535541612420460461684193161069401451314524970937171615332072911731096395087269384326680713560035279245564947780575553263200027274154970492359677346961739984876862011328903845529042494631341905740485631943653505364204828935596973669822642864363528820459160327193022583128353357112779809609783194295894292867597553750464227077012655094258694008812592572471920070172124986963961714360676320577211278160518574061286073125982565211372279670742644548617198014406083220978719639945143548151086857302075738982911523462168758874682098594626704509697837679700389144477316751802896567740256759109080057632526361950416869115835390976007705256411375931746002024129572597269245069469595621262613776383057996856521936469551174189275489992185039850702967392872270497139923049960135345957997710877169869058504809586906293209072582398135540962306858665031870747654093395336758676729426108028070634858844433335855883420637074568467839135462707721014057421538374523444811142310436062103550589167521158988277785327780505451649204030157275498574480130783163322964300082145827677462241348610657069526924289827750058190934658981452007977355579078737137883389145456067625093926901858916990001088190954156481143475692910453732168128754861764448500342351026375767152552187071949272764184565589433781414045252880842714877466052611040114622838274917100451593553104254313825244391501921220756277768977264126504969976189483812649158504592494659808351213277680125726817435658084842890658209309184672670734325813334912092230759728121131705456260819470283467158001814098301361487939568554391491149127287737129720535396002258764195464662275361921298534228954262841139996443538528980460338879790729215645393000412813286533133193834179877771494210412515584084527031801986703107361334758625934140778317910467493675016077177287188292025383230816686025463437714344967871874492617324939406563551419823506503912531516200989467949203743091543806506333635826548835674892568084113774505523612189724057037102017394337030090937480657167256603717844103242072101198691481152227198720129377453678130729810520057098893690747833579146123971508383122024805941380582436566677337284002157559502355403437082967372806586489386804723746396260196374801108309712198030357095024940766101777106150838802343601918921565585978003951931617292054159540356759078238777514728188022716496849753134602552312313059469831601968242467052700926627387063268659808264468175692956740353931240455556161514396803288159158530483873256687133843291133879602274245362673835361866191040059191104111604122922303105217135436275577700735388487763735365066757529435900913644202071501208628107584673698569063181288180155318364652651185034128903951417182072001542899263931621719236713470038941019777939982980384483856672854668998319334162386823012116199245088467564312933755499633691615691291520212796964246306095415151690871330744885343092942357645791943030654448774023088611697196076005574617382946295964732349084295331940058127507717828303266929211711375813521033727647014418023773032577847421122805486095281930713628677642120048394428214862191848109827724787929554139406498958025575401377382025885859534021722657856002732077405207306839794978957900898477345944138147328083121135816285081902062288875348914226632342314459939817360956910196223169684475143601406495735862721924627446100787342212975536376246623709046237267729759307534942818504736904822275275493542476867638624023354614004478939698634416764238275027196734445887895044492472291978096511809738116739676717256499495208024518798351781057720962104384150963789081433764155433567865438108146387621610530443838702649487050968516320306535662880740020944653568689795817970462362784965757816731668373165489528183328278825015305165303400916555120646528009414947022497964120473310991420924332140984048633997724826329736328415170005529358174239761637938856832414764599574552501918759995189759211541211109130601335316174361294322263428744363534077936956825004197141656230063101626978759049725284915201654708803817015179742724790722479429393457756929412214960304531394450175720880858344563076767724394855375022144256746532772549078579199624166758445999058750655493998861662165242496732179479341440569697617776445203710982577325793598258575063703461915995508341365260974304830432739591492915598226778247374250230463741839261857321639010989619563259870043105609612942177164409225364864041481509475794904106349919842171331564577804782607224069065858647041907410530753728439913266044966684047271620247203257071768885822605573761293315535681681578000258732490681580615915304979379448898465986782658980050344082308054681023958005239705754006185739327709524677451749655289009500908687212054333477895505662654587188414592149285119840454423267450427382925709890055575688644966611008347867151438760713082633242283038010019599480256593303560028306845934801485695417882618224266496001621306853472591849469430427881320611946508570943950214647680634079474642539044329881496064485075726827949856091601165686349302898392201005988034110546562561972338374018580779717470021036934192802221090422882582115911011003139874837345685889738209712868072462358997314371978918933156629039432344644670353232515556418364029074376518022079765817791039908673817898163132333303366215093510086180200609735939124993295989795072884944065387443491992555706379349943487019950968593235191106615942958835127009156299383811338369328239499537184694064021857608757705243932871648641906577458655504167256740845458905756771280978933873085758794610404359879236191177056054860541460458326933933215930721161758422428902829552185884558981892069676459369913224074113411421253712689348831585742843435154795056954042139889496633301874065534456287518796612450894529867749890328808988830858672843237463730262651172492512177005060517607318504774116165912656771999577531782195727771955529708151838474916929349728651920918795298608777783015473522810002980714191852303625339202848510452292841920553359278923725169479801224196504322250691207164721703025708638157320783392726471324883083884054957992139849868505231132320247353493336084723698053465279256252103574460826217306273359789753648095037852333828871400493671657706126224455875950726875401944204638784257647459004760743771860899560762258799262106334681314378953981933128853246130382303480124996069703519976333628334651023824821516180269706504789725465479921379792472777676729669304888897578675109415284811220853737911924344598135182597621340612237972775407212877741849807447367605826509569628132007119973907294865268396105769000459619805052136390986771390931617956978890469426660709123579012919239837244880487015779616427753548153018137029847537714543912636929404737364140375968764640398338003876133709132288165987974793265692567457103487728417034679493405217669393226844678660202689052471050662033698497295133722028946187751146364326564929031009575888938524634144771794503523221647563798712221703882860533219538330176856582261780688532922946204420766305234545356667255705347695820171021691077364463253762119757360069858087734743910080839698235312784154421582553176194095213251824547655014827560706928379498275890287790843261934924707276092075619671067203419301568896050312927214634253961249453232375132151193289114000447731383439313544152184357029176637373372897280930780042268590219290385975058911203508198440192001966222543399207938776598336731607648335974339838562582112453941013879414053972910779096321431325464576839122708419364424572476140079432336261768366370713823225352268929613278102216347051201086399015812976785434644412136005714146518783678736639441513565741070428925815055860372921795384779694205617819075329842903654679262176047768627618373035806613979306357171251973840699410146420133969767234091989837009193589111842588648168082221149086197337250684969681552642315939262502868027300091419468947048609110694218420383309490629249446070920839163115747393925643643740852816388300576312029201396319616891899202676849067955081970766485989061424856664212775347759103109391944278608026283196822835914285527593026405219928491428620389903612772175093577239402772344700261344676212118900460960844537685379507446343680844036786457710806083884802937219382346920198233063375852884526625963664159032343758516482587835230847488828123278094377104769966994849663665528031859494606712187723989357431629070823721429939049689483031700098473041601351783494207139145575531890219197925995727185929893819657013367106649876078004056182831293232230792484507900319072768135828579451343789597902231270168385459008744886178418904928074087485341361144518509944285214241488143476010176241033212923997195060257898290577707098506957653517638449430650631662453216626572886900874840126245579055654391004226650082098810613345730823154669608369227598767988677523496612788715825218643827296628800131007666111496928686778708773330349948251045617663215618739535722133505674761595162635727764809184928427993163621863858395332069121288651446192675009054047657904504907488428456118253700382240625245613517784983878794572214007895715436764916210120394335553338042761360236043486301385859925089150140560310424762680747267852320063124956118950543842416638868557990664307273742127816950420448248687797538916720146355087331640338983186673972817584324413058083131958019194764969398331721143574267288330528919670175183897045049392135577616334605458423715734819107715056417282057972418851827492118566003337043831535925855313535194059832580191168533228623923836699695763693319325663548416805359985517024176091155193428936524440992460436336007347535541384769681175580345822564310395974518395902349741053020683233511127920652810436450478531795083379085359935831629649836850097280267629800020317392950573824612887517840682009123306970184960890170770651840073542532241410265764049136968368125190029673012992697056515886344158804130853979474715180014245067978262274936216424366921171365707094573283098307497089063162875380224815457450424247982674704564807893872552176172202216109512746513061955983907817417138333970481883541874821207771644530353523211376551837624316611981994302874993655648595147610779772581143952642599821912832982635808733329514691297428364209444792970317316676092141397951085376268728043422733799755193683206997074562751381497172823384246759322276691294106131196189004319312047514013287916261711338621405865076006485848438803956171236639381230727080142947063412986112793860236044751945123344102963529087918681276821049559076981601464857124825905816758208821806624160541646974760515348655165821842641562754976362396940263027850492589038713393643080867719347744839696666442640336225836199724579643326617869476567539647023267261762065518898322461809893325910199222787555197001622532201381420569980263633690280563089910227552342961293147098563352624238195775888721638559356692435521905025016381913523239841533304389816740891717811653092555243297821802924482218428066719245044629840104948966278916884608682714913982886558382327630492832780568251050446540595176507236718608483895708103210750149647634011273006885796004949541947851508182240705901764752911912511928112824520122805825413860587642663156315232669743201552929821612669132699454199001268059689672284610729993555748267845404881587118277671866203418667281805382769377589527858291921532305530085342655400543859439846566196741486349946575498730834695790477640629765347058753297949621150709276694002332565379948834995303431416707356081854655169804555093866172759597338322980362846510663623337696377258271119183850040492541799784154162937421982732376705731098803107367677200821978971735291436931204960558790730050518589821477077447790856238095672278568970540079718757559217711262220082754415444857414846927192583798670509827231590853751988015728123019784377604794776600749273695302076942956998203842501888945020588083180283120434491203866887035601268402779460067402892951577116557674651396211349908970201068492611456776338260896206088375707283464237628308879952361019508493858680309587026665881198054100771771275116681088437926534677585523135294918409540184849299507977013079112334438829389958625426232243547456171100741450162247731455682910776952457926773846668268263668985303486833183562525679510740139151640922995637356641683477341976695769975238148568578843664793657960440637604541731930545361876702318661939190233307222955964775144652656072344763211294052850680617241608585473437837283643031466590539194963847047215056827417813411143815991282498490102318007263750782121928982548666545910884197205533858007044420586538437994423646202543161553698745315621527806143322713057030993413022581731291114400204593054994977881572990291668233757552208031008817316736464500956715809425455038964038431051990798551634860060948005666924569687854794607520526241112146501662036381491649657575635818822894998758949350496743941862623166116639412394063827506873197015861323468645225305898011386796094120430500538746241579676756624796870121155680061730765896281072522048543909515985331978456904165156138967889767541385128918198362652291040974963639588030151781761538644238391110146629275087286564134004505250879184646128102494202881906615652172621680732878269212516985289652550527703918273677115010444030482081491629417253253983975658726743288887570283738557868838453081171728470795023158960574791756606186288942668429530824036736924665407993238904092004617272173009794789964941036155377332354023524476446247077359201557904794417994575929772686563540384524764929917271310119005483268383185852537553436281104194074550163172082496505728587297550259475540394080933153878085463794160786404173915131792405145591821953488956054563048487040744135878345616371600960629478373505616990304712040270851764495300513574755200719453697111194800793580423629932280491364116892619864317649355883444290835669806657072334265289821112350204667148506564369530573380726586303712020291459618657836889298316384138417339628216027509322595520430368059722966857013350474614509829123201395560129322884452325385890428500101548251323214585819628581717509597800514397388972578802099241731618919525177322848754387322773105236736590929277630377894734067253966100320335592253299840823849472881981621958068660404856152872474902417717634813735009823652876384212746638465739975610272921605710284887264989575592248009992965003969586002872539197627641131004556749903524105474127856285385508059392643052025226673361359317973862921329116593710494374438415055897862039282901054021625343847473788754683684831755267332187985072744429383082542547491457682552923097343889717861235359804133401951136474396603956604471584148063695459538577408799641376708753517251219112384250582239225650149519921520956664225762215644658831016474418623599112285733649052800052944984297575829357480967565339797648698290160767776821501358119132928905935968803967794940731778442563732079754426536377067723446764441762658700993908654412064565650122085103027413534504282334686912025970125660533129183455549741817924288486171503525256141516895712793912121463609623598276010983862180862307092116789937673926559138638405624819156890987847273806961767000667705709421236392337725842677861283682552026762056338558049847364275706854180344720908368688620688905404874483759635810653514324148380869156207641949383371435481912996084972971788321284766668172471510785900669730048502960598345449314482973768635600500169226318600528177080695159763797847151694677681428648394226273526502280000744259065452042418173582831840453110358027550340440561115248584672407996422884967400565282338772256143910066075374885571677292632204043167164212082285060783600152401472274032960081604823940956796046526572240851252388445728188202604195335967441114407118782850888061199205792454964501796201824527035440173376940696237371056407593751341837324314521006434928889965060862206149202370637332215955489775368988790670938954089390424168592729624686321161539520158671762573591399461803259642342716122407941119740518646836268009604223714152826776210486406359523330089206565374617516820927526367301837636121338402162870264423442154798338548283009215029090334063393438440820477611849874350815587929758808622895193953377393358522118479760969967598674946533790257627770018993879547325538415747669847790524246948736336983208889203157532100300845581590737323729403498779271494443815602247634813726008417760402386275207047341250591307780645770260797175322373090294874279311197508839967784314267081367007097354403955428016373025961559201176022909298960551727685820277045962210306302997506106556762083626014149775591767326750441229849671384214779310822999903998687158028756280945946644278054567661106691809236090609687257367431582104433514243184862722139774570557181352979012026454592080884403830240634381291758641902626049603254290276166567766556295398191145952992156991032339552291379141411793746431277268558173044948078359450596958641869069759529827253099310479915333024430549091639473135132070962349546356523303001503354757426795841728322680393479430619639519401021047159525823350134683137495244377246250278692655321728277007095680847353359295495548317058878985498830469508008373452957303388308475168670437384246974642699954552715169167570554643978967238943115062200998480599547610396184448202877846094174972652064771430325421733448173471786710674133074483698030165835663179150159064310511168996612557737050293207957648440694424284598759927976519007018819684431771060191236136643619479618659670653576157388844876618527631276247822842640517454275736177576548383542400397293516892716166687450997037802241057479321207551516066331910375690335453880287190178232869550910459621923328458044629008927395711512739901894852468736207253345766096907278421569649462888856479994490756393052951226963677931265552390337913124493415128527021349792335788263098148292986717889791734367139130251824195026705941405859606030795877386864303450101038138007309802539081952544078362797194372682985583038098433245676533974303322459742346889494718926691023322481812141223634450473076168831669960549115588165797181259000146845653524170002991729494855972312783588274607128866908785568660622954437499936802835857495905284711703915422214800913819703037969473599381710806186727593189992673265333347150562607146942289500141159177691812021927090194313240203882716187566265923969047306766327536376224450825570341843535895985703753448253630546214717747704235114175667290908372021157354114639723907642934762351114641120613345952574917596510938861893524437375069657296088287299879417225357465333988366337769218620243857097924794579618063632707806483290508010621067197496645224298853799160480844633942415449396381749568769701819379542562618702664961723989093517713795156713948881967922210694555743843203712262208393116054515420821845717809175284167758044913963828003698821454582279620406083074265622914723268114843026423005298597864919721697028393505257701286429109539179138319084335499311086683991263445560503684097131579120071619489226876145310472894701028079163603887935205271242974665029987443795632554697642288929810145946610751858310977647864913135897740091274717130585508405486585989807147996898758960638371100910284579462588050535604624888339137600596710825071785810165892833255865746571742698631101740632600849330450600105022152403423853713187454641181503481570662571820307261949290674366631856723471135022354930857066400451838330262914384498918230385998656282271504191880373718409062385642804983203820313379881898740548399974358642069034879822925599422018638839816748973014206646344161181686664267038548873286535527564990601580589314502999688986193262948900163992798542268963304448462458050661856640088549674966950755449696389286837308318904751878645923842434690998389202222069853434857355368916430902868882127450640392137937294444132158931940639256631252656254247981391785400504987444195902178223698597939854288024206903638698929646152209714377658955695460110880898060041255079465016012163596280044948233605677078074175660986700834615813420191212731965007855476833885868052972821625056375066875078829114239384154659466277879408703136324958833988386988649769643860888113792532520545450950421356369284827885222933589530472175433692186287819879717890963726198797490527339690906414370650956176575975325900112937063283112651893597512861221808362168584630302738441744291329736825206728517372443299940068234036410422782419094244773960394555619692413786525056043767297707946340341763844586341799251002788730263924943182354324931044221363810846164582345896693871606503701660461862038108551037575487394882688705268156691308746139673055104719205849389754750729294231497179897657632778285945669082762053638128202110016180824365821967973980664268410917650464722446633127409957365103695455716914735602259386024579725734267914745213262630822935835993781151433755911304880984167301022902996253717591941630110900130856580139312353964738765085540161153752350481989415220074732677283783571891354156085098819461081285434076491519118457778641546520358703176356420455868735965268511866688005889178237186369323477093202789872153504323914900583778807708330396426547544988425796378736356337878389854587157756806581938158546189676324656830193793010234688955717443798622815009038295858229601235998808014398939761715601842299482509396750997889093858921153766059333957977130308974512556682654443218375505425693451317605487605264952385135700092833125669648804331835921897112777744760922790065516648728834526840297144194106825041525181764223352529293462752046945897460551886457802223743528080970525618495436936198676414176542391280909281584507544368501015750274570997738714576209550145402929079561631622496257574109365801268137750953724963585938219274574202046137518734117093242958778994440631967852970059512542257807290436398557062445230694575301394100646890864355630187667173590986934784191897808027158093809855398973665837270073384919968003152399029181749365004634885164305764385582278956426343378141638409006473494871600488985770769747696396191482233288178883784145265158287442846233089856989064457407858163153010951655203999019276650493313899176927032150456496105406118916767293100490167138265320113200854753635311977740833503129145339357799210943443129071624352956543876427622050345458464717330860282049599272939791054560647058851670108573996426382884261131342741657748214560281510435985371832445750134339473537502093670933833655833669230683001816023949265480317286714223401231238539438847329720847421074153600881656036833249571663742043338341229003550666561096795620452590811260694036891533901865581731499707448937462004248095838629783559301921136778273723228995549568619179539596565898580812664707184851146609633349980455196055211961983257496198646933892249193660915596601999366135652351395431674967669879204872594297221603493017817697542431419166590948564138157292654930090696164720251415241429599371398136328251262332899582551171105104424404455157272057969240258118276983051013368271443912257046220379835942921854322791958303568576793981275427545742283817094718770760653198917164804177397249935378877752608707294958261968806458996821810521554253001037123067134758887551471602797911144435104305956202921955325009096927419174277062461183385352301537646719553355947733000161415080786310868384913232510075935360707838634173561890628118950570483575030392196596235160260306067100479447661511600062559502879957136455766989925847218329455608647967538185599738458968793902692352462082129519608873527979217261505071745748748123935063398738974810010598987200127738174924204476693157772978872009570382070283021902905907410751981085384441353225822817951207311083170905055043329505182009527002332348871109362121674945675089613747034689120445591158189431951966064638929766482462716155865992294941523930965566784431355916523681689263846100713579359501229327096882097216014443721320622221289530535874468493837927894859903849621230077612658502937122903797258254122815503231493165536382471245336638089960554527606815320486067950787558455606889564044308760400508124726574232197917599503898384713098285113515740886966303404176395648617534241576144998257297652383384364182509071835144577592018334042491550090151599489129782541350328820199414470833271604732992833406068096368961341418651064663364737061252233290642948830365635493860430725532679050180791806314315077228160495099175894628518617365006320364857175339807771121504664156109426572146998689542407883182421752347962396183565422445598351140709763722101065935319838454852248427206882111325774917766613715070604461413396496424589131967582794767199743429002385674439593317130402060229901710052231646326836430245175010508419697406242625671567164723738516873766855989160704471939392600221405267136658657121953948896174756696438798653952799939527095811621381546168561268591844789730030885482890030900672549767328804520329978454216430075022542954650147142775163594978202886090617956908378075855631878642512556216672210548407573489308873366493667128723988014524158564161973818843573434041308120468432972865014328323617553653645103006872608988828524969712570460761697121200778803861073006073487736364939657770883024060432064428173452565714963022468033840554958541277668182094821265255458852036122967160782761880633722600615351782902825800190228945738508051512982725852307273425208320181827080724147749524439234049395942389736564830746736311330053230695605319372794294884654148821352258885579428116948923798126878841473403286013851849297109788317198393099745402238300617547997655840435712117776113293114793327579906216279859226942537123524263621713371753919263648155087029637109480562017816892004246420532423060491174588025292020781784962648588620149776392121821799442669957234729180096716137011840035574761389213561026114667503045969683418564574718282744574620578560175861259368284098018762295664094017456998578185988055173416138883128444311155479138618779363419456665995427285933709472371081530016850336588836162469517872537867402701468415689354206696674240229040485475874318603250489582497711419801806069100324474577313787184405938974155564333972604549785980035882581347010096975646942948982590875951614536897580486824219441302053527647519809539481167454626510433930170176091752584515031300203832076347894248693055815095051896287645274349650981334216204595648488450326288625918392706170218002920822327882539734033046218757339262706176405442341273886344524463342430516026096194172500761924716085454112578596312457283666326830770698924806328432487689464263056703779233948302845983596760877627097442508550143790532349326445019382302713808781001573468686282349341100713368350498531682778439561782105377624126558010724994529370074893353438541728332033162477201457409411952681300290276750795971312502926808832028246339312242077052537453618012977869725156674084547505062649164885242657684217791448196937555721723115737064769978194249450818918259092697622341267909214927994810275060182257924370962157794805083437014119646130715847877125780663562195226708314473314429685313815172474121226921066850681529988218332402554607133695539267690992688032941581440973483070974313566768815349872431571976054397365095837575132082538884950519722011716278363342051803435347138487340535061686198463360333043635552087769212698171678076356473003153114008520536817220467813172805913467837477988702106826205962125240922232133404822974449828790620249210240748869106561621906608165055270405029756463276741165659756532591916807521126642391427073332683457344126737659634063480042495281570654419922699152491120500244901043894155384088348322356319022619481733734045291633480658045032004442873229294075355832902441612587750687342542160991882841920514538526545133837512819071701482812864540804902455245508985626282412021742667338974448820242945825873999325690889350697816530956074496467537220748296051907778774809683488109318987467633008714723005631498042748513881179617053998121713290437957373698523914513334864864157567507671594280212179833527819699880734130565872319675123184321513326628549126176144145745867701993992921830179106378675912646475573291005380088611026753874892294692736338274433290446340044250274164543402655120765346073057757389920839156792347401876549172456957075190566411188222330217086644647053536690459714456372885099940840906145412575996487915135662132215783248490198119049820790275621222646355132634167728450021914133854561798456450086269928105325282702701981296963174813659016883223272141633435474794772345031220576892529179841331211858482225186540224826453653330169107543065095960951955574126366297745761600126824417310387508423010271005361823158720819407820994653124859752010235536145920641503683868699606215024757564684689672059067842121016744277473803768204369692916749964628513302875100096613253071604211850375338327862624210367646327165194668099660472936955531401036827901432578890515581620217381181128406458615280661079890725189534561960462326877372658311854865624697228528108221473594218204609771401727242157399247512211832839060682934395489036596498847234755678801097157807340664897558680942207989291539940675201601242337525328019293458480606008558113800296816961793951968453062502806487785734524382609406149317549587682272402812352602746997856407984161454774763389323870372819508498075911337529157775556779443112938489501863952718404461500154673722659988278633249009756462847872405498692881177625621751830040336856080040601971019946654397976610181605109977502087085241539051281511000523206506098434081445960631329511206390106920278422273389474381769895774106369728266846663445385905075157551544506577233912822730940761999485202199965105487363679726268951881883203980911060240449439905126467793066399108922484169411452909942155284892197492425210395589629960911294317287483471271430542652925160351617042425663233061338447578315811559560365910786301506370044225733067694893382007402449287787838012811994277256253790807839138894536879780703949425093935475901759454222289850398792628043545212602657894406294665772961440551181823285511444454084766819248524356344347417578669979307020280767801188523241764792661075228924384767071680819537765983930440906247958804610155947726576541866937481594365260628589773331754901656734513865458567640427820776861324448213706560713633142314429902176152575774501352156919076413112888024454291897949351533174446733427989988691431393957543734897164311991156323044056989055515893764930202398470346624079878233931434308568537202417734789542946252457074633663445054446523645071104082264660554883224343185224351697033929960955215504452425732258051304339772990198284544884340394301578411897190292175081852691866278495009790355873159531223224559441628058665731737499638011500312454042578535030750670760586671941874423598477906357210923413900901504297843882700863976788576304936401310354205258498048515205718702982235744633604958784650756007838489737687931440599113910835752452660143304923423950564343374295195061249482730565170276490131162900714855738660616107264181418950145804454257243178457798089587932603285455556080090891789822369939846457622396723351927759595283528048410135422335646145456601105392520819092437954474307641101746573549650043334411763302647571651102449995069118234612308515848655555582206446237448863158112003404249267652208003785218536521534212909445042910209164829455122351727700870857773328170516575950070232113278055633750279445688655046654017425106299955964804835835885722730476478190397790376252279178003636008340292321392678492500071809543722917189700764719846357915630718790338672284603913626897632935073211971922021462787883395435710983226971753071680185771379172149913438228972145982879130916269253079372089990056220578709833599583527039409210013864494448872119541971957270087458561840716264770455756665652631678356139042692983857590208930030205288719509999519705536345282583656059718533813394466598864300264797800583622627148000600010968971765924305102963849816837292009556223362250127099387534224363731967510851030587789393760017946536984582660057576130720980468104169750416929241752230834722314114030535586647231017679308227150145577466132032930151115825568796120730881484751069124691014760371033154797919478037438628475237102597460661191455468382280418043564190065525798522189837355607926281537962623092018687111303406996146992101322657065485228909721838099240690612172262125094573830034697999055157995475201975564721552060919971699622423503319923123749341265959959619011946431756110951927405187065864121174187932244046339134311371497772059545659541871493061942567341351460785914362053040639801955199161629636829667295194330756718486353159979681588234540193899290246263275076849762565841096050351699394530954666060874623315784554322217402935163857533375144438455810951253146351772379464870738341736558644125975791475435412351887675872121928320368074256716103426121832854230053146637452364125359318800651945345498934957789206525022936170336056089185627001401812903040236855170689846589748434103963158680640606053758645474750052479214098357523717231991247023574376932215632554591506982431201728542211934500949188069952066269672652665644000876969383650187267830257924972991102618070953491179169934328894362040597735325084915819772584715094496562453422853387058347193673038894380469709705752066077347918101393517474624322044666203465902474623628580179317954075672091124174381693104700978985762606674826662421581994812074458978853145144914587291511574605966298518495677480732527151683908817881011027840099597581365536582937029185672837264949376176335231551518618649629617528038562646030520112257706307415818165362942734115143453331752232813418348907873105297944785103866575448567211910531950966508174274437623838686486659984900189611239667980207367163972616530575629841786826704967807253162439220629589808870133654277694466006910586206234865805990291163800254239491679848466467084392696100685938024266419104925942300347543542341110872424018285422068976475869266609149737602679908461220788994090850087970987407374736762056181204663570397622774511972293999908506718886337434791253850559741247144217852385684053047455574560335720792626948241980900970998501017791789203143953890940477712067684432016164972737800227237793045634907825670565519365415466887123539918156504987450651990412460815944074364114975072361936305160427011939323725125537264493212841471505502877253358782740816154116341741976410401022369352049891847437456764697570107073836444899898451797643378190764004039982852533185149498100516993339440150196197811315100844176266108618894636039280830372307441451407555451497112754233711240237647073235565048679405827981517857709921641364496044945810002253163069057836785360497356804612851760391614574254879299594757477450235593968438831721194244789763332755258801277064814589475942316964191728381265954150456039107858045457829560615309244736353503456774294953326866143022438856983926300006941610841312856249003785817299102927212515935312489363883775006433060311427754947355190992930682767641015941194359503189093049471114590185884300405369496881262081871825628369317320502007819438500748224389470974349368222447866102686968391981947859610585057120173060493159418561500959489029473953256995755308540425326994628858604049233130324602816122502038691953096469269229902693419993969396587620631676572389905939509677633498166107701795200135263974687820321911029842561039636909652044717600036935669066160950866278469990364057703395526639475443613920084686406398803755287732213342304007575685540218774568182608280356764018988774920782500551798769067286907135657688164176633970728449285195978063764976524952937755502540804474432940935579122490516270050964011993549108408620918842121927063847854413857643021660237124668550768034824836376974260678165768902148496856599802039822215696603786539204625981848443215763502645137663612574852207415424177762104338671914388020978236008796687744884756714682817419755816936937604014116974446765087896372240910092434144004686864141479597043281603103483187842349252800836577851320063040790142682555300219521918010778674084052367391732494707480179045252740283045818263273906336074212781355927354043132617427779906515475499471322007131190282925128564323321385718115753230124647161031696752060682720634484064624644954908448409416687608074857618630959538601745674708070926307340233569134305972884485154053913667506327510021296364370899604668573724776071448189627230744883607787133012725800277648012629771281645808893883256767177500186821217174629077649980984715539843466376044450823652871918713227467862830817223918821930380078947766762084884386608350990669643224458645535685925144541168195044304986538036099827439404162853680348624499274255188756193997889571656093821491058440157965371319489291879421801643494496777928085282082412883336118886643486030024299312424607928866849053370673567335311875608815266067917337005046527398372556448680986457587330693046599509909825132573844036662588736746006738569582431858606595222060241169046452541616906945588076988305032198525610248586754042420843468559714545514130897212585221241893482440638001675674581906240571776802827163969788903252309576747410816882798935915856835626809294701890701124736910865805530318744813911689467617175932929369365200061682018092234640966114989921851246873133458060794691260296894572212458506655935174031318330809880843602601470907533711815332986869681635036275847921479082982649171820239176694692864213130827264029730205335756325333757055082317849741589368124445657032972067318809472013344729961575975114757592278667109990491245156124533537973484613663783702467874414107760933892769151294989080401183115127698273322331789906763255988060504923334024476267838775291005409808349972452291682781087685327133299109904800707206126418924362431784055508214962632595121716815352270994811563701909644535528035687066494644794836523826682926327010793681447477491165423833054088613060771013654582798148708415145111081669183337530058706660554648665476831863699792525707871630402902076889362810159918191964064176010025987072599286669036319394404872200334890207253342944457376727256790566654198597426020142372657207218643053054102681908790462571442805571807821900307646495954494142062047036711668028950659113414470128837096332896095175276275181300044569249804185200137050293308698727268767196938286321053676996407297748077518935646227789832162525028890110001257324695793781405216322152534979621331003528853935373418316854520376186023198607074060376821236812483120701066515586304165190315614654052844208997609789798414881318699501840095891977317179124159081237697767175623396693365925190419011119616876885594001376696602358928800833098386396804856085957828132247957866568675047453342356235870630681123963364852470395852478444780358328930518232679108063789873475086980236944229165305673667313856620112828241287485171859607574151551916732116482520901767621109980884691353423502530731370164191897591398505878468325525753578526355492111984250514659844928460070989645299070938385801322600390515998272021028346088108386957234251256242944687881018130611049166722162983892683927431686974477082536011291129536037780603648974550899351629833556855414186701096336888302565893747431907324931621427119610332990113362839011768162250739308927785371302518553670948446667802381243996855695715075978039257027037172147388388771182283736276625284537059561594859523669794805886742627275729864788132508259466440640921213309402057590969463886289050528589646521678992238206124573806577071630402371359216385247638144041384603519314018552765003111173150912099130183531585635524945659062774351925301940697489673968949267197044832100941464040526122902950024426998642681325275831562492196674472428446477539753035914791763319605152694417525732803367325598155602869244945293125005242330976773296677657218138263874841214957674051669146817253929338657789935726054915216779855393898798767356901444391000144627248641773915370541751013162776617768249980297366756885596373989454117382636871427508769074611029245651089614685077043169572752662674600113182821287203326092015372139759490897582195779831877335899805494244553226654750727105632131713021498432776109230367270367472606869853682410766822420785488990935694806531034455704194925131531572878851911962143835454585261248701458378338817419415307117566586130883766991515243824919155680508782832417895194075091906391908554824972319126550125711345823321488078111358640335073998155683108761319784443169427077869537434620586470699583332501305938932997751074952256559399457971796034161104533574876054218232875966643098040049184907273049386426949049379884992572805431041281303676835706642748888304202498445220153912991887542270645996144127765683783209454976787261454078625297814899037564271413138118478849678744367848579127601973744633016487166384948833467663596859580761836837585240145607477029582850420010941265595413470453502128695643022803471395306438942320829113924164773817638796603536619007467464318422342934664531205857101044021192865638132970826327678435360363151009582604575334023183945076824800089745507297109373593582259865589723320329778711291242681265156270661861952806499461050233755538849044527826542639382021349526300778516304923266936128135864655555037905224466238805008265971845029734244540098493693924161584192882667877004805093547198619122712732309592191074749527532300335185539963836331364538640654962173659787553746826792232656386137051170626872236105259941854022716015830288444120326734810222594576475296917503432870377494901567687541952181430460216737307576486062236648407300429037487921228436702674445054830641047634133579148483855146588476460746035656586825311174584116182365106868079065625649176156638891711432033266004617569936889244682245165971724484575228313396975511543518144546854787001341453277181386476986410771117647843832091525256296296083856207821708325679269081065092278997978960152005507223683167963911818130364491472775961190988982892777980986157827961018060071113199071820673429015623707427451237903528386222423562444976447261641701496976054348570739041398961753120798437406168694354307594299920987139197010713287393703832333317755639783895730375410633601494633253323144052691081101304049239690620288924626333480156371494597193763274573968604649802738934852021061281724410159532424692372193850604224529098568614573230493979633160250250440440370589199863126104864226512944170424324250483768290205058332599188415297670809444637379436096703323594563882413372810455864082325232016254932632574527655219105342758272510033519732924742811179670935976659586950145544074370088284733692067217257433011923027923096443589952896879838792933128686603761292401940772360056145374500037350217430017614943746900809492836181677739759245496519913669265178166009344445976552715577187344527292500051755414269544510371237856063806699713963262400449796952294774998132099819192391143732321115894404027444021298939068608344451107234053590781160736508854085888770654332728236948693930090319117291426982327113012672686072711504334038084148899085577863103154041197432755849763777537584737722595587663646938025453395586419073445232499217675019670400307061306162839481855718162925884664488370412250803549287848986293460308690019147066314779397531271741673446098296834908105666646965206895706164206626035133890942637436495346135283587640990856281809438118187536070667105100538604945128183646067321397985049556744190095364080341508158197746699872377974529952892784919899769453681227859793880433595005117614199415727534272944438516188058103581284801341110741209703837510381164872431855012592273220723955693999893179136874467348432114911977163618973076894766485501703208707650016032411232121426712870081063238695287703125533273217319110891906450118009617333420071695461529879572794272761639315263319056407956194741523601779747490542379511802203581846555447845862946460776938661250005571119708812341888318700552195193825879833629166861004461211059536059132390729192142136094580484534312177253889124065908365705126652720397471581044136938968198651081861426727182308236136136898072137922514356793624543054425145364583146842781125658137801485368664632654644449142952350278230961584945215216080931247528513214100215323726063209701860462524291942203417230158226569185336489063441904220259061572460211657114830966284368956965511185029112300964592870723964345713261177765759200001927478526599577486043842606073546540125299167446543941138299678173103241551626075339501937098020677121144638801285225439509504320020103041372930565241002219276341963946716821182284597276604737240658765725999072215766563037367663993367203784236862600563368440061352123182097795519829203496370401742098483989000531898027021887928028272000856185980377870433299355840135718978048614408565164575756877557243295052821248024151091468878806131085959246853400702608105716714649314291028523796666865480226803033585644226976314495400327113924067318623287498792884574253136266404894868924379043236591851329045156460384719355497240027450469839757287696944571939737986200762069829593812021273351731775784642165611367667353342596100424231669736770318243429492202600602462826419670129379901032721168373291682271376994614181699865994056567518681644089332110263256729202334326662302018959230013741031565668289820112247052799234923558546854743429658192603304200249721421287977296798191445612531893043916867516485467324600911992528762648102256657531666605012913337906139523217479256271403553431938486788364613700712683783035325958422149706048189981278406493103148055245507165754076321918177292871509289253820384189128918738291986115928118971859792249228960596945005231194259131360902245262093970542212291402581431548570586959256447541676571011705389844601576212500763942633722425373998991175421831647952219468795241777091701153050161611052226771924641154402193931945683602611318180622794852183047269683640598704058807132705227509672999307589295331896464018495402786015423329150401753251760388293587282047929677223960292250698174969740253747728929486601401852996583571614403098912201464371904573685629204782617320656459479819276340751389911935778102355557892245137893890486821607677663593356043560025011219556975710269653131680311460492267757090374378890097570122869883504259308236243960976255387629033964178300940560450839024846679813952228530215582269790689940641450638921426059953562316713766557387445203756743954655720615490152866670577177620163111425171601190892531093827866232494478686517072520861725499512559269037247142997053473285209969591677108605724421892333044369664775987059043326920189849824325864973657189959823367488516706843107859673258018635075531694719257083849077585551206448178417667026083050025810799868969527127300713256990600201245296253801331798274355485227219755445204341193717299919568478912756258113401363603102942812210729213560322488727369793896410074786647832355131839275745206567378983780917684439581784208765035222494162327586498075901627955183158492661271952345866964640261515392434149320515979974244112790470418450113745044586979961366692903321255319388369549307010545345631409278417640597086587557961626545755039085050045315441949945621999262580258228395188863453776226641036813467660758991530557997673084763686407885037440583524118921928365434992741122873144882205079149178840810842139418819099320258903781855640727149351052427544597569448451106737649964143445037462254161899195301284274147506353560545035175836025136381222349706476871865755576772515736297953881403353259372647247157087972894691336659370647670425375230315241592161919568442022864278316328917868464899447496560368309087646935139779968747193845025009723980521859637311957539849682054111370532066606248111630253827450564606111713914098989076911871579869690005859039385378597462150177732971008485958746065255231097340314843156447366530356797480044182321073270486274981906628009052831460219972863647465508757921051633967128529683714836072558413591384432774274304637197366003185615222930839048629112296228249213782805583628769573023312472269204188822598499856055244241542566651723686081076549199912626607982064319186351989524189543911108055408435794435376899984489506092227149259488327666312549037022345736658802292028658713522724494768611949288289422256072120652809174631259687342383767734503285710798556501029253794896525111129934867122690548390921863013357389375793030633097491417874587042541491183000293992977393297746468327827680443186486379486503269337121069599040135623087836267064779164120654427094638936179311879877289817998754915059498815198398908209176167221022749623973791228574768157847826969666486105282455414489962121424026668863895202905149114435557770862915894156642816318266789039553791692592553101686807676925962355316372289406364845233040942760433805163359575082646170195627092828761424856508933638305590035112340155044812261867283952117027082237721141510479489435876322337021214099327376123202577251201440051610103051788444768824232448979868150854535724770054029606700537316680494004048999683250241990665912899492627461325770071174807343061442742948565531655361502736214465754622957466842493479498798985653333217568157983374100083246748968103153873660887726719080689828767088040083646863237167666746676055399435902435736780350379902379001233889798681835027293277334931123746915108857977384938428341542859979032122900374128966576944305805350146614442911178297549141909435588847313669846215915290379387939864299535703143505634710109380085788761916054453062937468329978047890931718708039754100532868869159207227332549087052094692453775486260701519851469572807586040582412482013767252196123041005375076136544898010277494974773448500388192878900982841150907003239544220049017713041457369673929800739360038156847977105406037523129627962323238404094361658039544323924366135049341034826132704204605580230103883239225622721909317904290784673330180739783258193430868742805205320707211414134020534451644986174377171473957017460364829790210750997240332946877998185483672579789693970419000637802956267661428199994555483121445182538873581876414310333441736589838446891265896209224126148906189921996411048985720430127499267958404164811235556438054177979215629802705009285822917424461125787219442159556807100634564166705440324655185177197523622321128240152103288571181917693494252717210143770216519518878355058066944246753205874761840595388993109353539068042799159482513160048682400866232029493157964834138506663108628521148127895943264943013525361462818938503148259639477327996579779953847679349910272244975299757663100768982394792224296227060981450757784710945292540278826476906057133087743840980307107988869961919128427058907700083955329573410766478294238359485876916971833590823356719121061478387832316236792262696796131933403935651463814566960918022738632203451862134661236403842788992989904590073242013622920999808693571570838441455105911366838149764218548227631661203274871429959102012376519722338397359474784019998846950885827191510747212141015004865179152515736828320510747396690453669749768284790501226623644382785944524632020737841173571435218126593884903880961553745801376612807983811805322340022488732993038021280180099897276444739586447650293037703307943300107337279356354107182858605501868437371187530398854162627138514736734036206554479462109391593912030300222824419665342021611992966832132250256671654440647366860206743830419283070141417337630896494720472484443752548045757779469399574209055171886413107422594550818869379048609816995419936827380405890528036111228923934655313638004193087839542646958066474050585336660266377428244768379957451299820922866478918878596579462744818341089979742049922505543081166397185913026338257074491841267436331345130816699096686819945051413603022329543102354054786390677630643998978434382768630362377757506682838180692782807336711315401844683200406253254533719322248677459912645686499547171776588774998892330671477287767909896945509450912432713962132283779538500339420831823263417985157111793796377830030018383640708209697337312485133988210273073673874402475018516870746990042388788950457173632019110845570867262524631180164008328118766046484200229431443867106991812955754609439769365259507611743599835240054784109592616136774163337728518512496324727538244145022209887787332894213675233302738800570823437878054003607800106813046643495846755568869990612332489442760647038371245272466121393798233049074252382117645987864937058374226331324921891438327805486596691305323555083877025614581883737779367059133020959830578794900086334220294874693372016683672638718549264595463960396092398060415805434555876792481306389269367915020953814202711099236721224995527549101264837770794181192160262679185760092451973657645963783539626694895566135029288991231627748866635630998749454895868273991051595287950569636143813975044344825933435568727433017481820954395348117838662079862182893441599539452208873383215491632275546248817392934941261818358221012358554718729889573995838037310441849717277914585207090475330910631389874548263720920944666798515458530780831001588744145725732470121682687422693574869391907505062004075789940025048597539720865426438116703853196865587206992094187224178064388607252898279146691127898516319299336575838349613729634949668701508076708334576695615498784988428916496413552851760462055244292514212988920113935911775645404022645117804564483980201171631294804741807490941345327499310214397094479886171139781527783989876940669199563805628027558853663908651468362160125315283335736873396081623377251987649202066731527314965048085841749609065484848825209887257396878373791272446874828287637466179721947767575087980028233402629866965681436876235266554339922128986424254102610832100950760313322276944780305710558710234479383079284018597999446879115627881050290996287404062457409185671891233674225754620101461230018629267802845683486729328642593031249995104541588560811898632452241095487135295845630461100359780411962324404246404284154607279593595883564005679121128022418698610660825229033985077782095341574698104277961026173868523386168166069755656580893084722421176733021277026674513783747544995177526565483086727317071522415568721263857050047212739709244493492622249271520741045220436330377094014808805332549954755238153666686414215292702963658228819213675792033028214462737355971658779762816221763536847828811429007239941873039884182280925882335530459281447967984821030400747554788789840733571675428567040896431464535120487627695587887774627675813639004818022177746408371189011276872424796401483609665059995586439478274318143315953495902220562246256402642789583052648276414801478856242553707410310691569005383428357166381693063455646165500797137991516803226335161872399250957075304379806926790006347334863225472221592297211846435605950796348192306339401662010361497050641127118799351330336760790147688088529943354265689612117954180704032710197649908119613885411522287091855235425843699310994821435336177804816752794886388719580627986441200166663960417382574488559406695700311938911808714624826503831331848625152420874441027520713217366905092228677136284257592382908226755940753915611057918234926555764520764270379106744977793697076832097416463545300719337556654973213828824201808750363977992907292407755005799612976670162827583476009207643684184428375984270111234708721734930540974369240596498974030609223649001325456924788471769449635012343285101790592007570528146220969962811742326583356859750660243607083720279780781137259340316581859833045470350004373868514010437867178948099520814305408792581444665999572462747551849165581681226366840959037277728722601867298304901512962924525479153204453883426394069823271692969281164781671180693549215452894815852948840322859220641320208285290621343604221992959039295467757873245612693764416303893710540186462872658016790837596238577473081691628921309193823928917703562268040651093559131696621023643045914138696421008525075502287261157121903939392999918367167832368487422134066941309795381915424235233426682118004018580814090511685130995079465704339557895228520980939821853506263874213120802204826610495069300084309048877775369280267696224247841995257237157292476070119646719463726200460314901579322971658701582192191419615831227917501581875339224350472464731545819031951409684372976614441971176787437550848156678359092600467817672648652766249687354367238319439496204892291680356032464905369927053534747012111133866752293369047414819443218598314834716035023487291515656702638669442208269394443910133054529887643853862733239660800679209925035002180612792947729518717429222059145023664557905996723943883119244830545812256517049829258926730157559162406941485566553071086750402028316664050548789166252476730414821870779202405249384184170922080078150423988460575197062467541602017287536273963641719292271792118835896857831657385528257916998444238102284999174085924568937682453813582684416827543492373595577636830621191525174966334169693804368536805875493142816596582120091497383186295638062478373307220486619446829707710459204492141223286631988442146439325893523778231202408717861092423904708503513488604629106316507520150165715278335924177741111917050542342698681819538903403725569524362968478823880954006107000779497897673576187047831818311729608285902073166631067464355942383751222590448570087354919669840929679739679776957686454605610922441980855364295303207617781460889353466954084992268030242305933302880980235244292759796823488798007704784707177688940960307961083089067642754599639233416311368210505583476584939167523596325151876139868917933904605388006745015871159255683681062600512344195648787211647977098613256070594097093431239748797911980235046505305131538387780606999830008015943622519586417107210100782337163804398868550558519475887407906255520437238578896524049398610533282742525665164217042104970562511892171557644291351815002159970475341937355775522803836716409453072204913095251702017901327408283360833397187662438204060695521709756621509549124988644057535959310234936645112815628959913325518984321084252445128826163296716849312207774524405943260481617763837608541544149284524524609579336756605575189611991027111623387780056223940230895766641826742803631815334727933870331183237485746576521834092516667343698501144432347277080238071847491793336188028044766056906558931464757696908457857869251909657957431444040442837012922439710415676114547706965440233031968750633957608696186251407361957131897677853128098968827245681331023504642665744348920452444573263417441123522999392233798373429050340786065481637533530187234108833805004492787355854044238153179027039546807137589308861221745417164792359480312484410363582358241828658527621983224727395219558747725070636501014665361141336747020921121262197486371192162592889271098673960668591831700408003247695404553783553405212327117742052578359846302309433030782353603301955649279331149941796382539431290498119911724969156181861486106585023720497614781777854914797317473137249813756731500565972074808128381887706744841473409400596437337685027112063976040224777558537579183100277616204095169566764970624970157769241760495840369251690812681643580111143728183138642162595679361274010474709384174472843061962222637329924330383179719218774656210794163731863955673820053835945165124942892199106915330453060714036939402090474070097128765317780759788198532881431592864350684091054640932432863458596656057652021881197153337261963272361212898362611380068058635154406088228389301499547320102661736142018848977332209811281549341266409976776282829570570331028680671221095799795456052776725413677998813596075380832577280506163932431848475151962299581002341170874508013861052545638315040127222161118767013671504126835045891224492414458872214792825012038439424690719995885523190676639071617046923299229063204238505396334230672034220684331427923946613079214035354147784888541751054712569243365190851151188930786317265684921982817979096851152948212061416457366578222861274877932676620934016637037034657093534872641377213155461560909946703851529004607430353385885224828472409617023127912128073908285434570702569240103334778237286818096602636149282034890199416829658770431742134405957310156393069888060904382882135009978344695150897063211951544548039739196506262153874214428304583286653804639967220128687659317965951637059206985016931761263234094287384041852708911074426186803630711668671433330339181711805928467800931054778254010203649528647291627518514511442014979177341523085701466568612064431195049438706412109589411336975982049862647258736684960321056805484148976444711456090511165323967325812015848634734013319801105423503770141580243274094759424561182890294932908273355668681979311259475619895960926550119905725617947284998915236460097301986071336483390022629061263368697836632408891269279441027688626496636947327988135213116696258040086121446488673249205772511342321209384370079039085499671931105407743985761010748653381848389801387202708382217484006477974499580632468955252269842433408455173834874311529892701529641601002283927794939444087208394891460454565057440569122468970568453866649345655565030997212142466081578858563604632394237561004180678785213738178586383026103251915254504583102770004611759737840762032699884008208332104856915697464822871148430075040310627631781040707386188648070358699597186687220892432363070474742626487780440792440401345210780766826205015585946007708492767324267589822346265688374644781691628507930910167425549278204182674346027355558632414117225039206805957119055390226074637497379515033408719773221246664023469637869520299094751526322108556801301911300083902917089663625799669584450936773421886617605500251253000704113264539606503943601767346780042867101423056763207802699884978465124587371171581802574581213745992575577705971062624728176414621770895200776699911918102415492586800247200777911467612461831939307483335203221944599379100023614616167688834540934264771542433804782458941299435717469116142806211530539500749360390878789307090185217613606374910008099409137860650823244560179340981385246451262379399082357236628556604788604863406076870391496049886855607839419860789190286963663517506719625728844953364368010429781500075009556659910576004886858966124006526706942954914522045760643472144897953226069383057133182538414347841295544845837562543219093713602893340414996567716138279908916291555631574407356039499398905267343541304036066357192919587119013631202569570541239688459245901678739690912667172399850155716022031378757601486515457890711403413986652976853536595789634871220460998285548871735186873046475247201648546083213846450505720964519546671424057378461951709344354810529448254519473752628416903128240028516364535363206671073023241637761996836185174991707302428076052692184406203635264407953234403766499750377894334080769354706447614112184663015267121074615057990243305118818139095359154453829290749144793698620064976018729051644969124347311588921880624391580676954157860549733585299840064550442774272970159983783188603522249618268904224264977339352026111647054276398022792521757098739406334865187419604509705962632504062507209088662908573440943676269671688206921684543312227162932599232927986407001287797827801887089390618658364190411064829049140327803902875295995228428353707526957904742452574629821643459185392130684295255295732519249468743461828367057011238158099685668021075219770796525161659218741787418638347833890052562478438710732394808822057957602910594381587001134894280639642190031459714984281198257555649234454597935471532998358449958233727733037864058906436332505633690443419146433697058073459684079765458910804707073964898525748540242191744974172684547271844395348515501925821123649761091111167261430264598728936511160718197323847382522349648862057272481703308700547847018124312807679954059393625116499130288617757272597670267365498301954156792808970007171646964821193536093534981452812863832900673059020453206788131848210019048927594110552954036538567816788473884837753836045583049225159548231948204715686726470431306708781249519158453456433942517097120969468790436085312133338746392533113227469098581598595626910867386652203007584579588105106830665289536851126891052940565633652513024086378950191745680913994150887489047482744516424266717516786148832889421358562785516877830077575683911173095025811316486332938382015303650346251840760299205464799207271452896763561690252618919202268063651544077607084704596513785380279750997356516928638641330087474016978305538512139924776449055425443002757445107087452505118737562303081660341840396881054339019155181380555016220214247430953420802499611643113723937090270449421909014163966437506107816905898121301302987692504041173473951764212639546026202380834805760940564909117257193190892056799288069183599575600320384614683734383426524157978068789634791125925480176201789074515236298187636859727474508344615113927822297604492815875811543409096028586600360999037054808333938705541360569672358227884915265570393612910901777166661965032264645097134515535534564957221155292570477406503385515765217064901210055022558003205808103560956928458908329268276697358951103335056429885664782881796454303795050117727959894670272236384893599955648416926851589624988723925755697843346028338291876896677665543378042875811980396117100169470423084031842881370839993153319655834484042225900489467824525074599802071576924387553134452468458989457033998908130808629010595403012076402042106645814858589936838964209041005691000134620865752431813972760760097199417084318900077022869947156180278627123014224635583018228855998214821067489583911568257469189389839209655253950381023569230626743800075380678284103603326975992811226601318799642992775891234550805847495721574729319394362277630027472427176614277152614451508810508126043986936540843020191246646499514047130552541782477988165543003446612246438346500282741891236874381316398935071071851415129415889882424135510524323476891025582059549515275817085317535113854653531441594626108993833702342557034053880573892545842597237812605962792338824390556564456239664714274742995581660247403535729856349165836005786080607573769772645985075837386020730645906391215332726885208605593330298537298103556873165383400327355305977123885542133934404017102153977829540790695856515986477461684677604953808938794758570974584351795370664210572896247607181138083245141932673572014636191164642738132269054580103448554059537187132160006520293826587730800095670636020670034753778854229069294191634222279229905853764146998418724596912110794107557592161879661390564244952078360189455758174890285899473990497787964357836629351952609566310332423936478441000708640673665186028711992314670483585509128895049793453253112807534632315132822855020078575102590750459558909054196583031021040171288455303455251884005535289697229995296799999998080316083070438358383622595961890670865892344868051325899750817600781229528366891210012833422786196983294037528795966549818685892743104944221932904182486556105928502404396994834388387708785034960833043884135910471712230195096759241537393535970501390726951931574396004503522237148833679378049852627470604448724868092894281370333130326941354459497613477313807722282998948319001473487510152167364174770854414456706930396630452556144715385539081321748623397105902495649212575117110371319339701719725475532560545950437747195237054765763764981697617171154974927847646143316581471406157420357041246163792737098129235032248358046073346815613421865038874807872637840625002262842269492744932080493389371702328032488024746388388624461881878137540771804119907088175717237567453300716287063834815189780077508273421100007334868202038439868623502916568959167813498500205991506578154160968071216846725118849529244982312552459570699894257325508470686250690904585575187828232225253768544783795857473292766141018520996141968411987009468654064080035847995680173310623513608523074914084006794003562623164875403546955169646974488274721921551012083954408737669211111707399811138061609299638050569672579572499643382619587674611736406301406049959305271414999300274898869874236733419416995031998340189766483070213584714985481446411799753095588325984461063580926657376152975641222753567492768391299254370354913141712014774443544386151291383163163846496151567893203877158658923347006185081820102079393800807997870107028765334018486257046525764651907273969394551899671727570734875776051453246808164838403222993598956483364938146999968522499586247802759042645542425210487641165748985501449703735858585313486841394773360934575551237700284950717673774039974337358056446634712053120405055137040645080768988209504730679239158530208016614905019629467117192408303596698051627664736289010683045491299579156241485080352811872104901752474833450197397475862194885150190564838054946563618427722959821399021329673531206953228173522767558116729402217880620522319087761356994430023557692092976301124210249187731055829296915047661927080121183814817847494197864459960311578224322011182643933548428946274967866490116768172928458157419314085777230470761354360644661543083291226778685634493886067066179982753945174433402762721885452627255438853401233857012464517786678724542791483902283884847432523913295507378159013110153841357909924624452872202360004513179010111675675567841772478489547299965970148062742999596407026707326623489055637966135387082421452871950342976703038629075039556915823112490324009099590933964975916431260305282583506613453875118293499747570103858457346631551692054251504471817668257099671606082768821302115170344286761961028403738687461804285922714265985931782329940537118651902173798987164423073569839179183425456527247603150783667273065559616974251138104399276152937911903166298735755610956884514701727099467068772954808500621505566869541387553144469995490846126259358558743378588411012208328038448388434189607263175301718605133470932698043633668518365977729248008910254327897588192081109416046979412801250588413753929235257210027268268241521601489593661470978493991887989771083712372558689931293615083121930479354251861141870175022138436029338396651718084230422743735446624967033058355642813555171464094986973102652055675954694852182627334251619465400098840371085163962536108263841637152449590741551336129054955594009275816612140161199093560939156039399609131611571820725363952552005787154427614289464324683112734177066398639462934447878724537132341098404790970237501457780466871292963172435912682880457203267058660152102786433703968935108732833642503596296843887286922552893321136680687526152741997389748181854615722910524123082578390528417075456133588208995717989774844935611558296570380597551357384758510185031690715020849117079274181663583327656854429712712077940976455906149144146549186263452935111807498404245075487337311227416638231408126667768732040137380468043574800872724712112460097942031213702083850357320938769206471460251414610619515371975995667808989781533894505941255585847586538870401873125050680006329631952304902561591419758122433072208829260421856982807965001417942651107122388129561498134241812160195356323740969055712906771112825584229775916253773948495446826918441925641143369609572671700822890917966701537953554906939681404681027251855239297206908035979997957095513935233845604847208960637488201238782441962272602812755768698220299654364812847483697997864579094219154380348400397202110059012920540666369528896041171339555474856008729450443214047590196189979658151991105673319468948184473026286914606956552443639713180275550776483591017500167629680406847072593938803997805646762680771884825441850286252433976642263544773462087302643335143017860488418449453280281150988945843319832033122413679328513390431290050728217402319520161783819116685452116523932283988210159506486710414170952589934427330988100110108986826204496340126452341884758967865782673119806362067820919772917537189669443150571715792986027576077589855007181565805747592892022342692389385607941987574102791637677610310503277042017787634826519823833591275035185555551211207937340877663082066248067325592775296986141940097065181051625343674638331472626707253369330923295463778307917050536529484684218188499099597982561966115236358399155691949865558852218808499091465163438867503127161208083885902369880388973035687165516330887314859254411714188382203609518695153877735670161789183628810796266575146167111531270775612051133396481060764270028578617654768020559657465735646144641414428883317164983491021803744353424478707838366232801717293531573983634104656591428654813170817722816727005891538698304334656731768845665003699718487477734224550680518436953204043205741302375192506540026761031221328687619683511255208862259586214630807185409302471825461442773066838451544877560886820015279217350886136001626372885769479737779686091541935696315689514906923202535718374757328945944197628733554124879320624435077720553198593425725004223437001538193240286561258550226598938558041023308656098289902123220166513501155793801160884612469102547111962546061978956453408766610042734971385463118736821936143061384380129968025060234065426933909066377973716048867981341682028725014856126974761725412191340188208073733920936497593425440038817801124345576881548490310330602802842171511394816841746871678108187055633462149163303613353897377553225159332781020837992521013559281409075037431546921930039507613928813058704339402509513027434224563068204740696739767019802257691699590890865647616669861340107387526152273750777332075268642635921465783182708074238146578990968214718431831262535577189082907098381107946492953282674204130759998912638995963324002077682579875278497940910413434309280400372992852079647826608853194972093730745867019982469349101362824380881358867876155054765310519026507987885583243825875818587155988087952845921081130475815481244542434684922515250822128037237881136253361739547665641261796154676260885140955813822287284427382801697755061421248438366032051162709099225961576708705414361294416153897515494488953530235395325791096335692872566501262408073003556320484071856832187692774916808904926856988260713591626808296052954584955595160377827869368319583878710451415342415973326624884654163442977541427630000420864485125762070170840111826674136692408942423837702139202812147818902247949014347556042772865760291679749801421819047045736633739563210832873873951846026324261964642434981605880302247420416351251727342228683046102557199796822313665642526355475551574398958533724081282352582528143512747668185910302553582795066106702973956086672567652851897386619070108572602544063947298137317621954448981873709685454030901670913110352411493438581945951728515668422347965980034333258257368086868773786870955472263570246837942289765996698631311548840783140662534843219299199834029540446785192401945218765705308931654691452502273905437057020179664876412014896081121768871327660625634574670712337425169855057796136922582996507675108339619664018879892542542055641792394762880394145166530027759598515224470934277336475689389890091145477309302680134518885907665577417862167992941847986113167900059677142976510848550286102848413823071150163242296919439838924018885287594513799610034978931838259961836129968686179091695304816899906091949026305696916236549776259447131206810870368427984636566881544200902176228433746957708653462407026414818456268483012341269913187611537855049337329504631703865712611301601950884070285258536488688661859037331066298430595873442503127089816562991590625221735361375376016401736002039551435528858687504023449892462202665592392140220697684606685235987644750173057058548931754505799539308124860355668500263954355885023266015082430765416452688498160087048936275231528673030714696962015281406213612430388315101353830316995666863302553278678300006643008636290141327850473161609961087602493871785277830686706479779036110559901170983701011484900577596545141897986849310380375094382637468710109812497776630190910221399943645136292366058380473992350384114216271345597252547864883508653198461158986286751965318241419925098458928354482599955011023123499405254228097348688253099803689952830146181496307767710008164763928005268945938591353110985865801052154756953538773860054615419237765157830119859529675805294008356573544033025136925997465757594260295229500654149316398100089609114205090982639345959938654857801683683461612441140804974793616531253274856760081671666353198279083608649807485547736445614004214413175593039537817440222149563690793820993791383106193344385664187533946733336613004986452868122085654665546001731753526235369540495501949128600398569413863543433826985139824809204591066298356134558119251777204854554555516964468783989826924447320513284601434422375471551447963587999656314768087738152730451492660644064978848211838567288181503399650394663810136467248102227927145011231709332446381169567057618926743287308245306721930919742963427068275661398084140710624782779066341685489065685206262734789091010919438306491870544877006575090400664908301368362350781724727348348098219369463250780219710142095510903610545006150385582403375743966552897282183565133425547941945077269460098412792074244439830623474705878969934776836551163485548525799926471593084824572403672629262176104411970939399584355633746620245812395220643764302889959677448188911449365561036225180354318658039183606299473884180918322649418706818191532369159210622668810164437686449793260153119419371041386439487189576353898213484675560299739364502515933170695363240005707952336647403461840859102934732332273373760568660924908998268289928173418885862800207956970817705152925059439924637158103139569364351423340917940768722122107704116267614499661827499540088453763524105351055059458535129778529230236140861922636425437447195572065999802476822273347870291293174729092224990009154728552882283222772531088983119529618283792675565965605411316889356377694389777712740616339684180320390698321835030737091912834835079438265842216851683538891328832653886801415377525972880241000761450526587116525964442794549289934338051121159887042913509036522160410787923630028615595743466514425972899164011620969421818376317737765020853781409049960623359186402404257469258220408886807365813566822941427537275662963875245521906683655587182496786325398397741914537890738511057748187447529508150590634920357238324507953863438391794695246042721719424186943021234541184910003810636648140225248099472247246744706531355357924205515782301579058018318106841710149043476055841707371682033042596182921361909768711497919663903936213709959334127052995877968709814994310381255507911374308898913630726403715585836398468919447949604470145032602875588253105371350629888264572594898985660493913086423567374804484134085613866250993818874850178950190641153523647952965263459355877380005797085718911542650786370230461969128507225834532462965893453845163671632147352404635729904450123515959963901684351335614978709957720912960743954950446970418370235142629357850251504469211340261704940572258722051180952200439406516200314834513314778726789015996727641628044536597513448533848939884950243725942240035123773846657692644717731868272922537076635348215366594152648746743612285193727934516066543865444838268551371884232508009358520058159425162402180971443895485898261362318638254937917973768954427831336690631239893010238741520175013036034057358835003160573974566350382507607340631944571280137425646033726626501485927750728104993100573130796515849627620614948246991592285723474925251809503127066560300717378057088618372813721476727515697746612119564868657147480660721148582195443113028204948275458625454582906861405396353578592061015032818226113531415162843760186126890693024265110685466789762984085869201773569015003327323598667805239993100801911404092547336784198285878705928926457731079247774265977787175921902929564044458881068332192186943572799819136126604770270985066565739143623423538082420058702550611747575210300181667913307393058407464149722549312975379722056163060136162864797941133511892278563649481891069231074785639816034784806822162369344090392171985044899594522160623390712664471329342621628136460841314748128607377305270354873704597477447314571348260111186567836310601379409238120959016101918505116998836329800994241541742684353630551935909479155457311353811076272162443818215674049825170493482819093967696866814965130234938364286376323635296922171768461489284892512622854592635285375475268194291627259886967229734116410041811297572064682057550703550582280257185862955985031388492470514252591390925553087435732980053300966171315359902904861480969036142492857057209842906623033917430215868441995178479305503620798792091123646988578641419697298110318622797200547005450530407899213058979872344016882812710082824171308647486511415915393324121872582364572705476299000626342725399026649464962617628736561645817711859611914100643157371121787711532231842424483630441531937434075623369936202373892884622129198790769845462328016039454960557574360845102929493411945659423200348525677353142959527039588903254742450258688913308583152124352693854299957839857156553676280440867004863277572097682098703712817328059253671317394231807354102775339041049961833592285062648759453367582677652629468711535466334722264428842078920025691946921477891702076883074452953928064918129555862107793819919870016385288034154711762974933573505084273030650723613797901316747297447878872330990161172986738954450749361039774656317212787912113179179291096206416930228502422497641253462094123152718605770939730111339268458333594617132398530747426677715706777370087881123220871905169008704653353930340730154342540327921150542119158120717337380820199301282763538660640701237758006880302159714313502096623086694696929065296738272282195395787682815915940707345698783453093567714907236227639104408745594483097258930071400338145206254662154652003702821795867473355650519598358574924766713091544545236606917877937012328906768526797818192481815277850797458400148184904981213427209496783286017283704537363095948048002155204782280261052288047889067325041531986281830440742082064464852466796925473103196790587588723982170614107805608981323088739910863650386844357796044871148679243156058654092585720625847810287350606274150658986015033820306744598976473826334493405730520487647656705086270524770623627677394356857687548444862980793898445053768149370406748614501190082578883924594020575695298414733040710111846230868237788727481075839709342652234019538484752667132625335931945559810284206578903751764981057800469817635542248035864387722085208470897615529459405760915870577862339815686432136258148865749254773232877296311900411765244876270564336190053032286117528475492057375167180712023223408287100504144027375158080982893669927412408633317076449537124856889424583563845803185491835710516599970933342703248428888430522869356746787299376766935184881871401988499840346358910185767720779323066209996632267513905371681188600990725380084277790013534832283609698404650723890154580788839855874359215300510552935040882320150509313678876561024049428337423905696563341440714322669039551104697993452509942802935613206569126021279912475456616547114945539554937509797861296541724349621710476453676527505450779742903969219146926298573104620425236368837928588758168293921532466506241274635221326240795250366255565888437417581383836120366074105153452928423182970986182835459195338857935891580763514048118112527910529217516288006911168787910635816996676290939354810096049653543995506621445672255274479597288611092230496802657200733722327132568134527149251833223038832663491880575814983445537372592568456826227765505695247663020474967776282975844649876123400530243240483113463392197108790015813025012947244037413261242534011542625584388603352880275236858961451194437518810497336945517603644577813218295071502815044395838628434950907160366117684376730269481888962676337957194804045865584407837571592917871222485253704977992749687141677260646090824203780950625952123119081803389530145558864988804042382992589844860656512953712997659426912548245134408884791174905326850486442380673012020043497015521465100101735274303551827669558032171388929295505385994275189971491941563448534950659414150244208289772638697020950206099582858291570688358728066242702692169653234008491777350155317084952148444658547766666748690832749227327523205792503135605561975547150168995967693094994756079369064543570419332046763038903605607070501944056330124057370243054092388034324496274512447563346420822124328318232734735946110656468450672559508087495542522593333283951760055646984682562213333462920857191011012182732147378597213676771780280283174213819836421230072402478625225302957458418107860602469153970979989460119407517287295790147479866506868087498829071458538969871612655660860018015177684601026116196487941738475863138686204499715832149968759918139625827756645891453779948866228582591081326381155106564492408756908410195555801748351121385046696237385458583196784324250724567727856020384381785533020970967990819154194831375622877208736777312271380174230182852177846027473305373356235541707244999665227882987111218313031991776549628373204043066009838841354520070851056301726200526490256466091123778810818589342906853771839819369981961875934029221458077476476832453657528513424564491527043734377458310657181485846509794623208130727797260966002095844450274353125315013645058357470614788677220143599353133551278295678133321535740110904547975276678108803871994932491899569399839690114532443186998466343941220924525755893451143821382510504989339656881636321334935463509451791195037303938795717797764171888398324676690896086789478138289318030989608079402642201756137014750723364256735920942293633816223207511699814512826819716654361297468745578126932083902305430989051424041998259294553928254395612932791404105924212011904960684507122904624153877278209691863326482585237307232477985547331592583458657893475154532791616349365770632228226181085852134644014827445382620896200809057673437219899101918179869159936484514720897517579260762040370998579577291841773474641651623292645760821645658939314060364193055709453232745388444526195612727932593132771278705808630782368062959255580656211963540387129190825070368419074927642323513222852984269029936994877894920842386489055725116351468965588963596563180007057760330466006569803037890618006780868262382841078160878725273395581841189212951999332537839785699034960702736854381656234852203590813647078457088401062796809298634447828360826006250144913749741356044456148225912193188282341765668596550454936357249477276722081032154258829748240686449861518571742519252425972919615005133452445272387570803880159444459151302954905243086574966467301903568552542899934064509899110995450511925516341851981230538524887354106952182148743263738731427296219591818460448744835664972871172701125446734446008626893686161932479780511399364169798106328004780767842354121152621513260121633857013001991151203844843861037954424162599816515712972925167038222876871160094267001711701752182429908811380525788440871127655778631051312901312013917763859449138590620483513894172327907207427532644616695418196473567768113575693810368370141633482150973884306745606440868140735683966828903148542637223450280402691753449746318938337389024278994238598754347209978580427193076744293617319002310437549928211428490731038183704650341590416773183301419507522041423272903316923881797578272618968856469310858208997757100402265460504629227039246404141617141162075259799652757950567877806005868162519733110127904769419073568402269540129648207601906009852977801454225946176623834085865442529165641492344024320268824021727446709215612573227223508193175646712394529956235770981067813309314518324504205995792015530450017849062449325531066818409591949087627790196640391213356307263354207554629427695288907190245917639445439459862215596741887467818296134743951319676670850705513021806808550097017023801943681674129665320571006585868226772326196556972472487610375283144638215382460127572116697858660848074468789695327617116326968884780698257078882671308316360959586285885108522174022670573345165759251191464544101138142554010139328600260441259302256954177666044884211336076601231492333456568985051636455996376999305510213784864507676003777872159150444767000657328571662313446143197933064724362048283568871539356827861287381465900230305816339918368394598066697128687038149566368293032137154877405688791509190469663683467721443811123706888307554270903925060750616297908800118647812105420219721195071486369679833286443765722063336076105358206587110755757587785874013676887080631994906815167637923988490847904164822815124374976103134750573717692371320568308627887267094194227556323005879053407173325088360749016790696333221225838158886471628421760855903833028323871039494068229235521152602266793273335015414194639550724323038825991596562780273569528538441341503955587671908012683224985329513913548766239529601822674679130282027754818388744562537305961462740728019141020016917087489829904664343394178676802416264725504592325049909029305520278639834181880209263798972615019204570518010783003329094246715804507450609305828545872213766369767204924591365645506426248634398009049691381357357765177279802532537958420242418580491815602397537090281504175480402872201309951328180354346275225569057269626925481146278941541176340450174537729799178268410624802812647626934028429115992700328703327931142152787741148457797364536635557053914142735267252822601884532060257609790502512817020846597424532319085899380843265735906482112277980612506711901568714267915096717548984906241775280593681565816297277803032651295745003044587122528165104232966810419454844108433876761196730035331691623812494847793377419141917202741330447918150393276711204319519556926461053413882045762853821577236105355134938138749745090074285011530369502293911091898458589106723487248014044617101707831687683299273549153016349817967435578055320200414007967231176651581862605243090276568719165490942528652816386512936478885475773003841159901063136066758561039342705086153060865932533571482231440666537086668837166879735583932113883437182773599225250577405224692519947705079500256679907279808098234144855752502128541887276367354555720102654936201248540684468471263679717983468916139619587431449662293132102782204697451885467709488810085112053227907915464484702857427034167182592289270581658123892308200560948396519263987490912938300540702501989992215194815717935170702244355966400240306649836154662239463143334488349207049764523354552231222329818911518847635841657293182599775011598013720283088526579882214150605912675570870241280993202757016482292554395781717472481399297382069218231307156967216076396506385390297053172641258894100394861171242210272774268518119123398629364481289878790855958068410318014865142714178569631022021696686114300634858287606882820524362985564345632227050996229279717814236062967959609635971431212459883693639733666604662260449352250650996433826879270299159931016585867768953010382043294301969536682513057518387025575153839288485223832495387736629428729268316469014437929406235413256471817945499371806078710303749746488705833962580869705843537204641695147018679467898881469918777496439433890999509791533690340068047274529438536211519161956837673309276098006356284908256619757258558944470593102216119136133025380858541519486897752327777294565852139242302922565094009690135984185321489215396027999549815111438452034056191956464857481036251831337029041537690304341315897503051518814973413605907762747304901192070705775954038786938586148201849703582159611398713382041348561820608107646595775426906320844570274487381851395021798954382573208458350306576240853673944519458372519236370469421579765127195908651818161172407269773066401816230154024740615073628616874036466452973761314625871188079070503643121858536644360664527848817700532636852974067985113393590940771627077045163036384119599092575020241193536125128240229878385618506688027038291668153127816483267325267474880666951025013456738852830253723192870819681565387297797752194527935677620419293393052335661372477253249886584393170546344554357391771643017315642599324875122131820273091127703259522011837341441700727972621012672788497491508836016481218863904961931319355649309747072650185416074043284829077037659367568045053557726237613236447160978924662801823673758499794165248870533360009433145761174125920280820154700374664633989108415109691873535364709545697847760711401483809934222706975311578737221913619280229703593435113619562937126528756916020711575079582963846339833618234281161891358824941663472947878206679066120302359456780724256349384788557105886890237959020489271349182146319159952127775278832463117494080194279624183149319663136884140076458888861534844554108133359791087895767252664953931236770954413061933200533465351069789883785721551319795060023449249972415213383972713161819862323940097558731385050654031051791896817718043816833343649585418752599778559752841628455746735815962748493732518729975972174619660224566784905873295510642061157954253573189992871531156782501708168779335164369375498025349497329333035698643883641529153818687497834880495239595877903925855438537922054011491815113395917010310697450011547683142558665439636645641684774213355313310409075360147523245870280708406188190063266362018225599930828683738844493904358059349367615200112179661776472181247820530304959146980888683500899410182674452776212052895420262842625821873099359920138452253099712586193511823024460575823408658826606568240457947386241923080532068026786071456651794076868921113728703624937971598699167580863241355807035911918718670684462431909860593556093201752006254432868163853452847857554801388598301559363317451567916842385176319447446723145680801935825369085635127680593424566902485298610581550527928437211087245882935985190340353328309527263423866615535793093702697495847880911086722811237541067205375416680689024432295541787489890781293134128578047681840016301296609228973727318428590823866645481188512330127417532780903012707073404485953171506691160824258152597719864075574742412858388148631161090061639368464582989940518329642202810527646950877222649292079925132848798357191294490601494309791286229118694475572240626354121536343533360452176551017475745829741198774756807160477190725976641535014694470474694085998830151014520456028424293829729906388269998218925925544323280463499703445163831927540489382133996369046116403507342882598063604244227886454260486768808605417938103556202049415171571884558286631989370406882195936940884637253366931770424895938687106214059865062137656641997158529708646443447471174453563285852211949057282622091404110942349322753780088330868005380107177093036036223786099628704901298559282609527241947625554757787195620930248464308206685292640735161671926546986409627081567270761076916470084341906828584035844901266463576687893260118289170553395075906444450862071895027663979242332666164439321563472709517998829914764509586004080982944411411944358506290789120402822400382775700374807356275841199251951816336107927535909402746651493156203464343689855587932487766200258528645294168082943491046061717104853870667751942471495298475146519591994896430867244832673717491759088131633833145758641790210981120976406021527556744199911557677505747787227526334531109752567769271697418991567460665912724893630196493046931553782853967845295766038725769940051820323377133074290191030962571810446080707354134755467938066580869806601740927687818062582214608882762372114245195496616617194653025205525207570941832230345727171125711965742732438671855076185455320911939051226519456388632935403432726778748349973922740253236950371580998492186172315137217299174145129111243603753677808501987844524806885804954765890207014238957087175091461920579047208462975014289306742157490932327399629215203714789721993634962244761485947494106083500298836217273667139948713755734867866387250591241086951211890100707092164011495499353051902603191875083900971138127274225613473359765002236914500148100047638716174535683938894666305807149909076586727792837986620572221180320267175812522914079079358584489563733599246908854284583587094468162449300634131030308461686639208719384428617782265437776433702814514369193846649005966202999838106965576949670439030883622651280229088364000494757442963166569848590369614615521508966564093406357922588579395733573503185263915256630426283167038060089005152551791747231903388175149851307575860937392567727922275327144938368309123179631564443560866841999465085592957227749570961868487064827739706407056726339139493728665893779241189766476216413637057193672091987473249936868411364077757240809785815304592506154573497700830808520922980923475817889767849316673703543286996496760400513248561075237324393871486966726768154382794711489415846736452914387031453171393300612057836380685568317844695604835789412384009635144738533980301284040135591420206153285901702194768995289199165515086698053429574737190906184858052129238870923140187513579391239844196777541513511649816569576470794932361234158974774481878793940882448301400626787667085557333372979127356145792067929575252342477874832181029481903966981485192176265733392906199249208492773753959982514583256275601137492617887307943973077431847009178671301516580114456505031752221677167603214553027412087926462825258801951907993373553454736288974310315029727593608044511285753903185553346814040187563845759294240861239012316405575906092663089048982891324482711373984130009227129250139213584703007260563642981837186868757834041095996567705732947503598862646254332531163346234599884674783507091698840064563745663151744281537474059805610322505514258306392517498374904664003489296150184999798504588565324412634329835506932624500559226858255180080547808161718807791857223856049139122300399875959142753035268489861717958726430840743900714276580593572630722674359028020956103244589808877525754880438668813052773010505062085828246346380716057117175011346665286408214724762001594772268885703474556087769151227023793338276617791330712188023391724940479952662730060071146268138110484799523005600605638812925772932762204505625498063349808759119136784798409942617619643883302951664774993556302676129397204059952077646236098354679559764978987908766341188473374017658250772057788133177209066004572275463152877664478421924825860598251966802094794219198420973769061228107622516571066083921832069031171117867064375854190011714359643345069843867541642753407614539741151938788848946831991243240221067344044071215832252894522251289113180045061382892472498842691861747174541100109523134775502743930710148890539435132143595597266609037521168092180060119928810842763069348110682072927672376423256455199269000280928044573101382028102970719905548454675276362046876618496278666776577426359041369488994114004346088513802403511786971985841465551453722352100050469901726288584510156841867451274915364052154263612094168457265456365158841943527679238646194468616119835256949891659792750624785695717426234652689546838548179136139345856807772725780029982550013949055841922790814779062332997476944673510096676813285997482034967489527476572458725951083879240600999953024836385398525989476616741476822223191073827182398061485956308428096504641073754909881363535158216680804805936992039057534705267061585544797092454566936013664036963093834105059613631593043407951655173024209804319715167889568531763093821020288788187642064132457036293388704442178549535698011461557829128370423649449529242364572668626443467102277280175300512171173705686848355429753743527306826163003411759599835203376303182716923970659171256345689900765262421637435602542291621494997694370121059433467829240559649292601086229858801671405204046519515212795221471915891982748884342932190588998254243334887538422783375603429626909897236135551178556099545579419901117974264904904693078890792102721073910140761229887556745451843370951481044121793188631655853686521430726842278700599512554519098664076728012893283101814952521347648119922642584559831906010679774208141420130407582996227480456743802182008653229609033971476601619887690621295193873422450849734683553540005841658093390483880609971220898407457670344217138010735322885555929819237220338809246987591951521056393329303606891729740884657194273187309089170067880956645205033843702675409668511801510168188440033068446276093705671522453858191395813620742722199364300090761412569026604378221434438812151521104150909550712537548296181968524059583252996201094146118977842787623652076706166489931889550966682238757952838454039781430891314932777773398047601002007474798695308293588969521515103326169216725781318106695659137293766993901594929853824462154160695592218695477689352285638051346532574478808769750878410657663246399626439065848638362849047288033642843770753593665744457714699652057926918641966819562845096037369797279037453641612564206571813970200854259453422468044210865919556183370833206445012682287826879968567252911700244375569813770401651747396594553078021355857322437660711693699039974015990862236875251401973062819939576513610572106066291262821865406904855790404963185134046805798204158006109067689364552356800971214454119737805695104379695140809350106918115010000993549141197507884142109559893357910626361733392317492353189880181819178450918273255037463888068314071710892658014048179823435608070222766561297393499062265879511720723645326774836994158578224504171744798223967754690251300174719519290052853072119265315070066413737185095821677278616384257276866663283566613895356424269047845474519294458120970214548485143456386379644965233348727305396717998380213728498801321310353573547444867847516896290686476524995220626870647707977577900307911312461329227536223263112595631524632562410821612259604334602497386915827298107710118688565593529908804881505064329263482108570725090082289359535996552992960597751841768676122889630265551066142633544292823020259246282152493472465885365518577037832868217206511459377993066066254197591449997028971099903125858903406876135144452144117919152627372258626681818531880457566651778729211362246039335355623611788899593737852459713695944754317712040714602315260544020661833621702317997263316238160114611343792582116482043659970218945487526360742880923975146198153383227606556573308826782255992500853058675639349381181222214592398443229561227362989253704818900126986750771246401473028513182392213489662659451589174600705205730884707555085500945729562251976655197289121943543286782241290582192474434652455391624766436860919822866585488408793563456008943673299396881759463004176415983708876965775027922984812326982752544591505179530576782708177131654879531340963221779691063809108512516034161001956051290986122363925143544880396127251695350909402017168966882189706988913395669030917488719428136332249096853132865100317159246712609085661935147737784107636701045679751908500214646127390746649976878011333841955879844338254943729935037721882714087834326427846531519122196659377850355279669616228057012968746580449107103891474188198451604351120771079207873321714250863975256431961255787305996933219962836471867210279039878380848388040836074822922242451730435666725772724644643296250520766426259955297704279020211720148079130920093990401088957490265614524388231783879600164631078667833264861375268012325980467228977456803713524209705480053994643425803062903077000044809852172813485450607957894567842026565009051939449939288114504647545280732942970339823618030839233051443367659856858097130498025217649788292029275300340935815684485083618172673321232244857888748945303244081962846431763370979616226038602401145384589633024905295124390429348635515597367432904840911724139281433730577916983885956332043686719958663555742362289659259430613569202926167097697255568589697046377994807464455675778663327486670175849688817764112772952496576185561086394750843921433989289896897964362131549892244621920404012188282610860788304706097412071304740009525565180018961757205434328390777846234689228264131146021901099068652733543632949684199332751527087121552783885476619479190548705242152890809924041010176341874239708615993665276105546149181917004231329135033189735326978521350225012307249848679097571389250123045328591183891235695746268116950660791446098786120912428087078016007584802481769598014011563778056520490086417804931158109672839039062940496247051987718360554974361126432025077596601439501605551440090425627359594504564853648248336595357780690134132092302047516065895930155539389560849232988700539780569848084859706786285701121446808612909782428514334033549774087616721354762205255926637044619832398974469101856799529025769969194967123768599319649953747981001463567874914383272838853398307759749728257484124406394480475023613292156851695300814859607298655104413464329871522435380833014981940739187866051549274182758800771420418757852677333216458734974274366608286948239484261811792549533248780983241743791143766637987096620248972442715271638076881130994207538317268564281093339842426615288450685609541353200175922444972893048909861135687347221935259105216462044329173661723641352115611528702124891489244244016440781698665375713095174184299773128714233146590198283196001938722855597956942521636564957589353956453306111259829603163462825943005650686026990422059408435349555629109896424989330426452490901228174812014319510161872273650898342664423622394870748482087225345203495932475557373549147256110194818926597757920406566234966192379895893207853854356327177998694861260133768234581963071236551210844576809283395859740067540735569381892588187878322650489815472662742322770201321557295735194896123015534163073628925330426245872800357602667152991788155658317117634810759382906753861503566980200709218503448395897934560564251879313734268188845771647467231701200329630294814429989393411877584224252867138100058013926557444887440215832320185102812960321697575293135862246294947318049436066532752850114102561091283241819793049695919113361077823687702988528682121139152241055870887503241389071006147825332065301296358707805595661724206026399506550106285289174124183625160375730543284120734155595899519064802267554214238183937366407563582206517492709435151213347154593788776653467128040761121803719771052816620741819744103698512591193726117814171538803254202602205697077417270159199816550082514272721560829660423489778575093759197784243817646583417594281217484256407757623088265198030244751228019758232168730500895768279053570390415448221975795961256822781262851090384725423218395043100743415292550082285140275446770555291287687983511096485877345036050684646206612936592496265408104304112128539285325005937043323101808163025623292180332744139670268191425716650556489850118494832739845415528359715887029427995934006974704228242201785368743570171356942339780284434540929155915032233911400259011031226173022079385172235800400673347479114085988416991753145972614172657322873353366143349642755329583151187927707874244060547386060292658293534173948789214736802785867441598742643915605794579745277162985965468761504234472386342934547692676377801203514008075892448619423460504887180340950773799586808411551772293997555736735128333846095859514163260499920096208245312505166524182799776432012495106417232031135717479587201417203565120361022069356684277252996832411004057045388224103452060551016500976249533692099896357763013597585133138475016560025073023214956553814702917664478497026826560450900709535458889210662236427336353787439358456145993427388022654447199488426306476097858648546793846279759123229247263800101814394174841041159558630858469982969717585601438931487862792455854026675281067764064540375826261461998354565405972139980712719349991038015139253927422201790600512124450529620166075733196828510385680919774828789477232093414170236331734750425492815230030403900001550235691875540333421132880704693483850811711966127956666355281917794477132540225126774561271056226331981945329003763235706846661102694847063468244153010043253134791232362895035792209399077657443843065852249514866844743105660190389074426951561031546173737056669159013605820443424289492364277280964433149638771401628050032306410893859846754949545701031835637474042749055785308076198956222230579370926525664158398936559655348979872635014552733048805692420072932772728654369180873674524414326491409802589303452506586670539989077775897324221865738399358200752445483262393013628221678866901059583473238726876061962288279497996002174912902705156463668195016173689188515949534561261139003082196018754814384801717249417383234017511252391078862810271036936466824363364550171000728636178040582566262002270140748482158838927795095961955626387204599467016905420749565544146837472295954313853251799886987097020347183387308367726812186952583084144337946862421522929080301980829707013860557548239376075126253522064937558036283959764465634568970272125135555974078129382217078484533448636655163496688779197874521911754986221812590354110021879958184013380251506500902377932699010543638248833574130387163387152133377684511269433759274282523623770211993782730440516263115788305620690718617806568232403443756519302435190983453642428033418115514594744200375074337569187396890501135837285118667053880735970396492381964814025941898193630342443855148613428357383465703204317462037381842752286229188661348564256840273813444443948320974163906819464527625003692142434900432119978770429695792989861647977176078032065987722963275188860249582774408207128002059057461967178474956522300200945495971268842892269364040850635240091703665621997356016356126082252133947399837590930405474181173847513209787719402167314937738509881106484857038695836210040799625453785875272710249383225192762738690865829184684520386155518265979406163917996946039517159596895909636467493538726515078960616275305537892061193436244646456776468124746353992015558066093862347527153285547196671050492195256659727534156683963164669072535614479977746581093218094912948332719048026756290087939167899209205996802045012355075135749820019046527583175645195740601357152422136683917534708415295027936780523938695664600508642887535155479751329326210676423404188720184847163381803206547147298890775799382248292845205251395658162585827724021237478851413780499303461320770650383692414397597411102206156625327110885930298462791558663102733006238964909153739581909322156915214906475227603009583061195237888649244072759004047700846444296872826369554783657207366317155401949568889960687336665886553278182235690283932459668866990989636980850637338784445713020911702435345220611438207958010816688859697824156048166896760024670670011944777018981696623732297979258601293394882885425452647376728125747691387978422337459949157300452610597073992550447681644833612388616232699516949795809634983681603480511586757618797964609166341496001753175987324091298349403178725044659450931572342940248059797493905610953545973517797809087305247237656850520574338308802324291525045441603327481275064909823848086399823674833539865305572709828819508867388008778329287586995732907196187582409593371661556416624772522009367467797573593298644139944709532960161779429372275066429102214280652421741982075393231708286492104483824961812687071253426371505418314979020131923326057235472152889175523620921110363844836296422992916143013727452197822804478358293642777212911937748455338662847381619708109063693396621384621453505913924300661650908749135616088715091521616149604545608418563624124491438757207398979428314469718638178797578246432978481091451426951731377504601608494588432682224536028138513106374205364555489043554226838901283381702737067078139967530047482184770266012132685803786730021541345946727071171868970957862849942635062126954990587129427075953290904981997352795444984128869222902685872711436106065418608917889734612696578396626687662272641904410521018174981215352276697047919189822794983186658211118837587418287985587373528042655381036921275368237910845864648051906426061880055159634167517649390469280661308641130595164379866624726362495872380451944843143473140446772914345278195783917466310171662380595230138843371306783069381122521691606473774104436089751382407830888181132192457303855156545572215965581108261939086600903664214238942373151738376450583144467740381032455404805130589522659851916966008122433694958469944452117679861635658595358183210472932880859184854192095534502133315362897860421722401639972016731539638171463419640897808597754554160903007253574014187318950643412092281537282503096255469849863795646261804016377287231132688605246323458730735162803409467138403609695869597342693881762867241376240665729962224716460128602563028494717958938388922368283759983983898499291512325401229412314651217102924637966602752705688297592035305744154476124003942200923093074428550533194057385746800438649510147611399842612880353736576200043399235865500142689576409500979506305138851440780285889373746546906986795515065366366160957679195474156290900843015061839712026948603698076317767879788415970358820994597611255570198928441896095978419229013762409379277627100143227252160445454273241297557218923897761095362173063755349050319044781589797673997923592821357050749698859797529648559951871250230147527284282207339825437070027395961053215657074582391834642086655311302211939214595957847614679588013075598928256267921841867915590137911281083559466816991413908763125105635717382379542741031311927333093427049585812401033444627740286604551565519837107121975302887014530228372539343831646860610806989836986924759637107663165262973516614508864081144827550313992244445068560567673877758551368478172702294949299771312623778924960321330617507970240880728743261995240152697528275409300017220846320612008540849638640244296008030252510044356208014260224542642614422154963752971064407381993181964226266368354531289799812864343506177368184333004550398311420815504167039530575298828421808408092957214879536596491965300532479131047643510405703431554576646040736475115319506976436852286129171279603649011506957808142343592812392056533341203343910905169739651903306339217229606783423316001974226779001305215821344727307172871781033949446827488104470434981627537564078107275590542300598530449609209589489380464469240556517272790424844092544673362988970322454370750243200499290782555505027681166154186742280097246714186673225904469466452979027391007380514307472323248556945175828007194665088191441832882343876708866191970307726432498991136093314196478026873089182438539476708660605745731279306498455455097310947643280164019224777633837911116264129841895102737222713396765072247857371843307478317636643699661480018546805885798805524294466715157085438907629531148429580772903386547491535082829823402811543773478434796522195917277806775037677006538440207794164136234905259638350356737501780680968284713806974535435761008154729614128924269877761782772590400919980964212485565587610086696227857435539589499673353151150487267474086598528259024967490072040161345946237489643104010181092877925844184982517952245155179658833041936757441974330700704864964146188446666270887893462597654808677940918667807085244171320483310249053611368814630012017778458025020642136809860692564384619434566764968473759943667612048013918943170739088034841764058037615517138518246743917201668615682299453260072265601437487708594647965688877191624517162904793918585525769513309215759424948079186459936504868260409837827054382748332381961151539024204568807859411691459965852758478889906204297692942316924872818765883826990156528388095727564044796265752805304159316598376184306372401875673396900082660304692369210659094833580867715120014646129677760151070899348969605982521701024955231632787773816316850055125112925333040607218552661264447752680050916564192552103145411526977518359521363873626544461518340357440359339251904733804907274684872078306366005158342898656555004493298675717268174445347681437229292030940339501694968389001562438778764472451405362554318785320462751129990746119218017660876271766901316641945237997248241474276117300459502523250275300191577253866074870293091204609513641526213836522805425374167270811395813648503166710042070662097396955385726647837335322456597452408492377324257850260194321862658923219562926719274554894617976190813789783582013780817856701516291320146990780302021500380989128361569688038410622112440229089580970656132134887419907345884824489252105045269811595425533791802382997105371693801213431829366338463202423299865760641824791890143060603778435442762425888456866266768452974197081442049426482770945042148280721737540776013626267014018138795859839748226501493099697209745311294317449349043834752225337454799973914486855113252211638937129880959464749414035777882913991032043449873864739708539063974270119152510168443060872776377937018597425881313654884922944142617262073219424062402864898635163802538416870096932759133905660707274018605472927575442788028154863655374820488611962063805482460757445967261762297118834434638049974265276761131603246164861605562657640528870269455320635411112184934707105885034094678561027988486154905740875015571789847075576524172932685338434881201042130128155904890160197393280526765177761812351682599230939899970630592344214434432865936209778626954275990351749189751766781279760814161687543896867325963777735615039838055991164985124875814748645387791406011493853417330039128073855095764280496110073908257674113922402671834521224843570215247502840793503464184914311818797193593855130677315982461693825959268851708450541387230630494413111668629507386534488774005153799264106409743824231858096648793781905066888622211768925676248772036097719249080528558196901804613679866588543579778166006284238332557838759711584756716931775111061621181344440148291623649435655356129330234589834734441723905738910474771885746947195028183003982524746414256161957732965220221091816520115601134763553934969363429489094218664183946801799343213587133612462296099732687380779142824647219813768734070188484878382818164339570375452679506189956577084361957007841764572038787732826339759171783536651567084984152728827986622835862247958838354267075618780283387040834412809984678141175951060783603471344669228147753614699218461823016152313982125017003632123412843639477157418651468743450694775365696384605309718629084933202073001595832248325166695782883590944326522072135419196810830196957200590718804184671616570351232384500735940235863899831284133892541280818951467785561941531697698663707337486387728304841885405634080026564256565352582201143467770786026760609073102857141533961313859971633830635003020268158979836604700518774134084084971090911546069667414888312103244602330774650952014826423527347719474305865367603074816972900935916114503658255344038241921298802575696194651133836849528627135254936308309028238613981133967869863243495228973547539537729531697145573589166018113032866978239759019335031950188577543091126592096037749382154777578703547303994099248846129516767516414238698919158108130152854038266923858263532315774178429600203915373701662477362999616845509052458846368820293264619129768777478787769033544189186379494852861817177300992669705252947286385797758373283008991583116037082627980814633197601789785964660993803114572330597121406507090755505415989650489223982723987971904038678547355724427884931255241429201907068199528275219906708738272644546554458745811288343357205501477096309743271536478672758989806799222276457565961202186631212931548207405872467597005586376639907598186107378012831050251184550009844332836056469767878626993618913246981351450718185470160574883944915279978865897508162201249578376131452380061676671509067288497884725718159112115653221938340581025864973993969902807981434565232413034417883799025055928381921612106700063198241453275409266389124100688906153923470908477173462172206705272059918907393197402174809224579365078437759211008850907893607052743040676998150201084475743425600468187384268180791199112071514242728252020434359374110837035556470452365778218091142747622797356990263124311847627060988435546049115716217776093922507185915074664870966865516313860326009694193888410401532246783331628690991537018489336591815424259812480757886952765263133078965509184538435610189975339248182163762120556207003884267018404055999469636100994252339744234541914792666751674114518777551010942320722198260759682378193191746140126977514911165783975022387807066144288420907115966568064134421770309135282983710990755490158618542805520062608311048429353136550271436435531451616577853529698895722262569412501749835978327945823309340908320848154503393682379682259888258433728623686202436816699783891329029628505042274055274462444529635845579554314681101746304757110661621485959491594039862595112410699706646361998755004777599762817770684273039544956619636830052742100443080553361026420682215384279875823910789925968728079143023847158505463128823759505120490062010258597726345868528147299516015007877209127932794870221478552407453694599342734243417926386575566809043386869694510145654674273821748511310335806036557985296658378316902465142192638633694971498729628473116595597963351363618943773621714203159448781324639783516063165640222838468706604322436772165108329780200000637051427374097492707985204490711987672403629355555931078352881515326227196547635083530851714711849253639772562030974681987368288269625274626421444888280550480944800487239096088103090014642595334249319097125485534078804269759632058629342857155817486047776072588121332801523203370555521315316784808554607970074782084486492380939995206109295871108017894540651392645867043115708257411186630619489817449261936759842849455909211717933028045149230616014918746400716124536360725240261474995440067370397863033159831236598858809138746669078940450147780730768426142965022855223957363930333648831250723418323526333197896347764372448489547875218194446009996342514088659730135018493029518293224013350060739605751705954234968860719668108093502610512068701384678318492403911271327296219615713751826339134208322848499241390482194476403706726661162445262462716211662654204661155366209855204282052075993447553011701730561916453332980586159666861527962754538338179309116038365522069687032806434998944871728163076838209880859946576181656073039891985472083532257203508660017310966657405382772882489043934192546204559559546903976858018494058020232005107992092430388461375352547371246997067178720269224640002515593939214397898169045371193531408572509304440249027005403336778063624987521041020862525761220150208253864383666712954335672852602318402853842800999986599910276931761328912042593059667605140653387852716782273028461296407316219399778763842781407044091938578631775312919961649380316187587625658293584797353543387483614176914695248699488428971378786203058670518619267224545743294439796685231462349527215841456836398470782145797596209234974165968327617529865701411955457102543137853483820306215605378142308519360196672545202980982450996383021720812235358582148722831319541235822183923315675533610863517437613991096109206553465268920011128878147250793703931497359689511223435132129927345905834316908638399330108947661518085526175000198715247467036451349626878406557242553597412429626731575472463008583082384384210695945286761031481362826284591578491564546997360819901677815588509559196781809386038980154519318387715848977055333190841222044578233881500870166034827769365131380551157390555244482250071009426083861515543153661307721801468816289061256623586621652944675014446202795482671640558980679444791692070985416368312769308575007226070803152747921692026311383490754980453647833217862317225132309118163834798701729379776545995883005512002153237103319417857997351836243479175145020418187964998460311648370118414249103043199524528621797788710189909999111441335258234429507803391278454693435180693846183812755662165934770843886346205524836309787163253927958543249846480443066783741749023384649965121839306306799223117734184843104108738131347775199270988989348324054414719640237800644104327841947898206150974575175766707990095606038031446651054376458293099606708190656849427866077070928208152243723312338539420101065441046057991812751417064972543168879588583678995064978095532413489576225052099364642057823728811418970721036812753601282439538937642334789716667158076246019151213032660366135230499721293711573535341807630055461266200313341227389001761062692876396731503838176807608864361177838158343315453133460952930709495920315187303672359799846927477464034011163849221171122208312054879295295568758892438610702503277251951991594018057128476954089195898835612240107087922009154475736158919909908455830054367445979785051035404238058556012763189666324407154820252993052228192503897625354714170439182121666462809419071776451197319517345073296280379162273658543282007044734956416284442626938292379370397365066498926435052528822539424843789876045415427290277259326957902688254683044537605674364608423786885585215950892704762416191030886215863141650778375618573940140711607436265381053087222154433513043460790505618713330805257381852918342894047972293438024141385633129019322403584559697644226896998612855566381541372792510317539943517404905232253361682194093085234603227654317412916790280182562848832829464845528304409890144428027895846557710978480828078137763028523687927975475148547796500260410512138903859268952506424067035223615169020555827720154053951555430504271926544102945304628928522561247595697847617098238459704949507587611805376553641450322239088420183566621011231660128273314539982344491749628130365719354305170262481636444600605228615660728970721300506393422906819198739315405913525673783513490429019941361693462740713669586529715961311168966989245647966576070575480302447597765413358295985355520782906143143080953189717355724828673998406761842399491016548832876715054441380847024821146792012043384706539428773814305033210746712118044181740638044241730020800853343141177107661804428772624389177891375624502956905659422912244068907178932361315545487912183868686232395585484859276225438871970936118892813458848894031323131053661850826907221064534005686037085138615880703953725637354123393884002840391968325592971136744556896514681516642069517932342489252560339310182554984044451435565503678428074260820033930291715552455076906685581071488057436482791631719638148270932047691808171244875516535085342029156418828205912087831397253519280210699588960330327531663039262452949721848543118678555426794805131590062385127562575070222299986700646707245704651719059656464739289882167692044758919781292503681345660538247280345155043072028724902864188138180698855267277106340026637162240412039784669972714691552010309387648054815327748725323396291744746488425195989523692887917795079180244275616258478415163659736033556971662359330484819264922126007213558774593428924899873579605622476067402761870178408485995747111840161598296654303078016393189385421787533871931792764770058666229731447602598501565946606391544685037951735807837615624944409534021707275047517141259168092647784094783549947112959617206216185578080622600310485225193032414579316177156258819215791445887865374631592237651444540270309499392306559457737226072457206241041730344633683884518359821415253491032779070215841420798550481021880369773174469214162517262858380735280011684118855250031275072543173252185817638067215764988115578406983939230461364516601691566532400096484998238728763406513369609548448321785005450803141956711950731367382669826264839252132482712806457666887339537343796740285521018768021909468959157794234109942406713137736458439078508927713295259777908570825606944251922293314517371862653591218881999991981590271104807991225267855975998653727022955791597682263364522457751536334452655848689611082196516492457896081549114890525413856353767058340702297008418819302700640963346046453523500924163436139626126162406755953113179811408733017055530086421843903928088954586978966749425386462999037484850611997359466074596563077058367289039247694092075119431224530201710396274320739876416031955090103548707357254045191851397010106775783747922409422921493905209528883556256519414864871657779884088308849533052717868270059070858279755246826039195935338518939768850641044067099669022102897298417946124096236800833801190627217993110622694952445567205193103427351531811733545399473250941416969456514771464313735536859242171898512690128045021010644368140534618977519006319435440005235215990477655354147927344011474194926854682874877892957629441899342813421706087333074344218060593953753784172355091060551742654857497636944864421750825810657358677068400245591104252629388978088278094144500627244488114391467859918589553194279319366427701703445910046849940748857737893122630020332453059885766669733106153462503908760868879225787717277802986198030634080739653931959532229399951677306298601698478719158186817744079345360195475663176289228754745384170425255040016636597340600386560356353580182036365106419610205083583621378961404176309951781982911877915498760106826032483843595966847858159067600176335623259722219433880787052178904579687116568885193491831701997748976344667294162964240338460455047132206604109174942882817175312473353022916333227611632291769399730934007689284879120134676876925142752008817316235404176148593712534685604707675884591323206354895046784555726033790772950659338466882785405061521938880923854841986425150964151021374738489375467741758026321361558186620118474438110105511041611720998347073530210701826057650105744596679092047427455506204646547906587866689267972151105973114893237087204715747359139740149422743744598304133877657153035232631047765647486773239569085418815508037149200617525951110175918227133211694527797982356107873288931239682668144844226424670182952118112373923459484242149918206129445383131876226973931550545874099162449112632347102694934099778402034055120606296390138090814457333533495791229811038682747860327444615267682722815456569395331392432070573667429764802129923857235650208782252060805275602560745456443741781646876939782751233612542277036757126096688742492473694657649403483397554338829168475594714670529008750463954869371132044784194217974200122055236110370467763959389821949611640248808336856363775939785886318343976161955437722948357193745724948726497111995932118114978570071265924194972942721332321903898876734870345752200101040979428775741094646580454954917006744132949767635450003978094200385180559273055729942390132095317722256774155034286084692040295896252537144338499900704646119317137338445274610914338226777796059105599909778527916581474418729463429350613068458414980492795766437881449090059550476376382710134698835650934232249116677836303494652506300430873261284709559597271807185425075379576814814497823106134916676532221470499545482216760668118863555426679688378226760698437883386326771142060275490941414563463852609202259505911573084675734875202207211768854959970021269195575651003625653510923458760097797147551445766337116047150330089229984152629310078042977258555496735505038884861730460159394315666023834005803932711483331675159111249240508063099648163037785239969476495547976492981776433268443329126925458796075383274091456334673597470863486157570360537768271599872849396625515487032700004474586278422702296210049814556189115472646205646888160147553824231958779354176565276751828090166814031002307075307951509645616964207660915527102693487249049008786998877192486946827768283020558834226050556069132493028047885680192257848770420638067037801569627399857304414694662597094501024212326329552558783099412581220987132111443942336984544880683970790273733778230333184312487581635282530381051450538636229982877978909829316665368916254954413121614633069829729082257818646687486842264288754255746540443456820640962166946396420797180867736782234417599137609439254974734319726209696283897974431786831211995683921904084577068091969219250939492592897582901334392847047251695011021143457129519265812725581952237049776426448648669839057150364098737173134287098006442173044779359396346041347682210700322308739545059617787580686416910143343626206852132097018712970719807161408496266434573339984967235959998413347209339845520519600602952688964353093946339068119358709615630821110042745337574775226899528517087107959231101918935687003139092932808257682998116030920521032909887877957114730311750862041218377949698490942291979905407168150424591787279349080057365752472499701931458633550881094170119262993368562483300575604080091655445808163506557970340495911102412822968640770041816705379647051972820280957623605083158173982181925843827575615293217882131739822296435399859756215585165939374456585147026666180609990315225261519377922606457174665201000065778713706661484889621141964808995599843980871665332024594905386947180128448035658620420261579771697072982578604809526045400644149920969307693995819528988704054082861144152469569349250838020631511274746371931102911909620456219268154803510851179358096966809100184922125589836187659025297847826069206629107037705001633293356202094208346101159731128658378410509377484093882143845606959024808977606108164874427647052203202172529094347344201327289334843949727045061577707079194194743927944809831148018663467190386498279436888518995887030431148450875220089330809158207660188886268944069431840602953658778269471517085072514626838290699277980318351506428987125828926115884573639847507599830978388433304087424834339826933216466845726034481613581471636245607043473660036691093352288816275624991616437370518018125231881898509319411467950030437773945881166098956877084843266139583927525292640724272668441154833100276967709850371080486287589072044019157276737444995146832795334199172269224981973584108281053363135300903871103090469286264068343250642000765523409187753476308911311783324090811654799136171264250293911136306123507728566426524914258370518012808557547312778673616145519940120092609771299305900853100813115653930325954160990357641278908805497050337926878241222087636866045866978871290843588081666694984780203262122947280370841130373528442180666827625746770680082455530555087262774202859499453974345032524472633164825925615473149326282850136883114797182962638808539292879062507651806177771709866000703589443878306176910112066267835948237430696121773706648759299206935503562086315304118767741482663653734233661475534649725458174343479801900950269925151927177938460657795542508665662838374342180387232172031822707094748846158881802592029266947296763483513831478944980106645010477204260086977973698517266659390556094677600673008069864138551661002033700821239612740511443904683464066093637478863816038233133124907886019179341600324687544988066745413750369704947965144053079273444684340256935957748020936796405401252393686116104979736390457298887750012173418016675580374554642776216348838865049832537282836565668644807863802123643333551973034945188406112863002370717026241622630758002182126796003320121184342323284944392405258942329967671053706240886224535874490722866690237983583183932290957289073993997154477350809777660564332882172252358728795823522773755256060017385345160690157159703335706682692266140088973297860187933733473536331283767000813298719083343039092441480727181127311684596308532320860829887372351595936506263066750761771797391448617368083758204850705897757712396281416745494553338494181217979044664326722905682880365879362794173339415884924056387769628277522417180736850166655570335905408932001697154784640422681318854306788505852959151244865956839424280709179354292928604619341603337848439614373242853689107526839693317101821945866144281803118483913647931517536900744173510570247563981241506982402910407214217603082789066281642606343100865078281894155543623697888590693648371295069338668813295921125322912932320744711552243106631261086013706216232620718106026189072485039316231214715951042864002995820841731768965847011233300750443879374437444683615764511451623567235515542516345024660608100431236007051647330336262652934023818750034632427834767651656554218790083362075255630961720520802742155484229869205298554983180160386124501443843326934774276685464900409833604851026945736419070583849955553894232289658259944591048261379864322373827717273364023555671913896958630267021824887568808903573516938640291501825848389384806644432618998742531804188230067145431843730365208101741575013281677422951889306414302018236637741710377547541857388868973855060021258733369630701507215021636755699919235125538056609188326173991611695881491822308879279112946711136818211175027371338094766798192581986375760756808477857400874475244266688323793108142749419454980984754844093350062839304689328481530981047114542808646903901937877221271675115675631887866686451958810826322706954931240951940892687652993600533714610150276205639169656178598812257988540439542079166624736701984125779585695509872993237871388731740098321678577043449352398664922633182919098476501862625048063136875890586170375434041780419611094465731623159420257496311880174713546673184480110994917328798097968231574160287606797423339624007799295258012471861311859213578274865884444414986873447984159531861402311164110969162839652542238275249401183972797757307546416198470815611185670750323426307518990749608442752328698894579276312886090005125132140712686314137271746345115055678214324125855193523311838381551452527389839310424593598591642154475647333523033132318079074491304950176774186420248011507835721117591789983901751109411186776758092008186172785952391482636650856353753888631718520516388289466374539583488280217797616386354513132681936703254878363551291127762834817711685322433038959933784800730718312026213519708113507580598375869793686537378683614826074779389068006868275839214984089295515799633743785982703789472307016020399479779100260587045018580820961188979225795062628011207893589865186656199604627731151322039485114790236085337921312034846027884535249264537029866769924193786343128770149536089616188789595514344843005814799505826849801088702483042385253986509274736746655208157211581595259685309830537872072533141280475506826325037008009468098096523944199877775410051545869309228375323054638853089145050886405686931014446369744450241483927103310629894154132783891417482947281733270928051079016719959883265652054108194429372248301401787887230713495533317873361641303159983927702169879775709764102974010806135038376563032911116365656673865124732792752910764577169028604971675876057182418525857508901253510847852271570489562074051817852958138566279497265884211743108209460788654823390149762469808186025024882907798644608865596387747225438822911882656804262419569487579211385368496854220572763035910196116629804332053518538587225679689792480519630323099459115985090355774126198038905313295633501864808408447879247058051254014283542464477914851006410283522580194285485350560289785196525925949584828798658971160723921457276006919012084840375841424280337832084752989465822563113392933300163032390731857413360224006166906313103608525428806846294356094800840597387510511235605354335100763640684057982605783138772906378988685848471563201405513047073252818927625065642059634534933929906492803672058629874473211459872815786333997596112790977708496470710160861261461217985425896821083969332784278369827008014689631197602654439289966576611659375516246842572763450238452594180809934539429766765847928889521905157759453472650926789621923821989969582324727230169837351299768966705880230554840207104085122483532906646322689150715449667087214310068431044194644255815041282510315534807240474985765849894571501873974396681492284899091963410180887338322404053555583436964037637322153789792517560828079490159746979773892935547866199820935687125486112457539407678613688860234876717998718527634400225507222584934537510946143325541342717433769803862004475480593589929114564182885435876646594820955709005203169980799362893163742039218766902138974763063429726171920049850526145572191311301271400811911219325027295860023617188875125400560068513122274478045053381965394874054210251730160252609657969903927413804475487771794547926811843256511364823086797855108435227012892865310042541897074066900851874774992324850472112433817995383351030030969184130108616791807087007468327717428536040463457240180534521249991271370788645059478859587709532699702995661233781109219639964853629115100720279521861959057489667181670836830455431378921151842098016200548957083549880955056400623914841249047124695741888874584389405556307759560411449858516006859110627386522985092024797771729289905896110051417586210948108480784016968272737047331712711453928914251019461504233693215693688192717520640495883235845402648114346759964282799251429492326394899486445707852400152245582231960716917465392952407752728051394561360043418565965978629045530669639590611104648601488308802067720790814412938654873981904678379985883174287545672909495283752721863732496734493131785200840217289589139345999737439254469808493193109243822541010537048282795824710994160140733797287390909866850180998278789760286560741055895329825798491771517259869259325681557090933048446006291703598598976071391668513774734286869124915029973567979854791191567206674077959617118189519143445339592968115365843814611030199570959173179920502387550175982118697078318840951137805560069236771635786095549867497909216298436356677587005194134338790789359988008137464950096616174908016683660542433094086407404582686136396656113796685351666513411386752650505387708281397800268346175635965256785525486009187401737133737125379340504018277853541005283442344610464766243769325818355103076315278288550829191886351050519581314784018361948916132929635485239701044200161274717776107629464965523286068584143164228607915524171759088258360166016179823625304017560917846423867193970277119972061181952159183869479017292872324947274363877974451240667945048907514790282106111019667898915860035667116276692306653970164005023311416951784427884665279769325917794810879161221617641256477112457341955067535041183105298549355545177208349798062418319252518063256326227945182652694300407165343728575999917973067815000153340812050641203022189640574644580832037248648743157860663589626025412486566804023467416906552379563872932626964040325386741085924966232351088612327935950731848530778512620902259973126675143937961020462602396357448745724727799351839684805617593073043631237952541597793482955946358655151759492031686365409555695822782344809273808805744973952618233728112414219264861088371387316266701599286077645864178216887508287543160760003791226482992050353660654694079349526486943609887378699611482772071591039660574311092554251557374010794491608924984069499860669810624154105111103873336290952034649686714102463393555119849781315628549970197231504272486323220609162362917082720800731749329778241053603154192847611932512951161580037130190909005279515801045999390433686810235037686489167273116742786094879710437508149742542348039932765179887192359166465905406715821058575587764776887260070850334687799714060276121529859714077129722592884555806523041357501465238241130371324033134944576316598786242506126172982736592450582096886010617694159968172279967323341910209564806760431523281594120567469608997428852425281395437783700185209315560713407065587804110930711593477775767148440183880415194177817026986051580785811933250263523445656391737861650046114834809746328271813184659605588042830889370048299655093740009580819353858684822093141011455715916985679797113293681364410751333834338059716840141071146825285390725230633845776749204872321594003720543234999791901497795732408704735131768361530100084820443525225404340169442370788040564061934338215108437918448756102114284230053941095822256143589314039324330312815291874784351853798210476374547995616977497251304747902750191544747868759670461525220304745985178791659341352267754161091953978548041381050904285372488497858263075049677178099120586126164267983004580790583632468557397605422071558194947503000730417661606374659789852646764288718368957536114197053539827858964347208218336332646152358856526019714275408823536103821230009845893593860610792173282797156236956478869636167760485978592897862129386999151701272374191955831865625286534634653591012680235466756227199981826014496013911297454361864177360290397949447093327029846371058773434698917784712902134206996883530594055070024415695705792332115181202611159599814780211430365708141932292852618802668710143899769711275629701557254241503202175332408648319612929531578663900577140605440327440366505398332136642443205485653772562804297267323802058291725382517561288725032806856457301550735317725713330372268053504266124984228840974946122488349001758176858727074508446796627560618589277649983489024479396233701645403815669799254523350503808188851014362510781286424000561965224499853088124882882906115490396916170480444244949003740065034922856905478242682484137884648662788486790098227287350605319014819904168548443063375073513899785413929372416589918441315983243808452729220627682151100464706840131384466059703544761660746671461450391445777498060231217682462323718896425394896283789355131687936105815407580076802621985239502460732400318631830708240662219505146155133980667029951402729525618548062925165130107479339758778594589275133936644577048147193212227957956574844562823998370756167594120090710278400577133827026165155545314257698727009761685917758312927946032285523049264649663582114014397371475217563630972845218949755764575546493810724417434147635883185266664351991109605013746501399071426642567845286448034482430270683176782502926588244691271996973590301964169659948955691874853072264357941414323593666754568484050763453992644684096239997510735289430317300579463302174599617349540161400061819625769178069553783822976182261452072222623059768176963091849788231283555530855767333794322815563406405855313340027870736816951292824376712570486951416161520732969774640227861299767107791609938772420330278166277479644312321494343197018023926159661980152276177019090884854221549673668101433560269277702301567582410691963197816528363368073843207669570962837283574793359522705199740753149480619483722422572116433808502120514355762980155534721618356916590010910430792859485029954959620320163161161701753794571896090352643465006512956811142786070443288266162645225476536091185673432179277857543398513484333176891880641274742417991871567446161154123925713969520406272299485149013341288421866405693588948243154192308514075367130380039233138407048436930944465691294918655557606599687184818275734228290201228658531156998284808742907861065986706343270253432272389201249451516423970361633681451002569981366830735726730434679663866070106277722440529403387499024529457870349958755891677206105746304463209476530324580431417709507452273891461084255573176603135880404687785088692648018956735331069538887831751928029349264908698943123351455603214020964148617372173859308544443919276610689174084730468917237707432980763226226977026472451985027245549000573567788853832970455326984446637974217238832715964258560133317123495201333607529043647612297154427600018698584996750495971853092767275512704266100854945848969373175492441576571472028110313882835692589605840292556960245406096508881788931476956997962789868777625469031477385938374841248842163269894291000317967824826288194525890017330478347449884439077914651610687371636875459757608948534728841574092032461111349839376614445939998116710988297022210932294819073247494501005785189790734732272789829684811413994651608464315146083153510023357603916479612655169754750734579215066754877440086594123148260337545813525347550802007277309876215782369490807409759108586019343642767056588694156005662927835861923520358928559844990980597870560125322988395641743955312476484928699364034123545702100903983498113395347366349122861657741279254162103431495675373796995424620800028092249062404244445895189855444593309859773015855240864201393648451349348774866496763339824167353398764167864116087078791625684649007828111079718235632189562434487567386314184900713778115289055248609141752234416262588058984688207609946411462240901300077252739436509535529847508051410395277784489962342028684514002206136845465856066663189165816797373500118539542701990645363130351251286044260807833687696311588994538206564262636514965696817788133848047036370117159620241108747679211875965209796688168272135027058609256939987030533623205984307850283666839003147131331919018082502908064458528910379174443682486742063017657129405299330318012762961791143553165409953201237205374410260606955026651803682255414042765559795675091173533916362760710374198630838013388142432759370374397402533341518702959360377097642002901505929910779084895059920677595799570643974515985383155800496982734091303662827121553818245034961696051057068604122923486321337573251332288365070885597144399686689577559973598519683283827373841494677599266886262121469263469740920883167704839290700150307611184456306545537662929357953767042925800130280908939332875358300206787749927482180956355044359656103904382430384349747787408622186706640825421002903090367144261628110890515119125949835457564511308981639583007613205345997514395460823356518829720100246790520279874100449857571196766480376141356077215265593317645530154709150267526110334565031746137424571939023616885276288044488103656992124587025414384759677510876037998443202133155833050164727196417535718976866515380872037729419882733721331955427935856747373872752188757401599882828904849984536643530371728399271107279841824152145923770589662073787414656810057130720747207567811463259508182755146949910371825798022672286379273873720901278626849214966039639374271414074755071270134924093517346791849256106713295303070124355171417577461153941027939177859628728393250597190644302181107552664594810595622521539240000697472101280315914324680518608273646893627787761847372261725880932215759456435370098146969257968822277001525313047832295263857943003910973160144661672159537242064336172377400176481831065620766192888489067543213402749590228388017491218147601335224947629866341138748287660203049333046332145318871716088216950162795107811739563227896658448895598635931732369147434957666917875286698005721427719019960093291591252123762382985660508922409550342977162734952251003210234273290244903937799077526524985643952381340212629977948368290202085140889011402583790824622702221277928244563140802746117669579290007567889772020708312153632631777369238281875585905023953308929852318714105859834791677347789831563733804894741689187923705104898350976137634602204153374557076358705483909963010226513924135690276896134575132858459813681396932400022655929702024555216405865088312347116982776555590201164527212583866931056791964900159033468016932615215493362428433621500768458646939898793591079558747047067682816360788573446534458712160805456966171814908349150392810962720094616747773279582618785065874672889032283755195320678839664254695155623043416917858903881659135825540988850577924874642339273158368706432383237993153096616727085744561636225025047868401365556002580000034205694480097550398942975455510464724366351201384909795916715447422825109191856700785330942935575718290903265648621967257101859080966516336105255654997948443196301753363671229293917334611389914118374821822032484505082171308400210211056662652756303439955138389925493245371898495059904395147520270664274931563375623322495457853798106020349165635579612227929911550940803032206966528795386993042246846097183519887718716529759307941549073441034129591979234154551104022451136311400418889015777020681719899352962379901180346501908900817243198629042337657947113193242153418234802947644971651085945953230904966517795589995490656580030562355592084269465757293533907289628362243292623551847452950798981592335046290886724052919948282938089810584980973270275525834351900803091795542537003983772200724535961102052806406537659978541285373566941546082430240518957080147483814965646300790463317270392635743885120988072116993553311636343100900155946466892655801766031593452786081189801000619207502825852523002672558729352993467070925805939775303476330394196862449645889825833240385199912134861888076139884508781614495454324951323587369818525487420732523457904940801455958182736700891911336843424395825180007329807183488942993725801052437318273148959705215584492688467968882155598460703162538693303407400477059397882416900238947269080596270608284971971058301689865321030002757194533684091068979830067200662883811820345896238839889408241223992847596771713275449452373645794817210815655823465743803756309011627962879244012803857331155351475561143045564299607395634203049503076874398216638605981559867361079378712988006791975659631052339018182799471332754221961021487718324565205714383735711198433616217090776371868126045572726046220441049600460699426819662405258707257698278630744080947958421378493718730481275089235085702369282989862874428335280927249799485360072210432073156566941222911127361818522043895161800614092950931485145196783794428640336692765236274823592747372497559240041444198561477856902194909669140614594105829227841900649675692893831175911560230569449335558616594738768106558080553083111552207654287055597833648799031944477831533398607052236507241560864632186605981166294316775987457243028095716618291847214389690434327227714035134460888892703207041823967739418225238112235106292371023335751401631796967209644882357235557943956981288233342796120993212571745321441773530180602463717124574190415836796661899440673177945927347029171445275403325263358245682867086083763374483450491080105095104311549364258913924583420932610363968570572503418290901882939388321500476076104273288606087763381963651032090909242258425833843455874453043956456482522416207813738156469696111692392456310488799037250364710181936274525646740310421343317957948292402475410431561071212368221934872323687398849479660363487713556192429088918160135446316178454742643386716811418174469172869419047710792862168535402455103452737962934737718187284661425800359931829228308988564972887552872340323304849299460962008716182186368549174236792960114321755088343774767002222521251903875502276658697320309372906199701272942708653011819651071607057943749304814656680646379483415872150089443376612264758874877570611994075415470450511762226668904152002542699859459329169770573989526107695029991708926797764564924744723028068523135073027464566435621306243140076812619265121572308401380578542778283414688954263175535506565286508205189283126847131553745966807656791388543147841916035894589852815658935970843402708373584168266938268017157005552725971436746422634373460376911492411899584263544642223633899807750539529301161837071613234230994157096963000216926841011838727625514447863192675447182519173030365155831891693849414144629033756584376144062423757076466068102009606797891775242555369040471029088663918628042160548076765814174853389055073455797618341562584627045588959272857924829442652209752227962776795024988927055049324956448397174339091834453278929339129374891837832869762490811963507631120852823452656874354553329035385037337274775485428529988377362289878424455609230321121637373639553528050708819417687556288344919353292756760618609684535485219552885937712270706371266131977308299657853067044201657411436138608694183524366261216849915897667217400001363713480476812400500066285222839274626360102773223565207987187224122832219482939560378879192920309411799373102128351866814879254645253978280067946026845615390644728036486068942917269328121576053847521384321879362514313179538712099653302247190853036452601816048774600353398331032930851710085928174718578449039713106281038863684141083321550454527682275880802008297302558636584254885738251838572790390575559223787221044936908052474599524883411242185422022518748978274379047257193463791946840337803739991453553592059325298848937506723493107720199845184201308925821882971403454150437349066843737624098517629356149468889259770812141996357956927462136961107625677161722242023166376574563761599372428431367794272357064025143987005048116424654988035231453059669656982125730877952337190970935611462391456541110850908134334882377665459375743450699316105276772292703355907429306768203422684161440995982153612815240306773174931667981781554706978645372316204615385071692594337461553594266593121944059721551899900877762966958237065676610474491009492636097626013688947647943465746360569785329468711998406140938185925936642206155579913488165042254870820039320191379822957170040733878834867734464580771887229822484178644389110231965943929550884509467117406180993758685540905623738304962736560835535362498093191087303729633149704098321318639531020695483741189332165721620768911991580384938882519896588305503871833274302090792034747649907869196964702202198351898442203960125891975450328944745727964925198290209650387121786537515232982931898086184003583760905282373892076285521879971938067580700913451834338058160061136789926950768160435228835751979573490254972575668747793190666070881830246543891532229534357996100209556051796196024044158172521158185435809177845374552070076333395247542201465105479545015148994341674118478266118626915949498801793602421542622301886596274869983059782945357442298015405943871386378092395207107246225159077543232134242983037514475860392418361827107413228482654553780350907514512937465462228343970952136524623177273708249887045992308266216180274209829068503161010783183268268838428813418560079846060471142878402064457877611323532132869968325397087631205304009396004556450756392971783121178082164313895139055329569324753531552486026015778863478365046922803435698803480050953005214904386893645990901863988757303140924448812812677459931897025559586740866997454313356944066934474767621733465518262829089296196642237636702575987363064207466288784354342637666153887408338598962473927398921232053831255455131463858276326766808163082253014542153298112247087859639627067332051830512211748436771746544888901292834711507517809199832768324432895000886605696675309840888373400478086134834913963766254991006175984749530390526967959968982868622803843865789650377469523447614600574270719358181913070784304767991776012621791085118369071910647867875564044421377699319148070005612420065022248443524067802531029195787003569500274748689745063075532323977202002328927873117545295665994134130491554344943791242524859823064325986210956251740967158588767182465266925892107778206267712887340801431867803234168770382848808377597559359021332740855295727208494233998793328387804797787986619249883134254982314552133412586671118841160589139131148260817679070796173348842766857686448183427730340855894284078299708847455551193416840702504758021989929292790201230306321850772670192662793809741984849588905404680140355632862902135673885829156888528536046457328872831661779118931800134454302123770436628620239838897767110575189845261433490387297823886482417533946060901860449358057792786556286787184735203041823632425184270209802040843512486827690716623570515666466986007039035722001079236998199019625900035748205028314930039414064890848670967827293784860160944419203042543968042476880148597114668130338784697943632384412158783641492081522331208167609063693189038337756918961556628983520143297073423193939057097108021082131838115304819835124635742547864358404345528454205960074537428008579213218342960970294102882313319868840498160616915198935023635937302452810807630271833811417865733645935561643770181549814694797186312439426789432027895220964243851785115014274606435646704798405921438832101639402762306098691424979806787763776418173747975376222293630638124464112037939839784129953566113092336925636636121256282859444356336452211752277845116795568235949605809044160403240099804554071361556116071400562893752873850113928687480253139462476994500335349698019381191860764261533559270824226227679062310623004217996668922370725640097818562952185471953442696676567451251040220146832819388844077363180692310238237692336132636416941537348677306575124630253744440382654353020284901627515922824725379657120724927791696768994111377122886545857180678685147493663062852417751683179462017367574718993495768273480061306962816700163648455524356393245323163864599201520339561989857058605176849034473063848434304810220682719318901297801493445303416109930799595674797793240384403460970644811593410511167290490844571389795514765089312767767723144319713461537999168475436217991713098802394852262287010134461604861241375979176435574097155411961609785470230749320029568733357720535213648819898680633038039539053284855522653509692690165261228772432140224558275788351658307618651273003869404231485763671830794655006600817119516483420409219525296156945111420754718599572382034948303862790468258186782998930121788309503811955676869909450372015348689849114987406739283980631079067769683454507048683564264165158447562269930554964714038590596234174382635452268758796491966085755263800828904546424558778360914034513583432388933134640228418548765762020806321755137133636957091267153979162572709044050057363786135916853417417451568258541141381572047826039819461962210912017087160215437686445345487165327978674966340189680625870619292976271962662154836593326561904017637465098052843653607848733588255683860569373475432709424727899732247789793983023949461482960504961540950310444874505586189466777861339112840664828599663639780702343660287377830669045733287109218178051006529494147284472074775269177614729779302734407296467104341384426899235702855810333284379475399341319130678567434567032033730925472101823206633079790310258140270421015171295792648712315480995536445099821258041653339545523737203709675562267110695885383948600255887941529880615417903419070582384670147624323387354696784795400765671800407252711086137467528936634712921267462270514237938156221438541852122263137116414226176846696679658772169925157997185602984971198529969910808216926653962362450530380197993909467357612650138251842677672690016953680498158605014478076786725226726527058177496702005495429468285065058557739703737597055193728878133193659445423857682279580382084563100580106269852464730692893483308738862315670074122040178933855433031450335243909596319046522180866450755950045089626557501533747689393175437940571276205114839744581480315464396010010409393746219212191247337834125907174056605525649654165308498766610495704732444995737095395982101793656180663236064214582808753033139711511619603832899368629274753000467437277330154350008920120372695775109130307674072850645470842470713913416901781212547303389160009321618917773116167214346468110815736547700732720953514420483816213793366789763158194968473635069074781505646036237795046530716484861790831868959598860504934009057102519602559207959914077063098536378957001755729111033333622933355572881280881475400004532881266764081446449216551251181087940933594963061731070105149547615799263039978141471097829241955536612716218873360734072113102148480661226040320211923879900800569714806302189507167214699804924120478744901153774094223072781815421260348390305184041434601624538100152076279064379805442585842176931499707107112121658469332672220818592142279053025236388088265345029096435724058149717097920291219631402059657697623502350513259920555422269293156960598726095957172180864004607356390234796234370996824379270007610888114552479883151592097354840219342722157824035411607433170953807075608136618544248866131644950002247837560215929888974886060192669350617319986896119502898405425743113683616585471723932903950662786767252001637148001292089853611410227077562195469737025729263809833913198315201550081193470261608400874856266566090681081726997585369473822018346618733083898960825414669376498285297382002438353266522658475316654103901641311193520204653270554349737600299941954849532979448619146514557531172606131134011266948847869918228587626009324758951233463758696738697587974615722717175964381239353625706480053129285755320081683709149717719543000325358035914314426288275946174347697490796088047605476785083924338121044291518468559592686616655562302885078905790895743069741890478840198841915642384035960464771071836378678354544010949577414470418596197493726066234160629149094591725516668775226678635813601217103537451722417222466115817551379129728704042561868992161278111718864810615690450233464067687373441384409267120941956620329292995982876905022004908984331400663280464812255275057816426208972729628698043355943328977561325007867265287129634076273555022370612728036853047722763073648255526818873455540010087479063429955479114283561554088498448587640660657358600766084500358357962228859867488211431480241966503306775334721423963732429918804530564174604506805631380730118150746605144054147214474720394480979669284856936937498960670300751812900552189274400314843642682207014311817659542521951656914485913395913869508147195443153020015669192627209811164874837573036134982788651631187775019471991577409210422391782357473445452889265551896496519093137855769353806728124295115491946509546942569993723551171317451326576750100996089500487029814873595385722827399330645099698957326361363620958048864182501504393764194033556203681573524368990641586527687041532438008965090877153486512458078282142632560544539300929520469252050805986383743182093933825993052678657423701235247029398197483343608645906798531826904555335849668249877981960100672936843655975566477664491010298443980451204720910168075303554533668888467028163024904429628144908553413413121167135681931278484952782538534313970209403666789891099077606219324219805403681617178756724384539498096790512841952155621428506272044165963619074500060107628808471476622605998858212784752873616457050407645324468473474549229003796977375681491493891910661631260569379981744311637266161181598655733425741678973772766934045405191360242717028087327003765324829668717842234559598344088394271512480555605370661208877797897503068315008165654603214950924430476639023792857044812058173301858603617618503808472800875390495265791595639259868789648014708076429327475644523164803550568388258680529830245607255950945907402527109140126178247270802189225857781332997144664814125454392702499720470722566565569525805710804562037309245584823366796724421579586976117800054811267151129933728557090441072413656476806489435432819331050933251581535557128865925135405553492277228654188939491736701629228232157557819443045360698520092227772352770810428729419908888313109988606937285148889906469404749398512477543270765334453710875804100044351582611053375960277717353479338616631512105544343636345339962428440126536871033174476236224815440171617353391907961551453115217502452726475310054735421413201070641104987573109053760430915650187552963074579583927591645194138875636116732838921055120974177963398341441693315851492369685815729290248442113618271348829774708192128531753637721283298522312796802265185962492951539123693497800474288859062904366721118696928252176231098808276034182380486426768550420689370325593319826874885720251895384346792046257401942112146025252093089373014363696917442948843371469612136881296664432235284598627494888703603256528743571616639304391655940414490368802539832116020924220155883645289378220716993198147373578816903464718686810606451042400085857469375341254383410244972591426291913921054522287744907216407236133209131935899551506931745732594849080184390841147694667663788673470848924225820734758274801186813888373823048283321204545578444648791314714522840274606585625286360942236234032021874052764243685430347944896290359351857137455222083740158234992821277584394052325368557687103043810032384159269469934756991688357348819436955286340669010959572832692384654035836191291274909022364204080774466901898030901140398258417440814573397399018755803417068206479588586930852442243554880499967488489959133253385635013227639853125633266395907489342745869470482656117911459445780758951535298472124807346988288508401528622416371611853877451783415996218494136805650707799549745361568614358260712885789405910227003429734215241483980880580064273792776548845157323594654235279288316295676253822716775801319909596856941984180258173009060183527247311442023695786768210097524059866403184281739278089525286185502075126266197584767939781173602501629560406707368944716440633626247759950474702170044957538704039560389779488678745067654929773383181677095308836410585631414015089971974555925651487280193910028253700372268997177390131079755528503939764787145410794737211411267662841118664899340549673699988104883844068461407804398268054767116713007971461799926431213059647798409690050103469221832173876785541425450134996736970944281249692151126393202364288186441892807638909578730566929679282446377538621532005955772404336653282784450963355174076420329174821619535692511329758288280816523747872664663791658550295177179840734071094305832955553906726736886013656930252572050482486738129325096692571662954514394087706390246243639797880226907657820679801528786308693036121509466653163775315987560811855299317153020244811748263164431089974549952309625410628279374588545845056391023105607751868348971477679483862621108748987953508890814222410746947794075062832259749656934315477999105044409164566348128474281105815279652401409423755637737730310333168109183987731199049888000754238583713052797262270976366304997301269934484929777981283342463690297312371479324075557624744611036548308332429282193685384357700283200740082962895602433619071481993400211501899722644488724084242896296107205966565632590760775508742874084169601512907164142274513890350621965032792811661978006237620979214745429515204427764062996754666366225072038799888941783265128982656557665519900935389243237040242744306729907653397583081570712983749843798416775411638574244354635116157943879510649802834111698210508898038517431477156274992499460684148075602425249573083385959957548581085359428928701860135805647180778358518640338593049855675498127301042974916380905240153286460071792157491419759656395888432864432715306909994905335019076160053348043846695732399091363229680652467800664315768323590101707559744096029772145269858065687341244984397541971431679627164145233644755265908628234761073627103451149126512848066261995484220071101230242637511812885811003199432320761674580407756848192710014369177351547392419499192965109364963277427829017373811517808104299493125841572918423937915176338395653980638689675204483209067438415654434626107310624424507318353071106516870132388610673051343207042054028357381123426652091695020668402073620383026834642433894711070733166074907717222939181995452588707534241369848894628161934975850362463116262186278085416907827513307684657902004246523610351515904897053728655868480711598450782331380935194199265859718209963856159783219969966614000758283053367281950014964239010843173816287070079502225195056740569684966065605783810692610214165049847538009816370903845099408830744969268262142381853986194150904254792573522988107832890158224441810743149200401962333868344879061504379626004731050016189681627685358988950923323264099494250126293096473705306881251229546443189620322003406810024611061309283226374749358752206278307714854551518907526333343328694670530488463086204897131976627038697916858896459865535102098378786186616680187018376396632951935491525296958570735581254622882731621795215474613520883288154398049850165311395410612959037951404621589470297289173721118713482607053589011659339022128934690926933394453897311126906791958307196942239752498335969750220275004368610061423759416701693730030493980757421075789057170896863234185073514848278638237555813275236016986169725620715309708418906923416584212114300623847432103327828287132905699826425312664387352847757768819792097503699255592746411182194212192594652982194072944663086064629757110394129649357070964496377718177256951869079546911744376676306005390469969376226894052560370772775106011553240990347152482640160297925423257374829497798325163108610332329847845706389197136869799832232555718759255158080227869326161538868722803191434896775946650035984523644071520925043047769556884410789414072307190586807073942883775876560580139438429771951212573118648100994222099002004390175693659006304048426580159737496057539975366687116622225518521495933399231670982296043022338590520809296595912048357205054503019750018114517283916129468296674579289701935910036756248821649760815281601501302715957180663708032737186082543471964086005052898519244782510255479885612027030078916577260925424287912017183554264635300223551265628797528434948622055790521795649349436230318058507353651403769317547449144375242735749317778506270374091229573672202365277168864375993823376516741271176939222089004492933712290026683572893882087988764719156030068786823996110511172562846820445197798530613065975886495885048606347192994397428351159035821043334028842778127836209675126326402275153013290373017060086161223626026664567840294969351852466831887157924234534759501146646903276985086988143807848847886679975710420175863092380666864972421079138247431166386308389715581513142765729261084951037953962464285643575332494293586203983723996574332815994168726850387817189717752380235664731989267386951354222848227396169415238538496964267818988983131906102282724582107406379515541924007454403347347306167151180410867055011175716169275237687480342654764771473537254396436528751878741827812400961315182340576631247646713896543208026822452747181773914229625106985463754056066103594433465725451121537182459187038041884182545699525034564612402716311088875975450691691846222944580919742438331654140923553426676342868964654237244149321465706583683217116715981072320366416895883957189111616567694439556717327814373823316883748394510832671657078512727034754334394213749473189248882550039691207517313123556134057334172273251033096122235321323647680351288722940488748794632181021902206530996215706903487241271336731067041106497987833854333791241636465809288244854989372526330809743751482767551690745570119539432740466971603609615719175645752316131705380057946772621869300682111516571471660328295821361686484996524061911379021632373397973508964865718362184516484388536919658521200024906093918274144926734776794188824261764871823019554831274480670036665586696219697126599933360102386256639617833246731196138206766374620277023378262126600619449662367827136900701202031245670465479118076038820181728956286658612477365567396369351741348113941519792572061958561487679250625745018865425660836082898777704315422333544551344316497453670737341613873610409882398018463765188666578713563130131004754297161429935500502415918141819726450881083645325671544434531275466471087936271649161570643953982769253419214601845675581432066359741380737477505564642685028081384566192570013919369081734990443953605948480636984484197871713582146429222782438430627953384371567072050288743316415429693324881713429562456668534808869626794771059668256838595394830532486901609585430998961574934440134205374261239530809933574505451804495730337432989150404550638502867378480965873668573824804516573876224025746410746798149030837811042256032457409590771796698573087141719601656062647855798402949389074139462224925313332411566782780536501857986969266845392455526369728134256227056113773353826572730058092060339071944845044051586533085628747317944792355621447235296727592625295163916666505281303827093855027728163669837730473790426273443751240095550185426153318049442213058643057791449052516519547865000699199007015149464300444871312922263753249724207603755746059271306759618357473347464624625771029576822626355182923772560745797448089607083247169233280082013476813670563118943769509871814119174167144744596522466503795800808310407608653219937009659888682940865295081360272333710229870551317324655114482465746675298468671392199618085402632729085640306991203828361418785997445051250284255231912640385802590717929997779144798886267692005809064045982059354644604739938861978127826230243939040584105930202398137581206865456225200770454601823610659274498416044622345497256799952826317309261566993286965854237613189454969942950862852134645843958489985967556431544923166052232515730824244570163065400733232981195221470442220935758623368985803039998428508225919576831374173180250710846616663261076585065767348503427246269596573050088229870200117205514099849951840411698034935047270145650856873964287107805609767025492618593846510210133939542715872537304149887118897562524711270803102810686886038706222792515597297378191324816475113513266129153197926212706805450391397043012512259273048546812670046184828451826794138319063968932331116521892521847875235429848987905311567687379671768014334982853717805946008080779516252792677971976221008030501501834762646771152364680553571017945392316112934609551098293092677361074384587195919246096087993271117522918109188900810650961010764461171177847717452900672767131217684731801686749209565919172836099233954020383146069626171203326212107418114618174142504862145177852600832906445100253582886373641524190293037184987501062255688580779262737712013998775060070716700428037795871562303135975335799626387590400541342807483910117183092346401434217720886457684153686285046677524159809024117436937258612989661368556221448910083813503652968995908824109039858436491365106141796085391171468358036098085495277917510112660430605174133574739238098402546699169015589995800305786639607520012737041600583854213413885869775486687075076015274722725250829149383451051062220596074361134375289922720946949768732897608977166528266434954131365409297834620372695937674481220278452442941556054820338441004126513162576385908557693944250396511034542886138707277413413407401307045693372011752846825342806510336247144660115628772570219319564988118150166530789412966357583327248726412929156235909399567353031528713634159050067422653813310140626846237253017161744455732738324618615595419692930603640456604705495207353610553964766517920631229243245751875329599921855954577396254552350328075235062077502735322156823151454176023456951456034798062649652996783410539246585419067664013713279740744699705632105957236201533521241868519327269196396695962903305345330963206403461801521195014083939334121713791678424548293506578788412096114967465278436194468417394020303593707272534614875787810046156958915923601730293138285779358045371051366351200772246114041441349360978762750673490250234005519638197607253470696096995020658284398787184566519405369149881421508648739000753894936931111423452057894544729556378789125294650048879787826765689023181961055913475004473211230014876862024998029672777131418179714725422198858689226311178538758340241860810847899521158005067190591886741462488770632157986847723632893601267527084088507980896714264313672500617009859402134246991854496703045437911473643171782000246656856062727563487308677288263509821734470667084125524826002145898710612175256617474861587590545617561105734748394774730467403543335646595035759721900842996702318632854594352545362810406035281523570774959114513371112756410859052091786935593479226507767189431004743383513214425634337757044981899818040004108749888607860751135584871035846149964522592033386738758681707548515116866854146039740543227137204602056749018489585281091489948098547345325613194643406668742830945556811194768673446784056381778179821786936287428607626181891691908564094787513194281441700181579069884653144706818544391373470070311925367503875844234344599101794470305295190933319049193369070363873829209689892746536222482422236489982275798109844778523328732022164047357419459625509388654771116389397032773435486909753518701354341449524969191943706739851766951354471250279822520100104342690837125599743566576062452115956055742350409165347782565529501707622461182824621879877656056649016642495566711017098480849798398973356027079621703306718717971691310924912741470699456011456559812118485242313047002677292009359450882095561268997582141782032651612154093383773067278903309953517703484677197810460686659119019856847139203896788386636205988204972912813097584884929679069767529047101283310999199443717773196766512668343819991952808759772776804038805123798599431910463255856419227658221573290413871670967759033275604652672437477522387106645417956262216041373938233014407104646270766260580286068859545508075657852877066677923562432074733140225920871395758859484332246367402704819329122537158674705976511590196721774286220872914023016689614601810357698768594184291299395988096347009964855765981057643117354070763469437782302962249631044434312800745552255987979429874472263231403784964136402805572252663902577082416577181195286191718793785025859467390654880622006340793329480086606918248584595641469383967383958271281958705124556009045705793234338472133562910089150243944826006857902272077055789739781082461049269021118655674427033675695256825185682906274308358583216015871311278765218332332662436757105018722310624242631362210097707611456933565760498414282152428950884166449894637553144827742655707763333233647034211047298411760812331751336091694485635708604729675299409051992916681316829148465964164059195777837187966954821717724118597922589591176673084893120248221374136775496438941314762975715672672863496770726203043025959742895278959015754834100942684523577034536275223897591301867557984877153981012286661221550400302638761290888365231945885008277161284207521118665659451517324744798660886546816545467334340883575082049317270663595366380900865503211221756955568630666772194364958482287905620648851261026709545849124260713441753958747195283125626568122813735460516287158162850351567397537475951083361191276224592483606194577148690314100996551653393164730334690218634138435341195989947760718523476268179851144947765153617477986991745995717270336394491971727905225253163877349351278324011874746194226070307168262681542236335479060684379778958123013611340253659870047718619933825802817531586841794803478194386699860862320554992678429478957220529499256478912252531265277300173196907529433419954312825310536930489864079268857119357311791729440906047260645792947729712259466393904044145281100703604287741703837255776860524553013060091251011502647444101149341415796886009319994554597545983194522634026642155803636258734142000808323648023438498428189329543373713791957494811260462200182141869918108274897759408674873626579456958994622863735784705916119507186159452656898347482759695821328560253064030011087589028348074884139655807933742707840179281127407334157458567004652455128945445381494351030793302349410160897975301757879194938786357035167874120115726759534227192634141140535229653299728126482052862383236793824150978163930643286481041460522487748311318506202850544194829098594169821832343607261100871572781432049139510845875219932873100639968199685809006554741832251263376704157043733242088037837603786360710224849389410881204823713868576351405765662778374955252543521824362887452189529120495514490152428508272884299707377133156594415756202035208818588189852006078468041449434627604267117745028560091813900683742339085033240782946557457193898198867931687483921797257833619026288851630554273616355682776667398556830629667928404958434743482954357742179547824472104812411284675917042178056555571056775284591500495942602131162121905921099229943423242684941264045811562632105000263575410608097765623885020652847302596500992543470083946266390100896657782206600455860475192954153635199157660166041967270243759545534271430008932053624613910362901106569870026459590372667127968406040872550521691530925632623839624388720448849025046249623820380631687862644614477977819522448624622941199999937526056468332101204446404199548573262979903491554532450559494904604468827110608159067120389950927568415725724109252922093449752125142543943847025027284620696532723731195811021564030367774385631357159524549272022427888681422967151831554192809772231410695964901538383638366635803762725054157131789829379423945810831514477374512943494156292904737642972973176167069320846771979466184354407117146384553071788484536655163131118292864496675364513519742719360692845773343306964156821856268381558788012757051640563526132753198626707647753084825835647985445233988196355011981605501509312529210641304339675538782102783350283650020021177474235934917084995212968764208449844171158118933513536301625385743106891545580269564228967138256650356606847115228727704763687356601968556730768830676232146913073666191310197659388964647484958434207847189743410114630392169559785497300384248330937138928237475201011053793704959176723577544816726677083658495124740200265280564276371666615214235920655657692216476381005825305787373409130963134674736109879001116118041417816791146880443705352992208798493776036878058892045792282351846315875611947027771169320205960213502427167983937337882272348997787705923042692359775591285647032315607144555047231270636194141120968322396274693534718297282511592965190628917442219614299097069408315200767360276173294532295249994523782495069781734595840827000883182188159194051240113004295883886711512885382715616181242664213022908364870216953948217075318629624475058236104227729352165562229876184400032564042403143434557278805895104353278341647841319025472199880700289354300131670340134552736329315083073409729058524958278182905914397259276601582037944008553532397446065597315216297609196661275059087325248090874379615562717126164767830590248700515803675640075694557447905683521841754732244611634152180174526727858347956440278066453305137921779126717047453152247685954210943283745873868319696128188677765012065099914060409465681117277859928861377884455741998323332335767080640855253162637176230278041616915761438433268193890524343786770804003350194125361946802052157068161368811682979073773148033653613667159602203070046965055247112068961131318298403859333117864667192680311262526492693061129423999211894370869213849529268048557955204532755568401280813251370588648145307889067306540645970013015406604774734113084234548620686244185953134950152178368558057528303283210262576187107914875767499032694648657836098479478705002650920061737609803528785848947160527962638981919405571250577038601878453394432693599730227774492778049704067049756481198233295124586573909097698709136819944575154555246209059200209491386312618161917426452098887320556476893245642356355562274867002468969775034258331513599947527691384236365302357455482351527787732023388216006469045808344358006052391065527665867246492902358433218584896611143205039900628519551389446969066524638232797715438263059672141564437089820188829639673106062985090989992364751643047247983517285207020906629565156159249685737620556613183826209391272991204568776691365139566377380008129652970474355116707351894153270391773653307381249653341426721819677867304756881151648241518852669857140650760775559510038890864080208645407036304902257381950888139639410079262548282091021121473852048701084824208427638758295245068521655773090997408984052118977915138389109042915376932045732344670737367365398922973468563574283332877984202195147179497542956011041415267369843599003330812484641352467535071673666779691092518254651859028864434080065577378030671948096363396843946574171871154754715949539052335231152217738826934335955949333196318944053545557546846818906078099627930988441853863066472772304442111690111691100484941019932287598144937168304242952951624589537498987714363783280073275792112722873654773463931922503650311916914960564806672838970246753356032227731848862153711276213929998869519094744357272185812610495024042837379049134912538622756086336533142955718344384892738234217751963548100359593613886045436725202217741683020801225355130795243314723054435224481172742024467586855197628182494344945951657426534822345044880548863107436679108972505426617764170680549937680654829793858571915356382725237779899602170384634439659543534052765500566947385706005227233733721124500957709082467745169880547536227692834809747128435082865864519578328878283755100756354712407836020013895703540785279937024482790432161869346723224556519000345762028830765173078775455974675719621724688095973440542887252046696053034171703759059121033109885239406847968449084489803907767239572261577641338049408890531460043803900821584884143888449784605418120097923417140198437550491417280688614717977454293306571832833291296100104948365193417633035714805596975640973947812625492486947179061116954758139100908827935536839847964739334713310327267217582094915502852170587996940822309611491660285249247221591022340694724788156589217924435405644186795271200418117113712387362162076124617555983166260705106742524465285331732051130386492794802223264193360864138492787781627704317806355535928826232531024540187729315714423997490799529691001364152085349739554316294409681172054843581256667120389305093786355678712628247227931973871601523579285153183419082877146167168997881067259287187857415982522747242099939206318274413135698906500224347962662492902311077504601150534063783800020108830249792628828905566806330005314178162916653812759102180366340203723704269788549548737318282705224313280871776736065617674044365004562492257461859689532955828502493533490164506508203177254635401363652415856210936211751367704110746104438199925565936445553669032191046450068187040168730673495221594387947675871419731402385375889008854883870019335682861446044030035087555827968596903886908747724013097484964844390261568357487527690262331919544084880281267816267441968783577511297102157321301512917132446061123840157296145411267047363106222538031858962223838586044745809199728963125689061113914451088352442257885292511268075191345345449124091463039824318679390058279032205272048734052057369156266685727322630186010175702826288026153736718386245356175172339341334684206644163175836247472091418214402526111892201665585857998161688857680520696081985103572496591244685195960069330192809431654298118851143700575620278958703561448531660447536951395113354685699468576254353401198962948804117737632830675775680358458301775310113495061401005455223256765736713258556625311654313600097694864884062439947025478798555666792696440684789685307618533744030602774213684112112268565849099803159430515044862090023747294399827149302740142257381073454219177032329213088990644049883360658799996187682010888100085365151814687240685084456528532158172198754717813561613060427440638886915710441250608651451637626075058681739229725343513692217310111279810049299539707291089997022075123744587870203690110257965186856447925009235231698365214690912763434933532456526250460449657968838112173394191799898281729047549382557873031246651305806027067003019524163768573785031547363583854261680443442037025328614224679854409186804333800514122853310099988198758552757247435822371976313558013293550659695708651809102201404626889945843428152137053044700079703569122438462838260462694493207352445544231969882457444014769078618191779499237400756891934303273619864233055098487699386198404692119898311273795969705300171301702631126323536709252618921832549731064484889945776572902453013317596845157816982058691141618243139000223973034655817137609890056805238308614024271415910560647159671984207464217227513854746164603490361210136365468828391591044763851136314036780809603988194861946584033841672537634034298473308809702036771020131701635550206780507945321840813314366732622207050797843982341878431966215588533905096316992559034107834694813544484347949863280740939877549113890465632099156283797722767340083674710254677152043859810556562674831791654700922725831717764865605258703545223231345501170650603760931782698516070328152127961643481954553557044768893636577205044811688613173581993488191346639348268511484791768365000842248214613138994463774839769360187627523491107439901512914561710232794104419613829651844947691031819720490402879235322797196772348314300025100633821387869464730389860894751403085604599495896356188940282464362708620035590636207253559616647421643177842324350893621916252744442276464017746881780460249499634313583351833548413686229935141675683199981330597647012095474255118212004570796783863904763550468564925289938502535308408203868591559555442012352624757784016755670641661400995941290048898255105293475623463439849034735526706374305936769486155165165873258979865559288706612098985771568922403596739220797315185852532203324334446135098793130848612492607350490904786250325835379728035544154229997863787922169994729952509018988770824680327686637292005993079065854357977655986245860444031277505005022665134108761205236575070883601905751070895440060331098502992386084563297794029186743576408035844898532835564607123934788105725199013440741718012887970470083223223358676252458474388440231214483431421985084947948667179457219997484690333740768009774061852329178127797306498733021981615051337228515756878209392680999514950579195996899742803389993809611072737676295632715347284849739705846145656231820560451548960417873480503857898878760255534342598699087817860165747850880547981319232280516907452318282560630857052450304112896730768206253784102299832924720035727117392031383898964423791740670018786970477960313012484081151188370897323867863711623050330553773234016036945173953877290758091748168643254920853884329783703000331805411507515850519690430345165036414500032762481020145783286348266036490544587846664674271154491638683768279079244412304706603467757392601906618984661799571293191328556950897630351711298403371318461256792073743338233043816432022191807842490112581081388234170848390952165043443771704488495860689967517008476035985159283839163362905569659719524165387275546427273563101944670388744376151343686370697448440329838551502935533280020489944454212739404771926735084619156785864019249024294368041607054391976842894839244700755355002805424940256827015967732111324261461025919739038386835248194911437483141068438453834274426161797246959284935376336138842594775879459556775295009193441882342061153110437829064315891422669072646247847785008037845155151281362122769239038373866391335549350828186727024147854261656712364756456932182504146886563309277520603651024201832060225726356004691827835500850108018401407612443549543348796056015661650279654721047442294836590536426799648394455979874007048083121057652395700308929517110537658726838098204786847365464161012662400344055815351378245104496830480426295773402380691668204405695984687593845315959367963904535303233484403967102853829985453079734754953228982624799541307597917548894686233044752779307714663832253049178637776040101869703829138595630370376882651835654868108508207202686697843949483627405610814325778389623906223360582415221203414337406964915295468148613295085629904543401362012484469059689574743406496479399028385986617903840245943316959143949633141933898181701677013550424262795266061957712416936799302062859437961123906798749061413491817527969115117687620059284307608781674431290652366661739145068214861092821894901553774152753632499598365200076586120630521108020549077502751305496583946626430467170595960101210967062438691778984579031747316451646725132148014823580748488644495442157408364391515077803576973411637633271510802683602252932319518189585712472114217347201099691766883881211189391256136206117546225668274654329283694700538627984284898181933775738037635536611184720063542046641587793263568123628880599806884349494560996149572234497367614822642361498866782022134931357409284202899031477552156157045972676391560589054033882253936034930243943105747271495106934250811355708558652420850671022278360947595385551273197405365073998844560372089612899193425116437450857420866273803817949889544141938725624756053474159271439119708563872573069337379026253315794826828203342331796394164917783278364057808190184655568411499037489979700427735948410212359754769508710209735244023688438757212458288346251912996338388728512733901082732342738587783958287109294868326637513626622915513113177643369566026646663711868883256757606803072895704848150095544463401610719317682347484693539595093869073556002754084390045460846659879423026545521160865923345320573105710066464165474620194371724755820020772249652016662026646386295841650831580955076905609952532748956782063356927533603296943154425720786216717648965834992731242510054229759984771791000031658931554980245459654061108666536911217235799337062990510476627273636968568530092910668697449023409569411520821652015991407313040178445549880701854586931463715578138719492816207773364014753285573420784216170704998056572381263874640988617551402335378176492293023691836454970126956564501091883695690825508295622616259732314133874523101544038012852917289158125229508813019693994149318074385827392052333218346625583804840430726489281691382386032948615673441234757339025241646657954264314683845473497152635125264071374723407354064498188998653249071908208511546099440116480409659934485424488866975220822929359624622008388088082817403468809510565158415926546119017550217087119123580854535792814287157486898286132660487303194191386847764536250665631240068600864992164285831065481492006581775393347871040370501122694241088446393343343795009712868267170442688956034234126732562129142441653028888214640397890205093335162463528018955502307539561032346870868270055659348023373924780896258660449918513300797357254911954834069367617327592148176886565339158680899467633582213334103150896921241186250590689237717108729192931771435389353953664460187391309826302935069494846787033867766655146166503747653231390679323112776365486341830058211601893184082066664278791085167188628715378224263660278964215974595171977660144641978273438556465957741918451503926258469879108188212152212545472833490252845364225523726164242551684733526327774086356034150275284860466045501392217005499252583918356583799989745658646983894354137030295667941905912111034812228206218349994825206445342096224708236686406719442507591443947662080947540342560682820545946372426365992947188204394756958981227585392517201909448361125281018526308031480229034606302910952652357145256681796356747801263818821604291861373422701890580050802223763906197485176475895419211553328851891084600168945732724777163018967976149243980066642321947450878293369554003074871576633976220580070994288184972181003281624355208369609506906883027444563401794409242860388488447236659513801627608661199862991450192400855876461940354758301711017233974580227892759989124973381949126025972730159364348618489216638263784221710652291292761573291354898625707903913331374399219259726840657019200733266993353329321447838090745073582350544107650355607491516571951267151916189646241253247641877501769813608529051905643526041841620979014682844398310050960339983167100104185856731697231189626144877399280126051403704636412851055288963528248971727884777429468815311198950228432641816409530176336005919709431331874028236032382847669053955061745592627159135459557575545876979647673173041273377129918334634470511140097845594617626654586473988595847538427037621533744035405123208844348844753365835818900846096750644546342619313365047211604384934740721233884058225887057923487181120808030098291436060466225159692270355466639615100209451384504535409817919803508769352901735178253148206579420013469828231701643386310582321877537627425764841418165575924719461972681555745747850415762875120935103229102492157199025203650068873534446326698335804863284746664120055615093070555887238204969112435251280712860961584117456860019540886993532887300161927033421057831464832826783629441225907938221903065594161083114939770630725076504985944387250525543240670662100958568509293511785386726902442909564330375194335754823511960202950615467463497834589478124302159650840764846720286027422861403188132047155011696986042001611967912762256803713786908008640069394960905087760886139451801599838714304916330570652512502714120228996000836271204381120390123636852199766729573201022622091118848506922329342933207956800018439368156239907240372363720731026054791415956541772720998254669708318330276286929703779649707611422668713588040686778133292267837298024934147833337817097803606600209296963535009418923289752757460536302003127227871034436234903693510800491701494593293815097272832985362686095968652359786508304588374610867990003162343848892374085183775281382249676432851828069014282201104332313599388127467310678145649745488358058121217239967055807970464694898300233685537545617978438936935081375574978653761577438903762712586144370973239126858589528270980480690709322435911568674316738594506653860679578643328425609882202751648338913158396964211165362568486497961787738529450779207433249984518500154768297905888211132457234212154126057389099656528447852373137755873650938808334243986844649812994603733651485451785664655644999742046775029157888913880048863581626594506241862119160219430627185839609651970286180473940835272615461266980687450363483672389889312774625079123845349997970274856257091961375086120442522036928144453859194402180240450829469849955735340038470626477277637400740566879744442669794167945749727607164967152845284380940269355600523851726669597697555021410150250673091567951381901684187832375196441034757094253123398295602816464655527038906833171062440912969721668365087481325613796757431121456372030082903079902255531507656094542072947440238527133406894498651767773661816422288824907421930221013753545425226386469439829518745715457109415358488448867250488779307817667446297512899817001950665836355215033570477069850046529378714310040525402811784262119963149183990142374842149074425092628198454233569360975715043684162597911213251472469839097255959420711015387643414499470083407471729192990952098397814379680593617804168341781626927132386641057851372192515283122707228048438039767373317974897315045790861070561084017669994976548358391750208829114204763311095286553735806235025416308023510955682248086951356087582483493598937760902834565421603985915374326797313945035340360141785076665921284386024083578784719164280797252930620515416416969114568280458494100425492246026941811511586097750117480989445947077545763250887232818294263340464591830641151543109317727703305321480496964322811292746880484350241836012177339898251184847919896033697964834363557557931726546416041462796072004017736584378882545047398316982827686454424696067795452829017961116029435179424393285484444919566745890155005773776622863509621099677930355131335950753111528532183747140579148992224522989212278158114707585174315247492627438341255409857503818832809430551593398448391099363723474018637643301916503351059096133557366934549403578059648085081981540086218068363324562350656014807383189897725982465905387448789616144882164308879189851510207526523090003386723251061153206129924421690571277594466484581707099915473254557825420212729612648811037313573133816938572058048328429178677073192919740766958551819534584165414912324241772905610334189033811070322239763737170799349811808093814735500117487884876474394728837755559642511042878587968284946821227253461922081936402476342870317178436723704671676823641415972698348341128727627487997710718370083748612508225409312550931691811439527645696375929437610639533338421226555451574859254489695884434726093206472461522033169814259683419012235968846244618303264370394758909898591068986543443834673919698667736441813962878736240636706195718873124387566078450816216429171729220416784006170203161051386946549804827274988004756692841573731877922768099872651712270349239510824930045594174937122078731211302972129090996785900388782397165480039068275329558983728549902864054217931167791440758998878299160763403619795918801534689417183154350643788680320232616795509900836601949094004904819972301336234741487537528039860128545675717100753286303383189715590373153999399854812163689784248558544136369871151939087445912201352015660723202597968020586067200251324239872716741986894715544096748664458983025777459880686820446179115861788377768281678673921201556184539380703287330898360280838690101191072761472788037360022514102541291648909910166300825364148017400261773249260653553852495641632040951764101160078535205519682138295641881913965526866048855029451713881932141583787545179388691100204535853727038977866197074677831259648357566622839755893966957413486693000636329206329352020884249777019438668703961182215925681941248654664903682794606170422802430788189354772242502232354943478734023845216899685760249816672641860493255907262861293531591546721167972414393622806813312495157924301235717006757266401493608373727761345815130408420564481365132352073221666117242993182178445608624862985888732079029866359429268117426547587896446153025273387153831626859593907424015445725256661772891639578254661618868361384266016655478567860051493779145637943561978770247510539059393816738719202014604227102377065665047857061770642404173412191171547248904699660059025179760113732428331368823522069058074437090274344402332248884500973407607680995405944514488622469587424361234470904838330854694920585078865494684875314702979419325568007104043895659512656658067229552063832096491587028166356882964592704519759982294515153337821060472492435748003436410647626019999170953649926208378125828347704642729779551154902955660999105411037890181908242324325557388712041583705245947239845985335020629892011866809818084504234478289144425813050885429146827293933911263642008634883148632469388364784565934505330125960270670263693227168142545751204137823792430827128955516349855665495302849385199511311613743865063698259085290191937914734842497002570017036484645184205491791176619934943242038884837541440623609357671085547352485407668046528803442290865902573823171346404370912375553768278630906808108522086149665473535160743508605557394493321464208758318518597891501108243669676088199597818865560868971436598675567045881885025471822784299958830622790267267046113883897620809415713774800025264476092696385147834380114875906329318753155173395046946031949184872327389484667038113512739979675067374484287476541883861005276301854615300723501269305384694521590064620347412867616895967350568448207273990425927777527645982332548984957609349222866003024724276192136859907724800363752412761884578063190195521570145492965924652207231288006818093314070154443075407582324577773039512506353075469685208650088624699703738927680678569087765459527624240662495683106772821761590878114389082959547457332101547684328357300363238891372300529385589114064648456298479788646374946228973318673114402872153685580516515656278737745939726999592895035312189754714545476398213898507133156840768557839312016305619254044352003427457984945320360490009323603034808281799887167781199381791332941143592858603167228340002445299528867708929283780441959745828182816742230754987611993738903920023866454439507984687306916917893104072287440809657521247509273127740052439016496275818228187174973287272468293122533319962594433901890212862560025130124775631698517092788813671264850407621386631204162815755344940165183502759656827204102284931082725969129939414424228171141967213666315811256753619030955772141268849148768549181739894935981163556600076801958632534427804875969331354043566870086267424597317769522807881670777436213010560104667777755041326037242419801992206928824708133664094315903262036284746967865315905397350600953910207814076493928883819747698026343200976529305339245170016408790179863314221472019328784943436719674015708431336285518592796282740048987347972449594096179586506765943306137519798870185917436168178717852411322636710886724012838535164054400104242213532084980716620318294471748881185722402429112697125606947927126598870322211260780785241196225520054337119249554748992159059085791436727412207629709389118671696397039549269559912585631892588944390173244819226509521759634612118867669269676771935907888723850297118329328969636763307554119843592877180744754530459105537784946648702558986012413414491025655961635776804082570142701304561146579074742515647741675111463033961663520445190415609853649055551176597145189158385283309196492318547221844273785117191239492995224975322353426845383029998708965328431210811731828392163356474788957690091654222311835402277901314893341098401399882609242342949992260051833455822381503356059834150179034222154822646318171847603996038837776508497340884428603369413137344512931569845973038134348131892980684135891481303038371239654319422180993122216027197208324297801331660034255000143376799996183477865723613574076525631311173117770965759318325644854617336206677438193446772227812911707970952721385401335341505294591174897513326623216802129003608673413694426835292516166677866950617852453075403623070102437167742366097009221056777554663603498566215612973637872234084757314221104720417720964134799804787889090088929562460624793603184643164585407883782265644929256177869149718788107922857480184938221310046533741082088055377138631959805032534761283443915680863872831351114479092291805592395573333279806094920553518641571993211664349283709418405254803450528285855225846835866661405285203361871626680654100656606544994254709094030138365471568106347266724457423186267977204012788528435868635416380767827507239392339410407589557433971521367983452908635834790805978631206134661331237086277423283532613013255441474268216212086538803359252953994872021018368357330883584661848811000102283517168339312731231022865595719275716928978020490915833826622327197428537455730222909366774360949833127020782717705238926667102554574337001270612159505814680291874918621326784006148953358902712381357602114507689803094027854454746103007499628287820451472355582685528185133206297253863836766639200696519210695003198651306738041227813405225858990248463011808442391233522430606468089137602947413743406859302711888715997346300145357081223927440595384896566116094562189964453639303580872555794917577378294015672212473401994642256585211852666851920937357356871055072285887427984854038910019482989118871268659420438697200769438753261901463796506860864137624485761943331325320306692423838079416141790054203114344924355357437958214324264880063642064013651071327040860538477718952759208850972587245419025059812668150344404162657266275752652110656894576553500757341657384923646000561468743521647967117508119041215427304822667328299613552722677475948256047588086897268472312140104899961494126757569859707628005926539220318342810550144625847223221915115487021488416911310661908984075290258149904930174336715854729538843886915633232927658833647237190429878796861280968663367172512121721381588113637708440620225720118085766143533722952286566050053294815902781202563998834739052125368789525590197870764726895047983568321252231499406060753484578222806121756879750776676900799810983485566588001429533452177142535004845102814695136080156187639297617898437731293226869871488642257780873989285795012465014578481925775930081839468486048432841960014923525089702111451255955602573999316834243642079068764875348698272687255564680231769387302707890606561395009603436511248601248886797741834758261466604595390544996309692169148749040481980286716713573590147936650090127830188422311703164075082623925463910773734804592512149643589110233711512663845774960664978160653085592201506606545978245452931186473545831562841267601517374964850306811275929207583613665959142819721085995804259796367449426787814001061567588912839321017326118447580252271306314683296582060311893943817958017631026253024327691712446681172205678604767543908128522507405258011011360987687097372040589778995851053499884345546110646427122095457267526499257910625274341320571961220798722324329803036554724783560201510062079179199149541465301535817788466988811114941092467109999451695640330019114709410903358407508783748454298225876780517696558422272129257874942595177482129535100614579083235267081336538505770078464536409727018400126079976787492424670865455032493998148970633330318303948387890641109241315068511977976814652420355053369443624503522065276403338776120468862772806008007163518463554647326172595866733407811390845357338266011892383740463949181605796677790589980665432090205830827208259865514478708083324817175969495950682611083337301041342792553196172604695174628559473846752262263448334088744057832970657936371556833244046150336729555028732239561365625707843680060429875870814057878562725410126150898726860006135697921290475840617018697688599035694957564774226442101882119666837427733744608105704612980461552263600298750616320046165906914465271150494420350992185436041640164946203552161234686130951497841146424426217086648129341773807510651050043634993293031805359677595486076778409513006533037462547338242055354295682571205739378613675364320217683176909202841263786876338757100545358784228582034028553965317710095429428865513553852871449881303579669571723374070978709830552930784879460819404751177707529365997344821387117783594674938188611800406536800900496890040816463782586512043645182403196067761047557624526952117235067327983679326276572454701916816354464589176140562518611991617075807129207219641732464892955225509723449862855382001137581718813003650418036735949476735354133601662718890024115260338455528189872045460791115470427468372396016459799729917993869589590407353698069009958317341501470497803861900880569824350248188846185460839810939379330217972471938886930822768380390907381249311671687253581403891757538965281311162105638563331060397352239252872177329705811887540874237502863206880269470151163865261946196017670552575905042921098743966298123799562012204749161309277883940917182415075527318078902632887767178389236564222266623873111518979679868481309842976441131883173336304171112611254650314424296868008291354947512853950639145016277387729282915915379452990988613950054474323109427086571916563033125262258274761495828521399211344100748178472347340928987359405089956446849163828603485064150084409102995847985537965696333606473445673394090722268144694869067433077889028382063365831620562114800318800900602690742640615802664118733605310384452247005336621999331789287825724855070392589585428552652785350066930476916693621535788217704575253002384750270483250661158478694527349554109970539916974010302628687309847371371422991033175493192698372422223245964944075140800788280293805833118094252704523223543333029171052957798313521505932119066844929266511840125511619842303305312594142677296989181557586253558548017044890693013642893420003133168700983521339479884408083030760104003067898960468913959400637472087835430388326157839993449719956969498980918009062121176636718111128671095554607869936823766932647310984748925621382470352036248470929885647017050062986148648247370150311891714143805517631014813785047489564070090342225648205115893273424483296722805315283904477745565563591151272686369047568536920785581007905247021669142797195831821278163393165746414523908542960797919328684982744786191224958914353131900117486057578339613696433578844025185526044913753466205337980900983141852006637219427210194479313792438389373869983660136385741580764941892711817473892658892988594254557561908522700361879352803024421037960499513608031331425159006056109436789307108553902374895630146303617289939693533069867413971587025906971990097582022921720005016027604000139404715528317008002259602507238696118739556812140465483070431383616698142997143892915307114230980045840427755231387440531426426973699848802678442902305380472423770483903401751773466478020756611334413099209639565268028308477699285731536693292126491576464507112246827097033164927130703584162681696470582087582339490039991052025095157829302438960770446953472823304080075921496820207108301164967966245962407553543387041288060917013731530730806176269348584627277554521488587368549189076420744610735549672996163340502013529047757004622286724725259470886388345331492763444138073679733209362973659128278525331080382420490952403005713039069100578561589636536735812398139750466184712270074114120291667568342740215459518028198529029738437580197921413557106389735632480846811429088852462547581032823876320778085409453552667784852082634274700375561887719963036026164876811158072016712558822158020170979881510201516182732721737587716381907530607733820528633727208810433152258865088144594338382607342075052656085673425875559045872885827584481361760972258945984330255895516781247777352810398052072781918245781585159837762878095228024048757925509217110041043264737167684120665152257353455155004706222293374645896448794175882874004684002978092280380160778405922008458364817032281845922283114121013138104611573780529577446825898137633872152699030699537742849619014184066566713855113158932360842545093674050266028804656391071079312391657602938961904826562165616829523102852430790779060999332118027272148235251035100958653421103057062211964049862829648954241255755092675211697670972984769509059591751084431718877883252661473834909167011689140777611139722100228293357904361832356557491197056469296515887149039902729743517680769916289490858703684862971287578200241158316906787840940338079401265096389901967116453769248442038183047706679985349612769015706240826893976734265372133312477453148492181852308319621365166300354198904982488325006061556538414193674497503535540674759230833521226878922009979717896344991572672720020686184101129255662232404370964085593606027719959531270846120078257111337971827549913526023238901834717616027365479249148012434553400000094419902950526753335951664505409083391652654738458855363445148974972301654098111755393190285536097709198123599264247014614966911534806447196653650186702479168467057319941134766201406122562053095058890853696774881403764490238008577031468366507402998076163384531614360065861178537373661429923709609074656347872753863870644446568449789986199830987275241689000229244115593910267393591523395472842371637774137168432687800685809010136944181322263369711699047295062837518208463013623542194543616965489871244605016566399214326062080053861149217596010777333042850203717489334109076741696497298890650860756390504140112527382932579101874540800884060660337640173370033332943466914119363080453105718894829461247952300815159148515085608153606805520594620717118563178886352888699466957680271584190122037417207851749782641024826312571156828375500808161505038005410490562918532681219804826567344675710915080957999742851230206623756444982402334763231301423491416318289703040707621037823646684260239668330867334692988615028711264330847923825005732255103924354395480064280094041402239734598046136503871772275995975224888076996696742408565522400810629718040195023154919418706882739982494909738163747607880330370364358408214212870999913319910158511042652628280972605701093714909810616215153058222022004845965519639866104026014822591085266463024382711452718367507517889897212829695051825993093875458887580974451744859820713839618699846209146859120099364011614871245911385842859295865909658403766204677108397755060188510386221118414661714200661064510940644603883904814512412798046954080392874327323291238472122498104442135465777044614072865245538332437343054689849376942255278170134783403795808110984812755868327670164271932724246668310018832478454511282376493770053098078930655317117484987417529784150538303475452224975295700415521848520768283569748655995551081954499292123755934697265198997779455923035775291919598283390869964148126843440936569924817409920289055271188403726570556522596126910403199740155312814877637998475766377147073018721287878788829629572868139385536691163623781325336640125744351944825800787052409028393028850871630194125855099261145944619929137803977879380581126445790444261742866374068129669779073807790313151836948764075473220684291654485481726677140217884844090146862068248163198089454238849687201487605245370655891237204149825494922923840948820632012719325246569784855257621195308930153540690418603163147409322364250001685834319025265360172751888294780511181532045299884597482627470333806907262589177735897903283188199597417127404620892172883254757401088346744409058678127927498785722230499525453587508626972288267494732134795332803739650310359158126633634353135509629323978663434088308716655059969833872642087452008158816747061489510677050586071906950957435973492318187637148177797622792656397867176205343586708699013062760931562434271088126852475714283212465036795309130620179827624222713396377006759429384610139513131135215921418641749996723777075450421718662040948289119295171764665344792539997848233398032647194845308347234789189034387789883464552331523346375138654059969685818486469086012496557551496151292227452908183023440671329890488782955784684321850702728098006253962558870239665926931155419588795802664652197753983926224338467760517647935343773525094801667754925158992948538086384554786304698141633722069152312870525363786782587123268026760810725935614229950503909796497892967234464045651104764166200794001563788377110604497266629129078685300038986626541929127666398623963771608855665792700945203662759722566344363471164918308053859668886943549091882803891133181617416879549806967501189269605295090578212342870268076062398468773608443680208192460501929274766344916303550257925201266970322229144044413308161122516638496382522455637047749152033876975642513795968380955216946501485056733961184770792339423090443211328294538706541192914623164969759292178238441920457476656051388685664917115024323304388619069593193445487350363123132809159132183532933399849682889430515094272057904640624929040504220238855528906471454958956020489933623458913961323693878316546611450499774277287670168015452883052975851226926723731292950166795678170070418817224824381586153780787124183242179252609561276315888751903305401938381342748294853816262370721165712623692821781641255451011663963462042084147056434118764294267963446488370882031698533969234003590818433401515561761182851656655823585362706838726458224022896522194638430853192128041106176826806713814191986194306704550765562898674418938829191266278692689845918257900097156583854778898784128431077853537485585563552107395922825039710511427659138476085083623784478717964951600247008015906121656957239373974512491214305848711537155961406593135635420548040690930858592752040959867987852572523196388220433347647055601533803947134401286849408569726081873360368766341793007698263571981780893108624843677290764914475006340636428566971055793302397270234058253694980675308239150846160356985849818522364764483453316783156577350167600250545551106047140615232608868294996137628361453077332710897901744661730515836711396527875645201978428128741828294984098046332503075342082681964501471418544993086867487530009932307562124776413851018274577447416553329820155440625246503685830559595561341062906482272322171728103005524051164671428073524823949703682498734730068807164467755397417175779967695623229497400010054995263733141652219001824058720209621826135687846419522260871158670459649336712537161918367550447835856344106179775989091500179399862177662202601747616057139216858691220294335086310680145411640739990517562854479280752979077020054630062728355984361336285172409238618806545174835282458272925619361450928932466707069050926800531140904217523241442271658698173330973054019242128386753577248067486716258295857573947964873384152290821367470979932272808659928118302219987702550298343089759300819176875912140682751405605620972761549386231335076665514129839291842369607131508385175777551584518999052332760255787432353066046884823600952376525657323652873634261721081794960922263310555026660795049091377208026221237416896768281597147464440673335476919092688539849502211858843531891507192343330565327139315751865241925383883761807572320147689491206658309362669545790767043534011282479136088277934338785973213717745516198761349556873941189777137447224685327186565233126381025666814034722839063392676049799116545836003002429597614744496021667132005671667029474540334143635582117321117782247026316426087169525514483548602596725287680981688379830340766454460108877184138108432766378382008266403982476144158905712448059546385318745596653990151014846108317167426137940417536702430879503176444086742980591732503967833222479044354908693647812017608434990911628735860621556846953333851259696873992792459247322289238603264467559499894219188297477277156683325143566726878054452523676154995310698043770699731992564693018164725101059669281226092918879775950042337017940914567823963944860020790696115384585435445209332887987831670371297774390870809294116863676879389626039395961757122297675909206181969457482205208270715767410055572691837430229234128944845890912702684777469959826585715432678574939101986776959368426113114566136723074416718919208327198014862293107228586907876299343017245019367544833183551040443282009510025255174543843717231288769394265148933904720831448104834533691268312653022757418252785343567554299098488351969527909762106869020161062966215822210649940043258485663646029779616825357370044136633858731012989180524339817108129656832990668466313189622816341714081021784924273821569385074984971021362498245592834065246364630427566679626683801113178606931175704032263823745234733479887391316297234559444154254926390847981174659094006317174986822767377225879201745462233300892324238888589411782270162970078717238274017891559582382926024999285760810319039487947448370893057339512719241140238859745781132779292387760052637739449599075521210681714509026685807211508839088636829709071832254600230364199034171273614375453388032575791471233916946060484584362914002327769077451722114567993441234729381082443530175655786074652742251181443901155841917824647850006114281414526798034926369000786165237185539893345076581086487106559690355860840507145524919098472800040961333322503892102317311377066071099088647103169837706115217150572462064115842554181213496199654863396998825684600542002425763988326520365243302637705771860678421917578020100237547880487510679252394291513478075353080498674381829301560478868096771592931971054041638596870677318378874765154680293257522722821402324627137478890764005747551448079928352205622006279725086950744455294069084847205872959678288134741083589276328377238057014218782361380181195148086278151432780987122604124743786114303667121390105054302132082015655607613101840665160173071719302925257229125567406226608302086606033598340640544747917567119884001857831277221957283706438213047286318452432540658278532374606841441025549159467703508663233026378091182357348180443654515105538605364261877157235256703272251101310665470852551273517878882798154636819375558716819829099425705186724551864771805915394772751778316748303161335212622123930658905743478873721396791183886923997671251293268520723313738683481324799210020602838831092812728074207200449486938149096483119391395217238604616224780773903203039033769620449332512153313319081270476633635541881577306776695795740299330258631340586851626860318877451959984578783332631354098838999805551512915433466489763055714817134369611989702298981433320452931894000011002775119364656975920826784687967584764808971543217893792430506459481838634567111593251443498322432893220608244790032285334075664446619023439283172711463074571351464282386587129360740902463103631416416279081553916071242212040744502540312693144430328793248872962225496515031736646484017423494282614032103706042894820455181435084168443832268624709670477231536166704753785310521287064889749839405237299473935707156618874463513753818383497323837643776547361620680755031368549185839663255752525612751351238593231558332372970526805549275562575462683633439622303135280175817617836092743925020863383333832802433682677135723903758804620620892099087258702973890458243086706691107906990958314818244126741189953449310352027023119758472571247392924329114216599307481690479586584970220714580286487934933520203080705915969430728555144944365810500978788620515734276602930977322409558455397260911934617543403537443487418185080203774808575356813473177583158557907302025451959260408974945330998273600456507224702570404276245051788463482047466515174438415711314679390872900732611478260218772156452218280223280344614201908263306239031518225417326799503280174406502559572234416590792770948208181505137628953891630384911311976426095142130599453762699328818499456754227165989037210380097180248838697746897153526977415849289189623450902943117436092029395312711049522980795259682518541524058714628362546746626327399858302434330874850518347477432789236773389330018978149901330411540272157003773106564909382407711782991176125248867954883626006634480151234367842924962322857675753838803940326584870458716811507277393044278110600652565474464261926072718169930352351767867097225500394338596925177825194024363753432558211176042037743267337944642833488253169423930839827098998694831725557433811611132198872958061208865670760071783110165191124236806199037185638552601170628381890806797338385269299080017749579225997518592216782834316044846106426588366893326370440871088296090012706080075418839115823337364085819948733927386965828542153991352903803547225142930234979912500128179777267371876904140132464170845367237610229159865431833162587392037309989874175381368362512025236908953409121506992725392759876875370963211459274532602346447557412599390317486148646885080452041702559253252809617982360425650507941541763104599127155662455899113048555271465530632709683603208539937910995199179251470600300397869989611364232051348496648143841901761574566413651540540340222304460109972477072943532262233462296637654988720101563656804690271335636699151515012349970460324469220617458047689902680873481821750981553977484337816819425566177206260628298279778923183278334578580258708864761760697799555412700758618772432689290915483405823050160663059984537225119371816425839440564378168546327004014561301488646543020602253359250929502300214016427222857026222434696846101756978735787559748664907544920081265923418633510365309409893002380995322764294009847291663472601407628946014240064631315847880097012125460859653888971199794848383573754952880839151795019888592664301959441049138167376384523247281648387446639710331589020755975925270968015162882050776549972264562344362823897675482974274690443935889174386595440155322996863245737761154017268422098990046700428031920509194991472448476956881887412489957984969310897782101695979943439215821048552469451634795930815595298831292366412478527246890631969773537449204305326193569238530769797049529772319270809444606837332176264290900026613211348281997722524709660806210302419131653932479668626598641148020832358765636492492752655708300313593906153250583995469951676438013014587855102704436303456217017814089688631978849912459758330026647256913581144263173201006911100822775952478818131346001618741343682663522911762028931022801498559303642299816231720735530682378045442557993532547170533541463673818678264959763182129983573948455049087484613804686078068432920252612868841381306777961845701606163449519834513201272536375988331024127739187315172896600390237305637238028784809219414388621006127452690025632870472271046159702976921399956085198981193029494529567929795864127125694427717772725111963577106589546823483975103634588039181756410249125919524565289235291002801144998479202323400426629815326497529992851029799195652025775381091204568339057586526134206466166124509486190423732215311722177463883310383679244005425809398807076213339153465212812940067872950951761501774612212596547282538590820924888887412381065535058778428160929846436562885334376828069390128045231357930079984863868340849862549122069033317304916302375472331148814007841182469510252480142655634529719018676577971436296786894509093579259257226788488053104656400837211449955833771910855338215876807051422371615515780105348047730798977952169349069986912676936641234787174489407131255271893296213125886798208076498420508035553112047325341506858876874127632873240150763673213536445317806549827034830070262775710725692488475192089457200464547104525528769392068005415523152689782415362614417568331598157006037199546194749953215774101923744900352462409201392016333610512590777588589105895978262822064866270245885474662122316152186867548837873222561294768905211168163308669687720850487612106079384970236502292614878174721974140168317305330604076362304813855082812499055772111164275765247473862364151783761468821009313827045922861642989315363178284033085691958950931962735605779958834821386600936227092539713568769031018109864150126810003113129320038676021901866955391145684298456342286298345796578748424481905141951373934111642448014989864939107507178656937163711026392005279400651606932406363284307121016855700211726276815800177319748757334965339802168250220603284383967426548529360879413779168125446274700069564682032148317058720961955386123232775365983059976143948088642160862417662457831542049138965345663620842325444518302827666211716308354496165793627694397865621537009889596225639987467913761584152900021207290446285076240826016640239304906715913702049864282605034029504944801570319413464339501301159889434221419462777778731266553089800552617918031711982084746489269127458273457473619444227852222022900693821183537992365058741922786081557687398561831342859204889258982057699441661939481224281612741225017818356263589316341023645554670787498863879201430649262696442832555447073680931829469285306252724130590953209658771700364002066851933691729234385708824721879481744880556681768917971947620478280795391280332556142011420206656024441381749771658465424272490498020736191824291342308130647778205597425871247404954435854811816810910402120156713487045700351866536370261063583520383028801078478096951227904060672677289574512698489319678508590971586616064468263210868096693499788357084774511708578996559710413415334122449602218889036936704883116732587593858465160857369978107095363102671532077037114021473186804423392355164831530681907397561857339312446662184756107818197818694055770114307072069598615894854209135378716885405988097590279649622221999560883461857019520224157874283532362953673733156083098485342508836561619217581266236469320593030712454798220692811121379692316279346670379383208125903378125466146518168672291368602869970268659282073483397428310912046032742117266195467703647573712725366927905631736844530278923607740470355226038989530088718946612632774365709285143218452676240753125750644654361239838076196846521996425311626410399226567862412773398917385098506605483629566139090093692010842444506769616541788051838295190845403515352769099134182796516412475919833045011547230364181182827576326360933519500647667099964635289954003645706703968772567886113153732990475317223350583939622752742615590320298538279876877647426697278124182458932636847680557553052538498118000985264808651127922712970254296797927173857196426660040881530028658930430748838175158654614788295958052317506383491538111042423897587198979993336498653498846620064200782823467410213978079831316683689424063327902944609724498553019199609992241053265380785502747242741994541548232309233926981615630824175038976066297728732049494413002823231570962057723054627850604820047832246771574082334847385222543058980785989261072122091534411626153922196463900447352345748863206503604377007136020589118492972611558175858709940805681213881267309089583375784688721633437708278281455838041503211422385354879639148104023535062560309168830530701110669279538259141194542525888831864801370106538255766654586202953414472924875736214548128004499440917975845590857735266117660682040762598502364672597844758089399752770818291203541189034277632603638055909519876255485310023489988730531977147893215377820359499112662916454086245168056727492776612664924035664980680722253933431886258257259961968986044475801342239013360719695321562722283873879263106851466612822206428717305231784144002388698284827677650960189422455714530510166187475705095991303806076885601125560881418675723894806662310662272230086172428514754647429523740129553445886752342787529956127599269296543758405834234471926741163551703545347811695899637005466877926115802536011300311663475365226707219621434997550770740832661054326071179340683217008006438231946713065212222958148755497679553212564323074182860565953181966165446999946879033922163889456628935523172598755196146275186252836912695539391165515861956107416785236030249215708590102993095231686490282180181548528210433049930334962199238378114645794511326333233210009660539392059400303946518907269002061385142835158035665902394232165932870748747887757781289893189687351023819857082657821171231818379150819013649327056745142457288364933238218797468398363259695851884822092692287620186107472480681424146727891982637917267859130588702930220621039734883978409814908107036475863333630751064294184177582702768637447555122393474022103436978404069974537797971947865519821783707376849999646448672097501590893667171814351733287876152281572886138072497052985492543379913633345427214789718304803043341654860449229069428820816250263928261681310342347231331315688304271977524166272523680880653499739256389856426697366781025909813732490737775986691526717450284967733364683748832851002157948885955410657780073472681759946391820020099002749791149500762309506337457270904259064410339142110601432456816442492697603209284358214238941399369744304506916405235150074703064947710202257113993478564401678913079084321210930362549783251530496421171789278431289033815697149181523940761174268017983053899447023616098976887504762840428290562892143521137565551847762785597855929933747552837845466186298910828361337379052328428654568041720886111439816938450072477979105946245921771649091034238972240940541876041724579534918086255990221536282841615042350659953393482525785697875546747632130378614398933246284366397000550741761475709639042799312428244710521181097312474748299469842038708658011351265144714142565107162997176731872246098309771318373967613047854306932799163352767174348828991737375436221078466854827059716529213378817185604602135589305861737625767612528708228115210852986063569856483454380698910824148488376021945557883748904272523781740253860419428555374450793511359891060737643712556080336746073005512391258962053092706497523239455625849368546473615133745270287444440204341609090116182121126125929654789680151660323464388821167365390524494713528648062081030888367601548574198458852045785302596274249391950261028031920683208227095582088607160928065167550399219527960035946411963949478270103234414242286043221962029374663375714624991150365811101261395835877020470535981758692303853430116232670751544355807539145650274355425186044569667438422639157204136273797253473023952412593881368744040465058888424873469204991802848525687979060545243701536042342419513787248751830478310216499042419179996823510162673898640095268226277037851678338613438111896527628203657130612358598263989411983980673996478448470546314983151629402588644621904816552123724520009634974833725981879286081656854868277277576650091239521634382110338870288611441776916501596604691375676180652674543042115524790391127732722606488554665159400632635489036832981238304902260977662775085601766185358758793269910322169513816837163810079084655112833459365348124924130886011491445677608177760104907555075548642357208341023973076251132548869299440055028473430025999729087355346476217664943409869950116716667324223541490601026856980657827420740341320915202629499892218305908576288004367037172825028025033493810066385284731931252573819484156371084825203310424280241907291155395862158058484549776293392314179228836998603196454032003611124345532565619841529258986501941245148691947935653320603059272436651429629399912380252016433162288010547929859165111478429599204511344552998748487790343197713075225383882794188292490169774781545363348199670765674861461416988279347818155696976186378996454586280769435722784240259595127588172442689375257129107169360685726066075870843636003542773496927296159454115601748107275765978381293503081323778838382469537759011866168605597001691151739280655341030458157833582274124954103021282307230442379940224473458727585452896090602602227496360053803169697739930895801886096590135153274380633361541920197000090707830543246322758171334540529282861394265569143514083029356045651807883857387890421089744045961019827107269548436851712117594996731797431142401239823531694430915957484614039029774009932572914510713257885773507278097854547960805738232849168627857627648991315894755983509926035488649606726520480025883434393646247864767632129336890153507764761979276998442387729961766831379594092733722725408206403002129612596976645049588554205024966508331244085273589884858470341080677824558964239829643780017328398692578166692594785563707260425842799370885762182434271684786508505004766172303077196934751485713332606942591040456068019529455726391120706038427792543778891536404976982422647670319035188588283119835743209421486699782945493298142398477648910829610730201468672167512724160136500685554800809187453890727879929474975080760750382983499395437500205064789059224721922203551664455606543413250226057972894178187564021035932726136259722546050705163427618000217708931164169974074955333861643981918113144840654434843790794423423916643492207655234513280098365042376136139226380695951556372062051848865464976002631018162597490121184109414015346347460323862429066789366142268010082723089698627543970078049056962154059539888933335330996128208213314874157428955153265776084450438008861372092324829393586506700592406325047852509990469806181764998403140739916559963718804656962345367240301718767036766732684117220320041877117257474343433775323590769136618275551467194942010833840832388444312476496406941015117148374808843782526218339996629869777224225729404820242609137282246586652102411809823681564714114857911525549280988407053630477703944776544088912631347611446759096010271128547922294642176756257092659445814909755740342578592461414682295194783154322699838972659949747332190783490732938199420233378046359068560982100310199685687394991192348918926108856074645485002078112476003935446467251067167111128965050514873106024864461636301192173184246690670523377314220236839949410467101297020718835166999758036755370513638238910839794939800688759132562927241098386893960041961240042191129181092104382401389640551498200770466813445062038846529158360708554013642251297995103002308624462214863808769722191948889611222164569281679977950792555302553184632520713880515746766588054595949536501625155040820031522048466098243521099182540480177040288672122704352399302149314228070388282300729616819810558455602959907059513586064075370377927812432066449872388925378547862932664043311742741904404856318270774942792718999425668236224516798499088048324102807832126490865722705668170925753369897317119142709974331607817185061702174570914550597045589102292797106221233794231465121173955863404227711590768876175157589015056457754544677568428598802750761528797526266975965068467238614207564948397875802798264330065102049350475314385922134444563971612656597365462178984781170900246556680045057763358276960148379596968672696864685963019013227676538988859290122589950567898151468202264981074280335846259876736583660007030912152563148993232222683309665380550163620446913801280659260707526188817492283489675881407508616838256689419049045847506807525605948778229704153454661989580286379295063452047896089026336873065130174045159132870854325334378471889333245644313318960430178699964542750520586124401299729435613592118298754565800992474875368458053600671385602464413357575032144711747224929533024236799654736519948267546293877848814059664189325513811015070685079769776496675220092265516600594204435045734706994839686810983320120824813532538196575660294018495847813228575988127605443439240141553803883934234925811101908100591856496008597789948028725911615221259185485616514068065120905332426159108173340836882920858280359692871454195148050042144453912659384026663193359448144545142462855096632313424550652478800188746783229871342692002052417190430176802260582902746149106258248634181729744462201619588163993814477694580514093183817215708844012438325355444625148585918918752166277054667612052432442160203363352666095537773372238834186696861067489063357670715082004389723747051968489422455966827446775386121250886488092820738001342946339086844544820239697636097013456395930399141475214456506242128894054636236386370897583436756896275671627088967762869972820330861312810529543096652529883370693170846499366690317287190360501037478294314213569292125906991996429692645324057829450697225963319261998239387356956762421768045545833468646703127079367157203178032764009196513983610504957137593527748333454265380080309827239107996165572611344076734479566485506910467894534591548353642842252144985108179985554119697585339506675479999500549364990142544585452913455061289741548538263723561437259329695296800870110621893014810953445217642651530644338005739813583660807050966275583209036338249426462055791505992411822914168689538900398557333790936102136110781749927485247072844572345945044135234390968514282400298228258599603632294839649988160945309494714252513068298651196927924265156718437904146999904825921276128019877363578911524291426143194010329232850127634600699028686155740281147281492241930739399384611392991783182089791985111196713788842983995773354810082579483577239137097627257309466491549213057455702393555147317412175482174103471977135469737365532323196363828096988591652457752322238699452808228630563808064282521044029105840308714783648852440331097411721842595112751269060742586094645270092025248499525692769829949523458278746568166178077451353191870752097177335671669377091748647166083917225094926228988313690828991095724946412984261236530480950171652461440593698303007819012074532525185690396791901828208353634924966408134438815038395600252896933094046981284663958468097576274099530164915983159153960083590466861776022361186553828528836452434947088734500070232447399132826750655163547972424687073731916260360034753955595199322468111097810271892120101672141635103422188141004536039902601635502732666069783380396442838860422704618867376401439983035205331654085675934058633065366962000981177832490248644755307222112147182637250157912013808174270299783872554538644592631076309769585294602521666348570640870883487916091114779607053102614619486140526748771295115644760366076858115156886881485689624916206832679309008257853387710018974470168218156947992006647117572457378781700625662917846822947209616196894573131607014972470885851484435094762270548772715854498518545909658027618658288466109413476103370359501758240082131799676604233914842930699914080993700019137045007784029302915078324483228486456260405455037481706524961522178777763839895272166887715447879525096154782504096230337899222145890383256231023183112797107835061635988023210314578411369809099572907107737901300174508666822388802670668716132840292804426032619692674016628504738401257750432997660086418288181348952905964972120305926239684183888745360289085424394197786291176938753854531101283055576422258820596902568015247356205712084233597188753813973235083245292089152581196188738379230236195766044095456966622249017549233277775939999471307293710875572985948588290538277957406549534809150561308605324909568930099725048077239037048516638610310839701282192532059003920050934804469193760949446561667562105507750810936057799349520497181112322606636697859445216201645038938146519998016830177303548968240505871576979181339538777346834039718804730902389530496234220829034959748616169456032624663849004409753986675200932837365679427603524554193083164289821324930741211786821186596543479266930469191161442653347308998747430598277140418629668930892856273577745451956506508224645716391786539590466958718796008081815073544127058999544268922887973809020401577633264622496675630658450486002552178767795731669558803893860618187092284537600156425029577737991820838061086244710127636083053568228742805839473829417008676997505078156161483369438989688661085241617460781934497153526045319465348886002783230107622597278239010371566004075766863178515728577747481496473226220619830745838815695056899173595601708388702770355170739541972155700535162267203179537140804585255669591703726473794647750533830343112538634443182696988223230398795658473002832569116456855780172212920025435089448954945898175962487091127115433944086375856244359127709630244264540403668924319594605074253643758432275189236105575429198903365692158956501664619974342699404639684067899655188280792037081161045672450116951684491872969488004972761886370488227316513566467059079001326373950717100316344891629379311696472832386665948563142743087449108167019039338346559099149531300121703322927038322290104989157667597795391547308682997369704199235975135263149951178485311284776089913698209004232422582821524911124840801459746047617451306658845585527579970575055733117494616541882240854608284069295454712272547058847287213653432463582933859577117318696193583170889438015937437001182521698089569363886396256861826764362539339691895401426862830042375460312618609489833735812274734930134867481847388242702564932781934352736455724258356573068993820833008994297051390874497137799982637267112936617844462875878035582232254816732005882428959229233615393005768952002404636280996358353034035494624709221876537766472544101360180239682623470413988451413756403923690730423422447528700396111943562247009571303542115810664152745266769203846618428125340740193654869874413928838751805482102099964674767455107649675541385379099647507314064194080147995554329475560081197952590407154419998977982136597825940038266502434816061949819544101060682452092569958256368434372129099495421511979465592487127735287746688266900144162758670659127477768543083427097223410431914144841419975074475458038284551090601143494000059625598584064306449235293429298876758982273045657830281969761159782378408507414564141383086016239097811533167786318202907822475863698124426549554148270998784647726135385164760883300735146409443892599007365967285070319236029016537610084489937506380190297017655783331473291059960500596330497079506299833359282602869560360736169796695235823056291036824904697863776720953803201813461215855071113598025218341935618801140591209774825355245567796404622905076767772174168533332089188887886126794806893750729295117277635224437591841213309535827125607275597634661371639111599315677049138322414662258027324255612319511781176442039128909791796555218519289706233668344154132561310154566512638497221122981769716456255208421854593788396632327305504920458739877502175048579117510668043576574818003851255877071964461193236732017777689512047845462960134086340588277859489687509790496141664591090282480139739483981352197500973559468660254503372042653151326928491303648338260808082676218649333204939928211246240295510091669037097333166756138828362827281695388557753140026325994347825827788736653601480522415820718564612016512606109460156451200981212788069036388144071067581757535625419744074350580620082464666692010205018181745722810625163977822438346326274754481721357180999180916689960767198506532830964641687303387751339658739300520265921435416384904900932167374617343925396484614781123078628831104843874083061630194689730713062322672707160275835362038272356980783240330941047001930267589988775710116674475943015995551080051286526398597859987217316171254464467503385841846641130459545225988463009509276416199440446394527201350808343991519241108023733502144028624474352811006564571979798745691285592868495061714208222008644229045628617067721658081288499667004345980633730549401087896225103716060949294812045720405385461019413684852673282760928664875601752536551948828951398078227886738808040881144791937726637852212987319660658601438367544161372625317686343417505266927102417532460230572998990469042296818786918610277708925548140554184210543166218780649743850003479376973100527221582919872339559421911786454797530873904764100960344531547327148401317371785045772788082701429067086169409878828298377804781899968724664755770738706568141041838501362379280073997507629597202132065946148310041756574630117022180000280584843236071533947705948509772278614967712547112786832651874029275258928739237024967439625945411679039251556716310969145372293882473404140574501397856886344235073345142195164330765508149496723125620551750091868180399696077455235983034563929011239607005194121670268905144772965544323213685309909993967962055886137681220743287782099345400724663945403091083830129101244653958099947203233222892266399863144033743038653190278309390117134456859876632207590147943266178056032665833193797602322488532426220247202464643437593325932483076543794589367606053148437744752304078675415614758338282030627518349357206697842205790957025817291885214036313829797051800142224247019341163155549813036354655695948951898416250583607184553986317304175031290460090387160913348949481468967991136172897019235904212633156169349032301684237510862847316201996715417950919046715675330525986420232203085183664629280681388917933938863821624261734684536654161456282073339639336082707876091847103744919030176608996510183796156602975557967884687986925448008355133684848206778810543796165847958497314167654716964439964430873390178225979323513636553598499823034570475260272868402669009127107853735635634679070585194813589011276528517734432718887807850850675368348817371461812821761737550118335424623431065249613811680826860961044915499248728913460162591826191072450125899730580870956463843466303717889583896957565776605883278106487398411619543219529737373720369058616446939752033150214446952540919288931625074102155845906131951036267240333305624464735915694410218390011779926514300899279346383734042912273731584661715521239455209431900053920487080069819205582854415920555675411420329349283257321107240416638821239790074819508128203709368085896755901916962414305767193603409751360090019989926418069412721317827475567095307457935410564304118039884812046984165598910936609751450506280942868398465350328921579115640203901426568744891223572360542810000270306735787060008568065430316990402037541865155200321196981521726717789924501385919625800007575043621085660200949952902499228192032208487325470097576083374172988112961340197827829642606948472874607057854337064558308045439877231738673118913498824517888264924485560877252294412192839465444646028740682271306633294335358157529164638562523062481337185669978591513388519163570261705481607312885938234598038229676780897064628773040900215828460351998119906093177300704617133811180893325453201777938059489662960604358351781733611309151981016671101883366557250888902771836489071962590990732469268528952213946986320189847198142772204552678814907130626857252755054000564002977059179050871124104179011001110981365962116474093101255724814084250241584979064434854874250803867469874896515074110451051813479699871260991366237062109415768706147101815946940665981389258970889939897240893233302540155909721859683372527412103046015323244762090668305549864102170959670469117671034505107295555650512358368359107935945623706258869547371968971527815243272751805549016966151891760474138255828847509106060337275990953079689657265156327723065864349995241968860678810893905254787301728829524258901350779755165688732859157446033352974338064443497028036458382301961343011210819559036484782995385479327006388900554492083114346166055478404297451173985202153734964661181062963864473014788933625348834372518069287302339161318272336627584390230849764071583815326043475207719739379298010268846385626282210240448790905075310809768968977271291448623268578657229615207478470054688068746295139194858457692194220053412154138955466997364813776563346233799493088839513876291556157648700946713714217625623086443146120159610534800403354502796549574481819055629839657551445061444000676938341070888709081116516740492896920640910757428595902897735857956804813986773752707380660349423890918302657618402968131767891336583464208873983350430838032263776433386464001299539486120236409424380004156920627168818060607123082090297884073660252422242990612060384656478728899149960614992397880829333733114489045385685037471616644843218445398493731367150573302786050982385191819998704282441163698709187487910081506217721418567133144172836062247906390729493659337027737611285457332106350781173248969531171203160738626867931959997601207710125692735392997048107838402178699561569779098211430621197626217750979678166397554667083809888428482546625003361077537809975374544380491635842208153950889134119452287657912795074697250292056031301248045493676425704901351103949195392291688845920013516336168136938631833935029410952790991507431401226363197136819516639834779529957377906422154365354056525863947905548364179840782930683958331615403817762675500001382235140649042226879242683423711568656447875957931057107830742843413404617844454256668190489914631766280217712487031740483263804463376985372077118662419132172865945526104759151534756418463007205989960320927307380013740217204889527031695266527551194448544983095105173744402094462666029268982290877992583460674546092524781958392564616111447068617724633251684161128755821983266220391444380971807680211255181189882008158711620468776795947431665678905568217413865830663280000562182220463015337193990542621458008821635832787708486244058612177500793339222821703647884883917462242329350161207574921136100607683995492738329853449699912205090339237379820076096934766011002730030144551747792257152752089533370532915393138316541479633756200171281921936884933920715876304157950507063175576431461926371985100620000954188631639881803913862900299437723271984723391045962268199012793820617147467549889255916404061464799101016838710539358738147350588185027533360191099578728087826118704957257135736510997126079510679688198668713916413725245981499657119981550186285663639146668346853871710944170727134473903373142655023515866244854783770967941510862817569598715685505954260878890643939575978735613406824925721297280770138396643150163527003780376719117599458594647175519291023733721888554238058832520686190464750492653675106707053141095004495589850042427021739290045418160887977615232988765893865089248239741676224294591891497960160361159398498896072724927550365789535726790307931606561821150233928745270925262680494572311478061598870005462799528155556639482654216757556371659308216829853872276905122548395656399626929577182105149116322559524457886098987943423384430241587596274151913467853608676429296588751366249422125593158748590164792714995478249515602168892836195959797449076432949551134141838826167083961937900300660740238015205469773066209762935861603449732823327876331107562167617654011772213550153015042167106272378199360698776053883610125946629807008583770373436685653525686810246817617324972596982587234616399521820808675025314875462836172474490611477435666827930185141503050548601823485484588356326581519426067586771717044495873383850497828937350912956284063454599862133177382971591134312132277454686341121874135292760857704751416924290038855009684216062596981112985592940428615990297535171127189621305851935326180394633744210338344541412683654970523950308837199685928310573093803548958029234349367159122059017152021183301044085671136095614672806897026459891135933449245825326545371454130030037031565399335141833726417238419137689449246649325562716291405687531036490023201893527878682038092661483520992988902045790852379130464707921633863623030405446886590710573693765084767810461176128239042069012898587043169016430242843193189126796308909270022479849774868671825953094497257937568847035309199912191529166243435720899853189382432601224757939320213372822486551485800167819773290821835149030412505085455436076387085833642775942724667233355039582045389669615687573708985778474296896532041903448183046141422625756758185992013299011382093351462085384805491993705376191142559862406282026431473246416151035621535446390252877904875141159175648448828025820631991446794172913805918018486160241795421177162453910507812704348940826304337384086229047501475805302325033700023648171081608584309264955033305215116161728102794969799850037363984601003247439696122683748194466404818054444801364859252681685882839690156272080954838708655695619634285186704324053814999790697367493385640283453663102566013580773019590282911879771989379850110427676173298333872440467834918748641187349161094977864335209913995504684977555991543735901674314881238081717805395770035430917133117266592203749851365197055369534263550894531875220515107862063319987781148475574583938157194702647234351045916511469421675266435381019773651929930173613183382932618564734763181940238644383346163514400045162322478590427485532316095728078423090830757183977826670501121553956953228235789080822042921473959720237260022236205658238412758340347593901672568875926611355306356484881753658922048893517703490087035857468533712557863518276280079176026096650827044678862390285074858966209057554906329424598051389077642627381312060701999903788620910080002110128151787927144960601596710228086939364844037465980050701573685057938041648672266023767615577158410133497675533424774638880591907462562980632258444360465990207484991216248848729297958814263545079125703229873112585047168903814796710811558003249565834905780361602522914827894094231773043901205903310928378179581844928451977241614735948583405437582637107090722355550052972989964234707239978018040740541119190429231168780136342290345189180569755657607547756737081097866375943269282808467146698568868867512120174452278352998717055783095217220351889804856733993919905381205579159747418521347206432324380284914762260507960090222657348940835290220123893384775971230192618221852401583580595966646331980510456622701596179803953317495741958346360547570644710678713817595608888883100566186976231879144758696086452020226838977583211450174434031950856929713478826890546989290597108301738909197587641039806754242537002871891381202855795809099867680243783609241803985578615401240976272703059006710381298581785955558189366769346943928549239927138883473220838308820777946109043304032398726069476100242445706937369413349228266643299685849353482110186104442413717881695726030923435188718887362194836338453497512747712321373565491928412853369376868960546752034443182625898758741642783008096292712652932587872961627441570763000193354661987582245817979114872156942192910472872511692510567872743893905779195796212214153760806095946361393295444565099531937844129860171792391433184407744590119511389098625913257258055382704576672953587642053609830112858616468013777347078633948791812482143019250640134976282654507638168940177929067273048778165266427912171251533969054567381563735661934989786666202836772092980668775240958021626719099161736823006624754917155608608860199643022548965370999590120905475025431370633895802168178174212992077067132220428642701265368071551813018878951812183974852601866427370334762291593087638093041920443957140198167320506776738471366983114799063657136601534610544562470720598890381925662853872321689462566761308582112084915253213509907030719216251760525757531757127801950613142790523829006874861578281878998341982890963991328258231173560812925198325929568670874212465940769471967749894448911608698582339815775441288318319878720922415537483724176880626831644009768616248768637450000403563802447578442019953137025368430767686853027810649571200728074403916895568550847245057726150371429467337399315867785381943882140659218125717158633008063910786251900822864758760945098782746138649797272775912135177254743232986024928161259490216422703954317709344022820797759744950609743372660675781859434106952930463314623986053443929355533656676469521229583118495075318307236206771571361627366962147982735565686616324267877177512138438686651169742086540531807183484161629617538082339853136558026614489214972635402779655413170281963830649020727068482339238400520705087460059181046201980933117650812021773803794661046648816149550347778565382379315560366051268258120338561380389258629901755349499816682022896788110786691063814435825107223831119689492653931035186013102315294851320854612721504057570498145774392341296764272028124510161872048704445603383447035021207899146233632006739983847253022850664790693484575278238497235490498467514232575895979580836221787553624704155771630817298996670108587289488338956385717522330724391072865706192182620559158761033810759494011574153986046926803022903213749522023495736255528428803452703642785349900270239764158860257177745814879648808996930936315540194487929052052115597218438461167751924820320080146436728626803685799431418760892600698763991705732623860277382197070655033123374830796245179305173922654224292920805461853081457784026662396621836218612584561435961133410218134887676100342425095791392658326067879886570217771666180270651642635731299473245084130765679183588025302483445148946388423005274425523527176288218551555602730619777860044489432301247968860710595749106958832428031720962034863065730156351470647849401864250082714789410150437336084720231084085840283385143065040177080064572530897030973255101637323284485512476041466947365732826399611760993672273224086056245866558898461536924901886434576862947900057301707954381963340263953645193176841799225770489340933413161816912158508921397875658032240642137483481808894524683538149175465329429477860439262980185913435698690440871279112431372289920591536427017088021912773291612518460770698213714283842577885298393352996680621513220327190483850735247614311486410689396253913085664362364151063253344294876746068274370887804796597840472096603656476575736395783560918978034181254082817122273529295180047782469143279760077549695286653918616160999102345628075244507599561824100912540815308070191615869354813167081274922784832083005922289674850351730542352408108986531375455434459282280644410332432235971301336268989412978018110457554107034026403486314086914919692755048668244466508530036209168308169563707359436459419502378624226557632521054221108737638596721639349748244701336202096936613290462790601923248979763828156367402131366058390076821753280612913169079094169309115997323294700338507038571694891663490736360817818065000778286101965398076101694608059502620435081081787923555050537446650491645995179270225764231931607681933862422026990036260904585619400134495020596199358328561690038331006587364159653892841009931200774874720790413424552875083972868253164971100870993933587954579796114758958298941439295852874293323591932399459090057393247078105505262511293775217686071731220146604612690740440752688557708609351447971017327760800691341117304895412479814582202382563239673099534650331565512207231933694497633170527649732657328621769267448356803503693846181525895529819994249821082357443513152331879343728998149231966755063527576938794073991920112054542034164109935172101505653717672162558076355116135587062796366309185048632811467446654244985742709909544233166860472010319016509212491506245446639142304341222903706934480149489993958565159050255648256310379812077245132298155259622287159145984756950400743104825951573081726967382290742539601409984185300512165212538969541921559820869901592113920662276487420139321563454556144028268579963827385707131236162110387490545528616771403285425714124054280581273186782628270228047254048521115255634385108989178890175078854679446905420786984278872385630423996080821296690269599541340978319806816359392488532996344381183617160823561079706855508370350815213874517831783471572716059670308409587660829204579158802782193306875363955819542911742702905009924788970100902044830451533315082657836379146613614992864377425073446265257798682379991258470856507137668377804754463385165047157406807259407898370151228592285398821360709798301245115627070291120111383744948457800908598701891456292080458192102284435844321851326184882449591839715623557132469642475780884375364557706613406084194970124746101209593785450003204201393783580554092483357829718406320669063666944471290153377305947927910436862753326603047121578423990827870494275251899736588014081105489898865387949448770343838790064306370172381374306024131740878033094634474476800693927281597407796469168667071555077860999086080687779873642925078131084664454165783113975324414942433395574750376177200140651837113795068787293825788579555117859706943706088030797733699613543249583050923876683660113389908553981234468548654969213036822184392858058574302490026598559744987808544822467760826512709252479896060220202802824755843438492606834767232786651116028379523206021534352498435943284119716355144122817928229069528317680131445897184154639113922767013681781408668653452119125094917516887584301908096018524349859792214083601737667265112479357938914783266400372299011062212464632204653780027306713796450216565891046201296017269912872587008957364774538007455291867909254584478525867443062302872953669584071506820083197964244925629848706630003851656567290178061508111739051173032541470065578269869555619738258688869451314912341980496800187821562267734282095327025240206751010139601225063623404213792732332133959978212056733436218027214879067253388125763981772825799310829635904238432379360312383591354222243831435269759872135689177482940333574439516670586884509463711248045575643924750498987662506775178287471108463706695505748244471395466559688154208846332766978167938763687462371547810622688694409803528617560060341625348213391179842006610070484100665346798779311558238197758326055360903091288818837953482039423999308499250058291590096181041522249531190309971664268464749806865228558457804629639979645168771112481884124943116773585261615139337254980304356360061970259980509549550495316022181824971453482820416830428457023378564825117682422688288091570617755543037162498427762476927580966470040308484931170229938523798851960479795887940530013663490552485712735103304361384982706589871777016648110122191205928478868240546904318138274636339723476670359220493241325304807334327600247018742849726606203619856986169376183694838024096601974582784063083580190506334639917600911314429052057065938868241969655469053590527568795724631979926204277961626038106163407461263438816640948511679163485768711074341116350203863665206253169814406012730227749340732877432685787032919063952009549987454739706821977454142970282402244944960171365167484567810789053368645764041724892341437189803627851807568765062108477512301697294566052009781178163796615952201251024425978900039182714280953427586223917463197438765645073245204446705809794726464910374113731255293237689232946184700346573634123435561685546853166701203259030686104172399488514213245442392990375916667045448460730537113594574641417759027268883173672378286745521174652585133882620204849905759411382464970087428334401104029331556786193181318428850175549757958312249238626548551495079440650208277923913707810313036609540162887789457521370156463760802567032199315342777392645905368189597963366015534274821745618678533662735656095830059387906619496253910453095652654777434940321655677094348222377199595768727670232355707365085189553072242537947263149397847191105106824071994225011856170165412945042173450610462029663367265695256390457210126029735927450952727163571883355612808348825544672599778358248345042683603260039220535653649465289681807155724643568444108264438670135949064360251304240259337175446439027560333573995463215189905760590709291564844152732627229054005332722916522735327958707060939246194621281454440990528690796621497373520117275221714620034222542069005854371459430864867384501179271564523305351607975209493293101723338619434980096811580753424244580728896266991458289071745192744678133377794483568228717613389515482727142905515941632326747407489978188490975609134283534883464913815856145319839454057154367313064342504323571874879395615700293250372050472647970729417441183225680910905315279905270132344139152800786084003936141335533528169117868453096859769231898837191086382170181040835953152776845741187492200585099466296195898579468310141742814675206114346632835790638780998588578684367630748183360758715414317701426607723012015707299588195495875448250510970077974610697436264902021012335763591206678480523189779690935776462610454182723760505073516645718824506809013080232133912373552426517382869834766167842902619309228376572900510718956008311923009468726159810739307878474970269875363323657694223103897016839029674674984803994468780261795325632789743309283864543317356894858473881985833177246617679267565250953314025491569717367137809366093007766493575885320146128704449723961438712063276432150889931534349859695721949164460135411871091163574805354684506405315772410394690714406705974990621642755861364163710700656132049718221523687626028507757362334756007429391935985688460243663295619068763404293345576961307732973035337178810035220250387542568784220414548026614648811373006153884442145919038420457942533846807463619142365937733430470856061175852045629446253983668450493466755095610820736780699883376695205654586674109365934140578927075694566842900027952592918846633785573201592755387825805941997801791462363490231277691345208293170969652410041212540454431338680013954097924227898791016189212248462782602789213451739781161046161180658410757149627588553983252096369221213844299077347536003137925788210614863307050368203307854684967513705138266608244000300972134512405008493627992476716271766633443983000260319297128972443587803769589209321576612095185030659024705819468983221528556249260082738889897091390822761037119561057920239189558640061656497445919104132873508269933273389865483452185231184462424392964543363470591999008508039531994278176110116186171845326636541361227278766441953335854145875429326867462203584825838559245924776928157576341787708065319895879617941671128644075823370761680561214237319914384547291230066880702554530816825217905924727802794456882042740666092010684029034390861683177779268597859313417648644890942767757021039650454254572240385020988757153883299424148928407881067057436176209668138535214419696906928575060629144283407436340824019020620649446902392719097423194081004098176617914875268670366054747591025471811393094440363097228780214755110799898480739078470983343855529518303588673952214911000205207384205558644534591381825005220023997476376875358211394555882993507184200687240702432804556424029418281104847474650547839608635054431511370915001447357163682482090645460226860158410011026414883667502707387819621116385696029459747893325720649690874277900716762230199138333882041544240394561646558788093120471645992101228613494110595404807920106111135502864183079444863421309225037907876089351823484753092359792479986619446278339242237012478218968406253230100155111859600653873079414106905322782063934459939597942231257528439861036141980053794447538149452073275684685867312710310330399376632934267296735913820502479495331747500001787622918434415178468182818675197270786981927301942250595722993617888220606773235127580414158615698962081871553550107826486862293317521156006476589246041667448868487328806324104292233938353649331781556819205806618917797000389322444374279180395435590756305450739484920448547808638530939446291968038700943553940336394650928845533724495418062498591003245595996261364420887258975977807254580238794416514822634481340366669361317609420967089783740267469655114180711251647975229161672395833408331081088035302254599221506386196221468925851770542151683291439542951280982613650273059021547796906899997469676830265751881994869731629346509434199566917628519468203915808618277346922604926922555421971449894648883996768971243485541619470375288367150526010108494605647785818312563648065958359984709495906126875035576598514694961119584635050682346419096574410200611859329538093521425334602648365395350523368343732243315915231237240242491757062485019118656288144739635278975110156502348962122177850484104354629795253604658394741216570249270711691385455343341160797294000362112118803517027997088284664194860490973490642689304417099156307526491206057852640507728397282665847909910009575507457037132508101998721970244323672049567463043204276517434801099317745296313183412626263168217907457011007301449663911158180572795780851271552156698771360474547130556841955335211392336325122105743030654284657428375251699064084762000149675302501152950122659364084394871536286057812328436682631603683922779665329831461366219357349640620162241974373878241120521503842917139516637640111863430132639096276334212905649532883870338805816470324056684442968464986680398340406145136131229556719648065703599714852302372548177077739676192117594796492746194366550530639314835980156604697888717173372475309981518608502112401820860902000840713451348880328699938056307358658711982601325685560353903130598627465663053211350430479389875329257501188503844450835922744581883592669933629649366202543334637515579730547024550105289121406213584128456512651291432901845754564996965598277557823548702366881697079997106925093829665393825268765781548189165678655395335723816870713378323933468706318565898510717073515208747605939172266078660219871224310354691760608025202944848710483349924313539293935474260007214707247446214230190359812681516596641618957852076275026389744179278246465826486302811696471769305790186566479569277520930111897604092051900698165478175809688643487487115659597672540194497612989782564753016581413415615165943305671544736026924476737302180134190761887735846233638107078854244776970831498800496232746754701385370585335203655490151832212773119204648353777589268092711912045019962104960956554936865722438122576256362156810699168316139032748140209507463061334652814522377471720311732338272033943228156952800388140724234045514059136455614750821876274601332032982935426791730483724600789136269193562918797960098246147830527082742806245937296416678231276446399792636715962998662922332342552834410095427115371138484999865756022238706265554215408346267989765273558531105477146241044928258531908677717109917048395747057368130031463610604499946138069769234503311527772797378576872728781367824858361889454750332885315510488991561640343002969715659433181439821194756676487289383311324989852690990075136819746248587186967888550384996010089598615234722434146863696351725845649351339110877434449885651887926204359544879951562042012278696540743291440181817782213631275232546512027971964391932825193959761583757612632142001651344865770648660391236585199246304931894803269989873069121702011176076329673392150414333728456362897878771753667216532354614885551125047278571598594941103472291289963818600791307489532694361793435807159230311977081415436989041804898687955528753950611608378908119794680907204748134047262448285174250025399539730107353146713546658632405986041474338298659747565453373686672250229593016773221640764704924595210385708268316514483069677323871096841793263350409847930359237834321195544542360658251919463987888889270411576833717146123167256296591323480842064623272304299675443044219365465948121865122786858635050438768640365448628861996144330604388549830012794516342971739882472810585991126227765572178310649148104148512077750161692316356837935325990155520934718003415784866677429179936485764611864483073616708293256499971598823499015382496826989059448858122682859726209765352470746715597367041098697255882851060101952920892598713344018673989878297309953989782597401500799390599143332987729731478264563408855655480223088801213704392404629148241920001416505459043921527582543423448742679724667725593278282314003805390606932572094008643841849532272932206829348322763665867518336444824516021984377683881540991218447350069055835313591473925923931047266024242566513991894403307996082665406825057438270708145553699319360524723266470890641144250784387686794745098180799595900983013098320149290730361546924617221079247189750942505294091084757757285067205551473140807337523159674178007201597544228016014561270114760411587623758943843186170123619666741905077377188174689742104863220687452259308341928005926245864189803082899284891699646914223617787521954845955118044523270543578759206954470125569271953991366840522911096523264931669276458964596260586585559246265369791902600754962181132955345482360058497702609945266426760948694088641442368628989450878695247016663427982944364968397344427983297151971865230955800620151197988845466508661888308486120594306339631722771702485425548142025279703888873483423481457791896233784480894521789720220788953552994895744987304874865481881786073854738925006588160349458098368536869466312719867287974703172259324228161946355094680617972324690792106264498967035614543287270737647018659043110813736816581663912304979182896801981803296372901616299286271096883464022589254624708558345232570894751608713507941215086041485686964920695869603542769892765687771955288023170049102983638771671023881212418729557375533753543047090957609196974656561453838302817008348676616329144491097692275736269674462354441424983230214732405715711574631948930384167358453441116124457831626724254392724180058169516992641348134260581419869875756652064748448164169603891999651357732176700515644154781903309476406104067378807869557602417292671460095232619522261955484381574612291206855940609999322692888557391507716428200497921946505724307287032582558553681366776759738427175302396348515628079329542898222118105597209505005233935379259365958565143190405670048251478240111004183215876776983548839589538788792737042250373998782562876104166654166581349463510066388497629107388395083024346724579154238731496058734395330451270042154342489959114235057567938676393756109496841329677910077724603871830272492129701997132057391277682091330877821429135419047719161944601538031142284635296620395317302385037222239356716854907679319805113172843650108288175858742946917249435191519291789185951488665390994612214373069000798930022007816279207762946392586093939193174252016998580132445190257806635115038373405827303954377867974334620263415438962200612635215317156304035220836143661352518296136909220949082591524598789726036526922166581587494704707088745345682541970805183238252346334532657784312112369319489437897899157700762833763463725402038423933094305517510686158891965747500446534152560023826710475944415775198415702211401504209310623468770061159765594317566484054825954209126528278398402321049243568279257877779938507239275265189199721124738882447393391139695914956854674350027747557330095302506411180796947710403023371273657818207329968903061469934769801423538068270097398580366124634280893563124824593969632738225299816307568297753781277860498854803969747762077660059815854621756004590938575854111671061233102174268757863526658527596722682740840569693413877072663182789881473720297594566920728149306934088857885407888427187067230015954934486732638370151355371734536929087542838549087153746986989729214188167262093782823740202507295604550048066007257287141704731820231944307315116135221033649619942393201817281392665417516291540348261739486276049712872023367450947229490581449940959921366430338081504894083158112126166111332156128840622087821789261010524610130551453361450480611978235695858414443333782719052830586399735437460476366021359917655254566721687445743078529164102036872713073117017586185484018492703720120528323630912696777057176516549613481588579515726795319734379941733038146477690008882022173128826888153318368166237733194675821946045003899951669442707329647768282089811807465309171125242844093074865414900928647091196904640191968518688942259186327190791584012040203917443617925744014362103152537579822000242334044174746052124213192217027878323138335748033541721653162744917877634815726204034324852956893091002019207449068406675529066288619948020819251262402597100200029014685611943648385960050321155898547907098382524131147104953914736679578021849535896582177844359146593258909841909323734141269258700945163643741823240798668466217073029360602594348701381304255809576807702781801419198222588984416176303850341044992052176606144208383280906810214036219841209466068164762028576739804633953601377057809578121554987070886884635941269889458488598809530896362388457114766878339001006537327573398908278792203433581559687600648487678231524374964248914648910139959071237212750949362226969947751465019295705413671795399578930482925525278738384342579680754273634113854937013391785758004369092946306975953364998801568558599920113557758639163044797757868608435070579673701840539615621140922445082535158232156055364019377132517757174599438606426260292636199424333880032413186047653536409689544679596569515944569633753776246119492766006651237031791618014977018408006236845991643327665624524498667565716708835637948451728112315043246741566714622926175576774623546531561163900868302232185856890528964248344714236857179433687959604748341872805577627825141690337333174701876273582812875649867178249548171322216393723415339449030476153768006926568531010813312869243472124806071832052840297691308845740643315257763487300096145147809475565726192698362402397498938582780651001292785852829522422109907716660441253335705059172214861219449603482686774716689031856719562663154677269389706845739607221097866418099297041837743495781302030916178062584858327519453061788087571135261004642715275278911914101899915978365718515432542372008359218194287974115114548729805372229541141554256380929999852827071321397729915627589306809768740448151459807189556152455255593881052802351883289656100007379220758307418893302512569043806892983280225543652188673714185134027238827924165509536903319828106621745180566484841913753385981841604696384221006090152293361242905457531084223995374888147015802437133362543303316251544639178994663903002377517928617585585476294925040701110083978968775276310139920316586992838452074813879872196995194098730880958330730494478708928996745256121817112459468437696071057428134468475023965195517032565041799568200680005826386037154622034305244266719207790209978629179627567015396180958711036371315645196999236725246559559180017434432309420608315788375040268352304557739502927915736948490879689369072793279502295350916493713842607832828312622904197699856271113957115563404509968189781190142208358790809842481855231734038123389006655950681901226953120286682508339110798090953128976703218797405103286977926875746224954454271269675471160803795653566594351842724125046235159658995491707056554737675081780412494037535233397189200262765113538512069967117268344629459392006683085706526983665658651754880329234016279780267542642056082418772298671729279565655860771949987429886466081994478811996186821160471964119654243418618925340771964337093078043618849509220046916421715289294682354157534106316683945383465658289298969853843609548490544960262745688606919968433911034972318690806569262329345582407444580417355633315697245138240897979958227132834789786868766090786564078889714054028677708426245950219692592507558281271527478904479734383404785197183925441394906092210824946170305124486689624012338295104169019810698994877873599701655767859917056413329457920356062315186820451637643921575723742115240003514576308530103186032859898988779392147838446407209709820603814390784543719658150754057512018555665865379912995345248392708394949074119740099103844773790940731718938603929498279291382007025773710947925775173697507784498655114751808485521189734819277544555741735823682563273419464984739613001575726486502195030129501781481438744943588698174407949667555929779993134392170525591489571552079894686319169372421820424665216313607849698200232366096314823450671860761527923624460424623325436762785638557862534433864661218558173146667200483386281231889014559650370487099459381947599063446151593300843678764052193805710738357409523770904616346912278475568697612037695130754666922449396134914800652811536869705402899664139904507385647069738549820049483781806791553534933548364112106582967440733389388132709533029441745569716314858104931981024367896005977664526969611246276898521278510962141806963828930574089773321116862626961314287186470411401508934042515078203422043046456247598084577383975593971950607066211376083865057076761656267494338744081951978533181855501998290089728573316822946041482286386781486327505124829959612720487151873846742199973274446149766089173809644690490073453002975080283487680030335821013490036556418198601026185758223999170051245639270583288779055820461602249032655458486900035643909580879957087996736948189192348295055891390185220079805524034554044391901470886868241746186026396849422649915780359960273517517023236824937782797688190300279427834283560981355755375847720699954853694947598855432705287816960529700025718419848922374312008153534334097868477934793296136647260712939197384417811643376815933698689447517985667274627684094476832172188534994451495263121598271476316507624819486369341961851462264516556530096943810760118396660901597471459155179920046200071606464482181184454488165273884214092631763683523917521048951381112912694533737105510938919517347118631918047574304765870720614020000263902561872202746414167362744059579273700049680684928434198489396607604972740607793644884693782171430630963832709171516056046171770464155403583600331982718643961663281380227620302009243559845568460669499762428931070367332102497062057523828419042424659463177789164519412411518420750626134671442942791329458833142422993043524807863904028333482351307521880935974299126182064542618265223330256352683535216010659888014463302058632603655550856659260403536270806768109060099290086384645848061964150845522085245743778699581747636211246088777849908454103475399468305885341799720283205934140441016999757586754451640252773056374687973097552970817913276646386854465185712944982170324274817534386599261364937549521154397228632525842800037999094914757889078839102039617430493574071434149064838174145129671741609222073398865647067789380830878471375014874536767387281519124123160932088568768150225931674452326950918604191719117198784822939298583059799687115952613745728797988163183093132064266843697932102865456023850335262756372931477722098254579326217820717478788691505955270015511382059040026020411778370373836055430664869791238087244408393800749476321681614925972982523454190204283439623734896411111460938164643478653371238908475043382600657184747861825606333720866724488640525253629854094551888397948669050202062333414945697869186687555634805910866607517033845570506769593939165427272798875843181443096725048157696616797071257455683025327502337716895027761775081810829135474552138254758919059196444677569495422782324969195558022605655099718381596737421077721087471603926725059096679495423682473880567640135591374795993814321208230513392703009744148160070939189749822502151461778813489007862292819651174620179923439623903962076790754874749173117915779488895782258806888151332445361437348173442340788767306890230585240060253597072295150631625130881407161749330601805280991457691368325226879832533253958480512683500108252843044791780198570392406009920183640105134137972078425078680630818561954297162028047821315617379375964910941589013395658065906667578771041683702719502605613257784384805392301752551267170385118126374631825705835070938893976432708234569192405157654418954692082990420699671467800437958979026287863590657299706012710563634039549634205640183709283326700678255084732809419273857294056059787363401584152255798476142493531913578487483012641116208484793043726739467334638688543953858235274166910455421977847809229651790380354095750765573343868776001507731862183289995869336748291127116414200691586733323217389027494864940471585636459275785242198224443571727991022509165038570667626399768444398537128801121687409335817510186374830004570292403453516488199142483479666147262349820837218908829173286867031718751757202763465972700754602940555857649133469643590140028285544372814024248572903410326237294863152774041909411920728601826933504804566570979115127092147091961049512563173582373141596474430787912698100175431745664671496536271159731051509703806538110045509646586031663241236612543156854903381965594552918415746132673702878465973986783034876126483802190928617593768264130798529325969280513483344268245961346032480632981033795615835978548271493455754794614911472357094974903507944217842256440416537522454948788387732159826260339585446989463929851511134309831992482358854284144307432810659889368181949955018879417053388193542811433724388338822111066017912069151227265611559311479530438652051406435943974791061768135959898609195731508423540369361592501609942331453223078473522499662056219753907335146712859975115863663983715469856191780738211597358626637268066151570116738564157213640731070516062927268728677965644996710410120412144538681484607497637698372176859863377547019389564544043819723527680458544216700375181911234573698287479632853189414372022119107308082116991957585236961357693698170007681804889163135747838673938986885161263746252444096208198722599284394653141316407684553121692771454601499453993833090485859216063419867324290795701584812089257070791984893484603674249055632467053025556988134038529076050384050525655157501398184182962894856784632985121518197428301357654663936418585956310144816335497021265518219403452696268520504329431226460207460067898747383025231936567625415959125337020956883752494129381219909805540298012010163518992418634286454992083506493244444278635471806410268237765442096795135502435035057453214607440702053090814469203378307719238222460218052255156688155771759898408038995303045583281538768856880030334807295338102188069469551060252202202142074842146487839255971858451550286562650707351111946377145262168678823601630674159372975991135235820198264527099677912230585405983717304901230603162392206964978071070875255496358965437919199052642420261985270176403719117420242022325495814762877541483221259997735960779116128687435025681644809039563014804338555598368103624998618882285859557961294723081301721532007888326972803538463681001165961357918109417820167123270093237312456057308118360484982904065492541208068873636579150081496105279144323070166786880029961953874482382016547815713372948302653612359624945888844285606853175525070549528015537414533064571457715173128908518075671772077063198393547630934802092540575530320894283741516441849136205176555269501128575344462541269736182028806130256967856619486616720981803795900530697299790402282616377085784478207356063403532716944807102464938605476655212166418823195056405146385499871740980292932844750648260600487678864095148650445837808727430644653909637945991751169138972535905387316853997535631798071553295276296897080238218589559815540441564092836101500793934396069240868115646674065304013676131120249044963269240602185134256036960312152007875144721112263435813293514284306470781407783680377394082776261901560766372484732121343115084167738752134684419765474306652157123051941591381136378729341947482060888581475111506902863272392119807360368095576470813749263373398555919061537328059926450467780019329458465586581475797523931272705761596333493111327232598461891498308054558768584266294581741431784923163870350351924618555822704948001706730274571228040122101138567739022826479329559502741842788867043200556019500355507507550390023609955511914204358571996168368920768425237798797687400899567568144651851259781958086313579199260530762216711980352842395098698003928430398485129853944392993702314335290150496386726731104223574953677191118542789925125907232971502227697640643915342532942323800278314274099630839178679318203175909694462969594305068140200372465447703169953218901059246817646279950407434399697208024295341990303844013703471583549278930253425295106190168402151729736721503578607434305474656667850431948854821715029438010287962045823237933046099293606799271540456853420844508400989924084231467201445135649345734793637216718392668522481325888398681362877472504838771124027943117807262070596783481708557535914697360901376165414404827402420061750771321417838174935547370699741394242335685073412459258168945833929016773109041339244116313725550604553616865864399186835215270220011016927707514399014296882534253285310200068589944665789687593336056568876532053091040563962746301019574545771075194312390254324426768002953696842607307526635019941816788515307486540174805361230855477021023014900076270088749808513054528865982396557612468275213221223694518180998878712160790800236209666369955697159957251100719078163477598965258411952368709333664826824859239432217190479772518191677707399860160464560204462761981127371854140533588800993062497520666621730773659343559545612460803560699106181136103395203021399766017951076933429577779021066663494494638128868482074720789165951729521073304952561134484189243288276142303635995753228113024431556399270858708614505926507669448429364969235049784745923218569992234129390112018752650424392940426025395246326785055125827805831471430719208601829972496195767063672938664820590352420703682676516441858038608318464500518825446393698884773793715864387631795785881228831003937112411519474880295428005478067716356197031347632760090038728873454315195890743820072312296847026074120546361993506708728398393701602107283062633114302956851052829029494107921912250549305299782954308850189028295717229369998862884340173195397441702210863415120160637599475331122651178147160508944100971217587599174206443306922479413569495321692657927803677994127111456269663042637850276187335536513244986959225125134609933091132752106651541354671336595520116185734779029253630148172990565114204943083582349396709908826857828176088964031058590837268333905864303900350458840017469467238420767266935914418322686831776445851493159892840299841162070997680819728585110587760496614189499531543025295919699286674188492667439341632687280782893543337092739670063164313473755260848515960175795190729848229634450863778685049994917737558252081508316978106811942854127948166423720825904404676352165317200479086232713287075117471262482096943488799017723451927672240441725543933129084916426720893696032880667032872185197700781548069301903655898097122586106652000936971028500069025202005775189101196843969220790883219479164994890173931570520964043556339759461602424687179459178525667474978246086594804744268898328704131506489976825164643283933599214631098100615504334892673477577964495845676274287716622736725574537960739909044347430316230259402874995749452844657352136568725557004491215632487543639804170841318453219666193848033821118026492962441355258470316956235163484528946156081011904438856757759283115296750619162350852083956524201189910211921870150818399615336017618080218594381767353923956180311789240112720861015380576476795290501699746496118770679686144286166020466781674771027887006917091255228649861830885108570410705930166248477012397189902734258882792011949651464685343617840925412843014578249816840035498919828371078327503216576928826390402506084332827435792713705156514403669872691050565518372509060432969904083646251896974939411942984108510311962200965935359149721530073091740100066475032488133363738714374538566944860871702592118116746931208651040678447254355741855753076408284142554358469579602035930286794272950821601688586029032550423480840464057139328257441692965786949499500726236029046593528532543974163779309764744864696160100342275838055960294980726402189671079748193928931818263370845427578742112394642177942393522750536356447715520449178999215532828401912272506171150396290799452651203834277241185961436751208284305242156061853154757939836395060194126234363397937440132764842801705136695627409629842878874424177888042096650386463095079320488930485620017093709556843843894523461596836143264574156382680057587688399627211059725966673463823347266112135780011859855519190334525241401771403694319683633989062260915939709464588168670982954949833444220565143483397148184285778030328802562632154660439223563539551893459247760057265639617335704007232402939910943556261580839063189118009736419816265957711187726668538662269874358043400579671837758764202776823351005661455900366130732742257834785440703117708134081847903645964677545097921834592515579377417146471469532538997648459002506883303934942013741844030138307306114041338888685428291199972557164718373448923286650002300006318489627852106068733364664883079550057744538942455031955469029240593266848426813128260536548902541673038222902561741331800163840667053604949779653482133386212048343535215221409727116880979007074610888145869303528427667585221486263834752994318580567958514670940498460849495998755638865878939175581663237975588571685422472104469964748675222729785312772545061171241520707477132480121277610484636550047343541541637590466629293190683306623931658076193697772748540533865053734842000165177645302516965381781670225323715627221139285539727115813941225568962180353001203795368819553696303602148828331804448559432318852050267711528260947480921119233094395779165773368069682279934730471841770560708211863719375285375808185421728597406387603930455456549556398093449654057886058239303763755494264649931446494888496702581014368392435282978444639548314740962653460137627743440541346420856919384878347982205678820623723857262853969932576773804545184501092513026558936034245512694112500862581696567216278050368772966298601284439704307349418860194030909567817671206003138384852300157768641152755514750492854195978430845092807468759692816825340644503620765060874293523804173971771451693778203356208054843707202083998263646976709207442374456870227584062816345474245975960921761164076531230469102927274200074035539323392697721360062642722399257289575614087130642088644939631433236487074872201187138456952750173451450073442248373133843988073798907696826471760954008932410296766095852875718820999718024335534550037487288789423488444149219704713524394527588160923604000912798476296783886099150557667421564735037416138750033943350597057100795956804082734566719857466751865580323664313496999267329434996015480794907160221866769319932958584537017089277728298942135417485387729945610459881033546777037782138104036273201664982051153015095905900237651151437422021155913171281277465115098326647939853793276292627695748919081424614140983833016642794832707895817091575461597100980840170392440123938767906157685805795392390467472302365918917584433876065181320734636089392431912860345551383962356076368059184379924717398175388538817943690678420452911292941609477312811287739993816951492365980873554891625921736201953694465754763760081926839040596273410935621482793830996123377196404697548448987245483300100885993036220336941865843044151077420143683239038857788846548130107318401905761352221991013472054826622449962404305415639096717690581734293421495160680823456112280886879156892997225485908879582204178947832874150045897136648208181639482803354809841204066973510386451828453521721266186437896009400632011225890848419735824709252734877790290662954886708202296610055798222873480316659329127379619893758180520092306479982564045003167681940406959491226260397376706377224302352873637414847969469693255893366064337900353035446605041715068950798344389050452803405287007389986965188825600911852362356328376411484499395398111797301949022522928919146659033894086798961476529266723626214988049920616902941212759265785942770215669083587762206067573951696171642433282772815574363154496031129927994667603539863169586090794031574748601216378278846182466336278913565675212940014475762042357596481269815826256665040519829191544028520302034513705597645282790203122885635740121205283183687168793233046604486726625831514005092989350258869436653044240527516781684745138253156775273408908309638235362060557544195216567970108452155108924537776659626949551520018203667868909622127252744426048765407433026283442340728120192417319874251550388762132542809696746742088151255957500048345773209351570896441366222549294222237365076899951556458074097901655374357008683797199102419001512512005157337250780656837719140595904173294277335776170792489682671599657979892451539141250020073196465763635818922830044792861373297995742345863842348112470756376777989609696785377076987014396232033849006039109523731681481227766432273105203680804756522353439990854741112843239204724678335449006919465299615076691772028458369776110168771277644938474963953926845049034873573035357209004138327925023805287380004668187326635118836130033051719812246906318558301470668820947036243236244260524765385566473727436080789350457610079573475004696365991843816997577212640549245920247622482614832318057358290047461678760532939875603550496762704913462322741765672002437424530872587784261697792331471979128589709401873873913563514873123963751481065995325575342595185830274040837496841890133045956602965390869707953649829444527328685975012577205946140557866602254419475679514715504589759640385477482808016438369259434362987820742088960681700491860417200660024282985350614454991354814395024422482599258320250450419530518368448819287315859663411217054400088920973451522323307169356609801441750067543171496875387008996159398217428592457869158528442686689423161712284441081298617797583907510061096276397835282592891375861815246832197590973649336772173082807424982481120169774042736749594061089950748365087814951893825852373824676121074501479081199567071040812786022392003405072686627942002987942058369180092489640192987107418069438276291452826074862200957382877738218366367118579603434480893405902792829925324471105206927330434311199458378920960126087831777405215163782661625433621016147740594122268820804178654690088265360135484560282734801681013694643179806348332658704117077426415124190434444200376213264169193423390596098369560132419838960037656581594775714801545685741319340256128588431263348348011138150975030254395688024059402226207416153831426751040531775908527787345440606060822779124891517056638194002881712601776773842445784751643612303849612729743065520007130352341146793634257776791376546920515260610709773557501258997274699048502660882147717773042687018074167676334098443144878338199474647617778687621544310685799515519026362348343297267349343310957759038210327119307732096383133594504282863582770595178650266669860638926059391159345240625226737004023991555374556011519207532542919536799512405541383920334238844321321371216664746026661546163718127786668441390660517120401694917383791415952772939551772645556909859597783957923259283306743836861465409137376584663848566485725376915999553908653370923616929691427287985277056591737906916784588088046797493087575243965200113251622909310296049978434236718065318927560462495957527529846366340025585956668289694839632577520624456271866257652291630849560817955362647871968833831051375693471327562690104482567049066023399348819566968610892777572479441202897208735238944049928950327028634604799327497301613737028534534537625515624788383015470633162551060746757278101674651686904877897814446577661471196482859034151008812689008893998260400618221884298018789143979702259776031433482966636920461405024134489484247568522285671630614449641706068911514756958376225810283530711255365873851209568232902311664801306925292137510584691067626422879773481072576103171624466133202834730736571035217541639398104028954211995447492093592520714815232179497626146917650909954922357950855540718174944336333141075012055451403694728745619602633318019668597522085860027253403958971477504634246919208523267056326738967555296558505287435912375234249471831699702271841945382117653767197777789542391819346206361559297771198622472424202312698104498260556174357252604706870387807668873303620889183885765326408391952312092666438678054594905278942011996012745874975364011932784394983163284622788035244067289618487366680763262221836944911191988239205842887915337636168652832935574673071655164643556869765248335452143023966013253759061716761547065478700599706932952390652054661132649878536638591617803511179621647668233855080705691448215251229828483524225042954250349788050205585499721793411268007009431974748100465323465392455526065228630466198481476691936716518799520484852504599138427341622616688128386768174990747536979463486286962194903920772937924723678358512587335178290345222913606762388543456096743359362776039223795870786110392605747280324929456961772536071395687175632840314790455314741943507372073574554597447664323176850320171967493843189950483802201452082059799653398542123367113121591345184428677941037188119307305695051390645613626421508495786550615366970273496874584899620391738639137649908666029023292123004209656652994443571934916496135189973522064319887731076215082896219280501495902215204628814283232576755152517077735611029363911835082513036838671018203339894032873240230639861489696474603500877090501671065603971650991574800808850926960070758836119627397583072766407235101887885485808693828658018062153664735763683959948512256675950180161398652139436630579136170944737685568327774358558886577457904880329702623002461296961235368513296615257624482099831451556281975639018229592842337982437331650252382965451550151994808748360134705835113248562702485030122728136062989243944841537199706003879427308486162399913188768238666065352350466528741124614271619149300901384634940916957122903124893611454138174558822788398343453258710205778086626344617128531595555243871320320247765127768293004569421525675442478298796188735102021592923602925588663033368794286072888687281572564030980810360010188852628069052063601425028238305804408964282172849201071097395573175902709711575092228214031590492855646139373535766193055307954276025194262790846990458739754722736875600390807092539445558190235755682649977318683257422223425671519183420379281308902559113652152992310306344713260625301438104431445125741147878432920943937201938523495375309481157025823792666235995615090026580110621768897045660011039117193056383566361855314181560635163526644040652345611760445643211647211814344230763773690260158986283629918734220850446450993840687912976520028493632375787092328061348309296736331039274453191336047252903591220739699078567902147572035840748972962021468455148404472443672377942843221982654031242311879004621698927346889751881327684984218011836625533177184718372284767127018618745320696545554915271650662573257704336241959583374071773342386843516690337665209398478576066238322490641887286064648218511247162791180076517864252306977080843823512727338804589920214576771423604972132863307629528131176107691261029175800851639391075488939655247076303217219874016889085473552112953403859636670036361887506309124199555885378151389005136190356227735597104683793715404330595794009719721296412867924221043811667803689793905642091323975917159995562092654370645959327192373664929507749597259278850967737019816162654642713261198860971471562376971744241090585299482777395262038375806019870110540171774851401898115209849575433278811124080976865348615952874718435543464859839666891856662791873618186057493786853643425415656605323449075456886910831383408540310897694330818370561999482317889155617560129187128016259483805752854448251533041084474123101529856552629393126713150720320064059149671819836666177819392940472815850610216899391670695708400878411108999102822127504414854840480508095802455238325267523467520536092125614497455136017291169258042536886566365787167620426997621005954873478688414818153835575591606775266463094665583093667665751615262398767524511762694650514251856595591711351691531048727516614821707619910510685840356173513497922625703980459320952740952536053374755272510430315400560518261819486407675672457504702250965985528006497498922737343948616840428912500380074411199812708968288223617501345737978814149687979752715467381673536885785603728855947067430048479360497784231133431268144550201770986978244623425995655674330613753679708097720447617471962232624003853096048658305717265211188858244136552882741138324001658003806052127889899340079847560280775181682613355851793040712556437107578127299153879350142869986506731602472478508302526819943089395423139470168403819891452612239179509087208139244918469846616396584683512777451382120667058403438928558906925266452005839797765955397843277862271627684377906062190371446666851033166771209819055024914420273551132403877621395399276579170758148997256406005422264347017238669756485021337061892298742725276592246221313794849787840343382776437526662672189591659930423143392374038336976519092145982169600981414556861430540721351146986791884994152795815674811855703333312213586333564777022197187019473785029335971312339475782157929659527395132945640926679211739987019670163958678442403121619215284271851579373470385304480022245735154946546186417710813289063646546659742387836183735268941514486645873388991687311264293193039125923447678772470190233057790907150077927954534842612689207235512684991377114972855858416844351151787268083373632773009526580421751688655673723731000762093356538870851951847848738508397401595932043101249560286347873551553039027541593154133821843176324880744224631416992196787951504738799510602189239535081232285237811553231274878302940211116920430230137182701164683024556425981771910040300844518373300983137822468630890663922509053436047638761903338445618329554626151349153154532099028202369691885698033185581012617908052400543330835856466111322113166172800758611082878132758616967320172966373173025938514136266068761029108507931769835144284246319658576094127134318393223918760678175483697039209607514927828984773238415363828952887839674642487062462688153571937689275250098482173921323870445690800074487251659290032908209446843501196407744689040979007817042794795300613478112136934862440650665821433418343832943136994509679202585596902041773642371801551048474832336887556888189297921776780814109138302623342875033427325792641826492193193849338751030617497055441479675169133626531876436414991597295984325580121850561827536480425567796935703981288363324925217739339082279403213543740615267619389286563888119059667636803748825082549429862402587205445440024778605710627044697731115053999995235948374078808343541603082596215850691826985878030245684401936284242837046062889908798077716429055946818544458660389236450926318348597460584702102305958470537119072265797474403824688097598280362972935728905713843435332796641185996785196797888224792297099183231548171999047722342081033715030369439504920536575961726357102373107970905283282753392102305764068557070930337072130328165408018718674090457584165186147131475375263773684068620481746362773285265713005121481064362804452215391117166411145827861031603917390612269702995028221987975231872349787367346806962687467634580940023010507333387325768611826005065189824153576117146520822392896526044198541535914720954963516644185942300069586662500811130135890975703263639070858967854641445201631870887039107668075776489054297102140923054101824214564919436464056332568237103338332184401532271252315612463121001065389890468775462096468528038845617871557302703035678485913655038174675132621014651480526837433026550851619743493931637634383879710417305482531950639582003594843826846157915310418228548487200299963328330227958541502939263726074779600596039872420160705628867168339277927227652036722882780062132360934175715715791859587279304731275947638117136423297388308187922371103454244714874082999840091023750689335998697879775935820786529518190895326479316958075268145724321145792069902977474623634365151352656459574305348659436942285447153003142947415349295975156223434938532637108853821099374353450267240955204929122187072862963907539998384610403076258375740208445045087165627885467251393280577960451594826443802620830515323903447979689463086836298512567107811657585512764210618332107423334720062840392879942320224285791851651867249281606665833455493098123483956297303210706508982206115869715952089815861608614352173048763203247373755020620691800087574669173545518583705525926848586898115064238492393085031078666873228240192039060373533912592671896003938849804769849121041503345997220100125082880584845665042841716029204045104338990380566082415284266734961596843509882851914025799360531123836183253826794374334752221538408863856590505835422278696569247158359671345609245977444437968890052807878450947833268209760908657152242151792891923052691607635678669069229938606557974129663949558632483919152900053411841587360689776646441496940651827512786184676944481746987981843245355487068971012562389251711625461092324890025601897434837400050330316038123760647740040218442929931078233152705993859882258977747132957499144280685565984142886723528197251082200260378156721317041883298186170152466940614821567011061086731940018818300430466574013608168274256329127140968088166818871930510974710597933915580336107107528420373583346224732380289713827247184711420715743285256367506396619193487765650888394359383494957827390467175800479036693439606308941067869698637931949451030724623937205230031174237469489566334064926534068207418625906993179673716863714196893171247452993548759335312413399020444115858675920908399826783215234434728228230923183726241666887217214445471612508422007483360123311738445889825570300457475568118064829030581915033441337015257325184298952148726487963018655163424580725917868722178511672635469967985606188641229507930805792142103048347276478315813318961178496987592510919012837525170956633323034791091690933185096208630734715994117939619803359823632312241891600655896180811050695661381726186591519775486978893679044819917444965837739134575430678904727266267165146637223443766299221464027444770883403594624797380366341385524988000879239163447698447752083533432270520992547177421338360417825713953624527236909040293923381601254149540921658761367872700664321036766037236391438849161738859277023073131205820307152362824015957901200394211753200680960788293286343892352599299679839003051993684196741646383740505956377491232196376122267759536659061897535207756964217057948826137989595263080654621965913775578878354523168864998478308764034521131033066681802966516426308104171378743005561349309937274332195839492393335983498446501024605597231031933498722178302112243979353616652378046594500467863024672996716697901904536482480818309580090067904364142007084600379774502265016561055756336929918544630435923792370232384525904680661940831380225422240901583902332270943812800871763229161008788997237570584011608453693993393782430117542838409564575381756507260112575861439284366814130115062195430579872160829472712112539154336754161893552201175000960651896847643111583720237044298675921116842471765039711011624489711265959429603465185230435669614280034610587013202501237938855741153767306301996729407480619981400840698082331434937388152521446261184569446986821835759129416104059738752291960540774961513700723606791258410985293517015159081553643704956290938174268512341590434338301944443926880544973589315930601197541588492511689896080607614343710663068016148528622409476358569232036861285315133982856983621306803294303138569240394770538087799265250769251588259538279203611793389751863108034646923228247065155468388938720497793206638511563962700230949743649174164843022074542863513205951296534388569593589480281883342037621906081983249482359367930312578506489923887655621428972729982385272561562244643581223478158899743903673499634373197439457883493761948024175227402050986740003000774344106162270516528787293347170031305770142638491165974870640723424439967145280968082376016569624073397681423015996330986913035291536582100509870881852547743346064081777296754994885986792894616926324859616613182551010855475965280330006307424118450054155670198190758797885847637835732911561553522866521209735613564654003861247886268878854654625671052575657762599348427219557745726960162286417578127572271031558177375780488553038885191761319310430500075743853088216417713827023104636366303503448756763096056186969136418593381575372856383950781716100939861413759347005097756715700217859730752216640285778726040102935034656010879477650790037166900875055156258688631394073311197095269847383248583279669185145844598518382029907604593123540417125618572447188487232626587320788905900655048611623630672611841366943745321348393999897595498502587459551390608287181873291915337952964917238168340818617190606619177411293973199446334266510652511931173347716294412080187465186173457258191256729830776046424790806819073822195858322424673832535075505363239587077335001710524550813196209724440022388735492397072072622143012178867009767655560219925483010973054700743472483766980120513055672883846997176821651102921686463998126717372897184004544303521694430373372067860837911293803638155182658185594429567385202778631869869607768671071812639319553723673203586714435181799186349274263131990532876872622183064255389701571654869132989436711165638454071176173209947556172293842918621479708161903309902459709826019005101936455202008315461147898529569834163146554048763981920274302002417938820671101150695918579082912611364835207810440262604767216570294710624805383931246666740120014296793425232979656047851112062085146316540816989640181244692191507113387055818717756282357416677138154061572235043934683174918594975297319087301522096408162604874728149756765141389759979032358335637824228278362610808265820498757100910883280210323797862900531957990290788396849477987564891751900803180855193065030497002808724624759068014565318963254692379625647118217594813871720839056619965979077673815922256232259472055502336571795173117055900095175471837861976374879783745951943748898289070336693751714467653346855248271763822032725615282412004319489738689022782535410817124288547268936189915437281850412909738967776965469733951906615540482860528193276648828548692762150618347815003797931137657768859362340754288075134260311736335830709429230359998236391131805449213249893274497222615916319452965434356568635902636151738517181694673703543573294624419298860965604912643014096688417198389782549735237396985276263178562557482163338928448513599646125832789076776069157727269667288456366166869825417306384561529746909658717901201941194965364809106777255964144528116202805664337653823859328309818944511014768289726041799302682034656935534134160606212073915691115548186587982423620421257161868130653565399139167637288883487769874029510630432044227405711581573897431040916472837223213873219581202423476485292256774341114713580591884537648453838905546295973233297805260458834778459909882316933667902988562252856865313522973216738179900319970829610483514259032434684245574239250646710805756476829755234680590607783658641949311773433186349898198254371784034538636396887789904349369846251582065997838357066657268428105623224376634608277385271970930279338280941373065243508663050651059259012198747055385792029276395856984644765443289303268042151158271739638955211964720004817910912912607176207143465686322134832175854937287204804467011604032273170833251550150009157873122102063530469978646089913544840546390631241419937452425240767192371599899373058160136792571326329082610733166651223071389321198135142885855331664391237913617709491493512527139557931541175410772396103308035078151574137831252206581921105441436392976913911355553199252522612807857331954530364388219147098578157389322274777145600973682347182016126439250257504281898158675915748693882091338200577668148458982690828952981011528712066424796037808270403651738301413110830797964934940873078655032438772828461177976847253652554848324524475156684814345590389915849266313086771790412321010005155946071095256500357913677575258968506615238163694621892951372472813804122981302261461847378696515043286909693660264446100167888786075639818969931187591473634616117605822427254306989818305756243138276960996061323969715451493870407093332140528794492826714729147042277106541935913975292259617762549043649010558764656988803245841018245652496593305039303633116207839915673557840617117489417110865268560877064981161131914746679516547149357751881770972284344695232643540650815438744634254291111802343581721938361869914371602145003661352303714160543558196879436611549585187091355241209033747823492093161506920397820047347996443744565057211212557570361896783962667814673073885397889801710398904703531413955255548691924068989026190087110035180750278085075243080061496658499478629770532944081756049989369137036541785136755810094154891386951886401217173844792047504977366503050031858674716282664436854910101504064843018377904985025585720044983312837348228706600393222969950906906911136707913357174506836845532544145458556529378344015035284239251627615653282259142589024268861162281013116012276767341995154400726683261810432599411259863040063352646451447041648517361068094027636435764639514627812159641296450448491394494630141387255760929709426424926888670291249593518784406192063330357858993398227418630013104000509494188364746696788220540715799279500201553587627233520566526124473530739508599327338050262569307506676089965535071246491507851581041385629348321932601239455318402251675530473765661354180350582780937781093096188694148597117823231412497629628002817803979874205588021644864376152699513230080680332600896556928626185311727465273902321564269675192945086361874135078380721375021882197661946031038788779932984767274592870882731717609128332460689818218288443992324038761889377682897416265538608827201601483494965138896195789853239835364742379859299989826797133341761284151093363977082665311887200926639004650143707694460696090777698496685014860381750364488877470052195252377979398120301623452231646259853893455775979907873911345470702891213716419400067922067751099518967462785934960705862973766758206581226711029892880333092348449329183407781174811529131216639198107761695591006931125585474005658962736788744555400600707098477363818072108920557889590942118884705172824256841551321790171860103843054034822762152176273114106619072701462827748815621280989271024568235248460613348820747154926938998140357638896034829464394887964089681808852470721371084529551704513457840206598818907053851002472143349486894005810404674924107428789556846477105405969476469839291115469253554777349450356999234878921373060953738176364964455519912109803469435070302377920368597250073024740562527828343532325407318147279175896613943803282194997110447163958489296484667615590190539355262822292392923596963616124643346550670826099403364710320671346112514914763739532854065478254791639997428580231258367780297094747164677070951676809363624400225637728670366552813871317203145415663580895546928593100407995242533879041487041181916005804844320194622664436065893262862098056485582327882915829914524252717949171367747478781389460555861927673783008322997161031798035226721340116062214600285479682357675395208626308589989996018179428051913169908026254901276345371497245872591208672463207560943536140193078031220542824430934647274934641657045765007782228451505042179283094731723715567583841880773609188472270763312280928973368696815914231877827883710921149488089458147458616591751271825796500740158549739021551262686613578539896836731130122081412996873151755878214018127359863434736462641302222131142715461735224271519258924849173031652757966579583027920309685473689881163151457831082537951661164457947935053576146143852244016039537591102933388835627110547796735684764363634947142964636012067771150047662538107635862180874581773998032732021082629269890040541580498707087842920528563664583664322366072190167748584001724866558802524950325211378425268106490782667630017652493781716915956551685987564847870155924773366781986061539893189010031744068694982754974452268453608757495263556262547429602244046059415480815295399187650278266072284713004363634628300119706388347170237105925365879754802844536179452945319496873145106704446947457471124481427530008232653508612251052619281688044397198475533889796449114065623849480579782689249998760272504874133773652312501657465308951548677571206839578287836542528098146041944658283560290935433375579408090018910133354802348301190808403188369980416670212488198206009074947227000429920368243683633602460565697807370430550080644166948966286364293352539065346686675428559569860996796491082659848994060191385184339116328438148013609935061805042045151687085402729571572432491652513291410602351378933969869357878926042284740978478068238509153547984551085285435285860352106701728448140216013790204625354353980187474602001940938331917046866479761558518175257504101840345386332514300215804023767622426292108673487477744749687895567368201696007816307347442022184932138191402924973583583674292060228444383972159606269665946286307924397722947744160166915357318976532559670849943153539867560003276303370024205890593094567794409379382092066442833441146557542938828057026070597150598263490805644828369611363179512755098445830404069659149061539055058998639403423321266701882296977062348765628507416514854709070728378353817339805877788297573560480436509564306491892490427320612561902967312395607613872168804908988900855515873478182539893956613494750435552031699324444009492900585222563648510354999902040573199167984437418946469751857520584700103492092986670351662068088206761271515195636017312739162109043065833149264672847212571928936493539353420208548815288666424672802710152213485234284469675151111433043976583634603153853759279456403076402778788228076101813919897079171205067658611396708932449796075359061353132431295558842669741710738266602609293293800930893704420307569771674966643958606955026881522427230423056184564600447539223983604520560165600099732992876671316183599143361386514335802898629021362980303053307807416682979432909565381387691132228587721458460995687907135255265292120385950350415677380246616368486697741742545949541834215454733669406622600914338358116654265715364065144019280029319794378075050003737997843319090083811468086161369367876060115767658303252066589394844446165849974264318238918123923480190582210881298177380888248877619698090168329755288067144713679814803366895220686632404465613548647154083718604062253918434921979877391941951026616858965530178826784929108099677001210434200670335169567070862946194942708861280259452397017882772587552218785039516016496523567748764692559149745943043637162258195073912632757293833585046309689808688465245377692231010048978500575968791948893169631314807983665600240546219348479820056021341085794119493054060622631859176259366935781201693334452179723658840678954448514092285116051536065252353308191702933478819338186171963092456181825990745384890701138403916699025350289579732513833873841818542417136358848653926083841981918752826244259126549746484517866994992812861755107781673539390565295183336202324968411450546536691105409667487598150631733937582359640714855829929143443931450754718548394012563545213451833075221419623497619590213330553111609862484500442369661353047741637536788061127064863333491937911655374815092495168251797879574647603117337310748491034524515409779208631517419299039316559768969419167364280759821777464585378259703776003825106229637440440166132338774524184781783458479448436314341172106917927626913061133789760309591828788769991644305297194297729809034750385198884371213656092883543914310477553335188890076153561947882799187514207522231857171303887432713507822984781541481833428337731959600302467318680720632069244439326453733017297378718933362183985541537604205343330651910350582186928464430888807479180490429778856660703894814838966594907344108269309343949362223283258435398321485783335538903382960663947453176576297192050470071954612749648118010328351323912535731275086088914654378572696999755731096751534681304542282847396925797598877134138306920454987393163599998241440860819093293077083388644374079142585968597568300257448832117999867629056498272014543378621584057142605234146026087384760521917018149727564985967655080788558978693170149134690302531901175779126230800859694157302050620654881059236615226274574719492529780793288229581630408639120676913208697658658506521179208169121927929570507810095507934838968610139151556389671344315226629066463977969458389896017355659378574377425947296727197621641859541965834530874669712567761496315433217733994240824471123534396190055902575546076153363452751890456422693064965333242245031581895446416475285075084573194629100064804575268833432295014665869505266954884255174364081038052362799713276509026043794759298347494307120471657975992505993737352749454703150037960497060696612960536002594340167820481637597556364280470949957367622249099383531073723697399970928006335427982640709480235150402772689306445188118240257355867216899324190480868374446757006052754948615936908338168413550920748973524428237189097587613164052862182692453036779309491676089286038263784857568501337784050343087346114827308540313946413885250473161199279862080538136612731988153240444590938714992582023600578876224269166657968575861563057674714147191093643480804985639643793438114994771196430593977395079942603624760099029621865286125468851822632889289858179225939206698318785449925935023398668191564899030126267987733920778154900252433542311787851237119579460694212554529805269034534732630831565039685175350759113387076259150652790614083540482883731754411051466790904814289016937836135674346719352857372616604006843373972230509114465586353302164226914819141315010647302169383994531632742467933649746966879166851514690624433277898917237250058974205770064148294274076366654623909235942774566423986385991657861036383493308698674970803286624243098770618624138616132219002358171901784133727910840644564818565544574255494882318797070019321144383853762186297565337293454647131676066060983542028793391029958538292182602258813641829596007515256849975341382105831892953279799886572653284966743184209583294503329075272041190300927263043586493534668206413077234494317956588274084127982209125343789319707251134056434685855870397798145878166396283845739448382018055537973068406261621271594094489912869614658342030032111772288667536005611135065253405111080482757277655478936569827729933716306104193747289689317058026110303138622071422498660737293430640609357791034005027470023065102047162106665748874050606882679362271171750838965669399393697943929387777593414005625602898326790398995882283072911569667757604874162623486644859074132666183724777239909573186714888955522780454428669991315385664659836844539577306532368925496090171547959670558291140260749573415542032703709339509550060330582479205740386818991645458694295660753965734771695409857013261521554626790482307686160608563468021574879037224595668596293926375467299934141543507801799420191370821100431646586983987028396369465921820847520949797751851917314877398028797502677937753332918782561843077947165733634430788057048736794060327988804013396301052929658459749555519077178542492656320672868585593009323900774975368955721804170841902082332074558943460066296725743998046906300255679871342795882148226403186267105549967478443249570735489755080791643786278597367541916631623965586440730629836537734978320272832465305991537306995546024499450667663674822534609319928126999892487692079707624184869689176302403931361361085143816542690006272205033248457134467634770125540044346013895508614861922198838622682933595276448943518793823806297782561729324325990471397768166257834031052249268620480301751987052575965597123032564552111038682666443443122274813673028860589271067994926393408878779746436229885520125752102054142187915020327545003464873931725124688575529901478856671539549742743697935388998298276054875320813142055020887803031580071299756215563999467256563018806957284084978819360000983643914581539478577728534525724961045272934381630350015564430672911882139148021252445374549803067047447848488595510112519347022117520703523452723165656295587241251425010042845454844035312274387012368342067087430757628618774592331192377138511467555013599699932432439403491771561881383985153295082138310581706617839705068718737122739428778877430058520480516812920435319135917517461993559415511804648260055380710451194545185441778132764296979816477256068724963567639695054806131087559926242222058502136474976138226303180055202927097417532403445419581384393568154366381040713488730089998071998757178969348742919814996610915825552533145935100814304027429460770069312514310054992300435292618743091745764352588885024737157002605017876666718489107121629529818563055971473977815821697860264654181965485944983589249019894582780797884183718711090147222147240347280976103141477915351557259518758715842430624279254153610146006952558937772749253121583488761947058282681178861727850766508644166207912104441906021808840505393704573512854720875857755461741885326149752267523379969699567285918787953153900599798403771061347299635717925368609568459656904389536953272843316843518702769124909757566995024179504151650216102835956888843192921236955614135028782972916381038628455577230415936241763980464057277786488876568146174133299217833509196030676127383537507790549052425065986933347898540074526269052064392579151116575272701479100605414549567663152300285009117278959815038420727291068850944857371683089709428233726701552819008402978676729886326632824195057606713692812973586364350254025398740180124417295374509586375705850777703575624712811660329434458450765437650315121100761947550729935325350400905071536373450060867663413721402606129848247307040983793865202509723210283563580744093338559830223975730458838086398220114482543928583043339672227290923363086499180214317381772008640799568990702333276558130371066573553090127992364235615140715270683227663307200472873418207636623257738826552099043458054951886187192300839426471341471454196628594296471817945824457158092029787132601460876735906641982891523076442648346545885955646945343224821891562437552568043833863975311227005915907155324324148807112840426631362412649426474905068105277138260718026729425197725574142546339484408457157421191741814209163869238757592111121464996424670261205189773215225038318132437516236225690053049751172079684698002079950205341677862204509547657574064902039843165965211402648376402002844040670574606229036985920320325690605175911910128623037800916449749054608910707910643845919048496732781606835386326184333510303712997994468234377641552356410268905582127612942460683491801335816578442485228160533289063125504392889625825791137772466930496821401300097741107587500917794998511764969288512212698419690161523726672969939470715531831177253516373322033229704203820894037177741609693801555100253733133933518017069015036280026446871327212518622589218543322602342019368174656126165002274784170674896524880415422998212810014542519740529016464905258324193369724090776530754703189209209890651983388934844975417358138552343644849889745695158031368065042198555993840925464954285346446237239107894471261952863728323940787676851225529443252017798589951290077734355389968227151265527576323613485873718978260074034661621273399482202648444519517053839899885816195833822597322710691760982614810510290183377410700120248182421140465839804861073177749682119796059856440323013510759220755811383708662391865681857733318390953656737827037019704081740612572055743209587152078223930335619360342571959240648108404036850243547662838634271451216572106660881835414703174559906117935723527158937816014417402775395046478020715837530139241511106702822013344447311264289788750798607151351403278492639925514925673073426134743815592774692173804856898223045336442601437909274349471981001400209966899346895167948435284295026908424932116527005507636989644038878797896689255273230090162066076808380211505619072813827564931682352520506513259028831428139396601707222147153198303002648439729304101080343017070110210119582293509663154782979429326645487186528143291262824877705120406553057133076662375771403125353773614998847733378755011947370037079258870876375727053400171641769085788834158016865694801599930692185461055620486063158787759346041264530763614998410332899504406477680801130999301044638120013186877625660322996131934926943212342372903254382971628087244621180942206328022541743511069428098393867841851589224920203802450750218456466278093426177906237358814489175192950408465612231738429765761910122480520275182640478490847526906448005186452606760415845453741213940476743127135017498218394039860028519788758035719741926001431527282171992994166763695325929403375776540482937823294883153177753309588473617446283268161185948027785521469109001078847011156512663390015064171861498247139314889260840599223570207272647947347612036596474266631945354198237826284997363490445252119086879994267460642829601112560501817338385773339340979671201249156028655380667104488227782316288626123645360784783334582553872229298825417917127909531762688757020621356957682427238089763933239439466217517864118165103617529724711810298979415393950953767945555438231889561817267167947071369589262709141100353626584193265550486305324405614667746813741641480885338617012540201059490177813082029998152842369337286947918965373211591250979316856721619824800405054936940782008620481366859227996588007552399786527556777003741766230699623125682915347281718647823017408554106665364922232347277039314143987720359411998007949931220910795780651713189792592422816337413291648555375663476910667386390127823380686818095855991493747036681778243449126351362556897483042606841554124867615797178916445021345923035094560064443708949020904277068141396406025323691713053031888779906885695199422793029786967712768716574179029817263391111669594020046861179911098301342624474220140560900454783694923208766499955599669973293835565382711958931029945717570249571135762581801774886488375818973386087568399629671263571107618040262283054533923345562691446431879483545996568780572575568652357821018925861664781328626631966676461088212271535474058501577459234913395450424208992703039822047843076428704915505769837881342433763630269833629144881536829427751653836712984259677423952684747398631339532734694796244089936386398375309082967287774052911724835565634757732530135127071040059413031872039357276127681404650795868852985854986090291237255755220169347704467002156847033965478593428128902924510906731104693983841954432218684361885127648287531287434387833646175365387240392817259714269666229936917413707296695616232658179824353655940573763523914350591727460008569835765271388053478787332511094933789162999397588780024594394551821577317914428910136281012351829833484635529110409662754438000476951020092257863343573586692798449005814572846849518894948987350300426558165913627999655942597589313958278319073647842763015170315978528566813100656861916574828435185767658440583894163334380492610207616533659749279712806634037461910367929811170063602504843416808088417323871710982183082386047457896838610360211050919637640320336241450354172303771297206065497727689779088937550195827421924164009523827556684789229431800768124904631084215923083079684847757671309747042372528217966216291018419604441131297944517726367334697346124553235039971634689980060436794716237553841352462708854926265331645805830919818998745760056591197476432320366744604045465234683265350111592276651409362395208877439724133424512504718740506969048477808636074910475530107485007945976233187798284098581836700756326199824232442304086898739608176850706486915282675930356964454245541593725129265439159237498007848645418735732677957545748101984274735534614868673730413960931040843953195116465098752551850724845236054690979168169714413534997301858554952518966293547483236122170700495351202087614320634578878361969679717446064271025811021148167104356563825699833611190426026209967942582784505763053456623624122968531338327671613913284081588088379301925800119250071089448418083502499098766074928472125941645656015327570262433421768645840721473578083587513219144317755163739886929079232036946494964428495269757643828513982077245301792172915282618578220559071942295120108702011424589175689109697432446943544638003622068986563330066909152018825357251566463194552339460483035263463812845633952473759396789269315959161593897767267150874621529995637968545629669520057424280173020004959741923307305191474807696067756769872321711869925867133322922037112499323028415627457487422816107554960953176993593156929462104294837146487357762442367427170368526050697211901093353286897965767326566069816581189559994387138143048508047836801373231066120196411572180463039115070227909211121329066211994665562542651819214216995133862443185165778800073564994629606626696616768583959005596343406470655235219210012493509493210291220766342816337756646998403088181042984707026069593947318693248283029204593671411740923057297075094936954855037841799332254092140534490542427048081231454397686192639621488466029262014656119861848252589809264439932587448927569029962942517982797010457313196226607817692098315854579742917068902484693943687201529067502664060086829805605561150827005493756947179072146276991600517320087425799079128509043126209214679804125132454744205427334238487213033883732335947498117232220797895746202873603736521330036003601591867558402428991932257072731421342146637838355159719073892778403290837937008657276682452077405752610574039936957948236803048028385493833108847881664093522094216494306686170707872761070184396076223364541975808279767114150392384751710630008230803849289367505201550698305261981056958538062671311494924909408342669381585888005837718029962501692764220514122113503900103948459021067363154151082698333973839165579032160610085519173015899978362308210837258067073538159608856032979561456084928297207796491993202327212319713445199662915931777629247868962209165325681625622360297211036902568417532834284630983968116479838212154625896923789409331351220451568224299837053327530150721810846311407844049301158196400504657368836625480174079390062131934404228312999861705211144232956160395873693876364982795583877116573959078827889877398985201974813814801557077560775421583117161376541650187283865033376538557740543496688727469801955424837765028570148522055614614411382089170559648283548984677345362517027991687317982020846779316704826979933279905777418915850761502633553221569538463919281511335822572066761338776920929094683537607726167270497638381020805616042632317856191263368524797001893940884697248288699419808010565040698583207550318154818208508596880020866962576906713514786411636059478996432397027917166345662847101355377570043619382174281765894361480249560420503639164981150013479499557966311182112256683653014798829615458396994353272708973954588772819592296602072436236157154560702609488308740588056680907954229746303297067272205998708549972007701704637881090664177967463530654734622311315098416390920044617691114136731060692133186426177889940208088082931575098234687552414567131909203540846926548155158713997463947121479799333324299634504369275927726811865459530888990709887008413804977502802752098163178629283083771869589170043980780383144175674460029356061211021046794562033473293501941895194907693354973848504346216118699584240877034309890893335697837194190025798491170556580468580254473838009408713006031287927390632806296922814823390237823506536396188971849122180420185215297019368142415491366096171944757523500083671918850893280338373083397848657820941903178232945426675635577362469591709296941954082548737510182994116199514744853588748016073556375630682852754173173118657309869218835360935842166539063981867821554463148233750655045279833377256770534110149944427779508101035681356152686286389527057456185638929836334437264954564047397985091260514144228217344765656226219486797095757080862775185272882676555074456428681049654848408175033629432627556526900973381638157366760822396519409124462260604520825572429651625311602150936888005370149690799355121709368242823271952296422456198584383004471494318235089766432528778827635829674374301475379926974161950685247533423041313234812341660578761362025750112781738900601100157865855308057563460667086967808638494252250997670794789407391955733450830046317685704874352533924340824991417558857299865612467473748975721208954079812167551041345122016129150319541852482709577163623311653120298621411198953811428228845790671690824723542298523544046251053809400533922546347369357071038836029213301803523251640235476916778673347185311389627771602018695163007907746084840613866755257045523734734174356193785242910917191341892538934100414141609196653870926754806558282638989093318466434882155152709531549523989078433360101340760863931503490383237277930055284796156195775956241570590624089404761037688280061433575697369908997973684353058236026585444388497457171940264499360954514670802717068632466332478659189063268505271100073133911489787886852460443484494222197346340184433025008002583127547407743795235243176020259038245733399911911735938832246095954532249871152210864955299237751185988462212975925173408668791626256955772231724836073839370995063673415394930443552459602377083974424046740962376076660917189049306393994453967712494905022063713455026581142097234658983077448258060427478044086791371257686627832460252519481169425297578247684332001004899083796448942919164850503289842764209438546239476479793208697206810954361999763542860131063798946785948491923224845398386120398471298002399884311008874204783900699115660080775707127670745128536139581011556300536467213565574464313116350059810510133801395804539037817811487186249198183961184017850805984000245803409425179866560631956143857636425090573839454254257606800158832404627032982887895895935247614717495371157218184711848407437475806478426983041150654365913383202600794093469266447423924989831317849378205761088463528474094690464058251545368949437015382716062647336655524213799979466140343874749279295273774966580072618107049871235465551204239615328388229644695793964690803520004471984900404722647547854929735812004742034953956438622295779693258207814418536888160369627443528013577908282521204769421333634385479305647279093249092947710587482917633494853910533015540866135085236768053827933009587784247726747362205384492278261472064914481170116098398920375915784096675700105368256183128108965041358862687570495481232396486485371161436780897554654548762042752437796778295061329073015649596401076461644551476186600961836578264159270533998077588544817855803698274484419210246688649378578713548306859747066296813132117005691401141095184148586436257331785413023953552016108802280001048623187390750498052829766093708260074437274259577739437602264025659054192819271164281379309620316666218509260976177904566955465311108667478443504552963733893229844823728860522990201945196207171871862616813982080989751841809927491148313051983398392557402180052434920375074387155937195213403407749146495688386365728617045271068473229362836810580866057224595860003062430129940886868534204216466551124060981823328146463925771104068093891069766744306541876044472347019783767440836224371339615548857343257770911514803940232282882857367982735398594136066411889009732619657448884860485636268831208871200593615864771457317371256040058063267428972008778933951889689560984355550888730625062025498454551693477655260717629290422867652712378798492037150443570255375406136356833311701713075517496204555799800904595846140590468509261730321614889934304978988224744669629372277003179948484834137880261603961472094577037586277126567750911116811911417075803785060486284037096960278035298907595882266870604175230066966755589339161125585064001769733180249203484464525789059051993658738014145083232006698344066798278861734849884885593445464432255690948248996264252945098537663296922889303160662808839484090983983148007226227412925321401111224088332501575971477779267481576221302381224621034793343847521584886541044770499375488525851094845082440141906504420915563477167375728010362399292001079227658258016895982605493147903391309054520462959052079094906243451272206848594644120215624381454313342306601371885522515790884682994768271718757535335450225718066923510117468086650859209893838083498927606490880859452489713599375501321552558243831090280312703679568620909226190502717828524746706145848845213493583127107380227583458690866098252664404399455661194026686508776320188967708920543182901475320677541812694639393652891954715032230411627406599875252178536855214938721373722569263447783246909377536017229643816754274017153452376640740016839937171015635241019918438387649133434623062256294382083872907810357221046054993549782720979578679800781160248360474977688374891602890023843073547811604129937361872914476242979465623529632894837310539865435029716028026033582081693203834715856997682227754217702362204574679915187186137349675019327222187149995337880164445832035957013833661099907115673861405646296917201786967401933960147574262827841850109977155379627173385632691478664118759345188216735482787638967945004404599020919152657291581728732828448657774983566709322674151682871293364203019456017572719825057149850553330873277668951303234614184857143045800003260363595521286838194644854290590400364577731943987364802686245481369769866337572724126091589754542794728880857396321035937614168123410725231811140819198758789943018672162673345574598498792908939491206073362928144545717393873457332860558387683862435355563403951126682662048626307622762805621144282930092257110206034738213614027647505161470007829963851124702954874415034342516477185478413881427879948724979133452916731294444657931687627814468564586775176938627269922077269202230262746101076392794081509775717721439083087398229037864285043271841433094377213222281946656420925841778122537023144504770544413564294653233557037321126452635766564544307996631940463955526452510614072304868414956332521759520024210248395915015754057992600186431959566478703275938089788271531765382576256970894225376177054410420739407997267501128543312329245339040322238601040780411524779224021076411135747471588914163068882529796862596975466447017476738950299989259098840475219342176888025098373260591647697560369662889054937688806347198625953203302782349740371125805834608170337808526185809730014378653747272104331352114469264030825566026161054304819686186654176987367300583854748274679895577144330979349304271387203214921728857071316097712713883933137826112924766588722592242762260458426433425294650236163461601781083500062573591107455641725366933400345158395033923403816028465100683470184539202415120755224918527974245270782124830372619368851999255112518779500788538378540345499797132237615667691284803487158022507414529232798850127244720933587067925317955882392692790170672340947643127900008604938762201845443655265233611663413672253151946969433211932345160538920394080622951384119808355868499136269468395217367990581541261374533958059490372688062413914937462201018989540794003824835170198189529418730175961271596758398762925144064211774419956337368281740665177018748047314549274733608654073097363710590225559505943786945013610828543651492476296194320773368140354890632983354021470008367321584679595195905028592476603190892152546846356311279978846771161311667001721363324339116579072858250985430398454445866618652686791999098361100129637816249648352435438597537522173307692449395988706200170056373636552052802280812159451176580072559653549550296761940123365234823136300265649646121972213611600059952855654240425817391997997280653205656282833545811935977193814680861664475775778951694046809434468569909402100469941603071684464568696717063231437737973765851684084598704500652317816016292165807552753828257872320169909787763156368040881859123162147473960161510750451210742544031019080329076263919079200404789311377490276838835222659893778367283025105638006101011717036569789691373123332912979072615672335666601804231836679347756747213339503390185852429882004074930985493359206388981036703558999225006736835877431142430557233771317137207529663899700947085853406739041685238603690134692440777577628928396113027719811903892945995049286548801236363621009904789006725002700554322091926333375759436075957535471714312653480842920663065043541593770449790389726783852065169364929745329013839632270899713767516552316731299785041881239285200644523196457161512895441087096659997147627770868228016099931282097599266288586274839992753624715001671495711973093041012194219703893420054493115327037729089067659618953485731295199694682344006182123932714445612277094625247469177167978859525565170542865533181361019802198939267389138435238473980443367444765016634449771341823493875623795375781195166773498062425802969411509630964204850136640319850894248819350245791500950857234365867864838448189251792195150551612210038358518918394507003586757230440386423258579734250464748779804803173278214202977292866189002730015966212253124865745515957412744853058100805884874716285804464169213324082280007123812432659873514831093330218282305698324200992974498833288631501258739645045256616189782629392416048558461386248351520234727275579267847591435497907861273328226286733002812202596145406839277807810237763646613536362605216792828482255007024385887905900785878856716311923114089175740183335803738972009831456924857752559422277308716303296763816174358774311614468651515448380004603576537307793439221919537099777578412480768750104179288999200272107694775182863289408800873167156072054704474835339113537303341923861164104207319953654521923695165686250217848488404186532844915653871667701856519547921240377929735323795771718221407279519630525726785904062623525784086103558961296308453938712012828468463147881125863615402381961557741401412006645112060857716807450755357984200215675402320646371157879501588583930462023124048550243899148746292615058339554725228098473399020784435942002510404100014263966394458466144204489029458929188869230953216560005668169972351156775863386574621690816190426404134925122321030389722222317499058425719715677066036831614746311376048651979520173658734407606027842071569549120313105178225698740045596859620838730642631834265293223919009787864516829898532398240913181840570091230978992026175022203723850703309441023561878772343729432580637721227855152075670005476308995436938769146326234214354348640151652302890324262653287102908917175948002468521347126454781449600084316864987247081531876177534107935353550914536330965681472614424765371624701461189734605415324777128241317119559582618067349982143729558202592255503642330399910309518906690743570017326988224919600349109698030715543549979631468933681382923365738358159310461207296558066311884546659249698930613165883380305121820672438869466506689212029120686535896952602376062242561434577556440022912505552005390625038306145735643887949364481678787608288207129181197202816952466906431796939549114993623430358446386542129938723375987233060398138911465334717002195170593001277548472315102643992372130746400559302091015157978791311027666342817416453128447319161618224359447411742256410695961498441681318429731088108412972747245508181017617145518706622572261095291004329283580299114910804526468469740863045286304489054526349971273184429493783935363946815049537714354631684144075908946037490379743405699988591340210044706558196948289938406257130943715547173205931034254622897589994709964060865881251043057413909292744570414576704718936155370944026297180387423403010027501041456282888204252587588886191973888300940279538979119167728587747901895841303607101765512641630694448039977891901871996394639949746913639507965643991821648783636725311099178543357615197363963899685563038381237304082568062995654177548175339313150255913082221759494887682054339857083624793444738435019440017359414363498793628477413340942876578796838237190824406242535491733012447646335672156814855878609610539096107192716815569789542615155918733307068511027560942203114847084600989537839831582036856398094412487109836810396865927525053771244984390989068350813658910728559037364606590161680514078030445341197924914949708088483147336400886282024773422730338280387872645066518428175110301526321199488235315233164237521409884861628576604374476886068471770761513387717676909623625311557318866408163719942420611920018662307986058086598471716290609064407241644886680053325899923106318991193603446908240881226371691398468897143342772853465479768451046670539998504220218588720567195752423625630785250757216994007729987110346142411035829800297365978722793333469082153830092632916026532562611636069316418685368366778272160147956952791712531363765635122898221243350307649238601896701981097135226282840190008176798851467930859873694832716532689169699701336604215077907988943035836562086961577536142557563656516941641897680526213637251378422459835350025934159447649481866812685180164626484434430789156490774346165289306654861385726381552168410579672832021990398968889945056418358360430387565656073270464608470940680670197882209426274798208426792623232791173264770661334356374101687518401659714876397102063244618185351781535210396796522152974728986537038375924022599471461271674223141012523310318429560535971411642002867612523563389075320737703493993576858403103655825972985279136869035348094768797356925314650716155271664486130071354340711797766754547689122659692787341663360008977810905940514502697128356476507198151952906817291179956005071267165211021046375459928248682674068713416513715759615250195227515406431203800351244742182352287829450894879196635736567878237333844752921703497394772458508351271236690837566750433440778699774423097669589613622989496068229127699593990678865224406431966891158821373704718265161284569945325554935727601539187557119763093792166428976393106387287488316159685277208910937093673873101968238185512893182502886030709705523400047996224705685930289941868561659543509352321987737822916135340174627564271196827067104429868702767499256713599715100523318095275616072966759733560183681074008008759834530861588410739688440741295224610164455002851144620190486126598334326291227693319653914264173873877616045099667072110216072697545914181252447418671589918452250875893118456465463239143180917289278141099553930913600714360179419072081895809650624503430284293935540729223315035189641142286679515165345331582284316220167638848627587943007283292232620903413518170359167431519128300734812457549998516444473122937774307234398299015511453267801736825997863459021434479567928951514683133511327930767261675959659039582394667551587350770439424426917193956248806311542581006545520249041193801608798737554266124453642306898466488140890475227567803261742607034006248517122081774747335036360494109218755908407380903155993068283562013112288512447155834294525604032829783987010149845801167638404944074722960819706889473649997017966546015331785943802648126511020640554313408307455044620997281442868039104257167598330080574940218315093963303757751237058160584550494426612993994020565760633849714116495183351781486240018051125896674712187584397713568201473394724566309758126816849416913254734802156770452331252997510423721467784772788547409971770674199594579364407417639706470401412158963720044406510423362220349274871098042795594535027482462638474345421123203922254330266477398422885276190844981155538303064689975897755628735720790741968509886391848239216230172028654734481552379168356827021946226391760556507309458260651067499042461388868185419991120672930335298075611986583763918174161932872576365391327924843832661238411707609533744106258423543588242983508808341381981760960232190095295396655785156699291814265536734433360005419826958362162958526914006842623571051160657528726313968361927862294228120987740899780598102231248676925010183486322336936163523670700630331040746716301780314347693651293458346967831365240682723671258400974441155152366724270661111488712751567488047056465580182615126016382423394433290344429410944099731652425063436199400836253819431267895516778782896043782437347740531516034683424343994056454962807574410067395566014808446022829960318347565324714651275792958200396877678919281740050335506938115928203156784265401967353242563099012303138693474027907468475777559730531594060852565035297566834848282680586393923554674729686165427884814426366046849194568749889992569142669578403181484720338094248869069013075530499659979097706892176502291646622662530706205907030577472923158195151633853545781985083596616342680366572297882443932287993353400467262839180091072581409844065096381815489179084546620655870809287933428158947524835224768808744389713902557239616685126488993687843007648513721580709567115162181089238243181305900117294721328934301061773266172609084809213936303593427551163142321861609518825452832107088224565258545494236486787501928185179020755786530051604631190251478034195243674373218351276194402051405510798360665920459353358477898023041674297557625319460804933800421991075570677781010737198095909860708671187493735804182284278107088659198145322606414003915416016584134347255464418853354629512582026932068228332786677967697237237793933891150657622640851700544618395273551334568338972784901567941464724957759493409338860571301485275416250411511282617087768095931829928230133777947502833581687957974169877133850693850763070047042840241483936679500853208970062580568033824678297665320310084186729076090515175706640373751489608346394373616375620916390107118599262248469843545958738494601324904873773817936772005690786706868243984528053898424427688680565818607183130584388146357942143950962546520859025081792062812253134235854562746694379593836790164521525640377149874713463463128474727235138041811182056059516106093975300643283635540885269633577226973720505967578895259931182162274038337232513687743138340095107104135132971636413150594619973692749133213450473940994075645773220699975745693051079438920790473728357435785601811432473640414338021927019617610350975031963424621392380251049132229487919470959216972439486672791726848423999355922884928826347032755360352784271579092565984122837395848354822515272786476372656751895239090407685890532242984054451751625606328894094607307657076352011184975029228956454978091787092931341050981947176051387948267606111164630715204270543438918447367280860468514467130469180024891413001871348055834952660573984549882050809619099424961481964194974491779661146254575588035182974801467414097452298120986891038097867638181427240400832379270034665031475107425731612394896847147360730555407890656809754760456231008183874279754628980875325007683894499430586313303163403088423321663447327278929884699248588483363690174594816207929710354468896542700167997499651102957961347228210280344664250594940449786537669995499716997393411387250100513159244124073815087392090935216550932121002618260224041584037975968115957830600750273125159632148307638886333409885952901694555833063905208304366053771530765268959251845649428414810448187272265684412340373792686478998731167157925697584130870771588452347988640722590353024085097544667917141715246800596744288866079736049194014425385874741097838472377260940596487394266017703932949076967968951181307574880756425566834990265435735730674294054467348085856675659018078658919869038398329653578672454647405278471493597014611462501030498042897626507749663617521486164137822276963235072211126731360895039829047436573172043990115946583663001562165100024009707621080243361023902139386087581945935645799196342450742930665499583717155857701901227613636954168972253665677770850280190817311736132642916123657737528374864632466785404088555881923686764463101751853582091115229028283443222842006842910342779914351879845151438801718646636873928040602427435371108684132200292545156612115977424693321877245899389859997558202797794591556222762023222037323667956833750103333056061678766771165011525742467438360417805746707286130443565619328900042577419801951805858079205706021645586237310049734178257825262848004487536354706761473034408643369013564301854942916009839198239717099007608142194695658104373916634402443604426324169614171966962486427890555526541215086089968728485877220038604467229618700616292630199103903401413492901520408120499932866383533645161465353636102797833028500733426110003058081633923282799017925375756520501312001095372632768809349755346697811152649560093495255185094467142543387262813275876232195277734839054955635773403640560808496985848297584702672660603269800057645701829128265184806347311494169147917826512267202733661677575034025422838346345251137885828352882976904043124435137312682440254690212754972248128601733939388194156023723519350929649780748005898650587058451854986175217985862374019789822026473294474849025136687912510566574285654458899005844381503419703164048266368776759811527819499132287599173916804391467295506931254329262706259696221732823733274431111518138212345110896344058035729308465312699450901881066737625252301711077933287759004813330679750944760756117997104019989927487603468789543993165511214586810086996112673382939547092499254248778789618473610877312487469951130447723275302058741369728507493342786582417532633042896696562674622171859002003747946306494591060249741284491864484840753847833524503169514403362040039616817002674619556144177620265903924088858652618908100146849687355497914703420252597675935709447090675342600395328385440207181195702698169196737967734744010963584513360561038998070276878462050069483388748788912714027445130524164750620601629164590351042389093921084229779291413335650471479879971278574051817506219013181165560780953787053459998219655932387565336457476514504020252496096929330020173107929210130491197629512535508276400856111226294862848552424982920442682204241012017208826471167498794493176298960737446947370961269126069809754534120092655188868527926839489843928648762888402920641529703139084621551269948768162592937236250340660011069980391646896769435911320508610612608151275709352588488680769993011784045498030636288131014185178548563040909387134912975473630773467187967267951746176052329928032473058300220354047287266364930197414820037520419219500722599250202155733629925721161042188798378664980953896119444170774093229064578475707916587558516411060769778016931182250904585539508538627422773523638710625212895425592598621878115874643183973957432162357795834726968558310398059806422966762816127386691746848958802860850367099248512457693679060043375492871496023716475540249707231222274437435037756175515320464718507800845845881257536142506238816083322699103401465233068785696694794538067826316581894813950576293457094562159581038412460085166825578198637657278019258364095534207022489078542009438224068957247975582875283822671141909804409569769210012646769705549501303849814931463215087963787774261576844990843170327453347151075515459206973467218225859917048713362717505218301056538779381178225592652267494730419048053527424010937044671022695774240112045072393116657040052600136611936145393437274642425853157843111813978019557580522694562442337771877497356199983213916448081036948205872680140670615591204291427310739091430395973086023358465212269540356685849533789562513106208671547004993474899611710556059802313676462897637134269459818999900148678753950770347541313012736566424028501998767028886728250879658877685518289826510952218987037267545417530144796365539572357369243296585457782841642312386192721896390242411246257292980466746488329686249936744103495055549530528270226195720613565585219106464861719569670595985919861520214848520243811509474806252136256483247758212818745462388747182584020430710580620906803138004519585825497736745153996001760918100712700769103170502822563921047654422652424401054129612423117951827043872748520052250144416208151638315969051807436216839322403020607963029827410023818675020431002968210957146714835778897939712972901669433596420499464590241089942917880012771462315208415038528009524574277466120745394080499395044184556616294963292779315998912559169226967996114492091636078720249819688621431766956391476162703036505325906890432657137692616072845012173029633613853527831144486718484857903903682749027961884681885607003137821818734439736687009085618873249366117192462749033290522767597175314659186844423683148495213570953959390510011007405653211256904344098763687279357055402263792805398932625708844505306289022659709554238091889682609846913048946902577064561172977151279847763933399337652062283945075498412114782139209806490589753598269085248285246013380762366160243530079021370955175786044079502530346832634252268640713556868179738293109829160787021924086922384980130343266711699134122456156838455697052198117507098474535116445988434949776440754561140674617367749541068469491727700563463848145838881205214563808534239143665264347507733833873280305120809978748339172680633079493559829296234586125607410533637895913654777086453962128295575815774521690225682935618424342195336408848444553188359252079962094623503451651158677981297301391951162934437661732564827336499765747299456790989929466858164450443474985822237223517071306207681784519746486939574476023138039258080508728636418113960053735041620455240257734754316924815063038224246829387966585998863495828795157054107641594706694997979956058182462467286665226304398696297046379118750851858325901620342204570102057726703001969925901084362948761863400717379262742343490564742959924454039736713547208076760631727269606444228577017956688062613033234826999164962506224289009284284384206421898409995223032795409352732550869692841335579124983510297500123308270000994243680958780045547750030199261440694721229486957049777816212084287820260687756116170315515945255437533341601933589801152224817789462294856290846495091357997097216442331448299018982554012021709023191754144178098540609152134434257621138111208697025840113664381648380982010881466416712654392267002830353047761486855022181148250212618727818886046610048221010847602907218054210262695590034833282538965401420973212967708633991592980367745576449320968050561972821075023830084264317957283131943894058970857527850027243441540112247387167253153123824790342959255362009015656250333408157478692318294039713012500437555422259283770703760576209402520322008004144306425390151479901553108758134265852100252409303049622573532479267927960861499322160521916522926832216997053073852142915552153227656158077613106908574826008081996606441384227178345638183149511552210769734275646768907069697750238541810395471217969729443102199818799300776392068857779745406366917113159928063711285059499027771892011384275833504314992337119673224325119081303369918957718649034780574281332893292795458266231505751791578890983397739149263413253918711048976894746165619958811027688593621865700880735569891828770963316881663062380619420929516226279030888805548103780752862102064088244544583127999511193397435126947965494257868465167278846604944963139546354397029100698031463578739804582307737563437773544113865678473543455839380300936790482718699955227022081758768245647907110537239860294221972957192759507908076446371075609030452458596850193428032205309985761953555404731683341856563804951526413914607636995755702259005613404036109965824446440924322825902367212808458474197593931271653324501426100209780135626282673963588514661070297905801401611040848530369400935506708523977664252994135319068625706411943157697739620265805152316735654660722391699011105578052712998485968810742946252372499954090747046493878032015462686658571536395547443714018529406654449222993629094370088593065938302379754745647932106565669717858795069123746433811085934252017671213956420944896440157079870161810577844880299359712715247365650004369447503390130051844806780690912871139661230751115009739554068144902772868959045809161441872981121602494453642333282349278260605339373878900765196242770256177618861232183264910199824051300875952439910317459083241535640391017861857285191601046193579585614370995356401790271344832863858861076182814861927152074095849007141112738000392719332669529134240068125827456356500308297904532051623360064033650828706730060895206610233988637437216003223889761927095865533817249826775166226609915000404867696325330788848293594280898535028086278105332239430062174536035582481633512622724414568900731733968747107755173825342811961957372641419503638596896106804663779556028099712346485747686352028379287710311201037944257593560555948380741545950526033150778830569129614045266405330483518748475627598791263929136406660902593511326987226109375497338737520421743682285165364158944249236325254675184634770082587406942308385856591362995118952234385788791392721086581625576254204891204354363331597816951421321741305124772914729466438362204198710455630887680961702082385168547875781371219351721540141722760741615217858183356024514120698020955952434026169967647655871307479034823074140821900961108776867078572448195014914923139109989889455501993586885982679865941060483568968883808070622084615217496222487281740355869305551807278931017243045332673241722992064761096083935479161876001397680383064575688419232321082310704024459792309550009015608921372330584669288244661571052325519587321726957053245500637276238112914151020040048387497282990325812306785653748840342024369250693692591658663621709630574654493110780564036868241552191924323108187150692822614402423596641793177341986545038026113110288805847216899795434746435048403563197269629953874058472453776455053234037637007867794791820138417359675554116888584874584143218808904405659334340414547286472234694778276642529285538873450201142297056805087990710411958488313548970702419901762507798050146207789174949311391855401962519499278760509007623986393560592098664601346963701354897453994572529771506980358534807517584608576931060434651279218907108370692495925563385978233809912773148449774171135732284882292482253144238045550396708231836534510032206205208617713392665576522972022805712375972369440477395378443678024323421979411429041831481268471041372105967099615668611847974528989938598624210965752407456709639336208718412295731977103797545849961554078329615871797011307391170018882632557092540594753471510329556606324888547206663678024747101572493310170339667793801487066971106295824566815458872016514244124888443267556427802897546480922896121443866813295000514208798520782241442016792276148392229567461900705610805987994032419323809496729595766204948196583835717441259153386927013264635832249013231940601349439523285965146177846159478122583890061036785278445877483423006091193405986902284599258271521177247248737578237160193413051106382520528162127261608839014219548099527791265079957770299268828421447050117139513526317571555520591673144594485869507864063759848386023468112572550399013202782466124913937266007190012229876213902332539904627085920802604738468323929801350563643321472309117923818707877766109055571325539480136442142465748572967460523817062783919991228072467316668088111436261619180588099872802706701303051342409932661480941365419647261013341775810700820611191832024064940588295215973199574617540776463891296611007478658407136904882366093179415675854686060192737982243476162751469846842309426924871731338351097483204286733762501091283282191606334582984608537782674244657331228273549139959341568284801417938663890701313646832847086579945960363529289259767901402874430439173633362410584236201926408862254457029510103920043374241549823123991033309102872926561550910641505605943132848628099350421695750520457954061060188774333195362306364719521287995330643696309607473178089994937649904445289460348177680174625499622380654263000477260362968696090108519858695940953934004892986860321740085185641330525038922786245359585216841142283359026433373512784246752749279853058107159552330919350798399217749279127328882059086266236365384715568119654159088304914300964771157231717910858222805227000482007597253070061966899461848942749044315973280919963665959599651590407964280706689632623142999707527269579053911382419256418036457459217364769083278659510249023539046585786682154633341394338931716395653854353149193475910967564802675254334068886525649997290306723096742335609257988311138417503165046355742580276896411197900204658053506729870025094070889215033065644147620586478463068072796497040584179044195407950293771833767519502236216691142638284581927704001697460511407161035983405622272120663887988034820743070158588294650666114428477812618892410987929211579744807242318671504338940622084253578759593225413225426522202038838593111116414879919626703320701656486601191126474349721114908030915380034670443772501593636781252369152723497940248916302073497667663227389179869769781329414866856564089292628236068106384657616486110127599674957002983646802876074176724198367785691863682626043538223798452457124819672867135978727826957718792623323957263814913277864453636886958055479977770148985129660577331045901071575877288370477482600741078508670766411808416518235038967904455861499733449259421960993280493397401757354384944899930026160039470058102221308893636449988729823458592145863109779275742057300452151243824755834858526242574809325306101137391687395804464525347251719501232373534808371562521275140692153512082456138416779467932194349662206380556456643547040712799651771626563287955933184568160222135254026145265306125411284193501968987509438280443968996176947574081953569829976354247657323065046512215949716467505856418544395431473769127518730691641948844180218971990474744264553825215789863863808070146499380967292757365708133473164558632678715691775810840610772858990464047563141493122855954263843646453691663482232645159453805177755191643864725527437187039583652445692916884161766903344731069179814931506254739905282708040735060488952591780335078870333224626445887084881889537938706368840985371373122785094158508372087460524497951172700335430504124284580395256205655010716908725571331676912431196587799347224203759706361815791951932644658846847562821450403921835971441156990957518601780670321678152461926488543942128474330995055835536910468576525936258565393151931362732801373968756442911257604746810785473650966128274823100339946183892686003682470365309153417071188988209117461594210052084014781799811237573208733087344414895043113495421986276222063254731188407810656330458418359252557869018140870612379544958305083051075240267801105649308957872520888683349323773176176989431477399710184813913748774278439433442967620248351172821288925855802915234768245535392013860467066731979758090672445008914205982602609846634739673813556799332316462584528523217982574044365750984136208778551350238329188806359365364373491652375340058371330772349371380962690573707688747038201778041402678701093122578000288668475782399053402310830070152789813715168221174615059672688082496152048207049070829028457710039153238412577660519446217398086783442447913361808599986886698683901200755586156752532353334830849794806736535118458945915508971540609649363074097464466617383435675106263751963664133745058404058620355669459616636617032067393682994813326309282192514855530005769013678287722014568974829015670893783287397224022143094864534724442777891793513932750967645016783405778399676938825101341203783010988334630597608209641165494913297903699062757770947490170434613971401962218633644921475753389908970912885053139615853609012373195931463866958036890065810316307150096222216183914126717638022507898680506094260324049074654696942376541228943682492748570824544881460261375092420257818801152236150985427816051331041442626049865673373040125239278167199874291314178316657056605063124504227933850662089397697111365817893024284779954910006961984712114251265361398174012190562838758373962980385253107713590667471497619613559583119107271070832666744754515491618365659952078496543324158055994968173856645762948745351251999460665503349004505273295628695591951359868588845307625379462145342955283037154249183627905344860144145162034038675011521727206136822859106384734065632320075937439329650169673837472881430149032571084029727743631226116788576929320696160604154232696027709164426401056738994324474621743056146885215327224989306188699846297359027075554381357515552351008958058295132568866803089135235465971293144109753775437937690651772658385553886099675445734869737617544587777750301248582379858755618847671728931478677215563148708237382262507047517846072562554834584073722846943739513489428953209094895177409397581557310343680744832055204847774873049084804798522872168255097664824682629542708031638315877335213161741998134293908273770594845375871284317724459296168123423834795450390443956352545339816987072825689925575657335779279349598298560914627634019275944801344582652733778459650169764226740953578238817648729250635378076651854756016615460941873361547580155483389867330110297600210219478313463322899657814418296316482054610603964180051925132554844515696294361859778091615385369201634861155901732760039810672098192935203085685979870788474655608873126971309922888920322057542276515516406449636367381093187137298736828418239261840557237870681946877807427771330120908815958839396587418275533739157908442539117369415813719411118439102822484152752684106543425448845198467809977134513807843109372571661546117739783555124659754358271566437326997071862942644513909841069138943709629783594303457822550932340106756861981400245826639596311752085056583988658467857658768239054736033245883168440448109361904985436797116480547030281156570434696654390764295842218153774849239261781080893039786769990056202312118637432552747126631344771790022806684208484459677181514301801789423684088934921391539897556717907667000796867092304939801535085913380658629854174086141815735672909948644728825263202125199341734955994348829798793445510969064246938084128646446671698206142048056111928111813818956181036583960523066632511480281209514129934999525892506662873270032476666581092937456277263025694313899279817295479457992556391249582803702235284641104079461569205590749553183497879357430876922264278863712905892855746431775331107682646735848573704052495099177825133202413930903230237211079659957146212567068325449178017907261034385002442284266385179453518059221165476939555044462589101747795886762708798937688976363714221971737666919500601960697169387266670996352735326887402663846634660291549376754153962658247736950948068181914921739149622759890881358771690856762517435843255046052128047199404822331256323257804014540322005126467188587359122946186087369018430574324236303520932916003747486160886917712670401096362008082070497932434447927011868811907695765352695021851296422108065181500212474274638944386125841545933447094886312989549538763381150306520937182539350606561418904336883936480864148615705322212744864048601800413974566384144582515163207015250680247560018416189274526464978330709280918098988850384771336525163426882192406403101200252578629836752877311404031968675394118387475249045118197986265739347577174038968878997493020673877567617435370781208342620263364380731810175376600546520743358825526636084339738731652606146084830144669195319611205786427116458966160449942249288981925045874430285550977172174076662318952048978165147127764917568241894012336549264568451495479013614254931023237788637545808835953914533179505351748147412918832200400440081138440332447923750197584294996390152375082863735620200944045354952041772983703945596656045073114198643901194160041900050595279498703956754907261698926386577584390392494346252306648510026767610903218013617407646800122032919364807460912342121465654416081312359102965902066269762896658843003836270464424261366104136201660194425923699700578045921026963630409478576537100107840353194599497015193978566120567388044280730222610400223675485557891891150763127439015406562370542099318136325000494706080501092411187157256061998147187496158868403001847186234433224554584811785662161467924685122898065133998227237094905876937016054177959997940703769929543989447439582642793744573662406606969707889975037433862829960373672600276942402499124987564707720678933277174286926468067519539583164811057431817064789419586965439259164340131963193459686248448287461297065801184649991071946075633345596194015919865013340719301965203523713872818529108840910828747532571226062456899555496993497985637243158416219343711928642349696932268251267015307110925688569146867724400940464260599206426418328204671599524092122304805154945589918546066558652802038643637219679755995188042137947240534665906890891525391066255077458697557971231932356353396144768518163412207791293750795323551089576070171160254474416110138815650973319787124893206483284019559525522365739497587205366066771124712649841184665167259399041007385576038302429662574486290670622920029770696641251572455916270235440230683174254001752512175152242071101426266644408744648678495794913279153502312054167367334644410687562682334122498109998277307282467101785062918231434783734399497199687805573481262324020092555464878392911743683574728197881543753118523389819257164563437259902061405309749613531201015853457819230870021903211766872604450494560971978263738927085696392255763115833309539954047279833768521806668122531022705101677960880054039491172354061773520096378833135458755989531084740416361226506946257689911623824873748607502411693496569215873020986430468555089301354691261337422609925919080519425414776297610090844261723644959418888097493625814942442340539972874231443297938138446100165931971061738908232623810182792291382318217916632646796236745694503097355357806994361672556441674757227498091271046236186554856060933177577635769155649575604016814148055493529931713251898808785739219635515235160972533323318139289802264911137153490342736911029057237494089690303007576907726184268266351053549460351731978776308332985228545884931055198885928991175872600909985049212632132825309392382607622082635398374014569566125044378367198138286505075626996398647057237438837419419721568339718139359914121573951558232811481259121952282616175194650888321001661100219026434738281508209823333247732571182908016138878342525387825633693356064190901551245496483537626144042499020276155182956061052601803465113469033252641744067997056805704912975301012033172211674741374153128946022307058394724340985667974298966412051020074708463479206775995334327044164760120787648011229131103832038713782032529603972993876305969616167622756946183047829225540285954092195204244682624316149533023038529595128699570547276422251914818600598385439916779210815868464079825311474694115333406160168975475780933509809572592372839166798380073032728448586317139573313859452889387652626073769612647322565414291025148099782252435527883935571261964190620508943466683547480572374364593966821976063746337217273327464477019225049869434688240034408677712735624772873801932182469058312514345159215735495501643441272395411239435866317633583609614327373242483121226406155674571352165114014144105381800706051178594491200236651258635744683131115240946146131491171400431310320945403187112437915310492097823416331468069057702037302912036477197392461695715991988019875177905475522339546548441196889922383042169694496162636711705630794123417496677827620742266849794938074009399901366339531626503699302812225210655846858924190305831567695760345682691671050661222027845542635502215482098959221485782123106904503712534880467478149157312008580399984280671936917575862223257437428810758270817098219360453538734743419451345125177062328443322563410643005814122762460060735188674367517913370186964942096455649894709541754765121833484366757412541560349418103515914213895219143075692984818405155567103455762944099070242553155851421278005538074450944323168160735362700275187366303107601414235689964150839666305699915876462906960020926667123617743219977366978981235474846889803434501105786147368678513657839118802421840648269809236316446102427813957309161355575911270195197129046969876613092704205473973310664300130957681446653252253617695080964708589401792602695433899454232064354078009263327855120126303567360501701332570729694653130605334791736169541109919363437009502604246272850174026251389518114092371076038065106298521591915006026479250793381543957178576792585560926243364949246620763580382343112347734768612466444013566696123862370218691677937392965743802580620354266456019145955717042050154537586425622016352535407066274392719054663442711365110049686586600317639164829092798236211210815709896709937445110745332823651798873007419285753032612491527620975665975718427604211719863045454399798613607053926381967932541341721057320612032251764117113914866206198200582764113268000644811377642513339490396492204351665405275755220688605544234335934093394238356278325015741442902053481674425494427995840274755439798076216388138999428637014588426693361322647767291385455270791437240848546154200409605929170023277703061752562616831636398372354278609563577643071257756183279603134901593393353812530757904763407071381426681552714791458978669306535843233528871907579802682516753904100126478516856786621313653659465977770999092802411295526813215321229793032489611211891941918973752912202812080985892091878246002439327798590197375243373749762926487534608296231388899527783717601403884724987766550858997525048205537946359619825982057074669868941458409802509348877812743541479264247619409898698754447205770963034429367701167733378185434630440999106556217675978668245782341555156933611775418594240537848402312209361347996810841050502714466420014982533520713118265269687499212676461718362345222739078896990699314484763725457210873686158724346793621784075932929928982458639708736006382389946114684374729568276069329984537658938977394300766124132110503694091717206632429037085412599985004801379311884666810915636209924128066691122357719916894099332640539725898683798944125126748751575922066411239363032718268378878758666421625126511275268120427403874840472203828271902866388436496876454484188914979145321959042420942735210374635515237829366286740726025069793337338202067733487334491436284722443193922418326688847389386653832245080750049768565819765396175500778604441252660598946178839962637344249691065965153861715670104380252533658599034838516152827129730845210180089921383757286073096071310547934066416967779896389073765354630670184382718769830278267756046066552903413456024198854063273652550755031942053663934324447653005653480327846260955611461575529838285378384361281155439542642170790377637057451098354505263615146317284269414118697288204385812068408502431990067539517100879433696056421847060807672452303695289662740181732312214401244635020391224464059420251240034360000441388434567588455715640714594201363722798935705708482848504723456504009463575870189110922383748149256071489082212729087606954237834122375885567205169448474348382251774877847269695553692847918053478048251094990091734375408914255025558555640754521166493868954068847902538306804595973345913044985815113712107228901874926560472781706036719936673496856860977967269615206660141309171049226743033808032547806409940258762143371098986848580028937590653692067091369282770951248230917038913653188877604856342641413058098669190727126893871235957611264681611806653858877498738331362688905212671660197601637572831614284316446431995317614787985584100277397632104574667211863823168347291264000972808876096747562592534433726223540702371026681645938315063828412614359007419033557958922865817515072935700309914664847032874888751488274291068858200534964371852402038442997807055384160235722076788163528505598861653946342664571552157435107480938036127871345096372470722283945832729929555344616508571439065945568344533480988435933166327138092119206743978621292262532700267686241716460796281482136268352345050391867081620843657210187576488283947145539795501700397938968877672424287364016797870848495147168381342753904503679571238909874572554988747768883118130449139260116047827355060675477825002139032926655982547251879930677167977804939949676485200971471407032424210340311842415478755444179071807676422285179069846427420437741867013309759822564842483655855553654297594216486438134760842255478478413516391319899080307012601108370297164050587073478136706501815698216091974954204255258293797691245358533490530047059516321504821894979291523053734451515415629047310419556408924841798641213355677771855052372935082169468000224888930864623501127319681296366712245175457040446260033455742755450404810398048193599344174190549340874439702008173241831234289145057981016627986345482210369254142420616089867050482053773799438569028373749926927473075129713090739451341520643372140941392651668433489793944011569281052573917624756609867582257290737820214171080745573799652675162370000069215561524125426858904408115820398680367537203630203831343990310036157725942561426036088092312856677109017390034117286840253398414944520924945604599781864448911644215844381758188934070289631617240849756279619279563777627368615267220484140686036573879740348937570565148334287075236909454107947518992506880271740679163834380466905370823835277755258642806581923221558093556493989644263591086290508349983906753778556155479995300044276274429956528642923929950260390042889790103381433377762959721020741530075211835748677117649522272665329702116306093754606271055598496967258602013091605539030157382029264897740741354662663066542197839180490069869138258893746917177420563167214282953230521913399790539896486933266320866418701510897990979438184629321690826857618459626721890672473089704102808240356917392852526297004813562950510689812549323605141570165431664242139968752942673548827822969400239122079221106346968788576933412117793064388797303197737952713549531057205672630690658337557254495359401335107313463884458143111071144221885937865850836981999341001849195942936875418890249401879043500081944108327007585414068731266929099684866880179721129681811566666661922884528410870735553368121107126721423282232505345002294677009569733534380896219947908311066975678213695035799532289955662214276658179261004553473267067778170798272473575814198931083371496465812637594467689860825175621447897809800880355660776997578929605360283221278360012701174291464876731504735104723213674063386704994402394771624878725714482162439012829933211556441644758280775409139504366476749865750304706996012203880879983579817312633667327797084136084281151337826470558051262704006993173630895081512459573497969149598440403869824053468584321836697068095966469719697062732756374217792122092680526741825630079146540494146811087293073721452657731112963121679129420139532101123957148341528082835563490237063392015028729105708765304806508477530541741907830897552214966537913627957206388580665459734220168776583882576229345544004406452521561351332466280291341276783364239331358516547962435727237340409250228325994549371481412682217093496557516280111483878987114635661385617687596397202089515062650706834967193093301207293235866469193432433318957077039329183388656312504819351188708713476630297208390386554479876785704511070169839238209017050460767385120988471972078162247240747076369542998379137193486566449901697151002536645601425595729735954822404013340367827375592797828598423076187143841663029665543183389897877403315258970828396352844303595730363255871785695283962232087062072471728610359299551384132945878892621573202165719526373425245154223466202220986481200223496580628320828526293411463863829826248835815193698329534621803211657287692352029074083873801651869106421843203224524722957855574649813187570342161266266309428010641309977013683478025537623460018112437038044239627035516145690446097145874355320580469941512391980750060104663014980026735034816248941194130452273676434757856724296846694799465887492691160479185834061326634105278833399483234890782864430697700980630866577016783362568336027865492478830586012358542932893197442128841611174766336078060844257683526685767990605452766547304188134074531699846220712048460397058468459465436636665025503380951967191956581708357021027912210072608813001072377866934482968947956123143546162004461467429813880949568916847861657589862543633341174576744952065348557504555732520944820261720246386007618433221094629097693917236675721442368878311048052665504480878852259117394012828107110723986342606274139058196465999849839833480992862607502230533821857151661084458229793739247213129394821771428957603502115410379325469471076861967857945018971743560874937796312724998781919618332245749966563783187224907846653787222583992818507416825484209617343504979364105372789621706131308443883456119913716148822175013175303200418529764758601099031990142371477670863720907162442215362087165585440060986236087357903421256863788098719734303376548534459867614253438949705574786233421119885149245059250006665020714778300372266239031328797077028405620508051322673598391644470620962523658205700339582952857626405706013696025365251602326349916493233316888805936212026638164923298568050495157814846606037649205526947441467213186274963457350324775872892539152892921632040045490028007460114518979608517678432206045070011338911343698394043889122910404322029613904157534245954821184052371971012720915236832979126172765192515833302464210249670264556435520463443170355116279463518567737882588337834440835034942040556281255144211783721040892038276871790944108216375040396254630708608407854401554420429313882581413869962725406478656681008788032724194293930165305565313237570304559743426375244228324054916940052270393591722198835368307418521141511358279340377185374643729904110996272963485537032288462867513201049969313681165867954957175485691315430194856828587306607922491601098390033859962762999223849571590237768463526809168819293002509727645443150222791351206891347423884549640684863305944287125808653619900799249920297815828862125782005728134240948227671712409023878821650336099934449324485545643310818140954066491443923009555296853204890841570554732577833072943819771657400835905254345821059719135274191875091536640882333862626488443597341205687394955867544394623306343677326709732001080033634138209826150286667747491541609114589510519880850639971567293488440727147574272157106870385415279011358049660075270524922978744733244012037122225927086641247066725921627458681233653975743823936138552920427401969198850037214056116181289520522706434450702181923180053345673831786796472186919802124454811388085128852427987929492119601696988455133461923436004788524245570837193618936292198922016405497237616440554609406402388064788711190169047918773131408617619511489701729222631255694853416994910691251932509578512003606203064641206723654582923213496709959853745567438089461764099594564221953863483254907689769751345001398153504860513325230686090018078896801775189339806398029127677910495159133428575797051326555918771713274215373392119969322443171231255123324817459430817232005667905838377643210133144720249589242037329421888400583540177449476782198340168097159122553564654569771749873401912916788681431014834498852770494994986609006954911733995090767841681829310850042060431260065284604610776721520474171825892374892558882883169643658084552918544872501461051955651191511363148930919950082959901083151186964800911098553774891780287133465236739419707309351026092431920158274194411755879531915612194132049121018864016613445780920542308556455013905882215845538837099614593756608852633965872052276494848824910280656220778276049171297471644478441589499624400759697176654380195620202961354038937542249599333704928858634944972233119367137152553846864206624128037520631685306210641186565290150632015374007275673394312065536126946907651857134745494396932905900215211512790000608099411376700881595476771770357101430062028730865883931504577143162074259048932260323093778368372530103221314168704144481646337831792593169158213050735304906501795707204243556204015815965487677615387017928213820555020172907396753871081212885821031672162906248189637165722142781398812062416319638803439588960283934757417684830769583153750501824971700626007629404193716498345928060509545645978654748540442814505036155153022392437769044634040231709571367595576950414068509710875601084903825637314655963547501014174717893015849573099319538410360458090652466386824348700098277949852384574076843928410966993227890873572409797793508286130717840633134518387062805443149704648473744618103202648401211106531031020600808642843440824869884096635498567120468219362769734729168100564337580073629555376421195849083510645354265659972999561674445541857621927963075966563537703595763361859848244401194082389753482578434592970962082318840778993815994855373258364736342226793891817175074950764488115127709476483786535478142815875754339673226267493581114853896004649058276523161038434984770502927506645653293195945915129156038071468073404108101682548885838894399428388455023843807807841099876752122777607094455554710900368138960874973933712199071629409849712378875535045015770684325241560454636608990562488857058030832379360931851654921454152060510496433156721485148741674077957805480750856557359332327419966021310223696989183836473795549835414013385836512997651858087102971504854607806621525647789557317850558199958394259502305218733617013977313169954723680425525061974145179407311627264431608864576672223423192447732822744019435792228691910348931450841481173476786255145946074404013186879327328013319508224851583192413348917731615327853295469313207921320922232468089434221053770108523377366537897351033956602213858337802169103977226334717534495317755255052450694997334150365122603927637724693140104316467659037093453231318878086153598506055630461159228395587028166009360547349749060892494875380681736013075173931906230946676350825828123982791226731017096506834200328643337747996962479578262578963462544107654857510490595087010492135078337666991575712396105159301497391576870753437299909205318447148640071345371508383877797660127809497248275714320024002481943394777488850396786482869929527426570263553990015304316941473426772729587112658780123465812263246284267253294544325187589122942453416678069741944728775113473703042524896923820351431360885194022727702316338092774669550673112015147865421847395430167308118091858944047727651616351224257996362874555938082523584027280297532752222432945839189200933713202340795812842554726049329475061077408482600291555024117897519296209882066979976904974538816789570239828852707569168512187961304943016287362786862181819833558585137001041990676633987731975910009921220086958365218676708326273782382659760629241890732398705601466120695174730821622120169643508002772111179059606183193337911516861066085468734899296207278902644292319937198232654616029943895894069010881965657770114756490833436847705077141663508429774900675687600857971997355575984478264296388097481174002646599852494586489885012078859677549841744188149108598640761472135731676165650574470176347053405364770261992443498842132636217794663133350985183176454865404866745178233330174815249855451198793476093629300538385708682864420070635637258102664884955620271806067049430263783391777629905296879129352027626508202889302615498112293446003556890944250049048687111144717842424013340817221179861519084227441788262462125209280146896343286410693905934118890407539801599188705257161505785949281068800922674715837964120479059512706302664428830806619817579719867177439230866543720652721352302087981973355307264791644407894159917693726104214180573704878210096798200104428535827933131807400075223291769042318609890048577782637599713116777736090843970003352562755192354194066810401233068388103692340209651193958705881906044713609849868366752109684276389975697892511820288031039566091379624148931005526932491807564997113724870203402473140712230620214401538575201084114510173550512005281511360337041427236438812119503254419403845400533802618354552448652358562661885562190250719785479557059382136002034812519392478125153966584826599886693328456840528027892298691791621333182002511681497061874830234074461024764581156407709677958960794271552980590737391506576682437427300508145512864682159573998841140962575672627887615424541773873852043512843476913614999720006637189640645837423904268188106172375377243386431916797304547278590091564321880359001484780688646916583665570336744211718827715763848955027314045910612589448608783290640080908247152164806464861495294962458504013581437091992138200907416982869116911020858543510436696997883005710725839441244992598781943460379113158649718148171995288599788294130762830295472362514507395006563902848787405318930306151644820868367393519398889515886571723350478297475108670052139928130322825902464019075451447028967775026815602861197727608312415277340919124110413371819993392148581832110933529055897707195859055951649077537984864874744114909909105994840563471250867362978795894157408062862379569414797115187858925279272347286985311075799535016137379373616177612557692512558419171276741857558436249529812268464661796256779179365358896060376114924717057360548871760906031213601331117120026038414167677747523046302858191437159315455594528773498453881567689632918876183928387026357591715332679135836987366179561182306888628078695493722311253973672367650211175251309550841796447264881961032184979881911702899254713395185955632624967832155305406289681732373804036884958264970881576142127180861192319053733772704374442074639522702792008617518274776502516472843047914427667488074835227276478569859700055090043459034284575491867908730370093997983775634962843225385372605193656807002124156762082699399520423983699388051518432762997840965462849595835802547449035953792013960951509104781795204756288204024169176475876673470235197502247411308928338839504402185026912908031453732754645045513798245323664509378670244256120349208034303507940501477372249216420441215156503804058523548065466817407909170205963267919475682319394302695837380769011070403196985616289392913304547426059371858934442196199945529693097082128343898898166612094084379796635331939862712225821961618353749164468772582059573953776810181096390370055000121070832706429642586588642807450762032676061492532574537560259130119897340103037212638609217080698820185765424286424137772952416004008000897595202616502865768423403322472046941922615633398642898769233659196090843602914323369212298191975078660247814830873599271580445045667501568256571199741035480966348306949356957267800104712642722386587576286544875073568598182747368428339491070993363472370767215991142940977589183494056746220280400093108609225935715780802934250831008086413316707961549241511533231597308337366546190386983441063598795421399489816762217417677203425320643190478711776389226828363215148913147215119845389342150936362438636054074013073822379736103252547979332777821987854988256853384281916343090191786496526891604944999276069991872816805292724737810252457174057975389301589594336250832205347584222050557407005373955309290316255421165114900753083010648565635083856709380653278489660205708820700345551387361429441465357415501825291173120380087032572931875039472789872470383738915846928384469617763523460933088543870993153847950636192560149721080199823439701801039512214363315055721332266744374714673132591351455210448497694700102666919832582428787126766903159801561940569100035508376401963787877139968416437854899606555090440427717720704589460656212165949597705866923257961036872173073561603094238292491823362813286777716743093837675114372997210618602598186507914014331853661119421751687672385314292745328831078911652000258069789998471949014362975089404134385041292421336277274559491284001802105954376481898345851381294053850725153458092558664317112594471768718160162055233637261688003584946476406938674920347010168637620565745518138635335969888309729399513075266056582191148719587209040046586644382681706447031136575912303445520332139558004971333722073846768269384713343132735275321880069957191622490874438206370477993805790346821092488125127286817534741223595077131954250543108272949139203903722601216758876906599643665191797756611373806848434688045065319136452945555040718284880199335565557321309420950746358959994632913926528990534662058853025471771844797835517703687908234526523521038219554067531492774774319727926109057605187097807303705748834374426851960602275379263384478061292112164329019853753952475652769632064751857426016882653812269595805392468571316921922261628216084140104780459717022578960417700010638224251218676090646357729301080905782908481947535668156868282317531312801527042340802536593973448553264655456877082017957197165219884786173577892631237007279800127768905652460569842361695677585215958134932544454335131930171892599887748522876051316767479024586090344543533840792371346554250478393945433191549546165086438407319558697096049491399717904634678941335227475484872899395498607372452810532493330281016444378277714293357669496391395740672444725406507925439342388692859046495300117390463406392187317648203723446458326167913809286178717792953832415895193266206643288254430965161481129974225667155972924771255219637032330135212940615290727510421917604379735052394562133445572998652384192408363799064586184000461570630734899607666944608167704051094808178403128799177434871402461958249772117686757264919304974028071351386620825392108537084721042779878026977540023423205885320868601634092728003134629587145741734876393380125951203144072768555326604669907875134769924941424421688667975599461011759063435104505880435829080929303921677145985266241999232529443777638388724559498318752609177390914477756369889485563259848014222004663365157577591902567269630587996629727986142823266427410492648015508576541583728961985031314619841156737086552872896681976394514139271435281486454833199840027613201344456426120763703766106923958455026627579488533112943028200838044959763748908787864658127061138070212638816524368592688630359699719555306934326079288582101231742658990847260660929807741540505864324991304742252597219766788665624602692820209660483034880757025102654466800304132339052521058513023776921778932474168103185743383596825112049751958767933323165792566346180416457975536110133092000546610227016731144847063226743456306700628864864394888191238929090057045710704748177169399883565155499679200706931217750386627401531612654905318455153347220325771152115715482387944385044141567164108545839225305025967120455568896229544253637029550019310618631936002857120625614541078990599110067632486626805580207854907430265583971714172015921932950856743814652611620824641194099889050117688120267562416119942954807738247186723121862404699345000332002309919208601509096829329658421096269518581392292699371307785326853119053936592698518167280447083203691375965411365637083232430101565728993290350222486852116344493212841668967271071593051576690084951748461413814737452318520909019036719127665709462357249775148384919847943410550111630585651962867048159764107855434461747877303360748120033371240654738473468776507401648880699016865509513348190310966773878930446063048076751038607301977747148287731216712419114565138177761002976854614666371692996598260171241266751547258441473356329874790757989907052392036426056980928765155568693563302613714031098193271614610179097780140613850695020765154388455424456098441001022428379500715488302729732049773704983176055235112330590705447882912389800003456263948480924963708825793387687387048406276049797421365081457615700648844498962371469384478294620342971074571828328627600955096323264022431334273503130674882309121400810986102852146597196948433892034018509541804407058739657250398925054169461612086258406646852010152691815003548551640526234746576483392909155181176915092799602894103912690237120508033173667068038510534849640417630044048469737325438062037616617590862091716763266777766787422335461316923993055662836415797375834409068612781953093668200724611511700872782573647926078911777187722281984793568834808758473522502112496385440680178285533589421848096832171872563849303545140594160391677775345785661970012727374124718022843206491589118029027707923978607042442629220509653184317472421212575941348713558348445222041224303657063807275675577830684802153148366996413066009232384412099406275416108466229963502825359947951676670568253557563114710623887762804132075397100842448161091651204782798478822321168881783502771031111597661236964495533540822778965202355197539883187498328953386475766527805892073217109102688115853540201813552530364207340593059046664244127894601471116179338949709749851784613769660419218471572207423776184802316950007994572924352129304469562813139490558356108930477736904914883993924658534816665689435606116118623727725488956495005630479101285374215431587774269109769125947730758013531912116388837816177462310759761360099202108747021740488235478734218740197228698300661458212818452018200273180264488784877326228921163403813317059969864250121104680520556878147066726436227027179224843706261986895264832261501710958633381215262613828245084940612919705680180676251818659062014158639992515676566428866459334955915498892054755324882449262871966398585711019455368113255317303890451694759139186375170789098297843130003585247772331216783492966177027068734854696780550526814948812242793995317982012205634351114530986586924685084169465983898477517640169014750888703250955163835533135120326073852991683804568401941688232359269604048716014861271815345575189839793530949865083870775989627676851944594068590660045644785323780429690557963529172697944245012213926563109965439375652180503665424419531964268718070791671538333393813236885654220625158438998892121242008017996465960384140624230375930475185821443894472622666964206193474416671748994267120593676282758150809133051265551156289432112522255071335979292350836161028150278952899467929522733677311782434880771975887034010398729501841540687534367683008260896685558441829904852935815991425584568825281563560862173489496180593303667185566440261130360912598927588983509089605035685831739969348207441754919462341285602090291346398729886804623313553585158299610275313221619345683200694223737413875078840210226465495329646719877500291185194599210750504877285131014385493905156702615603920653390764204864526792078200658181643557900035508112493086443225925661776764142546596892331529713179108576750421386777862219123109405389717101640326714180543608570140683398457747275523724565324961013788653417919185990661419933917962759355472803234777569515371499247712185047599911074616716512004676386699114463693859026094244134969309738309118634765206917501936660532691925097508973819746668613491917383069731312061424987934232312341027330715252674299836331021187148187551129862272700446407404405079012923295876422213967951110877599111240103001471621571249174102427326893434805978954895574944156656015776301041697629697563201527679465546636789758585008711426235127193692014430882270342978301349380042038066626259453598792936456174613402703979593988944079058396659481976149100717036808995097515466184849411928505701341622506807093695619935254482395147568286209689651989681836377671432047960754861821298181335529692033743704822472758829612463988850134921339503385943583712247976648188911945608774738710104250894771560715839384537315722695862876783050305562160667474518102123787093119038882050906912031875258417374979383431830453360141655178496350536426693911666780156667569963053680118926236663780356311857423593411548315895868194853340595224821927851169697998052767751136842745329420711907648415120339194329224489755958921324787241606318956587945122370803210825945266609027727043857323400905518316448630547432034335040063896045608069123669706849837671443208875626431304253916395647388669190524397758176977470177444539433381550204182704868132856687778408191476523920948122499243771688713465878135868353686878584376370797602150179085852663627519210782421184652540973860174286542511464085952297338164415592012723262419313272231809337126258079155872454975757451658662124205316254456500294527356869939251896523666851455814436966273720083747179806170466727092231886267153556447209869391514809100942024800247095798667391021274818480063065621677008959378941451707821991066816792589422041658468969590279753358849506603808923772333143111028398244986695515448550275305492859639908072204960526075005643306123277242035127464172383821453262598906274962747400496342472066190255956236815490858692735626296699068147544097837405016238803119067857198613593842007930567721160453211941309721606389675576495512308052407693036329326853280239297788423688391727186962649654353444614369629270932137957594378203765260325153044245557349707089259887078352032058625392101267675761889372022141855864214975378162760872299555309838859220947080185734884933530874578647708540487896365305016096162902899323417281711187803645954244719428619279262351163227937814589773008375071762367564751975837610243582985422058653614043475520235185530340274552296260519630778454929485206514792510351633545899502889028238491210405573127062675773786299738498093843236525571774163402489170432659736193279449085853543790441022617451565474309164380888196803062941141151249784348808659212885298428330642273175448819309972439727551844554584660035334726900066631736753990791546340217284266587321879842346501389508745288596287276171102839604933172688422426296450092867913419729767361446398161767959917296551802825405788553479519331961304793673817719379621168743357930388621043097344163979276512899507116016505440892542717517252494492214884714840516080027179705339704774860443162860455012322476944474613069920757647774403718853406689405787249106109241000593099824020168922207062482599156781234962761223015571243446467497056344223171196188048932962348324988125135993421214137940858404783942254362936410208416918527333418480382787505596468046558046817047831893482135741461674519937474201014878253286414374273697004718223713670173956148446690111041063799461042615665238989694010248267551410728942158248640299697355319293472859407019536909906630239616200268245946633040880704155333286876261161866986161859613982666930073614373969115361168139026585627963279097238366947053040044774203325602352567405166458665385437342665885161414643791417914505711651376790654941014110047303486802655876213681725571120357795175558118507028359129132021906918855519155274311411520739457330070388196860466991005695314813283015868821616473022183438365052448997647745770657200166611186433829998460536204664725091110659238257107664883809680894267922349461716630724735837768352577243938490857773243963536197879296592488335779827962554622909649322620488545601826684730422096353408168123537996226920435502799175585412528782146778353778076696482218277089298462708246830165480077553004002622658542351270005759498715244679165762325879690716118825578818386684501803262416346937248251761484081034862874553808240628299511116998963747420838076150858461867512874717247231855882469733678247262117452008019973112948728436929332814458518113532473985902256984615614968919611585228899155614855139845858566114732909297088785794256391694972031853712948303885148212196416978816543071821875000517735959403716249284585409022449823078684674004049390337461521630624174959436474930622658818798409812405618495061093190187944430240509620537576977647404290874269992983765757100729176204914452134962335013500682430541966161856471200422201887406956436609283069215450138207090163051004812859031703883085514240008241948588961895315940297716498286329837483963084132442027565342142754408424244259470703698032233515073122772473480592481499520947252276924136072585812769400164704600792493887986889082842686452405063272424428525361242019099001577315501464111560905923050076518275464552458980076429778485406280748534798153620157563536005426633969525825802178618585474654092843292708106686510519171899232683428770619030410004305273135371670347083696814655410525210601468008302363963937139106865026600408714275352322873104696761446678832617188281015746428412395017789925834384352801611604330172466545091738488344184518937006872344086156749303182402072030698992801677494030741974563602162507234147864167578490316938313431103131380258862830995675041785057533377737652196207782730126771570727665396135963998038053876705096858510443614343260199377505206622257020100792606770450009460848039948977016951399369970704225415889922315769288098979559586875753976271178657717944100461286120663187546549096307693888612450373136680012877083326230678958063876798797886999925366804466472627984844434076758066019078497022493047577299807861958952394430181109677135433892019129652526386602067625228603354122408008209129575321771779475241976517728119811394503290638659197838082532096700439592845947958926622191120268713934893634154753381777207175091692888868352973714829071621111372187267392914461610008344051381801642065962033330182197052118257780631458238157512138882760619065771682459277262991009903406861478887957188404785950384665036530893407160948723461662029125493593834021687817361142245222922694807215644142850840043000116962616315227825025246030929180146007090067574054372632191439934736962590359826985563419456680701682808674419900936306400443276906240327976102728452079417381229764135700230491323332829907844432820358182097803793825802875820009551987367245699597253335902652764256701678828440878266696416399870603462771877310949856726476399841767855071656174406094843789498111886240517312144578211804604113869227211710367601782603795162919955332006776756710153238108922160164921396758007567333571784952786933431704407554705290252746535528905921601359042652270976111414784004160702168427563238874551277581703526445042988288447714261772837843030687182241751365253312341232585510165484864429696377242482730158934314511800909294571784448533664473414070697180356313641829590666892801517571501391082363688228429046002617268929230072062595244473682132608968428222578237391753958965249354952257756498217470006562821581425903419996343370550627149560968974670293738158890717840361636297963474714321698931211800793142118043945154861172119967354826053406633165610263065223987894445172260038423848457156152629857751497106986929929863932009862502251869713002217398134434705148413853254053414710350528709153375341297572406361686224821240522160030645611044746910465534739710170545354722555804793976288782001580959382495998206474649244718054942990848498163341517189567435517374855696925526171777854443296982729070623354503136363559179543137346195917600258683314009743230985565399664523124487342119383419766108503614719967859508855360584462788043502627303307877259063100727406079885237869614110778044450004190859338646990547761127685836655519552345789498488283160430702073593693856903941047588738225637009951936674377322134447165994508378060886574543192528571741298443433709905785200506493335748398171220245147026990022418637884718191980675634313037224089087166740286083380278960824678998606962055824153683350089423388033070012279959341796283740891246121564012298730938471812937113556032683737649087289347284387813865266688667324509896659435686401008045764418243221725375509708459711318965645166854281932684019044659036383101278933729476272767938345353374349819530887290155223866716215889480981034279358816407468246227281324628246683984314875616122018078836500825263954767263256240516224117022985840508998094622772808516227860055966576585817277633076663818962964779703147657075096797288828362706803198879829913590871506095786769612643195346140089242756013954995094089250010466462196447987510404273169839774339266429903360702896119674277576128057523691925370871148123439682125101019419994153072112106835726244765657957754922396014105356005938433037895960349575462753945072326103309915314229494325411261131710345520062201780797347710237113576494968871836647076842767487236930263461886492821692465018265131065170842897804107350527064825524501615441819673760948985537980919603278373804959622638887204528004198922096443038873528462618082675777379229761079695130672106777350747857651512563170758309667253805347372730089046454606036292892107145712766111990377534141263144596497103505749593951223785675425858927606355531006840690823360138353550691663229881863405158413053748561002431483610570392803745876103426276584296702873328779954514640022717371385569328711160620090001240778847497297467892602673523461645398779628834156169130072492046600691155890150156431243090379988098174140861522666605312298644506853711177426654382341420358821393838334375118202398923964194766091036693647787117820661547683470260502610101154265225897810698075799261452514906393576118335320048856565883887136307116885549378123115421340717689505858983589747566254226943708087975628072810710380576893040620337808121251677194703361344103232834724819886683862473136194854893451906090575168558768996354442518409503307857074440617471527208586899945739918424504987426357156049421581615549091725530735888088569284685023251318898785836994105475932803884059763799970088976561815751513394919849658752767440927182239146247141600471928178452713368019149685070513741094008824271994793332310056640420288399481035163563781824875250369331866136884613822477187980592967939811095506109367989630863324343872819568525321019611715617306462435967478580182730889736640124118495362894628812039191014230759171368471107376580689350092581768062626946664542912032753710364829452423244308310462576647969750563825563718827741674208200323900485602745621672393787770891788430668356696647964944721370378052149647554360724115506246690535719473957378806692675061348157482694171571385908974375017730676967352076599524805001382742091644657915581166696685335144275839091104132554221716886137856022589486178826100968901896907866002249335772446830892818609651939024658623193854760057885859613901224992107900584205907740352786427533828087005863064975271202138995067315865489813137766579380543372955563538789603404050163381065601410877591789748500066250462488300650543572850781919480103901946327682014822480791107571128156364209612096005135169219337316952157652800237185770469186863647494295984137593145313452610116792235189723540188733176967151750374470445279546334716510393012418359670843255803764468463775139400015303711782003199479454508221401536118799185533690862026255688952316163730359399364847670018103013372226066895306163763039653253614526228581195239865146479974347372129474609583598833252077929767639673625521100232477096175429374423119334627867069478833093220879808499718582988783839237188172605658856890623046745356584844700142390950475598937689090814108927851498325257924148172897673045115248191432905427863105681279964579915820130853918215161838737271075295984501076010608332272493025675441947733551993611858563112951234052334160396130754233221233233953287349183013059192873777871865126777865427413997462248795783007381553303650152083969723774163666125159513857203685003410351526232401573912320042554324903227567247158323184789971694572549683037636270900233445823807569022846290612901272683426916162091397344128716065561956354848489730836928053071135751722070607804607744068540692424316210703945370427458014628430368198617167274747847641899805452224681729781950826241140973191247163051823646039393220729202315404514103733697700337340994666842530459089520099911981891133890457724207624604089158343795583026885543349763363287399161806604593313986781757076865509610742492803878231665222458727529754100163982095879441511179745094218206852771395687335496249093836532496883844521018200184805223958792142685934921828844681000375872429602302786009099554630996179273286101543796133258525361882615432029771325397349701344825239545154720354526892933792547358696063132855287634718592208342296335094268489644981434893433952418921715163850194528017200522856930935562283974797574472124143338992783195497737329110980820984130434301104287338325958320681920747419076302523791101830953999282279811060633349299483720554542509601315302074468874108794853645155466145939989914136655590090513032797700721429481310942880684781743130629820681508599963554385209527615146553879652190427117715312126616497066293769534896271617919993949646071468329247536995879255541057917163897725330958952737061374026649575153177514556626005612787083100443925501458139487189478201031726878428909570187362321740134354162425506630177035786055621519640742295566952366096761751570735231860270198382664563118547071569241972621995359301549143202012568911136138704963915387606468599348387074415666482507361469490300669258518788641886941801532778039543655217147905854879739777046599213226546490700772801357707647829298816198983150542056210624957393899503442262913304074309108846472247370227928590726565227120662386834333677893045317942886178776039096886659557897525145144530169406344988426945025448189544080302741939957895201219814702043800495504226396603392084008318333755143291430532051343745269241189111087017427651321432986750114721029513887734020132219352070703399966233671266130766022397949549656364994601764369422758088437329921968994051604055796500977456062841962252577885569350295954247161457791386494825907750475515106922780824659660577093596769558749004371055274537408052259658473077725759850990124046741631181669998870411151636799417197821879975991014341317803822737993782587510100978849988877089310548045343476349042386889641956276955372020114817246954591404170547372055577912043188089242310993166170601554608247780519772919554459391396114252872873937244687682577075497068079311915193829715594787124043165817842095718010498674572543300961133363064018451245724543309849864668121750564157215926861710630638535599672271493790739251797810836036650920462801442087875540441858153545255898298988301801356994753686545301965718643275635918553151764999080913444617309599100722477099235606556989783428628869477449386904965843495197790470611269234075701796284646185004050571594405898489409208855561351451925106097832355723236696251175780300892614612981421368504500607393936389180149994693593865601156589749139063789006841454689861196672845290247659227379266845526841029968666342980869736873817213845792669958143089361425671532170500055989003929862101581453751566136190801535343442894322105785182073288117158101146400187757260997693014625166774025117636496111043078579452745937719501150531785674989445215585078373044425049948973151539387977331651694494650754249414493231411362176918475663660673296251157077818018112982900825724885197789426173647988711689495525632854140741127532174969921426748790602881786962772911658505166615130714846954887412821399406492785718920081417154588283005703016870985055443998822208856144249246592892667027390534865412307977509160417123954633484506681706201808563803843216468069273849124026023344702692302408377143941818750328016278605146466619799301432558708846527654800139504910405763471625853521242724521808287860786333595768930179860183052788048499981538029522738822947979287517632152190553951213589672889944109571593902427076965095243306410154121097329039136500299983978436098015228166426402616867407315922541625606232268752714927799900927953932406307864356721435899199064078485105955339224005127575765565223974634282964800921318463109385261839776374315851003668662705250233765048267195271294207632262606992946174737288430236612030433142782490714526891883067957701670393054223866097627736942903930683201175702067405401281777102125989960690679608022043294019218624329060996890489773393978285792015615201106731016190183124150810181058912455287529940552894019033359969003370065482637825696603167137848189638331469489738885783993113599831873415728550894194128497225830914531223139434923452076524399284080612190611458300305508159623947506547731073929321270982109627631315668502341343035603273283495993674189847212818877104970322307107912651957711181297642051171032618043404590759863925294435837373623783473712406008653192398230886481067397519658182448496171514898380727757673005002231606070404735363056596477841922578678473380874187807652771389663403219754650540237148124788516211471396772930691705878640720098102533376373988138323084005224390334534153329796630530434711480689185055407151292052956744273082197851674995684772157322554829065913229962098861105247307017264729996216287528032334899256230659549635145879753909120391425312883486030795233760565533487999989737972055758016550882813960027571090111261709271546883010304174713721716817035144012649230295054913405108690551356764789666431259815588422288398594062734513198532583863637281248700131329870988758962247231945554391134555761201998626031620281897524898102046829652436734281466343219344349481350389396366829352738818589801823806930442235533953418363021645446357650875078246445950497125494693261716220520917133115522807953970535757168733379269041578677318910614441678022221062808042540631510302083882336799590488866228997309511670608626486157135491623112912294511680243900624187653576610384151710827747555895718388804125007987186072565205550600236230313836895199160832027814994601735276296673497944522868088981399983418959985420706210346854002240772832451373123405517134776138807958247117262333305349274635172218013070636802592460449065402498216677655658885021768030848515924030645663816584651559628345200461132888364579939262293705661727477300963461105067609288062262343774064001318003853848167833075076870690309484834644504907065592172112419706097068724807691405731437529961385950041996561464085949603841206620576406841997300914445616732021027727488106397979182645974485522711708119664525448894366097920248754873858668006829554267999554281216827767505758477832588571127859165010121945363651397650438546677834250787002264510572545929658119209549605150958186799588525972018260671410139105102498211150035407156062354182734944893592968907989829666355173022925193242433241671938257192723456692593753794578399051822025706584214496166170429862004996991339068133709986241179156565366841131486801271263974663304945647088130521114538382944001293612983343822468495269351866032030315696406189564642302939429657831587036651278863407669671889214875841709721606258871649634375601158748817132078270692563501462105952318192470861353296948010832509437109759785409176143338223511100937109710613489043020342402411982125896896857147093714864024683861525038848472709064143157626069204826359891634456900010555691221624196680883365279409589588926553567936729560864317664025575950580308875867817784958791941807530749931317783513096671289809591817054390954093638166262731306980445490746889703468920919184161038700336012522465416733789773621164706602001023002491190491252143905107404882915354646969972072077358010625446242570406924664999473444013598861578689949153180839502678714955708245871168879505803610096815443321137579680141001677073054629118168532576512279190297846976708521780817757937178775264010683655840025642282665886300077353816516738045311708344237248692348049070622192299888376688698362102649577858576148260045745827702758422771935421032951568796069835096913841135155319594464135543247360345151151523049580938992729618376980224235623930347072591705737561848144925564124711143359113329062499943721285019691765036407609041098742183871665322690782133214100945297886265020354425075878207346968346083696599828818388950357049120834436744512955788548233203511850565788198821712059670142143378103520870832655726519895491060306657731286974142214518322576653935077929108099010341756576812124796799143658650029432177236407829899760619148146646503529403398608942393860913374226781213250000270696361925640758596082768306909857177640344526378525181773450720720755853200482665237708961732319553299543516707550071568136140389250223259957632061056216142844137497857009633665311654251790882722902301144552966714657870074414396868419013808305409745027805523157728898390850942450404018262136666456153551794219262574843741928225978152717300803460131123943176293255696986505928130851738925046093407746136158204293061497600411442939531131781781899731702324969279397677480770073382834829300920698008912985457335933481319311246548355141962051850914833129429970722308519534996306156569571333291389146224681546138236995587418285422511958438621648002071468327357808800672203968252890156051408679653590107487593342568184281931710201125795852577884541146949385467430208656177619542822077485513925873742134815964281249056318640371237753280512484206772075223883352420027671593550746498436026849467429635281093448959472177802003777397012127704794777579077271150298694711428323005001070041507183920416158262590943488424355304982479723106430987822873616569501039149084513643965772275685160735620060952667848636117583986116092921949360185287306339126351108883373101228105929343574791368388336884813351577557458190741283444833051014027870681150643040779725771237255551756901905751801376679877170030232919851478523162697248082278045809228499509489032755606202371315991880062763879848587413476954417784609537160328635421719896430386294278068074937313710874595245158733849839621108297502088804008724959503204043399530701510918884215206758980974653726042098937450545309436896427227757965347496991222394724988262688692411421364023403478236588209370434188259883843067413147070958189407446956328555451495331867519922896893994208467982289082609313531903212225685941761139228826621529544961813733887321700867852884723720757717505772416540519618885654638833306395707804089909115902307120958325026433569570549805485711746924234369691859288556008785865688008422682452156864360838530351494069907091814737523327098732199390097855514371176603460029543262200346869560776166521458749594815239032550264568155499219361796161665513420349595006676701711207728700998662827865405636415182210520583623669900422789900337951741618416375413685656540097075060883946421867072285701913650359368010441664204721384950985809491808838040492346821092735249188794992852734950501963359751654929645462018440125984597765851340955430545989704594518799016950806488023811833478060340611524687900108195529785837605602738562826190272918413854195368134589610046782803599980516090367731331674270992297578479517637208848317545284796805520032827978339000388597804566486191533312015817819093681411599204481052173638718729168925326879435663388088392548191230455230480512308715346253640947228671802019297277284720133039516142857173717217211804383848751254939235518160925685368686803699260214461043955696836722781643829899270892677077935582596529514516654527774784126644036149914997863135798659979088632798801982860600380103922020632319914659030733431365947050852099455186336700908367902672610614731464528608695952945854993778560931906609394300908855015173949693443244563010109771304401109738546117549043663913811868063092138755776004982863020221993575238950860904753251571145848522199921297970969455386201312580136136229816439499597923964311955248419108932685614774720567091478512284626711507890932819033418560055067554579748393433264073408377829420146246651929437648870504754344424281822245542026347827885394561640335158103836539664947899478525904632355151391008646139233738044249508665820933493160190699058261337944774030066028433327050719735925670456527578914533888148089130776852449487003354372736925218165361876745325994248310161363273877775504973831660367224554676168843721607590879728736544099891891537052208568018765615928601565587755750802269304195089966568137502705106234842280401608523263722531486470079836689891802608030059680759790262884229473833836809253382638224946196363250357388229807729140723707600277687182257138507511616886359090964737148388234607757440338831310931451457674654036178550746407963181365672658103458574218788255084658957619585416364308635722211964866429618664085328612452435555038025437472988143420191916471836326118585066155950283913719088429747469429035775863186720948404106256197210338241656541529534157364128429987496690902969072410186398978512384739119973311052566322383017153867759285088582185135169187188692508639726919415423052393332467421930615868126491635900977431566650061434815671739559913028773726500924976372781362760720760661886398525286764447196768481130891710864731913106609192594324275722130496712819579188559234196685124787451180820071759585340935556975931193476577880252532898470571688975719218146657105752880566852751095942172159671355511250747405776933676503509208809514433719118576056216876447736087537215744790089213088361873753945652286455623695776317107995467291329762229887328153555048287532543292434406435213391851789983298273307986021304730730352966200838663671373560357414754791444743265245554782065061286274497783508537723327177269194779549058541071245481527908000065848886248933243543418441400138891063588119260996816021909307968911615437894582337463107208806692199510002431296616243425789637740170149104894116215588163361312250545285696453296525920302444236347283598622830609008880731889555924884418463884363527696173875061873879254405466588647656406432958992874236833936508692074759881691217223601539634008506399870159017846930735356691544171367491197235028742197878084425167680822031921647835440729706438276133509655904869796926949547552074804884413670652940077544108141069992867441649537234215974305011091379796923101500517705505697183477562891468575374895792435624257121836258518440596451559440127720667959729786020223995067433053452769284356222754058654073225368716944653806910881199303915791107681162539077455893296466833393042242112017535784962666511418571155302674324535068686796977783583710027332570663923341627322158674154980612346190185619241606741543959021021472076136594155007342177955446501361282718129474481711702005559354842226893954945695559111170252063291688340718123435395961042044403694271242220569902414391390009454854221048507138372248829530685975834941762253957724412214565764405548186662748282094148972469095265501086961483771947000494836517136135495402405894892810712849932927516687354259088990002365134068259021498243161075320861567503283551991276016223928984920565305697796026427767222355058304545442428705092877956795430966462795533070860636319562511047992080274333644553080146616448676326971428934914895684014524083752533973773768580757872697282501436706212391665163245280363505535618703599995445038486829811532066906730188630246625578515408982845748220588659850075921037450988332562389527216368901783836223934383353418780970120559895044595514969338302127323702173463747547543287673784098078736513286322859488047740037322145634531930207593068781319978235328334697739891645564020893745368760567551654750928967293547392324302470530149670945296778160623304769093116632537724223921552886153330509748121411216909916670513121722973008912059792843299020298100198177744346176075206475123700695767199498147505611001980861873032125102508714796593531330628160787438516498234342540023415742374357143017075645538282245750382234657146822714131075790725486214776254987955962072890957559411372851534414995808673051147669719240698442293124197988581650206925015233006803260327377637338580889136229087773714060511896324662309689557502977032716167344424928571391005587413580494522809657732734304789327036313349827347413834770716733272537406781887963587905422532032890476108218735013092411995153979855055007598533300891060299420647180946264921515115015248889064038525562016685001822200003985880873006083243938945223213610833008576978070195750921658157360634462126193606382066776628069621604666465752311816930039557489098174562986165649810627286920844118877235807086667932998132450680433094465683866067976886431621008456024218890435530070434949320987872114943439590676573863047685399295082100804249034022175040292896453447062822994709178083876683708811454931023794825253402874693174686076086999206375196191055095475978828598986250572090771767223351383793726832566731849363357098333061648284029681133413072007184448776987786803616843915621689932184796607316787323154005404174019890593509949145899734456727075633171429357690503686788065759132265380118085697133703045910871877210078566690467379525653413380762555723515405239997238582341486560633405413173436458049042210292538192813168134718552855883956344409226877184798361878163874432697692916639149117007873328223970812411632545228752435440914681242518923219834482863622477464810624240188711121789489403671108349615622959793314163647060900783573917120107811288986772531550403379560917661425408246666194086163476422435586558660777342600050928945120110568188298068809704249032018687678088554011659441398945091200401413911942175628078935593500430983289109899339336262063446877685569763505004127741687495323272229603664104208642407930891047198926605386088269197840824684996397857136143127694727762622421394219339716986931679133587391352061964388116639494757091099929034532985181753968331940923538491258766847832540773281401267531344900212071181574385344562716315899439082683283241505446001892175363834055927596256959375693573609835291471783262808067706857742117082115188794216691436305739405464393194756461791416104417356190692193303910320789429327364843208837411093375745425918869438357495324501356679148570084524996181330248806150763792636249041154891833423355354224492044024546035204082112082679667436280719527220764153977347990291482703253263259952845598912867710154353596402704560829082162214227157904536908544695048660771312430952993679857523835814703449637913463407861186169823320555711267292915943156994011297865954739510256897833826831327838340080692043198359735594733191602412930398014149938873987230486521333911525057951893955340812215043143894608144656163936107691199789509359272309577721516510963386597201514497177762281591889535140581398629229239039215463231943375516535388285512041541255918743042250880564944777216319752473827010941229756901301280895719559311972299316388904200256363644947339057445080371385597763474255528459297234357122351341843240061658143235432216657548407163902592055458566477941817077272895079865542246746206638612674811351987637279591151780045970488494499643359932774676873402252282024189915139913266798780336223513068855796759964490417356747508440315623732542352142178141048657000565331080865536068839428177282448159083170152637437960630318290164046067923679293498206376482598921172925809802209669651936120789182830682708131174814304616816465217927968556060870448078492733046110618667900441705702479401088836024548716173662930916079467810548024047646086592421543603713964847772141504977922422744228351107026929536206248927695151808074627558869057628973361498277156677809379965034435568659008996863389623830322772848173754727073816140938984292595844458816502623687299269738112776421125955658252162061033162739100153986439963384664449685072330226671235495071136992792258504857750862494599781466596665204715295265998338015724672038788726819522588267803798388060366533067502307498872218915932368857445919064474877178391375096173186762214774492779334828698463285159704035357265759005123723297457851736830621858704866359912090692467928095359308040259678022674210365689551577386965321127919630527841430688234879061182598600556066885867210085542817392587803260889150224009297301195457208114721175409140008651511383918751246023131395018929372641860539440913536860522872642882504770825624495238100283007634664722140023210818334990029082369437350402443528138782298307944179519007674540930367705836736629657849668100123514599330949745566986054385281465095625243471327656493921598889874914264264433119538157955945236335653612214816100838159136363782616215927260683816344779649467593268823262682042232234400524391767219931882808399020717063835170252045442633178837289483013330380355506132198429698522504992414035218190697003081547385060663661006359961241160003259582648474307255538051773765440682046578089255068789541814152828566847537901555787151216005226360919555698762469519919701762866321218090395630849445674553674599876275698119940926979117408546178032949633567944968134564383464362632127700241549502762981861356954125827452852318800119321545243829238816714076989024901835510760290421895470116566664634903874159781621780350220273590347782798928902993060445674072686293644993226247597897009766916343986967444226586958210774484130020628803600846707984485737706996371622173950462578778319843664865673061411869495445879895842435594556973313116667246139106842377543487918083034701433424202171272060378911390486332911720507817665667180874152219394259228167518497766719069989527318930645513717427995309485816467763686673694016704691547667628883808518104698116615627800421427346107447916841837091781625329662146445189758260423059905620401789319740664675714127864966471473507324982504566671601794748220299850689336526906889220601032973820078108437337691022716183806215841855703710534621485439428014629084627242128965342302727204490178114846413028476763146200413232174582487657108994587306951935690449359417098535594871374566800841657094813827128049693260382961227422568982158114626671584976923693354509274163100555168747656067004999595654228279425063442043930764387565809620473730454566315363130705262196229114876453339889005107284243605143737427752026628074249648426737709078832224220079143535125153001121560176774554130169198316790461144050791746771345689487911196405625251096147568804217117789911316427741289986905686817659747997129675560906744658217990235999828904176048134583752803229478157479798267584352190620461586105042571088757107407962232178305293273212821642468622752488027857836208264279147049593849545483071973336230521610483334687502209016742460925146445289937347196162777640553495265640810615934999748970799396623904703627183809693743279794330703603798622945233013200513714002714183245049615378337651855117417614155752652009555281966916312378710483918980168663282760278722388508024508428774678583830238799516688390558273696846249171167150413865349150264432573158999413010693830486913720548161695242724386955287826533748352850537825593424352849096002707993787843264367880542231343560220101047938350235366581853953532853095383863130000088083407004602797135376663942856325745795189118040107509445408651616781878676123688237575612763888922009353808757155835269972881364782112237486983798823315386687665683898258981956736831246883000137173494163676518860926501816604946843585893361158036530181915838790275925559684136169232145600491490736005823234530431924571006570569833132971411985911802744533887299602524534550720323403753003620949849457478288217717303505271807968829172972207990267746433474036590648525620644059662535583668758156805180645251871890793435795951951278235803100342420155772177200112524421146506706102817993201615172152456011549309456820997633010241997740210269437851703978525969780580983997725065840096070787861120353298396621387780603656233676486096600901054535938462738220676660097136833714229743012480350382780045423425925432518449357747398201059538436593857333283708221585147683074257867601736722689415236044093839264596902432178153740154389606407473378008512417526664787375292191674014955187152521401793440852647895688565469395363372512572418766447796457585624006305502447394108138970483340268849684355865378998830086419589340327909221675438520752108868758748291010497910805756840793787931747227996662211139362327820706240462997431557852734638341794127198079983046198659243513556505853971407134110252891913163866310285511173219617541375539795701914679625216771123385627241767031323525347201016518878963244196061168446307047461408707751921544439567584235974405500412067559696121802912353648348145444443518108126415523099215665167933831252239105965603571907860204226063725245032663728575470173275856713380083705082056349291215106787438132764662133030114562168559521616335127639896645657218277544534832233662535299145843594873013492859993099087136792420108023200021675259748360632002622607427638587727075259538129772191362800901733617454918686761460338133080141798994286350392951289965949240708399812180365047788687859187761052518144122648037930828575778858439694510347030391202453481357229046622105220917291832172161558162377656018811652238860537741281091845441771800674281469122492115959176694998279544962104901322947244812525192458511175534102258665283892552886750529687737352445850840059552446931469969981711124015373512109906924321456307359902050545402946053975612593875931451355262066296586012182615293719811762856484894637597997689289727974448076009179285925515854124351660074917603615551434235038966421935217221885172563337881329165583528239420718446534011132648129160940744560520081000387022309369636679788595507993213877725634556727735792608923988595206551927663088858323805138988287176839678343359892982536508439633526383082404708217228803527765725238202891647819367924525098541888237321871366590533366481958565630433834114762563142738712658913210484971707433166146088819511199494866403045782701264785058066892219041172089459159414779235566608275706138616388716123465887161742882643877802351026280440060506989514626881710901798067805151825758747441714748156726309921736613929472544832266294024727423385654214220679430920768812286486065526199623585348094448569256512463982474158909955063807582354210583221851613611504009270855173559867468903004195706161753720530344668461886190181488741233187571101821507311174257375836523124403965778161277950343772303177895880741416103111468573997629251223952729638850907735958853219550100675065816362854347222330170049917579367930053516271843111345385975594898962785570736332051165577094291666365151120172012953911928181101165189152477282393445444923400486529039692849882591810764742028063273679985476383622465559633144176577273870005564878481631551077872340351978089973276024418428701218705834117139034205174347896550598547717559687611349389135951152685375882194721911630959289431964371509604210973638492917045525252206239374887250988035235657159720035281672086514468656456577803907350183131951683066039945339440445724709546446664695046358890401904820222863821349876834815821009122894447840121261820798158133189886366316862025194528491574836558996538752408719596731549918961625549633489669582147175826626254846773345473805691961116040757959497405659378014857963987566060313527444561644148915369952163159934817626507597186280838698066971079382774872705275634894076793029727349461592968477484123055151379748661151639765119862346278257967062795180720065499625890160792980575734884576366114270789367975810614106303483186930195294002709931414225378632045457420919182339148171069732710976841944503315496023812652277608090574928065354238010317235195027873073352692070646638144424711285108173056257452666703701914601986484227178673574683551650198503581851912093915916994957302948127993533968481614091521233685385839404319542652634526247320465906963099043766702460726929317117947355518728708577306236980755263316513837916856003843694561808033734989407833423653674245537512887262688445419970919219977909837290410683401073475853765733072765021410646540170121842063068087994119727819515469540282843079300979734749671184026631026247260812161873979917142209259541037423953171035123971240543784841582336183736032053188500981320197313049101196348828834835140096704147931228347021668926447859899090860255297730082695079784551060074639248562146753198856173550885991815896627897506003652000082131784505754215171417644935077794442513075375823017822035972635625869429405248098904293768290323672013596535670195856255489551901610229804566744096910396559642056442865906281111180718542807775103101572198565966656503104336842629626221515520091577425367270354348111307325235852348269992729270014033098976381566573457356227369250408033776711665636674605456828521363828393005197001234378041138625862695675933474743863780588626914545356580923296071431360487547467659070142044545560343985183767354370938514815689246232902822763676388472279666851000638813126376699608533374070612142856152034031882078624526849570531534162859590221102914397844403109561173890722674663393128380311007142099821915159812017511918444379583964545135888101938332142719008746729173077865047912257208556539402087871071472182391816536714315905887328386895206820594375084602955958273845382841554704289925434177887336073637641570733457947315850275555627712991077255996214287167116238257591519871957995135522424825969257578693681825902890290134562795542609746535016801391992967317787464966477243943185600891039409634475576728687995352463055145350688397245639143847088910971746829144489901804953418549017042467897645101144455264597264219202708187414961938817037179773175997763435470847870830145043850854657618698809973192052000506099975308466908061060824829481739238632429634351997844441903785457293228055319831359537940948727871179177291865828439348214201285533726613188208810628552907062376238252397350362943665558856529521991724418935587244984450177694985329032161815343992662524617857931814981220005131264643650214745461545495518558822032992638317877866472165944920238522573012710119030172445115071077914671843282363293859929998721782387203840334168666030579382211283835803839189719799055704510388890010676113180687231935917042273546003637387692564440034332020248664532970198740514872839852154852501284962582723624780367225816830655489443643160977366257215304514978428158565443010505287470303541785200726260158160115227464167955288392925797050710405780160484884190200033542860352314851708109922758713838929348852008875000029860866144602597358203136412335058631450736253397233645233355851738385865410557701569515796206811287210727903159783029872323444377091259302032411836630665476900962044805239875575967145445325479299660916756542992790043728901560847738540142639535967915545833101735195418979912934400875383468333797723398295258629210764187873034774249209730658787197560758667772404322652280162946594882309937209974707579525871917314917583287135404053852447805620748880789680627749885848058811887773629298135577169251525631916795704598684275624994176779283483696653840014331767581253135901976325449419234330824954566535585589496184377354414550458007598892910938692187988122836790636847175467464717569848076092182409308204788684115034316001993271542401005997445149275544845029095077435517524290198342430805838020053816746441691370488075584157564225581088031979532403492727031333291412294063483525620862830943414505253619121274727817286542617024665022480052847332722392411124225899726678058916238141821533565456615937023374880638674168926970714090057195457954802185920410276878510521837727342832826283494412787187684643772164527267096320046589604956851496539804623786664370323346157460723375620849238800971467078737065212095507045521139623804832779457758817243745264265225951720894516667473924881717478053743721248329021331606510648334570833465654807539118444802636022026361436567957787325638694684340930599392882668779323326320328674177442967558918831729617885094929269700618476620547366151333462701419707785556578029143754395715110345972895961611547215917316653340484717291524012855196845476270430259983424693852115802773010829021761874529048906068343657861767332988433263932288286575017349952971047331404590723584963996107631274447770302326054131705879842095453498382491474186151061108848473976540865861950135033758913917386749871535532812990065321055978432166060142970076103866519359034675541103581283385161628612836616347600281933290539959847653915394845502754875574421702672077320026579504319239097613453741247832622729762244311387595710999852819363085725480015034458117995568273772963953778811292929175038344138166281085722162965651329130846472645384452589838274978544568604863663275025590234231625699454472150467779483968415519012038127842597570217223166274126216506926455023610061121179485543229390994244863951806451706185570868046046342798744007498305720949936498732165083835256298341167884739018627323994680977534697014519264563897714011464074591165289023691276970657849992913752310485874741960150226611661177758956227015312103952381562737949021888333977418821262587860528164749773093336117730087729814882747004190983841004704063691031215114448537845415429821912196477963446336447690991288468999532717752820861411582774376412400366775766333297200062886140154691867294862160311665005586511574506113367198365933839401766931104146309444828010298754529198707174011089270144700405485208575523795294162721860153918898427083353490557898731873610512147791236806603337519035623819034988211798507952064382630546555048799299961884671718988713171841854662833393612598278286365635657515109424195346526384599459449179442515556132008923357883807148499324539333586708919966513417710949541549554742928388857561946571975195859680674002679324511580761371893035310094552397943479610652567502549316484485107029738705116507725583847887780361893686958751808881051801976087393314561100894781588719253627905942921224250036656851702175736764583061868388737730509693422955601406414007648331555567295474680172631933891361971111851971307294791471727254855223484406313246050655968895582353813569302088386231645343834109058831510639064347536644339115001349350123836725202951369534067686293625059399071662442039238494944914767103029563683453454316858953774731843032096123653552557478690447546649836505664935785751216800017911933873060937525998552320633796382053002036979760881380084030068916571360534794146159493078284036000174589752025773489935756763703726918055713130471672472904556693316532854179398063855708755454121384866329941018339659094661126408468584169571845277653479511393736453701667577218967249613949579598327711594201859951117230198051735425893358281414259559276055625574889826236647315380424367593995519810380579039551865355645669957592307383756872812262640434125095227045463316352104024885164535603924620386573569312896663211119275111411534519063164668115171930728860559594984324973888182217844114529956294747517456244937292265485361213940890783729675154174352429102539043054507769806036822919171140932639405692472207183783214973587424949650365200310175541734706103742206152070497162118597163925193682628679257240521667949323098828424053999475168114392487038563379796791722337734021103939233119673853953139412299386291853811537002495201921219710071429526863197401678754396335139480334555978265371598118005283804576432799708097358851420961445533370104241860621302312605568561591960304378422095488206252704901935524139722590032756685754692123032098655686305579742542082366298345887090950050856475376950006291767034151590685192229115478500145644718672587301390462533139988034065112352375755723989462036244862394429034256652093262464694535751184364334501017152841823044419184812822094660369967585014778952022113017985493902437880024419600743572514643530393694552078791481961401973885644548408229702066963548450233553088429469427061577358387776132882889411703546135238999185708898227179170083403233982186503697415119217790451270431177880900440017235542101481276487611554293726518137926031914058330424454502186796242799746046212022473178813856616562821273797833748510047495579088917746228255997843240765520978191183030726871476284402439824703180373532629962205531929849480493432702173209103472908026690234127625186835236464887850163350866719529705952846472112639823173902842555851603961810189808991451571845641724264290837693090328439749412747320570420373015686877996500083375008293688260962491719914220746794206171601189530333330478208252266055306151480603102754006871594044517411638068065601629439085002171809434708552857416624349046838446086055328741478307844372530762287890620219670145546170780278809238539030587045650463524457471036560419180664327944454673559959016497836689100142753602360309595273221395727071399807326349951087317047365869447940388146367305244398356818843082377041883838218867218110986513374494068658268352185661844364168924358847936972765960141873804008298792516965440903753741725333095370650497695457392329796440492816118608719494620032559248767099228145662071851890145964737958368304056931250398639728582487809325803264784955663910486004797147182301131564668943658574360286427616458168175923233307652358402859645228436091687569175235610364955903658930804675084431336032344584059521323841824466355092699033791350039683865034540014086666330556958813286723733850117149157540581412132229512430129117137630663146145455159993759091636887821668175500987601435367686059920784442185213965929164898154276640605045422821388682177532966740751149617141036738592010391688639099251554055038395503742072822858747707580554476599205688831578162024819402659418083559829757423600358038947142531101370931535739108258402626421976868301834427760303485087357134617966298700060666751538446038338883163504155942377400601729644611440505722008762871063973674189256427013539804319797902776333790066813503461210011917609054010715936106084772321519951446921658895632687885873529996561976962778739289392106017524263727083792514405062218584407169588319425308595607836492266523463101172676228900280223399594992162514981245026996836850058332917157782065317304188522104703958596970435004715952633737350722548250911064658860729139853477397636398461972182981204999448236103696307549266644497479474198331144411237079741876072452892327481065276751784045576577060732877676515564189628659774758811320962536447684059022024081971210738873604473555115230053848018242619844050662422094656205001376127679139550249263721144031516765823125278403247144378064682655539820829332386887060397825517674554382337255800554557758420212700294577687459893855682754104627397042208027182178818762233510786164910217497381753831681940667211670086073820577414336055712365182713419902083319118291070435486283488028456396746962496017036808803016273588191646428389978814904010959479071100712407735992557501562383040384891384021132613856739045799855968303967472479685845985692705494755373485534250329821244124367986634141704922346029029668788489049308397461211688444899658487700942105824774899748841814021333332302806046961040441887118462210083729487529887561786439917794327732295782507968511235083828809926780763237912118884852170619918115040082996563990527557153248789418757311666778846595358143368036635527515315885632235196261844880583716019908235583563935591071826361765861828412125579327194282690509446808005819842017022152260696300023796487710772277861030238121958609006236968983301559756877221902438132362693725336614452714983215245257360396346381548213098589109710338015272457393102247526364113811729731311841157831387213556374132864962613739975085375457756244760069402228500737223008710401946285869286946084706223077587377741672648712894288555169413652471712351119931011188939441822165579452269070865981404826654380733910266580352644929179616196422384670864498510354307670608500296017552072005468546930165547014836004820130231057317527195980654709632901863369986869461254269040315435246166845757577583602631978596491397420008661126060267235703780797518633028471446930608696723048837856488044896294379352838445145912725664277581697689164477402304391608806602746425844816947054095075385227445257215512371120795280500470187892669927848326735688151918808898172379684886922177292890955354661656747297681918643775232404554845724306571513726775775605105351864747061473275526194781692731746799387067391736209681811709614079340277360761418875604828946245943947346351713038672090318387607700764927046876937403221208155608232757685183776696184090933262712120569340845075178620413828196471874059169928852789300633544533523947975566541317280918744896983780802799267187706525058606542591829268105007963181076529208575226864283419127420878373039462168339154192599964670204295725091533132716420144019797077700732149542246874867626015463068311576407745295955542966906859588785540070677751841662106305717994027548411850337352145657156568021184309534247461331191952604493967344483152783839621360055249353836303021602724988312690588140391488295948009499610197519105246265025266397776967837296689756694279394378227104639276677403128978745046858381016522885681315636189151594851267597201986280007382931838371033188438943825677240645092297142096595671192095350136848981836890256688237078932283633513600988626229140877460636249587714780374200802197902656645506251245376782551699921309821357753908479296334331678994951275798588686253276630524756446100503114355332584304009440178560863439111277688572121649542517148453957643308137866388075091982621898736498097002220413740213821043001643157595982378981073148883885482037940074187961000588113973808264851042573485349438744135945396423236036346868652672855459913392948618760024890930974046934113722814709582499743130324175681431878910793321379901715786929995099131542866618719190981821925649026642350665662176817715331614592417848306834513535180915635148530719119059820223293367491563786944813975860065264631778554131723879402416162854255657842254281256052637593306740023478145317935360060448214202318411928211423365794701489693156997165020559536743541386262810771410600184243896688477449969200270949044723042152958577829227114320705292727003524725638681044248899867325850720320676444257745415889744767918218984792897464994184537479051546600810239594893452491370767312898899274570842354554854032817050820840300299780633398047058460849915774629481706760022248497145576960462399222131413629464554223916151297179486358270383188064674723343682522000528265477004230237666824059938060864778991665862234562572053412540312366759779222089829053866588011874395865991846844217280337600872178313435327957059845593725074986852964870245644033732300308375710092451839449267132950484554752113466378266167907646403464951933311631067812150893516618611257603454655067074273704063070882044449298925060474310438631994048870310870842094757955779973092485156129353607550737790494599989110523864178762449072649919724778721270989057730372790076441415759847939677226380083276589950174068882024334608062029823945774963073118397491785496667089134773227641251550361250271355134447371473658896623460514980123786806220728205439932388194856754266673300108888081474242015560075929891614055924961879022803221039516599383483169995736057322819276320144334131108535870504941166544597469567759640104345583067278745724604925113075390968343174654322388818995935185555820512321063546499581867852036951153736641613725904420202346546382185231720888712770106725650641514553922233268684941746785551779757088335504520581109759392522378998271535880242591794012095776340309158081061007533265068654648001693653084210526287833731937469549434618277811120733053445699291125958419892934326010347282951796535118122789305152042088829818810183892005716460408479219577714264695289327389318802846387866661546721311995046436532592339765289396724846873848816879382286750942794954495281555133307740786828951891465771259072442162052899596923470321215600289374414427097910095978508800276541822941822590932005660787558447402517113628543021796938756555727877890047999727119137100906052580478025120733397119396297356849651276224053330612492387444367224525483817561227825840429663310304818920033665395754512219390988713555045426710117093627468763236942380130823477136779768113379333152530024376449811413027537822592486324759938762725215636509583443410826188820130517445281475572998132710865995008828682473699080671561328818155879461103639016971265015438056554719467406578019189928695022988740733438328441009207836433778463384070010745206745015103462314484581158055106443858311042237173475521356473387025922588078356341658644768178745603963300544694443009750399483773051258245673377527004455134779097032421523113515006550656736800103326401615412997658234273548012615325675055377652575519505010315829716887966704899151713102994045545613023075888493530389679975173494475906643298513772377594209594553662507728484680456024434750135156734493998412662952975041438478217233352168460263677748651226747390649859066810751577223891584089515702878383004995476431580689310312109454347851067324162780496471012382455448404768619164458155668981501481483540509534147056567935479934662046755164346302253876432560479599646726374031281526211224576385422257399342930994594123185047190393651746145681966022574213258288316607061784846226458760242455681296826812313006097783185461301731192355432409173904958283878445744099453328556011196431349747816482054981314630730851903606000344356017196613546946011604720787966941659557724554314790783229966615237277002222292123458961643483806632033596236136596455761368429466566865501466729594444954986731209651339072495538613767164023580788251261478754001242415180730516399543695929300715551009335264081438898422525576477948388368322729110487773033577442830993504077874047414507379919083476682922131925235153567744010032063659737163316902225560647916235916891953089642215546469159849177922939621914636128755269870770453948136334521591403460576461029404540988567878765002889982617313519603429744968849109444955916764995656700795770764452443037406399707135901953598839779633433542459959882730474309623735891783960560764213511026975733566187724583929142788303766731928119148276795657175106880959688274046236691059350999039903550077191288171807943089430994271005443766301348209141675197060207274719240512599416184947225005862292100325945648461344301345152647246917262056420231977775497285998727576862312327772136138077851145658387096525070705444566553377006019865587514580112814826345141135413587397737366493871578163140860485612888854052027111784546539340955453268474755885383578778162920344521896387679484535670723018851566106275864427695472787027256900662352446464101713085869187698860253407571476036015308467085043477965711095559612223901841694844612179575579534509974966426488230499463042127553676230292157418096594379299083409630837927108425164635436662813617461338475055878477974782869795799937428058329907442692751274650450876061189049959216616566604332020572867823961529708305774925129550310577801723360994169760712743561693766900355880488369768553777516245133269381006427379356594273607590089414384245285332694579190574415382025940432701059835437660810093614859649353543824175134534000724661388808510618242512022206839022678727025809992716758933503605668341432351615880615731386082335638097068193746750932914824750237650248432014486558615179653330706010816755624328492339004577321178905186555336209982491835490932969077991045510153281394076533851328246843312858768253227977536332889711861773455890805321542767460044986906226282254743122656544572637645092052317398506095289315023743705904368135587699323544409138637431219444327591587029743768871732668704599605783008932500873293551841568306710087953747631977134844926730815229913747403336721163488150229040091500922307073442600630500296239430323212240632305618718133960881909685498559192746431177145179447138335673957043681318696559930367722776952285274974244708186502250468861522565117488232140642804236865318307277777967248273059991263019338445525773964585450944648013391302319053370249516291324358349986849265815521243488290453755369110296826018600281955591841640539891100131515641844343837978735789277235151733294408467638823171329067297162254572971438552647632130759367433171878672375636870655874021327155139512716426219912114944096842525901046937575887218120749852534869044977325045859543481213093216296170620485895686114016313973245459765615001417012139839974729096102693268475320801474922672882884050769214053525585260842307106156642010642157999565169039519869973923130710500404324786790153521190574178542580661918782489267837158904547015150194149752542385610674635713420262713848576158428032176499678789083243651794329195686723588066294428632066844376924916533186373032404993223478493222033632102929434676047399539237048513826703782853727495175328108588422138872507551924571650890251794383905357419012518972573113271857717599427572069119123253919148371760084722280963926032712424695192458477326121288978410079959781960368775909059882139084575786321323438393554059226346692610886205848511396691450716791176453869242583992517056240024329166764130006637812377361548554966804976474008498604303236274738533715109099211902379515719797692782749549098112917124839311097142166303650779661169562081866186063528375018055265054444675759416701459821748285075119390652361671859346960855033624258535806487181155485801362090236478030440963524464774401158259708852718487844801787717650826776950178273566250640570027878770878404063037628141873025041964071791898902287662712074068607084460431496877847403895223776254852795034016674496558201684550376708234262376941539012123369456931868992370309518157025712933409378115832913692998626161097574557923363457976681129844588468966649177404340448914331342571033234046613565309248181742581577407755515077931264552907167456045835915096158231943277491451774768833117376315364459283024610653711878814383304614376460593753103056320500173897853403248387290918438566485921926374194833305787220798228598608950924838128374206728174862738453344716194078278950992913872059969808588789488657209999197181964954310790040541473726974216554278556388888183224879018184848365349597488344658753770248382945008173892912563139699033563507814869321140707890985809547821841175924298104872805562825382079768657872903411447108905814473655083648658205445998138348598666263821719589206372044616284504393134246929782616363853140537907146392734041171464752388746372609069829297116698473082599086841610376255689279670396419078529160758978847624528441219442534477549453816715835763910340204718807774237588708448843463460349438528110923093716403692886018366979411938491782533823867209633203086035295651682426871135757188151261687601253191199647278225998776277687142229993704153668299361243031533837900743127484490472750325049341142441884699689998375284285940532719240790773604076200345208972393870800935436374679088775448013088830242725477428471678089341842423293636300098967143791489570489846660727673552798736752140065843709163158344240466350555537458401313768794139159074741699607121581809402756051393656308388192504657920096432758873838997089842427083985919532653436014078028848184012049758406346367663143315086472790223984862698193763126268845715571815254860161635523018769898561810464270539609933748600423885193530598178248627430741831554457152057229242185731063925393894801466992309061191036714639333675345752480443279624201407726044348140250178182401302345165881244617356552677682951747925269671769445302171090886904128043941386830349051734915751757206718784010958192225289395074960568486548421821668865678293945592828350331509492935929059579206574631650421637953391810003776846141377246355895632108668644730805992696225862437365265731857047365871809432965845805182983719131499341096593236291762432136658932109088177648887417241394649714493481034600771759734985787056287195106810477978756612922395878293986753525256852812413224933739186197561852377329044189536023186606994022629230545837271216950564206902088956461737186176435512059078026712940375191711121798266088324955212592563439718495222858012079274844197317626648038556741614310454795805749883930484291947804454755342787266919774726256028258444833570277626013831750595812543690848910327022148560658421014882158625357668718168475137422301596090208497048748926209885270365507314392564958545741920498278258208596543815509597934704201920838310701790361413128530876533382450894903302281125548019180729236007459573489645807625493539328054394382427110938787191088336147507157365697215305800133375642537449723202848868666097314588982856379819474047477205791994183414374096066068666659488485780118720495501644191259118322715420269163930270344467601187243340964327235997117667816735959207819292355401841607699914284008522233431095996513479977532652063217727985609265337923385704277816555805469764145047509837162067152412099865596885301284994439219206112775936020761432881405294863194038216245297309004405259025009454011593386112977350558703377228600874501521194428564593510668327507344785048329906678973384110154513306760503899923100507907492372953087701954003819790128901705020287156978208092226312605289646989660561188285778529456437709511176670404965994501008777199780349279365186579280183734219151948703501488516557835119502437543101359122551389890393152952660441647576251997735063514446461650856545404495024851457330792611343601371586549613974881454022034299764132199726740997787459632884713920731970877889448047720498617774120417892562053250725954358890497376049151073793679340851329023198299758561200806143253813612637538087449813734658932171652300170716083798484935927291460791051847592727409080128531296961446633688698909784819944564291144721514703589011140842285139806680748606266798990521064795178591879923033576170358701007065038414339631824070581783999192597995767732510987941380354173726175309773819614828469164849636042038648819006099725203384329322460790917008037925046967220533947371675166393963062999852385030000939199411060088476994712210943526726934939508876754595995410359253231060059863955925975793169106314525579999292470167441047937265126743839220434139018177799465342808630153397121314764207639984156985033620018075177232072100821468344392250720784486289494765360195859436748554851454114376697850355915557581524043343018003010238547820579830444725509042993316185321395783075164513527141394634324885080955101071639223767427195636578666321457516409888208263196292409700827425828460361463603876470155461680240456073820989431404236078451720922326064738400021570763884044740790854652327330913653348835322057979398347748783394703517410107842184595714574157514924930378216682200904872645107676806317233041484198218962104615758678359627723988542841673429063393675019943573584953204437877990080761158348351709832280499528916502329657121843813990724647828559735413433320273338315148119113514912871167368791123508804041349034009176834252790149069717049221612969065981448190434427072527322525029631841784620322091284233352436085645280571879718124930630776360511638580679335935658860296919090648072526716063651121555717678591533239674082710640316750259763472613603712398738819744447219701173393674353704736101342825578277629894847479806365475835214721053493281014400434676939318476256141630857229079784760121392496417943984151280061569346194773988291551969448065975094624690855538609373822966764315099368757899925124417645827886138182245301396229240656314103668040655964906064960431317826286728960480325092585182936799406942279207891570089609200847051182309789231522516838474182476658421824502496801610875560746226224988347160905634786827039332796699689945784857729905799443183175798518185945882905400679055064456234078400844063655312527206342142986448815351358407868822896846974445970491174833452075724348939019463744330839897046587028783348614685541516162663292741724935853604552205339261186091678575880920155033111370674037306532284753083017100256506542878306443166773842307137667946276555957566282224878831862597873382937745839454175517215212378485435173625945469692064165118560387938236919333839058566201192134021179798248890067814721623859255788536914766611668196876280478992761896595666373041314747241647566559850537804219224747287665823516579179299354655150172267947714622753825438226424342634855458195875518315701235395862179651307189064289015085423015246479393934635688943659564446111116676097672616078979803590311106563476197382122219959603086164084739163629136467085313216873404052120645190520770499267718683226905120888484212210643198422483704522265350053161771507724797622018529683301976809573156685699288567767538599770824070891683947765229810114852528943486762246450216871321283764456650665359633813757135915105147877037824726321539119500794381528511050023972260503707173150625686340020650538335884663973246653176109035404751051753601549151822505670550317946314293285349269233239198423110387239512071286380364702719998018621116297451271297336388316748020111212419121189049984682179736717082108634324548898342161344873863338451828599960773412598115433349825917372757290325909842166797884509544029366637957527114313153247708214791423922625890669889299360118169561213880679897725942656206193515789074665622691981055415493204343172311108747541819359718707943847731837024145655279626505172511561885222399704082064677017153848377635694341231690680690423134303401029340251596319781308852708852514640030157145967156850532597471018804139064156521238637758211605453737898729166587264269253339899887051487983891983213793786275931431618566212373239513587644168422682996801023728168912918179116627975267811493261569703745327914001349049618332591670158655888707837486445886486537951852465022921405214900961453403370770750717523526154060079837322860018977914460596029661258741969263574669931396119472164203430667651962529798375334779323453945603514760784162916525734984341303181570517453781391391515470233296282798654030353030543329385048324479772367064744906264730365594059606841317002178253613087985099356640738316252673939720878313146231606242805912404003982462519705072242599495525711406610637734795838703939752175434113168154276288170941429404611364803302227917130461329821284328868974456163343976771926233164623595673600296326943819812598942221471715738323618601141904402067127868100513387201204044704537989519085212889630624156419921392134313956473024131039474749465369846716037603691843549945133163151617103003521649491087564809041639257843678128706089266894333109503369720598450712419083106989541069792057619734310846093738518061353131614198832555103734786481239575086044688847653203621977041075252309268513828042899124345006142713751111393783538008946593534905689244541633850579824554129087123285695931994902754751521061308852804159109174364224301676833467369115565168424020702096886553589476890735036932006111890515218015935249105615249041934170963313490984079346656807417584540269363195340980662321843515286012540134938254109845319423548619109681872515852805887021564046544948451125465108567386727918573228093066799036181073833896891551773913612379253858900069077896434839758506779952695561932795534985739890056978998882474507193853050803898938807666892599625355017908130696078135438959493003433999532850051775992582578745195401149359392879702793228133538182807942650240369600321954801161585495763095852830510177685530948952680943919356519510520319877469096770112613999757086468256769890101586959249851002624002456021923183922244519384960296406284263399883237021485133648790907490004020658434641867034052436691947256213252956558503190905769490110991281749201559093147898165592677899689430368459821242281964882735773229747057537032378011758804602128113518469054043574734430623852058255907867913825592623538108694150614715508540905754379510225363058799663550423071320119643128331153521449645729366617798166925130147160781453504072114329357802405832085296686732514195595522154319916305394284505102936408663442218650675010511196459502161646873305425360293501924137928730867940733820245462373190076563947079795714856753813988339349859360590272921688289567670846604546444487937367465650795707288323412862299117159037120603990423325452699560269757970939316913572783844753962086370139626615030790159250404907272586789931374945106013514465792421909458057518982262234987466313935105407846712402308375118467116327858794065488147900568131726764795049189394900678414547295226573984189439713046882644018476966738930604439922373401273957378165323407264636817080289028122788798228320936800949475012623089407362210977810870496715780953568550289778560815849496612993923065006931265762984460387979513867390579314575816294847590405867782406631145393648335243732481721064200450001951366271427547709575321949460628785573368930829611448639141509920242333693821130344161885719061800033657377550077573670797878788943772207297367484043431035135589469664605684745300595589882539775213625261030967101353771881082257526500913339026953777449443086218382094604209489395223301620221076230709776009719249416653816310121494883989996652798405087507285442885692805316990419653404978591143046886245207449899050404981221098263456520589927689520233162329801816964538751806475211985360839213272231359894883962531626722246987051911620514672823319496008601331867151304356474153780267148245330517303165135883258836664382923541500967912780209843354813784277105163819145656943443088150630133689689234691403851498795460106799747716984528003358862652394125426571956088331337985298530877930846732257575077779689792798692128985352212769955342347807564468885451363219293926024450757486630617386056090935027159277862462974758336464412890232154267817876954563677377938749737247337108443133177408396547681842656950606829048838733876029535697618658148191957307234099527265164506076332338798661423700474929362065022965472620006195595160577586775455165739743516385278959770522773599266487099922284323238530734158672968380126361015782876631721119540415823234812668155101971349321284875874883760061121392313286870815794423867810520821605011690894720387486281937554973076565327310643373203153218521307051598908940298250602233777662237144604609176431661182802989786901854754932626341504857975110436892965293741239409580435848751705298279601943233868035095540557331276682437918360531724340567392132003308519940374681118022842413311081198315680452984237963020236419792854323264291306233896593605578299338298183043605438669290387995270334038917834618623292164313246889333861414776260400925062764540733943198999406411426705450164011310701666399527286685820235094210073929059441836454875054326350621509996247617055254366063110492743440346551789892236854187895198185337693171692293991825224745881191765751061640410080997564071141371234183699121003471151989107469199077090074589683370563077366023756575802537577083451947441785676556705931282966566950464118803914203814293537394793248470435783568323613433309456567026720512078191838183117836917862937892553161236808534781672735111860683530173161753973888094925159005453415103009319148278847111431800253376176279200930030904895031484908999217953311966758794068169046014564724658225874596374708372977702031184165766555017452797807472002467119537431315477241915366914836584810114566222049983337226493822220511756692968959608856755907421350888789709702648746075987116783664168039744151186514799139522188970729473686154066137847625498522838551103628382253065889234818532089969600769084360825215450848769345371513778538612639505562261457177583075352177540075657459168334271628639247467728187144991003636659706912706848393599630662716455075786683536824941017034048893495954122444044806769396654088342298923741874487885580403655913594079924258200012312193821283242678538864637136593871680730087527867406628265197029340508031611878726966098252547187586249108917473904486334569174294480604537900403791982184373047897076113995757834258611238424026979593145512404333675943720546856280114001762853981676386285465804884767696531304948464974903965943613266633007513974795310150675789865602110449337784763506136770989369334494796719135614859826028404555131715529917769146139817571877418621489771387154679421457724959791763003398981885884962884221304094749388046344052832327593049687122461569355687816190871918465690264832780519027854241117276076231815623468299970212448771828942441070510020726647214480179601680531953125111868805682912836216344991326080972350399192877175651655332487983033630674399982206695303956926372532830105016366314262971259346710627027211641103199863042731587845000384143626058025593240626393269335479055881701302724077173070128560378235762438293060975730754133230149828297091340392644018888940877546409829798616060608860135732808479238537904210187501344020977483805954376239003780816575708884101461487819416651264255848144957484011354986283420210084271779123401377546038060891050899513695962749837183411555054207244734621485461711808997082135896510900716874644459845982454319262869223397375256339266310715498963784520763714020040887985595322686728162810075241126534597232647592291693830491058456203947538252126818070494433391996350404766569783037128986689150038434822395499621038021822866732813862281255431757141850634886034455454787420071137017844433433660487127444702822793624366430514222106033768086039737487606485627700321912269548878100466608819735824028925696784370963321271515461015184783937913205636948257697554934130573331218320631029610649408674526502314968301266115311629401534777999604745344167419747901154716292227646697059215667867573897892264087982240752238362647831650248371547288641344177191097366993722454362192555280009774207863109361057984136692235205863285068499122359975269325450053509710727829865581590680671814792990968244482947746573264237333633582881466431236746400412757108765224513087414349365945133388553586986125288918671292901177668420465312692066655255180447496579794043544297688333757110697719773029123861821678628127059910117968744408214524467846012916838754278331340139757846359085156184616098970487604038776515777023482370642856546907718538133369210540535368873628201911954242177464557587518146893530786880074637025444539980942870970870490981408563038013557976153995171016184364411322007766798617733523215363498543735499226315356525769552253347312172945492466074780706508607169147987065890643243169582836868535879459862505969537320302311133869587873088057443427925467580795823123108836451732631335640016721234437711284916054835218402652682598259380897155908998335887609471393464946517748977885906094523215043608179364473905938486674935261100171961319311374159161080706165913581265708794745776509758996089538786424404812030394369637307287061682013161796730922668747811033916004401923055163009437151400763617799636035043503745726764334800916545023164079901670459605396667082264427979939506227996563237210058615964475023337051377177276986054441297377758978736886400832014145452102796831864002344541182520531458267810828275404405377562348248339796543594613543184794933842842410368441322299252019430773444155537885046940189679613572496658384314982908149872364024318560396153071475563021741126647421066381903061314315133600532411641553930980169277052075286290625664797464534083542423335892274979978055624158335275556255877907574070359282793734583341902591924339337274396184487736562356850125205554589921150919523347059877731309475521985327256496984647228975887066348216097717835122842963932973397865088802818712434582772488525880216426207855440302645618060295258558012354168187626591422526004830850768029696274027452556621141095920715655300416049758694346168825534304204784791653209686959492933061902880700506799188600554145705643448364396260567074711935271389388771485461053182332289294719232751529850930092958738230767861607371151680499198775495418749519130316201613629216123505505436344039191314712122243111140415403882924138515985125553707928713682200204592643505301169398998014074334548641128644677676724149027336108747462291617657202285541365777938913999265839073550639308877874570244586123315377089711473246654188126946085191242794605763350326727763780145552256733916044836185262280185251824002533330251646000545064673043870376400517479514991462333563428605220042869578125263541044895788633623424847140879747826422155723839966490966727084672243682638109916763048177031649196031822685493280088329869866056317678622981834644835730888159845622166676103664276940863406146611108295875767118309442252846539600771424764274476065799238440224523096405408185630647196823157716347791296446779821967456061366693487446347553934768772712864406924575384731402066002260346194031449124319592627685953223297723901468160924026920218508558747914299703989273789840267055082555413175348173351889709721634000868203420382644915142468880086693371184946267371251284384050347095234536770185959579865860216457292847627802069071076214533867033668477781692365028685614108335763695486799348953335690350623116086405558821643292138564102801835326524823834492661746772615252745047627530026810285329620901693022851276845944156365068504018723931417474501459198242731631109225044475829631956342484543247901376993682472225757473904124823044437084364306934650270774396618118416872988996484073530247206879877527488438715586976563956056601473796208978831468825683520581432066761416316847674795705293564213100532558678401739674146756153745114454047141420326502921290190847553265457539700584238863940061919226882969336377568981157536686295159882583278525502935427205517803601073317419540578979578919020333926540711222651610322845573268584031431389295680363671202458336444075392777059497230784642389202253706062802687127275357844417974629610706181523477539068041343872749327208435303370701977151772796013725538052132247289607566675337273439397082747216820736847174145143586933119105260581649763325454367566147049181677295261857537957713259359707965907648328189062060312489464618052925807446078256118535588018599674478357711033401216234837583772345073843685006111298888348147999221487773491536553483354547794828633233403024678375577960171185202207772811636171892373601686639903172571444415645764252141212761461510466606023366587424066837993840767228679155249722833876573604814429467342821616583480361075851865369388586289979454201559568842806281596831656741126676443669804120406662742701444512569406532502345509192067211124483316574748575282633119390649235521622225457551425955315920210713585662907403816743094945343004085380801685100181412896643396048896281857133443057983284475741749935136415194466476623049887528166572163733725979203838929488693738909971991719366350261055190280183938071031556436319361747635466563164159542558145707160435456833755094516079159898776350050803716638912709814961801120210705049387346610721262989806807985117584147475767300011713521739961578679508547308089966279269584019807133635640697427439640554317797855884210833051584784319819896918114136926560765377822747021709860915235491127734173137759265839292543744456209018676032555161192713821168367782081294411742900657886776019862838456972620799891791453584679458888951401111962895724880344425212609664537994566857720700449822331501191105741742731600913482690796889134953711871544350989430856656835111028072156442846314976819250512366214391118649710701201224010755512389270332171288229479411140722042371999809672822339677914229207690333854377685269780787318530009360702487398413867027698256491648049362855302051584780357475054354218660758925043056963300161434501737821313816553901202450588075860828582754459921780594050961605230616137621416111436697492549745408144717768072734832254271239050697273223600056431762815248629682340403011736004426373683326471672345895183351744785634481031726484733903325991565553824498368736630640626339772763513616686454877847649887539246984510632753855700155730496603632776337020524111215012435282726498513105624706043621263310928887041245092549373717739238180118589045583711764483092896719594980726947321577777815433661207208896013796013086274420615763506359330981808712838338636146595014537574835044686056274206085550989397681856247300775922676629196773536106594090922315089869143740498585906836666733319897622654831743033999203813096576062426866295257576312447668109386685674141945340244257448964370714074346617198405680516540281070505533478614193285176081567944553355526785502950982963451579083778567420711552996705533536655179802772753629693991650240789224309789469270185938058810816578238807116944561371487519920432551776204850335923220662280290295022009787713374221266273630035004185871548969512338647753576718904354824216542683135162106691109739337700310016958904999683462806306311885458322943009791079465427078298802788460959380088784804709613821775835698789953756156244504949503548777409138314322150141828998687037559618980340239174390006110537775335490569845163138293229357338350773670332399230108184101488801952500174861551863520059821900660412007528668146983694568605347366232889192607596492176272411950929777661499190647549089693114820987400298025881492719858748156344911242147921845534553623395825778271564219151506009201213804129720950772771254856588383899973279869134846501205426864619947657317163682345370720604698635961402250069497096902469582642391426508908167432259776588291871286585523180060685518389768772753017447124603713213328297201395444694936505384004841705554746005254971702141023408099764094812709898313575557856294260491714523038587277926822684975961894392267296354886032792307590800596834039790188749961876184868458825211025815592489588176504882885745473254057334492102625152650115935069670926813949759064441992352729381976182186729636173585525347606707688203449069808919060617812177175286568958937141106577639831040570042139777356957854856846103011297573282388139400243683871315577456265971439533122781367109966464023207000306508095316921214291040779135736924905671535251528844649275108928171414151953842483631938156468389160292362424587757258218582940532380299559689936372605629449998839543675311417649765549485133969962069137876916804897026017159533684784961499820436899807237788368495327388659547836663489626284814646073129173094243531722030617279903388083342609788020950085602010611943654488219410500912715410880849185832508400229551085860635062894526254802772419938878430266911046398804820601503872945187435881772590383986807797335798845595835886265632936534348180229231439929500301627051488971500290125183354082302386936952659328240258621912784271618132720652873150152694739022567990737494497914729843425688740057887870819660734526793186308029952793251732984041483417519547897747650852356482606886269144245732457961812359639086843655339552378675497329490272852866666353780648931337244533949587911642898077766293844017717424120330850877176730525640763359141377811826684384510213386360009668968466361070552540853791847669579880896958041567387118234947658673317330344780258880554271499492737460523570681709133233898624691340835530247580140448440063061565621281970275994037506545330593614116883339802522976575926317778535487303551780474503215673660794227610975028432392782731278787096327370610528221549718468254600653203793510502997350120616927999519267859450510212381384900191944518104989670759208531049510652242040326884081731328782085854190926488830798748306189772893268733258112469949661837921227847453193816330158927127564040861307684873962487236104441135238903444645327374692417847314372373215320265154408486234152912967412720709074523562366241214426377592102846768238978621554327136570870753737849383517483222836863364543623191180589479055302710004826920873072348142494862168814418408451922186607159904059885935311026688393296414944304723935887809177036787007998228258568394732253885212045014746814636045015538578792500703759977717651393720693914080082067756102611361310839181294302832259680297915110699042884102902095583702400533036083679671253792494453804539652113034182887625612364210278596202527348930298759866225099273309497069845820871556790318511289618318260743036209658729632999310965760824448033569644868600202165284756515994406000854498189201679514621508829229790191715094070956168678369100212928157170923446341775287230687753663406718831182757945900157185588562452872484668002523881979096650406783924956420162800889474289525262737984155084283865506194590751505930925439708115965889511976844643807557316486563024175578119522280757908942672925555787150332019347875965400537864782212320515572009930174502971440349098697877830823880801529234784517599220212580108745263899607734976774361365199070878082479235655519352564076926279386069752763697194212485141214370397927579600629958776313821795239815398956271779550543094345231943572777426622430954482304683016478629674623652313091858587739453197697657961923655490539228817893163683392420009539968244511047124834288948780343581748689437226812943834329771496832062499702100846608021816544080833946391569277155665091854606778956387603791225697857985358574613088309628845692256894574401802299089954611148921502229891337997405278174601918481641525161045950213581299148257134260449513885880243816004491107531623690331928082603896061620486705410015310797916974509569126932960101426296523399379922000154844909533510701623517771423723758301226736340963678618137211965230318966898466359050632196816122717207462869234034873210149550297956489892323130417462158980764200335584730119827427234931838393810667468856012960047837178943375388929861069504369235373862242424493502120269508284254814038624794305475081192586806795390952365602309794663878321271320360665591393836515045058169895610764375169788055376139326390488409613757227686136631428572289727474123695315373049805658256801125630769004891777778713680735868483662249990952526317422742443859785339074525196745245642071435558574216297893849596305297425666775548826094751338425637699222526147106084860458451662072523632521851584867467514728225699796954870151922047995684546429649067619515497515109185587484856300250679970578668166727326422264072444694362450829883482244034157036556286948821097095421397442449415120467215699386600642088969077067172526049458050032761590649741147206877097128947119328689297650244790088776481869739188752426462143572234687259341342998379687767660672975254414494174845725972476978381146070981674738974662581483780933333135872917425669364033218455583307360805035380542422398461262856327904321351778418016165173298703752816305401839665809131695529395966774989766676979679857428608600063841130092053434300298323441988149625393531751313881616556432719323362048213670291698372248438490386212357222193515395087516095085972001301127408159276188174647959606018942619163118778601282705558637939515337384403377161884311077655054130378535013699644165272576266939961612546957275556243123467272613395679763422105826687864443443407657783348888527680083240850140701266560988084849852301721743383930581320977102941340073053484436608032273287410937330583693351130538292625314680384592390241740979101116703802774216234430403649307987960506008180667489691948031845401968846219657725665801813272958083740336625232494952195448147971341488574289230814040117952095391652172274176808316439418177842317947129384120231080514801237138454133461646740475948419382682267443372499805899385284503446651427424391313459643300497257535833044329046017762102022355491969672496466804804165865896377597437824158562624863743870485096748183215069183238101714780540550122455589524937047264208069701350018610135575388504511280861973306642127667825706903200896592459558869522351744213600102169495400028646407803584160521736604038698890477606448691917322110979053638696362673332909660736279272286431780135583710396924306949834666544244003260796454493927153081549548867273669255936219147657817668001540118632918559529875916473712011000457316154175616150500038664954730060729939618008777560326883598580801881686422456273804207595497238476686829228136455656428912402924589146799308181516704190256526098645940653843705963522083619711226333862339972558908888538722606797679445008501554770555446354520964971253449322761915086050333744076160460785615115985007133560389795624164627991863595283331673289917301276369949178533386360437230365500824670109941627884909291047808084148003556069543352063881142614843447961731887353531576590913418903890354709020110233109633008966502585469576292048903587781163448329105503874773079585808360978005524698499400572574228072283309844293936245523237741636917286069055119513774148572869373723362949080519726986887379278445214860917941648679615842595572090448327322015631668445172065722975704284382413492449612789643994073201296618091871403835609878456981435922462228207136543304856666230033800791348334243244222723965204618036070918712095456820088893794430034342528364947371971454849347968991516164819225809063727895758804868328463959580007127869655211460260921213494748668902461649545758470364025174866213255470093698612465262735749125993787113739643994567528675490357001829479650908375205895590066706307869562466266471860706672427407799917640940562032647887051103679811687619911771155467466778507965677482775108718275254537582163309393012825209057376268894400772139078541059924843321827414460565262386055034116702594588062945291436846170142119239956951272050094600017854697494782023033802797597875125240952565173285307748667310119457773222551389383734411934292826952177120967625320767767380696867835913911623239400586342898734845417827121380292955750389168274506359879364306769242227850951743231514980678741888875022468822061103409242145296332790571190098489585273848635332466001588130062997240976927687303712020736832165666516854258912042430246349333453259059868792785624616522217954001916014676756998424000170978081602880600322007143101302209266711824845272398506654243334585705218908760654590937761242396898562994249552002739344794300959854189578263938022919857589338861383065011838272797692800681915719383338962995123587942671009656059611833320640662958722200266461755232282253382605084986934170037214500453201016602975589917131685181920246104814546881882057635827836184880701038896445861511342137698598115925218343011805650831070932361817339978973165800805302203808181042427176805677093331675585747842968401141144287725097364288554901973090798919063292124779533490720349788440105959834751188273902817623432647998345414327505172471647618906558984881007528347121122525534012745231822835405102962763991869838798418289595363174636850979069932977256066310153599142930659135538213567079886387904153150590527962665230582633110233185399043593929722563246127865932232551587390592105572545593117968799738612053781257502155888065444074122193332883990205772780754852468867768424867488756395657698644575517623340933192554592959701581169866926408154918983040631198533247963811590332615231063950617609807958033263150376592809925651226097562875208541857159828209398785606819830942574610832027717260877466303705397818037807693926929485257384732631459255964073440284611391887938606118584409765750365075321330876745876960965828894921032036008971375498900956959896717838736648717385725199868151397867477074714159424603246683694972786801354318437774736518673975294251266440706388971819684301608979938371392037172334586323537327725152985342618420912004103082287402994655419967181726071815926956529535919558095784019130446056964918616827547076799834014151349602588252210480847593579265058901796570954567641848819834361227043274253940102941802881510580534593407731965146467932333028281475192935340182431414719594680108291488717801715434399855288998715894053595414962457882615823779275352785374693472396586517755785251802718663333611926800842175962632650599417458736118315775205402252170958506212004584356735856337622573826961669643606551056261334284727211661117654966163648556155774238501264655420424354274045581370097569083827217535085584735093007407176840351311353239063772718053435359601990461973300586163430800050525093638092161867870898408366214293871575159263597467409382834014782457177398415583569678045355831436402078070599354882891098545408479737214852034101077099101620070507971275542140904051481521710436606187640155613942141415938043852107982180689543551319108487983639918049676860410384144888852804546863457649032649823248789803705467325281822558080364942067626975599767066876353865970732527696007237273228945474915130786841670083807101536260817517646340241971076020961258876775783311362269777502737080552106171884746759222556789403147622588213140665491256759273163561120482660883958281537782122832923651577639960229136328724551667096927513111587214817584335940584077675311280282651583224487159975484418273039457230094579548186931977711789546240164484378215477885768664987051540773489379618970498928664474107844194214486388854974440954721320342670018457888171513432289929960270943595807678023004726988063266585182549091791920407273150081813900449435759226383973636352659997524232777749390714255185137683501353876092101387694386470187658044010185321735456775264580059362233326929642089524725465429414351894889611248291306522353234691430159619121890076362991610094622100935443997548769978192777231296878242838878118023722146942710221008814522368698174381436164454262278407960991012695989581030511289131495953692286695213944038291124383610398900188560018502240709742991046102687406529973836893869251146918218834398144597231782500508963365126576030178749447450216683067087483718880404201628568170447329026177396810852537707591153673797446676125123909159302397843782890228610768280852953381386970174640280808836743824167225452279569663634864227489733208542162084549269873326119903644510969713440168262319500122893599813090238818204273032863817199178807404676228820312579345939408279387560778513141163033922897021535165705655056421669737139363041811351396617446722057433193583093135406511796780620404738645657647051414399646272775154655180847409564201902725221041195722889824260337341140754335809314546694108754580075944979691951002315765388248878855584801341242068731716385096224826979880677408565762544434271553929236029760774045926446238765756042501037335515503555229649699956620580938026939315262437951076266566048632869989713798404611028454298939983635438241670400262584976819213296065078220552396282086287458623451966878763932051911577561723106656886314373125220619747214267469201119407746364890761151655720739257445594684549813882136829515512930189757970949667283667778238491008905545216070208579051232485840941207935733640520766299192817332929301389080475276042593980983364800419912245157933361408980780308083567641442632478431034329256471718526307139910628419142513108410134727415878609456259858078295458930048852757496697553096299350356673699070351231360697789914340030583341329084781991253756490470057037057981611593738703753547367812318882982936711395798063764577347084837557580024415886318101295437581740150793206842113620352934190628797535437920350986073875766525368830780024848951220110700536643528950164145002252865736250294182786054961650973846531021270058122378566998240186601061418225480969705921298237363739959434129711040877907215490221109001754463327766176959440382246709922302337948014722671788634223905212415454519221888047219746233698519216164427346241737060498136817044960600760269368061746141443923250240333075002934351188501499556629089939092444454261900443546808435898970079340932937950819732239267834530055255687720336634017862636622119771404574002789190284095408843002669872275984665182015179306531160119611346078364989548734775949335377160447828309808809216965766659635251177900036778108026634998947220930524154702005581685667723071035983307075682720241841703897424754118679702936785286621352942331804522336417358393253320803631018857548705852084200730378672159630925675931887410947435680400977555737534821802496297428094289856307966776948464502768017425073969955704322580404584576036619938866761175918131725795523280467743145331419588121970935404544872914927200878391541193691290426699043686698360303811248875409851137344397579182143030918389032884767069791686529349343098570598612792090069630874855201025971766014641230374872646599862426188903196992731440526155991513296207192125850058771491929538694781128132310526883499640332807535282898016180415811264020462911374138594887905151124004996227254706404151592497913449651824799657130033855132949102005448019886626159839648264900050671228578070098747358034846342474430718341143761135405403535352329129879818616506684250684895996403257313655051391936257770897602912061471036411328533988486324648314619873722563589335899906990227789059762701467935157410757254949505270077602036926377160981847300875857616920097731781441458837626837534189723576815258884502329863736953852258932005350638430820755373388281452516767540458694999011679638551407758572112513754898817120918629652934330927724132647449842911366271445484817917919435122977846156799152703765680792325622282455938406804279532782959033289387574554332266027123164668824883136673033475239231891014416560806948613584430663836553767843586638214395741421815741451236697034350749745262870439744799888179806557654624800995101664032113928450860759671719405056891243044238807152539127530964468002198510910156269707109573263487605406317632002189142073000379068904825824632439649804919682471268240034558451675733011423504899179310135612102017893662294188074618240422467499393841965647319938319628876897595432972892299431519385237268664494007529835821964755378666792159914508344671830784921135715038555911417216276373975722568472347489181669384485803316925655639609509487339232412540469937323350166596570352677057210839741576166957815116175107073398283436400917111711183074879382944266373810414055884542845315873169108613914800654920876265699717178657830982161289712822324272516376036039025068953174419116631350149958668287902762582081134698048317260497258868209317671132363818003586714001310862656387758057390987293977914475026260664697019024792118702023536756647455421500696344093207672802866760753704344454764887101401798267213578538398334706841633365376848479846247056707573875544094571525571300750049268561728758162029069879208055521244713112047792651108119709615599299170776073974348492050777571905743251849660982622970309479528140486561743933356718863183143615656765718810083543659849219138028864284089166269037700146603552446952950071495311613390720089098366127029777542407340209449086461340938155940259424504768772497839049763372621120684601058715057258643778171670053257655319329106733507419318517086645565989307970405697353117830267023761762762066725407654614532712846192632141326117877536099281824290806508711233903383756260233811154905282432148200775244565664963152536103774485465101682718687496457629712475764379873621065180212162375391671500711063222046189624378110033652837020215766871016549713954254342472491064965958774617882057227513142181456549152859176457132123562425632533874337715190578786950016694204561526317867314272585829516320378763144602393520681712773309151973036406608381312279919427637692450258363067856495653333786705076186237678219732384986958373019060692074303553522302322016462687551599518859617281167833342448358751448217096018159194079182320172033808488502742662259903948067853814890214328909029277215592499663952756506537355137678490256446705542061881296024198289830303021298313414242991808978086304661366480236860756201386945164295428199450305458493082248274370607115035204726630489528821196213846788765661427968157439772463081517122690665201508269238148843439935558629351405453189522459624561401578710168436243596458555836456740562783810846535259222689391480643134083516841415368916497526400979205031466953104532551481791547228546279659208619005024810772513843509722752747593965652304574170222200304279394686686786914718443133646794956317789634503828290385833428517089876029160489574467217820675922196694912459808375623728150976008346455537196392046933874636460754754896895762761583451530684845151634304320108031855613040503421481865310874255348205882345197974417966551924741766909714942457965617349082971796653176678032848455048963499859368940100554883055093689254521006971566689141493627127669787447672429340823752763264840352126870997073484225183985044000034871725293252543611426767045668667150786634961402395823353112154665481666674919880775465090422314338662616088496618182555060295104755106919679502719851349193526072656152606341620526809392281751045321414331071389938701479828401403842759423869247794654306416778804948282532750341669365183244661404914902046410024793952375103410352140219238896214906126359397157508861250518342573702084668597030954424216652621098533246027995414615098747929209978607084352611623288035065797900469022580723722797879701664952961683967964759147341942052782058679762427530358460165189402812962907987880793604125197810258430583345575928864991558952253609536804934259254049291678610945497561056725229538757131643059479070661047332827663525822749587767764154688353120759836102913401557972627771274557453744376586157660326375900437636206779917806680977339937906929410495879730228518118200376926190612925134595174258068493631192579562079246766044603572705219416409146288903276409587095270495545303647036000460144229242208471373677788483645208841125263096927184545941055217052912578714928751153127811524725053411786215637023012234814547655518042927852646054318162641552801879429810551161937052431152553758755662401539303549556449669430461202472247300646291025902884529131858551264819624841941888039316523906464430716781258890822594353643309155881446382991376616924460135716031835407364275478720740423448336088492326628185615325447147275565042694281756780714864761166229239309255237144665219381994106360321310003220808607883534518228934898506820206174809637268923920137523411842073694435989281193666444557596051154290382519464215886335499878936103718872552126591859098620672267386675940188265136139606056003530173901818800153528465990623697305868455661761071485245177479486465861416989888079722360035857741446375631307272329365431125778931887092565850363024231454747054247631721124134369012672536964036195680146509293757607837769698908828406608706532054509316093648217432500490174616904229314703602700452564366210170190855170109891215797472177408677480118163643010652958455700768740441416053725375476007374924418306805857321461475406291821690978399497419361937949603955401537040920344774834977062948233938543185950003349497918294001887618223143477411472363691767784709993345198722685666996719305292244370149688781376235507250614775396862260628977274677182386719466015295595090372811864454835478820028629877890185747856079669660430009734268644920994395996042718989766196261903264458973651057132693465321549988510147324758205685143659027975797862295075494132213585250622072556329545371655126903991690310812066633020773330494369123634273283656329503594069253103301961460219852528498089043247182102692288584246406902618087251275229903130664948998396644711950594602924638199406664786431667558166123564313139637753314603405165907258169614846941740185320841258563450949703987031484841964921173966026974786307720116576508438601237391113400607998468877056215031277027933788207842326953144260355465835946623369842098604409859435845666771459563449501497401236849767143480375312434309683330692646168381436425381974877683675750874497649253398237397016466288497286187112972952831533356130892397983540394059615403945260108806787066095775751029868745129017908459594413649897098862543986698854152696619041195159022671261282507727021543467529229526614606925360612001931069536877192694701725992555302162676473121710203339152843522356199583973009889816954476970697335914588193569278025681686916783874989031633329093622967524259638396774246372820496374909868275990216157204898754569521324195266882527153778869213833359550264175887082583928395225824866833172482865127110361726677659068324741813207685350073523059079123848596050023955990220940697220766698379236531171348808536603226210152894232657249493583517259605142171674542901608109904562949576302477203482164731674344901465283250014647103231351637309332618198555541388344916925125877041360821017330104120971032591166347012137866315054137946485259666883391540763433021784317895131654008778852108056542972534365483536818076152478061555175634991456809349105080670491688650425762877568323296130283459419679262726043426576509270505007886091301326407269359174441234551449673305845636743661258425881755604744812058988770106504688912599677842018431729500762751018829764173827964796445793181850481451538975562590821009346883844900234925932101411158455731635691526552683651768792506226431421034723118764269058306939434464442491423863267316940065257459726205810207144813443919678022248836159738798136166331043992438696120563359466771021560297236920680599798324442813871121941410079996003148814410265083950054369361722181455118544097539926445797494068627692425792974657728126710473628460232759251840169619011006374627266045212177982798783516235300349097864453655795248824279614980333606819649701796013190672722368412536497573978657597648925619204951107267963350940032696810378380030012001122205783214802033137474110324803523460994072852559897520715152206322387568777739404212219275108672925429398216688718460849736288152244148046501967979465667422195403189283188816229917955357152414844363897412330218973446849472531766446674698655119406585566989475928297831117034508281261184754501395843176313677617374563743751468161429420044426440597442846011772539755870268079731222178816602381957089416554649626627240688589823521436036788277708088036475853567964195498028765319490731802240051257316057510469536689556157277695014857907835165660402265914357970130362666432456106886815400071593518299333975899673039205612398863945822242422650979123992862170741433695211694638273750276266498638840335274737128045965142188732116899670150637741171019417521035511260600721371741588351832651688569933303289765254276572838403533200592829499607801774528087581562086790203510960372981882601879822251712844410933100370438217378115364701271198274567015846721717239366804108886933094183491765448754791762834065552419241248387802211842924821770330075904417815903830919529106317354834882956659118994639098098513661577534314158365644096006720985139235437145255318761609608591029169031457621334768473226665226213221621155758478880147854108539851225062429748265107369726819880565653417311168357001752816263877244261886984588050346335885750117395941122075983302567066727372041423241052549966631465980745284044098385679037223497067264867425158666418697214839925561015896543171881453311045913809862507595526691481400031996951295012594249396531993889474454294497693733698767007507555493044649683143370708344015206126330542764230234936595312475899254338696904577814293525931331468804536091860861583922476395488168754546622998457990828936633083759956196687657852223499487541517330976285669744709591666392573344540422074540004744132714420400324089118286370342382824361570804698439121495452992943858964844011509839414844440665430140708192191811440845639705518119027177127131541607518455213602713652263985202833816695037163491042885064772486632136954957369963265894065549704569975318615858921938000185302840515679029834010388263114979387500724085317933317898960781165538585535911331629138908232750529106056000719182633274309253672757617932497661117129690203059675776144288788544484131329947531685657801595775217841118136214439649533878726467524841698964810597766487502514228332322406283127101619099344891777232247419549113087431671517327000009950366737224475927382876821025865808856014137926912484617587504046599091656979080528018440715461478276463585753065832599801488216851992699343536125184153814196318114001356505151396499838113287316502628323944078103922729795011706163946025821151763366608067977399464873042659003185747991603931066613339140319940510923207656841931464085929522518201189280377421123427974285841248866351753315881185809157850463028746762956912191803155897641103502227439523191382148202686564730121621447248200712494602488615742744448687120653540988861575349371210243065335825004639544646962273906926753055620982167093576243471750679211908098874839199288761479160943546237287552887218773997917752350997183420443232101607873137131385689169422352621143259057348055142980843845524930464056723381105205409601522928996759162410654422592215012356103457121444624281043430979667539522755670525445521702465682315223423047265019916907852070755625792796621593799057423287027801522627953827324998097762381539648975838655800856570430154943169656358275210184169981400384760049299923185597991848980675975760779256712119790251818103011459482130641537215479405866739727024949762490812911949355645521550977836225364753337500318522463310023143869477408730331633055080415745251531329960458522554482094946591411089564510029648853404078322590847189080046524089753548623797211980097768224214508351604103644643747879577727094499382089581460291245099055301325082023061898172122008153914129248258220242654585456087263054303768535371235103463127141343161327262858131137588066769290047603264943048998594035167612429224326060882697956824388268137164426472316554724559018088533082482215657262730334515291489222885959248323837874153775724622636356728282794538541120229211794980037396237420930500185427895071179474162021435274173035722708773829127737811649819690833852961427887409029573125448010188411626229013506489583649999645101994672247473599595463752463076427885023060919159919417208293563564915761312779968441943561930936448967238885623316165372566780900127667294059797360301380277251669110084533921980634611939393608183580616896757259652506687044618267626390296703784390147141404555212472768924978074504443798844346844819115389991199326073604222315459738233495572613299345388806472136196476722843909054426501533112683233938412143400872054199888902888164356435825613820917051692773784951136324061352676589707360804145938001025616440552003595413618598887120457208084404087687351044511790351100403062144731692386185528967077177509210364762682010794845097786423512778381823211061229615447962043978987814656060338124442903852377707667857941818478844613876301692528331539595530099830508776332971054588311736121718676153692228641038887436462305142734257473029252357157699315160407185950170399807578956241426771308902723405308740733655636030055207261417852909867731913251337227184280728418148343793047867688312059099025825326172344990993141453684194348529457677143578643141708182238265576622179512827523797530498259748567735105269781575013807183019704451181007193271971891039015513694431743041024044652133621638293053585953427228704359360763711176251426585149668507068340821242553958255271512389032010612073921418676374914768972515933741826563012212574279808843437520731596675510137338290511437717611324375909183041678882183039153314640819336787849674560505138721478009752551444068052069570418834645754150319708794878653539542475351091473673931656350772685347919042006445169758445562801148715060585590431639874821441861444071675873638606269805498280864305279298475503594443147051759580778890465079502860940712816206490180009888544951599679810086915180964474344762829122203014726410651148418624972729438477765265937728928258112758982494296672167145635778021506344707761980032299040752614434769346751338037627423780149949968035725825854190560207675713208616897528444900086809679982527169782002972333556917080211973314789663461878680627651294764101593163921928967616457064156511468341011322835603049276582856056707380740790450718125792690176104352731039680769409516934450303003309063993926039414875799225188688245447302957827156830157237696505555128245557583491278274380652027028995879063729411637297305982470726524757946017367735203150688195039979780570028925008871336628762506528000675037220265010968673686369113395817742846078994018126930549297800103155480116538304861634957440857582256678611599727724261922274252958952481097293860608963974213779311947351457754937296597474836063193101281985811419476771930564464295845292566301551168352674439457345392676267802629718907571489031263922528084589153139971909119856659574461978514340027712020964493667807572394531742655140628564304290563739790712613167079510082171088272684682798284260210535665177547428098170875966776925934666863266569768821291595946759136491251091925373876983454342806885804888772869826096553300704698328705003131382661811653947380919638265408975622657558170303150042561135185238705230611890694341727581348615981779238835078560048128027328237978757237536849598273631072674302795556992820934157015866579201466706880264917637922573755952947090020105041837018996525947688635189962641149997493772003316731060322927745549588028487142937548664265705642427754529525957566006160550913747729205943587536995685066634207765628723535817885601310703680448149548542881022301347334883715649292504381866793937101855684897347242857734285529177091830931558745217474870667474083670089765033293404241250110107613865258018005888800661382055620590623902803819329297318555649460788609480033141330674721095881511197980153113683253507419833033800006069494385009344643143845081120128165547169804901613938744927636769922527468759642222186727173207447646261868944975430696859345975498292321678699762226907307795389441379027480202460512885621264610865646709412022839706540940271383963975809840665653176133355033421515950667750116543752204382120214013506959924728445858926360989386310215260613520470681183068817270530083921998403157364149379688828474156636618931548710389995574999032332592945550496509185741271137188580742022914679752408835876727472322643906978411996528848291165453720384502711508611125843775727498992930123151729965267345981516275649071712078766825224677807315191963652535240197496978736651262035571816893421073453922441138823030758072446676643215844168941072143079533114002039268028399244460441910171050209705118606078928247380144563564014882343299069724201620868696436591426858143275977268798666046956052897023569213043790482798583343787506619642678182226280780452997210007704070593787169691352527224963332336405709245331905885442713302241149934476324645981270932067027103519885096976440454772136199131580270722007391076529149100979199589554095492148792652135079031926735025433594657552699782068753429438737178710740244791292051596495968846001353049460911763204922084414858446331586779513381895770412232314343151106001454233814277305338386614081897791141950671054818148752609449755550601655177833385402398714239523112618919018324433625469301611271606755315620407411339907593272862361808692274348581320583293251210161100626382501214956078151306861422037341912721409638585822089628255188202250512737648608052047209469015580198702249540786117028396586824559397727763680752645930334948055233635225547633335869679739201609281614745632880924343555223387102682623897682025937852801027174903725046910080919964630291195182996149628172178490921849222434038986141976126551092283785948486291377323641131589472299836086486662566027545017139622430023147107670171126857688380697381928119470964669282195417916413363641294435707001437061905143717650381917541870953030047122853949452731179029076381094131163799204732660090828703292323160670445093738114838835817565524295626303239303048215208947053296000836508738977487952576723291993264224101770523791122154105019898205911291223938389245064665238494442799916437199516849536856541640463632357564928703556872063039775988526232323501616908144655538002469692892750223555671407574822133735028426239929340274816158532400822629791546402767514236907739639063525589279941622284719414232370137554964859889431071922592979498886814357524793789856104248557870329360676536347327034524182608847185713591844978214060785154156142027894709128824056720378667822623307360194970063849286597949629981554274871607847766418481398365250585613209957620320707251468743092600565039749171961111509881749808273504358409975086098145316304880990587564955142538348699669888282501112113600510707658204227961887939305660106963209647038157128322184899625234652548147086065389699200710237697570839841354361026813594320372205180156846128531055578055334191391335059150513423555335992426927013351576617511012663302978016777166640184415470462588663127491767327070353437685725924663756457624422670497056972293585469824431831406730005493941116200019323759771537514767305815073415893194195019999494398392509849557321145322142232296260152438902236761301156889640423486603167306849910794447232258647568472652360656801199554849207979122962635128788462109403963504912249824699202221116044676787257208654975931321326809388854458492711002779954331193505065365070033858322631153111130527732716350790587612574500876995220227255598262508854073471150021239078205139316995368220790927320579710507549007937885504549310723019950971385610424198347200789446908367448494993448820554205184285566462613664356836884740354559957248456717270272180787378958905030372433841887481063571333898345529592679845024338390490703969462130951580911677806920432866162824722760635325309817315517956336363663548468620889414806143820097017904569086797978711194282385533167279409171330057398105929703682430643454974771946551407458253769696659462845584577549942777550180255884869179133885283394614638802320143747408571924666549636602532077098259909749613691445704445789438839418755138155877732222508340084844593093613110080792123177456322646764757219202496495603722345837638980181041700278718048384711431595293129647484076273844539563644003502542769355987499438113449730607324267503562030931486899325586227802363565228724236533491299809526291209321237618663172833982899929432283317557311136052850553418745903560713591241455164552888603970539428152031247262060293846158482106073733982741355584379065410226323027011346405702497875704036778673460378674921910715001260953667917133077461653197971607940734739304471917017019942219048587403912885498642019605684506227047279412016757316092461454754907457610055042698262484958332500908909018092767357370158613415358087726204680539517282177623261352463653369082158974256755555562907181466247747922235487360375864548497196904432181552184621318547831558418180138447438160318832273241195664018383402117373717105961351336720665677927898261141722005501397794763014219034476036437921052181133664997806211261184420871851255609230070120292643141001296504911790195093643270501708472857842105999880482575761543120310282735802774449550109438338636623762996673277237334204495622106392903704382560572522355938298000175999483123694028468436391722662338376135442946739705930081845447704780805144989722918297447546721122049750661822701108080504120296000771596402784336762289184609814074212607409906218442720366591703895570311088903410978415146503794980815883866433788115910181817007357751388916890132356811634423629362183532325038033552561393785759087466072604637699133150234847388294146029310220411485982811766000262183256037149264931165030257179789407415677305232258981597016511899462039146886275575863518321138500343346126827681124731455718871895282935895324520752951861049135052960695491208473374806780666630005398362651974512245835092135436215308048942949387443152688211325105890225810989489585134905770180141808198614430353313489705413097318958341274658671677149918326138386206860645725497667055113993002929798243821936316618784087347418219893319307180690958790440478177789236484165931076870512044758130705518191548495791267729459492321746391488682369993955387815401307625476021424406221579857632510049398298568330385458101162957483156855139752626726202461637209393844139766988419678792570538990027971519121398811779566247350438809826664567844568502745569680226212529189079074874698857173108263335155680989635791758718433886093731206766007204501180425152969206243329585892343073494653160340618367989823479902043804727838307048910611733149541730338190328614161212891907257928645759981707709696569442512421111432720178019130393314518890140812544239154362031013046318700273754094536241408813304688415763065899588877497062202049428432881968046911194553861662503396305183831487365163829670703125716793347132893133621103064989744922647356687028949991849558088676897990586700934522547227767152157593237853177469890219958759178596099482223862362226513684316558826370638576509953915982864691604550347255275307567385741462496820746396561422076537535195429153840944601894267240678902082568359246515487446537448362194351742742071808043876733190147286021800027949130539350222604999503745286794218760692050107986361114296627570337159321993291672157946402445065814247981489137642480069146758710530877530700626712242856897736746605085983695119489811228423265076627877590917441671599421789285897587006695583963656414430902937162396235461414108549603171511581102499991565545254262907405894156359348405696914294096416607622282249048348396500187317147045127098627739168998841159090966094962898057639294689652376016915818275611222707440047551418896854018969556541656260137930098883148289498417288247416538375214431572676932336027248323893010777207421054845054967057413040529139582027117201089553271764806101361102693673403407008029738616654003215185932123917430950205151490759669723174075676760362301994249905680974488210014479265903740093704695502085085837229124404081104239440263228584563462586527426244330472398212573149549797476167636974529190176386955706411310570300348096384553386694417288592679889993690332162620893317540578377124789206865316675702469563238691541615256845145055455640672071089667374107580016921616335493532548757107767409597023554739722591981525201989543699430290063260217533788924080987373670716156493391200592328139263378109067649485555134991820000433013333724620240988514500635756189202811644444526009767312070699697814930014783796348750632353001346271857962498386238252939064488262272517259292678263024528083158185504236200264466309331635878739535886374526507208844030039263882404721040402081632531542959196764002542002965741636603337316964886804690297599920338925453485616421887193878632013873483540857571630720622919677659092763669066020071510685974515625606540064526909876679954540125167625951054370353618899596539299723255661785511042433461868690117960885791125972798099228667913525830860093918522071774825691079271703536525358389791658463058622427810264374859144976822762925110530641011707085553461034084735566621628249482296526662195030973622301945077297502736691904605130553461398024987578254541459109607499251925274219342178555593965011677133869895842228602813770477405112526600434647918412816902728456879694268680210502449790589786771148337133383047150910641042552162630219072354067615026359044034732693894976668797065950186297795853502997181726293496201093278133751135922097151412577990469215673390652322778881631068730268531208431157159606069707662905739842640945996717228727228214991793669041194164401321915980982779179434337274088589790046389249819101658331609951978286213239786191508789128782773927196217895998419575417178015396382645567402146070527247622245320203638476776557009929573313076162345629629495354760147353474583293242780686689300298725503227806751845785735063517347217394282553039288377873486383557847250454110148479098317317164574497024007042418158323293350886291713687604641161122075126475106019228017111334323377991727357311009446905607951745962429393062440432184510104746606692558115538634532102046056673218394979840728346304407341605954665475667284030957830870024390148930179088106314108335993943490179700027039923429791654260511141551077105275628601415639344210878857243969265008343912774796170606519623013395929246378255076429167477902849915882378394990091383202730938400561645106391646698031129387302101445755800078590009435724324807310749486685965936836969154721801255358180808095587458142779363241103573535458561368896380457776619993251341005511571768614500687597091831855622997749760641555110526860615826848283980922781824513087728857052796798215261018124606927594820873923978208809311508363624594960730767692867483687350017992370203234650572440778621094799547372205683965590053264320045201941295651941211868109086434730407698900296336546390164080472173498035376275819974941266220198814191872288684192577333837944562972713182571792211670377941040933295796915919677795145685383226378974584128610981866125698714851386922670065402310013365351083116431322257092162912769184933908901256948223783136017290914115612458931468528945285957678251826925382528217834720987091904113782905469685087028327623811133451424619198556211109322011511545801671288401564131114493285920012177116043191185013809523721181430024777895407717343111276620804025035357183921077257988790733291723876093959963814374954689198591502744886927808784051194704726386964490463542738894375462689079236117473998831289994035093058790775562620194258174985806697274464756327048446435413153000293843752001062933779683467018419785673521857156436291637834306501948573067430998071420686283757386729490870458454314089793538056471728063583807202608975350898304446560511173630279610210017229236182738567451126662774347887021378984268921603554164793467380970621751327302632321322215141095012555899587539211759237548333666247048286813407166007051233039496033778597449038341618343559532727384012969275095035870480787842814116380842663060051136911863615213550239665507903953283336548467130392740008554860006234988207057101285210094857651824799186572197810251723611861583953391082297503358600755852555076661767525660776962866413884715099510767077781945144815193498332147003688088583434810503269374890090326419020851886730077134077741394379048051061163022385596740396782099380692806187676416074932863604421486191483111498119311822503054709120640579160843165132410066559021367552063977838534585188546294404467120780816032821440363017369660108887606087446743699972728438232853767307606936997848950405799845800262110191233826491683995922744122788805243314897473005756863853886925690062472675904784938857963196067997330860159043048875481755273655354102854180767004723050057767977487891373849461919452163057113959803672846159737464255561827749212663023956797453236094311454186815570086290818441532114631344322505863074697157928299860652599411053825300984864200675703538858056566187130469107859819828181122265349503056785511318551767564630862547997224469863090458811185664630267151136179567413015482839728384914761325689159549611040614028421722759779775810011281749277407143689985333085187629522694987465992900235432139031903868448708135625895861958576867993704361515903129375683005829716258536886467517642898980520696158565750931770192092774533829518065171445525656197345317951304541907248593722764769342074782117409386145092482283111058102135661762786702538540279300965191863939455421250835478853310248758199714636356943000686494744655334991142514197649851557819795633923763266080017777313800261012290817862864846213235796081575553624274073514365738286289277476758536775630688567544057024059404418183154775396905578233334487568105215308443971309583510975108473129831836230731705611218686273844298275661792191207718686034501761764384298544852886033790742347281774365983503097934600530166583448412741873719948499842216799498723394986876409135820356027651403871013664714713777839278904884294706699632442402244789754584553238925451229707905906556443840701671603097913536097886432513114363525102782763572890524247070535995500439683239223923417970227168418126679501800104116504287017755608000429912739289659391440489913916025698099411033672069565105707946273553315191763118663245867200897084022096392469286648424059899807504985645647366165464061771393761622215102173485022466881410676139051934618268382715728228339882216245561925680341712067077836239377511616173233041910570518932908671296742947080710426741783258485077049328120081122456839698339922025498872594208122066852022491858008658440402444843035649580968284584021677914260819681242779981362298804257725938727721801777781354245834917889645725008786565296918441800633182858764464851175335158765312820951337419434480004819719123087332617090281845186767752732265081593055606537535106253466099390058557334080807913740663604249752258230499800683385678968128552106483382652293930022923023996773382633254020099081993098644400014976430395139195515890244868831930111195415064679210903355275221268221904654140936317265053159044613074005746073811192679786822770403749753252553234951698578053349002155720142840201610598700872379202436957508264370487569637793740600001890399011733091610648074133619931800214789779143918157111545392959487623557281727438367142899561748099894053670564936976607665056734636206009959194959713783679617616407021340021455314766918450751678235163161939769376247221107126594058361040016241207174261037134031674313775224650905252799647389555537601983022949268680194865540268070547866960365507332688731108714493331119477108736774635559036814445177680369858257725482223237555960420069506863812630829171712140926798859268288539357849903102144719470102483807783256115309491609700757547876326779706744546693499323584961978212739392634085765918855460861866868722851790115930006367213264685061499098610318006908501006663781811775892117899141865179428591652890343703737316751319519581503167451932980703916885890143092907494000320283929926874660066396164974175502941347491950934242490211170655765839051198482166019948152068987688641052095475759746086053177197394525934664265975398478974192154242356758865386171746735778878837801083330727312276475613172154453153241800780090541912603766075644961411341862333815664339451954494437275064694260409730174335028246781284559779020023240898450193354425227089140310846991664227952120724556843499948932533790224358130919369926227741766509902698014141335488946750092909487657458067079032914379613800195071253707170627917369117129969566137246010745855377120229660635929396321981447340421981246504533539554215836123828355437180060471995776479081984169744329000809585300157722717574731932219328471288481166962748303464657115248271737022910805555131978212826318315612686066581504720539898409445850454928455098249279240057750663091074957777562340267123798221482829086257196270226575926172828316271668896395085734447218876677415094330301782018357485952343454391102913779786260354221511965396693931003042233999949639283792293391661273053499795870544421305473818817101039357186631514895160794568103205168016012814940201813213908501633268441661124468667126941848938083143587296850233775655977600388447729503883874436071821035604525584770354802544369967498137550005063876096130067597210585658714362156961251951597425479000595218368646405584592056878631590212775009932422666094399128106565893584004993869680231074005327944789869766007621156269674251633347238798235126339293943518596040840857428370417428488874582339755703025177386227016876662506556556933925092823826020045406584364970080601407554617552098388391618576841534451882551383250465851420828893939421749912395719195051527852288076135862083598824613542873562695833375858630917146674901222197802012382753058749404322890857368530148262201797327948327001953806967136399954277968717018707543526508393070271866367234462983522977853041154109082855148596040038451541382327591791124903473432306330187843459353819093834448204190968889789385735217534775382381523032302150376580878409460802432359307678551632334874093316522734974479432522878164505258576584514908384271610441545679543077778801724406881727672939950060413331578082614451290016285487071257816887519769731172723436891224128396400432302651866434019228350028432197967778061482497881404910232082240776735653704298175330903412325123948346240710402305823013621363649560453350250113238181271161293473383488165834767909420144562172120289150938705035509836320007225675053644346835504204300122035749938258318864561676641697876897028791660425333247297055988600172495898679449974752651431830985638516437822493172398922667018482948105803543166427739824039643328749865004402169194447285159190726145552590241775514946049378226355369986112583041934819851385171029308840720994476679314825155774758585010293784368176995830886478019904664718089904162953805243644077852642811553870397096529452476471773975235134298608566249161612710271662814656809767680318222819597365760751738339699787607673966976961334558980710770374795822091273003750182776573799857549381835429101560948313878109077131817399522243753217132987191414589852263289081087660202896439909980707800643901784562465064908921119654343942093733984172838382741462863221350477227063579990536011515898847263250315614304489942295378139372754322153706555573345820849205545589828269729326691150616635117057972744106179608706086261861066546613601116167946386831918779815100474992464699704364574367999000617430640040741445019504888750046032352807744692091663301038829689849693096822216081678352429260836677805449617067117622534278581671075421930721866933162072274940082534638827389781318847184426962541943943362302350413171204290510244702821935224541167208876127873168974046526722144615248007669709954263475925692546600242021830937774842915758807404678972636987397573570814880110051008340022878742402460139502049607935038599329556279292254655361520306188838738848745293740915632317884868559051586191545129090379805139342296551119970933778098454995323879913545719881569935868745932073317836658008796661356446741234492957960435798672997662993073701913781677337397871546535404189631859347632288503906478412914628092238888907214043673266250785778965559643472348802522504581240625507291518046255078254476599886069340870558213902103883663004623382202259334085935873473807925667287510653662659947650521068213758672856322735018949192259335545897664290880405324449486387575949751817878179427091549261454760779360773100011862521832178172507787571963021975209131271268331092962125988944416677824897234360909119892995788098495689768163338505868605068879344968593649288590237117014695059390280800502418388640593614774227223368135727292573587741189302048173893181889236778537337469186263833886998297349082409406845800719400482792128178607495340330398675832677675504231442351810700530166612502241002914800200230576195628942367433751639012143231670719181792573710921366070605742808647998252756496232815412034044984456854129040890851250739932730302251506055726736346245303500710385795409868197620062983041630696212730623294506530191870428560106314377531208111315352653378821735322262265121887187303584156117558866152373582365847149814973481699062895365157432012384215415213342793628084624854589942808529891066954094272843941785769740333986638993891485243894862699950342577436084526425246857379838506853514836312547267236043687523258508779190685049519238022471668103415369364491162898248184087105044942381000681729117091348980408739286389139780541182297364001760468879566882530119950931914554254173693696719507391539233732171429825458954067504747125731354128828950995777597114247958825414039941221673047533696221621305902062350567137644019415810790443796822024766537134165330134007674486315655526398927318893448855645000227514432666051284918305224512498162359368447411732988756821091242649225913027618013144837886137055241338026349881589961364796188423054150461563508199668203243563515814395482080434580600046108843045762424458742693521823530562932630271028750712906037795385689942180184874649647241150739008713498488805517885805055314316334550783014308102880501940014780477746294177100770816389548280740971253075075190814370571927181585016018382003975196780996517484459411467097155342949578346534733190315760567473620388926205006303339916865969702059195647621160059156456947930650765382170499123043889549134574119472514463946192696840896149838260646186179653555444005451780908685629211681316463194218767007574908551864701512281945942663789896072129994071230732172462509489035062638154642301839954566465462467695835999698611500453333410779418332711009636866328894048811565818413177862028533476655334794432411326144271049989019978026015122939871751299393326017853558043069005369190872729709331802435246513751777489190787278833415084724305773163459119501941739069175401572380897564936844486155378803333009536244387630226647994387090334120154762749427242817646505794363410359362740862514199200374379993389553174793417909495073310869772391700529043254076183461478644117616718636844379433229715364429399276501962917006434496735730173813028689548501201396724257038581107403267143571098643932962681254477688094458729903956939091075355635750940981417298724487723699853492974884234191395308167521527471881671152777716138039716969240956047986107532009055254273809671948566817679326975473279993146139498497686936562034835498270320550284683711426245062513841265814834554950983226859544742634292315386853142998531556272375048543156102960352022010843573017059874852212242132188359947677060252327429300156731551165245499668213872884981354841928431071155253883934186651141719660891580706648513941320872210715108341637479512062660063326415935405355953247853883035388997536002961805250650062282278554111405513614183097398040565779320304155872275776476675342782083785828716514928372475641434369568468091283299773666572790360501553373815106008975273684638012105774783803913199538550145566145004166715649996956824727517624727116223226056699258484409141882536190984960157993476735117695331777726509646187702036339182153448116103106017916997892508152660007141456107447519138548859046806764758863219977371878514432050871397660860925814536094234064068073264285664388147107470116285434983060153719112593867663236763239103347455716866728618342738015198293878182118315334511190562231575003859493349203150225155111720593830748410271572065200465048876509318798483326367292111378591556997746140103736632197382220290600035393464921764402789229296761965903141092973461742303748349540060512634966312766349695575225952541162014403783737499476292961641546189446471881340257514811644715361885038398587042928457867812517335198012309380568312967636194714700771597670970503367546769031865152247474161366347417520658059629728033915060818425733428370271111608579936124109026322228499656642525380077351999309404665254692645328049124540162129654513092803354688279179523827670790393213079279283813499040997746964086260575839798005909358837388608589864265775101289425283852415627684601572766032982366903098087321162802715758227597021439386999780055905235305669816316248984859490419395961862762410169892250230645988313393532415667262067282217962988184267609372137697869457869938873138557985170315691963993668063732273678239477016114611785369785256058685707182060171022173803285290607437885725638226936253401217263620348583688282150747957957610568803835295578635309963328099332339848479833681573504792574437928188308304115658460101624033947665320331517937527330981276332595465725110455072340731056736287984664174050432894153044647403832210431615240116890611964356060692029338442387831066874881298304088086898604805513264964090856977360093000610700273838441963425740310555289504422830499589545868713237450940067653012108193386050040693085989898715551443633596333206917291997241749697540660521689729211234004904486470349078632385073416298638993351343451858933068101419875295635074550408529036751098211845619669973546201163810774655276090432179097759135314169806205400567855521681768628937760632352366581250173674851826694584069316504098816669262933575140042211019701226722627736204277302439216130803286217669081048751835122390242835356524078566238314719528563942420142301832644994538444763888796011783358279117360659232257764886069360885492430775126733114729632546871640172131029942236076518139176834223140633565597233020167528734864503420999899621502597187922496686902906065859307610854513900427772175660769030114229957701602418000740924782131388657061738291751218378011640858011567357530253127448887740145690910555137563792336230855202451781934425978345204490376334415645670022777868563909965857222248856215408120356446607772528086612033758190605951655922819202838445180747721680313007012056601250448411887437761489277478352889319809788861936708461123624470773649958119701206428319606263972674182258278453040900931017694139863050120738156555883577604033488871002038531721215961750534659845263814818789922389912856709573463004436865719845406199728935405023679296002543396628123719776387208389334556361448078377925959190456673725870099724061830511291895616156120172704323155270805624411818048804937189860765441174791870243762986389583801049314464477461098492899259969956002517242750320248805686237723609546079711063991770882346600001478194103602900786484654416950607220444939553418250761783285040748276752014391874896936377056674507093693851926685268107386835251255621896694407215432786976603646061124746033815758775391713651400956365065010605318840932511141587386100848912985960172117052281462626270481090131807742900908044297334079311714981456553736681478190838869039544034451766469744192003581626817545655507403897393362894457764703659303906154196387772365864850275363494564253025876703040455488554350431616592013472939736394363773269917174098266514531542345978557556724381292320377560506301101902368125582106231924916207299716881879218744045554637195288763165201684164313856244237686015845438434358355795645786609224510915571424104769667740620280566153375448667695863552673963202914859467859237753567089182203560872066733132484458249629875204916290357990468592245073356669484828587426258827607263523239023150574675001147341260418670581411505912252114736611909854136605030402523148617313647862829540994491470753258967759633956775519980508978698638092158190639936322952896752410288046259432886086230905802955805475727884077835728889012180443639536074098846350289299498355417551750222314576179669806560714453559652996831256457121540608662813662046388005826472788544098902452721459341648906601465058050502686273700266504577485771551427848727322159518841763125357502586981568138781522794862273377265940465414840783886213053771201772483149503383618595376055341810170514565406217214783829874795752830287988498025454581631554232498505242759226409437201581405953967779609139880362582098920838561021900597411850576946800750648751820888705977139646539136595824200113611138284815883712629954253404340178252817216973475081918995680482440477107254959833234887130028033521268503512552344617108692654687172436858918712009874672927127939609676385113927379100857593810515439751084535720825073546145674666150384248048592172051276171219768378319694421463224789593603538065847984053092472625654756473524831193899752871055187643533749125990049010689722417736973908099169113149993549656592461028817555825373561640222559181756989138116119991158888172793458587849587941413921577131863771078342734020156469302612142746602230855066807443289310591745104676451332858207793646298915072488439451906442514043089782477166845833807809571204536968671105752234280700640487221098975469095740109794447030947357679747153627396910007233704263732473431472507651458300700671100968115493406679971004679355770498399673750566454630496476882387315082193485619774989974605462758800088547958959732849039321366842413022485932339522585390154299744046164381545780213074467553805121203514279551610094220064578419109908715937071764491739995439623247388398879531409083676565318274920955186807121075290361010186223260083911010205108537010159791350204989660901700540736324324253934036622239740021411810543521500993046023654452406904102263840591847219774132103787712980695594624529410695224353719235640059427873533872006737186443160768053624004451513569452692701865184614307084205921870211418723588878975286372911739455680332322350186500553030071365686596109583075365004268023868018833767559213220627015725587036872236809923050750291481557821799928764694160676830848606953054976989228675071942011804159181680581850257665952888162388708448251040560669577686312444530308603325824789926516872323491139639505037937249642087100819901331258836638761891743548125642278895515403611394734137730521814392146125767024641985991946286836464249533985848955466488920288218304011277818602335424101529397596468335548227454076738041174505181837272030950278231724135147844259701946906489380050027348628814627083357474043906600833412589481892179371201015134035239433525153884025286835307939617519334150809092199554864409021167225466877012338475812480616642418241422754987483766510481520655147289803293787530005002398140284838298126242831526947469640527627409797166105039246390455968171088554514071590163912641818824940703086985240621949676631515300989687901032800043847191844552163175260988242884621297569885480384506529649222140729340946153469831539500211634071802075469799640174436044036795692378445099573434504225093780461976174752480526721970361367377268103222910623290884169639848479949748114721718245668665702148425379395728234902257314226347245679176964988927778647886588494933296638623368964638058611982982213229210134996172111638662405917143943069703932931308155232889574826470032736059114542717331628446641580630334187981444911442620747726697664854322402530780602662843037390383207446882048665655352807757828361645028061264822144099821811330413495182230172263522333793428988892178318844498895740059280359692116178829358849968583619980968138390880083613549398810048872962595654159074492577331300790241991735036454028727847447428627725070840968941329121313614236984395807146085174815038845334147445015511040517564455845224228079249163115138622314181669915727893872784622332980305542873673421391858775524820079049499013338642592261460266539620365485843751928718746404518934052635360399429299262653496388113220121253447597825267263081266569209806408486435204082159253014052204323298898299044102809544077864999101085818668841251294929103902512750991580057060907903998745116815321928206143525517604965322440543513242126977964041278940665999340350838360150950825786073424314369638462045867757523758999118305021481054295288694140235527602062756518598424887161007413714924992487076876411666962095739063982058942255407817346137307363612802129969575495115013738330541152646554119634770302006018283193626680315344509634273660097986402686747985959213177097485331737147266667930319462103381074588571979990378432446655176057707677494903003251646028780278464045910137968808035729816946838351739845050446158987602771091697034915237357810862519318283139973255898816946523098325864658118947554707130837612580265606286173744833907032936777585733533313578356832313868320043013461676391089811281964336158764270290607034932654503057768184977631676368488212632160162198352883138447956804453475711463873467498900291432910520679881235514510711838697888004337869742339520019688048940865759668070817105916037733889866589586442453123291702061333434299831520585316810293121995680060051677142221483748118938158256086105614133291147978753264619961906742701050205109155204617216813974561152072883561074210173710662205503851817004679292084827388193669898213235665365704230644671186485929931116659360805610466654101757880026299793077390063727005197063065679507403926946304677007164255211110705393716658801620446335058566055035436711840329234301841583378859340883626555857893630469477436949596534256080856655503828738623133172746907317487874459418340279445758826375481399894178910797039249120746524358358099301758782188103387747355606028779132563528883462472327715229567263906864665444638684368307142549145553245632341422823867353375916998963997037797419399408570508999438439935496415349514328151037043142070943406124286935398497357555746961171659544481545799065718795244096556734133989879921723641843734274616774383542612899402853594939955166461620145398569110544494464485567985214975101238902018914526437191361160841752574452780147239746835838679653839364951970932766723339538493505662709105329453436842976192494089310050145758196722572388921050533663624745176892208983782863983761506676357446594133986391590158215811583625362276111923897024866739942998141522990969345978980500835377635312135703668040073330300937545924165882602962000851691351006556907483862203433273840338078794624751268174971845385973279940992473826144032510182861551779182192523806450147226922204082966664913505667754678033750209323416656746331794172503731575005685810129537353532818591717344751058853290634600894188987515192677789287603447403729113450426310052536026990629241115268735774017081414568568863135608108123789116634312997946808785719204322527678415258436499428908298475024551665405810525048460190723209767558350218535915786417267265604467269419052313871550001039680026180718600747969063158327638477482209632865189853419561002015168710380879091009673454754125861599104513710798664873514170242761670864720450674937384916065581571304170991646753255202341071020171049907443291936761771594698888287232456460256478514077289593236238941397350368126397423738744885385379235974865796437863191555924981936070418939458912998736839414906058609951642514213230104270645967467339465378701705329317905536598119705015984503808811845778631430056912639758473861085840178865222756219996010464217687910683438684328638392108651563368660175612813993994719318262877388620972018936786792963925523065844840867147789136276949608107720918678084464868658237276090930318726115000607417715427551071148478564074534344785132174415837606989377469513740049561058597638094897781960432381069248226808135788877994573330478268880417163864059093809269080557062023723252519062177515555169067539361226865005506744474042597450365375894083878811730494485126667298637930236404472088706803595871216463506669481684118933820807310955889463061470918089805186850788242208314325953257755597414591494809670122531588802813289182589637827893748751570654225817745295697262807147665586804366405171896432159506180227833564306428296098882110979282173663101924445977567481062173815227162006429741290179191397803615792493913014252273011461629491685323895354653938837461882187014269072075692193970011768514158776654265293869632676021598728163138312592482632846836980780156770508688538905011240078495093018453483492117777161507494094604396173872342922651816119849530210173699665487844570236768001718591269924098451801211709426767284057012344129149487642649710912666408079613110206156310421977775653560972430241057349045128809346838179854794712839972522885598981380307693909223935654753613822718574104692918752776291607110105577243772227161241092177749426177574097426444445692916360507390355831269839332192183290063626741121908962275020515630359977688303532983981472721749682270325548215089498002071971784381252790849560541504334308029860679354152537556329202479557989176802591374690118547454677804835369511715696091931132377644705104107285521059383600767778094074878423219698193890360521965073215975901935915601523503832969800911518965528227543588522137474234236329752815102844830857295554727151895506295417617711606489107970555125927266599150815613359272309795810392891860124891863965397658219632775278229532032052905341121047763659440849794971942873241433609179845476146118022640796432566371908906794340471664992808034780624915058571617420057717329516512659422411947267898193497772533353337521986022061958095228031489699151460494751549805271726741478044648311076607863891393289034130964336126161947489720433023345874077058087076343079793893458321793403744189896973694355269315894896075883869232507398614644361065470385768138898530035458737471943421029692824535333599795011973723793164500924997919875335604159266728303224596398062293642720045133666543969908874859101985833657368109184815194614237423451784020101827101635131150514525622248105871822153609533232055799150985247382055499602888500634247346146626863426593927256082404920702552844978908481294760637401351162883312359990305128023350104145118090817231898281239495951333369778892173194861136101814765660210327716668207757967873489543767970773455940494540296546492944053353621591772414427177588888756024000013286411892163468184548958592595165397287199679783718355141510780520104192138864283320180910697536359281956988635516452036135153736221579076095525673279667497884907761676390539035579681464703162067070589908592007800564235179053759355343125195705888131777528010871156245105198816450732019775033132540718122333822161148938263468929094850373123452213471066006898751020996456926438957324518344732465749114139277519307084724107604601408613430875029185176643929152513182753821470447384955698854173498714053178444778064502723299990516020022396491145849653231792528042758892831823183027753608507893053318083007274247269950472548645867416506958337346290224358797821986639680792362454938928864008230970690418337895940381827924738073140808740149969586407272236554920195863236509861399706607122890274791000414937399762205481900538487003660660813104120776296959043189259144250695899919059290079051621002471304547746468145070258897321396268728411788789058233492041688070048505761749465943873645306747282318620313506941662333467502108738533900231271950004122822044141535223570192810572000742847021214295601363539114914426474321406784798536638391718440515743539867167089992200225370789882089461155510084732283942953523793738569571903768760439694035840769379064746996897387378859948029645640302707643143804658859308995103638920253512574318881082145259630609015896221424895310700929290368467982693602626643960205382835117778154466731463161927362136240945941299737250553744445939335268562771818981254680141928311835435935997860224759508991704877192715575764382398697999206275418772263678813599853305937986402324098534027629646913461398400433299615631537194581700578435143752648639577717013571523299976612613813528218211588392002253093210166327239774204189883061263699078681891256840647535810318574148136135292762945163621481943886791729623661421185878539825292852869461425562375677485159606395267385225317453017553842307127879789278818703541041909614184865284436774098107474048661853219375873643509322829321118842471547521476095916296562637138329879101259318402913472417085505479675355023916898970605695812494409445534960243239196329330333303784892138989693794186846150454817690975161187543453211923429918404483757213808629107198667015666057320389335221997357396398420435888428154006084624289082480536747998748760899427821145070393331470698301313500400509045972446003917581048720029459737019742996472933086591403593505965329582245089492223917896324322297720352609223925656355619043394107244564153288448834879782975164566454048091870945422873704015231639375851509532222432864996336935810360522821320448643571264510242402352695948141104633031295141995349475016326691931060011143145843096878766964554876665152288595227455899884055779166589348264271548693078642331063381850037286145557380229909725639737228282596398933014583295348913398278995982648862902337297033885736002856017685144007010005276945010634625028183498964052767073544924906767756247989613586911881022336099943721585669656061875834892465786150475275428037123741218903945239747244891132755651311959918271175676335944944543811232962785796449713747389608564678876633882683968034440365830512354575704332447340453431972972171709781679775617269157876573238831834388674577082354332115297250779764871663230908471404664315383857121678543332247450929811384388925749332731838084408494143992528265167483743245361983291640380059275019811887605618258901030829156745650166001776823983461295475133466516993865158663071219900163621968558140060452476432187924560705476846588006693468864587499515030082495694664544522078479284721068012938481989162185639373245166818109482966626089021737325652514248781866856969828193119414765394824549741684949541963400581449354369389196701911714997727131215394861557828619998345495784883911414076982347197075126433141009033098114378366904629282046552919979907286663197243754916350247206262231542117812794944068881292633058110361406756238466359313305250035954897915558829262315944782082069275507948679018362772912423528112752428094185575949260887072484037908989040802853893918293258619586775589113088889258057504910068974383483962027421772672824295487006061971678934723886112277702625111780473629954585821459682945092873876259424646079705983736501862817986470990454237304467139655626339129038486110626825060195906233542152889723592687076701756422969745150027941873669609924876408213673160593463542713221253888048370439317552582191584848626383484699201917790426700548205237404923124929714305502649157170732506993267687022002662063814527972401223768139678511550626166251763239007615336041361592212637892443072670501519320569575227386975323840915838664667593954387161092917964187111369122894527112369822053494368857580741317919731408394548137827987528657505471578866099742868382195505566293077373785317819817778626175222576959850699936739744278245120951979272896684189928287317379515634795696293889839823347624521057435977436695566827767538908632479171664428018161457668742338929372680216111905757296347714532553840350777900649694710969391930261407736855610159994576935689836190433071365371492902521568381293368257856117656358439274061084014380906699739665815125311930858512086998956085539133983488447755893054977869197200833584105194019600331002703416499439495367320630515020954560795248365924916220265277705566893740525331707720716291378703793852176032328661087156680190751436556124082108419417478695820924235274396477884062034310831454834639061801892447048485106501349665764590094074241173123361775366296556435812229457932246744022540512769444256780424158958666727768540488982370137820657888545263984377073347291425600114032793719904587833295839825300331486137865563595849860330181189518871512285655303182101986646072542497181250772389644185499906564638252129751773387345251471125749150589286054638652272654214112984935913197506673182434149110656458003289841341122402142695014684908097633498613418766853036624716673308522052390006009554546587764516478068298964487880082387482936283407417383416450590093764914157592681726825204428839815227507033603136737070143927094415540462259019317066852529258829294783234147993631983266260461724632956590502260243027453126407409906289520664225368905078796481565664265702513722212215776687515688950364368467751237687098574363930957844862958408791419234876463389370571585365897631794544203179508275414634971554090365719269307077067843769027640852036542578093060959653271195275701636573073824991103735485961264869583053615449482660000250336219390684058325873174721004778545980569913621637041687012229891976524433644327484744133873054350312729554443514752997193008539327186453300870225542978221015938380977246632854362191009590407191278629067986032049814775593038863776287328080317125372665859690802681742435421168911587294492834572739705547780788800673539641533060374373419591280933891564022923174646372374257250965117276342365650735438724138165681136886608658043032954924345708506285357758518153846358215012410130943645165900984831364531572979460902052347707287070390105239655046907546966968706500473982528041625093161535662139314252039887214330058130154690699588170254399371488328766505895676255786996095135636998172882673818178514685055748700275665367629053986398464228768182264606871688031920578394961790306158219831137764409369011399034117869891496633085697137698207439653961484611573672302287297731407863050073914112079091136055103903223981261623738994474246764642204247050787742897054327512449078090212967715886176066389354655184375379651464168323499194127260359648605600504629362380859810151697485802625678342614375533158724490089893110269940140519029792953935758242017383310467386904794600041832762443559810556570459858910439222482347769609749284616615011730626462934273564327220937142473341731030460870921274050988005263189330626938295252902229672334898563978713699212583162837423810799650966140069189845712141261123702880421524973238621155183823484522920678896859157126953990554089899411504928709893891860986835087624047740018402721699731551584857137587515496176808621264454114562128690739894479401205546816059008004567763893753172992612814943076505720308779318277784464003159722403935586949747146375391655931565441695856872777456293734360492635513644887835878539958047117100716645745807330867867663556661209737589204751625689723262529262020546325469274958458678210904161954833943994895261791371735487925018085894555901792061448603914317328089433539737148165748267727940339958112805370699677487689735518078668953970896283942190645262753487305126849360830706631540794708087284931265279287123045304667358766987629872448209104255623414067398224629161973094715346920478308798046908285913681949303892562046227486611454811081538174085557494018344769539259677113269352446327346811044161096486700842063690367357907452001582331405874604494662486862472477759660817454096884899240514367407709254118233574321132304025099057251077225528067105846505778091460873542262039110638251676794855600911724573703659451456528912964523459007414059666410643912963221247053314173989093247954140612877480643656586349341590848291764294244329987999773703942501727657581293890913938855157427159225700818030124583465496760803894981097172490907605387421529483235572066196369225250515352044971009799485123858839568837886237151482690243609521820079743027864582075871726437596466710192642743237886758650824134310968973805960878260288199956683081083531324695916018697079487534912606218309758792064436483537512448614803756820562078338016675882262792311532083252251239556859466062250530690761020949466869182430560509782726676143439177468394642233796128728505506289094773559194240104015999467566787037047665035865164136941635653415187001000222379639260950387119099285548807076952354322534029882049376988294440673256978036129659609481035979807721315867879340575421412304173641445791116090169694003686143439790665256383355749030187803478790116878993397671088394401576159751098338632916383364983098656641052598885515424298588222266040137755457975721477046009806682000004482979378504308223305795854925545440704074643593343997580817408810579815722712856299502046151111720822496800491511871703908342389975534356904098350631393352401628511838697937507192323614488172964588981601991737576432137077347628074456208498397949733729254689222851397667805804838759059214132764180291598809846482635890532730344316933164501126438107972059995659216652038245897860126631038529235847180188207214346971315914977031991559544657532858812082371494392813092009790604935132244345552582286883194314195917922799848152963196306719431864732586280618954792593583739161401947299017422182551995337359134226462372666609829201951922618821638953933215759017015390962614849686188888359264806395587595476336699156361457508628053911100435569187288448355163369076010251584785747796784887854862610063813534723642587090771815217070420230026163790753722215327720834375922751398961011031122699324727860510924521138605484147415460943995217612624962419236890213298991310105575753845467654998605604324987841602896705732405974390506030127975982706068398548607316311976776416554557363541357176102161225710821147599543043249530781954217729764624469225600177787002020494925239128174430947710472563425828292429718378516556129417675332215656443544391148728751145468714194752675180813702212742136003879085824258742041647323775073807908899347604242565684961891263291897778715798882344321248074493630861098443567355714234941184852089406400735713498999583430476935855756039339350626628771905342141055442440058047062750064605620320424128724175491682771782529826190108987219813976765856314028621720292603817252161975877509073623049307686241991783908244103123586034958611611063960329088517375016550051750844817927156825536566036931732395864739642998980491854917733052724479507634809320298246091415995953643027020848594780470044402123989457670497588176454715399030958788412072203600165774294265399356767931260606770992632735922316940771064221553862493475142232676817355418048771524307495724644384258041231660346944725889662293719969580306436182666103432166902726099972639038249655273730644637199192973472076428287121459444918924233465040380673178313157708010350320820206065705994894076752766979666236168696081353366314217447151169732274233480446796182022997766739165593692563587798433394184950817162054767708317764748934475130059783951236039495410968477049024812670644353416086002429404853456317045600719918990506248915628466112460105371364557862222925611123436491421177968414759133852470782777302182356989749655263839329881031533424212179302516031645641934081851026620694573581239092663596629195991408423245328058168079839724067485730843584482852769232484454648481895986704218271520617873395044714585083130957942264037906510028385823220535470140809282148176262488018846941317790229362572855731829293253749954898306558354659934134455802872428286785094414107708229031878325841492341050406824622196753246067908573757311189884478090242095428977578493320106664222831573231082427309105641530438854388910685083100237555175357598781453397083813912503365599928913631971585317412199771517804044041617362380329658218133745014547597522410554242964145242593108289546053611843087132200515862083247579890666382229700081684478128182083354111617265603398706173149581468171494261741363723182178380530343192667899604783754163130756622541957305096994564203507457994739727396642271086137191463280868696090147313810344832554587887279207918235642307515781195160980464557457114520318857491074939657359720102513559915142016330557819811527074198293194683646930147746432564222705989975038979165231915579818229231867487545504723581171907016543885617149783802638217432688167822256068082340141037411847749406912838115694217067565592509715394780405807801324935242827028452300308071071456015761128798815554855101349291591949504479276570474831795958907237965752483043245516922113341835082535426176604811327495373537147037423135279920467174628534368520040802511040848164280944741798305298981355951674376023778286666898830173423800901494136808427193930473327349691010123258494304083146860394611507955962091573228349553301089652606933122348598447602396213177468203143421096392009067091695248557425901125730527990677208303178179273259317570235094040858855967988622526244295218489569035723800916239796609050194432527543911051576665857309879748883400540473686247724382095988875095093862217819686431848293723697001886868042101204186960693255730613580002684058406657329376359769454151257138573342833294230888730639872539584329871056956900618248131483989725985349144235185950925658980156142554823138233476453569492766038419158544253349264878457882265964424049768151213348181416796680533241945244418013061913074941287246215899613985504660024539430847378887687495499635104606647228771553442641478736702835287050651317587299496538570283546258849629089697236431413523625575260531427329225035843821998944582329526881930235051224526991841671557937077524868729321231939143453481375118880887557378749036134673946111181755861411339644367142664823637989802836548921428580047060215124595742065168437823831913133001851456624610365393245940576581537089144396525204437099128601231135009883618369464306358574893904906553790694551389717433085205636679823022248672794641246279984123318720061881556269736330757286560187378146810167358285748607794440403029039421612524904571568645649062885875401430087493236883518327475683013410132173928831455806544551094940323892146124571543126203453006419243072731469222004481936793438017816712915837662631003229603585037989617220538180199656925500031405595682017906202067274821108456617925240641106130574277904552645377297347814986785836127531101744523220340642677397025049786937580449206344998947125897910640558430844257944800353126271138075222148382022065865846831814604595543835629561685147675434804025307878665487101294555766129760164518105442353525437829868424046601618047055504256713211274884651098951828226590815191819033239834098481125444694892518136886598907586656025916560229414427764387372278719546077618304657535669087772618680908257424526543413597253475061159276520661143703839922550688225568391465354821800970852956021370275147926603249733187738890575029253955129333212390067938728113441917821622596697782217249021282217236210217975107689917956521800989302869355891465284424019917384753613941055060838779210003114784588373141740616805587783827485081502268737389306147603440143312983026249104203002757623804734005613129108487121532706254163631965316542012741762226164039490627952253019798760435254729972616305265196414310391076487816449762302294626361696858585452975293166019250723885970032661031856758709199707575915345087739158949875400477645002620561481308779700843895752017701063944395110146674683019398856112929902555891161748657566087338197524655045750940729443509318917360858479674261038482277764126917060800759138077590279704408386232957002288713414137912458281799485311246909011614086687976512313559048254755773139765986525429221325705589032970687896029396343317682713823693696926745667969022142391760455260734695736335870655075551417182811361465087536218114085198214294933254351076861943741173506936922543673615078544413359965868341614102951791591895296195958982328463726971099125533061805267559223005156284615814773942953269895735320551002034365818819337098240768612224224926051678776627300374846002547892284048372949391596311015973133683314234570007489147890358275518650080284268171984499379501052461397344383404681337084999840690595377469147944015128419129178158534562499853426835119278852459382904635316362472197594108366378895875013020364084091767561422436410502353714518496359312659017613346939132743724560159833052817845333762418253770334388744632147675890847933802377580840890159135319567213904264574234940884931972801300905306787650343381769096723514003633668932387317170845251420631318693023068696171196232174438291864035097347879001003365729337809539129211051785020736087559176563599882912598919350915349229848249733611897653826555530160408285821163647282798198494365131134682431687703580264861048583871262791318443655767399891701508644084874043533755043606118262896892574549298145090486526464762500803471065080379692496194396922348760846615664169707532949525529866262077793362534284497109523070609201572697221941336609437593693725377548215558083767646516093382226357466646523422759720044059784941364434224888481429198915338576160741816797752659048310458196022673629713930139057250096481962334222538092117614419880783297143180914391473095211333199304250678331334064231679619467313109700507223662171717747496100181766744845523007564200176886004113749313869458719883611492103718277401357044582396629186146706114536545156932156381872146460457548151114245015667963446338019988025268764174486155201620045935612135837060347090367187422599271380324048982229903100670758781852041280525428528033479446995492939199761387421964356470482746860699093982965566581156388055566458354151974776188805828886189643595174161224349476305996624850001083896533302170556720989312753617843412484008380518700101639029524642574947537450945531859937175689060696683169919761229054501147480972461554409806641357834278788430033525340723593353467774121168984778976400853986294138106171297587412781626702845501814842598101117205483487602787695395479095041806435159510736954599176841839410566374482444663559331623649247932177749020492903887944425704807075855217042020539758826196987655951904564930509946572934315542856660734649077458735532126204587016843809283800510529215816085359656275694116784938625107511476073200585807945680932947755670202724851189180386670305579606254059003281675760575452219861929862197247175892103263743846386962161883436196966444591646258388174471243210871133896053282942807929794213908038799901890326176257715243929788128778006528795945537878373699637063419002053770560801488847800846362891656788303507139886625903628141590576145158062661856568701593775527428093850928817813550281434681915680728167014972915837621450646313535953070453724369120475340194880781629130649660484478931132530627217343841654239671931681877295698451821002148353034846863788164852046352862231168456957910105275976933251033799327729154331403274694506151589264985703160713641782752358250081639729219595162108077470244985076030994792596214072076216742507957461628895434694957130277752340206392740849029090070614599131182152498306715692016112673944152006823544708953647611788129338692088288954508765317252093659280482659543028437012160806198615475488952822851016894867613857749069361481761458506520321954121297207289284436495104910315170205295429579954991441580751525773526494734072832261672742752793066315030978770277624692896394663664981598099952933316360543538420131414118519754523907078709695786335630713538304045576482037250268043600351172390852631594542216440843120059175326577681292691362238386896764713223835861030209333894936293258225954877863932291074402578873629590460515675989711764648043251400529522349191595128128623126993963123831329915998566812204780713996292109663915180113536726191047389288777829795793016088670440322091758563227574912187444613165232315134039780450724793781006897724467976536503207325661132640364235164756751407350284066277410304169753054582683808643193071608677323035761283699580238629657822929816480229883995119607235875106041568525592014859882838398190333382576184609236350158943280776296894502059713693676741991583048883619093995752652782151978768779005805113080616116376189956799890366886527762758843228927553087669635792369192091906613071500054826785272054302675832951511724743701174626845773308765998721121337154351187028928206184119974744890905600026060477191875900290096666889092821556205462517099506974345605395379544030510215605926522305454529802445256830315394338755192172161261168228631215157140623321433275195163004707048152951201152078582546015311909085307281849014188935563924271192661047668234658269875143970456846848129332470159552024739090784984580126797973007406752802220496422771455601556244009779984763186278792277433357896624519830879123601495569461392446325210436503483318199607574920676693001584421579383727602814830652234924979785241309578776497114991762884073044314314607667045683824098928574033184998257656061081634143587772099080853026681342977605102275568500240454654674554642098047957532177453932635801438589368538532894185804551492786260201264930959316874245031958562138357869181046825643490968767537735171998651498507361019996394287949089394991754818533094215733298685892551806757478251621905777937570415674983770754985211981005463362241954364274905401928467672163286176765248412662100010910886035879545642503948959471180955960687410619192278057472613097768406559587133577828361575453584046826516941214330214334700313085053796142296832126795731670333675059329307139426990126881155428012544341762849100131354821913668150200523316221439337775218371870643389339277608159873968429448044306859072108332003303650896075361744211600659314844276879955251555744753278108428483498324068714728705308542414405668956015944827692135326255438551626897514878022004955574372309865391104780092487867485312387380383785975144240478392016207574222246183447971264135052927587131587574247509272750240466655466573026807059655655763983308449164663265286640657315068130883150418729159435549495165807190730271254289854123422356458950077844636059390251890189481352966740014648489162359421360223999420838265106444030331208307415202025334148354481776751131376070315935860581546131081065680369643030694797302035399645618297078958754302800887992188821866161096375785837019979044939990777402922206915645384388827130511763851755643598946622264896694979767625065002792103213415396188337324219738093294546689598902002630530957047237778878856414116080456319491937999921586629488785196280459053769231079518345680594805111400423124027974119025032946515925188582389664812562180354842322093479365020561240837568610477283947078868857544760393829132454125329835243507574386551373211162980654037176934592891149607690169576157291051648378020475963934932806447592840064878536140425308118655064260012790709932631163025066116695800920824609904388275460008958763041837609654972286759365612997168615391257559451848660703827740140703160411299145545606939552052149836449848187012667879819228566427116379650670299741936165215215224281632884341687946920145224352688206976951609730926228161184441290431232552829961827070349285741250861059851057979492907338709494011470487452974477619471166438707490858488356779122420643817205186004374975314401036731135730439473033903089401417945528083493303817076956562060828559583290957655622236873654514016369238365997611030779784148691170925339314497719360848467413518492667692218453391962904614459343048777274083119177783635236434398904465161615992037844006081502698907329152015829338659631561352118427847625162554681740981149563532036352023737351801317778879496442720338493296800482325086734278782579641261852044171302698183532273749503553803231500378647031816313966207580966327944604727110755140227182570326473909877399449797890345686966185587641374915767669692250705841081203618035068209526007517655142272869210716315094866911103416544382904682995217426778224263534439936709998377296875822826119533400139642351120411745636479487629509745017376244594056638525651269176460322405695695662216874134842021013350243477335626841509343410224403350762068424865373978478926867367802366635196706780005078648604284406947670989851693748039112601731872927596723098400940596961279836752129797332790155560729039974529345769237849334038346103406038808067218946525709957942348566295516713679365974366722959293554198413685130773759229686156131951097491405831141404355456721943122477536477991479704237032653401149301623134502231303349484267307960393118339213399625435762482637406173776100415755803856902232594843259855864769034855479666840043028236584693759527377316854853941243458771643041216064914932229970482692326367230239151656105769738753494768512586530939002304554855188814664847004327297440892476283977986300907217375081507648517294258289625856298959440520064644843075812809542465092756962125158727044038664465164898650277249169723695609386176668617603703372915599978305056231302723259027307771244547315524341406365975955033195377109485247063938979533348748996446020205648394698386480260584569227781734711414875679223113319151610020391415344028948893354182420017722666525015406016692697237331725921122453327116537548192528902067039088972497769453692905337841229947960519037064125940113379378372457059556121433218456672954033544938512840081506545904639786483431413012120940532684530636637982298613401556872022973531219011608355426935745767183780303915491567291413880648015079809969148317599743163440841003616054907205822446567627725090457880311121372898789679996883009552889044709463184688421792267149488937340396384648093189345160800838725950578187057946623043108636955935201059874566036683540748502729178869274371345296282519187330729481505143610183160624411369972097931205419372872846234463025922429549768935444293352279494446249368018912982303922501782316518804939490041713974965995362453123843824892376104614772770934131466158354464321633982378255726184022684507049576716752437682157604068162515346433101438071471720603648479125583342919089938095019925443300764352477846855636610538535013205097369613090716144427028551662921419363919247311786864275038783892825748044826596106845648701464769699333011663872911979514283144025009775586694065701288137707899009375767063778253215160061845324652308442304600180201380617325610492678358092605414318474079264452931013241127431039889536634970529107840137789548766021060260937928714311702686121248975496043767040624586244398971460609995789857791299937655080052684996024531808256096682716612208578301894946693689968622841559778989290776847053669936121476146078656420687300893594717185656068551756357752660032060979620366321922192345396202549495240469476276108661377575969058751730597707162478654519462115939896702441715956525946794164416017321233269540366543197713660957345763361436339721932017485921671008324877938568974486963305539708107810164323159527196619453557369799894699075382264586840929655348740786469803743485574536073164348251025440385585632197892266303127848060281361730990478243856722504999954331189148699239203213336646594549133258690279617755721063640155335203706032524414249563823236238693711140769072287983971769966978619114359648860877579334172156771549716264759113011431730038083272377455675219204364228811225347945767584985819234378102705817626122239298707325166605760231690019278199162258763875561284029968631332493493042293390143744981625670549252490393297558295319921518791823470356377471947117516798734375420990050981023088916896588103300651553612877942430823990632958538343409637626079704614485082431321128700331459604323390252448914793964194896096538771680714625118544902216548840118606228414380569422365742577329300031442065139258183522991514736556389980685749210865604715588588204527331060363253978816487437438425917187674056354141095402438082761073198430653293806597120260398620029023665159980565467926972404040139299403642485768112466133826144129589427060342304519421078960626374581890941894617254845852434073647222975184204931443851554510612093013092403517366459592357148899283305424345640346961724570758224651840009180526486510297131878361968256071564767967445741523831019787252876888146535498926544906556304142595345815849415734705102852290520277649433469727546206404319122377664253333589242447896191597748727430702389091325758836203550390847267602433177038337234756935657076262556728889264991316208588498350130873431665925428044807206516772902753353090246283406568881907484256822283967913595191599220517786946738135343774271561010694288798174527334872754995832750762941582394356341432315903114775758664218212525699982999412369614428485926032339007830277728646924092108945143656541381491828079971040897203292751980969198474714828787070383525490197813542614687680451640097218632416638592071346318620407258821926430512867567243713711805065044639880264678124383794703127825077456271238869199288670505273729259919499806171188620818439978846532794074552585047793610410821098836277176748614785671559389316519588034076069947503791215454772380412867190873360885082312792679677496763597227142631504268056396685864935373395292929272689894969753177382099374276105618240955568346199380077855816257773273143855144629564263186206141085159480651550135004766979818656983615344094998993408915706903685342409110092374393275130998517884357752440251983455490998754566791559769523858273392827418484244159895940123115277385759856718764136235472165558639788752913584791374151850882726294420231235709275580701270500435817035349648967318444863188020102473420306769857941268928974175758779398487558192163424008843925813006337317151270897893407084574696373395369182288749733478917237713968335752866243643666936868186389530736333170955192085674759110879481248162023031370400853018528509546301222379098867878454779806156181211510801280882782763220406735401864514419058038955719061907278827983699986924500771255792641260984562269465831618890811570582439811797875990843210795059784654793391621912538333614670316859386380468417780323945814849762861706111995196018491090047704589963538833909251696439631219171479488522977632279502033796495570476911130765227093588996750232317267797038005192524211657049459689400788554300133565029564605844693580485229550480593319893688316739145859472688871366043698849317023362023817825714975833262939397059502104908215420985390433229556607459922543737102709993596445877613003291746485934635998393834603402856167974418771783166938507843478703785178257466301897378447506768002997826637698416873961446549195608379139230018148713202900941919339521298063437366571136474799719030848159110371753983546875641450638006892969150018807232655440776866754390625811831661762743409776040294238356525834969337777703747945708001363671298712229354387705590995298281784802393099332234002475792499226933390811072904864797501251646589447921234671551027686117516048749818783261395749871705534728660825528337410027384833245708486476818368034689684097386982106030365394783268761912406144934232610189342922650796497130682736435729409054408307614844184034296190223241343678658391660563190743712002763107848646859789877436648117125635557860699688398134291196467866232984290834685622283962457828884716285743156891668231826868233375787431392221348861676617182037678363415260021018349357351313861962591660755450448989218025522058477049662431222684766104976599881713643657954972323984800733588976936927188145029020578875675092840342964392937978209484813762106954938316035170946410942651347003681255876364426831897892443509129735214882502599488604120612269762327667695555556243913800606506145592295903261183192016182729229633472610740948815133740693279862676053925967148837684629833978471101515713175697505740840591444914811611358577707781078843418241022070540873966701927057812462770569437269749271896142124960892464172098436258602442915152228346444749911582483583826875409966313063267150072689197464921200966373685094380013375459151125472795748297787555505134150597015064324039456003610580586645298400496572942347492056267937506057686036112357829226186531887916297709548784584122201047173218701783251854658722243576202974853923212657436553435408253589640200731258416523434662439655306634825561189313302759157731875964376496973160669443126358136797421394535373460219132102479462002508533043524215774942657510767348908309386593867757951911588395719007825520376051310587006032524413014327760644253227295162367009755927045029169019663274615544991308081445549328979765638387064971869461289419494853548703754936425130033875870757246369966014928670790448601816532241370759800910533100187029793472004650801308938996137850509872578568653861426870367335116688195075453207674829837255316115666312767544200951158980508756727379089742600924508007217915985612879626655969055770270889495731953719369852774954878971586416987452896077752548882981134554319968702065396621973871765035838592972983944224798425740768388463169689939102332748023220004724232800157444775339623629163315253222354915965806676186089345463837947336068216320012994116769927670356756143102343893695990462534653107387371911186084387527345983580694146230895159640414841457970415060134956170833021171538020560397888731611855360202362265077199268305016089055897780149661998813096814537309453148312904802124595972503512138416434785786272368964702735115727074193822322019117564095754652666156225059900724095829132454921078870346603692940394781891222452581952898022874449324154206869189648765366742739202841832605372832884331734330755735381136324026636967979416369458958661912399215861604487019868113409929092836803332053067284209530962943328445805455088253652842981912045310467697963954818966045618001588580859169848538805538741897639523000389254952676001692777349363348351666354968165542201098631072617046897791285999249005219303793298586143382921927811693744033889769644450382769605776132866828604877706133938317447941020896305163817951683704315715481551087731433947795771193696353298053553390864193781936517777662582588954532701613118813590734772189538746925412095304271199888809567128206267587239892637782893857443287113469733466698247239220423357424661176481935550478400273767984842102123333928580656000216566453596647215813276408105321908084811914595304229869535674060964847590392778823139966807038062195225929984644752379212704571436794808956512219826349217625371152903672541540219894182692862635386592868692123998559369286082147575630468023688425664838029837126798928454106418981507512355149255458808952149553663026711563165527588648025944917167622391994143825598392246493100189161457140335480662359149119548738003925225381555278262606125031649730005253225332392807772693334275227724130786541383373969657641548307774454805481918831270552081969064520110743739029196556255187982746386133891651137117339571201697753076461271671242147443653619017202473562060730671287041955983489864619071764565512849464735329792823698886745697626398238720849873872630086492587544880688537241829018861582354499284788386326398887285768577242345450880913313770205594150184694970300656791220769660808341137255636280111422345321868661939371510633959305509985454714591363020196216903944902990911103146490495132476155691998056184529719416428774371308215164369157410219168719335994221963716104518159894565164804216928535736936829470640786693513969125167329794193363035282898260300087226398492587425463992445737853905349235496357448511622653535176582158924239973785597268010398448708866692262212526472004061221645103953700269614219947846697722738574161573152959606909318717767940445332810318621887312757496074633812867786102839122809159624936548801235280724333829384596696794899345928112948735291644901214999912921176758504791415193619930339433097003336419270473385064305142838963424022697010842050374896345519834986168336437488970582632130391021558204700038285120068025222054086071283155129872835950458917154991922993688817930930324310450593743661595753135445191938798691946232345970009184219047508551706918028750388848616686687764044768222522514570855153552154295581765913007700567135018928828195447225925210197232318664257581402786054647859786524150420421008030439298011405564169397795921966072926861440704419999776112182035512771233883369800776928971241588463135196076629753822410339912049952380792885850844112715258506101880561370610260142364110694563467040502721168684880504701917516889882684691606580158754705512741663177442723610368476063582686196699545529378104604761068520206835605609185680563188979105131435978388266991116320213595559532394832631734892714379633180356775281974550519458088114608864732200363255354813398086577310932886731454677176599715630829970864289050199516804852631313176959084326307768622183824591225409799545739181513626637087022929317508573375737700441945760277339807991835219238732251261833981701401012738652600676714244159958835340905195158517192765902781644030346572196191605273624625338774109970125090235256955691451123606336261915606236682305340436518357764531058273584377553743444130648077264419957563325975291684468797871227875045542146239874536122689809878389670222917167927948321763152536475572008166436142854390690100788985248857696818330730182321790028976656612826799431301135507921787145422879170414606175828891556948931401193074357239217738406295943560969827250531340175717185596036722542296126711649336341011293347791546800739227123614282665648944405807525724591620097943831327035481117495301497390852153783876634937135051497985039945136750157072556924153762878883027291393721634600157357619407675606907686679064318046937833536627369496652619372377536154459548936111833961551286857936417979792425270570653717449511603092406267793193922246854926793032481355848498431677317841960821059363126794199829910592225113678895210212125292611910878278724366456192874744404736837570760150653036692448101053617551549243537006817708957788996673784189375917886089523716353545202559449512058019227099360104096731739323262054065039751810959829627323435067203568569860159342587219552980707668734187120900468366240495109716814606134609684372791447250053598857892477927725739236705414024618045291365604620369839327247408126217356946508993963282586836973829712400354964764726572591335843723203852892746868508286974927360419608052640612224758417357052160725011298504602802335527454200772818474139260109839495896321323991221147170932029899103402073321852588449543278437660729441515811573157050541443426608227274908821616675042355266202871579178032409854475071339172998839727156754260700528893808600596684562348216974317956452234090798803204918223979193087247126160337271963169299915124529577335763008526830832281840155741909871720857108650984249702029449478447445478048738217616172724398222830927867572198479803714656052901160508479003775933941438621257069696661582084556187651543741807477280410500425422921363303430569123369177949859169000493833458595851569228373572651355422578751035647152185738799861779326140468744405284250221492810866197313411253004229437712867031037009117796021154420496374685105845176291499250084860693069877698132950754715232095034991103082037061011680340670515696153749387817527644136572097553744307673845966860745410743708726922140116127623078459703375893573152323739370465149601699881142857984255244461624243311977523815006987985357533892307481561190329775897067536842436512840086390033016196529159765514971451004197232663230159172077391345464772835956658329443687435892142576207475355145487010368436219015990831640051535575450822203050635102758326159485877650830892805169812637880542381813389710026939027168682083097422304344692236169009281143488542403640577702209515767042239446896496591220881393483949465552938626574783552667974026792507935167208096120876236838782579106012477416423204110813151999448493066349305961536756915574167672459857369028499390305187885184103207226874480629080433400771465352881240522097744795651241192278003504799843374345526227683141870392821114720409400402955621484400950545345502169709415641963382088272159338122193448394703954137181569011082253001255367637769293944737734773460066695712707992772286509181410764958149738775050300748851562023027755422520718309661799018284886299641796757940985504159413242580439456840933758859512335564826516022788683917999254262849250565949231933660854153525606849878452024680452846401120204266016247001569735717202167034030209786682010348914178265551344838365457756112762309592153648421672464774591195948042112238438993653794247922736733053313371908501234273038055151371552640524566290383487558147554918840826856100179621528227984610919665832395891487934401655736794025995241476757356255289764962460423471934337778184561660016364156444573032191299379065614079732860692843228592671970531474180486391894742565624095747773480075550482873440257999281834872667369144718603255064085728703362856898821205113213266523613100635305179223564023999701421087675420316194444906517953363548901957746491415049314681517284930632012710846035546942269105247823087130740944166376188627143510171315576039495797978875881184891906344527359578300470089485363815656542581574829948806612460964980688067743369888339784946604684514278820925408017294591170681637640322488467550185222725331091544579960951851827216252570664694519798994647932927887517617909800287521893407436420094327957381082852919061080591466949990700632829567573598669539644960049014422024856734558264772370835695261102187737505834047296958251419048516416595434954000641209576750599410297305352325910516121652484485071176812377404663928492363803027406221844901486297441555766760309072192942735206013080752109885039198849740791583242372461547634961537835771290691426873627543451982202556916479611045955458921769427870135682408275937032424417470534059985534059086052731463562036129969501180333815352442399008633852514803341023085339676521931071071024956201721161500338048417394709950127245188888460996055520254800956870324111460253860769924477731803956963879167263247060252628032106111741240992938046214242765037296078827042188943538035484891697538946691781554491470756023113551255670916887514837298683927616548291833528357712653497645005678764614039980936164092575602808797537556444968962279987561583217317532920874283321992866635198056798452862858466037239965667804950608619359019073216573881246749716587226711167457213102307215403138859536377394367612572931944191159707740686735544084943263449092143885701027785222355270715728796050384502373123412937874213060081855400303057696605484870927469542758215840810453639040551385323198451214847287336102381935671890257184328945983583848345823934563667901772116621404454352332360156791716336365019717152592781542825644542024152122818070045627368560911385482986549334792464168795304387437287816308250830644831080104237567366740386916541141404796123745033283290766837931730904093635636395706297771092380120293694848675336017461459351847351579486938601410696445087293899454080391675633325905754084764046184542336738889561066683144722010400096587173446175657531546513120890861475926199986320927831032429857173483119751542609349033087464972677919613123133299838698246524228930697280888068472345295526626647370070695752974163115431443922258947412415281635343346271282061508570213950936026812847808126209468223517835104638340473971032544693152346054418643791113706849057502581526845609539193111899306264144478998964430591142229505580429974518556393518420843272850116059331892693208043860379369023194584596123175452638312942604580623899320937023143996404906217845626995931080376242126076700335480824911970399069165684880773535595075516852416993546951127322105828311581568438171028647082917999090865966745950032070560589523446208054179532082990049968613933101016839594341532782864106089663668906565351848041398087701244041263573450255620234955463991610643427479343276721595421257275802788257568470494717299660164658554858616500065580551529685987829998232523462370637085382935636413729836485258512036152166615569127011671536248557805784932344508899983422014507394932084397270241978596989856925626217836569105364254139655210912339082619455119492167442396142927759066058961843824688078123121830496751634973971834547459512552233745881006889568724157581627693248662103310442579894970714004863584527748436904327557617781078707063303671279642783323489406914796226524612435928283682905348898946327491357097192944137220380845831295495980948525768573298366094156765127363727142585621154553108825400642537829159627035552045742133418247424818826652966023710957606167156200270667142586093186147335495543266217710976815986165013789135710381981420744590115022612112863766263427676841089375313897605314249686275305461523568626855601697752673752179109510493541386288555822813286300249923598914928157234795214684802139270501290622385224893614621445205722096850911479748554572795619865515291732750150065670006910287365205707574146648606510006478707300942490430572416849789862323100546790255414340338311005188597865559722370173539915034473167471445749962087007227669565902513346074331973727747694839639211039988866162340883177465890021477406557081028959658514140937235565193397577315630995367441768033162744714611902381864183535897800142602249468260869174023472623594643147239673093859870344929511126463602764355373013044726998219268344391971211232546060238887814444966101515280113697890875104718794660153027644548301978815192210295427795388196048534990746490740181845196945979615337677876961805790729904492631826004154020440166081060988403594380084125929066848372293315165558085129106719570301539798089080235705776291122323025233272015405244400564256181666848986154745264504071870223987197292233811976898229396065603391892384508281959777945191714932956818190123800105333262713611874504979994610170434694907275937386858696901660378159370578101062592916708652784570514533827142416125014361694340254720468797862365241634401859688322508893748966834212159337873022160755517862626595774254018164576942370502107159644783059598082317425984862232410724744499342565607568897027038201194916108589441968142235838113231195269230584355685912216460739910426867876370989037208468974312359820774949045092090508734515868965807918123952586310656290417609604870199512778835014300365531033858807954675419258022942095611531433188394065522844778956117462230083743871671826931870564378362277570067728444453403394414229948983499256597179322728753801023599446228542342315764389451545797212395704470288150619692086448192592386651245298842108302317351961763411593904597275577497137852361613315074970492621241042064055496846562044879959965084083158838885834127648067808991694207475061106897492411817663171918089952254032848660202185782876121008879409107991454988737996206432186088895710065057954326801921590343560022498081482984719009386744450778591353676518513895990291803244893286242171961944358333701233699063970675996432067460615795568654933768476867293677336955094545431327874078006326884809170823735548759616482759296417247749904118815152100349400930781130533640940420706092731683734627517963179768376007185842498042126827081097450126474969562518912015790473231595494186449356487035994072765030118567270591435910326128140815546257073794039711826003582564935618308482004279177236206886158325231139299915508893147862016187582981304510650713822764606383472708185770702561182380235336071289016019427277964106832692352538784185901002656849122218049931059828915866933964328856326539829587314731236337443631157127522972471230625174953557209182369899655174703892833547623592065403442655321713206523292777473836983013766942906460316085777498870302734515771419668429683055797738622838102248350729079224696289758543324121392731440562713834159505835961044786097664104148772691393745233213432114967594348429268513150355206282353305554912553107800332586736301250406933796549902052755223782599637483999567391172901123747902288992954113620014589132036102132846426132072225967408114465762674313578539608899658427755750149999724055416532662307252475446638103003179735380099801190785282724021635399114226827277958189329726660096803532207279127329082722255132617020067914843110704517810283973138492913900526878698647213008404956589791415334076937976957251810881444237834157120356315070825609881817899177998306257596318621770086303209293466472589617225661605688478579273286212111016785802103848456239627127785493760695499349677218273229410806347583453184218294806505381834486566729067216244657829722779398573035301161686939849594015935684602452645141294428246059300517988599099193749504529983630957043450309358615763442574200116393533202945184401540354535681407811619390196107676613583152286394942000805294168696690081223265337688330143912470276749592612355678335300555123854928049658443622229556562498221344177866859187185422116452451318984894579389416499594718588933597596167008548754443527650479661260489694174876559651527353159853511305868040067542336353760406715041621904561266694279113427032783024304711341719139631826355241503391409981616471644002635070299387116258500275419193492958792369855047669487886910310347833685280064471751932997272689328234734386004164270862518086221850002493466678560267947173855491469141322671996328387203911960224996647415804344757883237501675928215757366873434244315199071796499201703345765754314887439117320659775778159798568721340443622483304355175299515090499245471514624499608640332629324699047593286035313670091925856633163339645941545544879005268373852912404383561217264781421417807465519735388194956114937855291880522400971110561362128213244272960767056930058806456565330027227357894068460841421000691139412140058575611128512287852126459989016227208867125976809996028018037019848811273344640907158609455488487324308706233969364439931070596960121073343591454475370542766246718247669417644156026290493832480691869489754296869130809192793870793528501988230205981270346525760243879146772768984363652441682140913096397702057701293578801192370040032356198497323140520142243086676169506561382421242751364151394852569654551230902240309432143035264642042171732987226813814986386639227014292812421627324949077569681803878197111601490755326642382851023903997249722003282217992364549703340518686638127136392859596765927224350629351891382621828444865795377425430772562974475780498799868193344644908213981522789131971884903772364260262824229300494352168201641613896357767633830173577302515532185883070954283562147997628345301016250893647330253971062511121269679273463615890163220736198496392142866019921076013407125644537737405998034413344618576493451462822633545305495192244232521312169859259292088409681169766808056087575316568130859300410370173543236906147354639007701624994170596474381744620939437955751216462223721238689081768712633048161561241367047532625239372181823881334912826059036621465450025837186812887176900190912362314574301209629469317884308150709062440583566176732906330644962212882559961156265689712334552810119549591888662327379205519024546538096230182744481429172200172565418156639513170480949635475508251450326226720414518306813325876139289102050184635820008295429329025190194066368795897729507777472456059218835055163950375631584710701019476150287460831834805406266511720220198236361535297530657442158802837440622384968693171150697685153693803254154595162334149272195853965738126843712429505724686118907025711922013568075707624014372452651857369384518590845969142335266492582254261041378226145750455408972192393771397748032484983799138264273138955053823672802284720130978088456786220589773979264225956081018749569322361765958888914665448006841745256443877439850590028636144976944447797349272773344590680312556364550506768321614346935228280272874714189586255342644932628789759744446965218267954262187055831806844075128495749828747577444414113991393066736431334205787295165188595618782640576598370085719200376880043356193006736533237863403432359716730047109280668377996968294794133670695224564215772577765193860230996050247543399939367057620554475500453420297285484865114465702624521528680602167099583970232440831285930509083148997810457413659583890393596036612628346062171372804448560969619032686224886843327552940624192934274441517127326035495716344729588478788662214209540593163844279871136989577687297557947804049799472863038708260991686508983049575593421835386544769931531084471965616992533104344563140401044016359661872375659512211502146604326311620483234267920615838562290725320169623982294376762770583415270880294680270450502889426815408717430834735729942428818132116138134543117063755723366331173255273027225398007001254602612780691107841511485663382582344013612640541852639619903358843466589934908884538016625813693530027816636481305664691760474325323756272858366014486341200723210068084770595630254631201553245889456295818285238492231323678809097601067765343189446390935775949968760882692366565122757728938114394741799428082367956461938255056740834631613138150740044467579839102897067980637296045180331397832561691995674688146877856414492522115469212938212167215110876803786359697705533256991783521840798534797366021379848512008680343703278584227686895343631013070853851884101775740335828804193575408436352721116312572071593530820326639685122256578136621803402734337212718174303255784003092345844534111303280155559051415874455459694089215482104509713476272299018943764290494977542328936178314703817600387227935302614486785922864044565060211421051720769539893251610104260030316088720748957920593686709780976701950181114615109059915270078129562614930410067745155624474524310535205981922259056869007280616188160547600030089973551312931367467553539979726585470371369520719914100028134993630950942356682741793339724298114284301347112086184942912663209886435268159047941628022930168145632980881723667720629694231156638911749137545456131228125955850632381247215500446557610700226112853253196316475263572288831607933436137340981422446543048152036546940454783299718585691030014041108876834797539606054158660457859786562768336896430491785181990694836499947421385243255864014291788893404496040778333805589175003680546044015162770882969945521812465415890923606312289068224580287685424938218836954947465261824945838329932428253497292622459249110259464085496428962380726717624598012947423486443703106117990584942501224971351535274342790692623356641129507378638164594849505754197908079200920146667905584267238384805533631932760242214288841697710570266152610165772581062309454380132622137960188617352766891379506277193231721394002215045179052298470305257607896881749597461874667480463500012139609975965270073608862527425796288042406987975263634008418295408908243120759879018834959319425127948813650720524768650404447744997322850450550859420095032212802009988486171361565986631997781937945088671727689941828489049987393125061539746257058922950761441022791873265293561418021744905086757698171123804274815660939638123025046108505610114763699493663866147109772197936855928192589966778386557865141747897917535624549375034127311021520191735881500050474895805139960390817933549828921043714746705056458784697839999142618873518253509749054184750017838055050480224570659171879039815893337129232641229170971500335627792624953555198686096252357806311124792159453042945512745637844547122348547457798076660439445706506762814774817997298608922802798471253353935882810936178416048646743150330893036106004963808168908585727994626817014919770379166942759891092166517261428760508893796228197410910533191920651358300328318625532497586031256839943169238232703083835251088503326648058129598796096635326939000735126832526481439827937217557884026955607640001688596062552469213892276266077511285360124122519859898632451863591152426896832357441843104608436424368911900463119609224810799397437511335891223852618298759548765562767309991057141422648746515272724062046431809674246444168988147907628118722591968522400028897586469359073309986132713596120804396945209469452295491938631780197381619270024868438016041094611190196715245488035877259758351376865374085007331682788914736255265925824253729734510639962068967467743564718777870194357258045743525156220607938052405605559657969709824343588704008906662993968359042716644674541392165236841773532946735957867763451211928386609061518287201008943497174137104532458770736156504454057478924119176148933370481996694734790648392181564365538439217333325923324253179223508508294426640279635005526136540260855494601183534390717241839174717943798256148029417019070287668711907856004278335620027706577262320096600266321186325990182776088118410597766134920781165121057760688106916851799764372647668121161546484719424430415610991412309566229840748619472662103875277008442766532678919538490530160447276682288834269152733879602793585534670170127193997315659103392718142000372536640349537754140390739256629499204973680844167025746285820975952492478298994656099730520008493760572822515673730459002784220006300017200990004748889133239412288983457899457320669216758440234244450756977322906486210998164328718621914708485998875802441359773028016095766857101813186320572054944588302628325854311833635649518854272860059552346913780263080919710470172105344638395063302066351600948443258205237741221514873232219099116053496052752569749606528136950359289842519531936721480886457274189131029276198272760043600999118214686984125866151717449266541344321652767750457075791511807454562807923382145330961213720889250164893007976534668803535486272621388364280709592772638742112866290902262669530915767664595711090794942765719319618710843270229864890077346335430754711040265969758617793192126487348235623263613886570334146134096346247896950157555865705902448343727150641149568912350219178553088517293182061709708571230366521956740905702228844260593158645094989918096942436758058827645958679498752924856946716619536588117830761927438944251910949867510170520983487910474979220989034798926625971130827326721165785717639589830128845378614743774618565588173642096114073983299411643821032520888586273305311654303565258038646616990663934607689684670377292333433901035327762613519226426688035658389896610028979111195664727215411432340463144827925116610453804828522534685048679130637408661330124170425629350553848958548770452186257682126009124907497774550474258796182549462326608248381286850814365681177745823155905981121809479604084034315771532339007460021640333624997937587005768240887933099225790572505128795910334515750302406560307645439689602465467388017221936166133078041950794136603215257412632094809877215503429696138049895497687779492238053025268545676479367045145528722665838683976039491227413932241207722071301308158003429759715642571356733237557514704047796842762555965105190514393718988775496086502769102407984514287706380827581770887332483619906555634400988389055710795590968492288152224908372714540213333416168067701148153222767644508536759157317719962108254170312093864197944890581552148255852268081903282659006739900292116748460895389963595986993373001378982707808711803483164639169007982184071576145771644428903159393344151070507851085199793336868232111460626209328523249198502011076158795447040713047949985219174216730098321759325129428300962090713186536648603606357275172202289560776389686659474122627136615584195213361210492117074951925898998458760282238039770508486183177409955946180263364511773410419225767433044824231504747644431333175426119571445479207119195197192176976293426131017923625876614957994454886168062563669103565925375315250433735427070027927151976632045382444232591722657959444313058387495750542474964025484842417065535154474674386904031727153483034613508286370733175402677560918778339799077256691021448149828007590563668398786757136402153204849783520996546946136439157688686496172512799243830951792133505747355434186561612713173453408170334035936611614514043543065528901759825211249737543885305986445451060372751359083121621660424360713603181590958551062908221880482592908898316537439864569166536453660491473098523082606644699264300847334603724144150905673835685021004680391838208161911371987576763781818240565195945498193649958561488831464145923879718376534471433814297489121249675782203231270115128896983666338826011076148851034710185470468772850716094739928772460139168571893676608833758663175670937302881792607015728294450572719551689736745163293595343063599008487664676320364789080837681252637953652659955323509143169367513410194500143324070544678237895827794461694045352665538942376578455165265664751581449900356090674480284203933919875399014967200159324899736814000476644347097166921188311845049576789790787001189162231990780613880178016322265434158392127724458946523380518198536279405704782402644816329452974967370470369809486720846494014596961319457032177690066918790231988128998684924607954479035228280812993338925557685174916062960156018147755617133284665251809731927203178603729150898912479100340729251843592059249771853906842039068576862194181642457746516087724993414851725058349517871891570805470066617809220227832308176563744270025219865477724233361101970483007818508627374248489438931743284602438767195082579117608535809350754620200427232059476416883209737782465001457379988658011782287786093921852185178045380267413103770564666039974656640441200582559750361347166851598576009493164868982612171240248540961909310756079067831621550380743364718544307012767603922973587435405726573322227173735497981474082201942056468367014746107856269434451682400295781832157035788754081146433489478567376873811866740171960293364189035286925487398975262977113459658941366196733421345955899431384537982548520268426395190946287596025435390388976796355568932168681597609981926592694432243298098304050998473200324343235883900260841446417160785614284277850383284710502363754072058695815972013812936638176468785633707826973672205706675575068555842429723241785306535313462068753318117254226084686148308867506875253560128456693094839369750351258020242728450278342563930358646171760662179464373579965190493596741942286574093364781685930181341402060232705766212738203185430479290422970511719864812133480184709382705275216898880482443853639317060656848375048956673204489651883535232507058892839304937116624370013252930662783994333832036954853585963514126675589302383582317181008032777053093566035554844226145094278406712909839219286818329364136649904150787035073894263847719404378904666940697304722208425323571047405901348284867359781373823245199750046973403413309651453290920440425312199859252927319687950430157134952097417467461403780664690360096959909654074544369371318862018777111376428726578438361382782623898448080538235079768874198864073559804248606348398178614437979627938108654140090802881817698626635668720125648273534674359918158347476269945660864255556788703826352506252435255464828363024725015011705383771519491700532823181580679401888656338590583153997466012365283320471261401290051680021694512804316607678168498928849497275344508477856307423368322912335156471078255843221772307746085804358409795600448848280841946994225341041291225186775015196063346390771833160856011152188002769570343415248881696660743034978698535327540042832863314916716756590564941129972734709203195592397695358651080973035622478270666388045560699345701544147903410936596631940016587920186865307544652341863702726160406785904831932998036496530859436603139029660418419806832935141000424371372504320629545773967424913476547482394762216930441038135359754162425455217411585589774438791525912228174765004250010975772614113516269391464922219564560584363238704125364846024911464154793274929675024097334695110441816330546608306917259978118843992681125472729861703448092915247601691041719466702440958438016488699794831772088648123236727721457573369505068244532696836995418396673131392691484768359145935974999086939980558849554291291418024524790952848935236906073935940653690478923072952757045628222866138262354709004326815142732040667270832014669750136259100350698852776591264033028378920908836244431980211239720182175539240661112545685379937579468384308863234910355498615037946005651535960001437845097942020686904360116651154295342239079871024836650843489586262969750769719802838033432104984389087780553961243806888497120987312969313634024412774157634376785143384624882960292199032603388152831203177432931035517513452285175759922271115810602346338235746206901132683112295698490170009733767904982875702685445745575815985841199316652338044642829183879560390566847515606938630566421923507258542891097749105918352534717338108548410341140886749060901344806730523804481103344243851106461407574728353718411169643543723394228321562960687914274054085729063780638666863609550258903916098018917029203780120483415450855723037022594898310394580513513558544291529626393884498326672705391726877004797659573882643629197578816137955646687026166274374530479239894588789514091029214030027862508249920331810728283040280117820449633762116777302614611583042873569695989170055392257474890700524702929199756253930741811056632511722425110604759510095600460703814928306490729493963528381494240319337103155682056260707817308446068283736264056248364148152017073701079295497483667068998089337324291831265969144446693288502741045301330897619712221115514281709731073281775311122969028111761089512278941474537096838425656790609276258219238967286005636994844364492407164664833076925959068755757205899292625090667232536108569663051350415697282005995209729545641804714969928759592102620754365534826693761021030283782696434636500377246406329904724566712254532329573355403930504908006939387818377896225699838526331088543217958854371946623958253615694159928668909938540535367830947721373609639822755881657654039018014354927531523830660469605076882434836443296345782513556661882213865080306646554250468381225402390365370274907243249839610059357542156787537740392247390055475055567124724310010802360418430501565556368415900884406979781626339262823498281441448495095253983797849516895167500574596968762308502383948927585947661273503129307844859490307983508065551310117991304279906212511835402857269012562980108274444883092078412529864100903532436557076573251997023028156567142077788045489973174837173047248526620585097826823210207162017567187338728361115070605719796007849114922699648058593904577475634062537656518507449101032799073643362836901926533696612762303503606394890835295627873309461307121311886892916674064318991089557066589904916434877505862314400127106594926456515521883405197840709667406012830407448552339552289041377882092479054566435245590938779762075481486249300994340412661689376913463143075906229334636084553569928495077368354865933373348802639055021577887058690258885229970876325078539119593266941221846925400430147058361463006325938971507749402537606442703244714462478344935519632845261149858551362777734402215117719307148741624983761069592676152016947411969896391678675165161814837095206227296376635291072745583193352496752895553429171037886221407649100710827118550068467261848723822860385217584291484134007554761823941655474152891721984383690288021946269597803741582438443978803838902354907820903915574925721272546757984451329415883789150071521068068932418420337189901416261671759746916079127112139917509007393364289755990354146388815082788674546368141254090842724045574583877756088856501632946502938166639646536401898924389896370029266358434017234954541920791599217105758348860060663068999123790772754423726948105601961633843024274013507156006033842908986576277087970679544883279607168787552086608429263042435758426696723677342171702755756182328699855890075205769329614552520868785323615135465390610957551534055145119392867874419221080582944961758023311906878864593857634315070606006440756060524880052933973924985273996668213707704179598784176935309891627068889374115012572460574001751181566720338521878658196820692233558318999071278820500975874232942377709619297411458480662479423726187116870732017723324675005229366346970984570954931775356340568719017917388187009987940044354589786349601305175580858559128680336372025544278930473282452162103686107074067551136588039572025599953632367761353155463716238296795440515851799944107820999375846554574164454477358936171234439895757771940165692728467845731204971512391535235097911330732892641439784666999110684132683955784890225454444972043469546792128748411702629825096168012030243811894937109394049178818246533883412145861053236835747813593879769128821753456815175538706670910884951375180549951379484288153490878046078857049781543931101159409320877736494485368857026171944964589976094367073053791763370851763977354941415193100921905761823867495184559189882337854423922859636122162921360167587866613123914537831100601918042605584500874138307588335901382189736797231049010525696267926277501782173905223980420544599171923968111121544033625249405513094214924086507433116326160362156984410685768093697881030789642279015368619425628239866957649512442664190927799217721382969994162322874409132523612680379157790564817694747688937646551796550928326693012202508305295913729131170190779681139816399309794512469746158162220325612377301826036714288063354418463725361187927909647162280850394330788633107913675691320176658727892542193517478405139576097533987896861512818508870780708470554329346342996413181855488688216871548391557279315671148648890689845452073345924335422556150572044145322158521890687467812815832121217349808363864397899135658215663175517987061888595517465331237481577792988186710041912257927939964294354422082477360871723767466212693853847485394861058271796480670481093447121916368416523520565365069673114472253335982920167780215673298313391936778720818891201819766566251571617566328577449698147413162045003195088745297290947494910357780752840312012699861957053066411840571206243325586414406961493052967062665955233435944752870817791480569949013717149162634684503675585082141025890841839688177218523087720594200785173069878950059223556497523783191935362688961852745698047033975408905287102443651315943359017971632644020729235877769129150980820845493417469848309991029861265507085980601451825289098638772408442398616684654077369541545641731235534239201355713543112515619382663445589751697363956416658688829628362970192335145208523281221941009399332688344405415702448852276746374371225145047814347627211523491107367773879173924606786117832374634777716213229150803392293667457679304035201464471507517068082438732296567139383244854078689082145913195649882368231853033490130260748245786273734775151730522072198223880042778729388886716078179171270000811544259323818924220616528061713320445887405426968851459256943774861325738165093801911693131749399354909651729991306928871347483938765442104457832512883535754584318491491763666516800571584458715462769893879308699308958150440754095952113096307270866418613995040669430317248003817802220062133662595205946152407895612394816305752450125283985873085735637539848723032910502223248959624420316186436182907039019691358439117911039394280573937181671084580702872978861187106517131479764493018674573797383788360285723828148092470611354559419355919095337609406120902738262249765174302042358965654299631032947179879477682578570629291262372475611165318126433217888567201171490750019337983815194881481073312033139415751821554378145222210944506995829918984541230282710950090565819542237050645687521508381950061886349522047384989345274615190088538759855060862973010069641016758963695627841835167424303522970859745224486691278002788755030008427960743125168221210114552138339353405806670673465557494291448413147113628561454253444790621793512109655414413346080996152428053213821192988275602434726315951180140285806829784733972782138120720389378722019636242564901009565833566210274490633894714657292440135137797238701111323338875176300955120948187691948000625932071199536535518780147303096919905461225280590918826022350199340829541023040431643395518307548342548433453740699655772255979422736037440570863595351769460223516467265115269996123001772656966074284109065582688123631949870405000297121842669246062737631810603989471554839403703948512218082740707291527960410935569693709948159584787190598717293715983752536259615975284176544487883022333519863520955775555988272422289218947912665311689831444558250770366448273834559827353639139527455579907074702584123883106882542646129180051044709663586752025634577442654928321220298994673089863139214546788518172587602370662274148672891184066023245894340683045917545532693241926087722313278245818979300178294272044638551442652785938925178305886799318720958710220482281486783044325405818271234822759083502895447675237823284563654716217563106996784552036067216703687647454779317110348155602475851874158630206796136604467132227596976940194208804636895867735493813151092914449711880171776631761123199113889255086438669968421337282860851522620884256392947869553374948077397594955546150235334196082282024242601050020359068574927575546314187781413764417011935338815651373644842167721931485390957357618084459767075041790476363073509803821475500310988439719440721167986408624759724899847783227511515851070008656534888158619992839683076340955736010296276409763519254103452583914808199878274348923629790327535140603864393144869441117178567015398777101656131990939200490029087659353750971109553975017332513264395627671355699594791388995349180784286879234323173748619289159837340925948228086176887943606795120620973546085540293035664423754223366349858004983308781341687344456015129425792186385251340898719393019827269072474619884127530628935873760460696796261265308873911350003470450094048634886614752422401430389466122918151042321778944692143560700862235302333724797172442450026085512146614945893668417182719750435035647853566649602657793616216234062246618985377471876885995688943419490912764668686740277445971499277289855092282142084437284020116617334909991562377924953671138322759676037879162936466306193028241052493952192870834364333008262851915545219244909779341679862711496361594808731076231563704707402412822248046797195524258629304968725335300066509850990523537660861611955782106961528614589112903434354701147858518909090586864686672131075067209675723400933727213979295723424885779021207206611703536235797641159470604303136606177392597774150386384180976393150452315785461523525520783595793567455798706181472544321789739505725792450042333137112182133974613986095940709320011621828114464153716917703610786792356096158600157066103115850863660367711955988794693513729723316478723036438464994943140147252434893881815783336097658107639639207562877056339768978747081798290602235560675203602665749763465135307311972815566696304280659416166882189266056663930515466710594847585457391445404722808825596249520652577061186964630749489496313818067399358305920129116861340752147496012736232965592349457674709454830549579875213886330768949016195890024213849518298454589967987126272095701871817582658863165991685838014943895741520069773226842050747366526531960717379154302111019652757124243712733643017885582325007736493645234274826397750888360948942493491486082484891671677042399767980935537067130217343980441896668707619726159472847530695768117562501932988785074434562184597622813276786018599893905423975207220592752787602066387743561070336028557741613651360810085972773968102133045412360485517425513547513797612949304111044877917166875798441358241685972750919226529075870269217828018998947180818150156810558102465505704420746967224311104734131407026313591384685704506782794881846504613695009696798983730087517437927237013494784479145812246680738968736780274055677580520509088641506118895245426160163394435558972993079974812040856592944139348069461642090684932309153498841996398149974021481506653727191812504024715535635399683414092070217221046767544549398796130760292625649043859810309055454984136661767427014527046851471461175010627460631088313159513746255932749848568019689084105432477206017068700667977037216559538390212954849825590718210067377951861985171093356235898108432863245684065254205181617373473004710406749584903288498993588903121737582224082715794984133714274778016552852931550581052085737354273840731639597424876847100639802874125415284214067920440984263300455859503152617865266845392272095947909328839997992304821872071833089216503136202946029340586607194196801092076986113988928732991629758035519363744480467809759182827877878092541362739461320508877963913308359869467388190027552556074353786557978149440642954460735282854560815643476359209620296652330185663132530797311776874005174211380181593884340077424204041092346358827654753934675434216105332219768935634812543772373361720490749780391355345507912257591868238351319656220627201246404771069160828461474375150256649741923228327044692817140385009398225773014840903161685255711676565177446345761434053056591028563912958597914636694345820597295632504186505130026769904207039600332411245737154517207415784770887495308656482818511638851549457274527157326941543550188419240957962659124763976244851055107321153752840174305347078414933800910674968985198748975042301846219158022005387726315980434305141891429252053145943474341000702700508833524340222474646506155420168096058394353377227315718687360881006008608762781876162675031837719112421907494092082629023731611186918757666256316256991057666770838077542159044988421827782059066171128698658060301665816035145188942226191337341134862698653336059146982931359244279068112618329608808666017544599697355279493831343769158915811265027450362626031921998133357586892300524516267499766862467099382652542721364607036607663089416036183392917970094641337582100476747929021432080522041890438326839767458251829189331001015228625268147455349121022200128158371891149855798750699806024279785621941145474259458241027342252355434179535295628495718898865682359986250895648232842586538184720109292177368362273180212572235833955816851929042648951259361144649608911472259839656346277488144827012266886513492206271173847115647367604734583358757996147740145851449440248430246034676947682693022561966382277986588959401212639790011312424676833787810178752279769393414387199554337258041663190248664824530869434340925856185170139619770095709089714164782246931925725829782722283047515235590322352871887201425198037341956848016844340227479558471385332291495082889498521992348231009883499574711676037540651338878469008571966483111583527934788982893829130396471339606322763302237484607870355719865515706658052155052604457972208676343661530590464072150586304935235018630459342652514078047685505558466249047339121209319671201104702732665601845585255073306662224819284830115889802690105818728640819845127715669421872658630270304862535225649834964804848060994730167208280187896852561045940667670109868859345760481013241229646082866444252313943435343835310963688124162742301366100129039956535793726449682712044969305349023816012882251539920739590553940666039475150826096216632431333988351512357124428142428776661182635095217772302796430095654734362544302937885703897037805024828439316988823374684910011052390821301726133507708312228392633985246243106540215473650025374986044569171318801817535073124330565616125314924205729591630887684971814561348443017546864304557641693232692285028777474859408678188344645666456895469297936938360972508874930564145482523646881097599880342759913992038107826645678395945436719560719897365544168775992870857199383950386160444558352748801764147862532444506441494148002365034224091943749054275541859525163158447172992761132031141226510990010408373884901093069598769262593628916157461510583883190545499984021769359639563210522019133453816188560988217315463554313550842549279961595022423490441449668554494702270312045261118584359862011984499070879861416967813892055867302247322799705172874271767233844358154529660999394986669049357911452741752655728546841939658781681022080301078673549940401642681207494922186345772999556000754381756789886042396727446966505004501283465028299137548835524378643036709614357249755236974941988715259514603884863137138096483814866785945800589889124513494274712381802609840822793209746796535421219423185184926141712598497163494895162741313110589940901674966871777393450236312482940203243267840535938638459411843067646745168520906022867302621966093337040198141647513400516649598421416086403743686976289969088989933165443184699937050326452851886096425959884989475366477106211024785966121732714399899848515239984297083686724882308927576665792571035728889821700754611350740040030048416259912083670866389119718271251938185855517056746579853316700531057122511039769829466032602212496033978030272324446125233262904302658098550400243375920571023926178279514628167951527573366355436038159339403390991709010620613136656984054011077444026452619577869169053247008355321334141211655638093312284627911434221365961090503323573377393943054727122727701379994097987164710756954080164770985358388097805605619732910960138416920724379462591425515259768558863459521153667556799425430228712691439128769438833599069209314019278805851959181078936376719231140866030910313954977466454749464220218120251288804725134623278992175085308909077006455548323304889638533745016759567524728312234744860502785931844214034008589306330537431605368407508421272895505783584643633009602412960740279824914056036414320253565909028017999048311378151393889786743820837940668239526649847193842859203061378794529986059800859785300421955633693345785777258457029426037126119250453530195458471723877227571687460615358123084740613399268623765450457430602237907183221097607224964534380881349331219580525512126832665671661680411165295045797701362169664116727017823222106306777686994322419775764306752310688867175077361994798325320902957366374316945338358295353969544326167388220400615593816618550269623525091237687654790040015788865778816459730153219387579139123636326658118725178148244494897249983178738076912489388148367678293938934454394769525488757940571816284812910243387224568154664459716355724781742773178924749683758118653785662314665416788076494858409830731227860529947021175458359893695267054395216218893497170004698657579297974198436517415131995792032130158626896375078162970446910703139198363524459159688088228527776833966947025766082306467903694543396528454646300435663099793461438428657283581222189154834432469760665428136820916054504181986852976233970570122376372015349883282031453435671956556614431000045468193591673730350352456687432407941291884197033190200441026939302930370378333084652763082142462369286281274631836145590954489753793894719788405739125394906623796713074362612368471159386987160998217098637652261014460725869310455220348421377033637833499986622283729582250083788957990807264257348730457324185458999052273421478616402936293071201232036605608869656230403776952105967428907232043976665589239972820493541461461542934287952208482165343302830770968883507708564478080240261060268107436857485622604556791806847144651898327482672111587266287693059622075496123861633998805229110760590132325600109959686066596498059295494996660411145534935125768673151595290982723486000921588895608081246437877032495013717947884853621466455610544769677770960696183164308975609321568837841890990757745900847129393118041683946944124733548829036875864538281840915879302844140419821430643232268923665659566346519610385202600353339340627962099325605353597712170985460880401696992033399413329015103161297596149386292787710175658412582477189565514134336880310335410822494039643406675942668463723675850089687460360559210661557844379921916289531699203254429166107979063380395382022808669526223858365359297986149812663842000818663813508916607388272307258232918843124544722047850482136353013493089209009711994950501872726915549599415153515209955300837191581531321245872224307027640008406711537905595946951479775178342360293130130127168788339166191725713505536666139803675836766684559416271631081785393880470756174971384855544349293434640419214372356457677881305780836302177678466352992897302314597849855773026751062722029157397464273710201263511870116483400284008320789318285300249272696321288403267884778826503138394235720852200024328595529047306409250733146699480126761318645688830588435390215620932356415460409582671859257501080433063302812122552293537177894590052808857054375930539936366428248673243566570593109582162907182667057211853299964794801053588239016850177831332431057771778445509590119579860091539667762171367461675601321481674294704843867601320195180743581692120835973793223181865591934912669384189263467186846533047755502139000598806815121038703910907458262278173624007600846471404341754352143381325693418025789470801187961519011610654107924430822931833831606269826718769063751042417882212699194024777308685168880469420149204810998774506615218003064777420464742012952778565602789117858403737050225114041786934904191299378493260563921712334497767694002192560863391715731884564385062185670174827109136599274705503981461452861233534949768928076425767522061896263321593542355482362806864395844609904821112098234118964833663061685210631109118025425970271999798717046741507635579174397198751691674077766255497292561317806351725140649966884982301731349327915665976418989811602938467583974491737943398336516176363827016002748320061986105090111234342745542830309453908923999638283774211124374348804930940413117495302086753263476926130583797533310160112712359952593173442610658606193648226654137430570130401600716713439449073671860573222552060565816082521746045112261662009391575759343142426207402162007520727922413336028826746598206697679460486911405823688348220016538225090043238591215982893568752779344215194984154478042352894234219011848898442823880901357353559783848729461479911075766516734752745054891027162983777012865741799540484215788616704539436851262630720718923851590375134060497209176368501196619274940658514779997092267911260271786579041183573217587826001186162118500439346231417120123661996675538098630653527997640027610216216058084875319682513982190089027335576630814366249402028850204202950107291398110503946538085720985129912988884151677654686489604756146274459999009952082077959372744090615315929554904336510949605768000124584480840419177087963212723199521813528815315891529808064265244209683037576973915459631309522939484987028435717415968862865611064663256902156295063140646423070542309242168185593862308056143922926035886434135973956950709380909049918346387185519041224837270619192481967865954734382212470963076950492441692047246196431830115869178700741567710218440335176521263508112318895770262414134549172527149363249265101785109391696140576298741753820964762385932050924745340358327583960366488555682212463864863722833711503862418085826229525690298487839409700648059382733497077512046191927120009868057315971177656987527721578594732156680531042404675571660096441041469589007841861216039546078014119357997912951056887273289451039557494267024407193267300939427754442105082910973092424125384053371650366330384205784626552389267212121437089711618137180857277959590134574610402829850290388152065795413475292540282862834728181180430666015927398844904245411716357999268391437243957729576347833275634400405420483056884290939710173607326357676900304132722972680252233106368009935532881997211253998367787279612284823759762403497776549626614724241188524909203124291757235419763339891632523767839496703560004698551209089391433291391840770523768215991274689303566736607528913130175704658484958920256621775059601148439591440655722616702942563944118212529168411541599478719633357103029010946558655779320019229308629474788808155654785218213348606324565593597832873405203557463863361855800682368729536030449948676035441949679888985584671725977037974963565972504579832443620133666895664727741034803819005942410299234587802997059100789893728744753152396823001960575985245531311218932785759559307683844898482728400193173780660987894832111698065727468991153060109781149671437407177894659869533934297804730990398793944551880182765717755101909548226114821942652426723165106893552827036916622542181424583437375509772223826413875866049119627512859371458404189416485632663228949302568537395576102512563539646773898228205661400593555376962502455995792783224785224659079672073345846789747133193794108938789435095147951126345049779288318125644267587490841815794891805816223313981414052806906344355701928772306837914928455394370115031190996448157423510321247809571079189041015026667342918118699814414819172955852756657322956123170650795753676793044449390363530556896373015392811320288242930190642290131351612267427364131969295379692100437067656371130879584327133612770465793521662264754145936813154201790945591052280856107786765674642123512520180572344572334522052673261495811223245484177003146407714398316684672853392997726341243715333742602937317500874956278752817001962626224084262280195502019995574596629159014211514948977978891620636527355052448952506150285914480350495571848266686331016974524106639502784081637315717807137229922500235567067592688690990054497249184646920296702666565100097405153283967034795705234262205934096512897179398906727612270160355820787098366659802789560406695034381810397902599370521141804626663959430201232844757338132553445847221315073203016046403550635619650644154403092713743689332443179252928578035171941786889056388442207444454343732099160381649855558609116436333914168374630408334351966794608368066266380551444826842689370977542993442182337918181361147160453384236445648641308192833157293808550922875534293211390441134471067616476253114074123139834443180682720034918787610932400725736181784699960424865861959276344207350608593067359636736463346028733895240334047460408213204168563538523178515883187154217815715361089715722110752442496334474148757403781063976633770869370853583700038490904179568688501322682078399985821590093424768707894457705870062714837020958342303259825231144798809475872876092743230299191965038224949645970589213810652916537387036670945521186687694086718964127132043729715766137567151140679638038980728247299959133642838114327841560728279118917100716468439057848926756005169432107104633537289166446422417239389522578941944171349643709742322149886287181493677098918006768904389197978624322997088888490521692657190307054069926056999800337775704080077515068369147765746983163648082884251163888387633429956146931272613064571051473463675675942491003567585003034898702628036727571223441186671818673203053504447589467332212978653855194421805646824297414254742046068755903314628668099010011732493393105933682111953245405235742068921782366702037452487764760972301978379807491278817737691661948920154195932198146611255070885721247338270200258267414520327633563396553843859958302382112469057280116126546806849027181355821513164125004625262311350040919842233529074869211651935007010579986195544203143010088288173955179853642660359925434110963799552404828361647486769386072610018382825793328118484052215237012833869049247583612273843442319210245468677898188661038457598796189338411676245468866498048611872453805410136579405950996070084827556562455456826136697033200956823788987805753381753223475173658590117573893570322652538729986599993694615475645751885717529200759066726758429356699430845600305567342040946837524654649716455595084314870591977469929579875142973358885230511812982910240629742862645605344301346165424127844026425956185428073919708110700921499364572574082207875942166914629021374333662402908594691025740439142327265744664015592443900143076809597764356870700997821676961119419147571518681744492264395238311644205197678188190633612510601800825674488423507281301656044956272355704038311664448281272213905007356392365970269899152143641137975534699300122160683307422359524282989476529863888667243470698232086165934015251670704455503061472462109170874498977951316798518693955647032201543298755256040929339234485054322901172930285344095409287723057319707024984953219387897125966438718249638155929019355872250348712453324980138680382982053961399829585767747529342171580166889355254288961552709023218550741098617310301920063893749555095230433301072661469053834345283536856407745114408742607016344472967456437131544431167583653482537358327253357202559095891299217342612016318371911960696072406213992235168503217756863548808558006237038859984555152037806994443457240401237593949265531183780506095859651707552688022977317914296846164789512825118133931372567670919047967762440864446581043414913213648639436873934564128008506812491615897969569556263766886747587813054996802797647517108093666619964867795712166513888579961701159654197009128001772746671402534438662581848113098812185691619383445650865760746763346151454924056563106301872607024051134496708254284638326896367207801387210591057798803334498864246690158549592686129249948079767037536632236881316603302155436336342139431761890666337995794051702714374900698869188309851628951011371726914729182115032276045132932572092509733876585588455314635012857076322946281421281926868756044913017697373377553061489914332689028469629618503343544841895127782808115478976815455086106147286986536096552928108085895146885528545462339780409522509098910064121177951478741914407641450975015849814017998779131046495838456535353843251334958816228501665351137075108003969775268947663972268542925381126258497004024023980353809770079349004222967638175672399233616640611557340901412081674038772290466384585839147951140581353376577392581074544571975249516803264609235490860064865483443261111960036146888050977661687900378854884042735673091507583582241907629402995076912702842092996699637782469361288909255408317095994293777918288997137508243222027556680107618748472601057998676014854594398173996766392068900807746827934035669150204534591749288164436690936262726253018770635438645830752752030248342840490273113303481876438101757151107025702827401179453047439903778559285161638755013225738297925654391167551962451763173894415584939968278382069713105933171247609654888306119278055473406342614114978739142783591054184125181611571117584891539046118374818894377440388711639130072287074055517024507767252935532609887529810937219929237657416284479354441016073649247808779379872182927050814230522434628626909009132205065906172192896361997757088399735584359366677215349414732667082187718040283229105503519891296582646961065786314693459824282018169638777740836507076862365831876872404702892398421373820886953556814656116531053010340697567274893139288636264268295486842932293116914675707854329392265693868364948761917146538847837286088067140873517137347323222724130419506989560609927248539110155376885118052862907854129016479493866593781929407909137320088869364780238471453982987377297071069824614012206345220461977335071688798108081660412448594306874131815589633964584932377211560409675625049136326357164090307990981122288865375813452980638303057441262022108800848859030023481430043156882126334130683438757270812459984621069350447647221568016929949593884461294557998666145980888905199368423857111699452218758393151197437145266554496734759350289469175987548089420134615267221492905403438183349784067958206550448947162408098191010634846829358523073588359675122852223116423212079503865858951756474542551393604758768042637872058609357408132009118883198536920580976907705066583167221972651379499322131685554623111544592684393567459864345113329157985576502842601143042073009423022581483774844000791270198281515437213064299736198512708690170272739141686453777306442822329197356146896161806780935179269878401807316025453211779437485964523466791624339346661833403118080106234248232178820507325651629295073838163878845792765671841920447757830991232174409859662158748893795408297141601201267194275976128916670964539148102452241320486250298010150832938394853796662630181346311378662739265357531861954452110023173181738781134477217251724140472719381300861516595895458632394286807816567067566572811292279557867658739425364673485927140101611768342351950297406757588863863567251692155855786620475430532675661924418455222690006935074423301028790734812329584288854777986672247912338135481870433273241455892992944765406337396883281861940662268658757425956254082363705618000315854598726732401112945179311062132006601025207965416858276080303228370169165461299262644002061614756711609589099053791799885160001588970916357962457976819824158954304856277112311562404305489702258759946116164820825469896260233046819573401248278855298966093308249264699744155299994410111253490795773164075726276102488783979175505680355045686084263669815871137988563699955609626485006052866780323836095810811118269838490005973658158791105127552920598980197880033674604308516073399419098841906863866564462222428391199703447785522636685935868895524898931881561570019783490657029053192036996898890607066136465487589366764949129295616722627823031369459369672734331596868894588834087471430901021904505872651903115263996181963220085689769975271310921830577937363042513193454121160730826345115181397881566875082830409227451340151581969691241744671088116645686163010080427044069055765390534082915422874689257004275734755475388595608918620759564337622728690019617782228724228850412740549670935002591885759333370977501539888886449413622524662596134070402857782648761540068250705474190031480816691630570554600008961193889642539055973513572788591024084286209497933450084034858166378095261039735713382667047981165750899798292593177932593914393900223471818548078704100326983207008652624445587405100324324600822640046854948280672430670509308917238577827192562257746750958712363061228109948636339573741217516842462003791082444254808603060592286578784620737784331982336511680217050265039690188180008580177052037814450224323023814738478290368904649744622243942661546372778394128673923005223685462979762032366113592418850474328859806929899220478446221833537861743614899419784639097162301604769783098350520504345680205390133148070043405647122768026000363437767897945234496128383396377835748276042273578365258786532110584383457370937511684010550388724177945030393473848525865578674756170468634855240358377337542754014509941328312898965595857472572912567719669356936488442111938104294735808978952851530798674470600443981207807345754633409055756313082156695765232663258333782637594490213452520697809613873167970820012703230000158893232445556428141798788336821296642758666410138552742844524446676258617382122678618638294113817392527904935837542509985259127028597624498519896050485886671159897191808811589472635275329024098208085982355571263101949477899334009887411249572367670863080517016490437248740625505833040408246650730956169096599375160355639967541408896376265780797413051209916951105258652817557285853188502896537229559241145835386627922349155369491298918889428781187015305207777598115462685531861515113758785268224917984152273815898216375309360161603773315592364441463934638340529976975778912221198557472951741539629001178503987456148913899016706308326370942512904468043428316110456957178446239825232061509829222204210108514209032194484294789359788719813245904667869697214181705480631304942877015932345316915301663403754179011016004222545470279089965807268480118387393285639534756826197367309401843122762590882824312715660641680542360571578982999057223486005561882183143016899537669374369112670647264713170124098127971831979317676386694494781386931138975113393350267887034168289187971151847189174825264556285232873519373969367223002043340030927146750346962066280542334983149323939754738019973218495647381215381882372529089445417333965778338802263114667037002519612308047685975496355833270185946087070397463690273355798031267513811210277026054882995430888574243048993670891317434087380288629065135095465252355984878471939429648680352170533933573601266078510938029973799382556824037173332344095076012818337035036431525114907120054431669479714349639468074395513190548921048067487959232520086440208534514662154103531930708410659478099496094795992832618262416219095280767002153254192831091491166453555886324856390275284302546840341866766870140827941997431278923693438127916510135909492416042391582018210839553130158087211097968130987732575710079822745138886927378822774009799221677676357618532559524816819447529515791092161707241002039282809001769131179178280466350568869264558067323457640968069696216948995842575011708208426110702922924034228604711912679821139561417702967203362907157519456498017960771671868097199789665993198814958539943057608456157616888618163011613378028648892754956730017403079664412539501703452745124280985885946707094871980756322620562646933117373974448527075625158368200666559521563201920700817113289437662981676017265582529968373955937026663247689680007516147107872397959606335554434227803952046683115481304957658623129485586394850876909698148784213048104895241338436892455973419084899637938804152309056345748746133019723387882018716888028571233209495803752907698411194189319868016867821549319861135431253186825976696945769014561578182506656203147832242985693838384340672295856944789409818501267898565796988624229766548953561555811968342800335016874015703937238065766632857972097475585737401049849643350611577467176178118512248352436780308906078036608332634953473440651719669802912696304102330059042121862108929780592708240207663980697943743638058161741283157243003716466937847171731956609493951826620908403706860166037271598367801856972094719884055970094924972987260362798384338726877831901914955666581192927314607023649333545793656344474982551811890468588702865994495061739131975553729740200006673893745238041500748208394196089540536344833766694972231609904115812384711596618155886471045881020855181487234403422841994961215330887944158820734343388715391402763541951949960609068604620619967848053677048393439761705564424836884878882774287939074041711281876352978276781302560146917064101121843854910450448386673909735423247776093310863347673477134539480710839341695420708475072703425968394660635287817008156232672457627832802147763947174620949294023283839917448577299108491138492095719579607304428826189270067936743378085018476466116740433048257829450530929145288475393689546197315592056047361928433627426246852146801373124050972638622023441679541779067967296011984586315909375217147498014491262523686984654450948278068012541762090652403156086617135492591760698057959448646344081439788993990906030946060090133728268927540630353180275315129689263022328681406445247353198464375824281498853710398292729279523593359520727857821966501484483849524360923077647783070579604483069801950222659496812926243188740414056076525020329934778079602353407535085003805760741088873467415019027328949689264886062164463485488574756198502463113400599231304171932297001390081653396460060127866097228959232686670731538932289449848060546058568447987520917173652087119346030042188862259677983273627939529899009630915745283378097775168991033801599994980808324737029354846970007152383751350508945158358806849010661656801047593379690273476697323320614873510059180523753902086595933431084555204915032948726928587480719012564605069392028514278626182410312501502244517452628513439473487309730834958226399697881938381830684530992740645962843565908177830100847470896031103393217025052633115914868536670408465352427585494327682957450220356771359651156616217969870244268813012023168768869053898509807120797724836252585137637188529615528541075658397266583861686137184091881376937159380366124663294366380075790499171948690243288856600515219455029435840973664522020911291921603724410920913658461259556290371459493015220492537438079641563975789385651987445263382090855725107538965378739852729589421214747766924449366668136946945813634716971807526493713400807046058477780381704232697419967632092938117083150581335332842025092426952809267992327048783450664600723224165185834411963885324494145119446023215269621820811111929280533403394698871971085272473041985239486894383428930549558868870397615757989415947423870291967500670812864176510112504314745669341552550379804557072578833741635348936146705367100425628301287789868895594509000970697338910613177061350928181702930201367878631510446192867582489997347178810640680175137026511117538297065677927738391887735747734936989239090676536871716705200226081571651411339986031529836273179405264895669818160603973104199679286591235264553973123305434458400540997558812333634111806760995570400902331874780408009674917448061344333656180798488718039232405289987699141374958055869899173354676566060011187424643851360171637864345980443596521103706702231347416848012660570874358808489651087568953305861661984421083083384470013027838781231987888805904095641814727494058276409606903639389571992839953061817750451117060786036367732794369355982027751150808127699239078560718720673880303461583542432657714531308911828966333596996122558096643211404913640534035815605503225895491501641891834309931611576166597131167037573137235512229759705495744721991865226626033025586027686821670437538154394903132388658834873114701263996458167109538889344609831841359034552888669378060486663572257719075167262920179829210735140502378211832289168225328189781624509127835849936361603145467436588903610149847338368515600409252763913862964900950390554196212016832310004516910935351872088628032879789701939416349911698069895196252289743024664445557178949821951906667874624698826516807966807073018397450214014176459647216710548376878680554851550982895833835370916094356394811235208769863023133410918785670060459027668301165339004854388455334788006859638469939028726321118743356201395517073407337958143495830372437448484602371222504156653420464554322605466306708229275152865500912071170564216439692461894113599546840418382661698428543844506930361338965323516307709313241599276997269690814232677276543202498325923473719947978337285014075758568739684650946572617346342895691913046047283932428124597093859207976729380216801267877004151679036603781056442600714089352224596420011138036545876416115147289301182809264487519258199510043444647735344749957214160824929425750185534126050805445816357787240429217787130753707847837129789629141245862417121807657223867820565605052780761269248898489872022127771831681656674597256211418564959755977329242507174720637256985618874711466444912426753858511176135192802550149765618280649327691927171182647319065736394626840286050073099328677045792314687438868254072241730623736115107038472903007082870873998729554913278595130771942437640547702301805964434924228930226233468666175199950729619350086399089255802432237531166797909431926145272751182574257784393081454069820432855190818623270144079726001337427275815439948197549268862230265473367075193972735437334123947358180722099361271963104344805500769500906092473560410668620171818595412479777497599664044631591809654760823792357575597896330357140396691471446877165930095039812291682074968589210458408393372068165055988774926405632859979607642649524867287854477543919055908791096660105168738949499603846440483677217083820410229506195870283194553249024715001083632411668380744792947820458215465301484361535936663015886238586530854020457742934626569214296803411790917537507520946075209796395034615646945664988651932320160919067082818932360800468912897961667614553322413246256422094506872599334715087532588540639675111037381822756570113897635196119761839116254286330719212441596273852371708228302400274570011172111993003938226857261243635585550383503806326096047604646055767946915561947583961986006244026125833283676319086020608944167078844727142311995552321683745455309452959026895252699305620359069892027766419682217230193999373375994449577363279324138381475937044492121471133778029811823617135938751761186420822794401289085706568719612413771916883788509846547147760869847304847280756422743451367577858200892615274984647201193784426407318452268178631215755886346939740751952603960969048269845708090227385284762434646602157862225071233965168772275243429587649929138846476646567818367490340227583389689656785424920671063735343575234070507514255606114480169194700117815014399895686286639467330303840380039500888289808414971482631945126207299589165209556090601014056952118086480883720309107922292301878051472596552909594546248082324141788531671303148691444700506232366283776674937621544345981425324252457599529976174576452807570977051160610100428668802523473711488582200684381473221080734629670650209736333997865344163250478764569217439078852830794008253484247056146027840729102794889443121913589102121405199254014005222399801903433852972545158963775949365033851317693912445673861447136858830986139340313002210463444914610729399647983794455330037613066777468211414020084790842998786502719401737908048154576247539230470381006179197494444477982954210323714863691909854605332204732988669152574047194801241454570873249809283418052435988282826334519046993133858403129167588010127345820871755736849305190569490793376686188595170151454817720371830086013916275691687336682882644948830180621131187935497514318776917007366417029077665746766925867500078283072188740219176987150989084832122391967153089747504348609877403710608548910329088618998943478943376249533958196203924548723280636883615787859420117547166728595846520251266139294054489538543188547849869240633138515064307119627176724507806574846970237525464833349831426400654122547073076642054914230642515820993492273224774773203630131909104564000611986255400976436503081135207274591942947397782063421850350234754469024634385635018574020004802597656281693456183155981897230448168871805979486013682964324980402498003711238112721606710335845052956026299618030475793904383455483957154608967150121301821894336340751971060670082860116374610127959376261402411729186510220037902290373033017697941681786221958829202927373336966201915238587593832264557576736417262011409070327955439791699495332608616093519506769003554300801421597433478713455168374878939415227010880539453012948821134259869594601216261169827009892241848448981666598233899266760560618198618495632170170352217078584818836394196782369350688532862169946508645174185045538691310842064125676644303381887958925877544452660788286339143873519582062228638090028332563230248614931313245315854499967566142437280004025884695995397508491669022253187832700624447091838384869572984738475931611171870242203240576183878332748213962472825527337335064688385823105089174727253060357798631136880117203461647261477508947487344092718217266053792337567745776979463305313688513767714320186059825445580467741590782811155644205586198408632024836568757225807811504318010789538731916865823457126977531027866615123353960775104894871276579140598823214136674321341346955976995149193445346750014015371356205588228361598046396038254995409852428065231720262058241044230172060451712621572651229715730273447097791528491141878291434428134596967295397869140951297784090277340534661430061405548723067146941668580905795008963717273414723457885656149262630040148678955006773449696465432860278207465355604391908150844654132235205624113163744674062957115722281883206867086164849672720632527554147468515440180822130838705001446885030155833338414775913997471954135383205192840649956101694090785904723297825713439646078926407784945395062646723037223953300241484226684291518944729391756981355419285095134555186294846329427215635336823236914789827361647371439322400830950233708668581239367301489666355448508752989902502405257014586615496667795393753990503019131308065684186361942112211525428807812329159481807182897140429343839919885929417697326605134421627375946483573685462927964492602938575365482857902787674262602501406974930023064800710181972822321350853642238088787221038474190271259724038373176089322111348729602959856091223216862176773839168953412296914233742867347708442641302404923361225517201523765312490105030611648764053845580674522580355942001016010267899147500772670778359643873031659913890775914131704471060245568807941913966081712214421198533638207352997767006106197573149325646007677246409067338361272806933381046394909439244164878908344243071122068415076783009762633447048662102851185475829888961217106253669699090638289016554995009101779010376462209045998477196616629285918603226051434903722589523905171447915672375571839576987818279693835701357932926653184523449439627880743792090263549192925877183777002664618007181051907509249001466353087963313317623021392924686635376674287572830570742617160443360988972534105737487514233484597565650020376365865271935137736856687080776813090339335947359941433686684444395228096011837348335982965526675688896115946077462051135866446187885500694254471317336626449694513844935960162001263873331005144172404302555060560764744632459628226828686658249189677429471567332494833114869642396848646195426098642092655493296213891874199592921541294032525845997249849157590555255789339223719964347947416994579103678573976232874783183876773856549438623907835272970852169991987815412710542810332309134538683281483583378183504586483191382827097405731065424352479730530629562102003636620064815496575475702135382921916427903302779102305510961273078053107034075972851044396501991749120917238629240875947331909192747429148950117653020403567090333559244208975431481667922312763492201657258841382431639302303224264861768606237086005002007448559380626412011961984654606862839348266539725650868767337667916697381434577834625870976408378521650460254451509399926373259122028773987974080774056882753440466682976490985289413389586743323471427597054917219072320636201953436444097277412672099041910732604953071829717172545765032526891531841803531846984031762192673872070875941334410975963200502495895201987032595545701068958288414105293807467138805576148476833513936334518431975285561995418171237709906845035523195007087380771397015122028207647186071171092281900758064864075188919126443006732911268792775720880019503419944152519997853867521127400012707636844160719473186465298552789238078516921508993502587358337829904993000928736807283669649374200885414116440310032072168135522089977308463753679812660400686465930270678013090006756427102300199791489361687407903620996025203346916458304663564838570755139085866885820579400529584945267492904183607020185539024464700723195078052171070873931481125084032916591081670577476676986538583755258560312510441404671434832882132562499109149558436025847594368941106809667406678053770667363428931796626936712251829122433784891854413741270493845702305250740968214816029159252405236443573546912652506099468995750975192953349946161366148686386415009030200560631395533411705573864113518736353206030679915453020871793805440312417283951691053011992186719883476310372263013131996379357929946634859159590152056057931159993791390964369925029021432776427811877024227122845362921746953131131845752455485268562408712009071867754199795196624938393528409617259851220010643607429285654561474286369686018770165118913266670113697478390223537858583727462550929701058697859065808477293303656387150203492033285065396933105460612412343468099873010728892513538183811125560985413980752492940807104687168786202203885558002285941808699505960357981289055424378027715168429109897629166355179899331452976728034987551013583222945807243550412622472523064600362198176067418023496846212255506648022019615265551881834059996143246139053016456782911554037572930273008785339674819473626527056435399501046779861904512920962026868523599178892272800945473707954471118125882692724510038097277713924642736417827700355806553585439440045424611886200240990404846228452806937329044520858869276028063021610403209251493662455569869083649390210679294268830538444672249009558293766694414024818384496855564110568095205922165254563949969565641959373745185172492596555427000876013752766300560058991460186543497752863701661776196761596499467028366463347907321503382717905742230573443811983670379320326626359295668594361621529419805762789979855885158529576089559995629171371893647500315416559634774093745427448049693073167559232462387095410533179002172473087907979945293042731823869769164878835175625181465484214825065686131403935394007844272687723732960732474603906756310532099001833425816378020705312003371803825413555589390544587733946421120207892308769956414760068152391724573148908020046952724441177663437625756934120547496706614590942731693675123703155924053956742852293775222711772257208621904222939751920104062705119079627384864386647884556132612727266453256543211631033627343644871530966264758757229577968584928953922343014813103176268593612598196088540552106106938644703063196340471220134816292101209842642042509574536693472531558088234264991896464375494823066747254653541035555436923247910411229203405830346536672843002982862157505705720992675596844065793664436709848436017086664532891827685728655804080730281302016179449861624721791480549859904290240007133005939459238254159753538660828774455992061404861023601400806359669898557363806041054894013596231077685179979611762577729379980266638341165453175718680684021003013594147529849227476802574814898361234673636225525526003896825243644015478819461163160311945285792390337162611691234508498316990133970405377657856588356336954003546905469196551478752410837144775901441079049544526704568956297598587648218361160450005614778579090534312247283692301823588783965535144322596809466977318149873216778221752876057905220904351655606668375282886810291252670149984805511945363229322016615508055201292804372270107506697960485176098613768473528669979576582988570504489899159903665217607562587587241939007285398748661354384075206476283537716221008557793398163734762508429559972211392006860395628419296304297975039230112361904117986337280804062623952603322426389438246712267403353298743443165253640463513591252054331999979807887732716106462877954808153402813396444165091786035732475328289688033735680712950122083223723540848155523761746776340911326784344192381571883959966224812782046489076169878950850230098914131340525585506085597447277000967513336897419796017503194586515950563651890377923121435760653283102361349138728798889921312882649159459948678906660268238674701117488565276473534947436104080981247827085421986763556741639908216142404756043197936795407313629003323277515691614743448268850599942622695834787396430925545511217020988182468823449798090498255062243409148968601517359834254656286751250832788823345454511408242904150875771667040518776317761399318937690761328056875067208176828841646679041692886642004803609261341115119949846400077987853496795455314020963417631042099114898915654356292722769531124343299872175829940207799623083447155572680508296545649089735231805356089454443507615962025707710039363622917857425669543604836584012592380012078900058601623652290326334057904129339749949577842914147382305366562487230618465021889281009093047514091238037188559106788690941475397633440510063715293113924297339841129886912787261723096260305977489846905847253088637052252764671045698355364373376352441469610691862353979957006218134304051274326994868145902462773576035437347122963762903242271098315075189218385932148631071349272767620100495572387021680784393814760714993449714957384189785236654147206110592067995779160536890899319251578666242530777658807047121905460840468123570945081438015307019376125734429743687810219470910481358012490546294896888428075418378230447861416081716499834150318000885739929988835060153909390870156307298045658431355881263138221561987209801091569818312915976231482706567051390977786767295217490262267372037884957760466036465635105211269172885624099190376172440202717386677805070765419789570478884147744010941530259931972734889570397477524659815444798104718813501654611750145032466099150510344741290732860214777846698557997503550874151986296074252913326319783907209197992191082012425496765014716373346703336744812641634971798362641036372572415576703456507956496723604969531157653020398245820323828359031837078554457681506658181002851716590940482998183084758701434198453035289113134155961292777402158240484099731119142283309423330967538477793055755861337492958400582030828790690377296656623653910420189166121255378119270937326501371008262972910137151681691670018161621337908943340798513025584318932465198213514174204382857599624021054403616396825407891934760485399471633074669651404910690058907449848934623730265934896099107651904275732304992534578129794801064093689865224950956749617681938318119196048185078767766120879711163043966139825392121929375649334613345172868662980458852200589157324528495825468928744463942391985060918127100864909687311489195949563509697858177470422668403169723750426056418724945049055153447181205459430426415246013684605486329200869317175606311942063043033700468233797860739265041787873759543853860096499295646251617349262989235336662645130610526560180812884718899721390663354446983435621057948165879684594550675692438224654337399797482815696102841410562808878478717490680586255962173553078335853789056059517443375712605284497464717006797210812777797306077770194215070069280448806633447577363281465309652176743229513127272133985423145767471659319905607373853256697378149406408207110034994150508925957447549650654798124608026946960413204872899793415518918621987548263197280771283398052293665464892970808760928577512780286774484151684077846125580983483629251004432332407016423120467587255564553767996759711141118556397672303544135969960216247227626308893637747310329061482764607480759218783179108762966249550584703039858679582992771723808010938860582572017237855557998288627793755546458966985100464221888444521565782620294007273420349040502063428665681601451652743735228318620115144444481263601948650219483583375219071313522177706763540245928268317660425272385443367299118193248165481109151140788959806570517946950521772624146157506423957902620883739169077877859161223731452063626980010904327943145728982007995134539758957393055241798676405619584720684562331460244500709297948852987985134399512040311303300694393638169595780684889640923690064306701915617519852976222648186256101572703466239124398825354129354820390746928030040739795128235189765009153434648866879372435034933896978379121272097967298196487957039434019068797681366094342586872357560989776773934426847411158196464864280988435284882444215712512128589969297934401854578804631720205254892658984289504580077453478675985943936544388820277852872281982373192717486117871165414012737890246294931017019272949770717903308849446887111853439838817919848336784930261088559486421008372147761898763312734608186433315172274112002567641648051960015885200673531063174836986955860261126168835309054735299801366373423763163739549724171458125603875048875253894348040057778338013731480485597926979317564152196642653745297481202879406630094820404442161757465401813211897791637388663491308093325306004837722869414713629180682516289573927258653065942927725296796973364545030658972328368985632482324644048154896365151116802578006376932126295021572996006525221089603929280769892541784156613850282956032129297365625711693103804444983721469691135505546960473906240192474381412704965615942222978240828957883983289574117881233894680541439854565418837725600307091009132744106160259733105748001018515524258776864226145012510089042380301042562640733739627234420242096163916604796794135457211527946859047303539158966716655141630075736898335210708915268803391936175775471656903727927319077299498494304727861657568443049131015895767629973109221182143363627747553330802106722373191434127620578100020112644475087391361717737962915285767218956061841151898614906210461532760355421281473764599867317827631750796672140865888179155509920971281702192952252541692255940726028284312707931530156791487060353793704382480689760198188715158724360431776013466648173811340181736842321261673666834703652338487062398987035320415818433446440838104804664225091691655245938176063611830647863220381762184752154316120541874718560492656861835404507895285810415909808126562114207174040145784714817079533405547680363192189227860598940916999344067548899388093368984504548521676754103306955015907229196424688282076919385270209548049995133023362514812323825737838904081508221648210860646489451623833893831045949607086238965827289849130541721566642088448779045961904442218382095266083601875678236656380235413933134168747743541216658951478510401153055076856704149976933834348310719069547498623950014369408060484959524235947958603750485921201465650347289793010206687226574566305568352981839223203533443698551103909862667015416780880974407545087974039049788954636543518282799214817219386228172992942049273928362664537114653888925305886566219553372684084118947139856821951161901359346196872008612141437239467911388515893484904266643825040237794965042743917418683964874136660786192224500578212568950540965698055121685290343553976716354126914054185843782917156016102808040231823122458956212972055496895524337381108474843714618327703265528954093042334473940628567284656431205255665040823206884461867896520700437997122618404279287580052113161162692979119282551458470937254543151137772119712987203300016539407188628883221685864961134626812004868714774326218299145122125756218228588866118546424145864392973242731181452648989927803229805231464918747392034350071154923460996046486839971732034817210788149237821429198293220528489768672341106224155016600879693475106614114323564231047858538396874998647056370121518002107461945155655922329869493943580079874971326686853929246139218486804266998048051146751028101732860728612130540073137613563645578821975409675839579101992369339770381402206675025547612622293898706452195307048045964533433797861771381863171900364420751944793343135687155510680002143980698453729990548717250349322601508414508597040762129416677149725554032311931995893097952737793933300065917595068982249008286004735685412336679939658880743067096717663742217893131795399837203379594747967055575044370805967007805062247793392893673833434161296214809269224565521700529091980527140190316639598764650065959318991705753217787592123210689073192889056789895867237442187464815569212493066288361234864288297940615510163809295034553445373340923268011230978126131119738715180663859423500358074341721902716280250661138583353269844964262638629869102419162054511895057127430146579059111127502261355168737435097474797873322389032721685429404127386598665753296369119938719100573311309321196589341316532204782811962149380805962762348580872823463802731698018216265528217612288771198550255023851245251609896049105595588920239728867942949884540467713082978266295805638015891654983205844600451571374817465623963879340688044691164097606457658542049025108545232208350742030424207360534027626057624978593497767374092923242825514724505195966927172405748115921958756996074096035182792867095792670988659082809840530751815468746504060608489733918063071352764048081183784803203430553796192823299306422324387082578366462162105353932283261474055485982159739452877507993793028285832554505380753781355320251976777154952377732190602087891613358572340426672792858778112178537353385780944122153703136048141346202333295667384025423725037589633281767039361024400645281337164262716956930576302108554463788278524276603121854328746801359485108223568230039464844112619503007773178397053035701619928445549536466132586064813451115524278234550692410216277590604636692984061889834574944449279424362082590712778171684161259993337372897753281183164680727411580357865435622186343996956933361552562718666290495567750180991332187461715488339560582905255241023000911503490702671409636355078296172563442708766057721355230259125864695698536821421161050546120258129060022526814676212682293332509270499065109783675485234004189543694556090039955904735662146830773070712475142294840791025803057212924028958839793825286723188792030882522336078303279298503313281611508433248635558830200913533969439964070376414476645313120432488010678482051390245291075269670730064774031160640729756562914958838812045101452875560611740844835486483000099812881883643559286655129506752154404081473051339464139847821485819906064876910316749828521954015668068563862531368675359469320230258968022507129014039828289510396460278723176565417157021722551251969683125129770046098981137329363292085051460416148325754843134899842818732501072292818929471531255848670427030145699427480356020416150651445438201473660583058045414768340828557965363837997935225274489283995689788475105812640834037412193805896877974757722704163183477866663077640026393149950040481289312856638202651462471411621982953397995346145933510630929812983416341940756407852516220710647696877415604146035786203112779853900667327806632653065919595113004583070165239537281355106314035069054446533666621737287689290648509655280235199505640480033376630314921112368525493407684860770543533172864056338352726705103534482303087532953915197215754039093988098020750011855665754862930521097210840837386502214853570359228125335798295073975915855616859739511492045046464702108973983386276435527008733393869463243298631390655096449719894820485021463571651413793357322196473297703536918286259211910778820887066868731572863508527232994741738849988478683056232289748492672218150164624684591622197384923474617146332873500261033527762257188582085824795972583379533257590743818395570689552520476319812174446899775672732521391161556259243276720840029454978705234880589600596795925307017540486955906302691503004658449874097530403291301112296209161625779522128733065730705584400614476787431035401039208832990850887030589447239976189366604807126113407229225295745040559714737277898838124195461724085960394124720452226154603491114733971152322984618672242549167771951640244958874084456778667074241760703015559620905694813514811681497201688657390608543232861223226887057544349946870590246398374509623849599463254197838875007936450572759869036309403004930486491806920483053610224621474044763430046430944337702538199580015509111807001640475079739829519921232130662664306925693750615273541274594537331544393134208905494142356279069674568727712635866327929423119861999195746400823006900323240136105862474736425529253063379104960811221553223321581207759269526085843409291645622105147788725271798859814226948953614492913698584648797005774491561040492154508210285134250844067963125764681698645765292735468351697866964920392771277919069447941902755672005808469719907965488180836432352175702142982284428679910842582200433683163902263091194177022005113030178696070679936919403486578901472787522105169240156440029039631003265995283823096873110134681976278221649043762358315444292334760779288235424050710577748275782487714973494340443501668988058705437628191827990630138221615004408914830268519029718821067859761694424859642449029563350931323495982242121678865631575567245739573827479278696923637094849388988892767109671850512825697613454676744776195896448129535626475410427715060001436129546604885193489233397358511968689308691281440295419305633049780849279415199055370330937256156239020951007275128561634454293977178866271853171497776957279755851638166360235333550890285393485745077758772161967692089803285714232704719061879225916755837763586957077874692425992677832011758154944136677832390175481428654631802985115164619785618436555829482208890305571695287262567386752739379051545125938180026202988893528030214798354408698806614848896524371239915934876364456124098744122673908119926651753253803619034685594718718378536185145042430101225144677636073839890368779549573279354099744961828343913973451728006474876960861795507122129584724285448841997887264283998263190452194836110727296116335902491849908610544037223469409000645315279454237567789727596674744125117668086787781067165671949244687077490760265872913374304951509207111558518028610473750701915877287097269095657047585637736044060518703837584720864839523829243836514068485353627521152684282845631343492089931383263128902577089951366223303200700379868171463359895929097326023998623482680653766758208086576405912001216943006525637697516396444104926641807917961517969185686444355110992874342206539852503908724324184609119950844758887887189979333197900757661000703202110908313578191897870125290994688438120945064815486480367802888542545356291642365296010520560047569777690640947340908171889864872283724712733379437166459681080323173265414004461909602875568640793839456302904497597927649447051698394648833618345406521847138454575339177373786201466833589489006990290971403684069780457938996290583203246411118112966732940743328856252716550439399237894066683082153614507217713580381115516480955191253706341205801151536550612750954419722708750397689717283586479989337065237478953250894975151699684741605745628945689129143257683288268905920047383544038594915355778679900216749641723701779422855962825833568698305760512855811299500917947445055253636377319263040295870745737382688640741838230947383437474249106922217246081659209817667972013943326862754753952595925128199870097055111553111717146340472546618480957101834615609754464809967600880260890049377616135380959754007506074530017804962802947552185173648635747821362396775311405487874007179737688231890763103442454032707061051319824851427701996851952286298746061318688668069695947035114996731657130027494373538427303581828712559080657797680940025862637599532973844411251916366858766452949568643971168405455794312362463647368142063289484723473445537768782919226012701872260781773474051971987692730319973082494937737776168293906773817621640317456314658335954680310215246742909470352450317157939435171929165603352021782132246124602681684280976440925851041851941205483503704756192295530988471812202469453389353913215221899196540684524946272923353048882569848017575407841457101657047372150972164216973551332625247117518438304860099565056569519885044077036546497492110417500024628469839795421997371026504489252919863850064641126338091148403960060380268298791639529253509341724266943326017319136305178010623961844813130082110040842566900459051534964892523054156968082658113276062454549796815936914585676279588788815540873321201554869996467030424066481918526435943987669118851231475852230242445648446414776093692739149323131850531365302096669590383543468013489391651929261066725994359522369168005913223365581923094818327183172052815054568103318279804914333837570004975326777687269882162437965890205907472161056149782417714346933614631037358286743509139219379613712129457770797536036023427367742739456096024729774189139114641406407978741787495652344433938664909472660811881235184238077766111486705144115210451877904142729967032729591032753716313104498810288820601041509046652097494502755382604095001414889933062351532345704221405890108207056550370606960177519202303956291818748702735864681314563152499829906988861494553398082146475167547925248789993582264489923389766761531368146539152341964417310633195424911943368185113381884568879615714162277119475931352218031050479005178271141890489558521124004874668554756938679424617706993809730287312016169460570822991794315591227173526863205863092038009974521115689159825492332390399470020471552669826038622044712305608713083320642594552550113081352374475392572994735502513901101819311659086617286200596594713751256866915006263136186714021041637836227419336064377620450054800124132084995765144936444720930632850082849047071121752998936954516238111407052685608396473501766107636736427552723985262274552743040118995891970165970305953492138500700179520400529673440670313354462174828213680841575449764894543761063987915559151065916895473104194744569227694126636865390284659054552130236310689018094649496384413247791311266165791352595392726249859386805684537681894842783156693824981921169668530140788904014684729490659903413328026486674302375911455040114933712373939489365350468402962303704980063498205887824258727505898552473914809443707403638511572741110435639893027882969812869839770424098797852637921362571024957078032475207972259567315896923592025026395753541324418273367029806395040875748052845289702118541076437424732317501992711273032918787352353313585117760189574279339249812198898409776860231007854560353864372810813665701391939981839327454760287270170992506094964522030657791686072071810501963597698484317689137309606509093574233325326135032018113981663880911472479612181044501107828206351040890254114997761608395606426398072838857478029157711172611794331778910356707650343444605691987168550735913632111347870918383003648877980857081299630350548016437655919117444432483291219156970411009752978126865834638096138509942586032517899999131565519168365822467139040296269677833566033525680521648106175333119290375060691712775702364022304712202193231106149742784261664988255487244655600929225990372860567831370428599324064534491179181916169300109645898692439873549567090608343804817812473050927179841265085667199719341665182499131216305529058579796655714803437457042617532512805440527615301128166142750873413891120136449033466271778926212190147390826719991334773516141291870367877711760870225305993837884672952202883639263291658510367103367168387858328133838864497627032591988804736022811090561089709636259595078215163680855273887171508755081698426257850531379354997245570916352024415343811342604247845989530516834672313060439691524904737220534433481595525663537777543077557592389350996449380409718192301285797099659587454235211742259640507488205532575007852420340314000468643136301914156223315078471701105794784134640643356688041434105375745838008492024161114735927930192895722797440040953929614491791261789045048434364463658730204700006047797591353232136342542847941682826115296093669467860819378701496649619474640270852262946763162689495160066872723676089477688286423267295936047820287047718574604959873901868696829866610503186605930881551424360583337153365229901077526602057933375226162423344491363444817817684088237265517207743644173475699456299711907691349121408486273845713082509191055778551808794482671344544320485014963126383445638322523768887378704475350397681653518688910141186763994548800085647535179272218146104808592872418069379643497431211237632438845642859154727881467113462191247873523790595420983764593819660908375054624691698961144228302420156806214849538354101045117158256952713982741024803316991451168283452447192600281126417867208560800517587047312720102417935845278672202522379121395221907251168105920988395867068037109401540857966764149024968941938977120530001517616206756675537202630207478585826926829396529548922936599537003241267920110848086995020265158240692148804706100552304883032009156343983288456367501709466639018460228793950276653059022617985975586498023346182643466545817049716310694820232531571230915474594606860421077324675249978561472554565537980084454413441675427276857871137996011114467133208493427960525987750692142040385138629141640412278316393985566887707224002719236787675729848350606303009389290019120866486723019233819015896010905846361876824315009620956421791177059862860918608188827566305609501830746402075944330289440040193417103351922655048174200961278063026036530090500756013467618729455091795133825009637153114162774550801265947618845557812973318652074127420794955855453595781576738970995408464889950016806803051280815538255977273560925445612019167675332043465070019581717604427046699657571790316544687776319606640103373535102003525491763699688507974476365846918388308765088875498292325501157570419276127187543500356964615986012735878723952551639327759252682471710747996543160394285186708392753333223117827900727424134177226711457390373004045163249080282735118949846322000233715871182501391032605328396249474036530864139640780715728095825248526083408806142538028497932302910239771754289502806672354132947673162626454154607681066886593287679243855049160606391792272096111810579236300181551088920031899414859126924904411391533954569746957411270999373494997441025872772826138787002079688627859695946421589639987648559216179138556835081445159292222380932085472750560768541459285223528671666155871846264124126156821565636737929696125908653114237248270032998540166954373386032698425692562459148667879773294368729663551585119155023812082740250418141618326775466790123003593820188586765781041192487514768101168137993719885845810559651554833287623673771539026156186696196775676671620348487955116857827737568750256471796036260277508881852248941396535783660296797530017379517014542042381398367475333662983834645081845381440697275749537514780791999584971284637226917553050217330960868155602116338777432133627847340160867329568028045810887607355962161348005526503360336874886165992777988749626336596326735618748750222765345923294850675977297166627662832852635003502043786809193811289982009934181130091806403547320973609096553655309346414481946224145790530682441856874085524720836717774002413493962744767147982582836808897165709837847135446247157037194113914734831595529835598163974408119998286092990501845961123049141320299159260375813531489375448817182155075921676250322045542879816464847057302008568924783882214290132290996818002719950152981561149741779380927023239586934446705870003443377903911678467813203968747394913954138643664635496226478726162277657507921955668478981243208393604549436054168139281078736261888289987663331617527624258358712348278599847844617049383780935760849080270564762239644436253507211345651560646445999063997642522842085588978911007445503958878296304820313663062132695446253653687177683876307081447496464837368797601339710799299249024358281902468317402862889349858951019070717420437724762426572557006358814515670723172497795180944642620289070723350220004185513443169991305534812434672870167469220564790792044093738644560919484509086395182841587110289612329889346610798014180558829766283550008074712571708087024374335272734934372523499475028699407430449373446277167666231816206574215406957971469711670299746397344001064976596634349429530444065712662040029898117690944869035683860001091720346101833250330187897876823743686034619475336101394292631042198189429977209350593712695057299041132030935160693028406127526439320669483997393961961606269315533101625501660845983858262977275436941553330374298787349744378511971542176586381061678197274873125337135788669637728091796673298717251663481580997932428839231487259750187142888151723578147383716241608221700558785959681948277523537375339769101100178347375078709203896214460225680324388003011879106399575195690921837902368576633392701277115272317134189801406721929742712221725940152640042176549070275666573984335250422229543749794967578422856068919647709430372294953691387537112027247752255936695526372589250646834030558515148120978921277944672269456352325121381086106043391276081609883565151385307713573967510595085855148567416931064195318762370352817331424522131757436452730539410770978585859318978411793718106768524238457066677312998782570935992506255971187474833461210517559959954725774146080643055927273452355271034515291366190285019550479818053450738987505565365011160344453957006865525112792852054510514116798451388201755208267237236717341135761464330552231163675724767438694872945940110692455676691314820814543704341714880657087853354129348129490309804453116672777824097200407666669004725249007698397284550311400938571929090836835653768063915416012317836823257171567165285851366856994388362684955143819009597765651511902340660034296804343527092075455621289437523267471386738820881820490524347919754999484767480610126501190113883524826116123569033624602770716326488520220459022360337355269540770242287736101203147327094648028349111261800555936290656873609322042873721075831784265243215823372659462518980733105658403799950766140388135274948947358612204318296612167320179296950539801019547554233225563713940933953935701332330545711512094451676407240010249579890080780647577500916071736893764613212664969760568338983314922051025204554281259525104762273842662850375906236984281691247930742471807224077675684093542787412979623675654999587305010119734960916876541896777832375905988636862354821551932048319032511221131521476322939204481126009101243947188784392437820570860470308797110040133968136687013762540623529981210775150461444275890576176495600267903145005795913806934803575424593778109275723926190479111007469070739676494382601372623032570311366717139641707035044922619968592133397276448686918387351324563834569952392714155381488754476268593676558734504060713459814963617505541052686731979468243846940785024362367392421290527854792997444816096651392842334300099831690993180664934750074195053147681307290079822513864068521748698167467929066494233931222656593032508606353929499952294214897090927696832607537226817612217960382300246357846589070974952204662658093611223917233152645768164117698779691248851079740515663439800787283302582213761546104863114744933969830906547971374995754722248001803803589653493723969629840554521960766443976974421586716565700684603642272542219376844778566283948334122492963752786896522537843323847103421002154152606754811350731566688321723742300451462968348198909581143367879696941384429714267899440978401768086834016458175160322398142952766314111304655653572492897153608834361978403935943603108285110382840040207012275428634404884080562072395810106519950343363529934159472995335921571650771486149040954086725962814275489426492145714006866115715238839904090343842838194218478891058658386728199559509900927821273673277181765844777554503659567029017435053725550030574544585504318085757993683208027858317554753070905842421702871952829725057105828990865325237576150760270296295983796699337995387450709848421373011453010274130375308541594889424575126937708391458646895146983892361901197349730186700509048074867886450165336771713160671906061533257441613587893499607824963086490661630207411239480523209602001268402839555891080844598052065119165351181322532526055970899398666476504096612004582780473174012023208246497205111279781628557599415026652396318186205894015498632587516696122887737422099757636152130405717217560293311723453522108078954266019474652573277560007729299882393126271941732567920990385019538450109298474819694157969178936643033603852913939664248986169821692392514244722131049132844397454270354466103751736147254549807479284305937230813438171381685618875709561954927675463814596005827490572042920132922828015018467534366299748768253493078207727641894771807580435443717621578468845566621990066175840076475753788364159382298669792533158369252463973626805058452323501113530483629287918534816132350792487483710806292875648649829996776052290914143230195128831023077641383911003099780051122805124923675936158074740772925490207094562607533839946030193620806905046982316232685397985084321212788190705571661625410735084213437780541231233631093707886376717224788469656842539894880067135916122219202661702020997095509125145335343113748209430051362743487446733627795857991473433088533317471407534316509797370506515002126245784911799813420358016783164980115983007823591699471645166429498955272927867880351631339529165998416014958960712522595602358679739552953111494785199324349128392965679284507417432259643722362914252265283326986094626076885352571723902666084181476340421165020372062569571659826378796351608550683173595084441156237966420157650870021562577728686739514736646416515045053216930050717340633440586011522400326154688889648209504128039357609361138318907195487382241485509303907080440958686948360512786632059690388661147261649652100599959868370926134199571561837679348633021992810093918298786854709172224067788203256081777858680645546718796049323982223152961952918009499285404249437994661154672886491530532893672617725015029403187214165765486772969966753874843960694890014370721769533582724187159676432401910409628375639334145898672730036998149653940769416297777162116870357433606463652789412883500717046987835706862162615216402880301680342922582553310412858682514437728594883660707248308755082342580536174257414922195847892922946115964580569354534110977105410238578765484674778929695417966333021440328108945545826123682552215295755586751502223472734946970520315340293225052734549589804940310375373187527219768907554567621689208819380625418982952444222711085080146511532294818620368981765929401933001144305362003771284786299091565806058411528839211291131430855096855244675260521837871751627960629668871865516731274460071097272066867483145020399819166851432763735682218768514597718767613416256145830638714457586531541681049049113901392248014063765903764138739117370564273485567158156964110695982864819669806060585446619857925411265742926094664484241782889424240399671157656310112211122434315014012134085137296833468952106612770823767557487776383573777879579446472630661028389085193290761669655012050458652341504428283975418079273845796572469836080128675530548419045724128586998657896073445777443216906920459641252060858255503953117465552751807067013202155604106626489830580973463686698978248520899878160207793935364423538292013519108096440147797822633839815430091949751285572038589960313641367366192381824054078654390059140563791437565415197452284094499028552702496010287713698997878903212184572194024806841281210935276619061658513934004978359279751550455179272972019126614413672878144158731603555910171740627020771633348532861553433734096168811581834999582318980910965076115045754201708718173186907073993527527553703956256679063574103321338036484565670758650283341558899572514751705837774236227867486952117192567034957685390723381005348950385152660478545171251182265344308982329992888652021727165494518589462218806303089070735872058723401932583053064312974596631563970681681154465119002565664490406995416760325137447812880267090980906224400403728053132295620397429675804089913210969710850505976649714376884081740923627791206487427169894425335125032409941007341776522834493142292966233562679479995298724389087037295722889811942039653303194555024919271191827455551099558387719728198692171600183896199624538432143591963096331188383055459181448964553572328342397841744192079301957200721168035549152625610523216524519152011446744570711794265329588555004381995084795802842963189890203066480907709358267822050477586422907810148879600630790095349378189346207963307060687639140638582699217036490083316087736730303779049239030863106700387245861275872406534638990161642673992879068672051229367164349110115300851293443900859829844252949310044029343214003175239051159846079294876256331726371963424311909766121725276872912038985077729982440735627734392146955560333703602391139389482567294792034516818165206832336480246692305732231948597934131876401251704199380683487014736032257813439053872482907772606166367325911394228893999723626309025184929651733181425634048203023271472191487880224107547708298440845171386076802642813067467456085683420127023637598888173987927350206498298047991003736374528168144942286390039450814145685973311820652603303698778010156468260728906463142205430573772835408792165560121334993109806380328518139168912972757325620577266313731241035251818517204806191855590805804459069150644868778107062427829190304261779292401880955259958423905293087930704666317287771292681887427383211196630346668874659274912834513819067902297947130696452231679675829984195112856318501620568932297639667353861881212039117410839509661734900032171458438889064978431630330544706130921810793357386330870762660381374631996659144881709072262182055951149909737783075752641007484868583654024898627069923354262346911010922522625099107011260328136108716113752028533989187456628276512229928194671064371705140263590764734462693362142196108758195469497163116436173739392079879981873281932696579101113366929644689255672761152308572930806538992071635708190550683127660558662794925299765194300091439537408349556659281679114718104892620711653606604920593834279797441743402777363632255651259203444572975215780090378204114821992164063482335403788653484290039289682424844728571311546125773173592096818584736458448900220619809231342999805440528037675248700807730819171163268313890881980241046087950926253913700406137292045016896191413365770502491991196948712982700638603539547461623130106999070842186517738745320962034153711308316849789727487439624805305219966251809271131135151117500260327446101595334517371335356554656500120163708892025181527029455244023768488520740637458966787272533301309483905799905087408686077336565825438594904460312143877001017006711039423520578429264332157696814669849829320279662619171875401580665363412629365036514818138563845509406662617715398886929158952022610005272932840233588905959475855704930016367813922973435174679137542383062922871021580674574284667048095777547320263154886593377818299059163047464194237498868713972373240811207651932134173308803905183572086484915875313059266374307927407924128697191235364166880295789534820264538857836754890031460161164069972340473804064644489324206807187716772304730363412052998202772976166843703419060876291892984352231900655445022077085707385993331717954847448668857357579365448705364510563367916252366452749040126628889999359496919798506864204207835781690241536048603564366933429117188290957414138365265790843721899236177983199150764630384733748612702046795692455980378374911840569333717089228875390737184061788868643120283780905947410570501320702680327986100107437400361793227104124912181171849025044614902538493904525011645941613138382499955365294754147445910034930105857125673335546667236997632743377634574243842978868972467233345969592799433644947039447889777262295596411650941543222615286882524592529538197511049383585267541588184396994167944093211727540651323278008184657639460971554832048273936104550666005518183706312371367724213065106760029579782548969439504908668581341077348774078420448660179571176902697163259868795116107434510199339632741319363573269898426550877784204797689419004103016541917778942285411361599374035353769969604722689599071139634623696584565513713865467875539643665095809785588081231707632839010536461855748707274630754882393848150446017467062586028721030806686194985797396269233007251319315798407268457453431655018962359229658116832459323895586175789356886122102716107177736973748256274238622796334342077376988871818627216138938782779867278128748082795893997806266085183432146986550445020314857314405799617054493756590043499012349464254515909962539218243151529408696108901665908175462387719234684475061395952948879441918150741352469888045658668846064828448046221081238147175539291628705878524384621366139255555626096147313500795503571641832122702030223873161063111266545041278859109984962367246412338591161122147819584473400496909105389469662503781090049881949717797682738776251154421795158567223036855088284747307350291798450740070384191048128275858695578644758368591813699150756579988295434075056425670033510188874077232265656411173764065541093087244534481654657740918581495928061604923327024804518454077784700265517830952754851697012613161017417261366409501250895246513136115811730543036629724481588704673530935551825678692809609728016206305209739693438599397977948901926051921828260436170977145195764378047668695858559875094736401737921039423170952318700634439595743562547180470751296625036616113600015299234023418950060517182617283662891140744587936480562494956261584407026942446875585124086316436031193239827677917070187534206585757103005605661735437006836137836918289011403788528847984345553333264831690011025831152421292014263697743383947765301663185692846087455933454920536369560774238296659689836979990929163978677214791318244190780734277731524076252178337021946697622007993672938445221632123464167487858962247846012315500610184072663356587847342358210526714797330864960537484766893348921735275738666469777860184969330124105211308614606726764095898048222560264962598707383674038183557259313692734144727913605979813529868802592867361415350014919310397304797515524838370706256003377479061322103983146089682903729262915094958636805108445686130764448008625518791264670421358743743666733747152339364207906669891422048727867272776505988737991248812385957527635557283113633801342886061573637056344821863913795045645655092784913040346959359464607794132205968132107902210279690813375042598792651807859164077557589040919617430546907617432739347696648362264875048696216285873415900563948252606723117537233532036508858800623340510012613255945599971680909745751119439912165465234505269922397628183660763437403556598316010547679591124423150241062349765928206717796737760762799922387073550799782702967019555265853096222319820706627599417626364057548290357088212642714669025064939830775207913028965688355118772616768704037213906561176614702260736632436506773411381173056030445580871426526987234205244046602424645892295242823652774223648035957846470497956801653623976959124973738612216023412174077294513404161768383544728808247317742761383803541742631563686529091045738917819649695047092634604117572153797888791799823614414744914022289204376183186374631935152715102876284958433019387941386705690334586581491510924009757286119731367425584964386242730809339864436502362005288840797324605442723756004155871121675896712325461249027809821485727064560516047226559414990428341571734197940850455722888528626462244691791688479679497587681085612659836299831911036190990572430193490463642793548067410737296916139323499966161353071971616574206550519674291530924123828558874677319970428869304325021137244092968240452450076473124878516885028772538531047417069133673224554906945567142900697207335862473005426364502638571279244098874607036169455691235505298514927684489065694439591064943475824977860386462553505384851078323908339767339259222091081163988951558587556552934873660812351884856562110687751033060012160937940555698740378618010954397967357823890449085049682496602380238372027069175543573154336341907304550939110987612818611651855216182346441077432160939733832808264582723906630293054056888976130216419492944726278648877072726301010144577903913387426520399388422026172479968447024977738009066188655880646010688598691495624180456399404017371544059791569155422691986593613792934307107051953590029694337122657304597928715924487351186666532604631583488883171362399713304404069775262073929156985292049417750747634738126276671097129246179978832524894924763164350845891111842329259110175504028513328872332925919768082668280110904387334244002581727320952306789301160606148087642669349290515389344133413260576987435587515807078551792077540023074546994938029883546274508622622027739054153022613363891116479126462020444490439625445731935972927856508418030135602678469859874693680486058550951178189120554964795656632568727746607822925838745299177383685862893982957748531086717162422654281546196839626656758366001455639480622880172838930387796023939047677288651112518877181632628843184047412752091065011442663001651472300114357763468707886866503112087432397675707728137527106725005803857693179906937314454181219031132404524867938462961033472645111124931885689990737062900154061646103252809001276122321246476139256765961992013383789705036584486637193552861429139508126078831202686157282018115013848636772035833122107536715443916601836678588213961317519371120827877911413546719254378465496157818790450209634560389949059310140895407535824341353746275512730816961939833165092035403762938274611702567000603778764076692806061770331620348224454480346073114529457977342959656235288545470874085556877270873424127944063518847085971485489788805588994917981329271472520156063071949501722549494422320570897176359954991684432462687613520280342449789013583100985843836662300316809023597695709126688759366433327534001957673122233231782628991486469492278761174483161706644963759729458730775000699651419940069214590538429580557407839005150326490165533769958651746081889307305378973307236586501695313481645418052901906639452351710607729588593500895992676130937737569555512477197540348065137047659278181816395002550175356594274110055302179967067659922325007549011426679994924910226407221015911442084369488316086818518551005451362679632472095665011034592127015487066101723079441096287026968446258402754854151210127124234077069007166977885756242009178802834632540067090208769178106626303957007560971734409890684923945409576829409594471475589423807337398389897086021799156644012612729767801901692019724186840655389903909598212005622687292571797867078682145773380969374984652653760506449914339562475906972758633021235663683427168879243633128342135350975476524326433767770975542933982660017909601089270137331327437294533837246121841171599243145043682511392009013993190404052773257078930430135967955649707808189746390910624420884854150635718229173736751335489080408801432680325306785840381477153599884967605560084729453389415151560716419080524471218998567298038321767321905051882522705268261085453277177274273745908467183496678390283084297791394421967213023309232808335320689281705583545579508466596158738802688531049964156508537691391036311072881412482261519893073790503176703143965163118512120114909362424044812325497293554395937622062837270095448004041631543604056719099503238221090361596292389136532755140581280765161968786770602910822024378241382436496138524601127180967059488081094002751687956041526689231581460949212978208421896777284543414851810852934195859018975119668062270389316772674395345438955532967732580738370507464840583443453705829637124292454773760899922888909937644856811689554775550288379692474564769828099435104020814862049633121223394561608507156801082478145692626890725824619290905827630257717120984065543716466953202187740409141730968512295807234251901212397729458954781314336919965283482836533196179607197274028915982132468204211044153934780961652798473486777663672190491862498837901527129428487186292675836399421898009994596961278882080002146387246527385906353846501683146360080605005503607412352245262680523506528695857514332882838402842848764974752098285283491248808139105489669529014628783301528714147980880049921244012616803552694575580344158610177016306845755747151575678690908310291862092213228783660496898518077587616941617465023819998551903337230289814577700158852325970120599850332725428928928063607342597523752761808877875617589740675988404524401313082844650003170366970074314009761410264131962904885853286266965236253283931455514771621862588182950204083019467141739225144982283788186264763192956826736475196161262577724788536694650846187037750370948215886820457545641002364693022336702739068771701722433397029273818271212493588541817010757364266481881181475088495804761281316206367914518168930449599109154301809491693702058869816095228429801323622750005410085936404968679585249836622106866255869277526379998874426634849987769289620571516530305631712582857636904428503320666794203088197923605809378874634773821086481689419396270057008924794506761880401613733723984423025549783609914686366220770322245060306243831587588688623841619708110787088154240141141745603479119057249710007852990581545298747786268092608443296062422111076892542655827522102474529155899653974498286678439720704096577012687273028464876047576377999413995874177151693902237296954394331532328115406568875223070208815274523552914990296256622064492246739284178281392324819545822325818044716302310497101026369765500919729742441940440500554236044945980792846152767570756812986685000888015798672129797991273184169424387868126163616590826631507960622689691475667514849134222883701315552692475571231620441896883584344718993656956650919332296979825443009535281020050163071843370159572871138507801723321087400074374697335609852753081140464443237816702459307847342286329637346954202159746602282095838724110293904781828163608113646544489478627637222061773554825518276031744925707750054503484212752548800420965875642741082412512874868006505506528305554341097017737013820778411447702240759083143267108231377615951848670040235519647436049903110328855487029755897868733772363849852215439874068452158995636211299892375572434862098705690402280095942869528911279922066525149382988825360480029942806993673520102400318327209073952276805545960335725915128349278979098742246014656307247879682984320060678980725056818628472463012396467899269122790683021428742440259399876979794745798864042403111518547622859862479369388912597108731974605420659808109061227714496564026399410650418053401658269319400704256233592918541892048700040119686138103919532761846285432079181926834590156293933507355766587278714910899913924582731128769211558082694192062574795420032116922064953746183724263577365291810341299124407254194672202561480911078377052250797365786377266745025716338864460956438901000866122725003137572676013549467178247543617582634564120204530182219050741428633833549259547681839706458639376186363902394800654344692664979118294874193912881513193265293476134579429697513759967415104473393449435835088410734040816510846808789544683303686860481788163572770925331865841453128321469197798136932777709697668927118809282349336097758575417928979529431955411743614009500777042751078907992897853066905326405811416817626129402499753214627102317343386985803551184784554906780965688587140137827083360098550022052117572653069178837072796531610328637173472923740034955496420141938555773288418496358171018098908208566716723626854121132787823232450987852792619348910400030133491352276555104640621824248086547799421870193856184056005904856932813860641254733317654131576004019179128203109226117352217279465156609579825126919812306863466856524184325605997691015697827318421795161831109002350891373247211992343808812064352402150054832147471113287582328652129887892967071856002704690363519299324945039410784093210568195733794880022094787080675960247009380666434033471334288139774003767714890502569051511682538570191071723418968400056977237010167036728068157282431558187655843419763937428518158082019104497131196484265136225592565810632321191545194322291872440005195433374710795663412338640284996286018046311864555505345589654977798630646783822378416625636043312757435527485146866119318197928644598167999108217980489812242845225709414170682838073138573680668300601259598604535190476701218512374943468503537389886908271117690749278732690997609535156861648835033227343659839747198359373072314680281406669266256579511033628366161123029569022094563664337379963601368611724798226775793322553127145181641178718286392176353506251165522597590344985593493877211393458965244660367389498311568026757107137393129591185591035488052989334821020503018225925439969156558590566639286218862015699925379389087701813287140489726599399207681963047690698079083684540925697609359241914566267328341375936190066807261549926820983655622835989773060163254982602304009271908548598874209161702644280119108441718566700148573964280991144340891825780242850634206473836002318003427318648139730020757436054425833274185306275111644445031093643882115850423430752099429313916814465277611806439186658664339661259342474546180395546838347557554427946966386076311472212737171650285796984676891082786465963796363136125560370376392222774020302613257618124026953453992812585273582999416323624410856147742248445560814667422452611119831253874422933167832604412817554458848953116106649006362411868454773061474236343370165371483924983512165379152444133064735644600311955590715873980865498270376458605476139981855021053412901388730636517579537709813517404074364055752990589404902204715654680112878012526553829571117338574559461493996939750662661240636602335466557443959266154789272542598971438637619769886530843056235605589259282408516479257807220843537009250851637668561158758301567261096166723072691948190194204900262805506147973954188220226352906564234965142617017227152335332720372956109885183064774515283980497448072284839741656013945402423079309791015858565461787976361559639401658598735957115552249197886215374001914168851928174999511139175987325622759677304537702901653684877532870522361514310879971659087178408426527826450053785975806542973657238573998572504933710882518365962722654186021200968792528165233676700688917699631831882657239096159665024311261073836521757516906048844162107025642485966967285693141403100730159054621715295295821987453803847000213827351193283862527002616565904971872653287265074828721820325722217776048400177872670624691000733364298417006862141008327793730121142422212571798289905521716445514009148295944625714461086301566459646022775156479853015328415395768717349993784149543553048420288382270540913785226732381026055160443419529089876702281846915538664673071880756623969862434926342682908385997149582888354984973300728251881677450548753418120827425087349268887720910619415656510627691780947821701797883816683489260061173745960399660684005676523560777047421050085401568397914534692230816183661690701284890272028654581202444038367962530491723989026160634098487444473622719747428264226498716812719696139582023634002761598760701076015454615774489245810628234786183865782513936125143892627651512718003949233547540008750431435792486583251600078618790561839449357180049580353007511458365896095504010974431070646735139098186587511131482679047298158084748991748219068996497630837299825657265320726644408088374626154633211701891211387903810985455789474895380010544501289957947523720613573128584888619646150886405046327505435500811000218370715925934325848570859541698587707126951271224130181551477935612758333708710381644118704126278081509913989835296449897728583231273643847906345155604526069056960693601009868155944969082909333679807079974537477840077907701957551922151253202739558945440081404225559222072624359542049947266658866501120553564004465475209472131897005801811848634903117402862626540611231648097312930946508463002955189227454151846978520532097463317898279563125776962363683760350673129047723834718896751806376132225011761534463976266461078482535131608757411457232866254648655974070339890703113382167776244428907563895321155484297240586975782194279243211358746657325441992574425928843354865654169526346357329761023777615198539239853960569526658754711606537365382374634834334784701702956906187257262946066796887935232063633091922453023564251421855963192001868583390615173792821773092035024691214389297474492022938665947968281749279292595164786049074227874350425607651915322975703409951141180787167808690564204972286559496333227143516692643495179239823585982449109096728431410354999752874891892754933916107032111043859708039663022921440759141764437947879748040057914504719827046659546571468244012120459369759188987009225064089449623894975612602875924079600030164798977324549305754577351528905366554320655688247685466700050781077251008509203575782693496316059853520140474301108156820057268293804345884747438906115582524283817805078042832056158565600580397709488626787642947109924499152991903051867785485869801936025416553698094902589545563336361330635585450380546029246733738912108928237442786031881884437376892572561652949625953485681876968777782423621705957628180582067321916762088839926851629147201490083716569206365065725653829463010329386767427813535191211873377320719896752428578097059186002658201095547149597480727139141954057743044625633051150885872302986571058279242232951880595844166599314281896189936635420635728964151064412473954870049595523990176321617242212571576799816805074235448542654071517040261154444456259910806915780344787655626781747565809063836290916307364661166342183388113227498471048645562229981555402959836078556600089479940405005152867213723831187527995216706004313876425330607615042053431029765609566890905627184250965953872985975093881875852354762961939017251602767505737854551985964010580256710085469001392916004847398980416215068847353796542567662651759194355516863606372295034406287265867678368505862104860098143526783003680143723171190988847953553262103508597098331189357181549547047067255649669185705663448116463023940769873282903441570296400801057068508185444953026233258838483368562276093696304754637127643323736361861717072730874332776477698858613285058290436218840229838491945911109323067085430117305193680633477744040861709281064551638491028538742722138873163625898692432097686413008507063978304905315531742733781202132671909175039612029186970411475438159371629046163104531781470696056374433680846261300457606712938134757319311563956255183483830308198674203438605885272559226327839974982026005640600591059953917387732821347924892160793081921590967432650619211850821070960953721788443180894374262695836406045343903786436826651956749517631078405533855061863032861876422460905390716519396356599002187865449260477470199409602235774811265202055040408487101461540505554334297283797256131055307145060378698072689578431239477412857349253115980525605214756141719478460381470506872455020653548895025894401279474658682029441213323912636547450715743081762951509055499110210408586383722593332338894701779434801299436150887920336969298189559756187674516995434741431376466843429229255162618753907848747714401683599150985433292670823056875445883240118169310483831060388689670900078833593624173418161820947616781356649462668475779626364252420028367679169598821328279548478936536202748402674759797707200899095604907274840065562638872716072297110369561389511676287326758895186832205063839680410042200985331278299962407526809851646356536474469459368473357822573092149921220838721475066016310941640843822708485520541402190085952033737949875653546749123754799812355863816632001750409046820318675164428730454368860352670455273604747072288593983559589998396676466605776793338881461583529808364888575819819742293771392897387260106246935574739821616668605261375098823328422306718351270644944885401697673724502202097727969590092339672551719558738173515027194996356072976356857969270870226692769815710709386443482108636214992551444548411493173461334980962262580876722854938958421121431602103166152972580651271395604713574367640495429470811798325910475615257873457174641279786719982949570275886739216536229523659700719955505126145115190375255729976492395856083853051985559402435821877352452425388799081252372983102787839424436059740116274767043820729483195516412243484988799619207064423581765086417758909791551348487416643644181445444707066327414849542183241379657256865468623445015474836034727221268067118036548660651096972082507248104939482532223695065834704082036286941092525180192412692301016613688250595344275652266271893126539351204842732361890667945146841025719431211525122638523136135343782445167838593246424806577709716875632531528867846768570132305676442000134879926331371294964474158293725004721501165068472332114783995931730351438097581139679863499072112779057310901849828392223217088511748279593388838769452354017918261654891158291713986361064974256242164548843246832295146088368669917915832764146937391873994530974511854724169184617650201223612289317631666787751483290131863459342446477308708776313250067039296075712726872313077297315068605943365405355656227836922688245579336985531639551052908759174712549715692717881906781547151932524793977026185579601173577023618150758379784464198212834396366686144847263694328612042591466648106402133805961355822550477713929722436811510863943453610726039154641901897026661187898402771859297076886847227178878698808990271403351702088080797906138977826235381281269515192534540552075127027159690195956274425559863534275155209954164523959139079786530390173906325988649662008958916920686557189411506401827581260488799729799636256549403870258223309874994814112581708157559710975498450645092294131206209649740341494410613598722973855358082703233514232866033208861367286684114877120614303337997338472378859599139788262964681488370189278421093673694094868982333499069215461846187442776368918641558234466834406303404821809227339795246925064740653068949270598314091461970001882843028576964727204034104950814657902271034207104821778108722467006355308437483224096501092517476994736561396167337406043549834431408975137887849303344539876997444176241911872169578131078072844892683429122103885451862340359731164752979105830380895213336673327520397332117246582966498064166099402939474492739425555522399854239620876157211570859625567980173211791471715678698496944924139006397209754210203277620749711795607862380231728434022313148952234932190008042105051562325101288538749108867061154392913271683980170854395193434414997869440827988401747718439602045093800500711019689650451848690161527277967415395245998709114659656858538123796626461210906980918451072729476957642532044821905070419449232745069151743521018972572642915645938760710366443593555543704455304030771860261089908359918986173908589384873307235454656030283159820738592221450591011924546560941618869472575624438476864738468848897728930937106954205796969766317745237772074994726775196674542504229576787560715071695827775941116463143824323951151136600776470057356043286014279610449509878058867262784395592416350757264984634652915207972941075341221217264452801907365694286886077384281099489987948719090488022654906723997700888039454471902996722829383056039006331842088255920824208691967554416792917097125452455101248421766887472161486556363939181475486997047179952030879839432562372476935032570128519595405385331881606623340820586605902835485309859254057518966063841165448493374346020658945486485916498665386069320716337611169150537252458566461751567132878132176344550807798395010053438289362461823308821882848261300975158170446362027816185092755524014890625001116739143640194104912540446085003439564870476862628563585795773742887573229604670581078030112199538934050407321300255585103321096573347630889974978257437871270022327540303394966847816514974601334663646807001667759754062899587705206049679033447689560880884775912842469486921863480113375166054930807110385313889136268608313481879017905156772512748254612765037032701875688525037862081062023164671455916961851286710072520267043415239006670969049303627417125492800006654973482550632933417673470884309782384869543431290680112165281157003565173528153534642899907291659796862065413814902194561920922776639384358785280346176552828453306982133054067515637925831677433024351059913057229782243498098423786936646960760921640804742506617342865759909717756809513065770050879327632529687653233915693831793902877674564238891291680428879271267848154130003371376668378283973466643621110280004963659315436098736505868154066884236696322422130565270493458256977975892604257310178588053410058566250268221612857526217336212156697099293496010278513819534827255136426264087640456492282462440527877489409799514546051057559298420827566553071474230310762491892572086852956467702134003541305393672709041093937906467865713451237851937406561505130520080842486120146486154189644352473530159718406496298381704067998098685226946685092924357142838431719259042685038768172122895647952029993288231091978393243112332674444317997768532100104499714541265517864727460689289106908443827908265691314882983381179469969610016649236505542475215251185585294707580974780860046607429586510710540812027703893053070970205293447309142100278454921189746274014228224238955144686241755126757618454323079815299806897001317404298622653216889194472223507094373683662873911173853592972170993504934279728359594079655050010746980433439163798049679777904304373816506353229772192521157846439886101883988082673639285795830467795502470698563579216340645154401297971773777225800016899460562120437480239377078147246927544758105265275695398047979364715432957644192022032132493094726649743453620684131857495275872727730086957131814415574273772666546121891074026232938014696143514430167858425349654087916990836872464276701193606740036018829898513453575333601438501133549764877954544414236562174837469507454475804915270934358733573764576269474229517693388938011964711142222271690044112591404628855153988687109322606319531587536609649850459505077032252727203505065926417486765352221776865643079524543138367873887399333083058232482736545295681525597074445153156699064537731926090951212694168744236046155526697601630422229344981582410455158505422378573842832084079013178229756444764515903131100779409732552808576982787035894354375035775506050896957312691931706494375995159119581323056547530462309038078333484526191608254089312144273441634704643246092014822066928504639492270746628499961372251362143654946860724895455559914468320900979070559475450304927096651682167709944207596612290581406667952933122878233900886528520791492521236888495259353112640329813858181291012966617432729277535624465006315369826783485009556296868732115034079735075444285815338444355691730062566303092106746880482875548258892111928049883210817517135421934335409257358790683239673127024645120291905690615389954927467866296153322174131946450197805165246276446459868104915109035795901042908496990379585835697936013656747535467154301016808220455304560046803022768512370682830391430937490981392064389501036402133823535129775196060856318044526013447693735366305526504842756892038897157104152132040125312681032510484070856963466158504678970063473273486976736769544265399602176619118261705569264815177052179533949459253221890528884308100921036532136603738888378030306804541090172610573005139209322768896002410891256321888558686505123842697592358811011385882530043664479766735982107284646132143849066890623164696445721195983673498402148697207259321916627812849332071126718190483621089588760995799613214423689031075229797318012160776617537567633006812266660959750131648497780790278066711951177835618012646363470165384615120779931517905276070531052694221410281190824711312106847914266089189207286202190930153625395497372599325170264982732868305997018084657691280042375593785002480964047712455836880663832494042340792120784633904946122777422816517412818786139534361562542262706909292330228896918890180561850814272715776181891327952504720575689513744861411272108217616477006381536479147884976071122034167356136244624519789757565788721490743988175063795385830013497786527846015973970244799359786130793031159615080676009007705984946703097810411027388070844438324035245589752805007407906145143044636851364551727442467431521059125226962763502002748778211048850011955593825922833545182527991472403211933661976106309619793038997996792992359069751858139668428580892093458011417108846224404962963277025482020799805916058050345532624634342699607957776713028533132145398949349171213523926945267050346552821967945687079492933447286935734442457736391244198370322436100103291000052638811684721044152056845603684377949621237578911532793004641832734948775930755247681064380690600562502794728676340213923601799772015430482526534315997917900560911760122174185655336606405437825088580428973622192001920699168889652731827589933883510889361447373498026358039178527336927870751554665147895243382134565193839092726000362136148419805539873490914329244155659350266997889547350015091068845254519631506180948239519341035091067735748814645240819248469741230266940044187715065386200165160011839103574328764444337774455413903772579370111983492673100964233046487894299443968297124630291299047928555413889503149996427074728488865051858659983562760285706126173983424141128023174364848350097359973050498674525787983384328532722383034482922904681969601801178889134055830290877638909595513735520495538600997004674777195601804023220716434963467130697416374514998588641358517896790214455985967787625611187229308615022551662728621203225787146588018434631633191631619144502330446317429008784392601849307212131402804223474818218838597095647061411277864640431181649870897818469310567517874682204063145321409610849617705242351278554776526912084308818559994994470468760380881474293711051206028355492447122302538854277865090252362568414250267594265856792186714266455345605189854339897989430075864401043759494527412407763528248409297393189856609077924590966409524227557260620151285490544256397066097926534212170305622081672446768708376214393983976762515411832144821211104969173972673358528342514018803662042440964980890069582664942902034156011127083340878539776440639563437843440135866516244402644111447713620896641793247093231685048521090500700805844724309394659051364167578400074328035540238998110204621439321505923210906447150248805657719843513686749608641723667398506572599791761595697748915930471382015452649082048231811978171132710584616263241415703573866854381221306276109403609039334735887665968403070626173872270143923465573357987557986294262745079351327442200508230513007824282371824013840140473322039200855848728976442169637185038162130689099956648623353955849140909399721408304524314693347702622018015629536213637206080082544188353058684259744863955835142016707151244697412988631040338479582385547247502871549681658729336647392846240698387610637708005930009966480798921853809314006024948469185573865875662734875657713590951159406620053654681003893768794762200326897646298936272023838646676227736998361392705821756483182176086262176939667499273959713420798921708803809119869130786124544933271040407940283843510686190074006355163837679447304418339081769123780843413687078937680194884417807349635115926394324308913722426883427427075841611360903925014523374026090255384024044371324063687600359713695176304231218866887253099461629997560939742129250783357362238856579754335591582405704974741164187583194136893034155617595860300928281607405693082210302522934201697042269618026801122233893233545396617254568639961821225828938291646105529426294932188451077937294693906004019600856698811793019340427704128357803424962382644241643003637459859150910564960015589096336444238256417867002010034160554719648274711982034650455406872095942962313314352688969000540814843942038047913170756204609012680791659068467446822274452833624828264053832181358072151034973273795041523756597648589629688947525484578130116073766625578298305042784248595336650955775891139888656021577969471490154963098425223468936123577520441537024893613002037968032545056093643184779469469876648376143335234517636396877087701269343464951384423936979607221997658709922817485139772705041817762545496746772654612984649570010162194495438129126257023018235281778540739907982201497216742342820895292438327525588536241192933294733395893413422854397290472809994034422147295821516362797217951965346056019842812619490747389426333305854143605864500917152934535871211287565795640434466340523290741468207644722784413054566876471084730640247319527843065700759842194836325427323201538921143572861252455459522534469135886690744028088430950419533840787299535441846865241842111619938197771221486361670127287952762013720056656472683887991379138070800786748497103623832566790334557786636062788415216486618223099642020480667179762746664527595935729428172366830370603742335064505968703743599556708266109812351015559591636911228784761670254757724869636718752148427130332534123504014246919296060887546747776980685095012155242132411171133510066834462282995060553358356455387168362172188450881534636065213852181029760641817156165362866922556555887697246716898205718645845598616212250581778084271864660492449433761648725258886505105012583262895976692625814891438514368438233257281980599241980391413990978857525342366006204893816828776210302962620969649492181809757700314593755016220890289475696002412042722232164442313076555391688833197392054832130393246372645610383774662602350931196392243608885458580112467358890478584897687913665195736309504041338057109529940602627740200510982961769199835057438610424461712883271757209676169623046163799871638687302031755293956469112301515215203293389079583877906806196980051598226762284016376741551807428956373315820593115389721573431848436166419369036012643502522690522308673903330056785469505357213744701401298283294313098971473190451480269359123716788251391978391167632686755152963461777016549209295126534469171961433193527325122361974343479739886161190334757376183773110186803714464078330602205673126658778469037075391982007151418922635041861461232771811609644614843202731962185331693305590596853407641123407237096854876042699545140289853494945613353320637770936086774129868159336424176201513911360833727731357189225184864295964960106426307386222591381292306176184847171872602680111463684428329350423138289517886316059927446681039738199367165012284244470898466394397468132013589978491279157366096008616649328420430017255409786054602147926646939582567082554483985951619308331681316947141799688935589171503612895562708851887749097950158913517250269739743473797784695460907396595403875924289557501312415157670091556092695113062906013537598783826662737647740237447734303636056611709786399062249032430446851789109229561598931112829826622140031618527098269713024773883773516957454514097758572329721445330072069420080492059375720643340388963867048066437644795410816836872308348573678261823053513577314098629825679101032852621819981514825144156597312053050208391819231258822109297836295488904409027837801507680517091251041874609631433140778889062492413421944730647582982205786607107687100321997392052633802792587060263782906372467386104092000006108384028125097849605467176050074851439836323943400152680361778921062887931912907441737070884572443666202200715517221868919109196078187172063083089501495382452939908641659865074950218023654217014442950719094534413632672297118849065262552166500710928463311529985711826622125739796600063298208030354538803615405831897007160971532519214715161080378807861538519659213922657267815260580867239277815867556792841666220643162463994762510032826939891909569332827198966240934178087545138066811991457231193966913881809959099264262129844334809260044187506918454038455904435627759375911281900044369088095551801660826420856530366655380538277646437561323906148116285422301001180262398906936570076178466056940715165399549925572977811057006479253542092797614831753648021453963136911967592616791597038470722709601921796315994943946412429747641430373502702019173008939701370069940611916856319251442659789945713259184708963804477294839911221589385611541958979344867643891914201140253172291378249940013693808111947742963858537827591058425256299066468389030096022798855124259755553226850967472747751510952329320442998234333233759924271557068246626005770698754887032685901582857930248659483926655281613415698628084681550622531088159746941838694268379407331988406026222776217872868615566982088464518262061520621075894820021406418431511368337407055220113336145367347070485294876155146458065263119175048889030897090878314961728492001016084663934481124199747940750704360551763825604313999379092788386789653699711863357661856950465569734768391149676600756382579729988842124759252987932896719680383457083677507237473850372745525856873164667563937256397690776742373155589292479903338572706545390731804291188962710337072479607473376540207139319167765102127199160086244452538662426638974253106699716333870587958869823862116883636795281730106975518110783861750837084551998977783258723610176291465949275136548912089285403596227504419832568696080346046805811461053434180630055220415987955666012988408498395025221974516179957630696388195246890287415204269216237115199214796792683687011518508533645934073117900853095651631042966031021716810005073335927332640922563152067605402514016287505443604035764159857686424772377303124024190215832794775829549124222678542305504363179436404858581331361111027630272198697618936617802516840201095283036502536359356259716708014111222483163383190163783736546683677903782816630816179558753717756333278861516318078642376851651939748585097122013214503902612285132692606274906891869037268598989435649344361342750732758787288646070057069969600303130173122017755286252942899788709452230444492805749168439854189156291440675535543995259881308057103663700984647361866464049813132180957902743314579662435228503721727690996589409820923363698981100028089139355798180162230962990486592479315328593356755630381678407832404810154495922759991217288059754738690882115817589980901543852685889923555002793536638300040084509032019984852597334736517863255614307995692910758149703330152676584629237724257445067627926206786903343596414532435394482393460540659898624536933554459918147806263447529169808765147755975403039120330186339109090105811529173341905016857363762383254487210379084063505782914429466822598926506301967063446335317947890858929813716087774211951875519646757437445537191670085210733877067541551787927951285387995523088771209596262963001041897619069153383373250043173276395001591464339815814533808632090290331056457580331603164562928679986098402706427962695223363754571904700947028118417173952870664747006368714690436166733822608170143209096935666127835339517345276042476991143677578857897431666691560641882835681825834900682867901108712279971995370202666415631542676330597483164312036119814307861021763386660968614451582223831844866945347711730944797756926147809122825599681284833578263438078727399101629527360210683957427896562234553326653119520372874005933371811229528956745452825017113853781207622000696422266561894043051607529334735456897552450421722546928484996850287651499323721312316643669565051999307041786664138518388230010884027870583624962937803575803072318975911455332122622819446330144939291940318076871693527181742059696971597151491463963232780358914073653146784415613990704321399622697736327149399763267354497942478430630971842876778002720743865274797400280176961562365175653005001455989202527293762749848727838104253681501333217809846952442783947605449175426614000250298983756608182699066270248339651893757013552122887393191561680770907404518859056956724281140599562020165305942969206966999659433927199242698200903940261164272730677862891419899070581323856357654058855473804756644229239242557351727039565300205347388337031812465697185025913677466877630562325535407049897779315382419642469670938007842501408948937444246819711611095708252943969510711292393962304380213966667283614277682954498294980527130997859417399722383053852521178610964725756595352059708208498852678897711007867488515597550312070094458552476728145635130857381175110605869390705262968484241421002881045414974498207184766700618862453902608757420100439781076069902866494419360284633989485537034186500959636981248740300366719226522639190280132551192858191628354759195627473262885757612108838517084593351319853581146050125807060300698557632627414044413971154037599352155153235110800886605755531135914817232111867459580661840054951363316982505490468247371210803343022230782021267913077828739659390088556031503829848704549521929038095592034717422722466958923718132197262416586644823439824307216736911379884521719114344511630074804699528575055531585093860173427236805710197201192038824751366426612762709405104296675606658358053910655482597362328892263347643792434929431700713635207716596651764577440918833710785894136945425435022231303736162240147182158596486260150128917268070216560175770080240440243911268931282631887723723628692820791509058073868998803557298724132313464884832969793312920913255661134528559273056353528581874752650951752051648611554840613219732073952737678509663859723161795505636676771364714653783905283171767024989551757596305517801815026483970856663776803633324403777666182405724847507948226316048549287650652062892737235448793655950455313589177515534589622381260038942183422992354235724062011130086804147823887943050684534898576613341659732194327012172557876545622392358610054385224481803442225614950416110406406717799101957139758542108648994540466900168587477476233438841116668983281057344411226988474977671171348318854522531073616385344211313717621404242877883610267461397242862178391649984611956985689027433284587368647525638853885250435402704875719975312940304741627033410848356424239265583753960935728463419385701780686825293555555752827459596772843187932547161476635947955203263279019138820980657276295055667580860042277328484424411566230064168316444959758620422677010284209697073641442001484759237391609253126138141577343060722279438345863315587347017264580069655490635988936096139488101649666720202926241680101971518650080938816754117466182144295665550387259421821337411714785706078001648884338459078979547369904523755550496824552324216664269679530175562086541435680594775419902530195477113928960319032449855105086985038133441070503188047297280676962223932831572160219282353603891413719810042101757438737808292721376656743218511221466181184394531287281084031318327773728768617903952103230320111662062172780392504567374324806462684090771649951588960596913135699023180980490575293926845285772659336811068807001371010175171396773524990611997092964811469547484785889983714532814468844764021528587227807567072654543246680134594710462605435003162364995616798504810991037404149652871733701620614546199989609057037477700920278792717938815314232989211267259789690630470561614582740079848965808266539984072701427641706477552361474863422615031824153154657915636470810056769400111846723723893236699411372348595395368648153867059177872481709590496388845168887302617608971409617083629995595071861524461662547054785611943336493178873609987311285543127243930196224216537786642602959264884150489763706344603269246634006007051752937252372601685581619740233492722353397602465805079055511551831450246750308975795652548018971699730967511329337891934659673535034151443382839417054865112505064519514635597344420702898602373738603741530955603325798064346549956415224086146189687462227397871287290122912219534554989532245451214476353515943545154260542086544129058028751033300029829957373002818156985160742955088892648288530758091685602758346864762805935682606815998487313999563754777237538750145072169351359666259987667261057029498925880338295203585442226167662729633174017309228927812958579404306251964922859456924601305387094007052387399062071474986074038774902097469823089713462310813296019407192554711743488727580578843804050157231499527188076222477062149449797478048625322340075500619049562115011757821369799559313829460409262639460451365208506612840671462177862753392240521081589301046842499295703117971471908457528221887222591130615477220917935008537025322584154604768705302348445242146132533908224376684197566622519786026538001956313455990796436476901191799217905379533105010154609346321974479891224847777110433459240751681288462421740626039211492062944429777874830725264845863439747719354364492440737373191535352771336785191591002981288979401695838434221255089021126751605906883979396627142891290670723851813809488818356786932361610147296681020984418367609333002433193491059386275008385506042030121216354654476755586490255160439844088203643823732512486903844883851230407485218818861429681769947224988545136795861443831448152414693043931668565529208298458235365224729338717217312726427494178003953845686485962011596289176444804060256599599528388006326274167550208677467192026274187990940895683606186609856706871522457875198907262156781903034677150466880279915042311953064841711825448090441388420303486663441440084290435038263252138618842630122985589199449624556953649207988885413939245361154183287379046843840438887839517797912812565145869982243808479330718778158626547836678257763228614877543180890597509421793328079928282274934947688066093615090417916062898236664318373807861946097489396642761776071922210049591297775858262983566515793856913672563971123942574841288932331038858983893579984454755057294587351584494096472851056301465761911231450912267509358180040064894210441718867704022895691935569209759115908771517407643247164804545954229226699411839573616533909195705838971380947653546943792735691521018620593813777318356296349362596458846006618025998633656901737105750014790486990169253111663013754015796225002696908322674570354733357544394103019071302603860378842291944116259717226930113788101863501610414516505069912895559363246232925980137381251785431989629378488860453804085433692101812259855596605641624393291098476091196158529542789575566452772330032995862915401768083272257465304543674751870447012408154241743662083343478921423203158771701534341618910721098178847583490452738763004921602797129673314541013560880727775070393486365355075810109987370606249823086404808739972026324998954388558397641549564320682475774635048177339540670567180834865034020739352097428193691352402166199418854575643823864885947785021929188416742892248966038021632778917949681354072438897940222547195541032449460492035463147320025655209171855813653415739659050474976485048597424707986528054201159100511309905196621779673569968169400927171001767252851223109503106726132545856172082966762070356140922007699428114198854519880856043219097617670285156747672656799176068645941039391661371654556177274542075561054895043542998427189550529841848115360646627998795174430463991175380318901062674105463893949535127782036134299830327672228551900297133784242981712089503095716012495742036987753878961943319917427455333610842471305400820821549086892144406511927876537035911314136504628902987674204358022432295733847987579908548905941190970951321553325089475903754541827667105811469610507073293382939559520041667548127017369292342936257630471637537520265722521628203212696934979147989795728429434929413000712132859099419923873369621558697622975932858607369401032545853896825172904042263279056703846516083171024993139194416227494993457611797412541102471316368626146985433621148891068632705516842322334806377971666197252032238841160154685907655912576284085982783481261783305271514646326435825206975236673755339747067042516084367079521209040800835934383865701496094975995291995588135059594324851597537506450411918656126551233392200048286044518880555426268830318617842414374033986748917460615362500551749282583637516437161442992019843224566572679465347239202785374218014929148960268105213289911337353802186005103089327910111071339071355041593058767438801957949288257868408121918806844551994796101647063898059835968317752590806817036730940962717572398896627147224064165058052886863881852657961427874011798672161418717525856676257239983895198980553649968037962271608608391088517114585620107060807957255447199855200290456194816536238910815096639615515767545687709622936335697856743728597550458230006107342595686490213802323981325039890898222049250934261609570944861486223016849128802706873391827640318680921878578878419601306197137884003943484399356696167348075355818106903046727995950312002141533431683199770639858888259060223741336131673637773299657929002851226166523714770026065748745784548372643587452623586506796774620365500969869806185557180281837088851124300113200733328902147015381067933713791587426011682179891196654010155527567487027904874558236085038447842808080882534007671567444131635633615720640669002595233614233181170058684180528478091643669556340512360481950939489917457125966423103453165161301106727245200235473756070755975929745758022254693946356199588202270732290214757527407936984154142050667577038057945329612098852436273071660719246393484821986439584887677104005366515185750855454514282639175221594355151034675954117691530647536580931952068313530041981171322468669031306877176320365695725093945918851558739922021841434248533619519704559972070358095238196410442063760129667480403789444485825974316478484111869704240117436956062135696126377260871303353691981129050551267989717979356294002138644743113939794265143423387843841932549270995449198325267196714291011204803476101778511496617100684226364522373684590527987392975557306986124690463617294116329935426182903512201009578564141216713245706688325606629435931008645696264088143847379856047196358922441664084132144658461786059944108759177019121253655509031411462156768614895101371089572239601785934170094583158420332511267957531433795298585954081384516416936647218986760403266788736059419106738889500987689257302358042536182256835315718675762847757260404073485482313614344923216373102969537237862830081405870088432043355248392787991862570490793630485314153758154267402839459953153928855677832008685295879373799221654323082760595203148480553368063369662437696551595949188985707983147647197351074028469535476966103701172887206334863989056352599278899299940246554774491579854898753297391478056665450161667215751034338162279777607935746776609708848313849625733932802474776942332582595690779432949269510652118502943678367090523121995374778221395092542888856602857187196648482219360067784421007273674492223258605959183278885130580474343668751889337259504424494917817292537800508095132443602882502606065150507933055417114621743471793317751181251464049240474909698488128454769323496094133328357354658451229684430853594630102110349407827493576911907471226676796523880939565301648302993117507604942091045435776209748427063488436722689323001089869890238983573043429291915658575810940661263114080680550455741663904743528843461132255354692269652915597017614059959464953190014894110832246821416352363474477377729522851208384818360056846444063024279801017378050795752580164988088819816340280547412304128587800339528134893793704795203311207955951864000176745653889349555234911586396459075599658093097494083445673463815360801068471022906100276261376386814622714875476990039466882657850797351651131418362366699978740545388967165242125737231769749127707814564550277250515469564866013978369952522019984571889024903169371976989486329843604580382436606357798998528980158088829770500471745238613281661413359842605452136016241858905146694710310552751867114182878219723315971610337905429565588244417564299456781580684309757748857978036538643815937759945736558091033968680472213699055190306961511366515686212167674059081301488424430303290507308591417908088444413873966646596208976222430721102548698242929253184714109672950581181855395962173834937007707194607697016460797081422374608405471543608016241934875691227634639172754449159061042423656413444731907432649454272542579577027373193833038220531104228846964476224816063137760952528327142189528388962652492648090473653231700324426551275155930223372532880831290839650791865248339894123962327768981281448903470077246954019740496381696234058874277801003688745411550314758620821948169837294906307150545766494110024139193547269790613771980776514203912821083649192632253648512181917652530154110366698983284332833009980844753496107740079329257469943007915375687578914174288010614125927112601151471004942413555973740690798264105761281922998555254481636722234773064773062003462869421137608319945397307480473941963830860087346817829769440050227627504532251291191442491829072690790588547366220494589888282494461978752622064360116509381555962828274759758969282776193276564779490853118588245226252067265841467041958827662408071639792019745271186561548690755381457804649073978754081506427420272055448526000037068558522592323069230182826523334031709636868274612339445982999072150590051008514248591244675594820733489805797312192185551868535044842026202357287970625457794169105814444162380570050607756873885536234694084188721275989065058941162382372140131390281539792667521131594893615982995785627387542337840857881151905788458121499295035741014289188361120137436527526945745766486559668162794903164058078050506902983832174146665858657574899256726913155918980847298903683605774793957309134795291745110252465195368739898196259076841167204082592742882398269936491538803091027292039727193231245679790716582714016280408318968971247887746175312299665365534746893449562904485772404659164068630049457150450109684413074647775772665104568271198858742851566182977348204101061841238693309224240806985493980111040859642037316472010633751159675434767751022407881131671153556261192642020112493992446794994817840411083435550914909653865610913947577338690053959720830097623761050853764529348480589530301270895512421806809660335749639718959618849608390354915410379903005828719232425578926418171587527128091695502142618956403464910573084364600782897273011017859122892964141082746350272605167717723890454919420737531316298577618083048205110102751942672835913133885157706592447014930069212752337310288669087508680550523706044930445402392063096490031001128476155023831138660314057314357796719429739758528197725192340997984568183747454328015053130314682639047044755812810760429897253368140389504247095930331328545704757400987844077548614465320168731971966912436854029646495855671918341458819928533784854074552681249596662818293978085864189630926745978196321059635701949369278669724756195594281100546346565515102592509494496123632254265093611902639016859051435362160404148903980649121173337688128563137365696810409602075150599352166846760972314039772345486665388849704376388992431847030184881187261913507522895830926060704496045602920638813161153003888991323038187876020325605558890232072491872583614886755534460619040332924230529425885862849224471785645955077492371801964151126330026518018203038920311715511403942400314059660317809179501011845877085624083275498825922180864079344206717455881255946676416990164490671401870533195754606511541503532752231236014890422455643151271192233746781782007763737564344811489887035715832147563023765016169881719607431265068199879607271089189495029659994266831987957610457273406968373495334277461609352774253433761032967977258969384512466899562432533075814189712972787271575507113340880160107963108604946368414251106254109207668910719568539926816644409985796876267955064357991733529619636028132086746025233386085311821086482361755945243635587689512656733449341970756654119567585961149750890326879241159171164232576525017709566665870831117560249158017098385177722224433779081626729915931856365408215749148751915598346390551275646381584231199955821259590796853841030826033775315972468594963741718850406403444940992173673417153915668232889095070467209742081853219815341527081130539163435192560635989025991682423546507664076677881521637856227943869642460606057013669778559212369796944794243777766724022338268000792457524106052307558613461190438818350858772496174756254292657100553712795196187757024002045824972498465477377006153729687355853720015379795999337745426829570066865679702766081466938756085533254955415265648910942767057551916590893575696861680004355559086177720748639152903871029767210290993807119503156752354091748423681812993788724169526904769078556868636208996247821380920824763864200905959667175104701316509308251617395759611467805775416938355611848564947133310894764610416848377129630306001921466098182488904642105751828008512842112580516978673488670813720054624097815645744447498961078194439978537509166749803295157292199456331801256024553012334009238106478638822595584802314065889046418837662701186053567151785846633580631011499370704128895827862647505034454795440824350573854422193511151444830314926880469213650347911473301331937678224736419934838704943507945085831940939572006406113651435383043655210935737235063918383420586414077201868875644546069867259958144393449548271878854030041471861167711264551083578557035817962330968818541907324892040491944732012191185703867015314944698276936346641590688554714619100011842244739990170597554811918345203184804721621413748676588678631048193104369789176539059455616173330420656701422006872980184509196838206284082679510120240678966717501399491155917317985993372497473087884773889446217335046765123427372313097255129897887338038985235732031123712793195363530781081502446311044922174096090932691672993631582193565598741447460106754488474706979148089466552820378330095743421748230663251827395887838628629392826737440507115399196328727378797538624005591280126618165322402210054988897209376823072607931575691401108037114494358727975330339609594660289784003603443316578928233555743101110411858446873465326701488790669357277507347971797361607319224939195543304891892026707792797119112435996486390576942475748055459088642164029317294617048503757139946085840776696118012733050228831065683984185337791022822821127262527256850918349118484208391094906964799562479483219608272913503056213699299284063644404731640424930041887285110171972465126386916691998903493389998337399650169636633071454832772065885145091235607604506753238051544817314495081278839376193127928240725963860882760741482317717242071820021782520743748036492338880420507531367061102570677272724019098453405280209866726195735105025453518391914131568980082618519892940254356204759162386916838161945342959257686935755268532702211359556967500033630605478852787764403154006216910429398996901308043056801411394618570369609249934263474463247240106430037819395890527712450674046124800910095189211228612521602651083359251650808116082988343888392551058804037770227978892954512632612060236811161152865198420647937461067797525513342374813209133600124846534908755606444251518043699572897292522031097931218667076556476137040583250620252424992607779315313496128087268123130836426230869651677182326723867140869457791290402351752358992819702812654173504757709342252534315799440512033859537206953455034432325107324197107029424801145945036575123102230842370593203793880574242248748197338229888974757629482745856560150759986199130107004351452348509829150915006467625650595972862914138704194187871736634248622199024388955926324140125550303968868337802634495076841053012153401929962902407360825384987079684351927207428878802124198100342080200898291146470085882179472281349682189695946394195824007846031185321252266660235010011782790259205947342661191170916070640005717194138993423245569735296053356154210412685530454861188156565196869390323385655945323521608649359467954845572933822563250731783689724399121514149311456652538858426194913389278665357204550897116818232357964853475067415762544817121613607290584802491074780243362545874749623482396576771412149523942251774777335618402962262569146316638890470688379438590661990696328844540264961553893606506677142446965705287892111917323894559705000838817015689604043957717604701896923486499648001256200831129816239057509979836260070251673050749134723327077456622256865504978061756973650444187571776035036573058947445082973607004126356171198601311956148734878247229404437850590073087956456362660711081166285925644359954820222239482656575201789865401520879042128783819596347501618550160901396678580517172830428907708384412352950495704113498411149868888521043180054128307812151047404050005854383633980223008432545152190637192479663116412585592091534805670268997690313364056884431595465140560944909903654687978116463358830829640273234969972574995252367736315223604832588307594295240437007624123887619885755422470010897766826227646769177518158591892429034555214229272942030672888639501312210791574040112752258551549581715523179305976069915323782613362715266232822666012142734143623744766657999676110075770482843488679859495863560141602378840887825240894488381854796365701410562242927673463898168924078414049580964825215192628498420435890012474824658348138921419887766356149670947959979548255631713932691708538626600537714644112679664466746111257414670699226929026336288456625688343004622828152162687500184639921003100648057132851951590259626624965633295038443187169720069903142984018341842439561739930220305935408082588860123935612264192580280297636595887283345013757699633174361726138382277476737509007516215821978685100753046813243386931555789773003232391760419654312232307965673519681406883496356774209942779564946459619107875451739479445426954834321253846558775189455567751535605817629072873361384246877576727890733497028977532152840613994811332586165518290450673840434524643345877605550834160418729911295830855909195968134642445502089535189870959036715828593390844686889428498687180983763332964589868462614199197449140612767378553587015233095933115871607307683002124954671175263846241862728382839345889850117362016942217076496887300657929040989465286973627856875700507179730119017488853527426346032673707898233572228158191660689584044888969146416508009434914426846673341491276223749665240700245736661306275578133889642648248482965478839407255867981950183856708729878601236537833603846011462322101637466317680430336980488812576678851820157982067000411826551138109148522734297011453692291278456489675577496842815937022052056511689195769795470272288397587466751934090845432981634883163363443390606067695402220670708518165370691837383399547688216162091680626169190917569201637997900272397275608302713910926824152973804948195674952763512429347703962060737155466976273548991108040353875309707514019792226919726110357117347434076213362931559957287204762805208726496372792739997023244000802169759650209263380376300153938562455185889449678216048989339263391972480798484594189003644633373119210374667990029311495388843379401319630090106208260619478824072360653450601197268522795436467624356498907684385751051233085068152325891008645953059638976284688058109309370389061375752374263841277380322992570048256356494710891734979013374590969549813242788457968580345449350329716139426574244664849334714149748463806404459509200563828227249340215508029603919284167779766143209211763922724391408105913400581234901132913729314146091494716129678191581997039093173026984588786364119970054470195921427459644750815392900160365329486434318458784665522127478839178273079042908430653714834118083251484066432651562860937565859367923095699946971197761508495472522925116547388161860278122935890122306641193065828785646927811704895866187141094470689413447746227014553175852790083406035263998684888756335845777903108233608135621505759440101562753758446095907124189354927294074370065457268347285672858172611981307984485789164413858747439824486746597253934620701431734175933041890301122419312819390393961065408144530904558941668637057386704983216468650190210720986243358670531430007879671918919851035200001684718981519822839862300088238382788383756625026853151348477180450999573890499195768973539295606310445228519659865544740906013148812470880409691871162347609006904499545546729886084584798726325758553623437568765436145289957572709609998741580360925755927652330333213801938910186361297319271476426016200573721407071249305959233430338209723881681473830287898492330263203138590340841463769393129377921199452141352709788687500519802748994712736630317402562159230272818910066940907899020394761351615133935305554726601027745738822843285920352829964703928236350631435812523269300417075491440052463989925928189434336479670749092645413402374642642084748843944858210449020106031332702192133875708994541007179638176170615239614071810927389079539172580935770481587602792333629996464208380465040925873172777738194211910616984820848452651808677090455788710048680298801235255311788582331957725128634626963890766553031121952530591127364564084892607802318257544268627938571600050896483876641338604522354676420484064721606954242509977882165023852397349428758338675113275666344325630501698425388458309290415833494107072031577254213013079100817554181674748784555341063023676966519886388154545213221527552945356303196849680918701086699001044416592496347902001684068088071414861906617163327209657485972963105584463379047310764635865878013855460554509788895040594708261642247835447475489243066225118833248430374436557929279027902846651202654837249380939322276009666723563952484362517309897553001736419519831750597480242252741396583285472849300100016085046704290881527368575144381195561658926215417154363078399123488055238205679124803430552084019956025832943295592165471826945897560335368438274981117045374460604036500221304494448724307993779594297006445942648901098460347847901361650415564383016426353032741572598841698030196650705844090769282277144122404116361239586862700392643113394597103291020271367850245149064470229178798412924969816589653038809431925097876965479885099201495735638518156596474549092284534731889282781433019763278622307203961027375213158385877152778674599432610431684520336345450024431164496641053217738720145693321082761276792622030630132073236614488026505966643882192785021840436442078753564726030704955315078334077873051384619149879197110313298135000230322119832153636628864914515220529387094606409806416636375854801632194765429863787342215511779461545971532886338660459263765823082787704618942248616910921345392133407619028579789674273317087682640574832189010896059455196643883312718343448297760598006221856310580780766129577276824301128391591841438923044939704291805045470398597319530012968425550494462578114273546465186435454871092532836572443360466877784057162697585758954178270347738063000097743717096202577505088890801884644669978922501829418862214645966046918091200011744191528963555508913000515471013285833130031019946759809168452893465166033389358353133010045166881532424335270281006380619907514147679649552218182668873026290395299117019509984275700523056060892881228826433628090282092907906782104780670935229175729277594078437091618885549159186476942256384256357340069582726333215395913615914979079081278568940412670670370403546861339126102532732076714144518793192501843032860894966261399684201647676901620014572208440862922529610375162631183767778113861486203567475123424289516883616939942550191518452545061921703071050617991190509294201278812806208407362226009542922512291895403806712334560256193885635805757003375711379473301741600025600356602205496161190559316439219531297403476030804505649721178071756429987921825450776042583775982879344932688514889832110434475274621027805475848127236204854448829879602207025903876885900340779618288057693937132630253272945944593479688544323888206118003950459908186580719726630085389242056532386536810360701388072030008449979376139613949704574359328791465062627820944671650776760000248464118491244340129701911461540944485210466514004304638711602848200289968828923735481858384159743835306177098198369537731269041484431141738441606085057824177794573365214621816014785538303886082220920431476037717668878925000040603653404748138294748753900225372548171937813341788854157467605462372268299926983245305819983995888105449382378012318532940255087554812128987675596519319886912013842488911503735529993202413486214355599811831255353137427460608123115093298646707105191286021369806226928905345795201580215943546373555720806692117699922598307165503785046372415745010417710629558600034334746337757461718986945135777165723065232706075410774402036413673818245692708356549288082400321234086122226688594469021041298140236740712031255448062582907096950847427586243842473784611111966870664670358870621964772975503360666365188204755101245213720119078195523238689995778274109826722815435900212429426360547565137661783440198030689112452867982455628017535802185427403381379947715436277445844983310278749783863868605246667551154979035632711071100856307128764737375919031794961208624278097211547363288634163889229733567580547415451781228617090236487426692585917588371010797356078721950106754557094530263368508991862056982106309281886530219165720978983147956386543956944994178668896605516130900116096404026204287735050807297121858040149454242785209637091857490553578556936670191343785363226209643389263664614437869786455528646996866458040776183818895962523979028601778756218253008564833397411702503398507983645527109739482797137289634256193674853663712447549671290097789577958167974317959448953453590046637714690980068097410784260238774107689146408157343837369785522164700020351017486601768539080828952909556052500711474119411014014754168323934731957116121598563888979835156492593664158933832938772176029125829084153513176777133203875807211098514040843794037668396167648379061660488773659927445103307031900141274161320301247921200741738472149909063860571475171815106279584592702388931220946936646143188722934687128053122777707236508907513585009026739792548271617761398431069824449502533293181579977732099830246746101497925736185537746872333754354065296454320354373905938993046742590221153382592425207881065062827875621433259152515438432841440374501270650192902235090817701246297454565560980204500435748443647898017512837704807315286960542775841817384321663808259517880097154506438775129514405688160652378075894512099690014180170152344914262399028724670033937865525013408605413326906604938935325436542408736840337823062224251859192384768973072517833706494460253958646761984981181120386950719000129410102824908894486236322352055752363895919633679139431805394122450977344791558989413565781780659747690458687641461908790559189045461589583250554224168732139418639536019063821550159714457644538352021114170980285629901368421299159585826492852573366582363413963601704276898220996755216863618182961641645835770779016232707892045256651049909394732854728737719436264195137593398623030540142960433866929264898357176652502025186733942093008374156757311070605829448697845613676483297275271977706546422399689588767039384335273894987422245639100654505045952690333387884297351325968701508110499047323676821179737286728162365205957563931555757763459639922528431647761330976071829456913663422139076765071579109852044511999484200638723706162995901695002760345316113020842000491994763157957636771295276025106058268321555950762320961040090866023127046797754224687509308960482302746888797279430520903967154152065140575711434840919305518840129879832223249344130591827181758280292266903334718485735651907672703145727257878347792804871066047092086668828376707224246443032195223768489426226477771870555496758650358246085848682305323245309531690838062039463578868864132586397095581377474484252057483480970082711482842195479032601150196770328300547052875140368294597567532014332805153343723879349055025083032796502123304317916019702997320616184884668893974779749157082806220361641885456074062750423366024859717166200066577480479414824192286224090539005788083242218073214622835101997816817789694545046724296509435215454437572457515338901842332063717546968363021638548665594353807160050430303502120115333520439620098843610087629930537559254293360352131083273016622620988422010765059505185907675583639890479153729785077233641178496901828113987198850526106962857135806586381268823771126173664682100330829002001419045740093161533331128052576292110141435267163215951850994585121969877632844757058010479066806620833193796101654671675503936331250020295659163262535153377172078277452950196095998745816800286650351722811733774880439398917496316425344976095497352627526339658670400288832509411507989398349116871519383122065999266443512186818524002512326524691346564815221085855955800167050491348520528401963231140607828881332951357339123047113559009164192823841347592700244563981455991377832538612882086086452493910854227157179855589808339588769472829583820272223203691497278732010556590018553739953643415158499539594532023442190329472880797423573777458651098395903724344738577369893531350396990779924646970285307317158035828481605574760739538618490213534924057923844438940828612466547655424873873860549724129258581304356740855582929705233975054919242928785749227285961325882199713340764582834906186598388826209517411851961122631453069232876965482492300338076793885543458773941204378384516042727000291856976791231316370225815990554511026866940696605867472965918299877578455839330444078586756839644031245489991241072843728124439195813225871975678692940780348266922901857386945448034236453558593852332891939183339599019243136017016503188240288166102868326686090679824691124134359676330845337012719763437079456415986055023516346985847425487662166436275072400564991768148703684172058962307871664095352319258627589564408802355414514869534282797602534157835609901064812993145811234906147923917603202300975863718808606046695839281461777731344241343473837759403906520526440156286104602929827390860282546524984264751300781583751203885807602971061006592152395260839885088175998022956636612915196732074067042636074450633474977972253347160632735016035960856327033695282431313732698880250303509530130637842023013617788915732001076084856489101102778069266584086839863330240178213624089722878858750219351860555145140778546972672558750857070510268528319345682947856471638779234562943190547450411305070303543049694730666644984094565531245913490201764541263287160671060584303913643117257618388265748070363872777619523384145325659015209080413760190454423383981574824076625445218121654878980607844577593844466587490493065793208230128254953623847885291362368361757617561549316205274973544368302453737400344108451078169816606733918023946943685185414443926887516107649103031078070409005913807341560491050412531074409442199396329561067933443494957772205789090784223059735724206749328732708712375337207249399005802013698621911154734731951387173170889279538827816740471605250799769729507089127016432481166832924857199658229081800359404613044594584864984828865566809620450193540561147235459629791930618928146255860114543623159826310440305305558258257397268759873636246405505472111766296294578349386373284814101090416071500344940462435207938005881809118278532812031646525133956689955075181719017518663102809367816162514871341811076433054373441270070624764224985331785153241714814994695171844728872116987208353980931851607047296210051566150349737100140835844743611368936773858139025657006843954718090811433292169196128822116327244295469570059768364008303847722626508833840520862943850098860913533892904807260841871173442454255262593075808292475507737244294575900294259443418493991735717472807873073821010253072346006575607924030171920298675700082343565160810562045721888739342259640862479369643305345419752907695669500728407711267639994050269920957030089392085158378819783476301237802434421020703745390144744974746690465448834492539209634296004477505124292536372632216253600062914894209484744129430569026948325889435841314825682781543141928939458154425046596526341717353270015551201472792441392285534758205383165378333790245350796227424701044937492756568166003258853560896885379715687888526043486282698926775192955486567939412778146712498048413971812117434037353640679184341978613733792526231816375923327234171324603940270635876464411511522804855179289116852350636410741086486744816003987369269919589972169225730623235152568538903109258011261031716024101863911508934761708372305154767698356744469368322539239029402415308070807099197331099335729142751631606429637021853719384480569841565797603658888256735060968541065468409725717494826090002757796970417763708184318553526337913568151827908808326293264948339731421958797876700281773404168517127304130838516063788291247710097084652529740378939386068378476294365995376158088095095553254469686579187579947479720089419280557849074363386685066928147381304341626208035392393176032422618665235376302952246865044324507284656266542806704281869811448609757287065221844333544861841027011637490986915786800616489808511221568026551747013715372170879205704217384680917442811739923597628015246860157224224302064020603067073978977858330335155879069064387379835673302896638515231223831480239130726437549336887876795192880749063081556671639911756364379166881871301240859995998789463661217071544757462801646222799423463450274238124255017375829096502217122917770595955582190898368352040498407002409714914970803326692727470643479955633213414240618059392492391509560946090770495260848791902839381239639575368210600894721031489748959449281397377174131861894585538917189154009756629056019897892209127072839743924273261157560220165196777631841470780299304362517954731145398240041788041243326209659314261302749831501079400881207382758251224993336750055497294487078691512699852593153943201155849999354416382694281793975434631215616127770997059541966428882766114329827130827281975908333947331569655808067707943531839615514249758163753802836781584190092428206533599065979376594196941372182223787635438242326700498446993738495917996450559888388033774555679374500872695599654599174218085824805197329440877160284537265211471745650949518006451592088961229740568680349398020794574051288093086758668760320730526872758636848344362120450613219673501089136607804612555474465863949908500649776002901385414121326213202870334605873559327944296953215453065677652498185883142803826894901712126591386346056655102268399986202610629128631718215681006422712961329426629208107504484014067576526187036179862893450569958808414083422406383922193407847749525736657817584915654895248129784176620067133575897048754673233154068621543229839823112715620691492638361778233854096980411930173120623543209268322871458579331726714765946476502975725605336336707872390309531006639357132957930367371480154668014931827981976535015673644516556625448754065909171470633218108973434515799103714266808631270163032496623999653149390678584504500104108235014352499475535699492736856981531739718872965546980343827792965854812542965393643762966887290442488887241709553194578164426043160229010119283664599964932719885460695072121931460747991829644845499412968788039491003334810628405848545632039017468184641599218191352628072652401975708888625356298489039052022332942670508573249229111821038205404651717413405282084379185509269723053806056718323801579693429238905473629765415938943486439013587406137177107409356623931699375632950745423448510866878013355438968972209507337157633033930718298282557678334551273366192930152557932533260714096256606018951945249817030563006079589067179090986530172167312474021042490832318393163392775915443922113541249006855877482753114640823424021113298356160150525878684732718102904556860652268503961554783057031884903709650286264705241397206299662366374676288285633073546430103951981404959104684261250883227115006627745322852406424297254894194981096431303547051371112453076777048573546538722360599106202398135572321725949502678382578696262355383772176696637960478027375325514906477631760932957476300508573510024722974852334918992947554655511279798398933247458789782745278628759690898876459921651734971290837398890747397343010103672859061084342251149974456532559261409874604240412878265893308500951154933555900729716036551438346400245193341040924772128649487287569364820150655848135567750169073132146641356708977403448043861706875958776248432386005669205879131274297179423395393520434605658304160300454458107868094308711175894454814448232500382285650476329830836740146310902976540598259502251766606605111765255227696730504249870377305728418909717425373814847632457716801363868347664540018708280962162393380025983906790880254539255943091892399708100600758364353994397244684509254631274902868413632867712155133438560709921191950573710744685244762755266360111393006858078959304217715074540771427411674017460684995447809604251581367613106382791518840259793359952803074644397670944822093883830081068662577477487348715707886899277753942593784704943314875593254126557753499140046477793724027408517886357295503551245020184931677614414112183892752703939627670208575702560232535308752777398832423934338797604687336381178663637385137969943190759593527655376481965022825689986459596709651923781931064142852418682715598989679321920199184423461953133975827096906549396968153661193262040339894227575270462115682565048103146282110233863281250582987953370825098536896453221964832328858978408600355355951691935111599559093864646048899962296979983487158562125679492278470841490124519304862484504882628491227028171130484357716183164886885859333577278923966449108837518778979928215773607634296695511696460633915711851085664771246638169339040704833987694872744276500914051285791746412068808674736041577904333983216373765271708043795136731465036477376261622532784363267223040415674300985727774882678715810013855457179535869787554282176410643945979109784947315785405034722023643329500202335183266883241431103222744992902223209683843022900655256133001940571024724472922721457616729945436996118964566395273893931561056359789116896389880155549594763533656305604338907451512066412635406706627704099426204652430028640602702837578343014584047676781535702522221896527572151156517663954524974507224377726384073735656198921418590624291397271077182709762578722893041209337459599971716540810518536372762725967835379448741688610515577054284045883892226569981861605669752203882576187186044300122382782681890186818671706042059406544594237440966079564369818929247394209118431375125541016094500236843090635688188482450798707658588350451681563552560716324294345268958218209545222285256305571676274432811635212371154999549451929347806930634922739679279501458142175999791319867267945432247984431162856733465065331517392354834822142693665227519520096801669565064362757261577018291602171524026759431911729816784218431367866938305399460251363058445863495993791962206696708429689273698460644225682476043497606976420421039625213491066338787797415719035447700711033425173798508426298455611662224207712100352568737847337146476163587571327954755405008730410801717397916419286377327442561928040159670494895765642301700770528795289032393482666644909253529654156532378363531712909295758954842249493268357159257511968885811906104001541888229261836287027271130508406384818174931167212604762607291753318416801067972977447964033088869371418403988538377388551580515776686439222718436847703985179212194067328436061395344480078803149947556412356885262249951910783109057312703321475445824396490460976860380895769352676872956664423745192591297190393087947745121667882662405375367864958410902444785485750202471267439295314905777910539842274566451476321527857552737095892942676682318827311506872466091140083618977422306128540202704389390109425614370525241723153142920015269521669340751523740393576385727835127381025691935678213333188177395811803226536181411941102312108248347177180564930868554795384845759471254314293206506544413894597658653669016617207229781402237405178717175895372163249391888789946269623403663471436403229766227705785410113854794847655523985062073123766372779646086100367497975935917515576046721203910307375926787771784933041046903352278767519936086177341277417773264890803164344412604756598387554068448809922146380509932946210566731621366094458677592909995807013056132560319893728786385530596737448952696751857457569277378841796014995286781862612825569047176548690128674908915197001011032462812879855081179115053859518075840115883471630735366358758884642779910485868994744825385735267269884819091623833127058282331821194485158864800362255570164793597942751787507205293727334395812929638802031041995339325678775519738711504054744721523143414954562514815883975406239808496068939737165702890983624506733211094815018882694252474600478163569104975773036332243157556075795365762120251098752153421735412602981496670360778641854227264886534786435407739410271278254422787876416960474761029052571254706121206793464486108031248308781308349617016784372210581133627852063917123737576424274292942371085298920426655542837879084743571124387946982588253610249849816200268839822052653647820858679925419393424594384866446053189644571606726173574333559760754737261836027692092398069867518111431852503457221479495619446348586529313847916532946718233382302740733016185876755369770511505003773754584359011273162486175626811170401678666669509411450448525197309626806041666632756616951066583036619290156211004451309659475912071952560661900524138169073254619995485732792631080330651723064925392513930032153111723483115210845243928067235130291183683188098764558848697258719858753530217097749873808868079343894275136706700166423302018253861338885840920487738802129115338659439273364162776071271129314223663712559730555162271416743190854046925960334016890465542274878022245938860128728606303630217724320683755834972188317610006118424202482709363508994220882188376747097136130752198078467208656481749059592207471807961508305057639045340203541684749089774296470258326116739633555639799888108547859837779699702972898301881724984217645270968472742388244544473460638551008138665659152753146918665195063093468081474643583274947020862730924407179076421287463217471059092619992969704388192793396882922147850228568389777333100395061570177774961619521778774632779009586357600741105222157020769768453974362963808730477325988337019400961768681550956407985579337722024752436148274030487499114114614606996239998924776088134692586271445692619290806310082919213096302411453962980443925271694374807669606133022366762453539326827398884109867166276008748580321866941166653710355412607390521027017485859288834407868484601563744274218759838944552987454732097658689365590110498157444960104497884683885576940729776395435729386129123781306166212802085130412162837112491211312428348103459020192209812723488191326261601051903718746726326619081485336263848294571607805894919874283004343188924252718064850451590127021895731437587784024402219067676985880674449170428926417256602200385759830918346467534978819337361532142914754836853208140744494434336232193512247069378112268050821460200463977887561484781397790848681956202062268684057837531657410981195963178480376599112396318832191724883379294142578859954116597395197263257504620393463870370136411195090787743226473637784340912035622131517650316167340206333106552295973720541683683773939728795662441933182226580388874596520641682788189268693683454838446198684136850142773035743057767889159095103554264790209214719439801349288513398450857310847495155098822787326836812164147798551081393139530831535872361983874079727352373835542631442535287633786367099837322955135932114942094977949501301972950435313833976889534411565109737959051949142263558900276086828494037835792268406103394849779650167217390782126700117494133373768407905114308824325085380272188473690811305090319837055715205845433828794529451543210700017865169971566752995466702133810801229977395968575091072980563726929291492429816786817254998437556446127770093791164297827628109144529698903973576471318655786345697016172057523125614025166933151576081129821959956695564519782889533075131192053946081131931613015580732105547337788140915658409679380955763805152502748850259910075428380105710131781793900537765972356918019730636022670410619455116154920258089531310951116506492466013645043176921516820502330255789218973230708712882114812128023008147623598643476461146152001171655756009939684961205988031994397141850191082060782662786173596135690828549775556874526482250117001472140025115094936848586857037687231348222925536713188580647411489913269744124789342181418523790956065481260354756753285503492990652100443144356642152748942488697118436422261246480263132031525566133472163149842109274259193083036463921696403603424826309144810949673505310205846999647225631753781054820707174803065030233757892205239703198918643330413256640609864334217649973032545306967818109442970301233007880684894825664984352132480519529181688636469440699737325551281677139536958299836518128230120183352729242211617922213353106109462101462246940638589184295907901805834246521092647236242053005712352434371199225210867505346060971427139568092564933270501626933859448040055286270294927293832544221275538774105132264053653128309236488696139090993471856297818301176839544238266134200451787003303605030938054830039478658142258068363288994923803023398203772001629715367758840343327931882298653502398943965724275368305723044396034325476843687230831507639218472945457361372466066559770139996296065760147365770708374466896403796099509652951332188934788309787381920952724246800136117631664691009556012254766715770432905311522106277749052776211425678099080636830430802678057682139087968962621189790422796035946310133516332612150929347713323020067050963855869878583895404806712374822442057874719773194837561894070481696392127715092618864441845514950886385892082677552559283745069127742272323468130675705113330436757355161122598115704593713670647962121042984961704461028560803929886233771067935122878789904177606745850332098417388505052622449644426014287115489604388649737719954270057986381262716584524252713644258357050972512659044211829662421451581808645791174314508969857674345477130859619098921486533908180420213048251686795245677788799191704701095490809412293011349613652751558706319198458830820103347770461200799670510309132483062950378527760724141290163817750293644255201085633965865111862559904229518029116918440025447292331119739436337266102263427148111539095418297689957046195295746545434071728472006165915385192620853695506682583843987665555757584437640156298706179945763867605240343673135627708883887897909307690213833725920976484926131556729777029068606493448125741628922425251993801043620041280514272889000948715542227492732517757014498521489322052043267803682750965823555712344116035699839534327155049812439359359791660818630718870482935889693393038966421399164564511386713312719032857894560592174692640549976590537872517697940866599248547137212982929011690516616499680571027587941727913098764952435819705055549689807812120697370088564857763288623588104729249796971125852971831272955417637052204883730176259537858320892487299680927492599731415166808533640407382508943487069092631998628282583461919287030790356966341727634942283776523707758510351400363225063054968609525434276206789924776000275161939456588290291810636676129390693981040485670745417888063774166985228035090945361205167596238245770047275542712198458480031525951845915678341053820379730114054663378680070510334739708841746996483769840564642961593026109256717921103699392954405621841914545015820273200001089652208039879725590170941861891899747061633351567383622453339001076823852970627673232573303585271364461433720630978700646313616170799320099143207084762150837259087104767274467033217781056670270344728329644131204669726219147646815861284237641198238171440417189088020965374727358131516617059916448250651790839227872463292729123507511861810408058968071700434620946028277354400261029063529899197094474696051397522589165085481247199364149519622103506066953749094988817246252794349589044314313020055363496642676642386128737583358739127137772552559103578590504391452710988748696653116008356380187898863458376382686628322523908241308469402838350157282406932408002630355429393302053535021773205662320355435736620839477857502684255837355019833460283983323127282916934273939115089239438174102324876667772860940355962915616636068589215419706027899760240036800495189622962248460399471794611317891423268688610926926542354620576562619919303273373521566405734902413877596680870198792673371662544114241076865261025138244059736247428025484356117087791837296591121569545021026543574244214783155110457538753503933221948644465027890166739626965794193258100710446229449060047973472252249213855622813081263402241246649306570189214545169531923073688432217520453375590651940175208628018946290463263367149608764611797960282191651735217275982048213238982692192700389992509271292134472604780891038526842056195352870820358974110857966427762396307363337235217612026673450294304462493040502274185489836572245492599982691419897253745990277466648280298911542381238534860153057068922565503838993924212610562638215436410290304965617572745304145470623852778574638658384905909637527837961869497148859521576657717553186570897269252523913397348864811773056683105683396233866830185955086241446104247023536064008269700239190710480394761596052454936904995812870184707308843726326896955754848157023101221494827434138859316436746814406442850348292265477679420383188131198458110793409020352042815313611903454442502521475745634497184598229190826329659728850316931861027187959933948589424691888796520169566399286687686208947643155310602636021538457430601989061956260162171147345610810055932012674882581267706839504256721670938746210787792698174222433835924589321157907352152871358649043257921932739814068486276256420917993000625735207246334419421605153025198749000161475158585548439021036513496395450141815083341177770855956978964222384934732577529538492232335772924235787299106255341370254724993850685795230207883047134325138195173482786261994894796730595794964293083707837180542095038744114507430285636995609131928533396239746199133481395351190594989227479528531944327276816307360512746833603853594039698553886546979047068382345226193348572597272282246163582703574503947628488421599819940120790123310346718925964540474478763151255938559876568747978105014790881496315769825551678729925049577158298647992283725353465648508587444311562967455979520844705086220488169365248595084981112161914322222857804099919552321253818759058205513154274535148554258016201738030068672485412242367170996787574313564295690786396043799215190534432190017702911636264277432578116480852950758659303315604436275785959596652163508159827870070582568454618126153175441993439060619260643727473849490989927453462076624763607666912805325614489648637555376506398078505762276676134481493310348921318537589215191960319377490133870646068368403442327496201373385841890485571162833179731024514716244196315473261846753809297136058033939053683350077055367347727506409910159957531434268058894250305274908662082799357185465561399834940972400648964407961572000324026076967300625236251870996997836328377117568075045893125252951607154946601407102096793677654350758724527687354923431562256319167455650787223831543299645246688825175215758358494609521503282988210679417784878903365902847532598431591211879087948580299084185736047444743727065549682946721481589611595223072266850260521402899024705281420001908827550007362124445801743475637444822603674086409569429891448079934941998241041612750750519928120268012657761081220830122735469845482353685768597643887149719171050877093116637144229703322792465112401387012071980305024626059980578442531739436632257449494572906234258862260623591830853313194351878385612577397130823200215097735555639050879397241312998252371783731328383911673516989489133993015361057377624192719359732510790271422681018262651851934785256622479581642929172659911589826508266752193477416189525265522525897456692842402137523597597954553097664165423403843450746009719452173102189292858569368735469472104111950337898288394080602787336222649693287714532003827013422061698934498915370277318866311727430897214226091434529697980258630669904833143105677895622272703937677228666363594715516136471128311332366239964247403650705315972584955977253460261053366641704730263132031103756902474752831471828482753690205922951237957799563760618565825264393760313702520780015629329422802070459037158883891100084400301980520756717554681840334388556234511837636463588115976226401132042482352209139319239853760238422068059342563859851085094014015509192251278856681781159538684330680968157582306444516325105891210906830962978205847282940444476069397522712076553848844811969302341045161028879291064719687784864646328446529450462699000807026577296617541773333025177142022900912049426786444480556011762451540309202800539909767865267941213926890880135652378634607252845554206445992451061658810261346183188556951563417789066685352810186253047569052505947956893466354484941515181091111837346223675735873735009356010234045581875166514853463002203389021525031421321083967456053289201810870947457877001791842662707774205920846536018033803011705889760655614240018355737079685838051137792474101825398139230534447708311404396882572299818203962459087574183238604897354834622701757400757057380046223417814363301993018363595568596706582766846172581924772378365113775251638693838017358912133197325461156041734369372109504223742954515950264249375167406914718356885457441544458080961034885839421136060652098317240718847902640063020360187225358729360450682079256836046798231971748441422276078655756459400764561526080711990610205040719187745524382116208266340027264219334123753477150343996533600951686372527017324377617096986735095099099798733041351776430321858847605892220365972539809876576952474745214122873474056535236969938302060317587201181313249721778152329153692869766338848076955710444185330006049950018123799792360711236121193968221187677796940971142517380639831079975839244063432004819773502138688240156397944376438990555316623950556810275154639453752345819361988760532280277970086096601474176883385925012851455425568434948241396418035744536136752019618933365480809806701490668834672283864697328487438859404024960977311118018392421750894936099442435641266526933072857263772343548457217321381544580323333303267434593713535956750301247037358812349489161045328748709533927672610346871250200100600767243669868295474079109996277959631694398212012318651267594359373589288007847829108368845311804022566949484374601204351108644645794342572505233406185527531860580832457359799946967966541210037695438185830330951341993427045793292906520432331643985178142914435960851235692073162401366459629747672054531033226786353035514081733686487910663302443574976615878846825093702185013246917179853178795106807225892687286136473644453199548264723745187515492004413313341991225464870281049823248599053656295009765144077245430272214815246484693338763713322575996620401151291617289743935199811972684805707913218148250430147455458474285964245985906913178346261997081612911105562093580401047193593323468911207790735106941645389423339843332140316084698366508486555131221558330792320414390080280877076255829424161238392934618095086005793911210811600590499418570791569046010206176127136364606589762604331751319823272951356501882228686943193153389583193773285780220864815771560745927473084810095553463980507921129550184591955360806768884059729088976985250550790118483344968458309619776784102536429369703504649388968694304724280867062160939069228525757237283884046523481591996755403811583545327203628124431787784976586622249758708867684622304363286615120785112995335833345041076941683655674942565485793651736865056706233114602486361417375733935354043230457874462359438793661523010487339682028302182872633575093378042456806091289071234381973713435920813758707738804182369141393029889798430155100147942405650041278107007510962134729986870835843047670347741057183321547695330958730561285979857584293299064856518472612570610007723126030854032071481575798792758670801467481969400771173323042968316322000655732732383185269621868705550043461500474864829461958920120220262705754749019425505767435246255883291670978683029131499315187034661830829695188036886615124900885188218156135727648543244153220083554643967684989016960700960620831510274600790782001885978352590168231802706609062397694705984480180665262785829055822842326349636571849421048880012659431837110961261182580449793409164694470862196435924690131530561767607099049924423129842525353609643937881245070549166603253348225315854650351451565237565119825976344499327624494713301234956136202327504859203481783491341051180162756797830906367858302560947496951576441934785048104533339003026913041417662100633634948823958741071972275419369730974193586527874738631577169003464767397992151923118843886483213138618240292473901046038303702153835944821841626962832506811009088587979054456243863833910366100921429916777055264089281556554909840611050644649213726004285421330114942033454700116186063810073618053791399192593819961267699636317315120448934451773085975715925537187319849459585580425987355749524185095298284701834641837666492927682461647627230720148789593809142987349264928751500621526493398553772730035029871499590627090630031738837992622984373543630958496250164799501052853151759958388715198999453452050318233433265454154879529675951049510712564649584825986475601766304131952990102763779012191534494482023720241404737674597948780817942174369356813451515233190254711338146608919852189202626863968711748501490277939855922289165673261589066983058679677623253013887256753492782919147806351475144331069659620288867776617731027254043052641681195515386450430256420926677117767082750832682475931745727251304920237282125719898121027109323060800035908803426083388842621766476673725072157852356709142136252672994214004493111224088496777741118684042099419877033350950037711769505300077170937994382203439221293806947601404283947340082930197470610248282398922094841974335983797347510403172585941859073170653560063682091340077302841454768552991858729942210122336439362284381283054133149262046580295937834065267085561156140836415728698062082431008633178033376082210722156605161069816135037273485843725843315710447384972748988640801852544997859554882726717073337653451160829139621929663881444514740938828104869441714650708659911249769776122097307584627171171900449019634846159110374147851717125624491683249663901847475168836856232607526254479471693940832501928803900691147355834377899978424483666514510044367303341867623367208192096126079737461656715505128489350829702793531354990402062107181302923804328239949597800218355167373508327051419165355303896343399999582212235328573241405306921690401059126130418511271771759199366028253293196771475596471887305930623986696266237043792288359567495153744275130088140879838519694071546684666911643318561598353768568780195572313472336363640109715135897593669457164137799300673645635626425886111248084188636150312098707464576883095380045145387968088458404456967290559648805988169430003231952104342539371880619458081947595488565072744555581964710398020439346362976163251089603969069566917314708700653584364344491540302064304893331064642893095690080134907082268614540936014453081482371141461861785846695836580617723646265498777197450871729626981951106124211921146030184831818517728850820034563590099386861231115830648930231794771119977194065959731022254715866065066611563738192840081471914690915840772617303448957620445616143681599345718661955367737439688397298234867468170879004865286168492836188550780030027232203944233912768440210912722399703017536505974164133232667983087548435948527401498248370731896781426356172088248153172588245585606839187875483014190326521834564394672893717754152381031937250480938440795729058267346388210514839502524409644048777585969990797244691811605218155754904451063840385710105603437179156929840308856160613961805582488157222339320039292256977950019679681450638948460677449549951963403382033135319794260678105148872954319250010799836653749891524940925932424872105605676789755988029091903927933274803346470274338099991914795230675617562105061430193943319062819692106070662184626945111745055653420144795704691301541525219016575230966956762250769134917090309233320926033241083073807289166895143637353776650869701369449671835279228206303282342347877974724138824090267667217472283201557914667669570679439620100302041948785966074089832457196080248798784458231600159415090786680077641461671782048034236531272777846245476972091949253849059153942349657054127224992457525068603047623137719674955346296852865328349855300335323657332598177621977898239802449464031802815590019274645391949198458576261075695688362861404291911964131229908883082683187344208440101382769723676728984821537956466358656529969417693441186598730718260128415133769020722636831423655876802040926943887071246015670687994365949843953030502758223261903632827177670896036903457529973181416080519344664525507101663155042103878258853195722028851290465500977428986344882334764871334673655459342727034584833443368437053031488407375165226089005415219386765825349678242371190625576219397432706276588997867703571688327574429998006890450434199968604224673661808775234484116092746803907137168911905997779190083917797626405531008942866663396921861042916775845021285075567765509974327027580298768118397919611146856017740985207895051443867528142494311923921936886441065163382823336826197421643585111099588623317849882842969538573452497261579923570963353381324130322823042715262794406548653462755702537901011458675039139162161379341840305587824959095136856358095561151896879448457647981858441937115184048710784706686627775031395449840233964939327593242005987981900025762496096595086198865976836487210454717598777677056345246721073162056267089969248484782165211844511341300572307549227172540207165517250363756341707036962415279548257463634938339026300697038355876803589599033503619514497904827785228737445132701364251730131910545603802594652014793469289849793632698971141500838287997716171928519108234076434139167241496014201839859913016056778298770513392273074824367086287610212491248481205460495448345485625766126835426328034469828267737313212067649877652164317114423382577513849180168551871951859243628605361478901199501889151365346914015659099186196655640817898452708556492595856666633688189748609865858939235646302850249202193221576571183082455240981090387273581255566901847848200468126072715124772074507977368508422094045929674618218242570941667861386877775057947120179292535486792559646686541502345320874884552016390117773500435594107161887987008813553308075576241059107911683096919940994765329091338146497957355443066937293174374591290150513784718286232910328633164853945865932260161666146507556357419967812931118134093209885962166261604886286830683995404432987376200475889968985868478019692352201595504262609257809918752454680084507477272723412701731877000703961768178036511753862571874525977017707646578184157519555194458216413746982617207738041601759545104485916552036473653189994861249995802287014537591053605994432247403650530035058833969310878713390479462156165793229360284178037696149181323154554836746827239643843537838548630701787423419801779949801184359109496783877955387554560285577192516527877297482154154748062309692384459086848175261228588609994890760017512641735801260626815077883179820780095871599839758610048388437703137391348849166645291610876025236590840814284594559512493940766123532712856124048257173083364836884380618326508714949565719981631511699897236912755952257154645379033571042533557566843518622837594077678070168870990493371936858268444219490815165913263468016678719302061901984291969644928459977096426576738220242782316380527653312186578252402065626413064248376629173575751838779456295291280566783396948936260142120139426572470499304721430060665706971026646716787854322061279991003473659911422801721457731762631193665741819701228673781545901332331699577509509215375811327237496469702055685616954038810854590066988410102921001266891536751782293662571021687786259159632780561409769903838467552704414654236160363878736912214052062122505845850495572365005370947823010334984572937916916634610977847167483109302200368813425341584027880733425203714811538048324391878942997771386639133671028557709224086889844961509005889841880711790744454970280228520030666265005330694406059917579069886976087295455347795367916090532392447548903991538543210087481794221565220936960705601042744092087156066722347999607161994965619350344852404535374591184375632356359864226572433020583636873556688063579085993753484274612842008502026633144470046749598155412039510442576573877123576136908048559388018260089669164333654969597377185949556873597011996122619021983763043977024428851645678672561637099109374831329415909799504275470101009654198667656177360583405827329020695446306582948790199941618131131906304781394213596258003121786285024313153774676490427231043234043660234539195194220303784897313157021155705003706076519759040139551299252421348065721043954510024406790310972956916664389064707331269126797934820731724177934024398552609034013941817690438639800727418286457841270268697956988093509824782486682135157716639776792351085722225344578334632678007354336710356873723663491435699108463938310342873527549471046889692288275570032325448058271037477001091142643994165910200073932224938999467530573871044482702035672917788351057876278600337623069492595350915135206658072049641942272204112672939838562179499480077250079500446036965949737290300610812796829050193717004434684829017232340170860521147479093466442064967632786113225189393326241331435263715129895183037720434133456583929799431788246797877300462566059738234735853333789120006213818685935541817186444304838251963481302262361032213646457598156392724617130445207964065431771995946474514216465477885604200841201443000594353823252379546308782162147162132758674773418953368811331735996521590763083642090524765512858600819113343544182085736528657168896045289778302095043507134975510369236528297934003960552251904165360758277659291496775497869147030113114454533051428095748803880369813750861076483451060926948056574925979028666401400876028223746118890908452031736674320146972403030880873509800748782247261621336070662585349774340593130028806528186738023541247341992033991810236869198729395518892262299612454946329119249214292823366465551371744404092741347939122156390837195658335300555427227167135600944298426217618363887623465051075224548669443091932896727102377928016496571385785155409996839878521822023175174181221016701098672290070877430199495439705195787189024776708809972479783065421777837212286483169710606157122921393317239625187088649893338391825517736957930723943877635496733468707606736920205223953537720738982297089501101944310669226522093558169173637631629473475501788255008928751291075282126891747691791996413454055375128952832206322538980854328282167894292288019105658123278984682636341090694089726215151722676839003663507435991094182502608984466400742383175977953258389399338273053853212282425526171760642201304347091164107294910124083995554579025545773693728772361904905984349194743050511775213680214999943640654343637681258817126162039060301207302923903889438337439066616658339123195779346831116519083806253862786850673276129494528138077081246060255790343968563821154225908267007125886096110281353788109279157114610117347919687814737655919353257160295748803394871224651961684863746056434861431170222775592717810615514051547671063395572323183171913917018155267055618866213672804193393043745470501022863028345759841532061344472354649368269882943690910574474553226246630429704712194529490803004560004984700478859397094335084643812861720265440366835460653694952929989940206890346603296168878081711601630974446927780944118903103026228861627179636615840077037767075487058729384355868945669046060342142415669899849022174193227867000261930416688523594523355029130802570021940110940351460702721680554004689624884802530458722552601374293681504522075773152994741163362355423824690922257600000851208004720256514600297790468155704249122394285221278977828489670121673117234603464159559097129668312056289229147074333622741539090916361821358100330717244594956022629257316212074064633344703273534307469207707517466638275114553045034908205240992636773347701673632391677175370029158036499920150712407842629707739819756921083154051066248567043645591058739681178463119967721136419057883460523033554101739211206316185246070859907448861527783848742842125216622790564276102979864992152915818608899524863897879188276088671733843028399764790278793728909727279101265426777554242750348168774014379404072762644403124831718582095719943544424874577798630915377293945216551327867819320485010328073044740252909641839636473576087321894690084727021632953031503685809588668342637823884374508725446622926939644002293229046730108666773505169601532325723473170633708062070641801792842374417162581064523992206883786228635631391748305118371993138380902762159174556311004834861667584338179206805757465805892341919398413091511382885491519738969488532200755703654529905970483739767056546575931469603294669124760481087538399070062266746521954222975398566863167427134141339475945152944630298431731843000344241326160094682326670663766249390205091485581189423687488290110255231862164807726102785908991698195276491920161854240409785287409546768724871000515635882377031072607372613961397914430146968433576350179957303138138049053296964533427737131327790897815717732006863333038000053296590644919087492617553711659369148961192679722205169259192056175973263134771575208562146220938338213648761368954602017244142337978519064998426898589650683058271456331731218648046274376802097857954370344553588513961506051384796327798019700615107964179746221510687914998723859715167249821053543705331541255386669896629970977404479504834141843020056886594016666329906704600407456403732264690417672729088449664748657516332365519829560089584498668753962621641765642630606091797979211079579632233401235107294409919917690654508588109951996016949375003567738257610754340946315909919680462856407068643889646594445922199447974506730865733932565918312732700985816123171614780627996777169968851306972335481975722064762062698146742917529059096498724008039765147224835804981362244518050102813782865310572780652744083217440466061439668475346802427287581542496993491370993609388125905327842290721859353172163283600295234852619068788861676642378650161557484051966766236686410106455169965555021904377966934773906636614561680133810391780632646766433029094532076382933241404198882715523223431775630761594486105820932264775840553274818290021336740548898741855520332675615664019810522235953137098808851992377830536347172084665246489310004952354946402306984644482835273954206658899999648663816840471078792301476174949402075477841843849416292046087112557653937986774255028322557651161116167855412022297839599290559540087818012295032849818585049600413543508270345800135238862319570781326884684481565725014885084734083135871230022430450402327228698803300310992845844889302465554154393382129210246933877109990100174566795858808373061671624994354066867163655816940672554213866736257961561338559214751826795608656937235918289115754849308917353598961249667872567605732670954676793923624264521196932475265716118866414380877258349221875086988332036220065083326837182491646185953916999823486892633886892676374453843756858539174579439804641843472610041093406264666540175409543851974113363739232879474541292435255018375303258939902383288833401635212822925944587336097426374566774054121929744737934817927789345472499879305781697220124242115997687165254887314391243899880857829066539137548122886655461665153628012325853367779926038047233684979799220431520723958816071296943680057733581928454970268641404421089813078952314530296515198386740675861138431628406584376225254884747240113728993026149703585320458016059685344221993049484915212476057593087963092184609599441361942470418253231673081433939240921837326731526041493577155395384784502602243724007686630610856926799970143604032145681088592975428886811901691565113708402620805106657296227868885597105089602205791114525823291411771021561030915033477233759658799109249281238120888865651038802164144414134098356784548034455713371885692566374502126742981198380649153017440478252490422528377370318502697918160096995926394793281889726753034973269247325651839212348924300408720970709547938358616311826807347718271124101629896112239055203616701869155302526809148348637100743750467317962199017674611012249474512142594889797550574522846058117317577733139604261440809301161175840883381417090502387245033781271804771365359231894640044894372102208438727918573881164360581692432232662265940015189974634542204452631449003403892744099442147625132235687829518507778731940779663196573742226264638492817112019643558668465274664168627467459835193447484950033596612384415202717837726020898530161622598054063051671018388797560358019190381352796351230724639522644033918053584179258320947494640174277660349105478653356490983623566805563210127584894090381027605508901039950317758826448238477852599938788000379345095029194501765133797108280233653740980670218752569319472843348917135092357423187205271960739958409954813313112527667608670660091365234896749892232636890844792702114749358061621829104998616417435303822832824353693450187423397123648096258289510132385542364401852324530450891316466836182802079910596845840861641407170131623834808857431246897420108046856792633058616355228456847893420706509391711873142818640965056573503138397926830251210309025443005598839530490030309453602960218354855597600735681614937540762246931454453373134197312478207410297087210405726920627980631531473084486588019571467210379415845545835237570209486336086668693624053409479932886816997678841318583638645154011095669142983794650904609086651053025033000196579336660204568796298173633277301844636392609823175635054117827848973341310617448603945879592488557703587557597938767555237630185941471086395248117495001241270107643924306737738290026374795457699479612301475679385025630388994812402602184586422108265454377509790015955131340707292408684532061786312265130255890840812887415177645496793788962907803004636979032050653047741344954585372332694564861899468508323214849214294729495477606572944869037621709232492937612152797510765096760216631729338978664079644469761837953233913495278429698059569982463827085394930009388370921486270803621531986153588904258837869270149449984444817143048707081040067648615991800866417381350146045784530634847523111562721995457329570337468056080965313805479671771439042366327322528387140110567684188836656670715810597706043064263657001219341920314489416789611567463319455492039354673829464417378102800114290118530391694781053714686258266060257455390545414971896681591332990255490450408736161732974819411733321735149253190026465010467213819591203429779047151300171146905043053226464361228124102155456411367746666025065188185920230609605925536459856346376028207129981924468876091055906351869195611536938919836874893770222381658342135489077428442524327433768031568081027431035460624088706209276089724876303297145224016847872794958886455378408094668030016202846450555584742364487918294465839279349529947814732826585429525068970043644790383455742054063452116206137681159482074623063946464056406270517965795941238413942904665796472934334085823012211231875185685155682835949159280835552736128161204966262138527625402794265117473143442410085945105375041025002467068762934573447815343203569674505867657081925500179198409416494885832130898695321146976871410789895782994654909271488400335841718147572414643771104409758183378018307917596682339071812238850007849893406744464508308263685357750390454332331462264476509707783286105506463687778173982210872273815648459937985821831582291493120240033863595467294031346197872219753986293448775045059383194116412253358063672900735770178929703954696742537731271029207366969422148335873566807446086611391891623609559444752946346284138007704445377909158620507055962575853478952647654417493913911445349056740616706699123387890192852088228158183611047846425881777949907952223924223319686489828111860111618869635572653948885587320329321565674920960839286724027687206905695477975105779229072804563104248042901412022628430514089622722403654371928729808033391115892037501250378194187844442630772115553818403256734496941208317459379937723772005015024450278709089820167123507360933701807038188928124273221595605404082464232284432186658578303766190431706273318939964231215169556724280861791342763220894076054086647898599045417410357270775082958275673848035337190818342350420645590491221591959589699279451292092098644896709302089630636423364862770638347109602145024067537173671147081977443452369100402687217673412499526368797646979720224609980878570473071227675901441246206620778381326213986700787224269256912702949527781249993631476098258397272027701353635683829751837034050833491391252319069841925690477204103627016464829151802242294063658205939723505355394302041699183864602658983059334750423147163188998575132345165291263248671844795686225436438798870668051619611024053546674705959589306277264171594187233662119312017280071558727291300862909234603082522211109636620041241449883287066402743928614660173987240874725633294957978952422973964534990013232632562346385680272417545497271679281765128626997882390085055760777345408379482853740252525346750410574295617738761854684357520366552040303108546535972544943971356908406216420866965637988918174782952524806390546404712993470112402519678307019649527577980692145623327925075206878437785752842147548120639350221752681661532954060566711853110288266018307073494762477136597878133590522214240123391428758217882658417719034054898524883821441898545535258840326605396498038072005802967612207867921661073444079834747140784047618657903105036238694169736278817932964138572063051477009807926219134171435259560334085300591508135667753490922616953910596718148889362897911072332957105612918346224293252933861905238306108082852189289200506700646049853312907872757670993401724225807172670441599230841631306198519579219334608600136749247659704295762188274944374289666034415650609609829213670998236542634122589834343736041726329700647517685299563134919894295144801387638268007788893655990950318360412676119482147288357156869956295155261357965162622082977682687350717114300155559505364517914293295259089050230510592331885092799215756690394169270717561795049274971046326618271538202501081576294550177248332682376557158064646011209342138076207280539629738391519065544080957742492674342266357301144841621918384500152150445542751940536553895144784593676179672494855905288751239029640322483713866022819717127609652004465701784580935527122425660966589512137143964494888671928361195894770164511237253885932948766827194209557537585512348970736124018026604199443244832845475929524616906743981203407938974390225004523192487547396230992649835561546727669875054426421323738671201915070859319747450029323701352682986760630927230205968112142853498756278819651964812420798439100769144237021632874502625178000667385487356014681375685158961399627334208652649801175307675568973550869051679521064705593510966901739900121950920991246215910655001063438618750260354978953848498992576485507274436730956203945275583815524029926458509786711671191421529593294692513817239916968332582746979694701439143533498867168883484673043952733254990601828571570158180824152072045393781166271180774559350347602756436295683906164283166845414080698630862893472890943684624491144696698101500558913064883638845728308809236073582511223816258304124935778306663356716837435113653678423110662152194866623192103695518896830813967374512074196930172812494251569230584783325801331613626214248207624601093060762863369060904894047082230646960076428471978095666273739408061964624747036180250829179834589250922920792680639126164184744440613663145297405835890782437106268831819680701473792688959653236339453670323697954966087824266565802732464022681407300319008546873847578875037627287286363099907673946093263064719628035644841351951140685632828218194912204279275912064479298463624630461652090982368121446676634999241303656129841607339532038425115948153684514847544901844417831540269553430216430640619811234652311659151769853668176557096626006792593907079669657809721278071814028754692102216867814422001538712804981846161863808536605997557150210607035500880636705870195814676515357088115976619383452745550147237400856267092475020674541554446524444876868154946982736052988271397805144166306306748502997868157516969858535396682514677321030740826145269150280627881549514536105574592815402711402346281845761902841738864436145839656104601625100930334926309472229531182767617942345028832994010096205424541772767739056033708993226950153693243982162632805574372335240872507878977660786180973229516570626271301293923066942965040603382496614419966464847092274865986887401162803030790283171747809300913313598357965546459240822747105191944340180990184581711892651971180403207196045280647628272303369023873055523378361891506445553175411358275540686990969574770222709683947067143165182342674609608730151894334516684858752618994545342349468408998578903487184902762327370168443105596677310278249795674842576671543387022509163910746876830958790278261201774303635151246059461911625795915569872123427835410452704306348720071733855008158296446389852321853708588856355590221485474271799606086030280740422796595097657407168349943288143005156472240582470714528946098606790812349075041414371014585488131069671775146170939770997573540453325026148076927916166702315346651897990156893152246849598372486336613800920871304028977429963289359077199324929735891494841658153782521152561917733351363616445785456668759581142438783898555849355744406504084157827359861664327066047193460356345611179220643970684283340159865715962333282930156950862267055138432330147644173353067193101512492809534106704834621298281568914544142741358686331163064714155438167364775095475304752442778169193883765791139133036651060375359860074071435073524208419910779664943464733075794558865140955430824848532957101819887938151626457849197217739091290530218276814519669731058420208500909153456407712929477322251168552820138802655825605993759264492822441742535619563052965816865565861517731641560730967704821047869503999179523580367253223184522675838658874485416603439285859136085728957435322453815687564614938300417078586607873968902178191248512879969065041667537737353053718682197677970037908192087249253115068676515039495867243235000541769364447448116681477636983292544327984633097373809447118203837704173229004191239504123533938838197466397633254612766750208846921701198933624233883715670118681997240422709926791467776275917993370406730108738225766679603226722671897210484629082097054731527791086157685672197363367102755665633554848305508166938078589760215330474687159822616818058312124730990928836592749101254856185698298570474985956110057859445020856334660194538924095608816681321563813992995028407003008758927823959986989099945999095205630446704305354736756583843514550571072068648984531192700903828503117529820978367695424750652638035768812235134049416023154598807156102262219543541231057833230527211533264212048659634321173497872582569538065606097808263594814078334148413806224800879004974725026755525671203990734929383900706767744109293307857571683793727772319986605131280841881967236538530514701111524874418912093808839102816740036787107582922679779845056768648695289020753948683984077915678801603763885258252465994670392491454943723803478280727070182088558110200570097550980682191465307661408561023073304029865573107062523389066721255662531091156808750593422350310770162927655219652632505452402245227697586043932497031126954189479337686519771038203483039149255482478262764023996584779575783044600888101456569562414923460849702680323697510819108439715547327972634363733629581821908986517083599977477755113018302833286136915168312429488816980478783258935571826680044474167520934144323131180021794613092683704021819507374663475063126351810754453876815051174374541840014860761662728192239384138875027764903688249988745559392444078999243090128502695106838367938634059949563819636160937908316121514553402904405432906050675990642388214778773110464635354241323043586295745691931479886978130459976212668368509365723662748505965921200786574392221048129901910749155247943308071695572221087560332491486950690500485254658874993486919963980554614289943079857959791895612188293127798467290540559244954958811700266275187959821610236564161836252897109854758245648967482006122742370606746042985999837876909287820032456748852362569145846980841811789437489361755528144710665692441209367546069120131538482261219251937284466631418973212595171870840855924218681580441125010859922887264986961253436490037598740733872672544155468644736230866287595570000966968349990644748499812388749667272667613279539894546808308019434313357589008487995864582956339004726111541198863093329458502045512688519695754666630393379723593433386668276264641738995775017944585264273312170417947336970567843077281537941503859565980435395752384778152103320005438414569050601253943640569550682275469177653210734849523689591467384494202444369038542134103428765939389445234537530794489818769600407296686708009055495184355631643478866410194439080246208032054484262223792466303152470386633822525273939127605180205442561723710360059125637657420041034130892826846428092880588296427418628976594331321225609565151687533874759261396393559981053848535529557868500246444142814963562926415577950583221358233270716601103219682728456161042021278530546947710012282584257070632134193889482124887883743275308361892037569735718928682706729908609499508110709675798894626578939514534418354300183162379786175667250915292770403927804107219441000031501212331147353444278905932192402375259476332270650833341589695632597003027496813537442675890402144184674311493403524863356195657398090948395412864137086314267039298286151355833581526878885404026265742130479409234905973037398445581949297501291743651753129646078381931974847807236649461643002708278819867937061865112077178171057397353405496724511785866306499351052190680200290158685877075699411916788694292990642557152739188128157157282160812692931570363660173413554809625846416954808879993507614673791379463625793583321130412317212804391947144381963664156318116791776350240710084395005687424473650944247979074056825711109882654200653530592695666982686073279978961837850934598124250811662169617965273114082128064718704301186069671645659860410598941705275935140842081204905295718198948759956500608582104501724565271436574735460734113208550795603078576119624713524935789806773558240091787094405174145977910057818639564775291827413301482765707595982592257843312616812856367598107188353930060285844796179830235206003495812530814611224213066766362605956815627759408528473397382399981714469231739781232042119588540223565342831322992493332041355243284683500523083108476718005733796739896572212476321150531637309102951850389487898983543591466536946419166451546369834089622340508275743060495147167783555104059633793678613652312140112574050439090623603430499702247968391529293009466525478247948021180864247432574327209812340789907562057093604310971245863009435480377377512217770064773702819977701351032818499267178796435732550009671951876355721776568390850272338162191664684997313191518667841726615537834728110265763277565670651154989830565004738746365353296866680951177464047276239383564176658793469125179354261472137736502153094926227041985668521963362426800072696448008444069976864925242877878289726439410379192511531565122441640929691306525449471914505157241177918489140705892415604246568283082202909346991504531266974098826803828433693732786992621365788592095564505160308678957037245101738925626692688684065219735984281803687522429159585391268755210177388176739293423973265954648931007996925913302521930759681856645655065973471341882745670046175352349192842375377185029239750318483785196791888070873688908932922226208124451779002203831411077717329119203282009912598226671180745519810070519588166400690839113753866357189404016801126597951140348976452918808276144859021121448844715252124912516532719368158399174907732668824091774717245432063903017735390155708998937777405270364075251976932353075041886872369394103695374273264734880555581255402012470126539902894907694834910510084625133312192552803364133305836390203367161331641595971268317688554080168460284716943359132517332646237433276181911448075537862691707177220794977198027081407782128255405931950270624481266516648217966062274141309137348078804315315330877241848011408361071659940221259404791905036375216102923830724804501708091104499156366068873028300149616850559803138002134024949748506029524528919314865489114780884856828694395663026328679289957545262904447043273599440107915017705545533905878491964346949008023669692601327905714793100480869758252951560852266509608019351699057885545629734049258663905802839335231713814377515660732223965213312012218827476029970580099499598596541679776257657319716947862705301224269174954393168624465824353562164652591740064603239801768933966008356922243530381519847561159593967339988800953105288222969352293703546483024390171576363045931832517049539835031861290265755526398087181697079991420912945282502906125794501166147591364486292559664383758942123562749863675309826358443575999472864429614922239807008259841902383064494342126734367616497704565460135137738420688075968077209866003995232924650924939753307182115418438982925254655914263408278847828867638762962555539152048777391069270432480121278949886939992999637279929699041964047232842668251155130063864005238412065203366676829337182931859902891319224713512424924112276351470879607494283734287503777017191474129501329392680674192582421939871485109866829601642983287870244896846579550717244133932379805388704589152923224357520482822757500917230226499696909557348348623893621656906792230305896388023236117376739664054447586802601052289462259520141259782770085895277049633748819583440962654659353600276620549283102784011274183773248855493486612487878698154000246836068345597559687321177668803000017670504742000279468636775975759721355892773572485331758468527802041454175975968859678591255444331111210196186873225740571939715209791761451955213028834120924808490923818728860032983462918207010254571886458750415089501230778163639068663442705002154700960493283958169323325297302111712339395081329545658961379202749612155301745682554691350762106743059210403447189224576356112714264855191802922628253818126287190362157939261784376498500823301928856767700268296660147220826365877194804499441910650971553805006256576469931967441371145865929048577623882048057884914587298703941124632179560503527533135821373832081544454614541284927115897921198344670803288820418145231517446007384937014652286201270837688963850270692760175320064377756907372226810577933232655182884274929561776735819304097961390812402310999571953285611378701381685019016002673823006927006641136637762069145123574225537291570984980026981756978948656346552995223490895946567976457407031746411314262847179945789232489243043187519274345389475241212095161909981755026313546096227852209357452060118159667638649854122947197685284466628474942917192597518969194854327198610891877728033428719955310802245033504781798797898453599394719641605803374356119415098686723219394641828307369651559729362223581945490207150814367536367573981466429411237379386830096112922100951882410196887669552274571061509049532247883901038449961341137784866626458505224909046564002143807917911836724277544577138931230561516903605233957010954624923876448802394962390632720279467691222653677373264159323858776162171407577812477427803243836856911908370411176841600341935743827753710597043764018504642628663778754454932129132585038069834891675800812552903474179888279665498428741634587975305348834785683100137460135163466405765311705392849093114586751206965257982360904453726159612800382518804929387675624931649302345066255799379620291003841912063242431214390013563170034322355412929302218582735358669936010338567865640785099408245040874914312128918657155457627358494525801972725924549744018314948917928742554200262115613112976244803875503995743995989752185256938522126276894068233016812182839943958227042007302744508192135337817734720204058973272433537986378490444189552383503167977333485593145883159934464731880790096592338534343339021853255174513327772295138692239603005749764203727954243386210263910078380417188645576124469923930465481465132620343082174384285627650880985134512945552287830299368759548981203506536720339331702157742340539076330261937102569791126995362509008770187378976158850702443424066521522742306312793947521393595562782206436993377139647358353372040497300749802365176121310926872536900938173141837996161959515536541208349823959890958686222882752550256580105219700463433593904574329233271275887799341467121645848231820116060335467939396226161307366440306255752864383685519196819021500110412793244593390859738052933255749055683705025960198540997800293665526086369716318296845037222769834298762811537380900555330349224145738731216002030435114823149287078855521283969582321073655093182282790493075307638634153695891821089272549567895924621954950183603415644181954186090061004659167716398531423578872945195800927226320403896248578633708240901696481778445104824378785883387593989057364009717007348302800814253505791787939479552677983410863127476501783615721755345208387603482232437843141996807579417774884304305032785152216032600071873481066413668336407204524296913445161479957667954598560410246056608470332040164783555179510723643207627713533475168648707967832961785348710508918856719288937576091773724640791341608413741372288353600331513909720440447860466022358044023294956661743662276801756140540574413720887364524576280008960366936852029024683861637071185241631580054442790162713185969054340050214145244632227895966858025993206642725186622019300776554210915791880018702391660850856249192663961220410303886257470630853947709757952628771138610184487177126216513005644861997424428421522953956231310880682588252047502167277901451526066070239168985973894090951255092951271063827385724350383244957044368879009017847380197455711701575396695640539286197177421997796208416982621576811092362439156667573619397793564115964376751048904628774751196000536856967465150938749374418061689421655194819686032922103848575008021290543645111608345785202101689296888586614633952994873580979503461278794875222714945629291822593744825724643457140594260116622633992075794712060136608047020402316796699346841833678067441279892657596497885501177325828600255066527771728261678519409303457786416996421217246772542335433963953779879810159335344602826610787529499254479675045998206652764794074408170924028832124277307813907310922926714076661814174144902167154839500276724814673544924753201974965295048702706771178208986879604160812183802711319750855191466316188046143443272258196703409997195383493465634565606994040140220215587695504329314489629303397474591736686093372749369825212074704221087443728185625025028957326494859861772162632448621031788013530296640491842076605178512404853835773225648699378478948078947549093628595918242197449365533911019692821176266561906148740065792145843834985692979225576269035190585422879558620024775689577062138264379347453452864066474245544260475540322243491918613290113789025076924407253271537299361270483463776139683881680559037923515918765446595380465058596896103660902307524830617760711982325284936052236652307336988030246755142094181792300220150172511082656577090747640387430553845713779926238621688224845366433009918573857139944039234652115242006622242060650507843674397256452052000347246299986030135785458909233587599945210196203946608768475291152516172772319429967990847034557737924522732752738213421707498756607924538496677078630173985434752009471295689880702154305438658464255344922355506937250108022374888321994658887442406207945618765623687204075147487526938887540064573092662674223851787664271333474264687598167422212904561841005130633962940423429367168653061470787767183199910409739551224049885020478473066341368687770768132692580330403188644110522306746736921036178977981038097836021466271909121588738895156423341189539471097718672376410775388833225609041675336402417000337468268266225021108894840076058121766759179085669774388635207895745955663627734484888973988550027562248994300770178184376860019112430966798791975718717305472752389046046579587074912672933601899193029079504610517424939310636027406471358172291413089978980484323573390966885351704909785650292431004731099624317501108517697394382037228955041462566831856830599520191758154277332808337498649568512446304774763183799475284233023674584360380755066952878706492871753682782194134387479451251846974775684964931972770090518683797870191702282270170568905666665824946315922259138648889379120099639016545551301940038816109757313298183378335742923824943008043783036158449613821461313746947935819822050250783809804200964758180610994729733805262730281771290238652792765523082927720710870248442191478456625214653153292915813103851719786936491952781909023769569889463147689741556358497129885620202092596140650500003546692220757826825545530863749112972542857790277664656277665049057031665793309165185947334976315153453716891713354774985918774674806146841956114264035858201269201851779288176037682809760504631603803716872564427882409926299769482192701206706528236745862099967223299518311491725166534763129240695410512086299996967245334220333316183493243084527622723708166658939996205431341799198879388269070070746302975722082583041759069975617520166815257014075453576652405298827605046241485132715102971363676234594675367571177671242126404694459067984597555293987003932061218452177260106678147655247868226163466344782993856632672026564487340827200443003748290205062698627885657594032285535816597999371584726138733240197442726361071611184085975167116865502455703748988211543977015888228109695514039687581585047953507361346489060804156520422675134942411436657768037171140500458268419482724603789304596174540965929712496286496221766417178942448300828108623227036098561110678861120484544199245427784732311417367022529754728605286976048612975897368322308726289954095539055242216026817333480242490102603768834954331011839411695750877562180708929370654070076597693244545205061022778938099369481567735216726486076191124702837231868541729945803558608360207535625607889638807591029822383947644940920724487282503305398581372901123760527107724665539934798364623992216906556998855653700605502910922311425140376089588999926505529294501633799016485361976295375126477606280910292436495544370459636656418123414430195933038200201754627803421928573134664707177369554904668784064916534012587384630783849359961261708715388128176053853719809532910666227407741227832157143314676826831248999299597294567636578483308227917375961966957199466487525708349238691869325528872967365478873968319718709638529760388505984960346346294551147320461039947408395496843062570302063945227865874501884263117165632476391826381706770264288731344983310852436315445332254999132721470077370275232218715468317022486846522499492310080151394298080072927445275959595578604035058001466697881391974860493896393593858000653113241151452722606102041460950191625025207953072964125796899660137997265598849997537564669850305800644435403173471372860275983032242007421038694802273149274209436076768609224146495257615676528651837103686152016208344872269373771588397224442140317768565630262294680600232914760614803039507139709473667227817971610324792229159279938431687558903776287474936720049977201892363369177284245206328509024656669931151417446986364847898085516974326311028474957195116275143890283732972591745179864617189452841299293249097230383830029477810017858786614613161708769278972602720372529159482411242902535790065461993476429856578494011420036866064976603741093016816020071998497521945582928928806579098723996258873862491028186948447479785927757995369591346227620937159909169445142837570421747335482158797017551941230322184005973056276611762303040116411728658673347391354901618501546164787903599943620008403456666237667658324341150499256339468635209705459140308010426395292699509046648297800769011285602792084788213770843660019353655736724135148256141460603341731444779991159945594016304731565739288444716715542634364992908245992521114290453343912668038389967094888887120080685559937469484665924168256217810732729818470415927138384423291326605263504884665236298953371087817613798298214090792049765426512270828279121315798433961860558506527617757911235035232322596680907379897747450844481102678945871011459222968486628625776505164562217353846964489238211014141725796348398982108373220505660803759472310123201707279412741432339069256061642158168247286985599233364746866499734667531092671810057140304930704337298595963525767173441966489233352002969009396776069502451795761621616323602710157107065392996399444759735722855437917999163112651772587753615648347666975798084025390396170762979586469810755089190093848806351605569026596517214292561968245520110167781587477987980706108580070151829229564101355958952359582325237100038419121441736794216871158586115894400924408316244182916604074669725399133127108049418516608153139169313951761308445157560044445823644241700187454859456615004442593067078834896828722489891321438184072824003071204992143782696665621680726308654647309166640352799958555495024195834431893467813280892251926496000150368149403414173453715796878032005913657437549001444026251405264503526161794560695003433476903064000109284818848718363824288005141854628201826092875107494536058530236734957399452012942512559151225904397246319487070808409500004172945149971876438117707702825448274009981217293987662115922578651133977085396254992937229096642793094664313445174033424469634308753361638293187530978575331543243064481348606806425179803920450431091056908107165514484477687496441252700259186290794239364679500273304462712725604529350839148269870215838024523611115576487284791148750515322623233169078337904587973004474871140483261593504319061493409423870250103988720221477655505090815100573376742749291780492329556471369982544120534608239982488241102623545130497391580062798619316545145993890503367614378849750546192416892309444937258094520518461275136758368962549088747125098033511125354693897035395882724408523497489705227869254078508482825219805136794738960705208736525059754340855014405014541232966350953472450403949971824119271102016252518357959037053265699146468062080077474495159942711444147006833085747738777719425780376781791029339162696240050376027487308651098261491473178540437596534407188569456185124972330316800097888262678957845453182972564946299620910994948450928185989203139971736700378831990065354235919289391577307752760802761671893334225974054312190395018890604153407168819274354552596209084177229459236507876232336386101056832426516369722919798465104669658385326850090033012507919590359620560332847561541843151939870940192648335592780871964098421480640203767243046767064783872311031659605626186569662183473586509294360032783180697291128424103453276135582660456403756455874211755138782543590359295928555426241841464055107478713361516082581490739439285261241546017564681225747043675523387414520981747972123376568592793096102670320341193875497854259830139696135775108325153546039139157376533029209912944763814508620366565896888889407262614326778417010246735927864907703375162009936944925708039925542907893462479680949732926058353627156162864877427068252141058731893421252239631461068110249111053847672266994824583088056090374353905977353244832949690949578291471023335691439682286646784542389072231877480390056280638398314833952781155838966557075985424821410466146016618584351572995787498310887678317237053093416089223300948293803139978418994073526531127673096127089899792223802358110325147787235582890893025652360889551829742766223703932189448204262461612328901789912510673351841393043877580005552012379911941694418736646160979105224994864362706907307763802603648149457175936107408843323577120701274402765856523150713401929214422968357222681396769385680371423856791406855699183748844068442364463607874401854800801691118542998339184752876391962059987491633750148367131123872130125112078747096133400053370831767360047687166697658945924183442016878857677144521066218952084170654492852229355657710721755003044452617453611484553555807129761750471346654196730359637950136271360489049425764235140033497119192311944713377854786650476128551433696989301374158275268344871459432933887993491599883926744517288172696918681412207429304563550927823451151668749934318376521997243308965576430652892971640393683274431573511323716531071513524347713053278978714114404728119818556078352346962174267078437635936126992601739904257973608864083276553512531025416166458811866906043788792345116212640621661419898461779788779659534890661651818618620202251934543179112406577438847363925878203405449711530921567864674290090663717944491603720656699200653017974475674859887768939613570717427222905602235567740771094545706806242674860511026913413793981825668131957788741036579636674181720462616530751330498864958021265767063626270794946111017788382071804962143193283638021989404490129340423907793777631840704224170016458600441143609929627362094405057618363440892296529910672990692835596650944160502663451131970530194558482789449958111427173315128115078624849269316078740498314391282304767923141109411764322337170195753250197842586455281347689976183785096715680094876732118011569825145317179179638959796932712780029094890606890014802141109281449434774235147457039303885606815978407630104946955275621707823211234485119347028296433848689794905740437373336578211728695873100999485444548889155538750029845427559126071158313680494216125123806160059668885958262694782888319389474467475213096225121769242034049512570940116174266183617768603900866447225975305451320152480815916282163194858031100479916003043938583333109759673270543351920901770082834405603854352831896669560915798688554707660762742591159109021690385519197073895492994654668105247576178122602723001703316955901862963188825744486105754510222011396035183192104624498717715248273174641786653713523762326104883463518147101681693589600479665894817305338025439950327486232421018901793003203456170301498952146708972619265182662648299885961998683402182521646042649965450720249025905429624729823958395803419542123559939415082811776705099047630139838035537790740850692014812698939538708741056090786192814578852717749218465788177920991829346112312522406817575298938286288939028631934285912366332354564673676501663505869667763335360497221313118732692559094537859301562910080652587286858650881818977650416618719064201480219732982559075116627918080280669005228206422701454297037561785029214075783284883432562987048265370776578554865796727269744931030856688247528838405324249931976890105354658721944627061815799047412875655700796358902294189965623662437638595597035084230791949500025507891327693601702052692829897736432975546299515313276717511160689664932038274507811535136382499948847248244419259025409200265187171699760382016311785536128867060449631653176561384014948679632162575218940295713430802836504212809200735019781552515222620439628310123207429264512423562717864576249264845458023179720824778402053534674453836733538459871821905891646718850620419309497708573112885934746974983824490659640341503233766392575983167353586853276885404582771953179985562072692507532911519811950926712091420023137112826045295227207693927287305602859490249997461127845325404180467384578386516655078900178098051296967604166083438166716065809828728833151011596987008948374198239441301947595279586710140480016162798062564359611486644960435739550113972321704571331615630242287000978335150000355190461453938988268182964384053132524356417201178963445756601673074159399673930275442053264227300247793206517953376528762708367539260920226365337081496549521801536943031220740811206152790318792265569454722044419500596415561585232345675966949691256221626330438973899196004155768739092236445900243130701687817714392669270133400905046361893587154591416490773225814563610606337749192433981068086263886833649702744207427056742627490219742084621679943528301729674241363154297919019332148553007478747794249639096057837252139524375263226332158229322236408721073289300699198544759948550326184233561295260570500429929790209722040429228212416322641558628124344375109892083053111733298728082547430934683645587284762951323054435472209439398324390182179938230761490355949371924682672260788268711637900693018398686116892867917693394321940524475891274372353269511332596911425839536381371979159823110071276926618815479712970232398974843659030380928392456172169723534064258635174848888582887230015085434736162639405003645127494045432078266677820398685729067921049369948145862320472132872632490151690605878559151564429306072387937714006983221445808197743349659842773697111518838159215665405823709761043489536302068939983531156242831774158227181433317464513840701513806079346481469972102343208696007101438827945853848067233403617514431181559639489682428638026235056487507400500314845299739160107117540472014448302804924964852405736957821656603251411130374760816748818194667761407588924145357196933672387322611710345766175455444509378712497806205025851428492660415997096253756711359239242383259237970770405260785312609507815332654831953188379181047292542205323995214919599058478842219865309214791985123798937765934656610933911289505100732386208384180612332119819935077385487829398837598925865845486461436199258759809612135684519070146903716824797265331173994674207019727577696588283078758919994745903119698782092875908207757218814041499740471478208442961797180876353626195573659525913137318433097010129855376461367447983704149127982884708738107814079560781023762509278892857945756499067953743324604129289778396464887340551139704491911506943608758229510217197633377518977664775528473560609068002648553545463670407900700956005949814188938486109098676058719386268019366583328222813603597980300056194989242653619655061206533640438716029271534088638510715238294519294078705067799448963186310727723222908285947353204849570225897804950086170800458344042649654564099304238686982222204447909415268349246948338330015000234953652348077485279878006866356506276420472723460427837118346132490719819658447276745594116364199029989556262475640942795420007923641235877474996439927008624257049628594024972418460901748543696999422346702862121557968517949407613510144917339257216172768759693750248853762930561320400637797444689427300003107402857317187993425942424875560618459861230554934665996070819521256632233860480620705779740004223209106092809659904915670145049960562403373882001506779509805001797901697094946786778175017630199089309425090872570484756532205121694794730198178597117659235443049373963322490584635235526908209138104254125641058947398136458012387938530214163276264810952241023582074975349595648405955535151354837938681219930469944845509784450579725307087137105495788126311080052877472524612876264839083245883632593579276524334147145617077555745807321725241681093302826921481186297350294541292654840973115946165383958986230235480466713521275476390020409642120340721650050348107228389096036134671672675271413575010683777914199006798252974125797924065293787912172731954429313348889525625265870463200968526850596643192659326717943426396452324107850441986350123612087100186372760305564513573266643070842312530528395632793155236246535935426604279495961744305751337304221993339855484275986833920967094209241398003193044659880319340419833131804741075767727259505308739671158855537537957282694678102159909608337779296025728400308704881298558551098454761664849249690870681485355755179148628840420875302324010746302718446542681325530304504118780212777607528366940535021865687438109231563303129612049853879155282943531828371799359007093138367281792025855039554430811408625990013205490575399856856271685677474380434172082519698463113621916138081742714141478077728747859058376369268222949323926728549325018624859824580165589636279096146421400570008915157517389802852298308317918619537214293079562192676811286799312898729639509574697290324128352114156315056703644919919448468769478287045727063636935896341583862517582837286585288516972772952686378169669216240422118226290726239212735588288126965547122911390499156470403959556585590022966808731214763733128361541344591659419010582982672796625076569935492688607469564787524081765672181496483728294223667895713189483388818857467834523874587795417157373146412803028010240799828333777141522290087305270567703215726594437049703993519441858335284645232462208947858037897028878668108785126331441543348259602018550009729752035150026683159534344127611339492764901112689760035328109103104721769702075128621382923406129261395239027298744343002804497726625497505974988721735483573948330969555389056056751321991027366570537079792210933904360637122049672830579059689121550875048118680763015321837730042537406015492255697693781739904195602803860090920710995390416081070833662067461571302505636900785304047189469106097876496958731342502011692151093783963245908064949074945698138367987441866871417083652718745128335782039607758403037723131493003376054360523222346072714513488646871239144812169129144207296775825937216822163472656550368378065181799341002850729668240397080976904920607757610228533689685251716346579548959951749352166816528105930841265881267909500792095790533666806180290258902860429207704909296236101700931392853136164021946473278021572080505510957190492172704865161763856902743325429198491554567693550990136659938072761532054786418445489142784794410411487412214681092774818412828538521538034119184842397462999771828197946937470651374352828824011506784429667182374572468766158887630027449149768343979957322213363767623103382723833915861571573371935052291741254730569694751714144121467968987953884715663606560498911751951473494312684320027389513429012093532574147289396269768503839337025339547893845578739876826517718157411898671275181942672058441444729517754600570443484823579098931158992782299638282762714361086155694171804658167857167032613759035145407140068050176018983377837182034788078336565027773073090786276108495488985083009620856091451677440864306974777697464253267891748933388468985054804263921217317466308407355207175772225427981171784879030298210859431281306964234424640206286568392108665855693022297628525714571531724701791831597709727256380154819714144773521368359580753774547452857555213173423112096809483676968874274007733828217683779132030379798793160944605501786197591781718088264217993476462813395248905427893387739925804189593353790302916413043447409608797248671587217447861211061884291790022172845126908992615378256610057862817000443164926680395023753020073756894083763802902412185764557864425646139798916916260799822932020164643451520116732981017289021362026075109558901042007154485847681930127778209629375257900576047040403980852676871653614818730510732129729090544560206498808443424969074787814413584607355793031165351180461384902829679139440333157669743554384654386676899670167668248925216055598992086525297022010443008525611538186932698211316804161596245301450069859735885395979377155099809639992386659293690891350118597804789051979098422805661705639957440963176746174017185488480466047651435043530174120670467064866603712019299738125167367875085440631420694686079356010455370537606040992511290538411262831611165456915712409488110599407084942105562209593532928482503355153360955345321546827496355176017687871183280879835802082513538745931736619999525647521317019977254354266175140539185630267500265178130335556832707393456763091344007916386686413763789162022564083191740025751132592639435714491202541172195079180985617218832618174485532382733266765703107555584702713929628468187729018859065499050175397169497424355824928797218850084338395075330539591625574162039605303406306225342161981441399035685665111641239037984111556171304736454908223638869766505503459116071555089938248265536974329584676839058094693887625300798629097198240201032711151604400555882515614455280962951056258202642797569452047613207117839770343181373584866951348874313485014858918833939786391412583179535141990124907498617722295999165844372961903516300171393804407408096734296883749005547574369577336694761807459418687535418477368074660906449637086644329298252952033923035143724293756818661396112932468277825706106035812763660062940687580567983281581585555691837157799198589418249634455537991557829000627115427181114036559853969859028449343666394558825747746890074183420663001336620375518353537999754502420574220287984290739250591388217247070206003642151392387680702425321873397640355367206639548229232226334131365528838442676665823930053340475297358301593055571820883188735473254634763561426673393895628964245227054832624222472898343685181527922748631649473036739296188530730798751723445471627427944160010608329163669831925028751748941745658300003911527137468974032863565856487991009049027536523886026077427337673032960014623797129356660782691483448883001629433334761697601348007760794239434537024927578781759922343851769838217552664931085254923858207774823603195345210966206724678193361127627462284185166295278456211380187230515520431216776431847205611577786569445585234298436220670858119826724404462615099085006492636780053379574409042940070713510696510735907182528680164507833977911777165067385947689821100747906482596991948744418096023713007801591036559938636946056886236658496080362907026662799517351721260475294566232447515669915561553069073464837284487564939354983845052995443285277385070162953877753915116270313997351356366156978103197800123051959269352983277807960408715578190881873528884056788706720567049161850514724467302285698627106974885967105803419436942354011954810092913014474112164115069982309912414827924841087632644656009019742013795510803883161096126373186145588406857505834476391745520799947378553954873530792426488681551674431883515161327927275844848674114339676227078389672144100863133557959652866368362763086374172957330906152976547985534541062112967565873410800660780600849494240713759906916489303035807917654488764903992771790109670341481421653339989913231279375440882666625318575069057243295342524788140628148395026874333565337586066230243717349182729031612176628575438027636925159446179019338540968565309500793476539613319148809334776716686368942527276223614133962676040969987299095740577334964668178853052865879444873125673039779110822897310958742557956459020177411164669071872962711670178538801657955057364182983702564599652138451415164942822704881440893809053293381645400395742047709164869099024823696565137012606389711896792127285788382619902541911200451800484761355062965382592131748094773436558895349970672168812512972818521156333368251603491387453518844783116640509327434571784854944097297821338240375687884474685671783541737914271611338009439069554929433892666848311432189213009843706337618100606763825577702448122003957032288908161607844364433314614952394505629601523687468578062822830158414133364658350319360544357952505273739499147317193329293937123364095854996233194917427091414514449431232709060955466517346720318697094859887648071585497873388955382773045402943071597891508865146640730766173330361154946141977941472595486764729693176229442662812127435261348629563055077990494622570946721101007314946367711949225558135564240462719114890701871582999375436479455530615685854200689935582222639552592907270270144171989317145538335213469669547361814849320911327249563847983029156238006603689651230311527363781754300748292823206709129577552268626489535372268598604140476811393956428102661349497879920569283285295390461169239196683918152731725784949080645799698740789411937809468027694655518715160859051733378921564895039164882690858453149421360591456382069101769722871532489174733780991213093924938841276524551097897358049272413391415393933437107376223730441251239885130961772943106545781432063918794269958972889500601355348014766790398378473681813653804072098476602670475844190539605741005871941367942561648904297233385244407729689760460648078905166462050075559729008927295458436591238909396172442477503391761952547729905029736587989305077511247019918454781017762646905732103495477233389368085296629812066384920111230366828533297234682609442114278882815891950652219388845212148424449916537865637636534794376462921056374816908346049974955265766845668923751431880979637678820558426761088737744531051678860425492581084377450985332629541609690760513930556128966981518839800067144306293734585376385938806267289713439397232132983983637841796053777177200090205360979220732404109412745988838994701457079945241655266077384984012625344051700640883321886704359433654298273282146526524137426647061406295020063802645773140029588792479928919191124435637335946809084628076456289529301192018797721384286873332459143079978185549799417270330169598552872620736118770844020137928129171586867008578921306241545859748801359322917420003473378090073675559329982568774548376838109322159439261867692717609781482230627968165860168816649776731960611012538047323885593316977756828184945636501461654224029407224243466826562624481075566007546891695177878423564536841980129803158872346911833862724614719543490991613048256044857610594322913355398066754165838107917357523297469055268295795594272574886213835708426442122528869537651048609821160019731840891065254173061621796217277008985001432745142797189978416953915785679437186487044530694864878843644838621551009131127797445728141744346595859091422035768041335504489590177167524551401278986526254686485534600081569294274195343379099001490197373076517051139871499177883034238505367136092081763592933373093828929702386173858793870572899498987757157074984182356675589441808078149901452861726122739123275273695556604117373121404482823408948595417352493028177620159746462338676278825540869796813252996056654996379224234916502005315172296171575331455731563506969437203593942022238193400853849637735417024386244235292167664390634414595528021978708023101199480487420793318667754670754644138235049834544382123726293364899272809327262466360460719255706905286849822430272694344607754980826317164738881871649482068184003576460021287287765022288636413054272108122844744742778386402794483771156429003737267614349892108360608870452564212429855639740435626886860994528414283336675097596782943272834853607959252040114975726344217238210155266145266444827193143167870208228155789528124350664664650369709696635034112208388704220617426886932739069284639279639844498200159443817444176672632063277805979572204247900065161135817307817812718188152292698945047881661546711103333681686366628626612699392171796469715175167039452144355874287134738856566970570739982475502007787911743091166457202920857462370209987466144078245574729560792031448203973317487018782567053973831352628626046962363475643516428528521965573899075686073741493643322370150489159861000032125774310211687439531133104512355481339700947425436241660136050530211445573431770048362463555752158829629851732649079904868831852158895094641404110664090748404729305779219760529940563153991617191536721832954792216303851102815777108974094242837692317861283422558033899140152442564818302164358752208361652028811092409071158107377995447868002706083902225658709529997075766649926817925186322049935946385245127024014940721007411743147207918065192671256545328085147443926919406090313508314953752695958938751722916316767565876696202538726926979411101515617951419936451190373394985450417221559467476758460764759974624615626428632397540379322949290501836561521312040638324309446340703900325481019327691673259313788066004323941640410493486356700518931904399578050012816579058181186847243962062871413275431790287623564548368026786543353672321576266588868694602919860215358794278436190039325248297588740427556116284087521875104948725769324241144787916188753583926600902865746594898306092982904662860525229835449372125134101006101058094367461009625790681359839988215373838116760035143539475652124578782437329486720939818571677090249912319273951791334025874489219623523019638633870330796074131938257452924779370396951955383558898981643507276209095725114811063500177564776173211823327929076641766203331411173350854155151813894213073401275481039834247134998235594637261529705529993856055457253544675908599701808829143345334371283299372306458077548704093552540574381622688621570124095681587642895082825417645727760601147701839372992626198117539141275240471992178122013363211376340423611989495705831418056954537221899182530559804761940349666459708664992352026149225617289369458063325261177844544624940434031251561146125061056304262049193920154636299023707116054296304967022548719306303228874221864063863848660609252458626436374957321137013160118600956535735456779494223338250118769552124792076960943549384017912928842945430723387517952873243618846976463095142015927579148122974249318210347179522851631473776807565976534408931352331263542359149410845522870946887370053400326151239412042150022855030448621686319076975726155466666120318709295044008799518013438986778089089153028617562775392005162582892247624279881964901505913338437812559671029447945222943795029430643377005935755229540296745892194935883222386638722997857665573104832206925618304375181045306814783238455984961296608013420291351645846642069683487154180513461854911018569337011948193172403677609777383704147196681973036268351083284749557602317530310596832244935463290749417037730141516280972620310066790670414705111121290816862372514394318538215821042734604606304770821168185698362796353972140199336649465141525913737463448467713136964499396912211062025970917342717185208551699809833249655179713563294128723909172500102486712066649157813253840559901390078326371165194636621060809077103068820612726258121216269271208819170836061420564835667770337131518224512386133235263663410753819280873522551459403324637210662728624229245280851411347666679112143219613686661037073612639657481112063803331539623973295253611375388745840177356656166946639405351675695181672595179623118590944108310403804829166174428567387822308136141638866083113775574401531829983567589374702043640562441736728721675876934257669174957664480625676130058265217163515992859969812527372232573505856457754144964108389872264113588736053183431771124128633482226728211053915936041242126041099677903470479824955227464761021803052074259589641013400627010165091172506088521876302309354397289366793201415833879482359145209168070875872539674645182644389528736127105401588417301923285808477877298483498375107501443807771268796346488707854976565623242525971379076025599761123483965432957269302855074635356264222102202445336098635661313690572566020131710668176490253672652231144195572315723956873626282162176344510559731047016305781939463586388888088330072118037293487482201856868642584687435490052617203085303999084180686604755012986448602120223394675362663738181184316328168273987165337585143435137894158445501546051759824135062093805812186019675516460417631454957909114676101600472705278498725555614130928856218315653434828145247271486852461232927973745720157737723958166913737215482968653420182683105156687292120361077873938265400163413092413585033225963200894676127485716075560243171526730250844478356339896500532570185249094749998148214194829214399320442038495057175440023070750940974116647283272655239724511174863646012626885879850801949422902980947405691009939714934226379126075112502109443031647233129381560718360194375807972111487277781332663356740337461157357259765395986045538623715977798221522732048650112944122008025541446331082177717817445715463321334975566316615271776826385250917624165299064661545366133627634003630271496732678151526890387973956336531270182987876340673696799588310030643626446231041012844895516072675429134556308297840963713759348574986638760464906330365689177290566099581832773920663099520146987955708413236642911871960500992788409377906846099781060252471164463713476411317660178393716737008027634706546624512559375513692655848127382066481142712986808272683175631003554703024644759023814073608825582814435192659324997367712654185505138569499515927209083987191778932116594637870194825051388362110386394963506878750459754487209676573573898103314756718040861139138066554979214965545295778149692080733795550028700089763599851839155828095816930058642358641790513395222882172130065936867379676539769584403955587055792457312017809857617681933579918125766227323251978153042440772064681992400409763931454043912364715380619445712889346608480363619587340513967381780464661484916706631729429666211290476047600374901112482982974828226823184270751783564924382921987154267915587244113166116879824112357330564480387853289095235494502291989139045025437482145274840374197965665563320482655072039609319713357518226081859285892318995220265559074846177507639845468911920872147998137327856898028065657139997609347995957511906001349850714827083587031176686964994605564896255181024353207344205652553048753154423124238811253652872447611660727543989194857103676632350529942719767575104633476225086713377760301680123128796682747386379519846352432584223378195873293415708786154512677478757119110428277516973590897701925165307279123938843982629340543161976324860385951891376014560954923840394441760958192459752899671993512870123230175268857744418101977021608189362749839908003557131710254356251559441578148235953835808731694009393752873267090651750627094249456396442767896420197687271545247660118996463098582675821789153878003772446780816596665660226989291575823057154081040551492642231750275496032447200061707613957061188117359305739717289929138843456011377437372253943385233996480986850190124562249847978746342426366590502824639970898845760646448101699591164020568011936494725481804155307317124893448209057120477678397958828707588046350840326013426065063150962254361689227718157583832644819590312933233719298419286721692306585374730113599550941322426777042775274154375904636440471032982683594714292742667730796401233506851554918652230575298523650594211054919330365713923453396847961472613850120696687193376723309186124574178394061885088593748936744306562046057373711888522176589736107094509851164886776093201075823598940421382801750390632128504466950584526863294049249754135885327642863112624574590126857705833293802119497125519162923830327382628653151307471270399712980178555478040262717825786877366188450179093982096774837484049322410103175936542476172617225048505916018721558601713845686739423403231978128302000633848440066999572551982622092036351202733584135528185655227875050294768863206391486029222556455917716584713763305164564124919675593747136303288060892149184589781522159960362281425274678766469574144894300488163552659937028297717596775526931189441574846424947013123464553487367675873918829199684712084974801094171819338235928598412299717613720692786216993256947942558895531448338588326407389390404002958495091588200623241308895092464823357462919914639542455249484035374798544086421712803078510417969822341991118697840100810411658572060126069098666268378377314894985756615835411814612455082814397953239770399119829788843873281518505599535955073423013496679124953376343550377731621941048144623630792062346996022381785945086687969326134628320003658421812914800315619408867224168702414577611008968873819496753149573772089448853478167840222300263239246254097582920870890203596337233029462465001362276292004326999546857548797238853046134676809159971863523471826265591513376456509801986354939666605575219880393894317650625720527805213623578332550464280586521723609170233840642943901972611423291778731287092764706488920341003868849945430055801878983455214807845374219933155811029998172400450529938513392496714965497387396742001993767465294462102086440119671135307184625458133012107355140039356724662108550338591017719482091398032052647916112134378775218893787520225441700111242839525551773058734488913316865839954880664688198980797546884190598846251515757966781681930592281037020997429246190968278414574101421241433134803566580703987648806638244416189025202197285199375193922683282521356960190492456740825003723783510909045335769820460014267906110819616668102953176077956431456594194062750851849745297381145605411167468642136072433631512372641500163857731485403734777197580647047820109334169328475351226365713514557869625588411500790597197471415678309372953420466740311351845117199459487605681626138001200641300746769229264061107437427503624932497518720824668882213264859310516450330629777281352597659393830159194571032130427956973531707531160342928567133265887295434076060503859250157987556274585353470198948179754958014970878780503237052837157809469057017927905338511382159887872634609626706273465893073883545646459428740238885645094030299200764344020910090507899895629175413586378993462283319396279885861097493428331487873033191745179253947026978632560057553394776085859483885227672465112661553135472476866518226106904946050785371041042559703592835729210241630407392858714989129188157726931186751785457546368126153205734521222380830280729637836548232552685308930150527311659072755074121946874825057137170419271494047330743894149929815940093099255010745553094112247868756185046692802140273358239525057472096394012168724260170682859439103740928440854486234160573733077682095687127743527942891098679833150685596650963224748016193086298503501916795018883003824520747519701783835929616929076540834907410012166193786994171971544506255838881668082232578762137997035227974714021555143775920157888404232155265339289099879299392138337074236936515766558338624912579688503347072357413744672174740937600591228930498719033869150995303580992742432264481677409904734326759783637195539359829932382676717605614086737391409268037064279127062456412462290567707043346587197754175155227015928203585921382924730593067270384436342374068521377317868787679788419203308569463088046865721092236914186712726600777096739542920872619515720772890402926282440665803600122977684107176450876833304051850280921209327437870489163492849996107802081892904933458249298714048116141860367429354840252634208213350200139387217693623687937760802981114263832500237208915261457684365656507263654857301370159214435260647357980760789028959432912284322104635319162527004281980335668716885518561284817038636024686243853231899958491269250682499528698926700268613502338161969767991739441583768723622675233832716169856114019199716198133828552410264901409523066496947212223247862416326036251005094648626682614762151973666969589141448665659179093559627116082146668245423525755476723931913182278764485113963404964801661699433896297149403142853728407656070015939971966538681480722581893984957843231398545464510144143661824726466654993989800544756002012464486203492985569099239768048059539466636563263358128954516868833330053982554396452430956694797355572554349079104791339015616172978458832631631320909128367798586133504119458924876167734916455701379359473576805028239688180498971242642697168789421695565945045107703265319854772165643644501185538425675371124681204460545143452926067910491843603761342459367210905793529156138019345412892153318983926637166416033574284992009197071199685292968818331075571961832423666396786362030206215314653900148691481785562847646119202741594636505905287378842564105977383996683993229455288071282867448094085080539999218971713313287222148586003989709465222000937756850802486385914058622567542612803296764881789910639830807185476713112445017489868286798323439557657816100967010221535870866097702359202366951550528005461015959179550841976253293450235107216922790860922997150791445228478736473236045794054770235974819905143525531190049965481134530059687421627844128926512332362408587566371873640708474885474433115888810494417635447251502484763401959570624262059454381931406505038832848729006945101961721822384265179775061198652180588472006788533381847868152536934137294848739598058818631707973317839854108640539739654884482870420053272731290463953769677889661232637503033529314510136929311526483087388389299303330580317464788464608054284324669718602601729966797612599287957545352439853329138123560438735142186870334414553991587053322594978689347189415254589796352488210470743408767599450099960934023827541001630735980213774720537623944928655822547749000205004035481984008060564042664935615177333254471419738185976704579002247079310768718294280605892415636644658782910469196374582554768792003270739846719842059129516989951561242947093327151601814223810609224705255184953387959388534288557272555663896597475649005215798774090264293630116421137465249724755585357569379055717060794724022647507383127535156455310601931175476074475980688664266797372166121405882529626323407668197781968583050456048733884815208909451376780835131699374045073363646759735142176339794091511894241266911129660493386596009659861039508004014094484414547325070574559570331765844514803256346954450135547461121522732092330330269857198001462190138528061349261775073507806970553993086030421977004098196703343732255920230764598557164213627838216156152859846560772105293001054355062361786106739974377619017418744472733542702861377569504055228738583068710849055722776069575462898887420359821158275312977196223035788234097514012456001952972933650254524395200886721969828303211212637114257198390871578944170864231879464855043213318831743722389230191990945781876088511721394414180407432717940457080606059348813901338603810501396823232908411213266392563463416795126116745423228863800584398125375575143919957524248517943573901070853587414371246659811297872013395628873479849853650183620606525757360642263880421514346774502857867256893019758704184443004220302156219107178578826727440482632513981286350034069375222648883443901189428405181275134332730973947742810529892679510300251352114444252644815491056877659958642129322595059736019139281263305958049814378911047646187148295541755316272821536643681935869763955463429499997832259245233175172327510306142264052828550164619644658296760976830418967852646199841347126391339518320804097109707953687346787014284992915305125213094768189440345826371583157414823551467898515567659116602588740907162918368770052824568970468968884164115061009701491499160886753991348939822435341738483071818581151320983293942582430968073888992811280647524234740195150191663790332587403725405774189640130708039821667583198636579020573848441736587251598085624069669640622077478489169078204689073876097235660280110741376257353938877761544506398915405307688366341147294108201268959824799637151935113572217786951021165442278640650452956210532756087179264373971343115536253651030913128810352187102645716242843072297594853307530555844789762307878059556030217965267200524600223524289007210183083306754744887094535130006728293447816725069880473325356690216612598547732167852025723024798789453919498810864313799414744462878583049001535233217095062809637871464526655251469865123027101553669763323502168393397232275786253442124294601407136319577033609762575251956649983084885958253391692803486405657584583031341393069194994840633198169839565333335121598441196370756866072143138916363187125071409665641417253954188129651990781391623256683301762918145806746618214304191152744034002348702292364797680619208470303541922272322723653378733352739103368118618832817043460909182203129175204163052341044696656038961952757413193194522052284688696516179160035398546139604637710004977174822390445112897411881257087808124837157522301956615786669541126136994222781399912595039712890580769084134819921705846025796628660381798536633628102388282326016599225205413731879444445933875037533547615749586555232838436219718621491237214191476582133224486878251399877510321431328537555025373067647893398198719293799679864188837909963351007890027973829396125715496350759139401934346791022941453567493475280887808950275271962547857339906706455737696614045058778814050292196093677139775797126429076644191261723102299539207793115237884977330696674429754309182467973101327582148495912363072497356093902582835315078747981598746638012642044892169256251159750225335625450429174103631767980302563582916166414849881040004683751158244922172658970886574296853166060687549323603487437720587945827145434030029865926700952186310290233561771465192707766012924985390394332888221683271789558873373177022240824276503991727586504640634158779129027211805875738427668673328855811543363127220644603122086209372415815565145407057095976052449759787624115640008555459025421062141714337372192361771624753277150725353930017283660921300217177645902223145727985218255901023313674133762002196858237026352767636818261670092862606172944175821415597656021856065259120426935654147545575009238985823822876954936255824196740396623971477510212783048904468577273656215642972953874032755745375780206604127415136337204320975459756451682802240138746067466017702278862030505476453786364086547223993051606230188404107144265780745595982694072481743607060720495724375716801572714213920792443170357785902835834372911691476131245603532510617778827070818956786168344799128895384257402644910963068915478224483249023187749398491105044120209109729087951501885748537158178394268099095628869004620960816509326792514434669320754911449661134406893467644296616709841866597678559845255141028118949684302794182761413767649165500025820139991144798418756487971729994308330763616629556527180450801427838880115535243504325991355754358377250151644993027742058061737616476079786135477101113643440313522892839631012886827968821361331874153191292381666935549974168918032537149784410594411954871556267207888337775962670004211473162968950384591930069863059290449100573534051390563862651338897378786332315832726742982454481865129438454747775377852082014145854039412150483837872807819405773622481939889180005854304393393747475347411212879621858406935350602650779544632527793928387227346810549097122500581426698200563456185221503569640135782188970950255555425053741666444110485227038379491937534739169470597679755239028840687462976410376410535351279618919055611653932656916157057270530201572698973839948834721947716745500787499155899551775251953872885085354719590911322062306469827264560014778502499214349622251345812958166656511276036842618889288128757813577953073069463205156941490789122571528633961924811441665739103544333432827000942849433203536418628268043671639632587148717365562222087186844695005244485411898006587184075320851827809423546374742740195696535517070400079913976770042849831278570588381138386334264582858558248537671713210669334538689880995647481507442471186008267671557476454859742968624358050178142562057311852261671641572104586649952371531802049616168681091199141365547248607710823113160767573361027156456430680149481275715263287124958818629675646513512416921310062668747955737734528101874549478616626065059880652214884587947736375473976781526231503329887872913074494551298698373699093983716642028437668553809371341265188258915999711952086502984024247525785521860297789557117878522502417809431723403552490857673471617623904600883049771502948985604916382409648038553155578396792395302417131220822878138563775625911199518832116401588536321947680120106169126456151544206886817855881222422320054834115001662166876233759431209198616166616606944610446535285883917756481363024308637288177729016359609946564922204450155735479666372598695554878201498456080393396891186202415944117544427605292046490788764314170425976043243523818184626146938737645460815930064742879173497059176298446042043572567819157995479204676639775727086804413606402209736484195857002264104434582627370115559897566519721285763654047264056734503706822007484078217458168282872757614340616763788961167483357849518519271061218333305035231355561948091026144819484087115010393872796054881317969528293749129296479005581604267328156623156786445001087442194418769028132382864231753442183876932811062551522790479237913682060408331635555436037833370313402094299451552207200286886540449352085261971948120933524875078458488091197921174155108646432404739821205148034831055866443758577912306672911069925099602865964455644528356541988087291884408111415538730331910468048571935038561386655210040592645889674592331754262045107900760367699442084185762404363873495926993713521964318964714427457229862207598875893490999535488167442971824263186590582776115804963533522885078796255907700259337200810816474433455207351064711067637276866214640407901362823914258056099438664073312465069789605909527562754338070687448474078505038278842821249589948934527927114281191414573213050789452496813870727735035798584064985487113459203160819765831192091701435838020849597918670256898715468211749251118348984016985633455737010825631463449700945169587748195164013329243934506484802586150042821641541626138830288002618961949171234082220757012238723943628468358428259286670601945612269305874134507631449885721873865119702816325127507339193767073180536194845882657490555157730439355111057410580659936182720877480993619991101426199786563705767656727780864653219779445174812494295598165381577658272243763615658116972170691836607512873898658600858251668983634114024901142646863403963708048063965630366149255383562217223766029094930746225564559121263610550930676834697782400180614281928851383394982758917275627382049040647988657687083586439121290804103939024385861896865349878562757307511484320771968707239658129816509475954876901385059483012119958803859041485208282834064627308263373207063259323933804819713355021441361405940157182070886421853846998125257292932697197284963086294543285204539587370575048846663957833802088548584911215648811844357854412165914525105485803172878878375379375461318457520474574638686503559091640262196109651845165898286260188093079074615991522818641333168652236275215133831592338922096875666605075707977950025235671588297646823319075886842798313056162121219894102238059232559431803497229940927142859873367406405911253364835193742970749093241299134959700653024916602147097012496079648308409042088849143255817210092900850478810203588963474953992576683485654440964265560936271099999491703336324245259044972473063351024278395746460109574542344215875244687694709214995436074023905505254862394820429656001039524938071426503153422672856961625499548039225186715591611934930328241612894906696863937599643301229536795371582254653292583748961994776721367283339148600863947596018968661456390280349992542819941171248746759721845177680587999498287297659448240398200702345718236290819106165616872627303388906461922592516040647525642548787657224153440002061172052178013882244013024818949984715247812952002083733473411969251189824841033275435891892409121616080401473862211835660839949454949153047726625443769708931739022151215892160777044737296116515449945477306182346586407696384320716944388160285426669774951095804541141482362512258144454804203792435849230429140314730452790189395122068342038869800860374130425990143433170905039140264297669618841094900512438129551455028748567031261554759868906752257931348516135651087598705395137388368351995659532971566295113750346086294779226665900766969416639629450307728143613509425637768013958315517037268225170498341994170214167745230524955235515074077331430425744879041848556883916738605397546137081568887285696869274532292587091122195160533674655121793328477413096650811666323196197580061904182199038915804079549805676436467617191627267017483377656873578402323866550841216306812945914384903975854074778906400949576051932755243423819364929342174770516410244318445906765813753247322703317133271557548614337399483028055968902424034360782802178702193998543681078652825644372994351154029100000633719811752785970458257703083319865782762606164591351406751399803382878520811519881360192730509006946401519302550245521315383674861677659825937379861568412370972998650600331788694074229943928086678473315937449977329086363213735560926463338849144431425382740963223767666078405521439790560093325218275203487560870915711085212859124407219708194209694146644580798789499501109132818284717455277088032316427276641723848580157905652658141191147994557628882135399285162922453659557588224422817727029009502206323814498853695518199441477737055604660198161906631913309305272528975794289321213216099626911942767185169447123640053915703889489046428279260064504566036146839734838728838465042496331529403109876331315177438183835961497000803462938776984518075140807476260604067239082627357938783564147177565628086441960110887467305841012998314459929395376293332796913341212293501708296227253081993989196754137714386414438876867689521985530025909664015426427788185767228890174497412267970147489577915513766279455200374055028160115839466750674357082571972968136048779061440930848264876805899557525234115088958544874256668414875947554432126946214558923103110108703975929782994291692721919008019263772398577300014115449644990433516783147501510985838367647042433958424329430546091169283109333846018660780638350687732461781370732359779885661884098664902606123818826083448866953809837587908884837631045819797766829460153640483144062626387837133039476707935087598468388048831518077375414994509600942813575331723676436048997861794368100556780439402400908738950268876369395562736931556154651431679925839356659447325323154962158146217476978963304910687273622519036066006672950734049287472982487008795660855037340418358271047509702580919288450661327835695269881592705155287691005461361449736508087315091755337852093656202203896450681975327316521334313211513327071358271383817673166161501434637976089173616678798484423733785163208945724865420909989320108424337384735243336781151694755201101416598693922576736145940411236187308368305474984994535786833229039643243478751977097605315398821404858911662004200669061819189881198788700181773845249261836549050292242931438754082349122659980114733518413814391462197676987834290278745950674939973082554114545908236315633515103471638133964758346570134982145056032852675520810829395773960380006351674833071115736693352894419390709680877609770538675951010058326863748924361104361088535695180651399352767440946438958993367564931929358158338472360351119750970427858264165739355390798741347254561087823425361350542202535847463710686392677756249383364425348359815729829185674225915611054446907944503480016923952966741119758340879866505540782078498697903122012498111185608428186124887466140161742028273616475409740068691060958588725992085706627216330038707858948046233761655210256409530477126633261372481830754865925338196137625450512586816560332463176639415723283488130532989054042740159810720330063301160497642058329958045528933150551869059525555146708284038214989410387452053187778260137284161848844570839897384105648245516398608631740577513700577257765189160062765818572106875435227541655547822973591668969857820880460515337853191908041288345012017924500086408134839368482691360918245330725926179171839617217861567637175465625724109386852118672127121678289674569409445029300421794784954849421154262307878141349464423688284455813660405373352862384358026641156835393330327648769878768449925698742235740078866113639124038461124396672053242526861065881226227389086963468750685148046583417054540428002557827945712327515908496731229052913797282495572198319980502634122045778302260391099106150403081795408413874285473509546664031562577039600780621083344824939302128943292698844851602681354714074481762870809705636647945334124711855098554984130531670646573080816337328746520925728312644798143370776945759177626696672893606580650355845936269542344481479758484782698016708052246127025894045100861723198964503906191748144871858084893276331605604703463394366211880089885579096559757886934664455059677683348525749565417679198292364057743436583421943545688533061639380594256271246801102645435699038894620806473427185008956596877728597961083435853114332985511056451602672407851330199118493817389600793586970115402083067392628309497114709759199029715393421372882105159457460417302014360945352321415109829049858128476374628861185609705286825986522928837745407852173219641803523343150930438686173397086603545694174544570785383059120087964501754963276722534981134744924573879440485709203332795180107846156604327080888786767955032031733503144015209224514422156576374738352460500417011806086111052059915600223974481174597831190410960181839827168255647728332082332087540910561856762106991141963731467988407317632611959842026385641809115290700885911758859122271218892783851336914126245974917144634867489856797881637261993820814253326708149415310672664625639313767067398798787729237395244923585352758780357466401856336599540526813048555934888624292091417524259061644736325000411280267866396797183187779608060765779170566891375834408763613357511809097513231580677350234621219165283479916374144699393837667870875873987343519079562755350034579163454028212582805957744536759398047583551314209097436750747466841915076250357835018098288261377388439962292260919312067564087565819537193930599625465253544903300122965460903714045516388131038385532121637210426097365380613046742837418171762110773171748742283028794230712883563300559810664770055675953510123221526512171027089259838667873124623644107766409619155581828145382893298759085651029779622840509410989645993248892202781101657554593248917097284750821925092211781409466539425138243922856523932816099916913972755212021385597704609584371624055555550610807430890205987256465980765769229234683139724694548147825164035275787911084075918909829164954513345072477037163521272958869352022529980836780824999270346689864672432230403916369048857056698479021561169803589759306683738152259955810211058188997053043458577190702641797187444019627937061444815417594295585632046508384672752366730966090739694713000958254973428666155313931137998740698469134832814976546325300116974712800263712520324491032144455479344006209645662441650083960933165635914721846960181954358053756444427173270832853018037219706572063102198342403420292912324452621885822138837163940311117775366889958048154710734367088557789453856198531379669504499333850639722665170689414209352485057434419770302030243028894543019522886503903631228465870453365925781184670789750557451433308799056777112246985384712752143637438542558331561108531729412440165232195031720843822724537717851589115923700259239191977838280045386243740324420252425719411002077145625179899702058883263109867434422856495859402566700417911228327151549422653050410971319929808623150187090196960166650087277548537588853619274224188465882994068744084855216846632673487299712154317050298551635547750276536303636302442912862799024648996857553505009682547299771333847097439637032441320525109287530180164801769449638982669432680813581954980027537126735942788667533041064865041854325475730741438400257564464892161831514896352734904781517982799760791600147938052580262228402237504177914514373272361020199916399463687943336382078295373297946992049271958000566677760890358664382836278806410546081880124683625955596191736117678736082023321205628035887983158059744733852725101403455097103804619154212024949662706853738526157566067909319591592487022235286541392101777604886759769600429026923110053135262186287991674112524799992718017948407691654319722521858026790163553620575208810903661032324675773914405033863278155880780001145155870254397531420009500656784349563147843572086742964092229967858251219602789128213121656727878859513731452244356930282032743826408498387294173830819607401847004285241710433694198412586646125040642677617828427689757361668736121574393209671965715950629456690601510908132439213379350397645985903604660439254957795950228459458004433778638008246216897645490209050792261784550700946250168515260687909360468133643599304783160659298797978185038063699007155916972658170436885922104824371226549995414872248719694890810910339326863246455220401539726098722875559847711964797232789768680262841482036571094432423077491885332776952686559982047312462713711452020888294902529363292372209346351362742624843719224952173440987008271109556110969270397915217148628753088389498603276628408046447375601513168153737456534154777510061292305552384176210324061475949987583131499627522004070936502005951228344538176581915785505205313259013128827405143114387141751219542305834863705900407640836875589095730362659381712692169122477073990264697748158343099244654026189009822819020199046653382383434957852323172105737006193927977379915747790822412292298835103964276739449825055132350247272904859550655334925553090885412524414122855462137546910548691700683993510639805147537770817263993882335490104831290266874591283476003764291013113762737419100569603915014628842820167587262441817683998628571143244659817069222183703674749390863328240618106304163382713725171649234172524417417912278936386210921347357743362954299887716350932868836919389584242432272032539216609915194402559484730231395953075796960239758554825648118800063258425304045625972466493075331688570890913880613036897835259538527307499255129757865966973483891925101748290734109396031630168699973196383363283135113136299456588913516299537668973010880241889991804939913444809881790577908272056860846206177576525179819576161395919660991567210206978335575398593304061853926141614505889451963277135503555054374864111937895663018092647847278169995159046802465475461887762173461264655026726737899013901422125012480758582555857811229599189949820677449247132974265945714001139375130511725292097423372461626492040581595840865233341765755528223592315807012820277753010151334913288344424752022315732943704869206199129250683957086212004956321274177658197928117430240344401623779484954103388973022080183603205780707556647165047243665926217328216147323231591567860631704817053448271756524824103569977372975131368702991098030678022939195484879283336760454460091745966131733036673934663848857741035654627146028773880199468475865123548603734892935582441743745145625115172476485546103291060801409919756304583145339658036191053411713770048868468773880356350420676119768971516864936997471175180042605481491174586418844836417647614030236734031715390344594874912744105429895679378159677586311972441360972282193238109391260167481512019624093385152761175433032643596140760434309930586806100430829612625853621386937034702720413518533146174329419787131030179131540187317050132000136156911199231219584294340111726972859550985345765121310881041223679395267474711244910315177110408032905171426563325911807460518808901075166454450538850336225298116477658442621251118268162463159313305664026935164938013189284216314717786927467739788158630756060209785540274968787195403493902812533902983086164973480523592946539451581347452892138526250945358593885105356220907570051241222764053939171258604626590210127474917973962818168757329560106522690854010185456696706307011087981463750765841572120034517173521398344791124440545515443112160016246421714688218982264732824394597961790974793276301526887384160057500011487898903063009437269094739813045535210747734039653404760138496573276584206001389229462973188216558896594488219766762494809920020415685367698231309374113639445135033337953713272057509980396025281342079697564656058374845534479949568743352489122588209250504084455742299063409210266747709292454868504381283390080911757390533053889188885733812985424081463765814832894354587333090458037345960942044465589538988534086457586326240560767266187743975912873369722726370849934547372877238338743170259109360265786462429385790010218442849249554244559053547656436289762697482453206338657410094971672236388530982193632591339449081025006935078752631744678050139473880917162677163254457144262976165099462423273390359050253518723791552194389385724492945054365552666795052366989186692494350046070038977027125111338173663039903895476053688891439992589440369473589432749295585259856948005964123076805363809122874100822405149801578994225384556945700761771341986022126868469991473274108972646858372939554135885455109509036522517174292288336986035647143735235363265910569394826586814295564405282469040257000843962027150869692286969646553150930764002866139018313554963339841147212761864784204389860856736345433995090856687105209410207883814496134542260871686041627587451028155937533008906048795395964797990636294348226477544414683892786086480353194251263910112677456758976570149488974909356398959154951671990588414371090576719472235245016311915612076532345241835595004597697503571644622510304991163743250440363110215165204159428680536307027498007842137016307345961995459398123981383179858239205109175059518697579069117577212772175412391660123436638318786857724526188168666445025110706912526699002547739474716510752406970438962344420015894069227965551386364270214324567191847238992074462011711733049310441238640154562740591236613282355343557554173126605850322262928056200762056685935152571068707471110314676259567450270758277152549512379263032731622133437677681486823967124154905584415115656219673700901058965236344828190980639238876397796928790690795135016620546624644449638457272375847293835934851320035647481270187552601021557868023588944966261603341711619024435862366787734491974328100544774986579934146814288367232567328448254001352484247630995522376712420498175204993128457301626539838966424001645509726981974602787595124718984335861800913348179147037752880184928164758320029845497240635676955159133698501181858432364992201811114434802018316992786922991484207807878987160134620170726812233910571391957193993023878233302553410980516587572448936303834310815473971216193347739770576278095012276115612988083573285772705733630314916693879239445938169045777728845837097778533000260985687570761964855914236966261585280330694614523789801416789439759190672033870332045920376559843007429108026212558567696919441593312580034001905349877268586765925919261319132698817281375745511218465593656413131777595688493543993559597058975994347867776305497781368120653901637363087140602162780845777906969391639015973466199818938666770958807950358151520974391039309958617868416344364094348231546534503211721373556516767082916300581478519019503413502447939142181156863674121645620498865935340236591708879326424401644154576481714275579835517899738135369359866292592530486727975829143241523554449193039367503012299912782687613392385836356915556008527983415920088005569303173365401911508722668078204954579695116611263885074440852015653305974536811180687568545762298418040749920243536544674406997774913002951842728059076273820040327558727879406834678248604973925634757427516038141850153301127011161725118385232301298611732269370025394393687265659870611876474587991914032625520654182220263519216558616431944049380123140970857757016678406703048876515842383399358899893841944943861516943094822472629677835930548063722355855772191114194728917426340280368056636470825989601156046876646560057704835592807873106687436276517874229003442073587512999214050934058337129511661482803063801025395277764953031959763241377452252037343336093935201557693933155882673792756519412653103110084208194931918292771299226725583732571199885453109353462919826966775056406964472257587893661836251239719264670269656499980130826993482768066949687429320912496292789256118965148397845455905615178441206796844472925344737958863115183145452793641555165947393022535295654498917815040147649355139960889411627764069598722821843214011303906534023702737502037114327692178706470132927622348814116504318838353415633200934219680819935673894490138324713543994273985278292037744469719614734193218271906920202206858159707762861209971685953275419752546586648670903161928099252177291894232848169469827459424428226963625771090345194416929612879331285332483046588793738260483930073783091996308645985089209582782073937739850045046970204056975681287548809507533972358697505330417783624886315600923533951057699718272522232275267085885637863349573878385007866951129208871049890177658258009243959253498362896090867562783331809201632482446717409475548756611753953531471905380359603652518078713519232101262607222834000561865871692680314013625469223898116258154575335299560991570650271788112924758608924288075494737003501292944460260835408625890639135619462130600444004809173155410158779991317456641389713734324524362366195818186732659477447260293816418973177624772743851466815319892565552712328189300380172793612400180168210631958687014669283273256560482843870908725997803009251253026217803881238960363622340775787505963441569999058615775482108071855326607740495916127460480846849489941564412125428184181286625988402457972811470741870852237111281203495286030010782664874170058041119700512314553241279827057269241934470393842540114964920083282620917051773086111022444933950493913379068240962214480378745561773302165428474882545841347114048817582713152450537361146700590259840991307845262068360810555587500652646717001189314966546855294012272384950749578859062397724094619975337745535231339021525351590472525903797250237613709081047082813110933128546745000843883812443283639952094659416578442723669423371869079918979224098256583212860578272941861488373755351276012064871442760858024264253230588221537061834747237284506170096898639636542364022036600806251798457013476999737096518099459708204555910985858588286996255338263451226507601375561339741941521745804600536876120671089268269947635158832006170597494273776664485957277724823496941133808505633037391021058829389628707121363953859635356792017324848881062589388065874438089007751512304020473780781987621683834687978854586902857473590241695598844338837263427998725969832122490099598137449544098724424393028767062313908354680268189822779549453657832410054862361979618065499214116888189634250753731773626366363424324114548042682890159819985054310210583413625676359890640216976442236515222727883376343509739550043558835054869299924178795619191404968944029662491914844274121037952099166766428759206408544043388619052594740443593403925697542127908954870734400180072097778213443005033472357839316206993996126370430845068054479022185743399948943944364040729956833712056437987933444709965516232635391998606962478764790425139573428474380502292018188094824368143116453933677778997437341143994629950517974273216609580858126642728840623368057068109420635450655252294407209243428364987429172708273335369595262072950205571149553716868018756463742950448108226527982018902139352375124440895261140279958403072714336319048445479842920695937151531963218069600274566262625936430705914246069848626137087149520895976971762141874378650226820244620381628332117227441602011596149125965756058270570329197259413609786957829148538526094585887076796189997277016167865781719898351457718140090616946702120356294188955119898631564186288938918891853424864692642366501050544719276388556262099531333663999879214848549061529226277393103427807182477685470495521432236643200752853815116984068513650156184937458625198963233983350303924616103223143037224327403711451305276716218664767375505175925776564824557439348916981050852741036769199412878427234074753250012886755445535553053963050380310361740511093128832365827783810126556829653648945746501940316631666674909001865081508736746005761000568075244483841233151569385847457812130131393755986027405361066641443566731469068970007410484298048823497732279195538043653890233133532753603242342070028813546322713124413853183510952921314227279940196643746878839767413717429826778835307821244323810749732691160826769152112919348102466526480979956656574182684721403571765236842129656046551643333611613703690699879548914310413738061470582547860295809724706893460114885079218370121195873483264384274166371583331497351137282340713794652853266979317150991855393673014247029526897159103894998359684686275384349180812188901411893087418751039674814519282504652659048344413434510297855610991839123653158799814235333396052557804647818815917991278756824243273660778754487524437978836213733170950609600136943500727878911218074926020002355754756140177972448294887182031954306770983065029715084444771146718658929388697503443284756508542675681251464222926429657275501125413267217659415494797197743835510477888302790793090661040187841219878888367480633188923339901307578751641146305114523546977624743388541170687016487403226223742963006487915765793972482566566637481085532695176663751302746051929456205249279283113687449403272243455557321011392157322398448169399356593646035162068053679238045375287099922241723029725052158070248471265706556144475142165960416339094625786823543258461159525464789916871816506484456343500713519389260060260995581006758327934067283740950380690975831622662461356483623675253002749310515236678452910913448920821041088833121894238923881297539380064361483208053801270828862203445588285016625935643908899832227898629428491260767623138718703082107657861276059591170968134972425627581287958198457498766235448926039081898497758702329431559411010233597389813942158906676160361499364333127580114396001024140206523859282266153764604101998611767217674970906316295579340974169936241944459753761655199740144858199101469924267701686774745349192608652885013719973837035131061766010216676427018618031520275877848833434592678115880353543323599947759185124446204395844250696282687740682945874287643818027968370252080667824621903260048770327130668371789257000448241628726160355794379762264038043110053304381099849444475189915685004281564402000712960219834832689215911161716349288416845562136979517174960741037162519085022747017647187574325888672368582861330795449474005327373538738580044068097581134076695946776100285383162085381584520631028107028366735304873130482621387210565554352887277376266648188489160874843360507220435631768922620491853097866988969384222761322117269688451003589631403724377548686759814522932338853080503172398195771907783566046304547828167641159978310804448060176769780203276721671891059286086576783109923847991963888595435018862964220692194758731883776783030047271031508618066074690932351230002987818486764870389218771965235133336250124480592849744696518612092021185030024226649385996780378727995102332629052932599451608528611293108822977888851899279412582200208122611368655024767227898572514598822637744875011370659245424565167163361360757609524355782400273284249166189561324712659891152734794572624709769042125155396212473467425987970910359470870279854086784434347128476391226408108656869180553036430515699106532341761026912789146929255125435948018000469505781548674695316413642861243539811229838491037188935451387312269506763513856529530284354180205294150496447160596274783676665846061571363703652279862379982362481668418447790947112517895026100535356704107620842127447461257786247384253946754912555382284651479266225487454484214954101829705119342709711157077138047678316936343203062459408904936706775835873166858663807668917635179949580993990787335431707416421600643874507391492645256682350369215523052440993542117973111460868571963620669290089238366232313465356441020760739802133098293470204346494059271884132095293700953044966382123854146125115641912666783292047388687029864810483727548745636616146336671728318854455441891249874572180091555603799262434079959452084328115832966121122597363612946053921989606083008096115393335365525562935700369754859582852606410884038347496337292719691554486773880901639384433774279086845722950196115813120838156861540592654740465447540616614430000702318133193727252392729486295728310203802206329411855008022715310034600752136127198260355003717565468542844715225714664556296044547982641509251153229225805744311921474933186496871948949317045199957584183102813029473281836028785973735692118061149901529777270838401653951330237998731437360492701927359123475968442289860049843241717740215073738963470215852485995037499219325904211245853418381908204934133992405876995427083458679072048274816272156401370173081018940233125695035232061948419467701471513515233840570021778756933861485639185247715986718044815057520636565076700253609596463425838919819389658684161510057615626366885967215790178119549966310732610387493605494666495213036936258354558806560460801836384719166452595414482016488161361383645393169131466948517442385760839547384635000441163313197916649672653913568660269507948829348407555471067860813293832796220310645152144705863456265832523050473378171695184245775316214059034073996085249910161292334402034214621961240970120898261162296515137136819664475092008643960808806904705511571010699602590083949054713645833496173542932737038029891178899926906911072393670093535463714756912863562575212845723161730125704908834284699153331820581951089759795424541420711733791303006418029628391543789758811581433360769896771988725821107522323163451234104186109569272028297761891684329111977323534396061613217283912556921729231636475823549861565836212086389173022132591519145398920667510344878186783941279298274350361870394350541939180895290408076209858340243344813756912268973660136389000718557451441998911038592518425152838010804557271361820733104225553920039496455755895214682769633159769738092660034262916229305082718468395109790429649234820127556231490656728040389403119008671372580736020858084988416939420136962036069865795183770511015728857352120590206070557092971210160117377630209518823135486995020161456075119301836841366777936889106411321907019772906845018264791838146244478894507213509450126254286597533028736293045476580806766060625677066531009412909874230091143399200687276887158593685667501916857354986452967492224433912341444481983879670899060658169526444437353087325556925069087520819274346598129397739093653175442533503398863391394518464621076060462841430330957564970766555679041952313870591114320776954148706353410235556085364299046612111115633610635340702941414279616250561239161993213843457599705896934400035750651490099014841397786663794035601602020960540157485419893489108611869885094338929770912129191607589060623074835186351857214417994107825048562652714877118356197481915296584715194375715833072152375058944825651110400922670377881099081931022622826768679334402725627631550650768219765539466275110690510003103075107271379108989183604755066547220536377145995295775998750434887976816051492654159652574216979579735404790560504225411833191556321828783334884564633457924754196458673668852022407269066321626012339886952042910034067076690273577934111280619396304233239513329274432823702470307602675589087147453380323113016715953382680106689904905260546900555817529232116663747019338992228305718210110006916415881999260486403065682721634593769526410778774080626712546471281213827225567900154875484720394265373007009303682765797173253505268203709012786342802559031795550350531494170710534663503352895507732964926224102179105013915586321487956797309740756857051759984764992147566391114826014742619762891840806699214138338799732584205497236784443086668788337802650829708922540771428070409321114268794569060049346101244874015113138485240728312354316446943770241163344977835615726849912990184940520208564516795290803986247248671301133025725530516164200106187493765289193033294703377524413066359196158829499665404641754429108578112398218679594193279969953673977351570970789051324974095695145094178348723912605734629018538712521621429246050274605100521272731830560209801450736749103420564187452536480821866579155899985087154637361441121491965635866746196196695692402600936922206046530220416152924940022951573287023453809657846478672873494678268834036821765446412338308502896069490493195501486560475992836516534471262786188151467985941721130341735640248264215564250226681115498858517582676459450445611478150790904670090801814882842821671967376326476900203988457661931709695782592649701803423730043724084606262105310728197285972663870073804934811247796243881300376536389458676131392018349864425829289949372019732212184946853070079226447016678821804855424689147885584958815621807447684533081546061349577295553921532749325186556056085431428511902209097591138754922263212420158153699360602583683939098432964238740472436871606824985272972269385033573608208637252797541337771679968013546236718136843137993647623825127449519530936646960903540212847933077007446678377722203668466965078155333617287334139044307897455779704411264562802283112752567945272334805616254977733206470663533564112201229971575491030683116521315364013447414870066838944685604933988937855811736235293957419525565530051972045321767859758204492803826725636836313554893787408637698865291939747891763759460544872168050720998083319434231026026774592025783123165973001066173778928894447084293286474270578177975501618543604300395685302956258836258682956406124143878844965174203294175935915928566898700344635317209873660179183307135178801037368457499105115673039924565132495554080789441169019597483044598865832681026861707302270040161360711894795225495216448088559846320566852138050892898022454566481236882270853059889726095810642913435217812576410188365005094949120260897955508571277733225817006952171729274680537377177469358104429196582939369922175827152307700638626461322904106087163665511855200667866933342419977927291889514274017411782612830181793067668357104753698644753528886851347822492244217793495333604469150890249387109118065373194765989509838954335117184013250690164204471188295205711134770039243195017177760591623077639457901240170463900791178995399324527016084816765544387954330699706889047837153563117287782452332602687760264593399620620079447299221522224853307905212994295885392004466089033639478424522060014982157067358019063243766923150068713142881541043205307016259531296119823880750271437216165852755839990066016778956072160221661961022121182639600481686062970404744566127046510046529073919833722638139952105868427615141991046122063644909690874751613975002439986645266176199018132801863768297416855069483293500992545214977936319369124704762995232882652567932538468678683702511170876842920319839968465121150916917180438882008888284280902893977489397366523460723812572905937386234944616248927561656237360816370738119450801453199337465711432911074555655879325909605943641945223967681203043461238927847421589825648046062213500816552413425136484549828460268369842121183449267637925411787317225015129553724257026310195089861718208234400651802131146587345685350912609186149519054738030090230755364523052170958675519501571491207898105518875073019410313290268770038256880900702669690507032562340110812188969374202610549877022208206722161044844002849395659404485118245734353866598185057482529306184137240712504318285808263797059342325323496054583974300421215601713843109903148801701504618576318425002530784814044676955292414306851260694938289394574036449553014675297661508954103976920921856423442737284825336208223109506886493701012540262337788279943661178185813424508697257900902860433213957685390137188005910740337482448864641916286631781248660821370706696710445114332196018876258681297815115445507302809512207304635829693908606241237182717828014640998649025545517460662816687770004425486981513983659681149664560711450875456221847491847129579470125998582574342566649305225968291802852001604965519889836775643119107548923158678993054217049554946298383832212370931996459973923894129769330373862523430322312854692091256383735033414322564759327189981116779037750351091465111775602388059492372917141252031221585000993946453841414673227301393468564112545343888469299029089756910080002861194356115897246744798119428146870268321490457901086662662077065952576795803780468785401778802847652057426737979963176853022303786723589251343356855917109132703733244043561287891930517570733222065836294006895424795095574703410448039316879231567064915220022411196313765249450620567875896535221467575394718443715237914786740685308938533403254734466475959636320429794393227276775257298626313652656140349477877952514172424021998769884798595000130968256095102222761794701753676007434684903054994866024610846306287786152507268130148014406266894577187111862842750354602466225631434248909346020281285568842421893608612639614142381211737289776825000078084991040488312622396861317193893739740430858742624907942507509518422890180373820791368164995295833519684517940202161326489685900670787068671186405540472080834275316641952360519065687496467080865863131686338122135018874024853688643929668160130332818650217610331626468933073866570249063711662128986214525139979489406920608011067755103967274956943824892161116254046102205662120030396948445957615172981341108749544196296413689706690407742547412649732336009188541279889974829490671558893940597798048792948462333785853582216299934729432458332222558008089576506313716560999889476219689627250452613366798685203908890605609105408225086335814778489438605960750033146458919578498021686305944768670775854573394705733553585360803631138939920874953753066073627464555080088095934082922441688681623380968205621313234066487432224948403893331700499343038003420094102134226229008135239315121007361384991885753352494333278673167893578634827543852999111153453864284517720446470671939700673226830328508198012440206983664549014065260869934390116235792634178665093415927019390620707835535093209094350920675129792007813045490018705594646941472102542360725284160588091917563693342313209168781877232844452154557403047556446635458965105306716092734523699975988913900009112428416965057737093325663240216256641051955310124819125241780702465836529643750442153935218463514519949496860557230020378354811609608437278333876670932332755905621976318723930156842051535304323232317062557074405890364997971816401250526464237516249445418774249863283699634982529488444155012947831867308166370463367726263389109754216825691117308397213832324211592759562030203977698393113186106711473738902873007054404832357630739802668245359412315318885352044619797868678429645593602667115878871991796982088561167661680903896203766535421612575667054188652296916708580144471703866243455067923912812951873944157861988952232655487767256613393437617379891253094632327572454750317790550563995762042929960892980634343656623806121062331070413975485337739997721619140271829130290745640522054162775464239076105013092746542356392536337750250224272903135259048041885108130259520513278944006150195728481842139613381383516334314290693372472702669941222542037837956646079800819457872309882359242007188923180423289291033507169884728845438551545332662371159676744713031782030224253038621361407284968114240450436052758761347232965175395974945263750073961500609048866163376086306824885914566016267724076961110174930059209922423988986869797528122922341366530510051340511072880424884125077674156017301849986529520588836825784599927966698549826590241209639806031609217726142726827834380151988637258019675113987385727334362686846800100598337230095945577503205473390348395610640026677177452069921659431562288636461574188397961256672674639828024912718356441416023881544414702411754340297036617122226062815959326225128257141262434036095245706049382053096515950287587147027251997697603280504734248876373606329867248323661288935024904597534585091991756152724779548203463662264164870278792971108793666248216984646272804028845232956072873382433141831282541341689719066197627851275452203410152548659527902717817979707013241023088069291667727679284685415813352908118160137212607046729542438999869367641388392112290866729085282346181439570642295083346022211012474840721407835287034912042760787765539607330619977689548345578617837015411954923217329788231653268859709716809496428171042259689321612108218913547119568441344213467781548150329794840573515107837663122756063013613687754631601164948160451222178904488227162391011626588250161806734437737648697107623571984171173832149972656553809749574222675297670935726891518055626810246358660235102170608691812782241672506779051272543449269101595688508185173617636914889847226496521000106125371106447441315910257757095542236647755127500444501569105191189240365695732672843542923928915820720715722609263395906332899032441733083329196177876443656261374650361205972027599556230668013549037766961706791467871902433777725811045402330925148006551344064339609924139896166995897462478733159399719126197816482349703849651895897097505894905626689042981116439958301192027841346676993409108223874276411974553855011395429277686676732189533407300182705914407754795437570005622862564584847214349844367236913374212340761723085050077418617709225668959652529936324979197947265275528042035881747430759074074050906716997450363122014125947840205298888594336351485466131257647687599641739260543687506636952036307712413979616732198021143427073760686442239354268652671012027318969971660899568615183986650024223829670087747725030386813560737946958941476882565353617213482535083014463184878488584021860990741191979470450266289615780873342047957813883724352654884311026361279440048095828677980920521630405838970830052062325444190590384154928381996496442653594820158864038412340083137600356690517588726345920490325303276717610272171041005421289701746945726185079853948807955805754420157788355776932138739051302759277456148512022616501723496566572208353079956293279837684820657607372633441687271829194703537464169466111790279765499889165395693230934250445641142270169983616674448242157962873512479701227195739065056981018769780150646888079560059479884186990918642154003403845280316842386444674751522707045407219710302999564980020988109753289565940285827385322576044498294920394386044848955080083412861108695117453417786048734123094827840907963432962535232281640100309014602346478333186248158675252824754533411768660619037084387903329328567806737481837447342772949808968354800270176113196559171992779192905165857712524988470249098456927362325438741619273958451578708787961406445764372783124936095099661984384803615053615590664159435653800866758773789606306371421645195405579276120108091804088344631951177176751216989820934485043744945915717861557214125259814721142181540592143070785928246138739708766402893484752277977195708156583896597986165605788160156237776484674064786855239822271316778762269022301501657557679116506688046323919291659056739350847126548725887988254896281341783344987510387222400184590717953970479310443669354093722211946664299206818764877687899589361903098048010867085651969254655309281793154465449327311940548600627842810460191750909195200069803590919479674266308875166693972369567770243661303420341864882614475831189680147576108945299730411882493823089959353479429626804583411639354625048474017435192651283316697863469350938911714758912481405445798664505982935172779566531504122482858755603044450618439529472586959724490399304742442658398057123107451043991425494294387591986291752825808490578928406241289462828490315551962216231165750320114952693689145668651045046511919607403702247522620594501043600672787794253143879987971374917789036750522793383790533865627350405609585482351957600202783808851971058595496593409963069893626545522376037746412410337724458479020189704481328953064211755026359123619228335445193990047683417953793107866464886580401910043721274716833580296632122705631452500958539134133170499083149785310875030968852079652297053681116928842008608207885251423797474265994447939553487821561995821059557842821023424661956895132595752938335938996591529437625001381287803617061418892493106455149032030349083938016879706881454854277328508636896632285016187018070478440779058699254054629430868041718957204176846605334758976431280405831198130189486611312597893350939594689699379555659529937423583803896459350260326382521033484880893286078514607977830964967881801640980157277175379829341576583338545644122194100989322556342854961645384810711178256255459649081133890264140022385114986521212661237116445815404455767284655516155155923500718768019619307677791578369870381211347340354024095830207296305525144716916931394626607188483426900979979043457752884424275724228126870922405050705930485321890427344949342033790947874829658755320505525003470279989562541884309324144615672878776696612886980091988582095711471688381322830524758109008881076424506148357739324170992327124766767863806993494457819877425954958851626994687925539648180513511421345794970119696063033649882545093178745135644638372508046089567217253247089419679368562913757692263737131609906432796472709169122828253411955919059319001995305871673745650050003566387889238548102727275991645783293685441199961185106485508764795893396899275175920539299509289163690518105892594036854784929632400716657647321318069829902784065583982935239934704170761518654177486538103740302784471645322672999830092695844215838267363775677164638716708517712057604518506584282029130411286663458535116083059630443285359503810516315028602368927136155334873675298441859424737139536455838625428665308454921758469890008505127268363007305983914103179999151798322949574904772484071628983811691333118752339694289765147580771137052026079106831189041588909244629863487467392093848542507291595872922833745321741933558226544856693372587318299931923452607088650641346718767104265166190335837807316768258231680730199724565398407777193643422929389018035995096934228296975690101048546016714841093252153631452609276398377054844023451996946321606443530139562574030936708389238650905635453662676467978895518327387567172238674106944197235512033672346020566349198216731104826566203986247219861909125016397430880592231053627468133753162808318443108598907544570082371093701465525135556956008452540098854445965113771429067167976638157077786362626364325576708778160110025809783596829928584158932438192475709442343006350289306357737576561501837737483050829440079887112402974606569395144733559683814898743039076520197336729377459122098631370328258358271585069860652498372302844792561394976846823164779296984346890208565834671946597711947074758232944958421099221299124502838043612727646121683564853094197273174911989104906355868723269431238340683951484469301711687540085332402680839979834446603626539048149476888727814088335975628987850366243915189558922696582688923319221504643376688509776899975563880104934335513806505379607651981359004203988391934151772835541765632031940416561295083653765520426980342694901440299308159274355129469113315327291646422570420640963675103915005919156760937642619377470061944418533062513170718069752847895313157252722862481986134114502826561504002485815987895599123873986967253648789061404864201784962446617433364121799577333939935173711478951674013112070733026029358629791812434871173867819777424585238584096607092844448879324676587200046092947344377395110916694528728056749038100948613934558136162343677400425457888038688169166532073089351254035145151038608596194467752424028854920802676898891173035875460738259694674347276252896914191331470163196437192397591523639534633190348516589276170840783798522761477601017576687446675126626686990321452885899938058353191763731986541209610755276042429297450236681942156077806093138015615423492868580219893565139913968705832535124767615352620541733017141357344363883130263935915017396598649466469035618061114548180947460131980762883619984483139803961423177818953989789752230220329062083783667190044821102020654299612107776611405100039367634117340857778313271656486086191960327634952216073686863152258910577840205374154399467908645159125734904942313259279957281408017729986481168447672687041994090622953929661279203154160299760441153425125428948959292227386764902257283300328798875453063321411994040170292478405771953508626530811234220670237279775325554976149546522329636549056037845414501327005134827423840012344925971994650061822137206432090933891826928170408674855766097693492938565557868758585362762042642010154515424303363278751996090043900118571441588298220440827475244633032353515174296645526445102292814972711109657098512246497497693989161145381733818892508804787635859335287226449103208873292320854539723206430833607659114182882524964810342829690901237001322997563621667499135191517557518620283706674938503022753284361866903508951744424412185445346333729850906958653567549051080807582166380609768131011727113269407163035601218637904076081211075245649402998099193459919795534634287208681588548573304071550621327468901407881139704354057005476173414245174693069460808684859395231569550540821206216087448981349148366554703384934704107794769965920903654177687887827172104493515662735997746991627508532672359155682371011312871060203951128438601225071542442163490723872796120815471047703701569022597863942524687559036180087270044568035069529468014449624270609665433672644121364771259320965378194826199290003306702959592006726987073583534244890748658535818927425254537228132316519588154589241978519607950791723792297190094138665562194320409389550103018090448489833648936725216984319424246654540099543229759477390714447736434187330368940554334689998514963655154439675175745823360537819057234013786140233749750682050236979857301012671748440658948426747803828175416391837858442355414700903445417102809906618322387236001018324592284073868294309000864368164003551967059553353952711463394169036390253533467975840352529021500226336666022450437335870201488475457034745987736185343981059613196070249564671795864972051917875638416274956100061118254887282685173555857467784073562871558541172230260638144218944706910597293642402027412428143080202789687635246036778716381012476163907040546453881979047217516208317151412534141124000883101449742118602915501039680384488476279060252193349006367457813746862704411798736690307746757584751092886180637702338621849386415135448164206908341509349751445852062980655570957626499244133162915054805164404751181512667047215236280300872241320441811868970961860530279413629694241082580324113582779192553596965739785734310705101472267923708520343699187330555349087423305911358188015004491034998726921095057214121107021276561307522334128976943951741623281884021765877826915138673793276269951162045006758208329425931843776609636021263756237897319261281868625159879095375616407765710084761358491817476592174649550232093174420310101560491620048268594060416752298704480691189326477397406030395457159797002658805187707362860973953867680969397710958205685535890457307526339216261881257505987072152068676274663839697290783842362124920733463520168771665127389603714379898305076673729817490376914512718718448601766486629457467039302913250094174395350822250356587001203153896037144335738859605910765272332931969770843462002779157108039154685642797583296946264301805727348414659804349975768607608216656202023478108673508015058935290146315288653462742597370808769347635286427135573479858509323624527707427715208333381445861391461386459291323368146551744407559253539831120772070302785971939524526551505842683470696799866326543830703869514752727653610729658651624354602224075292919924235294560758714707224501958193786180514075413726771485652755945846945674261207273598458286364692480102579639511076115666869619420440518851696872190481711700028455562717660529548248189841752142425282537968189543158888702017260228242981520486408186872992242949794439826458575070278700307195108148839168074723117349633189292639449889719594242974540303209320615638933235997064821094331966235545778142876094132298332854172223214568275546477355623253579558376746246880599837713082758588953310389891405220844480376337237255682248115832807592536155661215467893565963565335909682316279882991085444525909546821482709457067547305258421062946127670772134661831977012063556993915602710358336135938570373368583452002576497863874753084595156315698759910006056539070260790005992079522958563917229998901501797727321668426820303758960899263121333679464791704423723043984194667116924036613961664947048697458088321049833125110948679421899715889644836692206751192169086915466276500969667416910565397975104083975903405212219512819363429303210280600845968998018501185501846213151115590550310588936558898293562497482803143467773070972724087796445247120662968965043374210760017899909245535421002513537421492179327793698401733781055509611813472660740429537998860233718945890822176386147876163455419607208906989347759172332497801503035513647206455493089914890892733062932692603501992907537778157945342276662731184702171184204610438204867742847949264649605371894306634677865446157757848651140526500785374452591499444424905550140834649690945985302632043335515670527738075956606524009956985722355026786165421006966462820990671750472072366040705141651724878576018238796790100112751544117670526243232543842215582918805987757705552812057270164353410310172363029880948929638403268820307724477307770137186777187874377687506404010935197767702936171127617264773992231308870849889389152930099321330510111111761296483869281215230421387084619289459383239778678873426119510695461332325013646493838136537238597321878246031512065892521224210994732484778646966761615631187647150623833843118568801422065506323629184163338104735331378642376291746860633000305023849400196523320305484736700297454331681727089217639168483166532227858808590656610986348373576406387647469897848803840894632107094216391832515307301247286763526190805009409745090409674297080198410083959133554942976549105262095680751003883488868970702793874883818313754346620713530498080950202919185116434932625067731633981793949348360304642597031168305975748292382826868880993214795282594942466798383686944120330740467184895660721544552199891400918158519697664242287169827049696601631744684783998747323410663765221334676115194453930500061329685818843116346323024486651884112259212604371817554880642854254286774590618318963877355127809644562747940773979061011980203603568682752728879164247548196238531923529585058977706515634256736058426855630714383559047733117941998495171181402691859536556533386930970590612730551798215585891489276730501409175338248457026444620804590419935948592304326150108986425569803863421145585137803132816455804997948053744144109605992881080327731338900340791379058224108065917120254355513694494033883453166778994278248853445497545840590386321757861610894436366962011228310956768714415264622863043957951124176738698312970238616840818447190622512250227402659730694234606868176896616348458307489097601677096431643106137801773359276235303358624773973664371384887608676830595156708380017341010189338590534216016214585312608845785876100649799310248965810416929628165078163390975347596225564282889446774178832438829334728302104205049318720228364130678055259731569820782325188945544621458114042632879058585723924158461747709709708046396377683579665971950494661441551458470896511787932093198368704012350805339580636349553213623925411794122648510829950545232034132130207193475998657020401719529635438133522332017138423523650883032775329333502378573919982545415635617341933015422296704160767573355744548286023860580715239033296664707956510560717975527761412560136899003597936602562281089657002686630684135540472051130166730489998909767680546431341262844966672577868964866710644770779126899019652843927381409964836409140312410172418648316018133814059850070570383341869458391625347411840789164759154400055914054614152824932363607539467064586934743052420282683305200190021509797303330530715395436126954630158815246223088120017031063999581980165905692775138651946025876423237026577763544944619318222246771954509871704498952684978642130288933314224722148372220062083907399742315365216357156563389441264974719464932356961465831658439314458382721911270326897101996794103263571602053649327240111195886008027333809005862962920933035821433253729941881777935401367785599879082857293016219038040180198201466727209173751992134214550942942223282396563868797268640182287796991953680007774255233570378439601989101553017758315930790015752454932272018597564530611259546581407068001209293032408030494758987628152806548004550627499612397127989103402987479886965662587586667989759972036667317712749234545848429861273160471369627210459231417146852755575360028923226350614217282101687077131998206925412236438215445934705323915448578409783772380598744692539330930506210382445952474588135549962537105508276220556856858978943081390314223208073494049886037298004639826800977443809741221911502623972751002320937524614707146178970216094312269532281714783537741596976074349712407555305340692765449105265568692779170065771461656706949602915149156522254368559092343109575571688427589800899291785357847132989999835172645264496027872735198738103457070432335643859652642742400927554964973422242270286607244887518180822335956408501563777782409921084190016170842807715148739373724398289185417959770682001817661476695643271114212708445911473406228387323193118603964254067457073047279599934366800654971599880105981436885212353797022286904657785644855411678886133069697598079653509265260870355274476314707765157242005429903745394156240194054487843219636812830776588773512324476489877412849876535275123075561482036954677128037528406976331300650154082004264500705186040518099393133843867625579553201942836524111398005677024584348652222319453786993685131212399585202406993329389198155448307200418346140698348334405136151735257859204978757134858378888773582930804621744758580102033343313493413509904548599315453584131274266683247556866164456464478578713188939920977271084792705834850747223077535584485918080384724638722921520897512569359548599964532226557745231309316179155848336565051552971096241518535760175779294897031986159552431587792459571000375839020425238149383804182718214242732587825244405758330608060598678541278185745913410669087416196857171611901659258238151805200501575368778050820319473751927032724017979233235858672226801046665488915152830594563258831780983591534623201730300377000529706485799392950474426829070803596754793860135588124450689004312201033369942527892757522599588785176530135914808114458491625362028900668782014564151630082434679995611812402940205567030725300895835367042343628864995086362984433208370813943830110368080615556249982134378984537040911199728407564046243706949932934304630907580897227710286227850944345965526105481270585914776263935494009370320069574399036437664292027113593125959286525704526441994176293602993247399981725324358534029380025377480763495691485291394899435753323884162636278272956607482104154152293425962797872586114756887336513046415807735974225637964167869122911787484916462003028104155674696937545925449276898005730861815131175120815680017998878498714864355529368999794347511437780323775895659051868075603247994467066572015966572432789231225252592744378996486400511897163969566660425875644103572091157372254362560166028740538504558251415157446364789144888974499738852517093035279085607177879791835672224630600528878728400364995835195706567805621902346400744266570406641408049374988750631806607804368590459013940878884720233182868352644320567327406335234240557629545205290906116008386282639077023116400346017506935921180504715671501308528110455453511443135499569121829013437605910102069403044338421815409344727794142988344836340543481179175159777535175709998022794555321022872792102519439994301226909236469049066452144501233900647267398524416676089514152494097594450389157718857949803683687187950756410962292873753470013223902792976961382361018993310378512360982171907281721872747959433613003756654789086132256882622828810872001014503187137915850965014695639972353211160714426773833175475841268791664354005043652351087743097549030347538686183505389942058963621459271622982553588774832534763558193951587462428413850769444416016239140737061180466511690655071747981998991978231209134382033009894553775018348188093013626680455655984184109820957898602032933047027043443737543645249522904182389821457045727279192564712818073641253370797150743444437453886902811806557858268139697571778397864452198698383560694747367232792780824457803567757974101511906640929645365684950100216990299945891128290361027923658269199060593542245542353120229466504879745369501583421575703022936037836959621810170209146578218284681810747297396092425141993182119669085198166471322118825044192046354549253808754107091485866938904415107477661329817405577445148251261390460029679980741585440278335152301954856657355078847463019315878598992060022702004823248828737264627014687101022113171873801804526095136426989842830675948733077688983075305649405786269152172316725554164887301340630528649895088923559726032763428035805396156361771253645012798144970577996232773347830184037893308050368966762623441177165942605943494778948274944874977210746984679971463608430582617388637690217425550374296961275551582550401848062968509589709262635196355042959898601699104601032900321160795851997773938589707647164179732862528764154751105474367818010585510249912623391234522346202959869836651229579727404558855507485789425162680156441662085252788697403177200859601823339035462229149239379180217295646186121423735531676692905067468521771329480958668409436200631911408485935463681485611766228133424838681771729374663770045888513363573345257605808148070772276817983783820638109290276743614029624838113948944092413864091590179086638844374475689545708144829220621543184476472219001163265418087390714044099010438854438316429019572067967510234278828777755714544825050721216096656900439486032639336804203838876236293889635784315177292367552075174365465695988480746066164017927679835066454145452679508580457258392108670304181242370596095773513348304133565019220718857564515720800429579685908599663421013347824846362524885839553928662960235341230111791516438922529858048961220702693606802512121256066424000609298952792585227771690509816276026617192472741999106294294942816482396673352205866366139316005994373919347054808257271289070054254384127199182718531072992330219522969900744755004768564073718885738501568999320948743403855510571476850625646324503803153513751253924470938808871079796140584156343477956545512983354377133661332624399117984227940669885682051942209712016063187678729609660113814318307577234361706708462321833771587315366594086618473991499447458163731805800884688953421709341148049564109027389406084885429858496911442821378060033164408439120237252259644021642872396540902153976729960929169177285397463836178315035117528258810165359977005164453395146707469445670154368568170176283948660312019205426406622959192405534567466197965592708018849677253931035773817264734110380194009057011774746173900772460808996601787724304287759627747819788476770724102185752847963089318394667987459051431612943106752536554776904931927006877647837039037901157368861893335161434937544734728562682303219058428377128562357597282154501749865108202365022069112880496314699190754441962603126765036868163314016513122492063982602597085536063545187636775627162273389191182238389635391551775450493602698464208634499795378717423277609563351391028924686229221114665440981209034365194607324873430081029264091169977713789435388150659698562114963347680155844596581451372188371251564990338784256177134996470500348601729348767101810956475048191094979836752054912504169099070644012789329748602766480645184273540785206828257820038240126348754350591662029828718007627632750859393952469588391090442507929888843252761265222686772100979922490886947518991441180068715037435540903895985269165603202154929127078949341158200850668873142522432339638691507450064792630649146762711264006271106577148461912881856572981416828673721129989873150737187020040185750665780971130082286266524026612131704930381426080534831249152438292402919092735279404337132098953684842608332367905379404326331178440935693211893978271454012085347277513145321955075688446608023454763266508198059122918966349059702520010890750508792013698741991424595473843267756193721954419606923788157980687686955308634204725605068208222582054486359231284561136633594171148132941814532844521993803099583621421234387049194955139677764329385712863408648932370967085824711478349527250906999891184208644799211551986615021617749351424678252061315745617803026408840052141144502567456671667655408000679197594104658808026633093871080311861102559562993616759752647763217442998746835001689007102088870981145936445058413223123858871265697442831428275285308062240231545239358748833572504102089800729575880098546135506132118135566593682440993756857300483200436483550906244686707201102969509334919670554378418211414360575258221259554106254153726702599316739648894237919446788065748168068614266473628334147991864623627087954527170604791904977554288450972655840492818863366246271301467140588394265968849673543804673981108999303600712240171514343445320267462046600483426856190674151825714734364349031670187122806049299337387703707465606014125004485434470115946608582483119035524205074288738557174359156073958970612027403256182692970353140947297948189936333512143408883359921604728623722097249946027700423839200694424651043264619380061927686690458545245936957805476440041036004635565355835457168329041869001411593804107715874167732153711600720691714463402368939354708884352100776176158521415938511312607338293653419461189937215414104102113331803593356428128780030749931300407724636432949358370121311134508680757542040705201027578472465737143634310377362990836472583362604515543842887686360833093670558290951293822136867459671688550882740890671443314276945928044534224214000917310697362455761282770983393493105372413100488349538983249857804064856274689311062327930403684394717512879074752210017977391597775345948764089983129132644747466114063914515910645245272075780587133739708154032756447308643318599930078278275946769501126699895647435679139588684986138471896380645867728294809839683608695650412510046743417514321781845756774095482539217742825366838240809675980658744462640280259222847004406907301779867221874772567491463647034770171302005057415346039177329911262651946182477985554676693985095225035308189887598346687083800288594923967174718330224528242041885244016360541202077764669250103574236744200169345230429132869250502525108785374880914177605091448616234005171341118632272725913951351097194883799412550242849635679152161346241272360013769263150378114749138954227344934238264763536524756449993069273511116592038260469423536741539064411652150303680894790183664730099008287951576687203253536652283433139947154313241674661099771797334991130657445419161134372132029302376841769850241241965618121557488723599396107065447071540780986917368020212426383593531683371799274583990092501609919783787432097236919850265420389995159815653646449650702797970180299732887310674591117131150950445657216308955734991048986826813486310562888662752568679026376932128915007601346718830808487911165046485575687569272019426510385570253450718647851720403788991518478913414293019200635838228135512287088374464591104342911863895458573797747092993554108457769437941653621110493282191698818516351389849463459823994465899219964446293242140928859510466255196365655626243888563807748089558295939070430325969709395865654506270690778294004235472863714241499775925798565298169193634838871439989227785193424324980296205148984203242568753181166188631019446347575882639820539899702063620305745428425089466214488008603049992553268985861142846149108666578023447487448993509815083149145481362444606423996324690969545752283204544284805364627922331615230689162891126161892360515374514436069302711453010249519404731397660575974304093760608215430058097272599540619715477743262009531189436407765346079715783367952454884244249633884292598788237150859408987990406387374743466368268389122968947653384816784431407894917903290024800431263777830399799626145058451397037887706868027866813675108523756024900033396929652858457193241776991377964746316611573388980172273815742199107010860538166023469630261636720439391760407374008197953174861584987627665117972847890469831181124114682821050952920334973728937735328635920632839751826934227053657446088007512139022469033438167490211320185594996234356712107066161371089157794832844316037535903827132226709682045281958379101916753263578052685475695974108643153908780295797939960402756088748110106324615851825265717537432063898490716016177583219895088449401049292665547142219863940818813718842409301440323908680287826873389736480196998811261858416686054246290318257081756632785881419698982058223933434641779392913636850004685617234577284252528750211556625841019399846589183527498820572229683638507983618138712879923523104100133577070669277528565742088265564537672013178287765988958084754876723414139550232869040953272675119844859492189363291229450414498119846300697678195518308806407555805454864984446446264280689266650151591122866238140355381900535132081890641970048392801785063812965306887288355184613691208563277422114326417790724028481571940856301673724522952566491316505743887187757477701589601402492147205516555269345206235744417291681309370102608931052842953294463524629936735204548774409335790721036574153217404121238041751976466785961757218760980532725844083965096059756579340364436057459280708487067465920631096420442393979139165282982008713929126422695689363146109279401243163428101615853583405101753395674193296562540413872006459645500233368666622826780496243062659034560217238699404539720126782196520698178221958432755352900090159592321053697277717638962758007910777021961757574128314983744425380948282816668421385983541026712209829135829008211066519911622119465309722977498579167635815050533227459321243191379069606611258971245054248368146616631846572434630727505874722296390546647511024863796740272924320284111114919481069550833450513201217074719688307953823538284833193167853536906978420624595371406437542005308331199808634729097261089322084582177786565355383851694596618714507698101224685337254411464071804541242701879819054261614018887090118123063793137135001604094232400180693759235151536931215063584146063007022944603239433544206649155470890469083796460879008612163252531342779942204486595397629155657248595001970140505626497618144334214140630899077615581257609955468537399698510478539321165899557538180855352726275262483242113008038075151883144685215577841486910068009127945334699165069493626074572028907353571156724923108920173134193456801101971398795397244506343573728254716771405844215419419955728795555077530673106082235581594228359302909441132899917986435092493199612348497867176942691462698417592443899707410545133608696498265830350910862147183419009470510084789737830050756926146847057498799721245011404503708544743929444762158168088470748800552707155211992342971061605666176442526372886112699232386210599028368465432670747824386018625186240737131535377533491658488427012426194455132585420538594084208450927682089791539237482396733625617856992468788033145042585738719960201625682261778177402638559385390686837072817848507326849032389245182777387658513583563710855446237300262756338551816907580789778863122996794318700526484765105517475438701418683337146304792651967469690529030347770067116993866813614997387912051559936125537305867579147598441886261570336328920973690240967495684998523411304777147244287904126214448069227856550817488832886331044127163265728329469049271823108374950024712825732376626800729763754836448139470967473247810819445545587843876947501828566625063606401510120596780497512276509038727099230482702609593815099588235514959280008568887360045918820567792153576655551206250529653775908883999483703358711549373553944290906920155970433912300888587834174939867291368383995008296514926985694856096423510852417099730755501785989633719127294086058736244072798873545760100650844079372335867945429580655781737215545250028656720930478995511032375226631185212031687726641568353291545240862477987181244590062898326706424789311122202094972960700828863239840744064396366815723407141659987336556727676137801612379718542003716270925115780203950179564181884457917362310263465374486366788640159404351321693264380084783613269494203656388961250070059316533338354268175321464111814611057612310052118493876013732583146715646859312478166026157163304838650639536186056120706495911693915453383152421374703000250667155692269282055741860050641832411883049418242007386970986540485378745054374606236728112115750777816593953168662994901805565151637682742795535048658107816143131359342768557559003761663657404915051769571817738636487058097565313376552625903047953923040046818156334433456166264526042951612855290077294544895860587806401682176909924765047009930767647139290490756016349257662048161039473976130822663286565676335816781199345530410979972557614249605621145932284070718196351786199219771134888263282154380295322410863627809709946597414751508095540632536899038764932677863483615999452198326827832849597124457452335407806693242296833656800110618542415521384347464042349496303907216965778860971971023856755385176547624367594227024381012344850525847115458672012437670590110842366911017772840415273038725377761455840581443832613721828293481028615297904997627246839848898607016585153482642095653177424368141827486053785296057803197624762439752319650322737228864793812808475325781855554467497890541004299596972300673620868013160039301919724527060965769993667305123225918812309206271426445425256213111591293558001623741050427858426323632572519569810158802279674189660642288340418223493665088698331132615226925481469543774060665730263583747089688376275708205399074301597511997781206905615018675044594768430813034722675591309183745843145467555444482702239189535262385505323896391528477272349882043192458427102496259814209248809944553736361958669235021671310715410565057727677815894149861155427661335891600854592435232860364227328434895876497245569953312699118010017489573736515651353877371462689681854396021753030150196821688184759318905748069144701879868398976335587178078961074151958348978611680088972759254246130638907367770326831359178765721236316814309321659233077707345839607040574011005957121066778023396686704925093321953719549732314678881992141399856973693386803468840661992324528267741411266803329965964637247752952238531730186453728680259863028647660885940812991004645927096085015640566044869676967395059069171140949444551494323954764245924095559969384619375235317849213722122542733577235976813695395346436850397734597557096229106011587064410753057241682843781983455388165236192580816160841997050183822591696851491873149096647111701730290610286261075674146241167731210386092042854644762865018738040226976183994850933761380636423047110487983749835930239922785463935645645046911653481288240675287329641517160554588946895659380022228011130093732784214505281018732679888423890515226785196774278094274489766286329412909351227659293252811641424901044928081229409953665513147121137799271596989196802313598498441924563792467774167168795320191884024194372426569563513199048043141866192598486728440141188276286996527517707189454650803693316733595496838004510452425004427264205553298546326051708802165838964490923205972252570806453627248303769996829156411932177540080322493333021344155259528134765791283315327509988421462078943521837460975286174460956244482966710309662921580978653240715968783728501178755770760597912279050177981117244703986240761245794628876009250810939781502315115004167680310089411958192213337205512940935581896373324116700370566893916207949623435061224080695495264416454394052180324623980406832217742402122392220463715383407781602277521424789309053564867596099770067310162274500256285468609738454665085793499728512379585104271458514509639330233887382487080811200112110754733721129013128018695533300380208470044892141302396814223556878130668120023423367699974771765401796135177503530070350593040630199626364387464489503707179103603164188999849139580366017406508935251393493621439594996969584251846534448692893861933927034536587209436836896130310322028824261361576860929479236076812077547622039332348064064911427335440212927609107571258307593337334452204268813173796308845436045753270599877130738349687063971749599131453397775846278664526941135631572812601841774067970683853854080476842412543482384036026592909455738550844834346542188532446360677255747241013527397105674902145797262039624159972968470895766500036940833199788753133478894687505897225749383341252794605316184028514152321640210429201637995859634541839898883146847068734348460012605267797427388937653363170688297338907920478362576794979895479424630020284289274894783858578590395699396162041450855903921712184437437718482884471106018161339695138498722863979473145881243569335040665953787601497314741464292775752683540778302641850216740381200448546745483121365004513011445879190897484799757085980281205163109141185277589844555904035990811213537711742768433013196959904948153160903144798406159352912040505174420830272150517583631261954124076396982464859515526347165141294673809538773715976844132707361535109371412985484432780905005787243169465371639920392821850075474490312062766342512124206887443859901756437241408510444268214426125184105831890655081337646838598666860337228275770747278048846006174869430979814740569151609851840618403246800988857551465578041778842045239763583511377188938494235764714322807282094883246111707372972157100530087040773000366433008863049225044753981949331464730679906142024147267938316006743895579849275837744628025847558874382129288586989278849027989136548119410109900141041507611927547531285795730113411101155641229802227846572266932740234814222164045159849488970064355987672876262542008946805201036314284298705418988602782325767218581086439021351427326526952743906245705580771820397593900717738639510706834868593302248697337988801300063343814362824248550123750834129683466588250639018608068087753227542215339577132675713412249061430374329056478709471254574947749501193189714499279339736257083227766520777819912447213315561247681728875994082801579210752232608249678551942603139569302805407504317303528063584937469745099200716695820390875112480209976388893918771691815607477607449883744797686116642806056915325335807536554105415546027472919631374243516512064415545962771086391327004509803302375683902453014997673541259403957792140326822651113697242651202472167395237075934419341148449240301590588277924290423964376263068812188794195450458436637540235091196573596286296064626500764055478959128756068134488244180120172810155517862043371633317622675509170469746835360404716382517711999421405556764783843747620754527447471171214634448571159123888115057418936383086011594306444095564606687823009241102276688929757570024588828501010304363908068304468067601498588106403521266759891742018926041853878542319073305082723341574076872259841397036040194263736824345908873571430851498770762129471643143696871910737615220024794957913381482440338279311841569164568565030315264875734278580191296261621581452111156775598385079822032411014928882421184851318206932050313627570374086888449728331742948943284911590488737771669180275567096301546682761495526651539831769044376411969428093603139929943909676760607763739016023736506465517294655334371024589124698349382004190166413747497678656737882214375039327063055995504984892214551937615827344509720601048666280453735430364991430616939554268721903614467793976662607820853931786197265124664351894643414707942298887425102136549717634963458494063028046708114854420771928555043601143579729721776416406207876807247356143465558283752634654731961530527372388881305817305757560874972809866074270996242458959178110155123892940764396527974475168714162655715517848059002688100507640785239347809854875300178798614641872304166919121300264334908926273172999092169235032182418322185933053610556087376007702256396776924168290416422541819607642094630277131817482532347378386859967708890125844378062617917941831968170272056910967662745044551224558526235208955252660914164770102545223374537489153789153101769868423137175933782000611746675770029443694165335013621920341755811694895132515373203135774859125844664552768585303807442885559419856630101798085880276585299904457572345703044843017307647450988287271396724047745649501682660227151078612698700955267048267627825528738377983139527903334318454947473344673556573399189118280707345686063610275925684920847068335386112725488422083339113456779116313928000840623787233510145291688055362707148246678710004459740123531065696325586143974101554740719281119495249390549119617230898118285939574413204717010112187309297029927705806014432675621439875010735425524322005028531465453860157662981313506571926784208983267292702110099882547509392818882813179141312140278188360828961201659600033179641013590194385055382791909299987414726154584272936756894826619591837009626322296679992177702479180645338320229551068991243421136905605438169901655105330885862880354142499527822417434205060241851624934886275132896314369004082382781784371916574526222987556955329684793459520364106822162618351580455581202823101155864982811712981390788846460056369480672521110845926020945647319987767369739423197657202228335287465725261389667445686877780181218666510814302255887427493149128956213945116109847567987114620745270574530456379507254996885195620499115442614598226365778697005647789356701305857489124595015313759210675067286719322337460396090686191924933371847503723356834648991934837524887274454149521985021775621279307038695385487100745507332093187346804719849538082816310313128764781846902321314555333081487624873796024335757995578786233204774488649289154853276085432205000764213051625841737371037841497168942122996360909663710402226836782930095257612737899657785213157801743106178206032308254964939970688766680723237744912347816388497072429524892164828062504970084628047788542580639417315306585249882607128772772494991312473556029487469090554510663077976381656840755694665146627120440266015672147455144287772676602124192002893332441052656469538453704369129315991060341089871900593418353362241516955618176152536349429386907821268009193167837572146912148534621843454139104088312259076951733768267807720717748601790381166946815928836228169473752804424421383527494661121445817808856223042461216549896874757985839689483097030185085082333332422331571518035195608850759029598796039232888678144060816989321642003464343190468448054585015972013474314664892551171559472957225703475326450127577670898113315281909764130086615787823158093449153443832579035187142981549302621114678796994487034406948685462676186892265663850123899215430008269283364524276052944727459981627662306841497690940850077121490366695439319264222514970699829212101740349669165981098736066084108213219832369541117917062196218099041793072547352468324500025775589783174749691997657808664202143035661551784603604885254563106795025494958792868176947340639501350662921649484228021984156447107791621938032031653630082959151983078659406080387451054829090697780860486860045427766903630330266580304152238929700351536024722807015661494700345878263535985253438887536909849500261565699012099818835215930911429884299594712940517468463943742711176565805334321038654243187162882192271812210039246367211738418236203056684555744547761994026461686003662477617966203319523132936158649776039927392465252808457772589301459489351677931729184145244881382975811969841219110611843756477790754373539431919835460260644987955647944180834734685851585831036822297653817589841302148758934875882542269575622940838207302832308265309510250412383665275956576320577014255205739936023796231276436280587133465625520426295566241752745475506614399455959241275024418122229404755164940935651884172777569064516118353344019547540481472712354339022362071927591613668957003842829021465314491550948270847332262650086489408980815076878491269491876977180220219333489183096512542627955267960685346872505787915242051021775048052273898081204235471481127505474838248104346687103137291223577167285308731965610656120302813888896171752238082721577123939317064637756508349660934004077309909254438423610271447154249198432464646327079310516331457197767314100080822439477145255138449288365562780699306129024342810398372499605669894373073841786637637955037636758394440043316089114235404781854489150421313458056859817862457154688965905389299094065647459935780467678041504431736143361917342104240020932784544449139999274992658654376686192175768151988426514953118845932206630477260232106420173268576871195225191216255693038868450774210079157264465406447812317789054305845873708117820472416310412099309292719760135543172520692872913117184085198634145221479973017831396609135243599284219050509276643030386659694094799512237146966969321006831931395611829816355415606673576287237991634195162611513162008786975433251149435251043689061265880478276023416961654266735400780176574966519147255729874208717933029494731014200195610540005161746042280537453521252195274067895004074252604147985098583224892966672363533487396229972200993008071044573187698474316320122577071094165582840557432334999891678074527138853213801241940747614625759511879119165112856336612243372384974788197957786344453000938135545945444123121660182310421945396637783996923015391653012871274227594159583772354576189077772041176074485890194588488897676140085986877277240072619019978512642977200464791237843761278624982530623339130469142972750596756260962340137784182124809409197750973171539449580813587701815905797790749926320864049280382205611687143866065086473983194634727735012773177215309760400241627807830682619441192328320794538069217662553825776147331722256834875802216822732464991713849572959834238041738755903012183865567816000242825601093828252822073110640981701268091180939345222551574435934261386593480998134798127797332998298298300799595411760985388918799787429464202683983217826696795660145962797141545568664149619459396104123860987386569439966799285217150589845662116629095342083808644676059646240348273729252265878597860990101417140188312391473317272531655894544878867445539711074454949283949624050253891313061364020451146669770372289543231071461975405592776864430194230519371010032201971464438442238530392767959938844731179245749262914547239357524724203893996634328410872693592983829538737516914354686188709389287345242577932886032364464575999897879522245863252369392517082320872357159417158302353758608981302934095889651309473613380359917473572872434619685911893711097054492294193479497013929914063270977309734031811420957289443700501358807874338015938673101531030296184973179308808486107159842054104541871733612058278892523678217739709306345189710745363726602454062087949805573778350774637348655210965508492714318466780984642834536947497265362679340539703663445444070819912953958796920486922635404996713706064375308656753064639885224265562384885378804910214521779719352058148200186142801483176575603621347934615932106048741194115560732051834196104379071782582402422213631559031461507933565787668893793164391549386379514580999010970481281852298721187882251530839200979953753564560245061832840102396962555818858876560661974887462982074577765616419770086027076600282930177363746116001386008647977391032991138130015447992190898147751624134453698712022107248359473306846331827559341205326280767457657891050531592779172378096547666346121290937156296200082670460325687812768253552534108577503381740903400082927825447982934809458402807585672476246121683991817961042785429223965408382083885120240077445293552143228740700084366073951890316528202874196117122345084459975894197375607752700477863668530099463372136142887637303107156647024837113222844774579099046962653632257638207889984137332756862434952352407924252480428480050919422358554336750652773289176021452511988360536516770717694465044037064084163219012458630333328892204721153205217814663987954614907646150816543956513882236493655438596364613400341697539618654904202142858354287487302600644183899957526965271186485308986109127300652464156557988940000247512238325939671589136388722781406799541431999145127802090083744245273559375139144859996390110132926782168468093193869663581599722492635718019743713998591921351980331768419122019245534247010509242874930812777628543454524767084807298129696444769249638700487303621923722854844304050388519624545413198637003400324780179019394351437089102040586134745656561865270403270036405355474764539747944154688327364827305083381099785785303798593799281924342399775929940548286930524808865424165483722168399530002640558996943780247060968175917325623102306961026822023284402869876411474954707831875519031629594845821496669750710376557509870711609955962973980479817824071617108680150060350943505501990706141631678398181968779405381551025568409943942605181088176018939791602399002812898015974600478064900371718817614679609897583780393234786172820997166427100222934671796800020553209504956687420471272457179047168170572084987814020087408334753341164188392230626250139129882562358399917940584729737065887005587316176667014618970684166715394804851049236127715460484403984570307845094717582790267759158712501860089435003074906410454487508782700223769783516978099238713481618121214641370230646564198663508993066059771568467033665257658353248816081464376814697452494976880093265602163966638748408988706887491928884732879199901518406719598814564885145014367197310533352337017680673124808732666322286129123448662723117263908360502575166555562584637998972436480798443584232467163019075876159202492852559468526798475470793244143633536337610268741527087796180110913281752206546591926252419508172544009681955600924578971649414994333662310269384138730736846007578117143062184181470622569543436045625706811655477352078692239886522241956142781712860870814983886157738204239306573777371662941553613847938049003177135819188126984232290037616381436838442396602047980954101080413385108920463852050057826166275521680995274602248852078426624798536742102703385982524314526636347803920639594453722444294441078601634045390935398187788739563776251355546533953343861726012257867899135343306897858893702937344395789842039469719363976878951921675214064306157102999778447167324990572675809966752140020518624224251342890038169324308328330553356204160370840467907855575530734666236949641304011820975954045788119042103591724373250594277916597694159378385757028679855280675994213773906506412688630488552828943366482643520886556139704361476016281121182793435120776881668623115479646107322738127533541462626204864612371458550267017632713084984779778686559972879274508344099486516130527497618850527638843429149495328216029695347745698673052228319905955954041207760093842549900714419857458535848947990389423114923525102638469767256119630151589829512128303138468194940377273650077393354254593252413265142134680425554649140003928363090856600159351929252382793337117005460740803572523822622847638572733124660545277992677175495914868128008511155051190729018020291488284377127370838449577542285250478892545381215895176105800439933589963006436905737239715298167026047297093753783672434806125274749758216736329183891591271086226669534808204862539448571309800153434974032247374429683076489618225183673213227874189680864538217806551522507696616718615316796647474438871027736539697389282738087149772649743876228503048134886127389006453007298253745053243937602455782685275979781577471510689685234875709552456750635398208759788939191173490145827286381407985067474701023944781772751679629161090511898059275786432080374959643337875854936548373279190409512880572452743209165713328307425998580982947434703446150245135328292906035177734519652024464941742457634873669241976030924261888357059038164522787028705259983182990621889257269899884154489478265564761464074394713688991396072076888175364145666113659811404092347092633685466493930928166089631832340506893112546072768207132035324778661632077424841318587501147931037736964438520634998140997874453290456182659832313705555472275314265610508117417746377696799602784009394654113853403761055940058962927364279069321939834892973784378870222593905156509516318971166298299691541885996307189057572116134872798742704448265115702061782524190462336326309334340488353195245645556345723654063107298403730642530980864577416761455775404643908968093909435968190646823410568371415264449793151575175042617943167424851363585082681043962389894261847093009290051865736426418486731727566711689244851130353954932334605160389240939593729475054661132809731055612183912033265582907164021562497693573271599283119733098053945095411963323437641928684875472541925953611009570450842522091910390056720176202173814112761053491931968560332319000453614299100216202808240445486093457455164610912477819773944574365899061104474310931856498099091743724299626970195001491884128482754697570016103119119939153072022494421878744779009361216075434580976903216079927379888760260019018632466713618105281168942421845859604069241036970158773135750062562186585856565756466093435109060899597043785464011694654053921336550615518028278386448221315235201254679644791154044034820490802694530423914970399874934976060302754975505451904340034589248215337057130792874996426926998142395976084894155230856783735375806668882448374148902259231412065213167033967520951513735283375814438006222468094469069545563197310227228423615268948220194998978322873883282932444468684023009939559730307652746378409477166106939018960075646196842385315846159837650037348139896700000004710937138946585571923431232498253907819099449635540820527325675111443251108493667210092800037302206885654750856112593586061915509255810783403559916517287214549743243695947650929953437122396261447511048911106912774381666168962737536562330251146293184350096766622735554519951997542487924960051085134139500960119421843651250674307509110464093200986190330805443762381694866660323164933502322756858090416521532114869684355939385511744600059094250687130743225722293557624770650810658057998041568825380438824325946785300253917823586958394954699588663158309790434545415742550933262164458525724965566432682808259609746437408741396533484289316929407817752568260015567282231454804383220351350040571724889836058794112991075659306187404848377758621366165883843558331110189603051654876696343030085340288754558713015607599135220470192561913948420835004573578751462218970645864954616196586946844166129547394855318983765398402349436315843464897014169449892742506234878811169279551754907757235190330868873111252792233947204653712839254566178360687530467352837850000811473094514260620581989518767627944397372748753678254606160142278571245692024914565083629314717907425431904878992545347394015329180839737010058303766975264951495427842384443874223118195686902833895141204353761117789296631068492338746161335194969250909689575070550399060956261148660200295501724268269926068829273849065217116500822564982977122169511289208197409363684062368505606841653252388225697789097980075463255216510419366862160346823273902333465831044404600815123406051303120703033466446540827927599846913452960965230937471468715224066591464923891702807100616208069986016641956094420533528019600077710168840160385694029842272029756409678460283181603782621723017809056808725900573969929043115596484754924610499119155245654233447150591058986807991588265820868398547862335328375573535871451968047969983614307005108719725226054361980161405675305518120156861661318185464995208158130454210238963992367533381395221799972437507574445339277002384084964138206997993716834403407682974876310540663800200154670634618778254597971675167684621473725140266738837947332914024780105339679885730815812920217625389322200656671487887230011973075163286926023064996183243400987688534872608463252231490826119146993132220934358103070319023956254337179649864989324917988947391502997921069566770142205124245592752633898916367659293206359381027582192562797385001303304909047786697444104170341742955583778343149277113529411241464230905551281133927894181958166029781708089624249916544313690457725724781027877376058562521839534524621457883896995417590546765622888338582914995680041721552170358153911625573959274000776517324296546494836131313276769673099646731260594237241148117148332590407176322975307348848742822657462905115932954503596659593041937737720694722948242536899473209996273761316704685983512972563645876797053226660868867214346761336529815288855900408055755703715870178476474187438434416089893680328563568415387261455174815479818561496853053281469656811163489937830664370800532518466648356937914472471180693229601481454783387857716163735319422632982886970402850703631167789947448953494713435382225152724786402392969272934274871385333642144599306451082736235504969339810553706539608796217704904576878047235414293316493223867270274773102527786254308580352631600618946422506743251794124275482418475568706723205707350036710468703132171391498586176608026072525476469944324468305063973083542081583217162221164637562903091386789040594283898926964599635248975659557698664572438091109043996245796873374237900937088522520943051176741378359678558242675664844508182534955428127425219520400197505680653303000158028535109620452602587570011444518639452979257655315417104658467047095252450234207290824026076233128748234061379758400585703082047128786604196498892055698600689373268495056254498250431552283838746954747880685615014739567925290926745972148835115273129901525062620356940577309507410115180249018698368136010347714877824101928229773572900969399998368441182640456908372197126138696293171984630159062526088500763177082411733921199307241281996047609082929064365896901548329629991465002929689171436811200722519519428760820694298428405593606824284459719031962707123880058505479037288386506257206799296138265707450499977051389288211289996976884353309712289797502070164203072910966687587591154854653695475495798167085971747287921441310143798635370938007389866945955145638347242106689343649217583161278931111111220088421855850245890525839456263174871972119899134184099587861908219024836275013627009782783771831758039083498636221489412609543267249816545868374940490877007807836135866319421573336106248067474841296336906832066390232713404721606507266392481931830954681463263048611259662715475242150706628697857332270514550058836718602338459225517952230828226619643936673595960134932078811648338484748214682838736964286782277518650542891042926117678205455161424005999668927761143076258955295605297324029438469563126847245478582397686114551112046798710682458597226928855631643250702796364883156380763443567963222371947287839536440673526521805920569557334991099814064534139180209207310074077535753596205117094655389568521202559801707524052906030164107305013997274170411597084448040258471316830367781452993336653651120699073384120991817737369973211890979629806364888873057057853497182090230963423141931403099105080841942539549091781248482878008040813792180953565257169671120966425284331886348545942846571521800914285514810957157678827581786025704757862934928638731805644785960465811244826799261874203832050852575316284317650941439826734608907527609694210717737353015541005181030495363270062663295317136863974984602248395367776383845494032285854495705984701133979621596891102222131558267272461216017105662329032126845630002270142295705532615750655880754034433259396441518907763960769600453534468722472266776140768200381634115265301378377576019860418430851676579026754028343634107427073028930464676890946082262746117137011632584552907776555931011670290445617645464419831269349227463863941479079252207457406668321570724826939445399778781641746923850448889004855314062219039035849503618881399881354679664745282782887756542847150124954806734531474473859211708060772062813574541123161498550061645731813389033677087861266296474938926558197585717613411505561428606884266570676858090728505138374486083895613778724527677993742115009045510236933586016714393844735354986411863547561163713758259827630082261362154247303045467645822397425483502556056090783915607178228265873152499881264692759031795375909813980564623783854437760167783340598745385284900490959163872770582447161600182871092908183558039724941757839702009114777486789417002633182248510925758535089145132705188115353980564404280061491527515395280564445152276776724452647275273470834691802664376529193275288114207142893690624032501988169399219536493046917555553950764020999905325528533362566175168810372151244761564196827477865036987506974728073201001054881805303119888149093292498434352215897253112534522787469223294536027420741254572138604896007635271605053782879892492425812494187586222204479863991933183164201489784256069832520458661998598094570373283840540137511429379522860183341437008775050607782104095554701120984522561410504816229570886280207278012397669102440900576726117684253570851276831401345041052548525817275671760132454943663536692425332175970593554025507514871089884732968269467890126416716112305257331038379114489013325654576112603077999028106106657523563269579299102753774528810640480523960697515792420136713616216851761359080264112736580218488534900575686338012936154686804604459475348737055181453223579437159237379304505989604160568973756681422887532960150008249405780705348106336410722757552795581624119706298774579139391941480789974662880081355650098369029545435458958863546878110735483544264848271068369024249701438080284547127618662556979857533616170557596354456015011121016231626738749672263441323065192040949107900942671496053796329521115862705232751332514036745959321367198474414762844835156936144464164700582265773457849463990806945073487865699841396706503760870814026695444758216007526942295831005747068509315504649215186862654797498322380611638966181999869380580155128161135965678853097468624075610279453133446911080190503282792693658034324599267533850433889002524442858740356204793103900411459008878661759737838128339946154895457009596698586502335201892951069373572174798864742770489768867171974638750417272675968672424745980617687434040873393123961482960026028716965752664302753347379336307120099869913248635628742247467626861357431449721731624235850549371796217800891935392871109102036156485688632856678510842076424402711582552227366192489792627163230213527722467679200588978032716515850988246915002027248137294763049101497850863541206799673100657099903133260928258331734846884162342320882083992932308324228735642495265582306704221254196608440828618907575460044306865937744513608465400784869015722785440147161671339740443780231970770835502823107292220409049255862440227070237767130253578247438529132942328418611719640316777507271529246277998840789814146826737994303639183956718644495260325514957616548934109816769889508694915666226127270874053558126231699424377550506932842473374051644181081028994231146952559114814737184432266587832297241021192902582845315812526693864299880338480015642812807276479567709519857122383439643681414653312477472129650217009015896116924585609218893743990012484053908159213422349300303135188303864056817836328280012812566614533475331814567778957246118627775167938010049575482871524935116959682739378610948923194245092180503521036396513663584686557442841361141232301565664820931938255376757627268628991098834121322146716088561180131132847909553501548788901990059599596510980329330311624183633589526810086970929687632601989374556961683402165285278598082165302246379023707128348232146869241958253267900779067283436662355962091937499500446204811492096145792728994297263947110809344350035815791522291449449666208627330136246815081833877448984337747988784413461799738157062938794753173035350088113955937646462768691422804443037423034636757038471347567237100493769793123968748317691089961098060140014364387396140302740406922787623214477133938330898335920453423772798181332064800077262476658375134710839596347238768265969713843766422265581964308978343524794618355896025169279118022762271865865945128792021872762009655319610210844256196211775576379973320615534871390194780569466899001437177220219957210575113912075664333269263180710596353990288935628358701785377897170813600694117541064961393857576054242008420441992468099203231242926053412237801336840183118089066836026641049156980676139634602825899524697143892664265306224904672967574022176984272033400164927089714352649345607553621742618995733781215928154753475772821843996831229384912472983671605171707100872350277977128667519197996156701861882323534258323928191434608280680495646343582255562508362790559299709805960396083354489302176230409753678173639636576270996666851887761609061105610345498604719788302185769247215389727756002749378238328109826658843245730998411833748186715634561800205820359561735441178408732535637279888898411237036709198360137791478832776978100988984216275800785598947952146311096939515277848407117068822730560370372311067070204926929447500140215369060681804248702149643653629385426464955479595215423741565627769981255333724086372930038454885430042647400867678140590434366713251294166018226263797940651394507989784589134182070587725950452262386309543894236626357775047948702424444190397587512243270700206210791500796442012715815418501002436624565527016034559170586258102036192469865529671528489640544377619883733651624805071350867260626854801384902748909179862016463555285128127067905783853105511264728825446938557250434990418798686886799980777865098253509430989035940508733640340861054309713358013386052632573653068694333224642309853743605851421354112238097210723807820219335045276043769888050352670921880923533535554485991113815336303651952885971110336344116918247484471148980668590280940486407551615328006649350823504787859990290501883219364278059491406662736910252641954607052459479152254243178428919012589544936006069783992791259357794296520959206419892878217298788133774674184593403869948606280853812254731357889385046693973208164933781114961608860278696225442026588161831140810229660118025914608804975416001080322995442331436902027063164245827442330920637690615957415682446936219008024363395726430156900614324781349272709529953060083606346834057816497242683264312097704481605033772096565612941360993521866125270229808647805974662010775955670080097854396402059425259939166221896937837886643863755409615466044013501066926153815905282523228742429541357170554151524356963574700636417453364834398197969771547725766463423699164030333629843517670140280685429747186343226945388620077311052884095260796104667151840332171879898176324902780819184931706941519632719908222187600220732874022444749752450676364672372668343569144339932209752187857002313193542266613621289722546506388894170449235692993700338047870456716623177025774650728904713285652146007723952182765221011962179964249731588731835440648374414582058987638033841582025063924496813574596579567018415201398311624228246345201028327393819759914868401828712818073920878484595453637256925159906929304351143249125202869635465819192874081409365589184077014098850348722175044928400437244462424486991211656939559040652185782233687349894369607657968362872138373733801709763947985550998031760880056149074310706084178082870553955209892265003610686832479802534390928038463557481514507495258212963810958264965780116183491752390091516976789912072345650358452750189274476058884514008226241413337328331253075990411920446187367280040977979340113448860135277929515353755177726371487026278933827629429294716876963970308324264875884646360424290297728918967667919023324862561008431246822640977437554747806218418942665238181601826596557439983703398812023362882895170425883509563593804987773875150443461112580702133196522943669561312678075162087915643754907407157615057862225758096282368381032126628524303755895376815144265674806401169207568048552973073606503339215620481834524956273669346328259431398730662210308194186635446801504070234604821154030933993281593882036457539835395475524974714044470928508684950781026498720489812282155687727467850325852540375586717808212048302337504320904849977006632034990727049644288807212754325683312685782282596484257113491579496683372174989940371126672587055184226068250478759660491671333012590759866184543453061082272641460294122108481877900746774691795899985360971065336754406143092623518866108361759585000367028600664151575207851551921916053960953948557539236534157370121730572188818132088797237256442466192529721446141326562530737272471058996872573548461563596697546477318977557840593869742744149802827122052397900181029685932658370334390637703722603517500878412390639041359833943474443785048778314559203724742987796182681014876667249743770560724794101822484283898992211680209038193178499541142345481240042876322565460332867257493665127395358980392669650440775529288755362718274884026114547837948205825789424950858606975272491206727604926231453364219132722380201432909021193667661757977722049118708189734878621890866823257734481962329569529510971200341080124323643077284276599442179419957381841032173633465794615767914521463571075767252299527665655273118078088896098421997454361954098505249874923970678709283535663404127139021645772937265041389719724304808457556258101481146343961641829151285587093814927566953319382527032174169934804089248284720681478739972649612478121717957316165273473041240603957460125801429973218069830767639141478656331397210280514791197059862854144925022622088268926094802855602472651545938399037417172677732590970657831959183503714055000905935053803688862371132552271751695394582444453500525510731098770867094620797440238527169672861326597120535670788544957308551096499125926344075336314278837587990581460939548724436086710549867110020535619061095576909122686787345087020456008880846752296571670375838790770417921067269492283130714375443985594171360722979559330040867628167060023758638047563680996924534844148021072609666199497031970535927589971461720796511970286524251492170357305252493553356438202624149821002073582471385414922310858570223336271411116406452549256851139633860717227977795839052365421135797871465357509563342928361121488520547000018113378693370405314955025529627392698282385665500444768315539796154611731649030643977913599864993017904283897136795941576947097883633663547561673844055416393965937958551098368835676069555769801103361178842918343005461325482988875905996207552716746296240731030611791236550336295629457357049984442361899058641171981248286402161318772675885859809217960014519536750360501445071383564329288557465109656071412439311190245351663894326340828544448821475269582603147348323208055890864085891649139883125692480027878344605253209960557172773731447418735084343253048108476867058868442145403626314655735391409366228400710317836841585897461675353836710481483053646758205086384700819840131785169413922634971641191959357387199362466001244641880176905755231713528294058286944557121715463460217159775462157064317414764356987744463874982816043828295139125991653215398509303487312936155866049860795705599375267448981209658135661072172032465244060909350120378375249882685446579782735103666572749998886493040923488435701449132950974511770358253658712230864145205023408397518813821073109411934535164826372870336375083733743671135731822509531712835886911057353546664096408337683626483455162620577853819264088242321178034263311239188214648801735736994111126971757898629074783800027314328921534268842228400079338602754163018182542458824896180389962824732313736084658393048767379790926271403736869013371771133319368756749520987045228853728807320747991342363785055682992611875812162991417134782509229664918717998360046981108112648749959974120623999099724761688777022099669006260764573046497983976781882796015478231993606604281975773621725721374847045285742001116571190887544404452197690324170543955333868914644955161165270512523058584779137422435465367160555628346441011365893623010376572672306467743967384810432180116486029386525967720487037356632239706368716550952714187477070679576687700399767576856806017134461252371614558337710522655709085688651747042241287389110528097322050072554634342142197306846726944445950593921529437481464643750027926085042245889673577437143465549464088791401204076489955319355974288212574685961430744474813973858503626633928383377689645556926089268062325639423755784208886874054510037169868657390585462886289930005140203049165256084889342589591665412078657087127487537068995485409636041947421185477105498757691213099689157016152505887290248044793062875447175524304740248921386608343066002223717649282653617826736082483611894387063306523408936010840195347540969420364952584199175098476234733292377200589235175377593389011957400953109897914726105468525147235467312132353076990547923604250110176542287834777351011631993502916112711098743596506718874141631427907080285388323103420675519271419336345738020200505082734284842473857464135713564593344287682810103258132577570687135043816228269227887912906134172642265006097142502558008690872273789462230135220898489112139415095668831842213167151220037794532806345485939187021017459079552702524631679205845285738898118115079211664784178463524951801449212761202762940915969207247932903457101184032323612973523618678456539441883718378166438327458052231985258906863572907400579178855683678419646874590251050905190807567891661507731433711307558680720037238830866092393567169003607990703069299324303179811446336652379204338957579039038889054052893366077603591448382053446264182947861392177319802668116030530554109491868276706882435618780879121832456741957948091717615833546708103906159450606123312149644405097569142325068091640867260144491238681374507631088482677182057671982375676377893074412769398643553738896039223703391500916236711051591968012279618100683327516856347812026020520692430239050336717363629261187915402747436589102517372135386686110644922697870356242922726793237896829583830952790050721911250512693908915902252418278468723891914893239290822063522705337401640823311783445893796798543893599974413970693646796050815371295447856340890134148463296440458096080449927639758802993889698909635504187947247151813350839486727188927517514268160919840772514224178667758484152673213535541281106567833925209231722956843962361258435801138829821081407139969912717022675494329045238545500429269751226538007462363355198758374520229954321477622294171655235174554876216226310041926354267186458082732736640593345934770747491175241498257291569157901676054722105970568443026364011880340215015822909260863212483301051160756204132327235128365447319857821377635118678975155839806801093558874544313438716664739139063499389574258901553987196929995054772716935958710017905790990539674099505097430081522802292195227864136985903692395486175852370555664974938240840972346241985317825918131135136343101577255690069569369646820014977848071208360879723113609066395929563038623091104696310423720488133296991252216396562472379260173851553988911342570420868997268154296285721749248633672082985969586798382303529771701055404186836146685311533568664525932377873569195282721775275723190084673206770194929216990870503483334408400125263460819109095119053872527699984280981994425878929815032657716692527382797631752359415739518750455328829611084998306154974794979225486065737991716683683380065272970467466616853693538204515603802512627739664678448832016024593187498443091660104764910709014398625209516091523717016148272799120057477628869952161200963554632663828138719130208563434937281766480240005418431839559333004445373146933656514941121337700832124643619663631674202428121434933785606917053791784437399426685212779479022715106512409644987344919213332906208642459179390804296383609330925203847224940623133254011834373603518645407587517927609325164185120003909091512186736303172849218484725152809467460109180156014651267624874763261028070235857912828202046431269547803394218018502186126753531342650493036471923902099889068611071908526547571527651265534025991249234786844596598739883552929921825099212143568111637523029590540329977206357443953055476654840419100564175261348147431332076224052743706593958509606394109252874358310887601480215747394130229295195559560278176066031215438894521002953034195226267807258278372790599146632008815567031783696194337578617455429791957886437907261734962700763187740112360147803724847636154531784790548450168774734088514350422136055288300137953877931135133323327144266141475769899905851460580938719530963540699404636160142714458999749561423791864010005890436052069098237132532013092855449828305319631959579501726631229688094606077983572698110260583589417486846296399892306884730899330830279354563780484460844702253770847883489437289210907706677261946416873180524884724831683272656634257327544283635248388811756739569667450222444495842819454211922986611082926282711274629267806639881933106716225152327062413754499052516990157987428870626366284892122918546092660499614041156650471431010069148231504830631945242904990063139547584591452011114371671558675706835831963524739579685344865857684244438488200271146150782422373563284471175548338075935531831546448411263895190051663900132255399154044784869695853782032809103194988028269644208992691326130392983584781342659672220799106820360453749066736240097124452201510815748047734682664730848036337721361459041964323131079792800811991158293122202290629888525605085648045311231855515291082215026961198021498744612851539180274079587294628293811567199405342484227892859512803447937174860644186158752762831639705953654834370881678143181326916656590075317966649595992728975298109553859047444819313364585823753809336469381416225476241857491108233365414372197931619477761719644650557212493210936534678425052235250462048549041874802991435015405508904144199402372947961268823741893305631015763700344606277146680156614733076409073057835402195713094412752491887939705534426390005047921264195151664809444311637136700391712671575672649564472405030555302475442795170320172650445228420078760015522281049964984580254219211627416072592654255286217826085456838596494885450409922273056711834863938372389959180575048525074419170717592317539850869895695673500591624912512487407190612938061054286121473399595190168605173335494405528489322284972250091290635677288087284052259098702542694138319124230570776730057211609927620820227449079545846999594453337442670420472488747484411174166686655362444931548292154195600638769682867977519808082757306992316067105795832618676386405329129406640637319934427038126106901543634083925075496347677305901281415610531795937944544751890921834032048363196491133140013887205530382432979539921089461673558173941881314745003285731233536157203561343345165049267786330815133243622035345457905950574396398999509713393606720115622410519938556734653050168056399871148661922176357900607967038409240281389755533644528429255296064929616442162662942782483685741952273144961655933016962329750675484084621309155982609046070267389738134508830228192306634329738139723367621780789271044497123833133149035465764326986349844937962444133469816399138234996032867991139757993096616149895247138760602679863619074202555736269430298822763964890045533531293894370644926683472590809600955376518618710483076103435083058463560484737717843795833418168421753485900999761234127660412215416046354461479357373471077080045308965728090063937287585618419477015152094066727292614182906657004925200719366149631142996678429894967489216228750345995626270823566922158837839963046015214516459036097356606438816675302591100293481883526149480694015491315720527962867690191436444733732804131201237213621291343162154135680251907731477790563282517099795352532714714762670770775691570679831945520621320021675574083343312589126304931320147851233127180784930667149745642286392277739738683504511824812789816652098770242227062592026135854363070851478089872731744449201648569065525099127103674372783737811128680248998544481238922480982052895374821451007730344425523474501407273221902502568699414694304501460075118025958770752283641570526848884559470549093917474409640147033235617500744639507400363414317240241798832635114813716461636120288276851252777623663952872257785926143890810543831305814217856056028961957836745712528903221507839607409003341035264403437267804241623932331724020732723367426403638558358269300510342642517745098079400805148504413693008986502991442549594054404726745960455189837995827240286994262544377097205979827988049276711461843347449710987435275622308702492750559599549432728615950608670801033469383948020586366133711823833879467381641463967138464960050491317656004380870533231920646413582535270081391532530167440915785696369214913914635181785884142809428920078925031126641734289603988404108884003753803216725251371708564480894082803877953458933407510935971513387008595386471417368076440196373796854368356914359073020595374992984637597048455047574069069975473381545592166618582411393074412415215855045411857749873102849308070035140403886663819514108499842251302158211527196986066816859414149296870613528852579766641544772291263836619971104917295076884474782615333006372001851486026829503288847381477373848947991811765323663400620031805606500806941922532027148952924681055690994048718098085936465099013488950330999692761390639786823251722708653980492017662167452794247575872955404501947790134740348490512768653152594188160562538519531158658842701721064960866000853417747616477764095713801745678096200384602078097972740888085575552063671102613174280346926499288556599322759553664133127222541489404173772293585970146502730767490780425920274861871710363282968245600790426683646606062702525412472260048839060479381357561608293006212280523204539381393799201011476606334540482228285209755071550352554874571193405464844299159400233327177887534442337899698642805136021605566574213613990168930705487840454136925592248453104649062184756857443885904392235328000231629816729724685791556076282201141220591925593946660941382759371388230634643574000388664085579036886583701846052047310635978857493338307794929018425313588830265711238296984604022038420394713029206907474230777338949454569335894020279740716126521237162964745017781393731472846482630506162825576971811472480937426000760158958037307686467617686819936974956542955310345666370011025374402300950841204300582813486294896393053075672147914872903668301099893062929906424542364752552893841260759892601995786230899490647046202641393625148287200885648833652508184725565229845292017035741779565641789637817161324422003095005550962476611655040313213923596481649391781578015710919278901155719495064327992878266423966593183627921207254253222215471739125977201657493148998388019243071503576080184963554535793859540764404700668696765890665312789192376502417983592834919356450817502014958879468511195975836556125652539084624041984202011915933058315785964043770428579938946425526332813733272217399575299384610330596000962420440951709447472210497336681573061858716642450968458384664402676158899118409803561400001887673636502305419884745393833444053752743888834156093510442644011129446905935815696463676284939277843551124093410592636979980040452830012895290807689214325112888610462576072089861029742207471566997036393616382160940936732845956773833963871349019426730709099152853772445317999081204356516265012987627800136126904041523639652695551759124688296722561421343285412244005879489518924761721109757561154138282972341530061809334192993582384654211504992365401700317069020745484638718422017947866279597612836633237642117292449462373095153539246338753154322243468090510897269821823614133422672871635039647855590348233167445134452633640059896510510836888100504534642986257517389222565797819494008295278615192506131753628241601953013981801458679603561614025274505478602345995637931165778038656547489914205590540247300565433004438001090371420060057237527060663660327254841830197832537278087234192731446367520860692693342361296729595631089531909341691377248488870062191999275683415081343271743125246151973035570672690655380617167436122990459167454012587666198602123764655572714649895400456591808519041748585776289611295940132078247065394916195902306229586706524406546240857575446760708074652984410280091992757156905689720275889657384314284111697072418986690458488723773420564578334043748938008514114312672772062543979315473608900510719247378208023207784614696585511330076260955142962105557979520542116912418983325338205316796618220273732705113318599519995935029514204062348111531336952252312364597073759158845299889077178885117088159501625695523675712071980270140129910665845129076596536945912942018088408306316461670802534051737718879404527628707419408503388252141924727580429423524185807834116120696319896597999817152822416976756818449118491027565973647473480351242517738461079559473500978678711488708543000435404449504535032064536773905223350059118490442788640733898776956262120124018241180076650279538110500269329182706751569928903329036182375750490931155919862878245315128816674812345374164378966971637773576739649181146296660859183841586660268432928762044237882767824002691723318881243639915010374501826786129625848836231772492062601475123539261525859954685800539030153972919803978789987142464126533295138756709301705021016628130910095412590357474762350134509612604293663602670908194652563220780868962737588663513112481060427111342563035703511468664233973500351067810706506491167673350588639276817475002621240993299803235053227423973933401198083337018867261928515242015024010538911054121963570389693405298186490629718754623811931398400622534709697047164220552589548940307596421787047423001617681222110994084843506627022884472539506094894617466306814152703355568438673541927638312601644693552106805105385260056286560883151159045176117945998592179756558972940787888494642558129284403128630173092400709978903172055501115242328141777328070485478286166338085368368169547546143290846735438058407291382605674740098862802228926741194629630272802288967427318943915701539049891506563619208550632966169803967978867054500035169443219801053418382263684968027346215735624811661089970713682271810385742959332339989076885376328714319254958990149646330555005613251220637156306341073334306069436417239406733637511334543275762145615246407820814471698330694996565580761720986697498567073176786669007751626996721326797920937367817213223764807702981043230094092143119975302567868847422508847088952476723235251663698896360714812407981038386573345650818769330007060705995802773788156366534310750607416137617708956254316175779478135110000058608861047907979848650664139832591909366769026654717848261684934210927716730908275634015975803941328380062365044795645677306677196037687966007617195565992033902767960793029212393336338824782639739609592745453763743987851394843038121879060037813037585519093893287871969401602699129990280669181913572277912447270642569148185069490164217442888135409930469193759844256937926551823153264142495449962846252901916508748377417475642169161729828997176821288230694278401998288378794769468288378199384013512131781351262040811583447649887759413582151753692475322595555241005857008482430758275387395396634325855428058551563567893905761753607499800515305438547311573735463789638681085073678915526285403116985030658919770641740768376623420794244242606011027306066852841050511483170756596264266228576966185028590985536712819880368002402250997321531877044877006527013294681634091812100163054118494220750733227881508892005794612821997613699228565340611626081382922931035745214112083985428870702267584164857495677584707622981791372868460587045260456494512843472174278957908372030916504560127956024049827690011550483812023649060154220158102577698592870054388378546604513289342356952301848738141455581782627119874811923427392652414470875168245465756182126844382183067882782255743460060030833829394540650325351082038208630548064003230540202988704210793135898153171555193534034441062141582544421005804775625574511682709291276480362548826281788613100667750321544969253230372537652981119678628431941068094315995829877111874248577956408796023425141499162870354864202315604181109427637021052283659787946489935081791465056587768355964506552996554788232351736193044610071309878579400813327209565658879481615987177843075437577686557322393294964393701521511776459965894532975548159876198732273537726140943239691064739176787558891229288699206422339403593808525153873631861544762275516986656296029577496144408921868484397181520631638548111752001524981155087983841959894364243138065617454784238025331697830055443929550540951824842576800280282412754832653279283700951548932604362551477817849008423940893516974550314478725301988114160373867503122982691383312905144381881405592550924162681694657958150491295084952022774159820555882735979386591840048503182857044556359523007010528800272086437239474889476193057647843505908409070904782539322411469661504089102568367640499517041627332182783035093589401561543810076731647284304712612592070189793470877924876449514329613218180503806125224083283263697142050769382766898884436108124147968006956963259074233749401572848690766076348125397406230180667631561339660867853608111213093871050916490643397466408222797824339071439609383397954361314422449830782828591322664088881414833313345722440712096607539075225675916878709584843000628402241750506745286363704538207708976066825375146838718445455551238826073758687636150280099093314883209012065523141691652673004568570308842164266436854540998378451458629288567935145499986997668119954623656668504800901662398934024135214386410609663639625628933955862287983569615548991102668581298841571194399798448319939119046873436229737709918435056820548434950288940523747839126405385137567044040886728661839341041843282020344913258693605591487477230982530774067567233941416907665263534323213049740252356916890575113376608093623862401703521368660889675675419061934023480648061569696876673230645355843678215509146457290663642967782508238658474068298596880806792486930070864737013516050701333265182305800464906576280249281511974545824805598024353250637467496594050466545878533492420256913443178587546248065117126919258386302551489812014189390389922682043193901027689558731401500166293708297101339191205177022218049493989819206900607551457417416565263804741235086888870547563129675991104955177515727807709957709571895250373500163026473699028773759925791976717410230391310072401346986072335334044833078276581202238284644932308547860107069478761237930835547535956049526146011411186161005477088619360891699155690902485228654972608123054427934262448092348629639478882466750573436041112917953086078215547093555898892768662242733496338101041874977253942243555945919295032028007654650394070061906279385029855686836157082293187382462362059382483595729060310423773412342917406160969599142293653530609293950633170518695769961425760344062917751157789508519854891895208304306717983432795789374471365736349689341789238578913686958005877708665189321649077625189879100829105011746335994781709388216616758028779571692869534082753011921798504888938148787520435475785875912397199958585945702028559796342455024838366136147740889800759163839336501167659588621697657578386150990520757307372995434310149164698588191340027067338997942094627485018498798099276121436167762133625033514390836816205782131932875012490872763241869286038979562325666193479817722046241260643976650747591877469595950281225697918634641219906939721477071894229490207634061219039669850966520872281537030543494194802304517820491738386602825486690623841684172255688898186560519724965403849925935176234819607349625236841412685772045963560461890921056259009726886455340053630729020590453560098696769589345355690667103674413741837163909871051145042787286205772647393035953808148387368965587642308729173504388779712824332998651914893770681423682750429716634368462386570808204883644368027720979906544353539524410138954353520844048269203331426603537667051534643218445122167221177746135343480647912763627916075487660874703729861598192611404402357616100349176901179127289195932244685934570362609612183315475896019688734748819823083225941370791414874958279724619528177924521412409047976721634794234828976519095171233324249428433282456419825310330555152830800166735459856039762494193789671762672849241409412086053283252330442888547600339311827675887954409350822147173776784227019782884180814591834473334572033634475126362607941620818161415096850112421705639524379835778049665145829771627865935248633002038534934776577752173814022499911160804108726894896101143070952650081814942158383374495730357840860697379639827227400429898686235027506546898784731953919297550952424663470176309106090270082219217070801166396869260923101854713939256198391205047185343857819510030365973033667256591914525774491517153247564850416780366258054104587807682308610870013950811689743884907050492079754905962504277241754860061999021205298605229571797083797166880865825305874445169508204767981137602591633162781208581845563622362588679379713451153863007825474484014798387736503850162905106319320617410830072033072875120241482934919025498387822149636436846251467141686930001241991578139380044956207738374657877225179656399947631334779289265761620126112417945900140043838052037874977094676949795055028709700940487708187230984091965232299373623389685640229379499811808886093583719741078721359118928465442729416813035628662108116079208426909631583869317134182718363459622408831473860061689526385861045536266667436113587048933380301322056869780522693431979014376378873074657278005194646667476473020844095853738657703534296405881607255801854355848671311845577433719605896796590520411149639103658262461003648757479029584028637888001345167457025851795824633095906895357238602625079980868051188724639520682930641111501029457364269003829234072074057555444788571906991264111924306649815423954597324798392176879412076641690272777341975620448787924167502797744805306237459300858933843516097072311438676833270295061278461179325918386457147992697685264115591136324959073148914705327282488938605157490830671959996919889490688148149595910688140482744853424056652670807811163494811943146799161787197982605348823803893499581748374496511685513481063399693080744411319559716701413556863040515836552742422214994868715142574841757756723911297899673961582096690397990178216993220329559736072809028833590174826432265847723218332918520752911416275266009011623394418034194732716754067959504869058239831805767944868518417631164816133674453179069391213675911042697946262969245029396413529293683851514845433960451465826388123904345724709331835320049373155279664961700490156365948629149431220589703392235302599143294191895606812086956545274569369651264561038770428602925252038417427430992089403159530272478860400080352269022444788874522484616905717807415025189713888812857702195840396929831298936470455988714572898624727645346205925262594087865862120575368716383868076297025956853243325823771874674415390441388660600374592091627369233175230987383110504076251744250266986114065893454262140991453785913484583962225754026080802646511278466507074413338047510800383499869396629840465755934823448940246855360153597283573311333074867242180680502767371801776250567370712601514324995701992621709003631766545558271397411981891441024851238561648482503377738924911067470122152491243125735332351572138099819586366329545547086867357972888330880700091340048690399077624034039143322069322320225203735383193906244608192544063002944213135544461286883847258065365760100055966082523550082864747086885545858234520790225198150314250874003278598668113969584726183938621613309758965014761319160913717606333070788659904929999635516568245667585125188989832524819740612784401653898932876084755641459965182210414857315423003488023984415106168923619700747400697173500604964786397672155777670120684008980227161723952287299649787695610536511315896468208151511620052339052613221078444998207233321865449525797095960147759196144349892512095294966577947874025728545425165937754165990023302705824938757069848974159156292118181195822547258734556030507911251462530305679624812180468076025489904791857021888929645855525480760328029140510417036099035043704237271727295152001449438067020131791853609945929232116983334726370324491531294815001503162530392151085861841341402789789227078810222054395184101780075016590988579346417752699913289258223996179886553894503946581203914373828557194976638145649580783360592363428519327197805351368025433698641032278995309485661943893106893872896396258291526806653728121631812852258209716495503818478176408500971715990388398472597210699756417527084833914586788124942488025149945286734906550197591167207834954528749530918135243402877149270245170357366423556127085146241860476873859826787804146441058396719388552363552564720601916111420019160071278426882905147569840341817632579263289000548159304579131986903056880375828386042505686314496620632110814352109647422852084571300124936883878981939584690556582272445587682369540598613620214228440953810622162948405939455422068082687976545659671422031583741224448602019593366165105195599561091795611729150420559770790091258472810377133829625440399833729019963255718337898994538251495382644579478355158466916782432548562401157147831212382526095678730190384390126091011178788592738521188257814747724844294586519934847714913178061395800625005241378756787834569579539076422038210546763030025560061559075569844215993885643857407423910403460737942425274368702793874249546519066729931690852797640697960204813939503869286361827924119638511803734587188310076279473007574632534654150822976499329338579156004620136349975733051731797199355856170133128963201488571409447472074747449646110925741487245310535145108129186702411058669631543217227924746726647240973396332859525437514319913115301596085860636009102552535093016762996477589353758309862059026320837548592941701495300407475998010792417019129940475283311073161168213163245903272111629490233626725493860627501517078027126533133392422223889076971785269187138864807082996437453754968810073098596839592038732794896754208598263132562593499415740269998863514818648586935298135014948775311177960150751235222760705028916521771149922074049698249633599126421215747723125936216576832678862709270218777710977861647980991640426106505379573737797374479245899585297515749189442783297732426527155001884434249355480811519289574693339121966202470639531381539217601945525101318163757155364635357828535642290164136584417599626965912168128064782434573470548369709535505948569849730299219047276378946204502058865763805257222303429262014243832995638552870210601862703001071552727825785489414866324777256131145213613781570302896878065746359837082763267913913881490109836558140712190902511633785677336679719722974042908242203579228345318468159976455503079309137533291775083466999271554565612999394737644283020370749850555314903925646448054050201345391613086615623696635579795814940072038538767078314604768976515625971966684578211988248822647636155711773164854842123630968468596246420611920243206323801379378919843177759384564874966532904119554572908609695165304404979193006599995657578927488375100997159729878787767034895304682160034339759105312191217271364550763869631413179703199932440182489756653817416331649842919239495325970617213701384887836138248142201620398976618382608098103599428929099599850300168048974150944751997214087263938214366289034616243089501708536829214269947262778925364720532073303725530142062604423935920582710522413871564329928590358820777765518673225869020537085278457199983122414941946940612722688548813903089423878392642976416392476242496532779811294514967434556466433690782404125027141598278480392573579072615965720145640532393513346358027368481945864414321942092770399977138884991266655340254420068812065045538110316463276137971804030254399469201349312921091981385318056448798939871208274922829206370988372302925041806846170784957370825077254922815131094523651960205287559860789340438957240236691364541974854295025100974702221063430450652742406287630109890515159777480162429761318313933457157788150536745664919851837426249772524272944675835423033853425966018334995519888854982499749852483295698175483931175205001656019210101946635714565862359185086043528544327547844203517707368555990131627013633334779234634277876682679801016224013576715546840173223948342032280750702037026640984727522766432302414554003043808955259425462996808035371217112750796308402245688793644917231223417192326390723459331023598880370128098881499402401433776948093051398996131547864868479999200890971624598715679782756050148407987320591115915230649712943372989216092244489262773294193667774990957169258833876088832782043827440526163520347027793039996934294662608962884818366817567034801233046858970565343923912010236475612542149878738700846928804562444834854815296598470587289757444445537465666879274636529900967562390643747682381739971009379455210674490414276126981308411987247471745568710362351144609122035678864635640191421554444788815543725867189954521572842177730822772280929539614239677337246978528386217962172716891006538399059886926158161891025532915918225490861039438393477929069022038379168617436815403126601839194684235788208630078768794046457512030499707323967555059691369475734065798493599098275153017811142409942373232997317875945233247640471545148209577642735465132277634440623682528348685133666328412588130927154634294139792752769902377914269090789784434790193507657045029317875332146523445853739521815630368531128087745325335364027716443477828276003558241615430886122037547787586800315073487572395801479450132139175599716103136113127263608551912880694754907041462543309899507199617912179738836109848418744651072385734096197218094184221046463817555463317166752378392305195728963623222317262814142657168079392766786292680631452411054881596993907371717864188245157501481691136205872509761313660586169748391322572588163886098927524430099593231426725727079158190473006144663529995177695493487043124830040423828163178656220157558654371355104682415687845688421352755806198809066010522683905724531928051488053989861572922270852898586898910991862980934804995881075228323562874483688139318686891685407137529232015467978749258521809764536775910938146090409506075450650018581969530651926135262054525829378381785036633273433478159022499559578169869805550240854008636125224069600811100472061716003861705218136156669728595145864264555795255495658062969877984260599432338737845442072203344366842321666002035757790447623591315742567534504159820312187949108764794493584671048002849430898338906174581696892482599591138439093626607165823640367076845523635140905090709915211689423920849401962465057465719413555979265253761644524422866085445372118415081600471217126464571200222563985722729915832048932606965474261994411723275982608742275568382031937371282944375257118234423843366297101953292983904149006849143094414406605362129030123481602457237581924731968736098008120406616382675356124342568861888786891971922447506179118703299402732369506211947423290141553681480965898174132750224907561043467104844435573578674144523045302107491454833156907195802184875678841358351219693830734288554572922685608471933653035668482493616101500995691792315755375240047192329876628022426495270168195421489470866740509927000986523002241061487066827229069501279481093384728638742626143549974908567918187808676217529701996544965119313093421473345808960272103184839294450885242964776279359142206710304035039687756414568348158056652587912309315863276404659073855848583503523651950432097763291912294573126084718448235372505763069053657735514635354237004601483516187797883832484738702857165790648718717788187555986448751553970201414205472688101686409494918395371670267983043721204946096671176192486728884282851104991198471102406727413815131453863463052190748101483196064701710479080091340165356980172272184591854434100015867596721675783591930148150943788002464236075165435799827057737976664578287818228298660333337675625979558645645007976110975875662217946073308552562973476949511628604515955655937448527852924083762073987593340314314985559897697641952708780246589868966410520076477640071589511250393989044859980108798622470104879322379582758666680528689254835901848048313271192376824997608098274230817487547475058491429325363878900361678823243723221571955844321648583792385832209707791516192850791960455114843558782392435768758044645975705171744026927038733385608864141311271820656008612008954245547439542879170893407342116927426772440929047849085901898297928115059654887056944218331136223404611553670045000781708254123769487803367109350607653868335611819956164559528442392905530704853411501623070737705241620982634012044499540424562224709924342486093694207669545426525326507760289011540438954245717884452526065342472544849476519336209983077894412243614723764361163309000581871263760003185117745976989028702738142617434021403062049240389752079043044940301690300019929856304426482465496710559486291841262915567242647680925213957240192736690839314075151834792907501393975932067125346577138210033065474904067131621546196832414685092935474919199167320355256729609147399456660222917560626491525177151264583577958827855608173037104387410297494611772355791914188502066538767463811403715398907865713675042666993214124502731816673166018373112335825162776156039175757557265904753940321453185832749172578859577363307880208867148126419252031822538861159579253906847079287386277660656805058007059438686383224628554865932222170116443384127296720119101747450856612592966390832084218312081732554914571702866516703378380155069344815140187375481569275757104050073824026930584745061227181077661261807995605668587987286066930650740595113074950471566001036020165688142548669780703398544532335380788240073937118909811766246346494299242266644048070405967214396774511281193731141873577989882063290129938473431488726489318633719713997478287395029463927900362286676609598681224870250667577486972008924820321171517878363265506891727303149557441828540877492835489986168537558919021970383476575064209069090052448092886614945989258885150418916507115473216369576153957638609480358951281815304614541765574584804579507599613388276900799914762898154428849266209462345516228308723413363913906906744733841293221412523132886615390677444028931038812837245657487683883846934273774952835141567406122128772747459397199621982012201447096196678178093626501379979985601024833132840322104780788038751141991008231847982750142522325672071123215638835574826905951496370544085000690545600775585810448541204657247708658641161289021660478106934471464300492657755040814894265215174769120284194698837615703192633126244285925594007771247402325624422609926093602647308643016917848667243144617811801993839517134681292657432895772928628248567660326126443822772617351887341726491307227870206249941769332885443028042364485580626900132537769298532672218737562173741119647464777621069476707873377254807970709354009606938617758125186629734990108499389557279752179477354551000678520955657733423418460344340519053871316843895783365547300637980982531677452577301864270086753951921530714690690353081237173931946182989533498368034533870501693141555593662450775801106992853265078418553514793644735775929726592522089946077555828972048910739181620629116982463195421107326264214899393602121533510268525790490493441926283898094224729622363898038025665297197231959338416467431273060465715308563889712115372289775487724731812341067385655178395841438840827933551667499864913911719618692716769632610549535371120608932360465976088365001622896345153777541167035857916781274812327702824116902186083056674418907729299609265368062863442516828104053578071275593308049296137273307774423334685099951588661123364289991757109953220944494843575642871209962548013161830261212506235506877880469385333491322470859467180309163685815262558459360249066842633362842203150136409212254956919725334162558647801906766147637871229671534931797944569291591878112191084219544929544192454878438749191344379453179913888081555426801647670123134265120697436593282199221882080159271931328719196657423102660974084047308997765614490178093467047187058246798905494036587329280701432218854185619984089796903535932312266709025060175962763445182953016426277279759665854269995328420574174099357345121503727290383362563466981546211985965798893537386575897494718193591518871629940943696526181954479399391751099446403549269421623557918865290908081392316453371989795146487057574154699104833276989495974971536803730046447809659806942700676336842846136254167195109190313055838108848987127879647110975357660517653283516026031880673207462478694577085162941643652808511280250954203264396173865216019047636718226828538429880198277047769233635947254684886192501235907974360457915160042198413120275500952888043650469380260903527230407799257810589612991124536569138336566349395210631509211482770662070026739710499666766812133578633748769518207366062991442740369096842527678558571212903436868220816969114785790320633332500511246661856927280219959728050277551618701232736445663428118373267950733924866722927761387682747643062874646954125529118832614537592459821746322987548318395212405323545933271014898741059803486037434170500407449585022871832976110097833271867757738993784434720997783697326377578274064981988626567971114439438887151070523518442737582377467148489174815854038523671596684127640486603975879886007030456457897040923664263542017963014424578641371192206669514399561260449195456326456492299281366975883435986299695725320330795343559044830713309710952202713957629589769275830728477483736255452416077328687732985900676916246225204699291368817412992436930930134262296992288833506411075265219987575432162837175223972767045938034888155577533834163182870712172732926604373211822178486904206349228459124387692028323595728532888587291154319440875468901937262140907310039539254232812247185329612758939897587812265418387864088079901528767451951298818024568584027628691671281851398089670757147949755294571000624424826145021852981946044418083213157130761877771894800985893580376034699716581197895812332346831475780532972548116101569205767295730776452932451625764522238544351483226132691585549439278563234326872987998226609809543705767229302357245836329353207892277092238412079493073153366166753011615137800861653571706595978091391047367197060117829022868411042684672669716537046413280866870457763313610965311976821205059547658128743509246567438989834833231935790907325787136800052670268538664395851800274123800763428991701091538123596556200235964855969443364497149714658682983671571791326499489889234332503707422079251930288879826267741052047074664769606825120756367271533745203133082023735216733218032495776612633733014525332843057743952403550210081739964108144830817139364207939139299498811311184703901170791439821570715532811370318915270794397298446933316822624689233642531758828571149048086112200112181846316219773376439481157397710921363758305615174258348325103284386979975090248900780508354040016000539756046523234550018884711112865924107291845093239164322252170739373240260311499097953906965696138114331432122652550443769634797269506126258603518345967342769237335922822738712632573496406951045919214094998824740803639699204977715809720164740576449542618248639807335374355891508223864580657836308572197100148203200966482388632697229198726219100266695720070490948447257049181216365821179920285895304516523802831877894332724152179800481846595212294400750181130453926668360859935547766408179619408826163548237922863230830874008601094131922847475841380466708515357281033306415325520992613000571110467151473331658457496467448566044533874285771434333440538920201065561865953360655569931002828063220031758353088918584216111846021797848673132959193106503250291245975402202267829004368590042381701386574402139409417838297895703480234379078673567781956921383567621573234505196296840063431718301005758387301365421448290337163171756511971859350441746743328162721129726654385995101205944622807003245680728006040466430853923191812905479671215024509661184797287689076669432085261174430172202353156784895883208616400830939154442338926689053749170664301316825588602540442483333350176875250197396894162761624362775324862081994467206779931348512197777375013815384960517995477668111021783376039918949725557094279800488562742479541790299116720873487134693367800651509838236713883826014023052845042253909226544722482849172289119055556099802515238638461270408470364393221740084321412822368806757008512439866709514771991159952159065393684315985484542398746257455061477689055872786077573300258002914861547980827943008301753384367335994920991398719310212360585534359561355178521272363036871166381441467447323614089955021984811529680282020365993140337760158382612626255633574049708155882522425575733609723054910492542848739117110713661714024046204544682531683873939021950972609481420495572533861638571660301674201555226515510793397609489266643336032821686111103586028736166005923119315883186813763030325362368479312948058748619202542141014590925094766065119394049924387622219046356574979475993509626213205166745871568112406433834092250463351933152950750421750044679137535343188621243927778477064333122323416877294605587461297622419668277817755037416862759282633515271008293703507745525957941535667041277886011897758307386515580754982642484558998450072240305508073926004896578364394753491608584072104811261249768067481055728135300337369072418356269365290874441287430443646610127200130023052162293538414017300104061060133290454292127275806986973895775849305878164558432254138085962699344646474286543426157031400010374008595190076956011718122987033988229141261014297519820933483779863481666138918503025281748532987841212168162418426875925973678585632995694463911530082418787588309186903144860732657847680916117745495299669902880557626626678263631902049697639235750600636021029887500016374390874935964020560026451044735105473268684195703218260615353988185187454457943852221685471251116018095072727084401886835870650712160892317691663339960439018482876579063016539961625378442447961825784348164428338221481310940790279386200380641023863524748737025735753358433921820097914845721094458180232166418014017877849092963195989990553952757490755538187626015566770363382221445319261732506023899890431037584413196079495378751364129510941374191490965600291892211088230581633502220861989181551740834642904211348611953914528535818304501993311622052927291223551878193094770563421256175428172810494448489390573641333468295150871677270531333037825255385409458992701714750306424460517903230117061169491643898624566955016184084904754421541068606341280068287360693462476459920684625942329095509426854026750297237740994849070430929872895069148817843921161200718233611452660469231701653986280583565621480972350019093095316750472992335537003303518311830955168106426013633644827868205229720001592329498772956078709322486167738525679721070477760901913836358281633962568265039746855550610740152814218633505297330849067230465202984641145025019741020488663288257460196442250794883219462218679183081712999313976588952629903111716389060541408070391513117197911661728169836355412652670206937882278117618111684128586072016025359106274604001649812379533096685853615628176205729816846780431387656739786087642278096051492768807886960450256085265824900886068723258943465085732522273577606193554617563896017753989338720193352250805085860870236916103531260401128998863956075573202335499958842009305496589941796671308167596923522887775202016967673371392437619993763193330915491321668061590559712294338486104856331203897643591546706585116524626340582847883920373025789872003224181432228954594506459246061407049588423289237213259004434925620120715195843690021431171409997327095015353351169706708747767077849116490927972786100500277399074960362359334223255392288096352468918056219389563569966784923398016177951394657674060536982281677346933243745766470672895531130644028634720547063526704894570343187200176406969990704812909684112969822153982766882452818740000231563276590043595512282125749923146020994944146195141693074015442466107493642341356891496037929318737633602178000722027617641523689255262502229507839961765407455047554648813488136923296077667567644926952289256095647923506956921583358900544082499550818248828996701603529672678977351280701825455700422275306061783541680035327328804697055257379897722645781107329775951755199657837717915621812110530110766803760100786097427696471524802655405189247043553738960245580545735515061292522364761771927853999953835132000262256314181879143772321634819840051264706147236188284791148400490983562305983169408715471418300108478992258713220579739554127017699004988205961591567840625896869200248265414738545309011228980834888860359855823158436428507799464629025873664361796577853113241220784105282458463403548395909846214614166119502976841272607885637772115165586803085470728844730955393685684950534489851712316667313704448191429860668739535323793800802829753048899508319134060518593704701544695101737819491138660315474568918481251407733733700377720999176751243759391620377238789552626764032933417133051588623327094593897381929121190435076033515946973149278030394747617181321016387246242467875494327175287651521148438663681353548298176942726995478097282150138068181097044877664163431279879290707615482329055267423678727977088665467319643549604600529144470335813430926454922064526495520850148417083178319804658491988146386667320189174183851769177403695103097345136631005378367489598420337922890132030442898969537487026526178216273223854199221059637737291166072218787206437230415703037683077518729143126907274811284904924097060362296262737074995192193361614926284092745836887522187677213400912385207601553712884635417971518286001223220064935458340465489034344206699716894239869772571849243934560774554581567553335283892470432035896032792366584202864669282872160640829324120745148298470593167949763836146539202223687047721528898031820913762407057832451099693498885861666723322770661296500297554621247654471136002216789707612185173258155272345437194373479398871082255408802825610389412952734900394869614000908687197363275541703030311919359117337440180103538298533078032889615676255526429607447566085434634736544334283714580087911978610043643956343452812232252918842990651422091835175278313122908478884074134220440243505713811233379906435932241123210184752164737325211204439003580681848362028523956025785210907449594457000833115018739295513356653131375264336458154995446063958711690124461925600124833615955621959570599234743244993823650756424809597121149376380671806126496136650739179612585878483443690001195608700835791143076253708383360484393542283298092929328921828623635840161897987909302795791111499804315611409562179053404259442573103010836833826420106434075437613071098231380281420862908759554309805425548024404161768360296554381136783943560870710333549760254438684276148659532109055161154276489555571699474515690168607337016977325197589159624847685675089601880062607979764092894338935750172331458682479533043757544293308684874651635765999304846239866901994942374885243567266720625589863743284329731683280116427975113842321361126534955090491156668503734791272738717562682186799074134368042766310443966051334311542728914176821324021108329137928591434811810172961462407384147620522041925530817123547630991778220335712596055022626487027511820441536468556116578175127931200653668130539094725979080107181312401694573769453447928916529797184815011837204088667000268837397479401236724787270785281199540657784365657329644408611065085620049045236325660014351353716011911509816718306229742061447571558753757072361707876104419668932743778806435507116529499790041946487235586226721448437120608326618062242273789970453162262455892134153868069277624641240685360952380199366681213618364245245798826489829190722365753030120541619316200970166049826280311265462737726037947162343913951882043243809639207545799883289529054532910924019396668281719385635619328945804028807640740411652729141111429909077174766263173773999107413563551365330044521572997731977935319795658846988687424716661089361628217358395307769175738841894885777187549631086669035675521217924290544029255021808676428949295158080600346873633985810288902539265031813522252426737385244256302869596325148951881286368041850160045412521569934728396247054310622268574661511188866472931978878702457073454582588013991766768134187967033708057335446849922221778404202058686386880332260101495583336892546096184284019110596251666521712157724215285448044309172600351261483164190269542970016879666711082411844780931643143569312374410448117231209015077468483209459187231260116939335883704175003803847861629842720131607331495685846473053480930803753693052238788827661618996814700580044162699140637094596568905764807512543316585573506655801860279779833686572062170710363738094346131747603371411895207055843593083384324931819480469382668639030109206743975811025325225833746989555948604981047394491908432814500392867468120881245951131675713385667363952612037300208773974897658830475158115992603523475597847288242416383961116518881999736960092656435730783109088145690418055362987906424936379511991665016136922809005399850475794167357964670100689240258900451680472557279379494259641170442585723756495477768659064847688089023803798918916577006991166272136158957593703386542323729784937084765134908064130063040275767154793988260786567716309157199928089527410281305358252764314711242518284746433442931798200655004915138401085208838505620110383154012978191727077980351703025912536612122294119092134516747710650224070946219361799234820576343312417116779690476511544944892792772053593294290512153944486091115439551962423510895699612966170045470450812683283132901246646651601991665385282467412445124592218514884850053721833263132310193972919807167812604743093768045067558622965333752230990558972355608539569277262787113525627820675590911074355450462785103823923498814557492197381777106922585308962469923563067657541070771636672997452131127326482857871139075418099608029223581748795379222620037605214223748552616205680587534016473104432654352252403846898446330016723664291712340699163052988783233414776271497477083816984219225870647504269340803755812181244474852890466929195798210149484070878928533430002258710230241209014827383871794928202204511123368617370682475765925276887693060447760502259553306881967738627099034547814867451452565176740287746786276191312044961304485665048648411660972289481273763765597998312351685168025284257615302493345432459919776346788266077649579052736072941159982742503895308303320103536628839952964128027970945002175894390419153340979803757115725116897725315131125913350944923938433972818350941102458583713692275350497153595089022157415726384328505536577422384069258914234297244486295501639970506709728266697213293507780590809952104771586720342110988676877595505408457234621938243731199092838733031093804632501991222975406778371808088111666036452960805461713635336173980940463852742170730676351775405862496905972112834364366477454608891219724764517514116884965648381090299787522967873351448555247331419349304016524507695568036839375038753888286870046360391452301837476655053348958371923812913720542540944829708719943228083004454006924162962249675574608569844460942625670324358801454848701924735289177206880823584507034118616603471977885239757989843881268175281224716198545746559319029240489170071192996475399832506075109581492724794752783617241785795391906952689685741510893652594414528907882395439597136070045003538606336215802883248699283632070993341081642781749031354691707561414378405473690989408746599200181136295528532797809984501315530401025215054672890050208156110677129157647611991390765141814434555001121589673836442874770764071940218418091255632455530982091080161331647348025175169200454683542182467851642753734910542332086359745961101395178662923926252190381186164865541950991405457489975677214991667127857673564948024542358333840704029980991617202224781261956682268821195339636549036104648033402633319593111580622043023129388040860535100728391182288471904269376768643382943732989996039608713921205551407611554570211091875988949836006324285356659196934580334942179696513955258676931885573575424404306894716484951634341262429888576712530779585725118768925036783462526939111930877274849008899898631814862371659982079148863735211209311986943169079778924214842696535250990886539827011765761459519732079835386216267419905527910271863451658744460193463694399293000756108121074024609427293826420362352803519337285078293429885527393418029858451535477073647825454820550412042025765203477789791514952105972409504513348823919807302351261167373748970749207534368069590733715735613739639300969364250690086231009950901091543633083624931598155715547605809928675508930838137041956617013610333673913619629232689442429086994351340203946751995842990304711154051554029094610203637347099717746184725841331717178350731779069550466586046948511409494675552892174369406176212713962709360546313090832081131749843939262488002472018361805992396547794072315201370651160162431152070479760463290347085788217960093434405618579744975638035495363577068865769514334242939705521765512502786265902338888442229156811813756112533358290255355819216329813975615905223761097588549817640771005050532864516190519924942942903631928040059069961125811833699741099866781678373842941040367778563902644178391590346529936691803946529162169329804404180877989618174367204349218504593912845183594561503753618417798216999660604903614704061319933160058317451758388035394891081184017332865349103319624760514596789833964657434473238653046349148530020458311564840228655702280602124189252953930306160571369378800682518738809166013769956125042293229900742193621196868869359457006943631213204334603791558995986261939643976435381466068135186909631621757516162658465396977389890909297318552289710752350031040281020641940396197230059143457347486613054523353654629879902684788230197917639215050131761809116294252000828112035751670720297486320969381811629859493094994128061126449515382699334168383733527374746606803332949466504500635136407357688255379040028418638205608950608270601244089032591567040438263666796685921735792470333173618090736661140685705589418730987682454461680924537440980070810924697702332932099625130503986506674529495998442557031507670917785556035373729856697292550323049977104047080160337546427757304064462441530368936519609326186977527028206227265166106628857335007370022807629834850159098806656267971501817847660251756634374731422730542676118557552481548297941605590190100670229203916780193657040612557692411031317974323430315430268098846162829041792846160720495572483429563868075808598104702348774667586856589328360707542974098595283060845752665570253104155662045266443305417625044459097499733811351934463937064664094763732474979439351679675660329750834500476024787298927790875495834953385623322811873031144117853044559660421625765198078821206429051126606111563648262179378994662411051146806562729695567393237038104817736301194271453565798320482330577849696459037631694462250092181429399869506881612966801931181778399478870771319388529352110282885875551117651118265256334329587837380736831885187281319012294893427808664561296781617628406155178439762147030252456490175165305207782794880409192237654074423466166117203750422742669893229380269492752665887866010254125716982591282369845952657151308467373123042117731504874985054807487344167164793033488347178801962689977524121142820698578946566513583535032692945370274498358937079343392441310058788741840162611462629822017144627113338954814815103747185861046409496048023096047850231916154378654850443779810193831854625155704481494214639842329807842564029305674988290046277489777301722679645223574749404010436264432829466323284770255886354955218448870793228583002982346517463414642155527345541082600386815083299533086170859878841438086415032009769432097592114052560423862713776106919294862687756851040064566543047192482839117896238440233570391219024531431051343265362406374589823963210087376807617039670174540061489188844639807540210767693703962982368199912908577349114062378494025020946348089585008581866208501162920784605343413791755169773692175891955596691874360323862205418272170953973188687135408116701024400383421994292119438970098290753250814948713109039166740544061417645116141863912607283476748496915020871736072007284022074771064511247513899763051641585461065242953129189455255231965621525112024912914901369756544701108073848878211957909753394087242364336022628541967404230784638959017704732542374909235815844892848854815744843722558918043810217073503653204945123919623029868454506411885085600164376587183777032453935095231443632910308687106828077377539741896021962990985234347065932099660227102486422389049750656564127338105845730493165039103320589193684000951690959537872083085955789734214469499559616976623950255711947874793268593854478581991356744515246048210602981896491299806734702344375815260396154906373265703302218935476151968954847849640432613363540504156422345020979199624454758338151145933977513919053734362219772194822106341808008574233174473572694106699473021287022918384995798617064950278957404893075666139734584023585004170801093137607078448895795683196083779682722405269465664029939829891078326845732674290284998490920494661972645597646671706879152190747973394465434032616562567529869712110517048336429499006128387809210539991008229131355262916844898885921509732326800940102463858428732164793615234403352466710050805664716807563057723394983399675244514538657431763263428339795125372198665707250709664390115342127512876145022464487345947673502902278034481810321124507718122395079211679573104722194450862461977766674942275031521437543174824303520921491348108496765983316238712232667860399842510232637996410764244600406704439541698754582348358973961002906983219383861435633297345499164539961761887548496156665157048942871815994161491295861207337969449075547426346167565706060500141339417450162159184438344051436778411945783688758757281501904914481601319528339865833245926400279632342375916785395409252304531561943533780601066127922424079802567652004744485737631043019395429938556355774092162951420254044359521304688912939877473253415787266123020998260029982880073510734781552064204305462094526677215338098000934026174194035614036438090365958037628414983219841998778339365588547435897607944277959087454141982244765117363311902263849089481371254532726880804713324265124438944482238567527065461755638408695809912779376888936851774741029233509570713507694315253512450520661589830581151338356281781541480095099902878191781347938506674700756998685611939197549591505626145720033991867667970706600025277552860658977506074494511368059713928512261965809412263311662882469190317382751964732181841691998736151265610498631566070690739336721159756194743154736986120201547464784058424835108524805492213400490066708010253887307867913682508928598809200150219344337312081747975021194039277643907131157256774600605859541417655343023060933688970692511769355902970486069207683546074375630142016935664971060692333348943994857357018393383278237327721880268158273168633788658146592390274190767355386720063659420155225497775821647686419514813244370336297398489984735592559134241819554371216674018095446345870645268403607916790010657525809683378570701343562183272189667851954252886691235358973301173263762137539569886031441363688941969472262926281338610376427536216253008000496000235431360717923327270696255125951055884512550950751648777220737913136644260741371083605611515043836747066376156268860438235951163089893543291592396277367389659346793184681647624386720590872167317206143431936871311955489230890302696535368886743161793245874640674598126144211050451731740763196971996731444618298197478017145752393345250349961332086836094979777412161854792231989099707255544911285589921153017681677937739065550569174504131240612746993958007501924884452421817070637400691865428552797965746169258463074096491038747409979076038877025555453370753636843047355267492011689189061227401186829749334535199397778927359678790971952303151897559307249576783040695713494906840008142226775388289737528387235520569742095932456143879062000933190076846214811634930791072993732195644637640624121667202812355447424466046026664786544084648264957972846198950184454809862205168935601373023087457715123706232093424840471845885225532523598112441083552816102696127992252428407214888300463887255301013756833753898830380629714503363211550368523311835467231994893296900121991591211267225869308438746163198332350395108051145258217648330659058289556489221458334093264236626292671140917066715511361860960713169988084855217925795315549362744355201847429398131826116907052701971691702130528717529832665438786089418144229911320264990848787554226144458571231712922799779024389913647933036357612158091393188949748443889171207880385053415932483784393363666934520738182680158961087978397947599832054671041768624824653814958036088671008649110576469732469924346000062714481322457159287619596317320323586326970795161048084298502684594443269805264078171338678472845370332349132553480555999998948710434119626245427187337978992764095074589658963412532338112698819601667354322102434972188131339012802314848756862316500026418529053454058418830599352733550271423223724069650901800315586856683624613444094810580931410237669878757356884314586508645207021991530381711333183753630260642059669524366170714013202278895674886861827735011029756580630861067068074519265540679619530617422854335585351003253079426614126411637732971374853288308536909191107638224127489455363549333836326898398714152645219818709915913421195025213488060555890773724846480492521090212422757339030939113447435398529398062143702353032277770605218649993067505213245819115582122286604747683404248563741245526762468640685087109296056926674846764251274704231570039478879139560769946615594438725755821459832376607440181488882625708870622306458973176123346479604593083996766510704268943001281800235559059088653528912156760007974927741987054969504024661993066837169186325292112519700534948036433928042582007241670047848015591604365311211051306115170294646969372133275384178149464034151426262701226003028456754888033071793806173838071314257380285989808789629692112513223449748262496627538547598763222909986654601094717745606073840687747133923601781643106000576204322267452717005648449887313203610850620416705586189625302527467823505809904813956918428701852184335205774102021748273178579909935613998411005079070914562831841651618811091068957140302130595020698615392779127309159409509694520692451316938076886440072296194401507968291726644489435971961839224867114274262935532210248013469960759372201269009242762504899111745134449062384862314471088335819343927119936611197057923019570369413579736626133408054026476530701014228191652078983542404749298281010066337635160580567354949554338993164338997054703300191449311977522690364688034591451094766645079167949928995509833102969724877394571378246323144320048114876179581894872828600169510782908193926105964804908560889289669075663016015373000345843722006325311570570354594518094893985837913452440296294677830191517726499622318038573132339738402866152061021140038028437389104066298002982935593172402271209929175560717953695891004444796499329980233765237149802988652053558702038117976381996747667986035393126636089580554713937620336123002008554728286930722307688846865176801854289506223390277692373041541233465751678558770558486809495786466602626957055546903065719762893156053895563619125470344911584876291114040940606653460071975277287065815057780902501929267513786090497562077944356539082830724504143577852893956210102942161470832655914009565490147123737187083623522482989834343627759100149918323118160075450721816659967695873582822458820953742380335756519826728590623565624944125327928478743179619360816559452151257701959934584741772901363087334348912353962617956408294392065780758214061551455264277379187130505921233545023630572792687576240540031495371280473041497566586911415982022447132377014518663610351324799739659379056238963147706699213773304088235733813175287694017893455301260274833182198959348942385422298689412695742506182498862012155887869463904863084325474209803141259059943787604366619522209486208551259691873467089235749327347715600744321258723250142018956502942642805462999457072496487022532388658665141238570255704569319862997967335073296690968556611619828484826058684146162004261903630175421696334693553039798343040086437832207716880967879363578586561771981850203873451163687650111427484722297763828957238857347698542180410343390088078558501082041210417483692359488123526341799012159488215661599086657251300935319883388823056874692875310955990130480892698775716222233821124175862284904161439342785181255675024210529779760622627709884452177659937557160793802939378140572465331882087297845600100853184064153742153271134385565444069860189099259639722796356947023067634658607849407458241739669297095265912697247479004119359806573146605382632586268582260859812105325405138501212461790596471788223773922754172035146205141688743785184669916477016097062929171843891547759712937216423473928606935167364069843436047190247903129221553450282498536235697533735682474973945411857487434865974190353022888339900842879817428232903398303993752092677184592773489273501807034708638160567352318269097980812103200073316022446050586161118471564502168539460610755848407795193588893978447474852277387638196132893630972068365359733525899382390493710153408813280656577917863585559784414959417226237711750758731704699234990931296486797082819725744768749202114443573156919486289974820034470368925027965637203101572928518988153326273542171414251680500886060606443901877406044833566037061907340267835548613753412043661817431166987736739135934301639397031494003591842834420218364651023327970171405416017317318777072729858650329255978028382755531782574119019512497203364722254962633736619196867885358269895782940466728463751408328907245241406692904655035678142097892532182259543650564889244027919414545396037261445168350668757800129813399546061951974430486061164144471284401176322614444755387083792372102832700626776325643654586691435039197850732647100444830311759227431219206880685516856525650897147123266525432970581690003388833714020731921324435632315455546237117603427618890859349083129028349036357707407863948216288312896191167156232356230305878402968651900140467269644546820772132615421630759937498495719932455127763764649806784052564640300077610304015897441932405878638377200877395860541352101845908991665025948080213446309680049098353451195007655709982494407847814524577130733596471207123670911024839834500369629648059974885357256600902317842820188819650693275644170561278335653339697914251314732664081022343816832671743403369417854102570906013208119327841952746209208772681587370902434107329118164300145873211474858221010406633936919083995643238390933110144192255004511204232284816617184118578389352269626534516174522795410871395481557415789415426706441103889131234833568711589215799707755851855978494411216665612633956411002663393024022971787904629445693781286017928924790751428997434911365262081709855317609032573595704548758763575302380607105309488457929653602156997512063949519581677059711700953422138135592016637459941430858509601799672276842058139504132256839236196755785042074715350055503666173463236206649099162276116543936691673345427475150991770280523376972693964445931323810111748280592628217392356314010280760627899698982382019041115839669239271762286228579212277335523826025062423155538412111713868460133322549565006297737633560794913645947062512212866948259269286062802484188689845582703831947799183576280706871269408035332466124624860876751459476990167779739015050963993591813533694919107684883624915041083391646545207167731859329844111247756560012463067694690036346971216321138020945010318701231579083050513945868048337958060909114417446453958903391695041347307746631558972061618391131991180835477012342561284174023110725492901616163806072369840884459725401001062774397026316713084482076840309522246061693551274060733873708325095515060733207559362756422722291243352706456256508031571448007888932899026744240154473173156023477873279246273899402257010714433382331484009743615473275489012676845959865545542972421667499376790614348021177435472783674663744984879633134091611968174416024160916438800596063828399000229469624360077737337749749681208258044090296015170507769731076085767753339551009996665698982699838326635725499595828004074728204683563743337882006171827632110193590502325386278891037465861163125511778307178857267141228619545593112552786290360653890918644245909703200911522890420369288286021057149445168957384165231131104547890128238940889621809721520336922924357282740187610706519557396280408580302586646795616629921896816460768740034957121698505099445081805458392098524700183237042875724065942887617323169137014164038880303834962528333004971508814040202331035733000835052867791252766047723713768614670886202661441662855669645679798945336485704362377086028146691518785126987167595277687074347608121166598699274168289294199413623822453938750928817014663378061011100935580034542953437184496402762171168328224830721696293437522943633141144033273771739530193648056613088441427785953801048292607710440073494592828249503584146295151450941743711182475562800716331181250931840514547651515302102681565975648893659561954210481445460279357068797153481073749134887403540780641545603436409079739714437167914599511274182252950061665329248591089675595351456845229798812688412555156014746840614205084055449145745293534415366146014529097318817384614510631892065213381739991154264430398097577931820117132057594615863393301591086912004389414081621598522163123167957495812224974581752712428431591441923810052948701560498766839804492279663519114394856012497021608013438542660721519131564487544226604049539466790860081428579847686798100108455520934689452107460731254227184284097636816708817406629808639606020529653133255450812312073028753244111441901214466296363417565927303271396708077960660241929650927555142652442350051090944643509530268789747517648457304324737445782078286243987518002630588426201122214055923315992651868134215593195078305674414034058151824726876368959252181778643355627353740324712173567107842749780410743102287449288667464220647529278746306856410948982523859081155311907935327010163069152200596520651719958582889461782567016139712683966965703105633991590485999431658739755867272354487586982685280050475845354550092993497935937916233891614698616103978971062708673686282739828598854504184830265963795611201831458102265284751772972988742357374069300663328221519423126697851706750852680544116630240862721073169524695925888634180750992174969688731887109579961892254285233744283481746524201569028576125537069302739782758820157422749624768043153782059014809369130705640640092726781661516425594510976963610693101346654489952655836281105217234080247198215513596016798294144111546140611602240852223834324537096816424700451400124917055951781498882305001816031814760258886598342576419316121371013525200375009930949745801175387486766650122864081041543814507019071440017575993335889091055039688836913830618196833668266687894738028027528242010306195172985302113613856928739829851002488543300672477414587355896165158840223509522933188404967901224247923314575309240344251966896138250241907118010750570885213793276236744568828764085438359413758226561246407076404035619328600732680415129844744686658251512596393241711088284014318992081123832584766812066322872691741568271675118682952526438493878514379052213228874447656352678258650140212411928343224209078272427815704798031673140879392817894572295839800613538813319645276988428862222910129643969837228860878191399454164670661199724902631491610280108721330979174521893387192676609745952447058209127469914216273355582840412410513075680900931928701314471122139014339802801395025445408957227635633261667326617017043385672299694928779287856530612317046076502664916229806494767038995731570231723960291001811365730067410494944665717418811673451054122683285457221196535647258178587543634360260143669007328389068726837145442395067528968546022909164286070958307385323961626091972094623998602299735304142212259664916532147835817705555729092687251283913422107726388955324696375006587996255730324409464492603743407855172194155241684435385279410839818139691767107308671380612040741867196779465685661675805957770552773717659308767249800305694933931602245507570811444623813047712077425461660809445441743623283531364671755994683047126727212343644062419101199489992660758541740814104221603353842723800835118802946249553564409981110116041579339746402935684936532318521943617949240223554701306530445193232380609785175754768631781978472291294846176521252794777604458196510090183313425993752732222370606622964390174668800461477725115785078669929210785230958969220208356215449103772347659321590719648320653795034010326210617743510236729560483313612079881506969118834893165219184093717700370081145971556040525467986242251232722448434865887895617173417942953279343244044256706477782111414449405000478291295064958340917269982403647168528284527152069791185908223271904438597572921111851065168793661566871207273562759498144198957760563402105325820946439481187562233591193460915318351219544363427819010913762534510294118763730940384409605487969833045077812750480132069282629515280537390526430447089706398675852079944482061482383334733203786082044172600461407838611977906725865344616732683713673774623040839003300878874634770114513181828787112332834322950591366012438752326719862043175351116111798365061301186488691445356145566808803596101099379782072348375998733566988484955990126106492250010138253464117268900223826627053376198496599283744351359343114153296723695270849430658794944887077882289015971795572702383758323370567958133110750482371133965220547087367933543126600479160058416851485206423910618737372912161476056298826800940447267600801697512946280448586372777948681242389497789148018489834619801168864084169454323111936526226175035692296424284089673288168212701844858542825552633699018778710149238539595587398958459596037257825629326973709872251288819177489530076846926395285952826659593074348834953356076979850083640965602261882247134567241869466748478127247458444763044315606043812557047320970787916509282036595474489237420908517577272494735502723180670668164050077665839910820484400992606142506205022975890363141666935870872791472927960945287234784790039087853554153627700018926161529700335608622161860809638162017016963164012595546385923192167244459148779079583655628352377930653671833048052059845156160700801066107766175566238119363671364027168643332768742403145993792280281055985705668082334860762159089998008916574298250333334171405830677693249909407857338364872983900436519799267215828564248253354732259917623188824104979680167636919198098162201049584410084069779529493411215923581288687056499534996619141239098427489917888925843923968815960303372626550372502127320380324022340274148648167910067613488761384577945816295718894700136048408008728754292284242497751417819672093136157695928748757845804719997627630736522250095350003421376582168228560823159208562974045788838883213893977678978375684663160541702510332136466055538980708982569606888207893345336837265589338267504436127658533210728283241465114291903999861972954334982323879862333433001969603669134131021121644511221293926341514015480096584347189858556362077875795960503427768021219432763833663925045486361188198204307408195675525438462703174669682240109491560494837196422157863128720711516903717864007134245550472778133102464150435978930381299767086362452041099689301054897728796397360056368509188875340646115872914224732344049055969328045087546123622223111398062756138434313571509644321343929865433311493631003970766306781024715973142720677967540291702026479290681893274216994304317457581649136301850879105893805887035490354110284964228485267250697312241467036670358992543231849633592178963541675090314473586866908498601813916079845222958625118237033857398863392191181592270299623403866133066742829011298043767749342105179312318429874251572772147359669058107633036396562245260426926432277665261120077532531770355611742408830591426259719961262893220068613804356450827664779549340489059696770847873683628659968722362139001650845193041042560673135832915537330309607637317269387733271934494490319677010216877267908929321975602783634990133614246580874240965682052778645867028956064417951647639731378506198698183167393410024020673797677677851363585963002576682567210346480868199902613737622158546182585231446188244769793658095694479479715448924311248256730526789553936673223138139397137268687927610491209053967353743788927435381271795423787777816806252045849481868079715390029755838579276716737492829178516266627653883244451682809425186914314144766955026773809293237921870746626798718725582908822901181597946121841796113944615492214132631033120887257778143476401576153614156445635797571306300906689055854560168708980249700815617180183596506316055309842492963337068944853488037068716505544250518980197358364442902875908243579349367785684401733016047112577271015034958132264485820056245656142557581972126161422926247730457397280348638416603285772440240606614687536567505708841542312461576104429298587755060084731835238999891557798303831367438682960248205572337165673667258834925630566427434745007884793255564857423652956279136988903268825388334263857903438367691440049654865061995686798518577208542718048885887740082351014989375143476699742279805751606371466439121583701769111077755435149987237051669169809054482271972211363496778166643906539151137373568643802816563641461261976736227619184776898053498539785662107103113737370181187529817911192248037667970368856248099921434096094211099054582477371203382718792049751274924054563372131812805870848566033039950696348852542729993509138442692680814356292100764827288626186737837245811981618712954937144553355535042222667691219938944199604761688105775995289704128580724048722861192318053153639559047969633850577588073621420048763178800925204056272811099733664409673629679925252637099801483918601997900970371576777161766220822944202722448010862815365521088983572779424858913972931074216843775070372311059867700518497428647523937796228471789295936506495494940961789373205273506562562580882452881739807968217713742566710593010895184478087649642427913094734513134408564462130475084334370348669457287435261510430062320804685235917516239150877284369634524042384350314784829552507112437655655177949068168549775624730550931867289120278569072291151003925878924762541342128265059455550728474663133343030974133274819136016500454274975318286077557473117256413471447734088469606304567197273802866602071916248769947115177522485563444001102704971538567678033290517072822539158551197668718724958239878915510210102828847646149530727211048018068497026328293920305634626561185152538951668755644771108253885480952017377085932367063019473436295153385094486985075749254066164189756930675688335155209908873539232510225936285759033435395111376561570174420728064796563081797269326302150016536331978432998130685883158681086385488816858202972760923436849723570601819974325824456240803001913801254094992063256186712546642511190791066620059021937241419666994293778299748425467591220998680283909326861909177748894598219077270410696193842415358235244271941213070157526628338566340218732729360979583476643375939092082623012196370288918107948712892182810207204426477818769974200383401595814927559045088517886282214099209893411964275893783980119105376717758200893757182693944923977293477385175171629390142927864559483771723957309998630050193265558154923491147694720340983879063558516479409323889596039512515678582067615734540271887600385177498495800821387174709522684292477529845264200987499336452546810738136260306263936158020882430148453930136234194220684370132200160580391556384285219766492528051270514399467932729359422798577715394425083195675578455737267492572019221933383550324405201207708166791787085392497299552049283538251198221717825504680338308563679168020215759240018842502495404024718867365385537514505329001442044417161351130157158629564713680065183911564114619642322427623328365269605731001012693600236449732270671073128839216969607558125541808340202003506821320203779649258868914098776492739221432467501944115373506331681714696272939197862825320988518489366441783153298164455661922747299132090616174754224019241947483601375460353584902732312850793271017147365185050949490115508152577536762779673462928967006693026202949319446762600175285789491665888702756118960844012901070637740843983325820129851135834895830755844314372166564851468182005542827896074385548913239663853874350391961048934467384087267091071837135359493532120899816763210625683904042707874255146196920910309322362530622585095003376529241339442633644974534002048796698122786307923373724175281820464889628640731347750249089027389280111917672678468546444856689768626964331957079404833312384296213088735589241291647114834902553205487284473919568253361781359471142747646835939319710291396222021166775212071370104392996484944053573989134574643840607204229026418122542058435728101858674326849707302570866708726940048250870081485459552702820077654140950561020617119310240239948599026481839333655175159020178608156440873277175857939611193435489393185969567134586016947789636050487674218636623471192883821453604195769751180351104024337038526376585031144112467662810602195186080564592037021561420653827159964037812919811953424397623363536894843763737498617556461850711237597448597855575183764780192092471014879499219829472759837706591980752432127557050435917522273829068046153421800456043627297617845210774040387472896053281933478164445614439248466763883536752103123846527369408986135099489931988423988163916009462778740925096614522534185876237102829603995060979890329362496868751564273684110738760020913942214742718602075028316929633329639479128458975269120859220923760017646949301705422990403511210817483537239642060744196997342573191097033421424659707377254656487651831585529216966586974738974566724330248935367501337718812412825743969705688422639487962889093753853227762160452482568070313406410956432304052112293325690595193365090436975686802348140075864735484676672673687343225871992688864336095682357876173485547180331607494577531648428401009963568822741503179463003448143758703669392193197109337413244927082388791013562809697260256854997146418025775550737921662099709290526799322201180975356375508409770489418452887886666158890112966133724255788818210715296798095635850604786921310662345529309199752030349385989205585401708210236876768621604671568465782651040918083103273715941404841293372558468837570480160962809748708279499748508198554958237024229541731029627569313494862694058631879561669732638843444118242076013105211376239038731030477894508280645321088315660646441231418548874044746021467531086288437285351111785888797989896643834486386368581709281065442246664124190537621001664314055082006386425471098521166698562554008367394871961262479175227711904300609610062314475567447288775687406526250362325088782299236629199845968852358383161476646206752014197005423221863328746363510473541976820554543520200256827622859016860502899098313835853652719450282830416020157825540742371924778647389941394500183436012748778917038903091800148001902839894227668447194006733297427889997909785626552787841230342982512628535841345036423093657376769568355711659499483554335154991531821068361967932460670893046452211092418370954890372984703826644127234996985402970324901291221680176804705357845862162640956542715118602604712303541862837094501671779135951409455055481085689219625846831335387102451257395106564480292435311397450205816357667682090477179872807654517516521243454703918916854090287563291066649046739215087541874443345429096703271168415338155036810898327174187099093487139720322491517464230242894490963713133212087196793840967745893123284212580393788663120312114595384084662627438927914899104263759002473931003382617294680135052153499966746265152471621046763376766137499083471745203543405594637098794355353593593572985114809654016450693458261808294436322178370222028915318794697296266519780549699981409939888173949165854569178043939615127092419608509324327895491970624763047668893508311385538031090515932074608969390515419366561724213270304955042348058461197100085750673744059622331397928204236174924039516591377248169999391080314361012094839443465848692167412060590562908903757297961170538507884048949942471556431066459747243335672103444172017123248207559714617498448550175273991659680088210113283331894180751177916133358932010370037950059669815228739080160698179328980050758095085318534422338974399763653732145977240413822336817008371586346200988539275423588310247641244431709580269964314065437026328728653024374151091576012043382283160091490598443704547734366165654843530819685154018543681214274592622555592834180180242973913582776495697438689357258760014167772373345177416188503456710346560105780816752065780979255684282709020701706802510954196277390759958243062219085991822877166642123494793522938717155742325812419654414861001716504795734223155784581141262633749638697578171771790507198763239558451069460733750368840586855433963783620611409337966487656504121942837250553349491138961213372637503173442956460320458640921367452009278447334481670243303069753626838238615227766220287387659860197043644363870838406540045507623335065062197827412225060457792026468338786509272288647344303698136711301149019029768157459210315626520249908573171048247842156980543969049086215625510441444606245732978990006536447128494906046902652310291149471129419570635509366620022342679380695955875218531702243464541896212576115330990148335675234916413542693808378655160605907646876879235922740561060248472916861587192043947325910798086035653159233648433045214402803043767309386390523077590513334496790363852070702674844995673638484259974749229087467025060508378878050562126097750184626191718743018993182523168761470283784148063015093190593498152986758191249751995388625758861164655775635899064357834590849892697178303033727153606327336848450305819910186765594638195614478744039269450172263352472303764794046712306887952399365689580424621357446701629183040010188878421291808447131033239871371214435039661391551621325159383027881462419423606579634790346267804999464413523162872706193240021790761365043897698318042326147067669073356596565287395596761303675137316161618938687461284930194171269897769029791009595830525351885856695974189040578353697240221859189401358871340781386107343459709267889549235161843532888414591485967281462752425904516437421030471660079388558078138837642122001729366439892820057420580085402536975721962252229448549653665189413511060248018267476850853292772483952714003051468119996894191421049710627980089646150371775422239603576280026342265283886655089735580643726634701163792342003367358915466556885117651703617597958113818597809452042410983776456237764716880099743867872794154059759484270763517180554153007161946574166852949587500654154029035314402458280139188083370136374812127004399557879000100789525512733823775054990756878325395004186720187694158519792808512619787400564787241233507395195167971296026284835974937546084707991769959981348023742131406051407709859660521340717896589416517460609409860042117700058603139510568904839664984714797874803971639379657544834895882870603030988679925539421641330645281540432989866002565489547772469339544257774142042427959600125717613065836381029577853726819341168196646496578492889480598461003615017445646950651505491231844625257373800090831670771268867597683969573403188878250047359037155785033228934690254868641461625924911579549849419695919061011021220815465457911373580972949084642348488704358633117987793152589493471513737358407544899201472666159800494767666586978064697031079933826227150656060035840683673028662649392147556565383956447273870512306034063396755382778676083455554854147599682231579605953380618932784398894134908384491299154299504670288998254751040335364328742925391185767828071259197418598317914595887730895404557941548087279863216860319621864199314389500331240875402982944730356454132041528708224656011915063249641855870717195801894204233701024270492220704267082173722410091155089373407664447613595529527291084142820506008250542522942010938951266984230387911146859209018209564885888800223020777356146368780002261286598227105998586551345377916344835194230662262130722290750437502828493175199593202195934921002559685764008066954012549433585859351269924349906458837334310999818712643641116080812397895927972807800874632659379655502885143823718426438267449117991304147371696737258508847550090973288528665166103868133575657245402723641462544820012761095823029157654790834752219103277783521085213865668102808571456848770158571711098960064721913816255595864133580237472606326511047195423631125410037686370887062113025627435072603533959452191072633223546844364491287841109784281360551047280510431516862982010483126275058065295916719132532377324808743313646981005516537808105215534403164101746298659398114625740808377812851462860030536740100208523412344355468220969285709390694622848873954945974430279629716862056647979449347108235718553354017073165368096523993701253501433513344552152421363875674477847873612261741820466472833908380794784997982899355866053970561093026165276924399576808259074917587692760135903076380359334290267548093460608681719760188217214935547206042082630725771882448373744315110041392703677420850433818657561942006979446842303145467525513945255016327091541076532721477067926646269435356994648167320277068393492630508345545526816235201037457638632319981425318351938610365890324242064370583190644939173324402038484758525016237673985288591189514564040245393213187162200111412774986578896807369354961993534683563071551962542390721261750531052474113906027852718903178295287800486372331343303546105551127748573510165792961025285504220729423558354527854365459833553447401697460732285245777733750677499215956887351182969795439059810361699805957845731769829002947475013004232903457229300397613950094258624010066983766430021164885807028560457819490485029950746256013907647603735008582489193435933689023527474520395325417420958475042014785647491692728088988316580580556998894753843867034322800220025931326891843323268633095023479023612463666458654188971757961149573176982396507222102559066973269609258061477436791372551249218008949597505595155322898006291870630216702167894723346845658280444440205347638465917285688243636051527316876519397299089563862678183225668510886072700806681335204865768726562492476041042569146591784167199125630680170581661119861783215281570796681185815196788957873721222015154301775763153653913114343901837524538042469014428814787803127228750735639689009474882833563489319210074693485188169236856773228464945531268219038591205804214799810229520942437412239465759175532788466001354810565211998779331926635939628065046724846029158150105217369664757101365971169893520061494656548337060794490601536127487494369032168535937076290605972345258329285074280045020138295296695229616808788300901435365079014858730493869345124729911415401171806338265179434469719030552594895403062092209939413880409581805773848648418274385783154381109050990237528425776691868900558025052182282724571158973396656805646748688965792386288787622928137117987595868568943729676796616910507890011357977815498454627653683988452034974757542088815378542215901917911331759817101754732988738874202183902387360243320819306304597435253958754426790418901749607144654030455790848363602750792841823782655083248469076375522841913616180064797270502397666402712417452361568034799169021078550210287783459394717028207385177966848773029967817654197086453816224780114334219784823194972283544414669931651485497845893855356325040072779700023499302896151272479419560230425598356930119437003702751955886410446307295188817701497144852689671156009393600182782451209650149884940592437261230415686846800162809060450958029289486141722056833896165759287084895526702006659864730152664499082486874059416936973134986362442472691546117371458104288759170529702456773055760509015634124147215767679825934231252632263527696966353926226755085972710606411407308452379546044346496109849092485446934682523500869711878244735828218669720695534118330862392507286514162581307140141884925118518221919136938094261126751291717208826472672395713565368117704304318845599873596893588352535636714356940639697205554721323841543500441445067146382301845749441070224619597900269733975475494794818703189967271262787619601159592889900586460137667748215856109085562576177428535352865220057118612913806099424149340224126676191283781702253975830612653466115529036619378959784783969935703811532058729332167246401655817782902341853376382042471629755222342712209866480919854653309381172393913085490276742562591719726865160403943782908306982209221692729631274073235030907452359375919330438072311451064030344772695079880258667817618256961165886458393740332081308230512562762526009395349707634269764805654656566359839598951044995932780576767774908736695183924356843294841239822115448771627216399576949910442577914104454963270141032617544838743681755808029220473504673651550353078861808094434648254164475985678612976948740580028923287974691039430074022999570822992709019153317189875568652261370973376078277083823999846996289725491748669805009355940481197920201132305341485817498461551204137776072981398480076038855898721891507971191455764769275879025613939482250353128429861391413711983518851542970066911880230726989408870127995995833744509623852292464267210574523282422240692515509985042333967348692848342879284209253934063374405792019478003291691223349389049604310384203764524401281935725437259427702566009969415791457068117069056491897823216464592902765602865591749909938325095097594705217599627978891433356938361165454676226054148854571720459322476247155419415195247573476814316990800334533394920676495574556467783104511021657063792299883423474243805707966582843855873065153412338292399741710305285722141354520203152573192335350318179898342935987116319809540622467816289852634927631846965861729212793073288663128015671010193007356612571376231151694434496066484407429775429042757721374335906056578333767824949469825984278403700828994736152705269138261065095885511908209414609455797710192632819026277628275405461558238172843044377989528945952383910305651442611274816482007492203818894332022803798391983986967367763349295194328072430428047775393848013369980416733395942590787814163610804121124789712408747326566463566019190818882782248973583141688884964867405021140632798411580604095403903836421352945806397187944438100004981154717606761444986530772073659370431995594928497342731907233374876183747277832745106548256195195243561217176112258219975679344395941358756314041683904996838982883049385935192852328761906489217685277307530771138464527074717786227929289507871346456252232477042142193672938316540457445687412227679005389817502455576866880634452200206270641932503601651980840008397779374483457534642820353248440552903151834370460293640629886388171760545237767849097601051510075501437297796574224606951787969706066046365254324486232917269679506161118463051809412578162633218845908795956501315061473982938423840198575366845325510034294736889161228691511708318899624067465449806612108056657335812556600661446846237016545264488934599088855061860981335610838719078195236164834128471520889740383414051089100851649671872138397154178314719946793948136769496338716067663554235555494034495886332053099280424353337120368986704484781466026322229149722803230883697056995773628204694266691322764080890329444791144812374057213087818892794848168639036966546464474652718533268490069793351958525698814647251217708436258195901062127336240825019546075456942127944325079106296526600884715822756833320823578539270114194882603017862947577478416328642965532262752955983569926920723952296825727286422927726308857734003565559231856739136846733989281004438803716353938722748419095218346585628341130697051630135404288669860017064373561167331080043286356252391339359848256727081178043524961419318556948818626347277502656344793940442228241700656923417760552969019671763070785001270768302713972716595145507246247751151188847351245121113348334833622672545865733633689155765760926766027278017353866576432161661107516154458763158954840626647757065652051012463876075341285651213369627136757194339247727586783337105780810175049350463667999092541358012839099321865348162312669957739426059611693674988931465302349712836863455359312885724546838129454284480588577297976504368277243658097750023787784202984956273002047965558550813610599283757091546146575954219170471217778143845392302184736887883007300896259032251168128006276680642967851366671710774659969613386522018147259112370082072521076868345131288245515838442372152036278185032474642784124949566743060403289994562340387698757909282761209741909324247591801598896112990279323713833614114997594203866880128381254761596684430058373001100705023399235528642482365961306871156233262764077334530322746152655527044632649516225837784191636981137683427786446200322414936094859619733580143302743560166386708955864168966659775486967794794029640887161769244105956469823892085159122553547852244232435970110559302793244268047220087183637761454097220857950201661979318700075527096227395293605857964350902892944600470885074749231569601752756992562109991437960360463575305669154882518118809863415578597126983519591895632499315955620887606711181455512210547114444722098989539327626950352538936711597032731750905425895946106281864793062481716212443012668886673984621407078880908309398074278070293417616815612353442752764976384119829424641930911267655947480209612797729042778410344525990757133846763259298218189047988050430439912501486565702274314563598942020981698349587832211749145556614191031346915950276628132821794676603221032286469049528840987056962673435696500977096030412407573654650765467667320092311654717217010581905393683267039161028498972967473710787216693088658524281952665326093699042686621920549320199819511171081869418469662349150422902936385798204670036629179927856300987888429263269957190329518064017120839831290504123248789950726794631815316066766224062160781223803097278237707788507088420661399677655792156787085086328628264678792571758429491005451484250494176597513843009111987132801887766154201294511235149507356242489455459947058364615003080289176679776515845725410253585470616196759732362369457164370344696378915465932300984082415382861234383011268805486769915904051609138874257150698708597106640467374023868684790648665325488540899997704744234543058212020179176359650532383556849167426926783697810453541841214590279868104548919256440802949189641836856061592094529352320360459731361307071211975081280996822715815179904011670460670891264707813559575259846134634254620541329627432380206022232703666725565140532421206083186003935596484109227583123640473835243806591505748878172213014607653308249840908842910184604435154051264348246715393907815533228768467494648154811738746896790365262178592921219553360051141337777053705620235324401696114562368748807640699907442351836265793168969918529881914005447087542207190192492346736059272834386854360580133330942780282720044217064408410663610731533871397652960468208653878726736773906374591999509732877141298601241996770277181222446972840265109828730829353002872782119075782273808711408638866202504099519109809611395137163438062472886645469690400086492515421357985649678052721705661097643939477641617044964035330360222583141388406063295976429289547772102129732699275032942102975070447475171053930782152016129487521979336065222353246584891519121087001483465471598968589136634625728208834721772627496872455459498787560093637087113883042446145888298019459012483640486448808188794045959000694872365101326117813203555171990248062417025465219375219905690514235245940621733308618682117312650133907404589502840436836159611588044756295323479662908556648642391771743807391989441335851316008099797015455240825472659382197753572189736380548700890206980942591523133400736524658434451226950977951829359242270884021728308911073544477878885576538386315102318111466137150938631148315072551730895813066289805780469122512683004159781311688301571137205644026748621660200227074876484580117315480906732595160271164762134041967552904185908823200661168791892749926366691529832469114313998931367340287629089483200944173644949694490372666535522099516161777207896410273196405370531076891123318838882870649229310461838799354845801956078584357237032943978724400170008774541577620998089964104379918982357283945705649064049938118862065571522648495603596071891622379708324379115933852087107988499296471622600965346640576415067955402705073400295353208173379238328368224341807730807789229760714677816691602595741297818666645458711725027453661621930147327451398407700768167365458363478925238495770810467000668851499689366048440654110865785347175192701579524304585924529835292879542981470934701342389540593959815245974605977361594037679857835586810530508753968587797767178583147384982745010656971362595317848378066207663357568773858657574083225161391747596787289898949094075067651987884611286325174180850380113488349654108096409273779192537998029481984588833992269474283855383406249047625839309282646330817435049308159303995615630045099068612525483671483550501919357802618023687670940123007911113028600188188845325553465690714616423012601246006812617407447909532339711008129399036623681308349764653639843498848082745281193173480236090500876997179709692004543564230160801061620693816793015403817208847018892826978635390636933564665440006547606498674107106235911268623561552362601617661426047053075238173345933271262877375182336275433872274667519215078207270262015658508929816133309940952945220478734297019342712881387149954663392694706480246330220281544537083139463332807260015643517027865835533365561377743055660469339364812421549157391469930389555133552860528750714350602562789831022064371955993392654712282983370378816055355644045143550389378744670396868338838788308941066801688394874759439850258751428745520866072940377251006563253150776151521364542517923366892189221904299039140370965709632148726124792120640114664633588570609507807668998434083959224649304699444173587887120942231257235772623143596111320405129855632393316483530818223948875341024000239336730552253689286873624817508192592275396000148451956949902596545426101067919029562470274163931572656415195254568026315210755825116462939283574691881635121467849130812974221323313016491958475652618985175826845139379888231857339857343425799715481583235238679947445500711626731474076215379631122544563484329773952182213544448534989558403960363130319913426454775412285874976039904968062758938489584996256274202810567643192882362573138135125769519831273976942509669204944141608596200000594808696063367399761727720743984019842026030520484858696633210714535861691803831928522662955879324200672229005844885633179521100204901732598058606297191360453188714192334385875843744903993874003909548889629713946242445401393776493719704631049179707162100595450328822958990567564168324111553415073946004989137065855450855329577249358637021092782609635479537291566201263806573133719373760051616880135426087630036906088108320807532870777511378448179126866814111117909283897792403595198398710724183119455060604021986877869823958835420281251110285253862910271789217378042546844893666794982583392055068453707376527779222671850075735246903295213980704386172718118857663281387867188359096644126803763354856663202548666917476504586854156045954627681771657015852100307534327979305705410100351829345056711905576742962353357915902922032624636272588909494814327355068320265197496605132842983982064579803119410949702164931776688614728663921536877099825554407342992076515342846925053280432640868227652004106146157639360181829214505691088919228728303161021946752973580931015705882203589309241456846638274330026658669664682837017056218907040933538654714962392930002648580641817405076084128240129029887975053650906459560470477450523376384294968558029286398102376835649539481539234810834665211648958154467720600114974596387052072770136988850475941036640682459637074227126297604949850771088820742754024454320253282373751784391264923231078450267997485250185749379505323075294305638947021029939008629010759969315643387093102592565363665362018982626303055328765108917649773235440417373912317821970044541309281463414706731875469596676568819647345270650088657578668940423443368758997335764350988974217741658242491421066842670566086398941338175535207425935114968007619552603572961549026382928136800730507860960166026454579603739411816237023784338128005501505148162459255930748663416558897933927595386933570188335214203576192172766347562968228280869089470733698959984787329678221550632970873210940936215584592999091398036383809535429172298685499996565166544566102215797244490132153429949631165289963799566553698726484975228224538115769982485053602350896761659758090274443326085040783734265862536682608181181947916965531377696163602509304546437195105960273720328121678387201040757536987757553892357920842815240841485193522833758913822921413876562684410244628492832473469637792306493625969152539462420728788042719090250310489480020436427460655719399828043659507621372503803952210497284048461105640724087325244356735117449607940737600738327382686936714091324846928173886230902928539896159892912478347826911225109358394112191392316088841950968307285134574760068555797925438409190148952480973138734494635021499913850842183251496111713912972734493788575085419832665624528844295359869935856626824405822434798960193589349340016491414489454078154649541773117162090137410337018941957117564571640692659943274266962418043408405876756258088801332549505478488508425895887380863072438295720126504340951070291670315152453310266658377479668365623752265478796194728713145517879884127551314117847128424211177337483674105644621468712680163816980451872510798306798806562951372236761932495160433200018243641542776318082875346684540345341248511006091559748368308564883222380442796078418515604560427656557532769576037947873977713315174942694299873971633013517461875619403480604257513411035763998962280549453030269853235125782897963119496842722481811646747907413308443360912157008391275109119871303282257108399882842215368754364397139004559415513321021073443592166420348135046882642134543954263920465735564067341536837795411786533874196997360123217847280583205876389731805356938595929208526112522021356412786810829404165400840070796315094294011065212265268973832274170034069093445729501070478465803613791592820466884724276256030996067123103779726669896066522185761698319982786695488345073617017826270121434031845662724418252406094461515704127871223973699371795648298028928539733463874240556587316004394337002026469363779253725459914567839963535958731652824785307616742201816260404438844578583740538172398630094844758059942252134303220143107594038950664078044692588411588083320039681641778638230486624244617198098545621833999908465509542958090396156414147164319945192806637683465084847853896862060407540045310463924660534198571199454836402572415288905680494047245438058829402183620865788890615892239907776649501642103667147371103915332584732508035247139440239752824787440673710766385919463554704266469700411399514488481870013499082415319065173495418379096414253022926889619335932488182016604728624640398300474941809432379383805664513443250494509259882151685665511920461781657582742839516612138296819221311838079168464528532813784697768805191164254152790148081985934126057894508471758509641664849458150276017067866819200379927455845506780477996599895679782578178543614032794728358082664710210890233705233240768912816761516326823521674670184930903479855110175371773741791947551959865235681047277783340840329351752282624933693820483363142571455674276862194189372173057539691937689855534372320604874757651276389197041696174699216348804180053201071837904301912829121888509611958986948443945865389758059241155351703465640009809723156936571232753692023055907225470039810209893970418111458511867121377639369924964103394158372600702828853097527301392300475464572616885169058852430859241512898634673809994158126251447614277344624944319735631454565104804608307233411391874672779012593315188387171064408619724525315065523494667373048381930232399417808292319307798707625829612210609927067603846453087004719779406377561306760560935132350304240452737841849077819614160708102867548832600277936224031888230575652855326877101386670391308350443911960007157855577113568831520899218388216514895908640108929107073472606304296149191523043815830876375095554441201209201761269868756815549827904698504884146844127266518242269280373070805299881561176664877911116161244985417936461176841718356643122729401476357929436757399585193852000394127923385517295388364798938136786741121702573265895193486596516055842316948029744711388785867930065744395590189183299644971527718039834670099780313973803164566662759469076362926221962308026239979020560566177816998823766620800637430033727238512811601848999261890972338091919621703536459442826593972124615943352460877699677239262139961859280362262856938151956154839758147140493682046043365194991994324395795075864742195981042948547615283691998668037025614220476692103756570970810855423436291617729793738982628264136104025720734923546118129803141553859731080415088745635143431397161040985513612036063494644330642090008107724783886214921671153037602110820600894114742606557379300076940311957603131969197584604690663671355704231174468614526723143789912468313823121470033501092972362590105034534569504434437404058020368820003257084262483403626176896343493452558874062514289362361906243746874286601260197125927938058665119224421461344956588304130088770716892655748816172859592075226504287925327161766053905953716032727581154655981488602072567925108132672239777893942274867308702266555931340048728213286061503317079402227591116425930213103619151423607682613699981737511345362457978553313512224900873981285558789422926261173007194828945223351922432859136540110264477865831932311086487325242743872175396218507583707147970919180466901783264286164736371619507130497979119169601124236996618072123047102610148428752380215387202080318196422263730935286706256651955099150153655288563004606158245060533001299464325148024927784641586603081334650297241386299562980974787714039579582348579120887486655148700898962466127870223372782315046872870378981937799849324475007273134537991452672237053005633674515829227311185415278881618758188253078398077743068782219411071764413998565049840431854897527140433947568105787534757012219681190497507292249925543046107105401461106775216276553975504576374016743823189438309614208697169710247348516419160773717721809292254721639348930458213847711863656799522866545154849866983840329228702481565733173017687974355401844639406511812294222039570442332249910907066716309576341091618733600081294921724378401413534002787433476961518717105231211426063600464723421402262603674879060039299243728269259452892723648663916826473728562829368857889389232053361133840311460200430809004633156640127055034915145647782953081476138882803156849703178812161296614590455771932747462843526280291805286207694071273634798410963762408598686152169239862858666510654209296835331532450268067511454937554043093244584876437804993600359846929827255171363420770474271158023806610266695517786484246049676699064720856270584719127247539888060617541528095245909039508588362288870861811991898792842120007515494287578128986593311275191969751928933187233594094654809769154963153784006895639176221369668467855428611925588572386120580321218064355629159141006379639300955447821939116236966040358255085920796572247722552222864801198603759067723896388716632472872487371171278371249510541671600211079353840142571183009783755920324711836216818380392391385291307897187868339296229865429720066546188849080846662063700917817988799378996643022873599995623697261744921374380334007203675107448519521222437988535191677497745337465019733431249253895673552919057801350591512168097333755703875959529116890612576879644044445200050362162901889497196933390402803709590593108770594304722428503977972159512574196341503242353047996637946941175073936939307720230926795432054405806599222315531201767357640364072055430136230355465890988610186217148420751898948829370703353815891647386670771264515946554476138653470700078049506035022625179553456761187879943425327984558459117494516165322970924824748582806444629314354383251821969517406962008350538554901690178038623197766423022383038731738730635507821800089652095325144573049250041520291231875582776299724779733908802044336178351902267141063395805066860068975047714767382913341975146756230656735754835680755632711642679278473856631306984777511688936466219865425513003347235970987315514634369214740779243619061980056753711368318594068695915198055214499582833010381211075840372326065615892193877895550268445636989615176173457742533547553126807769610164928467047767383389504648913308636380390140306522399724169445249892043112459833423363329830370259415948246972109171835969093728613766290637559743964454875215884361981138195675870382245408754665441077660022226830706634969717703052305958261500493148339185724183530238794536799467257862563221664861246203461450114890129988726463709565534763594876518431519674912767326457000775762633146135101799996835497539279578271939896137243406733584066487668572620796547692507107000567543830128541948646028664119760077792759220226378159953792607069680216499014681371719348689020201486942152080758854512465429511526183146945666069298261016600589788916503735533837219360995521102042520522188843162197278389992830993426036733838540201890954152300404973667318444576030988651017304718234243196920371526868703441735566470088958013445475175667789079194058056207428344518041160825564504670226870891918497885030820232226149449652440178533086415807175388046861499336542937242194255305171681857745438539826814201196764406050715373048420441507808833529102299726881520667506507247674792234651360819424904503176689197874024784713136552109458143870994745808327202737558831523953101092704904564286251786938099339932084454697731874529939297501534689484486675782776703811561267560121316875397451417257156900690006773388110500169385656552300892166479843207314377035580419503987856458892606021435213467514836417198439162759864275415080299026772060304049452268793833271334470914344529231073785684308973463740903666252460744983282930833736517142304727030996851873030923301011106608742613433011791162817459601087907959332258889621854296942439196863763313370612521848893214774448840190635220661506185522651621480551755442254440093751678853412565723353788993052704833227063266912322642942083259578232898008612516566782549516499081143096388921876776064387182721374521493145738770109136600591183023502226709279879021833376249886958224133987300334584110153728026414833864635535089120721958674837576616127897449536949129718436589960011898266765436566661523964785309227510962793745801477933148857968395241569024343047090168076382348697928427626215778704202568230591588447658210763435130748155379639076404413633413004681633188365546832838126323723477286630273885763819252795324107698006234949918882562260959278070459239452153728208408600732726676555998676592352364472028749541022726893278787772511191526131090636070370024830917665998197001473226617515920873482114141373741840218885718574647968644258642847370722712210267739366519993115922551826009305014891791785758802744147979627092490170216735222550228690419187529469566313254615163940873803883462652261483228539421122129311200514561032344451575260440321134955557222023601034272829131439416694764508197482857995909135567310298265059038077089706866041789583542535478833208653059216925783785134207355624749506897081118729677271541926069048516717731416183352711436731539356421630638200301891004656021543210042208437921553582800097981860879015037255217349780090406512527067105121955689227247883125563205007692664272751847303409993362464305716455061045920712530081878923501570599922433567512866446324806618840096605728323557753460644807908063613112382997185195896886310589289058319960817547371649531921997191272179851465996223900546935676309292610296729789615442584909103971554445846852583255865915983566042344516695046215965157619986633779615529058071609960423171935977207361054764338970281419876366039097473474187813355389476664571418873016541822091065043906633418739051100044483601134446127684215838864858055502203571861377283597077219735481428097737185940738244556772308770114370221580150953286974199806552197331038545306406684555182535511195887606506224518007613355453406045800407643662570569377742670047857068143938279568168537481095158290361660728729935693702230849848113637854530104368320510314581451345454834377750073631391691608868863231506908320637564368629215736680962765056502897501069039155977333268298858844801426174987928171667008491242825615546409383322999033874333968663606237752715079708712649010713327995081693489626407283272941514089289742909915485775255156625387144000674961849614696171486514770293150102507617640500984950317987645662320415872882321159510468951185352632054092798754217070512001839775810804768933656787094008355892228548064916312768659966076915542278762574993208565484709611311603130257477783963621179666542876113153265148387820789272249194056586674992215716925691962358075242002183204079741006047848282833903981062378547903534836851169108575483288543771922908698844325156370343528521090557554112611124706139378875631700595709779782000839170921171549624021268452424343032431353609086960184923363239084958850008724156944983353825302299148268422264151476699539678779491181151448551158170783819012988383106393933927600443877793639606935590141271602169944670467195741853501265154743522656980843218849186205254468458848984113326387302115663034276668950818809191333166113647738394236161072626216138216622299261242911001728244828310810063250283605223045963423026075109502224048989830931600475707046723315939273542128655129315866173008485174178442739682995572483507549994483887445774250778615274757200247570970076699940302422103342350550357791777840936441990665660593290085631110692782511781877933739869934249636497128687122168722833520842850367831330111233292137480259389552710051942700389243088660559332185533626687731375238673274284781504505493588194011730135876095325118155810797545593990509982688647777124485915172125579804332461512273867969490568005460492978838425879385352176294117315485150074029016497784855864332094697349909479121024944883323272044568297783609930768659457048725986006210731528660822966670419940100924204417958901386813507427121558372058879066257394964610016090685204143580415114108731623017780954210987425631656993770190068574004460362181965807064063437095361257807135556258895944058932412059577088343155248793317838805245048179239203571766169074986497748932465154950122554896156163587513821697257040093638890635680841639888366717538275672180364825886262764653628606942454901404947171719299233848738194551872585397435288480585776344691317148039472800048751992485213849308376153481184854436994873552724094016879825398951975783720793032898741540508920460529816510242792078928205306104969963592529149144837391916627316565938734092538798869679569295345206511521231503956328318825479092591268174231811139245578175632436864026266237772843116887575581658175000769375612509795535352487594358958118806860779593485360036541861147432868883908765301089554902496925267398822503785236420486699843474319643062558889284213578797031337942496729315642268567342051036686721928213968363916514544343268737094008061267827210197821186415984837456051583488394866668717171271401875294352614387499604736321719701333892603633668856030162676430101850637872333935737141683881238583222058033241958419886672583361540087640036732975974027529669422960163098439716494440860028471699533874852165713174620520521584813909880722442756498769703186607304520941027980149206442919683319186125387875291819928863464423002533066387262289782812586005941503503785569947082304584397506120864214740863737606957743476749548108731281921816171047528747170426477866047784059154006779374312516691220160727073129019993923771045467167759174416091047054222097343127371359331344925464044044315579658129832819266469871624892112900654746922167496711538284544069152634145226467979211382828837055517565239377669770761464927511575630597710190631763884807595525081264614015971996182369267553056551104486624389050192000468625778618862458774342566702304569971308635526595971207766991789137106568518166486615690484576252908741929634626550804655732221839110203240543371993456489713841970455493609592449785481520900497648484180843949354142901489988534622262469008626583982322419577635129591751742867748405988910783027930879193062788914703761944566731149748229467157451981785067597589303881434834273607755336127267416762898781303929875890303163109738465668628566222732244120424867946431455990580716125675414414476013818672426432763357568400575481675053844524902763194988655724240963821353350108571309508249622124177615723784691015876990722425508897688074889171375045079461169551665356729227788056138230201907971306376592387127297606639571448362473125888924455433650923856531843363423079156554555909017919110120819857456410687923253553498049283070807108475305336426338877703652591874592318864083868034256954426057890630752135734267454528382577968836863354222648751253039242498888780255104881900452449732983790039400008343911932065759725945276366956898619007314697083841452140016159393076334653335489639490846722134653854453432560127356966997068684504301979343629708113084629574564315811420506924393613569918444483279517244156985706552186318600230503572592939121808004056839302232426628790526715592190898034314449354269979098727568795203512290764684640847809224141440880764919719042387410760835732841368562686091669584024433896213206694739416800285913627581340488307398367961808226998530573399162654757754217732287914172292769217192440013098029696922205516854098489061926828750812153425396287616116703296287799891548763786958313724388791546458270200548490077098698023536834575521304936207812564825805785201174085686464303872682267175216773508754705744974125066908850561554194959320775482434576554738792710070846797672607396503436919784754656161266445297133891287567592631681075749044903970663356973942279591683889637831177255311319403304598794325882293133744983751785499033730538748603155850906317674514014697515961643863886825588710788812680879276247800278910328584905107683264543603929800855778297649956832544374401726000667177574819944888919486535514199658787826750146710761278382837198351583170064528515095791882498827814914024672156569582037786727337640959889722203210592247390985554946207717202624124183933081577904547439862152653309791440512621127788704093244779715545096411486647260964636456896269626603728890181944331089623183484020314040022796935609926337627515125088783502835335216646206189430018193061483868355796551594129356135708421242035420983888501604002264428150590750731537839156676903741886838681461285491543370151855410045093352681035389226967588006062884743879293814902739087145793964805913027009485931561687373555654227559997875882209875560037792510337679363300067562530783621339490658744172182463106466507175814565738332447047321408755896962311242635844208138532320782756514025628897836031655628456208692158520019716595264253180135803156149276153866739365591413419127724091075375876198233586864238476333104315646169275465877274497772676606140775975956471781955526139106227250485030071903589155167868125508910728342944128759992444901730127934099075805093261438004515349266726495297328719705836342453664135765524858197368438172912629433173665331854233684705721675314513395712510560640952487660474598079517750345744045329184773143313105026097294005097142778400531069553436664499074190652099104400869427254075054123636183153271086710133424184218122814247526512820838783267631992543190261618839113288505408428030519538513337858417678787150392784937658257295723809310797162925754239175788928404774163465888535009412926986959122375706441249910924214618868351996761362005938136216216147245687371281636585536033219927630133438003194698656061660310882729790231671114203633578729575185015450913569565995574307472627806523391453965829676812222321090018350633376072964660503338831055408679044507008814087681457897154829275304686314084476346550835813127297180898930732839450160340487999436308765323649490873795564044078205526752988299129876436133552712657014715380762405742682215087868533121876554500683226626386631357690184329032041477735787677801010031935756870136698312881417591707924735438284194766220946232556629148019611301975292104150172172890954024347807739481229602090594174166792778455811850484396746327835349142568349263484359188967201014199382600694489036771837040694825906446448321893048489504521891719520996126994267882038124312545497780727052977125462278971103399095847555544740227485211307512353658647809589270006906838967011797049983157337037281722442877114727623736177808332348962232016839571734578451451769156240213287594218615888346312949651552254756493096818091080587308271696416195487874551336277871493640244946574984602274564074264856762371789950449642479825216447720539214725857651033169722189450522546981489990199070301290254115282443434219834568560460973156943967748976947135181755305616766367577583925460569073133511104871247817487889499243957581323664147572306802392484689235525836144956710476684950117738604740750220962420279870990099202394579512288781400921706207123807088290067577931906297643130528026222538029072969046638153450991108640471344237451944916694564232867059206027408962450270839595972619634955668217047744618240551921456440884002475649471630173646208564178062387905630762791533073294984281720712464403063470293717951479044920604096036670931442167342888375313123762995369766353751311080699635109776071761425000908920099870561987048144817358256647140142695481003236938174038324033411851939856813429458959940665926546825044698624281077942044105889769885044985911562653705266251981639176682771742697259515964935323303195944992776064627912848364460860088627581263709565612104178671192105826684221039739775469313301821857402803554585101450419705212836953749066043698373798607634498111120945906569840431270499159360917061256272947711531499318195519802211362249520932645462697195928303233752710866799322564140487882381942717581370707953479383867620486426522519263991825642723158279013181411301895042144085751283816816043851053986283430603960956254019686888644107284119829867955563953554463600545422369527507881840278055788570978034639861941507619675467073787059618454386300102189996698066712154924259517547107103382087827452857074532631190018821672059104863163099643293753647542133696102327208475758242681105029481103777442932476289229357532855404203210006481103866798723959115490954831481922720089503016401523349639008675290206358564719621785703303729094917330919492748214768713590854159887039902734882507811306021262423902213354312799680010730815984876069198835120827551414705826658150247537792952086334847764277636081587541635360491995937044147885630001997861058314187974132371421213103646475291106353612465317841341752718348535254927001307729057656288420948674975172234500974807997012663312877519385167900125482757537240888797788308519287098936224633270563062350186330675838174428312245305039238304399554993792661045251773563130773057295690619532466326971867911660228791206807685470566197420648995312607148487202150420920616866563517150627271625740764916162563170689630125806331321731465051082370551462678859362105708686052262816142644904891043408625095494854621535221767405387413548546874901301158460460705915970981154579089599804762206949095233645902060183605535670153891136565668941745112989747921605114820879854485041638282501046759735755266174169274925175838158853634689254828308555033953630304458265765496450637280398108709566830173379375339470515318777428800896925095888063089388044093030625660367039493221995338625664569539303209305748827886270249656364978535164334025839266915117351011994446342022828589115685150244542211031270461650098239486665682419163374731530560119329662119062409018768359063907240663780143629647173138035562672507683589634182922129343664084667577583939528020710384799013164681414815499375103764760242561812752492825164830281258643667560744859997152785866338720424436403823343244939875256861307511202743583795160543418569257977757203197171807262868116753044859120942584023695079114718048622155030028391921954428712214253751845863776839244223678478005216820970297648193961917620013929346291065565348966883091736914409474713532156499882884785343614775108881939009672006906238077498337200748922293361131562665512626192766424461166010971252991881895846348106481425971347252329028054221998825833009869694376578194428550805942789377455979222182791437673681930975000254800693907312699246179161155539268415997783202807817355267146842001803044102233545776699009610340174594955210991598621179854634584449270494532217588545741305123988790270379105180811468234133786829798913248778346846632340641288759638630738653632544274521277204148802993556639037606797241772728743857121876985071931306256576713044102569733607503214957849742346957406439170083840425045167892056887133369957682267578267678110993322572674986526873441720115399040515335888157952988198873787707926306844598257060237851345250417904614981267162684144774669146895693042377928625365037573654139398190240032626150659061398782828992948697514039033682135030201788705845990687516409051277566440213465841173066146836918250699149647314583932696170737775260136425352368057013919300632717061624012665512207333252885612449928762818529171252710827195046841337384007276471719594177702997055652630212923557839338504516332915476808045679232543426685211366982085971518482519170854766673485736667710609707392514895880591090031959939294124598667660966062909810378375763921643974863373479117217766420862410783466929339059166253109504021490881028015022384635142312534770555886229723989627296940096150663815487798811717643294969572947852035821868460924308454664958825886831060728885592239738470835266441608010549004938219310786482926164304049086904202829627629357442595798721015915039992816164995399131766601890739070121203554314662098658523533737589249338359835000711417905143681825562774778935454977989070024845453460057623377109432401088007923284786056650949903935579204899960953420736650529594976373320210615252932344689542172724615701439982151506439245342957172314176023572755423700076940707044853836491225829087612922314653669139403843205950617089638982142574411825079967286365469149495858346014321668412185174431903001084364445076100409131777849567498683402866887420434601835686730718275246951425786957289841724616301567966469738740404337128039083267731475571814007339997316645920229668623976167468676989426899730805870373643042705877659815729310186841729999219827763835009331441240796567578434435404793097507027843164970547879313059848252000570608222058112080023990305590837172147472480240793999355731674108748575815160178455153909439287548360640569255729983996178484541943130473436951420648223431380486650741281966138102343564346966025247307268871274175122956171847484880684273507477033399518635329782052797107097726958736208702298061619528627238942306137479564499897407569947104638799950755681490275817609360934662306762049982858875332553233853261037392519776352401854897934103271422353365331244795968386325639642269524009411070115709831899369503012132083526486612271514427375411223154551998177217699000998283925626313654557690817624226419504655768001766165943454403867869606175092446828866736379410611332345106232738454441492344296330597210189933806657476473908041853464521258265613155074976381012695001218520880433798413198059047232946590355629836389234669394451066750156716252500739193520055294390741482376840111477642752007194277064041450428520889729958873476239325679906796386502453516160322699514600951026186449562569488393190617368722078818457344526526053412352970445820354106158579026955215164334090115284295451420333795682408503320644667437593046220098294543738270796304507310945674935702285778788285819667098598219127459386620431372473428486211834822696390951259686748777936020463299703204284597579876036168028336001021355165614606731774318093509277476671974163623707940332748879829115920799594693265145602369299653698698235386011787680622173616885270199593500921214400464759395324748754821887683963496093156271582650301606706522077976790233479803452232682723157805243367933092131516058066786585337011516385439591463428388125357261523486488038940288397854551042228623931015021376087987673904624986647000535982036301279228610388366390878056066011623560551547346025731592069225616670171948810594203028518699554041299722079894796754579215131513678478808494807384372734665479569517536816877776130353975217179809921400990362608951634534365767366921656939494236127044768331806676529983992264445631497105890523531750752014663615820799181406107685067036144848725419198564730109892148110372825788948886540644822233355634250212321772206220698173677409723786010961675695979467377397015026424246779928713908705837497787137753732647944825027140064011877026246212909092974686017800084436940378908891462736026312204376588809594001378313509310296187833226850157285517462281157289625622772212282838095195973434770021705381919155616505895429842403910821784445826585434409744373217829861958426971640299115184357606472403058701148992620656637371666544574840056149030405367912924256847937291563828668066914442973881838673696135337671075569908111898048607573894040466442741567654508046217156392642499725802382428293691954733032865684870401018295536673163053390286942179174597569223715689142145421134885956059457106442597202810683131916956471895264059683424950154464515205600679623599089018305023026506507514533983024821272784186471012060440157580874175037264928567043818623599800444809561204478022940190784141235169868360689937948511846757580208618718646480570779256376456147985991712898251267308719871202840485198586970872957959459038823384629835157724093375272719915032071207527360126717508113092834591619207011682388487058206603909443933480718074417782849102375999771896217223964524168361326719206840502832692128669269735913661762774420508544340293200104269712060338643025006594462732975625750864505576369931019679448389092361177562155560885217473957910531543134189271189102283018075516584341135448760925812137538038095869352615018875037840583818000640790938411020381505756643231208825831979361669289581878566108216023600318255547349499260779865600515698372886353155927389856342005325217051363487033083941854164558573029831147303872049044248024531604607362480579283142932716600732600130655392380377081358728449865778006384425174446380667660793916326576626749741498183623899160762977434553900211931090914892004767424701999395243408876620737985223925984146532261975858117061173495981665062983371765842778625721244359904075977247249686688720651677145057827074467111402832185135348747804116926170922712249567584931522015539203664170698242238783281244346228899976844483789155725904252060484339714488412723280257478038694509959995553884879799218032559359579851254880132013011865049952100691755433354597528604481301785558391224704595830820826577403797935873997442474359060959700022937263829487488593250601097935425770443398261728228594398288564108746982428930878251652284207806663086185340538647445638965786209534611122096267425767055328945925516454346811481589355576618665469644989980081772304872968060224737350821526136897679390465864433850234592447314924030901237532331332564695169859230140443433816971355012106794261634081747013676904873022112168932977032885326714543001864705779693654128616977702621616074996601566605400358839504945898527636540849676563057094029602003338710365506736684242215314681049417823849889559728125330104839153266452841134528262478276301809710587542030290385017446848316366885165362369246816394613771924188041369446487682802412857156276050665272121266160713029992776148035001189310837953336726609465011737518895161713703704485623908105490699506482494597857422607635537170673599700672720708289716939772833893762083652691165766082434558560870092161259326516790869430949705695715551444633246105258104908436156758370774848214631969907230397112429901390515140690673764573786245299335048691198349848219180174677441698862140732404820810011817502849958703418230413402487747287928267781220557929910654106339105941687419844212604416925688919563496931708951052605884615996172990653119038484419318395730563241822382692889450756340398906860615442869868147928355640450197112595100129054815110968526436041672128750352378588628999184454663094099544427501315724126705261302830972347355171543989769740769235899214796673131683390797200902674899131050952189419099491450463371599968829844227180727776807738327178863634699349221154886192648456148085692713337370097749077792310403631380771163715786787497256665423490729185928362887436738918802506138243580038367327538064174909385865102273258387601101635897072270667520037288968042493966673975430010115520081962456658046507552227940090156579003935686012728471426603999355894507007047494687450896483811921101414301597525897747958815868168766803282293730067597783236157341571429662633622159666963987036693419591419492602543318928427262224696173097957891855332543567182451307783698710893115197948383798736877467675654015630202270043068215854350688050667747968355203336889736997665449948337024274141503213432038045434691651524545100202988209137470277886686919318670790139065164636179443032526256093997259463946289128453672357628692131833234732135871546579942717255090584057747090940618832740558072176689339873213002063364511956342503971185069354315633334908319724682491654286913916780721783909161004986853425675226652229376574546836623293205831230375852216703067116298761124087413893541626629407100054270546425318778499235175435808704153879463283375515407208797055451288177341964936914352876586401101792485663648510921311667902936313408746755025304175856611638334671559503648295087090429314236098856058253779259188542305154218062307750258528065737879347161947529324325138336461307070334491548232673412742371525629293256411942566169944383683643151775278744198359469879340968345403973096713010286963243444742528968038363535558192977710070254204407743652408336771284376909700092853701344413260295753260200715666926250415506895988944999004934975695019687140321379578220986687047711204601167664907334792031785937518619046179407552883566542891892403806978148986491034158023309801559822707257282009936523101378975733763391372135130775771499793117377021043705262931008222828573161712620021428876719389960461138250556612039236172894202329983719682679526968502553049810630681886846988763796975289452267956814318825013150227969817392791612878489724493836443709632672780246790808591300966233595405292339871909926813685566360686420318419726644108164442618325772724830850796267331013886057283564625562186856897985941459841552923591701571118686049613284783967774504465601013267997701873771276224514418275018982289510144490488144539937885892596062458582247543451907784838287020406125431019920106854612320880138153180267093174266149513594986752133922294826608563071559223863960601480693617184711126614817348160217266241722830185871195541481585218471974427085162575536853176946168661572339780169728410904420918197273469698304652292799062499421896207808748391470497493746564050119971961086777775672026301400030580133670096269987111668630806051493140002121565312443902340443029945428505513880868794038219532752109647332520417033708232781617814587039020737871250858364842205987812305790743463958776550793664024004884042106984804928301708183301830819578070030103984116102201504623663225613557024895145449792544198952920250796232543293338748575353383354959982546120875685279507406408022977902879273680779907545029792024986374430804945659973198053421420760191762891009924422669870168078244918133369713803822101080650291329890671731343122982528978316447969089815755885048217614511004146771220511549479626212387421543454569470470910059421736952205595597080775429746785870862582829187777018501972204803771173173288594719387931206222421303050876358737858277139321191822393372227900425657042367076880059859865758936292425920390318560203326463169148988345845800770749920582947729566739734523182730661357088245895799937405858311416057666781368139551111766088500202600474751115984273732171584159789119824281991441356096786076623599379887988734354854120889723234442009078778501213521156606104291478447698132132633283943753773582579361527336725661027161594069090381821359282085953101467047355299129923603646382875330419762761957534169269545594392014279595587837506135032511540704834620641932954733338826494625234315359559973252866947454146670539098929676717846098241334579808582364805193463730547929176680250688102922137647958168053863217746346100154106979159880081881444250179204645641186092795319464073204820835263876707987650545525122198059562243569847297488517476261391128322266754952272966810524534323204474095469922528765670404888730841374472617233455728930324363226753891108567256552842258840256968542810962504611122693695706312270994721195952226244696189216588027491799575451134921980838360311539777827153621891233217152820537284554903374818477853336216523709713479948692810489309748461928411207794841326119202348588038142906444014495775309962141371103294166048117695369819344220866842792353825691591020622399677343532788512925874211230115106052918256568670846521026300152766765848567046133426795080813874141707171700900969246535230016315048290502363724105199699034522137312462050201466862934230116351146025620042568854021505090792211474078075495605769702634815169164766089921060316871859321629243540111548554423216571090344408204383424999277303220823149463306046117226880232196762859849053657599449451957089271354424633443924119340461438334700975065734128910950115851711558118917762525319004989739089581522433026626888367528985538059380476405212538711126668660014486253038531455775268495539579608225927632306699677978722390110959943306163914626482396178334800476856012987971468717351193361191372830384953802810178276548220136044525560709018133605755415737666390354368306549217348355108628191176325732601322074607526977084619380757985631112114500006442536524045231973965259388062774961949721797988838682475821916333371960073643704021454720758661064814058373901285047660387016864557479571853546705041525163947992151699279234714677315266031428461882785552842015728150446949181360903649376353806474010567278195506954811060563661801861768074231747756306294078253570745939105442723953258556291355941071299843340342123915050897423174213064040276404590973662563709131186522670978700477509614168690508859412880423229359099594281920416083448366065749464819246254831113779209275638195091559248935509102056068220210399215267417557464549968874906588311736000284419167711633712313419745357046445256636945610538598161215412881236599194064799881740672016142063123555098347956761584894805775406273749572677237610315205117490264914436265884253738108214561023740476507229167625632109249186527036343508367251688403596588530867475350189340031951799538785801652553184976815057450385663845607239019610666515015964594816876854727066788964608527146221166785399410351475667526052379729795588414036353574635855508767386407820299219181844309970988405439828617768582543358316414878494549846284515528679487073674874297987121734098865474668865330299150151439964554619412521154307777143184995810077999835080398779406032885181523465873979340018751472092190062953391678458269714851747320712571453832354973373320546090246992666158004559286598229061649833318858206135595668335490217098388888610105502516021516324362136139169813239053168074707050779109868045274501284375026775053279882419207446304041221980130616463575305604464580010439852906403193242261578510413393882461460653226711782402777484404806056770509262905963771857648593536412755649574832736064633686443575144388644972884877557749147542581325038872168180850969350781063797601869188684104342383575448438251980403682996733940078005449134383538981933188782862286527703284290751689906883578163779667615995176245042554189278792195903393481487046547065801468333290881189384437081367685717172789740509929530526354068504057481519964508143447582300596484818927439928804041212566196337214908778118025098262742536899825372392160335098688837342069442967419980550601092826200710987132936689791804202040248548826131102622742126505262873585039233767428077241263162534936220780237253824936177137785001387889122407405974946688827541182033743112443727650242400885602335176184713169204955901050495282945577864430201456045960991081205240384241301131669421974432526151810177569615801442199813690339972247347271868018282861949193823063665256082001951853354811152367585787158267764432142599810593328737447819945117056264434248967784309895131949716022673035355686702295818746571386798337006205766610784392508890657202818295002599655955244177473011498967348063914184904310111308143139756964153955327633885232338298259254742231495206442965915437060231212498695847124028895972719551121779321411251524062830077877164323801416899630949177691697210884751000350769490358381579406934015367074477699565213804049514164819823526545305990487599989925479389701739258936945040659289097591350900814477367795084163547115121774499972718749971932028369328089723223407503929706786665957866107832908912568075836772759233970374186125544104671191338007040797839280683691396457575257192383211534466456796940799652827758311860465093292540974583161017943867068511165098228774510802454556177812996035646862739752166373734090137358663734203763442882703061945970843655413099809380671939855012112289354879537751997018063719200422432004091418518457598734900005193375787554461484080595491484726046044164622471085666050681243096835557344843804657904974185775064393404468681571133050162858054377011571170897229947108804785844518160794004745882146809381717923509895608719126862821369127383103280668606560100389658173177986417636406998847565469443381156273370810598527906316327471030541949328992288029128432590010131873700888729151528592337406216178530605801743120215598215603109879763157862938503473292455701235570997235030607271184173508265298607633547770521457034358693826999449462519745419568551262938401697838653274959744246859082840523668570076904184713860622556275060718814809781000178529012936841708914617223059795709427879823089741599506321822089118110297289880771050322660831200389816041344805073932903477967014174277646141381716293349545818755258923327610833516065964363117580687084592653208583339353480814236985644429364042179367249806627929529786314319057486958626545428569961020024265447523940244625065955590161927972270546054031145708366770374328085896251605657845541192774341715593477807772110212455216980580414288102733588758611284069729198460471393627622630941763007943853125513673889841380923655903130340904408072415553546608465141655534600744237538465415020951932264863475430471019526007882300433963518503633488815180211026143215713553886231594656184223485313675112845950558229285561030489912821663511860228225789208763784908067667741593264315868609817932144983107755428517485301943593387117482844189618267341971423706272635968905455310832770495948102130695426443507227651153959609603206608058533267617416880191345111468753679371052887437463459803099180342373731047198210337070555803034645463205157906950739814720494783627745322964094094221915488650388921433612633406691595827883920726154629379534855809796352900620769432473609943498351697491035045900811567463367852389326875798832488373241498149175376940542265689366057270160386988762796807564882785519275424903572154407160807839534009523740427372531993190449455608484166624790389934901933960181317412877000185989079168256320334132953448942470962553735323308377205973931368578792377466371593021445959880853319190470084745925333033789261095464393269613097069741884121430574074911125840864227284347918177772063853981613886770372387748528961593326437616656284179703918321312487030655698256036764617722425020185725201023271315611866393395967812636538373736383787465768567265559800194755441247088118532332761510865382761278844539241201766614500527398552515527905730326882381729114845330641325706017440197618857722504478167272334514289506135789488667998398443545911230609534047754209333404858151549819829708644152459563266268574974362592381092395103086495693167425224446764932343853730175999449906424037026763564855128089268797249755528704030402310469194930739646154566763329319674973375177040377018329990862232851521400705382266889924525351073403802455896201642400612352495255791712506483137943724080275525389951643829163529315741323958070248417551282475845495301373036049863621366444074626160236743885336073402600115938191528814080124282904605222243217788398866058902921574116040445531636970932473183589123767110500317399811033477829001504113400103165425153809305806491745560181357285467363605415272084559376353543030496020505947336271040422107245666781267833397844610873601277749239102860031852304594186841982638772677865704733276119867505845982079529669257989994076434217863430729413081733821669258018850491309266254051172827664132675870785141218580722290390701216247591045857973066929140077143198570811789828048908302836340584162177239750912548508049845782953628723981086828808328178379215142019989284542620014125840953550312405892006041464365293774890932750136509273877421619077617151971118068196459290935322032501364448948156797546798285691423800466750997547050355745411964326772164541526252860468886392208632744267140414367610139332853752225437403071991473016610246483512940748676721175346124312941252264426708312993140727393562542802634649357063889217604839818503407504412546139093305707203726134315228815324997453638868253711798520563437246383659243121507131661442755172257320766039966778485743556321685790703513208209972844427730971041831412504134347541140736966328738484892615695277183985638084444069283381646167027679868370359319497010108897823585039455537785998208613136703553806095706488971588706828678485714350799442226596279757068910662573754318257072693173238378300557084521422761163178509704929716459075473853348787511998434644546109756345427448326512457107509855027512029195348923778527840858076331569198208944744878402471358992081331485617709306523774629051025173917560249523003557891017005462309778726728158019657536992648891146026485566837786484083204991694796933615866762811859367538575265269518790038313684829057141632188778348327704196815661879122646570128060590556979836176213660109431198654020075446567663839974681193094917235273712702497512065738354771919171784132317642827241363225877565020114526408008192878228177644177885940795066318454727740643187483169512225204322133953123612887921406089135769927766293521042082041520875613347365508622877692537838409755119433525032980092514821910143211091517018923349883429683419145193682616798654249117692629598198118771564135893429080526148662422727408008017635229694308377986193529443579002080153457776245646119123423890961997155658726174704328207866252746720030318295420653150775803852256247406661745803632676426723291832585780781134851553602187131610096023179283110418253248860780280195464185453369567097980387313051355933886541780029101148003846651487968459664200230908654645565496214182843815587803681764378741742132164864148749115466813692409141580262283709903953620255517377087949282150399267399591284306486288598428208841431038567177611466862636823288880361775889399452187935115560777971251395793771541167076991977485685237350772980365187030462083955963489712118106344738621862270146092981732763181096519251061933111122917451124758493967714461001325932092420740467180544774293794400220659075404270329827252827944113340342646277279700832988859100877882671737892070422596396923934823388600014269686026246567974782831998271940087477213669606174294112187007384960003236729485369287778247526979836984252116940362493737438860367306166213436675214727552765282023119369037682126628773476961224846573004681924663948415477571674843218384236298068505208036069628108087524054431604405591225670947283800772341853788641595813205357874780580742776604592297765675841172777165692829087652601537208034156632927498496389495627674419119988356148445068577195315728309883867038598837224300880981419224398318777614324760384447876087048801948411406944323205393032938594174987519807633375573419555094591963350829977312952443538405329094185228750113825805745832683319114786183220006124563249214628966666702033305626632117103841626920614892531439097110128759697787422039931484425123682653000783795130815424282582153161086082962640428671878046546758123464320988901610614452124425008394497427635890763468141213187838732706397337472253032116112905090124535399287713280347191326972120424683894755460017984109291185838358763110129182529785243469745325195837970525196270486174998614669968428034930596967958473227800175754623542567504693194476744046055785240926170013098270320366814003431928536255202695512198779978499611934296471410839919572598802542303276539393734119274284009695023890863733707099595880546490163384606318857764811927614515544577004923033237280079293138740718058946367763140502286722273835867029198457377009569837705358181507837825478954917018389009082327005068587129481521139046501396331296943973590535599780856982582425830617109179218913297311301440508513687689681118975537330273315843693258981935171918611847845931044379005223165644949879683496617134185282360925114414019245154358638080378098909244775137593739093573439894528868589700759465079412793829562549408595156776778907652152802208062302849925178155941358379505338305715331656038980330581231836962315184113495279239350871502348035196329355397274285231958703358296269459873377203899345155588882587560690255311181916324537891546356341839024648236271834708430455518674697051064024708921080423360440075866384702792719417319967216705067060402129820837932742007857729665762857302828399970002963856161435005286929791846328304810432890498759570673839781693133812997008678547376361747533352111486419750960537654274226121181059435317877655768292585865390448757997832554081142372013979888671124014269981051111948428923392154651841066728135966734889385777889302595824552712222756587787842345271127138186953838472851197142480673830204890731796131998245515640207995391591725061228518797118638648715626375524008431809052442417530212881884010968257006420199772032466225287831264728995160634113135152552016871051525947174235255831463037634824385671838022119088300094595064086450410632467021517379362913931043675495341478575222020318998571186628382619310659408483055145743501108945762194305045446562060860568592383865562800294477617193138257492338229713676013701377887585819299589330103006411204905468851153899813406657602355279455082261091358539778886857265006289111063238238351793189744543370734334924250349224373986221211523825725118867101609256008503234987424640013435405269418042521162314592656207764068048123320210050566012993457902254102917108780427881895306205598688658681359028218252326653501458366597570444316026596113541047346740280785511718303196900853352162758007357812997752813447153713478590195833086864525296642339138034622550200614522429304886859366834171574234376696286072690657955807875659440338504259778839696884862494820604319475698537377451473677353955818522580330083814700802572808292856972858745963480119607022220549914747427135732791203632999406649093829423337165777345440046895805753644310161458849971762413720401362582331323710992282348521885342706540421123053721587943481926149280261507863639126169547905176772713407463853041198653912846486051002062392796563538654743246920184394493200805634086533797922652521699817626821849438873171993534846236003095281617503159007233542947107301555308722680162031508106342200937892021342114579241714190963252587759628054390681138559832484366347858568446997740255660151572375979529854949241221752769693321930107514404812198412508119378649866288956049684876392830136715475185461297576569725469918459842150428795715429020407958608981842586776778025234349394953432442856660238194657684242578816443050056134254471463597673266840342256179895395926179405089924347458850416278784673160020353912650778892238750580382213073518103298374974868055284112968251768480113174238819351278704290644008063830474588392859200794724167543302538201943999909786314425400581291290149844031453075418017217337943118155140919890363974115304476398059274933488189802853077021413908855702041286561942376094501072409948137382133543292088551190422362311177337218911429689191990444991410287327300733877260422289657748252883405445877712196283568940088850115407648071783226380103973374465194229057475842899792947970118093848829526119316123517372248207398128109188464805429487815125402645730255507759647347884935436668667166753650607116286797176158544173690130039656563044356696743599400020621430836218456038277312817586778761555932520672256696364486827455856854212184226416014746183347820381273600316304656413769103111881379816604980774694135951876038106211064477603605484132039209950255027702794911157445637359718593436831873928392430242134222007802144064427820008185201059891792166710490717539595691257587237019707559286934954269385047188338353974834711413089943702768136074458535829361384978666706531546970876144607758219245361778344950991150660958977908967062992318794972494218614555693630441626114430248269011608662971702452583245583057329920430155177851551152925872704910820350105958974669297489085617828397277486175974161110738890040681192217179323199643575478152733866706545352894914249006351727858984267502111184328638648741655934525134800204720611932130880521126550521087994725650673697511733471512781442397097002213827555771702874833613086957780122027667467091628368119730373057439700798998545602489163562513505875221666734885659599593349367307713270877019941665262468416366629231495828257632983550171717723342219663280628223376693409770247549318277206151807444657109336670588305884100351056486428900080602140691687898278684429165628690939745402414414113419103667434775304554921513768822973404318484746120811980559409710431925220467416784399158747782709228293244402685947620166346868207298444573319460039629131920973353203459445419039681114447084200841864329902721614150692631226961801453616676758896402147376396816423913439259206320435732903115866391357065405496191851488979579934753549383530672877074257606140815625942968110106613329758267934964979876527867501661720331252810937063479108941603636147588814151866954623476087794230416747844656211878380968512300050983052331298625200287430582188571171568513946741021124195922101894210795013005950483139337246430402146336252114732962252556205119578833728515123586652628635071599191267171322081992187083595242439716836217253868929363852219329415867036916508049755600800639423609843617196195095073158859970440679934174460981664484167717635604916179327776395445063588287852010831270369809032387766426503414184997329220350379248446448520801292384002627315632393415065406196129221118231873436164598407579193534514418977356259050139448732422655464412485921834019411438702667439548332097625704637801980803356428971366748957234327331783391990184786217905979541281929097741240483950572304409443448510477782095476543866960947481758286104890541964747582753897515697303167689239519908319527310497222822048353142311746450737626759334994499432551333871065303426258800548223329330071258256264931061576481279068620919002314559239019036375028705378149417363277616328922513865980326242648464502558908970165730944878503569217779293127952059669845526933499622910952895628414902386611930026082709462405275995342231891851985376637218485692493283060230721525190267567970242313900690542348851316108975870298523331356473689305345539036095996405773955797571380866765163019572789445262480862029977597106868595681766317289729569999549873757697788751933634100258655091409542792150238636021724916253289942843849285178340712593160740556524607989544998714832713350683128636947324788142391787435809706943475665335681891951386714790154332057360775822121137385677422251759366748454052132400151456183659124242644179463908748500791262084461150681148867049386421932328821179239295021043540230249433282782349165292297951377439138521985650522102663615048910887733102580414171648247968020008511021984889189467041721016211466394560056011431279893494138018901763544742670019749816226882247635087312638669906490753728137897136074353486777471760176027506315090916269210296000520926426175734826634074886697768130997300425627678267011193920393056829295961534380295593418180912499519186542473683370875450993546450791526889221810596987541824053339249161042985330898468050943375109787134754890394689123278967164503730465337073035436957476531513145945544765138714792631051482579389671643327978044903720857710242116821228389155922369652595829274950503378453442378341422181241166089597491467258961042190098303484046771637588819686991618026651056933603261677092496604853954766130516506402178829594998337422598758205643790899325857858534789474688128182111793462121844666174761249530535987142562479749414378055249298021757494556066186313320379240698758229686740630889152144993382815159769331579991530712414478850349282155958672159861005897969424685398213809499915554846386385351846803035273517447717070111994822561278853433435380184137991918951370359944970903948137949413257452886281657941084741542595615598318509318727063849241726054388247001825342348347161226329200810854472060431191750506554337509738951820535944645454298982594284967132722587928583938384540993247420074146647864136166199370168563418413101045330253970196820084482341796293404395278595191873971316642045961673608064569088801148226988693340266946856629229196681993577481248043464558077448845755284468181011993561206787288316370792094363874720845153052383988217696181101700692985137123159925141589664363422666175851316211853542450262012601604825984260211361383920670600273236667124215628647603472998793891915538011854473777055868850522270761934328240801051348716395547871039458756182524644459668119741938210039268477068009703042748393666313831355936740137418415859587122527657934888100019876199203653177977051897943654933351186232994960156172398616663658615228716225854897593101347733287845272677062630392907464566122080679634132305034727723248508168240098863573076838418948010972238624536868950184013931467963689356264907728859345126812039989420034280895091605602237575629030549006926659218436560848104964801828307526658447661804555487885944843100787790173425773465089052441633863052933729749958260381900710981580520302381149697873025585968322211773667329853710459461114689886834419309964693552494643181687624826791751887047504089895108368910228914919737961236387074868433042502610841453431188725575837773065923333740547813389927700189770210806121980149081863856533001403945333569251059622577292844593510177854463239222237547582750012795496796728452958237206682592541927875140163195828147665264000668670530355572911901304272940201522710357698628144926105921674106238266983488538520227500488875435724259601695976669571766796156845248362799332319354242245963204993545694916974973777361701537642062903420603634057322141574436368101874634354040941770189996892160294831595576343143058512654236518339667928867018387288522546148370695762083611661016272764275944066871810361694815323922599182322088404855696438227885358254291326541223790725207238334314365678365018246869412502550342110936385487220615116642063156097306523992227801101307224574022625790064822864652063579050982012164041030838114515140350121275380039999266486704976193501198817165293647997503990297825716042198208514688067985278698640025973304344656879857105355044345803060579301646144376865325622858357203434779073332590955213490251923127719346430345280175419641968912513032349317348331139397397082875385795893636333699970057850841912732717739755429516321617460316072661207437175543036513821278449699884959167257792161299189383155700244808458109408906728329844675097850324621733255726481768783047922045438888807582556463046190956769284316959910122862388697555190683860063201705896333396078922388351530242082735456804281326990634133253424614453679310568854272422531360775286137144913429875118508589953235329180169736747429031572066566280168562417688544788536956945763938528419785610107680436404126388765175879791858660129838521532909795053238100978216261322254988543946490261394053527575618736216551909352707496930926895179805138576126305645511476194978954095794460629878654898086195036291967035414687831427758105318650328081186582096713576096726457245443977136796805290677159342282839765368180944178807888472525505570362077399063193244817692993367437865944296258189345198640025475203497932637552476998960009468704539414867368293577306411515683195595526873785657187103564868823717936402270529702861644449662866783982666906523178540471343043718605643423622589333963283164507637556379820901111587760825975563710760970865099691425910227241002330821220999151268631421246731167023564374316814273812093657938698067922860498088089724829588839445690409837926359894658204205722599156592101817096240811582682496388607035885190893037645899101458261511733962747069478957738217409058590028644324171666034579184254154817550233436685309415830319814944032332161635578495416777114953947993425822993742026316087755556438365645349404520164107833555506203244102385305620755141735993201450834303597755383723209337763978457720813805159571763739266363201613235433642028600511875299565557824571857678372213743141972879049974487759685151293883198806957060443217772525625247717830803662093944657952669510566239083186741383033713030810171884767455496779561623655418621081006737889082817951364633414596867673263521109849310607361637418659154676489997846810814386732162049091973036112141302581514676212793807176666279720582051875606452254077396142197474484836745326175857720560926101956822330359801090203309073757183789303807936892642113922817008511785053219059364144357562879954403417320853797247896682198814573941478990838568867597345677282043052296167974662183655340203388851686143012905865766597753379490294800866851950861171476349535662139931562220912084032238336913896229175397771996865788027745060835756689044896446970150310537360249167868538215160950234383094314910352122129838933672381969060418633623880027476007535730895709418513385251599645863348456203161109593097865728146634713578117275967433026531457229378617732037630025677958102905360534799779371783477922444618529367748828541591560618914457882821284724992295530443059871921540381402488786184652568668168641361334207388694295965809368330357425294151438845360307618103963624254903218972760607868346064695161311055764591685174412677122365848656268126627549750667875908959628445652701098193915877179728505547377449531070548616360931557561520930347587903983272339934557078263124513085951904621366579141696219638635807980130096947367633127313667972641810389840046354565260236471021405971145003821658356478201844787616226317398169421131599011006270339877014774352592733541363820955148366161014344665617917522255381899255786114020018528918607124246779800751082384924618824509915354419735176895366287622178042807641781993200603896415902082264927471395964948288425780429602063243093958315894405365689607486293837985656577711215149401447006469678509987451342522414270493686907090733138387190637045334033903491335706722289202948424876715813708455323014600535482603327556607452713285698986210111330809036242548125480183363128176167123446095543889660746294675591895100810699351086552794686603159024845378236056836496155805982118322457244217296656567624616252956983645516366168892326963379036529191025834560390712304867995249263802204123987674138022021458372826803048848224425683311810500004765260931721889338096506631079122702620270194345479999995438591124080679385740974189240912068213956624880976400454450172292842894337560653571932867909868166686077596213484898872202065053228227825375837725906935563166150394669032483932651286101640449724332988440360273141880261574981558367218858996067806972422839508638575700828112876680666082220585015210402245812815789260063515440359482792746361511027400142155588902985850738828444587282890831706915814169873810082499615058271481130292302123291871443656216110402021129520379372567995742156187310343417850665436009901539361960663602222159360784139550831026166040658444373034255124012063180676211432215044933923442800449086556080106254983714265741912102221247388484964761751126555481940882416673093105854817330552234323367763773124776751171109890532030714435595978160969273183352596130921781585939170294457840284764725206338163368814291136690055498493791005958462382760641700214196013096792144356974315408582267790723402764825173078148258331386719599015710027561056089405079008497981360123981860057988379442795658589278925748243204096594840213078964513284638170188396763721205942867408424060278681237157459258617224539700721396634229104831032378727034217992784581779937572024236193871102865249524012663537061740379206847060181245321993571635979889050825885227232584932715537075945551753375567420667349712325221204469201586359739882645690487627517189060887203123218220462807176733818872907223390651996856164045388404213525150581148542367276519125971282262065961679727309500456379173804576263262433846522804799248511175228879066238802425660559533854257686879251688544480381764878687791718982017404018237646491194596822912224580096737191243701645544991815273853677596878627215505970018365553480488195004966575649963567981749380957910283583489669993927357839817647744126390782425280024712767715647613144102642077019869226163964273920473234504445431413106665984952188949991440284405158796908720576472145358734926266752157343517198191395086109495760313274958103303602694543811312775026738055234498243586333999350061576482544744662410693480837633864110810345411646147088708202819447157793370943323239648937936503215252961539515916455660227796678594510774084121942260819472776150078246966069489113119647964947908383769638925484842595775360282605135020081741315111220598354766586679833213002696508803903914910564282107327458156996518485646143442049462149812412983029941076497758659592739648032919197978249023447680570497323374246876140708827030799508976364694471929178342998168882226791668001460272451910263506802968545165343736772891556874855875382336527213608671089235126247352186681696909032148867409485540468774232359270612317010882803851750073321594810202316252929484064871920602825731953495287351969860616977048803321872352274410872661042247852098330149217473404778426790481036940335810447055500004899780062782761951428089566925904660783438370329421562801911545201606398576081257096210742972062620206574912858207706780537832646818671877206543263433571143159281708495277155682760656940047248906112930346955355241654659648412825210681854059959943887680988740575507714632725269549491967213811729195484622933223032794863309624438119744034608733672139382518832062121766949683177180863582216612924424961535400108066010727670589028499336903469770784529718058683000672114202003977423013251440641955618074256121563663327015929287977519902435981240159899945481852179916656640488156391063779104990900095179767479343995480073344561725116123941310862069350873347968190874116158112247599888843560294738523328862918438929232492911193470528888483326396703903545901332256400387985536564436973009172125087899414904788217784641902824928596857797593979001383597851983410028817808537842921993752553095108062247101902385383143882688454369947833231197766570784564920023507354849454880634290635685075738930247006908849478869123194470591742325569036202018280787805683381727076301897850923350382347379183045561033837430313739756938291564474853072297993251217950362330902887381209141692299652031326850005004100255790763979818168110050477019792227772136971030459567853889917293736535262848732164503885647881784883675605197092486580105797672725372184002020374620824880160098237470839437375005881680255989945552119224278484689318218791421894666394315629081752637609721571383215580623829271667369913531228102090658032123376763861811695007175564879151195107900280382375252986296873555898659115859662051415696627013636369963455277481038942188767386561168793467488800118261352327341382434510887560124569443880716362765973572015653553222786422896125152125037760440904973795536235884108595358649895363604049651947516708484270867558674079892739206683261704095266886488463991369671248891602696834521279683559033899190190422599521808671855040544867724859931556541962865104295779033019546901637658852421907499656885419028473184607850137959305139896551475664067190463220014985542187618075748367125846854425703399232550313170180333474808994708436265454044385928686932601463141124084023052340888045373845765813064238912065721773705522038236703604205594667331820234066262807833778177130517018935698609861863365048718941637031868934572925509712041323434747829661811153179611252113940036699121405089864450352678612120060055484382297752523458762205057190019034201164628285781571939852407371348584974702354601827274092007356779172028542371577613334014736053255190106555712648171598597703742550836599135315413050138312112426059704971120140818391337133545269169860802958167611404587649073275670759809192919260914040138899173122315281883699141532354184241382425166823180582871059368473349437409949189868752529131022701226598519775830170166934883511487380427333863706049178370354451085724309380360920120488046876625373816110274891832268722515037569325012329776288665865803475380086317662549983239377728892597782803049266907330383798987027212752684341092612262598763259122460000808655231425363389949018865943818477597793173068929283047294034388473131150781557608983377283339874780326427856608935683310292458007788360232484717894151653629345916729642484116653364836741082349376467849435477120953827667035749713203042267660203616369290862509542003768062530026518844249413443313432731453678193416513161846610711239102415041794351387050411770031560917734459733574995060592196163733144398669041774877742172358841548719870656679736526102824020879964319009983757903838024043584363948445365657164839435911355875179189387092914901732798241855893522082425900965116959219598144675712358185766794093395451276214223134892366007570213657872110240837131614344594952485121991875037456253762490029528583706389600648327581344571981538708422027212714109970309962248654770258967915187312757051619684866112436564588075650330356096479476431941128792148135473040204880199112375807667633846354594298136685462404415844612403377074312863065165513825723102677488042030596454679479497926206792843569330749718780685165743183623792893367305280882083848875641023736688442811495281942440101352542091161989858759163765300684152033056274517526041330304616917415335667737073523429585619896133212407654115558493935984710009276939273905964580563853889591737435171321331194123322247288254386157047431943836023569596102069293378219298869933859524886430377050773188799412447937187161915850575088029982237185615873827442708962891008567942066633107589007419457340373599678651168708489374801880527353507722400489845069126684055663166013865836101082499616031185613127535183668104420632181943667992105815411041413953301451185945171137442000308353441107847644594805880352318743595136682528392700038777916006385915156333410726508352112378116951598703949139577988910277066598250134594682138705382223092601754566231640040495857205318046032865436961526970003998501956185548258320326481750874021552422118908822604652131111593961173918843302158107587410177186684122109035262305414569108453721531399514946389540864725832877906444909117181858120259485009430609890808255344883559486255281225865439091375955915232301695028651984648034472903688159690513651538399235805139395693549858585326846630028314867864350616441814694079360475881333543972322050905889660531564738705883829790504903940797672803056412677639369734172425506790836330148828129085826602719407032935178103378921635571325368383490826681713430276574008584478452765155117691846888135374906814595419014276552238083754119741624459414432527915737730151275157278033295561682606543981486418474275155470814077320704940153039793941585566505932205295303252940233078813847332033431159635583943641894753487463365600158268088757911439519277143115951103361619545776850029076633931262732130183282975500714794011530629686540948905376111406220434555048295815713933276821210257961971150092229836100507368871292371211121130468226773604601729839361355714609853807106244768865926914495409466209133496427687125112231746887667016344275961904331884894828686306294746032698513202854441246328315026494597487638221928375503005843021233789152501712905264351436107319565380307488715043675509728890651716798383384027588578908670002531587940542060802940866602760120119425453505360199574291174138155633206075483908848426039984812381330716502565277181076531164465449512930494221198695438144596232019572476897868416135139665079960050918167234577271619616859854870009700289969617388395317926617395742732252711522499665549785483617365132495139942027820838025311142167032785984831978303385044595663983402345932087295012899832562602952254650277636048457299248184342454344080634741369101458289620004592274107009270362633390985095973067507857171624331410277745593613024939418945973063974668326172620077091540422404793158918027916130703992720287690687452422903610102131446064841734612170636654873738324988322293845209283243318300808376500268920167198259972860570391224655049546144170203084684976034624066034261944089603568594067184963690763697143723947767703526753167107341869533003615113098938638010049013996786475543298216548809851974695383155002189624469532745182538588955010681544425167712189776518250018376521848398108809906828274899339358218436427325981348628764327002695793488259497531411968285190321140587978800754117754227443987161228572786636549872927945474908933485914540313466693188960023623768611444937872996167539535067636718554264814804903651023036245441802106588657015249303145730800884910418378442055600376902238727283644951758797895087408709494422702257834193297949492236382874054886595609339171040485826868309782190281489132904896020542521653168368928412411012750661372748573900012072115725708188523920628729174295966598241940267469527375497596037689537158362909154881521451529139964937249430052275266842957271689887170084125000880241311990719896713121507194340950381811199668020465908708845456157940562256495023469548934867550295776175056212823908611332041770013015402605065646977741079800013776642806699569880247920301612175073748255725357210293460789753329734208147975860945031475994084823398941587367141903463452152504596727953248707899660015243667910196903524399416446236858596536737092054040715886773660444559025872835197929254658957907260321161699812572047606655640228544925357065604507845414263821714655710921691130608946270710997925801462254169493620116054778780876587980357614982751943215537559608755308766137092700704218721517718150195541463993579093955801057425221514619909571202533685582210966431359146962823482655308749135653488022580260336839023398070524447744221024121252475639281413762817450156790097504168348299697214150551800092589788012684723091624729119053167784451777983026568447803902985373169660345843329608435097759598658627791572767998948214007999133050602366510232116398727216374446942918637799748323024664312174547283247500572249253859083142655160844306631258360973897180478493210101672872735697999423468354485952414480281364050150730922157391212695081884396119512478057109404643154941660836265985180048065145590441424901795401402597073494010148967575790475867807475693557436632816965649961147355627011753825840036547760892678364342594592667631694986386806603616713609587054865689794714265034447210963636973281022590443660386980739712040858888659317804448111916999244121632057414657952675062675259412020388427590968666225001054788716638105053616550547037878093362026266376140311372539041123035659331939885330432221518697010478579772954636031098591214585808255656463058346273331377048097617986464581626615375195557876951102839414599593027630480979864535806878803077580031021029089015404471039905791702566686351531778012766943330110131688677216441853099114857240794434500665706223355824119992507173516235268973431315870612792372529613852173585655707776446511574391114055756508541940475474175780267281840892617381386984418488261323313388924736714837808590402394883675744106180556433804755538820362568173705623034530769470101748354235320660006347082505588617457119969506782092246881221638773306985619582987508702467827414928686102035475219301895719879381683838187448184272845204221388511381381555999006178234724132846677343615666748395616502661108320661955355779608976674413344497632506910244522933994913793674666697020725402088632362288629105298706627058050876112898217404381284517916495574146856957402501436993394219120275314726855327721282869913582668175902318156449584191394625184369911114993606990110070664205793167104987684475902320985182794351640340084458868212909303259597885208262838612551930960585847639803669364820182180886739609413811135881545233726885235846311463154510166234499196982919232510311656236438717102039839079388396586985281452885453416811650247207928099749890513476238228117436665123032235139582219870394955382631481484578641057556518232703598146521471405833710162481454354732923052307172901635112630353880975069067767271451576334130791056618272325477319260161670871130963985280066204032615056395029487217745073155681315527333941481484227020268235168156516741388860402209244721408140250896411835111330051663965604170177443151282041208819383235099025913550009738860345212427012216240028298864724192440809476446585735209421296570907989650731591085332964429949214084992734196140644181011342801759730508580439826270097626112836546378656960573658121610576987150186728907427676107258925856315809498025349850256054634857916046941876812428031361231523504609269932463162395774280775415500054325627965591870159340795355280719408067790957824767235661748242750031095904455506102279744068113189221565678482603465797129435207695243434359857949477048320945512035366369775217553915679734465874398736767434655671440593020474083028673981498922808189076503297257916830177097233048301933047122076232549637862108616533627317563244295888726462833547387375508689932170029704185133104592174607232681614231769197432849050414312686376071258639002134678174483719282275041881040802766034724164556613757183980272510428476268848343537514311296753909809755282263431036698639395081445875653097584858659997667915680324567667062894129670668990569363181556038111100695102010807483780272526030044516914632226661612047798331086927963702768995698665283020972728903462529096464625502038293410127910742827163439240040868793378073624311567863657421787074835867772362575100286981271801592004553529470651210881131075645950509905296558403066309227467195884085190981633249482487165605135434571467289602392481158460655438967324252323892067935248832477729314089094406296999726630503197169765167333534538356821028990945424141589621350067282976881642116172243530238143733213181431488909264445571553552806875563806723139192884517001563317261149166470043289216636872153232466329879288030323814541529933820195356503310009728631587432985216506539700757415219979744040940512507334056665194960650406278968818387297830954377396984254478909188973970585460616667345521983758915082585566295685312296022777480613398002630659719396245640535934010554653939149220069561442849390472531686937551992198517202433743035890160773278574008946916429512309149243826719092680447755885045286218862365973897191339320818225052594985466790084700843249653765308423386808616692376320304193212104626165337377671867870308343278821605170971523436900230396911295763470430277400887036241202559734813562938163899834182547338638997318962055591933185203103905485635336079069546542546410561941922426280276088516500908269627303677790527894352687723667945427501557466202432048621601087381383593573215388238068208155452303386140147688096924015275027662330536335758045638782188620396029892333869185493490667647052891794965818740782183254885927187007966373990361273350060797178043858797150222659323399236239515431394444351371610787741215948174232013843471279519226145408491990282908386984598500711523907043826642822768757980335814571327051416329084842589469030529582112809707780136071914300528514304612031202602503178161824241497861458422095794523634841254772599149899576767875607603156600272237885706059395954248903996280864145003029235055757262341613900071742779121082026284059383402457057606028607804225414965966686868555416505292701527572803719602450605299532218342583136351246136622754038615532395505286884065306522094344263755091981110254530544793554783193442593096546747148584330808662380949112360560505229760834351807513932342975356010566237444626178099314071999329441422975803894893892193662741142275594045372713249494711113407599259406949848391384809343009253928613337010123974202830320559162942016289684835693935664664064309559782094028150770940339602466340183314552654545200843329499478843299751935945604760380211917036901003417953524258188157200583622802889974512119782482856723884515989376338811679123050541286428397865511778707460489657815055200947097660324819183992054138218402728216017996909160018421195347320296518819180187013810757847951330451947407646743220143569977502157120963759624835095273394432483757247966206654148640959879033669214590064364101876980170280058326735384620447734120549378042433177958661917089723336156042888047166994354653460715878568022651683005308911637176726266517991150323648783063051691742185192751641403754947047410112657569036347137357011466722365412731471554776102142855959376535756415823236721823548200711486837185018078530864839364041590796277323259540826758433096580447969704952127711989795635655026642315246899085768199759077442933735260384298805077740171380892709255200163675967092261217758817734918719249572891392310186727664092816355861788008329433863988576351594502055284937190471531647624537168403209707105475917541323835642806306181887991824771298378765747107475643762859873340680038781780044604533856516747018729332941618876723851781205177430848094739016349151769615739999082852306205043587218445444472279564581121122176096466618975911789880360414142067847246423135378641089501111481199525080997405408221558733109303310844132790724154872063156690392242501448357969378745827044681298048393377525931174040754782156889662412334157735179602217424124987452876435337855558991328653183785127974578206983149701639419209090906264148064493939925604104581438331700006100909642740824844216423641714012871296517029656095374696200211671539927442600029553142996834960110588743732999289741510311050151253555470326522930743166054019471112956160080394035672032095685412701615937451652108599789296538853708303786034838223657629745486100342970894621120771478643942650493507302532120414264946335573040016894846571640747907199435588696322121789141159538850656495812465836933117730694568251993254603005083938727343954697860672651992402171424788190883766507307315691411289506653003160745725695809460180097206224056784795179057790397601483861638020444101636652120344451627444568188371123873531891308788497930457928925682434743616512679824057401822579110817253543453142456216251592921629284238259577596676015197538042875094552346775826517541312577455301843975319705219650983920380625825001766863013337864007540740405850828755164848675317807348295509482286649277750803809322868851479892828347160520204248800604641258664863696143857265524570502820590716050274876195743863576052158505533723776805534832041537944181233952926218199539580378106864964988759662898723846308669842943447013874520532383526332257615258165548646252887553060187636155586716492310794846652793312134929838954669804106416579336909746319489317661977353669642698244306450186860210030788686779275218868226820060688467854289067088081375630048339354392336533533558153078252569273343203665306125285968349271337447373337599117293981245424956682729628332785555489660692983861562890592836322681017063631390334568121737691035278807414598843141288184118329192566061413712618036354923918065967781929899682733745821916694543827059595301703349837576945763564789139015858228647713319547734506739510305824967316409734029226550063357025863758323249170614524374405555804810602494492434624986687325397845617229688164216367311653351419935804633791638803633547722543006864966776643450175069262199871837370836257283879261172422653105751184583462838132116055384210513541904989848638318547405013931696546409783520984689261908432669361288026709805457636138791851976067270659339388479325530657602148417511073624033654247818786782896019956689167144348841877676831425181198736777537376095137620119177869643367456247816737386250171944720829063989535359571333090340846199511563763227132024514129239591094288130345159931711915635703283530835765554898223305190923267559748008512993585635104101397960930080055462389404396620922677561377192190694575439241647700179143509711816346345281869052527265931564716624037680898275558356140028769887642681372193377515304674290606779260745892671772501529648376475078147818900107695202358766801610337362584290599455783697732762694712361532532590129342668477200926292804376713151120203000884688380583955468297205696311855176111818113033483474853757877830011347505066194354453184879756000653597341108496082488442242011579096512552156717602987201620248988219514723421450788125719052571193089888119507451750798345851792663078336341192054068809247037738722469284616419656160384160571005700453380772852964128787654988040443352654038355893031737535139565333190538710909504700999958321233450183264948341510536538250866994229074734199700963335715510805351209812369035214623739917832828804516452529381664538663509894874304630563399938051743897148067313927935809453358506032715654071843357148422466798694413631138662133844860732011529072744875494021077133276491843193136410086846419240501777724667098810522866626589252930583436870029163051141698750980543548590157783643433069588660947837320747060550266768878684797710841977391049973800497284336178730424548085142877815795851325002892691773348894345124671609860962296315271111642589383264062416587714066400740200750026782727766833992445052343994984887760277908276321583794823879105903804933482635716070171203690804180833958210004241515818741307914909503363037883607910506323606351695738304781383791729637858391722074611634201212597558756742191586207714134989826094644205758861463891769017672090349680751098695912695651837654209968499133171659999405450104573338283344517191262369421023461992565611958542261805974656399698494104479172202347918894353936123111104299995392448109210858540097776482844835601944983164060651511565471860402163631554250008352316367706916482567571747494423182446014351124386735860327008309316037267608634018624133888168746473235655557098410888344454188313507056801231521900080580170177658170949749050268357414400625787748202228174282135971045635660521946125323967987376713332658779410300997897542978817077523799360213690302626940241910393164218137179232082620840189839936132971196017721178909651027431658986997360254406556405784656969106189527850651878603640137031212522596016183573550063064899082488753799297037101938886433388590240248538502524686786201110089407335230030864079492018207846224410041659111182745297876974005985233059167961671690255251916260078608432360897432032079987022086044261911804229708129525131124146808337350174558587373061140075729441541949664167810070239787679881008265006435880991420696450364036001644177499410524869792703771583871589941398672067285291990784878161497611382228851126662526082190039139457758457794561784179711613144105298775057681541675124470730624530462911958736216089533226602709571955296082740580023223484418561462521331696308768268823177455289566525053961382301454252591257249468560523466685062450419521078705871664163507049944268175770038757796874999842022772249218265123366361823200377511918637692747903062219097971922849815015818858799980721761620983235989356566009109822886499955087366197320884191414161121891720818792510097733329531226667549888991035266711295173519641680588826999070579690622870169894464956859907878670527866335038362513561475438161748179785480233157990054652073620173679013822713240129886031959742318958590157260447253285407032378946312967643170455964132094411432747818409038581156478196619126850677978571610706995434505788665999953832368371919426384236083838650338040075064018001523532272640910298088464986168088230123768131045882133402022824306320423671690478357966334238967979090723578334072354974097238023938890735639598657873234332758923418394611089861475935669525575359683078974171064458392539689671582836342625964108027994688214887236991158013814409667881441120733306210497933848657131851230549813588562619568189776515023812189337999022607351173000485182467258269056419502364087810161725030809252879361639609290034551811510027463450071592481511270699442136769926460457528794806042544526634640196955915900731798865774569764355155747772272630663859871391880092302700404243220048201745611519326508515766652010677850915257520112248814998900220675850726592203991167668033887322632095979228839478161419105488175165933739476673318698044359113222648924082803169057448356768012716858613378833607605109174791545023579140602025494070423018566576191587371192597650353345560682187610112310096831943339491472095709977004841723421945268382326294729974643057470346597189746387197350219017185871250590381788575213651082117530465095910682017785157348048197404449720237381188599416451982371874784277729179291240890386896376851398832930258153941900142098093663137988806599540322549017708202685431943892430548637363638709491337576365013078187228267400112019705026415610202575766462560469575597245652382861862971246378344816961672001610264793669689552532852662789943744226891192960508517365399341492622354968909272720040070396573550998326537889437396469858764467655441083411041839328708744346826923087240154477935135391917382206921872482532796209096669966741413410512469164031958090149740860358445399401471999283357456441809719256147024709512571452547358737971337287342919839758105591544864540087793149429578527608646285210111346805481559635861804246029967989582874084392779837169983287536393898737877265819461217227343636619494861685892443500758104990623045582945444785359831651946325851432655578233722253116659606205518988884291985848058323383642331803430135491367856317126706426356468770551032026290652489493036076974847891734865039685276981101247155532526037849686269836902189274516946942028340718767526737760963254605404216119837408531190810591622089279826661187808878018794746153996441873833276514555829750094218098152880187644547644496568952015428742819411476666292640805143658334147736454360217430768367474758562530308516747097954322919297034278257560308874293333010346301703727574766009503644880749042187134277820612811782212529837604429219226265151025287179376502410461697859985715002114952217076880726464855737207226625186291681913788427055679419348512963815372381280004622427097266513944874162247324338051292207825990759202914891758565731410763520470431113725472751587841160296677037582358978197117599401839012425307533511207510600773101192681549300369177159297167360614808628841983983806079769383374788466531618955672002992489554299176856899043118446869303623814190327617644245241132555218962116873584981679313879618491615249698720920861160790205098585493216368561832124535972284757178442969186564364429021523652677870633094822546493561402557298308649843266949413830983225849111832795624532819134930890741028590086821279419011274611556917146737825637001145553985629259428327064922200006398625146458935513180477489389573238773578830633235067338897895376216591295148424959490966521284103691666362813459681535820421290469601073435164090358359081955580990113902461047130522147539507483845638180657540966556307198222512375948007212501855876150749931422005315052132990096682367327285356900233479154974384923628506389385046817255264303269337875612724384792617425864724719832841589444507333305153889351949889406061184880593767550657379695045249008960746743485191350293908896148143028611169561610096388672087606744126066510128039915614036017461438349488915346322614981819769715105640726221102244127045085784774654252108494808297942232780686092314313527900396930089617506153416039691141593523403228151785641097193382322855549027580616229606958011216056654823920406230475079915169638710363442109287579889587725510499112172260931690593142830536341732209326386070606294390428777377901184720670427577334343670457449941407709631574354926919907220952787906166077900216090858560277885356519785801965722728645803796287604523116102173239557139036458348796257748166528934382518801478182157853934416147510263212385995054184811310816888643066417813651733281823667378127692415845876388398966351363502392270282210500058071748373784412041703458751430707540307737812736025843672453543703239517290699629149786492563164740955374120713134568806946343211176986889637237784156853881602336738131440292853746524808135096915275924277714089090761420221924018266193690542122749019455393419137967347357506817509025067566275948322100790153966931959402139154329208081310822093785374590802984807211053004229275961809694084655790842933082192290461252397595260923351903813924610416203708708572129548700198205170219833858820080414718011085659939893830812881703265065675614434258767768241262694380802868161459564192650740208798397988397964152181103835521487420397532208196052079330548673791088246491745369235467748229534814454084413156092462433996297036446161858165756320406002372181040607568019557883517754643069841299231886985893676472500612998369572821137494237248971638443025974843668856799004674171494936819764980315377225792722671949085644510809344711338449652745285142011740606061051403997575026291012923390923353056343455834539310866630571075393410608087950556949444100954478848434985576626095258442605435430669092003416225594941634009420717622530299834281651087152370385315266914957807797716586381358314513473961959258469310729383801323145768463510597839011233766831230472925529646190401842493999370795761050280862713702936833448030861401040911468680519895798230655194172420481678396907979421344158217166236520181480145815672917065988823746397090624497028508228594340982485256475540307958247707231643435832103325519111870204858896132606936950374965610146162857114496282316787458260970565843912431786127152518369710117419105600719412019912562563271201762648455674674601680686394502575804280733101376638473682004370237155335822806283112746027095399196660519719146774375773778473509871225164653181374267627445595041382027616176762335629817065747303304290085333742699437101917081173917527693461984194541732993746436776791322151090886152804890418821229296879915039064106009716757335163174949611525238656672287579411028182905924025190907093692284738317095114272621748153476780919132867759314775101663255164975718184941345558793498004424796765489529157439944256038517261731525524236937065720802013062772772984642973213798452987750693602635743862598761786303008599895326303214495397261575795547645190343505634959245513216512239108668802894876038338618109976933393626302143839472641056530113427882534892808669920573078374220235510389025823318196315473377197004551167170516441010345486323968060721331158562020356339437100653339967096192147118893145038376663196816919925628221732465829170865894684405896154022241431068906028947975030292297790601641742551494134094006352016406891195075580295089757380733761666050268310596267353639151819690696365323095249708582891251366314230329042536407101990189078749564772773127400233131284509994335447367066496625850822315844390919769875207501024187182193095382213055046859468256952643527429250076057017441443396939788124841151318626761016472461936912540283019055655675074262975021168238393429296515517338031428220027051015601617745871391550844426343134644727784777970660931320188650123484858923851955118819084362289909255826435679548804276374094058198908666581164877541340111281076347855564700294940506484009966569205758063370586692195575129168690795386577052298272743508159900180431957449683379832239575418032727617229383413721373167994552437654360201863484585497379576953289667002589787333809232730487290178999107614338584844120921857032499361309588415258181177786380301395697094026214491520200902272418063494353133731993368646278188298831440502262403268178494784810970073555706334033312273507377759128513433988310398589103521346580368456155017443038873085890092458566223180414530658658518762589157680176832724044028635504101545431370715691780162569486173287861174724567280658101177125387957260622248167550615740473322667044853185327501613499045055754633518832844938332233046907093159599924355264261966790417179219419139453227318461626510431935191218969358656692158893530540400377527317251471896363394873185821882751941170600146682333256014876748832650516230275164166651666782459557105483723377238224427509055989188491043087086698503242012375712920189065463164115305916175415380673633631234331832006089599181683793034438928507325142709411551021824899089712387317927642653768319443825350764088592326708946194469975144178018046011547683818467632324211551695472339956893212392069965937806000142496373311951396144816994066408222852066355002414849457321271227812225109663064531892515072807923408575370233430502846028415509882709861597824093778931312089249518251823279230299497211365174587953088142220270790537313996553053502030277211313299674219580229335708818884843237604163301972268498460665867677284021971636624912119774445185742239769203378965595916001798231869300771948751107904766072799565820509559275798859513067806579703687961887210503652338901007416373998256177295942204364027668089614336535761850305753250624591530653841521464397430197946007562249531267010256778948614166791648269002938458709614869077076038516546238747005329557453310979975457628632553638166245113618057608804497518714954246382720255845205711289034966828023500976152566464938039188020280634027331347023924756649241595015010122529708653486678331443090153190183875838970025948347138002216486600640248034902350807682717171018770333820350887502583478850562133798138900243337721183787052081017967620658950609985694876412444107542362488585664467492217270207091714897240662956343746370422582189568367734185286219586363767632452991256301705063365916799293421228492550918372194645187873594913883416137720698433262013561938921549591726193916326506876014654764467462690401629456872438668884376108872346229120263406977836960813654255176779753371886176086348846536365260634706890325934156589821233726708660267628459301058862607718770161414329410986620729656747542890325172243493517778465315112184920147100916335901180550632504150516152712669501318075175324800830772185509298492757963165902727336852360022942243729246542090561343180630629257424890266635124347728742495703219352429290421061903644792304671538563243784582547598233496061918452594655665984255397743596165332255126734718291354228584410279710847596218424880451065434774393702172091042583924178477055587455386563566132837215218721077740848585333281352029026391318506131548025762673603363912036222096108791604947813512484090242334924919773207032222786496449953472008876931830501950604945630204589911272262152851984453203569731846325838098551450299801441725843921236807026616348483328070630493813568396334845779038758951887107709306440858855649236257662318747636764093846610679154984763209935343146877627816072608704597792293348468672010875359109505046559508680433438625056734670324611090915755763806463558819419332386081082543237472753419739828930048601479667658807892004259774773356207376121057280159028500188019012002445093609373456745343073751246519893455924980867107774535483976521535641151498082300336460716851319918188353673744834119643261972284065453666502743547215141415629446413887138036620941405114369714064004276377997543869655293211247799322102689579308148845559501680027450527121019885959090317113997202247539150152354278804090925876768489759930194566879364041821587613923250553016079190045013229166004756767424886680450550852872266248438814211525990738854356077074845057061629482044472414593626630488716719743718665790324700681957610063536285379754378707734947313718651107185710270276367696450754879231911939191512000866832221487736099727406129028457240489981389499626001465053274491079741336157722171549820190234623562607322460004279174216216971597855950545193212175539940736055980095565666481420934280185913299505385344685851331039298343466955765062418929483742092138753563537949174304572196585957245434164879685634448215598081288396610846643759949947732458017036014294750669992610605740924241792048046276740948777986552857804488616917648581987950194418146619636940621059321378767442118850885421099676366908267409244702457558772440185537149308735352807305419847788872675361526994969640537622748418143872818591287731545572836893211647841086108370237924514280643816041636794390320977749125029409278562752603075352403331319872470689063729712247716000893313999170280391228085391292208463881507323691122666434709748519946455910900517095297297185051458711510443401094796976856004843459156798283503843797261234841123572599912962057627517926782798248633973709898298140829503941707419489667549242818961284378526495630753503942610354063365173421871108834433770157940577186925877074574890628910541398674821142379096986469046241816065401942154012212883654748968449661477197673865727736598610924551839289206021386944726848990018043175461922564189940298769743083988523136831752649457747270005107106791830709176286635794346808937981250998654285953876016911651951586843721167792303730997136813939768709994085413733835587343849255186987628711882767392182806231263509541481294211007781568961694631415323319232614192251084419642055381603257980724875080386208568018780576365084396110208941565086559394610733027311813303407065416407109100440017690042300003483873437778780565513799548186527093307974564905008779863551106634888422491487049469943749701419693113440269196376668578081341133263206317036700676067211759800533015794668791001421739290054732877662335766689895244640457773700018839282555897828343893458690858330626429952838509820555140002487920167930988176987157572623429738601148037377168684030321856537142140808330606029552023379092613906736507200429892240970261154743419417019017052439046555343511754375880492763976773421868979290984123490687277006900426360419262964736513839875662355501906223899751376793650666133947564696254260332982797572245563359211143523513046521196548253311581642678984804555817382717779086774560700439604304777119962081240135547339581121521048645581959120035315685560789466062726639858538020760062489631190419244117352196261357437634342968294590471770811044766082460232333728273238882497134158710851638379023746671807594377676187410186782546878267707649536030707883117482623860387222785476525626191863465847489756584494194723350458859608772388610658490506009255071421713804660024646235490077872435732722491842809875688272708108348000766610130165650839475131166270909263656519537897929590507710380569983292351598899428365047664886924680004633928724668404598936114833847460533753109034538923040346324550514406555625016615319488391868768986826932700705166759693991414018991185506927263455531761223827454023561377884201665687754167196177608367906938433484737071153166935660466865174304956736049146106548155115319534438124805077715534536495864345680499108468089005345625280867918088592366742762790894184135517794235874663771297317685801304443193619281189770674684300897928677795303133544748853601845279709709832925987108405902365820943105344723996794320841837575903071539283439032585849703956489810098718293074479080317114093047208541678695575866328397760940610538346652197801669430543252393979668043618387437290014061708500246995118557277302091777818194734795108162805928079720792081628794640533532474306497466547097508154911542696187686451076646006932027212894237980535687259334406882756457074528583980552067479594440348236331952281746676487480400951572080906366821184819160075363330280406535682642223081912375947554447354508707806031829563594568101586922446306028764891518048421498658016907376115860500974831562509038390647386985076620610829177240226528204910241043353853271679552595701650542535355688646993235218644047772947785805721370708013115311635233063801872457296572762840027410805353294929779067508344227673825628474011420837069873846985925884003653796836285256437526808344423294809324776265713359251264638446662570980163227172604372776246137127091840590617310120075377981431171816737967782752348821954466596173110649877780929646339561647047934923808876435250599064493339927270159402133241088095371036350180608590741733385348768868296361768911842720253877791164803680864578437537868197007411078219732697548924831691832431273931660345725608523377461875208264327534138452918152949354971918988662939791855779502943314203770747800222622425303354986768277298566888402275563719876417165520229681904748111437101669171294041515132720504403958197713099775900543676618708683577511732606331030746402566701972465949074381677827215517882025736421165071117445572825034616658811470575774401391219168174218405141027120771905139753472638891662370061829440484448914949290671091989503042322823672862377954234529198442835940164927595112837923332899335485800868408886327084142965701959823284889022516970006026750305035818325985446445359924252947878515866454247038569787221331081138569978877035858568544825040498835556043125657188258563314150214195364434433349110704367228890415005477578077152140589102746772446578959338877742449492263155050187072600195880224672397192269726957837616522327957776305588523379878669484293145892194178242238053676674587310236172106841764788393528641010794151339891898832708375138467310034712666568832640143959338342181859152468859021754432072345381652471071901714439793996195436899787239360272214197773542049713675723461533788128147377497790393614076000107751275150211244465498879856034485667783044244575077427223347142267766320455692374783505325010965001188572963257962508418537114637759903126400944029421047164911657882729568179477765915663448766484968138490542558761756187166348435648977701109860476875879248479123925761662627699625355212012462718417327838123671313411002063375541403358617364905061250120864562651869804684789481098840388712680534619764182388099172270138563014168686990972449306409397486842033648302057728255791829437029014701232664954398163965316564788847592876592891398284228941065719784757670021217866159279316270105640060558036444726961032818263975670397687704475177531974083395014499716351262593333218081104662044245713234655286305527808052718045765575492473397850266410325012319469659094009453336141930814587646451639487801869313769988599116437801449569011042214837253617606236041624031605864590147515408310060857218240790211288633505783553077185086867007170827622612815437526085310578398904436527299743031089790270081497280799234833453200550180932745446760074127590292445915014578545434950158407599850941897943766502351673269231145114925564156534869788927723107005261041474840372161829965070885001748959671805111243485493815365186706927490181756422633749113838421049345930825991098520313963793379265233725486942838202213167663417343894960703983040447923560033354948796556491410223658469642416223349795474118620168800204261672787979223740502986683928895736309034323455582437427243546853290100143347019640521497519930992764113719160692685000580273602511684494065685320670007899089232703426403630074648788621573549000394338590333396459369081689445425823116215921802496919050472796116322864401848992755445457904474811014998379488929926895350708240271158473155320659132686373015285077243181275120249408823391977453225643986555409177282008267449789355746496555347871376654832272466849074523865060161723245977585045660471930758416731533826097324029359513308849184166347203638802811257151290436262439513939957147330104307784571303957467672202013678542757890033589883451208479235177938479148467837818619703742636298342755299501058288066677988262787329989901126778197646847117116729682027480057095988506400561616218749813769747546904991605216567828160557092540520715326906425075374753113796928938662544141724565442076869659494527501652473615193283757621475487457902269273546990060059171681788578365837276783805688927150779226329109346450433351238293416447713699901878951093378556674952249609064693989257802408347997112106083123299326796395259432781366465312619497593389844853985237843251668763431325264761938190117850551930903900479253782103195084672575573486912171225726886003467046926251765508108102823981077685271676396200629791322649769996572275486162447457186784653439026321442776676173541470233612757849630104609446486989997789683716304350129024729490051862016989968389001431637825575173349131730967694471775084552565825968623431729072390266560975251816656536753372152717147944197674713694045720562106116517627335485229348981596993065621024358977475016624403345087847878975856332573223365216978120089128813869835715945582737319205600428820205590260190601712079761292809112218997948628247793246656988455279601303717388797783947730259212893775126143645656923464007358737274717143736830815928834397755329818965886257003815364649154697726100031858666870979741184667642403067316623659646281474428413271096044927986178898245767303335334476673017108779580886495990252163663303895026800556481965450923870122839070365212458866462157627738167128852774666453221621361073967765353851938824818271636160917724921878085511814875133101191930078372823739786997129989665576301852704084526975436165352501286210887567185246517637181741843760832921476924983938342291713948845333362862174345577385233355683404699983988776228399096583941753899199656134246697183232611305136268160577780779885351368905309213564444832323453258245579807432172663860672950612745872445795172931171152312937359231444290734103518354194741893833810514843549519526035103334019744083392809369104880420396141844323691739331689595238337005368309271648007783577834410504053487026912040833268224086663474539906603988544088023428749573639232168228843564781911489762902696558046804447057235571548211129961751723536108998305421687851483275894868844645704603519523309152617326865707750970655610138491375469421057891741435069383805498853738465794836424182681545523212481152915132383849447820901144830478724872600718235281635570408481177498843612027584203613900386095515657507386349522789645049700671101362189733559905691500882384573909896334719023171373637583720467306407466080997271726815441451033080536211034033955437918404381793372716683232310122175230463752791036115622044628800026237656409323255057934847878888749132440754169643168927582997551436368642625451264535176914035801284767652257898348262248284663441807952123058858272397372164102358557012867686764294390504303411866682254638982139428757868183831914961304348259327586863957237194032089772171095119348380885212965695718375966038738284075599461425533318010159165555161042867028727968417389968138485485158364637621881523686881825575496368758544593150070032389435588476765142506339160629340379101747695291345004851951980856296055149484472274628033442908512007631438518234605301021157713027314297582980533632685695618863985269877937604196086788371479663606433905062059100099981850994753689912282283958004439995640040670106993638379057468747999523617248271614597579056183428322377537152998045249286975109473867694211176182717429174545628449467203912956865386245262808040635393040750036490827018828544309659863444604411583775730224094672054556043931007927320185177673101136048332546359776517843976169890950787892218841143889988720321911681868651265080230351225387813268285379299085575150637791421668048379285703611077330860039688826653381768867691957079288318196398591911265409749654071787018343178960769405161118538359679714317626876689633432248883966690217153736773564844030327247433823819557067104417419873979782935996047958581674642397449341552055226101566234459033994063041158222602950389416201047704355018059344390522151483088964943381770127360521314737835380135394784111104316351755652866454744989833020774616295860873685318066823617349406011004839935397101171483721886368421457654829308113090048118911733808417104878779568843797483142248527628308305598124035524804460041654428229060958367573092391716684000009187320860965645649876154685860814631512830841807338496924699341085173019926692934374842165391597647559116057930382495630875041248506556236762239664187378021541874284457476966937946273595708489627389560179743652384219477165037879283769965264834497156861321659238767894728683224907309621477057384981423727534780817825118539085733887749775620283215308550179357076741060350224930276986035439365645470307084726590932794392678380733584844851531179459700325441689315043926341584690412915715576003042613103839102764779983458113963364381614123287217269057240682521472146753627553866547251702305030719706962472868842384200577254491105724381785884549456538704305584642342872181127147572517567846733305731632424172120296390926310922832777467912087293885546455759242469043380044434343757785782530768459610971972334409644376707238908644104015593594343073751218249279923065024871331354823569886376818221667515180707879787170182443505025982564258816383283408018006877301623849368019053797379639680845694401594563386583715458129981899382836097642230848233297044038113450289805331739529318870795240534612558771877268371922575933717127714967456833541237615826592631401925990775426240247344592296351984496390820249298863328892543728645467786890482492401865259880518178413510994873779128180259567277758834142617773244402980281407026561634720167592391275225502465404634695125961073939804569796524511496931603458685123879528075130550776369621943117937887490994116503095206973646035645456645457097247405042871167649565977834997323598161833079172320508001562178799111292602318773464454851133762966902524539268454042078520547913137824047962775337705600950469017980809579501153793809715148347996528286115167694202751875758304478475016869756675538434600940245342176172085926794635554899057359385344085401217282131864502409993665203625971895867428923223758350230349070602153342881005803921379602275565633994378372679732380600097442925984428651696603878920068343273277274952348023442489631493284402036821754834553108078061333930258667764196436629452669108028179816554918639829286010098147095990068179836462197456846571212919198622948215203982769550906470740054514417522431528646144426538735295765768018345095241824810682391067121586143928635746454953734351948133636490487854095306538435643112262467288884751641866814814853671100972419952912434570594996303170296019535789670417865946413688125437000729037019084802857996143019370454359485802019075431822909397491382096698659766426593400584937178224180671418096878482330985945771661523342991808206354752367593500356572288839246229251610642046578526746973974038730460446483195985660356361337451812160866310520504104660960661026948208370312237440789912077468598895475499377613627498262265188811108048590598122627590476293769938915136588828452299222821103005073192480346109117468325308788438829438360130774491799823370142038348589432808254639772485254535662168004684365030797972504794424602676713813360866663989890623652113553277354141691169934215830169352080407090901354868148641964983094747375342647682120083630873078798099632408656025922565586680038401157588539556366903580118503896820979527469773120577349626856910948034041314388792836827106890056944105147503823479348318577339862768241319157652505455919473342158256885939033390114106292560481842444895095669063801222557025390029281415112873506003691834919080865458515045484213326442449693407220710247022079328850345551981463602691232117637675979958652091582117047895148894367368491446164787733320112738786668762371255740176667039838146611397043660214066210300798344593099110200137555761171679977264698606086136217918094417425084325394215217515792683638731342312875381124749391462357609632903536744912595095475930539471545648054137860132097337088304694691834132693843377827488914278055239680602366892115858994520925378643177195882492578789993306587153850111726782683244464627058964302434011330744437415663168366463628185070648535615466038238641223962307516772182561395714818466187498858869724883273670668066380776397450222810740285569518194414925943299403486274044565133271112769099583281634440835306724502145376167337234477476882540264897098177685173685407701099710429699305482945399529192389128714860445777347517856624370909031427675729102809470041687050813524526517408299813403677294174525061534816419688610989704987167812430041399424277202248869489991541115931187316284109342536758365213006656025922639139352783861836475127426271145781662236948355572061266897645195606842597082218655704362363350780080762414049190376536423697943295809323284989531025687704972684235800318173885436375171751093290935775154962045360802767617886615508075167078257730966962433310584140799716204977106086004804036565965394465726924391708312087203139907536588310365821731278709654717453003464153063775799918460398215211167010520173548819410373966906257423435630915752449843449108182245383309672682220890892565457608146341045190131938716716011468093737476270440922252583930111771805531285795707052226798985572801270337425766345376067589934891082168860685353948983241131016922087136294706012662978501904033582603863776824538714361877752435153617294697898070037847184480013730626783058627868219860646062813821377638248165254771024386369466225152707154621840513228258308075606147490284385747125473909100044342689715672872516726234407224810091295675385470255751547972559671946586128113805820626869055248541264007820091760628515023301357232644903142076252151359167973574131786633483985019293832413091623603221227635701258123211481567734037998468051742016116539045568413987004513305051518735626431155980031742849390847033022230571435988394855935881775064503263184083715495167492133989422326244133971292722198262879386281375105607427535979705748958712582497470725284535457520776618817204086221681639030203804107821015230402238679094654263022816029162004703524475930527674429471399964236222903380047493990279725054120613001764553193089404754387624508626648227898065655056185027220661712254237276146593225085432628780191238517969000733212110975787670177151484067998769504920267034032965973064550881671761576642590143172494829447951084299931998224200839923212972456168959381485896832641460924379854039915187186282370926001915870806381149051888366664782211847055204949648728054423229807297069579668900690207067486579495385830657880233989139488304776532449972135586254290185353864284119524424796383053671230579630501886711006160988440716770327392381649681770292920549546583571617638291744176481366632008842566750354893035231704295967931611951195782253061005917693723413886812774561178996801108737768704142515583956533626128583319817572540864913902321386401776179101863504049713792325743668272248950222484665088612447647332891674857556880706781532442352838518148523537727558750253748288684566408093691509312586446464783246831979385701154504133374843087645112547423030961876724897530730659769575305194638205780935492572315939406330135756868812945756579851375516311241386750541453026896008887629785895809757797502947231556219395983003107430133374536997910275701703582719528457880321212231957735876086602464334333732309604072436965041864841556280136776697933660377222890191262850714910757201309585508643293824819674921617216886142994707482063516080307380241576550299741791832922419158739210262618987984761250599865278691115897755602272039671907895629195394357254376327521050679376200760647114332176945620744993272233658755951876270876885737343520230630433803001567469095983508769742200164981135884802672409701977060998105489477550781075097870552076411352451416209362743068721022556663426263934253257887895724918733884669941787432248124864833843260440529744198817805441231824485801440586331179110307626335553987156185079414852519608126168452439583683024288856217730257191784953286372390752937698701240555112154375476016664273935267502989209294212934738451190312371986356710026125681271501053782908914038976791437251642260389293695552755621776046007143702277836755287074070631336683429056449595737071155609504965302959939164580167757380865424606366708521644186393969917699557768214004792258678207083377065219915136362121369505470815806502998060445388058927439990786823970750378423990144929071232213201450088045897745091618362435732824653147473733911095824544143602853352336522440311039518780590145043177550745103765081435722964568185959597795543464223221488177242498369898493683982197265633987331560761285141935016007720552047376781502497325897357688154944023264217611100246777814088842288359271533287803141168694793971870638022801459260065980053435566329060960051290244807088834798376862008436310166441177376964537637840563270700251269934618012191611472027491453768445294423835398558159563617300253023092574614834740666435486822941414995240829865686355360680945076842780652387707201399357598901457466768826408657078894144504299427758033517532829061771288531366798358575271218277689244119178069192091497895171666455166662406866765161219181571561545892324145670316627705725214731248886932193001734226773549803143551573800193181910177436978261325112908629813027754870114845060792564897946686003379057349495062624217703751074645009255024093056620885094179793873555493515915099052757400979124632939207662990700420589989014876309685314462282594398477647153550289344845491883175385801602931380950086122886395369447452075307213966165493622600544145614149817454100023929751558008843312440400580817327145114423262938644088909904074960093334208200430282929640734425327450606944985266214151456855660884064077989317169402709669161205343599472070744545625554263067236996196705882795279985676852117162325850448213527627471394795532023805449836337140608638534555514811384485867041504939162841923165330905461263009094968860319274703821345334249683452101358759496664128264684570384420201144692323234808527755292216635619786263396228485946719475918611942187438807625545755218539427322321059975656748994847132745118842727608965426130641925666479319655040036499565989506132119455811319557615016040747044116495572212925431097703075056878202992822397849021907153332454639170577241970100739852968210095281063567314572461716554762539250427566792140761888997606333433375798710065244151781846111340067371528470437140189615221251736080924878483866616491941688855113160914577705512980732369584766371649851191312280997656416608988054193493197163145635917903117821948810546890505309960890174919963781741746864845027094543862929141052652873463749995033021350703775335304698595562578040327268532021890881936793880689383933054674174808881980251138782584978055416738891843628947631043588078282067796171740535076500304930292700529395373669901254950135988637203337523940040273159994761459530361925858627407711909715007953802833344088796884027896438524764871071098325051942842381037520735820430388748004592676183889142049545476800326281621313740715466927224078892226351872045690642187366590602130194860767750162492289187674827738698274380602418944871680708118615286811820282589599426202932383671944786130226354311779760504665364393561279737987378389516931048672987879647743291628618721980157567268205407882737242967291200813248696310122013374423270928918209571179690588188972791542807889769747078308298220563533653642132096145764601195277382978957985443407681622051520569412380197919706630599506014329060325715816588156867314610575410445519675966000710465696578854625153924983867079399239756955886588842115789188574815514028888722971925941748264068363883846691148077978429592018412398536838897588833594765139907908189720649467358060495567485288958606148673406468196138994318416622978821790392907335367093170391440396731792137763148373901140246991739076140512354694151635258518715175100685277301186395656456758413714065595899768628574398276816691449749956849235687861943745854544985197950823135727899229218303513695262188267501063824254558925913801894091296660275547900412384826762283832936686145505428642663127343210844262757186418630611854115315739560600107925354415603661382650589423969808723212410879741613136772031218971903625845453623721502136893664536730189791173955073675142116441091224022071946306352501006360393409854240754905375548429463001172500251852201018292882719254665338815039546269237440881172387686045528039043621907429325204363318630975344802976671672695081630273748591395092712280561968524982707240086626251139543210929856914979954016529156696670325271324241099192207130019198875769998768705566419190002549539732527457525223844342140758193117072721721082734234301022817626220271596911620839208898085496685517524497295059784614910401130348988040780192209799306610001641776477464340194037885908128031995636850469908970398421730150486956161577286847366833904632706884906082700223638707275910667413924269888963133069990238692719192940322561487735519671396985318931942163084889307800096668556080629212735745045917820117527022174449443119961093086051531239709052589577140233086580686483805534054680378240269325809405161906171236424713511306212020065063553659871801190514786118409864249878780817313775869239597761579463077033086934352864099974221861536635243532774942102381134194331592501934058765116513776850816056863479451677932624958036296336365704469131293134352192009141141377250008834331829233253876138994239100722858705743089320602593817859439362222799440956544999900220915795292572429580375549072010317162046663995335071280076605152414727652145341448138552969984208838941908706871465289721679884083298276042737026482344888375340766258324608654836795353773861942048949582052261973447526173865052221205391808541678794559203662845788639187174377576356875627253996061399156598381525556497984671162677647620380726066580289189267012166994457333665697036465123900251392467772847910663101851244518150685203478066396804034493790426192044214843473280911972063084230001032558150046832650674810709944953199057567729928387303978303748803359229104813228333207832634554848805863151706138578565561563821117771967298907088183066329594087425590632234105611868626153423919308675244888626404708666879707450677867226913788841845175431633552586750109493845651993349089768824329384315003573637988666899460636784202202324458529950575633768358482239401659206835184445356847772849988263824488462984063815636071624105547075248673935037339104624311200343638655631866669780016474087478871904857226301398504760094410120201076429632117808387286869273481531887985440962527072866298306700809099198316583082009276168874819408677535057554188023882057643901750794069755054728833100784818259770934296088644795029888774343225214462845386239571748404281941161863750284799210270777750155535099581296712179702165826461515257491258791212803658291547897035251682416544275271462783465503436551715784403289942497127621476303121689009513472341767245721541024356055854597717568808007615646352050760972122072103256427357726485073679736449100056602504520015263083112851393245110806579541647904540685880186224974908361071545310002732356528814075743087671009759233483101928282503057818316133773248702664068294465363271807613692212903352135180614079417262644147643735530519068256879186611304957195685503699502380023737341016448813053567828251747799463084124013637155913889772531596978876273665625550529552221717438291772588958872001074509465197188539485631839932673774319238602392551395633793516367933310569213732941404308953369718634135736642675435507898519617198381490579134992066713337326522782762978919982661275303866796399310766605411607999178980981180870665666216249032819726779507131314772125302669037649232337778726987110656481526737359939285865008683169937806425729998103007450570369163792898377702081125963874014995362886918756105135320933530519388430278835796276055663829779040880417575804290237661369504635161512606417662764378511808327128937454555026479232225983664089160903692890931680265249373378955824980867879818909241259027609730940204349043672607063621840310888743048859315177361731922979280338173385709485320582527604274635209158934415333152946138707476177497170911161758147348430416658140219170241213888469763504117781536420998801995991496504826513186070622031532770953482542087419945425858334733266012875605882772622930575561529252347338452420784558847388593033387796410301959367249368023604184894780939762920739108724814379580056555365359835097536606223685911794008535973120710669900054175105943430013248104539823066696687379464667373738562025023277981499879070335125648037306170473507345978969853630867393658520870694331103604876542999478214366560456769594922706790812054082036288913627053850570852763032029462091241634210414204396771965334394606554684583206345995837430297514153547767944292905359520991951631416247770607572067437461891227723042597738836492626343439670260095691975633854749147510567115327906804024253716692238849583842207467289468370143840446970330721781090547892481294580863145344420242760431140616664284341613694556549815252489250519817948924504437017054500749512601159132055001931097472609058721021583030766269138702049909172712896594575506725173605147833427483277460635617621745933213327775573199702033494337208941070103667707430906158625979204736543092199423295165447059570043948123558504184093005187559083701659090326814755335721031924674235477988370572516406665417427050176469539557781764922973277739667675453622443206808623845899385032994391240758919584965252259206585076467343819474033490340364942513798478797161560315625059173510033363981092867976222932855720783235138779425291262648889971275848070103739855216359995798675527994469183049863860455010686418933467553567957597171981502960353085397573910145780531182084581817627465863467470326896951681875831844713492598407179407444076791087063330447801856556936830733529261356098215207187537407881412611002533421328683700148924471273085865447084538216667790888629971954644060083383584611793527087730447767202398943440230483256074160170329237150092537534642882955659353999091426202568968336201753113722976835357081938312881317767553176271043404663953115782128303881018597305122266494070734741077223242477720803838453841342190656704419689093338978057918257600459619641313103722400738435105015247235300335283468236061001557800867358092761126553815898719953225235378558355737542719120422882473340353573960034114352879856851777023160909074455974335978291925822275607230319436602199344301269292916276064369108523320469482248355767911178545432321953302471525968015873795684096103622155051902009358501216346845961292162816121630930596139821261318648111385044444345097086877961862094104165929768535994478638899987020317825731499680426695329321902963822448974834837399637824895301595731319199503445474909012973770951381826593313378741079641091977415945909608441456616004825908885026342979428899987185451274115007692202757719839886554750079325274706245121739678059412342889953306353992842166245507217579458350279916025292470161532849037425627901978877936020731070889152676728060757381252385629896838265494277269930441195427197608072777511859929803266646022646076704717042302692507039185447210092541530074987841731938761506257989017307663752251846793346088451938032675835012447529178917627220866194775064165009819375672607497329681165097117115680804134606374706622243469601784241970354687810918532470215968621676576539238898796260927037670451374107639486950233538896218846521985368496780620322196112959749463552715403067741938236395443212083341341578597616766519069295594167598517357913798945257133663665900753164782943402326488107316839311905582056624513027376652532878195357191459301184264942243060424830514092834743375094012201649452521059133229103854756232737591152371958843918915501603023896611847258068446951615904737847229810398733780588522852114447873470743188904902134224280926798430715203367265064255502788380220962811184005220004629527015416403405935876042760765841972885361333478886938575208720863537198943208831080089689719751733250202425138148452038885084117951042667114383917287758231450099246691272731816043081563450694482753280703423852223783114743638078781453881030062624946315848952686759933884942880341988676646607796445852897862262904990358037212677048177751146264261553525358008392624048039696478559273849352510263626119479770920838294498504107357219206967135161880439866869133764601004638190655690936110005089250653828607623346825196811645640745844896620107382581030489625903009773616372068690090083349385004697085245060951346758489820677829608090468935939985413878914592659017925420389163398712312469021052059819114479708859563575550567344979938109957786185486012536123591589708105152511852337695347578134859948521111589918032067456925808941498630705146591243374883503419257655650717842829509453561271185908082698868038484836334875113501158337854334265476472626328526657008063110182066297788669087537908534533463009483980665827029480991981942899961860514385866036245658004813715228579102617782155857456103726397610577546739468462128029156401408330160523504355028322428173379838145662021666258933217930662326368751628080064336249919566322256822397157343432880328438603059009295724784496746993337575749065682397856888737642118721010599603818881317698277582626736580788820300984867873890562133597829167230643272259569956832674006502166645960201273179650922978942666860230639884347582798174402725058541587814968326879487900914612165018813322320395697717260570297364793170733761779473250948494001486115004974747362367878741860642932511335459146096326220286322395210927987150296343836170997684847966135761787463250204394560234458998758551406237480012217733663156165674938578408037527253306196195921887981835050858239429452472948662926896689515719870269294656084541680164235662494332461069561271097766290434493769190034730107753022054051805991124529901282752204369081646403635523446396012382689051838764491972226220589566257921081525489081978710259146805596480603938920577515347424676875358882345366153410213956453939255213398003997135900286735945113649049909211658838085129604936556123656625983578053189121338311301533418197590772987342440959443123497967201625115965959154911806787701424379632568797429255984917821753569890537429030479581352736892643971119713907351664761369131008154935928705452491555124237734367632217970335206305164028995788286290722564570689963357268048360879659277590500792447224902713220705887306894520426552575191146597195195999212655622503917309230593250653422928897260352343045984641677213361792773967757292837185887638041277157136923297027091328881744026310780101123840303841296826921260330375130693037483108868952166576086844466653792076013031942242256433425920288600069057657185706907101271917061285211799843497156441835740088418244348394092208742477824043764614216788196232152307598695401544818639322338033082915490026524920183183201938446008942541326604419066509758135320215823760870449757277720188146515081628483404826364285569534962706322181181082308451403694424031602413579119158241880318779210313187894124278689978243604465227584043050164205836078963505600660568706776034413418749600572579269141876865093935971102335980564123135293538720552112652897066268933361100663234841948048621869373044821580584933783581511702291833604536448834766305761287598905521531434603546682014228174324337202987293246338784543964573703662308802416854111818012167266177584700359609486001982173145261359821378638586501147546237581153258028405876324457874861661394992463130533284110536934676682474734550662925789016523106200328328599534545379308551086414056343358821244246335346483973510746273155894188533706749443924488081902389540156334115477734784596612673960355751620861281259222702849458723659620719899675066654510347298893604557521561840888835763375570683567786018964910849295920141033786766283594555144373408053477566834033436873124829230704986124056662507363179960772385821989293531105429671572890178358062914850728749055519422557630029190096330650878689993851035666372365364166919659493275648055497339894190942095743536265579744338118069340600800603573845213606137126549699173158366106817212890762786344742988701534265193494639740164655846027749844247839953230632255319494866289014527773842367440550454920468735677173899220859988564350622768877297583305422561310162644338693650552425302497383716442035113208900219625052562524332933600454679769648568176627477003569371861450481263618336004167779764429572596270210008670331369296171073995954784552265692727052025219176603459554648059948990999162762078459693987935671532602050967238247832761836871179988338197745839793114153922734525155850789121651547554557609553358890783452179670707035928426956798217282765948095579853745233599244612528091207159958694334270076559947483666294822217033205275758274205595680925775947394267078972000536623007690704069550711457089348300867292244500730231836285286104153986606825658523850102971771551710465566133553202655717622928989459212143334305268941468885867765903614635125821248162138260061222895272394335668811549761613238056363794327903006463505681298914727584544494290620764233273824367299259572054910254865742167227144729418241137943812876445970310121210582432172984787690833460917909032951586327065611085188412389558057146531497105580109558912424826212147506646239879520743832875768666748508393344896498452196412584109894240389812920147446127986618571084884156200142224976514970688097861951025765284591839022538288256005516845709401999062520473618893684561838562307871122522428662559957176958959009001174222940024343892328360622885982717955897173898545357646743858797625182805347802759724165502450208727024768862200912739128555279694234251413655608735152444715917462395923705640758929831190875957977819509365938782673491814126109271301315951950592883110894549573074864678006581631545338944856801945625735514705354965156792972060055270728890447965017076393811841236083008364090819012627747751696791507131865768919660013277376424632350293754565871922569752151257507070417684588029042822072568691685357441160195038656526760583219938418218582173489459858489035798086002484490291853266404609387649570412620550240105655024439907851108843243809947073732973110761157714584455950200017045770437398083444631477230027302024230706728335210260227503655253674549943500358632499151589478196573837158520855280373295392468012186743630340409897719276646749279866441838310342443061173127020690602780930567142949237764277556593748604201765346083189285945861073174053149573072895923994110352773767659998361186746426187039490527345255288889454862378949002601887903813098794059016604161662962603486928458763260317096562890947664975158682864482936379733070490122866662933049076998362516534592482685369045477154618654963420444412893646206578121967364425020425574259480832294912773232481670056527953454318841550637080289377458919396060531814608962015288808015511621956561506623023429274827129223165523927240425252315617239887879007763768331984490035320021006027201696590592145759565330064765713087681764632627614013699992863456576795823699577097463551757690951299851040211389154538082170954237617634443652836670191447188618326061486825527577097613454294236123034518639309546014488843855490260607447701501406599742685657230454932416630185479831438387639773166655301883039488354685695350313506169114888322537341065682717418625838940917331053443253447119895445191640212198488006162932774989594069251985765714430407558881632801523407478150837600556489957445817537565677107861978529687049131821641759239078810459811889710037663991532223596089406448007329223496296773672749143341277935595674528008026753286920386905417413175778800530575488712784002996078806282661564270102879127519779628948222781516971362951232235393206430606490099005131633555960476555464928601226329128917348698909297987032528316177530909505580305720889021099012801614931105975142478483233380670349632047318834781681030502172436075497058663076230890645903349876296049050317163314029584615396293935619252649308204162968801971890653079882964525876986618905055230601926689553865625460552491755762303535319208110852015606651680415512628954079701700047331907916081406195780537547622692351099863195957662800209545179261840094124999152411687070698177805666265096109118848329782141352709697236066518378377787621765199652549724575647271816149636388324814907722321537588127505456411853448770669207974749147752521164314808261226335162884612148134275243146123213647418866760272932547586896952038387792647133262185275493517043360491922863658499246919167072997787947833361208729600797592799854925825635020979418744600081879616686906468357269610500655970538171733502154638115761475888701825795906522729088799443530670259403772252803914822296010336753509772757840390391608385026633781795193990139664177994782205251735509482439848821414323800558178032436974769664612968151580478547812423169620505814804466585124979345309437144178389466056092009154556358542323687423078719021923488765167378223771611803797587540189653542534518368823048644386583750818893358137481642767906625228167249338518476544577872443400841547376546517722610561060430210788878578392901737403869990093785722619506825352442575125221018547731973414606603122785423332653874533587067817671932372304207243243830185294419913620191426332725745137666786686475620100238391979611513999328574798142461462790447351881497697854468458781447441223836224496544380393111014847569325280793866465703944722160599048743892707232129271548571080635896288913455517922850730569721543123421405813390891147061440008947740366827482548622878269670791914927025979659915312207509142567951104208173816712659219065605090030655815165931073976266769717046274643443337225853406495525962806387000902844009408055199260876057186950521860753891613945521154856751687287708914726240177654788796490867014641698299503249767943222702718067105446811660742394970441362787171483222002544485754175737832655539901855427337028202766065350774749682985404277721658201704496899109353679166575712674935651530687902173843144513490922945347899406362700548652722765254852108753438316429752980685425889626675967622560480921597247088104183594598873590815397389378063414639043633092995678649755231942596181910541003962872175847504627799000275619602600807499363009717792014020410434958865914086011800793863146349347338009000794205922957590566826496627454656864360752403496930189878450534261781364351680223802591476797164600357162292794716013963303071104715124310659766351122700167765247093363437104950946512516436165817175599744692610312963769150652916161604962645322922280184689020958185702191683953386131195390790614744167580109366018389202440513269356636265274778161899528103430814426424813164393133160750459274641518362209156649996393735001717542360185611514235276305276560693590918286830755820374410457330660736192462498780353896606420767025125073363321372612901133175645166190921839293288389645538741209964026464887117960765121673207343857432173637209597685768680969264159367479553641423069975402369579283180042444162470710746924923334877193537483285303956326066298220031665464604420891351514070837029775510317541186961487264883745069341799650346159487541437533775553689828458134659075888171234314972360637982559053442700639454468707883248656020794966335598072319985153143619862945178535180718198762512197695984511231497043524295350414990311943586422119380307681738533209133039143435924162282644834758658107625668864296346735348318151495184888891494704191046578128778770032563969435861290358625191956611689142080110707976141284596451863201509339163202739341281276110278436308885419275182168071953275606626415141117780145131426920752060284657894652071348584395872420514866637509741238641325661451852949450025273777635834663736254149583550430251953106163627774084547284502611469121657154008452125855507061943347623035639647042095139606446405139405217241977611394717931736607783130176138725373225985610392152062389425538378152479327294546422192217714248674853332051031118384087235628927500597899553437336564272136791168093409623557603000977387334210667898592073928357268852661048026959517365612440592020449677153514090542751655732470708252045749803202019144837575971695798452765882326968913296402601219743682321136130475974878272616758446962762385195581967610604068949344236982110459496366787343013492678753487799770773441258821329134926357097095952756977660625729152274648953944159330155970994550769492995917916668450839665213708818639682650451277369433205437252702361352883042120218128514131034508029189982196519716807886185303565122045057214702264153144925093660834021881813785411408152859764233175412361318532706080478659529007509745496550741418020194988199245564673812038546678594691773075032034818973683062867562598325138271215530346497836086143139072884189304250943823007220878225382499082607753873409362357820208709752548662000233941838206742085977760579724263358539653426706484012938163352695615251998228180298110458006963925697032560791431081519443115221278896984077379280698706101580999222458828340736656205075070137109623044065256793410973856959456262046958559846114580458866518370481214839062438226348094164883888416583164196627308848427708072103507362496996913521250271417104460994595200209911093470601189617205121050128274734184087063870788019180495379436494563525976940038451154536777331217376955346509855891721966436534919313744143845898204850754102302777636723728012469172209119941484548326034932833162075885770927134986332160251449701136953877907384113014052995572431682099586521856654180609251847396911175375054049859329947601159511319158435444634863056131986100508573808261694637752904046734241157696973951782729967304990793917160119332760915755656738269252061009874986811108047012064175676063184590958646052046247825357010280842320387659088084269286458801556100782743335771700802518446987227386600060974936902919128467132338143733611563699400159300091221205842021949762918500918129342359118317704683015528236613565188882899478452048655188638834336695406322691821957693575960696170681375977983990292629062726134973121090453782117481716925499382693170374636825957214463012306255828148425848993215896540809249179696109683477428260508279651879171222832786479005518632667004961340970524464478159555493506379480850451851552237837546025263908275408386247029752455117988075315228037416525692227906251068036390165320855050324476055598260128004617142755119044604297794787769302938041101397279440833739901945055093904839680178995574783601607307196649025534153112679843080634318820871586414055671541906759465486951265748637577174054550144344032171203669786893079149148837571581261859428519592914532873070919207886852552562983143900670913899288895990721124449329646992003382387910022625541406946849943808843212269217086276421542234239516742855196101143618459495444709586787819922402782074506039550892856218200394443188809572916282939298881786489437695068102728357267642099986867947228807124871571427124102225320038934976144203023794939896158421704696310830460726731252093913122677907721811136345420012052296513511896137841320066605481648920854464420354225894343124064058660050296066895556565166011640220518173924556249696883250375493684644968770666811384362270524146015544087557895752956502558519995443575671206502787211440952142939386040481146568532427630952365151118632188195261123182154699022141636250634392703015933994040185766402709771021261024506376773586095466489509741136783062142684011966465928828278664515777474612776655495087672972405726198254431329793245536634966934865849265447519924169926926786640387844185091119888209110936213654627455590005948735001341742128299679564326798302069712676482118872224616062904239377908342440692229287686180919316107500869680986004744607134075891936179918079747313813638152667441601060772290333168900135222717647839202912725070693587261477428163257700738608474604659093660188331596029428756191884402645583223370736130559934446126857869040777503486625520195481636554692035093014544547254866567670550716005015868259812123337044928956333351880821790780732621411113110239834331277364426798789635998895951275011860739924147180744880613284740330067258686922554648048298919586101364929086303385075868388624367000569579628000629335952355274254739268904382176185071881651766070181924997975606333172364799625787796751527686914158950545932454849884492110894091015705181554462705845613150892879826637535820305482849408156496084072012143587775219834544551149816667210014897108915222244562203869393725964854824990229958809905378446420107563582861678701793788176756980030430646283894050774065694531669571495881224880204018845413073946772912115474386012785725545479739248350025756015411991743260012124379285541553038082999040596229292440719944106267352705912686855290294308557107435358322952556335160964057446550719224605501301443859324975413857593893975514713643005513646439776160705375109703513295766035289617606907728340760776344539218925785230228287278603985368179255018807612492952271426488715803164238663020205788065434198029531625794585723146102907916290940456071170183018114104678647330951200545130695033506217173910506514297131354330461682932158038764571988983278349411876479673149069958505242298294919731108800030745834592802742356366529664513615814756569204134742350840806058301541968089919946342567964931850830712120721855061335399480538055587336055209058214531768797609647720633829307081081442859779791514314660294090497641183598015762839691326482994948820972871730855453010292389018732259777010216100441948127342885180103926401809873600217404324684377879500178294890055148431681728533619884634295528724697882328458947252021842670752117710613318358199531708161546247347167015969991689103391104279649110280097002991980974077727332624349005312065474499672840998599188967249556212095799119169573919101511910484455107156247728132956554932333395042401300080375258973293200750344934016985661556769095672094382993172310643379933525532309497086555808622260701426084079487304678694838324975962096893648413763794407208654157475832236128993143444047707007585810040519387549647312328915552937360729586843463056010014153205261922135384806416007629661759900362545358156013696045939119874421942147417711081639181831883210397199957545519489683864096127681809054319160763522805493680753881414291464328992708561781736998879777313771835429430371049905305473844265649055079530674741263706114450882895651775864358645756491202777631363145048721966790974339850206107902569406085021708373780831128608215771905787462931117920931027161166521258980102855746012528014286189415273624551751637767829917273800969399381570334178930719400869340099972997221248015676012678232759029616082033019311062506024208065298195356718473065430465378960582542877425318430767215005766001082277352226964750342768990786754431531158994039722841445713195696588706288998701760634000896884756154386460605398043266907061273986788888644095097542940885298331740477329646477228624708097601194498311249283237819514836387377655063770343679454182841935803798596626870371009501277442269075467873518321738769873849097056198756941888320190698633933066841193399407197126182055788680147684307832225511279710186561290824691245722339636634251329573227958459138439068965137827615991078366077473488213223445388737323570595317258742731274573092664351484508355166590786707143746802248406832571587040651340047714183568775056649679509201170516249085743159965323573410847255842488379531208874541204806178791834517640711585913481029933934027740562500329581023545297938847688341206488082050899910816859239412128692354830642095625499156424485702166412232702003764715578793047384224226699962166831858745868142532470246606826974482579123903457171490204012466429364328792827621192478605420179324397959325944342992050704284662011969182469322700467218725351237793230176250849051189789541256753001987763067686400276317548482707777035351849643692559096204709693574147288982053380752226154750052540569993893434828685343696619739871497603317285073489402334978362915496851574068175795812855357907376250177863266921583767571747352921761531170433671123542144942074158796616099213987779787078665502160726676209373886690755131339786420799416397499020452606370358761144705694115041033874009219514357987577790081460971104395052281802122831362146094669969560101602229889435037893517855013119236920695812784358839285537640128473417060587912280268280458475266337698116893130063221847355112666542971700263941505904185016186156672585062148817944150315033838786372515327004093911570491484088694248574810149853865240489551153823615196266880812818500907086095134465990453464112791148657538257912140040929716140138371763871677920269084758799535240611183914848440176710290472735608120608020253811976444128344084347720125904345207602185415775667973503993667193211162001150322180372888558692024606284835073321334297261387010323786562674500419773592314194565146280810268530232949275447843368296052183439089543624512904947772937283430142271367498696981027480925322725822845941075695232807214143228491098205429043406800612187897657182633463619453114588737762238544049379580455393088410967154363396990719700679389862535944550912913082123216575312651958872978385383274290296510474990155971142058522778358410528340145887534782759703237352151762894991933109502302048630432749984899011693893625489146315522367406323755773489707170448053074047425911479971388283396338489721601136301131383054027649301250346850163760842943521149318269100166099160707277641718535501890484447184703290591328375369857838817054185424412245746774169766330274216274166930030338903602797344278017707471184337406136155790078234219832803844632587718179876431665473715649608078631419128002962004238124289236459725835580310833120935337720664505353932137413302299441835550699114267155848385429401895254582837493289191758561627623156986481203896290370526813136295247441135976300224762107044918064641444289576843085490771996310042070509599119438714362071043899434604883179607294412146934709305371515702287802498456751512703713622695862867081758546535365552887310852838882654479619790196820146176190585399804321110987381605764500831197814612917459918356054146567229062081008551640795768429659078391504338793836035592231856695933858567455203426121768067827397107315598504760248815014137720906414873793389649106670507472942180683822909101058192725505687887215867724349650542505150062317875008693730589861564932812193514044489441939911426072213868286807909167600458256270409993278210983438483700508970069530985364181017317522795502289180631354862504561618084133028429863256237695957967418459948679248424197602413797170820220386880650964694722378384447341843825761436632175908876068006539864305358531281993874970492333217676412194995230377995331990967228075059150883510088298791606120536426006097062995898129709114150880347622783852930039104734887099681924115202507217816758511274456739634564078251871417963487426944980573081855554158126603144533729423455347317008733522504765961092671477214825861587103878617123888458551090242403296031781461549200721428695821774566207603376290215497111552177575234563885610467553782134905288084004833869525634791663492946726598768287672230349904359599797658795175422085683986016065533538201137122079782875300222739206949814378264785325270643701362559058191309291023282990566751684399207993315196696207808129497821160370067453775984392053010204344589202440822528123624821060023665183178647716178210957064543493441393460528537055494011538996074888807959269890105282758880661967218080283036013953015111538304222704911952334785130872449157195875596848187161045597823699798830539129556284960346770831090595533870631178639301488436053557503303142796631979021951275861795360394571111187821452555994750249062651502455611395497367290549093033727222714324567856301524997349212255824550224691206003772943719524810159004891277771009302896994371261004869017645973201898298967635922761450339802526290589250960308920465614362732698930987213818083613371623416061147417512435886217311939777662492069602592805797881042851406570935288891820098601248127022740118017201622003198401432655937502047499088450227794117819697688773521321721124289699278282596276765810466541344610364057967564706184565344545366062169504120131191704721303710601400822512128963998104416899300727207293409741373523397944032682101190396676324733055736665914689236915803773979647362756695553033157174748865214574379646736793273419867646284762998506209565856087250465034448138752127502774483712017165463540033677846175850630883950541125554238520324120959149205574064685265294351397540665291108453143835867363629800110344261149803469686991029685478478258131978549596255453604371844820641489611039280825333198025417735402955042043989106296622742330202929368079691031885763822253712231551512155869373138885220621638048906727723297510571129071561855899355703053302679210569494152769264539403297546976252765592173831785865100023161080251384571924314052905079857046717118626174517961856446751655289760448087497018490649179808474312226993630894901467614433017074650375110949369323336284343265987970857597798623718407288953893583690654057123412259340001437790924550601787222174742881738628677866701946402117130211828601856276416201159018296045893370449681145963725545054662249093398101394250612132092689625796698135467793839171319434507342388796299946113946316573668115376097011268873481724339050268390025822078239809873473825611254793150340646946851179242630349205959599715299091341867027078353282485577234151400329617940760620178993923548230231306252434988483204800716315074196691149823981099797302404326018960761739684810821409461911967533907379986004315919685105240062068752034488110473112414734274481070747894873469134755241989099493283588009787554462610795878312730484040011753457025163825171239261735508492611197779631875636286503211809403442334180899193105690749419289226175071550387299801742390945313064342550096860358436060574296697537533063879300581684358385260007388321187292547191536289711063977790129427675658175473807440930980537736917815831704545804383910828298633539515617950050167552897754488628634136364334939339334738994818875430371261124039985709007458137098890026639835782170314533777098395265946840893998518255738702538811365512513760244218929248166418773471209404805503149270228262521575644567826464893278642225358790583245475439142784676460396057009529897699367246802725558842539198581165717972149141101831528363299455047293409453005960037262746102894774248166499343613573470118141051683174376938544466797525613964590125025921397711859331706368592177402601537997026411221051312408797298969887090106001335776807211697622213670178901645114427971932508895774775899386315927305120049961840435174682560054373286435016228627507751021175807314754635992373713354994327882421910236870845669861081217281612442814748322857886454420621678914667850340717891653551215292038337969978776123464371495858855790556629193924694791862675668761001968767232585504068356298285919358087890758373865932673760942817387673018632327021133550706102824468829599076557498224802944886921995074723207780321183223427392198532831723738215995570383481928443671339482190480095463097384101450286419010860581704461869916237598244227227545887535826947215635466740234506653952258542889313417063697669454526298055109380241065699528696412499500819983996356018162828191743328179925265270301648799297568027101018510420630507814002068059092248216734561109478924159785415678720358677560698809590433955319430415547944124062521594623614462608970157842424717067620759645648772873273114149912284255654020321984920522121744092752088555148768789375328910793443716209667662510566692059221344999400018400140681204738368430601689390384464246372513051628471661947895633941065647309279404420291281102067896580093624191794004253650926308964152290868588200806641607717905616874604053136724650421786395317021743387945145820799544476292956985908443649978155141060134875260763097384629431470415552713247439736493652613080898956927006667047012227840958405664904906826605430318220202683768601398181312194499261815144849603499782064625535380455862517717314292846481937461340532324113187046517865786171808139069566868585357814336020092576911059122232802248537305267860016132191124024354856396560894625538195515463217146514078911661309390182535284602172056380542965756154985068754012787949550425724996559545128203558468462495535607386186422582539296115652790573700147553444116505835166670782105220733417109437044143657268531847451722561571619053186429476900096164345958497952268957509456395504472833368495637143730860843758899302527579196533972783833412365465736507009277470429159509077851388114415217113770287724438405623810525747399717439230192947898113709792362300274865890607657962281762931959976538983176038841801936160048505217772749117220762780977878319314752998623921108632666903481926038762670893064542208930971863127564567126621645673543004457505722815898523474789440233998215352780904679163184790874055271854955123536915879412613220470826390306891432608257631149896878264093476420601895527444367974099291079035855711727540345547725112964245053415517793320655438555337292984564890773903635280678065408958008446292731147351415365540809476174195608841586870701790326506489793457143528349081459171771018950402288866614946476940505338883274397563484538908592475938961271872960823716919732369931643316712588585017005984886841225252090453652552087684432218815457056853351307587302366209810756899638046147004241671805841491060624250596752905998201500368013056937637720345209245290066579803058271096263453726890467749600885659034688987270020619353990122433443731324443776581651318372609401705328826069760153230184283265094548966631125985276993510480083465759146389075844914799572257436715354797538453730487388372873992314544335850458510391890430080582321611599410733325770443342691799727803582246946365621818019548202489370009429349908028758935836285288707307137972785385993393328454523615200607670539924631091643991089049177572572068804105105823248316317344227419853944333313297586362794288974834402375139887745489560853254643840883093600683999009990642454717708311141912408862587617919383411480882041723099872497536504090405452256628602765048243063648703737679141681667637766901302409359034762896903598749150558723157259710132133839404292916912437463264259365215103023045548205840301634965085792710326993252639190275887094850062458304479746332726597204826356334393674055752988868231597130796311880118249637911735263409421176729711897276245691733745230295873575761956434723871612144771577812887316474559299640328472424867909779194209031611861794964541697458907682391785318260351736711324839680582722825162334754129647761959820755924213892183701480495762725518503165736737490477461689668788028734389621859496706678992950366629505068269646839548137982962895022175712398914079931642022836556803751916493918707543489952458215641137816377606364491079663004910721407776532262815954038705826134828190533827584829397703758650228030123560692958274078631972842867446260363487159545733389984038213125687702743033342762145486477179427391049396773670861711996522801817799357935415875550778136036964519047460071814475675400844152962860378201965608541308904659350552124574551719080087370421449100740867860676593791859465821180407574070267194289717470557731625497146510131864034697090429915766314654047992782689586343834878472823147300633573920576542352972891341841736574129997844913935417735565027485616611128637577370491952046979469828597673355592532837577993112958263742189412013861843769262534240649775904767409635854964676985560544291417533345376829137130295669972929130058244202402804114324657154505978081998009234220628342724815408857428672853231488843123575361033609948911822670076890392207563312221026312184556057542363168952419337813571426914545643080923480798622379571625051057922741840159904526419761372868884783656415426634337519295591501007052460151238794697385112065962160726591055115081248748653461711780198726558395313014800839425167607844754489571074649301647224980476012205852044486200516210542097648202220462543490955407552039507698608492039448837243269838603806074217504908853360298040557952097047820213099275354216032587129878752509795443386676292876689515267565151877599274523054991677310908250321792235910545426291495769945574425152021402582183960437161924438186263828732020110916703907946248260031630700259936205922113918128209122583881864756703376576095072989551269199156900622771134973629595335589887615510381196847139423122329090628787329687678136194665619824393350134504020526362328417910214590707049389533601785311914204412518976385941330230983853725305763425883711023830918110355832016293655308541413963024713917116420814641586938777622946390845616659732927318750194091162948641529596032132161277062262002824426466577273289644075259691968763849034081409571113902118473340769808226590640033625757503232447849536262374062831930059048056740456300798479473361971679925261466934457940835344724051171330446025768632737603127950315493735914064114374349239544603250047759232775571371383636960113563713269787266775290468319257554173995193436784503032289287354321847885220030935320696422293117553793050416004784856000049823899473144250836351717680877879336405559983197133548324098863040674751421594335399461521404849997144320205865202686432922445521248838520664035836389004563413410240776752610418724012798514055952352552272279704469806083678031433509100963895108952586819037879074705398150179027761126172826649864005372409504773610353562384917382153325303560672245959758767879763725660208346760980428852413528536129079967141221384925838327024050479922229920530361860594996158916627999363417722409397220932071359481688597131978627131757649606812550970578316646846307288570974785092169335400975565059287652314578437217185478251041720276001400045700819694579427209777827174811111830382715215322623844146841614288175142707816109830406719151835163420022280415583105199809410062355034738888353570073472391407269746021069785437729100328804246916032367723021496673129620749357099868034926035732043758666328762659643779960278586781242900069192926079468171780528449002301245545520215467132213908896866922193200320167629736158432266090079661902098431216025669524763419067481439222322207211406763382676604104079800901013334153446746081284233160224393107632802253318991139143994292919268577080923802302627718561490796530135087075791557050754130019293192036098725433324618165941465859197736281228426068749509907711068282087379303252970616424548126910102130575234402680406955301569315866507557608362745335506104660993122210026942220562338128467992765545703580831031420025261116796771407917647530053204408084642738940638131164912827122246922691287316301151522287843731717953732152672611516239570486233391171570915411215441017260108875449695159659208220983051960303377447985123582723446353902928028618396428829383689612590337503588522303340019638818266937781497380214072958730756839681738427146823806554391124510494833798244723744894719732514612839330258346545915441859129343231350488504249016772992421088792559912372254984697219320792405151498989306780869013326645539127569373656834161334236455722868849616930168876381917513186785103262917923391026004443951309417549951306201307504635038161503033083560474178845282893448960378129305861317742481884498328491361413845690714821294954555919882754071336778820698683057637668214752962675334837788624233848579426576306439896271792713102640374219663957693292651921574106908897201759286994059932060478815753578519022734453804853900929980578741927867375022474708918411614460915179181402632163970032260416225972023618572057272624693917720809749201284583850675645993236109137254643340457595785687701908642203505486873927880857259875616601858560671448464582425928590184855245893598866996814451178267901178783036049462392190519712461229561797451968251630658279987208090556298703783667871470042458151416425658851741651995701172328975714516563180055315932712379440047547529059307510132915719588094843399898638073397345800677756365071328067604346069616459767786449755357297104954078613484629206773304749532076886968788005058675945196241985155345047170197926047350318442747417090151646883302180307091868018985025272564477715558132180049337569659265045336273831972294857898676752333666289524407745158283498496070746061848747279481459214451233133032152683325381571955142781357065790964325502409848821444214501284287859656784312611555659091405215233972117701763677479147235275862050009045218984925235361592232859856613611775640209290771121574232763473423926004508994673483697808841333562446258585677611058024991273409067744165319151038587969500221694750659989677482478487350185382464132791403405452213953935566440956533558172271082313176758879646897020924036067693483025504914881862010619649042872963910685963099221580744042089731172542622463623951832202439570983314464913161913366347569768488401432239500430803563746110796608042832998328412905997906114116569356287519686434860606439020511864601768582104142213410949919476244621388612849531457167864185294986023003190933018562582867311847819415111213247298038448910554738449031241975017338694878636272239553643047109541395593221451324719673069475004198273433436349364057371004486123990698093618106440585956339221345474489936425059994341000983628663584493458034570124498764723857903137860276267032542555043906048465271270605150860823718369443015145834962542379085217763971890699927254202922039995396933795188464964787933578490417166807743761266901139364839031312768254601680796028829914868116627537142249538925615437665034490422283035887058544536711575269722832656841333140492637764517785650943415599462862951531235482694166334959631069422767802965427021683580996225392494035631908930531833272917499750456394776520038061503988808710993370109425882539010718401217737626901006991276681066882071201532031008527360248661163070230436842652612064195592340750276936405736809463353912146245705779233496841452180252854687638238584683481140528065478085179771423022602641827095266093074776889636503809024796674055242594326090523877535756329914872654204466618363472684021883030611751773290646101609658341379645206747863227141915081398746592704449745870389403644132174979682074461477714600899635668110847662520114050043350364713798715710484479819755119754533920075009464090223186057747230677762881712540006113298048707792350879147968693962458620013829264306427354436250132491687601286979687641738643966254708069063001960697388219985512647346209505246030683352375196420942938250577253727064751279042131736473728144370834725937903805376539855856520854797196673256239579492203090106248279618334756515919314989305148776866324730104950826510318362849220772941605880511028427798517951590347110949416697493358888554720345997947959688451167042594513539540666937417301881005014528774451523798914395972136859411707879629267584611345986056582937506021621367564365199900158512746831863960504612560919811383098741618376289062939060257080489847386097367582517053240121197937483932622983235986939944023003556429040293577351762449961050556118594433390026216578761947074267376584310418308840873593022899672183011360742220723908259733057659524203359939152352837955981345977218230236349618313380708240831751196902179279491157191336523710910490396055880296891118490254681780449484810913011461837938771156628087647471552786949337293776364478607329418272491333681908864610483941885435000690047644283421767650846666865480881734645832021110457525284430028649393932927820910823797635138272702303896296421080885234446950639591971221207923704523370655181761446546954492934484278965041646556043197716818603974909260550493414716126578741077688071180919925635829911588283373616706494503449523701388275877675340096508045892270901769745061738526743106610182084119036866347003949840700110397268031139375524148565565042557902004300912182167751539542356737257005417279049923315170294623605134472569454261365778554875399281070465911960969533430657390846138575590875408544562588906703029852937350708141804307666299805979785772549720683343033168194169663621703352739456773878975972112770102093273429309987736128502372131008524575134257904536062362081262864308264073219388221583295839068508355905055715511621551814816471743761673736667123059760395238219638318233038622277825007548389081087287828966066860591115940901954600799051652013373953491462229141201551390905466132183003992434108924065172508739932415609661556870388970561203362230725040328356243386900904131190501324660023665425680302332532814872782553160982004254466608678053272113069628121890332768421932262419590173718904868958471026993311689932871807183008837693190312445231783255832869509275836440453344186128326361625692695594143240438997674071655851272645869927504105626824814183817880394794016229962170776665582218626690606675596842645274600570019825858581209022244706727702378948908522434057766157500804695507300060518823479438825272937429302863254517761413598821534592727337124717606839808762938508267983886910722172994705631359787183655694390375840776547779878316213277123954886219215334501186131575271886324969019358459788554690394847829306738285529908617654826282542211816989551877035652811876931117665174695991089382460045489509609177040312093163721487404394941062134189804560578409296723450810756337427215309944536771952865105284572959061482369872968993727429426553274966712526689137126291420263627488410901093267496979185151945952506812259774381702688879196331072425157247731889322745401797339834561569782184452222407425883702073879864654379721963138107050577773494903099984245890351661632085441291276539535275102546740148912006124193374094629648316247268641442605015993106280134482348276762042925708794980010082885663391201424216484442803062405416186839454109755999257146407742003457582883319624076475931745102549717588233079622414034219008500720981264149382826234434227889114302595975195811186167430745892494808414044372023093454115656559055373553058803843217400662198339204324619988026610884810138275172491770605778565177988027236327496267649898038584584060693345159394074991732706642402454545457010180351266078019683174499215506640904616735127317786808645655943579769250671004650523540537070041850616967666145553185435740321804425322285142832663913339479584050501007882113084610341692250192202738607371396496967094413801011987010981402221971311823402298949424718720796793578301227373099780094040352645408290064368559433012622360779986763923292004969286228691489109709158843347445661567446728251530271789730171799114047770734488135494512238223285254424494610345054088838292227751646409382009552327068542523989631149613083443729922008458467083160562879026154358913323819506053288171433101304385169529266640905341546449324363826137747936739851817158205628864288066961009495171150017629788072318053075874653913392263154089379940192539775965458518223178436462351159226425631337715320009410651724429382681680236817038882611657132141894220898787748009397039225309701228055368024117090262253034507322463928069981889536516878020759020746969544117552924083258163550917837428362584764202295984052904235510619058273007714098675223277948716991111178249763245273555699108103748800295000203526778895181349130873154731007952312351913111889525490670646816637500567099393877801750426414625853482990190890517257874327367214932667811544899727798391840718630549191084367884150910116665613011525758318596867601079198630250016537374964090016414422040008120431454514515515717200460160074170295337897779723918980659017219187020775380480797190086457623414752542988023783998646732476881376358834179491486676495991799309520118742363696672522776608495615136064145647216554812105989394029855846979168410647745484997445604833553846489868221511504497156547422677303099033217635773934462549137244821716675733356865436262043254523885278404851257275997279418953965838702294683472228818048858564581944399273761266209096564042608789062923057715936367753261413615336698745632646251304155442586653645365743364713299806318256372115008852606654194676775196745264195060425386935748639027610193492059174368691190993138123236788928213941965307524041565710746497231615414395420387214399565519478661088188986166534908679325126398995637326098509614462324739261777476215046392910232979672444456224196976647972299674816692367959546277380405790096009873380381988505601305274557686209232596954132327098441940771410834809470793409406502328615466769195696806252322637117206160495239679862190497692100347001973196101506059604040968522949434229584973580470228486151386553857956352662547881635398671956503166480369274965934872697979186033580301613591409596463169436130385487444809825437860316710086320340587211575215100954665811356977076907095089297594658762846729291865260683454876711276845489998611705138704050599720854140985878129817486153246832309634144488585923476482048396351111773447240181337315292592526926333441909269648403497820222381541955604689168730528822402085122494265699465002250320165257525299457117322760867734290440957693497511701507165302410134703693349587223376551781185221823829178873243619066028624490598837615028069946043014199052098167557360487112219612970973365560423818668858101519533131092004206195532846606968911718376709999819372383869815151395755009102338826689229626656449617813644435987858017214026145191144177649720792543826297842127142241728601557655671474475762226360621134439985504428695398265035590930656734261608594700296998020760553951634316591502350078452064087194665913808510791097660945124349486342198610775574306111349847235825271410698980272369177162280015241152857501788534108676201346354730270497644942725479964821213881574330672267286949433590333097466177731937503845615806664803670136513506259098341042305774726175418696350212986646191558052433479434301262054771335471648732018432836100540842569982497515982561500921220429243277762414887208245586789578024688477919995054086658797927230577017457972681397790241551902842725969956286702352436889619979919196219352888911102294686376447488687283945328194500697314649186055309360359325133621550070689303957085891337819427289303382233850122729469210642026958680250716213497681942401411377807456667503527819426864823013840624359377876980096034705415444410108539011796791507152972514697336802540661693059331017159443677821514019324997992584625612542252708813189738134548268040320764056287756713346778524207895833520672859418205710131246250481966113969110291012945152147431726891205025283187284036562637606092337599849440134752692764885375751273247048782920439262839971742936837336345489446674315873047870993238413889006835406150506399775550262552369446207354714483459066330115106140617779583330153874050682090751439782804577708747995738402800289790530382497885131740171360298835532305374875256879701331920105573982150913741327861720345627988579315640194997072969575355133824621640986574981088819885853872145766916478562951485946003938243002528544896765132325956854492222140711104922407079670412813965773359656483815446194598877701717724523115608254171028780839695631859716056736492655887866156134972845347607978520289893542309876060758492722675124352088583293338876493180019089357086416046167277274666455732857866588580557533855152426633710503522935245344853904064066602588696517838829532962583022306723430188383634026704706090334595627479402781687873701942720044274548994657408669892762766974141966008432209067234661059039613158066025390617817212726435044209020120758850546306236672343173695566317118311495240199744817901099690283680856341368520054820705194260390200850499659661427708408281638854368845368546561271360685175980357033821098139762005576405615301286346168884352384241276735152610743373117606356481836999139891885360050027507364939010677145738768799911154266783570318749101658168015839772319680049319779859675539164752306558273424973749553580125368533859136663029835364303641773571803866260511195868321089390731487439066792998737063054178783014134472132780210868498668014306267494052455137131480231924342372465646519255094650275937251664850956839857781561468888754418488689246824788529359343042646405986083909171412258325247899691483512751970478451981967212200565762288705066522847358878643031788836640927962279119177400744574688998796664608234283939690749945904717967349497318772849063479245008714594051510133793262481860884996053521839130531807773577955632024147431814463425795375919765331130527050559232604225200639679158456771134203047284322444245183415655170905354741112372526869380646421882150087285690504045515340612910462066682874599409254091982502446658352539157044827549735170168132569937850668758598111457988513123261753047884331101741662548922826573124491529979456147582501113942244347944145518427223666506530313804900249025658594569015871840539236872551007038218251519260821328433134299443235236727809486509188393590090895981948709313601180261929053369072291331974639881454119357885251367691746414465843195201912375361225667978187355294409711704165236579125734465757890317082379927538225867661456108634263098413876228285158428688228639255869945633970723939904933063692246145778741331986876848247780934760646318713367585422414666301655810717539823227625434132408432328599040302116581558295489407912439919364863634393139173430221965372787423707922910616799415752665002468260265532130836552410805545847377841943055106548683632063487123971816538872203853625865367149009667354876112427665569073346479710184680384719069757419184988642356366501789393773947754218208535003761269772205114073270007655430194801457017364591802890973773038966990682065121857923030394235771814753638494130816257774039342157127566749923883598764743572654982653252839691498336495237972068515889785331311913607833367016431439096628647961034240856713465529895467872969789383796283074547561506810734075963516339878316792202213409849209743466122325332850473078813315900774860582151926233377138435708929339807706559012941712895105398531960621776822948020823872240518055808651957886631844374691304949194180395279794013556351675915487955716850698248843125034687129483004841451576900686295850491760677297118042423775981582096642008138948151591468251309638624002484239690608222880319884690756297384212075957740607484841771288611236556795126042600238235878073752081700802685784368967554759376403336540605494999310688592761652915874248702837392846038173295523975837344626960635498066586855259870424461516435551750702854704830627152262395278288212512591428402288181392703798707357038286523982886465428145589617951657932852316893103122259424565350015817297265546449955872877433750163177268248447727188461990114452288972809904407119128376260173341292154976013196096336939416347652224634924285142566305806871503817655506298775361686424955359266091026665058830393783067348643138016281537368594802331616904919409181875458472921755011489263709325278302465057743381032018105777731130723228807645060112961370352587711767635248517095662566498713378453280528601031449311631991492274805557895271164234135716243248692741658187104467971939589166348738871499440866924412713941102426673387792371251407405266628481495810606809399014205958400055919519968211622808730680704810410670304306086668205291760021378632992510176466933060170921185293340297613750124796183020501697858219845300819790227945637306002993038482051066682317840877129995283641927772738557120993359648932220758355615357178857048403511635629451341516573036564671146772915009564503755294921389272096700173027500795260657140271181800442445332376189842635989144887723927729500773563376083442019824567109932487822885471384589967775088359368889679283772097928301739907558809453939875150404566793700657637623085883295445650178564329751773562769145220188921959535731532654245289454092522730324037860613361335980535362144546493061199112007778727146124290678393812859351633085343298684506321979362393624193069507229249515263220411188998295079304149347191215534382331904904743806107027922355677838505859379833928715683575000401654455476614961099729116346628237668595456130855578899856347216403048619116920766430778368221408427004160703652087259282811139065733019459984745265486410788046468685708914729121334320028263498952232067048875266220834376319208232698217797030113306639203500652291916301851146426347573571700853858612298425456348599005596230656994138120330734061382033107774369963444054674077379354096985896752770376170359439130926403106890132085841641329029686929449032499479383970355425015692813684999829618473825515399957780119476723881419943455068346251183180663051104597593884835855802073943568243079446031453313032774987948632613401064470861594794825754541174201775903940882959879556086220871020972861859404085790094458685967895678584171037547700752113494915605617871322980484558078139785686304152419368088079967234550088412559610748390792536818388838740478824838994173468450391368127141156073800645643710003339429583976721199550526203000381305546487728588893692043620024731171052541826583019833805372991041654388177004940967061503072346545862612932563395544473547823646425535468976221960414763440580399054455415034153405089153045205921328296100938178484803327582519671700205355424926146156516246703879203016989668158200012460613105875024973100007948793688626124012554956044668706782305169972044378598239570751402823953103890720311311421161408806127046576170928540620393922312850160238320507315099083214022091681591888260323098952281007084607754329161513123334954928491941136564663583624103333651085445986972572834002988961277718156956375822921947238836152672492017467892658614724440507551613149527120706596343924888448606390169354963701302678226297417418934767823788716692153165333728283024303600456426947895650590451603465834708173004271735758020416601127512978708332428999412623408864525888703515755632106987278173963785899649721052398412222913686640966460197895358684300673541993656564507259343686296172297808782020412202946306850514155807599432061504244902850991205707507355794391785947416247105022539466003170419665844698796882987561611482369188684846186398548525642947338136708576636532334625386141993931176586172638460096170000161592822701641255373005365791616941423416369352575018051930176474149643310892245789982645456231540471556485288291685173765770081099688968676689237079761563356339079259184766758215876528467051508830653265106452067038775322613916584277838218320296216096908785675040561702217395503467284949820985191434634244146812342896597906505412642386749073232492347423962906412540617501369947869454145445519116139695671098033491012291377679551617864267137667112615874651203649457442224711637829440542906455259138729795101555832161640188822088894165972285963632174927173137482518841544362615450281170936336751617563242363039444480744018131291038502584856946576256319354126639047816704803327404784971186271051412237009838537051721584005632958778747537618500291742716341547241612277250033238127803232130938163346932076413169672724132628198906330959423012215624918733800028908799177058963867302339210567110807116974252380421583021939884863880823756040635627255287919425099173674266783546632173693165921159236134772865953700671528971260116042034879547945790828833748738895023317864658082297991948976878244954690432326638272776681467459324218214127401754749191173991126418724127831486628433091497609705599287245689056205032485709334811667343561367981458457352030627078797461994117352244069608747290967256988114065944838902274349162803647640718474015140827047159467335648559463506747541700265920407193710121609765294522843285410560265137315813030064632589278585299826816319263501149760573367775523889394599451159891955668405423862393166804705559934278930928349103300371724628634785401799246862424250246371568003016622799115993383681299550959167671148561202831613778646242462879288342509190711334007466150692910361828302913408931894646079938791857679733478807082338726831202550023319762104972366380863705386693337386092785974520701400619087175746553115257482731771410129729874618288006867205142465672805242966272844845400761866824445720689128758053653186662884526076947737280031310822081345593064469266797878943509480885628204155251199142885571203579137901062143260154820768424153433354358628828374190050401924765160511545824717081355388571314752717915759499254473215405858183824965764513439113919496751941181527395826242370194222552720831740534333803481761761316990151940645724216285098320075403213332108764933271365962919788278747817084936313590891948492733824388856222572851430017588801850863452717581746549266111646285582701306882982295222003401415975005584322749381441300529880068615139622762300888831513064744002380487654445386101248055628637646664632696243897350102037239768934396958868062580780868202523371417798690388912289117170725247490800285250893193678628556775153012265687275282542476995481663763420733649382273510210524767958978295002045131404661877173787908775367050268206153609576100198170855314022635267880398652989961936692593026600707611345821018940869061437307734740233574618709035765881755522996690157587533134597999972363173007968238802463607350894435681629026392066168242815182076184184616704024154111945759569554543049421098037099086166169999063217470927456908392810637077380466460193225832554286542065222287944825664414439506224249408235494486435845740915132632736013513856493819929626732665857204466264373095567638856556755668043907559439501875043215059485001970835453850244790414248503195286785602243455803447858023844631695012609374528621048125439058683588237702283617304120610632494051998464343101351186836888556608411816433999622495351938886796143388251214922186838214624180852939866718774396941367191574082438684466988349395182973673863714437456717773290259892441283041476751734861119240381344893540654099424338478665755105253051427016185342306912069059479204692563085610403736270269908204110380191298925168157845460956772901099868476679677204967551255520778889897320142958903659622323783464639242512694166950707490253581300578398717123936880977922729523456479237484779779822718525105363758897815298235806487893182486539109346715431664074253307730264420114933595551229686836252790972117018010144521651412070284932698483498752457581699250639397026360569653707066413894558041995336256657691958023790740952045730243851893695008475284605945971498821128954874897529013735834123048189063848891904353179305405295120886225398292589526294104005624916413139167039797224845245901140778958465487984480636986217743983053439708006997786266101766597856636337609885944836449786733654352292028672351969581026830479892911589491524404166450754654900761274756043800359813157157032301229563942357915414555258101358918490278807523689186102737547063821633587483486010631708414573276369457519186903251633399064565220046123681397543355354772128997580932742980626434753359333395174678115772841562172267384145059115723441576816851518021647094495799077310814143133655452504843166660687251421165651109605944509670799419352531767101877568447794033478137162894498665325859826695259694873078025104097163409710435154055121078323625884619655232461002676910243118231168558492010856483284555131352902751413261019115064694330611578763930554021163274034306856912390273470725759053193862566194108730779906726454226526930523462431955322620184366879156757413844941982385324585386175511461241145755754895032942406310886415148453535451034123441992618843385551702439853287879425361583343330308276843789787163947156810909606315681676218945284856548123218661653893853649183432643261145313122634902267689507686497193405192428651086530528892333690298620198779609689393048995498215356406407584218531677612891664673021499703819711048811706239237464851171455217188560097865142296688403029273123444573636766739884236022972828083343463830561898169910030427695497893136321624181953788868646437500515391941044218392914945918885628493826876646281003497723774096072023542598065982860821496509624021038085785224273357600745636434061871745911733240622657551707711730502810760517271097542133189326181707468889454303257796872936115553715528707020171806477041552768180587557495633813233322862684814493569122766979479089513123775377571180232441172596418460014278145918970912739671494069855932065604749271692510897113549288610060040418756599531728297097294515107879591449595059339934687269663911096004106634642050301366051053104512815675383522495450419703841970944112001323695041877013979105780883790748800722052764244179150367174554545069692491172430312542635350040297027857575754064952173548109318495531808736146711777150707662172878992953143141476587228337896886804042561322403639748313560813253667833195514873439092980810349857239534565066520808889430271902623814458624754076288590682149614296699015405470906467217195069588679768357005792168637932051490508652835409496674131931250931408076926905885885448317687959938348887601107974176756981127882997016875845026125673734510928048708524783903543986091082462654472677221732932953161120798762519966643164095883943787208626623807296278547767904188814025366876504917339770991793786037794938486021364779341939524511079362699399717831061792227465395975296802076907257648911572858334236062472705816536979562223941519664952315924166863532704210417852466927400052860678763005197942540806880179904995661788883958190338857782673377717378297530552740677134110469350119280387913216816444846074566529847582171699731627616190930668952321187489879593010813278395049540128027185679049202549061534580133657518241331226540597388374543771315982127070768040452446931451642910219737570255430690297440099980932263641559718077885826082109806388616917455258348114835700320117575185184257217554216313961589737579715252629444793116485016353177496377153671186541543332777560855668825262388978748874299609507984841050611251086379611201796386868216974870655588001129822913795050345022770566804416255619321624316134085324633895125442117100370450244251871409883513620035077729018057903397154840267941340985968455447716524085360254503200238745075193891319456575969225361721644090813371408762651275333035937329537073478719959080046446836507997938693528725956913778205809376993526969471676695765243455004543192010886130703917103989470675884784750141901923122168058573297445161816835056143198579283051357057264370634898338629033448399732537195212729205429500046820575296634382252916536744899867068852492607313662420341621415480283457503669126829337338166737322284559789492865413628731089078157311062661465455683118785324271570166808055390910811066539428476263577017837354330781462914518440577282978032021012540263807038929875662797105422757134716567624784563604711057714323295287437309803389532700387982275593705070487002492267042512528434132246879626508517625309312442946752558336533941672083913507457109173940658236556007556081601376979268905603961462124572926834376850156366455716635559460855585294690053232629395700647789037328470659957849031978327111145512868134488494960537293940730220655646810977720652572596484555864664382652824630950501782113343635246748951379057984273545598155242857211772324835009730499421407860466692775681906205077799014432290212906974223761376928516072825952433002208209090442208973974386437663749069005936381753422254724907613179798680630942555225048619090849998362301341537915637019122745745205146792672780509504327651869902167207112129276282915871904973817752901857416777918098137539908917448012536803209366540194262353093792451819339175769101211511340487804120085385693695157167211395777670441715806782696987027201573689612167107047702335702748890380466317428280527945492264574102754967575929688812535446366846672038163062171701445061165354034053140213095792311734893311484914696800068344870047037550610328496990259806555540353758633262897287266979333163188758713759007667283724556555019376728712907021924076133945873078619376804235194228764749568329128933171234664326817392552989773441689185377756536756125220067087591605971533140399632528415660571896600584112794563315256034900645184676756671301541288519260083253252635179069572596946399488049118820594534634494607639778580847733983234122377389491171842554804490243909805513779248458112479336808608557784928359941799803816422674865218202299383613373528147164795194914713026925829886270830489813085631479074999760267958605716489376007497978130525634392387080318094825001244164978542280753830804967215442385013108848279678396148039482808801505529474864440234103018637574319827789916072992567988298318707264545251887189737515466104785684138118173339006888515185911195078650920053407773539395670823413403876148799235755108547047599942874471566136153791567131973001791729271095921541154781001172256033344753955930567985884870860589449970229159580777921131011084028618486222539314035888666920139044555620797350739399539865354479061110388129801706524593818262360675462333556296542612160437859353218264142260853830605344520610038464081587404156040734950187649502378665558575996502556598428856604420285537741244178372309136866703299715864629130925603156310435581278525299154457662632628465113918324528932012556152111759381920264128758317353004705989637782067521509394281894888413006026633385583599480321160897663336836429070694402105892553048308478572292562477238783506561176433033157543445434361296052807891043155110903340199309373771070227239695691283960214574116478162463979010097943748570930521472812295004199696201191231176716924008215786262785634527873946800008303772859296285386640251251916648778365274414151599414239680649702943587854046257888495950222288931533885968590701213120778273530966720567741341585147394897059544816519069706391303911800374497413829139894512648964641124628710943029066862845478377966159550694600784375862406633990998224914301130750737212973669973794711267418439585342969250274200716548130673584390648443829552673952791479635032059531533042371122200883910733769872437896474989516352875870855700587362323376970136405527303382120380967979196996755309011522104694634702897032562802882402056984553361164872915242230081073001611251564421800264539430833641601661146635236789200479234499623052335141841116866090387721733937802208344790337991041351829333619133923741803949109709348962298801435720130423251420160654521273795716233739915263558573986406109787357552085318495440444482786633215386571165870123334280102853175047222951269720231802054085451317317777813371511529515046348404431064104807431040057722589781000501753134543422353218942256287958992172782817598417393812393006593964429078037261034103245150249305679253713692971855939836002826442450096062305318574634027043786250344807890030365235417299499764594054899824222971302009910558329487314045623931805634773927652007433469261969565237772579409048832831543710702966016069477091290747606330332390792051762859883665517372812359552589696964372568737849163706249653127378106666955254852085564234934812765195958318545680642681941376126500451383294837845552953735718482477818439367366668025487157017197890736914488295889213277464227021984661090246426828918283497512204735374158994569445367894473982969717202156493428588762507407348985789057405934633418633682033590423969769573267754681765418086398708542599760591465249212349727291737206882962757154667992538385820829411580254267095576168486246176811832773222877256344504586273793420022452312966357123287032913304655885410280503841856561801679090664783428278368221431609834899666724639213691770102305238531859967804362654313534884178746848749824348328796974894643946798682229646802851709566914047413241309361203080333862391795581876272195799958596738436103629435582404405224689040868130550166932266125752200622748034359052866940754455844188745056088802281048193680986830684886520749460381304105296776248674022396425111184568325322545398289954632575754083756993959548078298637132646188990665671510810686952451373488364957886519251210158513948943566711900058454696364988074031016608649675501254653083480246430870146161428606880037841603637421815359989603854913775297375548378680094108110813128449751598714408388174354353326174290990334684503691903168058552832104646040104068669193230868161597978171712110838755158646390859206281032041600620169680776864397829805969201100915408795966152498844598481193130370719634291179869499713956436127395734321071722643132212276788555526168700764835829516569850019689600357171806289428525967546714047320190375690659237720626506705708749184011245858634174949005945972848811303546239384411054093291775487095481906952034709220769205043538722992320967615821816710336678116129271051133517224380819226231614587250032105138341659744036038628188086845301228238168430130398509547238373373167602331425656080902396165099618472411708676046689616837938053952572058486086479212917450260772927460660735329930235028941936144153417207901280491525020978971727840507832078809392873693773630098838239483466822413404610522198359839063691399808610012672567938029277544545775916760424135949875973791285870425250239536792157022173362697903886773982718571316869735651183082953640187188396954794075402481745594974991174009817174260827686997232863301223524533755380803236133482326913694597496587043713923051218588451185652477411774422822583773313110652464782505981256377842793850766547425135909045246356806617171344612633629356518247603024424912062447143669789980647212035840538758022568638832733343164792793372909737319332711185833226865831819652007223988782094185449300876171178053710803479075406275723328548533675099663311214524412884545273670146496245455428066119759142241734996208233939824585297349089109955279924582621034347723300134400956164697816447247352247501874211457840880467451599713725197303534209965507217945160853356866835421496362007709416000235181452801137734934893834700379154961721687886906733584252036477689211857845472565436246123758752375415915311133303499118538903193154720439182574277897268874525055374635620723392195780288274762767750495772660333787425354567604152169983456747126953681879674307966497733199266507309654365166171485941814688704610026285601537375964543550435438823320762563797100695739942500953016714584541512366424065152364040507850065191787111103636033435726788446267431010589877387081326805244593272870393719558635926466692172016186079655903447858778338309361108775992568133048068748070283049973042172041692629137585269017269691722295802531549314893092064562290099538949726993424810644424839064084893025155168014528458557909295361027592228185131696947348857972067184889319410797117059538034080283904470229756156757763308513861516554509254064083955945274059538527582332413906516888931245591021470230531035653327246025623611424807583533798153303247208984502899330821248797478032023428225536264373982368136951721553196016267913937880869210868630965843089023383431346884983282045544183727371218664489751895451264530455760371076620765844643698222742780232702749128028273443565671437626584271198972070699817382735447388377644880659324221954685365671282742568881606024477317741743416615405110081091664267112250912685595818154491215969550163710488481751657834210153667294296336446618832530862313761650239496093195456115220927715628242903362803866309882429499571953148244053265743163760907371270263924781203610606072653360180539401832952176817315352497265278370470734419001932533516175510155932129894535862169888492253000122728003584644999646697897384120464704595143197895271851331173074735276871242972752721938422862856284303543649910473991134269206578251816866753015626194062400321026650579153167962910336416469109370127054018334155472809571505183296299791745515831245192408490751443579469021290039584847648027366800857867115732664481374540291873551551501054827319615664597953682810674886311420865667801850233115038038028920465119055794503005294763125703941858821096113227572792997050715252394249990453316523296949826382337566799370941480652305478122493999844988314149186324055735974632576307180174325888259987568802473314974709353179181604145479681190422760472184703015994061110841238065707299449344415234482389596998759179567572374603733082076688989031058142928408438436518030371124935008443063740838345012457784411714046202993980464625951317905075221879836188537837785643258983252282121084890919222380216037546044659014436789786917062751015183827414262041096171002835061208820115561452172533785937391091064880215800991316115598756249671745967882759166816946093844841601979801205922683132114163443006807138302604784698398438947005108274290933272929353120543238267703090029743434726413396324655434338227432487725828033326146231940533784232107292404653559240220299674901800610528685152283796947271470344329432918466990026535631247800220204524887020064051794684260287133079622120975153764740236146408628533852210367492226677764139427008204171420716242841745751251301816353344757611729099776337898613577310977541999226842183361370590914239561418033498474245671850709557476304189462657905189982392425505107442434307347692977048476237971701275588628763199295154159383395862189133804300969201747786703197435167463857191118883721521327148026865543437022589080098698023356671116527057784194421875374387480089951055590089703702236689490092786194068765368302494274783944909376669087696333932669997363840063366647761260396487989688335762643470160430214997310505044621160449618332786131388226237748026890394827668762392265283608415391797834185371419285765096415492333168581598239528515116880818107161997218733018231215630114875157263081597430614323121329868027582516138015487491958406956921550497527260991811486200760158108121575042463173600613611147323164622713313503579208047045860713453971428640852520340669182447825873438051457784728550728533207273923820416039793755638839921754093808238391797665996285946094113612090787509111474410388494087448347660938016283087851998532115017936220237507584400310851951368343061745311247412234576352958052327761856092033326724866886562589784677678505959373995056160683966786916042093752855799655265346323752143167176670509498317943224545912690832415046102627770062560267063196652833049985569599619768765574141949834177584581519206854449304153620518872761213285135751822151311882342349662871360742651781397565373325013708844803738831845794614548197035125064346376936014590199068367641374519769059612009993073553151674619744585815175161192025547637998180163476786795201211307036601101185416368712773014916430893558315443907177266155929191318478749388814538555369162446793874247371307856495204281609188806122627214240540417182949809841626662498281478118595541152347496714496998197738876150261298413473851497212149223967925915947591927879375173774567648641880171761263091665862560771906865615612120918040929095089074733014585829735804684150196938639644720500214104280705224978486570061414840190614787315886381166469801157506113044488953234480559988820907621633296330260017088218399343931115019290053641487204540776173994360999166737253063540293748009612815773042031307639510732552692897486804432228646384863119395463174650560218369608701249109088047753239823072926103298589101843790824697171748790796553434921826387540738206892854670234029974918291834174019021228786386613255997387912528369410965747700802995015986443320809523114397681122460511353528864935160177697604390006506632076264686723546247916378128482393309718607318491143592240126012866898362458382156116011686815446427528765207821853933699020304201253561189304502375261662706988448744547606339800233297685435212155533430351904157635029236397312602979858574982805502352372651921131423703346467083169626998588987829477310446774562710738915063520854947944766948026348405952349749635802693814488928402549437728075115352359936470088852261633369160038590139872959991246787212807155520440005987094814592961572831322524080918729634279743942964287008419801250172526662606560878480373027689620582118897268357541815123109926581317274318774702856877214065104223301552431819603750561157106985339513126439654114894465060640517111019097606263215088623123721113622532960397800280829260083347644269614666999732279502570226690106190489608869960359709464654640921340585612249841012271806726476730064645277574327461873658180535215461707019631696097520998859918011521430638417793675852635573936915466625078090395463717920113710756442572188030545130648932739378104211276772069658358112542055862335421583429192672645835327813227874146396072486153370698754850338387190547630976813346914500487995410532496066417601837524441505603503336852980353828856231221099840412415551091457734190128188698775832176648706698985561737189909634682175316851485120041022349366072301321920417081749280334155523571667912669757220946370452819815725517567339152164331432409182597902676878490555137468940918386337611909744114973841744628761324764182987271030714194681440094615684022798080717008325259209393495126518409138073060477085616282570729672772744935254428956041826426657079042202338107361589315416195476807978863384372387136316409845179081862781309487798024250449169431802944696794579790501591947111314294135335391422812075920033198302983183736725298575474354272730428242836306751787970167089210340059054787890817784277785999346147897633548224906023084103070774542422440733581745116333384057118283837006360872091508914285388199788081380579523996853618605551756167019644400686350431912911562840307280177016290207953418321357960903408922570322245571106491888538073457690184380917577501458644994203870536354619115518260593290341738133597111578895947049417043096913270467400697819459579059572887705863154270326656364620290636610678898915760161130080959036654902719254438921158177773951001260990885609938439355689980753908170944962345663310812181377563726141292477296569509559196140152673895316070607306666862422834250156419936520351198383789355368910721014580433184646014441779710444235860136854318537345798391439964912635576913177854327598236200545462298250894135869024432149422357609258547081527617441492320496647171129293940940059940622034741224589949099400440925408013277458666977456277901390566940057909697401802494713938709295891938054430919659122925200084162033265532875710197505704602779558425503960282725487920251908093330320341544931510065915900306941036548597028842736068810020611504869135165011503753770666191192983309720741718314846648363513138434677443581759940528116710302268627924908407906765937491808363364289490777442920649493008301706732711895719569543058760208221543774999481500606306592494878177894761261846474870129947046020233802478457137176360127342759554794029621160565607887597233796955560221893745238822261021006108574101984238833117502693658596149420712572953538963384276086675135407242937403902689502109973440778043369782583712730262066119807614254974571451537820134113467741015171317906159091946156391990195023118409493047549951676179736468019785021949206905444852813797687589169554425626520462353220172575235699897260540897990833185769950769509374131205854453953840405557081111351905408459399483564260500698383478870840437817595787394313983440943707182864585430281633015128555298337256665681146688111418703390900261354486817166701623900933685710294129662507183490899566564162756897425832914379900752403744462786409525389753251808498839098619429166932816428862204945024833105987234570990081687870664399204720607128711607864291274457087845446014544861066525752528620517845339048262844800956172245184872975619285718823133023875565152999614896306275703961155400561013259493097808184349238615437825531911780765212337577564329767227991391348535236486167491015176708811062593136231268041921158205066393457345551066817274914118981944715706382766799234740128973054453527414705853139920317407969654397765309183507254740453995365907441790039906754869810600999695943016975320078997024211028754623643416673399960051534853124783994552339631462673337178015688799479765557912534310163055180761669361166704443741717324255482867942396209851934088050563016449406260217776098363093834167772707746839090262922379422304870417298778277798678858008323809001698733080516837606341984348284173878776226449506411753404270068404830606957579647642150754979660925997840929459261989175765796894484689211470066851667542299820144862583055189827993967496379950608269229231021195781052778089847854566641410514477925839250722064359912662596117693484948452299001122841225182633817614582298327798415199429574515641573916186991148658107173132153024195266367973425279458006185694565326227825253453346854124887421380993845605070728170225515567215354136970043333279548564365732074479579158502471998021176625102936635148917865134782577948535229089195354808605540935690826227596079087457283209579259907831099712737067846116603780694724944918496714026258465329688122902601984353446951896217617018774951759878684623617268358663779559258799632980582962748374518135615779743494291331711519596124187977877521219935887318721409883703886500423398189264778004053634423896926601333084328464427905422858886770434823086511164939510594239477737884104308061129942017019788790537423012459964963302377640973612039977764129657575742087127805206967108726224551836337802898824703585276330537214193005417682446171303703017759658845579012350710248239527284621588825897333934559867383758412170686913364573355495183859672832682116101463961140645445255272989918661004459240595134492836603067072764387467692563725674003632800693233856652699612008355786048085261331411836102159723434225883650068417472855302893263923935070570159270599296484156851597268804857181445710199213844737392681235303958153288252163626652822081985112621292609875858419732950163882484850972898136308821707591594361644049342742221042487651112184327817560459517337373114905036126878368916813615586489018358767008254855779396619967807058127225111517209876678219532342607772525204864302305305441171196634108766255070918657985747353622390337352881069974218895503015932922131013092734340729894003650036872605246972039299383031734492625011351958385224757920145876767994529290988785585621734288255750371950510438416140091185790131587942392289930771884414573694330797961627137626491729274729511446344787607391652466946426828520375320912120702919269031632414904537760970818777359230541109110520074040888187622319187985122365910284471376504401042553934740544767665677135578409383153262415254872031099750568941744394148259573529336009876946818496816923260215567699782749631807048957929520576068690322565092861880038820099643341959994763873393300107943699016118222657422009441120607860847962083977866802188053667720012292139521066492375254266520906938226429353516924848789702120018472253341001663446576253711707979138545507782666629652580325678435219741939536143042110651724896669853807597906868537149951660254638182796623851529674077877153640488264422710922731953202470005172940073068419004954804724088006283608941562336872419812001783960031989621526072490272288077412049583038168853977793898098507799350005814722860077561242817014058485069756787667285488486353488466913911539900300141966692256363346812154930351166007531382326768444532607919357002420108100183503300801129550859898684022805295774066577155407659757660627686904544393924419726839254086025296133303731822822806753669191928801428601369566565754123373436287539235740759729802566748685201171773349601762144719575198816087144826432809081206641278541677553518220507265521752499292037323722870224877822198975742070200081112662224739630707045698831566221408750029683765177487475051228679078394405788609151975483906489388626127172773521412048409813330163978746291803670241422966169443778825514109355953370563608563192150125170992142636461858277733057043162811147166376527134543804922014177574197980529678044340726165462781286196571746892655472098053002986673256578689080204510006558128489448780639766202232602540911107316120969985465702640224489034322734220044479376970870235850860833506397535556606128922166748821538746608616773704199008901852064658030222961624153055390696088170276699768015336500542180184585951235219159627831125126235148422845622831359826840477943152767228901040384193583521523395446885469143579886368742248432403113435922485925200462567160883540699741607241279159714270197527574157421000651417892776291645127085957704131845419158794566527495619710620891465463847345103212207293799711166778086148871460244522250108864780597739326197739786252720182988391165464927230447127346118565684035567441159102089060924643937202120659825042053654300284072612919494674277492170990662588051880078527378203047148900260251023407734258217084368090964770361419853524424572270953352295831021161163328173539726026449199569734586174970917584855117136125245496182115086129344547279010307551141141649251768135268881063595623716413032055303445528543713281203473258874659665266632109131702551164166352465285441656395876488367042154845603449883812955000927933510714296606363736715101967064577243086663410364825432368104052258660800460112922390750189035688051467357621133492016111328983084687916158655839661583284880176680106951152724201987019579633845538962688015137399831564654787309033982022280857106500428041940839742172449760296917355879323199768720582701799225665376540921829415362594858879207972636035391332979945271856666907195362888311931709556310462223559868777030974711606172855039923077460820529309599652207093214000115359746446397239332839357823239882372835065417196945492455281234021953894083427975512447007050214122168605000428194326405912635136219303011515974399860998301185407099142321567805147214058039914534936033708926486296491828829863899301778415634242575972390057384354992753853816015605419339345863246603017370320917326338351033604349435955108658402421829959235943713158582657588092156454233383224408711123347128942140603750322114468361361117185642446115146737453893260259053050282012003233939276542141047569155658771902750450130375254208699328165139576497361856108111175345478809108334272359003304489869808764241629195525239817880174681030001837244453066673859268446568105435093815338471924095721040657565924532679679412997503631210756270299921038691789425085906473690528268539718695206885068326168211021478798267003083197958406023303287317829097482252318719831552015971103186075045168812897030452059405795151820050093872897433535177551602126320070308379915922071385739085151591641891543758117286078666901489990810883198484561551886664311782795767030965294601376538808147483990726061781383098778968001201309662361201654018272947789028258526312220954274085098826143201351550777673360219725825235547083757342946802027862001122779608380543183703731093109115484572846760449564108041874505940128086448175552969989822173009138797038071327738391568801891799734030835550488266057459797318400269697332353161912443083647097964786044924202874591610185353741481752783291835582508673472085079301442893669222814980112294059996165483438367875487835481939690190528940969922071695227038718545005276951775610603718263074010496037955876712862819094769096553746698036603059366117871802933657171377831738605893745444706032164280765162829581985758729515453965914092708906771783480555652062815505340580052066857108622307673226984660367820524036063694295645346315750170436182124781168189432708818828643842424034840619205145838403449728886861925083634161667172110028145884701262991406391310440832307787570594117902186182682006327169174789671633622097239585683645067077788825240475300129905031453585432599460780126435948087933675204692023625173737719801594319419509546050872870767927704679945214530282429309037034262058650647786656562452949795917087783661750306785234569449177519496030329868631936707655863379000020835902052749153449446764930987473701356205259942870948167156590003503199603048028121995380149623796552186101972666102076447924731110823781392811688162563760606394273893664369847994648488758172940466580232899687966088058628452048981847422461092734904193903591174044808345697960686285182793605272240564586269177101862837829224968357567629925116475841367903736502379708541921045181449606707017485737266497102366540941302793009357598406421891004544719063910439767819728693700013972011928200513120606357935809850859164279878057347529192655959992161786555995799070294615317021202698687749274922860926315588918144827299820453686373110571091911754346088436196121662671234044141239617989633360970815908650029549115287764261543249680842821445454330211150241549904243361081741807754847805670553572380396464677923071235188485467889038435640039787010538099470320692828297083991195687373292574360446080660996919166706529292413881127237959590761891921238354382886198961087457386551667109607641197713643400922193691072407786963920921024932414600267410625263194562642685741998299661534598789469961817631386872578843065560740050589494815103047195183071230369134684602876216852228209758981962790489746087543810516379344325428956751976449261399351741535012265822400091308817268243059323565812207491904759606120244966610908588533983431573643847620109447229553770336009811122868547900391075978008885098422855490015096216037873526518111070761824786392862145811230705588008409741215764591814005545541872419178509554798457292133962799708832006673521171054359794195934151621405242311641772926053343122033274660937451896312427781909578130886223843440872561713686028111671964720493171679644086943661208366976412480116773999968109385882044573162311140112589918982012682190783000212324673371977412065006917925533832407137651523633008367947957653624721610020999747716199220511678331972710921951301194013407905163516765702800721578879926533986780822663091519573690169256440620116891207766980604856523521185988029977896203438965213408696119769744688038616731281909881048824512579417551354993186508463134841296464777614402976173232733057393718581114054292669544337593467183317618108513084548039814793684519315904813525082145511296971764157274784181070223867728545048710527091513836210697027977261057871902882673363875155684879506110618605460841126281679361071195007702098371216629571218430091522087671753507997785224766434334885746141622015911128812874867043166515204033355767453992922436831969618055254921325552029697980814879150072399361735081716935511848984684404158680833467247058871918227786681969338381517507336673194823783812411455145588570743350054853995506005490703913342653189079858625529144170876989269780009764525103305533636836223607176423700444177612548521145531411908902000606392455479521567043665744495665584680989531985982981963467681952790097272289715338948198266537861805269316974262181661777745228958131008036937482175104692890371185629748571215424683588479165325765678909819349120830199519019625125211035637340661853192751443429260281155303211959093353181572770484253384875135902686672877955630584187810172375935971631919512177608073015195393188975944450326436545194160194892045010157120273906649097454823812479738658329805898121470870950151533153000880964738163457884648070201373186314954697634638843676672524533718972856764826173149711689724601317891886741000572461632570530376136345338499385218796506634460161522167043548272026365277370619238175652958364741083536824667857280112584882165668161677452489355044125024001420041939579848776603224838982501598729304524968486073098563607399768674813307307751186821276271421628629447443104260016445741275551484436043722854951477715085920977482001655407165728903245797553271686029231398044021365542919718976838158998019975802108739511983110322022599450205584068866725179709682841510067446013800253715964204463462116627771751896895366968518533871905256950904443666948670089162780436460247063815262255309447637249450069578601450541478433069368519395543836672364068570316307083548226006150047667104855271427569559106701523121055844864716898191146729681662557620173166849518971143628727260481407968360196930423265824185408518655458909821250458172261502102707177128513028278600675574213672341007216949324890855154519373815936869406786799352244660434541497748594724003113404373228195814624182869208904326432516018505399717784216670651378842299494953264611593635007345410146761578116903532144448939736621094966893089468198529865471437285112704472172593361256949415069536064765533383323094795030889259878411638502809565823264707732458911542388391282926008354342624401145776112420981321872794230772967577012166896208349338224026137132707785237151355158416321341045086068454133685040082156205354620838565124661774735907570459194337954893675301015643290354249896438094831416856010079526840238406922655173822218776749936448802460078671280821913934909817077960515103004999583232751452520785101311497706961532536380570065398143777403726370527104178750280577382987886284034795940397545305994295754515562201138232613951250576921497682604329019334608994356132061456085149833120253587166452433543321958296360047956967407496058784805106323445275602656285762752359036598403365409533470534066066559343678376744144371532533172659003358020089178358930240560119258855024260095923594015712677164914359482388800006876283790871587399290555984807523130353695381942712889751168574433198104388084939874925007436247816236146979643095591607635616963116379284106133774233090239595676254100774819420117026004596904799435043632085299909899777666101479300381507464625048126460168326085052366528688661460630151777208595182871086781800215077544045415245521679462497337848597053631788488963540136975667046325787898052559914939180421330473771207413390149003515811642361823249517277513743099946096141271196000364906458513289205925438002235667672772942914309035957003281783390216398990754088742426798870575434465812027277229339236072399613730928318786629530331629165796323415535750045014361952066285540737944206638203800409005051719928007724639897032795947985996526750989819334416900922054501693586424280917408827134479267913303377809851003537371899129117048222069628648268157984239168335776188924643294554631666417991661360053678959587771675937538628114381507577050473380383714328822603197014939722312297414576511367572955908348131548519709971194396136866841301779664722663042257552221859448201379508757177852979591612270325287547578554590705703987557708299371307905835544256606865903578127512219040610984857140001785287238585563136151750533466805680303968739551322074974333529762930980498138714794205867657759783632711579976244869464843279361785201813884691975186492689914675580722716495705589697001879011848334040668888122912704577180273068235830246997443266873661174756876998953552840794342232152759574962437254843040151561054542352536046321617856663353592342317324672844582528651404057280644199674719931329645539220067119546721067556934571174707194550092685142298345119880681738613060184309010964149665658009550168988317690804842463984062795989517466122903457409542213248332220541531738145014222647288682185839980359516441140908956574573190414973183577107739823129951455700862455621272470242432194333131703126869618551746867115211413948567593184049337982077384522443141782762486726592471839496843947780870411267480170818164753395364429314959843961800695698061886633959940671165942855795781410025635111103231508379790358055803445980732847125884835133162850505611579882440082764951510355956326751192157904846822590459463625535256569995850396692161148792903076556476207826264352134443868289327783600411177658872099517011129233714828785500480248094917386904888587407121921339287367665665040367701287623155996593365687794748384097821405015453579239764372739973069143176179414544781055643267340750712274674013273490660625080495924538783807492831029682685528854800945089320577854749141401031500849546747248679864918227069990440258853407262687089444668998002756377665514388253688222312219067249421906342341163127601152182673377970997024729142965379589342543273639025619796565152960567077106993777171741167884018254940977405497134974467873704783072494002683999463882849544522647532191560574215566005094799522503529616608406502886315223538477407855774464784480680000897145243810653487793077333254142342085488024873188791371025048248761048618348514942010009811625334295634153984100820491594647754502673277100810607221655833721552084346552092526931067598054363584590241075493662870295974326654085414534739392378020043784153513676912007221762656532516426068091747963798500183909520557040754840722755914268488007170119894769946527781167498344032598021720898125232806006519707592990857051828134356244549109201119861063048748816606122314582796784788598913459052336822114746631693321305896526116390351267893207522726536393865629714182853851222391205467402352913103125094919242001452472369386195661978060902887117964815326981733928867559857785008451120974556114429795946011193318649528617906658199663514843116687798453946228230727713715700872910203095841749257354806618734274629803666884889655026257007118573835921883135908967880260625855730324658818363461965198711087469787420087019960624230932101121295868792300957388979874206631013506097049704624530357516485726878542445756847418587282824971281698541691320018455465359445526587091039852777135746081735143563573285915729609423692963139363091063311555718627617141670074368069105501092367357387325415319829422827908555001674236824867971016134142619418003047000507883763620222570064371945657446683103566970785239451894336182008582317673158835677053317186803208075803411583288040837228761734980126317312365374994613692856935290438706800968168018852511037843557276318222183006559294825061806302204442367982588307386515380781876628299345399792388923204055556641392550031937145651697774376935436370526426891526218050906170069965122564873206096037307467535013602290784240473629941838521081953182054603210108278566785310779545759862591877043829949196203634748002611486117695326722106552611892365184223062197868669963216004774884283616056654960416394198756803623515709505512659285150886964158517589739179798493712123692260835340282566167827170616445740099463655804103531464350679469296526494967788136456510883623575324203814353921138478581530818813182075799371529123476237007042363516332932694293551550520389887182183612447649106047308703835454175312340319768849769625818519558960996305624038708634665145710700958345546914852998570270351583046835376838751986914653566140714911767538183810721787498938984852435251920077002685677589132590843143006714397399589019446141856144432323149864988442095583848027649082430095839495252511452121722606055369049866981348005855285584891028394650596422357363546124671796424609287502996999835910869043066775475619313602587660041936340476145701354143800466312430703956269447778190702217985789708533263330881585838362565695364876841853706058160525478103834832319261612766327371530737499479316867521960546132941975708686540197639855967977722115610727561247383491942562079260637702644682424947536342345857576969943098047978070452932293902964321520206243340288442006538196837367548517864399626281760228204565025492514894436965401783919898131079731326940100240155891037928831818459375311496124661436159653819092693165393576210708683483977021568152481646220109600391522635164496385422798434134125623799042345667481699042455124654506028600317345672333421376342012187073611106645004669673584812194162158228387510260979917995228721017841387780134497920781214618119328131925011385763138895958860350954898007522750604720672369861012222338101740893328325168909337046338478174032957425766819371925002855377348316982431700628824229749593797616382786532408597915020101389111805375210850413526129633130186871032514300029364604735637304699200691624236469866111454837414553568034793028633436514543370603715543937155415402925778052476151713704759083050345004886588817773463395485982526995990716281693948688676361281226039755460519756510125952548330041187883062236359608970656946872501371104012902119428788288362343859465862689020734226901091308591976557993320214826682520099238765999442186161262014698687359506899543345504581960879526316463426232070156937953914394041322372447777217139037921595559532903762543717459393249117481955226522576327230518798971417268308626647205801069381825944650302625329191151158865694358174245634049663157131135160617769445502698532751513762250819808012705811359131638710350197043438755857405591179509380809706886793304000192450206837961130584552183640145207742059001350890306142481794775543163022282021163268947938270545843275761186558753809697604273094184586264981190857571713807516906001354594303768552091140939846837244539766880793878641917449993178688691778646790033453873439059381618657300858907913953347215217509608964205441168126536532759522950703318785838217465885296778513578704363245581165138141312532324197913382234631024645670778813059810472922559571553731252017421699735553829511922434223903071750365369643247137636550382097164108714865020151940180322741392072605963760966821565957371297152195966740040076360054784680073867328347040617768230083264389355504570887387753445069240835994235027679520013655232470287897805072837573546104453418667021625144062891732899805056704835852390319278444494706713431234433105281897497071664771815638285989787647837058535263884954763575544863444792652096771501595655446741157793455696822255468585056157024183370410596040755619115955708441574657359640504153221596617574398118639948114078285397419651414378032032214165954298157873666366073052560504743963764656232545458618341430479405606499027340283084164335168270623067571085556340507136612555782975006419010836763495617666334530650965014619270033106249185768182691579129179033610875346435741929877975495924329422764540618109663594043073861322087185599557818527240477102327692925978517233111544372159607033827586267334432158191829944828969375194874576714366018011846942696441008716832077074468994070645233438967830556472103454842298076825956346808643245644257962579020339535989839071753945813280029063473539358924534224695252852100466338769521339305963410771975409082517054516524585927302836776637500026419595840181525983305538387287591826565609221778328095958286085389724427680550181553922995968427844283390484258664219168158166524591898533347467750253763693574486195421789419401992799716753616110040438667483564182627911700921753752573353843120984018733095490770439147055539367862139831556110124592445461838927828381657941767381787621775923712240711738351485236287221906424392517112617277345743528326409508495594381817780859557554605090905814500795578595391795417563250576650464635552956966301940487393942212184187275880057559543486663277874734781791202886042543887409336836029093971641879400344608222400844302732111046714355554889102578517803717491143721234854510096709245089667187505669239092852346309625862036364929753526633257623817909868817058557236498114150741824715556396448714315486547908679936317460331266396843007878756551835336809024463531342746823484283756448496497954763210053655961264467423632982606768127955633533432324690179362293362282759213558201654068987886732598883703597933084787043445525548145574574898150953836672910141322030415896256375856360140727954965340834341026173850123588289998799389927330435288616255228799580555504904105257650990601099515244876826323684999665743741922913371434072865230135739435125508119170285172475111190825522449727053140411617558743890766370376873080796828804334712062632620943521363624965975130887721877504701249055195275032716810227391980210255442677873364541593557766076659153491669807744227269857345742701138855438012913689584201853502251985212323409567883420173492382267211685859496126115094184532639744320951366397286224983791442529750063391691590149188394392217314920153242920137187016995552437738209213987764661148738555512403055655915800328770775546185063913931209779126696570684910992182607241314805111449712928664700241542047165354601932193242788248813757543970543910799558942599394149791708702434229889291767523824484651969831960160381037096805251809600137357906357000962449178517818884301988359381453916897541383398388385164080663610473750112373022777819451090528956178290732615825213593836487525101621014045820851691152911870255467470941828748847881060209550464076565808173815991859819223312529737410390751927322279385797001406828237618184095345375639961197382698257472613676284296315602287509057641602611606520190185711712207389910596948421930190896184013715000155601280302083002381199373809067125963965314610073433219928124567239442404232413682405561876199698381988050424530494283375486242577302060776672493511856999692606889262571793587802921297874459010444375103553833170803304010539623014123859468944564567258034705998375780860443729887302474243146177055996092851684127461257042163187027386283455709987832064068806460339857409624533239595793197707782356862595379903954393958236520030434281198191388967588318249845542000591538083791820868756588225429116876331087035713270830882236126168040502547235992631289665589667728230920617679642054618908150468663962679938661812172678734685622779135198714594781099737177509623728253392139942591132536198828435300339972606911106784360018662406687781671974780752776959214307207988176780516557656018818903453424267918916592289485143959486517155326500155953913168649866801919327149119302802315737406322677403265281825570535624208365918386441374631302555605545357381449004361937702604331916852118286072790043046348432410862944364597371393590111944840785532513408157441963860404171566951496905547936333126140891853572720530226052300063084014622171532141514638220473553187165329596538048284348186307364041160794977302751456876475475689211221891586827369535067025421218518929051715182970498895543247837658184639783835082911758116170975349607454477480589611402916459405203465744239047708702931114856401716482907059910504597478766885174987796026587684828652180062479650964451061223568967425238612078418445928545854725649718632017768951896907720974525470045050704037667707614315072320646919841759250504989135044219010431022925260740860512681830225807760737019093042995573294106133307583387479978204507749513491264087633637434659686743289250434516476003310822580008287979441103179706428509250091968421615568475865860737514342899471445162358426374151008253273360902286731056755677802273954263967527349055290402053091786011788080451951327438997163724901430259126854231133966086353216199031994798117223643392752456387071058197006241020987241193188752707627107469408801115970804555697965020255223492396718331138930385572886218304564197512683601510822028328279046854323460811380424654422691625162896038296587820409471705294933742736924440058315411853723218213840334195409730343552515872224278343474562859720433725979876457146092744953913527950002196438986438186836483380371706722362908884370007529569111661080161800735487833676972595936267723557637932015086604087320700323448985214309744956739937039472036494263901116699615297431344146699977274006911627977049207282970584956226599277332914326717688142157482575815077549743397976706791048916985181625051611340040260155675960620650398441220001895347979335069831219301887134592963005639802559116638563464752939485464534241050611204907384432617288528774521242367788817041621399836733828449700137648522170012990089649164725585336178083541510145853678439037659089077239265544522813855830762537020925950968605694501390954807642487660992386946011037499406888322164260787978799162135858120872288481174152095083471960041793862099540088403388237748828514646195793685683198848481201254808135331245234104098669589363674253900632196764782831828131828600462347221737962755880179494022022986702554743759701068112211122384757161435099093585904101267274167845383023028193162369483184625911944835663292819018367871233881466370696665158442698151546750023534803953118063774098277239049070151669929554338961729047641814537617809150236015226442363934684515740006515457925568555044593491635693773028964829229922993012015380999020322344620387872635867416696283428856575382488998428648233731865602824642705089397644260199323679715865775822860937327636828255081994881203443228087671839705060508217034998560359171601139858210212756510919912374620544613307683843036240356557835659758574659987273835976656933265784673542486173573409280741895214738067866744816263482577453711485995950952751745891174098728566254847208387528976864948416506980225081125310132846103005446353290478235602558893326755203340997099121744602452365584330788070378938743344905313487291600007946186242957463538892471531998382201710008140700234014361622314841951584527737227838226593900350495762933765102414457586301160042791378383531500606409938535467763047736486319979107029357732293823956296309485435262878180012138981125171575870013705935573417845857364669680945704632737641328685846008302629987383160352838522222868961282758134578477933585513826221806227342916170819154614002454647760089842805360072862379245485924373342215343502609201898380358072628414554725663442571850956738504624666301265105149590464022302421865217061990544185770128035259079196462796539301979989422394494378659592532115457829557172295778282125598037615427582597553519835550777026326903397456306168456351202007814191898281847603042516520685688119996497039898264478071165266835375494543517603000072660351035393568561232429221332624620991809040176452118769873455481269453808797549526103713135648884098138583603857316495352423354443663549777003327555012633693521634534688056477475543285180122952630464957316370201567994496086170957203147335440331885093523459200452414182420476032710991287426322654486982345740113295464602435165689124660270156328316346634286340599784138814051615284543663805360248946488046833677909031305148312246566869713556691772925402206369926734404276009058112101265129174104247372294807665806048044835830097835115848246440153465472085521677241637318875824022095576966646103212780953077240764091151533735868520551367799234760741717291486413049400685758458061460100427597035198864896568806949813066172926536642908826173383055067369717796530241596744794953389890875791346396530475344415116693726380688515759440898087593408950731068325971672668727167522038649844008592575660139489058014796550708535424651012726923399928281636918124215052395035820780369542253722931219023426239034161569740348563821940742642761132113997750523463606856489530669719315295240412537603578135833614908615218234623802759175631680930800381427517095746589243651141495850086948069394931839366273702335919588751778771000245692914068377736156405112317956787590499987977873077211930112323998589421064025024185501685301177277836769781295652315125483391448317524828154257824609912942906256907152942322149812531199044879252783896453849066527758971240880006333393710979952078717090662845808416714257198549540061220970674797789499565638834190257427831898662158168991492711599797219490872133567226421525520892275702932062532108610908146069165112715349704425940298256219691440969252052410666925438443754500045204191808868793188381497397515746762861403427942596444026977204817860719845547727212463275532850604219454361796332975429459892734481900646975169355230921880618577058755056202448344723037161465604378754584353467246345809731082433726762056374945752974564320164137393099506352687944721747637630901982699561063045458934656636931138019064820282496074453792636938877700379201412113717879428372111825472062112893641721558704518183670721494574632533659223437640734275964382137185962691517129094780362805512394398649645941257343854377979436040156664229780668359538296348198458066180853105707854946462717245876069722044498823099757949347893172378568339691003457421502230143943181216349124784757338374084544875697554062635503680296476688361124317470188138665313734868189057108777847426139428141614370975714450280663068727941865809230137525281235212639133638603969722869001117948736276576646338292979244581949861879920009200856670709786025083594341729113300297594296373637527277004472487909965540008210253650831458154327575002323852428319830657468716737923669853349476370197864127521122303603331215318214572364948297326690043105617226182998765624886017398898038052703952320209569925483400992532342246953505190047500582991284720518244976430825943075321849108122928669184513345834733099517730822928078113036607545361453814189399144056436014379270272047769477362421654375658722401151887464641686003791231249427470546733535242751634864915337290735143637330650832559219253030556216062686042101911430483049337296161161500884369936131859459172825063227205725738610904255088337882155266948827567159977473764283933721100872618295598717547821232079977387681238451800094977606080599808583550977700606399747815078083154952657737777755246318724822317218024580037551912149157711671168882154209385276342455800696684801055729265137422801718723440299101683473674184081453454472796091587212544672141643536983679483376762107646634753958134129500617189153639518944030176548071713410017697471114823991250264617501642475416844078384923814269128497620923247444585717403153328032332548975958639540920778742277414190814110482931933164510767691306662107873729296466103107176051940932273577876852238285945161270748135485093758002772168807303262146950896542420673520313461530920511390746183096551421813254325824662303052591669796593432149921767963579394925464107018103302563696326648054030003774562575744226044261308937993746420775321560234767368637671638503171094269763832623319675948761631767713484080061875034621406154568624967831255514069028268957041883587798270030807080924563264689787666619339474682596542674926544502929365733764005527415744173933523385806278746493960780032371864203821680642019185673869316471772458443591379310515733328683457810159745522931009504597757929897206140335071062225781775569720750479352066741238922457889268690475387938301419683213584269444827116303265072315915717768475283798876121648260931511455692871752511425697537026409086409874062204019963381716441112472385362726328267190351928825621652329844677876822275882929955531331877033056607483875293388129331976777428895444389484946394884853851175934371330058920794883918030119502444295879815226893691015204248614404819828693925519332630067944257344309965340650293675562216275876315373819754645509573071359591448101564682264885001976331242581839300099508554892502948413785827475648557147910744666869219472836871801243928227492864560440139440157673019525765649993089699176589927733062672697236407391165266387506099000477624149995360922192122863011203166739866354527615886828530883928154847897849101908870027071257587756555040117356430161462390478482596159477980425562094646595981145715601761268655084955203974594408734028665402095648934254748937184416299471281697637372533788647465062121545682755148284143086488051255518794572762080377057037749484954761052315151295328963067221772394557370447189936135302892522431384664243145846141990526207399509680327546507491715005502561768379023448156820117627972693266780924444132170484198365842124752462937631334330141296332994491833334625427526613214221757049158006816881302117122104428211867025837352906764083624724383817322690128070492409145322532594925930691437276709243516523710154820775978296735465920785102324039135874826681359688690470583701393191710031019940094635047063077455936562791165042930987194541640852966289562161450069184928561076832567870816538532621736306092257852017562639976093894804172969755472331841067480094345626524020295843541456067128863314502334857364810643686757021453512651757330136022381339971105052832522222107283681174620740270785922744038971265570057278043453494998813729870969634334969839900991738382167567650154714220386320678612288182253028440100615860160997769618118362667390837150162811057617212652311081752955587301125248686181689505033129822829716993082437985445736069410554981445295381288203070147758239099772783084980065354562883767313581235488352605569360030140598856639735934581175956496415265515845272364757876680692308954408992366349461363220441299583433886985173267631303386896170773164504122477380562690123278557138794121503734770399742929977647570902328602984211485327646988198442055549502253092240164277925241077636221295703416870154641591400146667837514227539156130250829006128559367264481955557464026895290961561354869142087956633208958200703445460654625027748325315947203549805977571216564571216293482440152022206526825841448617062708421271715403662092984193402352399451322508847648308395570731871926082251759933706404309405297150029580807986671729736004089719418638523965498050045668177071301788647892581125058509048479751376098610558241668559352468815472510058642405012594289032721017261889111057828378693741051838420090648677423327960436611605429675887720265405322875524868577957926596306942007382080229093355085910226046823502711252750210527524459271229154124281000423242968724238523713163927359362948591205694012497699192561600967502902987985185179918955230959087513454068379409539114096183379035990983657477404847731864926187441348963514634028608990252816734641362824462631169119110591090648419125770280953118075903562383315432733029871919446360801612876659237205215794749627812961492266353177864172348253564960553511742065535273251314079412545296197806707886783835847243401416797935669020118596748382518106229541092367591520752223692360797297641107885562989050252219777239214975469934170020148055531333527907096825050405264180857102034702791979774943700225939144616742852843622068647134028597877207706372834665659657989789806733483468250222776684331852910386257527906639262077342194236239048405144179416845430889294205180407505833046563815298105763322280483896166590899961832795767704121278407646793074347927111918908006651535947985908974662388834256753573306978490172685126535135086190602960243592564165204964184299281725410046809421425512759451738924691380155863750545610214095187872322736019910786787425678945493188292559947176540912206120058891658935173036716958678572903715139737717279568487105833464828717712641896134621203397425835673812339152800115256735946187123811398689893938970081012256049069488682540042259950407395561145869289889506948131397463004518265526616604384107658364259041566529807549373151300351965057978192169528094202490883181945541651295878839699915244003426235078051278878224407537383953536222412243654986251693736397787332756638058333671156699188719921542331171302193891569836074123549521016035682821217696037911167087008269016743959536948696038857362533788943922012871648404689792567896403070253015412314527063233902956150949437751840730152870397171193786896072649260449153165347076257388194716315325281656061530907504828312928469775433666097917055162480854108314234810837789220797042177366413710609479978841428147451706348385319821299171104996488028238348141489022177828044245230398369398441591366154331239996374996700717052891138939232192533005530734616873492676998284276354960396537910914273367856186622375150274110578732930072513893364898338636583053143639986394347496191143940272939439114043287362355372046033989776688052654336576093026932420940033599460376496918789008744548734600408691087752708678643500084360845233422116558806066328647636428181360052779859156229003086722832546520441978703962794009170195921380129474792993733723079213890395290782224615254523490299002903452124971001671265078449258495887481437690803582822280933058413647200024829441134156324330124078189361748736831988674218277911838589933796118121855949138706782030870883565025192171616253984738456737867104288305936282330168656876766866262597094451622806532725230084478969360259164477617609195026642754369458497652998659499798889453262958364807989547476215365223295743328617651685457135976887887763581284056261527931242717363952109297990928882843852039502595316870869992005088751350615607525645296557820446377672456544628604244557206112925463343697528819391890431551250802869363399016980873237228201423447677240566611698847640771189188043762862495343179869290616257823620277038552679492177850251463663564544398529481178760723686997738597412630408333807524253655937892025780836742121533960763178460084875367179604697242030000798032691494108890693778905166935009703290054284827694350066173947252471953439515720146131380012489459312805944761030055224586356411407302188950554348117721425660573923748562226682091428045586138666744335895106571234197336677025044653174634325750354751527594957405401781600445219036788151540568517558651010939537485919471449395807910507534641805304480460865465539097897922064117466770464969185313547542303082290963543360898591824411568015082960354898366315322486386681182620580371776757456161720665353330489293546010610491575778026063151841848850431717028344093108167854485727590923835967138826938992639766587223468231855515291859346846597113103230147836981574180864173655421345774746873265705779167868865188665249460900199559627688242392810510905247669751463450901972955872042467129724210013194034929585482016417709253309887281804788561901132748014739017114352286107137565885863206880018089914297660979136126819056988826170409593073993228098429167393990275961962804887855321715226106776888875857306083765725249621705489493562524560365004605242855401951514219892724136480115480763337495625358531604859212621449445033738661163955768783894403495216483951099015970865808732784633572928145813673480553706466464557531349766153160907505907301855601648452182005265493129055655783902557535502704807284748618011218104319333261329385726771658826802555655714629022058148421657375508290401377281975456450725215848485553582254563518339240231767835115560936505616974102110972113216010864222220061292916576685176366266417395176721077906634296315575920476329601042776660990267757707232098471761676336578363324693604940112006227567744540793613970451025576210766095081289443027241897348785039060289861655437290263105272519079810270953748841181082255188482631534119280188664723121285106677534489185277388827735673347260944732457105716423056462867568767957723806786951731481337339475951632130821081718507680441504496771137718074972756395130936895954997562008452406756132032923925808638044241236638144115200994115072709384055247563470431913161224613745527695640722644275517571076823775403892072977449638596540810088609555177414486910669346988869824577981460067838793368180896748068843293815297968424855204338732965810872502356030189913932517848690379785240633318213454083057832912397453593809644888118041364303545335367824086999884971498976189855342365397602188803967580574393051862151620694786693874620404765911936007542906559926770247070618947389221747582662405533142854622194560816221242075757374162419253025054991840220550325666637062460308780490682026334102917686484351780006769288132086973640980397265582083646849919459285889096426849698902878739392680822762736874130710480161732174180471336424267286447497465875661485668361860873690779997581472405547868088604114588129562064313586184585484521219881784569359890141153019333982883126274420107137796075749012072230456312150791495982685122953325907624519438905279635843791574001563795709561307462961758214078072705555247268122811190544883574045101301644004570780373105017683097696811630022340251800051636957110053639994456787432483036439844472595759504348647787149940583082067098517577462383852270118606123478397519660166013178292449090439857032929871576782194951099527175104354813602836855062768845019522896844467174950444620832236965245629971840048663943560553906395264916252668556940483758921925986450618891121014798925181711368734444620424053659665509921854469390645167882160001334686712815846858476772828641246859312655311653171817741644402382318579142761735455683069344045482606840714863613333721425345700410512089886913204263438106010148832619156723363698571454182756600783640900194600905656361546117852426055724969875676968856837940769281845200871856469388422963074415515733362353337794487893989368262626947759536385152418623191204694044470033714537165431365542051551623622897161606529006340809660287841194890065150824793848324270732686005321620661373713577911695835580784060427214295947787367234605187845348804039420302370520343669828653334328246970516776590346150199469466637696411545150513340006402315706166123486110908431336894972346582216770133317178563371548648874883929054839716122441177467231982489154677367753275868260021842094465433563274939617836581811597829938952763564650518624300123555911400842997115715547590851617462261415447949804424211367862810747720958691545898239896471753683042993191215358866829180736820292414452645497302581041731310668307112766143318457823606920553480654824053963557972729035565210493665933185899484545907946017872395856766531601340376519900744174378931748032908626177234389072342054919129686009356087760310109551291995149584239445345211605424813074086465727308173393614528599808808273554672396343787006644160558441726638472316232222381486526368873910808958106097071341147189430439628240726639177286026904805322944768942014705933922186103676486825420036339105692544733790369279051526151726777587661401895946651317724694211057749693334463950944198716267558977679426120953722209909739910672458493624315670162002680733401346578719703907412022647201629021563118403798875981435721008572504178851492103761333171357770943579372667703619418238095458884419363175035417106806319910717376049937278770117950628659113046440420644489828404938851228230538675140022156178077403353774865733983076201719930327429353411594355154871037316217265710601930661652205685512834885376564180671453657587322101051052698159556247174449017825350760698765121866909937578127568487559375552642416285976023510464253103339165666109707454655247005962524988776823651282781273845494520148049253252951590261272391909759566175561080005356772001752551349924847499837828614614617921108046603766276560927761905162780697551507766636206431431161644396461831906333298604980875828324467994440261024704028209701761230335031875899442294982739319434202967256278007909577186067587402660426337427318562632986352773373074393594361392318677659772865025929000769537002895038815040600718953510308521853103164390860730423635057292146835803791357187402674544000162495505710334516160615745767750513133191342629433349555681415515005122552386673754556675722830195903607413387793039573603307186539830731488042853639077436147843187265512055969675540851717238902239059270631140633657990000210957131763901765398028078778217675039849576322167947678576055660353009716837253655897622733217148507916884883402083469584189459278574088604125536397863668711049155916100217873212421719190079990038074229206784175228488119088531653301139661670948210657325771617799544496119597757658938613354942480486078797400284301332457418308122676726134953284482581009254991393421230232797971315880601985073277207984382649702139161365930884698023784972807835977009911919776201023613397644337410979961446022820402627492623077510892335535816605813550239243284928211814942845908487037884128879171732719448297211947229110992251084697022030969767667678798559848508706156476725811411019306052357963119052073521607954020645271130793400347260616229111877598252315887336743513902423332066972159334826527317223293626379760955106079250794026950503129942365945760008295625741248993368387733165482567207590778697073901006006095701270966987631961654940964806753975546600523500457248594360305617112128988586680048488057037193745557818065774377786798119081336832359309062434994409093968662658050652452450828117141611931276918487209935693536034113668660609220192505532211684737722282653241729631002731899729818977867317998800377734516064374559349207913000302094913523830043092441974108201223888473967015006854739573747652485089801087933133155438643825158410755227525276395132651891272761319400351754601443291069288796390165607907627882841128198959612418570979842185161102987341694808498678838863409285233369198263182862146308488847719076066834706661246756097189086564715465582315295346454384879088054735556933664261455990334190423875229400858524242828045867399331988960718203799735602151726259669086894760690441684622558009973201763823592237164019428911233555641635014636957000825056354649034341191887754930366385383976348477246351988122560477968806429556252388117629444963429972998162282276463473453470825287534911562069073420134774793415173725173972572366687153749799690071553424992074313825286896482277790913848939819998463363818051025260074326179532984489898103410047830152090732976653094252709969164828752383226606729610432296674296279334460427693313840641581062570481524599030133593580408638029224518191609044441332145227036030669814483965751523390779000268349645166923742036631989568705298112937646844206602678066070114686512573456373227675281416665477125055745671283827477679827520908996324145959117467377518083042734589841228116014075020162922493078514194923814659108874781336243379190172433612931495167930838166059692955807550962953053217016404160937841364350098353035222828170232019473889949929543587624352784159642815578551324504733491426956357127869537452648115277427165190295796522960084531286289060682032616690267989993167872167230944815719593476758119204561832097172625043375588143388520111271761946485842898838775994618441021919817488954518291710528245887160576369019883097636708602084483769634426083820102499373113654232503942144529983943919854033616841695813066085855581545272433921623922322947029387111774868799600241561062854644613233753233932248172352351419086422280565861990932264490569032280009546295971788954497934369624945363568033191598256207285401291446174310852136572951878311723172284107567722062235926510871701872562683156998780233117934804095330692287066257103784839556422779109570403024072273480824132837324488025256730185316705283882214767309315760221762844119566521729738402634869899023143728043281253878839889718119043816947402777804149046863682434115567449759086579170507967935835229404232476927023819043679246064531326202074872070992785202222675676685390320240528778070068817665366564025023738094535450155581328465636698183161062214396948182306031735871278270957945783268867445876010925978458405799922069672688954527857617793419049882940976807662523917274672598097178855076962572049399970953108106750150962188351114459014613709069752618579609747951035687793606032374153045554128313032101149009919709469137148403582055163329171675058285996805690760171045698669059407910653897711247359388225801275126898412528121681264452427375230836079214152725568443807241111104565198993642038129560918739366190365698201477767149139440874072941731298265057819351349559658275630465326673413885763911304184168075519590292817514336712070095438737573303630523021874896313303910904767171925942811855588013341275821803440820092554997807530221868698203514744113091334759312030523882250093509061434854743773068422311862567414019252300714712879916012703034529643597900031010128855632981987641110191594508955562849428108444950637432274978979612456155009583002850314185990958590032534939336517078413428156316857002148872407090980167539127017549882369682987649972216451226586831143979378273148423843190329482802186308790211239200760957771170972211468852313365246374703159872222864243974679052281119585020259672584424262486149520505129028276325083999921605794917294890822137683833448198404153258574820862542985752625129692010115833287357214677524461133024842806984874472050363915887229214961920969270668638597287752326362300427907230082353952978442193403932203114812664627996666397175786718509243281770094066833895997734402153095300903741621301074035434572781396575407517828287274020851675096636410969730923627356135986664749135930684740883066991041241351344608770334693199238982746069196559531539843387431125929289619534510619469387892728526098527265790739981922777272101722374575752611094653511797639357002870914531634778297984793793442782555987231555941021389112024654326672575877984568814263649547759388758815737753137344062829671082160409571277926664202072357630232489662843433473631504069393104243890294060365642236291015483687052243014167691000065292239365639438962318089246841765999535772752724280164145249897000757927226506765566199776667374477638484291697499751675110415240690445219141019271673328573321997872014531687258696550347376413122810655311470590893091793323108542177625811975845170039666704149234729468847465913788840752372779065827777285745184783515637605805584198536448792068439632474995229329252031867331247023398250925244933900130934449410457241884748500142412176166548755220442220053246474690241741451616038737707191484418294888596233927449489694003472298351328233490908870403868931588692418910182821229288342978758330481047661520381478628198394530652445167309060771929394773931476638442790428946422111645008931894929480114475736583508488832090851189039741920134141412827641119477685242871727119182328698752687440454694648492509490833545223982536304991009644516983972084108077847417265352996495017578795652009156013032764503357448393663110508972074376141635361080985299450218411918518555766188664189755034970176356747993025647582253461608862551983437661330310909109222844639643752739376636938021822614377350932923398508496051376308850917891748694125580868556495985861222723662857621745458810450446046523496816978973219704892494037159566326516982238446488431846549914653900065639895245702599048965125019993306978847042305994332212862113995482051623834936622387589663971769344180376141096528068958389648086090108190083468429618404375504859085164410107565748494601253225687909875018085425845325281952690764242395752249420423760689145426991321004275692788090047829984111052902133996825640136312446077346359052339808381593274385930753559913891128318058245117210157402057304605573177081414175980842219523225166003741477961952455112006621145963897298994710828575926881315924887890963020556095719753388164777838213613131886320783379477054230793553188978662848157238665138319582649295997978102875346423749517575375625753087453773708614864022632305300187438813223287705996108773713533905915022862906098543694986073779034161353268448165166738727826515055435265210721062889167027326626399400996116550055564074605337260930634880995987612302059470085218907606719765944847775276105514335751141692750207200909593047707886047867574582696701671766422145949721551099911916262834263011755663609988570542677632681165010736675041362221736822137297443510748043980686194320412987778641829230172036282528282795832142063943756621346055196438063784622624711934649942222151039977659746566509250453560932933995032697451853228314266424918389948845941032930843095311558555918904375299374069051471171815556598066742536625228701774611332207577494636200284488591008363109926223109351634556526006631442667769265419019259005882733112253488802339038537519142196925176016512769773958820764019077652626982845736565083385012620249056621665796254201621264437870925782251984477234209805861198626040424888169952940657339835480336525434678051891143575031331190541860829515540031090518341053741323761548225641771046672395879805568020222571569506355351283876569492972335021751677891382401488221656680301515191800875231164320725949453687642449560926306095468574075402095874775004727795950133913973703273355444599307684669383714069142058133840496410116282174081787582495411737026049614890287608596948604286484872470631634698030601931817062198699003321196314587989626937099642893973530860996419977618676832965077986878885415867294264591390617713313606891906683766375657930502806901305029592941947532074525132818011085032626459782522700988861137492369623534840664990326807545552866064958634705046735327097106846544275829080250680393822542085369804666388094985870839861219581815930351090908211776797274675002437114805084710372102480251226335341783135719663452348328216634896533544282723625727267881592816082338717665448837810227189981434818731774259319092078988814425533464110533123528907281149964076392136220759984768009782191612388984342351568361137307848867834785376652130841345239998947598644801778054528030899483190076646605412912413262340010210023126144629653808804488265341203214793528723483948386707682275497168664128410087782814562759751910884360503275624939410125054943252325026804838736333219264615594188857337061373207550108144639247711074048627740403608317394068977755592627331597599239143175574831268942042069953367641264419035374407913934315398440613945954887508248305853707165154924123541793734289278236867645883483634468224784915313685232631551562638413710118289175888148855875901059279631246518150157697222214281684653374139473669557177004592376844596234814698375655144293391521931118080513736183175383651383869865332890001836188019789208900078775069566662395020459390587273734272153357699844474495714015591647665030058537946125964661203021439233906216046771010125143616116368568972377723445186724609372768136993299943278326724311209695401450226509266388665238062875423693719309441736852892917568012704498339968232778381203915391397357023364192804365380643301205517313083991745836985657084673442134071157445213100749102772191421468813492410693977535687663528204590578299227396175592391569279651691280671806944910473461001235690455249602125212029215050701928066331668846327775887496567661671432698452764566170684101204682624218966859155315917386770481116569418892573659860827456842043342625340689183373413034190152828392678988126012035829298194384161699217552312934782799750383077559250544037819729544262909332425912335713518900699612321256918735497283779676739522787472115264949339077697935987995896826524435337598142892477273571780364836493306554763296049161285020791399890194363409857137167541547244993722458616342508561883549687641836000625504720350418035959225284235500882919604493391385673032851760023463113166569686322178749620419111597230243548363150111407156144152595699764363678367242786132594361857985596092800862758748101668626104467282110397101097219290892899855525983032598851640522147204848702307538714919244746632785465592402043106550170759689050155606398382568551608581085266725268118880500584051372660105144973963623594902570525826292566980909325610481849493522617479372855862952300012075173191044148456343328697868548598048074994337613686868215662308548891796834505161440622549402746789809863585917749890315548635108912767819286940859475691057087602410906389690545472580773461308519269520336614151719164961926993718895899951511297825698521472125944809963861773246787497240074910088639406598552085770671199914224150779094191057738572262677310108922341547587259202682016777234163476566762277917617762018104394138260953351192229793067797184492204890771225097422354104917984455485238005417974307649939432376815128549431815650562147140817934597175979821630121502728087354766764937036930534233292331097859816320799526317701653603362317192798054385272445355915859816825016117887378283446731966702469643469425042076353630673458390486018737845809125161117023536761175140896022944167305013021088429345251923227511826071582311359210454635481636421369329714426414258102706970864539054695449042942633729466432128864893929280881704340310275313694817199117792659640599636140846239613148535289702200604583614890114146560394475080657488763424403587254519237671483081477508273131519861228283827051039498772508268609365002533503301524013862077294318519082721269918327643481092812920250019599829654079849931396079035931518459751966827290102637363854826478866737800033379301660005668240542551109246473233835068245617730052298949407214599186649601205986051929221664586230254142969944420207628652745489108653345183203082968321884858100546010315828960894310359360132197981007320938068746089618184148557384770974429572771133087772435180637722883753055337819323744921004698107698853378934833370504740486942207615688779461348236782121872573878188520959295560801887905150714613991866717476999853413488174593258718166308736285122764539399204558009941135206145745456339155581898013048680797705455979612554515667582978128359777883343523596923193211259667466714865891286476076096926096078586273674448389477891693869785037437967085645762950510281524803396139215489024448296761860231431407552566978129397256713636562991501329102992881429037442533397190090024150042263886364450883922017507875407811486260391965236536861243273402918040826508021487570419850014519331522675499665031144685329205201690500225008068509223656870670620597522691396890043364411616575192856612906194928722285728123654282476776507022910235159502640099381170954090387756957637158686793854920928831899866720414375085105477321835871123789874486430753742425374385029327562550606907729503637401579811388861362540490087221281905363316320748477171928137774019065063327282290794285301193065115061851493388240316823547922967952932807427074565344466003615046834609465677139691839049083292542161482801287713766195530082092732322237222459964114071657085836259877196693403020987298176247981056405220859855153312356776368826523283013109911293572776361341589278253477410398793874791121279287067084368458029900861271229824205405646018477548672741883650702158288716727994312126052094006787606909247163789842423397275883237475444697181017712733147994467956623084173057939901311588541063497849393542805385219470140298297662801111102807701618396739551501272259878417826986917724009940770330572636085819671001952901718824465713746524318976888059591031091072019916703491782907623711263724086786623255272842583098690236434866213251727248209627575584729779914786740857175344770136882707609098191261806245373653223188703366335852651284769891486520263796757822939843894825493205883179790515436290378150188514432365237051201646921233809081112950942206130099148256850537360362127439578175131431738006196665148753541850188460569017884120755569684841141856816485692114330089210802851018750732060098020657752682175102404296561536145899090092917738252148210554564507477754470493358486267569442827604830936292993919526686801186327057440912772595525600741301577293912705852910589129064462731371097523205938939053385789690389869049506093231355051414893626364173238909473044217904458154855302683344063346634647948026741369934734719266705177153707145349375545289289292213944738106350290042539316109062509634891435115062581697800278343541100915056082023434875386592168933974070864747973385117965778001234251567826390208267896691743629418239370887939371048562330039947491609860614833146298268035216662077877507906563601204954454995601547741925047403126884473273604256294694820844720581801756299290813922719715876824140567020166887434874917081604258128951810612232393983802955340535748479255296059358714411173431272535626482773932228084432712851008592248885786464170409561078986431840476821912211576084121590946676707398994401108457951052908723884200623948791065622810097253385287517419100941163409590582122397601414506627465906590535433144443572771655515313580140029240075168993107619581659561159782757999543699424705766903726266294582116648386405995054239653848962576674399367775386555853973061661108843784147314433973376899496647939327795732025218415358783312465826822923557159445487149195520837688197477268412780431773888105465846677255548995160326290076361354630495141431473525655551314191440039655932316862034564421932250714796240817361506325527437674515453112431025724591999708278028001842492810875450077180730295522510364825838883387181975919152425855935747067420878210020065592572848108171168360798315703829765615824331632701769352154036078423179326749314039633655728299005087276817222698416356470654559222408815365789115528783717820268331440500752625955347609866453915375353393967723396525146939364521479460727035154778104772371866822720426196320361680322616901135240649557409305687215577059895118775828079178336333155694757085220037628064726654208505520244800007956714202927163082348652952014025015067760659005649421587353085130123198181230488850284302157850112949298858402410742952195039934249804341225789639353542254556045892680792604748147191934056752691700562249749539490790876018129896749307739682472045710017935360371963845013178248153940383416212044510978333303611929588579887263681411823711683188313169591126418675763087806599647672333211590007218757969346339244209629205996091548207075254858275721429186116276148098899880728696746940821989194941056833448486560387922817553366736380612660011648425302010761431413282425582318480415074848551622570787883806042968406577316513563496945430617098949253206686886879954769216832212411606734559535978680066150366449808321807827732333247826003225912169190527743576283253207516150028226624173547527125319269964673847916417800450501641322963891597507511198849626077138378203321609588515197514193146378450298420513130593378915225957047388178989103956921565707769785586187013424207894582390898556971685600206965493207349146875354357945845211633593532158968616822848281688003943298703005411442481840017963966522043126881415206684966849998347792038199492910124805963516182120925607663518960788431526286577854940510966330299946813769235783278377861639117139197803380559900503774243181667322991928073765587255855171157525327589885024199003930085450223397392480848303108345920927783386252457122178464612618686350449861391715948644220850935958469255396617610580544694839252082430057808997614229592397263387279436937693705431761940911557005307900801077051758511115329600254907841491370217695319505022406444564113861496728583117165259877305687284971630248921833462451461696906941756348280641832299526726612162299065974526854825492823557052098028906025655542492139541989741080944866456355846363620481306867804662685820614692204980747768320365262053567039993627886950218682185722777827877899736525547060177663813748026261135583793495046777686076300065223365627535838265213063641040133957014289811294734323637322576813961259574834364442599797715217440281563163095867587535301530899741071683607330657255479039539994249145870182317814530246568283093222570216901142307919631171889502977988609211270680978943561935666748732777178972489582711321988954513757158469875832059721840539500310663474147659204935994078355601038692640498837175493765633941432674495508298509207890749826895656864411657491201559873792837238312892819432337704553272194435367430472733226954819478413968588875635087051978974033700554991508089510045721515446479827739684961252311323552093838708607542389297479069526045899923643114365630296809566183094738603832417624265537066696301890777448830206666524928256594594196264517566900210245108259375993583628464374593411381161492130926716811502655427687561788672846821435712779193829645773725157261065270467599080364929248503823414419435544240212282022940036808038019864706177485430113360979688579979279760387473287752774715904747313049576605964715681611547793397265157515021401002672541347763213825834891036976018689048311334622040951474076426981189321963579415299312565891823165161432393118594078206566156013880939071740527023334215740926745840526393487644825078648004650127864707968616561786852100968636534077140762762623919100974332209051073052912353756100573267018524912934282321805751032024600002301982608702392700659076311975284181700311121392485000669206897220862691309290637025005522957496989560927768705657902625108224144961123955443875344361794076521751867223351710091794071670060372192036061947189052163300624609828837361379671099599565070499924487667576019035639114936966251331049674239150445100126797182050723188164076196314921046706685090252281112540015832901173077136283297647159532594091881155538185016673275726768443045404872324517151331177071367252851289615872454359185940343501072874378694011738701402733663680736363276309391752788663522529575821082146948812890641064962879599164038961074409433299763211353290868744179707171778689639330614803902389639484019613345225189635097163529300768283227289245712538892571123693370241706065931663395426568094604933370307386979458643898796559573988809504034612798883791973456889961865676869942997064207354761170547678770384453926472129441943763576684818513485147917410666588514322594931468139276356024039437975446135047110401232832145472104892815391168329453163635342908872261422714081444323144507483511431919966369892027088169086621288839084287333094794494971771781427428562756674899261182208078974678323259508175917844934392632031031385287042179734312208581894824402967300082121040815054507533721355869051662853047624632599244356693477273175051588731335314727355068669561452280602423179980223238813953925350883622935642733019193883950456673187849010286815688387913335968926144973810467127909520548665301111468171655807975390288778030095408720849076536714229645172919425851551982952372861003286858800370419345551588983494198819733725780332669261652929283008368136637901745991215352317836501869005719642755179116078042925954760353091787142493321774381408318092084771413319426625656396683290255152990084583534488359220076742268993537967637453875919748273574819598087309056286249547883707712777360265418933943869712097182314799198891156077088306071207150979682416152408301975704679939148319945874821729666425696822042217321366581084559705470339606170771282632357464432459917107588302986772045567428240478661293923272179470611502698118005066057214599725106751872862387240916422002260038843738018869146273570450031797970813596890909480780987151189353828771315184521537618917906056447866132053220186360512823407984936361194255453679616841305686179419994249538155721947341494476902870903231802922049004923080555237917096898934499067498698068043371270625957008067161338052072919899034751102722968528276223817173204430254830141999873248149794867160421811331904794496768264753912255134059763282383804381142422485620714808707328192949969856714553297098350822201119230278641177530862361879199907079786302983870462432204360332260589589092469550020113811871045880170024075137036259151052381329739059770389806415563526837016559268102783960553414666082975919805382086691840082631010393083250031823860838529464614757927868317673325475167097383698256885231178911078004623302512554517099968613003698276097498354321868182165387165438370911762125330990886712922195758623756300749831470866774839608263995573087686497569876589409369292718610965334886901839436478435428670476040030888979002056518930309912047201857332273591566276129803522962876726861609290879103431669573339811916527638473845437747275460892616652460463874011613841878555189618833999587019739831116671390837101341159667613783092960035268026427957971990609883669171488719580874476160945334923549482787284511873876770583914024684360633243134098905196517212916788300592269465725234972560764062902189866831347594195834021304565939284326374485345378605372113961988879317557937867543108395314451177896698338319250636127840711588063606969542054180157251387496906757835481346134434888522094149084167151326483722969654113726367140827215536112139378419434748546105980621541951509841626671221621337884271023761808814762656537118063030529285621782349737709487042988327313602244287693845047744296853979620521757502622197009128060378855903915293861614633561502040854121245530587460521803668297983341467805945970184027141854326185616931659866546958205942323225617815791805300073702342895120879046952202474942321731083042022695158120044415543137982597087956248915878410186621671384348289170545424216070102949579138948843450989690341208423613923173085924227352029992149209961418252323762469247778367763847823038721176719467598995506094558866464128983347179028223090773273044332370041869379387665019679363356966044336735194542751958067056121745674114667688408839793360802903809662619275384306772421803291395782629671570923388240311967958826597005100725022892315387907565950498365143640262645945908370568551601260711041052453158448439803891189984718526090169555187029444915571476565000098641093592853343773705152679295219191173989909825517233223399392066211617116371404654955603989176542702339320690861526557413840986303530108080975456503850355272000809339241871908249067678645011024360256256372638828097713518180390877153875278146606518130663604250771195689162357179325786114624345045797877850635543346241315670539304563302710490063498707796943534178348074465246273931823304965000933770842479617062317596746646909654393497491805150635176550056008059110135611624585258541763141022593693305932554100730382671716821264568236195278375291372157777234410570091454223858331764116493936907900254290784422528799487474618952763347627999944965653904889480324116556137562978039230469357251702198482911917083453872846272392495415129699484481098317127809991063162271313248983647848893339849664773834780633618262113276177593185128376552464772828894110043616139753832094589320134008984192568287189520007323480669219074494802251287264612935796601600315323416188087195219169726820660133908790716306672969887225405193977179412410706854213006859015803976256395564625074249701766458204093331571115438113571603696999043517164565455884491026995570318522663286726571703949857298881782977257223113884724170509521883808286603871972614126453653160720404427195814412652734402543789642694155369055494211877653136225365859066883659875721408206762158520347863243497925510766924150280975607268892059549722630842131171694269442157487309556668159829771188073239763148400858148815352233637588253731731524533370554071341589800247317430117084609581846197135816288369289959429682772358721784708543940812528489635229396820625093351356218401379575823966494866536767934340868235299585152088912895389590022701770418877820581207753568097791877031805111852702372573177567627087260665958419742329790507400541779540902507321241482106346170240584912513254321275450034703520916373527286824509322536326339115889625714915879438107461841624620043765795428275032206768706977900164714180008544545305304877219087578217181522868970095986837970004005890938707633104311003241153074480886338899336948947174215247358513470945038036141783232218608601550645523103343910978638829781914035615285736474644868359311331143198777470041756161962823229756695233234297483426920997245892226555293671784992909875815153927535807600515149621913529434068957961890139172862845668248022403600421321762201177426137379873670852298733184911615065376173755774046128348478332088482709779853016892815444533577765465092618381065014828021496154099726434475389869710142774362561511182922104305402112617314531811776274749178274785200143643886260610593147932081945763084525501038407743251473214307430992853955294580727421804550748913012873314148656121929241393594356006778796875667637768237856621423358949380716837752423501392343068105900987267600435324292606219932328339271552166989965907700944477588149831266075392506130122539133328502807473496950168049744177774635447715329785170372662378920501523037533622916387591732218860576091957135318848306829928844162231035788163430437321167978487554371198192335276428199756527495314602663493913003913543240501498856664282001450322929035629239008770128070423080667988814857927794010581564638174739095635261095679775327260879987974941627212494936120882172920001502805689105112955967121295708083457872001554804369915206098309829899663398420822977084379104346502565561413932764226738195099560986008736607793088365389662479783714955744912334052377400696421055502758590933867000311369226065469478886026027881704099923585546824405966337715395679175711865217116727795298356438785668540280908801878634952685753125442810952542630562481161554014310046056037388329780323432700182292890228003255742239252544496026605246786590504608721083830754827116583838652064509077655553383186347986859823861697676851992526024800080596781841655115226068268955505461373627508281368369159122227139927345911085493265394026248788220007491074267597637161529073188097555659299382258948084444989106367781134628700792894836399782311156057775442838283890638037573460342248038637666238585861890670197121403704130285467216545057282673178499337841830505365102004695407282599298349953621755813817007654467458800426049139913099303928052906529849610212507420311866735406043654468089452174186912386416734314464130490654551095811979638961588501047042376267467837567563324539521263649489740685202230581171751474411575216819520469421709875584279286752340508619533802533186957865930164302181486918387208775548342591135223859303805764529767715634062309854341331526682023444720654709174584733530169704356560284938721519834695931406385580217773879528198169421833784252909781525343810971658372432093392273009091065088362341608704794093377408917590873852909488629791432428412878860303214485710763033395185488277510428683554814464410471619660790939630817140979805657553159200641357135576656280735594036594317085617635592426197314872656797737481495064292691664409272932538165436971047379712220456227686955127053025766051764400592581971971887722273192712053319344963337324059201636996502845842159034118937660021773387768393878062706368485116097790760787453531246645420798923557783048182944716795529369758979437471164011509296374128726751715091334500450917181064183145546171568981419359603737777998017916538290580274266895809875775254730724084604870942135859017684909431029764066054971758885699591741286772096224165703392952373573144645596488498663959128584509456860679746859405974570728062930368904380755625123162314053054492808286975071225788894753262544169974834075248894168027044664965038095124941237988030463297341335796717134881457193948775304117308020999416039797127645643746300947180079964294203505273061687961170719276533952021584965688769587916879136975510765313997041772561766412363676722211546151817685901241041524179183998323977587563322640454187336275070789467777812487921569757369177666350627314232862853480653104614249796660941021263073603048472615852847677237837134860684326306564684725407935529817234041955500237453300548883630648460923048689558947690302781895482423067565157805871058581226595198372064491905173032133617855167852110262575010337944047683323358455504001395253063628612282598833491729599507013088357361755275291174903199962509994752126804711432996877039202563377779170698875559096638970645075246816709221574695409146462996870757757787935446595347034089511845284337846715544581234278397581218907818696891469065594607948611638897371376926296827889016639272060801547563568738430869226824367624645377384644334123903604279520607826779769789045601209691244593362676118289246167036349242611918306980513750231453732850705516116628983593758694456593516700388046229153225623857836936869747876029116069940013324293214052483637846426845900925436305334888100215376293204364350468041913384708659477004364635673489940163503116010858516167973347318167572994284075359159343363363796767694773962449708565953340362108544732952089009063771036925485342153618139186717596717590924032311571806877655756372941521544998690639672446264589899241182203395611539088129366408004665534080802024545345634703540270651682236279575117146760037933772779402850258914026474344026982215369791230846850375770729026616586875271505234481655777354940440869741261502649483090773785423842226324393692933149214582354833472287717029446668684412850979058436675762242070506907360186764401523710442295984215621217599544534326768163708189618792630272671170265005479555576870753284057686536984117485319492741985816672651575890096774103754518443419661210907605369385949081451874936659849439118288315958060627498418250044426582453716819725747637652378491924966101587818675822290143549004607477532759774837068430139368961167656413727768393710352812449926347437527791207879193574524073308565010359362705109563689007139338973657984155439919156157561857925942444599460247499736622668061091396776161932369235972630262646255717700359048510327976035083676753252174967151283759518598946089289278711899255321197740965828331185108586180784845146703293006139456571880171205397306140661347961243386087211423761254675098241843414995708763326153028566398278749751772400498878467359713344511215336125183076863488694749382382964299446939684756385529704368304659691836394534573900118687361102580778064891006575269516972615305113610134337602315057355455489257068592083388190535360784698489564905329264542461869718723252748181779584931564696253441221961286670775523951521239725708947357887645902246734653197131027334677857903173121577397381242894395101402212311725563122729260443915648046438816905851127444274375993122169228775750313612754410443790422595169945418255302896103054205618489843816478989252184410234300647576460680788042034805849057081462426526955637285690757908737944406259119218607810429370112686264191145461271298993781933722457118986356075048230437488077212412297187482425325949968278008387712080674010011992468573833023727260169720906391975232356907054248552762690494992677536030721276566912216044037128946917028507010308109584577561044995848438657664155629065166332791025363088229083123027337570072082644311162114575909418594676257366746043858921719623276656465272773902274638711359895954983132363600097592474122370575060173497852759896074282356725204834928973559764348211947982472207642413110038532385732534350892028722769368691466285486251217168818315715467687392141847756810274796994746922838529310859208723646887796633706015243561336519279495017215037623715977829398668936401731697488690055653251218524404550268865306849758337972341528429069876377934181618418516620884033113831471693042809385387212084157597477802948809699207058810869522953980912229990489280668079863461576006352909429991858632289574385553735072594915799679410560963966866628670416982704864945126753072004417843949546873788970355054427663738567590472114778814011272198349786198271440540265701082478725864847142491136490221719875924337976431526490235518297235824084357908933257982607493477701307217824690378415188612418381500467272264888377335009518637773808712658684657541141121453863902490889525777571426673261390972451008638809703871893029403117362834110262816877570521934411287204697161811451926760100484818867596652160071969525948726272390476086400025795467348101307328839556991066878822474190398511928521257421847870814550149475284326385742455107329254417645492691814312595465901530015798545439798883248475942554251719548299472928898021559484851182578506025091700348434936833136496326750691403223178641279779625744616063912678165663367147315878517893355832944622688899438517675899299557878189552659475718351584322020419030944463125370004403007605941647922200107054861663737645094913479814372869305801437740929107080202231050108086381662375712099419275172757985185572575968285173852146552744521650027200573677707639848549052873586067779450195231939086823844714666338308522723686567031108639121752474367411686433214370285532696373242611348269435191725885570117301883758952489236806014813729323216248727760144592013630335565074743266322816607365108897461128263058788628773274178600822497328460881201629135388725787986711145946424242581904825902078951446227397675076483713312259281816089275783054057326308783801102117860978484113664903953791643270249340026530392951001167130676662405146954747415539475587738262031847333139356405934499771560566340389779598195184985235230358175873935924071468796344328833065123039928322997475265638393387887001450071945108800575694945767035817074235864730454949561626661208423643695988809374931678217128093428868217337567185053644582207878223674750042791723374845717890343900575518706248415993977113105204852347731321020481894659361935205671721669137546093626117356771783680056337031156957990626995195854874714089469944041575477975175562248844190769296386533406891322096130940324210783030432833035596271330542205995642944196718103113316647650095391448058960508709643309003330989914594522492723523525843694349934966754267848092005063971888758149193712535703168377429870936659773883170417904464266966965812877192021349879443588000554514576787609685723174868457609561134645382224833366774227371622838801086585445003366920050771262522914956685505160460242125222517704794381698013546928938567319365075334768089508249628082848312913744335574087316318564936741094264484383983853974323006204483359807258852974660391047878023344903288199749064270935112189874593090475675702924546740331393226452430073848821854527770744508935897216502110868126571614792833046892524470293925659246059386302345785974151092351375488805932556861738841600744138075015778379271010594047550123104502912910787851001974831008920709870480060990843048057493061908040750088468606423435172781025652366848816481872807039291279715262862543142236703989542374066085890141030620020136323455135738591629217510781497772970211416046412075300975935560944527466967174665193620504318531263660365730553665972331889865382747741742089365782134557630982204806001894826843912251013016961606990674196043213628281221143824224043956335644370807585508053236338510938674138658377826653053450525405155129039779110272359912694088823998321420817148926030435928163546329927894881575793621336073955735351008800504269889175827110318062233762569350970271416463499026004420519521976583878696521985845024602704676210517900863462186981109338109891878815177765239107762632470485817616713134633178040336076124625915072236770692543272622374149372248177240612572155873102636049943805130315153976870027560046738085766173847176399586837565797368595657930780159899355131530970734504577642931473235799836968631136136600158492333242469222133066293992379223328658268434410826600790775323698677253033850009447720802893474449787171752295645776304718993388698973355931403823448372438167947874424436638048124047360236797739819847192892198365422512773181945171129301187733750561066593470030776164292634293361925241784085977555973340203813082847013715222565629865319817566201724515196077812812681798715899334919047953346410035756257049105434608268313302212127468198711365331613360736468217765711450393200876253283592119900202811380381254103658897573313188374046561619607286075652293275113142447851730771376509315346709095926129518218347099126221306148351569334751870638655036539453148776244875274933689509159365120540536839084473297629425990841438740431374114597423714421537830033921744880042061556074880391691070434169454284632485883805412238882791406715121927887129884924816296841588580720546193226505915981608691637097104989456044624506075352785981794297447222898294064622154144746194560309157254024186706596105575380208428707951180749142482570002249437858590413391101314130002129358825148302009211987417502389283873519118391741398710052924429725451498027489439408134504852897231098661163952812612378639444707530227390298984717084633115259503751284686144431539571710616095491674861474017708123339266866367393678554318178747323131621167175203948596941687381972864441491805870467203027353536252689539460374760153988124154768630624825384556519799376181411334895371899808838377763722366557221116659360798604765779280729588060419219337832939763080536529488140772826610335788350174168498800923223040729459559566165121352688967967542033868290040915941044522574853800326712915125291998764814781641019237164099059023434047213411603638748059864382536084544889630685468615704221691504208825596227603136399161882833031864254465787939843729383119644020668243334985873283670701074722259615120875808959549612431576578535990929447689281448742911943274740873243077936143460459749727309093436136126363990971374810665863230003557980670437864808165716180638456084893388217556045604040790843156414250229779267874638491516187667224474921406377772101446263963138535714846765595083386592625776435503223195043226032240150974322502667719343311664831926330665858164765608811052613138784545756112345076835110043513688129058933156041355218573006482347751852666471010364274526897422091305080805713076720079335946953468346896529927166991277296744852041697244801134435798944701248424046919435353325987074276828704093868978271877626149631973620275560274235069382370597850523066094764326541013625006135480417744163170540527396197419589912544715575335672770478584005440336312811515767416074344455096303911437084420975528970507274221828029850812724027250668707320202972919398971735405457937327546886244147758607379114996547627607913498397667541913633905904877118738941668697570123463389464513956069195032874725188208999182920369833105009210919455658392882516358998812774823030404015765818776627184271459891204236037031649612402555711648294133995329194020760035877006500777947599257020171829983236850928072030149553686767439815963885948246240049613978618067529080678237135604488389102143431134073118784903623086469291751104994889919942884365017370271441979425870576794531847536527173454633841972582605399227331101150907959043772659827220957504775258534029289411425785530064202808721861926701219493572044865810866570361653577859805235161893693716107264018103098453317745810726584251781330112726502369911029970018930312450568814360516950995779088704780374642634536796377857148194438295551058414595284953042417361966492899231110899363260161474225237482927777332226507723630564126947852040067192176511653208898831473935402276734121809763620998516401345335694173298633587332018760581075486749830823787708738096775712047057846599645367090531367934493129425433879574882216069352837774452944272492837401574352109069094798926098301785136167986763303077918525609081231946943341373748025915627109718268067078553773276884401888668696788284209382974829527213491257250636455862463576646594283838812850694154847297363182682864262764619912374301790067540176437464198065024435071400451957244655158386030284266231631358997671236131691048424404491258094177997490242218404169405533038485430244791856023318493693046496012867593613728424649864363824827063415818264197384387882317886772476289848477877505465825168435930370049436120429924022120005412083904743720295206351417224488688978297470634861533623116235300510831778208349320664925950233534635328906859381041877720045861683598243047021269672268027049214851006315962772356813493439886742807023155778308476165101821985750794656248285808615044977053663567395466007346392171387410174218757146513739360489622373514134855672889056569254871525396532132134566044220153095208964109543733023669589331478298308666316625648278417106720073223533066506396399775263954436009164195850070876214046600080533783804427291137985254415151156853073610920846872831840393048100637893053849155388514030079609205981382115764205754792658691958588419483377503984968826964581112663837223028697173052995133084369776127819438657758161967525973959904720066857562542364759579498992108010518513245053250637999316839579101045073263431574591468128949496518429670617985062042933999244831485442377904986018655197071003211965256022181488284946920010070406340385835364039192245172866789088639711016554942385736756976290173655259944210926852463953121346091150018685251986249594860045641879496361207894764501065855659445046288136686999803876392989569292915077391944934342995144644597292493244843773738181697631139898403339737839698036600538523201602077392335528356746004526782988291558530752648339100819892778428705711518448231637842550456853533053669348836127850074780465045723895789203639237762995384702902319835841809223419838365307459810011140615160468275772967749646333234566133877975777931056552711707133426018806366748810706910777527749452404771614743094469466816939591194929094761911938858486859544879320039836966692314980349738411738786272703910697767948329722718853066105045789564131192357724736390421490840758772212916429911280341179841069748882707286069320075038017605511008144063236702548357028047954044242834878247142314258206374830874383310491090311742633581499942697372708185130894410726961906458199048152953065060541930269621095275594015374666739523733030849593351972240595621058756088976427111107786428049827546158102931955277703316351582875384576991653527085800659427469231072562984037844731732610648935317547048114767887139889578601450309283329334466860968339337830954269338200157329203790023183051786676944170078461141959969372662468457999044132419109488092218425627013578905798125554004093037294413509951052142789793087903167775267246832938229171118232507990221513930212358393826725561817684617922400607950414421128429343093913648657658139976773309946441994855147001267666335016963302360214638051903300101784629255148735253119211285783383943321225235943658130726598192112170533161631824294506275671243623949480322966944065852280966751180930316285513461756219466589471461314030620764920989573346650892868565281248237455336723978965513872487540463967615812902220422289097236348589246713406071434861711706439034237580811581165372545022596510921530506684441698690613369398450544009506398635831812753181947407116322477144377757453605884336727622225884020489662544699136717925160676596618527435240383194743249167691228950827252792365265594307873892244194157442232409316832154015064513366439774686924483020935313348752779868095936438653957184743866096781456092829939711943820587035825971113687871645888925488603342220608113664539582277349081640638761430846465932743145511894024575537076303698497333799148512838150914736388124455753089296805003229090002315643143640079755579973330423514424535374021829099276479453828679128697098781342561968354708858143007388412027348299178935401332646802077528053397219938972988911245938881677599151775642188241239261069959315612043455305542944702725491423756625642783101822955013320963082808351295686874277558919278848073921228606159264478878261514610884100925572365911514305101525110352379898203939732635499524639949269639422874492153830575610175192979079678772025376207359406503259534394779163791624006309677479698115452090753413319651944739902685110711123703360409485050921882518505443469268165706751164415024972285305649775636556202346948605722132648023459701421103215219580819318681157142573760533930033572136880042318017215266132343093498930192320994515138469988592769239220210214891071988044352378724797575690351577651587159524877473915808013698709700960055363552759178250397363989272513648670670569741284220745715819473023383234973191829489589372946257421002414418443442276915161310884658421603983353107966753590738857665369878976386199465928588573386774756799302769756167890929060205418193211829905668628835748392845545009024592474202267208391785247874836307100900756881529718085402997564392260990734466865837821808036616563118517124433834049932994891960761005153895988244535010571882752156025775009081355683042389631238999344413856119013041913703825633175195107475401402683043679161237841033339432335380634946491755864203369216848628509973038026062205292577054541503070424544329879738766341467743594395891740453466372295363124502186860031262716622395251069045814023915497716189144142891695962690681069443042367085466456584011107701106368227636891025709695637484558396987485767285083492681394400593774423089329535836684883415088183416963779832198217314678511171234659127473678733333157917879832229231729360916512871345220502446017821880506575559796306793421345614027519658408744598645642260882710036138792364289157851415640487886357921240990459082846876280137922405768736716168496300653704056318880187267173841874876862320168961091331218010691985456483506936639308567280217904505251498798167577777857884942704377130171453063527910087782143133906785194202455692226055060682177793608986701512196678878893897366883043795275574871066527529649511644755703465935524789367308609909124305674814150842129937311377057378176867367596835514956872616857630922183559168141349271762444730973921026829995472899340603116007843107140472676319868027000772873653872199486413130001646013796098917378616687014747720407165653087952930539819753989879043485147199176759098956942024525933443313893988020154740007178595047514925270524030921552230449820823019311343298484670480771369359964217848960838881042656962996872958272297534900095060917122454834542511305077197212508139468548127464397482618332000874685451331657729249979054667681140025740103893746388288943505003734932377783919813610383452425098755019723494962046437447028141214500802697893448281951752556090804998583104867776789029373355007808044345555128617071819553556528882449737945689170379414228436787213447122766727764420807511399478062948255213597207420672038765383476675591593361803698015655649689972067437013579432935768614364530869502501320373140815088916229576939173481529975317040036791359439677974496328324842939630813834983320716728564487777893469014771181961797940649592007727826585167067205499365053756880924563479706306683247636820033850213717248084511102369894536040619411957114705039500251013708369881038008517618321262656905523732761877483973968339247618051859298159614558990119467302657383695012448084264802430723975096383699179104948978509765395864226266640758095718012523133759847395857871763830165084322871319570186179160779697404167659289083195796006717698469687044376834558108677773805227113108202383408634184508662477432677934693500006270294497461583372719531834997519462857302245405834987431760377510505266233628666910179389436082712797962843164180339229542908748436385722793227200481600992311522539557513135775740121396889890654019880976760222002465132522038286748741230972175221056423707613255932516877431475151679727127530015375782411594651664015020373742061975287844724988538843082878232538595026537783054375606824737938219130147849943505027654887501913884904292753655766225406743559007194811191838296843282885664838784242260460591372950912162420195749063380458089478610854395093509898740757783397151418563654546148474619678483805025028404338400859489985234731137114020904355927080788951259688136757923602927859280908043142970509877647234528811746396643010329904140221282267493032558155601012043695746730579242546904353681906814111486068071286980722408779875766773693539389608317567077482624813185399896817836839918303162598252407069583804252004713236451081171393654644403083759588336820740385353317002343736150343119867772000822217238128354111205140978563444200163602976913885357912950354225328398000892731647520063627304667840243710677703175852939173735666859141627805898316934900246565580814736975050913770185413742108457930825763798777639501785156651580579213478284366486481017074908941947538573347674211924269902777455791679337234868126720672126077564656332754081563833815416058123515495608935258452268540611851168777067318197207993286598480266931819084043904249118362615154473345559207550243114192004725185799229170519856617956847679395740771784311837338250983482338474530135090679521866190982403683475513166036718910686220337053046651641301426932263075632945770963105455579612449248520151527493923046791669123621081751120345021420120232700468064969553312681559839664400847840461885917443368611614347337499334510521229727092225922570480084671599531979898043655836610172826878616776153283979559787018906764873258258016237399954011112088095173403802845334600590088669864746021031234213676593240275239222430220220871267670734914412677833740432545218629610098538222212804136535913090885100978570690050493990704915660163979999424921062592056134503762247652971042491092444578665153798720493196145338401609285343610686136524185673208057461376468748135598851416206515472660700987125340413938405449665982390946209612061656342344844661658129401915512755790629702609116367464835975563875826579752375203981563373052580847093548093056658992073749103633978342397126509254375156706680154058185661676963101249471479472886247461971141618492186815181278460046264528935148239861360127373340042944618364398466911548993233634630281507075447821043192764623404002959350280500896926692143644909018287734893825772767337590632728328110563673580625855764211943521641110806593573810873023984697797541189330087836125080715864814912866539211841033671751623086088902923291796145997399427465783264795576503470471958555784793239191891591579462171790810901420310626839973416515645770968871241026978544131864820864890325727102884749378264739565695012746731266931788737353274656213319158022884744103069505897557530083230889960720177825250676209180436185242973633832885814968466362933637584302851178478186733851991964325994403370434607362668957265834152001710647402050453706342736048073540302979933601920218496112926577572001109730484479655797528411009764867520467116677552684749961398603538914694241153378609977156122771953765172941446546508334564732184273022092710347525271941453425905614222411786141273090246658951224044521231730243157965156472156677566603543041628222774640997614207569743140755020593088357103017528999000286100855901395608201421163112716116207681794346222112093077780203973594113508263048423706271936575471827751908394335452644996014364868152426134724044381691251519724407295578960936160016460001623411717521181484176190738907571672783912614530604279443684015926082772813860873666677864571682837735876344346093634713483604475052691782460574212610740434463784369583987838761389687347043832053853405890524540472960981714790310649846386842212001988386169571980304407461986364076112458205147952183369943019195759998560524466106101822145084217652004391454576429346256566189063823651332141859870910748552441058524116096641309679012997451235176111538973274785103474912874145114025155446500874026992321967023008845701603640081477929675911339932251341787033470415226744527028268755092894426202042759298057398146549393521727272476804875979793883549199678426305738015531017153536227357544099242867845835841791042128529157485623986559529196362607218478581301707792009892879100725644130517625950024012195126638122214261538875178063846304326440809883652523181920855815810029362672010588656259576573341847755773568603018051669927531721619547038540370384457115047941626600916235403502828616381490450646564116887691200322229035053372082024479373058211056978457764988729088927830292323016249321456443574959915359313898970746161238244246089847038964819185297915092777853046405543511363571355733855038702956258952763561852489955787083460726008454844381128435163811683508929026727328097461691065073563582692948223668885522348915488425830685909890486135660167774224182600967134894078340782827152460852201430898627742520241773491670205350619372123996103549534133211596780553078660867123409225269189187023618196634380032473377028708101458181030920603875013868825584178531117079925145761119779368912519985368822585619338478864472300854947648356607241390897167914094923044057313365989230235479589718388390988827865550580784032068983528490920843835050684472599748522838741963631331288566622230607748945020545542907542803024123581474250384199630460222250481646899629583634433766259340210592335201568414748034067827563364689526818237491751126888129011092564074332849825061849635927519846570843191750119622273399256832408042062015708857805732232125523072399873131548750977094184787267062508834066108886971120866520602929593360023252454279038048084893340510455163785242342668866606256018064493433364537733011785589289772012237797202103116843023760020025455575562101897463224260232452823432385289901827426387577203047062207087502787461730081862120529502316107314681530870658835740789901860492696003201435147651196484650455158116007197039902135419920318055241616869050532976143199693617516189682567325427223421828429155718431290180773047928853445327988303944872248800336103307801483882640776081327760608202789470845432026360611187071746755565551299053133037856216396427121918841876924481414698677985580434065770764407659135058708293494673478126692074439093436378752830767068888067011840230855575133861382471126542166804854773661901965352468355451229771651708028896919632460731865210593171633931759763334740504926751929794787818779556999579411559335603948802002855794714275634804658971187600417062776641442578026484023996639190398062844079890952711083923513186150709110158726616782829732076663277487229078714979927600070873920990724286293298390455750572119297290531289351178458883919902216003826253200624492779713364872426959947461783460646295751929527647088816447643905851605593971502289973075747199117492706231016983719352540204618265504517050453937430536885586672050861023074279854473045084312736872148653548612748795982109416880771533876651173901166787105700034305005255438235830885438265682233411812731356635672895941793388344933483153463997729311988147544442330720824248669677093857166487436122004541190521270247417849091010843144389436513180481291624147449630051048777099084921716359130843778434084992739836259162415810189182023983728646394228392783812850473361227433998693007096981616475165236325466708195269645552088793032415650259692613398533441483279794434075503436829771916029133403778428896514582501448125798823944124474746651330487063926798551208455528005955455275900957899547043713641876779223579937256522537227752168288078496106942674799047177507140418181541607807593224788289093689608063225627388518850014183842009854313723486213398055060027298403168373975728747587710663489983422890066108281588917780527224842397891957662449313698787017658781829420829629264883995729903275966370802504694585131113148785253874434114149295236887241058070881155426795205086721816634482077187403947172849129141943133749834549235392163951806712802786469967867426817125071884424496662861136850031712775125073624240010048833371630759582014876966674391268631851903622950653948752092527485423628126118205568407830843528353244763097916557769069134948236675119245980202819087703414580222347075888590519266737328627712433451789976395697810185076925807671187406698885527723561959150434641119154575503809900739750824354922498827197587470596626271561024649584444255626622532226224049908583046018555639347886188775202723286083798572137084785902362264390812175882688418910481117787044664511479266185037243745117854244964272100613259798735625535723878642252155774581366408629545474486432648505322210474001423338556939648550794220022150547276174507147956049362034688727999531280411534210107316717674589392359491798408333538690085480241507750632507558837341596553121318081591801757201277722156287798014395423365156077074367838130742477041721438057928882128984473545862224854935090479553092667054620029315306964329944721299958852299940939718948889152671939996012337316640985469408654483509674260529303382994898175839777144198449912668837526922976094238428869441405401183478229151192075855733919668921005690030783858854913783866342483422434449147492031091036899498564015714862766059183126311928228672710702630142410894007629093848772716937340248969435879594142063673989600797408334336197550316673133429082293395038124520331485970971447263696596907578626224345565268941823789564265482755795323220562522780948447471099446623485508394661099290399786852282848790030261982046923964772033680168944745580916200527629163784282026740784187042036649187879879798362784171053126684799726733433670477758525272034701803543210996388750704606311343648499707900586323369537362265130775318054038905423417827657078514256608085777930317143838529248833063263324584593980607036947631694012937744522014370326807528034786562251446149299266300408840582132712522048214627293746327223785475590363485678182666354712324035825505757840073749510712525878677721256640161937828725500769602140233592929568119020765808287564720426101944512645666954125432764574865651797969222963382709236188962419842482722494142712228684048151149946575129771341891802848139820338057056842802416768335102941654202653415309538888332957064573529844990182401378166426193447273330605611835647088778308357869202282969191182864728302487093148026983000243001714309160788452205821459998748115048785988448133833694488841421799966592696424876437620324669222340233066158673693529697818867509000400547778659198565335622996966484807027939299825694686916561203484505942375322906037034247828938289657206263938005578624048357435432436727551366518100800451696689696534312201639599090512506695582257994156470087032972483852366815713280346988412835117773518152685684502951348468072260409435456999361310363817929837750764656711553990373756050013618660597761411918006141234031542076163128686594122581916211744987504344598804997672753583357105698091100400743685040157381295195734794726597303899321947862135468993100729384926104987385563684387729757494532188565075287800312832939677831355828266858792997751578630730438729366189214915140456340734366838794126015882929915739623065026868440593595462168896600876540518182564908264435408312126952619271515409360322502260484093782129462539989523649370108463336262446810557637783940581732193730238428939790806854637066462262516619704827787547170392808178586709457022887617212532034548957208523944170144698910654022040134965152150610790898295737493809614251215929330531996875205321656349610525474891200093800016477300101993879763432408896512478244633315398826043851141061517415465348792519926111193207937302762633364504022782125912895388474902272023416070312612238750403374068713773966210284769815123517757422233196780213229082197714251180289870640072747514382673791822683941466228515054173680123492464302610885254125092178891944921104532047062153437989520853451759437167216517341790522836529898307276031265260071286024786403171363104249250246299686724175883567023908291141843348156677732119509708916211086960940635527233746428121289649061130941752883999645217638989236983415674952726628275407405123001463997906197697012081362547640911256716501138146211888481138685277268435729797247274502849040985904467328089207577873825982744240122156652500329855423880428849455098811343426886322454900902676603004398485989792728554323341022680079196917394854223631642604758447981162865449025059774542361047624148567674272638105319356499156426517852161515939020596024693931052548942804556480657354904617585326934556084211521465350435192157115996763411958762309763265464332489740941318691181213961675828862402810850748209053902257606352364705477867223913564099842024523235255907966853482350631589344418220257333666916566210936096058763295417329215422403005006239222922534807845625677242689069703196254085775960187908926436330594813567600741751623754443310213119543250568675894357586881834120724463700022172163043279507181961810918137033525769008260276433361007128478907154735316306661789363423566192033391856515065206557279555229214442556390787725619552263034813475451560776302423400325664733667390202492696394016451752357534585556935881193391934262112234355265706787840446713349502052765891459852278819228369341529338611837321128155624373125203268521150557570933797573496401513919374232687911357426969363303185698985489847763897154940139884110688303019947367584943827445415195764519437104566697798105454943451573766748648373038986100496059857318247162023800757917919989040285820048512465388593362665912041268450257285443503131964589629794632677334871709800896588146712727608916176846904031821373281236029937819218602343113844628833158468684575416554553752237038486505190127082699065874380603448030417579020606796161054890345927397863881256249548846740144452939488676926774360189903146302604033115355980590762964932312785893070614011740233283861926179280354585092947775113297279645781778537946541742350323651159441170943166370108189305151292435258844161796600029460506716980825186526493829347039581626475967410924704608043407914289350284329561696431918224224477017259024625481673982412029289075955911891279090341511376386798309691953395129189067710297739684130132936571352974201620163818041405522235595600380491134138610253306054240374754759256553758928415662429562756901870048453604921119276956061369991187965298480995359793980444341779143956983620473019359005150307287581053757177532764994692713412433783139569452654319546011087554943336253532112070189308746038693122362013004523497903407374843825010574055219319669495299187350884123673236053830315970772427851839227980914786302220431567534900107995798072968591296318702874555800785613674846689729873750287359819748247425254517496526749267252514981643196124111143935699161688632341812838685371574775405732764620020209417733373077471710037994397495468388010400269668809497531004946800164052596559430862002166952106643542907471271245631092205700511379868151320567375090358111623232082927049326106910805997715395847311455053562661222055493750500257394971223890125427201065040696886473805524323268954248201170817166187008741298908617442346540288013826877810068871249478773034849438135072638780942861567657637456788904957472119923383443887129777339968009514490672691309021601728095420956349585899800638092121080021001439902049543202106707323920291992008558517049426915039728105075246415612279035979508277161553079085285758048665459337981519594853930066530065391918794850460267302398915013246506755489206531812596565843381860976154750739567905528915319708171375488562931369753592259824905280225453584727660774500325667808766081342258764005026153864455967933909848328601925451176136884129095390022811400787628401450204480746112452166450762156516918177758213153151224529701513892532431470726229344580924436259878894690588912507865363092480444314766514723778570842323340686350917576463733025550276643335435435685107307167016135223821994537771260014512567048182430120780810807181545670310295617867285614175727160327495295446546351191052302129474628012392558813058644008093987020934722367133217229904163663210219699266206152001264104897087735121159792860311996755458498955808804868237404025354808981357007169539358104977044383071028662184691111847938962193833866618384179591983863078755864768260189629159718143665233897644288166475247775385360528508043342055863789174900738087399423933562474746064489118743491438674120257409236517690309566243575930562014217312525950980927203225793399831144689467689215515754909305346302666814882770615370528206773821053188039779616727208156450270261990810551151265093660174674495578074524489946487143879902055330005045832314479822110068603961740245158020600489060544474064684278229532498006932740797066742482994540740002150293600505434495529766227580562044136158566094572810614477510096731496815326979824409334386069239773731133862634026525104044592941081592085670118022630323877499972929731978083208208965546722193434813502452920213330525246238057822543470905042296928619641721188836514343722839916351684128502203911670556531290692599425007563802351640701022852978842632177933584924234439180492099323544895681964967215293449911520075193020895189596840036786951883030590719842775113154842893330152896246174781836149281619098660776578922053322281899899583467411415057836992348460622067782160543445605116690271529233000835717017075766216659661227926395868213018786472661887144279062237025144486702660301843046420741343070207072358068042877369304241536757090184657641985663248319428189195246081733808454404605294963131894236792096113718304883782770999612918587812856132569098117289108910764169005422533745207673076830566897770151460234021533835450155739503613421289684563734811011710038205197772143373766785001532069826759645759948268925374423798937788502396616819807329432993982677709049952642165182339083946785204427805922495461309284717820872885180707741058740019927066768201499833349010587021783034133813973118778697063186273299505823546123554937222455255224157622720373791516180545750181790258537083894939341940307700320898900142249420581383899614653368943962918062753935046927399185342653960765956948051607689911506723713973204492789060032525024289601227187128292430249219419584191443467360534420946393180258640144806430729566154577080624775086717883345671016477478142097846446663064215046413672194928338291553341444491510438715928669464079452930463725645379974485561816678193552481780075287894405117571764081429181717213082907438421946906056549750115738167788015468067962917767452754151642086877130727172427816401813142542226862956147928714568560923449095693370221828165539200987853304643499356180316831842976045597893399138494214717760327157108532209281209724671653201033881495395734147870595705637393963912071320148852120687685046489821149939533467927889400748531839186886744652379842531799918712858149691198829951304037375497032418475604252070961260433994947742274199340796630491294901000883444888728712880284211796200435044156165314641877824174805272506767549064899304843387951239441597345795832553617158637889875542173865808859668816981600150377283853924489788823625574945296786962219891043837945076195659440606079009808807625661478938026597474854177322399607053014388276741432670133234509415241784907180647367171478239554195195023074867930033113710599184341340795673581250903649070073696204951367908650555540011318145031189420868151384672725696596172996682778046235372465798510656738297443803561001490526514998413767361473772264274032185079270830655091116079388424159721604126888909979151347167226915723523585194617053502805414293277824184619241323082769149947218475410000162612619967323346914550021584949825357086169119176314934479378736710602163749571559121727732666297299804976265956018756928421158195771382740885836850290559532111286884627834928517641112079463264245781641601787176727056493404687204403075201910652922648849101150304397294922254276911770218269679609174084373388522488008636079058160314343269011554659872299143266756406207353356866416040768338616353814152237628111699941998805833094462604716771311799889522665424833207520867513861364765512737953622100117863575663969177067067333811282662844456668266054918784487145230065580727852348017785123489730386865221536432465221229794185575413109618957502739296602720502198368958677746092311680897799001395213644604856304158457755710535196165302271877623698675511463158497755859115378264437697615375033745645513737905144231360137533143757486256219928747168794561547203997324282126881493205874019373835592624510733115318770003919974044610889575240584848978098024572162793863277621032427670100995360776201529390315841427993974120703574386170170080179072028308087006762969744419186384371700520935563991587702640326404168967086300418226056668977040647144715054867758888205800387017596838110825400107091829530017912294205596492984394279499610813757029040773878679229159145755139472271874811369145528220733098659697889452624232574749776304071025807842849605809309084216550590440920241287433791231902365415371240641985141364627484854750767471269492302372695197920891172326401068736634863403936602556844282146794179594247483206094505147192340412230800137431852704266847359880011343876251864682315328145893650403008862229222087673755927394337150152048191040452411146991333092534800414110288852537473277315915246209911818540204683042811502116145382155320087181287628681890949451866082105656392455079183049234212651992903934336754863632836372238594592419423667745721781848607898591577897632076754986155327093709320127388423348709879086386764466236703215524292354940242793016106528419864144325228536068855636545215642834463884414708174741073586638013804797971219100571085872113759045660160461063517495431314295082405945694761749840027267202786604905821736509913680521347455598806800487775558251752541543695206193402220453062189508822686738478343060480141159948090760360537142354060491422878599383085437073679354421760850118321804824564369215066670472093363857335259238147131379192394276731992481374841058472963603760039088095584693253540704206268566628961001682566883947260058582677592781374568807833270613859574884475809700038575592715400693327310227466278164196980856873323599066676120677778666055381752036990213652259518672249304601152971347968024307664228966090869008742977081761655671329441351701193004328983552585565904123124262672529943712712982395802027203731013060995198200350365073532399944711281534159152158151369190628279559737322984241570504018291311784087878349965896389012251987140785496735514286489336932250095037907889766174993639204951734145783994917797529844578803344794474780032988676996734418251843638389511496231314556532896074020980997121962991893721238855011066003352971089558578014230329732377004306597276356299106233996171901601826827193137526780514627255772001854881710479114145900868717151435096463686645845782644221136405571378119245353552621002838019207074977770326641629321282501454466942697513017462272392204588609438942282531018497483974775486657369432720327650635739043712886381026815076824987190171090008057239248160992258253401665280552409282910755450541334489857243991933220381152870691239533498407588700842923359403010213556525808336588609710930546612318585446324283229281075663991041732870268375153362803346491843424287440933878650002328363282661515006217485849943252274721004609311659448734419117691861119716545279424880330423304243524174407773344101847303220776926528171686449315316260741343987729297928288814594975851358455180099633520347655364268564518771191628987307525053541268770580319777912104508711710314182253601425672701455407650000203777563394481142271482211101332462247918939401161722669592087315010737020501163645631807751523623452933288448231233550054824693075966390604331552973671594114155613457563244231923752424106551122162250117382436552166913703943313184559147858914343373546116393790733014087631069740324397064487856479330026071746499410046125442720195735295294888400814470931597826540552057004059040975574188688177277080347625960619185553480948640016545332619123398095949654827944676901372392054276254662871895412396840874716599834779720098626135334752435748991585442545653027789762701558240477213229835487691339527743848037352274756847516165075586919723466211959742194963285642973607479976682107603111133597566762909975772255473051739645211837655338657603534114041365283046388849949671479473923418965440188191225239491817687873714376295679473786475622511127466771060839657877207281090474200340729382114273442475055509473256522267849487011806728328582317225967520818234771434754476141784589036387289446415288608839569428769240564402097660759846348481309366970985637844923636079342109416072445908100651302192475189076988013242333935576822841602244133917559187680921311846090785169095702095302593031189414632047480847499848312021579024428659955416171830487958495560485656249676266614175420652521922655709404393491635980068253048553361623960899732116589623980223397572114976241862445267874774703112781274813410063936611498757087403905225468757485536891814599070073780022312707851861455000822020583254240700665281938386921585890960317519383544054076617406836179120836065134543959412841311650655630480320924571481577279117753477659871449856594595170317846382717277594602802257447389380867739446403244299894002475419132522017850957971582030109392190023335474327333518757229556012990062843381895681054027930652379923758897868598504058630504863104953695694322787298635332239237574829266643056650636186208375156375003225160846401801390280410832331185254037460880928666275848395936705886808520085457342453522865885353413295832898252743046848280989675177096065121051575461005913787561201446688287589614824676781593641977057067942437026303173305935147973404678136309110795152254548038653897498271195267201529965266044217528128058025864656396958606602735904566040543552253604310335022351821561816471303096103575150783516214868705953559990875327467358066377437081335071628560182126396886441247579827436637443044097961184994678169758087838057103835096907315119024087964327994483213086430116401276963891199120885365131720111244258846247730336503851075912979174144859620919034419651102703603315020788955279027613832074997735202021646841640717100716507554200694877933914979730048793193679973575455607337086069673880282835532697518501789421695340293252251112884094061608433169397065936019214697439275580574100674254671424846743461093758765967548917797256645169425541436464100429003726548851494664871440558695235479713930716856295241469687750587889690530851278541741438259503088136151835056413119822424821762756375253096052262618599617161303799745500209562237058732513777069739385603951751828172043228297445166445546407264320690310305955917613152835007359493247711202925232338425999853527496460987417172399498884767191637155834152367151845430446242144201274299532485869765020622201420162814859789564820730870415533501038410313880067516228444274983347224572765642559563877052430822334870245989910032740822855283810322768322488748311310719238801725122611332816361742028325455660848461897518382300834951966984231348532083148369532223912276902102701343447084922482491419196676211805250005990054939952419038630222057036234457301591230380704775415720324732006347416935741477023645032386507711615312868471266033628531901425095262374788356297209933767853695415464688947934517717572856048063785987911583893481812462144915921139959516179630384973467720295161832497944861902965668521207513342461509652805211363127905979035255328348355904207692909076958378554681197787836653928016448918289477361272490043003423907558800635652161430274603503949174683641790325289973793304343243227803373260646426806165086181821106628112057093661202211907512553064125183968994101791975172776453992410922516238333283230520331509386533360248369993547883442887632154998331846008953069562659838783470567001262890366583113596527467904818655804954106406808954354025849086694168649688606916135954638600025347817978954925188986628170841978861536033871894706608989622626845595267109126548886084524413584812422373406750376241304312683889610235255238259852348873704098025123667708567435523835129928027064069546059753160731917169514583359154797540622532260531090594340824345804862940708720163617409472473657527327037776857548922818331719873396456994859298189342427237705903527106847095670453415746258716028159414398278987315114099079767190166508188833436317984287336309265571912348248772066231030695778721147404444714331238978608871733213488669416475709484435893207422620629939969128732643933558673877984268474448813483974329583370189420819696261262164287993403757072681574783785391241312012031588148468101208787623639769578956884790379748118494338548980839076610443735407635590363571915290797841281967869926752125477158006815254189159544981270160410080956460880189315828023184164225192270514905684714488937029126425429651101519516964214839322610207134199967238611109367922893106662322741019869599491747682264101577085362948228201386199960320164654684536680247812925542608398332174242275972964981933069157005154175424148374782585177864120343711926320041012401174811223819695239727838398975518835190615136072017740678969255729785192570851653144749236249057624622632830595852298879429080385403100093031408424417758980975097923079447139108162151433866761408012715376775353084733409834818893075503823587944040934472392384144523706407861169418157621842491263859461866796322661315636003864220507784904752881854072888411997502518306739981826955087717481098138983025278660786673181681872080645408234558163582422388981727124378872440681257996969545300212168035336208978882872622278150180014880463088223304356748045615894190272028657488829694067903502507445680920631256260535898658185159994906283276645710636650191659003253580981284066247435560663821896777454421489014951933370297755040472228299313981319786039202087130830332724700359906462797840899307794836590051472993113913346233577599918151521234537113282173905236441188625299089188773522467091941168153850665050561450653878856449625119205450843223935413310298005529182708856839508292022966395048873188714796261440420040446924189918203549134971969009344818691752387723284821522810398715599704518676691214992989322724231411452670396946319959948223276173799684813785562739859361710935745424105556053691693247732448472694668281596225607737456533614865798145627213600413595848492077014513796017583096851764100721010391973355034713712109724259371560191357814412030947274273973553633738425300446700819529764105973709406245139177149850863204260118715620923639644511668374666101326753306310294759634688734214580755065871265717735780476103863609929169082892556558659700714869192784235552561869683122999340233085355754971802536436410631142898075002501543221525877924229260043825507855869962060359851335526071457048338541568527117985435678639946443051256870859880571482688603960464670274509405072309249948344764193688984937112499749146587816316354809918155424554077814255051972214835567603564155505572724731491030020621636290373976819597028067226954764646906138691441841014619795342329493162148409334513566767423106113810371299705199724224303652094995242191767159394844115192381632924274182569487454980770392347351539834828398475954944352665093416089061969050517566844185260202146374382299628454864564370947145857511079850524196357668164387941453379602213811484945448328312305172350851928185883330058548915959354913122389105465685843308734191921800352822650566696654858923957397425955554657727175657300357694768620525587486310879938465970764464320455261621353784368984654955121034964316879773126663050427235502693058951496124320754939524025154791200737016449162198531618903578944437465650742900373885969847969428950460155289474863897754426315510971012015266550543875531473505233793706223851650736653324132991639602643555077217595174063695366361460092409144964539803282114021803145365954600477037862297584546763602830090773675282866543585434608189511512944021487327351855087909587537516491702618051533561761846070467227748764688372682607259069606398861014002265849567685562039957014320398825253767835054896034504889506497131393518607037242087968478364978159827168829103375236537064291290064987675007090252900710634725789952613034882436324479838190505224216218500092804664155750864183268935523175602971758318996015522364304505674791452017170610848472584034014754544787853117896985483033691471011691429718589163492948762755160325534462306578823338389852305724508840803338925725808391090572604059202444340449803596450726279519923356378234149884730620380690035089663274397204627284488266030959438395998902464637446936049229255814908638058378203190281747020230177146786784160410145166397302911803589905373057985594635488997552323804269135014334636584726087209859389968449209725505074549255582348932205485011496450576857954499041844791482482843858757940817974512718054380733959871629776263621958344397326592523262049393049970162895772572769231651807529530613068014522995501372798622351105151204322292206422314548836649520883088002313809962211002833783122709263608720638894134374778448579695955229383309321842197255768400255976640292996736856139296844909889508541101406898234075395482119530677982450764066166365854498798266000143344619049872325235739323140650833500013581057393909494449192791935599631846593786137499126326513731316849170336220943933957386359801674601738008772786846021979740352933307374701787457423661231686978349663397389761657893041328274131317801442701193335822239608332211718480772717817907274091829158060902576766596628004238922969760807247216516410827052529173817620846656400620763906542321001885306144630787360589270498543356623336134163839005112342377445893681048324571267174407236457197604784293774168567467615629215298973112963280156411249194972205892865517412602000121740991094550918713334138389212100954656902656163154093744099498777019478647234089308076719024481985054633300204635776188639148361653964632520400848099316680423197944237321379654488759187418430497358172666375021769354777486831543363494221156419918308618751720762524553734126092211137900125537853415435524381836453472627571684787664455433937674125268496509898944642334922068383970321819117454969501303902582483054000680354186068091559618001753650202095221458218318204928583854822348426772272568273598472876400365702360701494618494870347992561318261763848279356391676048267043326458320852532422526298530719162833234890007784861905535539615519308993908936634980048427694738021135258051071840610769225749444284053699272352853238639830551869427686685111398747684530940863658761778665111892954158020322706858162469768116857879458968760474997275761909988330456383541096794066117476531479815231246889820790733711834531393946749509945980554026195494437552503997475193685738884419379132772162887147672810210903118676377541400657281750807428695772660615142958157048331742829666457080727648225324389564903086940256167934505172068489768110319956935081498155006114179568298994420038883248606636654236477990225688836499966021362393991509228427228905042445724797295800744589256335279638739764831489172245608468759708852633767773299578793936779092591486650654055631550656129133369310547158703052734398828128107377201339483366461430528601236316959705092970782165157097571130779788828482505927954123140978391230803369038679525418160609977050010566101777637694214450105066052387583841600164933588580892875408233977097744889372135624635051671995095563688392227025590544577056109901521766193576101086689762906559791077997722520861660315262701579249090238512234497556358224045357764416964391541090648076654663013439246203811586604673365642460668138063780958981330121223872854767564432622095777976455823839634860546780676891326952853951896927196732293087509977090427759660789362819937203847472451978361826189296325465220963003549992886973362856300699645399204352781400748480706810017911501601242058304223519256553497254216586824841838307613037830439723006144115427273688319758078466639669510905752819535339202288793826158845968631474380069920198703895583213611336625241093425970376388872055152871553712380015717692764973742515404827580961888784955901642659506428764750819287733199868300887794249014269017170775681152023748110062373635357104509332231385027671381059282847489670314010761163292532706560041254222330285885690445004883737288789379712890773485990101963619222464545146176100386559753327328768939682644436044455928988033030569692388762023467149986129718469980521910324654353698443798827821778412594996123385003014094557877560099346131226641451413205549763696023856344791814682385229824596943474133947694872728407905134995760119119810233987971315422296574219172063678075131446787585257928735327697615032638472009483441170006787246702726921540397095083225535694508751500810550961240311356247256640703000708745297647541398918757837379042897854845314079355163490846658258242784359457201271458973270616203135086609617455093135992148392533196647995739714907340470503259931374562504086711773291853884755778348030391517247010999834067904208751422247321446940280656135079674686658703745905182301564424003984073411327621920190124816724137120223435399160828242413545453801885040057875043218779233678835074578771384760390463696750866086595038133236941033829152887826120443948143675476646365555142301568362655289706821609848278919812817333169079326603967194358935796948968072358598903395250058357461166118738869440820084430360782719293738295770556461011222694600795616364038055672015091225563399843804829724588093238858668476156764968045327401989342832745972888422110006067652804482434973923113342346019951537930998133390211020508861698100358087868959750967136132728667290901741879182884196803139716567523192047187083606223225953223394894609799406352231478949404283667597704039793555164634533650695352078997416238394392742473941945271440249261769170147807702352213667605294344806116755109681370472443058920963877837529419635652021095481706310258679678284577842592382352322952567364074087266108896606718339029485088300739371049752319491998582471439173371977606426048706936170648119732266648037372032778672411527311759277943460916757979907462194732534638044878550536603566576160348521788787582112594291899961092523671144162477319737309554002939285807216170465060756644168612407966691590911201898144424863523511792337712392848102659277531780294916965208156502936906170643219979365876422688817197210027349510722505880655453781664758282457535439177334616180833004034944106467258675231233681396652635583545859485179379510115152148404893981152450577113782141204664531345929806006464129465240810485411506705556335963606315498443305689866419000429294403405217026237138305197453999207634202123199566578466889311817778798181935953162601828005115250915581836718190401843635322089457635041952797277744002099055973347700210746592489543759739267172529756958024461976862355132335717686120971793438533821048506927936625748226358546016031948579703452661368886414120305875061823061353516599704409687763024579335476895805592103713501964486121117682706347567440994337198618499728020133107453618382123273172524866587343791953284023152897211983954781991321408081197007790394341061611236541147892395270546940381961560329264760868558108964888280845840806709576351949061779755996209303800762085840355929092347092958550298632530710190568314888896798055526012118107040773808592504087711449913824691415503955007071790677419130239761322405121284272904980876683571382451218074433112950488713032021980800233134731785534504365694883949254189376645787799872809599722078147417819186279570059085426649353045170393536130868290831164457436161163576816123509183457488583994368536670984247895412774284396381746086903254014203459172107012618113673313730953885159736634521238272090949501800835515878601269187198792754482366541048165295715146770978952667040791141345527131175404010659951605637948676454359907184736649484882025861467757397166205912207588214399822387085350119913846116606164771235592805490166215923709339484978575964932591272255290729135015907268526975288241610706344442407048770894902490645419536731153631863091739344229614306481216634343471271338336307210886866655387576154674428361287918825512202376256543386470410542774799931452322583883101504812895111960891694105767952051991453532957320329775289097311367301981928352806972465613635729797893754781587567735697075279664929649354652789216723978206247966280887138212185958332006603861112282447367638822790017545652621717892697784244524513976411118737421150503758416871142874820140663362944241676500866112804970261952400571993476517813046667623924518231155816308731158498509246996736821338674202451715925655507104230841955293338168802074794232074634508910750637234806187008937544469105960768215895962268125465687412465672316517875190398096705800777771563814210694216426018893526315929494060399887036900867922974192431910050287203113227464135836071608721502710289215743566347441131903556388035224747670284326773341641527284541741719220959629235257859027892736422778950943834270881775940349901655334470868440766905789894196104733433837223583454330873633838616187192587567592025482452525137180935683200058092810516415931430003891258074363405782496512392331660164781386534722598622863956420541969081774681387804396131315232763977273332596808020175894481290557292484040625268826619646307153539214106644827953105119053228898737851758699982882117099635753309780576408279038393213829854197517361172654825932093828029140540332051654486840010579832824508250233210418259227531692405281316614749275001002695119562079847608705398341792196041357095479731334492038481781934381454196397394779789103445636517960079833335980448629100903040491190202447347102362273189253680807257208071811664152482584916609990190381533805677522893273293276738137204668447611926451027137558610554138609421641236317998557599225365119086027544894945316802688948099472869573042058564937448794028673479046657926121210629445090465482707584737490318196502942291237801413529068079857825285649292603765943541463575489712893463675456267872453985495342752833104545330503950441346820267938043106483704301976351958260423462171509708547010027353688901776498830436506973788539072897703138684375465490465847274731374412864117328769804153876530906382304924735879357372024396820317227997459621053296498400738449027654625765259132293059349677848693260478889114298107256885974543244299125881421578111706110114123347838384950288717402891135634653071516419150035337135904884704816753958951355544607282273430627269160701232001043481107540592613689481842173147960391921315545024904195541722099393368813490942843766557371165109471075899888175639489694115286847407523197706026458716416076620379022694666403836741422357562974937120796894518923401220069554868762613635491449613831063192956655769523517999057191661592173155610649392704044006294370381385397104941133530853573928946300811675066374151177917040045325700036413892606534808848399258315531663839503049704489542014952894026483816207938898791926577671147011736076341188201982458986310293009400260534743123665777147374707603530163546478835172297163510840711302813014438455632972273608335657997008762211631341427999942689633953926496154886841625118343153792098802526752375013024148149031904550017180333715731825033290119001123627095855494836627552273461714828415291709986805907311082851566664723246727895493547999777433405297746520476691766078024314426952758169349588930648624322600460039166673830712365073005014477144952473897952727517889266114688787358540660583571633750132622636901976675173005041426409165004753815714306950503827315265188500270491114921411994466968126174218879596212914829811242815818279350055583923981885523576685388446014894552244138274085236835625171561301883861471360622060628455679319807142647165307741388910709153316784451455566577824592288129424415770615201811636536472690121379851334936728192176163885625037831051034702329064624923369142680108603382619231704786471159416375843298016249936698135005870507607218414974720698154257917806692441159406985360336502972788257669508290563997366618951554138329889867180652851890001941205737850706514295956547194865500489180712731907287533700099909286417679059371797568946536541478221487758823921186359489449316241867181331531810577222699263088533702573206468509280390385166177195045220234201664599612727539388722152403155882350874594402441040341794348496901305097796335417973766296054979830559602951008366453266456662640630365758887187978892487309034151916553941689661304792631973361204309406978369407248202529240745074496685495921055099212194591101562679980618012224392585391301862684530228879181800737758424856877474996727904306865386751565600206996560867875131058735766343474821338203404469176894330051833417006178712214444989058175712260613533748850574972257396012306882491796226200096760774053497528088677866867242870747984828680436860821013162896820879964242406671495651491057466145405261337284149852629498442796276485867630150392323700345376827402670561934666035434123606907199784286041900802286268008656193783757007911741039272080793725007207476852145645095359818337232941626224248977101148960800528520052611628232351679960443511945965865837010133064739489410489028776987284891762511813364506206265783556474318101544459166386736301032298832102476820061867117547645607677188163023407459328742051719522792079519016226657414742185471737479214425009125525279385743787654737165586181474824545648810484092106116579739577569265023174601832574855981903386772026813882512011761781817397090542061553557053324652505059395682912594776908954372871009175084337067280219227992157080256010710855587695675496932607163737631801240372285652673794125129179139854498207983318493060221986258934620559749052878606989953454826125633409270535251486618473795213055075926182452409762363748203881832549946166888840303735350249591782957492913585574631975304490510968654273915238645358803878223614562085331147594790592146106784831326025604986010661685270947794839995914281766091411746861913480307401166088169591804437786149431730375952625394868273312551086723845719297730689740093835371145235795780322214358183654108941519588466812464602897157138053990548104516434484647954096851601231855987577700418982480455110599917030813896107377487291485656496399119146328400111518079166958719306303992222739676258674190594050891647934541944160584655460682214602570039413547541332273599761976772288052596239201251341224891736626649347959279133463214302250118141730544557056522980451012975571008420424205554425415583426535485813197466257880450132040761653576725895395270952933925203775970671639817123573085023235019028253007782653627833370114992660091816656758161118602420162943059693777740219613571701724419127253082586122980250935531140554618962358221729128421482142908706348132357269421854465626336986166401921894567675388877366481242559306904512607967387365548989909352156256691626013922897754155270615265103212078314108917757116371609510963487055185138203067394508330673157972288286945028836411966876247246411566458326288916959644511320886908117387416545763417415021913498066426871947411919615683003659561893668630475783125070091006833762562160662946580868324894794783768860608704120678228167792329429143792246268552735422518129432347047595244885603281887633684424555808872416773710933739410443122102883088900889303525723562366952282146155794261840003825125176251536356900196829709970560897321371506751080432188474519450896691495462514471332393843791572539015360710189991272830954174426862541431117742590128809549090457339754049485287091144482643802138149054519136795186774881692740470386102265245220359284325517205612232650100209612787995144578802933814420411657160214254640313676429895499778019063375246225945932774731534666379987304871677678831030349571563978400386044857145829398779915186552371021783245246274263240450513297303162611689981550008667954027727450932898673743039728862904760392998672548375671060151550663725922501909034015360960406404233770644897116828375892257830355387679376683069268861667502154364289273933723106071562473281292494655706397440120441351037058054316925165657106573952814572234028234628361322152981024514857212125352511343692835183727469994178404993491413865508998856918922266435646261224952537706447528853109793178186546600155331762613282938437652973744668832139355081319228392421778609577541521636884180920254888905292472387895683534591068718405136493157305615271386792731364815871808189903729426095090795700656045470971792870851529218616168722552429744270758521068997197797978711695509090530964018516635619576830188185169270595235638224851303437724266503677078231570563057542431711013267672104932725714609255615656696286133591374646162442682406421870490486280062880442570995727140356392296596756198108800537137769307068690416790590063226560376426170456259869970972419403688878053718681287384531063551937986798069146681239171437355697862466121981549206297048106439665013633635777190702067759504532138387722753929903917907391059804855295448815401545747111598693206952366332372086640100271156821329572988118233983226058148606981813679096056599662202050579918330186189212955583635982050352433839716176568338813665217651182219899755338570563413010334963561146750054751554465252022060232283766309696499179917281494809433264390742272973217148272498230205241360266230100153318622016968305749882583246709395303601476834168621115749058057329494681947948110371712429965272381943243189315758907369232725496029244446909613665706568512075549145112052938021257954779559207038237876913392179794720720726948655430007398167803671516304684994067910498981353656720081050198007220101919541390703865909777260466074988104034881240051994659209309997072742882634946349130948202653952718580162280859051589621459374398527841562406206501079054423277699389972737418867433798462606209091191068131305437630297194838685009318675061084046459962919319363389237549520755261861207033159325515346149823136403796742488472378282476955358779935400732625169400488709440305396024363020732297053271806285747958826064198240595932328889986397531229998195890191970727773114592991175227918539515921383830839865106954494540167618663016943163338779872792004793784420364401803598237793573782201980880502969310078710527450725525449886487125339384107471738672545566806228394114366730431095926950787035923610129860142073623209536196536708359122664510310207893855493154550706559055256623095011016137747760855540637509918193440861811279220994168311131128675747613543106928753886370471348275975150622612002442425239734374526023298082981138936387897750087634072791430071769101015183781998865553521272860920046477299418833601391978575580785562678600914678935365706248997439350095826915543905275876877457714214086029830582578706163424611055806477998050951566194455563929677334514428750037432298485586966481328258790782624875538342459264592819185270330466890858154674435336129802998181449313580741648705790310642562179868352865334814134487647011313627901810745352826267424810082342473425811412527851722363152259103474362296363858797845614243916289700610702724723045053351852848599075381064060701228493135465040823761765838884050853541079911169932879618001327053255317545783121618709042729478393611707784701761413184738953460420791224863018506757380435937483553053594236692560045498155278853499857493568463931886042594428681743109800707949841740520097374121633332066171800300717105049607195489714686201898354752201612177188120891339174810619257130027174547317294316340453738875296049879072365475421220663241671141276681290978123144113219010422405267324115282649237566974288653841088119120277511198072843438035025648021439059383710920013264015438522731123707983266337939840209447397964696030224390778063995682632815305739642827671973113029906097116935446028338686122601748517868604275857436328428116293758627302683673300326910897812736467271437167003783026483725527079236774922356091360176080476141864924252504979951377671860813124002763107095630754825841449585267541010872372466915484850677129955371263663764093693702857666526252658618631782231856954591108167064569349364324534646255199549378336571768180152053488956902332039207500787584926170872068045298017033007395147633805472007641281066159067562106787220873776916513122935167749651512091660093342404970237741177911141501325715573496255778677697649308295226172526170214702355061965038926244598241662305672734786577495482134452684425257858561237862311583136839339394704130490134686126022689890268811765419627370410141043682268292583497263307708964337103936486354155296197845556762792891123600432863047696144025254959400836414451257125124844628196110205707930685661571262076787085225536340208178888828884323696793072383182838124270626198183887706964689327994493972440220758368158850223032388540932234449090869982913956697736729573740716424928569234447774456085045537096898290631020387838076062776528385744823319524400161628835754766037992886797981039536187031772528052155415873173989834372211454682603933272499376931813931364278909143377224160894792767829715718402821920512697662603109970251668112486360809571682653748832159389153692931215765849288439097563783014168061305604716540814550678276949275104216770715239422714264585817455390378627282803110720596006913635713944429436197578520711085024474871925480255774791892225257103519958200501281511514483176823132870246657270906104301631646250832571293057472372281546026215309515797309585457776675509844498704845277913743858870950832777514480965411191088977054439758299758333584658459566179236531270050097128992106490606824661490424688204793562786151474790520589126056332186228024631007790774490252479342257462275064856043611724987378093929273565872039246471348564021465793755683372984066979989884291034554484237280923062886317369058591936183725006085118622010646141088887983850993750584828423953028154370290762111973020344836903733606780815738613491185895992838313017002910709405028362516875203681970299723140227989824564865280900658333894288939356426929949039568326798119696311897042351114088018315993573721338099216267614649722905282014675996761804913137720395780076612566552237639979749599058428978053402462716258419719303893758707244735985531071439956605798024548654761978968468446685180718499454405411423608171494134578199011847536536228131958458269299767681353359247844849636079330755467044745572176821368565268572253384043765514682254083217627969509634856311588686679659631415161707050044297428153630822775758413158943263252435542032042866167098580433088774562919117200349406074499107779951010898907825463882671810522494592823763882664441608043601155408367058954307608406052300668853161442793060544383323075260224318016314777682484103829476495526102538995357432175835903424339561016128050163968157208066938687153411738240692759253169977013581474912723840146397813718824511186468329938465397094543205403661746979851475990534332737733502298270558190656322681158385767367678531301898044986374369587085262804495551386459492445995838151760362939021403460683598605923091430400564548412427215894013485533998811145787116117593083305749855472527604753789833910629902968311382916221597120073171474783850818268193421352937180341334803581331466590675378783321296800110286182209337824045511080678784297149224852887945286372888378919170997990101934119630129451836372784785308159192354625793670858892351659450895294750007444795070665761033171169134603715401499769367246542028560934695645707163183473128476988582553022393382754044570352472673528424115968045056552159570978154137433198950264385941766991094157724078061036331452590680310603378224816394487526177402203191290134913814619596903985222762224720777358645064919812829456562020453783119653941667383127930590001098558349856782985066811804935725875524800412101027077700208933302174096862821947283456149717790398730442573293703297665072761239960848856055281493394617111147942241760228691362471018288723187340971534601747573484662842030723909728363749834584572078661083919243600195759559005375073794678006575029460209100086302897319026239232673292661357463572555281563908935482425298706878494077804969940667519014898948215075335557451098925377955168790978267838374912907637864855612261029729126745279898283796423515824065080172737547808034256668939032470811212152439264652595051165393247927595680548091324516611511272244020979946369481940161076418315998628107513206953432956478908913808187781174156429582906260704556389889796088349789731940770975735426682180458826958423628076640131712560468360808791082761901974360262317174814141267241954626447839888119707689986040029279778352574077921211352314400660258810458135851890260579262845011532307881761419263598612436348680562880737558498671339428350656697744216076476822076167379827344605426155352031066306949052689975409087461819529559588649109067844107870946521873052974777981040508746479132373197205260870591955856277558145635799586962996218482651146296977923391321779616752423427043380531875600972218786750639098022188084034190723762096332491403061977312714134319035045831223698745274336191630525851205778496439555439074340776646951189926812260346174988503552261418000671527480859524442659849550071592518377843351741648534664641127391089022642030446941817213893934033852216093625153731612107195778689193459819107853337849071782225405255470907478726517315272726585583590773763340615743718658421302233688937880890766682370230749720687138277004211845925831923145005469497702093225605844183809039017918754090932048668088510203749869832252322142251115626071878073699780672858008309453981432823940949888703231975036661736123718593030039659888570293592745355117652361894578796615243015209796556751617608856641785003656518139580225389518512109463386690411861358404012123965384281603418161773568460208979009022486529606588524947971245933605836979939553814647560133099844091374265424237831126742192116911994355908711829180477139948205852021841968004195417577160032462662837820044323650814935189877995079434488214397317609571637385275387323306177807504174807473477414945502219011288257307949048746066167361477342466076307992897905092602595884348403431556250756345006105601610504345076919702492401322267585453926051763062237880189127732152238475372060602459281791775177537172473871912896660381647691704898374910114349595048676858548401964133285165716955839712197220988739306556549023896864972577571514949305824054820920923683840423201839619666473181670581498176951639306111342114701900194813956212661879899035850821477344215917789639349496303031180456066215660012726506552936433883900453974680303784417904561377827987935428783358562457942048588834277741316380402191504755557004326276035267261299221352618573440829498973468618715440416038091958184700268111606516504129062614201986047545267262623777958355988431577398882825591561812284824361638608159850674811960535098543083208081099154158003209536461446266445435364979731295570698655205527169813714419583313799387831233239108127693994686614084884255695440260227778741852661738113248255600067147219179821241277354227216924857048518843951657197768521423761101027597731018082559893542961737111888645093533088402642312677880929166812226673260465539393510407716865314345473193338287433077825276233908199123992272405933705397446047763659031150596497767333673181967032115102585482802288343460118020256273720449934095080920938439209537270654417674984787907398865259192384783384198587229329950610851851796208417976974577666257002068687108079799987165256554781163800069779057788349955731402907353846331413099103578035267255813499245401872314957947320460616478524192656938882608569256897170410587702299628973331198042901289824782720998195348723346961286561735594019447390344089858491276750345592300458863144764930289935855932935781426211884900779897308348032632522295748003420521174094558363776064743318255450439696261542980074644478818652139382333171247041742538510670501890017616788206828015783407282910450934313690820331910762437837112453420968327456801757391847658194289864308397988552689485516926374235698833338559920356019325341206844798887204698129481866570743454653158641363938410841003762823260225707559364195680436777918057388393047309200951095060827711283384017011494465610169695998590213920270523860662027350023760175200691457360304491721584647675575068713932131823214429958953109671566653090852921891976719994598390714501594749289738601105014439478306878734251244008761272347443860854148011112158025706235570963595003106875673511169253321052725915595157021514634481238360889770759431390966099753074301216933313040466594317811860850704662565752349126864577984916736718260497896023463083704601578676725020004948032891690123188868591839717088411213207794721934046116407206237479756522848825083374984492533169467717204059755402176847066620748558420214791737791113565065359043114771934208707338198118182804506608201285487940052916637623791344311755318764267916837608944776435698283247121533661807523401759133595044234592523966555144579909586843635114649967535609071242086541285904022943421758602054435455418964629196249127781260995868473883357717573383734645654880136684272338085074962643952644738783597041818479764546228651497773448820427557338221219441854604696884367346543058342435853078263954163447571337495212810445132534509949160043469365272625596386639013297278783418902655713323891406882953671803872863411461903903178897705178517108776532202951256560932112127654909758389578031691984417585866748551229871404155919038079629376538011617246772281366597372577050400866893124848173744567865588065703447929269986118545084299806220638989430434004741878474091814050613362950314049094973234543037662434542032136594490121126673449166589055509694887958686962968655299198292271901766052496259866206268918682068712389278600260058519509312160953461992133545607944272573784945252796432042442063182018156732831765535424407048092879457917438143842261645457354283641951518399123505644295507119956227656285470933532771769859039256480033714900335956143410171367176055109272985236732472680952583764131365817409671294053857256877042110370458747923858703439227529011527056593040828182826939434560302590117484651842568977445079019450899444483722089440997969862635596962622029345136253324080954203087499603010881902482364340263254974197258532989586198302001791288838500238210158779327007746275624987778402933096939826559348423334581515238437755972693904016725101449349603197366568891574271108952864087792312609727700343277081787898873509295147956750476358939833970251984810168116767230104681565793115071527491180296929736053364954174904999493435292032375713896326067366490694353566149165807867276408099830991493762094249437979008224522623187029207933917066104367182349042679944654555976510479222462142787103184386855077868483473062558267278609951835650364257366710779407531756476954152683557865588264115371442344422775641874377779696381089016390114285242445019461279650988569281624048901595741074756015249496267253216792424152654436108647197498755806792908317058923327347366001487631756852501488285028093629762794703427482946311404080616015759586640302509515874444901894015671035804158258646740177818214704894337784936810341250556890258911780452882328915799685432494275480387949303596242397629416005177119331381350422946625890918278711153907086435781749934648355082311868218892458405585725283148820405752336695460459446666381433001787322382564710997506788591706227133623079260110606922389971074214821390196688004966982165469964256847494242146271843535131727932989762151239306771868154900499671778243435998609185730862591761251984880404958108846150650851281869159697238059977398107826140145685871288441374482844708118368286583017865118688839166860142331506670740132468594589686338887668988142116559984300158433708202013182847310361712943590962883029397612974747452697679473679800107596689576132512543710316281282822500144105302877813343159543221076310069932741864614896902516419562486118038675807419891599866912041626216631543772858776264254171855396721688702260426440306088886730704518723199625635268550058238379107357330915168833754011318400992490985169124367505949262076698849900510646104382104850129376996495814869097288114948958266079238534981378380681784631712483013548518757003580108691081165098114378378201830337179784274644051813373702022805691335741692581304093823687132443548962845546134312310468667744696884607247778010758636149106204965226753388522694670018868020938731294761686034368963744433021155214172046985054043110047491103983375155410196318032834984888980090830824532123644147116324607080648537591639282904791149455069908306515985937486300958164525974385985217316984974033839029925570212529836994251374464758263713443954080418206487672194735002940784432947886677806138300424684080682404038911385068332760461903633088320728398786360222566489591210373208204880455885000777181306132978795637089123953156147209307357646291123868060340678442730397623415326269115151645887661934638246963547156551486882146178479936254120886963629294751872455277786411191081479514344984682518796568476677462915225138492707633989243096907985085007076257606228872408497949615833996982606327768601426661641151938302603798206961219128220679988809373164438630925880054012188085685691984450809980846285048880613649062154088269674936386325313936179058612711299690552390099118741926365069250671156580448951878670116368596618691931052122652250776924725155634207495777271394259759544081712147503306548770088456795865004894770402279099473923853554919240675676562954834280992075181380418045092794309256078250797527877803962696408396813314785947755408719342741428822940762594954702217703101304525511708346104579894746893345343724970943460510882849217428033239855275623354382681575416591800324503940456619032090576369478507882937636583868444479781674525669607122522647568107325810025176234211792768319673734362886952595413323442022903273721453230731427642914689977710242584106837463914298128758447384244739921569672320834354286725902290078293525829339662215580102841741018000713486733691754225322789967815418708983399994501037680930869580545275565188588851329890742274098258189313633788101977217506228520588692734889795708145450613660440718435408638407361070529201505945004979483925460732900936661114432756983099831330278441054654179356952844463268840855894795623598809319657664751159704029966531904666809322973427049463755709591265269693320686598295683102977461739443150662252179891463558411454676900620917881142162278671583845577621135965812108141032900749770660923542583731042939583965548027354501779557363790544157748485555780905611683186359732495105060674508452074448021189160662112676304247348821257931593964720793322244478266128135967432247602762515104036167733481901492277974558969928010297194506231328533226545308984852964884777664495695656867692040276198778575913361446653384449841618561685343526955149866291682478688740293140868348140278585291692894031353801667360000753589962394355816576653918732874002878377239116971944809405199327661007792317532662009268853385869718855470135954824072350908461279680826303955699505733858590903972214959727005372516694189543091370841586519752577032081286248071627417173529146175404500590181672779999286397784220102368084727414154811279387514547816553265098910811047489217875751617741110345139808025559463183022155249556821330620802264186628454800463988064336734504089184877620528086859024370586071929345398342163372745306348608000818508724170091915663508172093912087436893692564068823545630495506392718226861383606366670329195384235522886340995297471126032656178136519596732135635608500285716913855547041469577067929891319333344450730533033240668889425693678730392952107716126164393041475648402536088506559733277277774889248682360807382067949936635340774390423822949202141923932533602082915416760925122004008884450022312137196436133078841175012566333233779230890289164004548711030743800736153405244146660081395289374050398982462454226759069821647743866547788794651404332092016837793891488924061360550525202612747883666482333253372064090083314949153521980986008065998861967733435381714391934730057284070058679752410888705485113420562086215154209819991146772596212995368384443193281754076449475623904964176748698291859227147246415753440051397700007971583071205514110172108033820619900297086824422704394059095960879915827740013923878759851662279427771831258144795759993354653621254693479531628229084876672584937367018249110289367143151379845383300373799242499937038193940628562900924535041646618584104822818728451408036527909868215344323971248934700612692468837361978583374827547634728601703769121947740164251674342252693788723405582210757372983421411730452744424337752201598087425572641009568588352958927025485543762625361037940678633183533937175931536139240909612302198088458493660409956866730983304816314552752117520016555487323066518557731368411938998086166578514660862254502485651492365071569284717572409565678609724076623004542241516016914897716619364373660119276645670951363770754627045907061884112704871232130545097650371019743311707366860537262975247730017476320109124870257384030572525520885368522249181893864562508802085856888835122807209401694806506145784469508558203920059112944739753059420063881232997417917285498408164208660315112978784531235266294560932377192680384392531462690023435813028146741978771844052005391449325698220390831732853839595758822535765498407368467116709539657194296491889467379654390560730642557812993086605050257586158665604450055743721085719571745150424052321261037521255026610950251666736177127055267308101833018017396948050624268880246822135498268711696667084831246191104849796396932450362112291649087098232065977087976945120033322438546029795830829653790721027838501513019249394729636042857163955888392454500980969657139933594556188107348539106369471172888018645362427303253482273686112438640890392527193074745182951335533051928233791096106455912365392692354160247763996667172452205478301583485256017547331079067097957963260365974561320996348693120370377784579807154735010030469553898880723835070271957582505594634689791200563359804467336331952197465769440183030300178177772753488617903142792507246892287500364067495503037752006383238026390624917167463981436105024887888702293684073215889378977382076368508965549520869451388594533297799044506826786778839519096667641677181737448472122021857587899051904280520747752280927996840794131413718418480108819149194431066396175325072501263146113699994482885418205805904801435714522125499472286175262311377426020002551310029677685959652958951146539514740190418858266273724138756221506761809655787419692403338932328665037881680177982018545161751684410977862121581338020161134832446555440807117165332170186631481825944633040151844009561024860033121631709035891076204085434082743391295928734885619178450879757321171092843919785330304523366098773051444233174383004182234336748525153677144959266285045856973239875355432888770008474905190402090395346664152984996114364435533062636424230770491316751971584028932132529087104908215096519247751188474724620882678044971313824685409749835776763885604975188696483802694404290286534715647612557141787253554664236083383425577717752940537511654397785068960841995720279972750157513828252353918057154967710590656106915685534020820506165914932213163071767018762938132618377756885130056237861578262145247068596224679591373064935646628181294175776194520066205882755387850070327258425217058030827187621426035975332114660853967335924810236575550384323087190230096265515216518288753935842249452616830457083228667538733598942984652274553232610781613081808994733821043271515556780048527792026391996149150813934865140621202403545226718649441391489890705541030454082052458717085347348714432622274050268867609892439443844143577581489460999312699348941040866026439489908651283601231331448703605176133838303203308042460487772169851238875013814314499905152388176700892566820452828089091259902539410638733179763167719180829403594547978940903420898507554555692540327316149284299607799863767303960625152178354561303274358630439853322429622425484685480290345411391755861336007964905785231638564961221042037603256407893876945715771070215647697161380461667557732457717879187842053125828760744124338543894937371861379221530076873348571779560150247412583932096601887751348521443462308376524701168685343642470796680719186101633584044136392198827376925051557531180692641172862543221537290455128119050263053018268353948815562940204428015494917565991804247955690379217463119616092771760700755330167457191449983746066012789677318931279480108046656783912348727558787126589886788718293131451464289929661354118145829555771842347616085966463229541058833046966477652299722007448782339307489296835863882285194419870326564019496238664876651071327411013977946361322887711430913792039437459487603795186137013181991387362505887982069489429088866973559066925289137984491906930054067110818619313924770873056970423564610602598952924863745548262264233513815957632896855888242818628426100138075662819693981302025184360376675229544502171296067149336938628339070703056584936971369061976949683298014672444870390538196061342797226032145179198819113665506857185890585802558491447187501636405687158933562325433744472268640242274207300803781694339223179095485624983057505490822788011887364950460504727883646751171809856538847911257007124362814649351202647763077002319255407951957533036546607602629448714021079020850126861430332786598168793552152420804364091974523124274980200367367286482911288641366464320299410366431344216164983611375739240621552381058735008634900144270437665216166526870845214245868645885119780846476167998910186847667159487099034798383822569637962008665823295431976201128811142023007276638387975619686158913405969557245292201628495563175871340135312533553928311202423605052126590481948202161236616109669799492596017702321386234264707382892910982495900482290493298923156468626772384029651796371896505131695057074583764771187666250150968979596897415026664933301873359243012674884888191511649827761300978298044109935341804079041487714897464938929774070301744526468057321541439842348255356823752511350810599320097708519602356104551069710586302661487866634612069571859037368444287514788109201633817383422108061033469245950373863325771451928171367067317525151768308677318644375616204182432449915862813676445393801785947311502987774001615216272098777534697730236091888741469783165402162217013525545633996467099423521180630761177853076026397693664954662805097109659575781507557603961372942350758376183564145822293400448111063910809947720412892703677013107794951456908787484573148667612092788129356965986139256605489476276031925020388759897516418640569668415342766879590686804225750021687240407845388946839335207313206600381683839633900570675317084796838794623957694460618241146394535980509094318542882342060889821081022403880616715466407577625708141415421779964600427124137863869728146404783427732768905204237655449086854350608593035530670528243613283050898299202596968415230819434836353137945971825570817942830616555404119949695543042992306972980409939060231115135696487395406849116539148796200324641882551696460136832031552912181401489006664868265378646699324257235178606083883319596959864337790992918183845437148841967267842023438024425430270499238096008774157820667979537575738561454241580861751317320165285028968595297921207710336671878530619927176413864466732012419023851872106868869825088607023030150437700982907301728715242022304615339219659080611684083359345496534164922125226751989303639847893782404114743453133882381660317962441222674796667286151969694809485943506675613470136154710200299523522299766125955832392149605954061506995376110083297085211514405859645096945432564291711579288863797242299824386907632302954935456009881889871283073603060557771492603650893285955635315801783538861123391147961415828254620751280669986950826129777224888663234630135259101311076598119490212351450305294258451326633383657284515576709038794420764204245533518214446112045463918793225393233895880288841872128645962014568296711487084421144584195830980819451092686910993451807935651000009104667925169632248356967773525522968735705575064480849074886565182205684645623358789169906524388796663452961393438740602909640444726648730648424793729446161701096785959923662106329785037111335066442115940802537611565902068098372512095483717039328731344358691660540024718795167338977456379191805063477419932663074982883393334965341019888129169843673452079473621221675770709296671812964694592820196461053944787069709953926643816691804882282959602917625464179893147189334389578915631609549043505686073773609549970323689216511721120171970216371287565019497101378365150426072714997219538335928670852287710724210732281061497959239153388188958810854803361512680853104407653820499580871198411227371471031613825905014702733294047455774351243843049913107523940597952791393033957212969821158052361034894050054436416255242714051924612532985954537290211127887948543810770399789248144900355996746795547175326118381782342401665091688121072642755375382963124105731693648923142198263367321780826943498748697866710383640414354525363962868767445243455647890676757479697022612902365896462658935389200655675061430505468169795427946315893563918926876026989081232296832226997274307915198239054868434380588369843390923691447329205925859378899223662486093758980427543023112492631799164602382720133877331165973948017164755056369291706711515468165234020903917992572157203160485243587192915757592292696965281940096862979935844996117718525002273571752702829776334357532897772524991965584604504160959118158322770084944494709053052256882373184128262438880814343152346053411302624591416118890591606272436856276441621320148796346005227448686182491923274037659974150296507651824481931718410375813862517199411962392749817720486707280690756587861054886327640530956940450189983676495760619186134293784644843163791674650456628871815084746826878597040746837065087583457999233576680138221625747054891853146793517116880313877922358997413288198623219939750438173031944511980197416602465686601524766718320601469210746386467885285559188698403999092784771279304243153744936798521680953104324417647869410648267036430401877257203591470906198920166332188572812828539559173011416664025568221708081658846147416875850497636124323210128736829653312340251550058876531036795946040819131933172953740480544435835943734990653212081631932313050698152615866707808399773803909692011698292493572493671204402681620675208897193583767760486909639355928329301134154847998705683482921986299196709058738730396134068408434117143999287182316646614153601567689235150360337115851400809694824778751123293005351991371895035956488462897205908075456242541134035588096175756702181355324051239628336560856212486390805334489054969608031053657200981832706887359609504581613931469141134682763835555386647551301182073616880782322927949592998449942032511518607787970848966150716040469550794447623983368128464438557850897870083354435857127044351601672122730149529931081160842323342530900534566556964899045915522665491266633960022795186630849753339406129386968783446524977791106269050500023458421483150669038150569102527565105605484075072945062791898028899573906243100988741207026073850169023530297669381312148084523468293876380129507882824053986000809231714333693973294920391281553731008272579085488683438861446369661368020004294337754455964023997548656233588099092816688161723059401867355261384570876085257473321938143892898017645437644606156814761952070318364712382793519999883493098491912049882215932935817669768872420521779824460387054589797092958128853580046285810407877700669575717715814458436242654311910486238543110420955946621011976549132391866721822694370498923644145883356507376015063159504399423059930137545720853719992193528484838940930740545971792167774487883021156080673933464948669795809730722568960201052451623213679601123991502539173968561729854825430145714349944136139673901776285656043702271018566827889037980968795820597403658377374983507814542946066704342385161393326778955853000231361766281407482926460475697636082091574144501340856614601270121646514062871955964827154147130781169090132027069438782604767393999940390350625427208832960665277441690951345395920674061725721682999903349636293451577688499452910009114220494863982027392010716822394909193386186312725444678617043181036891766671648409505252953538598427658455231442848839586774256383619637896118211819504788958246988416331264904252106328223530040878802573765190868287396166188275745158415841865868590668923799593704974402961844073455357548099200952468883148557593469098948621446815313627377945463413837040427062843275917207497224885430015645579959590913915340729600803604957281353407538564597314432369652813204085953633076307854199618940764603853834296287171946011596416236208401566394187331438086891367745769937267944960784897584503438976367790550234209752759574445869863593068101414765654734121313342600340696360849102092641625209391172415954009887231570863853163955971169899994881530006708373727223301416046184203800662934203183169214790019865413006447116735665641676148805717360837753909913177905462238402465333495507829624340684550452453013269315742076582543371829394426274259355178927967938146994849972898521445320292300786794684568042162160606027772611439670815724066831422897596145895217072518663408762935427814978980754830495858430948387302427176192393102986666324690628679736886348587832906200133944666053265856465989356114169713050595774128535440648588031667318527535730677440802582471449915020571358424919934579088696663128548344028081376964806615133412572636530495723234230127016449030266767973220072304783881743666946924290764549542906088955012119453705004426769733840505009062422634715926135131161923062104949236725449744132832407373273910957866999152873786263691232942138662659919855778469272835225162604527240622520284122281371204997681681303326076169187976206991064420121178205093133739203722209147181779309807348766120303471055319441173372672835923251871595125153603597657975021076061580682390357148223875715529296259438019875907934516257097896003068727286867842227394312086844286296041956553257060527605790203080787762247562819021751829394617512551062251969176339795470727937434142917636103832421975968774751702834331022348107247633716314033856848121641551310235947097823746499892646337722379524625709158141143769860120202645240309428095087338596239676173793116985268280613368153736170118565375382865348217578873519862172762241238452013828701003545118896438041951221531506611057966397201539050613213322840994237224976076931688525965324585150552489157821189353426561658663038020699934833928396165030051468041055448018848114061788384801185864268183802184570438876267451284284732533127115362444728181578974924543835361332256641184508189250931214136340557080774064389756129171021465972432847020649850920950720517269956131922437815938793949592468494009250671443137007914081027831919721141114964780882235339265953567892041652032450948355853540334911045406083405023364409153696626088935245526780869927528244077681119039909898316700577734476024543377033306438124905757686606881862306039229591470179741482061019562010404162173896107997487959873244096263232751659290624116124867822232095775906125700683657769979742228765977978231849577136377164347886477584455150052565904277886803921322322669803004008118055349919983294009670376770679007711577668228021269609896091152299204343927227715203754835643471238881421441269845587818509494705433990913407576019321338475938070222651670453011753608379522186958412795619836304645959858905532001335219532378007977165078530898942312722113972975832054589524724882005114064325799370774794495518225112220147462058032597541824478740663547488824269793530025541882220918020168925135144941139692985495917607188790577098813996923708534812746039044510118874257449780234453141937975146031128422973381987777304575254366547092888627550761374451560505582794178980574096931935412486756659293703976858894924560679475723785811614676780974717084921191768379274030232079485061662585076930287803096594710965867454729126845384899891211656140258357846216999305717008305005667025644362950228119049871175444750549892537010626723587897294972135900735649313785548792930610581710755322389871714041924982400463095299259698276938241225087543624068785941842866981173389227272946569834661692561001750024583619223168925131910004122363119106969708362663133758148439171009555163583283813298971955977227769631565225435401907602530023009048947300134540278254105272547885352931369662667498787916446439065605429549676113793806904712135387694508937674120604460256796056329044539509825870354410510175363673371479189159013130344881853771553319190384571482457771148236041230175318167535146315123303797885981427121940660019344262401340748650084428670948180165497660348488652764002504066640694469499734132094255074293882685835202930955423905124148124850222438574336100516397753451248458412591177954986059802838592891126919754899407307606887252302830162306357198792090272559279560530680100097777803102173852092773239244761835498501131918773179621306988124352570813053101773006287064278590602418273275923565376033353058666014961269584803857038727211289242879841363569253449794301010363228726522158033015586756275588245459820536370370745686878124624720292537439549565556082316804682200213083740203779433689106083038474727033823917429144626216076583058058865452969018998067561876570933490021100584549700024615589350055649483338236146666944338863124324135601609247411983831630616949792757877833614724339780157119183238462500947773386463512206814724702172248505910822711740556574649278438011453608987097398855571158358602544548713886190730809361016245870616428395271543641814439019114280115024275296744494587344884837956447111901208686589012125772497718772214513747673978279047782779018734283174051136565877897940941186350052528685962363270403961369397934545772501973837594751571219710666303266379880110454528442962975331739224034079328172829555509243225490152200861289948736566725306310237036458451093398677943641427489430405541170557102820572202658903354232835010454906262177176867961476562751599829436648611197290568320088749868289859955584019725616631835827988134546795831711444504771149265420011420068213924103851995278867720902125215841794956818660690376504516309669002800520369803151572240354305695858611357884688212572410548450471890650474832529912486769175820326624001505610933759873373619524480773704318253055265418743803525619939856566547164464570793894884455133878994082435211875616456206502783203621891309973652780126786554410795148207386930038852404757879824686156280377679071346005110685043084628823209397188651038241316186930303806039718072263440497784806155533158026287251194036416618709879248551304350236791358544294440489852050492225653072763228851875695093304686159547981728959425872818596713985599514664106881848484294263238249788319968848763239840030388879434928709281251435756218241742521194826437905661767207310456304899812929415993074155123403287606736421911261986118630532831185038433444571207414590896458092974450737719884355095215762924734817653326601794626366239426919349360499041308718748777548807297637209552546209131045362872896964333470542862993338120781207346943693762346231766806963331713273167989518783798404818792548698107126086361571459036183128647080211384824416720178733643471762765988186261540576856890596743970510712332842071423778276739628969549822728909846242402452206892523126578890616527685378235131729694879667192181441325621855404455339554143136570272327597198551307702237739341770217455787630788381961110366294425345061527428890301194702677603302913178042120529724739256380993266444510422304842325623859036795021545862054647448552877062734451475850034805159213260096645185293748445447940124914741419398060045458444031701296133258680502342945332455310754731434252342554319272135375020078190929162744186986115795495133333938535971069280644385955294370376360941216223898870749331179467935715574964058699385650328560862106507537960798865171860618810608341841025575516430347531661086998366363117197106758885421205062709649118355396929010629788514299100166140304974649065815343514102982058383960544672569082328740331657803201768044858678180727145243090483868718199983773091264164051260612285853858013471689172711168801720167903293682386262285970562393577167155777846330180076376099182404371324724866140881559983391156476144328248488334471768356390983206566588865497991513089147872806449500542686857759443304456796401903943491648254228006549093331521513244185116740236964017009207175627624093140829529231428034564106558285945035214097192157725411431209200415153134008467716888910534173906696313120678612399326468368671290151638942241244480735181694879637867066676144779830058544619188280819789197151552990903896456031654166706599575004440941661548320355684291412690674106152205666728701326628878718681893516945648466031862650132009504261321672287847760360544543875218456246501557202657870697861389656081437983042675873650953707283281680261745322336975267965156014704154761924358836340826392954578912004143766937920733149435437090620301796197387372374133142645342718205455298128709224308936076169785779655910967450990388979909905187210142877454765129672388957496799068304180654923921343819093113700216007800492105183608492289241145251390997196718982699590922531887768384752875010391741383476549507985325006298926421767300394328273923715595348776739088388792121104302883606268266694007319121072245056775006743623455381293337106378650418265073813667111466164101431355288719721537661068123467351702004130146592508780053221189509001510340174587356237744283092047376750621027445352994840821588890278952200316694421067994181739198915563808278664875219225696553109063348006354587018990138229580486495311938127379388706303477118303583749267178953279627953461496988959348388243570578687653981597428843399939496695071021597411510125013282754297915987962218234467054821306865880531750880834181728526654328445947234728667684676624587782182763692221102959202184333958006389413667639533726790518964595553343050817558862420597075238683780749660611147121524219327205408237048535721960994881812538884414758211986759763484412683831754383886371676057894243247755428764668005892625813666911274065206478030211281585617303434634862734481401218227988946598816557863970372034810325169873857703178535019818457887741394597448427535346588437183613184022732715427647995185192865291908688882464705133990073240390605785258571269389242415201569617690543903084262378040953609308668436789931998981456913370400296445310122920525930163600533447659416230963750532296322596966709426402178774798827526916427616560729010457288402079688410560070031977803976719509280090717384413258535741187437538558808761467897915165717057117177589981376370062390687714214235852490175077584791018718599296659075159910515112926981445147890037144912992543993947623576891591147850696455070853291055057153410853508349349189028545153601462289380457428665668988089975542782333677456359130445476455315748066638403818214299507367094020911996244172418670732251688750955585061598428490630839959790544753991014170363357804620885722162189490534967076101282787385588885708016478472179225963301178265923716738349503599967846479718661398662524824974956107691583694413278269744881763139779921090004952574223282355387771507501635419819314231935698533839304688349803518089998305746393218049090383225677744233455557677906972076585023909823693895313124994638622713141917876163925620941797690070527939345392208020969880510579283625792687876747015099922946426505671958324647793474584932245502219845367283584154617161679900881934111969463181579516985206802735234066122794508082270087641629785516170034038051010838206459539327128694236622157891029398534769095241540432347617260133189928816689137227105269886153810524495425805871529091381652353029787668011897448447346210153120842846327731319512955490354198709223318340513040355767796355336331893559474600028755178331134527161353289549252949425650576143311077236170085661727298411458611058828629078397504759302135837437975707378975140769838976205219376097384601390858228607807980880608722426789289251680690525108782121278763073548123735784052003971627288468323393495548453998873351200951990893179182749397352522447995048765498595753389301944914369511142280894510184418634021009933308724404781332536634841130637318008502053719452112829577159540441655286793245840886468920160634635412797979807405102240484993183721997351903230696519675652917218962324498633282335631271857271256039443195657624162505527687363381958301423302491151279296843486194099008238921667149722177287689075742736265320748844619719467554512805490170599893980815446805840320715353847177860719470337938496448934867062446675558373222931270662810839461819660042280641670837112358138277602932382503947963259891872438857196074065975933734981088483355096058533175141340189550055320786876633656354838818768998194915718070725908776047303762377889530028103450357015752840439879520631970108085345344176457039995560623262746689454148387343480931443115590971616405943708363123187874203001600047926722360833334007041565197239325184285850572307495366355071555754489180528544132699368743903258068575068813846383924044756148463682580259879536119935940908522473360394290816785997704097648635587538794914246334224282642397546180739766392928712896551008965753599495208324644357764019337414776289341911526500326238734916577296121161844080111556990664870642916748546956080511928386086184309236749898233701358067542626303868020063606999777539873209461961696399565331726077126473238657979099085663731244507262722640726749152882668529151746567899101205318347468314309837531209475306019532949144994343356640130311246823942359759744519114684742029696518894922533406260431259011040792353389336647076919890510667998455549385926528020417275318257002650646956548649984857754294239644788059833371162116732563628919917520357038263593007958927063299935693058002135476839496203048027658780456170219068595291054309120310740222698155937338727735642229959856846920502576130711195608939857580838427021374703634168699756791657960264534593299045472675028257703285871987795238523997626069103698839204312158641908437145313462698821405235776032599120005021911564845564883713585954587381232455803359409314770760355116884441435137633567411571463700632426528220676889282284949183072332522766294161753537782369545291529978675775902258109399984443017851133539138686053354669004189121632278619910235229792642544170903393393010139949243515251630835088002517371552160396293506059685555175691885121693380190173792774940266762381171387332366557674212832609933964367110508152141231089745114737120172397539286762950433678671761296492844629038889327447410944513082463818769039650654568830213862094167119912018236008359674416088701276726030007928223586652512471589360005608727821927812651567619841100033937106178283132649690325642318656414967316298803127470721538015400538428582493227835796714968979431671974436952959008281384960544133009079734312387431947230015467726054451749094781031750758757311190744417989039125637747156253873245292515236237422505597555849863657087872237456253888144739112531303968126058350375348016379652931158463740624154592725803983715998281337722190921040317499442243773452877317929549622529707836150987884560826636637936472054179356632266431963797541945769716492821829966591352668983689776059823322453459557658503736114201486948532632897417160558717026205410734028853247900681357707977696273749632268376076992585942998454818411509841689756895876338271781290718774423180970851316334130001270320158047947962746569985454872055605192656823532244421064757390440439188388958200492736319914110324916984586869968956408262367671810860051476151659924306907766442418892311275141547098934084414427228109302623535356419251884250118347975847582932782891506880130264000964161815624974779643164986063008770096543863095844555680448523479914818090915616355198115473394285697503340045729722726411520129817678660940280609400100577545331813540769164922087851089009195689061373796062163043259466882931282272210196881796303991939694787912442381086785174010589416314086151743501917675187442637856340561555526745019255752300443530211421330529333931843926329522510694569792236905176961541028253009058077519228009523533563939535104974868805780539130538342652070044919264349922431679070941209086901684065545681809389870128230789406478996000269747034309347177763757162244519313476516957484646171678255767465555127576150555766743524217545896483461721504846865547215022550793802410032755048539097381957520692775403259123388471965803019869258228299830364036865303056552239717125742139717625820356014549634213075705427871916244299303552823108914235664115695268276075840735427453742106070130944574328771477934079555987144093196084881708331037666663252275134565525960384772001166527435189781794247004101473425584496591444883686979841064575818240812576123158922388627731413479894355479618504980874490946283566898786383062265244013744938899233639599248399192093590069208414575912577879694791954847059822028017252684020672712727977385149468259021790213478236694377349610059229660281333150816330704015527125986269463400430343344888983237747669729104336161886993544843183060904780244881193181892501476778806668817189821747270312994202036477734356697953213884829606955487374534957018622749279407181616972850111180081551147783088976905783376773597158641464531307950688260133394579769701179329608909876001096080331165559001772400155366766997321734663102979469488379010383126331486720070884746231569599325012839292835095088396004995758618836695857016031895709796629268823893461346297031665691347238643058549748857594995108386102420937945229741368980623988827942174649930545735212481036014941628575068268647380404193718759402749727352838232159417971819821596629827815651129857603656365664190323714600564817203730729612943882187839394619692675120730001014934190400165030312636680645425632825080092197777957993862231811336942970382475563872193453853003997562288505249206209535962139050366922450409963735970818366679885329751491858685439115854962312930087165721845045260808006189202290599631221493984639123727153840012370328148403451529520987345484789967822359258703395219535065196942034350078165366299906905184962700057462148288721460906735943791033755120473347087234826114700647243010198154621595519150424741841413284931909723301147447911211938531139118155337980498513902028894545298791636328523460969799423721671339651866952842241464493705344635506020527045474765707692350091002136674250515420489788175338129630894640995447911860226836362980632199057255821287368694375283851252593946551347081792601307282883067643396702596308839170836735590537106814870928719804619266307555500074988616618366649275914603097517280108155688381337279772432432872900137863146182612955619230628086125085415142173396885496361758263730490442469017799681270568176098188045633354967095170234192285335634725472853381274489106406025034596969199015982903888709888056185700036891279051528383601249656072637669104133014456036562782040633666356480406446088312519799789538525357960582368007253361455260927451168283007208267104905536983560994139925811268144217604362481395689007344043860685462052211722238214343848943899155303989081354231499267731424487577301795258891883495393312762883913843297956875416454178406013151497997023340992439422239418334825487088900704445141941983025086006913460944204560337492045342385223003987141176068678466064072992535370334853281785256126463854306968771565355104815124108512452171339054504258827731037218511756032537208686399452443709692316094672462811091508746390974971030494898891284665206517772288831807532814954063797627713272784689237206283212076738422335613739318829167064252852926133353119062860202346550976260729919120016646152827950912444476243577975955663606861098736402149123331000625698812513893476687995193451664090792415821553926850679685767559849036155119764120873686345093833054936336629700622590434459107866511002435442402610402307803480561960946420517731076508697994557852434013261112136196142794575971211904362554070917842064114099153743899716498678143173217491783810965158669020301475710382298062588609427350987916286772424998114896289592545805880922498390649291505758227215096354529525389796737663348765797922459368867422256166982760967073476744112204442457294925310001815183899002087738828183263198432188984035769879788083033605729637076112078685110572899968536170796875286107199767526832589212760195858300596968466561321056292161896429680726765937919706814544520285336931977291062643308290782907411716994225219372128123354970536821141727684267821252014942866024617210518102882757457877992343323802876129821285251579360928942471253453897818700484473567269634546121726586537927503967819595486156190833832745390531919983267437029609365062778034450227772971111385307873009826263409227520381140460733935588862192428667813196896575252625794308652277629980550488270729954045438930046051240252655091243735083217248748763320659741935409466774974865634985339455711228550018460471046374172127715421336660401568682403084156631217910847755488104478559511117457177871310456588201637200192354979292224059875700110928123854420347272666109137234274660876891244446510745289087755583874424466038804845885872926511395614842772308612987233597429476921649684026880074446793092130990735876879123997543320214371747930331154946893709303026989651689890750305272991462351317806566138431690714416937021532195932044523193494838696306475447389830364870263942319210551552629892588738459772082635725274755595590248868602759930847401688529294938730132942473770329667334056006103376348551038681194920901872265480718257175187548251571551595520875274116447217227139929555890688162749026218499894537722050753495131712619874971117228476830000086569542277725486833066977852432764579242567578930320060649695222495319853509237926632859834499113826126107880825209804805719198358393078608539774461167697346315842941385052725821551508939938403177280541831424608910271613994551921686809394429869463727221719548528743277921757591518083245794175657722723651501666148426241195457521744811491448603921195321324991559012022110693246912269892048500239252225967902203843786959571375993990950786527896738922343695028578886379381219853150094854722606247356139972903089190959715985519231717949309527043800026907484615314898434699443597416876028231361734450810710984323412334183488124966088600127143973660171441706716933871423127324528488556017979985820114615314752874968995708251506861913596135308001018273297015311138720004726584485416653545118365197512089145428049888798859077618413957089402544597202660903292874921686083235047910512523783330837190625598233440963914366183329151874892263345292900794343293829645437180083464882632502353065141105087653384588571082832972419537852469095594012542848616143105042698183535062070857870684200205928788877879920847401693039526022329108106566708761783718172797624146536069997619070078287670767874122846359256851922251802640661282662559991328139756069068747546516865373088093529755211649855061970442072687607576082008188882651638003983038244509927553939768373640393657295643359575548232987944845671797978336981495511809812337657446853877035120817659028135627189214911620765745817195394518023431598306109966358829996213054945991681667114107744744747491097331652861247230271630883930947590759732063609963180164886857544243400826171769490949527698597364776611835702555158107401795957770801820908202361833263003428938594757557129902949542630502774174493038664732935337206921937426370717403073766495771314141584610203181512781346749898586636947064492801869317836770728172880517867822194427445093602908312438822752164277823352021695850106172822849663240904042578573513818005039091903749092667206268695690472372057934934454443877141233381285233056311179623233644807958007484726586540939662290629641837149288699841160639474260506271479324540506475172503699905055229479162241858133709783210073321482698132661566226396387366539197894608189874094027244741759573857554484405966674850606729279511982041516301422094563911548309937678635101473904238988392799013740849307732633070126752796778171078484718211419581158243378608190471951562617432018272552335360019999266729718317132525978285563299894022825292250641473494684226911514188891340502951826253709181819538910364282770095828922580189852237132931814044818361218745606261967327150864804732465052707385141156100796502609227795463155388108711979236874095047839542237346495299303158424924604066178157509108078935759471297785780161122256439036398751666089032646713976704014863379217136608817332068475059433314485670184072026786106618198616695850811599881957328554795904994605960214640830989140671144419143709415732711836051979895549070453283060385066865956507509103056149656325877577360496998074455800665922734494932695341951179986579234439885528815895543638954064560401698351606255064508958315969661546777147995820431726756674295784548979884148784268014290159297453459635493426185509476486946016928093245327282540869012022981723544571290066590499730192089134505939213438980645323774937092590733172510042094562396563571314609290319393148965070412712536984282112753943657927601645148858200506377367508884396809203936052946555862018631948593401214353672268546601273205305371848776138760885267713286344978264533303719233401789641909250928473181856615856317156638340588685220165096299549238438224061814166320442933030190803650754710065847137312758955304456375017454772534752257552434386434272626176082636557255842175087498177402374089455219607745047547848305118875603235090978713018524978144272281843481776272588589657890150929686946288771400078021871922758700384485594457278479023412494849845611872923642451988126534726352072763670063093257649936493981403992694466015588475034195184241196725561345934007143891957243509170209716142457865313404931906395553223331228859401267147229269122497511150429715569408468952384830732997744051084705050446162684171983327908097671250688137027148110812334057981700568909692807129620368227110145527171365251352045572305637117897277715130815940422556670489836678575006855169563268136662774254614089824963659251739666073729671982895216429867107342640597787620124445891050832187161306663028457440386499058350883029082531062169511302169687941764084174697776464257503924764841673142833568515979562315902768875526629504115143681619162572013991154719682958073033399816339212121184479498084837527405298609730921492137199060214924010467001768285855929138784042178596141914635842833842963308656782095481140095670526088465398433427799526198653005186007965438187485927865864043890256453088088506087994267437516194313215314668612687408356103011457265729345637541463541806343552515739134116466447834735370279211588920181246923901830230324490112395144325839742242752762868117933577953854484087743239555551466981732158851924203445617090823144622244826765256180726425367147544361057356262795473625105251740168234723815181225194982933838953131576221975521688360418681181397224365654030864810564483391540985016430604712617726424507191919163830294445363750107860891145621219290221967839133923467919139707159227356552327322044034836040745971741134221420489172618917226041343232289868097932986929792121111768946824332141553434229735007025947254414307769702521008462120500506900489649839725997366237445031485788740928771197183010271272765179639829587522985833326884157640965739161364131527001177219030161778223469732551515303507537147041368808916357861656080657628534885003804166791266679499299062494884770098575542568067443311805316383835669199746184394564137184702768806451709097953946366668681586439614217415826989122713554258952642454656098345733338911537163426857839437777661393725831675507879754574601208167609018432453155547098768930940292944198952780545534922022997622558995538802368997341977499625491611690723350793054673801246657205207924231022691867515427665234987868570799967044161003831778492516821613830894208688556126392174570351081352875226828564136811099890073379574959542843970320656828151274993845559059335676249592214130202834872620993253519078966609301717534986399423557729333946169193379205232704252631138054619517152814037012251480484042479719181587838816283356259273129406200725354749475415318596834003967316237416954917439848712051009920405286419279484037637964849390621435144198737423472082524304882389938222989300306285406695217908047046041306267341004325754081487135528146786014832636195244703092513334740782590479760746339095476212140193875865966737638384944842150623221191900104043464446830408495915793213423794951662983786090003073951985357126029065644937381948899834050745123735001103458935627987028265637825876438244049162608637873432301752860674784281308687562508753663306428856823104392768171932043703705654471359911383127262692808185982547857402657234157892024429204668180327645915791976617958553944230710660324756338198642071378340355195499453909068386744734073249286094541907148937616495897017287478644948128057535819157307597750513754151328714849269754743444751682741820345753892598536580517871410191376056284155761272409759289034652702530262992657926355104368018352234194891340842439177592581888633071720422288299732681809743210411721083102657154872702509813965822719185783850600572498217376942422050601183072309499856874085533522467380977938759610135837027405256697702046066757419110789857695026203321152647996544731319344613606789169917051771455221367503196402369375702440766315713401628184074237036775131097842579527577556470328863624531594690087522618437997836365796300060390926012750142622360285379056157394889702833166848388256162467218157051804966594576659201335240774003083972666956099020630631334394213352542145605969883941350123217591791341425094829654681523190476413560883780872939240561199985282809465130802513947170663694632903211883884769258939161208162011310872472470935415297992417968564735923081806216195411511361198922499902884261099478589789679720285606177331714097701799011346088645635235493962773669919388475941035048816313833755926138642144521539896418966523534738798849560424147831222221996430949620960840471519157551392532667150213344915496847685937647121681791723135106238717676845574154954479136784891029687335285613684792275843493319889613187893310272076772990336388768125207864983127346874214465624540455449578787430517712617076362323507285157382854852539836953725653020302544902423468163257415575748851023936354914926174824545120064454822740480610342004397644601735387319796724411577370149963005392415690341702296288647490768451851422139704717513191327270351534673888261542997950324807909467839567473021927008462728107078035457248205615443815109118177683322364442477908219073161134681517835420162311063103006988108666814672087681851806275377717323860174465523837904030302631257344663329300621691443501882503117029432497344887714912046096234333028801311296490327987058598169949210414947568783545301291516956072102607621506833856549161645697583474203452438748397742198646464059035614159712724229758942657994283803004071530340291696142834806800867895996427319684349958805598050651762382851316946551811409629566586059866733220357899913686242107045279224101867881668666742618878186111825175458898300533735748372371816972519961616858359937931644330806066770033133284445898362492309314397552345696368332931983211264553052186081161150464627947767396349701221750813698985939565809719685927937081778011717273793256342299839669860575610389161213493547506935232089487607466038805328293886448507330353800696932897698304348161253938872604225643101714247892764427354673825048834930152572727740264042863363815711472056146075680387708445834218869919680168426657213766701093317600375120773614590226193500485283647515984613077227790518892324216272289775730088892936770353696627796536952611088881648110184913567961224672443195499839938457164355739022724492575778832769007561748474260638966402984636609605955478469842393001839005751537963088108110467836904035199245083604424873450784272558018374653271969350086801178289251488485328953738311202588148453931811707899615860603521393921655246907765942729773020691259966204900007335363140844357549641628754481308064228650950291526925605807655494783817842047185837989361831037757459648960508551681198144506212650515157671333921029934233063083378309264024736307163418628037674361534350731690534445568068580018782573153929168827211986354792868406662500003817518797897249623866995842747890402322145157360883864714609918810974026805381783539029849020647015877750934777385357044995264460753026441117216933464554757061881114136669519153233912859366288777544660577652129105714804834266090719947462802255262335496956480494840400280254151040083899729798965616469100463801296479378062698892140723013351888281058854033498273199027274072730096370757320589294571180762075714296534403518595703793312213163415525484361185651261043974112667918932610980898335080545750397834678730282566004827441171135965419865070327171127842294756380759943724361358704468945103022959707079593499926875855925079952526601538773687542407513177320045763103087818706702209860312525732896614897004751883003426399533037524989810890585213931559494848416123736759522445546017371435365219154713297207288848970800057356051399770507735425915521491862083908321993931656360122714406679545490515420789978358394935749543721149197168893725304214992951069953457889259925978276128510621383894715748831488263196817267852184709947834661594171685234406890946173982538323517782868894323058535244000953526405520551093969127039842567841311884417111869173121309311540325685098232145839615602008457642665081822571215022611021574846056157827210993398757192963943487082689966660368305080922787810553400351591327155700179382878342291160662186205615070872301978528473282657892844507623545319258500778725470322760504262762515955153027256980555205707321521721913485128310158760465488474427263762965850456191307499152008166281140162577607945294741707414673190032041564751822630937449412711052543569930731968404211054481793505965291740592029855893366231944556797689108448720379936958409260903500916539634232486336972314958031943283399221118281556334071768855066283167676935113325672385867815166602099760483449611511254833451226836998136542823228610315133563357124376713248598971948561941028403612695929528539994836496770367392735937802596158522885103729742876198830594039166258743093428811222619019192719369108458791230830454814499384819077464445437225597053052645677565577127218480730635633518544187629459246010553988434920172269815112881358843923436974961868863646246751609103385717484363902269745040626142820197298912721969131591213110373946285486506480229919612556448499169006471617776251990180520295354997002413710104422780196289015918916961273361382329441011748172972132079452480061105424989789205485731172529879204156122073846150137872957887573076776978384251346551273589204373034397951792536007189811782121421288357889847253899136836230955208844752398430000412996278210632523894460659803277870136677716489949314185072861971011180658870957348131000376010661857213007849146471369650512126974623638746353675570865732386981834435156296243607778632889367614060840471605197952808136553261486908419461809747547478064545433432574975280850055064142761214644562863221342440989686785375667311688187089804246649095828607244250087324995940874487316043505115422493876756994866856306026819908950326083475409670649387059709021771966565118776309712356699275615414441294933026645395409009993289894473297685784443149786019045660374045036309235555011304690827302628820891597207461713145600922357968322663728498365467534310490870616992679550149594308909626142904648236039126806386348574045359823989819032577279914128465446889376921402800207343031945061321704846417930333767345948491195510280839369215375465397601617777962609209156869798080047211500183783137582041684972414755300448600549720455908299804253873368183332573197495318718797219947729502232208007675286389769717212935888166400465042407885175259171254845711060247832196338377319171780605057228434109667333175220640786639334057694141298901058497180315740922780522378348492617887573593588808209161518463393785275957858005685023900438627794857244212899702078509783658866809652716695414115996027280222347867562933873886030147246952501932909465440840364773778216030208630246720730824736427817839795270051032214760455948883883996816598397057229322708213205878585827519777364004588404093261295279029998375415424073142762458047487503453485834881276960964500924370760490665036314815974751875358993976785166611129049577096694432452957095498479925641324931107898319486300447234057212909443234096677669959264704152083005010406413997914980686199352861113317645379982066461892952562479909705288125934931875747749618082547570231190972671510871515381688823036390800550658410316083234372810760041435786593023354078093379849726969040805235167849862974211228558202243159469990458799430450696659014936241612885194521161736182354326557081851528718500322444685001877007253865932689493136462532185119479930252775382993824427187839253846432009613868915467029196990839993317404145938677958712584746454628743858587163739135655259353681714368526208052562505688921440374540919690977581919469787131790230106439524492983647598323674448609161060985195586441440716727790868704587744508181213109844134416582383755336848187112510320304561581199638387147140015767728262178719102802818211116871416979752929016905771595503162495343891103136869378266680924178867259337527461078834572373725799488747207122561482239622224465295994090953128535775086524639321801689464344599222968207127508362096279183952910451359808786784085486537855065540622341503779861759215214815917000214105415183164829784528844100021616718373997308161215361841727860461862012776259262847192815048299126491831521592863086271032668591304810517798517645351731806880484333006329662785816192852192168708317591245369425243813987523518623374415529192887603972067902158538090730814442726995380822424619658948503402732650825469534812141004892571487278638805389984643568968130765280337414660612308070342880061759664472724691337554579835807798741870798545103324646678481851326368302381099421686766618114698165802804747189020165715229923651486656690373723610608623103870129283394352481627987530004464746046052104031565300776272393091613577743990537912287774051050655910816662595392937507470403055375463335115637980919978918496020693526425054146595660680761937154325002873230313668990715107231275372943156757997493594183858222930989432652300902581893625414631960613566584698057770154668847680570599383039705928564701216743467035949105235740420314337467097269098869584837394190054189752915119781148873670760587620394022072505114654664389134473340521593585692280901005941275060296766521305321286980620222142163626093437129228693735620804435543478767502693954530556577008494909497850898811739085776586122139247544541519627415350267955018994540418307099141184968393667636260323680621796402287580160638716057932008514209897876734861425795195997090582115069962101291908089711414201016442630615812209910374924742370303478568302106814546529990945580365894102308579016242137613181461122957193330481962844002240285223505118701273992395889104149867102616053804638873296500487602756566649195810607076079284761762755006443290270408109499544679518804895918570692586173044816459571397346267954036161068471683451976413574345502812614296748360208012275321586685304439767464729914095788286209451889812138881937090690747881162705781390301208539982692679668664451783701372396860519445159172870801957230631303768551294046375870723660151720752911962399639076651992269741039684519132206137622692747094268184075003315429530190552752408720914205642047975764319316329180434236924401764859340401414437453844901165175424582217955351231326954647750509425251741718485654963552700032228744626409666941351289159543435399507497507442277134192626808602471080605237797704910683120554181604835929636873533734759362896909195229931248295667776686835055264984153913021883608259055424163507639966554212222031487945068550305877801203490435477262532864796795437337235044514120580179319367174681958439213820385854821704746913782151706742112404045127576476671817174890776242199585048832273366466984187154583666867132386476654550808016514531754408325644332474629818738052554609303166477678840238158734644640017253330108646390659872906691654984101319215563986821320552360255226025189917580906559289002225150187768207139617084641661357696914253124233673489226309695489005922006522376799338327091563216202718701121258887531123608743752720721195194997560608151078759136205493217733008533604420780905473232033020200493244376918123365954080918632322651007277850851888823158986321223297166460801587127573993667408662320553386787805385693642755076608381396901915667245580089080516985792681496995055332952641770370480607113066029839844710588467790660625282774159278608664864491711919711536853380196732136466634065545118426182257675858867084921522927325506007938991875575354565506210099452095739622413168780650361125738138425582910694897072803995710294995476943432456857465510907737470418913742638437175194403882308652422538744926438169986450896529908952407797471532005449290654874130328056139262594503677873278385271310206729221243199323738518663351016703295780562957252270412654400523991058473780932689827933759997297788851063472186892774580842138819041434218254786757734376673937190965549869561598569883828225837422947930090728721798510419389127106593294181802725618908697660474068805627858824306573935718284941660516757746321768313333318153789844981694238539528457804710075891534875561888846134114365429782246235790300589215192763399193744754789703179499576989504987934219770875854275269091965001007336983709564416223492463671342736920399239387711305241203990263120682977472343741410365328108843686344208657414149164741762496200355748848305923313116713305311104069692729145694129139174226538090149678301627267109828750779814190638041166140815391538051125206311745888079799332875080505553657756477520355816833419531530634318482415088496495325561330788487903871850670092175598824219313805205187664179255426005861849059133117356974366446854317007664933652098874296531671371499009248819128296715514490581470328545394688451638364310257547573134937617531458933995816227016653252509250633853178727744872550418323083356214246887057334648009560770137564240656005426593975643251892425407146878516794230038320211010598915822633519303813161084514945749841496545011275102361003892245806254660454061164144720546530178595872879292274808862891634773959495057567389877591395166122055793636655920034490251651608146859855177421325330255596269987044565056090931059549538991767142054415222989632039441873692680691233593395633162870387383909698775221957609000396135435093763054790183842381291047944004484160091485331070731412942792405919705327753535874132970381860783491663931622442797653895071212200698171902944420113039984618611571542460311279805449590767378039255996458555767087749154225429377366345081097428160862786777446339844466270243476835686751030774549535944252681515446359566312354759100620245811480143380060372383048152983726892751816408960808592896629351832775531942889138807520399734372759329433449040957863395617946106635230616789917337430581999660961271560438923017605563961602216059259087488915055674670868333319429949651371207791158895217452439869148964666080466021863107214839822277162228441760495576768966706747373847264339814694681901081648628731821736897485244675213730387017846027980482719236082330151871993607138740517744814075785954476884581819215045564110199148531338002977935591045474704499211654111952837465058708907500828839019881612006972421309057907107232789800704785322551805821545918063515486498365841709802749984118914598175099664375831129813263087390163474016488683622174802525961180586071142076021882258974458253417956003375238216061101890132619149169354117053247408718894433019888742285762849138480831486476603433494416171609158042118910344332849106833933800653584612223897740490010868705523679852412007115641916546903803177976676363130742818311132592631252513136610342332422977254082953319549697940170461400825580665412687799242980311880511096443699186343032788627927870890181933341218321640428874113767782148929240849627017702328259229291339152634796671981205603085943745240714748503827029159244182522927470035519665134260070262627667568079376847236708277026463433605265613528797131079922999602471077768441602905966568551981343552321844797682457780317632912129203101376937037589784121722532708620576963777122755997971422049015528699245547505079721134332564711807677072982719864233614925023098198593277675923450177857769863943141973904405343036757820576914146927935216429848796378592753865140961216574425608973447335423949526679806181906877083326456537042761430591261662434428780358235813622270931765619903981706755740258230999678295642508225896722626048330414735311044600466170068483640503820946351898915905784727284812143560714721244969347866337011620658521699648840949982654122509303464742790797349355710785401004153864297563381608160962368525726464732939675656759262312739713847762936065998854275215960108847573003455897853157793326557186496447335323513304227992715975348848057286791076353778610159046212289872029179574476326036310600624372908013417728592431944029291742627553170571991145385887807608516085663562296503511298531282089787858634098489764734874790345589346422541532652844555571256290505853250518776045558545429921268061451106787626011733017754110071939714958971022156233694355039170082383788530266735588738588278744037977734359048370189392716184905483941177623463374178862539486249771134236043746152830737371750144600739938964070633303406776137343352126936027282218090097654015795709133785127904114148297471952564241090989872099522015464901553522864522684129474553559978106343641168807350959032116101503299405558344732883412600865983865700921100625544012201688069076922043247406665840019731330902934628041982017786146698501520102390165970140826273752069914861470404058796409388062522571914367214461365532734205518934941537585063144127390015489815081660300606635735554841539016415761613514775319659208421893669516525596400081857529477467233325146110618190919959878815299945573790184261348072420785949290895201573054402230007268796846387631826692151031589788596847828149958897415327182414172447414354925513990686871290173513531653447550081485199818871082091509627802994632837306501983869101697950751954991729093820695206608862572540881922660977189554386040994244814960280420542030767803809674981984172948779869255351685890383722258403102177626533759771142159659048692981787513560202739430022091842751804167694372452854246132495771234707629817220191143550925281286236789509752343194397088652018257636302430740263031843630685346485227137835934712082173433822281724917913508024691923698354017698770145104471307243091531656216717864591185636472515196659001941134272422237539731551294071626613898649340789898820086899546505422109677529695593735943327816223447769796379367861311073853263528422257463813250114421847519338610779888336533537934801191351793298664827042676280705526374373795325991073988702846549419443048521903911510378591947770683072183816470139925869868061303963823172649518377504936488078759346166106564555328416684737430755444630033307753656610060710082720634785516686185429008467570990455062765659272961648337001927105961091837029142681069276475060598330497457766909917652868842860068292752679360019513121519611362574900833594456337055975695135651622901984907860607427060345808114389601258175026650431796896806170213875918413503591546014216510510465708225341460244373323593973239999003016854256735834057957922131689035759771263059243958880909511568545500892090287103529729674678583004082488480974795401721648681710305839468235082849065684664157799977546893731323432231213013621125910898218282983686560778835604144575372600176361450032958349005481122188710925217026780604787085785806849707691493763530829768720529764178449130005237151053437564738616243357283042778865475493350158251040338121237670063305534533111972173259782363241102225474359168002386576205151911213814925620398388935551886442715163515839081154592871323008988498951945537504895140382760420024366413919497126161609298175258032431747075027826542750142229417660308298586553555710844939715552288227978065869527674970604550100338399252153823311744529579841816574941638936363580080531369001667681420945629097716873839515885267353876690929189695274992102650722922213140575646398559325344103508361396862044880626666426130699315276593500684548301593329413391176984527607658447702879351147512431860123391352930444101084194813200222080659259243432561601896679634718508988371646737773788769326877216863132051535381858511738073213131974733216001318225921011363726284423561292755725338942475686402301558232306246884811123341941651945061829001859425046527424780382659886806447420741192901102540560873878185351935294068303886867665816007019369419731421499107366298753216854003926861354353061799637777137723418093304620891655064169048101705580980967924752396628140044659034380619778511347417053477084605055263241546402642466653535636562024635697328088223885305689682501704105867571012300744268191032554565944050912947791643209932660814419644241415973573106969757060500173108437989672614823462875528835098075144722779047705350755965235557540561302902009689974763112433999427368855309681836742471269557601419390175843892605214826683878132519808827841389754035771253510352219580252235491821748284679072027730259925015955970143828040171298559272374624239841839557046744318984342621473374973711514300557658539887111043625387025299295596780875858058945257551296456418503487192505225153994590723676836818848889107879882427723259785942274583374540289024659248060901109419545115731855581732226805754848657718178698727629395135737088383372510867736894867702759010633383810921549785449220546480250213017188053564042584734275924658144721235868625632671570574852153197241619867529468898319161048938794821262072824505067761536941032623196718031021852439833230542885166388917693301611030713416510311922306940453628957616733065242565311017771328563977697655536055086535482622775651783493807638274129172180875622166229690737248250449591712107910362637685677319506609312371448002231426489086889067524088790109785238803325291792898309005991865911943935572081786814188638600418222991062280456510376951745672222158726078491273465512630359861263020665387700191891045516578051693434798630107822859597946143209556487044034593740968293099901885954281974964401291557699088998494272709403041962812637507471243645897223380773663597047152428202896237840660477987973220394238142684814171060697538186590714192506263085325707617142368092866917958384082764224812957499101925342854727381141046662851733696387960518656119183635921952891829894202256570158363807335977630688211924065670022253443522694965457896879839636893558603077479070970510823945566302898546261641659806164961043104446668122301616721567792132249273178501176106086595121112085276965383484203864246996221025451996326404128972084062524178258399922971754510284161240920837685942616393485461766564156816275964886975121401084728139102412982227776925302315170611982862685194948656872978762734999727307228618744922581886187129213823961968924599223915591003562274346197679669855685543525959809862460787392572335045787929652732891306580474687535807495690332456843228924706040432546531148785194246517557941409834380873799311928827271125953643610761778014709864112477499501074237427588194811603888880993632150768521631120773494670710181219991128475005872650554323050893468155489217391404194244404625199507287613273126990822147669665683710225666730470528734707931064883977555622206657760138342241451198933988023763585919363534728105515648131006095216571798063656295428147603103302614283321795051546712201576915803644702260294488356421652041320968767482244782730731607159017492069647276260117245540256506614292763501892730749687494894891103930551671142521924265018728903437376810741736747469205682484783946315534729467591529453630606634399537418087408770208152435685957652101999238402981521722523718913315459217980365258500417583618637883056814634582889770666465341773940817684489823230384152670816054904513818014823054197142214902307549108912119854585478717540924274294807597360580191937183084325473738860993768671156102812573173152552722545307210866658734596145305336541246882094825385726212220380793093546877926708991328028621466129430821189069493276499604618554436327257862102051783213170004090906949824972329777986888396088041890008941533276573589935276708670330457301633056921627803317134099134783740900441388800286107706723999031839544006326105056526776997464385329757304982737142007968679833684617684236163047051257963769992586121316272766627918161966270596847271822889540128379139014331558274410822105053984441687340944483447529155259589381075952449170513922968717198312500380577784996382905017606414095207794430389890591625770478814751739312285232115260032384638258185193223482868161527526451201216933387538587623467726622769146193793250396422179454908452286781408103112723426674036617930349283617868564643594513234426104949820477951364092031807057806771772907876226892676059802066075713608719547296923630317950034993253681708395402055794359848793842893287170500905196612778914172523195347778371862869021686071325844781569133969187179348805174815025882812275575594599039939953086574054410687049292577902900501672257179808648024678081844389985737253597210230892839360983005521037395373487713257012939544543946260603129693212335070005925486465728569856941016044625154756573534287256670615678288010575407302371013077619429527201711896512355527667277579149665857518351494163802401827320798887300882864040526564394752043848086713819067477473112781557445061288810316577068307608688257104699149363086609802291343860328712000967142155245797090984210034569019859794541551499032394855247822549629857847235357586250798152500032220177427276986051617975298317599100552710649379370817008502957390960335269378802644917246636330913265106297329691288928126979222312785819517767985998023473931090856884219748120326841908933819233625686041042852200156541303652045943083599768946197052490843159654211948996083226987530998587952055689829268636546757351019493741220525406731810327091920755968178758619529230463601513329117127028351257371822335454406781713453641842607061398762591563315071319806489300081164974081080289354468566527393115872921807004267889495099319722647160800223696271058211395957468694333457993862285420940514000111973670918039161437588389204821443192825231509231987575255964286487824113307949360911363762938830018761902070680846366368009832926436065517797472981594958335301983029619062681256896952061583060593917438685628218277186266668251538370359608546918805547855339868150119847495191993986974733004165538265238292613521150262309831863026725169447997756502614277000989246120445493935267668622828380848409273375456818742001737281874337338683012561562267790523152309865368691405485201041346576181583864150003834834383521203648675980603561678934363226992405319692130766723922988406745339425286637892090864755484387309042856315147170976228962992603501550444382660442066896274218824689722416721959814045543073397414709789788387177508881289412166164852560277073017164076880173231425062744440061169393283005756678751840286963077830943360979750427002570658655499367261022192040543784328311018903816440802466662851087920203282618094106331392497116504681069426638759107974767993211433157369138155328104072978159132723404141305613638787105059119829255231424594215955871789988280787349325509621473421055718559687305466166024551482452498411578089087353637433380795000406450388955808049474794577457368601857087563757289524074474775274765191494122770599778391727032952747411792484389955106538058002191661689791534107564015801158518698848192638994653491832268042134541615442840943319779130798918340301724914319951662814587346907122093123439461131209068664252057606609003019396047039848732689140531064828302907406680972608110168967509780761683151150624450145453597819189922489142007308285231128442546220940793689202337519054078969832742996623413538854905720755378730163302539009978562828166822752430846379040498496502968397230879711989024206430046021656403932326332342777011797241681898035166938159477436822167579224491964796154226333176709950505760501727721795409000183354294812172188465947296206734050671818748279379752479811800258665165298498398424457383944873889778967312841658988231852133978227741624403434701159887320822992515166255894542093896804042289405585808351612950144459178629211476713471321965716930235084420358699887455557149846931679010757910935154794438286628011019385588920997127987701003229782086561423303139578168369892980102825164971849177342291376413594059081557751273417162136819513498833015773836868818980432547604335691361653176101438199089237479585117045510425157609974790366183279806416614119671743313159107197990526783138731358465383120141031069890104274578821576211763340838202772493213574953035533039946317180475835073529385779865436000766044559042296544450515846344274472272234808910436502929348402204372361585551107410555307943111711794233713386289334207395046685149538377356152246810369296266290173189379186686295518986636240816865039334615205269233794939441504854702846131293755992600978630502939384891650732170450713195180175493514464723940905831233503567660364154647334439324849719189586376986136236464171335065646106435252151264284411537664390561267604144851814893917473884053344431491993142701206257007531432881874919296246275173786860471103108079041948682269739391178982592324503432171043021481392378230221926428026436982261449464322082366723699461463568048160956717506014625631158558063282422540938390024472314524622985436227353590116736976402776551560621058813859569625775807802891664334010306331930081591383350617928706046102670576772696094622493349174205555674482577265705774378139001295853896883768490286167715975947350634994351141958542495535047640669745726333652860600905119197145285883941595286623614795498424030019706162601403463803513800275151238158187980150545758017356213727340506500165419509741609737280223772320919241723773109150268196113736825222808869098957720918381369095650434386603453836790158389197187409880788958986892697857008654153918297901630303303612203725116732841527545390201831151164062080401761688143189039470461203703656212164524456803048102479238372419454108633326955884946728301890777535465511215011235906373303944963247644875941367023291119106089149806875392888036100052320278954987166489729789188980487338113475481088549937415303356646717339449743725953668905633594213855454590852923246284905384308645916362814183782908723946440537623671730671881673285718572507806494113368129327679928964857814961022328581701206151762650610376922980987421261575974162861750086608832188714834555859110621638995264158305038354848118534452513162943889109707783838565011682058292134274613560465116936270216013556649118591507075327119807887682941979125820146698276262133739710541433523455009934576683337514833336019676506136107559695767835287328718868525462086241298679915227468548930468544823754492200525857829137822553396678223316411285148817653557074083355563840924272657502672688283203358671057289350802707912761259848046976970567439140962791139602468685385587124550857472109012050551241560217459725014117284157826927434947720514341771743654951520659342675273032373118336203338753769502307775917765828384342534463237211446541318470514874014206941855431890832277243735258926978783242805672950772455256294894239055817285340496921220759029195937547980611160400170304044893698525569394261737179966554372536402448505990479548447776144543707163454301360795046168804477597549760685714180383597487738775363321888681504947003431842551540446868357459307977309220025986050821537789209236374196355226989837272920004797419434362690208852672609584323202132177420702417199159783816318158574111259466145455252379155097149226565905145885986688245004756067931710161276523990566088392946442368676986901078917676275277085761009073280399222619001034620826423751033871394590575885126188205393972013690086029945321760061613747618783529669242466200045266529709355986119471984100348661084237531464440879170042645014396736324410451587650232213646956958593434012451630980381526699807556308832985755029493678212157632926190251999849662580858525478067947863544024139475306807920651112909547876203128007374213625048018055420153347717948614350538240704727640658717646632411911728172181075497666365045469069493388959096421712224753017371267246367366597023416441529238242382354657670782507769623205316286600290174997232283984756936313912352717928699615214505535674603984988684704616173624452338907214659871890158707439239416362591569415139355073619461026518929087920443018470866830824573276894052482328855632627589028291231876977433574592981920474796618009112644380946654972455936468311648586554669897905546382448216319770502912238979892642038100399721644687218791894191160636990959474148631927156074643256050389271742429603633803262881386100284957603232087075113505217203058014907889157641260112091488065305069303670561593653408549995878568310669191502375855126552421476419299163458216288815414502108790340157518899254381049648466118563561138862752864136450135505184755297689307159614262839433622949985990467543012703713251921034198987013069234672950520824500459323440257393694075032017429790031180966333160290947591250130681239253615262566586909562827890446561557895534850602684222092461983394392623401637082621650381560261978098551815003937886789301244328044641823224565170368779285553762158374847870833844594579295657807175996779798773616180785066100335135135029421024334327122035422020160186936764750170998493594780608329587185343802148461368110712446903959777949203215503935190958194798213194296203417799486649223009642260511456673573120876256719971980407435085292961336492563178745364764164221995793665344445203531682597777861789379564171075978185521248920710412504210289416849513158157705515696069079161448143138439457009716933514794850991244891106212553305882137346830363141966642545480555899836828708055264118656054426964721759762727224528524704779662923423869800334734421391474846035776444263263032509975568384746477056259171720919282660420962539988673861049348271396913759708246269170705529925192244253055733920738021938826767567866748911674178901581413458361844663149528896172673444169564019084395986484180637224989695199975938328474784168254608929665419466548593154779949714248134743665532970123736361234110315656568659105320342057450797181955899500972998689910238219825567160547839486195998283721604977673119102834830724630121458137481269525007102841499558298149246964968852100611924575036199349835312624058700547769743659179883853510712572965518276874583440294876452660650901648605479544376464356614470990266563270536410404978237631309724312940718688036084229070512715153466180048207210439156591675685957124189460351284444868968030932299944263448403342665745254715571606957077618662859471774856750743542598885711034622546038891808803888460447015628151371614185186745460277751920488508259869081524521847335108674011405302748283944960215722588853509076449120639910051597776765056868494314816036229315452733551988679311134406829283194992545626995667419289914544780232833452580774743682028656976859746640621010860247052254998301326446199259026623057748626915081285958984211482907226109744992242008296594266744582354541387235226884479145328123838362423412465874834919120832815822491056441899015671422442123298795667999839486333987715884603902907239976596090633393734785180762972933176423054962419303519886701634594143559251379744607755212771320896761146172410171844674620201308770716353420894643122101184921224607946745162533172847930391046999351147037360181713499862983082963984128557361700121189918128014546174064748098599748854305119543173345001804724500755092402706160551580254756732793235886958984314631225102686653110759374264486850030760591908463083232411785103612675625263852461679193990262784402012684747287245488304775564382562579213069763198149829884574973842303355449769104420974100042719316770828359820650278443501816862397918038992088990317605069140714566491650477698585131217576585991125897926061627140256226356720686403127029225573174893212809007832253066227048744439707763674888272566325075930167181110488824642832080090305727462692123593565447619555486442028001513717991593067606072141933040890089179688282389381495331119164225120548608434228438635581786594316527996193714187538384241280372073867502933566789015007580121901745496170631563596414596414527060804126167268347703837443897402866116536377638914522353194591608054996576121183234883219965373433434415283574453943684723973355531554140890095489723998416149504675331287601043286210741668832752960881757555327785102580368204260898766941854777811945929529856290027059762285768931227773171625363065293357574192552059439085108779293283817985381155520380652428509237830632629301276472396660907440989778421463337539651244126694447616142581438711222546141100772693047112659758424767401150373895290433167513114595573619243965180286701000311763139047488063382885050661074420666338093858816781188508200756937754588166147636069666729828963202813758557935774478139674638712302211995918667644309097195579800081738692141985612390316999138742859425862617154193425475486314811330387805500364185936791928736397029289578087794069829522822195439491675002682907127033590142975836246742875862850637309748138814583345578566041481573098144712496130587956126175511164513673241622599290112735691039796098586760142306339204489830578428071064652101193766617797803364048507942776609392479203808930819634097129628058541601431535121553031904153938772706091352614475285708645588553317015369604744983284173280979420102701026206783878223835135313132964500750610925869868277059062390241461191042913210813589437280253708711179619444648204571319017043237014446900565840938749646766829292534018462728358275930965554790865495930708789023520167336246338183565580734147425619625301041986097029566167513468463014049123923877408973828641020629929219943512543447069025900035152382316337644197380690745162078146933591828684733716002535758686466900776908928764663822167014241492201069281861500235765278536418869896164179523397257627683206534154618628157762917787012161374514670120894170615992675216236964074087598164295647126479341223520637593160395600039612657463540650393228867971403186561526890770786385882517983387991180463266195046574270661300900405025140961365945379725415016451942443559473562787615443457637965870741173299643840170533371714966954062693268663004775540508934329083938998157379421916448742114126903411372626857835330238735633152163480461490231232162684729774227498081238901053807789865040833665508369205458740152853310641500490777603184876970862205562818192837519829651699570499307290887747209459115518196982143955026775682453899472961000163910266153843647358451662534373125138297183423260985304872347411494354564243133457545756375752563199999178928900920986563008194705187918719772609600061925609173094776349367070458504215938957635502679979583151307064045402605367287167519551255947113908781473661624699063853355122273200310425728288112368612528966394280245354939181696929157183586014673645469816097060960145592320410978155707913143816543963001874457444459117515395047526797431203816128595284542377835279419449057951194884058506732203191046805819778831435173108854145522841368155749773842212554982227084694801718283482852831215962236027204861562039260394447710268177152247945377775269923393881293905077732476750778949963480830674910769156335162865607121605875702833748398560090937722550027940974251353875226269666857292383873235131498173949312965321740093178193378181503236565062374119856463414808134346735709026544193412682901289199042902194800088137503283198353852242416687969187247666709707528116678294626873764469860241756924061893264001279435020529850015201055638005882010357038503580990285430245255693233769382153800293211302309446965532129857463638992762816404883626065388120927132437689513765110971518662632669983184065862928887583263565865582430826978588194616907823524703691105437849863202449343408654532030931717768950274986947953388171666544012956857363776547232734533765393841227817846105397472129456614952326555366486304157240654735264556223192983717696181204830887176544506255426340180358651334482705642509808268744603808423025823161251719485863917615072081227668017549623401482410471454498759779556072662216767465569531163912968449526350109440539188965327731321975150365795696363491219991629477985959148736748528210595039073086109893414439456262660698717255925336073515572452820380577678310996376852009470419178271673194038326170366322588967255716093969540544846928203601609046802768567950466193919471849472097582118858699672046936465632256237974669448341193522645273877581302509860212782421271902499344225193483156137506252178746217671798376820905195832016982688068923086203247182284528345371234060379056818154317891350885545409921735196274925066490657119994402477219918801616052347113195356304401208275197955705727330518875139102423933977568667457020586971877006212563801597103529492772642737437344069582531957272172906960972290467954784988210642393299376540795283866333334692367529567297647680804880247689992848448647376546787695260883672330491001471386587924101315489516732729193446061644328384634499832115070734396154496807043819450716008340982996741966197554879773383119936815698033101443486962240340602604523180339362465195394855674381356219746394787923617570496227099379551293134269396630024358282969391836864202706156166506236720595285849874464113290327497267830769722493006910688062354145475744543349354568481766871614582276236384260267874875654168535488068718873359492910799254270260768306624278514636310685952299590414730124664398314909347429323764365474100568408167680341908016788110565619682808939630652920330438246207536333144378933862389409113093436804770980162896400846591138225323950033144208787431400673255783737793731908479663100841716385449628881977686049500453900229972567416094182657443160994856940531613198038371231494854721691687142787592076372313614248182144570282905995498023206941325748132304488267288625076807187900253604159966221424625846333036017424041233257085070278206498049710000284812621655373238476337497197420490960711674411393239979340758173382370752362916290664324549891342692000785985933979810418079370326276113700864152475114826404868649888668758402398523997122504912245454683289562075945043048738850503782689418232750320918257644894022018396325725698482141302336903139180233870811490106474987628708869783750933103225989079416143871512283442520747280380419505823284738681036767172710041618314524489087205951399062244294248548359625048643465619834797497983785779826559548076704391189335978543505976833674814417906569495187357152823637807093778421568762684699745815735704155719226340264233934252787820573053115060415878414012075331326581435703836442206517101033441154892874943390857845001890258423880676697670462428707414055765943217267323533557178541886935697487183603794763650242984978829410491353194378758147978155413178557298730033860817700966815052305089962718000699232357314014264027725378404982695282676480642598472605157702894281137655228269225995921670284565353900630434690154375012050548396504239363924375044826836227856680633700150882639155755065938566693971939034959736233467510505661028778462593446426637083065162283270522841404576608122987849826851170109291620062851953824832088737808107953298424829773042511107994006236481916521251007807456043495004454176384799670325077548126912822156349455054850929482672742650168822297746898897626350241094535907798932428759137160434344093301997765658068277654723633663027697206961155752892587484471464357358123795587216131483480295569322936756668501664787105994732444653413899784618658522341983321296685581947838016127009657193490901127103204950497604759780513760458712392716008200560024551930670525592546468792001157768552505367144418783730389023614875115999891010289787239655866920567894507980560784903263808318178015732859155746848432482840988476916446938719101549354840199359323365699037204979677862727451819253217722219748010091766568580671774068626120238119870303894925697607360764984138303694404132213713627778757740309183299713862611113360981036136820801318904750468997856622824160506519351427140035701478378744622244294105870074171681916205558277993981284662529687356395759533282584860676567625814722538069050599697172006792169564991108687299486004982033457638175052136019888788750883082943301481546895784306745300449983140583305463218866497494505131464564943286901303211441141513840626471066283766067060389861037547585544010755638621884142201774677275934192872059337005714907602350480516521876659703312233938552566901461049905662795204124249469325113315277917798638847361366967711609624278104369449886199962568462713311648322191831878906307008813068043419534557752864124282898867110140312856019287222203579723625203038603241247093795087029442467893110099750097410640968152179117286449359695437172297246615697054479368871182501507422776112705265067465459668930020217012729272810706607968204176745026015753639242369650997786420586108688220952061284697964717778475266733401009942936795689513905390751633561498344609543258607484617622972688009216997328806250380761470476479472986353399190312981510360050948509907167576337545789004674209111807879392090457952066283757907457280644412504667895578425387050040171203055296305333755488002740695283018180606814400917266060069318254571005082342526179458153026806215265733096588495687660653593395039895334395929489838589828597200206760696269799545442004320140718170303762227625131162877952652305125801032058701693377079679204699139302503210456118279205040106378376552405499730519306978710715728070895712500217153271631934806350488601939911683225471525357949762367143441909974319366104160413771160392838395445032894426261729924480010997422475681433310230893161992844780557729917801005953304273499226855720440891712932789470852997462518729391313137641619598280548883682189973543586944548058451943530218666831440018128507570447690227066300172256333454796321916697323410709751097824411134783849083905705364653556957342767901888596727254024953414269608878407519905083546082714477102636062456155260768177114362568986231438977137147908384102809361921682002481947428656675260570409338668806068394240312618072939029412722371917474324230981376389295869253663029211615920946206965967808254999695714176233281102736658085448296091987812744312104945077570558977111239717394715562202189026945325493089277039657732701788662682491658694320230285803796423152633391594003659968989659685802252532531739364183442724270304767329342597704195767968018684930361373828017928578150719696261556354829969708688178239783979894776998809289237052444368227192176982306365646086317771450100302807552721054080564436780933850658188001901254849787853168835919730240071617302109834815003665407661993804039508136516380047532229152137863959086570751080658464531031408959495460611653798085845198669733517350092325479079303008129509691216491861363867800447082099827696128783597994545485198057361081436629206440830611888580070627728253844493830211545460061795590525125593773830286178669696721213454437793857973434024279059512867802288144855428010218039748454122228589291964023624178529087791785737015740849593181606871514995218473103525449564162177608711444494999277823070802857386429298691566948716508567842578454650732279737844849182485452199751257149065730660627313192733061789827408310630960159423425344606574882401413901463946745972427046960303812234394180378131090964762655343528424709853319945197748788190671858957663539299682614423126797976241935765069393797420965129592050573250773361132865690397781660499943492787679385460132508167439955981757029237241605303558393523791405047355739751796863763056755174328357416132904995899861268436566179495705054875266992976255088205033130658364509145557049120929859412675210768987300985290694394554271389293871071535330708919234534273276399281847475836644876339149801065269879612107699225580793736481802073518234372167936728275687203551513738116343924333254388738312241852342564282947604209629362303382416918851285964205552212920440444373968049181646532880638199663443067799396857250668548603431468996776793602017163730275858005208204520642621215117001442327264014388383766692197819232072956697252951934525372327586737197503760096673900515089965936245071403108904235267340018297736877201222342591818226647051794972212562555841518210183457247621167674734824780159149908211062065415068892965914840200546405939238616584744203350364121063013608521341112227306346854397135282741771894184248367872277963291893372014304936567137376460349469949455869964623780781088614412653877450735573550276340546386893036339562456766268555997478749126502714778611878906303580244119873097262412978149269125641410381520955724030373305677177687422813748315339559080764942701427223117897459467858433553030231754171873407984861830261182973663557476792437224863404005276466110814655325029608382743083225316218936570960144506907660571761749459566721398000377068011974470919299105173058415123089325769858761288307847953590901408789657687502981529720561911151937017554549111456090656666850512920970885368703066842270862122841354041466893119218163044745029061652098865001188807965455557766466283779952643291632430474743202831267531769666706053409824684242601065636824375890652560484185780335020157654552798946345181874087379539190605048980941437303920836784077600774630581961634835197199181227855155961813977934780285560071421298410340888403996351085134015060807515570877228562635199893392152732214295779187383230546980606655455779843965587866433637820486951961981259966478332311783018740366356296551472644351329875157362440871894152214729828754009013125135738257568571042466352562277345250274237892073712492577828451872936391802788876739358278184788346420594197301787087757058354624193086814730884417321344774640963683806391982106746160910722204727961077529403031475774610958061982353308695760386863413124416008153098014543374335356497389871236707670729278383384270274458627748161277386233973636924094803301070652631467288929955010790472426977408426383578028277801530459570515842395710870525877322644556577526420721781375021076954922049828775558680735145504931384217584172479201401793419630646393018560023612005677997152958395997855192862883637867960895340558342712543215062283005178638501417865766879675661702346242566614199587035603534608333898802866084981493925489150575132523909660584123449757508683179982509168005857070400776652332699290667867674372263749348307792257291720268122524174736226777175312898817521761707854353686181697421762841997192372709947394327285987109023671296346390915601272381196283392257507708574287742356669687804106129955323701467976940641141666695100798531766409434742431299108494713757939531706695112016134354894565894876718757770619369039391799200062323242465990487276526712067629138389442228030589887454238906419342561332588939299579708854136460723493680022979222950759440350856085435605593297878956508985186823227447579842770273233014995529069728683672540163051696389370387661053790821523314265387966387805312497055568327663696480348484744486987475550488149810579228040957711563346083575927419414817715615961572039991342570825680127008355630739978119590429209553177588518018934678438951723794610913972983834250362636966284961200310704069381572101673555858433281803480637673940672609487768383448569304565363111730380492916301211070708906740294957270931640631453903886601668269791832250072567721189181268644816272296169376405498984290835027359306268749247883374484086253702412460284752682207832701267451056248140069649618118697544680079468727007316656055709983003529973270738660906128075551173539660303423036709826361861089230181657806721937908793365439521070813620316626300448594852252422177428108271668276841731760122888176382052082238688816230069334726417083543811060964245445676478105676956346391010082820198767826016949182884236841274151163324635338813303732295571367830154859951407566666225447711728168030861760438110290421381444058634041564138901295476704240372229982666761015399018810818340542642289226831908296238181360704501384018382147927425048177379928702596205269392738809080879957849858445576665385712114917775936565105099195922023520418176834701553864314489670164436343659291292286670796295221927940220746804416511068373190321199569196598244451080432856255761507597087758377111012044280703836908283892000266928578011860795271873869600276313915865994135420802014636069002898568764078104373901093337022812560343245861815909623839328302941048662410042379170728442573033198369863201847679012541736618618655703544766806151611556314040945083209511074217134230592068646807875588342438150290889686186596368450283485491891169124709599975583381869205291174663228175413639002445169474659992629989409904761532932796771668721336393082016593142941959544296969461441685602489731765160875322283068906667480802180809308001990651975261238137218617362579981324650100550833206371458472046571136693340864670726077379399293952862574169961492021384618889638605923771888496518106162434024439740702193287753024536841662291960785815536517445536403536269305701425562778728678449455445456052799463193342013040149171697078249896758336058264352590785120382944926440762255094770125303634951421568682903576951808419291009255875663934450107199010183735119821765178538160588559952880866321915133568856853404325733018186744070393968047406185844492882621235414499176943171205697550906355152443772607937309829949676061096293875853456930914507323755229174094207150714593100235401535925742780565924956313379116536573103445032540966580210507208075474382782772014049969111395265946905228383640319283222626599231839576503424654814391279066976869539203247679212568169003646747605904970530050807284715509723170174852977064823294380777797900665165140020779763964367931783085921169739862666869806837043912164235998054647516044768314630403586843802620957560249751163186681493050423463131994906113256644174168179196688114056414881718546144103082378384244002999359100623264729993142312670157448860237180974422902525300569551272418933688438016050075817530866282476148288242858700474416567008562031542498022606404882702563926469155141411089782673621894283796920781644559301236264271316822042973044074461002564844436664528796910759578407389143597055200407124667626103463232422606253685908287906758056098653332761055887169102126727546553303818778915765960241578338110083797467878451115776898281756240092861417800080371653534554941634317055872309950943678535971938990532825493970960954790705404345024008514950746333004875609541214411817661189305311683650020494034165025336478696340133059431707918219377274268237998041926049724724628260397976337889883025403512181520208284087093779845891569631028316014819195313718776158917673450248988346217530135064427060972099615182128875185247708066692575095467866044559387601959113357648886369390044162113898230517699675181060282880859482099949858207562416543452535390467000116810135224477981378443356389832694339460996291843346882039274361286814762348669331143934304397979225678098442919671437869032017479839330510874895525541542306405466368990296350800457184828599376072928269834878906203433635500417335501658642631056079372770523908378253352510529549003873088962331442076207789453193638653893179785337527919858278617433603372087199000274611154519062076095902760764246781749826293325686399250518566369274901573855227256384039400831344226973552674063005975481184221241335092906156110158923367137053432572243116947069918799152116280138244206255243189339841650636108033599226650632261763503357241295335192862771079791527886931004056511754725993982583780185693217629175502459587905167629812230051625530638230105415615066245412934793378559050696418609281287463296181382646505405847803344237921161395045671718066916115693045966918200521195398236942212865012585598954189691405185824310770982663202525326286507735180711207298383831360195221613619987272030219006100974941346199205079969997272771351624647062813941785841772197747976854007225573262255562832625213381209868565947104610611213387905181337433545611418407156781642459053237011834385898852144031839890349153448348752528691304589376954312913018229726199832568466691770078099300858864873512029593192281847336477565725592289102670366642780077121108502018200617820232754544387202296713799569624297547638440011320432008184395324694280364017632444567436448809603166485458462970303805911135160168741238420296416893105395429519606326737752241804206407768495998360293562935866869793383537834780961440271135214804212098084005737815432552529712511800565908193032789051978983506153872023226407315425898530490269255921824253623429674951369363681491464185950415866280668429325835612630552238585957806429052755160073983660640159849982165836471257098833354973330271254319164543673106077866001547744824212223616601505918921158835902427529063196397393813961089318751366749655530061145559288581251036006371289239764530800083752685986827707164723825688727185346326805228437605803519072459546587943469304599291874962601521257637573795769416483524022685685854430938546414667158609061144424348428428034045545827050711725416792416697654801843267272393926059360068649002640972846437786270474035261764983497246410218254992311835580140872063405012486087219366366765869090862173088173761571616118855909942813790325202381734528070713205932881199945038117112393878609263156014235124059432206925104793339222585269745259359672413047222836079684459734605508468299999347460171585828087677544288221834326781506772304684313793258766938096734633567298274221993032400193725473945509883019972618778810927212865814606865607808115028748953941940671704813559274865914524369829739926139794322072401039350691540363838879525151827934601998794605282302952848602137893258784517901991748869639177126605393622706339022071220743187651289762234806417378778289682357201541869037512840761045378370299867619131778092465756876751165884359589003133807515142538077287045761511599735301869244579808684929925592175740086800226252290733187422819399019564906941594568142506511794724643480578150881262770550389803743579041206430737752938530418968297356521299848361354258649050680411475028104097011139187312777467347268644935366185341403807393028453718081866071120369647036884336256394719814210430806490913301604304495001302168720801479977448365892793317975571082685023238179871079755222272843325554291358163589263146269656434690444507773988144091153928260482274028838891349529726817517452109937772512974116820626486503190516417931557907645659596470214876284918557161597905464065794972476064688552198775046956036189922276999407270366811701512408689284345514258274440896363281923932300625817723715912432411689427778346297346259861033973276855931547414373217327653273295181044901015434673511691153296032064890857787022972321182742501271353701118903793552905948686938027687308421538044960870339196306837244541917806779070943043672082058772946250343268361371922713979726163621378618918576691769354911834018834389432928528072946934315169012622232915983334622725788175286188407666136885690056826840776667096422563512493279001169933932339382489112328933825659411144309994396730436730811399287900787394911991676863716154564327893661426715172180470931800556283691453744242518979892644479807001399973686325257837137014069418315613956724193725430380743213301917687546745930346887224604084953852329004553322203448494469770337213692961353147708088345982821546632748566876767123572144210565983762211493045691381600209135762369380402639889986179455983558787611550157459568444914614355780751818227380857852138022959316395037622218102848713853937942242911294834178963504300687037930223707346526774192642275510015293263538629698213599942850319804704024808424528204362297125964242127792303236057603628041191929053916456684962670137165118386660491466106283783313993039489948275832987180014306996641680782539386147997963005489511146792667793039035604972164315237151378042121830473886082059155597285010186963644605195068266077181041856914263093292683072000458430342266277928960395775207675988700828575046909950764891299977699289467144856910069446657890251482578831044368385819056439489021537896313376826872709756670236576253454206069128169263520036440594923028890622485932890324142330662660105948551589035729608795453739426516861972253833534057431756287735675140794641001022062862288228188256594883706056506169393925165323520077565591417375451378513355538662119879709851002330089269084022061254095708937999981612420895549656977590166891405380390441019294203249175252295687331961664961989587661343624477312369016027835872474908076245944212912212481905847715983255725485041630931760323427119574563777278765060233317207709648809838246787379016855488061767863329476279279354354103283170446701013774277054687939644380094583471251819736288587963965205034085615423663908640962770032533646963740334362908836224347908313622018347656047056951302254915587989411839366585125253102610989342280580040687999105725163619579171740166443296799406230892061695058420751031816792422540363250116485312006295612938895962533423219646506745203358102389050736512659100277058337073239340792493674615590620891294553123079837522224081980706496297581430497795260279063684618931376461131408538989445088898130599077037286734252472018323562411324508746099125457830626164317817443982463396204420658084146044543052924999226746828149644783825471727282698138796642298767094073157782824195241839133582351029793360641782087472640073990579065312049850976261604268816801744850275133347106661165056705472222753650043586765887815053321149992047862215935106004834189709747054187843152386338832201289969316619459109278904433173867617359925253675949924999381526406176970677928098010421681784726273871403912716418780640616202299483232265797911605614950555765935998404801561907903092766901390989574052770721008866420965942803163800373790787285746688215724536863187124311666216651595875193703830168843134821533510627213172202475174398607501156109476394928104531767490453349167440150296775176062205038288739592574058626832077884723019631851072358751327464630840655952767749657335849238674439391566158893216251321460540024541856545007703619884408372508846374376066459282850676765346602018164020798381110240457860757786843025382598013693521653812190842177413136030678990277438058656725540180209416152664610282135880307862236551458929022108856124531080592010988507931847034845417916332075895245605880788168252008811149282499361656394369948598201752241673852624407356178226316173765144391341085645935417260114661453418130804733715811777725841024930979283355695424786777511071325812392682857528352267640569921837553621615820777763731080175870103948623360547015181010504655856489673589996843870453352344011710327626820892299659314104137290068429342316651962626118886868908512538123038104121071050385444060094680281656672386430478282372106591043780446616778233124414413889043072079568847022795434272500299650074303741363169952361216545806314767732711421329257006480945515025102148879952526023403450492249785143137363720342421186280563427766607540499748495834878268712029063383675569828873778788050568753779375745919371486793289111987814684952077816154875738457718813198247221806371653946869056832449556439408736556958361949360369461018498959259863270065511000994042011443765630633782140655660579675828649230872745605584273090667249872601988406132555794973628959484303523280480986104614984418344072580642443029928728958085000945057307438681740158791395492833872517501704164120438940424739935751846521554794236266385410711764422863558700994954138342651470534638412491790714953416684236683178319376641723914531754724573416011406052389323820131149348715951620049824334903873243987287791907883745740268914202443239472279245960373484376007421017807686587664406967004259910351841437804057153165692412919827137051073123459009439427677418373505180943119678741787857890003620339515323895779130629833546088196093066649176786507933877245082876772222837961852062277850795859833899949997916944939026027162007844343503299108688527362964660641068447365660212109693420708690097944223142722298099059398781935007199841487532991442475714942884230340041837663016655665601015921799287488369576763515932406937466830801198179580220907875335417239966057415323872657164241663514479968511404796170525888312669946239215855708240274661154607165232889934853090006495821995929744738367185240683656648406409592228330419693610437440345326426872851948782402598523912423220155676831814685011165847411447913312582461281569250493182213166535326505605199641085439577617227318937106230269296925038897867047598825085804523906033844133662142580411908208575520445382190791403367193805417050152011714901261761980681846352700880416048330785243978584195411019637584562091291131671196631703791883047428669322781173221913075572560801805976312254201692271941757780837749303239405646402482851564431000717487796735040048494047109531320883889807879329321641480587247492233504764992015980724173888031021496364967519690104979713547366763544983013779418804722966720157807270803914305174330780941008162674822693466072272716955425719264875441450522973217351937121707609043008812559498376605059189037752771942968754753459880371496647194883357977598411852111461151867062983107755262850239194672850479258130518451867772041905045824596725055476731845671047029917462453526708179930035101597464919758240537519937457882912666642963571574080821502092426263214745899383818485646684125381822795556144571617317159211282433961668916602809582247815737976920834679623763154528208732131336393911834069289517710343684386745397423892426720979440227556024698525324043195487744138400197661429259595902155594775132078146238459463105130604152870067647948780813742149595589046602969820404977192975820851682863635764171378866905877054339043669152999518776830984942315399575737302819344616565278876492648219441986140561995257726740070777558235709218968277559068497624356816151078136980979890265548062238943342096230627972190707368494040644500427397454620818011135056447394450248649460676110742782467311332500407222640723464290292327659310455571377021419402402631147046396724449614367457516904163520315986856511483474496290173274188586284889185013864094807511434238865765594025768111022776552634055107707327393407521204352088959762762438116477124885556695122551161810156627221004053646247317703389223683384094512496838599172771516774414048399366394899902163068390369610989072693625335953969754134067641814004839205999384143213569568144363777299113380554551849105069032784363672174274117322762803667526421646503575280206231863131778155625776473111884163866953600867192381592011215466340889442289848702352347491472951500659565041346731057931045545771981634500126109452606639877152360029100126441915609105997269076278666288164900448562163889618460506693257138847125963496879793044445139556846050885560966938618858032794126607661501476151652247307726384798546031527762587656372125957815829615713002207107619102993360181537220219740504314045376020472981024266502297044953315403092676025581381551552487900824629811601107753661065162195737551832641441445445239545316603528081714975449752180283254877512559998702753931038326839681812451278869830230834439449014358957363702103425325269175837731046282520475726271304320737775268172067750424156080708390381280526892725864129918560395539999580972610003575726332231141841032910237893291343355368086372840333004096579882612998161973409488193827275587125181950694033197428350841463063477490215725394294222064523206766571936504261624975028879173611686744117390100301470498930522222285864213166816661422604013298965352531696738292327900554655422342137750936111130196565968283218213643573163805279960599192260534909402134554513907329111180688561261456219191235905417024464619110796849238006007534367084527015839974954934480691749168711707306279120694956951683315663753481266799517661797490161994310821284120794644939233005029364994434188543210987432452027882374527215751269418937267556391350612021836355216248126942424748404166060911020640086385398553648535195646712096927535183318044505330948284867546639429833172473946314488831303662815969687294867304209485162733371407599864052377078552485798309992293273849354530289474896527532286090552998105419248409898324335544567285243703502444002614973646297833358200499065135818299896122568432163665780478219827516222371800228188495318891811671047857638687327043666361445095725475483633140355156109510595584656071654440574138899582945952847233019097968159642458852737629637544823815059483284474857576519368090430302473218833236591733330351725680621781999176420237967029577001419461259780075643531796385484069660848196832249277407011423129090909046167929136814648031501185673565147117685304417567334168023007650080063887523761021680774670713368195380859009372633211729744761954156395998533723131503639937699229056826319631576667383089718931848288473342741989300822756418525317417955367687157336488370078290157955464270645991649539638447399269084580206111180027032536725140997154780340523239474438320572984339388248773444291452268200873793152759990345526858936654393338770065644829137997879745833427613764468747873255806411813390437843340273893822516879931755163862938401268764080295413806960625585350009467326306310359207410220611206761985057253646017410635812831021176990130187695586311044057704124368304781522547737101726258444763546412542977672156694926610377292441903262573971267845703087582928904983389262784357735834807158329837007797858048455991388582156367218428604643609446536512792547302320292492640818554435587548650920462446160766892192996878116935866718006306421097591530249281293102064221065343006031696252919294201279063845367888822432739496244333677568895399691776907554399247219069214984215470121390702470169226623521995344244256890438036105363476639792681927183305245899469120257577064429518078733730016235780046823499419022674606102438862083372984133964706080040012491665224880412213838222214831512164427040681726348624583749332543443788015657123506108533821829456302194408105029331874530338927029945584473470620744993473975479699603010298635754614249032038494587390556838849681648538298558624450125276870247268689037394951352424604547815100148357329630306008065544559665293423107289902708558876845013512753108218771024873310963635513841885274489492388106701738967320034432682195970402521250284490392259136947585269964772111318975089772981862521223414874331592295072915684442161998320197210446182746511686929883898143790382985616402155824713066125671285138703064907323888583362200126340300607532509991106063836380271869410684710982727573781475493898615528644253610787551018655648547246692445981795984305256337987363558917744535597432425316082587305503926081435370760030437795861463633868997150254506985660626804404163701205498016102019594108467861908437210176296417763263689246305515920076076094991128292436005414545889652766675102565151678888860399293614886048762947160136469209399139148379741557292089269443786635709257978858316828307255864406636389031193659347447169884420057415032181131709616671453482319180783059860521779414709224910655947194849067924196375965738766695340668797478712074353942506115977603632835791210153353539419487568023981782576240365425653815186801523669867069587218611460238859598402669532751438804853979259196297719151040599809984527146028656873374241713224570050761901624918618321458018716106884103693813237190424443563094938123342955541926278692206882753050617560572288187577518278169494662431715971351099685325464218119153989553673404560039834390527882290194765993409979789166549219988612480436254539894956719627198012616110180890715398912010795832623686077680964034119612074436889584667849369977348909398890077879078015868502740603808007844091583147817670510349181914501205814161864752858293419121961310801926224700047721336213249820261720011551062425119858329686073807955593766586114078806352249115357489359902218338146732608877522703343491278892984947965064064447028664684841625868471390286973115886744092168801738167643769609420941902023730608706607598101594969590445543875170830851638687682746393978793047939030321216200229386852598506637515017767481334454833813467881712428942747305370220052833536568701665157295578884622447081656210300687777167576897524242454771590396908479975469475077293617934567781171485364892757473193278495439543339002502187276897249776524030822286433783459575194971175735809921641186089316069030103001418733220227712792238963331762499511724635301276424739778462731872633250856491560228141653879960143855859074346143648875570059058461160165868806831019138442527206444725780886322967024107325365436010430911384668111129031532936658320859100627768130802019192385079684425664898164451711445997314434980498492666105336565104636831509378354549575005912015526055343584033364082959312012346012248228631206796085863538507091896583263959357553787449253096980942408257951757839882721877027410197197130850016366635639929692267066042954461436005008124466622889276467194842256206717660206216850686944591946515578228298905268623259907138387707942030395782824214955278996006414810498959992289770165163065922771752883989680052240061476626313934398813403419408475425338265920438879246080871791354553988108634749660765471206483316191377121726906136626193866211249743900246847680733783064750938517919563394607074982658736526293711248860602973851938145171497000912549188303408592196655085732042060306654860580176200513121168365851034305184421023255538820604206908550932744691492086319682952292518994649437920001367388332576063810187985612382256411095193154851502699383325002017578637328013190913061496800364918464734977110572680083721283257957245209317343787145602182633022077369771334325076769196375044038771449645641704702503141982627983163080235556622945825625695172291120740373887725011027440745159614872592827490759648238334552398878250117320438705796256134083998335408652996643814641820002574731235368521331664872712752558307090803274141922847359775119344013695897877900156975547951733074438873128530293320431581866290726019782218129449409684808187253753549951245230718067018213472995694677253139977714176186592295356307542468943950256359999119788189504085990981915486755713214339606401601216750272853837768992988000400083821611919629669715841333334959954401963161434327641616537370059373798235378778452526799910051724305880968993275495034933063629735131267581193124614049098072539754968481590108520459313784409642749344329248906469522618420782722091649490947747052030232942795973632337605113331189668346700904761257750397675372629523507157982954925397537222932336600395689068893288662072331877486229745173726928855256121997323201529237152651514645420191958874589401939568787803087656023630943825665700843714504678533603348247091361172051427651195905295266038699106672418808747090648583552004295494925788582813804449751015847751388080279046087678441699226661370849457238343435479936582296137362043455092125689386137067824126526724428893728929648525898634858898532821046043331250675802020788431488710446883002071219241117225875197115407992175574871289579328629611927570255684169757205537997786573469586467508482580607759823078569033997363776513062960375555252956293806469472060321495609765504399579856024831929607949841722754362969529213313454574332821252055732874392931476573476329145319608059929028488989668367853635822823998042003863297278469908640516648012191947396077429551318543208119695290527183443344747564705285408725338830972688785946067875325108389826970440622280226326355117250912955798006909452445121993529509129048764431515398578784513721211643090861492736836839109559060498012651791285716601813223650404102574843189426468802723823470764593226425782416408505780003226762734613659511241685073802035001706780158332158301709532754936163974670363554014378571714169575251611873795335527132982420034863486139723835126577689432667554220477582158453571581735883123169680786892017845009954050433429556554765225406028207023147736034169580436335102367641556782534318748397445181878023760305125960457127419204529163654975267039000368986524659511216167458189307526875345537423757546974204807970031377842899276860171927140958461024789332020960694334021774338844426015029981459659171503057764420147705164086726899535508951063860889999113551289743727211772544169353343363951722289004613867442230299415472813661976870665684064637021017952444854880478952212298869298678191618329576435194940719053874391599143055669553295774843305257891738356120835504441780496024082421548618110963036881487564370203532471168166507851853246677855177122393642078954460727398504412462767414789473971076584464816854502338408003466441376800346282139870680188579834909584683043291594083387560793111492859501533632737034260432513688397323480510227285821131762633689521240884318028041737624179672411420179217115284063978407706085809379467422640456611894847668964791095956075954780898501351163567573472929671598072473599633845828424931061336183580404116829739089834921484335475586671377614758981141809973552584484557436341025730023959679739000721017953619396383462522830427404069473892152350213839958992330876591170184903346101013816404906678527857536904772977757718104133381812231317917524190627378731128637348446334284761874708829640673359405360435750736325673745451615382269005465622179641192183750834404459284555688368877413022467839018201761299617361767867035047365272845991549071011440293437178926113342561584705192413105355942097415583106433287404248140688179238401225716442979513152444613524895557012289177900179020697155884127942284743653391295517446432092563224396358831943106943051173532160057352233380241426004573183362256941871709924464953559892884246116056134277543492932786908120829955143953544053049202882759318916583259249635166879921014347752524130004811911306046081026981438691104016650399664801465121108330656691985232621011096854843385789965707559103440126851498300458366531285029369501895432113279853100813503346725405854809867512652328505838590143315504752763828701913185728474728474106684682260155708308929574188286454438174871835651695783853745038460325360337160925200736703975568950450651897585286768942036774228501293402462611259258909651691946132795634898425182607544143033770541161662413556393309987049632852796062732753311300918208477779009440582686150583472632359524478540396502888893762862547701306898085651266036777854831463196559000966360491994982774810822495576877903891686294738168052023453290835979597280623493140946018703900416649926077035450144622618781806139415783097108948648328102368165658006943952851835743497433870345253969995584423091985212079129832274766337728172322501314896607754992565985757763391300806764575019889586422092074206625877458413186530176290701795315282973527740599959521469869558666648603314818732138399449744131853903583507836680889727745764392588158414403209408719443136294078370837080585159271361116094829821318004478530896009478412640989166517645381654762504522216246022452241402405836438270277175216241478594308525254460783990198513139864617304406476521573481172115011163672615442117434731779260561386512300714336172305390715186466685252216930898161140822765174447061422194471125032740485654903060723476151857450666140072680615987997240951643278830230215742916327639529139645594609132475811232962456463869558954313721734701437221535209404544428088393323964752911577708941224089334212568305956601304178841089276945431728610311779710069821839818888083808790387812593824756726165915137050660145658272595690457570548307389958792787584073839542108411178808174072610964142034571479174306135923597783806663032959105161794182743672923240120150984932472954637537106310479775662982421553197706598787745428233957973571177754802918878260190349970944115160974517571864616509944295050729080249395704709339234991051889797390397703881189386928147029830965614245017069702551174602750653635593212310953232031157961762393254500107182591896672815977463040477988075638795929200631121895539619784426731412690872395503992489554914444217323963956389663389149745728000474434636910138622442898636344940111043852413141854534080696337308769791366069943617829771334743220956746605256693454632600622829573259153572223521227619491814790659974101684055824165059854663446288261066209007810085811308301369931047870426353425555743608909413148997777879222792245628272258652811414958304502808102388156654346541576876853896338003495500925514947188323429064620222955664072308661756921836660306474226692358416000701988130245205866720531184456739910336902400167127798927108593990164923228257480800393361016142648350952240639358527857162620240807051856414363919516188942669912633201190305901675298939160651126430749316764573408092050790992081874519459776383588682789776321062995927307203082158250103287350496076657773976367490583983124889216686273574808994842268008898279708090708444563242863101593821257189289994506297966323485942745143389418573953500692185191505011836055851512743761291719590292375004586557111012865516469992080961880860756851981918386431495845897792052000766391174389754362600016546021365712847911170223812330693163656576845565729917518802249715092937041773012816808435535076990401728656106307294766854906719991704677046026149560255712792572562234960987568422842208054525045382247728995230144900129183629102653024711022929420011719935936092978190599685082242278724239825433505061934586294666667789003683665051080218741612693614454541799801501673480852864174495117468231187251518767819054192473913290180852639145243646215339792452302572902582761931356662935714534059606427088804684786123268484354512660964174909747829670546397431790702648571323337993890951683689545059208620717432980497915663866378571571293741992419072781765086033359138710940991171740981920935036698043486167964127250856237195165207595250889997798787654153458940764642937012044730136889983450201278512089534576327841427668288533383589837231890889491217881519354171072749343765930931876644838431505186504056873559948943277245125185630498802432626863230273273079630830614045044509049237809011850606774883505103201023662283933338935243251884322504624400935935378065442131503948536944823691211735102538373810885343551294633253185057973957347714096409111226255887506949257874597709855560869393687050001993483047066029546365270547580284522801703670349522412968994063782857713628679844977681566269961261765122980083798360051942318534386488055813093525069247404750498937974132974755836887257134343235320551365557287780455457297708829137286633081872561246978072252175349293915262578922633644991126394825849604308077864236197538567056686388086434660997028749557773449484577112177600257398472748211601567973048553311334099467097907291373828882737441698507880856756287697278668044997107127163397603517337024021498688811419774979457579916358496708215537669034192716907633068782301031999364416933785204949216872476014161731244555403525437267145479763964587479304470461322707715498770694930985618267893764485193458416569047386703171358694459229194604738128400808028331129148481223963255621598200079923128207942580981082652530074370338155798596641824394368478046587596732408225026628814694604841296415616886638438022365077084151569265140977625375766779844837483609122954368116248773428470729908509582518099455776616418611518139545220657744112499916095239493884547563524485748230343894360168147982268334931963308950866610563265431570578463186617082361219715899630671973017087870853180021729054244116809199180560159861755178579993376420290791449348023592978687454044875359617228943164134220935022360836006303374203766106678102850344736848828948611515340613794021973970594534645143046423449771752260297719101251079284238576772804379868821793140370739249062103453944241450511115700815813423272073883726701968902620253380023600669232330477456697102953506561072440339254581431469960182250472418472674484185833530989839146926950218267707114709527682232846885763692687892781319154271840661851049469463086049001787480794818482387267090142699078812020099787329871100087852867108562586291400679919546768139113037273830745047166515959522492502659067053703991329149985077709742134558416715491175477625578295378489184467470888431329945628538926472533815536463816203215676172900754992107358479336084816036669786490029549309755922142056142229068086330567439388689691437427253562931717667516802767852469477560337331404004372766211507838842814631539558275254194610646135605238545284762962951096149955512119611025903709260136901870426348470179263688143446127470111181307057707405537679178781554247737663924200225509326939707283570529012849430301900739609625229543404779356606526701950225135768381117669984661918270650163598889340952058066994413690838765408140534122373466118432173682301006378055981729484425620790015845783987377997198946694538444661462389814598137521205275945959709377053687733392779564789574287778925102385897828602987684457330894217435811211191339934831178415800835805980938260285152187104333302097992592356679334101246560770802736230697542008031733285788753557061431332464360077637443701952615832305255626058950138757955553333268750208828057614988343501492288164102880599696439469490142245642308978497829587726935715574321873529357007132785000318888951028556113878399867251110855713327456723180720328556674559092510905151071685619958385871847034270303548475577682005850087149843453265691916941956902458236606853336952539132042714111827198817611304681222860434192768758465740044099528101824006740882331671378193435876392831242902147382761857460434754574905505612460768804954400134866679208771747400999638759911816202271858173867898232362066773418647136308886306829666447175131917624129099500791368755303178610500870913912758638317087414628211561700379006621143441342381605997431516826766016897496708671914882383866372647583618044656340464435766391684426034988064258424269244003747159885484887472643679132062255827311570852915813680804476909174730609966731730897196803884988371306062112597643074523446658108812251922713559248076933763736194029240548295474476546518105831432132526644823939223747562237622585483165267104814268754503495263606714669583955196327183587787435555041282350874449514983871122874119330105787321864165890276170405483244561715231978049681288959565255400843783335848699475887080122318399688854144737694971720962101627510980916986529880024305038454197025165995224411121503671954165848640084854192519670579502750418277385145277764440483563721127095857090294358597271543997872436236696476321881277682956622945497183271495899518980919130585532251073589535154381157616971933250790353172308837022925129092233019279671805895864113273283837864856829102137120875172801639875532573167492324540167022172368849852160293235284370457717544395311809416361725984032518565186132181204049825104625160535313998750814444929565805510180651059694031976917574106973999342677214028312755896351424719356749176112829992663105355616499748065272997285703236267498332778456284500803097102523256010283786676717313864128388500691217446014459244712603132900936246582633530576972184537586538789637958297766649254434276491958009712956450729889561395419170639003042554227915358550625634690237427072668946201219935042906865630207477074452395234332689464698162799469617379099484819847679998108251039080767311444059470684466004782464498061545191129481496985536848343570204973758988317619019472719525861246215834467093560152344234239813981856182330383040703266715599164259092087731045185337758432709223171000354844196971525271188261665181831092906394791744401163540714509133073119182752417678749962597579258598871996395148867088225844143568782155600983302897341370380933909432867465555532128325046276046869937235925245196551408990301246538968447276426741372582820042228949385751301545164410954376426771435102413111352041204735652316414680256676690628659211751261161697280272339905115832319228890616054865122867211750031468043347759462749726960283778469313534459593872761903650537146482656638303044486664189805813517340710409427613041607400310496021673237871695738785043657483314854636907275537990545771986702806416419098808741716413860101569943100041819598841946487934807287185596993972983035264416640873462409545005287757606661424097035617198746734339979195031874983249119944060013889130624109542678201590807995863304751648182918650237963369739502210108758772498700028871857944803479361541958626859039549025806055705117293095084213627144659730539403634016131545605015610182380413283526940791032043495780045414681302568101558677379352438808968693964179331437837297277953266880041115763631619671406512635766674278492328914045058087007265615078563202296106619243852650357507982449470764656662026083618572811775886385929331272269117151699310056530054417342382332900604058679993186895482294599323805718682966627640274952798947114937584741887718837430008032363429761100735485930801664880679411326595408476202311426282462635410247725751710678439366786301748545617259452355060813574919658642056873412604258284131389816283651212355072430588570672685549165058424328260897606380990393326134070419116757224338805903696146108636385139629517304004252687772378708269283512893335318676747827163068913106789508078528634699603770230148642840429835107087838006799675625441135927424601184643117353268712400896915800584396518748369091749409099806881781799399134186753945224292123355053689080935350437869934096691332188730040102444553992753775325801001746693732033987960639776698099783989942857582480776852183843435355386504779838040120287174578873482227487560181623888562470955751739867440923731802950603322899207615343915069737513581432141153634635598585538924228605951945766864999920843895079629171264603647345240634621506121406873222483798196461729753166881484853186317720039837263548145897832058784235444374256737750302992325771475759035153520313104972784844302824439515211774351040009917873941456378409669047922190805952364953132809263344189226528884966102307480703152314078675442385553321182789717039745589664840329489934934384013905246118754035044217296331197973940136586160198082355328670057250302487084358662352960606780857747867213390691964748281430441470774721986867327609890981014835262502703047131498993235309303120628738090211285009577653506376918444827161808833812375014512356725513471784708841664286613721803049024322978683660410600144323884856195320962051772122537590967229657204803918887850226465771205518325342986423836301438043421254090997435120031032398837523187025051080490543965396078018234280628394105295327735349401881418332632815097325808249022893866543048321807911719694476733958077415738574254719317914588109392509407873366488990306549444701007049525520344668669684715580288325668497555739655531002617628812144969705802358074085919433842230436930583300121944779333455534988361177316230347171964032842898617446310497774405125525123058795541583389935805585228280537786440931685775861533465304174449762160520662426679658167387427264769531413189080878974298356731725489321741552117494577193790185296838888048859834369752389934442283112712623450250194757758995845623903062114935076545876953539784266050419206763843684761009057570944266375423897457349291280936421335638122643530919391974951352126258534138833962060457418846620451028914351635300675780274180624443414674807056670795248924848505730999665369000629038519157679738822305823442943796179424141813185774924267976373281990348898209739309145064111801303851780065447690139344790359431587590073964590157270982345683256156520620998034852217505772806289080012121612642473147633979794795466887347656746645801121860591345889686785979007758212518146736187004355633555968707849448744395570968954006908326462708972986658268869099578900926288824122988901530162975933730385769829649085543409228497929278399167581875431574485142425849184304893357882636025253055814319319668254592198152137929389152793431919133310367874968088243530731192296579663809170888678983333388143509082526967249554931683921077853818974877341297672216089592175988812548470858078977550774348672787250287543340072504983656260425129006874510468092149450511559669540243536942909150398624316744508497326162243585089023052778561216940337716035539354830298795310105465943352738461828197796442132321285130165795828816786939326821526718161260267285593995748118439906066295332428868926353922353290597562462106460630898563756199287865861330176466482630532579369393349516532963287593310261069686256101885703239912154867004139170714592796659402265709553377627266790149101312331947578957846070815804644961357599562047423117249934775265260042645514191601726997267117668106500852000293283894405026782442525351572108044867697103603525306103897110807777547328258002112268827452947940651318865448844002694401622114602570894086737992258661250315566385635175719265852608519099570573334818726987010162661208240036624318566634937914566823810724878197458294724530478062558544942483962860048429518545862001989120238367073652599626903772353909643796143000144014450888626648840708976266762922562840946648338311820121561268026888929402041199241239090485477156164973605809640290835052232566614075672542012056842056284777416317521169154135271122327537083429142563508360145765713594266751834760971766992670737150185312669417638223785469319895910755435320526802814064182664567839971890877656664495004385352924653840684978666814447826289106871812088923852407365105070518203969333873470175165101223607049547501157495039927919055589675829814213325335680337871599982395259397799322821911271725512137232376418057642178773152280989645257201022348897767590210069035867131550626458661192628808656692202512974398786504380583412173273759201003603532205956468220041020849294581300523782049921980329170768835674454386999999520712711909356725723938454578846315529551542789413568504287537968245456464018181484760360680633166882566809951469036338057553524186096733129118985546752191610450051033299598927963055790385068174527940497186701878433908350049028650656445887957513342135628138951410813535638297791575695570076691533268391615989827327925171778530496657541323397548078155385860626823068323055773304787932040786102969038975332100617575346073059864368967061672834126089984111188035732064642767866233363717747235273143981237346848134863929658433451813642116573747281175160293961641712093217438978063724645965227364474645588407988106745652794160016003032892432820261236740824611416397032159590609861722248727547288628911395167190259059127112729563191388185869653969170877330227231417124760007833384503489616218915128040672894805516327579844633044460769198652294512616618141048759434074569866431293374134708336063616153990772274350487799605362117734060404952082729289253693740633966920018751400501228185724675081335871987689122216386785683261111564158621671986780056151975762692706013297853340815718242867986703090210520900845663997664543207689886323371344730091231930335085709747482002561114693602554879626682627886900415731380712168390593486767787464284144417351010126994855258452552059017714054695525104990490449992561945841042645362849050033408081518523524683175124017252167930232324494037197187829724721922186952497547539272535838183115140597258705544562582793121645189516743283664422523791513886216716756559389512553486756130277248499071119233783723486107469043804159831657728578653865092249198705847417668165123987138089240823775459311903807078600445164175276168390282832109353813631487286323425233260321345050051554939773847037975023319813616770519446602514633600245684589089251321891603707930377382627369336708674617732304473609631406523897367849720125910974585860800971658421469279723690530695016818177033577748670085606381077825490474839518320435801954238312968678694768743398745458431130937870632869762793149829937386892575979480126552689319060622457009972687345044069900716059371686478298092072163731963521041814766849300289423192823554128404180232625789454114359457645458613154723217784079838436648107016825823050392072492698630374343073058734295521078746331581917741387664323650271226268678513899382405918673874083505403445538027492062856644081963810612261209542893767894614453466886220455796120305477889147781431409150386670956294512398832267252754209023825132789293067636544066452458135688309823308066340174289489627341590856350814276250750367172758559334491882351714477784041959358482952068327222152458369809749889062083129249416187879139509186857023283941306148379107718690800921137503427204034869569357610394838501161528494873300079856822257574268652849490121160008157720081936091590913098455137870298998690394934267487697334604570515173456557263765960853666750039905338891932067157738541594388048350552428894039290483650558100240144681818310275619397717209879574916783550885147278812596444290153905423671376152202689623434735190640029495722801264509822032859047171202931716361673362006327977191761609219728517819647135969855435070376451064126835551897708752277800476850210739477026096940428507119638677669899272827408870740214640961823302118971350705072687841294867745678051047706723491828869731851043029092723345535327531471078144182348711574534296927479543461021898311234036362042839204107514420345883479655580398906275392290318622461448577991055617247648609037688447838210599594034340677290174098663340647157155662652289970678912637302444783291167616114829274818999020830949970420708912705111655220990557776080365182102054422429731856259735075649688394492294137275372723169790685777366085351394985091861933883762742192051204210074841090363587519472099805608035578462696578793225080318343997494448743286639913713563621187285796310351643484046767323126713483692924591526090902673945048510437538927770417634176952037423187803979124813326929563422327470032151446643874579555660374388742695885904954159234921507968425103303528135528842775874167288928030037517554087008534935612869123559175332544109008019358018375906073926144770067135059488916324847915968005917686457330114560783212694144440980557110626873732768127483415452129265396817678187904917082351324790078635569399095647621038853007589966938451506826210114250070112036766538873661209637649842430608652387067479156518718674446800985085076767675365448032082264240358593854202774452316742291674689078667426873039694137434740582420288435389227906305499207472880166838150082648632011940739568437392749177318506351067636421639645208850646449321161625842167971067624730809491046292388422195635122270918839877831160453828787102642228814274734188967354632722089554791650869348603588222641459928715655053547174737065742931447613997574648538218425463440125320468006388999337501168503400486374529283792149883625121666936028959301545701651794695260541244626651242411611828103577171104137242098706201778580348959612854177213654991840611170951326432569246190945256465258660252517283511279462221631306880248798935871502499077446625271065944106436368832630982798193195487292919666891620282759670690866338133830936579661914341987671958255446708175833607639447157065519172944580796020529542364069207223708844045204947797960852209521807700510660199130004629069915350454146615848819486476700428493886036116696278256976568281410842113382604258823367884526920848461771837858928611831612485181514837166219855123926704012456246891702771041092167617916231490973275845131336739627634300268527393364519788472714910460528336669576559053591835984736575477095360278147607410998771548699605406485215503941269129259928109176512632272030310678096109996613384546168187853770229499193166026409681444063405555224954471108872511907944066223796934696940994967063014827403591312176819018725484263248908754977961893014424818172949784456787008362832160945017867637856563022737685659116613724012634264428715509103992911417215430369760968919151859458604047128699349948365701669858979720617114005106207856070834186329351461902159611040137931988706570780763152016597218760793910880690537253364698742504231277651756355644146294199425126039631444696005713665074517871611191876412458352452504328885513863703455631061122743859645326842621530894622233289315978075358899824380383286790389291512212370448206655913735030569931249964737809395407485208715988750047921090583678388329398680813720824477173705463043415050847188450695900554458193193458081943773289084041796342407015799045440689797003361889894645685839027255434261389589437794979568693180195743343356660011247458184629871461010868638613284317647094576589402058808435755345949596594390031550766774533044276460724515307404387144535783920141371395588643326541835420415806165162667567540135481147865683722344524302476317716350629763282594185135286724353029841762098823468395900040199609720751847176664087329373810188975126065113499813279600017702173246970180426669815209624276323985544664240307494302169721014883388208628138950843898463833920727786545944396777581913951291769983117521395810176179909039949234245765846397227006681796302673899066049194862567284163411500999402515457106591084457743708136344700026994132910542267931173317985417710811345304252248598446232923068424455463063623680617153518772525637548610334207365837358703906523282811654733247511377465522267411245394822081556672229926405573896307970497134481906664493135381233158733574959702178244630727811840512159365105096338264704312125702437328527874719563834048740435892289250909683611876905327566298874289637757443924155933051668055452180154800878955050320456222825080140256071164815642966876313168375807027949375415615759758872545285454682389792462130555223212816390549242818367981028338215806496984225631154391118873973989821578986077096510937111602850929439748027370802092806002737540758797635508357282201174549673805950335123862234993509549463473023349502574682122836725332834932851758764212755316397065790961793954009206945966089224417657416603596794072024568736676814480387341036099598086278050921779051699848079976138465132611602628868258917269148933391128908288292947832754111770007815664354859083809619728067300712162081001559644054806898377552299719772148371401336088198128493877805843292829471066479904647102936640373016077989563921082857591118242050262321780127827710559857458161982164219967174637047581211424317012742587171505428264498257092993749703181729347003590495589314790923181802590670312692791958338699471438420330121578305324184508125917275247174926191309818881412025951126361173384883510695371938061805661145495026969470798729155361622846287768461928520498878746575516197687961677111972434370277716963457201688151536676749243102052330099867960294038354861462190478104786067787041138837592663634403277601655642545430039576966244935028660185821429196249572013828845910064578135975692160111187378006101477425472193806305840022204216668616155950942497199338950280171488733773417591014168831770989882205291987834401027831283745284314818211832610183579819313125363518468798657971128187112089887578783670756011632440452141501169153728433272315214522279772674879719517648517270661150659658045451016439848318083482633877466560271502429443225253388413895409697158853399970466728753626771920710832515393735122041811795536538841978693085276413957686191527077445626336264308461686765772677296806938035450354939904926130444303669899260167946560569372106090949104026622206812099901766839687465192989997955311604418785821024114931861219224702650457920329562817666630910951194344105042271951057809644234632461053010784435495282917882059634632422514328315176403024349961751663105857217718289923548669099546706601634794338302429765781382788051050979850285678859198973386788090639905494315325858824548973453200251094455072363266904081960508296845876439716301772380986620262837576209544260436584487688746368597422372694269105015183675893996909115664549479678840677232617599548114578967430249094505682892558031879839024924080523463419576254798214233878362417306861433236881821680738120615365036190596066361189860545749681257619587077537878377320506723165199881449767423535434746237263569928772147650750503458722160365287471764360266244258352029085440224043462809448291766041251996397277377118082159052420727926263489325248576729093885639429884543062041469749817842740324952595012825292971100413425348998479491653746086924264572411828771507496291392656523275248578062179778949973738949616844774467887394636796947309767133143195560427097217795326099775434306490344561248609214650191155836676661294326219291722996654199969255504908023881981475411876740043801307498489683055430166295006908889486801858728226502785348299595360950588164684434741956935655192906811548301559957093328141835862028444054058105806690185213414481132907951378530231031316797507285145602969849809026252074889601204482305093034625608816473647308112767020267286008228515864903833526667290725829236597048083864365878566267287063168674515563561177393390293651361992237793968404416980757902856010947096459520711261273165868287440579346572928421790968501288668477882070226238228000486982414044806111827304642684158853415193274780437736956179544764364657413544939441080695799419765525668448886670231183705241137401127931218093173262503731592425017847039353709791750186378110090707590493989859427949114122432022986583448173921774618834260719085234637346602094854976115103350113626099779415781512062143273697551352858985812151559130385869362538777229633067141749189328843317270081197946278114547063244581051611182488380918340580595235317568630519657611489743213343029386567326211635857499035993954626991706034039685808479737341103787472030180204982727677946970173852395431070321719811037811107871153584438151250327786134404675478903110904061415174791975456443225768874237385309205127522006037846112701943528979006894783544685600562099337752833976318209409407886536685475062044086031493924596616117187514899940586003153928858310039918831735463695670194802941371071207950292243847094771147024673848350889784811723928936836560612193263038294255051108817384362075580567161814618870050634466360357218691210454548953707090729937694551939416559718426523653130205004493817897713649762868381787694898599681882485932211280412575639980398204624286205204030907205646610215028736326242066475727224243633792165983842260147598825304528293532632549267737477605125231200286625319814821318761972238663802654937005625412210379498406500579144738325327411044932549889783917222720831040793713570290962326913352190217749270273886434486301037797504656156778388648049909307504861289944981834545630224975863929370449433728552316673899194476851981506721699401280990586959257730581708354072648192661169809305191148146145190546837106648778476316262056953818677126536715515553032200160487943598609199371812488391757185153120198501069477660679660085913664491925128233519889537917672814876289465385222099061035021043176785385362278327151240260549570922330542601084218403078430088531415223577090324960229820333976897536555207661796470164614609102175491124589536853566184286441828147679757382143122286883731331475441796754665630705688246613841591140608140244531568193472110991804425406138642489644757981369754709658869893582370079021738568617481550132161775384613054133038730603105525749982911133279278862030440979531075201618268446987830127562227873875128970866810371055388403952722655549851709070714438485604703275321598043491509822208683576509926993696159499982255033825512198959310873528491108615920289501221097682025981446082111726523999356912759433732285297739181241297778356803922129016540839722362815027995690990461470445891090934125984610620911032724008930461935000726565739540443422953919022345918521587518504409685215997828557008587506169767402853545371663129476680637264216010789117648412948747537970287884433633282660163136055159775919038157879456825695361999592020482467705356051010507154787588634998653076311651129334526316654844836149672374252738910263938472204883165885029810078946452962884267505590111457667057371385545934596347211038831867166695659265105675765302242314939533050719933376787709705635909904492052726128586147283558093429635072747642517625161936533414831090914544304158643087002398314498024071712499566490945154253185040138982871908162007852017594415820937974029038992537687021820966414565487178493671292945039021349692647027421907125518348544133210196032385627935390935805570031311604618602469050601790504284830833964806301010727742713332305912023252137663023030188220937802030706519743967138774149587277656662458003637920947910702442420305282150766051812097756634265661423207833605801500692285263814679636878515727150199208822459270890679460374327992228123934213673816698263968717456492569300992494927620410616240146155497482590217089240972274629126509919460357183404625058229249761536119267130164378151623474513701021651966117057876750076805736914644643380874593146655433557495634748014710862342076460816171518044040503029725172742403640762522777807788551329480679779428991333604952234971679751876357560691829200057031122687254138761994845013835258665763545855202720164491334558197642721003424571108696230899614907690786938176955004452131081023792318256508359874374402534650508311148267662489584135057236098084560650577438340236969940848690396783974010380604884406493607193023874677313194987380815453659621097556317729868243338233723430847836604550979116845065432562917755302972443952815973234041264310381703571930909757577593748756745431010074987282256931277021628674859457095922048513022073495460178787562392760958127239741714593069333810486184591741038489382931876617012580352718425864408390869804399135637033337987984336258231740473137755765316517361741341954713331631214523226699997893200657974333327605766977991807108081354354866206620276555964153551047015761250046025251910341128706529724351578593880875144684491476608207858080615084132916799183705456733155953360517075971674965931712035600678502594640125853868638729040281799338776337323452352319363926257252477653984688117859334545864141774810892083465418507172789806085374073836822608785026387143437819118642813577004470648425114495866146110933376727191551071375956896764638169825828983478458404163585126898506636917228082060096661160368873615230175183268166874409209644428963298323826776417759213900321990270677272285615218001139942592090231435715691001746012117516902737059854007105091164174035699102800676072703503401027494960407418951816873423962801447019285521031042783533619947305507617870830705513263443977576969176347212975014194167838744561284566701154722717593462495691244997178539510542800019469292146918901432428183510375282820689976800337004558216350701372971633272688649022411493294047331989688256529061051972608287033207891061520568041825190456475967251827974276434611176166150295305351738368005002933557114998980300645880769461234233956984620190435128809597407575076214090706273495577351753382273753715102626035904272558817675074235506045572079872431694897296490545814275522591240799121595269646842330644181430741478925978127286231892171314263533388947512080210471127801781853498744656686678684685211056967650126538735173162659565859587327834840826349773720509125957971957578137190367235576550750831208573026475652202498378068290177691356566083195936215543688847719831207334429554116814848053213526696466445128405367881021758548191471325988141110144154802049329990684470160399771201825982793153235356261370697919995480237096911776713662657515742622519677535248464605007358362652686883627210698995758270474497182205314484720255854108975111450068233073803838471288101892042285275154389688553089635298404995459484163800438507998112090682992164247453146314004955957296095444697684955212251673073047213515141502411941972105812307823443206105600044045214561645071281444324315208021013133046407413284315274198995306171998179153298077794628861478758644473759685606602646930640149774988242398040281538115536989505674303513274470500864130687619855974241571596046827228732678116703135877259256656123623395904986441888433556428930794325507969149589885234684532824787375539263853221103487359852523100426548644102532725114655374401639448627704529121565313412426660052636020802705519695761382314743683343569087226422557956745990567548752358317500276649355494588321109962613146565585173614253333743902272170583891432058700842572902775188861136300585773277220277110781888248222202892593979420127578335403231380414595881647649270748729375129345810829884187291794328063614366200588694200239600596496639598099513903863627141559268386318055769976875267466799855158544056430240849976151085400158332818658877232903151467333675762852477298248800235799391338088793614006640799703344077863118868104049179064314754921581962073040442558785615166407900620248992916624999138748239020691268740145669680912952302460733459819152640977464142245943011806999167236238240766588617794811058680145145285038974138336859052998724522677989567823098240671251019091928683974751455867449340016821599685568406369518242738788871568120106299797251667921574458871927158943400100781189350810517297489454730603798747075551661661562462762654364339974422059996290583542177911837050075419481114755496509066815887275426640331204861429220270567162300715264664347449965785463066277034339900888168155992400629496197788876909347264360220186268162402030049226783893369423261243669678154361803435283684430294502719079221372008047975721979023940634783337648684522199485492014105798478442672222772977752583302256997825149026238730318102534041998187229298204301255979982083082564948850990169214825102709878275682156968036458413173755455685371861720967396279380713386524172058418838103847403119145102881807312489571633955705391585244835604872709749454193049526248851988466113594957522938414021353412873246035637796595108583481556138655179216527312357322048564660828587324001702207642266121467794813684605845298946433398904632033745192823772096006021588131865863265044608901904494435374160624806907750010827362316296929717410371639705805694075073137220663283086879325786746482115074844944408075867315128346867153052330112964729348928666689382639650229613949375391536088203221349023021913668250786005573113513747973248129058505063071725232461698160335452831094265349833864212840949181289727133368699619986978163713007790023558787377322387556605183365373052104370483060930681638254434749886888468524082827868109018288727365422159052237818785815036936260337184791025121269804274662582025727750444250725647590894666176142023869716633477565487797698076780638172944750422319836441306255625127416272116884836732059301633250603134825076992879564514445013677514714999501961521267126768901369333207398140652238643435846385499442491349319959476022076198933550205574511725087025475242576386181711281757520466955419806761501728960182975393257699978985520927872350880273570452074771633382161241479369873338991813454015151715587797933743011976541293491056790909013053110247538150743060711679867822320159505792618838344427889478402423533280601836037763282610760382881336395582767010084815516569308556315059735608258956135439325010849475108393739641761324888351434640230356964771431756289596432761541067540592638100119289241771247892213027443133553718160693239958031044859740005561227857870041546474004116794035993463601528359581637427424959504579470012327737418141316837517355140358886946139313822793497253895110234458275119516174958201219614343320911163799025638828677027439848212477986317147315644257606028603584448773038801470875682145697210770802802706177060715443720706549442030719166736217088995534834461974269202495776152042236790904741207739260676941080128014203149035436775332667234672702976240287565254588564841890959910992040311342195502225203087057749712897930322097117728274616155014584968106087459378774951624659145924966028504500089502390367433329304237648444185079551163844306318021091586526208609511683631762494978361961470157829735007513784418974765383150864719548252750103058657589489682033775390536390503900551335922294826802787598090797512232040335084776200343613896577332905560675765336042384267619605622649555432104585730922183926172749866185791430836313839883336650463418534019086110391104932083091283756873628568130223834582418225287856692465791117736262492567735040573203315147629324780248019434909734111666529493737673798067966832525525490309012488929617454235643553118614272252683017923555193342592636234899553872404927498513879484334153775887973995232171730011090536317864760861104110249410629388474193834308380097959637871944584719301693605230737806684166544031115851023837553328357629700151300127840074833765172230627139594414405714781632792022448047821478749550869958590424792657721590544040919165431629802736724853560691679795926766156504082654868014325341690127109868883616802241889712733782451622526622513886363996665155928789719223814949684863664385614720201842782985561136793673794681220759668500572597921428173381391160530153225099399515538874839334561614205184193345005036629878379275792411133963910690050187097751552532124324014550105874937320492527149440808746986136914237645366069506116448248238465917813532667203935804086726935030919080728380191595801361272664859026164207976450845935384624182034163594601107868783977916187284940555086582334285266149887012278812085339160144901506800203677639116673651609164996744230523457946910604976096840988264146084433585121437130558650389190362828360151941132267564564057980467014972807012771198681558806803186763941056127308910398339478480202940536562206885354670943793018107106286751031873561952760873064470245996860175748377384259883822335063112080322039175927491998834536088960156393652216511212127905567677126957155430981586753852886859619305462953616717619712466895043014437198736817399286218842508644265662004386330312251320827634850062496980382084067422623274757106768849395107232876842889220330091034457569489144281500508603926374072816744113059037122948505855070222891537588832691664453234040968478430390323642569248785378233497522759833170926090022957510357416589884388305950875515706595137614459721732241487220757251476642493881914133776554587323773676886844691363160356665969038306139907206531325819301307294073938605371294940470634907293918863226152380771053951145503899606436002123592867669825974446985323447890265241907633618699173370823700646104969214671708240712360982469550311033559828496643678968060094863031525611350237652030028635572927374958531893732653029060255594289037367877020868840220884567185706704528776637583090031729219081948969815083817373702595211430760974407350002788616512489778624172338320523117531167109162929959403660881781769336256494210207176109541927070851644610272288128174431171432009430819462779861896694575008689111054678770746451689810615048374131025700578072530333759932975838783334235790665132969761034820332257609279590925334976703283780466689997658305115368002225537777079567066890206195645537557702465345865594375539206560727067040882821532631918102793117271969437992397763813269860577482781012391035336705733752882249130342463954906163176188305710462253604873172175639743609798452545386267837788143368957346002441394964794199040774942199289862831516769071498972896550601594521676949026892875915083166939948234208610672410900708498263656637491986993904879551377614723350644906977292197317637250197638246338444832748281012666991384784794969060931486829101399454659080648506821783566322802665560898269674247351482964196791224347435226157718588049007196613416459720198996428894814160179415138695652297727354261622748999416420244169091992064215985645272380130790916462617761483703258414947715508466755970249976446798945275378227333542168319213437441164329030152977690200747811669247647266983519437517320992822479967750297944683132008911231472192693751572246615960821192121796690139618707926267406813967993172349236414109345709216611002026251476474786262681519522981516256075800644374601690496117461983352387112386089923527306720764967947563054326851822718341797532632324897490380498613880978206802154413076283552169336882281839500750070355594083552900447082960425293401536242931455640459343941426410102131760740896308568845807494610159485647568420888675018036174931462555724031264580464820988421616553599911331036020017890302262833231776652300927208277335804437618872743703062200217571381368485172634561116358404166148400314070447606058538164312475682324755577973775083317448941326004665064079971146096539607604778031411313119521347710333454111458991551374931401414004524193058689216357399862588856790341360391233568181855155251755226238628321891518777532678110613237802049812475789700516320181280071196718723750885242230067454830709407569591491592199529786789119553017574657043878447087505659060968218376483043713169983439679863594551201309579620407684247444543784216461514796791997246533988975776315875254606648859921812252595675636438620709314739712110798248678762620671101181644140943940901375145957241794393863869212700002113030089262169065444457563779250963234025376431550395629609340048787483828269974750344919199874029045862090575547821326647218915100529864887515123314324011202735870810854041952415815678308958022715068901919376750961078909466534217050860081664698105173288682901948077602631494367062952447093859247132476708945482715472431209562687155441205348180428099641927785559462897474799515909778760212382768024334186398148638594255369023350764868585071892268333164261316699194791144510833592726678432005452016701366444791937474047788448883869481599025672528446852470896532067762327049225666622590106975761994050505518266439680127859253269611566748819634191665951791285408897867354229452182606988301836822176546339550616347650657604515170425390670563941140405197697627417584065346895243552579220363289848821094820907675678660626126111833411280302910799406624025567176551695034369494118016680821293963997551896603208121611637266182956460194925056699510784969218303580382115690061433684618567628811601112174136694538452837592643716210626363405473924802387958326881323409645766672988696632983789124811235755723240915043612558241187867055504391316510925329690646034500699061789126426448220666510291675103354879342392643582920576004391465674577673681180230151396471537895894204601783598155767322214149987885241140517342214058772862430189035544323877107034086012824304423137257338559446606857909955681034694140944016471748621520625710693888950261405272841357938475277001379862815073084719349654690835051641310881919372779336755188148140516852516947351406441491959983479787636543054381311099578817933542209710150700180513039984401542034323987927177829742491241261505130385930395166605547426403124329387316471280058456200958549571776816708204198743855724810825290758717440066643251537507192993675441425694066056717982722548475861988107783356277348538711559288519371808837001929113613517732809794931691041122815530275046009457899841575615893054954320215925734589945194823704406251620059666567579804734960393567207888546066742403988273453728449510822110165767192620963642500730762164794584408648898850493236338639418892256178999800166417067455910184377536610410724832481685035747406275771948950501274778272647655019155007321189908399160004438528148931501225551096716794209906556298611653294065933144991567789708239240961729395687922274867715322757287660076355137109685173782846662246364015254938655637452753263260654937114883579083683435248977055618179665796026184285093567890502022263043691268556717590949620715379439052937329947129516965634400231787993359270901790842171996833865560130415198527106720973835720331345924310966656619201052642870358720067697771361549569977448538343569284416364920077054567785339435016073537959268202424048399039935100195059460194178779723911077487741458303586342598043936652188882468287160093501135509675321320927357547998008804280778780444580725077351721544038137800571887944283320329406810544906777121236883981065454803151963985320210322184742338514520255833746821615537249033636279315041658604324375738298506916660790059749882116593119492205887798931000408237628497542738484386125698031259878491587394466021078802558386198033097457417573394960619419841552266863038045119754659639727012360683058937963417911561341283024888132145021938144113165357406990781423438403125462188240543310696125977375673947217411878232268707340571338735074566542551078767734832409235410163782480303822657782615509144855736039699334868060249654020141996013888060139208686225883264585549533319504175022732069149424112937984833268632107772763007576081168402362239866811363861774741023295070048092009386219302033064440341861485878777513025331959446571410695407971429052415073306321830454343630929335435250981114381494029778757356969911915718596515888904286011506821799780516672604472887994032096855230105331276603938358476111838726075288784718051523256546975279501385236995946031560283366863208579853749782820431761222667569383494073554119209653884986079768961967844182441472621518717999228436162307915743386407911741963786498523129285535610634119527301418645529106008104893782467129916775746081886785796791945788802827607009679189878853906257245742352746211402766350491402038968373228726401484314772706820067072178982572116005460592471393248968889962938106882581839908245354098412439820160137462226610911118111011844631386297750988656378145917992543288381231971922011128755785369260458887053601757894075277052761756076002875595044842876282531903583459889809951147716288469330780698461805770650801679460692393507933882723550535177185961531762332224597606059027737742014132904438877029434120554400646463013551874325870918697983227667232148718513302316883143156129489135444069645467992606468392691956414909189151028658105245691548611595141933391296131747054895618169797697677603950031517705512874245178061894647976770785665133328441290143912982516480006500654419160617311321822157706097715327237979869881459112527594939387547155530281484223939653722441310319321809095428029448945495736802705296101988102494617357499143568944944496306680880015528179171760229411263463556866070708372678815820989126695629507462193839939922298287266682879167288836878669093093066339132894644110525320855196824248915490832479243761853996430988087708420417406206892267418770902558910529070089148391936785409541487944317578869626289722227578799116618255118961728863054166492304589983291725562278485376477917919367325209350110528564617723781027587520541754970592727757417973470693655895410160929902588671346523778826434827598210479579694482106644692258906861215268480409278395871018804293033595708230908795040689932408779607092229623686677631100362313119467610535230344089494407661729786262876442924204273161980123748776834061839080602127419570755610947215177002067469026068223212989642887496611205148726017404973463723041058556688373939236886631762994758759849530324235694626207247212266508120154814207676239621252553387298123593445500418969498005861194143880056300047381966330668757987190773337468668226424795503000268448073182443809135942941493347234695158742506567915021463382308419927435296107521356488938549565066067270361243719150288436875505325662382444628382879270670033463220276465463387446745956846245702984387074358717611341221231638891602912016509550689567258321809781214596521072802466450928496058168942941469283862820318005528640623000867313765051730419643506158150083805014511624114554495034442499563588430826616601924244311312703073419708482447206906165036399069638731225732795042759173300358058933716238372271699074255535407792079268247320945952172356833056647084823450745929761358278662393320783035101167204816458564362056671231000592670280168990686008956955723339837059418803266210379613381140252818317619722223527277812637448437467714220963393503254548173458816828232181735938511333067915525264508427398574717762106994760665485999017493130296774557566617969318188569504086048261599383409437406045446796552959620900788686582627059900262494145661571011053377433270527215490964316171008765616442966760019510742552515861360621656821248663345382410618274137040180469814707800642650743664289965344020231403878047477430347900954259183655378040068294609593280493353966331988891152830597093929914016986342093267127890266716375564018388065130494702353912044538883031577689864611219641135680027837148908126085698149251229631922951462497801044561323424779055841259299130658668204115517694677510570569043162475418501399739710844500581960718343329857616042260600635096839427505807647691174017901539445396369454473607270014675166367049785049562690025997951925571931343453973558053747330797245335257057729402908280552255324583634757431423015625640129063861352277012161268818742347156345458682760240855749103649904708436062957793633893319108133524409464891020739958302337194294081063167180421520776919737025395468783300083114593938659486754359573397166744624806701804235711273214031965623486708372679387188420907089077122849571860092099240364497886658715838690573575957078241407209600148670693942104069585066183100723791583317269120042767549682915407209610115692524345473759670433991243291680204637407813077613129933490024767727075012431681987230454834272070696351750832910184062125175643905783338885649039971471280498338307781577798472078921596539032112512260014920444324950944891494151875947925442351962964163425487809802325824565488914126428941096838846075841294092907811923329342397066341767476079499437652042639667004312364605087781495592877239504444791699847270859110178835805383777919077148521604191742339285545449500098489960385556092662166372239828327176015698667567559676264215969740625944856209460910842246093604709217917115045346427950037806616987123182017153439657234049876075459440506080980973722339661430163850956915633171181172542488011138443390544220302200369694449419066555799136313085365074136776960697530727521668362288383890774727740234991588993222849250829271383120841771385716323225985536522257520580901795761940288005714622801985167630867590059285358273145229776289843831251308785510129396868790099829053285700655900967419085810323011298668318026176859339532545602918832423077893190676302993494066895392614351012360015974030077749565048485859354594532882724745106064391700032512466982445042527169127656813997371705240349110912552691215187781350689928109630451803133226021642432432586920977016087827722899883704497355271893043604990776118807857489923152032673984506808114210268566290087045444237593894553382981288318389573393615308488853678261827871785573469425853188765860836760755446058819710330324077860426813718637528378175463248522875528080067375316964865922246562760758660628607045341053000120614892297509153876059335288033547383515506898457057564705525307543338221317356666390180094477296195185256295401029961876515466700139620449900771602914051167321102169409093253528301376753829000664751418621511717578995032468564816896458808962941530813213549446457847983007476674718907438595147487708029358713156866253661647856981477061653906779685094820543222658298211531179512311315787718826244074175253300931181496739936204368492605851151670909100918775073926362709051705050843102314561854177056061756103508314096883303229963085880093182060916454959709856380893377741678781683606757705744882951498800288753565504208358039399696748850913539558453076090509095387734214244434323749224030715316254895196090309942575753137303608532523304111793826882564484784617027260015331716088163933011967030683986710054611752129732770687565182031492564204422878586728904727654526516810135084993322487746112021737466009708255232048869502105857813919302649376887296407220291326561168266335288617585069469139838635444858824708061201910450229200648609907280864172627941036374180110618064098775318471104485629974605070322727651683357521846330685280344634748589906055489745779009872137770040851700479327887704601899173413190196838382309570272801663481025393180460319545836414158605201992481481342720168410987318171965877967637639789573009935856860051959198565323039613395548957694806980382880663675997802452494625544181657934453923660673501745874715921053702280562519354974074931312704656033060898292641618075186812003820278731345378206951137808186583190637887335926675751107289598102447203322217135109111594188113577203873212271480967043537353483267921724666228512538298721041366949223884595672048919323526401512511173294236505290440545260075889647686400546449013854806525202640480199537695699876129204359273703058579534554597049410852932276954272160182024907294666899580828321317845789737350827900959046512851298488851868565615807266911850008604551462846189454020681665591433698350040078785142576961848557355753272414644131100031878095009438749283582681321666635935295073557303348089567180072785738442843398100574581667351895041654116152723332248400409786026245078083831191118494891146698909343301910259830140600300029972362464351512253630717143003835911372161910882928692085061399699713050764866530539993086472045088027522860471449433286686961003745724827733412235485344099738621013419137980724038628699474178108028830406460032674633104210922889312449361063104822610077383240506803539621268415280014948788678197110338415660334148100478048786575997762082406784868998650696518937019223411954779915665926687698725506550764303433241422498459039538782801867123131073005644952837706547239594922163185639673514217104791545679791621362165393702999719367592273642030913972512225260404891515065268538801020012990732118658956675234661443591057600996857160931025573578046037188110930106924421710301462611603879738943153574672523253653034973644762471019871378869345458632468465314918443953319385060677496383859231023724193712472418486168134714272017318010222436103000747813577012501896866796694710966655588449375608157337165049729776479491990589772639149938100271767116720732287103395488234399136770923577358451050949342961189630036602667751149359750861765100600974513178306921617373407911647934967128301313727291519889278326470329617698244669795630023273858430379214611322867799702241221161208965163886949935230282529208672915069434877327669462090963136362707548687813579139510439602880057656945780444245763289648342584352784995831183577236722692315075461777095482494408955775077547745738793829243815773773881725459799490142810236659915359889040265680596373318386182019611794224370325163978167871739262715797525629767970038230643287146055425084017697285989084627430949995780968646418111116594117775739023154161800079956996162273756705530517397762175179611528302921706415190033801316455030322837717290845158177113853344413576643480758668806553926702077589568888698352069814709580808001723885107757603136672462551114221984190904182549387601877536094354166195700438153040652048962435812532253148120997294002766319832816573486635436023231162585388734264301932814229988348526546798643145705421993996674251536796515760179353268071387857148944797071956262652266389240856184973779878126451434881805103201132694806984637864814086960037897597504123170622914643650613975030296837023775001158548759633175871749158231753835262510294003674034711028752070355503870254141206047112649699575295920487699431638294421027122774661395151664404301499280051251494887962479293580473637496825273578048407323738074725519736990054133786333261656671989302303750176630375798899246414727873703993598990516870298395076648045750462530393347411041501780071376344263321454917051404565315242074032568299703705963882467552659417293983279268507895980594218152862074159250042725834495493956245635299138367866130216639981835115220103512163936804358166759355306325771604682145731010652159354017971463022057563027483895842159914381317844258990401554874496242834672800054993147229357192611537379520797338546628756011140243717181479415018441374557349071875956215114822716126794247167702268006823895187860808579100449420502781370723614834823334463568298584437389416028205315205305456615393556179594262286154109074367271142806158688169335536763747640444035127969409525762352333386527539693803059448732395455776709467374921988340685380259661884864114106218395332915132750579736116302301669015748446022183536531607080840275953585850323121848361072276153559221051182607288272017511090591909934863195822630609780522962429955466704459521715573516654755617216919037623217223528716796141283871570325192291470849158924730918870508145701477657438655155149182355106127612064118207141350589275959109476366227768168130050555989810867550518651879927083399346744068241896897925840391911309679056739583440558990278252376543990161178614546583372351863895294647934612484987652905003306604098392287563843607268422541151597531642671291915347518471519353467032764791635538616206077882268387610647376566050064507180565472198906148535181928451552113834081288321769499991450911906932635951823435583548784083896339349908190391046693301200701738319640899704661907573873041260640341003444850828756550351806148520220811774775763778973693120738663663022101426987726584206787962100128145810507746443420767389671503237812851697838380494104369389509598724474683078068722260871988731197703723274346927811387845453336711786379178483016900881944189231840635968818954758676899441788105446655719348728799447569368454390799199343830568617290291459902515367938889511369171926732963386418350317755183813648412414408957434254015076737974392868123139178885475080715577364557504134608997968665354432538150609602144889191474216335316411056787980439977139120136375354970281603539815278290924692816989295903382918810287909088701855815621192310578197234595573300592576099170753299016586881627536332611996009341283174994439257406355780189475810274979444145995993011016630127912526351639754810666146849843853870028896388697741229365742287160144527163813025368838604564868127459103176914894222432992621161132569829700248048460242378745586017481629820188216295584492895260924959168308730976974920538643162677907423927510510301691180485816307935793985217017556620824041289077613969006311811323485066741736440678818868698454455836516147939549578291656668321766308031595848086120413473450340960100676788935385695296034102619075840345240354813413685804167961685371720906164106868504937768300697140675422174831803435923032079879151220877993479841512674777482932363306899424672547087777282914425753816434949053069424626668492699950818878098861579626814045310725634755134120560395715628057091021764888452063505541814113342914518477605827299904545124654011566753599352790836660525680572910392576330205525310314622306994090424145818430309861488889587090689210492833154505029399751733174980535571513183064420584264154097409344966761164790161884198851534859559415395518347129131688035599777301854991343298821818328225904898131149464845941235789788076680768400244430339303568152424522290340419407473559154335429244985744009831964543003502895517375893607675676512926971718607660744322467675314051136380033028229181929544314593642342813143391389355072419593923282936632877792151681351859369931356150619557173013055351341128254953209297922771884252117847800361264245158704872630305585424011568528313102340560556829935835846584729120763076079913445450864169305818807033425366295783139416546938690295354610609124750768860654451631909103756641811174654023593974116714164907845012369756366062547855170806348889043026064871851341450488205674256409750887843600488999844223729764859622985259651920246914258300982316595386287454291795316773330754474865928336083515160477092661019877233316485463852926375884957154238134077465511589156235874311236385332939415908803942100371134277456030679037519988013777787541233811054308487856834101485560986436600710282730397482423225105718723712898174486456900206778675012496761324399045347954482481706244380896579165778813474914468689535657333273755204096415015379686570585805368430517362868508711630317888863859914938110620898320258623222588637806137294032457895388074718932728115384380011285554208946917189644831517594301365775075590123344310760300172784074284575718473568479041944185177165161820375703215633551049421531716827721028067735692712871735057565700611143631437482879361396238210842440174391539365002119661746522413386696994693348946702355946301433779260970183244083745006806035500060705418473049392762635568831276049341282410342983362469114358294850927898178087640699179640600659979237861781022440873836235313468124686896410702627880259589499977743563696651588315793046557491347797592453272476572795706056402626286878377561408562447065405779811812279618625190651207553896320812946845993169063869773132530026874657953093721932687193073735452033755623011858583613448497595588505575737518836734217183212755917593874403701838374123029928118896112080406729732741480282218157103611401426612390897646770222555181458265779302834366022214039341452326308105448758240728034843133710906492744567391783993597090724514037025604363505159800345630703672648121708368963019387163033454574993801581740945114260508653586592573900577626988800007830325566248829916200569282162281339664022757778806141900637725734559065322464497594768875677382932013955631336039577790482041906538952913685732694884609204045892906874551263636646845726925025058867025686917941518138099049505495131280893942811516488566399296638104945356324025371175537329946496491518767542603367970546654399820285000938044826074877131654601308048827671163965649216190322001914451785711250646056055320640006673710583725117479674693092221159359776461761968687891207858384643500155870794219144944978964557763387315887778871643310160158707836468174683176687928918286722757390464040130175263065282359501675265757135666200033213498963447045291670835381885210412440860648969187532843762755019583512633691060638041925747536685308880673407457266238730632579881797426481270348808021812875310504288444954162163317768670035238375427337870811935048346354225252102852748878194684581296219613043409824128962948950279012705309803019697209199263312673634089242251109680194697896933772607411914823606157432980293442505035745920425258885343932782584489500585302770054487299139148860632493961007163268313566738014180801257829206687323476999199913450151074963869927708923493190560911122962828319881527420508751169353636470509563359623774895158442761685889308793779180620270294253889366289982414162276648054687964230318414429997287637932608036335516480059041687745900333928256334263999854403838179204918120591202994688145718853621073010634748256445393500359099758484802976106484203630167318512239514422010432074981588252960084702373179109744126634011092162384686247739838938283255235707846435833791563622137283502457469382677440853970980184210288532011922271362405260190490485662896654077864247786212861609197320174695268480008244630536835761444316832468324604584718382156141780255625614114064754442612438642118383706519237465347191411094112606048698527064371631998807883986736441445893684320092636305443345924486827496337028584289579943032400367437335911036160212025242816905313620471531873046222627904288420220598437748891537042065665487064783940790485983870104195606601219207342834177344002762505878239893612296429713086409689052538474557719052719890648444146701298018726193333152809705141693926112166030834169010158941111548929590397802706934627405031909366825770544833060274119121987004051055166786408598225310806023794097525953090882454308029753425882737476685198572969908703065251117575792144122667041370315776193175079067265563134691993928861730329081365469889523191582877275123185604199122884776888108211133181926037799649300767129105331048587642071258969115921066071221683299808899215624146420434625390309258240378007577537655882300375083033135303491075595674705845261997646050751619492507634808618407265661820026722528799105781081010304760120710945373030113417182723858527710351481750562072529148563068251789146459103360895560602546895088963916391254886515423931180962608796294678294061986994517539766043830847712188798922138024793254627074145392231022645266251099956415966697696747238222777776456861136017594790959769038264453168873837473966875301284915706813090598685264452843397691772997936511344575153810532248957047487127533765024005753091963831122109880074934793834132118406723448839366431352939133486886938528205642062022267512947162248565134830551207453610883423140612387957312739066967382052966691255851267371348240057801339817028228221247981477690610831821355631200345961004649186438033991378003855564702275124657130640993138655772280579927240276945121609909955568363116961449361796556032597187679488757412716466389299325735658973913067640449603817792493588632572575780679220586791528490856727433695085247673582397038509207704487050448463356785277213056941981969055579521282631706752820701561203934930562098459444753272818742424686238543374210652411678545930580771616737590358558369018781193995228816808247359915461205678258376383241795165363362032677827258071691139483437702723761299826917221560584819160731923744037198176481102600494786111832214723898272910160639278761513141729156907123742182158856951756959685303136432019235336966016698839771005641490041519858818004954039376397132009100600726186154068316256894623784842116390380489774034010289196935704305268272572024433931088679141776052543939157231118594554479743864713997771451587553761067048831752298595133410468789934296004520137923305222547141287149681775821372606771821929940123869354149412968197730536928548816253899392183606900431720966480009541925329980641321652377783154827513191403449942779816244925366170625877029870811882347413531309560868349606709152179337769306711688190951010474765683813732415125901941693949629947287094016112318017077064535583274777227209579751603980882176235367804737215714268940802817466515008912889452308407914838430658058877013533077942795448950875908317887561834284727111351379767288187200433845953976365257421807447144866003619188621174216183053419378513125550979900407461814190261808967711916773753779428775825565427846756616555103905415601005650487593977580123719448528887742973491972309839382781402374488636671850202501524166908068719334911049918199655686674804636373556900841243952927636146508715779005979133863399435240241805430971002614479491704720113740853813945026812776078599542677764126826415760495433785119832611885944368679211861223254645665243720221829970287633931520511978692939375885903437455545009234592064899508645320217784833825313710325400951025825220959354743455193102860547078284135519743848024826500420249436730574958463533344648431913254094926090984526442699858400659145119183385598527185700148314356396374127929085007452858159759259583466892933575043981969680416979723377261909949116846243771718548606158551134788080085319733631108187278460249223508776070113086020199981895884230858586901948054789095456852874612843842420390842835651126713042963713393186582999161904655785573198098150720200604912762511897576656621897904440404142388185424779665864767719676320984135168966549884269585840887318523341930045226624047530165273141516583648115942621368389666585565831683701114736486776655847927671463900040875308855527717546741123229117331850336599325811349450009918673173828414949858885612469498483371680846569127841583408023958969800105187828028654762209880500556620115149766775471892533125344970479171685266787566768473642185460862928848213307527507490099548158075472320119161797787828489753918224237103746892683837482776277843690863990458304369784141672510791472508271543460258448501305491542533591288244582792725172504081218997382087627341565097725358648045004317320382148274191287881693060989466602811855013828850630349398807566204482567931466791724057521847650821993847290605604283814888968739991829838819350137733240232853224115197535129431440474796263612090875142500889963621991871292116473331456338630472128063075502102887306582616371886729149572021588994735699226584361530340175111880388339434696653955989677770285269219723495011168414773048107409089887805797905433411254149285831936067635534434216347191738069401728194335622442212533543796304127760162264515542746823043874925919630682708936294913596446885522439930521942299133464505682463122841561220299560143291461790729801239464553452414049536310788316683464097302498852304075428644074450315947455328523658516882457828225229332570571290569763057529458660718461027259860266710271828619232374556202547600929668561461329374131838058317894325977504793293510795817429537523501136004143244556984252104546141279105512987143653762312963432651326866989534622528527291734187103604983761992394162803869277725921089942651644036928790958666042843755234113198462102225790224793111677276146148752088734685054935215792112534878558894597009221636859825760658785804502431722507202514746392450943817783021188528520041620073042696714984098850397155436464921154937106527851252761998038433581764297643857948814416034003561886665801242997016751937144620278632121964807082677044129521503112321236992213574845737616219051708189653418747461776408905079646053722906898845991745206786747422265631058871454597383773648610565076392742104883008762640646607967732166641244707581279552596496293403118511044197714594124857224604419132702177943046054987382684532340957226223143852640637366283563651614242505798552512086988164041668686702306799684678738457228302156088386416657265193978107973507292992690824149500979877624681133287525895247099872819986547802481951636895307103299888993473783081923503155820017707131960355005101035567226170019398420542866016647466687281517031568157210668915069232539588580961712242628520599848998567842457459532379251306004626453210971856213448770189944198277986220687004448212961374750397105768472498611754027487476404894617838199516835325769122593477959200723903993907326523590265660687105186032444400318848237286176234313168238528846614982082436628532478110607012746518737592466125348483240060841257166774090541132470491204511127253015630262065633152512482781540595004763375785819479476045030435207133885270940729267187356193897198213867749494028588374113466740363844255551822904000894470969860908717087168642729419777258730673079775869709294477531229427367590826290460958276608174157708543289516647900564194615585620434624889318669968589258712314241429533079301459724433898006140148405476550717388416913149544555366536777021860633328908600501588912660353464313363397597005075032273148981247970272560945383746875992117631985846674641462712956283673396806790135723893853611374001320650175047296875934724521650941207877464390037253483356407790648627732213156256768790922890547474274928203686798521052875805835726508778566686785114134866121086854719304940952812372984986362089005572379802695846380547581662979139090065236059908101090435361490240538650356300511455355459124937163335882711895184216417663579300849626330846967151102697415703640478861913081374388267234468115279043518058223105653149064914532371517406367924878186173263105558335039533638850612653955343755941629216469625452107974569770716788110539183424465237601468989348983537492932996706324570401720033882050503103867480880197654084205969844110485924563579111489502081148934133350570130650131189233474165241747681086930916927205283241783927933520285761779042414941461061893617466964259411373229040464410143433604244492734900290048734180127980642208278134336345234065983963962799038899690171879740657444965245920443372258594672312436582039890027301222023454376115788180020239160157126131603344100583122570698758750555946768131549466231690019980599554751470253776890263064286133007050612150931317798990793385687969435661993004773199245084054706251136794621399344198952331041004499994956529765251514749949391183932835286030617490476805270806423269795812721027116417378953999348387852666856198339505843243208453260966652013462792323275449801715498185917485806350226078933050298341211608710670110810777847288172291664954493072978533599955269551325704789213711379735927263687807598922392260190528584997431196652719998561327691769237359896703709262361593457193138486826909137440508206804107821385770146222900034068869836319233767284778054493058454984745155317438443484574744379898709385107866575138418262831578537493879778946278622242973673199064858160836371250726046839506579552860062358325655342947487365297556898235405194071875190037507637868706358833383453426913492128962018223816450215737181596465638648605914616402462376949349652146178412066925687280785438225034227332101404536066508609830625000355943950414436060722853506562730516148092559741573921267242572525727617986385543729445089103275460962094347158673840558919287258411447561336109206806221114536158741450973383212694562915432862803704092263948115837147373370227728770369378655912963956027683609708861640290718067523206995385056965089355197145466021351825506692835009075491805692111770166008789237904054849225203610677368827203722800869739546226323244040428752917008663536978420086999303800792468054634399848829096638722114916343208419021571308601892783248406861649332569108142857668355251004979114917309431889261832690526803348203891040508076905900989010218735170905463044698891469196195534675622593387682442389472653660135876156131788124670228748597545198078081113566377749892474804421034380046466534545617833336614720020579771090211674259809095047575475574434286317682381321493827570588686667751853736826852045945767767325825423380484373873531606596139063343459055843322413111972016836392905056447226238695094835438703996572120406241264998756016986832859353325982529010835381015255011850885836539612760289282366584197921111557037215923702645661086076000112777658584033623625387335447193900267797948041426923220183786856843661862923317997054664402858252240860145702777518896489009133286263101387258442123945740801958590108409939375307870524696726663865699286197863388401891593846308549367998022847876045085522496090039436088302910020374519942508730430326259275076415802063877085469703337132536139858967434565855894697013769737002789034747491349895908184436700439682066654570837532298244400281929886111985770188225424830621702495190389474192227141995526876909173735834051321393386493821757769058180612284509408934905261314999127999200108754049537156707583289451666667981013329251588183962626938959914990466424308350125274732049776215219257813720030193615760386116637745741178583036678997302775656421018668781596368904812049040572973454437457530710901014220370374580758381053521211887995157209631174884051016408491342036956826197868721578290353368873857367907067447005764042385748387275726749627712955798851365442154728919257939772400953754932848432182797785890235209403699618314928070320977105448150354739838483055071909629868805441708231036761694196449198656974936046334781711265881257338996327667949419997498015651775473234371942713831033713979813885926310056412601362466297973744438330954645342287850521471435710802691525804255051876838780203330190111059711271521811730093532124368568683190102165713610354568738398937265899141030852511500208998093736170708308441003398122757607750918644844899616034063234996183532504386526146382545974375256491964825440703451660089107585514460253925874844258666445190289790243501989073684478256747270122311430831842790159006732074960014099998784932591234970064782893051974880538944332364280745979001835725369946730889713350765064990057786901465479423936082878910659065966063922696721178090699113368821457893510804252174130019798770871475721719896394040685239325175283642110233102362187570220660911487083757058344128663121256425945998255711547852690328448182742396157412232729370990535068040625837742183374734814341009426069725225465531208997008794256743413064817581251694131788572795499520866391591825043431520972466727127813494885789058840211955487279623346311620903518574827495199174532455123920919518469901651020219099147517007452425209121941237064142992251694336426603804102662505035532992479985284979495613416627648833875965980913726534895546354588968154104929340978640320803366646019999501747384970296068601148050476629541558927036234409539616381087296330073196130550536153320483997255815740909804131782082324430671624229677668303987324325282512460161179414213484343826136436623749481889107251125206471328910345876829082930832080319120859288579763403072346026632377518421323854976557748630193486613965329349952733636055126125942813662176600096385650427297708824709355865729102249990126684207125263473437550992092128965897202078956810628410273801679416757197597820219516737364764595956467120829621340358674248584205948927218757512445489633759117724307792949826004058958009227948926039257326303368691427364028336877370273126726145938694334278930670509108395527740808194211865340018998516631021012739179828371540379632017189012741307081277688608294296061133057511768307878571222818364542270120229811352130193621430303577895714150777968010803926504113414183967972195626351295554435101471207690971125684505312557234053385005123382807866998678303350023953599824334999485104210556071751763744161561740086840247943825881554315332026540321634270171244717349594166719834482858539614195112111497607749315989203584136884594005904482862775741911205014161147705018905185731178657794985365466875410084123267608825242085657552297946165424939700020258483980337648848725848177908931640731292628325581780211915958014623658306338805775471390221140043938620245513257068425334843899749050431554092044124111456312100024102685740095392661713078547027499090038323182926335198323108020062665921347243447135950087082529135433355971364516858131575313413448341539486262377372094282767926057628491891336888730571917102722170072337348500449957164475230511710671328325980105021065266244201523923981780656744453329635888348714912175813592870471636857800251973236354346248479757212449267292958360252768062074727888461446957963656821327791753452446190681880071262591326325427605082743468230557613484240177417988507610741910761820799499627775143993420614944324911494759025855010530087045836454053262155147934625849901962339728491097827205217658474701112327610449565638021558164021619403087303562330133396179882666599965835540083292267455616506744112417344187975933745161040388583700140214285781618907303270079626685833919771767352427853796019843129651385800970701231341835267104248479481416933797856906083071344383467933991394867784725349718762754675790660067162084934622987005665842848904692369336449065603656836357288179306874641766973784909754385015080518739101247635722003786946938104767048835680107843503672363040545595279306484305995174368944372419795950067471054395575471131139830669232416648735058199970682005947512575069597087037712134375024673721684081018815767241571846721255301863687232445595958488484808013519642730914710956659992887718154693438886749802505230813908835449923527795477560656843472462548693932483433366538019581788700042334953217439343234281220951179647285245357288371670151527617325066599457487763835592346861345923782541935526749456019953327906998794568270707701189583615462769469953761508519897856237281539786823695101164664122854932076525514026651779664015220743478217637309793220746020626341786159132504634585801133969467084512445738596367401407975769344977916836909248746802457144306945929576583127777056986083774166615468584799125478896831012242007707757190856167360334118662611104685705456022260370902796096024458046332473878268234947480772941541942901649052667958808213730624851499758872671208918159904912177781545727560259366400594976304967594158353535047723521118426651803587642523676798993149947986500150761475703509495760932737927934852474499965645342930678462012588835646029911431968268950553653942937291745131005496508875091456924612100588670948614886061974378344731730662728151442504385547475028359530899088907273090145012282379382125004256615759032864042552170307904458608824375846549410148724814553880790318940798729408608595069510255108972078208368668183408431684752931362178339453694157481572100523142165461504311350076036148122973971838116277034115894376993601758861826050554105242112488248576444169350289764383213573134713544521966545238131910704219768043545977613292829885149277475118834792977310216066734069753917571066544027527265554637252125639101264328495740253555403447102792513591695122347331037323716936249378489904313713548597201041064548352136857908042288423935891290940569458778190352141169602808073708100642109463100151502571113987672914143812220863247025843889842791588507099960134446548339796236830220663810552400102677305200191954630975654407420787404372340056904037573795180250101352738141579862050694569569261106739180748205938335900175118000695153807524413524870937055391485786792917243029854026842727905823715987617746915639373072724198628084568159396715032462362902119254402940165187619098676345049525241430901938695168788226833259311605019443885496812528670026784608397221006459420266823001168282230525363236092705903481991070557811900126301049720721528195561522722064617776563391823004177876018032297158538860804281952451019072328714771052420311347036238308266268978837885047766335200359808300897798365123932616829984369234894219215534179240019475608192085445396849886008447728679138739854688941864237436256816543701677567988564678761532515322865871778773239168935396604847055968733738673397883082331896980500163288977535588972480815314531067149632087036872213386167208444970266568219787080702298623377029280378408875593201597701427027052553303513741598627348870409557940801044253736840055415057612140501392569323796513036073107573108482965051260617556059886966986130305446288345765570966846509082348084363846545661492150856885726191396802316948463516602761834714389664835327277212675336489781792292941366667314898475769558682450570014444505697070826900148868136192921174419065143753338987793689263237472483966963320453098776806789861767023007107588651518783032538685592038305143831915537842311575013645845642784603500789589067391629449178292867476879091145012005101959187884950674791099951923618285540575311750410375835133642770886890860692338304724403095311455377005505376579319491521761810870699364821621022596981906317409409712329007934433771939441331094675744447764646764179469270810838788329704182029062474784079458316873787057247604068635936204173450060881143304215481131996832830498401583264074263281633959279491144368304712535926664427499584946386836926571919711181349470052251294642286589870531993748958949651780237358404449356608661617736261852857016486174977235428629173711854461463519709848317334868713303268782776908110051092975014174206682136506313479378614054688932952474401726316811381500307045707103177520356563363540817013042651261691645564780839358725942065119663093997752450168118099547862080344514861609311761869233300023672797091520395107997797218271735009333641390889379194356835037260303519629129195842127186026825191232537496431976770888299211235989034539100007655438150174405345794907836960428207808294891092801372593045095555314542225762290753848603152059432911796863942897690720977961895911562169251248056030463921949460653957229522245864050131944958088955371979711181055179096157489301701153749964261186572547083728041300739940808482603679262356452911625156565601170481982966802542500224117281812178615735023203857857284163384039069997074735257487898944017047255355986956957231759002524539104327619919575559118893513281938059502746994851228805832143728475919955631298672185305704147168057851617873154934718017948762646051056927208442188338381457323085590365027493650802924252436745788218462509844670427709672751128405163351794945820723976941257494903149187608971052940050330488331219660658155733455280925818886562729304058175628168232627479901337161009907587301653340249209679603698579291311367978763723183030216026531353600752056190807528388734961419021201339923985198640974810776762920667860375484403198790780969204803213200582757682961227995613033840149171048358281431155815323552825842261788353359560954015009759819479483022269129628735914332272175981733288993496686247789955748830215161256488986843782851286305659083822831742995934660139028447115737867017986308479060132417415763633047610936881105304483168392769355487479175579599467709776763562040260719492464521795811469985917226026219724745896364433064376009127285171171617583869751068676822209551354148662379347619291287187101632975445769423259414319769298188986759434586121981634298269974342325533478649579074965212770121554810047368738303324102575980359400726131437883506827741360522907404500977817947446513109195621671739606793119189116025168969425194977072408090665966166817950193800894724100904159648827900670710580886829941910003158006667592389117075284777046389942065688449339913706660596859474336523001894597524315329286480993919777501978233440551437428206911687230419144619382309376821622379543045169089936139373787896295618428162301974247793485410061795610181384500017913141072658305241598160436098498179947624549009224430761161064775805514211579462760440964022635422292320506826660914300175632140827195546032607985975537544564519006484169986105418336951074535788124152921604048605077088843848270104864604451058093537141676733425572323806311054989335559151036358630158194455022753934036013077779667928840619698916599549673238317695194189705746445162454303556908241833152938079743924366190447852673722660434821531011988249390281829804603293917468852291995347759208125046504472503188806099866880525330932054892804819126832616847346206901207022140810790625622799439915484285877259657476224367227375564622375875038316944010792414636792063245754313314513245125275621824556444404393168719704864949431992768674067807175419313605882073099661492721696374098532067554471952504709847187070450445985316055614245228075964275865217845307450823393279378458681646888867520759109613395408953158809636861447674312941686802136610503351795365417671135142475726153773853728890039787610906045965090722779873476772382626660538924331154627776556992824771089911997099147414237552472962180784511732906157064320494064644203579613266762176737145406762917105491935169628406595393879072013640129589478526358931375388011896629163757946414079449078700941325417301673626321243501381405195567264520130309790392859026121014609243347544959275200403213647895811575481926559529127645521734450002158691162347725447293413215766676105468792145872086185255178326904167611720130623382138993023239470460286852954653054050913251856331755005462473258334202027232917749546369069461421966854268392517394818753527168514629941543022932715023746833889066271918877298706740424083679430707147321281830825184694494512528996084800078252579735656835034642956012713972959971752559142339025485861534571486207190425117700807952588516534767923086516511826449335728534280503683687056536666686603325500859366782705145513409988537181855145600406952281077805673385219563132764730298614733144422710153087074359739351047524634539369484310793405303123059107282828282475176073425766781312745668675914614367019737488756812637095393764440177367247509873175161142358513489911416739554514209970912015659705766022806355846926491578896732497664970459984984041388899129944058756160875263752655930425337406676357382206431625221042559425874839647069862620537336333821299374331538127874703867374941878604516706579007601423216897191949853104171256706972885424209818011726164521133280305207628260706946808964599623565022610249037518964409585457918910914420756992176944664278728855278001346114145595702216244757089219740118312357343720177327288830122537877568517829768996211498761813692037981890103565883205420307934032993068693131236298783546475818306991054640161511556343776241765681457147041558454518046721306680294390816442588564457472951716806512476884691608151458496810137154256370676510548141184498604889198392333598648718386451505481127028551490004304224396761247564411072090044121746890868881739052972810036313855422746752351003231490935645811391186580234997836362717152490119789251494346185950402128711775559854967963056262347081415670866918009847764806065080773219795259096070084192914239773967090778702206146245486498575864817627860269129444172482890982707457244540254266620681105853785049968538196042702730980920411333398103288117254213017241434127724306491510792091049740253656644697999100977784789031600677806524514065886742054921406759449376743673571510212140849266887846032257695190121617421045290456780679310621909834383908281941893190497884425657925577721150242884093472648032568547056926778247929321422476797028486951821313215093354732352841589512117256199093422341253534974273055233113330183236938630350944764297178821346849657926405829446409695818994384060270971392262081729833258702845495077509508041768395921402388772252410227798873626605485039443845641594957309539605249673932377391729704197353996583752486656490763105964001004222085545401570362322610171434774114940591662370401896597126988397280014915043204051139445093286109689763284023736991315535540984776337123397243077395319539777024091879683993398613018085926507122242488117314380943598245388255860694540511880332267174513202127464673466280005821360179735589797664999829599274888512545562173954350835829304376297725835453148947580452387569628693435980592096069653985107098142740542824297353845775603181077624152436564539918280692174822928166539578046056508414413276291462518382122904461722237977636921457016593558656259761219170940578127196936358934575786772928955526718397348325881372264516248627376862888374754138781244902887956713673295450399067244266236929620288919537714639880994104350091661052095142155194375175735939441672007090970449198577292536488902200544646213806131358492960343266984496856072701626512205063653833601860760189213606775496944867214365587060561957962416368781078170886487073652594693400627255524779019895994076764642566893747476702798367851241913894832981861831556868619913111101816765294261567388117120686697359746063518696190039144694364904578420674954621048105748898910835911857942986880168719333692007693012529235975590576062590714335173427448844442099095958514577039045853233464604633235105062778599390451792680191640905437972594840673582666301317600582314548794261138997778651359756505579820065984665862040736335676154470901981198312932058073146898702986738510384639921458923454994423716958656976408542291641602958836296240999974501084129011322206902490579594892682218048130808920936961964797976983531444687739541048056354118555197562250336968772508293813069130003155341608977148901751121002803801600780388927415463212746479668143609107385917994933268986460178955270418390908474743117078842357326161377276804177536015897775712159130907878019919496125901645588931593380296519084474402245601621041651843630442871494399756650052934093670866446638155424746352650805816356430276344642765939957221924295224426240742729578151044237680622485312408126669753900493188270746351335097196367323052393390943481391434115886759864583575810763568469911258379633663804148824479820186522460913513839325259434274745140241773686305336575988560800472888423415265059803460302150768175859824756948071512162459958415752542807645872898978614148858319555212348074863968078860638273948382562278389764540027758610843960617124746232578818194591223766717823731003541087011192773430576391404816650750775056920907251165006269575131779187582851357699063496300099708030097204609061249434775985470018922964818663502864218098528534757097348978487808997528812227045578539171901052728691750691391550613202520439603084904168157605683850613218928643990694560707043184092092956786662482276652958984871930098230847686305785473713375063169549976272552087429400552586999236994792707434597466029933596652903281439585163210247576525244801013648248681440770956215842929114541502108314002007894530781529836773995325794133132589296098185356181848884408427030593852832377194021613499866334386621810794574525669684128384622882447182125737554428152802885722940704495654275363398054454692351832274531866317116373640943425060739015389829501990224252720375075922659609590190034313986327836125622676301054078686447083817516685575164695116319951738580902501966910024042601303611641682052494619102565174539588673097794643676757744234522944023953541463230309245376001992156812616517334833225447581456881571113823905597632385570135993741927986595490070555467961480457628275164868999069948349998115041118809956953446230078692611939456576750166615988853560898679402332939601240775842494432313408237573857156762607567275420369513068108684697723897177532466594413324489025633617818539801452531596760977780179889195162189845367487852807842508677987685661622406784586784405387831644553974854871504276391802312274643666776885372797058958129752086288516211120922544250143282828300952755257073403616362993740368334840729740057073822905875833451838250205128211253186392092553567247004647375155758777240218310410307129296902463250598875430335457964791908677144782784795977919235612452288180738368621950420713977186406858125665884234533868968485673766095108686336370694491736949703644052676222941286549120075785167861708718929586650448225847744023504163165673039475436354637792534159999780271785020643758679583117004581406848559653564858853812190459145967483941224211193935527350830771920536339665456218300453220970131725538603888887270250931594141510231002634259892624148530491581926323793727867536834098539000600465055293885610264175508121099690002602149443524190279372658794069661505585281053188611247714957786134727160578529772173894563448265435619948392027785192490761219162240779410747040850936904751410730237116333931849858963244856961977584873996868794399730659330229045719068515324439197787321618968232579015313066113615149322335257731251141702726647603715473073524052926300263171229522513117586836532233756043106441356948881626264671303794244394292524268102351789342583468109486698532620585124138518389467094304045673608488042672107909551122806866113233392248207056313536151837827277100478480466769357854692166783056139668832157319375368653169513037126536427580096840891899492053442201115646275470148972108925042566588709816988180609200749373129406123829707343574095451052041128976823375057173731568751117486678271234679739061393722870922033215812267556643125437389211316466173670404078209097634979214642359776579614590230130396534469851503843710005152686693666809815860264122525067763832163045144963070582845173345036120559820506234030466135214108843683564538657642268512880972080190179948909497742787603381030970398343749556963045406498530119293677471844399253232069667165661849138044724473620612868809324331234938971865044075041811900592353136313031336823241783555670836882697518234411107290890164749663281009064402672099882435348106707291986821217009540729789074836909970071047988487736759821719677543410687034222928054174023210894992683249553776409081669727380495213135503096823633946907750242066602977814842085503066275880706034687858478737080693435428094689738321866905500727452351453814346800715001234248626931091037973692820552164514330804778296278133470009663538385265387751825284150713219839616784599175400005432127116481434160869820348173004206588983737725814175061115175415666821111492502173078590211159871063607075895735786642831192480360339803023351838997532888700864684490962778285310235099197699718446356190785856031066477880087455311711397632409260699648204403526951937383600397696625430272066736602810662172509952789391947006091139932515161862296368150995958782212577336355826924112165480314318286107732288524029203849785615728161909204458807904615652226869730200531825588186080349159199217579117529337773012829379802041860180147628717644069300286439789220661260317117615494724219612167457148963705843402276777382006107160420425357130430579101011983119460445322159016665590131179373194252805868564660626008353614058530900973677970973356585897755761606806218419482824343128873132034934478785853705663108192701716147337762481907030242628873574391578269522214287914877066609864505410335357091491664909018164884570337129891492066587975550346212975104467963493628887197876517304969958758971290956312954178087691197956851307524367030337505254934513569752204247525787666069075895169439010663748992005566769215023774387416669160932069343284676236439262197424453037404495836354793118025470926075315766025876802891706092841439071947276538755470737905249285770323788031765387152775553215125257546402967617156999452291556066946739425294366044076101651927234748770715861066991857423405253960233260393013259495251825229790064285638206249385101116264659071244090716193471961923622178780884543585970134172358773450898512598522592949876970042381040867444000250911140257895227391953319088431299188513707741208095980270223102506787879931137929378822265432256752359988481200849505744062218549384676853990589508107990227015894197414182794760260303858122920750428302843537890786226718783428451593068643266113052566492592110695478630675134543121186826610787267735711729264455404988352261204386732342110494982772658774484133435443902951377985404730155523217545754808004988226985951475569972035050302772624624927267579602238128742840811602147072223236903655696853997747665297668076035520659928883544350689012176356085073258728048531655956423521845182985874253848193388467568279609715177530080128271816739131395059612899095583262103387375881868046523464913591254551596063642239068053267889148523312899793534272404491673818105444152837517681550641509242455110058574856111719520133026865541403308292185870477176477426033813625832701717750716682765671394977365506092494848635835430153993114308195432957195035748729357509619860674933268673072644349658119613794217832333576715329439761582143943297960254281617580344641571134749302196199707252538199662757535735041500740148274634296356247973358697470085989952360889617298888480647850324969437214452627181925800749096592808568458026129086546971077754773915114688389509119077823391106897864658186560787303777678416501454682359003883513226134751618607467620877326005420211519707683377926911489625701000406518553343317294157591542262013229650627345954504542831529480115586744563153975369787730432986214482013623916531478355910011109737318123390411294918107803026760134639665960613402684009500806127017468040050285202160890076614958949109652136011423923683084320510724466377120672680812175966202096851180929814451282848094298861763736504048912447268843990020860802132466735311944156805064490382154534274342944296362840621156539397612446548379768270236519899308598988967303435410883573214363276842437430242500571202366783985480545720738834701857949298460486520585186635925794927041112048256343347334743080934079185027302606339004787918125870373570671157723005845175446439151414792970943218146965474623358986065301648301157276924592877692695841157605766952398952262038180855569970538540421594722578497867778510980690505982167925630455188946365476021624117901299165752257724041219088106899092758750656076242461517099180242730202206365426620338898923290638667209491359162484155432324544242452648522847904952900331221015256852648423763948949880980851377090835857762781835000200743831744218777731074033533261465752947761838608554366324146013548367395015878830614802471703404127209232234232240921672114507500518213356954807232185900935028530803561985154320918865287890656735321753910990324619429891977109153652499294130039097762046974312360134893862556027481130996116025304488291455194232182582448655262465005610758911541969934647014234446524766466653472292037488065043494041371522367357686208964825652078197098348325203276995546261242872019061316115657819343129955612848512089867186054128502563245316302204940292706702778678832921573059441604558950816294679813923866783811852481342835105297800485494301170931199503968947155539404175403888594171000152224985366513465159309820831520913093490175468199488546781146002069618255925786291790766686260962983302818412913614909480791591501808357476602700053541620576826451098222723969500053330428802848238428716587306015667247006180960232621215734233324495043414892681516560225373358846490852456458016266927282622640080540220576369761875140319158701435868753971924803437461392423545528146519673229473558697769499544021374621496331083408036984488543690721627785173456932789440551934743049479850280322729409588191397615500013254272972311484208145841412898248189080452428137968838216840912055787842832415368098386283583718563051766530129010357741499105910638171157928202092943732908180679959583986442630900696175399829923409170709104064478196859866627486566757040951875785956109876628018499633668170389795676117313532613087821054762829705064992809413029715319209786215801112975974402915640808745877425128464535053911005649246747783906133833676648124526256029568805196570777880254873863458569739022069907621114040790083358726010532030691968038034981124648130219609771083845320809526490115983846950410544397102407519010226019794710408045682910288298957783964843281744654941749823159656786357736337215766066480870223980892057640966940865648240894329600065543277929176410301187589949623510328283386038426699034186452057282296511248745060630016905786043213837016214147362563632764055563534946183079142832934212403602793491737831764931856626923054281224342672085858772928568892533159241568765835004422086402304364727994880094547685001813272547075434162814992603063777297313044757281850110118523472114725326810439827409810423366588796752908001681512189300328404819942558320297960126346691578128703856771125984729763196181363963348465855573407410841514519790630314809307797727547802542495839909040133894352814528053982425499873694063013691207703956286872336922741301494925473090312021458766778767230068108770882440197730849230794993163598620496075339540257628442299585410054158098348337069686908650111790304474157583270730930303924532229398461393987402305334101786400453263710420885922440532368221594306983749285810841801800317593465444404967695240192735579865714786378319324184183670672611377718429493211121659976558564383168153684382912139437541071477065486403856771045092114006450379303062519534920281593661732785137132028452273331550510263144429579352584188499890407608669483450147567223927342561093596695950172913813503182910755924078285816913553307000597878068310662845168397218477379684933424191655146341296616874949841306261147006109165325766877019318042155471850158035661254608867552515304749523693819996783714214893468434796103294452021161921245097196447527661487005393301515956768442812281357285781751775973980095642401781444201680234894593662226120379384108569048982808354564226128304798879565782434476606255891854509033255724641906992958686583864097745168332248491917870889008307441880615529231435318508825671156895401037678314998305139646051321883858249153220549609130261692581289997052613946379387063726697764811466530866018320102678158019595744800398131033537415586927621782853649492541447812424168995554117975014669839463836126425439593296458118586221674432452680857845338079397534248155420470690498459035153969681621630905339788305208441715033593170346304622514018778934427351802697474982343097347666632682994157066584684083090305034949755598414705286460422824718779801070545291108683657533354918232113620526129202710504708512376544454434892023287022605240009815805099681739770578569809276719931557618173540339994830086729008226926039255566518483244236177321897814363598789830348693436308782020133017806127361021183185429282762729059546920714860721919909185273139466196324079363150598540483238953835852743134855367817817130067716284994117674462682423409751182970603026215804696711190871734986447008737619833218791368794674850641932456895557914662286754872784129706459485309048662783642166467342859351068856170684214309401401359717819373333820779982678287343964002341318979343643020325118772179784667523214842538612752354591109824201585553370538420987230574965884980361148655476452750566359689275477259497855985044694389349014472228515136008505878790368240721322397113993047535630441038891143490131490482504898565107720614355960864552992888132850033450809049430066322647663737088180870602923801037496965790764055243556196015863775768531632149932624799711269010787215967216554270905066747940784944802576555440305329735442017997921889308980046557450556835942923816213005834625088100146590064549029835010744295937080519703986656198934499938325509492820600008083139459356383971301944760125697155704795990632835903108756379509073101823299832048932535597892562330020988330369797874354142216654984837374124071791380284401037383509204456888843022369249716078254382971625115735045575226439717885836602844329374582382481859544234294773067568353890232208237251899612304786925282522017969045027664784099505204119939164045529219423962807608460008399515588719946294731843381666484280947307168458751184887455750512929280734024042059203424064660625832304954798042590878550872315573396066789411672817739915414567332962667877542953454291920842815741251906633944035700742450245455797529854794718046739461162692534014292903951681097640830482842935001966297567638577175324800409814604703292012465936542045550234572684998318220515561819141663635443246016777580601525141656171800627124334134991078055704668114949225133552346581522192555252566933380843708378197486065597624060022085198029376835414222572685202753162582822670779633497403292666530762923707883720250596888761916661927765871943784495652451530586102457650822605591586181066493395055569391953599628154802978357597170949995877376179269684205039913648231865319865210666557446998399333008250764924958428235855805353033529936847200987375469931938856460824096247763674630583795999964535291087384379601655096048994849819554248606928304275910286682171609289740666709470400695549859371637446732744271333401491845532259889518730023204557501412036303226154137137962452756732014299989876933773926603404186962978551991085205200603285826640284803745304181295435347916858313767323081299695877949859702540926869444802318482634991400350672761396000039512838624988194742154183018541035013289129633726022501851557655915421509388536420331355542133025056413430239800532371328424388094302500579090379097509390975860719146028246061150061755483482248998541712765424865680245681563907088430080525457010838335284188081139986750675236511251947241957674204159482405182841074454541627842831175722799912241416219173778879035030031465982269961176771421348324243675692392995169158088595558417169719498574104167224573226395163203877867904122420722360533021143230326962636145180316654122938571899181525859540714615456752749241171488900500150657827956535338953823993493466819805423746711590014188028281844264445109862951225633819132259820005981124294624765960013362984984236541199703294323420023267703139287015933557266372562734155308406717516361185327563706448413608003427502126613377903677905322086753548372438374084951961201880051827171282453303387058992821753709084278642568699289325831659841773049747244843052968532775588172852182262238147915600228352352021133756048892900429925920024245620228185135858043045703276971460650444746975182349293297169650143104921608690743258152509512908271136259964266594077525585923428531367974838152792699370549741451431545440515860387356323160905364767763601558377687200369362795070844841686035466983244801096093131078723065555743862572905622699543508988951240507943620143300702857019129054176907478137037822805056939327229094944925514603787981826375982038513998397833633087582032648620392621263368447067391338573181554074900254621493549648354911520276310993539827404605253478819840641415518343645050350399426378079386792471980370159066426689456444529624054802178986126925621444185334939487555089407797727735069430455682083674175727943598057271434032228789765477801333241915249082360004825749426440014330135022419421604743893666338564548403905866531551080014667310224723831564199556221849472908316722109170177358704930656163227444927077504522321567949451602629177521411233581612256973400964822942830385654185505970228016155378467155515613956099978921083560522487471963106811833504578256235264835297871466606822742541179567768408101261752973355208790490880895100751730653646102606205249007266599511567182064241945302766413436898287283145631461654970570945663293830893285708377721923227934044176689154008908257982817543971718697174987057998075680017832756337692448484433483449823532453759994342562261731030115508731809736909768574409872801398269138436694953551692476670346329390164015276808491706347868908413444003123956067615308435200855014643551036205168505945381028719947560650065691316529070208290030429251362052740899968815791128661882368722779648483395200765087132138563797318520140325041160993907372207729637872144898550808727564884220497166213907497461173663040267053208976685488019593849597048171515067361880722617533400365118749403483640191273150557431879950995717511135674220529087951125656411557104538095410630507591018737215544451167561296395940027626693527226941149035666032476461600995911077436188879355196797098731765470316668677367388339224122170499891902463454600192741602811150265682767143493940932140224804352858083529649625902445051599649066195359856849498995293733625420429381078318556408050292930276622642859832458864601661969511520614819947764413373266726494538862865576348410110718586826101144228142822290886682064493255524374484463676597863136073094746592388437167869495458386009841371110242689206747625255514314836681724019531760804343546554210738925561365209783476396830884738214695741531575563142507623092343259820435434862305114077865247369468330395096440274446550508940092543052390105214333348434103595407465762381969045869179812661483537409664158248037928772902759214895174558536071216155507572112937579541173309903807659439446797716585613369564306402056772364639821912738405067483242453015941804947111138814658499685493524876683929072455824158239158157520146013361156046076233731880063198194626983176077231416499488596069449174844340750614108735071592860990171189578701528273673969287935796800529759828455081026461795291703861507126369077569259757253716698762927499210594264140137427930755630699716853635281652110972847164711466190353001353289744429427011299883855884588763511468778860197337186524210963503669744468613259520061922493673545708875290398752975718171314578624976317974358084486727818198829866718940956097588496724827175056959998972552273104405489308283792860822267115350331939542015535892945873022573455285282181856772532445138636532950779595243155901451189225368403973976224924150914657604108061202600799900494827157472205909071491694830811361536533929725988423527067985462319453004510669094894514423274909209158792121907258137710342156798372315883963343632523309652526760045511994554154015562256392278192867174619939658364617824564136623384212844886013391429877813048682151128704266405789301136253762435802260421993388748484181663561387282803530547219744463651268292028823118826016798850329456246463626674275178759885678466972584340093610442056957813909968323903175211300911004726297640566405605155192497730244652343137756309382882525525320092917883790766355585645298233418104338981884092008649877787121852168532789792026247988352335398613576561570063428184962411553912125142028300162130653567679264702920192572402853696223681236527497220555788020270222765179298118398464146490905226267251900253004175689558366838581900062920958743785346834744179735721931172809875590861337832773173701576289838947913706022039075624326315213091420753794915554648605118594875642599199928156550187515855794342024166816515989542702105015691581732861879017627164324423661310868154400771213221815049367034343365982284716081058253637320758710509251310543624714268775072667652926700787432880370620586832666779249567813487472171692253878908877053101344525185475885443089841422313483197035147428560369442363114986960826059051567662812907214431277689395264510211748574041474346926835439025338380182002009414308983334238496034075199360512021874255861230994431760214284558641479815507677208058184325509497670608739942282583073477954578499158374209473042598266910595898305836199525295162049185678538594800915567844797980251582310530820748969384475548373126865253770192439827961574268291390025708986903789997032000280060032824122539503746073159990642746726009637462559851923370714322508356582882243368222333567247119346087595050412450099790439526090026182078664979904885643078785196890098509101808102392019831245405484798167127001371495054859919008109677230833455795859925419916068328328356825124703958353715881091947779348533025826298967236447235062727532762595224103300831199292818909055016249631739695642799704970362760800875441285982003196722944318903403529017574005809005407220500049757233081061611600846810726709282016298827132789307353182229256658084730356785645633044034342086374408481403698074849482965374993531582198345677247638741754216176203186321665786250846579955112600747673170949744341553706850815812235548873037661047913628764344288006140320534202146960686862474899565811544527704930256731771471908660707977457992189258734675231545766797021769785694248208626989375540081815121072188652604495482440621107858590377110624997186369278303578033171642668630936528497701920428316089422823161037094386447889656330060386539463299121014849134017818540630745046096478183570659911967504751355707223735114589273342968341281757900324567735710309056810857957046625596907082892760563065492110456790277315684977538204905468593796092006211479562665976078773263230798916739944183742359381654979650283886445371773522082954715125838477063435811399228953532020930184898368039253066446087356627891079019532517243338420433362712715281122939769197927725601143807777145949649414230132152429305659204910745485698323588571188378175841172828202779099004787791107324270950917735534067798724098820803948067703448986935798756935693939198983508699084578636610483610966752935689697420846583412720842463391342206476824366093618154116521971025298613839141464479448376264869328392443161702253690286120097659303350867517088413206253537430347006708363315528664546888762236663836344227879925088313113298125478262560390802069001290094621788665837100330320144494523607485818885487335086041880647605713384000100920998458583478391583730008151495657345762737470495666214296063817048188866800997043673191508801887488023885078404935747801887152421217188409232068638617261376396878840128831815282348468801560449947411907683501380814424928237335829921658436032292240648477409934902716711427371618972783397112858447615815767184273618510260389963497392110933039034737959711266430004011723833231223394393303706354929416875314518491628744199444103360238424579492893085630636131630831080725263602306595672248790539389426493827311612820806786419099218403523568221002059946469561032222585479172656428266884338248908819584471638767599209197911718929701410384204379804623341856941130871357729781287768281831286171764813343442108375065807600483150142483153885108615085828509301624188545194222299973918582245302072990394545116016893340465905491666365247140597303053644319658833999437562734070298368123627130765224351499585474732998760234320462145741043251415980381103788264447608972821328308132982583311700513695241093430315895008478946256154105257485340842630358173552299499903235006002554083822988736633431615269251834277715474090626992863482137049999421128458146904767657646007479687733032428854735201757697320417685526785827597115407069771382951180854268146136052139573748908987118006196031516611120690299547396410615174153307332195322089028023286527261304908639625288091210540269193371640754313467379740607414035074477332073145917796865988572858076590044302889845102612294961419356810921347472999617065486616959939672404983172058998775174352513712556399083415195627646691242438320927605048153214260285513799076881866107396858362844714715236466258996034957717158461940842511305583040533248035847281574317677014574274566118592056491154104180776830570161774751796750170800243249577045643320348692259446295265588764968775203461068768155369686819448222965100297210364581551539395593100256164282127760912016129237384984879391713482731665621844828701792097171736489519210238119595335488216765491355053307451085559013156337890158892976504832645657170072158698604464914062767564223532200243356298345673393610491253524947990456612848655979491013935711986854663061384473696427022471063935394185587305863152751071880665426086476899270410638875144792694781137069369512747231738587548191361644092653422640718170541725143917957347589621446946355012092683681241065866303453632759080965712157155314162404698756568756335103985143556613654190480536373513312613212852051522255029767770538086092105466402763079315820580544493278012545994643064076845308091283055286784005220362151337627023396848583836944667517104333188375130932688270022627901366322254766251808515316073638224960330198713522321124241333027905134878644797342160860129052734507767737898151124422060925989438108418742692530080135506994111902429064888616088821102926023574207714872439961832379581798177782051654452867517111966183617774566176233554144548281005392124932829351046954596493393679063559452561746106907554818732397619430375860955263500219365871101796903847199147948947975932236493509905956300128782506297441999395063366121777321956680641314872956682881506357019853807190768134188659657178897524970018736056939158123816394081429935614024689311094631007313674718838813122107119044665839152077471037490980646753402865538169214622466013389901187136829418624250422614440685905964598578913111554653401251022616486344568621720611555197849815743408678785555284923861504406561699465985938803984655821788076783742338987487320645584237614385428211403937061122508823464655203955376368068038171175348076191396879048999382601539045122961094306594608177159627285207430975670626287176055579896863974743858864211024363604509138949391753108156744357926237951944773220335058892155765155821114046252064577753900376738503833843413421961061861380290842339032275954093327554725399227165095363776147846924967635795677239649421164890113032844028546141545966632644328590805012608190596888365950169792165120496684261548746910245073729062341361722172951713688497322780025023949145656653530299669928254507970091658447869372649659045017166965596150847013940982265700941633182631169766731548462473226161097982182197606430909017212577274724894184368626359094492573523389977423580028110130713776670934993975531843144448111157511825972171291136414964356751832603173354665265979375700421699128144884657850124356040026792082891830732528011565240791955249100657278353007176916843968979468224201543951658347866985256750921945196389144261064422378106759011133316220216503594322383647462719353882984450497686651375919740903810341140910501594810971959739478398459864072012963511457989389998916642225345772827470094729109741341475499606146981724494036507372508857834706581099498639437460583726193643466487073870476161559403755766039170902105513559060663161980374691645811656096636014616934368374884036383592262042985618775698945271915994428680823426966785221552021750008223991557313020651958062637510849546488584451157311344787521987386018131318445904850571382995677735866786072704470373738995480324125167166887479396624445453823637108830965769961872978750111226497450018043852040681003763007639960032648537114989098257466016527785451132183409465121091138502256315183614563221459689415233512330721499665723310183286781409181524065542515470043425012976328817887470189626858769834524724744307404552157254256781267121322663393368730355594854536768605951668383965268646677385724164441949498703221187073294660493989376387592995138682986539900914379275455586185793561466741328092438199904938806492120282509460973313490445866476623435971059092479372909965224699879622675125013153127248192277128504814941246841253063021879124238709866151893747741689897452692224608266781944969266680435050459297694313902576117697728499712201505676036242351312491284411214276944575327905832927346385608126502186826664358838506599946717221568220669992469211507216952168646261034685052478957963576672139820977778844601753983240553914389337066167235923533761806237768835590855448161357793854691606261963915506485249873530439031234226041379863372798165945474887098669315812215588820193149189416465422796799903670358736264878014297053990042576158005053665665545690219075271910627730159202488279360733392550899080934922529866736404550792189626492694190772134387397121669886995738315212636328889659016356774422118037910723560869263321353983070622474084311051686876569945836512851909848066866796682195454673483419726120279330191896377003049290824818835487318362517922317215047084560118576678029059731693859726817166109427062015291767956502535609002421135591407029097490333097345528695805620619875029540648955369671314340258822448763769556733020473074471038472127461347321653099976465591156987453156541933125950925396630402089892794624623322318487088743378587558456966910920838410256344517284267797075801584496379077111781988577935186956827120298177577505275660569071487367665518912224272751879240789417010566789426617584878140831969076331100700058179842133102556051867717813308703336063402109017553694343271645454002451711932623707074224818392873970833364971945939529677626071109059240732269772071244819303654058811563503088919282083615153464908604602679273911055618466304486464734433719794094160768117697756809762320064482746989450632511515069309711270064167143681431971373862264065656240337454427617554304395243573822385887454103447363344731029045029444480837075410208440401177829234757554425748058850087853796357249024424468437452800574582819032432173119417244221696237532184880466787551480803142871096174562299291079109257187963199077853629126465982508581164468017703826944247500672701349036302622382648904061721723978460037744949479985986988749823742566014125322266114711742975019744766968492025212159690681293683687603888560545557153734443307591784096447409487414820316311210967614573764129172241251495288792944740069328636410899272050730084226954457113813962623086332658841271190339395177833954860919436828938802840100999125799092051380462285369451922863493324460984591518731995795079009813103970284300256085923119166438625251203810722170292772698085218033621675756566335034335342224576590346808690384254878112942135802869468411248784296628575285132070932256650763279563415949540836189795968358293953827952746488506780033832422217274868908962533023057251329185919593151549646741727133067066559035533087012538764984447839004323178404908919050544571444892267532957075068192961471608840539981007840213204435190209651114447169224911759449646485956775223930668442105016719129647534605793855472547331606036923485460471172407609827816892057958585127849636220252338116973870428849908994258512726359979122429527550341877977095294359991742808557002738494858561182496345061889069923473740331725661535900125318888808299868784197141050692899109029289290961452340877189845162657588122520427549894229670689443190606040937522896563786121994160015130073895131412393157475981428878043567107729963915459095099227955520350115699296332482697711412605957536283660810064912123847572901511536982868721596103690538141118138923067933845892123505691949020758765455011123174265578177661623535636623169748775834771991151347152237174566670169927588193306375440681728024032184173054584323547702944061633959554145490731730149202168086287355434487396628541791530294543322690562877673262895147180541244549071285531667101793511903951953802226144034250035718343610043837768284040833279298455956469789209883772173110014447054355537211049720689313318664741563224938205378655302523138942369342946034389167712190295503850675638837796349598739797262627448994572587943464171491575543765073508615699655430599762195120589027710685821511853440402827550823866044945728702558819396055941584963144850085943314122994377530920685997078556850323391619749635584710944308080524689766017406627601292729658476451744618176447481288137073992564713546007952225059982145936543517752112052652094868441635451395814864942670991402441037220420186156828731873197045507041159967731789781172841407009508757036737434858851524494807540073073190785735667687772120529056655581400830763787955380285133233175968922168443441171237840737174567612876722465462645930015491851376579612728202387354218024027930086842087574893765687811211799949296999049311546138852581856339568715294376499420660353590214542572465590358608114498743238004455065939944523170141121536166622666108962972974014756564111698131843382713623980698908105745367639999853550604395872303114144915796053799066847518340738295168188743493810408627542267006858464118316587032497885020154382988048432024823914416888028440650784031075685085138490726133243283225608198309961519161072665637719437015725295339075318730577015628969474344043004540697096315339192485138709597196886734858945153201002605472484712652360660911323374419488927392435962343880369557514613864643117666308218213738181708473503783658844363452121520652301280175656222662071011497725702402190768203674870904449013247905848663518308180834138667042016487913370039986218011558168609261849880895637343954277214617520406402059308447566162022722338693612293624022408533049231552457996941054676716459659641156806661016463010727297746015780213802432315022488641711707170958149481331644234543385415340127167653426644647558925824354586169930404122872159511608394199026628892818752458631327139565151315924492684092836845519842128506503374058101339033906349411602833404286457388381077182319354915878752583776602514040869765129542516718472095981102528203388818695221159182243408659216802374400537036962058733464237039598804040686802940018833502736670257660971423770307121078564993510183399124152405699333148304922170090512609760063131459721122224776891151821110825635660230419496893767221615402845929149793423343455777915476815094045688788951923330529438958401644675249146305678368627265839327160269120284375807939284182339043046847843298669316032746421258901522289410415817231919058622007575130518398113558787861624247431618388069934701862121358028638249238920161161104652701836953430039685840592909268554563895712420804799358992441778050325512804180377209692262699196533984663418928967348914735988699892560091294072505372312391468682218529198517058162899055199277170766800458694084633306870349364030875639551409449288713009718278882283744182161866479344420335072901916220694142262300874914858423345500117936349697483624675120047901987154864184720774155275910680502855910757714597478563202013682283767025934345440927297204254046135107212947367859452365814506330759193399842745267216410929570116492931072499362332979223569733150072188702502070376658999595449774850453225312714547199763080001578003957014031858805117731129159591253596132590402507623154824551627204941733792496026174955196499540757728009300707192082829816359423038208416751284614084673878747865088733609882500450088987769240663710003944921913984683097662509454652792743640830179826658519687275885217031164028426529472501796749662718838192236448938072456633743150834436824214240403278724353469318925687376518801538739562310260659879469479129032034145390175111308872033456370239587714820469938853715004736253469317938090319785276832802675884141314381197696502810190908719587531230291282920410540546620700494836727220040897046880727454154384104645221994617600527929312129258962210233724401908279120360759268077156070275747994924574205378073410461392117226106847206836302541310670553952415443362703611721527347750944381422420878612709600950668370153012474585139623059419415147032203268384545905738713882997548623374137381806862517599124588572828711582415104790296421553401878453480883925049637597781023167614955950533452780276361549367231850010271631160493739815297506621357975704260395356908331524611520625082527198965366191094112171865795323081551930625900140733997856213925953028739783624108086116134694214478001976118044880404230010228777954358907221695772311883116698404293887839777204371799303969386937459451026890478880629373581397275183942733320062886860575452886887088420393708542688097961808212521699778776838603025400204793698892164268395361045841179465912748857721657330924217821522140056985711419662190863731696555335432671809726928619315017361150175676316518910123138161536263963029782515512729557071737928790413228736845907250226526378682377845051541577129662027553359259839933717577106878485438915652990143942167012068951706455343879630530898466524485254274687709659082186110601765747593562442690022034061485722761545009418369167893842625853013964265269624882587529958081432971641166679856562167766573819986717774117365549057859784103783877262741282960939316077289174279333856625995296717939640217872277988746629533239221434705160088598743938950611441682347943798827714057136953586814389937922251723850178824690049999638343711308053519113030213237703866392899703494784420674866037571236963836275248545557276970079064331072722738203066701660225643567165417547679701527535694815950942524552084687517164942766704396844139644805831641865181650328375975094499169091175685500450918654629518639815441190381222142009017951455111628368540140508866631004474402803666730930435607630799545042673692954951194521773900600560068002171474076705759066158282822829690050727824440379069046491610435525260182030139723326922280255027802449827322973197507187804773668786670777000021543757203593742049197367717358867681088373227035560537979955416136244759356047559062803342237358520709504573039669725984508274264593869994034592829957891414723401212193157330190696204338284658416293147193102550649412125261439359667905868422582695416275206953138824303685230603706630357863046378001224356546298529502977758376319947975145538179479149510072670076940387626355445692137138214811576824735891199516518925410761333551453048159003837829799458430812357496375930087417579068104567069871523763748205257518552693989148846486257545146599627056527938809566761002149925989843629656422593556317132704925124090756512452843486987921233040379177936452136211907041626021110459905195590519868205599154037037128679839956747047744781544344323661526870462395291095564452287667056605517671844703454642784399090371001193339033402763984202395728183286337817566099285388778576897759451557181784667445941088865136442771905094695369312580259748398443978280458607875064989126663348067563417189477567655272516818420811432509124142172183312921034808164404303064400686457486256962551233704855116361010165294695436508456123476135113682715798848724643687243481947304842964686042146644553301116699585886338605929801931576414290053716498702225759637021372184340799303822901587104474174236130090535894667362398535089388754390607410189627994188277087885528711482259211220435735928713683429343763959274395225557771356273732570182717027301314721483583301053995876855930123919797226691190729571247084816992467819091520008232443754933619898574180268587294242490696416420076059968320102495123891629226844306401667419734655379197350065856475066710258365761023489786213892220330354749765070910263629862478360824604205125394997117160991977619723699031176690165861533388634695070631810607613716609672152977324976128193200465696508304329825640463848537358646837777767347380729786088552189186699842217133428989405857997349090210224882071923271863171241415006862062031323015277903144499257743695601411633994489991590025268026250399579451326245777290926343330469586759105773947299148296180319694888069895657515912512311477727563838209381016644561935732144312185072541100695630107177855694518576959008344885427323257737004480765426895023428274619278721826847821927480934671024600466732769359575448494060800798612183332419257868872496741610227938157322355404848406412157440029813998144153349335926491246291456649497650013753925642105812998964755599775687784259771778892478686719600915998533830613269049721859328589338811232344953974979007261623900419863841511105631257162813419433981081654387495798808509997204727119341760700561422950002431822399275858573214349095863244272508629461584367047990324247427000306798634767605348265171762752133421296794163121478528219675133577170685359834715898726139992802480362259991609979169883522386443062377230678538570178260024808792227392784822788419079068381251874924139848462335551744076359961691342080770840521202275109874581833282640122307680978115089088601404381194355026413215355848132781039003886087612978082008642239692579292554149250692643744541951261273438960541962078782128203833024244910090943609183675827310365750874095537885336012798908797007166209606145919553035196593508758201934813768162633658642693546859029464666027275677465667708253781378549084577578423441675719670381557213518599729990216426477397758401249369290954314704176573217147043834844440149673369912801477152240291037513546664764745363402767180754206192386658791618475883311346764505919434490223160432158453306882566533410405152113993020564396764809936094531389194688531561243109022009660964026475669438690235239741790439382286791372192584450586183743552691093994815131154921896123839452428503336872601196654141443439673516413309816861735289654214694536243363855127959371685325055830196376841821100777503225981735703412807076314332727923234773252237942724337158863082290960605343885891914145073369065647197336318851688277408542454059069660210201191530625704571489865948308730267365488640942300348865827585620257526182405979602281063211349036692714981397853265340054239497098772976029951969265514543534706412161581024984501916618970124123395760470635691679188529281583315679528084142634206632709816135175323598538512238798662821991485276979742951966424398241999727459299933499780430886582757150227406969479433288494302068828950159482019329525750550780131580815422932285575029483090545000157481897765257201878297303598820359296673551536805560053452386440844429593234118053421195302014253054472130000858971972589557731111973581142668524570462275087215777886208717018419431159813914557334296050862580735846634889726283323366132277726987793343506969037737197885295837007595603984302459184289740966501480184491990495763713166590622467015030792659703372411616430615814297101195289513712038688927218144887474404868416500996828184997075256550618663534890859398460664439187905417520581532520719242873043535556069779903238783826131488877453923054449990020719767974324161234515297907792036218726423056910336306000145625723103738470008061544137627401895765014392057299781758281724954390172246359671924715533286067722327416128405771458752632650511118256901952430233539159774762118959705227354416259349465033491972357933506192853654985402586956227701300082469441266392268682072684746710497998159672921515737984577469479900399767157738678214004047201365517539522732148295306841668642897031974695104530763406342264102567536861104116844900779708649078802465892279355992704677334528039912527391002512958718231297711790721565905162437615296317633138320735194943982127290397358360516307872660326575718502787996970030349434621768508720448237801538052729049149277500768702469632019740844305837781760744531441434376077683099744856158528459948388790858038713786592038208134711415765432932448800047144222911753730913025192044031952486980564324911815285768762039308137729133463033407243715865815190766880301828099055063080906772999367584243028112424749045480790694597501555695165427415116497626301968695341787139407589403196714434010163259197179403075059200905038042476305072680297167891738204479470473851984846222929505142277276672799820140689154405578301138448239014695187145596095221069159136349609846802361082740709792882468060420797309674990758053054315136220887654923067661352730868121929074834743077641836122504593805192038040516010857640488226761902347735820946890115552935670563718715260270668007447807438713348072121655156835580303614475385894692219282733764861034214150584776069061822145750643058636520634038019616982386080676694030255499187584630463136014448739601416501797321831974452634768319253021330661148398839958171488845656442648324292227074941313186245267554001975258286330697710426146032719647943161816589876203541477533777482976515255508607176974392277232138521327201720317303923056508418789520453362968194476515410026149318642444046493711407367313475166405335226816394779399781706578999576255304353729434431209854470385888399647079330520396150111599897570184919460638990935537310603529695662081384384838112135488239081381194631647836575726580868533572300135601127585094247784261262304425697752871476889174419958951651550013511443043610480944100735170938676838792479908963762906621330502401161721498853221287422893425012494145872841201006422047299353948247757847640688732496021013108678930806214688570808900514642979107217934379460543845212561008801452470051864525187291781858874920360464486582577938880851622928979999410816070426876797073567088513848354072633176865430274734108077086412053025601074452526294915579824042742945840629397359673500825421842523966218375304474283060672667586385736507657103582039122603067807220656556704004476235494706032789826371131683984959742795880057571102813908388770377190913230026693473170298750857490714681037250994208433794318991467881429678656510352638419760840495475948607382449649517666298770854891342289459218953936997205857242396592212138340594121982209489034172428612073697630301117938847830607288782980045346332156361279345800080347212999087445761531381013716807405646225766032503902556259017467346881210857720595110285508287934626214648435625102887334869193786073595623315077505328123272936553704143546625564505412941305653737050267971314351020736596262791738179278816286059766652409248848339639585105943367144921718197537178044023641164822965483507804150678865185724846778977322117705698931940670725733397923921930109479821284931862347388301991077200061324435212818258065704990246069545103468277370746401954901968026215645941412405909972066485830904735054537339612042680006525530850208041732370871832206073868098263761022657823033325600875824325828431209098818486751854959029362924687848029466689912094087224364366063105210498027410286027461079868767620594586844656473335352091926605073316192795447122081014422163102493571981458330703609907924690375976663878727044907393034358290117215540704810442190446920699039343243140687075282990754094527301033713799782149977715440245122098471016975496990209517364314924494453117800804769014327627814069287660590330897730186980898380765463484155560061067754406243672168803620985958439141063538866441937985489724710423329904320223147717651927252707441150429282189747646057624022907425758058458736812963994789545233803943138774098801329909824565930962133376496988243675984113777926315733911553905417606532046400602479129945013918788929430417775343644775030768211973755986211619125695216991397224274326109008600605110058015166059428069560161947574181777838912715647796986142515277804514998565305464974585562640357498144621517743299242461326590999366538379984060367506403043178905320080643530378527745167416532027942736892839041527572835933823592215089337913219993287059847609068940496555104704731097074697468865538227634652448423030019687853866794544967056995802430115329896038819587741882241741977635928469096449845643325284249995561327696262416737972167357682254125739010211226236269921266104376055075344907836541861257398027464305182628270590318954505500019797070002458366006110288694784202849119995477369819919532025580508956914780557044969556694003972544835365481382229800649139973628942820564268598108056707447338242318831465117628562648723581328080575702456868421892476494584886657536844412382669493410460855984036895896307707533504637596260267513478366862955023628951663518499623852210371962943891982454801549078861245123575161084180525062786855674184689508014520662076714049483526299264735179700305635431250174248447600204467151922951257110319948839690476038567504004716635457389234788351114376254772548963868616500792186582876894663621362551945705659435775722481142177484589355863792942295647941679796311426894382251843711977350163130783046334308399580945060499403386580850457043368798163332512884738149047074609463741244954766641236183192294913293345753405687539117409852958411440293655006187340835754416315942765600026412970208675843135028299866017697986046888912502276030949228670016778366926170983024289060153420070698814776242502893117728242623817747035523736730703599765844669135505498064151315688441884193148994963664222368007043725345449339397731405406301998710943585370999113908165604394874416946451788965061380512912362220760849483156367008034411375428227883952939968415638095215612554914932562118252952804915762095831484432043061658416388739930263891295952227677570895181351663519649573491940010829033232765025595168279818453857578067063043221410788183476865569767012323152797608841413509258824898091901924923496591613914816265618452805051258768363850458143536032308404820925290403785646946997193693249168800597775851718799775385878335592451864743984167088316670857742506117397456825973376274843526013199981931455277828296503585792245634718793749243078909505538678501698588093083891666679249418244375376818956551482981347774078174422669782007332136430525513361245035692527747345564427076292573992419344018172022774463977761754471944221664122341813993842136414381061449128257183603036127096422072196502422800631335223140211270450166645164084938774813567983298910950018088001756723864628146156696128860615460562848560148179934581842527444047227464159791211538056892306363325490505498630762014883308103063182473096068050865542142542088119201988632753146393982677056264442979793354174462855227382079978101480472411813814899851507123132128019025663415446064357017317072884830070930200709346214215447335506027222338002329271472398218880038067459193251561837884108907422514415389902390870281750398801441186873761306758444521272224662292275615169501647589559174421458741451343238047092520688270631853558996067083024908794489587587275100467391994833343572772971512127260728135850221371989361138486950368893850765516817122981918329565912144018378314968158814109583210856780630136775451823431975005056057022621360328820111078709028748558370609391570429466382374626468160039926109202418076000950855316645589677058665986744297629067861435873393475321978079527877608852639940768835570663437146190323525358548922503714330753152265056699308878109869495227911239074673290627439403291251571714520803670944602385638816642478734122658346684437370595348844476289933656237111109318742808586495177176287361532063103980606654427711044258219225184921074104855108551974635643164342563795050449283695531547656094884075541741071267326420139504873582204826234935588757818907289047041631406967890818773104089829419132782915878811863423321972585565617088579437214600808142552038384491481635526354217601498166010472092576748379216328902480056369784340357595840657905903053712589397522388470695256334429275780000494059387945217830091494719336719156145306574061944242153355609760006099987456807805490180723131088226242817690564051913251959321883690387124044348379312705820997480390220250217863160178316265097750279927706773005617946237343560155885214359059327896302686571265853067188715139731151630102221438887237370379162309387333238724435134257439490482808572095991899717887206612809113326900673799749120080346912371752506814995850803401296380492105539182100096628422958457298091943516218502793217787155786113929286366660278884668385879202610175115012831427670581081119525859283567316822679977279363042352845050461266344701632801382864753664501662662030942014545944354643231094563980964822123180846041450689253795169212151362031205194923422105356176733075972798492510490933033523613454148207513368253660220452638586807942292443451346494152313380181320576810081336354928575232607438085844000999064999302733713392863164086961113666707930616810298882936707736053279722156943505110254334617950496294463998467699100239260306465329150033800440785646622158586871846364641528602233400942066179169670083154998144399042105362444116817850070704586412400682548421637461875812970972785393194356509311409513595645391629598859768991392083229574776931895359020441612012745461178444006976087597333528833260390091000750751190147691709337724562112183399872883620442279575970738350367021462195215706835575617427279758689275450132539887769320245618653663620162394820246326447795934767748691535221723721563625711208023097469690287183576790197301992108141539040359119550395269622691370122102468798176691109518157018737414976045086428374289684944287318796654428906569056678576469238640027472278598695949193564558599299092834736087698892909159675583683095008608834399377865712991125380486085439019416280483439002168332190695896578887673426262419430055417978264318933499751807163960460211173026144722440125765589009256567828239029497082925735473322281721104700422505587767732982007335947568543056685452232693112275002248403458859730071636266203817983866208249090192467731978359510101708974689921311053760382505570057493507289309734076481550663294543849808002250725422212308947457342168340137103368529099006206725812008193272763876029277169977051244217695912114999444349483744340056714151373648461831968429045464605194629418605850096968259727536149025227796007389097016971476448375749363639217754189052575284829153610350455547828200641966041866576314017159032347956852618211778588377326016123579219240171559336266548269654352853945681437411414467911974948138031210027843805521566719796534315096759271528282971057983917752164432082597139889726805245701827914670035915673410727655228814646604708835424478956137774819822844259143605408961192535042691678402944831671906813909469092311224546438001551321794406944324342011743119733887969005278684636371105033109396001729428547071906667973719765132504555972583216430523314304145402437887282577895347982016235708325482662425980880237853200893608845091021511442186563392331434499111709785711735170144986871240631402174115900969709880444409695641768368045127612648090006399503815612988155805498386761472984527921473633671288661175230014759352566958837123042337541436476628614541381935775542055075269557311514033782819034098684161034026991443551719561905388973107602362539995357906642520342409127782580630165183924940295624075225099036643836064806550263844792596621627706191344608797392227659945059037108873896160672940333261061225039387179114497072378783050038286510195496563153578846260271158531138141781982379367363550395421375086913661600050093557346507529237504431210897337333453573870493798492670248165742819186681121424679798932332758441003810020710869566316722364054613120170491152791371340207985441147126684938342510356902315804084989989636440312624581659060098374139610004649930466138438484969662631855094071864238891966780568046413563702959872994684088052068116068171095836867274496105042288727715941535958471803681949729947914937403329932267459500157188928771542577032473212570231278022985273234367362190015073391632733665681309296866812336369298974317962723599398756340871389408318516396018406216583972189365042664557005601578110433586818588040499083829133960357228350968848728227305947504166843596201157380068218789172067354126063118035933536148508264942313087482545888834893383316383495578596594107728453912254296463485843664855195598019420323388452109886251020675602552255966593072315784071228567735453870491673193662957320698843800506212052565346590626608740672499195189103340509535379131584965772460943681253963509405345474922178217591335997119208006236205055555358575970867159151169744301714932192114882302417322384364515369045644512817713548146364491000234585522150786741037608768954375994977918247472407665714232097668300129533277057540523209881814693362989653873600443667091614082129057184682309463038391528098911202850653920542460075480920340440834809727706010974690756226142731643851467286243006781297625288686289727361196066826542859318029170088096695290500515465679885637949478924690030765395941590554180473474190157665847752450014277055865403025879699393181216929566460596164915813023395161421806132120987128199539989024548287293086884866071298040478297650000882931402722160262813540703464759201920664867168023552297720609577934359034876215348900891772367449832050221905456448455004472407937883881985265832852597746577836909214476498478585229738224206034309179600850188806615376121700998361468486595571008091279136656510077903553700078217748761234721916012329057488171533951506029649725704759163437184511438297208591178838531817653357267191165151512490328444253803255609957162774230351392443317150292198048803760550969529132356749551779758762417634285709250619819235019126706169488980695505918209682056323080280099263647812755248664615944806315839557875137999616922485423085663676454003864028107232577156270030378303886149301820196735847047948886551663545821997689369589680018004554558413049444511730847065685836184179258662725684166951834737550597381559604652852050685442798662778993768326852095650300205975419264045699769881661281002420358486733543006480850058259898277354341171461528513611556540503707433435305164992771997945206933282581951611877545204036312912710188031854184677000861956880663979331660250739918009046293461466356756094529384352705793968954719034285519244427200634619016124744018813165514219319259609338679070753065559844927704525789671769709428016795383605077733464265202063143223910140373721702144142086270602262554833661905490594304848048360302799137424239858432851371855641446728478593234471544215278876906675612628269430564521376084361795425301521043265789592879347062172861752048753387344329699241143989370298955354935612657208295238751176411585283351796353121339469900280917952340405443951807382305818131383853367228789594975451019051391328540928663330888182475647913018224195510401124273777736761350640941560182304592969961288266410423284347235258028687328531672591527139601929326168715008229879743089130177973669710436926690413667397782772354012608407117067625054151524846333494904682517076880029633060460257507538123170059802354443376563078324903485335779554795206745686034272999195453673038709797141675415147147488991561671926265199003919066892492947668231981053746235284035782104713253042444037519072593992180862615029773608996166226541400042504750861854438134824639830358625290824410881504033555925769225253310203091410037642231153931848666789752189758732520018800288473004514189219313875993904191724717373649083305344716867917797981371532123310445439542398348253011452040032317628757283559462210246645947773666115807322869560276803673948363143206765365334155226244081132704021513416327488633841323839551321886726963503180787000489163542493774170320321698092732402087789314431894764394967981525122367138483443458185462940497986816942525482435987226245380965482494757524983300098882750943637840862439812465583763285059366454248405255962231430226346861719349498719879702338602659401938640462822809740500286141281669120305020540957729998299655417416863313155267108221290706430705956067992453314773007736988250831792205913821140087500280528072832655823034725810542026997269792388488699146783068414937786860943464503646149695599005637999295303956973164163115334243112826919352297814773645396656614688631018197634783985947378237195624778744110847682296819102357744991990099801229025212806528588780208706075084659672679387693617127692986358980912353403782334262210431920628687809101731711178957272524383359984090391236596092232600907315026829355036171358106100412960174621073095321786737465833986661661231117670732064134225315064093715657589263740796931555885008590539082175795039151316514750691072025562496130177973111573608529776086481471125362648970472955253586534953982060704303250243067937641641793564244697494038418506406775099815182891508514610487875155154777171342779536111112875088387258130312789332028218145940115146935801204986725143760170999441829212435557597496861796104335573874772572389859473531116019744377277581548508724297970301675053779078590545144262233288922158809984979861637400562789500075610429442028032229243563774587935257359050945664796127590152000937197959275180616023638231035550870279767286541869188124571320448671837352362486350537932770753658156477693728808353983363234732702994850141792547347461428883686140453963453524013838064163924641375830739075844053974866606038501883919942090296223305373214226309985212798099417767404413997190042725876913756486689949685989712908955752963416833380416601806818492931851821035454142431027155209837894171522143989511515955069964024306566107555242466227694846339735093512466385524931518553657583190317547481856997363334140525806197252279724251903620785265757445978763381497925355150742104516530626431908088990100599137631212358905192828872165844992183972636933458772673809208271356407290188026894779068001014119515783106082001473570850836797628176357194571852743909999384908173608613339093841216102431834519365121247323169080489675115838987351212176112581956562808821304652325154889702672366063073538641193572135869001819094793047351288260007740332971170632382901665997430106186369723268367353704871079280025152164624701884300757848996782789647490538383496476078070149800204869137892384958753540308132736902522317472733754314438188094248899639254597681072048957832390775627087183219769565237073880171603866369205497033642732960644974152157605251908623402875140202753548767056730320274768907925889705251566785122398830686303844316524769588902928795257922944243111031434326808544082204007721623871195320532673886480211951233465013606323377030979823680742286388704305387075849070228141073604847828795933119609067709925209304024341318184647886851132747367955002991931865569882311010583935771661309472473786037849569066247334723213765637674981807617830228903870639952928167535913842257021559304044511644905433206979897947345206480678960525965446749881436207449543430222879453128362960720793584954000391160883152496796673272563686637843886501047432583414711846493309634213586699197180156192668627967885241736786497436507091108914163780177363954565600757038157586447362402015573963517711176392631712991246021314370590609148568757145834654046341013118489603792760488959398949208036728731905034408185997535120523269648054446297559210877469529141659488945367906860707410616260904276880659262565979026218319682398859891455688055290970356545962031943431385550871895641671878479018236241099137491931455984539460041979464401491290256267745416703048934966346648324948835650090853845150132447651330754196023784943163772593263521904360363154377546039591307461065466360565895035830023096128918226407183116643160384605564832113988854372898993971405058785838591780566162967814180834206428170971904768563562702357573829504737865644722119101143004700716470005358193495264949695295680328177940189196823714053237760031801183856693102138225994729510908299156981605306102154255579506269159697852760676567244814870049491457281579631796649146443769455601203539594017408610788261099046086049743187279095481298692585198742840347860571721461885689958099683668072028922988578420311120903441553362323481566048245125668577456578338162230192557062269087607718120088100064500678179823492738298106027456552259869520453905769476796950452684646832250691315862674966409663793735298603789439337250616676514459383504843346635119000904921281125567845328473875265012892579446576385043553437052831600272371281955158042780412257424992775384873538637465607730760694586292426085058663414469457960209386301038723282068961061641386023059462117877278578477912795816909468206708851903077290006386076068892172127341354553073330533615995483857771370933395346418458005594454394230790823859999528443440673297275800813322226163412443238247213111172419297854964749255470504563926126940696319552737810709660288147466419104272104456373079339493118942058124973169959193249642247358789395195195662648102255025662172373825999462474158298331431776372609426716657622214804666181342389534212436170586189230951726215125814159788942878208641142077006590641309264636330759689215539202907649516196769321130354010520442499519325140708497834434635884168347453407782929243376998081571071798969182127661196578722120923241648826572303089295185232800965636573040602981499410076871666708857805449864345605407394916015383032791439214433031806515329864549653465703340093022958820437468708036592430089094090810937921316504024408400956254452413521384996488283603262056831721830610223110516336181914243765314831757585190524463941729485195675795210864909476851751650002175233300039714166299684310595030921034721696852424402129217580686317584017760520356990714039341643392937950404881911097354606195149077082782957583521872025847306834893629587890589666905744799062916408156537742130973069966653299061805573613507887852243495280403356251085535126747742670855978978215726280532513874523436434202186097808117688861788583932902187927547619062907121864105090745451533993621625752133354720900041994089122764073651266466476831681075208853086476355833570041573913582062666220254692907406848258338597974823377630854478369962431090951501534265631283120032627636514712070139916217081768764507980992475571081325212358324181589301473020854437461139130529984499585242920685910801500069545410754276810483716291599334606898544382272417727392206880952728082839719194710863900924631616395016236423114076725185489614838360325010248406675226229593765073839101830142174495018805909352269182975371892896239582777754128764533954582909566796184310050300717432316694446815914283097132798207760241664136709734006072328041815562906040676075435105235798533700389040872662300306388446254234013760991201270615088793149795113984131590328589072087974451985828433304491767443601503425266967193357466907504376224810604731969382487366703601682276186568085741247070396345990290074264253967930146741167257936024052795891723880728826649528830821494826911287021788817540753274589826866393427667507892668495670238756564823088859088097860034262783326562224657139464739318139961103335012100690926802219811610854571612806841737397192365444085643486708045748813674495427439143228480598480041311242469493418869783456014214397101194768562462972309998865760531538621297847297888736838006674300832860571220100840682984559340383156111871160147802948241623048625667551131393756453411251224436630209377099227489103935079387802685710374956966069542780376190560566367699812384185672700545679996114666827201879243645705176246572009453977032509084882538319131279895663567346862080442106170323692342144986908078477746189906656372752937067081821769446877318769626494139505517085674834055252324398886063546531234300007795099089535379462622975756660887338789781226527667489172307531422750706495031738883951458443638126701040806089314248901415127088674789232033739938799041313912441425844609745793383358046573960333844618331959432235995120857431118809717121700110409519280555265512031215204526662163773363329194595519434933181575699796336127134998172957709808463975363330160074667309143030330796447263243874759762154506251961382811025276698569607936388470956182181581100098849061268056703637503471088663488611000639138753785248564365045259162197095242791120892075539207239416316001060155352488444960345858755878761712853724605266300378719425480288734222530704079518160296735399514491445403527242551500407479734391514471414154658383411112373074802386053895804413460567057222351690042726410364827066783500306587830194694059068737081865138036690431041331605229764914595027091493841069362879996965144965538432555681705269305462656456440207423711809097511193072431652797931573153529181015098125032701140512887174602346343480429851280903310653648408614581831024018130170452838326238347422226890594636492637168345370837558652692162994185345660255929786428226860206324281407693122352946117295211600199292877017441680650362159710316845851035677225412002800291380273708853345849931484417371037416971051129129777356189502979269381562979789783446188537102819665142311090200782443466211090620578344178388478382503105039738727481219162880051608404652549065187620846593602962653507670078885828827091029317738142441775198804796283244934062133281780181216960175644021022065501385460775369834612286983002098046118108163327441571665733808298706038051782564362188679071119359216360074560117921745826361388187019784041961317318440531076448724049965911667945655154865640694578169555632715418231567086586259953326711064459915435701258086117593910246236606627810047650453348607917729833987694314372245242247692422068507119986539574542313049090375519132446985656067732894771816289410759616608021598825488920156135415890415027482483181298067153824029659440868109385946663166307601481240564408463197416078405375865435189655393464140480076237766186931701758238299608124630781668669211664992240605486952308269189916539019119991398884565739725473350716987863576811376337381969138067939665266771005385306569293927239337647423126804952167116092648145001044169838816436932417283524212375767666412690004437332517214139102953796847175857725854732130180482599327168117120313465432940109790111969890530733004906112018463688625560486712261456948144784460244175734394802359206412231205630286241181815029845408022410140916689320454662409135239911544616570636836543955069725502762924362308502140359330198495293921622774339542858301213182915770800253560793599306251650362529503491276171590827585626224361750588799628059983608192955873394630192125274224696007543868071039844123517869316038652275177151755369588341186294760682350699552004377311982287714482387098556097132038706644543301163386756575478180851552494785090071189234024112655750483410495010503199624801886099780943703725203220316618267911695678202314869414353951995514611502434328513921733712978103773530043216686336420678211203668787094418794880604087614028949873320994873487376058592359616765391538456498127528911935117355801298322595880535328469217557069569701810054057045420178344988344719492072328607589964953819536527862541349192732272962056992444707360102479476663177958001339903413337799713645517470024387592577805487353328192256360260506736526586190080315869016121216928781944476612205226492400876875957438250206778648650401839088780715037862169492586935063381339342471930666407773852967593380633128852990762469784126070642887395202590528160529226462855551172366506758113270860342364655417042538248750174652651507058305135338700398444877606324045078870110893705264036789271269921918699345822602626898519395912100374938357613482396044089372141983932762498538740871247896123483370089430749965900329126681765015541141640593276861892250427286149914335233872521898526900132390133826782508151946926450140494455143660088170506115924971922232317853116694206234658068617162041792256322447190629514480537068241805894388254586026744735929189560490583917548518900511641857919047017990029854863795771594510565646704959326875095073744521054151327110006764211694309188936913606028366595899119076100939112956330043019840597449583162894477708634071490887563855268981427328906530449988939224786183533223428843102122996176004951707037896802896681891853655038187132358800499430530871067058261403230273689262756141381513196111668165145547480697863621990372601757804366641021947962335217342472412754395137651243993310215119549129983543359238695203703970468447724331915320740056215848114142051262610155957508560433965967127081251422450104161831211283240437050069224480728196951483789171280265404384673417147277188719784607059813973119134185742839072815032444242626391821272428033880198497568334052878665367360512681737453324123910658895429294487474624830586025922297734625105748598849549003586286324349606814508916911441326072908503742127805822067786558871101144844689840096688998377441608129782805581906757296042381470464985899947402818658631095170727959730134367859824292699085019209225700131713493467382103173607694592093953912492017089342838187523117200246576192032751301265080282178873987792295385319069031871128110898418479630810167233104341480451855956660674393260071299575558510897719535403891935135769548934842964422067375774818670482926802965138091486988632028088760754303072531942933799007636359287894500649903826157416598900578094077434358544799295301894267710723178415369497483715615860130074617319154554435879924750972206397875960735847278589480368985621670224831790077974787887513001271597419625643190696868563376357548928862258528535827983598870822435446230513417587454682546721360526041019215300051266519884347017616883380479994667843932594982523094073688196037787439005971430572956754554149867143093332781608555755975280045815119099064188203235723202013363417049229437168827021932474089408052753400752637827835891150560845053915182197767297243549934052810646459882403290932218757871682432385515001587915477748565591088075410071968633956928858305595930270380931971224747781523595761694926545793832824334181906028737150508281357070632595378670407382294686822415722421489721147899953438658948765825761946588711722013214657354075389943186346920518713875499835828637641867429136062778666166433436881759109471429331909764096236608682941747112146776612061891638477470463971239924578399205686320738398607281397629033611703608461891015898231992249091011209502316479554888086943198084011775711174418737223764384721257193074302129458918108202147103678114830353739285425534706011316414548295857146940512088738604032020795819230994896307791721585995992020748461899911455643259256504544859048887656988715929423493069895493595748610764570674558707851041722881532742840677625848496411482382469680421788941219306963746828656457561088459642696194313598152641046226414329309028698569209441983563883256951053189947902043838193275484930762736291052647073581808610536973858543332613870272301337846281698073734732010588406707820178617537283083358659370001632642722966773857014547506549705552154723993498519962483538023221227459601938535786084095001389307429032239673911475486927081217297164872984806323411862793459334551833047007373980329016708280115188688606799490499075932314824296854851755573654441122407557900311606587429123500116142183956345611432547327549763242567473995182126998091655122777782486459785808950452150960322049102859527013989143640440684533762897941288998633293013261150872395895739168520944645091264720098301836308378796219505995651059376084923436503131414037387024131599565878510907310851505586211483895714732904788321837890611541758253884640957945673606466173532513214859676503746230079980322593160177619868930753147420206966511587423393630403310468715931465003604103283117814766906452678682514503291402695782522791332273479327530073893012673827537906473675631518949830832697988020110755110096914035213731693459554458407380404577721871508365252689494223865344491582063393472858125977351483068449756956841916718484829670558453400652508701197144123846714781903198685373116876156006255206785790618915253931757616812960691372519199710762714500511005830023807282966103876259731826009937583436783236313723399074433592137334767740961683968089464533206079244230583050844868705502212085492069463397036820094909865152232992338123610615597130061650765529060378270331343199812149116396641884178202297090909992942406519581983593711620454300715872373625642727161009688506094450442526363955646786598431844192596688171399307202973162270508446150176433412575767385772995502937624856578535234624333206103315688365432754484162056663630148093475712900877713295444260124777243085217301406782344674910348864989435749570074105301564385453634828185946454354763302626877815245566389855657256897649766345775164661977690125864518227690680616267018561359793497589970219286205428920783453754535723567581890845166270326932613988860978515257269857347388820091250373476613385008846120312696473772321504612030315260577875265215214998890731871725530763967899013595077633390880133501070537438437206010861858673628084453437606647884439015666440154969877016484602878187112626304193906237228207086051992246036732155651888643387065036240226850997106093447921681521552508684796457787777010962761064907236234870258842374863933905869484885676372554166230838174075429374550557340964240113955190314450491575534078151407645336268668341174880799397142944298961985189866080012358490522541060554533426002535305470648627227157530496346711934775098789510064669280286788510456959607196882142007101011227328452631813297510332393558110014987156833050485841529595300216627986539265082929708992667221167409073069330722142679339252599841427912960839643656823157413333166832763586861066865110257776570130835718975416990939350357951839271938144883209111088632885066900154942298624043127887480312061418129446293980668511059219782973049940729756850795598663399636231716534538972616387693892779689781495744931815576107251470950214108484956848082870152926681124805419562442696706303869670075336256521680884516747911833555860549572093203083173915320206997658423882856442204221362990276974031724959488537501320548373542922725859559958139397948010102164786290363224770392143788646223703352892857551198095657858469311898738465257916948158784421670545020794608758937194074757847646944931728774189000406723430465128128618690340694646884545354703661250361660130872784064702805330567362680757883457061716951512185353857694049883523751627870586409086293445519707122960674995707225426182790572357270758370213425318876554667132272071112903519813031768327440519757573313108038654815111157008246814302511184272086165006433267801526104073392492044379213456390027784665304849649619941062658664206638180838267921587472470636474814767746170663176331441704038044609900659463236832829159620486892942696051317394234368935591097962778278720662095757291808807616695944087923533394233508120499276569282522704965036724879736512443821902851231664247326646454461884618059949162575440629950504879390748151826968907498059487596994089299517836680681576159347769076821599936347650344321944271932350564097865236219487596084923294422782615867986148735661812085940610116709580924599955699957120879119769267384993279003897567094609632248844085017226454486253623599741907305348693850750242996936687648731758121511596502693626800939902747389377373882496308456954706022912755711566327125413062541821275666745292848951007692397783076304754236499893247789621048459989032540873560916274705277424404111108006879336213949976846885789276098943754199935190079199235666376539001635141200284201310886289692522740739357985903329665238306782558023059831439712482351593729594328026936072035616435908088154456620614238742995228926797246655625267429947060810172507130481657088020639907752349893447369089153519513329291804202730762249235752711393082148051376630032443439286159236075400304992679005761123049633696176827260723336339364430836139268584443571839801967264128358884284997017707960694031466205611109634497311104978770631827192575019115995110343823687288949690830281166581591759851464919528700073080779242970837478516598250687504010816732492589875219817723414283292251174311666175603346426869660010015775917652526853384319545150894722799396533917473191545341119419992914774218785685608423869085923131639435408129330356736525597864424060005329102318356050374219345304130884631220526536814875607345903750317634886520123354703579006336444591619303001042911773898169019683013005709204359780722611536674100171121732058489861740690854810278750529119057153304740349682038924141253967554921617181282897774631438368981173326843701572739737971383991965812716050538000746298426741308352994889802206934937032762524684559599376324066021616416997750941912202142904110181976352594690005052143025644116856889777260406547367641449098165848807008675269632669858154142729621091740400402490486808241966089870076297870029959140881199544360196363774208492815128434334841200864030941593778126246481237212926961105997707138367586360235466743596233777867408688094869280970455845574644024979660035337989677162688139715052736474634217135638474222373100104787134104880024037864736458659693467530019383301731789144024653043743311003495607980878720526076003285082733106271140226455335090087136477627277666852599624213350026377869356389868164499125168114767333348467405932855423221321775962967666723717113201017517512791200068659346685209152845769265652026609071966269950337462908828285656372191294628748782306718565416883420001530035054758164507802913220314682255839315109251451267905654148568098090363663096910244185949271915384950584758930227716491410305424659277477278651958964422603836875004738820420619562207541071815521887918914593246276620826419560656025894650033846735166485361101316841503028905425546944648880953888729704708981614847895589942240052910141539795911912476871223626717701376502161068255784813936875173265081097739900763266579583876879954426288824547471998620021314752751343593692887215262443992676265886417335241456761536123311823327490207245289192761371475151461492634518730850369989071285221526597959170887759590309180696163633527738317676543146244983162382606688041735391697049544012141124660307245878295987325231525734502828518796000601788137867169610779990022345190681709998986848036016547779774093555980438361882774948620470177813996675760709549899163293084448453298726386096348034846738067942769548248102804940806295399241275382063651730762731836928611738973126311013741233696550331136410676353245053598277027185952032151197131103436384843023456253882507506563646705592438116434273005669107366749361437205268312276107676446317308748967378982578213055798375735830543760630101394299486438856215942392545361924238478723605318994194793796709740647230140386929009639865378280819609650884805348993595845034378596309492677373450313761698809222125451749342341184799508214712854065311329327507433210726875599460315934060782269532643664394429627505829776100076057977641172761684139760719315784506203583144866780114249028848821731291196863656189045570415109428054143325042682187335149332663948845842693530404388838913737736367273134977512354073242019233917415590037191597107591858332156777619641952926874920699467054433854344984775193771245542766094682890670547024764788416769655857744434494520078878296968642386345321615893242581819087543838932486511313847318309396786574487387455580444619189715558766678149793112248056451249965612179547050104558710740152617610580231811420029469562083242425182297012644927710462282441956829635950357897552039813972665711925437995349189635948631650391808977505618741824103022022320237366003429920954649360454798438654832706197678545646915350438320826783451090011098992040420631236238744235710819522056042203313935790599928548544896012281802762915334264896051859197874533372167038134311035042049220986915593401173161466916638326971375007145553165345169206078207422941100928618618972470806296168155526027348869474525066432724398275456192924843424324338006614706182863876553327939138923039725915676621116804353493025654873336183023434735684476559575826159531615362127102749541698332660695482509209469392977217961768005043689630208507991887240505204405643916998839551430931952143711117274008449010468498065140071109310453580728889854916269894309579078084385700675293664363376693934665393211481207629557375352996050847271369795922672258948716237400621068089972749021476729920818878388595329722666581159054011985512609109551824513926989514432889176351991273476024420346284080319997951214993000193495668868289258771225207521444274425201048376953949406116184985924765410798164085611942301623848079950150515681354604390116155563075845322015096850972046233408151707177146072769663566604279897805865675586881517275657103850239249817918043202890069539010190870227300116701298457456902056003177123764748844826092004652144429443517607308955437101640283712051161195536872108135128273027222595212561319808640582573475677220879404442227239530835765749739491308340425394555120765327368156998094479984540807041399428183659188142621977680071372262135501375536489710553859654631251578875464650970851261885198837416290360701403853905280583934076795226953527170117287406410928399531873501862545806402952156970839038679072184518383412157523247912699711660993872192264750081897907164258079540941748507621690586669618641032136328476187168899307056821786059848449080603347493619890536242252915505825183351260719673996515541731180943673575027952705827236581057916534489963056303368445436178549747887724362290558345347208145528018369636445355600445329194199867129606076910772215207670045792005430276643852892593672144042412578893966461838269352966218344552620636534044846601218685592297944203430673556616378821421962004935939022260997590419009009612046155556181942120506488964911790973522680248983692857906317366235998792995889201622066836394655252987169373572721259927954053186829197206726018100094729589493208764535139733707847261409979318325745197634533268559535825501954746474190699542512434190151570611479030671753221797800493234744769961839313785444802127324063467595119680670421504596592774871553788643227371471428884343142623878768021629733877254706367329220653493037557629098174204144067901871572618159049701391859765618708314991901761552690476187075874722867093126605530889496556099604863513590037383260389372187871539851030817461545254693154393001401225505419498324672030170375759432287565137311522928302747552107126080668198957424132785735586995478800369995118639956063468168413828137617525648393942666167299911867451176243864595546047768366368180939055358778390360822242372385561084550238983898906942125299684609289453327487130289244301424316001911504972607618091347789792186372484233234800637165936281378504736058030705423073381073780331335487454773058805085305084956501005040162931270942127895517468096372655950737465726110614785412992266809157548136790658021075363557535799748386590072864128981135172556755471758024551439970386132227302288615305362108319251978070090860370365231819169099949740364283562996928761867631935130144450614004210506646932223639888985006592879985376477749968109974764487686038886097880983935410006543027425872357792143425046268050121414502708513508726253193022218090926506555322904285455240629217732085973858638512783081032099842529281307837547118243482196663235519016050343029436864267084393974914895986235316008220895162905802922460348718555219646731742603550899287037317231817848528873280797267252551335734338121378091650443063652130157498381567194400508865231168528465070951588381189901743305856880676204963886880481043438241549760234704006853347425478106161843292144161548959357815822323076331477448936948821020423972519571738545348752580787545109882970694480252601621468940934363392540399874875490551354230211608511289125780367066594842254521645480094791540633548761909706367999249885046073742236782426096248355090633034159374736751515769117113597955975297917647145162804697496868991074093161778664415996929171834766104437149857236975989197018601521442885292512138969293513633314555236206980526022668265280682030008423214398643587015345931420335001053359916313266121162961677703972562161662021736997422768486668859634392693754316895092590312449841466753921655691647865668401883610400283232639296013934058913126206705184217100877998173310954730788837754430740832750728357269581075031551731132560419243405778856930096566594340805737832023109070885657029226935946356872145599181826335920330602403857853781348526617744727846343166441776924050527368181741498351048931435896576837639450845204502002191990789166184484319169530531935379470231606911933481285201890982341123150542794638958109163583669978184808056601087981827672167525897393091582576944554809992683765696889059838613705256887540014951546647037476631033084221252476414730600964233499416961465170723403648340011109684399561817950625499474643321836292846729955635598793727627606066048178750504526871355475429064476375877087372153725332581996748436613495319332369177893338127212372923216633597973152863611077057845882834958427558692299949746049552775304587229878809727863643276222295668738140852309866849284824749650790991338373885636619180792675138092524737758360822879939286815923135864253684261261661122611552899952909859993396262989315549623275105159586312665498119034160876175000794650594658433512530619167764130657752523552693913114548435133050046893183435298112808054225092543878690273092143988979373900035230982510819785165199325378611626768780869797478588338134255915521361870839605914372966596016645975024253104932711987883351456402940042240772264903775963365646594095648874004048228680952962355876574785981757391937894258234822966738797827176224345605751460737918326420500757551313373870295975472800167293903591050617162777385454705384680714746543607841447372870302955578530804069023858186945334602569804137829012554452778955515065228779462432600762183200071669317956755555173090481687613477814090150299806922228996707977395276441508918357395841133677887393038317565331875794510072439379990675377116795246792330542728317746158403522583586435947861209348617652544109041381489024660597020119089809331071247981267514540501427227028638035749862043304335552761120375704335968885190700299089689289358814202767155623417414004845916633516498728268338805203723136728011816450135926462644746742797656931434742793735960165192478679945476416316632964842800343191326842897984307944979076247278478497146431860062618290878661763352469242250591538522448098252878693174895114166445663682511481195925805830441390818792662207690253793223092948953091461237975891256035963390484510333459176475363726629544498501675694952961280070446840464227611050453367193355128300771170913637598314293387814686445617715291000973097397779066001023031944247014462841666750866445920207434907407381231016144008452738152751771287221214920880873056014511066088498133997893609955509760682617682047286458835336067970492680709291186307217840796561920312316629442209615838978251335489247153644135553627074198081997499992144613520527929664544317470110985226262662772289660627191102440666637901867823442916630260201424776823007947678852734342646437356462721913762161174440483908095245921610664315449594453346718412380065028602748461292999855692702561567431687130299113624593349907265989891797567049506936727110499277697750545462522456894629000752134132500062305694535148790337663613816191340599444642348394444988597648384401168012600412120659368468973797747455785506405705322988917772805837856504776293382765860704282934724578044320098725410706093976398222177652298863012176568146976178787631314689859582425909686016563427819466403483669753574278814699359876920207914734467381081550758505384076528579453828719216090136883839739568090277560907516323750080360155735201714420475827428406379452223809217538528179880864948705032587850113336268665509799426208595514137330316186346450196717681790602423163937135976843284431468838722445773771346295464279402632090291122581049978317005159204361408400945365596823881494674162236707413892627607911242580657770571775422571846945498611683926555261367783911305680369538520973342565711881861977212371076400671177486781864522200394726288657779481004728051196994879775085725854229018241020927788535004843678632147541482612039471459472181409308577363358160877385841676800417917556181446407752568010208855163447897998381903920595349624956061593695360217717830545627420092400395207316662989065541910643271232005072974140023106828257036131397072314118275481959236656215210156190979557138454482286228485745899421163786457235124942241016744350800790686091009306474335885671581451999660927701402813283210110222821565980089417884330764696085684466001547372897303816138112624671341798878077976791472624090812992065199475281609103260363665049925584269047635659052475092995701071738164856537922178844205069673587124427934967194693331239454197997665432928916725267217250413593883719464955433769826728139625610133872528674360412931073834379895451370969711598776572331185510898101760836190945170534414207573363269610139146658730962090339907191719550182096091889878572409664515300611213701255620171097178054384348752764114247173382902196575148019662894857210860870382544935584290597983576252962388106427232739909083462089022101525372681780276008615371743396053484131165088494362564008618102052608976035788593880977770820439742659687180963238065228687792455174332106099493531409722322917348095950228142150473136180626351169395620609680578953028113084126019626611765045020957906309112323497522446051346611174956668829719889209868818686298566164066948773267425299447118572802801987906532737871951917726919054464032901931890318897719194694341196324177221906612376684835636267859621593035380599819929048449361547760671130896400324185309687251581255157350440514689457560561661025904396689959414302477234983946798878669364574127363063024337302808255325980985065875372284071985678272111858650031948504659058251082213339294015365968094555897213406703828651749780384221044441545173014881143473298970497968510776384698738006100792492520030830197442368734389274354388461838288544219770059024183408867019839869526143086130343064366201790242666347774535182903253577924740421695598720518752754527444539381352165129734111667596762408751984841080117928993561122536272026832672810112675411867218664995385807602224854246331797203400715688919486136296200836249823452819923521484357668589163918531939940445117995562050873594309259701653614407360535863332465395952973007575840551935730093145016431982060177923224704087555826775020693989363717951099924892921940014117839082781029959635577755406079348647805803622547051709056618731106132360453503455997838613842482948448808788818007621448108798867442230164968506026462790562401105895168689674117093275287391741704873915978782075144456598921122724383936404866063858008028648482167485609590934184651253276774834143173458717432952925528295356622548854530240020743720798392070710673710703959085544211615428100723741325439213504359734230038652383222584806699734612960410626019436259582473301860147501750517814785522893257804813438102804199798040329656317238119443002865863151417463835146570814703954682871783414558072391687916754838268334241976010388072180083706218224122697585732876649212827815237252107761000067999718105738820160675486091999903479944402662467915081323148484399988281436292274129913099399604291825502338070179910962538335847961756090116193098990564337207257234776203158833309905321121854752030398311677303951672738632520609134570600385140775123662885241047372727504104478584968485068055045111458640682085299807875604827534976319875251984343993314550050090834298651844622523533273777693729903613393957104409377649862167257656612814089373780025876329106976390101464367182108556905998724802287888697661512122261109543527165959557466673870687129881947656494114899972090620560960623639417983719848336443467122070870127781385629609990395617153758520352061136121969946861987060031169212049089067491638699975440520240912420223557048305858326447802531281102038875614867584539011612623420725699786727360811791926665255935163976639819252003093863195560099050246009553067269261116158438218275203412493555644778265138436747670514499851041402605737175033458388945352845881118684500112419568609676152416222157919407435682017255817019579886181921658967626246458850617670651098777899104146170991208348067423298637309368474466046867061643200397456218785624032802083372904364455030561679693451351929884278034583422850106873774495222791313094534308087254588700570381666849352062404781077769726247518659966866387997446351342089389784904668616349579230796032468769377901291944544223289776588195703162870102263338765304228378383167444452931799931531539078979909738357757710751887657073966834519408559877888604084834042973655256559847515488562575434082197266841961020905327023671160575656248333739819003683551359002998284416566828042747145745616293793006208814536971734685732788899515472869033097768591502461338474967581324586223469104344546807925649987921129417641518081854428719079082796734455389311584106691054881680632190847026924516810201393052962744105716149612488980111395545018873292133864800521317672269759952879527584248249089462114425348606273440338782743433693966288558077947197957666403522365633673421910770821822125169086713169065796089761264166944814422232289888345132074342174778923835894081054106039307085489422073939722132795016825976751907084072120919397703548362762144470427873163960881141684288392006170602124632444139370049357028261561990392772926818123533535897231780385631413391881754946345108407258482835926879161023005353513439462713213139642828185302421314092884704101121288187173418571549738536592196113375300500060379282521864853497403146012328990476953808756275022012518965767477024983064249815982883798945856030369277343886224446473508377854700945138953831530873992789133982924776340417104272265186037849369933755651898049924927581853368448751752094224484574183515921162943624697329349587970347978486035476260916005422240971919679876932521357562639957090878345273647508984957483576119490100630605438132914768189034958440827668627754700758220381601197897195042362771777451220420466606771842601151192911120166219555712748736935467850635764412819496125380797257635520424057316470437044233044170869084425544616884360806157494514398813444187087914917784308581838474992515583838512753993858145988780429585296004445779734235444002690297747192549940594980444218974711550817439326768739088349317875626672211823346587421838794767812784681874708674552717115680736609045039023871097831336845418471580017934305842523470064973301545650392383594317821541715467994544505202655976336727465634451860159257923854924422944986864481047110961819224812363904657804197918597408781909535752678895672897319605605131305611658152726878238996893225744527195472023618692453413776939298955563526977859543013250767020784515258240641530469225310654206113911523588989811397361538744428298522114521859286516070738879719108503966249538352166978650134427237941997265495576558201939948657930078860278217638751302091447246031306772358520290313163323097431579172589654637939485420692318410165469787536113107385924615679109385924771255313522276362833821735628100459372091175594039292590970804627880348801660013709809678116577609874034265527955875308911718643885916519678487080902930329752876605592242087895772760870018360091275350654444168326733621305210879419439530266744283699550118127786455891477197937719093478013804119148795849172881589999395867741809938186237139441021341321981056983711639098708217568039678273702760979940064882455173294389918621690348266500027198949048642840451942718563305218427334040059070879638166802438503318921265341999027415948707371556306515305682411522651468914761133655371258161709412097175186528228915803699434124696094318327412398598253366568172528558124407993705749723984440328228685255255314088463392544784714613375887890273691968961137643965147463510139268338596179212113559629259648999998885943142778005004823429504346026808346127972984284753658331350796036701529549359072287286052399261416690922663402459802873156024355418666913950879671750612223977449078584953420188746952607496018710072900773549123481224632544820723309983833937209454931419651444840638205770062144912871454269732302310379330605628221877028876550631349010782982420392474834989003764382310169357107888491858811647466500963621369171785595788133959656951036525813824905614873639185447379301065640849922367931944073585671183682428716773274305828796474588442469573586897262918659348032734668909968250228445447107200516194066125693093493455135871122750075148037621075144574063016893727727118370953833921834534345879840006863478063036989333914328639138592597580380148422508524382782625640141531373248133116913145483440761177071621585105220364340100144298192489053544728736414778831405147655904475543203221429510286338283606339914809974066348497273997962758938934192465217928823537035936945749510532243476636501063367079460438129353900400758817397639001755406004180176745910620890774619870887147251044742085341171614138861587255220024170877838248514895779884561998466114980543617589126234423769448899536832662657046125089558341183881309560112848606957531921869075524087754739860929705431460146856428325601616677082080817876219028895358105866643558424062763646281228779171668526801050423245382617101980323239870455900092960391139337055008021575921573192915156284621589349302238114425955317402456819091723493782281870167010067563194416191721104995569768081569108967606063747774353142420640844872693362677624643514462444827231997928525872027597969146762540916970911558888542701022560847022510725244349552666365744071603617615500631038396565982021411389543949015480598570018367757926989279671290137832244753816817941480370833000720214488502191309841379280011829108100465478046853379172881222259348704704508836449031942259202725160418181538997037049306442489046671592463086161793796387497089688686692263514037837065476926328281751355388553221765715029189123572440139330122502899764878412630118545216808329408869559284841810751866014593465617626008953747735534931413092252928859726454054575617463578993659769214855043277332560277262553062894128912166577780669125919598107521707197850782724433417767389218315462112179904692710332430964230142396937136949772299426784156759452601815403004124900181722255351032496971827817638239729201837131733925144276533083338873770868428211548725615717463451909843318846339616200622016252800207254961894069800005706522429460779380192224157382009094207452234634028924499194183569364293175822961362862667009180732285007846887077660280585287146819065666386654165287839648236569596177624831514464311135687854189169705305347216169561027047164637552713419696556445353088934927176058041711266973648124767927547465550132710609948692774348405201833812044273657087385907628285800905144489159214465190187664743296072874758185112008713377209968982136900463544384537394186126558662718080792741112341958304057572193698941616730865765105039565265723618715054037047266237560081592525938378656108415910916887933775638736328377934433715637462472801352010488245416479305816476510198170628964573727408653432924438857895988265083086362382842575701519306850156563874759573908593168568968219690365018127186816981117928913272370638692334693270617908524845134721370138774635745401907031089170914084687297956407649777179891250694976797537481817335868425484217162506248128753519168476394260098868377208232274122042298813993670126769988057795818465156078195384838403307637686732243709542071296879703181946534017963741397214649358318010146697668252656020116511461765475525295433337190589782509279261573073699448303918666064333741239673827705433377584840201668042661722383742022120225095360951764160178916821173042949891119298282232683145538888188839100583542605212513017314039788443072921866198660327088691872378359500241116065990758020279842532046019479122258029318112420096719053644028757492276909934453901679564047274984790232548883527398655759381168652295732163307648318231879311410730371250400882182317672843324377786602097362453506156382557645802050017347701405280682868949014106500428503245986828158132893926680443526408754980536555897902478580657339277927551519620762134546733133043432501504848918879147457314686224701887262430852877710652080685669095283314522893189298365716380097574500961653338243196047704893866020941281746697487642101587182143807995593920589302564192095738737555283706500968682181143756107369855051841038469056177199842035193367770296105991177915976735877884451488811381097840917543915115643217040992897177593635641847640760903088014493105360614613461415693343815990540956516974468334348315761242521476676912917214703256661237351861919925811332550500290436191419739995495469239262599058099849354619500543740035250659446422805332522785223181841558406767800674786096698002085018775097630984215670143800873174366526429204634373538575550445088060944178641897596840441494803095649855090947444909910495855504640839718135327374111194226005576888520605874103279769651314761375533765500308334859978078236888021654294934356321506333851850491518678676753794558666647632825633718599807407079071780691192264653006869179865627999940201411441583646579474203574974268147730617296266762974988185290074158613500227909909776798741855419489952111677310095768541113011982427817645954568811769558012201201042416588014678446230234754898731513858995353024409275698550696838430536642167061471147913537113256008976274891725864292964719855540467898970573632822090046609804420374772574474297770347294013437807297901682762113287693718411960516149288278811822391737276212138767361874843515444451709271223401851085253218314602977198446851057848640607170438899956054447894553666639249487365004653074979515098313541761884589944437091083335923276313488172663251901884876885130183362152718220372355653333983277041471546653283805904906767251650136158390403154509330477349507072957977854010132456596522852385957892331602591858833629217921671099269977016703294736014377660816506309254596401682013888570422150332174868729803379862570536842987274150955237710139383599796988766154087128333486495363426546182580291985139930828015576617664405846911174657595611733774565996374966080301951029104243517855625448819722931770732179684798665497170066628846828696452052169210051533445935519139113354763312981725890154612087336038840538158647494505882163470111511912301359587474326503551558656838376882417412236937329856064958809160448589412830954538632164630598214694062355207295068414478530978406489597288100683629454269575130366867521249469393684539218184233453181155500179579831294449555198180850369012633246629211902295550652218187075612491028974691676532489888596819736564471502911621973650082432053302371932514108148298424719123115358360475243120696011111059773632725122589854094201909283719030286461221997234936267245226722746224586894693953113642037068540402927757497321473948353761845994619461612560417804220109740921980991698335067692898567990512111199460059209219028613538348635868772435898543900622171519636285478177365773188842193518252740305091259831377924399376577354190973084662289813808883851435519821513078233708136272755204266544977992435862481471808094902452406875087306485495107958636364347980945192919603464183341138042508278993372753744204226469262232471347682693046574917751707690952981662678887230473415342834899715906524468181071921596636269143735772337441854560598245810193713394062744111734776207760495332988644044912478852879546364949861321112200408451127995665715469571350543942041577329181642430278669971128595268468020796612540253738772319395461616256370833594493998464641710334059302441119616143372770565213026237686712631168944668999954516320246833401890850817614583610457250801258119823674269358766358929221150051344891609563969183757911790659398186256351559274202219993266283624697463168143124007852329867402555825008328201107161709209766109068992603555037170596061223872045965662049021519883960623253636271490893500385236067470309030671780993486108852554381909832521385734680588233055908183207434803598473848826062660987188983006295815510391049448457403795151371441480284818333856170633827709145706933262954197981353885430211252423396909425928431073228827236007884514332583531586434560345265998819054234440532519495775330393413812420176979453776271298033236896991510571574487602463018457715928952380521954195767627166070549036615819781923034008577560332867762688983062872840728813119185280972823906899512582916475612980258483795034123868635540069801751997517924544254680721876051531379925609154479013722708091942059881352777541820550027490935694985219318053597870045414710719841998069715633963939604583172664411993034163250382536833457336855739154996213495050247035083249914565893408045066427824722632060392585526473353735998428164508401234656237353583385062937732807636180773282277605365252627562025254159139533123424184317708200682683049692721903836872134193691079690468098349918877402555089264440982728247670666274772270482280693125657604793719126074249462071595137006187894728377030608840997680366983134291968389367031268866268169480190831548741714122527645392253717360401019143687520574552390632349375611232935374730165561640536439356752349780505735172056048486389550273713226167111944394510833370366579600261718010257397089287689547408885303452609225366217971266268206032983866292364390296858383620158116236125599371134106256103693791828253883484393834037493403666662604600257730803536804558839368441720373043540478102593370027107196924331185171983439592071414666732620489397328729933821080759043748400359995633265281871385448456463713931786525213279393961016546040242241996845979931490896258993513071796359089792579283455918950712872830458045992742578476047345347817177148645954677892610459473553734793175210303382545796113151207372582136038148603403475000958760394945448612311456164130026898904211081125360985964990484297544339000719276343951354565750490393877704242425693053846417783485519324046063535480990720526485372776233745595288557498691511528792838120176591094261994458288204409494234346821319196477281233788849511757189518682840929247955078546943983321634937735019041493166324818802063390593848354029913149224064520011203212314368262006427128543870698975518074763345508345200353456578602504689460432775610346286420347523719706861873491000303592906682211393226349731712851913941976213273343581033986694448828754394216134685958081732766721086054316387246269032400107939258076837246340134588332254745172049505391952451319877091265399961559688443330081586294861956171585041372314005334212232318177468976563310914650977950889604822313707902199534127707776485821523700928290990117986133997062061081916040557897444887626816225841795553309233914305810519816319744768669556140675503684603578912791709361583817363626603295706796637797531910820944454504848001481748908465308568614324523813345870567009201067129741683753559457838810037581962287453661147886551017486047983495243742606901480948300842446658817973776019290267446873471389976956558917331288551860804754734840041095089285383523165793365020136003662487878282266736793418469182791789750954265746200004677451731341227568110078561684646126123760372844454530810872690778680006350825731860204219041402370702593521022767887654144529229548448520776951420690966242759769125526688145766428947035640160033620118659634883514203981563686143468550078191904839409768611016407456957286581675155394727173484184659255064209273382558835079896329265163758409880823711118821620556016560530099842866343316497351662078258217011139658363045031551484026788867871534734547480174795959361662662045078735997993317883496468511562497706641930696982108829839942250430117244092958308830039994215534482923439566739084770479202386946186145039297478227816963863106392895822359173994283416295795755431496012299850155060551849923282161316049430666433890600956687602474503110035417231524730667621414839254712263156594433257980321937343493926148361748644340083043967932809824160631114933781321230484250357325845617176456513675620263401770257750219965354341407080843222253688320310050929646966667279799181216169564218329341557772077263021243183462709822381308283138480693021587365359711897013800450792962882009465047881727626013274462430834098783035056519383540963027553983536599266188427913314202823120870287349517041767531576625281026601504733724613705734886486857477321748105084970239442653554089642188586651807924934452139717902203606676795024150143244204294075106331180921845138035448065169646956640451925480944313157511804604211911672809979426552582433698198285356583966250749052150334434322679865465414611630901644545914907591371710767433350512915236279915303858902326090601105522490301106341564730480862344033644657508899852701797142027044115521924550993327083783289973980063849008068309296044293536148308342008552171842295438483698600027378500837637302055348881171513134171039183040512993658319325914607115857149913533033655182535563562112035777769718362502419793895673590612119632901202280826624261436743725123945982680351713912175616778056834735408607129395811090319849430939265278889082690579779955438461125669742248471113121785329194768060891770375551096903963646763781313218941298318338167417965836776092389844744373902526978355494416366494449339055222238930678618797387893897388878354360845298357175071084876671349157864467978724861213504401704956289103459210399953446875087088880809921009557804354927763888566435314853777228459648866324982663932413292630607031005192026375520320118306299532473035178664795945431870636831582751249655674692806654390708524065725526354650018659227954024655874764949073921933260391282044367582541508591583573241857312015562540095473903420934862914670433514121843511051886164559650650432695397436506196608378923687341668773799225284138784733229361209226953697104677603309449126349230017881094643575800618584882266760665566851885010186778193291373696641910493011310654911066468720150063653101519279383660488429911534320890477764148454461734328094985088087232998728723716791572007718887370999086818551728018516152784686827086425968828866075557582852532274620831279157174085380755402973864138516037072908567982716010215429513880477928341651614072709183112511831602919606799033093588378080440549966898597045738052655415704424091315611625480056844971254139835508274786299696183991760534997711561835559576627559995583873649739725142055136250995292778207558200760223604658463563736785689655155927623795117911911504048595710856928043453269294474860679448511922042425569991982340334230585504432730710115971177510224788814051612080288203268834078808197047578284638676214592889049752395920451240156597120713934640483944101898121660268152602591701798347640943943881171907648736090119543642596103903414596775220155856978137793347920103472480137357539417142489191089807926020089929813707098074564964272411087263732691123539876686281130640238480220492664625825855478413366068599246047215444943801020347757901771719794106733206619884442033725660974200672409061117501108813108673752300911119994637847084151357448623953024938992873811762644083982564716494785260811344488149642510657483640754843896732664442893490994439675670930471013190544491268687337210374650568723166415375278611147720889813961157454213080849181369849211609434224893495596684080145029180055126054025613293753062849656775304420775390852235032781864751751550206740192658319698834253940162929740745074149609491536123554753918396931820540126182718872839156627570087127014804667047898668790478002155701758832505730634379701840480007347451337426451822727333544993565384782980151846328777266284794438525700447433452289973343241869675859733512355624503612374342862857059103785942157769570012728850413729136631563326249405487652566979335762590080299198959165283070750727659771406887292453943959798222894209062919686168071162627188131835679315055826311974684433856530725701443962738391380021680593861225299706687920624433147080052754169183291137075314851564379315849757523637547168886113805218452935666959283931560490646044482783383885320912345409196721559962740250582841645157247270040589976528613134668885281676036353150866387118734510554322926564074578749393037592411404982593847583816856357478690717162059583878517134980624098387652266623020567786796054354352358172203344617416412814801928318272894443044079312011508933947717559579049016762865840752145021556153900964750294527573201367881998717065434921872488072979285390787545229405822336699841564011107047838722605720995552239615006808079657318023371782548256520956000556846259214572942240315475205727148819869376033714466001166974962985641981587571399708924673490006619299931712202756990004772990408913841231876054131610851222213339083237729148811805644903037208569156631852527456510605161169018776553327039143590408495243786269352092881402352526850372536353525552189558835682696737592036034474927602386859841377086970278829134082144009512440186998646611855798821866950187087300877472044900673924276645163624082380865732192444130758830889663631570968396801770243998952314693595373867978929724329230520489146107624493507877242544696718288115990818658919683168845704235466228704691344784506277863105409771883337880554929664400397567415833472547003659386716565706375154164342310937435118586175032801366392047791971486084572749033648028530282213969281227515157817461196656065768478228105259887136870743656180579315743866931211305416006032499708973425136109461050834068976169626541358407139544765810398721728452320089191125303886560242310899142065881634445986595600035874266814094181918600136457704604736382550706701395901099584529279614909564258034192872221741489637722231654363115500179346555448798760509097459854855386475961800328152362866483055900188329260311604698412606674356108880103047534837192290511112805273645516081659951561542219627310971815678455375215004630019197176388074379821240237271680426764118061425288217822645355076736531350442427285829824364655994944171830871097264311388597309037302510260621575967379285467890071174348855821725493478775272208743253309591868243215660972589155663990668526201680631637162195472399988590140873341627769484844470115218464744421307106716487522300548818278661162682112669362643619309100005242459530708381091849686511338811293250348457564019845512696364449782101894647519392163727487075564949984179218251284513748035356168718613659057376029195037045824896738935866916500284875721549772514387074227932655820711450532340947618951527796687474108587560908051122045987142942905992255691739341670185545392923011346196493831767710749623172317150448109836446747908114183221761769612481496650970778931395428975367472115742720343830643749774498252267833156954575341879629999776985873258576403088566180295090777080324369120453195064493821503553241169421545387782136524357604619608254760049244501778964414151661618357845082152971383649366172290302416103107698093822215464110037294021342174119250630623250555214069170788296086989403963391192016891336400075415706587600221935649597333156036539670635392015844721125657774898274380844976807139053672504471986078366717176494086085692250880108316249871832409014683972030556666212063591165652248636938061649719096938220847636258050611339783849959276156722397770874727665346476107538056662119572980365656852784924272835758962787286759040808136847141833608019984629251911433052218914364535634123415659619266666487210246126945400525829725296598551932759317244727740372018013465198299008231341372835598685886105112636523352079031712571035387995779259464635143070734183251532437362106070038799854199057619169560121901417240005517589635491973934708505736461896176783238987967375539416075268510729493324419949316511051231536627048982507641542536226388719930255069578794322061852196013158040430026025326221927235468416926368599804505209295248646062715938285156744439265356983629718959653946545350404516132063575045243219514483576748305863657104111793765110234159698624112786804091905038961007328028281701997599311133709990220646128952659840093311639476599771817328507045340182865318326298747041742067151662806388361390030117826595894023094461989697510207202406297830976010850703020519476801567759307682829298833054567213778252555299186713943416614477021904342622166095022732479674863542212543660716804036918802790560189488017187904010869160432707419220891616603612837049234125886823371781944969342136917528833210167837614959777978617825833516495179194530442260647391884648348057630884527011504206207388763152772954184631175407239694232605495878431999221901855961637333176539616810455126273746475871998807585863575618006059485996956084857920313064111958024922170264849093571542020297888577485935048538882111950784436065350878359513036380690409290292534446628632889246187601829504155887396833299052153076445224065630053081969360968367658106815539611933128377518708111107606413777895287945945337267491105150337547199069943841412319067483148060147051418536673950122253683552811404787128358848007201953123883317899462555445589281826001470780549884863034662235048301672751683734308392827758641306443906779691844758057104674774347873918272959260845945391809750749292155870331540418237107045622518969095713923867662339041153602094132377719755927959618190413027889709777168528457622363951913686946433831411642410391842204915329797203678490202382628591705881125694270725727927560705046060911953012617601182501505448878873937749016987528749131058760617652401086533005462344625363520212405655783616359970617020762058574026343718083791236320734133053792492240305131246400987960694073051657957755956429044795770405337633128273767279914297745929397829841731206705752179679196415076166947863788275942337178413649100968565036886758963863552858761362470653388387250036004417449869721653409348536690157371897962772906092326345565749066762086711473004080029159723752553592781957873264907293827925890031649507176500785640697592191537166317818083409723407447120602840186004464099290612246227990805384053919631351072144694790280943919636468317381680794406150123101608605545506537657914396594462167685019974974735521482657052951211106024761037498932876318267381426484096566706928542693739830639552241097117441877336004945934770919442037563241837479164119121220832931072094816366643621504049336461800138589382672705196022970628168266285674183913568753599994240755598861552887712475897536433283917655283257997332616444400099904502922439583769742726825467605969789400428486317401543912201450762360354784103057477705144435660835950231173941254359420196694920413656518015703282606755654335559484332653091789911286517142805015238554360989480296259062843845662499642559371105505869714285287249239882284843922471257330328089403371349311281500289248834877768100422068572101793547994864910107265287861785501855760679753023689936916895803385223047660757086460203966461750620953954489950905369781745771864400050076293614809476302833870810205888835526460135602119433976540931280242406646911190545615410507071777446046770424909810276621170420940118218346567404232333904416553147708396669108319939985112601270437107492624139563522496242781306358172431318361280186109448611468185640317098264305913693324389219317167119444650998161954012807120829890591882660444432462778631383240216591133813290794046929476795439612300927773131568284497903913431801805094741164873875130445520512899906296880843555172136480926411791239470459077973355346217978875832522175956692732702460249330713660899578713577280702053711412089895601374385738363726719929764809450371995892015018704997326212790030215014678195419464419921373852131132189990111285221269372542588679766257981519849781054165520152527053373263058968828732286382850394233769565811262597455711408380340669755644995569583461103723368321913577012996193654422412173132927369255214773059989625482786321404449589154043424177181399673866719780306676694948528454056591518135307293959856332823623049830515391109090295719241103053512604197423872699247135350643002304978585323709877118044871126869437368338050150214084560743878479708866883330109061428163709389415231849460093037937716811739965865529677465106771179336979625569266121380652881577899793920600341071792201212422581910087116325034334972144061143022754876897335249114480712400674305873532662649771469174596387578986856725796594353816142456184528619095488490148374799324305046475521595066582225648373834988428496593475068456654751683078593528045150235797043801872035037675526815805845864537917123149427071755226399935064465848866859352722307762389328781574600334708909901094734563493774001451292849857650958683957659308111919909419103015303896973051404543192543888426296412321625947436687779401000531313797013420831042705799163044073977181710236471030907840464453354450205629193822146839281439957007522214932523882590672628617355963344181349811649415179277654963744012849611492395256881491163035848451678777660480198074746226328719475014697274613184126708539409006815641440678215773818330634732232007978144485790693840166526879487610540734620793280556276920882336296820676961654661633871983604911695237678144144364556730735925279486935574189609036030485859324168099906957288930550436828318812548915976410900864206166276194109562311002496408217009080354182206151116248400600464745329455776790421948335808468720143396947745125910692681309888142274070895381802531145896309281136857507390935334051051948457156531154905419044347649863212785981240301325081513693902233679428923670112361009452227267841333895202146097954155491069497909930168777341712085546365019318081356930664696080006946963568912339872403454963357221968267739607969867892550541134277664546456451723962218563770147086737722708757878374599391425007558138257592701012013045294465328710649726111349597519629565639502536981494495616574254176791290577143732564063156747607259290015203823269739591873964258916400980509248343731736159907747448217159651636591620426308612973538053867347431682174541203985325632380789143593223924003534418773021615188893330248224304029718858217697834411510306512073155666633779374843982897522069321602018013154642210228636078759600613449219789109336856523063207326322815394312848478466808785740756049065754187900049078844833313538556498465500358974510024300688317513140530881013552696614636317955368148382605824534747366179512676255015230346355261225369536244371646912050643459767683041889667559363161887061355133345682952855159634420596385379955451706412946315280326474264177258256124422785715935066358802421488202848271395814735802084229381320698004533177114683994390626791195746906903594715434218146205041159844634394925528407587046012585488841924777851544364428296204229473462533389529602332545610678849202438929167564918495464220069360833423610202077388250877865197494457281238712352168320954934715239214279177257056976612895495730863548034133683265986827541779647249920060195903517061467924117854049192316628321821795045037076753606758888105004884958411041341830711272482389072206533364298414695998153763513838690240812108260204087957667977846461009613354998911468794187787009216729196955842049494341287518953060618622329346856005320167850420567993373807546606302183170263462202159880736946769401229892408632725406564610395405193515331254165608476925473814475950100842838257751612295253298603154165570510848851276635387202354619393299184878392234579411582381987754581119586846372138871387367923925820439861098229424629523920324296818310778644368354275680859897517633109099690594299857661222446820804260920851140734797636765002242032179721237045473317005043559601654177172881833148597095012644116266140961047490886096745401094413961791853629880992328665422008308969872363646123107548151113639775446165417400108737527278251843713165482318837271880111964925079207198090935590836272227528711286834567458133050253448807455509538510609137703095886196055346411025025187424288955736666839991697045372747851784507215645441939788887970811437591375568361182921545738783055843135121284473182639067299010621330919886169164825125522356935031680692107994205623331813287142149914411398530676868122717909666943362443345384348543386296144765740365951611606164618422165031898086707989687061336544523626979815873870844935543932687163483923715240094021816496316457482766559244130759605524953957076038049492598361699009095305489579722344978313247057906469596249222037041164071886268000513208282026622847032173797570105064742513448354745846209688339661445415875617100106807529469906797923079234266453292985615560626625911059005099699736086392397470501131100290554550548537892554790396606470204779189579631269442190799907601682218047008628522663024480718668953154769166687193466870473143247328171718057058388734092599138661833961226464426015914763859238132136613977549578508720781555228508692513772287610787905603279073092498812482892361892725760285295962346087292061638465545551288327581242440178671397236548470575221356227587593444954900905293669167819553056709996635678023990248118921686680457223690009972635019664105074181534373173081028923216759523344506523850854747046888118002035968949906866314995852829427602549555208622423726082835883034767848122517404188223703730086129075090005865085187226768185855410143360287039036151850400493012929074224915837814490134587670674991192102896034839883247269617188917263585765628456735828068907093585732288404955016152717517858849241433693824218474171639333296246597965244363155687998477172507691010358352853446459745758839091107624289762254441469489110073540435275605538085749923221608880683834240273595211859711866041880602797529894705468503883442391353444879063487952949818923971199996280338283000858308282855826558829431905470695554654679747843911443470948484375816706828196730564984352499833791060677273740284132395067392853988342294904610839138918286307790313442758117088074987113154020972320266936686820377883304897966465656312276093069011096142639358488805025118261583497253476805721592209136644308912811132939251010060790613867168610056814229175904011702593713269983311961727029653494131683598374938619755209373380272253683147782393994841182325778762962865362902852573726344642348853652258971632857081327098899875598497000803265261569416228063561445128827708827771003842731649514575424142960637965586805791477131790114166163894655603584757813562245937626111608611335928840997634085628542999460933410522500996260795393198313154941599323400444634459567992485666278446751686593270347603831015498200070931797191791552721163014134787569506598419523270414862892888414411371131847000388553276211934384905733609142120767253615809491389534170956408245827257377823441166971675311706076556636074573359195370434214895023065609967657243568414775930845278401226695710119125217420020867172725305940376808851098093524433213379744012606238827727863170379080246106063490966976489573024564522978113590543612629353331192724130613415946059384594974589447524666954000410582676988157826517692628675048542872719034549003625649998959377908154938423245793985431721167870334393234445038634941986976427676235176059845804593085545357319755962556071602845808276155754908990043537687169726345111047594479359522347241319637426292842842241832961010842535849215754236536182331204472617510910401189472243861053830735566114878348955319946657835943585886436072916769711639802586641298278687949655967293402316942415198208106498443154097345081066865776361181873542807408306103425361004404661783030350623669113581320721402562231418915125598528489918715931063001721015021886433638641348251515801638476552534848858470065657483431502307647768792165585252996337596771167102735150191853331190711220732350186058179953040275769980800648172371293829043265399936692437424564299369534540871689578830759660149098227365810972543437220339514654774232459082732504192146804454238811803156077634147707222792527326859769780100222546438798704074044983181224704888495700514006341678262128365506289410515396583116513685558472494218533020809005386851321444271792059933074908567373193788607694374578502658672573174013001027020048994148559133055149123149572477914500260195166830051620862511197637665795260851422801629226635282282359805015694808503107686501061303968169375347015135611121017719838952048159723654068086554894585812017607574485740181893248247421207380585959448969739243046142155226320881731604198033260946757306329884453858319677500307689164717562243779358529968955883274542833101343283354251111584546666446641458439629161011727992495019493775998365887205041203170781361235530156175778628450547056577782554149605014285915046761305477091303485552558078059577178149389007783794944138726424065186287378590212120448134187358190252230128909639181793641888600574817691315198606667385743870252781989070396159777519766054184560519144486410083116408239647172553701800462523394391446135372968884132302357017751623588913667203581439403199803382048812655238919322930888737511910696450056769247135024531353586996088821987965995857095037732159893569812536084717878188562213404166656389609476737988402756085117536071481793284738863066163436176563653477300001459611291294013099371514760065237052685296744138828696062056315560559827342909034044354045329119391807651019599080370134700121509913168397602988386718047797838444289625212857888979094506824127698199307264411426686643147094961681511569933348316954175862958292952601079136873812404161129731075213259887796552396622015024377681950586216428315326009771622342537301241984372586082776595982672727030843594361098907539557380071930189150686788423289540096726895590880278174941784986645441135711186413519321399655190132225493857480515573306300888096496404064012005358073863604406854516386469860855771030114133238553418636404153408355039433994682088748383602558216640139224375140888889275564456960040553275901688233782480482044085503374679236291354641379394375489409641573132371441651291080261093007568266237946478082736273028285976239883776181403102715945052572530208022955911192571559164682954581393719158838131345296740080486225751016440870378451941503735093475195163278714014391887127914943588721614496194927157538558800178479359008713290186797574714714549553703838058555778666658327872906714679550328849262744097969509350633291275830190880474004861728407768646101761924578260447142497168089331579896229083516357532878989936537142467953491561390040205563181325963740974014960420240914427707970211781686245896726029022667394581601232295349748401755443089450120016927153837495585804249074174955764122084670601022739652464542129612959684235528947092692624076480019742974067103528485673524419031160700542662473222208366849570255768560463724179136758496134745355237459505904784238673615828782605243084852076472987087615787067700223550228637491456426198979682677639203460030075096511867958493774774468301811000793205932625201628973742967117691288034765207868569186190245047709171907052409296441117090011772933349948953498132627165486792476416485306679481511487941647455746424184433172318039921070095923881355766778763076959461207656296931346164940163539425369546250176390737827747659331190875199060356533964571807041957925354245315870462886735920536361416882882336646632930989039357564254957454881671387923390798046721732886002747469498528192242640595782466176108005096124778853165404945353126476598179829433899734432417691160374994191655326923491945235417753526773914637401993369375810411570949523798259834691372855446081508718735127731129520532429929858394064107885471819496002920330213901776798281917095595081458927022697257893010567314475287565490459621405963366319275955592868974906938317448870911877343721324583440001214523397845201398242387720891760640515377026110956623026875580138262642120016646152080489070420693271550274615568878510156594721714329801646060485649369620981923273057024454820789125700643363653225459798561137342085675129190558514355747321530788190728926728510509288774865889298491624908755242455035771900956030434102878023928782088165647799737169945369698130817507328788113207065832656739243911023242235766923939239450349645948667131760900151703347049878284271653757279689197389150868431786098991780658294190038300148412057837317408850008248073288467498422543424787785190970154392331811224203036926998773922277229113787053473959055126181265332688282512317645008853225350443991084153932630870706393016333523339151079963860981322987756138486407507970092770735381429239271966918081273816803340970695004890676412241168550359087537676263800073724400352320207590887300344175541574693422681883545015079369465514989065884915459542060560617848704074275997718272796082949656296132887655778549918649565726956173806498133460741066674490327901871622278193089725341768921223937218175152102606431307274927486923256514340806133388309620644515038810346563879926546641030633666157931859899927319842984645658810945735045170580756106832119274731003294741381165991349924928144528138020297549753930436603276874648820931718842813343716053551899104209968976965300788792645576946155610403471255447338590528276085293215649325870972808975326723137425594190990357999568452520063127204787357346918262505919265098003850700634644389557874325457144413555167075886627626684263162708425284314218674507155789819817059972939186718610600353529185722848484072287944739002230031382559135388400628085259984896642584193211109161779924167187890184068684243600504608980012456067786151304348326684418997688688557551905301175096764087290075079442350155004526958865762328001257484278558152552586951015187232023625228163541224498283976379794744129609225598838482934391828503123271979379913278123713062457407047697798320789687835023492434004198877734668101920482578867959345697848041030627107572184816773823204224571288662961655929005503887656048642515717435304386888090158139057660857740834559954659513693939665086345277472517932637813371486349054343698121252751442846733861770267955915745237005814960904752681846837944171252855081457878900896658316487768003748236289636106211209598039378461541039820201597178193041010179801562110756353273534096793953951674481695102038049592846203377119767591663352211061165655332637458645323417606726557995007721572324042989197176795354575704482340691643152811920713287025080732152549692628751547486970793607172178882538379866024740543090102770070660241099461087515533674185018547851432101185131556412756332305467235712260494035901982785154933992185574562705332018341134054050939013322770030002127938363365523960619269298305366728002511818884069527550961702189589554680400267839318332567584372721858025418771638335310426234894031550800637454795294301814528179751386072001886881970206535542565047338988677966089289906547792036241490850766166856692702614951248762533750269115824620395644580662336128204785790324539032137334766234488986289673231241737232110119510711538532642249098701052143680715768658465936497300003314208627690348529214738818247942608578528594500849020646362703813785757359111519956648565829454931614071836799961694345489687610470155184094015001133287087732914573461173031987697428818047655383052263225071758407305320444363063821151413146909920971366317202173537607050196608092971431968849705030722952678081903445273768597490467473726129081770904701982016740969367107481403223071587482506563831897739912843231018878369629553515948479883386364708505361593704950691369408341497052628091876843044462662878766908143760114830538259552097833266342404278022280908470086123856681446090417216083851517413701756284524658168731652795642762753893892326435482166087762291685786325243105675285430719794066618956583851038669702644285670892047464025503720656209804495021469807954783454101849360733276311484703459988818382484479536670974387530838445260515255327910398001294794804151407221038115098457108567307363050907318567639780553141360302157934756844161242005546639983079512595771051499168636728857083425745186293107607510863472324035371713769374167390995609285877793054328356520686460778120616998341713801933558506641231089892019435286124563277462536190565494670431613320597706230906305044045241286541154872815094044294787478520487664320076254229366022874557815067562267607488104725381360212422719552073223737525844879903540162837625804129953627546672351400194465864048234479461329255957811642628354670963626775123229478450190673472010673987008069475580544903217865914601993304088593468345910013625240927890523507027261719060149049451975407626730204730386550629804883508693289742257299205795703515238288156729126096483060505763770651742264314373834609647977380782676214010922676611199856662524317327750508643414569994320650643474839652978238372632234497787240859139999157457156749806968779259286551409859128851030752181374028504093555402990682099579174140891462999739696378697788654414737747382824323097425560685883156820966891901829452006929600997104993682522788002535368109489395895666981818612794932811928840800565569242874975569746556572410275764609787605399875204000132135099077438835552342209857808287292907786777156405147049522547997932225098696763289433462993277555094882827414233376018961616010855307579357986983814160600116681713212161787365550279918119998100917301554194953407392955927911021644884772380961249445389686088745275141084230012297913278114968371925794611502505464086532041046469867492846418921192459408891965643268961977629639727179619288447030752482333197109897402649584444405446496157008746643645856419948154310502739043533853884726275939152151689345232147900510214369858188481821647715949095397609753461909500889883079439306797249414471336353996296618551528083583459778756650864642685907505411408158958477855350594043319096365580854475270538388899044677337061737972723203797118663315921153417525513156452946400838989662048095345380876549638580253385896863749110392965601547326758716283954292783678615106742158265025742645233143874098560955408845566606691821066376730278426418495001630491361265217293820178074129315214524844262132646375184731291602097801317636275812122503922888808145579544621075125768582674041573542716750614505988299903860952227431144001308845697888337224563081191516888297201508251338446468861852214867533898118781626238236380196918799555231231526104195681905208734619959883493280537571096727869679448934381709236310197102146544184105170032885249129542550293852188205568456356905145099209464867195145252343517099837455378569569082547116003957127257824319430213704485572008193805943832543755123238075299129692812657372251688380195012108008658662824280664099677557617827375176634453790683386744758684598476890879971775623148860166743980720222700827595464660247313800361288808337371779621880740592784116415697244283558005832874484238671832665066462904576780110840926097439023307766365310306000339664390387721794192063116002160145185483742106006128963590291422363652443987242039979892967274884694409034528856219041150052046112195799546532259063971769669043566407719155868596865977387518343068796307253167425917047199967703955777706853478849563525944655732629383753945399716942377252356125547003045399315407188533934661746197059386456266034397989654455978036385946004111400493960512421237868832236345018789067242558322142836296456253142507079691352361816488773475440654952296741186576698141187762493279386565773623940968931526741548088155982372617372115584563123598028398534097007062072026476908270374458955929304221968772788447048265014798203200836318150872468411675696783859214223362105333576226237312322951040707311392575058015316527258709842922522164056925944271537021209585559620967174324183973823694110771870977502553205170049708990160494282980543806095624445705387066008864004815079249244354121202197667096336552556060311356137812837166112707399767981085133162784981299509983055729519127485183817727285862194284407777874888423802552638647275530691144868558862677949106693939479998471484841917615085043468387974552842221258379082855524235935332032416711653530890810448931061327328351750682415902766649914200360373174585206722395091285411196234238627485268064099671754549385562078703499601289028443532654225529926431591296756542355144177506474346059943601309169403550214300545579655715147144827200343118976315839917260858315440994640959809327822129266346101163002372965374313294023171586632512782816524973784529542096640116415064273760388308581653688632355685492472240193798986201797765465434538174356102552025546783007715970183522449245906002764309575957671956169657989782019460466132568205846063473933710777636758635476114233639414466010861670687524386702757119558786241470386392575078606297079769414527335962557676200749672692101355323733066721918213899168864493936032096420824879514969641285652221146509076677219609619334147763310637758850886198440383308041371292382760742376414608185710538635385198754552873575701388571370845366476322946811924556474377124871659774579235233488515368096519176803699665894406356008271179208112954997005893988089673227608735823099212496719906749187012561531192354421654542058397901902840811606415392918816501540183456928578032588543630030927257969438660047601741982732329905959111358127911382813504595899175823925267297309933904364401674142745254989028351376348964310666167592913629439455990149537061681782310484329562142151021845868088367520749189885988012273427319622610480210622946541751415023599128446083699795901108606259808944616664883334577531392200047248075594105565936216614539643848687951266864295046073731403637174820083251873746324699992671844629637817782203443198242545309243568498790740860885582244520069249060842583163573938963628266989546528749499741922101273041626997039040941559417722811090461989158906516893878906686996348755304705825440781678107394526660446501542285232775672414199429264881286233412448140929357271480047148309410665756179957115497907070491411581295763395442693244694807225579140367797823502267871867145963146110380934800523483379623953927648240183184061393236590801802792227526805815137258817479650362978198147388353882791546350829905735071243448924009042795463501117896025927934975749203604996211318134942509344203691158360158147525026355350255711448720013891884844816050253629576354398506028776041859804122938716069473205552432827377722753555556567045863777876532720298561096288358578217737320366326974243583600995071777882185184417145909070706547322144957616804774330219678810416994039728481769815374649684629360021069833032400186822083663840590057341708098051306141482852637352046341236260622837972753716714578183121939636562061826733621391633548972111210569153963081588107293363808398473914152868295139810749876792199705601158786207330764622445931207633704502004867871776114499059355960233100084524908568080949888763191664587499183590017448521738681716626477474999150844122786443337941548402813677721878710755440277427302009839643837423881604337169789509993545998850027498846885493563492751866312903559000909751002869255836416980245667197016506629391661885013427207326469987997531154189754058048070232047962872745410411041659353768246925054895297708183875792606310895006078836216412038501151719173157136697613594243869813458163799694242841694325579136991248763842981169155703054239070101075940843905859757964282908370519286709157899390694746697126917307939044689936000403718675352252098932721437854043880038974028795600666431123349498698835130446171043828793583625037954772130893558789644663161345574963215207693254768229989531108753478828101520233344936204644018240616839862730767769747295513117121981493088956367287387783082548163790997924676923895329246653603958600293613214737771680625202912533282837350570034013492718242999785222760272105518923061823944350105020222970940294263386052496603100513288365007105198764117586114916809447882032568564254991591809412265543685547144438155148720080919592026512676497608568494302383809757409074230824471958345280699833044724809650685537300787510583631075013465772511133393590282379222314159028825721413822811470341673733143612554606572599237662296762844411829625139607168926562997440529424831034142662256754240892101430743452111144103138284066502236886401274582375227163493152102862590289300349526819004932670439478883179488159714793702428068764937843579166215978234620307028712755220743299564631997710447193339940462561823523181719512311879901684774550133715584555771211307146531668020673121476138634217343263835326462638031282273743028101049632129855101023587525646978076231365511775719263593814002701587804634548828980911227133071537831479328567585815302855693232958706836455348032407375703486443621760399729338830377537960413064550722455664036633488515996670701707355334342414922745368657696286498412300098443498053630295023382783688167254523528285620089720826066293731273316787409774848047710318108510520410358166483948880317742647516682347287357331662609682034222062514604143697472400763326845767710768050564202827155758357767267586957764510764171736822647066200491974079994786485637242053866391833812096078930848255590579704786159721394235819059282062011741397168569920670255740398490480844638895950009935977205378829926432450883701643256433228204015200254104679426391600935726060733141163601315020122676332276129615108108850081945793742856092453044315516480031490917118383308663298145206979385107733217250105753119917274271452274183131879069756906282384778935104895651938352995343735189489439902093230788756162835648701608741931561247794016695807851246509811715346387068915046233849323133283176609518049078808392428100101683877495676926168331117036070434058033346535357586119519328633579796571544073601486113839363855556873221648192706980609419889785017929245003102203986526030681639379244411213673764674813752758326766752720172489501704725429459228115564165204527864917137570084740540654910583807088599359352678289899007758780201100033746109542002368020709048112523480576635265997378297824601475115906184083160024008067380984752795085661453326862257159306017878086322151736218669465900626272687046903760003228207476601504480229262645311743230872496819379777374534725312025045912682434222653395474245158764748258319856028034185508165007101800859063797963316742020044873743831392661295305020104722548145834413846894479035186263082517685206851961522617769444309270594498472171565911611442173686193469018895041462749761942389159321163180639728173619643931481770014472671413945699984026878503719552079036198050141558378711297803385133314065150628400654494112053739495695995507632228732976882766879754226938595064153991458319490281224465410896268211862994255850040138580125183221386298404844288599847501789238436589973229641480495099508951442756071913904700070106142531889259312888072997878002009499142165071847094949212513982969183993146514208360748109285873869221410985174992169415485529844395012903706553957770156560447336879175242940636732430857370305184187617794383299612336920530191825742808461664400430837732217784811562974521400393546989461066538612482769627804357855079186881734681396293970644356242819017764750282438185523234042511149419753205590944432190370538866170802089014486838328423811539027448549777330782620222244434368917325329209685439248165983505939478041214817954310168476140401147043282986574075286986454996542774307961974767037399039321124051565345880199714255883079321371877735293676299649553600814568796917782648027079863204254871735283896871690829641240088930460178109840432633405909469781710600987046884179745575129691545836237992715310560641279720679857150656364094467894698881039417446398623914253298400119569884236095777535431527668599691785817829833257921528054205839601229409969108167336161559581092547242234994337795904054711844067165349066761713882074586747147610771536563565554742663022529071881006112529664246560620944586687091280526773524658242397212863209737350758881140566638536999164422339641986348109285845912113535886290211709652767576936179148435769183412956127400794179703493667901469942359383072181298395361803049396696197851828557929528655526799011857253042893606609179526824777810865589739775918307135211617876362101796108461318374529432177463276593557747237425718216152495889460160195034940105456193092628539607774406174903302483863858737921985447615772266763997013417393187764535299768376584720807529288949171038337673054607336204608026596709886126573813308989351917644446162717327981345200442945670178487171484670917652838766317486406226797805881961889700288265988176820903269368941874067120799180750502737195273459614545097681936572002180925692829051466801869511169366004931444085171384415470439605554021509744784653154901529281451873533595698380483108660274242030742298304172997834211909312230883086847593144860517577568777709319003452327975468820423126164632666397659274119834409587007833240378159764116847789037111918079685516078914858239427509994492363871656803805663482922713099169171306695931803717268783186649777198309000748420614170044388808788815840896964121180480373430566280425098719054940368166562986594200676357341636988567939544521785022936329731253217884804036027235576876860990903533784324234612363650024557835313559859649263851466789212219574262434413521903216229382341746770228059747407537126057009071628788713010026578933339629196911432624002642140003725613534503601236214658399130685543162051228667275343602981071060769475613526073675652534367903725064144756213829034788804215534443867917493175295070413830224334687017453955263974038986788592291266839028886124616225559217453967508060186838746613613318435331617049032556761191519764784430702325224397357223187728384621345776806377076478439024223715919954716644743866039308412840524897206266453421869779075833073847184135065855864115575201771447198680554159030706731080535883319802670305585152859554338477068893937866542389636240715844927468807851022971653479914778693766409890402380450874869647687040478448897258242910245345821460503776188684273841513392557308299788814385760842546213478299102396142545802097773321308320792203045766940546637887651209072368735814875094915237553363869396747299847861450641081724684017322113822700589114188175390237580303772476355782107895646214817696808683635649463119670261551850175205831920213974742157012923141746440588518874845364619070726055473556862207949898904792043463268669213011733689771792229363891888840218227408352226432644221515773137253659952975276910953569388745125825144429657437841901731545973182391578548152622860353237723372236794137614264196091310176066624794116679559384854851041416768182662415982943218240598792115722930574021573790822048597520981220120935855596292898167897369954855014756977307222491114027354479362260390108936653660126478163612505462927687099967413315950595296285843692195174799945129967545389876819173441442918444149258220543944446695518051530672904791181871112405849431727794122645779265711061440557658170262669477036909038168344361892814538978944091061053732519985696334318332555693211020447307770370348731644083888371467043266429038597586480271225684925315051618661013799256649076690448636361730949423882798582509888671091430570969869129858119396546402613007669397764801700359720254674763788976654111044418895094158975838326195770936601346214104720681084245616679327373657707233180939597550359359899662246952534813598326116552917320938259787686288259504606456989516998498800918724250640201910352998092220037871747243693540058845079508568571585710573910410403044529875658764923764824181593263872637985876212635079996581953363168791059265271847725165300916456788125268898434511044629507215566496165574821543384040650190353203327227577606644813590194651350618111442934757076293209870877497346183963959837544089884055068944179995548363762045437871494914690783632174894515597134496675009428889634770682656419256206956832313655608933561889450629419327511528549947209952839946169672766083395554811617950853806914536193924322325566758218845345724719863220735024590975187628833542387109149167714498768632498797086454670413668967649249746981888213069659216411282017258527045832691434301033122009552701265629949033028055655199698196112992275544520285355403007898217954422306924304174922280863352953499916876433974324910874776649918486987508533445107747871046694184076958611872751251813326262302318859780298567623338140017821547100478237035101468471956462710399390142944395997271212501524574876069077590238061612130487619770224948825252095188749498463067970433866756483576155903018920306698846916466134024659765796268690264199316869887452536913157120239812156827286799733797674530141050465102208119532062234890818179709363269256929428052777565043077835921307154245084586752009685379231103784032203738870583517800787278298421993285378987547475551783181237077506362068486169998704633261900820724576229442316393396970733777039550106068131543031869200803334964903741197210493146704682386686335654241548379803443594503563788481313634473152594390384775225289154144237205666226055967919607216727077988607159443725148915882668728143800943904218736646146446168049023341015365134365464376203882388617298978267464724379696857633617769636482454578582738524498916229894312401683756798015245410648971120968086155580237714103542130953567015551620291792059761847804322673497457716164214755186394216562066928487486301024401988697302549372868694030480182584960384956382095911305211569475285624892631193279552237266657622382911996337719018940269758915454476532103033962861306529161396585534327811239792247524873615479069202586325125945699578900736716155859212327370473683438646471448209386702483573817762789845716633610595428318802109080045448714600004492327348433673784923710243919160437974818473375919743294767483466372120807576256251944622384275911947140654777830385330910958688625091400445194080571192591762054527199664660064796064413527954431853104637153635693728716846683465420824029431930557855047359509400345372723328784818544745079585153431478638942109467440403372024237111324989176005888725828950681412854630286086852051128379056982172293923339831444331852259458096837072332451550342363416355681345674566128609274059771466405746626279061763644147568966158396593227466214275503206074187324165149990741396477423971434008955751655944474879299370373586615317148319579034592716923697694715933536429660546885624449112444892668604342411493566268278781734933749750406191319991857500855900681935909451648359815568192571599537293638050844997114563744278062897788367611384805959022868098914159171710297348236562895796576673424814485321879359026986419395605241074671184060702789477835186488448453570186330963615223667782303318239012156023884987543867651811340595930469360424006485603203183572437305305502217931237378053603058570486043111233626729105218627618815171519998708495563778640049160091388055623141646030220290615944549350282959948703553800343913990663545877918772437008296762908789614200436145291314061627551705213811708466004108479600014589921740568718472381775589366976106769982787542690569128491992854500191068493314451082525560136458110271195138680350603773639656158878633725529854879580264908955477298219229773917347594685184582693849783479914059838209349977984660637336953192595169898297006288735331092258367444361239377903222226809668240625298233576935390856775207695088774654434703396545889683686345506902342620434137471827651509563250454317090582351511544174181338530239141443612618294081030583003183560460693273516231763240816119060537477985094643303585800386599223175498321299797258549580760585916254042204876042070026830768107749843258957238992439125095297750832803590285817740732200664775195766403963299739795688774692773801032283190658601802027864257824826262804751622785747396595016619694636674293345166596040548177688288378965512181725816437372441361211452273752844438943476248577105901211172859237579575814528718387344652710640541151573834773753562750242998331948799909707120136908652480098607138829521829363053295990939946561881568142812367600040424114546341878690223699492197202359195925998709396537552161256696776153351911460979918576580887566691894344165739417335578362495587767602692004677541328436810963901441857319406707637144465864932630414214121893867745329883378641512616032386199757054533970003474020489996071596426021083050892416969458320788730403309374601076594263011198759353711773839425582154305387021707476330316256691157910425510509229264415248456675134862024181151722201662564140935184816965859931549748968849624840626969933322072328294319800484505761204070744354864655739740343632902195034698928006683000841075444139211605650095393911408602482792146284483224183072755131253746338702621454399344973356454205947000776031532554880959980709840134065607442161345892815730624578547674279353424764590968061185792636860667181362729187003357770836388110501686688469251244606957479241911855872373194577704809381053652673481391561186753745588337021392403482198958200323396740884805278869296463480257364721298422543661265995454881205013413925137355633561225467645455083432302620330445639180025718219008421764492045489412412438910314621763854456207529677632192525486324036808740170822634011051189501914694778426861255960819904043466753873590026096310630388963059297559807882210730399931347579592498182633462343122293482591972705795983271447340843084056730471547180706589494426259847123445596374312614805369527199680861762629759620186090830567429891719249221031589167823445590831761486039138688346738328997136016307913946426060777496159137573212311843592241234063286206611728206174750246505947965989250355592323380664164578771006687888286754756689522533974913930513210943181417620887782896021185360868701436344282438809954751271036634561708267867718531222679842084288863397221515076239594875492446176608152933785344574937366881733233013234758720954592125622329297730795919834904528065279336959228338871169280898233715562219700525771767094725028302111257620191591357078140311146436199131506481294025049271598395812049213015405109330542423249849856798409996664249604605078236149671316828594399275386731427380584245106797418020310823345569273844539828833664671677630920881710076266875804441180226054343692587892214637790557853082745571788401040551837102855351504344452147884652135678240514320804746693461673338418042932257110452083748662706813248128848102918341541747411119612144157076624033091566093773988419100338914189803620810562117898427675938019592872462369231367125963732336336258726033920272739905007984587284645815694521225739406042920780077041756678905144305235962888114570071419048156965631870007553613905565154880780522865343868471575227324064221347485343877567269777091083209494952683034596717238280580362357873634174386874201882465466843711194254394298981559594972807566390705265445469605730250360563321166843264081665680766631271939820146673932072699362934365244758510908918650022189797005377509339021153745959463268207638917459770755987157577530994075031815064621301536126559903135366455419396898219318071933593268126795305370416651294139629502000486540450495925398339155619933468339061402360581997672043554357891099582400919070770418970952630539182815089077999357164300509906716382447455448616543986070256743080398447604191298391532740289056116181921965905633104813611944423110432424417500357697226706683663341301023616347743296563065797033747822194596074394761527796871045648035134006518121002548549337410600924216137829309651472202483526346856608417644219777610102791784818202448142005689685291622969523691989676615321973404546319720179868907989982058027923650144864878113483373865603591432087455536099769595999616884345748288589963934411578352914899915295829785508988814268167346725228447863043116063339686104056456246207090353281940620735070212789814492597104249316123508543915658225613701615805038835798724248121490021353060521298685626022866153182798347086083982914992329021981479648470236454591085311557606313481452466902350097139736098453066237806302436851452790685913015571612635552568319438147615825695951830170530617698559049876863114894768510316063447781312011749968842574202584511731905304084079776347617943703686372050657049709666921166482266511338810694562936272819043278475731854691994700787934808424376212097056060304498838155431303123094678510094263694936444429002542765205650614811466618236348856083723838528095122477817766464602964909543407803653839773030898420142049063937968708323580769882391145205192378412747739482514269651708459359027330573332241742384862170911632228166139613894014772486628031361688775828439339160980857612608759173096358069632054563275269159421138642449027827146761481463555416312544521011119651560174034469340887222429489203093238780660738289331345993036850317536184656528755885456226130810905499591340940514268617652088601856730861880719504470672455484881327278951976423130504106973760172711863160633536764413762859545051560583377762731247172365566057116691781813355065706218274448370915448547019893440401634043969899025109604311592484466370607543373364541222064364645808291341299959335144440175162930177412089843793660464214496442697191371833637466114397191088615220697447084298778000845910914263917544161532452888638942955029141762960284433802729094141192677964366070597741193642871756850730653817827660264209954218348380484568477911222044280002188561552685094454666420729606911165536966802555229222031804750050587246658083786250543310348926080756739738732924877340010132185778145024536285632900132253006110386100313541666836677519127931497556365561246107228387129205067505641928284733239882951889530700711044356674954611078419954231225152009611997934424755920064747744632554984538348059567953530094754278261122203358079896297755672599043590544303057359294134230428409295298142315539306968242285236998928167949513334254835627227761092317916155268545458363089536181432386875158902865363458319062055971999815934636538937758722542669259242198152748407593846334612788440470407802378722306277130245529142977846004259709753924342468099806607474016786034539424564944193862334153003808372442832869317919401877479051385985449495383695861017567346696455618672096052836652049739408732732488527204447367423632341083075959328950215577190528248825585161472838155085243309137335628990925503126709379196050741916005926137255643705021288979466155305104919864760241733374174609085364314614614177243752276113311886977272125144110343328494049660308208768117662858336461363319023389009775971827050164510256680589479786242881520660265323422603054967824407383149287550820756998582767317545363308968063863644832503622644247324878140864428560605561026041930918867605032313267977599150283053603842713597452625320593643689207028967746715143261120971055373786160969200597185318963068195774118465717783173569260277214981521779453718822109587300736016726343095545327729211061275906290665325752108807952124361055728881566217412555591959127401215567726611037503052085587680910145437062520400424766478227496905080727561126881762463115388519603242490273946145630590665996753215839454784013467899817105256603615684158923006537602064637305991623769068419970938464670587162176217793294125081866510155439988423066455307870032602837874916795418685475574067638748372477412671122699140788565004992537556512187609324466599508837511103747158662789577756494040069189723362305901438808541087053749504964852931119168320448360402477221319732302454509148949508920253517936916604357173468945215480210816295538712844044516889266424766775876790292780894226702372162998438355862947934935748088932692861135204383306472522082232688388714617706281069545690343102539928486741415787574136810506786012305121775522573656953161310893748180650490047983524184054928053889555591508267875643045528421712177478006223420061885261853906036072788142076964312029540929180180403328466516208533146671780333750843593508381113478022240896388746114983231949516512394789432782882015743695512842928155882096226377515391808516878327961893413437375920233904362832987481246168086444721851935596883443484126209302918380774229465941843574113602476334925185958401820050526074157938550993950837683771824558921657080228331858380774876463314104158016969579715043358349905831950322476699282577804930540683472992979541492877139488498321408759598666772627210685323476111077722712932533141953161397618140170650622922582934779151485537852772359002109234926139400068890140839551839862175767018720654084183455753474185444362177837568387373713867062837144603462990572370302137618668074708545801771707593147712060447583671694703927240699144517135892587943076489204119993983719813001404915338347288312961244538448489472107181867378940159223107405385831200422127119052781072376539848575876303010329623551632651093731979516374554273699894197600683815502770445806494467154882389089060755826954479476503152283799718553213744182243034549330335173930000825867594685660617964650851775581042147500606871939469625153259279251226807455188323810519990585033321578310850760357309046756891931086564985804267779796591937553278124561565794034920351643888693510687884590978751235162704870947074144724692699751621678372372130236167474448369780323085421073429131140552861678470909480896498018366272068133826919908238278837543198850833374454146615340073215628852489763681251496760463590977750567885020661626530394292736137133324343045114303952912410554823003887694896696321320467873850276977009569272419717959267779949876441230842519024223769770084343970700597974793808240624107629180023605627198459664193717674956394568663607527360186491272713535100078212227296226953300111964634050144528790835451916369149674676604620242359398603026202418491892634172345605895286057158504929882959982989209210095171332262028481882531319765917744504056481251436004521453962619069208789144411404101299643862543774253612753329832838781304293003182047917596136912019075213358227151908039028865123099290820810390885982066464914942465691837036674286797499935646432589901884728048584627014165699150532472052632358724656027463609190634230748616159936118892978881218503632456223553528135635612794399507024328725087424311366916609123513582803386674333253179396072760766259301255502596652952789272400114397940970201493312475611708068643703631068251543902439886412822827620181679578724331228405536955687931322965509123314345887787239196987375709949475486192928799443544174450577336793594056637487343501111771357712639793224931268273257315396283791883167884887450985679883921536607906717974810853874333939435032361896012392527627631754693157610652913725032579270977485326166356831119699912187390556311778040451632086124857458281066560357662508456086306190960706186537390094385267015218066455183537671515751534780212082467329625330931693440692703123476904680388701208271301540287681961264332708113384494385415758778651047953386385631952962473577910970019759978197660427375512719487378888274476803872346685125045624987855982672527694912525103338674674358471097907279775257521667383636544976602791458869049884197285731304500693952072592632219167730251937882443438292019882143842562936041487524437858399277133469378105653036700400316607371372490822030232005110596880378576113590571760530894854820512095593540032880322073434464087757163598340244175729132518386417831856098641892321315361501174157292806711817282553434973657879365421085236171838243551381554267330933076076891096762945602897659923003196757574901826823008177167992205064208843252788946845045144628569200035157419889177444262427945651540676868960095908324664132607319734385906488651084023897600609697160026121289221250768213838351817674396000100733162026066677649196311169802202218564757546396796628433436661098158618942147533764211811430740815623531612457229683143718503275857184385758722090598555501923327933189223889262677637745841181140859123072512698684971377361540255388665037301449083483946979733276534555818401554559079615004085861868983250747518000970854408676795646973872488235650712902037294090354621548667826292512255737876766358093037355080913463146922776500684243710355422604911619779674903521970612503555674532501618158832261247728751856864176305919928162725817291872386014949673224693533070353225899061059702349948573883417039498279087986517627848560282832018853107496711440653728445270956172476961874932311322967906588390875973424050404406020043386636897737399723561584133176170932547981500975589833090176978882335374410795176230907680150076750171967461592850768188816589460656643503516844468993381501699885082315266151297656047234768823138844495574519406852606166619634556243305352571752488795821244857755255778268617659740305541278153636541882833872873121576715308049275120444229980238688704776008297997815461801751739567569056727391097092042636203857330977539184667826624298942447415776365055193831117176134409125147370171011305829804057695454300431341621528133719836819958026867040856292108503887522936990721357023724677289925033929730191779863716772175687852190806349701882749530723945958377551982281918813017537775376321295554874119070940002256738175043500743856301897490800085197971647610180187769934568648827325067071148005743924127708307960473245367364124692492749211949915856579130951593764627715026851336153403929136260765766320172219761849168945761994591460774173793495662616921667237327071416578012607221076583178609340187610997804659932847133099226667387487745818926881075542060640668350750467234247875343948441834163541269712714552451030973716715237253928203484918652631022994532506127698552313426850999565707929508078672230648296468079487245253191400966184980503991034050494504129858715206397223205322873227722853891598993131082406294051446636775398898341705958882046792736487432589370785225802872820210795595310295323387970786304819749995938613553636398508233096375284125513351460358345220824445028894826707082968665309379088671754195312426468715887373546598614680621186782666292430062715504822928309321358786258395048476038195514805374521508248008458441763857237659973494765653430934830329493502248021747046548365405136340561903762658299430428551309875809645392127973403676836920866346556971405856892870354378452865270787423465557430628413446819679550961790591133273463876530726324333683527979855169727088810989489535285283574522419000241615338746407605472007536854659477847945283851296175940309722201464661579064939379047514136003193552426658640844583637817533491933123711581375350172147544161919504399741507574251059251574863357218437554931989802659676492305968714815896034942693535049288917372104755848667045319312930937637632067894260504719703674764144575628041928386358804765947981333742136929979817556536457674217697876568100864613358569333456914850144591036506642007954039056634211433006728420579119999959665688525107914678845608829568140728856166963047820659842079530749056372085511695924594142494043892087266775356090822327190986202417393581404050919530489427781381200414282508039458312725721582844863322041027069139657999817497816341101516383112206002732374519179936384321449309636560012347434562493311622154926490848464732182779720137901572016184010927514923517815037130231548022584755186865711138023493558234818074062993093044255871946407300995174054150392962105739537200873717903441645308045787464126366546897397582166481669638222151795983139675411816822540794164654279373723671949371106909305983623537444280534326219292220740953170908609305960470279223817582318134923859943147886134485652688427838362270166616060944612797881773275679934818453392559174435117194310493142703987181445068140229115305104735828006128811935031888663545261744703031218780965185282412731787550632117007446812547864555003822328210664989400146791306391047476278243635366652387433844959407171500863901727179325334099831626898747882567548918787589275398648624218854462441312483634769935828577149669591615667438887188377418635290766283202831803180412329949124938152637204882751967536127372194131285110489203319788941020913076726704199504438182532873980293677865631530321552707373883211456898070036542261200432000888485765447091892869531416251683974363764414644718775193170973487638709161645723651045980377746882742327093242466854598591270589935124913998320059654135816465540368622589816971435517442508580364303472793238152325343030527146601303273719627835533646076298996682416940597014041858445087428879816381694433013174349637601708523541425198114895611862427565562406271038050754972230369627554999169245959639676959592789769809856003932611989736560867429054737573817751548814011126793401101452785387013383354417046100937431566977325669922416872603797068519340309850998177697459839534894176055694669214206510629916833469933399188622891843808796166837815688701288640280634273132316136890988439915466363732038552062770974382391918175248454016511738670258563811033120397621997565488802120660039352697459693049491922130730393016551396937352118297212397942991264366038613248639043687843618878356483102742575046662682083793753265668306860580389454665764442189927946762992546970076145369575493347656801807255955571304385758294723586793011880562860305696259438088446240183365318474543833858931818876765630419593670854669399231877071186700650015874595084412110428203229131450311113558861212631660208503620817533786930589755882990620333595053291512273222963994943040015105324140193864823862742202964629030873994211256426560207074463859614289211622297190501380448547091609422514039607815532195442661514549240803253825486782983884002759601823387332853764327746502832382391218190232415184156448170620760443740183586292259111662813042824963670430862215300200901410095534178007277144692766674606346996886202610282276243764684415162976954143178172769573764476076769370789679379055800261828502627053834745404677720625881981337030277350390050678507343115286998404707336367189806305847207836668942199854676814263545309581031621707112770140414978903321709252688975195196945932264201830825646777602331518293928071288067294760020158186481380120821876615093848209238273733604207197183688469020879241297307861591256104846812183129571003448149338434119099977242197023903343147647278216032222357918396418672983373162968793425457949334356790045518755134760766632015594872882846835090526846474595621275998757594299989667852477244375038252937265323182122917313979683721496732805041832277632794471980200248174383110264858168796210406878973353544379644122784668032932424838383100336575838520864822783303176148430894398239257001329039730823595803401371265542368123903855154028683754599499533274172925927026991257777577763263811981216562149288638448928834450851570420019308055418009438951838821798491356418049913552732668179814025921457156412497896838755016901660183605687984567499722844541394505996306579979013123172807951819893727625218931798625281441679282097691061917022489533571036087751414740653147381599545342697140549744766672171555138936818119568932097181591211202996508979130499275389195607530908135392758158279209762038778645761482383171469434449185570537174491616238032918748130840144303282922755574763979141967441564333295138085191986373534055161301415339419567456609426105528256257653038071169459608611873576965935195669312006672817639642795791570810637098646284905516671317271358562088485284267357266360425796357489315120635390944066298993414163004559438153429504321606570659086400367381677679087804722295121678306226589989603047683834057028056197242792119057538716168462328361209620385761364390247514410807336071531998509823404931515949227053614137096389742990044171101474423130838908029656477746599046417809540955454988619563068496845342580269749014958618595047701431799680943670275310120991737649931295101085709517896137616576863742781860511430980491866412282976441577392359044327401763026317879769494882482267291421609636866548814321352839427198501856215743241541297796807491772605729089972487254531650075021088257786324961454210831906437442270617293192080021421639421529257089275551744392907905198338253431841064968042249881282851127062701031052851808761365965259413781934906109936401741096012393598845725446504117511612583778121679622474307040736534695612579584801705607239789049190763024347201364172470290317683303434261984268299843516447720113068127228207066665924623815136884990441793978715012070698546253169741859815363120519452140829109197445479764981859040104401411846482331264319183620871984583592096400332954621663017586738963938080941136773801448065679725757642520504658641375182271236298463768522066223183903005525960020943570472033322745891650293606641303312512358668546802110366973692381618330819066628587868625779634392640341705878059257815077975993714983960317392724293302991380641395974604825345547223489919571261420724040036257090551528089945420316205449508714864661593793138264604946237389466099648021479394098890096204240634512159019891639840711226498742543792209938589253317861100984061400666932028164764460426749787714991518259175730981922132855059254316213347600879712467718400500740045183437704452818234740285501603954395492778025910969539042159713449418627708398087345023044570430346903978179354815345100695559161850670739499913947534377805582908286903815471094486721302979387464870241355363057326004357979526801735977204266038597193813971358416147219085043647341594804412188657118412113314706394000966834135009309854872872421762321467228646713232897383034721445397552440947650063028919430213326950428112005358190443269994365641363885530512611811471042906815871542382876846900122345749683457888881204712280108803425492637540369918141883061532519742327324654643210945563030634209699975184865799117353734862028839702100798800029432123755327651606033270898912678771381309461698186323191135444339287692141539310083061085989909002478561468737153625559977962418962165662387872684291597757149254796268839729851021296922179241751594319352912392277035880870351206216844957994120461990604226554621196174046606301663144737020299867169198625242977499986346825176084491356007079360250632092537753911097271185837009028873735811492080903221898014128678625671903831300364708708778250940081754670429519664009976527278844765658515343823351699084526705641123917303563581967651031906313771834145117495068348070945241370292203486223680766865223233601220729978170345452407975126945760668093408836761170118849138190027797445638293275545146399631609273689655049766436331839168381121094632349534062211724454180377998921037326851190857290946379092698125858093875390251332568552533015320668463718383455606003365763976612290310568710999986960159085035443782272016116287147510012595847994127941415852079144906439252702215886372686973752414963574363319404004502368252885254759366002939960707935759034504069521649606526466939546676744174192293524195222697769127867010254375720688010857632754341205742175430261320279948447789623527791615526573168325484797619158023079244777757521104111924508439703682477412239015069850511735789580480484185750004674914457793820313625050758147175620214967952114258778938727503797978184565491533803022776028000421945125603438339514078777442076740457060637759410436764538025323254613336896551472084450859021467876871245094709857213513441139194296712590406638825425999894399808039704534429253642867552660859110572600617097078660904133149455066629789279812037368321430443790652146716502352621672061694730494530742981862382524122252986075345418340794257816930924911959045385890468639811582542229035397645985485520061752892496640581052873170819540527277240662143409344496741582853844465296300259985781638514243939284747839246796117655311486243997612078845780516190376607494804557284114276958576951641179628547856228951656660412337821243614604383505721970891966286701028251259618747643607697314373759481126611055140299320159977791023845110526901918332831096384470622098016437957224633818061141428711632688231872600704707841902527676992517435961409458773987249875348012322732324875430070136868062306600641573222635429686940458424831567692529923749631632740073308769481914734988101971399944447559207591282426066732210393081029042496681325811942295850679443779601339058683030525239185915217704167863988653563490537018007292971660893679699363185001751395793471967167956709267743547107215652742163609421838931032843019335785539432873598671636229954620206765342514648917516797229163818229173596900983838940839110778500945302953304758056839515664366855465950568698589185602227224488683664566941506520893668384548063144745232118024706229407211359865143164845469981617175023705002855620985121060327870310474294899915123045602267660642123857992077474250695530038290453507154733303838753011329703295613464702794952757186508755638215538454133435123744295621087773339222781805224832992660724378203824445865267224696320643245512780397969574926868068685797632917791493487986794287235296008927260023846328125117571295405652982166913404694424626057450697672875582255791792334261399562369254414080344085401665404587653079920253682679144394638572254805231382061390564428142771531477854382903115926511551484586203091068680762817414749744312014565597369576331196581193454768765252266615812365309329615093577568172784959279736637623500834430189837544604876174783222279756034116433825145485610120538725541904766615476096852176118439129806677926172670938282591396320874124556447714960101786735352105984056968065448352796969141469371636877304357177274782181691758123094558313144678657493727215052560874555391539431058778128383964606344680503270177165749368637027450905292442648596384677595684181954032515023701374734085083858327985841451115218021106333768613742902309968398789733277993698905187179673847672265346082339819407034981282653836440153706925555807200467688659024048352733991282541289407718596449498226088413411510145580389119067786824064535709876131303426999959219431659407529161710355727145587284976516421934840746064169480763822925323386761854892844929575350834633622286318795784394780150325312777183412479825086445386324388467326950015840731671116668945724189459267136897832683837221818912373586491530406525115107189600520766008573997056150678311984454388809378440328091064330953562927388313636737556263347376927972673410486509179168656764214272944423380277738888137527455330615364035111464886359116758751676711017809700672065849061833632972778978950170430965089152276600938062556918857208333541376093888281212045932887880133685513518570018849098494394843692268403723471743138688828984990219451691690068210400077952596214791620745511105561487272089612199076786383695295572233938598524249814540911569336658457838418671026428677400214887470974178856034087260868251481467483072494459127605453945552813700494291363932116619588259282815007555339663551164250593127383131533434917902944356580598031902679406190764157142741245929862193155453801413508000849100437624975770465064162433556835750196778573432911917947954448625816856107268354873189670010803218141591778130429212383989267390056587355289379333120798469618871546011083752495024523728660460663982767624516446900027312669462578153265333326870745176712897880083251265073650747283030645927091562823472665636161127317520815060124010464925650156188689107092021025702977146101003418919226110866002377197202050273417885862953674928600223416726926451421460424843949709016089309184382569919241886714855247671776789153894688372302606062057676553529477571436841300202966215100006771378224088926492761336559780780482974113353413294914654823856969651034148284042504031245736332694814749641583127218308973462455082978547900983267558253049936215827016623528224185028075218884316647293846744492137864981703213549994196322218102533726223752614682904528692009998559047697646198004403811087599883757719906064233034072476854681687881725897629834681421182874382259008766566391578420701378639538800798568505504680578136871037519824335238311632334259055565052579622247059627236841605114251382077043698362467650923161962029978934304686130857275249618875981556456004113165085278119322370382082111785666067970961523542419784764881632282247508517867072882676221207856140984366711767179354703379320587865079181507830962793277640080953537608729478754031329056695189386393649553153589738695502504015801154527159496201840885174319754531374511260737392859589913386927109374230222048562411802557079722482231930164388203987643907438597812938919189687067274964762818690660728586328920070453394582016026186474279383833915450195068338843115548130780064112220667354447546230954803985971186427913869451923573373815232793417405976559107464239915297286899887538725960481027359315948638491861242663014286429603634979089627189602822373742453506125954062674367333461652417916500831107914461778150501454481204451071540583888379707489943396110179196282975685600820212245618454456526161781019073149910235082947224695462988346254789127456390594888412698635095584832268508651949074409533154113236157866078935905237299695043940607257186481352152427037378704087290099577345118615393566451280793682761702970636745093551689402404645580306434937344799994674082324319287278880777691474466012652062728269587656169619252457435461543856607835484107488787840558984661463273459885606961593049183635632909909819737521106563358356729545315839194037019559491292748289470460312030126017296642260034794965111294912152840853396802228741890903269243014541570485137588486368721697262661697948126198236304753041485002868654039077773863410817836771264757082844199661493754737557705165546364337932792850989362869707845357679546685422125107858490068778325008393544763206774417713581519738250935679879719870795750503545359196335289103641004189704066478286188345459787474138665882223130830103377161818715563653038628143382126292598711151759230392250424346582784318556493754556385164742432170107109814072543353137321980362351503034573885396397400512401853098379262843650127159625447193318237905174015497635634926410633495296480014960011237186496554443684980076798435942058535573495705111981985241354455581987603197530717104307093806439138779195191950293708178112858773476321924048464661309232009300508812525495350827647866396590137031438221564917316639716006814575812051706868474086112401182212207373946400262972955064764211842188564508607284175692234725018285855137799133587621252567538611178946055454978511679085779388557379728676522091534455109800623849618468314052068029391304308635712834248984293471282038257123858257397383491448308442289861240330239451392976311051750708546318969001953615985909020608812316734813682329726055820573487779555454711479021139477031562448580891843171160395509576075029832238970079362403664708182845945268377918693983695221309993933903483138849890271667535508727751623632609130770091048256713974234726867973144450962391690807162538708617491869801900407171719539436860689262314811159721426059807039833845701448985673812000629390234714824179446263717836057356696829656086618598642113756870873644941625573489197419050397502450261450369509360753274981671567165836217557140757159859393808305702036621909219166474900751185567469136377334202869902839788842980294775041159876585734563400867644431746410010955270413020236605419750777465581429242067040826132595666855215135578588057555350371696419254219654298632525878852960666670433743832310169899860064767723112113851079419074630936855709140297725453069148096025496072522475764951778304030005860317829267479183541710795971590434273083563781568795131768413442364060991507952705493277245292213412163833277240611676039134786909395132056724865001165528038783514036081020149160626221698620932871741634208163904156295341488169568022877429977489938504960219216036398210399404385780299148497084800453880283686117097017208039164764748353813588475864163832997363462029879441380856556824385463911202919005206737664224428720223477509965298584517976708837719531455484591497105749145524675758816599639286776380372842272257369343427484929201450364409911971805844778582091410653234783712809163499166359101052698612709720129305493320795876990854053943652878388850705464870914489041114066855686538421787829607712067832008466943928996537940640488954229923972996201833898195110703247998486376770203286825148865222508902386744878089946016239140430177414181377489658098066249561984427348264256086914341689026309937988395168932500980625824752850898676774749477976700630749814756218786483758270506711373213361255395106126406065829363822154279074589595351065909416257704717859637831303746674288798405792027181530213612998162994540253694961765302324370003586809768485981221406759844218301031370372252043424624912111982679047714191265793363053400680839909139649386235645991688011207810717290943278093358511354206573854989911149217837745525773560959978071285095392855922373618522186629885319212763706141710917504195648583157073844371452119612391207766391526838205261276375887692912906169400651656460823485917032192433860456281272278335599306792139024166555002337012492065930863391412432904958609817655734462699033908345625049970601278758096407677408472898252724937574456634529850273130837117695146938580953008227513684104003208101587092722898502973831260821763633781687083544379562197180290243360010869243419145640193951208359593463573148141692506967137634769026010200837201242229802280640826509212982101507541792054968828518611797729558642127944979035392974335979701282616791856131900543024915264643178191548126689231724605170187397033876290309209842233249998645854759641474843680800236461996233958542717589428520005198830876928292004492877310976288533350670942608597268202183548888618187744437000737551354474667524592912442417373625313894705436485150854644185741890542099746034515969837440392765333383178257398071040760957084825068641472125599324421318822671315726697946551802507981353705612755203804424094366998418170018662096178586291992755440136878943788471557694042412955351464624876844798110991836806414647886567504006627067486840196881764085752104452715773494171066382188216086917574959138959438440878807413334231479355538953404985661836352668495239569823805793075968339083199842732842136331110419289646609199402253559957886195727609976694416182496482184488158401077162529077675829964376203479998769077384092167540101642632695664235657289676120088187512498257702850801906414680455664103078973603943380626993446727781996865196832301278106656852262898839161508772589116489350158512799053911996863397402064612772145829905623242314877715777340359226103122315982573200130807430204342693706251334417076691853855411730393168782742188940677450146112800070801170112291700488806627959262179263472729662080525384367734397590146046357136876828052037137276382961682047529055371714343236079521649517123651649673153899210806019943718087806253204386949996421575619759962031299165662048380482804050014131936272390117050066336447756307011004902572645422506333753280546802658751009273807148902143962465149822737183302014857011767923460179857877320642544643299607929378159845358360266940976358175379786708196605182191074557705369584928092183860885363999760255542032515298243625410443598510157125652242586489679897778713291136220009608494318937544436238658972845544208566673771158884150291380774795226539648078701009145845475048991176562697870317199053280395900332972476856825050951524148751622208493071428895770113629430564946751120383224685584836021038085663083194522736089464013828503235273021940927247259853128397110763711247584344359875265110766448597749771016200534339974573523726144763505645454277905867245026815688880837513018489188884866919759272377974557919093938110175849576606240608798225732747991206134677551816108288423022658828298683733565823143435168484464684093962079007946519167024483746470764846289939497724571945818229272328378978185988391832127083926486408208439979529809036386771150253306329330127066827874690274529665823004810772810877301378401576285767402508963981529232570182440918349744986035246728227511120550560716951738210496737840161452891666729564791947236937781722189869478047788449104789706412887447808908516523346791837186518223535871477317583645343617359870010335844673200637319696745668760394391659813430306251658697535438048000038128523942534600079280722318057725168399218257188632677919171706308300838371208005677326461080784037880281060802769905771136655267151375190409839400768981216752350352641565904146946997371549735288679860912271076855373446478084783511021886254332078840794312024340541921664919394943710366849269363449546025005901588178347173842721368374174599884257960384068852726119348276148149283071045060679085130650961907842949519274626613158873682997020374731885350616984254686268559754017809964769862219839084765972760124832064602107941282461434927032382452101777659984856468295523643782611871951951617417435668203663703364522458242504544973741475749300928074638321008657732599563641843895626587836461411711527476132396341026423568148748507530924609723403355044391320423228618129211945434251392906297941042990049990076108272238262162855795834218700867698077224758099028592411511551544251294996490829137055335960627147442722429857937550412380739051358463938930796370855623272852120865088549561546023993836617725880780138596596594690845694433452626789759014964102741459593351439589106497673566833889788695974156150085188194773668589892820664357769602473742676555007583407258750407393868348540072779519799779974944336764963289165032884938761586517794191489458475333219882224548917952152260367935886276669505031331257603573960755571384065336136850123954689735522380259286507857909736297385073382475486026999630771910445661449244599707796850101566151933973192316607587196010831858604796528828779810629604801816411594372966175106003719201974181553060949459013033471091684272038125882194605784931340262317978684485191161474623732990892536593402866449459699918538097349531497775484577426514422177062316251300732922904240702596911843168534825327056939979239000075569601390831458904340906877449406594686670590576486167496831290821038634439550135571543944237431267694856607898097799535945517391989931675871529060066883871014006525772064970660516225571761855074897163348556476875707017583004283770825717855601471915953375347604632450847461482796420129323852529101490568445049637051471058758722716959959080935820589886095879648930591467995884811162015887664321268393250624030742657099748914290182136154722680958086208206500768496301783478607918800661468739790133316574981867182085874430454719054913173481105255448610695841415021562522425751460822892716598577506400024831044993763730499041848412843853687336089565300189159722815208888466418711405852455685570883381314369183287464947767306159331110730127103326198027754258315733477362878177932210446811340287353767672628064674799464391937756138568583975455368404183443826227194921837404200636719710793997482506813305680505319682842293653773570613637313316242663282287526803031235611862647466941746038800957503922606520328994558756854865810349517793489909768463160297824619096794668868818698672615025280963659551613793303337127091823788769414617545832780346050453607621307340673581666842862354297303275548735413699244938352039144010182125123681816580461592640840979421272802767058377839569976890548782766089072578101099249101686359517942633413017464454834887325917309521304369942013399066362997819770265508488371243080741450501734133531747956872177673841670988029091633292116965810573705357578340909812684597079860123932890953905913942473945204735081292140623876535441456440021874134512679417298837637140054559806162022116471824581519394400254722227960249263768567889041342527884832982359978212365715590324609703339184910325581220951018220815856131993621312246242378495756661086184659725645652108848551993266126440464599286967470336495835672759092050846378607822345276918189308254544314961819537856496041467489511523190259567359169927565753249056690634175619788891860587253610240642380393603372719917630957079199442294383332674094703028004477708248709940555095148727628313326169235478892509195425066134268409781602105569089687023947950875368953746099305479374162411285931767676710558315465468556233607479902664631664328602995735312856301375403490370300897259350508222581069827819948624840054817901377986861791533685970589889794594874832758210582865428546369316586990742918985790733647237052105478687798447988124246452956213481222388036315811692159148829441291993303864200937730561884529599249287789821529797286402032780877799769204838227091825854429999905231188014636467929375744458455907337195283804485583670172606117588074767538018422996867181799595383817880100441041942292793901531207612908921424956571547510501539653070284706467599269853070770010934611878938561882055030807424763624392133366183415558688535690104710764346269399252096423392233037916600798727970280101819381365200286717024750892278439506407064652335124259827263210278480088267057305226060998280456378485020384837464384004040833418822769008863414836827886586804681238562883655163364754162370637686799952303817276442374006240737694048416972378538476186771023900119112328638174447936436289749507813909890865322642402198426262498934733236114738100919291315471631512038424704311938081671794244615829761712424122881858480158378560352632369613114175298423673151495374668512726393201037182186906970756933433123120496657178225891472630858124263622748320024819361922480577114764408948918740334157621875554871523154317476176383648704669159841167249080405845580533782510669481957134483763173000926387366622911854769157631239047970169471964782310764007195385448478624378057220670102420767676193641925024283961634090676392555890898674425927960020415902036571128614968020755474093573133476304813159385424645253773763525640152008807286102913260202856852338107149224069422466655349379968648016070593880861738983127961447539323783264689573333756033705455964872804011724599542462867786585411369128916678163122100191888768034611682792843055526787202971167310048479644538721511664029622673285630421269728637087185619944833092124404159977204744248358386592733052390036968044191389182582029136618120642698690430609924709794850879098772416495343665413929101226723115574115245655592574654243355463803946432529137499561503783663233057534539534912357616401000629625299098928474821091396032898807831341062884005738740290762493025389197568327713049604142845668920901577258785448017736871026048473526871964189289162707824788282913981217286702061832137835708205046512527945468867250527787935997002341634355714504958038915321916782684232005737524157447445870998449694942722058930942095405080167081421736302413819527469070756842749459828902501716997594044156951932882342914177143168664370313348990343405827852311688353390421936491847998604431466809207999087193890466153647866077687220793996872731797636919262272468506005570870372506538497106109093543156604280375276512524563619145074513870130609870306986247498356723909810117747573964156068481855434845993252242707461328430460002301527786990114507199660019479461166390834274565846166226978492332212181773460519198105926428631567079501026827699170871932442410195252203362316391291046706237073506746016314310532489878256805356221537613908557227213226044668757721479428571579167963373139044833667348552365187939832808693109056562647349797841168086935217332521894030468235072782876022030790667160394791118839114142604292652562511337320357293969741204501740299511084064213783400652440857929568954178779624257180749289410381486804952028105559798983677693207765932376208534190531844247601804536450838681982632129724299791086497113605550026864151690563440168944054099994518504920012316090705960747792578328767450240099898655287296221857516383490451096251237107142849414624794833497724433465444440330130638648854319991997138230377493181236388276141828748135014918496994143173516733976963745836464926762276117566526709408952227534709107503118406557343744612615190774709962567366759228179570523257294829475068603389852523146549667590655973146647945411034318000943503243186478270007178677306362599625960402915700401345262981836952774212174807864025191903610935196286518557614140249660107685251375391464639461958480346629024764178590828413154436891073151630985009775710242760719105110471749227281150096899445522586720835713902391305081394894485852928874779027244132418155474074560030607888144635392644454921230726513104921953194176429934216169539096144866252681965314011602485587427258756319857584139900597940477971964935657800181166760749570543650104218324488861429991044001396099692348367016874377318559132368928459181479922735406102337026042071443002221102225538531934167039179246744350735999892273586986548357747799896256551945251190883752526050944629459541117217415852230124061339733903360970814393127903642076151160153420031020912298746927793124131338058305253634656301340954961257047536003016203030008196850464684876389762535777544184584209156369237624061545730924993853528154136386467645968375739628426629487866258440495642388856593536802435987170213155176606745454484988355308209482622132779943203678488136806466802260437835845975747625700005647349104705869940837880119524921161952819263068427367536652117422773946117458938744102070005430451382729288022300750309615861797859249515497533161820494444174995396430510879456445788418655374950382146386391791977414621665823948956565430796276734157867514093965043223046846231888932755428989707932232672447089488029525484205465041347433123154705686688802445389414300199435201226287047267296658065260878789078530655101218416804396392723749744362111646550797166738150385749104112568643507603560499781033380863297528338416334704996968921632521762180905067140916646155390042560600998300867102433245120711087201288306287358597786109258355095358567339319783536416037308373217562194552663790678177885909397451266449071659916656556070720943110715546604813149626924513930456307586006481408690518234514333853429432769412082738341059989167369045285849960369173460079834244166842544738209810855191336806894841320005536102371876858095876002871147342940256476530627876999238046208032355855414489499073240843719388479602909493992751136897588973158990140952761918898982175477372618210099076642948348882617451027189285052139711070597308961105377719372891466761332564617326501629819461847882545467883031505501391568156051964138457876245461709953684389024702593942254380037050726327590472341352906138464165517743536396468798615553602990117885369952540981782209652036511679468688914795779098318541504669762429402847450583323579472271807203975583522334067561867789169269139193367560440355533528735305479259239238752434874528409823271041865628056445138976992188358259631339355904287026230227093026353787549735659899297561022413846441798988650250954660705127081992516285684424304142240947631812357652733168986032254440608894271831658638902605445388931482875657729858394828706799666459566419681813738732321748415503511636466465845799643069409835281352377138208165956552544937805727916554635763006387403137005676145146337131638588526804487135364631892130545051407449172992667227592866507592558274505266349098597826040288238399573787141623338902102923796041318707204013378340236351407915063457896999924758403862984551812187258030914946832505055521584213805977485055592357267651987922822811435548967941987978900299285682080759110983201734155824557737221838387736525708228789389051174258697267192415604034950412149101057815646542527105432021235871519343680050540204135481175769351927116351672868303593986484915791961701713712109182469679302870778929200362136906688744157216832347146182315259893226238154847130201167776322434437759585259295080472128301221556665304565754077041004797399661680833381996184637654889363057556882748003397142388192031961485877332874209299308267325714030178049930006483981456816571882576374234564951795922037752545387504284334843308240244068465714986467185778303322557596560176819322943161039356260212094129091299662704287203226086104875462374472279181611040305337975089754693518587837553990803911260294491535276065698776659006082179237541279262139613764078823473414079190372339784258304133035083092231800500890226906683063864140856148356378302329161790442044560560197893967248629953469121358911883994849115435272269094013374232150629596403311679611100024395855575323038488991365828697370243528452412647335529490263383943430945822951315365976294163745007574686447352110416866382963059687798843258454615664905078498325746137673122460413908313251738834339988713670118617185787671410515789757577454680507628231268525058677373035714413355525933363193815894474271389531841734569905076786860726439635867836562538132930943822250633926692641661481997416592836186684763935607762268714137875535791358636813963207572790745570314691090748357915069514001087034094706988469571033788957014652150375634855283176818719672760311094386778849940580386403363670878577049742634746844941388777205465848701507679131290780759133012818610859238562183779057785250168381079254422948561113059560283612173894602754099819979769356763490650066928897097110901134027830892914594073186887029324288501088208530056775136883923087979072989429802844035054031773958804101981767422875875350475519753382385569067965529085299571602091485245126619675281409197877960392396087837422870128765584552817604857903506834869641168934404474687813909086613161435192600574321784354767125785975393223921679524306293475347071636849149472569565457249261668678047453687072677182657498352049905311158671766649083603551660342422194971432828581237517675376592406626288076987360601609730887757643945167951932000132160535141395382972567452008359631090962166213966060656722322724262207646028874574657943272478038407976471873945742024202963050838244181492878969212594421979998051054192961951525342216381257233828488547481336798751057504074440067523242455806710106274993946633000019852573878185985648635611470980237390859572065411622261469869021453869862716039226066145983381861368950818259074637631372288284985157586519642408811604070115864529990035237724975086836168423507463865360705507239193644412110939529730618233390968784869549342079027883972036596445670303797993599922886135712618687598411194022709416443733499602952190443958778103523550283981532333881629538895574159132284563956089189947636198187308939305405780585831411688015376741611523028970875687620472756779480633015574928351408824926731081742436927162854864140952756526383841494587989426217802958939499999766769465553115160424545777914423030751659526710308744792841534643059135960297851127298198440533920309191557224930714068470468676899538745846831442938012183881971047500696702583212035704735665639990084925560277363822253075978660837552821147987712909372710174210845374839470452760274810871807456013782154671426988677216799039054613201747280074169043951036380594453153716282705678136130184718882064584232327782417330830923824147357320629444078167797255861679647268853443155191499915402497409374703112844675562130463254365381666248938141699948344301603319860161233890613329900628619387382423868261046054717721722648857933778669828171318530713099978541129385412513304013480340874394138868608482166047007554605355154667671348593696144027449961356079094925898039041010230562129930446943824469738912587690353211133824903457178040064661834568965828008474498204946004587051271440491046822591014306412907161479689655458461048129848613994541470182491456290599895308474668191903418144403961396248244195237011333596637064866424984553251763303147492487904068778488330996463431010187065737323270150367935235623400362938143561689268388561633627964077213615655286011534341642044199403417437198160228609008667810135352211172179001593090935178558783659060553216522185127872400295053054311027980225949654015865005264403427532720512532995415600322195748573831396976985151921809300654651231174360264370791846847620090612543338463064938747977447889649493667435388350755981266587755991160630463755345548711816278783230885835896386562434784316236231354578042479291894284372115248810866165240721406065658241154540720548536010429996616826358572054973325454584006047097348749935723101773446409440263042924014688614467066458868497076697630270264947924263209281954410412082242349903739604552674511727076381251105372049401188109196626906044105261897719665433184448402069518060539961627587464516717234964241696820532920788929105311679275185507243992757485841781334729402876453877649693222469809672037746776963943583661216558606422132895818031791050415395533174595811589621124636357293718124127100854199734038619020782365558994347204453824726545430533422364381905355581087540175982230965655046708615818943592860299876556591230135744560761136817042472793566395975787658182248207221352471461859945183124646333318826713351328989034426851732493829971393128453193795582892443757237461638689222335485798535339303589679259826471169059736705576763639909254264083547483233082974125572366347548506373650896849866408660675809876475051095516407672266358233739935905900102604447228411698627380418245760793741233574779080568852642192153958437993447729353742227288634549139332088167194561637484793641145226826344795060994316870653999739123400478529869491234781713681843743052029059296217199316721050081258180230949742088732013583528010866986965466312050563312430482234228494581021337515173311061397499115189576734212765559209932292425545731395863509908545457047287652982672494177301842325607731793005089555310962511088634165637169708830103356327755468658615161087021270337623161164349292713031830509676042401473061535848996443025373670692863209127423935180938635409244594647251334243434822890808360521865435374896385903675282631891901784237659130640316608094322056407027105283883036385122328985411973295708590818032453991643072900856140968166284846567750942130018716783799819607729009216028643584177956771414648529972993155214846722785086311832944836471573589960099112686621809857191619266140994849827244215176815864397648134137030062921040310751541261215137788093772899701927436483995683991956956350697143223284260059249683612107943390608602847975749329162201874151052743685603058091682915713037279704733402358034370710965066552386990065646180361052660955081871065369437671083927507788142644446035760834470792352893802304671738301088268263954055982313637747916577843569564653543228388802907441168169395103663608485728051484234597511675587178169326685945029186689072561098379054354256060833757702266111572130537311580876749059511347283199033867751805816092400364943367030187132726335740010366982867475006992698570951466333877903421233879248000380699516386121698433594140777807184181815338122331630386578390536466519074701314988010538512441974184521325871238940715954638035326828443722399540834154029815503184905826777854688812863307957225624938426450698570299163418917806084714305292503408290666741118662815927956426500226697000510007834435557672193009792035959686016109978334520158891737479470658561472746679570468934687950324184233718816128053100016160213056215303761256289074570256462616149143650550383920127218333083459145212875670986373077352113968403425062558712138303018674577225032299720160698018456783014877305430209644023852192819525599756244936571820912801033272017134690631599107125906026595490184522200270752894860908116197948997101539834060103941280604288091474893259490281821269826250877593585119267245234603631595045019121153403512968112083412009040933426491384014141908134399827603404355169674867410883164217790176666211015984208318213938039441050774636016544855401787480772081708975758604843976232730499226436221539654857377793227833734633608972681036257823853572082777195470802097174292648954834415770544172947244725837068111861380546011603320790128702339152685783698163109821357006949931359647219387471606038253108195622574311266075480481562138106421284005747423456469954667591828146043163518626915179469521905059526218146147487793775533566299746578709114888411433545257847912225514951784757993713906865131214080575750634759870106851341457678804142896306134741170492075639797726812068256591028158621922544716660441698945002875447155937111904748978455124685423301841766623429792796406450976942239638738730102736851922744098556662639796206883805262398550619575077422216986904080057693392833260069099870749409417355233436030575363682931303262851606029370751429124723786880525796838655460116216520424426431891197041937442055202100524264390383008448207624612652331113272411331538044016062511655755543410900250489489585565377638679521485637961877049668821168730850901857566018191537762308297626702248311774912279717285869081663668905013780074509862374824505116204457821262581749077972749119219981445472303317269810760520083267921471725514410917471246038381827500129620551062704627988269734263863261551461428180720869151721555686459271373110919254751502196366906435249401723111995085809253627808974128520395179583903880653475253041260535315875123312084215762853621755940159710654969685348989102952200272231156336395092900032954344310795585559564953632440215829460529991773324704964212257180606172915182433570808355130137878154986705925474183389053869219069235975809565505959714380331418260527220603226759494423687450670546246500829353807759979696452175239175574121473060262712789401626167356921464779880397996044191073316567597668798717718926676264789227267365073903594843305521813998564894200356094482455242301879183806689237646090168765701888952907950027019280359295378628284093949915378088616499976091277406205451186057096874278126776759843627298600815444071346065926156697012439943797971296289041583757520492513785268889441560466883013441113786294618167527981689906354517639702832751734206811739082557997842069365230416980440658123249932026765974863360717358624131655095652858816589552725009285080574922263083626740283023359277443424777069833032786704178296556441351860267370974759287038392250223312628654554220905128027765556531226078934387769684166545166632157071298265214122950749881058415728296344197968159779053401103713075625571705164973184074798775072672706262249836628177310492461332239278637694733637934883079361355702032255578296730105388313702002021917500959292093625377854292376958182569757083187522979191688402483443646720592055082918185201334955837488337744443096657490239526533471473695398821425394658119820758785832487777655586430567084238735125226480573878640032927067159599926411117853539069313695655290478557925704257753440167658361429297269880740527168646300082424881666646210757459474550695333047767104030960508785039832471577969026937107559889707332001138593279151548372400349757972083982124478668232183801731504745010950962777628924066859766225035472154596058007433127251482432003224841841708566169813361870217359793307476491399440347425448006582150160380196350779406084660924219275223758197641101656227820759405963596136704387132618868757876056251044009774675196925333587455143854802041858708330802778288957039782558513593259925010386147382130513486276055484621330891965612166009504964101539174964333260591295549430808193104311957104170909215112068843452974215501372283559574188473955663277205781772930482476870747823485523188172973918335764164390786090714903545697132278388841369905989315399099501175987500544548419580191107208909267633829241930538697801006186992673501620883523826590810273762637109893357768860044521571208004628123956750900187578261472776544911041422406893745447804092088588594336888181242523617265747236244098206444100107015524647762628117959478679000115937610002676476531668119177522391532751419172554346316051069668822999591089096732405936633287374833387226907505711515151313190030199121716239616928972526382208899294315742119944380828015615707630121266056168916163303903690863622425379417667994566959030142631354035100287064730464669864347792489861813132113365678519504052192711316006672681318962303357358679966900336974108723131469275097434234200742136907430053930033431414583518119561748239182167733576907432306310912844631984378294781533280303346143643083886613503834194495211605696730548566610934530272651654138791990666474575037235885310104189024091091137392666553069622587173374286762588889049400325631250727530569906425556399719410880831342360060067807791267960124249562484814500158669521389047747269148215309557920205996524404495982859453902024782129317568057078874119939526611497767281960086883175285581745999648246552407431566502513393364943824354121142984032971071568045075923740608572453726328985145458048742495780276381181715545037400371174945670497845652137904161382534310868204165579151711937693229038629728976931980467914477171536012583611718753796837064291973413466833540432416957072194694641966435944823966170904556241838983475697659079087261412708282468512287195206399874338150532489426254133050697369778000084721687341289116342002286514583731120034289387085163536247221080202390454814340321999191750189230737025614428826117514428876265353637827156594919941296366468613736591357423384077262086424638047762724872452196934941182469305550809285857797143208357145403814335342783106901936787164812654899704662395067497705383632915580316925592356708984272353417674514976307705193905290122418671319506338281821590424692019907021559721529717145943472754203990742880038028529390041526230129340896267418472661976365209129812305834202657823427048822334456593289612800137984138781786355945324678908353162007328161975368117298187869988529770276805744269787472775448852502239196975699007507276553662194021047899709267330770884536314234885211443092132366258705806149974657123508959662371718665051508720386701755085552132092723787800404775939311640596207160588040742805397931691278917377137097583515375718503624539483635680858914775871538127868305724313860626871921194835026920996440856110229970394696640288863561374183652370366538417600357246099660950852573710711467959238886735683338388499507786503805568642275587770395322772152365964352440375943978665363610766162791130354605951768236887561035133060358271638536069778390565940267870351815513400253644343778479469625911977446944422623615299097269359247285895971030890798156601155585259518638684025348217822932494345854902158477357450437312379315961977694319821751026244512173608188642330057509556705065055322755712104142038793285589249083037721352910159262121376519365681715392298422168511475320093943557887832399011795770107147223644316555234609791125942865958239369867788320638178825075261817514843477027987517748306030831885352741479096711881075767296459972888677775431217526835364058415006676377162536630932439815349163425708636176326158957492145834519377035321939110771101812760473659168183036894095727431777996227360502924310572039787318481050685338733869978761972798449654919517920712402038985850270872626428409448494362775403638369148297506550165335571520198040398717194180156293181044716546822384443820774798176399344594871815758877849894689109980337971249375469714196558568933767919163233685975602342823300740987178338285801238965213124184105158556696334964447463580521545516373151650696080118145474514516562473280952200938594407542678132339491443440056429800603931559728773245295078450085994010144615087454015804743505612390231832854151613600585616404851290960354864158158317609843709262955701921221142206616875394619861734017959698833155843445910947568045302160064341646855899140713244492583154315551579768132699596713046050282521521433136554865344833885152658096036691821004289360081203886810966013532769986638502670593686948983536715570041276302083530556510938617733851463158518116214738401320551379389885833890814012054316563776625572552082342114950880582621155662419010010812325138473870697340713111615742552637643711584084619337560264293086847959110016305971455553540698772858745101844385658394991062995061463155055333146517065206912661732226268628408786895745674093550930751829052764339900016740745118408918937395924070172146692493786451762920839429627786507017530665143337461401240572418888629982184351404824574904932441359399265597679687815339581308611517360153415016983881436620011451499056003528525576159663953088770124317961239426788815465077335791028946092314292470341332255381664204009948078385347536881350588627539049083509469428856538467683874998618618885101547255178720054418191378182210004563335877705182684245511063137440711034435240892290882020864096277779125630079963453088620250390940866513700687620226161022663190448084256353822622219555654436044764940675353808850990196172626752190630312170405507932016099622391194565188685226131096843409021148831763885898990378307669737361786865007788971707347840825858101957680101035226847523804990129347941251297197658143787813120929477360355564456369920803507243210902384463685883402770457135837457402711740626893686620566326513242624495828027445158104331400976988903679664598316197818442788990423746490247752428342308104429275006144959798990662601268660891194108997636087232233146347223338879491019101474548410081455466742145502118178669606825065826412765446899863786224465477451672259686235907354866896084275384962966064639057419271551675545218216345559427854736211825322386268957246846567102609556007786751599861867447065307226300962859745580243292897943462296246451613290266898200058459900229609707765277840428977907094585245126357976101748038905947834282047794961543040956017815711562376256427361244749234205943992742621789274924405413091416012451059647769566660127856556784673593400845607072734500071557141447493896479606448134176826768652377861358922094518317514541410408658219995795232969766961841090671955968041559562189669113950624657335801463230311375516172999027809856228488449921348320800540432776143857261904872422790524196073903129950105182206772950596171998744201387656356135516872805685001089930179649926640216373766309328046441128554140990987792030081507014598616599609567136702284349201506343536548266865621538295524993897133645085265825516926877379813099560288233524755816712329475834503240298717400715663044408242645129934234457207255742219456483545867787925336782742120714655592490182625319150347862730093325466502522789713050459633350183503568545271643520408981983112862590176466028068210357874579326911920593085013759675609491857823518289261097961619574455010896362422611996122690303768735620794809995744770760700753536122034027361905217470012468372464489020624504568171797435326427198759401886551435603835343263506831944955213210391210922182200061962359686506059104767823421627234550063706289406388635301218513016972130446601677434833973902863974349774274907589744019944112428662041485834345163103302598802030244982554568369363596674127176317513346989535359359036773206979996502170799642906801495864577859100690606254584214845347176248695403434216123651086609784370553330824118855458138099258230448270324610547245449207471580742895219176470003704568182128607263324333603555248397890660297607113812835850319962166284441822018068373984054818365687429296335329827301762842714369526750913798690564202921782661124470784268011580688991546051053380547956461609165417799677623976357083636903949851160255775046180224502960362025961755565938420695321264364062608501237046964231059361205245888013070242766477246144702463622867775672243775732522414975214097230316342016838363468405989378217350985619963731093112619007588583992334640880395273344522449475085711301217094715993185348469339159409215237250710747599674775384759171391072442800628047731081554464438950179037597926184583322315848142481938297338502801747910604590397016551479843583439143570592933096948887316925948009533920744835368347690490123849874620909852820353979079519907968532092378887585895487927617646458016252363696671866877564638933166398030617577099269233454716965435610152056321700250307013562495313115608888844611761656635144461243607864690890323324139987311095219883351106584233239332165520880915282194548502500317692563795476156617839688068172244154472617760239233461932122172484821319597564137422343493931427006066186985881003242202318283636808414752146062570315816573609889925134362811914031027382234452724405663906081891648072238132165924065320526363342001757231048319890372338132058529595726774177180237375891437539220887178458729420664126986123489364535398737358305577542153042755785172476059446019663766272185340636654339867544080707463315089245119123601108772504761240352380150984240536249485830707073719406922486284775410015633630743882137186663486346940459832925692543192486895150824093983463073731820942263755021069889100682693267318324529918911859625213527730167556817197550732069335064763811419776149026191251765397348901527950197869254039244204202356897406392658829519392129721237340743508022356136252651965084502300701567136038150530846085290685013302913920460386857796932784805277606061824768346892682463727816659518026148032509884724987898120844307729983842556682769555428589560452499300492967984842906451651142507581580280969952809607361091653295621831959624983211736828344734717551514023880561205660726189803902847656600901818903123523353905828527441309046713927642684106939664576925441689558370212260935514255857573723097732434038631278999496990440322106351601748713383264418207229361228558352521505582288267658974085601202309861445234285208746529307899933280666158697771273867726359276530166234390555765124618135147261706547485733811512548947875899620627910492289378108522095952314464830841949052887770076461352923617883600576540396802662073901890387743055475849152555450098281623677137826872134141791285294972715258786230744331934475382448125480604015762093672844544244185596089666956181775096326802671504646844685880360448675834866765482061824081454859726588349566675463399077769734153033167438515895897892193863889647103855594603234519702326098806778985351354812881674215199631198463661636467870927857128123334252551749327084561428427991803201860942572960111849026346355162410442215895010299727087588435135852300652396084302457117428587828101705533903322587501183107224727587850512243575050066424648735693231710188089995128069824827956559756616671566783061974510739160545283334788595878920805274407580845485525129235886779913238841887751041968493112184591065774357544029944132846489373794433942066618180980121220085311518903180622264472936092257552232100486219390576593777189923816119441176540760939953203589927995347235958045037932476269378270815955238469733769138795125800991180931501933033692723988959324841282893816235653863632548994057868412262097189315035824610781723187738003418571620148845745002526961684439350173522015513037180857552387562472262366807658576270445551324916329690923073980483637720803787434705142594737710995626788168736468052105865437430908258351101665219728456846862814379564731188501386762204940557657001923910614758280029152105692961204141727939105792456804967281955369542271527465076376939342671696554367352858868439230789591866125391376948988695203407877390093472896986142658594470397575014955891811458947791901807882177191106693501512323410306314762691649176193372413915329753521117855641466743838365351075478433155517710798015790576059980886357170972831605380480469857056005754987046854567415929503272715725366299786182177956028638436549907996143162940920400482460866071257878558685784741795701035294743810345773538003707181799739765052792625865894240447950098965500395802122692342506547698304497645681117093064009425406073225025562681899936030101471896459952259066862945750617584741992249913334437382707154717855134184421300623248552303938647375935695795802030365833741008605237673595832738910856789242572693969111336190277226181139830965474163120389827333270791001177951677334014713553842334499427077775459462027944288286893799076855632285709877098496676603838836308978463080568454222718633084162172681546796392056291365863682314779477315981933843816239953732924349079437962754555040073417150608351806099194881271651096202927766167615309685452806443722476660624311873411231651363363365010230984852637827074422986694637855220277455311605243900376884908544118765044235782490250937130790010370390385269799430857144969723135879346329641169645285577807736634147997582184797126405918933046780107883570424366728674757603727477929808144845718712477744480312557499315723138919226977292949654570257883680251714474531013483034699075052066584630731761307634591057998675898042211077238952773807061456317957318598856234714378758779577666393124485633698654920723614087121530276836951764858740158244720672484116300965682437244911148349081554642642029840030561366104829699538279653787350109831347432809645924371031415315941825084023087762972335535922157879564595208393003339340797259025194957456936659738511541479121209909048533049946434760870723651908399313026649215333738696581081035431662724766720762740488879194666961290553514033972365770674259893741867432165637847972586660797524696512392920091898126861169842169910355639793587345223367916008506382766707837962631108577678850556297209782713412324196461324353433961999996441628351471579638662221850776228924024498490963115022065717657912728548738792654392592878045735291291446784324000371255784819164365073623837696885010599623697673172495794625998359157345923976435554662896275388517087004696721359740993668918141983286453976501550469040970071516868039528261775657655871127332312014898714115118037375097487403736818103557376231570089666700274619319917439799912279692852665248340232880625958040756544575245934668718012751148171180209167602510349336827324832431203997567105589818407804098449680271180498060880947229900896153557281525043284962367726895369396158189604441187827458880293354100791098957709152632402184057797752102291463061434953808010234618665616077116119314210689494577935656820301110369384652302563441521618050047600512310470829446168406391008737622841082714929451919688344448286519391010355032308520788157376518441931839805458591439560608155197786053848185987533707363477890128167832479883148443802424844594485335385945587877489548725145773521315257688885940839492969574415573268699714098588337177399201856647066066947518527027499647672569727194358313850943760147255619228253024427106617020650865427570378115176283907290954621628057505994409140790518603314131691232624056871927049017610427636127384118010088112529329231127526530568697169189386757664724934551317754031032970593941290813422751930566846829364251007180795965667189204613734064599578652309546648237573657905468007443430814890371427284069721729782449829573091144680264300968930415863875221131039575456691724353616116683600246563237322092817981726732564617543290142118244045502641752568031337904678502274367417847233256988612231108978631244729821693446296163783130861299539384397320135413757521213423895983732918107027483275866437918417571083457863335483436639658261702571006545153285314650558798436814736568754946663878603070541327222131072553227868619592398865394562402518880981958112690215505799828279529936122142373307277407946685701002841406849793492358238092792394662444150204478558899938162819220998855945221266256969682682733062627832961946777948963642160298200847360423140017095291808980213447199559525354773225124268883474062253547241585687423223233219248174507826021034390889320163439235160501846087823389122872054575571345454930550047811149393203733057893269100526610926972814225561404212987950124991225428386256167361889041048188396769222635378027246228172670241078176261915313688347293887860476427932445183429597201880230205991444976429658214220531211869638238856209051067523698510291535296783561563241004758023636180475197366066527853798182986353657718234246568342560673742732200769108167614640148405151866919375321802015381488210892523943624583517784880092789670939568718971868631232610413526232819591941786248457024834491321935963920578474922006475023801384828013201861060388830777858803178091477169605266070040276146592486278675741705408071979387460970166231638762468451123164483078222890278918303221700891654175597393816557193149943108199852445518375177786753866827972116126488687355213266460137617512428149276090775577366898681227440402629164977670881289667033828688752966156714003193781719283288695767872870007974266035761028602862000133688960478946368657655183290842539802536241792702343632833887753602621526943587417478009366422133681867237331594252687085197187378330964161689447213303861978508529248302518162032223779169859228551704992353186478711101338729484971451309643017670871399582545192110535290322213252940238628636038649185292812772081316443688595656649454776647606224045222831474451340383270909912607983836350521590801313927564472528854498332893248131627880488415741675088435948645825734807987938732698910485961549716632547961981953983235556752834114594027868685672764836509917205430924186952622894184948668246892481544727688369692831306471457897561513230043933884482691363571673191428454711753788600915999436539842785763808734936092097466480258829533974064855167996128311359292154278842724929403005177686827370547045969968525106578020112016928500440897374844529925704937407674825153798193693623444366755558905383626625408471534730238426052660793929873684039107169717354297698328846015857535170752584202555472841892431141729800951015665506022348607964908471178680835677809081858824660880602748718253889223426322156771093233740335158844115264722422219816084988999737148640863802616067942804407967067762468102449238301306825260525003121728039100280374103140444718796837353672855083039329169757680220279313865297969040129401829200107713298722839496261582466005945383474215291074442387911654606296908531446946747608370218704375076972547810519501713337182997451796266279648074642523421656953886030869345438395615184963886752978735035371472213900395153857503317914672633367402078826141417474280758348478513026824276827329720740484432919101985488427372698340418449657279065358589969620555546839861293137596307628281411708168788415166595570281058079179904664694293736071468506240446429898114956343241352026370199152248158768268155320444575073998894605627078317504966974417223123069744646780110554189404067415042316287736117139953106939466283450698340560603639761342240783841326490727130508521305096221585262275160710826457397575540619760342705129469413760585427991757093971870795193188786737482916545423762115715331820549484151938620123583041552248156635899471972794539725163293761679725444100384442221365877987388042126986123510720223114670159798790739863539991572015818993746011593290001278741085216793359989431494612204776170169596683470485199256035316999228477257285461854247467527291922504840517701843406364584463667675879274720786995875257091016406565469364051802720594303663404453807450176790708951047619665676150213957937196681189951623007646475593147544371015007329478982952858487806930639842652723938583335040449068855611732043364832982031248451038223716113409122142938117572222254017561095148535884028382242406951005943448239330600219137901651636938181537435924072415213864672592085338488431979256417764054019189431460457698195979743769508463593308860957566934490812416273647446955025243583076123671110118705886792375452088213811243410563265282415347492764609049088775415722340288258057948197930013332192714761837423444067792520401423045761936844387276077975387271527326274915507131604265892226786048236425982545588370661504848591702369094292355720656138046354616057114272054334296723251502510068583970853911073839769286880839995487655659273914775904087334598246317406068113442995936067928963611662372435827147796180088375462811985573570577936527940503558181521979817733725814414073389441715771859193113072148002916339045997329661287496699627316009766307004679919399477289336016927763809063705836076204780476805601379628674505914958646094441559267706182729733497698668196803710846855519959037424505113657208122161103520435374580358013496719787600317923678226865714792114986667863119577594251803347213979311447463900244159587068715299391077584650714208015614725145217380072259565965346899049225430356506948646207595660820193269478626798378281214315768939881220726947615108124043401239906491928432439028205811021439781451208550022406382926603746709237255694388407383140197720628340184976030825648795045132791935694634488602641306055537889462895249896496804211795768663916690878672543491036103655031740470431109120251335708621673341319738670350006920312294669243969455228448959220435998035680339826889551834503532004197117969902229159461215465449524037763916171488674755014055185732716692471372976239413371072753224076296976095511915038390194479910456860345707738348609231757678548334257571560450339497143016679842405888284767091385933459676865533798115197172406317545272304639000215274438398398114599853660389546069647887501649633279742741548184109069986780125880454321163359552424653015598389754721235684521357080726451323563839644404332103763211050846800232457828575902073285826202121795257620204623202086044085853606244954866454843967858485026324133038552395664784786132626105980412501658896597238458225917337565207435614674925546490976125382943645534347332144820990074043854193903005745661341046497078530454495754100049448430923679361128483419473019250722793671082254142900366050840850804707063040487310493903988836282395425122217357434895913309322839495866077647206549352259582043612081798065339869009603836321975256690223781670708399768040646320648548312470102329560534278985561870624943643087995709753659111474330059627934575848761086507393485202416439024460146964390441104871097740849674991310211844412344086323723276012392755032739847756150462132242489573213533194327521359566786066323169432347304225112175444031964468090526697936785627990636875878224498790151448908479206645088542130994394760127790539394642562907359077139796597482907896077558568855084879403973843418134784769816408406665861818288699018241369839453556365162227147081627169436158664123393055214828790556862187935158981276789812096643404911835647710513338586166060242975782167757622117193127461224722144159808122805258064844233627257380017337050297247614063152712421217227218826124760381746159911435520433421720197674632677351315179521793897650153653286011404376985364464418138641980008208037972222390701588175744014507564025898450367537799908043473855781367350506258058423956299511808415705253176532238350613798492226800125001427318607402580240035042699716062458651549634793848391459456723411706788610180440387036180346466709110114235744699726704645648950834395430314688687429385131186563702432980761403604552368691451075087461460570392020844294235582003186551367423659350497610691868800130709068835697817134191609724120099166749211472147047889194061609745647729623533193647681005587348169036673299350242054197985850250360700338643018028988207148999339290636858345078157188888030113953061850470259201192002836964876667030960470059043123690530511767511789358899045852595144643233368104872358112353606898450502021080428698927959491542746814463183934451554570785369958433814314815447828816005892984327024398723347986226388432516655156027303954713140366086559746233637813998564335949661185611632226872505633740464276863349792860232131254613964849120363999374024964955977648925459739032213480555275091486822124083002661764726377900238651922022716826143057230799127360401576829982126912154264044948200253501337774680680897693904370864998553639845925784756003387488786373610775969699829652899006647610971707975215163428663494293380085234353981131450824532839039169377411060419595407332303737649765970284247002224519721348652193836557214073410900521766739429027343300859700818853380098083109052912158026706085507342630152018603398516615323500925099973841945078559365848668375347805245799189165611370286146259136887717472264426130299747848529804469305369794977028147591603571638115563751277395450035737948100943766915548985148331365383586042911049960981383974003880247743309993401419277009202182576816483067786439956028852779631682930486594353061582010635430044422901105295077950927625981617960068044660475352165268800031465022938954051303029695590702859418867704513206655964793512184871429047058833369140334053817614534818737034340043252754675142019377888894664990949754028545249359839295226902311534976910709438655012243168340680520247118435366669270476826679431316127589134652181078738134523241146350500782254246339397944510152183995436479567008115560793555754281320363658691289360278483584406402562874251418523901403904675002377979904542856045482562187028013214926151997752480181906161536876670026901364943011561588262767080417635127704089106636675859927939008017621427328130917308340352312020395043182411794289451522103436754206586122958734260178587063132488379349927259827216010704169003997062502185166966950576637491585629878913058339448208602258323710422135249464800542100016035254186109474039024704822471331426199115697397906871461051839125784200835514452913283923478790213522802885272020358975634377787886048989954084755415148060163690769915913544366852135061000080052584681482796911719746189821371582688790067350261126371583512764674630537574589136661215864609252349342678910214487162909297019251398626003272977341903681190473303154867516689460806072700314160165587604610426661370319754179766555955761526709076037671746486127369753945127548992366172648157828650288823130824018181848760900836137429448191495719807193690913778176666334622285753629980553618142650497823575359209565321894525743206440900830684936197742292736314413308585248267427178311276118335560502384024412249638798525163893632563502565426186580738464179095130498766957692326520778313304999844132879504961566770200408792637126062606918704943618520541908642417772979627368457624423465788220786404254302263180415451129764980510743474284763835469358466614674109370361057805536115793363495683127850995419220073446530610629089277751018105073548074130696169041463389962831716538914853024540216544467690244778158715956669451901150477994595430137806830237559044785248794937390350737074501106949858735755992366453429393732790722774495290958322229056920668377576500350834417663347348816095118321468269568932249204389478524847003472183588069207968947285590451849664456480617797044773050628593580771969502198223172479641718401037735682265549424447755230864284333746262711883554175559527112461736305978218690028061416618741564432082547609835744990718596346060740838963793314260483612772393348992749977834506259584444935723182773311336411658904378215603795063638094710955429938951920515230682447009778689863602462194526351598320654342858640286669925799926534041281466583435056241206971063375873030283864639048423027838607954437887195059904295623495116503425509594206307309526974533048531779962319825949700990019726690904806199190816660522478446910306231842430630666938187260485778823682147740595123783352098639726919739414308931421282202957939777691018861579058538288049138030205357708804589038058253383586873538102931826380481711058751915622089529708821876822514287081167467591378367118811680258951346649806242142504000358345948225043507260517935249379021254532918726819088071592373981513854137973173967341095295093766367887147236528495766919160811105605726058205158112232533502405494730779202669645625685684264506247231400306710221798675627172009585505757854676287101519114272954099028476745832224601841567959446102694014034049011360510079694313830111223527011910444925842206439478454307372704068224600182295164362141189007999100629716081615566607113313422932794132022351854398713837416350887653256935038090731873377389019315538030751836249099800442242285367016935034226654962626158218378745009698164988616841426705733040215180598666694611268924627834490793455415933896486460640602559126364211033859846829031541730423032714121870415710908427847686543665699954492871877143738156109053330610895209911701880562816174989046168949671743007328885291987002011368878277182352451346377720858534483155134912281301451407178448255806441583342924704746466352236656417511886091923246559583292646740375492019039404261266221754022157892420062964706791016035217740417393722214682071257482815168770500331916589089698271409205451335912439258521908363352106251776820991696678316082791972258690222337287990542958126884721218999262874501870084400521218683140282676925337083300593681090514049608514859565133508234072038785853588523374488995803450389593390152011814950298314933927729469013074049238295916640127425240764446042044190989514007826018445813135324502301062492901421697025872239077110407655796563024531521450413951254136539941654394265807093800854689592902959168699712104751079751696095422398463563668837553315603757468836271520415498440145322973282158514167085949918359454651129949836665913538879311924413017898463163596044696013243734609866448064078193741599188937882850133476104989564443187863545477196680328590409234575952811124347499377884784452374571902899705141238529408877830483618444257619072307814739410539234040074415339260081944755596261882357215041812087804184768820473383474874826615356957084249227141893425334483892795747932538236283800152122729102423736143927632206937195742403065301318234982634608628319444559511076551366816751435144910273898700190584347903990766860256734135940068029948866735106613251314470143735278007635553207938581714213675091169953080896703403646215804861650316913204523506271201368357689790341828298947960962791831225185948338415175230801063990891056154900388543712702993793133779624781882725677166976023821917336829418191247939043790666427138707631465548422247101778405491224650677391710015541787332939335742968923661687822176192667247069007676313049515559046595968504975581816680039664853474505004679551339411435626867246235854760732549278158477925612227802169269928944616866389183461428943782402918436338916702755589576526165101336508767602940365231268336939931174044859929183684724593040522517227803133166992635336122805982602615201261544486756626314006967223164635661253741955264113139923943726715012302349604600086089050650758673556351631351648745947506353953667878940247702193482563242408033901902113089404154323218240731396194594589558516526783648693616378149760557164190250275390838834410122425753864955373975992969878740756515812738228060220633831328821182692152197096982957865041695853659310202402668655526937391742146442376675477037538198059837049019648108649254488128627343180796917303340546180936598270445580928130317586787923217217198747458868240287588884474587183026669754152710585353134833738888931394221326930629576801386135865654020423098625573070675814549657517114945868385356098980009499440090334177818331548508205522654913116905732557111280876486393903823465798787376491019927522037827340849181435672462815331995343615235771428410475946905105762108709444975621822771142887755191461560748417357966813241895565818320958803296136021974847965226598386955455264213267090806701068566835536320583988905099022451685729894386700033493575317761088054665224416176916912297186669560851725858174243444075277160051494745738201424940958823731217833038532004673647910907565307868431410887473361078309529779467648409020515292088185702383138607591969764528461312480953505873922333698434493130519537958913214562349064090621489122455784442326595031591672655448881970999623671746474164997124525036319948314474851143321401296853538840958375566821714319650785912838422773818660529330310510635468531901440003769939192031028252934865376763755964250201544034337509967810456007819418858469688523244379498848389969271237830018001755463915105339033867598829208368592841202695734199365854107553134241784342820001303319097427997372863003851090123147214990687611245053796200786426752543279586994333818212357690337067185727941294756532995541866994647503275589924417570840307398359199467456249299680650323845717408476579905982151829503097560803717593115669333512434082961054519135125164401240280355246477636730220169702829135020297186916218081661322276968174942722181296357331686619893625284480116318909738792354283213468201928691894432106731589975486148562581322196169447238641999253362152436458826147312000376887146344740335703078079982137162517643334138916758643721268879984216277970152621403316289370639544228954118745347882904085347882618043462725608472454759711063567465025939678691393635031241311040601745136359404213072533299683683266111429677205669848974126631366935929475561416088916982142659878156041576297960897655479170053379517887999221829558836909792169760095629099304041604458907360348955549080876520613473380146131563944537487671475970111623103084071184230896093342210509310630113562130302365867987336891869585376140822337038545604389623939975443987920280448483199366388229131478668281151396073994306217456146082965907745052783024186165655134733469314736830428681469306194896387646241415841776093661663947584758033258036259632656168758017527526217912177073933553917988463847355965783602410768320458278002447172231458424722717454253361973546690706664372104238957164089415981467361545166624096392118975619639903792448704491884793641823325080014344896380955507113190314607225565506502828412477336879635284838062285391279957969432556012044143373561086424582869910273959135645567822699817842737771133002133198418149722026707849660197561379187789997327945212632256879848218656656809275913425163368269508262206504403835658073538702910616575338635125545803995562431362647723205013602499589280631372491800158488943784501092527563302577655522723086714510827189724961150212831248506228056835582499576389489537402260414637593237613639507370460515640535448809005553636359399450885316040109838420236803555912364440234016600890962908737743935429149867082550135129998819143115644818442742887660946325667734997792709478871442371412973142700453083163697532312660767745980050917324485129963881772007911927414893014006813797263401827417220464575730257055536088038525879508774575913302900111653181378673769209052482956270474310756698608033030027023129804689607951951608073296351795646617690076388926128489612708843159118958422011731587967774276468308147985076652203527419430183096681232174813125955525801851430337176912228360939086645500292869724316600585918650551579785013642489274630805484789392364969729447434924997859558084097665976740504936756760098775068413264868993885699200973318452758607116157119608948827967290511726900669086083738738233733677539359185453769354610342668891107979167480271625288285833822947356848518097253040320995237408156201863978449640855029112253303905925977680135144771624943041274373277995960399869324814509649856601628421949986811052498465980020298103360766748840205063442654811787001542400018085083587439369888204242381565617980567663170790640989508635680343623296251883069935018921863310311436774528265412921936428948557306380075515141436795726886518389646102767045624587037861942343774201526324255083634233723167153301674782599677415513089650379198736043241789122761484985724967498076423904336582773803987045704506527177413467101949063577969055814769651027069403262976602412668872347927771430515971286256547747528804476417850731848290796113829973298204109872657147257165214638914137797524119554774713640035089201179983783060708531798321185123675467903143507502132336752405173103834430322054751854805003620174585838735353723698525160266260999436275208308780589248788164644107131364791127998234224808738921379144461167972325385408658972043818198855892510723447260560507114741420517071374621409648186384026315144515153193183617915325974469771637274674663230935430793831757221004589908279258236755491572857342584437667932067620792189267437474001809417672735363857579759317454603330612443511605260892327770894975476068888187828027443765285335793274667644066642642597013904406849714294550330715439884933744944437334809770768017235060920086617129816298385899676054993190074568163474105894055629284112507633210607904081464234953383992567978349476545108819032797654197283045594324625239427459054313432010897460801313193256305677067409971592485921197548692438308710142327846114843529554577508132506074199989321927511842196483584564751784450398089547630837353913575529696455814734166262614994280789166634300352826493219325337881237431411588296524231591781625261325582385261242450574991268177016346218939020147456613591096946813145873841635441842408616765612859705731317223923902995060618374630488352854894796530768534726848607893430204128745210171622691437153617244300115612923743815662525734078208136927469135174338197766291004437508155165895410593237747701342047085884519633859126742463664961556167446958020955330685689195931033155273639922412450112908609757867629281906435052248925590585648040267165550895515191087154257988546721369963742484518463063527862030423097424446024480817726157762276347500770375669797414922566364110312130079085758347576998704775090155223999698009278574695577207076056725582089363383146469441934326318891499277722744411775869716252423010553756898971562725172277741572137381902024289465593402045467225553587139038404709794377930043625592216464618599391874296727456738657694100618986310201875235956661320910047980304341609161586329793705114480976637688047865982224606781501540645611828963596555479236533393592728661914940592993362204136692337555043218865738097571845800291609568300656172466918856544246449135497010783311607250129375526712662150478476037263691350913837837460288683415317353900859774936541244507656960053460391100531111544659887380902076841982527040566305233228968151608690661392369872020409077235690964174189612120900709472845598523936135097106950851237645899734432923226270790009670962183107438431110768575893297784881330162341460616368718849694650906080116093473165046787053603190413127432089903333999609896145960358389566964759832862373982224066072246523920828633567858231836945698274813485612950449792430004077035873352497532273692651458854620414146267592424379589959908126104185382628341317417208723459788395562605891105985808592804253081130462648365750067137233943651312551478135679767220452031029588793418645468826067760172721767442738904126174399058649274887925175392675766429539654964006999938762106651493596967944144152961394652129245908088606221212437732735515456599087970222340659420732031938134929670637052097986378393889101255760181700266059046029937918587656752177325205598823191837858856640375246351505985760009609719498688257926775599335175927857286038588902902996300073480005933875045152471147563299772120008356223484582844545459669198154061087297930425042983504342590674077960856723124872236985260226713346279736274358010415694090368619383082579672014895112485962582728468173907162053549987950710415019631353128130988702677217150708102248647128040325547742867368465452559460273179141959622695205858863471573020480665998858681610154792637284667727019762438968406723195560416632204028841395902503575844165483375744808736262548068786133641329490702222625399122078777720495164537055049180294679818304545330471131035184893191053082125058855398442273183434404730090826548680958085847603225369999661458320892341520993472366293085666702120121956200992741384845699518875857371909495968856260503773876089622409200703392199283318191678404578807229076264297073772296097393631440685831194142207935748708050962844577856161959726774338767322974201002640169498042012924885094215933952507853986038143574394052388719867983275691704212711434601964250306515485510133570116917714169627131129537711209465061520910243271535685100152935164051194629363792766452345958318936011035945705051456634173602219150742942399127872095767539697727761125162168288298838253614910848593609946052763882371627078621699597591438446003360447747239727937887574437287869418794409188061727015283219751344224505383501846555417789529781523687232176581504731883266796171234394863534160793109361833692186750563552777981180921894070803186998591742858675386256066823328129146022567169081124254685966651400423280150887738831061371673489738552528038149560701647342897205491634043827790453553367383528024752631705282573095414849652855227327931703847654848250500029963878042503775739802753003809268784111943054810836969920820850845349221969958474309324420225786811333559486603578671211698084486607504118886958367574281420013762823008424759914391107095142983420405896266186749470758625579719651418039598234639154241520573539251852779662822400246873666970182170861164752660384771250099399412546988757220879471905646032604078154890803516380260758165134274461651992955891744167976769091940728685271632622047639285061303281463809045493610810187488931752573731552003539838814945509373919644317610624698886291524344631542472455569754494916882578390805865019307509783242707939707956128767476224939926372612999583541234774333261741192247195842422224049372949332558320700921489794172286544300677653895478027304088299781942654105051351334990398288325672864016902479217234073407665146445350657612371350357014521506605752746153489056883652931477861230993155094433993538494978842907981498029398943194383893819403103727495981390783142871429888035064929060500717663711696977594049333536368300401401704221480513549910925354583231203098229187971248625721202500600349228454675768741630240580685295338818619299110202686862355169957065196380153695960844936237774883880307978369750773055367536044438219635402329798101596832751084564014322243478061439935909906860122812362534542391801141636738004834601905351901442787474503410065640178270858622852407205983925805615349952072643989986918507049465748955286592071017466615426551646277725623715897155775403107327433631150403810100475056739694215882704229908649095269980345296188597569223080196389646629668836338664329966745878256034532266370241451621091808622012586184116277312415930482878352670234240813815896233127056463242855888592437580872170144881557077316989049578846801652975883628137373556522191057079548046503504295696183748228585496363353963976554383938143793252257243802263096285363290005096978438512204368411411187818148413205394546759375652120429306452693231796022357588252688124198621557967362801556896092586515015991504666981890342487298567217081679705615549053572954011733274069618116760829050631015479539150564677238737573088891286529384436628601387834690961009984730545383516677855892309170087040775389444459812183497297026538791778958263779267945763486719395564144798762507947218409630170897691617678748696621294648110189854095542251296597530553402191963942757706421269820890894079246010078107875807493036836133008678437228490315844281168396392190637413255442169700779181612786619062514808157477466638271956168550797491885831433636908416341204701046088112190069212079103624422655062733931024692654610626659694932918331561951854425248712208897457913243776289196604283977556621323108126544206824981954645276869323651040516613495355913755545965198343651742156228264084591809253832389591791180407677460438513065695607151635980074862732248014430489520517745031846637028336601491402252391837199328889125886426695043696383912554124673846144487151568303813837160311525918143653793753789418298794020279720678927942087780137792672625097521709013068585564610351490809185615413977320112733474166508212894880080300564607243380597493153983288940594873391296135855089081609738137310894123536652935195785044478859027035045908266305912157014146490439272604468155083209074407529220994910631266198754543025157265912528566567163780022533363037491481932059260172768578992440657863207810945164038939097377424540361534533859826639972317850805567941421118020766733464540010826101926336887558797027510269392767168940728743452498712286991899313730764738000543027427879117683220948952109297514576685413087029849912793123109609888511010882011470810953839755180885257344042124138649373251141556437235443460942283180808741653476320235678917241684442795411952945408826940692536424220695097572629152145706283463822635774875209249792463854336427903311044431631474534137506857262691686553353523840407605151446468244892359118655941998576347993210550267748819449698366491882926456536341791307920889094420876064974790942919207679211422363450183511260274518807979204120343136119728317551706200085715479644662220931428757886342885134453293641827943255183064360927422184514684531824804216774591610944049032182256842771644260258862805511286438288710487701782407862449707603762970583072940799065781153108547512027379935626406324849347334930440491241078307712864824664080828171288455785287817755705862694436306734046057235959825754231085579220163714927081606029660918523833856933636157107256203226339282185366763666080949327105862191588677432689452956453683495830208116622568920629329364746153041010650780474752503861827272510182167419304436727046368762676071556885777921883596859176657396402352979037684634923613830408004749652618414440617227564329442628955790292324239742775426943414154631478740360758152325802296131927681942000473642200021211961782221811669424016543357984747938597645150734211421657373387387099385083723390692776986680146670483606893999043531397936698032939835661724720940210947536491963646725758795041612732442630032751884583128326109042594388272903820479975483254704564906088768204512467120961799163959217160343079112267802290436853261553989083707768013566687793132452582069041801572295052812340089146712530979048088271352019876855184774946948693160889526969400306669585442963558153901756692377669457407649684393972572286260017513258719668236946990711374823829203190074848225351521077513145233062612858940097604634770182340222569187483048331555856888725130653088537842969719944946524231941670020847039672811397461214024072060163172101810787194977240392528587760075858312621222519865590192770950839220208233542963335890267118832779071043370558750963480746455734092119191093301258031379531787044675047622949846073853968435714671523293810710821277905184815242008950327877834542143506520383912683964721431694991763407034890381890444124470790786666078070412306725519358802673661413037442297177162776099902429409883662420994233244436275366232327667508557786553167631093499838641905837817480739194194104195293988227645057901626844960616385581971104976099303786603465950064981152203284494031683927469322909176735968775310755615869752750860828132377099505649559861594392004505745649508333805599558925302310359677541190635689230665273897508723524231543682983366807180886357341537982814336377362149901049727758720666786550351992035808907609607808905451116244080685907186026552863694965158531097163590062760962051189709687494604071012540868209946633112177396592007194620991754681568822364790325720608177335721610820432707398375921388483788470718192745483255091049818787991324490160921871996995495101074841772906597723491241622597301052475996769139479764401731133112887210451835668509230286985417933347692435030927406571999049518456413496220425901359226050401865630165802986177229028705286615836262622061978336794047521203958222892525149792734921931589800054069790048635436251819234271628447486180586156521736654794010615663426516915621032919723475544761990440465467697165927620412095496664721152125412479401994001339577755668839549908364272546284188348312223023695784063836018208052799768586445941698764361464854826446416582978124411373456329492101332964024716605618187970516071425305343545366939195066342839464870715296216832116018522384513640304250945908181793439669189998051927056008552807031615134057484767281600377653020201895646912885222671071616455063261487932353702865549350882144369440143927598590037856128104262341781224848411179391830533154639157191798473884910096020847464407693985376699528487019993620000313397728828119912204540962789857536825033965433523941223892845831131647795505639753527686668215100780775642452531453357114441965601112294666095324231120164629563410793117888283639819876989930988402624110233143165428381465112215701255302910871177169785227940182396839989219956190168542040421020790715105710765595568036110739785124551198475840995936600722248007180926953717645956434893368405240419321827070359313800193365740575208602634904445035066956750913098305346830883591509730540698385645282431544098865650879358481140750258625419562839935119694352175149794617471771264610471755819780289535355794596361320756367209906529669144386612674752388381214177260902224125599637833208676164116984204367869915195483772662924679529914200767183969706038607064259996373143781981398817428384972875104136750146256561148645259734965792282645514832718322005765947326421441896076379551162059743542334042263557018114762799263221600179312825584368943463851203258121385715049555348800932106007645191825487266967443480416970493852738288302093670785223332313967849409741205272085442765548192216330802883075584153785742593413350958552419347392650970358318229027039340357840894931771726708296152831851732361304600014506360748352503142253742580033482222334012029946676505529437478913551557875486350470422921651756658650415452809258834768133725490643694863773957533851424087852224376416966130858713888742847878744491126419304634624151681856539689920970802686102226901723834469279919968903876003365670373176862719722276906712927844313034516049009305695465121198007806247865056160759918084134778894767684805423015078709668527445847482056297058711061229855188957019424483078427650195489879513514031189198481024383016650554720354812237229641810037763721567541246890048416955545156986332762396046913026531431921149363611189162164495120510222158727537871551464889745945302231726854089822953384256393426591666484502352141285187196789846496833322184024677609741595458211463983958577432883055777740065864884540575261278144509308612893156488371378118464518516666308037261192215989171797943829460522459384815998464453276756414352252533174786599796951787375049736508957372836723131921354862378236064838943585574342945464803543483675081433489839200801903341613579825272924917824593394480800438675030748872218378304803641031203821810128981386369149333527127529049286947134067435430510116024543291472826788006605651772660243099021774192723811922921535468468382297170471490639599936586737158864152791119668848156525292233891080567378582369009798144631273055733369835846142886990270210226009326522502145013831758160205940544357727832778690350241756867601534414502749689343170518880946885290347860535022491257297979935688756427475585787004269516826438752243382480934302505121437496680927318072534309426873924555708823095769000672103521023682612155956419999454235098496347494369960815604854927891057861323899498535136942421612694039732303205930470258554709811660403646391265945879904211561042183844796257799349533829251647849554540185878747815802993989864568872518074140693597510172068015963140898734913570564919503460554235824651754575251022352264276013135403787423752848733451835217590465690315739577838383676497719652615853533696230055036590588115362017595973975003730299435647620504683599340802079756232889276057121603937579115034368802497438752219428869935545880990876088484054577276098059933801900186760168217899624199576382015275697929418452812336164883168485122494217130674905142246460452058258323904563138733624161747027969630907892743827068359349567077097945302695341944158940003928649664505425363871564141605487032136319194284730402894745357112634669439711711553498584336897370221596281718083802667800713114845903583430101672497338328325071868734427991044481682712001923520866115147976775485714271022789930736003048563207258732851091118454047572139387648871994401514980653826162343973890276087915569548128189300918668123307795416084140071244187984589263450452364174254359010262041517813032345304466502469841175602800524964731316309414028097003432080552940891299049742561085305307589847815526759222109805066414888229187677255447873070900881732163508094840548935290379099911217736689264738247934255531670202916220797724538582308364431909428286518819324065647485497268306844688970666131616120787884869462442917159691122698932793853121891799062925447309760879088707575617692690092342168296570216190469898924173604361067874578460070228254312240392875979177117858747216427307943702583562521531345827928066043914049818115257910387238534327953674198062430209461329409543667176857183919000684802967759129347667486485199192002923634398433347003870453500730043060229614937058523092012486606198442621784222710646274635506020404945144937262776342845217100599501687568768773003842300718276824294133257854429772749587963338562169871734600048358228578861002313605007672642259150832291652546735090044919263455518687765430486677911133182390678270189456041363501093737350529931077316040521989081683716663410268300699041099154285965195752882254383059810161268708955414989579405402186708712391730152245806370658351058952090126302340568461573055317347429696725693442386852664107649095684481783107948274729871346168418710401965921267309233829844043642055733043596992611767769182270057192689459528151763244017968561582343037915540173861026743527134332764090636493877135204698214913699545536069354067962381939294988524539350015791878444963667968909577366852604341215772841347009568043753931469017836999939922104393672893069995401995584246197127634621570641566742085438533497953519308024497159831860839334936026468401333712855086368604219421234157443289250702051689914473237439993920913892402949892001445747554160187091098954920294114777189052706508522569827035714342147143596110546140965083269348334198831670286881922115678742419172094964753268246161325946042385905246141279464291651910149128559861569042533297832804591031296859050844148139782562502618073672565406188363039698096016870885457422382061495123014883040332329420951501471868631369744518260490873839680564651859257352661582389106830791163883912676023053746867062491686382568530970392366061165612931621156856435318158951536407027539836686882219995917119468298485330417428598204906557173517650237409801048567349779155216653116005731943069936705128295702759407089288756734109267456416591755126249003904407675900480017597737891354698570889745354827615264525345100337888539132960181859532411144443200262535594723267583091823371051845881087209818952696752093329879030798305275008485534911941822729493845798865560674941000516084579722353151993530329949682988392115103629105160122558041590607503859839290346855650752509215634883381248645615434362247546501900055881843675531507056544635684164386600893329504135464450004303171359598992406639607854161668709407335203920907082100473866623937393187909217914565147759090801926583414247942585570683760118828182332231318315825997021992207281101115084879312545683653182269540927190965085569805023071227492222328459683791881986097991328544695055192307239908839693228961558856722441408248090376621017059192209373798241977346570877239369593815165451515853548707795354321133887739183845643648163529270969942410240763963992956226544239828368971629199078410950258450660236535967988554661116525630713569416599214706453792297942971641995420957504466408555299275421119674999344822702013591108861280015089786584976285397447306127569237911108413589490957687191075359481249210535554732638895480279877426262338787989803201827552988062278325318195376911624099814531226807645604682351193801490526871719388307309196731014686798906608713736806685145648457747735773544144568201111771779300214963049145714837145581101806362261524716029486514228482625008219797844038758240019987017659555007396177020728371181435040317719689110142030913170674959816466891912533501240113335995064914059016948500824248311382143564174564736379299254466340490019679234594515192387239191233784834648796265589717669568733103663637491297778097213958027657513461820844159085472655982372156034887957700569452833836226481096382149179446295359869402588307732658458919728050796191814769912209000992009000841296373738633413976770178541154233611060552539140668928633525296618621039024929714253305696088284257891412593015544191559704781851860253438724639416411978912308545596626967818592831798095813160329115256593364203606391826276677895080729867166072579974137864250494513952087053572074110960651744725358945793586481482463596386860609227486551845395181841441432885357101674192419872883655081517142383563589187106319482298042284635994981371139232795407775571700146056535222862691461770967781943068031910718249177423210449335914144858420677986111801542103569643478617708031836080456809476878449536973321923274353017625649476709664041988656083496173348754102638351978980386041483590824752153794670428034653166422085663722476247237317572012486341805465207302575665218639794849119497207644087423803726510306741678193118233915676758729503097015696303915249533697207363335297435047109028751312736117061442496675860204396517738929662311008568388751020861239376760184605250880305986667646257744548931942615462223051494520200356449642320873245402603865365925756697781857059747401950697972879498808302714824289866413215739725029647831353959441578276545709651872070152265916516204677901094060647169089416569173448872743187649622350316862722404623595279700576005306526262673098321483828506029721803701219843858653428845469729124588021152333046270044775405071598832182818831951136397913500435847478688260224367856932717188101805446452711830039349480734719547163768361070163294196260157012856063246281089307139338970545824517578992962660683468864214899663483459591459218217788499873155009666741787823067046789988723783056341345047694403699889983191725951093426477140226748247013737406307882978647054039079848832447133113149766009017432765527142139067652981986889449684268444400985816059268035582681707936315203393113914944756525074951518071210211641844502729447079270708473172330318150725729225922990427206865715386723705350781046489492685250171963062238082200900080152544410546287667903034483725485777591614136765131853562940444279996093879761411619543514297888357389440063547812144443897818215206687990694009742923238100166647150710501555013086632872029777449404630528408374801289291751579303083469381822103986678562857001384026422320218129998821198123669185872708563960627531247822319547308274232404073176201936332859022690066342225504034800907586953561796205791193790722869531332740616525540630824649301376799595367473695446070342044003971567579169487629097055346587584796709309447298359931667066706973746635654227953697140872048218633952234942727166470208074442935731768269017636252270440515702926685742957720579382093097114851461822520522127667945909156004788855016586751646603983064444504993381410985515112842765270326967698787488119919527063422597792413321068969260994158677117600965334399188292609634482440020499436273225047030690699553806642703849788212166276881927492872032113950351504941244847652027013106720093663639525971667064258859829441608381346507619759733464638523985297888419983298628523029312417342811009192869560458907938097147252851552224017378916998293700470120880042352521267087936203862554737554432241223354569676912795202918496015940842898916277410713989774249479592145268362423827847908796870281636353915100468164126216323524546846024696038514992372371088599548070502866996046379323108632537109684161229147179357851617254183219623336853963413914558119976088115717913474001024004452286619844149170112317791660762520729154562310561681522051639989052244806906357395064857419674960153419925926592694206860540537477083278332625591177859899444390947694946281353399832322756159242168286338337632799331566666248287766217733792610562401966238085131410759637799838674267107224788117748585562568189697190984048599682051794747077623213859463252102651034014720159814294663991022893000993425401282114562463914440882280001928270407913648153739463786146135025931170904543343344114953825852703690607187699954878353198884936072965352337946344824802572050711210115530474525073338012894866365950898583408412759362923493237080099808661378417538826750942457539483859187085670135457684887317666063549093219301271610081619722206705085218733177206554223668626026627764305275493585168221881001558506348423613696253122239923364252381214376047439456520058951855787615796311916429165466394242143506277866824962031738498029488434413559986020776389164009253870661587112532773370713712816831506298775248906251670178133529637134799343899121228990305033844149903309380687278480296562311672435529448885622603778513503827883294779383792489322930026512861839820432390484821512215371833934306731105576855922109382769514538848295212083018236678104662560758397307763907460841010426434910074186812874943762918932806665314725060300514275497641730231531286742180352746674550632245631369697216178076351910266906792578339687352352642742223596166002615802487665468457240438438998886310202551340335150296084469613016026618157429527772539239368344899072075062360313161053246354058120036904092259627880832710108459440464324888395110630158555791067531311340637196393772711116929064696973703139014098615293715850768308675328016983834256651894800800996983358410473074444301947780086532711939400766773333251768849509595262366932617977624335197597102420557475655695618168761081027317195861509898976707735189808119655900311184509434898435352847179330315390910217581959033587526893182099496894436908161706185365300073723616219015081763670755986659890383329003291464537892907207420261483930362925206155440839586853563125461718857152068766349368456376935127729944556334958498158828265055830483720973971117157113505233583370823007116737357883213071417963846135721229659320509801568716846073691046851953515355781852429071846540628773264563607942820134183175592934334703465276262600986459232646152524731831728246333574948629382278054352075798766233942579895228949234813237059686184421623547480104594760204313380873497016591596005720577891156168537432545961926095333097692300517458339551076953327357521585546184228127841181586980511427451655476403124501783160612185769999520281508919100516288475680359544398720936502023113983436312280785670672873525104997823755566019122076061755866111966910265983687078326425625286645552897768599255714893881225417941924527519465481088392779768593087640976387607867334618831523458789745523262183476862238610312111627264978475577240574075579749503201368381065676715502995801681086863504611429105597787059394159617659347368630686116566621882212117376052733374738611862354938271962124114292037980479803062619235679087129580407097013070963129484939676162476807835819890522702539074998062528147177757949526437459621180461139720906955830326297041531949196386496591260919386199952008275810375417850596479665101658804961947339743022722067278910251825235471902260933858330238723557462614379615551737241229922825323556607715115276884962557325919508030122823583801817535111066860342238603117366910757525683531112771143465317243697807481003005956255592429343751764673624212606162529812314523199335208292722010510997158609506590757604139582234904999084333446794703289036534899783851404336085945461347632524969624785241974942716378082665364167288788490631968283776719531796965823462745958533107737453619579222192471343615715747947814762715304048444354636669443958090022158931929329952657005441502923303309246153050472755535882992683971511947456262376075499433980561113028321242878041130107491165651273332646127209952103326035500472906932927047020165985654441095859674339098877567803867915285584396440294327754398933304042965381866701339887967625937055456308076164785295372347940437564622018653503222415625748025456331937849054125425922530662006600469293593475270360633966245434013121519466969843126625419409677668432712481103699888673434321797662743453038091240644327642781977887816797561535320554299581168242569928524121235441180407626864075465388978680236176653682774408022669884293491772269065720758318098579818060979399586899955559135962170046406035491940806085710532892538174705698896027459178859283471923775638981757786068548349624123178376851883644432947996795223784486220282578160378809608448840993201191825448047548068989850455108089660123745659505647892170976212389832556876190144753043608236197457318516507013617380521839272328609994513854208573408930780938802828047890669649789650184423741493638260606745941067164539757973321776472263874105652369880676544479085212986611038258850702738219667169078231679901306690967004342424429293225619928006165466515894135296937549439401356147818775288268501625841635679497450890316089234252132210221851316016871819979862724823851123106721844377257388090062768682855403025976579075814354800242721474083332971411295587780760784592227057732342891292386455483189210079596816009272702698514372309490836705626892007672040697451547963422424782615130432280351997915123323820239446688484363964609075840325255984332458520862516437333412198891964780300495306035281106460638856771937720613014701896373700488842965461417901218066314080507112506243716920284154945617523861739585834732078254678399328871532466372437470295743617294924071982889225235283790904673687196152228947835193274969891149294393960815108412079031793730631246482433701473560968536739693342701182842014989305381458903903157332152677652609396896655393206128064053179826855713352971387517022538882414220700767874471456319378378214527697646517916672780706787445720962002981441728273522486131879885015909763868598615333584399743688534963754068111249990594201072256177445510641806809002668498380653067831370284148651895704153978711120548182326053853417982839900686162516151659788955428786396994996177434822038148267811499467451887044928329019172955863771574877262950142879145471086577021867898188378348343766330121701031353992312414111534077846288986850199268817958233091676397932618111922284993059085165058941774177317323854795173919505706267371785336596235973290243858105910055756114246500505610386273484449383598155722952133717975807132603427690890172447046019597962348620942351357145877387606212004028198642154716032557935389434000907374929920334521541455426087397129957486496967130148140905380688756766139795969909745232040647657727982510863322468672872555077914101232661455420943172931434165865381905296626295121091017305663492921400624268964410893874658284912745671316634090031878721519411339264117080993807623955623224333200476264439257557811708996807353862571983338999208394491530339073248550482006467857335451811226391097874078678957676986576679068913706301373592925114956930719532629035841764716983658502968196058196007744327743577241275115142000678578396674805394503762640349032834693457658287132214741648627187993772015187837041739741437741581091815269975474941197909596195840500137517727798690530927637871389303155669059397688815294841593163919996316820256040345818568371248804283246121830445253825358808490782542922623645132470161448536533444933709985004986479435247378366360863602498721323143824050552766110733617585197749837909285593767844625136731352253590046485320621504016469920165414883075782797013553085833102729704467030170003678229838293545602224758038902152739475455650775560093530757279555736085780305273610209538181993999642439935237322335299063161498814769043542310377495847579342137031310931645332091922469973868506054415972967892517925195250743243832426673752406188922541160777668791743293845775931961510547448242915492294918782605857389641037865755497794056692990403713282354613040307865992857793060703151787537602006048611301780083040752327520905051833590562101594440993500093546567803267355512336246397533242226872461345900914286275743910324929530320364661787661873468390927396255235354564867810502918107508704242199987986109766935421916905991019116196972356634926831262590131414851433230504769678567620492379391079120366975778203530022294798393493179505931489705629050038645670155846633900623804247368681089898750218854990540080454713219051527670786221337199758680458320614966244250034281478491991612487887409872745793657918385806870055917788059135934108666182691463487631711694023455307374496083160869411585925297195220448452181794135441184434182396403890436220745231363456637371322292176961587055923454854222952527667630763254750080149124487985785813653668919156566331399151231031895167211064274517016150578184629777710134218540318504804628487195496655923032990148238327313762545155079021270217664048729302676911794277718095380637988720196511724282532644598363263955203489559091163895366426139884369598514951770795459940788152778638050575707573641843379815433226478911698226276294154895044249773460697244994828511312814028423676798258119730793883250660059373416988898136175268103540951183664201469194886485671096667554069230308916815699097330989966072526336223770971785688341841205519580588719819273286454715519573490565687542757145656231797170262642821426504999814092791580331907512943652722846241460022357375712123290747050775766141225935409094946940701611934830237974665283700620098935549712517510477333677572352908118666574996180134622756373688384385262225166878227596177111124098616116928398766286986424649956108059600780143820893692037204432699039085817470958839426810838785323095002712221492885351274748195186449280837133397757967972648189081965902298103804765955410798114296600694141161953636399998164931160019182992962738181181452380411602255922459764049188206701935645869789396858096905579386220633115619799726917305702936050801136433769932768115086688112493038156799538371342957991645236656735107331653342876416502760440493842646563682739233380966357374656390780115283498238471225863822413871461517662444845712691831279242805223578514629246291619114062007621908424293157349903781847779585157108720112354475759772599112924999323804773349928698557781489036139327630058131561660449782793630643172209607034562330637399340412753908028273614864200117155851589849053875540136234779345937991046248435912576974664304728124055793998775111656819552747829127973046490611120996760025391389787836260855466406315440558862502337652937821824090935670713878434599184271010655101158169522123774158808533509476216758838189226834032502123209486197557748502803307887934657732360386890191749105196180589721137147391833891710606637099066550760257730786041198413019965666311651396353030908355177875932742231537356455068491238372503469211161407334680038891946058390268316981338450591717455007100155013287830347579153010480933340153744412308629769866685111068329769458230111794720703392907005120851962665044124735623618435060373445682144210911469317453833038259502787162121304987239559512033475113864062959255158365002498573364132361529414035278064735466349992792941862266068586689761544630841196826812277800197349212089984741664345570319145559258073748993933120390737508958585418748883718741835614793245133215982573312045848899321432499391270853798102781766320356135810522301850360224823450314834805872233156891037420460689007448262582790743734269231849686259343166222766684611761350086152734016184702871487627596676825219944932917685461196536712168836373568312663093195399194400740949559103788603412701157597427743122468682619490911521983876968721418121437093271165959882053694614257513737358361588133832537262837449022331701131271303304564286952726045555305185719301949593281708189872998235661078147521328896706082379734675102606430962748239837603244655457705664072182777458060412748130280169322934329477137488020379360109735741894840130341640068502564716892258706725208139964247901840783756089173204385026793051454408033695832701390970348620338828881717603457614543150218625145220933583355983478816626007749970059780197174925610452091540001856826595459537228824043914745395629066032541542731955986823854231286540508746481582647588999485927198940722410072543717032538569330770251516916923565309328813481812969982084544595228073366028128172058175438963492522821389574052039624556820341009569686040608215693980861247207367215368535487176777521502736047411150584239315685692375699572071807637106584066389103078900786973843373996145474463657673341490498256859086800333186471238268623438746089659202093959824438109423248177767431426697436701174360015257991904547781121795637975431138505627616618974551411048828480793052168256210302434185486698184543847071136060894049437424512106013109408764997730303873481375077076463818475424011099490555703677074682289263065661256029114428111966404201492636183406761528611691152063074559156864794838338226246231371860071514403396216636237184522850399786729489396387730475204970193083207783207804014033281374388552184988450740258143438270177763674978325414833933945899354307797625811894985150216381330457592448329955167634212779513382394428991287879105065014631948879069726569953126080402755428398536161710942176319381079346614656173191393473600713479472642670520619904294342774305805195658428797354053676233845739871597893152891553138733199021265938233658664844244365931968376854977383869694768069482593423559376995128710085535929668108641357092699730362814954858575319992193480895087657590939160104828622693169867969155926942851214292517618683352764619804476112844862159986944155075640592400049974689427942918439033945495610582952088611223022341663975868050434475403822403645088084370729811982021892415132655533176300380364963475842467607475185250299771446967785784913352815571567444261730960870890423255616778297175207377913104935656286557329372553642191505511485957149173334371703533510722414038120564495675192040768569995895883379793682057341572889458942228928244273500097222882335091204260147390015713110455561528385977341280312189362683876236497682403305075821626243177387274429787753085532771739382222665105728144015347341978381096075704400586798711341833627531682749741089395481212300633586731437129419801751074137655416524221480011094275731978933150221351039595525334635192576330744745402975720534870095551732349903412608568614608337337493903029605721792070636719734743602723174233940014219549549325874532881141621889096263300831450451965191904526756275082699348677358746392897221947096498794898040678462449653344325268333284447000806439128677034613682207281430817715884290018765760957297514247331017658598619527825162164048260743588533293208312021745742569060198525003629964865339418700556588215352295372742606802516533323322979264293231853075373079568935302333704302402439356505506146966456517470486253805368569914799766183128269947819293722672215383638607345169550249388101496682330150087813853932458920038879489985499715325544498174561783734774246426750530325738429775532777919545620397122404776277278374352904598636862659407528042158958725790060516106372419208692860626590933791548515877827205376400386944095871193174860377330587299275656353047483523151194139360801398797712249997235989485344189731631401251413920328415222972027463842828229120238606978442662614302413433577149758243474891183834624832983957374052842668820624626031914373111320098537362158408825938560799090503900441160912728138795617984670987113970185229744817698804259510127941375309790262747624989939992022481903158618743154597820186859249165274830394314093472306922736796102735946539438060557605143249758398554008380005263842745842767036187966218700179726085896539264515688950144626431984323992650668604999062243334099941429602756327184262047332821990150918048063911335337154851413959670397974015721052274417691856141620699364403996804145929180479339939199175519282314085377335307883199032868485194941470270415419847966502585728739052062860909212177861376596979166292341307018328725026753627973230874190548097623577261897216927250365692654798399368769319274525280145377247816650704495589851568555866024271408164165277009360860728923582931530688839744257870453199768451611738477339339416416500830715218314569636902052552231251393439366818396607599027002005818606816250648059476836742827513220454356038950883357863605652969219531261714719520788410382340637240551564997577477606000773091934452016671246763815219042547492428946319170706335040501557522328935305950775790453742541124108668017080199251711824762641744984574868409612812317710489881185189278338187341965984443466898984071622488311075056943639178456412524368989563195898888931094805641341230583491452787702593632766864318193518405738681632241263139022825508561748364777316692748236991624889283240375133936052617010482102459164558224759298456290193208579075421188902641038274540780908793752556617450511291605962421333707612635781788023254474682361609827794578142288064999454833951165516470872301600756164214541206076301575539247918873706268320937119748150881316794566881474683783507340230709300553639077177913939177252757824601919070278204151240752733383661229430113966830297362285326544168417057073567560632127744405059520753104283861360770712752168929751623546124003523059402517208180078948270217391569240421168155467351991712335016529066780604944644683889342330228684237251461944549340534205425389324064907598839508297873160349857224374163791332559987066082556610466499019592797934939636795190711890775776729643010679552140274126374859409826020773140456976045303787345550565091254211513578834693818399330250727349707004530164766784687925441531229556459605551947249938238054665518073807433923247280782895134493606267189418607772217820363328864355672194219414638509510727128031094489706073039958150615268425827664405094663200413852509218892682121961105753879708968438617178677285965441842975066489618276808964170434538668549715015042872558980297999579077597760287668573357628536797676954788822579305530328040063469105134666495656339148644006268004095519339579920483943426646381249347982948572549661752685562315149645377542657100877567916815484074064421734839666317261867753077836825073674345310125031759037254395108738217312566524370646729733607059783761813028801686069857576294760874090762342649665845915485380817108061647065256524130609388634527989334235098620374662641100590973161332086658847657788812575198713252243705127565663162022017204458649276952151878403172839312116295330176785699938847031621725196980796619405942128440650514400613579731947023439587515466586948062442054164359189680203520054411643445614332311722199434843499299498505279592866751787580285473101450171424529031363738402124039354828100176603479055851627222577856705519002124901967000324453682752459932230480172344034063679235668411674276948633375192325392930241337600966553165830351478858290162024361086743441556996073035435383705699136910762345187809261882525656568017595199461466196746197637411730420196100624941940851095479628155241787384491728073753351792796392743266760726014669702924825756624543331067808923824455555012300932771330694547276837895382857456533594808765848952049511949825508190460977233841318879661488153279438576303467081102732522092004124414222497830624103020049560891830724665769592357314715444629757207640487768615910579840482632814205921983219590308363898743990623048603017048227862222737393534033161915227967182551569491279912394154164055685693387757718250677149432988211211366578501959628444959602603734834813728602420165305241636281167974625825334923375363983839396761746457420311285737327503361374994209616461833399779378881973710221607662420489986857611737650075705334165626968803216902533159576732375579904701847219267954254904864158755587178020016398268841663726150402662164038106891242616891110385891990511321771393620754888633655008768989097571136903765041140141081976537259624633801182924407548740916150917740404423102270196971912466917848438713415158781402760220978232853310558629384796499364536686260641845104642331431465638019000473951846243259931001417091503443024946087054674067403291505097140191713052122652830173082234003193022515030824403839829278686566466375572301581662578839392697579723380233302913574615080782817339260809186752068875938162113488822555980138263619445446354722622726221305403263226380660138880222195356640461552960042066054165410433550691317851632870604839823742192997543575242940294518616198714528939781465143125754554419160930725812419832273972844324176305421359994149038544430951530534149614881597097686820488128563326821659643446927125994502316440793985484660910672123127676375649889996373597579967102147808221170531339203371414352466276945667714563282922094746762461374234336288866105923160598147971777047735445008561780695444593507409229479757986872260456350913194506999857425589822812746188446898511460432879237146909970127874245935542177422431401176082794740980067112217764181876411137208851900475817920900483283701437262800636319982501208709125674347344664677702680231592600671329422748681720596741687231744126305630151176264882481858598741286879328933424392061605313882384677781346573775437700478862707466239940962645301467707730396083036019526212550572221599066730090928745389812317922948467259278554297864173927276470677648370581507465161716383017544019046228730205928640230902261988175857507044650015455765009046347228922150185759972895089254897106015035155083580081231134894418594163862756776113301764677678769790169195130733324633329073904074445204330561206294982668754971235644953251678977514970080936074500532692851418728774237492906324822040658343632044128852473439240794580840080210424286141992423377053835063521784174793124284314285967152945126602049375334613230982435866752721212243849240429929221464481346385265904813628285184742326928337089464370930174787040682816927261546882835278438689564748453126870458564991478151818455415655686446006080575297248463267654055676970806547789483999215334741878219876037492854151003447559505976213876455853459713294959440286753448531339940464813865713961186774208890801669947291097165131712638239459404834104923846662093553897248535360011930266709391332637948337459647077710905420459028547172724742464090722439008491688149956196705999954081245206496285329308293486193068279621723417107970673743002377729558438924942909533739063664222125504285399321585381451175386804878091508804157144365035354162879457409215545621170017011928054404268216954786840950781685782453116598743436075804845380057668992700725052465166032332488441192807852766424413027273079939198489321093242706383995621014928593319265509037562030388879876672757722581266738401927035249758519767640833660967853644839194544156699757581730018402331373681763437263183408135977322244356219053545198833302074360112131403299231992486588811293726221303105928291789524279676732771454044746246748941805732714054988637443058450290027567760697406073944032265732676831173922904329793536551252725651256311491489671824716162561237619138228805304757626099987621076241998614683657179627096298042263113951332693007029107600651682532430441377388983924524847913137305806512589800702037510008774123644022918858900507371891768097785300109524268631882346442181375897652948193892078835915062550873221518050820922106064657267433851872526249632405776033279188195835554599014500282181348074314502693862795445039994234149400300438150109284068385619535394358894540409109468020225352240761646266576994277376361651612181522917475075860066662894587855300412742610362709803850694897174447454751203074270639859682677588678291592795702275407029151597270905609714323835742560989279130994885762922301874569848627793357417020481650528831942413881194367639358219460273745486420188984096039534145592224933841864965536622005316355761385500799882049272428620954984579055013559646130904995981904808592386839426547984733303882095881391616013702351672672792729328857270430236798084073825139059095763181805968658678815187084131666811523419395568727068547807795944686073859575377269861425494310456654688546417692220517652135220248499878360578226056248777837988349148288828455346001660603656225010561801112795998737892667307882480763868933071622642804009308503449773602568227820848843436443834632276266318873028340783920968032628727617463602928476058218714520104334809342520779884147979365987676873348393502370696403108482838784175063764666593874171256123571652400805765093578217693886447294649466398777037773766899536965833894872287028309363084989058545715974876321674373721837966283415135121091424498405687672562635167689038751004612014312195608259118083594432212296878256811905967772130167958932841966699692241136395936812121530503672527402818067600513466425540965234289792651485201391914333437668967603884341485155342458044178159186103618978263801651650216105128925081100574752044193744440133238953331765726075766081502572376136591758138237996782053216199076600464812738699957890611350213056864999806333485498849190204172482665096976957655838001456603154130957474196873766329044853641293611969670052329392266539683089118976099736386206596228652459490722785003505838305814457654716806841313441475269159957328000300722214218660743297519647523367373133678606216017774444188036277159123882809936174725388291644535622901434993517055591826864875021165398153223421887203270532210707602244807668121217386082970601729871060898359736447693847227377732871203840993286891693266479460118957858545637821790236330627333120102994089123468923138286771424343758499210813496602731634966467512691273120566145394707140065552630647689469362868859694029949973782775822508731945517267030087634227697234752419483314174593476422272713327021893326181797232740148097061035332514589064296609137187770207543951532180952249748045430298217725207261629995797635231830060912877070576264121161806406768949154114356902425729251501041999528546949191674552410072199633106582944195440707602193936227749136807891066681984256712116157373692872727111104203001699519756622259264616051161105231517618459542183523911379409680024363555374986905887437938934868141385795121289233416144603298120608127451537771309843954639950025028004912222589276099250148961781567116652096720640864366197430427084574740098320366163303338376161677240889635866797618624734908835299366176547543769567208386439803763623650786619150434209717704640641979751924513175102965089049694086889695607841284459426183449032076382619409965461097465220843873327620895374108041214523279342622720143015463198932523940666065614292727735305356165458671903828412527020301887105878012771552154672191879064456610476940757634787102535251393941273116746988745423698396339388243071077969540141688951170181913455645538970270881479905169628861011485441461088354824849966736685391522455211054864364480725979943482766375043088188625217445609403353672071162946374447798397126022636923981037312957683739409138100174741653318892188294876778314056137699688643353175202185201675590731969536412498070310426312451483590123262549319834899272087543543174388339204419321535537725688171391032457665835911372787590562635808302318329218317596561987694280546028713407136848261398421963098386619227733433077343294105291828150751977032237556577542859719773178943292588364944851368416472416465305289614652546245876415521470322393507538193649920173953644140850884716464463165084130872986893188473243683727027885595954423439822147744899187765533408837778096502256580694706462853853604357666045568130006336248805728055711947574459976094624327939202682178088818344207682408487655852910676964446360302499825743343642796511094294998071480092305244831547744658681197035110995562635134657303609208161763794932369940867486892980894145300934619184474298410648182612306433929153631727260413595447981814407562197070737781084078479528465860358340201993607351880041198793995988464499311375899619524952087246170088740966873663932154847810249959310008081129130886437624949660496031413023339705682909013524527465814651182217769220081038605914242217452417736708357967006760126801071464382860053878380353912482855862559784283259745101791683908262983085041226096414057051508304128832554711358017185284681566275593846154870715652560096132229100215791801730419111498394988674320124165133954851128591953627772382850563582637513597721750770851678873547356681991382116140565947712057051027870049520425348201460213559213603998474941579318789404740477263984637816278979168258103562183760554767870950906552199474857423765020885571158264878767976048352192527011552121709515941834692055856225919457249350695145173988280345768139128561840187328094873673612104963009437001454216714399256464746395868872762949453838595841442247313969718829534391458638856702229485001789495725241981173862995303124613353940401592896937491310643884351006077910747832048277496815162094199400604274753791238034008721908221378579050032386502655175870300186921692739648072744326905466259951069479539070701778358729047654100900865382060213751307093809027152556635291684719814590849717090080026015529890159219368261575385017337919427044261129719212963033291873971924430389653995008178212139463397038212988603005269634169021370587908312536306341839159723265089633504839414480253415961288233486257847588502735365932666255119037081167392666875476857176489348674173684722201148498051555313277736823226699236280214578372334094393116063369924352609021703741471327510606521889468229054309985888673676838715235586034885224285140959218952041014606114714862642499708497665667970985651674701889410791315417184015828641261972281314243079057259474595450615749356546386349032574437138262092063463801342088559321101948210014589284416501913672285045629394821416870933041584644891362920086876748066432944075094962974115365400067083947354975742068001014951537426786450940961073520913501060003953048934422028535364342688274320912243622178269818547411756706872658109363890795903329021292601346809761768388550761533217484453669341874485948169844509785852414377641583875292851517875626280012440523586107934578404188939588271437026498442438655517343944419332182780692400072499500916355821144891833710348494631878370978097885290219456643501698962749435529061808515018555976868769669228761394037957828782958323172051008619549114871316751580110028193057766219685170319059386749572346053392333962160335897002170179546322963306356829486965305512804151417402874626154477876044070115262210168818019922833676522160311682255326069441676669251987024471896801355357700548578743681391855910730487753129102482024762539551074883019172717301587958238373957990860050800106130675424506687046718328444992227583003897412619997705333107406116995608094442690714767274017842024652615705022927072840306329794413406251789005736174557581236542868750931118690201361359287847163850312358891817564529996919269609245297465781871799282982735716010383985851952263885007654268047741666830294927499204577899426353344098136378844840472058082063292758382543696559696070076732750492980945355507792758634163208320664696296555216531534909024424749329839808034353880344954833819598336429051551084299650090716472827675282447034836847771706400525128702922473272084562523125112824192509946611794714765695292665253536733328250137269495547169548662946369860631576654806374324688842663575332100909557688963927692759365489098203004858185330158755758283231793775191517733477800799368453652222864581247852397268904113715022691185096421038936177310403387723387294160643296830841793209889035817365646153663505913491631356395371776464243703362943379145154848622303845300572733987515873287182222945714162599002929260233138819433478764136043262849525098365952206414238294182899401482781733812750574053417356986074398970546005149815878956160923959908445481945772334093932153019095294139778191501700619277895537235105828967761665981008049167466017769187155771745482823404743422455438450942102704074154703578701711644624290714743374295964533618019138147292839154315183805659923370608488615025890503172892327016521036421011022278487520425653753741977162016623411410122525673715793321349667760291499796621896355659354754845208899814900173122851377717490482405788848667856672218595168251692009614401826664575384729551106429035682093140572388974654294356546304342865066959307124549011477717361250363002574699924565412830891984315076937841384290421709135162123024269700749638593242111157514398077123908554660206917665347561129182945416984957185271095897539824128229501125474872959447113205220389075141574904676474834540484328864611785865118571081004183990335455218981669124794509221829853366572939211949808704023600025917505938038825649696448276593070254369431043412192981221560010824428735316846731513085475655564777493802310841442181632431056891600786466528411817742360269536180633553475979867352188209873100277093386218965723609253927741650606525518118887435151972135704626082100042573580914296373689689927019088430982642086093450438663478736477798856375876725539014226355205535482078281727797597747137696220876292473027833577714078056606720480146681106354206160143783928680538764739428729904018507435315703525652012699353505152620330489842379685590256717381954948553274368780373853920436084011369919672826410967515114156855721091646046676417422048266203416392700943341974796439808381371834156919559404361464810900588208466735048146417762017164484009548932322866751257921024198884539280879435884444982223399515301257834357300144244084893451574583041868960016576814866975983233877359926728421582170046288183225304584648381155463320910036647590052422316142082465875570123560278806240973520587652860217681832152254889482237786180776865544935924286507593236937823521154830054622506085657572330233124973986233028343745593422153219872580382663693607199869515424931410071850883577718072786742324979226846984879124438812911500086251424257726392669148737005297576231313575241063572480380158951318886084414361325098747370133009461799428324124290206587805737610554676879260209271378048291000946795777598859155465963324580802745570073135500092076268231216633732158607564149987708019124736740684836826639861259284125585239118227216373544909101525057375696396237340328415136490421992934335337938776215106380035098600369535573619696887599567095113549772337633052055414646890305728531584036522442369933077586163699164676315243332737908330035482527554707430351539833277464016180125022011622559744004486690707967289716028289053203869631080456413817761919962283993194246381377818556239655032045301549002500147694561987516202181465509883304527898882797724298470893432868429095641212539370905245006075412605516781476357705625067888032722218817869385232102783371773135751220574568628489400026581988862546711741859835617243494145502319546086290493498908605044259952698798249550749535426008469738226853294922780955198589590437306579406146287248040077440141732996302634650347114574685998816280576973770095324164267172823875755268062462178377417054550480104520065025684956289680646109117010140336047438118069665185285424909090224008382931939777643091362174282504008448386087255277752819282074314396700410866789364138983663160047016931419423173266358920689013826294521536438156508618129164847152452336706422343595961180827872621929836098738052024640551638553066339755196475215281725736477456172146212233621905532066369328790227559520637443531535008701441328244657328221821411265717656649165924528602554056571962626193496935890277512694850836049603277932706694055474365948213243218714013362268187464851203377007650209047637478145149812098364878256649925180415252665355027408072513173737379658990926385589520562690115730117743948331643062851576568175815156562118965142760039370522933249305487599697783503149943690749095287118934734277306226097005826349563767189404525029180247274281206974595111256575181425432171391666119761215147311879530026850672055313236423089299904856820632637541624054162553062773001731985024896321371264754906580224665512883499838972012435907072752840700142920747419520655306100413249206975698569414682829858385550131160411189567079707732568167056102509602682299107580737393273623107954465143765931747987145515045953641527678751090108830794227024174191763875354255599400982370460669406345458180051849673379930992035186637335887251611013895087739159830343764828582462821818490725731860083848504703693884928604158887347288536353459935906131546369182519839879750977280040715355825466621770505218879549289846483375378334826464526273959233570787468165055944713080808406981704829821129263736749497721373809358350108258069322149154749706370085297581620573966677583552939894190777128226413276365891600994773409221907203582780344070192359634352458183315892116422988886944035939483583733865498949757371468719641397302217278378804707950390042137678397386837711794894385285952552197538456972320467479604394213276557757900435868699375773654547652672905560826476407947210614686984738741450193685800024999957242636394988093593587894268813325815614147076716222322443222543029852737978372130459641377001914728557542547383686157425262475661437159354868365230004863810454798359676916515366736275461651362858163622972271354321577133964941159123956765192679113964105758414493895463465580636421222542914924477942122723732149949826790937282393299286345631587503816578945545822941101465281742442336765592276513374841976988096738674584783485933436757366893149888915627681696224547372614955992765593050978092237996178763824117900397457626382019196197152448298619209899966520977438412466743590319230272898616762640351033252506510392828519162704412304460961201795085646344732922569763409647996219279734503674548662331353845843401161995786386370851917334930253332065560302545578594018903743802481119747481078347076869224732946206062199106113318689340907876211098005368076082359455323337548730223448900728278652931822603301445325512748219904719782881362911463593298909248411215612953543721638019697812652179814472767398183215446144129512499221798006757782526040587076706701478729531828182267950697358406945708936716651211563446194416425003758600825633469171708869497724922566506481424524901020867324539149654200558538947414930944925597676789825409311902831596699985655347423875834908836151501934480351616655321006698107910904645416208880948538481016800128364404482568150482128577255055394379116325229813990726076542270789110403600048329603770833909760493742007549806520480174111676250275525351758362166171261666635153677380344498095955644692640799511471040773380066596021728767462502306662773291709695135492325026613730307440008465919880929508807729634710053890344965809009028810486808997769380284394667150574355457854121249670764069782551646101670918990605034773658896931587206806725475514635959227181423338873840288571117991252052949076683071432458553605225064731860980902207544222777854937667340538739829863147489387753700577830690304981387925495267768054974537079706922541686731317242316310238173443515241694750778014130135837202767431965123016032234153134428860729180731419953791324881179147918295110365302851666845008818223887640031884712530107516608614195541751535966296781504259518574480930322185543466082062801812264928370305942618150939615645741519568738749804318380950664575957702541425909890857602173544251985306293332563498987860747597037902869869453844917862522126390278638145799761677209580302662757377495472743889106295340732249683586436988041997450355890459539302620917227244857543169586396035589041300801906223654453394106800864395156713918567734688070047368795780014765124627929133602454860996552868945788132374423748443123992103866482204402097552884578167905244742013651027113657713528198192366742242347561664220229777920049177677839706694144884873117825607992362434538545249874453488020313228330544734461732182769148642880319562822552937760045135762829063000019092861466302984579055789109530514911883548385962671801118973442197287936280648585269152831160924534653159835819109360883971331197116939685284876212717721112300092513118174605524702548369204919678066391730352440142179369745271450077516735244481485747684545790752639844597988361599259767131663181917804272515916051010270673975652356785387545423407731234639661899873557313158432774339319770707176803567692840261555419497982883042766408667136272153441938050720047806342392925355868581714626984507809280266064573364965566241796431144406561088772213463737640176429939928291588571957606925296234442320060570581294578395362912284618180036802687604797924056700851531874316937242694486281244525491297198727365979922287124347324191152799615633297759779684985535740930692690264562904355660023925053037231273804869408751910782043326659521343879095772518586263825950634246402093247628419320565387618708071237867249292386646462299682093330625214583481950998478958388132713054928939050073289677268201908318878355224353360199840110388290553386985416837968364536364199583622551371943265102888246058021904090521931615359424671085660830118568659966856174982704327814100327774918277579164933772653524096259628495410988407462759517160791731983786087999481100202627688181006014414277848841152682781007817965595919794965677931708302608557244100774767308989454124017655090326020156686558215340762382872199503511352027934874283471658311258056464253310178015071779326633787652314231150393901811557407587640088278520517070943152694672810192262781969592247607308055224380427067446048689968880573665244233061815324485732873620137243575797434394802506200116223876668837449589117408466615472371465468672510271155946780994680490292400642080641104558241223818457484848704239148977692437862858580998649839191202766928366704413647233541107486970836152397920835345393172595131989769585947149742174543744522874514516104527796495036244303870738399693679073810313488564442113255301094122267458796952412113367291055033405508540876434038243750672311227569041342291829624566573994161130710116507394780012399455380770684147442104330548299828182131029367394304195275765039022265453721355453268102612891739960014147008934578617051611087172069373254842929759044549659241238667116376484879425880203590308385007822336474791441597365766043237905492684462045674213091010570564323975829091906668338202919960958977159964765070287486592016994264235549650142022675190126933149012724390076032517339429156513793947011646320141239845447834541723688070143967960425578080741859787163895081909602558751286180790631735517494416320856372087023157722184540942709940554588427116247008324214845454160940196270270501714651669660101878201984151115462337247612375369001063661462918030535675339817828842594895843433841492309257464040131666334232834237585938608204862421433674343384269166692758627784259908627629314246225688287431928003926126125581599951494155128730206759767150804866696147568693454633108571509907400807023490962522718659028598217793078981244327037261130792879838465304866916966164944596094211222612847211429889000783943833142397980672497457640700418296749975971325285456617651894302122217714579385613110458510722315824454155991236155593781694676919240511698689112594143810300410380678111697152369820869055741352005162471855446505951175542117484461303360881213496032484929084657546263410017403001432322796278516181426801091736844716637349075081627017287187179361017644805113989777221671720836844732396178355914897740649498251589521462561683749650654597440241592299752080687060909907226708044589154467723997969306144909297369424735387584858950631166180071294438150620917862435322794177243768395767937081275964519636310070103988359499072658118649550886483417152690974373711617873580400981921585804522892764284077652991777176516081249048059868380765506916477087656531329274111190773073313667091513767922110985203193585908628141392205300657052553965948068369694589752862940837663747908946461319697317354159579463306619724417746644123991090285208278949940492015264295971001819815833662061055851095670187127354884162951816182426564712224364791987992034193404006246562527208906677242837518092085168773857175562007025733943960094505364531926954371094518490585384897048819198851141961858056876106440559081612257379896882417485897256659016641072048551305036820148956952231713161024260012597845130508623912373350319775841977668545977759339996329206067659385822364370753584632068168145520014354982859428938439819447035643286577458634014991617792607546404508521215583399883129674473862784641978531758059755018738421998705926995660329141836115484319794569593671908359570032452787654056558591798545431260230800326140475857660972584831485457277919377471789920970295906638339940770365778990536792712496798540868342933739008454983559826497563881837407442148948227974387228190690790544379803450653918073174973144094886438681208676037762448247911436331068795469956756519525732912629966603183076488952401205828634360338430451857084389723516349954962059891804367628269643682816482494232482020246234125816626070214847245915399770834532394346756216160478881741656567559964329273836935022123300865277595059931550729659844951443404039273380393110043551607974815260087739500739015307764441996810051476371733956313110781266096141262466949058627630290451047501657432730507005625704297263708764312983816080421394974141772239748389079270334089827186480361628917404642309354456010743839748053131179436306320260398215788811498814642534092897782097500521866457418165095588216764802173512041058494391436700460674881638549625130747684995540984934286703690440110325200210644102527561946865781781384033725281754155875753978573080137971848716022741365666580223754063522839878012891946510910753871999183980347746742288012069420006801858367680111574242062961096196056087781029885793820696467983726259836627908070107400650927337646349379421813515812530325734396815357723524491815832577236557692989838404162914624585795493661821168180451758000064765386550375493593878155355904420802229449501361823869879245776994273114095967637935357803999124419487363319418724084526026304600170406448058000170569883518060188331434368607629192410304530397892838667587334507643379043809086922851358322611814351087550744418093464528228293875632016797609689975448981079573029308140276838015122376868373166030652165864319171201188718166916994189940565015357721152900147590299939496807089665327478219016292355877880274150339812717823940188419645455561051422792253769185680901326748088208843190391466642828399560937865696019052958889642428349083020014955748735748281674338986283296796111985802496710841108659124902768003843992620833985429068877804253713811067801647241069843648960782302125806072780685302511578984163726650182251900794984093551397776453225371971122964621245652465274101261773176750385805786067338563066914239350485402905865612754224388596651328057741064217187775145128286268306845401554377441072011255676613633557230873243296320642304114980653598151499929984388365688382052602449934659616778840711194076588246833971433287182267213128094402717031039011248728586315212243826518922523163392582552027145136294938185998472911856318787751523957691926367934811843965795792355298658742785274089441562353412908159920649071916484857770593265173548608761353184928151803173331332888755419800586871716564347299857124832961357085820155888692826364813834418735287838947345938082095620715901470930812671010291137013944638467034951184501361341703100779297485006469838968314726956596585274248104934411560868981594829330750059484380063576127920788066881056476307217676006795313298462555624655822497909355961621005655764304086305465811845251242368109045823678308350556763904667411866057395898990218847308898081260781293313967342546301850868674012776685683823817138886237020908666235189865346275194534037287340044670258669239862128632849269240812779487819800586509184261311136060896709609853086489661470651179124093203941712434916830065684099278321007298149235728202308494445698151601842369864685647314906812417867855545301672122403718648984743714030930710063881814774766097155477810738500961685805759392929196023922685599476945970340550054149915009552723223017904276632151358432050897316530110147976845467343630696145525329249226442063642858212891846785931385899056696385065725708398853251429213218642128116016121592286442802321463290290952705106236338540187599822761710877572765253764293736556258928154915844948535514405353593804876728728832566983109519268224802648982396838591098254219161711154963740928531019791150889920914312603400741795344609307006861323215453342731426228753180790600824959675179360474294080418142067199056090495244878550212913140979377528725260535036208342449329165735817128164789207381403751824860193038197136228607031959707000800331156815855230779785199501449488235469285086609522433593559618366651818636503327999832062104244434846835367922005032447481166344536152918664511900698323091474538135119458389121334770824515391847878713307835576484374207168706277952173158196136134198326905246276601429873965297353765977767490499848397008534973473814800620439599928030430597414711557824577174122125914901745971246543677612408092254290320625709997357710085720072910187963157566222783549847589160895673343972478297492265257893890705061523571243312219312464385026442586461943688603164598184785607179544948511819438644461940411921481070212287171802487986893019738503422295776400427028393169581852041925846216344238473553466973200944595956774996580362671760465556738012913991608107140615761744448942766919261421833609375680002705263889448727619166284033434206977508850573484536103869669322508692388414743050570033369883683083407808648003815551713227954906829458053479062734287789848353018057529757893811080073902948568336171458030100370622185634594433868603314695722134999885298952227747942476738903993765787617699963151367592984901882963029611180746369050360739953307015884497528690371124551177063361762920878689464019780926426824808805656475674299896890374351215314500372402807466371946545676431922743806982949034245211374979806510441079518205233747498951919879502915829363571253809517795916425250957385278091828920060334265743125522250101723993597656519180120997732572851280641951365677598350844993163147091020341258190704751159979570151531695340024802098856495768911387831859027799776346245636354951411901307992587580514333981109100204642833484160301318215822165715030429757129944458681665403787678626160339662700275085188138723412954102847701565545340518560916599978706517827876968507691911233330025148894914698787912287352681948354097400354474016438884770044813035712638273954975810277474498109749568171532235378213770610587824304739808426265163984006029385804099551137931788184914244701661581257646823855648321224446479671346440013565064613656817329154896142908122538001354593823611403728634465811085039825242737625817286526384998468346288967978027033911965684259647728843166806188524721465778369903432476754221653434726731505876498831308412398909049983704816898060028388264020211931703666760694710043392403034219641514323958962651757551447765105639293115269371397834934178279670034662652177564026831958696156812461848113993616062336048177361987598390154505140787018854543418331804427879285084046750584857383682582908410897408288305748507052521440469362976886999173447365788615900517237192248734770682942118882315838198906839884801593825151577743072566192415979535597428833966780053753019916109451711150047596731702430821244246811051590932851679825048298866403193137018838849880166116901737391323584749036512246835106531462223186751372974732718415669808218429704206333292664216435677405731727608341604116397392912465669359122988404104066009878863312611253779980837937341369952172358873199831486288316280258528947902473023947753398006132226949022333976817506852508793838728424801461833555818624049744457063995596172431277291253964886907567007375788832170232405600672410100550379437944113331086660340304428890016538325051829579448284611674668286112563122943522476449729433825944820240552979437914705645526221249678055021088610852339517829787673584920397287168212700039224374614989172370773725614415078670533523741744365185078534498011000518767720189653213567921359182068152253488548459082694637423986093675375545321909452213861453674679445589131161970731913898640960179798712556569336198008194021382597841780377330136491083429834206549920771125700396150485325528754917287598961132160495793446038545649617365051702554052433774456766957077172724020294498425979877127458636562621403129598343549908384925629191747411791248290958098501365791965961863791719054225357035808624987373569062046031899645046432549411226942380927142243629405450184800490566502839521403267767631802134405452614887334665996992578236323712135961997129001203911023007320671009940837623232377706331688820114429422962814395149759366076761410392791849956561748190252939089654860673529965516847505658791524591548165776065797117042358380893156336808052571028094872127041972581383542800676115900091387702216328239804481244919283888865553737228994069583902587370147097451590556449397893649483007622042708993870626910479717795050061172663181452078026268831129313850316736357154628223542621502322094422956650704100485959757749612872821670095223734687569358573979011385201608389210159767838585181507452908744741938036949223594623698068274340138292696031409511886362826961916895965430943135229747522988120311621247376859989485443565477601556256789162785395542456236725679168746587806782351114779730146375914508511536257877278029127135671008647585424727053566253246792875719818255938664033372806123798427324465159493882960852111338361002597845047530179137263584668432274314696222140655092652234473511361514773033422264751756777645383992285975540850025863874294472097431226595630657362909099332031108200784600761399944335980751419600998608839249655300749542872290762732229369980704109331851072482985728108272789003257148080178396883650803616808906117664849258016628258386321407373834679871874887570645790579599758792440403055031334103505228326725512901978722625889307464421606186927335933526826845754678521439405623752624552741072329274890372801104759207004572043835857311556790742001595695284016974277055167366112463220182409751512168242907667828112386773080008932921609898813278360061328578556186451633890748778087283722402602732706238848498262174648954533591571541083249586987428038615207757932095901751876382220033131814051073352913513103960792223986099333527990495393671638857228921164010698642619614950469236453291077816712552558162439009849461812783809112726731234207039688094092192245336952820151768514865642698353381103384400982617495862846654640575200103219430927168007088358123271201399515895073362405459830180831687808793880965565423489214544554089874633706137331557321360454471660993478181803513006679854683995669967332767310893458876331519816643202952532117684742720835055255445129597937952575118965052806706477851972109337205851038555359021856441263921144585370763352465523796343558048875198478561867721219045811312393850260639505139634218709278593944148779247067614270640193633273817558778746857570910128431715995376383958694546191016663377617506413393694868414944957709014850730364918388097247540161560918254228292235603973478123065970758394255231335409946944662990689570898780865336559149391898369597396603891180500019012843949631633531024246807242816216557557458423707203355143417967868886345358206160482781615281309018240228768653478354610182967434360029089124655954710749281909835081840716073117562407092558476043791661324929129584136933307228065319087667483501743224181541680414031690268795944591910711065883692873975397440301478236110875135863974722283100430979278466957222713340873797558485722589865066069604590015678133090856171607305807645508757899584934286482882798989719267877805413882878237164461908291358699128650925317330506528757262439353283965149061669710504813681753376089820801004327108482908777318449891631903539775810762544184018280474839970792297436143665532147031691520118726073755028539500602327111692286110214114071593210193104386409807235922115247514359028038829868334380991779507338795416986939571629206099443038028170662157748010930139013116301951445314811422817997400128057561837822361931451433259807962217096911041546713415670144786666089707631609241904972551050005680076730284760543133604870453874546912406977883230779058857890378075369419757566439851534872154868001946195864714032041155960598761989078313003347535705944566612237675277439483716773694000012796821916112744458977245300502300561303042091710643353999143647342704332173468375043197472540875351188332455378340739923496531740585689146399164159989101028726970309641769538429683605145925371562848596962403912657914742203914665081716243748227006941073234413131889085785679837313488854239738666467922584964895332156041737322343961081828859525771689288843235066784830451954266154425700312030648712591862944606652215253771235708332919172646688156044120427471153392589096392428400935832774896586668416409182017481570744931930796108441015802907543864930781728468947356462847781581591801755456502419576132650276353349029746358385256821047027991880866268284923661879368819490121552959099130849525876956419490299196131024838830965329558064786481983607318853404588084092950648259392050420686886902092973585307443693945305923451752412422235759769815763850475312336405650526388228090449530429108229489808478500979452785943321360895079229000383726549963908459292961618450739196398967650845178989523014120175054351837581974597906601502243161033462025057505515710360337130312433395309745461992426283935003615651956604340316963680456405167814052179177343316752912415116040215218562983989330653391038715312615539019286396613305140684078092970265558922686647628071475665817055492150018027265906535569242521560974292286712352614263679982722497433908572877979817146473114572819750234887948807780313777907686626343764998251235871209941619931973518278498763844616067420506862491875476677962936999203408128631060745512714952987623228318189405678011061870345461807937145074480017780443841451616147916297996447688874429871719376054630726255348002139881587074419181446179153386511699689808807944176950902216808059501475843693498620292089989617723169830220153207096183988058499206307081587394899974573866518430433916604015780913724706866896195666916691172966388768070820377215081805891783474235348671612412753196048534862729888014630133433330041570564335964747210012400014923085339623691265472759573803955391120589541000349975526645351725356084911753214387185191984018943333131301701611702917002273078461252741819275491958471695562705384326600798703152954834537144294223070821701395378316228463934895128656065441647591022477008275544754579613887121744743276186385426845971286841925977464341452886532644927225568849207496192258010444700362070328093588698292176942000960372060043504385160740729349134902967843720953698785965160067896860919306518831004247506556540217038033393000470119825145912866426378622454902398724776695228384816618385898908583747980864518765919316457516626747396252986747073781817724112700868171821265866404701465118110171887863598678390240484324166103609746085137162884777930397469279092602988108184923392161838509683890560165861150319957253394424895861538115742410248129785982182566894473711469793921118945788389172612804462095266000715242782755554233102343247286272905185367765416531995394519503699703160869574310945573424317071708485718850269045040364270864600511391914126112497940182197219487450140458134216083785368837406664281299572979956010933918177049952655373617909820361010604460168125810824025372420241041554435288769712699667759161409941982771978219418665722290415979706941476387206231617035006086462145889774840478682199391895737818346144360021663167991835712348147618145211555781940307015657278975732918067164852506304359812764670533847724923745853234167664213638012739289295953411906198389324230421539772486686735697182646461987381585362281319403721179834262129646912259105585863818767289953609159008303900981872621552537326123945197566808865106932260482002553591708641338105652447765501555153353683769486885843847862454733059832715594457222852316868510270256800007438298410709148920294649657115757012619341134780975469490155699827682745107126709269107679914596422803628142324233875925446045838380665293130652271359574030848021958965135589333724814016271837006242474060489250440803655291151912080917597749968026604461013174212962013690881312469497882838095083685246186762530978898746349991045910580826825881259702886723424031805709379221211620415084760780533401731581574331116138004017291927026484260430853812231633525072977100032847373667943742320530701513935713161867570705239488767393266555458308310477468743959629880704623645800401833089162107480631428801990566859490031585720390702425433962528723670205890257766808393728431376764618123396315782780729750988835013848775205361869179487217495959607469575924535620163158897186280048130408291951327299954477053381049005010425887484639744691141027764920811600847428346736609796716792189828985157427803553765740729332330801100479693391783649859590735106016343013857885430593029920231279227767598835021814276633962357506121333501685237531175615205481527477637847827570869192597414829280608976120709985095460192454633080067627069092698224750263729262390261466803091490799476351094651032564836398757945106024305447704531885271328438573954318220293060595608382971901177230504700283648345653841716662202771485788761328375759063061929111511245606297110617338933597169972448591176961118579589654486326511601061168150070211219495153220009585464959287041414643668334266789279443464318093537603982592089763222075795680861452894148341036616613619052914679481373410161221793518987855174722013572195763852866090155929255949508401692791058668462051795115668399632427526191777475141407942166613336767155948018649166075772079986133191827773760595926437949857215885826639918397059964710316251319228380397830569319022215615371032287004274552630321395798879107232930397463526411646199478434460920536448637360861312651845378944673942572095043029091560290598244354352890155265088621858819383427795224403883495229680911160610245650549718539326354637469675578220213977651866405174861501537575748458637631381061642439886201721751422462043111224641785246416780839035377114775649410541980070231676035518150020208192913101356186200710326005682598732618032658830555979248031177953001755125289818220065951193904785161832129368184971158260441878230936025192722508375209432068172802213761779562166323348325968312604967219350920326604440743147092531372801402004418098681219669714800687437208659479281652237878510455467933628415785528874686613198100786446450245448146588877634444316826198465118459876923033708374670471034536371773106292310343546433204647172756132701605680229225380555444451717225894830388216447832426674213787021385578785161112823607107593473524026982208599100518261167776241884525434880013994332182854292817425882783904965788511822440647541676558462681992764116630916655946015526067183471040418163650812672690537551421697271046712152891649515426205718094536406701247235834248827064936537686552714302885740194381027128283649800089350263509728057620155262544502319356644349577757516647873746266388482995372623609392525877406843734345437244728308913251653478811280327259535582929860013386243037675042286906582820131905671379005733430390525340971367214097832858445316074135565055120891579152869422478727700954181472608375009942677017783927435989510679933305647607689136941042279111152431723854275443874853671922209832183482301893066525698204057559386943624274903137850754149876467247870269002738303119431402195427526119390166631577889573152569240571763583336557176316885087392608799932538244877657997626124189626022434723529124445634873911958426375986868059573187724162354178186367323035884917227027512019474103699564749357518429571756297216591268260121026747999309429898057317243442857442033885763447026856439101303688101568500554598587370337897947190627821005232106402041995830089747130029091543500950248584996809387088648716864643504165112845980144794744032171018067019871025808607944022223936632385684118967857697487269176334571740642924910865369966175464123661379379693622482004413783356212441874306060173137629350419609718055671288549389213883872052318984658390370986019966948118256793521538793085177748254722313232695516723141415465916807104068199681387141936725478261550943401411801129042168770191063069451902661910678394882378934471372986513553887525722139849084656778673133491382448817174095938669148787358561110532198307327111251895211720452250780627061555074621059751115100370305519420527035463573401061754348129372077836052863383684372861233762998041856597736575735546503186850195260232124799287696299803073343740288983613556367707505481617261442522541804781514518825755102086102818535846605100457105193063819938398230125883198415288801998185848139193746598999876488301688667288879799750531081513657520677173920289058772373500463479849303514551613845561103005427432741187914973033218736673791559106617912178340762191174290659834940141238541454002285218583086329947121258776040201710718066643799778222724001987966453387894074122578817494210675972091138242950035021825202572988781842577713604085582740477256501486334007810776208031750185513357088910614211455297879645913162967996541609456035839440882973354092603195998343175949884818070699390597083810463517299725383607752853299881175819697881760775437410785809367917814286207070513427738068305684623568814652351600702549101732802451438094038778342957153321629001292889975532023265340960963014220137580368352130668046561857400692328516639038659745825500333246089492429859744504384559212000651738264302662794935219740138597353317645923285525921812281907736709255015036506788402385422318406485918650960329443146477715197198941213953732299730353167495775526744638444424015315136648504282213629843773719682756589374996014697484093088870747037783580165594975222613586246310113010398934647511888362806448606019409958420539662551000203817521375290877714054923951707590153543742195753916042382276110248415064197531259964566045796951299384462143871911472154301109984269962081974785938068157110627173613783758317973980553152289290002067202301091313325890251447845197943144288842856560609845363409364485748590125372500575708364084404766681664494041937948445845545745836469780529786793793960308915122143510651382822419788580817970801150615448387104704091467853741673233822037958124643239296958291880099448282565709704819410815028324332579106511678988645923571485263317157528922335257643374738185542717412816202625198397656468125775396420824406077786004405753327471999295970796070663958379657713469824309014044767161082133926800232657975816933688263398557584337090622578218246897687508601151191420755195740861412248254717608958879910022366474668076947728767812612795168208517169366912363065961137044427920231089231465030312506293627778881746060792318692649575597669928933122660789615452901311588805793034458261137935073817939670195734443786784886797673706661781114771502284796575738380487412418882563653169269790467115666307587196997891426926342504068879242495395020647279149720895891139865955121689822974061176381142760390843827692766804491304316997682274327551992871422737443086607543014288744991790271013683980940958620526095998160444728207229842050629107196815921675437771499428555388803891752384288983147169975368899748896791012437858435474494642427482461372317437521340880324649766719873646237734043240615279464753831303857263067565554670265525093812295754026098578250405176122123320535702359946603380625593756974581737413061730233111950692639809000065557834193923064445739686135652495666210428726201786480471664918193221617529764244887184349596449755989960734247361581522826778375617331448946844858581497671282264834992153130052518199107882464859607575418135526484690823231806536962053454357019671789746242120839175059528135247156339061113611012939705678485257118111870614012917766287309924062178919637949427223701807803269951487478321199297165339130982148321888352350753912461065090614401142630382025935212202190591190761995171484575548166534845742469972386924525512884133050032883170387991495234767292655784903602006178340737282319837973577964567072826109635684551648134492883983864319650330078723698324077756556499236158246685268362296498714472008179400103691379814117226999573500543077283216680564475063526354554151705559259680384911446838438226653853587367647217250989753975845423544730594697802639582364360169260527682919575137801846636003026126838655029074591498502653866360536861803825534303151361867999904414888296984105093161601772542461657682512150391990471486671167504134933710140138628188685181794084855296744804736009559889231166561991166355776082928354666853715089902457797906102191609376935476876363391171807725227169971922028707733864830196887580218445491567216690393189821004925608284891471197851468064039284429751770342571864432182702639300590877835278823207718940868883907235446440954849225494667704387849493672111598191264663171299022512939696968904628849137065921873354707381861178034031812927371213670459107449575830663017643951538262962201566816021910566050800196104577646711824606761022789134144735984931102845253701340657926686167975461078783875638333637978483663597820574147868451428230492615044424668646466257772318514988630197653684498472141890288351382452214196092209688287773731177652386318291143730067414350230055833196430606989226814995356069916246831383123430455315757805152776608978344279318430351198084138793863031684769603292250380176373182103274225221869672673226873857118032949264176783140336721252575147712168218567694888036301805525928226102352258891244386960168183864981584278807697347674768392481609773402679649089139548985128355484410061068478053667573536694766030724593647933114042158380032350108681438068160010432095404221339113746661430187357670586716678521589420058597129990375580589897143223665854117645432922287973180140830626546667151987522023099555542197174822920372234161882835909107056661985413210633324633734698476836318304760022147344802487282450510355134960106989285158396624881432813967783972530630567010165140109850313773627342791428226294473955779981980612450474592579791329113701833947565230942556599552469607367186210656645619800199805487758845927865059494070649827544805158208019106953775914857149747871521981452388180917390570292361865777629909837231667724442731663707526467901505852720633424454885169482953217890596922144164262618959142532537794829097724605788157022358315593112704066207565453918556896764404143609091306282359160702717117368509937279946396307975153971676737994871473866581141613082143365810254548703366009466818233780621346801714116440438952154723434987604812405512535598037724579304332255159679947803589019858149009003840606494824321403850540192799408362131321595094194717826654127408597737293048525938698140224147474088418088770270488278300298838913020034502248128612355072449674517881954808979955273912337578298442423481303877817986449514349142055895298710390050884954245157449399860250834411848265304828720984663486893925140627852078491107750102451659987179247791550079821892596257221459588302507136708403396626269054819137402551467438910875997521140049375297956841603719820757088133500649102901048394664218886611700320940766985841257813178728110487115353549344293960448113199131148333417103571355984726655602621835694135690049082390122994605690806177851529390926626676174524277290478251493514074931898632009118885484174181843649058489355664117138878930010674336344063533541352732647707738591519927813838484748204912565008701040071995634427662104126681251165915333413654632626617298659137225461452559120950077166588145684213782508567921377074626311837707522326126936219019600832481970044399064248219944611055730569007608418196521915072456295948021455806911506934013979687967323268881793846950110415030117591101177806673325657850429889319524067920481767228585435324670088099114639650749271279588699248465526748296622926085429665986546663105122675772540065947336788293094009024559590312968988723959116997061816343938902191328033687186608237811418032847593917864096955727451813757803117518367577948442210262391865582445685399302041266645031729180914519099045154419084613487280747587902736418319399332122952251200420071587618243982024845184455491653855463101419504792906690440871954331780140901387604380578316172118048242574309205384905953730658714752381805727232175571923969361626502311299039384764130445370068736352855010122131466067262644561736619209876325319101195764552436048773533992740430027353110717555977491239316119360082394150394573463293053149733805654349066321687736528004120860219010317934653705052929293652560167307339782735334680278172292606360188818328530042810038544788869898798979988608768121057868134812828344600646864519721109066502205939670384997403722476905945357205900528088815562038745059213268481808919237508887853530234229403397290204877466770755395203944167391906551643336753954868059301471683089568395055107188209370429475439050000257766909216768829793384995994934277443267315079328638069903383545639525362735321415987796755459178157291880187289842465840577213477614049497514790745332916343611481028033957613638905179874236009626500484664175714989681323840687894562702560519876973357215305073730151027408438244214017212277345606053836721697182154124508453349206542622184082587186631460346113498730322069412859834907616403292006513266717799806744351998227352928791969908885999779625551463733941187084055520262631230093652136148804188504999894082125221506893870357371005340154931759061184045198188800252968775983890366875603402841542416903969336229453221077244198120196959476801708484425178202280175414493748683732515175682423052131308395259496341964879326855868703619752870116693306012628231158308319386703201630165341836816568055805742365117284591751332170777739174350804289646720977872261114059249714193490284332272831914743665274331292434474234314007932829624885766683751389859770823711359114043785593353897610242718464110677833830968721545996080793044861487516016673309168746265660006265050931332760590149949642594573919393411212442766008507537642195183416364890611498133935303742901555113832179298664849148817024919593444092300982370030364860958974978397748418527908385457075186014889318375102149989754333250671055683912668044034765971316568082584664418139289395522360641630263192117559734616268693872757540999155270235718297462651478521146765184059842798717931207358495448739966962261342220631280198446736449655433658432525275647571205875395990434424106307376711468697384199634416643848870790102094512577187049642981324802702255057509496726930869090852328895625021295885095855886376086966236147168811023071637705980642656835254106370564048780585993413363503477877132577198450164863072216321171350793313841968632998699833385955662635330228886650030534957131876133148840548412003321433252072094892710841387544067268631484960878393172209440622462887877402526129051317882093410073409775064033490592620918400474949165076898009242746016825828574394384793401049134976102704654366609966011668082378640944771233237213945657434598439364939425330691555424376912423954947820550217365188668134043495990081530535103198433987121794465558277320068364115865722253486731520265242150448268777544005463942012216134296677624622866716746141807924876654630828134669020148876182957784012667575863811025655070036192651781720490960274534144135273405053095202315044801929587874857846511888919270094304285182709291464553685179722242686371613599581171397698704619353128963669487529587853829013415074127795430681642102279771542446508603010732850451720453524679088570267618406977074142436101528983555509380328635852566787759153300989024810730000578515536126773022112662815466878409478996090192609268653977947690726439112969925011771986788696149827914793400576747175912929177008049039471106244175972471282070606294683239653919641471494639611967359562654602438827676090830222621359749054585668106257529134860801928395796589029207250838593480199766328721170815153049457922226756792857476731792566363845557756348213345934674490252348430980983805040090137997948051617625324292364155777189992280558821432760742800503332865095799791303054286169549249953461496209622982600263371696778724380409763889237717043497946070836270939297289319446823712056920277844510584602333468251443619648520607210488474498943284405146557581820820999793776653460489931845875897136168732393441852700005703341906185462742428576189132761617084801818624532032706701886612458303620580909191128957535606703165239762148552163355922282721216819605391797885676784564129349613238846324821792034493527367153009101026639784222443729677394104745561735624591856252743168066719497010969198261185571921978174122115329769900026320889781737285545224918159717027314904424617375974167105870924710293593520716421857955027715895717354651178113242446975984058370500303550818615200586727463824321837620924211118346004418479201317531159701112806457079067622481843062939861816691839876862642744719121947942546973952503600406668878833449230745773039276910937749081317587105308330836611816377411620851550836092922001285475770034145708553394051913845978064460130431700121685877384064728078081689611465973502529588617808520529468887046505256863804203211473542342393866087860012631538723696252691935036663902503331993957087310765539950495963857808758171979804933615961553392366391121831687047373049078045537679775453440893559827649836345020516709564242100345286512632663922695106076054532680034162471720087972656253053345338158637865203431561441000231913200518830265219126662470421936793698107436545227805252899552459749995154544985002380841618288298898035060353387068059720287728342914044648388570171260653468155717332458181434942248965531755334331579596945802298919562929729459671788258796746050491748823996066265710290616135635370553704974345489655848012747044807584749194641407071087118925221778548754670759316225333651468519673775161131106796506601363302032138445533877766661825638122243130949627111637211384531502621806946340590375770906518695811871626494183345718703819064382846694548528046630654984010109369028223775395375704639746094425977551415285896143259799665997490438251288337409347558752645596671039372658101524227328200138132590887961424596394779399953102799804851264169152059581826129656153717976889083460927686774944963498752910286843178816603843835979325766021238057787873095857794492008113755444329821464021441663524507144601726956568002609821381302053363179256201641766994315612697292958206620698993257550952346967472337398363461301779876741880291268392147076230185858996118908950640999793447324714683191173345800729040301244786753051274948092219810007540584336393022610206707083042533132383272007635657041649721925780246993168351030369776332223156410077467698420042528783355277368985676808263278281004930543756916393967184144457304125313162652061485119272383481768331913348070092962381687082922492283625914041857484681915116971365473038324272934941235602865517883253098680460705661345499685779546087741242804629559651737254129899915767287428078377604569424427928833559133552389676213736739624683498264043014888269504988634132145953618649220231111174744085885157816485430949929894572630058353530822276968043373087957899028134419439408775719085506012675472779242808351564863593278028304936917843901266060895959908452990798686430994667692535542905748807185614509332942958701158082801822156364820725885742683723646922744571641560956830229537532098268763457275675727228626583558124687962024546604650460299838902558993254244545333731343341314969301720128649439184522721145721313434537548478347884697419402000310102509055897014568288350640239428061855780390034697179270990776975652438329336184563041021321818765303240078272097448507605624532608897194667904662829560243365470531273191206582277759521359573182794260517083457297651942564173334541908066915231740382549245631824254157854360981768554954720989037845133720648539432141036872037574953533133106975031965040073745504040475199915847836988740139168129321417605683660167417126099469634703676301846029115905860349415232158371870282128121585330700395246643056147498741875575717295075723866085780157056911539132145840159184778084064139505685698789481452602676812109046582611715261845585022846351197733619505006443951123980854177752463823793482214476571446793490589953441478548981100923404406967437092989441937492040082431354615927210782166245650052326013782173212607245447748838481384086023158871146095624147192827482147116377337769691893640791228403878775145498058236211241892826781072811293190046255243820133642687908139216717488961109952791641532751250725786186708392086967169333766223831781248464965960497066985907337388631474303359505301570900642345652668460294965134614204538816714660321414679841262406826956831871913565690050320027479006089130882060150555222786824784637579691596315280935429247987945887314610240323005600284656185688514206189999087871997238025215094361833115378706189847392880331390584177752613582993243790725133742709964105649585761054560574781527355045147304945190430094863088857719425147838213344591777482912049821689075633681090819901890933622975415019596547419064566873768771664279578614452668875916212835650420872189939108047935781041028139548122274274301838478793347499594780219188457816970906462847029186987158486976426597738069130331826114223653384996180013413315668154579811131640021259287217301294023698827726251848761772572542125175006497689811168032788443202200066430947950205295739566318093372109267630413480632114512162473240035316323648543806770637412281835777758734499265056698652958736451903687446537534932045154963892691460496038406590420692360050331467147642427823821279659877478493587041395459823238808564454306846948392084443839893260690419864355082169240202629232277381066567302273709117167244434026345001801339826235164879262421672506364696039987919989920855443890924047751786463996558033010226755582408265496672146374427694630948915923894184853950920084021413894051346628685195775981246331328533144075429621988250402744015579308336508114075419999450061401166590116681269427900000126367745670946866241607297143572875522825771156149672209827649387467958373961480857297564002967301620613661720116796599098630300110613975727881083433578092799916594323750663795094184866249605482969578540764144023255240788039307256689059938881591771078508712116642098794729004142359752863032810182692649378699558352908250016497595952903098701847002804043156331830004406787632676806115048027110617645873586208702982902662596197987421928546892725897582856678845406943419574489843607634927977256482712354317081428987606203478840047855591997778223959052430550260347403032816981695109309799301616421259246022857536494596933944607872022110573605542360280332297194586320930771535737087155620480318304394501369557936128763495852632335187933298979707207268260231086954176647708264290910770106847937845197829858655952109546030732279887127559742185625561906227893697181017340985520327309084073359438067977656570875863944190613460638222652323214860643253645065576905994296575934293104131615471311084773230195658731582235009267952967783713239940427210604007664301185610372063170226158195368033580360055232044717141200988252803111146842964036673958061914100753181875527207027069606947483391846044603133349004576579426801100572074681046828359798575998265980358406754082621565061319579818172390962643103342068426182388716452931787775315734353457927089622812711996793421543921284480045808169215918498852013051988434227516898766274763240902835282553678128099764112580292350767294383184201613241258504400306239628824367711007304559341179099664407058235013001118022435947876737283630489363389272498836103520277122717682861409363354440363103533937346677203233079495082728758932562463202088762955920684368377602739666995389770898426169064828620842881486354286315064379503535334436498743835017273811502645887145791997836669288378033456197861571539199926078695611606720402543868037251452335906371946058379699788606379211556959404452029018919813752129477748225937816327433220202816872346963175136222818248692103411722372303360151808435656785579634142017947636727918857903826797892164876792188008884842544293336585353352334154523728153867610799642862827740798343368396991175336569569960309910590815269314423259851565127765287099930407965381108771520811034682371259567116959404330453219626779482643614027575059713857982733574983135336899113493958766746699203106039105453391553869833998491240279690714316162602807185132596047957272441708863885364983829848609766883327445673212416363543359298492908982506291804970849846727703893566258920338307399097814391507972176090108203845496608300619842344092386502560110137812129015881109331740217961903667262492490541257903246912857905490792966737997552888397091123463109717645422286750736250529552526675873906659144854453391090215781152082600455511387236897320708366084661996864305119223933921410863782409383263858854424325205529631552604407163767693620898104283531418217068047159344597918787468774479208101805590362116242243573086226022087110054984518138186901716495246078693314851844410843878155959443055655774361011128082656923413253799558737479681272990540311388843828978931972594061533059681619695970328359588986918805798449157139647294293083400192277936445408503457540227547634570870587854028081513311884540838483875632504957755797312287434838737953736097565664262454347399064208081764255850812289707758828062786386558808838735008649427587597623799352456775236461403260050927972174648900192019528046325994333813927719502099467585388632978535601056404135159692503619000820487378475500807008670495183323138995395339281577301039877420711635700518025433942353328416091238586930997748571577765619035841856464341121306212816455312065439216242121709679893376701639689962785056826168300732391539352737476835391244479458943576104243025842542022197141437210350689618489751096899584767485934299626903248974930597881862581666092378651445926170165456746640148492387861133968914180386216802999716505272969012440955151943549313965294069226854758142341615439168611132278532466038276713571324482822641301199402074122279939049690192705972113466509271583373575953915101985833988489335303963476604877235694145776540939800452858037449119365374142814244572940246130375997114939583135710564466943286090213942749940410233818800046924345785133586463524582360716631040404875280109494902928643203866767813641988022122021871419050138931304239406169865871516638235672477274872576602775787098423705813586887334898593139173500613060143242771079615390976778593341490791543264260611695257519762848714224873973330585600628741252364331555791216666118532987398908840030052493160498838229501459505653519706109244556784819900955132367059056725092210602905641386131913451069080484671145134846792196481143611645763547464306823489320444754658777179679523836566076153481706368542270432480493437101285174481839831204162174851693723840714239864010884541842182085974446407285144104355160685215234013244180425009394519109632301839406936517203291285577058297397425143310036457522388205804722834108370333859190269166636833039657586805231852033615272033505376938578777256328976315278336664069804203569893675348016041498965099909237781543970604032358628765556197441722743030265129804025488164842788933955321904654690221179455718000230213112011021466627712191953820079846210550968947517348702646120000551479242848952064768735461354100320298742332031969214205052394369187841791597458070085606932277438076990611026295615380440789145432428565965174271577022358840041886949289469448496420482544189492955155716415240503126315753237289953205511592496101778449955520650380909848234365868956790697893770826965297696680658809476447587628461598723250250774982691838873940936979783512116112060184450074131370382425282381696944136973703221337124310487538553971833468621747511778061065142678172140776204420767502380397134049618077138209938890379392672739300909925935263592571449405590344679453203061625563891308772855445747325011935047896243047649272439749459226902851211792390578563514363100530820572638895021529056961714712973877595597864006632511625560485201311930040512559142854625096844442300284002521830586243062475669622542129628905632468913026727888973957064069280962341971888198164511342834442321818734256104753262363461158998736425198696824769386529183004493317566703486043326140677833561058890020409292339063086412841556417520936307266283408454241553452219954654061264371104689363661864991871800525197019215353565160203860569757243826529247681897676483182581411785102267401118965104339917103262743079735828977443977324127170710354573572843455162906695955427199940340914447429307003515787625336769545037699969048340078652458718511198876111736974597329302940568792995721225803639292152072103141209571491519860751784338693210141667263018837794784152206362332905381424270002707878188413320225127797251377473363833610042839942417419928571387824982409045849935449906802280151864646318311489785179056856484484629437323470912216927480552113963829929270815484291193378772831366491194946500529304498463599532921040559621854713711962212459953070752009050237163557038052308163565989974389768646736302484984305762373232114872946119414379784818967757012912748441427738557303993810634254560225883966792881898825256474801234602944756738824990285246794050404524504604074475948106467699511750032662405377152730162054653522370939917301699578772532374502559772438718653013547869035973986833288946002562493142890002138935359598962421850705204352141551148116474997390388342527808240296276479332083106257350440908516586910921788739628024639575168338283641839247707853274573683136057843362919684375183599257396672070814224806245701855152743438219367686987958184131730426029149212823121878420362365667031082190577520998023870165367902949836696816784890400114194541290851265056199692916162691799152079639272621484410219254442652844224813626889106090313976989665179380092635847441992823830054238769212422095726210203316327725768863822777279405853358590977555857608394688233032812498801967598501956992637124932127726188267345647786108819277933236011444497647101430183435435166621886714682174661207529996274166246607886874585485614661300042066091336232158830056920310974011525765766809368530684238972714277050944069676841307259797078514993773055762678648643224952614556655851862484311025143767154243051012840310918931263646194215751863355515399699665809179685879760643258867172778847542856049208432430681953951825940855040623944226648294933255742287103267630011683541112627340814155824358308708842684301210435098416609916019406719362806256671913257949522991767170271311380846813159951979090895704960064051011134943190455663559853242768839969471407820086494276818353370982036599706290417445018469918376564197908171936471035979501804133983839551185476652009482353028663264159125854382137775664476251502253854924259294741204446885263665136308031058308817700588926688935356000377498326421609778752479760249140435991042397743089746984533596589139207485966400169276086904597972167936593784911675005842484162459581359800824860016328388005186613056698047475268555951985686272790910424670181498496503286495289752790759754687039210097365972959667210640936093103076017905160012182869200090215772603440332702281839514992946794136246780674882603819871610206819193561319816062094000935751617896798234191095649960756999148048189479123820298412480034136130036262376939857154967468738164598158456279360076439036335360247141907896427740944937267665788710807609319990877843904547724182608644585948040207865431077599688099619920296719523035230063824907289501322056546105726948487437845786678024876228828871365617939317970903118564040619663121657614692979823012280481708423435477354917279752522243802260711986874407520516059714646904436622057797117588824287621943698985903733174809403695624628543228696853321797922320882937937895275235034552597190545867464158249686273215678207713684786876105032707112274738915159180247448409045869237070207584412408008758621723182378186933522369667799621841039632766390009264164770825444498545557145508442228612072161875170977977060004971455126690428693324462630344717433057935141485492848785524062450265848612305569249730107299970379022139617338901606970934500545171910131384096183092768070692860107122403485932789664467941681082203059209952316085357389362058726181229898991373034961543598781520350753784336693566417719025087995852914959212367878463449864571333271309965182562577161967763045275349142353282340593293496875061720514735331844475434884343181826705446923970779977431077611894989747209150053507208587651075777966802214572105305994172902572849051018938634944679168865684677969485530400040000576586312927998711739847291596749063080956423062187285328492391332725893105993669794813272116950563226666569945262947631106617045634689795732735765111189061329410796416934899021291157726942090830752646241272110094809406128341089230995650910056969158565139133640781685898455679077508872629729086893625042877155101562684057936681449734391027186000114620864620297164083804758149724259746792931280507943660941436784692826199457499425017114622785130744914276408189195028117123454823523028800214835957661383368220756699748161562454855901807258927870764326859991182678675510960615262367360770656625327077018153708433734841704787448317180394001282092735349103474434757393026114227657020456341966051826870102214792960534889211028192610591172288441970308320297950554510720092222901673742089824426864988298789658100913722428124143618957184264772182144936307422556588062259100216554203350394125679543697624509974234431502895824289861090695309644090833922554979344746900697395174134914837249685700379250773386932346623045990471390569554288738703586168275054495282882080177967822043722472248998666258261364393995816351087524367172924410404664492097503534061197665696192719086039681093092124223105512396304973592719462084206656943201618757898252760359482807348262615726857722524390498693035066723450311117162698848348203499964841646689833193194770508120924015799005188611335095437594773654754029958610824675842262936290984139299742695334080438807242930482429830751975960351037442264623584571050201666901953959123552560212957039195025182064789109759932648783734150413144314365571563288254848914331584601398699178308382687044357231195324459613457617578275202139319221242811857141241108851424458678788415170648140675911546791142993268745481898075825072416843219221867705544169451447800467308804826482360715335467746606328283441859873691160711140401316790685251328390764322058797845659563004110000431142495310702737373603363710830070974396747713499211182814127447237374268863230178623126887324040895492122937664671913428923297078733329589112095733522202271190004137223547241424427406301127902011105011820872533846559153554271306524094422135885067934452915946758779498163911442985112866375516516918323609871083295876522366241304819559044917867281315823732647957245796836202842005304409916783813457459793843126631903518095161871566635862486461967946470143374472516459956004832726997685812084581425226289263882317756516094277448858327686623173521832117891744164709325494963428721893757306034866443315371057256358669002844578574151052794304158278726248413344839082838210663234065441301308701985665554118771518630594593598186322390747037649201132890105293655904954245317137715917812982589103813721942830339917738020189556812577021609857284213716496861255884621943074181777836742717016383431307201751492039373234061326403103036106867845998083201891802687881540026158267974424707874245086411967857553597049037466151629049376199328401900614192789778921846107889505874032956193513799358395377801667505847081148910108297891241753801123489967699192664166314249971425832452459391916730614622935948643478401511994973909920146724304763176722713499385330380732586760642384944031266303987001293494569092810042096443254612208636190444966687429299661128363088017102728188338498694305210228638141779773124491568903263626220182237920690501726007932258048943334878980978958313373898137475675119287611133401452989474841768755181484082736773767103065349294246419422781498990254337334714336042322909985288110752856975429248355000374932948616726872088860757884724997333061699816506652133751374372200738474632954488426654676414309013461446605275122956778732792583341496130673438010172198723645427414388899743859722552116712223642725556271298690152804320734672727430094720244593301138768980831601764025748795630382903015103588593428615426170978961789978685510509329525222788730145298808790654346464325590523877982589590256341844156818189440395058183261800091658321281938125573610567834415568437012575083621617476367530293401750409857026531176699526760706469920590205291822138341479584772845860034028790962310382947302801870328518703198978046004302739963661642123650157710111681676751101128545710506546331240105835845351121715484569586192600690142578463953099856129418867892928860672628501218426596746718906593727180472204636394782470183998841912635453027000255190148424052292728764080394895802213839416819635902352030946924698460590925388347292383405693003821860205262604432735964596790644562288299756110545615415989718508895789808124491129638519127721047661856009917946558250505657801899560974411127450478310401183434533815376834323883874208670130027298071125351059880186313486033839777166310613129078197059021328863380465652415127360861691375636553124142974097859779433084631708470552124615044542056280305547517494300115293029350623117678175135148684835183124606237121934395562603137023891341287708703015537071172657357459818353879195606580099667619462316003282272182628898708911007441820585205488488411732878689821673509267124628715511633284992571755088453866537945431443722265046267973169003499629143590538436046549672916155596477699967885869586701344159499517346227845656009633774704322828302025666203786987628602849133980165044837115618579063718025246490505284528254012379555215272099166017185014214119822788267168729504462496965331737699904048073087412675164253903050276207646102987094052824908491829591921914218298228408153862908256925315914697721338534081057692677928926348379588413287240756954360532342608280351477365928673784761971543261333566494223847313939209605048138525166932659305992545085725985756875612457712309620345751623225874876044041078527357667144408029505145062785414559558434576114719452571524962933777134413596497844345468072867870729208687721115765209405442822847701942216511220237774898418840448044618984306579296776521790087861086059306132949395960808621518565488549748452221922050498554260097967046431066186051652712746532713373075216585796045229456925671769076438177667956869294041717406366373650389458429519733571873715016267423281969773494031618302107502645514123427945964749075939698608115038914836757729851372351085268136025367242600141586520483988496568084842120738031722019464311344544806114054835042633841966573271131929021174706891560725726729766994767501462254071856224457541721701990842287399235378420909360428028165817882633748122649863606634977558827315372189070993175419681520862449441523934099552769086635907777918876540949658354315937559390815869790409095455938335593551871265412944933227993306355866385836169411910676805144242600271390012750172076167432570201188679513073654128705008059071635472778915836148168041545431180775538328629782600002449303476950233348191590170754075113163752023983261352716641895216170881853720442857036654854202666743323068606668573557231344453597199626241153897498987670167886870643588158572203892773553344244819988226752457863845396906580159318639384530621730158297450871086713778293021227847666470033471173946180191451283158672258980443471853737892808001562765846585377326280927407984476010814885983456862281547662982777979815524133432517344198070314278150956745822397356064621013341987992956956324867219116221505515507712608963087440515152491532113395749778480269122289441722615023290488142834606701294690267913283050590461360391023667622996649999826753170589440942206624080779063014505605841707305140403843223402824511195130441932403511499386811134229251014947787776013860482118133772893345040868180643063161781350552179935997466797252848450196469085208058332077163926382650636441089835807560704172550247827431451168145339816043673883395819456199176712299302683850526621623101206363530307742747522096271630798503744073418787444360045474281177899018994804738940954396047427647206015447129552852289924437810760469104531079795152577438755654860763532936883366262766601698914204600201111857349662114415170391778048540437529175427931146096814363755397576791342743004479251402513000871167559674043997790828821428475841844562407819611668051144656590959929328253269800178483833324422246167499064216059521665384724337120375686232607460242768921579102874546896293666559218690509933001245639830672355349864428204680611628086994119557347013090804396024002276828399720100258293798078338203098837299419850323669299938598137193023588806733761531239294773186305573529771629473913802017415425375748981956281947782772063819881209654715951535199226676902620212948880180028498624445208589336933610776114976460791273123139295250984616904113437352867382599305772634398042394468907939621111761992056150465761403419066285155879444664021963797548581381287435960218964998888539914634631071226906357658580694757402652527425692861867705805904539232393362855219864289623116701882024554728104068352912313932938727534459428024869393109008562356431112362514301270227386483641269697559554075386202219931540668197028925533918573421368828787078008387684455657056719908902311835110661989917282912476349274478983691108767188512860712934861127636060877426943864218504790640013063264502151905198778950692182337307505591970220214367258918463683727932760620416693135448077929564173097205607253595772831724733269082410003957946608319672348319202255420906174355928139421842191460445513733871204030075755159857508393580749476130517094410542515632961658311732581080228590290998228262883265646945846575468433500157536702537830496424050979003393380267592543863322426199874392401065851834758423226025036188713217289116570988537828751983545625242453701795377782757662877385430996986377789639790761907136590079006803962470868844389736120359806184300734407872576373845401171691328302178904964642114823018459041312395043341445884690663501913422479416930666964420908858811766157807138760837988609209705094233076966694526674976319978215219642099716834442184171700937630624204334329560454202057316601543792763244032732188956746549071385534351340254099431130145858915210073294126260919294616352330688998383697269757780441750863070798078300090085806168154891786518878485662162786185890655479493979674594294716983489266857018217049254790539524621320985900441603163112936403148948403108562957500357997115480235967050564734819571446971206811426074233889214572619295508191317726622172468209984189562340705054790979817499542185928366822510013953123729181896887120499576228015641404637427719794977346465808536952900702969839611040809554035637777869281351519078450100402709205445190548199178152718133416874269831630801289643610138739851072920014252314607559004489338695013225485161181144215707362768253564305293472261774096349430179468138566083135280226540333824122423370077232623535342265161752861785941942454201005553360821903529063816310372841411566316833023143031114065557253069475585821966885337533968851877395840033082540945911290774635110503492865349206986151383657821014741837728945970855024352313242520148639251909399043353985522251036685849464696716212306391171760938386180660302731352973087461460442861087626893068997093914714653905309267792273997575194124200067223411954415699665883456120077680602539647826663331638825412573114156179646773739331114728362070973061063205894427995000290995750277679492448874639426400596147607224042280860709046608740419486409067976546413739106752342518614889453258605258234513532999240655766574072009017909387899687637999924304920558714896518190416239547413694665190893135473174552717682060258277534544592181326214462893069755547916661222802141793000219453740243454517558728626697197709933375969426812786800631970748432192505940138550389805238789278329327939428107571140896650961818782978081413653683112592926448887800378713975080939103148864449977391284791157673357141086181689979958019220251695700276514392920645158776872259129132347535583332417765571675681102879993077574986335729121962360012492755052386042340689202399143631085462171738444425009593318738552589454603330273492610495513686341302281240175936515142784432773117103935943346856848913439171279658180556065829493330006080495527244467463015060455283630703407674177262200824647386228319177392450159682575130492727679301950477326288669323332586213633828063444696838566297910202322760425508419724697332488955677575447813740569767137594253284212957431237303052025567717340544575428788814373499864320378291187164134582959756867675930674338886782440542394217402208902576648011633198245940030601999190831186283659832102038532337360525840470305998243585868840036212908428122904139519526258419058874511475732453858463308235000220182057744894911841212972763439952009881012668301994010712740314023250238119308506335661067342017675325029928229634371144346683380497837651062628948725636280974104745812040154632934440619230630462845499726950231443678410291974317628945820795434335844829854097961860372601786369415482587375356618744297572358651589829076363194742661046806418067470409210470886087962557430356437528885931118546248016518875785985701718774020666736705773690469322499769566203601669467000090630778770065867496441993998050247758044534337631769711315542226419682468474426381821715520036869871992121313036492851226272229152916881671756446576655465765115492845051523016569858646958314774107989076973264728881017313049985307648895504689599121509384546969983698334112869229895589524198583707438257275965411215531046675622696567141067535100982104809736824670738253671047397407218450915315761859139499569553347193706604278718906567587457094817899959209746238548479097271486341918928260451844558160173003176007327685740672962699272754805726984532708138243104298423529833898915212056607369681702344172422587365054707788115958113379943268940476691725225951768848780058090305867517985836791824872317563581823482273993436920442433469061530735094858904316052330737498372350042934322915422338539760775907984734617060375453553006336109595595768761301510505250393073214320130853747379194043568419743880575280979455989659150605608435403535137531493344851149696874595723093283065153603029323208948738428636887204106633295246860125340928721720575761805157002509604283327576581350683252961035387714706688575640998101327301187362341151012677737578001744175840083837939910318753384870075721572781501044894009585980766242623568893265942735997675715412532734812804564265229666914198186595427019100028741371831470310243561955085187173580245825891402344494101532627028658107712323721032806258219627997801171307712091340060252525160944950409517800935957921318826140293468902540836605561757761296476584279564122002836242235611252678806489867382631889360244204719522894191133846944470623692882401296980944481411057967600846776588244648608718857379467339136859030067910490483723942111187306965972087450192801527228246522870592113489340454522427244826104366874667626214406020359314823360173262432963322522799429020922497034837813778789482688648005874422982542800721551563189212304226039689947142760467072706416776705162121972428838420826054867438584275597037231787715177658813767734654239468042035498060214939114352814362826106745113833680754780616502494030773475439688864683164391251292422622866640566755286928919551971551605382944754372858362645625620143238632272005110117064417213102023869243298094463098208544518512941107708887144466185090170716763158918971389567563342149546092966954323840945502513758722262809346457809010598059913766104800673392851805730739313550034511335739958194883636267324002612384052596191982342256427172869296838913115203196401571000226046923977361273566684719013634768719786845777191575935962956081488339869882463065067162149118100736359171822911446917946791074333102694432010406014659837794798510323278695365084356166395601796697809089671740703541086212585270887744493762915164535337676770765543206746780653657477061241136624893508359352290644431790139633269990077600946141054911982495965044907866193957972784439146428754135739852201184155718040548208836557225881816321520346673045127167485866049143535938047713983514293779420162822863841618535146260310794043633125199386380049345370945766555658444999087898961701859787376310718122670268527361162192007408534383285186277849284958291976444539077790667592464852420217413313498649931323441307979032706600766229132037244503922455448459866709808704979924578250286562860327162506066175030355454077911797837500513662526368135374390306989533042966391147141938000193532134930792256731064188709966181918385745058868003584595468940915762572790688062063886330272347509007379410792892480369905742509734634526363838507127387116835184475063879124819489444951439916380654815259044570513520228910131400448060212018660331417192981985000329587854123744803311079583113280552325679535156529037698611849779054017992824991881246694014937460278791897472065294547322297543086079218611398942964164692402994145630462918391198910195486835261380006241919552668885466500004802974145041799126144815535270111736337747396837046621569375250679282324951784819231578005844915837396436159633696535632197595452450055710428307243706607336287428363414613712356593527964138292981605012363114784599949289230243265110342516311440672754227741455674937926845128047486571083118518282175516120118273641752127028628292915063188703900341806125178718818371811201313377866335975823881902431585051108868159115270719443932306152067649430094790654126048491734516297795371334977375605054776656522195227686739382244529951289449531350132717423945866741353960635054003967012865415653769125377004894631814490572887717019691840225430670733327212829310630079540774603454663010457361744223187477429408548080985461893903704302632938196244285464478452951254242258329592018009424957709554543141324440826137783232281434810482966910492325330662514773169481407446138360182273322956564811707289553291074406091961483480600328789316868650027426250073122380468663813451836331910004299480759488702057712400214322209316564977595482085313579139031372615952990469949104971843676100953285899754101859046792770804959180872080161857367615186272143036679868570315815410909055314607481258960434637637209232729139731253666739060082062756438840681505499488222170611424757622993101462865835670379450891116430257778743884946272793325573421922433746400377912072379032391275086235103879116585547785936352206265286917429301094566448072084807865930956287250459944723648059893299368390007953765581045913914949092952473866372850832412186805837737339275764540020128808473521214659131762591330868413193156244121461061116156731907068785800279583672575609801746045789150375908873169639374531176932758545884339685753610346058303756713407175408462055116187669032157808258935837625224965980457647538277215693490370626579055532510068255647123609080838520950794534937479275331557082151815952184265530696586169375795528385745122372552631672921217276254011900648014121710190300920738575977713172361907902337735701869707096736148864899352786926212253193414386929007976029452618963004920501563721666506364179776615483847369662465631317730768567534499942022177074607373481239401353365543175799001363248593103216923530847989837559621191499695226107355626483731681278704182604324817658211552110719504645407883583904431397266215668987631308829801979956361246498179192357935203781725812683549627830009941350895527630312249854003037166670549448149390444238666503959805862865625269300466358108688724724690181710638724379852656700262241926980555975667951263962873222975280796374419508235783339830688544221747619276865655015824241262256663691630314960215117292689548449541839603346788104658007340596874417830443801273002134927438878718267008928352175064490173173663124135476363441445284507825583368345257502109865120684835106938526331002154521628323375543711641308769810109191643018104333985304438860672277158965756345677651831162538080948652629452548491806110577896351206041520542809298034601226954359307647739116985995069241361408137369780855790784043571389581069198865261598334892027519804308594060959526674385187703633007141643123251293357525311570090637849131897046751378761929080708858512290746480045432148487621756433754724772765641056095337780883664900802257568232477192689025476836789865889445268981151484096744004552629546228892498586271356548572310700781139972726831095476467754535668896526119583921034245048905937357203607602485800404165225522845843364685801471068158719931045240365870238174775580342038220653308311787023225658943427825081974719807899111846949251065025271143035691822383589874902476011533344187616579027735561103273231801381132828719352554316018705197312669005873083804772389847731998680892122339349200162987917668089397865877646974664357839495184793405262776503460710467117338996602013060765006025098808813495042089748244775466443359904564288660056358242368845917347251724188876762420849543030018977802794844522890311777850640850363913513198210807522114328414376479457071724407523976339065836503478052289701010252173419474458085853302406644936617008119435576299820290286649212733436833377668011567486852540548867812609881840184792342216581775952466392546249369627411842412000247640284836805658684959266865466714658071004781812933122193266395897877297918931569617916530697563057350775928277437157027504877965858965751172976678617655050843428629519627430799760362561632333507398324378851852825077837725032547393114002095051082331224068534369650986218334824827684626561486895719272441218311265423714520908921164023778790101157644951304410881285592760709273041280766826567307036166781479805444374620189774070312965237250610650692105550032898628075220136487813866547064835247693267952574721542584736305078332876251570420426964072338657475958041259422888798243262112571341205734856645012542684619456527228866345196808144018539687131106503989650056682813421979435201444129514423613275913941295444751205102757478288247782429953464481282921388857422273268337474047727593425203413819623608966544517446834925618973098951039923084790374880626632920550428340849861900308486460440152998189876295410135828084167570705274954964330894600774270553752949027230400376745322559582523959620617540375356177120862117115693968092202757091054298206489451675978917092774446479901762041409020932624286681041388648590340523223109555076989817065354468471736451235373623095925471900506044679569293262200103543980577309743234945347960215719193604766139780540692762134087546672517252715287101019755202391977874527614614037102626498771813782674722298856875058978502329063634200854665897746318083610824916377131980855245285947306028889250227679330251755809822037428373268649175764260823055516857323299933490412907930591812775968106530383641307754192272236255249636812586142662844377684781448589166871116588562061371894320708786885373590630717081062833981595883773571579028242196296347494428334030647960641829901004615289338674363881992369365161495708588542436959969801628309792923021868351532007071388523602933534345644344270368205382878212611515469738256764581126262008525399335623063357218815371652523364969781875680573222134473644243634293613598492188086134355191056663750530669883616889832499836248242109525979350810432491152571903269931420119290068066002204428836139134029064189811342677989808373317909685930517839942476751627298259630639246888322889994398940418848883503057739029796375856291583221267163216668603494186666754061395715805131312617426837048711844602021711928383249449027491879664693346385614190577411818183920529166025929052238684012298797427156663441160278338814325542921006270546569088824455071639298567981364239753190066867794233933822729588052638006754768559942181092159404176271143672879842813915929198565439058798246845398277837604914437891902158855955625046186076992651286478177440485956642277866143853018278654567348248425367139180224336057913369306138652891149363604772019086177078386765710473781504763559373674081972761671853491187907890198321621675280302495568807587047548803452846631240296756606874290867605526369926591457756737847709412682902626191132141619403435540892502770300678461595936879842326457867927551682689505677935337394225493250225610417433988992071800928596356182655115971785311986359357015053475946136900116732001220618788093578812725534021246404596927937642320989893541481083837986266113571452514495489506878356342149463883113323671477080833829032942807092440591722051324037913014365137110187544017042691543682051119984427211190629343243049904895109401029658939520868580761832087505556423102355439936278246986216390649379479436393574118311219488366010121863567135409267787760918650120456907180215674873447935925708434205211992298347795594728100513261042496565326000614136160286616781224463361747831749138101507645629726209260087015542886091770979544151514698570286912476853984532937241655479432146327663111828395661131333806564935656321556896019629007156030957579106893717840362994504953320833854052604327018401670777017879833908397093820159749592809302976017858043671261256552916262501854918485309429617155977966748064427879214004746979496875700923280103137878619214729449161118613462641862877296450752737940349872801632168612478918001948199170919306101531854354051841668084890302500226961713114090406086123007805292801104508088981999341449818498096397320372060537364508476071388975958034327894842497618436744867927184030915027412624874515030655518644456257913292920683552254379247589658523428795200765178394439666050196270099738935752447391238101869397012293319152817639304135757552319794638182504557136764164552252004163892012155223656185590180485144305421726730579628292672180724347257748999621028034072996643719601262632270265857481042658668904167714747025842145060335979897487081381551983620166379122781896229344946217413626907722929361265407953110390600981005000701524043450958686064363497791599705343724450301069090096136659579630592405433538172801398592397888474206163111609097579914403154292854557789056134592032017639510899005979170234682067491862059005456233045006555638405702155365988418650251158399194735980816011659471432233237270210536277930468749249647790220459436505663480698507493044622759960484161543191115997260078825177314479077096339764461088279493995618442939178996983217444750463273940854630888666242509559333251892884528981122896803110717848886173059500204713517134365568097621643989053193693625164700610066864209653739033718657688458647870672472373155557453101389635172300483253163395815068304006171981638223454115122082929852966166644166324524570240322501811566564809429394654335068214242602107308829776272440844930342080281152288768179102555035677524043050727636738555810305984196558606333706268395688415285546364598453288887493988411947363200289292781211981006785312145003406927178652186151922691751301315236125645003058275041752326230404017885427448800043438171679580389116508124231665919826060221743346039599022410006796779245012781677970640831644660072831152250048043733648261138845354123301791293920502676455238638459073250426134703539034460172028122254978212438998775070536793868631694275283738127078537247944047054761336505085254337548929852225854946417589044537657018442891750507570018652792940376501185589815941053152117607213269365348573942593993697163104204383844121534658724111751964223904409219139527924430397992004856823403161511346435650712085643159032226695012158205859235024117431685691640744603411592907615027823428639556758015039145252063724746409127109834050954547495507626954916254645750634998475748469097513399826604988689493178919255655481524649532138515646621423406606784414644330022603102854442949279309177595964792846795831554659057764397284544714157806940283220571439612879844472442673882339158014160019044940733481827249498002765234081573880105215336673867714953179882691829424739858666815066485179069009583743085994854248067251979958548930923216590403796666868826509168533714153885133098197857256387765488848047821500012391005567593371772082511785177848839738261037514870907461879422936340058049478416141110964085850472871783524562568229811245867199417455937825562327939270848232783254945722603825642438586880549504726576442510023665284684596884008749685221500772902400379186881889279998540282773855088968921030246256625947955860605971726518555609198102939759364739988717728449998362472759639043800767498927148181373831357509912572033659142818759776543426793763387358600472355697858670041432843867580734938766865374478042596458842212690315767619113059756526375458302523008121954296316069119810869213552657051364163103323304002599247972921127305358116912107687412020571327115340398842604263766198059843994938469964207328871965637288524564842806385295084347068387451457372196156891686566462333630868267574690070009975748866293598570388268213567911005772851305932416452073983447693220699031528973033039246925791447999989032047027099764766901272606870442594190356911921409732647977909600975368020138632208330003900707318060101383739003789827141184419537622749079214978791535517976344727382507646157993807118848362137344628429862306436557519045386492144203723802065528969833134060911298548073814484207189527215982787104643424680229321362493120699321056696159291047234748467891793376160148309291476794229996350133298855095694527523738506743714547508357668144193942462462417873673966367790750307233818601768781932381277978965237388751465030798991576602552887469277170303923295207325463363480749069759273567001669037775432815137156910289094001775083092007928927695085648201078571065062874461348941405982975341874754479422444701683792258485722276239469553647862660890273920233715371644849479814573213678817409124577289148858226812154818052992270101106182378348475022344698024718524870021142481041092347510725077992244314107964668604082270371744445596032505860852561186204206149757991815986958893888931052709890204926682141900021319033885768984741246044302924230250309120922646430091330899616147798318584774663393756296460593278589760502852001726128135690263126825699082239748691017188294499402642833304012349029582302138542227438578781540677242613859605631181297858711208511577707052924317705451115812062881626361951728055105292431779862789323089813512798567454852785381612099863722682521462016466402937940240034146153292806556940777068250948033637448435397150490500470028705495154978689977413945828966460608109750575841849040633451439105422989373087603193759132807684328363172880782490293864671409981481318516655461712718467566739493846701326520632129303058108898056194149909514455767050908821094555546841045502185992530410080745855167368054845423301083962063680616276693190422288684569556676704709222535267739157168275676784953631510833914083954339174447589854991497178245434898567331395141993533515588411325192849453940899776531244350943595992835299679344847930732832694354929736576767379230056511562920799972244052537082429588342140261733275147332590740731231593561484008790521957809148603388212762673061048008091963613113888423179898686837684880937555048862470619704975083634305844706951497815935482527842861112882883030343093076362323041736106243499764753406310944692059674640122517831024905201873052678694411976501668865992897333455494841160913430919392141654594421672199803366599931625840976153634828093766352734779919357266794677475659507215003061131496761715500168640758729597116100624517671143501211252452838463880523724075782180607528813437239265706112769078956025827774653710634312036396147031838209263663242601329496263228594252866009002453077610994288953071582453186610025392286868356208679264832849755742199872530963483174183677439712438808490697741884924132880490959796327129311109910973732990103055797413238560103325715189114796427248186889517369781203490675667119028351534871048967861134209501413349006446061826673650146603691777618347064944343074289204800321162813427246244790905683069503124868520770194805307325458619542618579384956231503128791884160781489864049742407720027758858235228206697856107754531680712758272082527113520738724553163982891501004355797394011178511318396957432036521249252360043972145477606263607574877848296222198226152469250511152194747244272133375001794157950038056911799447997486794088233733467690593766301777007797101113928031456377875226642170158915811198268858673888980497184654473452588540727945443729837486340850345471706822771391239467221886277429026758072642417817325509020564494814847682863304097031963863116253952187089187088890789537022215422830366799106239740043382158576235732441013713067761321683444346732973313207428495891083972935397937388769826658826082631351807504348338857539552313807684073357942752390962040076379390627377570434287670365962920964896694800781135757965103939006842953955174221441050505376534699984477076200418347770008204655783671457035267647255203769775692469719286241152421722965468509501033309108053814331992486160557307265371600037125467326047481928613945128897110950719846056982919073287159606656778662212964132319131686265112966774908356198215065210640855238276598838599456956330535280770672993942039612638349244937627983605825264050745157532742634251372330049831221606623967408805021260914124985655634099104715917735523725814885778311670420403235005480587238596665013188397056555446142971798335229060714426258797882122724262720091275074211391265287228432655205611352848406430056999204714835454183596132989749043937579615360159113076528314951480577825577205357546826435353955783959011995972906434797854574538640775541318214494790602301723555667981831042243211819854665704841413694660555083233470554940017565569906128869921358398760804715386598911847590685346424071085123271904732396216761955784561364587424576680706079220777095599277026008366557030727019513385404681423355449989596117612457463122217809682481453669682801035606620359304088010557874861208689899800310867498742049756462021330267243961981676010708375816264422078927006531478764911929514736377934071092558610709275951994766401693095275483999123264531100545882249569070920578959585353658201781361664571598562713379153794652014358171625917508788482206069584044331172252698878539781455231351435414544550795313661234299322945876895273093474721136877445681116264897145770162986391757034264460991532485531862544820803174461865853760194576153020999387787465016285359886764209459155760492514971941197551950388121617424451753412442311517014920915024555494394543965476142206119021632464098968550382300129178795608998486891556815012354141206908558736779243503017632275582546961118557336992935206766929355761604973377385375161112873206614795565704567163333413941630507147140288909204996257714340879555537317682194192389578055370114033500866683412546924893629691026580963490689824978461316624261737618503489127171098444627657508143795064368369198288952477198539639671408525580951573928710260372814084874350163217056469237591009846650112900959621669166832540776221597564411537060169793241680879167680881232190507467197245997093827991915356699924594453749139669834652322930098751232843894719142766824420428710955797937963022102669395230837075719234191195240144346870451619507691194035385640999221148967674158953478696590208405071129829693583862883611067360560210541212607162611234645045342889709515287073634292497782166761800445567923079049326260356279352771472000935084631723924154659003142287644922156920862497816300187470692965027342098776455240790379193553159719117740919666093320132134265145256436120485191006883892047866764243457121614802781068299699563435450173002359707332058885159046307969309685486939262447073750136137194150103234803021420299434924773151884108189737534972046286328935683454495308048940736031216163507506406152744914954866543777661898482551616231769140399411482197342186811996773447493155203623941274792493617185478911802674855327168718040023430950953262134943978999533522759930125503139877116581714775356643502654481445224990637191800421336920962935663798609218902604461466106569849103186873908947999673756389202092623675115152820955671562521590202199909418032274823312474996379158332836389920150680514051737961184999417375473447931354585424892385004010760156988584904062274487047958229467953810961169503528252856354860979288085958138065146191664381586622839415682927914845676002318295942211665296407148696309524956030997564189324687256617721615844710827393068335981788568455363802978414850555128455364594404250493596743629535135296109474461333947566149573107177858890849132327560442024785935147408938794780273804824328212271290813936850628302630865615769080537969845365490016249106098231357132511633919978887578520754181899764217786287624082272964152886960930878246561964299793591200825450237614244523032705119482568363768839137168265158623236878485770804672358590738400385765875353616670512968646293757391969946123641066722894538043827536378226274838434297914165590762802057767957258852361810523319342415287505663824196642856947898702170349224110491699078495586836173436849214602722172601586314663093167038976861443233579194841994997945411007537837382080939410415334880145658690498575548843540355687770264311306288980529766975985512555869199795244849843539781669518918984403545258122494298240895650356098271754512402486359056401280311291220029203201580432451796463884833828821377805966424295650486005650254776862474856403408166832060245398896646726769323836785452659906192083810523026862466294527580051040617070242729832413183216143835789874403603605006181516806685636702311114822914549946447310625656475195235565069197244670220174256413486283196541130783895212162945031646183212644747759557858700594603486998148210260474719333703489427117446127374186101654882775011028167666279248895576085166956325352802434898726610100774905478845693508836850612867644347693014564531089369974084494677040920313187544101538054174629721506843767000898511264366343396229260968678216349681656846738456728186964124659476664214086868001875982504590759100750249198486388026996467420622699442674109258309944353600731716603124876931953517201663070839455022597535232694356134188595619070786283618205706801441877721128190359173654502496199197166919448733647670878352804371343748626291420041417062645391840896291761837368774555944049064791646136484331191314646971483298110255871402500536552677270590071828556353641159262665768076693294577700406174412014280747684522330609537869846090943980749874180178305885718038522198251465398475618721512250703784454029925204352437439293095089626559123916789767598839001679217643075666256537881802182915646438055572821291151147510684358528704614506692591275299647211480948998808104180166270091542038549456258561974643794253005761873558765296017505201646949559395058123388119943132281775162229323756606126541410576492777933949947324573584639937118878315970982094425017334608261804929321328878148232006354769037558475505111107645612802506210893402821837700991463184634048456646786822077706542704323492249445587781312060045209084070069535823281770176106372562112666919344956393033176864307277388121246142659085268258871805214362766111093350408949115291842972026369816606012913946971724098828198465084056791876698950677367788683426207575723963326680449791634044722232978883967410610609068275403575853273188360184384404220340895052196180628477791414562162629920963809825032113664070543081700468000089914132508140416877100102572832779235940991210249253785759572658974167323164697189800641546265172435852947014008396411576710840909648951743950598737909737986380542456356934877547186790092984008542161575619436247125222675588617246673786624227260736679539135115553771384025619975916544264848963452073862138374376043204450294724405638532613201503235171711162106201180014645047206959811475044494036416077367870623491539924074498667555843191829677270523420334137486665370980432426981410645310821435659224340890799068434033508294089349109430602891165691819725911792389375191134461245944053282046737068674258813103080564559861371167870587731350880174499928699836814355023709335664326792071686793262791958495974937086347085058209254296814709078553762789128393172667972766270044274986497896717022755010546801800124240668215061471126431426851163002929431570771804164379144040021921963866947003052340566882213387235791874055571660664327619977330350226077616523454040195210780532081730372738557241121616247309369643794910392343422075111629499889196291406122302561267431544059098294797516657006758813002225486434457249405793460152446607928345977669083579349691989478173309235274766229800112557808932197098502000790559555798075902244670782342463564251900832378783709881335111130629424003479616703790497443347923698475167087912220953179794116416037521386476134453654461106910807409687002382295974766663330435487996399268477165656266916477431054576745900630445389749136595560974849056943268111817160696067101024835314356154127018075871616820957014431432770588790017566604762525037013386691767392393950377476629710472070790154685436646957985531332820729273186709778526384179331867116195111091474080954227001096214510722776580905938856401822264867233689797641301461824047616390967341465961947487403546965197192726466583579054081572282161582998680640501155423486591769937968086908426689929448248742814196721684186407029934483072584838976022020327845546190290815905878709437947434972547533268536349379784419179033204744441396991720907742350169496107806092570854115775338006233185228623944653093169975760618839643609692415885943329709261726838922224076939056751949699657699859931751416216211973485255493052272528890589779035288525302072372350126859500570251612303494781684268065918697841223426939940664637061165236805650776674920555030090991156686046377278795582158483203387666235049176433120542644844175295137767078701326452894230756380095634822840445970781061280291285809893061173029841739944949631112293136784465291412222506916213997924341257936778116542372424086093635355975573959328578061853688776496260985622620872717744488811044803753610811386879140098373673519018622215843888351755828298666684533785440287923042871416670705500565613988172266383956473767970097096649726793423327894131364191360946046364343849619126827804073281993866347498237444804862858007880699028384419987759100108627714910436542648430421978947070358080823840291153557813881149454411599519369722456490426405008870608070397204544621601774868772495625344183400325757828306444844342660857663397570670134545391312917430341753675848715669089389328470883645791984301565167819814233292261938361768501581265657006780608131240644684351042747232192911164272247026318449182906736029948191866901136372397206597019991973316873168092239176100847079059066920197589859183551960602389419844182614105232202797174873172519103655633067980661986880335251959066501407682118254051870688400183919041745804784572416499688754715260843031890374267348884885827326130787531656789540793307584356625534469336891765336183226522467178841357800924559689246062554820301381496217457725426941226184492188158012130231053719518390486413338779851246723500199797429415675047954358529177667251890461599717671712352661096756022595133114124451443556337243492639678735883694413735991855574196562899715689558760703672627121133991770811396450402700816047085424031006261411698661323963057356775942652216077754066868249870019579955155987229362768230253286608219729267163524940787947608265863662010391302750307245296613137864260288137232061025011256136622785803140459380843523624119797125895179397140201778704677827373771460017517237568374441553965935807672390639327281861460730771638796527908662469290830149390917634924624828349371521346898704203794991176983875908264273688884492869035362980929642128129998669249071604795508542539073635711705269620207228482969820779129098569028941002436396161420006412497774065446891355657593298895348071346777470991095907261924558848263037426013201682245316589485944241769242896203851771365305227120913584855391799434214218759544258259612053077410076149005539507261569098578189693655758793375336259197825624701200455796987265105366489028458780968305500963642129631160425280383754998722877808550803872077214136946820259952837467547936338165020902803734093753630380222426325741923543775854751530257536514387035059573532588083338195608434575044160117762928347868568565082754588673005918008965016630980412051283839735353008210595628442798997290977054261751076427592178033009073709847524279909776237091253128232909968106829647472126203178217072289197782129579226966041107395316016893892269075554576260953550777897777472341424801870692976562804015663196279747507211490318675083003241984786900178566833088255427407700340175458100380231604631873665167443063429689283101638720239784000131990137850778867405233607818177746960587287630144329462272685348801383233769554776674126804855230284744242209393463705749819665830676643414232681561724248020293360435397756497125874166791644658247036607452592360784061986577122495391621344930629925287861929874559677847724495071977107955435820306155774064688756369306069621480591237684989626481250988617673339950396292008215967259654652489065986407739853714949986129156754799171301005087781447492303410657496653688169386241522601974277288845709561478024994423170312982550186845547441136374752635931931782473059061936871015124956232858488989295225527455095766484509058424473483048369041810095635252732926360455436760107562957763618780811661102908581688117738516704472701280716317177805751483023190710478218538632781408707133479863682194751524732197382652793275177740587416385682630644524613121357353308269189991969853739746403560082094345538514010215545330176984161544448312854397662693811608742256829706897775984059815255125487016015497470385520547229351521663529380772732827085271053978016847798979308991842363557060277405447757994460015806287736843344965569625842852335164082397842734805776587850053434608650160506714938614954751113718189613335966144615828229708516163259485947729439710584197495555538693823908859682477597809206202486850601299981497928012825102851068924193151029896637894998995190099048892166960078770489206024113229019941795652474347091680018852186779041754284558286209909148164726118631950456625190258058024213314621821472863385595413446738166335497701385882099487558759102944686622807327822703251172674868160483581896167005208005605237591063956298620842604185199771582956458878460659754115727817454806557943611847103995137866517714906250520337427058626794042447548066369365234308925311229360286942050721534887280466843302971184784844235321578565233197514168526428717088539703025379867116007373218249472231677543075313198540501388351684121195403735134220178860225794001269471698030834439633561434677803305900491147922577815130687741453311984794682024068945574744094853179462956030985993611050675152521088266797112463854260525147159138172783488196052045800673505598947306048811266055299826444885831522720247322214754493005412252673822654088730772736130964400220608966986622361560529942744919063983701605119174379323743019415868381264892730509207326064395574334955622913784041467305956216108727399138506433506731044143679540729818599416595741015030017157273918714204579811633023687121110752729868301877296086258835138080414542120166836562354205951777649619873894293307454553875318588960024157441914731766250636142639285004850009383600148965870575820555632378156243590541012243515393610461525908974132900982549429468645600989062037289063194944254016864263828140650408572206842594215101999642211934456782034921188076167265279651808555124107721391151465315706356373892862706541489867317355174501865023382085122627943917941012216243353648919261321138072818933933419874167888954952905447809513500422945404478218670969403247098754563595922091103156731365197562277343698290929735604642218921709124688388724351754387655258990215005852361669690785702775450124333588404594537799102547087842906489483462760529561519425413383859555481639819763348229414162873309451651968113948466594362910969695877660156040512385065194613053600397259558616052457294764969700152074219905303295917332766492462930388897239501842234487277017179668903705158857081115103227161922747250547481394028521561148985603261163255461518598810817294880245139458579199342574156524243726282572689871624908562808072049665900017689705369942181214928787478863961025452061926715643276199799924131838669286195359587250663474983444758844986050137975928970279295919456906078495576862752555244986398835557994681128073309122910043011638022950324282686791927163102848209306041595174896259798446957179013201628406705558119607084835498178952661314739312270424685638623390049314432009243680426046996835841600700614856071326782094582628181866042622870378713406789013153146376060237067211153516670917756705686847780926295459665974249390832607075650608949131560937883986505221109373791308875240052681699012881772048014805052618088222724666297135113408503203203602388548449873066387648025095521477988941670860704120130827328060277326373516524489429180912163261342240962853047357670280377330425047253528958458729055365286147751177372464724096877534528222707389982805883290393781393400270742892909378656355287050255576655574682786400760870754071172543177653231764283267622253974382520497963645388798709557924404150226101018702643890148532896938148324481330916513990571944370449243488023584376935413775723846777140664907694478758696405504484031281756526901112299642323207247059532486367770912888049678358251409224660529405881948622103557852938320935310341326727680098299129323216253676745971468916897538452225293764618379287562642796854368410524411824505104458570572290921867053231525896932472955074905207468677428459649664035650773267089407220449992767228903161053059056708161846243790854134968669685457176325429120947514898794745231518722616017441516037325244458666740711643740709172652883683506309210837743517732213351555710469879474350741738842553937849587154415624074603139744335490827409393554962389305823413297641119386043268568905695944921776057089576360736283289450573901233496571509952532034909883459098971314445537109681164920329376647470447302085480315667193020874672140067527594769485028815728906662133953656968985059940278344855383672673053552878935314844498665848905978181762947050355516181556851277807088286043487812786078317074237673404945739414479803254550811038825080480406953478192901579843086480300642918270349889082892645488636256790966672524570412788937380233428762409878905271467964142244470463210173075656558378989931056374307420065823816629403760160700614168826643053213329509791611969342543238182702952438303245248671912111330923715063172707621953778069527205093336100314489446062130335729235868546133237019098561531427687780856823864331051525614520682479298456473772698316802992731645843781242451961324815024833712152138640701894667065036525598287980967801810326255560387339653032021249235649868500106324577269408760816602242001980480716315811764056270719278890362998922093394357127664124984015114251615425702799751819386531623303293220011791502918530628772425404288120535231923173456767137674228214376199507220943126178324703614202375182104400484343166541644962960931895853204740956773485222501971964027796159635850471326401340725960019850651822821584823261313493161482503510758452350478950383953105673165719516230827024010030736339123376486719389872974803096945389923880745831250529091016119262089209635350590157860793506878124823801516945404909666069438352611086972484275690714621325554488993626665245109065793055611109289939787181584454461862719386961783696731548023513034899659559702931642057296281893374781987234401148018929871758916619563591291529283244917485573725668400480603980746634758561623710241673899816789652785000838372066612055529298026668232388588950683201240879079457516534648705250590609239974193512063725863446777413701119261669357927332299970694141325930095614218362200435501824826410811958040171077122988032264940298664823668100470060163028133404859786549685772044063548941937921003419997230250192297436950611417554073565153928497805325303142535781690607123123184443563464188953893635374687416059675726976188732668448025696961694100796692909014690857399466029267113445648564767605246865843404380801410748776761134574589075665310493336715945730475325681762633371377593576379357469549835526948299051244428785464251252445767164751316922909431775504736028383113017870745018829534812976817329221092737362786810037497043349244656045529598752275336230420491903062568738182595455320663384877138927438151073997017353775266741184857918818806402745293270989993398543815654932610778872693884182359750210187304031110644156488715218860248035279061114719362161463940022356793550099132142287007483799710893935011166448454067089283391970565901624927869965972090426155870417139669227462243429541445166408053152197551445925963377131962417607375001320156494151904651817367339963724343759251724274969809624660285977584208677189890832337878581503553666019835300707767066246989252242844183181130098890754178804580569219135280386093265714426385574008507869349521758112621221262681954374367847494178052113317506086274119138373045077924633216172469146894212016987099344387312353269116115274702358272887598967952162295384517306029387359469005747828544577971004364344641341888266982546563505680279118627768085140991272867017546934646428285516430775649797424827812922509748623521331825681705069579919461266113781128628681178633676650734294059014116337649782970143348763569509513121709388988830233041762035681640654132128925299923029635599785208304673862103086324389314719992950921498090240565594185902511543776135133662870182521837541250981600481539518534343445327982681789701552608594528807092340990433230289952484922605880997589923467318585968100225198046481900604858375153497416183387526386149187628456352925734494934439028469353952651511933550917264912458172520182396969913205499843306644471927060156336359653909964206949342071396439514995589213134506068327457273215194302407380400156782131796553718625563685300539437837894298676810118668248593464158587221189626919383478738396626352242415818405109142272477768189400246408887505776143777507692116380638965379635327524485799631961550183742078870497786935497495450411261652351974059899219541008503759236518689627234527351948859187910469353129458176754035363762938410727216535708388443720365830418787211126832732752067332126588996012518294242476202913421231489763662911666288499649836378862313395126694266187875168285380495606177666636208527480070732204944512978615561430929549001342580029003085975830321542885188474649476505962303239252633799705123279098075419230283575790443571099421144747811390933754203774643458649596289909711947164786579764247690925016524615804536327914894123749455465126980285160013264826470199208967953218279921222355076046453102646417395743212004867481731699276585417717279345718383202292386575702036544463757227425402947812413929950468997961097693840782932146273355906859059645178889091100041494934424998773794060727639709302145531910387468163460031266691003673527605661176102522404849250301025705014061141459961140102899216559956410487627295281577796327572926941223376143530878194534082405484515132041970917539836953968690757480978111713502803705241306982011379858359941135787888173093175941484963296994533587072530702697765397485382491156012556606928281964356102222981881204772425372173321372107625313023021320944406335452978181712484294920372158510550374746208714812877441649751711943469324220266279924006575754255932890842931666494236367584685645782642571933969209662006490597453417937259028527633060450514974627538041904655226599121938369250982211464167821018440698568159144750039853648938372792738122164931200113172265448316774262460067314188514172879637215279834412183805074121312942467121470335360092855807775834214443454097570774371052743013054400707995771117031332935333934676059346518086862077827254146639374830649680912724125842401249272167232565370133024863902147869017434963551769682605427448105544526123591974233534821832530004505697925067810313981031426290356115189649337089463599122082863075946898927413832266590845843864080617357225615121209848140692830493448160778231429388751899558248671248621416043690115830429167018713555594509694329000406677283492836781058862845847574298297361949445821251288970512624361499478599272833767198810469347528226230654325382748520819383261939740155060523189199134944924979519706188435051539971197012316600636871593689916099101379144828008937883264674274964499492659852791700834744365367087956164284299670385662822116659538478247645120274877450838878802757107559549322687194043813653075579125944228564573197753302395915091048544695348394862585755779725871330355328871774571944049076432968765910695750726233235586311598293660128094196230914493791103408410813786764665407744788098712236839935184828540357533763247375258336380351280262103005173329788135800593930399520702782409861270942780501640840734114370868668239570710848559049774029415454475559886994627084236169475831575204334112794131967525449179161651179588359767903816187537452513566816615503987600476977091246668243685920041871681173479892767519062188104947900535734287352782438032223801516877257841413047426017394261748899234298783229928916637462799115035355392225823886938739507650983480345716500401277458108093006279219227737855896966797476194925135595044903670451292479859295030138458008931356183826294119257969809419455491881015150489173166388617616546759906686953100527817771298568283027124420622937804285698198627237107733293989329052824574324812388527063953571087586747168180327767705996889204935782654210802209250769075981385925522446759214906118055829780673888960128246738528239217538069246420455243628508382569314660168094163354409747453661992683142840118328554287978989883798795579232750186033609706809777356599141639361647797608808750358165167651273951373347718436498931220546805682070312128032412763863865820957807545399775359355858346761060084352832068141407094218843223543346043035276195391592601482004504204879215168525090633424490920530216578202652460385463347815544400805648428677959797415456791715323193741181640007212185319395572380943014333253994909807646805424146100941572512258525667146837236979518273454266180151846638135575654057560587633131841733586375196186386450165221335797783192401185989822210488662417758722594147916428012961764999957004189680557181704412941281819909852438588748746765965924571604891521586971374000672342243841883522714954431296162792678823271561189101003977098183406590434350653594145966678326011630225871693451330236322417009831164391899860912295901624869125801055136340502836941061634608872554628039831980460593165633066492761377302737899299626233888515204784421710864080048862067866208077575385123762440378545393048864507109544475121558407664851434345629138009927314345349853360078993012723773082185646784315858167015660914151765420254045048550693941853626549669873880635292024960423450928600693087666097301105639640086147874945715829597760007762732135957173886613055744046178959848766928099138491280818068788123345858257880496338318699591867604148182282727886394473547219094907502063198348046123862762851257136232320297888125444175866142854382037421304641955541751041604729474714849448618271916168873108678256137575267540083666316501260726914439342378613754454352833963951421411029883831754040905293073496089508682960217384466377463486607648459178748446244705254586303840734059751109975886244429599247691886272946889457323345005627739891642271244979795962886895246358601348330638829258263934672986063991342966230190731819314264494874078467475954945615596976263035719135623009984011046368604781267705947101602646219762525908306018482427476623469969528655440834092584596846270250543849230318119407063872613213800335642374101524427265265344215133760130227294440317953851486775379368050291957769279427160946020296731997199095677393894197111356543646569875678378749687855672994531899508088266966745966321483431690015678384643749162974572589891936486743425752986582714526982715714998151176333025505616907585117734135927334523759586270571374219890097467943371493969290938502808779819029050799933547314128689923424472216794863084931678131317638653046403248238754078755749013459352340510100161344100262599705935530273457262117952661879991747243275018931544276042795467520820457451487533279006229554927249322601672992457810246981978380404095219986459025867900782910036106158329443459917181014719792051360588593411386251166659271192214339032946785489049411765995328405043953510597330362747012032497766656878724885295952229419223251413184608779066944383670956927288383995967755073269932872490618210295500485281153641855194012178956861908238399024750749154861451809740200281186749534604951943658671161425732653584113820051732876053112608710991101787487324494582414791063709560391304802933337033912309337376471727561547086729073807502702798537238413634929908608067944982086866385310098196910721562701682865932037792474675482070851740307222505211204543521822629232844291794113555421018883196160409892661789299160709920995706226973628573424537845040973874681569353317505000118465254261991946285890965279617146477970385327023202130420637141562316240475153263158580455187513353710833460702162496208677580370692749992210135910323121783568728555535534844908993457653351135004687997966661074717836764669194885600319432403088409757636898189172438109183198630383669892684453562102695403374571499727714124120880549590242090222514740210214143168813866874577923001946733177351126483368569292072083379823320238517055438764904093753317477731487771876584474072861932598902096533580613202557726653411270043520735456532940202252408777140736674658125016444801121983435086709252603787778006841926168911772014380917192476462880510801616806065758593091128286737747722526408880248054166793370827445276842639869123860519329992050373205821480401182134622531587058196542177806816359995201062830822381012174145082195998651003336912194169028168999383310023747499278921775973954991725314152575316454652234507358666556152157138864615067133660160565935343945545628848301289311833454189569073828902243081828293559202562364965657473637574266986318183211253603124302174175705145375295652992915519522969883462036393277873678749850018215081819434046553547235638283612859547598152401751264361253666065954517393719313812881758939133024598017644088742465830740355447667433056729124980986901446112804985729955609097223152999674712656240710047013458981260482612261418926845485345336844405016280076422548024453793736001606923601468729968802154339106398492539293098649388895643422716226020374110335234430397819077963606547491438883303065291090678510971193593497823366258528851055052074165260930526841209264418426545764117564871815913610932153027038024701623551744797897835335327787826482577999123936600510676089144201781671793497722508471800383175803862643402664819420169590304431630748811786326722739041588039167723688619093613393704195968627368945267527821765923898255508957454004327739676357359024930353990603153184462690510887261059619101626724798003155603402733123782732561965706976488541926327046347937238685808690545842116306465941635641615178682391195898389018871954362078799758924797109162266446601761784384845874797055500266030622886630961134690229499949219175260147412048034877085496335872076720495374226276068292496642160237320281934541644476306033494914395286425509389287950901457106158681871882747046192150909950438099535272060892675203805757065646800879085568541121640606219593730160132074864531524357713463871666577313414279009382937466420474318978879111434143995427397628665735834135331269272843982616732700687166986643764811916995391092499395933334509168121449195776402598805705485541378177520583569035561821273695164307210001091239908258099840684185951326117109752187365033687108299133046990184790169678887035314586644059612365355449294094018048820758474896885196531166869945020636895600378922457104950394530782003583643112312212723500398141012491949474819886029166685027554567461985646088529521866743635751078795113941549120198241624284941855355331978122054841874357493470689615044750573609916858089188625476938577200538985725529879869830064855770699992325466392384975578915560865176691042577383230286250170550817781783868780280160404325044023398321801137067946882543003040684198417710861282993280060809915783930783181642982653932423654713224378320057997546125002576539275330644845990205355569247939303623684473333838605860264988082332829822953890703562112541727087129231226783109623652494290421256714390959018897881873738656100132968657414609203436635792115191206111436385518391568297015580866372227892913512574643531424547185097636905992893806424820898265313311094462398019311106338357070226572274147442829759781488987739654114389876921639752083796973529729884869881329383936706650677286000061673127062313972570703440772687349551277005185376667859125202409289136043886948397699061615964001333435731890497703348246515393143101654177455499397148616608334071052569934461292463265043824193385092883364686162358125395969270935639979618950912341246250046155048481658328578704440563747492143873557902314136464047114556085522048304616165832969518187730487127304111797854630572191390407230608292340364391016049505310379183535876698699436113433111905628510195931305010722753659234864844570618319355943520856136367664297409702688572762583226272115728555855847182097843431406765420097761017580751379461751109754038045831938609303624905000961044584413006324743735263062628052565464241721063616315312205998427154995644778522535493934763642434243438951213115703498980458628793353830303417647907006019271284735917255093931116901773307400571885777850221825435018131768800420957353474096647067695335112559175511086685912604419588688279663343497266280193874449767363691696419274108743868463717467597161655595953105382679660534598636082453499358036243926904046545344475168444605951576439736210687806948010199164576471929196680063464040080491162023440616166940085487802090275205875829364108214523873090325241035698764189073027597161754903389964623023584978403755474333985882280092406949695243354219389624456828269021677027571168711126849005931657808063480391166306005918747615522932014028507343688738742180883552310176784828180787061441122636326154054873308564968692645767654096045149331075649028654743955898496942242797056570887810431443524853851293090677220850656356811989182833124021615089917545326475413210157219227480984268542696220931675832117478416579339365347668336348340901500285764804814710970179837166722747920452241905444163085515149252744718498043765841735345114462728340886049090319567050910660840696548790793339818867560073815314492506529921470457058385486087590346779710302143586941377794586514503141278321784795361518071512181467772860634351076976929954683017574639691179506117187193190122631958196260243735794876413569421399753807005867487750705321193559556288369113604935936265822336005538711464505019526495710478175889625080770128223925541477181786555190453277772558925970169522445587263216071979084010924909720865128319730745288532845555868984024962128952857518795681140838124961125707567798766116656028758144406452601191364202570929096712193240351882155398938573015272945312428452126367492097722742860986451896542728469183820589210156813193822503881913024371362752801327528862840099454468557242294225163307691730540679898372820118378190701798367002488180155103089693370993196157285924889282077558389251308896339345535374319876454351589906241007392386165919218097598550769688998063573055779232003534594795224128240892591625909786461743137456554020153953257148911477432451440248302737832134106077585094072004748520236509631184370877643826797644239769142116266625913362010495896222521621588579675368284907016663431769613310364374111708988870740618610242063975565787717293275081879036671368856888414923905819602903402340445271161501599576538146956970254201781855868565567237812124942934221870899076783912736186158762992351181473997072477808480677967720602788314928985787278460289376504298460966183265832677480167478341140376589316335605206835645807814664141706620532669332015882589068077972999943910951468773151235449288998472066781025695634439852621952735192945843370359759677380371832450622003120670971411678606096678119263544829261848896114412893505524685082841601906681109942020298358526935432852563843286725194010935898474139891011109243644461031948754776346035786463554162419711303801997845651586652793133074394908270931510533864353073753298103417720961740468850152433447718346224291937471037252533662986973586342107118521986023275458413967751565864532896772378587753992360457836672289701072565023788294250168785248195539339846899137421965848550668727007425974610276220932661720884540845169147972923794567515357508029868442429146926321899181361081399280752149092414462395447866053346140219949302995644270364215864657129055048576909575931231033277270064751839558845697438727064716443290741722815135938512750531618135118084182417324076577220911620744216548923733760796062278723669702449940309452119763414658380618673892299654971728078267096709695684771937126689771002583658865224237116200027523441526259592910584634459925969288144842303509730381597791057017906205414459574956760814261866250982983232643345284787094395251563890454136069451629788645844102366397754639768893062885221919709696992396021673068143539159668934425121968411587332627218253637483479281939674122661734137316757566522299725976233963880187353348761811893636703071529052733842347252964634021706884030717707513300635354053314513939752136891488177950866782317250606524294878052661685415540701228579693924271406833673203007534854362475473809726034202259573115621877859265492683383645239546813483128649852066061087309723259392803661355586996557310007114639105604094630893926821050829839678955592270786237328163495521606386507104025557492116190191609718129465520122667445593600360192988941735764569868297560596669705260154985262482931831391914169837685124747551042926720793580828369578327772516426161268325428194229665714126401494713708751623560433961427481347803796773271240399224459943040867708217773199888231234374858927464886063684291787100315050189520311868921162704381375064200440345931894539117714154064488580574317124236783408715579670286416484911031970415810924244503424436508479965550815899543354905406245862377504440238762228302546740634643926724221725847434465516446856851612762134719299491783959803146036516237451970101403786198905432318149891351240994127355892009129756928838136460436459357719752118321663310822766925411607281033347548666959304543378277656915522986931711308754637828324805662896031208811705595272242630130725026815826746472823147704830108255538444908772162218395873787549962940702246776347759134498165287869074102979411382606366769598903436052444618130392784616106281286593669960609232639753431566801174563853754349417130839047010567750329402764479781951736181357816395340552083162979080706035131359405809843467926091849268674053554059042990490036047490879086883460928581204258132854551373106829217451460583491412201541884123336664330601253421711814021394488274489815412363647139925532556245891461577753980173572352381006255064313515833955194073170963358082907212269433913766837509556045076123611880555627515861755397035378330294663465696417841683450251153395943038019021753879274608180722703174209320588727444457622003264158193664491974040949325905699414560165935171503232331871012014664572926830921674536257746000724816126145314225145089409315855322030388410113736132463313439028857939009133539029148781998066086827043095154007558136113572048267687885243624486066298295116825489653774926745675577904849318699438310698202462618242065308307833552613960677640632685912510406831906724242895165956267431915034072309437210727713954328102370738177037767490048592982914329566199913338286242336233024913418038935883249536079179740307741419115445758999861796750030069097912156604650354115384000932218260045122291669863514954621272466342457895896424148506877050656845307819546292397535313346673148346385183765649070701628001038275434190561912666857024428115854516982847851505197651645849270853979600370185452705735246655931294167132420906696123501479022064163653474742489937646777623621879030671620155044618926600057992951640442520974570138316450938627301122374741466203306120397730037249945650595133831302035239023599179826271423363683086794500143181570403879535643600369081305360015188489439377742990666208528072517773629732305305058331513499830608678757815850406124114966506118336385632220966165838043721954898634276484022615839431982853147795667214059675249126086484619280544615790699577648028511996980587400910332887963791845768151756939561182966269515291868997347218726654194158760007143733259278154332581656373856777990526491639057307329938305171426863814459676788390377072504847474066556408399358456005704117279378471754744623845025411136613945970102302740807080423169655832520308936650083743534665948120170085927503320441606368497319085979299053280238956341770158945941647788076885732830307468375181660147469156177703288721475156523797430709835048785923440016189213624138322809939781574629319362842041065708096352860396319465516272604930824742706626825534291528491169717230237639141020415641176047510581588532951536309504248081867281555616039616031429146700763863918199771559893783405857944841870664906057634301102555815159936438699696314095235044418243153522944863840240919264919396974363781914127239960282435663611833580785002850390895956728170854297885955116136952257249811130615160939686576016820775462634500778929809115006505977467527292003637549237235959048324941267947110587025394212649030051372084675945003435860476294780768289403286765445753422711718857055280092645488220496096475073516891712814417409229298837759212643721401135156758936956369420542370935790289925216597734620780375984683940131909704022222225276368821742926014332571349354225440799832370385079783111444020605821535242516906942818319495445616187989442470706537846673254015690693062328765596321796796131007451845594407646800787921848639080822576503338549878626871263232898897346585303731164268248091574454721312587648473335880429354959886697871004730191957854916684639758384783456948861365562863502919618595688132154256574714330043008952054803394358307363534047627230544001555230988441965427621729885290653647661818564700386522387275797488103754172618074849249804086815410769001577273750417166680147181723728486745742287165891647612997962573470585472878512982779613721461407975836295919433817251918699744592090711470263803564239032740105017764383216232598969085519072333559459193325293474504449043439842385868273923679154158376406341736079779379924292811605356174696849201216588633333712934705522893706992105375576691203402176946390764108222635761033415679499603279297059178210010225101481721296949081902299304173599982191040627626348212475442031526248209740675276757856550977650344290241485928391404632081473649588179444756599838678857705404760567975740265686002332843971625939253990717986529408031121856741510681836301624949866272483688019535495759465380857452626707090379111336134941073364061659623679058892088983319104785940316123030644621635104266125407803203984952786780184771218896170923193227670992413757848467679492890625036298814567403886943217113552278473594315410158669740374256621421534315651990122941713078095068790416311993299899374751173318756743537947673067292491108106631497940989533316652633360911023994243866375836629786953252332324560353748530611324076750572505847968078889068455063720456033737058397585533229092406686968554296933887048096911357831225663939186707536487767819125328302284974342293254967646660602444662968686572536674352002167296681359101987896589383482999391490315374434017078269162678911277465213715825525123400765725532828675155549928727256408868984116181155373753213845294281938665466185999240306579777182285536079618982399588395953141884497543937462174020430956174049049248152821406025312702079659520364358249485511547499475895152921491392563312845673526243668205623340360916257645986237619650335967988290244254976767014636554849038066520029434927015570494267751375734969958259507325901720891671764929790055814930255327782139935657882269244381753196623332981705868685682340678541137244757349200744347292532778770152480472037091881843222206340828883306451109850494809639811845373285739487534359595647273246966489269828013742484310257058402277277072536078285064374715540262416900878492175205305393250654841072008958518511277919801495718472150066051251570779598761775782463097503840722905775469361459632985491666137466612892370252717889030825709190939540312525494318614681364174068780801289271250172337658830175795082710096165617626737986326326187754330399041866452608670277190053672886391125986037991078042701446380548628776654253947356395655070717909706039005652038692829177007706136474843825768257522103766546296024655149357073378102484279694434252629805645934078430369252201556737577816666224769349695774083162950734616925095103236193661031259828467549408741683127640520226172212402043907834529542232011818350440910685897674296731592326805039811666706144804852870218691451213907965342467260215791149868833569601870672686379972853082027437608190362904441536829844111881033743579636647576235184504663583650400989338141640152072344529628309757224069954466391609373768779822159911900889036599166835759283201611629057717508675090031634972855462358394048597170778432842842943838359938368966287933167067928853847605945928455878378438417123144391644059404870325130449785060584557669964656670353101889321655466745727265555254494580738501188638420432322745628757525534534368261814033657624517934132234818879792795173101129453974127428384571179910648392199472385398744457465490601616785844669241636971253837805229270044260455889689882949960968311387635376367797573223653321478541485368894469682429403067051944953630339944075528196010760322350816407162332719090650136801221402762779768741663903636744417241638480468653215313315722873970726349615772770103218495721167989239210971496674229387953789104753145530360728200318840051795514614126686356164462249059815714854849541077951146322721423922245412835748293221565436249588504280755229645917012167170798474211629071475397935965195480275441863648253050550828081480109533312130545782083030885392206642352844733327946900193182676973420969996769427603752247261954100966442329840530936400904706665436462985375818108966081817815338445826909837164041836557114455140276221289356062725784141529757326111048613132386032142573645174258707628921779597054444752561534010263179516660464358765119780239115226118028779805291509190278142838074578907166582670663507027918746948117391111856276506309787734699594130825023237838389115736313509106443194343981296949589269345495104081657712934712467536233884748437527977194732898581768495917621358225101514545887474421491630731764187514010684409101489829741046390286923608218160357506297592904691684119535584041163961331701576180287092712410816090624124099492605720097153350557232521958719699383306617718684582349313208996504843061488792225718755144754898146704552297711299048322637980379988536208349691437661986771026028823693734449949757966363219605694259309283370803771745649429997761106222297857570369688163742451110889118413016671479368850410068458630043973642292654242282523776768896640442898964094122749864171179708786203175446968541732778730316940400717518562623357217035947247604378001540308075612688174213880305751312750444389538158924625824392304252371806952739115786381984490151419079902769628423838415712561269528868911069269371384400101486699926994673919321625214772140816898898469258429552769849769338509534363693157887096102387723144923159450148965564810456564482494766234425948866076690723974134192526542504611862877832939013641618273399758195384733461839379932429931225898254273398384952609939252172769629055153083531815178030735640107871213677750050232468000536213027796537391984844751325349670784616501932957038976190198783593269353489250744785475783317955832434816362404335039529587781426922619885385122422941870922463212531130271554141561842047756311411049726474275918189630614302984753847874074639739125151381375440485009155630123539573123406563853994279665754549529728750770816119691097291020498586504066084107004467338487087038251668289684384132325683828941998903568789417517061384320359030960301442106683889274154176793368219149482278820617103464237194935468201817734310934559465033585130463635865722207340095354387025752185329050552079551331227096892314277162775551655369883031716981415200068871166488130054639728579415066794526577854393384424224154020097656999483637410291034565493171868068820308750744632181688066388436139299355128748141624563330624611653273995414232599545366163409927241986344581893268420664768458346142586901361464574482779005542812462094454603989806035000546814268278494225189495144979356329072365646641001390174276690283312913170039866413772101138844750036265097287162283035254903567956890112326640225757212218763067984854023440381688147029359091740963010284071704754109870064475277428118940872206124452204050539643294712774466929358956664839949877505058213721876480786109818259785116263373911100958971585862297400205135459113797750234730117099684259382621849588890281701651345071570682290364239542277760512816501129515214654149413834419159962088534310875712484896011336272222581609291508011904627639772538152032311074970864386706110890070206700967224985089227212554104721770754097813617752773763108757093849652928501023517618404508387420449423397577129694313015235428352019914064944088303798282938146048357664570483196991271454842227544157378250473951188771740267979963954390219617484795648366630371316859681545001885772371788851170449536573475134355775537572403175617444910210015088260556908748668125117767893242448628509918606197108322359568063454737760065227848246281930936140298228758106409860369037694587076114401842128727839051327790756099955104626436550617613374582257827142021977766198071848145010252282053225144811864097160380714913284841769850597619813171309839240648740666028978200214661765359913871472774674979660368135815278931398311460633327988926750756802064340032733452649993427309964143055858724344502184679611054323474178074577751385909603222656570313913797053656917734728201393207669225461097081014757351452030113642275197360676557270819331309541872024982077008412344191358602414104960833693537495602051713605452277389997412855833188170892665632329485222464727227221714579828220802448637205608603754373081211862381993666228054238125443041819925704774828627176551047928594612105440462463072538846272575561192877720405154725095997369600470004783193562041227347119021530012519000276117338130924581825472521383505320137899040818517557104500959926920316838127274970049301440403297755025844019862661841757895269942295582670899073665723496628543774563203970531558558116249902443383706458534593011701366478549300029334671149094674593768557193212252067482320272298542145524310312458759665070659723742359883190853996780515777805290338876440921283637710094018561132169175711877193297683538855468798395892513103406906169164551132755519891358560556314629788574715164771517866881802469191467532389322849027419707380057347727691903071469326806217149215241867746107257894791024078156567443075148802518545722865806887188549924990094310636220814435648395005358624482200018137563758626852276666626793266179818436647485902258499982019799858851103632986021379713982852209143751166694314418194749262983723450807227354787249822582360159868608958438797393349467094392999778956209835635930538656952070257744493058181604769806817981497212904534567193059072934331568921433620509025301104998077936406247836919423830482547414447829347258481053659136647520471713947716758841219766206984763173160822073262742313557178378932014181612081804119881632590010807578768657031258395413173692428776698794631456366173197113927851982222792464300102566149871197324582536371286991854280346186805266191819184580278762687258578584414241507510241870457353648685396640753858438702440487410727826547573566796521631879950945789584220209535111347138478991558155548280819355703066131634545079339761590888602713041908134343092208857431692560436849297206483891844657878423287781271335500084139925736915741883907925395781891288603726697103875633609070122921499390539459120747310391665743415838910695405216118604599305714445357767120922626987103570004352128241793548041766460325099438353960382756708964310620115753504472972649182539242237087299181264247463046306476860359453015117730613179416062654886276953328384344880684410803728630378276909593773483121765697591003609875586286288495885836662480263427376545046543913778805702310529677892886587116959401777702206470032460942234150010811598924032948159451958471963734097175623014159537323947770920116559634349314877198488782028027609795970411790112411522090893650622940025688562071370057140710908885347590895368554771806096468299313217247570926878132913244984581833256303596279994393574032197646539226650550680021689494423202402286421410027929360076666797627112830387593591057800728053982575633525876934239422631704668648977936741686785648069048124009793780399033612423547729388138648359057610770905031904231068297449426914181964983686778487250171329328957920218316957457474198030645241078912593993726623940355511253000081742441880618629176869004553885015969993259814765435531028228038979484223535726098290868563073078575332998214689882840684005906327121565128249419785301119431179804817393402016929841810922992264690556602903532800252546177203802201422968576028808375027385767102150223146497720114440713347513755189045571691685915259582643724170918264439761410300449272407985466332628229857199761489423545553061774984102767584092716216340588986241770067295720411984624134942739935343777236419823446028790916675800134620044328076990876628643661035309773481107974270586131632283182684074057530995060004794718945130153310961111312180066393248736000217012115246705885284555614606848381829723331817230960470612907331672742455052733110371184791443810894859994070576975424041121717161039640586072057515735981187599855771828795941330341549939993705463146262301961788003169950530296736284142672344485738375821990669672228785256916781559969153100673193980494077802942687232936478678502834161362446439614877943968218813190057707465258917311583485593663122647696423975271557600120346576258583381662235513942794683608603099044664992680328865990634966171283303104818162004257095774108324536505356973794854077140867713154235328758968621299609186663383217552463349732269360173704872688386127972724415415094491579097913227025407099283313007726939466301680100437023643274188053204983859942202539482585391006304015879525428336746320777445093861385266848927817200737824013539117742394358212390500409691404619005398307577650724396212808756282751198008121330399683479190576720880072824184089023020227484599974060791079122418443366662703091333855187091738610096328951268821404196554198077062937956743191931238103780891360192281408823602182463210760021459738845805939984493378089028729868493543207554082718190801124282282865645712406397054962293917275421559564396687714681961892823405377111028365552843859926792510430469818252336934110481833863604016795847208452114172944843701517305352124162294381897606535679577103849905613384027988570312184356741483034300808252095032769702523922873759678842591520010499292076867659999238740406755050179331234192632746826708245696007750873131093906475275744232639833884877199870459568056008317029176736179539039365259639933551084380748691774678495612293981784683998510391910774926580295891012537591940688224438443109628994029650171794664740523666657538847792114692691426205815532666058059459124569583264399411029288949250822149025675060631727768812577281322372423253601807763016369499160741545256425208236610055275533447085321269768477910177039395376552614844793365880803580477562957122885506230096211438677904504776200648862160444420151487009865242107368438680920964841412292437479826037672506634114969915018229650027334230104069769259536423032879681733569625493515010132278602356495873265342934243051203606108096538731512627840033731848940989801383788565643213509722419034687772245750103162249900891629005678603021237014655909915283451455660778853582215603609461752264723412954758557305469076640560908887951103961920654355599702070202267534648691444444354149107876544912228661742616561877011157065652744807330744150997605594710304691252932116568390993882252384142549098035262887887550095514281465102236498389637794378972088917200514513434567845929895978040695141037894971621125563363584980298330120731662058468033550485035081071683424518572402051171132360950326667937153098779595873014706018532064041255269955241802556231669121048721961045872481329171630905533552463967584734108165387620296013738212032725094862961408391837104962786261349095730485237944955453093699465472182998840132262485143002429529081526522162787496566963680199472280188622036858060734023215123475923049898910623715025556917000709771580369400242070486144818805101819823314168855517421364298183812157331842728008796171929644307582676660226718071922489816569523395254133420858288505049466928293879848172396852107163359201492047944058110936544380606392750295816287819741079192806646312012805715737430933201089698347168457428546345556131430097630167501155165578031516827331146122689813511696317367256456649979041944734032550629641991087828930183968843675546325415786587662220540683109475757623931510720477095657435771785517294401286625369944967215281034176922764945332647033059589952424831494961842593098631551951299784718601654532555567261411745836572382846563071484468325559087235533041540935637608378906238509360314836095396781449440722635281471435966084067278047119908887913985812643431102820329099151037753345197845523372712644602914234090677521176867878864329079859265108359219632648657683542571269379209575221911761814706178682258061270227052967535220264907219089353950762674740535132423397492416950728721907931896997563344263958950066680416786781097112958220568331821444429657313258695369946307733408417905828320700204968985203197399281366073213761116848621003543151186952507682854120715472540685788582424695574996953447328438865618150731027278162967746185976795714121827175148720632763885920456505909023236542047373926486390104708703925839947297781676621224847176800547906173464536410149818427932340742970097538420172680351823782973607217418001023195087908482047367394823769388172331775658849377281689182737022798469748329993417917285013156307600342450937780211423977242612333291572790046028435998669643497487927053148331059671621585629471917789547529850453747811565003300950895943984479193526177539730603717403921717236862035543464176508547533022064641952411305650572628683339203983405694504435940408544477376169167065439521811646125125030461513203781867692196389961251938972654254326397332479415501335982043278385207702029505556276219568432754033341599421004917230657869795786666679140486850375302310494511010201286083542080755898297995437050391308528164440257777205907350868884021464920196034550387606193796693833188678626267120109850828643629122956473467966496164373125715387011771026420282849573848632964144255227715876822186524317487129978972499456437400225940251110350569250097484569669801246501468811610624568473615379309752267793241920114108708794225934565329566804852064978097441049521679267800985445711381009985899021364478023273101204984556084902570463754331214066357972759391660633954753134138017100020379275590131002016384432858659127122175340106368752804279151933548178279538948073507270284492572507349104073385187951814900839107922757184186574246257056189383987541521105495805866929319717353978864399936898402855450728881798655738681811483770352681923019413659927879746534058590062484472423972871054947228049537000156796356277518975684206248048753159986853925993597825786131280192206120596599436012980096430208230969859846541229032856516301367386506630227566343364478630932476543900714250480514386983914376539988067620919169485793472961761682982100333589300561386508494487793655096608306244179426192195167105972979677307183892483442725703268088803568516355196235006112641698016699403417320572708827385454296279733667892165050834161951817338755130188009943994596570583927268886465561821219982707472574532676390840958293795246966465972786995542135540410281154034219148186285493500095844923383866372730922894907206291351329589209577122859411521269371201820944657639241773409479059868590603804930053283042729113606464811161271459698246455196662089034118913183911586472043082698094689726589900991086462640530887620285851464704153721511018221734205864465569220961743000477354215785055971041857088888725099973065417175027535198259605807730717629434188447703292997275812115663421694935888016542937849617237130615056667073469791445276358380417741335425396141470365665536909976696735531043489865194750845041468190542592687618957384700714987751567607918351614340796229316051246951757831690168562178373314967591037171058976041200079583214264682138202645401743263269267042485794067717350445373084912069158358488326922707851218714484022593904808658085941770347712726688601979751220490216264525203453934993646395616774297247995114241925887892155414037208352870267229807740758879567723944576411737841932645124570717134415982704654077683801092561944024969993551092605650519665442818095622543663154358158242544076957226183637775736784612899396390274963346100094852574955783013440851933321412711252568764341890220543940995332564455421277159338565269759422518969772108411009133289943493464446377532010760011788047081582876410077479517526446090930529865936836940239116432254419716869104180098664542879630311881167445940432113899088934579203549292666285764017456051086823722258604725878077539163119902013016677284019766600400564398139807897273134578865108908153989676813081608547475418525595249353600977501107150760998786534555149536594898457437930427863126710798105485789425304802737927038248618324679543815465509309449422759541317103340150108119927495848904717244948572118737048215486480408190765588515860358146380611031805209410775496698089343357069071339211249772074040621784329341958337521150088973288879606713906761893498401470506401035795314768404279863336032317437916636157918436267118978114681875591920809392464199108953600273092476695273006243204973850884259895864506336177337423662168177860528483166763092719089813191740652309641095854281081062452975262436024059417823058228667497413854734237970470281387491943983821425274276878217066255509679825710530074808021963009871725418581368622665761028470705576596347589385120141135594522111799594241209465440770740993251082864125006365113067242430827771335370293061142297000172851650821985195810171804426103380766110287173714780909347035011232122512107848022958349432863781107871704051804479251337148733540412699890296546181233166762075147762517795530255856012656777361480168418147942873333862297354610016902123369517709277292449733098657596044707170347893110460515242857010102885946818520699178249167328884688210353214791544363005235176412325246703933576922709064787704355591759471340862316543066809946489000207743940255937273169285700184141293017454989556493915885505521860345129384836458317085632686608009114558382310205753615322545760358083622384156550005449364102502198609590066856627029036305508751650927232184464492972050332999741964752198051859179740463631217690313787279424077504860901460164860346622015699073789796862299923455793415549691432109284004058394592589058779868033203278037456631726176665604373825906977629365202226888716223462668991014592959549549627440528431871696980631529452478244507963525739526430546884126949817413613951647483850355941259184518975716567356683211822835082424360226605985532055830913018224595183785065592162097652302993786660519277155081365972359881457791482030379544820221073426904344043354469108355328911067358650741307414289467126781264414628170317176841953282294617476198872580736018892881926263490302013967099802606456158259009737927376180075215298553014365047820379866109461609028139243510428126373642281555643515248005689482697999405601582513009792792076402123784631903986946760431019432905033767386008430165999821615853425766809229394047959135013824739417942202664602415107999109991220035413398339769104992055420838938623555639314142233178304484964267536885577368916988490813617507835331022911139230563731078174916672880587862886227360363103979431455172321533332805000582734322433900943750111903091112160852409098117208312767476982548930241479311240170617107373371665958286912190187697860732176647860818630762259568062370324461055942561705657081573876660091189904477501000283868135783288646372690017933380157034603136632978725420155594023034514072627728231605481323330339468249803200758039597828594052521969833813512806436712131593755473542578120748222650027358769097658903891305047269183666688448201451437431304238652155823766247358259106025686738415168688491023441186987561759156646973396580619783894041686303770694113777087020279997596755419039152956353797316320515948303239254303207344827024264463643792467895442987591499816605497881803732377208724598901660926932340854775600004050297246627917247067897749703409663663077146355049122659947721935006087476061261332717497902124948686327839357001982823446040206232786650101595301578588228465460722676372014197825330762048666423462407969939166364145880857082608679861245859114753618705630563984873090032603440966291970579422564838921914544241726506316003094573959841577012086079040869541885095804257103914363659038791723836034688215006697877829778920571057361223666501499432386758585312614136437489241561493250303590899596197444466796354350772129068683272219049343387196912709146954349876733035829956935990181986834456041543408975593203715676028481058239705166987422317603726011912132126600178480728068148688297446864527760101440991305048421746564318507967884913408135060510528388782278285863091060657451549277416009088265269913950345796769166866949032758153814751289695310450754670575493621010706352194797000443049509492159866337116261579381034095425773014262194991173667566726492026586049843961915841888227425727694223154139140628245029857351530329262880484565658326991389224909579142738916544861203743512435730108548856036914012342979395258604447744951979458301570681530149267326797760441840727186628514335830714936561528113951881305575185437785238242324193156408270060607604383728867447416160273510422587070680843909047227296625719839077150695820073222611769785628516206590718931328948303200312727389022541345180255213946846407850826893273286949388893186345223903511098580044038905981650435198029697903952794979060154466414759640645369864323266607203430699283824349247439874547398990248008530750862584684345087167734589727891750296064955941960101731902603729366718570515408098568996143181881272672914561191185711087215507067334328504720986927572124773164950739309330636414099970587267757950177012929303623953823885964062434492023076806085943284039605775106507584641371634493769474256308273570137490090163872980266168549864025162772185928557302552402169468127285000223937952716669910214808387105573555147298369710011357572559328731455441593258870062590579937756910994036165363985004834584976269751698236883692797616508527578261320733055489715872420157750059900717935445938906222613483082667571330516395614811530707878488234416931848022687245714530038059928579466980766453829118301946584746379623979306281239339226694584873189114492192226204417220213414031764419477228683394432960184729590738130788813074163511759058570472043438414310894032483539493478804988441435623173789981810440216464086235745197783057760394195795481934925260651052265064196423955796736648100927625827628054273199250541767412931730525031239319065975062018408130936029083513272137596717919685702736647429643041264958752876106664323017233807724418745610965155688459458943428284168234387846960882128462800396999171373516836773138778980227177153900982232257296320684025857253302906735358245982341208173861928442568989244668466693586266105566916593723584575527114296005003835871010592701430931626986870588975870257945927727444082797128640841839882189213397356025107067788031549033845978380238014989555533245788709016330381761710269874687136797844048896482826062186370162631095762788075772709378162095301357200538563615240612189247820168328378878978198386858305885774317556631722652979038142246361956257945726757998237346474414828856712464121583678785860949046024646697118461503297958027451972370292823949642283050496183526730515756937642755030531465450907046661444970620303905331509426280871014161457948180693686070915842991680208049170189616414232074373485180626633273769123123408092232426408076389385195777563108350582618756690830726637951662520958077976815024130307441531216711032659490732119517664874590108943437163050810497999623222262684732308835501185630236880594265974610824595432604669338055245526776921984620244965312593767793846037558405060340826480234485139310210480686547117127993712570642653165258603601734248328461844351227136594182577192961922238135946554263178493264143819778652323796150372843123987104973406983085435276760877365168172631472717567899818540461288924242984475041453243542373248808484564831998430111753071337392894078430691980109179923982589807791995379026875261978376341289969333479117038067196359566705975488548863282585631450559317304354079412616781269594497370292534553160732766217249735767004405217738211445313361241616626012873907740338475680135017518262417106673490063598398204343094641951881920950603200216331676535321149544639229617223982689610389611212222614389542934960589006307301839028823889446513865387246089765249105742200388638752379674307744721367651348823794954442556620469472106005317560541132267658246554374429796857784660148014564502921765763847297552274383082380015193567808854791944543523810391723004908021710217318784589826378526130325041723493921011142676797116989299950137270498443890721126427500620184757491868183289476562899166915915831006973635751393482645358821130495112823413999481175080299524691530462539390799930661056904259988462353050240212488807436514181316757925422371885714240013718933965071555205501833239019495030112233127963870674663419520189975030280835352829472915478005402532546254502462992454042550894911632602013850655297000187068150008849163942556883064789438657656714217287142102786863263765684386196114218503582783448262116951790717036468387441920388346324488462183948426903335093906506854627917052746857831114063485801299602794625037916148445803476571360256718238441016388657446193209987790295027265075516246290802758764397447700348366855189909034343769626547388336332687304784246492919134051281041923733489859428590613163171297338353157498094860808705187586369382117198922404800599199052152728859289074323657164800385931389275429521230897533316392089858261740070848148790231908958112301704951895644405319482169594070551075950079167283830293138542705102600484663535364402671808704301484082928828690683473881640066777188312371132948314247826230475775953155862645646206712194882407967530116934202455960565054569843455337740041556705445864708502146944409674840467681803413187120105255768348243492979016183141074580731818816283855704840353430605768606169827363083461993119746806315786064660302523392763669088913807557556236060950493946956153668611930086003266706898830165070109189750437099532951936685837246994626867463871724136175330941686415655913610524996765682333630848518051871817981905855517151023791174220705297693315324487269738132772141932246166061338769760477566170696497470753937815300214959013382461502218042278132779015725042580941521928197169729165484969512542601193948640987245461046044672944171106306547062490367703527718623641213042220984223172701463310311024624702449296843225783017331037655185093662649012069097504123445223760137631854328366280299224667367002800216343036087231521141846900513983889978560454024358755080152302144142531937615344806444989788211742013185935873571686857205572212432087244859041875316005395069108442668914236460064034110863348095183560826740174403452557460049335795013957936252344586805559871945599996018011777859366966682868074649298239531250220737548618963856034123963930720060723971639275294318757025823141821649084133479776684575549820074653789035198376603664392450332065554836201038282814615630819752836189534520259924710418209756181270917307805313425121399875080773594748547478693277087653955323437580179739561387853140016322727236292114860104426039442310952733454838783073613857649984176196348746137992230022062668733620523539975125992751719595698273487245822657138354667762215574330380100601920520115072534279692055024928768400116478811376706805321886216886897554691509634281679872020604799648247374725953504434512449929588596170676685387610581097149075201997832761925851883726398167423476568694652642890355740706477979697316694180657894049134782521291477926032240071770801635035684743086351700132264855871194736167514324844267553678297801063994009684565404016908475298011066366889448115121410859058485547107146967238464898260347893902075689442280559312128288537412362424861669428958990408826395781236694430530851600123592881805856328242269286653065362368709019397079042068915569193646084246527898466116546441618818360931069128999130964072988900795933523031448830563752661958555851373377931119754177061083471867839394754290149037228534802321664819261816417012527332521996665768521915328863148099340369969964303543824867699825694363645690331012850406813662819532598318704955265194820975286818847279695999111548613774224828701591796408649901262893697184975417889796636893303616283824140335694910230413768696992748037070270887361718816795632516478001797699683428283972425223490218872295662370078442863743230620718652708363612837368965096261649826687647202798918705644088433929450572295466299849750930678584035827811388473199868594149477653883192651349645342453045049909886752762437791853235705713824642412311542617195327371667937517302876342647173530552621540693571935760870995869698875019937778890781068404491523765263681992366823082935516615077581879026472139762506191415095964719480034007164120333310148214631478593121824643571772633163571540563098093673914980887416654469966808402949100911501171923445799824605204892278851090544452109445547659911496605975055106872298659675052984040312952249576643628689677341147076322200314715730279101092320426907611231281177833917398826206312372604768196469039779971204053755518570443302380439753581430437043607784102135602728500986058959638669929921730621502924448622280401322004855387090838913387004621045459774500274076960605390226083478564077072962493924941466383019230452799051963889087924119681042507343961331851048146613214615033769118773330140347025641819242881486902374344291499338026212324311705675135322279921656169723939182977702725940968900514407265168705718531401153380628148312495907837046070652592898829546373201217260817691001914185190463130963702937966967849440025502267808020888286119717274567727921745157181270268070946107310896942696325218368700941469806602369835663441387779827785139006799884441782743218573621075369505619315609455380077122248222026759366774547825967666735351402637650471178906535601727258354856437332132239552307819464674451958947317180536112822944886729271147995427859533469922385540230179829903587052440426636807788676486021879636941785520090929685695635902007518161124638279848418859261592691969046958740750406394935260216025327729052840226678844628506077209285003593786528742704023708428794717883231561448714549052284344468677618771447746052148083411930768545009890532727074713445298852680389875008297642145711187548572658225529980691477728537022925379182146414141579159475409120109621348570937337327979751245342338693107985244524228383301729535268391087173341590942527192115495592764823403556042730143849711255679929741394125078916186693048447204987785622952141949745529863802341299190052818994063346279359134070513373663927149208136443197602650937502395273255309507323374792753793621833172340858019711940227720680234199827528437719351234388949149514692521138018094298693549305431273299146693597170398055322763138625049159848915807464267511649527834341453478262899984906803268122336843591369395158088667251678061999760994803551950335150179516878118530292119586797906785080762415962408892997684355645346118864048463937074932548753713777793153653115808660440530134929846383271811075925801142373307483281145790498296861317810195303034953061132878358906834008455175842956272721225476887882717532501005127053465852431570449392336661763781103491733412908024953137570523906534302604643152996970568103157740530930366054236959191303388387590590742920117062128838300816497445149125293051910379037342906597343776805224292113895227191763725309912074169860155546754367996362456386204606497393088730995409046740791169265697594613325518151619488202515951225697673462740737203764166458786857786223406978481164498994667589011090840763542098594071737785883946481367549995642147862278143209932025246949058026134006908883567927807572298052581620192836842380097149236138292349336136031322951644478459183809142608739748668586805303029676098712063201659201380216346961530099578282920108279793449097667990299759702738391170259545576446942725251362050171547035172806770097022193607872175474326874912077132753662698954406099300783448547874600341597667621876092029557967048198342227991575824588590969252897508222480808758934579800107265861770041401651713484086465368228562979418859592171116221550416058154936393218463833312678035193572058187375736786288883300953870664086129571781457437058694301093023383531320612756124951122436274331364494764222738003417119242137336045783008022221446189346834123213092379374965210082850043319933500078556225178199829646320197691653541894884800847215383749622551130691079381383848956134096576411095545145048750436143680226864965042357789735938109303001486549011215234387756479326160887520543457060718571202935403740136803898229875229126336099270547172356091675394677763152073321343108763727514870999242485340884734660630170482382755254038250313644825825914567337684251634333478815093169382666654597268931694200430818911682959026674450797595896973065537928898776646408083093954629452121586525960729352363871252708493721713054453192806186404291748170103497188395895373687460645484133308962129405885397132961879360315600138511842868431410028675220021728410499173542608770372656607248740375894045407408046274563198004298782906845343695629954433003391442977650432731970709733929771943269075275678646421356988944605746968645217905878691087761779837565343965342654725586331420534440235547586255395537789398458486050405950891271397259466541424041904549850129682861175146349774703490094915892255695028215607747827285682969709256331553478054290602036361570237621414669474669811100963640189847370046157840990059741677339385788560954397240394839001869181075839347940013794806397748780831449135303455412256277179082908156705725035835399626470032299905120272329862430562590021598467884744261722613994506041852346243504394230604692911566579223694790284060282308600114018617866629724575912272660937059924119536317148726988991636977189099710421628127269060489936536679957988614262863046585129124034329033852577250178120812440785757023154316468771891976439221725350783345247367824036494014241157781585735979631412741322226157491000456943478800067590676505096801541843289237179972191314052884743891203658294763843535797684727571681771030193160635719928368871705599008457853182979205990844661889198264940448885133728656300440123239769033614424157252707898193319756792622267944851749240567045604985167895409828058804913594004107652375115080081174719146208120368136953779489349957762638144152726358532996417462913781676343049098397182129622109509879511327691796506255607297743274816883878125622009334446800971962830234995199167343890426801654312876463285854833956118582308265851627162854544745672583523040138357393212697651114083139846365983711073677102101340980859292748283348222916722881865553197563126742780438888895293318189758169405539157145553154712253333985915447436403818810611744403425018705288718141990016040120726161102889112253667089362537774002212825696201493189082869908316939876122706743776570592976034243530597195423602102570844394109442570355741954481327239881572914291197838190971476397666319278994145341818525966735203564174933451992208904890993426488186839270327427582258509621285832383817963749306287341021575649681059255757963796195961815990034581574104989395350145945038250694156273637316007291182148076199810042692472812341214063154997115617263696183519705324892147011749951746259825451418068412685364494838010208022082123060070618771970869934441751644665398515041654939014219063003104495610513171048059082924832950409620161323774679005822200461489006317136997930059124822389751571541332336292678512478914218133007912865938680458717475165333053124887311863830792178592978705769754290296333696721282530879041934737252333913645196691674359188025915179196248532000465583508308070379907111592860164323244413533100705523000624506753644585883652522045890151790994569162701487615537436043613358107984349549276622205969348347830931450292259747458395547559942858977077028862766165074324583918015851097413075043338916977152985194595970793204971537323656056738514918506209631435650788253459033074480186360883426778212070842524692753185738785072133950211101528155456993628374647884366440564519817033511326193666519161418749840747623312731265018897183058394245963572842913297481048000480777113888579804026524508038710153187115542431655784569894803646531938426871049690060801009399429214397326408458493058386414040360798495268387142042159409335761686378876668006935461982675556176036523001662205672964673930571065409800693592661001776589196146829930271044698657281650798144211668655943594394920073621483046939249189742061533512026055363202671377335021071186937239002271924091438338256445375556790915405494406012727806806550195849573874196668657527599834667619996968133188276813140564855068290401761404665936949500757116809176454243726674414366741507282902005380362966631674944782693701498704182143388718934981088100455760170756570487190936258837768665963285380636949696715501974217685058686923753273971628872604379089689585433905708057092046632024335005009361869167696580672283363060314224200309199606555212938180466910071868243542652742723700316898156362798281019273857870288313330677283105475305625384956270957468003225336455390904347114560025794760922038502630753596550512532623225104501506870647520007103820013724624026991080601537713905321234461958724382005363389127694229945743706029682618067886195764183359664846675733920771049727661219698308723554361469338225995561667403927533726287180042722347339944382061294059825239662599374324438884931701318309885081847614856948304507197992787047253730918280112384245765412883736706418853410086348032670684560901691241922882684928330240186994998618038533433886064146267529984296609196421451570567433543851988284673208678553607889440581888981681062718705607157423677119200145184215133888221974139056130529697366154241564509590668240524982825499002609761278474098625720308109878990360705518608532694440201997586890826181261630583772673185296411976976108729248966243380169949973588842396621434671398234165512808420040499109979298451921375069112681888765409925384500240817492368864244200055510854600037665008043455046372821092789767856640631617927327909157432784473995491689700724716604233107522164417037854881913020979945868416844067668234138897861445211678858396932932222276534446838912708233154256588244975690375404669108928381585191234552306359253906754463030609851852951283920383567718570539187009534369493907743148048355876333393967979682175894764328039324748236765915376149251984031735664569418424718160255730799604883185968512536987773594513783602329472136556871151891036889398811933730574239580433099322660030710200470610378564100706993120006746004805494806724676454505180366199271757663695112825825632857251144804443700709358203664074181681555496723064746121381659590481340443523418762326645784079986981255008059674921817458156835029928634981189291074457168564747248796867379419944771083613874113482051225860767037441490048342916465588410472291778646293286857551268646776879898390016678163836223300920929240629425796318567244511766629741085028012176700779373192597536411974575048870581119566603027123831771539708442513134102121577325792915329312692935884984631017202767104889964702299434677696550569939242280244977176317616847505493127584384543185263414918753733368395814683148808542556012124143034809071178362309208495574044248226869153537634056886024407299742367408680703208583193074863002702442452727454300949337004438313896050716002113077601885528228994256769816403252597411178786076749125089770989816649768686034326804899695238782460493274655843101178296251066824225280859191714837418956583983071167246010366922196994597539311437129996785991356015966481321470959617198766519081137243672948044561559021856757591805893969609221773345039986017690217116646688677524218215055239923455948464716241360687289346477396856042976583884044141926100525319252446759622317563490221619443734251584195832484654520149860065041643247476765688081568231291052472452361023455871677781335761439969031668504537085784870903573403637340513572792059896385290169408784227457470054969848473009165508206243748180894100960132574662975607048594948569017673776405796327665713402845665948531308477915173696781935016212664494643835446705793212550986893761338126538053048303474361109814640657079842688353422789112166474873407566900476829908435238465576130045624612019422342225217040429857116168517095697128585432651382571466000725110703683096842709111441510096920149351510816172353736363223788672681043362932446463060391515399565368340142330422189446296979144180659213487935041392666441894579221985360205851043594732871040378407511640652730883011433080705916185532206873852600895734002257737338919095021133499717965664063492389271327673495862696528600451948348370502911404974077625713438330154063224384474531633621419142785975158134696810201875019401665720785959471629397779283963068840033649309115657418072956306092044551080495536991793919910786198092116886764403768904672214326387224149586128490833152357168736987308483105128085857588395639407975083231596603093370790861138618098367476703320517000467807417755021097186771035175652224072599003547001020214142816071019021874022556347566806095546226800315984474649771204910447594688026507394214540541938827689413064236839214412062819775367129993510689015980279938004869512304390913181105251817355816430124758375934606968381907211676742433905240405810689535007405718753671752421770907855135889960731935712379512957016659993353539804311474827613260596686897237354445176850589711478299227006835426184476678574437597096394717636905443581704331849800467257998407569771368897181925702403642387823274878796216202445537366700982774699416159306784613944604668697931254497051734898710255061255377582967310246192863529953099188011485819097063260983311882792184521483238047658449180100086132090165402270301840173711310023266008077634086293229015825043733560458713855756190500665876922985698426254501836357438147469010702612523729020620312086860729191712204442308942745691227511135990705545745409809874332813634092443638289777693857987588618780493043715801020490404755145649917021991885983103284663169088435551948990915799004205188482668631742067023066715960784143120391972774974982337947188825255011327738916482592706356185024301648603339680853495492617809691635022543926859899872302742818118226090702020833529540026724446055901924336348468223831482597223274193830041566566399582757960180351701720099174243508025848080276342026034850623295434440456595057518391844307243261523071663061256319508509508998692457188933883534921349342551415552109452061968265429399204998832577956397765722589403750117530143589980287730009583642922844968136593909659462152662704981716778255535705464180717273676271358555239041974947860295573657002847463520958941030081884190965699779093049576699464639602556965564306765041329285697910925474649791588911301164103315797538094889874751775617529641973566409736407395761201020545984251995881252827578079240275316474553319490174640989511797022116692890031544522283005634231138816084592090961604095292381476633345634083103733582338721586946105140215357859421254066177888640654424751948672370245004330839754173698316388833492023558837599847624354803753681331514917019983108231574131075271545781954958420807239167727734879497247245258350749049816799404897386751860179501587098937969039120283039761137284020001926523632872585998412921233021222291865702064160228130117553097892510254489136461850308365723526771953499466992251975909099589357760134826471845424538840203655261278510956436860831475782008461841630427755932997096887223300587079971142532339684115296931263314430948805547174784773811002959117082883197759453660336500375941775686137385660770743804795139098887141142202242787617674905862125925423019850450915265453611796581857826821310915726314331735340591541230016424220428792395976983904292453973137058922419055685076965131209202699311060504785597785427674419230254877862196502570813720183360621169592779198533956303785811535953877730461301110224418013165515426293706639629920284789612843205816732696974406490324067696613623121401522878941193380726562317868726141485346283592646058916082268200563295260004920193442873300379447490987120830662171597936833601646499224999520787846623669706332423848183310467253003467328357350967156919607875055683332761805069064484818253377867495375226788241691771263377075296557485057963372183708245599047991721317874487373879187292240188631019038618916097488047577972252546390582920881833238919731200495088266344868989303031245688687853056454932097279744585274243215319851244945461189702863230880900749077329565917279451482430890422461906416731448781526410230456999857290843604257452622044514674228389316109734498476267077121645550952543223018047097898147499948190802246253106687478629292101069666385249300262886282998204904464470614406538756958213781445545617441915863272782799558089661403089872624365595861176411401880643756793911797421904880274313695400647144523620624708045426079998016920408495358474050892161418015621637829326768837427208348842370773665026098375764083021556000456308891798636403357006566612947847681500163171773634976478154960151654160373083923388429586740520494583535174499035454142205913237492032273370077803489087564055669690324584596765088519081429088151698696185643805784539323480253550804313738831151877049340587618460485705940848127236833759827533460647437367776485892123944331566162009253229405283857513256285222512687080337803421922641932106576527267530912669117367570263395197724462899047126065869619703135853157247117918250911896234352762304413471149019916645017110868506900588908782559996849752558368326504658880868059011004199459886754000751510655142737736749715710541411809689084934782120457215668971543771861014173719129131535531026997731694828110787243672165645987261344710262441278355866672663272629190090607998327433379702418357505928052355544909949983033013778904087629033885061004361330207189972719567014751772714930515503877150175391775913350587619473607944969927659289297087036816156130315704496790614357271135671987919799268044152757452010727622365709594931372002747621552816923821874405678760409207983847374250824859124629399121676771531948071661665958740074083921625428305896735720898469896431404823392198709631180801098167817127133721632015368752594748388525189070357274872609744841599926527067115640733737001300268817090382308617509100400652405507469945330362931474633257683969264662912568008388340180566599854828234499351106274451117252236054238097124513300884233580665331704131549265621998493815302951661903127446934545367147201023721038206966070106054799692526945690285012254797158656693614837170324893184840637374458859493353972778383921290495105671351500110492575505322809117337943178727448690186699594976123733684698430583074052006342709907518114863572540868220576671645393264043839376687319622893081939690367450151716669786539330842745245492448175528609135084653121356593184558838706276472530169138732737835914815973713329730276952758165678935384689959526554489673247958792554117616088282608197029986192388857192554587644689592943355085340010077732689142957828181680870154001700757037160973176498727520549076130932698370782064696001647938558727868210932659201769133772682538749177721015698604511257348178822426867395082733751836207798999155375399288940907973812915648085321909108046946249290987985402581031121805198487066583208772977526387405726524352307088874228135776929006249208926336078033915613919336436458135604461453139968789128113889659378858242293801781518754752686653123221203976487488359569236315854343524677451234266210487425574845444297016530870474851760747808422651220998721248381529325020142491814338727173777791072297620276883138226927527312198303269355412502632977660263743364157382304818932381149770182108389042057166865419181733750490324972442109104723093561182880632809332474594411088411932605332760688295770528756901604794479437482212877233266532560582583815688232285818577332621076312632089102902800757578127764324617004491820273236391564456998915208053943137741294723938739472047959413147962990420465969616021400038013147475737026474928097663215646685336444166308167637211505739167331374974731437116724717056377931772921610170589611720170476180511129198405173277933619716902941100911416650431487388595710294383501117254378110781135567981477813266841211149862807292316191128091503847277743156778419083949237008876117049683787326296071223215080555137446111831476530298455498638976014112611053403939120129815025640566519879672545919710011224466474493518484646709031120040422640823958735181796270050451408057888990634936447307071344257305518574944462811729616921124507950140568140057897606370824593719690245242289804531829800731731586591073813032480016549428645747651207316213017605626419975477971566336924296471622644317090623856556222684081792985653970000672717265221333951830875339759521015969882470253100844907522507494476536647762100920310571241557876058482350343318495192815396376352549024112970801296733058420540661443222507439171436027067117588649694752300672370833850819662598489293753488101089778383781554124962442287311796527298744140545176822500473812609256755876467470276115841935656047578349959832015395606949720372894505452778267825355056688272016514336485663634550146394835510328198017226441794352048749928499587996852427544479266718594061200066481328360135167911974310520837874800509248440403113429085703809483801840744503035108785903696846211019479334133255319279724862022898536604216688161147655017837798743014094926498832255978834525295890866672770234859777932374981178588339813851750681701771922049758136579219346731916877872559396757624142989468145984711911617647959483763475407443364053034152219284582065679410590978020034064670876369065190724352499203059936334366639046542357567601297412196715255516011254022313246107193038742608547157163206324271096127625840656011533242020827211695181683343216412809294729181615821616055614355798141298807792865596984562544578187959374825961928359048484453761038129779982673644305120740703904828786835044764586941019803743008708310679086559827600154253384732273619210414132174627025706773807838925465357125332538091324929885963091186159123547132889586709085149739140190301717492358265932643493927819841793344820562945099796670246082134232136522289897747580131993749912927649639006588183076556484015310842681585646102985939675695783572081705816005188106300870777691532463412685418628967441923767936306792568752134613226599516158179806801548431414773592988828077583819177210585885935905768330809003941757747187923946848329203034002718911646343040693055621217133165152162871565158753509872367519986884523729696539356448793915058384938322023131222512348316001319024103168083043054619416600061738150218253410337845858989837787809412067652901940968210290932352979860505452526667102286087052957271529574765418002228767557451845401859928139818224864228272083638679770085594642628140999038836618851981056806031992407948955022283839864423291148457719595578012758234277652715535283090950858305317215650560662838315573390471064011536852117976757571297432916019390891177420451538156201983390127697855859551168824987321459678281024195235775833266637015809291448298482618921522639273648426644370649190514934843958279012062383885246786822706017155982720904004192435581202893262090592416913238335303813818917547780983875285725126956666585778324429007044364402198828595086460938206142424985575484684070747810495456021954695036187083453926027728382313217224319709978562899296264699735509575326789237137682669153722642947726581867716571626249575306397875563957801448307290683771378067533839276328085080315885763809579079609877473957027735660732901188043950083793303088094061089390768247781328164282480634770157673755326004449332715158964798367506848839649480192141688040715838261610784631847119558269288125418392495215424395635005916322553471403928246917947889499167936794569072268633266235203247344715177651805319357602078958194793919589668737562984305227938681773545606713636502893745773143458509572894051603498994144513863007814409656522817561061708895253381651170360379077268477953758126927532217543807412790003893252847193544200676843666269398019669902230133004399739074824572615611905540772648151038102434187301938505878046264235204864171786620765278534940391996807441550971758964892476229514867044481491526752786766633562733204118297665480668282338520769683541688622696984211818578288138646561768116724504190845841299679505188169748361166034779657189823285601819360668042312322602767896710032118410385532094598233681022638743446536567332695097694335534015038865777168853504376069881917749480791082125163028987660981918020564208009979435915613267616558873837097101320289879691038158287548185143130707897852498263683724173159681010335322601483443645783779786388037680682510962606129027814801056385779108051913196432143045556902474693071826779014888721524574428680520956848394769640168697383110842312541732097243479599470022421857317251083684703407580389501931277124532420516115633425246664972370532592404556444703127657611530005465144436293718836594812031796574531323395606813267855020097435069429962976044500182437137003203982790862480284456454134302002321950602191464213572915864631571041682076746085258675289324430530107396113690241784013526137305655537615816999715398905040915544146302663795287554946623333219032858004983259966079269025950971089489191055109410851208686200569774628672475006328808832763706899498396213031370706138637028576797503859398257083951114415264052609024153128279655562914236560956355907624582222735074835426741408242459880844366726733837939108396213525718707068650714181453301831463578673592222518948774807851652150631602758223067621617337825059778046791328537688425369883590729027204929828135417870537282021274275773347020415561058062781459469863358774296457195281491224284225271826917742091465991770242366552102965349945484148800390040585109098759189365578484591866826475122933737074776210067863933258177939344594050052102178866647615920242646191164527598031285733893017364166657047091630848118064879502027139486710019318433910407236359300395570539142213427912807881329173170687040764049042684043587844625371196971225307415291716251206252728573646993767640527754244761770305261718194571046935398692650385173858679585809934505154120967546595508490618478330668782737990786847658323954830849043954883437103757117165974054144739812850585846309651182119963628550465901164796674444879361312294142723822248244243016191151145836142641431064552441685789185392131207754087238290193636901590274796684284545119343186342833608849112624506063223372705008055352118279070126144904909148571911593234202168771136719994764381599976070275355285282616044375051657477822257195084660391140723193775975637027547312267037328025085492026558378014394302361284301075297688002805094210292853333971338816159728706706645407088564182009397715414349390609938477314993459821226831461387074617706500226674331812085012542307559545138896990770739056696056756071844643442990311802617990550387676724205000337966591120082705353767310668160745189795985723095708245368509306822417476797420782099323100802300637860833927489915450758549025771994520755869475048314496576848640799573999616316079940465219709465705595349615744300767163636614068977100971719322411930247575473122249201347475393596956551624169309874413053406867488138571299343035513524551561656907369902880519657711623285785294417839463583402595127141670362332566012986812964931526692543153397715031934159878208685158199039579710108121949936656663536646234066876570218780871124675935528256165410058980451020904298557761024003803414885953298622288403227070199228729802683979460467503849334418397795738383666265677252467459357828900601824394203688891777477814488073322192390720806099848358828051041468253069762006133942510526684487606869907711355051415796740065517522728983816511105926919364498046767960671918938803070838980818608559737538113606905184536672072402989915587742293885212094840686429759479326775777977015667471299360502829225511519589971708301886526233101372013812852557599046656384981777527318840606814698816320680940795240368247150674156946759015223450796478980667377106441891222144347448498896508921747329247221401130683170059554335065439061971933943982811735404211389246821945664737570094072090149137939075947932463863854099702468087033572534258684654106205759295559181741335290673627469009997908608653850185905896919245787027887395010123685356258125056741292485187094191094237857377563487504545446977269372630954768557360384877321316152073331734216366815024593340109032751477936765939388305232622990090400532315536560193229903269538122138464257851869415750641125402733648137422415316931129495002098639418610018993058415595571692002587364366200988347499184534154636404321362689733793754629299181652075882513060729920460342567960145030368569537980171305365200181146888540080872243192467972997013432019762127804172142451116187244174057288585988571665954523186439507209857059564917726710457220286027137999103390787652038232600767995547855920285127038669783659816693289177961214226630262205376741128837553754762276793315841849481569480569594061092787620595844917543745047029321926371870744488616490256617197297798521290561087454529386695784870139484889144407218059810998097712244708997557002861551670647478011838153737748372807962084658504926241444165666818850007645104957494213512287919764842353427138771902306110098216563500079837256111797168582882318156342730192183947283038049119993905319857441868646144648723279197609846524327604608923523511471690231938808497278625070152706060629246982742968156112045397904990693967078501654282201553910494309190756741451833701134896249596034234946806767851007831857132483788369919367761490688275515730725852929703055177971244542762440311538521926420827080095241301936202148897797153475114798407054478166995239139574067522523525157010492102084821356109061747966986773738532669926856720954904701318673058362707551394405143395418784758378217005310250485138801114244924522758024630019023235070949302518031379828071889519384654760819097996499418532839725403493548999811971802477124631265268890921023783389321579878652673270363140735304717166729505083178133610422356592976452868267465700741030775169696028351428736428516942739947035875578076573908079379390738097202509162575665293825855227556703572252122408064905991965251281746583394908300192948981524308959242949621865321450208032231495952819427400212297434650424646635730239669588867635598434758924166856568824708721536809788631093886764316449690351336642777253379660675749711051938491698677352618610823485435632769810355430159790413500527698690267658708040115029330931056506870469907973195961918158181212826355960077685631602015338724717267404600715266807331649970482537220530846480996261256848747665074106520477002700513819452048126773945854401989729177006452102746960142984900869720779623390399824424934474862267899637881268147113895651714169253373356667661950824439650126386782146257455321444722025307792109031809803182435553115396487594970608662211984689439538636199545845130741604378454568262990526723219335836503482446018405609038845575771382466187933621851314368183610512516437862146146980608854099354940117881021530365979157253833905874157169166354463710840052200865334837796484737727766702015015208694676919100628997223639897015886201955777704060880636159789409176297980060274756039409928917457827419600728264931388946765877978565299381215290738256928292468124654743216872483617255839047230659734649435415773613687668294509941254454455588183961535877265236619556541718834626923251411487825355454133266045307875500944359047666579624686631367173942681265877891426459100032779454472431002039261005437330323591458624961651573551105600113073671877187360522755936792966979059022249576326228303823262026303175838229091984587177054548056712190730149178896635489930949595471601044915041079227224089252609335269954347603840467754427763857062920205436227192870950796334364327618429978529868220251665819192220957378484041894613593475943093311005008638028050136585494792168832353046344336612923430050447990284253600452217143290890810812311377095893881616374599818015632577122210782985742000664866169631100683954947103306676266531159833789681713251282877307958577171634691510768857368335748274778415764851395107129383263736133159608233842654008885878993403419285481588305629559660862512960058362467408904760301300626790283386678390042041330210427376601402290109708005809891367476757026233574521777052888478117501335821042112311800756214408708704557145595730981923320736950438138307538682427826948042699153940608500345494593021197243390143039271505788487770595879410112746275113645523508082864227353379251141819862442566693640495028321105478979862185368982848844861527878643307981138879809175360861185281566747190200245510199558722953501322272021247401789872450622668463832995626584702251562333413636719357434559952565409496699666610965245140312556490002752529339445295972214776218167250294111672368659818246810218625055140233227162914831757984487843552484653301144513654287786948912912741509797415201382878209795427329811362693446628626795853808337002870237786297120239741122198288950665446922941932193386676402515650098018921151628069946544792610892877061133087780236263836571116994446991434949713485694296584789496936977914696687354173272910830373374787733150049339496687619750575496548261474059605062405741425632124472522162449530528304694124635252086745156525692651417234533513256415355905218937488553467201199543023919274208713705937346950209253867535978019361327991904477408312463933417177089020389404706066273084674776285027622039802031085066640271149670287541403797498025185519951352355232026184706814015964125740352214469793689954514791338937741192483025751503963772606863225158742836916315546091084225994805572734729384279184435881168571469315203352490615262171508129932754737524264995379237555156996572709804540616278091244747415021618943628089164090721511359595026071188045160459033895125929758562141617811136612472101198392821640548066675053380810899655446562069505973358686750817025312091988245614372699801925739803716382194419676060281333387609195630921074880063099961154052991357315834510015001150570547065742695995160291027384100305499885564341396107649914473995912070856334047462933143189163369512709696998627375765790433753055578788681982964150111590639754752772852897459180052817569513798669739067661670424190787215475525503729135890255915986890362561006993569063334386729521841528294652763661848827658620753808972244889144739379993277856060919687478674668422627437167945318686030127558592201655256614545190769476147967360955680665411397100780055449492960756658935156198108389458324220612212993923305699518463046581686919815981409969172284147004652285148994669304601643168908059302148215112124771142100290217104613800011688708329827119490032583624452042717569509195164394356405619727871448271025020801460342801073190432238168747789228894927958497667983990314521640371122015908853594389201511556344058973339643752824913512966071838251523550592695700074594662429439406594043783917836741914545620653901277196487852206964511232264163076803607396697837761025764549099544713926316296846456326980542549774591019107675982321488347211718578046129956537717693402333196421476561354444424673161065823499874122608627767716339146586064948332858075332500792014658987752263497098698924013670403648291582366504648222557001562151297585099995606005224982195941466841592458778081898240054201431657583002577238430544964531612762597635984868358157606523729740009293218237035648053346826988520548434272789002990593786721534225931927204974982416350568771070056524891994275241200106253878244103771279255518649033925734142554412053273768487648077135507091174855019391485333049215644901300269128762493816565647269839604659257990903945803058061922235278040036008438459313601421301807817502340792924844109513573456931130516237578051624924070194522044893814189763978076002444602014031540521601646960202440431297234308815548200038544340647274344961337565718358480386170722371210491029062948096860089087337109975624503985661780706609790826054448881574161301714938842597351199048148195089312144362643029766729465271330738649762441079194252091148508625896606569260104952453785444403246554639423458723987481382065602257565514307546047182880599734197746020968117530904699664654997893427630145968967277605961563733614687697499288353938892407791478562516337393594280551823202264578438826474801581246283674542503301351855388103292427393074509897434013485501140012388856113023048000178942100172674083845637670381693182643497656647014615338334678638736536435938995942338447453956687564462411559475555603440293026133468144657466512567853684426629449047083935742760841711108910380257856559205814147373268746655447042476028081904999364098989239642300191357757809825897281350225136649205967041488188877578404886567023233302120892432082839412103831057200692876827842021258468006093708207084156358289069135609340578887041912668241557218716056830925507878612694067066507960653746262602461557003191534586701462560029154356194484272930789304930503180124539890258267924494652454373447312127429715719966860206712213980923672694493536532453244415860459316669259741891326215357101923402303977619044901037379324369115194239806687654587363482594500788074444753541228824644123491200419569878039552503812016881291063908232805378265971743346517645886008295552186180717948206287213290675298098965937611892091995154207195145034722620167509422452538796283732860071552980554363055153765219773086777752026998750805761687030792941951935815283657153971280516779711283317828748515060614461045186501122291084473441669731930103760352782267182017914911277870561197044384570620465305766850066768895968589018439710356692946058453169119886435105254570644795908740692308387183164616488154814304092936485506068793680778727080211694512082531186926575800674573309936491869883550074878730456893884514196984519264293831971717716983657224216759574968586785549125831415888905210928112253196119971314682030783058744261191893566267985930719957702578910815325146014199127394611475251774800297915107511620628947078367417598163756727276523625658407915066341667549507217536217280695395117809735775008665965588307651002978671309268383348612833130015032503182365308718943586526532235877411727797617031293772763811191302442471312757117653853267029081488519062201819966833499216859312719037368405103260212524246405604680064904940303629689378896317843415748489124302889314552846698419307357519708496093490541149167458208728353778723793798492542613724711454370408661053630582748055032227754883301693101834479322350456723152717353210750258143127234501628012341179710849278845223805034885707831844950239734644894183810792375681224612125802083646047736330448470115370541523724378628882746137774538816870460603582584877137367973709812503964389981629544165847615659028332165794302485172610275437829296581359178851052409515983729962487223381071656131147304265610742893252104949910850836909011772184410480205895420202067070628431933772530575738037333913979686169223727863568978174024327751147335736471304531082986923593577404160431744761727823017988440501627729459923175382833879522459314970017110838594528579474311052156828246213188317754767071060100638504789376384581296735105171490396763252904936982434359843964520356220919009766157962173462268124092937521808843703337271090758800742128069028959769900005293652174626437811492647557722168103666949943041394312750179817496787918784270619834024582256856862788515749783533637599291203542558074591743042807673479705716315632700415466128283027295700993461752034232659306992491137370122930368136040273543105629007540336605503221909435068881787304917229104412352131244678981403496453124753158499847800005984714914783247655239863348647727321928446178411961674540501151697657520683575454761522861087835850086911853801319987721492836773209009218328324691779074882115081335063947358625717696406820079330239350043191437371670887304780106946536693425043864240297827964854595685613478711045036250523186072750627547979621666013748491410454435317371256630941020449192616712964813804062552242631911456419731449624496928006543162461292867451826935797863372634776136521443486703081685495499968711067509106423940041951157318036850551234573006027533452820652844968009921037477796375019864711858608156798404304159353439234849010448050035638820141697277452970873800017428840754309474089524228725841872823871473562613744300731968997212667827876520252964867706242186748097192406053200081594503715149044447535160710478151558488084843183598906173839145078271873886642962319786700027333955070337939913177353412708210162801821685317339999827582062503365209422399059444961743785362307516604627190677587024795118780956566496842809280054623532404778305900717242009326048485322501813143084801355042592905022982936577792544340416289217819288255614600322818080760236859847736499948734346569365260001546191783307232150168810164888795253007651482454451911264438947808040397532693546058241648578334813555564374516607066146124457047843086250973335724787437152435354420170200698560964872716035747939972918124537307510861274049423634729557314009378580600131217314978552983859001032929993655884443706685574548468302152252311028342545440776977339226533015719245779336511963136322917174135764301849368585593335719668673522437510329430740498009163859209966002069876716549361783012630488131205963616502742277109697271579462518816961561889143837303367117824975365552544677606984520668160497372194170583454883489374757066205943271095230281139499235384473469462037953019110521148182802529921280340264448029369326212830690616292223601515227621564074417149246387114527671063342814843322756805762008952910481380929264783102646419823610749432662101154422157237708823272706593988266570496136080621867018472399267103287905657758268516821551303011771805130920080945333932940228210386690493312468906697716793994086672271353865585750122644036429789322795087395244570643184355219229952444656619132487407714593797253648190419035360590287066835458913000596011066363166805390221301932717845729179807610379463797223552613733293716442072911794423899362400887988521857594268946591238202681480585013651831882203424389130673294019315993876302702972461841180524210731488980891646101405529250290960084576713629772667752427663314205129793794765844398249447185797227306092040883346302799988397534907488805321613569597151237785862193840845646436447137933953951441338130746149611955894962004952837278278627823838398753733119502907659940211264838318395314168320589084971998040023972269177479486725512538485150303387095728226543852290428363970926297869649835208881315970271732891246017049111807021108530777901250873831419479898112893277311029607094907326145965190748121158361817392430817207258056648367666552126682286769725619267173609463877516833397992323183862940450589901396145898681827368637514731723439525922367019447177575095425511545515502041742401898584105393741519875708236360235978698162786793183719828619445046309473253023652421491955767457289440763717626677033305189345912730416241374959125960266736588402886112477697137365642320003989347882721182846278549788371100098489785689436523945520716471284190069895608941438619576298312116374569216572731854174477081283752516714863046069185679845637863258618585454238969829751562432410437940566555819089095772767001776684401234512892419960720853725391668668717859240191149277882906241891310862189722618475892345865422638895858241351574706289470599487703152628687847443600666283936990649992992953450428721166338292150384416403571787677981251570174712771728448318951920127671042242414900269129976692887974168056858331052644842584710615946439715904995686476573029087328118726743303705595415652216888302853458436957985555699972961411760825589755205872638282016722557249065735341689482038508190662102134752825597860525287737663252390315682824704814377138151723939111539512663060100597167175452938498928329987504826371282376457235589766569044061256736393652137364791480727120264112211246285756044202026714624065029017221424213996296449110758331831720982229361352588057204294887210387299006440989530114362429621846532718162066649338805332422903468242650245061019676060267288633057224788754832295258729379214883861145967525484972050848671565031409937649610440947739520811482249724421301815776306312154613582244869293633072117323437574371480903559507788353300845203342539671195392999823802395200628026992770223513502701307333082171918127954365161707480268208072090978298335167234901774601766899635368921539988184474858315746991473801895342996728678013672107379703820640895255929256234529609925761957971140919341243658985441194508786693632340000644796062493985606885300713998113442336306293173032707711979518054385344480925327518751831667250426544637917771060777108557624327380217400380283931023566744904796726924280074776335317647403419189627549338303834529930078721658052325908707591888992641509579995523205537784991185755909005714709652352961322598545078016433493334539521110114392299347965910594898251537845364798259576849586539691004545831705127969636088738706474644066175455008307710774639285283920588130455633479252765180530139827126407022986662154550620247404289684027298789870500046606867118652039897519507171306376092442924357315237808087089515297480009239987694002590867252461038585529240174654717694931476850383699314026237261822713200338768635172722342805224678654753475864505216098131149362612800938676993885360129085551166963491115857551906360334889399821099182381458307026061171602014603092251252011881806210333045075607602622135497555468996249754237735706447378747262814694897453183564080914933511532586923669393510095367934840732553071275049083802224586466712700246967434994456784968737630865643782880478891299338102302879856627931116221283263411022669140534363852472883268739842906415585187832471993817594473116865507194270088396499325854004739150406906391827900260844576417271031105940321623388297344746068656466446211511283923674766140526961720515540930532295358610912453257292000465355119322562710316083207272738102439817997166851571618996162211830603055802581578265215175852736252526589087820900177818677916341504013824413586758081695018559138504031983141960428089017902967839343157473485991969898646016852471007897529895853917304430448460817212497086654253851405521436219094662917307237179067217768436315827395853756645479033476244849743544916581004160507454501278812938898785865868377982070343839429075756840633939452976328780308769975358706112500218739107925758761665280294264833561447696852483586174104795256343841255698161307920221062192588651692624550680211785528229801903932689105538803679730895608545747942230553448751873095705639312711431797657212273465886849568253684569706736497009342869225177015735309325570337838593968342157742222496530914354085580856652157130956880259024590104577003915897163787902663243526788910654702896161896710676499880713224315013701611494646732923737627195383374438544262031535526062410293791288567864245335487425790987004564000656133913924789066281049079336376651557020019134416768100803741218046344221221275146112148725168561345300396902840438303176181973740378676626561431337527591663348688191380864667892362110617600883346535390024124859649045491123049916610760439672292252322916362368825789866275507761451684156207504863659732650100032096266927945584454206812469208730710763896275410536702711229401187797166180532204633797349570192189272044959540856573461135316287307738968008695297475486327065380753343975590130619743120843171260804321632696794505590611781622130460307746330015150687030653118077703207334283155588723559932469223956752042270026037556857033688402139074124665259457565480887265658215242767816600795849621305984496127599047756440913739386256891346277409227461056708442908820409793712454531441220329937606809190642767524667797261204383852178276590942858933271329029261797903049873947200551400057694503582319396518656759600002098145213175044316307272291789618279262703449828547146441348349673036986481855823747012786981268955592045086483976394706780095113229300888712867794362492810697121586365605680733071806910620411621155414586863297521402261691869680450399103632939700138073500763296732945249248232772920096937821534311075369562468663821687476014206100088384851450398683460474901638015437403336950829616945921485210441643493239732125012771697474642087440741707780165549455448035299750782548824006323442300722788750438648797103414085332249930001056918500527025870216716629093832599438123561078036727453409021920420804215803234247763089410136552118695316727241215124241868877466378560122435877202104651981781147608791976072572593689951587923130245456152789934527252019483470332577970537782121401490484151732179393782370857216647944183046753130428121710666669339930447702166813643757057268887102266232754749179252004013402506578400214469838211418616038477353592514792974034252647585416179854393806121301519755306632692689931191242100834487062251731334950207674309112468457167027041001425003882959879464946404183162925824261483412361053139050985015121063500486290414261539305136365731361008916838552421483377166002059820714393464130647509765291489213862651589147253816841482853396296117271816553400132316830045993114246685034147912243699925259908176127978191950448657890743104385377784833468832773309892420326762228971270468333419809001264449720680060904060286317186226247648193474262766683770691450625666727519425411276887487047805135830534267340750030305324532105659119263634197884904607050591952662447965798552574859345011611129270453525974399461676272363802145087054652269884467754524285896370404597272276005745870768984822734955616408021915421627493778734631874174122565759909174829132548719150642966927854425719030540029670999045810690071561118052616600839614015077523426355249039881414515123435138575812920070040079151858555021853308538569281790899764541398472515967438817257007656128068426510321115646418880343878742656040742089626693624909483553027224870072375053879415992558555528587882784454537790134569152236549754650692627886696609680104551698877930433345958986480553039047940537065025292286923151682010631097688555973378664342288010031633427528074191707130848585602652863763338845346380416972444531808177875351249866621151205773693346924642816983939345730119462435045354144173150678162395045888018877673792087614910583936593473216608667209886768366601315763119410124122513541317736940583190984551054358936470522165460920590686104621461759220891152404093600379279072354134458041284369279081704595902382253314969849091055098288613794916303397210271267394542437036425658604781018568152456024985542049577241715701997858159981206984979383459787354591798064240387672507967640395379915061724391932560143351389373138968791940577701183065010800257290245776672288415739604108415722119763564817245016206423733699036387624169421438051015609866037469329582386355823489802350066350767741869565782439220504479323117196159047697276402269057457939476004465246796383497647727545861430948015273476717906872464851479745687373549177325587824813347461302916661126947489834117486877591897572893716296437515352242879613162532441946608336808144309676032200635802124828591523532958323308114388942826823452035951417737881582286994673210931472528436986663269481612291061014149708008698811085470996934974731487433674884190817155035313762985407225470709790913568971380459479903943435179765886624124496892073729867263530351254225278793431633157049953213096430265659875402573333436025152668910242094001913965135602131523560916086058980717555164041427796164606259892630831523860771155225090636915793318534421106809020126622937753499096871359533860546675105634407740605643129598059400139073509766261390925628644675241046973051098465612549886327695953826506686816094571703144280527591212764448968830425461865424239766988782022385251969380037863112960863471881634764600511355282640230320648622949599923963193858105184962649580803232253010352069556734821815173167231007637155564975242336911415919190462640694592642980551821124730056093383625619790495136064953646596848782773930374195460297303461914882012450596005972449215940644467102565316952391859221041992849097693287959164664610315082984829846628496715592005046277866618387188125927914039221835902925712474890089502306808384755050047025295358661458222692637609829102242891617172962724526141046987756407061815806492526724062219639104813727337375272002532579064587375775697291683870237960744344969618398830796558348582367993856955058398664351022714003508449794322891414274859824499613093498861742269505088307684371747941067027690267952669511025129929109827890812163300167068991938510235406883132096138070685686524372388966208812159030334424307859787502030744830291179114720138140930277550328714637760341502412920755033130829516797625413705260411939359802159245696440158981208502580262232191269125632556587959525010376257568328743667703957318483912694542637991036465713669036322300407907852020885647117485035755038878608014635593364651256559222954359292431084364094735155141457566275942335338784992990576252238421644258907859226641285498310471898801206432798230712045035209534181863871106952063413988667474241628553255825645654434430699119759347183293380554153991256997471403266187987787690575694703377709174193591702656587380517600733544833900119552925139557066664902761766592921916190252724346602659543520243722919631910648774620968443672047401078343360880527112664163372486105568347009313882821748042027735103086248389640342366110208379514650990713237547868907744237803483825833340619395675066602245890188697964876540650793295055770605937197291113043203894842680292314682614353644235529276765935748120614693085355301806636587061999965834147248527433876008142091061913803628982004204837527770410668188322040170529527656476787322053776976224674515903659384233179292399348085052528788254413630919877893003490908405845755759086196293720202892013756959039125419977836231610500729619996680107267244161891824943905735945814886285677085726682319092480960597065011976063839042585245946627567074342214678207366725991903518155420721311553408657603159520793619721738871380283499158047959766944132838361422355298265344546066531004592114749697967833544522754155920681835959190205576678855156170551306452909023668875307732229557726904830640874005466129407308060192013678586750755695727098562177741262280845510774855127252366211488864093727120075461834896161583600546175298487788490638390811228014089433875107872427962220282832131651142477166689837150746306751845658193467206205740457337031173799100487249576756168778197572345330951423182637586414164674085503847405991470100817087807305089393799057902357848863763079350224005547840270114097258664101010528329236794851017282406010510467819368851332936452533815838782778227371003124278099617383769323457916731657678921961318921857836061655393078079939201728850494067286041106537477379612235251420779062253775906503085810950827398218671093453571685264143598221073198684946180524185627373171147447267408216238417295072623704651966073986454674455874912735552110116349833794906798996877815110905775396750174613710739267567705651812229246692081699946002403241897927652913863786065066702589604083150508122344511084722543276877500990922406531768224098649543834710106640723610487709649540801982367531750696361241049633209637480336565186036693646566162334621468816738582856747436654329514573884205107233418269477687931446434963466784403244934091084036903819977979856374564485228919157286556248010953689091208384649782083378604130542846278120766437921286201665329994390348433150414388172497480808603942581113564727512745693764433292966209814588465846025124753335659718350562361006691898979024456036039383644590335020746187992627015746401357587462669418860991072744996598102497763242298319490473345213020385061592912104994370820972796954599352886263561119075779668169034673822613972118783691578605833287164551988573283647988334619579743492963535057326138948685807298410791253663520793229598497549122722626864926458577589942796376531175356245124946659931369808622999984758773850035743438386993573022017299143172962730820749485267190814190566026152166060826593137738270348197210776164661441639961958427067319871691865505602326963251266787303048427608443328139466566202596558135041342402400541988675140834389225674962902370007629173895903171995626814560546910798661983277061241542377036810512927461879428889311282589151962400471037813720666686908353870334466342535287365658738733178450372958791317396554653510938693501311795290229143856608061138755029395328544944378161688117956569285893834101444287980857502058243257394615351443779420476737309031237688112148687903697744499975594059613790317176134290887996578549015125117631487309022742861717529346714627858432574765962345529311943389639639419951679711283135917951208345803867885564149518075330681484164182116714193780938038555232459453174854818840477713108968432922104555626433000545683295752449673976505653338390621993277320729536277890404794939398031441449798487938559774447638064729350450359174239969373748340224252101087281360378392220890322334903292023638875333026713543155501987787306227490477920114089122757325244209806102559950598823845105169035690980103367233577523276809496428224267678942614182947438127078520738160994835644110261728885573782811128225848053437741762110203630725773940991476047951443407824352833228587937373478203933950687597190429938800916851717815481827147981880902694430199807245766995743790765789290701925631126257519774649639262129619561918519090300764111587727502861490981313964234247772732461073111277347499271604091551741372318691328765719646499533034015916091316075537023152729143372314636219269635974043384602648927988474295244908503916560879319430712368246724491106778403219138305005397803545409414423292628423452245830420908757231859655728669624028753023358186431766543014953667373780205217483511532088364031014402453499731885477101250474338092038105263570791048048807181420848752927038001381468169542293520684140423456045318661801227322395024269498575344727990335080468590833905282650473867838668798277155526306167381619534735677374258821713300594545492180163329344625457260433374799589654884581096638721393813122349543994423976242555386024966559436617781077435035149509483055589509318892472072155348735456994153631521360985601244138562360660641075424964207651486388139037653151558335673182450064436765271515415556470846133259323112047464508413885236520216352995686984536672678143638128801921028742044506614081231282027950403288416037021027447526543148087835496964971266394163223298039998961273457034925109731466579764185832165544348822728639585171730584309950597588169540642250894380249622068671447112655526951157424702135176753030128172257911011825441027998438884682478387517018801759062223212091095975529917749097857306474931189224127552429720360795955688607167300888247504807817726900865969459452694871609863405271375877174625081196682474074195453708268191415633832373774963178398300178568733186560817888662627179765999354731902935489880090380005687824955925114417762326202057064413306080228805837135421200574992042020040731433175572756556647815125087406818848012114243665879081366858187392578456604317995877545274582951431034895085436003341909387610430572155354269548852427139555707319795401856923332057235850207180829318512588321220625498149202682652864112591735111910119144113541546370270637701699666145460491327538299977407244415912663027721866775335811713641294281377491788426355471966574829840530272765336883295251553560683704838607483777665375963842671250911827335988730595753715814536525984749895567805004035235278650598842476853839740434128185832146543578996882236161710838914398877116356197874498619150097405264725385091353712575756405362861558752954104513366093145108977704343975773345446473526077687276877031346568128327227036951262927659644867576042970263816350750822588091553074280975099542709208125484023726615202248805488485668458966848085326617313664249478612807399057166239324817031578271037562848322063022184766190690540456561583095087362370441729880004267228183020610924325851231469741525833929157056631439928125102054346744836294348021326443538400906088525309237842590414087708626247016726822197199035662278604625263672436942966037438840460311375767738556610910191468239721458115431552285554629554844928647554863870431554296059998327056979636163484406104636187647335912664266420335491244700599920646738756422331748295678042612780190753086547020287415061754088181701550935754062646564934435445980407571408841469896123361833733566324880391972699931818852252924002326472178549119963724460870908809662159605863111368552200211693993961041921838539213546698170155134974135244056795625583850874506443568999260958100111330716929753660666287829521927391547993479280646389603764984234798421671817833846060065268973307424498236782504495881804176325307249518124361887195065697124885708300249022237851387590076080526673988217039418260782402757553276425507542963838737441761726071592418319789941807191697431160464694130023983136567066171224628900170063182264365917274402916056261820919343370969017078482244538610796110830970084356381279753741523226019673838559841280185558297301307647781264385543842628069949115421168659875550509222567881289582528595103204216549879644770974934848263755444422460836052797678027362777206247627831946795153439885638506945320475433511999597422356512709214189892691241579856328694192883558736063412806954700686877128448026569889221463550935296387010754926258434527037071337521627685874381626862208592617686420333302230472866779535014782362105426872391320122153840208364147454473276668901943783189181975469194286888747407701370378086030486936386695198262681530383139981081739832910611503485917790486670523081507635315104080370703928721826271339946895411415361115140994216421105744721137317631554505081843537534050634271657601365701864098275197283952528082503203306907231218714931515936631993948461948013675718230265129656267469886574862777131426062293081315394379536168225996799817890110154730578246987957457456905573307903909454361628371693067961191237172714834551939166251608547034941632815693490357469468641349646446477051544714515994152035185248521212083483012992303759937974696468252518986365142994833539078039249577636268912234112394889346371683477168913633006967842161660719340201919638413617677062952406528744903842540793532180068657617438522372563201765027354023240080651926158762421202609037834868601864711232270934247954277981885680615211654402381492766813114645792253787002129164347309426069096644326274096683948322192219066062976868032598701865051735930936170492218567103963894361253062900223688031200704082821094659887301698650114779286286756335424915967666888080565403764495238383158686082621272607529801991117178242955966581035842071732092787739942897357496525251709620160765397919065014062039473072051025541259130490562693299477531291428890896926653703180626606985216543149151981543342809270561467219438364053299130122346435026282098622841573751338792605361839608225628859896222501260785610187339369407949782963960905368821015855851179258661880481224998621185061651394685158579926721485937489905418587336030924776217581335661856723073854787160609526064315368392779993669392396954551604225447186782507277934852813259834605002776096531998094152629440834100061823429035387601621140335934389006474585823346214964947501173228101507972556494900295356973737494428325043428512718467657354199989700881329580261538147904173035058000459708385372666466722622420971857499691914924631292341689130400605226834758992501328861191531430485871680791829776067538780805207235395749483790315757086554878240481491693544755398344041114993652584872752743229305235955972870860370953812557629914567074412463013097602645128974501258427167808071323244935371267869904595781340955954332219053388880809535650801645928677209700736325930777180582577723469084974619444183910270322529092964523613496270134099321313713024064575912604878425023021217117756890859979952873765242349375632168534926907629109436770056939367519236933217292739933510127409102555735860911446330296754150827753725816578644220511588383168104444285953750666012997226584156642284208893158180864298310945593657035181363631272445260904669204707624661387945466288878634810077599082215978834599681023475783029209867695255335164190947528516560028339660465716783973765684252882885461584770967578521295825581698617878215038472994542795217115032266783509142589761870251844213935749308663408191391768565998988161482400519126997496033359619422101512364882506911406518673436137007442635226212307532420088990683591455838782811205226589585832039186191044114344194858960539805738006322316537459051241796118684223446335481600331126434139522028841383402075416476426189320847135138472560922033972121136863758770988336952031439220546829581714095465670960526765919080564054936274493349224467716222158311439932445883405675109189507896640916204204686629443874846588458762612906388170345882818987854826325954548205530997791119465838842442220375814317559674888923345805955341510842988890105569899310945141357475713040948865061669051744116790419972001696320450145624619630104020159265412399986453840619467766301264488532456746191505111315070440110084501091511411007483921807988062741793133657597578082195406604345377766259055449008676981946180861290356411215227243706975596092715609904716766208147478764293743647910015006403085709581744286395857894751697325463248973306244096852007463688087514391525263289312368358925432299845158263741438538439014888303645589378542001645866749459750773269187198012073058034056019133104137584572142073222245800434520665689647318684112300321995353146047775733960469949923545807597530807766241451932836807333467905677293606841537848844241945235057365407245250799910359696414873021363320261165029540226291366594987570764689025445585451273098462733930833425966646215137401030154768772154707511172262751038228711530653886074293818948651399063082026068089132417856311370001741956761769622573405624632380692609137847425894176293309873435548832501065287078843757696283903535989276940659169254322093864171153960421356206244810978428565437047440588755378898864531072710577656446988204822642530703338122554931875933908387438099825171382193860504906506580318953152583666076472333139206988369287451016553043026304600359629343930210288798881502197667697879625245556718785067739397012674771884778326901124849476641343747252677495338733639926296860475048914618588618621632586313579111922546717267267174044144655124379633929585719057158348798100419167525542177394814269133928429894777504150493709158113112491518416431034371582554030775231299266257132242422123430033799994826054008154470962395035624773028573335957530855936558146027149365154237856658031383021220006840396249671530841274234407560566461449945466697110389284894841834981127533492137767714658483529167764799345007988996935666222888000765083993347278134612421487049513927804738673483216603490302419312717640189420422157797214461849539367739395146436020065177147990618093922838059613363244295770799165623984008767823015533558829953125933074617536985171229260538613494490198148239382412371846581678742361583629591055196572044071204569494859380189648056315593695833788197069416607616328887859107719164171985509160864256143025616613386734128864195021457106860329565194593788545294653890551096569530262544579597517530572485205964617898198560020230474695391785033112114791104084909938088639734260965028923786796569648856912566398020031099266531409882242649946997957340922633751783865100165855826070547830639427986037942801403584946909152105191161733042971775217637890972854295105348885086838126076338466925165114869755676258655389003766992060346888905578148829106750673452425388187985763172297322602673847990321207267680452416509293316858048034026731310571879691532158311846519723829689760175010943281023780450161477703429467043023429363376760914415529010124098117884822997029742029393052520010290548828483188381064228984777885462038145926941608369700228130063063431697357924775234039799929596193960432554253820748315608602536624417379781680879878664268234962123944493335795537450918326595542188925256355897885148756304258878424638869880930183317526185178010892278877432818933659769231869745991379829527912707162181950392616877692969541505319425747410026625130878104281764423923246553862522370253484163761674500256581877627422287426053128970376701697979324956976426648038989843124431601236668000928738154827379554002230109350131534719616986405253011432822787850333853428094425374945775894101283688768613055565637196880530841951402273036389255272466834684662369274734279604175049559578065914913809424375900091630891178264222964737622855036375084978274955256205995774489507533032631597012932918768880013053782862740807825667958610868110141679842417267215293072396057367198671440701873212022011899006864002708167833328026665429929293858367024869326948906192529797068970745826329956601040289388950628076698831492490408586911118485194955737700499930215386798117860910353904142502227715908991375494205083710436365150628520603156454608696572334312082910310502317346656841464579513122471687906674294378843990337139070161030746355111056280676930024402051699410879677528086335141382069751610588661866049610337857762544202161161942319523221864104060036543346154963212011827708625253477003271170377884484916755405097814566761870472328367111994159606929038310574343090353919544212599617595427920359657003568738480264555721527012577125145169026809218506298880877592006607947855004593156165431357281330906415696023092613059678682617288368817485219340868913291217680780777369730164946592606877897073496132081028908043901969816008345614869900495885207197238237353110061169685529654201574045408093302980390206724864864376233535566604415868337096633334924944794084722561687886260174917104602965379247321736749461262115118284981969769611283751213949706978115295035871488482944329238456459503031369667518274262707243197041815850420716320802641388530030163391678087566849628305864400335901027655833344279819402826505094517566125048154076023000881371974413326113520076372342248953323884027844057661605965580707070606823711745527679668766951553274941675982322454643041165497384956460904269625880188027222676395310330792699433244986929497862128459759705607987120982971178603795319197484916848399742782255266436760257502132933759853899480437621260285618294951372245176492236131093437638384701435206121747208555307486214643064403856227114243933648651635896786851785400405411775671458376965854178557827918400072556289521455041996550556735536062422490685843285286038172966819240544012597271558801821531434376248446438657917117331439662127864350132766604315663496525990650558494426232129215016560852770724024154798605231941302775480839160097388346661105773959993959832582799393894934383615617196477982077857402848311117533714503227960151190666616886269949639845692219267605480968660710155734550033252224723009179821395489264248434592350491506677454360835621468455481736359981222583822121944679944448573669582054133646458668655646767002114350906334187206101403094206834789785753970390955156924171437347609387114019756536839123159979970564253799571597560092846254792944093683546856783947795603887369537289420553458557899876888769111543018275529734486345637044175776222816191209550411720000912157642861221038076602202195031783556473895600130404776551637702275798910287594817909528591947768911092452353838728923640630186228281510765263000461499266807495355912522723191215721669536980813664557788032278681566978018953618859238797533279734091078232110865200628354901963358634250521130238101740161313539631124939836608675796056245249827716594895166271961461573760425655485617912994600853475971113037963042965885529590036359213370696992634401213585777333812489164563192813936965000670194345251822358967208364446728547529369157232732834761279855693272894216197806702382171239119214148731218097457234866870157477228323264540846895740517661933642009905734965316962286397928777361670745126293006284959420340930391735101372760149912171636758753760186648645222855797657204184363687771554008770064380488336775835680286009580173536365356573754910665986559155047697206860496102863180900453817721156120032214932726102155552577625023171670754780978236243100954470640778616219569798098247674395770270417258528827304385417040187237333024570201767838586418385563488754307447828883132783666170193411536579965081423062350208729352037883605372987170519269662220635970965454762314319443787426357271330878625665403773941480466282135308504607476527314895536237128705218369896282881717066787521969460255995818339763140321697869441537740085355054982183624758543790529969063318737231464626751054127060771469766141778029479607930781199503964284408281379363410185907793020404519368743852394501577864328460031708001202778702222407576644109711993185023282389004881065282756244131220729976002210222948631449702823218103767522521412672827570353934632310941610464323494828563996261431223814430529934462729266480090049790409638626666252208440108035699780867674210562600894641170520296372850335915512899763670958530227617555283126275234896067892853892280285821245421367146121133869593115799895501678533206227001638349777196262190286996121542423313934345044898810456071422958442979470397475500694929197624465952527998018637455987976054377464021525737250722828177840055465492075347810221639176006117708605030340369907062902935244065691202606918912141634075739629862546386729353014096930219011245444489191721951321114247660835557362552721075525267392156077817067099922904988975048488512133552809927397572817144851933667178131160480697216958450736152352231747198277673516460304210741977215133708075613162146598262717846213274754051570228154514770465237578476717873582797309049259221234992033352402750155415325153953179798476090485303754509885716424321973769135884687166246525334071101011292248380662042784258815062050524389399425405456777587503940487892257373059812931717713633750564917261271492244269324319468330970356734365932403039623134551762985660800829292317052845988600313262518291426807990983756429497575210050574965789568788539025612784596646299391443506645989988226325338784090580753871687382679898180262772708389919426836893502842577512464053484564445098536911199761854499162697971475806962051023400590527035029086471628291343327886970626626108612146052387211296263502841322740704073164894670493865486884290422844780013703487582396602109134490742542119165634145002936077964949507626171635894434493981288044239725792169888140231938916756523790351165886256077812229495003233038601000843346770956362629320773628659167965608478205030228573120089193442261231018056433886414841345452294613353177002756524860285688291286101159740421444655829847964702719782046243805773339969676291283501134463144553665278819836839425309215182077984437496547521131329165500205043298038193927608215920480555771480016811544385288738334586672525322307130937650350752189081527815039333275280155535091314446289239487593425718889408170450125903481798556999318042204049070582582910826423203013761271523224893977086311354614581921499442098844550280703490202505197671071368112859396596331498715326290744967079606921300081827570539089276430694519201636390855272254096950831485936158001447306594163087160296037614988926578319403637719003747629834577521042083542903895862457307416327715816389685409636047487186376893297588458673638664815307453685429373463337507333721068925013614366288628053533049163937848489362179398814326791575505715265422865619807121609898692647339919545197524200796661396588584957270571830980582745459653783769191603127921623505705422832643176788967327810488531668750126888331427399849906451517313329703804122828941295103957849752238828029322104775908479627658079995914931762609813989887408219707963354950656519976440285050335350930959259583432460747267854901204655635624852915714661105806978429808175038999080316478101173609464801966627896464604307261006774620677840714406496228002140083194653286266824158582143602224822473964397187608361738312255403818340976466876150359229593332381691275745357605262210093777936638305063857863768871537613054990154282969066373941366126660391201414467544411929243109659065891714538750411335383995726027969196166691076046581795895908041196827853364618220009727523238765065887624199993550503851486512565488902445951484903792980574255292047865896063932881486343525489591781426120815738761614578409383585316409430782214352277541329980525203222851327866339895795402006692206096509348254908755899821135945193721642282141935077910434493064600064975545143011961609034270821730449817545899236263138573821925309242350399215241782507169788836565413625302584167485561323650580547745368655728299948470440328598735887513132279600821602978550486378228965871473484592677077102828003676746003156499993377983860830711137014361263878543062175833220625021397886883019623318200385955955998133819002456266862548426745033697671553491452826093568785852554370274041188669019915997522100391003191213702094382213081585199985900902784792155853410721942734274329029800040868300772444870215449509308142721348759457357294872970955981247325170827021796284482355717055693942731048537649198204103349359996628943624279659384285689874700100794413558611247417652439326894616496414821366828813280047949165867009622650049937842393702375492037111829380006042565438434574284007683412023302118375694359288409619465272604202467213474734858976048233253199342729750944257234604644934835396857916813954868807057458758832952168489815784912036781145506630689000932045112587899882492020275534993871911743738204894180953240187306307541707897219992723311783664435429757826556877028889618699654622971969109988883604906848636029280974434364271075755683743548312120459812456484159096052151414366971591160264723933195878335683776603598271576525296554439720824430907592190988030613748786098423827653343457355733964823701102654685945223733079714049676213455223265826253374293425555810471326392201045754363583969756929222459646510481499111258092369485658504690829564985127727810661906010039683675851588597451447576563706202826666746935422784090577483703110414704246679194082238531966150889588995536708917165726051190062545286903811237120988646906311583670762154417005897978731708170001399374588192220613487523245772095298430667151831374690233235365610091364078234009520026691442523720932512240429011546151629798965433647418984398776678843145668196439441982553480725490921600736338018113391515037262979716596128121197247707940746339555120514735435863862986273170354780559015638978634136907140389514990872379298893802247050393113848102899084417365967070694019460566534047902009839730143146327063894685064151521026364812884957875639845034832849992397264818285939845350259276550314784107085542813391958617098796454797514238660975144887551850756831428553870031646445122141054565820534683735425791025070810901540054079552924766876154301343236933802809694524288499268006951254420370594964864556432431977396464622295869037956983027657561314084572057329032636601825479809047335384495626948664464493195402746557829262124872846358347429944935004484175966620753610043952732560326143524267360797266987516530179253200241160049772162328665935057516339382857551502564656227779090693454734866750045219059391513296291504049106093990935953529364350587571551453035731519233963641350644765949864543488636364143647631786918364496594128001903444827621932044194196950573310768322755039204256328376007545299267601186601612133834628497537887237986362340953463592246503888591223234801785585221422385674037679883368575314408132005603312684405084936318753560087058799090742495383651947964041845628718846295950174950942362776720159547713707732389401116940556396035045854521918119128439284215614306514068265259286998679112573702722226731038835660115365632657778511128399697847416820997743570060256841394064141770289394424972779286024647193183403132872655823781023525530170986870526950341488611862319457261683998821117806078105319370123875431172113792959871807166061390353221548857039778018640272694924582908752420288628774797899897361586920525894795913230556858850568797986258209359674275951194302954675390282122656030377196739864213121190213334172393146107489659506251894948887801334704531631479394565414407320450019840306579396312109946237178603776520772963305528848035570385026149423885506227920931645390593204417551456161497514609225046512452120203014229087215523257400096803034204472488154731591388973323425187029199226425426619012578957868012525806924277327374245508809674135430027409519362240483648541110991020865752199435560473771852255180628593770502240122469976353483958560200468498942237920037760831277889464088977445096863133321711823354246371049713803804689108624970774549719635126332311181056223546831914092465768282716703649609692513956280612443164203996665054260859246617810320958230029290133603023038986153768647103963539508065403492682499586644124791075543660755706260955948391312822012486849333865889899144093135767976437554725001580625332654778820894377422492642157590247325092032202608897027869810087949879191754649228475923099247700290783870909522401473891891995119215303154462614148509197134400340549577905344818871056332650281488048914631339589399101822267443360166147192963901150690618093999977501499669365065097570938810497188331841073421569372944906524530550482999471457694196563807858456682294288313916956878556423813188097913925608636404252861003427470417428041367359180169494028823154515934516229844679728939167933232262325229034557124889517086200637993950746169240775235335786508119909550741320089939036758954723749328289211056521436876794213582053971468926494317843798619425751289881143531406603880121075107967608110608587593955541562150952600748461895895117349027200354660947762008857607481778821578702338366611119233114843233379808505680830318959322400451126532505256831141569123951336127573167155174547408653822822562810352231859693429585550942970413493694499401873391276461464767405589964764599361583485350718855627612879410286791802339678661817867363250502659123521314949375872501775225302647997977951461437332523786867269761142919275665783128459653095203745555105072167389431398676833610929523954087701069118630354457283786342298650922471087920424582571779023075041502865949947369592635048911321724314831966967671987039707909940540511826750799580093212659789650450580406377851113985753823506873072998248663273803297988441620856660883620923346105035294739754400286646447186966999958661619697203626479565875566302239339412095348272141238523952098956031114993092164470826129163384251779903672819520496635385080187407141227194784633890714664465816797236580214821587662807301769982949590840194091772010530079801748830534427521991230351846214635651007715370279930285331154628928718995982451826565664355241775042556284979057340666899694832750145912428587720913225981692511432910100016848598469795934626955555862558650907239600979761412098914138899775039137896411212972776214891302159739138228283192149248390157996471120507048665559019185859143036685137966690013380125716940963398060574336218895355594732336869856721861182712309021396816890707505285869771491416850413632246088324392362772794478902434619187848307830323497181246834383739999502429842499552545797176320187387682877189681439962132620884866669712121778484260103233352688778531534669779468750591581623735533417682679670865914437735732600395557566742859716566011773844811885765500891866898505213513549267851318968512911877838811936691202218091602950715199365019323948227386699647187200441212612894324590073363140847838412661979689384176254076354588677249919079620218862281557126458310799646929215274176341733137950634119927877438878480186192319330525722063951005285987571542787991664727196712361313125275189495158335441169160195023995581746815999947125112053707022080267565658607438280682148559717986865629993452233824743171319515598553236625735216637452256773338878434690304936788095595799213526125312695904880761214012945900450112746233299875634603681296483593497359840174698628873593583703437034519745956549259303562303243414503436554621877640553630546281003279108619497910409680935498507894662200775696203493088373961821376951234936896948284308299073269621128789273919657956738723032993725089685483142654388725083548308278491242625299264568141844153715125525348698353824698444670077124106211234252965752283822676193876715632416507780594901921710974107955926273847178644946402203431193475728435165412142966393064645666338948781926121191836425586591353754055961128368280680965455569443696198848272924164640306190120003634838194018435653374439184140836761359048369569521546863686077364537853547071546395984478597768794332883787598949144444672606008992959750937291398546892509289824441726357370628899470710639766789930055951602171819035334473535474189420428840401002480417419641679910885883485401169355482828429512008936426922661110352735932207119966930014314682219945980073572155572139920143852688702188988208362243044518301258278426643021130959978239894071546624739382452013109192460099664235443075339043711815778118294214735370811254468944248964966123804508532947888221461715064339112198412797508790761158522196748012035778038888291510435020167027314028132587526832763590006172938937604986717978730842861641457386215595097561906864179045340139216761412646395367355902080410565124254266526892635269339596091357371281725180037607624894771246868415364267593257431843186805899084940596579014645522491435509176208218703844351599306530338462228691938542461500604913110275153948804186634187150665675994172613373826647363956548231262719745537512888954185458923120517959896819250868163435573951503075258108028097525690872004799502605769581924167731062719199468635175127914108145745232229762025205757142290999088262795129202028999887838013124095377048401240120760693016619389608297627738551079967044701221889624831554793446806519324712230641759586717464910145802749173248901709234108794957510983248894939441415262669576490097504794349689480037017592502152253410012012484580779977403465200988993639372034390550965746257267199145101411022845684620121354349954364668055906089963669858626971931992379057881963680643298800529329560381294353354887224578952066921956459850915618883062866390472399062295806028641836726885438028159445501808580873296138782969997995453573620176274110364727458943983004549504274340350245104648796948262088989268917946349595286388319460486000469691400301157445563766266565354327027025213332577618638994995697335928432320008403930558197953874005901483698807289713848216544908381908234596622953003638927599390588677653392239557696129335512690439627203595520535708247956544003398803192540985883206184582714642716617144693360686188442173377801669408570026949296995524047540405299327533200082311562043191676683308394866095817876436093363803862291682163397189792276603756803424917697540818798934318270226226954927445049857275902885729393340112610026637041571076903095563980055886829137162042325458152992680570751549876450931935752296132683276113663196369062948502891814184678520498884857842825108363773501450477930684753194814290649194417411016904792646491406036635211978035002274883876047004208330937162932116709414113988057387592393514758993541619508667146979668930129874910613134136686498540949218308820411060768380089135773773854154332394399465386748713417410233956809707441189923848614104257572363453513981321540221822638977937469305074115475359023352902721083789401028908144433326778935787144628127202207301219880332681665212532616338885148629391895540996085065257967555154350408960993303373958896782843055468145256131795340650896720523549731117291797095467291456520577991216891057882224858598363149850163302004917073614131921880061433167036697123870966685407785706705187248971809100748746525722852613982067516448636723413626470694402293083706289614523709740847269700376713758572885654144564399775741269459401003682417074183778508056852595640814371580852975185702549716462570399301937745351222000492186101596444614195971255194236415211216106081063735320172535909195190282862965871985196066568374169434708638541262818696825645887352146491064294896167505103209008215789248431324421690508166513620020698970167426537085298074230847943961488615068812152393390268956776699195310779671526928437240743983698596377735483689274757350400372157998671967441482907885614180669161778352867916632749703036837096653341667148116386054316628697984348942628078465299215369127085456966743866923965002179612313375234235408258822264567832308526672877659127190219329200940397542667448442627480475204261704204688550427371453784262800273823811227875835706833944829975983465496871372228845565457195887576242068566305792262918697451461008580737268492954146856498951237909273076213886954302848169845906758841956680605623432227281140515752488413902680186196596197411437485831876776711896470822322135655518693375376305963396827941028610463608124072665781078024315264479385657464790870360924113959673944470875035469202115811188033713376817416946432348503226949656941755294797721116980512249507206900343065320269239480698941340762376951260401412544577401209902342158307872567200876486171847906568701813438522655073533717263232864532228838588697397236589060272160343416489550075920887420958547158941582158129142884038897035244135295345059017612556650701526986880323105198503259543903193602474560891797812740399860090748474834581205847111812640026752129123446609650574165940063174924641058838979196006604077402814629813810541142653844534270972168756489932648935904412576898716349340991704457075717131108135583999933525266571784058245841166258789540132539240922721476270225455986625173035352227121500595951592896292754061233620378117928204176458273552748533740626368630138427171794463495913992569405819039705961053893850932591911708803845255945121007271754570929232443345669480189801765956677858027495862674500143971439714134043970382962980384759062152181799001415616651483555422708844868533646695730645127665865143660429461403236454314803636201112479190893899501607268056306602011037248585066275956479414262186390444473208757810838321786112126132082804779410447380513375120666460802203631963319237962837991808431393397507535628567980647652385641754901849795299522770425273112600685172007697946788987062244213340974487873954105806237587039287655005276305342243949775138868835501982628105056388847006466655170767026933879483178376407256731075756337115792236376809573500019404641930190260728504482880880910938550104720059984621883187603102823832059983394188912831719552359050524485865985573836551417820821995627231801208978258614090355543272870692700367613216192704635512617426845039872085368386724059318675148724694745136677660911461267985949209707364835609985984584639923407104211863891496133300380998806572933399892000738527763846380280530524963008147441950587993284275037167720373430205153610126929462066678574473451438694069088853656145567455656828597371514765735567831103720875339874776265577910388551321173789175835421237448363945045977409316246693129235181197631487622924898559801562743324234437427766419711681193391008623495893576537811915439434580778387406637758045736270548164799962226879917297391578548521836166816240070143381144916516842962073945145832671230641339106233261182058915939095011433356390233979097687955879832890358642725283111803991619529477706082260839820267971557003667102059782842414543194605689110092124204537969902681978860076441083948009844418177241444016179121804475700753790474570361406564132595858961196571956861001274841325861823116374278456835959879610376437565267553173980461009574669544551702903229789536815505384883564627456810479248311828192705189572866904614825061967450021946262401566341700965992348662625544105123557481246088706910520244414508437094847776092487595095046770142023734434894260046636341422724296413719919336857065946979021889318161294982840864006542357118609129221166338745193858505975430450875294902333176154556003343302149534772141457986868007275000583845379214452589312888448166452036383348186730834716043096641625338661669208486952103061421398433888907849355608962501234747090610605725240911635960241099780223333691748380879115829775037780519500167895284361551520039024618556801855148732394691697526266787092142292327887232471777997193120979467779291333188194918319504998712257631763665273326009929189955671983071635163511049265872120848717064882967401484407091031131713853786363148114889896920811769007838451606278540868885145102270192823912293248572596633730871022474712287594941780612203184504187534859455840241545956694165460761241560042969519280159535656277148011938074704066529523408121603766912804976603039664861082935741803668406326413214969288720154579210898315967336325025848268882753049192523393084968269133484886196726668702167690639709371403642470227497255545219363642606556035772732252961716759734507293316417448620476540092154226826846561379125968430984959675158679027092444307007901730622953309097996706596822275124778456811204828813765395159556222473672131842539653499713346971293652471911865360379623040562382769092007872448009011225994794761124565980525651751548224338355796582350185160736497765643144576988407295038625196664029901527931786372934425264931402262664822897079368185366901581139176345110623228933248970059395696755669242097547870175178828780894815215441882521240139972336721238189096116046138380301910459421757052124469448809791917334140762219762731007127416286626424703757290905060472051788325851807775413683618431900844827504294070494444866243481545309936244587878996990376778046112250883124445620577953426256966312155126800558948609432756777551863718452135612439989382745120809022761262995366622284654072601447117875477160248104091284634956793985660644457459377366219679647768580264233076213504268257923536837945826732906960776574835582905351805393165031168229332371165988591492849946371016777889000698230167540206405770523368698171557382056125390452844241992396919010324983518977367866676513434738216277212682733206726823038282673901955595812169911435566396637139794108525671221714987287110851949797656280214657525229724754928426691862388993385761934058781940454208192887921844597125017611819841266485571609219231124260925753486699701827129992211645718747412316842504041902128392608315777973727666986569601278861577948331128056891605417228367068999760264959446652799116136528779556166195132302372082629913303113521589770317666673797161681064723667565274065796024613586829933916039419476777788066078378226440251119786811285180727546301964528859985836990368614677214594672533886138593559113294364707249792487119328850619752227527358484285839413173208024827611176820594175358314258957141818999265711083722377050869487848464228434844704104801016871801940638272983867286814954845439713847881186849915014126529740422402489528111415152344303958922780503860454164075954032354755206294986044085949204833465268549446121325511681448606361129961806743883930289033177121974938277135196762191478640083343214936550329926946209656705410768552936330695654384698313426221220653136470470236831364373673662988531651740692721576583609651059545640161702991417838165257696828300688612026110991839613376290247623791774351537695648854873363739286009823103627370735264884381079060687398783380624134237697776090228633123306583951125643011927454080054792010327567338836892748152633019590913325156542233862123030868832656275156431225415258239972523055316283224488611825727636220144082644321732542610439699549092241802622987780524098811947799722023040556860908729789403912885045027442845361722072564302463327655043184877018605227558456751524628366973464760698957804747264227652528735211066812805102435015567057278864328749262691389849101703625343347306491023001821982704017004517757736732065385116707318541690571511228395189114476980666601956537205343529946151401611338704976777011395312671520876356027494660109558517759850475355800944516648531873390690588369306975157024594233955154580211519919859425259160569896908634211363300523661211190221829635845942527151417762983987385730710722125322151457738598242882522418681352213334126503075180821162479327436266307125532509161122911975960333909787059797166165681336832411963897854563637903347961952657092832139072680555369496681188342833162924425511904861562041355787135769623553883886137331308970424335398601113636716175245265018231621603797399330021685018800861555937560236862386602820822263595328044558590197175693510343380326331314193319012215270507938713155733611673140533209005728863263756309792712862687190722599089820295795051125022679222386638211351018480438402783491884187211222298091111673790575233352710303868988163190151949757691855836647905275610647597604530810433734241404426719285103279673786714616258950112396388675869481008396778815630327249393748164278664170723626125943511672025389290771453809819144933050873487498390786378982819517357614936433496050472052705057213388944172292959411042804925292592468810457472370431513094160679474312325760085650455479087795635466879536443270169709849528820625283532679876145483445707322165102748690675135437836709395357702568909397888931305087070939942340455771380121413641752407810914380778450216832395339322947435680851921344989577465347359906179735819727043476126810020241097201583297804256945418849418588909486086346192283198646528442756331936228844073994717644184715598956552789570634573248132856143355829088541800530917473655271744660191112477274484858102422318866732440425580616806784873450861100885062140346271756797789662064665844421126236259461761481484827662963885021178287741070810443939075588160959972406439685046170944730089892261247869528858560744170524593370942028630488209320226039897521017963715059429727165264724408875414977509327357532308294922728055107963827168645832889615246899094741245844245956161362335947584684747804095171998785407903697014642613907011820873245394308530114650128071163648352722327435862653597062054627767152858223587801801245101888753887004540879334577623366928693500798920854901445068215620669191397697799185295851747566697447165487589980147633238830586042760169777784157874949933815175331001745042033777658104856480336267163985334991983003586979196419866882698525340828487405562931463089398601206425189138038425397333853580924481458861986418924500606118756023319464228479764911348944777131412187315378272620902352126102810421198063733558840373061974998946667419224566842204926958420927078177969166289888248937082996554570557152351340393131603465666295131757543985429345406522664958637634741597524041046635030537746615766810231764660917817843364232843635135355917786487852001160916241478892811782457467020704650220645566774631243615400167529209026054212752325566717335554533012271368581548671886538572083933505791757781398500665317691422537608298598161329867190712379803053525032199755689768424043551876871181666965806739717041191213184190692188436586749652245371469117232347116208223649559175019249351471522438837783334554053521597601895153375385723934726241337818850217810588624380494324838027354790644299856074013852761913222440530444890218733649202876016635487229014086166033042978775462604609474277039659165223588728065096646629599731108584297111925723797064471667828498741950028359579905272043581367787442709946141447682050065483192959211185801431828571255669077742180128178898718797283087637853790491072675179348501246871882170442967328381400015380345191779835122799314458002577787840886099409629502376092939584165824636391419977328179777439242028884829707694400357973958272807844608881843801095067356280932784806456384822049833755796116538411837773953698498275888026095234142074842759984810257194960150460769639868504055826560870705468743980497157666467881947467676418875253663402864634816562854496283240154400365172210205298888386216064438422360188435993503275326788584673482029874287206962307832401796895544177804885314700915761608687953947807573592170115517598154546421787184953406947835121162544267498008513871327038027320216493558460890828760895728294764357064809214944694129753799406102802597040380993613629205199937056936549414319949157601161352716924993901175930871313771696520842666793687757847770331569536578902794065997629685732443929778806478134649411841154965421924285927635269290233023948260669105711770320710055312704618278213724207227795593341727254970105376530509401476446549956536715164561828210102143193027616790321677619351551966108345691538151528669483530223499906055711202003999380214974772446077360965781535734866369388450084697708359001585836530780647830079105481579024502211730474171163516801419800275531706258847521158956923582581204363345932246435704635433922875202450538061706099120090867852624011629701327467062489792577582255843906185911599907188120904322278211690673035223589975517597472110023532871144076216150461344231526151814719515002575172152810682123491554683322088982712334261363870736984003154627009371832964818538751690909043131923445935506699142065752344757894696925703323933733715704603512322761454209799564656305603202389439313857192522704003772515203374366725717576438810909491222091906131143669045595896438029632383043865776847635624231700515262266424655330660373464717987740201397213094123719150247936691459164707807411387860112795128919617641242602232511153743709513358481528262002272084473508994703728861230685800516052768357869120895723717760625335953782291285168283722409475396977989973424876231291836414113747758623049224474262103306753265656859187234137420090848559389278148787703884544479906401828602702645399826921673220514179034582783713887478855620268753161243434899042311912624540405010181549351146393303251087029836358065278387525713285048296063955903229470952918790377931264756455922329354481116818099605243671342302591899672615874125533673024962448048475662676242314063550547438585800695280489822771980877922325011140192530277662494965025355604319930596450097211714173947725365008388271706466156271035428084794846982431998250434876576293556366616194310254818495478982937888350361685656582800969164117042876768178452100657848649640645628723313350235129137411275508819471382226581645839757386850437920217405649567816060437153578209921378826370986594719138471728106422363535998342734141789944840188659638785679876527917030511458553478902171579825783415955092979915087152928003060250077404378843345235553599349851237778873641526926254728471751904350600535163493733731343385349893787339645223231035584488847848321428460040076946307673886893927264370940464013944073614445919562593035365234203571252270147927080786651069425086287667519028682101032467774318901311258790200837362166569266302486356236366195903304936667590172282004131761087218642713506803472595022435837876606581746224789395425517891803822470779634630007112366204520656505001178280758739661467677258140140635446289433533910714223116010272620400304499678582735085247828107896249319893877087963173109040079285720417854287535998978256758531301220942891651118790511605345539549600673152615734731754978940533171120329214995617262831693243345584996299694288783716027617542418356741267278565210686479842446527488533998601742812963036391852985193912131712293835068203226113961384343701371670975228075957468714713942381178617189794213824444670870699590303632925638445477531541879325539082796966055898541953098425860084173512083996219775970650963126062145179645720890035938752386222352875310250077428026731444330187300998548138049657865596484030135885524923598069819615913872637995702296845232075335304958446721807791838307688428748679462804697958444154974497087780324047962813935436477859662217441047559017079413444624573968791451496529931301607462500740744108811455079770591770554111590644217978766235385354909331612646227325038070668859140031457469031368483572004140617041234515409075286085335605549468433657942693135457013542738673790683312085633629242871747737325488672725955687937808862506853410275513572796353217153569773948701733765672798380907475908387142533070752596647999209129645819206412712396158927725065096937039448768592533004134822943431041573157769557200512064658211387855995765840589675556316786340432480594126384071668523209538493136453323299778333588942071154291014572301691726017734845697221151567266284531113611392497502718986557407693240512229986714937045203578136041546486213235664690347852516382500451981959778601082787624103782827329862104504316073314499674518014003241525149261563196880656776280691890448754754683110283512959568760527242928159162293789012462827198587792505771918247633220229412137662245027953818693738338554898135336187573350457994382266657197885570556200810286858299121687372870205909337493634988101640269919731048088336831115358295508711491744593563517899835205454509025643097245575481234321335581314100190223830961917895836792711690878948070080629075267545957952479039415765276694876905057390651317927562023272584100565570028827592711986235899338419258521871347010008218991503247513796315313756297352104607500300723059984883642467352557169860903171045762421889204592944617593102761313149491530545645272740465367802893343923881504626102887569188027362216077525190790072490783067104837729408229002824501028494405608189183773539834731521333831190409614876668061570957788132282484768295321890368703114434043344333427004912874480233506751506995902610355136237035543660545330051390381855246797800476727547916141506770225256120248795061507069027368851711899837188070729797257563756421422070790389878947169476294135096401747825357488787827643942815249235758385624172488011386031738545057567098982325627274152331076410247810624703645470106014480767086033978086414977472965312691843586739021702308335691378770480743908754777532928393491053694219409831269445817464726140548826877497527155439784356550059051860619916721588338160964488314199255585699402313722512341738280377468806297989772000369321743257692015834766204137682805322527121257911754622496391992427268732830338260283273343029469233165971325368325262899704753701512580184548178755920426258882051617425470186906292724388938945565095603036718715692851857294473517074081857962013543623538954025025993769496600515509934630846121298382019220146573546778117221998533842379901611093587100822934894041832189161871288933800097137501909695874242121955002294614434589403985564988356232514454067373953551539198042373066662807786820417562352977645638057456603015174739360128570905864497187229070471928508347420258490481860899702429369966885767909307406451469454559175942853286816946446500393304280988715109584770269838689631161081839491355346449899954176020162630539706666903410862170551865928540950079763454621177864199817701596158038705447049698357266105680382164934904108675091047945381265911256552613418250269739164675422897228078125981346204380049654971614515702858816760394676843204037262105288134136618030920966979795664348946195395931135041962858427519798507970233791815662097115596608986199337037036473277892561788099810388205779587473279980747366018062269671158880435259512156881493895637542616454335570619047320817839896341852258661055483072052713460154644688393750952147238455862102787521971923019044477283181739190478178526955920224921672727176254950514594929408464698463890081532685498360410020357014410592001069216579413167051401800609669522653292776157664045122212536813722822348758460462098774892888754483033170415961270021441228275204514075376371522734479795282003252203598745485569946499228011111461374616140301604021359707851713008335071579137414689659165032995074436549383510140550529673808510119009143154166646469360541154998447227003331920146805885694312164784815511395287460004660906653131359843696527616294105287377539317815928883996463900097567919052973051683887518604326246982809099399098177397386552394353757986218678695483904493177287461763985226666780470377575763548070938125447756317342468321823477394190541529464133648740490072551842581714992236750020025863849637085158858704543176435935460001360281032377603010257661648927958487143123240790181515681405939105942504168610605288705666973873029209639728232121481525948978695014299229420287444461453549912188015654100609860495927841577205306450030729979564768368269153391960681527104258770478667357235952141435956868342108667760444443568532985232320912473407777276888674121532643111867394170794952726608068743099834114560153589188028435172331527378226070295361616783845837221964505269749079217417452143777872123325124939250026181476482146615611873471893057846080280900835106617779597614692600355760876048552458595401446944381120012725800091278356897524125041903512912200466900528417564166812867642070903566749171847732278655832508933633765608808376203245802135141754759680091425652802267144061132908175302963729894658496911913040751914723331530582553672718118579477774016887609868215133105550903128186756682176959895403472856074636075490876232790410542461877016291494413358703268439178889409053991228896408848429625622595908500794498261390999788045272111765007480317024117697494577832085888517740225568844677016082242819399485519308394772094884242431488709196112060220743033234998454032002255315010683548421926965959535981052514652691569031279519124907808126016038876582491867377678335935087807240236922939585928606153128453672307456774256369832935591261653141699761523517254249829210979998120708079163319214708410112300502258195586037821984790054229035115250835202956381281573498557360796719411450504054207683945839520287232692956975382507006003390159318692920548130800548529460716498956632379217970110828763989013253524998024443927103605357488885104825440975313900003043331037702501382019755634822084904619117006134188437546549147336524516633794596223216638598232251356608817011463656386807475972578404815967553172696349475651776667999121281749915829517724266924210126166977637911369790323296383742252319536384688623198457699954640046432025573864045451633289050891841934978081607885673010308512199538778184114803950913864142176274436053149438280409674405178256995302419445694544754552175437780554944535059221594407095114265232008792190158723846629083160639292025383903092132951122547701880960061723931455004524671846516457574645624647162417493489494756701316190458043341434882435881512910407384959831704931348273758333537216904014817611288995074869579902075545265577226298776083669149598827556835595140932868994945777525334930743390412944603183183612456518520342432603319498791506691799678048397541379521586876951942351620036704111627833881705595157267313458575545840820349598674131315567496292817511477031363390343149977247891941241767578056899295955293608951661506257566132308231275991943399133670809824986442701361050318216160266423253277549973078447693798234187519299316906953764740093746806459720177035060672400220520747976476438104304187613160747921505515311422576454795841033420113695686922201546913314748990456125336555912175046668831045115259360740295743938444763208015973916292012395379988137745532735295905069265732557036361323253491566051843383544189103206874660923815920918956568267562903311293122831580298282605324221091853118208987722921737773002437121115701689526624994276445026508144163354775862479462818069264984723254760816322866638862400752346370198952063081155210728479841227961349855824577810946639725221279773743795495105948014381832023247273081834769477044781956147286526400574816219173194677926017183060417864447747323984840906286136468598313850583481133003681892194025719155646786415079017225822952005467489363641899816895066894976220700622876965865763250288024074442304372698670273419474746006256157868529412133314182290697961568107494195524932481700428014618560444648160935423570937020680752570217698302614788496827249565830498187917999176002832692457317076075618780995675810354170092180217826159910443653675645587196798896655380518422246170891882804904670333795922917743862211179632404512094676319535092071760619372712159975705036808233503254537129319266895885438343770857501500287727151236343662413958842068166512256959993125260898341383702786908712227957293972519818447860344178632645110761949388319129420407122285252729130072234521545433194119748230840932442752435325380308552510013346636915833176988857866523079055750221925259041219205827644987415971510305403179162373256756222807840672949567078211828684694274781694850911889160502633819965963594367706436741355917311421269932985769558710616128097614588494671366941400592330270943134759731865420344150180954229501426025052832280894953488117667295483919104707072339665723311956757598433740077218339244217586164350373739922333406935050834545143414984243280915329962694427807057160672355984954722588432265848631579403499030768257529989806286800851414336823690660384846842392016336451005772837394483277897519255167372368466881458182585882950227097200078197691331811316207418659336818854301363287649345679700228874893339875273049976741503592278825445610297357750166194388277896452839120917934003493547723184249577298234738925668735817762811058247136410156038840752131787415571428188353719926410317818283572638728165088331971129746006658942564669999483281985099061111886203609822224088964888079629630819240164582835866681817568740089240346271608227067597497544187695039010196071350804909802866849493728635387579782185618217108534072747290603249465683582454214441212861486788846233673319119338801203846919394554345329690231012322953059339713125653435590666644846534266331739742506306618905871343616155782313804090601339339876154794863594292752460657241839477137734836704189143441324994768696440110444070014964420633279756076105817687112432630015948669395414180353792421740458035771730410213472592888809374967016639622283994451114850385855537586822703589838838640716866226420021444796686213640497581144498726144771397886302942765030431902827031788321051493499987536635167234206596745030471689844570152851524262291821742438568702918203421652749937168855306270689381479254553603615001375717460055420550353560227042626294888495850591184441009157338932727318578746444511289435119297375134826038699486414050580507995117357870654012892926772740962975663423886011381136315229538034992130109270580853912114566172581658554736108311199247910504734255666176676760162784353468928357037995557061216864213417609581762744794028755226397772162916322347095753780650654854235448078814178316000129770161930692334663569799887227446222721373973853558283977542117074480161116952441177276231344522634084547175269602140688123591937876503587063273534870559895156062649474187401260003629364308743467515585410591264152439336632914620789877295512522217597392041987071159705892649786289171605937732305236814772314479916569111869863356707779064114364832629892554017485264723227404433909801350266526787181172729617182792254319480436575326463663675591419260863063720103334469873749638669104236027762971045169705088566714749115238977158800870982682242248939663302287815686178305900746468258946613715016173701962018355608018117648075611083838362891343189631327961684987858766146857717577021783845229250569024392743479556325258437626845293497759656826146294792338774279709543722097871402152222118251925829889566584611163044185796418338431838095032000557438993833056819607879721382162649068566023645714726321587875877367405415639262123058583997219212470178941642460431770485103455507597534175070608756569323775498506547851927161699098354714597768682779345382874563879025269063915802851741522457682479349460399194838567875341928335392165447898472088326062126615301297966727079300597370397847272948336966738466380204226057404918508662860345233062883556020163703305922949729355323426298690995032110044241581746667337831471998078672265280398103780876167327526012347409377818439974372822560764878554462390452405573660770837913260382895848986713888446751620151586277707965220852686203830738361993694132358374678289273333728192429942702920693382741692261340231911976269160708545640352397512519840063422394930759877166868251449813465105988521534613472798703111815961519992281414718303360419560870738994570891825680035632484389431806891640561727157060108902502403086066044338378896236210665020357642942651444912065988541312269106927786903045211115887781189080493833220009642351867090991263585048740199694406132722495013874162130258697022551684197497195108199589029971098186436725918035661462586403155934838293708574891083982743999307583753029154634747104209501920675242147557251791420958687861816061531511452201463981365270334524105231485082377203640182009972983319364749124862761955654932282152337402935394984372700900180253739741396343157780365918480446517165467847615208338559682449814698223052873206995573205994710929489462155714728935575129232044480685592722856435985554641820554414915502987754282113934834312685622503933690033846541605496840980182652102972387306246511445520045630107190712662996706410348902210103172731692584894437500742974446146477396483066063352289140016651087391575932080126680167625152920680161478986008836148150254961406485219769663161172726595261662646265531938001933965808674205368349731920684888057692275191398059999580051246356765832625720940184841668344135703409244139773586275389302879256010849489160686847004991255530732856746488905885502356506388779175086360235908782603302620420944589696901379328258339149336195295671531394447531950618197254155255059192838420093334012443804754127640358065440905478759802215014417901299669445105328799331272445646247599901605701228710147308434809632342279043332697397308009156939133272280520327996086487051743159602189976599991479335452565347160995353901200832698006328225820715264095402926229499574440367404484627204095617972589860099752852549653219015331738414155023153448222923855117707366662205293349207407864353597149835078962638860078713571086267511775411570905782610744262808956068868310836366683778796288926795378064032066011657008264344212514043374050194476759961009610501435703815972671145693587783255327025635258427188615721948186684565468653861997106535750184074519807029489546675109238527872419607317714289935372169279127538869273861235518474090774226634595778102599594493839715134523676937239973559162643094597850039137616013632199950901542162093251687961625503534113204064041218816217194764826682232161562396209808808606896156293717377387266274916819065837418114943306357071391981157739824892312840172400164678424279525684781333839586860699403817948542663183122017734682762013255388597060588077186804063797736047581197732912398101178098616400259197666660595249783730721041675249992595329100981432944116046181972791744995490483222812085617563753099680547636691152200605933015898753552354917608275875620769658192712077455106590682205379886138626776634832389948830857888030487639985047460061695504540236823490412586756146396492067085925179132616397668996712865139991853000146598575798602167915011820906877431453433903919754494387669727876312332077424137832298616304325426986556632852930848815853846987762495260554060697205965062203387168772563036865598975357108348475110969905553524273691179344112978567270177086495804620028206819355927126791697374211070586069121292617500069964454031174991792332393143043849593312124719351277060012972041163948780422403755496542882636952323210132804890645395784131048078332473214738148569724894654281068433689427906660099001565716362162672649132509668904360388479585339391066350835517563830631109720118359704438534328718572446880364249205701878188382016508596395817700183005111021499278788849234454486720888713321178204950085958064084805513749795686683598686490273573965399278354860022974097824210833443457478246378547749472259550192112966292730039168674719553794982027404215682506660296540237842092408688548518712845289972417261080475651688574954629682897511843741089477072160446151843526302178399718365687506870601935557641014784390272607427772574496422564334743614680364315085140613875742217194708189098881936876688722140824127921430865484969690246759713394539336413467242342321530146513350378766016436169013379236089639980001636155155696457617520603934121427268627973708934205813510901504264198615654413165251824277702845076480148516560214093526262455426635813556588328553226714287725461735036484107773784574485476625459384014194093480664529888703208927394201060849942427558748871798993185135390355700027141119134177633259518663178951548388963185997971052916141913333345657085468625220239072485838076177428207927553243446881215062710555900699630969696041168425208431557487773547058169363984521476420651152829702402580861826527174161474354224954634132102860037297586024573005449535068010393744430085932884519165196019859809510597890629218156217821387151731929166413601240168500248904010588675557275924143943636548814528382400362028033957675488064241553867666502834546285889810740252990722426771764621748099689581643236712082803278939534690351702147826433759635333614377594631364344088984621035639253962768655982394035089624402890712416312788701913682646286852295443959789941596574133933759268908280355838366539911227950011212430664796725738159460100712648198534709020094311849382123094445696105877709079785342153019358381636304725897740725340576380160966294057844283521874067516408409248318068930204557028106510891546319326665430271680327659602681649198909467406506313829717367042718364886953712005332412297002833584478757870962611497572205518390878184361646598376401757287013226109173736345486163516767569236940564820091517785315584469276079557417044816493820197996685540568290756800679121990455771264533011112044196587923589771719971876044571081332494142248288384008493655000901504367692720793109401284350498724031355821173309917417265130027735589936023856332685026120114515633847229653826591296480607156409978237651259278730217170816337064508558115118904452568114587395968784471030909257898944448635662531573027734551690100804911716259047976828098133409618807982676124740623922149510458702599095927900813464498151418329168362215636842519943353825306775644982142486769712821659570346642010148405578402742674950241947953220204542922273020508680144374750462965073196025579517751993617243498720235102875119368112002116726893852659571836075677192402538170313499623331387919213945724174904786126167882326047991859720604222476448196460307987955422215526721135894048538026104411756807163410332485578450415999951500351312715815607368229811756185994108515167120898051363372819571118654463154899257811437667790555429454209851312687378878471845146055653330074075780571214442081783620094878649546109391471387390749303034354913809814313174074027738764216976154989884502405039908672204097286405480965773379159089467154298543824279028978126383091476311525963977964443457538998854498257112953567457661929700392403774701764940595915919072590067180065657227476160679718165472203634937216504241967293647012124485897313424954887450490142656155916302274646309002498060763833857836826077856822864675928994852473557266233173574832258092606814576922034790958112452814636918354970768948665790011527271926916518959717312874249193774463316368630587331613667432155218346967915908692063615676837575207898519002166419756713662660951767391000579701570194492296569372613916236093000916981340054053370442908616799295012278243989001565761530285338757635378698311562653453988871399229266332859904758194979594766515595920528155940399089444196427881212846396546402323880238899778609686677652096250267590110380952191889923601459110008417895213924563219812716823113179348026849899994888279460086510975601932428607717840994645143961617628309619806827883462071525665487129049557835316953226264783220631131510188968945460421266253083161210299206498439347226372911109842440034774167619581378075328272004169510470994560134415969065441858598833390731512863292959841374687307599058853193579228798226864781529254928669752208691104430343599712082361008661898594377067236634462872816206453840563934488765821169069391362881513716044655207872795742897284377319847855082422272873696222750126276866711270042756713119063671252305180415926184338160142857307191099528586198192525115409448387903644262334046426804596827018648602688820330817402731146992388384569215141370317527004215879677657765182877934814772817158281408366793968862020669543839042813455930367946153362610706578342906607888438639644708386764323088046826203656534675587429295095522908315213633806904541062988826739309626407945663537360948201149280461037094730724184469013079890097536659819510129293881857839409330778724111697195815066334502591371592690929239445503888685833364587345469765783255956692321815480724449449338041180940912812267778933030592130481427689959572757220051004714841090057086551427286024434352516749901194871948735758378733271580554499257143425954779723686585860581868547350903604216380558078349472729164790510668767314385882293698745147923721385535700853333182080130209767141840420241236206563044036969293827083822452831973609395708829032172082858030694200903903769152122397437619935354568838621842195604956059399953681349566006582213403846782839512113586803191560287663501693985753856889585315413639708229028816936406614705552753754378675045595637557368239872808216017935840145557272413020226198212755089464602118795683375084627403500345527561170353346074845562616854712352517988052033183083066056288387528200287823012467107254269876992964773177896535263969400736479191059855866681098367823305279263675760182201959858118509108222937105410983782281925765595270011714466577625434360729776690883006792302894615893408289318127686229317969903660677701864602649721906479880612678678705340594695307029423949035230209076792745492841522021246124401969301288298624738387080170257787745613935320057558029073245199612865713409180167797372652355361809142437457962973343508572127928589869343471297376993988878069713035061475605675110991787566514405180526273642665247615633945147879233147442009752384412796543729817999523330446402777291386584100862667180093769415207989247510357429249808258896191540135777996198553569403614201804226189449521161055452171571199665501048856531756016689156974890156192655567582795184179720766392212813243271572913563310422292956221107232337606623524515409935029955754295477370350976059358193699348485379722596427878451527061002854800666178718153568399232629732719442047372516664274219469117309863305563524727417743811385968474217621874016912461067796926099984640367121978194104114595247097072573678659794091412099968661061196286053627391978574000613146272476901984699548755002433824221051522165854251665999359170726639382288652214199976365065455942985932428082113901274774115685734861591353150836774606116693848028768722865910362638813335743273518053801863185920258441342123476415432043773821572882004138482055744425976993153804770197177667248788775173476175221743578752098697809675001487500367889880132287616752296953460089618930573578890489576970595235265793022189084445281450691724788574706425113115087371741813980684147462337931339542002762805715208433490802427350940541939886114143816930168204348710865957201618603552442371527005309338901646498898884910860591971752161618903828300861903420782405376976076521331280694650423954007824343830330525185654464258621340190337028228279184134293532705641176807030026592991550310449669883446668179058854308067789322616295985072083188918005870416957563738649065182894891109671112237245514092995406482887603410853632928947781205915115597344989657946918307650776862265778361475900005882994828001369966411043979128792718804641266801283833599944524578606706310895435744727010236722004552461514406386821792905470948546274934019005677386482620774739203634388089883374968094826558616096172246675631480084050500613691669611947797403679075437782293787141142002590771225241078401650608094156208683312626383336674645881535606731626564147911176204934324784392697591186656107352924138958292575862417869209742978125076166348688547473824657015735404088606474673968908111870136797668696206543989298584072444922043723217047824808409584860880049270212021902542353958321159815664156689677950831577179427221431477339394163955450686571355570833470231016608801586871995291676683068807012900515977913822184490646360444724361657375895957993930800971599851849724022668778054676684992212187226848110045712398178064184996711606141688577588458984868335100059103524219983450714635175534769245357050836561860258866310577616627858544375702366313934704155453667136806796203361378125951459829775474026482607853295163190678138511259240402158688316271918870808140538286441369157996490327541885913688685852709607949269938889489262150892327285669539072344766302877906358927806143045763601582442075385450236108960380112065972188326778063532941836678508111448599937044639628719611934875527396453620244578486255781000075948278233620933299625921252730200942265551869361566247396486536593792290416427491870789323878539822450425127157069176610812743579501015688372762281832968837711230807544753791424772215899323154704203110598074069514122537412012034795745526433204837326575188487798466659918525604622451324425787300928422202736061206928242329570503716913402242905218655155023622701021811442578450347902283836868028414063236296997582414709862149993854839256873323938560501139522431583210176697945116590620318056946094268357635401009461170718490334511666302818825432099548761432996256743207987530242052659724036232164383677788887861843162656753295410260042848206004705409808784098759926347590645634357163420799351163020755065608776618703954433034596327417882036460863355688628520895744562683751395228487541326572589896246934749873509028241482046862313336305504870623436430999696485293403175449202793111023085326012783129649290221275994067796761524832169514520398378297563854039114881041092875982221086591865983426432120026893685158086892461745349735559749062224049338455154252964434493011026154677973302949985425590584854674348229747246434447218661246177068149036638683333216492100937247895700800364527619037319553346013195591547394463110528063153511327449203348332232133319937278953327456723680423759351752018840745274594632970850998359165800009925388028825326726715412795369474088963207298179414845443224753164342012529405057580802690543207216751122707839186690966037043292897982621442034495450079187502528106273193544254302624586686753452400797344948561546978860465754169247698928577364193385796606222423560429443774796402839943434846988401530520706409206464133019669506901617554356182531578648883336335653332653748015509254935724736662399297776732712461389207270406843882672678375826124426512010390726300207201166131677760079323894845396393797089994282409695563987421054053649084603590923618399892289400661982789986881891002207532202422766833207925184671681594719794257033685980186515717801506477076328582962316920731811048047221519282577103031184502269313290858150055728646357967500118478912129753493798705528490094673882790149682794838162831716159875051455791441372074685629465115218495959218158286308706350462091218508391313984757307238975787406433210630364711773108428062684045970681574929641626954628109152808719928166927598864745048202206010260529366150539562228489728484732263017854851367486812420688288378892180801897525711292373027111560097141962673228216139506710851001347078975648027747575555093586622160956076004551964393481310921944589008171489706342482913558482156609302043550737471855116319375715900554394800231773665655414651643370914579949503515803009840950989918939594585369604433970880642832729867674700390083203544846992123438619764491027973342393560806836981064360234052103412754540348101204409592070792103843147966856681977666465997442783137026364208853019261687022667374099739539717051469952707089841351138529078872849776249769053334838513221928683450885982459399903417520403115587756592735164013475164588261533290220478462476277193573188263725973665983003609103619520812001580652574271429861467781981147989426183208128676436212432138979721469475930198952640117278993402110259559770242447044095143342535427085272967040524195041907877898055633402147469395418014167338372968395006674248722294254918490985959406205015539935270127177983041974604131710722296356959702273820594489485788120702643825697147855459998045472554200270179795644183405072795392241174169343695161492184317600470663336916474218884258939672737769034242047626531655921078282496451267565563532085205730040303279104965240129536630884849973613893475697045215779231231490979581221864729761624836592930641332386635938887520128251392103207761737091436749950329196444013629712402625381976291928579914318074495150744314121999845964181889849581451577731325471138517178738508187246575755703337010903660607498558478286875890264290391655201791501642277036923940831455767114693825422882594490274296041175135003294899512233038048520940595226886058730096285422399654810638422785825521832923336450265480227306659859312054905812791229339207544015900902769923064568318176434165774000962106267805598908591639336183688603734965390523450871143917006047854301139311834034478604539595373592933247689317580608664010964499596073660131070670904936698083147548472320200000512456351393733829288684899494737612172478133927223188397890799517489586071287487991923944376247477693292917904570328383990530709884105050717654595094741051340649533134168426174166702580725917161797249827849725984885348610761762801494931759526992820266916429148693236432807497588179130125126159786246334591897065660946994364150624731137618553635490002909267867402402364527069931381136043968074348274788285254696461231995674890485227556591635797408543464551220012433838491777497845071787005509441679997766323601485209081673961809269337752490794232026914018114674864304931296062231317222671683887433810184722925519795862590932127706872939712480891006303497397916874560965039178318852455443901440785755928986351690012604441626244236100815315501219336462492007830243292936898631904466938839338090349581915961054579431732303484759152838633427668578420746175163597204108894916705998037481921736632875962361970335247150499504505230296754816209303623031537624112437890158304789088342651461116907930102548151557802163474649280837621279707580321417269914349856739619034196944067473627670363558291997873460477578305389264246254198921510547244763976040129588518879498353931508317430097666758306573197762261295756546345320123614117376785402039195199611646237615755337085539325402112451578274767016789378247422394327414319141716811036475952354980437819367290845148369546274655234980553416800399933695303322910382633096535194434722806057498893491126847452102918014598528928606357032597181000005256191901354770665212748375138585106655775956191837012297385829504018417976234329678210906621798340018503580095174635746818660253434190630492001761464265430458953821430917558780942230374319382200782194828932642136160001660515616300326370329048605191456108084954939935286280125712783756094320766409900981080266353682446540973440417228848897230362627321415915619762612091747704870973599050545248253432700174946522837573639453133499840465404326936800470548649382028903550934191694514369907409585259711322317329954659208206233051136906495064831751387283412365349630417118014787735983966904635530807168749317963411441995576085603199062611520770091042479138786097189416504172061118393953570619660871629189313356616232787741730751223487928707216555069586755210841537017632020093298421174885112623413011055791535819060549663812111094879709835547856515681421972692921001114027387482138225782801105766107871983596706005921450682325786825656930022403694525027257836606816882898152739786652782924197814207655633831183655081767678727093805432707095623741630807034048490215360982128225160494258366059104250254610466265417961234469561352086470158748502003491035380032971571791008642265232232761740184492520566019900118873150951629841629386258635327955283199432034861710687880259563956625977427593763535548792992754377928228862089143255742270106165683046734576141087127460519605192888268701668419197222786694004446950279359463273193421954395624035447287074204885064839264827803607255661833529365728912757623981545535236309183104837771491960739900094153564939231677051873440903906209655660602165850977512389371399349021645875741561247780000752116105321481287129353545105966580237303712142435023381972517096169674933193787700349757056942691538586280426984719807082408843507139160766871180382234603932196488160827054657808016965746170613293950705575796207528727090653577338022853333912678304212187436752002107811339154384814926852216430884811479993209522405852192712231765037188439562498563101816897246100189407828454575764375912715755373841356653143827838853247752991563090923821576299452593251619381408057628116414300894898085503002752230830398853248868290355625954767740617986741657166495662576831765849600367726387899746352956833942810686991489345821248240729126899129284574982729216229391597831644635338464066548852217266465039476931477258125930775470861987078133717993999025376033045070490207652318681107695704938002871191506038326918184555001953474594992650038235173301427839181250904776335248166710273735533454475316457552376575120318432359020375165318733780371895555476059215875162530855970345873066997669714292392958924582542611791671460666351675873565361126006681521674780173069210217548777714154780913004220413735460949413927024750483781814467849445000108103508502298333732612586632087423861523230492733923736771292855136997549535078928848349108838693715730033037990235321567104874564267061615275247972102064247279685706769570275859567621656603228564283505049821029330529373242613038925696609330192345219207761411568617089344721286805135269992083603256650167791839576005336821019351433377140589029468055374027954754914924484461210282331994655771273870050590924657768323651951006706736079731512291711106134104206807006771892059145196520315593534189536543278200065207144514252804970606416218071981589010822553471424116696792241162488151118190457784148931380091065106581361717448975506381195101472056267511980153242253414029234255778929892132206980915275450155792100002388433193766702178373093366758816681321077642782349835921367920303402917162635703775882133412965046502393250515006338593990116074802923192398569551786121014022877512624440276090841446832817102173792799060852730690165689406849374128045310143740540561967162340221568893063645118420363705932983590165318023505001460571842885509968689648803381812818472422958499642184449308614649551981674556417292019041232491689809160467595549751033282731436273260529942864988391218776038727518474791671339408854365776071370657468779581778690105092615540971675644495127807370598826817313172201829996292391150840570374667622776097548185195093384574399064260041128248410351934596690533461233237854463758974333849833695862268181167074466454168997424117576720021264504975876106996285041670982424845806040821748160034461953737615154678277145739386575466452299296199078741593890479844358081112959925398456299725638238207533176637881006335628409116429583759411643543214379381687842623389041026213518106047208193230340667957772241617375108306855815692287313115513711646835792425354282560191617932628856887554781095872487050736844798332252109556067861420050024393546452851980142779345990645508623536936846831718971699472775218452093349971316962827263808696411190017996748290533244151537802322012964062387377097170130288665863520369252645933572451182364146646894786985851207155083620688363030052643312708108063871630802139071625161111400932602027437816892523795662292678968683344444972381014473719132169389224427027386900733476708089942551658907538740883525408628928823140162461500924918185606960022229242429127465659712015767983171343256767040713321436364102901647235643853660401205152330033707989242616605347300247519988874437864815064822525293787464100808988698468648850615290882428685973302859459379835724655917653993672585584680888641712294789410776986865179042474252616602753557694748760064938880764139252725798800938408067745893188140290316100347413299620727199923778252979322888578915858464953859299306748799128461081976311776614046486944822685367512961820787783549255718947566354487755956468811353649092397140894442287337163568326396674011517281209451735068457801962581998871327418784640437763421229683910062584612585413479863639417035722679237293950287948840266777478310454656347799383779675288668626961328605431933545642276083981074682501205417146529962558446660398685995123634295759751912878847073471329832980875895419474569463125404315632646741998030448507221434963206486583389626871233940780323700121997254706597491174108440272712117895693670530724297802499473797175417396522243959358627638385553377944071630471641362415296501618560660884227465977217124134094822910609713065819720676900871727877067746244396983354010602388669564699468697707451134303451954616494191403777984639005922846479704412872437052256281526480082818008947503225604969944519279638208810496637729783777854129004666900432945474619914910126714591675305753236497891217964270424253324412475059251156118402697111468774004278095911147550740218314140382471720187682791330156964432162404626546406930490778449636464027096322772881358330877467254373474930863289834367377481103247154266456759703060037774628948672336523407350332556516677136432770689579907825436554045009435381142048836144667259152435856047921656618196124989363368955591458011710771973881639992735551549000061271624225406795232213855571830645785371780409454829119702059258885537375650525583009388572535565867256918341255051536887614410814382133833760401399987165687274700134739726713155061587135138384847299139791215449519413314245096597370070641009208783243063124722580140688149005093108497114877991306570755288826130094723122563607051663158191857095225625753142328807524033705812079628547582232464365216998742851421624796670343429166588610016952018471121105380184149891009236447271457853395402065220428044471341362052265793309787581459413633462510437942940878737895565997290082026407039010784696964783469067472447521680010400161761730460824945735319855347252099404740115902722676186408846376364114752650141248313521321442341707749847848175604532693298008239830785672027173744546940213799372881868177570206660154725101034648053763450322608737943615198327035757694352997258429200259923534040629831965187455330563610254003249298253823086791466921366029451835524952116369287363862068005193689191511070427355941444842627662702061510780965442995063310910071869202024480820772184326908421374586021590442314898670960456898908318427003851389485906451047343279367790037835632635123303996026714222601376973372539207827009097582293799396326770632711618524189779482276525352027272821037449947255171422735584203259942787131602933645581076374096707376633699703305031709835381872243281200591820256846854298246105359970526528138343685141012394191627845290891768947497618776963329012763712417860392723440728039389765969351281301399912479901299990119916229603536064825633690641125165535158905175567468559514065186198493378439971120436103636572347971025627990216531282456043012991583833763199132730013786478808415579192956155844990727816515255868999625154927818392010105994121817547137836698239905378234827908820489074582785531330135458739242052905170660577918576847540592529043194350436364215550880613754494079607847345434233976687247288056709634807227067535094276044829840301912071707137044898383158227278217287241244956707283907783691498354773840575978546484555578894053686459446534019019974053040316442384565686030607823680930107072982228776629566664775801951722875762719843098899057084655280666693700858516826274247163325503458090538970945618929330223016686824869478990424484460966955484951265616726931706722042668442027890270726129904599788380443547708012590427463451593161137135081564475206178333874969063673835013049228029611450231318595720245031982601133938200158731782869268294097326853925308862446605834333901680450275443355988734528934715119929924001499067343665641920602542631637007376070982931214396896589931236635767403543512810710391067204338592677929304244039391007387767148846306317545560845115825296024241619456517005502438299880827641851429755221102360420668537835844249109857714959251358699299670536906475242063993890992166819335757559493743987695449281591369572721011485968489340727889779247748524230503234095239584893462195807537517499643364246003774293698740250154778491721353011677219620078225108811217235213647361964610897987115889462571878152506466406137311982258581770547819604050199267365085859815357311628127727683484876361835470569987377953929340034084144739172608900111027336734563846156596862616648846110374110213964768312070828961138656376803131789650602305851368975610195084068919114734160052688734210136867593142069355591012564787346663684070186808937752032804672380567931844928332906851548119196726682339240368547610104125485984696206876853724536298094697002482616923033658443675619276814271092574649371748163228429333208144343273742847766671484097404491013087728029201951981932955936575612137329806291683607898098394749545149936578325767028947725797289497280145550050630068456103864196512580739811985495368799355109795594833571201035255623295248502999576819066791366722135046382528821368636251714104301382558455815480853309344725744436704883713538478082961756924043039692049603939496158970502463507510951961244676934563981403100546567613707771040270241074919583289942124467807698112747447686759033383686358005232185058790139411322822885089866180339744411997115379763016492671623864010307363307564379618442478667030689793207158152337060192274847987277999757934777724249544303618052974592239903258729875951349002582099507325061907645271871607877501658636174010252503571626310204106001737719622975317311765455208362924381546084749070085782853510445690778030723395961872151377733210402682976367572202585420450895570691752933085728314919918371992040483511007033035808903249531397754038785141197130792802387786411806267009556022613310282576910436023316234604287937298863227570665397549436472297962607720682624028793872304635038272167355272015208580694106426079986483541227106542271820256695240183793185348813084103009138915474766116458811732863341234136414409080821063002115629908130143481780931537306486098954257825681891444495091429961600141079282060106741503994023594608871788333015043483331275777505306813469048430192206349792738379471630395673390847401291120185828977977006250117265113438990704879896204420729607783192559696234368361314198705248802993150267676990950420243989633955696566976363008290884740837050794844126266903503869573710445503668774213779192813245582837180960153644374897411272019020900252598880558692357383668307324173762981075405277037166692104834217226349772877568721000614858036597094698965831694241485514790719057793147985171203112501946076711912107631480405246342617216678651804449859144125454384479967785865494419856549659915987646965707489845878759421063448664270310647538488667357223725043527929175952655650978600525914591172518241051219688331012193611300879661646857304333632039035601591088074700599505569774911111741669866910132271243816852585031639199071208794924112254468272811990741872907471383795379525028786323289579300916893135731497400807216979808683563461679904742205715591839467033246863007217065487108983872242854910208228624133838651000864400663378957879064713062712061269222496472029082229304848582502104978502063772525770984424421344261850592114925805025625637313271386476105201588565494071242727573504048047329101528369990137227485283602885406747755932958974013005498414621122572480758790973904016867269782196162332557683995696490464295043025096728084689842699705092424044148749754219941497881334662297888511766522251532819478655867121284932838889128613923505089956121015366405678892282340858674320278912072782002316174943212323505931296444935502098409107293610995562293971325756782902496854541163901618899352008154195725865564778562719426333579892844507572800726199529525891730638740526410095362512687812848139654130528920581057450768866210688167141877383043192449651371864826367632503499583347075163274619951416732812690152067931016495099266987733245173768247401885973756723638457266227125121258560017663721431028960333462223523278963336422123994841486841370561971483100932696715590630666866274750797204064816589609343067206899544387115696088527611522024451920048787880033988737479354343736246176085011633662391113993189535170362422777090901520216406440655335104279414430168309919812301386253062432096112656229676125594495964805212733660468836335068688185287343471537750039012008443885126867814518217170542254875811328978424864988320950784306558071241441403608180422741738097004880614921513176688864729104800969049050491298374562213034835597281715345988788478671146220631798028405072056468230588167527686802133881965695329337684147088786667657648314121793611532873215922940600773060969991225311049424982306769016696914105649305614108858639577178410682216582614406690273496023613664998094051213852377482304648738981207153605260982655682118973474076255988118460968350307924062392021612476369902158718564382663295554429325255510234672301810589136144641748533341489331243274376017701946795236101290649930691929272448491453917023104308989838631345824089003625870799039412800758932586668002647231057146757456918301640752648308045096575857719061641832479679987855657360782903095859535829910605246284057299255448862739062213116582795589710015819036814248472327192641927278299633864005459908155576989489036296639703377624730821473443915930103086890284283654628328622450121112732962422134583238275255602533401992805824901260688565998850841694359058826360909551577359662672782637025870766000123927002632276695477551101289367673005284100764852754486223956765408599213310524545535196998109383347772103180675242437876453625031243435882082077520582668172759865875748181090210366199890394100250682183918682134252323022916019777792404417724004646660630292858661783588263178678805981623312596809402892210097340299813916948486403889095336799753459933623961917625693248147345429368297331923772675007218883395040431825233384313655603458433172252043263647997022128379058425710499726740363611321771205348897629040366802741119614832606980533216005343602691466218539290011306983756983903034901104114604121254517485338077484010079399584137889707180518644829758903338896889091024743530445811603078579448036925433834471912345838566364462093208849005814455187183483081788441554116168594225971978045558516922449638932572231465525997891546679959294724609416340808546163847043433285133941262232707198682177349491237790502843671024654497533760071509428858999450493134117084352857771597478771261751334677995204920324768052912424970937901927002703388450022821327507744278275752753206680801031908914609168097899786116228118205559984746607062073378812090622015946484538552945363815738593796005933253348660293823516005632814630507229877951263172106011038048111628272994067889494953978726214259763049868221558411097374639244209706595043376134564160037309385863989656132095342052907998175425750164801118797237751936632873206395533856438653710529822283342685088832282358830747202708207749013222791156669430341099468514921508931317231725694086416549606741586789086963201880555592534817018166858544013179788710227639134823539319279701992246089094627840514937822039276601491479387204424756595770174721952932708766533298006726662653126833602926884574435620880814142055185579435275811391480251905540199129298147696530518254701790555670068220792571691190311861601331937308661365762555576347015185189755080580360106757993663282783009266968081161371789863515212039605113551631953238866819713364187651218371775521032771752659721573664549026196554997765921060451650784274791965130333793199666255475191098412184048133818240140194655712399204228421084871532791592876061432099434629561766887946084370219730430737100924575936441416235844538674939058736114654959654332351199127333212900802472695480350410037831551852659244531914050688810676320091837213040549295338814868386064786408141013780812881027664348229597364332107099400214552015581010252834549320334103670160334703109470123898138642778150532324096550850626066740827514359957568463770998460357771632486419451188193076964605567838403374061401922892822107031588946511858444140463010601355017072848707112915080596841846383247686728340750143359353341993298047375449162878873550519937673506349300288195190795857728230281726794070683105528958575502268136015116549651755305583255163076841406813060517337338109638189466791601771566844002631861588454256441740145632072089919927832387443454363522414393822059367259089631473890844362576660020491705155944291344520712339231823190845108790477410512602481974031114474781459782595558394246183447803263319312865774017889371027965767506231183859172559475111200204599569925586926684990534641696068274260233653297112493439871941150466193261728206311806405100394662697192755403074045523297853195644395519206094388291097424016264274802507903911153797576668919570008428565746599257808634569152793271056441630464867885175144783760805388633561788184398874297556008206733778135362844787409777066927587564261533499569448915731943082060356261973795338468062785892531903037685092954708510373490288565956323995673757220181064600851060020175874138377400505812050760217898461276561778791664080627882550084567073982480729817083962792241980041351247172662222028723574172476810556397333905342307059110810687460285574393080689318687331990936478843829409007647798164972842845455507234144282696367628041693910153105970473278596070009895848789077254238044800417893028479447143686383167612575812657081401185988055933604174263742032186107972678599839969832178784506233329443844461963151578321074955425867665086188575267909104655085267287232537173728960386818297286560546868006442327220482483332367628795288226553244277600682554940716386755955099073275675940103383066035677359329712089157142623509563163224159766528053981716814870434647056897352632129594112510463203779183785185520328673789884914462701934222265417510632368881974025223782646223898769517067491627162978595930179099014600880948872386817013510334319276809300176728589137213812230508962804560643403968354202006382108271467722459338224811920983427097435985263201991542968946631742447975141301486711339437579203028198441343726068565375132476760699592358763625879746380621398573893893871221636409765139254178801341754160207265628901267485049156641026356524469818506856883220682179821269505371063570760331108170816599173022503626347750894470422076917742524753096159250560476468099212973712124391025832041949058278096523084857428487258317419600542639067475114202475731130946178118160500928015803829685280938987972504018784753419155198773767922510052174376265254615287962468916332296272823421707847977365280013816032806508634366870098824499111834467633656713244170680762984345503665462299004262422010824469250439096332933322948662269252120081711690673534187324718174117243314254463438200502192588067339244268909624211009016968684565824123560817538262021285761203706092234595824729728805285904921446892176413113108171096825423006537826966658794411968518284113808976321507980888082033544914286800944881203603189892376871769120837799760667937058661975665242047741322593576882001823740332024656750580565427872233151869806814909027533340194151416512926212717555269273276697494866000425414769735158323259813376762011782380102635263315222978355255301524385871017120097285896198321544347665394299842332161613259773692349670682342678944054415744502573256883151305221898641080831428016100056749666463616920149121887429085767481524546626331590634409790768046891019685019463978846461262449511302921221394374058751235957127027210667014128521578702397803231990239059720332210560821632160550747797371692449371220602105367121941349618855103122667446973023478183628447718516763222282520730160252410556158227396467650734076089953830573932224858682715100338906735628597334738288353878408402114838057807156291378231247561278150322694945920753666314332864657518894345233839789637163168695138741874952857145212938758715972971934756224367702983893458236100040332996704074703845747261818380232391362491943379535296189165069733527782596267879267991748669310757997916138951352927407462193574996685930389360316152902697470773774424717626581359092871550378025554413152035030781274765457309038955718531319006155743880427687156884677654793189040381087379640535506998788334834036364435117279968122410540907364237828847087078275416548473819719094268464291613244435171667135007877995496332032847923960933544529282543743936112399860736512106669176720993720018318051098638710395438521128690396922809788264406323640998282701906589478593260294356033790862645016652823916738958836470663351404564152326270497754377134105119533518280178789737242301085388447850353446512921506622566284294029665368318188063097991314825029860272583686999231645260952723790541290349043803265460536951050993918059266456358319705199338057214975258959241615189738585363302186976779148369621123881228713878623539096481212782372715614544819658309560412358242829256186858722517280155852961853980485185650614668024944830880324412727794374028416811558898182103513223779167691181489879889112493064047748672099214437751263255780636221843762340386157378292600938653588064649545348174129829586414822391401468341565826803417784796684069277810700258680297726890807209687802349171413461846075157698645795532405227147080675648124669137713140056433793748637394270370090690747878066375397251308667209441029676447972805242149114220859180513016006608669559204451037505007950510082094197772010702553540691256381672184088213574614386075182909373513560163133326584505836644588095171033350851461361746395997398021335162908576529241380286348786019284531412071888159685390633178350408451494638457400941522081721654709043419477289614339568279382502000163239982656873875469245346937738068948680123939345830741165347462461472309667230423533844126947062778812833039504722777986872488949354327531807750215042362587992030552814711551799711288742895099145451451808052999113741789309530865890656812463801890041104701500337050694568290269895069260614093163995861988351258663557174162371602583683388853727773305946069889314894405977484549804539943779825861604165203022365900606801872761157203365718305059867335744052704145696844284977667012080788414087187124773232337869690913179892724480320749720722455247950089639690760085233970663265640138028887159485480222452599026962467230935618193191223900269475001695949895254493240049245378293110238042975638316917982586732679441186452799364747317015641062326607432439654834972560565799237240492609280240752896194440622286209222382434585864133852298173367829031200964712510287335252007067911415035313734711135344743635776434266193553217480479551818807194752919942948864669965287693272297740320707588542446754524805615601303122567672165751395732925709720267490463975852139519914240160425259374223825482902191249838098515563677477250161640209049862445548306011244363334409920734186309715064819743174971335680799141615565166061513362587986502589401638634997083776418341558893902857013101174862040712540921692154254484091274270425542073617938480264608159477730114198527114170323718973735606063305269174390068008990596943385088956250586360989469907439499406273900691850544734673839261074377732774445581568667063723707301753905632783375240352421195793943036586441229620160452919884039331117751164007507970004661669890609256242231492481918918117482181565470820656898840865911299793933447687167882020810853767182031128958500307672408728412880536274046189962897315790552542268070361712289906575835172349545880789324167500635141910054985361575394949844065691301575666135273319772638970127428484231911118681107120522432027508378205941397793435873588645507028423932720314752507369686250181631885155018536847854631418815446221404364121311850753940495269164999014330427571580052030085471608516474374181963154633972718580130000720389811674576744624702483667642913916742491466842680192200494058511801437308025231360341377393480063185656749541813074959484265844834195191875980558752552549536015563003911246631666949185558428241295896047647969090169725125020824888956260908280146672067694483605406636964790775410293563926108018553864600466488091973514585311920203515748712433616896587933507062752945980647485565654402902282169365972039278196095491191778113272654976324650209226044434438405291555244864191663564932511140174365013272551248057036094927892229300083469374324098419910329958114207866868005508994915353358273706519411342357462568468564777389154950132927344998005138463208213098766560181504783391193943396899976106846437522920242688555507949544678865629238121049079857577911285799475816816833315573306817817463138146827357064937568432417014180308611318523984944735023536451489468327399051639205640193587569662576320514155566482142161586579231438216494473129857984189006516456984360586356624838688872958682244410074936672863904666899143238377152998833555165657288962431549713368243504111688246704993362929195581216933641031297316947183151682665018500814380747250628389108360791182230687686603131012029978498209787605815604390383571393374793231152316451843467298874470390383489142410934131525453802056659257731169457778143724382888765071589476362935973034485642511081941145229789757648168975061683195183214753212168549496741762907924000896563664188767183794531237632317734824746808669009677438936465386037353395984217885449377232841157236580647710720027239988729159861534666713632834452748453113253591289357130633313377708782083521967399200216952276457422346156702343425596467586896587659373458823089516772325373473293813697115009857184739481712918816287639428380116603181562124828181659853520175157346564495298049740886367065168148047792662413823144686778765113016279478156592732162532672629381204646023296089262054466188879329744518200780176893772005374342631223492800008725531534781070558475920240485743609122074291568657882367798421890306974928249760241641870465435272442163978518571282304809583782900130415622889263786130535246214266208818313804802774376607776140707762199100416555718170887041103829116157979707579353224754987039583942648207427224431192177858130839937510548150381504307391427288482799388519698245629381554156267077512219490407950963817500174520719230374758534207895591567029329657694857515861503372026257085640747216557711884031054463679721636284562481275303217513637751760352168736241149472080036433313872058432803456225863390247167854347542427917745682248494646520856054319502489876943434901946159711502391507021235626636384107992969491989399702389884581296774681275558540441278624936176878316921472041625356706900659347282155857992075965237452355284216514186302265581519585033743162761899663226000385718242757508379917771381834244021910873864879839674598058834041840001290365798726529146338040469874542437267816653720322462507638989452851873784074978250476602300213772427540356574438915334154297751630443173198427069328270158103820254786440394902462021390587045633369016731585695058647931117538209386218654641328106699274028650006499819280843050208903396176344506238786226967639610173726346036462309459217025364365875187460223507802572046165331564523934071068141608425691432444798616735451120358149174803562368181838572607331783543392871496869857854164689585999800876810002816631676161309349821307481506072648934484648249034393064591425637481560766324038502364104696074779636626158616070507933430178404565437807498869065531509999243496671891230464054954519860646659885842538872891813939295950181030738220121703884536679404514539257303948488487468088946714027787045200019479078107177324482864071045902109128133233533637455937905232443503510838456365221213180893277197846886889933862656663823182201484899910985106973320165389088935571263166116078268501418496689898620831159441307544066547560436690281152266299699993594299630681106582226636680588701240777673543936291561493363346861715162022840719066777050032889312064266742799633115144220452079960686852894990076310690724186330973788839099096138802581326113710920490878953251054503995358496233772340987849910423849112776937669897293954451468198533210834168332950056532236557961670931156192505722266104115937099151489639180834805335174862518134314626482312845608483475513880693614052540998811400815350553941875715452492123685586449228458226677439246778946016483622391671609231838730447966263503268547645375806453700486527968352298151544808607379820093267299481635131703813669496197476499055217504842352973426103107360191654348280536747658964151857499404010291244273027795752057145763547794990177219586976874104787432868366485998994779085618800724853107223995828199452271852679590047836189859540929465883063343400369489571311115562025120919561298664573420941079888663984908485951075584950926916168123294326185816207646196653136783719944581371548823062280004267470577528487915143459526969352743037214704604356637345456834633279592162119088125411814276791933552414139371998021078697234184663754489902385572312218186376478364034521829045327803399612753955564499226947766833338047819861786891125197993625886579773455690798341673410688043998744774782541929045179551237737806658441129282594086648472721712264223159033318509692198010810170628059196710240116137512822492812394334120854060900562625643471965271307511865330541921311288504100069278504217604940692395065892923119028129957023861955156792823341856801281948743152880091624356023751440194781475542879747141403474721646356313931206881972841326455812844090550184069210983895924337483060930825046568240852363998340444412196005694306327638147961726904103529639576449743349097414922669191938981024444988213223357763398802703096233481855241547886194753045551868003723700252617544122207803321986610405980791811477285499787898577472772580643119872370956197168443736646431504583786471878307915549045650252469658026079109460357113884755667954359312256666114026210792644429166102943799142338413214513475674467150771757236874420042256815110883860316134129557276042358060822891813004653879236469090022636122748450415633676916517516839229670418095555931030016748534151126273009715403138525288546345317698330411659739200912199931110002807272768727352402624356224619624736504899526886267346973260794135920657303403191336300315804975693601216622255076639005107311481161166115617141103152145265702077872730436490377122728699245089720054521198492694294839805678387852949917826532432822592617323047978938115552010594705914796097468035772367721879673058887079707662387150080248518502151506922774275394655654854143334382277004413150806180677554113735962260255950447292772376133034521578741708941635780828538383693956193320769318345128757653016532833982947055226465012882263546987224300601526454211902206717471829014375402895027103789065712701664284517523503605846905273563547032230462510372562434857213050676842839431357867091283316638464831212520721360890811005047869435075675202613861969918421607082333151474616604869231538786859334793485168983692572261565767982920763285327680773942394668548029563335100073741778427836914188947288646059160831073599398427871969343494303035654378089727117461003834548072688401057477067104671429448745875157360160977546083367410152622542266967420943020200837511535257392345672339106187838157508534764988487430296713592757322479450675078410167628182283897508190367757222846432271856865637289655408417260944334407957152745186730895618137891824681493365452484395400438345918953666241155022120735444058671693845509520907834102302942543549716987557454583117644793174863399751607543408317974249847809144581203434186201848283638784247316315426232927807674933736716106457436490705629296032357584691697046388009217340445545445441445695417075680351897047385849975456973606897177873694096919889502287401550114146172353824761430380245923146869213420209589845806565071292802955953231232784414300791773501842631487114763475355426598559653479482466948425953163027460382900103361122649456861556990038283158922045549012944466961332322177044183505909324912717269038805015930422489851312068392125632536537756766862515838152927759471589970548324547695502306035220443876762974875795036703960656151112936556332130528992825646352448965279051623488631940905228294761291009452360736338655591959893880226547023060854484782836285005626715847158155795413233276835762115704820758877284195662598764685356882435084195232100857181084575731393046193097604731773946544574825936117393200913517822086139898257735322878209667559436029449394125285546147723599793744187904421203401157342496399413711205619193435644610929870970046151074887147513089970244704322618649573679219745779903448376315250784207853142486030566776163207891311363827295353145397542649640772525868195196629138529971039722332567032452618915338688678762217217195585050457821137447284197129424997010380257909470960275018472484216365788894693148292957063668241177559066222413874195819662372482090358934118525919294226896395086136134551764445227538982164642499601656214505564731931405049212794127202646427369578030298264086601575764039756456096071085099273551559411444434363320072732118929050226522079748475024618786043994357989887440734633540737348419104337611378357119309867293083532749181624726745191566737398497438080178608507816169301555639412072913746427794347922085894359701256520683125449065723544273278718202861703447769852729713638064844376260057682072900324655273478952016203129721345088646230874245445121332572134020423288031948560762479863568949735358954443829851187368915142293511898592683667024356052028250767704147125533445873751011488902155014647406110504084336238164573570311955687273979459445283625444920710316754340774045636045902472525906313006397569485590304212137570890419234769825360703987220765094617071969952677593223088484945930668179010714760856162381970264831227855153556943890914659603419146832831765730414847982558871375084523780466681319741497883216168838298177407561886813652093375374529835117284684221072053724031030460192165637974376468569795789086897885155087416133489186190123282004630366390096546711608350305088476053330232746669014072905168567174189488206937070742603673966953109181198772366247608140954955957083879651571470972548762225305908016650251220042145250836947311355734652160331372329291815995562758436701085499909484704535568096940402149717558561136648676376151098226054751056875909302292422027575988441508246107887091836670307265668959344606600010975025343697623184977823807298949428512546633191302886788191812699794847326385034407373652186257901630206935543160306195555176149583176326007274407162644668649760432169124510272360935775805702006165846379240070909317056168197831454878108464748966135717325390512270092449540039984182627375132585600687222567873479193847922645058190408296657557278414109174830760324298837043391893109946113351494408387026875446843728551296340654164468922317818573584354896286283204964548861648211770309367648820189175601386608972733176039977617172624877032609899182082736104909038209756813423395895422455591790070492055593542269417984532615463087363635555621832840455219438943575418413106075700868050308489946978668982899112934462222498201966409543823410257866849113927499979935503099348347361547394373972532151224075534699976776717398722793323110563906311656930965917055125269250413823112344569099928660726028283670144536035212234098742561723345577968344484270731230175057043172745021337179244622697599879050127398007326921529681651448038876621147684168344647500078328151867488612337161079313009209163143907978722541749516558866824165671597733772930978668245188066460349218422532488927342250787563075437734589153505343159712395246003781175098729242747225801206260418308328809369536695046111503829995150026368074825771522772563765313032478571221889471340802550687958217542051042755882138831548356887983179899453933615994500868799022594056016584898499894394711599906567041292154989303084561691122716839520843870486725635278523685069399494493927839851486765778093284925195626665353494605782372452463819967618758940808167793450389890635500405511536289772567539315152813204709274639779625258468018041598462247958049736456193682566713332847435892007183845165425721278024930851028416806787476565173858048707587008368779056442412229431946732184243625838481666782380152301585767187194614560099862785861958832699556340205940073004325672613186857367008519974811540879563848371862727999255524792996504974671850725910187607944508112252789544122401751838243884213136002332261668800562691750491099265763294181629551019523460192557946759583514888068036642002463729900497900529043727854760419775864606436992086498815061354427104599744344741213225688476615837712474810134453735011371041872035106193760760849889706988413021240875217215259032602051550782767724595255435747903985384186898653454255683157805732803391098428987625234141585082503975697698539830193705283205422549547893493207363064192678324386724098723632218338800732730139998388157539341170272860266380219961982232211746646994408799225322718452964883700378547975279369493314925545914717795148328742014969676731811399065633955368670900036679791544237595913225496052714070937948832428634642822238895726067703417994893365207934427304814520682157754116606798539544400103943528247930200959435604697094275351534238256751359429283832099555424433994027688128782130815737800956905653322044990508218029803446302526738661367576777720825311892301155880083835188506605811877238439140442830547072751752716984535425311926138581989613205626736629778902744308952001399090347200453969576845156844713104583884800410619609050560905625319003016196851981238859595111477682381530163523632404246993962445979558454773625956071118474862710455471336335437190666814296599524154697770717951821637547084353065743422240773480360526163002939803241083830900859423319354632765207295594593551807868128007478109456463277136236807819091095781749090086239535932794694453553454929513234318808434269559669918489564197772970572139753963158701325267541769186395336682645963744887601353637951518375500495178542040508821222675338609594703951559276080648584299959779064710338306728383145990337052542947811678405419354626235025455951662875036812654889828405130223372056528850659756595521349023982985075175750381277448736269699120738955721849342327413697854784279978351080188156285466202416656560258997959522292390830659135343180509799099778532857966836532045742019712057206702394642974505345153630066897674477230740398920350009289992561139049909254387514712757266900663318673495559175518867612846959958269303533449055560609505017682873712107991540494247775743050912573885128641280352617017390184600376031448194394990094866495952755913642721589779789870643443757416234493243125046693876414565354029506368538011422590660692740013265816576908991919919546658184235396322114518733657747057158800042832103415775517743098838424747940636364183757849656791001883081150116641584848456700101989417948140944314528240546491596431636941016661412297727149524737549637115846049477005728882016555736273692494324210290221446043927401983863526487803238685234419513853550573980731721466694217997189734777725982250846841942559266206835860601337064163770447804598403303187715212544745350778507358413646115548572169935433561658909413719877881803336624827506950426833489042877910940223922150438044023749665585868091855718516587097447761383165412014491524966289469449272283330273843411303411085778472344220323067975806439333078574626919675761463993308794050773136059576859873043130495533970437706628394028649648477883576194021867122119973988001763160490083131571218004487274303161292617168558284174245847361721437616780607427822735964751979155159450821940867392213146565283585103145451533034260043630934597344568719768423929609143088521887522764717456386776959685111017448474350613446662202356233389318890240955337907622808933038289830887813113972444403995877334239857715331379270912706636917103231061968073336620028028387373993915206563824144446574443901282254864563784003637358937340511648962017392428365830180665232943683728908509589537773617159014095379328825240738619372676658986177121407285230540178169795820671108581212579148076447440896073645974655847035595171949548794397641391054233503219604483657653983639162319733305826888413080275303092942008290833931797620755333576597213264210611898580604218981047562792871116187233744636007819368621630077239228768801938705049243353576816797719265734195071516042636862694540962071286801358609764756412204791310802885435635920348424200940431401060564368789373472120670078152071207287429243117451573786710466530828503477703445023312009697322165513633205804577210636667997943204094961321970701276147505817511897300433897239225734070759500764788587285513059143663093187785611093961437772429467663969809515081972002904942591813196561618410481200933433506172673102733374827821809066173119890370548713194867921431775036435849054471305691722562931238019298571745160252030746609220986709846722600089049374645590222663616136066218098291975882622154896043211949360080359693761781776357410802949325979922013008641125243925374070216460537426007366809182587753350887142181223096876177152297994388418270352488217439744596079344896238014135527221293530587983085999529172196297082322786025248265251419639463711114637950453087924659133521260020320135268204861808294000572548971070245084191181547323942764939884634733134730280885880136550207482346618559260771694684721317704261137915144334204553544250868594981264827657559162800983083737018268602555729150673607545506995668920528425960772582711625013980439281288530132586115005419139358856665102176358718158861550209369826453211399241614195122495304232397766311915757768456956095267053056667693109189422255302255254307356424529155841475252414954593840443687919226368658524432706640702414562622197720032599745241966825613554227664566433896125634006559250799951200577220650150344730821091411763490801067525993196087743029874269903744768146799479787941787738889263767536895669665274396197888237933310820942145069457741951167366916720787247668397644945807363479120549425768205986398321226242393474607374281683057377556845721144406063004505253112751514667893001793409896396076242599191335850182092535992230180181913866894063022737065893375690761564717677547493478010481852881788347457385171380355288016141431777000247393807858938462274869902611996641495566419497237556101594057700001771496932024108019227411187902871521423434727059347008792695494599836952851813823988426676027891077153070554095915148291090866497823155207857817135148308777919032895756665155593835772476300372854737227069558112297129673510599355665247631371081840221251850520352998875248967600069382067107342427707317608542049431700036113229225365253868460558023869396165670615305142117468511660120964747927427347887419076859117023328283420600648245404840390141277486143407236290934029601806086232047235946272451723270164796811415365582384911931465712610521025453678135265889271454602326691421397729534560597834099584254415768318497077009705293932499945263671476443850477824602937840438011526190970448537068122483620394817507783212560511395901118502873759268567182282613901537131726181840854740450984800252619325846628348400372707572402773652119577793219107520670103724412018121094906854885362680206449435206245523283273042263711987685320217900121870712804818815037635962238626837612352152437695330598441566885626644040518065138600430144133934186615983736843688533764444145389777967144242356864401014687283115433271049255767229380458839497829037743551757317860375639671543973285035818274975019843744849410386139911638622310734820361586759260514962142166505350112361255198637342741306377661499018920060163115018768805377819072208820186250587965040761493746605323879799057171383390479533181331699496208006530030203314294874898997537270336017120568600579707302721552039717391466234105170186370398178983460604156778227031593385544609769227646631439329119225086997078277303110623199828285043735689233053982602946553422160791704871856246524330051439771403969775842442047811491002669469984496225075880854276270517577778828954248046489338006505836067589783097783111788699547888325240627857176647351648827028402166253237476516135066397991188054255237464771721504534310768520339991812455929755048909624401185982959906501425167126705912505837447020600626524823228865950938844359358418624686210188547064690263654876319464663907190006847790904256823175079859137486124963266656668327159718047166541459426162270849434610964680479539865582528793185683811783108967135682183016592531232700291966975642666539954749200238050425709117623937335221772723267463642745290768723092028696054054072880865927153067350108376208996372879005639512277053330420850817734322188757647829645440738107601266124266558726473573510124071072750028411915523917944981300596075601264122217825288598530486271216660656270890799985849613122808562140855906755775879407553930881671405970415903061636766003771711066163612628276436601660617381629875190642928747849435876176173310381609006105738847986446917158035600108557347885010929096631059021445597888915045890807720708360785678315052383417333339532652647387749388806886490780240997486991760980531795116415369041152480345006540213445067984765493481930394878107755798526170640216654965616969513332424157526337454795360012953090465072055150922216094611641583389430910261827408295292833450252071909201549948404602616425513752823655415179325271943848584224540792065090553751152516006257882859252013715611511427334481616225493743156483906867971254014568274747819720976023460238974911441322341428507673765237048417699903790552828446118125838252323209117936222995578480835505314320363388316367031820838922837407310806439821739465404509714225921523306190784534612548481202234662002616242773175981865922433081581141189229240949472968961462430239800866795924919602161929267381965865553209396183164715306824951392544579578900246988381985218493632526400047906176177652513176907223570926276382765622824810582976564464415158871868388165114409329792570626932002939778544170078259321319338142054106527543553145083837208676388405670966979277218661386597980714731615918991337027657607602156191969542594797319463173347752325282700071526754045571997340737769429492603001920973022921793189128970821363168054403110182932747054403468938056973959186498210664821737260946673341791167350046706393233487893072616976913724257579305904024536059720806350092568871462827361180049413622046301370135937816845901055046249160343590499839136757700994200501267487876043000091607546265312960717970515202398097248796106242044055040636247152513818728743924089864212803453648698157346591354265709388254075126361191345353057749528943258260977789608857567530696261347542723059345261410308086426447162948938557897750925226552405784336892332430914350828315117528103584545708527911944407011184223883700678776139305277719651680101287745008501117654793921660353792713284623227328188374460804456121803760484650768344138094915153224553038133236759807932442594631475624582876262359677022052278269771318872735241082790525761364536718852538385179848098766841204833393826329494359514231860898603175745947852002506445881817746254057206562929960979943989813220358612037332686206886588525806048829408740899395861926573661262096295191391804425949020830184691737246602338694257176005675563495300004999827246468370267444404994865880205707984660664059545511619423514867680495882094974207327960010166460815836213650068824755438483769386026829447501371140527950222176244683029579151969160256202197639085111755569843679756070458544987171828864686374041877248937894556963694477941077617693321853657947535434647271462496475165393729261267548913866704016953260059103067646477890790243722136818009685001458134252547881978516725555291041969470561237958393149641084023610960448783011799147942323120067616934389807051041045802747752396358800818541529874662205755318333671512880445068974844733883506102923864373072889760403017875261558447951478308545949337614089918964088225047357895053058125335899693265232905043992469496389833165658156737152977422391638746573479268266084326621016999746338232449566520484437924750642071244262042887095222211224977500461344619970930575640458853862364842487343455140567668039682006538546738702779698799847127926199670204000468725674114525171741396966318871130692615542097546760616157086029707204076233702761285047002771943380767806495908792255673230491803748308969434360674737792054788615997686223571087829589737438391150610123192666487616532790365461803187892635528313511994185127660965923603332104652793721031692519610632720439096633020180438122634470593080207170875260895924979054478995887639803253415908852109765361144616568649563522381227080496487616416669946163938929895850543055014903405775415963574558918913669979063697932831328430374789328712322526129835734636011969578615877714899595724424426712407069475562302264182703422918566800138742380192241949799325627839095781341836140731594600082930636031133905388739655997528887653438288393800597060672850144795500714177925197827595897898014115834740373656096038093623188906569990055115765866747351118652690364712732100277629897831348536657099147022328272067480289793905148915789333915796477316917041803418673987272004967201337323109470943593923951985444059848224749281594930169380009515081247826917949809434653808759729697921381998777767724233144369119880536546035605386089813448192824321163948666445300325102244542709255301479281018399570732113584793462358748280020286399850684506006245089280818743862438019491366143275648568666186795851295785717154571431428381612049079144152879528719041473770359791020913745511969342195978607055175013946226698881526972981999895259684445127442804714452648503062363572222949391514012101379151040144143295598510861548613845659216446736606947766923950794391748854227607579655924805949158124253514276138646104912201421924239769326583168764164078580673187769510626233430772790480787658292622138348354286738678957217643894882759373130834115188697763843978570921413386842020471773634141798488505969530561793438918532675047009673552183635610206557381984001442150986684162278107944629557349407873693545776628492649261757648116207613163681721734056575791237769268680789323916668204623073900540660198238829698989400286771234312921495842209337143875179530456296170679442383643102744579272173977547397553032148780831249119714609718404478396767723417983630839517226898320258575049607022554688701854363957627427205417758168934377981057768547390667988406484994466311568941133722526590972700281626893846362576317250109902495985061307331997198921368385790495814996055960459958821658601507635010906467640689726523350919112363595580268498088564992589615392655315351669304123620244593945043140853834061817691877568073292912043759010516880617848491554342088935026291918986218695316557091503922575825494981627876543044558444398699325603497437964701922680149605943957701211914164712689020682958923071976865349791302108944688242913078361331968696835849641334302743243583790657894179585514895306724061953954637804784217368948411932455461839622656017214023092693837559526101531759930489905194325756965832244189901889094841524195474671364460773316464082667387326961050674327592344762406705763593250389949463189978231250537785081400871194146502991669007171004007116110829771909421005514355300037720432299452370219316445612078226538566781118555135691010266583657256610631126848345179855119568835899035855679563899695501700601507559302759952920295739242292966436366575865906771695328824185015542932170274225796715911672634239839312297975840082851630453938770085743903502089547206233878317126749874315281322492803443444462322922400255153968881507668045256236591047640819949083240628880508849139416335595018838061622462774630378257037587222300408156031651718738424084329745060515924775700637928790841598710689508629280773475121785769198081674468553674966352771694403943765067658554760056003919726759092666445091413144704825970345045845996250156269986581824462721037183636590818099762886110295216588966391663604125183328243546259846757132021469990754152727672759620162423579329137141757446829401626996365883454321727915776562938948539474290669035685967500574538297832761243421723449837554135958372344522183858146624993072702768667142049545046306918201025640676585446880538551084271832174089473763204056396766511540772518891159606055987976773000185014388311698431242234553655764920659698807062970478289384366001311679517458919565781906868495240756936270441687505518977701909469493124473190137528119635124139378541335768999468124167841142788658142172850537781408532284323863790831326662916351483654833705485140187505121503970568331740868658957098420063531203060576739932247774746106938957113937503408996556488691746090593702434444813045870520309749936414662324674768408391204022012491115353027288684439455515866386197955553226847124233918454288279598973478998552226708747691945057117317406047997363681158639739448382083956055398179806253800087767788667035596843452039541687118514492936250378677548613320488222676749959215609753710243435586406373503559809576521132729695709131389258759094548511477480440641719437593470494474772326983081564693740458413320344066877451668464016283713925159928390184603650658010332957967876742620434353818952593246322962602282350863632118338701333440103717185791955000135751282393874564391024944891376410304772903410408694768632026928201771203153652632298438151461100130617856579088326808623950349683477418427657096020446887705816791880040705096351467862360301502597582309481118784225513224209268227741642373965628375999688240931770260042447678235690239463270379146759482621331937967409749754787213869740029085556515311558939879511172118275360532962137829485853914375580419645753976716727901609580614426898995250713179382394864820076113624048375496773849710222282712622832632038836289324699008998301142942533427041434889698977077221242213583561320828299091590785018839107707995302261643494230689617390434372521657883539578379228059253141691273543554163561708994930508050371734495028800769685698531330436400444772492989918773259737562702654405573084754208817274431872215446467717285431517584351643537351473665887796346417472654836944548416394900805091700279063195003976995908457988813631384346582326210175309313073784729409710932660730356588325598380596925702121836987571655111038176278072753109472861732728666014799703168096463204900100897772910486634190967392285914290200351233967540700873238931586253204005953229109608488343503652655948322374668329053272664464565916620538455263455618686422241432293624437858319341805128666670520694503163218153106926556433184751836518326234335752807270379961481291544204902635771542774063040049306888836643889183700768567951767057745753869827941154309846912205083635027140866707462802165637831701810709188815542507369740854177410430246559320862639818889675022412536626525735634841795645876504713567184395077805312374321764829131192182607234332965111495956456528904291270579614676006132813151922030178725662369844503073801064588880599579436659896775083321963165800703801612187376703487176780563503881480851961879940121368421105195965433745716233602278361140562467954401025325596584715240884056125941860126593317280673343357709154505039343047292766194908629658371582011544229472281929020091029505776787843960100125777356274436202722472694332678094797390650349730903406525064688628643193514444101244472438402469312543518882601641668809076744505342177680063633237352856416636568127276121598106515954984957232138907178723003407800047977701525816136574093447959915430080307373003822631364458159770070210509603499653061009994914542098014121833676656795306727732338336750095838154044448050850594445856178604117820435133226982013607975009276679951937346680310028935358255843919640596460591958497093554757689028053120934736976843548471596402592021277827886940338586824866799658802912936057289800805466182567294597056112722471524075992043686044583401960213780407206746138955496520223337939383438330606818647665081849463473603328428158794608803104913892721997394290224927969609875416943627943366124699490677809095765868719564658596655279629000079026833232832305624823009781084328920347102946059575855457998931213648948351781597744931688994569764907257451243905334940713703580263883089389154945238681344061115417286418436805669594188441688609651258152186227272704572713452259737058212469401120777242812315115904954009089092038020463894538734604785387346287287938868141662894006187399992642181661471147073958223234291270394479013328348002685706075203461024660730227450039549719763099179918312505298201174384745918989572178734238900944828646459508135917405597627244172002413522174108277201560646480480356087044682536495407615202936671004120328408194298313110732276582310083311114391225645716606383548129161917242829601538949820842444612598553365731125703390756722491147232727559571775629020902105992996366002482445284603991399325876337710186192375015226489315744131731900755316544108700782743443086462147854060264823195012797729118507088138124338415325635046939004062197044867725066500030144679598565889972355301083307587034025345425854398441613045934089836799134906926448273330497247297655366456325421551138466681826000434534583417216477580769138172643923392065446104000599818134315356812626901714729475871629319509713194206063781761147477367915076968105847507826556942293643248605965317781059330496345164533700322742120579286908382834561186283463067648415908803392507568451016685741695946362773088729940157769343840974936533047565729445424040002611043407072249650933481020868211259624755276180079921897014747189715166030566361409594080644309023451959923110201706439551770746685613613538233023085835260953921552318310250464606820101895867475684753656464820347243558738362157824099297085708065847792421011526124671168342206591545839151373106151032117024048931822598571276380959900467006231075996859976840622318714884360970848316693245127267854322583129997627122079693219687412016014525630075969563343409530707237762593732244620168394375121790662725669989278713804451467844043545713218724424013155714266168177762956426825773594213415339500273340275490921019150936572023518402601711883115344578124118805723265238856393356282296535834015992103764935180429798283348772747478143766193588040043991399121699105481698234897331723237834833735261797946971941674432196454591575672254898809205690839223035384946551260884548390606861235052103585996204707605323540267076276067590208701537065948306577693837004945612126974173621255151684420461981955419206498655423607684385782437580930060317973037153973730899543831700605446198804384534041284250952242039935446687861828846447143384748051388905211454776831417083266840093737565393771392770351235823213455477331722436559034960924878622372396861883460643596685869433077182970649028801572513977554823874538485523373515456815774250840309464996699180017256132346614774260241153934668992319094871304924781743200790325195681978351927875803173402556882030518871065554009645346944938441015491590225123236131695013185932276878649296472255849368491251250849852203941420869713042233714417264754883133414548484409619125051336768384944748202290920245828432890376237290497263693939074489781914658862088209173764779244699126032045036842321332844000273072250472886914439678816463952261801674405161987404200790130165579433186912547781402026685686758019124395107875553459486020874744837533998154393333727542591694369680854231627351113297901650783852108389953028929470647929103242901281018681871477628837539233566290108621659395656928054272479688319238069753140284598883326644344280048048905069915576289010909407564409152317002117661087450333768082963744426595555320717200132590908968493863083810215871368610048611595042831589558812735055207659531490887229299566859679342292237179789954833389766258500992125384060573565294855516664333119820671112333140874275809632448857094890256368022103352259879818067646082581384831466176715208558105945888591188873699868724449218782150851698964659550956800342081574360632524574845053434576770764301074491061678603318381476234290131742370140755578717089740986020875444366199926880698264470398809744747115570764233992156235709229907345936154047022247679477966817242963093124233947984861159266446684863614694748459455143508818322114833380186285788413492762281819472915557160213027104268202102886913535694642693020205307531690002446709687014452460149504485362853029154358066441668533263251344857619526532963403819345564215329275280377928936646495203601544841320278380423012616533375408145730282913839326062679999421558919048238721834218964514789574383348276818471192796003815959240915459988189479228636757644402528211169624937825643346509131511331567148952115297613363259115229076448963658393049642400979068834674997012254861373787308559799140179825428451706161265565006968337734427387565826627460170821004336265637604669994589771623511303423897943857652205286514956323639790960275429617440045261540541536306708314623871016414085031422882025336726726124973861981206195993660668450455928029661853165773295153373407348661012855518056035123085922528644969215226636775429713518017782911077075524364215307850083412465179758763844133306012832787365800950571080503412713977767574797886058466080294474816248649441189235455125228117674171549116465296858344761099017678040956828298639421887578171144777396710867316335961512140734468137971326499277398539335648175857111471906686489435321055740165238176472964338344840662773159306068138455098310919953385845486410461950154513760541498115646011979966834109911568003552974463593896519313221747004607472100207088430929721597665330027353422954732823583622560102485087154045932327543411852178447036123809106347516149580643108352948695670711924047981896484721613407263974266937972424213084081920891170296183605900200832248905530331140711456996025660470011963494839682948386463237866809194919780168304612848220452532806492859021981589623716213814069418716943172041114909664748114209383362245004689391025430816684204010814408597129884313137164596943355242744359438301294186978213728360815853134338962433341868844359864798314486678050390046310474655149326435215186954997087787456518331732441269736361670730943244494906046769309689614200182190375229181781214215559082428135609548541954027116261524745777239381316221959257173819619854730710776147517166410470447070874909036501341550666219149685505972900435398822049387839885392320997328134502283071793974407066781590887811784297627636868040901222375567122831517105257461245107352549555649235996631482324226777815091564016842184773011994154347525492472317930919824484734775681249000696051882174147755129192995545425844505106305486786621902145810310172392475747508725417533305549286660931657285732501956365768412594048907109073159866844081907055766720461290020044376976374392803639487515886043969293214323847660518694337593147440357736496256241416128454933499263698058938699959921691639726769049984816145144263213635592129961756973602865355925732833401224602526577726542835492275162740961726431453390739922898948291653992689582907532077435634667384905055595139639027357682757432382469853176760340054096941700967370921578657267132892715553626603008279729391048946572174298527096372182770826224416869026893247253900084576740405436471290355326944810283138275476191877437750288915337087240067628253131033812514401056495013224864371008957556887517641892570526691907026021568290558775640208083344035641802686390209669765835390847127546317344508278690323895404557185614753721056477016491399167521884388714348267616981326358506360747055008170338462169605706135134384224601202717555520029764171302109963387133218252920037622830363227140471847272338692069603155291592766000007097836177687414087562991560455289742296492631361183544289146332343444871779787058928128004460059143573999897539753483889360886232005856208415103658704105729975399510728984312099037110715746512999592857458495074732783419889663334768958587798907753075405342530004968528391314338143542016916943304869096251101168336638687057547257549046695884109803101984665435882333430256561459825870512207794735356941193875017767639975052321689988042405298102494464698276038945428406729977820552852242551551154813791439470565254204307500945859877871996473879243868085189261700741908390740157033787170601789462087542187351071954087861668668630963795908034920991092129496339978277848172564126152632828450489767322776325375289733527405215693155309966395719667106069477007599105281200723938758664653187180235224451945970114159565525480103956064439107642970692456202395503821101541938585877682912589723184443334782643047827493144747089202162080407762358402737268033939228071707628025341229980765876080844301724542730478826257886824674398817233910069768875786048916108848210494217887153549113894889950693382682848162218609716694536717860004831835951342265783677030001563482418516704949381592931719823771389904472701610326489223807276880446435730835300334894036826433522856059542597195107331022145877149035168092540592610682939456697957430853780953577462799145370770936674644061970353660752170935818961751316755328619886292146573743690899603106066687050776858412097287587530529141634042082467493941536329139621177931321671825553795616929059803232133427246720471637318980748438851807809745486469803238962178097989219326576246664603725006212703057607469328325819554789222021503305524228230436766647962433299592051518880620781326467315787218427899042365675689101522051386225330775192129267097630956384533280841872816208648779650662574467209754008918391366643635814666352570192354188302267829102151431337390170710222366304164973568620701390387103664741217608120407993265014161357281086446013113727243496351201629450445410000050991999134259909297975292825320852471024843850166914036485706640141771484525073537272849810424984948538446791818687576301362923646015375365024098946795373787442173513154212998364653062164339042936578713366944702606712496352714481866118064735252478539579149445691429295383110414746896704253687556722565706353115688901000627526333552056712986626555057501200598842577568810905384418320034014949653422985786238372162987172876635532873723799789767322233979922658935015768920439826556838567596894029310801848025919705998593778614916683645061958430726255430760094776598773231460858720798680697504421492823862918710206127953007207353549848994408660035946989118727062749733511628415307327585667611910801014315446615009475657501163491304601948406714284165793613924670534507036047929008365630571271657728657234389887913849676894304901030446759992247907582139108555394971202013255563562356568545423105245723714431035638413576769406591483600858285874058559056330962022309825221202355800452604700487445952974900952940914462051264841875614980662545282032253333998263497387200109374304967478179698801202289257680754466412209797431143225371518381767946195097011786253296009918194190174141584848996427374684181676194637590747035550341604005988090283852097576661047398019552330472828571991648316136003277070916359030601926704178146835156775246349612128548488797885970566964883476139341652442146888290204984492949433327955136435002967287848837460453376783825697193493443174798927869134978464954947231149973008159121181969612973099108917315037820132571978999274533338517558949325746051214031355863617841831578145032441193961104156946863763196396304784538491215015327712289152262652804228637984336040312594920360831327086061867889907892060335459574496308580682502086108823167086645458611985154540471887223496095499421416437596116653361023510127280474544493286998045298784891937270428905769722792614823984386263533833028679469674936001740950646929499370564758673742168244923346884433690247162375978984922321691276517283253123372414655829488579601482341958605916488595827265376760173642540819790046036507300403837743713732748450909015193266476658428366766284097862658001567038273689033198074880980779061856283843672352507619802949202570096337326966095565449415300386160491370250086702814622152572258833980824301602149921246910834407861022765954229953773402005502036344214576632771204330021797527458155846670207182923021615633602320327398955239773185833882115987403334380861172159371572872030028501693026132635994798716038053105431277512378276982050975981268146309700438381311971515219557634843476244623491045829893677821507808387858952624230226730283488582615150125542647191876392672108501766997760202299327874630220227752221249946263294848119612854837484373574034726980095569320735441452664346894345094625756786541662998366420830273765451973752237991464653024188682767600880360807815761969618724438129131341559508221384425424248004079284415715290981913899858964200935344775297269137069958732470098876654252847086018797372457558710446535936478304824862552031738592380421675500924069807521016467091528467007462661706806260634077369013607678978651685907650283638332015504441042941302769964809413361618015313646317803551185241323736107185965741886411397490373592613171099467766237396086572839932280931958002882343317743437288325925265201902760046661763252486180647576424294294784375118955924951622397700918966020528642302770585249871553483531895939205750790208522274091631930773954257137056130250016357341257081870320693408259500123147617333001911500150552574777521746101085301014759886335444069730018264118674754582422353870757460819740727685462723511511173900576994048259906434804085350645152694040141994299837008884053419635271040734506823492773818791254848109248220964401732885725316106310486940899721596825848295971062803062866325630118109645111114363013566595146286114986144146376761059369483018739211277450787328589660810747247855922009587197453165260631645622933030025066213609920810331716403511974762842790883851335513266721199972125676133211020556580834513767093395250151750903879240294973332552224933917661126403538457367925587381522719741937443566380549618763277440476462703997257522248729401124083201116730895304904536198040010597338486453491091094947361469796356965144547021779609482565048534249377146005260741568281729447982610092458643484132930466091314483949943381557031513190889818141772218936217395426529077773319934518916754059134102892988866181787322627186789511528110135179611991956183339567061830948832625490966091700386756716109769950163999546784577118305553760866177642572134031188558648217199556401340249077586240670449117909921327733107336715316565605487070169030298798012996728894554048157873750591332578971060083740955767981718366643679891279737594193448327012028522199087191064902779427411994888037958237108778227494786268137443432793123925874298931253780426710384049805754327533988035157471754277469892255997577623055448196539541214173677606204617183849372568408408554821451071463750773913023962184651982761084638037847969443128805565656186724912944339182649475916850997611794537006654511650304887451709498687028539452474456635089643740149490320211665194006621107729140834744681061087714924442259477100740852943790267496676911417835147678846298836884357865395484883191432881881103488493516555952774769439525196453640540464969655882258872177147567319202153420611682355524298078286576777660656670496066510983471254158644156402805442421200635978758222641273940131193331140079995921497843118244248088422734843642171915409858956456048212018425153807200178824754816108501637471150186265096208031197723555223981180153424600460097977494845699773523568250004778316830906981090821450491966824290078683997080594725489306406896881415946013085303934769884959764142026342636129528993456322969392145749322711122994653710481850347723072760124982195727919740329291238340068459263463446712900423161928443985477345093903482402647404196842241325819966131786245484753991162010071123575762681901748789852631048377884070161970950758289534016127305188143754335136040028722745206577335165581372327506918362122311448844123810192914141183591272975082019876381387720331631653801790185978587924963626932298722997168335089414154670545494345764724083208220574649325661314775803529844689806934786862451537828099801309147478765942074471911694194392485469316993094697672497349294932699921563855825421831152321833611423056746834456217789728431558640099927358309059726279002411730075622871881809940167731852849840686038218455684506656171591375476359476247753260560502713694560967652517019467532686232826681879500730403412639814824142026965452282451208722259770620479015455033194444774833730278188480112981575292496041329403499563590853465511506884999689710306577514675284561010895255077020164261743620527816747450059938641871389701301929159468147729715950917298215639414260741062241984789983324822734530746750188174440175274135406678681769939381406708274966834431068182370756629963393611081704217253112701813365472130899953092307415575187969939678063079971422237743825890611087053517905993439141558253702074740869364162675792151857647534045306933444545050681152176523483480369501146523350245823938586480466116509021474476593765753285778182924515951609805492577594523178679234231777745710511523380741639804837748358766975116421091871536289178005613164103199853048954365218327664780728769917876890625730745306047938084421199750085357551819274833581186051108007389813751571107401582567552798742994416229596872914441332467293221335817661129984245967402534872366970617393562993028465453932068022997257993965240732874054840062547116870227038911589519570666607669422464094464619477490748247188442358150034152165700753953266185888088151332269024189165005064032773606052626791200964993828589517048603344930599132037887293513250665469462915325302286431197793906744082536565158069214965642491730502410675456538042919224590860449348504747706568168274251656252372883327342744985063039643046455775733459404617138247644933767447969484546520085982026440739626575851820238304545267181394489947169806899326437331096086307822381207088073668199487944114038238978804649969786759929709146681581846546902735808982805164040451239421341384664494633950110579738408881099410263760160442628400758409434961248372564345934349755342874125183571604007705277458825675387555737855006015764959461787395436002108784135657428942239308767210365418466517177250670141889708013916563312347652810791710932773465986789122244307898749715837565723845151216900044098170321378154304014271996798275938173462141954671281843246849377294340826069765718199930601956513533748364598800555326738128427176538623551503378479896214174718948357926391448692730006667570751278168696145239945697614799587778355590328399781217308588787829940140628429597395650814736681069547459769491840740240616844472530411026547134237598184885382323735704237376674952795269082690442781345910019147174238930244099423197366981097801828979305909296154568104289425213711314435483147951817709577931765989022182021644850236262558233132487617366116013121458091060394320111156867231211576942168219228536028749744825553022491528532660466558526250035702587442082040743584428847128162682184145148581685621741867357797758234465845846337756253677168940869997312454230634933738506441278601094507405924704844869228249342060646702316133030962437884687195221330975375904480840037846055047657231154108196114063905026808600033291266458863622132455791603940675212386042380403147797124365884867493961038791930968316755848031651938040797686729655345523142797428695565810764468238190850337533397428681991991855689275539665266115648797626175810427327656815390777521244775335274415336159213866955903055757912847151910006731468438850911953827351030918519313838125750350081904036925475426956578883880264616676512939333046064650515542086176208250484107265466117743094572670859589305328481624506337710361479063455393963712730622785041496795659085566721037941680746474575352812826993663696834970810885353718742927281649204203912112169115846217975637906762025329232620910186901794379933316958482580587020954717725214157189175181469306275985863545485092214529747302394727957214526508267905061422614998025717589887351891905953347788616065924682221268999624996967365864552589199109174472346312721159821500963804110736932118005700381451495839990897004877145262634817349631879866584744219225695561454125969804437558471642838621145883284849194939618748298865333393380327475095783653332144897913735882028308741179489713355342871258964673497635913135836529489103103777274209611823957508978805775109041088991934295171042678621613645679199564567478241644856768923302145565158682774990101063246787249951770041669614354985347436022637125542294748864218150104024883200232299786263641283146794002817354568972876190071729265751397305386339385864541670108783741323836708710657623897495192822658506983488305753536476212961744666280587078988658193650610772822975405036132628563418860776334942544375082781413336789381327822980909975287256920676270049042738579443303943458983935779026743975755537227469537754126882210926977785201305324348786246101731417490105495377802301257620748331612402581159941969795619502664676966198127564457279703137469461625301966543409599159092433038402580915886106961184818589069132608115216128554313861389043140659937953608560507804979809951342388635863488837045099906721551472242683021262645413552912807714696968421684763957323064893201343050316082738847795873384469006587702152396773923240576073500069120061520746567881146100904870040641671828771686359165038001055525658367596177327251590067534201954606655651391306282192080823976135805365911762460943177918512182044024556084089885413629567860322385379502637596381500540471636150742213417726264953705649073700498254915064457444899662198830652498495788975002089157097331462731383294713810831570390417928143489572038127902999449722866846028269040099720938024698850634058052599433947633508758419685917476681683146434459004849737555027783346545582475990315967398848626022828092014477624066190606504529441742565423391493070753338298716279088225470398408847233331205216446194437441606987008169329803101148675949576483446368445912155924604984864589446802129132540190735047866638783199196817145796620239422226654026158279624701162886259592259360871504142922299294063012558120913299798433724935113903090400292676196453306996331319856467263726417564652832906844497275659531035770196080146484545347302262512195568577718273108082520093683090884685544377057902679102096146352405378290044625279839599986154904934121536795111236927416207317848711554178917665339656813998839602846337550790088817813601634274242425884736153697943482712308251733526195894928447117073997782153592683092291396365145128560546858567699348464566551283169074645044168790457793807671188466893475299017231521392148745452777259719641386963757216547223365806032973971004803194601765526099657504924940370273199605379782206464241353128830273919298072138262873347478540303014840810688555662852533315423217147750993126551088549058164226267737996131155870388402144318553928572885453873676490185943821515568528966462304169558147790187642181514471004396444258218694950734758970213616454304024804064222608672400781492894208364372895991421121102293970611568881468037733190475438107071375818854481249960353883583649832831619185795746583198725326483145827184525926082226323831422240947105449552092233833075347779123438175786665453723714167790674126746374166899801733339044649362316147121008504183034880378777434439240184482323053124032268380129997524724847359270992532784410760113754828726309678085494954743757082574385411802864873008863141982916748900371652610866969962152076407010009260368300812756147780928918061142640303695915810422524302876495371991362069818615624931507021715093967097466635973489269852177624768962863282056204456904562505525872032953813816519985310930456915729567321859514621662664410799790798036534200410513475261887914030232963709224093559738373551374417821523172538608464382780844287190218060483992419439269631672444631359232281541329087436989305213345139950179320650518231730563631795203666242984314979714929005136862953875268654187440206123804821567047658383261461624644895310343488423697143389838324124757357291921176042639741107661897808521111858663175910490043819422273358184805079245122575568565928097453498326397950921741149686977314229701708326165091740970271130110766230846513175758761813348590864894439087337994316178942437565428390456758130606940653142978260907975917327135956896254023853138963893594073805314426551716485406429220721338876528784899999607840294799090461069322752501607712257290777714605931028700584153802296115538967989795104127227917130287966996564034872174527420372404977321700030446396532211143736398823840302020394681350836076909027748859550690337985197079102125878294122364916780510827377005824249035047554258372773473061971984871303413751848735031802676643230725482376931207273295153230338262283054826699076429590845069103532063162773555487912222308018945784008418140041721933301832561922800563933179021602167575708102896332438950028957885396955650264420373352664130885560272126952709128500797040642581014179923922157834552172271517959228429732438578459954717266255453674695798431783761190797916712527673052200042741895458249411871671152530715833679044030702068919322670716174913193181823112386775218859863609887043994325425420384367778550764811935565708242020864571065640030275620168573616364378969131962373690363679623300621754947100853092250215656000867218055520063357522662446198063427292989835111239936382059413255385667480126434050957211532475472382681289397973000022060310790944533177812793249348285958663204798811285516916310414521978156214383095385982854493807481012312815755194459006835842967273258695914886261869218441562766228735059005091949860329637018016439545302180413552523472641690203099731096727214157575808417360014738942604618615400509965724472058202906713056419928987058002320567989287814941055890564765091755959753342540431461590879230136395929008149980210493746985747553537431177890676597979630222796317189740540858207373334156737482939760636529450052368438451271668262966371481042070613961787914697002400720742373172122680719805309055708656162793408027648015553435837160683592081855040934059928690584185836669009084238329282437101331939893111910156939187038576107772301919167000233648379637606273931378479065657318309283700992264317580861209024848783993435248257024518592737908805206076687223443353975906683250997153142504473234980800291690290434830091215751518225294751072359607845144810049600018008771604965854315240595853327061926249937492498191847093125011282149818671782979324458762984041950389233142996382801978542066064512257108843500778894101675850078140485980691760544990665150792446057403160891265586403801855363319055278008167163725900669509212623325999974027950518354987960043359366360697572533335103588135644186475919247944750515586136230788592051136949392771679412904715041729733542742422101464307949117878397253527181791117594129204365870246278028350036998861361911808830358031856882514346251892337632855962178722465240283183573148900921456423544496324635474458555336414866506218222728417856196598228176806003689235077987496611065821699459081616634153685834398616519966078933379753063676053738166048693396615989990687792874776216585831777047706064861426372089769245263796669516129250999232883857300824901451729144779141019324270863907388246260116360617352527681537460537296560404474857788835174420363777766701722595148869404160611747665186770862907954112537186767394990962736561296130259145838448242482545817341124166563358552821062294818928610018670382394963325687108380341279720107521694164417289233641826325806801798345282194490846490675291995043514809519086847952794638515357766655909261581922782766243043898874820629415150495212069532899419233923459546385530762432010449310310777971421037547891628323819181062272376426676648447048875144405656677204136080443096058536114219165218779710873103225284855295456651339457053229019505479974060043085769170975888755857083666280781615422982413824887366629846950003078870407746768616033061787473234656815353649680080689394158472140080696569258142849943611132770571346529487528516868432575437937793750369526236842779040807498667553365007585615336870781137568224052649480245066696012569387385648111492220352947376038996286392407615437832516951230136884051859141366491469222656741175283652824635642306223245159739178638332390649097219450761313381758472555700999191192140992232854064158912058465788835581168870530555592559239296954551615416682525492435582653276136764155976665759842747204133877716615447286630494706043023734038492455748062961946601456036563054214953321137474659512745093175929080047624809704230661958373965157367107584256920400093393632020632035112304219324435231159493032734781100748554634356525438582421273153773849840511346083519872718290312901657629862196269686959959656849352291286072442325139671299276454181564934634422681659466862482343027949714027847686630413182900250252855915682977373859593913420033516887847427468895193513456552663668174422194668369662984842160371519909000041442178897739098453160421860529067014732593429521872382105850930451071035407340969263840037260401893455751431083867318661112204567698977734027304407247686828074468007978132230109456885695612357232163805983673291670137670249643705394066051939861952964550218167158788096667628723998053785234073128729953617925827158790736456412302911099469147344818491303718065138633373176086472362462709134469482244498371059828453894806594331062679837390260035057002761245476710871125956908322895196664981335188179144862978847232560469741291394135527624673483290294145312479312088577005026242973018064269540430882720994802047072505734612470505745242933409179615639321741361427149019618494212178396283234269005035996748893653123154769538788443888298954173864192398675687388514304423293086862374632794438788690334802022138277008486736987878485172745610530864331029093925029357895589049378852358662835946146747921627118946888944271172550003825307916600069744353440734242090515309968283153228501065027867954240266240253304667196755662675483529155355970560227404649903996047673583313637922763536343790612284134572611616629794343852643725809684952619236248566252106921887064640229009971306756915349788054695947789071382918338985843695402863910266117702439735460802809743893514519445091276508708138127960148369285245488541588005465353315482681294243661808720716475677361381462361495222284324431426288286967606745437154099183035411587899620220252690358094928211210382364079901281718059920979144954528335101055649483957101542038081400079550676895918422374352553347426550478569440243684998039310098210067494941543466259024069374435205777866085642954792783760615083182062412884734053299845858600422248562493891401957365344008961340493865458158477050458410366303774264203430185329524913517258209184897340269034525429365362344443635876524518462005000839611398221049055281682500227594551053514326731277170887363702000105889167107518315444459082612896025317738438041045271016072508658833097252650344962290790113175107327985490569527925294135472241865458971888763559541166029618515573442216596122445992556853021315637503718572120898876118758758460068549609916291827766372195871976831271760711285743296017305944072187451237749067076614049710306297272589238966203801060614604490821445834955084168240478270045126965325327349777642003762547286062339675447384689549793978377834157074954580311985277446059881379179987673698863571117164785741256886294344115856364763883251489512250450544079686102441695739839418414366180032524444715007259601016591686279955671479829834860188894548764538390572718383013119167959010194591594425085451339315715908768377533915953271499939357194577568245118905136579681591891656041158364500348958955200318886903863978026297982897870056227754461308546739313197887245929281524212684641532923254303926937862800913113370435785718816419967223848084431225135979756925247992201410146401870307630892767668429536925650633141234484704967602696405193516382210895357467312975835407580464333940961393637972316276375892690317464996980756076093531910126359674221349911629710284865181994464682472301639884620378619730298708277384176612680635957865026992313078874270664851378711388602312318458126944724040577356297027276311310660188984426702879371267576304534522597031783402456253821969732961756074783434801949524048171735833687729850576041692565340945235841972916858338972246975648394302914159846983387470063938684984393935526655900032306501749819066794457138240988806970161719322440170432940846842279128428770197057411540726516314206553102742786741441053115932469875549929129854597819826975251691818856134162850436285754017914637634693718263174376347371801291140540706096651179495490615509548392768429815960208713087381243173636169494259346995152101530009622583939803376024576345405317996226758954226808502804098349183003217116113225718411556011784923093322492956685182486064270498350237991603421511310977863775249921622558791542069004304524119653179690777536044061177285787058843084672279487058229796681099967567476295766481478339439496881974802261879879619306745019066343569191273382034779064219038320774394816299768370877871746480159651822845091565145506462501107287290683034524820444083416957954111358440581664165087089556730030126820333627176991359773913575459546762140300359330273290485696475477029805426145654894754058990293557004299820299275251493278070389562427516434092118939232978736981510980026731525578758968685607519791457426793017780849150434027215442856549631903268148474642611487424760970338215932000964128185612636346589335115755283727487869976953254829187856784486582973048721372080083987942341721267571924789403084652288413028534849458202489586601083291860025500113109634485313077319216599864166071286995194461696748227062148470765474466927578386580121269803011810345501975742754379241351658501498733035790226979035671194057283781202303733344623136912944279245501891349708265274596546014627569219800076212157810992018778459843576241699186110113072693892456837919036708511340492589751073994490686677168493398527414331937452903088691984966983488446876090982639922628799367163101289689046098560961605234249980364631307213898097457522526466724890869029602221167283346048924263485491036399275265520340700383423681987590463121173871949401621190557067487774333017051773799796661983914382525865619231149773840488877240678154381057770431459812140235755905424418181019380222050415137309642445434202851662478164059455275432634969277353644520384970768921085328217560479467201566443256829260203776805657150749346117426338217583071525081678137137889581415652330929588056885838787024593905672079837629616187018262934924240063206631637343802570193271186332962254979031036927420231484080761829236625205155430445200205466320013217152768348681711678829738562249179460986436828048432854571141670249451544427842741259597610244680653499504631622312372593312202073313645931137628432223088581035410911959158369424628392745301782893734929047185333308578498081194532374841205940400988287642345802071405459241094151122060612036011102990762640969502233046339459079169817396334475037084648574413606676443078967502774739762391007353212268115768914476682358005566749750371718346726375876643738092768197764460475719416191885851993038876608095227310404270838199631471233175278398235129602958175381588519216599188406123547058511635706790809057643658156363118089100220340060724286520503757018024779750792466123840091765392212040232061865041490161911756061764763032697331279927196529011536404293844523493719016700526068772758022190888871475563227862157875421436418182435985294495208427185231266529462575011820648521165838497294853800013982044444009370652795699753492735865155018153563688359624938723403267165838877393453859761419215602067482873821110794053878768682052997962958069003056162336185975894967453763602556974496212063597222454808865223082104566414759348777706311691943477578974286283215839382783170172803267741361453310082867159939095032093900139938685885945497827942027697379072230147473645656377482604772991948274810312559900794431374144573387737188741351514474800418022769961071575246300099627690609004939596964820292741895833620762102301083818009499496999220724839363642914736857112448410442952149907776861003178558740477151325813095720819838056611861333295324871176346086555459698148339284786382989595068746160777279741093908185099634099442270221796083535686595081109511356471032061895716421229677455401484354525106615224767979055497473679842528378500380204048812093519682896648554594685719124014920367114968864517978662255631583137465030282520986909402055407857775073002021794369843762734680940052770396299817199612878113576733680075781463945127722275181026049557848381906705824431809160601369589213547673630567683389413431241285663426861880115034447068473347635272977247021500533194689176869330749185680633875028600959085813293876236721248309639552738148452795943610981707924078267249727018383483038060994924779096142242008408706534373451501781638287642566539964997486361099537164110789578017522448243381667335838421492472833913974217527993723500702012777037235173714409092463668564681096407476745997086557743138263275117002691654283357231320403812232364280868267056934801333506711767442533448644614272010181701235581394291659596581534112138106552219864792343435940443493432569066808081653770466565450386089976072039181263686185136254471624401216248284823388866517131988024583811754369407903099972508680186935594002151779723694051296702100943048456871791717877162185198970781139550456028006186028127490476634708906808204197922521970323612667886469819975054478086952449241873070346041397024152606803873371873209811983206566414091662143729135435650726561558706999328230831217585913196709756235581266942632410395983583840646869310259575290002524035556428236384482898984587537742606539991983726342490895649742394984184259404982310575869742951807747507382882287556036168727736920940954542493459664187880577732198678617030182209719941727362283737457414210834096891703512890908218009108259725573968523584306945813187254642078409013225162204862367659856506247472365761056882909396861696921977164589462828939892885712322422792340342658151513185044623686634590325518434642438406881630793819595684076984282382419520303529056050315326186883308537422691933447991511975948723284280718879628389238348543693242560852767763080180961540097113790974545712875760742593046305949530123370871030071288572620928716374100443021588311351327145345199872205606960794239193321761986117767902921227203546523210420903041854278123450038196403187385254264712261614845011910635634205606634532186820671525582993263749632797623691951800396425628249805544687777024230245394252943444106852867560966289833020347411339089501721649881802540716010246410494943853707755576950464314629829834379641254145469877989710017580205161674221736680513383663338414636303784879688372147973081568466091846314937008107145620010866967812988708535369532732430833188608960129929488081282174014472999837660858361229609504482865331027128477322659354037911084208322905428357192112676021705096831949302915370198816653227735983133319704642857016887128572187399474807706013173212430671953654278101316799826249525153533590955915852343700470154662053157188637477051314404869368165944177116956732126052880246168802902070821942007701884107197054886714840399128423597102882072360675473915408098049505754204952644897382897086198288201052724171259171161371659105084494296482710685809684922607422071477635877698282860152996333922552990541634441473474791096399641733450522400808261393432759808569161039202130779746752254124226878639104889679752135069642468783230215198368934334118555805716374682200470718080594708198098874461398090983522843315270483968974009333967298358648340401733110010757852194570055830178556791842312525521486414427762005161641631541776752156515556777917241434693618696649939911986706515989088017629412004152218773999774842394941843634565642922564379281134846639006697001399362492423042822867629166549944305771395473633032865749081851773046525506672587891099280952749160370016475698618738069926503779673367043895323307735718131983975284905423994290295862628509112627264742551718245504107497438914392710323974510272857341981999330041748157547050648847368627274978953182229675806179989749812659882880448043521692206832838736420968096331756798805658420466843748603946893847951781964723233614712812368160434015624781816448704515688281997601165254486554634820913516090770002131577119369411959625035143542953350520081337437606494860511947748599223721537047405429451439506928780646538562798414261904822224455121863993177475645092572271342488241441754824782238001203492999592260388985922700772466256408531728433458501072377476091905438305069369906149876013112253753834474217877466101920557886798813209843678032402808076128153013206071539382539382155072252605282469185356536881851443391396945586916903957583707422212635193369825657814113008993769028816816325257020693504231102877310531477895248855582243268227453940928114682181623961189074990985788262007122171412638771876621176319152300438506549956975395258876655536604970188317358071518638892926748799182632829150359539053355955388078172376304701090143882502450277122576943515531940598244309126359801301515867759950677606925648240903151151965546456998323167271739175509109953932141490077373713192920486173134802103290140002327846692896525520736265865634919858750773984584964427157697095658195235302107304921661325049773612219257878212164639165843684135890648947670839811369179333763277718955209062607590520543226633052585205068834222779427984243073898880144098118588257428884402677839190543047014767072213788394085243072505810445926522127000769532639799596752721111958091473419585128183609708851160015650692253716334084932788277259895903218442447845860132851453201093324779202882853614821136953415938612498796491424483427860555074846138720902917952739464170649266323052424062395754843122006992795896752310432641761091582720187223707883755666636928266062270744688864581595088625541167391600909694670181264794945338971362323084674379823917552276263819498131215286594076724036791173080850332668100764538695171139719602192987859121767838846695878179434670104398065914522512540758987158400479757920258216713269157760530180833339191437025284041694977764783140524909043891749548133843152781667885919415974368272248037972453403143055559212580932843992090767965719853199459738604490170558805007381432078841373053326751807181926672904892627332386758438468819661693434311329626037422453507809596781938750796635011127240379061228293938668001580257978664451774866168930425740458563519736360671177088624267884540959327349265652516374711038390114341264945879716926180439605635947609491879971736489947996884757000440603443716981460686121777545451678996398025466983516804787893500352630356569814671016117842967916666104191537339088557328193025994073285168029780281642150124897976799009730028472572652793073244401876005532918129404966046574988490664619527151799819366426918658454216317723144985970961610239546340756847505950788701077362567277269818285640280585991046145793150022675948314472860412446448538715544792379301959754981521004319098777833671424385160280908726977707427489696515463252091751720966457465653370952534612167503691037677108501694489835901594276243416246504319606512506372587597802564927748041835175304543012424022666721404422100505659467786866328254910058531047362004023455598621912367421963446311971428676476568416649839963959359617052228836340765866413078693480663752167920197650773692006227324423080315004385951253085522730695351738119737822179764267510303622592145225885009473509292106818213289551103261333945479410258876235628955093123171446388117034062830194092530871645112081617642361440642228577446049652475362313477039746977801985686511549104768005874322803889135354180822990637185502565466524485126822521188676690135734292111872075625906393773874398658557494535663604179192061181610576602918794081956389827279061258215619088387551660813004088878943312668585593012674175601027207620701378385528389821552468806016571255935062618954078814257006896367853317574552835365704506317703902118529945296902148965216600577339508135040206065631741798179417385869557334994180659370066500155479255437373682760736086258261138546238187524644316803220387959480380601359233348151304915819843232533505423084915360632941794321460294370325887478593408280301031469983085931437029526978048577860981764887968937542378831986049595040344198527826228058564442259142514221167660917741347536720598161460006179642603762815665583011446247653829890702831669200802785680902311905323734193344890803582308145137924097062529880463941391489414745686051396102535632835071292794892439068380883282978057659986054941492656748201204379048976985325405038013120571374576458361009474622857854527502467398287800658121797304253984354197376626442518938369846883550787093197159049439075144048853513594535703361625571673053732699041264308509638486723457704022074561147269330541339157023532586373590070825017064721431722876870974364324401730763718407652127344995229660376514761760217254566730270824054070928973926162682118959411113500021965846064216654062230828440280015166042390331416840886999498524828484978004475966263129215855358640224509770110265214204969550321828259278326031963276750752744971324481255464145144217500514598943564834347802793298918203488053003474486517506045380378913987872468569456806538916725034857129721861042823319175101976707362106260484638340191974429763234886091479112351394049466564652025915836734426374708043216903063693179170584118080589311793053928301793067915599129717408039681286227132914314335944632068610671806215745247451275833306694080736827287858053497988385822316979300344657854217158432075067001261562390119278562279041826928965249683632443431789497678960703754900401271852989204717489301543914816252575228832846096471184154711198877733285357549256644469661492803852244644867876463711295267387152733427915986517697594802887995241261342300474484943042355384082952180576842273536253365555752531021301485430298259360294278586580027587841069784468110255093912172762236738038131283011106379810227113476688909271865471484316163139283441836712217785316380026817639496468034822853291929381949540682923667263021158677224968542782579897712687197855984362557867346181101895606715562184885230448248603271378684759354482648684906773740160838466988914237687714520722033465316546355282391096325172170701598637429409989483733934981970477861498597852526211815469407999826363644151693648169224298401362929293593672757768366858901254808299868010039351825741809479675537897678631253730223096993878805398578992403231419322210559045327929132192397745612513672761624235614529040098519109643352331610341859152758290751877069114911476580763783744284930401402308738497194641466838395619774027107947562897365272568206243976070228697788166115955959153456966869681808684038209050136302013935042859077667767353921795648491756298233977651554702028422523226524135049100811342774297331550468392532473655961833614482620463255875214318710940776627554027533036781263586498399116689034471006375472312316519324532621815788543222560527892775722910783490479006979918109679057471610064644509760857570413423138425902335263393262895138422901620214952978022079814311884630067868826809380907690928744502531299286749545238423404338252864587752395711301898253895149177564032778975376515023149449399780120725018767983654700998068561385360744341072319945720375304835589793564906484018544645546126346050724178845019380843717057364196857019075033843525041832283901141518076310585775157659039052215776992372906951794954669051279587395198306848304673396735778742611035262823164222578024929422617691945963377348976004557131020081974357299209524192299767259223823781198338319607332049878097756113502590990922739207136774290583631240817319283825809972498332407442899183427964854954473291426895538098477096980301648872559020785701449928258266756764401124254501987735939689382221573907726300593386085439853721131201323837667149399640528685677561537141346336989274976026846073185769982275123237990283428121640939435322346402195040251567387062897569768546045248938842289179819401519118285676648615412588116078251107679080807766875933092952404797308079880090773230586217275810423635927887638100762148661445559242786249555908174691230068785305574365440721522705044045062589671698658080867260185918797430190278054330177755704823108273678425570781226541973784949022431564494902920062554560516091225599579807960336210006414906510576107029424766080673854615156537712604236340785864075072902103546171311726957969939864406203116311878397934952362063360112795129876853038770930207067812949284840562241833826387571769518955239995398926954243878423554083389646966900886226576206122713910699414864780830010556712487246575590430588741643724852597555840977690639033539765534308825598953449489756719577820304659604640084639600660399173377014454939885712341561264998007429033435583221159174884520722576769193839076881162694197887367688784196715728109525667349704468801770668197070179884906321353951710451520456664412845595087504812430144385092673750627429245143829859887542017279722112364300984946738673761842588692062974975005255634002861663520998747754815942408496972136966062149580959108121269526247866895803639414962395484352618357395688003644524191405636897251286950795094462178288006105693653897880207110866415028738895840696901776825393961238461363861095028170641513879625982101932137115666753101301214816110656009160173381389146799428969394108113139586509516759005602900480560418899015037536856738225879573263582649767164988938603078105337641654237573806277147245397243152092877907554687071125501082986488326668665382548257449335366865225264945976443565908647097557487168112660105113447947879170827645298939744579875217515513848014159650088708172387017476502524748838572080316812092067227778594277663102171356354495085123929690212122640428414315991261971887999660636208941252247572115004214067415283422345395144908828194488236236198114993994638851041044605277391783804565043645520289354427965161376594933903477710724110693273597636658102618919161960557139810465597631999930128638406374292332929134444389650803108017978911501503357967689641222874316384865666113305279358234758834868279122180599364842462719902530459903233129760758078570330447539799201773220027275642088182564125829570206508065729355342684933533116238556766349870539453966852091688637071781826252535104617884537977606439539994170726782032596155994239408945069077233966446578256498399498735813101504928817533017165651560245709846632654574892671945256322452524534020647233322911239034216941807717302565472621577834604893561830062466574503252691298332722192732400387606099968744846172324701222846120189856266590560379788391254549276538712191293720093419350430908039857186415396262806847355599184003358203614793824191030361471235826997463570613051130249644663910645744183117666988848077176323088908445667448142743965722258938787504437415449876768846762048291288048321804204663973187572016360362090543503415958330566352648070541214743576292605573889284028290579475573196655334960122128907368852730049878484835582498844411765972320593314393852229113294218114997021938215453490552676020699571695385009020097989599725294368349836781776569123921672685642482032830010087056929595541601188657322684434801910329602509175670283637642551650586611148949214430106209399762799223741889992685818493551788415128690509353491355035693871326316998391960013165457592352054863176896842840379159956815545449168650606187840620677679463299475488668971230984028959282820454420602697306694242088762822234992509570558090667914620347540545746072646053865383421151298465594449208300462771699332153762421239012599631405734901452253093526156936679454717096362809333748649042343516416740372271441891364185924380226905215468090974101575540839364688428086552397295923358894389609738039747631813501479425468889615461936457027939633970251238040670149444190831049551913828888136847904272596743575080108012712297539480888485671040495455787003670612925580716053234337202096842657522337727023373507337895580772698057800642842324655756753740256196767974842003985324728903796278376902177647304552407414323335093050984534845934783275007603639869779942098260143798011216825337116963086131047684258419894677040309628222442236660868094558259122133911703062295951918263727160115008691239983247219761502349859709114748546794133817808329184117329089057446557632213396799786451616974351337535034539135067534519626122742956564045013102723773786751588153787566299816704196013588320368478901030241862446975471943546815013771198440066168174024170048208023702088299793438930048999974968251944230338645157967574239566970408344618357351445498436356834460093043609942829543753516732751648714904474518556814270724360792366416098590070795334978386493626874444137436981054873634240285502240966431015807553367393492161562411434182683583252003476722129136832250871782940826749578659278304793185203481350173776046357953205909504717068847678934338023241236090800353711043956902570086591915773158580395777043832658715633328302631662546290877302490552549208868778774690121991081448207325281992502454154233212292879136699918731303059824681201985518901644098773398032938330385158898514959563261939363125022703770407399588289247666501428559495056805810134868324848420049864753692183973752085154335807975865781218431518443483521388088382751917122653710812440316720270530081811280258018363561114929520370249978249807765842946350552284154640377942395316322437878002720772409197322276909682543143818802290161381516596331475746283995987461564133132292905650469725886379484051019735611299525955323513829050612610871279859898364318222920241507745701232455936446110291025185911733535548822756850945840451166818965304408125937421838722455980062396963941403809254227812257448927526209578579015543102993431877425418480328513188294463358892721945753319623601479013791381629749795774251362326119176195530532090379238786749067094732089852635724627124807931214235870966811361850911730485852554676961708252351331160592306775390150473973177835614279663373092526307279420157726725341343223209509529725192252945547993510038725907617713923547893704097977943614507904779125319330667740774126710794144195602707502818616739356296120282938752882780615043627352492148175726850649251900606807128557819024062674236422813502215282514062269989636556232315479263991262980905336536543677624085819015377328702882837551614669420674253596205916470699576457634658360399795261670572958666405062384374984845139022114597511704808703476481547665839991543897228715798297471810916352666888111099143338140231237891328133681044340675201716131372814785410631239829246272672611190248885738397049180714406920031689939520022313167885912622234214586518086471922233634022479071538611791661895785242842005990760234127354372500524012075457757665548429703069130414835776716425942350788369306081090218397121388454442229118779490265792990904431784376609938615547402745458220464865898403084240517708325030272635944817178307378461608995252454454091524963981368185722455001786113943081018440534214614585144883240431031072282236976865017464057789082991086856824054622562618525394453506727574615993675973200459657634685920359283744235742325544691155951879094459666059763216165457943628753567123840109864856648016050226458785265944474870952336399315907982385154571183272133242729042796511527189981906767708747286092554368779270554268405869080533340491536004561419576772841307850932821553493631620750321420803933520195000927336611584407978253404575445064200639292658878227381394378629560767715322524568928830376347353199838002899739757132703539613177659704424382028104856973307668399193791513113533849714583347713183951666623183757148146954954662079404802147794574292259037336289063668288697920473541022057620809492517190281665600458759740559518015995338953598614726542436028188114211909745160958608384710405796096217109316336792090098566097548111523278900220993642784110502989877731762126128405979362784393482285358957107350336517852448097299926248430238174146635288752611823967891168013313257721387973552144967176271404227953144192351133231510311208393697289450681698708244782811132683625771340983478978413536143123742688686418284985949988766578968181417977380928606517628848430766099941063303543604264181055584721445465568651850118624285397302999380587635338960575325121403033699761861664826844349472506596678375888154973047618660595775971970310590805747747422004875226545901677347642689333383360078477590961293567619609334264812973123456366399942073997009964855699161860109589346675873580581932707122743604696839688416608023037460233214896371415901824924410406085317089410082283283481842804521401641506290729468785239909775433303846214173497463118513589503644695246838961124209141605310516602848540200494464127698855742950706624355517459532134263526761648457249430636737518603115599826602254471536665017171278783527424560647473910059223313546527538834786571921447150950476093892252882271826318141614725890090531245750287994746252229373469194175483961827645204429526640665632251637017336077972657556256024844000583507547865932901741748498400867179107413660352864439176836817522094271303615284495393395691880377425748505143506627903864524793705782616035426194767372821515331588865828533212944666928504865519355421805260507382577878956913549700101130222713683402903041796597851368749442013030050305866115934363896011508855005844374847131813192719933161910605579698958695657531560409283152969852848310419105631391506512540947781833380554327614213844581705895903167339409832562662687412848889313297868895378053515571020951460490711836229342678695707943978864457365547213454697048582810795736391123703805674164121792472390290443083533746652930519978118068526797230059183519372838750133616150702353925682400999118191130161906931690762252980321588718699941391011164725508976347729479715094988182361920222924331579816849911507953846345030642145301961661788025156469865412214811563580981027160636631759758331816776951585613877413351704740183541467459450244527367864516260434134433841040160692350145146155185551574633837621367050624026423350457812274214861069018975909162865062335558222622653427399650371924370183796706325830636450500285467221936135970353358018241937273456069732345763343862697138896608483048867661154320547142731871305864187588930717791344559196897196045713059821726016572788009401553547357320404991193434971396992195287626357900343031228785017270553715353881534558147257498033432840258067212084578204556939496244112076903781349602873282595049370216295322034624844352212883431353727367534922344896049533892309280355621069109084351156666615208355800667190295250338527651514652448564854916211904219800395280685131630200641478901695508519518595019523245060345113251846257608325932880584571168587406544388159461182192026678040171902493957144631749683257507819899907349289064445342727638498502749291597905535148008195585214707037883205120049845855819689678477903902248538356446272137063225872623742580496121430669872058879301985230525882091190739368252230847889737007528181517754704899903717083488437967020397962489256078741887286279553675100911843420568763521590328827756172114864665981883395516410962715147444208709151568385445253904472918903377057284329508777930460950641608890970806692445596644591983417129353454899567019105487419887069590914178508368001926209890658324095247175209136082040024475043438570268596609124190468202625370210181369394553934506121749530767451205012845208794886939108599952329939407932442222034054734069491711320359316629369245199004815011249465624218683217462049344218418706217189769399756063324585759338290197820252159484491700338496534856832582245606888504758926264245988608451212038171977619851010636855602545109479231589681907111684071488380644018470065125768953181099305362102387401035188194713046748131420189961795731132957228989627724570950292239868119811944385577181086541647550191665400100382774497516127202717091390814819678732392282659636419134536990442642478794149767444283755268824192718750265579240193301457691242838711568798733215913032207083369250097824471092786934218819518813111430488197873285667350769462111445008300701821232491621386586647867319462738967578166718956649567722603897991026532101614884921401048215191532831769355155120839333718569174294311259964827190924385252752693455520451757193105092650979342152036373692614176596008896021322296256083428837313168373262403982985360335620487883301555530073727759153374374844105178393649259305592100222545336624035058518720489179402474974190713084258104938836699483771136015668228064399857672477769074151204611754838822262706109928231256677695472650541032027042540029832329480478756202184572006056036761171752124093080796994827244179321360362223107279087028734568708022412893836534046064489812767888590642392207928028959633971262394100752591751803006851390017600766969819657670574914899275895012738499182741868170730738283463745777867936926842859954946940839535002665718467487585165992921997290663322510665658284074887095129750536858920557012601120829883915314606204353574488405152785775708186364778074509593605487242208522029283371518761389716469385342761465098307914428471912138304123937284565260586643302940118821363614115917505498985197428591564304880135373895133314128051544931107578387960572890623648335068874318590156887552648451193974999980809883760405721073739196891904320089921317596367737566916221752138465443766205416316455368365112375510882315807782300937407528021454631281274245657419994411541717008091556303201596964991660395948175816548529117156397088070883570356337494879784598538538732884780515049858910147258585422560700608591920959195352990738960273147227453765034669898848740378856992640783249460942448809571203957565016079663846664238384670463250774870599024624224898298213270651973531036843835251819644573198309180211721688395055598944412124384193739755766459167630191788257283469526993988385928050080032334572379553786194365196736702596614048766953051465229684088796561169380607133993551169615275581412138710517427300886963185685460118875703618800076520884098954504089492047828176965829487216178210583936846198746022942141206375111063712129022338648699177798901355530244236003732464431348191636963725483969635123553374823571193319638576672544204212802931528705347564533664960814348567174172015589938914602819587440374330225160205580768390613494987142653895916989066281979012690912375999007465316313537551634925099851225345198099748670680247020655521697556897935134363729055153262729875488724934909551007359436477980858193466719342961011951607045658288354746163284721861797993153120863915863757621921455958527409822761927636917539712610049625088155610742767331841321988730735456530887961828437199041998541340904905605761481209680491527600449608553375059906650767916338369851225286399610431228621632099720664809672123552227942299478924788488540807912363698455984403644036541175283578232002501803179842692496367684450525284395738040706542923526756750882584002681233231793570880763700334086760160743027812458066975198207925868417871393843580864279247297421169157051582149092793608145035055876714933637076940131181594459464698800866315059136463473035096043838941304139056714669728358359190308908209756521369765521517002843510683755573103172089916289448267462482557889056685361077245869434044574602529954360059502358896022824201752482159010155703127805958251605069813599862263261843929339363605379167365295747506151094849554495530489014270153131545047652852549493026593897873294799374444407312478801219051496200563670943733258869825548316335814387149166971441951262921740838226805490854361020124149417833700467992915324018459937540817165703180677683983020421163450789801510065958326986284793507281920769269451549007292902851317878433822977523751984243293331225005851502376636158642520384912398714723508667302791447887121525401766866414885103477364868269113080888071213992311515463996085854041826708613708215998258637597466421279783454578905779393118339013787202739815782575073589322880806057447364437673152987291770148177559040086790908414402124940659437554068791752661198773319522034485754542829961360410633142615767091632924443417336472247815100910864009843484002025290709969675976125882570477594629427539989685637502677266722213232605213008392416829366629471837648493728292811245298877312776643260609105340355206659181764402507682940830315856900247138378928390095210806622359656302572518505216800912019596991932526534469190955735367453977856309031370661534012124612988694794304602595547055628193006087331819373741980984491566360094856522682721688072806960098672517526965406557562686907639358666017260870509998751080057219401487817841820934973470075405613021098331021887799007502363816664581469865766628619912631725724257967490176006099680817727594886236787900442160647392028976221257934234508135117427124571780456276760656295306306832849178973550600384467169904148154803998878121889567330428261194302527594095940452332000831429040596176499363898917127871137966628117731390510573222555344651035518354199915029147311454878837798583580166165325716151972845396870536456165566243433844269775532809937161559697042142374301503061025401796606113375310770934238124923883823717496439671494164751230036715453287482830279743022168691358877959952477087643249638436129556449476902004317429180002347193440599835167700419250656938155285059176167136098723923932501065656021641375936408041051129595109992370556568481835185742069630457904088017983601956194955138707240322938690589433463889712746995388570969931724502380324212762192216913793685741287368697596634881763842096264608718453569284858730088797223691308198123550654225502182895924096628146865845721046979358692180225417835438303948542615425734349398851366275919402334537894401168295746266933987935490417317297254490955870087531022233922439156752343652180929644959475336249448088178484239008469075009937035416744999721434318988058250259386782996073209740141888049508188001529176889682365890540648915000118730542944302738955057150019887972905677549821539102928045925887585847562711663483356195823315459563382202136620735113449019793357277820785591389697922820997559366189698548294787469023305657835927267818812139781667813889928877731357130045157747725944168328955274693409201011778375741136400693216343879609580587392865054395937406541333381451347904593427360617922980039298117479200824815120292012048381828784576517743710823590379007362938702270943995105457219582016785453942238017005093018075199811479950332803620541005867225549137483457680002368070714322240900256699049186769392121068417114110673733914056349545459198237610103450387750523348684141942497412044585811084895912778677253125463477625266674922031293571490997395967685385423585509134228546436476805642911033358328181545027179015435793535452834786613368454160790153612991048619649089328782277761426139779819330187244665374023231785590534285263581846412975893093841116771152405304682122709142822697989172283805099291606738465676849300435406234718177858539071060707073211308162418716315103810818641544676072247915185091587490867995812159227845549250475510684185645402536199413832741703678048267918451506681525807548234390673744501449778945152762471196390999205541642654841299334403319397983798681904067106377151121894718939482933606544982675928323085504352214431147123270390899838747479924956100675474536211812157168939584415608943486100204829551736018611344118550799918472017144542969515137613857064751425318579143326688467038399673216261345998023588020995041850254707106849091740254045260802661426316402933442458078561760576311387948654322325515679217560235183204283092396457105147454901540951770294131949363505402762070697979731710694934315445672234914088137229414330186708215379621272574279784364008068322265852533547095837513367382013309091620016677278197129173605209868520806176083528936857860968037274211642230611281037983533892928964648215609915509222720149099851014491770587807096405887699931399685106333087351563159129756790506035242470330600351740416889305798589025576828406391616339977062799823285986566394275601638165347604609669349892826149858179500806103591581133980007320428868913499842813496822043812111903428778574722438014004532123408044022520747790928430844284599641208323844898623971140546441752965786790107470385175575153345976434393213103798849293193481126667831628282836953391890879784199251019839394264653318142961601036905676423546582700815838664244190696634854189554822365221864603330304515488880948368707984820211127736472355905227394232474280665014126843183010494034983158171688536366251587492794951507571942532445809873688423704525827030327405383318761162837215907533362445002145258972639711919641368143127427329271185230082778815402750155102835063637219251505350541417203025292179906008829831441515252470365381192927373391227262354521678473510686272778215706128791570814501784130078003260633705486583745026008251840886299745904949487050016872118051405939384148932224659467324264996479663685380278021456469502229243484232005790559797537652522036043857424698513687309401572028259008500633742443645188674084075070265566719554200832888783896649322677658596403345703237087500345432720226651962240383489530870211494848004299137339314904144595791312639474722003200678397185550146282994139929490185495798037585313235451440357294513170005432940322404365728164520339581264515049050547287592481980149129616803806267502336627918911740311491657978863925681961752630398850243392689060774819599982327732145470433092406388666188578905302499712857550677449969749606790519239375965991421607190630592706151830761201617399228486911261796751804389736825345888897684939658822134455564217121623702401864918440601448190461233342249943666741759882020523667219568366456938963067445169897491118549767239672937396565007811244404194241432155579753861312894989998323449039256036855671010723871138898127502328395742421393788072750536960298692538476808308479288108032663651567489665248820663840583059460610078177710255482378121502195802086937232626180664811906202718119829200054716803173029930600662406250139197494117691516428838191954685194753016615732969613799050865911398331954480885685731965557950915985143667182857598477095381433601564096633491408692485922509458691480841264130511895230649056709146638401246822352326492829296257712761827832610762514956332371937887449121275510807896386428034764718575127348722801451082412586292323363673920406217752595699246163360601699251918329869213181335932207278369927188884203215366951643779587159339984903689292779278305825506257563998596889237169001744224698672832187839241444934755260739593943082279676292797394160458071737904984628785242033703113526923462370361069756188720369116700706957370832698386317679833247744973742126355798091235391049114809387284287142011962729836631170400733833164059422085736771078657507163886588940041727297273290111320371599079211165340255497889876048992340918676980644895393215220669360930580767810091447979542095761254872929332841556718618445240054805802986437671825818795180448986035234618322866044938927317738427092973608114122957621473737241234573266800867384847840857477410617514325238203001903317380666587379159878112190868292565756071503775231255403296718732963284260878741121604587284306982160682229266295349664507943368155037940267389257176947594767204302678041339780216539867108088580188572575650086123956224439910440365192062700445647050785689150939941442119083990791807034040184591283189522442663022252580023974214333801136697591577179013707799285753755107875706757169800592088317521478434253450508384780184935680930472715231208752456924472078410487200952873025097815223724470002771318330832420272300014839694211238941490846073224355408614429492136210373211102097096861366416431504780271315609665579137871305082933803290322064230328149181617543550246388567759856454053688798566328788950949904184847988456600295190625730262513749961885464187009658310765363220358261656698625537103407137492183813317575899831241666978784244340308906739446974232949176538231023651736114002645512065079000596069010156973195351742324700036909206101779189373109260256666459305124406107354372407210651006547699481056684454314070837432281718695553806082001186768544011769128845392737202930885671512026402527646703256868856742170232573986035155237420180008378018056223342596204886305689495429235621131737055706818713898583570483123045707635041384147833134938343089003773984384864678510392344350127419242204763223598720744780028631790851900194385765492370651731411461268691268081664336129017599633180262915042985986272053090370018247783500980022128317645579815450252540967418205107935341786976613258333518259327236193005593498682310944170838531122516853797245400623965540101297594108166205531339475868894157328139325877909485660527932765274341331034949048234149299776864532718163142534489088650167787180126800283059553576513201748283660466141990758407641615528822177006703210521618302719312298852990390229656639144723832916720981494057273644180295682963059359312429628314675846906342815110817281183340730973447330520005717029553321945270866944922089408355047096416523036232372852820681195998397735563041865669612570979254521688853723924271377865838533727229450100489187577215202118775693081112886195179993209050451193017169715462344132293789606691556900110920867323793252037073445245576631870850860660605133424236543269270429014480782367715082157005868464116460196082147717899544056765584192269066632019936755052054424015805202122282282684876632847437412906440500093032064180332872266193755751997407398433397078649445399194539134161752915486721768717589207508126700739378559416671872125201759000393387294166274524568715868958159008355492623875314362069143092634831601352843025059895836509071768503240430636476875279293466590272339715515158124588393189302098385179359012666886799476753592574993565787675686057800101056715083921702204527968950928909584370764845625318090259220525858099117345017768005223773648414472193298617309796166206949574874396645118271759282163648064764917440753289714032796882168900894771342263617180543183186400087460363576279294520733704442690263134099754474229498299784687195027777185315231757737224975750192255154510813948782121662753938795219927540258069837890147452499333162417067534422727915743900531508108171591592403756970425741059984889739932002796076159301661128674726927167122738896849492560096817575173230824392852762288346042349672201333827190641568877571706732080689285122757529669764175838780719791599794268793064323956748279029611224260857788211773662175446304298914103165789282366959499476786166459099456923151819233053440995383313155354468603943892931694756426499722131020711878385629418081754917127548314465497275223059920702263859884445846026859403202406083321711382580269544692832372973981393872972410406390906948676170368784187159324367176710314544708557892208498785503007708084949442969032785154888637980175587113277265787608735240386154854781044857349982402142160852292586786322394157605246508428698251717143523922246333371829863542330381575845332681353882500147361893552641297239725160604934080509227619366346802820325262317983166990785198229063948207900937030313335475152595198819831819593745634680906402262360182732047451581985636128129471262999532437216384013148175899657801209863679664290609275269944208592968106989950239200986736517594023096286810964355743756488959274560395727730537135296376543380137850728300021365860243270971363792544110674647164508603514325181418198704001531191346040530011919656808118837553109106836870990461163583108833161537646821213338685988573095658506680254335217556091176996039002273896844699256097615519816918746792432511231984751580334384699541081503854354916664705307535792790074156189381648092591474177755436777098042446875170273332918695144002524581191808503034048757863156050909139332847961478202276919373872724087781168181066484468769627391699643608529676318095369759286913684981470822159986786098567527251501408248066580773363849570594762465839947613964518633782923802752185188760293466369303375339411344966949496307249605253633700563811158392450039882390075869273553195422468492067045417098146060589062725708324832424955708228480339646757853093682470211103400119425008130950840897785493895646657690232901262470997607571019600405028436392708849559144170829880765150871742009227331556656016611943982805939166867378863994850164658352366325933618585835447311291281324453931087846380517310742503721706064727304754070533308310398278660784435141577288998072462757048296079332379734187860348495132657715711464882682672262225745925158501581697313338562573978171356584923272166223124514107508910494825294938843088711033140022677074730409817406947370192610083110135181197045712048353372322165009470805978459527574732617383383691499536741232766588062456206573599492214117665706607031271181948868060249223596556711277687219917515896165583556752137299006778329183496303132027254458121688496879727921492520591490368857700718256873280799348924016000870881115683102514657431036185058787436519018787836661583115760704738327592198818363879074088549246182667377038867057590987491081422860693688889258665680184167980549997059576107884216025393775547316288630908588937608646301254999286557506059411918942609198058731377235511805568680802847268651792341544361590349369316290247257080896157740358249087169535319778696350216993815067985654008554385234596840438907331277259086353955928860047439257365906754783537534160720821464321523750514805072841291764055228142337996000364125592944311701661021747570025676631117391245345373941286168321912941419193663873335156258890068737476765768142845577506732772486908065058598920570359372894316611494270761847476741635751557508918667562410057613313731174363121817927941490622201001006048022744088760211874112174763315258379512631270157021822854636266925877074253923137765822080142484869351353711365203155680922898129589799141605414687429425521936475481002907257045720848315109489064682185420705204462233581072417176812322484586766491180127736519424032057012931736972450075677711326724087923400892967892623911459387270577270070527963327589453281883364974466163745981168144308265211631194541451078631304701839554000272868136216940375719866042556967757368437744599940429986438994208341199824023136043667862482192296445700519851017537965956651944909675324804007915902708497892785147604172437628500247090057634856361149414668618976014336075249696945884488816486842514858306002493249615583928526251539283868548532549887829317387624802307831069911180268630181898281310437462685860791123609816045412438868139385096081234949518033353935362849781808386648265127421614965437068846791113129757128346762709232006642156512947499455078658421663000682565066721384273365394246650695756470600746839721154820107843589006615870921699878407877286002170115493756082459698052531906682779085607333953250099779772766791328134832264745996689001316030233705230367897571351522107695026007038228970175812744937551600813263277152712865215230429894481820729874826156275608517233794784759656994636263081576270677498674420106002028698419429537206759743983714576190761213601269661172631150917924481772806033965310901555266561821976808240117029929036628134806876278286360832831832481675472299741856341666114163833777867464071703449086023091429403209203732806857867847780510847077191580668818767981108904256515457078810206505885791133187039923702350214760217018354030823550412584727330087265522483401244907566177313468505555402468100558304550980157643787510208092286786710878508917969066562979280759149974623826468260186577013809837393654655184194772588835809090141255919298268234136804929332975349122552625959651724367177545602252446419363380445581305885443526448988606667625703172157670524450514684079077180301811464752374682029882030191447493463311217243798618123560605318454458345844125598445320339959044720699150727417687083579615018520793511076578114329524608234812234258233052802817810238206348558505517974838004058310867442494370513070035475545872119190729277850121056249692893755822829191432035879802476818993844842936177414821386243322544552707341213208453883279298530075821762548927162374822723854439447382559762464818517230292103584298224123670467036959699331806153552368489379253769568971544751390539173078431453988484693109981854657967203097215651663706041301611689816145045566981017859529648629491699055437919121573784691763623514512275483192069169249749679283362962015388066304680123221260606311527080959745464331808539725836474881433614686704591058287035449795121568580892285830750287458182354723193837621153817439794835706140423156027660258958316624604855302273316592642419752474254879838866194495897985251994644971796567940037414231369476122194623344442116609958325470416000987083867315447635387118838654960932530387330726990781642284518977487868904478124206556888676304147636891264756738800898930838131000757830574374322125654911194744618239621028718105352953895024769974335215557109802100021582403958079799472166354765919382676717633666483312883774612653964264664502284550624852802340904963496397740569095613160591174302623357598759452807236373681774112335695493798503811845203759982114694858576374907748921667347198305107667851108958515215878258950420887424590253067457677930505837281123610654408936171697752768607222136976972906017984815486998367243543821172249058135836221994635502850088087649155699027935126416112220432649383219020441708416761351877243079606402601249699241162094673650360682150183457085852601738745725676395725542408276556237760707602977760636254659082530764130836050213060379431892078621487586808208205767652459947776457852706216974056505848602230063449073737347723845856874018143901081330837255876850038713980594227250924289031238125452144210858332412371750859640707956868839570236966197982487033816529166341738553469447877292130782806134109249889627406945130485143889423706167403845809135998064698331721930699195611351740105823262184424944127131024229086565777370838875351917145657847803332586659121627285583776508039773947301012398432496834470584809810002313538611644141152173263833991351342856152633819761850590985188037045608758052244771804959471262214344164555754409872770299116614446419683652909337241549040175655880497375962690597009966298453398202795083058294195959505732249225562933208987511554526677627625959476774814220219713857182949503493713150704108971129729480825820238703415913181020424771697596782607730524773209999312531173511242027105963701703349770817162761419998334939902900645767565582532351548663609531045692092330917114516558456892558077674515414275527884489643387675330304292491221002233975226435538649239883480363628467097388887707042248024537149560516884996196854578199177041403349344498728973515917686349586140425658165170846656220646545282932390693965817867907898936365998174486865493555329716058244823068175899411998418543954323600417234338191173954024201535893052532696243710368435738733463873020660701970250616780077062618883191726044575348195771563422490693598707432443246221339261214982157738735301267944702559931745350368931613333708855304575985946940264591908249885620788916148872234840738831542236232737225836289946154766158330036249473315521129533748376826488126140305150795985303481620081084257582949046887098322522665983644576631924208163471313620306541686327646350025485244474761061561524931523533257004763540324841045836478982473817001729543996257572155929773835350615719057180405024699385033273883448967215850857509193519684901766248067878632732431221148652322768324132945163004871492099072577072604992989703725228661379880286125875303790287073364992939116572865204276932456932673567805964262886478081501817377977813230394711556779889367039623677838001926940913786383739264146556904602050788217679950599541752969314372921729108562330096312900140208697796898860107995072487395653838116010044791679769956218897388081797500786989522996238871188244550592214048128992606323989112126163939945780428067651013848076968891850185708337142018928602968618678523197717630512896924713057947080627344947060952034681445172079127010255249990098901611244258024271335022072140181353079916262534398489389950584315617531894043707708814581030971298071067483931513262384216904289832838250567544124035681408351473467565002023037840816253376231677027726014093300175395761414130014822455692828796208761417675311337750938619722283716011396703356959746744533514030030305579973213458506363451203299566631160658002511750291755553072249968232880852210534540181034513217824614130913374247517586651106891828264752165341074162011121500699830653193440955969394272620027934920536284382535797911170463094441353795137464446328565986139235405945617419458435217731334569433295117782883739651872295823427222869828399946899846836615849026175124682657593232286216122307742179593378441810836450428559233423524971057501875341278380267868613080288490120984298528496812641109617326405344812118354760396742796466389068759065268742018142522807616827454185157047903352738177766526002495449681666230672293601764865732147547925284600567737810359949182882751523069566584966542200469281006086269649637947455073610465681827938391729466096410916373543658003655818188749913236125089613988806374075935756760809752850662877170941638017607958420686658552494799831803793806672511294099658903412347251448650113474518938852279129111347373913572510301060661427852198629992995390428080780198195667948376961816410986155456685962655803533450099680939717383262495818557789174658944082373561259778189274696451628284602802104279653865732687785598167143980303383457081875423662257036943999550646431268515379125885967329440873849153817258624308161348393310601654974374474885877562324531645228409946775996765359998578055696063190164952037835680577148731370108338558677579620846907454691110341623866948214441610175871252796028951553168413115494943916346378784825543624972382047074391167785544338715814937362924695597937376455232692203603172684971618872411868565266247879822335185404337083778164856372243434428826468925644868554457811404963758841106133795271139745145853123826695582697946140215025131309863185478612001899229935776036563959649443425630595052619784406941160847962458408015514168245137899500681348303065953362594711793273815399086671112024219757300243453065714207354235567319482299322822324559601890403198095546737269699741373078106186160451726434763241192382861201135170864063815600753929238246411390746498283036634585214544528587038123136646086723359974831856130975896519795084129771209655427774946372272661190326484252361429624601954470255259643464109575122253497000519162940352992413701187357744219778516577834291843770747637323956618027396007072373106988046265326065723550955166436719509834635621146887967235477377109962567963292777434234410013097621809336225807685882261816548417899167256875683400090096317203507687875047980352909723525986387627017512092012738438722628806613545928715836791856795925497241968886914222604212888742019702180177579688277313018245687309381528332808374561220051293105412511761899956887933706165774804330947580101218169029154318901144020541866704739314840772921126838478024682376842792980051208678930904737750349698871704441580588851553572750921240657428880147051655681297042915629142637260154023468020605351009649451350855483696557394400395999833611676960601166944771534586360371223623565504788477250700477247413091692533830506777683998106288430460070738770897942110566712393129818837392113179157994951407544317485542133732200942548904512107147007013147895442019050518590231070841864118451467998429105922593573888835703719268487602526603453818359139179122337301386441249532820512872768343699504731816795678939801937562089528148532868799255442310852277596558934681425457397481291734247805114586596633374053769349226032993357809233761299391398260449246010929077316150281572100650212058150508681625831098405838220451714419946594401650349910088823711612710818855846303238115917568611834348581446033482694046932718652591746290989432911682387009081577306900772565463213758888399163031473807188537703198839999622986289979164739859283944625114265693170629436983038926861576547710422296154466876783565919668268815814711963494589770758133702160341268095179054333221095889373082355941337547772141082077773707922496714881497395109656683951416606414623022554950980042409724377917418335353094197620263373773130286577253188667202469760004063280283796669179528863554695788972775521727603409006600125089399566239501061333747211904954661733072641203210793939652377248341510756123673074832448177954405106669456460259198461344407391882550502601179260230306480678053735822692864693982198969150757235321853238017341850524338241999880318581206298491089811056152213662163933227793231567482155924591616844004774177925097663231872125206375112650633705450303674936777047093209550832336855896648681524154906783636840709232953906217061293074070890503355929515014561990372746916835800293246715008788848684916824466910153422410254612204728517628781412784129529552576298003988269274951456035387472206641895089700478969157469476407628124547587816261585944038081019169395019028175202258291101822502134437859821704294270836092056587058557268157128617879123551434818980020603776536962585551412986386838495251488514577124868092862518365380664091345460910800949022070968113869210339021338380620253655004808185580841204950104420697687370432060473716155305299636618770866254589088055687439579067167073879741265365767889858064532628855626933378227310282214196833363469614808305365426187834975371223072552001741762465710047269855601889776598065812049571833196378631662654991081418336399654564377658995044989786245013913952527286608925062001806215447748297182637133507323637440682307199690688191533826206070045381744209782609394610846336933945981307184421437385319041987140853488824582152986866478410635567505105658539404986881020165124169369500279811123164128829697520031205681873901665022666772967810699430518423494271624541792220466362126267041715175726037767588688360384475960887127173664030261247902186266216404157117205408976172608914531393305822792001335409441206912430962117152001561512440766684138190099327723192189231047327214722875968170508541246998604284867837395110531576657908593052439836242646789788066947262531612120163003829439787683968168357466175884727664213876410732500093099718112863139284374021273559789290313092180597749065037120711075824134174950299677025941797195574336492910275688098725806913719322978804052216152691006082693018422266621318837827628021508461748718275991087324185898690442678899857668832282942862829724946640227835797211322006699331987665785839883024073374323402654808276840619619588618286067520964133818025254138726945595380317463220118864986690846737499958107579994037154127826458075438115035485977750127587496462023204151175031871299375147185658133440612200587248116468078235728802606877656376178530840958198943540066373813238445739456257440193988616617269820505869611777156685045210591503648027186366500455459227593039452862128471399840610828141279514046336113112388402789837618460932044649878014861539432493643008248720727522466022850661169453790960783900250792260325433750853916687655210636045135584817801759560410684722447272944198703394365819802780018907495284664108538579905902351593808595801125517930360198510577555481299051425764067720471935898697957727249218502052840376087416427070123277481304803374447166625353356954891098649830522471334160331901931160282140523616610519477184580615301235700546058073742366239027474454924466908088847916074845796415091139805394036017426100339468486987302036643722672252497100399836179108155027817122806460014474317446239006814344904201206078773847083047169970724846685213613125651140087722921164400023209261612588605130965690701908454224264321033732318878986717310611198861752482235884092744026690370864285570688512982598122756857014944127779053574572675510718051465538381180181460133757631801495826106867740824508478221828501019788888073346445293152004298228011188073250773788496821843689250153979427154613543722507734917163045045940306127580442229859728909320017916730123494284654119399232930752901556518203533772865533262996467941067807253592449887899858893136553933708085919663861680847219512404223654616600413624233052695489544528915045362693663892052479852159253326769640129656806522668871429463077864633347304422570528464373976582682338239587419086854575552393456543845333056935438024627097320963117886579369873283412159500934972028450754353972202618991848663065057814233296049856412007171843847424221003341279178716763552534114097200392120377478661043733004364078499250935095147936383562211157972825597273715122846161130350849934556110600591895787320114500599014663544604332762615034641458904940692060310197246443169755803327620858190865666146272823622681963766493517747714943345006666254298256663235071612353959678947435006824564567276069549101272800814523852150090180584955778709152745723701614144801653376615237397232493387215040915434345308636318297380332490242201915554165858452638268817716000294865555737412731002577593299700697069569674980076569912357038672755493274510777593335779285474992956388143395135865627822505453686495152193269150496501064991923776977238216568610069539921707543030960273292870307488423864496841720524719556817151520891924850198143399560323305075730326782590379984499199408400701750960293828318841231942391434197994386678555942664953290754950251849820084498783543491844796023133989791045184381923610614936282463390662458383207954549781591181946617273253216809770529467497669331620845582982121397829284547969175888293025432747473341927248520187949616233744003591785122807807842996785608639179992389609534276829120346028384860558173640398144081126881110617272120762402997750218805068361942371167874095165395581533916402022644106817028916712259551735744859165906318276781440415988654643891783202194363024809997583855044133059137014194316805155245152176341246022578642454486497042377406495179282726894574010934120376569144001820716122980885804687331212007871232118606548313657823959857679613880915717295170397429410429029763785036818934381583250713779620530968997690433963831948833091121015291609587625175144300107265366293442249276340240225750627613703649482739794969129151967656642367385995652007858456591437515775817507048699113794064815432874013800192401246375530810052921323187653334436920409729597216204425796948235454412213886301997697961083688437972506903074015469832953136256448812251838929819449844277699854838109011348955626720437768781127946958094480112679264805713664225946045746205361623364108075270417513168646775344335276391855390466353886748031065089873413623411257942295473881479617367333215471763260401814720003489874785124655286895659941424160205458920617682000793726123374922276973181742786838659752580871806923503932802817811324197550264516648333240940652788780239501651930809242334429174580940682120227809635833447536972003072686551320420430087569884942321662703144482723123558131144557781675378557732803225442770322878931539925032290075943054040054016236091842550786277300570977842151855780314837417045910968549753770288893779185466534607929401394524574836600573287038804080381673409876141599921839812012379938640434571231272519807878933768850021687687177342708405725264502305065329499512608364507529837867309483443408489018852604229171089881033790508350756871726663890659903920843286788868378645465567999424885531706397257909132020121292743034748686727843699963700860013884855294116629311956556046827170491736156527337523769248684163021320866779999533042380161446084114779919378605328937126845426276280704387370905060494579219334178613606993250224303128806806432215525146054782979077145831478171021372100623452683203893132709774548182225539437443466482169068039052390858915332335991403633007242720257617117077017597941313901643809825287007466586530616387923399129974720673532010176896591632736225007886510122230704885131409364396109034960349149427598553519615702408744258710968059120646309947755940552460242942703372202912721758046448380891308644065258268840362102965399777586901289009423286196655205101673729092664233353400012324695249571102248046992809339442134682279942580147543772305299594803254983662666527419883859083072701070710634401081688026125558189035029559924599269249411628565907536785182018337103693475657643340730682559461652023936954400802719469109583006296781499781346119292348615449349484093958397703695900164110382301754174958448403295808563252589442662818909199317410725638507720988091486395726306473020373773011800305912611415706905277602856565425864185769061579131590585052549308319843454780079607238023973409081739313660546812489742951539509229419197560581742163182516017678459949930515297158205933700775998066842528272767515316174518908055876001707282692435523948947249272835756544379654452590966570168590223652752382865126105638430282116240032684002357687990286583941589365245194492433782077278701037526100257654922915661365082346763445918487693224656815839964510189397741103545175781891086069012845723614034647918170421131192637216566442966076970566073855133908865682735770207781810842292798537094252797548735428806766222792522048468989619137033193230061045186925416794994713670363365406062337288536118968160676396374562426428826146177532891390308810453479254052872133470007469202380869216975254397122753203324257189596361173202860101985980792167859204028139119339433875272028853660824629977478638088089688319376803880979605252300720632583120368694636620207255485653177541498170367123742682491603933333151547940226842609313501991276565368813137615462433503042652433763223082865462678941186367343587925752418972763183909576849163304860789375933793877206357582051644535680938614313094464387334617338691196162950028092213892844399299338057385801051727298234735902487077771216022449568539458225614399625769495839541862063844743417909639864724526486949635402584474698800480814348729289653423255207479094615267494955567294774404025600162594693153696989042807476298819703992248344191921019755263803165039492098607267989742779704842132129594676950895252860771096777044031031635721512110139758855845252424831223955939693799869397968369400495892253998889883241815541201738623994384914121515594055993439819495162192989068376596947684176404100412349171514249356884184058660910019361307253399662438654399360388660794608200176406031362914171886729275017709845231917661774901080407433722541633960411483204908940822032273076035793285707227348682663172431004317625019635405017975043472283947778392674509910102971641444639146811036514841569611400336169874626061531244625219361644146805561374544604290100936301570674300663879642140349363589915695962509826953690341275939257460750092664060410130998699871009593684043216029398178953376285025212013428406349240056416101949367313581338855288195909230362871975513042064222318675567656956080822123987453511497225626839606485476019992580691242138287628908393386654154211206443581098643996566373453788220683797263919971249337686844646426298301206524844241891963623737147657389470240180050004771495448479596033194566776952473906824913585597673608871618800428282725551063572002541650577725302166225615703379488307696186839109291920036300747902924174476674937412814548292893404219872861430501194555741353845900160056125743670903960783757155846378586401150184318999511390756029181107915387300267533197796586571884835284208127862759548055414061214262105019598342444206973061828806418680738717417833838388152099015443660728422977465134925363367252743072757614409338095083727832606070034589921868010906076676078597897228249160446784497173322661450935644291065773502417943568646116227166863677429411692653197540637310138964033382190704693899583508640920047712590357409635309508881835325663155559243715433947421375942046322709381419074932274843932727505226333579464076700559141788381094302921170712777494440433782607398797637980624365577679668492896636110811277001267031300180226052591259866625792851818984501335871725060623030191909593238961373051819207391739235247800988140182567008399670194840518490904193505514017865787865851010973368793349944053958656301414186389481794947930177028945993658364422093573262429058550299441408416708512802361636766090574682929995361053365967264944632463922935103503833226560353677957134931980651532932580570328248397184988995215659828246725007902406585791592145758836506398272875483146724988674644530449113485313513221158333748076820327470048317634191232575724438591764740569445655443164248446847351099841105839732019092961150365517149990941416600688680946114589577609664146433798428837082871589096484623219532581119295888104506210462875707308177104762663572302351226366719444780679158907474656921902428287842982549677751316890710930435271733519401063298011337196512861716362232208410173079106857793387372041036996024572551349108652602405468838053098875477201234713763228034799850972445554148356693635132707296539595937504713412189307563274631834059502951836070971290923548766702926004942497074791890046913200889498059819626185043264393199532651377899739484122140792359319025623297998461276283814208315072102339235772249550747063929707521358244210657157214309464937130845332242505393745297507588390399794169942123622626080363472312146584467044009672441625333535248560312492122729896804576949215406500185991454630332509697310812787107348427930156227980689683716348620776607703071885542996691595296938199520528847136495486833136541226991321913985393199440875126997799965634432075375474950523654464601479877624197627752421945166917310961725265811791514298737834950855104381996296222364313148261347205313961202981848089999834598126786172165875347000795922302999619610979367623237018445363325579875380413836184256852085076447562904392167339940141983765343577874261583446213674826481851475816245725388588704759563943162325330455257472515115444796796516512285260523486828555470366482218094919153047412575159926844379267275806212000299255112835191917109866420893248171074909266254519541783286756230066902482856852227654310537516689185980619390287736237879825440107800049630826643089890067845145056145802072888142741222373919861852630036040821678057936873392630607825701527279136509719371974009935990790977331363549231668532127243390294549649962512810900117049911548045784919734086546080492764177756452490202181086769622363439675816461773735044190652221826182554661783260617473747970539232355488301456809617089205694753917561545088278937448080602956805807073654232640923366355923374829020764427929863834275226228449392633490294257057626681660199745190370364347474310671264836270049691731399421568383064152067797277195010113163035514598685548591559955626987164223175291228065922908165558427232322817783491425887459095179590286024440046194618447483050027225407035117316742930516361984531019056158880118284535542597367980026220316619633662587718309284423771255154389777122080704503617527707362776482777641163505935189753731535958176427774668457022744873065138100233954437191648245823352585385707054767768690784587923112779768823729330030463434262379173772059168304891839068861821178633676229600038821572109810088266466261510305623196837604688895839638348763490053162665556560444764461662169170406772550617139175630575503766114305130441350801066652282040275568191079464782829720506810331869585831648259126231608942542222765104736009051291379444967630154030757896659165526289540627614922039360525908245630756669633325244256784856242626588541331920526013513440443456949477640644247857687258483533720212885881803219161967347800200777209894983687615224059100646181395903620535168854178456843892814543439987264282333564746721880870275960880515303482258705668699678715035053193217569044328901816064532588952661716080680278017204845194204632837163235877816679508461089135393897361374542607431162819209590089735426023397456162585081220316037072770896395998697843533156287872606012974315473234856960450944399071757257570456439131100564272682489122323910133038304118050224679233402724472141940644438636741303593280625360605743579995701986066891758850304854118256477464089209081761301331860702319062822537944655848650023100176128242468308441839438431386238304136820757136839707375433627397672095409034728429609555864871530775693279093370084454162204234874299935589151526651266596381070475865562539040422985679437961275451399147330553200538014176801886796602695264638427152205477363616310998275992876370949844656531962256687028667257364717254166193751452202938403150901791343222118088676978074181164042341399021040514508598743435783088591635998982910725977880366806285421463783138456489254060680974131570809776559833842560255017583990389212090760479170136974256850293549490133690486872835180147219497944057321734438844899824153564923963281936870535599669329538248980262188188959982280214799844988973675056400493247338312562910186446909089433984625440643486673703176596363787508342635194871336628969185307602941513541336304921319854138954440486301766385241774947919473670206105192864028086601576774675062283251991156808672922294803005320617113503580119026689905861528193493106489148960915154075096776448652916352930364052421413789859451971190193084824710612686929332869383073739658623119367438420721517521286935406552205596966017192887674525028407172226163266377059930382540427669398078837573091668344838939241662672448095572200237553889370642976067057509901857540492003445196177713733714353425793501392213530854323942009384495108908563116067911669505310872983869296845842822890637654702549460502727971418672728453283103842202016857284726777382760282474925415308683811862647352725012990406777032154319153330666719901135786033324642464923274515687027337275515205184419317811897911882771782645403250032731508087344418573988842948552122997190915461556123958162677951928785919286526432992946380649092124192402003895787520174071450659266946348658471713262892468522295754662635710306614335487606849930965876257547373380309199685870877733843503816526049641819720353198947434678564757164602260661888492662623118746703178183762982422815771439926079000248037175625992312980055923884090458542935454467310053819773721520629129931339518809267369465227410125339378884586681335067734320977241891718645872105039128335641860953455064051870101723234625813459474768546011526749448249814161852422055546455337625950502865833716178321673820881509448679060633026635581159517902999683356984350584092679048383637078607839682881550040535410243409157168025138901276505427718308569465964845940266029352225734009282271870058929722486709304121865403036354849810315900798349429174637709016370838000890709898670602321630605291688426478333120050069054413483800066885634892220723648034682822927986647733817811040633005302076784871979962577419645431696754547778179911122838145383773625767620945192692584332700505704539336056822583442423394827924160321307502365180251548841351702427318434113528958673148861015031809136038849393711846923321067791424069901647511355851480172969093899508030282120328779359521517097189062991411993577413417554285065467903488864928254754382642707066579016995564976285002183750725242849775950423630733087110966653021191926453472584808676178827309499722549959075252288159085209201177284526428420400263560704281610508350422038158748532601787739391432812481805189345577446452650045153658569040660393414002265010725038729147080679773873113528545854966911756755140307253821177411887913923678957962819523813562866371266387936741671700081618189216417381384517353903712388771124847383565132985428259013512081460357237335119333432886736549082990686760870478894667997879586713584701503398303503499258425143826602769081971937320937069290313103322713601472619692057902202183129447041716910846899978568766660375248266027056372042601564474587655285484411057241925783569000949408434468111153581860002893682723219229630869117859344939677834023677912207595081708929936523430229697472257194426472765429487759665586980796998672553453181060399681265085269898599999253287859520432977071632156881648006726645131125972511446136076228030251467844656170433623526307624591094614375829170941142438887223509118986385886885609697354046930207708061322467926067553462685821161493835203548664988394787117327485718993058638281735298889385324250085126321017653392342203663006751176556125250833126861821289752827527227789096464914233243235849680507309078399381657859372422283713515743719602805481157629303525059761006509455654256793583329173323679290682408064725453109300422633372668486708353064018578471437392847768692727990885235128559398921131467649173252775844195091180253271656951336612245411688382264838772239901409844881150360172707956987632542261996464344646524768847463930689567112870445351641756093546814714640114487460721530932383467729734523780356199480097952279613424016864745097373914762422623806168278086332806864918501978915113464275695224339334885138269213698354576130622912826358677402791125793011763777263055519661964830688974169664686967970881475517791684606673739428155087688712321079451899172929252480379613420234652670496438641603621497099100870018521357915192000602645867860247947238207632836017977422359631205494085613846297616186358498286080788511227057857287689143113156267743631264216777774354314542159979276834626553975464759259362615712972687495863004265667780843860553988847236232647217846797892902861578904244117057941222260117668971478333409167905409900259352182000709070173672460625983164507249015179498550156432122645530390032778195828166787370246076711573454729370978251800714676419842710971972648048401370483951926489197280633366678052144168987055019995819946860361081010631655695634043732033147394527023952234460468141007069260037380086006733163574601518442087237330597317393268190838246788620212263078439977715708677046705462196049809868958628649833657031314850040346883958119096321367503288671190538301079982636444795746213341907155837157667086310640238199769379806530695625327502981719393440622072192985601818780415766361685894134393540655195037470230147301668337632633005936996006834713239842325681566840255549183362587596073347384371644555523975781172586676254297217022738685367208324324858570029950677871081628314876039504475027190004790173645668969790349854100280020456986749579033202510136492681361726738022333549543936766635619520993424064058591035696859929530614029734553553810750353005148769857285334895461628490655235134736188265743780637202241290461449516146117113353948673043553760178458214293722828963201536491226702214503444558560264753068355340554073613761458908819143615255505756814697456203209073448322582554006518127593652389525453941089993224123802940349764961573401092826543459896937547863881426853233112252062706229954362644438148529121954879304850580486699471250333727587945906320158206603659007577967198373580414627864600550695218838848746979236231178185479638655230184528357144408709673591765891307256965233665279703757213031911238980405383148823540064834041824719029050946950968991568705886680962295467772170578887279057106265058581404271986049377058369880790651348948367098628921392410880685436243306906722597516362682911891540467611563355383202786486940886472882955024291046046173032982617804818658580030015210468109235311420695781960099536672036570477606891113774123989173742935678963895187815532836484691133621526237439777312699760071143361551319730675069590052770520196932893299812200652093772129958650138100618482888394099146480174376567160990431151583952263978303284884318666342262800488273513333149319237404183352102388255047295314341166216925452449748698632667774264711094558881590914410312860843864524401540674751238720014688794932432520678662326492219896234062526936690301315961436333829414611503343322523217464093628683320649980494328110265632172077361197206702033484879810679235853378812413985917086688231552878714543952281719554813777497329404288684280851255685373992204191305508455935540082207629549173974881644238027912394243199556177681514836369365571175575851540936468200241331370576608482638578963537448687829403652155159163636067210807367574355028446242305779509533500460221580535806334584217066009975356616889445722662227801487081789199501767570063083850486850757417630159116354765084023932226838392437212366678442229211047652834470178373441049689825626818107939281803416044983761222634852748313930909670783432415317938994898068801579792791523567863305370111993872463517727171065491647513676703291480116057147976229016890266268938695269416977006614190046648074101168118867299675371342232307786697178489797272496179314895257537614464783459144993823094539676393518129475658887553872230253864128906152331172291033086166495329148354162659520703493755125386059831126636244245570429603986904817123415763754210803799711535473843564292592840337139454753014061286917790803362090109384863276602038313552302167941094887007580414070380614153699026877265192127979405095561492336888475590544176791383558448992388047867330140947499250768728838463036976617197715586006465591147921673870037780101953231423188412909463156591550964404653505458741588330066208552458852202055132968506010260990241268575273505078308525823497411295717640647145904358667349871691481749548895894279643132322794190941388560092147819947924296445815129579142249408819007986210498871129640387587074742981887271198346243110726909729847866531147929317066152010246206554509982764165082104745116549224525004038229717976154685276221193874557461178724829412401340899494620631217467983901263396705630807838277955344811055777042692620627759784137364471855226359314761635721180425446370880273781280434568990720175261236035884353989833148385544729929768730553081518616902624809007515537196825172842146352617229385502252303642331274756919250616564613617209602660113494545958083358701421730964919371597954235976067710727169114068858207638592756794826419496233557048020465619648048658875214049711344706107506070582604070008713824254933654979660744828232441860080038664192344434210584302508701984372085195131740893240028924280436356990580808461417544982313168884581156450500732417397445920280687789938977642090020330336382749460183984744413629051627946758350675673726681434894922240987121598951190391857349009571591691216661236991876598154084536079833098187051166460688884485790338212688392466052850267769357004502831690389806965351687059501906803892028300905006334139051579076280066354471686011508098464281250112933918365875337934313509215248255617078793831189370679649583925934458584033030700623739768203777804770028671523427592868989457393023394842291200460861996208849788028172917363263144090807256549857482225456330342048674225371451745608959698337861275453008275117803367661264948616429147618766689906865014052631188368922621631144912364981828637010197563797697340809347260650519690153006239852852574908213300072299210562669407434009532387947280518366165596797924246658251807632795661060809882982442727472048565723749507969149241988904736379208077533052398870147193182516647949131346676237770751514823734705776123145370402553980754222070024344410354145289044246219994301249276897422049673604425034256700711044947811895236572296033384660106175931367748806936912576162020251083247862302661060743039963611833941835843071857434007200037983474658644423993219597909122919104780860027308551193789118786219578858103324094905524004330690097790307086988488976721886848004046962978426254127564329992891883489843911191171452046505698056372464734404829749967940790879163020619911798721749955816765915072178518863655794519271337940895571633994034304867714910776140505391533329385653284629348816724795702575394411288859393630872578610957304825151232951973829108718483449585841591833644522036654604841989313917540103051235823005764331178910194855566135422935063576666465068705165937001271815473831532750953182753509071465635086311705772630469725547191033955104071609163974217113526042525213946510383295375572502363626595326967234496283705022435935865332797451308330173622113504765107385440283454762319502777670853358807594107171473035538347757626514981872361896082909786456583783772691022918263370191020170630169041755605873456105334412971535870574629962491205286346998920728757642535906066704620305299794360498653344278089903293113619885200660589581913527504298549955086439198320445578079864276466771624404219837967613426294541337991830619319736351398807925738455193798742960873129313726923851934950750345189225113381061968462470147470756421338389315637938703433333145728897561484106959385712005782537337328036181040513169044404947881929638146441062182965022296596125396648532902527692728325590213347605793083771751560492294401934789718997860881595333014180511024495163315609423448238880073918630310519359717125938036086590840934521668225728936535888815444036374771426570752293775265432664540368551706698057037304209468814467453230876304295143609358338616630347782247526259500281972809170924486226719607831106153892188710049056164978452648302495591217099393337472711726133623613471027177841867521760260223442244918337138579067644107000789027759369595774503953212608339425175627190792102124445093936118526046137398169713460440887256371357175904685726175953651154213701711603029788712444375547836043844089193298909690475184530502194018111561364648029142961521149576966794657451415658766721260831554703504526274089919703340768692689695373860762756183380863400995849229563708374478427732880485595151566751216632288476311443464342166875883031749579389785134534856419557295752337014303907426368558683492451131368815533081702330742907410508503694538162113648586592090512294791368479197510211097598329241412013541461948264086753367431721513228514922459612586351126659442891950368457622999072259304947330737691217214462234907336986393804681124495061906598011297015348979339585057679968828728613423524270020532994379302289058219489391756468879754879098147848666398528175425772793088115154446051812096818974989291713836667623564830094921354493588009343076799732226232291162086219008642011825551920252357262001816380223747589035433808741185563613383016515424195924304296470308595240305880571754814761567919203960273312406741117004731905398169914452513782802158757706366296927156025013695566288138861424220919057701841443974621606120861236269271074150434218638930488670096388605860135893196904360183021182132480251860676558520401853093248812145108537426148904765231075231149639309816547390056149943723642860909729735255912400433644919173752872430448629586851824172242649498444790701028746961730225262761488558438809192863025506490587359791747092158973903032290020628465091142761337085165758127111516223501712480964448742069219042549086676309570873607270405215099850951163583349378718280389388636091908512059842702822632044495147983669724771101395944840059696196464836893528625976392529668750275659087941491945686944101534780750447902716059916318926305266013993305298675781066289902948310259811373454084280099266042928471257440284527597278319148506277252088203306766068112696735878837378315081424822138805874316216342210123419810054939337233683522718206865357423359607277078405037567726004465086353623730901676836551572930842506685936606006428397321449371673909803349432003672051920894115485929358342315591303681804315557295020157009970765790913527520015329088557698822314617467377221982106954662485184176166701947464710834626771884081813420302896277581736412272383572118163603303578871145313596974990370403747599475681003409559795600026771624819687014826812055591049651260245569431910233546200411629868782483916100316498987688134991719600949839571348615565230334526998237009903673537091825478085581887303522059476255735635533555364115188946896950798091803666426527773434193939942138781620768307873712853728930997770876388904302763783314994641628762560953474688858649285766039834988568014831105103212023371601392472942364869136077232927170419730889765631172620702847309035982309916267936867540273285878987602067368891767174047935334187571425412866809411293690994756279845832384214408284588415426477811608643262220228839188543180440579462392680161028557390226098515392401966500257900909778384525702801236756553673903641815006054609073057830907022950499369639299671717520679669345068897516546556383919198455683772942500391941296740657297960897337951756017574446160809527319587696710097996642719607848162390998745774646934578298665706113025182082277018068028756039025717836640952215424634189073115335686564240452202558897832959913426572179406012651124977124091368460001141189083502726382414217887420871410316057781955505412398768342294865679067891061561745348000050993362691064208313348823760197549942652861968020889648060667504551628076317893751332153718093996559241126878662041156334935624487168570066823129303417321363739809369321985933356156197641148244716912686485417444313284852837184079108236489536219127816040528487287935808866483296774705303781465348472027532113273877369330993194691124402089256131218442881555008710308562072012613837310553853358240039191511596827000787969605366457108953181407531329725604706492268472709894496925461924945588727061610632763190036072009530135172151414462272024852882079105515586291735386122179698448786647982962132036606649260546970483230856351537517701137169234465432784804415295363395252688709037168144431686909188249532522539554475702863506280389742168213317342696983595191754833325149561895081213703695745347036181294017761900928929671919068941563575959738030519982400878571409892220150433893694118342819506515940762859971518837594099964883757984019011064884482766093827027671260475346027794922937154672650730096066305838125292400706648701268412528198062802638313168957620082735973056057583637224728428260058678278620189844866722923958710386394747695418447357894714674241406911781563326744459518393254383203841865493260280843858884083786683378644502603783064876562625248642657075285913559780166145930542393390251301080432024302694518778364263775093249123169641298421108220310506420600843556712732636411884511522366118756894473248527588056991614747429247705580816686950202302411990187022223003078306519023905727885396345966647661005380133571123303607753298121739995982818127417122988472759196580167318358916332825457857128655897341203570977722891644466694536670928021739654619642094970889110690690453402756430689824375634104311463055465229659055655964950800134848784845896592470584947002892204174689817284471000714521995131029661699299078977928718962836330643912005162954168685566037761812413636879657693708921506191254212958089808412926677110448061259347253340182256323865261727051896551042609484322448705979336672883801187997215529924568854379400246389423897013312191857660126991579607547086886894147446555953185947741327848367570597383475754079256583339600177222293713679998767658824122175955472959647681291262838780254455468124011894151967090014942502363243829330954815822098320743999737884861212218499747376041854659671810541310443537812370679211498994500511932017548708487482879473707236749302432707221569414609206887524915917744200603870433915449793822861539733827863676448316091500943278866897136167067483574064069690168852039949536716183919574383208958897100181804554278333455426539760838993861245429959059212042626895260022919334974347802853230623734731172521626518798597371038917810741027402314921071790560761392664375356248619004727059123460820371050243685597060745257653145417712760466916331729806120266667775841746796247065068278139398347559749268444286809531169234039095747030200296492885955258586713863225509918565579055946183620805200593695413427571789062772366242281743486481017899092666589711055319449625921811423760525690254563254151595157719709483826703741837887401140071106061711631667232909120232300863614250634734339293063870693356207694200771837030091230221631515808260358121897241395001524247506458135707967882800549288053405177710499468163877943181310242958935505868920845335664886448977761203309920492581860534545783547183330730567120267622987273418832427384798004849050400653394523972955211081127215874525302402021164955744243189341205991475142658691862878919315819582570712802574444444976969563345513947574337922940676704304725963817611594422522889282820877296095884414756777218392637895498693309613757215982065662082863021614677854336568820199607252724828265958804233769765130714157335094900636860935077779068491966525139722078874875925403272703331633120980001785065212845598752193857638560585470107122845520149804077926899539880593347327920837249607914550795110591910255973418042477146473514142779231199701860677804316629037250835613302804436571551108778593669527677820992819436678655216550975981207515715331213731032500429481149382575826851166117695726178978705673507182095091234089032099221575848911111431135030256836147219366123586990715185646321526046279223880333311731398347326744510485823007973670152260409039998385122617288884281506979254645506195983569312975088171114485334916890984665933603414425437092295582115542265082647514349445112667569263682319435179996906314236113243217540203100901377568026529705768859819488055493628388290863694510591159371653130195574366453317428105708989830257862570537923348669998947378191573476487061902860078191821302797118752125633203520577461118824329431778877498097473363170916550226035213206822881632351220879915375993261493444855019312531342016470741180074176853854421954542001194619042124406770813021780381157819404513113940192023533669804918816250459224776114127090613712532014734978674368966160828311834210496188749869780028963553124572854204776577225888261179966726540323063552922726287380677254983826387137976230964478435900018837275870900371588070755723428535559702706822826527492294457154884527416425918095590689161869399433225432434605451994116463581021641320351832954194881578438971369229591697631505979310072263288159972906972580810437995668483805705003474855506357195057365414500856615642238536056406783151049104024051248751039973949690999207289974083550075771523923258274763739902787549861408775603817294142169853431475298631448833299976639357358184805578129597507987583798414445698451249617616929993150097645296511222815982052606742136714587829893557308676435080709313558948638312963968405085587108331606564180622887882392866939018002180683513611833314230191963382546192425527767621635181403122015124853755267561674005886162627920064732626051456931238154650819287657903881788703163851341486979684248192826752854338638039103439565849514534123582235944700324677398891131250157923854513269733125419795188231776367762030296775167535879773099389271935376278371569527141927966510685331138697323681671895033157646760227791799495316499020270964831934683489804955671181931900243701208729462327087906092119462723005589244223729867433572974421219754031041914737051792654470166553712968134144815821752583234083937952721798717678597705759075586165420764925652234135142419273965495109098045598887162289705446945618467958677025516141295846408435361210972904023795890575474171326023104811132991991969136544790265483779020794164546910478666888491624717741294432078227708648372430950586712900638144268449410473629689338791705160540353973662671850634589203565455935366377429078235320548419730243404738361075033899097279141036914306134548317427817746453154753778494780902378083739667999836531120758624416477647526679568507510658487732262910185339067307822656679881881248251731554884606002608056945493554283121243086587484625698746309871710557312968770014997327396350818103498456495194381131344010190485193031180508403243385624221436643876533648269516747044273153496392069482548738983076948571548392189304380844905730090053159732996415339779007121097085865903336656327898090210149430221873497478379298944278111116645176162671873019872044325777999611541186188095830145119173035177397953580251985589724316503359750953485667159715077788244667820767070861839385958471829303321467255686305683060521371110301604077886629517202456557722555875588599940929460677422526601209898630102515074733685911440162292442802179351923989936020506273594845500640396331332143175453463049186593432698622176515551694725943179551778415405240650399462665364604772008551949761199874004191076099201357557043522351181409984799743127659267073482728399365741288552784923355764624989483521524812550444507232357029486404291899060309851053505974143260342669828024764034531830762597190186468385247379923068471420409277808092826195075373384158509865988348092008047762787817774004063341164356396617152106342294806007143896764717843197701284413870829566982331013622378944228963566725969112956283422534210114001933463898841087336065147732142075166037500654180529635818881342723802806116709778652176781324297774610460965350599236114505109985799880372522017615465738795232029372411440237902577015519326137155052803072361864974129238107870157736941802932334323959746811015503757925893228082534336393155351089181342331202548048053216311163389861742448076204645482798145275153083267627895214823760905514663560740688075243588283165404806947876416923620802850639206137452296851680005972983760541951062254776787784485803883673052067259949078107059220108307080380502589614862439527135076820816502669276585946667620236687186620869936186847417986276146482471371275683413350335838926649336124203777072182561237507744376358535000819108569134609793908463166542778957687251805259145412753621538842462538073161008200526307916156322453028382481858221138982258961988581512796131387505522500419818703933226209759576660017494810168431589965993297673207385855789275693556470698289856479084204223474896380316610931816474238409038078640793394083111580156536313954678210200071788330248695975655959176903491736580366864179403054508304387304311438963088955162800922256960499029689816747404130143354170206650803746873180252343564187732216755251842410542427472941878920283335223716524333238993518676481904063552569884498576353029670030824887037255190902962671394176192009236155075659544669827276191284957853987846985634795992793610637621745032051687308465586867473877661082285217472301268497869730648415539273455669551932695689261087106442014936758897704971303563317723122998347910033697602747570566656666143753178616172500991121522480911378526123187996604666335469199900557942006101985657598154040350160479272863141636788997534976935768934874769915519198148634989545377350925237846801279938680736350736550487560787190561179597775538903241579825865373339002366597902615142851331910408454480776939598124792643119028522859545918246376312282042618773018290926569984575890441016711992667934131684846032944144290383091953711244721874419021602058968859665130594961870205029743779324964075123033305007420406806868565323420165554116941769534925874990604441290291801506224470051661452150879804404586729104818139631979231658446195593553931380576339304935990361417561451347197550539205821867979978356633677485795495678472129685716129167518600996253742174744929916864179760360872179375613517645485723193542488086694133595601002075612673990247857398777635500079143883665164842154064272046886310909542629205810849860371954407003315268566802411141177199164352697430020549653552479163824550529525236794365804429948441206821937210162643355148767835923033227722258124242904298962257512523955430078509759321068478102707960428890316618651318181435560179971738233831574542402848801789152736125960460415094777616712457693217216218657993011601352226145701249820401011206823924790460476937144670963520010530110134926882654195322679898988936757120284491547162942246723174460806683045280061428900649791270572135719114135598546528794351314678475564895184921951932566908879552407970206635170235763161956028671412013859466171848063675511194272447683927251765142137932495924253307121770325894909868924089826222357328168442899302470214213143104875564492820333801413783526186372958025421687809909813332513611527994440543770860817913662134980541079192832614815526499047461936565699211074590032772612341734027390542857035229496068704623870763308832374034298629845003594670301423870886345876238167898918020139216050228832043528337962010693633955862668508371939706805624333559205254636412189945752588997945261584850661284481155345756880149086596307757971582922517933762986707765872677599269487881061918126055403460246559153400575672225912360397204077730802281351510615389279834189091202502323898809509014515263050111764550721128860836896295438128272401300420881488809771585991190500476706701277250589197952563929891726957127356569425621950119804214158309595620090591192433039461284004375251711673218160327838068639860274576732643582088861279974269069603209126571227946251943560332359769083819770566657396024340368306451722795881382792931712629421713079747238162551403816297831125948912899409495228206368312600829807810693768092130511647442761452730763514411728463713836400405396046797285885963035180029897776619549759059995158083595639548077842487139549080282303369899234376088890350181660856239386288923812908408154516724380901531223504244112495481639006845033083437435301068693498813375125583713552503995624816324412535745748120535305649066373613293757107736844076058751124856866312044455520557456839684840690973169353918589580585350313421655557686992486690913414043436895068943076806052135754850094648018236681372989825094895396153915400485439705676516573162303670679818811413727261221136604054557874200052065373521564882448323484337685815538039460078692186581817349964487937054792649592947588505299005237563178763319695545875812742622404379610290477404677684792757460068866142426395489931974627238335054783012581455809119356084256420673148012789847899359523529039605452501568935452773764267357476782639832269281617769463585321051027391943370471712788758476098193823966650120518383406486054586579152944108139903662767100662003795942330553747253218299222560021571270534322525681135092744670685408520373069925013709085873554155389766990263278813618748163586215437463307438284815953335423355331288571344293018605216313002161658223477680509418481381918174016419816111095201354894952032184926572604945012471711794537906060240673143501926674339446157741201811183322314077975123592388512815082857949030175013066868024825922125477139820212249514019125035627214944054689628261634919751987633731756128523829121106106147485402761366774262805416877367443647488659198593519377790455023661249568548432839900017917919820729357126284607636058249042790687044862006616182923640299000776388949921262969608959682173282577646261306592490066992866346883260419896157601166126896125355469056486330896994432228370833677943288942247766718530541820413713102718707940756167205766184849079199983491888578741426006771403543238404762241878974440239502561199514603489372129688711764426335751079962841461968267661427269724029565977297398603444703940680700261785251372895363943678729864528136629236986774198660638954586442202069299001018151784715222200387974835989025484733163534185105459764617894651990308006050982326148943144012019697526503077727343590361960008478453600552588785269555098625178732228037174865770898218289433564116417063514642175437425698928622418260961035387390637705220100941195310544093157621209499102682892718175358711606557271858917930040717820682038252603003380393391982282285004910697114310584667023131195828264510065344356794351468046492071688554929685661469394101792044183187681204637664942013665787973263015227181885423155701822247331388196969525536716488823203694467221569802796047849489090006047581146714291880665528502490036644073208580053751432360671682479565395709412308975414927348475431085890078976665532365780951939151602458622984648436192839927926732467943549571099160186973930274799718494269373232216800889900037475806843751027322881312222876721021657857518916160739936776236370299200048010779371720774966265232274632277590368111834688694526609833273000097888051922876388529996217769470704275414302764745310877268911073782231370730249393880478521471571653593629980212206314475607216852301084469364032690871955268757361485438351245728623535382522246706650511710519289494857307394821223845497832448856983129856315585132878075266489167515039703578757138329816709369392693898370926198930013372923069854187317018691810795723120373408485121794413293769703905413522444385600245354308618137767174510330547118354801276568387259983362487395694686379862957892284975506893616131581846826150266544526809311103873098563483443832320218400834069106760581038033879366564281104041090362670184102132540340375663328144294490201336742922573630078377523560457199811207246223348416814673253298373303866888792787596088349949590953978505450498163505796512906600974042084320519865519436835309671295830769800166650574338887544196416505778864655723925984992855742834848762917773586504907274946361649985214065150910076914794603436192450682685757001742560184739732514668249706455790175763483308064481404256253870459507912963494734920146947098467933305416087044584248366972199539825275708743355309392721917732418834014870790809728519882934329725596684808654674670102243484192700833551108184331720571726117439533923461188735846948641551211942405651491493955204324771390544194473757188108554329524445341658044710710862688765134146440854581506674881176652159260657420347721397701970513904667251324396876789734536301140877230581795567207336607037628680044776482112614384888148614973340497860472611884763024206427838752673009856892326985470330117487438029671616666113926167198318883026616505636861707087440048158202532537487010040114893539804113483175224072226816799517849198666927456788254126955790499480870688985170431016242531823541855837491415940127243992025381829265495555797458890232908335188438120495796249465085178005321516695076714853944231812815896004673243599281455528444478817139235063585776580468825357157172835761583133059880729578646028595636809427264564861146046783975413211425549339924780240440408660749618625579303499860005939851317679116512987064936663329329102841028108647421875620290767940438148055741655594698225641150345403539067513981832896009507730627917168226976801923862801540425906878745354036867853301396081872014476498423977370076539470331729816849761892950050155965411163835964747535776508396542937254310224357050465057159353941686004730585148064619136913872414830713335611238913165360998210493839749789459320285759637127373712816442381815063368515421827606292865576133760886672584447889593262967976269972397778273428742268864712308950484863005541673731559966080703880975499734992394495556131795726765791178022997892261351032864425432321444428311108275101676932441690687449386945013770467842645022200936039128111149741233957919144300009634303126520625945213984742328429049259465508082611484244957651476155606429914976042664872015899272965279193769387483567975714951032524201938349063010044297112815961069535993978713085067584101079927112004743849448207400718603711370838751687153750526910600011101436630127255599255370688993794483857317965957951392090908859133520526195892927507882885280351965656727277743360786469762396266554318560079936885630790141409004739073778700489062870247606270632791598645585945480552131051479378837182310297906616763434163446355452054559227015262866994311219342141465051545928743060853717588232240423097057769466266003086539362894172813746783846186346054236556998554076527043901870023447061983043838567775485565410892924595157505954640445655576896155084145322012648503244130302599262877875486723818096801839775905422623093826260763961908096501338180963753873180139735883367547060406374595000755697576378981646122346536370416908759764575951634414266338923230463819116447484105415101847923283145590974922689317858400081310386259147744277898492376020705379126815543374601867117651563106013384210276781732067248312372688179206240902640750601404568260520700243945083488410426175031599152521431037136021775121069700448382376914710252412813653093220127066606144801585039123735310975082798917455708841650679217178762675207175555062824457982448952785051823437182356606207664527580547013441687262238977397230185236328301124747982534696104522181302667350501142030619133168524440745438050193096652516714544271514831455264380176899251136469108752630950974004357069199339304179517849758434400413967131846425716579129404559190586433337212803698332011141683577443332571396845296569214935875112105086638720149131050153453106229021521177243568951125793274496621925856710762006318328496493429588627672120843981102871382584477031315451186561875355130036687998469358021103371057630287917506139943730192310883831768400957534471652695323185037798099336405485596643671330118193743464136462865091040844992458473402473290045033350431524410555702849164318253139601026880171628280848200563795289819480713303545217297831156328261132385332715084876879597867790392076552144097455350343221911865662140686064314508352313710031363867591345351415400899339334401047389240489063818209041565872027962672738013322828516967618412073125064918858834096118632585478059769386392212866122476220197790052777040929567751419309460595751125087672348142232369820049041734339014012551559616676125193655723767536664601620285966752504352235011612905294603167709491006220279306192960822500007993921713611301879391675961815869765956195384632628979822916626760964618925105470675653363659519257425214724664688562774959329537466817439073699174500955955591330550344783987103076974604537562733310549795041100536988913082210049077516106455914267723896742499451828830576477954016960605635994626362977141527626852668946887678139257544846783513792491706087906217950980530622533812744445834556497387081239471121291909720252310148183059653167905650903336822911705188023715020609295155682054051790705858901596844312469089691521460843783190101558031955197372824419660070377285793999915741589732834957714604776946960380674500692918990492993021748882193088184873189298083841083505033258330794718940884731538755801370970673513810230104086665034734004818651331840774286974649569618921285211006490027523163119652570100706509837240310100040106396275912064911386137123964208034151257102470636229205426051116494024454318290372068450893721553266123824457907584368913371313408893255483125151195508798061914646567619110618140992130053492195895313603188374752250524399656527550444250130853329343640591296032332818915375419177958132900022904759911737934216344853663034552169652195991657455125105328092461249706999576677670586070326259183089659655619604310226506911511601513910673561812287571932583790941939064914048168738272980128719547044088286513281968530150876802624308820931815526130849167053959765221131701119187449894097228273669488664193820545663015857226212739432448959075544313870567380917577960262836667561904478872448530402642069856018943202410318629821012126718862937032845321334626376903567856970465252951741058961785806283663363758601484249468014274424321574055849006080030209967351322451236855282112159797578052444501871012395762980902454991716017614533038980181777225736425627343090975296011468613681975985223922777134674083261933570984570195680385342924768449880415364943237078727242090687319471656156824122044916908732333378333809330646742860348419285681437428520259167903617471319155387322036797027811112802854857778066286842298684486223867628219845288084988355486149734918026499889711287196898821655623821771175529476991717016109442098346326406732859472502405587689125700720148598280378832897551164442159803489555604429453822603416750953063808756771500209867726547639495492541361999750407878255240953460960177315449298949407064447355749852519906900958620914581296625760024142070554867297899203416383327082463180895387336185961397090636687504854822894170470102466682619291470099215007705396197651107660599073062303738006776994510017226329876468165319259541903103390031634669627799421516855882210162843691714089260544900254440751976118989538183312668002324102320602901461739622589139970305840863853455716198975909758465625501239464240039994128604482502063499337989104148330415522851388724125998601201482205577665720404942970033682771799074458681854941499881711611775618300447189489127285477436201081845524065722315112420045186411247185896425505422075219311917560097349537813506324670245163302236786830768694022787212087151610134161491980051764637009172947362296069759254173506099440087140641121100460675983819706792195926123284374632146105644568165680506280483509949747966318636812899530981511904342530874146633559732623153036865156181513549838271180915473728814391924309517446954885945549426770030153182924435258855030070234381179693672959931909807556902846784772101932973898929437183650793763350318051094910295890622751158041669410993256585706716226230358615366605938253058028589888755077437763529873157461486725383456071348704033763192835070677285536469647081420273563968411680536456458219492765868194181071664158438992032756448674420901223333737541101372357536127151880281250040429337766188937883890722217246983101000397013908164848563197901845998939031639707142921612290887090233297715502819661810996538301957882469437570292644627421732146118621472534415855656079563529639691545127485952247241767144766191567087592536157573489825908743812207664892105417913120658492068166429862014807793562340776037065552207978245463867581703025698792125985041167376372025814674014815829860890753847291200671272659018838440911075494650549799663376869922203946184050642502400499758921331885273915081335276753415152398841845681512978005709150182477926077546362248081918209482895292870139476044210520205002328099095523972859649191521045453261527106345909325363613138539959334543475486965033989058574039387141387163275405126069959968113874401347344776263091212574390592015943479245059951498717502997092251042910131716276905519604454991370933496063207374932251293028775807360053812825593323969373765848514206369791939451736795971632319288102212232997606712708176169900461034801378423206222944279163400823556297388370819100858636412533640129295669881200395305160879171570215569272975977526022006216197451707821640227847737137523284854388430808849875873900635522803828606438400587216163579581848213875859818267301938833500265409814752682865012818979397026016147654123254464028894093846333810533112465693785181988846313958761221621592151164276824802260019763735054688557663491204651907146315644139199476995435797311228424787827229891277220236439803036563214664222418868208122925921409730008982329798593197980991575526140454982401904135828852750670433610217583146669484308903816561967483310364718907702075448397979156737815305697120411996270690057565969012051823889057120337025640188010337696788150638953483105468178879802306258059943708198410434161827790848641898567497216627239665104129118989361389438441592629798618150199486664998514780273882030929329468913585413462372193508948368101969054611926392882275811406365563493972802820439105434602649230788533429133180398995328315803627577728310279658210483413673524286710250122048348465745616725596467102480648644520335245293765356530734613245044952924669167084982777240288660560535235194921124129929274351261519218415721312695915492254582006377828749655758775207235273355563921644614509778688985173155547048355142271190314816482077389229129641805001698181440563235902440794884379269557799970279859912588111934909074330887322467355000557123462721602548701527779096227442513477639803084078404396879293586809790290108382236935022846011987827047784404134166194589015115914321333127367325757836049177831274203897796094170239253691998775378638448067443398400120956316000240987707335136014424028403588763981545267536045205861539681493948631132627160692015626809371595576502906444069178085663892740755537056794778954369821795508525806689572313902420193080506285801145605786738288467512163575139308746985651830052097118413979060732805653935087080766243675793373361098161168632025809495578692130188911353929618253356008562351025169105266619670528592509185209819976366414046253141545777231126054573471222852876423523686472179098506250455807114921500814507324722775045986574683860802827455986051520287091655095603282109067596544996335055176281247257498147712217367464711581878904028512008094141873926464712227768275445595038510801811516154038326677051626146361580807713317154399200526295951308776040566682804499312817972293211934114739570057239847122161240471529017901998002390362745890039114321837750979446534306605310703187551811235731311074847299136907285104040821304381344562284216148533276932240972656116177091863165032874958673589065342104688850564727261132389455937374123507755759957436966862546098282277804616412887477451229499257703552515547115780945023798544832750517700744684343698589910695024378706087956075908005329147669870282519117117240058611719072070691040982734232734522051787651946360215002022055194729092515258199821807394222038611882455504539984533383104937143655585758521124814806212393824999339747591772538947858071464322670387622014017513684058701001725364670571886703896422708123765444403051189388985969930252585515726141684280279240443885384013018202292365501837687644859590363190422985807053330312110430473811860537420421265222952819721434774013048279219377738547176391189776558323449895837487070650185337856453846538918812240719653965717906456761455631776923254477991870485699139043872229387091028802451592393852313510044555576423486964439787499732433602743789500933987204679765870257776856890000700334524480951784960809897413136522637772264220434250104124377798029944277407919103061164196198801980995753974008967528596174881596386233426545293232681267327790508035687557343190244352122896331666343330932258588520025842373470354120168985494981205009991659808189716972453680168895219215620723125318278978126534913128905429947440116154665360129850123179918004403204556718545094755668681087344491399322140132989230926803570936467885862653277157258334011793137861240886693936173371756497116784949409872926743547185455408927321444634096040414418543313126148337656099113932428719495842547011256897562340085605369011724773404320348884271349221340268471835225813239944342458492800269246248077353973014228301500160159726157131323818794492236943201185618991602560494876145307590780198999418663902771154605884243610417110649493544417702254210583275162745098491788964759547964996002786593544829776721720749126138521228366208597007239290755023138032227433651195630478181269962215061001756528971487788363464900233405937728527008417555107509329986560404221118291107722705070828619678670748201325077303057494799068253528774613723524396951412247769350201582555055200216109483901952156907844277023318668303298604568613826881742593773696732163345904072784775505018575739323617483498072327212378002994770167335608772946604503723870619010094609005891760985012497464723251166817234404631244178553880686935182083568166203308748684510043257124556081367637262257819505401568014287090135206428569719046210909075462232724007187829540029433017194635322636751827781514760465827497211492341933868836483905491552988763374635741030965340692035894343287390532042367287218841442010321707847812739992056597024315049751618631250846085236125918365967499095217914527220259515856073058057115236269041661780978765958482495121868509372399057455604318034198698162249338352887742124268683217186214214882634472386382994296269326828874150863872892101908692933392849214166463643250822473429725559288218144545482153660060154100321972684539123478699890794509053449595364350995947467297803175458169858464837503180750180235335889952145936832898101969389533392756057238774196619249035644564000957530916453234576776277775749371309530911429972260190632573704160215745355569297677930570504816047296582341717913299551548544998488335646016705590250264463601731807637166521056019830616418813337014439594872851724600930855290196537626932991195768876338330561384099962906515040517570403093299945568048077707847879928820971948062165906863498745278705090144665934061735992174781950780936501539738629591997393110657086351631108420831245469079087086447361912741429401458546929055214133521992579946640151525670498425861571880370397746692195570566182455955433880462323780817159931738479074158403377239918442188001549965431999127735610629707910273148196352881157782113862125959967683962948638066894026954977360852031782111340454751494232336026206522993077371818233711766397795834500706971370478408076194964444207425943090354920844524282094534529314134156626748493663638484839514472828975778599558249071527944013221529128269393758531628237435089698851540653989380751697068823364759104013395085294277632002254682357698145365555502464567826302791944709929193286729865755387438766439588171428163554946521811517231515469332091748412283199956538722583732637361633180756725502145063539612021931292121908555976491921843121426175090623755646155918898108957267636595181446794027843393142650571568184125648606876334029668930758123741692571331432628857437632292943616967540860657347007486981271985366183799483426732315898868808575403217541627800927069504993582955041858545674586003803791595102292967352216731126313995758737008660662943803392016490336457623867173238650570717863956923350112502354099090290493673089697503111219522025328218829359347799902919680640094928301226380004461471863593085769311852227538575787468710868778872436774085994117536610037618742545665917124000602851023318762822311158927745571096780386125274176041949196051629483940256962502431093387092908823074266203346210881168949210909519175787609210352764960308480734469720857749956786076204112077053441254149568680069599790962624821546488341330580168228894823408070718364942587009761197105942604112610030222762792496892421463694299527554490084170602324163328536472562923714572057886905362685329853048482914659178438659898695275369635688459748091500812139622527226628172933050164680014768460066645388069896384908779833656999738884340007016780204649811822254046616523825043985024894606060373568713680673537352675580361604301131378467559729881113562593286357650705044371905854248307323467223499486287137770409075430674554363693287732836340338373604515371024838101355344331064976132879148864349255699961602401249324597167327733822425796597037741647062839071624404833278135214133095487631034746579851161922452204652272059632919549920385064072190999858906095122385503149461485631354278341989763389280602051152662192360006499362663631710579416744551097477916225289958118830809115275184920280628407284169160381277560204570323756315460118722391828672517712635876063911772080012497779796718001721081480002467045547715185820537384954763846121864179678318056165394924344773497410030821959392917085913195073618234727461370925552468753922497703760402167327664020153918087396924506772150342454817973419679018204158614180059263205307719810087679409987376410798341730882089340196722432678426020849321970640669068591735006937399481715444570277583171686766534936988785095545519343980513483250504748804638079335449261747473846519087765526244096516180220902682043241339999185243434253762130445590442937651807484938716006806187999127543936975696139951473176024197137755730329250940449971298464019009603805650261189409798646280848918913338877919873592065913238836328932486285354528393645339841105600931900666496304058403540264768080240305147224146674156724703134770218075977924756480527449578563493433042003448592793411368765251965920905845644027877523033187348712876818502097578591619397011099165467075792400161560392769855611679197125238506376702883312917372632375503504029285212296918971033148841351410410670287751540398944264703374780230708752689494421438472994300435477092969205494923108482921890374406662023269562839352342845828794796245709125210863980974691490459994691114026193183153830624153198389409699571659543510652466376813805292751889702023237326659024683823001648483640804913667251782177646295380603435334865597141967747437037203341063054560717411698304715723933159075489070200766438351305551864317934887992860488925477169159946253671599605404028878544424182408328009166915257228521425916712850238764356198769083124650858886493630695027467223642918294686847530086795036353219015243508240835942039157686840969165039939452211267237145988204254673349229831225239860549619280454775805897208186441354342164212990306850566936860570987066713306681328269469852123558555009181882469787039632919828805969042325720853064681380980833699345707315409128661586607414674408483054833173865821425697652887631181869956734655118768970158923270170107624613890616546159141142941706990963164654638472706656885691141848688397497769170492201354852268492941953767465854634107876616741545747622092304216719116110325155305916997499819359583098929301476888476619852919889587724897510680439661101937250935089249613401309402267174261919127558330263235372490525460004611097949455205346471099150038821566512455136281530589987950038345800026788770302471254821761129191882514277546152109196679744738154732615031673708052146619953447549425777265825583091942722447237146955932106983275056063670761913566892132612119015835302698925099747291375096659433012669535614001073762285592355295839070151096677989716322247023820767067800907051108500885335196655632117404051706022399309155657613967679296158850756737241661708521909937887624670551191760291638399069572586607070449696089002935408286327972512736482517097803364555789467609202744442095061975099535825722204965077693142727878012248031615886948157970369629132351352357022789398299613517859924779511683172571280881492056797777909200589984695989516890943610199346559496178234030783694137474803963993760679438356961768575944177322535468514437749920756498569087790690545636023524045978950183135946429812206843093751192793647167556224439802693532722463831550678520348371944699820656173699221381296550005470091417277836053211829634950163694041767085665339380428679170876724752417752919624877997580801339887747514767218193278116743121272342713414882202516661424425433304634955460256462838692816918355747706738075211747330157283508949047611578717044168913182819122139548777192645259278781795627189473166743946048457783310279950378350585962874542285092262689916554057201271510017097142786534003629281797667682402387544798856199889193406682521739293511160634145524888173445103501143384180390363726214989284110183428460123514201121425690853354622315528135462188407375763885404315098422606600000267349886123523763256727821453902011125388223682789707691676800506113882446164551880961740527430147818952880226378303606529840196795904526503219595830344246137363645821738229510916412074123009331315354056097384506929144488791443415190693801885993228115653215437154905309742526539726944799906402029746656890991154598117149073974750789305942349632567955609589380852334655075606262505773651426031821512176872248367130365757496879530188707567036493338944405185922603685124118202143024472300290597701338379590367260909858683039412711364150372142114488143918386400223969974788870978383906275048537409917948365534227484769642543988200562510032872423468293091484310401286968032439608705287421127447904657631744428197696113876742599719796684175285697368563532865056174307518663150611794871443608205867949358384840349229829252979951474488775122168435573445038166014008766782462075197098661908891318963572403457136015273273917027576685143872738386783097438778089301708395173825343284994837685063363574012501424403831145932514937328362732179478370031844476647234693094683874823787796119993544269371018130584572432893343068602787325389891770814187323758174350632308564191226164192162974162844875187829723818270904176740801047786041281126378878093890810831226071837367125897400190124197829613401310520508999219452478195195084137518989756071742739161407027508413817423989404798094394206081648821979370978906737566012931250237338048364508749154737413857804582005147188960842873948788062103726124636990501121875643503876410387055163818447362004042767830247200718660841538176529428885309935687898321129657003228000003408291305466088957692469746285912819048990184391361256510677689039302193240331199062724455882663140138906366834899177625051618197570682189763499450678181870032297107545032060998668662620307508249048778108949551053649711700200899908252796881865153003052555096981110295133936406026405599253707652325379279677288274068083629042454452626648535184894487443824140201607228808973764160280556277944824286975194288323345580386769939342714189624439615432324620482886707152313924255940044880937568045007250844943413523666807659409635694617645185315589911010900036035027313041020028032696133995292952700002851245837827213662756760726004994760766570563526835492150213498001355493768043386194445256200026751374374375383908055716636240735731499944505499335285330306588217751825856491135094343093936484435502045080086787306786184698878567255763696596435196172175922810945736557803925478289232392086468441469484710051976222503482789298736247862151593895153359033324505221475201930912777344535203972828381081566152155849373084672381585191753130457426029310108365491185450304772578144575752371393554938161578288483895876405236561860543226926741228329187590061033907607757492777300685780995591093726236404836024112792588228085522059587736451441666522223961819162347045711300977238387073115888706432069189227806486943767846345806985045860562747904778167297610689165326006975223561818157634707309822540321126994473967505852662366636701596030555662319949235362916160697988764648462859968055689331954367693883756861761102890526841497181560461521712721153061184492968435473209536137749040041459794983714400636580888885374219125737724784174846296445293971698246588615901336479306777174907734505735361756043077225526188249506368541206720412953259301997900880267054876590252126535390902594037230405306663833328939965269392369029549067434658118611977887502355832533112252986958095356374366040591981380257831145428716538569952520189516427583146527484236915127290211384522233193363276792064939360847722409172465414721935647893444868489523725677510545325434502664901880928724238546063323582815835429657448794468174222926545884447890816072556809007986235030974214455971491804975571783505929177144463239441376286767723252416787848273661452310390780835247047096418526448370990019232990629267741612228688590360752197890149179798510138768189281661236937401891126251693446035394474774055348281744073995561859547205152001762408930661220778435175313658850543640750609491185205490986997319388763383362278635340514870270381328225434008185018552476359876328657319890274919499128702180263753862341606528545506518344023381706329764463114670395958536153994112861658402405537055005092328406523672561121652748517719582606799023657049145877146012393568496888175702934161258773617713906164714112184164095649935379269250412018625963269851029082057961045952994449202369426702494474088929715869751068750754382326083958970490900299907890019417712615688184551783773563468006649797037312130360457129104371832470527304953415363669313668109532165486787974288412963279353914884102585210891785491023890280155426309062993916394796014543657397664204679912553732563725829219292603167782224709029223191373143720662710784882660062839994229739473214655519381228794756289904895467542851777707773700131968416911634210247780452130354638626360676211535342188401564144384870157501070196646439046392747636725919588849642831731284529255651734666614231023694077410674480203235425669400578928787852661165901020277380949943728835156914828442658226681024843083556100975733820716383019913103619863328916554597367690897874055672965488550314070514599305934742719751680019278626811987209997469956918276982061579875000680388017171094876462695392053373752987391699802927062079694784313058200129131459333619199493714592054127699022520986003968920935825278858100176230715677824178092308494590893208566284109268194083948465359137644974427830635083171097185044462542797549050849360340170235328431026865361307168170891623481514810007401629939651145369682893377606912134901025075513470102458597309391862836331165783558122782221094665634972926729284215698804036254605288235722349406807698312173462713785277440251385810596940674717645395616460829771041776652451119198230489564084859081853373283495578080932063907676340980346609019754449396161670809757364749483375931895151430194663371856437662534068611591771417065255988610853318695701651237439806461149236892173147117240575729040433055908081946854593425692444230955582449135562933412057137948287348270633265335411808178196970716993112962298407063118721624802094783312290661759421058641023835161239740803670579337096515078334748045163957102506457267009331575251323428801060542080745863026611243709421840599073784392827498377293772483106912466886159099067995562008910381707900056147494869294666681432272078075206241405827187216661947911063211449014673252859910593940675178477395441737160692415623654915096874351920632241782596257094791586072595514947769177738938131020233447816346448558598143835344360681037296940745941836113089549462030411341082107564245482551093224251979489829644576789901184126922403583488430984796711223161081354630339524066055055463949899165045704371215408924000880135739011994367809182954434606049089302290651423442474262770929951406768970959011603916696430557900414637330379667167834266211424568051180633825883754422488128270433214714728905560158799333234997385490119683215383714424746649118231687539636893892258053824069486241423617988337730801347863816114607072092745351760446253727810211346367190642369528906996707446753164681991274331449133690936045955759922504747896100088201675994119045194000107584127817964167445121913718389031520605954923763457995579126208778652443997564714338202273530180569480626826239371426423170815750379612038671376162170153924733753240625322959400864568143373987315892014157569947959461097635255067997443953232133826021821650772308094668787687800177487906117512810146313952358377531107013838875086054822384987657818434348183592496928844545538303751188277317567702232576600980394051269461555509905700179966921192046546234414905523003631107538567738928953598088449931306582239506633902467552260836746108666650710127077264980426599096314939640450206746666404696800942345251276991274024299815026651345533542295605522008337172921492220593147228073561919202775135771317000048792487968597545000713371539018505297495887086858878757985299141389632823802309875724857304502358194374360479458229420133292886909653096767383149138935412463085006517399126310366866483957763100839731139605411640625026542954748296140773108801099763841449981439153278383407971590084624192502376751409542261655097765897490773072795470300570016378025852312354535812484332809410400144718574285322371048573499952572525563156727131600973691142753130321562770765156412418944410421904937771303594349453897625626718133739559269322350476772061134520441137378298977923649516377590227472313115378125288794901107659443514405236605970878359536106647256532300859639155976817520528822277690092692419716107662346688600734428893150893351845858418598366248924892579485814583003694577993143449824076720999102637675926763928670166632566741771793203441647059088834799650225062884334767270250573639834027417684640299289592826548436117042246534475869136442635132488379898076020229736106497329552558157375380840470979902226526208240598722000195761178671609383697942719254904053647435791545828650414568682470198232235808042680704949992412571730552087876266612767190028827967524229648336635836985484873597837642690505448686445753883436366936965846630765757587677183161721935126218067932696986622246313493487514737082590386489180171209427740845676169382707130115252410008593155785668800885434836936305869494812007257892325192012772933096914360285927924029900433003339185178283168526362607993372318086292135889902348809148238926685180985666816388028737210597554090098794033340682840780924030471433321255773743344203315274951545537536088830799449619772724951825392472915043654591731798892324520332877662078368421159543352085895949584214776886275001602262749505761594192475292679198893106975628184336645878882863797379514453324182689336221581214910206446339146159579431348756735197161918286428244070804447843233606450681884068414910264947155277804450236299275349165896883603617056351437938587633408715861660452634058201269034950074145646005938925187334889125188113124035981485555967307672004003571873385118011539364513027775282476195822146373796194748147541235407297927189148276339896335018728101709247920892387440795232390372057407840297720831383748015350871110209769016303659289159815229024385092674943717766968633331245950203234451684718176698839216607535464878807587607293306030778847308161787806425994271619636661477508169595500070089403700323918466143720774663511118760002421594126330714365927351098424522285083185376100574423096893108978667427974129174144185788088145321631002540435480576273389071746767820362593695468242195456456263553817988282847799663278559197222302622528980653348596846293256567304572777646644919263379232186944166157807539752721432954923568785267181308541476302659519574341477878704192720950524470607378091028347869129284223541576813824093036729829811361393314125210354180894532590399143710004163081397137607675104177802610508652221679289535255981294890987028204332396964805679494872213696717549326820281200840748062595663505878342742105600079513435562929927937511589830385469720702364383536656440960643327540251173888626360941402895607397813687211215895926196440541746116523334721185836871956237476224290458710874186216431250875696579823651689861665068187791077699249438311298019101289209869830065401618986297139177327208483922761311283941629127372068510735888075749958236104532223746285977007159638184473381710902652724436782341358841166331236100932546701185231093558478892230742698830721857851452609023093885496004562136877786488765317651728255029592390420497580449876856793938897072369734738723527077139481287010337089621413140270618581768933193806631160822940206829302041898836862820258287572353798304196640035857462707785474009183082725014587911184625408650546182030916982021941618073307842587215495713824155534634593962285186604350151982420108335361852658716754158615592609418135237676453115902450652840563246010623200050753828173444083844654412452516455484589113873314718716309314211039649334392629430135820006337790218305724619554043642689982971154106766265081145958878129092715021963029427945701659030516245586866847218005672218360572797117289764964449529481208110686694613284930442541112623935276579672295614947827246458847904287748846616621756012854063447550287099926676620744781440179698654856401158698340732192430100120221480610305320849160637359922606364244751368617032611331197214627943461638984518137046716911971185386115436322890747364242549550145015685561663624410700340741780078830498381322016811720901179102350606296554404648038217442569649461770081435596250078076931505643557776294616848096069402546826475167737570302407192752283830853442265371657160420672318524766096924878596632353598155277768843609479887805484683515751271329248619426823572827327304318418637232789664831348431492165171810224820486117042347505454788955994469237505464505122953002859335105696979003329447719925568839674095147782501592011655236178006325632024687476423649710608713948705807490314996183197228041316470958979453132665788973901435585406798151924268668729177792572827724291090820817741939126692865871404172046495533026378542467870658030060277388297140382558705046433231650531850204504894804745094033529796910976706454003057659816005113486969427342928149842258721780614508699956112343052063279607378813722766465016349599855785221575412321959222871184617495502456397826635700004405162340997380648440589913979181555069063074945240160043782465964724397595762711892910248399184906769096080298418580047478175586782172840706844063937299112363254678932639897690629917371458720689550154266732317684243851739849276312276229102433378016822360951966176155565510725780547204021588507124368177470889255487712756038155445552741439821813882158407201400724500390164138092412665986269979446041780305508875780746812143607395357742303610260766951063026378468361653131582619257181174132999840617669229845380932200983672437947592346356467547413884299868998194084764945077556104645874513394990996392621555933265433071749576230829225434706958836147603575896147967226023171620853011293805374335851068082530203695014405543773726997941162918819846673898601136316674437264260913815486466429645346329067165476983674726438561195396445135927022322204164207069544687444057993088874223971397310682436487649405069518738444426746242784175915091495465207497747153564523984200718855181270672248590032479327071527794220912717379592720250336944989747979507030174177327138341156706935515139884189399840838942505949393682821313996929095448175310044959727236537438231597552137607799771193572042876012177383416809979042396924797340733268432184529336999190091335680897616779885178784158281125957357493770124962210830343219297014487144574208922826212642088441898925376164435336891737564683012568885511030398648321343256750492616336784101825862547588869371743706641094304335767005387701479913441109360585890372955260021911452447351860764408588907473495393938078679601805541855551007690454523395508376636732343266921373222453457789958376621303109327431327665848602759612494139488775095866949895331837669845338098348952298438300532765128941561020384602737424054675454418577189757681991912058146174107961328288358224218448476230562817151317093574865138448933096686627853014127628389291315833600911625025938401666203742531130458874294459967703757462435697878911928892109020654543909769105438008933660841315624961569530056668799898693689001210288538539859167352226678429611173727307249719106016304879389528973235943802840300233800311761991288179619151443690381596191827769618379002990845485292629117423752643908482839540686628720008902720465477764203659817165427264270264118821074513097517489725523620211950575731608551558968063402549501559316930452972494550818470526046960689083094303990314678876595050337471153408797123340822670997856196304294694997595242732583903756239887656477824006936317060584384626727593060130166377366679546412296661745971093476759514442016461574011838094083456005960376900949333838032258051765006235434783665816210868279327040139908393646445635506237275720457949189509437971050565686918999579525929988506906795042988560323200357621383349182662114715507659648082383887780939331589196749536913991427165331388609480082251313003706607139427637747520137811128040799399414859543899667492232900606729728119554161470606546191875062338578463397079844247366138431020381906200147424793432132899325995619752481139025284680098663097080092714447588385352430266575038619440055759368922674547975279613539986048638674306891403980872977892347064402642134619769148582705565631176202753579818150443102305834196347314281445079423844799764796217158176992361507369446656544168362532056890457960288731776607535931167903897157594054737882471728971872490967809690579112501772828555432435917078903135686753983082327318381935593665252418685075787107057896632022254894515478287379274368354904023119844174028989427407891493975622679314352935717239360254389856906616645374923710911038608748699225854323449075611505143808604686301583750831450063976904838692250334514749058510734235838650932064310417174012650617403224364108246219364553118519636468865810807921845055333668655299457452935123245258344169855702233747779846849700278399816550532373226788467359362087026423075412673982803273323462311488288608456436478446118392371373686803696718855214915349043001039068605436157866895213717114641345447213675134503760889229977927420003798956470841363982985046621904661504917512072572598715073686309307952922408703014546362899798661808303982406181935901146186778049689044422314906782134360591605395519088316012271561189370172599723346410917565568845188617548146498543407653441010095948974657547744752520762219473811844903424722668051680154346655735853057791339786956911203859455416625816118614590885039627851719909950516681880314424552888256760032008504707603443005054618750400912608744577523877528032094428637462955477795389625357256538582489267508227224839674512880873152809738595756075787023693244627145939336863118902850400890291086928813869988828119607186538509627273011086552283772298943880231130662439301608067122550381382129173931368010049889064118555281828420686501652086355030579893754670808904511731322264471739676243243131412240733497290502296099151391470137871920767542668703934723613035402701896423559334664523794546467138537749199969651527642628756787858069085442548345934305501262657612051329552677629517446367276258327550948549282924171535246663237075321869004946699568501835280829896265025223376525595173845548389642848510456382147730089497936635292073585518637933259354173521096747817366455366779459879691451351394279647597661567033612446823777804664537712928409987418603072772041320184407251770992977016181231883639851740671809732806658228553536837726169206162744373598522725177367525734818966967003674067074146513136150570494266285123946737012533684104393467116178063284161409641375499894810073273459167865149118158757812690503512360276787181225566136519426301962094962950229802223879878129874733816651002308505045937056487107580943927798373202394755410641080133234539789818285870202911930184282340828826057710499190632066655055982332355213073426497245851934473119181092718304951652116090353616466011162555738611255125303469913269900611813428364947183126202587386678816245217112605962086412816772045029514049304551582366794275809769221677115283668750235911920440330835069672037426839682213954463796753920634280052984537851895123955352536072550350541546157280379559034394254463264955951662879519245305318726254392067661956232492549587028357983656160303630372699107723772744757701175209391108722958723020039276585442041498462757617617187304794340112398750572351954671706166235216394249314742395191970500039376766835297620978036244757506178657595211359888388451328365161747951817880932531680976110728027439964168158834574936168056171924742508943955089897324814486800398487441701257152746151443897257610525696035667583609689026017710602304065783492791887678731518660690005838655842124318880904020491185787620935085630802451349749475837609215013363288699669109702428888761204812356405521213971151555147828614535142612146604578905905158051743740232192640245662310194506069268332209796741516990708906341576214450263150944333623626957417632591482525411756052610436038274433094495889023731711679774882771982623714452804812831329892116506461180883907522541267780369792280568989987669286748406980386859988089445350786463910384389863178800725177599674487401102428944732396452664557218289421302459494139954983894652150486555355012125074743866481548140915856997611699747455969473240186084488258594481649052849757331807271164242260305141428739256321996032490837018167488288138424585431277137472972363605603033777899481150276883897611834577690880855502001570407231083235574609247120784905738708536422450328808695944054478670097071409556612832615748064657702615096816855441368915229047044742063172935805447289433159114101947586173892982067582224831250123923793159758034952253017221484329405385992407076141267634330866025747664571089032560145137719461446332884106030211808709152457728464576414336117463035260698341183486457906920750214326468991075079916488242182002518220127075848202059915683455488943008427367139718053441062106564416973207791815650594905402488471674403040585564819227648729309762860035350164908612473467950771484267991013781670266608970754750894842502426147405367623015761494114248580829318085631669511556063104324827242343786537824530258791859425258378745460882040022678427167924040474860332759970706930649738793063979301067966580817888187143668122903103487806396567117243350181493286997403649827049572419767204844760806701544322195818405003049031898029484458205771893275823494560180860339483270202560408376311793642355595322397244762192929469486655951243228540401540903718958719893378409394818227361681178598129339936896655351848452563464626452060286578327501133378394978197572936327255909355211145763794027505303117964011617519325420360740260072517606452747046578639767344079686238500065988978107092807541567243749159867629880154925701881848477530493810714484012848238260576307701124418808799303775058317138487918177573678342095225923271404539924083832213001737998864535076842041674855955879012510851062860646861004798567380586582830386334304280522635374182742126674748812683980536102206376609267313551054281016694173366971156936845723637608654276478938133210546631588000978966805514721396334154376138672430953124568351642162436052963498882865922118237719014003762552240315830080534722709940924847108295661497044752165522435059383611654865651856484325384074362947059250766272425205947957454651569688734321631430727460261002330159783989206410303823988496831877946993514867220352854215442071236038676490016439439908679337803946195027333947680699062566812290881767014493127802347679426592777496242642182966756187355929715592840825501530602552629046136075476457249159514996004010128641314830116204696638860981342311960802687555189430814431232281754036810968485842167530083693792213762304838528524256617348289921571046893878318269587272881930808547266400052032293236540346349637463304540159177777969185346875813497840814152316191592209303389939844912723279946814410999416981818009863284803725941600533636430166207672392013437634485097627479499376337068592664894618795224776924527949536677399592576780918905104201904522134761522556298454514346960255910299925539474419096765748846644017623068931126240588575175857172278358827016460147973874760478485208769045308590993243137076923582422652948265039567598814947510695345976345099481596651067835149821937071567341656000351894704501753373227432368690930640326856886197142529917635366987378706256111828662904317568295122508640157803334963710138687491631805989771777960743630682533512670991096857075225703976219400243075734741952321002999905947966278626105401708966132704566146087642456563734900700069827628438395736420412842987471794260639084947018098430365288996146168023504319610358141609540504459497397207496033086240718787854427217738021010635890936008370086175725498193789042292139463013697456226163023287590776343015170398108392424234112153432498602304540961579364954965391197185600178912119772116237981045110595978471322623211703995179690635878616585399879764303311229084708419946750138817726739197928573634610352105597103125874772193142114206823609029450885005993331205738691863147825519583247976657877409644038266074197232197179397419231321537034252977303008968860032467533321472825962816100350125652824104422388292304031298898003219323653768411846343835395001720796925239024206939993703412449674175362465470652390686543353381504679167346060397576467923420064989146092260564964508777120947851719649644722379335689687024371573526860551307657848476198370390355025650966018850889493135111295171642041052734539802313086459430014699195958006182729583745056945197932605928768539628906909365273949854544854803714622810315242703581137821693415645125217209559069625459247896076339960862525497498666441840509555706243806575163101203708618240005660459576842197816072799237553949810577269761691742801707793952271883853496306382762491849305411798191816619526539656472733349519274839507143499954576192259901963755762316703257907062184865751295905281414954478460803803799129633639984402763443001816595529965654007486439705995456662207960567460513917649139951130468960329441359109437693543453265346941782787118758545949269293199891782873407960929861891203217027077379271275533588435723091622470518801889880668260527696945806835693944563046387747138945842598539362179801493904857924595159220464079887804784869203450767116791667706401116152270624866362419724255059864255052743777486966937298299530879575012254735573090418788608222851921581141307304798346206450313365361394432390975563080513934969364333100034369153396582199352764943088546855673174805573644290789919096144443941451686136160547188169627063092602090317641258354052997983263045244956933496683836167180043887941885990657778619488268927878728918204910763673364437661461581121138939950875253039363474743917642367311203352271769391608033625303930111508295170167632688449027821932445746628678408814324183509923427646557526442638529002892108184335322556698497429803929847542101176217777804188156198367172646151531446286670281820641307860505060248337335125167058690760921384517337073793261810988042067880510382356564221349871879299228434466251673807674143869381053391820796125789122083820422934000197851379536421206994721896148429319789480336934612569230218979171457307520524417681036367897224636159144182594597554464509631939471142521540538828610047976301677642051097771017748129584306140388576926908422580743547697016424366490058355845256553446315877361564023767274425358811631191210615437985121264868918522733852490132377913288400470191599575074048467747513170433601668578069947673702369057757222904115950871439453069623244085087198251905865548602483399657347009417725590283623263712158811568188490654744263006455477819156763076355970160608306561579531487599385823223216006602275217556220286117089672915375569921711863954960743721513745827573564916504848233661132877128292916829564715408173743476952048085644382229592520099109903083125638690091601611102418040008642604060385838099243951808188405907347535968532668807394040179889485275845687999825681161802647612942482698247637538837355263751319755790264649386948078413409337632776348387846717128020709181857180766009305847057766265931209516987833507337041485864934278710395444721737072979605422869008340137129879463764852852636659479689008873296486343995942729107783718405926678710587091110079515054744669642674436075543393891853533312438466829182457080932262019207602877147695395624430471885282416519896963843349548887163370620707572463710642077200673570890693476846143491198807650725861340553587264377367293011597507433435383760073458916004267315364218842320660256697016530925284354660102048645970621700958284969635251727550415198159779759360374117665211638911170035355117392783393796513852256685290216803009592287283980718313783437658711874107851196129556553896933795923847944223664591399279548071667471397480335220303501535252029341401200550122957908185425305284764022073177665355983555813280759792117738308413985633600401386077034109574082959568762502033000563461428097150669498488250463433584890184335205490972556746958367283306697490261034500757820330995299613946929282406576281588153147192640666719368886728214114409710793575466975537356294414748546732844006861399228099248190746971924962791566261050303365041481400214859634699888616856411414492296527848713854988991269973992328094372913063230762321086225240714155836461709076516850613540446709425091959348729706728162565279178812497201283810747993642262409862214583922518255333672906814049479962887962771423166060535562065082110846110903759142108306502291661182576166819785095968627015751427351223878029016719808363818180762855200904305758758372233126791242363356824390360255666973772599769946242939090545239283405152514843421320195004882666602629417411552575884586850126398509648466408713382757041204572957135104860613758153335292351050362766372696148159403264709364544066933534131685609143398303135498009557367520297370766996343365330128913386665384914899174783472831521443632179927339934414638990119508176139814304892082620799880267487188409295089488676045446211971179460919368739802651978892966468983753058969513411986311892069944969940548047161599547804714813324811592419415940665689677371947267769044264657662734067191299260884970618642469244525449052118813935732957229565604797803705360252387015841404529830155061641603704282790388162271205539693845120075449821649091948793890925114569950894308977859467248809891740165402726639050888179425985830606866751175194521223523935143809725103352216914371067517895521397079186108447288207918767748362252629516015910548474712852718963484427642970689483357241599678427319831344491607896136959155009138536881141419108754842809095339626178971949282810204103868050447380710356960124267207724096709203247230569287182195993133487897932479819222178123127297511440120764113794235976917912826363413222256830603447472885507616710558182377104429717029259931936378156490902816352220365738232861721929036833969089991116008634218679638069734991550868568226235706073342735394140913227810771933556669118741874184111072831989813825373227161570948756828883230229877649605774437876669004217086902142817826218143055103101330827521914756507326779123440371878510705457214253356484613218321057055009805636624573048487731497960919133099184096361004984346836114264565830930337757480726859216744215804964472113311976265038897362046782183901918844882823132063526185010118740424230122306552333292738155546715536711167689927372926370381284289175500713311710734452902880554133594655107744163375491990237351016593188087091530669025120549466627680983441066844879978660740241638637492326177518049337515243666311999977524349333075175772048835771510398931956351711988953334835167785171757520128203985174505434185448411351125578149101727718257620242035977437215709360591968182340688254698205580847002472493903014389558510701890352552033872007928813528741375261175552859262078368293095428048270177933041131356657817569547666621822933441032574074967155788365213085876921161665860515919836711764015702586494455909135079075051408734150338332987738693680788952991609140845832975682726445408346444765635781795364674271000717803886063957960771056000059053065979767350398148954977999030325173392853880065508616468208700266248351271957298940416309451680163624757148130929400969520217242291317000487055533943904381742847744596732528424862656177420122846288391140883203812013012528051065840247190699061295442349517066004136319583586263188252273200717090200204337096774018509676153466753367426101563853675245688314232965796140581472011445308822677688587497450009263728611339826014857008575293082418947491995573854820932143723075559941798879216659006452687277736222890107407955631601434390548850983706106720279380728493848973283354061079901715738721465278724775395474954325017851489212769296595553326665128045060746011493751076537573703697099614670787099600865064861720668223479438035596448187985470755233344578781388351690413341016479991294537485160513658800371906734582078952098935879545826649635695882872100930836102128595830518066053028202902640542238833607457700503460435964195214059482305548660296610783742160361498443674570034397964001688354627477795631473246222254238814575024344019519302018732345134981635378950516807395805827018409238386827171883307055075469669340097660093807984919442484354426690231738398888819906006911456388505595785608367047289576885728811334198828712022724622687801736312189315373036242466944866604294076749143423553321826326367307826634564996999414536082726578638117976649244842055074811292802169706014220576720952297969380962852161506038267977738836889357348039035347598009630176681614260318474269505099409335407550123442285614657837069211485669367899961114055709561952735756662677232683926477802928397047853283552620649008506375544044129414757674216818244213719743624708231457304029184132435987507802179590094743572775501468778570845058639082098673966922285962390746758070384674924462562936901857723671971848733135061554989442483778017764717967338038048152106138878881322548744801310957026652674676412562616552910726346581630694329394734712489767958287213414105288518153340976660675986327340583879047951657317637829246387547204026343148798751817498128765050638787128318760292106940806783678308282596119798927282901151909006537846925633947499168601457701452273779362459105305247398373799534654933709797566695912371428482855583835408730174611488295825163753254881070273606445892831197903673577694273865428557335461082475386371817575679863509570806806457646413176502772930083808350221869383334875638835406699710812552884532291423424966612914346337218032586105440419093037208886644030728448009261043932146108268378056419415832744084598085177252167863494089516018652348370657592998531343782348525505212183216478298655400640551922141915690272341358691111380254601022916149874750620963838727002529148349696906727627016748415920703306588752466372317024373313536320263796222026928102903046510203204036166762864673634426015868266867310951517080952506839469477815049358532617996901778682120835431062223295170363668792326150360777110539299869488178195485738024410456642798096917881287574608310598467127181949719698275162669119606608513309282110640024167691867361431721375476825388453069987088422137896700870870667146638266820151310334180777496992406632816152963804657816211600494807328954778056191124983754908333824205425409520210033822029533989870188828028748766867188532495120056180624416797761342453315210623065722703838926351618166642408791262319111366168114324749372391725802163356390685002821263625169644898546696545965242515419958574866202949514486657782730708498740968914233488138050886606563569354894543213695119846603778720753111895668567345559720742050609012364325346202477608727991257013006523742205433021936794519518111779051864847666299298012670430824300982214155182515671512999374047680414521525951840287936429886609317388913797970665906632506313786005998037224050908528071585807053774311100351656437858145542994228430959366946315095822741922929879426064614915449520390884891532958545109697449614247398479647737935900278482750465991285943974073086041025467702905357203535942376836357925443352095780671563955647241472761324018041125959715857487206802838183008958429897116127349698876578448790092649072126606836732037001756984827348524366865856057121130154653144304542384281817193800917083434088161818028543550299214848954559900392751174843631649250463630407857471227309811355669008803850576331888052192459475070673635623034145588848413838601717743745769092093835077997796259545028451917974411676304927590922019035851855181617788247984232096612360302714407072580045958810329518583338108529195773691891620196631799245340881180750665946357445671961589595756470979994493732736473114380303572875460538541308302630169583163122703110415921121445525510110001140986112626755438245253148862632389604932850814035083223512420853145893223967413414722976231822870083383526942955003949554056215288948844466236960716195172488354894364590597694889803161373848126466678345091321864425464056270896522890115503793360792058111188569223845068323412708711195033771129681825530576613582295775104503792225428626831513892754811363876561713465850037837031695054292093805007581917429808458910398315334091881150738772531309142805288269396860808255737475688370409795272503916497872199850831693253945765229250295540414661034290933276210054958678135387056719892866859926396221860032319519049997321159165566717110175977720020118939650728078631602903531993862377753515491946701428600260416767677370990035257329092256726821843225441903694793788053462258714364996049289647539263113471320748895169100084186697492182304897324603421757329983760690665243640117475679380752921627082779464152233276600944091643583542256798327081262486502209496759541378087052849958091812281970638086055795224105913841765180010420774663928959624698892840369985712252174796207051492622779056350904256910221432095360701370028918301481712613651356911077290226885950941796524764015647840996641862682560525344168521487537216035611873963178299125217484515660537168195091863327169262182479775464131091252569464019883221321403927882850716339329450899708059408312321497726441154154234573068387203366715013621230923547708979316398631585858104607458701332051349273220220049668153828078884178807088766106314106591207811089071729698325535630528649517065911553075475642673062947853073064075395435811384971655392503350169655168311104858780927315454018812217535194133441456336618988495799033167204740122885661795807905214852993693049410520295730694848025325248881541269407802067679405712515102632284464544377008894937287631486915431939955423572303823231457437497151225841306266678963269497816684498672426140373794234004206835427758785885904863351197323269308282312967645620660011785398479516429165225909778402997443533828177896861696301963294839647107510525596384167226127144192929540320143760890782698917722672454946793399081470596857231285721186629253953804579067043999893988936576646628836033004879075353766590622260271827558834211299728102665643079775579946375084808327934049541997019685356949383877037783723029687856481600812047344565235526238145862905577048057491229057835136328098431767585520177691993826800868164402627908496190596508207499230031798686228212512432389963083545430293514346787874547187992640283437843085083206707503823464498196019397812417012513676462660142660445707623418575781550294570341993454266771568278714141714625372140435129365511058394889059107075821443176973963745427212973451607760272947428536939354950003061423048625217615826817218804301152530756001442245274506077628668625442289529056880039854586190119213506131851960657002064993129038788611449508135199829657690112077238689883596409146197148547973970651565616098765415823389744441234412280202270368733510696825876859200033141717982679376163913251560419884437681308502690801426026848153606201581627332903584912860572470920423077589327052367698496617124065109750334070789519756974484011848480517029548512739442622266504791346847033225453577470129995888999535140681093667680450806170220212301735925233795007398353131100707708027487454128501589649267850409006693637601910762282581465236896687376771542139953910075600251902520125934727995100156041070342753395918571452482193586520716440239061621672128729752556611772106123243418059668147186890556205193502384012170299179406381072045293106642862321403631124850467443294055398257466050744767443285340442817700651707370446427726327665892043377142033390193704837106399406804943960946661694207207624854979337893143252589199319348115071343547323015618775106040123136116505501293591256781566275062384546629786368947049982009948631991767274359470103340410577967417274096877250586376648844775712659720580674283377364657282932621000286617272296666788675455090705868802498013511887212510324485908971593872138587128568451776935336925416586750735001243174127718515542787170511612851962229216577932191187867676368732016163713703858003560148844283965493049098925139883099084559729487064432603608986645176146276135359014157033704384759814882594626914161970764457476462677473739145645375178483082125353744828098282377443142972752259886731420589247077331573458233201115754565556363602545106987534953034147018636937572079630392877521704859525586209769726614243118688357036481223590163454417008568504244571211241342151885972469851242481426446615880186610416445663212014730093295889357190985340114695672976498292397630232750867732262897690980303210464024459735389777937156624930513851938830148581106890093180823615499566343935761905772607939265615361115707741799926183270605101849203231540393660396999832084531805544811476495152542294030390985472283340579255511863566039082804413366345549432205456439240256816230932069561402163660394167854898062824240946446830219023965968945193164115082386516433777153069768177238308489950999087370029443789720674072145033169281363500618439068882884244316634296275002073279703921166748650066352401754409435135571877074539518111571968362211486087058594061268489885915653394146602673384682836809035044599481623098101510882751368325637445480419806228687785687641533728858604219952994349398573725576962598326697053853249442852543049389614076538865252929415419853714884489644022117653843525406779993551078937596167064088833733169833834975919558137260096713179466894094422451945099776238461820209077359637600608814357342474622608417774220959267769470792505254945945507986514342980409481865087253084349409649315907292275518602683264158852992096455612372639280125726212054943530071497940086350850833356757042513926524248014298500137538792620125981627978357597220058354902739876333360664027621516785659509407737811509069754180516338655865082738499146491167489968159944488586807930330375861479422161473282881159170117779876240730472442518991769935140883567241875929427186009720841223277588666587804502623379374511084995881480782329866953934381077603798746646997796295498206593809445249573286725918695068433351842372842237904422955779382041417423059622755120711651695284915380957524307984465662718458006955994252909130755246545250847799052377542681562110960105009236103670392416835639060329403656621466038695196295384375904117673074475325136148793259182891736425074732514442165225314321217489722467796250138476829839351087571550787211930488660863527066641548189240237624531266615795656429113380764918311773443475171688504978597176373645318730169208246857451058416249191521040344444491037730319405196240927974115916526449138688773691469044245959983766122253350731578776747640693565291224316711252207164160840507689225149139332065000261428776297596068168350578340945539165797167466267560007033457155899286255077095104329470363660420350343517928191157649847037331889199006614206990493122555238995120787915869194446439728466341308448321040748370299561261076650340651537339363227910674307646975419993094391008005100467508379401611269009103682304321513760283721326215840259233826970795921569477863069705195598755387389048421581470657695708445411666977944117867870316152597809189112133956750923260777287151778861147519763991508001874808591914247703520209349388325728118907329623607739040563495271898214075947317994987429238835430322783519615965278859554228133920133155167892673688449163576421959961640138305843599033900733161100097214706303967997418003084937792578099437524938702858394016737732105080664066001306454874078478057913241784111031003079526494267482561719358237226664514598398544873199327810393055136256915005726596051509088957253590047830965533873840544163367959485691899223645822719417969851638104202509403740760507030701123097432545217522530069343356745304425905094116941827492109741563092264215609923044281476579230591325930934719015301000854270044103338951964133256553475710786055682977480021417519794097776773070269327021767835832196270789922383817183494122854560710892148100327425839676418346159514780548737546696098660022465789627536231697799991139470348064560585653670480434234597061115837513318328657717768053962727756035490303869733467476122730828017209604420465492202469798710900269536961768103159342542420920156060826965504072645907862025157941308622920488561920955703914672853864839536057343179476989249308094667461172356367147201390620547063952268338319078377253046641778639541405558185307156060523509912991583501760589601673838788960989575169525177879122350490373796372239621767086076624177528878198819224305606217692288977008010284098105193451798625598725329043553136389403956867601947877762859238172049543932832659643890170075356018423829968672023877027426773188775920471590995576195984626707892155875187701238630598207491087674446245510557803804390894590182626451051768781829667600309867562039805349918478757259616122529695041854651915799354761963552376360359268248468983869091797229019257673551621725934449593421988233697092351104604075285914120647803128723076706579158255434385199241189155639332562291530869435597028260479800851461492673868409344176802567007545405012083389450181620125067563429250619683726462542854938117350075600295905244883513848167419005255703435397435697311752028381823622287773903667215656396545952926824516774658422824636747405826479566290711559176720313200190273733831520124144818158448831930269410929542680376339501198018812877729828777390731198776215515380842639372265090456783586547558047302142326104268655989520348615378931965376586371355046871567136713173582707406658473247622010438174496504126329935504801649691624532710787150712882273449300881944459353575866841979067742983109081155116132926891304566961072854490564812661350785067083799745068232351689410386388602354761854159372044629231405411653081922573617638030140882841835022758352458504096836007592564345445553782798160685024308639152561298782406078974478156797251703604051502184403762702146121527504497921110368798645537288409890426471151777697468245751588167397868079604187365558898829096756679635540146043287608995459566995394010444406626478938078906238391192058705360096364586397988285104818157811942270351492226423063051602644689124179363388150550137648175664317361379451009202394009711794310095558170070134598964729085033066050464521277757989341178166468046207216718022149496850647405947842546254498518872423365257216137175912556799419581959234472170028616646951311317836912847963653045523617747017549739659902738919242283799826104666062747488798901130916591360841576906283761195309496450651062199143611208250398045746790017549640446052381458174275825789788581672448453411315273785875243012232027555491766127733669419307527725921968649798652981144757008081302160050704218847873092476123874974300073087791954859874223603681585130548536425200141325314027812835974787703812382682922801782618240278786464691754091835714178458018543583396334161802959080956012792812108080840320544555712602376881378476179033176525155791933591998654417061377603729875954254587648405604206003262407346560743495908514248110151703562786817026460042085463593010084964843911957557698917825668576975658373127333839733133292997044689373098466673120089408391907754314511990296556969318457286379524778140299793130948762862157283218181123781439547230372635913590278014865917193562146112930153253536913923093652813301738071888278896729577183120978334159938574266629886775482856970000410385940709486687926549872443004711279330741224564611942021644290819211807139846342692382024813793367303949579490046408005272589417583134860449859279105959658813271512869225776484471011745215976115081812788851460421451706198918267992239246362147947530088004048562429753813212856794237176408414911802776395852005771491892085579746024454602916555026845036003938002952957127361149520634265977772135604259437028639345415086206818089334532978347055085795279534973214194296342093416864025593589965623816294781148834631245341041385841885498958156720132547205043786638293855845329555147067123769504546760476891351440929137168134044384557719071697051098308377367953839232491309490898611430729249425960047950066610134411693784974795746073447165176027795670135269411101989580483387673971250260203797333743288856062028616359033190444952179838576704912412480610623850535501625524571469641257520382758577831448490408393546718005116124440739797505578967183336186460564232080437744911932325317329950515799661258652491394261787202239976980837575508405114682006002238384931849986674317707764381552307777101755145034891077279323503028755679016215665953324806464544285748400709351928137134545067589921637675561261090470154956540566672352234679968860689384294949639255936556623731849047380934440785293205202619050077640979566571640293397374034681132836446333943741941986659854207082733641228320134671144126687168675744754737921153227125593713067653821005489018611616002094627629120783177192799714492299345663811561782553690360905257068910324401563936333168605630904143813216710779070176224133760331905037121009882981774462996685234479612525941834804956077700308087472198234623920865214910934731279600741648273658258298911182715622855195231734420913758683657992870274174775773032996684675379619881457435127378641257461652222519716298155511583218103927091102996838560927617804466493533278484299302060430562851204040517772252341247076222110639206697830604413884907442056495187950699979750561909195968943956050930938073799522839985043553880627118266723189668455026293596791963684128825972540330285526424396922323467537407973190302694091552842981689047275213459381393402347415453020193293360856559160642889517682540684034270184355495854799657987960029528800519364900906003644638198996784726628072412498342332784597139673438763270768015652767556893094006899939799879019219138000595216841897073973373682228981647837709642795192668887722760687842753874393392388403215149647001722640941174514385702281107239486970998414127849529882575567041291902613514882820766756306452190252027918327677290087571215349711785543574588208220172789124971507196696734605985427153277765196290295627927593615856000484114394028687414918384291455447201800929514381991464727931631688215965517686553966093138905019607982006640938345318530779817171584745922104343031902152039463679401922341392225383473395261789767796140569399122582576948390506576139712277769480855442244054426250703002405187766538130223383421189677281846923188952800075134851638865837128388662739715449213324146468055492712826995197442971343715989357147936926274722483153734234757488919842432807954537844793287046901145988735817225274737400326454699689418286223000983376582572371067032865724627180354116318387406697883798557835769583364501223698141792862676062097360780232054399242180642181116236078383773733947257224908418350945849344331864021030712762861116866413697958720421781147940495486734688498544297591443019589072808039240946469815001975818879881399442960807660915270951855904345371592396978146601865275758869671353349201268891439147214746832087570279324284703957626073465554065508675740163572047595584700298572255291489757958042711005995450343485780901717315375940462170388583177483128499883201714149931459500510488328240167389464643421100947734862291401333555433603781218109799825461579813405474530020870775464576065867593051380305074098033850415042022607557992290780406171211865785063710316929110931853078248058198294242808342607556079672969503461651356936615374291387778619114447458656237757635770297737895637301620676983750433391038457387941008935343707305480163651853888258258888783669447576334402167934186918257830842298695384935888450654290716246857299281905473259582922828414906493507857620085446969123824468223629701834317265608510870067460034214767907615290815681622925805140099710118503312865810827479823844933308614927262918394714498312977114675955916165205144343729236736599298105343690216402464430646037289185269935843745973341640878164454400405995090497190693129505661225864681857737180333395411037643900969321184909812261638962970070464988274139094623977598219657440285334280804131595011057393591222309251816671073082183902002522234479906297357646091966854713773609968435719180712962613219509080438765388570250449849196297553675565776972215878541739827158857633587003070145481836966657879588563827927118327318729761398170116666900365917773747616577101258542011124095011126487123425545746232051558630292909747559688384159144221767247045266205609737079723151254267745832135200165490329098953400190061724612087323288806401829506153036497005621491958665797256663833276802258095935819922657802916281170499159489615953040862705636036614832614280943386153599768420693841655833405218029000028403522550924937345472858674201093979047195409256775396497094619310264729587467038388611733154251327529728003036438835729442819650147582068926222186650621213676668636617422908068462685249830565719594717140529716792698895994541390789409444161947340048655936480594436701181641271451888401446215106164138972771263278280215984990188688645990492402629497554007001957125825757470919100726600628791928927388408051959659841112916588317542917814627029421571155291850041812581345783971595128442459544702822483463405171375853999791080422516455350169929307154764932550522589802207843762181229443932471098453559441975715251455491650281436004065052056023231486703566938566142194669872207260316791090527882533822279370748587860891170999221200306671424568413276718679301142630680302403109829266266079123228423796606730831914974747402895037577604160360473064874376330045077824233967794953563401668026849874298543979285432874463160329607989133351634604123486971839380773012925218300749476811302725071065087640608260734858237114577620023637507826979819345719390446158478241171127640034036913489187817678748337987182536822451199167864377620876279645099895814780154921814277813156342477733401986241544141643113899947742852179044884696134894714883735544257489926899382060386342083017578280613081393958353736962756549105958230520679332144315320016854504622952963324130603659424869770631620600292487192301358689451859576790387459787998236892181192387561190457627241721113070091548390716517040928644388352044933534225060549705833398502473007869068463154786625058065093814553213998101630571813253023183859781263252740240093752544212419838899857891476394766716607063217732756912231836690854837011533035705807226416113732914159100613952896043005512234598728799835505820250796240136935062969215873069187981384184356146883560688423230403220796241910195713945395956130621962537133164421558374760514358829955236044717372346093609871295026266770713898222423700701704091951127698819306072479827451778138083333378494154866653527620374343945260269816806100069641445430091842872930219966750242697688207431139711651951990188886863518254331484888390290725526299945713163522904870339231786235049155960471599590275808806574302052021539255471701078308568424838891331138422783869013390882771761216806778466812174215329221819017005590159434189913189508761779708688968862496452148544497876941366033433393882552859356158208983138666825023586538385284952421203272779934376680821970211331062754565843444270149702714933721737220982323013414262935414705749234395950041789679934889737287079769898850181376940118791804319179469758959405086201589060661883683495539215841281148136575103561565748758181684145772138313590828370534637620795111345237867760110207813743542160874472158472641873206664137189650468112530984690731294260844503465330845079150139478803857488811925732900573711733643369223289830642241161196371347105655513074997433720524765161519631308510543132251844704203225591351757790122154104643751873168782941723208463505102604065127781982338612477243921891341951313881370204938179818982369569553538895960419084868834935677831916851659064922979328036350315281468081597790786688295517305055032521362416146177018437621633892741366147202801693379885377850232012092564815523485378512571568111474178615287255204694789551130352156580430213660083002738177318128394465839715734584239242465318288291209645082371241920795892159953113225043987041481406204633445395330384055044138291144760556200924035113948694656320453312670952913894498778919385401044495220209742097665241304676975052453878092198020740376934053527681341113864630159089288378135331527131620571781557672641364712473715042039752756452247728890848090955249680651836739216687154496500253040824225804977949802629624801122978895106097251300023016695494416481187347939087017947491124854932922650498310348604658280920010596330833814638027227142840949407147870720540862289252448154965552180054369017681984047287835735024314945442387186255155940898211779897853326157039477386573927545491552885882976085189289937286496874830507608119300811261308174195463612979800675037447510072402957176999914001060934643443184739207401161155558577115427295661632869321092624260458958313450732927395321319765846922574158065306979718418971865121044992442109540967841752227550641147259657617567058735052890771165114603913658760247359349533105907083422898903368998425002978506461380847269326908822004222958458789135221587265347182618168774228373112295757262247017105172821177558679863952865759437405710060782525913858447140632629425185125691041189775872677616309575301361454762806633907824225767790233539113780283326522810527539488732516268511786725420065858188179256177473214991597031427743432068834083548964380846364036935600969215823105038168910620301480062546968800840454825019618965698250603544343239050269024634951688658827355907615906091733650720941327563257351133342294485552295186040141750743561122933852655815246616692947511231531095996725668538005708461646374264473558208255662429189395084733372846809392924111547006571811769892968847406826279398367737322596368120561062752440400019945186516816478565667456768272538195808690807770332520659077087782273776991425204486407606595916963317530287064214810937646626435264140884124023432019391957017788429362549375634494917092891168900461951686059300714801043416648362030067113752430743418206143156107975808454530288113998254127371647531199232944905365512074788512701168727616674568308355275749977809963342288132637751530782973590193703142721048413346582032565989204652106850919152905596771691201284347778439384959019089898662375238379389416646493014176567055951481920433007788168516529167538315483483683660739480425647877096593952105361981366827142761961436084579672921588787021082575692472855304712049767025135036722768853360241318935335132767463293154707801931550608111700610836486592027916264277735494718323948475620121383222721882806577880516858407444920075216809025521042557080180395080200579359658362838641357668256660972173734935716159298157122284345715644847667724705179447966530980112057083000582473989123483847067751601665166025765195494845142844640710059258730682328353161001911986584565989308455373529861673466549766836260334541627050351155562642693264864151023208804504757797097855879380800190043570349230188868417311233519504597006998065075805693765835185330484102099287912180214933816472828938579726699908017296061899620209534903241472072457789426006140222218407797324815160994088978838921599689869593683403065322620921925445026936567239670522231333598402170260837081114570791227873272902439325083959280634603721481963121349468457122472332121798077137242695776846254033719271154154130077082516478704767694408998356377190329546034654409062728186602433520625564759941928614339892735569555436310248544352542059561880224767874499154151501513454558006459716580111845387559664997017963977719079969553434302820310302493974320724095569448656126330822373686124105237048176306060111475303306258561841796432275562205842436736579487823071329572160687524617422424472853640120852312687500397332141300032387376509857233074815246046938824703104508142870114880566672840372633598596522685181417480927656938442474101760313862839667166438054698009741613421430865772228360461709880995411639396294999603701063833067072447377009184378590182489331366041351379676864139571393541330026383105400868844666691711313190934166216583451936444269528168382452233420668581090349706024988065676157222699245989519229151739214152510832358311903749483438193831562717693130095980715012844199033482095038967364765283846344158168144069988548168709440608864461626727066700500771860675117292225320820400434899155453052865798593546468021043840528995536963456455034550607616941005964342350526257614841043917862432813375116572236722315941605587557747138185868095200885908939914470947162211638536188047510500604303782150645587863074036293191582132196418990199136842364686305901289499999026989095110509529251886822564823483607648016144231832874589816145337712759919580592977450902738654359456826916629703180894523383590223355610456560813488901331759383345736158958735292645581694736007638513591288683810771193302329013845541712365593005583200769054598290490107244521136144469473481626655217692855943835618924082310559377358878353404436503509132772014983897314527041595409898436356059954687882166749564202648321531450041414724508687984307012770357830970917126360137989299541701917901518135258005262543403447981924922582548544416350556024866442776636227345540261428007862406713607119207411253074739730766787957923095530876347309780172723358711485843112855133882037102235070715426754883866584135656204190052297720556884713277472101877838372024565479745677886980321683441639275287719065962082619863715910614348535975348937124786388765823545794599118728586937855999327216962872916778254466022174083344167177370478517289892656371934637450810160374175014647536435415658715252891003996322394578164944990633006980573584731131993988015380894385401573578735915197645781869166267446731370263432770105329076019218559795197456825355067763365483262183739319824200467697625195887488708723382745073416117517043437151425747807864278644502136358577157147955090756670606445000669767346191355492683086047727232042031713005724680291257944936761017266654138180691098758027592958476456707627576600477408653757379581738420073683033259824020143033183149815378234024030304725875685560920343424296847751983346978543905420309956995074590135708691181609411383944635153582035357046571647498049844464710619817789500958649770894597705192844565560174857933920252353119183129030297353040428508084215654815782499049112919270383039567000410283339528379839605103386270372780565831041884205155831501059398871430090318259215658719709015102160064424777523702588387964732324455302685654118953257802155248503208930780523440086798534419544359705014501649968145608053640734854357474325700518895943348919369632578165393201360378021191947021057448462477704713221431172878000691286508394315938288135807197590039398281104225311807075799125531692539446816041897496590892685803919884234770743632957306338295995889659988634307904620270515043855225683802193875881780523836827133663052289126926535056578405049476693043295023232479384150331773652601920456193710227175729199304621257150070421882172971748981827880599283256305670128449715236291334524328023072187527799165318103545012404035395890040378743299193087185578387368780998187336050541490000328132093491580794943320504720640624000029408612673018101040300018968978714800107063315666117890431550711797847633855436349829863772779545631205092279461564176442383400079651248879462537475753474848479232432676484118594819539166960285214299057284207255765321708717799809493111642709352168228583997911297560299842245339308113056236215983169842454679627987153067209547288507278334170842885915276368318489813423691962904633857620563692081306421118623498378698596643212298415546629429563619755175980166401789269789977289255881563416391473516086393312734184438683539728346214554185142277585837471278554831475451202861848135484106725765259358923177900779732214402918089837204753807089913563665909535755058403130365896639565347918212662606377179825598136645629035600163862778450106454757768843192598926454659836217256941478429975653219961813218114575750342438089857132421517777526908781559585240369676816843226385346083216048408378106612974923131433626277310190251782193661129530260871715598285479970449245419465186944573996708949274440358746147619346414622169010861071131095636041822042226387845293680804434308207735809723815524118427975166365163123026417539592877019462854788492825261650299672345900829494186223353758422414591439930149549445524359444593034381312098811966689331954444771326588642629618538174831030999298194838921045386421022953586112935507098597053726940239001614450366072491014195214284516117037717859267889411305662922361661883704595583318898030953466396427271406518500782452057688553763476507579261791509858278128798905228998477876779783977371173015399456252043711068185751558853622543115295066893718910141398243136087729985008792585213260349189588036382719031459213554025245328751912953863520281810363103594751461950080644735334417910921374626684394445321957184389474009567396888973062991066263290579356328278354018828667745466735433273656050694210318029695244429163694123658736451582508690980074106516068263628170368444157931913895099461565635120089124953309087473954104445699812605248704913595735721055708950340862278753473235102710165832189535104204683910760826803533759985887802448167654099776169818616121070575955625264328713491395464573871589835519807860387325027538319361793044661520013874523822983229388141207259931447163161960317052765047674420277626103866788718714925403653544834616540874840294001694797891254343745315825765542730089230095455106287059756857581991751625551641786403410402354894304868205221495276025588014112464415045313273259855070150477648246371345646959194392870949865632965163951607786528191798927143666937172375571316992792606356864316798130366529658930485656850270357226350572115425186640325499525946996714850722295485908291140890599250553159476457179491602420646635885959073587807896490063694843936276439956444924618445756731491980104806558531698108957532502098748312222155505066255534414077676346127068710675387570374728677484634709838737483573458633259356681543516918377994363828066153481205658702585771617756796697327508273232696633554934284574189931461950121794038002722935633268173186237917913863529989223131895921570833199216094497801069753324436240207045642001574328431010977101047316692174064882914694262320895833771962936120140229710902653699147708108447647363776604011954708564053314435147753268761984446833187523016743099164039258736887264231765501996113538723130274672237031742127953332311792769837103386840290060577217174307808555955379981672515373633916234995872881344032074805198723086178822074533934643422411906424886327741469895928742597939481767004060400010773597231137537911821927746041385027715008443815737480725062842878624521786169229257370234648148647947457800728191940989398964408922894961288527881201683686461988732463930245578885781901936609620934861220469270945501851172338143548473565961592595893940376806074905038833119133512995936075639656483198300093161285554783017861378120016726694471616631251192642548451241653914958363855280287326054579270331399464144706679211672696769016854459126258690259490617610940240790401002279402865121070299287688098595333535467846002459274032157703507212678493560209892870429012468763942863506244907566817437512224681907175389540430506598571710850039297168566204090413588477059903764961488900621509804697807638556568237479390610894448911964118551498995379225776913134259174085323344448339770982112982270328014139928234050601462337487444315377961677826936265292162337704538026343316173147147491832600326092535431016587117778691558319496151536289122260845919506749790007442074684403678239678131438610346443508628734358615813513604678297522618800098673809708139643051961698405252672562574331911110977754642748136256238198592138010135475800942181584517765176012547851231598210630086915142948306175622355911345753966721036836042929782501427643076845255761354643682898791184757597568794437732938602247519535229061832090347946502617491842311839182920293537632420961286463608427960198770528606844217517472150940670333107892153544405885922142039738881890769751444766887158332979675446817229742370388241212595384841540698708133711069457158347922165656159226403150667142827630976648116527941230711276843491551192410909194955249512219821696486181302034694928553606950589599046221316463086841872875599772013844214959989477473469644931691990034083935781270360960805087687976280730383552346039917844199979072760912151465107243310553665997459714409403645004553025312701666935355303965838543200469783854036080774532088020242194565166498504841632807856641729776491679297813107378629016420834642311813935925812186187447087279874756574715105382583882495712683094437723284223885816113038966970875566194737853183734005712900656195777504928444734083080260308096594892618117530035435723432351334595444928372264291596113078715898852567677598709345366778843538756152270960696788668396860789158938365517607891561771183301030617733051396692296109409899132711165392026425770695763471648079213471315093951211437920295744335167832582350175052853271609828075513491236161085896074270977579950378126455316000410504385261671080849526709930727818017888379285576871995022748823789019952219224766760175942402018019031268850118735190513270626976037570347347310379334204450729354800157853222741145932484511725755038666763921965757978686341297234386518267594927897588483558730377520105158332957003755529571327416984027245894661138169437455331317354779475187309504174506760217750246851919969296679301844025030555097941737133254703839980888908297765681995803084080870842097572730968485760480207222717161391889431671857615546904996201802207370890139691306926239222374664982959854937417280706548165888951944153955945458861481110138323672440957627130347293899452307139587475431022551144081380369203641429307969254943316158589585398513280473097892516630296651240735593097777968593771702853594107486029126047883866478394677869298575752628446080945023435001624268246507599737555347570838556481651880416767139977294948094714688604046201239434807733396387608305198679888727324676559980183707550180481089641202387765826386152595304110528900181819857637091654948463205038876024994908238214892588888813486183789665954349316623517605629161701822749605486367254687268495221985293848451790960176865002613007569096952838679278656067900225882811117000546826142528325069685867179891947819050062409397818713104013946638002834255903276834110963649269195104157101363527770710054475353863558418925278607511788552869061477683278519979027758448299704027670245229219204825390828736432956549512356853723371101831422954356244613984510150970476804326927171930494487840426213644876457915814157399692681069585396655405304295633263019082589093217828617645182783938177771617070142278899614141703786775978025472152774238163058401724062292324565330241569012040294789054774315047242153782435385416653899409793964453905151093933513924692835405562350612471158315706443574676392505599848111100121975572778043125844526691640420184044060950415178903166708650928372226286778890974784247247293766104991616136211752998605347985322888512033590674613501813142016703817218383475458831916791102958098014891879036859639132888869281464891154548340839124608972160688641764599318806215758381403118527113302340943522676665780095727588792242731125147050843116740450289530327448190311523849432221629288935925871419370444447682159199156623250345218385443033239388928362982573170024998107677893731785686178023394462710150950818722849039150718032756414796652506602338319462705226386941144387320635316799935207725052310671097571256876779511339411818621356062671618198027879583292334574293394238223042962849601779378639179710576254841148116995268793151184886413868898594360622138245272481278583064892677791595942116249577931095969680523825238118656862787016351726101111986814454175462045248998753563347887208075934888093554576570250342995521114530516772454678681675153073075553334262684028973137861216264938109406118278598384483259595634794695215931188002170695182774553442676780939460184277768465481562962272064995659656917090810484653309952272426562355934048205091815306332375376197292128782149497627530127672295844109436955256999129676079504638496433482843406457981806711533710356318206757877595386207804646014632741369520980527617581863026969523729035024699091336190723479222707774540312815638772417319153773976515856510029226801032440592382302513115436862789905913730486299835221308409791416650316183349912978392239956463356898851822153437957563952938000287964884377752432752355168439211018724137595313187330737913076562663847332176151844773951818103057495653022230916651032877053869281441629464163216118303455047735081704799070253298372869690379571530151545517171577681537151805794713729585827579121913290229199760183127353240252227876968901320571231017928802216203446400810367441520257974112670039218186179147833889635601114924093542506306943533217792571052836164935752787983026543710020093634732304996384494284443246836012209567436039962082692392411006825914346956512908256486635819126908400445132635269589205134034113639342755134498773877235717935635061269120142456288064295050691415810015620509108973347688239682135204166427070853456593134492662595916243062337020503341168968846767553052772739900195734221481045743285830676266717422575974015157178345666736479157556662683923152997350008728843291276079763782763113419298468970408550006122233700007765141796766835448580161208156418963450259389830742173110077478094734034765171246884229761704253595838124064579019778236699129781641403518960135641950152105091093633758148230821724070097973588505623637683429406703037127505238944850940011422561891193379814791458413017353691744919428893957175696468427228695220435001890098593526617063473868792502983765524491639742005896222031469735204098968357810342423969873652953796386707246410370440438580332074091257789386168731125869584993827162802864857866638403210677057620981063254592404191554558205343593237686289401161652462356203881115589053280918384040029672321352691599626470278229163220805960228410357548100176850175517889999838748052698383820489396016794882728261144619373239217088197005598388314970776206865679231271368292452070103373806945772001202777122133483581958954728009410103187861780766167640923704519358091900584367106921164140424218725084162049367985485736583502008925172507631056037527074226195950163786227258965220824011307571155958852554278250647028453580247198826762847099557979360133741208129969484755267291852206142964744534041649596124815445481002162963421837824581728947658061647743366738097303727210595807672337301158270574070779991396224976626232523188260823569287628987849346635494023540929067729859567804860024843887447433846199328823397706809026057141453566325008846273568852364362825647578812746998487769404665589036044566591513455477159525932557496244043190665564618836622637503433285958337673316686776063958692698479461644367222065126283720251895254769626705335206345449941900286418003589335083481259267716961777042172775711027225932819194270032242593461568435251765784809024264191772328763897465625171259615392915175314127069724072427828660735310696294765837948344447363077407461504526345279712956830757445957287167997079229118631942161179124491521246635421007105490109785391680315747722398450186090677062326321135677927090967563685562952676396005909422750534681673199162756483839923045055080867400427909847481930146456949970438657294722286435409077952631996881064993333311644528137953713592158503637981441700525754600210758460764785156709249446106923929035050604598006675878367081202590265409519992959800415216246529939421751824339824677005817053524377618990656445303508533892215782096729855725282436686190966626395457699372261100368670216873474863486153963613338872665029101551371486550527432451151194722775466437935315103289913331261046023817767443018821371504922161792837586759621214333705772883478019526792184026451408902955116208761053743452026769530631331285060429775522545274859422705883083941405544611404852779820545292910388701922621192015072205624983642139836971489834225493939783841089261290475092237043434232260807960638806677760795485265632045848279953479085794180113797923602800077858748471759645997366659577926867363973724907705945100202667848415809243909907101774009056088911131964729864920750749550038558120213884860968194365681192859710662964576777640424686863595712235663119833650697971769435603596444305880001259465140045984163183888162367439951638669480312661052722031832767632381331193277051456835084816386044594632234948065810655693266931984493530287810851575494723904736649142039824523966436926266767639658975825356364321615749775499024028362049574732923822097032842317993643104035553128061383330592355926369218936493056899372295347414320082277650177476066764975387914205388879275679676294152797220662480723140782850548714380922632037847510501021794011811044853373274479082031309779790840443378819939384461457338055136147022156887593424274189521103960453526618033188426793963408736684938186256209929518959517234872499282217790872994809753258763764577599531603933426121774507261291229988688750868736298272320071847062504779225871920130344189268959637730425769103530387434087202965574278629166246726813580378700338494735188171643888400677561425271730368349112834621604446752569529515647071277515149662259818176971962071356453191368019847656075605642872397264845556774916169940829186848932184953995116581828874230222219704041052715929885447254740340203515080340185275281610209806607477921698893412543011948282534021587442529488801862553557573038741833897297003722986724261976982787114791693008735572015358523965705115343179646971453938745609627377497455138006704601862903552008940919409273976887750937338290574921488015822717626544904941789930085403592032271703837869353868128520589627649775121332058312794970324197770875100620963690552533367414822319690253210675144483107512874390652435200394722299959318191056896719494617527166081010894111832958420976541664353692786094387958443027959025925185310725632769316965057712254664781634227811096163334208058958106836508788744070894654242055691238975915583362794966196984667174193029021037001332509547509516595116171036972504286736791652552760731415525631395156234605519739321742544828911198221104837528287853831790875803935129846786386540839561083346027502897508382208014478614744370032644130492294057541805846741558446162415532803754339787119307528660830705456174371771420505321285296329139049853598579963181944605456681193381600715906952883806857827546101510053814917563460911769349622232868176554882728683165783872037170207971447796423825518388801419236352047980360337584706071954541001764735610944453245048541289588496119414310953193781254883269168825774033261014450543833389762955664879156294772753588019011946786369169333151026862017645064034330413305545435554032847858015912687043129981681860631712429204144092273459900750114588849888956489345955143721583989965434225223462777555571957921314561280903405330195592406223065022066362590594417066033266557967575782283731691623216351648916070565391586254270849963981081491969634400889632259339224181919717629850356163416639866183897205864744004803411474355411905560296377680681140839143882363657958905938476808370077968836578013015128307797701814132970504093041071581500637583173116177829883168968023577991902848759292331513763349517944720011735405636192935661736798231171321949287663934563062205917287679598597540317422021400539289339162387393577609359752515388061372162627024101977671309720308211168856008162284329385077935768801891958084966144680853299656953377874750668519954821798006145866295294251260132472131323685518811759958569313749185014001264484539396910712799227216293880699442955895606414754359209199869109356093090690729745919981111585612087473886546684651448763406246877231779734848673299852862560819103596304818543721816180064360629588994080315091912973376276268132869980303256781714695107540388707617254030843367883936001304166149793615859750289963043130740407418531707516144403234894000237302611720764655431733758408244667465594994700555990850706448295288728626891688750128338526195336408899553834337897541849026369354345326833887158428802405934450414208519705265868618563364637651568596122434409567670284401112028734612367403842020040483287591750577038364739137327003334499960742846745948707299912633196326214539397484532937484257247458905494393720424239981974364597672004424576524875215167462628069442278577608815511560504947265523688331274065369153980842689363851892609056028138149688821887024754303611534288439748576534615180635026256006980649256202014386577045353298556997918861368631807845855512649505642540440882095835990345550287164046027801369926060799564432670500922539000558769496058031940498073768022516089544769735993044134148561553757524771388875241732843076825154715926502663729598836824726989231339885319521634058817009553218887734903214727244257379199958534596115800224247773219297088333019661414100586419650435641236341899435553231585470868597184456973444014640720780394511239090789992157870085252343130469530355082806795623124651671051500924821236636414698871340838115347254462984983083858711396633002906505813436863976010025667300683252968349446872533926886450232951800418171343378975905014427687548914838162516058111636443825084945239357877915493888618019667789219290802559766836331820803793386974041788660652120015218293074230535563584074653845015958031982801663133005080153281063266712416863194942419510639613095998278782448718058521921105447528954129167895220493846449310424374043133163814712604870656858084943984451287190591300020627493113607989783289892475110537121477410454895527819992033249645811233282591486974023405526435932728052077888157157858437837749035487399452646622985349714711348140000947303797752568138926940330577433307432774869721521336223589571610281836041846578459986164283959025470526416199028594878342667551427808803279398961940165830231586050478060290535821482832938361024494541288324730214174356537949792750978377705592889303203273833826476500146957528858055442519492671954167636673870895290779019305000126481236711400555699771083559938028810870751048678203389884937239277353102979450407932319654189092197937262578985016164048601181891936692040350202216666042447110717766898936271350425923819841263116802251070753297183303455378869723310060430993312735588999154687445666523986539942928631251383124178294331629826201046442978532021489545966296765683523257269165806340410914740316930940944726504514965800971830980718129622702556069621265484769690710506093574933087798579058178595689300981186157320367062273941888768669480874075633636155653034220299146876122699564744549948301042692611524567564215595783896180935046130172967744240534201132602103793710177768552562718441241975788617196001085356143629864002009621693281925348749065942262327759572317527521168728413992161734028375059320678495918369808001314354735500468872712345455951928740398366251776110085864265317936931001444657727141401182273331470622909742311617023693484216161924665890138515228581194821190781662844822206182808908152110160631382508961667835196062116400930628999117979450865366240288065656063844060533563197294031840011212734092377563489263328834408402232363753363897822542782716662072508086699273854542370070612050230335369232516875361953481444659078698792469450357984636146539873777210361876229446472514529142497530478322549380946331930277027546755770942658580176835507073006721804665912664773906895964107511874417147084197639759742220085996129485746389659577146844627402585357818259237153273166584021902061214545608908349597771114697115108068175188526103697413237227111313328518385704716927915729761760692138267266253824513927664799998510174117453043522352249847208642488341721499956633616043590911334557108194375620822392013753417646295394960209019428021944520403523675302648962056269528385015119151399030122525521021561096136351213228450244465856598346262577859965926485620666861848919218794790083666529160200211401316610545079176998008050500808124101352109858413948535808422114346983286138602943531245203868566094381640151156643157918781384225192894174892077127094286141452596587516993673947211109976506458432309076825219943008473215329708512708672521591679052571804843607306129199591215255464642821142163970029903364578550260542378809439213619378763702966078712399400416125252615440330014653145296225847858231379158090620610934642670761453792256931298874628027464214207256875711543698350733960474537066152036682799345861970450185380116880340767586252274701054847996001408681772538948743982993708461064733565186957646939989193356135357469621758966307338005963934779874951843154173055898457584926862992765601124544909026263039094706892221413732782727977937463599261977792092944201673302170318304107940393463736903361204486855564107143963432780980935396717407882106158183412774800849672377549858768403387520568283890271853456242729454693890614569343935128413236739684193082006862125453975448575294230001573181858427621174661529961242902508567862920096065094919750208246836680132336981413999712361292407872396030796522268879616550737065828479714917895168515384511129005584177453614386461889089913854435360847577023279494715523738663392547369730990272684127641688750323073219690747422170089062768341329356892851835960854999623852887058098366366049993849696713023517394645654965909959646859556380801038984402931050053696132264077431655778175071367863326400957884457026092316926039332534253984368046816191751224874005661809002817032758896181508476889774238642545519644036550889976066704745038496094421856291845360109355907596743354262917549750276174226849472956469002797783410333452836891332168030406798562079261828198391583675516857118198149092720977796239750961110382289092561195505787809762831994573047089469910525933694805218719410004815934431494521172171138004040205952686102378160439399936154458841066659662701252004004808512718857832759377235226499726212054386147557669924418029368368321598295119504205109742639170611666194957326402910724658294206690759362793906774052360914834156118848413242573192908062386162925688843261473889319325606866432568833668318160938682460535286647337723417224334945733660717630626478865397636910291794111655499966902392508283943353802322296782107606049603788558379868134929628171142731228603821755368913975213365517735965317869986903570829556293215561993828878557691097567195769591824286930558319503235839176323673093222505458500483659625982899965195704314570783265403152704839772238943891030979275448484987974026091285476824212864140993081551016333742478809910517587896634092601539251757902259563163022185743507061991755883371989875698342648698056810381601687351853739743765834961342190236089518195557330590409943825460413401922215735289355863817754287012489682486610268093839647401466391118925999386122121962599007792512911841053693848626353065159033484386868057037883850883125064086323402027066489977711179899707911400189665175086737496083243940024242598893643412678452963657568705290649065199093167081974555828431975340806585269982186619145824259572038788031984084624975665063297362952578714892320710181123348631618575441513635823869155288428245212692700953643460019304243607004288304987316200599820755037820887204582807500005858776214649333863732395232572546200796054443909488652261965264157456185381919543055045378536607239407023061045499989413512797166123045308221572441691418428555098337727698224503123530328636315588463384532930962463706443594669928472030008886316294467863358015900289453637044497815367787219122890377769857768386206870303240282334366682421836814831833085299927184481067400418550623249624948146615069895093974115969679955026182123055880716044167932066028665072837553360867273058763991352848317284232951245133701483321766350991742176083834599400047518698033131849072146884446498348070590974716316152098931099527820412556251437394146564918608703278155258262119459572010186589546850342833429632370343761419937484800999503044475117165026129113785145025198395371388543861705745532484222911176070754016745551012157099550295949325900489385087604594029463565874348832946952626051169872241590788290114897298296641571698985421627931145743415975779099331830128910036991992239254000203026275253047490237779223237294534001297655063072492010845506676339290886695780633209719530536728318697165900709255536862527063662246685762676558370600813175711806356911873340482039542303212817944439668103991570687475716386657293551720994308940676663341946834630363885976562200204864194009105422063243351214387553760110371172340860734397591539871717726101870119866308990886339140129934612144530178145785297576296423862223649193199536795217076097906446345474687711840871255016468271098376044534860566063976549642322004766082634861682521063545594870546612372786542630684754156270863446836257926638550209833007881882779869752667534182223343905261262244511631179469133807457115165621818161818695095552082385610556331825149374880954019492094071450491506969526424811835683725744393202427364630396688499192388018868169317865019401517533900459981487017366388166078553420335752269265046012152782507323988490269989359406893600986764719865952067971098062625082132141357531988327872682539928453363110952036719408707473959040902927481858804389583512270717516273128222341003136945028024716342396095529258226378282029484567190287159593712989353311493078092618177343782783955132062170585313580619412843865187583236771657661811811248129209857651503810678266605004924959719626433693314931358734150406545015941375118960449570152970740237345800089327632899883407880386797618946873180571510282641683764305199410773784954871046633546190734816706908652870755771425693856887937929692640297318355989578470030190075440777429430500543403420076138207774838189838570214537135782841642192864607382494730061735998178933765346408834467378655920545942917813868976013659001579330411591386198634346078613648343872692270477274034167386557350947270198276389108212597884162277575142146609239490940193939978768547143815338951333316220779691214226174622868620904984081283906790774383499397432841427814711195210791612164455674121529602567547807568929865561650885599463760322312293687015146395735724049737466081437691091472637069214468662679208696972642132687822807448606282149332888013254033474507501837465622982652875116761598387160899149951047941603554662912813303821853974563984254149799627286033336602496536393182185289453804397060545059118670250202497612915697424457410291921707347525279283454141030019262169344693374290295171140975608460530636270696135435064361878200545215472039146728959879068943297716122146285679367477483956882627462086497402442062432217641181896750731112958544349026824663378175794114383674287959344866539982548160877778886688132272414648574889695282679901951216904732531649535646293939092109068837533593853278765667830706149034464702270779361874883726222933012469036584436405825026862501766768870684984080543360772129032814462491326805267056485031814768949413527234691979562890309220489031355025998700976478927033695781131314681562217893879223081983495574431659527747310673471424478105310973809893595986177568423990547629269775208578107210140325341497543574283756641327745334338913397255231540551508585371684778226968629612640028537482080347380307235133927700824036478935446052639141625654607620529557296278072880157744791999040443987847709844029463498574195000944021419011459037291918229725755352928920045081570731627025261152479273730489589965914975000377398497087055784099493910002134729537312694831768116836579822984854461649411176456276546998270431019955305873772188302815250278857874562847750719148041061293523178138449744234556148630121991553656657364760367476099830872604314033907535759824437992058076181812031376369789310098169910110230343511650349989973035844499668997847462983506971308721740491742074084902223313560564204351080143767583506993130821956611644071416244187332217827907814283214812023801285530496119051485602490558117314819206795289834311350597331548902195676264914941129411513193137773261734336554093404053728937155875658305494974358635496608026887974360645483784412726461093314294707711719669073211044725844858196443110386138707827167057237479440781932520354387707623311604510030341815337745794043066124011923042151365591932738649735374485567817832919722436866313595701655096538577697096236108189855249178328479463332814224634247923679989693676460290267617121032358040435069482902126414204397129623694053707303081782127577540671544929139105313242931118653247613799139215310538947930662485267138861961056006666710237407654106703975337052540560881775782278005258656162119999417380556740805421463477103642239958867030693474372909175017413850548282428230070048482161943592753101399034853749914768130809821397937409843339243961664881544280914290482379540101979486430397604091813052918356660145844160474180769485936092966170803498747444755632962121062934271698254272589464940235075737198343239599838694954076423252412735635765464041278945636002736787422066159751344438318967048477798207567843370746501724229742679551434322919645114028550757835563347121183571228709813065413872366450388769249528814748699189798909166797924662510029504730363213832210552336636748622684615208287161489695782468688025288131849692648453958535612252991092271864314644150081684806395163665682519496303880279889066785607816551710427260390541840581061884857624027278078018829984800683582061814036363573543668698027180471095895148074660536664472858797180825555297994731767163157596984523826524740076230139382717635670986860843730439989382365109805656669540143173700133878846706121155847713529709312898028801791420159932379572873418556983239383118242952793742592855682080240670733921990135798141789438359194390323020825577711633996855544603856174989267427123263511059613973216043731539068252486698453333061696361503251529531252878557197724480334617134294618744672460403302990734681319208100307333936205329794949116758584869312088497515876714531845342656009744467801936177339667899010915741299236498799503540158816403272653198847212128778016961867155932620559840249244706004739933596965247299993640461808671962541136494850320234450628226369115002679881017340998793430420615801028156235763845015329630726227412742462808604732828595631972286114544299461290713779589012262361511229241308904776939213019088362572793563308854843102196002584609370424448375161881289945093358793916274981885075444722162238645898538604277181399440420599124696769927315124968325288948364775179065408213770764497894903160736274923809599991292167862563167575315887378044867486768884372616875533793937378647546348416231578342431087906184472449143084501618488266355764734564375869069818713112943075895478048614988317310386180346338155869884146838611969799488158632592738143478982867879351611007533861477189197616647159653286372917407237250123743089963756250242376583275061344687945544405069970503169117455856448439160139158639693725949758010092556073030248981868763482930341472272745860078042774847505756548245025034829221856669598857147956358870501592168328924231669276592068293567515417531820810102758959823290338891241999344693492245599523963283091836995509076838251008941344601728269131765550883169565571703147194916745284570865518717017382413630891033318137555938449378943365421409183098495780464135578698184654092695175172364112335833149701996927295645698591542872333265181897191095902692132480171730314747581183989668695265267101613503752456620264020990804172776547570921521624377452960069066455794100849299087916465952253904274015828114245240341535995167931251678567584805197492658904524860360018277791115263989246802079371637633411856393421361213831630470424371541157839776491168707261892965752576067171931712754371711431330147693263280145932345496117271016965958702566137860264517095717700018790841233687350705300059452141302292276364720401298820307219480833362939852566711566168202543696426542069176428088852060799178914701508465832680917036348991327118971745413090933305752916434929884956929152357969763452786119350637305664882282011196688392515286558823832886198548405776627616614946821843734814200667129279059567473546821104933980656539133881661334019704509189228027886357717322887959332072640471737491052417763282981305068246217494638485709647471942297187635775753281291549206711410248103523441281779196320450301858848954364146237634712373142242261035236722144999348768944330732201699325384294553384558151807716175433730370135952635407069723871734234750246690732657970922843437929558388213074426645954330586459516870027083825251249886327592413997301744468369606035254444267759531406785629236587747121701387300184552964779437746145941147022760092747250490891748024703662138076200602310865647247703607253634509342906008638677422755079318688889761748989275528422656932234871839648836355573153384429169301202418092218693572023797494923755230635523891554869773692134944941903557385152123648205608714273276822974363969031649746479586817711210686689838623413597011989651629817033350823135504077120408502062848812546761539556207515640246291554242527315712743392727195059551960405758288585804164655565537658113974134610499830031656528969992040445635676594322038032742169771523186447952178459223072204299357892701205753083393050326914633695980326131006527986360136247993485059599129346815158523294943784210180814461260948014716888331438481012199783000962507283678554181805936409785056517477299441306687407161532090779156121724079314529788592458809325926490378539291132078559013421580478180057600845990431892161423840911976828625444538057007298808253942382965656037292660249680960157276454207856888517999094611614429316801577473278616689562905770383269175609408836651120507181578221372448858614960861480068488760387839336048385693615616478033110509751431988091224521953296961892262675793804445116232449915379851370968789266364454766641653672363483576145935611051724099426136353890029397190515241420661505812164604153242247157166459167866458950081413699021889110594192179094783564519088568827648947481775759130364617145017446948786502358101734401861021004359114699926292721755509032040132148157923951732345056905575978454017642488108736336689460385608641335504297694382846927648160083728162304365999681425809979626989218959698682148958681168566005339871467769795749832834502957816343037799001831526417583615206327225512462164867876199695717445553134250547331861458565371138217619165179651133492097645149303500342865770309736650604240189593883462369832198189416719129840057893461987347308468489423424368824671336464340162756488836452355383244025690039690421521943103658513298137331493458004498751667636507464572077297446716181701228034460867952702811983499638530906684291440522874591912522556983460295959160162965508250785513530826279469222319075903135197929869757505238166154182765539595363250739734557376847361734466446422834846271915608950658628781389575165777610308532455452258898701102903695884296393751011591282948971275557721791214075576442473308227751303495525449460625620304101997676567298652533724407293217052492163975570793244133860969263319740030000776881803854660238476998498183702061697881570610134344155041686408379746373241657994710135214843326549356275599108504483606379710921297591695724940675331270320638081489613761688991267899216212382592946780005791166422677812608558134154087085816835460874324301757459131703613334872915204825680388337019158860724467899056916367387542966890024420553053357743504396423624557076127199748851816143855999073152037534283065514300545883168523485421935177081452675837408439265404664717148375017608002926349852218038894741087722674239712957614752791369752291960608083761268261643562687789427119935969663061122165319883549890533634819435404836553293529333902013658444533251623711943285901846320609238042927616164401274233100165218281152863846170658817286135839984703815265107961410216400007288964177291530991143504839455734983458948706270004851794653956287016675481200498553915861982413027674807596079055342766699629845249505432800219810640603022989751212976240203762957725785215375692820745037880938947591696259472592777571934783094272884916620407577343506959909061964453759205807553525438726291567533191391705736656099964085298745860360227853746763743182473245400463982211607351331469397918316481156086032859329720773814727429766091983433960268705702706862560869136103937086086178566409216087129894366909413549808730544013002256039019504313566872791603645844292970212398180447571561900213886472555618137390005392258651364482812227015419346492502760240289721632198868763899695090291185046614197749882101447467950752574021461588735085058765633544307092867857314905379582842282333101252625827946562702969546789441997609956436289842103654572639431845061585888621976735727064509642534993089722891556569345160666127400898581269582393911945623101326375532103146141748771952615769007628734950827706722646567302687714797656512123289297541020558012787864099030530614905163539798295443544239749678181672362140942549032515420802080521959970264491766582474097337383437574400263189371400002798858324097723896728156957173121685775724319349580528164356355085892910752779440063817602048465473048839472617956985691528428507684165680839538870315417623833470658627813646047494840354162740378965162909392285662483320933761560507706225261455922673622823886101744950398835981938822972599613088632116835515582445303973256664189470813368901848316899487947207405891458240242006568917332331276638441607518582488745009104940018228074533429514711074996624176643462767214671808840201545016791394051551520930247031990350492606847556367662669215837072053036283589685119163872808809571592590046965073361121834438914256149775406393574809428486536321707079365818355881689074189053012454080861255002821041998141862633918329534612544463821499479747590111842406827439356482111985957329966780805741884854468089252888972104347452692149155408156232734977105095531033504814873133271635764436362527135716675653993813078187736161182765317320704203595228195731486719185828473120425629682402610207288279304304043490318935887587435680164416125894597938532037597462054291955182521397369804797735132343120644607837093651148675272856905734672815651310216190862376964222481128566057825923005658664739515323767199398266702379707458690149531256166090441589925011432073077383822695325284305968998752281568158371135799982406361849937039982969527403608773657894543001275389759291890274225157566769484335673033851843253930705141849899002577888756228500586650802426634529092419886623177575368367750580992750328716029836915073720290876152591845640951718381703944856521844766489788174341359371381873332811058381139695057167728275143686699988219561148543231861945248279372890145510194565425482677284634777237787477132130483140492330639496087042604026363364295738549177040142137899893368888318746027125731227416110296286481245554821898463083225491504629827318134224140830482475330820922516838078206342907277679969953152531014026420083440717484579978505995594884637601625722659614990968906970696134021724392627116645657832599729652320082436205982147521540398676419580174405517016894522366742216934822985847507001412913538830561570091498531653453303018107996507282411570581914409641251764144360710047673383773342986621458784871070509650458121070504710084568644841955295657519666889840300869189110981749316292869550576770148305736927417535767064416413782916838966635485892856177377566852112598936135835149207274195183161808352516761810423482006410415896301167813961721239628935968849230617203830839061566229491817864476270740322715963210712938150428660919555320312658684835323457711930181385473881323239464290481743184532514599400850373479152017197047902846000830800207256855949921401819744537768059499038593460666836249245721268560517894021587891599220541360997611280713811978991741404220620331285260310557072320829742480043547572335844154058194051319741924348640566964261812385229475517928261626765068227245302986948392487679927555773154299778766267268508605269864069650262000581141499165666754855285955729018922554903116322738250690681854958854892872253673245741976756145671960177504594911806103281717756198458097294619735261992673219021494346896387128574858343011110440448684193860560316322862764020618821896481264258065393781333423598001176589547132207879603057205014455586352846258403111810049383226537301824434352543755949635958763190624991939112520900500298113384736785819891296435277439393413947593084737266726702814364699157551345013491849767520379340319544333278959090960327004535367926247614969120290506770197821456102261502867779850658212989609248795889402638936193107483173264861011046571850364429755681617153795053478048262891524252040510745403070342406935750597686516616718306893135776924506878150407974820538049839330124515346862732680402604013647575421404375199257090818026386585481435112514689791555079672644641442025639979973761736386319190656073062931305731679746220749268850088661552869357994434262840595890041386762099212165028804827515667353327596242797392244927403562630752971871692801491315035807029689063035304823892404708332834622582963232191433230730338724280318898715256670268483774690104450900988759846654136081795711054234061430133804427032652692285519984429807001327408620062343588724470636769305962804055322029525389319909020977052957993378901903759617889976990238214400384789058930138073887208292096473026973813218142783604547430481168759519505367984437337284495721070906923251630459895964925571859644663066846137218214590740085592654433363736879134592364541017337407282334298530838390842659234967867838231349153261534928895989667642355348431642072982407725360127336035007373811608899533847125710419314111861087512544316236515308407635946429868861611539492449527621432591970526410585857104759658839738296839544141484338067497593957639649523586775800307671600125596584945660706637374872614707164681193901038821865607143862892857315958975696899136171206940265936274850241058018347444565789947691797753611413285426680480553011194797798311874173448325705343866865991840055223375980020835886961885981443326066587887396308255931448241948943010811924988385908786255708946184078384326269753643550061534118725209549419628969589988421765303255495428812871455169447381228767613104105229792562347237114174437968573836880648841534622925231818112875817463432766486880217155187577118767746041789556919022575534179478279211977296114294157300470075784912125265073772487388078646681285932542395737650386503245162065767093707370376293834314741730619140402713680151538590594610281065861429132295088906775853242849685671561242958307875131267216819028802607827266859735454871789198594440982305779922937457685414782228850419596373478742168608818178882563219902690767261631942359633343661286693982650559354500593035226559955856765193679340288601793470882299970561032033282088850507806880436548331855869509344378969609821149488008218895229187980858474436879436992091567610532455984043348735553823586359509702183627107627685531783010959024968476669691907980430209643788955974789004360110939566171871059931988941935318501321696755120669951556494293096233975430170708933492884277023711616646247945389973078328001203182299317440001724197300265897120829046836336645711768157824983256796552620357927463135843701809562522363169577940501113958003823844936974687620188409416581127671596339375860086951714644318357133036537571707421026234486972612325740105008162524603804789838567131280875315458869747673698764414161039007237675637111273325093340664873521689148432047917296041576817876775228132519057694939556535064496518646399555428685537645785190350033416505238044455418205698529192101846836302324504132571112512671783738273574294098949712309647029749954507170495369105220588759209098527096564100800324514277313861940875977408469905721902476265429680873029921971537501506648215694589546838281655078858629941971370751883815676214173944029057953238548416825367892594517851938860254448250093165258517699964990181435331247003831741083159509787653855529858335087148425868243902460640045169135908284786362093222233789989303269481029299833826305709438730487507497875867211167228330584036447289437348705436646658895959643525947728365502303425913474806606899088949710509164013475750482956464201832911041377085541011951653249305094264937600203596819840692681256946937492773689007521774773090114726967124640548321521317396034742154227542407281609798316437437721875911051851146052655465133191399582569058158317947578412488472560711900175303876614317684496235632358823591856340921095116067142303929938784624025755683042578721747178360996666785153543279740715727370531604423444506076194077474997566264463246060028157934402653551828322500002516973237933827698893098830761656074561289664531862794599542682083418267511722934403406355022869116166646519848660213447533504046230603632860199045462816010332073570731549479788032185259371931426692023413518142447626778099017964190621325064832442565367527861159896762991697979869515200126584899856429837724455984603625231348654835176285192150838407444194591615061409804804821932270669327309330195606882331087205058482381059658922353822459228451929996725710365893051664455453300603700097119343169889162655264563064089480691199246710380536905846646305632977787960811683620682973012811651590834030115566309273146367543657485770880050057454374381417365894900713807117210613231023958367069645414127977584462835346385992245605803432551639726123216919259169230220263504100799678684602983963988341971586041678228329719612458186064931909197092708167870531197934737454529478556583365336618692061320802780756220523153214910731804069332516351471878470436325385539916413030053792264577094911291585328921149560631717039093930377754575170704346072360252941564543415992994165244506838501469011278972394947539096187135336195133854329719219778314093384147048121720168850971998923637214252748805625539595889622495881311037325442876582117709422323443793220796653312175833947388881366022643010697071249096417174614561078631405587178768285163198330182961302584384027202339337560290717214889920592605798369204687522916645847401705941788729752147468455595883309379566842816988553810440753724774766007754194015278567671280495257637303885567200762731979230825446216974143371627296520353190555990417252684398192324789847735689050566170615215214000229908617087919651939958892555611993276402166669639503079004021694059603701680541071125490579883032014340273396477330745391161517501148673608443200079573230085109987283258041704796224225355726872825810955089604404378441384167227559239915464605031073933448960749242285228386105151234759949156034549883590601310829487604795088193780451850491047580145502206024949098625765676175786742204949529647534296623132037658064424798389493720385261767218702592891541510383010882005385776382258206023543975487022046666995176846213146063802585999059024874426985239043430998893758575119851160573270396558206036508748176876989159771224353530398885266888609076989865529342994158321137540004592505956070857866208546670706164094961682412638985236117938020351484326379255121965428191994064219041201882585571948161746735019255471130212834652345967471521697498160805926689692377808043679723562977449800656547575921833413793012775714508615417459947765574116456744086675044006891424180661808425355426397119880984910418981786087795146775584830933886718591614912294390215460965066601802415141637822242626349716272422899389082403865424251001829203364503456452518092421138116934487901077875189449719987452087356675772863318791710994351787449149353542072126638231991493022874348612316646442206824350601246688296765777717665259620940346148890074586168191999336025173983368693370356092696461346751594957141420908072471889905330092400176601539341044567938996856556592172841688251713347234482855843168726775993305539318574328474312671002524289731465883448307350020756724647221710945256047950971412725259500341478105386893092698134102208201127774237800895182578032461502528882607694538028323886077360881446770166574266089291202934118015403720642910651544381025551812592012999062676093741523804511467584780640717935355074772494352714400852953257861822024228497856781699839331605114432136051695564009072912776313650040641584836858539936983393623705921062162075677862872874312546063768364957993358093155585708228567804199732661121207563293382509786615900636752750496055864920506513261207875241522742395052857908648544864794769906000860120976115870854544283263143891363371790956407992575716729540934331877825076168427517917970467198997888684750961061353912391041856295708065698922097947498722246740140739357876512307897005707555476670836620464888646760666310351943289604618815822773232024941286615126889574665926515579633027131202717265900075821079272038971014825466528633288562246428509864407275080976625883794556086306096690149578503458041923554902829568880086159002884731654409203959492792713956112515199416489115886430530410167798928774980757526716584557236237330362823256894590398441531562031315377924742885879070886849879539319361721633588525437086706822353621756932720556801730264140756040687818440293956360485425634951378609524207758113376912566998742187564300877371729897852505983725863685744123696526738064256761398691268828687195579605529660907756806754247517147469934259660719090311956288647273857230694793464380613220495104978336547382142891922187189596683931572290088679015632695853904036789888622645855304904058830331813489567205882541298460333049487427489108467220759658895247070056364716981478122263973414846118086876371316101417484358568621306406682959697648362651731169261747573676582110030721260912298386070730355276245806598364994742098931349291080273962382711054748303579806285274164620661977004053155485056085339264779303970474215880964483864881661244536893426076120015208118795119366443257857837949679265120403149987914343031458810553918248125829386203763000474568000019746113393696682379215645983151098014844246514107747006021732257933861344690440814681809832993729748339529416624760983229626960790373506600081388221535167419381790392289203910397389807961159658988263660084771386287561504105705408384708057590946470727066340615356954172298405589372800241218703633517607657900643653880656358675074074600420958429717653829565314375264908552897136776083301777961302530706448384068168877152616098044832348648508014961259591560353132677291822721038011221093836142436338845394073060332905828093420182056424553883712897491597913560610712523158249842110173221583670027846760218790959511375704539792145216492736991535082535505210968386633637070507278914874461213403742953759575457866290409459806645104228883779368717644795441413499325755636898153115098377114786519661833204542337354577726510163496264982209954124110378342850375567736034586078042319625795520344596323723818170388638341322475329082728168046587610933583614014294773168766217967157968843800954507495816537670155755411909861377248632320135368638180739196857791565489301571634063694773153301232651572152948811760416739542757828331721603227650176097527334379382104136197087862493434934750653765257071578096532690835881673878080829735720389809436654414317107735571292783367719821100637149145909700321511744743970789253419037988533249015569041304512637740084070417373080688125815693673587222446856708797711780091921754314680098419094635464284289469055597268492911834738170825774930170880404044000859541178271467918164725023443506452710772699800415932322179621122186176961050183721579647609927375719791277462267248273288649416078623559148543552945867067384381361391691730346840606505632314879680358647549920167493146626831932425960830494959172387989910206518369593077980334517906414576801075202880346312140354201721669762614833528627224329292256813162420659411256670734744987193293698634950806169402392472505654740744616707858270344271191395929027901829577107359833734277615944629468850249225654098550142719287734653607152394486334531849411624624501337898671322371354121720280171008102173769732262515186589303485220118764185320403619818798397319371081576223652618297966077666720049725558148863915039159232513490433894138033268646188889558927197207551178831295059122650111942988460814284801257030938735983433996019873974824768904806241504064313688235668959016533504549172374271616388012759333538599405259864872730975510937144677344785737834789242428342996587717540797974938065755635097838435279035392338180305414873208980249923625733778143287384382812224733214344986185912237979793797887958835470667647726568704039889565314930938928278017966083559620509166609257250203227613393667184210092038274281622350058324845703963146335747168868431491185037107643253591261977280887011731814890479617159941542858544943749740220675344563981369666422900895652696637850839818474930682151295489675518228471675568824589697485984792454999118701567777730454608671905522586057275784556717710963499112826916774198538540504662589243006460075906474923616768006249492837022197586233114540667451313957449010903476304225273699014306708427840843345641962185340701363086696802358001391822823459857793400016599026785332717377372274852449179946090246626457712557884786356447981372890552667592241116475196437073897692694446062819048168430188000535970034335318003874417228667404360841262765672264211465499945830983034734515981281322751575459421376212177201278371553942888309807220517839877886320577530633974711733021039321215804289021597469837579242350776083653822298952733427477082960802326513172711703262495672222936858001413689819759978103484552995487973453198075488205910745557143838564496217880352166997463661557975430370671318280245923430227306693443967742515303646347131542048934179774804312351259112461205196582100435590902288734000272923905617705217307313820808850817727886512092196157699452109179707311423391437351953495906691131537849777168528896425195784752528350378054813684022571145604420548061494812716305058405834263719815972841800170569481799653210018437825310223277265634506800540600574316134143425648125318541420665629722171255585527737803340559661035680816741212426205830353353278108835269353037706108356002576538139978566809841902870643655294666474535479668751568624101098176786673534743657903258284918755666745386017440212252354811137455957721722813888854389316719275620308818143427697309103666428430963878669383432543765188572046518699133763252091874853021821481813474651555873394033807996338617679764254448768596648770791926802501599016288143502273683677459269038680484158455700244551487761468384380216049009786338246541817363821525431008625935067249560405044321132554847052971687788884196893438560315647695847431627993312555370713396230551710482416177622173699023413029191576310109468126045146164401165690277722078392503533471491711890169837766896019818082030193156705113872000820741036758953372892828119645716703709890290742659245164226426084096794394140182955939204877069456307591859384171221381521769990577326668479828866754880040404232018385087056515794684165868909230389219685799406680520027145137287168770810813498802862549032200908231547811764406427308191925900783822556557464961636523708367221249325721464987015283378263798763764594479322080220458779183988479095044855510466193228517273959124195137792405461153030361272349428226416295854053493128310538970415105148926934701066086998063900702745196827263739326886889794313881128510059439941932759406873634861960274576486872553791017038162051665415943818768950279459668774125760310256682113445456251953031676343116294676837848615256693819182407097746061759366022528128704061058132896077018293293874079037684179132373142138219797163665222145238118177154942963705320766775312773000907289212210103736526373002140903090177729915855374730008806455632877340609535006346377904008264701809714162738696708144365407316185918617675250485352640564956214958054125347253143463236875017775969405488411072504469459369762319043883570676733071643621011809678599374200935030968911771712513806099087420446282386191178960762087138761069525104232495996784753195245078450383101073219721469858154890931719905107795524026805636439132911335096785001289084401324065065505825369145792510246646999359758395778604618527475059884898942458522240834525665458985412843895884353411249146730557239092603272057276298472299378642354803500356897558227980555440698407562683570877269426262408469366839215164755530062661553445950048865249030577775817230282463628042485857469586700362440461851347099661092159246080625780085682789500019081443003819433144480559802550062845004380778496865708325509208816080815564004386613525303850386351233156615673850384475668375205603581920908614212535229441805348967984031827183896115763079227196534069694569497435071002528934214918711157631595351688274806029973074543598621617177813229508535599623980894095264643637279616296156483145660528430674458832450782635547666372237182256796542358894046741282449878865524320432426882921705545166784458441328521726505157900441882315772301987082642129786905286239602903505707119312343389207846073096574942894736940110794765546326267473733988330891357846038271254768013758409978165298806228328610507103887420512058582197213770430363052695338100648462680476941059981943819064256032919390565262418858311483464464458904623350622324251494012397479183624609005719381905826922764370809939030262128810354366845775205549222847007142683659119322325425533416693791251707265140397094903058071981234832054677269835867290818047303063626636847893411479215306223194135900107224794980976061467071283564692189357375901927643865844828351723921744584801507698705119053551406845069741319056426878745824307106756567288242222729164968321631547114782182615791768658520471756877986057278537526020606398460976429259362403944808482958720256454721844868354142032024969483450503321432641668987371890202698738896325433662686235421382405413405728517539856309826334681911666159520280303387745832291302111212299782807074627802594234250023082061193407973894745232781180003987923663315367918788360470962074854406633704023113692367879645259738870394999153819455989748445535882570387617197275407624582383022513700037328047566306290255556508021286031471848276689333278189330801856057390785723898877244959166775400121534394708054521212030116607729674995829198008022242160511310800525763161050538532023940661738424285505860769281629399188717866852548047356476586347794977820700646440376881562625472190438928423003952130948509088549426394226915159806455926502242032775947035689055576761698117086768752802487028462875325535258637218305485339084858360346791084072147934862900812038032660619177202982423725703776315531711799609414964213254197025923413888532917005815148524544882707754704986681294895158095969360817868689072198774758152103517422760120454381717959785304487316181341030593021635989462873903483720097386880640021558575504528126675872677121545535797353939948799242308056889605353611002278069701434611695571732503603645773812947417710236363156729615135460684854255009227774745245220799435481568503244734617818481251526347370016719590877486812929682701774046503999302266196803074005549574362128812347333642855401031981391805674404645424053949374311346224486889888672157855417660270571402143480014579379044031456277930204006438112035457494844659906412244511464922241520762873728409654488287642998873243606388644864175159562075575168829932635596143227416818505553648942515114481305529625048284142953350013087894860124193480160300265499766142595694469239884440972262847781035004216459358295834599914229385537207365827093082900740918580976633580425265883336618571194777981255395416421144473253329382049216869022454456773788623261045440095025960304712555265559923697955950527342087061268096518596994769244551458225545159700033588065472403397186313804318223500199239923704923096762370889483785769454680492750046249097462627506885375343451479220655504078035762262463819020008052712608264808634057025608865569002061041807930220289373057668168155881918353432619688289124066909159938487783815361612238210814483431174374985267200528503542957908383334350725435836194732451469939641539573232623942761413449345484935259993168420617849909182666733811829302501089150238692067267739447502814581260631446614361938514569654321948741629211647845039064465150095347570744925258688689514754589186336989948298348996168736982047506542301986790603752872837245570716352368975967961222438929268814485317543211567524855941956247721931231481114758882404728956382824137964239877750105397926512934028738285387828631257439918541767891438300366026251133514863602370663341030458553757386415221404785073388094105161514181886218700125870196147636344902534846334033405374088252234300325065602877814151343566579822296494854042264535430835397039084840681271219052635072823285406205405842266908598146982253373744529006597468997806180720967974937874054963840826986202154663736366509789988455934942001692553284808705373943376534306172959337455851959038953989329224168733158520005312081040782351656923814722887222360851838142683434365186821134080009073964651090532783393045210578661606431202919609244319628641028141148024999849749350155317628051920035594055811138706695921860640521701408652598203404213709340388860423766298672534354287840522003879429969508697551250932887584314575944586179358521839009651309109914900663179906365352723691046575780614070332182956579072223437346092173265792035314161496369917942425880402832099586992547074239211215143565714758093181392285631569739974312765219047959564447002777203485662789558673191645377857154365179048737280336042759431869446866096720494785063166696067930120161038294067020944684804035541828031182122324678728844783553371077439110324395315828275979102302904765236137951560178937175978252294513946492484984461205766144724965867910181030573404987704550472933278603538152873773542691409019237131028513064226885692026321428034207186540364146986598330217238991863880182160517329560884438095828265240788114917629601819844205497911912556798175670995194768753730440147322135668186766918554929991923514062836895057420704297662826612757845489823616409950271025216652731762437392158677063489361928848727730483178004325477239303394995995859966441860980589685146232244643684502355403506535043273781499865532414802444345643660937253989091229907576542962255018395394570976968010545585394901018224325588506680072892929219185344228247912116135757889519083849955593404809316648784790835606569639676722645737542145784437362936658366385662488722316333454951042822147938594248247190081286941193896131058708646553507647533176648123848711221842627261370497327875194301770398109052573346945096261277882376843179057037614831788088838289884297226534441035729117909233937974093449831002175536697050833237754336755322132332618446879347649777121704892102259890279419386477301148254007130561511607720470737342760386983211787409893347572986792724042763246225410640427257312217005651939769034890242107635844937680886075176984369791185105013609465179744406648449392465597392009848974055062070029625841864885075477686613795295942496651002881984494529024188407674578014951107905211361331790294535821847712062826055509072843085895713487450632662227838939038529305606666149465946271981671815068287113422085613127886433778905706199124097126369557896876084220371991408079390050550159744477629934450649978744581357157715123221552635697886585212792380595597676335731023989006208728168843769176801444931352530761434132525725075584206249888779484575807904045401461204655807727297723699971180809455219427546583981845098715933056768090120864428922228758025752288900067083273716363274925347426111020302911312229835339019220302426788372770730070196936992775039306624970026278023010144513838726639690972658125946075181764958579908585222211952483332360170487953122832637769290693124806381758645575225067607221788421363721958680474277013390918808539710023240833582543444612787411486943275206321588944634875319227226830343906983217364365179878363402123913430686190602176501159918952370165037587615609391168339117013564143261427705686428986386033027366626127575134581083160265033640014885800870735695807282517576837062215610682519629878059780019202636608536576251182587190750980116351225328877205008559226754423282685353520849361373150743273720792631954878581611099868216392326148862826247924847375201722739713431920818690476032076034494659974362182030778488884655497652322755657585526520831093304717160619635658350300554020052530928986307642362110179664570634233952129525123131815431375810009874391786467265334858527760129248037839599588883203013741091311935106646239078299040155159474548158515845664474414075619605625919795244464500193492151864256012014473756341987489543876590396341316139675687997401878186161002691317001724860128031218485733451152552681331248881086637342195192019683197309334512553762356596314022690932260824640127092142029082213494387879401018441529545547327237966866873227170759663085220796530637345687422116940379407951531167119545056349097452755536443579371522954781118928557269938331939814649338653283898660905586126554737209860324761714631357610013118046711801867382500031130413017001243225312797311339330134019006849727180709711234185579849988564908655512813049242410674570420486294691143737830195565541812903193143984624338827079416204204618886865625063321427911570218437013363704067056599033201972593470262865894298839394119188653764296291598507946038814426216438228827950870481455886298273956013710026280008191235497103288635640748807042615841760862391826702048991337328322826792390673787597957903229727015164960687914713995786002245817780270984912071121114442794003940068273827492799581133089750384327070395080442588528845809496757835974835588084748830282957288559825679946569536582714900882690162923388532037386628746073564431881344382686554994393354112688966233915116005054087823507042856306556851032957972898953513480915905756378230401643510582940167484172793538763187542882553739940514687244088782613839359616379367270146488759131807349018998544573127940275879204082108037234931395139996801091316644489845609624695369004739849455816809623076090309909308642414560931880842563650832397186610334095978683636176783172286105173983557358970668925700012473735899423367798092017254701310705552488502610590634661315978793843587192218358692170969888939001748136511817145169411961383500716357733729955493967444104514265562481214790317642388958249152906800297827187840991249562444680152619957234109556913213688006239393895465179104315911771645187838185058447283586613353836171766972446972316012038979985831181612855694112068231714888525964759497062582170702596550658708458789327144449657475147542684984501515311415583196572001582719003615879232712592502074772219776542619766806423053631618036279643251371758210066775814176060084907526867240665176796328911458939692485855141470573948385269822775892973985487982417132406646556504563540184925038557821112955187299928853010944925630813187164519545304693967931718700765809062633783459723240431216176178600639696607502281847673310453122667951486353636129051092751038421408189261453869550749449278819823746901047763035312279128557148073001439623355547542396895215074388146544639689513145687180539804782193583727636413739808524811401664521987147475316914413083276958562580819788344212474098123922072022743519933587094060529533850555499747167449111883645563805125024831016042155103697034675430156065211170654673321592143867590290670892194780164242701613065284986912629321665375883752257605428865096398607016959160313645698753114316720404951172352708159204333639672847112386402353369493944404070326038925600361345030559644684813572301432605795158989755633904035284540976658223722105695355199106958182227539575759570519475949733431061882258109917100059247915720659024435603506441995420796397272437440340236601970160315928216374277453199304557265575813739968515636853771567378207392207966073096882276135894238529478227051607994490101702601553633417482704822207486413479096463841931083897799659718459477329366444381151419322299138032460183989585146452795101506807456523533643712918347132996461314662750249485478301705796173351967687370239905575227871155604195394531265023972582960609181660749320826448723272586217831636523147681833758152628903310372902011032404655297759710502218207541013910415126009775196958500338960283803011965915173130971801408155165217638741970251470444269407441710427345496916001817099853897397341439724252008486935794776273141998668005311075480069107529981404436593728639344963856003991794145636853198949628672570198689616532291755976147592393852989956845448406457756747656211100664785148470665153486421934958231998420746700123820605225353640059938009905142646500305322672501130054806667075154660410010698607262699935954753323310170228504583715039212602394258471222699321857320998628072164643368353067053457855303377497439927988834205130687982718599525198674576151291444472150823448633968087637945216185098572594867016711203758267238377038385974946774889598107810260259856334260806109540787705481088962713462088315854829889699615125853239613233204098719746637617384856118664706853404135899399526718798596846215652564125684548041052414396312536051006388972220010641616804444737827664097413887808826760757630009434607490877465278066170751267934816219708187020412400823201748692831796933014208180630442233694201915586306444432534339810395419709512923606289729515275777010723908625372395189237283384047405042513395354611821535180516743673098754640267277254766463623342668516462000241294210461163050207412095875597296904902049501667474519351225610127937660717267396989367545055031556522389086402469314382216584291226002326758337467604696891865286481677379098163448666240897761216164119518489189229859559824169987565308487069494542695789864748320312820512728478945766155926525974065874424464720422830902849527102674718822739005623263329087404001887039636950041539396613451269360032608010818495980042056015637210761201232028563533249174190267023865165192077589373826682628661126986368276460358582774807188171475284280106196203017766884874488700551607037905486646064916937196308032374977819221694436105568462219795405995972308395690740787597490558932120085480334069753327200335380555161232508877378169808414097645288537760210314074543213840896950002133351589889464140029386927189424062698783406670354053726501496864412220478339310656558722005806587484997921895615566735864053715695673355982146580562984241561615094955165192824939397581499796360071277967568960679525524646149431145120772386565613196463019482950348941306606427697300627796317394189593347564253083632510316154317097450191976828054467693169116073131980071600201053202684378620524643550026126577129722673232380069272946051423140213583141402575227188665502746908633203968813204991990788137087097517255940809956060540685477225889225009184423509274606451866505417063132903457604113695775983151686928100248541494442490631137952230397336637443696287831417326386037513796161202096962450674913759982113137376880540642126580534345508528176332491883909814542826104020806032092572802343712256144273404689941910183471105835126718076753078972371315903788953062222071801131242032103371074045726625346576819248581286199072916825486141316637334721602231942955120297397376522687995338209273194848571680765228892763955392987507640662356775707692757212726727875734364016571917029240310762669540350954256218351896029757676197759115522270801027120444467163423514551513167315221810844656109917330632394496912671067315348680714241717663040236388850427186913767856034134367728033043386146236462417618786457480778716177738600139881041104676345204346703365885246056305194777490733930648262169952491067802686888745836942493853596482792381821570271801218911775157521535770792614624272198041027736464519153151683058752268507984662567700088083904261905871311692507484405589516322122196079551569439911412141667501632445368983031176078543151883163082694951794515962644935386432400024231664475734177562263793386322570998530006877844012951710174924067919137495746928496516186463928582635844590781514497988601218324510613121340209744612143716758497764922361556669694839021339861320169299986876800805325115539633061786050587174094565701606289082597417877712029078587063498068711395149419308649857016565389612903315869770184215733953780754811306583644228333961016859848887587364621346033768099010034496449408183940921781539295851302594479475291974134143853913502831482796463207625223824941321197291780282839074122429080369807763880309091126302240482280233098551813030137217554819110703821912120132810586145824671526402088414251766666491019855286598189234077836511987137343232233429647322641178298268286581272362994532891651673152838798667391313215193637722854627802682227248309015743768132620145281351411280535297995857895013722082541942139329412284387071634510016620959923210060022671228164203322213896810185543744482267590625714404330552328642438808216154047608061254292709837552252842137388633056663412495002301671155484564154466427279963730557186091493252096295133407036051406682730325595786947756406067636229081748345837112897497948178869565879348985658453043455120998131890920636233026321478616607001007200237895572225968785191621830649851695778665022357524606943096647707269998566410762012657486907719138946908797696631676226144677977627890996255302405173029412392697693866973965573232397576131424491795694223533286794308441557924376623760328990485411372677238188206913621445638064462620609319300647004747361391350454069147313873228138406280866432100826615990045833406780013729902520291755747707418577188421778048155617575430541490948352613159198527886594470128362386474202459989796758741736521672032982604143337947713381141752981197883848308372786299123114294947509541535027598814662870892303709171025565618299187673113472479598440602722835674813469946732008630038064971256895827458008490297742226246290287840268685702044545699691214848991547599761602924723009490383278919206801375451250909813432394698601349494652136186515210074924657582049466430487764096634307812033907654610393226168665381811108252550850183669138727930332500958648803615166616116052093666316883074053780266606155785062467477100621051414203073951148740064446915652454871399155907231654296765419661155695834851991640936875173840603262818141657141153949988792797498247178880603171571754767921862738780966936791274856605462509563959792937575612001945945496772727594220378179130850080774383347944107952062142738684802293120879534212951338469741354881828217257662957752439350196028928508353063793108736531106753467169756698799476525969545066360347509489558579903664547566522117518886916584331373071815910530008303768487523948735062063663498407691450358945956763250561991230882478754665457037025901709825795542450513311383012677396683642584045535763501644501413463484375284793060628303523254957763153491630210145794017045245511190165110539485881462670440294470132438743536704829589997586484848514887385347473172002134736338051170509608743265595185580002693848191576060626887887827058131399069852603928225531149641313306714173134090793149925211952322685160912825518398827176308745138764577805981757449399575078928860087680523034113909781174910618803157600699327049053041205432906052806569173799974669184265280855694221417819175065959625120717417744833793442978690935376161516098698312145031120047542774292815819078847311778872937582570279484123573795916070860684644995896533465784850998810296519240204011718148534448476023145603709763967005569420341935355974134107094050906627585525593393416385870472621575031586584911991268436833849589003487554365241087780451342291483056583840537274394388734649305087295613100470754706138214392051080313937393758590167309701317875696692048199515107102119212928168701133923692974378066524989277247111508548482842366012618591725357233255250204446633308819144483600585559055662170408620348346761985261362754107577633930915124350485130796841196348322706115568770972995371252991202768682462490750915856374044438865147431179174948637428170850551586887079194317269954608743668532242223740654621359787288227181505391458217810950737708542870836945280725810609843627294961100146581612282099616569706001610274203731205826974212619730024013545311444891399012912507193897798779646002594875804977127169947281948407946691100648789761040520044183112982117616961825572570383506026298305288952954385557787344142966481950504149772753083732009040443612628690312990414926638138976719037502560507901585207031948787198163098679051944555144021027775965219240991225258497127413143069889061437875758773394209005632264936714348913024005783971356741591613370279956019766854348128676819567262453452112869217163406002430743585957470403150569557331967086578694470161166641625209744754947541641229850404536253568817342523931391283195776869702167111416935072202774641018524698080487676779292303963781766481337836857941467009889425801359922740448994945456786743479533714170747447581359822520435639053950700812140774149648705757183943567167843533950800230050565293856919981210013182886141862455904068167867534510594152369493893559367433538933009184014346408892591795243415232964296999275676385778804321958709724355748002218900301835218942046290829950857469602714677883524769804285826548594667724295455887045696550013239694599043973270922221115271379052443766458305018918016446486770858856312752645328639982915717203817823515818379920231485213911723150302341764906711226038294498996327152122620442260514478258935113302461205352977799265561765765139139189505807979473210962478883639499592588078387308235700125334843982412893478791077094750779031265853246994700937543745922670513949533157237998616114720243846454673849114162690534347093354566285151692552124796674651124600140626471075009990068978244456237819123310243542614180702513445340875620297684661874413842895373634688140997174430459746013318363965942726919167434390865736929067051217699746418932059828943483117696874681998533770608168673173932209748762970146560984701306948260475898534509180138960728307541104599388189973164142053665721158774613319255148783997314907264657405529841919429247981759452368638770695229336176889932998643588445109547434748868498947837758606023516894314743900551319355349662480150468237161430201228504433810314822944999885779354935086868709578790438772779527444639402849994914523913322882891032650518121062228402368978299896579220433697760691315115233847014362413879831601877908935124009391913877096272952765713826993307195583848769117224697226640598772525369618443789779808381833605116112920990241870036236817414227011231789339564258221175313539402479692410682837121897859809018901430576588582031977092341438096590722407422727869148539237093016138443798797342206817227209715655900800841357769883563054735986962045246112391176950041313475342661861994294671384945800428085550199636463648833529839742050141737577661886416923375213757305053719706129180097854358874491460551273054639346649041330414425238507858668706556825094219056453744060328978615852713020827601970420903727318529030412756472466994649172784119777336872725198700302524353455651504206782737217246155494353092997234691755704883297449279923152398698176965366622183805258035740221406389299503834633528504312420507554352275323194990386852223966217043792151337463380889003536109026987989386355089895501929695811382858148064021863582287001368515314223930479234291310787420794400931517937408292208057020560216552934919298142235901388008524368232851206610168385358049273428923286300002665420819308840665644346188700819862867839108667975808945157820134156294612482388107597286208162523280642691760271204958675380116957929389360152354288991868204129429930871663758457814406569605215302199436746655069911576478811751557002527683553767524884065935644070635190511580136402143244058674841851451235783560476294844321486022807871349494598834010664161394236849687865750584979396678833576055776899775343584358049147231935790454458367955283432635645476065652130261190779831301689223192685298441646292641634046411865952289940418354733395696194439186464085727893113024652282636790389174659629623249774913174312604443660410971729667195345286153360078012714619841143685298947722327054074307663374406947777054617017116581449544399724557126081050542958684466939696239611792026206850622182360313514934629670733479575849410827062483490716171044498760377252440103002684355655887476818512911315821155281998810177968789765305290908364069032556943988251019823973505053482092100671036856480708256752167862248525627643884321908348506202243965568423656279676018526252688259032434443537649029757162233390543434998564487542265922992753439261563702771670629085496196435089400263199685615051341021208896408068452513564942219421111713032951178900460319188111316793192214250441531268673060659972776997273180150042076960270048561990275219536704506510353336713711559492945711172829116457447616352318763218362654512300053715350174384561076301099268203987884393713311984347570395833677140014350943693779152638798438449394912193637649642060640957083626924783215549416875476978758748410248120639826467172233267591046770294217841327824536702064034544927301160443617679878712268081978401938555128903623421036581117027255424376995565818268709930293770159391719791057761005394863510952179686029230104929407843432031292798731329412524167644586280110136507263844716468248198642212311107122796779395061588449250242832016312516756566657719733577284582990639787163701546464212533404321082588713518341063490570465283575504980848743570951536410059935844209201341965732301207122909004809930006411520115908005575601546046188483405420896484576870968753772222308689165266495505977851858299318899448510497794280660335610740946846267732052919951867716071223099127653213009599735181235318712400586117725408134381650230896474173712714956261308357270631375434196070888021854944134317525217524852701025196450505493840583210492065404705878741811282057975305375132222477454719749834828665859356794040042809524204084871067103584125357786840765928053830611217389217252227619844733458882166470182901678579014195023075841074858385482048278569387510391689468989465816104452200235459410779640249091248949151384044859397292288389883335402452506260549642338181163508759822253442173708680157734548258012522566916848911073755431990610114760973095509347233524634773006671859730281793841572492149257907008777923044612602009564626854509819869613284506563575687038269719173814479501360626231528210720532246973720461733330761923798767607942512185711364813751146081047780798918381887038567216938456680514479669737612665314616990133555944264954099696364589637841091735933968797145331683387268050056586987035665401893582707061121520313521203040454370475404969022787197607475062765040579003364194280115406162975238854698232991287504090137856145832115746362016754103484414614046184621029773941108315286162274775953926547214140961328291354841880615243095573036128708110127368117308602425984252560322004219007635310136810866840508445778901997800949239168864686435279743376497917312289364476554007765711923405248389789039107162933373409580732243802591766944848567263844175848544953246760742090992804010148864514188937499181608513489406238142570817589466379116596973669135112899460941351189417917377047129888530264885769989711781646597950505464082862015248651062635553983930248061368379849216907914797483340856142628395291503988213033287776282875069281048911202877160444079796757569128116894097269224000228273829897159570222655651059280477707040188151062830245203435256049878489074105469871471062065975270752329135288684065291826475042290398301691731648357193769309626593308434016796087681930611683020101614747950747206366953807569010828197396135797528910165457956172948419178865785170460605482776424351594087106913733835906227317216645328487588056262392818514865267799320856717770182137951056817305960705685517482146432208583174026421814688073871352056552204618784268279415088337522796112809012733448092616530357023485637537533858139135280320826957785143132818883944308790117602898791115647967242495944051387038959738720156568061568251445438660320359831067399428875565836183236508007998417944392288402017883497392267338721696317028648419063735514714113860308396308742611034534780151834993023218997169001698517278103996069158999249174237815489458196959852274345467209504903920688959319148038247724737073131862280369669118837578809454894349566715623756709403596642996679388774971732752606359229061155456537140750158195188016926761362046611242701374899506945679984860007393550947604678027824129954437760232194023495760964579523981077469795968617312077658977274796472779273223971254491964615787976319995882933993437149224747703631764561568696057915954574618086287278835545214574118131030854377239566254598145660750480366538318045827875844725105749858591833145229524830759122158186779020636020308082782487388870035717722505781499463008795763766290976521575626436955738067167032572679092987392459385497903160684124806643272026096897314628508890655786571256411477723172908620169674724796723069810375044678105751369603961762911060441731870985409671037774866980884054381208357956288224921195009743825780231375847950783152192686731484193943330778186875327416669112255549717014260630280017478054883174910915974437423547876592443883212049985829601108085480898959150782917593153043250906233760983756558022104664546477952140583995840539624233795228849704311918606194928368086510246123258230504827728681727454830692779913048951990299607963470175119530211662339635509972209403123653614117470446670174572074937422893931536363561096336240679618684101723712525160170505857381704631891940821862577482600937526267434483377889043426781816318221313336855728067012560251458711528843695770958329826514471291202369723660680475759876396688121289451418516521547699442394011974326515350804062741519183726188726837180212734051227632069537774441729694191187267206414743331788948893574097026238672002873479948724578871458068317349348051971121762841812702189428995079426494057294383200229800205984837431865788727601212864773398822808064643343104862941197090588913026419329993357497771614252728160359805380817907274528158705968449497192065381470978480897787483842798457294590725336843501361868913676744209598230833512822225726802070334107791642536596054778256883710359872411692626386357807990723709780970176110432447382783383925415454455725770519079268186345177798202959532645520039170044139745379680637656155087611233435775240022534726609647337455948239239734106416434125831844798317963957848796368404376640073301070884207546726615373578919583989113893179847266593630372676144674079983342910734043002452071609583497869063875962469060629281885613322152557660812610465456666192319815065486848478580957192757660196261411790446839719423927649386212869255950002129075604188064001421798142834284872775908988227701259432601071838294179646218201580432181813615006267355541372897215476660862149680545421480568798249397882819465662965417419425382746755737794881811548832226882138127663716960852525166423180020470330600945058489628021078565728556134703114004573781331019422867350516456237670030294007048874697395757111934669538190326452679879138597071233398225538468690562717324051880488209325803800054147524539930238604979052017096823366540337306493580690824951233991629874438448673057486037965098688589165515578827602822159990109690272769478135219078067599957907679458074959122560450897098360223211795881611171617440894986457009707615053857470734020085963901816197800941134396956814921117383608823857621884543996489080981513071135216574921694607227425902394281529334727638926871536430672462934735946794622877364173301237210214346975377039410799708333863551134330995060124547668815699548862004257481905769794795736801192876581108017097890578029974663758851465454674663880677094291462974586183908546053684031313110112474022987320533603477815489064262192882835319653413473658507549928527309521271781986514277003295488705251023440494082574541511515117901381279582118168071679347139020966087766353924269684079800831516288077929023442192798750401924847493633201276262206169254100722336073611682016024472614247713660421210090636044208226463466499863233450973359270517125356604340378677904902846272426436845053389477541127428403926470073149128207840412811850456023716924190875149605451818208785176345760651010222839248930692823960030162061859198303081648220898050021688704197347994099303940864985871261587467913566391548588519327519562170127007044145920410884776771356523983605587621540535420514212014275849417957243274283206248288670971554510143331044460865633741156744682148970658876354205785618568733639936815131589072098328475253335685827315063223969100205432387392310319422206303823933031438432356406660279301420697095917420586658022695893160042807395858179187469158024317213027049873842776885345567073886730813511022945438097617174319408834319368476196492039538912388387559333882261499856017416854561195891980784464112585970849058342053053551769047995383816491133531062777273016367332483280923108575710706091322386248876956373227797099324054381087784700113656173144136335641717321244565401850576780202646329152334227292669908457325100569381090636416281447045290799537503070735303421844492287850945121260426894605501778850624972759290144933612843904065379411826717718557562400051205097547397469731143832533898027405269931641088303007039428259720363358050275226475528919932684613367333129283146513799820230595094891289171769777160029878884559328493800237011378292168115749211530745150611250253278266885696253962722607460096134937314887360942800474133140250523588181395960415229571549246036471711962573796114205421104916159082184023989549759394837439649436686069882769104324706925064097189334076811167773223471000392930922979232397068656539152837812336292721454878250908964513796506459339160029005941508102173618290127584598489291498330990503509096492320060140008457045776106301315218173379556391858869640762687801464581564111316148027413028353289544978622865720698284707948428519194276063705198964925475322739172743919018256603639835629484769501069967845157927302755957109307185679026111990253231243313947387128892521384852919315518570250321844268815296260089879435402508511426729413525094032084575155754794272679536242476061826992231425427181518451052345540286058860714657529721293365082822326464844335488850537113932551390925967522512966659275767335390044100319267199766093000356081470743696287942954028767106609666279315493012229354565300188199224362552509806135495670474827316633763010937541750447033623979212369887557906001186590031464630775545513726372960885808065388533869159583302321295103369534355110564947253932272979463159590443609654128062094242949099326809064537857748982962706961064500939447567414371479781452365529501951472227565890653103371173875316585662431247607602097323374887507113599398685875636519203418940825325935988485896143594867026887032702913815114051969326191412638275046206469728409741956027451868140100303106894228552043461041775472103806852476528822681899850366778939252342371065999214634179652215135384686013868245128141206190153808985319497298068345592383618244865933306721941823291909936244622872108798173863498672237920997679296942827761569303999006073500607972395180509042455327267090153792444961752770059185720624710865997922436393684944926281607348848454232525894384716980468386704420784869567800145361229208574749246291810228756544228898622381103919232069150043377382816173368854931693135119795440538476106837690752670116584136506637048725539459757683974041519303620530907623308778406461350512891283627911277672829472824624606755815161367595571325655793078991530705859141420977271940540146535776244770928683682534703172990545384653071266045045453581658468112105809364790251422592181903588897805229358780980453981560041771151499800480620345413399529618304216918324624858218419311389332620672576344280077693169353933031680789530234678735974879352091561696417581207947060091395957682410721887117796027472197045784886299902215177030300268177931707925553374509467007787421002992089360618900494140853732059229790775371132389072592008957163923673900826762795237104509558729072436456389105884624870546136941650312122294420163808844976907526115117548110266703226535497096710544085967164385629365640767675113554623898294859571067790554198271231759156852568910685352412348151127733583238156582995012618830020676374953119832505312959548966637788741922989985846842892220565248569265687541875744385650241489005999550711189764487782076606891158041789765155368543129629467087881390024184628207223465468384079655029926574477510727062966175766303663276192584820066524017347183246952892370452055465730609213247309811734622314981848659850526928342122170045445960850612716024617061083575489752187483271308567000967557867880762189821190069063904138144391032234542147371397628462020643683007406581564611136434472704714705782149724064556618947218194220317140923557206400036953216440826499590360214274284501266367120313080975793166296128450999022100013198311642275233916564782092770124769807614466301612514719544345812572647275248377755833385149534374299359344914153739591357992704606889008600964151254035520291295876563930356257914724494876263797747763001430039546065787890335441238243265344175289708594134150772563119586037677287893166670342561599855121215355283734351172744397472498199525662642760524580340048057199839877051262060639369352036015676600264139445612387432817795866648302809628984860657348138047287184093961878234041346997018784268745152860766840044091216941394415634719088812147722677001280717929399425420893010823951104326051187047610472351120752185793225126903350818278555805577315728206489381009982028193660523555681700190749547090845867820902595383882229487482054011360934023061753472516568198118057176117232011385246482383835162503845200202250258001099550682046967828563600969716941090395380737687444785989085061531775330617020842261282992854679157353420633927607167625470044318731081209983064902686364248150248243331438916142620634345578999973599924526302962942428539230609739640788672801629927774861227836274994273019027285468195155476171354412791168036756703371774082142264829645039394746330772104703076526400011791755382477653571701960842514864782880769412023327323918957459467177077223535437699104984129863535204080200247363291328707160746543184634732096640015536652827015614860852992795220222575578492655577206143048589625278583795505828419103561934351086749065012070202071051886663717545648245933981802014935227577685617513451287117668912720890759441375589966739658765381382718345510608203573917124165096512126736289018087429114191077495294229122691905033502238066696970818139475668092047638274720361982599063893212968261289118014489818785816468754745006811401895348390599635315199989939951615565523167753253113145881023687281735244656438320213779797911255971057098453389048984087425616162721991415842818196944214537886530758314797565461597959095977294791172591640045109441467476938196653043485299205937884240969973719376760241835725512635136565348219345009039289180792722740950279823943080238383267432900181383023693892277991812885839112925639315476877536797438486174847668800026638559575149215704531565954606985528219106875534395392704147515418070560157436027747053799182056732569325284038802460180325160669611947266882306714587896092365652938106765301414529760797903208330001523506510065327446777921678926001199891244846539242852552064199879379571161243489018925334425492045191409672880779319383642269803927952269802385777314650751382786412406233767205100271220629165150569772726934835196784860429005749878540889288366400277310269562734772531782569250915953533337908040835190179266528160785627117317355066495157702437294978043670263716733380577968782844620932916875925259213213324156009167630997141438442958294332306664026158536884921716341049709923794991888863237742433684261581005828488584001069851439857882832835415654847025227286045494170871447854422211734785309113192960248383774851603377419923972268160244031138305156088744332584478152107722719514431743121261370101826153277297040463988102834138106363804696533706314500921204477997329539371173007069840377224232966738543377423367712371139703509403966664527969230918648300125553996966284627623313515067171321485563101044643911587057339093544493617576088823492339093132185705193401734390499277787945955520638757873740108769851410458932479180117013321914150422190205567589805419776488620683928101922036027365178683243977624540804422117501174375251293840078256738828242037508410665912593557868955260244491327482802787579215455988761653290454546311180472916959504490424821730370508996165515889184058870389227429036018163700022170033701495037285586861598185131366720149098116724678684860778067216667295321977603158958953099663739742839699985791962507430823255282331738700381330838072260925485887039377113157920514172600624931522477181879137962637358515045373715514269408552400976846685240710822734491196357020675420460446391829881234706189993873932789663086106102271484553748098359548035355314209835657492248179077705255976021208816618083500231910625559952038661541354786965235206062572665558605345179231817781873278512323024586203913689841682082711909708824911436538541031838417682993168609340752460445770393374433427126248361258209479322511019526749639815472478201973379315919574732152886889188637524079684591304411531568376441750163276456519112368256254039228614326430481313548207388819650184396156688622418967496974818229426564528620910909955917128120748486684794558158673259403816025418163071534242167093080257308276950859720788272215660452495463726486077727611901972698463644176937096557827832781325195697119920017112458639394041259564343109078216590529144198080444496870492544711768782811700337837717756318869434386099161371256938898087292718477185279874181169000675104770709663376962957670435653177590230157154228773045562048719079292875879388899821191127561511144452442674395446150799529772175221056521963785424705438631947980244628942422334855408962971505395694382218947585122779584994884518574346749200743138900111157150364753318607156420645958391954564548673637584299216020586472346193083993403239256188212525275006820433011026477960699134237924024037273883543092575290984943657296727103184744472367322802173258617176334774814953890866248141648253997208141190522887336490095953751505245679929384634600334873390083961478726723871515667056409215879201408152142100400273692535562705192397589579786247364119139586711951198870083227371535108355213721990539371246772774059445949102581753267466119761881814054880208967172842040800968180993347700016432574881007724741520774256809970331913817772550711400982245054529249025312184865817875760847382518430683062776078716243234390538546557592503902997421424843599432436051917946277958548480525083386564689190657024226100496546581248419797104077402006895362823736430256412988311795347159223911334445640167269856148543719450510873772697154756075447013914482990292235786100620218285479643236817202451483412916413958394854643304484503512369581231249687501403819938827851720381766570170956691988185116983121166029226067760092658693159121891512976777085598132986917778603283393312498920273394042523938191817612404363656676065009265348428419366672079697900236995449536606130377041972138429858983843580165098491835115191533031924108391147968917981973766599999001120637245896462768107023595888686736426551087655816490711440075196012939762614464818557075065427163205210095977242145109626239837591321876043009649710896940315478656058474187100475730460043078891869560383058174330040695782805540533883011614303200663767059864279537691234972792020696608295748733292602422697063024340295104409084500840302103439822915408445953761672899469361862010579554259490801669562019462826362245375998622646380815887821179371078216608114070718445003292994707573916935588738879648198382658595166002987793632437221316976396136830183545650491267265484867895264086586085007369934876879489402906554984546735805670584944642866404549298392984373652077726520769125313435896577674706856221945805966683434041064045424615792990503381002456403697587567257210695138983925259900325872184617079950158850352826967775881740905688756664449334546589141860667310669719307350377750130419995433596511452235479511575238984778315046764355504960971300486879873881920176737244455640683219207712796530043571047974970343717075781310146034344615332612120228349077872870300782451853698028495595986608250407608310127481865978865483396908226243320028847210558869807585205239587375267489302204351652814960281199911859018406663670150229366178940138298260728465190126510693875313885304210910425351947100297726503087662098784577866554601766830672991208294316599063200211398644425039921556913873183534739992174323292408417051114174256426291893946567371756961348319788013543888267164841031113247128449609676130379591044880067437473243376970153785714949689065621706315561453627557710248452781173421691169278345006024484816332884082297324508332132132296366379892300009445753076541589252621040427568745401037293746321764524641395256400306326436581465383643017531042282700069547089230560553086033625812288280227755731309070836298001495140267411901478019178472485499554539923546672392426545360129446392425268210363044570075104935645564329219345974416410085050922056947155837762493560703917042623728616234393175520035529635808452699644623424416150271360294911567807662332968271545195238391360838323622333679635877403717536927490246236149394595918162675933803099606845976438687312105581316894429723200647861738681069181022043758593564514619592457966634101034501816592233495492479941518589695765188140118313564637819787821502642594553089538667749221784779259072961190685251866891900468327612194393552576058240523385676204224007581576210827666200940847082248474550833991720248993632394225968665917518725862454160781448235118396659780444000118898885557099093498918831311240662301391066313780461995409899096132624389859952510905851582405928008559259280175326822921116493366135091824186888340713588817601434173329238848687413981744459010020687394083551006673878990702381316537780219425129458502185082949888310313383691517053736291658955026012426349908089063189165479527087041000085217771764461775842177335969871412470883040781528644068268359220060626053095158538514453835371887217123442146188475638902116157131888302255630431665459337091452477814075212967567766558472301647095735397950588978220850350107159919989147746148404338972613589448673563779226742569521087313153767865556541817346611702217806623735110658065738355265644563191523314131616682245473049539724607627264274003515578133407342362508584692616340426283644509114344750417246866005436665230448627303174036953925752612821411397498441903657308878508145931541874872033060240957576465274936919155315935875440751341738235101788177927575783829700569613696026184027085076301937779876177474660024279438035431666412535664412446290968046306020781967437703754042369635725485847581874049420831238765610587898398361529470431485129641964154735964523487284160235569324804783664973606953305934101363480033873908437086108729303423819557451240952929904222885132318088011806506730710668284286575359305301446723742364546398534010759006590586422387386296538127338047374867411333673755812033428963055810811159943595858690314077069185222376847935655993291074597771015625391443557271070712505619367016468710271152194515824430161627882507038199725045585766667118894354394756423514924751786158036305343312443400185910911239541137675561683864308740651596480293781100630401120352937715897015818655344877674673795034216741873056464167424658683277952967072869700721111351399634579999392973305261543840842211397357694913917524924702542680124894470921185347554907210844510954495596091794533046380428152362565607973696335693859366803607137024664236748638616948964986410076179228695704847317465385551446850576038827978778022990397094032856460828595218893128571418681319982537776739790973337304776824293781069342423411200794830593014751526428670419219955352085432143379313516817828491921550013694254009479694603130339153845849698201842188068304538160904143853262383786199128278830477900610438450725885276875591995057271829753249436805128452558625309307386469641386742546492870984069025201542354715263430402882051242760285209378222079257480885090611554471491806210497849175356368438207271042119815761893975406460241381008739231193875378814905215925704310994015294748220957788804429134363633315130350155561317546356536817090020159441557200847175863852232427403099760739303254862551752149547767727871306285904282571643588765059975175938707963393719255526558485590982748873062085003589240703852149573358176927086675962792478703032206355185760764862218892896584739566100601174926624436566965581843537846252533386260557386039669169628744813632183156069618441017961453885124331495775805381674305461159341779167738039274899619289574399996983044386292299862614143459759546617308273970737959023984030313911364851312670040329116084700422836034477585020281448821543271183335474761438432699234331041873911401605931286028536473419269745406919984352868933423261943816862138013508974421629137380178623055230834829296576169181499883225591914294765368054909008214469139370912817534180337565640850173665014702959450571612409289933057372346379266392869205085096817388702473204627604233041327037325612367248526469473546160815979195058353294803432787742037040527933406020999968917454929949238415431026595506526135558065167419454687604896734282065962115484454982120868898649023791544415882705875642852725251815892567428895806769903426881521011996278232409360490438581797034749345105379787738111120741542500141321672637679735962666825350357806513869952809339678767938677417444814646043730810415904449390452514560212940801407017167817713297670719023054930904338922440181537980275267151663694594301573776284030394586360890005211885975483132263450916842901173927985498741699956927303199938204754502313182985005654648534849060900029616481030059175569236317045406030547677909554551637816167297058890212057842106467419729344121591311642633503613250143499002443636522513382437896760664745158152763045582956389857579357270689899702530187904631199864622353157686598080476182713994970524451558306627351863624960720619061169120641722500384618100153460386451256999468244749181686985541301817810800767360191979026571809006814606928079040985594051460025241784026516393833319814495444746681802109271623743584171269905828614139619391407921566632630004742985795745902278020228978826855412779326389010679853691373243409071901091237613644144169228748255004189143087503601756947638043177764915691618975490064423152347081149214908884653901155156862094585161487404982842785595592916873542129459374652707579501344394637189410805576739042017091562594575019380975716309157564616267557855360465172533596496208459543978984649971947204297911460850329428135073228038392501984025206398124208519044676607518521880345868016667653583789996703016417378628173886209331366393125905674483394761347748209380942277198040933646286728453450474208222322433334610211896563301949654121172497482810717361968236202366929748155057912380862141307872706571634957919091639096608642205355722542084500072895161257092805293758234081122494838537003376794731604593283922962997081684014355472497247532060839712312331281898636452844706140805604325821837765146412328574401618006771282151125456908919237139411336474431069763728522375107029795468755829592019362616675706307478519595793465518082223112529735516822264134104861094128117431773227886745109478883909731086118724609786597469281889780827565783569300541234955390900434053536407919973120635170745152636514536376395678538245995155912396989198475669569469025960529963421554215178043150459560602353888389643914074699911035219003587145729696601658128657042380945803198654740296717344005925041964426879866072555174535698098945703384793526364639829901821145776739237606531065684210762467857102056371190741674914423578503101159140870661365454129444595667312787912357659349248779293912897679448106648200623300067584854832908621608303955267482107048701574432554169126560374568356719326740719609808081752758006795670030968127102747934357437563450099205767917431368805127703364538713583789043260361391827824077718004556238387419482245675234234354234568487164607388619595221014824080468637393099456949088768909049309794407476314063187414728056679713215582668976329830768129850574500399423557366550419302617448325302267616064377187756656120384370174339977931295734837852042674883387243035961527036234707503803017883021660709941175792705262107646791209667370094444068312390181141084928598096772260614608031198733513666641303714961104652709218065661650458983423094730354590271649598411554993319427217344155230625361543619473844888878150264134359933849118290743198897503995536152278599413967396151784702193388993819709128711751910360891158663440910842498155263161340173414889180211460903173785765095663198620301048549888956028945279410415092932156297581306020313796842836675717931291398570839211193131049350424841806674737625152429936217752764183661042111556438333225024788048907135590489899511454592302624412279769560430511245442830938057861793004281082877559246976423029628762819484243487186442042754196552750860307599895039324689836986268616190368087728068717200556756064440486437690846220129473944784203953538975342156999929101966516069913162096311521863153760911976812137610763700033566544546212632346294184279555191875077747601607874275892021918001750551493597449870054721242747541612939154585667016051223581079639345925331598406813599063490676936458605476105790567445554030381106629583870713329431647352020406436314539761232963169742296004685277710740671312281819957007830370278592893814328463968530405485473814867009066051396388708789382995156185328585727226818893063724490955370382839605610782706095466967611480090012682878575832234359702509247797015505767404520353618216623382971143064606870895706935216350974795495500685313803758340475449751453034958986124793532536152807470698375010317177072508836316170386322781549052537193063370568411018335356076917990304605447213856883437112677167508526035236872080297070187044072133507537851427245524452544160637862012565972871415943377140404484871349490425234535731867604624690278334993869505086152698760576733674893341386511489379237576428171977761035765302755833851688394521233910072901192990189523069827705375815422831692133092429234552507879014318957203869819881501039751169598437378160237883712649046468077525416980148810984129985903131699977524478736185027055255895365153614813771742206865199919075350624247315708834148347242967792067049494305687658504698680431540082033340472215680182168946628069976984157236548972302332673331771548144189682459476674010963918425159595556200666277798388697132780928530043145000028107272012204119921405999378564638260368156450101570035840603253658830985231308309918803669821220824978428747820652503325725213386414141382335410962931321674873267491065167604135168294648887635687046416157881664442177968926620344585379180840975596614811566759955537790345609085098951521790773242017971267166659434178890053718439522506036521632567484300239754963244591726968082188387641606051451711173464237309473427533123990402760245957310560237735017629838274843992138597843089952992704259492192621811085128982539985485729834511697632942166752250000969785213488544721945188954431556483729077341061201916226318999670898701913860711825338266195585967714792868667210957840231575482178286619739606253971054077783373724765406779922082629286902450172892737498686897004015450522608712992450185517479437248867092795201704377452677815270931615296447138861850267036391036608085581344817712487548759179007510857508108931075165656574631459003584134613729299801759163477084407830468873809662131583347969054219943883670597275022537572168430726798170657308387187914042827321890750894262600119087966156470843598616224895237630852689194589147469147983815255014512872854281536878814597116158078103357094003364198758049935989674630747654366316102242285655213371475459173028399831648621724442440032855333771518496841957128896149476390057171838077340753813189205243782164153146740382855584335822020623956199135858715490059011094730214613724067385825996376090711896535234406183760084575253284586242549760571087034521254954648152435784914443771031780604314890937643951868827386129889444057740753652416988530236517611387260896754175970252755540281659863824957542245299649061307590658192585678553718356796778359360580428155351152577418243253492116115760216818850248640982254623825544333512241163451089430721624796981657111784456632742300392862707521599255473708880190725460221215770552406566581084597698429187987854511364079928027071386768721806841102538949692676702768742350998082578393948228989888369828344324783994798086028757948294813115660824347221259983526767184397298688698631273108928750222705877485347230701298514560806967174855445091025357023484000917111407457349943529256328898724276164993832356983420349877766344264888948071679160429848643868509688778710700024134536100644364834774997489425159996059707612864848631462774587123279407555542692984528512646574665195116069291460632652347354308917753657196085186320348304251249330261887843077190713945063440402073341459778578765272079356556374720479354929367557849425814339004675221385820119775934782639385301986377592450959557686429240119703943530662110011507281310721940099833258418342768031257016173970282868118062103496698993159624771307048308353825956241305040196750607822221753421421710022736777455363385856188763289024570847505821166716868982218953686210066446153813332386598716366476966047878807008669946041294489244265218729850109282486818723457774876223267100696895229280809510493342922037026856657693037995033783076052443959603692315114212266484067985799243351932046670418091951357230660955829316726202442214521152758411440135407828989787364923608062545383223325430030862195552581035956523036551366117774039007658380232265747318927118313648545431072137921414595972110648417574577902592785340420100064498397238148705768608716499945229533203458260872995854738601358958372762933403160222045056182633890367568694983669361736916144573611948229230227509613253000051692523076779837392066297088690969729508513688726801403432771077142036162989824927189494676681980687779474054971556306265686704014695705125966126899211490108164938332797651442985068350005145410142341795198631452073547678933613530444660230018255234019098177519104740111286573537130882272810142192572479744794630590595861986255640574605461823985179199482031771418538029503226005013815444665983104585162032360272299596585428411209020785973951007704512082341988690974664597603673864251693791216698267267667780456433934872534760184470045814111919495688570461606647252125569375409845807347431581657583913164153842152502276881931363295724057119264379879415492923985113698701913446980642111641802869171035299489101597456536944321616165594593551151086177461311024464994857305781325568450632359559528156034008389261866415549141475772451443515542679990877646541085000797688990091605043454137285292721703317349704637105669196555242242081683352273453463671350193281893283760943988989719722408033003882607814910650962624690656100013413369092332430709091464761645768038007834828701709451506547058099723385993498233469944810741082705871891571106735565280323349176814826043393413936062054289555091497219042814161153812473920643922347990664824785299755952858529331499910730381708632259602586901569623167869203914658947825365443401776037510975341220753593399163945598102168994289504376638349286499089364817123732716936076292971740047284687209296179093175978392038107544334570588026788325628472259075363880826621259522225081381845798967322576565536357039781517279900552185678840435836381575595856538187800076059183285007464236030294589862005591850978529209088827338676925179913655108587515447083945528302534019868479163251855966186924942903111735040961456693048891861045827265569218170638703240795777084377774225432572136660902028274922054229345166939705821255113868579032674230222597311618522152610560861375968122743290327575194160951059720596250479227419484173402721547878388217423851281046634160911145474733527132652942023792386913207361265691598970506318724728386036696585681296968276257556449277104489202924070849642845513577778885686059666165606271962537035489715241806180266337290965120585820886781203109701510788456317760680719197707324186379473281798096985148551103512567456996893149511016854145585074628686763062721727533934718357956405826533595683919745130326557226101684742341391782057721716497418874884227996035456530523065183901653756697290727499937634094083900008109139169013901445778567700561793643928966618497789806199846463581782093300060618491285192717382906728328889045397337541680829877110429802498960979026174409577334481949931763024600244082324304657092306921122376224433320670087851490990722682034338535854165230870527550467342928375989548740734891965358478032142452958495517626960938828605438770177748675921254859569400783472887455426209039594533949022512426865616946235850836254186278220235996080095084537698705429364474505191439576882730227313302200791650131201700561398979422102218533607466636312672459713289536360713531741870856200324639034984786397781840961747176297961246813176261388063665672196500055459366159817259223677666260846046072824755340832252414620219543806811528703186693881762142346932146394314085537044438851395338525539984511324347060990731407350258132569651348497595374453960071848559329751956131001924788819350727420919633611765754331660745518975178818655876417105649446919444088651437665321947420341374498806825564690101787624255045933826475786250549532846743302223253599547275054371802379324412422205471904862974221479743239274582309312563586093703853572778976749650231339024163869266998271056622553797961908877104963387437836161223830289405046571967793387275859742784747758021510175938800599871521800926078135125387942671410648144811979018518367204474250703239327252544598658110282674440885529531642739023146700007708307936668517591233032068537981030034336403228381107495189022911107207618922453998319374879702595212136586884544945299864727405806357926578546704831730950431717144867727218270359262902402514984282183184579019830419351258619053532043607001866399182198869600946893090786821966294345886190434736210147157897668919531953991366524347275150121694910497341134259290250486265012238750908393441052949500777369442248597999339143271085789879452223991815682541155618582928021879896852209337676235021147628298586349506582841388788664429894354860446771801618940451230000956333747928746327798762969060780668385888974261997521398709628735814630199027314987532475604750990439807494043961493857919381347949322966237573114573563542494268437865337071470135501571373948058326992516640813569581654907852555038573639544690901960771704657222608015974240871388127284554001951029539641556913988023248353115054034261720362936905966855081938342447162758228548072930881962055354399799397290660766903891516825262918542892289583614161654625003332976416460894338693786180126269799513171503965485110495142042428664905184875177020986575718445740050687750691479261148161349678762818950429425163058309737792068602585200528299330975314595548155414603111024666062307730698332006824399817951149210737656915145256748123243859542734773991433860143889638218384082356533186033072185590836431566969429795776060191634843077216290188781062256288245647257571223414062491082826564653938410213085392611280095407838025647951309187580734312434371094868891943368657745221047354456588249174089689714439319326381007719439145782983160775977603295955637562639014494946377110292266748675560156939721244193891325846698492427744282384183228521154504048424326772016537923113248923491876794670362406630290991977470902414962460317956708578842588884384907692680447325194566978025644093614144965468795616486179738640259178246822284839954133044255335645840673514498548227382778809214390005067466259849536672245447582126710137157291321168132800858679293778633236536283656301075588431717053092516683001218543790553366257325170936979016917271785322989319319807913198377080773952160415002570564561904618794345209416839222196954256283609876868107897305292029028992626987832662314450554826713310457143804489857444464890606855407340499022764250474442765059256230879380556719366051154756399683873401945914222900113322936630992882135048638848606647342913830292044376644885728333715055175546115483958727923874550397964922806610194811840259226507189124484042611452052765511022431104887997893664806676400238064041294677173630007694727854836599389368332609737385602988153238749676105139792562815819368212549544520415500029618395651871661483276128555824568555061937425342026209716003473410072672396697208175721119685893560342661455679908077543284552943377702061450495943723965405343766225098149197250812287695238698503420053480173761568931040962715708055886651572793485481734811152086685685482572466702224766252188605481668675105673107365600606945514735176509196844482058362394155113131348558110149370165194635676619837309197677011132964964454896209376808368661181819865483335409879362679502190376839021784158838090525584900520282639804742397633662099506598722004105891947011758428108669000456328174220862591074663781322905101719490947222198157539641577039574477965578150447517488813646788242810618448333367920317640781159429397462958212336024141435388399209179203578281192130448941962124344609919067190367879924162504129972641934887863606904240562150671062865461535563460626885230535413635149636964238448587269492580360981632522875018772148983128453457508898998956570792467564886223874772728533861201088252273802492175182531457018744356664347524992360291490960741028779649266562547558447927671360896034174002967619854239690221985455606718407928482903700381668349661566421817653638909914877248532477348756579729964247315712597241314811475537353639179300826969632753098867702004466448025365075195780743705892572812764553915239418519940474739554788617113137132294726762588192457417646255528729223849918840165130776095267544317538562122716789689112968811049933141790764237202298256617049031444585246486583498927999638212755460583222270968956088960756835582487429941533644586531367521079879001794275956495502803454652631570011677305907834940742873717014455846675942942882894631707022864359053485545612260467234005031465676718831181655044674828274542280980938565465543706902214500724617040735749133829301904530225252782623480727660723240371701720995244466431051297935955116976276643084533257019833634628866955883628673103880596726398325091930566269441181894085486927341963784906820411713860213672212687156631629576185849268043041920192512980632173702092113077937499627113907269899986227073153279452650710839218692525209987807787223867396357467798344889208988767101363112911889685133798783228342362309551205291005302181352656474086467426245954289173397128502684494895180749454078099387997340806855718395241391359943604363998814606110529597054191757034902961800939229766213686903962321693876680698799754420619671360681649378407892198722460980440517291177191570604047942329647017658124633305883674177189563203507707972058458793739669864599217323751199624745181512509813079030914894973970867177707403921225331962902381731208799628513921989560955527873587799572375657009826555542796823385235021100149791508755552041558508507628824265518415375665633830193597400179822932122632603624303646039891470035420609865911137974294571719639531976540866585457182989682961177296116935845888767521088860936926014974560862974511414638894579588990910165723151311101407466272389730022300548355711584210763387392536651595533631350889021392409453517716854468419545836472079750050392157172156606968917027473470845132549387611444694890785583346330014448190174407529270787081648078583263552370620233024627453762204126764286106343757396538013596022621141230746902064383131124341567673821889496670015639203368037998273136139846765068014795939602417227146429983358188197001997774793771375366216211778797813643415862076740305752298875152055683656655118621023373890049555469444542456617178426486167140484142046859874912415273794962838994378053919596591254556709688410191263523712106090451010450563129599547237680546991707734588003225800193676023403044612135307989055561251843582456740748801543172442501642658757666376420760696659244993921190590854911950740463870011623530605491052894005797048397500822805241566248393520611675236631527660969713473230391877857242285957554052438463931726058598917064274064063359564690329157789962790795466924338422185646058214063576096789985666001910803305638166040621100030696239145031814110791591763137744573059722769958506326891257534518755167930908468584737696552337140256093682939178970287515946903030693940539490570642941100260454560246694875256971826903401664431999254747415251352070029365023185570319415902052083072511554044457490673477240091606812770832938527189354529999633047638522612864342730877837890226229885021038786752082753935185934352498491535412260906116602277550297174034414360437178213350469801233783822941364088894220110305322073865781332656730074968973469326480442683622276346584923663545962253270289795545512683071569381628777014803523930858807355630815559140071766204237792682133085453398583575458245532256082254187666896849261186011648585068914556987508210226411857020027397823706685417334190612398836250842873419788658995624017114569536381455293103138998197937521273174344582923750147342904675167163036210659226660099371406625299317396735970492451502963175864020528606899114990329568554727763881656921983462732528604289364180658005162579560121115226398249756963656130399362162477411950102069167188489860796170800006019874531290575930440876676893651630380167445437479210375723952511652428546108902258299417400910971009960117812925728195796361673855309407898663982361757075116279208753503311024986293627425588257478461099636776238442216363979127479792465220983890034970716806116101293407111211437206598231704879454943594514401171262196797958500930310302097012576914248723413103059473954875797804061108984020018768874313153282855404764829863504685427535908853492559847497595044581929019875952026700472703090524278373379814966651840176862358418146326499565091776804163092937473077254428982931616881772021161764612112568627686692092247494938431271097853907151741235557097490171997780701133598718226304974065525514009701039782200318249185502971444836576281751384284065468525840458696149500271896259484033873349563199463080343613518022294794165683920895524603603033295291365797301948335881616313794522159713750316793784548869308115950025390574906141103064258718210751240496346753257576897123878956673774044755081484850636287405063847763080484489731763524269581779806522879100895901416110546435293820096059921326028459359404543328672044653204489034421335994419632030664499580834519607285462447909242200675669239367051857942444542965018058427255877933412728252624847929952914331142932956071130437468199721354109975262392488125656342210580322780861889075556934689083185900094527345679791758820718458364220154530593241987158153220452193709783994223081420970943288350152675526513386924336579794132816686492094144168759540037724963690443933942633665614583673054322628039316629325195923390894782420305244204429033809713371893892525252913300093694742969816054177895802955094377069305748101965845827333097941844730407934578719896976379574976075353631751604354791768330274852905700326458762804331973138259227619581578649004690512947466539664851095252684473464962913046130570858029747475584709205218918853563938552090409781562706098519930598003617716509532485223068028124623812539692683976229041587566876461783227933942530975919957849804956218414250552171406007598258891969732002876560225048755242856414291730129680089951870887023569276091033096524605227435978016883901276370961040072358638892048899724101711968192554943457518500209913508302689314214998693455449553582496527326124022778959283249146130128136448370037386765191180616795266706816965422630764289721285784550239277817947075646653198337808825555792122946986379509529610000691735508617768958546488563475468135754427237055126376523940532997285769057359087346583434911878558382200776239548655770377864918115218706650400444070248562266196978471835775687931487529131140179392315454454315429502504384484079441023723057628741073330603415778352880070135942168824897254850111767883012896301523026484523181927147273642756958905221274995943270257311937485071734889654231309061707364124618895825533641512643539354634468010101164870097290573475825359313452739767625419048374197012218613092078234089598945423076808234079044358108249871907492921152154644201846973843748361545607685503331504425897866078390800337183753372027108727320289488589919533077476344999488993870393566154043404489024518020683406523309736654200521278270287617775824957675371383946191159373474595108140892707745702476967237225274022326362498270644909077174641923741585842028664676772293159912683383203260476726366472259314790274985078240136415982224005931084054569613606651037647128041049423692347759203017994378125304513688575785770100535412836064926940769428571445499557441665703772893726960784549663445630295317480206120867193479959366396611678758095592190528157527335938810152430960241287771423826099035768288207296190471596325093842343389644071513715230530099127546515913619169063245709671519601840493079158618892707764378909722106200436851378695120107614682962045533256695701441255702846178990047948816153760766438684311306723154681523220834303831859244020549855965369544032608102154981750114634491632686309710220677246334059211451479048303958442786731561258779142976981277584346206528955026505416779405477675022257962104798982722059367690026679580336961014320021832599926488750469119227828140572182810443350575008643051094195704398243713029987636133858744721954911219323423704924372219726927255813078606952086783730416520567362242216935714655217050465208434055912096530585780711594709041345627716084503328772324514383883115726801990882381283952332016867787635757435797376386213286052905838714988682895837967723613867528166140239243269037823759987377021158741321528224722195733317996334121214710434199875171340648125419219483824390767576469794180831235218506383890409744202645625715919699830495862829032723824119767848822914363684186369038967327001023385109777545801721463024839732616230023028421298791010653110085030407046265159124026820660108897711751094109506481488808773906874294358233079860282059511761041897915418522057507240158284949735506181454186915865254613512259381794417743080246235224255660903747811395283350940190295970587249466961563777867247784273675519608552587523109783975107290722272037400663985321737987393837049594578990106087989832500605615421421395390917048887931189780971337437383205383101982663075468750001821224295895267862081699473252278882381211823062107600128988821706304351920311755668704013233609970057551969592028704947999078886669177370715244954309920763157454419252577441541056855081368554056496302462957898723817082573397992586067298590404123273588609222848198133485779823350390819473111049871738056059678411648213854692731887962136755045366783648102339410459395448913969064754987260986503012245658260029099033614307345849184860846877631129726893956162270587149028731570570099165370172702607995977189040458398852879840748518745114499984481212111803177957520932000350605392422750964898819508506041163164099198084390527703708870733543576043111088434617048521878619272507584004737303485979881217139655165791770317502898347724545689914392437570947086105228957011250343589353636822474277279124819840073273090832814290748770294936358041062668589116639428351408276512034712217203895029559177512539335523826664725798014211925593394064994639442407218658485508307500948702604692522031560280489003737441349512186052999954438085230089846593710623348012091576833542431705859707426390783785997431916007391304420195328534371135009110594031507099935266042257438870633202371869179528101282766916548094146116999555512609634076889630276904607666991632676689782492607415358589355127630300434462085737157887614824553535194125428205155634159270268578842023298359249347994919051182563947874612550161936848190531362615893054750105973363347030755764221422543321680259124924570431944425399558151315913126942014608372715354173723101149229068609382216295788189043668856781879605902363569624358395267314389968159318906532767103559365912065419432300984936070865163754574314542575285576450878828050596827738219196511273767633461162094986125916416774415926910471778899894791603913635064982229906441493594688976788116357521052368713845704580970535506444600363573390544933002830201034519790071361664494593784425581080395864631732551463466779612986612747141193474178257402805667020378540026321917938232975332177496091191274526452701289641552817943201540095969431210330286377018213979449022105302878425611203827441882265686373783811788828323841094345562019532191809546444281507888812534533516830254995930872393756010105646290787088770279146064626369351162485928031289401228632209481570746700088531985888344663363082770026075950713477208197283957956499388628610514955620728432410974616522498338346478414664830251816202251365103923279081153538866218203974839163295221108115907758494141069175521471244834384813879831088091815981784781687014401634146970562707184210693868110646253436344232577763037001077493598428289191555577265722566924133326813526765010072780890292221664476225440492344416583905194554057219025564211799784513664844372556950865192896542932730554662407060878558140259420806001431747298691617176501157117073886946773903614340326203628688701357211189796096177408491010974159069930259627691693490362338697642730023407494598263143969217154611267803850066398253395503610816981103474086018509875244177829552448151185191385558302218641356107539839239233569653481962783292718373533287238173999792719507445268697443215444806979949553352623221145083442412344723938833893421196885686399750871616151451737746103847659355569880160512175101123199775291341840852876137485872205195674232522007947071166507545277687273068102944940407068648673099537903827755524968457476664446413675389984707030321746645852830196953437204749116305167008371166389153946919102819060680591187307201219147178190566489613936071145932342278397457302311297576973619444134203463032853955144405008847065755776722216752450656009005497470516712786995894950963497344967620620383391481305420068033202482985489423371541310568390959304504380729160285075661675175783663611195923302872915497486982368742071871770350206445966755649499724449748270609391546127914970234589297119865751637631840974598655333710397800046209412759315534194541086148495036717217956769525907373715428084927010244677127733589320542352194217826031495706154379732031879591590550868428007888500906297934117588939680616108954354088823212052766314071520943884941341382156362142164818459753788681066501925966215233223082836174464229461896852565243581948339364433519298685022425215916042447832393552327475822880488613855098056787094439451679331364588332688051360626772384335428897952218427446400757810065407389776468618119296065389177155498116649871758772446668906058749788460247673142793917863454116421607881227314775957685285666671212529237425857933666415197624231452246129322647301770149904924956973096247125469908942489159456403775301788352261314021912127812605833368137329301493564439429454419474130050235521126943206563274279142125324271328722529608639579052861524376491614590402602407112149269008989470855891951820152871681068644279609982182430081832326738231397984931212937713839815029141911334343351937916668716535178854288068270530279009319415623611690971944149981579534892392672375973172882649975887653361831142683279156398132046461764846154874673342229553229131399224491872976647517915438119700698813794367639735760823226279544710878589151231002474753661651478706285300240479302445234689420550236736296214984497833683108062199197233798079154838300404995986300313979332266187222565711019823919763953935349888805172612011212098724997957798773885474621355457914617710746886876837635248118027014897972951120521683970298368008984621770205220474289294537807549567363597982379571699580970958219931820385737491348238905091031231728852102211359720218988649896116182954755655542714665356652574048926865485374442409875991334693838527137721491728886777194694752609337755105277702915552561300937855692897387835573578561673870216749462819090342589655980619670277776747384786023035931555004898863173857455631012106681777080193159471415502698713570958639098644777173503074105681431700947146863040957025677836516977373757594355537149807154563890955423099888589602525765618250664447934573915054169920015918287100635590399853854897791671419129635194866406649974896323951999289172454887877696390762468946343301510658082040399965907836677927065057953080631606326629821108254565168823009239577819044960285307841994367358187892161034968786701227164409101800053568189956758551371966921933039252457924611187601195692340911003324726375514317018959008688784715221217944821717598202057602585168562105808070256328989964519747628265507886333145852834857356607056283505539334934281476782254111883833127042757671904302677497988945662719709536089285389238424676556645675498037436361512184800935566057381323822708442339581306179673671913697054475437362716092798622077376411765374822140981986372747358229211040331512122520351780375455698509350731890129752012189034047458794565897889135314169491520196125516950782692541053959470526721640190350460458026032820336743646484799002341529446897504578460285132427201944489430159348561478519350137251199497689608076244464002175774530224895110191310957520571888776415244583373500563181813589949583963231871435380905354606358016984638002374900549011431498754646448977898717880826179187093396083931376433802002242999064314093754712483513081947391899449810466252361558187889216518783746489453600492630709657435934130096290906350617047445214472126567588886418898373691929983695440192465275271834558573928939991958054318161801381237706620894390067917846673073303797239312220052467686462613413558972673795389226213609403518111476890124992131664245525873759039316072580179373646091454664766604929475739808903952266265973277020526604328156220588514108812712318554320921977496374707769608731215823408490188585834603419475868922011833808419396892787735022413169469354975605631693741607813021349400486530503783061572410531861343395584755765054038910843968857724817103617758509609979405436099665621934374764880501611715561800322634210376827914404020771953890718384025216101537245290703850938172473903564896718045707033827440742481304556912585518877243273850846735372079053066174232871035992542725999107478520588782065060106909203266207537740272085589132028205434167658590751762726623157319225608578206627584050982540069214751277473485592530779614261406910375029958217525520253251728731004878390374428397310592919183070266845221157483631134127229730537289858074456425106488541165415612491875346408633122206837609315193208433906938175410399073103352919932397278666414492890910594505908160670099057954802356378761991940701680220250233745405244591163038982114654023112032516137019764010243847785622996187079741424304860828146923768506931695829744541660096897073143733159941359992895461582507188582630970532124260755020355349875372233771212218253824109031740055730942015639818676400075941798105382119212897885864270581630405822150531734992804398055455957265865900652181535239943748572376963509500622276592936846107720678140344492080060164332582582598950756219262177880013691768062788492034884627870726182844823645380606611118184509441281896565616941119455740779836575768670081042773851040411576267728525433389614426605710008969450379461806298264316187108908697642529442445846676312561467549881958694506882526284755478007675421043055105825402540268553283854870670768242535258110053530642389207670093357106437102092694717901927025559177933950455687414340973954345341773093564033109004923336085161405533833454105492173788628525983652059157358437950082913577249563787077957993347756817241369946432776263838511847243699533970659532073517465095931932453577470115378930938837492280835891183984163475652989496691332720218268318727403627222211447405930420040631772568239982858184167534365366613843331001681904173382726371127845141787994077114710922318036836164916617004407894068709855401759471788312185887443754130472054378677798943469524255213739593543938703012964612576060664068447536970549287909915697047303691638692640807388420062964845519483393290391589727679490824089282990416909892576016643458699212995277911540367627293838017306014966541317130365162733577131858047678944047192716454100359744563043752847156262297025502685398063057774310892557745850020885837889162047568868367074170479199595874576432051056899998331421284008251234477067208080139358831256381375567120336555399370871595515147039349233656643867558388439218587643851729218274567485857185444810414177590175913272227206848414728418112132731424384241559510754930935947101231078255558437628352139912746083311313947911191147536853735433756787332116776734224339717128225547120737914653688765154625304364024928685749492767263693195150582018067847099449253689221139698820920747747351283395836874700139838052211488281339558057875878681476252060444048322090119391967021771573307912441153496485626380958852778254164029121583324526382397429998244919990209227802385682122585001147761122241859265798435245879212509090156823391143849052252813227895750397754212114155401481096203580144803811052661377121634088919111335766913075174954903089570557257002958728984277676181364072812868090334509446671899822571919075800061367112739044691641347645804626257752650432307183955967294789528060176823048225360066565619325746635052558743811092925162667017862795961555031422112944084307856414022343876018406266667427673468294936519863570358861440358868197029474375936265245500431262731838151971032847969278588329597111217383987194020192393948503070074188365784428383182991661867391139316058881055775100476129254462542253771903914363978987174923704230550304280505937997334634782170356005254729962083184705865620099842474502276851801199113579086639024152120070571485748860631100700474186872514549998583353980802495207475552492584797199988530374409912683861817666831748231000632819070106186082588829744103394143490664843590560494083314800760697596637287422539514803402821796588304932561037772497882473495639095715375753321408736412588455679294027391470603425112445877658408924385434991578290115581559776179102428080102209070164898165379640154952366441762315569325000514063129095796006670994649708148221105398896206268838616519485426158993284498001574159602484407455502971429949135011232172004963277575829978469831417628645311807824030622723381980016825636848589202018665180031598576139599412009213487337673057457718977144425978546996172410673813379065474414045954780931675245580799233345124333765328459886443759194876876839235643689347270015100733677636755393952116827771781751133078369119312125476180528293244161029216149151210869059437087108994414524682168660559312323230407700500808199231868706926489256107133443425076209352528953846078018746955985063316015171755712246078308790942721533923137875935258327273503698464202741032272425326168834035419875266729990962119185327710280141094532150264479240844550540710577230209450182505018263318481165953833662105314391022453770435066565431646155311902282677612079359278236288363041742874989097519535501543705821240484261375524433014074767422158811390595311240048991209181142791116339693033650131449944917505697314912404204534246353674212412377418589873009287790755449310037219215363528710091490402878552602288472780301255696470347414822827843617687431295653269306674984701731927651902029960173389738863658006102521730092624698664204839379285043531817752992651635771771894655793598583567389641060825535300110320241852717650385140594710216535812986106084152596232202294050960796898471380697947333825987167020620482232548681682799728517420896439586190563650947676293812312459023377834969956779030594170609476593215448273084249189619042277745208194689912679763986646356886496821398369374349537954662401710526686769813329679905518122399735487251972564396739430709366008471690378190009014066717675446718292625388320705501336045556512477675450676866639024353255242737485681399799476647354184943550320603210801915085385700588858005139937476285655698168651829273830791398671996996365608235769482233836571466309822797772500328113922784629736671754164880228158270068082418764535076954254527831452890202015717103988629563778145367221328148851102446722023827210145543864721209181942142290169561123884994619042348690897146125544679081234437996089820155268740899480205730626058755430589505640782350299373170993225910062623555300395400504617870164197928258924015074689491420459851345303913957703892946602452256152962718913301759622013589809452963791806007927830956998130694188357711510484370320119719544774427417014413122580664695824199535940526763065565781723926726844734474368238811852540862179903063929384249016665389633820373778992776877669055341244491177229791479199362782147660424700197737888528106217144988800475137058244991204557576879595322968850650344412961746441916256738644022275234297388895417332586215266196254670949738639438823839364121343949019857460261727793940243659691957269570267271739100194706549111691585459781253691840658937284779438910652927954890734401422771808154483471029618344059734584310691045939095008161761813502467212793948891142973562186586601583854836230945589917393486782897467903672679514184393513362570554805554285719265721120406558502046153196563946573679295576037944790213819464208161927526869844002608796853027605691809814270620603520628535249709924218882184464490723423023950996742639860630966162873752496184729693597660477472923337858668935806909974453026778645122163368810997706229763246710082831064863563041928662651963685876896574686768466405793832754147529222382518555502494355354004853432966198126442119784733225203032347054409741628066946883999415856028120164756259182151503910676605279569080460885802613642668107273200347139898509696228177136362517972656131982280774597565072727001973381036277436100662327931188158951166457661332482743435474089626696066420568090530336936431681377672956907381659211263353841796715116342483731094355844972841455200376956760174041743252961296160142855864769070430250576147294391154157281952634024590621833954408861216553227337437466492549752150100283308603520785869239864414046510320992197557280910306118490830843220012751506472323514846677104999209725603909555252184326171067405345147618000604522266612215585414722860799367576264971562378772080129670913143053659976126161537149906156514093208189594354534924830751984656900580548720394920127318172458537199819721762867247328584328973105227884108831692301806070412726530369397273534937060412122832149184515825475191603989912854407921803298144933515084326582567217087035183917784971366448035587842536903934963076122046886472265614779705599376239924514758730931745041970686650700097198663582052372295048230371220382260964840611980527465288424799627525762321997288155597008351823287849162431934277110668072780035220438781889987046704062716811255070628670748828366970536239239583713411377104009141368994017362197193255013543467215364126303382695359955538073852874913550735398846006490653397988913610783613561709535105042567352910160809929400462048208939181811334447630364967374939199070856408641808180664672361331698430452083717316048162448627732285149240658540531777808861192250744380461593468492911003504290375482839733950568994005674113332974127160484536838295113981977469358861288103079367452625029756243818142411183187025973517398615671449220288891235566188897592958931949640620073896232877278208509204398811168703392320340888687813423257776405811582596310897792158385618725259526660167216541887774906527052632759403374011175375136795902145495380754620636030217362649927103441409748059561304485497835160121685950570800399122848558082260403060935142454626489999570127784430401401870077236861666289079442135203936412207058074934106372769374524332148787880374453699216061730721715874096840670855621815612224738133882664419163212850891599582990671640618351236078285339476496540518275306916397219700007397766822778656158128441445013621170379768321532633282060176156043194095030627790422527449922941602976373288670205639480619172067964356034305000769703651911597992267746753720781683501255618196938665941667384926196315390241766460363932317747764824177940175880315121946422830942504074537714513307427988323216408118506620145341905907335082838292681435629752901632980157759904138105753631705597509671232233115491128798334891808479144800710343335847393435202747319801991655088813692598271182468587109457224959381899793495847974174444297492425881628122899619579725054618089963189374953899146415552881805990095484338426500295243048905320602084492040193146202850724547033991069617046381052441644335028590442178432728492231610345274597472177623772732385209538834086633477606039433123084027517527685645655397946335570950915468879368430565707405970994743677851221249684752350073948752976748096496604311586103391568092996851197469760339645688986623517876021186531026866605494447620218736426881771589151451565148994155272974068475614268224737065458060403657223769316482416186546761442694772923788752306660531866174395734045589283254908238490860462388437774344826099988107853828992309203288017258286450924787750224587799505618469602519713271387149191903975408899578324220118626740289633347041286204500423107242372654511868468488556696888993350810993471475238513869109810429711682046849253724408045395520003845269005671325588942725826929692141727882040988139064976394206091256641061741946499889580828213541529232405263888610567105752821010225174744436756207638171647250809499340817016175184640693228011134121818139370883389474617772532219763096088025842656029550712287720786819787115548132813696649859592215225393375643146998921318587504967023815290029933512496547230057628790760616769684286616399901591531133349662307063319159760430674344902280444177952368224089117363273041119822296830593401742057841950601233233879105152883470182964698611827949402183446513628413694224696115670414086040859077673988037059871587974129807363836516965439849544387676085538137064272307629778332137672332376362981833002046407743520084585298766026374250813388129769585966863306000111451014040392589550840938272418742679888817722278614880829733358780518072690960487756682881024748310206614921358393677912129795357561301485221411770678949048500133360007531830587884775359805807993285709308302915811918257527595995806023209835964779988696509702997875727590333643647295724088605063077044513050274258479420501005146887499140416671732860963046115982531174200283142422764556847798221610827141751943755462256202149726012442499614636403142965668952438657604031726931615223997928209404956385696678064965324091432658417744957596964010875929323682195367669385347379678618648055651109535013810471909675971531191737562379631603245433327317880218110063429682278421256763681545644855236614552400824981026749241654685962145543171747948017131582945048283923771765139859326737974944929241517727825649366787457025339363648911617279365499881811396144629175314573295112253160246333831410272191276879709709600961663259848912066198497929916904944788808758500362388244638897712543049000121271236425203664482397018783069218827433907108543432036584788654376105420085729096984013687112840561628545043174115701401687316109894447128424621978057470253937605931579025691335967311214133163912168975082871916136042903226077627142269363265284362818686280556371850177120423389398348029502046950478695343551457094257526801195107902678643461142167390253210826198174666491562735651448333672317221359009863264078172386535227557512529723778634152086489701281122317871016262037269296283204546266082821446078313149540343708729513875014691988643670034622018884268012552213460961388989177063810251701075887349786904646443270585424085526662069953954887973185463678692809744222234333430800673442787793485937692119664761641438099413898257449089236919361265945130014366339611053832754357574421061277350992871786893939733992352132951269760019145516915345052812291009675368479706462158906053653604182604900710426940783766591995264549688254574866482719544396230297863212364367288702592678492956532248649947059698427141667947576081515967293631683436222168535712096267346033259977584685396925052377457152145620758951773149524488262659710431354915637318878274439143568119648849719518383000619247346294647178664135046376615627714361474955072911480088379785672943013030121359518885219512019415368540547720517525596267460707197225022037339450048097379025228095110691197330896238969779988427887790987174072541441211943314747733046993803567495791837472521330587455771799270673661684064824488354440695068698491619349526242573897828746660508465236984585104779672542018865004455704211883450481108120856921491270203812030246692421724642502457623085819191501168894750505790400576106270915009806802917939316454428622447971774398599551918733208352880753950577946434989661213688348150291813212926274726881683406960741281989239252936150929027536331190243013074585817322514297912291000274856379178490312616502968578911846979032025872795076316779225636279902849402018406290196876649892508692145184131003960587594397165443400171159960014999460288483033496073992522001079239534271398559266446223761731970837130803606130832596009679499622768303845882047912797823827790184002745527656769716564903010574193426069373738675685751061501842307917923266368422045281980673715879096096694548902298486203486694562904139918169010845153237028711403503064030500255325440980221137508193932193833392440663187059150356717666637653638677018240981823692027604237061706201350619860803205804857293453331178480270571585105609884364993866596364765696873996580133082001466162064725752765616131934541373036997726566643699167911251395863095009536222925196630203914331922817103527496770218672807599365023088704433139785505348989701258912356474896847290111734077831989379791695465250025988303136639340990481063214782887447795933627202091189194916365347204251872139448822801335651907558032577502217663746324056565979307848092595601080252338289573947538047770013034002636530840290290350166568652808255174965921454511887232402013754443005977274656703803885961269767777960580435881788915039525294524269245348153447433818658738736298398712589658595746011871343377055779952586280916946288425137473833932882946304399648566013592095416694721550358967367478294735799203776018222372385807380618554430677890104296085181207315288093779538952664702581560009080766216229777800538169660998818064006483125650943626869122639410651807691391417605552362285879328367927819161401158204908027575592040963314165366797877101181621466966885778551541786630466354626138334736365434418571127969564886985904712566594089224304623476795799996727114624486950847955114189195019335714218796799794498966038685414451804329275877908668608768882644766424641787464223568168208204079521331383962943018239884080644218553112392307935752366329285921580331589962005659702505027472853837150350199396372591736072285090027498105490769157235623132790696000343864599475033029887007852725729146977618168189707693164903268281652283033748964722543868021325152669962476592873505121864693515399736306869539374217036434139881970667587558431556795845523490339213360690428636263912883594546707596387536543141047716310339402226755470330509792773140701846715430772961672106048561220466833732368616151247453037285321061741411473959414212394072822543680196518592581618972950924642535568113232987035639050906755287786684685147722772490540615806005192154626169379819961787014354809104208701964420108745349287703401473328975822065387114611813769291097738766397217922025122871867809357101001968823394496002032156779806773355656581516358759666635398992712541626490423485715412069299680140052402161591013298684512335315578918944071747358626095357718615891625016040983034949937913599042244662079168723381913552421960268366401213441231934842698357858661917524550736218168527275222076649531958903722545836968208570498257983090624173051699963147357874517228272732748465533127122793880535693683059228033094296712188479885738708152815355950519146918899077239823275883999497234763800186839202718271377469577542495502284863357015297463696076843111447985338658921140804142506763678809167050922965644500906711927776097793577743065519337037907305647524954303235504608414503313570200780480653605579465088685618967683788045826862764088452458189302971679754522509813502458495028677343060671902275045801966795752392783022842624426357784885735879921654660186171262016566523421854875588290834313287912283140498548057078621209872238926762471901534945879375500673884724619635412032481506586459804537164876939813307030449359034311352015142492564662682749811391820840959700977380992921863307809597999231361700195539181849038271537137181822045617140161683828952376264409364478205832374944515346753980344994365157504937907577409782887180173730400886857517536053882661317069897561633330010070511813353356563147716154133657478925708358987212008712945079734563083978032615700638014627305256284545527789988602497997363496704431604498519410219420604557235580592654838107050433183048261234923684410542324630872229741875872891606037345156221349446485930262753929153229386958458137291521002692712714612062322566141967913078333405643236117777774241717583325411110127508014039576233372036953070122026544770849101616368324461305472673630910989452603773893516907932727551087148783241037033062076207093433955838036991475647748484663768512644057523966185982716111232071253828016536720203457152844790455473138499543072795454906732571537362977472972326562279038874447286947426510870671633226472512379249665416699223450852760893839562757550567847405463216418488113994639484816253410477687407707144996438895320208335546787170243191256780143088481390400427624770226384944074111065647047175327665182508932249256923525442119027646662633663729110937208510723244809605079221840583224759416066644125479423064509478184156687091990069600943579704815207933413435689612421657564274780824537751771505258257989098222525013564506337604877405670364340038199510192255423981314822555699870771080149293760084356329014995851601788176527925589786637114917563615878176038604511745625011246981642825035922598308687619945068228782311508497140563493410244031624074243609446192978316543458534885241196091428834957144573653284107646453028508390274563434719867310135571176981228246748933929598836443391327194803451051322298233404069518427484790333621638529373975248681038779622646356724922047152343747309895326508572978125434093451804257961888624106301778079046404676596030932186243939667962277487224608016441162941816698124323586203401272076230026474028082092199578026403416315436562388239580719830066382010216529036149028515032550835888404808007025286863773714406429069172674088950892226896661116143951619979111987905270671369159587979118064032472648733826047019499910756983895887550873297100611769831217535074458545878202089154914060087304005225353144568455847095634372696986479177947871038152689727322755889160152800123567324942119733826673513231004745071916619821996930605685218676461490067168646410571393480543045724389393575379294245045047769194163548574314802573169833427606219183160730388556416177586282478832217408868795924236014068505984145263673992660999380092467725692210381206167902555860026906451514299442009174157532408346289685753969901064711902683615100633935203061888597904232883420652992728533480843854711181636810984068082453319086989844952475585486814139125569855293178573334395326781795615373717290529594389294371810487348811024950639599372660755966912150314423622991996976522418013722492291381623263760118907886527453254899739222953443770736156947810476095628124871022128562412864696341374711004827071197045967183731111434608730745804320658214471901501465489674948999351473050030834568080455071552809550417683023679869105405253961482045193223412502418054246039780092920361511896210821348115942092448153208119929552077056393037043084944758069171743200971526404288392785769725184043144195627592553358046767568972142316025090757261007821015521961893273357439323748753474800807027642473174026998226903737599182147034897316687515773343670185489045358248020692522351166277204385914323260557202754209574806532746536386858581243537721302539384968774996103508605086310536367277662548366845483736550874552777193027153975993384612879882356102428224858670168047939313478589988060602665858627027969127541815711730456433623208183394483739813379076156764186456908764478144982492005089546108102414328813888070699830341510485503223153451406753893698051748926366937063161666115449924931519257466470574719160289941902222848506681494277435077704207961926164262868516320562304614957508578002567565982746885103491661914746257426973031565825507903394113313017759795918348618635564999462598634970702642517509893849931521924782193080859885524051697606276456216392753345553500649422592274300122508788807376640361760482298745613700849758843313624213644720586217125731170251129529562456959561510397103691420327909335017557575722349031767352360872112260537832256567668440709587519806475328347945804957113340794046630400551707815019452817189929640768272206513148210458109420838683898466188925292447247217638956189480924629716103541213448920094217219181340046530408993682798878529020334507605602763092214435090334230612032729233803890660068597590549133189436779971592377871258038374211394950584627052058311937585607140695859554652491964727180603743414142768507984084749030387514262662574174410249755377225472274531577934780608542174081906335089644639244976831710004285959544998686752902209738907237615211302944775212854391781194099775067487036767970023855346081480140637097221359642783807956785771077119506704878249110112595285976368425014608060279065137597245420778540570212233157744373304052687241994002330977307887162059202371637368986025832232721212683528988921201990090895683467290354395185340356045879795400837792982405534518592230677538483500054649315454001841592643581216374853041588226558213287001330813701743184493178057959345901942656824973659407749811346279251877527865108619124577813684059603784929985462299907407638802811906129981573773994617176498063737026728292567146314970599437671219453659566054099755188035470517479934444084608322232448088099532480351361230011290570863248118009624911466770784677767354391849524414583556326496980979250538126788366480236914544572987379554730901579941986363815188090592239140367981145248723246576232822237293613072638992176599946494967388261521595914760184424677019102917039167566774165414787847142992679000877295576071999152457310112134296596360848210846473945683521501114306321597534996925682334608055521559964223166441701116471117551820995499738259886147640822547631349966200099027311342157977440500197377660461296272657270596759070895629315415112026005253965554179458208395580630960512581905238000144981111789552749450460473517775080727939717412743733191746409182421018181425320044032108027512464724672598729154290500248182707879453471218778811146559375012386629953636355153311436916266298643523710431331614411794225028637794682166594856280926422127110721027820591533154653759053139823070217299487334019891763739693198563393700746917441025980261515962462576612078075523910450568555820991272310751300313107178617887786716356424839115476865747128658044420912578631253774314701242572683619810655104183514640770072330820690604445609288755874399519772884137462574466659970550261241542619886827067486463603138500551739928839042212389797204379647988980100123831695220260429879880382659802181834908342721084283753175687447210279049771643429731900291661248566205440157547747024217362407933960284746283754980491260912814144624504847315308502019770704973381712510035311521656177297704632843227979513980774958357290684381489673425241049028024554546310959400536943817575424956931374891012044303338527452547636132792333380526320009754233706313891095718200639852885621468484898982877102364173252394130042557503079435977659136700306036930657468761854807515582501208306172964208177994800547201890519668194006764561778421819896860054567629092765255308286662313771934145347380612463148386442430817442198505135421255683722357526250326896079843841366161104566009718568925381746315750358107724832612324069203877934810124072768797969839642001698741987054032348004639577403728554175143375836002321441426364502533367837161447942066520341434061611644351462746933081597907443353003600918420311078635067075828367582591773762818720511681819492780980039207954849468630294260448207848754089909657457691463262872994121791671727358695509985216947375614868904836888638015246756513082240370846991928930902109543448901098722331342629166665830855753134388917284833966191363631415264108052548824507244746881864020283008389313126253802595116842619313632090726989201495736672228321655815896166437101388346898050332859220762912899647655235975105178915260249361257739713404154149330630766267036505583680878580485888050552464585427732118335265414492455441969875241627798556907924745018874824607693674626181857089388683992245631584348123245942781187896952603294885358153675012472374582132646478841093061131057891344855046249232650563452320579596772221994518770302222683121688281343123866561452819326315099946503325944617822981841888797847728330018804673203416402906422910565996148877656495300058853150921939194918068355216957596287921074005107816509230562403010655764286822012392184744714931475883080494531303844461877569766365763985620564759920700466572408599204587275515688688137286604963341875194431137740305252956883286780978154806972416440579064247861088432549445609679885980108404054519210592053729074675751367132242920386369859381099291431701302813160419959411555179204286336744243326571481725863248625175443512311575497414402524254936583049238847369935067361043374038597501375291481264993626636507349994298012807580750558413854789070817685539456905122137380817952015347883344284915918957428549441992356727118146603548521075753785814665910747430280101603853400587536938108351958608157457394815373931696435793582332129609058971262747009885310063937116243225731656224949303102892837040012156800774233945160660471442092861889826112548000846697878279458879075003308914961750307507300825961752023442894710618616232330247134395731481428952205271011163040734545817283196772311292609187117493601437775353914117219030209683258727386994018235494507260279262582702024073680106167533766154379540964705399349034928614808930039003543217810684890699807726169475178560362141782046664240033500027997175312596838411447002456733742405362699080205117965841130665062429914030126677908290361476174753015405911562121991934020099937809666547559816669570881700318276811911532084993813465817448888992746025725733151376842978977582719606172375443337462264420162168575062198990164907119083053785385306932765258194828010635345541223808172826551575129131917091436062745661420100140690278593968808409108520655063729453204961379888024542154757167433800270846857533127790313479348065927747144363708738768706361192127664244071871361100536500457833660825852660722929254855482284912341668329105559490943971936083097284314629454309997727409725607309204577788410236525900736576200557547008241546592173336052887724119544721088773306851843973315987522604955023499647196412631455531972706567589292952912606658258897528247678331841404742593865110302755281807283316468527809471460139683071658295897792967037843035790606624499581918771855616595926643435264317897485844683663452109122802484946646632582056176506632878896180443506974585782531291636038970996975285980654700547929308704202753509104458883913463443037246197420831380795640101882214049062949183192414600361789181527228545121096644403771397228856163714394088066881979693175336517774723044953882467224767329766179385492941495775096002935453365370349245649845605984505464744723483545606250798053009062365146842151654199340225196659654865978576069140652275429878960296327666117506072956899741280344903100918403036500662589767344019908143785921026176351186056270958399033383900524032713126803310705117701310018727607005994191954936085702777469140645934418864075466937415670191154038663001636204817231196886400097413385237613127777605830264446809060838082842625847363094066808758339665545127470770282126047030801973675148342193267999817960069599001396985498841604704774911598361229380403796522156494099961651188416549389504228734521679559085803024007276052619415533515946384954668042947088472616374418325092544441870023035404028766908086991742285888585627324263445480317168139092212411964062454661172209315701493284439802527160937722694834194479499085294188692732927562941680343935819132070051511879729166413693631547538352242907473704092236395361261923928593399683093408365262457993437229666810258417724307754055177040590857686784098639044862617205681990565794326942695382634886940472825463841082536023953819506150060369606250731210912228552226321737029376238357468092466163635575707655195305231305955815495068406235932990803990384565477953825309782395963466004106750583718298403163806261299203009956556071937533833633231600322818439051513135533040678952942390537340342586074838525890456786159607928567918594962624350189939147114011335096898356946238972149854658857292585555574924520966095988462420708039759243570986374252576757535913250647657886340138634943005355855278682772749139328826178533911186852073143359386024725678589824343056068584466855105063539353482058390768113232512087492136538468572582441679234854495476676941479895448270104738892431954930824244102904935690406911710130067556244239077711037198834417247834204426281341996007686706681325566593806632268751219547951784015775277768416191726139403424243124998069284857824363544275895370751877939295958525611609190744994726009050809261549666417322609200422759067756805322574223248489240799453949929666940211666420519142391051222482680052511889931566891660344546378406970715017917739955603583546224670024516723489979022224161746651236329403380749331543999167510864469286287880776292847078041194129774510724997229039934541089197748337764250765237611529417224750429535645025492926340411211339467971733981247010269236509219931110261458028516238012096001251478667022629634400065810579388693913489583361675149319495043966527371225657929041996511289968570196905363884054860732919191915570787705089364408954837039698265571576507675371936760093590301487278363489429990471080541441229629795882470750507558536952143288391317819264321314994628930162329760294230591476687693387229871741276878553321213881308360026444510376978618308920276904849844583795576292398190199160364069063072181938729690091904493104824876641766141718242451814390601603797620579186152071673312683048395712804414047591679659823417043227398870438543893553624135590661741089630586364454258154448247234333429159042525466706878917945053183409218285605128735318715879712555541297458930494101138445974782299979820264215884193112687554531687674884901840272792823928491464554978477067688203275770179651506376787044382582083761228169170826453615738004416714352832263201089895869356560782720374461386973648491248644170049229675096259791092460095819537568567461582606319177074840562837122866306397029893661373240049855529324815327425170001918429086346349276172312795738113373825326323465371500183847539208254171667295638781257002745811083577557826463073728173771873187882446393714724085042888754612251616898447910747862617119427600486860599186663810177777367747669152906985861235541002885350460323331542134473561426556146873763020442797727497515621578874731903925228965522016395537431126019247693416509060029511001088157754964426852153415820726590815420660018370232123238324645400770331730186931994540818936168528671626524319249013008712049888057905065276223366788830146836089980324344941300492797068473546328298506745369357686963816295711288206338857734858437800165935976160067905489461916235348145013360295178539600473996548202014731808456720209887355704156978454570276677397321180511459375928446795197088132094346127267549874178746796836695832974301214926916454828821042914236650804483822058273947436667650151486724749795888782291949583038882817136187056221421262598605614895906052048278717641948461662532537211496775644539493253751101179398062004334577513402223476062016140254871023897155323049789048694004469153715920434212852293016295529587775830554952882909562256652774698944267661231037401207417976420305048826061752692746837406546671077076321749391828772600122521141114487202682050865984785871752077309173138725666011032673986886286447608727988017981543564638348576384381543300384261563982273503107813255907459878579844467790407939470366870620799695733310863565930887936814322705600258826460198011296866236065322727915541206307479549773408734929196078364030286383444692913305652174186848054989485012474231703986022155449367096090580594012670547354060800753254308851893591465506275563814566228626471475286149723686680089303795425308547532866004122514577753138028576329862770042085823002510318042055929991910664832948452476362592882211611152750624870287524990335819910082047807120545793927763973913959104279915159982695391327732014167641643660200331895632917766171925162438633491918365931617065661249437885056946983905188137766441246367009473053308264782604297793630270593350328503799655975746704925072481157244784964665982453982026850000486269460325082496150074496426807596845516001667780160377977150552632947923009008305391521529176144936642675737711717294349822134854245666864124983198046660232151581081628795258933690319230767836714287734912323570868683619079366323368313750117343768566245417455610904632422944623698275062656909220531010101492353302859387413530539555815745424726861859540618662426488538336627346654401849124283602083518264582331538785146000629595039319551284588402134098695637827621580131872968016254441865335266534275393899538321171964808604059127716139260459660991595911001225514859778223745979713546869561234946899464127717718443595622353017257042934084844719269123102648751178295301030273195858844612753195597822204106672135905032442807811275782146907398748402861162835818075252130820183141243301814772516876322188526636248269347264331864583149052794864627149321705715779588746388479793868118749688058421701474502495607733688154233747438216063972108413843011015774587211394038288399357044592876567073146675695825542639371233558372964712355599342850244832312344763265291101288570061287539985713066782496208865054899188832227052216189631041833380863206456686632515543531678246346438222191913097516753441626517052189658596101339198014194416838084769499450562929980381234984081962168625735361379427761573849249969990780295551308704481964445228250190531053415949960124563167519649120822638029331684286756050267747120082572001037732811389709401816346887902352085563080080913918998311931082559932302469108160117598324106239628364581382185758134374454195861185597286748585601984087996668001661750181800097917444487025695464607501659588406609233684383073304087585158241123773085783741830162810263780569956474947419416143050374301296352238778422681111185998688011355464278375762318155052725349973368517511537599492521758950452541957507749216191726113098009730475087128017103961771426961266530882999699387508012501383736527528913997541211043624090770244005138139149751618844505200570217209196853409393004915910829735504235348373385393722978391103504248574626604146863228969890553388946718302106604101452597046982166690983521728620830313167119211639046474083568655909487602923897626722110655587987109467057405939599955418292904898604661077273991659133419517985083061787206648488854144317557620896644604735463020099684753486185933098203787865220110196866620417487279500726484560336452449764632034417888256942027567452408131903579045386433471053112114970406459258085499335887005724201377266708238661114690846793679931616588382057518992099645085390019829952373213602953961395667821701209148982554092678696245089784431917297259501575866581569187643572705366898287420527788183482523170139383863022457001840295946464609312420724374154523616637738609609494026313500961628286577328045960254793767868241598848264921977567104626636289658255821179807796858950292008919486730633384847567208607308345587497962922698428107614889724681411484351862189830703199166352852512661793812440732235558446734722143089688082701855393163189774782995717878086424195035747794552582512704855063663511145940507690763259199092706591621233068589358982645829750223016200549875098571550825913361063251572914804266593018875997872144199364116287787814957785488737340148633688941784946966810923939873551770111364960375931872853439318858562656777467401888526703352246615725620805252496663753178600964985299973162369521986061572278315284362872643926672103838642797424503529018710876294232225219005218953946679541778026675572110098744276090184476580765803132318133052370948146933233373033470766747257768138017771986982469392423924374182978475522042357375568723420496980647912765335818064688510141213208597987824923181198485887358649222966318041821335112242529511644784363741371654826475707666875933596965627557396279220879193037222725926552798516261847910150188174633163373712981099181123551062218714248119753696700999347417255154020484081526666840611920389493782629300228515105585191687481613605596659424391583728705450410238646189809519231524235665041441278284554133698141574854432359387232476835500403505560607065574419642909284915690261743287453203580506447420700564516670643516118457754884275603771564720983525229234611744728343820361350381303785251923935204311587435213875351410638978267998013457157655047075019184163364989850194788887822058630376807317667497233838852271299875188027769345253915164053441668597664711154758149181642532394399337917609529232286396067784674386706220613369046682085692752490909698043210851964563918633256830649074063779104749513941196725730381299172309637880192047412289938714564779204903267782738496314799576193953173311774567926980191785619842585540585206375105401592366174512745816813731889010733368556957962528566418031697886289661708974060006063699262525854251552773615978370935811290134909657821346704468189037856045396346550444553161558936820880286717641370952405440982042863444869031783414656535377200649446682599172889060525094302982389636417824948180709129257789810597024453227979102114571021590487138388559671019087652316325009228338731682156169214211406327015265399152042419457721829840381350405233895325963947484273684685054710289687252462200757924410142701472191961461264518122168237993790963875547079469845325578980664350794807587446865023481499815969526408648069669903590720970796341617071890029712475473704327804663212577693973320386954652261630969192626732725428559799769338260885053101602513260846140442829089773808578924541567931410477037147044153687571836423072734340362157429332542916744999853339321634948563689503665964460831289505566552684936883710975959396078127575538204096985241356523938085119256567260039121017335492902778127523144687414425794164057411340441124413262756577260469261997436975086411932152740380885956519405566048423702914942425959984635441678680947701969936928746271845691568385464338262466315262555503482055145932647642745630322067395890132184223375700188777427842199497181316357902259951626793753019750225114827304646017271266748024424465694325607873132596828633334404350108348388363410759149918957255237733643778573760572083276085405569220982708173360351206190511923150460976696860501211048734355527731742444511258703383249160329162871864996443210064968331708391416008752117434725621544425527073876404940816247930693646119317882078533531414659799676467625963687588671402425908183527761783905650563327640911742980239443611175838834105991131692463587154124109311993160757569405196798161255039191456066598499708253309606222108025647991214443004432966058858518124687186780791047947062255593155451791018559175516984585588070285114784822549703588900682033101334704045580737434383419930904225249065040020410873591118791866178989823633750261658533328606191632401716199549717211899299171598060185421253689454808329448457236716624627867254100397180555450854517882141882052742957761269483268693429295380201621717921995318036384404429013821461907885598721514779681073237703652330446023692993321438306882775363602723615839558861847989798180503287026463114337348834425582815806705761155257591570988511524967463255837197789310566155694779070214928451060386018219709811161193629756806284545190235044842363767506647478728163375787437748127617037314025476271303818731496482258308515899278943933136103717114574563007531192669468222660008792421908643088882857624217783072915674584489792090515872336472237957625131314428874208506871819938111883872534104941231828190463554120892390437985310782735032748571436831653830877098602149735343580971513346405110872228449271441755243270134342967240541933029147606428704466207386480186747524476222493875553106066914082246786333974362129050983074479457994358912360532387751060498589896510009828608339023330092811723056844356679206710538253521178756392740995865738426111746485554906876137530344971891311564867697775906158321064635807943426573607400608006549510842330047538834345908276850822249842164575612046880707939275502166785315023942656111992517597322667057518512586864427775425785140377949560020454186643864125600593090881440516453372119403337195105082885033136508011243417576058575587413610506102653159047344149164849741901859677262681666161743812450829812738826618885251106278579550021786108986011371717650108779547676346962773030963173018775315525833991483562568277418372417011101092174423173359129961328262961668785308743633447201920827851100441705200000526945025451311284962061843791771004528310364851514445022709416134060512006959458162908791399660755670374425497602208739531820770832349927756547691417520321961976537516223889648620834214181514110733963762529464720993019161655436212496470580620152229566444989236010698326761844693509071009974566739360132836997673063673309433159073643793253371055232836453305934912193609891483374648646299909943888879940168322871244856453154862263392289439794643289780716868961998194122694906153774465588205498306122908309858318280778020368789307776293002184465193960546113691511145464569270038372986001340450522088246247790249862745659374383148008337116994413606506672000892708933033077267870083245040382377931569761013240830717945158013428533768293508203983960603521413575601954503575450023925197863606557548000077979348809533822673649871582988108661186628587972174338759837431370818758775842032717761586244593167913881894911091176182807895354420763400953225065413042548801073979412739674030931198144121530003386495108819154700431373557435528441648115019717711710270038138527402939627095083508285907395286179811854824425342986997194359494793573396107151471165882040852456082549830289465441797651630105999796592838687242075479695956902204957121693209950912005641724621747165865796025416664717940220848458481053541238575654637991364913145519984614055490852076245862151247535014067125093639871521040150877194398400303585541726428755693090319832351785204735236001685064726017547816895520348345984066509155295929783780039404076493248408566233181901770239700414157435254164936994442933248679285527755337186304750633246425107611978731376609263526475818989687871999975470516019001518864430383029100915458130833135245592952301227921602791015041645201692827696046440641467457197343361226100850546618425670854182524183441938757754243208411217762777938856213599757180352807259516808802675687154699900915860538931242165488833737531966095941842913672233444506400737698086786679304405100712838173109260545727417073987977493319186787800818302663593656856631735234853874794753218439940218001493636695408162833319955258233911910436673291873293952756353673081231758262706952967783161083981713497666188453119141902031226873172361857170555843770642766867111797174967124644260277142584895651165340120273651227349333321600710536079066869835546470268122021267200533304236981250015252595159651823503307430379733855152814003249544185755259513445856655760724356761089306048707181530541823194151182236945861391996892481184429575577297261427573120092835852683824260909516164295804091598608889621968730863512153679901317836206011467702025914960972075398519609194889704723462133517425267689228383379451557400507651783961710399650749132591241514294924885682169201157387641598770325514286663909244214931595793808687338995622129054251374025138417318351397976991011515451707333670070614808898507821117413806403750110022158577067131972918098805148850665846694352294439984627421668630258781829749899496580221922377115482150514189932567132143090987812599728535614539138692338791885938553343594681426966108905308425851708863746072956345575628420235865328096268055204682812756454860674855638271270118856251309826070710339305230535383220270668219559526261187331362146100720352224078634836672936094832135915275905714849117112627424400483114562973551603134015660831667373342524386081574301230846106550721127136189353274175509224727892731558013652403008942786366870233096137442997183439003941932199080840560095800374686968327860064147067571794659414208461528591204324898434872986205510787689353969362800084235348631109646716844425573637658678845816655086452304320804052223834198359037355938057619896409974028927514797559647740659002655609931687645825528730723217798435907277165258452992794882800164618363746656939112023465023057425774674837397524930822939956583460048356659001053454528331053731782049424972542599053471580406963868318437819344716397494633584466161609335897346407255495124632106738622699751757054212395236922003171623728452677595388706127038508037121732804656992163963863053129884701988470396766203406775633690938440419759000082823340194319073804539669279974261680718219174265125519837522621328226436519711760781583440521513905610094023515316954005721979453046182017815801338114501656690327200132106095967710796624574559227715668858579644950095662632971802488042576153824241226942178385693056006535813597676132817873127306546963035374500764003027510955675491741306144013766283455133277613113246708623152060568292136942636681438858718532472105845518610289204671389623985461197757768470425435884629070711652115738970404181505242767966539876673179305854784355471567707057491690832848455294926187406390785797931342602200184701702840571221135432048052372987662410586491334669689107308063882120761549324469816684457613733693814016649551091047573577257296294206905837127994945641786481590411559896552611493744324270988383589953586676240937957992634564207605501835996501444216043098080930670462612443201607802084960285574345450173644556505398562297059463383861039004021200459284930412561999290206825287196179134646903295683950534439526668499164524419800606372747765638981807274485573530670840550448260296678661324685169865117436334751858557474732870707730680108786838177268477047456925858503284113404286605857467230688286532203934273888691084120966244136742859264999145244606843839609778299483354910603673257411681754163185031894024684390611861474057739837146231483115992562748822099161097353810506605609217963829667967206546778348484427870638195633167276158193662698964316224630588260288587179891084141372254252005731604156464053102623890091603983667161147417235815322837215723627476424526246652552698250243498501230843150428581517170818457402031574038921289255352867972943837191671283123334830459136344430880698414294719937857307720142787406715587948686376817948838026140064270825026845297636188143570771903314797226754804491709996607444089364748448174547217364632093098137988178810571933153877093755298119965620607703270409992647692479814072710104918775846661242331639476759136356385094587153712772463753641631180716919653734410021400144586119884187277090682791500241296768375261550190155590728443759162193948804421744470352504945564557060468294583776253038624303655324741049348472082700919383721620538851555548841633670806357249558155485243037205332456115385539492696068895722130566638686326429413136738492977545124170171356105293053220201511501550900275118878022842257055226448069244847300809904182938945828537909023763801323324690723029019566494473833284393621615834334260331287027982224344586661108123783003014818795040461134642685277458294472421369902134000963441919430171276908746241229646297007764325814045568254137974390031767847101022471387989349092159748132288726450361038044853567742444378181409557318538458367456959688071646761852412105392358768173530309696874090641098214073811731240101241499249787129316146246725819824061537732723011588972428860942637856849010170491402048441347279389111659164487626267053780138875780525604508664967727243211393183020432619204252891323544623152902490889476193532717636901652248395759606336199422220705772522545512796613715857450786711755980126631299615203529163167025276632794901744634700185556816568104051315570869097318617281250589207117681641226740176606492532682861304107979692296733932981014580367640255707424361340935666114351200168362178378834602838712256590920622890477448993664677193269025589265551023337607029971395489579265271117082876496585115694724119816907728022669429134429598730027060135574988020206712455298278977344946998307077551436877051813296507852294320059182536752315226010566368850252307280678785495296820312490019521885013115451838912906546284796456691948795496156997651034844104464130490537366790489509970599634203923200045709141670039199898234677452048824429353800274737249195099126226256328755615889972666430054655975508328231016081076518789619146588126953634300022480339802079129469878559610706678894409734522084189512165057881370852948505898318586440403063495716526816608240381656246457256236505455020113203779317690436053925322582198750221154156031589000380058164256124743624201828675679072861633721621482046807509685698021308050326928223155703949376129556178634341630172983202528479078914655251246516616373487131530330394468944010701218623623554589157848155353787732837608839717171881330174570333309115764923988215536114718807889399659544531867454807561011006064100282991585643393194283594408650662282692601999688294646955948511622655818584064350823193318024554438923176390978613842769367438573938035372322463882739888324686596012002446800610035388706220234355299342986468594582536214909267278258756129521505911993894819254031261057482127898192621293870900008014486204790551902328201696047265016872260182785791767673070585469349443819423833354525679378094329988484784311529156796789490989303632672899704281936660307730163659067373107511587633229991302727481691728740607640632861666081128829905382304610517722273388505767991143856379143889500813868072759326472292368568410349782711973132984461343790641948687072443847836124560161671704758866623760896210270332358744537642699421843648652158295966809169458920017256330640324614528771027279574614901240368778400066686157862763384086797623850106844785191491403907296064526847422218439760601752903790182601946108639416622677457298702645329731746930508167582412045956885644420728533414107042251605768590812733185622535290740588275296889514818970638217549605971394700398817740624391296441277069392087533155654752122264235334786162256574866407302412891068825281112173175375212018149311459833837310514423040557606672434745316150503962677902192387221764102237900774639124140539891637441492775512095666039734334718439267636495686460914170805169745897988690129839673751302118305494575604869513437968550204307761522469769155693675286250187853122115927229453369636624957624172175307664116534085003990025394674594188820895994347777397308842700286661862661342128490789459762708223393587062586336011807442248848891091108016589451173819476417044777451258361736578226259895920608735924244483584868566789104692028453444553377819731050306236943034428357979997025837332311161625611631129890012694485196468723441353686795466200285558581040358043150400156736590126292317007591828786271156098780620835188921751058699911781260133462409601417190364772451212214311377931756113988999091761302876772364706813344199208476111317108973756945193514379717105853051102043649718234976367034450195326683094554633748899353518565185950628129304728379137146958978655730545977403043231621511714165621933346849090636136529747580556031718736619073443296125295922094810098906288996061717474890065480815517567315945674628973281621893007036443662693312335264323734962872409915433049503015139779035108041150331303796751075821479366000439936371858842967396833408525663380370420841774485726520991652574870963640114716800843845603932594825686696955640194615943751767966540198464715420524066310836290634109660462477153335630422368449061589468362470721512180404667744634406679281169689743831478170006263641843965390040846295687803609044041945779745388531206999798182633207866400997371499473412935498053059997574152957683065843179872489772450619930074472264570981963691133484667050792028184935700259482859642754797356052841619811566253253160277339687791639867327268227458113763054725694451873120823672362302541367195806143565070205690636265803651852943266496085419785475305438318627609908257544407496442446138274954964734024712275205564268491587367998406214422603300985675877542262946026659051703639816403828748237346572388687082246125939939242674580054736738531060734070250904823150617813880106574482959479429809660280905314434779749740991145046205744085811330314675128762311432812850577902888133398344558920058503944344472493356212472257196284511195170687447920555217190624003009041868112678312558193755206130226258033916122900439223223864956920063211948794119553878147049007800873964113206865399999995728475523512477990036071736457755761223241750799017637144686841054538293931144172019888075883280533345092514698625217517631749472624977325311658034923791749873037847639056686952523108436409939029497416283523059384943138679563874952468203203322182276691501248884441802004859261359426732169340369031572914559692543835868685687066874026536863213781499833187981548603701839948410204650390868584886073582340315467328662624604354337961377607632264278745321982401506162998447767212064226866302873875627289435011070560320581244270405540384657834120633037976039046208511285664362971749491110854775150369765331798035434230710369489361337611703391254952603079856080711076541336811824388055937602782226262898325153476922449237945407474715807573780282049529122768562498327728586642539562605986437532771427519652518291411791595350015972209032091095687650046169566384258030019336243694501854193355172585715128072144904859197409225215871386535160932099139473196775841450091614381705528724003763230440668932820778268012585455181760963298638273287199598018245785538749068897494842239528009719326095873081864069741084280141513572552210537002227751125679428784450055171912353264648809286452102280638979620928607322780792358682750947870423419032808222771218995494825530096918281374956225367672075194258725363615127104298472706669981217920047394052256178464485863275933356682194241807531897325357796943821727953717527821016591744998392846370073516404741297765886692613610298960939979056253732470263007140827109013939039442271228462684382802102494265418270042045713174052715716317872411986753071610391759025895492921043544218911886438048263373797364847245720422723757315539964629787326972396617083321395328155342312920198849637318290909844958955932884376619400581450099303013359168265121814951158827809058103914697550133953272988561023665680140007816587152761990716396300802675359596460301656216070893381244014790728227362617010419530175133666303703342749349607311819476994279213343623294172532336048589873908439292626862362671128782085396363654366429151552077552626839402978037795475778263090039137173307045345953181704463953272219646130812375020016424774647878838673469220932651169201423018834515591394460134573818514200967715658751097944844082779701605395039958112825935711045202011331162558673976902624198836248616791829065013447121598832031949085470478371878957606074382631190910212565925654903290776411318297848639202244298759851667753898635279837671781836962597005203711949382742573471688222506775845881269530275824003233219263737558803829159374266880968240137971675233262138566449092636762919206191923005217294367207647568380497137781022199730156707127479655510754726085949345944224173889941521374124770967983445847339253789092685897641385881408666955514366840622878400827516988071374620975669465398985113679078875209199730442026679436463602480013392896133860924418794228535945078584340015626077610348013463116856186427288566309715266061822833482326625865963708247001816541073258913430478303110960324385604680089556033479152287868958779108166417746666207012700785544060229920371485648406212878725128199803078771341859864922993843180931865118149329164389320081903441258408821539739709945312374533356078530489735331577573860202486042564330285284799789591715816618957002891261581041327892192258904016716103993686884971793611404201120681907120339280719451214632322292791991871071262823707775467457748189633677836158663272347076402053401854524567343677738150216167759671348194093480609858479606578897317363106526043823663908179065392328766866579584878381199935181136005315476859950011483235790899910178607247216811875347942046887802484102775450530281732123182049914284313023673038889374808609625358583492415677104224410315953571700669309336531636994227364374361338224864054338362492852255668628660401269883180052399314753233180274385088629388117980639579074738812465417440047253612104138482917097021977291886842072424141011418508845651499707528707503353521484379608409965023771185729764022207649796803082188449287616679503406565938763081052506566740183341864387856534203898850091973332538422676188991596007675422192117966004096947301929272220290238392027119628714359281817853714427351592598957086907850325367061909466688474630684945590275635851504383059706844605696976058077682867406893003339050561449023592310030597204569736359172827340347754248840819038140212164941435527356029064054039852747442418921764498799292203109168076233281154482417469622559982238463513445053865668106106093968077734970839675075077040059920902133201585553730541904835342349152607678931237606166190422751646822983513485551214534214164969453172456841362300739491708805781310560008106997637498830493557189282446444942981977989178351483317946230843918522761118577708993509025031217763805371993523271368097492492581228361821073887456539339572916988300062144564702455537057974317001711650581196936591928180203921294474456052769217006437261143216342483949577643861962473637853057693197582082975908550030445303066095048162010383013846924606493898590476623037189901002653227756535988032473051068137312547291065789046266763008931447514907746850551332855554115917524277608560952613903388253278755954168846169348507166902652717251847974846165708901425638487224651254885417748635649758928703433313933999840707909977264592682164327755222502309618223702346674934010369231901578876014541165259088162235383229800921290636939774155857740315240794009164873445736117942634001774402874052602193253809407946513428845508901342749087799658810533477000163140463209333804326227370859167145262263151930464131201590936702634568242634338124979651732280526431443272104843773367398134288229536342150772489098637348500833870757354910963566470322836023627940327690983345136922362160294569438084308576991601277469837337914667090715140627867214365082013620802586207213781003844703528747292167244295245969744998772113628466478888298707809690066142289750272641555807886063283820759210369808465427830574211414511424048664776301666446730974798811088794496212215840073464831745737073144580102434542476568203603792050062738801090809446194780487529131039402908767650757149398888153446674177192315738480485432500042929319828524597419266884746785400939980848720360140719150254763724533964205057454138432396672237508050053074269081402578843743640253637360657119662118795954650834462606091223161811383005958942017123904605482539558748596817814630525736736396273465787757209475111253421192621628360962510790269806646886194053117610983652387545504504949428560081397098618199810664055218518538679326475090951814490296956703547667745055612158797702539199749852133724982598773681350370402926221443737685685344578465997719224678767251334811114966704329874575997170167202638006612124706580295208634741780812627995095188053916343075422653410582350332348917405954145811977627986066820750373363804068577197375906708442460975537059520035316776503437719180751293166277465890820687141400076830721619576978666255155814144409177203368720510013909929369644147246746184542233734820658724598908932956403036718843284795169145878874141193168799112816301422320779587424153670477118146932304549009828070155827411691056043477722809461036472301342010556192410120158630906233389860053598441387647881224544209612700494341289382382407794559436049145388329645816588188248427970291717521943311423158344653470083158554127949690161103862491899962430638274894578307810012409833854598139862583575476185916984881364025644990212637552296517057204268913738856532283421915658140027346632321309791344468459643510630959233164767456165283538221342041205091818658807918792480110262026872783708545463808104993936276070222257854469326587404977127013108455564429325808485750193467896607325538228189991399380719428605311644185883976207672430823675072944624250450774382826217597519517750814251331928626821226557133115822175575496761947168593836987660219319962708614873011109742848245070464497783646714173541652179190702714073186321646292496375565148102014561264934414266565095002693270263523803890416658111824112766059933279559517837463753959500235844899218945567583667460793540788641731807323155371572442754775995015648797651429656459589613656498419895226168162657123109808924218976842453486409124155293870965744832858590286010956962644057806050193654596636948559964978362795904401118458548212990097945027057466732017647567557959929816650780865023137762968578989781846930397545065528038326796757986996402337932517849354317030277737916099050612602293648233857085215063426691900056772051905462454614845546306623671183117236213844523976689576342620200966078692986789099995366190142066966233177845932309694102027607173538288248924143767963403205093900714807302372626765567648229764348304808417757683607201051049030596950284435711220699122911657720561194689206144017581531617146459022367999443354750531179835656843676653528169644573503181021047417261826955661814231687653682444372139000005179987471278149990136124767443990843733673465576641324089181047661320824624076349822481945481865115420861901751024696971731642422649860753232390396486574903134254985200021815086064363672936586655253031171201863977206241127475527728769383727255978216882276878518007507575327856852017146472536023740732309958503015690261994890732427691988151343915934976873164780393198077973999460028348525596132758860801326042372611624595384091085749495916751179154512662190701836324224050975474547920930868712336078609121607400899620027323506111864875865909015472740422074314996608958618258734679692673141326949271549856210923549825230027092502649604137584027882260200008496805087141575118865226725921964176473664561609158641892854644511614515671256447955816034771089843952158713862151427712189328403989225035349525229454594317399808132113398268351324371222268535595424297835394183706422546412562366247624913129159858805100037435197303711728163147191321228112653994491087205290714936084671967989467073103785558771968635948260437912747560516281015376719051808893902543306134371675604365609486733629677415913329413422269304699298723915797247599064955521132696677530062895625169617200181653696849595255360498634516375474490760616713609005221715222071490274380020031707973391642705169339421184237734510249300608142986479914507261518001691625365558959189604594850070477762038293641062642678255801192983205521359897576656980594516456603561910560911281145978203928856737600770560408115860093643897334235024056892230148354808529145949646408041143916942641123335074935878370826581692731528901040560530707910216936643272159495180119301869363612553895682856959743192067327905543226240674031908558589431426133693590486406814637713760026839519543634236252749247459291170676841367703480173635171587341642800350727749436932409463805547919174751303484054084951348914258122925216068828097286929588217669005931015281630337764285699588063369615107155739605121721882167160425379293944006573719885618553868938552016067393471212396838986602509124830633215004470918018592575833959767916253079861351700876597343679781688648449525297089849461766979046922281467810152581351281532641049832135166371156170869191591258396406600016927906149744452661235548187145686578311415892575538258154139054670442493288411042720962299441213459975103094900955868024807873169126667158540623623747385875189276314084336906606471703757519492112021736069075271731440691696022102418978121073460782813594616954693045070533571392026756714743368447706100015574652916586799815270423980242412326551949978669171456807991531703111377350897882298144787058569616317258256605439527993912174007672500892392068858795565789570829236743272739721138922393941158541627348859449362666812507332554824370920218001321334462351474230195096221318103138631600100604331358971820276970812815468799176048361105679475403989136478952475490432553778029783966151039791755648134113130999113845414483382247567939466439843094850135012274180768411686657178236079703132018279258841127245246111155678349542951485688236248768714885153780787325594845699570425546477294526293905679099566062585010343426308260251048011301419820195342519361377691016530818873342999126091243278218944409401713265811154899535812797745506941303579341646725601625878460315990056342726036199957673263707741902660498762082543743938357739645055119454199931414832837083025110838400604313749945196664855782707246852345276085513844006193974714942356229802813005045721469549632056671659317249702561706446232980235785849366960933716442592092951241932301390773017871840378886516381692934680645154232556989843682582357708170760404813728878386927181468922600496535142676752277637054480199295856396263338119191943616352392700282353036464032712263114475801453847729674955064032037407352743876291714404389174163738466869003502670801774078960955485438542297058125957984917342255612420076344043077819483489501884363126290411141205643606287911540784137471120016452482719635811894801632377644363701409451697164760281439940556334091525300684320850240355579536470554096231898929014611300868082637053247750519350705015036852417367062076989314949746779791878374977999173133794170220102956250769727165289320461614331727772680180160089457302105570690501409742172080519803878692955775121825664697064816520181729886755561378155025598180523259363719125253065760828911178705459348051591408463084827059471349539612500782304030605598223272723683530108929321387449333129641097978435185406290045442777628743957576784976531012671372380560572320901743403484268003062220222044716240292508117366620624841176685804914082904917737209982092539252043060506880243004650425942857379158680265233928401163969467780279255709721458515901516624618566748929844106916534261528186386497553402981682491710837281796697510099046834606932498096379609457295054734448509723255936521736281151083423464087884074101077718904238086472906193852643615689443478988389014751452403818704842488126945079509567000852239484281743220247315296326817907054842366412747286117476264107421716645149479587693238963506355115777595314084891595562015572910296986473348981602216721992442253923956644103023817632576631623631811247869324995976719024136967677556700408346784284528119809079660051396625097569177489114069604935252829948612989417640201790214306218608409306502729340591795370554108503345934525407316347195096952300344128879907022032744221125022980024338882118370127351628750242481696848512958254018516397950850163986671547931328030085451043430177974275165705567395964967470888520101073674031879973951449953443153854023309819824269624176224647850205440172849609501025824636202255879467087281162855102690552876634855788258535443970640496940134783199576289090632665112959465059341785843921541796857867883692378520506083861804947128763089119472551190178686215546729486256022576071277106834994659493800031544236554940937263989028231062603634962445218265577133729690920812081080739110625304664184310731162513282754658057888083716048068308149223495496430528730316928021713352555762514066128018311188905613487062273993094878469417389530220938947298989818336564398723181692736190194483995313121884644638046540425327427894842017095725967475752247077920630212785998805269568674840667937693754459973862211367449582099176178002184976373246214745509470683995868388577948309931734147409065844884944617643473303656795319187975900113709712953566500227697615462556941841013940232656872525078064275649909778129263479553963782450465037032087075987096591006042553543146859372223530296493706381531282773580865395177945277523357579756319417337466608116864449457498052235329176412395075933221676777604777842327946441157602154699464058934896882480334014161282087570329251603572591392536572246325745516339887529679813849728242820417010333865096846696509476798363871964715964768796015749255832478689752811760562852460324097365719617909626359783314837871876476831907889218195694234660391458767202881682392717183458458944279637816335543153207884692542820232230939938714695478391591111490137831509697481608068515224485320431684010409372504333928887776409705419664390307354367473631136291790101980656774613761396927112940472414578792748144095335764284232355755177144452376922517730531899840693438163431437666330162454819241830950990030549220379118487925716254638629302315440108182666834411059736053141482309967617530147982715613213346627346908521622612864348286298399039336543327495218147262147719154799151564141155884384189354980589663143369768672107886447105712612612785542545388648650534611577561933055383592368341465271976540821559770934816840620650953091781518452211937837204984788278600724165524578883006471145953160836807118872638206293711587826811246248885138676282852236520316364717966152937803158487791986836903882973327368630448589016221347427069262688699943054266466071306784623301067690997570493792265201938391010532055676966242636339740788709212445180528498397736439293860990847768069191127144734753390769200216022133634444070948548598597408979058399383828609691863957028708071600232074707524747579279785332992471994151009171207816968475298205739333650443296542247627620144917056327007906397604194062541931408650775292289659663600824308690859834362941843733273556535845243288208814359128649011254210646111197714352540467627741214549335651913143239661850051003480795465884348322319511971151839075270985555162918015788327420691187662515728943375082396861688372589219842521715833252472296947642573535118631652996870931779618826455948364478894042777392419393606926864421837817344406778471880722873763310618680387704951402190012721255346390108309541536739499867025882437626896240704908316840237625010120484459725491712899028269308151619639948040724752600728516611450369329953971097571605901680332008530091792248985570835774626680678666427593740047903763772362249968905958393889290287397781543292124557391188159040730450096507095769541898389116025823633414782596028089623777137625765875213416528575401934813861961772036511866718556625483364423365586532591818607524100626577841361060030926337853484838676654319680460387399944637273550804923335476134275579510276738710181558372609535391494212144029332838665540216468364783469899179203716531550915181155837641336244774194105488484243783283515876454883953570829879244078491628270213125704101682509680312712081621736269043753436224805515739832129596871407084785494748616890444787754456518624176668348217804274467232627419627599512442479061308691388690039835869673459768971696049866311990920174302949128610068947185299451461510472761618617903022083609286493047340725255372075087535099579044803592650510266232330229192938959363879745578583214924333366459904344998165241805389418679711249766130997050001070823506760873900007433054591791786645917510343543011900030667321234613947665703557484500312650983839915133086924252517106143541250471125001235174990848119870313993683827401830158319666774135095784257529207694958004452934822686463179520199624612073935716130799515710804401128202888088019652404048903586171454294035954607246726870755240152515228039792796301403062495716045484739889099881480782306478005831210349269101270134810314733937570895753776749316229212014717467238062419572499317734979198976695563714459725027775331401276023242296996683687650111274496178625330941044734960869974449794118129140645562479961826358017839910902410137212753450278342208759643160738283966205626457830569432059345322537802187972754179222661117799999336682817367722133191465272778440640810777924592885883439346280873512792374328810175319469842435560771340861569468266883593687091556250040322988960162664128649816943404807976182537272667589714117599004409222538456541798002082975120320215546412880551382768525455821001077334412891336499762089108499185585481359998609031925733345086708510585974189873485485776302184179156225886665308786022974072115162544029227356578260097521116912938904823130419734639973064604320606146315455273957262231261359171010492013360938656139505784643590305841849010817170106852941573943620050186775555911907351491354587452851347545157014828467090125804419689403643744242424713720909660244798202180071990003697377254759228663777154188910399899432821139839886459079534577310217583925525866800354393261785180709725019481517763153694038880531420923561025931887374833015718858894015537654818230943717424658856361741949556487625204560513114035538083463137955369799616049338907646969070187993008264905999317435545574995076625860480586447064556108687812442261755062578737435487906285583530194759951335318610220444391605179656636898382593226306714620785711929285864763423882007953138815005507805081639070030858039722622767491191908728280834765879042744348203654399939679508507369060995944760941695023850141900277956189935689871543183824171020060553208952046907253502296471853891163430656356279658287797074787357742084406816310701330880838121077319059491660587560469877427978772305055017592899231686618963174499636972174215636230036440733310798188565691129103003358848799838126430774731437924274853623647192543755470588927300785861609535080449937368957165673436260440912366689911509054022410056970062688944733513588896848812504884117995970756790268346646220237981028740368385793420354943093166974642570023277968048535861412431854128737470031664213524149333114472173224817530330415554584118509957882988400467393875168486657143205291443323551122688606533919958008838820254817290815401512786157344484608405772302225614204489268856437300957439727739345902765085217142107863757495465725314127585029167846057347925186146309817959135885187139148207025734699862484084130522008982601321746282774446232501586258794275359389943994615492655815969769775895694641340203711866847264977090022243398925305652788259526813081010731418077059389292359229543311812531245971941010173579243713716448102097873674226934424651533891822309964160499232112510266174633053181020143877110724952694436887591905994706928588023695444645221454639878609332138952414994401892954973780086659232874532690875464830964683021645697453296279524737802051914494318081165700356474827723986908233995272370100980266392554842624824475925908860631572659954031588881887355123305914480377886097047171255852397872359232085989109701116251098629125749501674203674121815073946761007767446692000186359372120944443035036985998683949126192429344809064876748816085411707016339962174403098712760339431726825224977407806506770793227769564460968649729878744431789747595822216811202292427007954924442282353901352328961082908500617171235880056590088541837771288982252411195091610773735644538599112786928081636028314329317592259367941577220156943837059465114768192443177045612257629861113514228072093770442782836085850206492809086146118989844900381714076408756236702255329419353612887903961791723017613077314006563516155253048739511527237057238878325136520953101433960074110113628968978095009356028724615095964287372356224924033820126551633117994179029136512227510929868562277746543717020638343024491183015196301996496064080667600727135901924814735793346426145887511359147722520848332308157357209381078525926565738038007467132713028528900736313044852603025027626768876734109785181037489591559215058651600103948281144649378010587553638048923691768707855250285076760906066395834798486283156700585704940732651915182937328218733268053307078576079059434996784635038988115101487978444844274223543199598870488759572827693039551217431022472294818727193442521733161575335491985554207586639413708792133148985812448019663211900275545434986664276160109582788889784670070743758564783891918922182854838193660048593211914534338355326632117533348793518070853416246989332274954862719693221572522444056301254087374042168011164822867516006690964847863004049848163806811851026255160890692596794377019982918696993229898246567432429439317838127390742551573412248976454270378876009610498511703675078730418159140005521188501322531036175027861096647949294252346377870830790656714047089131780421085050841742546333562492956036060789668744238992800226685297082850337035953857901656280149648506528206882581115831024579103816652507786194227182786719294933069813817352867914835004279561708423420298940992708837262586927843920279165408822125732465809262872004037617799020860379034604615242678384281887663589799508223801261628313460030704347667518056885540534852767330988487052922551254349739588577983759218487242046535027790876135939107982236545417121624561615445932004231147215329122572612759947503685539698956504482765927964062456150183049647153002252157148903075435785615426901416444914242509274625010329553848372741706093606448867727501744214822779111537363582483387141058056443685662736225787351302097935808633539830340332827837219741681715054845656371369102786867459012253272561346375778523851171003737743937723393857983623480890225089414492609429695313342231134786357735589880807953641396471810223363930198441891445854743445195785986620932132476130399012829473274321319076217240592785351592096067597771902460381653949941867928259099070588582052668683566968074659249065537649177455630299667411522025991361204197352691251568156778302924378141645469566224816575034665865771133506322241645207500156552723314643388256892765246232335200962142130784595698516914300903539092626642860286383595578770827514941354611005176929814173098179860466405034977910457385433616236467924274907793483227183285355596869248533733109795676012784479776293784447327020343398878496416110740538936833375402767125850034351380978462096642115439613190851059415039796321440562059882115444027052181644053193042757305509353230336920773109353663735734883373872686695741406442270351588290165142788527460616205389356256649528393872487400225241361514661836747962090421545397539944422646068789131434732983977520758091925604864220540090566605859404898704566125664740050510131947303873714854827648834403569685025207915325054222851448545064990893439958105469713412216177752514103703958947819057620035536105291756078385119565256103653660192840418953319799355940844977610657319243325300352692249014350658862348518703940119860838808838110114342832255484126157612820787116136017906695313252278640048507007516630628649271631661300634574101665078700312987492206486879736825768054991203661769690620398617089696907801931151821370518263753128120236310568061618210176890645055475347399279104669406198293019024146107376161406291496684274779012349705995605656777364158821647137143793981524613768657061037598736720410565699569785809462932869677547041287058466001635052282434478481571681288426557240546803945737074618730107735124224199134983585328598764965904766829165647048525504808098295554631074707562072423048442124509682676291801604604103082310252671018407426180672759725309002873156943422781539653424925552570034146695564115861939858597245929433035362428258267267366308491595485554720526902755288780388755140079422864240279346932647914479074285941668693925686844618156962017517937529843940403365674623929311929647897246398343299401624822610287306811824040269734143493330928510274351722651317255138102291300688053629908111633661062643815592947557722403055743644318276922501724354411039631533724930107647175202439721461709514449570848245757911927982779342515303941593136272082727346017098261991476095832368891951893107336734209978856881552670287280358210362077792931273774250459732383237136614602331283655220629362139118873784404250820062554704286018006754386829143801306791049382718281193065025083750823771179041653241942356471058115665235763071274132733796255967226852987018725377315920125111617879645027291631308374254879235166913755123196665711790536234947708158407569212357811786941643648951577440210564763507501999261018434346077701039999791908621087270684052288625568564038971817540445978599895699613361612860169318661092264473724528170250851132438169924823180179920145637717250933268010477469257115195158205540730550010616867476304569453109292637521293770299493232685877584651618742054892100595949445987517032064258600822571537518186430721651623018257376324253430910853038807771238600149537616682971329648384498642521468152094310995501754251497759512753303999621919395345222488723178906185181420325830383803933376167144841235766490894190329668662991132290008308902055087674418347263575226842556739894074300026595422913618007275037248632199280548499711335415270538429818740375554854383127344304916530663410441092469660277577508328583975227372053558377929439947555725046929686050448612743957551282253641096421067101350022191527392231827873021413371623294545984922580336313252517770541443969121266838143188546974465095917804902076217319426601926936063919278254690038503592176148966127264445299276939992042557252010463420122588635909114435460432333527108047632128421234544316573965010291870348431599579364771387369237127678188239276074006297917469569060982516472689878637578411439509396009197955362604196653122497948300414989785561283652981292534977324507366642183553673125905085161342266742574148658969551993635785982956597661925042601290951117762247824790272660793760621438343046398674649141819491600219357953862583073862342218583910148449998153294111447115870656030538269481930396151848097450576593327337854252368564799260650554322149342325455029920585192556120478265282430939611700719771840991494968458008590306116951901231163322583031575969263154030045252320841475214004316174727871323379505294826305234616744641810206001982243118993449839271370265197903422785909471225000893094371127495857384109044558116359195985604054379681987024749129936522047761885539044046167635912890384792420812788878405274234152071962862302633658425299321476382448686301413408099146285795598731352474626216729264802242939371692730647251459680985070277924677682733455973616631007567158038218750085666105950007248435108602518603485010208626643127684104036527925411937414044640431699265761396168733559027590338351479760088577810431286646914442265620444661571894097509644146018789215608316733619762223842309492116461727194261314261742729173308602253735468889480468542763258233761662784640428088588574743543146118337543420073425999652802499976954831053898753607456958717393035735026833123138684319084513419252328544834331121168636142367120625957262017089760431748807857709193143804858321280228036631074252533787692315633327469268129543507203455686711826770423584810114380326744519242448019357814910382945888336634867024834176380092258559117897659366830640662925007819538087873071249769439414635500769527544471751487937373155471935033880504603025550812020540165968618404599758597702905397273575175183561162904680563797236555290348740458786616218698867680763542558832257939996791283131414276362409923092865801255085675475319462581834128651887020909991824024272184817886825944833539357585834588294102075891249125838358000847024369497722114944005489218956180391202732986960983100322084495029166029011850719644586995904336316112590437811518870774248437435194816315762937766781646348516573749207634220376576009971223105192058444268879328127296406615414249086252978365445423110389021867294932191857817870543215203358465005745920548352159487762090208095816548749424664262638388290849926916595802592972497025811002838018391553412142676121824017357152212994530581300924711428381098939789102468687742449522809528606619806079221866128051712485806586441805626223204306083857514298462056603841448630124585651417274488481714630599550875971769235735232250974227143882726808286790305093960401058429731370598520527441390618387992459343863321732128933508793604634914550517437724519249984122877960343261323308778718857673977209322992990466335937997673373972517659789597048108743958998927667698877102586976245331043144251832508477758679936400154631279737609126618964493827850969681676707125491774325019259791136708202092982523290681923560866342400431743255919987134315518273181245898847150524568418733461453483141672650803259647825175772060187225083713049412080412643320257412826918085618834079481808531925540106902641922776987488104879962336535666700228895037873025357553186401585704497938945752020801797281856583762204183722613618495417492172964408278863883473319413593210785599358527495879990059856626124932994013963540454202950433585064486363533889483794408107639285289099936404528653375703029529745781000787095139624501298426100843862243195732112741914706213128394921698566084510796127253428089433729574256053243793408118488506037328636518815699415552832913641164305354265655486936933460902299032992318571536040706558564926123354749365219389221720390851130514182059897461233541649781576912523259263457236519686873537576472625439100285376504204241648315398124874307088816442132906617407298156978253589373997310094259992506403601652213171574300629052960258909202021963551345542596843696994147827216844797593347593363279658083208093209788331092664484503001349202777953876536226695925125853065005591827139138153822837644479501943755262020121967979372934413969366705018297569903678342982920311045430851084139705222994642748442797717201253097799411356949426922858190331850869378090764813147216760538542092959487750360030691739496650969517253575117782607786322778323510455462413829219124691616449076586866076103916559402774571674887787164356535933582600723232172727312737004519098087501668978696291274181724540423231748215774852968273250788746475276836453269171096746889215319310459984367380582854660363795935679887625227125459269352083970790513839322952248067674584593149985268702105242325193650532631321151005041830580062780338344999479494306762007913313704187226742813206386033424328703601735162562177679014743121945908753351471419450764372359289517387729790822479603089408842802842618410159956307473233459340953194251361879391794913421385464385657530788921572537305578922960303680702993699040440689815024552607982445126643654538624982300358624168959210085208015789150607144766715170518620856017067624757492545776185780860410616330461006544706994525575333856483558481750467932895093991788084726835765270573396698683921667163628681584662565009854966591850562289697131360603421722593314690700340927399568127516153286350696114101559007363712115703542826293108499512038372271286983895973302301545557806242950180640052576240264339728088347175585840160446051373278828437895348485987746195025245351512352517405953261189003657512260868465177158675085529280307816279675555725483505572606039045715571055484363141569848902931423083737554141537595195686861237469657478013182611463007377748804893821210572702723097027072004618346190862878613385655797734246394578302335897511117160390218774498612568830878110736437420310491437036987273431142242382586939475617215881126630483782957116796590269187151747417915266408143269901798553404682897676410294844994435468339099531525993821060474671287873076279251592723002504811503963495236210870727376694582661908673481795547686855800882136736990490455018109908299808179393079855495593104230217284213077024099430145680229126549021292083485802030727949367290367830251859088136636382324694580738169133829712507018331970714184205648729663078396114724057437555014773688697697473071946716806271971611100580384876348673801297726812184787825975647796877350999732440321333224429647486096733119584271656889242814577634836435876004634385152314226511594865383897562388440632479503451103587542872592877514059362394212039973591662739305986646016632393484645075140176799614044269120601134062348189501036798176395519210793172090471121593842118174999679725611938244918540250466152317664787266820800691030909394262347438604682936474534877018625388730778581146374588795390850638857474079377414757314345001480549000497005439365220343529341558346415559622847838117477860625897955325812659567676764998751419354435200591586002746557424858153215813352805483655082718842680060889753626665347099918262115046648395492354852452086119884482671955592339114831783199376349792235105556556787260574704852221718791553973677985723382646074644930960138216695843929658364583745384885275697218485752165266048610565644369554916200762905650867572822343039510695544487386522822931464415411846108974410690622132719482956649947533250305778510486738166609670335993482390369068743517164567174271052484622435187800349133245250222634854792797759169483590480035543130009626618539763066696691686298175908207591990904254996917558035941666783522044485533568748686381828732895234289402054809712969958278017319334744175102548532207279522435602804474905747223936292194785053732316741860352411972496610581813766638985667234844197746002301006327135243347045886172760956361578597092883316763656768814950037804038538382504716581915968444517865184969426507466480663228245710860570209294629145553256146174747898002028498142375688889412150674185458551796431641847741860581291933524282600949237548228843269750974601188504266597208026973371280341860236035252605190785362211799380471739558963770704072354737589386159727063041491969725662493129008050207542764730385331177982711254226450087860546381840686042528859515174724294533260718022952619522688866696043436354097001156468183001530109797433377856866775908387014165384088383304113138917949043449812377620136843241589740499748548978653462829132790221295469541588670735237703417749510600952873131009071487688029014532204560046736288506166849375154060957336029237888485631346831375534929562114068564304273775038810435665078868940402650897665872324444923014159182092251235512990562813240559382245307236704527231429370876358226786407461244318913294420152284997390382981777055713164209843811410520535360498181225350291218017951772467437229351594627876472225337390980224206082532357765910178373329831474797618229225502904942358860499147660918971009980908069090970801364862061171324786306732434043977600761673699848685824758958062412123660118108290335310984783108798015583205953130752089048511829152679976163899368988419530424075299387300597198950010230094994891164512874585040033855045672928592167805659243057658647247539065762956253395647242527267590100005041407664906988350861312263101334798673377355148449657518687927614401424421058353786122252520911770304882699614758305582978537556930531770542760513137483978394133632761358781422523842430454522365539759720420108229189147225637534681169154794278341003537032799203487678336348244733979791704643293534510309780515074717250697117979838725899123337795893405405441664318148982562412639356434359804095320824813536275762006872040189612102438246293200708558354353630900179050211905542521606885713337765110917326922382714904195335524496542995226534836009584945268568639359217024969271145979107581286985451041489537118612736137297651342206680752593003551238716728455559018616171203831418686337991262851614609195227485338237974119762201806606386909734199287131999405577721206264872618990002267808780774814868292344010849339665832719312346368459947635207222837250448909667901875050926382498281361713897978543428885113046456770099090922661137845327639981708518369133868795648163989744878831673414448847395864105101849953904394888079268524822457855619521297277783859220964273621608400116428215948731522981997424432039120270995710519600773790259927631500418845743338503093727348414244968244877861373616944467358620238369163436142300950918792535746931872786206744230027887050062619435422713174140391822837455403006337930681226089052020282133675556822618154190181569417382942230807546322838379227599372085422821065153620967544114414418679864611320224369147610391364099376777391172101247604420368101566175055953875596096924718291029529505589962324439403377627200537475219581163352478493323475749651572705417945451354769292530101834524777445154230172592480246797503040055133837299563946878862458053520004097097771441487677724007651236045496068605859348294462710357569262646862550734576469655861996422015307385460629684593174750075324289802494221284576556215120789763070535421863148644507466713230442813474410057109433910390737247206683526597335081199339890466684451880899273777707892836405020176624212572139260512602428426011291616327509365012071342371186430418659397010251489381822558838506419968237430977142677914338865470018408074965464720819259973486631335738596768764010060517644292224511953976370765037284036207027996538748105774512928881228350885945850885824785079518641563913652255294074890942423374046176679536773485461888374348122256844130387599225708796236880992174189445467908856821713784336421146215037850469526512959758170359967471060759461551908727642999814000817008157302912230181619975156541865684558871998241629333993196490305034893706643333113832774669720147632619382527763220661061999495061050518553631648244349223395524543230485815495920940666857562938434486458183754352318398753370853258705172520672051448472667384317316188858773559537995900441469788569720994708592549285841566843141997200317084496759849821952183609926776843915484452718881322016372850001474561220739253468794600798997284218323930434000708915706920544529045372042257177107621862384707589091748948532475052884539919982070549762404075895480218170646457022194489163775404916491829547319138554474268469030614990218364507473796201715004038355094982242668690978743122729846623598756130757043323755051451184331223173657425558018851268057503467844363486185633947230496890475854820908605831193355084883812027122990912995526882827190370588279126659314841886144428860590547424770903226421451478989058402285417154130793029928593314177287043829656565483920308631198411108904799259077722715008668049628975755216714650462338999787463380657601845245244356634454141442054270886581102124761509132855444009467372134929745423675987466220322108075400159238617898310919800794349150373147540799329887148285581311954698684581287162456665713847024845306762788123227975649030088130498422878256503865167444348610178098713669197661483535106557178424340460080431240058045891631641685760676484131297267998875082413303312947437571932894594012171378413896534819858582129582753143327803977547820256148433738121052070868202518168915568999602503808952636716481953922774605826049228184528177737309637648892963778252968050303504438686111443618405877195048150932999042159124806162566794416382510362783377431148920230493932702365735471245205568247138692034836462875764353664886442788663660140375518284597034426304760250150444560485867034247097142901586904691089556085411892208633765903142925814629784204755059915383082184979611169294700695724700274794410688369350823738571494175252679908016973546495577388529395960672877594358849262883862898008380154011420671103862322183504359154109876837888904028247813916171276939391254749519757523103101558159352841711731981307566416272489984095447306977363938200523991402818190051426633571984689190719972081673381637292319518538658957763562641360252471071748658177028775228534297386290381138717242985030203672811376599859458426707682915984976225610608276818321037358721223714814186828450824241223093072116038089244512958002331844169206245107755056214128006139460059962017000073044839807053143639929840075365524811689398226604537820256730020204260430734648458307082579090122767807659845383462372749038166321489456179138711821150628000699513600017113435796908891313100331839412407825826345559014371537711723111818171230154205753733787518501942966449061766310155006281205558211427561638459893869872202267370049948746381380691924591381964869731759843794261662207973064872944753443982083062136194826214678325787963728888124769311446495890839774615518960825838945876432651642218721579228848856332613121867223167996495190219456012869022913864161912350266446108646098923671265336765307579279280781613574594132039460451455035991492998251133977237325374298196894064396436065068969967492902975467872220010948852066205364892524800998050801903023510640020805526650993144102235954093965878669405003641750258914065010511109776485560304729731615189755924826277940810329499463650761649850335032118288983926836391151842874236213156651940734495018353149369218832601622841267076356025464435164484188349766017416855615848912205331018524633181287085573074516746546341325330284902962723021751896782230982070730449502767733288728534866975081086018296290241437610698784437180828624767680737260462879645982533544377719495090099478596812934794867680853440262143981956416174771799380270590520374667749215372094616983457805917066462133125798496826864261519788823566871323854132577061729173833462257147890220365044833050374671280304218050129128863581442672391347236031351192896404785764251000930457593739212312280918282991967211849482367812824149380467016589562028382384427937170132083430987187726907688843294761160948714784753890173239859149321459452059936235447023810768421521005294945875423092258999276780201759548718972822255541112090129186117139628961979412269338820186556138342190317338584658801670433903418398275702747935171844350569915576951614990239357046029189604540875686190399577394379030995782411823037412833671410508996465039934307913349368251260916263188344785908420978450894835151686107944857823417355200259716028325126549699788357595538158614180907372617998402009389196635994703867141347222377595746037103502021734568337895188166787825430344073611137676765069375883203420085624923916706533245623852448371158227209914322691236654226718114946059833022646917255733063389742415712984576995772336994398106693700577855093651472919397782650656129416398531754673785900877100967413282339736095602888477962378726797842275699465734266801984973397620164265885259583392423722636835957318991783716436829160580196798825447358034600839421506954368002511325153496702776407075800334117111396988565087054965729393482616386511612417997383643311956861872604682317338165270717719269475102488852552963435226337726699786039190733241625404857704071004749369222109418895629125050148415820749892998724691986278488586233252047759077732916995397680509159965170148187554526054387692142025141056242618043585883242075636356900537934257822434563391968959070929642139414845538665176732818103124138590023140425495521439089305248450497098294666740191598673020054209533964170958390928169689893360130911410006711256712776782656058295071273250874385233383735427695879535498445293707990024442316520857547878808164742358134917162450054240724679619192052816044501021885433036430721879734805479385445144835688453685535766973148062816539420598406094213125985675137595497650549090716602910186044549454625253619542980149782394098918175158592219207572958220071607331889122510472444422808509910930789622985223386093426643956145786500870986572032272599457413591025842276864879127873910918734047096134511695094611602944210600867109517422466804596092837333982442054226618115727071337903185391627915776976613424491183387715156793586440375920927306816904187702659010283905407664866783949001124114252163748593954373893291654888252414831997042026139380278508215466821044180700176407774107556993493508963968014635994010257863780315806925811274225696211914562251569691536958859161629899523502745120045923315942495174323427964881515012113967430419323408374290300933978971590597875161497693067950884694284057765642575115088092400676686331269176793918930386256225507757297484564572419747241975926389270221311374049010697533789448763210501735568336106635827799736406300580627564255163123278032490233238560827766163206880733351656011244501209100525612825576957768602280533056756491434423488701329713252497272895992538855862227059452673672052807734531579492711628388103939658247821930925592414491688477132414943161364151539374928757780145916209235757171374253283247528866073243399761523682233654813088020044513456268246542370368416906487526895999241078662884558659418626809199485001254779178319563548968778149375126715614736834211319241696366213481174998715497950836698796796128161268961010144498190340263896209389373105359960256172510836663698465433235057560792916886709146611455275527349396528282164208387165972554403159653453876256027480895852779532714338976891348259734543355061162793528311914681344880172368551979383280421073696011037229070135081205318430626257366454117346940597721926542159845742323831698873506682455905792243684824484335195187809033725306248454827926820220283254677428649956302592329419288505224199175358349482830115358166305661924084784404549116471827184321086953693894516402782843323595723385668890717750401262671538736046961655733235567498843543971073514794745656733811003340695583669500634034119427259976003422386965703131160976816359496110783177072988403895991421790428792910208694317063582322270548012320623868994361439360962880906401370926847591831480162842361763233725528847974602768373784674760267008723003251654633252067460655014735923778692562796763432337576872031200893822175843728209975856208801822402783069294987105431304354086539915868501864078694626454401817597222379403770630266031535779999448303882976153388724323039889573081319867450763802146759789802084361352213240274693466019511255099866219913914608491953800176679281986794544975696985434184837047707136842358780932634601579585045056647056307452428974847354150745619814817802734539531866772466656526443711752094699371009478495040657346491181258660907109614789704994711252689068980052431284119260167074168853616020179733469863388965918575275426057831987425536146654712902517625814678187134258129090837097597428442673930935075680845067101071568837448287378514636230947739664294317322043645353494651300366630171963875830183463256691207645221820836372978678665249109410200674460183204053237628696126104792732935882834557418250776850335019965902444778469872010686052996092913001769183889657435692210439590075496503029842483706334723957380202132483458475843584641592285147590844939802449567308416018975726394299723143270773714045214651430324993429944705635382359535878809948827547868121815559829608784194184001482285903776782519111441722749946101945313358857484591074152052112604537162790086061915343277622553899197477517479407466673030383629996825634503864983484497535044079187208556193646852942304864406601349986093610010150276962086957594575613801076986923288972730668965725803497409583310325889484386847057102743815639871050807558099708599608044192089533412355358997136975511075276324099254769280247241093663321393879214868017470405493474789663308224382445831416176923841732767297717651491945158917988444534744896865862726566447965504579701983035798573093483540063402137020669668113176538681704544099276764903938239861204377530558638155820852563416816262308853498712710215216964720618484244468562729837702928420264610945610382660568720812349537286612135311625813301330784707704808532926969961173085414513828596719423549472101967168097603885770513552563460894559850962918797921377963406482896624049804452722522117203445815551708345665633078172486717776791163517552048764999664442481847276018165066014861287465552076021301423312249243099491542396478990335570426256533017056373200470595198459363155252988803906547065872914754634639538741047678663678394895471116852819126021871066608381678452458269206929246345011322689308188700218069934077648915854612600315678401805236758899324462877861890909158716792004318220046275550770500906254258392737660883030186683812155087264487125450095195546129476191229862149495216005206679876373598308896565276692257109761479191520581373483085813289602103514873017721009838395913195377868218392341614058223672305063817161116476907470744226849220229289510501778861400457246119532193705966175983002057828525760470221233687350131841660233287757993406682510348338487613326027757760844882536786990411980015013246807070765007647912316701979679411711574611754696820435376994748189607872245348720977944774651296148280056780733596046253640703351842956558761233589977231369915908212740366445022826210371420113086221773074734250025294839957873438400200045880186070289740735040879223669687818562345810779606153466992277755039256452001776805350643755470952050712154992073934124372160693461511389013511827010269253544401401692234934322048275419128752387656076812055137572860985518140287708785248467519309448345088691731685628333259514606950509465605184303101608030903970234399513165671508101531084850461390304073880946575235738709249068426835735647476129132624415086610568866543752478808679563109906407588126199002868143020207256251707618110634560932400578112799553840552885416268236543391905772576693699964170631166964933221949786575656219970312555909467317179771883989849732907692435954671325628872707986083181484774343378384090111024703218286916892449260232548953638250515633201289887569096148789405503688219204360519110602183835579609941728607851883070316745802323390630169386495351179853999572986617696383367122514415098287745229180494360744626030871405101208852225670257168317060749642759976453624340531476105271610274965033962402424039546641128454075906353419137362330655561098082828750819823443700392809434755617348563637659475647144398428125170633416352069352255813077765897265368260815284080033214071150661327201461657972354118178420984852507591926369942779415533745060243172606327069461678088195115654702840603342282549943393624041121422795703715860259084815774903503798127879904148248500977340587947470862256948647803951809296097100445012500153392068276948527336759751143935963757559669201705005135128955988854126494048761403826628777153807078674812970363126813099588063738614538955249031969313151613747058677075503774560120299634284128242496042759011959402894294472812286485613766025805288914217218738566866369536702481458897277752666998769563814203645527855625717590828432970143805165588208272910087524459195388301762238046997313556014821320631540899667480172348804281627272428129258063274393061055082463994933992666236531962498201935371191697809077680969349966889216955901967593782825924532967466211781018102962928342870405929222879783442449678944677207305882700897082576595423929711165946723562367507111812257138669906614606205865428969077700913206143312253795020962856648321256869529841742848569528417507721312944852362380704321432336769358793866552178596903900660585588106239588695806504169222779835544998520810340108265161113091091637753557041506284426570775562831373309187717971584042089887210230648804889117149089736869123654507823003547087080939260592404209433091601385060065264884850197224262748159339301128119924694002370395827062948116728954233969985914656602911398491513271439687670189768757119754302619119758951675659060187103947353034903587265944974387178222551107688840096614846840198194094982670579908329970551074559092574868491267318188055646739371995233041584029671811542743947115168114401337540538011641648656949384702997284097299078768966696027917822216872582755391681950523697605178770640885283057519069229864246971922304488767570883140642059747219664887056857220627702570285923184485083825110833634257878988597306374201452594569232433257805884952322223789886063710496436184683808916626058020098195116574418111346637651213768429278717730130097698268904409343527730509577080254748182509480021705608354352624739393831774644068703137131967563334337270150435975678009526552695299814022456974019999366816417197346133852211422646625218613574864545668297479672880277147239814989056845804507159210414059034887618554270223803318236678778350373587505905640059499576882176781572392971799390981315296557014125992679119633085003793623004486678015929070168828714564931512553977787818751540961398850976727283483938944060673149035613242977606819482212576442878101796682288686222271428528332736800399133623027252875266660293445213849945894104867057417854949925117655736715929960385349130071657955662022150093196003514001477869133209996553167205040751230261339409871951369626916813107616194489065303991378805040667277334500194130950931335013662305908147910678866785280657150611613313440961683762204174210401606720970686487305548128914277067463511270308199703633514364333293096162209078972733928596059935618592999963711633920507898285862443562668531192388873558437924061312388049676061337050319700227076998792231181534795255359695815787529160813382894903638677613498711623473695121175562742519221470056756256558358041263134551190183633464150543185869896839720248801395578111719722807880731704052810945439822656010591748988694551966462786023295384712484806642595690438862854770315641520524357989644549951244458851836531796773612947895353623340884290326680153129569500511199786986299455148071456561125519059448600559032941909510462889718257026620511775303771112073216094461400746326642433125326273831985932393207672013579080876789045822136135810299054591776270863270473685081794168478025474692369578298012211288036112287670726169174462320147810691122810019814657001022042794701368301972547107286545179431082253544431614128896454480336459719930039988262922839470048150221062835470278160299408524566583290731984323278125175462768936282284885272498823705727499487584549400915707690452577264715916018825029918686544945873070331752632317056838872632669302270752458171013838244592030518689135829183991803352559738063912896457799983145244889232462644893328019159480349428069683538249488379290554562156307589378000881724464841980270324448895653812480795256658825629561451702433939853737705981900304818365660314585437063401312963136938713282452723450432660860443906995933443910068257095220527351413303975896917360178259913202760539667372646471717315736908944792918942586811892794342141323761048626372116716917849163371739596667819250522067969225321163065864213320831882708835248899008455838417402475147756101346190903158730557766309093668321643444288115889104734692990225011097485092159415647822759848510770140999349928091139263910763211107012152676374626644887611668990085058352292009788543141764686846925433479393284498623091600965263656651808690724884205758493063077917987946276019847130173200422948379726005587810330693504682144556000610958152049452596703267679484517974855701809771121810815571764964874059920179979379575997333081932207942818035685911710652831490791980139151168191847509162313466204039936865371296585099487122596041819480233960942659391749044659070598273903871623909132658223653469718496536328591197788844077919161932377733875230799187045555150924667621587619841679908624087408234257672973160501868346616758001089992392070329019192564039820149650294383844500599641770929618413791459115972686372124575046677199543419866954388535618702041729873785952075530278287610520117015658477476536964655035723931276687871931182836083036283037886053981696821833213241208949852860533282018696279142403585001134495208907063907725998494302681046604488683074235016238174326064827363268451803877003194557654974804689116109511694497639619220155579515778362214120443560402777792049782286409018719095281929114814265435948577841480560875853594892145479255785380284776399509558305161334650905283739143303235619502825118625161490307440617556368436558211751599941347827906333826520901591290028167191872873604166706399321468564588545977746617070216235389022545781560944376775868082657755643302737245974780009510316900357413464471334242459846830328880372979583317222940868753646314173739789136149731178695362766967893116114497592206799170511641674570484549817731964071488261230965869188291000049276912592574725956827936548595850738419326750652668365372326265310777044451388159792234806906703438529317719692270038750259354183070544758383425337635570710138091180412525125683155958578774171336408026177932141635472591833191443652604369993616492173138171219630775909659855832068808602391884565973607593386290178087076099101813994945482779935267358411164001753489427493069572760882199135980061638269446296722885320566356048306831908418921447092777259038647473792440964045106199392357226220932708017357881489674949984506344950773781791357285580673015258566858975570954978648075650024709780745330676409809238491785801801375420388736983122310274171488830323519386992600492787466567112869849746310390347562298407965610590580569721916673519960515937601202753084138208491290077533877405593830496151519739406251633405001043567182638090909596625242364716220444155992788949165837685259669119172548480778130970006828371817077661027956425123136996930323978754387942140833979304096880703416916413893219643702432722499265358949257707696474801542326032264683274425001411979449877666376216245290679138684855116419722770656926198715271315490370402725997363803029041435520921715556324370774066783224804810535540464148127532611291880534334610172967349690386045686004430098760338666135299387853927647393117628510977178063971229907749446844364993100675572445555862416972322437989760596492020756651000807765305560061838568040168692967643246367076874812781962606111812111124001933416444454916290894613627553202148683218541252430012626707374944695126502612162785304007219877611455650411182766989100156690458901307211434254780001325785286685505193548605259060860088484173676913234946430572526446568629880183734311835106479617538775930367302112260123291368382780157619419237748804428447185086609995050395690549597734995310823004974619100052488534894773661701945160035050916266086786977176309093653291651555491439694580846010673288736404598277282035892421739311507220907044360556064775874520472910715226397476203115703732738468316114168314005984956295944966466791702199005025755297582604986681436280402570598226168296379897687459916083044245700392410044591865494988536837142816678642310383407214631821500706835004191790693606041000360086813649270527364294348474940714017054811340359977339226662185336725231449472375205936123435581535282567817467714513609843721975474262412074364337764864136262712393234141732851998960902410570348087054529020517167615397225311821237943012367945249232740255157784769777154523099240960028802127023950611787504099935912350422927747067309748582039892977733830022893258554781279862953979081093534734989672804730841891674786527033435858636368641149138381488324160106784456485251645345063750714682305490507211638598151949896811245283175918785465193433767312977449984455206761395907866783145243811637270007500936762018509504844606355224848506577743145147740826402518136753626913722669888954983118261167751661570594534657975432522542209255533795519365099962249504616123422506653277545485317279220721583382009896104185493067039824926283028467221812596238275350430028050851206260311201083539188263975511366647737148207992189419359276440630808110060738788588674966150986306284580629308025589635418089286800046542628292199405588174174438417840149803287539186270764006383440568984304122339169411147730214514626014812151822950120869849930959999559934255790788146510544972779608917202861813269187161605120517185632856262416230553057863085716985538102926782014247524476527654157638469624098626862386759194611886588294054334830013873601918141591808833262421301031036531524258269706089033958709198661120015875692270078252622575461064040856539145892181827387342119451096443286433818258015877764155956512158736542253543993075275688896834640054635738273358885819917919781906372367267505289956062350075745008935353971882845480650906090965574742385734194322792919889365345326507522933716280864215750483228244651211815706977275429471660990235809988106489709399018762489552255079429128532778273425492253347692700442511007863653720817027095789704352401169933247255264810385262583716050737081231358781660765548998635185667317507670116131367094160132846176876979929731484723910842364492470054691467845719606828118188102894755668395872736990851208796413550497728179591325627666379576482937046587548362760533985964305625668346427727818527950705693772762003681933931912285675352628339221519931922899067846565487067346862841873650763865192118282507260625962852824478222532371117812825272249927671235235784821667678220799930905988128067119341169058809919050527916055526058596026740775892242155854632769311800147687528132340841510591271337661955665076509827598242346436815264746612858231931383110226004046251884270510726615968884248794877313767617716788362001014449004843308430166552443300609455540529754242481801352102935389212858187630702569809439231444962068103688378540131130018029571126065304226787059525881966560771389379775405262991812258492406227918723377414124855770370393739856758549971415313132930473679112489505154024887957331028680880391280769961014142178903999421304100496745023098463961157099948120392763042385303091025740619087436857294375067683252372584878811749229433718407972949881979718404213049441358075575416809307553691482269101562481327424451045356161639470589498024125553895853836297844027383155087017610917942216829688323600438131570739672479175783923928339510363637199910245932442307558938000515672497493601163962128123639382279572709721914479001343708603594194402917269359230180005562273032132192604918369273672014404473642603405349949469571299812131379697115133148687776838916749785318444346240426544001028606503822755923848256254903103288012767905805277570271497922303042956476396745196500884427670206707904224902646021747701690714079505456507800641800537899934983342856829071909032397204611914411006262083050899883718617667774011635087052932810257084032937307448937898557190209144843523543966269579385018640424227418586134911031839864666891839451074330142262248482854855465703819257204073502812050460149665762788316370932497863916089563840593206586590780787859850438177586712121531792061100875286408811875827513899589574778231211146118029930248999881794752950906392638696584955943879981395070970102063633951745641546052725220675429354934098415074480650335425485533359729376614099951296458903342750171457736295378596779567038808986501891564096699445031849698927488455633426496019172098491117174023757671804591556073025355310092745257547289250119917287597224688012531891403281310070762656853835901347029831361058359382080988030659798090541131713559180350396096973902492469555883075307288810347747855271784015564136069053928463698273879426726948288289239677310634837959160554866072520246872801328821409957504049551435115635040039399531429933970009067002101481882290040830242202705786462823821680568143166966074822738114896373717223623982509625159708161977629256444524768464815906429027892004933644112129722386755428279910577836729984307192496694007259474738581931763852149202450786548907719657961095066998879699757782113751050040977624683690964155054311933649114358670569361600268294128845007164996588518644814075586969541270092876046396706248120183366383834188611731754493776245074930780626723875363766529703477515930006928966115888823658439559449099159712457100878180359914027256752833399773974338935698749839786632810375572767416991074735485956582567275416715072715160905051902848175466007928312808931095083238372415032605689192125461572138583859537458801045552952714200829668090878754008184963394301679002852909821669261337588959701595476996153040317939559619053868709242734021302481280578094801396588509938921965876756983555708266050362406682479682796765266699683704346414878565888196304931007997456959414987620493787333800057352371773620803417878107409046720880084814282053019633374282298930591216340198745740452895620488297489539279513491489199131458445775034149968013200931656366161651201047106898212141153981182427016698789884106217549446573866651216594028780598204818455400111964454201257453650174368201241127838022050578642133153510163727189517180260968164396378684227633627879743396825078757798465362363922546872294390537697548549222312478447914040224528715281493182213090678296765682598843007167943821821562411632989679656981961150141411978398299197611683355708024061563274049105270689929395736324684220643404048311222779642568095224245129195407466055580373153470389676559683146315272320819389010230612453745712387151977825116479224068796033452390190995406261557038667414564093564027249012755955837672381444265735269501248699805253443711558955327283200274877014987621929410001869808097893366393997248490875577804778659402076171493699033102630552047624281090863874660201881694272000450228078251164343169963385874610480538996688308754620738221819576165499635142798348243331530306332762894236839752539500430432176213530565985561682750060757190062186800702712708858635066396322183866517336029568064124680642827536645168374211754265588613831327203379256858740557281660903768047688351905206571162629316214939112676883877215389605058881472691904994270846272704242661770375905100379889985218248732234414062852872424571044758607846172648764901817782960279539101110966363465694356769619468376684523883973018469481011528585728010410531625328656401591408250476859761045862499941869003295494632928764693776454367683782764375189561266556843229906083948030811772425000213008412155125422554632112958493152975243192332127841202795331664490558372359706719387497491394432007493060179062926949189704165053872256709501367002446522051752580694347166185134041066333192933673000442577789456599843208011577152154392012249225017536829494259098578831073265571883357374410178679523905420579931161071448712444823946312126342393178072467389507518957905292926738427059955669212578572847317890781137558427320484756870080279775043360508909968811143075016467312702874622473091236004928567673393725209070714664700832195467610421582979170783883516474014994819668211909610041322652438589281805764530421169003549213222193817058241826942927001524180597585469681744192450789656695743764734602784876250226027354574451710629143671138400271993839919339295982441505747390825020109806928340866798815044086672077188408846645880691724265984111140673019490851753903420824947015134016564198288125885777616799252294304881584203515984508337694283769787593053497837950422432363701522787496004189131235492704180657751761452706372921648682880374563627776799063140046000737787167448404453307409647076488986829985482084716722344032144134296912521331580051369764007393925916584009875110166450232259374543356573798058440227887538965207684864271590862036799518650161930206793154948051956907880871846215647665381641743739977932907980929507947850416493537647202806807965768181752803140992742583811888191075300582523803397385965558562555912085146496791258249107664333347183951158581886407841536543074794799660123835148177721719636041010239353367575318668269775440011593859308728646808321526673250837111695311153258000051101539227126222509024845026372923532855025708640726078668996799935712413666124049212224114466187308027880070318416800380990259709420224731358905094116119206858575419582947407900212111156398686466678523488134790234335105911621032310657791242450296018794771945206819171113404456973974091519866184577278714987144414709529352692957470343662332528779830942747572091970577573149058911738100650383354358186276760364414951070964564500368044015791961052873147607861496882493091892238574713551188685650732147631053318420535318197201639471444872564396914118872906375529764548766594851787946761770495266675105476492300124911446136063456727821941660222303931019865323383620884233129092930920446804953614902844385431693880039717813706988608696063538073712631798824707592109835646020376434170879437581640006980395656751124434361757635258034317443419096387225108873892727201182915453173825225807229327319580735857457051044245674111645860427724996235259281970868382491804198731967084561876920227167460093978235051789134379822311747290172494174873851553024801361768516234015668573627825063670899444609977214025927331173912400579596421013620075674929864667141192943083330694056240382465470073741796032287621372082007466365335066422392523050637187140257080485781096521151256705917820292108506327092217150600185165931408861014604246445423800316848525312366721511827632388275252289669747779501760715773666621497390184695891914307712299858393106367949756356908962440570155851124183147093549967612566289518561429581928946439112933993643913708780372141337500820917272442757331951056674416968742509953862460333880360309907491131999476351297825808905255582208164006220931935279358508843767884852094129196450575868757574602783738931502548942990470444494083117150742313330780628175615496018881816013216967055560789594764224471620269059838797182382478806097890314243550639381653881756319999232990909210753822629932929818648945306951387164788638722181081923786857000980041781562862033153027061449210087873112116845155617100846534381909024624231129020509134399252875073657765733332580135800817556140091027198143033048999728866436985714314851694750975415205719994638765231525406995576143457148589828009894804404016074374138601598662365617844043097494710545177961923128766011621555024266032426899550280557102245418700796769283101332496150197420214225600293329880052529754926487752910152602607568183994489593296286917447464606937878238720127692779308737005760371541403165070695446425734958873285000813253958524016799672811576671408881827000618090854732882607405005491823027771558526712821766133523834836514955552927330223188936769278454476104924914853965191266868790714987657040001092703389064138788004141243376629940871920165750394202077097753990511120780650135438798435271868858349248643072919613397461820907906108733466251653045603159389328691141881745921539634548904471565976507486772156428139310487962222458375262373199631028716876526480673111230436821359792096218749303941071389077751380760427994310669548633718042255517218726931254914532832988408570638971356650117802554519889777141187973426931040548174967650555198388002360811573135266090469356640751818433726506748596803090839384381346764066638181251633220475585662673012890069667524445247595870788400447407721237771587995028582701892494724530932003812410767227300269303732078050736454199730529805169936506114440945197548411061017647160995908672334547902655394582969807113177132472598060213011404902827025371082371775680765096643092457186870442030350242551577343538820209270821236077652278503728674031103104527809912443184324247114661648191980725345899948685783835365133302641714225831630617374277360387540609978473633839673602167490467247300098898655102049981145155927686515832735366076999229879066087111204000990433645623499416841999860031734383242707210798567243832853318501774887807868027732334570975131555668553791255451838638228642855416893999871094386241054170016134196403424727092414051030682981873395193442633059154211358025735360150189408807091459903857470196195161532581445079394565313020970778554981561020411689211161256574698788090660956727154157651699499686340236356305630684428675641751091845331590457572381322793736358374931478320382642278042808019086368194528122636859156112190436405595142884748031021046448438647230737139082442962627489875029699184327946614401243173174640111999699453600918433269726562410796841929811233001993753410854257106277189047583741623290528334173957278584411405843438558697014452972299451349790833653764428404600656284937659719796777340160459357868869637238157222690848312195900738248292527136678992214646120049885908998275084076081162569337977897828932917943755952885376988843708746850626372291038162389678111392362864221612092346421202004537353731789881166369592259082002873493998838639381075171718628837422588058466710686068333707073404467918064293548779722541222092353376787327432332188097082710485430863939095072613996571738672067283310206413682393638768053761293394959444933324809315874985806613984904689580723104138249661552110050486481073417399022538444066053308552769899956731811979423945844145968133374013668331015541607849420359603000880156986159736275241157357922798302860679596759074976679165504969486162185876159734672698732013190312355188454712981409564774498992128851136570213369568137250684103176751454862584799467749290716889042336859262459554231250935367027544898023881730351370019878638656121973041915028338804526890932856630630467526410000388687859087197361345776929194904115231494289844687087322043697878671259181487567743090933890910338326022605300837652461873708763207775057142426759375181524763507439267889996540888321954578402952636108554021574103275122816011121761287776547567318851191568291003736236872099174908095824575529084344098372815489257624118849119475982164192922338920816330172563853287268119895387977731117185449351490003710693266134163708589347445904640278723209591677604761765241810185591327421649343448856092386647776039993361301652399710988629121423703646903178471652607067180329468626864460075299955199294640939220113599627344203535887650259545177569651808641560856871624203779373974761071010397574403331068771302520444240273030003077968349666908890339007724082383858233160196603586708726380362482747751622847007930625383605072797626716369671420527688977309335990910892524122248567162739448888692595554302737195179633010438457252602510649595605133657048812832685132229865617651148413188075285168155701257686290779373245261194854376779970053727900344009346451993304354554901015508757947315726511922038048971142981182941497582309189676998585295507569639662881957063385777608052267571064819525306479299851183580857715836609094191122735459648938691794981274307100833086563242752941674275006172775463768074504798127577159856889477507194072084381422226671707066713828793985248161998927294053929082366127286495048795771848561622229624943776542345733058770806408631962797137479402881326233033061263822372622204075567837836423666897019095548339312939285865548705979973922580483838680834388912767473297737752139095259135228562535347387574115284738810592639893742484729935178701949873616618584664720194738223098030935362859580253000477644128388126101937522866435446865366657833594282819113020506106958746893899457408051841257526203467176653028359818537221121918041867839928480582676202883506544302806161565846405916197483432643344096460572323390309057020469082328549416262753343160560362214321429228508095117919679654154458372530438688465121682466541712283583195456896475770429889312764751186802536282599128684741600844511574565428661501520583592365371870430900546533118921788996386134802266884501965736756254365316912594133847303647727653872319001391991824989981417614238457539887937005762270506029225189167169001140771249965208122802340612968542652757453623048096345192351602486339434486413821941875558356749683131089922585647422241210345317730647096930736442971387238383010521167110063091945297263819007997116015115291302534642342593650716837608504789700692010361633752005899137270463007907154791149846056838505539109244926893023068067773486812121950114189141094217080515425701374255311958618051221120875007041318093129698226453056140763472700611363006396891130032211889351505117064427054029563791682991289726600395343813825925045553815823976038739742797453260396826153224469477934915002721931606131907114417556111895508626691393140966319369285377366714384676516169003464453393976693427436158636202407405524051888934653910738671716082256488896200585364274556895317025591732889967918831408696355478129175763368494745874628338771561357309393353579709499683820346647126527094058800376454557265241297184960406407153892616341617378651189509774780015456161555017661388764653944195919573905158449213000565227233456987675042992752319387196210198928053388214161275357557983837891618250898904323260798148069694555331745496942307975557795904056534492887312828584366829433114493460898099786352909027872400927473428948529779991682127692165746263282992798691839697830392667817547916291037456553213940804609533495288453414241633246938755548628206450341047317915210091948013878788735550941719665271051550889601183335434415271797940844700895680388561332534815479093226205144922028524077648043445190429579671691219443271817602953564474623325172880693350826987517362802056004814069683185693976071301488070328302248951146113690960187922867715859070954315124119980934446695256395621301318307774279414050083270031348450977250123073845605394566026398962082018860324830119527772252517620057081318589429152847755712802661461227866497401725362779791719203301996472753624235543384460464394376468979796189729726242578035691119305948212630991289679488879389691233116330354853916520975552528364243955690437823907749619333895087331038906915420468674345113352528266129045100143956993356065009793479013049876863176203234660193201445774174330135968793146047173564915503160424572186665942438128710355208470622328865701655387726412794019356198839426573956240462925318107599355342250218749768365632653197048901125777542534284417300575019891433200565054339540334846232448159994573241583232225577222247094439313987275458372683565073029884842235817115063092078388146903527623144543417578917173626860881241564862779575459702420324408386546256599218515046477424380164000191193864961094338276196083296202762156658626392638118432359215279464946676126293066306229100003174943599629958058406311009225060301794504145117169457671258134076349358511618546177748298308471038498583032241758625471421954387105808085564796094272058875267022417295029260481662847455461354828200992316854191872650248655184502143510650063890544281488666089229524855707486501795991740944237917928470335983542011069035937419143813468560107641056343422998992402682118860890068778996530139051711833972425030872671773170891929260607605292166200510029134111163611213744714035750596083853179855900417093993257960546167588899504163520318376976193700913538507623785524790147960631226797716250622963973283980480233825494707563659259804402499491558698235687014654261919349037917860933995055621838099420415977871764013787413338840236504614979959047118017259504122554303353503864597533556795662026373264092049396262685067955151881566854801928404721953834401751368291099015101101067765681809378427067884514662381942251797746004439786732630526958796359113878999808832537124258974142022277620638555450074766081427480689426138887263107756985861015927924524553381747112805273416723203066022479495092341619379641462231512305165229095810223857042287043565650466006747859092191110803325630226337691894223826068805269023293013294370262388489037918171962746110016843365260981891123250644279084522654628331409009728217101708067003073891561593432242328775074736168699419587186696790214230538696003846620954188000433530442057287155800213063094396372826412157594668246725566888031722435739797733893965981854035482734870879043062949352830800819336053576911665936875130319234615097437019550471778529182899571704704618828986665379110049091282686064567388676460104212148183711279353487438047617941788764331462878017835825731041552505105403413777854829501083940341145537317888797226823258052744951086880209563683395339773392812099749107938400316986833156883061639280367945032424910188152056570868081794191768691528170574115711091078933877053093776951401402910030234187603546200877620331665018935975491073663924210946521788551377173455497885993884234659817771989933297222306397778755242440027591195247346105447257524351655837196616026577513414766533918423727519144307161565118976161589707977626156503254867827448570389638514501796423622071798101435508396702933892583132858615823244182657986919956162290470954120431443829357761105992971704309646089107502900072503481619751937630977412436903637313886482941095393572849975738192255570050220487352741391008817280068505770583063705534284346319758935083873868618003367304250263041054452266822422339223186582781566599963569001944678691901248211925707824470483334586900738771161477413871590379418693454936594864612622534620974809735768424243298040755116579394391106427926524765772787136575552134224475396812524808932114288828470519256517223570064500191446423425712272488711053375022063586450695339412299865360487449382323484541132912965891436324711026786727026500974764713868450113239356222593182625998219612040458421378372898568001381588444279535780570545785317768080973446356016199454567071048324119263860267049512582954103183242160913572536468733523840383173158155691361955295594270328071115281261402976186118637292083573912986510911878783030144622603599575801280367678696165303162747790923300915688069679795989089138408798952699559446004214116470876847400152414553589115485988168218656825571884030681425796770305827601668073947078696993073866093363352264467359903304261390258624600494310787239297041927520030222404312698491845190690057417805199425160701573805842939947237337451874545399076697469457518680969772933372982644527269756819527466392047456887115159582061858820573718968492520903725415288346705665515727679279267215897815552208212612777953268999532995461332200913233763312327675262923054937616778392224191501947744641538836441051282584341454721092837877763589839507245741067370005922373498461820923259104034103963036991692878919815542285899173131038974580238235889432962223574137612666512047197852342435059371245232234791247334684337608885611572942338331106056686072539643552246271530001361552445918609433773380632775574098577544292277372974995733566631931212956020634100480868684064946809622006006774495803818896219167497903624335074974225021132330981866466879374150912756287223636532936229712668134534218564917045462419408234927033802081145801661316972636142506562871710989481744816418387947920145408557513119539698136068668184212533375446777231939477104471002493655055388001803924979122742332783870610030306280874816653305227963233511672843603899368255080388280489273563706237734428756954938923653187294801054415150592755714664531712423182219919713274179731393388738844429704003897311876771302549253277996570440863044202181500323129764488976664101742304008757139493252196464809874037732868935100576089143608684732995325301545117914964005016097386655537282103277208582057977610681191116536492731400375372062598757172355384848581281902987852646055656109187694451029521599687839655583198506909999268452778115841738075352141412599672229151822924341885848527203124090793393728007713269272606575048148151963496050172152710964174474798912528189035267403148902483362918507674463501569926931967931855296393210545100462071570734949748601500758630944217646927131660565874791252394116928545794586827266829194885589632216209613780042110234075386435469129717663074459316500516097961306271175354668470314527907344536633611575362009748043938087358665351648927484604537531451544767202167875658174330115019490155255055886121381526626565039839730717319843150981462944765535583382155787042904885636420480510306814054433228976035093536502456166238202530730654922908565374310054874804540067189010424348959195357426533468767506405164096686263740333982976622864614485990242467566029078985606244519201198491358463444505478477168401530951706669171047000042501209525801861937167188539909976326145096946121676957209864697290012908962474409935808383983717331087521332949054719050146393774063281939470704491047066174583956441920750372683919446375884837907219181486486303756219790401577995257667343472155108254480338878792454213508034311007022132181156457007812201802347107425623071709293921960057652574268739716728037632322499156835010288434524872571365516807951428023362463606800914667823172892014553904649995410030649924746856691421856082776855184951313071208145035814447837837262063822905860499374130950630194879062177070362502228005804927236524804161510819176599313009380519914674170740063801276239253811914691944978917915352865735485198659470293626771349542058537216601697316081442373346695861022120330590657095306565497432760221420147345254434788706411031297733990308729902205082762313856890205509089556864760245773800841112718367358441137719536755382465835898778614886058243521877704603494301399497035907124221841543308207923193693831312380194699227903822175577364554300599952527113407451797829016211677454322388622813274524277516646722289286098627887670049320258762597387845848819859941178759198888557432570735429107162266980869693666732406922178057477097116599955832134599790003227906037295235668689582803838585713447168353805047300624888429108225839638962299574380389850363327894739865263692814173929536863173294987887341361808799677529128881251252273718719566896405733818863142640983916354515705198081497157440447474214361978789351423271130222209362069100511291168450767175284512132352562227316485985779342742473796784291256080138827783704049638669327408674009583207736095409632793768909195355544791950627822635040142771666409725233558264830738623962750824276136949578298211401396691759362831704044750777642030651775547071102134252228390572835615512048375209721134585454479836384883798702687636335716187797594829680906355730334001839182535727484863826422627025179908672334286696715321836364679488471960653924930928715243753415502625412966550093770384873928659106312086613059652530226037314693374026406423975395803352298584684919962568805012115592368254236136198183216123446049062165490513587740387005490414866736587652081802259976373621971702617402383947862861119057932859214933262542352842925699416140021765887672262914735672018380453465743130747259463451276429028903132868199948534220453037550101111015457441574580016317929813404448424736880761681540956898881446320396215630941254667166267285860854795290559161013658110078315884253544451443413849868984611389187096653421030559896890892725438343731105309856138953097749561805880410578863085239548722996113409794844218307431496229632375071056706214498089726520427100530269338653391233644479535177827828540962894723678247746868738774018514002804809010015731809566619026534755528896589055679594859026151947849336057087696020275757195114858899094577611424523837858911236360517568067100508030418858685510418602293491700199851915575991116412535506370210969494015200997392738969662092785805276164838711637158331837692388521142341587590277702493306476138368096552784579511120028455474417324421161475645217443564532502799912194640263370287928415563130222002599210953536169987064011110051845382568131737145217534147350397615713438235321514502118214791812396699087191642054817993154506931170361490496786664134635120640591976096896514238472566030217121035192846052612162620025755826407215122648693213078301169048236190466983878308976261045640540959090527204932251959820354327068054181239940979548261581866239145502340034671749916378152747363454105999954657108954902066698152837776233299613239372727207480935172312363654700143130689299415858906334615340500019599028398044939853095407115704298285546224754792384607439339155637581244099988082174274250623861876954357461028251916851411249157507517730180194391518883763502732229451437667533692153917850155254662871635468895179042697189314860191148795611244593677074019772592523376568491065795675453971597700606425124848381825582072927513725007768199509077969198012581344954960210856779322354950033888909441591101827455814693842681758009287944777458340404384837668246840938391487540326160683516783824892343180309736277613199565433302185027540930022730549750118327448706025104253425492094288588417894164003394062832762147799366212103219114593164297304128517970216959882149832926833744135543563739023888440175531205795510061604566855996649515278405972184950524897103384361252977901513616003759673040188624027901698587379465016452991314335706715701319823257297757721921916039268418049065880592267469026325796689101610846690012577356871607144313413282666542471906546546322765004279720464162770736764051907045896771254112260395661671292399258553981770760186425519442485935634280078525492651657641948626688886453923726923237586533377749027030036747916177711832609479481817704391970824588396061231060446639551301393423031107943198766333152251286792718873726732432579735486748503874657916748682617672477724602946045445151554248260908826777749673895242677312063349242852783733450705653240433745488680341204989971216687830489384554391898139785846169326313167583019582481624008216511822519957370640324903213470329254170770233113411877214911593007958365965555192816941693525977266610167625025776247121097021771821585443818976938070118399520102799878250832431490222561381595495950949698717737522489008265818452543819618360730282299228312597294551184672964238733385860487487331985009727486513835271434647864159048789758535314732220081754577829852793662862288653301410666989067746704964675383115938107900040025428077830488218055086590978933662830111190912173151976327973778661621747594917499589556343393198480023989995630988241327491307264398205383938103560061768654822692612087247700389051159776989967321628406862033173319106851869190151378093539815340069327433642544293391785548716291158364689410413256949045557200418835126311836373265791903773851106342489169951399573807706305685024297196585576104469442090694535268764424635517271510847837194812352931103724778598504207495650554803692082826175869218219177277945352329861182673078985363779755489851208949806417719220869484977473788157490765951088040206910453551327740959295749659716980244920226181102175525695211439236584593379082038827319013852549908889346885852704660883716491213212418367116793531943247307117091412800305661762112002492793107968405254424208591429833201517181342641018964214168157499151157317534824508410467137809879639842382261384848847444972744688512326230712002871774037685422169920679907609110578681633524481439822442404345290667443538142005713492702552315023597359059179360339892190713167209673582346896356188780520397611605765502548857415661075638238013382589533232058449500826481116193329128304028238888841388749996252421536995084797380327071010900511792263559673781493675487494425221607341103335526872658622373134366981738512151086694701066300405834173496094393173901355803580155560926243241752049648580587551447157793283806384722487649750663558822459919468855157341805159358133694983958526566193581865877230660125958148960180856254158185813986940608348066252148597221193611258199452335746177863297336018563841340864961355433368472543147331361702227953127415041975392339796013148607342705886311552678269037509424887854048674020794215352642700147237190112368265289053067189502602040635636458381153864494222826088405958642719092908618947797115885417570863852638620530519662852135751496210700783355981680353293959433744538893440583480624176296092023192145627784853904417641994565619714322537677884477709470274116949869845747378186716524195491431477096873660790561257878678423042172797089789049539506372294227231518346166246055959243516187833621527874999674164740444530102857548313798072292457074425386715646980332714132767141425787267718971598245154775706021151131673937599224836984248694091090321859337123349600997046373342857801125156008572293603957045808571171989477129130532347081699126656808792788250618910231507654368518282068122612857561186749503608333012531992450919398953262479448909887226158245457068336498363168374425685898594287485022420700783194984172573983643689810762117431262533903731386444810848899433817709356348094805497780805521859275922626143989125253682743762667905399797690140604390492011824058089582115740743809525358435515057430377435361759719291365374562354615341769784980970007394843894596934488050293424423620920104264667604091244787235026093439462245543068705456957613693544940007766483643073145909653767423312578361093218766696516484490569299315359641593425041898724784537638857387010434988016754255106394847401694281733875014569389485546028589758237100803559130900405296787985732518042960389482396406067740316337150793311978287841993777352882222734381015508286270059856111328507934234692383605038334147122580097064861181790764856447134050710562629135094129838032006614187050028887090994246497031384478623375081419055607823141214874161344319523946637321460643684125525685428355254186647930426113486507237048112582644345019290788253195564587258695011468784273067962306743459965431841853595735528069486425925853844859917934420768977632719551000147139075781747163991205669651672339688895906034031242169710975159021052028560192635857388774877575408584282197394498889868451080964526421235428497733533788847478449366180831571792340215312600318801602127719004485942486826900113583217168347601193774306847187646877680939177267772431579497338259761519930648833668924484965314883909786238805550117158770531741115102949174590194018121058122796670332117515399886376616514758512093832316959261678643085856565600894369039255008711926922952038063633907899926912918760507599025880294774259887552525934708898184822848616471831384674383287843657659214009036174616529080634706628281383774041077320469573604789362324688467949445619240323552544732081770758705304612357052486145385111765439475315014386073473068404401269741448863481701044417270962983948650300289735291741302768529190977033614079738604109749826065369403803651904627936701319826294164414337122883077502226660232545185228809294993543415890578629283310268396841097653385829765695107170098160577525286673421786612229442721759840237624277978362178648581843095512206588276125980265059389265664552453781868350782810966042087137309903573221484326208374241272750883970521388037310917786403082230879383915827656117433471950806995052548822286949640817033754005591257793416697977973963679736835894556530983017653548764915215661688780369640478662112498797238332519771101417776127531941261883217758427836716704292608064074925571941944953369778455705051105588987643590698813396133688001634858767784522663708590442124031426920948375710591581360157207779590662598201447726238548830424137914834839671132908335237656731255483016555782118310463266869071886951456313497617710044306321982542328148752185963582239570994307961131082615963804629337776331575015016122743020174008945898786713831895321630254201328824714641118384286281088184226392333889945457777713397184175811051984041063281274688007297658919543670397683188753990070148860855715930482826538314584994854924191081711821318708222624635222962930686161350849136157700520670533997832355181104673302397727644710693418513245015208634668283751234612480231745973700552243859490263966432904932401420219274334247226532675341345302295128156961749697905859981041738965396167901928667420990309742558526576048696660187226805127761066036771373605905297172981116795177170972756081099594777038261404134647932860145523312417839606170303787935879943807101701118126621005195963174622254893003073340714240829185381661660646758161481027217132025428903831505936815066714755956109462506284414174484634482286641710053843122506572122094954481229247191751462775393705286545553001770844177726824595815411122377643446078283475828909383633824023811732745695079541183530089018578698899313628655413177357682437055842732642433451611178215477303773126979690680322824009103691218800882404744720512540737923163454623310762229035511770084563674891652240866367102257771333323658474933462566451574804381051970605672979247545040693574648020697230496013549034884820629410758565499884694939510655029750338481992864509432611744946126717680410440474169573875676361379841207750118637326902926109075061714384514501585330808318838990425680293380398500316394670848358689341859642468065156077436121919801883027577530287813462608974548917576689866582994204167425206179974695276400895972701432952570024421192260912472400410531124983210635845334104481492110220375045900224481776775815943345884144767841821311413766314356220403513622012323567878571083622038460347553974034462411953402846431400722038622735694530893870712214589432635551413485437869313790926494701042807011947858910196718122245078259944018647802301141286601432957012484648876047953580903680395682072347768620699329394975872660752677574260329089330543639178946382324608731888692149129636512669493385487697657258132582696239562692893538812487385938268328099079100199480278669328201994848556696324812124132649310026805952374602352870252351061491467195061533344569926364138217743543783151740458332257712051714753150065125639441298275677794979681721180980762539870228157539584641372640495271508614774279304887262657372276729712900888916564350846666264922272967676049363339974032481621713288023502510941036042882805672482085708947874167657870879936679963842166593258085100044248089526827233432201881906408141697195201812342604469409468149349379213577160418090060608562756253096328898725094599956483855922909934039867946590820212940791413353562324844436098637925687149981392150653010359627095388072730067364974098046286142169599230015161810247437351311813372844891272734021530697902280660030885520000075039811452576245364949598432452633900428581698414757017973051687624945075578821429619925229509195494911751197301096822598005449785997771246693499408271531812202232731311015113490559241660441616393181951628051217005253578496754156502915854706677578767399155055691766440336079544796925977515288521197318385769485224466840403600862283379130163182663688506756877728459452589837147911318094021616845546098268603268806812639695768503671664606909177443739299788432211798413548063182412859592456907589160572765438599151962333278364654133547322504674578707208423959628799621911177617508909016164202076036921769626405014977942336263728164348482828243703086469266013782972817429499774909370804919338559989433150712673096675952671052905045272971149078200487297974120189048640622593159606646914864184274303889705719657261914158894702255602267491229724871061552044502698644408257769934361411145463430345639193426012567977858899646922173098149198488911248711409402916596559688416856020419675537484721131479474538543374820043394387888572671594172051611085970378577942054196252346258414057669021446720658307871282253996379690570699472344838251853634745119769623281074783152230759845419135347476597609683369525780157858038481636866256174589729440819539683051546105318297694663864636155489717913589426559691718875301772550510495083653283023960661238190398921380251745802475605888892494704596813043733916736511368174031164912225867363483520833931078118819309380460770789859038560277757419478372088995406524001753070434411329044357128335178582055718927047009470884276998898172885576350917933692032894042359491017964869556409350617229823435592415348686187646882354772469303264375902834996431893992250210666773468951839972254885626731822181075884264532317168268228223934033164332184109177165526484169735226433981206379505726639642603933569564637410770019993544029972437051154640872876675425678882476120501797567656440175453155614995710402911212080668966506634897431274245291748292304120956560069524104414733514055535434989836719293317539595181089653974038787704821299493787382171535377245634191421457859174788193072451152489926391928637432023583663051161784453872195076094965411684764138312415106665416169900111707518986826348981565799159067242229094454827242696185240346491508453088930474959294411073860647008169146040531544825332789242939295838536309972794627320261655116791337522776408839848066485438568905597106393189304566575247805213866639700131442859511137499930651157543587888245692817251116998893547850071898117194543686443329702974699832377139526078133769818436042033152598142340744919091018034155570001598965838129409384116404135488513475504036515240030825365423167381962519713640775599089661622628505158980569431784238736178381629674288910578971456182177356380110530354820077405154414470804982100489563657871000784609173085645585536337059628047279782665782133418677634745752740099582505966350259081096972117982565772338769411940107191847929267061506354516789095956703567101056730487721399004039307680975304167876927824825166739942868029638569939663656461593828905057397256192844328082154223161887961731357729783326104220621693382529776686961753550193034773598529710206348745946798986387425108365198209138098357587139251849378792171660326320287373422487374997440803022586517009555329382977480061266644465174467051588869503402223310031976604769807094520090407219899484220622562404183558809544205873954914322070772602976412390418881412195268503204947862222955921647435590256973611966035126951865282056511410948503073750340491192148406833273817254780045342095532967460826616707566266755129680265744265616506256281921751181192480599757292548040651602686495732230541846709946786508839497995411933866302629648395374067091402429116477222332193292044763635766041079815587995155942502662754532960093785263129971480350317063548993884996725076222214653130516548509800291212028481749096116810393555171871678494574601137973421317839378779582274593804448596981954052434151481658102624683293061101752185465664772780335365270522776733699407751338502013569862310828524347318440236263256840859769142353980766016094349375319429164847566199550756510247826319090878191776509701416785570337031076658449455895848906115541249688395982532788833983642352933754312101132549217085172128160384970793443473359848246911151510523378602167497496392484552529488550154400753222853657170572208416898494251141576200519555481450966222953366986551461964242739913247427748138776234089154931666843391787701506123148510630817290773962344668361842834655442282758047913782834854154151572470454830502570156981507452176954997879480469812911538564782171343813614008915469211564204674849936783904136788619746727672833407209914904742293045800584237092355324811080265668179752702227481646375014406304921095819903172382861903276732270159946024503446793199388917102029337742806825479253116358365311481351561668068227705753787689314510443681630727829070436302271831576227476226739040862156897325179520732359292814628679980609190681018671928914243996973641502690607798971322863546628138302185618341936774863390778601380183180221577872378913099194421596824682253462352933809698493248958343212839968301480014717578548635226514492500733368637336092109048596425718945098370456846754868884002193809676581983339360055641219816429585347689684336550995902790860982067024219683701010438817201940377545380199553067096150436990657066577301168196478477156669381043723645141121815318521664536813524821842612873812728026474533344457431791194609245785482326316958652597489515302275250904739535870424475379938054668687986017434107678438255518610383663876430602548198106624268350917698335750755749429522524495141343018262140379353215985020979283155007470328599673424678122756990104098661241554389673096143413405590443771338408879888764141366681279003596656176398178932492312892646113239547374313059738527556355008964481386804746810866971084663177643283901284432266515070375284733434345478901359979090813330704609929160429654520483967975170622517723707029633246487976984440829567906652897354643876434166835521922168553512772962485002904444336962539988248251889138342131409782557912731398865233063821650997222754108278872360341955707298796557157202839372601118032190182138225710864795227249506240036982312825774950071353022626387909412462896687254102821391453919699360042269929582440241529395170021433200680607888234247291315436249390354728426580568314905802960502385316713775554381244574787883865765444972195854175287963794103774398491416609679550959906806570921918876294084283917966219810827500493241167567784779490277801333967606533221946401490108180192996839753563302518384055498602498221103511312395472071903043265186533180260704473197997106538692143417847044843113038545235946855718699285300414372295697814553617428033646946973178411616095624980063226882690434283963025290576334315359395229966702375468944209431907431110762692465048608928696275252878101004859683129485592055327438668974204869582485054785360321173558375354022835715064187640663311479220112896368399307223653055759992547641219401247765296239848152807127023898784933154061422840522243827405820119061656361622180916675632459893416260193549187340928447219408098550005644645926299655159576247183468740476282218663104060327278452373336597232673703045232460519251684567864943561248912202715327348801672209679410560993209921931432151260556614942133985581918852347461301790167948997798600346164316269051576163244279191409379882814963788778182820396597375789457194548184636046788886018454248179197504032460204161682760733923695903702174699815553971321306498348260443114305360623885702211031454070446427191020048429521746115663250122477321236680102199758929464616211436727131878192394834064184940669339610783465464395827330707542051596672805495438766733131478539134275425682089383769379846537486763680059109878453618712268620793289853818658492054974756108630329925346400130108481124784626364230126035142040564445606958254416944377071393387110065967822251136537435895089911383832367903072962371710713575393821903487194844823890642131412265253296140964577667587899786758539427525570801953265136530092936996846029429857996862160405057262546633644109545686693499122552338016962777588979194947293887203772560431554232516925507654763281557779956615632053293547392676806325251196580658579538151419280210616529880487051104341146771600744497184874854512419596150163396713492325601228309120648255587646979784663781941613617713415848023485653153859317471370869165223703182205869192568467585312499971316254087705361705130353434652593383045074323923168354168680735275090653092092615314178420172896882299374624707046069321402002506259124469545315408797508138583991999233470937515075624687922360598653494268883541263362025531856076400099708442812512802572691142213106943346104913655146367166506047177881035272952759433300371925547579998678001469430753058455160167868859022809921606008776817178993889283950440139153514239148322679345052045310012497584491355980315644266007325357310529247437204698824748452364240732894146224220093920982604607420487178403444999865412148427261011254180319523526833150342402247857633725810935090709927570616789535281056139359321963798781561605140306723467416065954867077322959960234133276703111833764179009133976646525236257482613215252091167798460835821949805156693459374379227143984950790324870450817551364596034599232316902863589262607407530591694100275844425461673015303331684179631803397357526517101501153047660846796041957901753819071634445841925529729704614299967556636996326533598651927746688665015196682797154535138573796041400523501495460688422740312548911311706354804626569245528704471489355289530818712826874004959097137880496071473700323817011784489618551176385027616196269238330383054557925985503088044061973221585746266195172433348576307755567264830181545473526813319635725704094553785967961891593126807456796427874018551653313819081687925688597352421881893776242512916564886795076462729533452589502924170326120577086557004504355352528239793273920524437616317705054573617857499577693692814866428235299074405669251678147727067705799782979077576256213214330053478949693471698297651664534872667166631378478445714034706183902894519442026547451203151607694564864596877826454906642887965344865237871251837733163225757874706133610227440003512144699881120139871124993646245703679427256678436145361817572500288976999340249508503851816915827853424724116398566897421696414255459286584510216514890270590785988925124823477320954466595398713671538797008375167999889792457776211870975183502162525428059123891354785370306163005818271059379303915723610952899924176049589823029163935420119156615105403822291165671823791611133556996210346606406575281916603456097582038808782006347127347954457776107044524178078111615533382925384576272436508302764153537972427513031948479576916308694115356099286123092935169112498920393737406431812517735446765546837422898473371638173842352822851619671264099881658810688352384992383012270327439558727007387513299824554326048127321698372817113877053958792678548483581419378148588441353925708756583292980583129877368338472474133592199097529662234268614780210848910538636825411432038109577805794330438553039795299705092569268588822743833625436367934444684060400368776379901999836265642734476850694939007828030807667735704378924974644419071807759202115497787962707567559934398804183109259682069113539661998352898496512748161715209661369549450156458515384141887873782218948973277082400214806985646909076171423629609784560600940063262872113394595422844566029177659699846783339307989996120027025643294058225167682135829433206933337980629114267188175590817267924073760402659168542429033485824477862876031731537630607857560967736808138794098613044717423072009166851188746612161590508489317235019073666382564094625620062972088685217494431199001175947319154020407792171947499105549348864555622884078463528055794313298948674361046984877658965869916241212893049784826027887879468834873210960985077608611028703967875676201921439934841350877923115578174917871582060710361613582120164943236400109048134305861209619168850877025069318321396286017365906591397189604067527181727596485676201094402727093966371274576026322021564491361936599137376018748284900320997228363621571383239480195217169603179101071690379788659919337267031686737609470464045526918991078997719933958383190161452912748510799567935196289926886522989628555120155057809190501177605069411627871567776026814317580650502634088969006314887542185750059297741136077979043661940858791223958569331984185230386014269633341521691842826876769227441235407784329102809854499367590766530986890219283463801983127579508639789772414874796464281073731472736134882549654856385448992995211038712227890070740638990580433505316724946116871286519715289056550804536265242335285759930872010249657539201655491368694011194458036813937101983502501028154273149426634968561498342122362342992765289234937048959548714495448737097148874031081211766107405970013488722240763493269283788802142369416830979159729261288889996626547540461120743536289777054344642706493063481380938398466974904421155642368718457573301172849415520148843404859661000854250212485853176041798115456410369735694930952167132820500502706235909141486997582090407261959618061362258271136272202889689255872995674661035297375501059508133191592165854103244554106672800183070528984694276796560724852351184093744942036772282403839506250900315927007274931786746895514272852111982450137478215757503667789568966768407138036059655665208700223855854077270552906020898600062772682230944559436106490592021226349825163695739315556197880785433234719842364486610949089588953410845827598814567661980480468578069035879848208363178761808923066881499644605489895456345956900881316318533221293841177332160831578578389449801081589165369878008200540947467532408117383477642636490734663097480002250970657241837400107285122050026127085488012928205793179225395970909083199683506103128732750126022869745363703973467800114502731204506713562562095737439137981480818641312396610475595522534813938441695608320448541496885146912907783062603169482002044878773802539541874344190939846417895092341955645002298073908348494650447181943935687301313642925326738659659914477421440811118019182006664064032871199528051297542986550609660728951417841241357826176435257603252452763225897143400796378723409251594626017178586409231028278851687027966258187281609688921332899893691536975178991513896588539254734645200382885347065201063030422821739921775322901302264715093729672165622145966645631916785303901647111260373033608225423793859061754364852203977369452694989327641790732854333769715244433723498428368796099256361259328021146785452875362466374060057669302749839850865085551611529145968597858423193648003780036857384363273466577259328662166764816904343639108019644566586856012635468340456395716666310563479426305918250490665022074001332756025815752522549925521237995571066786162338184002264300180696123452707388529161377824404239064307299263539629890386574849446698813518408145821912955966082759392839846651283793769102503316771337571664589573337653844125359483076091406509038173709630204109912540012192945159163327516360294959407871940130683115621513424111964329258971277838290616289068162141965707174514105095408924603005057701281791737068650985529441158382242160500306030586361483670738661084409008024082997734557753844601974138433678002743369154844913713262275988846778943869146823097570642309935521401694001354205584388853713084031092037211671824666712417460969588227737410352581092329501197818040219978270119843485695710709608849469383997238581217396043385063271732335985934002870568819142879949186383655185763977840461888613441308780284009637412465617832982072561671695666693748156884360365357335748803066845647326938610331572995564795837292853140321822052557346007659078930298672245246888132947790531222379840295192826315996081865411082346563565465662213733835119131942084380016994302557137226668390727202303083022487762496184162659440964765192241576055097566619898929917066545484967506709891377247506876346930338081735149611375641295759011265656036683612491361711080949600685172937109916231231607072950041146792694519729149374056634734963601469593031592956179597742073825108474724517459583684036907312422422984587167946629381397070733328246850265823699394310518900036648804255827113917935231883812091411191226779095196760037473031687783589884020465027845875602130234373434822620967026743373802794100985366610935746099747371890919991066400212888400957978250305196090409106427823038477943795988841952218866166523438956366190493310969293310660075162211573445830598468985415445857095494475267766169746072086836834980150596724396357167412720870158238239432112822847321674485796922698479737511881228529294895051576338426730989724129368313462487364523930296957438437250767487443641028869999189373718770973051939752553649656949854136225839122346381076920260032883646307560201570763551376357342527684662277839278115034781660096135454940813943165095338173401820664296753792452366966654790033506276490448630205170798010150443416773454741918988535749392565370798935038911859978935807217700644059013311773741489199060255499116988615957013864904448973770156790317757950740010934493990445703384899266637305106171190181156230660591536392359679440500115340000391020204354404016892576541917282441814206690011293386311736465395458996018156352715896003339610979283542169341005901306386373041423964222432167773610620309541221634262510472482947706132472910668727857111989192964983506857921592598039636491536220144838828078848322658605621806423285552041530079060717820639189040862761008366637238162803615519669755289573009464410724733502117227614884511614076145473160593677161120669670903789598290455911860031060258222854771483894976367852537727069750764257691231229822530865577576842081107803323994691348245723555809286094645897931035105808870411062843400703887157502732995861985684120798392554510151410974982165673525942021317386657097617347612681964374946711575123848992899259527803902718186919813697885765824878364676635601520253993970845771754070441308129203761355201115979840787633164221936073155567427185726402703776351271358176334377657401633612564911111095955280646009219460366032575230720259934184791980645516894169150586152091623820659885455195882346280613725339817903078932490197684833370146920309793871798271306820828744736613754724032613088877540239861869871132261825210526250534913587530708102680351599436228325852069129859337440082567170786940250731868832989787567928732537004058619304319576013195745652477823890136590348602109180156237303832036443763117303433262854009180226219350433377884581569989585167571014014751855602301547532333756776882523965405633186023408698266373895205807114572772048827905181931393714472937157733762720014363178915779822631760442495873365281640624446015454496557158298537732327470736140881311003272211343906546777779688994584560021084819871026305856842687949994251128717486483487852798086370735566623039772195822645604385412886864907261549028034875135496500410897238766096858531841662943582675708721525742055706291495364679652904203285661357682949705769906667720811237975967371132440442875779122572094353380153142346609814675028845219987151491469615969568789068716779014935106520043431238467211151591667789938182742846623887165148956886683405096835880544161463036154743701449824999873413822202181052448888471389960012385781113241086971927241429825391878884276713411073513753319884142688737981305530530350848640196038302441296308823010146874082613553913278348351876463489409302743717107251691103914339203756463470464956478593449574356032768686064418615994045345613363426062109785500311458083056436929184032066885448572512456096763430356703853852690997842550686609403131206592329430974349055852023157163338797163502065159031428670869025315061136138732183093685069329679504698658977757543960956604016368892976015247765262227065735623715863851583966216784606789850127517011199622911875267816975580844059053875781629330182219563968344464387226769740091251358555297053136529235520187619618772044998159604179568927732860497421031029901918500606445770678071975164516244527367578957350594332619533643409097488429995280791817759214696572487855645400243582637342808309581459167711278679876840956620595147937583378278189369068779945763274593626832686955103172934009530998204287428200175247289656205577224819263130540707760297321953482436644083266614701967454944609487190137904729605195353947025507675673380669397790143739589091273897767522943048871004763208080367832561805640417840395777242793926131591783230891634061330730384754440437902473446669873150282261390430985958631118948977061278711114592652908287060947536271171813681784384476889629766770137667488886247738961818984463616759092813402649777513083335478979126094626974248739318112947824441237239452391724337115300168464662052131323549962136928480475486892422498399624887707721151460319452328542689782849511396246953398533429039837215755721715670201521533463509028817086998978620702068406999797912066536302822196592408638387070247376254265310562492754911961351721877413542643243210418413654571469467892074646408067436833162886845863161680359187446224823001312869603465067981429207398314321162466437838274486064249755973543560669661448797221539494518090888316623957859670149673603234395871411498630678270010526368228570917267088284549768358832887530219819984733637554738278281571935639561156915545795137452506108814545336203012005711564755551419175188152414295795132780892076519312417011765493804904653545126940334381224129167963344832330810511277777736035785823337677402727603244486486417890309499225097287776866760684748261119452070540233354702982937459615122696838279739575243589750484858132351929931565764791048418374556734090732110846370785390641166811075763169032070861789296084302042026674299961983689168758452966912500328234119054944271242844562326200024856729024109699674072481156938264587652487591707715320570851991147343490474017100612763063262187912745696137441521468795115618070971834516842805801529371409464101516768675981860751352873944968190468428477789844898613244507072351464798610006426779700648352731538944029790163510843776888474084985883565462493722207776111675281078717823202374370270169251987099221247543043147897961330732440030469114171110662219357328699277740184822143863680264047297925538056627238155065114301954692973273250460768821336180398183810980940919104563401744451838316927687188196191993283011666352395771953493325115682356285690113633204017556171957012294604381505509858230481033717048979170399031658497298038013380634103741131803613899814902377343427906802137106042089864727716249475808249481418348487621840477246540193952249164905382840495947737947073291162766706251672202704455942957048331819070408477952383128049292170062577935727236678145606900420530423369023520011135090505346059470292310678998899036965386643192873202301545954219285031262138140383495371386209036664526460314764129491410289842801080204731966930582848375050248681931900866430856036900516613095650262391631406603959459486283807202232347625440986353983227588543270696425421656773301770523841495071779940562025609415291639177576854016542928404988854969356950834705258619542034005948677619762492040391456940244398864714941080909750149080188045527177914783812110043930698515626643146596351310513631152741656398316063748709098546874921911882482695585419307985833030577421361377907275707918938993853041383900080285967797423773059275035449345873073352916018647579206840168350937544371511395766229552235984401505581522028541646619376330280509295812150910846001061449132531681456610007061456055164657631124423711345645232325779429744226594465972107660295821336446233110822046881938658634667185028972094496502255836126330436898830592649505288676697352933623640612514470735118064581622707941219609492510667826201844976429018709307257912353545421908079842350427709127719821110966569073698191661241305282167487098849959725176380520427977128691415785862069827962963508107360827381128932670365355953435630791665953037938380423927141503229805595404694162712976285673711664987854036740258124005361060871365239860964677176935992608414108275390065109987826746204482859104613867722477264143665290532144401335653872249964995929320420784018666426579228080101753096196836631247285420371145366939925582057409642855156574233963190915761079939168351683401494218508266228016423561828618418426962372694537982010335009034498175327329109911478032255935530964145657444517903430756638740452290884934119680559056721542538103623404771909665894276993860732029237519124427485263567926573291221372931381115158013082254110428947794638050138498671904716678979009694620589223473264714369201754514989066447148980063971314794485446979827849524686109663145153467854943750641112203494895954116508282680414686570476862487752856898360740550227058764476930712664457678672546135703396204399348916840649651778763734433406787468906066453575312277843191637116909971139095398283205732517898996734772992085890594440597661315057479403285953464086656818150382571561068372214699140967890662125728231204145508363112703741029787246234981257484874075329955717070864899577808021383981544353074440190456741099652330488346862954555280016593349318101261949488033347640225034525752596410429932798430417421443990174823061522361566588633081157245433701659966605156492218108163039095722496837195197471025263110837914285969414538629332717829602963827394081892157291459671394774950395653853498907138501177340796908692034750952288927108505140608903886758957981666520827647355488580501007470933811386039985368186077055655331745117066599644330369745309659168420021324317269448581282012294306340123332663869592316279917666269468064194889240606419960160178917310614734260851830300492792993479989638956528906273952897111319519313582863827254552645397431035950524450511769090488487488789845340772703739726699061700033134720563903732570565561673302256754459049361829008719218724770949303676393236896399658801865608509918808258851397622797791807228686369254385668706134081825897048184550848223345621281555607385348120467447487228987944581797303339980960453936256016599198394799282780353479469911391239737307800185413293794832370835330215610743484598087813872597645868470943817637311880959881729446133618070482340167105069125572465433496344488372826973658378425894277952027413505137160116145566980115553694393413349866226513327304672049184697249273240105386508695729298737611607683039205383642149319537845431277815676408515609557915164914556853167185844985326338220644899140381068584779670112790835943749074806615601198402330753266167006176100076942340336028697444966277388526660715222606542621064588483918249735745923043474751807497046797264703526993387647856570290794479713816232990679717158656879926415888765313291644011463111846496078572000622718332562486696957855754346929987280965110857788369222450816753750086453808634650364250282450408606002273806047862163932103939889025306405571167055598077774568057055739689337093304855587052359532807986995761363777748641225165140832798471745585758929364066026862395472226868308351928833198430925839029830384882835176354960775333607258819042628393921216052281107256650663257854814591485255890172828620779760639241510050703082736641901011260528029744341831105504229388037824733051855135016337232803957607040647306976869779497787408848045108918978727808405503733301268153714921310856427331787627284620432886313898349439987798842590502031566927368587233703223311658632149726334952508842075979330828102165818531056329524522279937185716931446819881594424265244345652618176622695188885830200983115573805649809267951354016079745541170126398977749590357554915387798040083097892851737339146408800931258946478383645608745870950444887726518017535898122563174512589613111870369336454110588436086046081320417579004733977953946042079075592605432677436271322207833604369735260504468510422930120415016180756069580041985094008477360017545064412385363676408864387429043462673780570107620580867797060657167306679311333723676783306746452556308547612788996916708485880791189633018021882733632605084327595450497312064692364526945087835235748872492011439024373554309677797433310510874884331877709618656613353176347367663517831204633352014236804388293493300884337533730416627462049388870805512212488299936221494030086122283325483621546323658476913728479463529246888471985090414250760429241789491621448405390672895308986739975662732397149694047505144273233069082965095114922481292823748649459594835153693816037954205135753112911988533173602401244816389651236187950877404868185636450607053191063012358038123884335916943825797025712978208723373711642456944286715354713795900554129891388760668240458575900416766686365782149240688937593777341684212851242109866421254401117040823017832035075334116338404081828316258901363586972126175880633165408512780255361042455447361448028153858274153874592572444805549153772770262857700271884671142630772049748954707833723612004758116286839867727320708139811773913348558964379890736804919416495100225215499433295588221007247441693152201493487294123693081424377407150990602993069312177531392375428805520712089109269765647272246970623351705651135655310283856077798996743712546020614541423725388633065304967616472501315944198361796123478993527114640970918213744750503836130964780292542399838944235140172069249354820860675168589793130842826960650623065748984191647559657291104642902055910477020504774986785324438240779386387288673687459010913898340017934435554004453877742471399484673131276865249752550393684282871501663562969663126783088773320101991735509636857536069330524810601268429482120898180947698763470755835276125756593929971616412039147167407035857471892753821581729840621241844032335318002009884699195167615121036464133645240536636202790321422257659185561978255014423030790723314888318184549528409836277167343559348116675459450539686370907731537772844819759174578270743743554057275523431789506513859738023530066712077696992206039929665607716047180076699412462556082489421457159411211568530815544955629489302790339263078267589909317168359818452571558640208059598314189697130463157664764168800169216207840273987959957781073480229532753858437387192490662773953795621381790143047478201843151727806810471209895273601756164544088855381384535101554140409373438371906211153631099449553872337410261980057065662131448885962163137684128923017860037962689601326815963659187645698243036455426677183093993986119495056734427812609014471362223886312844278637151275537612887027794495206444416293629147624893635613142830073188119848323328062455501746330545198333445221517202376914081065979487399990470659872568317580888395812905315400224413431054474357720870050350855868251465532497057750555399797334625279648832058541689976447659837638317742892483179558301794427292437222066508878940456337740057285147311957779729501948050088043169743849905331688625372789063440508898273559657599775543092800687899657270703573330402588265719556237517089017261276841853089488064433629020296384295718549449508513657789247620896118036236232740383685624364141154024334302280026086481908484565124644631820760296062874248916016551375972806361884132762602615239341624705034366596631463460617854635900573220193314628831076862785491530014431622113004589970552917527257607858440722764694631299874796347118448129125813745393892000784245086341261896302890662230950897335376568808903819320848213769642037963754892190320888142011148042397084874864039653270065179880960839012525664452710446486736081738573289744166057951701108410569965269735411737701910140123254211901561471988160070853090873776384236441273931058792244571989952894747589997589951961963010601387421950575547954181159964584289598943246088457625847556942750509734384750593271352187745364154259712962285284730268889244068344456805655025139598450968102258162105270617735501438750349155284209636119003191006770066805939900585663182282845370497753618197446660570343916515758855432656170775670952783512545275167121659565719747978202123680092936076722234311656245206919468138336424205661667192295626766575245675851271200417203217453359811496744979538295258859203052780305863799627083121219102085419010704924313580187705000579838101857275900542458924032763138335616541210052033594654979729300508194393206206392582585975577652687249681650611548867129346470259443597994322920163614241383070173679343581208524227953185243575543753119721168620657267133758440290078209283156148233963172165364798183491800845131647286412136584560536976867147088479217041945141780125155019175189186276246862486882760585304518125628694005913184574323317171619199999999607047775642006738815821979789857899758849504048726676298635236383755600432840117218978714954427206680945441824072655814807205666959137480818190730988764372242023351451837163594961475683294412225699655859926911992108003959527203449808047010012759563133783225168820457108619554868412712805718884210694698003168673077824750220788442671739052811670166194152864527887832953350563614058314196097178162641172645072479654721978255611778131211286149761432666193573831010433774411891524488139467693987490948269867211728203379789099889553333631400444696975912618667232268170789411789064254332262677088473939969651886200476203854968133560962567290749575880369850555371047983787888328100961526709130511360931188137762993608760095783387182965607162068200274884917932228104831352423573090638213739982620646578295231124742927153721783843327836398087838942198280732413613076464194661140860303278154085693638002865178361572053671933531166063266596496176562903820402309876077099244425762725737203247206426710673896117638336272844290053856519048972439822848342807978155889935307165045171198852277548327863443294918749595109383056095496109777251170968978603491627896951289376219611762151483287103354893778214898304687717215328197823989688276553143422619883729188092308380185011649291886076891500795923416288269072669828337176141684085049515405167643134754687655963129104714113201548667125683168269499882135331156573665793833267041072854617765108191521250107973436030761680185536681085093496299337318477283784031929432225199001384680786186667804505831700927189369503857893941529970086225403328077669846976592873952261339384903164392081227569137643319693885504447051816073934033678928208005875642674959307128988238249796357930374369362872585503594790113806717184241127528425444608568330843404204891281781957288548651583061407948484428877127617769191505913734797615221826991367377269200646201494378181121169888106547905859473649995883649465769885393460064440274658288858078715214379095410050308570825966476263704332940113989900250200498410211683126327002521893113034087265361963718548328691199396176093885987085821674583126171250984143226270117030534092056074631518274797729565374722022648106361791312454179548244272116699283257974284396037905378909949996136910529437451227127775656995005898567370984944908351505990590421861744720452304127252087567710361563271590841367507188834907155957931124752632202653056756231535628743228640691216462344285950954254502410073643854118663788011482330484277985437253482301864955033353828549498244703779059621572998172490722286772328401618044664830850628891104886363667563771444253084798604202126696525402076897641884126497640801421149906876928441558807812185079898417091658746222978740513109988188122592179270032393184591732258583651742033557122458647982803720187631018622136600883917274859808332853336019122190932370818493819954785633164037021260975558843348915076238522565887511635265227739511043602498846752797087682153676580733327254903246437625653057323639261283382198763978249101417351616574641169348085172043469210794916754049878282338831870495482287271205432019036797757678847727684688157210984316590112555265700730642256414593648370918381204494234366172960578485018619267037926959202120276664220524232456324014119292196535198704658847214070212502983719668908744147615177902300739050549462019532595630656794255250979362227792132346779275231878724559400039414861147833091644651258787253893742376871599977695108491642904318691642271299375192444232870556397420737823080636867929342573675058270040118378087327489844793740790068759044363411472078371851027107459965817521329529427453490918330002228782566452385957439278013901419660304953789116740562715901791401695034753565745725992505605213298157167093661504130309806525737467572747790689305698043921312808701458280404352216941786337156308053896307256316145843410155990945009151701529941436963019502643218255328819615576561504138408377559642650370282475036426388020368405238732919504422505258548611892999555247312733543800479362264694267982696957182603578388572843873472582104125684253834661892617957776025554370393860504973761713489051283631933543161906371379605176827742828763726098239669019400938680918306371617386535100133486850314135528325702556317012509416741672254329610500480486728042466626066948076774387428393721380279317528430870271304795309065999489012895335316623558652966926857129630613377751688480441947053098485274340340055107918619644642625688892952345140919687954410461063637863009977579693766574067184782326879251979667000130906502064323489392381150240547381933575673151737694774305323280340521888931390430865319582207545944037132894286038349202522830005631117293380060293691915897372882798390566376941281227984230000681060334875260032125680009331815818392387494490418957093496880652053328290308261478664647900792080013373796591190383843532296453533523211061284274714529102000171493538723396617675279879831812754845830416749224328227013853821906891112100915730307778398142587554073122281794503683797263885609713347840848144601175621457011838131714856940506751863280560870125740881445646437617884457994378140715955021163211090172942263879668691336338180818161827865193983196379648030700883158394138593104754823434482560331899034055877090653552313268997667133924356212780368800106911741140228495326461546142031085488587127588412213289904006182026588121989334132387657166093458799998346822131507527793021884571591072662255703736590074015647758785881964830605728409627334161012205248284386077438803944438395340175919929562933836269629638202377595455499874267065731544432021841177876127100773156442433552657017360332034246551066636734940590139533529787663551315462341356497726832201223034494634327956314582672623697233336967268611473441437590894063858517260415236680637622253817058915245620795342570519067887587059797801129268863328318554849186666251985803788552125370999543937186371073458851363284210054521174120586446323627722513243649890179804553629506512569844827831040450959188401876295264868483611031657018604084924347676926040835423489290753935054319097885482916076951485432496018820974246673559507118757547109921653053260591267450567517251285814162688202506614077356045127571051983842774220486614049982156639933150236446003682816612808919332016127837330666206809026150317168207067659659810469093166682104925560629982991573169556679211116822445902247286207277987813028821251581692303584554464775859554281011852190286083063832450436204475894375594502529970594674212119144539901137796520404818052530961009210608372631598987595032327862665346945643906925325408931237377314406714750681011438912073148220628701625336288267450690965742952236706639030287218109425439981160696276294820781065981229906002565683029075172672373506216118727784690937021162245164680159961961342896734262348676037823923359009650013789014689951520261543203328748495278370761282968147421269716614043785855300410927900261135078131779799223953591467097564916244749850754106975509966295615113738675073689586737863318178377671384361070450423047393896124213659376441325271376765383714735359204299783999317475389373261699253826172372766269075157618126780820285466753213203663953905530650368567306306547225766312050922851240818134381061608339309309763103130749438446131630662523229887738896672017236471137493637724385733476838355199141510746041467445403779334444039697901395003382885683751573961547951822608671976760775808001589938348928753634078301793960267874989791491445401608994747413231789824175633027584940950721983625192924343723879167915976467147372910330580263575549689701301230897287825995276192349228044014138246932558494146360655808519418699994403947021575911440119894881554786900630523219505510297142406336338480459244344466678256715394694176019136537416752805820008431566981022332332098662703251231327234999037924042359438113449310581161128407826578911522916530636391319785079873602776781769030951319980205001345584668008809869132620497299208004465375404536272909065775437625129901424346734524814577762699874371134656809383242708184688730460143384479916847472535146032124468535202478896329729874345976612029827262023811583815006109754418106233682058623973732239780318979241341426066554608714857454107925040175998594791203458304732062473356020900894813315806768204653201254513995889509821902064246721955449458407104203478412745014326496656896668555342952522366465164137535509173450031822024404195650138645791008586721559499753565446326655197559686840368261517678863826753562713507148130682572914636928259242144317813656020881808240689744060915992104813878354602651264143051895585602847591691905225879040578737407116478533369680016829259965268963846556323322711380272896879801133095853706796675570352978660663394496426263226547357955809086400426475295063273676087824186234100431569612426025612421689443277846727627601676803259331695084095700401278277925591229729325236527277053329352567726891716472267977805047959628534455289536556380623697333743104008070751811798486284479177383154002315432415893106721739822886351070504741589266829215547879935638367510381213708424081152257279947293507528765656065206742777954843707756683420816956066953763654162805498653185970182964976585416028604145829662581202211819020280418299600478572028330563206780147392578728109018122154636779657202522307743003262828354590370915515760602097628600583082390036686366997594054220109637583848093544913107761157950651518513654180307712528094352469900263518713985819189470767530740805240971803959245773077031641890041487088940253999037528398080160118441145776561241213824139241585028857189801850711598478647388106833819840023504201379329171600768916585036811972073930475739536297596792225041554154550096835922748837733205054452517230389943995690295772966025425874110023442469530705098058214800924809554284056899903179730549362377833670338206439240223710899057361600938904128248439864509185503942258765487903841846842845527291101281701548745088692827790001362322107714683614280562441601592729028250684742884361138362317013339489526915213075685740881880330653219589900688587902816423327115534565837844258426023958046207898609231872423767483188397930638509399583443369278109465919264221424932662076732495018507017724984733647858247877282698783529772748710495139096210370155088919709170952070087979534705361897801220733871424164702782971570654360590920965679340918082425848934338191660897544926199758796791305188437230867649437856817918075568773293184893857601228013839778168617629956767966648527059878658253077287660890162344222783708173640905679419124109038766619252821651700451928554032338873412001872124343478598346480449311495297514801639936123498661656709974568402716681835508072710411154968867089158454100933106934157273078867828206670264250375484251964940431742059628059675761176055411275834366569622316191146534122192374531417106592339946008001424123308884798042863336706412417700740610058014947816227341973231650767980536510345661337495930651416031896803094765182771698716121953570456278758388853598102004959321215848314333310938304262652943582108198660607211109895318755790695410347007314774238098502196632393066860253253736760493992448981720488194313563137462284734297546529944665382844625553271617601313041224590337153126171940771669214084202106851245101179609147849849228207995846893537655702505231622570142226495370288191166686044344102481123564917462865430083470172722313915366509872899023236279563092809065253049469967233401933209612582676491760697984262795158117913793703331064260918944628687694682855470729719729320269636702323599295282030650780698606781202621242549786709942451547701957698401927297059178876429341505067051142877932959272409320792901867803690851236376165918388183000006824256504916743361093927248611225095409659074151883381184875544594221513578097418086456664784182933568638975145437742370332701792006684328690884986018004504657698887887092609341897147183515648035481999868057518380608487304640079030737539425402553023823953035363244789818826043456059353687548017726839596106914476409726942978222313085989308359824775359376030396728278969125900806902016274605068952292545612035502634100278311271880501262204663314835754477325507083765515863233436807038428115670577416104235842539715007211569406246707506808699944958173177850278856674429419730203255987777147435146093995789543396597788464883933199309201702720566100554192146777568127913725749412571078917469660894505061874598135452057967035023640838154244290528275168926802919317809271426290947701458552165584821978962593901762675786950694541633192280774940760769647979581065665046312936449737924131961695278873494524183571086660747640601326824265635932344736772650213070692750837586346054468006249051412093905931761607406041297629187698590954077937088908952345475518306739028700581930148444741754394895617973243590124970711457358525150235941082498544456357739688936352354975559751257094136411279890609689071649784459488124544649488708616514431380769048283992399293525859590580111769092676055984930697920635882522203707470484630783461619074733326078559038910587536280231246807749789456498564835751991393554297575189659747712824665908421201464293435125802375135708617920485531842603771970624284725924804938656099794635699802534735819535687177798699465611383055494598238220278433639051297793032821661513546326076707421448421984116939631099654620503400483954775792475147135578209041087079334450866650942516112068494545442899135485885121262141380639347821611659832150156823065768390597010981241588708338980078466146611892121336449363123343692889331352478027229602958747400184797444201513586059718379964885354907120769248349095620336879532795377238913810452570439015941071065458889096763494599171802696769056015246547188147948409563528026531634914562018303904237170180248916609423963750938929662994886558925485171538128510249207585140460050270321352574363597518875935474543659452304172684068626255506750987739825321129517797215261362065194224440654144021551870742119350012498395366571405739423773188876584836223069758870612117630332124164646883089296880115200570667820451081251858513251324273201680330729547081174893633590026397708697217885536407688024039506940679037425063049635820469266232571773934562952757230413909239092093292287010756335171203674003493895796613074961405358583308502373622371990340347269126718201116930834153700533560932970056479443326658186020338719444085659249271823807708030589151420368455332642359998587757186340773059368969225172682872929792913695952534643746769245629028492885454899045073774945294257226740155612195184646681729338789738030450067806107228265097999544414259982031922354657755916674478848184574486755888559977917678668577166876494009820868372654298602384057391524905292260154251740034824621579375425824150214393086113459811769364452330591808447928657732070139548404246706664789985479168288825531446851065789559000498778050193485880436435362202411539514812977087620579394457336512895810455671741957215777756252755212575459449838390777590089559973636742994465501545738995469031243125186256951937806508379471833731160730895220949545570027394967591100830119606899889789915237932315512743787357497941322402815019798790264172649195007969277980043226664936493801155595579071264545736632556470491635242433894504645868560911552419300201392343326671078473438202716648523806202127469745979996747525180844451584364453753509694862637403443455728849509942659153014627510310337942624538011091969425376726304590874029110470191090796265010457083151814191967089051455126423705603665173797810324022830752098802684143560715540583019387770361533446859393033315657877922372234594934708293905684683876268051290031238070150815475518812339270681958620576503958677328737506958804391436744254788967665845286167324900177786318688139250655871044684721605196742402410160463379402876633900947922055786092375725177947857100008540652574333275175602647070659819002147421142450774436064145396103567066724316099527830405551784913119041457602787354825245408180251363992964881185041159557703963310877599085791504653313124069876450376689698653301647599342645929768265418409901632488380260169368513761896281527127492650066214382942499238389307513387704807396419935634049632792952024265628502426811981878643154239223088179751073458373193988690834960443318616518254360679805494892126352776213200247734730304451061458862386462594978744774440637140219917798053170987276498518475464043472868040294551457451238519803292597862487326000837596967645550005030258615379176364099402854154634222322467479318501648335168230627947526749053672443506868473126614606965694904200830535575785114009828184919041597030774641279316921664473688816516471112092908015815749931154200684686010454998993213219052762905602342671967786982042672814895639218953247016836307361625217987089269594736732802770710490376606129164399825900304231904100552899793795058992550895456704896539558422981514267286540858342431488446706568172753447168346272703998625101208717935307297587242602469736563385028697557260549157621918251950075358504935496082219815916765882946325663186666374272244643424467857694389848874185227978480992825093420812554539313495005729789575459447113494659351536344666584765191847161245658567871687254564779473306964663054906050588331695074202745586313077422617055971197990431337388551790306350276783303723332352845522106280847614775993399726021175849004673325251369181107200635944971722054289734407737069611887152588984052865135962389217406350148935690537882073323678358140372368871899387682631206810203687575945609026879430465765421717245407739773410620918578399554159232290555253547609322893298646442258440030200977535915552475719482963103096298761513297612123522815762259588069069180761862689827893147259305477147492532480463323849310945531373802625350295924103706761296572967517170565410954455340281816253858305260696544401371699170403573656952027659020184463519150169488882823093911669844883459419094672184255639607634099868078195415105383827810497799872764705674345707421070545587562608486939628086165362229742678203617141706327315268137966994350612399363891784629692422331852811896097426717225611736352685047320620846261060170420392378099668217676819484688871086565302578615771200797710417825736664156923177911063175682936177294484362274179490400377563439335104317567425623281024032800248332521060131626821619426942173627794953592360124437629049804455276366734703431697984616357256381239295356668608737953720021850471476192799094869285585527954130314404129251829302775158687889147553383961172093073982339227179681275381645002118074160543851689358173254246865338187766174821968691402836696875278149504342312051785099977809855699649955988979162399763487049483976743061161838262384796716850974437693516762392495136241168269835815031972825243130220547090398824071337560894428600080359753635306296848215998335956670232487756275217135861204620575184603223137604482144528588277425151083511971277571736601418774134633470311080809238163184740247157023708707408426927935911311860533999045065602927544188368614493404525709636576358409179490377479038227149806614791767323216874919223882651240466676081517567824719135936226590462413806983320387323268224928394658382742224943371039932830330105468995312899632663934322131621791795587010020783558858343864035588691934925939859512476971712778156954887061426767460540908385370407985499208427863126442981009819348134298726205472122178329167065082407994032755032033182042520136622760641369760474245178742423602256227624395881875570744928717196504485489523744737261929396177402945704560695253280498652383603267795462998665477568941277059262023496948901374641212054710901347362650559746659027213051326775097821777619382194788577487556107988610429030144658590080971271995417971863881823270599810553464494752589951779505189546609117438335572335518453106872431671286176105337659213050860490249201923728231602007416331395963154646912883497358818893093454924005168154385469391290486305257130849905887088700626061439510493331972803614907115944357500024953259605546122541582185689461813154179248819447182176184886700623065968134880335688463643518055024522910637850797552583778241760800977738876205514208155558730540261258603799298731747787156932437883664400662390228752513895322196211387671643140185108394271236183736194413461345920011933843719533300784239501530718621898750846789378987762119630003004985190735986791975939913223109915977825581979674197538064520840050320671734089734952660916165207983616285052804325985507994155149059619729630073800474059428753266789059298361025275852997560893348991329110287059811661266381688374323117814097740946491626307302810839947877870043433408185721440311470808331509522673211340591083519868033857030747410784304874597170278674816578017053085910697716991590503183820281574504026349983227918352131638390804994074108890596012037597544774820277312201277764593195631357540149159442490421411304920252930760878051402207175905718233106816536417959303203718528021358468721439844802031696085490724500552356913355546834552188634869100190361848135815213061666157168108785191026620324955471068298541314932510436343262628480805148446523280356524523163565542368781885811344952077088903782413044735473983435416912718184821054327361999655460095270052268650686246147844163310884702107322399914230118283123634183871654906861887723589302606348427428178696116203001528899976265967093326903864412824156560217166586995041641340974969848606697594326991094555386928205740982523905258226628782533778288550777148399575541853006037545929710926817460086853891514685335572658808094046679787457024754826486612982563431673793119277671871824885805492964951067373446853186793062303172279082393566769329924821906297334945248467927962155192185306177773684645166895435699628808065040110922752888790782059739293853885484576382909934191180361971844262987205284067967869458446193525005795791926685863629249709145771731269367940073775435382211147184583912194466363187894892417201772737051842558095522715536806529908429545903205751006623064613709355965456246743288359264546758685334864167995892675735997171271451696418663763991605151584175707011957702336074592013552313032223361829625382019022089937887798177143869526359356110102101268435000043485659823783130736381040311132924345136923627596072482459741023237178837026442642335452625072748816608654673263923412291458104094182335680690559906006741862742526508260616322479081568403420692512740264750597328049935946031315157362894121343657573821390550256795569711332727666832641935591595244531619829360951993866168997601487298013594864857410007399254834385906229815013991655975709024136205096678011911653907811019131660372953687186564184678412305008591332622197418355541318467477374581058998803658265574765163003957089511897606021726896753624601164592834527126138204553337685529846598154395391996467639466125800278110357429422787891538302186665141494848947039036616697253731702351018990256454924493536528715813761376056993001705076445885420725687527871754189377587342932630755371338315006881513211293439378158238268713567626199135697831651257823026269822250792773358467896096049925637069813002650301130448693056289280281795698283849498942714686777826605270664353368006125137607705158064956321024463470461941792656704500119336153204374806912669313604738312613392504490134999289773707746891692465514778524927282504988047273235108418212789904177053977348959679253796780055902091559510053832889964609498294945616970106211298461974108551660026443773831921067235739243190466688002273125875677924457641575489145798014139066899215505601658868763614760321636571510351407750200174809715286541486045104650705215596060581149107771619669478158278643712274369198834545508882440792015323011674871369629656962273620634542540319802733052564817154557260913602376438906865297859379760207718063412754098278900489460214698479746269281975998624366697214690995666888571227851187656048230336186066887073879153301157957718578211687814240368264247721127585490756771461394119640475444312097860240308900217073962440979421271138374615787557481668573205928432970138486698588730942191857451430523804193018701863939495912930333273842616842102278257330407087754291323340362619625416528425457950792555869652784154087457977475540332616485752713853727675295077424283383266862564338766261821595735183083953540704098519411592222630106506617761521830711563575893038119291185646116040526394231625244778956970731157378426372750093768521889695405895823642170546758825405516449581278115930657564888383402140034877091406131409407400443419783383137131852141188784881511852628076672955167398972014037037484730877698608121429374985658459734857243240153173704641420943989317986856525094092536572477151337334107665234993810438707222915019356869727986786114334176765254431462973895743821656431254601212037742665042482048077090173436619884672727766210091174871188962467164906337223602209188482402563137753314265562965230730865071689740614345039848602390610113324436307191418402606705123479327639365009801321377995573483033004594908161070277636422421525302974973149168067128980203787201396184216195157478035338674062080881329729744441856666805323156938060035409393701719095852473183700483793054584460063771376661470503055315112489183701992382983819359917173411995096504695094329234187230632896116845564894465157931391684722365111880828071568070343190695884901757498360290971311999418276976961463519356053848573471316060640990278723957752399413987967207322628362976305668077873120023724015691389305544215758788642148888464276066684622776637249337065777236945144221409012865153071879205347713153419020596006241684428886733726940588074484629230507623958757276243496611697443554102696138185172765604982528716100549257157984217508776464041223422403012193476215990301879418437117497262420469018505606999683716347012082537859528756279163789285437556510584038563831002155610946709029915281489412629730025968775986510808215084119124786985171088111439157712070237074120072134225351867057030025863500754170842140209570336163781493826208328889622164690208029835373513507030756142556840549696364218203429298785823724303995977822255685936993955493322262368882514695502683004173351997363870704545591267487839466099974488547381891429098470186204831081967500441771482102977719086329601672195814580869529203866216592297234271910577431594309417084969509223200703097873690306643797323744503064022756042519154060739420658627206910581752056567692726165114704888096124053868670941053449805105828363867477971567488533024185376654803669760324549489241171060914285865007337794893589504302970305419021550004203792973193787670857816198844062431188143373415213099497423389213395173885774194162455040188129341042721389046015930948466332647631338020897675429835471896754097383317596982742211584653950255053058470584048864957876230356692199413493340673802963073421418248385698342123801525171719676043922783725273614542863542017188534534663496939786115631557112004607408348305481377248314037548766581047325393650511364106373920962788693166614734343017981210470213722923858639243201295497485202868355837186572670476969334185795300541948333812236584270585718797898240491253879843876958981544452916163828701650274968335723702533130585633750885256573515120384873862195065492182143905661506073214816127094076493600379930430064563943012846152124980296194455598594804734001357542018360178784119341490749442662093421376009909033639771784940517573939038393132946620490353796228327378845580547187352837234317379825126181867945577083949747013787714332961298648626153861795704061468438706950991279552053034856078416606833401746714771753437293157500558767684302550139312750999352617668252438726011784077262810495521766673962586881622618838235609311717060325971146340312346133335664719064451495576134783163985921828577269661657152900216633168457172485379090903913453541245666842766338568458095338121049717127288782426831017611740867129917148134426247970506904615822837556607233387642091501654819287123823612295710787344919110819720542293250164627314829485259217941777376334205269288787003222092043584505261556681380741086501491157338708832014171747574414098426542646990998545339223980854631433706305767766572994698596385973621213065579936914508033156337275806065201670731674190562653270030648636310872300883240852125390451581199138013811798423232266061446266977974864341285633950788248845199671884291520885978226437767610796852982356167171605162815421112645051131401138806017326224258987121693529402528324604275580010865266632736366287806258824311579791653240376600383652925568991706465129810617775798720650422850598298161986964566558014971080845509970296504859342925923054944019816418212778587539243385474578693591089457601534236257253563258753257274637664886892238197434754575840204936967918789168263550802758976269023817033124212476582873720321018818027303750651404409501911686310978439619629150171055533581812675973512926649800629856420926518155136855254961847233430100136403781334507434295693563844963501696904836596194176545294069340672878969204217042715395950270271818018470227906901106441570494490498456968477135897260000427538078080560330306915703858147512204531765828608945435765643494402203677446450670258577740258119387154538032030817255652581960979004351157575645779624756180496986195892148416316203912023013635562763648035878440526398097449363374056407746339516595980890409189806937071782647618367751678941990257404323855999456174560573866838066880857797339801737470763661115842407572449878276700826531943207317891645639521681709440234741797109270291583008005018433673885814480863515620590377242700438029471155903799661162577965544213948134092655826206564424291448336412274987929800482483794285421360774628568592989424130153097693979230162316987523313062012075624531373642756432293477901725381175467299287352481312781636041986509431269038173567207931135647588853008143134436017523388177746374938978138370347757086068177758137008658579088930359620857591058300722899331878564930933647986648705573087057495600120352525816615349526417983122683793895649818617680880467251169973015151275577850455144042368579268602190462129628589095409214040397376559647825306275206470380402537474811588678302507231264723939890036827960491820130819359864312861584162963690307581806756315003600403053481298853197082248054711456530568102545722533587515728987477823602285034474818480544329655256082112715818234449942641350499773502614696647371173035973301617246821250028684870257954060002150328272968989350569859684251347078639561437238949832070240203743148961811719318063916705742026391116881059419722486348551144008800317637739685737426364987291114160755035721051958186706194363797898774633794306647600888029736097326982433725039475978801865025489177800081051330820487966201067583772274855286261753967936709411730734427544927562578829540606204180730181934846694260546713902266619817910370126881996748315309529010482703710325768744096963431932718456671107596967348827177265571995817766550205109681379073846005235418452210666213534236528996931673867984433173043157149426241736682485726372825574462785550347786224413075414825622685214507928215015129187732381579093372684376924547756222804793222967920631329224332326311996739851545837150623134967641266220197112502353029297569338622544862694257423263825655924290826873624489459293346681595378661986551068159605341468542090618972068055702897618771817719621447171143330827848684111234780866267910369210998762026219136269912005680722259378970582869567887778335089666162117563844532094586315924601172548133099335226165771677495294273691389236510424086582218723893864345766101716560655086238855369890303894438484047644958395644272812134313945446995030271934955960059758253708493116177179505491931500379950059687263833903782912044918277953008071895555746711107006908149524112697101254754119033127847669761910658442070058206249326263129076597996206224551454434623758371166612834410898333499090188187036895501172082416974543098594677276892526312531487846352900963263278152421967828659746115303290616548942386125379518667446716325782370598757121299119762482182009844686018676443586557148604378290026280326379161950542561271652631120294185876009688985701113961739372516016810439416699908089149864140508042307532985503212479615074779108047623484076340844183687402527538052975226358035450549617747340561534822221970989568861917804742075797949786972789509972523683270827774400034061284843631722724909206447253424940788638233211175494771936103711018898046336677601776735028958218978778415878442802911185588057107624881891579694693070156220567786625463909521685935707107256897952089225713327580780772409420472305289082848980271340444391078196946437083600295869635418916134127013051526655773038945058556443827487509015969412356395945909732143907422556775543063199048180283223395481549677095173342593680689139520658930521429398321586964037921781999760203158696528350870322216709575586672759069486603333907815775806074490109492749326549457304056063352253975057914848129199913612694996211624264421998727045646792173044093257022397937124924476624764391066509659616879734300029482467476982469196609909261963734900206344909870954205973046381639914834286921997966474110258215100696211350817873927641714098347202953020408064686374529770215183917594353142117432550469988336277435539315439239330236596859115202280011797315211331891140104442747414224615741998150921859823938121616809890270790979120469493205577450471558958175606239460804743031488928963134331384941727586972611434021895878680483868093529024373202208700858453221147904857538503346806829557120789270203932662238163420178299400329400636308113246056354986628697044068502606772578175726946486359778999678887480620413710785842752440320709595245546647650831624469994089490539828415970585960879286970955237938106309739204291794837246987298049947709084355976475207952871951199164260786497419361966428441654384175460046020579257634176625843880837691245250370545547907512617443109898961536211844165786606303409330896086151237982279470744753103364130653790867822897389132828526747171708866891735017623379910566987299871215218888127315868935750011045887756326610218012748264454807607793068320589847544686575183841288163353790982297998189468268578837395750983193421074770851256179452938443585486397718827418795188548118077927635696096167842270811244735730710158786348943073935444107486657366996295476336046263897398138231379720024847778095214355168080667545055100322453342883218471611962822463016026212344445399736159449690375809492231342051495421750956374153585459735209548506459625351507849972368729106748253392478335477553734135024751579389927243150049590370289657781329785683046737490840053768608515034529009670960975104976121031267767956470923851496845246760901173596844057143969226813846059756816968428504532876561569612254492295294201955218987486171590183222678226844693030881563531572502913173447985811622544945599001958608778092857375229631577843581916893594934805349842939151312560529273209594210191931964023918960079896184290904455201073373929474127386353626158915438501611224293373855768022280888552328721286612449120022494101631627349946054383633393851166009803692500529026137051743856796019380610893036789837999929693055953004361777250100301378024549207761766547621684278434129315307359428823080414146999634531554476166256562908234299108297657853694209761235586485656041102748421095929107765279021217457605014264044353621817205379940205683933661881728242620132823858203709852747588247251449374358237126735423776497645868662503296757907543354822967679977791476856567430679780254215557840477903513240480209185249848631858321922521147078854835972538754529717771868148681245120509830377307141194724600533724763119968429042482663992114072045894101984835557599527867039829571831879672645309605927854897727379362014269171747830781823589656709314532217273289259057762837562272642587861570452368863271339469794817061509642860544504753191518064516130690449174499114971402972941662278036231364109071293748442668069290620424841779564667647375984520686300209198249433186915974476719482573994846185009874395536624084321727188830595854704930499211346541058322766959904065897273599831671874509547342320761185088668447568831952930971002427342351193358159346072142979035724663070201441680219879919699661489949917928267574768247674374516398654595432057931863053427038202807793387363723966668284922303537488502901254864439730533306288019571810776417508912771068437567057732835195662997496157153012448401356827563640307380717751821731262273899466392931424592302762031606117404011183902095499426631610347709062740286148706200240410497083815111875819441687107468062154123810370078317641048287766206809740542355524358969168157900266310786535059733659946181287864502839500395254209824772214187864187947222408206751702057616354873339430760096430112615986349509182125303563730943984711599678933673692351472529320294871861437820600561020124161492391888222881103685348204977784100958690095325604179869954568668053458632242206098585135067437636779643482685486477526379644587758973103054890860409294768045443404814996912842358912403143944986714594130589633437590693945126057032093663035579159190676893738069273730011435553755055604776030260510109567930349915866398085401134238845420065594287678172170403155927592948312647414263047662046694731630457465205963968400425129573982491427915513250330856013454828989649601912135906269015222159258047122330461426580107577542886385709226492014842766936457592671951883758532938626394229179984980814525323017152048625020735598892078536870908717773073000267518448759781932774090161855036469177230733984248154906655688315778031406307100974406413471814107226476797988161729695658198350842142226996999046978043707041352602341886312676619758153759797624106955080014966295231934881060869148487581439584070850247647388902574191802486321494988150449952056688073888264656739281945700493892614496730873127659434949092663544443085838799494989759048325654668548786835013061735151429461015919822960606677738488186033969585085035943434483685826680745631096411252786962278186580853114832956263150537328846857192524780632823097678261369582472135793846435738026160416538160074770456660795816529928284273949333144567762395018302599546780858444888158389634710740617474261119950872774345294969473411555643909121670039288216689942583642311662754108639737496574469074535544059758385125514898987806305063565403001465802216029527592350206371355410534577468466510616814191442838055316955849966181872319972936811789770391410085817858396933239091144917041909351351238328175643292701018076987027174137263171586711838468952862353828897784085982190938908023127454093267166452506944537856008296183171607997473368980536846068071267059716337696075777145138365037640418531318567907786021809553757981019352053965913883612539414933082447994220854369125008622485832630275251004642392066809782927788433440796575759194315282039392925244497888509955838955495059236509231086982179424227463310703412362146062826137023044313586116758054592691455420190216798870731400688116525700693503724590103182963308317697238119658209474664981568019383419001561623053689131509995357540734376078778865747414294135394781574215627449052876553069586868565422049382370141960223689234578682417296905770537006402657737413859563506438907713461121153968159517446215125839882266977512475488268103124724734599218672465098499096876929818749863643537902599769767818607072078739700747783351007552261268368018665800595085299876976470574475269713439728314105081220777312156538110192043778273376724133650929816599485999349312511328335460183480415745103406014797634764511303727338106465507351826482493920892118040627973021531784416106262133048560286479348301586837003048673107680632534771760898846932125808255831982492328350430463611679654654982406410122423509205791728895878325689702994495145674136264147590510029836920110066425966988807437902670682266500209918282716786847673896085614573891513142068970533324567775194645304340217542899785356177258588865256434510014660570123496786855292662885596162347638665339432623395822606983196943128823565889502275072613051198101188439231072583084743388225094703079438060083804357207033923578393491875840233455488759853893475274552593117201299608395389483493556158752282726605435725329551926758164541969650576278740682148715189471874871231263101149761090852045388491025679856733938325002074951414896827037296153604210625146249106826264220615269033673498553186118954676645841892120989933236140118721866629705708907388432823117651382380319807061013521425489055030006802975443345577809088739825674953053783189109258683305007214630416693134311078136143384114159589819315879846264713009844223887844015693140095714506772767905448491596935499069063296319333939674537839639861158808603650171873758913076164224287528854513876126304645665987926610821108825980529609483457395962228382133390257689708642182299028477362305838786133071251160571922021451167649256721396493107572602977166798789205706715281393018345790090011925394984035566027936925767783400190294357136087191033653399129827041259523433192699670653146216066927014288550874841931164573440875069720442525646456286409687412520799290598394542433500421418791636743028038684056774173468044678552830349834802756705103299635826418054662931444392975290723951104702605225977959920240491328186136080323825208429481952797285335981060811740212105854038141962437597427773713409620280965626879296849684219403198055808520594203926328468666338691701350273018259845047491021068437638989984527739975958041821466431510866173221702656305438524140993643263037624225571841680473073083755198920993718701890207006592379622942000339232696756076204042939001985380378191382996605131252652350869999568239634279004754157543419070999882375307515891243547835581189423870413832695778511860432377180046810826121940753360008858915763398372808399085274594635207933368743459095981443962771416584231319607431536536997538934360294461142901261004405628781012423297742236775128654656113548237129925647984885280548380131133876241655558089401717448614048237100320581511778565512745071398511065645201032836738617589196206791128832038721337623786220091075963173469091454162218859152476463617730319552839431766597228132281994286930234216908148425997178989014025711968893651108453675900691475944393313178731412058163095636511632492256625729057172524268934924491821418323600917651457632843686184366327629636637603350476073997819714064192969126989894144752682345173517967670634354728612571413021867445821450553673213921082333850421356397070642533208421376650777307741998124831056423923809675495559657843944455681116132108591898534048702998260024379058406619158291025294975336835703068062267609832877490611145766246952984973570026224884689441057836782388105147192549149635143697736887462711041716388282010467143788209353778616298553634774716523664679124828955405153489993932457393658533192486425099276213082154281102875749412813699496369135987794186643589742604539008066552758899009783319480735872619720439825393782709236776793312494668495197573911476887705806715213044433663177607214674742125283717129571376041349230691342851635263726168148620086120079086700991952404949458877492378991820400488632872984898011926411079297556011322627771651744156756355133770802920599184541071600942079657049320982262852229954759420557210884835033269004880384885762908849791603353290303549573430161130888923537877632617570087787837943244042447452759699239227955762837559744007056143960540335493002290215173386699885059725034724975610435437447277904875681743207955517421158453967831616943124701489832484673680627461696516095154842782656070929603726024145976756171413326291029630213336628185688990146953562547860171072128627482610617802251881169247666194836252490126731029718139851820023240012664543964105299277075013708907339370360296479928914742205170353643981044764589013199451962631562792588358881210922147981761949967714331698328099638620870095766200050814741433943050971464255090353733346124890201502571400725178138482126417744308250584007316933678652587911851942045576067474533926931665210222468971370881591880912502848113998256415158157966703471431494072446537609086859210454513217080272999262592796493914765869042834318186303079625546458473849021614129975853796659081586908627095314104730121674446741739652522061211082303364778909542136817616273007224743257034985810204133787574847989561345311384989107120192070520416726855494883692913707999963883451085428957241088095410914405745300621822876267012531235371620360978542520274518176487990898445558426109385095491344423292659508550838072190954520051496822274472447609873036000076768508484088857253229370272391148473988782217249393365341077468226539958730963098301983850128635051424265993875999949909241662162789485440425906999112824781741941412056876976434155598127406752097764758690746863739783694788366471592719694416751806840052632236577747310168797989279853877509247785219276354045663564177718718452118704774986717438009583414746119853000347002285880603767760538291925395071985336398517203431306257940756046044868015416234634916837632577128989708331532639696800431917551004628720437569683383584950058849946045099325379566983795920896080550178156680726281900893722551605236405036804190694258890963072933770690433127626121844942167656028181392122146843018601842006191574782433052245459908865460699852428073740655976649720256275420347631699162484060912261058128170776203387550949491668836912680367206317090246323938870976490044751960899973771348082715164925122232004455470463249585568285852940690773353213899932805539965624978483924371974569597114645884343557461934343405107778469820716548864656662048454371374637352634589324531445516951940415864022712177109486518531965676114317661031107109853410850038702373381365707119844958392008421862919707590415129360664303053622498840952508954104286652806159606218254354460358019942078155969661632732476964958693553699202312978183908330263468340913900798900631305981639668896760629412641586657506677010379749705703637298100748721513973634947211907931201556028209997031215101157654062618067296116752156530068058895740169576639221631499043677527572976183253472539663250653110064833736423205901100846319597759026928063198428323636727433686810711839330385095831353639379154088883171912550504981532635240803940156942637718652871705514808234759871926349784035148083042812136819850807883731446570263090034862068937146889193178513357242128293802361697001851375071066387485806971510517529364339522556120081270293059151574516479946357840255359000217650558877672527817311608889844979978034571616734265524845233456413010651193156440565370840063498277168672119869148906510964455604906974043960467076970605975406233285964351114168911252868960663046546631366835820999818787970963367413073243722098554395919091150308092324733746894749658834536502807714376582806887533077001804093300315482537411715297294624724476657126259395437590460287289773482718332560048307884596672770575991594025647406427695975191544848383765063021761605280870075001855525997140445086232327299856382790294273082077329895681220700554552665223571441558886729445725531350110823495946960816016810016523859742025718966124245327274826980038812377819858816363617162117154905065169589417754746317116173368081685503380014757930139790873217686613302921457139132825958335282697773823968587840789577146646668815983815428980234764596104551885528954033997892891671454997970826646154942550805112154217341180256357541909003766931386686069596585258048539165595401104756341854379939165057062543341101837318882702183351701777792507355110662873934704667921069439134451015856087952225365443922799905616463454580686841944682151124512398487744590119691509564380293023587739998172729223314211832122300092636506447198688166093083179307854445414617050091740497193905295040856606998548383361021298418301243306711867914658900502511194567797773389492194275032645821200547806902788286941922611324358220446620985190882471155351832623722393752961306010416075305050064672633873345127453822663852776529759109469416205453074781183750166780701007487942301673084900434351259649477312154445952182823844024844077243863544018510510288995665623658089394185467996121482961665196970176208006949405877505789420740957376498784919295371585992201048107176405985650657639932338255426802427628014424874789441681390946544085062463669701809357732351957008333689361429585177535457124680179987166438616828889668581821304288168626560074120767347205649776920117997863709520866957292698344571319172696916367971604940818917217391702624219697033390461122024686927529913570614276586786911841700116165676142354500768258158444896701693631627266305664896944998684144444910298250820848631188857359712689089649008922536556026811044321722768423956193049841783713849694367032176591692004960681603735311126710586507515447917177421129323260973967551008808105702125238405390790865757555848398118263626814678813912782814191929088955771083543182967190191731531549855563952579419726211757430808279509481603423615963134978612596146964592347255653722388917171290388429238718539217992809222085180669533545901661674528714998319429724742816069831366192370323623248020271317419850497672288648815343442201192220838102971310996172766833030129124164862149506848452181918147319093120273274281059660340291494799627317191488812839593546899422377976682992126048636717772788796888334405038364154475548448598828468423981091959062178279890381376706050019227730881659050393674256513067362455717792434579016826072263147610584041934925823295565952378147511065031705359730660152531578041808095368571652169079810009834320228026113178867265208044867304433262085700974389576661116835297885151522090212728274729181024643446001918604178788460529075696005117980046400779032093449365015069514090015318228699352180457913159744506755192555026471355976330789801695408393754262078007971362779611781871574715300588952445386036746441609495469587555060165456679220850645205464450563909405891749086811161303879095580812673779263276237883352373243161214859755044349410520344563902438488487265365226029006368595307649712501966866713064290917055277494858363189583589425878077543891921301723897246362614326053964833065854210263871327885346323592331745362048097188980543501753625027482777015799844996160693776670004203016432305673340263187912217325878219434753670134487991247830251118044214128974765813899966214512088598991755021864078588315154075206218604412548442194291654521338886965801899155688990928548567984068127796360262263715895082248472097652857307938441537034902166269371072273223855053831519707633969394994267025064659762518303653397707492102471751532296386027256107261304152149315869418583867229046820502679233589351980688870940182958166848133837233816387723919055127319523661429401356411109781603385316087440647316217624859272142491813503049394856097160450611995729495453305133408240102588851380923293823005586153866764086198823396666157818018495405050660191458959739360678980265276841480837983418228956173757650011494850113948340380303882903688494510455228124775338129019066944651717445993436638382006558951140177350503171220143439883319790678292760226445810695815683021511447913998219184069336825196323858303289026073659184176080598844502732851365018087935112111658731976879067280307464115022504758236542510042127154699007598454050249029854154068741286853691328759144572328228284167721493329095638725066353248405845792129663393325398184381045714147093593905405560851007293817317683997804796390224911944206137512738237544207696966748968440856239392918765812925759499952242902046685494633394058925724171533636763973490437577023971838209269441776888394562519871943547122448350342012466592681432287102340440138322318468382710983330499527484952758001155782287799613781499742137356901751191897940953291356075713916473220397433363140874221417452473696206941595809234980129048581184132725825240019687146850332463306185389688434669558907207651158367707352100917978631407221891039389307815412212343974787863824712253343858062849047233446273494441125442658941385240614586167382613937953211635170709830410915440938669514510395902460962511341968774976222037235892871586023571957564245971048430711170370510660268920852990244143284775321757133394292709672444813967271266266695446271927145217085810235656164222825884270398909591081605667716735444894667532363507138293255750371318419949833726051100214881963563778302209205839442629806787182203605014453740665250576603465153035654921541694163747197460306041464425184737394013805379006583881270608249220084767445250471845547061694915376200664128070510393259406121599327202787275450995641428860014479586140227789316495581860548121708660713404947401717707747296224699047820465131024514497311949839424148837147721066106087392865277932280982798687234159656638068862206617677932298403372807623446869610879735630487085556459556928062705118864866234709480382924996529550439654549388337038650133186895182327711439874983676970427898926582790044023341561550406726356968088313233935491490987918138932490002801972045372001799201054566052133724711299667725740274260806545553168504145815302244283308266174729571139504860316291357796828361510207660222107822782765507598884013087209335295883388696494830899399303623350087152306871948129644089847008978585721311551083365084940238741377931778575145997164946767386027853980398076966370951197879035076885443749519921329099857388285076670580517179663248336097250315158045339424604055239587571186135159289840485483833232363098016974578222603872873343298572557434543614074271426829260217497401203996047120535236997193243502927103634037573280745866426335794120484034635117909569034005090771509004011997724311107267910046383352723123702053895951025129248168429582169867378489083881248529030555539687713634656769608574549170234427545534067480031878698520528158749309811675997242456991608589503927508714456412669461071417565380286640390037394794795208331498910466069068089944441536537267962540555217270849498973738176757717177086697411173501723482465992739055687317860386923477081170982798663308099509477546751690816630823689062833848382871743029340383798565107664989072496673797921368057752782108492762624137791234300660034713909892081989821531908734676974594713089583067766530224801356305210108713142556570298195342994664980055426815983747970745261184834665918197998557073654536300156031796792428585054681564475479594227620387045163894048565710766397766663267652045578423200688095766136504219829357536938623157727177888496178264086619941047143024042332080874680657844090572099387917352022788649324399640683500910653432930978616446688679758047503360634372211562342706077817252376273322184215017146778380054791601277740785932296506177493000847266635067223352398477336709121549988941954187759805373662795873689712548242755498933621567746755248243541678676799533436484676567077602152965641163065683046310994966175149003793796312427246875757732192774033931810812661007295688212294820112256167603356672852712584708084779987122852097247632140427565874124442918897508884657421079799284997921200620462928261851175858477992206629914966197414551559278033309472203391679822678018450369335247426998103936517827801888424991662097518286085059266499540330179869722314441600082323751192701976030216710291244319413911706764596334727902187272511862932621502399034953274721802751337665874379341634474446125880089817050396559111463615540995763437518402243136808680618886766214098803433357735225823641139046300253182192376742208396487495599260592393360587352119873504799159057315095011251849810583531386017941817867615746351052968499401432350813509415874289500395536643816872189131388983405480237021576456210398223416987539820535931078474479961391577540647735502968453171017906363118006068384015799922549818191899771027779019132440992943424281156003455767777029511865060516361518561131813950388646400751695348131534328290810237909559332021162699206735382931295755643181615614812112335412276441989754216690733905128972994302055150432415719229271833416947993470310203838902392784077199841875677396761278829783971048706476385483992533531989408042485446328508271520264952604126093760850493835663076178926582871548080765959048204031623805564631153393489799576193866283885471972767415362298081344383266263638709606098592865401171700945358476217753295848717168540170708555713936065876149598930599674408295239076387373458550501146739993182904980069009945180259286908071264570997551217838630669236943973726448546059858969805318159720744898557916095486105348989373194807673259833109644530535730746715116291485729320030028402048929715927564413704986923167199811969689079678542242683221397451387663518424105675465760774076845857913934659695608648397355386845229855827970711264629212103888792665663767347431305178572867331330225418440552085983570938176337087557124993899734447051261221875497809920190169846771287337567447791379749727398050210972426404501718491401765527245434531295205260133608963855927359478713581729091985386490777587572765004509019420778688360649950345261972465291840702268606014808320152753283372945366910677129128214489273110825117937684839921560674469912958043531708361351691016701515858933757240898581926417358773250757638881327801896149140997978001604854638362969792696564322043047257182549003434640680273254824904132896838069425041455497198730136808484740521341128946916740356693200665921901402087524096457237747584158040363373131243754586664100546443086219162782708060269871672587968079421916782160343697533424456300553655761098313335865367607537630725570818982893482507356832663979925950713255446514504354307423555465256025336293736525243101950670758609389901420344378823827747566629821697255912698151411407801447658790635044842267924211820459506390515075880043559337929330871338841520875537287862835214102978883849851984443353869832965155099556563748232611944198119069499101948434942931551232434330699759565620420860339662323440902292060620572256978257787048600151847666571023706044714937182329118243065217022964534659998861186994630970867392719352505312423509575462008746052381965059289029116998855514060709763132229968225540429793013712328089265366397698263737278187998449546235104582542535549120154218560450315161024550106796835452036732680349208044612829705546291295223521945551917383757933460289463256217163264865761297784988661295782660342418027999378556563057218962097949855968526772484609143001652037465203889938860954666552472468157273411166802755575308798298816361238657454221160445295050537887991494001722224043379332880128682052166350003661669030114824267009504671511447218552443795031428552371080030317641717503316215255768638437250594632180487579004892214243424241155500665762828739065715634712400367249055341662896802864421557398791290037539879772447734075403288414068975531048627965046256560358820279368201756447769140878217582459029368442493830005792156424796332238923641005160423234948993848621676874357553934383871072335967073653777072215146710457306626312488537200519168755730632299679756059846528005878801160268183575869113215675285924160684257887804972648385070527396541796502319935442893031679393527853467705543343082596637091638203108503952016722377791558351173720867955611463362635361933257880952552992056455459549894910636582527490196006186240668274931849659352353360571315552498333031180696520307034028331558745631012320863672644430931123143356252505734244105052204570461627950058960255190411460537310794002858201270561469109640496525319388446270544353516673681842360015700931708338097949447250930501477274095554175083939246062479896048454451776628991637504985163740357755387549892046228149030147712628990094923790182979043501054629021859568791247271717483479618012556870017545997173306513087212383003938157457956831247127516169189887695991201000742213329570341866870297777863450173641945231939121160508954731688044991353711724064624709607256048738533180026633301860002732466390993720516510075752461261783314865200025839379673986814342788679561549063548700869885640146140401453639814681224074651050145037201334565002269601410346169217277475780164719743730700543860981311393422282834929098439642132266533123871260507424886107377945815301345427687316260090965500197273470240253788688833395376285806636034715711118422421975314604310834085996140380679506431296629749728006754808539462794090076114386283895217785046355800347483616611085917571534075482983181545244450063866713039927922826094978114433816182029532166500073503734176114789730765574114892443707568678604755316915822184230941449633186203312608499828640498319820991242519467622672382902124725873293078642154172718316805680840027611187685493159470509873714954689607464531608612030551400141818663650764053807957432761844590452310575243617899423860531169237161039129638693666585652089284453237988389033531953973617191682417371757415556735110525265341430241622770429592235931757026874194314680138953080967588646331292560530547616456402350513983712311607814722722097459042499978890594870017669326603160566666521438318928578551758958475230518017448522900038321573790593288901567493057203437760241795656830486605415505175928756678219784340145252472496200659729949682593637787539908322792600177227697633874136521402382437726670768206763522006486256421538782806320541766690544423289993404510719764214041624289297330318673320471438160114243497407225478268286922549162545914831429232717592642199013738227452273499580505655559319661175477904136387474562933787139047289881410519829312372953379625828201466322469316180733130775199647154489964071320694732169713264335703369254847381347208038934384165383692145273979026323816649774613535092042662479273344521003860295707150831642792390552471935261890637933788224379161604523591314167236241068789378469390317132677503577989580867524661098381280137254904371572169306368873628694827283135286429780964370403794326766611179552033811766413658190546910193339666913809222844131146795602568950229653211704901201340013609698978330892343437517349630946142221082399537670292993565355788697645853195242992220802295552866356531821809656554736465984787252594805534856617209551913468803130745470648889494615086852650516452379062751604597743860061940563671362406381351648604753106248901578800308017761665873112989434805897292733803731019115875371256955112436405944383761705594656983166222995406443040665155661630448921394191577292691552565573772382529444179316721218285801206903472258991369217614738789048958485196575838224756845502734417457132735456329805080740047223434009210499701101333688424698073028126510611038384080508214111709659203928692631100505719143467254121696089267578347397508502048211041719502455985100628120435691488364287935286959304977896487691087134728248058374836188159750755756088404007649934370848565746076849948088272933438910704970539244146246477225599277621396047240899543392282307989846406738276912861814335762540605844017188316989843552436648151012649418532094195396685172456390127417035113118214543373281036991666447601927251724691810396782236076716679975628187740196949328963188769486999724748927088571969750422592204096182548779891444531202514896419666295350333122838549193426044177240906348631496981803134543319101889018911734340777299455845427629005468155302629321885537398288690810071525495240934196061030348722713401225745171682964433161192776970536910889460157597783730564561069257216815203151224598322477788414256903907007761036473820533532882491999995080033549633210446836593903314695928015011985566825138964512738930124917181408553989529010917999138908952389249871010916211141856815163220847249134033428349578384002932180658037979933056051298037738401783094516880458299153837216222014327811832004251583603682718482603071851581580441735294824587928384881666963015832734011293172550663976058244927565352936704527471701063603970173116952384990734753558526952420077433010181307914030784721933430093168624385803704046369999323564080954705103640019771030817945202762650030655506912715821042652863706665266413427801493678312774203100457952407258755569591015354384210408800747678326080507183938526927064721958089020774672627833962582171435814065472575091244427966820433970934519049092196398438329203488682173625972433436643047742740524093694563040840141984699664617345032605046188685075219489702314553666599111546483325734145181874358680917420652566607432303866275727438454988939834814741742434294408455547045946790172267731186941791657276327857346954036831213699505086390271480533594810987110365731935425330702121531964800973482938780596658935251534845025942133140810952893207902862326169084625074699951030295967563795429001292676241208042532162103799953990872563877729465093459973606598385564899904092516201390170914199841635973222775621461977181596826719079377553470673209037596426479935492220266496493529237753171429772273848758230929098672072261314015885947338304493209600216379815606539034281218621700527890295406873303918561941859896141998732555687152288149983987296232278924475266119666732953809698530091943455589901795866221552653219549920757798973929046895987069829477700196439733902192664053193017151893489793867961290779235042885110009100979513982430724095249084871343027518981792070963254054475936258037819450513499519201167794233523770646148172524354432651643771838165480169630100045426595547055503023708807261793637501213272674371583152507232667757187495191886261063978862905337784310285028904399563478298616895586489136257289907121240113104737962314990102110678837638729049383633454767460608915371029135050212231960875949499285861994235408944952658290467977651555653846221571048884339582824980085635043166022759052595159238399764614178517051520856185471793266573119468884594093561561470280234185957678676570821835224857531309471101804559060116914435047789234272507254473939637515269935301145011369864184309350172401431491808684095348365426957918468562974810480520489863280938534632145908088242113459930020782326873922457304880086654879686066126425238303385342201227101793813649161444903140332601463146792595300973143266084149476050034015956668559974800903779638480556567364072995945976422104195228297176600074123006338197381064497500488153091513120318714713284947635918990489299627128140107652048794825938471789625034331792996452973424255904288792947765944728750478527369110789605412865572264410340282163072293363799876339939351832843775439144560443398286564398182093501170914383514079683594615414441449337279235405272789753012325845379511402589798593151983701146219222557234090015873640881193108747879528968895824268197033199003851736744542602787647521377567927547013552819697012974852152821643042318722322488614186214147343846678794228906583882540650489435298894440180698167202234111476010434081987575100986667973884122213238892235611990695134228273666200445381569886934523719109459376317167280950957487903279116503691757388646885203510462446096958706281171458585773128678579284989558300112616203141867478372053206004589793418522465676960528555551905685912915837830334124877845209064084106915165555916162171554630590879276442068416547941704061634766249690413065041820606931073379518631530902765592416288489657905405304765059627736315949128297388124162866685677410311817451639235097401411154136295958973997319271943603816393915582602179473983064496254980276952037456886919595068494569027399508770766511626090968337586646928606239364041580097647720075983600800477691347925700207661394551977955268201186487206592383122949668877256990088967648767709694631145228555336856614138196996691583485582974166745647774851815635624936410700186150732596230585264433555008681639089390686739276999072365407972334905963222862796942298653369130580610115517429532744024862721455635134126446032725172670685072130731710443627244225566927669988578520397102610028108890482678339773872725130444505576215745409226255413789658636590441400461115389802893682876443071332049237871958569391942261950650678842085336668600371580015676702925013983033860999331486236009109542928105659415887704715200218658386847460737550143044229003113035150211656354855105127227574180642348429186327074351298831062452072614234410841751081085884885268726330210671655380020802967261026891816480451864823406427217442654038860982740400220528464044071074609462816847492793469405216796861272129123033264055887434066745311434820827355277318961224267541183309850140030343064836443880926771809901373411314190129048747802220085194152307525944401998755765361886658850818413404971038691091584086829253236167663254895210474539818051782354195177400532412050253057858519134412487770214098603256920707072277141804487230484204626866238154540834277466091486905322520119487754649410127745255526786110013078375453394652557686895383510832907394200132624125624479479954547991151575258957528490685827566311101476399806575210489332388568977661959776743019196314291181506058980233140775404825987685196575805731998787455143845985886700731232810133493548991675676578735388159550445629201980173017290314244421845937337911979559273051597062924025489243491299918942261193852503025420817644990308844716321899724911842804027400665750662510306534717539830161397086490324027661147672244305184520978207380001083347339949182007045543688368979096483891636563893389347876613063874971018770658772123864785070700276022716320970115622721240653336624660803572539129544085355580362736268515341372680139673724212847112010273840153242168612194387060198056313512861319648257819094344080657504353967098750938996521968126402842771150779104576429497181978695935123681785107770916865685420332533442541471986421529325412567132061456402794265193983363111539954774357727492011598323230815678657706860544466872506360263077609627850705879054046944219779218405916808114597610426229780464529186457873120869022314928503535004308961724756218705822700509967789076825965089067530276260765017910898763949619378321595813663780784881422579754340158310133494641109477594940330269655995856304689144778840811548479211692906754024148138941927317587307243953551291803922544932624615814503263012267008538150306144045013596694730354736176947662504075165117926932536326120035839193435082233906213844538191006741165513633929355633684025184166937947101332180347315012767203124407542119302101976776682032852749940090359685213898957167928652266713924997860782496414875897188874327392222132454458102177545597529824977805971025680851306726997084668018828403721998627485978594613526173558093132161234994807650878919875434339812102407920448590263192403229045793619942465573419298302929181974954770809527863861860054310000772630063657995862867365176831875223187751124954216471412439386171936460364949026104462777692681726545112075937183120275145143624553605447792925162962111026447390863182058729950457034549010100199614315044188452181869184308226081568109186558874518907519865446406259179623751038484472379834067023348896066288625943783894416678582495713091692529563067618886304785581815201577958019164166142062277335154117969615445462411431182786353480742278197110869326459369447774147490928202808564954276952337920138951233261943016462352616362231660978599109053582951119289167482624467591970153421063801291268455782936332177998263736045458788557031420404929151582244310071704583322691632174712920568746157707593926779827279304463694861023374297398916364120665040477191270566803669077301736971668880008770089694842624235891310733626066854050341525655440184002748080345930064964863773550348368322496081418023163287818361680559156629057849752529948394429166154510645175317975455801635216154518262510526922010498560241950441805127566895431924146739595006400868095318153161801645114840180574508700499288157406482515466811184442806493812384399308051381516849182205585511133521633599356668740508450854222934205140738181581549895782868222443114913915368875444668095069810773649494699312527092184309019646712728688416971906490524242296310241836202064269778164847382650069771101677684091183979331710462733794668700348336064792882246926707789871036789270046388051197293786391921956362644056644463482112499720269037391819948900169793958555754787845594583008548707116717914795547401688746856992811844232489886016270508463719726612897021905577342671642600528972741619010069277364470170351414053470446710962408831889054886341053145162851165160334189458775876874025446394550394215932515227511791655622434784880873564004104754312496318215009294668108214094965753736740722335694031609771796492673301046696374586901093700428522280046067924712364404768565453214720102010777773290440716740563627603307415245783208431078959488204082464689569049366270613075307465887460622181642467764185266434903687139389708482014867900922803714027740389966056262729225530272507647238508587116947239248252415781412350020807550608466697655592062011377913731215343015855769216160568566093196979172090799537172612777985486543474292060437215916228576676093304010949374199492192853997327236055561408884567539933741892824970292026965622388316850940104196775301803369851874464300977993672288373401842849335755032959421137241575339993435710462918729014715493398396626656203752399935541669316764284877549378831063336995205871715123424104661787603074974217368983274120010687918554543928668553983858344109063337325405980045547240791302570032544918920550255191467792746047079883342334084812614106609339286551112403607495326658779735549085861945598046370518823979576333008703463250885882172548038142952134364824712806003513186486181202784347626165364591811861830127327585188336895611895551642824569067275705972221341700959471957522393037711881285920827478368881678676528738832116606083757245701823229728742830427150853309678604735337799723717582259214600801077114601219677323172174557404909341879213950114561241057481326912370756086629424553132914212102317438204198794910651349544673003435155076310407838586355568228433086783995124667621592487447251265499623520861761264618286594558352408919422719447197440636042710774923655013579566717714158089992797138663878912518998549830449574508206270432502536689478284432380489379892857726326097892428088549612855106240871241977703476895015986049912165398328316836074556440181496816933135351120687908668308148524249422065124614891948186213419348996395502811823926035225222255418368379602251681153099526376931095118590979881082513714117512002037789017350038725072315030434077349479858982574361098311593412847939554483013061347164243283961605416488380136358082217811397173691731359686818591565661332120337104472397137197027803753922582783679199126019246249896966557962803990124468079700928307282000843141037299981396711775245335554856608894925712249764583867841654802520628385261018084795314069695141384632251720427231710637740851112396360065028211235387885772250640253545633043336863839011580858321910331405066176793100223564376174406803202767871441641447366309638266250390412797562071085153464251002561341844559717029113067766567131768741812647049250287512603121518331224512877897555188117957767148604176715041887945908224419785569600901646324429275752238853007562699434898531417670656284214647650558266159062479261461379967152925859438341693313162543642293638813205685124156655350863394664207459154951381228172663682478807906928363755203384662371309252067174007378933873156834925534607433021670067659700971024299841830760608144118180032490166910957155369324426588307315636295865355581920131822361286129333379726970177634907421640931506025631676402248492116258561627922288175472222540865906494917513386657633756604165994313619670375109764147663067529366939299337267359094564694586981749264747063883167954785110717330601839454560736526553899371232044484143151305462701538971802258438819505288041471723669172047628454994230890857648254125989787374193612330334684633441154171499293766130520535005103174293032961523503713970791659162036891844219883341017768157548608261667458259310670388720168037145077728326188799078910802607699479820552310393748675029639480371007274436161208086180728011927472532537750774868283616358173597652699017227285277728772814173494533295209886140439262437198966242238756261892088381320511089554581899483371550764380629288829847275386115035412490434840426201554530471783161736626862100350685599207402098760017417842903642439542694322410710768151920153449347530629644526499962916187001984185232173755878441660050784287589447661974264748587416264710079413337094475704107484061588563209274428181394398759374241543408962614122445871799755638378935095983897597076487438593767733107457003307339325120814814970448462678348579366858801994520897158483277556310679739869515791068307476336692683480694491571513320657610977271042202909690026919411347942972423938820675666791577988574154998825601368942373046468069591127712331795655388910172024972072400398914717373887589676638016407289074491666999045950801972046051517676038175996121610923202941187472391432595023902856395493419890860357021080896827763873871539731216398968865598232748158531722945414524761459934995471127622315881931986558044388289434053657787005581858382884269936845410659038162388190499313322000790060451187275752964110852681640724924481111133896778292086078149301892073042574467193933093871309915220549274028127776916897933605844462265028173397240242648556211116277044523041053839834780481103100164797535732985588290468775206143200864665886659524783572265205950757733324726133216174470507495664726280655942816033781082983672995766913923490317272862238127543948236316236541832275566334340829070321839981056367946888292539932419190922854082801165281065523894290059122768725212879422153441671539683141018925613182733311726023844737683989440860439884866299563856018267306886838696810544665032647826529874109759173370791580978596090249912210510588310430186593355629069935260998864269665874747675068451156392766324853443082117078934906604890689716530126144360362207756950996862306181842122531462454790902856866711625268336514597697782892270845156457575254914867225321575045608709553398287340404032042173118453994753570606034711704443139406152543946390510481610907274110505540445758145879915519066849755786347788804744156452675643820405846016147773437488267851102643839105405688917931116098692485922462352271970981341220262456486235146879912880812234761368579091190591829001413041222762224991304321309040915201760314997504853708557218290565385669420807675741930297101751293360348068206946647024789994834926159597905069615850689618045952305969380789368202230121485563701021729531610570572408857355657754421349406393986670696896088881172035439938730797180436437513279794015365136347919267825219457894907412808113725666154012025774776672632028971356318870096582357775823366001610938024809015710049671967646506278030164645648383275905058089552309152748766516999333614399104106996244232994982605722680940223210909928665227080741405811793185024218172997541162174046653668728974529974245836559277723342475663875009692802260053046245041816802862230167661467323170962569383497797962854218798943547552391750708019018546288081723925454180112731283248596866546350146366361512281225322277897898952407188173808370711084308630027028755626739821695107446308418924359540629738927616088240247284360210824730393706689946324381773659830691205096751547262335430913509382585334966246365061862633201941099922305437596460547883447896843443909120728868271308640810861842021990999507886751023386651368355204261793381315114230780801059190102894435951423025085305373361970551774123080695449747821533317930593905370470483669036204088954994956500444961064721780553343971654558314291638823937753522623293392255876959009178655719334280636176119998023979338148285009822598544979236369434699944946637080688136392456047924481046060749666699975629619466190556869697896925322264230448504337851770004955100975332191791838615543877077976413376776749340197571551538688598160987688100409418043979451561390306760397209977952194617141760680529378569555686031051919928057478067132508152921539929909590628623916854150233753318377191560112725856870836897961317734528731223417231710576379132248513307312879885465679072286288472721501360135023202791079781006900140462519687901988001885041422800591961460230912012879775141507313002769530322225350767026890344597946162912682319602226660353907681325132219120598655006773733529037770659240812277118782561321123389453558338289264993922380285141754506507507328911043589444399721608525864610825254188060388442388837536004142584879614412023415903725736137482635450397774318135356911588612829954285064691738177306581596694276393293240712436015628999494884981815706265363056451077187337827708322408306955721316225232517459047719889958027208865172509835743263238952861145443564282078778785071004460467846954305514517477995114915082390314217678223332754287450161063198422481671967607114664406851998481058449206220141119826979262383453314519358172665391366640837013599762662483171659220782676536565454124403821289329552167219119594849519306248630127964456391921033144664791641502811967122416657616407468025455940663426408576342015523503979290743069622726679336103851791995549770690330102865197612201559433738938253239095827523422497642643014981322135980993467584853861089895385586832575234138734298071915554476838906937498168539590284807113473158105877278339873538101408623278704629134440846210428973801502466189325084833229475057415920292424169552153585233507994509540831558871134068806211924893383559028861449546768947409364729313543173018070998681327856995730254467422810471446394802069044202266494063110579841622410675651597605144845937286820542100543231784712553604793999857689086101616526705759643472796251919834364739997862449504191418321314771024642752617631069255601909397010202332881283954324731540568266504440725606491188325154067644241663481109035802867220131501147850449497676874312005194003635526667890577356979821735209212177358806701465093555147169676174807349115455345475964717362557707703274223324719097096351204636705252474220791188317994324267665712683924820057848629867816341482807076252798923326409594385056898936914311328868467020524726390055872075347883788739717598915583386843226680484785299224147589446105503184677446579818501903645341266760708658255631782367468259920663807396580515596716796989753931682261271411478096391536168303631764153941730933457955037889259402315814087316861787096796520548297976541913455382673467578345899412940842814611486147502940949560561797041851947686662959353339573695296073511161136043572240436904635787898611879988856677411511319917142132521719809096292845951239961334886187896503273401413038861746099341661858802191306061902005685580743446305686853835374928229988016386276806437833807417125537175948456816329588416471415924515184283418613149134718756845714926399797447131464710647050348809030950646380602918004913815122975515925664040832233849057879169590821593805879526564867297176740465580461412074903558447862993176450534864284667885411191367266518242695361361116486132113542374839756152578796336223669805840357495017084801660262264696225539887595607753321266527504388807105367507771249740771924386345559503529421746766028943260029201237405942530608879980126034220861744016775287320502549267875379738435958041014313152289958042516384363191146595527895359965059323612587374223988068719104832873530919341760024038075079415559164333467557908259418210978870032672323204010986002799833923633053185562513260333462222191656607139674868454663990715012016019991127638614121907968854160710058280035097860161847833672831638427648626381514400919242278892544998797479350150992509082304382435502027218463880242524379109774505484198574740728739542764375227927340463604976508083316230009649070903874318289391754699664926752915386510815707435817054589034424194695668935257672672729296525977399446233606295862996675937616055986968466881745684715420919691340651021507346990184438690088905753323429403494003308220132516968530679557050140616974881571516641565046006305128526996936043299731797181935084630427245413194641603849070766177664955422812289823184145036786747602488727303998141297639207924414083825594732343490516429490387716805949944536770339220929583460461975660050387839443687783254880513339800383639104917752639661825509930729979518742115139702583937127684610051009166945540517088123192249725918042234854817843439706059901438085985947984586489115281427417507866954075740464522534965320137821539841105075274777256664191294254476200147812327180380471343422934470416015768270065376871162490135004940099904467705559492607042596593288308479413557270508919673753223469136175985770818307539750803797547837602032576407230719032148392448688621181768202660499002102735077817519151006087518388225030280415417440677442094761962923093880229959161009340409005839908010129822355809909725667288784421742587943986277569930364217776382091712238049233542634523706749490789145598620652754363191132336021703976008579082327750721255151955251624401908502164236578536822660794558940435987496878630282297846199128733916575018180052599379616714910602090832919421399771487346121156776972391281985131302735563889766367121678313015112633509168370741137797357181142113713282311158503067066153294316925885922394749577572753916346763967781362915204482619199046651629864443109669781238045037068244376493786816386167553112787302991309554796162732238711832942480606430595897766935371321618121865237530639309701380634941306309661782231682891131050726218818326630276856327064094523897849064700679460499355501579035079148987005214509328718295880837477297160732128051652659690144856237919647915856755286481233369384176194151911328498561647231440852750578658101272200838052193320587379003412157315092979447875515230256980541085381679018731166823003855362835513619094664829302016340121859798879414658426398361770613584851539128814150236282685334935967125020087154082160640580663248812976412764334206006293555414334677205677496643575258922848149229173581965477358520451454157158942103097012628777452063383336672991569003002431691168071822211595785439290064952491883951347583308480998542533710494459994882530439246935600993740246359832423041417584425248019014376699829816474950058514014287427483935912228461015783743564400549839368571319156671133288930419901042309271922437355955746774977849933577202706159482992204149428362206533781854873347761651990383193677710731185210153969559887037521217800701416453633825395101710945198567771972676096224518451840002116581950338157889456301948537915498121017807852717261546297856061707118426096469781664840986272362488461760194046903970097410084904159467593444693024712847284845359599111058446049018218410150781204666265705546229522780075620282330431324898103074063454480928237197783712024201603604882715224642272518481888968540034947660903381631885691183953414298026798825180351361437418890625736748200123823098028255501290693569795408698908921318936298014290034262281044308802420106262764580307162278978013991363794988895569264080568440268106757256562316070609278794484715618693696555501816300698142593739481321076489824726339156570894131527903832804806669011991393899284628371270994932097405981079100526806023107808148319992003620841108717750798492514681248867981347276860858526047556790322259690870605655191687357205120788605863525818164901667651715636653314935661881969512839889205959328163906322739253277646378238445130251623197635651332657118219666141432714219688739174323552372842761520823874436697970788488988666763359358073159882669311706989214186631315876606677388246866123618556010791959475580464297710443011308592981882763976932042744035266444019205745670420339370992031431670598406617515095452220261342541683620183216610214491524827362751201754018168887210706130641654015461762310353454218586223052487278465314897778879419035611054806850557352222926679724324484844912564204989158319116925458728956502052061922162606124733905061594637010453724329299687800845764839955032590523411259466805378731366292129609629375344973335592334352549627203028515442899362799949207124677628433165996864643781461480495508248680493144799348643889470514097772375768824655347038459674722373498252803737804434255558319482200552979456941869735103052671748584783672501929881293534247281142463339499607675600736355691369718420737847689810120299517140995996471156309812521874726373623584525658513508130351532219903401451704164996676415542839277377284876665019139774363810520365441489716077841428396634612522606173781062691364598470910566164805946614456126143392964919648313472985768360261343388459729573390260992918681536927653044666978583797900614507804775506333367081760488924499996518944223677314646814238775446659007896136935168836525283204005421492991964375496214514804891620892844338994426939753612889730223114300644985935062073177358131147877207885036030019256703224750789537122429238173116218679439898313870760230199611588937644290401715280492986743633336949929369336556689280002174752965898872928745440976929143184098658708825728578906981416433358640953282115125640063471472543837769939139937255986386191070387939332215714521378724811331617570057746465648825393166020439421234970104298788459179208311892803850544525311640582292665675648466944822368031452248387163296165230475017893851765653259842694538663212945905020014116274477569431406587604634368908884157373991163025315301466758830804243812638889685690647678865842486525904991775560831054019469404308878066250834255156760888699081863823522184481689049263209426115840243564982413719710103710060666465689951927010043483751959266316997272238307577039187867559319232595707966224073937281078351257724158228836650474751328741037189782328716282090707101509866633288931544894624654742462253216572089016830165746710767818616135971035500202673153571366199577316829827061518465006664922901231496447331952918661515590906735665720632573017644423136412882597016774113424503421537791355002314737451938533627055755471716538433241176409312202924101121078629722577658369461930259396636366903737558234073112689408026852390193332615238396423964290219513339951419609718124264252755372356152125758899108804904718753183355961269647252915472598074862673587450973960790702510231210349005594490236416241159007698830074830625543162722923308272886263910368509908848964465219785600498508031431215562293155230270389632734550489034111158208348535716251534135288382788340061052643546985048789785525357730730237185963732085458026232191485416285195744434982983588312899577865120597789258338592039809702658390613781095757109350246983900583219776972631278606212322289343354794010028953720006763024407165214374956956099186377777655883413135716386782256825786140176048855718617520760930568314314388430330815428351297655302696246303053213419472904578403087781567985103329109747019953781568229260497735155984432974565077425114783232649664847670391082041039929656052659615957039653678868616942050651045343825643029185186171382602882722097468838955355269578026147301969727974767158889200766049813135962110025643691724999382717526799302539044334868497621145619526835271898374217562410621413808489854797385030148874286513435252153355400004527698451032796756460127732526766795303082867545331861793913025494990307032411334471407007539172702200669934561481556668516130478073974229004962594418117587411581691722807224056521534301935493963975613300837819248029307330098266007344915958023231094077321622614229350878582547570239222718270459483098381469360555596229998908797308141854049460726954597793860439032620852245118584663314959809137151813910066795838556401434628418940025511748126664786745662452939695614553830623376694442578376368447034745067834997191540910772933033198461698835684553567545763506352620620177081869200731844244272516374292832269135647644220837367605676729641335599646717995198933543074442606497796009517092242973032476529784877196843799515568132759562589808891035583659799720081700999621742435495543518202873446826650323583498203610020623466394900707591310266470693426676611083540292638918480538709157879932515911216718586112725854253021081339378882311504399262931445790588916007237585091802332576230166510757462661862118655495956902552977623611018612758936779852442346714438317103325664955528807820422082414802306832678270024444895415040969411345451953329387801658942124149601739673781577929775088119969518757505179017773095328841150918117886223445115339277482875132983017805910982396898395035958516952663678982503685539357296592248252316839695733744561727165606788991935923777222280118363201245372577067078466815012124712685731857396482571426960946073557982270699093883744599129785789478865323729892958348922173382526924378010107287653189182224121178533841515996455520233465285076129270840807614482318746070992742693255862246083860372283380995226910383076925634336909034367225267122611685761517525548370282922211738570679482280339065738668467383134935016032260344705064294028719758938204700842029879366902081828100574278466414444797556333356326786203609618678570862044019442116543269814881258462870807181336958641663449811638994651793468660730842470974483370928037148930308586197311289497451532627698814191088376776142051311201294133461902121874507790530161761068930932203436688064992084070235999296352001001296077254217590366152459055615630003603376089496628757511642525737185560239213722414491230927722970668606128196761771106987525360448346413105249495165816232674630739554877151284446049833167590149675782494995416933339305694544468100616821332386807960165318705293784780534143593389246297429771600831711671180284985040137039377908706878213105362661947843900577151546429784782434323132191854489672511452279305131037821270643698756083169276759730083805279661001256090162103838269380299959726263973029042311834228328499179334151907147634399814007487559499243210440391731074649840107124715990078900785527668009804575301416522972556579236635499191412449897961640703849596312866155288790872099342470623548393027935432654950656057036964254414351614033904412040587189008481336035322783085446922819994963357664557283718829969734202071965005437677495389735085999731057452658435892313663329614315688195472019017481219133855806827490832202002424105639967813634043116794066275317079075851003629766073451080699398171399090748887134135635366456044436639894671584849148642066991087264169730669294338881270828945092648068466435538670667204317415823194526309548626920267244035512058069130683306172498580014708267846922802088292810266463047013090237807966169436896219771180152605520489661575633515447915410359687812121234342565271734537197698584727622491731237987185485785978500090213533759126673680738365648821160874228276524617672617968790485633885832626858072718101573428904394118032881719017159664860420621174225049251492425168868483060060176413936854286199330672602598946137168084008597598755269691376935015233765169400361428269552570735302151054507571813078213271340454875465035973818152791854379248530641626217663445475658951016549669721660624024323725658637000844376715985924929877276082482701346140759166280996797433867450385147397249917370536909860272201486101761059107173280999721415266768491336956178709334472032942205356378866416681556531670391745683480742555414466241902900932750547449833221583862140057071575430542108304911775518143619968908747483825976412654872368216157281819751117918104526587960846029721493452760850234350806972471583082317631586619183375307113215514171738399334679665138479221750638707644056478172242586002569335152318261774614474332517522536722825627180089729026707392990535556432606186371929507547866680611035202689736506693146240465949274654403391311138626675957609126654873101913688615989937903905097514250903914997288991297357282296983809393892239473418955837130692749119300861917475522348650234274592109881592562059387236162312268627862077175737856315202397947751534742427604421346054091935597440977253791336131095159689900439807043709869973362818404057931649295012157230635746728390687566580615054739135691054928036309586581805469299558699131761338834914619880560716844676973567815527997451222185225304833516114300672701869838292436334850500456982076800425774100726437871227638844929783604517928731247959981753563001708109948534224809811360970222559332803148156590145872145753664816725174883410738421207962998109122444303978326616653153296676247206647081688996173181546549130634666498932775438285256883886984132306051042334749095714540319550791216296484552318812344476543871282240644360852620792892413021826253293447972207940106482159441699589546065176580051321058614997461363469971882678171403843731316870432513475470992114049124790904009180793441684442247465412691894434593262412880313279843014482532561160084455189410597213216117814752144498402931020009631052947751867251740343744441984812124361884915406009336764911530580017248874199804033100886842717662566809884017262053786872612957398591087199346639547969235115120061042151044371250674567737538780828994443988005874728313417014228130880131120971184044455849508279836478994054611362269117216302876027781257523902016447912142384816822085477065294918221352569509648605908279391725147356273486436621561975365817376596237592149970184375972881261303490283387828908440015464883898088598806601560865450245505490435995791726612780538234074608759536080337351420520467418285292111814168598186178812807569926804707657345224626865599005798146600794477286108738890915665888156687454361198051279237054265771048626715369274967339373612095809599959506772456532443747923653364828048862285247883542508886527351190404936248553689222155468560804793526287536489489880219137704755945333186503384001826467037221646850836958366509547086226830091474172697016046249419512324058265079027372405269942546257782352363047192637386787173466177964764674153397934315372208255461540325516890291571451659702780029661286616171136016336670281102109285210559833886991011811471636783334994868335017065881907966198310591569350139542726783767853398767584368682420023149314979502302895485157348392343708447889590572960755586454954308524783954426610731135692741202261508922975325831212243377088113953134705188661682299123922472557879388751276027072846133495412308349420165120318775648747668048261541082198582892612599844879732803049302557765637699796077483930098017115112402868277673714305481284634352781832397852387604318401877951779442490354231581616484900303776389746241305114083958605215931502010898361732236348666739347598751870606936830145699854981314111092311136973894994720439771439320314890406567621342893391570738085022861425334069418527905055093380595510338908869586888565294879829284191598436968766077914992174655688160124860427263015174199228316532290825693783562781664643923723468702264718374051624628435388579690245759694810545164736786484922562618925097059862375335995707933884818888050512424134752443737811033237569889379241660151579226440672697598132877759705228053232521475197123324009956853575119389250881321145835600810003411657575869112344591854988455016350611279988819093794856203711075429977618524516794987138774430169928795507607144080922617607944356368069958018938104081672760127058647579409796388626653086375994741079985230984233880769507934665973074628144857730735525957018050645667175879632791457157342066157410254742132304456142724492704018126555603364813409772794286047700491838786836261691784752921163639215871834661203503671067033943552310108470663249148491590023593769052896588650480506532426015390960038713010594343045192196506480816559323139955860351803955840911629589689387423897526011668933409981500917122652814927626311466166437503264737915067906800674405857830236836412793716580650525821179502819852502141560801667105886565227885210590593283140825622933401859569136431913129372237410138521189101901488164448660372398454292428235021871485818021677294144116108752824008646529759685705219023053615380176758862125612004852352704455103869244645542516963936584030827012825586420210380429346767492173009450689752923659211065579272334423318376772603989063136784871621416352340367504062331456223037809379329824011600563395044122869230852809905835622675122951027120803459570064581365944120294701252172484019607284257630046974965102420034398154086605470119196772637576034013974272000288570384643778565782098599352780597129922116656415806673027673011966023506546945309535006051995449532639910824295331048867614969490139450647178420600805211833474638515739433030490463637996713554134170904501766972080209651104373725581628066795196286472619343602135282990588389315366892150113987639746381866542007632898206536227848780323857403116813812027860618254759213206577257570638898067085622881354762395986594797343129086864002583830528393609033501394397468405893707973407862094272735905203600368132390470624896310763058955446544550365123057598622622216578835599267104187253144439451607967550125098383097017264985172193121927335780062504431918470438496071456745784833571922792127922759977397463258596042410878667871536296899211645261333637049846109923331306402678336812955238391547764220948292818204988911264739434429128136386307616013495829065125274405646938258424792748817457500238423340804236418858300842602263924281676381606204956352175903230579768199564747043492496031155071740939297727036489328637494870791660535679202548006278890022247759227011203373068348913079750534566794206842559669525454079929549783654592819596561126447176315411325747722526807452086200807516023632274832696784175707087712577557794620648131750171211045681749216663031946452698690087315001414876205406476691801774884790238495117597853539020597458698213651067746539510855114118069875695381671982895647682598982018350995325474221788861005968670740650111242271887756316721204100179655978867645525859131360342502932642015075777574952940380049217536820612768015671594318201515814520548951586579723731077721870126933720056285244643115350481440692062645008064630840746699238639517843922750038888930828855757006370171086723009337925400145877341248248974756655066828671276071121156887873263737395373754095539102978420458248580548751163221563060152699740566764329885610208190022138118702603873922899622368256666196394960151077162315220312285874656542537686942027023371315429766142544731213362729524121589544158687298065848192631272243229522602439683941390363474104206565422557679244265484293409479937544873573036146184436721147778029172714385714458426150517316653603901428678093459102777632314118378971601425700153142330683492585527445015563881262690817166332103848562429980784820710370721871676753291785877532567995565249989207043701827492871676526441059481063339420766337007436035113800617816941775650032226853913887348659451462563651609152879490365833924790960555469967478551471750065871313256276250898587971327323775046870580708751517815032488270684239771470890521492236061547959334598067539746348328256512715782751195806788957026469083021970373401540972273772711047949932406404486683628091269847413363834607166370408149150860574401447587216783767256794404662688881321217527234479366029274634169538566550603562233664204884433972251034540284603326545145986971491037174677325152020600542083903372230518817087268148266555251429542599016852227748251959005167944036390288841424592007919490898198003718152337908368328324243434117582032066927094584027753204368606823785108751028812028991872196355359959915217839353043810710444626864450170688729114285244955697751127207961953360317268022539712806627260972627000479444732863062930644257644337715966059478377255730898353850761017606032483031845227323907650614883923278472973539839013583948621244288332241205122741529367940193526376448419944092917045816157453239323055465510134931153729520098278768206732923700863369761016902781303390762641487424800177592898130764582568745146472008054061195615226182208148780299716944289440481527660798931021313559175219430266387341032486181899726260342182627514150915903854969810369078256077052698712193483805670240364028759623925594588740472964621793212771063452487269056378214391429208335162265488887174842012082616215476799437722961924881395662776320767883978514323049651075630837788501441556123945917241705514909700985719831217642201306736465498240556054691033377183294653227053491588259429528193001483782672807598028698460771197469623711930744117631527802215096352350546702859385482615313089472726259827432358641439812709885647641333193448396335289949909500069030476074770586953320909771054311245189896501318094303048712856900990893752747721482010273643206694905382618100162974341796905988434985128916133722708903371021011348278674890335912959237680350863216859134941175446401001906804871490372778685323763570491090683320838406264069480848208528647687089701349367119044210646419989072648200226368107868336440745571870714462221072693141542596777227757991762210814077351945931503993386793243824093713849551296226818970441880401044729123801680797009413877626029686532133348573959046637379554306195427884992025201370851451204770281617437033833576790278133085080362064354473314971645625617787835017115927498796531700072495458887421971390934484156181368695526948356436386021632213754553913873258476165141013540823458250814265184357778375487640743375900661792813746622779494405894940217829148712916474731182237775120632579892286421108468251729044715902427244645211360335096009843973896033189213821161193018132159658700100378891786573000433081241769174716077452870735966265725125970354764037713815936824036832302723161911338510882405905928133112764351345213784194784189843494078000185634997369768020209856932462590527764820408267614421971863780421554915571081758040597131311268941218693811614138830828130283454760264480910415217659738246137587099637301900751472723308136885172745841297027778374037884457412646968605443642949590965138768470240364573092585928417082834706396491639579041734845869592288458442002244345668130381437598600009700975740332067928037897483293895772312236933373486270256417875791492925205323327993049087905812478744178894238292157841717929870158465933498994382754353033454926148481200238738742999937210089946615705241334075762976056781648394881414231486881380687944020045220198473154884743982438961068200460124558952860851748189819640180518890358215651194202725022418369436144602123750904742817927256022081006968535144858249547707302257348674372948093157515899912683938065302212601806335979075146888726876949967987889044429642750657386077829663201177523719524659679041394770667790262844480191100072450547113594048017394594234732370363719841153574582532255929013069507540912113860954424139569156229583616569353506620499288466894884306236589232117643652188303604944058634516154448105013540903585455226020857602266139320461471651541207451410276857128299271163732538329672064478027666423246206622457686737324473473076063136631380551007929009042210321630139581989187351433411541683305124202802298254079326233889979210365489868710024605951954940947975881053239786103959548458417236019627061562712586423803366353164856229118552938569993336995119947199488103649569699822585005747116634222419828571403447510948321930588722205401878326186969672214874092177987284217848810394301987016670191562084382731774222298234397946861057481787161404985068606939405117602722327565193461469106108942825279029813794708186323807520973540485697250622315800222867742004259138905916502105319710829343631687860999210171972882863085607025008942702985502717257996006573486030427291300887784124499060195740223601628772842577755071420493971165550403713798022919430826091732362142021290691939741940667554885770985544332153066400567995160032645207966871207110145634338367924787279236965291761665280709257150989697524026135705446917949617311785195940090285500083036358653463461794786121551970703081045652944488670804788485441644640789898208572727097502485079415042644299861420906959519227186253634461264576486341781496440195504475528436382439942688771960414774942357807910629146568283470700733990872232998625660404801358575775326965273616019995042402583613454694132870541012360423954592762624362734430418490155373359758361783947265125533349903683471125052326844368600272601209476284270504498618149303603677724710626398625148502451668313118676587211429610940483088713994768372440682757165622086089171994747166942881201254745755033720567236657134326920021351078933161583288677062898881048446203729904888017965996547256563555927176289020657004656934727628639544380206301925140255538630324706382754785918189223548963263476546348478620558343199367366013143460129119046615085016385384146762783139288366063527901730430126540653927528248384608213337338984174696960906244755256352447013497217640296108085129074005729402350580562991028685021728176860048084002831708652057025909737841187599073545238957733607553553464887313954720172256246883157342893416544544434330722210083200992637016328210254448700228082644399144196696687465473227776277392823389850083481576438085465138446734790976212676183111348059053416274623703862930740459053817979685733002072343069990801535434624650269280077440734909558358706026407684421644575432797363846375550471495254189340801203883536536983388246880882561269271211466026463158566538377174414387047477076425874024684638587810012922846052702198963512677453082785118177492607204932461521411155299081303217150026927504377608573665542428497591092498942758056633416963108173206981438171401023678022781377103562410422941038233273199166424924807774779900845157819980103381173622155195596949960565083248368276352964503264728193188484071714297036011266106564089999279208860416633827214280406375483243991657604979529654000565255751082458922686517251009618117562125322521286367968267758013489046124004268163984067252007197370568220450249187533081931533713182313462116181842219472387246563764684450392586683759529378147670124379362558100523447682717916698536927615065517989137480938157777618806635622063484378516958707024732210760985342124316376273754667772243871689120229487730702569640134208357392327522367511811582597720541536911585950871666241232701522338386332465095467839661670926368390780467366529360219232568731877967249182271421140418869510280576042711829094788565823542115335879066635532337415198796909401687481555130576246280316606111919437347796815189143374524923711792530066519837275799604115969895884566798154440410754113051299423590197250694856611542836870728505770863315795956687829571258259363924949713699834192687662931339607536518484156135254169591812794530206166535050205667138478797047688777906097204433902116941501328400542883072005630862496228282644588014245626325560800097361495416852493994649295677698750866336349663623741995025984989741243480236855427884276812205843132620178163196343699941508310801517196898256666896989820370982947548863597746902907333966363901065030430363979507353642486328400726426423453271570210461905966957619846104771361107296513946078437665675434512113676317496881009552892733445805472501802638706424893187095684985489485720592783118189920353865680628561361581608767960475091913615937226355287246109113613044498561947331103074557111837386639247211554876324798456300239469800615487910291277289899109787755478958830009701248731669883291164144919454334359062543370993079536672520685187450095663659790755858962695309501181265858147808100069147170971287621268188462820974941283840664093931553158537628894145701446984134586970707950315209602761113031674175144440868623977928693566988206067659632465386781135563920587338922687855537110673698488962611025500698526047192150182228615387476005756114962561138588714046083413693500303238637398091088419129999847455735258991408663371043268138156887127002767512738277478448531730820662600807509073871360699025031889499720473601058893578394220333534014375613895368264148788241208083377118053844986207558882445450606676248814780476146919479743122708644542756933088421040863676758860229239324604245123130250591424358839356075639686186017577812387474509076853172029813357108648489283877764436605076494541504527300082729851202764848333637180087359762749316458720466257906283122264842945467467480958246267120221373931299204231837363095489844578547033744748828935055836903295367585389549278690627448922078088952196227962608782058937188530588781407840154536519976928426246958469301096506754894611792617057592930947703607278724198692434357418158468005254564308083614977717604722958815390395976939696924447085560697281596574192747063702206353909412922411115906701003224033865043483890801079179910920153246032557924755323891499673798105026074117232848747302148659835478071656062447690733412649597466806065841912867765467131293884649026523365959143096858813356307224861393066191307935424592545356992375402522999268144634151239369359943205776577410624952593957674273942894964787122445542982144270304667792896373072660301483785870047082883978649817889029207847283998796071036045837992913534235745295826043127361607361058208872700783678231421467000929306176879584131813985280002824512392533539242652649710766072340835977629368717991982188229073450010358487722751141311614890492528125345424379436326226913524327894812967326147712538830855794105344285760175862966797364200964340829482101098319332692199698973336541012721273011852681912625252982254366944247449609677062425799640138849584422641606049952918268125274893296578906715919364493078332906919588153013881048826027814149405213209170357326651858721749552281477634559188950093076117210776181550287208646633089451130760180678952397225829219065671807577033776448312022918628647945990046906278424482645578696515208052153312456760790730029263741043278109988496920859906897356180913877896671745104228000301926263357402701805442610430848935371060972740200992678891810940387468686087184114885622229604130453839643953691330727133623445766189340821501585478561948119275063722824768020181132914309930268345412731515862314179152085821304156595864889097208616231240199843587221402124771019515068113900451057419030635598306406739756668838788650990196647332933918489108134840216341846776309763857962235506240370762779966120342470404145774506651455908091763602172054565985679017262977898183731468910825513129674948349124242862455272217794298353366110861727995635715708424430476825812381026424837186704294982356630387867809059383799987809492298118100239751264698559719904870776954472231565401284805593129389806531893639829164334128609017206215557104079405155368166429828281059266620998145321231407671588434313584040921414753168192194875917148820727096711138685134702320422018762084908313284850514083881423637356334121114684297102822528609107092069357593406781070310124030218026007802991540579874070336270277497417434869149716060598697639022219879268108082138193599603787838172153870335322185812973966687965275453433521981414980460075043911151444452284052206319935125798743606619505391405471725195956658974593088377792199772531200760956880001983636945297894345338872876236946292690885293912987106097821006827980767870522738169676119192787588917878748884882866552538661096392482249312955726193318597184244023332119072333310870764332396925877582417473045242225539903430414385057374377070120452604355062793060402622774583007284709148839460955511937503967304282752536736046259733880382858438648129417694827252306293764659405759804909607936914292857274690769156441062839031780357959803811352096500179093817453792336267425055554467388911657259103981964815838017187616754877913500858472971349858237703805610551085236787872088129214978718316795080115898554872320251951584264795152990327015310810910845832796421369087163731562163075324997717828454172992575808829805280945865962556302051984627773895401459050962314056044911052517176694030517563369352800694767906273559618232706226324526310537221279202106706924494499636318613559078732533201319559572526753986263169148946881912672436690927757294150681375629665609459349372626722855439925519987269383601813557662122243600289203338722887736741826665801568686066604970356705105540697858296400206953304519915437334250212937277379744141250759743502870874743908283529806515741234084298493807833248687189574462648268862226528271943867142099729808614478647982131235861449963370522206946257271619309040155869682090279076278299174882510936346835712380686581929290642577906756281322301617995250720625466795869138478041215607245963515225837073298459696899420532571972845234994510806212161041778324415215042310347288230377612963440479203774734226643242343341773637258159355079018003255467451421874410855569589223519023051769378215257854774690137669813059590492581820602060769876290990489159135160411947005202545889689994889944042757733859836640017008345505675479330600949510852699939536620796339013209615148653930208754548858065228214950110715642078502265597377791673788476071256136513622745679998211003392057508359802268017445273381583094147322972310523755482171394776991388118757355397270605947531179642490354652787026458361702357097193793361395885364061197932611736203420939477833987160465376615322782523687279298711504642567976661822468780915248751492652047899563129566750535575440332185896853861677220247197741285007625456902957389338059696924945422080703798224411133296611661804267755965442369814692267963418685308791226594141685944363946998416047384813900648227286081947760877859426241377688544678937909069449143559756959713775668184250196427504369671360797003606672680336794892917449578086641093116413945238472334688745358038213221505258331089260636075510550845158200219540640302599212923386766167612165355145650173721173585035373879521953472322195333259915139366681562914417078847993076714246351499015922824424605491969353646005820105696991745845580452490648987428014218861362815369498425634420949542427367378651476536635270999783623149805185185722177755935863409182087049440174312624527479020061075114850650746435740306626094839327056697872324991406484211572816912429187398839334604228759474088265319757232370588533397662722414361895263852863432787647715864346341612261557667461043576971601799396144876681241071999044315225050563028280592883861910939527487496742639653970201196843012635032932678642919531054569232050884099656283752237940571954415475820872734103240051146638512999240942848571389912196532013214759336511633451789974580631074784877452047214397293580465406094203439990751215329098500897351854386658804661171335959916093671702807201359461331361879045882643914148627144445377526009646163354156810893287123747050280045778544959802497422379853875357609626846250089551238470794922534712615957175720378898190872573227267611942142827596540946581854362789360499181014940545978492334311649208613273343611513191191281780953489385912913649860398239234157970659326405185382816231542619658148375453231669438441274822668726340000871456676905101089264739972339614399926337527095093829142610218582923405014208701385389161325912779005305631854078908220357355635489634258286018556674449635148102976756518524081547298924210235088737145784179956196190125106170301334084160192950937017662899822252715192531289455120081679738349570130729934100137606018042546075619584529756864474643722892842076498298714785355562760846969831388250198818434329108963823459234637362866506392368688570468240297948108636387253957024779561945450737295501875074474554302731808149252777212708076001231512348114095720226281711182421688234944292842916233213600075951580891292122739578989342084695722262303040509779025519140596668913341416086125184519512487393759033632699309831344531256377961294180513064559064963814918899590362539659057336048282749506238543648978128340306125230453198643640750364562399361088699240595103475784406170306137783371976421802355142379448780089900122900149690470737357104394284131216582562064106469220934511192196354845652961810722346108476643808988515713895493166082786242840830081889568683766852040912732647477489299138050710745056293735741031795122598626668984133261024124937796216651489965025125295882129131374392227785009700566547719875809080321445896914561387642430818526661842517974615618466330693257659218285710076086377455351551249595403459022532068952398103126955948171472755465380638754984443605980391730195978967300339920817110077956045713671629314116749747523657720004450384782501032512456814256775116558996448945177548313498874471788105944449013683546034213502870132630895038323617312802477811563995166619942755684793912165138976461297956004387048854196150589459316652368616424869625585653408403027574791783531970852384434654079138854610470744742581334110693280358141103606001553647209114897087907603134429532698441192866958372849261279818419495841083311297627152833931959982085969961894667306842527714973438009120726722356409956644758993049809171602671663422886343266402755196147286205239814488909496504222201030305240856511497219872282849749429577575325772290266963020822424453056337160291905208607335571807081572496438458974578366715128896761453796175655013400585573608939503128581032419372314515508603150843772963361288777876813909748420722249751997810579562712607751782830008671979779190381358182403687990800446395555260735967014094519753076768251014155593565212813078125737151886207174467970204506586934824794031986395592447492124304030306196502635103862171270823712151979450302786852154288949170940608424151748606014240269527522659098181693348302605630706801842164871351231789779479846279147979181282389186196570523132343051805723407258926939811672258567651842250338737393002374023246744252337275689928042497003111999362089694305998773885928463103793853820358078720250948129632397341864769392246227199912518745185966623429981929406044736689057024064176376929530432251912832588345202632198813162602786625997437349207848298561923955359883942673229516540528431313624022201816158181862571091907727263065320736387042237862641323655016562013598988166503781043390953621299710124004103105899040490470121838582427219837925796717812250519929371260029572873783592910872268838664975624738990965958484999015736262816167660752244361971928255010034204534329391036907316956264961179398037847833377061166678414904376009866361151877865647315178110497012848334024019198161912160769708232488234786272221651287774639524582442855518224550282027704087605433449125446326378911868518240329334099980574012798507463881510513407026808655874198299174132514629349524195764836995149299396752519170614494224067624154091288898472394422943384159351597139755311595333437949232053017717109185664181236035044103904462859249679385477330247182374869649425565422471138251924713613663843110670494738171662217790403191327830429534294506785036560302125417263081471003829943161661528058842690869712882392621755908614679463916712891337703884055289938034545808695911912723928081942991364578978783587746976997403078289634280096285995701483640563719820642618963971928009418641173697832467866774528130242567129547519726920707312021321516214181879439973690796097096745887786225395252818964561712829012994091368809191765216296185677626058715575882206999944697495638680045997038309492899167010825103538731111428635517939575201714236358007374142366708169097870666680998829861287128255466656374434676222909985259010727145702125494374786198711346674882210787678524022840890707261070449031207445169314235527010915959354558439581621579436527875426441371650102396496674862520023399268671930358335792408838956374146889986532070622585713750674523068338654116521651050208461536029137730390761282304471425247826296686126358646621184207030758306745617976144161198480251351202481414057232242287315222134122450755606902071908382249700408261684565342026487752720013178779063075111456095357744217164126126389039848272893827036737722411118782132862313376025080174787605497543356152407822544542049908792169527643449933879223879152182976583398527307001612156458491140984237159016605817870312291575881546249426808179654293487628371691284096413104356779947625487789416125690410542445069617934295369442282709431684350515340300363044790602071300495978073398790222513637094545863548786933918165851647606822908046267765348097342750042750498136229920432019829352700670190926649288889097743427371601512449142509284128575176387354722600659193859084672232619078801826096494272820614023367635646046045281557685644481804492631835416742537720129336789149590977445507951359697525757201814481128300191439368246633261695569164953426471700008364250392783521008930930928479562588627318206382585480337752467142944672210465823852661306348009786615343077222020551283154556004520808412848786892704952199106504517176626952444068056367823511642979778802843382465742561438118023484315661465127162819632621387047800540463986196998314347582224503455934674204497352066841307622041397903416430498557562446949544774934948963719415034290889828363053048607189057531970233272080993355374713154032534387100319791813898393291139073355598070120728670274194706793036481028567313633484620549371588841981708002838947031585372729720310594481684375309661582415985922565751029906880790350777572292787594895062543492109133053941513756553605810281012621925457486008166009493549384309613156891040341534651707490299189672723331699565796751247212245582409649814692029186934681323293944910801151433094260507537221713510519957323812447197339613151636751922302764290104033166063221963974033163497549417606911730692507210088975817864216615876497651040268789399185735565804885458897633669247472814557574535665871987337425247207388402903810858968533635863782423053489844514064696231590070351953729538899382423798175367677884849182638769269577887292322995170474054094670012673856527531100218604775233198027476032722021902658782408929523501227309783709592718046370498557893429540162385134628696861923754099761089659179834152511879964980490120184985164851533193404026704188220085813438890700517638928921214976227104808932162578096544186667952265124686854666923758312739520193113083821510072154988089901125791052350630398040513954276455646937671623796649890994568421215799551223405298182035171415264211480007467138112378978509870645092554063356767768801622568424496130308023266637570497170544361416963070540799155442079890871059526903158703458379097464344160347706957097896724030727608085060881524590697899287146445160559785925027147300818569394303516127104274485467231693844731273420480199064082066273266760116953943437647718977363755571978130359879052704369875568286398154029970175103592219876284373741544536133734015130324083028292780114647808702047523549437996039899618499222074710568559617927232671207308873011747515749789771404293959888072587715085303043420653884091104295724750214656357331109256009239286931089840281301004842297950831574655457606544010942876094293509431078667658027514726935555883653981766517670669639778020113626571841059426854295500912039937347722247318822751838278735566305809212539991958266924995032294689575310730230257252940372248364404631083810021750811202712525450200206876605822159045597643245955949885346757261428808284974044961308165085841047799178766255268156686217833509806655572570313126389913140932157784074697862460055975689560953374631968841160151834963233058916827686043960256889415158029321710253278918838964098734678086212681725334406255866565366927815059911971573592997683167208362710129082140584439912605618281112331919168672490934306310494123840217460556739522541466393589182498050129078341231158254211666884329506844845103276574948572723520196854401398267837299927608672762350762858881187393556409163353391689520703089662944406018322781159763239835354400455866980463489676587257933538384370307952753143539394016393706696938868810497241451069400859455558584892813272437940575512875845020332523739505016888161956012248070297607438879656092413876526035613242431745962779663043602662931001978794021070242526872892905647613067839782529652975914738497818966119704983234636752242326209548653523764100685120072661896968601361949873831588342329139366638275905236748585021592766308105998147443572124561086749801428643620665084760924706608887285566742736730711927808314900734660302683313970855590448302933370735457060842548617865494638557109485462881606482244710655313164276998342087609725057697450748928365972420087471949903789865779078465340493221153912916762450185279887846698642436345662319091236558919439017661964151036133407720126350197923799705490498817556143555609263508622281782167460312298429682851602030703111130763360273985103457593923813282133479904622247281285909479348319366155310365501856367236785330490619555410942288414342565661432446857967156209421786100105488456424436349440141956071520483412853400050573762736678115838181762381134281275280720717585609113589805378218331469976404312093373086671166034748162014871479611265822919734740222843932732210808326643471195966992532011123227226932605188109702026549905636562085701545709208787411638785310592486497930368202879740225751239199624284008772407510216252028659683004750169467764240907224157555523796628251494771802839408471874561489712884262607087005707783572386346627322934849311460338459883540234484951901383768760018160019809231474715740385085637106874570787608874169662665708900146817525426701345220069862912086201981469749809595436156527929988148684760868371819879648962320942094956035361810735972980637932089281116061947653993413111783281038745674820672967569511744690557329721078832879670175429074274119406820155889167168543990854555873236465306710280360986897491908401685990298236680408933056634639933357489000384094762412758466538710749655351751984715859080882891945469846143594743299037559798527890565975403454659331731372087963575435876079427386473132276247662664147454108377668861774007340442561376160282732391705042559122191615173892300666787477364299157360901626912551836550638913465812074713016523153827974177412447874777160362876552646567012688529617251844685408948669428730397880477648356954797177369789937345160401197644392746108729651239052774308961406455291970049329393025535429957417911875746307473119166610297175931733089365876611279235114737171057626110669184792705249144265515853137830645432157112219486034857176217517568596008874859567274958902602963961504249768682855706155782509675654441280807763565852441412444858734520744766685982134355325008921430379807846419281900458500502272680193684742600356664332290370479834188079747444861538753507719581671380024599106228061762732307877603061946276198459537824199211730323554597426236561725814160084914707316160872290108775203714157689611986150855137787944994444876481406852253922018433952120925871625589217844752893117764843148589017816327503407809074002744111206030251613381314599941126183500313876987183379236018206713496307328111668838389671610769710653791543805937842990699747230307836409099096404569985273106354686149538822352867504583236566774415987860611109862934173701079970302323183549791973427737343538909003087601809794217091070782449934987690204127063378923889595464473432185695701191125298003447340731240659563389971479245594829171385290736421107610586982065843307576744739954546935714968725138551910218447901553372534340481132553432350854625823905781443851214265478416285785900624422308242750366622200305785819085967263283778098325364779544177594895366050633904245925572525635703267435260211063732325452441564618816462158046214583041127067049174117832168524440585871896110663178184719680706509611908964204246170568093722509662210447204578890009102382886465405004531254451037026867321375827910194689819944810194094508261830358276077687555190704463220568514152821975840605901801952421410630871206094224129865143225753731090465165973649354384228683398067942348965756051117872555082755106810375433754714140058772646451662699382732414662589501416736226482514034789977032821470953518774670938896265944891458573755925675549235154152277441712030382208625135058703037558433817484535398429908998558635635833022979794754715025171241092241207903400131003169156099684867674420270983233527361246048745868534347827671295243003676810964578877662970249628221426798846799066218235758898162793661034565554058725102660313060120917351380381196009872561673310153620138187865172767409812903076021706612046818663589495044088843249173638864472305820829014275345370547110572615020824766136456324979062710280122962126914611993984964491379384610542013982787814667475438609969287297867417991338506182939976166045166619319653877185983074538910356915447595407726517648687898858900979235255845057491186641466418916302514595504213724963765380409254871230972658278979461919788216066295210121416704051202873446852919078727557591652375230793565423922192976660464247332439285715234057905590958465281539224948972429098475093466098436621945823193952409159019164263817164600083793848209340016374523712715730944567416438974900292163897172425807560699776887016489498503606621828399757430517692629694171110549875317459670118926317487809084953234803644912829945739471014034911415735703656676197083219627100290569436599802647533762195219261051685052269471094678839609077465240337476118142699797925914525178488030958100650863343810936006217551656359067498175835150652103148324239795805100390714079487534328607881519056649442105712031218829384722057640197269689045863475068621718079705192814458248904385373082970212315950403901408411578317664615484136932292134106114158281713578232579063446091641564405089077172654102994369972876017178942954182774352173068759235015625639971718892207426367373875563373590875912191485291037385409470806511352540202235641104515897758523701429885448381552338070286437549927890595018174145671401111092968016625509882079717590621183456632003997564485085201966004266536954964989608496208441340321642755558377618429731490515403122752837373649199087069251291262816381106717194080571751323853443886763906591487526797893144806856747811224796490675870895724904957937613954684542867515754914245091418855427934152866222045421266759601248087674510231239107555518853183993611734074325751538200609599752167914999446009554255965073186444896989877971782779512886994206663406656292795756046944465827818297026108149929770935084090723406165942475805517136154340327026439138494247606266636933069613720769073271611088452576613898957741619519458116311868054804758296220921687809857550394078133643302648602890905861140792311207471025751569487801783763979742886577984042653439718662017957386604222665972101755745111040308999753410365768338284979722237431219479011103014948421190735642183483882173748933846961961075731784375269298479456677559224872491203820723137770786729174268809418759027138350704340315927034634268557340256422108362619626016686650256649385619342122211924245477033370877707488916139532153075846549335718831609878315637813881546380405653885818721470382819371719960421240153603174780662263690740445440039835551477765642115260897484585062830817772530560071897952578485455620152776572546596984693050708687660607994528822091109724425171600893038663597089231434772404276584809385883609686454118702370557186645145592298768437046715020101936815239769292775750077385584961214052099312527409559676444482546166413371276275165299444947344728596577653274195761714613459718593057874287105626672144975063090205712688154349182108427878344930822797104860424143660577129918345313134850468035558568790027456884433120902406868931512535450185234932822940751185506069530356531060027679465106590821908713436364687750395535937041589473724361963868501736774740415722114408217949056661688128592722837703838768024343288051684315816895264294225200426622715171399198863089996966476379549666579876315221150011467508645300703838569392604204391813094041405644195159996269991500092487522683472224322809098007880579143234232262196472008026662912666354469783916582559748433109457190636437391276462664514958421871971859309624455205773157663013750987932233868570243467792459418201341613647687186243445554043482754379400088411601419975391368613718501685448845403056798382588733374290197064929836074137940076376459638154394686529432070565186356901829625993415081629901123546178940177190513343389417048048907105467892679009436305184443886644389957030003484673357729734176642490384370897235690924215965729557050110490328401253048125526621289077852076221633090775204054320372121173539905123021736004710936572951103556139254894328441137349731787600488917505159071731799740931285880265129394217240264434294664957408272870364522226653071995526078410289702820102745930564214711001738169883355463984758263196869677564643757147767201898868447917449888246475079888292199239443442612107045834131194981570468587740347129932695673977683458339334112415661283665948021165741226965316424523623324770230641203691690702608654262709211121639345195769385724167998088709858802417253565962220896967285197059216306295238016067112159687134818498088919445343681319230801593043826592939247740241680665350411413975559897367531083058656295487453813120335293283711078630084254898691487978753392603585589588586370461486407602012783224458959114516005451572721877848952541453030155151100418551870969111159041735678538575388311502087685197531399685399348433538275472081672868401040856932283057708813478097861727580042412796574950099901115510645921013694666892457059412273704418611213350973331673185297728730949956888325142445226404937590728979517589372899580481811021406234864951348370294433069407583727889010487908899624562487721917688025872283441043178213034233070240148796392548641104315647827919582048513167450478752266644415704856706407229568089833311411880288184515313377115036841152994008693891762357728861239649782277773791150592806690525187229912149802567278411453004372577183289260939181170159131139382094815774641167800698042475055415888827487984791810356801011505418987085883956505097482862142269525781400179912984209991456791958308706379154350407257154871885877343408839528576059546195933471709322973847781519458263787148476711686987234941427691052677135840073812529435956025542794468229269555831671035541828025691228137893616421158922864964986978077656222539021956927931830795489067745788915611806274423913550930915128489360194688770345145512548890022766884863014067313642108115478019959861041099847547231360118895443243954512992270732546960991132608906780290697772339784761519210897275303314803859506806390115977308173328312474934106041533439561503115453832451041498331134112174576828185935256794686778926754656108985684087533186083337221753893467203883735135140226706315663806523254007590427844127572068381239337759097258758977091522706783006427784272719996094676503652008872471974282794835198244149737740523578004513672335431036473935288835398961912370339808569611171372345563712312946089897094325432070347524873980971891065924771288227020102875006811074536328862471197620414586235603951212882241091287253115052264085803204231670280566494240474445690935448959608938821658501165965537516221244317670281720753932731563940685752889263459671319842002553492991716653904336655756065664918945644238668618516999349086478579200992860677799569436192493463101441073564591858536386529177978540446323630911020551904620924627781582777904312172259160161920973873408672431292215202649287898108807479386723317068262095226848980627491634370976999272540988299426492111296632478278084168394922948311007388920236712367509353237465578205910565802838410348493962693124930255233379389016356692183829118758038175196995442413585487294654482798168235853517495566396026107607650976576768322820710290573359718630520733580120560999263449226195094347940506009608014365165883921497999060235418009923298302684239221354289692760493263356942585987052261104798364543156017685950429559329060454708444460409859718573884472006326771995048808414134832167544449991064460486998601649645690400788790154200188910507592042212141073264571509943900166887384317787482383709810283615348638008728766566043931285534241683292516792233787233733351659003407922200550135606600345538288115464979851847702676025726311328667285541499715992421187367714281125067280456706492935585718132708581105865091483770752541572859924278421555056336148280438634270166108094743288994131437589251803300446164138608474272497184570309679499387279202197698258931246724206516375634153710579512909997604866381663527420653732831996421006076082633122986862696905921245976293941578708753823406281179629377087661211689815841172561767087168662898112022835030790287144731796980427369120650012411586060229117878155852336182244678466419768648504910898555495365855109472617211287788356997202588329949514908822940761678630771217564988551596620105609860502415296759648936179336802003753016056105504988605722306334383055562386551995266231266095471667184723948586408255995023911626133535080715374917571128292005230850900541285186385014555904020381135569574064498166831657704815571579144857481249988982088648666733870202160984646262091863154473922483285209179620796903793290823256970545465484474164750520886918882775919483460955265165468501427831867614601351714433243757434407124339767927185122449483677831471287907652177649685914961526816404047495582850928476142661560202204807749738875428479330692923550523206048888687992868561381056187911372258717825778538906570713850021054202473556927149262746213015753588695631221925496991210320829299071196414385582297044926615815874270765587232266071788292719573354782015495436962355551383177171284150292164615259293826555048175567892269811634309292594934246935352788202275069861408851614495255406879631431349524087917846733097044142094556289026232991296511964205851969938620520400606627170958933446015069028471665560765692759733241601513051434316270152903944609681566970402626800125623543245474260253170072723043541037293823826382472529929373887296951897860675306046344860415385116517817723553150099767739702007080079468461806427051879883764401792444055892575842103019794216830472938939661417732475606993871254156638697639451313885665514877149839754135868277958614013418414713275537961635087907516219756668987221454756763103968560504159738230078422251893823986086987483730309984618300585371327237168904238185639271683125523452960060381237879896563448984903141829177876523104655505130306885016156951392378136831833566569035655247043780924819407549490479282108624660427174350156992742217092875166288135424000545445844241036337122201360454695952643675471887201236362521637747521481473985797713222185415459836270677026237907235258786409687817713778459494963077257801944084912029388499218052940465085466440363533704177405864595871010448364245098940566446710227667688384561649361065944379982541013675568186978197774969596405087101892076807399012954141175978890229040574301323133438418175911167459405263272703173957112470849746337780792747685900293135988210015116988761303385219229992311106477158308611279133297913425554514046143694613079529305905587943091704196497575770272044715921772692290875394530092412289949474291670353922998161469991427585375742518626090287079936789568078808632337236703649722259006121563027363307666579098567316306969479682075563816204295273314230095294927379866223583170081234860767771563914709924090525853157065302096743315891578259714218343762426157565790612086991169227299834938405049018196688449483290856205050561832139381301199130978535637041577094833332848256591332957073331421035803295613591288765200241178983693317068208273382137369480226354164202060306312919093532536400673296535017252228974734157594999463663605480063405170934689461907820356878819845322333576306290619306246019726853764158492556828078654015293272298395333813931008014393388607339999944741969921239354303197967015334241110828622741009241034319966681413809118598082624697599766529481508161031968140914104544518120525300760650444343244808176575372843604892215049005497989570099897763916254103049699528088386352191581275416062290958293294728602822658960138621171436503745900546297928277607471645233225595391453906021860381260578211511005302417885095978473753092691403068918218753256537070695132985544592627767026617000643841649937461079323233017885508690438366931437073823707952978393099054656427348029056653329541740249567900351100815926154259425282931406115565984952786318130627516340001618439145428491750168224025603874072430461054562939888427882302900025715234959777829243259169086145751268295133016784196869169789259177494481678340397861318315647860000997780934578899917843394480157956467137269564891014970798550822930772727522634220958258325558258780663907312271435818220698724808340335972317093529996716802560549711065102854448841485801474969571702194401731653783775153697243236892036256256111333465257428172228715435851231106468883775985520865346451378197194373508439249978924596162587773776116820962916736913648585181343869320385055951198411437302420487356907055289223926790896920738796168885288255627860171032403044958526458854969104844381423483797137722048856470272370400540891604402978799049936681120374976604637864670168316400435173375454924360146911312549570502634511418790807551497909061202742579669345356909690560229851886908733952509766732700456996334502780806713182711294174230418309068786559694935423757272680615461759082029123168295708808470615741356477537711884387799215481357582905706451385407094108402167542895537072423621907131749524756478466937331974522457225562419233520228572322263757014103390028397366701472792952031952633425334076136623894825937334962241710312422367058480102454067828058805637620036348083878339481798309097071767787193598916078205680894211221240535376580498373147037723325526307041660621770095410115116617391291268501859469644397613526058019608753145172684745178052102565009710118330286080082883812027279663711811645676372596410546091715438087600313044584831251047921784822061770054204596147965880366309825298097788207893653408627117779236157829493445192327636318218451637988884857557253816794834500464179454622420159011093803158123558076251366549673829520577167582194413506183377379720463410709341207011386807852895166765127971902025687459312820677649236956862770082931606377446835458280332084371772537157358652224183626460128782047974213805630663026973959656626484849231410383668386463343802035618252020006209131051886139674762958102400321122338630204530206075525716661962452917995713387214938837996753339094860566951723791229912770462565962979182612329526414510321883791980583379449437934235589525821112853460675701261666294455829513869729850297321364798430641123746925853497368035625671287860496959425381639805211299470174603923250511582214840534700767207353391303797721515645672750520709415596039770970120614756236493356213979088799913268295253429004821582478446702978563618082256591134867442757902093834652915044582116337717623061949916147720817692077106936836462494333236708120688049838133124733744803483561286657380560824851996699865475401300469575785066608955482950118759391501289693689441586061536643261217697074320155474624027118420732751031213029207447343698739201905165282182433375546485310220097075541377029317497888938574020156065269128953027469883071060244435619917325474246355636048654385876385471914079537981653841381425591033870257715573614831534551831903139812825889359881268392882086860804252568238166574789636467885534981830154305340838128611464399923786114515001919531648185412784384874007743638019349452920369440730023962505082625799400586258170600749952935297973797906924327674553049716161742046037895817381103150251564501363168164001306810163332830816952361050532166958493203714703190420454504156436054059857008327947423048199767126196576978802261817818795925104244538846385905676600070781107331543019408552105641467970010312150728410112252251835648846986640149537437738039898832521231553869331415293223859448005005243093557444218952893196768658920012595764794555142813349949639560245945102967542903459047115666315143943904057717319925163542212523245118010033609703791553481205288265127326704009461592939653711952900506447429508099311397786912292638337837576101829963158565566688083954402444119538174383632196191811350642347334995703118081800265925408413749911354981762876775834044838808140394179031364802298038336014645890801801275798520922344202930222144924582181976961962623126010395321556861599040114375946006997062543768761607417674733293942268857629489196858792693449162900469615271018996011065693909446889366253651399556499682401819286334600002185475589373420793922155716259646748339695336815567730340361484624903195802853574285007184182601790637817599591044893243920649033898945132825425965514865507609583421277818767364084988512880300688180439690878992975749396400945236510941699444249443398313695548192115293576670423941005522276483509729589963607733737895010866555521636972130946385227036480960425566949432600017462813700575198383131849627375323151843559223666964100488699369052393592388359068336885494740293910805757164215816576531664233979312449789281240743047508254642640739528813102357007226660013354709234665697135678052837770081502375504168855328444546764093308658689217246327874132033290847755336208115162650363070318851688032592650230565643070189379792736192368022310285249209761095577762294516872519290589946321504070715073244432051497677426069429381753096566905742318991347279090399319811838226980635917821391023179587812680301664529149247131646404551266480111422254657829710515543901428184150672707345538830197063717786225463030268811670045018759880562494518567481639119373791959179022042767565833988200178942651207120776868561734539996492231937595617453180477723455013252512944904826175352609024669920711185343720308970024320287283078982533102463179994956964879128145658978147107346552145062124038050685601806155146957467867184593725024925842299031523335324563324804776073626871798343487978694557011985910326935858742370829198578597659931071668376652602159387358974645156285115892696390709010219638942164879742489404057991698755637504740598116134098112010696680844533250348089604479738689816589291026252222601674462388803534447442573649590741508605396660629708401413755860876601270403532954154181160558261031758194705795240470411386078497320049673259043950214759708054737287739510855604929676442123781783558700750966236232171301974828254116189382968342544014485408409162490200510608675871310677679351555090396238256755296984343059678008749220598868015425297310647219722370800155208323012795621395961677569383171751662928327940398384247181504440116250456830797766420402127932327754443114724956186105630956471457535176411876164336114992030796825171202403832444995067665288946116735019671604092172836020665540756206982538668647127584927425876186187863723076049213668485168820343621578239966164918080130006938955003297544877250496264838935015323863806351247880784523740993404069267549263863361905062112873396351511396742097950041076483780332710834337091980920879437187120447400404044830013440635419999064046386125805348664599258161635094181224766255122464215398933570715861446883110777872632149599887192468021452197731126318493140471874851693703564514150480286137546237044127250963215813737213343713912914593650622463719558696048334330490399167451921103909995578796777890141147935596441344762798489814654054228068935221223289362766667908942093060667638204457618707900994330002329775927338703270146428044326715424443796242184898861156158754080341959348820559565453057380611971246429841515590192808657598780794887486166765821937657679965476431835890697613708958562337944929940005873553477456956661217078798581195340770256088172737882220749258873348966537375898037437104532388677991459681728537445904934173374096640777905975519523557768908946169760909712516529382804608774275590557482285164855187425595945679378701718320193743675610641068861529758281404599372106710586958345655326915129880831073229757378136784566340828891835805755410662305075806583827105317501861815212980148608624142973398180617294918596383594053253374719403942127497788709491533437515810619095262904667040956885476236676004317080596337792357876459458464037213200376930932254445400038520232811479184153253209491411548690016916251289570540857197123399175059453412523120539568234683406605753079499245977478599960658069637215956694438141578283987865592106235530124855427252745546316808600469977839431985238998168200997716183626363877006149265675204846790301547246402842847018395355326374472902321691477787798249134916737997631934451123304480317101221400814180373453375239690391527854016758521693147070029188650574955310113421773000648554657705708551517753871191578079647550331209869400171682092861520278247851518923246404016633015065381360781565658110198096141424903857381750872192468295746120483152943421113498789111681377142540393126524849686225350038631208222039544932865782615297833715164742228767867535680653813271452041577429202108788655872697735680564793430812654828594080164295102536545196915982853762625195908047958525262549257537198385069872688254391441270616384349127013669915784426826348419743367214414434324529538139467040523682237221350562997954041104590239013977991722556373947021268093383957242116903976860930429311025681082419371952563326472990891499182784959224040437835389407350854358940122430917467550106454637428476286756888966835843173800002447719830213605816377526202753330130333247855971800960959146146962035469625431837354221137088481768897349743328199885297010902112466364385767829618197247732349326669521291677738079615194795237621947344797254137232461645394527111281933146746030200374532328866875851089127883706504296407941210252548021032146364708670863821741002640473700802586218855686126549462462010047491594190111026651371454712187738179521280560304138159799170382486257175677585126984393274751340436647477457433262737877616917110287528083857676065314035169708937183505405703900089754089841629172882340465435513231553208561312878540000141665805697716063019048421842449667443443121656563721039041943018497192635358388043530843092363770274826699481237298786302944356954589034041237690811903630424322048492305847981384707229248920788807031423139915889554599111280938832414692871249511926468124756205614695526680217223851473935193493953455721087119157640849510192055205714190377226235110681989819350132067314276822249661929138102540752195548586627817729919863659058397720694185251597816785821218034028261987325913998419162011490600391483315753547442920378110838830894633919870258655166495920486434069946891698312088866586521726402382363058688718823261587386451505843955293386260804783418912553163266445098237282532509407504237082782956978989894287112795680995441637168343595873160327560713877226823460634915595677040533756427685247928791138110244884945144961527254697419089914421587046031528437418968346009462400522715572125084543114848636801297947813520071972097442459398511634560387974718849828327132312262110714742672420080794244971766355418849800110095975387572147834549368416530699054670662285070528696227880849738219981234304146619901232965164846125861695442158267687499025775694168858392393499111697839756588519753676995681974774980060904381732466121726568812495425996525082141061766659933672645341626986425413601610992536426828715071172609488157736127725100861913660199348564271260320740216131350290803735018570332610888026199067827945461635351333903840308146613344313377869681822300223475595806155592608570989898548819080239388284931085528186689752001013136864728403054496949531169491213075658753480258213790665486049006301020592149902201047172337087565384740074387181691810886469830080815704550089018583781839700811971949018946234690631358662527604193628741135002323418977965625799750348710784286439970116446456789866248816354626704227929476978037995539285587589754824846116616779217806567230783605606166608524117515084013679002214432931351686851711380853502108494961799007179591980429928657599534413444991227511288312594513476812574103630167302143434254380125962106504540172959596248411108317370107929024526525902547082597439285374969637300905285418291887702431808026528993163896875071175853845886223612833071809872923297366193919825926596267216023272797722494621757620114580443822723948576136224170594030114280711321275654579235495466260105943218624953913685545201904958253484011909527186411424541389576021983845539596419476108844027973531079667097716958929108487294703004845987899447909246057221443832378397413779364223684914259180674146340981384234774766314083879577100087570047022219834682692472828699809714633609855340961506677650666776735545839319690718103349493159017630620304445692337462223147228978731746325371788541908703057297654903882220013946088838414419546351251548278780356343969573088174329918119033115805978645430617428970908064404004473368886387155138119524293193618987523518014235359650032506928546016597573315477737294640406175328002267761994753298252310291546789726509256056665839993226670058852492156233547907453649752356531439512626025431609756754589397544044331662261484921239129799652112441022369706669065556403968847472607742249183852545481798445900970638312914723433963325056957349216977353778773410897183942894341455916999516398594082185046720504172894341037551834219566137626170182668852385330090401223420731881047791070620139048362030019187659315383877205546815432750145840133512709173184088211663398829266512889636410875456581051561911457357307322942885105838109537920611204204872817367547481371019877756081215565399107901060752939034382386961973998853069363501214360193650239767645291896266188436789506718866209618078996748530138759669071505397663498530288981798843799497397256801385152494800525684440965753821035292763107601199191740305093754063482852827384223957103867699809670606129114207020330941754202694964724791467569277591032676933760500538273149859928840926443279142000085798683836440132016498593068814930698421819267967116843982361781938412458460016382618333439756891210983394501886195606603897504423636299216921624303053957098322952021483908051925468429554900777748538811843026996992650119208696712566176823328801917075425485187794741533018674396978197638401273981686346571856512672787676965075621113843102931256752684689642609589053995915744440198926671020316256373636592192486263811906697811358572449008636223922010759521891148620462234789458399392593604175595759831102983334829662039554695775308740109761081622290626381303463800690096487471927052160198741052957987201248682948798097699827771505666686559867871502821816642002486289480408459358477232400730053136313023675765336328015816969395189132159034815251014569802125666108536931300063006380260242346994110922799060858696149526336092698178709636679167461000941212647578769602541057995653335277527441749669194720835192360064566269092887472165341366309540850351527397682042619866963915191068843578025713679170083106561974492134635318340184739438186061403594668820646063270914970907352852104215226514154934554600450143665688869224119741115385346454120812774372151707063312440438608672263832486406254559202672458159018648992833541864817480641887001905137170772234534811246939914556226309162326831945075129498426434059694191463763028068688678276440579861742510666359192226546696574372653903469313230688454967930290464016706114372787772112755678393450017021377569818849525932252999585004717564751650811277788595082554828918726802562553088937046635164515523848268641888399103769701326826020357518780581001824056806712775423677904771669878202815382925380879115751395008966962465206421938741201663303884865196872621264588168737025545397312413445804319078834353698280044802965643947616111740635804170944771345143873836178676241338216324871630210160588111498898781354613613721710447566542250619677103672440492297819098034575430217546540764319823579817958444601639308591693732809481380097914598069670161672209976134793760306017348891596145490382770362290650625430267914583786709824431473440037260966507683754485545024722041695523527066593465782083035409948206598008384148076681908941090031520161486031541212356463558636339497877292086351734417906226004054051383657312602258664559769104506495013694955359206063829718775230067743180022492622271571878384450471236770859912654621906222780311303333624184092802499786012794221150928520861037281004085165522388017400925271422388502725167676491406524640446887025158646981895411518657013164704783315330919836741693523881217099996857468675300147103023340584495793112672384658062490361043702013260574673727071300845391066096234011190077573989863680138312599121676231993232504188415579347852166998808879514328002812504783801656811031584697002263112121788458298281353138822695711043353985874597356268977473915560473655543806285315674663612451966804884937830738869589299666488095497566475908665415840749191076487450196920042374338507318933142492015865201098495482050777513850477875901531219531816618431119216420141072591772863236673387725385870401760448428800170132446857417524628095666644399913211478793495269322063113778188836923763140257648256201727755646382397559379608194452870958195298009519962405760323412608259671092451179572467661757220822386349054331461307450895985969707418185518812322283817851745562476152951045633368239829532065352664763199806944520317315988570375838604619415503476411376822494079466440916413554284817515578441180018528084838009962562790917836477016409070717345331009442716621688251002440167988717968655066081741443271669849275228891955094181179147896145576622445664186940983052720665969820313593101607487445789229796228464608918570630634206857079561001601194831370005331506506520700315293849819358248686027102034546930689726030323620257829730964112121430821611350750112469242188300369559700241506924223153803159388487965623936866287556475102260072915178200823261577579426061860498402731334635285082696967383520656188865648233862900625353146632851874807748618427583843669846052260220832914832932731030707340078236638572183169631284681831582390611710555682882670503777581644255359753017219156907024914900565190809313773415144232370347700122201176475128844677011698341771223535554757329602287355679793678051930199712689934916743391805297521696869250906011709448203460426456268870941830405201915774121002804953095115257533984278102108749925604496747001753180721549261187409945049816835593078610050419589792088703131057711920478975496539506872809898300371728180948873927179384187083974734167403024496864558703970064907597735946509653150062889057474075568626779167532488012157066772009491537792383937320548464402449513463131816882384075776888464563630968093017549982936836888281961619141612854326037398250758931149012563480421402108963915100734159585839601266801090127630380946065573656238585011864323401425415829859708083728049589302113835950146568148308476764871802210582211117734663041233254833410221485825886677115500587458452798653859711720232464158573583529812735615232116053593901052953435750519826180895296227786307341918433408557876703198627661893670966519236163104862065990126375479013885584003647852933784205054570651046391948037075841731534804186469930715519986300989716388622246231175324449110054131901393195102395538470139232789331210400485904056951710738496096992007884593440071243264873756758554427481208401555652007006276650183128247504835170814166618815746089552381621807682375466932871477922071383552591302677922039600795470400526479631620064597073196466037444592103600213836063127498262717993343610552257022853408839912242299702038153956146866563484325787707538350076750233601989647346745160160424357032361513804261539387500102046426053446078320871426499975788642537114232881116369135966164523797497098053337932567786585159101308821996385499459727343139496794164990633301047633995713611066931555110546829593474900078614393987657680473048501008638718093546199917371486279611681834951036457261563497888070422286514336429338593298131018802974559777009574852484008858798660076175019314956517609499986246773271883519525844595199698835540400868957346928652996242126934514640119687388732859531650029367083215622398246679009697908516469248815922613662880397391898073139758445966378852349801662288890032074889188681900563943004707283282862988902657826629474393625252099693126628831599963605493564757667941686112140833798042623014322197576389278834515075355356332351057749172904783799173244616764749612133323405122894298076456407032601399352999440949659800871212502194915501101711259854585177601475104551278633641783476471584878598964433757848907252137001873527058421909789583954236100854056353079634772517492882209926203270794544320062586780433868325061879629285071341698108717815437038446405538443367235381133722419929982045653773204710867737699066243887248987574641470932686612272633363483226365596812602430969678660190956485080255348978968976679206577704967336438815535350087988247068674371162873739668308755182000901053152783158053080393031141192614632790763014753425768871171340114275497394825075176753032915273159278132868763416781098120101610188316109568427537665132524138703136767872926548004246568845028333415305654251198549804402641864530526955859507794209607129294254788575025700856821891961192049667606190971643991378530648802783379420476167037005598933489582175436138077483266276642203251860100085508205164784973760169915929666929899858372016817035228195792993287807723581773260441330086670485884815183286304444328161482878285951227914368860739575023949204143651687643639131916217802193641424847606888919202291428144587338226503222472841492437784937469472204983628455010577247124038005358672510101581452188471360029286036363942573210765010306719131117064905111373886213984602642181060931072036819474924856503459637457731486959200118837028883137561830028569430350258488254694622350166146227137180067278116003437118286237420473477899406350040854414682795833415465290833400666033613544777909550183880933912936510481105910324113307471257573219546469340200745775448188006074879682210625322332107437615063509978312619347103584159985031826004285696265213419087531558427788029431584194052012637886376234690683109547293228062310659337483872285342913790199066349693786767449546255990891473262458338818289759035403811693129739893683156919351260959288880109471374773902519404306098674793452637605220563343108412404260629054328677094227284792654867589672861466290213710370814349987929285570780415947763213920170448487325911616297388481372985164556206999156513107423820696661783398103813722729416397192031215904441437851491811345638858562310475845983367917962880499198191394814386413500106421732172121291848936316721810281392472816979001758800685942251969177424436690931165133328601985805745607473587592920603142820016170832723402609468699820501017620393979555908136234386764561788782908750171648000505903042946592616165605297501947858560854981179165895600897793693802367084253826458870148775805113096297073009220564135020212833511345579890409870759996117176049618412641819251062085919098745363624900432242569937629072894979605591835931269775688733690565872479083761557319334176438543633703138055389475691652560426500830092507291431232956316767265028808923653823665183520959072742946764209729382800567988687563710450865176609857651211623195050387800702667507968695151197374593096210029865924247856418801860883565213548977161808055144375106665197122195444408339351130850030847191221798896218536851886699608787031505045383248819106380413420729525991674646249021784957773906711997951978256245383635729241446414895372101816902796166787030735659305385918845324676564178009263945257203863911447113210664902834348203643803961799994392452470435632661326722075731991130147179309166636155734530952469101816484698878362031456052705283898070272420795302826222124854836389617841369824830924793870751416979205694643115091388687447221126135193390713989423903175578542304323016946024111023019446072496847448301106957188880902217374045137774524888514930604196566349414861105709014513533322863359904370363418670820335267362510533361640770567736833399783570604459407922889932458031619284172226075515403985320586377094666620290129306455863291633728170528687765886886769049402493851722314399860651288599500839906504726535020715931108842709154497667593589674823886978395798862849593723768143893782719633663465136420392187542368445047248802047020565146429138606063312841830238267533342845439601498671662804948457707924306704845662663498556377287449426244710432352812928421831513542001283642783733568946427720407870238935166110756491006716143018238955451683764274745787367048804492871511446807042630882662583839213023208855701129952659586399357033147112562549716556632185823179311213812203183827957121580898302243400092364519227572944961007203182840259971997671773469968812769003534794881805232346455325121523449316314677870881791128783002787589059593129742777311979592816607615980256012221314665997559857163302380120036133601317395627646768974547556932124159697790687080200238708293140772405347557601978630031373863813089138180319528526771495049100868894864872333815824312577620659761453093246651743392121979488673483789374246063196961639430318684370341047252270124914760599044809362974972488854357446821726449882043202343515868091159301274166627313043184931830086800570240139503222179721796784377756067549717440983114732159589834749877523672795673296992252437851106897039553027167679726974924763923616503874284134855396956956455142630082421580758073243775951849618145865512429753704473523560406964990062922710221198887568423875825925391159695006850795503429878939501560845786134434478477147708079683530590051229301709763845552112442823896036037719654363434169503511318081288168306625742054359063942431177702783904176691560512355571232574325031644218014901689490790188416509282591714552575150468620546173972442119823595101646787258333205222131570104665141433007855870110407855128265194031955025920791158995979760718305984098413341478172837865655886599970240360515144205445460194507587267154715543350670695361639057064381352374100388608540023713988115101274077015936519147438467980443021590602338407430006041394181281819545412781344933483581389074706908410572125187218598524558862336815970068522529368620210960470204292479804112952156265409919090578838243449125330428495164907474633328089044729456450908154709869229394543516116455222835919162477699600827805026628325980212335370083976954008202707083697413516604792666790618113834596840115088457031698735107407218087611090200535721592840455542331113593446722936764615700260236412203012368862450570409234189879681178907514103262370676020748400734542413590048605082945467396076252470066462614865263738841344454467526857382859030364868742535641081494700476707018906930774463211622177077409168376944028573236741065702235556543945101396438337046997228994273251491138540985839763746017169774344478576920541110128408435545129399567757785142274134204950219578105293888817521415484004427251408108200587106427079779254397894998310888670235141944985650633930123844373431205867349415893566100455750141371020487285370097286282034018121601641642517523259698220584437564697916046741479680560390795544816391614672222254651589961537591704301451070059814050019398147031384022123561269153129391624500892404823398312523923098343346576381720960284651277117965321798719462372510398054375856954338213249214768881417932258878622321781501889135261209516691724537140931546310115641166231574139621848244463115277231374260453013719373946917711726226116165650244717515204465662858613363539284470258240934049399009887506757735822095233344840145591583863114611788194653746917347762015435879843618508780670247531211610480730818049609753879322739453406823453829564151108882354216752563259767551612245841215419775033997952306574548948816550207621432482187096997848838470012818693896273683294539479401948421854631483960435513436842375936072838788470468961602827499363883850978508009063903949639963324099279854948627179355582018048745994260201400491512930135034279098736628495615888122532226773858267231635032445536223986346528555555815265946903570330076514471663554323169467799364220916646427026237005850510583194520196302724494674505805917092713638935232397581202959632732926703998162191345815010796441021232415473942176711773835915656896229048803824458613364984781862487901008586938948238733609358130013044276550946968242675095799593858292414579014010867979917270949283508410443101863636875380363773160249742194613963915706620659476104344581479738014577979599147231116784098315628559641405757741642169017753889041067124000271357346793395381754572708179847671143827239053978940105072197920524667769970837100369501251854977186122911334604131460155562479065876659346888039775671010700653081030746617159102875410415741418105073573685244631046818441332580959084690972201675491477065850216619381284895800795239539067384695759183214701059339696519674817042340362738418357847438382879826809025661106061956001448779640297457712000924784659299211252629391754507474068029382539637201373898613036454577843448615704226155707310717607885942582829401067003587314477641859908351556692417266920399977088551885746543381483658146959928813720128640205585447733597951484588057953192173831394136638104333920043441061521008198006786877521438462294491389547656537579216914262307940300407112639910058235114021405123027792660683477582278578245843825019696064403561601917066220007489388229245561432254685815657467507600653597609168858257752617267985387371065816803230875769085438017184037990793231452372424410070066222619446108763239136891755599711682063961878194330579553602006446543185279633148394387660790191536812267903687574897054556302025433301346516308691793522111293758688642632986542092913655545164413620229314334910156996202891475392730945334526462302041829794490996567108656320645459280026182025636567729363370995812499293976670198068512226827025488783895005506667017983752932261960525570960247892223986340646266066071177889459952728803703386841638355242723265061768146910743774516087469098775182562685745260754006278510159449580018481405064054615307973260793552846969617830975919709863641284204504981399075753611605198409419782627712111834512780345451657526431649659526504201998396461515780400819931353086037199648582185161302533228099677193162962783240492642698893306637914774847696897827183310859947722333283589136271500947855264579252862738073646836005778480622604301745277960512078499677029000045383736925400629596794206663952617207166075872583949653672788882043652566449138692727267546659740760881363753511912059528792006753477401968299701216150023350403535342414636381149194428677313588779757514089667861025247685526741453440650576004623818911012412226300645885835264320523197837713957171052835253461264333794862031911890330131852164470060113670922232480540596724148008416921493438137996397899139144523159382540087733565467138088313659193929698894291272486272582217953113345248320844735999217920798586363534565017396323312687434195184299825469890438376903166607584607864168486634151390298278749983471151866917943771237710692111577993740623323211921745560605168764037992654604330882405223821294831065325764954741160720824002310397545402161035969800450924917883740854064929752271284470217265936955641168271454079510741218670110843571094069676735959992945172156242925033102469306902443918856542993811313601149575789106849058041607259243050265510750901188119349890934787331626429280467337859308814522923783868735904110566917571457843888652562317258478664365916996913044015712746695646455031472349728312465506622353317686732236503033408585310914366869773922864062577501784352771653992226032654194358538899625183378701392191821351159349050063187479631286783305618495111108625212178257979396524632302592471402461343151805448252637319258594859772553104363623537635230189528974902003543141816757825745234831419370295112921206056698198040682257477088176349774701520688028779384696126440417533993478106612516564035934146340067199600879506355767106927564002973303781050902342421215424625631639586596406252181147910248311886813702289125710864637485345646808742564767121589940090808315032836264017102712894131836306328437439666991839490093249038228202305417726823286459787101120763891528016808979235530394358080459410699088517371531338017298949000881500436424025667910028168560055589939915750296999190801813351934866205519448269862860564819862200874866380844955550150334949476268125517777729985341813915468336139628475291004421178258405331374358904606997855635724801558943204505262873554340688071214051265704679992300835209636698846099556435507692057162445588229321272341112671656527077317470040470583247038739610844019354536356992944800529403140694985651194344540894570960961197090662991221753669819819496385705090802232490080773145675976465524496980069671884592957049867544222529132164751336976820766377952796621138850779002039664755496150481941916860638952155918847009992543526754433855804168129370737721497088766746843743460673653645430929669295446002745936624719635096742649004634972748453996241745087675141603149777775620466232414767516602046528875339899843766888292546843639411880991153068293016269314423066062885378796317728966519107627637130678366634241646995604657315698979008225734234352234650100753049116691665936804071291628574974826553151292681085776302485138919015364635836481299445270204566323860111299359015871630998175646821227973549207620751039748834082015662423271957599365875038157777640848932677406656907804125080330141476850730811537316192055197242351197277507772613474802079782080212411300867436245236628384116692169232480775105457142986647618289762139127561749718909595467442802367249080583443588718508179546948637731827161740631790251761529669880857313056578506515532761653949982964878362994582082510938565204116407359409893009949591208692706608827378740825049236287238777900096407580563736889127570210242303247137298643852949209993357501444372419164450323942703218453660185660890859755450001393358635482707344027565285509111012472181127311860625441353123826296283989222690202416852986109553411554777573094114727167384659913345430853309346289553908266188288407472250395602497246472805029451153395980884410717347831037283371111833183797867573611061642954346411749022221308150879621361755956357183554094220205576835951994462799772751585811249681855255854941053107299271786740012141438952829805684169744237251056033131437683432361790957402561176464940629874510113075614718028274257614977683904184153807905963988085982869315988134201256842921419528954465373993320851517020872212700550153515864725017145088843486549220194902170351123240895218507767422767660902106670896628821646670900568650740414384635776453186746291314031098659126440416787707956072821706445891632271260388606868448793721870297834876383286839289873428196938282015427753966786045871472744318324993878472655173658041288568896758672237147953215513681065059289536827326772977002493924006888972327943167135363585291853292931993476673472534936427201719464181877920503507220876401801066493901023693630829373675277464278214573074590117913796171512985898204950433831659264852484874437317118993438208931126848353853211932267118297037022591662417970179680171447792147800577163775110177051194648904006270551914227452377596655632565694451941254772331084834720917257364930552524610692848662282180490285129927279446652906219398112399714369245434377335575775392636152769837874241322023638083978874300730413765575314780283255435019225696711674939339108707140444313876119267953259196072816957133505139807731560788772071129465634124503508089980022513187807733427428063693929286941451662891513777858540996169775542434708967669838215533165706246326067989923409038137470689607303135150334807643887267138531965359580235301394377047402979749467019589829898278322151789944579811917777124707519142921637296210498802363318247775939384617275393854177784334493430651707421806442558381191918845571269115515394774279449572848174480252448975272031333579129394346691765258466089434603731987963935714145068940585471778272488307749224440449332408903368254616600551656605232654446334466047620858054306160348258386176999688795729356053987059979312448914484848245560884490062078089120619794780478333678236632294914448662152883337779434862346159503511622460923922303847126012708488901748555899424627400422151623640844500433639055490233450349978264647321577727695317442562814173126077672385204999128077769421837233422534392765859229530455991061823079665721393263073388532266835151218208199615195661228104592888234702987710094664022732229066352574421736782981349263070926440437866665440957696874549996367750110550341201373302156453757367994439425074785818418150150168347121119584795820414051769892715094401103480577993861080574784122622913639775458970138198327328804115777875150704423099796032318835959639369996554989466354943290385815089211909719960514326514002280079543323938577138045658840766137345552586822419633114942294069787283650858585571679929137716608967363724694564278976647849091813682601555878582117824563238308142954473614350413987794202843338195815877513772229224571398743123163097676347702245035431922445318815754815874974833420940625316157106542805203640879679562587793046438322922435442361058132408428189431190113314474003548077126101306170344245001107505179030081065352525770738214704078559976122173166641577536679575213154656131670193888966896506593805518588955113087239515447374786080993316795241374374484986069981936858306976937667790463145390422652431868404565240946387749100076863585171828495977668418962872566348858281453517842515875268119040585999016148206413797319147896596314615271399115325469268421313281972503387440639067738660470275850123024549569026978607435658459973891811785739171037679615730984588160862640011225342034449560823325683439022512871846309567602026690708871875513900285543584997884707386899365119619226005926614962390919944394978932719011016067912898971741266524070941329559944549073565842638353044655711105922201238093814629280184756642838582055188952870153555581497222349647093202921534791687256525020179545338371025156009829800304394812985457569381595627847476027069170816838347498501350989831073147182261323147264342966058483499487051760182070913510671219185729434795477671409000377902088829879207851041585949066025576535346349981352323912175628574868160844608811336313747033011816209233351239484291987035162790078768495526238238486118013318108398985216950682998461941591991466242327194580904346457829962509020490205932368308176310482502320070287268947515951189931550014559089934218932817780658429439352844450211756824958553823100861491478867449937234800459753934391128705686511478196534362528995128531167354046074915477196433251771112563843792877967261684403087082586122763642613031452412798927699476771032152366240938859667813461173034987968987779158926610954265363816051035076375279883071484521487678367078781751014621470179845252031190045484521334087498761702429227951655237649527235875625135512435097785750722068066223403332860388858020694603773007683582526243857741719044793563165367344463141648353616141287831373638239091535641593428982681374122811486648301166321564549822084201443695027235717380582074967342533932276286174206947424570069209084654994099936241738605794744521324159138532526920679003976774230112265758998056852917365995165823077222102344622764208945393828209316229199747194231875485098589663429982367842665697116110490964816556012711761737356949759100386681295204534998228707901759465642031310725532507016981290763905794546784606744758174664110171074635882981585224159766254314308581693949902675019857119231131388416496160197937329840816398218305392181417255624840143431992418251872288039050597197442021234195792303709697130119609483877503999959614244822344675744060921089327828182042282743262547371952433781345684865868823964904142027763896953899857706340778193026805390774792788415307349331866989690740022327228026141987473669101055017497171888640415359645817972846521316605878165192886669628267642609811416855859861402235025440791965707443251101777764547984963024466167512218982792371510996265023465101225494174742608277971022081177542715772598080837577229558533042820580404468636794247262216423310521855269177933473188446752690348521346339597831431418615190571773782722018709675984635002997870099596938075151265066231842926360876987486119311301592269474322637129856936787308644748330737431274138219455513847074207041579166921921003083858016487248868027520794506393176880069619094751110013504708898743730866499948433084836054634641499756751799123520306959885446443242032198133511654927979624481990322855727469528003304022016514794233052743264125234006514204064548185191432665500829737277296712106112789878984743687455756076140634299228035689442382595429635996245755519044914520008764521549525231455385228077509901964117623310910618895490862808495213534364190553388555325441843561242892386711086468526475688722869981313312715130976304027734434365165304982669353116318292453409818010536701666693098611029887748294184331456392861958802556780734369109347268319709005035814611264575463684260708570349176836717771740555625890915077191060888470121601059694922618488180164926920004445856976408243032319371087230251139476446747075854945076315684642197211948105773904212466056879063383941794531867121722789801955775873016204605371792460547738429106734249613818237243087620067107361593468678192579722714191529287270642087413884026756733590793843797031319472220583483945264123830549097049551097659017286307474132303069003302598294358209214606303050324772736121748871968167322155547100498478325845173155798175470942207040963238039720055277504031477028136768118128564762001869423222182910120447592462128302089804859062171502489715400699896359124750271014136919245149120980018514773624312825802585552520210465758104292191090990720864976264506619947014379256612368056349161797534463867879776998261201008907293863307748115872958183337824589249698951175181439704561537326813036263267893221660357205032104560200433428497279942748914676822470909020683075357195013817292324826090002418798310552745474126431934749026886640386856915623113903760449590864069662512467621092408342807837645871866342814366269611081418573113161268424295979002405901644805753720104865425482276703914432099841990429423815750563955070840502874609142344776828412676632177565768283056515951004519014677973921130718384340546404054960673930339928165202507773258089962716147439420462648266018737914343148313678632373181545033747665695643123674818009044684636820392474632574928939167149234002837411355725949989536705830782180661263317956492904445778276578968450402290947586029068780448431241161133800615163961979726056229951742845971934373688827985948791811969145838871396805378815141308629646652975116307200716614721681419893916034338952794751808688689019797753756458597798470478379495764320289680696068595965781844543335176656865814095271610515123421036449042669127089561482108107593315746079664150688243296100522834744484382076090865731404090500186745133990597339648705579420841607630196856581130726844702963594015785740838039735924261507329937468477096483920309087935000841390776666995890410207403320461052839014595035297797832269363664631656087001993557778759228095896109806352401606235247808007180238365157013508107516390383019429906560767088092869030566967025989015323335227764323819768742980833442372229416658968172325415733734930757533569686055732634488717968666003105815875685887073075719514535395069002462167897748946576402164811157641120104412239394248415282346999292141965248127280562200515294163584422028324111131863633960548186136734912229252753589506890026955210905861217271979665432589061706070566942442165117456331202768312585281896691101985623813777000712665420330805016541405603920681523861701429005537510934024091596659674733184572461333060427957468612350173169295509451195794139864855402003842564039044732726013928101665699651042695878537844076647686729224983261684865103878745442449736673041471007421073494243429346970927586826801758123422574983947226201340552729260656327028200429118613340742482337462556090175412956547135280054928887412550166711279571826661507369003476942036234419174831049067279048415606638933023443828893708605041281834142896101490115867727322893263047501539592947810855985565983303564271641238040532647164536525281287738868838910772550268672297055744600867632933129374772515345522995856228163195841898387347704642380429650544006747657282934445366614827503035854153252537247585996730406064724913133022842020593645179226390856555858931131669796535800861083936046234703786321420132642669619958023828998573616342716069809354741963243365112496165441615922337863901865598823898093258347556459884487758471890578886166456778661134163422811289286480436671729839876950862820767144472208068158944239879752860150076090485822869922266871537342463529233396500742881973632970885615853653850722977446196162063484218743474025453433574415365897958520018550515616843050696362759518633676133078391330718737958092554599831437247200915432871409440801541877352330755294550699245598932383963963625928429187993678202568316408216717135289100977095389176785652860070464996432788831132943632809725469417496592007059894194629967881506256112300889539364877887322415700225599740007425505230299692023184258337932863528093564060598158209653381964386588582229989974143698928487273404586182556616140672712595191809615836138388548584308314919458908333731647879389198704073289601722949041167203159717145094270689424528934607494954691947944296210483391240462452223930956861351986270812491822063239539115979826137869967527338538726449084132249317959265307777345083529306356112769167745870429824247278105781836367810485534583532924723681234304133842908595141581642922658794080980564231876080313883677728176831210802453977722974430128113204982175610360877240128250699683955913663832646370936206265397250498788896409671048080417014646041037466521604971583758072647168241031228072562973740618650233094395960821726844185552607227418938066182796011533113730543281817580580960997293848818166293670004293323910466606188915553652085532952563055969963527399776618342289587056605963695841358064757599064964730365455107759667115354978579302510307819174636174388971444582635617261184903082326697960840077089194688661105527355491043922553582898740050638365984159930374344032284608905053497476623847860166044641536674111133174980013205732640850043566879686672523286544678044646600300361751429339911391858707005376918343866800873929066125997352270077172354517032248525266612311906212825405392874241657540635204442560968227817496768134714395341637118737553722762132549935123740705211600382478782251083183030347672077859349604822763311490920513787520131585424187506223576343480353344606557410226140822973773074400737941722957132523558924089135531406334906092203447393642606775965966567185108886392818270384721911267883925973186584052516585893874236077512721877867610084292363083869639200924430456490170097367944542621751001448109756053690621004138229461981171060046442587276444564342782358401387179215539990122606273582694799534511666688632109441126014143044593404922487497915101816199047514639848417329221361715333198894780271272895193788698986703027595771602063263982274024229930118650435840076800933522212238701397670290077933144722307999434570304096290126177978013996912685807784600042961103636623334568759892476531157390351164157095692729019578645103259806992377671024626987173035669917216377604395990746990028398201162347289531603159169939187174458008889884369780625460457428741115245803015786934102820860700465603386248848212640216012959772794364232460285593327841158792702360921957519271218867037699727040938763596791132612928390089558575455189554153169937052538748509371623055721735077795609035485771060442746796683238467435632824554962205583473457666340679293927427331558938368512569852966182070255962037723446347074990033530451043716675758307959100516569939253142322784586190028370806176382323781314882026397344542525966402672174024618598333211871290686515597145207750285996337464044578511608844726418606168325058519237405539569581507254779086099935093121527970723173192575438647652073659116823100901603170892417277100033654825878187988350942750882459789666605137574023251015828121904887706289617559496100498645908190130077310978518507360145995949487604599498735491989129244230310047896983416317012772482318741752472983672630126294181062601935650339489241308790690296636030113150113139259473333344418479535689597234819841533920381924710308927610721752790664135311850614211649632104533084002615296617778716213437505683545411576319638433864778183791123724198917241008296363563473486514911077050360062535745201819775246494868918040787617979406492500248642692118438705557996350086001492456339038979113941784269775915163248733868062300981301666274324789818960695818549325783758183324202581642831634321446731770286004015980375872623575997141608505972328814185677441497398709786255296995369301350795930664822222824609053425340838634210936804038490454636005180556309169553109269790457834574728023347743837997669970952927213382795991492735875155112124789964521146767295251428662588735419770947732409398373836041925017611991707802429873645964949829345034317627772292131358904919959358123327126450230986430104184090360396332017655115164173845366806215319900170291954630991339204293543495579473936177513287598714561216916856888252621891919862609170861325506027551305910385537067673618736570312495243078536887881075274042050558910653134565659477736871722499378247757871091920941205511878729036658323599918531692326149951460782495778536801994551165295283633369442690986947956976717862606556329754084935441539146251797270322822886971341732790123783577874498023247074027871740855947606503114981341157218726572082802462330879398040568203649848990940909893264193340455099356697742048227106940416601788912489308924771943578712308141032545506427301715132629649198202491866509460158176685434639439226421082691025483507074620452442907545319326300459494972897791210252444186887332754122080793303116143379265514982625871309781240248346153156035659485656237273475519221226747888698267431986765757402199685142586249602140429674735237861107911679288797976231744863219078851734520767821128156447096412060433977381585578092176142702671842031061792464322748881828167290925329629692808231131365104694102254919845168321737349594206935603449313869392458459297049521866094669088519309998429435416361713387603843902139483465639223683231410699486007003385432687976069316220460942948438119552875376286275818834396724545406679123244590687074302784807812888965152680886534901170308655857459287746904966742527546707162735095668424382992108604765607281846742033438172612675638334041820551028649823349075214151788778636130915857926239615424529926701178346891261647858596972623990845474214437275180257451259496937987546779940579389847336764857149995792193140858552397617286282739774278908520817078487042639356174413797981554346340918080233302972899743665728813120320092363420886762047777287426895653236326143474966490827148339639184671326572720272108216645390395864674820541965100953309372580433696096237374732096526272210113525978001433952154729532350773731150744020291292633605190828252495397734759793066780844662770236892251210266279103643818453954535247392217477891859390481962891152567521843493355229933108651408351144613333875704292711873918883604490132987998924663718759181706020640934366483440044358402698819212719919978117746148038207961846229149095050677476582241822631910246793930340157261844163926028602971638966454782902821391728463053237787742328375486838269976169251729680968506194548219952787903810015110060001653147864247080233128088972209539935802127494709339906950114370747835037420481854683006699050363750724529886272243605656334335066588333740257975852459969390771369019447425405478361409260564583583953049753712193730201037887315569991423869167013184934929128122099444592480198858664130571477182358537204250855779139782788706106755853649256413326263483460696424407466061689570574138734539644400051272673904850046426017155229443607659194697284454372452410338816627924043853482586678609837790054188325987331675163708894946677305867525290177813749302750302083823637417674925513825527847358130298911241094166760920235263259056210929950619068289564899546164574866426221450513829656873196520409360356571387545563457297378820321377719782911782056417752573027965358988474069902428795043816275128330336942684756671749860555977959316527044893008730602717119182539491432920296255068608121882901128338506918437138977380774084920901882201763526685291006641653067235388493288438591356573629108968480113534280776281959879398587269665120159927609720731617574940321924038871140636059747141530332113512656255928900611680037525465947829514471899228514060320777116604591579881805940968911205113430561060742097787027976141526842338073287695998186057956577259460943178297359141402956650684187920602396338709148982017677422563265625735138192774669862441864130763773249790653937270739953563958599489156006439290164219334963916875670866733264832912980112800094184025867156130338619485990049133712740772823317042869179642830160400760553699035802016364154019850333412824305182705564870633403044814216075645151183421446163726131137351304949612803126092254858085342246088967333455938314638173849958842665372725750930672003951977795422263806963723724311089809790282220263632825976936901213677796213914258311763512281681544734959876404494744452569799052494370909613201809532377861120494159192240377742848783428199845944705595648218043523959086644327447790220124412922960869723682526058165610748743253406557589444077898918034485267567719998240615021279682518005572664679366571965994214827412101187619709886829701280607191736544114230167739318514617287895371995510875540390650514918082314808261928453616335174546674954761985419576080577923865879238803698049820360872948670824070688604270863995914684692928728744888086206108179243314772206124982471849780015612009385110928629563352185190735677164232898262016302266436612468495193247073214771676052297352991016216721950625437746667841834429923056203423001480004996628657337734904870250591408136931922065131983041215674202078056702014431357304505217126822842159111970271128527492497251092790406982510969583908206587687802339420429643175554462813213839499818086872053998258591134035748290239486420566821656754034629833031542434809875721651131479010862537107762128242916410324636828723952643043530308431568305580730481171167293676068368174140604222334479013939209427927950159650842221414860503334530097964494512585091761330339942663850037593224764170601316479630744207914419260090812107343463850198154839791168592340135288795134930933835027863280792805904208294276210859000904201957416917716679467938926225436712296315157024076620137338470170985891819320414910747029314196197184198596233681533621136796668299421509476465925100724446310332070033640061583248566724103335367320745469541267361839466315112753353060496920536392197746872093859950586720993469230018595326037000460518063575446686718169765747621051518403046873434827375357991630931032914784229230968175576961540065669773711475523557504139340955581714963587656321142438936165590814751056145372570691296960549976984647880406936529980132556703802991447427643162101747099534595574079321637146911074404668034464154376211954687832981594287266626106987794967355141757283459018232868396685075605090264695863787022171043084904083932741366467395384311628080237088834771543276307894227926974975303053962067856876295872089569031012361210155189946510667967222613034440277308882698069450796492021688522623151390537145196719037655698579840622412239358161074431008884810468883126893851608682100511213400734268497900893059282121270090347381976915467866646808363377673292287116748913702047315858486285806076922547155859288724354969488729785206383806592161948001527007622644054135268892183241284819856101527458050429162737348397767441084160017898394967495432418444528587351231327888924200012361229182200347331355789542934208406410491116434480197757918089332157805652278847270177287379050058359196382580832925169254492636011276174418283869244892791656952139297754715508405935928500527412058315117569717491958655477622137279639127550494396608753623522868162774306514762784043431460503713650207783983279050812423254205510875540290777027599833260403981636801781309707771955872014871269497749509878628962821222367198236399716060628214062265340851609321280234254979824763393119370238752293578945601976038589407349836358116109013268850103835563857907412396867016682758974300365394111105555104885606514112918742672116217042464214810933073675738903821507165234263390197223999276183311145423010523039422408615980418024471545274204756839876155078686907540863591235671221427734045781853904702133396870459844417248858317740673859966809934952177047859596744059761753168000252187711764334138733330246811807746025239132955116342516182495802624381954956649544231035691375059894604000704464119685763382981692641267567490619877861479262287929216798778435159828934711388147170475540951582811704838577295500688835370651143882105576792192726876470908015448491438984458450013813977999835392825894714561555525428952354456526496517825586997248948506404108977316696839110625417194812477659522921221642002224539729808929690027993956297720815414642115434923430054817073314896472242797718541940488921422210007596769218031924924304543225057948734703631562020541553905214584506302522495771709918314489292366360733372952586425647425270480061331061073933971542351091157564848412764282571014832216472078736825913645750178207195799134832173667972293506385967428115172545168940596983291226735098671773925821718092444766970738845428322047569081280345138316765273923922059321378034693827493265468176853948438155576100885670859231891347921653708471650791445886084796909474148754389689360177001501255262503981450517787860343244434707245060366219415989715534505027184137631240260132566697980329364459324367968910857423326867715143488540549532331851173325277646829219240058218858001783233197989663206064091501512734361131671691899059388248138379272706393030802571689252106380628861927526360304850543260882643293828317478412869551808091929261190557470333119017667058065182402187545335270658476736957348125569001942026108241935030493154711513605120624003060479193346754678622401984088504400972440435630073255740940767083552389324314478734628645843405311885250212393832408573246444891089000427065589855378817615931733278571386592441660609873358889396879959920509807393900380319418130162973811091863626286921511262907259866892002331316171945754757413700880955000996827745551121148975416425917347232094452991680384308081327023959708427633089808727382944203151000731807697108103497717020728204722576964658902807745807086536591757617695020682677557461649647576247274312396663468909831424980524182478090179894335133948471729196848654004546139356679310364487598547760235408347262312229359474748836166708713012038916332261151258873579667992654081201276104499840199654360206579632462906903450380653023874079915138464386980807401074469757862953036649624989443043258634915570774664841406487268324882483600462271977116880875832076018023804591116556818200747888415476335085900102267894818762668632751383383757124241161032815703494614713570879112377604087729860132222796706386654737240016792952367442129285220668113759359055471553607643134596755517261918317303428792898236061660177710949959962493348183095016223293616541104187258028214807456328952939381582410556902141388587428518138881457667147104072404412641533422639615936970775066952900662479095837246945189068769025626760565225387649424400609816058984296954040650645991144211080441382218265151853077923205846528630071958028144553673148856345276247041837666282556132060395683088550533855174741793875265764361452221064442548162147900934603580177976500920446937261409751025581157711210403335713171520904254665492145461594529039772898494114531554915115074518562884091529880020888369526420989626941565256568206207061967855104438632272440236768284463858183882663218104247209729359570889374831234472769795483577589542227290795679648999714671861607224221960804038204510156258117336029922413145958339015826022683088069373362747169598214514598164036610874569213867364206736701329184478861782135904346922389114017312251911967063435483716248706137988047606590696783072468367493445294272723060300082711452638839696504678011181586777536080349669076314379734975437650841611257468556780670493835618200928562525856007963405107881719240875275999666479659428824285582161945062161233199167188594396802099921610830438598873227640143153900565657976378347138587647125688932862138756862974839452555413342372330949061400098677688105469464459367497516236150350666871522012943930586566448693209650369917616522542833031792366061922601827708820947371995696104925733095563539815033172089036990638031973095937981063208175484563567911480431842140360151378561417222143919015338338419120764661912357329156751124628242416494330994838604229906663894674819976740486285745561277745268037801401216369504434695069668330976626776759491875904893714469999163379920507614559442019321450550442676799745095711124206556316035025018683116256383966803104873014316692744359267289188540968698286276914096603791786642267699732293783230403431423146185745236140780792411475627088631008473907532262738605175832856745181589812299648748957705759623438772973826210071242441275042320139700706724718940062024999750386312619686177373190971688791880587125986255165070902197137746999691895627844715431724384803408261348446311299474578470426752244519378713917679305690560626486263237881124098064834370955514472318556575874971723567793123040787719160816171359491631534165019323978690565352904379231483015469553275597294640666106001284873466147835046336708581757032766854631403920114588494395347187302538200817739145248095502388467655679719705994029213794888153892091966776639220764245070842851085822816151383129322370104428457921769964939389079636145716517662545644651311498806410890445215905870583093014907677249309108112029440066821848810890338742170508704986526539334011403806041799973649593821495937244838832161252258607550000239554416611509242214936567877380331720233618553596191984699975536637998903398995451012144383649428079841000341409762484338886121694611905371606401565914717544594927136012284111903545684011313839925484049345916372118055958377834480238178198279400589856783419069219124453699058902005945127688679310551384486205614497825008175891346721019863423994603809973468034641405182552539621807781416138983716859713535481267443056778170825442981358949446809232359345951310357408878345264904366921014881928890138179380165246239560997960347954290061062303691044593298371374801258055476979591044473905182594273890432521764367313290179554099610933584756784651822302850352885505153343575131828875431419529480209142384704791850346520170403984948579836652209750915030409070723978272476571879744069154685900470111765437669974596003648739952664306224742853986961656168239050502810783847565801663568158010558263725859472976514149344664508103147508293704451922018209680289660479581520947204657636251930350408240095164148308028222974054616181979460627524029701696919691158237397516951031234569068517773966792287522962101539939553922949975483810686778859639916404131548419361375892478533954279131783638249646159160138624312193593871734914618214371266941236770804247305211396418667528869994792562542194313931478138159281555069271957935899422304515338104448780404175858234540056271984687216322899946264130787647100537338982481369624173560336464189272255761440192747486991623221583943262881453160679995675561340236384169556065281045796279377201118024143982232750923957890552133537095031523110075675146364751308411260244866043509618340666386029745537138888225224677863019717824940758303456346739561293873701053191148711002694862209279009122214544294089450357123503646045870465594555098654750527229771841029853668810631743289650390076703026747181514131390546780167244804994185958128713702234768954617351585031080964685078940104156847971290589870131028433355109828036590529749684870651689661160050250749768804258710813225727434043493199278185582921826370992886735908861700035863163328712408653299782295780865200038405262042144532327935176796102332295982495761038173392430585221071665874156920567692910460429898642540643424483523514502761488770491643501794856256222282734046947263875841675791079332575775371609615841885644760910130666606463647264756614875609591133974235936960948084351413133261101773605860159749557813683770229981231778981851728051474003163284754793900639278283638591997984073646996453657314858069482217583655560750094124927862098636039047952189639103764177848059499582138851903739457128191350860995184597840597394297305083160551280113908059020829217833732777144676262716654537913577137002991751310746441199621794031819549140806037610723869598070114461662150256582527797444519900213946394584972361107585533982025411711631544118619703488248908921899171399659604142051404234519129163461348728822954408225597716192490212070972977667598377023392939127370639455064677545964417764108496361606567390492577761157021000380538247938795257841039483436593491309315378689244494745975130841861572969850908839135409628568930800502210165839073045926413751447825555075182210017479625742982812980008466827058170703730851635642694762302553981821867790976419316524734915562208218996294947465983566779616308881039800285545026329822095648285150249975049198608491496265375750441343700362476131289936835516664783799456729586458493690864227417228785714806917681586317217149156567174416553720274022796719395403994553201508706768845634454945521503220109645231120459510579613336461684140957631688960326591582134891442210319878197755289926561640221284380777506180040609674218389751299389340670803128248145446574227690159369996796563464348955404347729970377381804183552077138753432441047220146340500472626208244877385485716936556806684694114906904677926911301998384160850700138536995321066742311825562906137149130962257721362994696468395470419455023507325886967229961858634116564359324641519906242535011841999998023392536899710209439071705481867971211715474093050162920278122112263073500525394768369995571255444309667194839594088460622433901242237036061830822325810926810938682808006525853360736896429713491315902780290258186306349816091638352777387244054160633829631525589545138531648762845840299699922556428388995031222061648457094219642292622653789372044352985075668202748123766469557825367781796442560991504508449604644012773889823350424653251370050681249377134037840406988555439385845034122434252298449139354951246109116831333844290029675171757970754066176547835601615189959727275988467986268096392501528769810968801327645688756759217064273926374455462840707536163260911390454986575980624451055307350040293246923498717084628968746827628834114736288534297545158616156846334067243426884571537584330278990303378216471688865704876808055488904867886233980899760163304103204086116083557609537911265078531882722690605662669115756576105285957472601744788088201165127746618250601679739243624178239471139884423150035794703467773234811435219445958088467469550788013491343599373274567546103594982991442492938435617537027100334658815534105987679157221455412869863494974406636616889174235853975403130692733041208429962884039399495656494776497026972709667789427010834061026296128858791972081953323687389490985456964542495183209812154168053626048051433740802458664142115719585851645372241465074116803064783893570701445641878788316247224992359263499209778536995952641311900590073046716909780285468269733171746924737236695708869276617071342920152372729679805032956947981439799856681528557792712232081863326611633324388582665958745719717559245723184881249780052387822455661670722048032861560158120737727231095630429029846283320882300052738616992180642503250137158416796014003334920731996627609556164688000402057546935449656013261294186242887321781080571583704685160731331558418884825272042820892758119305439738040534724112410084169787122479324266326900062396336517300571768934499149273113876696045729772978915682990517388657166695450573502906348836834105993266866158614001862590738865047305300951587540961507382906718326207700656883449909105205397667018211062362813834020708004607626676378925680383378822063627535853114769738057779963323522085354373048100306210360238878840753022923049376875699049455074070262885703691956718278702965965185348083524820756844130773349591299741706187546450164202273241671364304317614266374573117104040766793101966148851631734831204472531870571445401470441073615198596167044597564306628798801468393362332487097720756765959799142090376182341686491367116938634497049676529448987734156723337260464657930742331285934914008047807544945865853131922060457198214420767483456622291844383080277483677577229598905043894888337720778895889888179584247316751131622530620537463712077100827346869042446544755821863772703228490932860443536905347417630299613008122799176837497109199845060838127462279135990030442211113548924880774816773477975073025041748550415527182796339054674803750334624120007126794234296354021014701799193866278475988594078294197051008071887305572225980298075900909782080985933747549019544384663255949268953617433286108931035503848564759818094153604626483478268381344769039793800927840398087983271366862377353002367698142163702908019886917850643042936534999824067601832112002340659161784942106516296198630845362792401327480842670126404425751829378772084025224438494829524081568578889120143868845633915588957579208485367642040575692526960997552084547825248827189073279321821075251220843643215077940425291296679942939509788838273045456141453492813912494928044344664681297677906962755184816803299718018735424150742189469811249436005494916035922166492232024937725426750739238111284550371178505759540292716967726430079746003020233895040392393953796467934465042469589367417861454728502045197679864955300822354131756489871341515343803369284141762505225899545870406343970300630112119383135190064582668811444086267988133966873242828487595185639905703575157516995346288756117635512362594512769072721053805226374700285847370289879657668767549697776834017705253200463909085994018442376238205429740019877160649373000735822711488261683458325614357882325189062828573081385811783351081168633823214861942963238099343152101760614775517799992199131820249646906986322619407168263284945227414275894822173555619945130632398517513438851391003205748906600783099613307531655353242469168945556301838755929328556090384414120903465758991073174167957233357693242006070019672217137224186306695450653244676549535215660385807925703068869028499593667529603160531147753736583976738824731057971091523585170745950560914611807812681364590374812124417551609344908725478800428128784970945227621446034769675319623496843071132075475105026347315179660208624612197103579688982738555192260898153901739107105172608431985479173342722905787201560187655526167061864785692349847336644450316442886830113711755194193330214680205603595671895346051479604989067843681437311251366076845062421753722826929955116470193286898333582846633240613503401132084591424472897934580593879869938736520128074544599550029049690487489336760226615778785539189983502273224599581387494821627003225559428932702230739382463342007434922399714424140633288885967976370015347369209789600660268353072024315399136071055138366601437270963275583289729070598636980755944446468026117466314094478502184395068861645350593114486038489800347851229652867972458607644180618533911787463802148557235674642611068004865038993489901184530346780885620296952872075109566161566507874842679244290302819004731677936268445471373924239246051202342365290487358662257479989493513916078246200259993958286758300483829800257865325132046092159277215026326735506119782518551009231393538659398017226237893499962279046675382997775727041144807906499174248129031897848019817756759471858515822937760852198540419558582894750023669545360820405137385868250749910022459772518927760949646810618302807354185351589891578839154673509436752317934370372659020078432387670103488089716656800686250792429187011254430073805909948820449286070170779666129568850136795552230386026756363182531865491906417174720075981636948564028721635449330678951651396241161652818863039022658208802892673201931040813622418031056804745690947428719066918789313745078755980575064233612578307109814838909655626851713505498035258107836715646242684952810246986352006008522725995003930836519619917067704496219423146782246953723998544313925756324139049548582408118134149521211927410733509367073685663222518251918117885410188018904939898535514774499667721303495368318894012649641694198340090991593705176165600722708132952926058589608457663455456953706356607433609495567935801129528703854953066202835611875773043066726064210117777217414981534794572040983894483616382107789170959078986717090128732053094927720743726440311473529965064769206464798568950320574289070410264846804299514730883853477701977064984606302166453227230477303460344623537269872471449769019902627667826582200987259778223981967970973514839982286150387311596210747262476891475439131163202807102131201711796782786019434252794547349431869033384275860701907925973856924886390839972654555561046599142030726716988627266068621693702185261123157932319465289732008325288168422552006361314390463002910469007833783804797724295535646328371650868425285610363793930155039153300620991202739397040855407574726203743214114923241011888699259838810134389659029335246373396561722435974258349939306390407720741707653288802775199591212665214540517315801478529822077844758636889420269297778361473817265354611601623008057865112369603149291636382895353900273526465613989554933904764492354670301504188104633212829318673661478562334860765445982157891349287090501882994142018665942631774182456736520213780411740775643705754454542525191786951344980313504267445099379227836979828999215725328423272782892294495801516706965475728863697896925129994779841502201453498550483142702681771819854642125141327738538612871528861178727949496338201310792432456374898348003165265144249665009580408077555892843557204757563611285028946355555078009291592209140101891417150658103780895526725593650500898471875251859675190091022455320895421007642234782940036757433152058212576983665179056922123646375985664313458378582237355165251279340927380090197070283537172695851164079013032176982742316760306674717112681131538294627060964131119101688881588258818233428794417764047469595636809808937538407209088881703760001922950712073242797487968003919084229520704992578852162425398532075651288025349945645263934163650624972526407661771941859768693173295288197653342678776679083205754699819419076161448292996424779092373686904843622718369806162483985837812876663544910992793429355057164193667699175548616494085257453747164972034829402074865860344001105091823195608625513458232815637314364925300532995988710268077374349590054784941906358096286833790408574018214299695852990626241346733390292367970310628736616138777115659473567746647387778082980369468603856107225729121956174576117488947329558414741105042811034475203185679924066164562032992879908006635265950360748911839985104286186734966978189663983169764503637235132051521081320328046546455602527457492112532152373660760463434626370856689492896058651828597438470078240790197070693275946912551040325161287123461409537866340026925606329596406896876221524556457621143413683211880614732271271336976555328316106509878620799689368634157138828230259161764173032047183637864274775928974289791592272580319050770954585138950010693659337440561421856869958529720901466971710008915599849194203522270020062551613247831033766094580461629386254547464908915990247456035645021157589369008829230772765816327171667898114846497609798294289038835784460907488413698794259584021975855273671769386416944812362534088215942915846044719932719220278333083480191327955879364890112971063376983167318884350448623993214018502949911942330512961828490199504708018237506119535000720573097324967838058810990763301232804686850205123966388464417465075491155556275411069069091986225378955576847168111714710344422152480373500410207402404608109151582518143199555924180995963339558449323856049482489084225717425622400439604835435309399146849664110371356445010981676342026593306959517807117864027851028716743534138887707467992638936655393820245969390036023523163007260372280842505057293224902481002082430630072390668310131881785596701358589679182721518038397345645471078034772668375856050737969253692888053209910006346520530965466110046821819850463016862384325037257451955188749861439697856525735902911709785593616298583722871611911262668173463541841907451348233294366347547874972194833324311411701432882716060857984511474337762520846010180708085366288503013218311018194128501367109025584256933752406248277914727207899055687398461492007253052128862838131601331835776781316845842585365255205485405346594294454266263214151488234759729622849850915312091866037639666316489928026277439306896677369393303028040574657670647810088175761028922278186634428759506327338457360040746352427763916739498390652515405165143767012608316089979360838435679711910748632517811238110716047723060112219261341661289649249324719116308830023991971027428439716169709535002235744179806091500961322830725095117851985884778337492248429187765585179267147052306228049197440862981543840050765959856974580549740246122230663339208188158729238383951929411596286537747331887207113472510806678900914377629003851019753835476205573163025896402067869840301815807567255926475012272641446457542129643381884633229195699916633889494774487703294895755440498921025697363744772675898263132178470480066167390199531158258551834825572519609923687659615511918103930498917106734454779540661450765053042274331121557960576760794917275553134954793479904474315051305807729267272401928830070926245586264136622599409388151238451879515290329861834387622841345492043974603658009364576506795252064792973117276939164229915140832447356151430489875360047689858958783124622505411907877757216803117750443595952592870663104991931690453592951242548608661745956033633399559887406725646105047673256021365329329960812367496900967704025320866685044436505691600573176760796461216557982632152203334636978442511532194394873354533460352526345422154328836310529807098257569967599749841217823198845288658479602250815717208341035786469027381971699729734271288234568111227968885884862652812572912263362146175450115366826303765391260814878560308707254126777146140698231305488209450571388471950094881638780129136311837723124760825853448195462170857240563730377878130668377543904067850373909276347975446387146536584296594228918908329436204937292514082007450505974681493982628096157106937492787661333228764247813652218656223964650179107475643290518889371300744291350710041118736222541207776143826894338743319673642081916222661036642462481461220624233884667505083266987966845032903769386462084795175567264724859817856180884782684119241132814208251530859912615645315872586257763598258800138485447394536653227262922526012493672641553514806457251899942094200502127101124109450599643346220989887416531637884573442077394526097160820975173386668630108233000833160705075450532164657841893347532706964336633252021464906374936385369939989329249643454002018319648943453417724389992482945806980818076249202253070090386665700806010688529101635238663118932252010570052084533100518896262545798638065745038471038198153638864846779298869664928953229680565766334945162992776995276694531739376936336476710776007636807522461815718911977925816235417516189287182432530979745182036441367791871219194744621740545242368725876504796780360835698190144524270737293355634806291287907672409623551636259487852574731306907247397191343325513140672771439981292136022487745634702783321127235020104694045987442231055237298260185197411712652626477041556932938635873632505968483780319325242240354667510965822468055696002545342845700552710537152372210854668523212763684548614046738884333271805004184542179325624069842883332498203767601090390948152388175575990689620810765559030213824075476456236350362710194340034858825634452730121490845272804908174980244319952367708375497594138407625624268611315126295638954602083341444026384311027004596821525292899903974664192042390487490540392540335958678305355706248642565723756016494053255897273930942472190227954089021644997228022615587383594004360682315214133929308995002039758788479126226596472855250611660207691514866433453755912368447207671173698926003776570962648735261293579587597531204391528736632260285297011347185261599023791648786234404965607021845694758028529333285650272292565967764641843775038359525007831220209042433268835143951762603929079761885498983713016536593577837081062308822254111272835704689399035349782313493329254243940179358348802632847732664393034507328862892081637831165675836799308338103671534218457236414510665414966806985670345014586729125203989721641094248465168042993224437163350935214088725643396232042157106355901636043485097721828635881640866498017938871227801751591377382627262213940458616177268912736503603728345506399851503184679155132792072700294064505005024081808337827824366810480326797062218394445545876677651296200791357023808809238429496126226015152780475690477551520078779651863127369130362943906108343569606555838772771121498129692212682619660131845693160353701026564279870657302727569071642153300730505106873159274751020132062185169008246738106051666670062377574228278082108317965940678080809910917452281884855900109551751445281523864494520544805154214895620242219061258151257988961214886244343768419171660151976881015440284727564695389155694371315746050547387763485020025396820126622316818082241174627590314493702585539206221778813110277723185008875846207852485675770929414874213322269195665225618728779218543126530800045235637313292062958965600915668126612481933162826792442199198321075629049360856348107068464578384022466294296433883919072763215437935644622761129026318692972940678095114433025222748782642361224469502713261975316146310478385458914545606735061331388105493732353894830991523381599941318478217372967835572800850954695017287805189438442403010829358584308250345894076790095126835616494286213002819232604249352318580159758121494186459607054867856912479813030394785897611206536651007092130424197076934838445982118429227022321173637679794009245784687388388468462537873144575441558302433009628526347096704117573553596945808058941693397509033381392323702751659162501289898963383600417881841624025788198641686762034718700770346206088990800420718001626098608322638173162446696496146343096585148902689227717640838985196818791526463607955905706609418793193067071759692193389244189592603431178155913130748979657560497819637066986097003724640195534375827086754378069530146272509865561918409902838464375487836436476387290583312460459101143160481117882721336639751435122786393681265252946456589808820037732838765793839434490444998966929118432087185576431346824475731486320881221884903909891066736872913293453930863755114431953881476274454363354856207644595863982091737775109792235365420588298163902876507344569257867582733928553535372058874643065651492945435560124291905032814252391501897312168786457286105277196848811824576756166921088949546665083209514266196398299407361111651548192006248196876835268396828483397910163094470133133329831291892956579710097720837106071034324625823013014961274638916430329284463293900786270158534591948875940801956023845847172895684332344117749657582514095346592031004853603437870969845594798836058112837630432110893461396058059736593862924548556678551889850593181071018669371993738460991671126641133687167043435937729353733280063374394752674659274548849219368716104777809465742722528574165755662596793118970236588231229577478485867632295597217198827733416319433816279446774875546119581998190335196219766089323356399853481907764655294238103089861795049072269807454104368255622430791769680118119031178811256194639024276241464950142799615207927868093048285748563207137838939151711781507034914958855084255570819184708882947332898797001643859064492909937754710886395655952348899008347911341563598482019025103136141740537955920249277919650763885866663862043671299818216791118762954551325588054646494474665631542265173860074443140713173054506686289462387407693318892340203505958989140046077356078699456895533116813139065744563873106907580240242542546115938151995282914697016908585964272586909900661317473918002126635420546785195769792709530672437713435613893120670598188601231648595592645480640363245405881226928230790354085531924550883350596834704664740105268598512033277262610719059162059256223576442549411933881099302762957365260807632331117128916226436104013439720429902430998350482474095638321136635954930488496873300926406025381573055455341717700012700787535921051764984586619288986196028467647539908330850579776812460387017425327232343038289802869593061176822580924772677318162789678675455654856092274883122100907430236386086572612017285266608809572341191524267873227448558541183876476575583931467795225123803045111208107283097006995172771012208321510970910866131926666054026237715518465307694979078972397889281608383928349630627180101824250056735078726786431699114225332672049016175540750329760137923606640294840106585028958321634938326444993772338571719271663125868502839900555636407738011140672046774080186053944338086579053282433961901173433036918894010298686148279053589337319898287465212301429400300371892986896860369887049954942827391282782347191937315774692188546138190736901811245964518654552187086869747431804377996350712883109843904380801936175379391952030885347954783600999891980017500877000441946152247492023715886519868346045011076463813508294675872136171181115756465967394462051372896667322113453300205047706809189370966970547341416586487559564962991535965210343833167322474883773523453423078276284088115257710284097531466430453879863502081881282346257711772887991979995009332452692596408174979335178536991368609098330727146918205240975409080869389577868535161790507664465641573621525196289011280298426648110532145906325259866869361186814589098273550320204138172931446308689974280280972273136663720675856948090056383306768303704590694169602233864952519593257807634037366103886513497974560708582195168694595464111887191927010354873742096234514366532872195105873407884128896426882367952299514431676353437660520584989506318828077637961177346620235986118760954445261247103823519273249795124725404149004621262175686450681321875180821577526504252524838522869210286466080680131287357054461970360861404820330118327862154573119747954431144174466339839333209830752580522963761024258680909600877189453545136665724496093047970633121280638802647309603283385034636658711490541966145657316401400638985360152662884149533069676586574064924158456617105814586469184791098688469325360687962130092422554409763370314513183123478293221325324444978657042165776258130154689663918176746866479659422970836607977341973813204729807981326998545286489526940714229847671414317511942355059127905864012613249266292444156066756815343903441417323472572375299530391648120365054775747870979991409234609972812994641871348829658383681376153160203002079488667022951265036507088265865178352579669506150072161145137360254518345399944500077805015943617489354449710618690817025791545812539711425227447278075266213216572656034321652177823384215604574862602765944712480574491173698837794806446590889680813679503443799782026064900657075193535408387093742236182317293862102653542709261664384987236738530416553122868839564469006889055929856526542463640549300627608168177379824047748950819852675012088950567544500616550894997967006577275477147240738234274283126781429314081267283395723834326874835290852747006868788095865691456243119032016672381643215191710279103814235822839740941014579975126268406965751132541368482906356816157703038273944617780512694874475303175639095433242293797823614598650865858042852504797903790029670241178299732552003160219072310906119699597068108175716827236241031774640142937160166500414304734966145272476889008110672913581772440165159380934483006527638202755719627653064025341467070171936579622787376090366304299026278915638102677230522252306401249170039177883453497125652635143795986954027139366907633227142713706310987052248442151552491358342145080893296875967987155778127125401658662039857326445509500124320757443880159565842795417945957881404005748916363767965378775526814253522131004291089731160536402743523838229205868694421872634258133484743217606165102195433510520093819054981406789975826640497468526004434014381646180851173141359875815046724175255296690183101907249260278120456706355458506674310030221745334778335452668599028224652007283143863127516662386770188628588553362874936690935720086047648091945274474673725553012810645056288451896920695718607876976374554010025797725455048847331434002923267885627960852895285389434240311484622178305691988929162749858815615297584471327884122321341211779979767812156131587197900235644586779693238778810333094362946088140217252291839144198576905721707252612744446166640755202377258971148932207295844888981323828056661329799459311200348516065668370693974965675429894265906344848819176041986088725966947351060997824727186064422082628104644714586941326563725404548902764913525318468418774942109715746937226172742545984410766094564169957552240541643677791671103574639491301937435689581286906686665462774986041849661331532211975076873852045912850769659009419725683129817290598896367771224608265637243241787361192809488550212781533893621046017173450914824389339079208239535811672133953641172820512648689687528738066864421412618106999514862916018220147777026632051986363718784602183879570146374878831529466745877828889214181047347417597300680996755661061344987100540940585344540324132960252819030227932977648242042344364742686836826999922953130423578918593889832501687919175482946293793452298432488446308360195495578383489148382259797223195457293206472615491750894461673133784923866246982577748563112624405041967444169152638903504567363939802222790098826184389871245000829480031000782313091055973397398981526965069947874305192057230297757206222341432331681550295944954759632481561036639172208263878038522410428362438886328774743359451197872333120804822943954528673541384828491082234448497715637030165341370802188830592709324686438683943002694876970427912960307837338535100347804036585870365177611828228841658334098629540251695871720281496689765211415591978151825009033492791262705289496614185777026935567894007570839215031563129560977007815724938582770170668561305006389351394072054602202313613889692968013576405582145676705231444861672974303947932457486929053144719150538640750085724529351523385824372006207851745109097126578273846599362493044362967914226154024532709505117174097477084584413284362920629458711823755283166558384983624430196538177703037847211123653647024588348476826914225585295664083426161758259592464758027698228057585837685020713555905886103118938378326315557519972959002101823391665634125321774261575676106514348564210434881175009058837093694655773502783647159018287247556391975194963488312615331318645476795861821213946544206881967523288093862187295877161832882379890058779261979334335435632386169019527163472175699361271606031920371941907843188235449718750229151027921579978505945983492162601217012214408456302915257887835600213373860086052164267890281807528867498983021205091714262413115994267938979428488550802035643445898440043512539969125646135139417252866405387153733317073816451861396329452212868380748321644013997070770598384350386611251984730245358767819677249547120606870008315688229918636898266280046870583808496570444727300439087668060874863373158000922160105916530511786568088122954021692770441466113100788901348018701826039031736980638897833055534597784938114512893743764639655551856370161396175329683352418568391135747896295378309913174444499092973887993552335881949413232613485115129566298315113656804975051285278085865748373938028733406731449106688472987729530780982682899157333890571632060886515626383937445375936064201441006240054360843387045024381560121689449253307707308262840490190664255383928170668953541010064589182948072427768649059786217194657407373381595370258768532694619179606984383883048832459246073098554456291793183474545500427440054274697125657142771138396393474976209351656045050882529941475167734433785442157527007902181274331994297331213491890296907643774405369361462164877208142178499333756594238711459650704277682188634623853570574546859266942972062960685872683048029456639634569453450333684925774650447093736243479250798502215716549770217688903525410002987503006078082830920939363024470806731655746797418936505398254179301478984876979412378487137249823189239265615993455457717778084039817905362432374033445917924341617139404741890289802221644983376270191138221763013793461677318541717189836846750631334126022639750098053091265361549173350442699761736932284689255131582968389549223753179923267531325865010336041353997154630919623120658395749796081784741101683688485379151736110863160184427630514093150472526748192920665698539234015355608168383114243061222707699947410339465978708207739319783204553857000890249284131285900092116113329035909297420729979703350970984368809070660234076085525567495463651695798145507781374311022520640826454380543668458430982085791096567705739274876330658416617282057897465188042514668459377844326238000050041160638534294639750233432210038012526345062234809174178345752081600936537172935546488359395562480788358985919297277880330178370582105807079048240762568069844105047146226050020474373257088875538850004796932110433647380858362457159066087325294160145566369344992463016269975656693741942405446323008525412677207623709154895611912085502987146107038277259122589032095977042101370749092063711614146112301981765049248314687527768924642392321449631152448019458118649665553885218476720006989852032858470625057213370594410073755226038432454516767185461919231302648712582718538428497270158356457124014955292639298535197296887197130818627001327683900177977255907819184341147698361238098355186953419192521123738196071746267552422253719605012345171927703400425693922313014334681200944399123371304542344316882881127123620506980197665206028777675759299228697393648665845008837661482198132344251335626215695339159019695011390218867383561960694176457255963933785234997150513573882778373959950094914094375560543115260344278495487529512914219153158642386169400961416406347082562615386930746711796986322037679961166677086479117836207139234077718439322230469008780334851933589176221448570885936514794910667741208178245753495080541437138485203895688712275633979540228864908373302834689420493996948771618177653897436043888647519401245236786680847432903390940918928335445955369777406878896078521109105137327680065413978307037017631898675361376391848122650300475609319809904745882175962276245436578839877235307211919413687655253403885927767856808706397665268747387100329004724185998825165016804846512968548565662472115910878844059254510103011547027142662183976532615504865066935437008948658054941945903488603775637564732123783518563728170737720283416117410228203179472141721369922156221324114702531054566018530987526511839325509302797231995057123011376178440860592262718383042327818457122377421418817651851789397174309576908299840736566665987506715461627681754951751796161839792752063668589436249300917712235278150853453100535921076689270400339851354265264566168700855507858302588835217621788754727174267455148790189537638114910455762464603310145511496186933142519327901683215558573697486680855773558589189450982483589517454464822426889410784773889933036349854060634573952730532916105856443837921056572323235960661646338639520836133489328780363723803332563135428198378268752015870557433338192349220326292096130963112341765449673003311187764722073920041900449037767921176438039490520842377676868269009157761808128304359660627886161591337609262925086653033919890530325323585754505919059229980137485438183452086900881326125710885132238880551767492986612507250201007252953717271759842300726153118549191098363369952545237720838522321205287002026124470963703593320953666289469019194331151304260503304360099902246209195426682061079491085508429179561908305940691127116106074693897664061697731927563061137941651566936131545394780096380134789734639015107752111195221528159481434089910596784827564084807133463088458869652403914174242515996221287544370673772164559821239838546554549955211705194257245605799689841765477409564328020820674406242997588862551718839376297810003579509611544800807193589437873187476990198628089279489966110661512562400034392473553291158763420605976853385774357697418449894104652046735779734677669018680432933624059408853326284740639109392233053342389195960569069566202746349153641453696430749999132950700115025234003106777149370658879011596854086411060874219028748605885558517591522395321123231232579501601898972440093832108716919756862096617733183415845679267991139114616701123953778417929916930717193790274749837098422824068741012051038640037983046753932382147282317565454671664801300768793694430167055070275951299085126885352089062312019955649667575107170837826362107616002401579635460776704341125564737914295775959648309216404972773848628125933229656907625995038302886255538317169337924801868811749892861008746544130479021262612988583357356742719026691837957684904679632144728954498295670099747590730217981068365005212070558558744902685673136382732320593815721634836073181130283246879360210529251096098576569651508379542472505459557072583570798110029857259905092345279851737459353958959703726494049826072413075880648944179326151228797515151844655011169776809096465961195500768229778226469652344292775819291943667068405515747014876424779499767730593888043944712370556561858655284986579205099431468380937973148315748751005045536560156062954196551826085444181826964396838339490827634285599260542244195854264803210211186277191862008381844687146045625381214304362275796994917830282710874607937479348761030424383608615570074137891399545074340726182767172872563492065541210540000066284816551233743739823809652254309792117371881290335324395448189741556417225305633062359732623799240505331966962601921123097975883616754034554851185793464423792022113576949953189703048012584291237289902846621760962660955217841477487112829826441947713130801935409461118171996068972241295343108326472271967383300068478559521603979288791720092727864863155378451369640011112024546667180911026515577860187625326195943499615787597199790305706214287199006162610572360211038368393048549145778005373320534930663780698959665818429438023342509395911914035860267296135823574457584415539273810125521073391543970837320689270615950001493649662940488848087362473527530674542562115794846656587398932126582283246312715041554903524759423633505621729924097404599544959942052102851318755012234822499672898532478913253256039048452521413719398290466276873195084034370576908476328473734475836813879407024406586658004415516049387216169509856664561401506740824617721031751356161715555321494596962939737278154653542509804302160776123308538591428129975100023840922878238299770145296257389914338151839304428008362150108542109642109335107388323548386245594925206148181302977485482791168099954969925751846564279442058318810745014241384667035830620360419585604023611958326070912663768166104896509850792838466804307575297160487869554321611605908751235096003666695315908794114151200651827188978646230335854559900061309693791235635570231108448186382382280772734894860422119216370413876342566751583967885068512269344061154570039940672582642895322335579285589678320519728914802888285336883139404323661643082291553740417501987590113424638981315960296445184179451524031167071454882170664419306254494615576134286643446978150265233907991685361045635276320431109168356109487112881032795281858868389672530931566811667804489424520746594630599937005548569883511540503476292103678277085792502722787333087287541916205629143364423875589869599884779438947912940745974544761553182297086278188367306429949218892640918780539778143743309617028566979951281109237579545932864395282640528463752506983235744354483955140932658712506470638769245418255466046804852225876755315220355065044902150899049011960513245255212011545640139455320633356621106586121971375346165500798871719672826153562528020728720985360963066963299518822562243803576175552404780617532637799045414628138046900703286700696372163732102227829712915972687536311355076714247165446576996433992409172689337340394436915873267236553237239270457147176650977457259508238487560538553993871871824011219353961080168762099626759976069224956307293794239773866851178923200381568321491243307508981514545536988344284577700521893090912856326047050430235209790727139478614721670637337007608979593094142180741799223927890972272851448432419117752362035546258033841972161517272875396419816069819855130345549481630982379952645530863865605729358973392009387125472544571437768834126844320650064384475358959992617394546499462807113714382256566143997356114860135615035237784276539222169391631095436053938264763672873883654583427351113286385504405671103095245527707545902883088093005613230098551505281398112215541538873615165511668685719027620342321024169522937102348120900493170987618529230104068266159777391876539966297254275663624480303744049921346250275801448857298269735504999933226066593239526883893111348498664049433010002586465490554407677725243345787405375780869155058958388643144601600354711832648864674390102035927472732020199347850454089715686617781315982202180582909152382202879716517002757758515374796531708962026751842890491849892490963054825594528927708578792778881699242969126441390469290659205891152029797768641231375727972158713346396630066134618186437491856654766784584266977399797741545949572678937044401636241025535501513510871070858424369331495295927154757883787964044513210418614121981510422949142642791321401710901967600765806196869194802370955528454041066331940550185027834553850534987800490235716185891120605340008505877550494610994678170537540954803808593852695306563642549200784576839249915352813989838980459138386112106569440442412188915310807396493871168593894262601902007894092563015722074431689626512474145509536733348433260760471708479776699391823446050244525249414522719900816098498568083234463025742382929006821759675855615266969358938318359511753858560284634238764323278574849462650146539874913350132886210173017678904441996959421765986228767127977343065361374756138838994599769010695306226366738905545515040856168047370093751942037673912862691856575731712268754542695465900702059015817175184559034499008113533595785837865417807005250705148647081327999367440624906696131384665261961310335229345581339953878986767166029187457748942325158139453476440520685704499643513463179737103583309122629273917840540245054989032572732146312123981337100015948135812880207732274171679099522473624007512835416868027208946434137327130155320438367544697527094247816830056416126299435609853891080998005260496621912186145204175488425368881463485971065629914423059962810982241434011633513716702862099820592362726068505132399915869115977735942539895125147031154464105117900382677599007581203237317643900379036220953047523269448893988526881949776647391780932193156526345829621459445898172294282978685105365173387307270667634251981031048245436297425602706473889673502597715098627496197875470445930292820976406087378358673314443470422936249203073764791745976261451944530617758241015548893918956348411577498331697837255123741808514637126611888817364340240826392473245865895776994858019951459698229166063299292988392013624620376476997065595733229010317227530934715367894194787579326824299234520054980856664264149236104626805032892993783373104041719846010719583711955483208510632894373756165972619033687383528588105144002579822201456595440470987852305202630698408786290175828049695846848825093927904662286221710968910645417114519354831706340460159982203179982647629735012350467559910951090013602894521430258182897444295369881602375094862588173570767608531816429777199529987038178603914947415077639820055919594453850818250324141040847397533397528123005143131286377139389480216043988432892434413193332426980100344419472183183350660011981150704520548206575108313624462797823203493615128094105333043764684033868030638617677825600799671657642483528463213675481999207139703454692254654421923250783926232398384558954789335978547867041132092727323387297555071868996940769024495724672386563643849161337383473274783625115110554903696839277063113941632509091317325047206012746585858981539378087261471428725517439541114893978778353982487131685008459884215460514726706915408354937219885089631300197835913336431775046731299629258065913841097683692437900759402662852400903145256936640508722159803238552896559818388052266877141320368925186743323412775305419057411106153463811222201111204304556365455437149746187374035048953229737218164090078677611813722749746656724201737561773630816879239183956324086345354221036879932639323903915829832498980879375917575256715437891771286801509479390199380841247530477366663704410745914208661201634758664369512992177659758070592144968967814806037236652810957523827707355240175968530335157076641268225744258720034388129549625564271376264828328586160207541631999715031849705427520246888405334460639303758034526577257746153299992107479108931631930415115184461684766492480707623614815424366747333477072335360587616388742780873563943461108846341814797932105326549833331061921688335513354124725007523181467139087221005661016294576842712495207206178006037935305465561992159200549517528467371171811666803556857977620111676716904563554810768668303726336049922560253969554310790873045329566595389617765966788434659669777633097625175014953198481424094299806474434120878760721756970548717206065074951779982322809283691627665410806900725131931358372138565106661397156008160781701213251582363648677725289428752759543716522914207761354603410733099178623850167265367179517790888724725591996615184077261681974721191421608622477507428987717421137203810215265512350657623298386632071574281901900793706058675308664190505840534146733287854856034263635753931049656656915876964346985941046122101046317815530547560001748438698082037193013477466440409099446416452452521475088678390043797506823859101749626413162587226993923919825934639357646719164223955396176053663276429256633235690331772984981153163928150489274796756299993353747205667571268252772140661523780210771998792927191447561119772113989511156388302884836575629198996299242537082947938827983498050350094006341073669764230429050780492378321481958880196102659576641389134510551479413031412478777769834823690307445696895225044822712466376682090839347981554467530280526632100745412536279828502007454128347571068106705446018841930881903361718024722141636357662301208083521885615239367662017644779675530548047580393903905475691264778875663239071758369602621109130661641318671136702900065482920020409254513839404191455327561408848932301064251473941874008145189410780743454580182103491725808114777851716514652076588819004032575822861093015192259666827126403747796650042816665684158737609831912500626062862384846200833583705583882236775296903075124217826225605842150260054117291922272309832131935532274098086927736099989414354555631525592973418248263132277843995222663594518030280682954978788461373819624449955575776728466868947853317195603225231330744201981026113125447914677128631920600582905869729272462865433518341426022269337800452769350471695697529957073878567549481547792876822270379954786039448516818061731241354758011958850541409454961721952652165560296453169192405428657869859005978287365653336208670976717759339521568019842796367492894915775587918400069063855769476804721889886272599488843709667645158331909123661676435897923091720171939065119653494312635402390084990433547666027866954722135355271261510351402755194917781652133827034911311586005249533079033086359058951047295030782406264678255827433558737131943857804081985755754971240578757852985673496101967539093517234332369375170822964247975326966617596300116060777009552873113984341764533836592704405136689179017834731258798966845166938733885123517405689822572286555636701907996810931361809984967422250031076927677339887486491507734084122117589983324471217361827042231375627483107883799136893036623342775226236341525520448533848913850336774502245481097296776512096241146075548468419848771650732062444102526064783540445288192046391683652054844815161748444932871711340626579475105703011238994861256977207121134233623980247852216634228948630529062032069662262704134429420281352896483953300737703351384115044696415228166088047466143521971712767354099248230471384187354630623827339924816344303595342440373228973892128665201484681995450228144512966601086926057947291673282890156790929496533086673925781305494114080267967271692855134860115798807506570338954524119817596463832428498649864662130594085558075140552256139125369702724442314567001079801911744105378549803435797267225710274283121348823865172973595118284009885855554376041951293243913849954769301282405182194922587864052935276575365648830253015238896232714137435457107648837866262623338410310651215666443910822242577776518400439691742882461166192207404263306590030521442076495289158451500835364570841212146530643571107373564341342570954904758836548797612275857523333090416003292571478476909176913758836225545836438366553968173003687872658720208690160162991632306941986262741577091527708747658788324383327102347598849682316479484171900649420876136231479960766095238099310209472218678760610309046398719506866068579362725499417018675499228547005653077491203391386125391319026726928806864248539876095588148792008482100261440295631592611243371971879722177788797514255286068663911264299072546608112307401074638330091463519782036986479214207193201237805194703911962389155681788174877886399731406488303446758298540709216476560197449569871741956112814869812650853023715823260944987750951906707795627797585831927388214887748340430618705839814744864827017203145395857336716083267842727756972190643876396487657728123696923392385587140451054461821345197453632396328167930569134894464047170225224724260692066477116074942937535707285544888469522996134249908604482513012376942110040888351012740247422404658523058537602884450650241870165650216283242791430404644251163160179143057386399099647245441526898593954040492068168424086215272731355161688121167901076238012415062443905851297264868669799353399614256025411520593914714171969338623546497550587119743532686165022811480561492478837597505439469725372798634390958535884729746089370259699199637537230826189357729404077192025597037929449554244299046264619013094915267749111719123333084211695310567610409949434377633458757796379312432165343758305247948355423314324446008314248314777674209358256479126096647226878939523189185938391016347425619387965499442650831185295918959507300557491527480666805639315490982298722399208231682878528156774705006649523982940699769010443580984374623491719832734038063234750177030493857573081219386299052083930727231060754062423760177219116849178246741381231609845615419900592539554685378707205031978671633681973282922968180312705669721356004785458726270509820983983350101421309143932808337160085664939755104597753526059428429886338993590006966395741115712681170973664129225326664850603287563640290285370244384039074483611716548268819691725622247715741514026748825604507554165581063265676756662368417369356912605004016720035565196897413472359701382372488321839251618630355825280612714978532991431443564952477337880103394835496661140870401781797131688109342868367328225395265054375515428228887679693104249082607558729489260114028544165907573458254496750669389658970496759855204999191426149156209955070853694567792832597665517386312743821770620634268383824511368158986773072400851208285523545217177974543658492311935342511452600503563395189811103065096438061076560603301350645555444029708894904088306307436557644675202909774185202251627262335018526401690533809048472704958811522307585306191443560571986211487706280869891452678510334206538919693161954304999250142804711257592008785373145572434162455362931503559724793346267472298376491994838044921509150452978452134935347229647352926858515347116815443212742550148899692113498733131819820492856156714665137461898016514980066535534845784834445316436198115969771315680522737211688340865194072247578276667218195584452407301796392587031244977067819920267237949382784310596907152038826233712754300043233289454854793848665480559261075555086868776298313308361034857293822535199290300819357575494266452027071367786692931097258988938009525268815113814050682200049777669567542790679406342230101122559761265137902121688976892449076742168461528812474848698960363227797008022225685064260994795789784041168510786073831441100922736772736725120080566581161957923577131915425455423350776295771334754266924042722763450568369390407618586121391538176978021556619083293868288192265910886902257333894964689802198544816450660500889050195117245522844860696409191927376719603204849203630202740332878737589205932743010233711567729264457438000795194077006776364025306513849987410270798352498957660252060395444981086798565654133197849421252814673812765628362175477312986756932002051430166311855351439248576060379942478405815231244243897960457076975764608172705533402785638048058728212885924140844505109829234102446505224957518613418995982276557270646352343472904452458165060618968669113784352148258069541570105741622591556057006002247377180446011788143071131457728980379558351517809539808650878085666429247598710862929347268119772361733141175477173344526901398282417989419696628951623051403699173197232323107877035534839373001294980560446978392096500150883548580583913889356102324430709365534583578045424007614318677992001762757167225502450422730813462336313316788848287150591816753317383767586819663426122987638879622663164726939598510126671595876936145850783886658270654570310035424637673756098039793107382355469765338776457199449119286447973544832954720514503166683472074772043901543103212059200289644484817268411711658695635448734365671393824901327480193202652784796678409804689327908904035223014480778687486341299215323119651732169876772317832535857654801604516279474830076741694257854145563314963308959917402267485356392926938247770402119920560553794909849188675793748827608307448485968699250757594288760107090499821746682081485592985704559185415154542310291859627376299753809391828776219090006758095301089553234605492531070679809359409239619297918704286184009286121641088360607444170089386001774823523116714436836896955846413682714443683763431547367624134795563715381957422839860449790435925109296826899738848041320943523058999910884185076056143619455209114154343004735823879542253019322134799615825159054649784200180149334525643526195432061091384258938157661180711827865299518349551414660562203092096913610574895535359064469527883115227941573379216391845140792561360412086707776772096931154547750872743271220396488917141833914477474878598363226929518038961222685034540024319500553396621259406515386280097589461217530787741589191477257184598340416369386401775810139225395763118080076904302084347886359390838853063288479119331458059198082962578596226479242294965497143836496972037396874589439855587714233291173944871478928413685541350789147525344353950050005184173600011063499729369887479710730677320942318938248858215457335952254072385058176103485249541367528013403277869405365055475994570415197031375621283863281450570849501391452937452353354271776639537304919010128519045473965787829238092848211989245601842822277555949268006952181727076462456624850491128973865795047331495352514887715425701303764903041473807598469083472325304368166906583692781937322707382103176688783055109562884695497787541063748587628763006434714461059948614846625266856543866451808638236383972258772557215565962754976166184828263322254691064271196329568206677018729546735626495452458505410241350711753269748308051619528407042674481871679893794489732960185860192579720144619444635702933272424395009318447715550352969086089181938577886921787884532576216896290695620988115538388398990138647632992763857285015844149576067083354860641680405005106391937698073042107217718639627689025445277481747601993871345997674523415184473047289045027528631440517042602058920202666958539642327009423457522740838789444028498071634446094956689644600677416726718164024161640894753063590833213574188322614689421223810040494120559680830066678317711082667781861310671968674334067624235388668038260308310433841429164953078374375842004186386333178925425211542525619804640964769911420958735967157567380348168851105441172889715851638811664049418584817583229958606274052357041399460470234928917056730041690169987506784032760954193575108593342503514983891746453600937751651023890702668999669774633302178433858261725542315677816515566844163335124036637946538279061242989865171542882121002337478772520910449076903338815897269673878909012550699924218886260685810304361922730644543069279646766918990413364429142818580491815516655223641185692807540444756741501539534615558883472725474892651953076258144077632778700251654026516650507937670607486872058269474053036375052925360658568842884188245918476607691178608025648889455559033049992723674433300262784430749498295635106435659912723676461467866323829527508713881325285593662145643838572323966352690677987391777064189769941420139768133205849897693084260770093087625860454317830585219358995809016122560733817520202135835349161003887510285559551723532656368278438305386277372358999237610969131784165669481602402285596134425424565880124282098524861140569937261562642000660311989705669918964172343448811907230068191700021721489777755470447188179271169720562743636186631340501733359751985657355030146612720375872357353448206816311566190439225236927543646537640142131198457392764041859671791307399657369037251764250238960491383132197312192541010012569031376808421284596127241874646598517847272960194906546150629572278170181767071293906557053756242110476824250615289820787603188175027726627791690487328271206815556205827367246002683068501781514047614169917862035339046051212232876100410911810865097078388175131126344544446795405231671364736149015503937053899010661580269212273667267975654227365844816047475898342478215724919070941899569783211650303669481324376825860230229549897922329481773176845857361156305858795235436637919058130572486037532427024438619131918012024398346330155014721067676364176889372752459726901508803193104070515716613667683867686487375316624801814967790024665496778643432421174812661958812266311142131127960483846849794921752969501106160674078936070247778996627089076863516488132265085908849134388995554277133108830054656859900191176990220325503090721139932981671714927253583575851640502032393391474164177256316360037030264670898687691602118465834263812528705097522212212106491225864203640707498189070630260171938573424386399939869089348209057093215458173582230411764236152301753955913528125395410321688288941546010410408607569270674597739023027920416960582071981600909617745658242412140093838057034327421788523960398934895074350841022776032120214446356666165028755596361088237644341419259527144680857489680734292076243027673195226632814165650785091622211914727244069811349702189067723782450051012754611821629841523151500054309033391016615344334244943504358919233438144592711201141537242473780411963971144430017833328198752454047045588031624345211818765213188150874866839316194826025526870264087715130320545844442414923328256975307811947489639319440295892096827802610870571215421486317657914993159381807099495628277365965351797519254271502066449220591512668693269563366596915399551291892133294225870647283510687560435331415484032190688476833048775958788531844037236855651050944705544005109767334269922738661903377886276326443258660807517942360913927784700604269882201210650957541544409066065473921313348252450467178477999358943305200401579097762080635826240714037391112132457516847952191998944281630470071408412974578050446509047705888531668147123233580931164324325834671852056949192989424666216147737935604889801764665945993466028612513451745266871674316927480646932142160471648858312107279410263781435400635104433032034620847130562238176617719755195107660205536010817000396205471939425145894594101394010675265799577295888225590143355440332680026126293517249867342856354138992482080090020766560829654189568861676892760292019850261252185989201593709018960354896223295821232245932841931836860975289833962077724157088718209153763223827532598277705862053377822169204712961436964244275756612164294124264748293969030012846257099378625900470675849214461176611424504110198493012387039158878603754072767391127043238097063596183553191157768856984041831646678338507055684427524216260072787229264437550677500663543094710045860296107813077781458476798634762118806530319239509711429739632176412320403657495503990163198873727287571577854291618117695050240932948214334086835340928120101011361745596444560954165750034796673301425654605765373182207015975411542823969256320234497250586129182681066791174916763652389141702491860299038370966563108052850148170312796996652261251048145318706710014019806785734713880249817938072154885127010115645122120835142813751793240398878300604548190853687174822176552085114656015921400904556301820279000783992420163288631522965511397017646674922523843676722576400382205558467548065028380681515295251609432340543404768696207744358784407877623854801712411560746639215098024176510077730208432650631372399991813156683146776197239518606986685586916445788045572594102755306502384615833684558357443104991406385103022995454932026165053051264329363906345816589599822125701456802108392517256286117733178391829109603030871762370632120230225830918276573636143772917120904337489422469495376615637423146954658527496785419156723613040195897548300895111308079031433387766533430127216214705979268576019963014723763716353684947376541145262104827586643702715621992131334545513518384257664842970904315521441068487777128471865987729857592836851252467772428322041818507340860988293593052592375122579950273059766872344004299753029603165204869807460009062174050577202614886689567299129136773044504851386906290698074600581558429101324137441474109085112501897765764587400140018341587300434012231503535567127868819669425931364632868677885474741794153088828167418619685609923901188064662394421000385426942457454651033513806293848180517701054071506990499485313436901454801853354396208338076901818958904086879724678295427885270176127111401931065870558824577460296124027088987180182144787726344198248021433071437316669951875785423045161367213468868622394953342773288572955615995551263231622374148477213342901915614185114892452252874165545430036777452936257274815402187462810854988251366758879462511966622430026047053156244470390351389985462951887131593489816608753020961069915432029871125477465930930332323355449496468814954787689734949747000054146870026317596534922500713356616168434471911497771572200422140090061710565528512926598906035894967781380367156942846250233754768024035205963894147468663309380444794873371018082046558461044477618442943025072926156312598103664195082191183085385401949688401074279223999157379777286446467165808110960845222434414276523437758931265393892358558577544784074484859566179190153921366028705050779746955506705093885990817297580536416650051221739337920158671991454082261572415834522070165920365442365750604494200456390369910713626383086809647106313817857900834717451797211714562375284584366093639558942014297969295760253899015019185104581388055442218748411382998125990121241277313894699080928559254141231218594042569983038411250865023767806285191621674314014941892073374038052208465146238753992769687143967810991582737021183108408927064931779809998534409139445087539451420113782416899047575037965274281444869606394922968093328534925440228686104154389755589407113560821237321194758543499170331397217184402369321004430403932474277877275491156048418860447851277860101819925812833284656237059300034617532854555420124411351253086223262098632924163523065248782415610574410356024582300835249534498208662376646842201704969907120246591968189541286151290935761363033842994065489011327476889606867547988276318055587529454710233638490678066451944747061038487387426275797493502081077593809959570377097256493917117001232332030996921073900345135758798821848823405056915043345798221757667376464997458791891635796904631813778866324969790494819032210497458815943192063208193342647836782421010059202981452536005780605359350789119951064982421000790328980770469855721268004143275169654938738665281096599275070529774153941029065320374593535696227221470669431959340988134134112503216409830896806092699755927298128152662400180175840227060695317066866464213071042009343814118832149002767354035060557327876486013068456836592658141215099585866222165019906344991366802633194382629167566259715130073203582305936388328072234482715010291725689780166722707456808411238226724173429927176935302691878867490116946653616906129364647761201822594017592271730928699544804638637151594579869552118601124647415634438517522200024416645245073886979232128113487914827145771529752804814486545789901857147025997496417254371099017867340750316796373256546105706212495395146891303528236354620637490811669927519962793417672654618204289533636739813091931845742121923814069355238448192514858592021216864238663240709812726410008215956804308603519508511021302520848400452962377875596002472450204871583844361698266392612669083760553649430451410015936556796772021165186499624779769407502175213672654206531867378475065686878794745935233184765409552032948999167632675409135925770835009299767554724901748179429019613909808559850118379061218472751173424456627303634744514127406349448092884583340229886227648271755981576395046770797087636831675060551719018346028877912302076441565468509945242097439044064910087717222961715392862325356661551675606818446743724161924506879114397244224573979112689863586055783655195921629826337710295461204302676909759257022278256825428807914142690664846307504689684556970009115094168282881350221812302337005036140754491201001675083166716759343150081525676636701518615619380952746303124253330988536242826969371828230167832652075717762295594344961007855681355924579044402397335137922212410830582692338049274564158117493027244681717569680411133713281138829903664352076515561327899853744095650780393269875691865643813351506186593327744717875811249822687568025221419023304792181835582051048259671549180235152073554982517997986500125908924484838158524824696520170613608234955386535687141232176020100087869049561568974989219797992050392547806168463036631958448323495482965158220524770922093599269385610628715300271576526743217841674912313628536357267414116635692315534782698763921364396682171715015588772621972666437883143982309522495651769279872413886640201327101003159685825196186353344835964940896668335958872021826627157197200305406641497820121922210807859656439657336797972272230939049232185483569606099801491774261026760001936399100461299709363388677018675227222420494224268324468108968573164273944848275026672530860093220282797341529788895057145095077406404509783916064765665226805405920345768531245503240654186787380585297701630444291369565161221934605512891538492531680676330117138707997880987929393631337005087487110679656758800689483420598755338985356885487678100461491271712453817591907925920754044232279513223339819263901165325374859215936156356753952247972649840962255936278879337922815313734531717053668687906256315557655816417358018608539155320194346797982486435672438538443027575525837368189996590337518084774022668855653048268231898083865708171627095339374663233559401176151041401581249295818230019944055482688128724246762978990786244277932180667025491671425920672061286603219742106683315637205392743882441591740213355387240378794195958399900522207625510883458687005499381022173955877774506580247561324511977537597147582716683452117661148714703677150852848817735564273457987961193586524856314605555274320295169538592459898706374483002321881191744547183566199866881423589215571991184603153603436300465274861958508509580770111885553656625036507594218054499275259697309884806936103242985603364879703103723969406334758244477166186995779205620761147985700295082356700043156653539871725041263468174646175185827440368318609378466441330921802591823628368981644832472125984213690176630888175433876788576363213281558857959441438406693217923302493847316116755545136453868168040264823926864845454211484114086551346467494814565714975315103295546496674249441270629645608790309292947596691527763090067497131365374148254828006084829069125272924018276076428635697456546481295638524616660550932651203617996100820170553921763183499557927650354763070616091596169650483472302259781283009533601905282718555089476413059631778323434643020129528960346907691039987751278807916853388647848722847862616758819904494842204184542472930453631773953901968999084497435724432443469444732474225729252119339873783368750198160968679438876712550294551705148905122918295173051325305137890491599376637470669077582800071352614610454221814226435469913196314692348302565815214310818211068625914249618230714652806090847182562832024111461330453084637768439206358295383848903467174296786899100483541477124458606894599646144820336557113490413458333024288647271758243546537700280019633442376203150760226541489759732044080326573989060603059060171028921129145159549583037958937668844515596366068937473501236251673804543866651017560134643701626505192280197682185942916095050845403955543337155365934441250032520475745050587432760359748244339530268124223272860070744775628142105908393392573442581224188449801748700078282679248996378298033448410105303783691936158727908865669394516988468134639995696130237135420737536890469551135824291429275759352500653803835136756990039434121433311058864845066853557223152485536612723938033489189718587926398758334637286907574979002022421318542164537496801027294636144081371638367942054543654753945622672098466558288820479787954046464118023186583439381645775668840417019309305710581013616770623339726459663702077770681277424499085388783127026974777403309831368102785555629836949660530518963156594295048098330138542739535473443790089691243644153021732743936491115798283246696458812131732312193747819352150476999252109714610908175447433659803887949163132177094668921941057920894622676267919583916394183375376554903239000172087492630066326101065176087987034098099507679218449678113493609626122430978317870960676507882304555555380998410170150158975204121159119041451866654722475848071432395095091678815505827747756560854364765791191519964246962102708162996656413992084128283418218546367064408094791738983779216109128587456623364051300314931581442873575613226565380900905860020904903751780624735194310543151655763077288408256360129062368270759500459621640142502211400259987483037393951793031398148867602051449704040056861053878187922297718515323601947204045169364372686495522259503089436172780811297234651545035776063775279229459556585363391272472746411622944338658356352178700965339866594820476186687011321983086626224496851553042109147697580589216702391809745116873852469390782690285004990935828718389720764156270900705781072160896692348198881833557875644504448385491858200918626307871566967465837835839085536727401909649480831411640961844390326019365910734827161628569128744522478440423610903633378799136391088723837753858481351374174598229705126247698929763194144232723643039653167021504460959333898952243075990424841137381691844104281121757451148814419588017307481579419025846543462790266382380022855537170745540681018436498411481739168367634947286983223209436571349436020365258131041277448300980415851451266705125746223273699558679735747171052618089392441878677815336246866007873987677128351311362738187489735600257773100766600813667295089290598504634143721175541128976722104606441395751230472093527188650133255103444005145791301809590168294765599131183569091316146755409269629154409517713153996595193330627971024299966529394085011219332364302923430710615889982854214252456867728342478398045005042153890576976555008305820687925491854386504336939116934889061019315632531796331977614030892472778693163178318049241321520480130438205745222746047138539022882989059325432780914491313313935259936259371046869219870761668904676485154790730225418242283466963256703888054800936293678821563325264456244180875121603499489620007650707865742839480622866052629722192432274473189570381717092036684774472474270708520346837012722227488334976171782243076203168123743287748969584462398765091445155905182243202360489053804145816566237357186066199512664561646757794189815695134549318564842238962287705907641106785758394308286701333388503955684572610272673605945034305807099138504367966013341423016712001152523752715111982115904270696035224606041949985809575597139003854411413995976901893833212705552117497708596103788785821933075863625390697745260176159503839061369614217312084750993886900361064994743719033137521599652787948992129071492265940448129556648530922886591840528360003958784011467105247381203379443077692103732229143898624557884543249823487634332838615444712073238394108510802063397837078437792773668196342951084491381055311627462813082100202705127730552991304393486276047813019046643892705337813136611641392964828602021909085868600220361212862443817524671473046099686051631679879809806449923550101158592916060059199808866513995145167773278341576221677162102913821768996884839635073212144446451713173425172107296222291832298853373212964041757250723811354914644024110016168898453536092267928759728164478569695343672761612420414949594762591802729812706950307687402511831082035516232907870705100614143938946434991248675124505532117056026257220535328722443406919536762565490370233483646138319111770900649082810976022874344145710574920078367817038769933786870740494067831581867859998979050779343479559174841345412111335047558599826674944388856487392032356438580777945906761288527340833937713765909041418997161576562470028361059825841983717330374030019197529129430059090416202229093188879048062591352925323091710433375515741532643830851331901566533743626112414023451434949796626145468845440705550647241354815268101079997913010227154593704580154642530555048828663192018588284427831059638006623802739165190096469423670002037981163753941378169088997075100063276800547194353874451944331700362580876076900117449056627835155056919909139745001908894840236203185830538226904802723801013932843148019390097344848742812739675945394248785153784943728907928715585801646939884472728130515894741282062929433199416067478281770799861546615086025092516352436352592790151681923266653981669963469496250250342049618308501373998280461505423188403557334696082265206102068389464534316297945327277742996543361497145750011079212751704116469469294259143046430420188670273067464320810692909442680061696954470466633276447354407058546693314677114961803344216574067657700270557348484079128151534831909031952159686685401708833450731160055375174996534599711961462937422136021890952312177925108884249332783516292278455054174381024182643074519655466201657202000005905783333480696106842635247973933590967059591131855490057449670970312329590292059975114782114520173302397214633586876813142881434634606159699224245413222469632773464554776608044549852011801044370642809088561274225154514717462616613880534487975532890551991121569985132134389853025396441177313429860425791850923751794677757614134985058878238070360745295960261203292508823030164011243771579123120069541086887718102358723769148997128264694322802485019622584920977700963827817997376397315268901976846648162706297678207381201440191609157542310903529221390268612251381799860446900261752879131009681493657134778006354214541192239035734955202764229465953396279337212360215238366300704447883912583620685274322998519644362630751703778375126870343826959462429336743644676793382654629681713258865762500927018233199196364326340178552344293138533545750169144772276146912373797133982998379936186589216273826921738112948101869333208968081262995986292506029199251160333711910423813215865138478451936143918870260967686474302212103386868777990712171185294905500183076104188693778250379436873693798869870868844880671492700060326261664592479778962025043525846856271539530206334739296938265748589141731354888506880377985656628101432519890254249411610317429179377361121221840993843040896019716577987611333953166538486573894703531806978853848420253414248432170747129405333089975373627914925808132061270796717592666819775426387698938330014961723096203541524805769255250052819943305819988762209751136080604470435183427262816520402546592449242034000992183326168427150815040724031368462202724856735224625476848133371093201122420593312967827433845658429137012232235399987282537846427892640379289877879240107243808699158730875688295001872978089088405887166012098368753668165530493047143051737920442453040276198085202843069745808931487873164495490494961375960854436525076765956876066010666575653405392854141534846184277879980297360270187445411404712589381411618311492578254565892287654433183543925532987232691051615261857365441139262380181437426914359133635701738290067795004574979573900526878004804563585661928617373900898978905672901786127321011753904157012380155240789298347014338441365287472547457183945398715335459226918670223955828933773645956225939096803690687273364704201081140366451055458505043773663990658671190964893106958220542122384025964475955960968184083360554165159618110636625717589335136562866456000020885150786682528309803519199551918550288149944555232449058231998057444582836259539994931308993929151064248792300945668157410780809061253307696713222929175910562016853708702169948107480086265485088664604160029150430412266999169347796875945016847449577863322023054276459273383231588983303481407724837425130881141812057271909677849243963953789133095946431394834370489965817504994991020759417837511311761779576679896387127272494126258686428867287042948856769825541517394860981099657464074005196516605682677688482665233304573287388141987813251553048749132839794668771945637121990723583115207684696278210936859269913678057006971389684310690933786787408467209587833483198147059554669538544904928700854692321691499565055400478295702230001310379248769587530216053216237052774777115802589527380447914757312085414663013489765740102557434524836449614943223349051282397249183613398021948454114472151692322311567385058407096611298789612382444853268665633492234712485726105396167677256854090936776833727184618220858374197169345824568129887007148041129025340752104817076282724290622163862900230581494071517293557493947835697624265136780915977120442410803269300468254902996422129443935071349254867078932880706310552395160008755222834417476656353238675795167896131207812587339001566903530150920384833992790509675741297585342258313151924085438052967732697989835618330507977381941387974467612810491347204843233887059907695951237169084872394211918844644808056019684550512874350246308376279976214994325049331606631678541031286789055790725883063909065465176398032062096599081785807521343545054961908366223466654504018474133592073635063330189694171592246963175151390761726078521840916393387384205617089022979588517672278150421643186189934507494907011377311746040529189426127837180041855439959237781105070068980224949584248956143879238530154280181613468559715603824831051115352015311475520861430815227333924243873375235822336541189497292133253570910734467555231521501772579526041029469525904346193542980278809332080353305464496305171083966700437287975503195600250176270272405947284631749679215883799318297805105047505768218288640322688230543424601704759862451966642353252495989136560062267106873455692373728796591934439002474223432517103596316532869673113238488251088824562755757294265965248366730170625442122014965740766520390232351253933523485487622197775089418847310740066773280878652549936556042513750484181013045792132206091677366750759661319333626475346928697743501767945584468215373655980773955466515170819185039284840900703214876071719136241158697412891530504366311512232910586365793313377895572197290948341379577655870677465867706995150778154209044440849390022527411117697201586575960818148254358888524000182224480255013336765893683803785652740066778140468908527655054372210061839604803077172792615879061476175273077122448128705791534332143162890280862880876217598700462217228385885998394680082084772515882572174556007968251035006654446346497805916870813767629100060121559021461512011955839450016867578210183009905470639341612307874429547293343456591889353201636085099447092111454654263441773631766649072282243855661920840022742052829067250922449755339272112702474796754128397303120704561989593507827247309621661724339588603012759168093230976404473047860498273474770081711733169532720844657030778104554492889372925234451687198036583341594560328392350586624658138705415912721972272558121675555361685650026903414265054531932726598872885163758108390504359478361737021055181753979257710744171122939875856647946719916837587753546262493901959593114488287018056012762930288197729676636681478168672876893657463041510269642904220514162262130276005156715536387960790435128137994495235480968832864900997162744793064483519590219729711338087293609983938599485228509775292059913539207171993838390703352831794846698138023836638881309022101686443880015072953766092232011422554716559465872640110816791848184015955767213101840135887130128736628937345286956209445105426447342750154058576166449930774275117313843201977476246105891832384420606096638345895484605369959987613263317262731811540087831511959324072688924185847913497355428874465809042819284590590860957748946129028518190348817042755681736461886008767520860018038765140506774149560151191974316808733035925206946739665106940781464907921714355238035340786899542028152094432775606420487868718651801188967509997171206418251857617990733669262570537220716253880812504763903067389728827146851445130567564735294956499902977666358171814030755603371471820211668481567233107071231513045645827544247113303546331246343386914314760667291424515514766705340598691378826079208029657191707979191334323113471249049743553711325630637876902666162875055583744212097366371375867204934576051537198906862573307736543409239293699090594959158927773778765899763649301344610951499659207669051521906774134674651026885253573259125305723462954476285312304762027736938269693057626736234302428789808081089104413122291524401618384522210655779764638515995600393955330786505754716749033176461210584658649418430727894209666419435307340289686166648238626231313095095229723567820980392164949997911118239720771699806479153798141068767587349043745502835209705606024096110038135640715826626637913819196697655218876191310445657628352094753565663301209203718873314767148354294838906468179301838495821562382650472114115955797669475021594975954655580857869676506521920847461363623515572747102903429803244810704015271107659693888087311082259263395727441183413546360622595154928409993598142502491978218386702243562293670427088044615972127326317452951900489642379911147057130317694552489115541284328040014457488529506646322093707785665783459240420582723978623859178494331664494111890246524459797993967441205008718658283608140657262599687723999900528510214846572253377832644471019165216474509059246819513743429360888784242442589152897704528169791635755866926167271294881062505695916525516315966001054636662703172335362032938618889764446364191293220556225290624845165448272546797485305446146987456776926436494634488847713835351997209443490505841685888067787510542290612149708428316878165478200141949703634887016697224302510302671946791360161810257779338250374149278078178316322754457728441332745738427493662735451435143881286241131668022064313071027286689405863154875405725367440636336907311421290191351598755570284997818918136212468208559605344923435006441902624731276846509028205340945646335201377036018349759005176459694570070645404680179719014386600879788627235699267971408637722408296083566307862512723629133917011569418741918329160591892584589385768684137817929531011907594759613212625511243058732359193395969558694318195624402658162579055676455527491124240897233297599528731411343749530918267843288376338343319025150449870311839064039975546130716695553458012031227544543129587478528375002874464341237314223639974341819796073752572891183739857249306556700822112186114193501176225488387085910619806668369525161759626073104626493714679995754227630668072120313130280832701089013484680044791572956199082683915513259618008014674973254073664315975219040421187745397493033567398425872066880541930580301167499607367749951562552186729146774016509986703485030619360965381736090425323513425416554634560189296199515422531484120788957441969287295595071328535797463384903200191189580726431569176659150510225146985953350401450472587718234814640394728316075254109104464158586287928052444381659886007640916665521212565563651138327809320897644978431646970224741810687368929037726006548804168600617452824515645813629818394191987727851449552526274167742859477528447893702496217990460248012656658692576232787156354726897151513945835344337314689806404169397086150124180820359785536585044761002781851223515695879925162970877287637732592784339009863617366988691805480537037405102187499187752557491128825196448036664759744400323325603568012609235389172187541741925103385657415876415465295933961944689079107613027180105941585645414224699542499689310151294655021467315435521449251744500147717584666295227486450927861708832329122158543096684940152879805663039820744046419952209886313540092689388437574465343226982603728720933518384351484053471384201796666581262621487262110129245684727609163063123280818781416942845653054579648545969685170550864739262591868624138725916660171870742237610617539649689197099456847666922872696623638555892286045080036233132089791425547488680820738530276428839391236750274879089593380088675503401350687964054657944746173747524045627635769587957517515109991831697432140578809926329545849013417411248928566559130900299410095162942269777723336540618768513479001364198588986566782581001390400413020426717559048607041735470137899643742343457405227144668856565861743901496293364473756153151809147916828261864273485912686191615403850568742496673871182611192464574147623266129597820941157976131599907852066620735036146854168398683752083074741520055338681167542293277792132821048388053800742746487932204853880117009006141965928178398028103607362846768613616151962529166844253994932367784898671896354804269340494676810323968840932302781695587891456288006203308034729008746631217325225177028586525105404054032877235865000358388685847448857746509623817972046104116270483037303005902975072963401574273659268504183935362800838362075530591081477960269936724670506857085640994828525699897235802088831280348199985157000668351854404986186694855178374399356529324674844080629118363074969906896928007534608859310684390343435968704412214905917663294515359667924729801899216974741539554688167605146913037223714154868444910886540886720268102831654864357222990263656110129291471300436037621669313596764253288559930926248384733495161895447020587219008067411939079646249772581466419558446333403506474125408664029038512864799895135886013600099463145232020475671295356172890963126250211294674814207753498486551072422499395279178482178992060514762624143996535901621654622564982060720468814633891666815433171883858670796099579752353172854369550993658254705259122612432176753441477471587459707940777873394970515923942794812646922147399020228233663463700252306869475415464984856847319412045569705451500973684528084984957997815890489850663624615893551734950452675784263437960596974746717557968903147699867967774275678211145977273816992701989047947194839878790249703671642803803869081745354185848895738910614572401205296191872077378835830202064060315816623447369818371300295788879400633295258893077594419529795606601717628588502278040920753957996756407900368384746595630479769355442634594556892346110072898017275392749682360755282705859958632873644489435253206327570745544465193278479821400863997779470597360574715196192536467106284709195007464159518957966484222009168272100180814496361103192256484719649616778540671366778533838436212552502973041524281297642694054539472001229357012372994064572578499334844098733851749393072066390956669828372945420397328410381948890391099346186399758499320217449741449976508944306715897586154819468232316104651824578333889693969916657617228421300659707297195880101280657545484671636182999286921148689960375800740162735071514118920726697680475595396162324052599961839507039656847515357711934627693445553968179060748338655686232806122817155942561466610608676607083503966923723043455147062248316679477042785200993840291182295186606385821640990345965631342848353776818014139807965319750594600241665729411221085402126636575477580151388066730429357648806441848887300900356879329565353628409456786297610223032463806582754441242708429771395461428469505574103226594335658459286897630571003643565112888277619063212720656225263293493238978163803447630155223925804118137917698059912827022179280987105035143074306695804262555930154420387839446433445426817272621792231674428101806999539672892531357923846755110710216328145956694449524320181343938459792247516811409324364997947487152207158977111817989940277815641656209914949988972132202864969788469606821078595462568144887588986472966694099416340237686942401840519510650126592281521363343533819798863853941684006928348216317024586745833215042837330904207350560225075834806157839215705549245871073774568191195701069001196052484464174750129047296951612066621320186613777102473718062091812251653062499219223912499041374082212085660371257345052567985725948332120423741318724424764726132871629017358061407872525049642614213537090927660852843416775546616868874576359871764639449681838201332465247612507977828383615261847311161120596660635943321985130859719281213984237534164800833143369629327096483347860995566493944607193554149165610067126396961989988353950368259208205139096202236685027100252668096607245901681577541964512779747505069241913368422872202538826623907381063235242959928795761428970502757693761572270579923291753505864651260494650577120695128742256219368925600930644547203629956325854622223302251776468483151630958299653421840616459896083633252819760977344051614442392406783662438108963263841067047982161081106526727124971799174391880606280652183951260230931172564166803753741215653835447384494879317871840000441846703813426284977826511347488632395335018309726696935456832938605115864316546740702254507211594945584698314528858224552217643714276265877380409511671215380295142921361320516923664855255593388838064069090760231020517915346706022616906389923381420188946544198379100192885136937402774565161013567867349161224124151698395188047621172507519078835266230939681466697791335599728596112158148790170375427775806548043497412037707524055077879024931350387576643001816829500550702710500203283886339944567294734523043630905033700391005800216241885300093885820187030499594618844412664498198809886172175638778208644240873978144201545682287108172723981480328190200609836130560169803929456023394414858770071007708029870638846813993866695145724686506090203125723219511734381470543415211981402197620507209525620285443028228518779165918456228942712520281979092771902022456130136898613326358653256861811356481865614827481664071892672153031385440528556300141689614840139643010192404949827427803163238999355649465377687292860428367911188605795497378324963277249574995050112677218043823617818890399503652998266187546461487503158336766189586634810165370650380592578951465805608588101232969598891177668710968190317329315145221028178111567880500388110667897361675485476944027011876597609098205645403027261049279035282523345151215326990554600753549932719590988282482924065444598687590776621383766184501604231951699649470769427738986318627353037649361461361260432096860400156702119599910671412003330949637212786626655943189082336955666369406185927464008212896179268114732661140659050717968360042356784277286290599569995981190224495688028612234499408212984317685936124183468650940177177320601643268296610229889837538356810930018864122243926877982547724718809468146007110437890200587257196194364617238727190482711980228410091940648924136081375936510206062220892861839984383832436626481956906747020362772717381492975328861764439374364582689771761164697822768983283223257085376413332402432270190252698626221899622510807526540534265224481255734961000962680480910667697722377161013082925114232378054332480086444045301348376304416532471494846679564072123160391594714264377604363228739341074215783466933049360162856263507846706617786612362228535766707445890529677009273156687969151479025735025750392982028574603485913251325688210224489148704892092369559037158241293414230811973063249940645111343217303980956073713854624336189806626612366299906179439801213390536514260292848722856520470219755075756646672161762218648660488337246757388938584400588084145693731301022197529786012310220769793645811773237219304325176797809018627163757298969267737592280475689807031733872342037094795258618269612257515886695917713486356489703668648592665729865083330328970402633672981158531501362378290386071989132459608130993816083830382943168904086600391469565090551520952544593403727004674754170451851076910337642845089071345824551749876934188207258553945722111281007438931188316650464146108983588718751047080870003768815854659895403980531402904361819237911350935798514590590671154217411877745948795902979567972935846049536890362600859099686773396740187171924868738948962598302977441879024078806805506596346875256413588177894668436434385915526054147792371728021446978563984156023534204096303421980145421752461207992433226212696699673476868368468939829482704760222041188937988970314639240635674426653171435186105060543765688886744757231009824617211107449656973502126645343572107429824502554582865263812971958624064057344881865348795145209504081833630337002560038772860130339489745832067778863617163297692917033394621253652899520437312362384006458640629673659592770166127281141271632284519541901805703393238301317552665777131162538721072777180948920529794188427250861803969081270919605342838040932999636339596266979098225143940228039932518288404485516791544964068127117539039529873020999246730810727427159930756532505160431702126793965896964076265001001980393061849879589824018645087287611107565947265129199588174250243447809957081868263062149714977635794771285380813282739478280087479774970312428799337833158737288765522570819674176894829946645883844537870405941837382916720315514290576219395783618011660371369781930466142839695456774971187316775468352854679750643619291693632357526235090432281829545021284332740384752425271488079894128056278738219862968839810262730142036124138424513521000609294044796206780259817984360227756348723547448206631243993915447856942271778687867288305088791103031331633965030153868191946501926971098260353992690188894130801763741273639331506726606949195945115571137017337028659345534463962369133422244534345718810136207878192130242374949194056273125125162279442140997769738801831281626414510551960704432202795719542655799955320974015500851855773419633879509667137394695120140120733628100961048798673317295777787233544589159720305256977759159294262765528469322883378864454085241817176251601640848294403106132964079650361365233948141381596921357494513708872893258977770079472070262161659939002985666022963966070993517570143269156476782622539404378895771966388452240355222126940503853476543993091773439804321237372759216719787356836824160561807287047290090647592943817754998566927400120992782315678673816332839707895504131562643562595632633835249728092420574017126828127764416577042697601940118789775891118956126746991950079279606325220927906051983042086008626556515023877299960914939666951576814545901178007883281127362299456705082074746717421027326855333092107011486575170544383720713926665650025042364461980666961375676657406432794221146744589317516903997747246321558462665398013245507532055342831678425379932974421142295017374690727051614542791990215088839219361591068107580148208860980352338597147604905638475970578115863111184752185777764649835565569760088155034857925263471367347945580380964944247602276186935062730533898713617886476351048417585808228985866274057718501013075902671022036063681459490921165464999671780229297641450310175822048580229707216375492324854314833834176591267066410130594024940166374874239706556562429556458127053866626566608337867595272088367031765254217874017968599592871949439731590737936350854504226001943714572026246232671353863735353667573788016183704546790195071380890493737241990891320437400655583399681573196399107347202072066377218636311489524030982088217596790259620502921090033347904165492055174186326964312313439532333070454637852541028008860982688598568102910959314344594212145051372694704616631318331472242594073016061199754540709701631751676116449460157213286576001106200667237905904477428438170065158560067842245298225285972966977497279318452100163250732115059192916089159749098978850202997957551849414089742420751631442810427444923529811991248297782158681679851535267992661941939526911302041653578593942056365354547635469496469887688316930116637727607702366025595483484018738623039819058558731295198891446926518769434825851691282967591484954091044757064787441379036512450771116801972748915444758650817883151512382323627888015343480379876232491761693461288383825319470772490785580266032771578404713817000260973394158433600248659358177991888830371189917645086253501749405272443073006700613452938713090011313687628468833178969986079501571998763115495389922366993012468749528993995978434038380735364207387248689340081375617116200796841970104038657498664984426095554281555251087387159638355700630895760135629674945130541543393413982491223833468768020322471703773280221865342140349216851417412383303144120713072719706291651725636670613119927944098552002745810156360819785767768060575702990239491578397306528853531903906254241346205849145470683070014851666417138941406638214616298279582051726091517592458083351733053728375937673278167542396411170677485117840879975433998068555084839436247644504259725556803507440164732968204914845622622064600867684864704025818290614373624948209299490750446741480360691595078574668428116026727413215178048547222623556770916264468917766799041114410772450778769844065543069404591068786550905031281928189748166910404687553644591713844599006849130991137268153040970542296200549484924796464756108940398725703582036599928907335975588853502191300123401635113706868440708781873245650053256521141679266479998970501865221306007018843380915561733439671765629044000633267935613240858342321392389890512770443250557117126617872074388853984964793480739388267190254856305628867098119656694666738462806969375555613021528562082695112571303724506961064133696287212207137347209039452491295717234556020366633397112056255765545278838974216019402236867108567238252870797027437843645409815677322998590015901640619852535860170457156649746116126664522726158623405157141464541188177017834298187729311045661320137706826056899627910231197361123388773472742804512815976248194641222789282392681519764712195630972949512583950358517183598476583595592361342948376760764318200471213533769210540979773916932490228381041464182262631467242745894020935698998674010615796033382911470219023897539053249003043091054055140263823672145455292029895694482070569246821557227562431395885813804172259555084497538479237993690799650542812846031112016492350911533416180739171224773249383103529289944757836025482624877626451690623367921201638566247559309127566295455282657028205855088426233372106597360550538354315891772971689988917901568948287692715576225407164519282184951209167701788291079336942973498942396207600908316947066147613976131303790723715890102616704078717859460514195442559407483196886602322683037387894683464010892639953357741610353907509820159745470673044421884177502374559026548971242603390061858221249850794381274620984819329748036484380364392749175523350786918468470514689816590165726198955462976989170038820246074657676408731820796939403233164674885828872319170969315249924006869800445949958210430722727154791687302467956029954570200173470590143884425436214479443984776566174187406978023847247284272928718243613817358236865552205795742715171955025632015976148966513498608259810087718896181520503245171197873612896059258279128481301029726445193692487180454900886408787829296904785952709973252620391973290628730410213569261119635676658047260243620191094592221475176671564474050834886201048686680981538968814153094561186421147870398656500224644192197721819034081128091955422464049554779959820273055072598356424376606698678002099651548111930257789226496564443340840770996291300880679541427332452813026766784429535084517931439674057128663328439106948965615579722080473705071883081725419100540911722877736853514252472566290231743103829926505789172520262457887437798912170917688645540341633870379092875579622558624635302873884300538840617941457389195250589951338325050794978071480096801150686157479495672203147512770904847024043198192822864915033836259840447329990291690230957848406343990320261322918370060493669479071143631950118756436667670749154546866190399315727950441039957440803121623240381156046808743507505972738764616136779208840246797499475262911817336317367009132191993941129313394002183391750315848186432976183794598942754860796023364706151913573247938411617513968752514282488469770375260052638240299602248601932896239770264257377174034879666769622785581871556590308742358432334760128665641144674106006460117058215100404499231559573014995705341687772115943942770013312435337975054586605647567371942676181532146568146827527818510164792378953441413805008093268167447922129237002782530000291621711120173674775513829324227844762364174279617563660946810020452566018751515735763331973815166782964047695716834724073680477679318483967722676649160566392385098723138332465922627642620454080740870094546612268734216448363777169182548586002100170029440737817988805882163673723587062009520896345881695170104284780949831251302001971418480341440845332915066326199204973768917490727650968336803848209475286272016324516801055864983910640109382102660014738815825845184556795990280721889594901245166236019015189979457162012317620922618711827169448484516669893730792152491536869248204316889794971858395418221887881960923535924211766771760386597661981845615203757743853770631605076041519804350040706361695076969819111035406539166489521059012303705179827126910218220889445734034228625300137819392284997190471333841758973996505511400460479273118462154383125353494160127079496694772801397369176993256545381144519881868425435375105011673919815618439692904814695559548636428605145934841403304622988647723816503376905807153791232997924830860100979846378531967891315596725310278589130577936101259252072165817955023755278393706654349141032694371295712848720607485425733763285568603707687978397964156069888011700071341576435570861132917126437865233738816331626248090435772037042841947764758074849799493249673115561240725292391707148913196382365622525833030624380258915661425076567138208641266434382313531830672563708996657489997095615385983006243909166121298453781612947666869255077311458254176516045468165684134559513916017525983391253596896323904487569745999136208194343227532251814582086330808912866389866370004194659176489479613457119062636462372893982777188728840384567402705808096023639729753319069873796392699675351970397753482402402673140203434566881763793578885350777597010048368637650370503648634621521206111213602411148852983898963854036887209110371614176810707725585725295639903841707743970402517896635865205996123127775524398814681404466336927511309331136474412783687832092163211656876419244751454581948042584870362930754733338693112904015087732603196427263230015512901977273599355146106180092567474417600692503220156245822547908089609932727982816097772304564020591790644223321581162960427206162477463629564591618043208214818824298357713268433570778956399292884036589176509638772439161768682581775746148246298976821175080779024128652379523103626811702911954631065190391397755737586588173302300528471458332341172656537007228529138107285501483929520416037376342561221672298718730717087171218416414311170265247105597790080215215041935831225793231826008007541166789379738873276719176141433780358065054888350800304092832266566442037227121300451630619156510033628938836155826072098196260105213993181481709281133300404547526281748230626949542607328971282543485351369894719870334759490427264520683228650536724705621110447983334900299356089805837546932468889374997692354343130509882477927930004212297895823583392054054130479006862973156460168987421398147136394788686912727951215149579697790776353714888123531764253116126342216811009461482597026034395753505595920929135676942045487407789410950414740130308531375969398728314137586130789547669053207893676600416594825196746028657878148752344746687326598564414029106809108114473689423514838637934642140816607681643288262861940768274662708792252195586964978713177653235079177710524350353251989920167727475652303134364218503978358179661290451549293754147229385852532336578559705547178791923969114383223548344774924493189838514294325499395396733025179025586103832651056395543557156964987049818025809907502853001818652336925371550172844586896938860295714770721233105807469996157284338480255884359370869429080275537847822145451667228043198214266024045733917240128600439240415022048519630980898654195402889910742200710262663101433010006935816997842318707405812793217654413042935302582711853663847954969555951209360317908960052012183928007635496806140566568834109367510359898534833577537499316380561917323108533877348755787844281555294070990386062490151719479965420845300998020975827125036272788875793450473307195149960973700990687575264714978458568536953369912647138255464152682778798660529956076995550849016893825142058230535406080037582624809133573727525214115338615978717681109180698135738117326930481953960654229474535943407251787068425972312612224612633259681245442932935709459854918926565704198924006247256988628478865608276252084864342042496109793567158411587943068155451938445661169188634935329521427075172979050606051280841803170924994785610722184825487098697748998912138167151349451428140469399379909401477043474753122518333379130287411383093017686352278404392064128896098675808978739266719727413123718547194335304023224173136380622449112466101150241892282821987368984264368977581617116716976691751682527443231776877264983072691938253973986070830727243962222264589651861303137825769854871519091643173390719132463171229404618192494050904927134482673385003862997691877328561707151965393128519031285954553167645209924477525904290003846915649093598225345870341338025109711343264136416679656434571527665771959110567246820635233028226818834913432554752558957019451466970449793698484401688040362109232652253612188476015201882574997988860105097583535844205557552723528694139811597370914605216962025916361657998950609573556258785379119976294824110184493784068740459824640417344422103340441601537351335826299128618378478164290385236265651150161948655305849665816414841890987217837099722494329099804755152033053226961691356213097900273370518436913703813296493706732029328532189893683095678370299035404225899845417824761298334698165503528433075552001381670115849106054575306087701788904242077374458001099720622170977903794910697293107024590794466766098967676314221827425095182048415104464409751849600654209478915831332154095217309444174588723453891870400253286124503034766923607496579793105154744551180654416223108423746138126672911090848244408494207998240700314119105703857655842100525052810573264972486342659830301735678338136942051012770684510019951952400593721423351452765515325263321543976609048866358545833306265191842097018930750939625241220499284410759554046770521412904012819180108944121411960180757132230403800456251965269200305339936534143415698560844256964244639289098978769331170488796289343557993073061701894260887466465341839715476527472724264015219342102349050450948157571497797497300482871800103256832330888971826760659749271066195120875479247691216657412066628373039964162027988854874495374639238495291480521526294504943924313698658729829877013731430419515148076336851781431037838279999179765633965212245667430877905351844645690386870236935053707107760832130189810311666792804006063790174533695795728325513431002015568429277013836774473468159460702924911416777529465546768083904854090716535005402358766887255008192418366950859325365337564781919226076555386369967767866194223014290001601204664645958133911658777069137758743064285758514647228328353191085929786270046755010904850066385800899427312719769769187728452210551145556158989494915535974363990416305487738597438042062433423590151711090777590130684446001740123994096995252183864193907838707460985148536233150761416978746357057499049450461939926777278628539866083451936639593179011118726576324633696273192137724488567328616585528319148222315964185007184800928542318781795463659532858370185277680974762274270685211431049222829293278027489446216811697584537990211472127100555471194170634369402446523637920873813433194857789453238102352119500703818700733957862550612782439410502790476540112366789419773666148317151281138226423613149200903045167367360426209524328278827223115128559669085835292543504379767596496261287789562998955173048059099106519833702157546984568011446516096650398085958391133111194247720961006899613025556211651290974259335073459845297404093692653615055614451486238629238497663074390998558501560299041466042153611630877486040775849633581668941536677716194282368447203723657520206573469814801873459706056499068100061729834023656116625756944148768383534212019016715404769592401238195178835960252184455135125537714504726569226475563746207724146228217923300407343875263382725577292364115838299719702363210439905462312686455526065784944445679554479555411629790669985194336588265463878041698008799654480747036370130214371247910943710997064993307930721688794912128370952930502178129516546214874726275829993804358527437951329380427633776795942282109367397354663282317445275405679724122774623813084779968745896804005144705819575487637695664213008633345129583817895899803301057699499028917892090838350358940656111770706396497470362741522316634445493190000148808807375417989639990370324586651571654795996525062519611433710242059684305180800202109692309444288500036238443828662948297148009714368447575765461910017849029180533832838470133955171608685338671808576288256581396159413033337793993744859356016449994888317918571479284022879458334629011391559314154931170904499817279885872499671629480707350079236517478414668224749278678534454109160214867448381355913134361905818175876118642268482638380425139370657058570563496605858091323215823176333161705778086976465051806564641971806417530042826988939074020632618423757315888822718815486672703781545592138435554144256816970500735700516853980600032724947412612748914900940778249479690070565079186055110440785000508381295295716938539633827774928454677702455935308450116069024938936793258235544019949876950107762831424211481609928822776448031274452883131049315449514176388075648347854701532114036958554260481112933929406002495944021625318060437164136259462147781661013231377235496225457959894084505633561512024112367601658695370717080158358060958494344958746151159907650025684757535715137552092011247884450045817555609714707546484856831340029999285489256728213585967035543226198709363195309228121013321419538901381903252159045502810549029550235379252734404103856737369491447757170645543995779606580677356316011396157722026060996774860484532846600080155278229855669435063112422534163885998746727953458667838425612898064850742208381720323561771670301733614602106448074292232626670841660969552172018126254343110140995589944218732057385136230478993303102784323842322021742348835284195744802269790943239665751365579424914830431518263052144951330109279148096224848373669498583657976121318144459931118988687263573521752512361654352297061616546624859522344138536448233839819703550246288810842985654617510089772779290803559180669703467265753493743020300754917136404345326695492491934675719799827250083097325397659229518831223780953275630722249749892832063978002897924529079354497527341404087241664148558120902231235225397428814235699763109070037867980417023085532217153433758573652781063785603159630608361296133938129766084083638058227862734462658900422948041565289851679776133171719144406973610802789486315097320774585388298164900449240123657887260239605298037860409586267965991638324309317635533315617566471795098306327424574746215535370744602255573787277702933178037829464553531806989749708382711873446828202053430293466175214586734387375900228828099076688235649406031966723995490851328048315456973091357131056443183936829925838617496200567194652292452349703565917773244635989123915245132292615025490034130558301728539494251098864247876210172875221336480744269013692812125546492991958629157445238717583548039121644551518403228710723296853042767503035619153153078663069143276409129092507652678193959938509871349409601370969499106163107333388116262327967892194888250823222383343974685912355436123951580045716716720475089953193991357188390751757639252735528109471341376940842206675217908426361672493991266164650281354018152568368596758485671919872633308260746485037477508665605752081773648921253538942446023067224735256274756918558853151539309275842984909979749884611717458196719518126711362280708316440996986851106749418655363906839930989564726725352401037920364450393111904333035671704426406663845991917035596802987941702160838028021349324727693882335416447352608587653289535906013432687701061012303345719597539582042402243924419138131091714812926483428949375322585199218869830160311564759254936781374840411547078319233406711235209418586544429707636434340703399237595741751096031036097389873202435807151882657404228487798604767818254104777136084066962120807917189660793128743761034523798267774877360982919161658799969161777625211277678580347879840334461346371695239014035576859002280028881624637527536740884579437339099727497445021790415989431045566571200011347462881213240032689386793923157441487868080322170528232091060069505950145052680722438666946718760674468064551881724603535875382997206306095240200183072271808555139931385022409653664766678090191180617727769828688916815344151638733402425374710967818800268270067861772855629910203194425705111546310817296074158417189082655996047789524236591158803550985761168035583344432946441938045421916384471497989603150032525813251886146633030672379427417575879531452151297388496744466826193145201605853524275699352398493919710408657727428947707983726574482293861213399938151510863070583477400384000321520124590708250550032801181162261215023258240493732634637438773882212774767771972471780445803469153749323058623820325801403218583567417732587309268599645456488395699428300323850606509252514179173179505127606189255730087025176099817167408991127543339141463781352471436945954673232135564702679086129696392692833294972091535908747666036973523717595227071172609374333546417395227615680853466026631543892886026325599254346159583577936073176603721640461419834641279466507026024437184150110450801045450568966940354462273648298489021419643178897251161421392244645063429352493506018770560985437622869548276490116487554555155159539851376316579171901149236929040659235104302121296652975150355484472403300620547397322529047261172069227129356898666498687723817263106615993251303108739530261256712721034974674943969966403271298757918143813187438135549038030265482206771099968743955243617308301143937834560535083893069742647945754063405402909707735565192093073234087792990182148443493282884319228754342573406587942428596233264225740605477522715995690653064918378013540698903026080961760875255565672410247153897481436907324304138285575164667325348155586104516681476370786645021533175615994893491863097817151742253959008489828068527201383891318321252169347173482469682085494920684268743563502440769241394743924373507966686903485390594129433717836954240870707721404484731018932525949606337066167855716998348112938928060638044844571016776760282984338334778984018450421454760067379611105915020418433597603650394814295066465282549067708807558590090980481085615163749880398240449726242294365193058456699003011593745235583351890075097581337185314719171729876037796684200355439713248380782110814906787268891253267493263274319963234630786238277721870072399041508674143885088298983065892678251503416443859588365315720345005166565807005108417460961718086605259346049967815952764527133510071601657619021977105075220146429019191797868282298215589067618006390703915015589716038951744417376539370668352571134279236312335973786256346605992581265938817796788782773693778921870472747132889570138535060178847665756312489143094621237065663116271793479428785822835792126958577299762926808323108383072147215565731669292180804101095183416692579673497103057541921404558730625284271270299891114772808237500887416602961100431463290613566839233101747447019328632504397756133047974067293119477052168345437835102223384044175806869091497691987554160082081376058732861192647090494611144670821940234852410345570917585894934593299210622827344058832309939727721414654809160438301629538483735867400920593190322443697547505448521109830390285028414887916353737872012387665503776040382874976738282705816174698154094236848618917969775913271860341319378747167019168165941546428962664322700461576177547811880758078083174675854274189787817695517349271081119559785085084280738266542240505621044557542998853624208728605492831532420196163850417511369378338367939597684844463668614055134129523749859430909468313188843102312452903617654280675905881367799378900429751715578356510293378709180748089510005926955774872497425571203925295697940529166374406134523814792155179323652357983831912752861841164971274505051601202330301824148218747780586694073132375667058340355469086135291737580567935036525464914761144484890558534270688435311542599298353434978373133666958467043728305595688644906945190466135520470385436896562763841158055960733030331333989747738975626425662732576047757613245626066901363117554347020632262771994805166183596603106345981900122478835911554030791802197983668430964338818138200222086881703289865179515710624429516858226482241150934380880953197264617200041319745267147491156524451721655767212909293001030619909100218087216231486783939765255633157583714145485635093947183025215394991203390153521955095415183435150864062948671010417917412388746834902223500566506820354347446628727520236364052135499042625379253847655744785141188336820163917144839543060333402815149914667188608627591630283129049275176116503193243373426547312190625319016319321555095512911770561184868024679937301439862300633960812049633163323053720419931688092833300928909939782294180851729824007889140777962177385766610718519029105980153833582746463893748663023604430558059589169641402930389977611516494379584349909388072373887064256141983573256630434193377649236854456596467857419149299536942590838395817906998950258743372109252001990315045066528438236170050750720791247244710932938843743320861871220210536885398990955792734078119145139316582526485871337422454163563444273203426628734336755020406417414791229761152052190696889196834768958483961742952611759038240259221537851819062960636809970214151598321428863476252232319957282119841837467910731629915448996492905710131883516577995367696140780811970642719177788799972035995659736750668915618864186158610273963475408328349648057549373871988772312495587316368509054409534145905348902736205212194099739200556941513715169533479524744419918959994619638060284858942721812076080164869145618859036280594587853301467980705213556831466557328289104269002373232327761537523695998936677390599472088586258915696880164785352563003044732279842465072528091874774907375612375253630681761236473308441614609322761889488889901321519434589085302865575717207009572148209705369967651483682275503190975890989775133028514097781609543735196957223125993385843963805839965394859693229993946555376152848003814385390735303675670001867827826967962458389669060029955663621354064553344775437997154915160639273207328518272000449620061215474531784661428602621569393458666131093604480451684765136648407491914119945058672374896355579744206964969285199347477111775009725072114105056427440064045064827946127701690986571723713618364590169375769521973970991879353360241036585927552071124477176485069909138901917955767422124562308684274597790931130908632231040578442108564211917519024357803578652433923291364818062905579570564747569296385253901522902486886727273105129794991118921179702388828516748451673186830831413758794813620346965162569342698593709952721080125676831429781155688263541221667194040707818371221091079261665105015100357076105315196467918427737860181212718784768630717748792273444748981696311963881420534606577985177399148105980387361150265928726762796928453239841293077978214038679262208134799796628110893275699645764370049866058676396356737381752990552171581507955146222306181722148621217716932313262332662723221947628749871074354305934314569032276330966208214588077411873624057006240873030862868591607295015108092754621902362548541452942628586021456293013996150600305906817493683175471315023825384299830731427340512890928727792283131555781538516455157164642829054571084592249125153139280935186485765371810872409116777107350231849273581275875213050102576098687911798903165458181006816505698473596726107586891762054939225783743059442709451797518992788249295591316601785776654883353630432644848573922694176912509487314073856777527509631963032116621803735991416975910130347816088367951952340763543669819410225514949645609570874386777871839421283727444158256704420018688822179807358762544253450011596001661589429938426747460826724085738960527282211551883145534778577506878411678728665114985770849526115189955775159250182554930318240560684866183423757117333621938205485663897830263472262674845352494399982297155865434400831348745718283022474376052846510185129643848832354335270733835125872708356709660153189667551542174527036524962921520837655636422587463724227830575927281635745565751943752043277335639070651020246232494838081770011512244725299388389940200134507464448770024502453054476709900463313881536838531440543497089223843724326895874724964421829745283832292966618488783849341123222914009195471756840126862736608013215549103759481162292427259070537118332787531454993205511973687627743543210927353810412368520605874243935131882567108626265776511714247117678246252228380447674476802417626910745146481222837044613869817661639896979394747692231745655488476632035319094268425760035563359103824037635534465096657269491945546294753684873874593380391963588654603689573858923863910910466477046645861040134437708183836137978998932505228585295949499728889687228347204990328510822268580074663350755017979004638724525272687824800976913457506966374415293223740378094405717258905038763359191084045066045879131987830194517236914245271701149584285673844280833579674238691569688104588593454349908689797509068952352673295011375440580565964187013940938949211076395565968818908797988591712219165649745081451626570499605600351868786092218175609506108104766765981296661533602174843411194992285859336034702729861335533520263035217906603804126393159137297317230077101915120071912646870168563228278066597326578362915175366516663743249125009844543693621692192568740387290523440109972309002682350894439141729217929798559136153427877987497147871075119756740906157571495739953710099796248401383096396323807704597488456227600542275117145182512667514071978241134245955524761841847310304306319468539065725405683328302940657793147184875686528175626290695813669500429896866804461325056112018141176222152528740246294055877003588085316050821592570673257351611775775211201950947675155450463895078077281258261342603926531074205566624757330803248924890021178892439433569408127585603513668688588670464306370815153733643179699034549436848554024930262678253267865488972763075279275931154544315081544174842639665367208689027269539444560506145764201402225866720495624662357840652001451797649969823555643099730067224239580828416193803953285535172034246188621975561105313045491982715386546933367721219603851081323206270969577504958332689876307702954384401753506523681842156818154016142939269510748744422196993239954235767426108817317867200026013800795687093819231448806864466581087340939111245028953803286844016684158763297748733448791158041305785028810511129891781794306756211507501535025067841412281667877107216155153698223525710477118261612561435668417157184097069424892415115053242869808474731343450948668289775263535216935562860542526877634655543102464421733016655588047924014728745760161616048845424616633083771114051818940968488887425245078058871864206737031219872053039114824377486022215932294846761019715125862862427011039916747494528311098023214675273661199567996511638951988659080181843219985605052193326820185603525858242575368944156489812541650612557172265336743345032790108088363465204708149299782015034138384853098567398755363668095472189078490344112311990575007415930016354802980205410991450400414918623323820045377152556966231553760389102417824413596098052479997785651622637850071965258761945515196656839136414692219505544995003664089357221616663227781612679571912782527195712775430961100877999531325258239048638244148707197735273144312160730624038941215843305074123278906685267128408463985292427138188966482630333381946174625672521000307086447026200254732959597450149254551534038344202153464207274940543297831358051776338250115919512096804935555994356011669587421299736838072697766997882075412586886824868144801272498623225257501384196731932271118511515003746359551400212880546721766238651771911249067833260126130310038722911215025965106332948496296550781357225422800631177299472813404602180147567550123018716087752573149332617362574076593717405252537250872136334734491490750810235823633654271495426045681125030473556780472007224005914860970293769350098529393067686264540811597763586111272062224916096711820633014557116316658108045007849397362686264805543560687851654849647169782285463077509645612015534940666942495105666363427945121960454736981287943414469028435711008888422396342771385874919493315371469128737460799416367995440439923011352960008067340199349888401420076024343083812236808730550690361642368368176034367831166481412620682507474271657639450102995952303549542680857055668419207385566927804989504124816996850477965641065790808317906778490718539535008402267630927816444186790969845433611741051030888749746153033064419117179220719161067888645836473807659894328167106043984694529480302687047428352339357833133552378471589297517683243609407706365313688066050631747033683397796459692928561769163504350459787845823175211932601241135101719752407560629824190400709793627098430502142142510014801985540677050723247685645788201198157273550856094490254562779503972746220972167367839249148078906154400520550288045277732969560316905484802300176589144793124333427998598957735102090385471357311906753937456528843118073868971952492243965177384124969495949799884178019602350426857420333354933235475975859493184438070264487661181809101673443331024196475314769066383159901227514869995680761999499760381536166613203392662697458924273542351374614444534610926881532603473894972865463499555912050222017759306448067084237918079996666434743268277792426953677742718571645886313184183345931152398506760441956145616058199899386117935700114516082552517643170579256587069595974813214315528494433348458094240506850058049302067419133107920704961132821276940827825870079454291875070126568949038745539788205565782370414687769944823608727857947005584052985270130710125817790858387969705096026670399439672263037384111062257008006982596716595300492386067971744510804130522550214120865006609606014688352553482221646440956629437629403651329791940026375941754188198439605021095920530633096605205342861126301682902210066725370650723487008337636032878046448894312699251714838190014305982223887513546675288131318594017866925013111456529759283393112901717495663384529371277567945991025610381898599655868421493565811326072982476486414183414763914708441161634627312074505643272377931414021255819692653356162688726648089095491913732516706771950432580960866610295959373324685704274552796037157865594714991728002853651890571365393953238485941620893647508730493688872549884330286866703055032716370177259286085271912481340610781007693165092802582885918775794280226799904176715528940023401761454498647774273103515328324445011035534043736594220929100549528644854130712746056829389038388657041093949967581628194913388939982976270900010376091821194714915168261472565724365022827062590648345500370720969497069249860190508337308482457070312581218697692188627533720211648744938523225512255223861497965770969308280832267977450136212316545382298452030565831905761213693757614652432811212657717390635839237067491269932656253427940268621116140920321211113379917519676971728387197560934066971439853030473650431987342819797056736828934309693005206611560027839540098649362510404141271119355761887944441321157403562366736452567958925505110258889428240200559666735207518709882803036148419995329945623278645653516904250057271253501936897431530246836885489538292299054758188521043068036110910003568642352172812884307134090145798997526832933114346817236929461540344304388195617404763257561881074637973180946035734026676480074368933318420362309358491031626616304098081777485889083307984523330303256129419771080128427172146725739058151603847826238478013473633625591797899977452595914287407982895474277658995748304135045862546881032112856615341799019851969062007919264072022286666396552645564693522434990230704383734184134653080664076859286906100745639056825565390277362602238739110978348937963130569238925052948250281296433970594311115234631195301455975460004872881469932464512690596491786940861051325822303139870982689395211264097093509121474458703027002243689914039451803593856621935200841013002589574980191969824901318553908095441999659217291809381405913250237097412320269200926459832779202253807917615856983828265752764084067201339443177993174562131936272406060148006802159449073339749829853050708811601264427737239551496054455333676395534342240654483201719586649699396717982322141503930974059232178210190279069306475203926079275173250997917318386155776751066546863655802173435446043226914499853600424948043736942132422667401677189968795508299556810367462202145670074062798570959169122034653786714916817658186000816740354836911563028163860228391920205769487395815555061842953511278051502267616190248674653461229097790094511536948919656251476753009413044000530840148356921768114924369679150286220393431352159545454367925740196805698492667486065116335667613902730127025524104684093963159931741844387721724462806221121414171954011391195152868618768665140720942408668137632072208494280913243981559702456523233313697684930100267276340376812251195843924462931989264543722388506636944899276243852189048841040808325388487309489296283019817759762698050559575597463175878410026624796740961622028857049061593715449184809742703717096876693375835169007482164765170267152679986884504631653134165620955430671547686924725797012632308472079077247089445774410355589083490775081990426667613503507965206192207498755833894864192722378525571386466041954280522035424873155569433012368263941631948663169757361112295861566958354288337616347865594332942541772045839625816478312457644918509265313634490684192717913094728823000355870042112500466284998710591373432197810366637092072369098965875849419595479707534873364089229710675087884139336846990307091511604355800388384165321920424766493082174926185465908082718995612698582329544415173265102547388474460442406654125965410488192588732672918564754773290469365817178509956674216146013010693773621181585362631584413765661596802571074536031746008847069785347236545184431677351717312799491731940473671770049060499634307532921444943114622905865984402628963787445464607672770048536208708159697636280336186898914846364759273011951307090626219545957186585551926661446612467899745526554703436038746546955917272654647162185649277134181288067487320588117910644162712009797894430688398903658421337475057322538881665156810095862564105763982499801976561344915720729144360727218591185151126827162353222690765610409039975499715371165449284307366315852995255861931313326711948353133690056035602679797221900185698929759267733952541743104436403730293791999971206476110020968685296397575222236313236628290046791752800654424835804235614778525780569858413694790728653165650155209969969781009955109895846281953924485847785410173188129208367185854207247098834773165855948203115737884047494818749445601149049083343824051276856011389083499030121351509174679068319143740251871663423423213380152473398827342554805982729472033779596821771770649483904389018552949551342781823135061152164473163979673311335738553074117944893610546885690098891785796612630684473306539509762895615398416386025391320766276232346238273174789099703001531647366984587510973193484456741814271979444947716673968450402009951861995896847765340544278940243657740713829035498892576345570023789945055108025355332729574648739321400184304157120676044457752003267685009763136291437533050869025213042602927692895965936604512244939179851445595225739991601864229202754658981026741295580069291207722800256257775069128229910780006382679177289472928028806164063101778096630793428138705050692655464750220381733508367361701598338649842142831015120009874726377828910461455963675967387756144088639787656329166552927216765788125204412111662479326241698051656150306284474024921556218298774631355285878358005976479943206214225891930438000044280261439290274188015611973893853485372898218942264404752436323596628574731568347213102795588730747454417900457055634049552073772513720719357000990719798492211065628475741915008538240482065417102165336290749546033439474693976791363799737829938107338267551962869771380744035524756896594087776531461360590739292329836080378294968102519787044565014750327405640383479264038641528845758227056845969005159566957890439512906363110162862921230693394688213907715107395023894639950711179771548582730534118572718955063659662869482707927818726057471355241131101688480215517574891056626378598149892328059591379663156349339400433587844581691925388610816710650086641760801651494386288412036080318947995476591039023025504512834763999225408697461658100524037231839308764831675762848974130918151414219304650629288681017533757118848527843607094952064118584362621470714985918407969433013542766055018917643133319765437423816568021043259887240262705283773791487215818981132922691954063394474947704494781222600853438356719398096669640411773189037368633513003058375450462262118240865286370494961582477703333753684863410079064252075804301240778638338626124801748159809771890035451210059262201184066769526527513832727594566738546298790402778006485107252489724637455509169221982002074706532298494662176484186285133330335079226364361615248478990009364064349597247657535728818729167367354840700998206139633018724150444309995533430696135918590777248389919873173473944889963832957613953418270833457574259374140232066756162836070550173220501795544417958590133208634265299150821974448946864029043997725524225485915221168014304226494565855184923910356872488511062717853818087545203038063993316273683130853280113877058608438013772279767783452660899632148464810211246160300948626214324949498139190274585976649157146457754394818471568263307621746946839590744776824860032788543760457736747408503777900690521394430176043074199302975493658253474929601881232085488837092299184843679641549403054038387542861166858213041494403485108340043345607936961962207945323984732228964996426585420060513075173599481541586368451304233625701542003926871987173570477992847617004261815678266099657691381471867978805232267452095982275572773533699108341410933594202834241498990775341285459097082881053890246770753280593072839568865001183984286098534751932162073441570462723265400896104173372240797027124238632480774681382903732610723523762191977459168021986068626268889183502167660536621390949324438633565765655412708066141207683563262943453683576801123511723443304570127966424572916474180562053240724722633536438428603957703286822258822789142817757969758034551902472454611429754551841589706538629603902066380968037921287651321681926015679019867327739579093790285366875497211560764300010047808134632709638447418202184831966347981639383827333307881595217215440834757322564297185115428812169507765322409971059846924712155527623943139881264950448146889030862250640603237660098850709497245330660618166349861946661270458361516492195491719522281755486068385496551612927909911857459339059379582754871365456388374613943641502415337151325366616255813060599181652597500258514002172685810364932035626710645852280572923004083752014469439796033094087750023232483089135609066778161745640222675244603365862537814267918946725597187898081209624751371476359348403498229802211739211165337904951812667849915650471204425969474928602651622692154448003802397123267145085885231623271586647957359904428595620270416583473213161260894439875848213589465342558453254531456305244984680003912285247860085476843372538323659494626435536095570728426425926625038332652868696204566348141473442946719576799181235299796481378050701066753095456260893315814424283392174800168835475885579149338005241751542936401100460352238922471564909609308223608038163818869433930782912969074703932712501588799069747092967961542604544473760179836439167968245129066226495524880253059235843777298006928754313629637810725663724515688121459189977692331030793678419082830678262867629147020464767798778744805065951850957771103301899972363943732596999495291370384410076016381833777000764017484529226354673359724503564825128068394629325186435085974443192418249916332977584854374097067600599202528131608870146639677646102200615911537382652318731606593539610402596785836729020213342172004341165140934583107966938697765511866853640347976987654308831595220121170039522570421507787492763120775322953298956956427519896346108463335127174295791223657132717173290096710722141377608305899651944948193889764724648258554008708968372325151002791551801953066722189346575120480064508082097646075193320050553146060734803202822874916849136669310999364890184688625004340406404442628699461279608171228806595204919096488764639245730572163275094550198162847908785002537581452307698273674825508411535664746462170829495351595952123777695217540134553106069155181591609900454213382852484220108342937194406624871352998032488460342726640737405124228248816250442934550277830293343958384834685872136522091742661215356474499327545423562960744103006469568057155079305998070723386620401268635185846998145109559221227543670352166053856089823159536030306229814865191251362426418592474988357600933860674783876859579376446421946560766123549995473452103290088399486336367447558886396367098919775621766523475554553390439518883898488365811662127765639652381035286461312224108093658249751861083131812090520569729082183137335482246974246574394664829828325594219628017214885355486857237300755529356418427907416626123694669994108711289992512437002039494245349194797450307123198648070976910608751479887579687579043604141691918638562960339132005875017207273850365941467241939140829908242331156224198552846259565793547201588931171784176265386301897799492261318857020919226833634844117654175465300281228069264694842544003778897083626027578631191750374796341980484686266134873855442518814578083414946490981554750849405369686796504283389670245459950467758653561689665186539504868802275230317142543341581575066837598502782888423781299642305148970691895580909398678655235049057797201794882975775116874847605669391269644426835877149590887148886071235269541241385454082596840597076639063766682616326360323793596189959998067074974589136259823751083739038474133612341027034641001481205660830841706855404056094022064417297295785070917959776480713495780435469785242716550924897466984447978502995329195733143244102897571653245765486248364441381638853542498206297701372129255338933819375322308494069668360534918116439076732483371915804487627636481698362421665979599428772897753405872797724274992102381307466131833987133402302891317790879030815996009470367124429026887691797090824409652344866542766698961199300496714800854911512927202890029100592719846104874751425921075480222915988126636749879728886997786404227141165791707886544285693864304218483607995579080395390355411904904639327290611961608516469164558716389442270346749564615860288918381573867924299497902923130669532862347204658469875320160212921183485982080854719155756958118201562178025872073043234597860307263599206372800441167250466299103559404065782712774555681424989686007313302078795091534091662672411958801052351784244123857678553739199734817227363721336716166667752103506499343062555398177531792084917938908396159076372761911327149301291826271238584621174914744315018288180860482074036528940661299098902946577890839243334824315567408608962623657930148915498734263417043400296221714175457471694766646382828860015392325355879042876548912561054211058441420242750344748586831204637530542775522731396258393385913122814970865550924497501765642305025126646722888636293938620864876697179244364365441446371987221825190926582144517421371802949755006238018132791189350200877757155464825171769081098393819870899885502881352387619053992543141316380493228806176347539383731690121926680486798790380879555168780576887135946397631037703265320995100804820452769976377102147705444501380350568877970596119960421401903235032524890757283886972200642671978078347940079216806729811611213673756400244570067892594985861873586501885937945197526880562022658376176972585398662283974931426638903116798339791744416622757184686774826301057576298152623458954188128029192377259967508062778435474710623772772191526949520507292177254488016326102889481591578206435646162718442382217471072875670099430549085157428027750085028510363742148340137605233171245104829111661528678470814427591957887682305961858113525713292546328105534655728855594400802265214535688489630514942014396714038982531240972651363153536886950293987933585520788818046085435902749977882984107376344664279304565745506685068625601170988742505749307925937070062019489275108322663145275779049319170024544855241056993889275591683807312282480625917167156142228612123962829390314784912416786113640508246985344810883419853419990960913512375878858039421772997839943841327883265425206093127918179583199452507599159038256646394676367168000109058444665904656407701580817348508022643494611661716709231795260651514221625439183859603344963889282758047258195112628434576406193479900301778392420378481766946670366959644758207109165104680511809779762214317814470679880876550040087043712593734424666471298407537124657262479909389241884366235352969653308714026458148203346153945137383157002450919580094264881765604433659475526241420736274637071035181268003408195358754588372962168704082461644123751269516283774649149944964942795106066824716562443985537858706557615706567079152614002566572277502806634257659425475763595523799400168573388784035903007037702246659483099230942745906296967197633845378817470707303891620714019796389770360890069776451961781570338761966583994061949495939987187513551434397099867802909065293574410873390722854134562566191505290491205736441603126951618793375935410985194256557976596605354546827411252108571554330575696377489276007090142967747633498933104348308603064538428709432543812033229806058999080783959608270115261598518792239923555254583244062974988055944033132985201891048620574166867758030819758731702912666020504787352806181868949861626644817469578012744398689466069787155596801050935404776499106222095665391631585627056274496133238054353861200298966011169937043962935347344883239567056846073333666177531926246425274329051919526790449023006000154677569033965139037557095941349393123867536045228457193735629281399503130200495290132652636878042403142170012931852870780544120143503305368495518823101789410162354760751034741573724826884941097145304782452140127787106026304149514848912575984050939454322756422667287465522141827286064958296953338087931182974303047953460301271321309843618440698430642549632585393787809940144027610934757234512710216145422205699329011966604532295484904840625122107027723971448536609196326419279305856987284802634736980235525111772316755244877329402190003061631601769911925771502130626534817138752289990353943973900623057170554372145014877960545914572820939637373442335002027550905917640190268508136956004158329335332532821297522494447164992030396087486329925544453878495358655417446368969260339188286715090653466559397663523361968281075278790272496039361283976291652297323375171888703357819075096536566124460293297012072095969302704079584873668147610130243900709670269176395186796493782132832474162333054570324267595187590755152058109096605570626281042863414219487505529667124432163700789111650154101447832114528426181316503709877235346626430336750513792449729334318270512118244724143044263713744228002513584438528738126110882672546288395212747052686072050011590591686757716084653962796346343204463884487614401736670701010853982670555860592145123021576788886670615636602376256965779620526760410133515732473245648259693609396990454585938479341355780854658050603685647658269821624366800917387220420468136756640746159645923178708840565858524358966546398436619412935205413020097377569953674411112994614849215099560665447971010995808211623916044283492877203242724891814010948920281287310291880998257789443966905676550013157920387000433730887180724594030737923507143872632624477740512444142577358280386505873543876477684026332045977126902854026853919470859668483074415795834236822501558950721357047237110935568299520166536313234864278455788881932465331117641824474411308686449132363351472436484243068687604950233020877488046698851333468857777723652182731965174559171212839960259048006936464565157033486341035716247992151746960960621348545205933105098604544355939358340366769181713436369902459585467852158321408462433110145067916004217182322075629946513397239628988685447615655182811491555155471662588511718319609015378836114703945360979899256415643059875551248857094292631428171229764412527402754135230909929899669761615072423034985648691597918307181327088657928981444266247133327596220621324115774737732475420623004498565851340622981909364145942420524247773928130135175866224443684609879652712252184463484026593896887966050047331948247420424386534392046297622218922165828033049346210400796419956065189519742599925905989491514702662161824915045886198141352614005741556460525786281882410020587095271918943050831887869148517390169771006625489382837672224947198369820484287677712547008939600596063848121128882051739598592461747124680271592719926564045289634080797808426418555765149832473226885192272484372386138419803517425358842210316714883646850837725930906036592349012393312751156844975229750599195949258235021734436597150007688811874480124040086119598943804752421394717095811814258568414012916253384531493349232754445174606367831542412303597305690800352280525412861478167300082656002246447623400090692630318400091441103603821628756080624292678458509392266388027265399934969780053211257699760311449705353341178755649374999085727658116165713203581341120520831095310016261367665434512362854921179124711605169898943891392868215596757281495056975186372717369015444000898599403334780643260015471473750592959157148741680320616261496249084658971316456001274482498582881147762186476645650616955424124470312414738484754104706706330858215197657378253018324797707241023840325791157755044705094421331683307476840449805929857633565140704078284149609136596734906249042330207068788001605291956684414341414477158633143815536490683670758217874466673596769902760874497396949233929360751693757979375222269249050954473544895493077896313268018920152715392847740563858368516903931790131713351398588784247956782873307955714183628600863805407004891669638178236366504606468796849959354112248479311079264424019787565400770541914005056005758180487689985091250754796681523545083761632943429087016427445536518050487664225309582129628762340599390523798481928263660867190666158588216295030667906946624474632936962174391491586945554500053607229285707562929727362764369496554728160421708173967237531534014441808997735015230132040951389924960672401715550855606729302715266257118914741245748740251006208061111104849866756981953061985169266558249507745415045385675988443654536096903387618282043130439924856605637653666477426993465036103811314140153911271829694906428431969633879517703790477989380911334318433549734732245232500853287297889199137875932714283925868000869615468007381886052342811842830585373417374329803221306321324635896386019753521186297591267516638635121553969814261857196278174489057744041158627262307639488106310350521007022104256149397038440265777946746751894378949973537663654715754585124108180940547976714111351757291488660234295063696280891076417282875485479250124379478102373288955516878459522809857427279950283277078985328195692364927091271256725537156505631074803487231290805575491391671799477564060568480325440550358976096275520308786631058063478974141896873103064286899770635407776023721583437759620027484867711001404117664197822861034882708633727664393633046019367401314331208214529167530035887038782354092056232810094391961714337528415811522065765429706535009826679981177857824231658906632279844942810549552793942056762795909010361961462662086248843948754879568380600560521128813413581199847181853688055576388126104448108835836745216763870026220311645284195797654311555696896715413979931785284054630158545091203468777518957673216690984740880810946046383574991974089400586337353294693051783578055224187094124544741084403476294911584989942190670802954176260543070617600184348328179782449362872735556330977400366176867745540997273138437874832997002326668345768677812170565621217032310120737787343707680111111028989494179505975411391571479242040848429291107394549250232367603441081427603696435736437484523856235944344294854173716353090235640893410970574729405555363846391565364174795303393366264494115733256284809282729074702556010738428837661386496379845867830043143448823652222105369149840673308592639353680346491516509212719430530290226937571676204441542588227668548787210317597333785949266796809882832692968260875874319681158323383730783635917900517659632509303205146087076350978903066536720307183893756277331565374300215205620813203850839120962029395859457677577017197513007406531238630744006442393048240909267275532831025388703078879024650674405667484071720574824417357586086768430101030353306128650985339509145925306660254247689275178164200314608133257821497136116839498232048709168437926906804477628687787112906357121080708109360815181000263573139027791640964014080444987428587320961628792124022772567967796307466669305191737286615909711349316585814120964942995707036248740765635648034515430574351454938931444658432961489336518470947586575391340527460307409715785645287635584444230334588755489994214447438316121360383411538456187527933731326962299013796097874938023310153285660912720779549945672205170945908709624782635625684446118850152834343894581066776699081437814499805736703368096981231833632301706381545445884593274784857876491781854036917509711271295399808576223582829430515953805641998268367829792669411807871890274239993505970692053935376917325438781281870791989611460411121596487797619544109081583315331179663056227631732245644827646750354237412342955100225624243034368347780041831293538599207706044042747457267994556848405399527453474850594774618806704430549017747135654673228992463008845410633054669783903869804323253839857245700122839151654988876083827834651120433874882388543490424197826831293974035389973266359699746349486058038761618887220056402186689409416717218241269368512635656874044356593803781679524773136766687004002710385658627070526909994471714137370084620946653648111975860592221751186706265276708900294435501222209519089071965646499286356175807945033262523991756379817225728976551955102866048227906303035024369939020300388178401447051851411317824674949369835418616930805868414164489991006847349468219134801699280078278400830267179611296741349751394562393464122679845975484405248735095080286267549466002972366523503056476482074668268089696513881412743278842909612323340016888920022897970943650957572800716712770864059304615600544541556922124633630445384368684308168847727247965289036183568783457530398250149272161536802069375482799083594621996467688286907348062285216264777968983301185781612565759267410961146267900647666273369664132655903404054097810574927089114012182773847384454908781404318162989584504835112325483602598062835126833797702487764609396544007840481999917659843816276650608517952392392600759351188527774551288045019888075642405019114637760272119694590421528710813728121333038439615781935537562819194212012133895204400531321002665495417773892823788258878872311573538656932295621291885198295815279654222162345695896987248783830535007609593408990543475360285428646486379718183178922550594798792741444465270030029343308364759922526552864221421551563260430738871848220668294091509657637196381978560849363696346695156721789887145074255123550593654202632729335787358655626684657453798929277285646133654647042840727433948674632520268489050909810772204372245850287359611162614691384095764490338824862828021581159647683151595710042278859154201474726104878082148160812790582332974727326677610875602079736212486150696089714129528635184978225488325691887895572888457132219794712033259068303056993113689026722835593590960128657027676559924050935554219913924812405484196233988119365134874118817453072104868061152181657504908126039634403011274840582522755402385782579128589827575108861782655606948276363103317397553061093927180666902084393965916125991776650753806418259942016383598796533266862378787926518652271750939679936839439096385105486846761493404340590236342391331378066966260546863898888089340507934922197325773098138474260034250295656273783549648218505846905536237498714004645192233004616638560323084622130918291952501540210278045439784201533620550157989630133922558492312918232963810389447405813156853631357306980036357583672044768972777666629472300398385382312259454706249194350349188447382089966462670240186923759460707026946246250431939766787568207157191131883178585515717297677773235183222992450342208014679723646709904551517099575730296532772908449128861144484915162451539073813323743165385092763830161332855777371744890098935312610735923049731188507197039405041292664961384591255654803562123409635531287996308132084827442583286534659182443447779860547090375502723884986875636729952316654207944172399109624158485444969365098459207796519920077042275074182313299446182157651474025710718264996785643527614959169954653528078299280965098177407921223370889792504302104265916403968572702879631767918327862990959462133855484243433247691719550875326840068413527430821680196129290563934882728468170099308792556429236135749163969808955236311053098182080674875340872974184288404381306290879243540734629708787960750891550737817024227742268871180901423460227959908717513494072393803865949349077604322422924376030310318741281666683879324953287676218122625009480069075699524920619489239177648695374203359103766880252243921060535004368679763526253353402680311284596263786164265110525251443380422902347224857816260122093957261070104512809847399157373730167571188033937380094855947008166734591097673866021694494116670322066249375705196308914533160810103277305304682228094751535290505701717922983252148153936388946342129970230137494502945062102584731683324983406558803451417890883956598275756130207310228572088688128380253154209110128734027721796690989222192160877950008179187421684473517604850379271091800609812680738771370230764061806757680182978588775030324765084071337366181734615775920974290211037592219070990164460443299106509249429711415635952965300667906418450490557021375909468265065666608500696173526870764447623706273210657588493674746074232802734840227193566330284372950776627974051572695141178121872807480841123162119413909398179155136553947167343973646026947747414161884677930177224949539120064906251331715782629594894841518799800378333156478812182851596129596874620740342561817625070289289599623671322965775094862506977589847034931220080772927257047118283036511081084787449874341871609920943375532259863994123660306400906429356372544853499190549078786576182042605310055482459669667662378953133281745730024832610858550511563119034594615207912763928441798334412473019587574022721167959982424063020158235423177612183432930998435904982000350987162966731298617602758372973507437522894086400172906124446063189806847552300241962426931445939154090248516051257141701917469878762455460404898152340766617222804052936249302672130854934111904354806917710696159269029124271351308774116680012800415206064033142433448024473763001786765937098066663427174693610253315163849282860065370193563403884563037581531143545355968248467998773720131847076720114007231956473359393036151097349923395501731471774417386909807680334415376036543483967640561193615752768885247959871792087761298909675422887187619568568899950088756395725814561241290483934695310311594470288607067991356480711865964444969339547635442535164935025854450882505146516862989436016488073796526755584027259614650088873718150103466413586501617742225495897937338000918793308967536529936395346412243066934980524204887444125191131721236728033335254365700450062762321835295885336791459367400081829850329035312779243828543406294224292022459202953540248628861731930836346371386379356741980245124090024300507109334612211807076828396186198347011988121509783837492635189970527264420192626514339038251191477850953867675571295258254643712043972115423764520053229855907978146199210210788432190312155767836476451359413569409944969732856213507001117930125795459431883543498250572028773773965811616245061955114937969826592724584844956683013803925158731966906745001220214910993535129059922710760571326908497342990047631821800603879985464863490381729004091917249475005138229828913388303168102623578683415516211433181031194312914137148649546358640427103001386019896285430827498455968961830400115489131138797280540822972729493229333428821796230457495128983374997861756628681687078832788697218279458024822670985012921936455270666221468765869975344598171580815325104353749638107952500054651031533673794809166235367963965515112465851827201949117788373999128850085035110624165169941196542573866278892553898330997078280542692752846267142152693075775953510443741614318207482812214604505881143288561016446164810436483465303772508558881445959315654821540837121675374419075594090797275669819023083661100517344725397399557105809505537037064884139330671509547987539940557523164929953938560836314469448579069212187871106090802941526681963652371142483310459056961203716439314670466212289346345437804481857679931766053273609863779806390365186095322361437105941673176797547117779046548785868261230783156551823432416598160210363905413887336422752434278214101873666766208373317388879470326913086285651327091663155088561717637510425296512483932408148781942774461609299115344548309722698860203111100983695265406874054468634323131325871050876597143958884829222429425859593933802144067137641670570747941878320953045064761106877683850362843980897213674390174077414916045783834252559944559485251707706715892753113364864156305146941734235789884232874949470207117152550421357521705531596654858358784577146271260768920877038414534464763263888468297715692921388087628146096536332040406189554298459529454576743206580965857389313024588028365187501777320901134662398511266838953144402318675836763965108618293430154484996571664478563667623315779702647163552056987812551248352613125667441307190592435935594804905530783460892396983109551583866487734938505238345926419832037423447164101996027546411518501123596352989068200067979774116612031022490662196449310215790396796598178787486746016830953663655340115348414707418425041722365485611099644545464546819433280284903737186440673454520397200524485994990264315336882853988348083478894099540594711028837673030887925272047694675366441575778283350040955754591919368504137955871707925475171630269078931830851982487727458894874454556462013109198647010723386202119028453007345154451927088646561280229833437454444333509626143347511149976711868977497502159066195510328173222754588529029083968361371364983171115372071983177170845884124343389442328959114751068430596241692143477620841129381031787323397570318433697813749465202563329198001272829597570172814126125309573741753490370550878338983693496902398519458866459003481751240412117821200894733986574062088600296002254329088064326554236599045328724917334445596959344358273467719928460880344242774847415600785584904448871695524259933369006752867691600287377107846069390822980894524192713131001677864441989321727803717943040610004526699449896476465514794124741246366870637081766015770999769107473771649911229191766069671173987408332268634707743586231813334960053445067637557227773313341928681274923760413334399209681829784474622802428753989632512295764289321244206504880856015251136266256080674732925526542481003585494022945839331851071086038902609900303734683159898960242144264907194001894486939029542372683088376454251095082692393833384231799510038262715853950823185654313154058944075110451431122255989572044004248087832324744836096305087307404509248991942410748444019308761433030650187397599899127607538694519219708913500937934928266024158727825610976684615165611837086688349386783634688490190097854442640614119496687162321437604526557079483774941210304918037187591887096244614356197160805068153517459137224007832873114943958771201862310741757151703206625577703573802166151870175407172489874853096059641396303077036597551802750321182408879652707181686567168119074419758317234972220423527552379991709913690176507534613246083477535083331050505483775687142972876188323207731719600573693127704624164261017649315027028292123788157776724701097129796868965173811105320920091915800922612140183583124625679664103045923418239158970484327829070905454157684420437104292477329608333777598044960048977094113653123580032606098354200293139130572914346891742059525641085906747607164938969891563243629821350701729047044808080259194041512286102523684519304761572605847125029500215140056634932492545100240876220559172124647488718673180648846850530043157955764218625307729867592871494891043036358020145807387914602843473370246450812538849838100886783404387470433636501470179795109886448775674759878265310333080554299831855212964945384622256190195431681140990063226691705296335593380477726653829353929574652455506564328644466988181965676584854489771991749375717503653404974021531122910453338246970917788916665501599944208663479942623307421208444847400966726925767951289642503207780961145703005989992278017778377181258992532756882385596070905739709203822830935649651346198104514757524029514871478522328323843514627476385143436194503265032547237276709564482160379092834869725437992454022965729334346619692914948880611279313588247833949115769835385431646670249478803609890418851597153823080586966446751788723614835344217662126855593359384211309138736482048941392159477816012311496111007145838552822392911405285947579680160440887050235163267875538698790348581253243954010545647273885739252145712806407081766729139071859511955104230248729564519701037462358976050170387036296301795525954089967657690119775987819932429697138470865074540205191906935543707290124120612714029685678636538425039844993037133244265616301713208718184784519200403353456911144145225553796097293319991686259319061716038684909468515392341092933299616547911256226056310986509210159137220232419737270946896110216740011388073520516371396684755596686105007073458227546474866945534155559209815243761897390846262692758646193194605823549034101609249097851564842754544994179111332938272780859533293817426492611936147401758202227595267939002010595149981350569739471406976238307663954501964564840409204283809512073913180674520972566343072074662931423393457573426463310303222637922698000282089334915261530264503164492398453893148568014061420850268948087498711488050558525739663893623453309486732628391750569059007321847212963506104194546284371589416541188587682140501769776456149778867561473884796887847827494916956890339140490789298514586064614948396388484243867850147326780892000359627461537990899048742033253139445247171962724444295184912231595035806157436495960005055664238431983031067976410002796037884288947303458457806463812588656846954223269009539191722972084552629914203499171921673691420604440017419885329802985103569557126379722872217756648004045473574115385435084500086783817026836931927735977277329030543030361326570490294586220334436415186098144900468942025629799735530752756887477416691006711126746813169924581949346499885922717193419286155417577150219202018247136173076820565855174797077734119721586316003780196082846414840341985627438262880999589832718551727565167398121837429708890008557436035266265621139825204234637589030457340478168807040066391295058586544358424801707157936167876438193596330683323181235752582650134563735513349409551600519765348042366721551660800707436201471641305509097713705455667485798731311297370342900714133074686093050187669570743549283451785864695782917414054641141603668417870954929109600413057078156745807882024131177642939492152762890509905098505534480770415566460396642043465296405614477317207968491563433513888609583389074997721933229283868889603491582924828416493638915929298060175119898549425641161181160212196753510693578303524013994041684898133856849149080417165695826148857394471143107151670963581199628822633998341539534204204444807228642401683093820052667476620008880532440936946484728951800354429426424116523779132868591817682937062774138771184679809612794234702204394135552295527725626333420360190801669768653485678456590722274078722788402301407578105762245744248379393056200174682544470554939977950356523599476514067744873693161611071516877115958905609984617400069255452110446355526281007739431292882650537874341759063692818031312400386769372735236279400997533801277910061695073916672865885913036863244600658747127362680088188317622406237643735339525472790313869201668748025033974832820282521584813607979212110983239530523580644880591217771311396331455632638082947040198747100457263165444303117473657353228567367089040135553194738191581635153086347116273592421078295172309152957709129792966379860469010164721583022224182170983319363694364748945366688483537578154008419951965548834843374194443039204896697288070111395091346548346711891308751038970967418393012963019152158883151147583329316244723539509347093098416105069846332992758361324072476493275305178158215160281289990237040904042669348198914761330806778349176358529466316107079970803607094011033070874074193434135973218881983544249067731684453560218190340709361104499468310298719619062318516752490929683372491489026307423777927896170125854270887562502085220882414779411023121505549376466253265795865314240218482292691969978875501912383015318306203617786044845208266076912161605841839334284963501036611087376177032214150883549442207894434126698855865792691661356931325078486765274477312703988496994795543052251548983511084160375641550326815778196108071034183059597044304403056695184568616239180975325623314188846747734694883829949859085647310575935972136947503980934865584810993098042624240422935650748411637510959381454696845014538743586552417599907849503735915207392288472790384772710033562894872689674109533539156397829412658390343334566203378232984899598727996365724208600774197948600871593228085145312277935631391513001869986500677619424494712515887100278658430551410917029277637891681348914508759937776400793792162833264611368115880599356182957842643645091186164652902721107493853698438002700446812602050452399476546123984473924355512396396188563029613947622862493038294089965703997097769120815375780461642769508907449903215852813522034661026038026053460712694086148688987149974281969773460431604326804123216077587987041775938856179679288894388087850845791422212657137508572874577095647902276211414476854356899825145528187056626799498067498367982699612541274212351071845984265737402940884299033314067680404343116827789949807842529500587426311161287477900893671886873617411806126756601057253471847271000631558525440772650168271642464605701583862667157402517643368061651219791307541134700950731751845305364907615214345806977946757281950749353001481501414219295743828534239341242740213741785384691631443476461069909583934212138854038517588214020842709569565988312807473540789739190648676311905862890375418371693025611462789799415790356212050738063980089029542090136001875015404932286380912431756754556375323388508478929547456727136005951409419365496700966009375422425652695176539122085471518334665506118433946810118575167837800951450640077674243580844591911136998690605544436729989920569490060078976166408114291661334639099971842603157735530602684193660067148214622737327898320998616117108016573766048147270795982620650771909873031665743424205562039098252501955259642144764280635254357525836895601745122138031065115135683568431036622432408280516124237622531002656513060374102713237803967327401874563465126738126787281999612552032574608361019103315262619373268844248571083135476289459605985198819291455472332301534228970709597271165380030847521350819960633165703838697799701539533094433842357557183506030309229755189284406180690703270285781584327067369731870207502828397210239370241286345461361352556619148472853553561436594751734379710562895448254894302600244953638903406616015441005448983563993729976719157099904316287639927355011498443596292934210320148670888978049518533872065651420541983014964054424835121435189275308011993423520499099086052707265776441496667654348907433640881776477925297920393243387226911082770279856297904255511581933078135916123074488274787940384387690733891123452514403764698696959626127931867632615181771623023580329457681173372856816220135453386804178449449846363848091925672875709468707151761522841208266759583643852697467238358965733736547532578464756942070582175837492446779334443166445416502718051210425479708956183543378921930013732221959062382935251131596908786615816936132613366392342633102833258978823558623905547350375416169622824719258242976628138427770782742748162420847877158397501217655308335130863334650158119263963598664145827357557170506595426537455616947145422462675289966328972097290473092087380355582558559354282093211711888794709415673631458043454631599728995228398212285768286162646555994765343141053990725324753716906895851184677958921625410171663567851306768116784024975136366643107853767639466414981749372294790317882308969487439213419069343804032165741311865394796213426109085912471203078324334635710499477923538988231189193083940173714670181947561905415534375858513323313775008330648739701723360928351791827005162037586619053031696452971231226247561436218977183364118019712727076386186821827326527463443432798025002189097848207371061563940800900284442464404766621920253555048611022070335442437886645146209907649327581079241551376216637212717693005115143339020710993841826323646838841465255706303834131919427154780200386172941067504666314691828884427914353100268493418790878932938879153709744184754514683556270669283018135029224796651827186474053702937062050581388868313846433582011063206083720616261110649716622251655860841665340611353397315419473652515512789352068553026875066866275563371849244900239591579988858781201563296930126852518666807413356464023136786183967810194319691723253271087562327271562451599445062238614653635625816835213812635107468736720169592832329723023473683073367469814850542948653617181667653322929142299908969677459517033349455073181823270296079354188451503364572048266117244980027179104362390746912627343798468711449208956349671748873688823261061479266433312063855565382688374324473403748818981248888164398891901417558093885223612095898899415175151676127477840730281723965318005014920229036260708602088415262393064467066039853772543171930047968408867257332144186955618631230713991826693021172106397508412186087876419292766896274093774859048086885438826483343602740058196162105409766505749072891064028209721581054948255048113641222863304830670528607982627542328812171482122539054642252936243266492420976874322193440509754660129441428659132461544943022407329192513885711162420664967836099895181605326452613246790838055665674021350034005736083273296639594686584045210798165023647369377194409014196216376760228879177146828858799352641623213794955514336672030445703980019186088137746652984017141021031929962513875563290418142741735149771450951512136501211664989948472282640381221341398980862590889557083138562311245978459388497104256587241239108668798902433231614345199303789677188904048812150570331533319302304874810539881567343032906178894272722133508920794534504797324667982909983807410609527975610108557461700088683084276856746718544386442078249284274127680788838417085154781176398333503730442167607407686817617372213063586876189282535578075097794899258773881290057327860995273289830375493691320559288504719887762247777676561312777684022621605231801955881772366489237925191999480055892364232108881888034303971660028019139726242712813252692674568340155378770470710985195292289410594445828090484018401812891691394032238286701776312203828764444380301927942186709975598792388465128592315657315280390232326585770797600763017049424254086325049074067998250713677739929981288706052083014742480559134356832638672582773598078362565712568548433206258914083470004040432820570833385745238929940435048733579435723029153396141544951760670917172807167564217868064086316427260677360668090754298361125930703889118925399580331470495995981668744877923969820799962850533220809022002311597191061643574928341698627180799920927143870048197050783369191726771021822581750153906646583934397467044063565040119064278478054955200657654255325642112430130280577416838442552463972821344760679248643019890953630190462135008998517029549844509831235178168143638940923640610189967004128123718568398659982212172279044592795987198244791510959076439256524195998454862120326270221180613171257169652073846481748151778414603214491208808255879328753438246079434371475111053909620929614543304501280910180915371104142204579379715377242901122038981381365146016582422581212665104312072774117005323477630715291033555261439791892658746057646639498039688939643601245893707888527507183162552856131434370480294487633979244493162201365241882941033990640999617364782666354018930914228108585308469212040143599857714978508029617884361049982500646580932941797510589423689395316445002214930931356628730795141219861644827846365116814723587718912525580262488148349148354105855821852965408448865900039830390954274935833598837745269360106784359236221437714342291301746022139921399014901782719329037430017431685452727780567827366031271148610968025039159756257204478978042447381076999652159809999258011575478228679483122229149705458900934727415739661813651626231133481959848843891481152468917343481918416732080270744060904011548473650447171420639954271570658428064678150997278214033411864937396041689510919943220023335964010629110381559929436487901433293057695392128155868489728136726144463235609851060591114408266334807175716543683809458103814786365294580839233437150214891548243690234815659939419481260897067238886114656931032711784472912400265213681441627133621946607837992004608904093625288687700637391646308914059439302504225955997215902652592099126251094363577835910390597959438808183930203728167620326976103676278900740090842932344958389618636158504106818460084800043666997712672975260716844595034544373913366448977282409560208174392287624725101387765140044685157026357617431483933582372612425197181472911482524111303802110734461303898855684442529240490088701320825867449629580908185099464602917699863170252657640920375523525154225253536724706160531529985140208244424990671327067145313168748710849587376453895299909909211192789083041317262569911820968402622343113542174186427813617687537238901931931811511355502161644153487085492143174296622850233798511130143639230790931256769683987398650964305134708130331769759720300118658375686103361098952255128917014109828913783913128987096356902302074677865426880784290059686327898858051987158733260837322438975998262246687769646942688037012590132968783516707728289327210568261666880108272360404720518093016065019631858806908148280192351075267801636361566002880375964511080190250936399374364200683408150829371147934125688162684458872923900753158505884609952097226301475451312360438366222054990419645601383794750699147017569070071614370721073378769794357221631611274639943045085741649384709101781577057068066744321687046150494092714156476128907646773630210193974528771603445306331065313365271687430033854998675302119662440764576998526724890731024310529235110161264813511132928993551418894540908394528063449741175371156471270773780572854610087463878034763988948422065154755924022091219874353314385258478964675662796691059430016303679880198666085971337954555904879922423421365684908685446138811842633384189506040714943651117045415798913061292739924718833159902946447168790322682818320692190099263769700446203325922412421467292180405415903005124717154223088833128988907946084577632779583627916033329941044058566062542579001871316283591485228272006125838220760155156486478166188422695776875715113305206101914132389998046061396268325809040913595268267175494726732899807386301696397590973566662986169952456360563156574891047601163589021132582156558109274836759981939388083593949397018812912273295675169845119377415884671977406833427211726348306321008801910217939288084600029002467049802632860394348470128455536953881608158803021216097702543963226782578551258773910682836914950601965891545430564758017191965630659425971030370355182363564032124651138787182663096302562180268584262979175915435950757295655613973535022028859780607291383359903583506834421886646562338584616761040096862041533767291863267164639004105449029671671904755184457137736996525728727876978173620739840223576521319246968994609256114560737851572995479115797331104250141061493763907192734074554711876186634720884319168721099947508548328059487629170312184972362916221706738345720077582499652030569927926160790648733775107343646787978650573327283826564919890189098647768838620555337285688070836658774230636516345295587386483247093566435926002172991759336703237936866201695556660708665855555484353258631519523631650612186857175088798982605419651138470661899284451264891233797549780825459409740261200687645817585447803334636951884342790349953782523273928015039924644003540358026637342586441168600445050472496756339778046331667600058148000221336283757680391817038700684856748222301482378986780218823389222396818578473972466766898084392836857789542857574851580848157401267374460505406820670298793816192598839004635605915179636487366130280428954515630349382398060594279898727584412449259562946524248978704273316212266732076338883288371419590822920691367136916491015253312180834963951105065570014862818675400072602968328397145954007439099973870875925972974615361580611100036476763389701899352744867359614839705427880590400019796114737465266646151276297844196072785106623185733794001939858409544710644926183100507740309459472593443593342230865567920296298926944810261366281639538951178763038447666158661349477204807337588125852823242431362482294856596764716358243989524645903385633459675503444526810392848285610155966687501381164284870509140312679566874784126438971955710581975104784391685501533606802252844363029520100140960102978200698395194094307415008565639490453950949809097622252162078811579679159803859947574964718228911684660271598433319390767404106876045189100840212860869597307026429990253606869286782847290921876657531993731942913775526819046935467928628233658981714829842206014241104178091270207805866222935219755094577043064914567788649392524058785030683241531285066307339985725644904996593222749935565422248359344230808966730415350307718688088238959089184051055779451463074662974072042393251745122263883089225661082842998713391345640304348521313945774383634668701660091198462392781576488100743454912854660673141053219946750920971661796784741631336359463410971063312288274912912422678458478067346293908330484660500514521161012499914132727934345482991159168679182196262173262283921484883823530387159669088996642241645823391903791421295833725777140179307174136745021837515038856470520997601709095917667717861286995336082158181596225435358459172651552587521554571607369925696837914667879086320385590206660968365056270339876769910954275041902353895967221276035340843540917308313278122526703311288336375579877984336254908570151787495696018895025691095227711312667711224905314487595545107574984300047599660681700391565890967710964418049229894760610441333999688868234211789984244327350003493230183560836381866909481822591478325393117954382946924844741594508830197640886737075210579427438546107362191719445927630036540045958046969638724350595868939347495972936873433869106297555052148053287853038254018780089661736949798299385596271487055357931380880408843388585287711770747033236511567230361820527817027981021120886784518972652647955554762588871901446058005160276649514938512073053348044944441507074802504278230392971320304822493864809527361473722569118014692236807310922789541717121040124886720390633258581757628888088218856204349035789564675678268716617827015714221200788887284173982106055148513539423773065129102851763668488084182318347532293708452853813370775122388411998267696256093863331946155480283909427073833227056026774517451978280229998667888639624921108163188915663231617241827572036924125448679689889844920177719235633306312379631945675422465288073667441242203748219541922260183261472098610367549483717475012824556441792084940650814086367024932332729981020531309853829162580392166332823980202902375235107678259031315105863435736345273042629367319825114482324028135198261736970064802494964231772205077254994257215522401381993866742640668123454704229480695683759914404295176369043304358180880725978654764722818832201227027137481027173650648945775430533729635502724488157751605048731904403735654875029040688107730353381528580566318632173904527791424281325365997945618001408564761546100083488831135112084343843557158645745374445002546427673671865847706897652813275737652216068920527736846218437831751489457014626887393444643016037012531310289997623055309111420105340061672860720125859883008113574940444660684764041777701871315876092180180743905908939753755976132511877282886834775813908391685624722159556681359781891728844774580684621933333392485786525569758887719361137360214688184900817833139510040903616801137676205026882017861952634452118572598010258923766665820762158868400771592762664041888425257955959443273356341700083853937445009935785406287624519059061514728156027506264284820625155794070490856375252474191906625218540640751716974184949471292283136506583309016328587576944101797708502756748904813352125535442409874077354263250588647659261323422411039843550522181924636424853197979603609499989011398132578421422567106320608820708094532229762339574414758476327284958697178394923807973827763685079887961209557511126581491006609470118157235868200707747258504034278396715860623660598976885506523778738306419377460567812312131645092639712595955820312345100016566411286285728812107912813032640604686594879922318726978147334068794653198001275778336712374576505091068014693594224833765407026969997369527626168595697078096251122817230289812722958625595587629273428190427533492308802093547730568426371677335768680227963374748557345561708905280933214137149894759932051317215017609244928074232126298575206470902193564603036880897585872460987924325227042347259150310745753435160856284917596584180531251434028119076084634848084911907881826629439932960782808927197921058900014604381896415645752397160387393787184538098948964868528438889284332755094672338064789249036688021469912804309928904527930788371360654829292923235774179061401133166369416329216073699661351537030860117518379387381569170377556379742113255678264778107528323595125808070632948323521362617668760806797916174836947226187411862253758979666966516353609469871220088173147748004694557165407447540743585792863037245419120019673564891185367590153876680798561882249589686643616123677635294964051438963618667897238549368439472303867174942283682094320879158133121013307953897126228123301070923320427799416743063891847919966830746199922020237850592611962731171138095340221264232244338119057594602048711836104413564220728686912218050196419483761663007924316243349741900794819471909193864723513003047822518956092206614716367782639732439105627269807380835411254691944297596023844480940834470724617201452028217732372581720470345494283631863428672698774905382058284968000074064726931866373502550977239044906720451731583730093604351622586506809512867345993583342655206997635980278184149191542483613349391417908118700624721221615872195878534332361857304675828382256262298039805167438128953668175754512358572651963943678405433178151745341601283555844177181306842536235009327191162869941694811229635817104557778909958544177209180597970718196877107369799804669853156453876273305116454793976809647886576890276403648127980000660988847546739176713252111889595789451071946958739627571197323166017261800158172540426163088851076739041595639121958986090127079603689279574484884635457740921667429592628503846585393934545998474878904515876354005970914470730985237024423252927708489081289731606819284648268195679945014707493692559707228397994392702671935250456789765391668705597821362434417561712465190037039901558901522333319270513485227789893116022763563622845908018405500467308661408233626324107692229568637747895063126915149400102117670668343255355557893787401344231578881736198888803820096037309652431535819908848210593548421935321124781241844329650045950966284618841073677507000310206830208271257594472858069091636924241674066804441881816571472807309762254552074912895959005646392081082147714179378046430449631128746640471901537218682989056807375784043925202831620404375792923579418509554765071317055010662721663959574491508585117816996765138222056247057210309998870988108164292446166137398715575523715357228871306474312900320611942481085767720353004517372325620397385897971440196757825041487124501178059239334352307576245101434787800381112182882906972085390074592166038015562857335469203587904153091758811269812016242428861888799490018839316967125370356902194815408040568550556309329805064772476114865171426431973147946938960836269740698080614512696252619664211920985096279172617970751090911302348773343967214265335635215841836143669718988860789485506350301861935555553512796166084941604703682682847543818506016111067698999672368585136220801214651312290428009076685754421605841942336873020024159831043357388688172968595535414977560133789599199465469544012891302993466400994090501592653861050877336018634224005766652182906172372604730057264145409831628249912344243806127367618805999367456712097769799889354139420209522833139905063377402319923535153179381624981125489315383705875763403945852963482335928879732676178621315801265530179490689215359034691956051333929289220322161645526053162339282719730042640804677943406161176230854039724156408296172755608923588926313340898977908505017925559865860038294775149178301699560057389406905615836792014265998247018403298932802033188002788060886752627808885396546640696152268373060531638523850590145000537281151250889204179304473585907004656636856159023761507749161465459636667077644504900531568184456646418158052985513080320300036288163039678593738653978502593378972957020064873514881110811154533487281578381485648996899170385859309318604050225079286033935924817686772022481439310841162735261008085610381482188734104421476240168757025767814830617316017782216708676418864926951710724957912145724143696635686829315592328026834461806388292050838102551091269128335271029458008955206336905141887626695287129187645968800635256897023109280127080469098150443437928132279534851270378409249446617695866628819650867782757838412374276832789700699393629004734945938097842160735331405672606886982496902863228779021087941763835321347130349836099853162650103008148927353870776837804637193044347102464029915158783176568594522301063104989813138212716168264975747428097340728493660689765431399774269223253073637689432863231816705379189761070272940096890313086750851058761649450712329909056308877397966964835181944004441086837788288166438153667376623017126115896324253749391754337747699865324720851693138370489772725411205641677449070346499151719426829980766297663053524699491925292793363694085200952919706118651460629482709851051283583544647904878664499717727288729807321873163103616381473725968611198689741951027363480540129350702634722159482594073508632528507664810216954265191750118988163642370799002347783904928933604882498386210790650355761146739265329880151411724688779972524570458654037420820956705574479876695282086512831163560395653302361785639952773081721528627842270083955905089941690141422691862919310092022647256950820461066519097488565526104184711317474611260005196866622979833338483946771041648406299974166471610700886707076242208111413956227035651561126396428541657432811005180248093611086442901921510870190992588921678918565623891832727776286961494676340188159877786957993554407419089868079034384431140667747260318959194375944188144423182944288853646772093263371388599688025361902829905739968384469339699034542950038005826645799704519189266725926148127442291443496045490637838213922710035686329433032423131646624816464099057923108678265893946969428921147486788243103998456791763863327372477028667324030348892523896720859388620907682561985208008939412344523656867299282424235443136120109149231036583743306336644742471440301753530824066951188756633919341559929875994489195865293461824507271079810564188607943903228627930549623726946919717677009752097247862570327978012159132948717833478855618167059684888219251160267834333410327421648861429320339278254139465801362885600870361097882002596697489513701345232269532283107932279807464106882335721718616066011060210727267078546823348461414712966010113525750155822431871969706175909056063157386476480509464949278119859627263682579953056558041999556401423526629697656196332852353389631951912284112838365554872901166558540840065240974942757357603920014666618521798998509044008820817857501779980266133849630583118690838946614583000335538602936624616383566349896210092844049834748994583946188008110429709357877585550701092890161451478981211307522180223698604484231838458670261466739226306780182889881461446852688878077015890227196488667025585356189186314247096179391473012870835661903939284017871466701659710461373706628200806286070241538680970238875251923985525968559897729179121077925642942349880097277102004820735256779240042451753871736121002590858947336366158677372367870893911808007711792041773975528565091375675999937374347071215808729340804779823764646623952605444693888297233245314720059861302299523778014142013221479189206272679633672072855691853747207673157407244835556048486496022453863751075397015448323234386608435812605706892535216260338890282549336745363494353285938999805011045402222309009244552689363706515649611221344558084234103398670782451675099878940016465229814212376047418120123631113230718239872339474023291406120043997928624644550361937464276402898123939471834600243704402821206324090673441815972676252347300739939651179060364930198126597356774961363095941180994118980185630113955501099936698196276325565454382107365025615813090970108545851311899690769273235477238157762532474275319585260361210077010821742710663705503147753691067079619212339062556166101914044590027421501457910501393853100803779507902516222610529247370317812914525531759928656152375918017815529706900411669229137014590668232916979678975147386945459660033602236251438028286105417763521913789835936620364209667042038646857087792427468685724778172071926855662366827043917481674286118033139024731961297262905378393838447965174212369887834696118939855404875423317556039218089900834346036010036583604154250493517202911109501338822195170849206702069237893914297017537090372504828852225751115233563421325455446233995077689401019576206932750813218116789286953434122970477742900584769069860297954338658203180145766165847848685970600973605988230484345442881507622845481268548411557961038638453451097106508395749099514133496331351802282442154585508052809073591227576411745631280420864846645224020945002167168998407490337785130542251089467269306974592495525372632932034619482623210549483278658528961092389280782511664078941803826372769269336439733425767571038694206043243327922902428069087880517724037356312672739643720361113876789793973104216364553256708613142509664421169682273584307281311571307935091608576421273033422157830159098977950703476907562723169756019554074942885623901803145072519285830658000945883097835043355287367702841233382751170368964328035934396782397905596257064369011533491067049593853255961461235389504760507808625686244652152725000423923066512751110337307951599038704585533049752787942979628118323738361092124171140235628353169466467703669806013458750674560857826954045795712227623822463488170455769703733061571430519343931088667154202496749919337080066357631233279960347313719263451614628417206877714274656178403500188210953831852975194436155111036761851047301981161962301418777901733874152613764306063466963806470126140770550323629511988462620868782073404959111762937701037395961941538190083447572951110462595612836362131236443796976780407365721304167401013711530632845834187027230772408312845026183053259795394627850198654148224721387426969829042494244798856162861370246879398117419305884918972357576954827473005184893511501073247428085794526284385840696554538401806206791372734850175050510918096715374406202584801758123735609914497704513907629464147840780650068089763305527413022536013180975602321262757576864718991510603062211078944716373151414754248899114207529838493063961291646655714569821567805060032884724397478348667467622013625563459694605251301127269336745399630983427563779930551123281433328103191917411921796792985594740972766259651180938290874617000882239356012628845129214516540982702896138348504283699047491582209132759634871800123976429150569236921404635180372547903434223267366954029487394788909201971549955971908240556885860846417536142988027647593695955519393272048904895861116773622274630351844063974509912066629908323612094621045683049612208011804713717644611722500102569454598874952807931596653049622592226231709093069879318302867662950720945586547910043515476955921930334453585314966584388142562654136237710401285258685448050273453017682058104170750998912361718436625154450794989764446990384950091379558784955823819162412902066584648492532252214158252171026364422199881072222024673010163689736290299028648566694382826245418967960928822547413459100859877799713382523722487793125244643674888134434950378476538129656693597013813808620616288466419485368707232009426408946007539647969706805815551914631032444642515675258092290422977338317913226617388093033989708366968510660932269406419589384022336892740664211904723773164933528640382284416336128397048682884058716080028505312342918235638987156116986216417178531787256027377320460066994915650988715215797877256442681060431264290203758791818034472759038028184355927957404962035309761455298794720657728516568803751479555287184135069962408933570045995367473349173434679734844950112960159623817982325278276847363069328780026084916244942573358007244563789887853457866038657629754869103565430302200700731630771799142973246609500860499364200479450223434973926666094910290341746997683478739938646224042048698081762907989506250257609090034248783160684405157094288906566772334044815761325488188712779686572273905483221574992947392426485548830674687211177826433608698977451832569026541499730867161999050759385771500431869252437374744657970674970500380378721113783011990248750279087495644326656215091887601525787862631935625048440618902588476718519927191159381711418452378173410287630155909441367099042072082086893652116493325153908633002011837296108158825050311488509225693291202923310132887529409688812044717434233550616723265300624984908920514502145437487041658140235319738124889993245312898598087867504917016438685318375198478012250517429192818690283910482908723034038714329072181483584119422787288879395037217172933747977124110345361772052436577223563816753434399649473224509886136032171802020905416641762401356001323300239438270098237720932646029628518648205710341222370907925144229102843043085084094175569446784327437412518313144836152870589660969627233607948753533031332329494043803124249694921894803006596722299603812460660579115202391000337277845219846030547327791954323184864896432358939713049375344408242138503072758418556772654421162289063272077591583854112283586567872192312862305262236319803102712101975717942531678221210775464243307175576814522898817201659740815912286376730536857435540930131488181503629651334773430140196109710012767740958307042494888360511151970798681010368731939362865446622353773039311888875230052215042497423239885234257454184779912844538209539351175356111478022028628791491595484839255992550916144091186747693227351948289538576927221051442854408536370646902453273383539264218769323978131220646483301741121127643499853918811771845465382437608965175938305196870016295262799217215028146106541401462464697798781397022096447122383557792347898831755152846866468942460141306549134772109733433679229633039449115945440128644896886752256596134951453117570331849423656100396543949413172318209539568494913770537454500149066306887727261955204824508888205232068347863762777565954335758528242282886054049089474891612860341298568008810344820428411701181393242009359302056668975334022608109649601452381286396450670013717680013535435077631280737645400186021495725031440721043683351335818286336756893299525254202233048079149895598549386803588100709784372431122441909605051471267915302329509440293993725587403353776421596124560874645697069346755290911775863065116341003626940455732091395070771358462783751896538647629568498563437763998217058003484085241159659071488853268813003035481256317514438400552044844303857906569238951302970426855799795042356339049099309991013634592812021279527801111788633354407206364279451607035038865911647325123985162100125797684633532786070416053899881422641781710907870876950441102043166302638823599755659082564249581369007002902883430387231759332278971295238866677564239627145526067282251358906600004758452350769463466026687504543636272287820908795614939882739125868812362675186433523942957494690894193982150293149917896870143837683309094842497669435910167579829645470014805458883252112537988017603712206143760643000418906557001377843008953324169441579112303352723444209505272847898771432488934090705964062709480096448700242326639017200900387373535840253476390051130997127803846102602937749070972181093992741159761509870891021775413431999060363860589050972140845284031598685941724198841161241436611947198759407531265717910262634391250629215365713547196329776868647046284508688798524171412252661577678700091984825573308815640832957483401207397509970533335555266464061645760691543852743748393093965620829514706006694702196754677218814949198439257998271883497966291818752344921223784511925848571482677962275384192061971535331083806650922064242556630091271423195414990715277122884868839854945221763463297329272300227649550776588756342732623660917640902512518224910756319499446012964558967776556718726772592576068777405445934781531515190517452675585085748951883806758796170367210765678750724574890093136070838346835811622683471368486595955192445105070856516702873520165113958197502795409404045300464897591265426081410515102606720442500031430766212895416166737139662995006003614910111434003841423801149191717000121094624950867691733498774530498964449291128486032015696601156267625214160714352390115418538980760209444673990081872448717775327413157356168571808556670644710479204331452885839242819328914058496034015665951884831258758757523516947537938112256951478814595534769683850232944880438284106982474649404487283832818400222973766373758712183467616678292004824211914757649236479441979330598600244481508162716068831073005604874931641210698266090961503791848294931200085031653390999849049573205490663423510141617724168403269849135411189390527733380885058134960442281710616380197234721954483155335752210984205878265920517744723162792232590434580752552545486041023825040548494745200097099511617759054533011511911549337882778867555766947592303518526784697125044864174907633294511271607641563320885871695280241597228600783610494599597339450355046860217191888101023193702221646504161060466896700143790846797476609125773638172979093375040162650986020934292053921094151996311145860996604932529765517005905994351376866365863394977259260545053914589937436934003846291116892642204102265846447457529807383505049380922385137574642491332332348752178607110524517519188069137228883414684351034623002328397155179255729969678107310096060328069835613703489053552591968665817288034208237332416730314430200273069497436145343520214359810920024332944715257524164462287273866063467198013012345883067010987332345802676103954527990315523193545061557707344402659417870315159027217939755597400991191143206780917285811885747908492918491817289893078704380160654271531466447257012517226832813031557908495644840270020193060677760700040307077226084064221259464589100781960489032755624589132150474723608271588488315125853349928891945714771767025535759173284622745039650994639664516770687743378466225778625079159786395565352113850225772792077529677165710978221460409957701523508339749409107212923017563956716627570824355472911702355272324815647924932174205888019711438924769532260190905072445843016100489073935274632954900967113240319473674836241576458322850483132918119778754045177411079799771953047160172587984009160740963639313015141049149372250064790972408955627489793972498205065785499247576110837574401051079111262097382851850243302865303699992533694133402694370390075211066657692516760227005039930439890702751633642229668057771952474068764054927489643349270731430989133765196546464969053973158280537023399186835154442436208463517151075611758413268336752933756742818329458273090032528122129974504039661549300067807621300538988411791145685856415225787064350753811367067658778796178029239781585110812661459011405471082307516303409274429250451798441797417775650544736635287610304266860928993684371910612278122544525809708857680230504331674605856439385157336676934577405230521886027316848249125354224338508219093320751204675225616813383230582641469856216301806848773020139861143373698563546799804817590692832979125364325431329196213062062843136022781709264395513573892748603670057798656509183434587477011673531742947370055139506612628962256603898599109728706899412174139395498228393428926473097522204924760393902686868209384083308954354105464741821145496612864069378856906903236242290290976667659554635951505718543796786304256632074068260513451363415689175258667728937967019626509473812251122425487177839798945175178980770420949055563738633244799681813223615979757897964782560753248795422575023489396433385490714372434978580856473622241855609990002828406095021630120481656207796737138511330675926749112265283760760362788606015037247529445875835498510792930571407163327024262487451419440453465102460805071012453756996607160290171553098970301102192290287992205057697127697608519124327050883900301379785157414782407993854703850075995531214493331975800161588329167569087335762439699199944197127293301438365725888570260578751666405223569877896421678570928348022386817206331751447594780576324908787741754120616180257083456053370943968704318101882288589611193538554102223365580152766882425418146489060503856656153569632626037687335656041277663870028881628707719670295435137615868103934447667445943003675802850288574278053311259333602103766442749564684473640304640421714587966125663676958143807660072512557050121097164512127153820119269409204135522305033958015537735334094670504069751649318614469934079631127096282726946579675781964091772263264698265629442297918102625001280038886393667773508320610038054261432902743486260002332904808994136945161164783428110465832681626224142532212898188095739259525955757056608746716226373615462950371821410505317798141851618009623223324099695488824272719112554250014485115840076204011743340472894020376251272103082712661457785990774738718498760867435421449797908642302246488042840473213276198617577387370771927159500900325614066200957184253510878267224948586593724384520071159476892185915234102881814449833242775742208842304225283244506966022019556055699074054692518286235609618127827967765714846860740660073966526537955374117290239196022284960953923258140062654130327693359163857939187076254853524576228801545743354714958886387779458457853887231744019616479827928733450414257685811333252706296640584400715284480409314312060190591033165141270511169366547962893929391788014969064171980357401195588036704779654539805098858865323494968089100594506099069151747901296797266673624534839478625596120256474237184990967576648790984360207733981222663520789447023422596569237127765605919341078525898572636299750218834545720170799098935481313013056545329678423036029590604995348156968724769200746297341658819286723705180082415793301331065208119635601696884121781082961793380413686868337207695957796787089888089805989452762139869738332768171692930206742623969342053364958863083238603441518386334782940136329958799579344678487839490134996576644984420107750896679235753277774105862800198599129966338698361660752944176177150802003002601137966122556297308431275931345869253213814660510560261196783848162411952407129919366429806770095270841016596370934606588304800279864906920793754387912246842256984758446664066974292363527029659863047932669091241724771016612684125388598232823524777475339196941884790742598843820386933607005763256224596082985324276503057566714420278532437797759384464052078074271443023396702842231574537526694988373659297177567086664636155048867263797524969963488518966843274121744128215172271788307770757552491918911646335685395413043526779548524593044483595710950701924085351600833285684406288164760409215758069655209334740538780488799222742496159510522807646381664519580743111327841412915598856038879420757605735129413261576203127425383787082714978563009919313055141416312700734871897246895386712226783602018998897980376461043843148332739796160093383604936140314632672026250521944624803831723331717168310013227520854520807273938034447013881132851980047165687221524161162983305445249965050447125439696954841701532797769231678095172819394252569022128623884589959260885577143790478350226193111417907441714268065093906043408761217955097371098261244666552157913332500286734940913005971183250933059729957722021438848594544122860677670669160978146964491416384432457372809083124689109953209291922553244528753764512743192789032294310931522697910078819526106179977567293658713008126651240475156546269052869450511111518896910887124048132377564309592795539486898674213030810685429886143812447492042854563938351173442317153028439180662134609946312636590828853219396191230193081805625819907739901853170959510485725190626467263376878921106816877603025038302416811672175266236761907550235662165777585504564856559442138910480529452065310792113940803378528995809185523621345633830193559423958696872868908643729578123506999333853230692460010168391790775547157763639854225696652904714225275803584667546018555047519603850820143452351596846473264569629471523727013739987114069659820444985816516257001296681009975883868048975761390413907321850803929364787827159000824913226295995326612045141885800494932218793288875831109888143655563846002462469831665333208175990451598827729863555700262146260559064932324946617665795053531058981475058828691157064393192991758330220493593294829317547735285955653483317399548438027102990049583616027159952915001722242139433972592568354916323966561887162031513355502174607060922139631441030502781149408469994993670137470041787079820493365605204982880277734297116647689922556072037910397069467598601278492179011500216902399891523280907084342260710405251340011219962206227381743071133769585007938464632546074781484125507863316699791532954448780532504928441306768780773615198929477497229678175506162517273576832722838964324132403791779405969248952500113961502970086810674487197192085808258824827806575567925994345278504707706321301102376037513088292513957605846719620343179042852548576681604631198254468230703436939250575480379661805016048016987781617692046865185865967477000197980751502674316023911208061222552899510618993400663635301578358763735015292061671419125209998829461743764117698898327508621148430661034764461649351356417122107590430702716654763460493276126443137178276104642212195794338476740800210700122176923445173543900015786322336825600244918541571914934323755336948432008047845832666498853827387667096837986904490163887280987183018718799051785522420979577702687602425867997055003011000783046678284695856511033641732173756635943239068804429242321683130576749495966475683081871045550559965519713864506228791293551647348785473584106929077612421286388076924086816997225776134867307463487696796143097669886780139095647878613446393610463524221381926046238486998504169296460729263935113580081739840524105761057147422988919407680752550786330364132430412244227656667011050334220469803309395908514705729262468929101627185243423570193189156975188406689248341942643923191721072758729654673042245245151238025002431011929348959381718773533692737217692644950264466701624763651372864549050102807548333415435974238113955147154936837968239335617854208014108269834124821464419081360018367823160213363993892642119341210568302143461420656916674616240022564365804598278808512166541381969909185556784587385703979454745514059616511611495089358974775227259270354613574673031470042969149377931555875286546718308048010022222247211384645228484707853377243205248298279306012706342630326992102347550039968261317310435082100837461996807299083545148423490408762409340887751563405655014613473346500968613316368698379584948479983934128590976838185800812539433401744267254928080063578503209752689049793962498191609812344111748591595200966301380389959034210897277332000413132287485029892357332602991364230254898583652038395330030567007884146788709961357303632276199641336444434163284382739187583257068507373205549911276106834410311994656388153541042610019063356305599497566326893201088334052875332277095639933998035989576304802758734098711468822360768732304300501361910516540349605086402093753631687500803076461331121117050352891613296940284235701912523828614867767992619707242464171417682193033247473175736137647023612772132064382222631151225581168424459852345499314120740395442136943578551462527052351066110434346264924418628231391930802072937471856950843341953383202042267279500067676565119241454401616819210766507892082547521183096040131383422711789610217102314200977982712601960340023657698169990248273929470248092165679239574747815530184014930433264557720642831581622864457020141530441455523068183388434141456274754889109529299146831782431324335348540056932872499221663769051079897072451211640410957072017050601109950207283380954297415470616636322769325984573601610519044902659236626661335761164588952816840789520884169797631987191115444567156236689894187817655810266055565160454804001081532202020669791538340717461083200590909898261227017494742118938804552726243120479769443620395920795669178855413064623758641084306748127565780139662346534982725151264723721217966318189155348593214962082266838308930176468455063503067185042882664558471132727126134583860796887844095302289948288402165417295449380155662197789609401317931197215531892313881108207778895952398910539916585023310497997332914563057136918086320129326340607875318814488855580471221742868825195193788306249913233618223619270854462966701972449661908503673201490782816060598336227440699855433798974353172795456617858971051327215462542213870168431553454488173915382310481453477092529311017018314172903581768918119161546709695711980834543712435263843381970533756644030616614302677637791019780747194754761121661349133266790732370195151348702703776895999879640847499503982531398609004007548562069865845012457339211385890050163452717788512653318138897739268829094139769161554933738981116990654772203922580559471499853335740712288931892812801288710727273946516109507483740698346449495502990345233549907509251148910014168527445877114293687697611435039636028094406363346651184699524897644283750508014542853301023360910112313786042448800170626467633447542295777755303474029346414779937854275933098047511257186921438544090009608795362666308089383336659605925632782381342455430896172730548555251503977390694807006196702790178119168141703837350256920602715607387700088298226997899164564455198409526427222922066764624632931434451132663179804361968441738560234779117615607261222183056105657963172019993889271188636766453275428309538990060839782282989351280049782729396437094784735705588495146378684907276397377249282190504782477753799784420554839528429983323752623226534006956299325337502063062955846258001895359178012845908627701060007585490870890127726292449081338675524037077612506574368183505151929913772705236358025273261428197811063954350564915230592147891728970063328361920412090437828323150365797433087316263710033910017330353809501953903571282695026217115138948095715275657779546836354900138822874541027802848712869733846767520151407869023166140128334324857630173658379754636562937497966311441410604197987660725685064869137865548829774357426347459331826442747619436718903410972166832734329625788385962682072692680045548097724992471207542555499483997718783555267223899833343323423326649951806823415612771778224463867772807912946358298195176254803059192544847160932512231745444808310299602508360652828804296421131085062086749629076815519079053237191514485113431312119149806429027197530281202522409906354367665905972415319177028983078513686733695738889853551398162318334616741908138917945284558462200983483589902502445832299629829201710327188904232244847192270602340459807241115689621825093148074995040742412372207872989597854502390694330977232057054729402232188591633520096481446007043288558293291532225503439245266649511253812611817414410721730517143142924049951000576267775426640556659132986035559523389037925503961875820287336014728844282270768233128582839438336632138406365957089563988325315104620013249595774729969874990891833146447273793818043507044331442420905673448648231754786840754468484385383030081687346731801234260851453672101624128864144543970730007280432959207603036505248039325709331757791132523755760469436845978888846920989709552821904914607630102293775057224544459951537398054903967379553664914874730809867705282636631905381811827843203269833296934501359466520032065184483925711286201064420470964130400461299316897943465905342638862836803052175202636134883151800900309138416583071586634516182947102097715640283261397714051144054985586625136676108500250508378210563125594245467337208315749575546075825314522615475372391762480011439503918143915795534353502246529024167669330407758321321272284739896304928014326616224786810496442451975357553320826264324006276016571013882894073664824727109635967256361626558694807519909307023159078612249263402137181099068845067117297135382812518475198276193088802027394593462920229043586780338668583239017442956795983145917902214053165017732705106156513960515671238001811260201972604820262734681091277809232842052631970819111158127425503965621561305608804410671047225093850346538195308370642379640788579193158966478160770474660528016013539027267916655322307201269968048928710385867140301951520698951588108191026320398843473337752904010300565273113916051352969044321578093399905264104618007784092372193396396399378927043849416994833403680740069363922703372475652939147149798698495493256067171907159720579178395922370942246889504040668143951890590001352653299983782228366816810733885696024811033075128478253325630274902211557954962608604741454336423046035602424510595588789899044134764017903940475740932155303866712726914753286879984692086481063632980310512238220424832312240197987062414929480815135004163188828805782731369087419484039217978328181869884292578347737859164350741488257513218666798991264521379281714131730744191089254507140224812990477330880290255307934207249823623761245570926396072899521844669190777427265853582926485577481208012394224895495289438219083100247804624056185980278266062372147918292667067909172915318446151482897054878763760214449266875268367993358248091954373537548514215409307255452534424805042340658769246494681701788699613627657964091290626240879665317835221585714585807965671710148692943674620085128361632912452146540979409511765697810270970902685422766109267708102490666297895593452726850389106377737731129417120738471756944802727174861062686542328233776716141259541314606880618160507709613783476455607384813621514514543441723454777539816470622389114747387676232305678498226713819761417817774159918153227249017560861795369052569704094228479001043771071195650690946656403327669232795138811023888061978429186544268852187405091821271426211798245362410527424557676516191839821927521824498214218599973740203284935608336250845125354001925811134181830222376760395659949440336302202416759563176296719795463244422940733907739730305228203597523073878274691073398864375769594828675202010806315196373167291065128421841204810270080391590311183629052153578147360914116536395673291126622748831629644706784338344545248814069763447305195174504648932864035531537387892689275285174056485605181803094535192254014956091430461340431058188066624612390817223340543570546475179978506838419908857766150648652237401355104885371129051773407370740418887520760675016696106037334034101546175534428563526757342080841932639625573565548817531587288728962909687071719511774434439971849588949227169059332264836327089343945454967135888719216205104516009289981097042795246318872043076116868396789748220573541539466752430479182103035894799982516986693593063490650784125543618967854513732128316282377827972783484647952241322779301388417460530029303570614629710285571704108267658149582211499813013878342896983048293758912332269044772456694092649295937785725685037045913698009866592001696749456387780224146904605565889194816086569821279226578662175192571456394184400794198009117333802741405717049552192171607459748223308638914470362222282158637445264550723016875790414626119742635206637162373198270632749695125877301694616232132681020255149695633627572171252633262613973206576648841664985127516931418060980391027325044680019760510247467026255045571217848868597951753688582714093585893041929410284906140662691776207974631043957446975247947399314198982779658578861611159692532646300010217289846060063829047191032905664226044590429843330196648802419516898491537230373852764592995494624084509173198815441630318465214501700188305906299811941709152026568718309759531254215751194456464338640313306552171823057787075811112872800002682575420677519242996301052357455365098697598927718202301826690871041931476825024321958524865792111013860393373722016230960647977232886701236683939373659734200371181831324265044838657601592768383499285454982192060464293295797714168399796909716079422925405381067139220014050092180892332300312739686948822954372389947522188323095794211889669809474006296656771530392164528848846847561846003249304655581068488725117195194807021314834999406504613344290357685237379387793529752283383822411694894513079711352331465476006520471959009901474476329818584178035285901658941314603199105463904625235255085448036154454444557089182652692222654808599427412029621718312098291848829244286602581928557025477894777050111927898772563725606943627529611119641401136761012312081296269134340914899501206901200973529956681515303987871333504662502729279992286833663854335886585087083441458485139187584918423772120484406624698707705324806278443265205226984960258816733459851065483911843486983506001148129679454846104672576038664164740802600132717149230047625765425672887575994116124669789575715228087010265299359431735558081334603505400138827465755364328467439841067618716736912031201261877562506273693298468031899699648857339650813231769067691458115334789851492906892194182642126112243065359784138812536392224603928042428944116677280555179295629621217987599844258074028995807645066604841909880620445823940758022128759527457830507816812178286961851441989778288684349895284107325220971253197392893059570180727633994495416201310173510372124488658797906937994580614925548133730053755708473229677694377345594763616981286542079392121184144936175531171771434276945534312793030154124312938356049526854281750762579672602196253660677005008484250687264926670409578564026743048506444212436562451526962172866105506252303803143365794090336461827473792558442807308299879321059974213639491287065364086421296312377437349371515354450303222572736327952635200656750104124521181281732558404466881501118241796933542704171819944942403260072568947930899621353703345737605807876924552154131586792721312413463721705887540131425896268116713741578802344231633967880206663440312059890588624969342139069178419613750192720031226469777292323785936406169320259394552143195911312491276427834357940221183622369908760584492422683907478879603010780533556568156736780538771579471645821990877581496248644276297015205505143140446117240031466879128278164499734026994254108872429241867585422646313853116831555931044424879175713690613239813317192102532383654132397794971170867803213934708766708822308978913399622354351137585211539749168721700074723941577018835501405183581195806916101727499590566487604851700730360441636893408904620730051343892984657273972141752716263948013404412491987953347372482716364966872700778055201015681869053538470779663100077297680971811573715262939671247681753421114082592980658433790705872430995319662629190178213726930696798024946018104459816766731065204656789524105188593349312849448447927793343336148511911162446990347170573627566150536866028729918004665332325966117119229357962358519965907636601006400468082834989392925014492585274765842546620054031572578016195671487235415884536563734841784949071478145551720299833225466418956446266377177607749135225130764392225682628975565999240732610934348842821618302563750304791173309326744535442835138713673607702546137093071225315970997061355789079930121248635172171146902323870286728383901708289052362030925690887504712518474560529699610762175070494884913786688656004718841575980787031829198033580877181732757802793819054337670899832746052453381703711505952321311002235912403220516954711556273441556244118585926945047480223939190185866899098471674902208960163395378141134283382939617655142294461903769801383745107277852738962589077638354606014408535008955399952319643602709534079448198245312746010788789893755074856289801505496069103295567807685305079588243341763892724295520857036207926866778031178790569983046810623311112064861919148107443222487903318642487309449937675761425880099691133446979438599462387022822122078378116983468440592925220430876207551186668512307302128731240194124966070672691125283971182892061700819726794695914207025572797668348698813321867843423725155924473597857269359466359052181038438837967925976811070991269666967111172233759639733631161473744896739039995218433952059344494202548396582893010109364386325093868958116453392096859450225992381768475966210509082555172996689310746621103700317588188604116836959170315286098770545171474324611897258112542183832636863863543130301496478493450265335722392263182133820047484360622798861028637855206571427570785256746918702602584331076750528425902336598011908574451191275716972379346569720990486488795124364015332073692937468582781905914938008241081787790409229556118411011841657861613249163100335819394973719820948996779188447959693894892226142240520339336274516259492704747968042658354141402682068576411126156072992744994285790423321073948198904890003669803723991603834983592793601816465484072773692632929957331030130510921271748968280582085433050667241675483371324156403858719275777038432875974512255680499290166340856431160270631682387774374783272286988378068752808661298073801755120232458919731893153809860876495525179787249647702391682449660574416840078028335700523432970424299976908108063642795795703141372206151900151242342086686634311441685966343822603155362700655702568334866489418397644049752222341749634624810699394468372542090901224283906589093912538805082847668028543125884559535050194950696210554292754589050254326259494176321579936564244474638915839423797944718630115113121862532674116947161051407237285455987343796957939427780947754033007076360181087014673502749587308755428992096240083063756548983710743476560472454515512523573979977603360299771122256486524817443614332873122956180459316371073242481377702784129339812659892821990654204796429169253318027590204153458426230792784217963208008938081903996925589212202841886502775378851588082429684560310078807978493441435104778697172677004815753652867227471527391043350242258482974708314594601285834140053638152591038871664591753795541232929357576106923817038808845009237640453581513836414670143689598535336592310374300859231735137451493939510997436033404895152992101653216382961583858173490453000525866818601309857234693375391843308778064611910433834088333490556489276435630673721215146540664442331416840233800796856745427461611489199494654974100414935850933421310592613419848168956705141382992526982650405634341641917148638186204177161988655328897916867327841842547650355721467430665620699078781036425086034305329106563082379142606919702373127818547666597518095994177117761871188157134147777825729350285996256874476730134790325604061807985630688142760308274552315651123726547992710478301793464740442995756320105048955336133150235010259977559239839270329085991606905188613164020836421675648100141430977020946819470462416974946016877769548846978012340133500867749657096389617016699868289116037177254153530015403419328370575408761060650147781316430589179903843750182272845871907262892966483385649351430290114961351099058635190110011623552090120266503877460435151673698300035212708148904526850085598168886485553096493663029696791295288168122632730914880605808351604532445851731962145443950191395988679364032059832145229144990124310821290592102202537743869934169791391290258862803934161896617958703403648717491183481227325202171591418193319506070584123557654574017193363689487484737989072776881338499644268495476043733407718492550055661627188143186536326081249335157247746009876289381789505454391114166696490908454378387476467533788932636313197377767610595346660407319521305869989576764589713009902603285190868081148952214049480227433945964880137563444809059234334836741094545281577659751104606972449220609312213142345052877970181943384159565865423023848841036459914103333978152250001635226981548711608056764821692130900079313506049653618052331675677203072910447886137474110796810194010266001955427553135380643689120365744309691550504447807686441949451712228850714984898244463108314184900329382215702592203764179047817221458101856284799471206084916662768412276131183061236637846647924493151835285511107835640014078236972745354249934070982693394462003945683470329791958701028840238912304824734820992487713765274198248081170436988894355489590290788947104042087819714854855342101932060658802308012312045595078750831675406152302769825655860324784095269774282740200593398440082003971688079992304022361979806973158475062460693138982068897113164942151954392282732479306579880129931466831643440531620128512302506571104699106243702184271603507911482772965327609032790183561944449238428619074574162047918093524181873243987020240852004506992319470551127938144403644817509272379924309686755965273388691588705772679033051972013992610524156813145511948758001195038304392964827058097260634879600466123734039610360276730676412566035084671216893829975839184752946065722965882726787671354428355955976617677313966071358203453531459012084776468552637872247316728568911167548058303649579203274627289316691492919008098812496056195789454141700331525171595710091650913049626947187105988917136478970741388160696542764149321088488360886221348090143789013631440445774261952923848649180802173702284442401495533529688528932027623083416171535992056151163839396318065362324418193065200203973118966770988172296082654401951186257015690191075052335779169982764583096816822061469518760221713611997129638016662327686448822262302579013120049745604251803617959380949356636825609350768868447830491361741159962773849816378413301320269547538768678394183142562114806881020377734103078315093960807366627082600807405763915172738322797729064247468995397666019627216795841579667102254110202656936037498649159807132766818059187425206135956040108567309276791274967939994246857718885166285396148054712141871577242159205116723100694459165467172319609283525779466587910349227859567607176508443221571237995908750443388721141178171492452134986853991773129842904281912032597287928327696902039430994188148000764704168659659230602669950429627512279630829684214716245766134362392767112476437664155113166313221542685551166210790461717075586149232092827706849198846586889874668811410859484169716122720593776638533006324526415059961124711105260867262779495211871708403456704333017903144224226896427068666033750517272434332968091059462779919160367309634426548410530606834082134312833668791511681988131233680246412764779255129706633997925418113099149558889471867900218537142698634400967515990983551247350415123905786199712905660345675760690829377667220922690202693676060435245396321172995585075985409082526292381876795364210513531299069082785968522666277554028933456356607480868059821027407369516038041812546076054087907285893033975286797241409285165485307240883824239217834743927256597298508867234921880392022891854677682083257773114123484018686355364113421642762341865756312131463289269125359876530545261335809841610419499065361097125600646492923181342055095475922736655267272925471707288573284278213139598964180414237806303405572101648200544894874378133310876914528228448626648870370177668700125300123231694568423877825250662608006552847057235233722447735049592447673934062692046220140696121618594952199993652839335002128599486706094417822541321989241367573614379572503862438894908080289075078181892508227018952325425723901963104514408304992210008703602951306579213983201588177156448356168886608675379855270874854845342141276017322724290441190743459093871693649813600495423921696818668199733045961949763007882833441907083431226311136924563654730309547191322088297600047156957369839396592233011463623079638446492089936242921614516093413562064848566022822846240605836911518502180099994914342197412767773259900483981252299078764629304726820583613559057778035763926837532267321919901850840249274151389886984322603887297276679138975839353203717307930543184103141114762234232275549269889566761379549747422568165871606323875817203925101744682579225527387776708583244520538996863872227417413352509266803610814256546779152443699973770352710931794122184903510808792722323631102671018044037022193570626958884436441411611439972002108986991015818487282544783253141866845106204052832954328336268042235130025894967673231248920111267160158314123460430697700247757366917616529734633587447095039974578293088917252065513864951842389555278512614833260513736688444548380078665967055776105618431050296934729360313500940185245584098027890390480990398158366783512797241253434059318558618546889086494295249474071752274352207783174617642279011455292116834068136295326616188363257942267437977747906222541758952342496006987031558681667523408198495753127348016081213710498889465891261789374928516314531260015280630937028570574067657025663775046305096152664278945828098973877142626394738704944938617880974868429154337936747956821669171408905966375537118930489593045230529645109976519982759774167047621258091398284730863244888415571736982056447688872444903479801195334452715161679207212432262724813586118896697849752472968145996245440358831482021436658432525172941153214534858825596393823597236982755032590595447000224973880011260950512580668578389661786806779293474064116035916870334123129844808387937961462940967790536979142575232831971766776559633758448688158832935184722666708245859915237313706525874708148882021836065152643156712257539551236627847676637274423917038898819498479147747833769370067318756378490788295931201733048088550894073359156664676720723555687789931246724157610788725709610077695450205223700270828495391508304869780331298682822539756838360289135502473402478005821371640223140890171655559020516484062508881633918602285823149187616213456515823609701602496221277815086663641459778255563308874674187200298133430033787155799919626660371395843160117794002838870725692410030354947312514902847184252055138141441938954135029880912581682497055536204479459961018895559847270472713912660167133529110845616198816323326809627145144657027818591184571821547986017056159849253618558236646484018482154820622381995563231781364023418345252199435992063921702006198915590408679049420976570997789440214607990414398247468890951586305891034134364192235971482473834438007643723158055895765714243503148704049474219692398936808397625090237298744411060204238885049367973912622694319266588192332117283249742297721542403612448195376480465205198335341525447699536999736930258129931744011237795148784602032202081386640203427469327413636686850977555495149976043180230346509351616430445017247352384325361851059965462965486560761830695405045296940322440431981043537527833894978924329573775531698654023841417238762124982633349792472328873752962414638798796226698196439668438157109413638420331707494124569959167315845217291655916618601101432001769980016176531390299520522939128943724892482306108599180122046558824980489428131308709866045765037912631244294126742137315514970763627631241404553658697318307976406431317091369058249878347132298422561151040579834423268268092992424286429305347970972283759322968287292445692507726170579628533949670642276802329572047236288399001851901825131795813889289216507000776156154409808898357337916674624294967755865840101890945117831162665511595303945802088991009145913677699117740768978149353260961239159120278033197786497475509677187103050328033147088100532564333575078004758350320074449255296089841550971561835520308449150969825591256933403389100100263942497923211762223666011872252508343399624893808376025700167157820504091020189058460854559126502834353771955407543197468668034797862687654811540844967039763572198225300746851999568490810963326239316045025486642623505206048453611251794544488196833357105034033799309818108416507636396911113724440594762888355593730744266973173741340962711592372277493344662515364890341969190954823353543657982960680286713398524079161509778626759868544280700661437711680151430129968272579685739082458084661675506967242392719671568746931614275660003945785561680290345079633953865267011313713305008759809302391802480067514451272330329085365056383846352811229381052238362210720575264375497975072020247109722466010472170056513647217067924087002034978607006215783040331353207531326993909759581329451362497138219757159165608548162728355918399955439108113288126248720642567237028766250800142756725503556566974008860234701712137207011093859165925790533033305751938826341481702707725898581433443515937845765228995231712869667223834750688626798928062270642724526326469458661521457741033685401679749038142067238648162054823740206651835553990646245301496673334861814133160267514443966597207400656719792535555567099715988904602712442306086731287959792532349473875073067869152577546845008607034969646212866631876299716416351387113112011870936575588035379408943087661917776258734378065270963251757468215013208810530150165719932792421851384042510543872448781587041930104359512922786945895576920124620122751213060469516087085069298997317897767753984170846862580074378802619546944584176995424411570134535519525773450160530983576418157163545315245142786407943607210900836646920032761050542384366835944469637053083329873324796477989958120565006920367305758472319128199031366235655698032498489247034118327440442138283546634649785419250384997892026230317920416046984067040000813562269319803395357773247348474303674148730073794736835280161723739402892314468143861202940679964784828247723958653755870036020664601743974839753037022997037839837769682942119696619167071348560822913209231826031965527956200900107426144337188364775266084187726625030210117243100770948943162047296140519245172227142497503835802720768171939995682565857189453946158052251001721600099830198728432136567315367287097882531004754426905382344692013381668257738316607224568921096943824921635859876912826010181920609919488250666633973384275114211493618819854479989596043485220392371007367002311001473566168015502774748319025335167753873364426365313395147172171907179288911865409868853504489200291947715319534225581487292080694103584516792323008733521084235668729697084786073255364643131511422319625249762169524705200536321418736239049760458191663403206524271067983097768293805993792073805568654731892338449201926253360112600547338315067884350091444492963676991923264673432273923614711314809667514150349157112894791217943720333118887929368426528777283428816997686271289192358426283633381730597714581933812242138959000000401768680656824582313533557885547130128430749017550800119588006264299874642076458023767525951129512483052377391005468608163089635745459887851595727885115750957672456098255668876769556089564387274243131892119703826834483295570256115441017370599219766550486338907942471815926449361171123593759411402287746310104170719329167509288691209910053460210440692834198542393006283075270778563104279133852093810059629022975345599078998236767761110343181652524459150083769749555405595138914125966403038719094954776267108924686829855304405826185901816641590366425049670758989947165378352686722878185194412841360377190380172696892894416498600539671136776144538044837039789461850730670133277691406540898839415821728840469143058443556476486321323293031823331088164520131676582805117830911147131919830597488595324585989705023672165566928127493307792131829402314010722519150479900402591424145139457374870907236394634739353259155484012366017636361686993216624590097115820817952270020703725355305995276438350919383390900596121211100447569967305911878288743866824994035328942088551467672604278663602500932196580979818532936835997652102937545937865522659203984816291240439338047901413057343836857398392758541608510770479172624933385842871079141399633572327971463686455298942387694269046057191494680533531000549296990532947984809510100124849527473036571120567543206135810549503037491951178301256638187501160428492054659986829714766790989593045387031854431414613245392194662351716021994730872917095117654757149931667128124541403577181593738399984896547591957463557859969261071538679650149876994896810635574092769534830436570017559567570874688311215554883485225639749435764910120848289122583047306829821467717069069256742743986643296708218293566410202616917978306973785550196987653077152404757742460247868586936610897965849677953016077142898389963001661950433944465630917481183209349805467338199421989031190747192302675793239319147265357170185527780141442333742277310377292421390223100191904515181838689206018445568907429476257308266205918270032050352106606913614767898856498502697122373388442514755749210135690231433680788588971039585355404469280128985730659306561052721109358992794549787952139282161674406223842471744161213142525246608961347529850514702604422700759874660285579302283368639768713810431732881359099528631231256814405978994019941513038908623126665553789984864454953471185018281336044510026029757511144492530815756049731349725714992421446105442892685312438439319786889212420095456224293947204783997978854006008034921738400175956847561251867649329555798248010483710425607386923645310729704765908737951113883831567841179383325174085598753843606197051903171641079102012952125577015161616752417834714660775707219157617715659999553474619619425715442129549089513917070593467650726469052973043030312000044573750654627990091820218983536048382902015282243248734741235303565152000670120798010905773025260620999315855924811420798728426504230007854168231136598334813354439315924633728770266214875270697652151850323728522568256487038583720583207956869833714632870864099751430268349647227109783833466292630501317486870732062070934270963316414723183220386505422855808917158045229273573925725560513077990589167812242252864113310919712115452939009798119836560288998036125043373152568959792701322661818247431932560340233157922862339897117543521450684656074157512697728143957959863529011300955658900075130547066065411610326840066000305127441817073130604962897880014637352799570142159977705038067347930483019385056688445301219121798301175598156184659511043863256605530832511628353135466306764392192878753799430956220661401614161090437431405068549735705403450374305708410878101580837839102405544069047325362662037822108628067099663199697983586751210854889268629364090605511977730914886164082082288469991453982701238148005911496425602548052863977761859713591335999386110621835681291939073221559271858448037151394815080740248079163846128458350430903989771125364513549650261989249919196823380888264956230832694376565746177586751119637914337185194835680449051563044359919030485354730794775687818832398270772980231123911864323360499079233934120697668666390953379644460147174288088806398885543051551911646615697634710984435991180208070603952642201556258954595751470070611469002151883880350431290396303056166073684276546985038656002827746297891614793347716430275996860439733062199781419654740107098186894864687597152313489809686173561310755804952465960615547120060731298523971339454075420883697541490782044955421699837027414361948010530540673140365064609524966278713891877208658313354018790016378941975087731167438776865061706060936713431287608873298042428492606134110819136208979804418442470876127370717044561371132019318739644565320932084186354437163872755077706568783868397585460903041191189947035596596033531334620465447612553596522296483430459706940166854403287389391013037246613687038806404598014107451031811018652051309701136682866330411749710735666414074180578304298043196893903848797966906584057743953878158611573296648477908849779990615789505723621755906852795398400108657526199290742771143539311274958828772055640798378725269941874403600359495503210289871956368939139168835750335630490645095229323430362458976561042821089597374931721902312201572504255708807061711037139864059130854932393877798205952648665431425336678935189609600822203283339296465059020970417233499970118032252394194599497502773103680096957337544991321914752409946707760347211927823285974169733548011096045494555983741832370269302418114980124626888095867235035843306646509012941334290421007587002834325395251619095888422037961889876698955207627177415335002893417857175800084273098043730842272902064918508491084115176454978414545521166286826863573462821382312824877381009854891155266867007750101858154231699925944750560559357986632615322422802459572471761330806236448624864451129992094637188612755776972655370840952064996533748381999596559734192635721714756718883967984085141502369284349175267091737609366715659319020546634093192548057878984073106813797028520867722930982349193288041609298939572606498749115073105105279784398413728858870620285495416679500057336962090786194225090025643413880714381631866526664336053599946896728638508450455951988753924388277992107163851791470511078615469286375211546954572583407856986873526252623453803149540309547997377082455627450101873400104464093292820901104623565040998169866521689471954265418313847278524577408125618842559380645346872305457615128900901945431718165220247394909973205769133567291336640285561843347222762338921818365659776987969705123810458227762697647206424913380479864710538536604285818574352418706517770342240956447789801402471192637740125085622455229294734117617471367689874542667907262288870397793379674632329980827703480550856995765569760884087454870821547356245022815614910095582544923748321974288182122681185372962360218798609909367011654505999572538686977431288691774611371885711432346278585558507331299200317907261925917744530946172395155833553004130933551013201546085840044806219010718621936862986126740610066434988912256729479131748746594521869943358224321748539703015678257856626534090519702687415629303650176140545325772061252767900907881169643013462176782875171958230600662607269363563680058576863931501841969212175290227317785092092564269548760916683300106642424626167038613463682037194263471864515045382820792968280297635897084706736793051572478217708721204291795135799190350305087970886227242510826775569323514760773427115309577734023839674121654819041148018095597767756146206021228774034992133994136595883004758529734813847286710877494252009320455716020408873700370310960771120334881580713986570218190954053062467646002687144870038542332552810759731856340740888324542208755547809133337026398575725634617728040151464637278984642588368446372532513490223200742075435794975740441826405336815306129600071671504269764687106819641492744798622580596828106359930978242936798404388583405257658244787298246907203573062590183606721262057569685689587301554835840598885415206032023323277978068673449357398754521720789377310458630830555695255948855795920712351722010362515803324580341554592800756308613125121577071441299193200684616927993191171484347893515470549004649531728996618781070315255552932309004176220158781799971117740013219975263044621686449780664687064332587002357149276436269472970819686931031137724826719647048787012006959480957742720496279154802734243913310987658826326225284134583933194940372307426340214174969643975636284574576774766121073437607467018143942766118064496671456871579494002564955637155257910740848077847774214824840930542240791053517420665263707495505349658347004280863391587867067166945374254151491482868965667265518717330173837502330098838786602083385845857446124650816213315333071407494577839668600529538941034920485097772253204353893287920379449331476174763938825064907283859520566585951635886093813587210058177098732326289896138635603450267405484951569696522051661454962167506619046872775640263354609810571507784291577396094814519889727261454927854938593292641998185075251885604113781621528830158618089129535869615153165279478729574125787338578627086539584624065430880295982149593761206007710877678176620502435393907256112011464339147242165541367431178690272577318074540914072065742027005134807123635225778909374473686577253299105714852435922478540659295078477575089974586282816028517600564717983264245754121336674996572646405752559282318644106445298655618390779803725155003325027450299186597433232602803924746530027594104034442358512630192540711636181753005025815483888542987767829997969364836153410999967090731378810268942495717893565387846041372838973285682536672194601307109686315541683438951160060468724251505015146562143379749261927202183777371177326450136249496395630149188785244830538803024423715008036254944314568492491991587717218303868563622483271418938911645664842285544211342922280851097696940652537654213378313659130399720204631044506586923098242612747729378397782375694502341569806718796854826372201966487847840141307248582788977598230526056930076404156305163685142358856561457839918854867842039279497689677134628337300283784545260948566019780024098929302056172363399626594232096348717395311769047511834340957728493182808914955196098238366805682465755615133485979441015714902061340504289418832615738418519675069357144960066732776430810945435899977573171779454074398538781150549383399525459519857319318130522466395047006031681644490333139034988128445908938490539468060628879718841949092574073486764001605494566980228406623328363960372338360705410583989750728604089087665326991047414346066043962613480385416242874826996319764759615258071544730039577913376451829874971142851569872115577742250535253379993338988165797124614192308012104019911801037442781398706008489247908087902188767148876879020043329692353588542260726418508514195420622786925545748426096071394795775551914989402810380010206952410974806241752159477123757611002387908273803783022438249660646914385141205854538814649526270546878380208663696770024874559137858158042293859669469610061734817869413362293474234761274016620172021292871728134937828050256707773828125968282725961192190537334482470927372964281222568195431846143280239733366038876113612782727425199033454539068660086892189450483384336384438433965453661031746963413225172711449758160189191203525215049427373925427111332670027094239130825996397913847166657463517036832675449307850306173578403679927401183975187147178897262628843830485592565455491226325147326113838937379197089453033420972086993124282869712000570209329279991741638777177640526500956488548361323560034274678082834989773582920383319794421866472868700953543081782288679450953085322309764426486705941913759377044121477560728848400385602325525022289332725600705098487481648909085227830234728045090290886342271612644721696272217342727820250724086431735868237757445085360621866097389159962564288212751873855596636198335856642107360144749171025531367471548304313815366935809815068575009507499354606430187471178523206840170658540823438113476242443541927791423008241285074555422623629266682975415198924726050142226463430120757269906561539965526838692835611127530974630498431471461217175330068931543147086513906870069556508247975862346446431976957732264491385405748203958537925090924167684409578065371664315992080103773840653988422338328007815856027199474435034328226188797352328597399890672299969106937640852827248276197839701202533102185419409192627796285304551042095700337940152952536782592039797477919402117192057126314012390564174949596649206603158844096933344547320014624107592573772517306924613424317540340919174987842394219794493657349129775392602674668578493748726707463332681806677968298159754984100876944937074272157270681639695617157356764647263967943379569884477128896212118916590287628447845481392834723839841697318526601966504247807351188367541448547109457545660463107587016585530251306878008150187989759112098415743632870194264317059539042200555382243037147016247551287127091350944725970021596386950030501419901055812712396332617208446929740653636328294865182330220999317238205144309395707196280783833205460085206032940103039462444355098098888697978920314374565628982961991009604788422373719626509969727658196402611601995455739459050473315070681278327551921364524938320463013423729688940554496614856738457731928739351108865201613788573910295066637930256237641741150192998770642688010127190250960590623036437652708040570686190219634724347016531004230208876663846729709711182100145121871202836244612191594775837944974170828415584978759406024545740233587042349956549586782929925964521327174028152372453863345433851750523525229437557163130025122343060697456971491450882044953984266586727746075755472867322972736667087546508763917572809036475033914440727951392581715589812888237727715199393054066681688083969860037203513684629481387422602002522594532494861614120665229790743555318096858288550749023473595155102337170787273613170763485548332395127025543169383949619021432457196881154446873707802303229092792571855480924387356790898016437772568836714566967114146440606772829768703169584644487921136195022899709462157969852389650728462202920320842966363971327315996809011955745066483950481010579819551054555573523042528131721556249120418285733245224359431011300525957553820670972331849159144367842983586972370454362875043121734561545910553132638566750832896046247096412738215095676480211022657934940115248965562932131982017188205571052897348033194648852508468566655006425241820425812949906693289782227501459867159464619822334871053559671761416474898909828335098625723438866819576918372688230375593479690838242646657415260644093828566783244390449898116901318309612548086889936142194216338345299805986283323532580731566499245628983356911681843846019190746421279494605276035448746212857008188862825841728370833345478438493617437018319336331669428398363478071992185866142523847056131449349695486716600638491722739462394774801360148952805935010304572987721148694063550976827383278309045144843712739351843760413168076212009770268002412796435526438729139987922018574895837488141335367745667370234179561000186131763307154199084237685653327850452811711417947327162694744432244870356409750986774440034845493407443260602012296080183217339710369701352323890536016601918901785202683562035078180182544114438737400860393373386834183220124722356871917796323863330100885141023067381352967249636808623523787754334292688310699911407968056310578529554604358901799070818682558135396798049378310849165598667131097267793727173464739348081556584410505776531733596052938320760585349932822411287156200818100045934302369679878160831715734780120755670796257573965063641760508594813031144104190494026523978702807349801480209055089937279873304880254966011766268614379916033309281812233345366353512463428689609438600372468410518586701060969618919627654925553550549354783854215991303752204260312033775611542637896011746486662707863092751996611568189910284438643430694484954632731761903106375053806766472966828661697215354409421693175290575798051669177487682291352443863257091555896910584996695688681125476322002078076171001013082260622282950777049290021222755099186389344438587914905297768681122314147300212903021159574928366620172294096437122872272892697959143772320278652908209555613458353847671845625493398907659567466234071263642415612164928077851358821219913201673003033498975302844953623921772014123252597845608474407926111272631443318110129079818105742081100716077746814749905266900022755588741210737806150855837797666326567928567435360303924482653174382193565143096211892362036657264348987699972049375166176251252907637459204684856770346676146139673872694281414143787527352270799407516100131171630646432539914149731470673327892559950679596185525426524010861702087553025132656626888646406770386855634507639836843176749051209208426837298682095455442957500547359953525472469110867245396963393876326678140735729537411207549966002723923260798657061325749554990693829018601154194047696428402818708208815334044544093713803015393112978373099110091467181651180403473023505349633026683339563148660225829373646387275989136119252372948304906172729831679927504658209189117096624537229308866868005759158942030534460562476077623167596790133273166948463954288964770876089934564238648374387417595225369287459100072791048323912940937159113954448956228275957525384588906198460487147302722431072649465024232892579311990725954199386450414156686370779396590065796485243405308840654910278674565197555646195900739644079453311318022465148418134214055191183492956093855342478332385729505678775473799977484628447526214146094308657783299941467907294902657717133425039753475616538876734896653921584525480067993143390443230910985843115591190807798274210725575417326622496195047750415947222854540291003970932872416768856041487381503853503985903191371972626291654467829522573368133757339177446359610373628886347442930436931071382177995194198693299036816092358876161575485730097025037377618154142463883230355955529197715749297617425125089858194521456499062772688540117233249995009233139658556639359098706633434466534434131204181832546757951805170277438727104606547852882322753505620022859528697334138981303591320375597723385620880679642081720253320809149913110045649393297789892836227112704883269735086637692745308392722398674143800443521544786427466885362469806771791432440673896485030427805836536378203283860460778152437576082877892962815505001145447111900617032502964347515087813591411801853038243375016559929316546074006921083729723060481356210831501224875966619938051565387577754666530133975922226256849277186502255128781251056096490344601708440298005329932592622454798706306332487952257591142279849778450776849011962359684158085664040444267927411927761521672663791540389738879107807298881983760522628213722239209431919898473513601577187701033482469655626836133440137540552721372205999406351376619745011923820508123808511565107043551742565940491343876556814748959872148102170459943079526886041794094199689756345029857824536692565162510109288692300162662773386212454081930129260492971376720446024115376006896637793417510485664166070664733377141966315205266518046426020339362045000817624248458966755968975240122474751295040734457559545845255953219402953783093324227499177982836295662372354006969076456926048035292778965566577297587292683870126023949752913604623777769840014175547568239384731914832681362334755380221266557726682384385952545463857362921575413398248007460422795576928420624197679726752989644259493109545242281246250533498072203465902597970739996794950146590672595797474903131414362074348008709436420120248828767898727086669924084370432591276267455264333469531461635393805204230871271314794467826462854586505281530038076056023940842657917577297354922548042949030624210829412830555027402521260064827212258707507159386309555712498655252620190398999385038625930032289226150009248100413610371668400374342704511391711346701976483853675072401000013891901367998800907087128964795435386802742268402646019451866221555876274241195254059285354253285540288061925016995173953701124090755016823784540793240615544843541711186263459270173666368628121409418787918764480243900900704928776353654395132588344112103840720956973537975767638614876656716115727757814467042074028495971178144762342909599428549383276508167805948365675462316467381365666797532821196324282245735931558582184115408244817100918621285976286288331273605990637047829262575625981845931528361016851350348702108506797005463728727017142268245767690470331322189657149114798705974821231606165308623157625422595508073713770081223303649025607579350350035377841154588476949669632610341958124236872021632349348036672873033271527069793016414168856472681906213402217162989645177190282999370189851227520334834862359778494090830165516387696086366295948774467974255307935236835321487941050022840592976597405461327714196128362732436021591821733444527682703527959159377388859879641219263077899125886326848420125688909743185367164687236277297289584112196695424611683120249644047173034238592221242862931353093566131555748983769144902942163675032027874867614937629900804560577620199106551113360216431237476099716059845340531174535247258867638485640934222241918735063039109412118088681382709849517001283409698126664302115280732118214857034613403891325292819500158244198735043587337568681189980436888707083944517856472675348053290347668672749478856387413314799500147348744011646198971754330231666243711483192089851325758475745638805170158137083327097036389669586684408599883378409208127105007749353321914368258104825927729676818968379268448690534745718808265812431261492519133932196204612148475834796578515209116053748826465576667732933669433238606087424413219045543267851056284342758642409735801748594706659895509175703763019719354139368570280078933573302943708351182488697702451471384361094125097973114705720630444037486517959734930298762824340068331842168586594163606874733765614153784865709345103042581675979678307100085869967023963930399469026560506758418627400669961517610908794865140770767131330129117447032288384209764023040149181863131875845774819270527799543626593440187693189158830402494922223992508989498973277428542906513351545313032735273712377013739177822205641595804120729179848603690733887001536994034655944417703481228510748532648478183019803574306481950987619006165981555087002897414972164798555735791300167649815076252804794479183292943492323227246174023670805064996339007239876679847888886030058801989494936913064740094083445302463128866420518154003540191260203745225902218010840019126302053557495525524706070524528781923666296927793423878064325151065118238961276212812220542590711248939292177567552080046416108375141910671307001736364233426339947462856247881253105959605399752472767621123976513900753410873936666434701874679533922722500639630743738204840675515301823815275894815097960321826002189450312666948928753436863227336677658202576935253283526699322797709891002598435437455371367720262321294831899378671408937965362259445374094836304238879651072479656629350026901707161306971779486141131737699542274767804235506769397393864492839533851194593799837084881978851848559835903753455853086947152546932854780363225081156120267195917758924333247042152201959634631096094033744770647571859869793133028572874252885344724258668878966025860477128300182312869782703885835856149445944707350628563636079204108456934419968037245147699311345403086953557632504664108325864337210117088967628886202653091743743467184901677425752143186096990318350791707913864800425696730162094417610498627186724143674575388007408036996481568037618089331436060589917551260875799498952758670895836446833168641722750964748269985565552291473116101575571476533165029158459453160991382783414980673437715548855110910681723286065778501613922815024611348004463789609573399091511148924950377378921713203236937379744058353321403967025772052335361805718653979898877792947438972485557289624938393666523754961414175496745624922813184368372075771385460024986248984887711183796963432028218674150629236080498469458644757533039765736502369327898167686647197804513013157701549457515846746425587439957105298735747356610361276797632102435632129053222978310600800082624618038623212232582251970406027303133815412485546574993353910839562657567124960221826463174408533914811992530273562255368776701762374449052095252957185271753777973431962028051978797358763436276188665076170070869739128106486015410450659769907763420980670765634367531914059809554758509903788817425641492275107748888952519555019018952404459283074848904339985449307188003923972173200998524213231938315740047801836618187939342324700443761941547406772290548573639579707372171638407843413603635607039084145649000368403793326640522112333884827710602628392942313497363283740678836702448754822882187530378987320078392355030042077966052074736614141043267260559551132348045220506494445822056084072101589532537448119109927493438419948300796234578570937869294006311971776487756686677533929412689061981091438870587440451723135634080371501480568298146117234478539977295673450428640585130450162308680191954098018155265244405027398971433420174253935611418277354516564811358765106175098740447877006109313882486894152740263352920853825243422512833067894163303121902848545619884837536470459892515211696681524955889513880260274838877955505340500341602235897913184046154812733440813494141875962560861497410707764950295524355145081807397218804778804446360677490869109376828205139457649201791165102646829701288257260563908869631896643552122610374243806163580634753449116806907835571835127888418534972118481109951099294867628681879549929549441782703325901420791105681801472740424436759847056631575040066670742218510081180360846290401315211591940620343787192466050708772912359124726450659634267028989030549918655281491730680079573193244803063082693593474845169889402663125129168928986263621286174014001357250189505558557348743115852871636168743189488530143397871907750630176223545818194586811939464724789328396363640772022540026369805712250330780457077485514429305563369070121586682202519676254509274401019130252388794835902438801750986525894645707111921077933397653031494687567061651154629878345123395285305701217702818419489655645883481718699001456016413102533219523629664011755538986290413730390514898715550827418651988738704515825020323346160215633409584812795790664138603322386388802633498009645775742182416285640579258665312622640741777697429211252541705128025510022758793956041535803730590483677777797120909961086741585888016680472428490667620066555900891356886009443255472004754352462202483858621724663858072811383715950477327760710682357308063087749731566336137832342209483314964851604251467582906591025807362753008644907047255148041083674851593446947241406374573587378693306738224625919989872197795590935168573218958875159673593058126571414200877612086939689980236778444153129638996070264881318983222352396995065773370136249810548584968135798428988701020171722193175035454645871322080608477704819009957115922320084005193102474666401208069418613497845729234258519550333167916260172841836883820199469452444837048464355669712280134891599067597755816955407517728053401241062678018166393762068766451755675259391100786138020362674246538433924400122991817812554210272692068997646778069332707008673074925039705172242325757815844406606512950614811391657266405017450400370896542166753648088796352039648861834277623396495630315798473461006243373081988034053193452891234331641425639083313973164123567212345028633168864198724947990297068588938391107218795039297620794473947803054161357299952149973267661817946986647841899046251186602429585342467586432312158860961919913882820225296355666134727223534619041617733797332962587393368263254657997478558615754132693403472704013851737878896751097842581198244428263789749309435726947572986754756699259777415934273205025048464148814341676679105206631859829201272451253790966644683133779519735425860402505166476273008104451762453163822519118930954605704061102900450033511902701599110888418521692001730255626954727610736670205019601289796343877477993769841486099892908649116547175810379396989399130042538502323801973578861787526789620154863388270097423562550028743413963629158888609513987487212909145658226648608319263856435207403497864964671830128327077096596378140889400531793543021303565301250284312708797275909178314436335806847570725696816032943969258690709861721150743113173738125219770028262862565734713608425312164263458950784856870923246513153937079533613002868374101820942644597257221306956497386102665542906288723931197245089727396758372817706816648041739649284343185977579834776254124396224834768296756543351139236345449280335285860058944409745730066163987521946071308304094811240801563759923562176938473130249812765500491809033504015507234633635549111784400499160894074707543346495106656510910158230753064802633910612700458366044642196277030814647794356108939784108023305395899446633166044937801730455094670003362817853548336757144045274256929131352039607877689184501131613311027614312930506245034866148153114406876710391583114498110161633906679833633336348021498219233072885040189392360031981138606638314481455678590487035358070478055145463606648825880129017581644656987057143034701154032143816263169434119440472132567408245908851388209532745145980015187116869810658350670816088261917313292174582033464645500185486962679061140672763158242892499333432644800384262454169644294633333331594085620995320104321056683165221763991414292006414960192522474438765784443474681790770705807012646918454861207183843325589271154880151940888868619137668287750916619967605359124227772125433894634662059131456175040175086046403051979630283498596333360271698792668493552718159675179787027324680359431480727497901532226567712496167315353423587154972871155973715857022597580589685117198144376683408159201156747090846083342695444911430309446771960713139287751655176893382687615466316974512242765253537810937548716398796366760238037150591603106532684985690633832834768332324935183866315832735766467355659676680663096215773564482951231672463634884669887814777254087792143717103964748074233255000690237032619968034233220643283630545575939511885172552628998377154733624321302390823740946667010496300575530974504137710591381648647884402897717453909493006415712047123451299087679470691544925924397195695442651837416176212150817185808568370140523591119664800784242022966460052540630838275533403190670779889615945045225036988610448289119482913941059680959917319287837370328183224957727775176436367296957340272920824658423296807121922305514490362543721721594407162982156639109812838940605206105259015621178465896971609997926302412684964540532374635586651035537929759500402632130660576797716538763633043085827554483651913085848723548114732729432202785231951347172932252301740470969072884583164627712225614754039957343928220540350890587391501274259243746568853237023684039884921553861999089287717224457748029243874022163731028404530368870708984851093313944264857742236183240430454933123802560312267180739402807046383143199410751996597010213063003600064443950384841055992090682102792875876124648513912222040808685240193328419837516716418665939909038614972929205993055499030665329432462403040462324369869603829396165489735081801282497383001605461406846994562907382488759955982857910626939722088469772736940049136791356800029870813177928222476590234363123525799958488337647810749579465286682453894945068109808783350922128589673128434547362847773407618394531627600147723259575976534970664299942833961605404920847609443840259159244372256670113653527034784715905705558538580908239562461055372727739986645320582131142577789217361069223786052075008076054798433839942287094429899474827953062535842364829194479998872571509904144098201745394551792407390445509728213768606092841517766551690287461880813991675137985823614293480087934800229075600568782236799910568352559632097350945445183094824936688418737203127017110974384055249585788816404308229997576151360151092652620602780395464124528126661691190161082555569830252653714713220790368666070090226163439331306050401851514891651109332348045417409045695744303995716257010837502555182953307459175985396959908071471245514655505480941306382787857065635285535746755543463174185873104028449661072930983506920953679992204173806168142300323078539300129585689986215617998318034595394265612583495879398600453268112098138097732053078804243117773308426389027532562067753159437581742532285823841179224766917405733694433669574205926489569901714312269660605332508090824865660264778532329385193434900731523787582524674627307913148825169261089577192890812683370480301599716063948360931520145596296419363117173837569131342764043468249992801239276672838041058815699982921344367240104996497974744975803160646054608546711208765223263662435660473492466653289986472564221060194634927544711859283306318744399235210826447125015487174305405214277735032728220160960857724458281203304501672728470290315709120687703801804724502221400592268873615322432473767404745508817729121497121447257887537369915058872028615867783184666820479977308159147761531697966303567687026480988657203683556072420575485574907322521832947212573257347245601518958334171366415761413771739679190546420778094260449834648157687974123561603773738391540017891002390048019074447848023993624948411521026889151913121929172166282051894636292215676223426477342277153897687348166675484788835642386308702518643499038918026581359553957811961879486257962265900855847569680760416699815170609265662860435862691338262110261086974692902739603840261733150913834927225529106257987054626500025227981205421973863244962210809070600588066404524809133559772613066014449200066505754331949480413835639408387353333105682240441334581161688137633913000853940824801899934080449930695664405982799360262242591132894900869448414877662999212438042409875843326242645916408300204632632406584190034471250951684850028631296499385266255416341179141847854516749992605591128381477345166580513008800862243555900045012513702386655899041506781385416123254712945881637574650472505492463714044883144499569956049671201822779101501111805278897882690830930472794654336326627463818545380146481692038907810974747150486030327050793250455006826899497727792342336361451745314240798388455291220925357600399084657024504564626485035337620487656968540225248279268212725824141583685103935422146303904509160970801049521778850780915389656757135264851143176232325071867395142220448248724667952148582586509908467684040480557494424537395631140273790387476413075536515740852780393881391167857515772004433060245238378983505119631634399829110474220658668966013774753896253509457880737481698647549521782506290368041866903379568896904234026054221118944306645903370876735174075168599806378732149172758104127493330280033884308962184425918315171898169842500908414746289200086281568915589277990293913125751968268262831698977734239591587544127745782069592517955594474458932756265687278537187708724594758782479400400358762176446595772904987304682978744533827678791054926756715824803910074542097943261277036405877592030657814809178825675738549508891124500669057175685311391150451982348494932978703240569306047976665970358733152547899960842050828985860855288910683743225065235663884478116407369691364610020248782225916148481832273080335340785335248753395697038119937344049052043085875051370490857286654800126958452286854966903098041190240596571128332985233345461982731351042868661982295468087796664756704973445280352421950508324170064338701718225955292017881627149116261729365082457782437258428817013766900296074503371848026980391877796575607057674214395643030599379358031047126277924664408459615183186280585910357753205967770496216279057021156227661798948431848577155504504815178930869084047437731215470771119453991808271534050026637606078099795965165334087778177726964476467055269618588687371345843469868000505436285505524567320411543870785208417008831888680342639514331535407851252078732153539476156665336710360963368984677632219394469338534711789019935364747810337567931571966014482029709713995122632160114944049070343428341128127645715673578047196413794165523264825364746471708059576763939634801721416681084121227287741856562729714271043131786141183048265997750871378359691685771897352214010865858081088247718877905353224900654653450120509742715105634558927647134965440324991183612741323855729385443160429947618039966320262754517749901412515409140034860527188312660575722984835153018450986317831091134924982940932315058328661622926594467112342149702941505282207473334064071909769025607550164080876613144916478264477369644342278260124733839524219647135966344791160767384352301623370458032067494574706728131523069478241622415556133295464206789170095551796065057016987719604633512134292153179127358766745725453514162639470903293268748526728963420832359656076261029624477018303920016726221248105456429462009560306031806076987484559954055692564629798547923846721718948571264288875071619111960993096411141783129944641083899967425167466837844139575882373763347496272024726398810826045986944981685172961564057197296278590076108112020618386054759803349802625228810793774901267262149417140780865299377247480504201016741188713491123128952415510498748450954559552468668792946905352163283814001670009979099089181553884464598328835939861431028447257707529674122123555354624146629220243363263965815316564659310042557504438342944592746078161077223604403858944482212391818581508069303913381036824287409102356685903612421537917411871214101986734580260294531178891260061339972916570575244398648878486194718342998137903477878800433551426831131819240828834534426774597153550631121201603949442387132848943314760270545480492751087686106833282207755230146897543876039021425795618810193774614287449463272113871162534140967999915155056152941181572344033321445409279514348360324596579285185685908579456613686355100602427788519594191276040705567568960998877757254664305120472595197816201637472362746576255931968714816143526139218059127693995838713273913578098481992614001275741708898877878678926749665136057311002540656116923916794414826771215273858873954248061432525521118569144835854298261429017004974319260603050902919497001275535557644827303843155467665878028277348530831884729263905227966353088105883920611977356666604220892283965771597792920470822764165288988166057367191852756601293336863212206815294932235373031747999470954112761096622767429415626497020503311237054731237769119297145478089915234995153766745930756428942966331333738258313843725750874704156207699296347198837123973443905959151428809161229064277272164443206796155201213182212269744228356432656683198663635986963970792698058811676863937006269400277338919943291772297453193968704288057200482605350287269770449014441059727182570554562721755628384277595700345719955895721711407852865402758910734630566805758040495545723851653793980551406745567753431117659357882927422551918260406288160820357258949734940562392068157269970514246056208166352038601744081246524976704201063013190636423998923036290138229710765666340249584633969774276590792000567142704235361044121294671322245780681152636783698375674424017388067119086008361727321635565035170778762606597147681595790113474464435150155836432260641821727570556160020715017463808666207496451102785266864349002406520254242442244010478232544677312648000811595886605782879151361962083691243624107294070599499468351196061092479324293671566831394780496812590321745942168356524183087531934131891447556522171059581723318750489849091046796645703022275839237178910774638292889528874135976037882922760549638973242072816432022414401225036490878351731409718756733036705303805152615300974866258804484184173496144194395327143483587615369159817980486185213036380419822803241302161346062459453688674074446399088389864981487472430193599063965083799994397642644328135186054772651863470989702987976595217680779666043034356007575329225279128265294518990313469792847761628660486324347815913910902264394492257217674175359191674858701726372490262545826474566617610073762256641761100460177772091306202674223891851661261484210021090129737560278079388859186979212378530067260394429129781620981331367134163222281445256334780471216910231697506847777057394095205915979091719256949683027375499536396141401390029878009623506794167104764055117576583941065524218353586508323025558578278004714509057547459027585649892025329938191520352242659122019405797461222066259572054013881133185350672939138712095899547470389256316852427926660467245770822346322679079798291234309804370146090444276802997761091379557734339447666648562326714193458468895740617861131777060337536989960679046382289890267049398812946788040305704752170978278954203607116295206818616391005344672888668797288270812248205952517984983544489217230526923622719157057776753661278717419098618120385613493665476594732341963691073039241640290807118056971458190355118934744408918672975257976299034694668423990513076102724841237336183455152801528925468707617220675847450657586665763228389724876644803789888050723688051008093812560527099966313562824743656716571529608279853917497602376857834374647094182142938095125059142962055159545827696796802057568022768113823399922805490133135750683516503367291777173938607554176714596302397807900725456956034596776034854447706669843664313325793688296540483146220578932580949609531742229244954920872240572402344445218701797166733695078339507633799717457864415088860410670112404867189377095892844239037041150426262087816524034626488359627247726193107226920881681133306087710676176479141008952226272911260934521205211825557577415302709319445522088068460558410198032364391917743600352849564754896253012405250335581423316445898663008523260710805846685599906447416530889466104724241621727053497551648080966449100607332613718896196335257668461124070952713872690247110666099608846899002237718802403115454060178031923641294283588494372664755774510717654528776917514091649297926628652556824444770792579580812889570151983603893611062694159049130904081589210438883261828781869235234948474483808563231200577304113285641555970042236687060853832066530070447838972157004636781372193590316401517579617638426523967322274660046896222890051141250013113594339169511972775989144768415210141898990953457564441178550439005721460355473022508537957860340212895755541141621888243660579820375083812597927602219751524015477358663930575351409285548305750430988831520556636078950300102830587823329794984011497257943719778649700013820476186454997889052687398983498271990242122833735541426445317263576309598247967287106650371732749724170467950181941147171581084614244363395226338926528922081099630099023859093826106358611618259933186656700273260107965139528975858747987843480408151806272060569969463226059270908036236185357461129207993697737326036013087774959892785841668442317798112226349625706129325374153767725420659145672536431212670542852866621821281862285614334600901207744013518830351657594418077644507621475903202128895217717308436044369450079010180970199318757452952275555481946524355270165188013830447651514039867366323712800014035530649344974685823077197326346276449893589917663427354247044345692516237300099543191503006647640245784362206624633995480418737549092764385531823409500664638031148199755804119124960963367801835816052724412511402834783434409081724376500157194138002749164774063814565825729028897498312494538915688755767413259907692185823844602757973984360414615765885284221104891243175405575096022298293072734534643499991550242002028170605708726926638118504691408336594324340006652509433314043644129577799800727030579962341487172151396764140494739635612579333512098146734253116176340385163131278390263209105407313893883080239214656090821144164097533987233826533088860447637476638843548089340078030691674568798242844810591824609894371963186078409691983724580604507212350772766978614012943799602589160514092939325061981234428976767133047162337440964786540805079122119130818774480551288993871943225183795612135884437933397879855738893772848200798764843291852524562745318812595295438445931521485228023771191022083245258987444723628071856507573073927809328471134832791654878740785951411959515584288741538869920768710749528931234065343247393329057195446574473920303728013655345832854357870888096098611980875443553476508031610418201534212991409381565622031236757152827103042191091956017004146849626809274376338008651328045511290058933052033776596689495452879847727007586988015328863897774255986047298998581018503894951642507234210039746640737292882713396724050303834944061255652182486753148026290325999635669701317263833176662157171609710144123117145915446145379459423706649306545825127737383433886591664324376102165950596259643610696603936820799265431373805313228892527401962630137717816736394063129865514901297267166208250695535465439266792745531003301970468593998410692299365872872585094952283155064354922264503980885250409676772241196069782905295038178231025886851024326258735313055952050800332594147091876200493711054379800665957171205551157044739239298649243372901679796836894259796970456609345364836148103425568475014630769729030596080314686255841999637316033219371864120286903950088246778841610104684047297259482620562577607330591375245090380980474326449667821426296129246383835448201486665654215566172070005915126961636062053044440839761690774483717282368943912025416864774293273921258583050624457140760025620271280443630527807770748857293502795245021453656594030994397139889503419703985124034740057333031326538889360736476926398829623124372327438666999558491434839385701907616914793637602068530653351461109678861975140687624562538021636375958468251680537720164839559854340483556995024763727038829745142275513722257314235564205355374992145285856007798602614716447182043924195653687851021921605261857521602687312546871182373333421235700335920199377331045743586389443854388188520197342262480585293906773133132567608018455485783827461957008791554604399132865626088746584157293253640034155649189385631520860386257351950074712387684675715453059836065735544168676872780359694472429860508670769026606061968559677801109299679178932886457473756144156005973698534786689002718818798724499752747158734881841628039639918413522004107342043819620505168351151252434170513126060310616090442254253491562552550516530123869325284424013317818710124691651842088800049762684044548412705699009726811585399610977990642798445698769158670440865339651647026922244736344495963508980961513117653370595805415011624191758298192111590898313693668874684708156279695842949089666266303498868596072316606157354418164082003131545667068770669026781486388806342117003714563531974653820110361224522037403438403869273592246192699818502540268999997237957417935916703611467413090730969019553264493907443674753070163176595889870778472674242602387000234231900970136291632815430718960268381880133274078666085279799076029201327938551466168353323109010285308783916919082098775961051051374027345529251825860333941758932904476875191084331384599263413973845609528195466043899843034963764664867100926898805408573252550027865924845447372957629769372593733841042779938370840383847101360731451529751951658864677826328034652508022932714462671429878618419708302678709557060471844790384256666206437871629872595751064515595819607861473728760209132664258912616216057838108060925770155546386079478129302013798229042305729536606838819147760027634088760461305464472478544154317589943236750478067789493538656095563250973340619602856066903900097296417921769100033825806539761966620251525516293705834170704341822877032056923547084661861404578284339943561236725410644045131834497065148532093504832340713920054557262504663959557252875586932948160566615456227546796859597871116692969245984499486906244378003671365380027315030504468485200001249029227850284191101994620456192341291466388288832720334944942270512215223950562877735769978924723872046530012985919553448302946534396485610997547132990255607927949564488550863652164005077227847827438605310957153052804055987335725008795236976787607774079745994116317724928781993176549663075161930190017955066391157143534654466969797444180742060929476950669091270236950414366615890192095725989351590777268670791684996677151618569001153875351943376580031794272119367525087965087270636052160781144010953129335678922292574420646757937864666384047965450639407700454387424577588578855103963614740818834614978673199787831517658846575021991303277276193505596736888974572607666857636361215865534744554093439824185571834567941987114768305008802454042828981802018774740463102484083304505559129473532191340420982724974841134536024897903264671194716309212085628924347964285681245364844315104847739796082916268467702620199784602391423456739350620631792745203518501690840649801123884707361528367429615387092779411914060765916953438477116750877863782343934100718200933042400663965196402625643433097481349644693213786761249731452181443397451575185372002921570100627141524613549982019644649594293554728635703879468596081439198483149888114903643384930517711479531915032815927575325251819376608076604126052341770489357691425559916049294780476697860058769108925890221031803635709808218933687893312783355945772667551360689237166346707854958740330062251564457973678235582615528706520102131924663060259759426386393919778811348764336415473637091392669501496356751834576045736679227928507505218088781706179914915531074126256938424451931927489222178960978138395142088373612975005368584465392653855143050163500558544415399824158158297556246726970339606941007855517987264024302143979487064109914132084096114779143094647127049500463581289186948869090340473313399679150956308568306117115688877090228206902353712190750136299519100794353595956242079417165646622433654441735567113014236720315765025210033270204247163095684891836663678121534188513457462598242730195459135242677959940322648557706733381450162441669229280341039600431345661913690369647908944373237374622425602552739264041961345859325377651615860629332500337385949387300386685240134430094819226441318801041170648378921800537807700719359980838968648638436500252491417009028466091016818270853452264473079269398773769556276484552518089377624928037411388061182177209930496166247254109127077936031001654277607621900694813442489090858912153641700183892278572375858933118346150964331200570818112499707205718093305454113487558151438062593443021890960267822922069772886982263491311703520374284156914633922107246516084161000685392731591092741742209630560888672157854803871526157737625480320117305215345918847872226565492453000591909489936553834781841726573746426744210907371795147790144486380904713145236973220351067674230626451620094137104276074395302790290337239815131980444263715504963783446586494604193998820172789396326406003692301833935786028940208420245453399736233871310919835253922595303368659923840800494678315409020135186194867615568916636121794161962261290152617907546755486726358341302234172914397812251107713746540660807438750884427489491594375818034743026799606071966596860105710646322092086499441103177918367434017070265724212561312285268950677912945876476767203543036050520261230316282908143513230861881709487258086303058062821906591629945100112701005135420164399552999708030522725668218641743874584266913267127669788564652327215206987535515956594580763096658442083836104359195216794794489762106568241978151794829214788274647442993803045065650546845641360301888705793159795265494974080888230510184684006373705638455649348313244268247026195252024130664281878389615927770659969275810167773118057729177743343586839980543574730800251694282775824914758125667223945500300723937213449472238646723511832368179045521779391024455598189615688495563448279955628780700614206972538131067225659286955637405661678384858974431929260477450208040266285953481108123684071491775763698445597500225104889425659127843823176491056070946431567424222463881006305389657329850133632172800165095596442393114769530441317381519122730382770175520239185542048108702087629347751831982422871191973191891161686072069880074817552218551384012438006484720214433593842098943165748345262912303736468286838792450948609378758792626945803004368613062391943650894597801333087004672728809856671963861547169636748146297982520885433618380197119448059606652259667244260711868391906180255671799809608411130675224178301983296580246070196714449999516421795326177828040319059617872118685450107604688776714272476223748705959854950752277701337611984545922122923392484360337949961388427370135832195366277674647632835994272852764138126568832070250586538277151193302236839303268342876351538947558023758178606100042159508731343118007603869705760815020012574841261429262028523476613251553154290123686322627716350025142947259793658488674172702922734778606573248317311059600307868924259375023794965834223815762156644049461105473508807687649545594503917959377126755629318687044656163525449442152153141623846364874541788210037814924936932415179025103521759049323427724783416381995051998588948331467408768334432407969645528344451411229646932638014261324073100916618630919232130747556485729721092715507913323337597070518341563022093251295857170211363814401282472182458845592032098477651250589372620312186959767308460646117075445869050735119355776945955249084786961269098734601864084274706343850217903579347563608917584972042904198141050295582275936072204915256779127766954760559358611958999896872876267195989990727304439620819437154888591186244024023294487340643476014484436430885142546739003391010688865703858258898578199933652527224062225543557007124970373335596625159529747902656619487916629946875263919417004019167316761498950128696289174506228609714198552157305256046530424652518960413412905334370051884960382557063748090911916689552445378605949215600921506287979911876923727630694874124536466290961333332637005167555282533376781482542413086325756745174631322451697419717856681503000697714023213934478669186105937068469888763274011474035974177391071269264358771646939857731777861790455425503623999856087222153254119636310923914118189808367630439568441633083802070821214086263237761349686276593239331525979525513939311468122505356244351181376136116919825142659856561149291411453012283129987171988308427198283746348919160254677155979292327673785903652261021011476389613257256836288854810294806890621532279909819037997894377158529564325658910241314082648006248458329615011993382658175757857763980172571624611670235515216237306420338278985010428517814222836879957240105203853078412162782728405490094023033149194316904632528877237625433617387673353706807412374936949716926725709908120217853946308765329136923220472674932240620891342912695383507418032273778565359421902371508136399128514592966152932618601682704479295085938482870986441733537393855020535510944539380255917535662609050571382395833527913233690029984837572600262058014178271670455150843795457542467399334539745974856659015423071582526078908204138482741287495310045190664086402895267432072483332277042990970751417159839560463291692186921318294053798466083631867568895205889998277112791970559841660639824281867238071471199189204209048646251792705883790139039898295963249843439682813562148255645067832682204526409046390824019416271285927220293659261346256945996899003487647996041007059666827191888811541849166595827714918551207804073483967749636946126139623280101814324496337625576709853054311689792816343730795332277629535277563236649093873718086487163112874366248263281000467936502368660079648714384786864933201076191782469361689332318225057364137701128917646124169916478613533466245280421179885475218936672359286325291633240264959686085789938979711274529683723274496769420369768435340666011296912124650286172521245640607624161118557271429193229369801922578100595467076649380867788298909333538630271226769519694707862840286927566715764807461479552865069926278262705415356446228613585978525589981075079480913650474847294249321605683217104565800549951700841445997344159283993920412068372768042540547708571361251435877062588673053386314724774933113469294614263351232491508351901230085909799653014047270107225338975308281903763439774032475268597997485623215386389514486846889135668489640519374955910774278881034270043585804745858367853596621526485136380736794373705615255867578613252571303047502880952191132750723196539863064339967744935211777684337843378454878750693387453289973540672370371286169347892877270210608957784183136798730384350615910983707256198128987768305685001811568588855233222378238695721297265818083974385571826740930425237911610132517244245324981793312515801267189989483790576073276489343557999069851518841261665046016056187672064180858978279117344574714355819074806596007054956904635723145562346154774199434572448010614146876028824070824371066890856971180097022640998062840859562672002726397308890584946517591801011206504777513037038713110989842074993431965432402665069132331895411351600644642142413283893494495197373922282646873607225652817189476132506477732620495243624142022046123172076709585141516498885647755991739753423715501673398292859770257596502376779423973194329952505249658886202910697187417909289285239223854034021130947023179287815022274087128643277767746156331422122574600298080544027577880228555939256329110815335225004891450779739689973819832560256449695968817321219470621030069545264824463797417028680230952314350199936110925395228851038679360975480054706936660390642238129319902222595816732494115280786679763537154894293185514316626887104558982993758149140955771585927871542561041565760383231897708559161740707043068740811217475984246212631137526876668013596259767554875722309822663980694625344779766166021785793850805083588191391086087826181627415864133479309238940157636746703651819598879623650692040576995264974198832912429471522507832698152737422074753790959569113288122055761865176068062888780161924089402070876965371832614421436816815544694313692131575733158944967312527291017331860694594283924171764596207501076853957165937864054868789582820318677803989441911227886325739492745603135096279256659302472470290866861905212619533325957422530396504990797010385202985755041216677861311430553170036397956666710201654320892475877562964232169546723513928976145859167022903648788315035373921508338195299833718206174895105921810662797851889132588450394154115395052862580573617964000392913547257309857593210467713873411027716223759782954091080645836788096348929898433023783308618149426899154747532745030565188159425010945245501455686236568927475472083872893616853640280609927254017238207875996990890612629722869091008066191133794918383690623435588322611149605469923148543095166136868969850478783742091267312227383131915424639064376166398797726725833650374646046017209863702653109348077897645231710368232575874829197324643621623910182544946266453206983384989514542513468934829791819720347407055661000347499705842237487766069130232642729223086467250873868541164958159981838094159010656546819753255614534568648801808289295059422742064406591937922789580867080833834367835481457431434483794850123565680272260855115061934622643827902452575604897882939522352525616088209749297110938177797779070627310458232972521875894976491924128424756652621787865682387283745262697686797450358431426254821302882284183636174705263154903209272570973382887352761771520283979669982241425540035808434629051523263672946708604527882511953188835766342112933952696657609157867355073556457769273215552983180513428813040950875137650939580601576051910009132598089387989694006900250764035864858421289149469705271363354862718499391083261836181045364530643402336503411421530855252034897533133648061732318555001278828718990359305509119500910942813109814814971439553064156169939193752489751255751406216851420971221189144061513657998398038508796604105941896455873430262865656359724419654172647033856773811120167428688813123166595302302020965722922074537970568065922690477067711059462857527689520823611707071673897484548399369777352751555450532821138473651873577450843925900951958249576851315636371194386170221027408262808889312214320204096503588000483714026038147875742216291364021432320060273848487221895902012132762999914949515804996783693043578342995739555389265062496515153893541401426436349223892590084054685610366901105663321041365012293347557551742425344289672555359168009571045889149641259789214012977003664369721415005169355745443109816348274975275120387017767130651987384630438676689109777150695343996716935205994027893104311556866924246667624759163334323498657346508703313833754788036811739476868955826027249701060362000963794910192227413632434277825942143418679072663076136205178690139630974322193065793699825744666415026953128771558880911864726451834288853542619831333838511875358819323390082850466270690853062483877925369241309609477650828547990282034776663503525401953507950377969967013500695561001224589592250639280935049832431103421318197978639474092909421720710134170823790010458596328520497019818231325802969801475837025639160356661761120020743506698878632607990287808941008102457349267241757905102010750575653094153582324709083870970308835013318125529306402957171541318578880592995335476565105932727683683352989898294971140324322099081943187495130006215108762938116879446473670516367154112930367248963567937125021351675134548750256182511557922507901003285897905143892945739169056157208613253853577913075666431162999703047433666771217340733495508895292063156053944610116583080059185373213320562000824626115581597809893912740169028310444465577063292104221174000257535695434908190558015779480450326773864325221340783333983235713227085216338228474226691909130837032457892110921762710448940113554085744933117439015292796261961811778162425804444462405852865169522289795274336141764557425092012133988431447135421085231709397041690198037529892115309331244072526221303913650851401503457925001400575487832985024506482762864521436707671854460248303430612552885154894443706554471829741610703447905136805061768181239959714982920466056637607082102520616187581370983134932142153093124995348395998465014172582447872082980311155650365175414305997451562827938749200745312298262491139456685457777585785710534205553153787805976124547447952378506695921593232015790940796705674949526443186029690728795297812806069066972812017892838528697986618345022305944106033358223573658112784105630109944771533782940111012669885279100369832875455126291553825588785551959750082377073741150306193193110843497059242877127367089975630733950641119596414853083384605362683795270321016533800669189506159160999982587835476077748051212804212262111169527727737762793341037309678339388136250505039531823376603199678809891976367642256498439102623196312598903107083021562213070627766512179999291534303404046022254092588551183089688342252522899362657917413779859665727080919973134005927741276812152749378694482095202404226820626087880021811080844520347083481836366771162764767074616569240050579276577375125265279326386979260130613633850811097188220728205733841262509877622861272624351331682859810537252440997687013486534193137186259729318824626163852858956582936428399418363114496252704990094167655748310082974156266033721867710270859198410170395845772859267428095532361299505070765263339639914891591902932302361891562169816170083547113299257922475494445627367247707163079934294774975493367256982480351823341414911473200157129418719858189898544233417794696722434820878920838018850471555434769172443845585621231745303392372867853245736706157975566833679307871942015699088221413582442576758834598505512238229010426114286460910121415118963943163960303268889549608293513870010986483069536076401449615335272945866010343585007876442262266473072719448329188886203915386733302598920606752809409330477133158652684264806192430762447156827872986952250869562887739242354643820361478294212909800197325858810524158790989919504175234789531820172886531328138866439941282321020967006448811731313120577506295887331325252507847681783919596524136184946709242821657098514615218731873114695098661217454582859472023334135158829707114786183279787371883860537930818915816796551748133774998066958873454657039456653928833143271740006259307741615394652028826418780008964000568748120989415868131719215292170045373689783723068698957205551651301130482065951221821356001253190823245335127816571180105838067450329777262321844779096111506628493796367472074682978662776686277535385668045291947521554843991127913378942363941967757164266849778015863580276583554079681415836123392620102103816842187292456510025876317316976475367261797807895932956609691556310582666541172439426546773788091657756900067203911599035764856941920179860878150411978806514605870101679559191588869799459929329716533330823496642616883471691404733528102010209790366877908746880978644332773851018682229266584690832809611314169583324541147373390265859761829329630605245113257163580499805683066182737731154736398417274136723028712352056036534445502244911004800564578899425604647235884306609000076368460916412469701603017794308420702101404961094212498032627631738080999861776029952958257786335255958819055425683586742314080020509433600526290186435475868993820435929423435915911513944518685283636000440231135216967400460402500055724960336720313370139120094586664104281101290723020967502203680808223394701564294929035556577734124275079013355094937110130720936120438868992389963863017831170378175201369116961261366121549624079701948692471808079487393754432153171646622844442266109864744749518692522295255299354757633991746890355166088314750574371301868309912611453718852419277278863097576317156479398990196965068444228280507522824022281981393286612101617296530360630959190840811340665371916318034488528097327382700348705777339836505099935608598557907092986237956983525687845964736071551203104838214825849164396642540919711301994103925752036012532574012926334852217196098496671359670645976160784479406766972142276963220052181951218421166048316082193851151372657165010562126044369925170945633143053023996979690284233005245368830067887089643824295491647497098352761506546492770437437001474000801664603682020056847393494314758996778513517649833783111364895084381805451077870362088809333806244843084433345813022464615466142696337604687381178160111152755018746282906257519913066160635795799557414563178634710580953881430338460130319553068496894362288816476965382957845536121385262425500081420217525941775865519617649540843502393727551430822777193712923467746253149521696106887535509303145247104811134742083519737301069864222960141098340526092009258663761430511422724727482715355690223559451848236024708912456511678867670958934986115258409952890317005844319156713166442058532555600657292638904861258967181070329635926507707304432475794667523746860939887819490142489804339837547335174949240300350095030128872391714543770564021119143204388339114286490384607181973165962160296755761441263318529520548800925394181568507375068695191993200952778609040940939710935778525408931658520712450927217854953706238945740236381619128155658403112623382327385525168054030783492044666078777704159476985936099029996954145894458697700881353482662634038710592335855634871827242413044179535775207355851671576681880176888353244142467509172797356654965346839346126131833130531885892146155076559324850389832450263696109394938216825238132490671299434305351073097531772860217305439955640480125774627353398888449059239235797866970810229773025498521941349472017398959469531045661912096554474688047964686686538630321814836166043206214131270519126861640426056511115115557687434813968394567427794462504557899201611978917129311175544167947351119350984786364511670946197172799689899236147587580981000005103946753226529194444863556951778694470759305008824092858880070402163866717359155678543064925900462569093487324719946825658578570049828233367408338462298909034796621728638101110228644682589453188277610997421514179759491478971446861389321499930357063363225973639257698176779833418313335810051463716086914646317760538560731097860188187450478018864756274742654687242087921812960658122089536299967980691796505188680982417565120740640585318207282356226898087042185546503700305425070007544704865647336597936844562348420405141427491666119696373657319064422451743813586874649511279626777461175983574984565664286676606741705295145882647334095257368064038261307815672882102708525638522404201298083344926926877326180157676261691744612561570190337196038193075013408074259149704952950512730896059572813270948590941277921641367169025195874341183629774085097573927270660313050018625291739022076007474739798496557142914009413437176173559938831773470263479590490237947513654298838447983647690769489128390431433604783046485420353012586371632738796946200370052665008813963638377869084543031809492277598130609380962616830740870205728232503079938969291380657633786479997055747559952876468193866129257055414863836458007653944545803568864709744961806597567291529693395783472608254734884221808376679729754497037466451808680359623466841505839837308481534820176615063873526413010408402840435302215170778643616331216189232829733707843145691792822453475486931519418859134142964988099972991910039379477148729430781282415048177979382806338047997221865112609639065757247730064667759193477042677963577501575179612518104955057577976222027311776665514313282537576587783089504365137591291661480758551000772686734253945258040618396274093790048030046018329377003351508954103440366397984933169179645798350958598536644500145123460595269382265744394837289825532105037998130403342277129085041470062231989141811776540925529556092679937435628822143157749968628819414312820600729041689400303425948040508407382714323404802205024318161033152182128293518422886509016027093338221731252511934135180252468260311173238842591518508486046149512937254867913544393152532383205384124470248902248769543205864999447446174846007051216728975677825045055973705966199708782083880906016760369811702861175726522361650288920503484338749712047550138170175998529007321964299166260502562643056532051039641572055646354271340530858806613437883121717402374263411178132359603432132687772753627900314021809541700413531959886139548150423377168169867224344732615662593639545409888487471153760637863238791096228724781933708860564162306440668838090120033060305710031228049738366452383423722777807020743520499664417676210559316940556438120343069566305630501186855703692119318502624781042872798700907791667825792006737247350953342419139486492419407974600421402291957785198514055123923566762822097757659941933831892940264901685362838637940332102802417486644956967137847572631444942185024801671920479449381226762304239781906895536391232099418360326275745100941943804274061874635861867906595583363696235461122055850605223300045879400956203145320085344783039950067676365514208693638578343390228286370816295493866766913512265767069721952137562599489810667433290219571303612016952783030011423714706252001559190229904341931656293731530815023296121582474016218938417162952892421007802458191053456207074963297736631057210506206836683806122277359852618664459966537669321944738434906959021556841487606884791799952050220428280164060114655695475234408972225901152701137556571968601922581361060638621369504846809652145200736549600645858405717481069887645808064697474255114873065714398773713675340219012432778723489017843355427855734378370335340017188336761958358565025153912645519355535662506267160922443427308569601780041023888470509293746813544642566007636580402314760756707168773484714595182668657743205626881506688024524566673427628003762531327330450718686020126669968897966210350074055975449845224998918711017756452865335198951612225093036727826494521950185936766632534906211296009442329359704614175098545082876676488922684685145572291250878757674439667261853496969831193910519808847922128487157943111403514506831412141318447017075461703130180526616467375964439450571449719913492754964979122045192474293922287745148409220567557702470009270174457882535423803980583124970708422741641163610715032163761395648802159332897181486476686506025184405110562972993990498308397475611205162275880123079907964688744711136790732342489708838824775512109153353680007830563701419557626346789013100590241643509916238925068322518465268369069887139984996381726725540417715558033071622336864010434124648971064098751557086497662822343032831641364531612865007659742795487229000091248171601940124078350959878151902483301628700442444206684564650450268738129902422734834154903024821888074702127648144988042196585212316612018673614740262101436221362698184577108830775995998512602768082560734519147338644307292255598584342546643680545498716018850249436059411435530696938816823417117199933800239755125597899600417907529847319522479937832010997547142828828268292176497113360523252345493820546168647781280592752802875138350840519106552764370820066675705026818113776761988885704475889893907905790557522779076295365989585272241118404387285971685804606246392990976135132198090619258862234671653557433756543096019305735399182938946083555244103450917684800826239069561250814451535841096445459247306609067630428122223056730117764115927483664857029302556305100418541544002866159284419318923099827318125455985581911158581308623467402629480598379478202651684028387678959399139341495137234928718910469444567729636440996062431064885703576731257336969612478554286417123732896260048122770322766726627608651936967848456373841086486085238992761339115789761762796561393519145244251937805725045885511105115159879155211598318045208405939608596496789864034390015776427815006744349092058751259096972993475161398758532618353000211714242739088369622310946461846002606481670629869680073876666597277866362371518434760221059975732792227432812181992049443379704746275041358833651374746879813393121311137979326632598973351130692567257338967749930232891643469746836580761304908569285985908023536598747031147295198631969926225795087747110745368082634568872416886057784050328679874289182085590054488790273035177366119098334731068287951521262331219696887136620290515921407366717150573356897943914747941693688887977879565101782414354344018498727657239581404859374112795551398820174486049211618674216309531255016555480483718633598811101431630254494510060852971741396802964313564892228266055008071064895629807038458943125580025344530752855247186138151304519106944930630847999246621565499503090422159665478318068224343745791192631891819579863747051412450948448515258418075951987532153264949684593127477496242599993567193823457088972171365984247100613909768752565928490996452567025667737731499863615130342678732462555268619848816988648526701373377211461028938604821699415551127127689069445818459344976758775178531175863625347852452526735055369070431190744336253017103707067103746893024629089224719302894204482129231058554782901175507121177256983420250018046273260712178328806660332686804663999363191055863166527308227753763233995675056833416017506595022325296359655458708121175977824129589988297881465539593077232766561260936469098527438981785759336026693432182574851321635325513517646915970117628794878906164172116969551459314531466587783603235841370202785444730659447132362715859725901934799646819256477707130832364893568826088630052568149157313406714555348107092193633947538500995971744126940044553425667533028438364719712738538082878412850315300128728107408852048788716366309486560470869914465916050150532706373090449638578309987821594108126112943113641715383282244106861607600024509855914940166615112095309314035080541796269629636258801408070681835248582432479095858046020994405268212716886109376335299005091230724600815173000020165896073849288376697031134851899915993153404457600032434864768465592854146821406644155881366249015055437384063551068703600090733929659244575532770599658154987964321005023782351593831873074915384273068772523744565091369849807530703295091313649272797981849288927890971142189065873652901919606254473752157691641947972111271875091856162302583058900232135177609676023531001936421676192618388081247620678948229105719751930890472103517499568900393463805862731250756978008688663126048920049790945598056971642397867477567632154930652560845258352942044086250158318930107301993487022492439954514819661490680783639159255870067584702005030414621914055836946502998175987274246143537232444729422269246036551553302775138912658870451274204048266158298245736876947081306940302099949752964512444548522026112396087220206960658185469950199562399538015349452214414380208513029579165723352791515517121728841010024752091852523597085281021888383271630797897757280999714216550071158595863048754842206805112133625455129438814149007942798413583302969533954420637493229486147694917433393117980019422638999651999728788846513136318512367642633874194944266807008729312526303882580554614669030083429339779835036171579697135980230507921856199145802844912742293895210837342715663652246628381342059053152629802061279371165680356988581375718512360902519365125482643337681313662944001147744343211729481463694288164291179030107674576930091028198162569462566063202937944294688364910640315394578814557542939683143689810860800673202036220269781531198545209445578337102427198686097022540114828801793738254157744526959063380436576503048906850734689841404152162595747253829870718152542128569129848259941265973144119907561051791003626320191184999086409938046654319571374372440626769788531245562126991141972669854424113440815881341310979371539509628678625653055634647059992705211875256217253151512080261411424593424269057584493598615702418565702068468981099490042894367757093131134969704322805953306430076590189433565968996129140296869238988890865985172866905733781010583461793567402011863047888920157708368486409922929561229501157044393610122332549541787514923591809249916083779709302397104521029771040471987505623966750123221877556159502211858970798734695933588091119435833969803129458001886910061512384380558455747355138317488834565651846501190923701686344679587663461313363556553660181307280736571376475778731208226254821160635397863154831926271960482078189629245986452034958540368038771474891786520144300685337331238452670411162984463693346526607086583167652857345700945722896984215768704191304252022782263130734461619857101400386913280789253761626152223368811754587209989940500270659514108820241233433041317246101574931823589329895111419092115887035341189044369754152585925058382462098900011576575190558780469291875161299522564141423544136949928028544745307131362168128505482466237004106583563843786639936229203250377748141600665104943118611403433761666214065126013797548330777339413790146669828665219277450745067622547282192115994304115836367443211675934607538281832472921967863892223673726243170260657313508427313038031770891040317132632716133950482259220538398172264433601333704936479495188363212135785736529056530666594416089360362657387419108692463596286540842048801919094423580064568704320637925909724160577596185178956207584583809832784526229730389351856173432507301743900367047957292131971147713722704129542200422207299392065187639421097756022914243765933749151825851806952520063992987158810369381383797567993097358452320744352446903648491034370253117990039430316622256815500682210963558514905470984491916348500329503505419915638849435436869645732306563293955613540486329367574521697331597198286347959072723590431621016650374075426802757030430691476065831685033220301141631753865483040582218504583927234656414661851090145631342946516145909677601923993307921147222805062907689846548736591160413332222761992681970317868901398295494130515937098193055868677689150586244173999825951216018663702875320821413637671161519100589200384566309820712755894607151522082387638567991135606729319258335829002838719182655201854609585663832067729917446978606032125904758682510372301361561532810697216129257506092200300627023620687790076530263257586284042500301783403937846405747856512239410350725683607728438654087766104833929023361459754176479670597394768540056766761902170822835336312423391634718138887459486420263797510421969896706557732241486449882223609783258064827937808526860838660291335829406698593562036926636658085441946218230213872093799820689946043904810578451381528174304402461171380057356291649321638308367331210149736125184089274166731985239044262331506491736677687900413576692792197510171494843776534135722499423722552044372977786134855103343324338325737547163345906600566113898050285235554849025992805053739675781852153755986894908855881906898901505882569395471863567007556861411320272968145245137020817397155515049678750299539201700996910486393511330845357385919684961366327610508184171739372346182513144337518030521383661710906778267979901704373485862306321922161669657731601046385145399146406362980418530318657712190707409147522808140572430008851583002906785236327718631842947023935984361585822653032412639487849233767603964783083791204634416391644799823862927015744177325937895614189713009817671653069972817776337766525421642538609996539643189979428134259687456682161989588734994779033665180570891774062975353870312750141967034262301808094180329935872047268345828576067205103947252286615639945900010480386631143725653351922752568966856242249054261714824682015230598188420476326603621127733199159254729388893882689209611819064220105996692855948611535990441067241776787690169530126203651637060035201622914148059799747061496986202835848371528271170300320017425686672085526250235876376469147620351677444143203243848727331295460052205508721093891467211695277586226041882572152214024049277075194124586313570648544146226681512226670185368205608708702311838688213364175033649973575555870960174865844637987650377892937707296012123304953801895125249389288545503460233974947148239288614326922848914555586967857186135252329774206480580143689846607603946809873260811700157101863723993653596513251433087622574471503119314115184747573765095498618482961076109694579110655579109448529024270025323019401295655204254191688183584063740491706048791511666694218601097346793105509976144105473817531803482145159153010294105544116322234700474568490570930690596926990138988902180087147030033184742484567472674942509937905677584201660167684518646743795548331197561207841134880900883685398443574541282320881246085508917001516652045604062620288248118816469384996400182676554368134487641302951549026097945365724527509864354013557058552939565346793273238896582015743714176422481639032845179892881734965582033709627561759445883440541158503872961020941489003812262357381445803044804251846630552686491334099678470044647081897069861707349862319336947524190857406003606187952996401822421419064850377348709327203930051613111518701359845346205654500454165571326289211596123925501184155883848230826162856344045449349707116627162317167841339155438369338121945659293099630873108833778887551753813520707796883739367874207841206528068794725193312932270699658559394445406012197042683838236256019115465614460691137942525129251317544175583873544761731042240860181214188807143013254598528644421275306480717568823487045348380193264198313078300207667111950664238883653970551268679395048007025565348975304576421329386166542599887167415906944320123301374966832791959191846446769358467484897915166109900862215888703260636365407430562427376439129298569049648192196377692039044790716217029925973610013537181505969636812539580187231114436021313842230200444038999545945847347067067171761199908000786652739671344318669852396924553345281529082261692914273695991425673056125913361583769263625549165109391735141029867643017970512680043965514199286662147849096672432466148366222126151116767896686055594410323402001658138394821773014693574221001549867393386142191814017659604191639656055183494697966535177401229310892177642087409655324156084583838090343139095463404242601268856031778073331797028518355315236216706216624176360841153260129321682949641006577092554891354497296040929311042397333626228462700922335934668604345837439045986798024098001549340426561249257425938654463741289700591175143594324345337310433377970000226907984079793198798408636194481488855885015253074687872223211834862257487806927134357272726212229616171366194172340704947598130009448684200793443117083093678153981339688796567675412121544266313796003948022141525097854157216248657737120016835908835435514933773684374478182495098890781125142963531450549316045840832713937725261315922373756152877468211392042662674619702701226858013620229076733600717379072339130507932150296155821642896510201561239834745820518271620406996568142095358207868703425872416754839675200367930315609192637943615533525225122369010268570871970141960231151858801663911152228999007967046612055000257767297667144180266107533206124684647877827878961570525986047083008682419176284987929692263746371592838642717247012946969549491948358123836842228519136027134141961580174816101523131949663790831844336639295368833251280488523538512325529891497583844297003371628274140286505760346099964289799730105853402590983784165068238297829341077212384066290232165573187444046465267725010734041920959938492737448320046094347543263373647006346443356836742223017055487445493427841931159399996306949839136426304947129192305816881549323179746578354315350274160815654407784373376420428549120699409109251007522479277811291625347153510086539624044967011409158043893613135902402503270994664052699060118572796233831879937210721574041751036577893691533115528692728931875047300228259287348415166942288408104069254314451463173153891011972559138843318438627010526418821883009057576891434818626749355568663936345064310406331405539763531488923118704878510156476336557018719867115989658805666702985278012146232143647688215158071159976210355797863595737727374658405205843165852792671748661699374688413256210246270841793449400241492681612796483452619562962041445978242499182463828358114231874233724001968884370757030170321118938667000694419525026388005685168260534909408840834164233622470531534066956346732246706205992207177279567375001992435954944684353216508583382278162089178556571945538909782381156151857449241155316243295577368984561531707332364385086114268304680532453707110331535816995187720036827786133843993634849443148237571118585412713455570068358953753203335003414413454314922156049003466516813085426950215349143370482486472805401924198089367316629087883372314201779730028659648356038443581640691897642166111880135884404742588691088074717169214724658979609614095311788942693696762431410450276466940879125745418823534652026313706660335827047311813946818483542047086654342324487846688455822481428822862753401925253922738205054914559318170074112593319067234110701130574482090179720484397568184496599315377702974877424293057757945900424774707709644229800392350251562040082917730156471997629924733975882353521055356611859303305118336544468996423659329973704321364595150283536866284958084518363736958962053872439692441169556526353235003224452685539353999377367911215944921090779448044004787405995433399155832581541575400688263600012944745970750749103278176220761021497616910440713281298414172347754456410073079735946141617862969845567644796118787783900800688782186229821952450180147206978320094106884992124073017834159497906971862790516737222564595732062915023998980998138702493232269510467469141748459279915412293167617948658553063412047421453504448936658278092074784333967014072878499954758297377100832665325669410599170912159990750795965677672256409891730761891606792049313126036958358101927320675720502887306537333722977515798380931336581400480361335954177298618220390558966238665379892535262204522369820943725625720366017861720733991841349388440960273475176780915230673192800210397431338490396055087217123242206973910564264450260732361663682743306869558923162604610049658747654213051514326096066523860737466030202287340652828666654551337317689043160208065230732716686589890465944571605155770854230688519151416871448215072472320811559810812387974337372384631198126653638931091104275768164518558043731447222859212033482188242526180889840239083656718520296858002229701398134203240422013474291742988502810689055011055502778805796471396026262768690529047174670615780673070481204160530472660740418288961916289471818993416702962982450588340672590832254537306927558443494464725281149091361256780682894625941084801850548505386793156554704925424138090981791621083202289713030559048414497193863819950315981258555228506530698325618519547560563145057225261794650649816297049128595137357157056970939582717280889775948699638467901312777341648448102607064495025027478162733630894379554885085292519600810242010597852251983793311634889086981453199456373270143729388144384755295391080849743240773261958762455560154652059490359337684003721065799499434798083645020845777736073299590729662068352100787752213904267340065425822857658441267580014944581937900393432830101805158381070707376544922402793168608307162669299603891110987381261676072213591877473646300545840029586676256724632442438627988163814655752520035741913042518827995551848849474420259663139072988766659621982645824535637971745445069416859887803707775969664516200768136582356591678121924244858303607869499643650314571236533098967177257634470163732808559887375428590557197099722860341188787167447035774852359517317780106203380187616379372114035692138367521366721508585088121332878975782868715469079946765532142408577328169361172729197304431897875108368026820214968011665479112703294053501746388448548430370656455343849318515462992744613782562504013420413607790909685535720850048594029701328176989248993603475473839528414062737543200212530598095526814258399545754741889941602547867083244539857047475573876762338225636077749659534949320848829104621156067647674623398266536460314685284748654197755402959091576005263143974524499463027163250801315292950128712826492479492700684950579791079686582355131683665429527604224650370526953554639334107051448849434756214636652695586649161846669097778021521753352061478573780939010076311600323738938629787252368485261831310411860876873172973236931496324733018788729407549650906573609671096372588201336839239506433199252928503095473480248216022077948675749660150268354879537996130076550318492268871301371927910166576588597925481267798832369801763236152367691466115826034327905280858452620884681646802342877592395710477495308648918564017043629730297660630962977899560007187124681549485277537999963670126509950350738714559546646395925516129562826051766425426001124666782449573819070231106427616580839466194445815318750908441469329571602962879919627267914786797588662762700373381502900918314639777495505910042512602047833220801870597803411742344276737088970329443631337293721495299498208504356597875529253868543804173551965726884677220276122917980117359065912164858894342017108369465492261558785517398433525753506440798941900118555987172258897754484701690592477672390022564109775714949386850873735319418085627329809495122917634775564314072604209573885823897098597130976726421211032680208131740118279110993873683753696744101768695569864488305107763284402196698367349467425037657624096015889848893485359125483499559225928236623341933467374871208632906383922301441860447921812705398047352190518733863760821660273105410812649122596170702851054600604877236218956882531347191364852929592444671271679084721897857753730274803725124394231684496201915707120709623557882624268167595963006680397938606220199096469394539988392532940845764712951039788306259176930458845966559402385529683996311306929981200206035573358927795932098022497966320850772961564829564053976290767531597069360771273195794497603661650691439304309546309521747900350818926882152977852722585449404966627837764482295301718599914757859987338884219100617749838194593859985806325103134559480465456995335320611082530697144164551324494146895138388705806095219263702682001599083935399544414225406017004628484787547890993831776882933651894359299061843476123614652237753216653329307904670727017100671426418525174669157791722953017728775702909612915226746791809167139271468611882174570581791052665183651672153435470839103164012329090347799161854268810114712779909291867185036064662876412687380511914920917668138707374802459608387374865942025087779855530798079397134051113398708678204704261651539379393976577738341184251957845130364811660512389723170609581517589125361020322233213164878390828057996997181956204463878747637544144644704448386241737172140983090015011693072141796117877464796488537817031417247501469766762316771291649993818394268466215658982798986371841656676418080191638666361956456028755505806851334231924342679827533672088582234823128067433329873516557469222231058004564017734197332601542883118668939299145888221208490007874741922857176951217321688788222965358240818534535529839663903048111409101898319741958880881532117013680328463094494861910496133536173856956892177230693119237859587373676361345114513007282212377605372616108661543816647279793446808799073963856775749017566305242769376025331510564585081416663590057773526520105051814479389012111768465609390482647755551778936729822923331409621416596585778874271441009502791898359634658218706213402397027151475058888161561735499783085602896254426473238731336238569201303536307652514339038490756215544678609257421009596131534008707018825818456833951122854672621464723761341314457857860759508983990771851721937804018145772689439430726880785199982514054709392470978792570613980633890754967523530774183809099314023113016795256309848284180658740942019388769749022600073760751439073985549992336862084457886731197426695672104912194935462910716734939706367953439032306293113603365479572428346139325466629438595080057155803252397447546668687548661512409653516067453025172868467112097655715579904173912648981860359129046081835029857326469434092503285611699109022130332238534874133459273093660053549886755651717540123030563095696284907688422982229553985417236489276071558253859163629944801181302299750783233520323951243499961469728306421895558738055647756393666163472720155787601403022817909271703330631227911710075522993502361225229179052182862433298073206985658386367572800978966161809493650898853434272817483721767748981777318780459019130063060263217558490625824181520228176592691166743814519522005760188108714408094221024287638650204566401194414384301618140358256765262470966765057229293489805594817937238363267706354511526491992353592515995771269744879839581405982541787805437213924339581415276404603233157542189902607749717233425788159883122056851699628807654542840637434963455518152062449448256898059685830919145942687075843694850406766043370596677940094151142057343467523530008580345908707940976647023809639026006250661036457753460178869215780387480432328258670715852704838691891372271387648269187368839856341498405498142744648319179182090574741903877937235781448271446507161842907544302370215334178232643593041968414137633763663866958456722103337925772553770371372801469407289823626917095112607591905237433077269257393498001642992941485178206616811927638754408364723287460428619801646343003276227535586675227079676516317745116186595248177280057660456781867208748492103419969136499932515591103917615050249459538166704676178500084897804167062311210981059135646298114372858220761957147437258533581664688186271008726128870883964216329295944115840305664612480011165268320014092632394449057368227080584647626378495544819795349311447442918295716173438762917684174780726980641026325649823579806765137687303870513543380626398634141773171700755189183179031054147236805069732841769451302961294088353748428736590751117502224582290266103650817185606948364898932063573625213031569413253846907095631516555802736758402042181541757630105003005377573827696169009218703570579047010140018846573413758448340219958697811977405268671237969024130565871764310247394815514729676545583437365526042144269900150322184998834095478530898689722501494718742919999510514125506808817331420338600944419892303675422648579489041876748034945621514070263130184511865900632704486344088915710473149230545421479116066431426356319861879806149503593746696111448331748910398916206702257843920239203289394621863234119190091281104641084913631850682459059876144169240012835955670670554704985547095784842075327201697203791069620833028752012006610116607525111336238120475688161659633903563821162775194296086048687514960588329109122896649271305382219449458212354885410301591414898214447164859516932134431990974775197043094792790011420928470731787289104459959978968110848866341244851652168557418551345973772337226145600895232362782252455875329399802779909470231189443599028657316128416417676866100820654594641148901793875865227189810907394028488210637576237276178212118589473360023285845762853888937682364610577178226436321180228347363111693262892046849811876434744661316169624457543403047578068432937778569611205357572117938202797244193118592407269093107296612255622586313931823530991709896049839793634867810601255022210246765430883441493880382315844493011936246510214314132803658208276147451477841573010789207176045600021813319086675005445550785003900766856878061051477780804437744966693387311941248030041700852216546562307164748787474175326928180771216854057520998878270154901887304410668225620224841187804191430250680909286425966017440759118628390757682494431102050511474636153630498022079257800879594522854639085878464127823465011236833698026455505367096574005604872945873001895398237404160453158243525681255614495018756778160385216817660333954985742908150738645924201567654859746912472493776249393787558877962191167039267582998473743602784892688695989067486795374643407455213853632970871944288078555809221938048702503108872106458589241801002207019230686018914485895975851528018918363840666945526198823144905397872935668958386756451906861264167774514351412229223816646324346120076465256796628040992518864275215358061792464350251867580090213567377046636940221075802442852958188362570549473725985579360764788103929276607087175908931691975700106819445715929769093129717580470479713839317446690845163033685566633258288749239482052919500248955219088455628059715225084158305445918826234110007524396346539313537866846310307718751737079293804925763358426230341676386947974641708710994859578051073201555296728634187825622425266009806810265232535695674197397926832011113999862192618041298161287630236307666284054290428834718523651171209799046153969216712949403176355562507352136431848498908028736043324689924618323585558369990247581353642486065578971621992520552594692344328868285710685711258693133257360591952943196478601734112792766324543014599745830428531284340389250576763794641167938671638508847470120587438427529961199824465388243330528974761519473760447600793034805742060529703364918455675628294102416817561273686403723778843556871778475544498745629398331353969684791872245118073432942063387275686981152640009646467057716855343982053960595356870947566283938362268041328791231355056212728639358940476687481006902783089122087366683613676270404523381564819287631800389631067231206063750787639385755628875671111711214308314197092693332267552498874635435880862552021289071144907873256550925050249828303110319650904693952481347938839025198735336079374843040314319174446781309066604590290457541567572815052187945542887793130316279260818871638055645589718838225532323278796106998257896062910400932718002751049188168439638574152268425763472407707328282485493176412214609210568048217731829064104349184430079389909508826318874741146415700611114144446415698092181655975937832394601086640310524224353175746826250920691300248712550465337978359196636518714090653432517250783382107493791381887249664613062583807591867284733610043471244633614721978093859739636396203513177389209761558377243751537381839983629920785066310193327216768226625693291576644365099110075480098028046935221308053035601528416812009449580433435782390799862342828378736839440033320118148473225761817842371706337075286722948482840957175865233367973990939562774174004561672424347871964031057126863170881558695307983738647375724880307341277463258952333883299741033136852206082760938846280113912248063906336963102946109254716058380137056074069285529813098782167062561266968401643693135856604270415698818189929066831503254348285974222740915580756567038929484161748242310135119136324945413496822271094706989179266303928603475315343481062857002275812790029271136504772609872646322156403166601017723375304310080607505588824958974875884613794525597080941023544527058699936541672760469538252275055108521779442391782245053118011854106160066813147264500710245493748970958666491761626929755333003616613604277548827125731233052609213756816336651216238578840460096205929086795274247753900411174054880606661289464927533080808327920341612196084334254770902832043519682849325743473893263225929453678815160052855441162575707288511146236142003774483713759998303531279609720429364602725773686539112057256444301783812627678323385579902159987465954047853073403418262950033573778726476811752832011963282913656116861881983959586530258863256354631244593154521616060555802539902363008877163367217144159629033237684534832313151803051674203468108984334024161039670418326288665801156213137511956618351249612136903123509819566356854046165015314888658730114023909284090147976234679308180845739009045023299482135684209024943743363452230281012095962986085597239174385864914682272645544815876306337902573368813007222689355351145966567112807220743604557797228164747963271996830743466571571720488812340957331347817857112657556185518786930190372009234480164594226301741781490884615934427998211486002672682727797572037908684103600920184312586945929646687125623823510868622102831684248154112771697125576900888111031953742532278971313036007070824750837610740871910989115510553481868735178264862699340171875151276047442028673619599252780527172198854824388091956327503931360252927646052463306012888097166857864856155788433786025237108693375775816907274637833640002988821132580756490981709760367473818136013669964879527585543247284495986938290740622067425722893054289606241565396896412213292565596152470864410366455942892563392975904263691773798819688361387134878846393952682153999438454228989837753680892314422868555023128272800035787980966605938360443911093683082875727214285625227771813593260948614406506523485831697379499150698608964845057860104774593239454516421361406678352803132780778311586274542423422844514556096518679476377583765220666904985699782904171795951367732214269911376399034735543671699828011972012801024284660021928817414521119286573684289774052174219942753144270895132486760644451712220970596580783172633436729744988229938185497726398950678395970608057093257592312247760688777770240249194145267725596227963256499911433910890219189134343925758439475543742288547008095636886369266343728643759211827299225560216075600163521118263146542823872563699771208428787478591923585918860530704453987415359659433009797751722341691516516107415674026356149752564971942263711276352491617017018580444935891076389633402998961402536280740687148402924390085145066283889056972146814520444993583885979904611638032613190763692162794219014002559291564756275371786570379111711772609466010233219642345558664008092941787808310191408660503315770049179824634294766768536929396780326570393289407674453120837706133593402551169330020497756965512774443572384030350048030683992917949182197642022360161461092762851597679955779426837631059807873712245687952024841627168314899168197673804049140717503044739826506217723126289779608841208665685015919124153544268339619533155418549095702855700889500082477128703529398785741581009554719955146229278045417443000244805531453045736757104485684883927253632881175605212085278171977400527140314148202977228734051837301750998423858900912942561581635499982176780713081761509694766798551968038246875376322353361971462907382671239902536303486617076824147778086864361683194215936092778833487511081483325103987365624128022254678096515176852046790312189648764482091186637693694447006179750331679063953237795263514250848655826789438074860951950211127879171475159599502293656029525135726101787341279414020229763090677488134464562270978054265614523489013720037817172205369417523492651308289539792928696887837697652819870879056339979275489575878692194301149036401276802000331113610780420766062910834775379116679588079551994732869636609764194273816701881525544134749760025556009491804035265802639653728957836723754486184668479782008532500832880829941513418541507042638596850360470077472911374571366488390329306592788722737367029910085902332189442429279872875885713386047212552174617761619365708766698730100831961221295817401712190319308219723135604531218150507933702014090542659913547370813537789324929194142761569550180739063018778110312209195980257717895680479833277454127364551841102854163639105071580412201596128421859278079619431974447111824360386588267840448137204269999275743274150845557611328800978233356879110584492767297252485591448622675890402545792501523875370797667142415168678974023571607786836433986728929001370868579100955113030752589576800794788256967399763714887295758603110471817757158863836373170846147163606530052616216197482122645875608988340616520582895993730170192339330288622200592884256859807037824556846291027379987822905484230587940850701950899845081511182780575871212140225347081463009707635927072709540064132715580395795989193657247230388669649525109058199932850749588792926694173276348210452839441910995803065833125445969828882146832544970194698364521594448389683471579364246691485050486711671404523558497604280174615810932694175507406567865350877503873038775206510863513041148112859248679830951779775892061205627350998559551297998347187415746999776989037454075133211623555624869094031376470656777995105183274192803978663684350281241929185172108566309014904720485382543352610659268029206365310260251985263263877989521884422009177679560804606675939703640518318507465506190102920761999607078180441101808494809899283896767774810590524464451725311605822892531013044097628416301263751338073061859132914427758055177872740563240413015998675159935242786511844023614614699352257850037570892683493861617934451237920668347734844702051816391254362047261889560240352977086106823619972098126548004152299911169778156653144526284669551995129273260704759389557193458091698506134344279433681396357723850948443656285963595956338716477960112397022829944584026176337132623466616148370181840689876867793554157287394911057061884139082463562816421770682987023945515005923346667462792123122287076556721907661981144676754228454380506302054812462516661245868400281839345977476544408954588745311194574019827040120645698769612050349028400716414018034058904412774418353502725423885585880905795570374381466100783782505169703198087830684981714147428551928354934179663828949790746645007986810591549217750273463236430985343388163563649426650796435315181352267287316831657813554659251460704281500980498023197425594107899771337283862671662925765518138478130010114519145224457951499344887656766170092001918469313030843674442621746691563921283559184408732908699063984882353354718453411304632829868287220538290709250690824878702558325219682241967606476320880738137639490294577586825080819240797154934921856445557619443501547815506663934489628456368342999886860240363808985535011594634443538331229515999758945972718681102307456319551344329856381720460172582056238531272870354793878685665903523218379962176894252830479748704172292359881154931915683566324113197792721964711593018737779422576324979655169494247789100023550327144677990530817516314949228287675070260673198560237393629641672035062723922428213590948096765029818238561370080707024985493345367172809824019266383525238252986662381190762020486258189036600107108574426463536035192013930495527027400639815531394021168884194042895731324930524103961342065438435321902986968176917927103744012350790733262974138952229544046188272571326795094931133767343379779502632373379683877065675522590623080583560929139168757428508861512295126107183630509727022940348887111955819066674806286283445062428510436713535160578985357682194845888270474301125285731927235860708040039425710017037723117420510730829401542400405795977969959088166193694745232690607851859575086553418901367845966357961119411164950129489787623377219596796617184369844909480373990190069749596134415316050282818066862521672400047858604920870416626000273079529303170167611205011626056745168340397559550211948235385322278813182257943408006580888682764728343022482102685461375172191796272026152623070066973475634655507048957032108725844893351912643889879379335844202683665619077601014233581931436466119737866862543953740388452742849376851988213905186425825149522145251362603151752530580381262550793364672583489092214225448928475720696537546585342286602089272541073400064062146310689114308676363866753211829819153128655497255697359782584273519578415227911708901134998973553121060335266249405897235764412306850136810443336293606459496279684021674904788314643917299562917767197078106321214018115974481757145322787688484318823388782531118476053975548058448228205299447418253022102511833220606153209029668349485132747217932111753302637985240709767945063380162204016307889652012393282808170402718254849118138497035473441785105632303669063260029116015516331890160837222649917712695346506503442205280100573478224730549772148366437189511363195191378566701967606184523105486232928799002603974108871968412169794794093694165388741834209585483255069206391512496794806327640214308282983302649759025068128970875056080989669914419999731500759903813841033883185221644540126882611343029520725838433753301421301708877717535332955975227340187113793175701825585232641634955339007581319214182952343198504250648169900058814653631212223823093431498667783104460524629793611991576098970941285907021361573723684945947496255440932128390792131055862940987618771006303153260453396109626552546902734482646278876431238127104614732994360770866928079419308668638444409705785828480302365759432534852268960252062113611279397140379854835939920153515862264516048992166574834952017361316098803323558235390575919749793651530478561674494085173801066830080057800432197659124602665786223928741530347726403821534993494607771044967387583588332352868361534122579731904176247745322150031083115136835720661924932566605998353642994500410051222964570646027569486887835997029910736581649946607966531616149989779499377844939818505924056515637441989331560329943212024713542733401010342068613053645612424569812002802915813130056730814980725251324914645128396314730232829388754429487819433505560797382684921626947910339318017626795385909379406028226937772600492743586175357623457889167110061205614607823667870890398474710058213594853420676069890663844659474808126725305780809731655273514159717304110940581218134568831648433143274462851384751263012717855564194450514967502694938687241471193949097737757858512379572933841680570186622833697064998987564527591286593852770984787545503881135495510021850111798505365844002862545274981683899965216964579310639461147267373472623863479497870117116459273948177653083263235180178699883960588606832088333733307356883931330578111974545962734701687358769681593957016899618533879283378862279948393487219374188320689424586138920829600983729132762514853666470881177654161616442289033402990073450551846130282272892386520445713836711558613220889434642751793907070446515620584327192539024684991139162984437236104751498030766917372480019181444913894776972657098650714906991681974963575910522696068210608469963819183803284513871852904246512968810981097921619849450154143235751273535128332687520540893860934223404053681574589695804411597811374107813950481278673647558712922257134748674694236778849865654673754382724797127946898156560002728633204495608422581869259951573170390715896347925616821374460800606517691655233304266356627468161647851339832468166090202098232254776395181148485615353667214233971467022298946892068192812640890213682305341437888703835487819474919945976586684582052353599206681289943794348917893194745502120624571581358994578763782758354750692894249123763351430135277905008878006022929879295962344365348961835720118947974268981539020156948197531887541091277964569810361651937508086056726765845759949231640013768093024961966375079800345130540978205709505605795038823362091553741050413589867545804296797337467919747666387903316407614228633868849394972948396867073038010041926560056896932709218675483406462836992970966631160213792587197469799565506217480625699348689150874140592309770182574338903993629610913066501626363996152804535092159449306043458008133803270463500450338813160160279915102922054443023211301368604511127048638489467408861571684912054881717730697576130974642444137705412671529259181043627178258725181764394803398328930443234944159408730614099869209932766878590979391127852296103274835563386221633332486053814595657883962550539812691123414284635217455168339898553985008354342572201735309287833549793406459417988563382626680895158545496104669192343068240809412754316894913879512479566039939877178118603971032172468830109468072573691702470361502166193046203047712879680210347591087981075178141983002901808417843341875738886200627294062112847988896447966226962403236219793097220125835751607546803984880970061302026531529382709239953600849016829924483380344331437613601047055540711276359690930518694490429015776762111598517153664221290697458148009896141627450655738847306980074521026737323477718512806345672710700344934706239582807153787373474105844207683987014406170272051964742575521801204944052980540601448163223487774366698660606676341821516012930339513944918822154125960199374407462810576668655426759527960651300817076978088208806207826247699971274282462894733334952244321455852097048130534924649374166435029934494881558167070903497164153984968807680755454388335154591040366589319258158942056853910193590692594032918352538991750762573504553885548124352250504677527074953804702658681870309742282263005540410828421966380365565972841414865332174009640088033658221757242084657309754088207477243450459511115507676420329630226053280153684187775033487568382654357572412570619037049706554047534852478202436874191429198025377499880787045122192307523372164225958703253973752706383244448137805710244826930972304402260014333817969002862057223307505291020143579788779382849525510790438202777655609341237792176662934439980892280284571468688149364531211969161178436275625988283307713727072942396814653809680358144396236259027584349250488534255893109436277717349518375432044573330993545997978960761545639002559689192511720521422161781915251862344230295757377700487431648722598662797877593381344204283727032633208175210418835237632229313573863260301928350429899611395747044622012218404342637640162030061079809385488271643884267894568079506506492559757919028316836854123049343495546317911095272192600193499039887690154522428846105753427050534106417252521128821530951367286485207126830945393586661066685422905864472706867935640462069379780462997923071701395093841400915025759887517029239493640166175208596709488866832088373028324623126555066776952325164154792123152415303965160563806871252127130203609675662604037943943731607813400649635416182592879191758399828274389750330642893561076258255127182058101457354052208604211387258859932596424820151768835424851698665274172265764087236030607533804838468002167929255642271506316226116977362738883980595606092438591376292750737760167222676093060799248893891131887337719528292620189157996974427724218171787466597900783205846724981363148249921354756862858246703132732245854877243084227753323053433088543372716738881468965601097889029542943441019342433437989338384210738775690061083741942042501760695790152531348450378862992234345891478443286057500036090249034048890360470103091322632193065845632841608722966940038725737250121306747764471629790731608721513018080048143888265959757738587257484225122852794758942380071257228869026873828576246943963017675808093277349738258047820226479671280271876073828979773200640226900472881876922336740157411967660641542111784505724575089506836348589676554911074777373554571956102677727509390693078678464652628211718848602230992738536462313422144280410806885800018178969255642726159612663575099568669178020167990100207711887495779544360960084439386820811561345736527931753020931682864738243000610470460281619811975629366237452533993233024018641207091371376862369692065406041785229218570900258657618697809697077373109256499734005754755967880490605357418598950355834186856573868156545668704334803371065339954776678521452662706059575655990956187049486421236719895399140087434822920128191392267410111174800978901410316236966131167835103449710527020302183227684181167971782766214071036471494255847924061390821741596941675268742389448396689214435556599325100356836356639801500171065610273095181791303534257930509676573601818635788489802714910474879697512197684898461377853419328848716701902549808855827043583239827146933719981878295219421380634377275366803463072810184718564114710227127712008743242459068817228447812988772919841206108393608762693170132644509063738452417093701414780202371166749756251403362994345279114081432428148401555431653872626040591063065035544618124354268030971117409649283513546384277589049975269854182912283771683982718153674988969711755831063916211616171155141897579758809916153972145879562949879215773378250572004036288827094659854871213807293369118379884402821128000803513429235847963858003067072513225837873060976845687123229310728700848193436171972404803961700214687769199165022832698775319027235410084449483333503945833884533978587554200118836851645166946338876301309124944927577587449296996180728454035128343454228006475350345087947332398788687406516198105440847787622057642187633250035168904038722594802172407979000808890651492433440128388727224312034498420692723272086688855200935453191661586127436073253557641458812914230696447765172456663741817308036139842574700673375352683432889459495106093840283245312156964709391846074201256801116106252041682700696881439818360806718768017509549827151552791785388966786120482154559222462029151138694136355828178276198238573726102315942653994531124104953731383969767132225082480119758552324262696906881259563598544497202490145595876849119667640925476667494823379167193315879373454200725639151813461797000936534524972136407649805173572710179956523870568207519673406461051284299442487448186796850800649191098865967288671006592999275045064655366958635095370765942603655412878318592155672792546842160707862624962106136079900456511652219256059933135335657375091117331458909416612453782351912589659257973257051705672339609145941887780367201904614236296322712454619276877803574150108570991377679326239710241636254413034487215984180548782719754553362089113633065864741403603443096488222064981996022778456090317037155817026561090637960099201219491215915365071584404690795094667319849785104640766854167946556715817030113180852789583556793398142267992221525467185325735669281069173129426763821977102377738931462991557990382012967652725932720008056030914204434200186983717422671161266760622772912474108773522589749856202908252861915558519627838563883794047934195155410897954762541592729462246838156955895878513101108273443923358696945736448012554954986160383556513579298371496445897356941650880104505291940572438962654608028079338576238614299407915021784455156655749484241464499922302054127501227038045222020612333486641353003792718166532142430772672907076890025955068357919060564606694598787398541459276874250170680969378326585902304791151821104091733181663592682916843524361931179166496418318404516129550684513114043081676075978896795028582856318041856374569220935601157220253748574379289647171497219243392532803722343465701259314087652429168413165517437638991377896434631035028670098337849278558781635417806216074315473307196740033469142650500752046386111838321255734180607544160730240467060505160993858101568884742179145499668160879900466014929319576934032286938319799989824322092725910627403329239895793645673600185737897728281777681835137034220313066132565731165044413873237151462886898898275532504618101147356672393827926923602964528726358769720394801577957880260408750713613409234465374841940454504158129051932208586466056978388124619448805560262788815550513145862388198066089797389325551795586190073498862298816196956773338461487480576983369233416721856466322969601380207161767097592388389380124812728266990897926419339976514386521291072885265024841571926224387242704220670131931704401662033593856352998044233929149772384527180790187833649065789525613546363957902235297876800313295745216544059080827326514758360822251668593018247730955787403474803018438190980205696115835317216865612087377821779715017573602332480433011252702094282782232722424587669331627750194683416699361510451466169804216264982502450447616297519712513833290394848941593596207983792096453049730185698430808029830385969411808629721678566656135485125357670177180795702684816047343214605090453385646851925208566128553827080731737255905965328192096209113856973421434776539056526677112683457773348519326930588505975052185077724674773002146250231147058257787385184266452419039719209533983036683509760509435541806165546308398834257498205788189268759734508946034731424985420984415029387227397190229804131235514202782066316639610589701307028581488851514012043744228673217665390515384871327471669952167553807486539359578250136198812809091566874877836403941064791614087952441781378929908922589786966536609773934935591566575191357917242742825715611278679822295097104991965287944138394254624159838727280144631711796602982628761838339650099325554818426796904727518770078540043671320050798574989500627157447604845386165272390176035816546107098201460681814868415218867871683557697017197448660628432120941797485329532618925540996144367247262191375629748106576604887273062004954566682050571755162764191154331566205836510151800635667733710281444445824553932056602660379456120096734787637822942382894198599471718047762319103500204224336414660115981099175384294557882552350518862375575815608319324566536321457595765080139243584173490406944612945368065507971456341991662403729250642321997578450921756136465930425530985341293322888811549882745336300944458847090130584028121955999468931956145623116216207702765289968213878579941612564036229645124406995321086912007169765041331473305109887696499455646894655225674642237548926349875588587676964517735017081034968452679456974027136402173236300709932139729446332504979250947917764248026637156813521240459593175989377338974405483001013869120344991588851252189217011924229459561413081730884061086747388423772499210428734691268870397067094998046860329840130269047460366465207143189398247436191024572592526927966017439347086898921179849667340534377743110785435372429216729374330852764122870686793466518919474377860058257276869605116260862819785142704262895007229201191593871597531574707773861917781388671884921536214955942595570002635629180301307572812223869099445023033131359346690911519167510478783107452300251271662422126027820422209386582605528738472193273088530306999505964525861636889607246100282234544427798478028209818920006456340265352651331190279127974735609376223427369570224596341117184020690808300938952399936841217034324826713917091825733478744017520930523155808291273382482080519631447105565054845399478196334513604146078131076442162827617381208850299535336410273850989999167300317706943838147547187461795623030384688603078201951605188750075392353651679668105186490920132783585641339129472667361698223001534190413687759760037012219275228389636201760447040827833599701525596367182590819678936606077722014002346983854235347055901143082639046431422008190791054223510214785387537487217532542022828902178049417606450298729126304392826152305158001682576311372090791687603283045386828233688346455745651317334420978040366030005358585209222208763407842536086372672913123136681358397677678966180864769542184638176013352803852989300067477423736074223199622400488754360542788767366624036502878436282215759541819713584337347841229656377437632573963693478192306392072291035444055688807586850362747374659765992881192494598739410578558078681598886716258796754186198601667034368019098377644783629345664228201650839835261854960811092035150279469513688407397086213425339308462647896924617146522441798382074620260838514969726425574101842438523611295382398116017722552237572526667734174169828398991089059229656855602220495056915638147308959593711242613058091733757865436947526142945420213816972170374401754677362171588854833400768200417614951665216018778827578342167958201456027712115063867393446996033158680554367831960114511687591863806016645550822475357478208581650069696389245270583678051255194968537805644459895031417455466372628054921404443926057328799265899005213450022446988082765763396835717233456417327178536467045274835798175138016786828863939195142525186221125557544756856017786418386983742099163961030170842501806647605347768716129642150218538359021027493915615125426966087833441871854121767175660031323473409461303444162087717073380340519868378628085960668127389898808059456895812973266484638359095679333199483770913869938441052061528604193254547133029015316962347501117643679570445409673218646565319554689700778958907133502574638830620901521061727752505805262223320658727841302698491365088792488285306986636460227076487496174201250215611037809844404117349860366462241577002512659310231806314166545798835183381534331299714857068037101363797000829212807536749305214795597075802158454513643264116150035967189304282261311467647878030571431110176333172823823193633589747710798415374825489703371328370700555574458959384950653956752501536870868597311249197024628866470778350728502774721915852541027433954112057419535394267588690112310630254291713293079445079724363227614756754233789736859096711109741035176996825968501409501825353231853782115821622684881040129333227301628876750346646868282349378931683650472128544467562359804210476570979065695454691706547670123834012735306148647653555718063567900365503572339561875052197101254793564572147859664941054132264387573456998891335929889950338282763383493627412194604969744754140229009372288430817038297579405410226627711861524390066663539212267338277950612773455251768609029502006218173590141609837131237315236429797351679951320305916962054308432587374728092451628589275216110561706011473110477389998743590059057438718046531328974332132584244685993139105352699349336541728434666697708252109613824670570411852737477022492010428645937369301599212563522333214003303021116105682227949169196699107916918811195502164150340225347579279145459738673788072306890351533565608962705246998321925611470488509796808414862614427540871089400220474127250875555303653549134083862264865215436125748992191109785531409267959308958077589962721922206178641350126697128742573802956575497010743617740085289509725219178962800126179107083801421172780605857671694055092725749619978124122519158670366328087919857855508734076516879077861160524322063597616392325725974499884138728490724689124732265703756839209971496720355450157322323180225999717879061665074301297066585442167453811588112603325566915382137721623148079578281001806852811475402527089643925347042209809950267517851207620284681505893176395153675317369025424246459653319976904019736660199230952509212563624449054014115451231217631065703344742768606471978634495468171617962223540111701549360472491739546769346216074961663605961371107902608708014010318514207837824146198272711097075513964658337148863506372609054581526094566040395729013709813710838909607532941453405074455054425085639097248894448258168279515021661654984013776183860450787132709960660694554273987479399989637316320897914671098876755822520796338146297760148729588383853527014518139829788514786449404692915946376857848778209638793943076480852717289555423077508329096790422714729239357231103133416381116143374778076271525068120690510779252712990344978989253578729338870366306721145425999448960038734818649983258497243228441425713024909248306414320147808493007039174694891039944880251958467986903639643764163425430442745245164107306199548802884939771469974790130916980998945373439522749026061018399430161917397294311197947618509567319064202425394040857541323928791548455383472571659469525499687091701033899134068919918824769566324232714655704051551291645390501221915393141760727122150388585952639247920669150528589179767718915464316439738294782999408355019071721252655902102946324461399718829887963409426366126022711591852505927448667526733683930903263446984738315320619625491314052990949899617979244935155892770762108457821324865763833286409609817262866229547116465785981874938814100971247921913902350294542600639988580345853610223376119232747977126498412010539562927348325226503230881769695149788718783349544752903992312404639060042273153077272014441784190869808170293967330511260512637007596402365137481752374583974700099523622544849220468713323398034916408709878601368842225959654975944970455761214228956317106944772675855282308629578946016165591304734733992566324657828942871840586230176122657367056230124143324748763246638310249421713715844293053280760478335463051381890511456624848019281789252231748512969707189804203664706171122186834996097829752794125346354526210788532105217959004844947042882741160014237821020639255186612711100143844539520901061215119772589039705025484494649415912166526039542475250564530464694785656341815935570190237656239220789367181718187519588087741355391894348017920080090633059652629690880812324195021629334683150048209136408753076294814850132364338597574658068617637528882487398419373873612774264561118036362754843698771819785693829790320295873334398936247422559403420880231905702720735774739148232464927505061167890644935941963773107987197274411202556941180212636334341892371307877535310610757563504833065351951667013813925483180664359360702668797295936736192372888377421437324145467550517610914376569074023627904723585349788315152275209047992702615658854127553731240361760193275457027893323221318612588742903729946960215245866821293026116371252213410555152129698622821930229297313211774581509912974614029738679436878861743745378980637597918157364428840862373436938047585588992269543182961972256569445816914107839135304052197691929564079671573027877289560034823982899963941043013991845726583897547242635871059808508488986208121799562842368386148116680573642329743256707018175958123639332251283234722211431354421681089003274552919554930315645708485503034788003382715411913915601338130274213294534864463534155274092151984556275768129400499928110184250323443107706527911436018895501712184153789956111746104153592092468054887043791146388710711076255446731079128032167634190799685670946233365512440792997351619731860698432797035017221804270326624135799458316354368181067672985883897326992241464017052983634458452396895854200427530801184516100563522920119146113280589804622249577261732028023509308456824684188313880012449023082969697841114166268233134509024293782109140932821247752037208873089417946908829705744864691140870648215132607466903320653529362502342203770004478535113739392378721285875307416441469336671109336415613799759870216658795806587676850055204124230254867665625396600190657335241454309915117314162949593524944520723204528466705956881810413615135297115216644861387655641463845156565906974481824249463428079162292076451277073736719439132806335103453322534617581460914776191204739778943818993056009481904091338396351477341598116268605562534854244699001797936407440057833570714061860041946931731738675242405424424065978944558857920428093016674926058042062117671451731432598545443340595254443513563405159304040520384730718485240264869452818874399458925461793899429327882874996259353057837349512925467570078266608305013306515078805179783820591735216535354601698067199198303507014256374950590116744313336333639643452123997634445096579298519872852698877765040480914235617004232778460998328459737647408478823498847475319137534929913361182473594352920644470896332720562749125171670450253409178042021592383960945353826155915422729522057529352436693968540026151396000236734216507533525027729797532103732494078899484701718572886820812179335529428441933014548196615163629728570445540013491845003753335541540071020381864181041863364625224031309582281408088078097635367500969574066048031850818030630915109329278418916269740710391179185570511034518754162351761134689264533324084972380537804240294900437889033467141938871765191146678866475089684615170909570116445270230038540621536344268048121731144121965725530912479362445572555580424650467515863497244723871286567518377753139504015238614481184780223649167432310323441954501092636313406468644980890320940293976752148223070229317516880288285967181413393792286600518895905118501833516119653189698857873289235028661488561085875794604361284463971664493810179827791252969339269856027641964102083156996109624566170244747969776412731731107172132750316861043295478340942103041799006836299464865595947085546671363715858244448705468617129547719182747074587563176020429484444909089023438459032809172137951740714719079948296492694536405337097998424688289946224736523460266325173678616814148212883556916736067188335391632618943470311861369383509472661650314943179702036651586612644963047820636314990492104353141327059725574842907463621479000755134656489695234499380244296428259077411121303971338913861392043880056142779395721861263183651762899725325135623032955813832423998612458620879399136742414554463197107529470066688444945381519040051292180077393347674282557181280470320959877111308025780908464805760524929601842211389236247782994883960555830317652843671711862177660767116873496378849188568592555760232892623857477159470440946253456839524379175970305865832733584569277805227844698609057704754740852969280078446417950383917304211615878026777478086668111314336296852719484114776034923596095824192614001112412353237689781323461222465582882848724271192969710818787035820798032559818807166916681273685414342152898012289600099287860425811948369463324040585175578847249525226897733651039242638317489285441967652946136331709265965011781174254492977821711517090497500938334480732950936962084099054450412496828278058239841896749416603092172623127597941911408429135243680968574782892216974212567508953381626321855316268117187672551707637936163283444356472702885750783205515783655979336694811592954511923934965595707730738579327925999275070269463670003974217578235252171530945080701642145444709443220278516747960481671992096826048821912204727344630616396575696475333415880037595399754933669551070751917188725566955156249972164067221466983707327787909613356130339068044005136550341381471671519157043343409145585296274564625465444898478992640666615490622764588495991247073208525686103186942848396447719042843960444229221968412661276592219908122576313597171264346773223862467080521485881504059539315014378287195254312599755793584330142124583005460116576703522402952111742316703991859620858828932961276039913438424913947822760377901436299718268531930612152602419232849711389600028918586958848217540324471347898094778963038042596736307508805827412499790719944154257682924848124198449421483498686085284637011587536997128412432287693049957384767022862022764928222511521536367592453766516439621939090180204922700735504776647070967856832063385395120323784237445800157746856055435780875232834789513822092406869243406350976744331889607986931184393105541413314820347720322527266139015621109868039581845069477679617693509822644413606922578023056145843237155332070640367263004249696066391942899297186738688364667661981065122612640880357674714029042440484987114973484098147267274840505207127299560932080706153874763558780643436700999845338642620548009045834491416102465986828527096926687699751589441225544284853518277720654203387675499300407256764574991790338900241071614602939339285257429205997270433154980257832955539754270195745975363893159123928004836712190122742470164971899586349151000772345574121476943398049667017937518721021688358695850829691852491546708961185438646820922670011362725461746543962920229914131950302738971153493138720868179121161188951228659496049809800741726035871287257654547718576632450070951507309627554069316210686280678372285987905854402780006048663537437575395747566268926056239025050897881421980557487766814956834858499616560631098458871452353729760027870717546830385841005152191591928681670280452683296864765422530631457580639318539446719928782886653012368129369828283161267364783329159932717158274151656315265908318829237851206197893976854038945903026280277069653944329622497941141201222185165191912916665081468700969643036392407154689296461792367887832651498725781348260376390553956904952066020137250596005907743408452070056841800946417591362255629327438269164046317302395495942993451577008678301728776920293120373977444577528550109502150276872467038684181788193468729260114906190996203076839192552454608572679330295242358779737830035700627661190979160489291871048685998430142080314475828633275535458140544183776398187903378536215167935376798048980204140652483782586255285117162583061108643715084662130973525306660746307782836132929696735391968847271502914829726863068980222494972776528574910470580046683455868193712562924768348259913548174373475300852733114686476386031094454126815552258704570750714815557661303650761874607766005679706558584363171859488472161413988434205865759675918836410227766831613879215134053552096461739832616534020095142895306937243439030426351540827555739272709654911202833053320956493040649837188397337932076595575003031949022001931380212746728120381374423241977444809842982954087833560757261362391831486552693088801522955584100749207042602694595571503903449328406744661225121312287904391067437029217416493741156400728291533598643495099331012191485817516408933278688236937400666409738455219081953971157595207473401116562729717304885850100701920678286557480467749615591854186020971724825361424590922079577735419128334741167417143686170459962844188054506632942188268582195129783181910812591271541737907833140777689871358929847525069584857008070264362046738788976787849236373309982547734253797159931392160863232798146165809340425903079105995538249808310823642675746903647883026033103004519302950757707539659889843811202112876355931506840951033353454671692218782918314809460322691957273826034884538377638271373333328090604450798688019463121899944870399718785517953898260496836219935910815938991722133801479360336792294259858637390503715197503559630570839021178044425099392805021845678148635962721855807492551792740925955579276089597819612177236317926181249189190903635726244802169612980608897204685304676384057406473084782825809143375840416718025009999676202651802001291342263842053812203798904214650624703991813735910706996487559182053711333767539320695054549762669821720314689757140954245954088700024368005562760860516898043303510297132569272793703350156099650832581839245644570122204515138879002230114000246613328209021749799808489331750052339071898703554396828548927810291593295334691719447519370979898760176779816957995269060135103076182502604351603533446177891873218181174643510894849977257981599995131239272444375660272141902198865774315120929523955565429231316070815975439350318975933195691811047413504815748446028805282760864988875309441204523206094856131805504415956543652919312066794405583057674356139252607286809293017393892299765413085129289056051302488904597708719914754084454283678885200505455170775693174512171173679433238567743503720944913337297671618683442751612259813344166151850204265667525563452841610986333674527791668537416951476231957179978290731075341568883821663029007056816586406739341483944741519667796681142239388713240479253060800544865172418344214853353642798747703364418196410310777132830643896557533632785205892002187553810607970260445760143565709118297962848765698747742420948104137649236567192494323561561848015623008224510997927305697438104963088124817588298135630137595283371230116431768822200858482727044755578669691261976309868163948440569338762876957596667430239722761161016188590925636775898070039673425131969184636688780570407825952407933755025078068301624271914976321944307739861493224319326630705744135645770183449278827906468675532911405038506579923836971698956250330572008199298677076164006747792641032685170018680106251702815063776364664461872264021312077102464246912392743128647627199338421439015954739586528370578643661834877686363434950327071891369163836002873652281413300849680937633770746817844956140439057784544556907246127918699307670103067547459968619945184389753132981585220415124143572058187350919643174199882787974780897118205627644399849099462011409457663054523952585209840869462888463993663642501847444241905678254895983200330318726057209883241296887002861686364490451605905883543736794926575543266091925155715507066729805784274351356104602321822625052138841769573795464670092059311699166544671021533564190180706827831695229995344258775382471030059036101207018213957253296978446387382339842905762207248809914160593995416351859583831344460452304160861330109144276683583347087289034994898806413993731998763881949044773354532826841230150350717295702802510212007265273383355237201562759640917779201826267046658392563808161129130870166462857760157620519376162399706510212182099191980860090963518919844072132163810461203911857152382241430467033086488580762634157426779216634403933924408626424195870508575066343159122107036088708264307637281558624368593426637188692699245128521221242950108978703201220359715071326172099012523216521675843135602815130664655412020098872219664102945164166015742707749139116864342117689602816183734935109437556270224253120765747787627777939374584065022522000286086096707705299871488077998758107154404433988823540337049204712836309057250725033358882159906845010579493551077290501601434995380044228480864736078312145035355435728530643139410773132759590976443825321840973830254197325766353633910287708330894309954279071160756741554746189099118662615133770756443713297177352982240754925795437572821582435984886443891314726348829719082988707456891487303663406084204924702801628730512983654424433128378919952710713437887569495165991493843219457643077142092133961973377928458578602577762881925643693222683301633216677284560295721284925585687950489316547917114608144908676919875136486723766327938420418637728605717702763189201084527205103477090603935074887550785785095951314545451340275015508596660760192592643964362327594763196279400963967720471864387955824581319008708045711565522464319978530732159162291757174635248684489710433090573819703528838517438910640620119604647726731853067955015588308727166396359618860685697964331007494385811396428655372252381815282763697370434639260448445352765523417634735918511899409342784379452615259248325058499596128671634503593942138496038513185026617278156094368932782745339714651427303271836482246345148668735399550326525821559780782743429488370236779175222414854514138094608851991994522200726735075014691066091187004963862895449863502084759956322104197801020665584413049807567550691232169762178295937784266421963078767247482157250600678605347650613787528000291271817666001642497081286835154744856413926601096049881452857825022233336859465134382957861185562394346946608397779163450216314757880502659247025685866958304000743909726747907860799891815917649492432130358460145805864232886372147481736390795746298791396674465967619838676142055470521321684520344507690788809502349315289288148351197345169991047018624357756107135550899269991928694572443898836636844932230561811935324395022500514430337333437156729878738711004504208373208945802446340037916916542430641355213485519598905470616323747484086780637405101687722748953526044377270907474728491878719206703595902445730297192349271043629079619897182565114637945018225064205399177771677910680374972045658143547103188379095685168254872000531031569421604970468404307721436046349067179793708067417492195681490173496655662001824862601530024697259477858958143242597728330824384945082364783182395033797610897987981841042151243550198421475601361387442287500847700291568001443753271371075262209344992765370375898809631890183165037094505367127951183814014604847051463787511011979693675611509574168120018447909870974170282506989084161643708720395518990916748654462103089718104887404755137197518533750627665423376083350653226783881474220412080136792832534236470745662389317536473342751713683150838135300191007618663739693703252759712403750373083251974372300042853463258277847263676460145764108083670222973728648811751697098722527822352482850165890626937141631011295312483650028236759773331168310794314861755741616995715177192358383515199407345793696344957678885733146343069900064195286308892903735859996232542682825856519932446948887071074931516501424797218048351041042910334409010296287034443978659311918773152233418300014909840514586426353494183901139799739327541612632681171327212242122241797556331972813116291496009100952605836531364367283691929115223711684439747786673571723064914838989052204135549492392280895371127322646333939810992024799723237283105109831573765965259092839914956114800198676179508896805305748473982395009304160619833240548484380431481293460709115448847134351477756518361359628413586024717402206519580420912442805232649099826244442111012520826850327970885733645190280875195676421556346091890427954886884982418058372260410776508835631604510686516510336770666332593406376124690344450417800318833588579245474980746234310383608875341730314470992163496248646284227692102469190147698510851148298739864804096865276200913933251657635374115063190706411174733871555223195000040024815527875558073312498110086489299560675587005989704268810759658468008963196522616169989885213881285586713402642894556720200555819103379153253505983517288369350335861145860883124807766026997008547190336114891261848894031458535889771069713144878900121121142315624931734241637023097774223478343978025029003540141814581512962679034124378778745009506131582658832388081761737158957965287413009541518756906839791682729629209164042899541510660331902906636597570322631724418933617560707947470874162899747961562187292499007966610546537335487636550406606421784133021956647700409601923558709145949835651364494427855855427696198236121505831890053758348590739357968901674397293820159174805604412157536994452543569238858595017243858523319823352153310710023242454123530795473664163834493254568644185273827266320306589628228268898582543109502052231713941948594077829981939125921057312740118931058512317746343060729134763126274636220611190622218697584200147470592294811713727951165348957279380058717064750971528579671659989943141685176383807999960839294835627790383625175229202266260175958384074317691857035162662247670928832989423017046130764361880610786799524291099684508862239540716892713456022064659344619412555141154929824128373887681751717832648641272781446780433109022949487145429471560433976004303896721057608504118637556635358334771906769469133302968039766693045540054288197354328718011291637491461144438452022666286708227311081512074842754644222044649037360706803691064609696599563244495704978952498120806023098225319944951619756623307855740824581530950880806926028773784862149938988998589132108826057278971849130276701158121457316887498028404204430381457635901778059418987716075925685626150351412279170047800120160401385598543023812852266343259749403066599958022194355845913909639348738509896062174689702222989558935369029702700934854520021489568121682662032236679948974903089241302875486541948039357393876878078869885965679098725382181590161566758808083687824124919941620735286006899909327991576769681379170723537043272809311613236051025532633294078630860260362341343657647783694124164097552614086092372634433219851714797907598261137057662076689196202057906660021993654834524767189066963162539586030280535270710675953952602752289772067360877419112455819955737486722794555380675992010681710040753415018116129195629431085882573862850051468030211568733664353998410562550632091343649364942992696113073635260903115000859680214338581745058642947593447124985817873218814198637229391019116826040044378034194920070441702243265560262858704354243062418914273519843512144869780536262971130129193003341605036386251732809318482671929951258214903653260173289417194449600116160613880108049188726770187419253913099620228817923374428616119714062686462330097964178705801382503017118421751359364284420714545422698756302780059485628544483588680413451544935608098644431798903545755972616806472939959722179382817314268479122653678303203696928200184067406753837093379330680976182773199998567267173300155988750251113865106564802623366973486565698995902154382376790226477059606645047796823455280922673807640703595102805151934896318560134625984705447839803379767122366213959740838256463959839357999585295456708721780926153766959996767057349812091155827723384862703406208628561091316198968848386340380157751264258831261693062923537056308385570720434735900637013503397098040550064010555944684847597221281186228736181495977696874888000658650805293314567291222480282094005909096395594199830646729787023006267319238825215717616766307292895020430260541071636202397584709740610477484737677205976940192125717159071974193140274521172659653969192987198686039815481883695640690662576732627272307166378730326355267462167403767061687572639513281383162645602064332207261917918164384535132537534260796062206037013537071105443142000084246139094038234668450059468270594596537386878958947549889384570587323929866515412983398010542638513487202314565308484691414135362796483927046493448111955262056785803560044465816492507685586445571331117198397621837486186985962766482189429416070661273775979204848612941360658288816524518134021070609623592837246729621322336729608372043354686534116329789216293763579503626292287566586092258411427476774735171730498818741117057434087427782224005359502931946429205214292284971475457778357576808691955251524675450530846902852870987306103634225561781404578038507540791756980399340036289703832935888539882459200049078583518543496424760290608245957669364175499169631587394738215627773755582107221927731756968980959453816327034879519092770849510280576420862195422590571443286030029422057132782669472326741928581834093001251224759285923513437014566973483664470006378004579968270320077350905839799156843287523745009981272689700507653815846421096636771709356668118584574053074797104146143782619980502882746427401019126068115043405177735823091520974928141055085346660198131860491461780667522997813579924069377507297575291798589427041438766775784706426111335928536915868345349777156807611671715308881472528490686386291679593238268111977290101171806341590059427167882552039522591878379058835588736351363253955973076200473703772583296744032423192053209044490744735977414729642995510895916901328866716914283382629905839304274176220531986968244603753531689829128765753058333159327450963110684329057022621664075294550008644029930921829895857549437593122407324644331919848840214961430696015907555233650614946032793717918703532534350565046706830980177534316225398410269838014859980411282300872984944262712221315000379980272239726894091160749328935253122230703048188204481115119931124635660932569637288158751240619017620587274484747928283462504293727569128157962875177810283470589298448205530672231303624553088048894785012687079378767890995976984449628537515822248453813729851039395159701870549307792987338008990268103743557362533873472319951681918524316113982310083908531808110301745870173898464371709371324330110009214294935472860180743529605340809558126554367029103303172865669328023145949507820254709773478576379629368654993671539214751819033084286359486619888490903977936111372955089212207561316013480294565082077602946960575469665993556013324761377858545141087530477968891949962324363660474165147064033294019768201375566684783155932001253615125538080688096049550523683329838415496515853815094285085017797773924964154654055503359875663886259257127230558343587034224730310724284847137856960936940719484912701218909349611550277461415207331357518556318632412123943925676480472288343580258025324854489929490599898025157650717132759142276123793992898733164445774424745321513790582266519240755116809590988097091781168496764064544468854499176286222913426380384776393468553078565173740180950077792112551884538290086276106193311036476808500685308996692415203723746770528995911369524433053480399635444633281496895252515606788658684039173694698159067999307137908210634113271515559934177696786234375647436033154938515465528809407339392184775637013436711119827729066690694376528073909531101190756150422853270976513310027053442710617158626016443760499451535008710609100083677866235969989208718969491650003894722089066412818674368815870943230952923447182709723929693915989906788972140254447650778739066129700317394332399058170778190742178442288174373204869938666263452661839000732075696185211256927544251865865547991723757645243856436316072531511823936083858827124340459059625398528068810012165119357721608636127476958529147851364797686676157654732410162292558909008648566862234678421328873785851022582619857093815102802598253425403298247672936269902143499403886204882525276659597510982568220616821809896705875211767123102723813315627512296675657379808018085963182732463789083240115648429650361621516347568767636019294326357815336729407983997581057047445602258698171921861895228111405112818466838357393496652265352448020478054459831891303635814410098050945226671609629103325431182989264037610737746545968518896992090550473259248294529207996330349966174026672663802325507774336367761453975424632550840523710759768601739444593721040404382921153370797407741367029905576890163714286151934790221319072370280069980486023359724650285132555341548704119883512090258757239568783428013795124587048135028073809788759372659165638773287821783311423187260066109699806739235271406741910922922727183178117113470170958131879918686019672882334827772326998608358914769493906996331853515168619763979711038275888080745389185957018170160633566759136801495946780489586934549609663744791387999087821108257687990200743490590552772796172870084147452492162835858222803483927754716048957559270186630219885601982060445378895130907961038185999997455289739837556373253129564834315553768836579830513947868772393101920044615166247692306915288004454067749046265305459416893378584688481944312103799299788216469672022822431196592405109999880765184837341308089023786359410261006313535499521084198480778153966464570264322007700247179594832824228491839708558520753793996896821757275233557729536978064760133278531101219840890791993565358218385183358797756369121757474867916976698592959330257526741885210309464382724027224724845052672754650893186163710014099274376591943114333196203091261692784807939003662538817888494497332489245502440279955561618933839831830313126224440938741694441315568485310484813566808586391938935093988570403675223934684131221285625898005969036918681927779001635164422360278468396650740915828740083672684735474516233905941654906675004656333020581894632124014125616734839954267784930971474502262582783780628043465804496748210738968169859012301524536011985322516995351989905992171799183119624610000368610819450646220106717096606859319529515091934565134652206820997727706612827469698639030845808052330351782504549062273612249680770601632101680019697446378545886594415847822725452446506528910944041713344385549605026165591729190892265983512254159366988147493476472545851451877960793197071245557196148579804519019974879523480065865764798292769459264594808145611857484068626947196378225654731672071808785943146333788677983081182196728769725820025591024916665687939464711293466366753977924141086280292294021472887636999614131533772756047741465329520954075236002893067375918417356970272427308630939350784093983182765950193464733557923088175084298067142080400675903307109959830609792167863348792310275437797763357579088258596561327349566312277016063495738979205858589317101055658221609537765980723353126332648491360538656675746911932848361961351020347702095734631276457537477750198260088818462744968796453982660245102082909791947785782703876311998176187819664134553639204236932467877952673515862931417640916779683255212486654126385601307973241375954592754349265545944678692787084591567054451374602902793216999916648869817251632541342454377732495067069952878242647320906941677615155535152275792817106011298695267368959856248619821113328130434007410947297740641771905641945038713525604000152917636694801203507934989124293104590124284384975247183508544823844165218524071336369301395438620990200674778398173053186106229469257730161860124172226465279001588568990138559231312489493390138119995361305811222150085834924369383686495669241557343592410132968528479631267624520192944141705499291619488728007686675053850955998090481780408852112807375207846137705461897576414200267576537214719440261339801015333681082112987661296485105504832716544254681621800993909099990284460584377612248784415400153999461847859756164002165134101124099503822130097978820704386124751318990704619614480768144227734371933601548172980116248193971962670284703609198637760914771417371006397618748849351711835384897997953692586481360179559363398296212889482741232330025690048743521142849332633167804693234513407316063119126232971646188689190967871256602419958519568817833706452280269893898468905432715326450191265778712890274468834664873819884153920292457670031055658927948882596985228409885073524634989402726331602978370141312359255057666690267445107685309584830667479827261628768688156546420005319221603980363782984217521603341413000337068956833648981982516651468055613527738841107165066646041526838216521683595836290645351822493795293369376181969795170791025134422160362457201351701698663565807009875735921913567836957402670306054065403620805508307199363446233349199833681394727882853608767292464923870923614261641967486193198604114256119241978745598774443096419757651401307973020382497647212095748788938980303497751186751841964076951341630256172248941972517326102646401645506804856025961288664377509998431258654811579190536955369861320336568635073234402154654185573611506746780445434611971966035632820732328086920911352155114746420974573144925139688115021843649700667034961951533764233697876131499196603372076322659732612714712143927341601614651965012579485545299314461828397385246211459396735082267964092176617943578378116923758296315388630363055019862480150622506882776971113852779260189463162640491358072739013675735927973646581079753993132252927762040888784000887532780990763805430332050513691819512146164803792497166098472028843473056418604584888184042954670793415230627001901051019335157547743072864324726590579249803483736429860947356516024180853053622602586595988759727453674004222251268711910428104456773615522707957778956204859301654841950268642624735137453583495667442155906675490926328540419949198545062214446919716313529607450820815269611722484054107028808437741379931382619433251175991280877564258671106184613651914480473015598251422078905819149825948128329537880512476269172722695278764907012609559585793038577501006459915073096138084209768095255413416979979589131431873819369360125532816675487909219042178164141018320062617237703357106607443717579083171126887862703045413851551102050894930564410261279798043391516701328103078617130679779864286290776665733192167796589863617462044593338754625828933428071258531110374243073049151390443201731358212266589791782597723129189250021180638860206878698634041735746431351000104495626087786154308579677550052526747630451807430202511040130492870666287579013873441119205136244169670290430697937679443113763110687956117883400169472709782720602165287813801525444518901321036706583052824978899533226850120214773563136979242816485981444083730950131620356007372153627002336425216303970845290839933498260907573848319365589568032016833316938941591562980109870193069068863430338849334943095841946832151091116772571164363949651787632081326376348623777103430967604610538715097218051107499986523917727374196229336312641672797057817308001435827204764850339978307580652479681377862137697400019939400065557696151907593614091292671938077381557718734112648743702710323458236534493381543894345741470163124301860823154976443049273131708747132236852652642372418177212005860952551192503353044366501055516011731487973128726262245715480126776831660541861121534218097147236641174205349452530101089138211914766786628341999984914303750925765257102016409259933652127786281973398719239810868450948599950243733157672710420746283672121768330264704515266425628956303178733259978650457652064401496664561813292512083210806801670352924241969580386456673028985887634278429881231276356791206234550671221518346664060662301073133922422498384912122984382642820173050382829359990472280552736987564719569321079397072407887228229324041310571393820927187677624442349127216648091491007902684419201031384999722329557902692453246096691602727417152988768548806956296630654793620078753421812515312043235787201542426726320850550351117053190647397962513198276407884210610156780806124976084967643645492531253656785782016669509828306461789839540811599307018491518917200608903499058864586890222458025151453137160919564199378709098229992139903695352671326360966823053576179910256803686781508526685444671049433600642349905740472828813142476420409289470487893041815274735976397173295330279703298542963348068991915195261987870478824319883726022075944279075244867630068090422496355429218352259233936117550308423359378424440392018731386208651356722671572562195504865414807317879017907606889565124110287509608112646412591327007593058102650182614875711302275997387018850727415877312901591208572781671816223957006532644665123466227691197364668130196737021089070612385631984298022328385058496689071263835353441183560806534646995679826240730188089975775135026027805952552448021637326837497470058274315545009944555710822478888607446321354091120421949370317800458321471592442246030965286369648592211824200047066884139522992699057550016223865214496974841295580444228435038596555020484356661848650589843667903927930975439136232282980718203716375309220531620550491705263480502215130863660910257976296095180201693532133538479030748181177221957278387228129661177864435890429794281986471209090477017176521836991916995737374298817210444246661347568907651150278749409804213344000781690275573823053741817820160261477162330995202984864647309572390235898208809899163283300115880541213570442090546951636555484569202084760471867639186268465753799147720330537831519666690516811193300847437637802405415811269078774042676725095286656781163094775458352466331048228246344226568218523890772181008573294836565217286826129547994193168088632639383199190201727285881368316091180243882281203135272996745163838526773344798213909092872481513395910216138152279552156889234552537774728287145651452613634136291103306044957766307578923101548302957720331192252285299199553854423400737545063326440403993597977500483338071705956630813156689396633550725137724363824529360587932784860000759532338036634958181454171162537621241678581984924581802076682883879060906464647745950502096224890630684232775806768771300904847372119376134934841453792513311756501045799389148318256020706826227473721580437845812062460265758462533568793520754649078931482900594326081185531072947684359948669847542491047677173193265037215275792790958699043777296507581989244518860753331463667954187985101515395706394305015587760396505573415570934778286743746306417616198921890701498697002895939064604902067160827380080704438123821241352880671160466876299023745747542719076587739457561407488723740005572956434871221432558651280492272941391946837352378651834434114759006655604587024446739241387409765702712122586811106362084113030651423196742207755148799352748471168493676630596005358154424018431951852067988045108147216667744034491612601576902846319354704492728147976121620656589004406995489485428588505791121043217499227013714400303683473169551619803133985779667313186885193389832075885781708701922046681027477321964285201228859925920960796641339140691585620749992538188247239311280460953424785180971135630243278686697061058248640540836436886239414341819425314486174595927475638033087670455610494788077432857418622302031871983099027455113661403023155552781524615613162345242081501746588531708147638769332641420980334499565887135285895619313166660545220422097081128394902931788992016707108462477355621030344776709485244219830854555680750273954546402793646219009165632960898714635528428472403480233854314364500661108821166735612467458740412728671358268688073121417022212263268927533029618750874855203020483911914303678137569883094489252185927785054334241921466922933730092378991162095402558858914862928415379465344640916277474232735445175389651005087446185729407623563410422992483193987852805676924572484663319085689285387819750985701664300450828111708395520753985949523305996772292176271472601551476320390717799388959214897504337368561746240351992692662597055039240122755759489259013814104970780518532684029754994597731634833154343687509713905679365470472864183600239486158061642550502196085992831108288617565322512778306517875558397616601885976767423260837940747851345311572445249632862872471175869917423005997925275990904778446290400734639605848095659801966223667847252351571186364189338808493733519974272356582920045562367330294025567662551062772048781604948589207460002754919735290518512393782373605641393144812633571759453026970133978842137320383516921825816557951612534910620780827725540977127956308770389015036419309108897995564839067666204185677901189517834481406304334618868630256457772791129717643644149582132496472771404067398821119771205015399588758666074801190759034120175730728663952412431940385487320640544911273363744388902107159465943963532858663891214768564728219733536287424455536642479128286018786758165026749712412106716669452844703053064056060877069506436897968548255557096774421931839865256323637121149696586712779838507246359237188451664677457261050526480522588625447537702529872190171962147762211799831992648321245244679734609192882681635290968568669880211585223665183918047597133084262863684705658873055127889574100382931215093917342399613652586512458272759782732461599966021632163733389206108461407254827583311384100919510095369112091921814302797649392348443442935677140602274280021752246608253886378696275136822868855996887876078706489533824388458801156597162011100426602860605782815761078980420874760560824432908089346285303959678948848508550530208125356189931542442858818737809115945692847694789333615198886713617028748593982566975930466741281929250095565551991775023934835291070705422143482362438878863720254253981442723838444266520765092352365352673396121113200237005912385496992930636531622515080620378873917669032266085147714264731818431823370298129640239364009265388950489834790646732168199022323112713116702672480209382678616022923569849069251538452919206289883123764156043774981283813449507739052275439614683902061071961681459391618762708973878145986144517763600196963118515421394127621834261116667223616827537008285086106066642197401540674347665727147246661802583060979409196598721566000986464069758459022150477062046441789132190569807064095398544690165912738534276433463596760279447630350456769692924963499064451895720352599010383751457983778415170568099341534173669585740839822299831675151873103704968844384114705737530300607291556924920683392234775561525393792246586258413664076174994139202716788954741402468499402843234192928041803338721463704810782692649105200045569461485140817376306076665681487668250117524730758303332167969102280700434966451952317280552689029037142560124337493980842196618240803521551557718654224928856635915887129786552230898828873994663262838586360258007378458494198794714319697512194582167833622599888573560651552284950969103263002129040588208458499564085588222342297096558637559056402682145861755441896071047547302941406184339738422312953103199126380871879398104370593517324363863412145685950855493506245173365959914548940573609872193538543013068793632726595349117198206957365366010558247874804790767374214027808972811985641939543668001806280045439989587843777822038266972890078146758075255488120448424576245696452986855134142936932440611951074006744775287517595806906311597760241978926968657232656839041589442899379016661424548267283828760994650379527606332298253560862532872719527927003438514312982107688240645270926839471948203363698506833506720350469105893082751126420902454117460679093223923606087982169239801746485361980452174178462847367899242667866590076912537700507902054318891482549938536260360696143796296469969072166348421150862309351249070095750641837485184740434044835069623689343963081960626875738487230213629678102999350523227945324968930028867328101389426762884359727995746228584626119593385138326596433614372080947935309707653486786558433940855016924970053097952738596930632771291639411255932995984278958430921515334308234949718763136810128715459541150800231637799097242218071709110190299770025155507403861007118759455359966050774737218111100727042609879623121541663675670082175451241616000980719470027377797707380555498377864809662920391694751783628366209581693834594262065677413983968146752982622603439755122492714273318441949044428098059395304799909549150205190678008103774130880641992093629540604578161113173241968017229517654100287218606235177334433556277597692575121721653117902959158350722128872150452718092636217561759947872360256913814346017282583751219926005697356366980359715565302591979105207205109647149936861177681908914322396086715576731911008116026581460556790252159167589442118730412553576141194392971547727560876854305724559950566533547904326878868669135994535978470697672877835899093291404409175368565415766905057761301005252875544746877151065401376463307435902882400818465545855409610468537826738522503016687318817265682798603211116664383948709337728220798342697800479514458590622579823144946134094551356984073808169315484486332277700129358651822768248524895116836218603732972931101594024536326756379703786925329419440790530592510976702956040388190201750416734870338158391868720299428921167217367120046121687238388136908595745413774833375496092724477947465622666360727248175485845113924007553275571109028674880642624327279749323829682909179725052633864831044435194299084319362300862912772933953688564925478338820976066268478655099860914610926687183979364779538423152937844662838533240062496625407814192046785511957423202228623529737305813103689733607203306340061709810855042940454667929033728350332091304351531747865008746436933518077928176073401406281808265978472713201797378448311259319729828424437720730868444621694561148040199784781469509302668924333712988851460319834321790350386613724558975530043832528245390961913046192958432569474812522421717275893085987179180524062060643045140351476251632950574433183364159054372383538580607897584038268721678505349152594605246182102816319100526323793052898365983935410325235207296832176273341082946394604948155167176957259778767549658341700173579395763276593720933546317165574730880753491664609186187325591173944909743877808072593523505340470572524371785033566886876234071937112101788241613819107683281650233218061062145418930887487783843402905994893208479064641520155461745024013972564772110661572905599982188903419616382126276014775298438469449843532148426572087917595161916208285243709911246627662404959338828553336724122680206554097732843297745202614324836212961855198617828586435478707354838797093598408136805866088535792635319196415911897323767872656008712153480991337842666839008822758687584359098952452334979986775824075093248403680929448208347773870568249498437548825881271502756725602990872512934919631579299483402738671993503270950645250271805668395717732393354912934374408987014040279551898298044324205192481837060862627361454989112701728374389477375148743996848551774357748700411066532271264911245555084036365284913468861152477652528062549311924214171423333188871805516697685569597147693611696989566787195474153716739090110263466545060294691816077991065066709724175389502494769495895567692432475421237183229388272487941678390009381930052734172454486919035992418244481752836440928549287932991783999232358581835822111598194991187353517434228586426934896286558189877963360790866426805456344098778819372961123373937506426005276659985497990372737185686139107398760620895909409798718048802925801711771872484860892720044355834115936866601483523542328852713080953422172257940094157295662132469609150193403433291266564919042909057025501675011870165651987965556052887524028215819155331181359218536527523689278356645371448301272988809190177936475800645042256996933379726880733106638436972902577304384276691095382497160156893594450993903295800102040925091387222948868438077768291546363945166204204810385290777595979367374408362310066067491723029296058356245585624251948110615974708093844161047015318004353251682330300893946855364101934396098443243432347549228667580228788860494782333369495321487660770913886969537350298165103466160948777029617287295305465922884911226003596999119404294030273433047186921917097618379248017967533856485725191778766920526300760344731561007169762417731643274345620677148156814177523242878652010319313169535500384097086801925598320271293861315482599065862450022146369423377526085121446510116573808728727759339031463003394827334691936946206403775436785830289015973961447414936691376252186711768199585289464466266938048836285865331055309918564259563732152631058803882181114469211678910073987859360734659783013458414395795362289958102615907196428600088968886318982298140517876093955565399596680636708503717068312664780413000567839635812157681178908752489387089964856380403478887726574482426713157457774749455330651223462882499803588032078799991011317006741096924567190504640187681975225161932916951441979913303107761179995598447972721371762568260332732147525936276168557574856202852573591385768598961756109671639847250784852390489463732577687547602060259811093839769816969368426417735859427897283891421799762074038186714054750795081030817691652989290297245223971587006965171508766534374307566502145498851548161854516452247820909111589163542667159923877653648145714719510906700689411175339216638132502398174205593716006532955213766531890184312470245700569276264268951511690376718184692913373173553116615259306922034024323705109293481476363301228362121388473757782847352235545959574141812165631536190697972190634711429211293993504465279293793319616544940495680553650676217706404014254139739487707015795631738724679787372261563083313030759816257796038853931285496210565002964477142684099618158284004467615408575237874277890235185607335584951652196498740605136834808989822202540012142274453907397369129470684235747289870681851695838697382523694424358940593096682802288494834122764373488988320140238882625745060079146456985735041632427569209582913120559538864150849661684655929474105592306493695372072523323867028071340853527071291001285176873795555252897339766514876802616799021428292614222215206445915694146219582611943877665745968211183726429717250390786802674568226372449892948651661266511962476047289567215929018597134803493748903986617110661998651346170837218640000049161120339018403218608465089239344257020741568388634255487480245115112789525126828392337063975387221862252725890399057977471428056272390994382711843614982154223517678781585380176770456600201760329134935128703071629955980920782471225022064184897914987628575082650548800864403276276140088856188172560805878535377399112290267638743601196683759893345550860206473362032974544573041998707780519297443404726507322488759015061909156454499294710149975230346225766163014172414116963525573497477800680079640821624795345913190342663261329772334254284021451435822004472449982310721266769808231067272507318355825198659820951648868683928481444116301675501080796084039058301626805104663674792084698886933027246734800626777941146025250020274754275341262821240699976140990826114559674215178603053088165419128319475452635667967432995051873793021483403681976050174798899410574301642357084785672792903765507184969731712593561546554681389669915377660637271836966021241819848710689780041489177504772441819281718129086296373186283388055412503294293476009012791302387408962939803008590410294750899368914918166118789432760193682369871831244130969405433473178219885037122100051203551617874571477426761231952648126426569457870572895421500612283112921029566616156811231494943595361912903358018378318823443164918814677137031604194359967807344083547565119867204298903482954377889480693922981761036312248153437126175224138549506078601741504737957974913105827127299283009548494007477684733062954175366580527332121686782108413945482415358855674988607918429319941543133791385937840261209823538454727636038410098937652437092106733730069930332458786312027656230120164646904001485511490974107639442551478935306840528083180801756375295860380242094936602810661824629354326787016691645335185742672563426136031958742549962101430269352368308645686121473251517822753203128192000749827999235672712330817085518767034893107235486663343480041079694615865972930113245713308030994371962688484629105128969977397889099901551853450144840808187728883858490354948133609092202166567615989411104146612384261869266971949438578333622414062646813864539411571652270400189634147866057967662736995847591867444534219930393565984918248819108228186456604972763222175179631840021474539838222461508244308078791227053353146148006373069173804885900130493218723747562215383461307294273149554469641746401002919095347433122135193939445304949944368612677157880808465305639012707644264204867971553253675901060330942377780897172286601925828280971356056120558687654123009174424725288004739236721679525357901654304361933893113753156942885044274530534816549662613730858429181171471906089468230923010938873480981293282041015678060946547454012737678800772147396432682621033497600616493324864100053673539805358673253261972200219445489556995999615192198020770713215907871694962431499179100728485263012842181056083820188306465213427678237656216938920400687790245675695863537837883096373881361824431502518180154512762968999282399638386325448135285994518533293871239347477820947215826484330353587406024853080179523818761609968627585862141862018937351344632385055911769491869531402188487797593227142207817377919945303316802814457202032222099289483801401943872298085446084983172832669817717068364881194832427921158774843989047160261727368795391049610598628200254513500848856359599411897868381851056397676558754512080998776880336682598969646647989582728841954251374215194038724796569835629905971039052781080589575809544354249588981512374685682045667879149006923712694174357395016218283789931402056325226160706350520205574982107361653290191848045138665062051004874797472833815399807364250443504887751451660905744582050347280700149567226556998789542328741046006048319506571738972544792883583389467464702119641805034888176872197625968262160730430963443760845261419172119682223359438910739691841177417605679582202094658112687390715257357925079838321158256427201084584740600060334907982968282839276259920214946364324898511476087827912896260383201897719093330117636850682332744600567032342284178041920922504084976332579782794917872953012258685717786722446284256015406723878060428846713857556895446854274989847098770540516882792242095372289884868285337554959367405024404621839973002449105332434661884021716697841891552760639806844630004928008507716642870573193985170134933421797305029663237060238172537152550558486545918028159758852247844252222478652172707985463481070660675323119297387479608413269507068821478645808010655277801259153118013654624767218489948518392070386842380279685873608738019024525576917844644220330741925988098692623492559287311455733110631526623628950544980384685214754645255074136408062382496901584287214048217787423940215947383126537856684364642543968309021365769668605084793260372922052701386958050335113645868538612215856756420361585931718519385568647842957412378207839603849522502628978861816439024833476454043405834942461803387619832592424585121778616475357848749487333945228848254902973752493748645580388508449737316504037197716046204573722953252123915681736893725350825416620128907490196072755979909337127763551520147010365460279927337181322731718957568212758610270040054292922724349565843069533365132632287539403053181911554924363624767276945357457135790609468546597610010429076150666629996340914882334355287283676434084846980004397657542026004030899437824263465583130500047735743220710421631562050349128938927989728967023194962371845962088707265679524605091283543495763603235852650321529571624559247878928191555584908739863876568060090289277478739092118138521115547959392278937468500296931678461492615118896920370585820452349396399300276582032151301297773586904103688362074825375135740933554228769577281810621475845803657784481619035209703509522832840003186355146318179271859302166397886595446223490816488336590117156940268073511002069645892140656920804818368005093542113026538652317882232395457301515606531306431230379561814726957300356655210210760441369693669492050054691580263271149449894264833572732971328481260804155186128376453630334216478569000442473601232374736434258815755806372385091904380260524568735288994708106878629924013944059091725115121328410096318448333720585463336132730736165616638483112775696761150674736868549160757002636542907577839142326937499399849219187800895360131343669616956548779082487045459826895991472197677895581520959353368587944477283201677157809253294501649215859748387101899805612845968942813685420682568856462164570012172884211476204480431079044552494615245966960254002745704409564465570696416900930711326597533884072668188930778470681187750688527587414041112627724822238612853795727610837181587788533213582752495772519813745753354888296505643454624895494943215668235393532457264571082093495199483186763454338644959978392573406087066269826925502296003804053175614032222808483094549160481010990620340574834084148561279689110532925040645321567341628151497659792041731177293519929811133368807459379735188896984508937832001178523915216470904287560139998583078219227829036132657129450061526133172375928427920166556644926968713500075021045012721303737798739825070060101963059039394587342492594550338743072813659202566819642545167353388617398149557375982618894163079244830398598005975330773741643425219738270935482034754646830499859155474173914228808637376159579902090266265491905440676647839102385283002255804861331613432569246866307978950400229177491379092576869311557479527346648937750953175209089407083176933775891465131085403672843030945379503619780745281094119365517617123261687056527578709177837635514463062782775538909600627084729168579768196321871664053983091110360343937529651239139800238021684266522573631628150234038957534914913883491950083734531916773499877507605494778373294739954512791972151033663921204637326569843932255899215073791629185675439122239412562825958746006747327273686672639868634664082770824620909035737016542436871020944038714528457138792610790113638442319669604099730017103324513361805476421937632919552558098080368252523204479285865611547262284983875655952984822927568361213368786872480954871538049958753555355860796036653101455246803309816653410701313059819258211480806749412802478184690649296459152137294230477787436547861072765765313633383038120840830648306328923570044845618338492027959308351660882163925894531253045084642569362382603512443351290434887564708961271120260976386771456652307853993702604034609243482749735165219835078644587707412835493026596508872995787041425390927653909470281068750991387630190390979296813869870040678395422445324450224135726337402531825708391685873104148683233059341836700061800287535393145342432827628017863753870917134655736527855633534254744614357033485863650363572109323553730784630840789754031460350241536534751962385600672653656938268423055050010381481774624202240454288529228268409170345321202616035872519314577253609405664787694035826064166413781491983725783511555400733244279662985838348104435107958187354240893510719482836351715803895864125728156424368636747582922130764513872205769687266305472611744961827242050263488562492519539648313464591856133045117617927124455135545191512711769639553920324208513978725175033567923581706485936761503462836473893993444872611431565558990414492861528149083055227475546826743509918660758064913146218156852819783993362267938579646467796355593861199418554741060065574395503008723789445644345413115476948888758980833075748222179341439594126394059455613179547458127148460860719907604740482701350811394009115156892094212810459027041002782349346797944163127293228745213277998388618631430488366410654854666904021084663750663353335750555751885620766581024688614769703481863341278971838844336405037516176101131105357897778712719122072592019329737075842531900485953100209822762564621299487941399632691574969641676628621083819971234127097371302487990684269169679195675470846241138629857725176987783261998050628752108896985772144276136171177047659045772034115162110956634634095219248796942790399893777973467618111678609484858701424362509679687183195141035467436175010337582602164082302116135641777456984641073655613825962652446758472494986863117730521491599651352190001082277312258444958978099010290529935648384393356193498143333492099479268896587517158329398573507092784267441850371066794114177475882159387947879527656116504119146406397281826530482876255263682243246950065396840923059441588903154563368472641757455506122382476059885583502530301952205778946439365751991110052033944512561997719408357982347020984804869488275348062370625024873952484144667158855721388893889896985472100889553514512429073348695747777040933925786136754902938693749658175555362387520132266993407031135949244576576915052682776998299531925691961056310537788333026050038270747413155452287480876104255397161312984106080612751571637243739178695167686599877985098498279606838903281391421647405112576302139862788345266843848241330435254242228740983138903181203215474767247269803449500100310773633782850362077787671260439290295511567303686220339622686886207310481367098748813610785795295449019162319163989937734470091457537515851612372814166367329804358709273974949967717523012428488670090277570513412750215089519173560538678484316845116149834833552287990860230629186033093817710068533400853424077117825832923427191152404879376681470299981750329243326574541877282630348925693902117098838667877738649034113293908960991598208944069055464838102847257412047889668968638228144051887308359994212366486739350845332810054374789769804908733443769767833461846983448507342110223080144329506680481674903655788423733343942672321529262159622577581184569792213912571488311086869886569480454033252885625527546233655210880116018213074323206125086990394382020743160091640993374345215467290024216243591636476604764200151006100872377000338237233688454322280886695312959032529637153793729144348421207241485962315291381910060732456534161368567680825568153186433442503024163645352592164362756401566106216432130782534954415094646820554073485842765497758742858910676980602790278239665910823656937137605111521074383895985243382127566328967605904649884888371891941633837395433208853436089042542086635798683417650222478874464411040779455943767422784011148567877279305401174292937129138028988732963680322190089179417475891940930287334811973970517561198737769577194688162634049987315463579319365756247519461694372267465683713278752389332932565704390728759338068207748572100853532047104229641478226206226228988295952218490090133608317522978403104406860094761396403364230188613241221820664310258502769977439097290524917446829671206465052101773730553416929129513509154580585137925242314970604159594862803211651126487946251904830970779258409723788399536264579730484163888404791511520693294436554695907562049243477361589951118278573949756859366424338047599569124084017229822662113243252464771738463827373434627415355532007957757627825741458108888537741687414631072805468569290400323067598478755892711911781812268435303686997717441391911551238089999734561648520006247914045207925734210132156426487374998153486575574475603653970898387164830993657561789228086763022805592468025755772949071774302073540309796339383696528477870413556743550471952176051644496639640273914719657435846030406891281639181554417532880032197459024670320597002855242494712192021807019914995321941355328230786000154641802449944863711349605802881360824763905725827155298959148796835452502812153281801608934188295374794272486519949931782843994529809099900110120142141789889971736312175677243408504726551399153980889631549507600378708364530816087300296751041326442313888892999797941503345985450996709104947490480958232930302860892988152762610815411772511136448358321523120216959445059632341374864209283266910795579547222112798785215432970225086816301890546940641842043156836201631438284852669759562779410181934047147539799708338213379396032204946929140710105579867835859052046707324341761838595994492134720244470326019375894499058709812378369897966126221815551240869840517155599350251683203730182064745375006127953223510463071456309515565485703455608973349443277988405417717516454776239841490598765400153069211989363320129129889691154129373027554070205249575191266395349428956449954139978653070924645413954791225481131507210387338321857283629739082820612635159081709472688542170456551787347130524743331407152501095778209629864348239678258152114027637654658695685246909347672108774315727321665009634658520751392098831673834469450521944150139757486292991688214448134579263015696639616219263758532077352983672760494823971374974797195373915358736011836699178798882607799012979588952021416342413469102306743534466025591320938740535915101305584165412985604049433770748715832615000538368698212087086444094070327586835556503615784259497207240054103092980198124863562066849166691114228705690823540691525245003721740590091367718071990738110121959909169580283881452476823564704593627597127320960134563468879557669860721451812234786938171390571248204080330002007890594960062658008362102116575185488222135075134361810057205701855135965861609363630858550554117848944279903228984632175888003129137981984581316231797395122316327524864694215933182802914834658306596555869400601035084185972665626222286107330978286701840113275704990003034846577382984543244295731557901358851758307881822385095224274453487822193197877086582904938914043108902154610632288915117064671530150114001155888106973858741797836788952516750469967178370555585074617532405527249509386496765330241998953555109307133976935080552451043242918224696774643776274450040781625574845380210068136196854710673507905808273957350866082552954701194364697781089706908593708068455663618515055163090394569198959868542941272400311394969677989878942253512627751311928543858262806960866569487536215844792241427537818263980931131204281664357321212480174159646755380162783489618070512799604232009382481435318714561955555375379814579251656609600922997206925968446665514505616662158343834894931675588346473961389610420732463251092690068408479830121939588186958245282847961985316592101868875563853775046471520911059160893975302360022979748990995642019486663668116148514341025923065656605305260680430037160513057745671816220788984018979775785099665090513276045285795991509332429418831735230680192566524396307200499343630863128532311323674201550252777738067993637489445034177071327072351394630362222436160339540702354637473680545236396440241258726776211528991959464097432267233906467498603067878031960198888231272731640898325550821980106376827606396899596996914687580482618664902782755194844029405949724791679125033733075971272014719626600950247020376175799831475943889992655182270910164589258967890548921042560974946793448142807967647116502573770720362760537476623192018329230400380506193521757197763198576564357503452967767127807712831018727213950317714805865269241895292320022944160510986471674701275312753402289871542342593321976327366005627153979091532804906091420385745223608487441262183989579619684330155624919379475837871637558348530453408115972366614147275332703527029090692318792511274552959113176270935814036830906809139696681499336464201380708379738540317355164489574231103800624222724026529427417187103055608132629458431210766736745917825625497902776037372616860254079532774053613828597160277323858120131389974753757323646295262624537828825310663611991846004418903723598757426468993337114882073450557641635590653518288271794788591683217448558021433434461176139120128643144889400505761505538220156869871175174284591540263378715054755520486009726827181898409955782620332110518188380794591266234841327750335057617437390404060108367240943216194805538790084660042262522141764474231366563118865846621913911263921996387996469585250396614344760792397281161722741072453819154474029903244957744215168521284553989604186321196832076399532611988559350049370241185146162705401283793100493381294756820508721432566467029344417459727442522773578563690328765375949197863634152948626879832370522901936357825176546285472809218158181860847238712757442492694831835400995083187725700577105209696313570298147742398622103919791639236431843784426807456642813740406521776090342599916688172910070318988431534546094034557528298865902165983250035068189078491286416376011333800136619454426027922528140019655473010237643940904218849040195655875786244608871293423158590001618925082809445663200559633945902306224114836136939148245435825435238700204233542115527996705283665695341419697196245380865799736333716711833100822810000411267382028918308519497554742714194177189581328491761980933276494867302501991500480677958360993282056713282902358576196541531790712906896392042128565828151506436525361963858637867413353297194331219946992777948797407548802674088203810002486181256402200199163705869365086796940955875434753645390278194850584919319160695835947805820129600435723412274278887805790350471339770788110338324588092583706910813035939163338147649321618745601197351631545251648643507781225312610800751915392326624813012189388687896518521234517981391171902428190558486678530898107887433075496000396865489640912411644167133946257218730261129657550328041544215154875541309417799686894651614812217227453366201745390544564177804690824518609577120529812521290446176282159081905414978454680332323119751416549545908456059540206353122285672306799603631083007684854741725799178292809183978255475866413795847876405913647211902601151981866507041576548923067555212611578565510770679165673658738765713071717578440954889748585039091529025728867618461647220820170752007835035198121781482674863055788793636118487931767855298204363762279279414120178317147050318321565595183113806203056313253424362391231376518082619046410422299535433555141757598602090749857700299217910089920716633136567931665079605934937667276798003000084605352493240087801726212746127333211080400427026717116282395789081612137856038372011317746787771624529991422999881544805297637874931826391704745340795277224830244054830223352442325344298143447521328144583483462063831333391506003624403158748398028897550703951252641640928145823387333680136129267029625794065857197244477008541001352540529180183080935898987387904755440930049270807420032059076644819637510924621615538185856052419830002549563900612998333936550862116016284048319668812446337685243878676870084553555037932384827260798379396695227543612923672659791820114695739726742612094494027185004065115434340202097681309093020631293166469959246817556664537523994944770623598928263342657423406109363954505910820878389589730838063701828602819409247000677731973110113012084215528194423323425491117142990375275766519425466487566586645444719970954572417924228463071434694599056325071567466839535056204254605896992856152855119046088819319048742170898118603406610976076886756190647149101385134205244254021854178551324248233734897037853596708972517191725264553770976133507240310689777529521840008816060109891292219438558017881141213515589212307744752696847453654168318975199481243933433819176573858811707598014503290313274329826473871746003707111181336839121038888189828128862695792074502707857487410768801818806473841234785309008368474326878685439429352823906951956191867283452950576182530885475859446155153277943545232972041823485634979176240158371289311016241199771191991010436691046270053797987055482367771020058141465846140469446947243511307548337786199735625268530893325601854390240473583439432012884897038773568749473487493529791320043082007854763616894816988786660080217501088601413311365989651831286762624516117251875583282555978918749901508243080988077945728996932097615651788737422413183807889633984572317815753922305749332200919006375693362326849032377242911350176438797307137951126341423507190737289437649569520130519551864133266144993341573615179639789947187018383595872319613139508951530616159826576418868785883104012971301987914755520225864409977407441499804931988433464238944418426566023637247324319905601772311305688485139516324803289643511814984456438556328017954772333164818756575191057983654703041017226038908393795064599391804957473600463620512164440054840105988072731036194892032779934349938485737279970394910762731734105469725663792356043038944081073502530805901253222422113581619868256307734177709143127328967805708726072590924065141746127902366147180507917626600521501871993707397109396652126190150666726584875037713642548686809718473437545803247932111472730340991908965564132896938061989207746306151864399729219057927782285904192797213379143802485612543004568721627975611818294388539017730508439913898101046641743717057934961032268499049106874000740207158797012462235640662094727704141829371716512584688465629844280631364944259877582483866610609301691968026119219283003116932846200013502923213036695806548432275756356242004939081486040905046796445808994833446339852298026228294725409876314364552738580021085460074494468169013240956163796184202691363051903194022262352253868967975778633878039037818325386692732872214549106946104328739376355994887806760588661867985755437728337270881374932869914071837065040613053896715208825591680282140286031012702710713075871683493905398823982189107498756919956230532462613979391547209521281529439439916303131737857248146482851949698566197102191148963766534739277731512015666379853186673454786175899768058748341380380272181458079439137058180145186832514845174932883689698117681780920218237066779880659149567076744004185735831095847506297032338430955113946706890286134049524068125421036833380763454053053047441579434273285507357419875432588700388575364519976047518283223159749337875973841438121891251355225677178706834960001095275747563467074195462148085561006845711227704188885972960587030779337221676193070635592134673494265096405039149812577072016685045493506104729180692821304155706757981785143802905360474135041345135600702887967399925648509830754423010489819822533993579043373883016054191942492017693020523316798648970040064532852803327857132193551809777736655871617271056748870737461938451336310639042930950939307108900914811507801712342362520200762594855241534329028064330692902269974950639234337151575783663781709219814592136816208864587626730842125484070272239849862852638795079908377726458791725376818344032238645412029962887354905804066218304414399795345202539811753920530147006601133546578054674836565947432434304552204919488059823287889404564683809314530975221914729153239058264499833772711014167764906073358303753350608566785498714045754878717675786258726764903170319535392934443436899263389695379961635290758175540082758552469289619068023452651727376476475696197139050028463158684674481022306179563289170114826380556895379875633413745246966440976770558097673300210051711884166509376827731117336304689268482419384587878398478923007305691135108610650969124102878840718213430867706893457769091562476513397138934460818757538257499154599517264232495528627888810592371120724402026903695678085732635730036323686373030225304176051787000009639306165171260921285020388408423019500166593231558795985083683135679876716776517118069269744943326878857311958400849304382268974049221872321421019241407780455504474361317264823414906240831326433071871412086014531010474911940089688541695091786101839960519784972679782834739228149348158746153176134615705267076697297903119674822721974334391173097354801489901956334423402824710980164261944769875702574591509385201755444400380776093750783240195785884674523285600945411355872538695403377683138010748812100133275460741734128588650184151461084799162979249628052955994710307369415496536969479892176030758218802142110440372792874172540383613955863095213173088416886954766730614527745478095850429855107336066451654907758080926013238887493058762572996542273633302247627212768546518055717088171125020601631285220005305033420631041204284835270915055686568901155979447862764005835180595804639806844136549549414546250090859008226044427641637132518482680364904723761701437466222713611314176964573204472888319050568561649347080095511961258107579223399136240951898103425576142288603075742908340405401380886620984790435762879153918694662830755339178267072673051355841875819673313660673040038061344238824670628343193103069092360966725507149562614489686584235239753063594883770233784311503607893559085901551839915383176956458765655894565451168626587479033119649983721620774763432524645636704301963546233709004762818529533907544146549248928670764819187374391037253854875593664786104616139173274818836910669073175287808283846421117434811430064321308507992414897722365593560328936706691333850929145204939558936642203288752878645702248131282070246118129215233776718444274607907728996919092629782850868035642277357018535166670189623078282706303081438991903738569170864638133468795912932726499188239137195005329907434456903707569287568805934603574026278502802590759856670512654945352008257055443804306668793238568676459112488824557986529400743832289697310205578154345924407504539357864317095400042738241657673907407911533395513540826663956533027915048521977266966186738030875277270946418516173621062472076015966240897529829230025696562779608288354776300228025108671144130292048676552383717016182053426378357202380666187554231837186748260967860165542246971289100253614843884322208864197738659892479373130097350393426486330286949761107324522050296542453526107584024368350662759791680899483961074917488902680698896197808726838350378154309105513041020174127327015263169253416205297207201589736205266117716065417491177113290077549679090575711262903646774408918047725405329770638255536505351725730057600829315000140261180384680686820805038654625357356107507490678268649019758060907523325835232614857321512717791483937629019464609629576359061937884007821604028154640716046240649553993370665795933663203144635372876215050839087034298068859316079368735937375545187914866066278274496223210294086729562706577426185781696210245878176648807817481204170177515752756153819524212173651980373389529428083053136491753224423567964462262451827440413253458323769358678934926596130714957520555519068395628307319739641879156745830785520413091318912672477171040022416182250186494374093392296035101520854798775897480588188188713654934794500575603828491700856998996823684243756192092340269946118735192824684941867347762945737234882245808592032095781328324778177585577501259951106756775843979490808126984101232836969873071824014923989790607915913138475529774862724228289879892531079065642718990162089331376984507816315437378281198714070165814958006064188260127838856157926407008645278380845508368595522333136425969744713932196836777417776696085323173508893329581362767901578426909522686363616091353182541950726025962265687547841414200830372237810005435164683180689340763722722821030742943475179502792403872460921645968332188619837536588957461762972972516772739694310197771856312830059931901117241528151214785023277769208171141026231249154989880906887024347393250621361984930961840988144362683077314444872939895123671335295219670709481601370345182247709373536854656929051819592545541141555175088890925493955380282649791607841473361773506003303151614844943480609666618603352198215121545414563330360052902825706131382167231191057942408345838679232282652157422985209771803275812370962004000737768229439165934300124420451977669562439145140137737412420509835060655188382000616715007333353582703028989493283645558386764965411267887805328573845296429103013314914000914508825556264616169143361193815250264955313503133806917175533444369803728723454044975250206783435093762405854265294424936688953621855633462441901293246238792183882189508028393414608381171816882569525077785221736282518536521981984583078874802516526084221793871174424566472970048617440421936448206631459149438262965876523441479903591717050726803423597703510412358130500312768506926946005664712048804063510633568630362886806142764917461641413712667646260034222867598490972595378873801100246389669320255672012142619358244751955662562352547161400492319276927521982226312417804405176847103445450407994130768336053027975915200483931353333958722604356433318960908413026157420828002258026515564671764473029887547373268088682883389280238187059268803400915475144731751777336643357766041348688009401405131958593514786464644020273361199290027284057273726460509768149942739178422437351826711948566439534280101383294066625476285671443086126040308175147265298437993765117489532318694967394567123579467956104618040144285384299489487865550534975673165280498741842554881145728584359584177015322045017170628040091585410053563909134035672914810621021686562562042379752396900896264428062137724012807215055061276808023226545904039847234106198816635189631131619764621593089912975122409804247199054068997173905445620777403710299810236577063246760049826860302430110830287976015763463944081017744746240632544347832345950874993642439794357226685324801356057584500057906327203492244715240487555497227739724563664090761632106593538504663337553018598217664230548757060462228877145893653999980345285569321614498629238534685884014649515438009297521765999793826099834985525665512136411105761067225307873123674788308806049637456040112004699151922658792548779648503639148241790077666105582558718424505390685341668035620781920776753846163770911890865719455471432889074057943528836790519703818968011474328400966219647365513842316496407850499687954918241048856737493033069078424531022859741485009346170558074101783383293433314890512081200009731979188938359718602751363963208147282725522073582013808116443220132694986488430971124850814700935798115035269646185890711185584419827580512389406601795391266048215040591496075919859912535014263301654607281575391442858083095490164010448052442338714640651698556261006821988072375340419001147668426151364943238274843170563712473575461532809312583839692581300269091680077937433994347620684355077659563306661791370512455110607969466017901870774863778974626943693071255140701389287640575597095149336017574971819830624380256852112939002843913963791514988130072236782969351175603252346469627643755671875923032319128543463002497360545226855309690722758217651874036464797658769658586165479919897651416769227339556360189547384049251191253809369683773140963784019698836936656432793903139117033799411278830166576292650248020438464108207010499826576149181061966701209657734699086848584010489126513924444137116161469309546847383121230358418249465290089346453707012664668356829978492717264410979807657923138705884574336531957084499310568071282519362789175390927566448097093359167237370171143445965099190562744389023721807695790735055365340192381214658205437631079785849126548821522710407844947419254297830262300606497937267608937527935472613347901353612960349679268914317066570346553245267083034640927300252126533688149105823597310535455476633687851839554801272210910955359015540632846832476092480528604203640882893426239012705389517826170021811771570701950197757533249766229480663720305225966651962077992528644245413450217950444343627497796385404960039723766422304228487946131002655523793586138155758637370242169613589391565225469973923294762278756150910144011424879176320725309594646431257364508679900136264941974685846224210632404431769070491057481944497581911940406393522350145094425133844508976441087908096556968331872285305514806964748760925138574128491114157534914652362844904773911110634579772613333002087002529358113183446357393226895845634126621848034163407310733713851162192110642592556372607309019550398451644609712845319298509220664640229948055097905625811162744137976688553868569157742867873040954328248942390471856550844643758241445341055060889824324894215547098428955444743089094607122523575996724325422041926133450791569200397745241118525212083150781360938451385453317859512903452553882666043119672459527622040907767436712445139329126260711838722795326762384542978395459484278625621982757302133947388828013858611413308446303638521379515391939599910440019022743900002824179719368215231150772631784874499218487906810887398739416117284455323645269670241791086003569533384856186075181901124902562930480084515007968258334385214145149252826631807393522562834070712341409324782251504323301080571926952645618050261284894965521353207089665738751941517454945852297525531164316554438578720772842358576562495100922159258315922431862156289887885776716985290849824683229399515076940372826483702822256534656924567680042578425694868861203476700118957871128321582236455064582022355293507832642443576993884210571129292933058726993003323053812470470685761142570539359639765073366716994457610426898005031367725365439559871605930910273208484900044597839316732265214286744795683303066537160747832965901886385802755535789556121460742234275005373653510188354776112674891939712248053956622282225674230386112441647766997206008771240325211051128754543008079208805756066326956592634268651990497633930492201458795110716891094622123621779274665443660219370041017876319054683064837232374243894152444008119933630847831281510576579338054916687088863346538723362095010499975795024919258396219286657989529230379645305660873805561541127745574470228980549904475335713566625496658404180699944409097200554247053386594366543491387407897319740719496149912619792507307539044714909223910063014186413900109439118310800695130687218573049000639472562755357167173159394845793879630641539255214258676153216054047565750225128598278044176169356416035624928609477568463110905754216322875616829146896188333015487036640794700353303070396487328222259675776697298205750148382429776014468506371244337355312655163357224686363828200459170079910750210276930150738680838499021241262377630877478859995263701723934938656526174531049172394765626698839572471396212103268279867724919460135279758273228582289045464230724511049845753909419898992014490758932599300483849442794980648494535793488810506259586803011142913040890949574574236621150293716218403957636303361607571646716308181895444481728781510456253846119485581688549388119276045620921850828602179248452300694171128810264687850471824310422689761500834897675636237475923208575231841238340745309847120091059222836393686890196365278976065350262663301733027237934119375171758686770542691222150120209711048112122934226406092532356464120653285049044076517537233060915049899509995419358406325334472940942360627832841037941581392358263065276028167580967164115375915645126956275830458987660136760826249933811916773020390712872058419711020508353446764054950707565668729764288843405956996703266259226943647147343186878452640947605632191471318319767300269015725229778178251711940883719049773309140597981303099034687734022548608294768033264816495784835435457285391792214401866027749926490006721031302325176098217953903819132028736788088934417209655858254350815177563109535980056338947137943915531874655228304559970000921846113948590713148422365781924730082466133008692083515418663712112809307739874310738480341354257369245112345797257016466746859337259869680900085564523738123903192453506012469974103022312679216664396771532792810248356678094466378250022085601898512467628451283110380305852759773925603331996267132119010164682210262518011857226709295956204636612443105962212147460447295900714622555164144170973479594441969218515455737100851386163426871586318036523557290399049904554998125683455829904969521236123714349842243810779663091404896287747730869323905511572774598294748372997403026278775930127307768312236577638638997515846197057844670653120802033757037058864656758004055108222863594929315314794200192011154961365139301118193450878551831045449961464256173480143960341837691383204866353569029383890585453418849358506454000102782699449664804243620325857390432859771233759999801854350672394030757747656919502641752874037004375792993243119536529165451694073556040078606837382118777337224971464802182189873806094736090357251737074615985800991614877577679969238893028106051570492858262394878944343463773620008205441205386373189552092155765000389840101782638566194192967423475034475008004333998140011388646747690198853550664383352677527800293134793705172572830491331281889676775538523921131779088532811333474424906955081905922691675066534794335828144128735089728549134207536459577883065639368985460532715223439310496306333746643679724894653278827630036535666149577850085988181019833823417520484262613427989776095853323331947493395086226680731646698056303842050317911280560073842531406225677874852383321785376652951817320733015617436323810534947369802474699054408319683210797100136979969314282450653015353750474055970662162778422187244890758138537070325208565071492232282962304637734322100176349402278513638527229648308409216400255570305829529066788697438787339391773543545114228338756855320886177740388134312473770530695899121872625576722276372078801981986189694961131390653440470315758600864334544641741003719764970834531434289202791104853091763348273614670884395401188910864856222366050629607085679742250705555547299806863996860014180650322484744450614171597061328357085349396656461569863493926212195861121909665269008833579382903335755493645470704347090076011454810664349726530790005196964632931709441698507313740028266866757178731848112901353416547384296579284532967718427054557824297705059726974372094911635089269289712955579985323665744824965847472956367975873578610073032916672418927090114784352134791129098162359372380865103291618761385772476434062898671140030143073714682525659250114660150335627660351673362026866484960733331398373069151913595236235391975957464129943179279489228984254665851919714552835899327715765990874871269241839976162671919510797639047722810425023740934435663985340775205662686870419012108131000212050062193978994780628599796009943083939977188243101333509026956348702954169194742021962513219207133724684457325197035545440211990093245757934753817945392438732001276739980887189536012193551630901097818674467574967925473130535860010429280563206864728323755706979875565904624292434405852092561656663330700696983265053571251492249273840079331225358531780125517737208515550519435959178023655602690233849542870732734029163971380876362574098752410038402912226108712302531301833266561715745433800520964333844075155584663465241512478180821434785268424221707947493073046184232726288490261364010605701261451697337323110515323438309660475660718595295069023864821011179148912008562920202103739967720763876548161751004901239470980204981200853425739828797859073112957772173799859050807418525191487382292452238487392079800194127726837160730167835813641976644958645300079543112545586178989681031802867456428428627746929749036491621806917701488249601693201024709628637152676294327014105570925839039582838759337176727519433608363821265346261260481239000146683043456558222607304275967951871864211772076086247004612636360697628547993862622344546876147816343643120898831987049000733704194988183549449607443071207987655691877041518177662412100739679365603375990901896485721213140144591741505641423423281241334028826415401221824241636092354144587633196370366931983454884984638970833148439460300470031969287472493854799635368462807817301614848771808407966353896509466851747327329801387919553224385504070262837923976135608913431994776556104236318952842029366117790451216785120349881908014317483886377821783056985091973883851305799840597138301180364041972095145844108303441230599753720469409680575534529407418740579385531239862986298709690045538807740916878948638193705037378542411140714055365024465253629244941208845553936585203206264381902516142600556672173069003888327916334264090420960310181881150738091093938929366770676307206010161365097330280751793934243271191778443033741370121794697562856189568703940098583887317053163721595385907676076162654533307061827727860078701180324083026473986004585593571685661192264348584690171631992453851110270874377370759797392685357582270500739232125128584822594475054238381334534828604160064860423874954785503713047923371162647364938629949136683166527860722284706060307840749767898215977305237868919792671174487644319532914902790161107288119215846637925769051771119226340838728502373715332461161207808752794036096391321147280801799863271357066233303792898958738371833693743517443030362471058423282697584363311682181876980863687393291442076723804589449613546305347359179042227899978748795461336092402408113202084909128914439159043973187000927523437078953428180884673186216511036746172181442547468040577086460461012380706313611867627250011824168377328636788051834203973716161590583117510195079967487260684001042870026128977561632480077323626540213011921604994485459393308278934868767054800430759579662670631632463877149526593459328070351082915884883377053681553525539948553789755333268139317624945649478261622469919567132298093662076918024847106558088559415809766366454329415389571717737627440372978529683305461829608814273106820891672897514257215854832427685036878896907280614869220364350678149979690126035090941949484381030317661805653783490786397728068551997341591487652042491454639821948530206306345798765025328398415088546270296034102497953512268889624189358244355414688182312293822337531710347036974813411997952827139291819573694563014700962396299954387702452568696049806381098969768683301880435587253515540404934975330383280644261074127057477877008869827941690840519017664699053025714361250494507249768612358813957188685182171129582882909217755120220330711499175521783926453018761187361019351268187761821432512184387596365302065593560806715171163171538818469234755880855533119628593811159320998444328654912233232095887781763121322090896987645970783437515452863030748634866982337547322282304422613362176877977378401375101903116015330300140573093963337671477487176574541769674126855188208204445721845984133663869981289982978812361432881516039551069463730187541785024813083417493359525462554367343460254130558263427841293897915068079948586165025961783213255982770819463741913846052657325282499228954855355542959357453126375165329300248746771694638447626569552993298382877413696090835330866937330753629758660852239255508314150180086885568937999936847861200467547852712756513123805148433176850857966553155516911009882029336019202791331650118790219693873203975694567926279460225116999971868438268695905806059937583645855701696680510001816096051310291513952884416570573912975487714929466966602060109509053088931186136497356685453831995631561452518075450433328289870177422960324383842141193904264219456996267131942995738265304202744279297495378259558669051063706621547733770899384668211560929291017414846077862822823293478647973693593319747475729833804076310904434917032680185681089835727975955673872104660214519964659223475011212841689068625525036059132269314300143175473782571550556358607909211931588532108293624979814849666929129064862873913672982372430481236644083006492996664877164579467292068992625064393519837540613845741485305366107290548598340995888357107734125829300360430949364035301400436723598602646612736688611866291614602206518824902327370570174129015906989231995313412770084490909569971672032758618414165533195922449675971304992101608746074018605942277207436055904091078496697135604181782728210826202183042195205883960227566271077203391707646951254127039545593131374565813813749553633855317598133905888688751157558004155302134657843601422440541883197587680587048983064320802870214295152727041236267412089313277807153115029424624603059591145288507480759046525098487658357069527181679872010270215489827280896453274871241491633212111928104268449764751810081120077508632644530485379311107808168711810364304234259502818647730743280797062764982738304558451276292774123845067927788139800476591540330827897680471436467709037322976006822428043002846791652692928513965616850200733260324644876510598476666567951360758105434798311936991186135570944650910741580052048266810577626366681030155344950755410828785648893257886977708437375888209422001025513077036148679689116320648761365510181659666944236919205973039013255398055563601126520561531071963684389791591728900769556711022317918468500773505279238744761217940837121064954641776397824089763517074010949487011331628423428919250776790379459392965471400231468748312664206915137353353353682941732775863156906807188479284551860390112373865975977078716843771252013367447893925016745142316505505790143079244999336959280555044711561960740909289072779299075702873131422218024616454801613274825756823021066875691641157564344290379314988746674814004619631053364996269685739289310939930242875254698997029039201576728546708278345329827509319622445364216051028903250873574982286347659797826146168227074951253638815669009904502359511879600965916302546583849768379395428975193368924693992230113633657385452696414207446448726379538975504515167032572234035255678344198256989724430475064859746666753121352702221959893152953554537942598332162091400869344771344985402566099299268598774447741241421493825183520385942545767522027938092314881130214687336284479218102152550532563079258265718146474143179227404112864945371823334362635835092985935259642599398694995648843004158542801227682666338093749505741736680645158469116502618889622015664425281711604155964691435842592441184603661402296739740067293930478350481816167356235364913485662448285347849575275482668253266066568468125811046657170933013188515581223718338597664895384996506512145719287869783286427724603339805399661476617190844009089790471622322173060346923462528815771816398873851349554545846808144768568595368451747387386570317443379043566327954409186325992747991808505543692677928016276003614188819919084589290549011173692866783261480120045315912221019085766610914678030847778731883449880220897026504562768047374194124890421377174286174868442863886808255434428634014911262878007980728811960772638612001707764177963873509220053864817307963707168720337991079229673544724266139472441327148642234055032617860739362967258671057520310262221619624773570742802577309285454924255487625999472249827691475351470752523055076763251797898419991216433905586401002507934672270305499150712031269720628142307239475280456250908256765690799811146475844494198393451985215782760988724432978871254199771315578536898807435245102783196651586740374160886629502389949740047332312154386337013616363343918306509960708258052947001272446897097826107445870382352360785262723160958690423229082465014307246878262838852761660871425992042444299805422854291768838935848000741695053468127787662209074615042658194718352134778602091336908214881744999731987527902941507590232395367181632736445220882231489884313316772774969941996326917533429707877073216679244894603559124908365153271704417398461234351675246533592414261359016760116604885770583289873456169134040415035915216950644136179720026756695450587260319247318585236121334108744152503885475175949215583590192648444126785996851338874828767989218608383236539443545103017478281702310842621351043666645970016682738199398231260075850006837160078140388491131238068764274845336823434857965103602026071479190586410917645117895657471930702935201395333189650532920949966217602914299984296838125490946426999214853844940684637539660414452599112716755336128267875372790244194795802188114265883609778444764925208582221068155105887323362789746536872585726762152205357523514848946075188518444614038319119711943949582456720879455560373274365711862065331585049869968983433729130623849756003690554608182949359071460584001991803658026936084864253006213501939203842467024888829362264191145293932017834147998590444251620862504426008163659817360785958248432715398668792430305398887252549996833090861373038084565504173747464878979072963966697420039699365284363324252178664838394979075577991350723908270325904536824042648571055392271825561455270285575411251741231727518287544660120993019662687290500422167312005599635235785771505892526175448921600929245913731264614826045824751931479988407823249482116364718583154186007644678770916657206016068394762679421585549354021037698943175490837806907736301369247539427414878819966860685449716557689826781763994837945502284243262464465401151740620922605227818709893841642020978489198907409026883609645643830864392563165624916603898170738685758711862277191812129318772565243787131779872438293313465190128665701978308933979416056857344314027559695187204241230950939042887333673736447166277901636065647793556519140129206804778499167598465658390840843432223638783694860489101308858253161275902127006487623577637489473848486083331767882019212979920043740506975276572071830344334213768773653451161858099694427653141727219224389969368740652345391924155276519326051240799757525180347289291088829211572091460984071646299998199325229576003037441681548841546215585681256723244531495194693406205258368998928262589607239743953324125352027102678134834438995318382240260513006724430845604086661592273481053881063465653478244252677884926516234138861776870625593805789066629006394830038763132105619560304003621874313291442205660308028308696233506838321955703104211850932143272483957430434596850372870497463314969462068925784501255887667512866190048208175070796181655323610424439373358236002640467554029397700639223139337353074769789815889883093431295390291397174353653851576483789405843226218445342451563732056684255680447889292371923189461309751105665080097060556594064444521373499572420093683887116885181019790737498554451815267478083922208752939033719007390944140360809608780178765281046524910901095453634851506107380943403112420571344966104573723146504032334141000383150106910677454274090042796349225944424195662976973665509220496378464356960753854466243850908620078517159171651097968244730654690159813156624485636454596285353057341203260986522358389840316243912522946751940209068930429415119146254210859310533707711941744138609128066126938847117329615300745872087125381730688449241999461818096772129818601213455260311850336221927389854457062945237784192675683519121543648884518481742925970351013139514869811797053405414307781026580259462231399947364814481560518101826506318158556393738165756790200807534307107452300948010840452549742040450509917128819475743887975500399704225038478478947793207987276805509619709810814537570776483975266092900835576049688223394283348394126480929066578167496207952767051238007199725221401293006493744231304039077462006645739052367630123653825676863109475561744650075695048993809019733946681701960956142674507588159481143870898380791096656356598099026485284924530464089982939987782902395539055488423800537039987368988941298325158072426876993374783423206676672608883591746801574125156841637099398237300212444882137729386503136368313489994716955074427497110081625028418527867640854016834252490090924223004306961055959513449008538972148696442756582297309364762648263291908133990520565631185084958202183208322046147260170495823309914669747172104825941859673840035515853631333857503186685868916491148407474824193587051328910498228903332531031162533952577506526315001465067475046233024657473061770522123751389604501687244697475563256247441329911774096885780285458355323029546931407808016984464719439293997087498857952501007927579574808339622059782762229607323489593871570132853283639786857026610548625078698556891682459920376283259864035397019316700654198339046051097140862653490846301548577824973769547872955110541773524471394645080726218071063419879932970941536208636466194014660210413768331379788564362481943579384670570336228124526166263929908047211927359508773176564717829270488564869663399961689135696357173112165389810795003347850244592595453875022124502887589061084013926333796373941788630634412888580339368207920003957887713357888897958462865942013840180700994236871607625148268710263959735835018399718724496936970924241165586591070411027334600964119737762295644222572100944857581563757781364235651739147780487767386324029991792961879325690809735781695635330841712808712708572633970169611755863739780595859703565245842243457510830667273804385420232231481179067594819761084089616174529968136973940745782024437363676860173886664694917460167718603984071245981777389008760033748683295745308983013640185608828234935653919889099495466991733067723456395488700119524039700853563373033829855898924815470496288090102962253310380288285321335538298625446145652165353966818729800728630903440457300865044395039180213690510150471304688101502736176413051810549168210231132845079723074119939791240814477807354988276707043183901690702349975813479820004959392461505638195605946140345734911543097511354235245939648787539817844642431426707567978327211477548637945005768276711181518152312903237955428589307947513104425547829524631340878043503969638890176607112133977524119098601363736290011723562063523439074771516438273780519722400555845846790263613801609847981788774722265776508535279225912646739254869521436019703079555475690339748439947557566957591009383103125696986795560427808978656959098286637376839758772438594416798567245082874693831559811172428128703198353173516847825537289952045438845848912573913516277093177939732232149051703629061967348358413678498351088256932079080701485946082982486653347007140706348796567652006928921714439920732202213029468145583897810927347884686211306936109014743817642157929651509965779833048769805024473865716475596038375347389059186195661480180313750132534990323066635516852156418625493588324264106469975626165211343457344914817935610779931585243316800188037531493345371896201231815846436914494221426433415008949720600714726587824538942007149379585735239194504662404500261416071573643703760682551530603137865038632624324471932820884968338479866965595865544171616770856840288170409964623700911891822853656645913892085608770565156261168187455838573074232591460419393250285061567142064646223849617789453259034421944999698909313556093052249057528124271249222781933916124498853808922399436636261550122359188220188889314107140001946892634778040698953038051087755994694580725575056930128070109881785940764378390596388151945486080864808742736637816737508462829939383670038000876225506595019585217999554665666795370563604201574757207309962381288032201603776453508346094268043112537543519996721894284728869533977785644387150982083372539162698941842652369514137864450698203120158002453252441362951892127108852848284191401780223392389377978136899408684498633802887309741405910649909784636869760287184274592816742680904863186503612737054389105956507842589614625391891085185675529832392298667319140497814406791202719582890071561074019372549321914814788820262405764800346202326163483384162145825422399253388116655904625647321109902356477425883188602232815666360347574646344345109994503872156977304876949775128008530769383570952083334336060136027768995240443842993442514006423133820196868091771064581644550564043176588291498143434771148676802313260500920445744265892355316944275997625383168509149174737480265300103962757331413175751062072656082725082897564245458183446506750095039112946064623247283417823252450984722133357354667004522742157694676504914391636813662080289549110660992788807841395153159318812993149568038349051651821982311121726829469567450710101152132231116477700554001952735165654826453712553825740892651285296965559756110463386557862162482555910170876376235409292813857658912065575980061903935077382095489311553273537120437395570526596808898455824543795454798050716245685397032429855741879867502871202585025649704771944985000079389031875727262534591553805989598101878733049572446470043703924534001614220809673404023420102518979310336848924352986627500765211533300867071339557300739301663419435069361963367050379684383583041188217399295039156395175165410052415605052410085535918274793026439300595904068228684135004945666842399643591898112257184010163895063137221977213577640742108421830388983011998735634895901231397529739478481825574346267350200343709106253978810367791599699143274915800767353346458200709254807816454770346044998860351389087208618095145394873563044953297837934966074547822411150778910734314233922742788783922984006957129260120087577862983215395697367869284076042823867695901139093702360362148613438491680533984300388512146405884246383676360922697144322756306224620966353996371026437932766846345006356482159167535304655210427145947763420645106312178335445064783824729043713196815950004802731417894606043830272357438095079363904214705020830514935961391838488431684921753532538701521680904862480757516634159076463178136102640006213321514430084048923621779332530609600748838681557146767321994112855209629998983215523235728512178046677770812359788769239905517600055102345724161936652917531290543183888949130987888974432681681090480973177575803081939937914067707081946199531119793754704634182488831902185137064097984372183567050060045489888958923835346474285810167508123363546626872403411042706771077471923938892851935205819926410342537444845222566432246668089064026309587348031895833479974776295395432004972082275586052320202543970248174192865581847656086830443989837779882982201989162004323298882995874840035069479825744668980155041665926389874647152190425994234659293942562278479920166660136453985244569035781515742577583866988336351144827887447152064098078915190893599330485779811877897658600080064919301075087381093383686569739509633580174854103132291259468238613313094805505560947476460526843139705653196483315283928315813270858944476644337977755291277933034350907969984868662709574996276918480517286200026645667294879869422104647706594415619199306897235548328680823516266100756881190464869335896001141926296300056467447772192621011761185206212496993649464808139384642502153458415373242554352224405789310374721843823456191230860284558870553000641274790299700314151912144487852348514620679632975662979300747399541119165538403393596495561204117045828125452973864260153253465595236203877515031350227592832462083170515488730916434273185078822129423890367905344766805201048959150004082529156358080023988570630721391631153432593250747183741537444795838008834056291612030663140511077616969763390454614887440966891735464461297460726271214986793470113037255097053360182779355702445807935020168194179680571946807341317058502924106009134065065638517299892891699860027222937043223478281774276695210088571424583253626520415690092397270432114429864024856102435719830919826314501065808733843020849379762616997454333054845108463225868881161168110504163452062815170057394977100698657267016714336993131273555503288372817867247125291266785259557419108239336172983784885954137972474659788583794653649726938213672470280383233354671697358533976135578575790133140799940392868864531953775249384025752299517911743269224993163048903612933262984768201767548842743215580551426820543689805870256890784816352579576290487074849550308273435596824587105563771325797269210221942225776689480077802356528872464653850159632738028019956605988933353678539344785189013915344239971125150519405114096308530365608271467059077853753434649913239181118797723535513646973448585641569932746715012409747415385309364966600396018276141422273008868516139048428295192400731278221990631489471012476096465687688194587944466238979777878749700743207456844794611581375163186650152524397796277230630743524496339456525386310569512703360614375137663772521002658515674747803820610051264929836870980215362979577421661198352574659356155887525348941258487507716412083186431588440272663287114262165231259315245075479263937322857809667063860322634487347252476240656402147801910057443332932118996211137647910536584113814304354611895530507856946824768233030704927129226087548505564221854583396304268390020195169741913998912887932110267401889091330995730130571968218436206263359484562033950540667019368310203966935513969156958834143871511721815604569830697676139006110762567918320583232611898359678457942181503303932854246211312206533083588980424919056098955091511508306462552860156153083709878349055581625303549475955116308288321380158252073668091962241207491944564237043141171095001222118765944512508241715888089021985534988707760638384333407826740065160394720699455144736084262981396956598928742188730984638679396358044732469781152580634700424264538609703201530290891017481962503666130015819388640557580989492519630455006167382613921776379098248835930283085926215265224384431377963583797986756273560093019293694702117702424649025556078080485717677345663127270863555062974778288966348709581723654064645160848017675016588919168766735357275698412711038183565464143597977430774064313959838613434000057725006447677932516471025869013395460849823393932274069782912634145087122827771429577370503753558120494107516261592327929446320006644474210920982159965335390350816043018644941253965616307921228324965113238817347691792770073479108100955079185745365364025908539465464039370988968684889783156787114091991199452060976199466646996759073084266648020818671813690536063998427118793630824049288809628306751123421090939898967262674082415005356706866288792847834815276998531233576498199609019735769930849361442670685333463407455061218178309494970400372199829320693259157584851996808944964208967465094044663396650464760674404627368052249102952235507727355982241789761277289836342369726774985465142046217828150982478239457836351437330323865331742163803142055938341005421594981364761124719950049390382457160429268814856081699958682986583736346644762346688965942167058676731035300061199598505016779864025726367445168889109018852543728580973734893922710229390609141967940300666473212484914156087640765955684419883599138822537841523222168083159877663778070771148609635129672269206965006217919958507312688866499476392742741314947615018536158348234293595077320854699168295675093193342390810137820064316577686389834199468603145006370306625676309271665514292502574752370414910984574326583660571861375011902201322754001491940287758553370935893389762303135817764478861326556643345860975775428922733559686875456931564301486507310739229753880479506650392215871296866080680391626304179681932210801060759818025668962190970199669664543062446245649346756961153157348168823878554177373313942686743512666020990317702771953715137267560830948554853024621048805887519713846779557570788558887361206734978188105413004838551518293061001827656286180999886091157465417417375948642371361547017038857733916620508118355849136647317430558654774751179465868276499394282577522485908171297128588794955020739122657106598777851648443438283676478596449474903088202641561592502572659925820047700205037647670778246152347194124648678437037425474938348599805987231546153697781924086624793801304090950320626044433770424322463231683251962794990284589463562918392002702480924966275406560217305594979651331576853982910162328810706602207697367445027235282516384203500972324386839605196706325573572258679896487827243592948438666971302409466590128335238982177265641250643549736226894353028130807299933725789095181404623245993739070851696832382657617423746414023131030474317319433441992753409971838663460507392866213803898867931852673748080746704157255361870186121027099719287235259437764076864675707151899529311785333168474117795198722668064380498385340304352795206757905595887074467794928852200319006219035101869297423793446559439884856994967168232847833593741650305704441098547037157353909804112235184080512550257849477584844121384954896237341949715569390728487284798215700184212946994376219986740882991320376514559865380700975580861799340554846325800832446949389974031434763155973768947473346143800550316958073687711348550539659049428166524566745366650550568954805209388928377156205096865745506125872308562703020685430319468101171977780546950791391221348587589781818047032415569334120269726106811929129278026422153210451453699813579555353733438641477736004420732818824985803864267981830554113211160599768217110022740114291683220106284908257222902802017708338989544104152513803666380313315188734915666130197897049671046672442452445209788073622844330708832961035784463202545150624398827914012990763100804799369647626135656955316295117943708290761594371284650685176005509123725725383439007031138282070020674187611961330252850717114466331717595072467596888935427960940850865983053412696500284541934309355149612908146847706732728910583451691162170183579548367595649394647793409021408312455711083642903051961065435145867537781927862095494809343493323180165908560383850150691424547886965386892431649946992106671643586546947805524336264307178192810687387120126881913037508852984246306938844253768317927648459160329980367149280279064530430867436600612560105125133977784450055431716130907916524350569187079395140409276499884848054523841490724314525363889876425129921918339834481897262388978365935714418613647258398947425307382032906656326060791904506260001337525419895997533423373433900478834800356984501920121997942563142081663026618925818956084869888971163755502367577623341414973635119570262414917026575279225749966587252401310907046794649783064304049255258970898377528814443188398171322894937214892266843456037247505287943646463114419228913166255756242101970558186998927938138559561031171751905665582999563530049160702489238985694310368107356611188550486481694371612430948976534671906014368681034390753071724456722221193866304599145027382813570486590721853611246887208169740581747475617591337328079498070713197955553440958296490385101657323372250118369446142869656088353176276336739403180433527018860259648010969613309673082414751659176137750082551863933730517589263621328529442491437763383375652775266373957078348079624176485290416747217950737208361693229026063980176569411221809534880819439961159157841657340707380252058983415219690411000529200589330121601682144564987471880326946562794403158361683881660221740066694102388099775455272783028200221748764960409174732639981485775082580850351498999012181214659429002010760715311857095255852960266928028940240596318481746438763889595844246135385830735703818694251980586578019648318122269020663833034237366037432349357874451103201341035918594646965895334346600590177085144789690696796899500301808745633222316218902399029009151747818163165001430788492600898176745506172542850029366482254238658550907526062908697843634129213274813616586325334935586211595211040030551199246549337080104679580270440111925882461963028578559347787918245247222712432126225216183917226161847076726202382672762923947390318849936392942194298965360106782106283280906531490402711272901387793571878247149359641113357758035726796091750906756716975470554896453491720894608063811282198163389846515353087294864215281612275371199908138770383214880251338218872656104137840522976508353907097134572955178479723481371928302071529215239242356234235150690327149109235447134366778198388854715404965025204274953608503074171918796327272143155078007093117267434758919253935146172708544586691678474415107744617157761071370134282729852470259553650909971082425443262033774722059389920194713567201331053786390864872778976389604876958724991244666254920065541447161805195754917925554895616728062395200006046076045060262171987872449051830592888833110938713732921107769262978677801419836045744268257313471008138641445241555176296068561625911822479512574963864732028631784220055378058221545181517362500637361630144133118872004044601279381724360189802942971898216491230894683669216192957927998526949596890736240576819452768996025006295125398578697702065831961327303633050380653402906345863879854535359351944014559833037544992650454460646087184437625561939147020674152814804281982686619042822098860102123710129350493072958081728443958210984170985747198263261333737877905968256692283958473977555559666765426805125610870315573355407382291572565860181511081549037654887105010791932297466586340750673470360022936730906193405093296580643978575903859332965869894047378935330006404356164003016988631644008189443793088757617065468589316509842386911576642582057505224846099398074619985486951932069448827547694986010500173107526436224122427342234480724901216233541647510770002412856616247322693350651491878059042718722981522600824950148592127462375334899223090347699662590795280912927533430303836550148291662131644939918019870479692154760135583025271865854773164950149987529600304498268467303494575767958373456485682597047320654804318197996064734901043200818230427906516547951845453111889117837352037392341834155755270225601467133604348726238609918659409262455408090786722586285428224186354836256444826283291061429672925446269579113690914287285505987906594382916814499725452228154428375604834787887202673446759175382515924594119523882372593586917695402763496531630821349863841902179274169256338053467231696521715592417921181436183357605758521368572050323764114432642653193104079418903110344763112239382769120551800161684547879103683792193013771065026665815154704914806076183220814110195265527997902675974243380948197740612539492336294626188311685582926300706730572405597194369543751450183295091915628295325527313541393831397088409417971807637126117168617966543680388917601211414769150449436664696291873670183796000616439504843231224886795790900240125327659590878662422814260482343188971422999698123019264174197804391613302258652016148068569735448464101231807138944253285414045496141629731331962353416817901125450314074758528052658740336421299049615309651933871046474895234474994876419412447041440750977455682498795750515447506670268675672473502619922945952676402919771076958672210626163255238442613145858116290636907224194085047651212520649714921297574353443515252983027186419432852109655569208423735059134943984365462915015087710993233628259545067154023643065394951732248171727221071786649139967796543896574859045736051930591951039295647983878093219488054870553854232742108484608217584519740683681820545004023540635457522183607946896205984669663946482725875005511293193438005853967645341769357737061849291766062378169401892917210009596469864711498786951551509317610713757356751409646578668741066591610007766872556292466927076443440380238300346469274708668612645771378797288037129117689407863681992977421354115662577417086892006526782334089895623019960787297606193992611109255507558993739047722497304441850379665666263680389783785181443065727166852987486777793364271984699485544204376959157606071257226623130848648529464161480668774935873186316202044711505478424414639315697765583827898752802335872454274319821332017485929049320923932068961935261849520524181202563904169375097493674353468404236620057675785309638537403943491568514988995256536680530688528316390584192030832225851409620105024394342187738593647394320153809627096705712819066132867737827439221772436993695261968781932211987149998810012588027787814366958540276642671835627372013803203543650166868993611602030221980346829542333598288623874281859689659491173465897011956901742252287156130126014958434432383006990783391089347314865979847812876180624646946027580346483444567947812872919771282858646007556110054117191387595094542806788082665072795192358667106482253241820306988579201288564254034933717283715601936334283352236430073661722340741850009864637881045021872591685532468650443766906830051623283387362000823309803942754647421703169861577101761756357672295619807214681738764420528323979989801509970583952535148898126716483941464972899401841910076698812444392004876491258373233043211762625905723007356423594439954161847220462861737057260436849495892080509416063734887997671822445089445671518357604257202264694332512742496868366953352412948897425573486130977841790467602756890901980472775047957073138074297550338559594853201681232706754656978654582492940070387038304223137920935933558007010427558918528590617970740211619586763605854763844731354553489141817009390020568605897910041567985310593546382625745014936864396211445165284694186909773373523460943699506562528063292424105608642965356177246235420177174082583888608280752600599482357947264806046972722855050889995354778877532397678801577019802717549236841730715893671793271212877697294809343565936838402155296494856564121043999086045811614216638746017166215942214427240118148511836379527593357118855079171083498065734506485763555726338392815653833090865148493389937620255256723780344002258840798345761772113891423240113832648119743745584417660081962506204790902900473856745628123749944760902457060142147462955911466353539433373624323918725759383468063822330380659610214536666856987808515762628152991415492507748210562703779820333552817838901666053642005142261373662832779076326202953841763262910622435224843917676027717695391571200106587705402631221352970696449475290223876101247617589261839552165440501023519274116354212984228680020787128284057035617533762391073997678582868589825697434893389226041707755711574996316003833158959979986237367412140979340583401551666074105067959479795379902434545658392232778032896567346286986957170677910877786381931849969753571735156612881342259678834971706799720658425850503673849631677366584756043397096223105900913769793606314479699677262964068596634940200912377478844687380147287165471568833965932241759713472784774647623137033963649428197985384515010863972974129414189602855167849750993054072156353734426596249952632323256480230707465303700997722606079770075094962484685080260712760051788562749509781064767495814723281353058201768613372377600370736100610503840042703903529853456429285492283769858548271987562864539294530856175305557222806852930814640193202901956637570132043917586686491433572164062131289471005391979108268813946045563524840514158840262654871492843314772312893207679486877251661600242614113416716485467294118981188334766665904607287685463441415391050390041882482851833497769732059156321208975900859086975565616071767152966264034973094970813619545498742574677055935501096219682892970842739599398990270335938271105650777370866656017313942134006858238495886662584049874298996444133895887163250631596195786474815071837603677192687921678860638904430561749953419660529847243715653138609574562754864311087126863309664660214399889804720161558503703328227760481377087933491134013324146249849086779133003714870266742843521832240846303272090188838060951384737738661070099343160178253461825175997586225880010191689109143083701571494286640871435928719646084696193231738178515973874985924244557899733773656961022368988803460179267772113358925157498174556099118044119110127546454267422022518672190781429855967751570879705544355007887197914983989506169213512728500801689496149997125801905460576319865356345781265868471325175392166893828365448032389256512077966648258870048128796131407978525535016667482147335379821842140067508811472711554773094988205830040297426356263316156616892208132246722763286111324831535779724777645900771695704642765203433141840332062627056597250283470742591523847263744194391726291976145720952981224350285367793933063367629828708155965888732205541328160911987475551316813584099122301858759527374939376295757628991993067979364624004116686499662640893306609153836575450243413141476762843267898150704655975560017873485920575669828746619821404589620092308160920233807522234751991388754596066307155982882908654372097083049888401760954655746356907986803731358402738117689509562420073687639950338342417867684808112347399230982114881116049369693500364956045090483499578565291856482636169481684414089218660000178788170209466910482726464751545150037996502139113101304646378068115756684494947259852624292628809076416319070759633545151952001762323369602533764341325782053524881159805741368753524823124859252290981457317507523414921887927206705155731137514044675266900499692999652721233131746709623491133547635150584436868327211667359225651350244833092884352191625656832328701978641790502470243924891626271580860384309242085970197279257082430154768029398737455757515458148974570420169435215619573773116444705043931780654058105616466316522628911932518564731963065121288015346638406270726855670259700695908559899854027772815593450570408761758158802422463189753006919325573396616539242943777418879389045083911389005647462701192817951410635556651637236422368465981559603055940546882725223035336256274026111843139944375064883182871624841058938392000631959987096475798929988894807851686502382381867704981523162565279013599036377121811893654982094661174700159472831980590600646546571827450146492811952938672774947481725607927596029303722848959964804673677802990402647855523363353393968167979948472159963501416924963219363100193726113176985029133248131656814646961435851587047616249809120776465530564276551639122721865853632695785929859688129791904873604155434295257730709316209306358572632061617230403476923512606441370983404414781697152947585774063698313654119063070269843820145478439351121174183360330826932051505264243036744655844794978550731957898035721791979629375044273532026223047487696519211982987000697808624728100885655691017067464833965232546739285856682039063504660279748055935293315658700413596757217728941499734053205876308906159659265488455305137510416707807108443899276198017029689962616629363761579358211774926196844180575714495722241367013779238932007074977091918971814911392621854959820727265524092518983121739124882341107395557810301697626024082389186685274225043393622639179994255937072300243950164507760358512426921494607436133806067461791049968509154993955693480970106484851411429885080415445809690771577916214591882931245471462802050648606291600273195021123702834136676015442093194197398227008348607885885587726573857203715074462110439917063435097618632877415395866687116163334090209822586170149876623618390460945776119385609362147328299332328512772835556571621058715587011996954757012231943109788625914632979070623505626074151128307316341871086039258921140825697283182218074217398168707802275075920797599089824804394572466928295137782508010347131077708172179225095674898399002481597232011846902562907303083611033435486733066424838440743612158758969827106647540423796137787705018326829173819925703265047899213000212681764919796971733815907629906486392494904928415349303484666167731599930244503002577099348317670456053548536157553189670980290391299563874836157979578050047462072248018509613739656506193060917214638575286361238091597145869915040445984739396822575245950249152750853295938256191435027271904932666449834234225857681015813605047853230876563874517587079228955801964470773558569028410218869079774996051633286524312950312833225240574340147794502244317930966098483849583923465045056000891019589218498527472589859736097478289975305032430668142392073531700080448511123534558884587035704152195296828648091642909433741447434911578966813090904922086382508480126036176649151223968508512991490745246200345826095602113575911643584246341595798688626084562510018571559578848939814965342777638911546665612805298883994748857087685002252700537067990805898651073927810552927374395301853721182112716477060003749506288917940654921534066181724076525780648949838041084431518198357691521924213594629315075476076622238817348674105163863912742710156006900132894747239695135217998001140113618632515362574160827044156687846988116094543897300327177384162182961156617540170385802678678869430953352802703190516504098947075516663154894077288398498740229764975909705356675552684676271861021566712108704922630787010803100290810808099742274995449466893383128302380201748122536459069660695120217785742251706987645965090402668089976099002235305078506517265558850627682630653691368969790046747092029158945634830648956373283006708573147075649293300168004949914272449789352862816070626111336766746024932819609833445031257830646904999635763090042725608662636779893124345109055968486576875147703976730405397186224045993388197561112714400384703681496191344542627312898354946967309934954076813577462968774452415534148725912397895229575863956306080790391867864642527608786051473935572606438025044710559781466016322599792066732696031867198252823935695160998183187434386909601694020290755080035025266011082825701609884924201072869822071586179282478055173653113730787394400992721929578487749990652026764976309012348108896633950491224763040674104548722609153402872266451997068466310258825159095552454258038127785844279838124598500968955366147196321129428197580611794917344005276824931337332228066283111879697159573576779222910569937168099333408080152761311730872765795237535861701173798412094794675024745165005463424464482989328427787520007408141043775080662422853038172327448964238526832081823921339953829975629954303759142670744364636356856478630665203664290767735021484046457468739612258443373396806498884580418861114700765273422808881983307436822860444281216045473391603842453316360079049138195676308492637356815967283412782134223819585049584431804236258990892445044210570694145700118241021286859935970291105439841995091819182939727409504491566823014325057025323381472953115048000751321109336596978616336713465021095685055797669490996712203379264919543145409643063159295621399175875745785189348149865885071198273156700605908447436570220620120603197072033287893675999985992530395296008693131559287330254366873845609820743261777720490268977359435352990501124006217529985556591007398467149439256657044250514188997863262326838612397014692562608531262201670006361828590939753907460974851519204229508028071079480270933977964430754042885662998129270846761734863542130990788838556708301412080253521027424292212968418294946771836754316696984731296674820624479646802502523084624457438235695930827396947598119934862505372116049635226029613970048683512947331595031538964358717459782124796918659907544856492043704967897119828924529894461402507132676689613508867309442123096697695113059102440841907619426442602207867325093162875718131436917774216981206167233177742338236417192396673446751366679060860090374584731772679567636556585977221092187155658894634287120061227988414965414228093593727596556104244267989704026622555052496457237518783892351840788208165183526225751694388875497445900755171636152879578231689192416995275967708458284372671196985365147037913902784677375512450481074459085618030618740722945891955457401242371618860904316869749421585806503322466763680936752629966493833772680492192957666162894838492896733787429745650658847686343621875967642852262679468395896194543825774513092460226956989025788459317545715943480012805582093810901391442398658742353247772304134044468054954821327416334352962759161553538683286948949171427170055243009901042866688428862054993824694363344134325320451665102209341784710262179750521605515402243883314045962410265025593629778602295357140684347050420075709964191028645838470135025147734629813622159015407712417172455383115609964931459138492129441536385118830409836562724987537842474893229683931312649309643653462179772769055739797732463434291327144457957172567203250710201704103283673871897631179826511901719547157352901524273791287931270572915459588188025459405458400740796248026916307057652122018619960574771301511930972333912204489452810973112739701698501058414888661285758335139731131667327693804056827148650845140057460699333472455330236724064900413328349793819125720984494724446008806407594675802124743292356734437435169822661236885298419810297009128135866566163020755971100055936779903600397831480264210282480157315305330883356082375130566001365883762448234782335143574511470289431636849524732871688355297395628023683049754116715784136043404156183462486842716937433805384585353321636971855940083563751442721879020345317384243909414050903666122984457482415671250071047788209584939841766675336763110432641681754955175728248324864609027865703930961830127658595062214091216672267054871070526265246373331746654764421893495744415581111765304331134131179069022740916395780415077393125555605909593629353869480651973504495331615865356322373433177498515062125741641871039417253033483609288862282817981633174763511476176248691132563259155005747619174824530226110444176195700719948832355673921743307924531514322268185096615324005282828879952163636517541812934467724901362309398912548854231402330623320471088664363298032661144205253548252625125671341770312604814212533617417212298161735079988019251048441346568364017266362019375150611518646390741028840036596867044173641556316699358533959666350668564368063603959322216156375536181260888896642112041091323743740115269736068327298491967789101252994418839015205269512538206418921327500610606780311990283890285385066397985125670074566373751751479719641888629075754821916740706321832152458047858155202912669854087438240987994961822684874887384847986223526524289244199564581768545888568912206475119066389164760520202470560647149690528691595715607432335692370521718359663887860179579346810330597064231662094852366696327291616557645359812012503537433089596301816394808460726627561673666511612230659597503092249749629646781143615070278614355176103578914262987442023373279686919122714188055353588999671427461551640316000525267584352560489355094629563832742192888500550848115680170965947911059314351655056087940193379509651167107161160512633959037134947029694705685602940377582471555197571653185123042977522479324447414393125500028438229724666525375292214108266199835208348049885479580106296921617395427131592565993147460067810654130344880194428583471652616891256892746080916374306027634487753053955879387137448728243074868122114395660740003114304483478110106415585895753920336744076027655485786300869221761146916653463628238071142985156444644409660435184036747215307188932561684323080431228943790756122060582768736478458639614443273641436469571748760385490015907371460841158789965161601365791216731636260256891863245854049738183038372350208352980105851993133360948391755925132469455737653097580875068311791125395904299620298778884942715938295785556038097002247672487078541398043570717700658319010362308014487297773860877621428533036623368966380776589990496992522606092315034201602057826960073246059241338604715805061758758734365670411676698434020125967543391525694378142781738079358072987542239199875302979228688374132952389973526798333141942260021977708736676433336278124815236069672166557133861233880790081382585736158571904369515083783576495893862594653105728775360574368533078528009927027948849764760056214456904162070582013930783739957313149492271385078134134222795447135324315508370862933513714309562616945849434282340882719820686694988232614787698195104934108475029527699537976938717068411337795939632778061086117366214523562221637780144292614462484818287642769638264509753588394771737189158862093941728428094769770329026127314513099156933808037830255227369216905588386897379138988324286324391666501995706095924471638034109373974823279123033566326709067617702934085823741673307860257414469200231298611369428787926566446016780131193995078315082477851732360545721128675216606142826681754773017989867044216333364776981633858536769604078748770999314075571462430087032446727198732275915014159637375283326490093704576173207738349414445415864836643729439896057866671367255598756504678863270595091517589158560383110813909029567507096749972407856808663755685898572483044831662696805221439137431244177812912490113109176712368392109376011952759253823725482484462178163173213766485702813506248281828774578772510872974325037841849377032842942549520040643244534206564815185317566925088562708577536753095309765069725415618577256175301883918289111376644305028473463034078176830077087389150637922622428586522144580734310782598199921130135792698322836843141057441964281132010763460888892927044823446431272680616872792917079679539611624302796499430121925215833659741220310203371884068632629450160115623118852714377881538206502605742679893559564495496438065600690023981515912652802592758840927199921062573138123762476200306007030824052394362737403893893737832989759921356634990838220967870903173555139921348445474081192277504283477998191442671898416680821991258393663411114664573207087893740572560091754233563105211893891205635732862144471837281236548657153479511018312001131906255481968512065911389774545411988752298022393476051426849570757353695823240694482663842619233659734658937986345680068065025543150696168421824179682986343812165174361548884642348352740170261430278072045484000966696322476743563303068556402766098614627451215468331541702645085682504397439037488513796099446749244014068886821734547879662217633546521195090369043530647608171055867311691299739921748112424798723454105988371614297875286434546828569977860670065107941914053579117062647072914759234513816786889721693749844581453062621863997946694541998850839244641283278562859751850691979948379087458945839796289416161832835211780555766557817759121538134641914134009784034601476119513821272262349767453976303749741749529319565462011313597073016057250534336382943300283149242888164859895664837335634864729992816553345490335836878677544571676515197437932212660965785414707259177511036981804902862053928630846408547454361631973057679602874822299446292579572174550397760408563386861393650314797097817750930061998405950218475474397664279394269220028707823604096184899126940750456858944929416133788774342340609435612636523717265971923044485943134154721396745857404733143909885082746372530882153247919455145760899056948374232667223904555089459610793156376148905980497460236880499940745259561281432837661354685676422116006308273515072735224115782243393788049002622615223808965764382926997117992237929294301125398832899863614815665773350536186218954265437098143734207595446774148747643647321854516787270221740707090773393104201981268928724195708351735785551709181868141471566394419462609797109840041431042859452901254177516612314060307647244495757710247173151310073072693329882471247516575325310481198302509812954210303119845639973968334761927168569699733501017535100930148094355358886130779120390436310544484413606390782458172060175290459734048228361895330061132215291662792370852484708602819175905787359392120821527289380932388309395563274958942886282477719052737912445187483741706349494186468848809985793492505137662568643710735478801424910280018111636641730300488756896542476598913394429058771416917849385548442346841834920965253957987411583409913625366813342359788917716831697995331251437721985522735161418764234800665270009309197797814985033464169316763837598695700743535824863797630615105675485734458370304298639884946335313312551610386511743282210774710160998144447834409704256447409477706459695578767903494682169401220097100051520824749683401366316635493784185857191566466339414418292346751313435492834800888183726607555050532643873221350410620610018828363419878714634496898595644676156026928217406609707215299471234503964538700918865999108345476406247963478128266649321452616261954852138005265183438652709298379341976161310614261020760653719238902669403793315794128731506793140502006750293955845835877060472510362469831867648522151379006204028442888163459033384498870723774841285916914577015359991603432622712949940738171115121078173089574871867583510579177918614971970302341602286613453298766865169459525593141088596441755635705132518173368733532720271312506211395261181645353259255650513673535983652273194304571128580462211330250242976973142840570310991764724890021951145904069874067833228771460849273764710514306594970945870393905046730537276651593348266841357163573134734082242126391790338345639465553646478906786917566565869455127821640736102870225945132614760315473302623028762017762550133797809759722193050209899969980339547154169295690445626727019399979834577535552826319995813705486779811102135737717635211691278778236500795687403847586521302804448995719748520774002629028903181234706688374641605530450340133610535861386343341250022829884482981829517766440587605550131242919386255536970002535667495503949958677533968865923665536759966475819542267839114428559590431258035688502285473511997372607551422018614196225351921589260562104208382498589347976970389395233454924406914861916290012059118938394674861826514693197299252062546245347179121755644689578253658475498303548287075249364224189905892411332993373332988775790481500598311340300094653909802128859814680391457348139812174550303695021580384532351638441071653293777486978753231779638766806411176290171985644197300740498200592482215509915198718173477747468689935198504458127617760957100163088346560847326967438699193849272574253413671489535328440456833338745348490281566949174418957034893198456105156406087664282367739863641748240802659989467498709935178684030569425587468335927540071991328225833154055779281655751852078868426403306834480138448495783873978113117923317119386002817471017852307010553621404451080583688533400021736542837914907279974653327086008381559386619868120986661761043425156382038188226794728170078885111246764693107795150905126629400918270770808776368042980282651465251591853982148992439998453984113369989237886278711608959130985752861920554240622875113699642462063903514587576549297279394958821552214804343401349237331927269412709148163664344456959358281019890449114968543692530116689301548521418718999560780479718736225489295754274986615906624947022803500947439640335856593003298723535887154389852100595961786498553896349814302691186920782845002882268922218076874911587131629489659423929038860212847714366299691973309934339745263562028289208809929561108150981039070213462588778291162065081483641031025340431489481616565913467312211113016365149446782362452457466666621206248124217979126841168132349628345916822461473703594622250372336075954432877817406365472295622239954242979230630361053384594806012051327243593162684125979153504561854012274184703337826892882951610852662059760622708678704827813767632833078165754044091463101963551300060194883215701488600784818657988568493302852226683340157382042490463845987159217789464613412836958692638345571955990825188895602119050364868011312343239926182560605287461983556504114486517756033267088147569464420908497121574752502810161031272002959725852525426246118664262293695154768920720573236378206325716513416181948079508651954470726718339852953208138498728994900735523957229136756720196745131591413376632552453271773823697045410137958999293285674116502191397657439395449804407641747512707486190349896477955930166674025382665690647511263539640721612787733269005507452572366221904957242069885415349214392442271635963084811846228314691761796065693515153959025740029946172245365813469421621617576437285801964940850976153369641144814217318480327838181134613101085877384927812558778783757873529777669250048727016965986216788969344820438509204469531638186181088326121893127444168519980361092964757251889047244875056516269644270408212762807207118436686762999780122885630141800273535058529964305777153528667223966609900413386787987399148423157870392821134427512787168384729561726297263219170259239226194823778516426025350210986169214879598177719972943539454738195733619296689178219806986597494183542871372547831780005218497628765922165159102326172690221784154846759854183575035755649800242763435017731970476440002967402213168409476686309677056152924386570951658144598288900062235002516191598031831981030707639515298951785040313322561908761789753097899713295076128605155376483291591164935977375316153479986803450312702841151846801948548377011266825779027255975767052268915507999636660926066025129733191231414718518130542051293749228710984913593114766642421200786424538843422818097815858931008717383156528234492243741428198832402429024516580132595574025482438047549875889029568142280453514669552884614224659556621300021765150244718976596199894042390314648173590631149181698593003149110048092470563763165992546633713151948518112016274557484208517102282676829040582187491936065085081814104925009018558032419412556785152380123629864650406036222512880599297147724802940114316075434401204801473923531015473306660040510122843084999517591623860032186366315112457198052956885549944832338180628948234194431506030831162784057504236691199038827276728562144593334512811462285563408756453418953529638266829360572634400825798397934882807205222774834762336290228164241770918303170097155094198298864258020225387225892234788228687997634392731669726505734028586795801003354725523873209530359711170320059302061007702098968602162196765593453597625703397781274529322948297317145262535592212575459841962105604699575038067476222647279617561150732782214450105019974281167947638638965916927775706376125090656904586585910351263440974262366280589408531399011825725730283635940378483502763523426458480210962844783818750912450490022989327630140750228585964706365673428506709660448956125883948292406068806912646323333269182073041376268504873753052762961150436840777622563097528714651466005245321321631349463302936633095971377660960445795309808318469304661128208135421112563725235638193398134225428366023652094820791223287510523371413668283833390119289670455526099896861318515848327988973516704368303138374038965233558040205080840490874185280516138892555985812416261585282852863100259987830961094815864534631684726534456352430341642190272714779261946670070508105859358881784130133432913842501281680127638358145424896340448993683895094080537397617664262477908772386370274038941039767897746472173115690623191014464593075752083520877869141572679100028475841847169052226644811941999492921511249749085722246131909616225023034052603092654910526427536045752281418227062072944738942171445510988994151248215776462628936080185695784944064334626809230544074994090417557898722377332209554246321088312588622083535480444302935684955919999104141439905737535976738092058665323075112339891893932566209262987675663351091390725529637694603932568462330512836346240326265105311823729716862762029386580994398842842365250217813554970255745152623993682101925664289073600971136383538372270026483977986711504937129195038242604513033452811402301285021375040558897396012761939574983904716093043754164938265377634562565363203092066430336161932807497602873351588456835492111154048916308824175633460278013465452393851896816910233661169991129023211608575416495536402860981844197754282287661711221161624266165449713711816818493496547895027165636408483772902902812455722331275913830824046435314393078920316389059944820009769341089623826099224091942291351739789904321343558958260412896460589705924220861997676457971596266440480919200273311534451748640203435704793890184421661736882511794384125922069939938263999119329306840157578559196152415007011713701309590790826292059372192846092098823256114359541158776243728528130795516198136888372872577263929758308637837720876334581765274985828316012444156155803959362569014797906964357443202399768128548201805069065683857820323528300139911707222424065136487258812973232828891893109608549736107946725870953767897116413123841069776539014490456316414186942880759876142676767656413040557142101313043463303566361341678413143339839621146648682987181917541367868209876180938043551875244548079830454475870499535112559020558188172409257688306054566041372609482849615339218870375513025348919314489340904305016077610603886311463191300779391811009406003333833804999244202377834266523788924402599357364192534630092599465183325167485591570409639188285874288473011666764221966493006878897507252850754374859918307696771437971339553456272053472279621443794006536884712566655618124730074873677638846223430803842621302367675971486421344902506564849471053651009708094936011291316945534411658001280408223432432673533140056470350555265849679403336740073833813816820887925511384340146584249172901415605691588327823045330790436615129454365029492314533021339427226134093671191639589991567260826967572799249567261297809016222786912237291908921647279720036856737286114685627824352605994863989373841328968404701727050876458737291881991736660193523714818585092328126826150559675323422185247519656236170877534213844643527619095176471860675157842271421489748017891836547143623010241738959503239279266199292905300590958091113372983824372445110611275142831925292864961394215632956496437360514357298611085401729702212577230058794465844977856243349476687350393776839121850472398160214253761723693636570939260588830490993352368676720101361415522202798852135926122503863368524322900785042586281912706309889805246074411437595704583136508788307464310448904100072873987848579458560313858509839399876203086661097553947898133214994690066539406294978327014824128182731477669789052818834840626190539492333173843959943427784055233007311061252834610970779540761470998231597225420435612754079941497335515636236914445689838990801030380479045945796592010315384963310397508556786049832397116315550556396231972287266749193271163615637558390388284769670522630064548671156870353328526820790866775476379920347171228958040590580885532692493531352563521200954576037577042804017369885108385598397192300318786436673835545079233396739533055829865304540343064540349825596481363071513550739476344101997794408114637576927242637811404897262276722420205635178401380050324046712021397121096097645250604517913523212133438674810515082115232662669507586134365703032995826634544382808314228790604877879016212588827803193306482251363025837290873241308178233329382625972014322861301019958764386579507994150189142197773252450565089832162897318431008778066359492914313780745202774951021969163544091053147781490035454248789869010122749583904369349353476583961335666053945488430541915385539639592858103478349083304209960119873161835949117484635714273681736547779134379365195606355047421313605808495026358556284299552366558557559360814152285725696844820799286355686414501124739740512169498825386527324116014562057338752360043183399135257513381568036156082278596559125974258755720321511633713421300693849955294521208968899246337140925325719474798875101799343203993694386655977791674907159532840634235142526513305808157829569353551572394078890553111205239135436701776068339345314721209093650329584599737764067062512085494049280170041710683671420360337827073467534503793178194973785339553552498533744541554936160011790526820318105332935593656785884206266998969397738991687849648882542624230743647309907061350455763727039841811381050785547707035222393675528175998715274688857646829111251959020590451717203988868103612781274778307679418905344067675459263988967646440280830419427427906210714905762073105732567405834068928155233557148115177064615325206545984938355291022527370482450510762792443146643692228292896982122059896940389479450288249402715538108230449027876866502854913879819089468587678674712720495055061738250549509906411472828790580076192260461565874110070838445174352876610494827907214110061180591494288758087210097490985811522981748013884925773561385102923975478360072781241334216634449784251633061435736411760170484278967087624964051998219074891631831293390466107270002796723614353049247586872525389491167084511365974935395644768950715106465878109877658875747638732380040601657675324590521582233118495527167125641785325292969174214492542193426105789324046714619789962272597243500708214891923740782958060198990503186692846978175082882317737389385104765029572892834223474796630154897064408347648945709854928659459673241335291962577674930701504868319474638507354884808204029788169628816613816072932182150016837481620171549471270893382903743534288266744188200757471676927494884225620356493551679644282597825507802939497007067860522436042877382895379514028007580401046042574895920696533988980789324715379038393109123178859859967957888301488419623302405019837729347775284156156669043250374181806401528646361450010634323727796628502975639050369238877818591466773663485462244274426852927309588919725268714404544000479504019644190432468471936641987641740322108219333411153485557806692137762255508790813357529243676946209394581081732892394035327170918190287498414739569476746713805972834954212515302277793818584695548567778386222841762481575193219482429300744983032858745128471349671003010056235822328068109975429325358114759475885411594198501635795296324227327136164548948498963337891462083675603463779603048709876532622964818783765528094997481014330092517682428139262904200800246039868650279702524929348887530758943283770824496260894825469208591470062367236838096088230147309492785892840401764044089292986515555307690887592833939581078026470896915226568264033941081477218271889711206387292034625337449750330372912688505136264724078270744851577005579015075258951860616929266932608045527207429400913712638357357116180481304364754686237772099508814753134122377773664720381151513765116574937083511940769088216671048560540351477570285455422192730928933406187779919968527418115900318603726508441988635596433880683086768729360683975301036849409315389077326591307079156694285077778901372552635486260703527863879845925244958000818628087477455985110822877468610036683790761426400974096321336504985705509960673520424103154677745378980947766448066507807350162163135579251141641353391832106560624060114181674308150595636704582722020876602468277766613216201113289928055777600602741198395698805370682913492811757239483528104838487308897659306471201986025787080634769233569356312430814105934403943078203758940474193721636443377317413716868830556622141223433598333817760968148608867847541399605739069215961426904008933918613270309616959472254179842905347174902486537212549160662530733744510406260956037925455124541012190841153994260125669386525555345902430930142132347631697551139215759496034166494196285133107790689980051528208047712612902048472131643407396307820048834932341184748554453350473437826106600636533486346759443935583737932672433891270626659823445522357739879494864515803182634416089569716698330366661321125626580874667377016737227904371624851706721637790985201656165371533722170214609567462241939003176858527220219938045160369265266813143660973162775277926030995990373306992367559444999917026160032373155399296209568350967475643924344474274309302905614586375422427383533748802767519677238042467455419610822489739294100339645141886514916342863865656901378542801176979505850121850292161599434130449341561444228336144434957033954813097875693318043822436840898109757932766811875245097349948931026130136099012456219962800362612923930022174946176921842900630168090284354603844232171599208798645708530451873943051579017560005222593285179874185656162915864829910489517086002121606813749356735115140796673577974886897832094158938199065910178753323292985784387707574941428663589935795467552051763746600710158403157373711166264319321724413700904271362592720549383227589142532275125281251371703644129516692179510103400108316601401820500415333870833783389766462093993411433255401571891709415504990539841612004845103306655687313632804551661619210098657414909380091562006866311610630601453035521769637619751557669567395855211094350443812279475412325168682326623231052856261221907485925430039428988465736747261770058938578974234473275866614179908342568171366609040092676663087704532545807378107948001324160315692308548900188048965378771131541609380651383248537124038696262142251706927123591709624160342039517551623324831427884430754811409983660661641810298923758467517161066501039084965992519718350420309350648552530274362596799610523050891098245770797087325514501540384330030588160141678166234125371116985127636694843112428798083231327207350625057995405483950047604412653671518621470895593339378472345370543923660073105888775587602022148047395303776285136461160533951305976087540768226076406550213202724583238633666355183526048599815503156565922865572844150005690761704838946023541195800740991840000060991557032377605579688291944318386701772588469580396471498952663859232478146764971771149938396437886392739876535614264809971661584448421602377845731754608038698305903651810843758610375680014118363574660870560715141167107951734915080651798092629061723981530387990245262320407583400083808678402572036203291283402293805839095073062888611817993093120884062598662439415084502348284550982476237911213044770976957047706273575592582867391119035640730295614335867943268711182353549392779604913890034355983500005126732489201215537211086421897277703648142626797328571242464648112052158716038455208449354574358703423268846468315385752336532366115177416712954041631850887693877510160239990350143915797942533180721083818684775049515446894324616292414492306928945507707540120361162145208336462014539978511155918302975956275485659741443875804115579781448223945614294615609221412696715896506024143242858745262716187373144572106353336766438115103562706876787790814552587804403086042651525571517476988696765805956600002122299194328661504881738500246248903625923914037643108149641453395817123632305916422510360164225893038080532324492456232516540359584113390271684518711989983531085897060132472299312047025122157944915946381198900700160923556332653596596705789705218138521874939408856296197549149445092576198059133241109991701124432931428679384522718141114911823310403971082022302835958344184884269236229483108302431437711220975593811929219954275429778942022643452422518887332099327232197385363447733889991460198819160011770891927384499561404866618855919416669894646427456446944409650341151028347048385135588147656174698456824715923391338819365268671368657933409415040865279150316520717112068699773141987100086845846217790079073059805224551544525022024514415925890117748966060218781777365659216774246114413391982510202812614714291362845826473417300286858389867602056812758895547487278807974465247633643791236659574326352503629502531138200993301211293576564069793532742975684369127881957027198503786301827736465013331709276723678161103501681760304055723439075437995640102543971357424454574146539500448807243709426929458988998485215708663663525363573058141653867847819509593945701538404515062446036484202512554354954299364982143028833136947934856254648544539521854370397434258181223959191123952507650858219656114650402850208739560399751390937054526041940566869977687749638566639954089405577274024993614066975941905514694684539275214774266755634147311633737911309660723050488642577359262306410662082984070784407301496559076128109539740312914969099510744027295267916577919996912043504609973336161883976437938878836629506550831651343797591090512868500474569218527886058494908709361400489620458349340254397253222682710757669410462494831798912045076247622264774219116883527496644281660078131860519116256373988392947375769005782380367829377451036917517072848787978079530390106718913956786610263886457757767633615319525494478708877501217213724443647423555006565639232613029744445771700031399105787920740133595910243821459225095694801594921017229434656230469775129612526960467615685256159360609303972007273361435954886565320669832471138382852939427330156677826500122691081035167534772084670021473624719689538241940417598047946206376040267789128029332760750175582586754697936735316169018628494259986521554114404367826217227265735451482210659657255983635248748740384460848063998701448465249175336330527339348284205480224683600689272687107146801850578996784309383805360643677392988967636662939084771757654964492176037811426969298745364874366300416718507052784747878297481125121726262944465152211029415660351690657004421366276381159054634823266722197566998842266815918500665242901560174973552422107827680779222757558088498118507917526858263252958477480208622096471018775069972238732789339045595297669756563916682417965510784226716331415096691215302866694774383027102471600470164495857348692329341331185730500623436045791910806050861985152509102424424117005411957997250246938744211756692609468891883430943073559388109903300071930187109440218012187786408497087987017124824278847150207776792571522094802334290921253652207270890516771920334679990039569704008966284133611527530061853004390677471773436394359173171088810983778328702970938203836293935504561548181963848967547929770468170400515233330420834338503242600957752075689924595264117794428599320014504799213104442220793683057699382656942076710614080090601688845058419768076357535350795044243152023293111242745180042825279535721293639134066946456405070498792208786164771938954291287657003486824465759646717973673358768861714189814719902855868215217342940004891530174509520842279638552807199749412267550706387349379261394991722020078791025713095338580731680199378241019328392377769103248134658714578666226284626845332134036608016789412250896225876278581928871677535727003109376816271341025052612488734861419776464323595645390675967416072523205347670106499960346662953532540941041840864080274143361638357450433592738681829036036010775632200738208270696182960939685796952753798317539493368957885620661940189515449245480563334170353919498927026807358080220248572575631411553758659567808909309432306395504682807850788445613507359231497225757708697820930609483990165202103915896459494054768810352530752457299718369831792568815893951314370697579778331534770334414731836796851290975131792906123275861207163508002330323127492796003420790834250120068765627532360487513224828080734523626676369455058657289640558749251634369890168502445088791869806032078535481922571183165390135662241148581943882918024912922491418648253339332327433559771707250145959139525175701196378454393857243657213485196951186666233255606422771771200178877529343457287826285645013833277308195197183447614523492945841851548199746876391820349736291456839859835856272155054966543529891484662878831132715982717533292754692246347347310666673638360453995434555354726902121329498214339849350226235059815911417564335654949188245333172388878904403498430984222110369339075526606950876980142704642737900699244289787324623353469962899613736433742851894899681669929447540956474704914238222692652799642698765608603526236461398759605382951336742110504841092689160671295256898485985953996340207037723830926398208167322896516949290096825257749350081999124599445496547446601395532515493091423051733819569058312382402718448311105528094056272157796974583396449069120455453837650433821564394491490214821980378667576196827477753085346508606430665286146353665951157677245150415595853519881455776193228490844152042076911929408865779581913527749098979847308583812612603905882564020868668632619876878237730513724655513245319272452642283548642588383489174528254733792069491543880510086070283546118278527611504118704312511085018079819353710029464050620252604948687254296082948890868681778282805655477743168536369268078828300478789590109976894809787994987606591344453510570140049453869133395977828525089180856300525832327173149293448240324650589272717360602388426505223375708986241353273594464720575182050914668886319915555010492825371988478860315835427463867376933658941698526453615739694820568283549813668164353338533062719502913016323250401246214708848266137644638898486796392427689601864070005005307646149545938718246640413519235157117332595335981466713352808189941011503535013753264901850676896933107944626228459998430402268944973668818169426027863553965388996715625191946234433177102933221622602877475405036058724163484749481346839464235239331038927438944591443993981996249234516502507327309391286971165256972514275615204823050434929002841881079345595863741162067320218574919141530580148174847605980711243829685680262511229408654458396539496667715849624902061098603987675442673211575148121803061757033141973413598148752908052301386498272936246488635543721392779107272645706535295981205159336914007329268785510882239417357348647072380275649420108607206980566908568832141676665458520584957644337316431863446865516832508463568417429555839984082237976590288467156017893590130553503119469004503324301117377713618279772193974615426645936371530001934171424310788782091437077954831405542548296442649670766250278278088762492434978726488776084461181355357101200231122825722862107509422007728740743744005766776098127109562943138677889897784752832017341327416064109280940429781742891989483841377937845549046554086956420531639451977359696107549901629242439000167198458542874382265289040083640381463252500820060395554043735660582831151269227781537865812358318022932494859722953984527129952086520941174728402176037937536774155538081411310282685623405348098010548701988617167721989211092379338412771654120834001859961202022524831603680547231817008677856059245708011044892099284793440428201852099977964385939476643677664619666193653401753868511865344590681089907220691120674367289715122205398450012188749657478838312032640963023031451210586687122975333958455329923955987741353819453755047478987274223819067351840641990180033617033134289218184546207181802898454209787317472196628159242463480537560954816926434994498766605595306729916447397146657182610509084888172362079258327873906518411813052575712303013989588694656069501967794527761281846701459109380632406430241307164549482006438528361529466446307211498450700523852619068235670082940181132982751702278752390286087333455951979401335900455751363667136295933575513607859145294141969241024704644200716950728462115385696159572385834133339882573064473269837934932647863389398014804102554846685022322959741031021458034493467464829486555500505938585895174197536583808429390273485883447233404420286286080692313625998130218381009267470404915697155508679259644207832622520426108116820207731093732452808468345445456032289564446411283054344333215345678953551110551390549053903962827245198314233393565859226321399768778831426256241419654060754046246203459162571360129945493729374924680879633051041562102977753897349167465456185536992527303663498717133730265713929199906157731370163976598116816155251985169541606484483342252272259857124382749452371826501878963933675937981444740780198457044207963914011594721237354151084484617960024522943638828211145536788801800199818911987302241880685951846208486455486798172029812820085913820921381178353603175918251037456527553065052030416481944386938114672649201149765937265918217293737545425380328542031099283804231923634644773745958780318933583953266779902591581595608936866004086319308932177776778291886581881368961351567098116563504832415239609769345652425943004462494947532424859518605409054269926445444676747919359773985149384942528625618794078970173309079628874880899870921301931288282253719007354962403171326976772938820723976885734013294102907535448667701909744785675867184887871498683899829155348614278834459867342157874034757957865278030736860859104505786811794681313663156979162477422015345276630240220592249151436302634070073747292121347197995256387223750430401162807258683833552610465578200189838774746840382550363186476759540423902382519141758642046451228638998125577535036835316168623845697106079354747210199833522991560390799275274021636911319933576606877022269648205482437578905236784569345403868151038261252100070555524293608970879052692562521080245473893568588775664148482922157338006598673474753002821843459870460651551609360149933142690798934443387178460086313244208205251796603342767726254032297548321192776259027590004710623224715066110485234281045696262451388211300706543324265520760965848196854919990584384474476196606820741843930274743471895371638954153541493602080164565132294781718876802335172829013196504340622524459766989731602876857987861634031839931495395533270350990853107530548248811955949633956522920491709601802237653892730348320407222346248425103412949853857179862787426317472092718189106231097196037288838001849671669050178429080658496337799001928832544755786280916271212016357748558304063594106458733512920241812843047276725525931226370954948519695603039468395126347418221303771194692793526505126563117297673069338871110075106572642701898966015699369189948831305634738877422621240728968197532780678612738393986545673706725692485374845212697414976600820645260830636868059976916308305491532366220608608521407607480868431242014726211043242670943201348194542067438660051814384415861849485777187266410233809893567706358110032869927913344219223729236425861263311006595447220794638348880904322686181585731399439086522620656784628148036243768217401883217109672777224556484997840547880286000396782534718280646648006342815733967358380532236027497387281839836043762376126864123593903011278585812509739531861292967297074944238325833345967110781017089401737752158091186179014703360770243820500505366813071296007540266417400496516911832011708210065408907284056392716853882137667788275060515622359497479497407055814744961030200508367060065415623970502256920260815629855131227767478541830406399177681037795765683684018652557729153487120754319572362251016271793546733693605037238740260277451935945428162845890544080625147713765930366725017955263404632264732531130544191583920615708067310667207265515253875437020381207106964656579103221923978320414648688275995318114387835958109573959253103794597245508920344255233382525762302677500519899031082186182070983005420100915294418193385694169913503790071961239638428310735053469412747767792394200854051124626014039610262234320410303697547049735194478887734941195641875250737205245589103402274087116443112916276534307501521241099000277860226451729788847503023488066460123724634386752241996663724491153120640805411676719208343594199157755986188936479288765478748342909166281508053798181920582863665783167043938941841741290355412130184833837509696798310907386114565035746700894046691110381387010320184372997552993422948288513574937491143556405022475283087237237485996140470358176109791229152330969216981704692938695511252352674619561365207140068811329082767976315091414402934489826425913705971581298978191570015309670175054695142347108159688057882522911181749128314507559928613989184761012590012344381472987454681801613159608192944063122806907321375355494813693481048356395137035055104528702635447320298207403412705164893758005064427820015411644249776465160987542154152300455347273668198182504579459949179279646872812435341495520815464988582724387860271360166461552157202667511762219793989148664751200270305137426805714405275452190947153225068495157817930148964296932176766438338379187426711290034026355195308508568224987961824243065685011853760784207996265278841436463951900808555918600902848741754587908139946148984617394198724735986480522987984411110694895966911449661130900733136675454550255184113282041086233037305922590241209144725683044768235352752198249464285184053575338292693424042512786839374150188453111543906422341395141987319661151262598658036058134181513355082947920358179013565801397246840230789457947584369593844508167839265042671395491532997157112661152964328767530542149011969824203483059239609142093185954491657796772923943389948957508647686764375059958229544404501138039034452079141882213511315990563826892813085046757952953198224723548559891074961261964892405852886711211952127763363997047985132180915967640200327866848074143073095278007095045394584423173309760193188203235465958158691590297028744927188102683855283916794780638861509902107952494061776663853495512939166037243006000735441105090788217283525674042170574645034855523738444549801038053986143036707518930437716366464329138951103153581802747311610205003735605606176827560486105693345461354867700364487876367338317417649289797406575672164395116040463157679265529424314274133214517584312189533087800864065652206113635787631983047743273724858071956675956511810843986212788664931671917280051954431250554016545740752059055706350051006601367291798893524407411289275589854799267139185978429260396276342006416041799702510075695845956506623754425062828349662447708635495569458422673890147019297534853882456342620096981878934258557715726039553355117824687781785033956682969371346237943619202469401206735266927129897099649963487040060726573587008334534371666191622642444559869877889273562739589345938311511357119711455004386997180825889211851083914563370006145877182675397855820775003227136748103829192270953736264666602407027227180172841033108311400518990720678725285540927403380855628220244753145290345125717798915731410764520361342253235470675030467140436079779432645947160698572043284024527102143752073248323450421413880865637132301425139531286993136276434640797424743925989337633060144211917151065397012672070078442442525960698249510520020096288084301850001782396340545818920568545077608081463670812308542750819179308635697052499660397607011589127717089777301613111957541336634590289013248652269464622850270720208730390176049202775474969036173732700431051629282632469973945334359051677084828522918648799617283605606405470700322353901745832427786044650088798375649056625921356749998888625448287561440259305827192983066965167394015419875058502536705187203318148803626295701500692920170291944395739878035978802632540944315891209120781338530610965346324382203407511957377611058120789393759926013546596797466353585161130340563338981223773791760721955232383119295057760073374166842123246728766024231546028342461314295368430809181207873412459904928017416284476842959605545626293954888969665635074927756870931949201413943801122575908643204355788987785489343228851241674749124780756748201845383530917214614293376520968346827685081953609169928994935455281529871329191884552994163914822780911278357923139715972918155778703992275666825844169983625118640688840047241473705219523058690821521178102139072211160178130689292740428498895605112837606218385976123832519611843736872829650883262828002304846677268569001274952060104171419830922165122305109594104683077477358714775483783332866211001546806192917299355911009800338498545462868636536805097682346721551257084362466696068023315878043393643999752138222721371844299849012508352049082353922136704889717871421345977907914189044705086242762183188412635808617135768609533894235046504097603323162628716887111336383157168364310861565236286841332961612668516423393230928071129218024214749278985800480943362827940715020518758327086017308270219485167715647180706185720558536583760094513386861724135987034183670419543145059180888581883554383063746134347573133903931369591886526868688423149995967752299316323110637741224153063119179617220439380326342925224303590884700204039864731849843016738467659041831382914168657708892467027172812479961335820843339748183757642885006503143293345379190197740290427735858086142830027770064410340518947521620973349109586953131102489987443007535800133187627932304924874844017111175333306128864813272406577567609614317837989094925140613495081441989101094094040361470472389833758797700608328982740254451251159568189785808715779911258138452392719014927100532938964497802726583414319511043376064616571013666243385460210487085148672710445189582044566910414144559505273714877893786440405650144566996565021413386099480638385624639594278701763235785648676290764216309349415333824479131128814938578925958126210312926284117423268291873100115775326950984993127101087089351753124812091068840055064839720218465958681237973124037181120377623746000449560421801280493384070323669458783584259873522208014445792249799105768363166133420980371098429352716076338027494533263378021801102572733062637364168191042721509366835836238289927739887059809464735205448485879643287287688230832598171691095783123679694661944876985381705149864273187229878044881785089722202296360608731571937845605069614559030644336542299978322947365679529999341334335537334358691561540337790471267742059077063289187194882889228211643437918996572639878130198421914517145489105956340280422898584426733485128237593489937564085168792449488415047614843187517130614371259173399959127001285134410231940008265993270069367120301854033295224224949984390769163913152442989511944969051690723214276920767418650058484462331942941618759247309399889552867194808261195257846309973151257382248568140291380433728770510088050422756750731266662667903845493721381184478628497819075203688307127704762366642898873483607825402547923012392650864348770086845343494054385611222620433151270954596773682108903804469364776432479240182267696025897497942891549980574773366046416381105975655136729743788187748050374792981642208533191982727070239125291834886175145734202235452884220232642451170046845463459635490498850985846384471001934089838444940805456490431008495046759489947713707497372784450580213944550364794116548855301319643962899999001673662498281615749509845872197625311940483739251919737717692283229433524418478823528219048586626063686883020852533937052704483163946111602350612625996343447026794881447336123861873634805098566860209322397104963841457473126517252665468359858792080234482864192248002299563078877848256581364438495408480453022676751550849902672262669928402299726964428315728721244227181237116840301001370472955290208602139568638400505429409887890368718181604984855514130154338518662067964789084331986442268903677870451599350590833051195496788536149577185985423892135254757499888600374826982562637078537811721342836155869396882054681870230094668416057452463399005294026045346059371013918354817570475516819850501392128002560881213985755809739956587376286809194137628535833552944703555022802826382180092133500970864595391168607196288115573758710945949532399899857433542373049733598850182127942752621444528159990955020932949946163389240365680639309144280439061311927902112079329535284905633163132004951032605027143582080068095834048009887215640994685841660634097502286231980654536361600617341618882378007818055655984255323793211976253065092733144209734839940775402931022476567460656611006478467785016002559367634131095900971157111513935824374944118791904457620077806375183134199001584581212447640754977186461651661767009614364374892464209294095557869278771607187851904162429237047933454507510117377484897437315301396612077372662552421873805323452535284075784629429287175020681169200771269867575648507216969580730477798747341434455505089756564300288788531804892581584906556563978491518416555269837554131992946218751587184233255127533592638872136149665802240501211537483335951725655153582546560711660144352318693742570254446002295442939684564610638852259544381259152971790452470879316695328775029038852794834026725834571099647586335469521169427615769638017362361079003943955848987616485053276946214397568158591408267252898796198708702238700986716698007229123421772380850974374836890234426129502016494321247631017701327971886454221485753170295555522386730841948372778555150531756416711253683723122605867234761533040353809037648281648510833336231667602073531988806210185077353927906103641763384254109534287712013851192350960446510608578346354105178895667753942659322184969048157541102630069093523993250299079602717295710102694173568862901534298985952797706810202534763602571894739979431919031144433752042589394228142541050180621773967387887620320733363800566512411522653244125568507260065530760722047265616265010977802826959100492950369474619199937663531741199151043850503447141583729747224359591480129035203234681808877637425354548593533154811714939242447269008834347166699608527273722762504884516651936963665721803451473613975295476930584629226925898856174994307743544994877342530252601097689475148056946263237690841812885998284368024531247545990892814576242742676972423937193177632928673485009999944586140952625440240243154637056898102091015393961971189520309732690072627794984967878526291183209201372022012751748738312062407523142628263389395718346719690384141873020543172300079120268677243657634396581175715515861971453719736223337735399312703806717797286206292673389879618712914385603282427527165914072534808340001848795193437604089650546553470641762425776204811824591168490797234249655489989667109710055869773030935880726690737158726088834805411526761470537657753387624387765252762252770944930102869214606806758545135530851728251211073512296974873964589147419271902904018548791015004392423895845598720185483935989682061693160374618758845421167236688491420885971934859440825086761184253946076477332624342533413192819029285323248249383750485413108166271442820024668781367025210750571896614653934344820086654534805715582594381366853594812243870033983705218870848666536465009457711613730540624120717171378716901348066384364234473305788076429600028620043552415433821683184323192448448685724115773454053540065729143852420367315792445581311879996000339777847063834043239756308437400692074453861445272531706919307112626570198537545520465706379643557747937238122592514291585525278060766771446767985232936106539639388280683153551347688844379487442889231429809943972777741167804531700197329267375200055734250341141999704944088045619262100047087868766205470701115579341539919144403723625793617913425098642855514349998963141733278192035687584684037958622876535122089695633502853132442984601386551235110356668029366701685432423347482092690786083650405970101691326229834941966747906013020246325532285615842183094107944175356314309984346334256142562975271772639660316749692682214442624122928025182437870461138636284440555502742487476164105200530107936781377716915040989439447733163571929113510759231716746093892357699589517604851998278133674418274180046560759128138755879997091295530697286964617955312175855848034177091401644568963676255849157583336660322253206945251156228559528452134018176722639651648729023695237527883230878586729905177375643877778770517640595303834210582976312015106514562198970672294010406215611531156788390960970472828421183558909230379525186247989013685908706640837574233539581602685227455648381339542453747195802940508375412260710693721556936671781589299409659020331022455758146915886319792615388591265821832573658686941462137471547493249636438131388543367491547435130097648468671451451810561707291277729165107808373970843904203392071526450908927396809514856793992565562808091838575643626003283031166348288819857938546821765925825354002176449022466064862869953935940060243066272142036942268946594344346737061296800892760607326109577599369819409747425185602174730796264124073406985081034325949181545858409161607650426961392426722758270572840392797691677044172615090622465361903060162150503847868143811422356779811267667191885530915815717683683492767239430501935219971917252859588263499746411395709556172874159773591347674435138571623360711870850431664927568725932467309576678785274187073477322314974888923862761741413043449748808113048236448770823590388643009123495226568561255796498692801634683945608877339085733543833791474707375625734540082992670657761495512446391511255291053503183639113184377076496024939339370813293664486294970514861648176031131496098785277596510085968551236839909193049106730974116707562154898108779047695729043473889260611374965723406159568595808996876336605220718398494795382347890446165744873845035291909596816983820024965525564286634962168273088223744452414988155946234734566168164395119871752367068050686670877532773734066163099197027548728262808414438337559448067251894478060949798618918697088943679646378858648915757064902124563914054833674620337935138919986079716108740305280655014352162554604908012615656618170772568119219579474762714848848230630255344735142755087519190609413247943738379626019517305003414475498675761289221218067696304741004317448582795684083696133209914917578807405543137534703278616137996084495750028328132486516886966421464951177052428198146029543318098424176183154114565854348788871090413503939568125874524140468757566869183305453239835911859920394943528938460563613198357430218214730675524128020754030532122528176332945333932696014857679678126167647863937176436793254290000032747204697510377268094936497232736637140715475044234899071557111622441200121328466307770409566314410447783710387587217180902141786590503795286040622770235112151673379135058976485611969857208097692495001467380599754918286101849432730805371403421326661178553017305904521478339751272758421739352476215000374286676036726996840863147795153251078332694518108757962405124765435405795400207948699129624676218701085054281389957819938516821786963612883946468909477108793693256124024852605906901274472234261251256897903608785959376508717176567026083526159382731299132721773151524691925784223274298531882043879370358677098922982422241907919137172408571710287269971803367490302005645476460435436783766018065049895441308013895119131349985173002457235493908217371230027729129319213934420110501496417931613458298685554778048776797797904847622639176353719672994734766606560444796665594213503543124489634496299565710797428269605795088703479732268554737215530924977267650915217985656197784393056225199339306043787229826686410211849124367387513765660791835616547562865269966786152689811521653628936244272006546359714233836066903462135527077329302317747173398944451247927877403785963253370624379020336789769421429634622758820840199703063690323266911069670800547742593736807138885787079567122792905615486322374106928230857162218129790472092721273118559148205570095365109873605176594455396577266777774478769964206230447300530717071482464890430246662107477214090355238468431499680159298042305166478789987943918649884533215915166190406044670613618483949304680110059822524492792451919568404169564660925934891053991741551126052057681702257532496304101469227126726946217757455760413919386184152815599899099970589534027879891519813801838421648904710683521386670567278860534242020654761914859318213820229765887709413295799633458209380824596719258184704194397748970181066870269410792807701929159769510817216979687983150902938368878241005743767973290167158400063690408296616124184594267037978839278146115825449092707743918939360923547700272989893810221012613866954787151127277035745620950740242023285225460521044704222306776865276059550556339455540178850466740290195987321443452132818478803034192394852608277423386239933157624942518315428559162131821724340726543066038838395499403738256942467150598998847392646715749480870320003483111573161701282828578153019084786438623802679860685231315767179094995550586112925742691495288615012409829241372940912323230716935729606903416992872504709070024661688982411391612333369896179499773516402404051736898124746502245485145479473119231309436102243647419110722782263332032668893372029612531583049059105939284793348974937370198156129380226117632728678613872323365894955445097992525924988367765236453974139067721967265492955108562714443279512087763048275648897792736862219988407255885407777330351302109487517512996153791171536701516659194522666731252768150224958105663224505761397769733054178111335924465315086294861192559423894323137209466835633704914409424187084177425490050236532748877374853134011641550396413835027353513554153758879072663745874333233978638587675979948543519686552508369747481830682203376860390986125512303067987610235682611266933356099948199161656154686149623059367944014925362710341188003346463207980332681686063949920434024770353583652296697284346019890800712037507557273155746502829475547767003666227005316206928220782308292791822875991645529393871747803222010535087833433351713089120294604466562513242436056393763848103823719296467009216065502791514514881095903062071556440077600977182905974089878822721127964022594562349309090332920142643937881846464060516746315914470079443831271333691739541895784662734288610317810021882928914727541674803277117759947380628538175785884840261423243055738003431942526182325366936537254140153868599001280367947657191480720648079963199420640238310367964897023354920696489419248215480470889403889835986387259530524827039690189986446146230734731017072801430242655204770280441752639299384319686592576135672561305106755502181351462411123017035839379575388757538881288886516255518082513540409781419482614344336165111235279919723889868451421042637251078325494493536845958490434263168699408615539152756231631123222692852321146066165418265135981058599936526869709197005428696578375313764449648774065759209875896335945045535313217937011613944983256374315770783452827756097903711545267140781196906072323776785415590608406401381719320516983115835046874646463526142785387817245696481918892983312626394231925942142369396605178282356963365658519144316575291914006107627168432470721794878906057062458167082025038723690742086828194341824432016557330646812817259443585781089106267728359077989833977569856057617596164552901713926506363318532123847533965350828541143996683396519772202624550573166660842099133231942624649077384819918264392152896395136847103850435417286050009319857590048764446649370281703803847837296703405017864722693685824931555972223827169873245455256206390015574324678814647992872063175470247303176888254572106112784445531708420077121389980167225056078620344901097514293979748162330524610952383015580197308668936071765031676753909018380545688166475136905887018622774224396193376724343189134511516196133514522124534577092906252399487667869354977398907414136329152018538939022836531837194487742929804914623644001640969132520676948952613671442145279497062377819257969499323526022984689715428015940654774686701352674532714766784553646102330014531850802352209277175996006168701714105255899301640706138622361219516344914332354466682715334547830710499676109456257294857184723497292632579562713678472723238725640604527594819412120125276782269890501310129844579275115663046508002207395614634394176138818166084227412689949069677633247118879809474321239738191723930838856909577702020481139294236577624016629034126846409027804847656895913878147118171629140786945781571638626606377182280397917204021674784913171792576501499571877368915280702161234628979537050910389581264165276728605927785219888732147410057150255124962078504662174384384436846085208690029157501484956086305193873204041381834159172948419840502132744110517797175869168793155698566968132128587875796128977541220794847186335905533930361722243967773131629600574497866647886835759662705364974002545495949861026476850556968553250783076498352823551531341948072631727087070139601474957645901683073090564363914690288760369977954202424577031095850946139555020943228358976322134518274780886147628032822309308404728397035305736037061849621951177209781947519602764607995010232684104397200321133579820891495329766606809140511019515813736545566707534442891412251509659653017159419452749699476251247161395198283483269535406500811464277100533413020531240809567861874974709086579050043319643005231198637303285690952686348969143025519706995279322715467729200152681752866982488081475485939741074494400503511701324566093175606926393408523728704784328382832363073356371541539016142952349053549459732655136863006451798466359066973167517632824186726713084049591398294217255579855510495490374764805360586554268808503287192817606017191172206546468589216642250857344720287596328725912985512880594855123396740573404682588083666238938817148637048225086581852118226600566662412986454991499878855254478531570510663744214119392951499706721247549535529252159509559037435932177297065936678650574521300050354010462797011267862867672202960774356150458889301821110002389257952705390582530500312350515089637863820731050214348154314287763365477811759152943249207489574694558282537546347278242517009550423466527934680084132354291919915714465599111217550904190976667284671759798848665038931840287640550770385769868737427749101275142019297286779042544036290450735315425788075721395694948911365706460199295885423244742821298466649956289784331975593130127777334450578797527510381685332434114531486090947488682874872203822836169597425716928588673096842472976458039381385498300575669680458807082950369326242456008026490645232143318302368786239652335440459772431520310405906882134315724482035768551364595274949563356745627462828974262359651211249176917016293049430632973881698619839324208858070504563448792194895156818269938539807563913039410184715381221874487356749331136611623777437035228830275259550452921290171999415451323927479471985541398829621235767825609420465027685238172614415927317828903933681043426618266239811456593279431886987530469978583385008480391446998701228294026760944935899617656953203546044393259530624038917227531459680448979671264460645563628418051657701972283976182882273065840881775258233095383554283149209072240301331564687879137686427077635366966510338374008698113475150826873856261512118178733341586137505827452263559653438705990846623450490831479462769372983299370792117709426271204881633824440990168922128516089746120493166935820061423446958188160418183355625527743235608131812508503626135225524355611101405620274855774689897171858928665928643149144012018558205398245344917886614987263469666715656124112371422716865057435248052467566258157407018384829721983512143608887278938612638240758610341269948973203661947969766502619865601319185691345016365308906327747309374495124396843819450738051803886650895082707503545236186049158043293477366459824592531038900969441966445843983088467634465383714375641037634201393575399021524595830480054345294782415644183422943594543091617825755428009358683035294062325934791812948843955254783547227695546128994555811564830919648240271787479504741857721701496546946935314930714029464653074667331793277964101576612527129895625728242510013267088738951863836858271781327722684950356440577809459422885349880181213670742557670042176697466492811259930503681865336656494138302598174394387090528472439966710898316767577647448714096281723320419078840760672903837725074485419766139734022706123160604430194261905610027619095948444668402859237651972282019205070271753717443123588732023230595049282206940375365976647612700354451970898997142905145567210685417642045884657800069392442211432642688924999875094791139824919420942740841970999002230915688232612173612167781117194473976158517643134211120697458005277500844725593785891701820054843914685957631324083562496471038563284386869092007153219865718140576377447342482811691023545612592274383850167321432189098078136184076519305178910388149924380572839961574144609842578494743333430272260887007839987660476684751857788926031513557272673435689887084891568975926386256542791258983487871954945283569369537080388690585437072724290504916655009176376314723539911104595171467546035478674555859705676791764024635003140768603782379048044261723554883958691488027065889605772853972626219814653098473558310867748212248759374836477098714628609186546681950936483550527455724201504056218377981368271918959295984052227594758284753722747213740047564681765097514777507571294307355201498636587486531755416927640151821914255303221175025924778590933994063271053104214296336613843410992439012644260826948025681147236662796541400683166016475749567653945597892351228936599558459375514977359744803141327088812769257939395876221117697140414406912265526826196725105047564563748447180693975276641339895122219198691960822567160045381159824590271833163103939783746546635876226598982862735776817991725914970179970239202778446677365306540488672319465689174368975428462962572170687400384891367050140276480559885736774535041725569364168215807131363160973573105723135904923574829105706096142735138044748768645549448155016388995671941250068552340302903752467422293755453059845610961436344828951596673483894270569529599779005592021805756885394095635459092580220925384371096954417008082385490622242931521753433334731510090492474792595103050932460422097594534827101167952413688031092716033214056027355842825742845816155518216791513343039698042126011426157086759406559140264790373261556262013903799874049102434956115851018829642073385447320164363634755200587623502089795880784370008486250623195202971460129750047539566649064866337246685442073228316500123516982557460880432214714718581281211002833310865973072384044854774557777558412872278850829024309697434255914659772558180292824952761994497660812637499551066501651979438348760725929068993645361472572622293127268480013672561828253023284927388810528542820389271890688406486657555017889754630627813311032689733325391797120922670952277205727901789690394461781723370396749916923054201998774264182920392639262105817610788341882139638981174721786152770153754700000922266231946755233960690460431940772442611963032556421977445563831515243582391645117509518016360330341780060923665914380712287174545701251991100310419091886617875512184708410470456570717439985944386761662755726510180129218840085199173551689836964793560218902543046337080779953996604307204322185262784467397817328714138000089247243702122507715997667032461870421377031914589922526784256709489784526651149995007303817994181275456610406751241458113836327020709964501617413342764597514294526734462860734194031217625572728945454086113490972890342420409918694589541053417538602934059176196290765561982035329452795094311530147241771674712002207207625532495651456429115965025810528662953249158421340810627708728059923556137831073274243118131529720128716242065978715631220376496484052416682562466616279635230732256153874192155119982239360318631660718432443600682993228235506976552756437674026976167170877306148835329339009170136734472654231000895800058887987235916599264925153240383423480668510354849925596363303201364381635337886589095993767479110644250822015508404907716053455567377627576319786476761886761089245708836194275394197028941637387940632360853233052072040156516969466284182537670507171556234178476252291399073945156869850371381753640239038516838407164040830952481028898058532322443197950354485375104794847487725329843110406221651869925246054385612847451260852269213007593518926463486737172089242630513834941998481623076400178529726703730661684331733227156532302982318840136285915112592921294110006744152108217113384532474075118221254223865686163751932399069981788457589177193798705873250663773479713440597855126879962402600498054846076931969637109276569025537290904340828494307184531304553318038870214945074248297275277286058272919561433312437300081336631790243277466088241977597214023393963754680280942989566211460337541072360143143950503178826208275181333445311236328424628007043467577232776762556785862475205347419158183319296956267219292961900543985166390220183017447474746038231065643690965607899921430934750047144973861471175870188780695018286648001798672784034460228371180164328958955383599965763031874464740560304352007368769542840303075979034792786223845656848230193373300797488887555217078840141535421473650938841947501043895547123748672547772481850036258931516486505211823427326647406261629577078868374304117798869368531519143447212125269264220109771111948048228418943639320009702356912026935080626014700963640950575592805337384003543842074714964858834721939531162683902169575676412369584649932932416659283887334864842279440843065861190261107590756291127082412855343409136962045326821092021925080755022746277631501245729292247884107738019170800411559103344669467204932347628059236485281912491653324083657699879028105006549273697606291686066225278143769690262634298633301552678073058720845598010617495890784418319620487588741178080861352852095272239275363807644280046773349501906005207068453087471474166116724346324483431029848978239462786993770569039774603817399632463415050731582293377500971523371134852011505372824391430949225619601372971749525493583485629190160209985634711375097248742599617806756092888616698212637332230955415414286907298624167744139441208478486395640145767574345678957159137464067691691363436067443427414399498991976138089389539757617260693007787918318071853538987442146838534090503606673214007998734598868024285686796856426079132941089559653689964234165447672751021351537577911256078536743798160778995949663497703731150498139571202692335064387767754332384668102687879072186038868780714263095075027567649328681584500386260389649396237033320891821799419503719719954313599870269819018692239642749951072678260376451837031440490367814629901624045564361962853499566809087183831405030357457646705485304623364584586914998351846188365574045063779030747769795898839111807112829111122492373769087316509531538229012082547402135066251984000205995796777574715434674233322959105396579509258907623728015523731255455900061550535838463422156498016923687460831396899370285405040104675594964098009756824466236210544138609571144295077693410519608362309335761120600837536412130352895466584373312312769699059359557728060237468493298425986251837650967928972779318147922502180508660389043507066988367928151731944481384698789450413821602038895756454675962804056607936434897490109498911595403281425407226861620443832316122863355595263749326962610657407820734709356276124311613425150849354396100144519764760418865493379463083383864234656201356123959710210911023545724967499763506339409758968053812549690611139652526335375468004911378418600978304399518612083943593831865595245195843060134316713945474557704542914463546649765751455604686811763312330014474354045988990024974925965786233342285757142829236139776358438107172453395070585953562695859921385909468187071357584419204860218102523081886970554806588124354108244336597504403940780218780517254986493062259483061871582385945371226112461079921563376110609623057096609629151695929193367278108372283870894633132860529206153106584018561885849814428086612052054505780366675539356046819669063776420610575539033477675446166928992171090426112417662844619407759419505623878517260868565983566516906376046185502180250857451881166663774964065843235489448944958615577369537303275714245621600222220443027757576267645140887367287891406531931914366825717543483432897789178034717103855236592604863837639745569672383070903752630051884268693673021781695475843368191470436142971000850485385866560466298074596428632017306208315055283150584607134062139097519952141270810758536554142780970312907554615535878840213875734854299714726502056498683964480158782955720729362786898027965071569377906989460650695142156793911978975857739167591628164823730136700365797634839556219342082853842663400273243567873143848258459264067046919172064106414595934021631944684590660067699005869501313488277884763280017489041056338169726884764937392273891763559204106349900115870961029640701700505753040119043443889119178228210526659819877397627524612651690443007369153722578917483901670685511735029177741087845819246003100642715731029020211073742699260070552566397388147814759910972260274078533582408015121332910599611238551645590242438057822658882281402361666509816496303890366850801707770678710107112555093641568278774513579227795347132749694441456820320263806846363477858944018591079549993539515467689786365819147334994893417332346500951396895672779937118060361766179027046130327302507522186278437717970320570082289629982797976026101298683263268043017741059367416178184626299851698854742915223276864056646402492474847837346513739178823114663249706382738019479706138561554651528912081757423848232340899707044090325181471145368597532671356093331951681523646176032864532765922909900291291114159698128992306926170609644590790363631361230560252590568527234015035370270242714035821928187946438952512488173255485111625575412456413315303325417025876848828513407772240883891821084685389661569661278059029154273825509501913947409186723452037802671873713929027034981771890632073019076907581078463418213576485472512773505000322926229180300130684968186871633466364592504482617258708020410618655035547197023166911057452333174384525975665382736290538484056995588949163596578471292133086945587775562290790655126365769256117073649575827997877589808954246397224983504340167694564981541344765288931426010356290685143341875300170129501802260123315378027622620228626764712229200693395537257287978165023401136871457189140723867789186981269859396907485725391836319070472171476510668139890033264028113220355758978577346434688148145850366133228363297839704401953795048009381071823565771810598218858654113155849655006075652763338032037707540554837757546475228423961733826273178440224847155940875296957451977017861634331253112124787469136094786880789417853018526658310192519591461141046442624149449705838252599355350158921733407856341850422253698520851261026242826450081547810863671336537564765201116061292680832956949812428118359418496502870970609266419396856136228302442125301159606358341886317064995089026278396303912911116349003289328627090718341796708531174976713204508289807230672509365393780675663612861239125560034615610011761360007618999009558620599583440800133124828167676888393697425627179989344118242617470076342188712681185678625852232424748303202793332156221353343752951400551483628310616122515785191047963927994003142037045056891718955128794944093906173096709352240929737667671054484697381329783576039540759936701809283613140596872413421748986156076615656879761778967086300532486780791042862077029861496920038141026544845102779391701962112679321929042923163906963998962468380372708284424904384570606276603456517154958482672861908081725330890928721694606429520651890383242210487287587264790568555313366553011779420946866334317703019831915914695664822401266812535338903889076583157427321218515850398953636250007046801577534899968766381104601449923455478908308100724105924898085036861271705525416401899531357546413759465729760598287688917709148723098917689596112335399068827100483020056523033836126765996426455623758911129244907975584622894514385709668086922645863001690815892953132556263985195378720122173199152498746012071043029365060948557631949380329363415268270311125642285634948066061871737162111833993360233851603427577213312923599427668790587541623987379236729333772730357820132658974360216146070659927125168427712553607706740846451280025028682947744700238687808761339085515565041031205167518763362173682261439726271328495190222028818424504468548231235371259021700402814822503138815011561998950663440501109792122943792330111496412296043449970608980916776543977509544919736467663551670980847239854607657081466832625375146748343686924226201554326309153520761736276162407952734583449475545050175958786649693170626261436113339914455338996604500747147639368581123491604737515154861877268260471114792798519323910935815122370034506763799345494187706606965911582245797701314274157517478673094126935645492873163108955064702044825216118045589466107652767138834935854378026339333444337784371649097281420898207092891802104579964888737050295875449024599199013480317780140031243669667030384545997609481255652149507531210763550747921111245266713723242043950696216938693440629459676740690943953917431968740078766543933834389013402288065385207583163741085812155361973417400197623925162005532329464635568856464365715164553722500998687414422674835532572401703988132550969925106921440876803066564006522974705814176964051955320696403366723901739476332790200292405812382816289271015889398615661408903520209150665287257206645010104987983056002374733371419546513949653698686021739042038609183213354004444436809403616675154303256762666002610696555408297689865816282403426623280912653149730127960789244477479010479328293726624005063136724772686944326275006565109505197537882829762148973605241718649436218887659635727272342995161163266491115802745831984175710134211510124751404679361519936939934206256704882480406104229271483722839832069538838655679810960673499133580321880978511875957577262846338940932159579990600385562682954874622966953987927393281014087806032541403985965918791989271764345595816964339136009804424756029596947278856455190380373752711914343954424841376360988552719820490801712312145237694804720875203441139360325313911356283139960492773888868817209406659985519370671469885986615118944743234568666452157924254290335300647139183513525396218130746610896691481758480887310668817665260481455683891518839003853414094180863317156268843299822701285437060616111935020382876164629008761691551690453782509336501728652998658974039445808234140219906451454651209580587761742335239571861295079266614649846743447868223579244771744500186052053712902043011619790022707285304510256130883612175591427587178634895698858054634754592205409201837642544102270856124220303963340676127115739222383811502265342618123156785440735223847181160379734961053912947828839561997011434744164283941872163702430930979974963196427834089271972302375948561115901984954365006831201508236671346979587881671102399378905800684216970036078663007963242370197967828500229463159402131456639795023430821951873631803589252947347509644081769694805715930495566601238829739234568765278195810375321348330458953682809601281675593991464533028830336125458242664085605689115866850671846923792486071941701229700574419050945637659243881537891986294376740131730489563340333850955245562096227006576092283586785987162276593699174750879340040130521925044537108681940562439908086736791632499594029425540353613547921696774737246230937837038034985231273348632846992385990849245630186011161412245337792681703186569404809669513259967553238443034047454044921817100947489684898039112765361293555449662050158939029124973042604563028338315224408107196289134619636217738380954266986833751357660397511585373213977381319380076087636804717663639472875288071047226243861333474448367131350897600909433578849739653405853965057748654394045455033001015407910954415895464814064865129585328533508197122662675219062780275319197835972441810915607412206195525677316008620107470149330612797473767699024184348585369467254275703423362797257910625483104644659891971208741469328113340833190374019412091715215551815746325118197262239973851115603399666903436404955071396920823439988862931298685777733419265496015656064914319338740567595737788228018392770040596828047064071793088293892540788843670862636111914445372650952087569819856142898850555178590820153285795041721469666626020743343539443673342358714672628138382096548484134343456800272839072067336985793995891651342014452200828172340789603911081919362331611426606435124701090802917662668797547391780736831571344675843484735427681253875852743323135587361905620989293907452936191874102319292886409264269853648416227793749421408948432900503973656239900808117606288147675959532691521588235459664011998156892160114248830841646632705210470600804221784623417561839219549220365063696227996408041779258585614066943636470050433434044847235390775434621748182966774093309345403988128385285085609569535446468275483865969564043530546267319736687601989646441819925501096858811864894417003641282599662952144851852585739492246490334593164084411103944191958357749284025882280668705418406515191921351016652629190104858476577954822040857677381263194196889801380298940491169109475132020202057670864255708894946258344911748911316369043037448171583527460218059963489076647995176354275311066939473873982833020421661699058039408752902987288873246233358961738114909717360702277363787687756411202062199787380305683638884011696071804749727110693590406476823969798216651981871243729315384985986217978330641127696475354919214624589259666769925378827434386858793840803733360332609563570210746960056870397420184042423943216051202472517130587070896711344166754167640863355547520225863890014407504104933079936627915147055749788616035534167692130062192721385493451458625495811883155783897274291534576627505379385744657564572022361831675968150791374692332354210003575467409759980532516678754624071549853690763019697933400926454645457192445394446931452846845114691788814313265470169367175841365767801617567642976383805008842697109620039523464588184971906911194376405009204534444879576890254326041417948134634815171412924570369205674997289031824502615889688041349189130231884994135718559418638208323834436712706403315205904762712391229740457908384277265390203953349918760786814091211659823223609181306380475908553505204477706761514753951438257982426057873803055622338830757873511397177212551747887261462836838446313317192665243003079881744708619084444666856106534256045866777786721435113879167693162174847042374898952092457913314727002174851231790542703322329792499435410664619926225098203302169355495423755304878382877838120376496697512879282727546331823286156371696723592862275135795331900849324510432789320554366014904158506942104054191025083890296585329043787296645915769033902817798379025401874731781734937687959804011976610032311593747622929011049734318656411930579589143890812370846111957071860739844777283299493015552719291107079255653574466528802735648813214222653023928960362046187641530009355556715789391518650554297110346112872881311962884937369803872406039527864864594052318795227616151149475893437290840391861632294365514442480855628132484775849463508245543688673936786220682028676959890589569941498230114195476843194505987605610716150922758254639215102721073788242767668338210677511064271270491442283046227902409938260858075960318444139723438987038526036489812898756413032144222481947400910998976803809719446390378835796605854616562045597864291169935345390717199222034475003831206753334379750592577159547169660802874349734548267491641863429714281449009206714964875455898987935146320854326332062913789863167127573745907855731644771606857634847832293237862479302751442763471838789257969145435521842059012377136209821797157968169116492271855767398707253164713201744349342891117025681119812931021799253471900432948435962741036865970476767789845322755998429251290564850143876454178769957748324648828848908357853095142700180595072169899025864218503674203779634352413919429810202138732847516865398535551455248418917613066991897631922429733182009205917692940554914456441782074937129045617561239559088815115190974073957930040097591444546854817598391432261985275942049399024004834609266736535282095982194157859875808039022267554323676648646338870034776357180580947275048061701555080252513023720918825430554682435052396718075009040671003427215600734562731824510174602413667615346928042537043085638813942239797252610791026457565494003033802070997150382147970180974160070008523998234418432603862290017411977317891231733588428674348053219902475633210098052391392059957039127528679546612343240602796132117065538986850130858336019229162468903900151740794195814464908095297813166040658099364099718099513661269186776301510619237347727158292942961898975823195450543985741176362701450021515653609580647535569807959223361870480785356416212327695313929721270741875811265015161456549968911098981540379005667039625547988072045922838177436440338794772255181389320678297396930623671651016032843258328872787712498807030836782344376958260177987879718764043796589554507919038830705623920714991872291183188012993307645713006733380547236956935749597070032409594998445362904954181133161524900635810609223532787184457517897941434533316390870363793604914034230381264882380717639638672309410412383984534618264907824932579145588429165530948472610771257868608608728446494395191252225185047525925899287449931323923843744839581381138657746733461325853702259112593477266027853082771622800667101944283336851043986969243297201634236891349919954217031661482079998834344926844175051455069087927412907871955223340789130333716590038643693145014577755382188374508737685772213323902808188635196728708417812209082172222283555936683507729504663067565956082853014150180639804300525361820334177753016165430873205089009955592430204691450146248780591149343133743944430051373493617436678467369625948630645780050552356463134893350591470548423170877702804682677268520132689207202620779093771497837104568439086503542577362112227179816447096412236588334221585117013975011513455821088628758204234282687705762114537657913094871030841920374488547118661780694323135220721859778111369752231375796363626532420424618096765463803656897761684259148918291169867858469545852347346728187050896824692255033757263530649356716091607638248782711746302331470678860457248209791375495535208716128213040821836686543556515315771539545657945566591243937072591238901590609152250157235725718487081519556934395276869302641705342297459107803273974003069162740453793814568061059850220360205191107642450134961856284391198083741458122203191698476576649945222133584763454034654731419747770763462311105528679391388663810457322513444786966334452321512068441019233072117363624599549025904125145355241916789935900604203106434277075054411555884050385088825957774299147161610031334263003675618348046301906961418601817151530792549106342005798075240593198511361095638184718387793901777677688969986969846142726632492927538124836521534244131953601701766893682476432338332373876711061552332977673604723107051277162592154788782103196577692985805848999872999630468145834174889861610216189605982662036250198873739746812672197159931095760234505391398726422270726554019728694601273280914503078077712425598751107098891512286634985355894501802421388771869224217416900925738381444404855601653700786646554495934522128829200048536897229852823815693534379978326492676637952980399828838158475974131784472576899063960239960012783625524327823593455139215994172489775708762780425881238676610904713247286324807633466355374080481917727979361638076657088383158560995924530308452411561495788218467255569852337583864006014893886209838703305752785134720294699628161712605291123296993551587883298926288118523180782905596438879802740525295087233345684093973994212949468741409634009318343449313190349329480612193664389915931320588862193279256130503782906763882924471935630076067091516392162062593359120971694304151626428783196689400525628274447745208669227970693575363724359758314264467033532183446444952065302963041797020525299115782088507350958088296132946644098724051269635607222229765936733963543573578035697780143491184944626775789753594259198950021540548281830035823972303641872158282305674927591420944807957225729212007812900947034842124076167078412069912988278893018415632145676758120943642289350186914565953507084202718546213513506956273980741915832926457112089025305290394776886128042424403590683202910943830925299897129932415174078819916219429381238678867793713062516073702241462358873040988236309505335269058218754606418102402221702657829943287713920027018653793839943477007152736138549574638894967062607626222028492988556821590888277906692346597846523534190019560658392822888019479062959622276471363765553236568988973353219927174396689912246147481906649614296493003221221180443344902371484751655062871546459958691085240551910939930827571489318539308581837052285543399031730455211411407821116985404078380920396632186632060145009881142099806611335097459796714710968918973872896036785711928263479899025883250597748890715497406552968991428072076416431220545757229976613870398866765641673538441209078996682862132420373283561056561268641575304392308571269915745736381825744624330503205639514340068972671960413118196169612281170679958000732046378169780812318218378202452903381971306214940061876322659316152311174378628582145047919605729159272967800671332898853550930021710593671700122759813410324986351125270106553738550077122677496372587328110659145477690371625153406760844541579256786890598698574796651253497913462636784128828109013808202841545301108582333043363874441462344416010658026813529697880320853701238479195576282586426570818734679020629798292896752972318400152668781104770347717368810014127755882702897709274241750149374511238872135242744752103359022586591632701743192494817237065495550829221265989104647016617688373648342684335847957277887764354917126253639729909593854832984920792095522646570361160403727619016318407669629299293119739392384371398348697088684822347986423135152504108770622297845105174701561833884545298893584188756560670157518871628068580133751269567078960349683047626304524296246590542106148967844532520019176787331011023490680412491780128278949614152225814122098381069987462330138040694660773187757984624875078022481541792918271888028282269865686452484548214710632707103353691771074525922087338785067714493133028526596653779729825894066809803166472968988538238041892711725490728772692252865758551896563358048875424399953362850496453980279223966136386862630708870449266235195760613369488191148229592069456418674670241415908137283212685808438900897232337419004554293729852208932707195709899267900670893488041616922909967867122448789955090030991363851912782075821727324173363764443971841030544644750300924390425544824580818255571788002722531957193789467553717456490558317126232472470307974106652783145087636710745844954066016496349849047600490349155248850839136519963311733723473703134442222051531930063631843391628449907592538139903899243131372870366888919687025766482892144151941822568959650382457407928417802787555409085052919708477444014900971317984087676072579179919136286932927293987174523023339259003903182795505652827778529672687512636346219614554199208438028441129486552453795782566755671693239251153962229772403751769987033655453885896501537616380085003126311785314470982379153157015899729068103781712185463609138222182264603511671508259821920092771442329265010771888270649862174084273706255175974277640012348666185165048015240801357073079352584294967007839333761749216877930133362680986238809825732540490593585389732201828075758782948821653533227317297948723664434786489646260792529596708247038332322843710655685922786711832699779575257208160555879979263755392906593712896063186458321879372212609865453611718477190251834690503217776262882122212207157606027385287784987232775818102603727725978307295310352232882279882633759124857508387710231185449823980384852476864227853416958966684514285387381722410075222552162654810880356896388865174243886376356861098515618937522462702301776958627269160013495072861115337747560901096454867120339883937543740763267269920539947264430813253004311717478471478146637252203065849243230031835892355391955757188506572531611050349571261812863775494893352716547338942046631158009654497549700451438810503878348462742058712897279920960932019837802531086734135722157354615192233506732584636473004960175733005304622642882512494141447637921362808383086449954391834368947601875946894653624945103837885373533512714383649187418994581770396715897347505034291783448841550486349201821678885534108928749966831239864038417421861504456946097155678856808330209061344556300223997277140255622748729306121032504962254721575877764851849008268810405978526251809335523881693817784991138220715442389798296663208487119144400460056422051895379690052827539186064117154747714581301026599919082159209243131916554023861748229349982128393021806029092115915588688392163834698288902042666044822017002499186228439946802579688173481784177005057847763758778505396084930032929594900173323407819544940139668078781380090508651244835885695190114630842084574423599035552125717455881013327336765425716073881969634381685625981226398913197578445546184674408972886198887420956300934477473729378015246271138856379113783061870745660619341562983012659609868013666362340602801921943141677521814315091053381081426137212268124876416029214389345374507332872538299278630202862662113684555889894527959212791993173145526510189569720642559951131915922238105527474740195481509354184547113828035321674935138583417811725122059998524537975844305431952508794092535887599890791062534739734302875223016531545079437723974311148910587471317235778259885505439507481584990385244177613728612451680257015123557206339852763719951996507576415486300929986936739067245663911617894225661011538516150939211645618193167978066474212060218249830524088875990305675026567177676224368665211306395516155785180640109074974294200059546637153899957741972795086673513456388171471114388701955903510330755911275801201492410237768987325455216538929268154467968898518311555284766562420993682511308233090031430842513581586063859341858107485491724283497088872615922132017124049609777037978325508649704324760121983762718072242868720767922189405387954497977171340898943498236966195910586769522075566270260485719846498196960042469301960561817967865027917177667924729995938637011714070711139418178785630245541893433001813855442321848427724426243705657991885364576005359708089924033872944019723201919974314018946331958066888582077744185371797735320075636354654597205457653165283390465479853096779622695397045781594127597668041978041980630022276373176167800117024953483844222179260609992678757619994716594493634143516524361717301486639358742511079426949305799814596177598393500208177965747256633583979297427877601066866558598993916953857654612143446002006389023339521805560372870976490838655506192461260431074348737153173490270830762138577373745350955779052348456278016894216705395330389267554647104570491638639400034271219563050178955513618637942516842630095291526903609305755525067834988768690668596547245680788924940303732058180031136683504196604809318178299363177209297733220815880563887010891738836322579551480835445022816077037170664669252800527725058372690437463595325201649529844177457513846310952317088452029257341032110898622108464396249750489912707203039510473774309142069625885264788379108674201044822791268404751651666445820849527301667291593620927625488027631009847128805375884553149884178032453474933664879834336266986182082172658366515677943029650957064024703455221898665384983109411946146867473500392655313059449895213443911693382125109772667872698915681277687022007952964301024404302752187944235559378093773058929797369384103003746876300791890290840900135205975876276398656728579210196197580800298214188334010587154441244677500961672870556037516003730496217625392489425672805909248513682511531421689486602617150499110373649690553885005035437734004573333213746609063109743055574677751286146092209650906986125986799544987165931506017273418925247505933785089324816205485152112051736476188769801912858623624072267985615030080332423018602596646948584660122780429084701274793832234372488077711450981105920026739204929460946474999063704785517593788651082664424197815571633666689650225469141828144681097613759237003188306782262450439786943186934400907690452573745757219742300829303163187480578004642589821380020667438592640099959236711987221461315832634784471673399284465874486216942605160120933454522522633971783235798069251395151138516340946634022449278389318997101275559205825729411890497363169473423010726968929414407106657992442143651833361862470442263412380364620183325596421362622577138615280166836108616557202646413281875747876074992770226376007889305353635764450445465653404761088637298778125236541450562736673227587629403082027067717097131160893818787077409357929815383162156640636113090326175466672172941047643357039980078525504771441507032051913549883713864618623406741815174464794834264612293604649899246396253908853057753240287312873571333886951425452528609875116195697601602103942778702189326681586669507367548963523049171695871686261856226373649216214751757013602149239587490395677505301367675036278835396028851569724691949817569236958407335836386755414921180756118891120062807736544527218574905853525290279107626701929820340163796455739073220821059211591065252315753188719430300392503612127464265266984083058266857257478580821130801154956136408104581325498117820229262444533561811327250086558163111204994414661184071838462689827299994126192363750038412540254425954517984584074416131379400926917157467602930695835329493017158963140219280431774079335333244636963753939362855458766257792761638509954866485355575511994427930928222219152073537237049441353720063722609002105626338572162694747573968947049519643045532098886873334600155882780491039188031236583490931603098022890390513254512682904433252990339639962279201658653691326195056695891110290973795168496126102308654498222447815375587278835900734312529001713470540933328026783488269326976136365391284416343721440651861799325992891776751029595015113925115694226847986018136807197358420660015353931145211485430058901137454447236327180171452737962437622959234961259270656084972534412286658908842630689055124519506876345501289085923510734536289472069159251078026596212010532140643339347159602709651838685642002959392832417640833492858168467834586121785505549752617640680651562558899947795204160634504564246242879665671253871130391309861678843874539323435218634540511227833840001751711118974472811629240478541800741566380886176239586284373069951248556969689259657641151080264626418574053101747263194245389704607775794311702557201893013886757907023653589632756924635281695374806180175296183864862739417001863774361064447735907503625375959585325507282167642233399712237304648391538969250410416988796450855195334095411873596962647301110505065251363551097495764615838451181294832587850847127037766244513013543883674759550822845413549800900028145557028484670406848691500171633724087416902444584616134058723592320178899829914886802611523246643007926940508599646381067119444257772403243650111159623115211682533358900499514697016978801106501152367090590500317003715404346920790637488832524811540642905175625445603567104191607574360054464675666522723289495437600836458283865403777858709001192697050983931717553940806003137347645392000547346799136621648273919595351812206504686715565988435345366413553836137336219472438942454197342819123420575071660380856826550474208022626765775267980581090389412853708656497909054874385906988040224388463194636099139648987824272979373167744591403318609142709825191420906238298803966419197695736635404634635796978041743516591719796467235954030854673484209879684298433048797234392765825744580104444744087376880836659197436422319740790587352528805249332336989082641012765481495759501565497360099754341028874981739984155055482480397157923794262218276633437334437344511920933141621169443022244607308368178234455584526900356332483932948584695430922121482241015436522669665324746440294913308349687672442247731823359613484718388396731811591522689467726812166280256792749962837208205490266400710112057318503043849317429038158763266107579910484342901405937679358334788246732410501034615387248938763609117619410560008248477724997395958834427351770886111807691112747564300696922761881538263772767138800047066059761252267510677453119844242900678215557478652217452292011677630040539185057790109271164845338984048316203310989778494857079217933753127157584439877851008851189697347386402913187209349780777800134164705364524357966454015005234582448584959102742465815395515004817554081839510491778390291313742533502944570049599016368645403676966266872525301969379646426049293432129519520847861413580011334565519351579657404241002506082908771108048378907743865952569987239041704955071112714909430939167059811882060030474289647799369016558419795904639679395255054283198487761693699614607835004533777498324359360577355972663815261438290939759527537052506737670032041853040598978961064514229531484064301178943156681203815931116003705877222350612632341545184587726962730619242258628833908495002094440737656712034002996084311058567532948339531315158403331078799212240114189514735631474725002792056229608889066240902915153089643674284194541240481079106782853244492558106822765619941558688663818612256538074736648422677625076106472245005694648134239173744794689796124710502058625022150238136642543899504444968250103280346487956170704582108959485876331791505435084841646094273156159155760917000961564607667896789194920405863689070006744688504191901702157351152866702307167500868735264293643685899891897641088437820904482393158221606139271710100427870693300811611137621980122517634242899990039779408521365736800515206026700214711430624166212819350004304273239451628021721523370023410520901619640401173733192131663228103524562660130468646340370273829861952958203092013516660520802042308918783455334122761045818371817860753116732237471157333630300536088777530422391545344691804653036314219081341603327627722856091512443851684443743403142005827800359421570559391116093133517644786630309809753630968787099856221652084085901662370047853516096619920147829274778247498919883452355790832906508798244522461433467110251208001922146035430587283414140156030278603048102647901221336071610153127302220822632510261293164500510079535374665367861683779550472362147052965450015660652517522842886344306437844806035470417031746338184349721153137670062956715412111518703095149198111572274656178763781917156688687275615384682953287571064728877870139820482076105203344284516341330596438699005351875447650715630124138845795933896147356617246126901060590825760594545718974959802123805903731680114464248189439804076673113658715592717163894093982166800484876177064380663080438410796263286203625670241868314399280803971836833165783596477811332648867195735947833426483047258294726403583435891565107739623861864296305285258436644212048133221468966200709399405681886652262871260107951444863014761050620971718749672336379767491329074983522822319156409885812372500360769086563225146618939733543860076491198766445604253041784197020740035124665148859594649415278215617331745727017891880285335370016200863224053430094435608925976839289335050524606020151199635838971543841981855239844490311583946551373212953511376819060512906348627971677879911264626397627107515580342601338077832227459988741492019774305491401753377297084061895799659774309130017661922109528837941059671835857030801177904814201756635428412855710323467622114285016133149917954977330925722324122659968661303318904494590584221443244522886407178497779336737745101885639311009404176215761035782009157634864975654032606979201822759759876872789840619738168383161083956585168733480392807726148907809711647054444127818768699751985660378833079562082481434005616301979640351823143520480468616120672356945564559101859596324513026392331448948259207392442998898678890540844902276076140860003809718650926767792700218191994185842120590584000810592459212649401817802529043032735789036474603829489869517678548770469646982583077629348417796249501877177835114316876645730301578032402732283174529286690782769862435888361295197648306032049525585758254632021821221875073748664017430063955101314193434854985289500215613286128299275407644439897828492223700943084820274917984163918078528220081402555208006791430489094462543207774285764259297868731179497529909330978761811170771762665689242310053820483526335855966910900074755436141782179631867568625703572179809130852220242792051929244304662098945032585078023359916268440632243873241551360177983560193321595331960052051311177043369057089751011792972456555983766865256273673113338486985112576177864992865148506924286716125180361054796217440915409079327009462083044194523205098359941299828080190920184762784077850525862986290149194506004716260012676223452181305531874528827792025433743765374160815154345141528471055485691709031740901961077673383416163016288555916177019816408469927712168966998838472788809049756212602875749901697588905635258248909167122208508935116220430619734469845785833868785883293171753230405736714121424198579067103399620008182866492772305070424339231707566459260629328264503908336121939964814086929431087127488535485177024257391811753085381180929973269223035262491505964870577195024903515849239356548829625460512063398262220337918771022234522617222978839901098909008433872372096575739408919723050204168048097319782987937760538750845098189831578467882691575477067978364579417830571640753899269615035308651716491666011952331628126751910483003339702059666405955855333745322706767141379015118315019481840997748106069327093858120311123306098674474535565744533703141698438832895453173550110608692058792125820178481619370780371925962304870632242118920055511557465696513498559753465053776436140962605074224278658307777898307440497639121792753777283213236789343589925052115967669147934983017031898798088064354793842456336039423616367741377150130119829026202434939148778482732541510075435655763479598216944083829951870042653170885025242163860393321979554373878547943419872543538391402943705367962386565934060907455757263505954892020847215140355745392859619838443012449841768236788951838028851959333305999763642573933054005364193593581673989504420553310068244081532975188794317816241013708404507477373495793641067761149144608106059854939331332863008800716258675265610728493865280698386142548133566376867666514362266520653296122793725451632801409148334798869909758945090120911398695363992314315544231904045825751542525927720626945592178252848425175254511268084616985751249350839453329898739172007850298813505296271096799735176956210017549664237397462696202358970432605113227926756273942007742771898213893284003895526738726843581369734795443828586573419600616258812051715254272508428350039144905955496122349908444515213243352939760324651733480503905483467774612618568816255341988828185538899933234455958371987880497186131483488631941732083341697660551966775642111879541567614975963007767338526456842002502493361347983152855840453781508635941119530201178518109087858123090078917673784463538066160762372129325409174269361570615800148631877512194945626395543490377499478967177237056426818704071304216578931288955352588816664651753478196097766299812078006578207241436573218355600666373413229851333750398769514013422845135327738822499395863442099962518894933788594341622574665819381609086522063019991545817373263455000848917023405539942573395277009530097567834647758626008378750824183616264625901026671508164515248233256171455028362189749095460497596599038124460189438988128500044974033270600791097449824219731120639987564059974632540941515443715920484121798433561622791041388047926643498882900339221554851627008323115503369539481681186959111882259208182855181247151776994615525333477993958543904313113067454984685842474281727105516771908539048232879971484837414994360180964466631281410003246172674794838160347469796132027749781287873898247558613520326132941380472002151371039572570349552365944913220486354561990739688567543130685628741057813375493963648736361924880601286674825382818053026135046449010097748842279306964206247186202829049407334542623056041749517534307638205203265992275056405665092520674518944915128543204092387907598012012468113713012917388261216920222987160320781152607536289899802619431834424705110284842908258442604042396401462850235836229441059899705365997452720426702837244863704824616660360635116983630156335229642159793114783449215110746061999064148105722505802536650339758947508323723433272554005216451282578493366514026934157254286622988354318601132504621550831199901511056184969549825618909415348737923213794337193985353987419805089041032553743163798289638175357832073317946821285211313171415065972746053559607339617923953125167001817693435735337843649546138665693466502837331975012807093335678881969045669893008968951267979886172874219253117655313859525567716602150875034841793191007025896136395263233965988258995293776888581886559285938657994534691413147704485020339551825390716875203584769606131173581803424437785371207234923906402851958873001027884721669422860751274052897464930412264346140309265974006832657497751860310440706422678757092694318148135600952000916744389929132270248984391047965597951174938215317971276344884655308871157197523679209272230202417584355641622020343971860958412167786069137977768536394843218082188775062993424618901773317642602698270900045849776204961195902474195339291936285384113775145538654133812624962220681141878756685579614586121893343086413156675603909832244411054630907121486930715872221636612391167296788910870988226706540385320456180530905015549704709016546598173211888911039710515981105045123515397146849355957731305790717702944585312465886400657127073130638557300386497204612655102007447538007384274653823111130261413333216751000494844951611202939599250989320644119882660540620411065597851057831726337460237982669360181715937994780081394588676567761183173332899497374688632098039356749765724827889765599806610771334154519814243634831504542536677038987145069289863681998241513954612072000397622177081813463642060119807966197436268553479776947962411628890935879850380414235917760625643295246915322968186669217588041293217701009980283949956676753421275264375934256515909192645316932896017367250852721579998364696925591295185398636172576521726141108205782303400666928217477081834830413377473846240336236401617735315665185831876981078405442689570334418604820559628920234762743089367728047597309175174297974126297447718095923651484159775237402539791766060063061633626802003002169717287793782783256419319428876248739012963046149707696019535465301055201681212847563486725358173308776164176855307582850404084470126889628902664094568901187101120496022949883133015011820099214756342577713297698990440909531436751980509591246210400391047264012135019858745871976221449032814863735841950679334558306717291728506391075651711864513200511275205005540874786914670541422403318360431013556822459810417400636156387998188951468143194629587700433771960179463738828959096850057318243113873190833719648783247084162518182392333687008529375701272356389369794279588440222435237941701482303370447688814706521402227482241642214404189999581406522086121797274550241516969832428323336416804399606495594803690853375627126629167606804674041723039254313814531558691932011207831796812421247672664348435271069841665799404019334457452095763143649105011729726914806855129350355084141435620465937494009969409877268164590668972985651216640236550044176687281081011383152217355600590664116261075827474149864866384624691075062102775813001605133024673996423276623955523222293118318330730327848479521109765119633212613141901462519989104989501645067833283934514830171827936250081532941302864206190346231493431391701100349198357606161177921586500405441530274101324494944325958182593539297986944269457657569493570340256683785065155737033346136622080092029286668510392524276736499702232941504203136740498780447033889917215498450977659303916379923061537549078249354369852507769713658736933993878414294373939588412495132962217970145896229637434110971932367107842309059696250344145566846860592814510657616324628828284242702632611380034032909372782325839686718027523412462986955573122335135708967175266111063501010587331905831924720999844189926301376422715551689653260880334839039994333394214868734545115829804085092254857112889015273923292867447244419757249503297309009149120455384903721141287866982798274693197776955382553563913854116868413547499869953294832256818149032753525792936196556850966985438240891442575395986370606059076871145311122901661047591864013175585414086267026412692787056624791812092342205186122046175371211172669520788169371590404772211111185349097918635069831532453998700206389705883941327663890503608402163728203406556266138309245399119023649343326951089207737868834629528412298113194991193871595163282343461514897709286922112012506842105266456369212865206936906596957245187407100086822822191749316767538789972126499960937562841113702146884354750750678436609465070671788067112233767935172373466292583559454938278133961121676060485291463352938156655993798266356483452726551713286645688083922197447059512589710483957307883013258417311283797855734651609550824627043766603561741772218560597529136600676406297165375560699684440093111034388164224350184984350096550130464281645270148930886940978583589981025745529666476637105736946372656179732195939014730535408480787915622171526672828685408071331119748922219439135728154494377829779806220423655343436170844998407869982543562470007467009996100726463957040303679717647152152298405148830926448123641078907755525661524297709812842999822122157217315841824670503374239110760741094060667682008528118302734346946674372980156087143496324388574937303771069735912938709882561729065550035983062513515599563025716573347908993604146783244474716643141475678687093280705610759950469493841194148140078073930798398854673976903927883204070973397380645640453408663954769875028379686041836059714495620618980110076588553764900877747463800784426341108286526399197735794548292016597701046790574388702451091721008993025995000832751728325625150123911045943366348775426008306374758726562638929041045540340591146475170687150973458545893106254309410041264262499826818919027444210737518354857896367991276232600734642441296597964060716811560036336374991961787367273008526590316541006949166441896217484635251369016366348052855951287997653550302088198872168262194373044021988084905554527516012873329439999747907816031843424047774899237315042253702551337864259254648686220928470139467246903744808867382138269802294456490094441152851472558441399577674720231341543116704313789438886357145699108699397853739356165820853388633986292854597421985665038856091781127171842900438147410098037163729068017681303689652562890467829836637878324533761779629583939847568354836935496087671308445953730540421458887494632872078079519157421315852146092270157746765944608154282023071535198343268968844016992286945695663100727164167715005594742392741987280686057688956004322669389363672732063282993196450638954748866041095859224217455077943131012166193880727792980186060615887232651617197085652691668710102361625114998678414772405177575220947935865657091732182677358795398594057430263465807515425120417447787768648236303735632524459365082040048447638286678165129081110083807679680329768383547004194358489377089316348411091354239404393047612194732720616592738591121375469759353343614731241207436666170138967036506720165056871292178879909353202052517996260526660701099487553161011622771064682585890112869708205145563478946083243644716884867744365631364982456485410443644607659213342516317318868853602611653760479100362427765799554343823117734115624895754226301605814123338517601837020687349008081829931546531108882832164446721722630899404845150697423465159686347332033285882878627458359341725794664060293602108092869840302326337426012451127654531772823056083047494649477654786313885688353366597894668104559002999695906960842568230941372805203920624042898216481499070568794212147358938531006606595758488451746074127560232584444553266914711785721936960920670265159132240865579170088008954661777909030703908075167588045533286767976017158248804937801427423798259239560116018083021840071244311201934657518434698449468755824118261927338342821125858463914980678084208369392196554412789077183117054269236683249777992652854019178850223240568474877851323401781835280348189385301823865126538314436810795102133983580779079750842865256271527688196967916483413299716123225410127356576652174496144282709010741832865285071382675170082782773168915312881616251272601282147243041411271235197604960955224703595271347897037286213146036777156351044387573285334432141327969244162636197952053978050651126814331181342193489691190611505992780665036574559825488647259300122965882003247548134817975406376809653981747924743455852342463999980818780033765634023467967569367161039871922399144412598346708265405294583612001011297823063811071360926475671572467349125388391778906136886449602699832290218074977949382545928220951689290036098244917043321509827890741208801816836980110251855946923847897303118737285620307554252504745954485032415629451196237632844455795921051587041760828465814569103446271620270394370417796993854742628097336372173062814405773939815576653662642769372393172276871261491227485947602053345158146787789256497645260044843098336151445133579126427434398822874507150932303911041224137314645776047680328010652207664941581566862718841629901502783487315757741877092556327949129282130633575161551160799756786749784744812713892937264909415256357593580680979929465763656823949170981388644585734362152791092857823621835874094378884436692040367919197253023991909732228059527056537721884233122100557081146163596941252191204333537651632419295645918719402244335331661181260821943307688526531757822554350386888143664231967032331078055515319653807318758263081389303189632307907742173773050245624168501482829752577519908681227580435124645840233037729106884981367317844559925447100908764916510929690923597981178152836950417777437732383447458367200221662499052464824119224331730816972699390123105994242681077512674294391790519939972713338400109293931712217305248056473908464616223571086414739407106788808588545911253564090776113124165306770710450529232043380078304490193693432860461837437923345967592775947346896395163503571842066016777824923546662633715938140451148372343793907914488001775100228986345889568827857740270326043745259074539911672536635104850843447097106743867127023335728773336281915628917372349061032179648289541858317321773643922106541398787736693723451286541140283993823850120726927012242114432261027320955853754597996460340984064759066437063797948183924253659261127810388615096362628080085401958542438519528688146306097456077551063668311313258399416604638761024257005464197868529688856429673548542379322128590411990032212925458886598624256464536508642069346746373289129832832064556321551236710271020335694620122906503804264040558351886376221470728216616159356582760575029145332945932869703860772320795868338835925852154059316556578087643852045922765444646038557249511895129664519776162346046086247505550661111347205717007478052083856544854999582108355531414003624347079334539955522203413221551101346728337643290906214770567710997077008273700094679191632438355026175897456695648036082272247328006111387377584235588588288123150630666890967829687244564132193311951351546454075346882132415715447055514884149370998195358886766853457000493258498342793104777724951888009228474315102243629476645985688442606676365739200278145793211274106797642089807484895911170643264956590489883253698607120280186942294029318412518000338715328444323285518648634481079590516442737231221323386043542836284179615675585653981113536222199549699253105238940858892294356431670642591427242959103042750763798123646301906460230008696346366931654231550945122435979941369714786912724382735123371156983044246444155671849864515964044911109206288606832189458663700541835488317716261393564600596098540062351473907618412931967704268151100820805891543939935733221492134233090206018079988815944632639306717598420453347287914936004234575016018120851475985007025244749218500503861010167111838617913901488094830224894451348078706910888910594759954121116901803902678657309775641611032944579396656434988727776286562008512681966720216486158734354186393683633483770598217893739812900568675440362472525442392953495130348355922448696727449810965624219338117090699118790649416765553183299821618016379978890019970309366573640031753736033550606184402799815457036215445304073851687785258135479515027537492734049182047788797359930375768153514760067902245609162148009240922334006972815271495582630232485476372781474983940489614213311408402996599598313430077049222044044839991926187595357305861554931340410900538117427561918925631177408896939332937376573283347166528732398824504119805405470770555272953228457664342213305616652942896383797145109234947844174019583532511455775116579141174579656797078977075503112627277717500718233803016003824522255997496633437383927135406723281511696973120413754134035218447935655679970986830870203679808460374811296984255650371496818065723526231821848949547385855983818381700895304432188107189674013506634062374421519527973432102875349347514293291660708724212897636959376384206733327618883577669169321768591423476918616002069658793560457711258775699746209628640681898912346817829307746011461301218280197526921594188443368440561057892245691608882879353928771035773837004183876204954722981261333639279730685904491809783934209990632695435418939470073568997318248019325229241226165680150769572190777717619396608719298053654696291096435927476398266964803223181418262781684305915391591009187867030701127176645342105764883155050239890452886817995801962933943320743452059786858080650550941466620347442329358766071203460856558332102763157406671744988779293381386776726598839661389816761936629525293523258904192158379066032973164586897833590980939911965222423471722243438858289596872566408400778279510852083929831496701897138253966052626413560595699145323108452936108461722136652624663361828936765168321990463378845237033113402181037118468717371215017194946001432147255203295742293195116605664103554188406695177572481698422603976504537930648473995641590640562826639718284569521442024461800550932879104233155968577720319650545866457884542899891422747194836737940590485891168325528196471918690775497365222981831142882354816169571763343470502742557741097309896017678471546936305176881594581998281957647298084392021477149048921980135581413829853725253783587055288231444593736456936913260534261411699226797962698142005666470155982400908428117003581685264657108189471437374437282763578098820646480242941279647809135997072389458642813412015935954972008070211619839895611341993017209812944974038039185394909421265888439371149185787966768573561275799404331603695231166124866879027539238066479950629169193631335373085649907105709194209792677321677868995180871768643609531754702552629273563617293626641077927074741770062039292400303966636353497298832841310530623256551965716145323631023707664272584790040492470240235471647578202292563341174179477316951740022764463862376038835495405178757053752346751018674456499474768104280064304933796049193223607734339042645125275112298807737519925164452275939667347582941931357194808093540417205175760754764763419540081968668580172085529816775843609591545518224819626118090275286331876701112880296253062787695257129738132120527751236663944965750027816062935442067668779413509481997497974586048300904658144015633169432159612375838019668248614594874553079560644897734150260342102639014595992876725738568027714585483692894658432527724466849526502226597434817738858744484308032410519203051522065960347409394024276104811250096827918033772408344774866140273218700268094457476210202591858584640575055417696728614370771732115047822968604613729586191820505231053733478903716278751507951600618596384718257632881090716277423329141165749667080389485885310974913947454242682463079466463233700009110421156200988082616086621201876007932797615978040317118214078107772042519216816564126617738589636450077614824635557981647788351728475397670431287969877708172566112887583428567450692051459895014147214265377486894010629119494283205342714389599063858903177423836943070498322486988593929272737911079118108040916835072170920448572280137544039808686571023677410880562547109462514791956280924652930699104455333557768242496440162056818031228081410664951964215076215218866076976556634110747035934535311670470123998359835728485399759463479281275855712694456414771958252582304963645678383935989092699236969492971847905787924639263429668743622848036557532359021659760427544398449189507454818722462483293601388804203551898446684734594288686546710031701442443338096433545748158350166543259924801191332563613271442500890747689713079469370347318007776150485796245233450975268876972688570528609101545203448385326535402879454636889158670650308059716952273943496295393730057053981704340733999386540719962319052593170905503205504838057477431193734469706533712449665278772257385515131530575687086608203348397863184428641614169571892296783185178648998093322174975436454622250296565615428070479629245880397537282662752004598392486817156484178836382130016122157723987471125756765134941368886772958961541685705754105454844076951041952976567690165507442297080473563584838463546639677219701363470627518930019140709312755335397597821944638521057734857747913093759767479174793220532634364907439983074393612561945686766623322213566537215649950481258668060294600862343196675923638482952328295895281291677300044186934436727853960824141034309048845905796237486659670537226935390675547692300118357827384955306762647706299941396569544475729572063616836365003757682140938155765860970738735664330926502209387433419129203545149624709069123881809994238189765579166638486365522317154332211204160246656044949577526692361800052666485020633995764853992269106279497205269270681687044907103042917090810775157685108767597091754939841806535941217511057544916392475374741515917375862125736649207668462007967395270609686940800075401225698241943911301279305241636070661049815972132603968395157121876240447617202032669628325377872333914200666739181098407601455132693216709061572252073265450980034774970651248886838168472838556090692525893551657576199606401452910037772428181618065439818474482681501166285400855696577547830173123520785764342582341029849491180278997522375847761507387218537557416442649499806586619718956509601605899861515623975028342491855404677430913872306405607551854870659155423756395422001047814610224324001919334325521396423201471722757170253616655783238886890295127963381555371156517048970293954290195614002631766407592556973635794160245630528540307167106701513330111662287862502813539691050004536577917114803880728724120906769543299797230328145854151267262743623894365023181903437878326743391702728717893368442512441024017668911320314850103483732227978167212221131246834871292764488980152486816401804352624393829411794060077113098791350431438409499307001395726577946639911986218591149101607645523365457297288074641318718214865734401129879155661008310942531949655117705639965783892933431667154730523011466171050858263432542212829290398610749639908572717063434924067516589332232910004495361045838721319980732709566103895279469761830363778432386937683567670534619882476231553322370170565091687866845410854525077325974352141203309429297226851869979877548363385295952356937199228433092390829051029598747979669882058804039481060812291747718479332979256127206512712206523828755102461541689390667341180563523350731875018341095922026102870285037431687337801071239363665280348259579363784268461135624507487485172852444193970176345300095458130404839079296750335278577731511594353827281577959621335581005308525774041055822194663371529380810585687247195462686428691311108824795266148616288888022658772707542531924699150992805623379855881174341484264952850408540822078646563342783893563443118872409864123684219168470900466623359773612432364976090847014343687904849930254859307646409005798514052928040476087235573065613629148953062129487517835291280439904532554024116848184216681746692536767002380892304700575401631654794316034786185926177649289806634017819910730824875514887208990572833140387832158036408986015214259938206237743437408795376646479910640964718309668877343323550896019203422431297761638221883593691799722384568928137148834205660516075195583259531365172027460074999173199150936817638289328152123982669094208657483730067364741499397167541275964821881899339305718380931258285576448623016959291352245035824074313861434678588602600043364534858643358481355061192218816502104781538369595283782489941498082588868326534598299357835893415955819531813376264386567470666592962817705936172832932564975391643681338766386004263434975154597464188975435987167222161226416941955938421003306522914211331435841465793273155369085763585939327444261414121046605805352662471849111796354110894869826925321512267690927989784328569309526333065939380127599053886940021688804524637733387631094129149031955163152338789751937798216285801732369229274195229251939132078233858430790021308467087339329832236210184322047701851173469298788502371515549313767390780265086732681442795363319495080469125148854396744836633635029113425881940485123882173755281726802716418863048132280939562733104648659960764875576031699888712778002592515812727451397489980259722477320530445532933347084338656833849156007697676739034881676201323006368521166142427966257860572467607175513422021333107313067359922143692261946003385999519563071582588715818839037594686449310115715355294321515937009688705557937402067807404352563739833588213972272313584156501130051758055670065054586561220006423474698501741435262739515114436144343415572358899700958030456484844949842309031763331862859687368281367656822280561224397026977734565683320662482876544499441417326301402819638056656937883059311346752814976702608997880855371415945504960988496359338128284231501821697054405935824432535574760057967252389023722274422303433257410774874996432089756207834975107804368271126931537377810174465287574102278790704934203876630364675883576326023524815658148718948975936480986626856456651283464704346186572013466618771073043695991088168532352768737286387725419199795774024008561723307539459908053197897652412807413741617870154653836172073153705889076118222453320328275340705736707295336451760543810032868670621873235921035920579219256955380781068466225226726858616136314458529021313633383106059403778051268109664170539622745517263170474948270211324927781111568603750234035458276934540919932525242030767823061327926760175211671812086827913348899095619009413348286855838068432025706797019636216072801277604948325261785163783273074167263305993354552343397384599967582359512700996284623813980495561501203407495698109637337300840629824246965004176602441544980410443373310208078973047132468624263766322458474965788722343709152129709793331096150338335889539254897897211527417360544367381175844476116058334665980791558794517918501253626515789402413313812178957579805842137518179326281147743881631376647684694509357275963371711095919318595923205156821075992148053833638992896881489953151265038842412325917420778979586175169983323519144892329425606001497464423163601035206952959126594113096180372509419013321547853572150083629254576747537294373320441916090149224078109397193491659124154248857105666272421212857408296037994585901811770744110709744861346590550458892503115434052925696765683147412103494256414084250050349250331751524236598011111147803236732516529962725825607721551066585395122004784123893978353873457309547857247472410693508642181724859086768990566525371010611276472672638639638755038748582638655365973465827056004552598381732185969494603635483448696164180676189749544223581990244232784926172736336210385527623403929008797828365222173377180917068384508725852552635721587911011665485481395590756141463490686529539703100573999310302342691718060474405702673334831277620090696096204455720181295250636209384106375750342336732694378667414767087816510279174769899326665574066239358517927184153602196170912176596912858607336411390963042828931350901315729053308505113198290282117249127029767413555076213443353127366016454183665023398519375283389487881275353957566692692637469333250634876312548104931954102049581612815632577255145534715120231065215484004972500648608607063459726096788921021478990649147183775841260932286766126654023737829696468841770019096516442136115855189314025360322653062095276868470237110394905671223088000881809421173762628577112207955251741545447203615927369961595645444500022489737177274070634738749913188829169369114593501037454741230122092566095577137422882365162696053961078405840090329556522217845245335236919920695495805689738385863841872607731264475492009039328148943678874446306014094440479712544760586502903381343660992132497852460512239822658886753088511993049620768610297781727342000260676586712566489931422961968949600933664122567887071098353500356563105785110728596503154053217313058744767366723051432379032765960118110819074081875905381771651115642205135578295514469560464381229258240705954681131378563626687933209008482778158602694713247594676935736852309460125828306429387618682243619798820380434591119689336504977141264951819844136255179538651624174525551266770035232505269903709133961796660023230242021818713669493066474606218486968817058933977568196439290221428242141920894594086241318277199691629243425867721365277824003461170409643702454787108524638619484769016909895586090659842782465558951970370228474122396911414517550770221765730142276090101769439771248869262271040368332389529423626526321330036521645511286716577045332098262564814921671724540976013530611836296388325686343361831293153410428723723715607647337003960557132981835061617990739121283686301606591559722248135729192692001327284190038555514479054298635723686685415569304868601232241621855730139422830466831155632668187164383344708008466029456666844617381180368792653185305734576496966389128427908486802093778062672213788747315627105000888645872106567398546660958214885583686169462822478492397333682313076216329441083280529275012446980330959337305377232834712783875822665335487690095272450201467279942457041494486130146266209291233960657934094794666767414503609058661721008881445567084741041332240420343215860582875475120435492493729263682145900271765055813042471402628744240476277187058391466198355390455667208772856158513016204341494050292936167405714811957323670908912731221675432572183107113059712633191188374747313632841606115418520706741550940785791823625373328355715704896173346380409071201290529523776996051127496262149669630377696794904370094350997207909053527531930358680934675367467566143782491183407232953904377267494809927960516947185788097137709251625078350729233761275390818318199487300821059878546438915364110161838004853344927463680286080149503760301644016025528023078048255744323293368524934268440489620794734378858479013831977397010364690423076608778094293673973045134889543510908413945973987614158906940599165951465723542793449840861421698231309497743010538964942740894706612151324356372948657522411290731687829967316552478585902201480375315499068490934605723125157065643164673928126832144130250178780206036718327927849674833209559427995594352235182390194402198430870263640972009899121591539948883269762250652992965013827375896465832932874864312830620388535914966078562423744858452134444833659853596390830815401937116630852268968869544648050448592833013860906046822539655267618447795235136587947987795056197844065536912746463521372089646596979469282372249603090117102218465200652950559813552052465571535033415083769332895756554091222339602184918009633437530904492677772445911747793409373442123114945340315413490025000055100704188961566088492254970254479066047656108718983672233735901659508634106587308950590633790578095786234341272156876435261768514673361123162901952328424879507371581924037605345115000436081812824074848990209760935663594210190280149960598118992674518870393417438469397729728786469526099394010883590605314036014218770638073920360684609763600054671606112568059338314772011336592727238348907062627951939746142565897765668658594807935980841993936414152532797078424630500521160339476948296114507453219107238193384916976747762085302650438636284816610903829618093992665071232729153063231788305960129977984661931778255272675848595231995448591781112342639835445536265976693215327726017147691711217943267348089229804849899091935518208709354811259632390731301310560709420492210498356246963512792167834415489874990025887278904561609244209477195109983100606888032172145651589173296328401770876490432704537199582021665480495069767299212282920507770694745436034518630082335896869028361152122183368919560232914687400435537307176676834703693960226058126274664721142326308669823041973623965324157652254981526930792349459246484600279438095098483505070332870696003220463333000254088675445569160724118499629886047606888931916099721087711411576135399234846469561039443735695652788362457961020585659853975736053318358840061983443522207749897053095529299815950260395410553063254058598867475021973941907224673801510264176442996087296079520595139838669376581412103218130365370906924006791022684357317710548135119200635322977632035432274655818633720960423566330410344146559978895076988215436175996161312229469482302658008821888677414497710840799646655054515741340680664463449930544019125254603046594188368340483413887201941669475534566185682703711912845012345987580643331205452406087028990646364944713557227800968588221029611850290040636327025129982753534846837580079910690730466906821797905390961049848056749405578292283319256232088088279697264628187134215063704882198241521831538839927061889439998180924611536575896639576571792554930626298429271745236252887976264258141248748625366820336343411191678613264247841335594553259186882203235242635013523867395576001922002129413987476387395138942347774019212114946488487320438076334724332126615911092619549916755610333721339254088234028690652583890705248788140748913513223370945658725218587525707425099103028546453191513449691279811893816150946325134298881361147957858614174243773652526105179605605840791376924310884449840711805629069617194909053142199206247589578353294997526875939588164501352424117871784800616596358084144032224889230189137202548256590875273900904347930938116581451570839779745197739486352586370749246878239356055050800327676937274130987643103789986391201729297800815295546427805622860027609977012866868888782652840111929123899541609504045230515184991327909279842143723907942195743631146754706145979541139124222673786811198394163551352416370462701644476015311693553899642789687847746067437274217360452254946022179461206997349129610690105555611576417586383095338194365663834113947914954540184498577157164659878722157286461144473331642656107748984195942801528240065396443887974500663377724957705316426812922095371868958276139767036722464230852841567710885064739915839147092375151967927770906694837888784168933319445182723965558257470070108755422784929091427621315639355665549888301893375905802190968842286520236887702857436725248025029790538119800878616173549772294307774319756096069105091243289820399456138254029158054312618348264012184283553255615804947603105708318739096066727898983482294219360935130872043459540895305981552046520105330833626414725259496973657470299865795071971245565970113340093483679254691217832816037869382485877621679265872134743921170207408214195372186433533076362968502251399486664396492619899768406583382732944203725908858039637178349384391572892959836463742449978889302022834992279025693234510710776287292585454187746692508328890101639709628309800669666659606307291781967267044287804193075686281668088361693900232665914589078588560779304141547342006222604403309407371427137378268844096425455226434942347635832664231294387817539502172680649844404947427502741943180563458008027253051663976216165839564281721902356387227405328956135621578555375577651281447156979350084353088240777530195734460177593887906635206685264734198829217070008210204300123004604736602363612154351341666439463182660323988345187101075824551462297753255487066112356668779514940365746341626940785568994760282158764500598609627487177957477018273726106267858414527388048628253370960651983141163906550357294209465402912619321794174570845492641032013471308702969095956821568389744811844442394841004318185736522621549193251510308288478287207832700486992976858739077260838530066536105980968980580002244574822566519976848585235217932291214076051969981885419900248096353696517583257210612207368429825682761268260547997106108451883331054732954129200195238162268144611770471791951202979818720007176409037464898407216712002375171798043133183207252026448935970634114968323995736159051721491809352991559246703269182634787045196311229788820238199181775684481749937190287988563120842243341748324701218893040814908320661655623635912678472733949992644631129474580925664223150725086656837648233632456025673728249954670114591570677208910179204105480500115778373177333676752445739059381973664439688227749889732380554809516547362669984134301747727755827767010548474400150534797288570584584923139478417785340700494752156440251848520598014579865892835573333627881187149106367333696797426384591762372143026144679489220462820868832898725076828539248658353563047239542918450966668921132710786599591321797021712577666415031413785894818891700840030735007546633575568298592396818995204195835871808426170239781422273124157652585571611434136961468156926988907748377671695577127559587313075729118361715278061442948779667859192761599711114753877867837484547152681220209826567357953728972038868759185238642165247424235261982937886664831304240754381552019074953286048779843410296330294609761550001251363285823543220594484659752017269299038583371229114424671882731807591425708315167649926607599534356342747021306094185891793064205349231465935524908929674494953737305632450660696927689986995561817243821951985433933730023083882130085157927100489449488830660094184198336669279275924738062213048570423988106318456314569918949602334870901857081458747414281843002398595720492739706293797267548615515785524971541810585738810163861002264508245735313565929098393812079292079648600556759711396559278922296976312624674177251693789676964355536383396619057393848064977005683415333967845566807715311479767565843721840260324357995144099926833948132108531478704636681813597324039835290910437559889365289710747782245608250142372200422210112880155998372479564090285956571413826442866850329132713160610258594592790057719811023540532500127473827377326206803970911532000983536551691161524538835799559485611394132043582868254855707963595303821381459637500891657702088518758410702328477678399917600543667864404754101244014057905792346986277253026147741709271489092427168414630583855321052428627340345831632867542656693213730167558218535908836471889444864662762622037356033075081546532025743671544024771057536468755050137091980030397215253293575144137523666714454401929076151213573752526309100755443348364566779042655301886786730922576429227741765224340859131612939321787719260031040466403297234468519197810747268089620022588721584512166520169289931468270327778553963978250611671579675044188997799067284417554497623855785735861819812785813990274309747480657364822366075735723065261362585020705230146757176130064152876197962259303733767686567570668861042795363225166146427088235356211165437145681877918072284369657520484604410965805104820854132986762807187891952670013351589816261636299469907264796838690599431798664629057902443905152199670863432546708374329742794956681670724955418612671631076132989389153775360139630421722946864140651598193588861041093779688417012318185510781366594892329646286485132789547988956246357412616040989603671293041221684829632996134616518437424408996080423842319851154530393482967550066881446065859102224225483986190638067340352289551534250832085789166065865425735569870956410398650982455754291481899749716535078404212854137068305341578915164286189343155524006656655604786265665581498583611879535115189714441665025194606140603131758965181602033980299944999210424275566217438983644239969306278318935418293490329499927724183313321952575926216530203894139751469245450003000297768836815428239594553086947389135549275451559610600118905105920252802793458577382786161455831417362565552415319947348341965422405003690929074248698337447685724358968343256081727614214046800667547312744868824801104353661346064826748005190432853899698278390808571889713370666238572555123285298465269760584954492655274065920928783731089378319147421526943063580412489973556774818257048496899459673768063463449253720441408036462379499284743623409687193311072610293555787130451377861244368221181515533491456579601140902210043476525894329850364376801125980105195216867245752715299239887096518115674664338529492911490956238847048614490499088935331398401731462259591983858990106674727744806322854559600672853146516964660453659875610026688483292107994855646605777342087955533152843719081512057389217461666108410655481033210896921183342723341774077260705109449579057938457751081704712651590508831445397715018386939909115530941725969859576038096896850919900901879845062818794993536362502790655018574572819999877779703010283412025641218007531819967364351576547649186117602874020319980206218089915338795087398497807784780568251044414933833772147491656343110046815112196301224194207362935783487097493346913327189540306061997855966290877243495463449808826561934042246244495322518401430532796344987069727588837720192925355364124810669506216723609186173946792491973652119773236313007485440387829016918312310650518749991873058825649127869049245564700151850359827095497817934899793658060025964180763386542343632039931308871247139754282554759098518841991926732432812116419403929400295144937047541823815566556638611113515532106774660507461629584662907932473906602220381929002793605324951824452584910405795785109031168302168430705734872687595041957631080894600589135844924793360971118169334936752751185156121778336775983594153813885173932394923976256282237077846900814035009962613556991152592545380464754560458793288263206143698339214838422728662250265012166152863849578237527503614189252535463332646924121451047033348724497445728704123189859567577205356812422443759695187796589003407658703636891261950205579389545756357309507498779066891450591673119759406558374585225020525204703248602149455785146954954373976012797670855646495421520007182124417756062830004255625514181213951241543675181251015884000538741098172455766100853948628610173524722788535493489688990041663630546155140204558676105230745864350719727093340322458765209478346673603338918330416768591076272221169863395590904606335407464357404819222580630969851615047302381982982930335892664621483956834483686791367149339254537209611663492158764577223644964494931738196591809963352686879784763240609262790182800183094355003764774172099273349677062614417681934556170424137553437757777008459486922243982097779651752718450584232333048496804204012840848432854127066004808400023732279242618913092869099224485805095457342646514264049633570899756791042132959726197810407270827008766351686189997637117583293915991466175846793776431189304091079638579285021831664646120875260470484251557426889413066371292680620303651100461608695406977401979240504776289632143751135033752381096902490713150544578987487309724107185465205358113298238948663561468856133713584104501796370792165476570288232319518485172828492009702201041874196150469292396954865249393890452371404307284502268029687504628084652183542474925659031771990516557831976306069707062017266627705608562229102167014097209917735251133674974384137823835092421588497599838912741565479033597536190276000681357113986866040900816350323203362334521303942793245990845397201849474462579041592883987624307673640526824090190007311072680849456742569981763134662970460885842676309237859289731772867456522677533564392769820880874200352199603936316929457065181810462252639457562379792849923978972910982761368943165915016673937312048209687038383470001915154217192095928276844329082142354090568295421978250731471609061186908225989928121096570170779922943966860881766657976398978397744049940958739922015483968723066945580114592754059028816021628642417785484343386385899775540013979511672805833694238662117979062639410916453567787359779027743296141200962530436035843867071615617999033947642898238002301119464961355197126900781445066036574530772802336095795810770468027247892306802073969318723280545703721694014220773250821003182893977371612353260832403869369094392742545649339073719495234635493557219859592274962479444225780357000305912064610174720579444632567477139250662354807577605189124658263135465619719485239365972328399779180542751375149788761052502208043797497250723636658582013389018681360387013556917856266239634000860832116436272233985871280520202008854249480498467772306970779640468495864355760101638213654035814673797476516838604323232831853213225946189213598050016072527394657176168306086813060344687241086088274622482562786613793791257780704004826358173179915832658935113083489783106024923083047557448053021947381949672870345930990548952465488005401635143241608596315102244619598973789684710258192071524031947699161873968607452772807137900261298512999318329678864836616905546282670651444470567291864639034617313053391886567603094254089531015302948279776130997663313473278860258914639777362844387506023245399160077949258383194997104216080471091208280627700312828136283852033247287022390013418612093473410662826234674214628429426758093213525798987603372839909723488490427692679645694063756149087916216575095323772321454954755226637053286785344685571235053237081412683164768690775865122897542787510828594940473943224733816575060819098945633982760734393639715853210815966611226134886110249936194498373241132546571938443684401804706087272765723321512619428491766448303139230773049286317699396759435230842861259291534070537378202219859633956001822589283604817696287409766221133795858630095024737231162515596664502297264034867212700737515566324772848374184719777433004324466496466284690694376456335500061890076667217709270070439329900201319454214406018164447976205974294779956219767892094444442633021945527146625687079216768812333488850073062733569455637291770675190112808354857568592801280564317709376353927263688375534914088967291581819940226411943003998122698749527167473515168050380644605153087001709103905524431626235546114775046880472169421947337744424056795298916667170536888275459225869414635427064813364783894011616756993326265781691247314379299459398163530052230918984809074678819257815203962537115614942687361976628362022175128871072948086796391729557046010940005911909593524409282610065161783797806817497203024907634952358442754820218660851738326328296467021320794723730451178854107550794244386631848399613627568034012890113680691957188210548240779797312569989557320878732156103386994529782610285869112450957486747325085544112252960170587354772840267868523808701425827382735106664902805722306452575566124168495631630649583610525144363822235597225649565760226470442632551775163910107328904886661786245277723485607479670632751346440237819407168500410591978446743348889236390798645549732212415544460216339727717806999094167480019485177765988102294143780930500317634903881143962893572845262964628683686680166985119814074622444536889506625092650626871178300325252163936848872701420901464179684866687380933555896953041087088492568958831847254030309783926797784368402224723108214315925093903103740701439866378058277179114036324983075924341778964617037939404471053838552847086048415423745190575438944928874489842454127232316928150497823821948994696289507392664172977068844778642404543253478249321875185569259151886449839157134455376630400735360606055040746802016719708080510462752170453081470265299165906595399488920339825286761404119106030859295125726139284125076834469398573029004146370088743783170752407850552132490273122323181550597314938239293466860703081775304246878173963295386364068219400128402872323189005403851142593072760090884465058731160546714426129881499620828068845238041091974042303942047838542488127326725933858856519469528870329530505198057534012426951793918107972738097128826508440688320878185154537646167057885205072056295818481242962957414802665263944984673136919657317706685012357079655813032062907866131402971183665232030980591598900491610447494840541389148707013401435626274818217865012770107381485758333248033672319376292297251508779280580073496125306187430511024357517609457957060001130749897869316712462486694528516467683173432151294945929098702754561459762693374499782386902053929677837738661283877042778916857140019056202732410682998394559316327089074234330740913691361816448725030559228069543487765259715938457102647905353493677977099559764296166107764418862855810088749068844746848582003994767231486484435235115347464950409513720046965130336020455057510326299905396738012655249396437764829078868590865802662267241328746430807737396606457837723054870377969849191072033192264869710849343418625962075026943575878394811446292742172363729698652936627609085763552162566893083587224416675156687532997120743420359562356981373316731997253968794203092309151799367978795073945397733330951788105603053680751942616771360302071510088073256568946515225054052613615413814850253697862991176555716300174432931973496775147648225194364214307149184167473725980900142762728609034472879626907713207634605150001331424981795754578740020269756797775164403927063702576548515980209910047448312571116065860396081485566730354148469580665338534436285822472386402145070247895217276909727701085142322816945848416357440233158336374270420266530496102960870000039040983829003378807903883388731861287878738280674887008100110726861777088791360522368821003759369092710744714197245838104148463844448307917646663825134270825140557168043815957968103329268543592860082669779786655445674204350549875751838346693989169334845734032178523317792739967082888376194320518302781271828149630036352152289997748517653309516379486465784407254054583279256751507043287632515877644156939985458804301166958899709547244464787886087544281995021863950404390024735333886483900770924946637705825567965264486284913083959041046858898025357182049540236002184110614366474327270736330262769572351443456155859524571180504103722264199214795548977499795883187939195378213005635391129916297859789710436828686462914805056595377591561831073249299654634413006065294760598125347491966696849036891397629141784940122802791270386557266020973622246253308372911103764189552943251291800625433047635295152416610259984872239470417290181765715634196918649471416323663351149101442107295387608306314709744361114902169682653408664417093551647752859469843341531621064759100144086074894979795059646400853107003022144046411531576059052312831660968763795891898693444068061720298082716800097172895185677116585403518283913888230651589072772854797111169686967223668718569354567595942101365889224568890763460004381088025867405477024123982221125903993585624762215521824913626145807291019650196442694332175258618473209666483739130636812232805014495510122385924546734701549836830948438483007309541737705265323703622944563298258837922726794273328201176116032838743226805469947638755632481024666541552850284275802558596453025806558901225406479926007611043619969262177665180506710053053296227584739421642249390261646829810815537322364765574049834745635950291879777376502732330621222106900255830672458769679776617393530386340693889099343217698938490139453950200671585836548670113984264080887258034596228198763297661314900985926308064003681916957612879785184246374287765344060097809507543128638029042154002348009390410126226781794477259930563398704359945941210676388176492216701874547923797728720910241809735431111775151373933675043702378483475394494937501601471352258768332770182010954337419113536304062914533493833846303185242264247388999503042269204306590748455754914306808140228834767259625223247257268610931047262284635517600551961017331209139244835263727024945420440198288434746177965803444089253544923947337363150145036292084648177370846027638665493662060710913601925187238665463067096865980374709407024178701767040216408152878624948823698045559992817462599714257949966373510431132926202198879769288530426158714045246842596803723902762895705572427607245390053189081448766748176802244678357693427406287391312055255908974217682933795285701805708732473646953480829942207741144874335528781354761790382422456300801998550926184149951814157264041204102975010005756478478218926178631823746662334515176445328952119433447120036337669564065762278208730711873636890543131327632746358172109949484048070079806526253975574573249762625281526500474216037997603465359054355245399685295306524664969724380593419364037938239687089394980260367914364549693825078674989230110755451435211483868172588508603646893516934923043954951146620081213660636914799026830537479428272553204582122788017527157369977901786481746605130113791349870481572624171090931127381598774591460937100074406115257765836163656518525350998613455792645387529657936605223189390625305380193882556580215810788099501614988766807903141990081154063537021784576092470347427900691857485483090287633061934195875008772314312110368006293241713678130953637054228858783231364634172833919656901740514830406044453614974378219571749856234026131349855443554867890536466702042708269392303618824578589912149136794253512671167023132093675191227310431038743240009284244712187819911469867054663586007526171633741227091283223267807075921411341509728851809345119824900568816591729167419040287539269410118601863299352655862622709083185896218644329324193573183454100125441426298436822859137001533226317307742990350732789470822659643376113935220702597454847937518357759102703510381629344095909629998058361397437150276714712873460491065958042974864498941946668470668679643845585935907251330929769518408468599679409030511346037046646230615520154088546445902850088123454689911131349951920201444900899663607185656401493442871030900456203839500106717901649822443097037808298498542546356567484643229152232612663213719239773485879042900333007361131360747064245054582175560371324299835299359565168396903082165970056350384110083760182556940433010979597274763218639909003067441743541240956644341002507908638977924992719078418697503514561421327266222195300164636499412133794416572259798078746660836320051281726946699169530488275432310474695714404351135719205738343158844303574567087485756249846789886209790821097344201725284066465282317527870071498669610829384128693043036622435517635838391103868182551268054754549005509432265538909535363598144916369212204790593458439478190186884765655873507667069652685815535004597143400129035945611006419515709342839768342263210243684655016906151406296284498197707817749005988696849994819350509863808680291671860544803478879920993851079884656050064125196525076578412885167207903124577260188329554064082302455134415438364931338008385525625861360843959208086514672063867176047990175962044138900871580447535570518850785110269327071437029344508396966629131267285356977447939365518230817892860755298783642775400112256279603980676814177682465349072494268270084806528673646025707131652660622727354520894693611209386001282262683916844876004230955180619453184048584400715504671254158907115129002483766381904634862288359630661011048189862458509527860803928369192070537016645748948772307573942240091049709127517630577016406178084261685926413332554948546018670024793142416142705942095255718819100503545216453694491708809556685859616303628271691587251559920810558926562225266552018761085353175786824456638571797424680017745071624633501910773978103002067429219235177262901326421801671816129723805493516848580454182283698926648943115330855356164069623000858659646415782470513424448952781311585408623675090318913316612116846186298400802936769194410320597358333840294655444207128179485399748342727390136303524309613949217965941045746718078991248733440752613970615595066272590299446184610556500774698645285712109517795856663868642702293276026493852244885392569224346614723432658778473572150574545211311764006178759782603831298738756097864349865811174504175417038568448787997924383370243109379469624974565991317831997687717067574047580256637396729191874716446012347111746481469502813352108357189415856069720337761004337145253711260775127502028146468730884743796172961830187448187768187271886155412026180521525135916445701863491208661417444490308640651836865269913179440569586709964747787540371440308149051632046024537212304818722775741491336951799510496218048957532753112304063266973862364458660589434862589289796502901642367040318577677771065970945447455439509949560126150800053884969458885912246847103927978567964926325125267481276963399885572179304766100732647109293854787399221136303137756613767375025588576719721574263245596810111108857389857582877232433994557333383355128463480634572156347377449963935456154117642852155759078248450516407598575805815013488592534356948766689520405054898840991646677729612721723967699380779599394467299440925165961768427458573635538777369313645545193613449228184002412165861000796134571617362768741534862202183148185525333245417290318775919281983269870148772899671001379224683960070924440239792126658025021934521090611981314459431894807077220067994370949577018622194243644158903074621223892990686139550262743866150786412693246849209212107387197412154461437508668025407489321415972699982343347958206097655318097885851035497674273246689353119108066690486513609269722757643465443990703119880190589230415250096971803287352896947368013566132636281708189410751858276729114578183043963122029008922854323476001683678412618094428990751777393863872258779342621433199828788146987791528226407218958270629854203727441551901451482733561575475858003345975934560782137901843910090278005529137093287615046359524281165648694890941375213528145676824525516876782872122711745233740178443833936978494341128775288760085772846419236317839448322124760420449055472361879201445784126877103793980626335572001343111091525434852732706603816261381114359200543177829930203632387700061753047380077076147732485691506171412623254374704658747577904217132701923106209544198962435162314827086613269332540341185025953289421158122583052195359101106974217470430967836535404893746053315683720230087367295337500550524085155963098669702439791929427220900459467710181676286556349386009414341237736224424269553600131295507103395022112246183886149323178270265635969374125701484590351641989216007116979808089428261515845548199976612296480145974067462170413922316840048380939792483489513377070133203790565020133667656439827679441952241861637203438460949046761383109732336608331513718145272000042249980292569535234341259743781008168733844744769669618168518313134547848361386315151186757608348287007762644553525653336208489659563297437098341226064219126974294204920742758120088509913939566337229713950284988855593341840540594174242429970771003961914492697492364952807299131527136753816564859009273697032845056739696447979295924156770138955409053925115468036767333592083554648033180825705645386630224315899286857491158788021668279060031374775113425245528041687823323860053522999727760443415093264761279496304306548685878265484584562026540501138714457521701054630725733583499440465813695750804471627039298024088582315415887941466141094687496847506602842669028407013573490872356418240405287394695058541769527545237894335796621607623660449523232891568028883498686656580619378687018449871811642956721737885064976587018797129788576238884858926718617299114918017290314445620346153542773926692131192232623459908523977661245071105419920956545592052360872740748123215363793438747354595008791700850326199609509708136583314951970733190707410002168566743527951168867738352048546822570496354296050646549923765685058273017844972401592384426342934428408972457834123895975622767111491987972714498052671730111757114247525150926224100511590801789367040808076628131588949719951340408307630676160229987650661908052595015977737117941400700089715135769075802413094427118353296380193133015447860788639251152130634420372567506148470980555380478025201226870727656713077803939296316464683154720040105769525139831314563239743787675598749645051966983599316591831570693039565527832493180117482268314778477564481961671131557649820752483014976496488687216948783118206557720307664629256430532770973023394584697390375914596108238822195546805671277294355102596964379290158857002254523114077759904355706421155192903798257423278628291537009914369719747482275624483597614753962695477011879744051713245478126667932964511355908321780002876882697643738266142862979025502303618990219204319015843090656752732954285751284763678808165433974091118791899009283698603428739225631812650806211473864714092563465156436638276095947403945783483573868756828934836442115820521779682541889007463771544426880542628278628532509581882886199606078255419312482948813683986007821654884929492618700369088878874023627125882049807374246981425573866992658263513518692028742208612389940390864659375594855623724106601763141585382147814642664165316492026600329000644967228989969130482627414317482861100991877209475779946540240439725276514654269372192707156359560983128281459904512714668332502688095550947233704409131119899386338200182526409007618707961548235377350558879176350698942716873910575195124686755460788832493774264398641164017468819980832079791187620054512921565020685907158540834520774721793876905183500698577871243706483344538465181224158657355260965353222230304829691562189979768092290580069062745036321686543982167280870125795788485275739009583521664968048566182634816395470473198887301746008219864354615219032623814758925639033576787345676166767097759784815725862190491746997835661890158117282177734368773510924718742579544229002400102994109108393325217854061025482303105931027846064782337593535959145344766122691775817496782254514584391703793680001298170879025725646285893928443978277617487582055141343378016927719605459423411250455582079892021051306214417248627420626967713488865098712887353820957703447518135715854368289700701654376260822974454191345038959563580763344324013433359696226055099488679550156055414739507439422796852035288447586808699238274708655971131975085670864384766918541401074721807764218589632142838010459142740557980539226339702543062777087017928571547439936901441627287462673059714632409081771799815201649047462330855816528817208000222114775163454588162381640543690203336284181814226286858822997802371482124045560641977286035684410499276935279446401045532360931926931608013773263089728940320825134229892145261168417158695521403176077093157480281856525616720092895996170431425797753493824222901063565105251802907230288402521765461028692980240682663373718939254718446580330224702984509568972780951676419841299722481653644193362022614703014136348363662124028994510313804597302253010989185127198087312335486428683538188378740453332506802968781349723018618200166299803493234666819507689818368726736164637820024030050174816326639520328118718275961221696192515530650432587949393136527598986124735293526216384692049013656489414379314796845224849032784633811106237483928912767674064846633099754045371823530385148705136822040959733237962860069592366810101823186412555793917613325964438745530866493394393501857750776993620441284542130365338387320056609236644880841487059415919577750862955871905428796403004567596482111564485710713744513398583054825169266249408808865443195048957439771032928763052045514382937682294140044116219640367445361528837676051298566603756413915576891755942371939065766594759217468211339582812593969938759166249607024487913119619850058257764171364316978009570370543153342717974003437434287854162759153648913542856238648739171679376786604496939250855376903691723938368450594695672924375573820725741920307435875228733585358394429008056405938112404604973326858431683812653791203852430767826630695377746694669841240098829678112824045734181825632262853710656308650894311004905916857733118778594307551221416296394451583425200703611199615335336001362749234865196599912564881332492538527582922094309325463599869617307107665766715347026940298026308700295979868227633985330787357005116596796331225972724426371307191049968488080888672927475006295647130794991439405182908952565203758274000347125393478563662593442346940448768670588473562387863864915244780081395244235174818742929679763456097863944546571033015438991425131667870106977687166509743392752208341864023531836387381260808621126316862850261784637000229760414776271670989413081791336961864337100411865620380814447755856956964113834162762846544909810035089367403972093697338311344187768731160089333996080033063427422065987467270843160338161368657429047676823433541059445241756391675899325726662206298185841683104732479357104838576436248675604516562651465495494200846514419971117007052928682574861873093609163762114755621413924533763449882169978137601986080720807635049610454297901625766019750176423537664263214349897619159553457312690110678919139739876891348969940703500545545040909248997872331447348969220799487094474775532320882077110033105475708959499902498970013159351497712083180126482171807607576053321465931355840073194129962611426976813717383426064097764707427224814631673423465782568584003438004683920320000974632480216044571555070139678102428357531705201986168289672297230947505586204772187034840704261534461292688925923733569081657650834811298905882965690600751603852062359435756884622469585002619235862549000413276205780595183771450126226863927860318592087804707280766758118417234353538778867350078097603285288815593712633335232109541862088347543003998596563286887677860761452366226777384303542099927818599578975765496991574921507971284488346280264470211513182257809383358382001398112041351786623583457079703970373811585627354215304585070130861183879577803844169450612809713432657219015851786882731706128115009809841210822492363149162696331392853078009483618091934564260622601430115447557467520801097132834214068466021997881748938968975518640679854386469760161179209605448079967036658552588589845008734335480235539330746941196688240994849909504121982624126902208837339945153625017112981131013157263776883770035682844582942566176655470533368357373172059958025128747828336172636714063269298052005753699606480483749271811755032811852829587511027748240283407900139790274939993342036164819710598312272620807653691638594150830364347585036937164923937141687410851462363580736706926145803246891399504422452251807934593400129598351722908078157454069094580312399949672394305927031144949355321531127081887708791665589694976546891684028158099218306112389888265393353141739906951890249983570276083812680668139562700580617634281784329598609099671356238835711369493070246979111394713271624601392404806189827580092000386026612664176774310847252901460561913188625858591343654225721214794588997685259715945574250586298913342612974399825898974205527602615379509617981732640894001615339436111109766714617597596169941730690038376727407096803162508386341814205315353049570337483686468982732404518388241805451571212520819063076265872581787973323155351739351959536588310556783006975061053060077234033731565151609384868046387655721200719493021591018731233222032232879719875671946307845015454207897180259337286388912375220442229192762654260241073859546318440016795508390627308777643001475390873413887260530527710498452394856294262611690582684881591276138286825720644545195508219853216264023452754184517428144203677789815008728306778881216760477393061481534398144627622125742817941222855410610380264374598134810378786720954490769157049293148873015725425980909671969844235193383411795652976485282289107564595780083303300672100735481895420172519555651233466513413117100757106410108466944855677337528014435694748975854028496382231284922053698462044899019475332801135570459201653707497347471780886942465791396869810949296815377199782368472961623864628693596792312088614832940344309621825947094310182892489226779991081858192593960591742868953591657661610537596372621587945339727310597274210167081567032581387709158757948308883186654549578328238736301419150717584359950690397853717687923465258739980940081485184902671736278866309939730856240001170245872940929837514664761815440528609713352480374210421653161406040038504441065028172374512379909810509448090436682714692714890402223727819716820845337866919795503546726767098429335515544755891889466304987331571798145232425897493497333776195385896067554818064060133232688031693821116383397592815607628450908657772600621517461882900286088183230021218728141291442304017454487535164110906636520990641402290005232174811407559256549479422319731787488335328587601488913073155022981167261476392180848534383111485851256135516441107228107721543984542830710220852257710414365084702164007042237517968377505986276242973653258309302748534750324009230196155839965918780102077314077785514425635485862000579036379093018612654714800381129408137001768374430805835316410526433930529683263684084597322371849537183319677421164212827267963570949836611724410022692185674590765328230367182594111505984319718937004287318927110061724178707653642255321258693582327699210406846987152637803470161816570722706173238363179508784927563994388403900411931347451895914290308710763772091770995527382886039768453176311536075219726838625283472718132198841983679687585276658359224647540266761339424024329600695980700029208999081703414785318510454559906033668002687946713630768047069580149805819229882289329942710074452794635170986173494896025292857430791597843781649639738353527547201138319538446768473403056008171741140506320169017329845785430017513580116688601324912688936123512640115083303819324183974660260845454090580353655995030978674346138615788101050859579281791103694033756660615495222738408575393924296133376325454401189217479554203806313734279045564733356717436332421604162353895035556595647329282349612953017762254047114432554226265500668451002581366048465412484865310873790325255277215226019542371702323290268315164963686933382184565055267417977232599343128555197455864627392649507697809246319866630640459756772586969611711178915831899321045845071065532574970077331833182239805777848116482980889450120905570444951170111485892957827687519731110920261926838032014102549795432588297344290992204036027244248536484070087923748921003875691436862466679237795693517643340390503148958246308165521838305236562488157471589250089901408672353257188910261344455071910673631252579581759278677432552019023229367329715483908484428120605950605727492804880245744544724829652994656323440075802644339994409047347525931890143734016436590923196611920708044039252320512393438854358080860372995182741019742362979805263851445929190874123152609917154658919407056639052157978594514829523577613951485922653264848936227720188646910085699531331251866277579753220230070634993369247531741859232069381150276666736986232056155111074381565454253749827509236312577729271625970036542721935693806352739223426394353328666167840962721252250943391748970278091938474006820387249579563965153553592372670299144321506232866564538314879701861963955493622889214931775752490647217624026545747572030552082662081568586709771331175463451636600665523996786252753306422943849289085760962033606712151304576745886078495557085121159433976472822011687690373041742311916792798712920306728363854892417659994298354483692351604809677862686192367936232465211850765432435299703506821492758876321142313692403659241494403994526130890513851371786843057506333183462269642767817396559264826871125090726699173260998280576676350309704932066051277369033057778932540299461866918298635283746495388744432743233113429685588907759010228798436831368002119603385681379335200623256916860310972623105879497175531093547147192297270864166473399451273357276404657089773305014627471723475837551310631459325518434155585135775671361079382272799778360483268978603124377158828108378564030380992283383168588645942465912111046274914885359362564218371265711351718733056763729160639508212074486235465286801283101901412826304943577795158796189625619569177245213953440152019030364533782214191946665161360017643145873811004952456298533390216537379502480735038370617746119945287974958611924445107842464190348541549396499594412133286200310751199152507251796846653410301482155734155869958266109810333525761526749478700306745757414785837616031254549102331859792218953562821340839695940019675431184722313435004274923929951085226067212154385366424210138730047638195325192503547268825699585541638974123773151237373923828286935678026987821215943022875531102649317823743518941065600268048408188003996596663555045397462850346341949758277181076740283590216387778150873740264531895672445030291089664152214437022223721476189466163034317710767733578708293710001893541779208171032016420774958048544048054450570299997475007266618988058352941368549447846573270668369413797874832448306301636884713342215270712575858314854306212788266914781951630467499254995150972634545277862234999591280422172173521630712586428914039178876340947686801762975613446611103947316905071725678055276975341727865766953926677883163543065808282827170860383909751331691261695133525363309159496349385816117515938583495758539846903838392476477956399355435747652740232786741569465869355360884933071134695956845813348524603496507225303999845398699860466973062728754514439822068093843676305077803047435049986079287767893560680681324312628298474533702790100236475740827905429559152906508569715125216580819274422989481338954585179285099502245043936311144951431858679303947677464196113673109413480434731580224889082088256175125854012154978549877811536006049911248520852388559782230810653907973817470673100613608332390338423083825100256515454413750546068527444711366426030997081965176004609501312138297571118813909845458878810053466744196367663508717007077503886079693740244206735310203505086825127124391008374226562936052912359832136903786434621122726541096539862618203109451760236651094324978588463948985042837351874800817722886803704264944442000860757083426723347853334893065383503464970033143503118753263856935781909309128674555387615307502285808921585408681330487648000397405676908831578743026230623992523966552214497606283832439426238330605280703354926915509982143749464757878687347169479098650370046374752869773803988117120608998262500294535335439476137016503267029183826253518118852372753624430910449016913475494508497309950960374021195287259821535963215042099666565025097952616732136228809722910896750136795423013412107184738166582578214143659116033984108545018885133450026818952464415100284803234255248662829246890070078711802650275067312871040315850574042938070276255978934220286701788899263064684586844671511993925331447939645426355085579414776001690379465297944371583553461454314687531307267661369390631361849622774878958803507678037532416945616374956046383263045456205909650408509142464680701199032085170413674097968856086920833173014639859172190198383446728622694446953119349288921265763691671226441944499373814807503712096801745136002965457351715168127382325771409801724736664851918590857463236457042733820542810167735471659884524710542450313880049618350618343006948470047906127406183169695337505318385392724438817304813905116106520069580755724331945752923013034517637703805365798457120882980924604881042112258107186133425940851160555449179823268992045257680093138601290068173316340574087653727251117322263455867875085632862357130169202476200822797794794087327212293809772362770639842412327863500789317234007407783939428146792244441178008671755994315088757581541698907564099922929862915740146943686547694573294700186531331277463812687826768574800093701987523540582904393616179486128731848752591652785054701294124724324727269997158371505118159212133094802133060987326236386809916159372108814052533682692914142573495556191797134296829227188377860786704645643640743057614832079992511935769020276688307249148909244040208868383663703576967253370141866139590773370128616509155068591457733347911573891108342392919837014284973849375112385834401541723398717572863523527221277977300176266035748245719460465991359675864655314641044287490866209784527613742959311791278285047152837384658045218329341327067199151218575743918368766910036540656865130249792815161627807410644093908443822449056527500959470527443593784424132645380000130144682135851869817122575034453451897453891734636040204495531823952088517931575502763421805976957471540303256604053034465533727899383998497114138811132346022442166370758033524082095026475559143167400454605100525611187789182647174306073515143089338627094977163114533605480339831307004085979625206179939175759464843272190553499135424414047734466245594068021799707207574473593008462104962084232089929881401932524426712889973672810358940650220237728669325511133358309103223264603172435773157877886521399662690062483990033381856689088246342682796727818162048947060216474364334683556027567627037597757605166915449807584628453041565072674978945833706939479092551413567142944238044634975288095205488376245587662810013627065511078930358634071409414169507571283381365132040115698718593606487600027441002893160381828099833236189275290140383646545581882363082571561144666572670151654960222516064073528160095717393855623291411765549173088891170361946779141160325520776634658835368096644814823779697741928654212288348457927033942781177343405376960901367394736688609993412096133610777108656960702461417455563354637934910873055571869980515912599461277473014630771737675493217033144457524666949669248298603686167445596626386340152695061263857588966075537393360820701310185185781204956689382546218717459229016041900844229682865694518714835424953313811192747116825273428430908422003511100679054703451650929311376336048519832631790310524753765517285026413227284224927228678061929925971524702759609882069137326465565652179565887203364405251578952385647185711322494773683588241205809259809578810355772144544670264893951945509328746649875896408310279130785852305522733763262987255256230116516964067528670167143262400339005046473049189347702094523283299834003439591972782162998394007354679416808783848932203293172986898996574080808895471897116746144741752887575236998487606841232866753510861067227149358704986189667363447609030810904561390738250870890179014719149187442454776987796548024835831360909944096406774464304684230420149913883221597051035589302003150470442608430002791001196033614541188870232024514134488221907172659273741358306409904594115299952342402907175812073480377324752892653365316342986344111985319221627650064472485897852342127629740746234727380274509386776669081562395482508312252178785665618850048502091284474565698916083147190917044470465569365828081103482597905259612865870693103743357376491942835995700965874008718531646914098333982116296049494129858371761485143601799935502315968512843427679161373772568207519825698880463459622130750574315338144266568333723873911065350444955042933775919573780522125511177817376174078700829322724908406856134713065914396944478546252750096734444277443526632531979565346850492731768625024113888734273968362246684330082667144833383849996581011460116419508397487681475904904146079877800380193789510641408317104168679849288539123895325430621419104919051290886028248051959925286342068461457000369596416152735312368091502583083043337543020674352286800714230646269613380942736804579957010059705632347839062354654067744946652672241926366818352588267519257093665993002315382035888569686633486145931906463654112131231596774113246071634982732348118069122393018862812087270970383531272520263624072888030339372629682537400685077323167746770652650050088063635712161691767479151963479475268956800947655034949935030048045059799721138483438724147346382426882499084679709413641171216190200211127288896742639171459452909590498693906557674755664663466282070532216530067664936461771406173295097694088349340266980031462972347685444032479119552840022557695821310172170271687144412038602608130637451905509981247909705261491255099987505661179719275613393281995664717027877807638577629986751978026986028470815691579570901064128107336940751198775665537642663411271190441599657132262475506377579749508619207030698072211080830323067809764190737687126209840920828266239972408327213612994089319919859860063539805465710114265415186956882994491509519489008258021228323430358140819465754580721355574622833079566635971596342295423235980504551003965139059956860372692031037697565733187061827288753457144143104453850051218359927386718353163204080386091785626413231242780305575274645866064585593813422916256162068497647981282743961660638861008268700163794085456799418473102489767357178790682223778971400010129148325446348684500438565904113759493098809651171229720515761872368722655417685418903157940493274428382724873422923780468950655935158058510045104572334340764121582917588670405684284283945279031444113827668457147490396766104735551349388327878508860658245729783588108153751512478987404043777495450212556395494086840840831211481318089791144680724222710690342955621823047261617630983114756404619078146168208068001208386810052029339951790639462391636177264869638473602922025973584454230556425130702361935947203634101757844426498475570528825753156001693015469328120350743103276511514334392290450867539560878351972663396174125719429147277245836030253595406578403994135094207681046989288339028899928177436892945971559470711752407149539815443492627474270842791641858480667598243186259313628230712286117398211882748085253611319275563482835947486462168581560260852374971830623302085341712100723409802194819974299819499735950177176100624966097111990990411076446048947141031388553511149350661465172460537546845919485957635959868986176101812618075965289683568335830709010593893252401635634751770764166001522457332414663337736673297111248362790347142644825948176919411262888145066588052854188198328589926535419200378199003248342443850977996918219458851004737778786749003573547891338814467841875319000678424516400268785739731835653287919581781355221674226634893255527579822281576449664009157087590717899506341209305520783179525570993666178214825254786762073814837849052032487428281278633966024352249364482067425484806120163002726857434020763871480974827136046512831410974863364115840983796795961059484530977737979658129493323635108173072512129282397283207459371227813010592784051926826628350969968763231312515291537782701526618928137533447853336955672522146623014684127738119986045173971736555264093024799308049531563091090798008322411054043194167930305972382129806519875087731524604887003342622346814344823950812602677421731300832555761180423239146681701919932833331723276790588927574481919468944071612765414279130058431030167972086647895274511711029541744875678026540046474586901119434151477925236544647180313527389451349306829555323308899231729812596234252185316376603784040813674574502459706692734368665728022724059654622891303773209630837876120334363539732732787082514193018851916570772281945835537584473525610222611377276597834689747903474832749167565570826403023616038675323092353402556982633815718614298509690468878714976780821415207273785261585160305104975427678386358989198078279814890547713515790511277512890277559203681987639887881936686610808363494838182902858921851387184706940481766422704384113887073603619276927946040790656512204295137576544821438349898066408488652051702277434531363828591310089409831539942515042947395459085078981150842537742778630599449448594095277995039305177351899166365847149618506992701020854973366195277983955271918902235058309311995970920030254778937472165905031487165417721540478446764546155862667333134742687154246691123045469800528855014839202682812256956393364323454438095243047091376536947555908819447430059165190963514257717765345221288320263132801037387459951321700432468084334403894539101787694356426760975238223138421528043717544454018436344602123677966593486769061992726733039967590525507159165941130914519305020020848803795603250407063872098317349123731795515192197507901990342813916850522073864749984242619169929923231813689906246637641851614731276183432362316299453987748541586041616667216412087514561496096555024943982382618728530529975799770796429868774164506810795953144526617587839060327466087698087755649482765839836710387295072700886749102479365887687848728271476381537930684259916679396558902811586206821857891121902159075066626897030714464428181542846081725241637200176545401029034762946859865962253825113648202199000529173209895481986370840145418984544250136328342785580319596313575621606287366930075873914530294218043312932508454389488733099653646441727812701886571876652345661337639310297474457622505221885168910060241437706710309330058832983560982338111267351381483528236871250509254231460938522905389028447017725041841645167841375837608265530231939096868782152286413046185765972247233600809677919820756518445493321726713988538211714934531322467086906459451611389837577413184503986281699760036577683682663450297303266929663836183610502337123592707490507852030996500749675012695109144876736411846826965753427546003713025308850821298008017192200845132758586394019608854976677959511194708525592233406113096065125148671771612970466319465042274039172002526870681290016339423898345408060455631529637721091327398859517632253663950031814217296681651768879124977958875213361084832147225945346775511971339222733775738345140002815375962566975727886104609680125825704303065881184833084535932481905255618525925375996332125342416214349280408740347532986572043741024191159201096910809706046945872757170861456620952094218155376330607601432967728184459417315791519139524358105440283952984404532204524243716412967289870633929453127238439417201421227617192836143740540833961178586560973605015306377376806286895622613132033966616701833751155204466701860988793290971343314261283555895252951572687632370334364038098857482367707346990695790883191752269018175433063617649013419351293838537347888801361436359813919690923036112253652273286077862628131702289935749608114182576628703585481392518332495627226439779810642093636245742542640846845180673539482329225301327689056892042216604092116212636068483759090990641500694060512702150655356418820089963558355274166865853297535716617228746263115959215528727345308439903995513905991976796717832663565623516351848501908685460064580064027559060883706145779872073742164056445328569301861464405446031512857348048082687250563092727836056489129436468047719228422217371479636851840964333249492287091495291724119392518785430430992561598316311583507005642308720521343009278426978119968911952467645730531831443303494583494142607226660950141261541845150565335273076002830948755004861205037208050798312489897285939858286747646154781915950624664406511437272643516686968824651035272599803987649033372352079210824501173164452054263451449100739860949713702613417497986553629214728300496203748347786817883291044286346339324334956319614888708776901195919809295319333648585772431136179548111331425104797264540480193388385274318719183141789354392258153955887160848793167293163455548427359457518087917384255507757288475609615963467461058548401676504532581105052675176144965875205912414370579732402815928948834376358231179917931521798523860860377477022260070222884681260213883904322768473342374667087520206323822791720150709020309176390883568657613362827706025445518696377414592355945596573848096541678348854761656430604921984276188864772435463906398273180831125074285239457810212678507227306740463299005627172779249960338021208660527663673202356185744872723903557273477265316499986934018270600365023998609755126614354974121286953985936537878778699005741503669614479824187035574186338589660718832858875782946446396345945778825955750702100998888240057358545302581546493876803707814492769750208422543005594020798543524473759565444930003609314978834082455640732698000851192057168270683510911924811138265368178315651328011534857949136035151874124396927861503344865070769172200268184083753241692947682887363055500387268851704763127167475562074367840881637640679068857375420458010362181921405373120244125814726338233489554556242034032125765937549284012243701696710824329997037615716956902160695872061965274004584549912991913840129480925725527158041651727328396265950382878857540347825697865236853734727765648104543160830631193462964247881956275660704901129910167850273402297283754498600345843251728526732644444966250231938509971418231889437350604042532798177945353470929351797754308411098175592910252866198568846892744520067875265149483803106484385839858505917573062772104002274285270954232542805228380284886424095634221560292215977589178409029193699554787595559195112652106680423299498706203274534726687224571919137726582113022324972729404349266960411467118313924071778160167719424371409097819992131669753918092197268411552416374086968571700012458808385987418502905316934175173000640893800025506599735136963560981971067348805007549348955535559380220110687306212567468164994603276521545334670498315992247618367615814736966831684472066484722078980647703253838334051502915385959069118210918226266191290707084300402647485961777826821937931318641906795571808851785473227239011409156494510107861626009580658394842007469235756343904350791468449469678691049467106690598176514553642622681696266241833529851370617169510837726708540349662609835449519683849098607367484257916365508108310164781301998535017944391945719243945074855960097711967626696071342501251138539088779366771603932510017415181803497034489317059653475808941213350314965435102652863898227478629285836562130536900399991683062758165441416569853561342024841695243170961724008814440041131272509951888905984689551225240206749520815754112188304413491978284547318023599252610783445455101029806395295553162979682306469759371265546955127366818841299400374801495314135842954584678201034469085266567520695841731436798833068853230211569603943658320862420843880108894905084314959987675810405515110487183791339146975408769630320883826279089465007982237334304226113084737294888558903384837955639659000423163035026583528966940656624698965136356997165202019486272204021615754490370962611854233237607054234163908363409642724431445099084374623450701261230172664424923600395474970895009383396428702427902553751858341830724610181485180949893068338573821387554586971102772122551842414779247548970996078652252716190854358011726086543364681166568931975171226715890988531640306415613275578000529712544230622974349893790731813798794259470688113307794730503935737300695330555704835253172303112572512506440717382400744950778526438713037678176963708031505670781170425184331982069047825922340145547632288053616091392130884890099638809712337457008884163391622940525415878148110890721147382094251848411711099375828528476824028530427019482864511604988435450926669994201750976403578024968929831630566800539851822951004832248439064142608624278443420389930062438873066561439498351069509361989499423642663138253458015833650447539822632398475135893599456160196910140287589138809275791330220186738446618005227756635352492098156810981716380002447561183983129578135359918052593961524203322368966930054924977969775788839910434591562782218588342075243565291472924593086707620753201932569990334002804697804114552147276466917769255539812122074135396525882208614871765103962946711003184852043787227566047497142429575026010628811354461589742960475506286061271799560688232778646938803117108885246951698031575601176203926095210467522949044037479700372139186547440379230973104399473977996687271973007666143969561659549160866591559460373936388949578089215653642631920429148317123146812669686168299295246162105130489065614799070713471789276724946741798343043686274034074313679564448338963826486020252452206313650112450729634639223381948108654754636891164842941493104430696586140685363498970942839862118534014402145966534792040995937185310366352880981002581974132009446792679806140989677107349404536443727459664379483503791158874513927411373871176904613123017091970889260112571597246516049848707861055839250852761568938518690185438279747174960136144035276150446502685145178935498330049900438857716769635317633018217388517028102179977585099688403774297957128075633387830825183013242968491644219832226130209315570674535251050587804242005506364102643470033727567958837572584554487523023621313112796139101250302096845176590779108338515289093201715110486115048107340735551394058505922698831752497821403801361322984304662478004998959028734228096510646080941626010697986865299423019962884061636011292221490629096676814419194414180399309906154073418893114014478361363887152290754370134725805004220099903774535430939450202146518169810604937249796019320786639455916903184098754082679656911572927329992199745395994677455465887812400374505716343195248989463920311646502701560330559512375386743081062856827541945968171830672713934452218288875111266188727677490930671931801415730443893126906182882515156478465775465012880223797146160836805985068890814571610753044105385412752528911962968282038785908279292128914523386092169466627722549450148540170261929865211833650430455119530928859090860937930660785630829165598041180607817727726745933178445933648881643735197311683776256296445073373485979947325230212944197647476022209729076677502708129133577171064373585423611697587916633362821515842159318877554848602214140447043373096870922008714876476479349662566083825469732775328501514327646343244887182762765046983487428171916241153877002181699200529886947613245672914543982999779538115096626226609963878317511200587520867148631438469474172245369334328054611347930926089262239745257529107138828701928479512293985922832372271755647957305928305072051648260370155636129109305526567591317263493168594673732657488185667534483501513597490083282776454254176453805449518958433999016411746686905546185581020747734145903728821493605554131074750646905263095701237353851031461050473219068347206885134452679174563213324159042835173602060774064926993176409203574510135362516307055460561282380170875043178857049448367606066167434278002603605698827205262818307266120396360374782231137121707375810308085516284769878376425568235743454509224112249791867700163307513732422053180739079088732225463977623523172448541738956228938551879735789106155824181352889466250048840448767182662892925522774194944114722378381562685747966214889155315294735925925922469936273731770142175287953254301213353817317819977111810978548670892078581803171607523110779366137413513195805182410543738981160333007878006854928770038753702565565949555661853203545456462765950195127194975026109952255528632422538278348352557475982278904318766128022700799015208684255119806646502673002712011302433050571094461405819893489008825125592425013845562282391564249894800565053213189781200656786110290755364889373829798391627870744431522516143909247986262715005580204821916151213526451756258104805003228394975438942318553950845740401498084176382631126680624010111727809301685526730649500796540486609327218722314710218597353733416075867966602327310007906750301727862079489286352715442908464490222143740816261060857714024095189901863501920270840402042486351802530843758801980098969654024335128698048931421751737093297960082756877385561314150993632575981527020036266883357355811070724498646239024943376772161100693857755910119803910288011425031713301888565064035209792877774256010402914132790849045025989557787110186334615275426610667743580552590319850631300913798894451435294492295122323324578740920885861510674562358846625263887415511082628231815893157676302164956053492154460046037334221087864606183860875225340634616414135826983616458250125332030023422256095657302549929688957303448810103888568556454694374196728463737544663980142571384194970070080068734234010687119051251951923678204894533091091872753422508444679182013343233997831367500092412145664764249052855842843778449936569660734792999508963996902245600832606544099428092854113813779277029535541478451688659894326480940433191478423864542305466092283981721224322924242095272168605584412045902096444481761417196594656552014409928251308145871729275990242117388937212421680158748848630155358257331094963751206711368947871263892036929250359184420066509247033745740300540148091801394673555955240902219633175109331942953613289896861804189727278557951731724070239029560417384171593030046146807875211997668001041091418459222287870931053328382573476764281142323370495200480353046232518269831694752334783744562213116415619625032691714943574953816772511151831263791625553204320752328191415496074629019816859243687009839036617600797400549841538785811503140214135698940364020123577442108358839439703030525896951657913610259737747358223231217959747873725935825746790438283987104915500000064102492388780591573414199828475855571268538797581505623869160823661395091725584509022667159290376699997626062557497508524137136180747071459811497244689393571556144192804961697418163487096187011587753226959061147124984458463967026642202569766724471948614443462007085621175277795873766479372510496488056256970188326515748020246961307055800923536947677823821244950878657881593790076032680017432219719412129066910370464659240609656279545731129268716092350989597897452969712107854134186048810315540174606707915539672321727846324045688830940504026924385244620226508406181467753878182293544030956192606041136544400886190722205880172114651232198043951993999211677098846844984769838188777162541286386552593231756738828184072889968313630888166477327481160944144745359039913160368352743814875527248641334774485518039771157421685600682899057535604913174606146871295595331281719895673667657149317894931118958469251896338415940491409846289288573430826946282407424088539700496150856125651439530098670373220298726027697078493378467717099041231021561105216222928339906463461946147779908575974011374837026270683063070965342827403288852973574233898244678842820735737117055480169452179844708078564568739594455627727843715643379614416658630969446394492352640751583769626989009735630891324424465207217818275225314247923981059011340523765242037578750170178274939174706815314007992685349983149443552150161060996278845112194674495500511476957637645024109506548395944464041740377330916759794143569764395858198985206167253264832888167564146038615465672034694105883741080674407725947534068319096885783948585931145927622192862430743163946482692601751186301835010259474913121444384390134544309387720574590887355974345338981593071910262937551892458150475563469918903851473514845619992638264873314537037982051420751526514679018637534552788510762557961388192345290421817067104051738983730773608596368091430403363127213254476426294443289945895446402697567384190563685110213155251807924531240007871269329999603373694932574436283351224117709678652703553993692990966873499901477830941834829304536097620365502372948576219117261811930625821325706716465716808059085483751657894887453999102386558775953429067528140108096042553881869630526217900320080194113068426454152038462309898265895731187893348156439465319451479954835020508876092030831718134285754368956109350612233137425787186811035241417893751001349627092295940410066108389635500703596414955152627847627441271262055297699536281441451084526078899187691142114814582835591246585818546761238359587452113885828708184799289430262960033378095050160155454818799755179134051791725617466236197750673688723634598056954658841233653935864002728914248242285719478874911721913378382426406392550117960787741532498504169929350743733214038132118055649862626432240488453701949009065155723716373364910057517627284134024013635842756563168338125458954004743326568110458102416681991576789105256248740251945891726491792668398053233882296689697955344749080914311867475299937789218427774170990247737900379553012444162804383135613340034378641039076197181926845553129325971892465040182146176698953932182720796542554853824143805844232964799432234909417568865830639284148531030580708816985472438839569739250604206351479900927872721580122923618432155142734901323090700633366171926730834893759734243698405311022018634797065301464520598026775012344157445448855828870656616871989433618751410774322577848487022356556157894084665838475905870842551052514754137826818219396250066290052412385687108239425948590584908543650030813721761764307475887182967260226075395629536327124488758077539651773233044842279851982503861869469433643276094593852948169062341973650022362782513552444504377626742575410793731264570854711486962009684100763093027796858337854231133306041335702829469694333443003526093330875618672621736159847649787827498724315520623760782292151569780167254082810931280684897263165350229518289262935617700573748518575293779675919762145729876392756220073869001964639135977006616809363100740110138500065268308107290234784812224109536327118728685627986356203788560498271811817015489894914570949586992015486061258595188985646330944677307267040317659617825190383015592712656923717013755296139728991265335169966069134431005567295822362283202368757252994198603179563680614803629692145149490124468694722910787270629554930114670476703490744670950647243439600910947374537430753016866938114033118527832863564406191760897187323368239846198630325072772914811381945855841428112866536747203054881144566550029118184368436007868446506628477749981265386388772491800187349644272892876289851768752149139414475120498261268002833391779818717639132995828988552568429096936896505496200209160623662483659070339382426941594726473269281736523046169297168832661129539294937449330682933950253099317368882555782484602088667904987587525941040181817174526219957128315208898371798233736172254815253347649528958268139339536853851849240582348720312972237751243116610838438277462615862513005758336397344352960553528397075579986321683965019100128771826753436885630964503512183969963294632946855399975159279299746880375643883205394534559098663017854544807742676321571380236451848368320902653120163406067122202980748159633139945927398932470985309697664791342279760128540858281031780897343673185244436948107180121354464248601754076707418111034422269775186069627736391567468611212297442547991108420587785525914722688227127857623149281275195955225135481004473762755275347652532604095137099800950306705026539343549884020130073869455272555614178490881748649922960999409346020522912107812219905793767757760700244226171729480295069148058983242240633292170494629124010650840391586153724447500458914767697772169219453895010938169852029592485845773813050920873157805236541127964513718715963884997327482655666521536453327638596013992082265593833468536799639671293087536864139417029914833969026726080554422697232763968954731735976928116265201277319292546499634242250260602714778072112928658517847421357008840593868659194250877160237889103870017077100854729054652407262635304537052278710302477896825066886500935370207574324285187102941213667434295287466573856483156647904563681342145051971387719619422198909249200702042997390994997868775465136610496405412687426413932688658225240652839414517642569116510919316710042416377375192131611410814026753127956502196262869406992303561336781269599387787002877442175271628078026937532031538811421531671062490508461169387303502093512144035517162171139053287408424726340807515613589615009606178917182090290268395972338257778385041610526498602047753363734265870995455479106336866512773986720915593659661391144478000220724771387430223351892445305517198902331642360657762378229990311602571728172265792273616167281858572996500530990488083513967968850020577286232826509446938847116377796590717940000501819023824446902702271481787699172889132898461814243252772898987966205953770780722946751510520850142428286421323283755562895879311390465802538211461745010478384571737842800681377144645477550600921320913928987175761977134952265218136244330760737884791219428585249680151320192293187105231422241546651249120182985762550702141127362405430488638556974603700297946169263845856592153376345593902048528849020318001318946622662406563852170385304189733197985856530430793709457128287200166850867322267530218366172772520081566435175154501909068845472637846553953149105116254164250872238452028834214490169902682949556364474322713495332342180829726910594668231576786597101089015960722947705515700669783360772214179505470775870756031927359771061241634778902643077481532143251805711081890000808108687141734322671427037174765643275929332688006454810985457246623069288883274080967426614513468178855730010834109279904494026773478690772678421212015177183011330951538788492191496290363356124829966838837919095539715049127114097100793816741264775646522366409739754794680083832520152396870238573660380243056989796573033768082102064940940214726902638623669637974001125704020460560222470650028429410500206419187668100564421014955582895012450949302495701646916983753667596004695574701217252252841664154991456039763284406047547513254647528576937971648926955658869599667159364408155826710578444036307977033532002897403747069935525268104839373867445566088045679509516870943765695742213839973878733054398193923571261721639992680274953108917597965126847848038148844067051695528373709121561909540804852854593612887788998634810643119200454973300149958829411811373848712873350927413990150686012536550250538882240541546531977956660158061724482584371324585454557115038178959577983949796790404922255986466331978626157907949545224673560804001009830865983159222424105254414727761410201729081589410766480800399409235496197045267303758877435284315392192120647611512023726691844987182396469406299294010984858360111238286438255432362631895116670487681197625527063605694109123247796094506891785510908963785800430311096036050938772472181638903221595307973867766141139523036014127577429574991713648762716024504292045119667207115468262959941230082259782249773101655530869658812670642289538722691010957891782969304646858979280253236613516037140934271708049965419105730728488666043114078188828357916348389443094315698241891942578841512310424304327981207772072198074774326657984052685366609690855548414550139372439149213605172872448887329589262958087497593578539645862004035150556731093414146645139269018203713344477373680899280220823685154022033987604553072888550823141552724844687994544934101572024351978865771019113793767240414571059645142660491563314985699423466449231854728233986238358682011346415122572380437613613881869535125435357407477595501123626908255252835533892722294167577209896025569734076081288188325210319920376265979566520501448958083433153886141197545580567774900335415961194335284087496513148376838166874936699200861885914064172015112256364362530007390219349124984576646485845597556869608356195632756806218542717622527621915050386120369896939552821951730325121114850939502104968540895460191336944185429726053856808608577377511155527717782328042663028409203084542688826723793951539565074992250605998457230488461793433314433598920115562743314474287223010142815194619915447764902449116942192161476532366430197212272377768774915930110575759475678061501868031225345403951747940557490133114809622313938817365843015176730510389695131317445837604585690024640225107704403481979190512882314221230565606699610816883863270042068106492406269403795106936679980630386471313507838115140623873003439876988822917180206299930382460298328082863216143435044723244659348189476316904619503453958515053726293719620085974873577680788468849820780730317881818858492275073713627466790968763858664804777492666890649412394751640798331842943172136846344194367511073108808999956775351122652669253822804183078102686319351747807632035409665801456838882635314780960395512695973422527756457876459678158241281932740354597487995910863766506382526559394249667208760240730762937174171360244587297621723047572945994324443119822713825879514289100114278676044969663756438331489743084652737285092840092246349306253870154864228948540695264032028653796725703234599098104773890069208438473758146887244891178114089059373295520240434948747278846741268000585214259389267181462057433252725337435988756926614379226717282273998149960900815553593793505328222722799075256373562898149778117389638910141530148846723650740708267848677005698556454928941177436534282320533925327847658950055944078197274078992753207055211697272050950107909298412973428810146119324503098923311504724542109377651071542898724603919537522070019982838041895072109241380704055362876924970468455249288276708679924733588721164700402338917693442792037521915785288447594900623262421288877910486469060523413604619939825386395813685931934511788198729353615298444578604351231001491766912781475592942459974839563449384631715761294250325889645227553741604806602796537196472773360616953482864030197266243242036383620046310898000721236045016745523492572912510521650810434820120633517415857993999433385389323728738293018334412828440213706599482673438587605960713745122708111998275798234867281822624966978965768088622316649425039921930862995771443399464669284925977626083772890657043460196585034803133741247723760566316819452966964105978076639720212854824766289183477167105037296142433226569397756883505225316100644311160353637157617887764952093710306285141875247933414488383834348136248114569769669969122948465047195819609804572310766216930297630647113654895331898399211716829759958627553734394653701849671661947956308398004398884091215740098683292079343524587622281980043419518233245547365518108195071487629466678625869529903302424872433563451882860554996779174818188188191783711121406261137568812446639388708294273641898592342418464131228961568644295901472288399516476839521132727614885197855985525503595697718484532138482118011707451768420089990797387493699583710455555422537625144478032961236718583783728131946209953266033073645764253965684353079999826725949984861074394686878444144354243585123402188098826760976849426751416513962264583314674514397204180408309096667988768394517238017794664041770726605259648854431541638064092502730918082615677961817232819421580648438646328365000780821996287016892196783429313602541553120522078764776715430075599320977336759697966124719148985935207131017216728767350364679231544017190352494919416329402291876055536849932031967077383211009242540584440473349833721524672799505233038625035529637637689024416636146435982831248902521846168767112551317983086327700182502355143684919593200406429522336796049287582648543350803444937128684110409931274998154534783647932527355977870581568051572212173586570310770161281727418660552395475298603506440625067938225945934915097521811248944942115334209651400588226882120304988653421162919856114199510964812231055702885897850644679037386280386914109404019796541245909756518646914547228145984372475887412031313159522907491368340992303466090265381083481925508067879020793436804901500853046874883184967963853280727555673128202368042027401274725829309899782487986263755894578406474011395069127391090932123647913939795337977726126585903009785920419544378762423355824888100029053782889708278760970386600131837876701935307943029950312233272434476117065010861524867539333149341049880552081262036885872894475006215946692047909645165276183153591680796772673447311801848829005642357012168595661503239588854608794560611922568368109444574143137453181341460313579936627792352939341819968407452667004189804100530796608145755727890601420527347632321414132491033659819318341607752386285298303915655003455551126501922287573971199223040942959889126175987348969934165198415723068589615799596023006617227837517061697591385984195320129393126732401395631485367781396479579281843031390153059377724972214788229463618464765853520952872093267215091584803605846184461801258773594681786676891867194087628875528436664258366902562638921862994082641860438407680955573569107977572786053761994904403669533670354500286285892946645404773590901329816560421114876329463151484851125589081202008898112640541361247859435717198682564906198616546181538801647474946585886513366613070435419153895309445011178883777874126710475938340348161474034284996515836127534343390404616397904640159177721708112194997604550934063671385984160630052186427319472708131773575302904422319090817074187612283073055722269099704315420097920476059465337651094034519915178601058057970864593334637393986723875582600413263828997871540276060154381755609916702270276108946613718853472357999905757195445758730326008485415295363555466978276610165583685769044885519710421828342771589955538886380442007856334335998777720153224504409553395494936391847997367107099524182590115124385274428026397127320441949746184061015857646719802283683165160939790303128125643286989338709393635410603920297283348401547152150576807346993770702436824973850759405987571058595886137459334319844095770105283679068886598380298495614809897905809280791664944318122254182209625970900838254057297607550865618685589015811938346733256440465529660281791526640832059611774628127273592973949497955333912111674859795844285958161480234015112765117280368967158305710284122008229751192729383144514256422680307356130889884708929025011168362542134266015103870803518748493346525762396813565981311475831021047002961615019969841773701635087077398870616716192830178603884449763637724072958642537332217582890960331833946127162372389325656687850561318570086030130962355423543083679753402417335011475080607790353643096956129086857136032033903721476262478402445377328227634073853327213455116257982483913377141665965824657478854633617181339488514707564736049844521978359552331211433214667652665452600028484360244030206547826156926433442094012415796277225107477467780734850839526019326862661235388103206322300401053886664226205808735979673495982313772971554980547052733564488658535447426778395687862270532920847514662140489141694348565979451467400423838348367414567098468722106661395072434010247079299765912663377039877150367691876989199406728118788395630887697276716059048076597542830153055403574000376708073861734317698386537364574693630595592121802156182205756866789297144498895889386873697065863773202147211731663352745292607861665887663129140371768050512883185016316794315856771084360787067584746983773179996104436156530999832120859201800520503673091815552077760121314402464103363843202019763016462524302458962216718266169364278328379478131759687448477307727202240523752865898043266336002100023345569089263011785873813957796879110661627655809590172356400795397095414357439970644768543801790267722130980138247426751864973740589034880907944789495475006328949529410453568891759654109883856845061221432260832225800174048627710080682325917743359939780481910184457443906120287303235591229918446687488220183774820443061063016767021682833969457076764007523122113804396707780470394418622267772363643443974281740941627808134445675730695548427182377619362981383825327246439874817497230508073016372270523592921688012831426540086316606173863839409349171397450669736424564231528836053678740100679713021882272794896491039633752883346266664540402272057792792332182954991615460859256725731845615745017047175590354435751908428089223196442795685530252689374428920092253846640239637721284608609572388754689397083366319949999139231646062692964437914472619551535942100468950700772611932089513333411947244538359383006091593612730973942259915949716798391567469514693806304429286349339422438114061185828893384980511399937683042604018590980904084484758066963774487916564762257061909031023774271738678388001653631488175935660354701094616758936022824699580863705655631350721689312193331915378089288137926485380338125976112181932514157109609457255998261520353964193354198894972618556851146948256613501246576867048881698431766598536979184945277163187109928454581544998291730596921682150424635585992156943261643522684704635553792576918382634047407055418201044994384566940451722532439555068404060408867034394225928278849322445360125281247179617398078767711621948243099489508894396586857878071648531594531773629423226736541027612980197057833907116455303062024722604703052963901959623212500065648622744707951373995995439033568663306125023158939756426359133351800635562422236801639356549651559150804588376599972139869577756463650310317271590629841066580453810112237040158177831505206107777213632752728071249304535567496847233593765630276803152618014504053514192302651167052492653554077257123687129802255915585468862215804314568796753247879255222563686417338453665675478920369908142891521755910015543888316436393184009288213392877658529939161158161771024280451949619672059307348898601634314184300830964883471362673371694555003971894644433541230701858806436217723441257588295165328076620739481829514091309712836006597528666240553717990715786030997984086831383729480547980163069267772100145795522974956360497255763101871945692938300800941276348541672260755666152634190918395180518093236679870031104726389866606919481671171728292728660892968403289110073708937179340219954767296966446884518144640464817534334050407742966082140825555402431044949026803950714819555044863885964704544906319725458364190342488817018569238574460291501400790711684399039918403845506490182702209820988981844914432985810387842808222888432973172174794372537350074761815798969937296945178345159717028657038945308364683873625434769889762382500226505880453704965053199774046383905396369706676167829319781428644753079393826243275907993364675818509167997584503429124648904180795628449441471465805248955320473583337565041820019447423483427062912823402920367500143829151880565921926899796540091459568354553794901973459067490716436239293537289060320308951905399291453274215629241391202814968688948357087206834204238575119956599066831108603841023401709100019100193257676285199667531482228963446623152296221301924879833468843185005431512139830809598631028657393902352882126726413354079267657680463595440422635031548212630657424632860198485130715866049889820946016653392474363822010064184049299835482426794327208336269122635240688362780557749389307371884457725234763682026002938232577925447744842773450939235489886424634613523228512004642581621999749493069003419242757082520696424490372739063200860653772621835657037723356258854346279883430398437890311117012382722040787820439292021757918326800679289979031241883714311271003524720440650696898033672756751728622679060420406157705881197484435792990449165328511187005345951259419408115063461898567547188467832854087467929454499634408819630082070402769115900896845174879673706048417244273079260154120018037201243608342778296910426610119249604256820659298751003488735249523465108982353950314455208015972926249282046200721232452197436422082566284246621700684840679919022143939203795998508074293403691547554965814376313270918003630902826295895950227152059466372977962757759183680168600378992600313060911644980461615840059063763917530849451622046914064928052473139057196791900795343791756673782681788721380046355926256715814390912387951804035273595266672087483585762690066724763650326081772309206159687975282486096389597626621178370560983274784977496135090963796398143228890665721452080866306850633027357234156784693382215632364398444672612952826026125913785762483842147502455166642647728854475702408346619147202878460532959479921030118270490446378696038310388693985310668316168016088797246292583127794577825401353696280956020590738796400222528351646569859376982147206091573883003573069148203964641936233073446273010883037064586722286511417381955303055091360832611438356112859891812262982925560280805200416975108081352619703254721122025720057900636787377247860084805456880937303737096863687413354221430728325244912552878127362259152787041335709901683408272291781479884384201532124861092893057981719158606625083343849106777821484736383284978326468700728494000638240822869946548424739588269878179573798574665852482045497935446760540839880815521786291220237194730994462462084371931879357292257887142242021215954804715895293412239445123282214892879612316013746573090698011380316414847457604069105119023588734836102861905583876729756406374945819031307520410492918341319592425098606519845445673813619582445478629202532565246433645613594834591349651253069193143972423709622866067493281444335970120369216400318618209109122029959723562669511135104402973761787916900920435380322154022972789231364232651069960022401395975306478548761017626825020060492439352763574063089514359225232419704518684577452585984333030740734509132624719883621211094345715744632159324439839558277481535359970065542352088342917472002178619288329870971468430016814621172366017747726118730511617684657623555939772524606160059567837630313943208046237355899852686072966483940904004338814764820792849870216383246455271167978837063420785096037405784847994926972150494027262283755893181297883109937142320527370366088750532445339263842962715613175332714609075276752598136971195077696945048162983285397290818038423777149786213912508745676111818663129366385724818597967422458916953421105225410175088682375745718987878973032162129823112784214264074081116948209884901997304971555849218081482411116515263308266402518822481874241533487729787658862690301583522493222386191701042814553139742346981465826664453151836672852275343951274556540171372822201813201759654286050926139657706858502952943870356841127788439514407649201220648114748490273872431374800325793479118933288209035553183860636651170960026177232625574441723023348003090735553493026099054932166226869869199591628172643086088853651461944144535908289113040007763479140724663641725519095671173587405169677843380959306630515722640742794573107297423704580961586824558520081374630932106064914603389138902773469454438091939064858112999313734811862168052468749683280774484941270708776899574125154032408868951923486616539781465165739741601012802646914725457311887607597031159153304315841167075054842614745260079217932190004543912392317315012832753620940498876611350941073159568486909276949813074535759267504756539314991052072777578003143697794065965445796849468807146500736496071787286271126020620021025406694313376109264461395311240104192869806880533666177021966774822212543608538512880083123803303546037038700102725435731414871865528970987868634515050783850512245818569078999078191676284914647863162108774012107135341573712337505449310724519005821221132798366500335441919715246690638829956326597759559380383164202281001769276819271658604529824613537686982063394525720510749681849888171990614592675991630069073380066036383979493690989053232424041119042793134680317134841008786620841195810158947924006582063442827777572053529282924120293542563625813138396523830488398622412868309898083932050072747812435175049826958267227839672835587255094000607038289472010929478027353782114796885305036701313435513528754432033265201580150366222828385367630273409147205741746653788454279054930530904021595331666029280406198002273160175935984508900069526449736207061116606140118251070746080001162904625933632780954176872671561629699597319884380920166160372257984843129884153467591424811514187482219324124920877093979215093806486897374020801774511880308783835390537591236944007187746169574182769382634190486650008153258464145556842494613438152386015185880183655897401388551212338878771181940536733010679654554322310641789713030402748430699171737321781764603044861429832030716496993145494055909276905301399156010390088506258584706216976068763766816906713550216543458055213947058939177995164227238121165266649456683911279647921798794948879422872747469774792232972916647288344469286930293451632316522845401893587936609289471297995824901590197998772748415997387673515443435663988735856772334030336092939854104433914863127921664576744016656233811014874627101612397132950068859804575472840981848050834017250834311178297221196070091566303982121440764029171516627509874692432381317576618460709853405670452511756228124257033798003371411149103153265623440794974997978638696164347892353770563228053512972443231161702456003178447196601296684417197748254491170946493662679659156949123976416429905783009650412429440798295234040548855653296545877618319978807575812639024604470091031737236917916747690796161923210301936252404724807344359464792804141593202628090858648879717124956989001279793146603636548821675500560189766831639462833652702246662255563007922647745921275485316737214357482373090710846115961461008929782263868048736040061652340416182789866124531639179338511974142153592072840034737574260286609161394744662847485825905300097416084227127735829206180720503222571018921905386742509505452138194526642828372432618368201046058065783764203709985938607950611875716962382440112198103058533345857036532915408831828656447902100739850121132812959895711525238896397682520213095542141928897637824301634498601433841553988894628036358481918580110155456791188007580321301801375281141265520380930412737701630093838742260230288712241250409982807863165248850611633052128842320788433089564772176693019152491291576357668456281263001462834935130309165843863793581507188848653687866081915414461941225197831652343951722328004501714604618862232371531555982002323149537093724153364069505712399973271255825356618294769416403584959263772244203761770641095177283078327393525641073626513293009401877253942847451447493358035161535299808342588382092751097888581610610663384670655249409247568641137405040841299210366600204612647942538813317499132874765116830772214408205600726941407680889925735104615691977845208205991680352141572828969179419368534890642878741842688814833531466023509739464331146434058980967630323036652582707498013054147458211220001978943088235019540867600186298358668853974539890384967528528223459063106976019812270436919279901476783786178936831505010360657523553529098285126006065369243806669763120734008266613873580523156032968057438405754214708071488182550568415874141298307410357591330213642107106345121291030011700604791950334189049797881386424239633717882020853806338996465929331677136713448006313663448107920778011300659125437805017304335166075143081394745372406622585461991398774779576009214402378598869151515092148911908010602623875708157067348157382465135481811792884911080114888308401077892354592272886103539948082348592186436285075564505006837495198406509785864829183935629424290579316447931816350956815549207785474345918349721769008393088892977813089519141075815166787280632238890238102526849469491404817008394766280315699381671198231882337705241970351967229249187498032608282425200834489030276903937533918095758762059389275396793072972824000684358279673047206743227526848563046049063415446271957761869952649715422917445060153855329200631512552931420061845358127896195914843733568868732811042183504346033109289931987339728044224634740380099851171682352372250632776442844245374370279869449991459214406402652370649404078079458531142227720877660020616779929388580035918303228896172798517829267085812356272428518451878831209263145110609837541653050215470785453396410292912883953644988806481619485559353072089819067646941770949928020444529356894785891099215020245890282474380544358187500011121775021332374965914342005548873947258937180110039816795625933379897465352126891155064843101148148036329128155806023474233899198481075967341433602332396483959475768380967987757864156682092950203267952405909814833498078161670992842316269548837833302492449765503008316174165425345898876245240784720366668244519320325538986880772397756554555948011072422252075821403559621628403001673734832500765790352167752813361805970530362101920186859944635082866686066299406864473899561695307994563026181811854400979183729683889787426155471843784474613030798203194198234926711233694797426606859642619076545484011810028339968033459195467873833374273070017692150856146412936470860070141625893682200233470487838889230029960482691907824841509200304668900365576946503948704647819027680615043937436872642484414184160534255360018902214509294270337797799222564550156115944570863822907731862870900798431407745565650580742270312621292756638692854822283351349632557786445470173743964966567570432555614461162682688621822656308231793741856951643968727186119472506295806763927838743652435939325455159768913134285967881021285019093423505960212625919805262703764491310178686262980414553480345143993673465731066358910020235035043934077683585631294641095725454561794349747059460630962849846845201805900811242816213424551028884887480971246448476208447163986149780894958176862763018082764049156043866457980992278184714577481230704939502164460627167146048909279568192278209153080995245608726550262112408714452453177808723879716041719071228397088370497088410182551897440147092579840958854741591617613335819650875075496624235071094640172525681621228609088799440721453765629714275256977200371741048864243940698228717680349203403590077755586861792692431009659931801439766295880517977102281926478797954548072490456043646138623915422725315294085498461536782853158692492162942736098923475128752723381654201770680196556599513967299777340974259805257627752782571749209458050237964101968957520043906036981284547313611173868126764905136216902898640293698252560899390407787424671430354305153891794737833995331423967271144082640578784984162775555525074477257515506615830806755498109875903044916590268418400169903875087562826611014360695736561350515744828251148520231920033090266864382477378008655362912480257678272534492176758656544060962526163114612324026862239361201654639659820520297592115095743468215426624732307061599329457918308894959297957413580469626426175153259313503274767125687696358190915259407105075432555969586455082802018819402121547784312094828175812048162604187064934902874931538028031599695357589003271061847370116527813145055193334123064924421949527401763215477869496943364366316038741967127813308647135090817016586593050047649081784330547958313826453611951826323835022231462542104084060149151885846690226783018088668898958052123185060864292463404959475260695002006750535161348320112198240771150334375567760995240141881584795769380353510987328411949548337343467524157193601099746049767627576761308863694021361903633373743678934893614779741412191147244406178014832126493343329321120615954262453915268006339532161018528201816854715707046832823544951998966494232163912621430263670512992736400487573006062890822476938536450511509316412019934114143228661384118069840548293171184144270162287152635552977630593490440332578611983284875429817186119998727460403869843753058886645781837499834474690207266527629685585007586288256094889763719045902413867929049603929311632172534009850198134777482758902565679437236363814093719799019957344131598884977673956150107810165527078932046923569973486755603188590828137507762565548108379088683568240056678549914965587398305735241915888374500669131491416141778503631699951661191573819393491821954244159966202959245106696290512465966226621438879724697727070019222304153272008003274549320502577933636758622091524998122329003105890456292030745715051406183171957638004146308893996787127102089756856986298368882944155685557978940624903012408481346887702401853341838331340720810513091122268003439301141140414033966277430862327010988007789305082130687436539413965518047719112417428281159515009966927485613386805730054539093199790645702631952926813277504355425400686623255870531990087559370374294470875114874014040160738767098157153480326282925076185267508040284799199003685868269946526792900953268735173655715076245715039970240095554576457435591946302044590572931506495679546751076177554933901478261182877825567085714927390570030143637844240334298112748093960195257652087438462385161076877413463100524847226846812566436371631701896983600416375184425606041028126142636249420094081382134515164253348305237585697151797500997689078594839446508054084423910428813293558708812834402143762031933353622398995500720832642254049672479869479332848640326985410653863277981624779860374620373586212373451838959171380842657122060141405246006085986831998701363450602975472636325845312526441224138748397359832226905190069774328429978216537813375071996463802754754032888901546883519835727893888124788458439919048624601601631478176897305354702197341098673426186008915519786750385554486665921023561031731452960048103097848814089565228517439591678154436768130372426584465132100978280147291265096795071904287027905345383553132188058656682106896789436473073571907212083963502467784406796920068225398567881420790136594729995949631570818095729760406562031577191919736653934096666093618961376972793948348226191601996933465893026423567451527116196185686235992322107558937743749287426182897883978272551514360550253311164090717773175660169139438447380317645247914247208093078409491082478840002582198784422548089115044024194577999267436801001563450225477290553660508102657596786286673591394046914582517570786968312805991826951795154968558768590511496391510781387391977576541860011575381940404382218163563785527449490258277219572819953095900248605676489193141869944489784891631512868024513861250594330594787103098389387587578460013682530729338069646940878602256043655744349281618822450632395138429499445691676001857132464480064668403368053208418969226715116831549640673931492697180229174860315137500108288441358474254952218249899996898804346572942909296321131520721713341130927150096089412357089586445259668090044414778375424167334118506723252665066936383897853765330767162859255719941267951083812822252134623163357955280822792124881337428585057248362576278414790547136392429663036095936409271232618284138427673536147350953882095211999390611396515083150982132177582094555988294114715909130658287707470880028118245638699280950682298480353531308476664318215939469200115627236768300158365019738584372184811030576414811343281413021479415436673944565189441872927435788278364662381762338226564317041359458066891535367618377729559122226728687305136768368591247590202101274305622170798327045107159781747597195243913297783668703977476566983654268650125721777979178234271283638366924883943970535901384310362923435102573520109481793662763228159337269922941393913980636442329517047703233564074649723446360204642154569002635567035945862665762516648613208164648941745848439407625201695180290027214916078536725158371343017333923372426006593896527470028043632291129889925539631006940546156804384779985367254753518523142156441369737524380161885087932949284761930776047960814527581799440330042930062834497700421736280007372862603948500405199122961243120502768807888207715133898861764738026295022953832372543188430351267415717910789840900873374454487287947354682574674907698040830979086691889179405461846354993301378529640512362729277129283152713778627880582729333700807420578003773423260343635066704590642546556413849145100322845772347864547507464031403511966319111078234450558850948439838151048436706475686658032031424950940232116656232558817392190653580328334976662040025972112507262241811288634187329181517921384456440838495918389277412792684167398172865363660396478602214776086081052842933380966305025305503824774343827756282603404157620405791223563383601398398382401299629042278976725119903925120839280901865925308968317494419611771676096644746099825679996222168159095243738199575553271199727737711751278554524378678078413547371175341544494451324716322798435223725358389235549779280249547366578496068347891140600713905815210949541466342791744138918762243402738926006183658857430918219015081322304187163321564467204338655876481453754408206323451101270362946582225558844831587742721656727865990838801111968835515695385484667152156958125476243776647207205062401907277049577180894293802412320558930720331911651530178626356729287985920012321992376372983801171982390403324894127469752322754709332986136184350779540541617617326448096228198449919667905484163921009894085229231253871065666328916673373253287958822901822082638649483885126193514490946926598869238927887331631422915489335960008603463241811102551724989160466818533560880363490582158568465683023981744589435401035186371965109010051964055851820536681403007689286133769814546773516727638898419110207527117696763512436733412450321921027231438861406655558632115600111381355329022285447489729499799188567899135355994674789928530156011458981820065957490727940238895698687745396017900114832736557742783821283275403062972507204814575336661904257263532946392356598530509376193486307982727686995370181270009423169796589678651633715411718443447894840434915126821776824265145545853740935420322604393447662314003894096376200062322533712105061595066355402730095426021225978394082232100408380828823879182416521705134639311114739776578662282324113483014195329317323983391686049364011586285598681241082051650662049669836580468231984577947182941325073428188653095688267307358462619094748369697193829704907299867894909157742394557151820110873454167442846253548900712652462440743046755181300571071322313875676124988369243424118945307015378402542636803741778632419577028722626730844214661718106859660259022551618035995092471066112403151017982407030855018763025640550234787175209339550219112220615507667018372267545964950108109420019625112758328792687911756722383121196704228160799397735787907746955643778731375602702149161103650294559596508643136461864865148646573340667204977598769119473854582349885560772732061866158469013591113294960590869424642249957491007886648229302007159370744216187826971960925979732394578846464173841743183283372486604564420690546075416463248616126033531635405617683079435402423453666251981838005566843883320842551350210631781171119225906052863988617782850956084865838270994115724060208789448160328180241924865984761738263662326615376842010754261498297294912399691086538619105407989882695427505684374919235055634140657195359233158010792503658422415317519984119551676007013832485658015365512468689479932730970479790326406261978925555697394633005817890431741002606956595931558909128393262959128081402256505713577059620377054232161541423045000133028987434224776043801425538122503481136451353038081431061410659172405389048689671826186015117548311009981470279777638234458616169669009100999710409478793772992907610774714546742671804689185605911608933190967945111713712165674338373165584183978392211987178494721433453287901197770923709843610173608404632566157268738396255850637912417456708747316074630118795819562825127348988833141758558477724655953499809471383349900463556775114453187814599977033607883853361549982460579845141479501257794004046964472512565276046314842181201555123546318739563845200778244323130005812345007727372839519252651099303466045072887144693013722983049292397673487111154061156068216511557233033821217016042259395748620586460983573235299102028924197599576056947914255069732169416642924835522986830478048057426821902480399839509823083749677214905864206779004814588868941165688143487364632614251034555749147948150751838235084586975691197025496194494659279886281347274456582194271095248692472878420438134231754315605472369868904583174348814508664346566218476047213816583449847839671466049971559435918161644247358656992540892513189561273716188205621509795308902049807300043032552814467472470453701004374690205690491638559152679139591717061498588742274506298143370666195411285734533199687364888167875599717430146711309724862102340121340988475189088174839432633405394701477156171390967747558040895726479632123847282973970636067792695087929295572911226282430414128128985954504358830180409864839487478206907238911684809064443706558549795336064639946303636090234685910314588848900341351519334956559345293471568235007817320901799351960204361082425310116324450747030320427012311589786269793401222012422506123498173910065131121616969855275381315360948426284239267190880978136030181626466633732275676796747009776001342724283943015255033117892905225840350268483526328287113153458023385856849395186383475466142378556505160633519214760298273708202686949397529565979963568855968008646185448290290616335949110766296570226035156921345713635915851973415465557116586474707951432561407219245404131133417784202968917287087632464693513122326888568880264002646085587767329128827544509170912935974578161992240478927895962713655872191492413649553718734549847901163818278760900001507625626473067373938342317370198478200665977939816562810013482788120007436125114677857261612886962923397852341748833168991228099495868319705637950551372247290483112547668983763653678596859325920908073329763372650539537260255885709161955164209364048989733913930872131125335090277620741052017822620784441984674057206604755821808387130501640841983476798902627053526583617598946966463963540097374532955906948937111570209528803820055216884872639348596646159834592424232824583195638553842280421808410306062551065172298059342627712033793950995350157287807307343699113798595130996461127810676048501797872312323032999238405980979710529330332125961509849474090428517490961650518754613271388600693882987164347843549477498419240086084780089013242151102924940534381634001144790227964300042420496045608239538786426055216206367147475270004454909094825854661026877649684234753222412548496846099644581160999495325040433185887807584322922743467409473909858311293779527774959758017200897826698682090577731374148736603810502078018071188151279138189144747956765119859231671798373789281401208309435131079558285798939920824024460121629244580657247459532245983466277773056842042609185280831587042553551121300012682224537279267579508998382266021319685466435994007895635314368991829513739936092534924839582594653556997727414730287791902833238085295569632272114751461891416233071732734364155097267458276710902767063537182319107045071344953392489845597796985479671618744784728490649732966462611349815594481898638325168362470566366324355438701182608533894536535267209207929346001785847033655225932567376719270564112956400962769385622576573392117637252781316068335384889397185208767633843541454445408540221191877376131626833168628756178480529153971350911283138727879941137765028629718037257071953148803601730939216319430369554621906101657893114380179856986389969760797409253504115626491666450463174170718453078543418933938585321501713548440483025235430751027264261207256576189873075751745506724227891020567782227573194893589846708529899740695750090650189331300666184945221484443112907801487250242250251753771651992506062282779221180812020210698689367513099979070934687890008820945347396058366872920868591594865367494100569434030201857449875858252691709255958677096343631603834529934045728336033507381637591739341103975895293767763651160706228396170341214263846016611289978280632631599211761002454125697573425132812164521888343218196042194541426724234046708213497109406991054795764043481440075905361829732018423515834799761182807858982222259626354571262269909944095511626217772888332871463738117223813670902902022140887656425029518861933283531686938555140412338501137004538324976762112340768402826657460437061398427106221098685623053481775073890603534750078863367024164396498247142465592533309649706366693583710680062698222322641802397505369790162214695369940547497213339228321603869491761479980177366736472587485929661976454409113463548258459207029626414829180770535662639859604530216283940169189648762578438276139356396814797994159289570775405768052250087378941219756675726192099454853514785794433667908400576124736002539727433042469319302595287499501661778775184431156599983498367430598679376070688882278361232743466924224427403967461223166748654325733577284166783227143536007659059074232232771574404651464559111720330132468697857648577185268043896547723241664265292039821823133372423625428951250573452253972289607446617826635329729675470278806200053750048536511115831448312185896838189166268771731697294542414378245414663283217993884009361954540123406433994179016077338955221460303967303855707337007808869119662511700636162397953364196295531088732117725462994270632620392995501786785246361221275688693211538102911138745344446115992214732670901683816571844149491971345795690072576289727994721359238113507400492182644131885939919248191702317541322837268818934991207164977351136863666894424940916725650696166217986218312029886081369300119709787844639013575398847647776642673267695805528323407705188073437079338825920471754785450731324689569766934943387260891604643174214925074673125530469031774037255510328108053723177028385664417988223511769485275150604694892553088984762591156812429977462089064159974371415679535085616054951522998153872137963723883158664668721581033359225455612572055370975615358318130416775934762506234296669808720200153195869491618151336509833763276888095210837567063569103203668064147296201368879877447756940164524734283804140344344823962207243413583586600083776523874060199896261936358680202329602240332042536633769746193093635684996466852445981922459120994289553592746931072347766167044751599761731933977940941608817852075268358296790202682188444891311136855477755539088483342266901737713232683103070253489168961867559438502447502592506372068719581363719615446750474662481125025228836413995977412668647460737649438713970686666860312889656346296290842020314542864356219460609201096779002360865216716508863930930800131201033007898005653822250945936214384065491194887697064440772449907703445892282878549568764292034040932887816951728475282690416633226521514341244426762444128079413988723802245472032038243048621474007184803849624815124004482867697037225229448234810311301348277564814955806773440391940070633132937488720903137000245224272596618912777922477399210621798591353854289583698352693535078906591801779769657861237242795037032586041072089028364369918293146051526006619873095394532846847382152526691846698609965538303645278790753346550161220510187674545109261121548380167358723487130891563617647839066766248161523314574806373137388229266185968742200132142992730506940089404205003502561403124525469226406070789026527710042268752211669673279173653630108834677570717169789328108172142256950465228268099202049018862187429189653991110169148065965890566260463880552719233663246507533298624040250457593502512631519543170195029015419468440976968105262640118941136540902554621330607611102487913813523277856948742406021519203967018493349521744009836541478905605340813530018827251273498000389754214471441813162215224782890668122497130625339419380686447063318774357309758025677233500959129331754527056871762203896560687404144410697746489341326845124549891995839826110040072716507964506321409849327842908866429561159092252703984517814603785840601048397175666162035948135475666664246741462764668626079457061761070662517112287691560967528991065058007329054206332848840688606864022888921436513197775327787673937800068405944795091373935735543022946365782253426760448694674002154038045127346768811264390428042941923599530356393931135249034106025476185801137205743773712794100874244507847715340457624130418150546482129446854119268643637092935049564896353180744219207130030534361593829524274483920872395111158813617557378272150491972623642032561577888534810394140208542497098356104883964031828936073615104566538876602257498880399407302938349745051563740152606322997517544105691798318180102696620216525977487908250554993267686096959554640718301257221249660710828948449742710172876943362423336270586207169246137926538565019101294833382584005152122957562354488500676656026578939300086550295148631652565614898753250817010304275624909083675739210277914998203861177918047530115184158998774625065880097822664853090956102629164143497000187137720337297212318200139131086751738770306720092595458011492564019162328287067691739363218777012139347225064318883337146540681699851003870946382131842143064449483737294988413481856694886144009657712111733063143099122846896178519366116864567239569285455149435428007362851167002333309430176787912556064102783155256866354804908408725230003220097567920332516178303254176655009239120217164442402484804444809706213526252252822466355313543861654510068073531298445429935264906970448641141342830916300071431872857180924860814269915142271470133507250358729090346079242149409296212858731386126945831833860197389833667399792868139866833866513205330868098240110913791532927207317980437966186093198168322596137634850128091436398455796922275402133929247221986838851513251035802158903425262008047309452797755334176617728692264142370139917383578161568251981595978393903535706087498389851650057669912434093043119500776870293343917708846806435566848827453306147365186687046893632643375898528708026054993156250870131129435183559776181133738994518629144100878224027746786234210841074540426090935573876741123669680236699402943457662619133150415994964367029279246510110386779020578162920489285522295223729140935501160011968169234306143744958503087657440796381324861416053153381602223083306372670364026586958209467470198392535279309556215758753893894121063839481217986803332489363264066783292617530840849803510510741417554542244286944031660222670890565410145502801674576404348867686579331757970193592442238623066976908012801852279544142218144602230571048594164806230697183174565414952983578259020050296002060877478716796299310571380496564811922215792632164635457809722622878801850550341073970655254839445816538881047139612266416309106861023865009410254107758364986127421469910267578089324497488842024803051594769148058489520212338335258921543186991475093397062527935189056340626457101166529902436134635620911644880126380004075454120536121831779761069763029375095106263984025011539643081220932873868687117056596193848952801987303113625202474363590385052020076297116247048446576897821748672713139074818703475200493427472540103296795190923861403090972308934538822548900127692069373496045735884797382026083598460652371487679627678312734674975351893842425530029750225513956776298379554018275440859390964908784978861812935290435250302555171953940435700281676193296503929561118379459951937695030884546442143204548633466206512874288307215496141402379021463943294018871315009543478691660155062869897827137084015229753184603358774824698838955509976972017494484062029943774095831275720233400507423718875152202667672762207809750991663768004740954759451642677030441726198209207463583130321204681088792794073702695873244674666766130528594882745836813020352440230759295712424479679081305518199573406518225480828012064035385601206338660737650878690992809293122698592724740236607456163265440137929921354453160656437310794984426822222947220689392829167610074750823617587003365536306575186683944543281430483043702704002759929480123592499956301100902545167940330108622363159405417094240436511035052900786197127385499192022682335723267753561542067804271240764547725738404282769664339310861540342682719477864585374039440442702626518101695055589548530660560241131040633747763646923839878900871568044352495847051436693387121527927048843131916050232026639644284847617507045478565191878649405911067566503233061897619706283057388553120602065254862425140927702909647797343572681877227257549795778997893558330701669287860714701802352696828276462508287953814249128880210153916022188195816562715165207932502699872898781794549393396174481429243892384114927380667865950562525990391405160037314172756167193993845276997399821478284311058176608035654129672736228086919232920008178008534848448572482813403811743054239588560085083662305522856097100974079244981421628250593464200905428992013329488805395400132283654119013397780154491393488203198123394593897097435348369964491172947492515468289222534647900203637645759807613756650600529365409177751455745817120520843758959317423554976688673281583070681628844826111939077409520959377512221163537145189630978919761342935084735787415781438352220842134952813153294688635045894445760640572612203779971273814674519494714284368437913264954912072904282910099311356708385990292180490076597172702131677530027728658899300655693589216755289248669624605746216692675006889949233145755670282546302474399954199271852770624329295220337899341116613424245277337566788937503850814042546887122308650407696199409026753479221990644689458059076139329836968419410342634003949252100025103179326795050350833574195722795398793054295925539211410357563398199006140145115434210072837958315800975819399589053113286443123439570990356965258265462735652621484024744382056067625716385035478619264578810419165341261783091371398812002275641106062738195096813190207824694768954374306769611176501844077769024061891415880665163585094447355983100592729289357140003737481136684277361518547663491319639084632242523733534968286662444776310289715028155319159588120273398801031103787906778141222201444029763939563096275458700551698478324448978236906530344366808140817611336898229916937219854097257236285951690288864635824160072916477868456671967279063562685172348505536132585650082839722656846907486443483676203793745881675549551212177995871737816207488271170208792282992801577968245776408542863122775758641924902427186571086918145505788380659610720669629271913762964398953827974612159552041785867440049021307389968060306412036432766259954492258444023501264791751734996935199013413293341215588805469545102707090314171443731806668413982079999066887226970684598417251051324523237980667991495034393974075183492606639053534195490563551183687462905069972603677676398466737152823334897166246851911742570571539777785226405074524298051136303121294279277714255817156564503933363113374514341293321323654523232523101726480236666034937723586149711142153430314778822825628811356832971003217490402471829577814244295915112078300908608638044563589150646624946732876799530602458913727507004698201388020890744667597251268120178498163233402201083960755855744574551942201593415595098871219459730178195948146434602571930386763783481544082287138644499802782391210036965085153383417689434961254086156498459969646822353485000504628196520361342025751257230582450420184257652996615432017864940005280068477046629957038605921623785177081215377963396133923355822360279506526663004622125140864389327107309299335147972478509146387338677727431063298489225651609722939467191443294364588334553674315839107171290295512355904965421336231509018867637565358821955246648206941843550711380527158891806240112895871520493724932609705362629387729238147475661993368923854448373274665416994384069579996307602730849971026608067772469043758280146095763786018760724596072165397290436771552130964154298058537593827593428651200051452674482314990642645267776744806013853511620229889337566759235301654369629752093256286495376263734691577263518082592604713178758513987299398197067010143382874970948924783411851156507270850477309973117813116684691313048018581409966230144646229085742892439434370018249846692364077682177482722866516658014612294707087378722835855239471649129647900586304034420017086989147178261228671519050576134986171124556055915607813139183103476444817190828556044587535920295469537246164398377149542925727080738284705187000804646146444844128104967377415328831891406256791774991226955133541190225030581115629059261279249774360196983478764162223598879728933204212962795014548083276470218377135743120523761965491903784010368922884767785371590172009712626101828739008286169128215399575404177136505539122512688424764800988911685704860595013836324192964295925513216815453716726831302097101690512017746338920992970286643399797577906802038716852839673050185355462321188043178188279099886066068730270846459085556226302138458250974196407545090238326164386828758887549657527946218079341998187533040401071754103620177867535340331610343160226420749566839179302442420524630734648765739201405532060223047790299858518159734141151246134314336109490263607006731785868102906206371350482916763600107242373151784625883881684948434902726459851748481931052661345736336809287995470452365172903617833901528409477772740195941064105219023286704176415017962689924628410469397750391202067844278622521250774776316220676219817326062583309555148485620522225687849739682400454317359301889471190546488583097913525699012218555045723788236823247636967456594762155092024471988570239653576479733223858612483896118926612267911019435346127051915207753689865359833813849523932523391851978121806337147000096229614877672387866975039366459061796786500701136796820031555925199085777116181883906101596537758873882818772618962895969396261899872557799807731414517227122431414761299808727366381917774129091813277923151668769399257424913475557272625576852513214863520472033334973232939484302702333352370590258733075020294849697667756654293091151063752236512329520991266574274855576600380313362196566388568247706104507764953824398474481886997857745039405128585176392791385613580333196961093751847165371845361528527984275585552942007768323120109503961149768400116757548110454893623764286172229902314246398408370872071488937503118357863634050857370376212697383657434714090695205875757324648261710538829591858259949305023767188891754905870599965615164466586610957880728627096399990543387090992050320795046009502581860621149596568785919373873349539023458746557903243229553792050179299781934502060943031790492456344784987320579614483353778566435906774408151189274356722322242395058741599629250278313280076132805640803409703442425077209734746676882692761021790506988987069914849712289229688701764600960887913894932556003679430901367891403942389648360343837995759321837009802240994650630941305955149992782473226723066040756209131646184980069496855956562847456458778693620420840401996439963452341555598299374684239020842723180357997110591234364915044643909670857016330388563952575489284549304971503858589453851877786291823267539257213872191179128160916107443997875938344784502286508744943517115522572584561537599207928454472703880136586397245113818401676759966684393899629878768390294953834024875085994200833438648900119159777109910253781219723677509446798952133839587233744323423090569456719412243661386842712958336394348880948587501923200546341514245210388410831447082596805448707805839140480323896316259813099313232883898831219147777636575686654416037686661301913410115336064552656599607610948778799831201356439107433711914951383783695125016681366795615033169806155990351924367929145026896695820741801603175263431937790741237438733712082032094923893806798502585672446160281254860035124036258697198069585465183439881718758274465732085121400592897452941738751158986549779758854834399176372852365974402569387441678266453990225358752047792685052417848845740043483889945633249524235902032684502972970515952766259161473443480976870483297152076023986805054968654106590712069939853102911393045554078017523711766228321684580224370800330506259342320050012543395847395055520347660813489940277463854708794253001120159221861426922712946121745196097065423646414395293204238539767443983544799353251426557870207328849924061721491285836620769553830873345946394443203222900854028471527207148208461548127479755320352434849940319197516208183495146303343532204743748408269400406340131239863719959130821386680000511889249087900350307230773078824397627247978033594723647573067388686738557693305882624028513253845193420093759702139376378896637169030415553815725943628027801235665080505419895545818466589059369150244075014217276389682133073076865152931642703094219041808525548108893736280891304426484054042252695314626810380287175396380130168642685085305869780387011841308437363539954182843705988921716236389878970760520698721648529840548103955192820322319988511431175328971081702825814046218430455258979291634253057351146159478064542906896707437336873353872164514849156409276173359076523875711884978366899634979873725552627409556032687274365835399878876534348475942995541141498490394961501378057636943543734720797426218815944232949271050412233194676452279780083766424989467921250495714520538014584067011915962232742479333763903131644833875591778421684985461899087698713290524392525035435635826956770044391164451122134930747450527096829565070851571341041652876142187122392617102113049835211347761203161130864762030249138019394679214442181295747185453080563368530083619254320981636057759494573685752783413685750629326104625462307770442862475373715972193700671517484495066549966377915255870549423650524740274890696490030659440548878150688009464140710865969855659573053211488153253216170552725840591775958870295077803120898069032022679432823674797516686418032641507352277489823789346524648632316223543743346937007951657200685987817196258972694089824732436747421651693004827594810095514587176200004911877226843716020143325843524953367748168414850583160691484523847046720513207456568260753014629051068761738119463870292489386924532495674326774980650773892283355820094069398402431048721174536376543076290086288212820766015696001083315798718370655950280485021209144938991901030645218534999090822770844133786479458988694489975924598999994915371657674384864172776926557463786006114220594813941358420425125716250201099877759404232911554698672280703268048122846238361349362725616211859040818031670707363237059690262488654415173247472995287985008796364494189943476448694217093160074163471608714233837161762186776132883597806158229865381421059812744348854023193669817973713283651255495302329802062683642554226569971104530717188408352668234863731607358040806925530843900447636856222782398730269991161127051865982960468595273238074432622574504143459434793298103951916487273651529730513007547341787578027271466738639995728091083650827002318954718255063069353783033507631465981088067971419794158919623271139857048954194581670219720486533626820825451326450766342799952082043419505812187885105076306288763345912040189076430838612258325504448452750556311637988680858796570399330317848350880603160331859220053535253133230600407254217255213674205302017078323567712043548934840118371137693960365686962196624513887125200051610541649894759062578049953836779639670726809967913821474913873936593743715985715205696189117018714588586357737667149672476993952494595572278999267444791749851654627559002679665283899786789178129005960841579945850582500867766616719949057924833841410697780576128818908822641346971420038010199393576947234976457759742594124490346658004946342535562563815314808465920953953458767203967360956334876040883917553327672041778489069844593667050372454557935717551019082920792095529220286708712168392339679625562142408538609564192306225425645779465991682090005066222935858766256364864152147582119983269506692717302178556657854763928935323323107233308890411679838095579214671958431795027386274273041104765718856098714332332447697233996121307284429323857640113384095446736784265388322922574068380643612604708124014582634240280581154465685764552871316700628037924553419647465899572115629529725837182799065075703704125402487221041464759891817931208789058862829305921981764868706057921545492385381518353972745803117775346915463694679111765204525210495021684679700938416201554827530825082680081990945527805166008927983275908080433009373929424779351205167246335284556830094450987869435856047783654245262055769783245503648987452269190766447944762760219313952102743611895638682830301890091383317960245608640247747667370756192959693527356096179484000569920034502133102531353377871603052447631082453185103871942940447534214021909149287705381500411325101699067821954055065475142901108734057695528664493408762077940003896496057208110495432742089594607029276437068862162075768159976449290101228435321261175475789583464373456206314100358952492991076230725908485987869328157941760242636099211124973021221190723526024126397352850805609584520109509483245294331124040302694259933871307827916288121768842784849328247393412546548286437879067616141585720683809406228120302775072446491360143670204338586998906526384774200961343776257177511151843618978390148221729911715589000352068168375567714306597091755706171344518593584009624770853983798062084359319638257706176796266618804288872691217085692331060854855105167659087818104237126644678502794565387674777450205628395221581068931132963725968727437833992522609375304291833811993020614030476833511795865757527166397793914114930558010093679704214329565197981270982373279992696600262915854947116893815185471542693153420154378550276702086474678374525193699437296336168881987485306370793755672146279147890592682750106950859304431954312138631760149814803985391233141493343623228951741722246540018047783379400197802135973322539968650749780216134636501235478511479259000895132433197614044198011806515218814724872774354568502233087553692372305236099682536098745063418124511748406490613371893271973781760402355664758012844553971807849351994398436481708503685078880197083372251358183190267760028478730244971004386696986103914746000605112047728093441124284936553863175326305168755628234963621931766189102377880619006819367669071884072872244583861397429409141728958243398932522325679820676046981630110728187042152427669990548637313088553179871463806128178370765254997903556901848315423789366797289100390213472556546031215074771752498208199649008896601829429800497015881880769280284593830130451028514002420014049993262092784167960504917232222476752858258833198796258028364718190411555726203783107906333754911177924514777762077453296580946187602531570940325810865759471413817503793727199010770302635285761909647900132534353879075550638326288167237035286430468813008567846208504868712574541965030622663068795031726967651446901034622202037956462931216432095985743935888566908756627961304726751227200984997913396669066939138389832181768107594488561584393898541888179948594561118975395554250000690862629638314429973678369214785571668421648476240625333552254811179065582203462042889914186919412659082337836733844342701271008588433475669811247388923235031106715272369144533232087515371370407752243241312673407016839537968007115033160949394800032751560659049442931484159892917050747819534528396999737810547586467999310846604848701157413900798243182405845201036585569703369237299415608073148390360783413266955823648359083175167844392842560236027394545784059795897097161148083031208127796840810820844409278239469438664329343372831924337044418592046255064315882947307369461468652342551915639778625600418235772644948740413570387177683620070495628641904410742662272995317571225780000017051917461017027635639049481447390691453957716171277244468569129388636057995692916167083448543543631200748114056065847916533607140040588927675308319110594204168636321397974081208456126152070980342229586222662692877617815681228493577961595708142234059663041301845883276015446379825178459711159275254077988568279073652959475091407005510544919374588579686108790897679135347005119482048842162052042548448552651056574209037687730228681901225929044419662384685128354786426152746208055533429309695259459568609717162396167725787102337366239438567936001796173723542956665032732013043944531347952006490359425952874335130649152382598491618868363303133923766876565045485243229997962013829822407488960590746700470934571338013427204968570304864599585721251867768880129022271316374801660039132553026724390393298765588202658596403340569566927882945145559363204186128412755702522588613362925702224229311603082531550237184152679218832274982110028890371959844777294795642899355322740369556802254757838154538814281566952318474127559106691048380833552667243642839029082692632782587117135244324919792043380276652355629481147763749181096671887947441625902926345624254630561103983716399057385696097453043326077783679270979289263863093310290861999366520443732290452364068108341902139506807134058253343854598277035533437502663478762177085989768423276444749230465573076758532957708154202919115131518904221509542020801134981658944768285845737808993944388095129961607555043531654618660814146575265657996790231878513596535744687547234010377624067309066033728924729441724907764342946551670355771769674174938982015726303984976184442254925286389853644105444246636186786315442083972535756904244246124443043979992868851312062440526772167255157080750372387629579695360962111142206494873108301609104291087253191491278078368505496027118908006877725854454666175216654925425504423884133487063198492639098951954250817838469593604711304973081814121761789783126452735330257594771383238438560516372526436085066170539086174173240087532005034871624970087448876554865845261360941734403101467846342476360582636191913432955952219565421014767741433452711844150745762238633383759821649838621273056559164499313629726361980797545986384067837868646692267921143532689060997326231921792937956674247156867881599040694445078421511134004976241330507077694402143829368973087119849971912972491989692980338447357109490168695040189108173300289528803904498097304458582939685002215721064134138467057494369969831508578999667153555635652876923391158205082637709165088509572351625519932047387181188300339485279084476297055996390686224498381325424427326514040783085783198050132380401572342758414995576401492381662718792074039828369077302605728147750902231086822383168417192998163197308246784481204718180177746340868289767179107918754617047479471404606237954168930026387103981643970477971189468882947170811180217051100486114498824841883268917649624859943751476658407605287309278243892213170093436428251429043855184695948501929131688435334875779176549890181871762625785422314711705968656640939589671451798322926436011401357555281948593423636309338807200356793814141964906623889767164105919461515068320327030833608012927033116761275752566837039303663789468074319324799298768856146448924157512553826602115204210857850581724700687837443610708234266674347893452583202773472501172791434502237947485825469017830623923402450045656865382493876047415016466928233803226562965826554974527654364493946353193383958028383363364324007101299401255744923863118459305673527854371086833088438917314581217889606168490635217964624732001890036089555082675685674150896910310913890294481889960186028298240807689521988959054753938048932977173478147516949176460117022347684370905689548682493097603019481236679606287997885922199885262087456135657588660238906790944127604126522001123789813534859396382663062872667060056115264692476887548722340920067621331608215061462640710372011647525465292330766385779661415831951119404495461201379843081966280871712224274258503477965798919307760085736619371465251971433847899134276660125700859803730959670155552035977585011510626208933341895875211195247790666039030657710447550279424217853231986169544822808506737224893875361700450485366481736388946079275657792494717566928048950579253401062225622479450441660240511463826154712859405099192470720008404833569492077875501051131783799031959245924198966134958154620172994792834804819432861281891497542909883212355638915293359011348831782708904176557206550646409652931900284205287874340184499363594241368730817790469443291261320174589989067623762232712562329364806220197509294441525677067560085446721774236779706108591843510420044581627814549361719055126221482302923975898114927862821858552332700360947364529710989446636478528055907608814233409897761162482780788361109958510272770558323105501902860821346001388147413862921612769652833017840773258641120650483590448341603486487854145042128377527207146153696868003889373589402780981654480921277585022930237340974528977093870112564058875393508239928394763437862090776194466492564369446916872545840610847948486774829937850308197893520578479060919241386474291646947192460746492612490068901074593213441193976989625302398687758898870262994872884935282433531133110258130418849901855127443078797290975348559973991996905510503292149554514412018683909394703242029278506440927293207153003355545490877797361697894807740866756250270870023851718521868952203726272233926231647960540144901165371804308406853165639283859697649461165619320032414615783354771834970426122474631496479241903461824232374108254023427354457709959149692272422504097369874362108886188688603598891282280475883214474970668782837598737574593297944231447677124088663088320087795523714510915819221412275254286955720434993012837714560139145365110760730070179370660756816168432069015035870566371963190684884843000986785643038341134741665665243603107882410938260640594245717018181298010184660438520400086957864533498658944723613851114022507626683980039746305620483026638172246146697752480722917634360890814837125368982450780436570905644803290851926366188511666168299696726998750982394833347736059630332210979566638524713361139812014739155520812756555334575410427952560525876729599144864470662794755922820890458356218314857290725443142612701877662619024437449023860128626133614669388038265100900732645662126926977772713487640903286511764034000464543955848475114563999504369396181248164257004072231963330551469779785116553330096049785817319734598176702095141488974149315480017025003056405806755457829171540933296674764001283585053354635259840107239587587097499192968248695277642062854776673293276578740026208343380676020857384102565621759141670469923718994268436725716609194753778856130157913931253057010425860249969742401904028174829649152167930436073296537968421734777702264432684423924409388549632863086956040863508435212331464543707742618653916883496784337630236763228821667011768345604639610246564872750264233460980256644362548550368734524752902972349183115655817802386776352194416646911654864517068910938883356014810593777433535427430711495167526369037424152046042689730607062866544963526862360521579673404579426612612144657402322776726952906680820966747704654172824490832076186082366110237356713942910462492905769980390841570344337368668143423551791009520910965668676261934452437879652583804553599974435052854961392803161688494641812160063057900988294597652461897083471272175998294770645229239603635641966030812953351231282758060290228525462831634533044586499240041331322749832088352981116151354532238121590745193395959075943393404178807411345074486903182675386386355786960808021285722707250470893000193729800162715257263551440953748825790298931532347846436910921580424526918604439200199711431183842293609842304458522796429340420482998817862443124153227572853826747823693906482206229765646931029025563008312997655175871436936555766884461720999565173595855720360613328021498012714393496374637700092181832207526232624080740714957767468703140971838475396201355094546806743431034933520225609312182594851653595460629195595858361558264543393204155581864882825935992205204273971547721217580419401494265334880706692533171684368009300329190241012448958031676158819272280828464883058621789813463769597813089566896496252265401537154970072733672842041275996364056314295598771256843451913617957627347630772373097124813310990071112647948253219664556270010219641569034369597574412275397680302967795543859234253911655390768101030395031379638607080048585973448555935603682388692600594432807282953098760589302801166159471448658938299573946928659843476114713528121413891574504037119006477214950792083548207012554532974888790965959954345057326338252410277914145319330011220143843715719074521822055639496095882646208646213606873300191819202092714076060343375099697415855560612428896081783495318552250371330209175351086224722381152630546013402714972615064334041422929298275491783784125081057598144873322918423690667185736031729659503287591502982152560512566945380873799923720631088443334488728099655429770078736592829222657728303958100226984227840923309279437082609765352440013331602046562942214027843166376243812008217157086573901805886423127434679593196993927311855457123724215291964149942069448573138034841805779494783246913004037638210012898715903867976274278259573603861044603515857423350038293186425284100938066563952373132418741863724095877360866562683132623348287037758302145417321632626739812714976888573661927891436711811776476749892826165922317620741410056261475820428672047496680567274682662081643325867887920685081086477489806676390509616470242884152589711390707906614911836970627027274487621872426065439654231038500072904737816173567515743506142263530523143701093435782550553037276050638887873004852264555498004976836547547420829370947823405551456252502578487563877541702353436533718742331572673865249566195353433171308107513035682798394976375322048607058450523638824288832948467020813347213046893214393843715179497843708251016592724095800896335159783524381312543702898513893626848394497577133045455368924189564475892815231915429802430660727032086345921029930027562884587917502723437276838743437677347858172369239009647025595473079636639346623438188070727641366821726875538533368228736956242100153782390051182905581383736794409122311426246149367714074124899220495502585539817710796808298938796965006358115543609545536193148928386355725678451290526024263548361935088224111592250709795785685800613022702465524938132650039552231409822678810007658842944943209760621635166171864855051293175538227376533653431271228591840238217409680189799734991874946937964728898356087327707315520281650986563930724773723659292107579376454602665628697256525693322788830809611938068732325943911395313841698790154976789154810979995855376182047321127184424776902953549830786080789596226203427720203220413072799287910022853324027527342094799106404474380535429739532388691240293833045709553456745184239867042945022016133610854313943624650504093868382512670345986796073849624057363252724199750838946990115277021137549156844592189967724505771378141951427922367173522321174345042399682096523989691963895878316815947442007144849456640464205541168716968566026779420422558359127809850421158780812866245634174930694877023087273287851625268145869909969454758038930964221565912736580160179206158805323706288894681616005938390359438990966427607404454285374451983367842414394476518849377208570382153535986321330641446938837383894781548170697515438066707716733255915553851267544780134709948645865992220758589672956479957048686540416629482161911779906026044171008547870607042339451739508890101493546372735404472189826988878323575518552805460740380246198108997537610807272003065113170017354101697437799902061582041743286580026336291533826294327944448945560713895182954130413092373697130912817691567166764305095144812728331249279447876505792415210398564189220179299112013473864131197771005053857941991439527176516673466370589530346328120615348357064816655661200810777574330525215011903124804750684027184172435867837083496449701578871471226936031125957562014098273051805727019047839577702918603611852907197968578478388476684533135125429659903769144038904851055490256941008813570587736941926531821331987148325636075272835088557941532391755449213302956148298577571689335658241326219916315883580556619187565132797936694112231438812656622963003149251523352335196558818479556971351246392262306932542052593620650674235373209204360715187244336774519223348371944891712160941838235840152568512324302974081519405948949028686202453991188356592792040921374531090221158820291623630809022716372813727266451283802530617093325492403873473783780389591806840305064248922957864014624307487842945013496170880035562607371378347061236765303521425237219697458951187349810778158774256262143152601801451068425120906151194258025980523296879345001296208888153339207179254493192882483469591002122997263386002863543859950663431055676166863832816991846332147182541017692651981160542700891389114548413595238183345649657200995026058242969318081512495491350264128243719909961642906396014344230402778808999209853772350495493027228328511855643944061279259687757943990707470147701047730260179979169564729405935400579520708467516745043468956223397045969082895204745571687893474948112130767386884371733715548381288242021866306248566120688908170788194068780305284126911155731220025180860297365903518985441378231908340074833184831438914859152438804697345833477413597866097019982693824883553271095891196932791398446118567365706403060939071024132102865029491515242680519887704328146544704376304920632905556582556123192709591939487225531684812405018145770554570356709657327576590270089491562959254997282040461523466694782233109501055515802888180671638961574655097157187641523605826391246827489746890102815571901438027646399524224281633265081253892390670527570486618407443178676338297665559156483031742803881206254250972553432653509968020469535044206167860894066935967614283321440627752370447830660363377150255775361250806833143206284190961963419566639221029598934808018899567685105600686640344341482769976661440992335296829041052274214788055669572367010178923628758368054865236980884927626520341405702049180970156278664908186586609838446423182648007701157510631338420178054075144380235139411102753343951780074444986201218510409433414941577141491699163156819371058898318132642316360531525151711901726022381915940196104091547886673939828582383019312710384995448756923266111179289146257974300427727542410617686913544570797235762826451293348732399198806067001343882843021062360139861646885984182386681961359509319487165810634855965114064841743478799754966234791455905459749925650854465276524668789004509997528864418901578036039268143511542096065560336613977687138616144571760037796763006007607664621991688853033924113498612735997748515248451459333289279080716809451608091101573377375612597286002289865315934809767090827905473191263678431438205910465004098604636301993653724187593918534729066766151546283784682034164214962999834326553915377307347737293494615411159947833299333888657016206624917255665863381504438122965137110535197917098192774258405670580116750977124586622138103909319410869118476152684874000006912569185867458009226807883530995558161128552954876822614724848350230062956897638959798855516096604520353513314575463263346094616377462184896703782200998219518780305085343088232166707538859347035167190806135405994832001611486842590356923918429095717431969395756083566975103123693884567038608834906270578356091776867538942088583359842053762488649898256785682203120324007523160834550042965880808740747551955770437073868526140632054477649587824838401818165727504184026648470758880645572201172102080146010413747007598920103842077943178594635926456847589880806896381828984198441191561700462597049178617786143032085734095593755287021172286219856250920959493318502413591486888813358482081286467955361962395147558329016475823717214775926540429270852532465095458853028265978561037263530567275512430410531985128286249640919716700240977674435079082053379293448995908143151933969553324109435574373473544886569176972887531356044999823037440756943683118781833586639042378130095778501653824039756852380549368251007358754546888540011626527482622074974757002580306311144821578669475084016644742053296635389684265652281288985964745582086002217426264390454109209828733731180067652605594730087583918845996979595559719775155067529107010925397014545543403881757719289201386726745495274184630709002510512697279297365576049486105130918362105055306091516244339397903938079581524981812789635269974642557850868182906970228697263233258161962954603838509738546567978406219858483551890088268264681488809096638263163902214289543940941584293026478164960732791091330906875610196694509922907276862353621074884862666497274750116895593876150993870458366028907307763683996378517713681743154809551020465741935710028657351329837116408063725234675064311995721023853448423220314550124648468593975181069141610810855439486456153297276712386933541178493657046373841444379260295573232585601742473140908067454706827020590621546142415440822997328574810960141313623372303981601166627028381195287974997374089532007894197387941941955880875945863831474013538119454386565171705991109618582666002133369318859625234577410869339530933191230266313204814997541937415414346555863861133079266333026051089750019355432776218593493967538843335008407989732842657591780670300181127511080974934805123984843631004450395923181401911473712301205730278549693831678895525076639598497721929537197401436192182702400646916526996664306908532223343839747002258657827214839442562646504217983424296424142912402807710239707229821068336414718576847586146871842485102243734308041424985767377744207177885470015911316035354670357150063591709013337129180420266622516347560810669006425944593200057559511876616975870011904061762323315412691256793452497674704898152463986267979620942355894871851068733415710800119012231950660370605967733613805325005289165385011645945036272082023973513126895020472317253272192907719029387314697472727518049151088453311719112728883617978860302873871073796175282704776230585533612366064117561152873671207817835177037717376930108618446968155005792961222253834398591070878376913092928954205422218964841842580244126105272198814224237450040802162097259173541284881486766883462351946380428088388984319961407275682911279009594739468136774567457908944562785351216394850474772537099759310953717374525505671726125514566172947993946941595370076426697990388312720046338474735147087050406179685121906338550692857204591065528992860680888221393072984808048735857452209830799219176524555400076048335347379161754597286354663815959749870222917786809871414003194702725976824105823369976775135833915674431637823269491287755719888321112939211400422502842099858660556446634414146737398088512181659661142217034745984043199560693424116786738272087770806766179900688342436737017359198633711353059055977115823134611244491752999251658031589531488908550409926856683783121847970324521325696432808834994441903429593121263806490608007405539812269982306300764140055533920238843403750852027994470480098452238704472199704498843304972802529488644231965834394149227085810372347124273881458885289784857513711200093249991947052520140842380670552061883815178638073330463117744124615295049485544394753974140857572110286927286143257106031028821161833856318278446244939207399101167355444121572630630318896520134782993524329927895511248111470404073779456540984003429820094916338156122675751198903832758777469518017726486152007090413330530004584934114771385031381328987163084646197183979559096549362760198261191555014424027950212543591788439808128623915271072237667640031885414121306970622586131980347426616977196062322077788819425315476413923123985812309145844557470191067765546272656377770253197377824149656211252627951842308095420499444801500438971163083950547973384237733934631315393550326880060892340800345470685551907800679525409678364408451467381117274212377300147441511670467190566328707340773515154420674283318018457984978678443661877843919926704557308415775390074459369625286513681471566251901249152904695422413277998057367966096077676591184594501089324445517564052404238441582761716451063241544799575895424646667718232595122603750663116327969682784487013415842019704407050042433313414679991683330203192006862871050487004427088590117049425463568761167718197768275425365033214743098571080382343102739122684676574096322454069043581048069170860421889189296390288496865138275834102193877516053247403001150093742229971966626649890799715374633396739570267198741553052796818092724715426828467553482531746403973635698822000536209295862836103010066284308282824092161320887907604857192589624534741331114604092125513767645589638092354787499679571185074553891805907895978587546142684956543390875505870441911327767701237789399450244759536090955628313126447034568921937307867416029384515943045604531844452591797196458269108831827329863511325425060202746818121276527209690481496275383484173649092873827921181922677825179141459241677012774535021856310161826742187905008865396485284933092404125551275269950452117699874389411623918820947591631472524405662376180543796817052484025559178712327614299801358039354605150478483978730513548014196786778028360934772575045009694840090218918353711891563866645577975968670295451594407183280443807073748031792302246561696898900433265530778039175535362658353399681394692930552384600665818253264082358359638797481409523944219036944281097604359265750578094831490180799139366751342201170087980497774690324978758274949805362350791579460241882913071062814064551623750903342943395825654375061600749412491506517452491406904282906850681274590880531255299823654012732537491141983057825152867145671812805476552140680743144927077421135824655389878417615719963874798535066672698647245193880316618894561144329417685088314645237413946507925743440025173691793497151735173746249147227482822334750149292013226351536443459480998471688735260571754084027365191993453333601698698440616806272466560899416798128722990892132428687433368130695227989012086235640291835948633459190821634578757342697095732367014344474264529296973948804735019951822043119682642721944138021304849886519045673391422970670474308508368949314681119420222080066435592117536392403902100785848093971707913756834253169126561390596519057088194888814565014046865398441557632657977951541541501074909646922212356648649795045955491325758476932139883696369018691396828245956303822039456563322377751915796192599671356098195871428289927070036298836572652846892789129154873270006585041920792358858383727859357693362830980363945450384804241047143217140608605330835868455425230465546042204228752740222553617763272323194217542557327452741322534214074447384731448579102807298749645638372291417459420180085935902494922132276921212452637047730962679595973125197111554064972633504189281602408586258300885919773828776209393237722998229259339768611390900099825467624483733298333505592138628563049676750868929716073608974463565282312680831273527081810471808433753278387229503600725862316425351355673332985806379028707981978013465964892681954722439986457105746114186137838729295603045412241630685232478377407542632086586694959578167187944605344748031161158743797002928995197371407710927842220473909769060173519209132771398801350292424440374736365053206009455306643107236580141277465245735270769089657241831830529691325488362100433679086842208988081167878294912456774752631536059285537360975058164724107333148823501934780131698881189730658672856412098437731041586822311637232901603233697420403800736460079528552452172496094515694455065240619556385637326922416887953477365180830116198190110501149129994677150175538806926484734109052847110479160285777616283203087459661365792095594861436473089348155703645248233620047748540667911387753433637125483722731866672873150074557840627082019614671874456381738217249624961385092185868526516603929822746271987659108855576876018903078889827932052198311607035169741237257080588587979236571758975931147229307310957004345987738338750809184829545940091254763713713390149332224692108359968470387246154497210485451988959352308068106443249923613091928579755389018059978519564542746874074167281482621226040271270194290272482261889694932882564007108347467361270419327229913293671796056675730098211583846426062779665991244894640057608667537729753140222224372012994025969611972494143778308693553047136410439305799923197512161990167241680686165436213195860717832786829537847641914879288204444313895232730322136193046438958967513480457731640474341768994775409476839112240255178008629082493829513557566520651934695989006656388055627312618265602644536746061596150866356185525035919200207531544250821546762502013566995448761046758899223893241323810536242223260238255695813077540871527910542326789043631061568523375314849380682571017390022539333808200751159996107459929614985499474410803679137604826764659126623843135984074110194747812916499530115406098365165222787906116939898244471384285818622828549601888401722660722070043017526663244927979947582792262713063696625588253177452830340905056757641382896432076396263032960396585209658543585059884012855133055431650775319637247811059640917088417773643854387783508614110515221993858596093788611375212548837970596489984077836378099690128732101142639265341873810273696304181218564589373446911507274014993932406350240904697131935095314851448309887672470128362468789589618287099582802379627157209738108820380167261484480702136490654821339623352044375063728732679180703748362827991859096083075218608015524539900304734715530663552655529248204921779058495704135838051209651195290660883616134910651283517252283675677908583992738540792714207918992796574196505188325480782518562196236918551785933876234892540952397248385083385014178852471607190832292133349743275612393059408296463540491278212395149397427769403758535393565488284727182686664986713949985972009637454476738051298427973208422352988645941085317134119674401345123023441312369765052214782540796757347358246743748046286302974341643865571671074943042408512948458719130629685589485073437789302265531954304494225514337261699803938184938713086024075737118652060704216503165913524634374369061533934168697860399804976642733080930149486976647049604937180593862203641223898751548774512046496438420924434702891719391751253643038684584917049597619869141016791221070051227391496776863833368861047060649129580869199259650136837138070832924909550122250293068241781812845418473217767016136717858254561001168491597167421914849779813580068833713190695712294708720525628389790723668525587716197347163504050901645340214977016125337174209631309350786589606242543471979406033661593013253886402467143021567701890464377230961742310213955640311112922560272860482891056221842888841637981098534999747267339111993577054115229732169648284456913620439448766822471626009479229394028760912263311488778015316216451312244904082234450012827929522419584825891625655599396753198361632212778271769337743794207259266994479784338797962434173318834639934149725054333784488072111174537048628157458731041633149293845045981787422018463025250040675012701788928859786014467760015526682423340310380909530731274956389198769484099123505389056991193986466345418514520256607713274464992311603574573467274889442688872736785518397159911179966700455053193909659090058931137099763734889212018294160116359783139225983409513915325848559740597912307217671258229647177659965387875435278822583059734756638456392619288960137925029248601137399900071280711586466737999014273672364100748289315955185200660925676844471630611087831983872209431013152012712447718611215702869193131464518075834226367446748832863738025948717284878729738026276767767380323454197983051249343687388570204398653447669765614987670359874203259750531632941109186275316978820203528913027197624918792604977138019222854864702956697815531317038594486774639775658356227631381342845624194215082695335947447993640325126025166805742809296143160070649018549581143315735618421278449355083833590686674695598256661064510872120607835798198570781854883583152222437401831234258727836341278240817806947731740550806769348530087688627921313779046805804336631086677176353699014318074681031670506596993687996614985970946705525501581083093779669489679738360246917313245130859985215975268044692374424351575179190420285159239031468471010700070368645440561545607891025806299473841198652141417337419186113769578678182090302931922120098629535289718201011889797202096797166836616226435068486226792331056498880854627136717500741162252400025349733255166574644582527217392686752620087997732089136320969629545167954565536663910326378436335310936130439883043713569593697706842506657812587610928756044394787314456041489529036515916923360127908135286056139004975973544110551112080985758872990922807591976349134842318698609547454168246142238262724738578519335417015156701038555071133207507520713287915313735073848268155825749672568881456128286005567228289431234437325342295008333024297452187195699955676761324903795028134966973126716164478584518028528002858634181820273718333696407496155843604252837588684217114436494937969341396224157653999658071033423362375000827472894377715907053768722242471408411566744258492855832074920895274775730143472328153436114385254799038168999049544027011194024466204656390442945601942030102444601533907941366916650554267420082330705058817438645806072168082964542637113403475052368238188862941524621823290479541276821023289509564438955924077130887506213706534592232659194387733032863414448497243936380334522759909683771128851677822082630121708907817901162614822297700356253074921054754435966537249819313512420457641355710767645823261599694926286378151546105171835231987646575509644550035551726232899157657381401263299905105636817275796524489800107333816671506074571349623300705482020161505036598982044057304835815350228505439244204340136606785280136808550365172283458382158602422185016625406299822326658014357507020015455906729604780262201697602341477769906053641644118359612625462900326453504654927044526489755699640795598281701537745565479650796190855867370336481034522490032504780601036882449591712428453331705160667785003157082330101074185639742895583796017618120495229787328170135759378546349966039129855927874079364744221540088977595025601013906836803501618133702928319775791770328480626112879017754181306507420912180845768012109818533345799454019004871114117275685978514146002782791762978609334559120772501832753081607362126802073106100662844665168503931760674893387380294428911402688202417639006779820138409040501597754412559861646063534327078613053072474878002204446225799976491176427055488018630827632068521977322112572203304156217742993223437700795050369709005801103921869257455867018223391278767647613590613832919408584323313273740408659744509623333157707013116143163695839528885566147520336054071080688766487874255595887350641787483684973453271780483079918478418760778350747908479747701782631930342724366315558847628965935937521566153684020629757606737997543311449482180350813487325603962921373323566787491259963346994616686410643450633595883266545215124835032379690731256801013431284707812266896018857475712845062726889568047308491680546053387282770874112405533042045386404404339219036938545121840941253817727657536499032673120555154685563677959004484002398506598486920164623878592238644419245542323765511164515498595785618878996300609136041838361116239383891086940626747037022778931907221325991299638306254520842264982166706531964745821533031749023985369744287789331738942168661237941482231060373473021811763395381799758206031148619685857941398978278768589835632144757522588811133939438274063483089883793842295365134569884243336200621643230341546360218969649699132414168863043909511892079205825569544022015893250448057532964848711524002145639423742854205545597122730281623582960982619791528445570802275642974073187050746572809750358021131048337489731431334779794307534435387362060052158291295887161171923401779773850026596170296615726281442951140462856378352699866872337068743525383402005781234810777541494209843851841496771058087380141555360190192595744323064147731375813741636464930482712548747079008308771273721670343511638582868536473801444190621290506916059750782065664717546610371936322106952063245720977270315000968493942253037952307872967791803173381206042174294166813818416345446004029935652743905371207443572910977529946542206804257540717057522819376953557791932498982620191566258362965577777310198997739623050244683102052433672094365718019854652288906966947861219699990335414452318194527899979060380603759214089963040487350475682626367501421297591847627042105470467810552832766187714700398986800796936047539556869153080241172933086946309946568537380199152430206126952522175869982014023525801209219371720634729516718803889378114935671510718337189750276942205569764697029462130925243856852003546727817360313599689980112989555229823115945720044344278836429087684993827573110151504267065513494181595558515306524708668019185235610330242732346340308802171257922749331048542538743875330228308778280666516646028277125846214272709013023941992653746582902880105792112983103312951644585768749776695762545083290101911825317458132438670290924569669504382136048543197219054681244603402563716649565675446989140826577281250961311980149242904850050415031701305979983401666518621668622125289013410917332042036126854678518694918855582948176764028768511821469010817026245384869046630046916308941450185098419033134487085923898123862304419902322672391339149024091153203297867859690223445206040598076960687941729665969083629888135926439162396890077072459542250183873609851879500357350710374337120722436235537047685315041059113282287013448098376848215391872840587323876888363658286577243990335098559602622363565335123601708330382050184286514783249387488747533137320111103617871979487035583598126571495523701604386961859015637910575114068552117552043529722256264825017851604528852446693664799278714135305870304029299680691746895648002711185229036130501153510100723700959076720056090786777180666408978503248550202573136326996441324316115661953155614728701649830138582517636897664994126409705095192424890043414723555702836903133725017383452905341905016116846627093732020242015957960594546127752129438243959275409456790338474278403771354800273202321654852060580936037364832872536218232194982308312334298258006851675967385385738772547944580374329835662364244752075700059653824658315919224834990167906651616372955984535136228569075523489378902370041708379014067555073331367198221071264817785080831267372546385233572434704195297821309625568267393894316249312302760403506582335848167249236208218016654784462397294442954088202598275735107440005306022874427735822866515429177508084802282059440997803723051320805663209079806343573414217394166338433615283235061276388377335291324197964321671047082436003941211035808055183411323733633197813957403250985748177280853700802337561948323460719440772032039372460485766632827031981647458394249099102284322263461977972279666904404195067352014218460530042849271901062946616543576802137181464230357500806887865041417465268183440373799016359112131762357411969936197403979182441330410399147285530440238277033745998253175488018588640879713145795803864101782369938030554034266373512111687371207624457421100773450799721177080479831402012849380898331974382249428776623550724051252467553885112637241138459008168482436493005943061982031453537327136711349724531751205978698448896674955635974912970232752475160388971381527704116668097793113645118196048653831039376904751534012068067987353090516124910159856917319978770198316228692398944641277982683700364405169433444584906495522450906178943577038136702154378750459774145724832245769092165357096864090815182579221055975650878248023572568492527652586175191324176181986853925348910422373093059013448364615778841039748616720667417583390776882173265820442231020778420363572982278351687399429753301859425325989242036585165203181112355157648387445831699866017967383389450049277539851738977945135199117538680504864907215853235315926998974794547225793432906973385420384965806664522296203773399393093254971963389134569049250656070817563561301032053813951892563692997698653586845528154858907987288420784093086993048376752401858494488338435423600195604118008475963116542483487389180669509225818455604701847513834062375531693260084953554119210523013166393930662876296945024409973795344725889558054082940014179723094568881796778318506191261849841481432332613370758864066638471251859344693265921506710252156426896063141818010652186206313512434492558913964181476353137647644473512580693622199946629101776429912296788057323151197052062602251020952077662835937757315256790814970023238947599482829841435236698861036494641149758028880285879454634895547390912987437085420183079777759396265573307226998113570116857000600600518500024929909825550756440778945144424842491258266100578992518796069260945922234969701904942415366885862358364557558347865135063660456047326456263682709946178857660150041599102598831504150838861572935853237254147845649428283352358537256225723651505444956968789211082211719846432959749303779399006620563954436090474088489330284985791414491523210492519110936682189340187965500512728200120532416118821542407725514231066477923531626852138385521480184319299133736791033380784378319104912980683107547469511746281998819737018809649794399844039493969780817031113289611376781331021766973912505813443741085572252458744646653357462440235396980260665973985480230428540313766524939419552302831890056551551095915925128115562136347575704082638918175857703037037675810839251953883759416483301110762555848686373190347473848393860362653281470340578990888252232120898647672565494357406121083393699124758822666514473707785883767615495710471157858457656099550397738712856961953130379816153758026439855332894457496017821892236892977234552950518533139752781224520925883667228004836661131855272642579255315070285350085112339614058790879095322231809734163621873235931825201911948465073459621656878052642705495746848288556992259055682784973008686033840722915486304803916347199440400525332031093319767759546237451916710742522572624074570469775021791064537761434549154571142325119990680272713069086280394506824592330100942515407936132457470417538063944632271654549249442123777204319622629228021606602661909014068796772025188358713433697440964623647928326939337197447157903721093273782023216023205922462775443011930484288144304386866508142510549246650603062312869615236040169870329211836736777765240789608094866218871315392105533485235944378332885291936949208318342606056732536712464419960888339537607114686869930541984293117744138983930968364525167079288582170317272326137264207181833905154288363388044484313483424395280227494558046585146042373904591982254032789256791684125236831053477381762941414464565734854662599374424172976375610377916272989864533846739212707552588659616146735975032907039354760301068054119337241185434237983698619354077072897895465813797097465962776841136174477589135467153550947821362502738722042633445487072805424281389976849376739995597183326068137667290101135314488613414599760262739050362125261915926362190096393349732119300026041222149919022911932044080223308577986888021231276113663848994002207110305859751934188761521542360217291409747991875569071942039781695708865576103061147207213152883753329525236793272967422501768566068019856720099676941618011935202412022448833285815295738990390617918197826023336060170926806684474622345557118969386359570683186581048765014305024312576510148387258173886664208982585356314880911601587711026112529574473670232240701148436954657326504484598227506793634872429342149169909481705042626060292691783175227622847299796993374477340142792445140211368520901753261443082032948175558125907393489644779066973990161445992486932933287086694580543290201184678413971412654973270800199417357246148149686150454846851409086084054106936274938045201819433263576172896118678306495555570711940685347813779124360782508487714464887640168772138500452240028501593764218519832481785829782482814644511326275559536825289531120510980976241182274926360245638822369447260683503976643883597749825618869766707513930827690269225892724782627566652660252233047061671781310370854262169369864921281934401294441405573704125493346044835449012327601238703615631106930211226905348844848782244568411712616834123569375666581227631422418127117310587824829514826311905612606094615223902257054547780064109361828023977556530187691847030253342250798902091845480268475335328856067803508940506269078501817176124681103035308533897668237491868595355485828532115100221230175664411886623368097534286744849595989832244295062739537373380406238612550040167290981430045597857064636459173939285071447773022204318635731371956128461312225295696529675732850878482905785354375271059874099855091204541419937604918813938430766823277189016649702552589633488648186817144155517142047619353804187701428835740767394121050055815763786475183702682760713907693421487770502117470626531107362422724356317632011747733613732213714003557680136398357356336216874273532474730479227433302197164824467975317215679403100931269435487175322174090553071932635545310498400427775612431930519409430118531876106703983256897499943047207584476593034135505943285587856165366513182171340602405013802656124807423555833507385160046010449879863020111014629027565724856403356662818191703957497936306908050980156885483160111045614507278180328220908682260217685882330765613826151121861620692238283396458712987268839621327711263046819022907942518903061825127068450825953285352123171876961120609556132301322244119834798662871569719848436119858702712500951098948577521809975841124175979597372433001826583735098519617323009360266357471683684973469851731374685617592315273898258078265367403129707448002866489718932126535300084474595914621100721748731673686535002256470287139643620910992331800390263694313369838751479669853876715212545440087533013041325382341567736373053471595164214088321669416121128822885099578565704956968924322525237232361545703454976010731912908485488675489694748747190515930205768217950341562156237420468949827540312765677011086193010520947037284048733578296528395339989968315817853176473059841017960933039420740793084464758280872333400291421927213872168443875789305715070970955474845388439881249572054350648653517617404178452610918531624896273123862933769687007373026537471311738976107724096050846609306376652533006487292928502786631066950995464656024490612954460637746048024529458051196432975815888324161146111375810711072674432582677640058466430575088484297182157121826575400114238549684886051951312520415510874411386097559016896953714851481120871341960845555993188052865740752769168680338503234646342705291468399872832480985669882306729043934858970641893487341608873666274843662918185296689781379559591266197822572557459398277904931873034076409928607531437941240873414505931547460788383664008496374640196832703086022480612889559956682697456340663370539328485358702905587055019021743170320481843987794064516608556857195230884783420088807032819579986585670144873065105091178849881600381779728986634858736676027343450329067372119162544918821489250570192912253698186065594737353606726918493335568952668588516262913614176344272479717593947348576105514863276972470411925325387325824971738241924283541997639927694581575816179492989012825968000019282217893407980881841935174134953617769076922911452426738048335650368708925199043479894934910934242973252164863217413023318460405846874048958063342224285374364093933997198119141029744879948543244227646213257660500863184768004279762179788559342853773569221071050147953355571912472989045204533971518436094520817474014559458381203683838694842492883688139617695166766005886299474918557062582020894519658188131303550075671304630607555380908343602131487653739233464753212429007282968992168353013991593411149537319787006205482182441456799487970339030444677634660318180315929008381031959294445914969606903249919067875208562625002715180207668882855891539166463542970959021809496108236110502859978274584303971197373001603607852723492874845048943359259287287413915280891498713863968869317740421801552469623421575886409835370455308882394397447412263162423060277511498475805846630698291459801183750552370802555160634344600267633300706657893651092091409227859798685440384814316915524702707723053938034838397177454921176547329509764589369622302817419386418303575015682349787186496395665434815091596688193144463749394857675259419816433866788795432213822775742007367678428699714337151958915643265732590387800306787281164902722837934544313080671631646181444109333128250226273122861476838551678927990010234517621826925735775788209021162990426580072756419477037476939233663156403870218683093845769414849685286213338945764143072809199475508401543526516842689139848789433790535164665727558849945422979313019574918923707242498260344621365097296396886347319512083737341100042364515041231134963626518687980217495926417595886018726602459277561471600657208285993116732647111098111887380785767779543882878100952225383994135180093599100200575838848620765284306199018155498416212626588255141058503684469309745823097342809410872240149550558553724468708739926808112793418844806124559185814183693863076889629270008713553265680000300619379074506182115189912501635077896287540192056433033749098723953072515273159076649643768069419631913406666881488430937239257845908921450344997200643145939754330368923563438666007283556734907004683955343639150648658212460893360436408908809652971140850930830883131633867925155422276415616986373116222677999939596181518230360618914492443030124711072758013400764534128395798798114501164264312016353904331330821212054759278507383224144373553950422181669532654587571091862952106108246130169835249244173797704784582721632505518497296638409993409482049083626199756434552709549282967107152831579278153674586460179434065507801507589027241040351034244518316840404816375912782326096121894318248140734078674724818227132321600011163030358086693357312153641133214168156919730269909403909273408522006708248290916984826556573111421430532315868774922944885349400570182333941400892098976322279641420224888189504673252755340516959271678613106785151584027396509172286752904712842735580192975287744525563316314082329431586958178415713369426237966296810189497607151522047488090011426754328416259566096522540790170500443837468482280247575664872219244686784261552213620224799618066644030708502549367195496269949432216678230145299846460646795990702039597728096973046689760049110707493125449316006729607237736826343978367375332098904638998768114333077045927328580199134855334992293516857653542526498300408398821341142451022485104036635215379263061941484063143498426405848496853411646841763205436239099797529661320314963616756926031742001185368738674862435613594649536892881701819819796035982062218252617231223700730936928446161724237827870362996205096279514622117406808986280097318823283020109310084088009441165143512296935506244930883048899685033552760244562563173604971682575774705184821914408116383799145123935458188268556887234539919181398226833588730414059478732962110732667563472039582810119741450254476332120676838916795770280055689344828663077448645380286879339323914160419332171580571018573928298575607945487898081655856318440458720960741183274647240785907178489629593891961618527445852408469958581182810373477024217582292306731053985061636833293414299831566434900459570544123234830297554152563851547982812271944985670974166555341767656306445092944707867555083807850693022223579537524385998098698513563378929314527615523010278350705397235520637739326981230210158010254048468492079573933862540285632066583227508420673512424789695872565089014172301867893886762806074900164127314168690501322727918487983003093925974780553970130308778376368204061846481647542889206789602316256335418914364088370742047958641500555301224869389108502116392578148875955086796660423785665739661440217455272881790600976438620391123079193967328663238221373526425006868781126520828336438393693694715705187508852438507645108507756960354197128547253956560759723773514979317977564941272415898853937059647999151561177844510518479573064301791406368811115675573829501297735031217752569570904828978742926847206151977579408309100353667013431277406101650252812871749415492197016297150616143250382001733666688064054054020033966012746498488220852315285668594579821550543307350127638364251700926144023333819126837947191428522214348430022160405523975410673497633638479491404905014384048653301625110014057550514816630724978236026553377017210247189852174813622440442360896629997676251107803535595817079459481806485281095773356419416449250679753549855004019987065016357979716255398077155017922526513862853164301389052931395523337271719704294759250958247858636509031314585249316439978901624757636448638375469889725320578911473236978651953152852707675907285604888424111049574611928346808690529754065486561066690477430759509792507131050118954222768007465999371475749924599608710219709362198508421227006089354077697256592886918973282644445146147763530475249745613093579987928696455563223410327207524430217188667014792544043445267044068951107678569687159201442310187173254842297223729003034798938923832575454311092277060745526653077931368654773957988749028113914124894390582464621527186037449208039925920466598782460913266591170699523064027677566596171497988990687935003301768522050932032414605665763164128902493269155505260278116228537363151796409387174673327845507566213422229277939898313419534726326426373513982511402482139061021984887631754335896516677529274755002772064501812926513511993093828071190097366030592941525206597788613824474535424555017502262690434882063966986159927223170863579154466261679563514245769471002689849260769871757235540521432462843612838805331535543875950768320430373056885089099488172735645758172368075777953170369309050771257081559299802728921014166164503458043850788551884292953274153420830058921260696255672896190353865199557208181893817566907661363234311584514853920483794094505027771623763494473313549109342935503477093027260419437781157340495307215216052145347900378185631431879835797764920763318622721312667776514353890434734058770174368074236319952916415827938539407464622850813858782193684711470434957556355758303223586946838366667019462357132848750058170334983525676968537693255508621982536701101371231831339813624178032023862381135126979721483166921634927044921614036564499193076120570691530946120929700627943013698354641486789989917458109536787898532820830427258763678356556017555600749370184961682708819515306134901421098818102362780077834930407382009537448605774302316270041117757025833689329995184561918735116950866845020776184406780340680927517698706892746566656489903675196442384461667296987202168702323940560532779795649594042652747811324403530528534748022259989039522639931153622203192242726604324485623517928148229426482140835858316905793596751315251798630632051313287156956397237236069115942735975408194967962863962936248311163878215274045136030270904045479363364388995247576193330871551003523718012885522802947893898871590168882417881210549662511733383520826846298511814880434103852047615591831344599174598833666252021117718233885982249705665853298336113807442355729375890524235091342205043632326140276270893840669225892313056199875999070114389307096333808159240501441969624548850309779220529012123557265597140964703004014939136818960949566136447524067483553132713511642791334551480226687449106773485390807895522761667377624816249053659246682921003747216843225671414558085837811401034027403312097496134246341397762118318483538150196720210456709181678113493689201630122929511568617026917611941892544715830301339703811509526016261351688997827608465802692416347736982365563643932283714290535802941594268950968168426231248313757007097766645668056113514415026691700565779898235787802147462532402226092008399678056445842112819446072109776800968418378302958233389228809798550495824112685811741484505671010000861966569932961029261894372785433019250829845682124332866041980301749727778304383875701094171100311483407770623277731488321644210979321477443430934182149527392413392353956151557245153244210650812626480839145997394242712068676670526199412921430861538485988638959259123632810434982709362342982694585834653600758474469018282157708983498223019793636419910678025361327622668879868106572666198044759443948156143171008654799335971264220965900279447309074100462162463615362050998979309321201739822452631261955277523859438089655759009294777608586749208767968251637621289836948020899183750850936198456812552406305962435653556676941411868626043850085542689662866275501896484509112057836399811621468866328064826757995624535230008072183314220173497138846100177757621097473296974265014190047918491572238539709933059982758692307353970334804935588804925014596233376595582719902754811062922057866114154978645526593426327354166061987565299103147293609559043401278486909755342277221886895178544221733358048393596565441490437321178410267546882806229523374698033861566061772649652808227929731745817928761617604860614848306135347090240118815585834524977771967322477243689199369800162958108323051522015308949635159010622781312399139820294371859767694805083422943616212742294465930281427203775875165007031011224652465660239613644111601838933836728410525594307008809664890820154630542227136128076756494017550031101102271935401293192033237682256799474723377279668173705957986861429884781937938397237836032322658122630521088990312349276619280948602738287438179131056529929533970381695658987658713495951244836479014860077390470719952065569456870089635867511201093214110085180234485954767423025268398197795885472322160937848609425729601691924151463704245175050596669073795470833904227638306381325301536234714691284267852953900328942683449204055313905235914378084667698954905833689454526721899430592239453417317726806058319253817603340400097385614856817554850021123144676217682879518691894191399461794741319367705964243286189089495721088456404550548035880277355857233467660085009005136101530272861642366651487576695017881256781294190664402386317084059567182906667385667774456644213558443319057597563449782150619523304663311816608153049815150191969009854914185074242208166249503006406938314354882738892076526855151811488876146354088917137424457421194315917782253066520911575791226623507686552127549139810402457898400493186648317906765941032238017905849668637632568633655232989348782181892076929483404141211751387421065491196781336989342151086628047587207319973234650184863189614259706343641423088446993916970249450616496284607942488615479606375842701650446630850714187479433306288914946712548621852327365569452683756065703036900893382562766359425517658495292521214613637320125980875675776152605291170077130448442622376338461941113336221231194441381246620500705245682370216638334662992036572163062888370822935958670011392185808263257135521452806735367494232806618688960604542007136063049126494436839366967533617401049923238342646868961910594953421127130434286275293449163834906978306564808065115338771417702217305722833858263067065378961450751130968524020881563706690769065179976562979884381326413838823866616455589358190311165958254209085009591500522875946844307342904659871454903272214672743727443359663264341696998925755569200336890167831344140187747253446778706814950819913220331367776745287642587648866700959594395316208275831369525781730494424160050867592693776253201444410864768973008516080906218276190403624641818607209661465043332227287437853347059170211713288807186099968359570059677065977777337672156372717521028882865259546992153810513119235316199401692334664861287616711320019832116058938327155762625657412671116732751721261890653356732917947081290425995807826977557734700026326364438857554117436222257599954829876570837494212644452158810633461353370900558716595830998520299589416880571086122482758906648859029365524128780438651354165730107755427832861753339101636432009549518916474994086453614399161124267609740939889367157758449161642876635493212765256534758916891416301995385737570609252826037224105825836701865982944003182272351250283187957113393442763503605843947479769106729754484710759412112766673541934110705272630103288092469351726219897494612373646295303685334400242129511684337222432615540745681590801409268344349432877135917228243320696389924635613259184988190675513425083674911994031949547473577520640099705830059566211701676155852164729262504217489676174328820871046509586760981073880152784733941702760340698504864339280560679885246335350731685621848392659164859524548103868137997909277456283664695225669193050728814807206396588689127297893910441472178622746060868206321250703185123537637667720447440905634179920472899928831375480141080051939938540091708335458646031887013434376680979510641900378440048230077330597396540707009165054182675690891302275693131988093607834760752885387508186422109208308021212642889687744646867758063462057778647585983672057098585297796506063426824126659437169780355281815118995978786331217805383865124344121719386500562131193918927184677167842165529889776823786008905589668506879790347363966300802773399125147184532414043316542738414937867393393959535578918044413661945172741778609111530873952834943632461280456700235898347906333369804786812033000469460626741096103433427829036410393714703609675271177411151843014567838559826280289287589106023853720669635239692891613987409850862166831243751784879463448012593825204319478761084943047819136380865648075404655723620577515810321884913812622764148422145261043129606245195736256719575043127519318192903366153513716827326532963376938464624196594085841734922986967714436844992230062308013505354932173398608626995918483641895125914308922216935785283620180722539133851299097512252722346802752662692894007442904424595941897857464972589116750470933727773796758877640333291030210194498515441424738983384078929182194778208138928412891191380519258950612278479045072088657863469296549622805255294132623954229036636120984280505217500470412441870755654148970397691253585832400931812066034845865110231375282371112603348231146852789144867459727668890395470286193706234196192898025087848531215408173115696185602393326075718657601726301342222077895464091283221507912955511803828771634610303209599979863199721228688892684950174726594644101511269238565342747931730669170653971243451960220490688094849308074765541348246110306807017548003884082912240291724414821708632959435364308150080173382288659761678058291476236219989076050463413185735305456330694800357787443659293598028683848191146207198465411547492867744803527617829344049208841983010419425617986142501274967977633771833573853960009873129085294504663784213183273507220650168143981436192465628171449786798709422105818435939790291644242499729811456653416632482829283618388070168099534904433742808228812908718820358279905419646391210193584466029944179481241598842132844967968408720858437068996125483897662458139941139472503308737782769248424752077265979709901304957788840200110689254891028612779890545358346882309581231818045179459481591119491672716492151951197960891860067337986446912586458758208365609914942311788769603175205188622902056754286675300153314977455813991780605489363169244490644190935249443690591246900757197991243299266893161039428179887374441405853900487849861765064239492257496479607653008108333704795523207911442426441419078224363358050487470122132141372326641586190254889528114475772006544508952095380889190104080119092039737141130176887803290737406094901649362643516242645791653342937492467889524512418988650448893576963835095172595201105231050730999648017493611480563910072450980216088318455115065564928594268680068175771072340622210265089126592047380994829296469963612217716921811134522809227862192234397015096103200690750648122381902385985957571392118823173942783240813338300928039568634153044864505706877341163177533098984803624399057754340572304331332271021765085481029699931729507438678339350065916863986046190646264272428446078264744207173553381074682215852027770696260267902159393349394429796857648071237708234998108964153795580529537914899959995655796448697680689353241856766164762548305864988102929300305525165125691982936957254435721306041763917664531516387371928389359680598322912002136247335991358825898050397545421583578215078939609788117747024802318863309533951257791658527316947537662898489729003741944269987241655044030709867798148058324571775215787860120373017603746890818237418962140391114655553797072021458545329222603065053798061218371304233140584570090005828765430921788866328547498034055759331429650236281785457178179462166423147817923723389088391928724822539776146849841597280580593396168440444159523287227306937037222407848799981940446403745053682672525428444486336248854006946459232899933026201618724529519274201070737909156001989129670463042246806849499547973777625130001644096154838386379129993456157502254140001368425818845086907603012580713941710874701554788849241448347118534561671123960432272708769015543779397638790312124503015483932703136063825583458199144689640435349479499064136348722707576588377035030173700694157592534109197913602783027258349258096706085210900401310665501210555195017832844618223502229555088122811552698649991069506935924927965515201597837627035788413592687563295352096982938567430668344503325326746850912212989247667297086248170003017020186831671243218428703975134610723516417276075780817806363525786711341524764334110132366348276297894353492530860622313531617274725055727989282419246995021938008284715964822076397264003806894411031599628851745156563746853985930203019139916335885625156422560645658477897473366708202581980233606811591085326576942250325247374161778049831774529108712940428754762966932358203709177900944824048907880515837920046562736256255321312821393044508689043361660108891096085809250162826972881777989428889742589479745275841987436903134296991781241667339588958130408765595358375622289473494695159168847339100176720842005645941449657897585015647885028610712266144975312875474270930755553359880534150055219455623952957511424319737909149717573482302413217792856579347782167916658915756172750842479119124406823985888267319318417982286714098417653135269043313309092981997047076130849141316151493164514200141686695547336926751529395821160866081844796087382263643370502861821667319201147043516774081378339954539548620054036973248074797584624171986433633873761963023794043555820462633017356012420183643168008419680237565479771519714604461124779203013752019072605759820140674553914846088264928190820276430249445427904753410469588111454446343856093989436400817771900073377791569137912958354345391937912271093615810249648277127851025445894026867867638126817036396083719179066603195659058075383955965177227134386076791923065524867822363907069500630122553213776175612199821918282184388764241708247144327345210166207164780697865704694026867706190738949733057434998845833347875377656727074870393245541156038333248814990379957702161437020791212216282105955157865011378743373955851280294196319660869741752195684310856984734704913168756149561847253120558079403768269337376905035910482271850904970199404279901226765766916687883429301373113573455905898880843624879366480195383554764390524585396157534136644187841418371471451773684120386438273684393373866231399446980812736356405474391582719289514076960313536847944741252687934307999159367487646491162520152705902216309179887961776816461375959001602561224021016753854913745742311892298932898796852925114462169798231769426282220806235095198113402454549194724406743269803977216983226148358342179681882647379075405888021886585793056692751058551281298447487128691527934887319480133906117139824727725705153666234915696968260046380644112488348945168425622451913220217053905117403020297592543077220774247181650768697124299386770389855466229449918451795042582500852093059698006461779433106682868317607057621997736218079611195934569938879388890690853334493540576472692244699281085278869110715786160357857221130165313607036917561036502905328258518855966372062029522838628330838507846806933996698689278359950481061407215866655529737129769170341322152477510413185045662493293711855591664489221969953647518160590173544215400510631472705240482060557332405480796999260077811055729171960475017954826697544714738153998428332005671077233014942117620335442609918424877835414801952201895160857266699340163033797014157388377654573947165332872030949719992718872169716398456335263902140043709260183628659761853683395930466778692130466391977000408705719725658526841018555981910369670969851328362598204985368713280397256414048027146433458512041100064926756842749619314499519746320256475683522977243805994905862326639784219852642287034496269850670260308633253722580596330659878494553898180426908708590198498126267933534678119028012792857825222140175036523459243712950528251074777355670775771051503367271449256964235733929275149171837605449970317080779845777754279380714439715257299128398081546634304957723496766978403214070747285556627427881020891435181135184827931063154773758167505859407347131886516354999761697038528790503222997808814389744212378905241012377616033738532048337626888430839957828924180033837507310838939637909123836538213184400418934165611553148717697819179341510296892914961909626638337290093034629951180058076451608151492833873513336056010764337149371923654904576549053806841673786088379582668867185222702163627363064890594369793981488838764459264630290704403670278817739043822955789013849739381626333964859501773403677227746290122692031632612561906071068300360550331891872880347188261727994414265334469069578349548118833427680894524976084419625004365667794926895444161908367584073851389144092367273436147427440430997857288493793791834998672163253695511238704301057606083854418867715265859195179517867334771965674054121851724932087869125780826573483305428781690223394796609164467826562206094728621676913325247259062659420984031496819061270134559762814567721348787958776514957025783099976861988733740595839611411310791359682927545981409759747135368491291908761768808507941375619706898054922413550776767515592924060095533059631787265339626241758334810300023743976942380045630583559625142601885405958475961363109730484664551764508965784857851386597764257936685674337592096329032940205675240565574083233203692608525077851681535013704261785335361238780764911649073037812439553829404802941415527872647919072727288579618438583423860809898454284570597637105321001046716583101800081234297902699177174766965554786901660302017424947363077209110857158977429179293588977364683176407323436258858100033401802485801265471507352048130918760772398178217126911998326646936738816150382477648085253391158126515225652529671293275454447936332709641335433337925554847474836703698926559935666845472499110807776213260198889406250388755077384796680556064164829073009820248894435568770868441443939888045358853975818078594890223055099301976081985270652510635024642324668356066973782109449571683919930812513188637949115886557562324726068611313257054004142408525299261308991615391734677342373262347933549235941412574700298980154440882574573152097791986247767773000253890679809145232635435906576808338970975512913411457131155576788077663196234723065886303378458118807512495375554793687438818156880559645694871419650682844869340298140850676479656876748072755897255114902266292468218966584950114793071279828340150155962644413974522499298935552048087473214345588408637717796466743723500464989928927096669408625228101662789381971218766361513133930970286924585692784634317818856492080368436021037593953110350355629416847306771888438306202641416407747949350614019654185955731450250663110255194517866388088281480428570957249883004060183015024195165939103216135754533114121193582358052902846923759135094763515132404094573928840214488777681492922948656920219866810279930944989200127910003493554122597099595417322435419900783193901306934133054965740932756865388542802134017581350972254203013619973626425405478810603286633324204110820448027288979047656735877245184540447900432103827989825743378591812634654450373092518703435594116575577337589599444413174006802256954817874452721231857866540690633111611013948043422542020137748814741170353613750079102329235303138440897104978945582228388067660283555499310253418842139275332189805467824118775103569421787205497161321147357139438229753176058093012885264213645250420154957303681161923792722807668368565744307300567972288803511944025918896434053837235285343473773512419812245664928761294287886098755120523282323617707516884109490103600216692569692053624545388794597830363880376934770239760664749912314414698442560235014504204501845968906002856212346013639761408839612478579983495696246902629692264827059660150476961469439866222557564026925459226040146544050130535509185120006002910054918244632294807824388090580070293135193150286064112664842618347556635409292093786247355154947134493301930126563023219636056986343197067065035742337531174222314179963379628267399710221621564985981275944058777182167627030385637594584405945512560044360592331146485561999093414040057104474230540605152908723759326104902099708652981029059948617002152125081553544758651571813702934232752794488141013288608831179916704457364357929631853284786731159515545913638244628185484685268494317154206162544750425517287408272813678242002947482262164043222237571586455207599526531524213717501481369069404033868194736232811544297207079311666588863346310107750514386763873342004992494492424145379054053862700428192201004540273861546011486703331212544779144719622485357597490324498210523176347810935310561738421816498644052240809973832884106866149247543111306459200119653438885900288638333504692964555023479256790249838754132989915531906138700725952316639745765791916736498526426934778665420947692451369156138887162732872752457350415074794323128593223596012199967308572151225494880347252915221971519557290456159974604299366315029870018701889913497951863313866998971497986115251408468629011384269416473448068332840431255265588237409681809678970284674082227044917649563963867652784003350189262399743523320297033681294193853139708220583508226100778612370881075362835176135688105443905694577419233417986700214696250781144286074188621776911497257174087314401912764349259837727641663799743786108011247269805677969494432414126962303503556222386588804238503182612372662450966575997334628510547000703216166980734122481083488778466939575583110840936473718257877467204248983864069607096910942425824504775612606039194494605303905785105130390532692538497541987897397355859547294798683102846542253694060738702678970494816776557445063715493284621496293668768461618057088596615107988828374167596110115344815854132680844908189806088833335566204233550277820767803656691356630330566914148209295956149171096963467732969131087031423467670765004619905715728873658740994212731561750018067421076611044451734893027160464419082703340064697902293711665902924306428343996999352194653931706647768880301127577852781660451146338133072345992460390456084466538061019514347613580405686451062402107185163452359708202500707207800211116656837425471764294880404323261299667042855025052507353608595246129518124745557135787503647520297251815367630007438577228792316583600574506375735198213507426811693341449392713285932555548177999825541139674717687689556375017494209116960698681705630432906800270762494696425005210225767130430893751195725699493634131119509289185227046575133745018583389132876976166376847790731635013071326446661445986720083360636012360667386176913071146505686490020430405014277690879712923934552271153761339155861883519111134748719058028585472061043816612160878003015307559251962986859412158409326778905416189310236962304940012590094428945077034024931319246834144480722865000122562407884090114339702326696673803982895837326558502075156066605776211811947336086409057513371797652445472494564412694708282892472988322500433388281986214846382414063945970220637711474491792034954653317186118296639428881280178412271153893056213215105463060910204542781522196139190357757216381487884387574648876821250110918748038309855746539942025180310689557149041016404405112778443966778068714066943229806935558933046937621126713300493852427802603759027771517221793051667598412368554375219079563526825280204200603067632930417909027461771145617411164042633187621018107787409263129811064252693522648692223582898089969242022121726515973942907065398824624559078844433339261765231617569368870535448031405738418501058901559262585880569553838285289047616160275096466890885008816245505461222312635423115970015926726094164829253267171748116965924282395584626216786329051337987500689915062665389773452916460666926115977589921796646957033258835865766004918285934555725494284796981641432837722466407882757555365990039713331282555489069006420304752189064186696891857642364647835941341358582488086935528271560221794529141178455211958678357323527375427875720235186805105510695551656187773722713393259821193926394568904453089158974349774775085029366845226319484679431373952455852634756078058162858434934818027298830192789297779239374346141166301079214149615859293553794151055320515703090434078190523583213720946384336227996242849536148416359091364853127026067270488680681348848070355357998083055477922880940217992294154217101741963660053011995729806632392892910301724917654617352479427181146834480121364528959505771188765246300197563574650011821722189545628933310493705702043631099890580708793403056960234935928285912253502791008863468319067709797073770399350787687168436487213434609756024344792549994226903220569456179995828308326780627163419482840959192505208666798379301866282752938227797520547140471574569871212456269194668074007118082357344545559611120713407534926897902658465494903355781752460961399432168397907019469908161445534870990934948102781450031226278313136711671953335490958105603058256697258604092060441218372989951497829878583605337245788161890679277484581201011449740561092346191266648600298689617280839146256733405398663031437780998426020728680189516938526849425326032595400732631583162205835985456799518135657572563855417067314745431027172055555603965324502820902989412872428848133902066116193873916124402284977084643695990696679595983309650674543404517091140951067647878680608246756385517882018986335753508164723280570135907726136743306376760163127179533306311714097567565596903067603524006697232664390404806899573845797720767852022870073600383767791404296763594916407089403554002227349905152408495657236862061893290115382132347182432506013443515611050159321473553477309564990938146569657252483257533462734250143462007539477993571592438645332460010252789589263025530668493470148662364045337084633943938366861206142572680894633793085325406003389911598877786615723264628354965045556411165058368210132422843247923382045918984809396666839507161603230062291821613458367613223578034439485811398270592921326635534716748434495041299909041064422019498157734844650396151335768774916870200525359285231125900506176288362207085529124033765605587254031300376506761275041402768033382626686014631949567975307355956833515700637614897459390901871017178546448399631732297919536723908561484323659909992123913517026775421453199602485305839538148826029658734145228872399838424221072111719430839269631834624867946368003162998026439231605775687270902422037291458271871374920945610643376991728480628047122713210674583157224868371096141978824888496004935267023256328581036525897739575676845775972051339276110790085838733004488895348790497113844493053422933337603118747373648416550471424470559474834722392699946742131544423342998402817062431525219369031324483773384865044884696741897014830267959431975048164667868673714078856632479959239773153127754948369148832362071008718623015114214257972292090672811118901654505449806759080350862161867256117443580203190481586726536608995720601455817979378837625016456675908381051348632424471565639202536067492399167038515792741966533639280716063023048641828477832859274697835218402055155593174687401734699088054633156422438461902238062710508426407753472864377815261399938080629081479177499767906653560042562409435779549377627793992320003401208515523721184011521855760891093633771651832743050275871447120169099973770654158528554357543475054184693684599955856141209211868239673864757974734076334061748362847137900556855245915875446685035550034460993682672084524109776475927736072385374868044969002790344872645478932521201526269420472964270176612711003389025682787381814672922896417858550087212650812706726109989310803548516362921160420956380546694768787682736702764941425879248621396361315202590784582842747742059840007702948375472997723675083280821642784785491578939575840694243606528804540480638150497393583144537547924149680823307281159238342509828433592764236983316980505847029416157927550980710810058748112794456499250467015382405916553650487495160002094042749135096013830039131242041105063628199634206745008151876401773794115212400973046926469448127417578523755634040637353966313744724459325562983705851115273023063796948982718627260343907890266601086479709366866768669748071321052543843960895570457117108037652786407643005947374655884638043315586802635009348492074782291909821113161501060833835083463714301935274157030822155097767361407517153643019783971807888738782215175321184271020441677154970616629796322417276883274587192136280833935670340901381892805809801145853013510838707263402810682042355156211867288363702896161107417073671417147314503472766421851092034944816567236893716623086386197235899956416629781480286037047911615745699189164095924046459072613104350561000751131619379142852196879068349318705211369251177240219285431993934045480543799863046721334243569306436157933786933655737051458648334924559226762519842159940187726761172821053685786751564409415213350531225215177335034443399250766977646818777319255733005601809696769330025476747548048674314359356855904116863706705077411935489877324234296735933103620191731929786076422344653632961564894837131218249777023817410638204767866223920498930358740345135589142157873735401049477541070868612327091228942460899575238752122811434595816094866792299980526327314868438698728437332087217192864743981268431198262853580077975080101418867252353681906047004941040108636504528095797871951903410453756726709586423321970727000639390001629946402566451861640075022685568594107881953237048047353410869434328466238367258285998609247851004754612146271475876395956440112710902033813534879794194818941916027355557236517928601796669247930706019902519925597533633151538360282512590031934543250186267773188999801313686029111126627185328724748132486069636907802298952425904862821635484995330579263177776948949774496326771048258937083640101456403799465211587575310921244875684091137559030834666140876791381199395519208061680189935523439617302938904902742393944406515555551230870561671220414773933505113128183321160557207126434514541918668080019340295773569635692582300016847733704155093739682497899288846348891135617471574135239914416741208943948232331790605975246376470307663256967561171333951914072539892846627478122400176069811442181555510033903769532659702133003589586431699614117488622194461508173937838997080683273083406729578009257151597924509736471657470874164330369463222039719086879222844674975108755724075653092227087254958427506798585735772207786662796838738920400017943352102577578894116012668955598629332935652876851470882185682947250674300946246990976613817319026529864759302727395568737632997508641199444595225200666539964274633838868343248517155914329392181133476817661712647950191633435385417417397895508160714953919816699577009023169460279026874274997474708327114335018365788810563597149199363726476941844225302436692573177171807525913237897564599203960376564549582758666102425884252695258811756650580167346297750532107679007530155058195849966796057063182756166434803746185186290110429595237814282746064152852296150084242280953175586130371919424544228512678370798108851757479921106661400242832392796253799504744110711921238704372716277385524737848342264943655475301877045494259871092470379702208365611166550146403843570407905041630574555667667080619192564821630051286753432029237875820903578480888554985108625366941309341418806101290042609608826926822754902832562484348830655285462940850360306464172276576583423270817309795769450765432043722719168066610547289617936022918069967165941051172916842349946822557424287394355779787785704771143017769365271794439251737448472585949084323818251701502011226593227726420011118541266639572370188479611413468403991886562517523673966627749786110521623605896192142074945093762134680733776239706882851901295192192804243575218689146602950975887717878831342422712052404955247385390820573480130247763454136087436193163002906088217261764403816420312911703515583526652519033696204814924539660451281537521527248752124797355178386233016790735803428313962710445287540236769482235080343875140473092357940383914538457664042733167764907795231226860018204786160891483137502352819109057582059773924157554883620674736367535763339653564257358192493143587644179775664836091033888205803259740891939101147662350641464700513513066831829685381812080233137235797063829274177474155108269920797845706181021081720003465322076969430539164325303843255030367413480514754912504440501909293754056382496289058193241553544546010638502431544256714859825084839753941294273453654623870038455582521884098826204195727326454477843386667022053263878010656780097320245067741151659593090588173570295387232364740153664923660667493103404371537367170324830303528287350270802046445019827029267249355008221668182137053510715654516243115053039238212158143370652969363807848149427194613350368412379579480116534199929885076121155824776372316967759189427354475872526744151786173740720129219063784594807359269091065331688171600708482771475891844338930992004870948400586611187357660322948787117730906985152186519261391550346812290089435228852218065722802300236076452253813722728929614598848755192173537505509745695887448277408312960180244364091782243871679304848549276237870385569895646078005661681612282544473577956641182480439868121688344449488608010601450116242230925726843408951122976107867857062685771000394008567268628288555624391894965420153142422344744519202298446852976703173159711068563456854064355051114067030943356250842378891721724124345057408903907034628354936101447336359122980719355268639598482678642751631237247119842626398565549721814058239240342440115027334718917542174525077730391505235251026088680211259095873544381977035969419307933931727889885164570697425030648115856797544736463817414583509446187475720903826454565919264903531597309629687506276318425378225229574508603798162281864716608309760679560255505074481710793305324075187407537331972755252461208917136137433950516454691151454732193840334363635803103582690221364730612569563326385367464543384156265184470749452910304230736820202861226440308394728396343267399029090201909465656027438375867938542463915328705459438093697008143489710970623728052648853058171458501001011774586866920120009417075308388890439946259037981986714462138981869350088195758991932187444606269134578094739473411580926948955886950882157327840633339845161201871400388050066839789612563660085079954341622113226358369549885586040254735610484581370419838667801678246768431721413471298168056843139597150906740049996076051880536667334505408831827756964957492990460024952533220757107962266038737848112930579289583084928152535616802005020150419939886962104470408873046225839822510500451303010631344215521400417814373415732447493616176036800047555092190300705996473629796485836492306879623431870111498064447992741902741524378591471458249828935561765913051857853458638142909656612041717808356371292568933834613376232663516161023881937469470684719909120324868547383228226891939182979856506177729442883194609143242683885579513183377628038205943159183465104786377497299747315500113316858752997365772458913967649535799987668334308185210942191738233473596660954086635302639352114370100804122631339353005809578913921727906445467337312619258403246022108789968870197983344252123091454119049872658883808732233614519208495002529188427192884405352554423068390398639164062044781310760082878681157570931865407541495767828789863320932586836564770303659413898473243573394258430915689719869119887371411948007087988585828084190668869618609118393883432838583202450226433390922553340694146586554757501750301185857720886098951064932650541173447608780069607512929696820725411142699772426905476694455166272539889785498082951071980147135059694336838226013591553036392446173277546206336512531254865904359157927346564567333522856425841289134924381550425636443797792582203221053045562368903779482774810137256604375991356034672034534723179465189066876516068018569613346990576823516611893944156252030398731282247929714546703868998247819708941751125082672815073920651980521872246564214535750347785101906695583296498707463802734468831728399485758449780324114554006767391513947245625491237172508933877502350264389716481499631295990796932275606212967720233221133130565021584190393706290019616114517557285734846173497181066121878114706152731851980595479663518371852710439256577879435338295877160337544822003508504458691499287418532072793581037283270679470021329623001136150389539894067002779140471602798153218880209870589239970442689743093743809850184085848711542678951948352228721439489349245624388665689459900630840083210170867687722665123897874145235420172735112253153019547100217509618668255998398380830817110529407375685665551114354371843022573287842386727872055931897481397113409683193793112005090083655041599425728275397853420220834069797033978714918266409319345105254964716013297795131799787829694437765409665312475720470176646344823119652316237551047416139000371398598174321976914250483620601029453055120631820092636970269380292180162499646220749150694354031874316961953411211926451743083769600793962720587894395227468451837815453328555069854902540154753630113819052022023709977882775059813106928496492628634627668771850553451870733242957998309703779806651484622995904264483781095121684744066982123048524061033950215543827007642844818027420638736220293758613713843373315153128042921075579023116874944302701208842454934169618040016913214846215149632759502779300580607439240347610169226287456434482984432680813093400299643287480673073900688182961944611599671758545787228343212121138419520301482668289635851297260805012788380508151681736467020939032883146020763774219777822333080636320018122073576051116087993944793946007795398741638150838642301448869393731892644935995246265955707062153265006680705550152471967769904291505501401047363000940866172167357222173490984089074457317366545109330605906807729120681765546921758176265897357436900094507582429408243013382137096926502202689060200855616204035191346839666368765894128362341792819085361915554989961056884506626710265222352379495063127123087638232802108395584780409421859343840176522517206016617364370015090282734712832963635671845599730594622633457007686550678939289363224689658869735751256188081085277399330899077206475470429619151791589604470497317458265237523003293767379857240832485660079796818421801085921647719767681094451618520921405902750038320793887266007264766265516717317136658606483765269930228662968504640167774033847403285943559572014172154841024957633943773500394361151561658496433606645997443559763513854980881137704575946096383937908325892896354429254997738702455035801533569269694177751362825852297679800378481292518674362904328413903936686608752418782208286696880232884535515924835979906282830527984653691399962065122364089052294953167573370297046912440181576959012646418926802196689357027545943289551523830954583866683321902648735548140465494072321899796214666784795704264572564676703479662756118010180302503136837606831420013207137667872607374592291086232823602814571821278343658928396638483591862800619659492390216144048741342440449493241408957501477339533737471636678487453001096493019409377273218396951404857034580396748223824346933734859089772250084642430003645848496952432112196450740201748595412222896819303999249990754791075665547924226462013005805653751663601708708641139865349434209636476668081839899465935557979431785328791459462288459252659546802153689328387641141235747734055755119524242681960372588626308819431682371078702442297598173494167507741077171422808728842989851556039808522532747237834964134094827102662621840170422013709438809070317459618051546785653170205492906252151040974954167455344447513095457450533777306677063554501856710800919089602047223751089772948139024303255693042529227324048252400709961854485162184865834281732508047291849436792101685485203089220432086128021384814541575585110750166995905277954868923008364575496597928719514050383109780768734088462517555247904775583923619261507449101306878123311485121533007677597388994863953636251190921059458285954652709587942025748339854849975852278832792568433289592240260153463004700121286091702530394445496010582914474713241100498353409569778626183269290796407848991085613729345548585819733594412969820847556967618069815250002307471626265492861752737541447597610760365226303659824728253844433526673841625689419440239257382176582271404211871935799367105586080060515211369926686000167491629864036581444098515318041111089604181075859979695131241320459366967071805078857350933569073138684735465003755454744468452607785180369412303814671130918387074034983874112288083784926868194313937579502244589598991598238300764490870748748590236771897562540782898632481321330522724440127351515738298115950476161704176633555198919994083340880419371741486507714514131056958647656996185044350165263970411481544291126786937228057721968146581716137967907655227614801888883144013419617342178327586597363862703302644452061366069257719715882587113783955125436703093489374641863442558114354241363620428138191369932554522699357158376130491113812742869059370007832778897887308936885340342099056524153024703091411595508130209792385683432601347345399325241963002383896531470413714412816199656052765523931354515890127047718299022153779026645777259080271163916765619484254018851510944131512249744449434655491273113764214395254814997750387041538124859632360453918975551035496955426454882962086176924301487897564000594225264882352210691641239700356795815556214001226392639017824345077843811643054021887318729552960067699221218632816540064014787960850686716368208026903602227422675565420964351925016899331142275640067468874465341803922596900225667628340314500887882070440981141387607208932171241527510775066645451471055673763371033142916332882903830816126039230549169042766281392675678451221662270344141337688356723012365117435678101177356625229849898611836882989126543496942605035680196405367511097632980964189392934488861059782643182150888497033218542530159167007486376265352225874819044023651246477642007752842972099177639108144242376325450912795844139736382134065018363383468035494963788121676836823099774431161706571497584726565468868248664904410188086481671874552961567217113052456664241050374322536163175917684359645998149810824237011707063843339480435939777782974795472336926416360858097399480025779756824792617213664978342657541093496347648085179089397191390981098125981114642704273233357176062989869972807584145490897812700231117336691178859763030380125880497521267180153833666893388083704989987013609313075383116065210775319469586196598713161866195889403343892807528517958907145859915347537795368355303511234014253842925056100683393241433875541846864502730438760298026145948508387600917198930550520933490706210515711512647505492825405850858466104677501468042453661518687650300076847619176761488018760296251309319107531202974616666330296617902687420560533512994128341159870243718763486106717384849036011202515516449376137405949532949679033404112368642407844592853452004834237446723749246247112949659524730240331462007020036507016699869520970848880159539889044013727711663002119358942774403119209058237593889249302000340622117494992339349511004849939598819782324639952249636172775238188382632882697577189088142804502890506150629447414927104872025845250827580936493827976040369576987615307416360914465200175786484659617121699781732878106197153500099887462793111531921232349349560086003887432257002297500723062651298082446118976926636099135036708103965931482582121766330466275843250396023927124075063632894356767380859603857233956486442975228306889617293031342508933519590385744079922881351143107564932339056453465776465270120867049956640319959912785383889958583866861568176104041449343459149309072756632863719176163012060988475414146534241929560205564770003155491763132206346556225669743645028898246553336060000047369266317859511531665927617793586895351602817346455208082604167166170472512038000084416556291921970857087921333138616471450605613071608287934261767119233829640754539588246229474331657852993308167866686501621725753633014700736671900334637919845652848788064047906609387215105961184591236736527863501876094754800142357970184918127155179775532682230661707004869027556609061216361771705671696487055426046317853917284118556391057894117333099232710253767617435243533637054663262097180606015277893116143482772304840283285226315018777666778172558879255673646182563067846033076767586424763593695642648750413238871937565003064627126571980317642968221626900372511990218458362627422562667286095981960403684483555223132940603383407672157874570072661509404020819770877522668402920589697716274828774139187259328681033663370697635935957112563316697609940892674047486734527976199933767660806163687291895041995097610292268884060439165673574185408591191837689757317230856918124557380366943523118979550508993707169363177609663771823894550957431358977644826440614703400755523749520663849594168113040128093579321012361524712893218744033808780663241191522957899676236756519037281312775464194849564549588138037136922609829102867288187997255699792792256696447428543126663988907764835138681739534875963193707667429159163863975676912782972632200067437227573448791787892263305567251306641909000388991864725270769582900787177332246080026450264971781572024884660817270485860722119507979235179988534192017902491775000139620389414480173989701519784319927716248544833898247341117028892104751989081118218110696105050523601757143508625535720650114052054040322578506013322782501342084020291360500403822940868790160039995844932271913978527359020337639265768075383577544196802238255498478417214359958321560116379369869010408814672668087489259155951290437173115974357151724799210109878311777372030873157485123092848669693070102761549291445734974507603193237446134179019218389475900349481647818426235410839311673695346721738399608020800455180006479115933866336604580515795402346575925949113216522789859797142524630319190979466257747381834468809790242490046205252479633045029716922542193490306742124895726021708293034154033506438991970018339726991096771815248331457381066232215662504383279826783645535449751852995730206960787029394951593774340023705738209924526575486854648551787099349205318689997123161428055922794978838091177328781920492154531365761461284398159876835851767317723605911622634660009444063347329616749398859963975906930932836270138340430058348616062022597267277934968994026951036263473963278462417014824055363880189975659738176598611204710281639900273109656343797670669091542758944628885206674404005946271554952591290091326477803793115158523426568498700230311967087880161420157057532785517685989264215981898174199885121086256561125891988759511227257290174687062098504142759387201224536762251169794369979307932830330569397185963593184876691732145952967194384227936372051802729991969990712044211795620343783397128204714393670911012822553961040840319976721623877003347831807003432229359680792878199401457666424877257900829517877013299953456409221858287189030528361990495828169887584223370375033073064796145407482712061523370470439031401316028378262738813503027037889119417717913318272975853895206204120986089887917255068598426534662752874785641387243088774662172281924825866338615099103644112747800911170594426723343594720181691833504361738694364477937801369086717108170498517780654513925008026077504588146577662949953728684558357909272762427428065922543126394122667955749272383746046849426042778419106191336516145826133708474084887042195960574368753904293389530335627711563497388225565839177042060416044304101582474554214436554996148469175938707498754225448915760824624046370310875597245233186138956364098806750719448276916188554120752919798599686246288071098849387822021354520034270212725595277852724595856857976474903487337508932600178953632140398839188451018595456961016140011793623805680273967770909261390339409099527673888145194621620376615811865595439284888318920984539882658948646917546877031654207789675011379415215481584036766247554432924621166931570342544520133681487204632431578362470284484507918836824407576208372564550675340043080835099918793224826208820032609713174859197546683044560465594678862175794168282903859686517901951093998974351692103523869654592470540292689513979473316370689576230754370316790919634633547529147847571399404236439593835196943703794067148227059324654026798599220034668439668890213337811940848147743896120287990837225427652232775384897145043657617575180918161555192409087123476073437457345730419681955398305398909284365186798161771533007511436262051566495904469601241318528958526867940694091961166802247216141350342758113095654046250753732833531116435199701016787142244409571279377086397195345513343896663580968484242648206963073682378971824843754973944192604671287853008624142288185451261976672114721826691168210209994357424353579973541522724348828419237756578619929250413208154231809213969038066765861997397584758039833542673794326449480642695471779439803372784993456729636371040100088278915374640289407345112376887996722742502204693613068149879683240887844842766274121397191143090022966621663419974470071947487392466849769633040790911657350445363686004928786769849101277774941308783523943508076682459992219812999340746807980223556182729133372641887721618436023813181660594539443831350364958009757747862752119102139101424154710677252177203356442339112111780194628895404328461254836862115960425838230170586138519132981213190248826643896278911765968383902389612777351351239563368707481694921354426871436527178373639600720852842302157135776667493497407062146553267031158244345784698792092773251067554247573541915118965762971772385653477907038305642168231567539778464897621816531775314535485312429547561016632055749233775389660493850044446354867576030038870787058949621581384452177744966325631086406573005265683164622424365832756441846198444010205603975327480049891503014634681614918410783608853343971522655487314531481769431266871861535408921411891901153047902879077976432198307199471223618446434805189924144959164075087629985636441474630276529706060240736469980483710976956153320931785769276215223740506373281968740001243991264790518862083155112166690877215239440211064351046780244875347003376791373488443301589505558804893980841233206268930291736685299130376715402608815506547978166266711000884540767704947237106041054719341420431712551460171538122702377134516090335474756959402854404320962459343006088265453640706268114526972672164584173516813881989333569927427465998641066013038196293781133365351912842004185303405511322112209549871718118353012886620232419717657061459691540425416187513801014614990154957617939836353960216228049891055276129230169502667315683097983389931499154178489826662599357047319402738290700850316118462458981497048422889500017400863527801102413358746584302474516239896800011199835067088120771584904008974250386197943384095452165542728904679510989353650416557318391244252687808816972820661276989622406642806471815637981082274602663309970625695295280821283302210012935592442358874062058164412060115833833709497564320886904458672872717681165384673421587311816103845796630911907471135486468007534169097645653563471117049730917568339938487236617018541224221753421949223903483181255528876554800162794266964034789881642438124774541819029088594817726308829641808163082214904446673674505648115774365849399531214983628022806543994187161904571595598065177310277107823607514929581409889884224039532443359339755769824530910805075527244226192499278834483986844653906063427721146183589013139332008712627234377886356017955449360438865218580559911233863832340285557198581698701847567293093584493231534702337441119146080274966263215555605939761514572804867138761734317361418997259239873620472001647489678363186611123931468215663030854313761273467678785475787055669218485373693295702521753719225535514692575300521061570175381102664465417146150056227068675284420318869650839546272012858440186469049328144517761163058354931118498570998900781137001624906105976948423002649554737272358283754652017814553031213395897691766911145626097644093240156667675849316461178335935882782004680323532224621534248689893468928058599432995844129010437495776040398773722178595200201888326368446070835481494944783260607029837234896283176116172483856667712822187181981295336105473019832421258279333930034338749693266054632919267263023305604535747013350181674796783519454519564434057459296656627747270907135896379696324036405382067557990330156006931110351753149752339230131880003246603790956357851149857513915792615687185237620476238509869169332315999509328719004446685845264856601357389727438447532316164679929039973977830694370187676813544778058021998408448225270762021337123486923748529575719941207229369741299850845228126742350915755361971278858292275956648468566452670177202945418929071650539016876944191102168363052865303041835958692011042097453654481034541413341694582592243630251791367131314042895518885024672383522006858784085459514375587141035082098894781386779542856777306588047745988086054778820188091057715887073841877704800591678754727183694575460997964349444452489189963589937722828772716836908087618959778036041241499746186215214187414596695377053877756808056258011258742995034732024295234571746742769690877572528550554517384438332759822139241058645996867073409732928331331358743001349409868687385902691902069442442499975127019792169475493400502295163153799636767223108706109106198393870037027644030888658092041397598016203970764883877926419759430806872059841422352532217944230930845847018882229226249038945293723411140108704111005219103399850325092771270293794203438400930663705182219850235499053326111104906207648155608469711570423048308076646782008035719371720855811689980561064331328154073627637180985154925288457774326251899270454298850253580573077364638994140781915192324269123043249705242199318773218923971588893136078502922196148794621038426207857765811492213127946072682906171959339020132674629921537513187058736910903472540086339443107489743385647082322614046348030189464979188438760510487707024507644548470102195267555565527006667086102342325658490819276855511166757345026313502369613612965668741099460519379303502040341607613969930143421987148175643550554754279538041344986931914863449697827886523196483675751796464601013280426057295329234131454205848437293864543463632851273229301132222668436726771817945291078121923759413089400463257976508910533167691473225727173265916747255114705129940186550596240812644619132014956255419206849884397518538310436947081398023550148951568962317522991007634819498187125806363781825056560242552322616948084005485107407449813552355384666833942033453070006371329280510337881779794440773136713691158093293030879441197520321101212743551478557066022070368889060500858203857646808201974857314659430400067610543536689819937690128878350781838494429849352240950723073481362649978962697705085673936908960274272471552072868055234952222416956657928872468145172568599971734411656765587133274891304981521053499114566862458049637764347634351427954514607632039265114322590593727945373770134020180151454630803199026788956766443343746858098369342304834514959495259513100357388976476024328361063059549114079087338039371359177092119838567883329232706065062098841557490235518189144370345195571139102518126567577407393098249633046529879821635492375210947039579819792497228261914442844956289792113831668361503679356592950949131767713229499955124006673870326159354826267139974606912604411830081396172083824194837714918057314105318106615994323433095580300549237248346235170007681890649418244125198222969431744129832309314046948267056226279171253232999582940019685224685138197274384402482901465313296065982038283919626853395595384389057057070591304363281544732921160866228751280638604615092414071728310637677559460107225499355419680405744293204081413766142333287578314000933835728806566417397795326446918843266464441738343863526043614577869975525447506686782541681408320409722867410639975663996181652247689891138622204427914525128509568537956890974431181368317328959062124249508843994624982132856290036064255752819354596512269931635300252724024877765966081059104118958562632590170165433184559193147125337056331512005228775595784222349433126208211744368568330086314954113164599540615356811406412995601042645445333255009900004031458494260484963920847805978076963843817449729636510279749429235321629553191020560193168319804687813930420149968464167392161855847391076535403322794139152745939807935339008613042641059166828128241012743088748311931978103026086202376869211325916130203510192736310624459109976775135205240266968098982099436575299990672163894083672402233001583423114619014829837296549177065843152175236161714911580740266239069811751122438193108494086497497067446227983816513547439447204655490262204978688689088831217678006943111798730111764968691462393478634872087479415197615873753478678190825540403075080902050658815558800275562524398063877376002378914044782546989609693695897538506485304938829983360752695619237658119473923417052667825008946269652566522601267088957019705133048677149784802878949314148490767366088284125560094993118098313997232117530664946250827621575133613326489358278475739167488330756277083261762685730053849344508564194357335961582571382015342744236257604489078360823779263232897917068565088220896178321031413815376510861999332066262127331625627139885584907517655194840920022359529779987900498651822527835292832660041739061265551272442542703374997547096342979655582571354619970959795700246014233176365850593080954759832687988216725692050945444184798734161520861813763323825028468545414956162758650769035673106912690321043647398431663576568623965366286468775356065460066335285030359651637445077408540103081803842492891107986222426223823483987107093819484855299508138500849332834853271530175195096375788580448024449722174777566538468897952187524021708784561718080708238023946368633395442564334807824274383656747029403034076474263384457947164979835334536146329757118432940637772222771411671702981729687156482608082758198339652442651104110369737973578589422803830639651664812275622256876224432069885905627990270302261393434612276885124906889770507842197806373345745397426711731129482694406864359673504749602239997752418267415471987073680512135725566118022154215959783296998181946475039193346356402757279375653793933343929000527690492364520177681306953874635792741191399651216451897560059405283281788455678444494583721829831870714487514490639069733431532263044064089089573667941193853894014111071049061004238581370343399798874341169872776741673287700630730494192757878238215916427181123104345339871537024699574632867394471489003410592551927960685265944226768175677909313026448843282601982081015387777444628071840019222673263731998983283031782607988667992033258350382519790061204921738089912693168383606200447886837904921554484730901356671500451190643669648637241992493474687013209635510825252277156290189848287469739329522014875175955143772271321897918359015429444709014632617934471848195395800344870135383244770649737179560593455666572206903452160125328327358108954932375878692154464776660144243196421852461858700796467777821456637932091703900619444545969052476967877650526396411775638764425414678679401033828098210227581349109809530319040389356381169989713113024590340497502923312745696837908265021913974824465395691042034263100660705889408442562676990797873836334632681514931241757326592595518304123128795253699914621841400903122564491103960118970461112474138318371410548756573250251711440003133087452920540967447727549378062947063927556652587028471968161370260992513933365606841534523960206408012191997446724290910464082014781401001898103316721043296638549165726296437739972006921355807850618391641940216777512231317563328421345293250226142536535709560114009296039357318458845169443603427338844239072068826281542487348354110835049202571506997008045882583597314036244823873288519310947097914458235487380489912285153623438259292372475641666977419683525058306693591266472692858641613597724772089517493645859405539097958009956634626560979278296825616245277745555707272459993478217315578934790653107406718332567314156308672904324981187898634287734011921172159930388630844094697119707252249443273296720451166245125313146742331676062065236132330620719891253281314530527047652753399535745994573927646407779867908577881530274951701594841672877164861741263788358906991409165523373859557066819392201847468176176262430418305496153361071626911779026334766206750955000231134790991774154418746410302912808396891205726541386797234198502397678484705402272246445984756521334278600189873603767032153615455931505342951613259557886938424927178475000764312849666756128856973747985510260838440979228001148537483695284610300300157475849266543668480803392222238737115892260723687062627649000097290318686435620054605873118265984399362420546264126189940333881402703699602786852436938527518457420036129502184250802721350715546812085522728941043096992895502740903308388603333733096504023919303039486635406761920076804516793275627446999682626175863497091137682950116942679314405475117484264604362578218547928716939140308392313236380582029824518556464739003526609793626287004126385252609678749478954747213843276988477790413716010814665666328080687780958369913825344899965897848655781117440831658866926123309109544645190989743817547060762981784038845665278855115506815435427499089122957342383921914491658973653620312629672803735151200950992397752826370831287165982668417761937566642192827795980543266809832017910705546958175751911896643433341547409798209784798016468161347473278411132321205308414980437037571240236191689876885084855107751629610018427321244433458257462341171444805527594165992030235065921682168070000041281696383477651629747757654924361505443342185573006144012633457093410504680198060772043810654173131416572146641040344386080832182827604338141685182041161445147308822364903092571611397798564411535548666995993675177014391941579741453582072737771465941160756903032430758648662488805884377316374954506836552865002383183589665544462876849617217509928405422899425894129728565426335784994004455928217018322313640249444161312116202113511302386518904820559132093031781885741353256484278225649143608844215527780551208564692613252662285724588872841461789377746589470771355962517929437622459093641637328614240457523640251200317248804432162958377771370227757114701940558779730865538003138403627938222053664430073684790161748129818541394581436349472218533800626428601347324244355047920375832209503991863885673571437663870465465630649180162177456395521812242929535449419731046380368318727916039166054994274330917817026853207753422798442330597683817966412296135905517378616356851952077764362814160648892255871529124488451876207953081730711762851674588289302270367139298012982066190830640014537703117989217956627579551620621589381925046515071254798864819220889278316728857883843663922187463189584054170454841694128688720497435435590016562792957401844875039196199839651770782354650294256388360901462234026270005571595495706018175113282811900955614938731369242284904179386214336036803664956719765518189387785734638297529062461611744220255545680413845261922571739699989886505651998392250744236660815092492422324615694342638727818145876807869511340712521504678864861991019069316556488336789089360636398521637341002010506448696039479683867165409618494787950167072439519570227848463762588383811419160284606021574491307730431460683183716274097336084625094146597461596562151521659544160441227594329025682301037301090133940936374448872494991823813771477053486097308210047552081635390977037605012584419539901132255684604240266074292859905095098838148085060089891459989405684084710179042802053904791691678761124433713172948179241270902726280388134563911727307368139573913355608784034432358144478825669999824753297978824859917007248333645574657003397659617795783244145979470838151368287925613712793610362375527441822642256387784170889211844915518158000100229040149560007669850562892751648372834499464451279691085136703477539865123442016559417018489890381489377606903799504960530417539054803493429955399017427295349608800118481476166289670710256521493012057015767331283151093661008267837351804450652054217943287691804199759294780074812104267983614564049177209877816338852947215823379705249997112456450538526078478057887552694351028341460146305937352372644156952647658473125605489574411561620097762351290207881953455352044273591219832659804641056468530705697732224882090776516799361029933115135824572148153483898371887285799279557589731450496052664568725063460987960769949193942597395606009864176660900440296221510493158435331647983568343513836755593784484120043112657814510337916966000486491297200371303484032979955190054531790453099517628557624775289969164339278173848165773202973672323339016635016209585759521847748307739204387233266015792480366570456736194586385045792605415411433296496372198032149482748456076102394638783538609181230929380802012843889309201005619057451753096967501733418103378514592134807927381085476698584485380997108803821850060045976921207192001603957312123476618789387411934620662460856818207219995438498646319773976523567468758076058918080010377501328090013691852358817804867413306383235540875087037026298362336416499161967528788316034949974719301734180752934375567267983023789063789610758077436449959981572698434554296111470080969851908354056668137208256027409193277781991497516588165326186543461511480280954693938586783137428982378246180950912754708577265710254683779406951411114253317463055817790658236612418089895794810686464501348533852505428277900313349271599208917297541766580984966519862774842095520665395246708620542970797081366596566263265202745474957111503651109263775858010782923709929581458224669165658562924183196662683455009264774450909632738397162114633073745540302513286107228133301286563284862593504882137985047498632691455990859151848768891261123888744461838896947466982666433716405836982122778693774510685069726899977912416307280164789070461117549808705945009734287736873093306135272780659014951179182993538546810251667554922159240076598913144802241984457965953907714970053806983670155056565670721115671394307850902932386392984681444199132357778781379108906021640545542341551603118894881409671053342916464770997819742257665737644402655479018532109215853264300301555729067117321900192070558822625701219301249267626413184821708880678919436324994900529870103897200694226753042476500514469451348424574355817341445782919084605014062095980270662566285052507907798077511095951609697263565914245620269359118824247554434113752401057526623417000183472190342789578832337033999915390709256836588503979473484053022557077111373689655293968588176660753279351915066100718106199613882545335971275482032285150158910660509528979048616830347759015998011683686298817415559373403057449278790441690853224372208910767884271323868750562653238054382448026381699800403206520490705975321406353710102455840426383310314863559855503357340727563159454050131460765447085890556495937169078874937883218332212463015785518666765673054722147289187273328802773630305509721457823425654135803454793162733976442794286619954240114345752094788456548133069661290559345130962635003531881866373581531967354612043407745605177377933603807634346802308772321806400988163390086906563866945460970247499790335370539468087181608510826000539609841667475005803253011210543299854812497682902597150086658711856501462775928737123033764750169822345593786660842873133942851176815810919935529459363820134615199566851718571669040124083179035885203219900691570779121959919683655659137742671689796777621413375748719353793452285896809676336496762133505590402966506990404425913311904802665257406175041304812806255824667976167727403614684817209452700779594729876099951206920059739442031964772311623547873385809602846136127660721686477560133335820582530917877319658089387206930588544394471739729330081810451450291279636180197750295974102519665259791509122005573759145264960197546901081985029935169071277764322898354529931207525191228205883618690440514865247612358224231213019159356305070115676991372845500116280257152148014746877468048064607813161255962206097266779297123321344843086753335593883305459115132601652095941293503287144411867673854179445887321414191680829522867959161536539965058894135578550150257235275168040330013993350491870700102005308960967806547115445534931506236181030282741756038191005629357305397954358108558574243302625207023880762606419662527274477102404445403505046848209150927582216798346789197535248451167697879322835362756321340704621549204968724641141871426341980063246022769674535971525229283599732763913839765401740128768302902688761210506956461839965058145585443585329134541582543846795793389289447398362533679954884651661774310788386512862330200572657862171476100732285170832066048456859656091454604879742268962793715643595734562974500051812765641187676845364240805405501407870740353559219761740535192390579850602161628928765682614722142611832631864795761704351936519180719573043510590592046000976939293149861857662462265013068514749505210537389761045649749919790372269441090633227625425796076598380700321938812282044043573929051686661669212470098094342340119788763757175619442949818263529815517101129972916207526159768276130699043848747398143449183939523496762969857729374707349585486822695463563314039811022650154606397793307473386168534185476398639437399897165183622339820591552859864887106060437999764818516760798747958577237207385557908140681081851911211862824236910084889393198152848090099636114010199565906698241307387978892458528851647169474454233723851295741689244382635203986717342430168774060291684121952448130227619632875816357403228092435564518365345922980976538632269951666054695185197537878500984043120460554233196719514676932694939884137115260011418284792039335040165870280818999881632507543391779003723969382896743205026338528083481894312962161350332420721280667034862244377551786984614224121132464462016882831465817875960465144178298251215712746011888512663131279518782735401485382045896443174341502856620677887275124809837683511427588157883039968196685406176572694668153787707701231689140903763754980662997046731815511265722726492719705314445297986918259554462572344134653845731368837713880890460566548278144577022576409802678989917835845182202632978680107027767547737561403537115305081456208004589682262019108416683821169195590579679289997605499696852752949629057626097986649389388266717567199416183139169299643920785625376608038929146791191425208464546848070555516064710796633492210288308573218258854488903593803354375163433295648803769879982124489270298885988997510149166870556351197725446109460876660195566690191765498302430023810038868943612720964453197349047878624272344962253481552752003297864834872304432329073423581200138812831041682211319982561407346807240150806127987748678256631235338124758688799882536053504083009273059724367397153003054048090525515624877522878213235787469346569922370762539235780157552187103692254758953775945620774647231101452228370162272695383582874671993659456899582036443800175104388779374210889811262483893972949858010622326895204684415940862717839581486373860694602142716785084731466482379495797292115093850326549463661745400443166272809736295832263691843738055633923261470562661310201625151938677917305794920939950837717146724459895586557496495754859995947299549194404123830265806149335082892265067348480125670110379554229022791449517537708251181676476806783775373383993318039034089788674451173370679109003782184204545710589939641085396069409261149200835221507205334507441076988310963003840827104106546044017521479176487052757754706948810229978429068543520445782347442977313668880901651194223352477692970504361730492461759814348130624591942871175446268371110430773952364493183374702137351929537829708235959472679006728467706667756605268216872448023571321583165624761229141055609493256592005404748127965164614978131281164285942408333628575275488690837990998125516656241826707752995457333150112169982120527638544463959716181548049821075934076228818736914806206630209944042223008212413702852415040680042168251277048174782704638716821952794340515090241189851396217749798435035763592266195988780123193419125994035546610746377918575350256076533633104752645910844296816894271490917029101134257306110306162944224569879857610713058458333860956693509858281787963655591658759666308959617677145585183055672948398152226065986034991000912831968366197470698132442990369130111302703019312441223905237293092784933343642259130378146322289195281498213375425535174056084479733991356474959492983597946890720437804739808772885573128106949716035983474717497300266177207370222792474159516456818953263290272540029716466294331874013668931217834293763327773273273092371668653364718936237565862716597686157109088287538327319312020532359340089822211339258651182014161878010678252161912730787068665614245470137132348076820709737997019682177602794606187351188530171342452787689264291325234689576476810439763326745104929156229770267235563879650552107770340379944496430282932800273065131689373819481745515542712925103416469338043685768454744675089982298359995040386891677264071834519170505828223344286806859125722348259997556255653213915754321877415477810009249536547514238258749005150958505579283721400740049491357485850440651306596083337962994617382946632554455902891762703988155773366857969942398934972874219140842641244745172973592637808213911988545798271538865108632688548330339850712949281162172030694746756861645803648501704656554774076986582779524638514213652515082310456443904771385089880308174097707146178739395422567813588185985590617296784348620719163175461538626075482607149000716638703445178067578842042531311891808636907287458484515466811400019702196820824541233783332625231071166577577792073478118517323882437944497498607867639902269336915722035880948165084014974225802116852052891442121831629740500396313042428043424552181073776389771137531634561414358544709776949690959191606754191610941424224307044356766192663595546562446649096500214588570449878192107153608354349756394893414030170126830722875967106346052933705773926950110823123881854807860177953962330626611595536476410582870445929241578307565847614444006995279741928439393290127082927549878642331154467998899889170584448352046412898328094450070498278307815406718964141742429988930150375609368881500212795778199791088101227273693123570199736187052797636641895717120812835768961248539983174003128119460729493510792820117507649052541559949665402612850182782855479739741859367513349980218175991968706914653281098486653791950563981390985301078402823936197310245842748760208649538721191837244040388301106384585691075896233971039691748922899447206110002733727800733367591551340587462733008738459989728504304831064463297693925685179148651702914234181594992912710636605894888504507210551465936156010760113586241923661903804745562724816944697748991446451166228530504924167511638805886076071670127196198932192368894487257417298779698133481461236472380949824410341184532040480549393220674859767481572299702240625519649095811955111602693955017933449284307708514000082544356113221906247937098109663476740238983537376135201191592993652524749079662474814655421892218845396439024968496880683101780845238300403245572212936422873619477668384185005661984328960913818942878682566344391966624568892511920635992549192504616151815924173717034539204376124485748833652910816391777775730798325167245089425729480543893744581403385759957271540097694828917491325220882515074259925996744122649494668726804667267716033238190254813807996801412707997476119292523011019476172225475488262424220735458282477996364773537386383802220349335300073993146645975102427846637685084612136359636401314513163967000645658056877074735629661537792119274257768394700313865764998645346610322668258857364595310118619723342394666881524057464123697180452774424042812296414646800667071235256767321528949490831521622122799919391474157025940228428761162159100189175856570860549600658329307877561559158848672764382440793739060884484133936978094920519059780646959821949174454311485544006388393368194256892999401901492432655732547784862499545887112895358684752088514817056408572154682836604845670024594521673520094923666810330931994096986018147128685764059876659583607875615039886037956000088930769821208373022029866303827398610724172477342407368789936395392684987779665261250262417417673635198721528013170060116952743945533197255320505117579794675330663356448303196975654463285316309738988539942692947651874188164136395862489948701793707298110019473144494252537583695295378714968518675990509388422396447850586249852973818728339737421862888706365318320597856113825100699523060795565708052341656367636842785687303934731532763510467074197808542130123572996952597304974724914649551262832099913457586899708045670398030038452441792440889123776797021921047308652780924058478722102846932196774964975596326248099882804044036145279490228414358886754723316179758581564256284687097279623474957006747507123360305757288705369517797084759167921970980410475345845170141239346268794488619545962025063932403672632084658229922729772546578550966503764124555017251956168176567870794787432833269579540117346123519613738595842493959209410772571338585377504765775109455033398065911646177178937967522434707206172199123404193416148341209298318201348083187266361589284235134357656032779689707605748364139760187173904844808385791004802987316292778296950041957505181370744413420503121364486126041640075329156063739135879671905788565940921242603295743946406174720432065098499280986583864367118987275587947784013650287590488066794829345467111790196599222717961493637556855006963707077495955244651413176632774307287891607779084068646014167424800122658326325467556132064358490174794200191993489364566999221712634716645460021021949215267137548436165902526794555552207136146071697350916359369954452134089375853813592957661034335923792660160080820372287008149557937538315041009605743954668036995949058674356657294696236855231743907397378907325954132164251213185561422186281066624026157032528832845979688605854254713730755078327216833070579514539203612239511499056414827616986811472750205124887353697213954148359188139955640142246094021351918635239919882583650192778704391538370465178063607654145672752145122811390749618010057818457088841675305120512290620209500903657096712884865041189077254874514483150924905836355751971595998808490371995159356942122140509672796033286663440419281855903247892782730296948983571531312694443730377703347885692099260732000748206896549337098441044097134148555547476495662678808896543115651059283263307301615565027189137706693039892269530324281333913608327465962105352408747105377816440229928435131609979152502876180335195659738628322104519349478107679267073680766622232484124090010136682857255142709102038842014947727581842644544197644019276320080616065340863811784429550123588802721080650533401235549992196581415928744909248196119730432340780337354608731786794585517572608940599570306714295000879524482738237060408978211280351369007718440436521715686874775028103050982095310163953766339814483600390997551097752414025185054012505475943965106892274710321969625855314951478183452681585386048820570313661371745788524249471203001609480619268685205185410178234465239948962845445816657694588884608194006203015229104468498269519875661971921822886550495643377335536555429928531410790389781344902151056974402035109531281137030810076063452780814887424457432901212427467874775224262490853339991516594627133806192611518343594630955030784870055641291422076597267483092658359690377934762864070991611929846626573272557411464369607642937121181268485675128919861544549679412883718307734768116784263680622384285318734207897360947192941969219126942758574562999326768065010523066500206519591416691787057016900247861775407892385415440068635774986355954118582917619784608629365039332691157823015485699777454974437750459107113372370327425389412778379854151237178985335110993278000391795609135704619393923492231209936974325343721755812281733008558156428695255647013299496821707485541493945690031482019783640320930087631161251234578744603672182708156430574311577234861287265370800496085114075790388050519846423556944395745131609842986045263327285676039504032622087006532598420940010483182908610192675334217320959098649272178372330740279110222199288547328285031249025376258551281813075244510887546451591864516523512380280118197279898112248038486701046322682929617672805438898885502534155949100065890145581744108914198661891652738758564873551325829564985152411023276974691082486949833050343462425384738655287009895995451068121266831333848872224497482672159475417161554944966973847907758253271015590021380733190763648934324571829938305329024152238271619847525968575605097875913295783120673191950832853490937772938397171811815051413166490494293888659491790022962817100658585982792709004995673446471286753464321465218384937611032003346051486493548687023998157474811598620914316703960853716766798081698135416912812070861467407935749058602023306519155328978108663723549423499155499954053935080375636358138306916983531694442045529929127764439482927400073350580657568798768014776044441571252295969142979836406539957861474684475207826206583143024105236773091836857437864307302138518531289450623924865472265395732950877709144874905213808876902094048392964525640231818855745764042580478677653391199001080179458757045152468159781617761789525315116069845501159591882044560045231136046253722572446369080823792604707929579273795607718397318841747017972524679263058077586683507966590653496312285910527911739490728709420019675872302900411108891314080634861405539086237356387109673561775154715019265557547116878309414252114783530023772180677471675540494542567759148430432896314981057602520680691920705132730229444857944989621886091265706845890295097222289582837761314039944293503821540433473831547661514647621096864418328580056940252376948805707153329136584004013792032589785488626596819393879521451572911176748484900968781078943104559579022371697518096916717047611994825682540500141356552724730551053603186236563410013327890841173848582485009236898400378346625292611634812811021136989105022377763488998821035348024180076301816635443317377542691007554872675719491160644035524142800136987279754242018327436841207197013493346150269909332517214404512023718454117764394913297511484627110847498842906966647403635855587245776715546131457102039305696577118921674583253283085773145233330640505464261151166885313746628051380627790942294295400284630069656469951637772957231092157576378304827490012360880436030860400074039064599730559408432505656384800299211453740038884720934266258689848458828758169532111328821768349500953062115558303463011602003107446411484821335758502856069823228835805088546624950612069221573738676219518309467923049606982840325046540671576251477053079752007179366256770545867523400715241842186235139658678505035062888242682763464169377714320038766238499665974618716022863735079244443077254569544971124883848025193418438570899704187033881273742958095599921922482076016397887480280217945243158123799119423453802901889376310767503384257273986659313524272708627258528223315281948557070690745547416045444408288351595758556004106591082890925743036652448352444424577686217860986031255011893261713056445335731041838137808336312164525281264263250836982977154460385320980839004538934682773185593513675410806280223363175142635667699734947482743723605925161777227653527928938043017405472146709263377408164555098821172943686688294162118187136174535682697003683932261016397429826718464293663315337555989788343793480784636707398212664828671470406546667096992045724933796920117222880931931422579969052815494539006243650483528598352510471233501552435143486378098095380576799556629456568944427053787150258497247350344083914749199363920346680112039482218936097965589605467999200783694020390115464740353714934727961621024096264632758236271963595605886990785776054881842485357812752499814845609807751629090792593083050114278363529776558179311940167952581864561598715220064372365225482331636714380499256370316885584408498742983167236859704889091722368372123153457812655513366840061118992426213845434432867047116631824401865922709196575242559159294796708920604283715589642717166134959125043275093434255028836487536398395579888449613274638178267212153298978721878636150882701824300065645582784320696159094056625495019955991925366343803157111457762955634916150735307241482148355800602926718201666849905165738675332622049610556555595453788771126366219725650871569312093291449901959012868252364358778635392464202888351310363267048725541823492415258756459283890989564043827980361827325260337151493368516343209254332770525897449134370257176523450679286628438327228713693014065413885954075651023070580901564279147178558961567404865373720009532954264737043255897408166341134035647247150752021202485195263820347160601778214387443955351075331871091961255758723948620290215602633770285034814503606704479428348374213821637621624595295091190640490454727625398630047629767968741583778818608975948288957621170882265057998118585072575968491147661345035753385935656945729538711294140963991125105980699225682335692547953025065903866530710474390346363823304380643360378718726132686410954392014673708474221298659759654976107861913859834215853058846212215289830010035249516820699395775644319474840265401687496849552588473873103753677170984276639982589372211622948712731243163933526939638887370646617328364629277827527173887543611605190592677287970302047817204045201938746380349348235670746288312612039391705771298273896106266944381765026889723918896676295006227412563911148813171994037841478241185826140054645487081511470359039603133187930323457940049869621978914589384425443739891263336259363166413923178412005233078804342507173087923875320667870024815746649848660786942236648577303146129859388647881719059296106595208949807604385163048904575420885733816549796674729961963729203915325442424061365420757009684423887206563550876704415432237123899856201959987181711451396815320647783921082447095451489713044632709334221608053951406423507156666028104846064057544583976205818016776508778791689330948139430626470789588914652750782325772301138192958805911897814299836130029552230687011159289368148593005283911980448130439451255285207175613308320266503244940222374092969532480593191877637210539666970428015171890732519525500747248763403371631608197322211036423061499315465164333423248333209584302644130286345175377966036061200090042689147687891035520653128600157263896076454401369433967446583968878543640061500352666255065559460047413841443620539805110651362406038405782584290713083504782673080439297481203011477266959341746494707769907074488497211575257453830273699566968966704628581070696120354604678147878503073969320061784149115405439255573679962663215959976098229289908489393689615459572694799239667210262467809923269759338527593278996484041384337766171859211938668377633400629620323470787145699064776273750275704188754816257393852464196482344701973259959233761000002418564520910255354931221734680167102851594429937878634493618977380521324519681414303300661490733069826014729283168972436741975922572001129809005607997695271823856575598037112347602282508963876894005245701914163081161815299968041039091758159284198373326327017085818187167057047794198666457535116009392625024423440162817304592827692088080881526503472920420226726555505602189133158263825927406114440387073041413910871865236487894822301899935964838635448596548570672426849224587136184104083928904613413181268708896615145079151413080881117028690013940754715570931476906435594426762273607447303282657413845013827769643273796285997643599269258528745391141341476688861922462627128747476125323063713797127819936678199493324873705134608750229750560805466590798212442979021962202442336975818621798828528829031365171208756492305428783217722044912908759551051260317369422138121739835587016231675214327010873435325457797335430962511474899536247391797979277094379452024682320622768938093023269545122173603934050037855935253163959914499657985805001049768510206917579575348027946503916730295339215690399232374292196362006934716144025946727880415523455548309286124972216281720069096357199241709503450776192398156042857945082006118269707733800206410133697242300484938700410046108921823720590324711333480213672065948692878565597044012027223373924795501628825958951612326196820508506920245622948134792442164437807130594054440336535074632351633168429182384354355854003203656846471910198110194669224017878803386381574226078113710438577075590795920429671575297841480028063974910478306720856789821370240269400909564672417793291356702797938965863557952719711259689048340145092097625519557884158632984969807214638106973907163787854127351648854319965253266863888570025194988599696229595492266905535166762545088321220870006308341480688651247879129463989717817616015924678721499302920725840246930421769511694335074373355720614748955060363488921352202592918635643628902300146529762027353976503563742080279106465967514625747752815351504944389201135928813527758489521713448222821102546249086543541957537090118068718954985148648642867920859343270166086838155443555985998082116132276442623456225252034201678403944038030324496726566941576064928514943708694220356027275391449141269129548863948915569481007919772936254636040186077876972299612252664375777177424657863939075165627431981392930840097547546625541082126744249382871619818640045868861142898016244666903332883972246873328285601248633585751164157733753228673720814233864897288965147657051678021076796065873416378131175920812669849678256068324153677496989283728563061618093721376082744214427660817420785829770881028883662413336081225909622183290156109182421415601990857468074537226477200091557510041235282699993245778691361655162176382524977366691005990936498115131934857375301677186576719079287523340439451526196523156784593308679987742239953552309624883687554757826854043918399378100295652282142296863505113282559487856323414858023699531365490921946741562037384035702844598542265761172513936160309514397675758527379779854336147327735270027901894378345169652159144479651511284675953345304461699936277636855352459673612770251215818107666546436332974531926521931781491898181704848009137615902593691305173439083278795146882184718020616334317906965244939117356904214888954097102681036393198665266924271589727131775883858468974623413511811812485600098846031973567718146548846857735625079173009251746685520974326986331396561511641027127852229694988259564893909173934684227956237329468571534235644301680481447018581297312966190198073164397422252186077088743251247662404302169205875673217646354891831703281101089585390507466957273288985403037691463273320770783623734307119607122463799777674883592554868405054151839026571450501891904559581149838405547656998745060967218495998473052066046377620219390288718323304383349256858412555700648775527266974759330442352171017955811462316517652237044842153695255265253596441567268898223334864728814457238877515538226007564816063164089130834556231807531461252938164483371051144084848741610397614793255975688129373213804566303978046671929840549182658966198342962228176262642647118391203251345415443739073111688089574551397543678452883021152474657382391352063179589270648295046463861093544350624432467477042616383487560013282165949527394986038026006396637223565790207283738669298084853294368848457278679704882456618897047798065602342846734099581546736686457312458774920208544944948682758712059973259256062233871791644284733270671370724487392967633050350030749238004933002987097174136510879308316536823768961255986209941289748880983542705517735264130216436113507296643085759597776090657750931964401690539060993126877872699526721700872994602737496578838329339566747895702286315929666125160326468377700395374360093617409082162800828790670208785039366015136836646117577710372401891823001827129535935563577552338566985833732821285381326303689465236324474433736267834977428980892425137465891284705230506313148095503385350780378464781992940157655677007082468381581288563843659656705330860239632715606364734016205091092171751208053813003032261714867908135995485114539586018217477465948591698730928341855742625935794658857898080164083020539976930488280790576584382458401863343857349344000300968438066857984574360771190957667339789025687710379011453983245529319327990360546571152213754369614514333033796820439207104732754208641418626623505358686982779570351772442557281891386736152430155020797137240130195803081371349459415911319617984757453568759612633651787909226160918832882564493653914201456763123940445892966150100326515660509563427211786285189710310734291088461670009933547706977525589936295246958087662660162625489714181416306882471947601170231938286303185481943784918352145919321455952147059566564344548587521143872171034022222400823866603324294353550833953827418530158102986435711978415958299048618785855703453964189606574877429681261568153870878579442219668092331229127150727750643791546197520057201167408249996455189738994196489108308709186887017484478822907410891663861216764404174657430728769685507740703769998791635944042097363111499684868675582453290179018329650362888797579549389683441245745547466104595075028588977665682722750120289636097743531707360915854227223983672243454111587541055189478190280713546496846469193214155024815500712560432047513831776148910660634939097224179040322783618968138264288032057033427180176917499459224013436150306443519465753384437821269366209523452171888386306387401929694825253017724564567542434044057854405952526413746181912392977352031305977592153249463177164469760184802500664464062191818964660566841212218408456531810020946286322256900331684523923965042584599847362091553984581219455581385176768480739836368289174263770431271760784019553571271821077504562216746593758759146488722188073959690856937670218149307075944112207929353190511806275634209986404848832413330456721758155130158129519594809217890350781420413965174772895552280266886969511599537205844189072808335329053862107933821453854064960069071628029683866397977778952793380953377374690416932138002570433350973415836568521554862040208551801327519978583546367569874186810843097264807271631750048141262054905541562181685868130533095730254125329454365201780718878668819136369574874757681887929531764680966071764925763633707370469502596504884977105295503134094131575290778326568335312595451073774503210771185984047804597347928259302165765799201741593645640824505712283122888938383905194303517551343973860857405681578751860655958655017018850864176722264646116154032911109545143423671273326696101672890895990558455259259841569989304476908195750445762307764778972734290011464175502683182857072807256085807450440563067050131342591903737544184510356189839411047858697331159061622654056476977489835738236689756905190121167026544843978559112620320905814441712425796983181383818150761542424049716120659528786458561412434678837012014307508130173628648581022440104927444281518446146491983617617251020759336713104091859200185562148129927714168245009624519123041481791815746330314475006521361674086113355973909306660964592006362561322850961221143217807081184641601607928462540472184147902750822566000328533152565799917634485460818765447253035709482148163423776961669474024848912855151868598094992641264487285780844859472709982460784582998514003970340192216033185390802562405746923571763533742600367984113180789345669723162680073098631412901370612440388584047314405247722768055304680795781274379696083582514990810327614825929388421843859575706440716448294505604223636381312024137721816302921642165590271607698251610020944218554796468261917442672431908090201661817212645949671892638078658554356337134749718491620235898904645406788116819969280331393593451976415459371494695225992831866354888208296010912764660115983755766041599477272236951171336343126561836908828082205720403802451548533331883727574815640105728394063274562970021882754012031452675542575968490267855294778881749083492194398488928789803928003949602258380795368263553119261241829318390587070321082626494229190480152720487433516452061219217328350297947962715986817942093515956044117084382218952872097222245375668010639626971210597142315796947042037053831150678045772990391390815314077883640732136708996671921062260387983612490681916237177597871947954846043716915437488993760782803117976825792464051074409109459882754544996278048189168760064269892232469586579997856153304372197462649533436868832579812682772712484972228569932012892660247826368091551123600800127947819152266455028153293503676479383730163311607077149519283139720693433744406930887990589756747802298752042373838825791374474749463519110414670990028830780984312326900910206322642082328522156196081428850149036360617311236305574372653819462279446829814201677704327125243406279808848640915173151321792506340346190563737789082478242268868786816172731713987716282555873073483472112491590190005137512274719875459342695033207912445768887891914225446616512063618640967301749065212631954461113019319464268784514641436977902232493735427277825781223470308074451032855895156791810039468872883311349062107589272999497075189839918070604841139678411529267447658890478442973035638087209295048297290198580362733187788345087749873336012244032198621427300494060136199936434976349120191734282947288263796687006427412341889526443834985535138051910168456209790349709903522238644268146195323532683182144105292549433501488626280437586860078990148792260192254051018539479569433603972106259909343648325539508227493645508689024868247062463629064537885358097834467320624312487759439646903574911336570666346706757363883930082895983288518117853280755471922749456855559004028567495986868529764885666093792183677876758989765642021211143229117638438255927707932207033151267813994392371265245744883210471107399052319211890470047990914747433278056328515357318734327981959135035011916884672038296950761561405049217864578553341243484225622392463119732219704838546069936713940175023203864615265934275216405133032801204795164071147082564918860190598795098739425099543470898745544620861491036548031447344344374101505493422423470181787090941377598458570591924012452083638638289740626703885409410023560347826408386268237882188535093530697489163528298925529134158117664879819736018457749546005266405786087253006929312546800947395254658298144319206340552420589030071817653683830597083212523264098083235706675186046083510234736978363120110427254203516106184228602768297528029184719852424456241108477016969610423409030276871097942116697501244649909911092098546325163711553327152206876108150663248950699669587057118623334434228576351009357981874392922034461660571627896792535268218825003333288901877352266302786054346157811474221915009678966926174751046994256280466980571731063762656706084935619870274248765779878607356755611552235911475090120621146546126682897492757933542952079208315968574282243543448437509684318413183030930453623570085171309426832976117685357038081746780548957813698882216065108024649973313173155438049733863490322787278453864918445373045022691917235297497363269323939494359146223744410619019236607639646219891970098366449968963955425287680142064456603082110435309109155607761957058114343229919019357061593900093848536924301172777685130949779594545741516243588487002706168331735994295325819441401407837752526998808070855010868297802395577106356940303452437545418429921259422837693979212905452560849889624407827831247376929376238262343156650970708417819646054850161886939661482414021565496164740448462540925754268571261312579155923645262623123987185635271455943749647967980250477174279430055995867755548757613118490644587351601604052717051781261094397509859718328105013444514714932265654361680881735227360729090130695867038651793850669953160811179681956359988649707397357489785706732795353136183508403067052069157510143817481318701721393336811092532299446738720337600163256060497734239280285226276875004219278851222849539217097744478603589439429261091337951560607829662506705864458898854184992534049967491317094815146268842063611043117532161023869402530005575892809652380460733343215374247825621296800888355694792615110162852349485416501824603247071827896915276609777989761889420261443829573085085116536832178431894066647728158829247332896463729783013854708278166577417731505972361098887584793948556933012632491821662431495696417160550314798474033760961347853178635267346699698721215472981408230214329625144713576906669373461669147724887786033880313102644892917815383154668769428650088850473536225409733284072604536421866012988169660630411435269429589357086214309395500324068918647196790751215453286760288223606749686479239742890479449651578217431572795675850962008682947149314359957935304949087167112480153805696897181979657178434873938229248682164494774900939430376914497885745573157468778421421355244324459036322743744882989592976267876646527539996492576286578625412801679084963668659065203984114260955369673508523943614632303166072557547529998856358680200971662103127394128587602486689419941063566793399855889709311825897334649979365615857751050470448238508325633629975050251487633412984710476323610550596422390272310887325585641861224434486179621984937212922233393760344186566714839263071707476638051786285463409279130642144772390822277021580694577560117231275717997085262746426683629755965092393769624459881855989347309804336556262001824001420132383779762183211744354752973273244385947748092753084628918691061761774598733178594075179359051813627374291685927977247523890858081681305018377293768820705049118630617808199698357501100440497397541695785867741637717094828520596048544955517711755916080869689843568581780348144059271726848231212330838840438786103106115765890482292156511089108174219083394355431539330124065832419068674595268859885655971668853112326317205832440964892820900640849174597930917741076132839344947071327029992362042152313387725859107710355736457195027200793070697250560640836552619765689777343845394312091928247445114952773677834504083217539302995356879794092322863661713913160094025933720242147101567221250724338216734093418545073597068829116233150327495139357909761607256670220678876192648204597480008423613027864798418974858504764649222161045110781946519360456958452196577418634449626736136377654144144467195768657781273027687293243275432168168197878212781982852369332530429923582539675570578198798620404573343803717974171136963794436023071317165521043319031315149012206962758500990349935763332535072696854906530169097954363069995362022192198565970258459045822235400858099212470585552772091948055725503205896685560708412070474135562283490013029055644281195390739095350600350109574282845245327301254069265494339191018376964778200247693369359055581699727065591250223101259368427784556748498500826142915569069177317815866124884254548717548470398530742751355991931390444670660254526326197459953630696917179125200299242664930718684000900435728248835365722281623699180008699258232491057411548320283364105713116816658795107042369751806433947737033829077034048260691160132093623646407093067258877461376112549150293735532478749416469632373089383035717884983797461495215651910562608091186810651926792946104726738785363464356525210366943861899946985341754108270246626782528799017760056446608621842765498711138600687390818057403754508216598915847677600111867918392503680431829196285385887712683080985975548198262482205861262773565307411960845034295634682101659130498431791258697111110077685458509038289339570409730102838093725425920724361246696560339360214967275628725459219794823912803087875469932140023401448246499417503753337168788934565693203734458742350290664767110429839946008004036260185668694849934658568198847516911094812745218514749549852918595093746968044285013337057383520680413844245074342401940601465141553606477653038982651652954026551010936706684526858693513394481096566674215453622496709542087149708788783140011941838640331646236685460006920195158082416215887766236050190384610986861987947762585831108888886565982821128853286369216749290563182340457764225046887620248512562013241516502500773780084726125638368647969069771978046156677479576366428608440260486509603979245474629991314934418436180887386247866469214820919626061058981650821964840196630921791490963281173557278987436144067802487706503564039465411560065563893074909078633527569980125234241533188519486287113258870785851534247896332075457984468607072745176596517554221270711991323453348999355425200602996552770921158170362363347275129843739230606298657769073978308841519299359308785497394458548799323904732685959651695169683843581425478279302101383240207891567247680163975182371930794506482558216817630442055846342080997959738483718717784477480525647635348011612630359998395365521976192816643913164066603225311968117957587492714042858618159217267472691608182898821302958561759959203934852193132731017290321892045107638392706467643536313495339740777089257670657905522310914786193627093096933594248729934349677558236178415328340233217014434161791583968675487575528810978154655944205816696266367412980232066666933805709301401806017192788673969289931241961281096466918365315357337722075624311694056105724237825598511975079692143981557155068499017414814807561569783210682587995041469594629398905682988522239400881385886538740984406527292271346031641061230488216116817991589952226937383126452995676391697730724263181926220839199336170970661097911987874920488698149045365598160590772629799404722062964821694161897688381634689357736559513525651607549186410118638063319396177243666928658046861566239426280619764977319043042397685024607729551227106491699306334388480129053691023837224388977853669580392458788386401664938191280508289884222291036813111922649777862807346819312309525437707837175644709415304882946431326789848199704448177984201103202633080752549406425920926871068789527473318025372818390368771071657364507640720713734619883004318599014476399211107765723909350622832773033421330282353462295814801511037016307607580648733697813935478354596085139470811628471399225961650728213777178961802730966079320380470005393961721142867235946240351958910695072522455343960203329444315920595139610894129313883863547289387391011484556610885256308076515622675972590095948717727339623527607553979622841841520309178514067860004978855915215856304772559908952572926300169558138524400199788766226417398675796542690287997261703682754803922846320861620289735765462263250017008068110386843238922764136741260310816756644191173684599302100800090788382544535697197881567924414306517942780977943183537483111707444318436488495530421952590070324898698983952195512049523344469708986470255873517965761166383886773765815713285245460961238749602171522807223419389121217895348852430876560526251543203573917929981129585100400667159524759861770788983262341426037692065165022089788512733034722294331929681646193294409137077252110340882327819736796150991921286995473824775288988478920243882964787016848386289800308112122713905849047895296827475130833449422500294779364835771041778003018745565948949306254785994112792928433949695089654285173051044655415917936962471635759981515674805633987484754168984516431428658684176838056631229329185634026144581036793796150354367664464273765055711359309951565264958770387421581005704703111922543699844031715807572129040324261705006255446939052976038456864927709306312833451492492249458738826394054074257601389204089236775827239697802412703768121252074134985072265640111715394879220027385021534711197935733128226789590587663188534171706833330235471850824294705350459506727066282065347175055754361868599600947058200565196022909055065390319549232741179183733378219319746214841630241191398854689703692626157607644177068331642415276710558323622892411148190485011683103975481924272214775317201227624257568513318545413036682262628216758171750990362264350980130930313677315439819393237430698843009634498720048999601950659998885656305703028959635605215581431747373086691357221176746969740325746121421216716351667653562535900521462535311860495508649286458170554369518938986571800670925871229250848846754197874092464915338390201724052407393020911784202454420418391307580170367011464890445056814657846425432601185874283853514151193432760122055924772167505642989820951490222709387045774464166271358698182475026876105303734237031365948793976437345895955052856971155912835873590083727945202286001346953436836114861370397412427342381224175151817125065982316136430477440482463727402499862056428331715098871492905347118868832312987071421124827230136305609114842757574798841196799853578077650303053636772698241362988355329617984517013345987948451535763260231651466725977647027477118448315767257371061300037359196114854655975975309978885080135025853917529964752284852310065040619501975457586930153265415578866927036150412891959263145937171849328257638932286737889437591996150551770690822966286675784879017098464566967531657780272244056756715876330273182441249982142532781718630926169434684558536713918470481283043132658887375979571623318486565317920272283292824916870983631111006349017890354205263495971948364305175129149049324269593994988776371397842798620724056042558358603525267543406522946427539690679570772893679043881858088811541547286270235865843003953568996294583661975935980736182533287106058420372465586466615881891635795155412460138347477283146901052448509914496709251503702146324251855104349800299936572033993614212240851409014604657313944996227905104079587989793193348606066858307227214584528189595817430201130009299300997517346445250720575482507853301615291192946226141176200587400340689915691057558453093132882428690894135240156903200326122095564721613254750365631943146359479206738485393003811449977765178710568216099419561205396565696491744833354304287935384718441805990275556124661834015873824266448186408180702231134659283503901668281653258299669902111007360710315789568920776811611096913257327967242002048027811536172652589432100295521883703434734322958309546883373084648374839399289620359979269583883040511622890896806071058796008135566649786324119026756844962009811244052704296246570574513176788784496633435509808453155356007244720683663336808759155279907512080118803611418194232223219808015099602676903976981288246868576853399669321799982602767156429785439906537138771324237759798431752904587995477790362098847979487611858327570517513945017376798976682365283534319053455135396585562828186361568754117530729107735781322575402625631279750829575222995014743643409808693850994500509558892616452156819920371965284149878142895817527550157070146409181361807052076919182410114503330897164977391388650302662785604536621732011385353935507508275696037994139015227674431669392332827602585706614080045114949063576344383302685321404961202027800877326172127670808629294145059433139205636521966658172825665025931211657520977939460586772146089937851202925776507852248387569494135053460622127985006784449504312478131410176962004597212532442330786884558155492208717300077119838922810421088017028409773959372308059170793021005614499279978491843024848258237818348839632867360356891522632855810918052713474127592656524653416041836964820383516975286010832660296504542873270842883053032598947477787034138220790980398122584019667890279963423474632983999700629480780462715826299591995875788124127797489903111739355805525028575266005119061143373580889796507529627170511895753076383475046127896718281688731964489046251772739986699932060225433665837080445867913883270101853179569624114926647171702361666167273171609647019278823155017337838378981048440344218075911748855282206900610125058603671038154789806967479295014003328588160528946795953095542783555279051390642268093989801878773374825237475898756408904369576861605744721003381886025315724751170901967820787322020835974698421442108910577489577282618171193699561343361313123603711145361506921896034262493345416569767080817880471942848989739105463782097634279612788658249649455710421816001103700766026912226051851505944610312394659646576114580326660044930697775254804871944678110484265055696764946951575183992160786497260604739501281563372066810832750377264392372892764187945173170788243474686476920797330631782324066073935482555750483270154143417132619787545090106468881699094900878722241771016047906668949104875673633715206052209098779548917246703035242328497229798418310796442612196960151512054068756279705385842176495053122091126825176272917127660658575705311516763871069296044965704171253618025080415563487819143341781676863275565819579782871268456403371148187345643767802221641881875662662858373779621256884469690038402052604178777496106333934740983101135485343114557272278350510728542739985039586873062485361457187551047541048771061810874982096181454423748484591691910756074411787633082867054234988210892483084605490368606348453872647519431789958365976255702031100861319389580675567439445105560412253316922930682430579155008118392319398103920694531564955084300103320259133214601630067818124641704937905329560449860124374048941559624179641155020786816312497807546542442307157090119478470781553068795629121162744975796069290609777867221403991171084112323158131886063179640116163731473056866083862867737177174464546246341144161766940845142787026146366634296558706508439119148113706749014639066981647986506134926928260168937376718945546530852747550070422418489295312755329757705756431652899402528191922675032099736257992673337667964534141714048019449837688568432413501488877759481997431177256042110392763541870475518363323948976644556843835507487265734121420332650470294882019691209097688175198258915867637374477834246274127591200992956031565112161542397190400005992807384467014979946170122221941163133487423144843999237808294497931598903275256052042451385601274310388156846761972431797000250968502928881122108651107084883756262022324766337023066207656375622009202935306600563723913003690328619581181604857489624838627152537451037108152100511167523825018923546839546557404127382384657326914058918529083847846991888930689255673438759815809594940884811321816573249504136002824202112219260079230556735543766021839666968211936993883615603662922256057864021259733006377358264906327303443304818762067973167945175649768064539856626189480872628288342164691586194196954329731501488834987212633243374143507114069249418134709924354217389701769586269255074490651560188909822435748648963761631525476271662861482343389686105399666152307920651379234302274183009184672292051925311564185142002430568332474746291194634768293505220597874677379054066236318794339042943277111011429683693635340777997312016593785894298468345544447040277046150880248008141871514424911396352375391172853766247804915032257116773141030807041634109701825524023857929730835473147874566213708072042182440893991559374874761416643110311025170576172488535967233795070969855506105148896129413196779856552935126544495929326476362563945588988981614427309029520370294343317438887410136950548063660935425881998127424408818794323541464112289768201015439188539250698352393915616936641620526966657612949437313399305247068471005333772002631856743255235626573270575778219339208378316948959969579149291970934423561460783121603178701280488512831855695256977311179932661895792652932634492360365010776175798616768567066557424041085981814782840463776618088833689129055104147528261153200958531010457498358362763931994511279915420459443414891921030860075999497151040657098618697055636596680160529940542465144898402269326800026600880272753138913752043288317811935773788042261499803163666103195791161304950149937975433221340792930587813319521145459675426325623436253805009242855130081445637384310238284992735954357810822165903221741241930689622206831349061845170932588062738186510782802828838721259432053681327686948151138847113372890220736400555515327002276269169476083992969121594657667948115300202885201770465681834637259814736808909770580870641790287130332173959874723208857956625631733054770151880713103428109553038053796204183896811631625266232070282482920613616907686685010265799268164348961599929510849145650802121382337556124028775911754439047169930810464170919832215561134523171423252085865964639981492604283607826422301395787657275794206259639256641223242678199257855632289845729408475919483682369911526546282009517608770402680116541969061192951272737892063794334203076709066780580808629098377749623257792572321305422192029335187026149001175101749829918403623956234795778895796528542809497879188265326322073631776790197856979929229005904397139428554806337930006009379290863563752777665717941542127121666172897916474195757292859989187537993245679868937078596385377752588684092410344321768805494111590225275694632048453465081748944472732554443704356257433794267522850096414952903995254392895407479960950451331316604251162592223076077664535021713774419021850053928887308036525106849498714334332324235749917081223301287602748522349123364316980279282243620308037249633544311425331156419737898619696591687217675964229329277764726800308264050009714653947298246873382081074424023020051431166069230442330643172188023243917641616740232810152396257089424818068520168214089664183505039965274389282484204154349546578955411396521085897983051920853824128916570358377774389742161523418816033671349188963370050068733141768151935205586710487601860565384515407681000672744919872747709751256772976453697012955751741082351421963252089910978476676264067286614562629893695472893929471610294182072355634236227760128154411538104987237204500376340757939913283292340872145228878263865740508344380231926783769355711268207967059695545410977529242916867520212758463445472539046524942890440296366788874634120884051497863340998197272405759165226104446403668575800794618527029919194679294691078791323787593273393396046733922695230807496188522287010861275733504652754143265843756340944844972103148473288891399290649052783775239921044340247022783809880535780497686319123646580847279727784030090302495860896251571339806554662994493196087956989815671944009491252854654684850545795578378485763513088680677185495496624398562298689389324835705049886316167881190739792658628949477763965810207580440386867881000794591688042883614732145377655093180925268175545961790252719062028600101170499030971012754416617448652241501721353125586333080223964090332923795277702489404157973586355323507088619453991028038285115305792241039384609768648994389966036583151893636866101551709846158083566249887094341242341818623791171274494135874133493372442015166890861756341512355381705157469326744153010482433771885974301498562322665213744613893070640463625387571211032460176737205987951217732555942072440314911937661862715117246526122562702991675298555453854250783946560974029987893914954949258108869298466188562728590496505436950336096999160909875044250442961444371232184535654712045224172583231201492375480915738793496613189664898630665446470169169662154798109463312102294953602083702875357867196802628534663985807598090609269315902420511204772902803127212796237209959483633982318722035826237018291383649641339234900397100820366934778720752086410591889888867066719338481142034021755599601735943159865934424878662473895297010820265035775926073367868546607600502552855320693784159895756412098803295105346659965066818519153747015857936767234812555816951016111623730710468883171281863854692981477384816021901907750609926139508416255811866599153525598259310507103394824478170686126243407410492477626396155115684911673361003619905113500384194639626474994386634851085022967103847233201816661422377014172878276955801244644446797295721180408027976164381783604501747931836689043698260261143106514690044839118198211864025088188551213238278855417701723976575206151462738890755200484439657940294962685239650380439282337991065483618316825503022664286985292988858680749418621927611075783794908911605828361290476446995172649548866414632190189515284932415956635720526369841545321629549585654745170622848867765310222103579291771621266387276102948082097261149777299738345580100099812878857556465862291317946047604350900395080622545091788098136637450139623229269862874033562673982119615787600580218310925785220200677182691307205235670370081459136555487463678692207799689167276097057287285512812796464342809686546033933421364075609728926777673643976837054297864332018021891024980746563279393416438777339228941973795608224732161978618415181636154564498628465473765894408161914636247434476933313125330591179089738703415721464063510842123682617961643208794338777024426664437852200498887632441153340923211814726762702613416359862077086942108598313447719218455629737116729070688693191706116520166444056478958917303802750213127727879513506659691219491197844042459399610856406541837436375677848482617167029136593250705354690800045974681918620005868751018682169715762767652321984834951615969012704724678718450535958368564964316672916950084940822893335030652535712841652118085045453351447817321881116932720889572437279633912054877627097842124761835824997598266900512219186654087688108952602416446116727446050830043884325813575789894611447256508414405767471397629575233806298315947734118333429668682814257026791475814209207839427095779349697525245509860260026698880349524765840291311821132917891013065193257269927890795508537812487749156612720646623393074874696458055838649323461303982583320618043235295334529580936595582604148807023329765284597603644662308074828736415249958995859245881236582637238693716020053082065530627241354349052758109286425819772445244580846166238408391235324830149891657856410212131953625717648970485520737833627219293578971999617220480172367205877153290691334223065721490101801921049730325229798229661302815617556545964132301114653543230243055979762220283920706895272650042964492110464592948822835384335158130832155469545993006645011772215663024930012759529180103618249411755179819079432970014719604397697891883169804645057640144001322130400727156913935106431168995381149503874420385048541833305148074537412349760415072518170624498979628866542011347489016408062283999122935505817118016715987427420659480650886029707472152165885616889364008696432404124525749628453852947416688060109409654475813262922417900010081773923493559765941294606119620472090759846996305323185866946849709749582310190309459398691761296462019446168346904436827046153328138717133194146884059399849067499413327436495004594360944059900236335624831530770445279414615973333038615383145057941684602286581280929179069516308849674253871172689102567147451313169100301352809297104690144646868653769452961722032679488710274852681910587552354970181398385517254196287046603598173559784715271530913785636909104258219866291955232673993574477562839006947480157361343915391553589011591589240093719483893808427461377455165305264393621189760654663957619400965951438583496100044704983293359758976619271424369539092954594533518516874803472183279688919493860376526130683277665582484532000061148838481307211412014127117449126106073664926763941508183830878845606188870974201161922261978706019281697085535760079438013274102844128937461908948971157975220355655058565594146281822705302613013681006018259856194987542501710199035038211501744667587113919308680452992052341149845480694295530103773734735071323128316762495200917078723295379747966831637759275008380146996364876305030843696332849402317341251926019165855109226744249518051328117393970104980117063275281204369069152783604656832959039095903916923749582520185798057041703125814724058742145498691732329024940268126528561226913327930192875580005398652478838235436226352147564602884607412591047401220774114320287530925836206729603511049590234170035281424131801065692912825591810138652780801887653122202420773379168146472199675761444464657676104733419319383854970740489498780665808068652258161102355676104784675969044000622144362714853223644396758086639668762506363858993585096519257449195034314763868847916626448639680746191309308729163323931519168683780487622261934090137380777161719117373897509190171966993492866358560602380944860634594170452874848962979717068968996189892499084875320079094904784698240730948798238289976866955827851289050096855899456016241483189170899704402660054679154324572834020435146985520269711873185260299285611101003543820846200029837861439927330813173493196515743481919713446117613922549751439008380624147740577141096540845165742541652189723590625291040324751001620110270751377921809021369001080206895730795866249267116476092038926242250843624710282670393558557949468624815694481173825946112402912669771930141611707875202132426169070141447017386158110614411533224885708979382269064344428728037243577037655976828484261910299649477648062855359113249924546321943734641284966591103233959579433011033839404966509453166446126346477237728064535824456500336018994885100667871472520260988198729510740012708353915529755408116909634573850216855746302671492555085826209110350271677725556523908378709378731006953801437254591806025139108506350500376666102538951817323423449890651261207768192113525824179377475472536016652277747803559192764768254929895804090623195441831055057342090187159347251201711024742168475354084778666097459137911033271503070903830057802383192525590197672825491516075704496183329334386354535256780799771109171087939018673854044929804665815308623827485105682551578839169580877819153717386596086023131449336545863542194979336735046164153926294607959050865431607266543972867643983960328396662211093780667023655512890862766503246379687554914625307930803857781969538982076856892516403866452669086588896340751439919295575249340749187821226019108316392893954615552788584346272876739808798049479617139201787236690177177620623539072291752997184077205196762195677218276307446320064667386122915577746024525494160212718291035430931132210687429793819216015393547773450906151416267295025085686724036825729265149233518339146977936202316033323061627808417524336951963742959087215554046953595835592185554616058765511883048091362388982609073498848913923881841279611558444938876203804913893379141523173242724227722576603836956525351943525349736632151743154069459842536424177935908892448588342272510983979006404582056181643741351297480471901872337123096940440774606703542168842057525299865309889121497391580119565452318390335975550232401111620579595972980629755208872968229966117023376926545684390429106016584175847149524484170675246769863933593150238252403491809657968804966540816527839069980153608279061832771164832265279271801374946737935900466583722121574738470982188088378768671165907007078784194275968983378479765307198046868816038840994433484931249584141496354957017455999500596121895654877649360779411209235089960943432730564613944188071427959429777716721103490712949401414923508190760595169251540347066518833492267013321007634931836594029029106121737416615023522441475621312177690981334841898343927601008008358010417904919415249924843187167969917928030350009027971129135014938536686362402792716473725620231231689102763823666301318588951993822969696673541802937849122321554073504615846846628197255684626028827224449856888559072907175665700154298678232836137717152591894470872713116163655813397158584441279113473064375915049994116514945396560089402966514422787764620667560531641995368371205274522176491046940148694469046253571853890742476473305216569042045750619093723001037851153636050693327693672976083437172482546252980342376675359482654775339048173036649814537058899809918153688112799062534806256392044844402830445350258454193282667710606810326414563529225564365280175655829778102390716366863577863248662746750698689836143141821645823924343259063668571847267900047156697833686512965065089044071247096013986802655114844543525205470901825488914680893950093945005976515283472160904106910852485497930082636979246128484300689976253303249191862375911671221503015027340256542618900590547856457801597804638950121693427790306537893479339370725536252058676693014267947680668593003605667608019862771395204727048538746667578486802283927433822019226677635466025235201109851788178325959965551793117798678697346408109244523025676778692381690121003709687299440393180536400157504769321746834114094389339067643089650950625061050724227444556290868477424495144570369779679938309043172041491433643147612732764701607442501664579925151591214154327765051154391547034500833239993533037924056469156405017661151421286763736662775151324068548930107011240915302290165951620062249560263842474943463038540163787040550530841831778402528313707765331340439790145326969621137790643146344382149591487030480274772405691649418932285482834757490096970593387048278328488106510427076705944078651787286805802968148116536328030649414286031478058034745778229848938731723810480703643411899198186525027499832199701428934260560744766665057147518565846442257539901312361516034993153637504091592896668560991685740307307252101070405051372405705427271776855158962713087105519098899938529152041226635532242852232240108401846671031706052133120242826923160685979298150377352417731457827268884393155507348216297330911798714035103724131563754755496452722664445702148482257916131401181860378186420119866391334066025398860801485800096860822921718890035824318081610660441180455812362866232235786970667527822250411777533271387155753848813836876825258999396248606969661859079123238838521387130950567805587803861082973474823030511026541143186045528799859884800108922339743925709948430124989378765608412958546366781271485196194035671613363020954587618384744242608025475479013054858035409851740358886779069132644832824916606181416344352236633676023431189278899745248238271017826422363980274414322302561463640387571272501482055343731261894603610486419091627358048361780908517287637609719092594482698640409847660827868681968697406789277697357916716503236372292824206705367701237879569755256011809212112631085157783897204723317211572289442396896190019024373904758188490657677030124748398869948075414048391665703531169503247856391869313406742660034641124632830297776381981623884917177718364191052106297128982155242275598581526223906711455896010470910651325888507657306748590296289735294374018302182196563826780401256100457237656368089910925097532013190869588065025663293610102592387207218932113459727179712062802160534603305498953824126133448045795457968456730615596749317696541697734470137661650865652498040231086138298649622812995331348225161588382221804068248014921831290110849339053453828205466455341695970934637548926204131905708979189542458366140134985810052605457339389950676706746498615123761617934413729864618477119208772034445535211708502131554167873763520972676060386810495808927963385117584971405186771472859344045942819613727284044906312562508906680306728145261438686683704569723231639055656512946448960640745699300819266941380725986087798495769881416873939188871902882020598381784901441234385090986293335015951225835287162653505671918941412389911724433677152400495941827117830379830505605913604547357435541469384297120407934428474936767896174084431540527343384718153722729424414699293655334463348979222016747789992694526399102716425426811436456910880629606685406247311677410881948673084908328209433138146810318885926690245828436917991006831213608342012071653796077480402892241008224015791945439383732655265734058790739358213713526336382219143955156986664859513250395303143416633471138603810032658643899677731322728359911125238923721457437898260580455552811767927701466347405644790171918455277644523011611756331792300841337221352121560616138597585749839980579876491241863677781158161111026650384081081588536032421691016075246505434585186456019745235566315006409890946973019193362541314079567441419278235664352568116764752958111500271830448902148086068351185839467345530505596387168277032755220318097524230296809332400289766436247837962729934336906738883547870151613320405286362588774832683685890921663754110663732529707125686410305423980840074017330302206451680085098969623355101730443335368908685331855175413386626117599410925686452702147570708045339480464757728401648644737346888146757572285590962205303129660054748382612165167642589107603764230603932255438385292506590105054249564059403201804569916101061699243590403615458347435311621488116784542815079352060152767833870612121023762013388321435591955732935627665315665811561434110586110316410031702544219393728348387535416952004283486419579045918389859674426216357120961805211362919905922510783777136465867106381130102695954128214788614632028630652210428521886541463206500381806801597149910902421332981426900542962574644730778587458502762433310269009072570653978372813388586609464355964393830989283582540792821561061116062404674927270519979746640015016806120127401675355147717599988361602832619830167960276153151652915513367891360334522611131520238256288154851250747241879835430542938686978983877190375192659661600626407129529886454090376282958489844506286886878608968446928007925195514482456198420631526434909755244812117274156481491285881254592657241034621893020375387848007347284356831531935042414965567314716955651726194802509494290843181962111520798844389257789566993900174436528595420206361183111746564722877954531811470825075586873743962790740006377159368344695962959425931734677143227076529463509980249570890557069776505426619630415662163048007480180569507877183151795957461086105630236232847776841524422149419928310428246844616935392295858333968018451888932427005742218952270172953100130367197276058806007106227614268819204070516762414425648865387669315234683263372396334625928962039289016686011596525425330055173342160059855447590846706175515904817671360979977907137315220597992370588796184361868018460848866596663834196843115663233148218690078315751138073137561187175256477288681189874858670047635236078910270941735670075166137189981543370711549781535814147918063741648014553858040588863929976184400765484380774472246289334790201563619996344560585179545547830002166058873356930942615726842040694092268516086014619400305408157942872467384726482587062900818627927474160378224273399740569818768570598253866582561786944881881852296133776767321081171526407707368576824636857572135051424535040483296728832895815372242773010371918775748459585462872116523567686954385178629096318240456539521687453463771522884654493896841495756330124190088947064867515425274943627862633218418704878281206438647069928031380314736597504501788665401807068642326642746463709911044147110771255641788464669829538425216189321748251630000963510703176617731735141382394616607382945535426723081171513815475940236234723108416252506220776521191122028419138872184845300838586226694051626142157521921147529462333584211738891164076395594275293313035909261044326249893209939848625399600626182353068428596165702874559200442313976031567500394427387931454766016971752267238720585276344945366124309374022431318450047285508722656995898990833028195368831178853115305735322388682068822185829267393046396723763910837605157188095415071286328046552032710838396622939480055469092581944180954586012368543027728850592302885554468864354010267033065055169040353364628667223909941739777005032456277408040899355342346210756778657391262292865498081710612816803678258890327343142930285736251502998842759830598049876581321973677808248612620630866157908585409195291979581425386575588473174405965937215033085595587306274722604559577778850840563723940619931710337054485293083237541323871414285714158139946656969164573961809235263196481353727590964413728015547382908124188659494086792189222540262385071726214109071017892476177356454158702221400952110882569084604697319647420910713713997225862910472469488088245758863317387908083648885981089529055500875874044319881148753310886667709727346837105365033988197572745749070513039893029467099366498393562360573435745040903657477622440545393702659458570350002271816146706119180351968519236056962001998594874504874705429320460215456071691486101748107902455314330323794924658944969096139075533435061225952079447610668656125845970170369874922090368514011575065203348906727107754941044868051629117111273875814409165141792167029765022607333256603717131974952254554526043028417446447466419667943020013052696643601163730159345332822157060429979789449046949448904681938117915245212175492925765102351542459697356901722780125274998362761487724224386115027743292113149009626814462125200703922392835059769480535753423873660032579520924295731588839254557198372408554668323015622828136543453612149422675864077743669296396897604758030488472445435035198469289984508965580423368914160078584936476271389444870054240334837603512068048679966138216183146861066840987145889833059237221780345576360892883060305868213201469275709848545063351437301309601212272684807376457988135101831679959524921174129280623039059750220924864368360188960950932330233196031129169569961053033420410657397391962813749449113004333779030877070689510908845252483724809476940272723505566376785843901452752509869583064089935325056998147316789435590296449877951298969072864683427640023948505053089690039030094548039752094918306087007954988761262571778402579573057489355427056397196809838452513735314519214994743667439947618602783554235222423574404306717874810059063125927692513959713954145933907153012073116640776449739354902648505044768046179720126728625086798050343977543673905149886876933624703517190409053790034942533444036902197326399120305867310718263509792183909046968889599626407782233861166629837583703074236338719192458705419453578158042766983855568588609536939496240050910567126260395342364032892680281181116196011537667097472583706551424282468036649798492986439122812125619831443174746023170232101074385373902424710525665555224124673801783023246584729177616678395342765814804219927973222622408739067737994058041847321729223161596915746275881567375399291320801041779357512381880363184990583132669414665407567304287955195406483311792356661027727535960525046837880718620074142737325516763285611373936173680161225416665446405859115390867143771190524818615161272345043861799958206432264477932404478761868779591572444205686958601135383114945339865333531598888524898514808432180204601997595049826432996989071916419406641601445929565661599156943740726876525102630845064578106136112292132459752948239660896629162523510655136201138801233274587252896586376393495282512172239001280660666829247512759661286908537202690686519127207421177931837432597043070666568711104738079227229430479667347210182382246484943447447622645650610311672782510716960551099753317017079414664223103637843315638944584583037666403528017236194846129933530075275892780565603627941633258437966873588699385043906106968072553294310572680536406509016224831998300258026720606366987277139537059130441683191941955187164695096409958026313663076811392527178118797249409372608097934166720602243281858403718295481996418947131153630885811317489340049671446930749295214810607062674465985276209035393042280368590816087080433207037799245674455228089321022465413725842983854077254331596620341732963895988673475587388467686999486073984142923678442899355366584511022355346317848862551510783328362725742934569997920645924243786845738643202933880815511842850686629976048174815535883173609823288057685507250308300873430161709157801538885490797592096669677053444575258613429441284065750287479387970383325075144894864569675814958973018846875846491055474487012866731051781758141158632616303572730890994824611777041097359587558294540375595678554210989538935931848493686273754947233233006245010401704441269703276478091970605783318437597484958309354871971817007444700605585880384663978768164066774216118327310057399743813268090288074526053299199438799993576826811668260992901457336994161696115439530015343091074597781378301294117769419147418219489270094218550888727690866609578302863730276648659853133847958820754801061049387505568808500177040080093221361927600649429663184819141454203687808583220837113462635363194675415907511255666356559908118989367785023348989840608148325006958422344590102710452513618617807821745139423944563807205323879292651571406803939598785951081502558396382834189320129353430193095716700730526606887625963082251722001463106215145024788434287772201627821991179392694462645508664737243363239930342334719568045081794916455235018950524371492664870391218662545451691621867999717674200948329761099733331363110342525613390787672823655600843143280117724214388906940470946193813887258537655921072956044538050874837162690270958779157262704273018912033806316370347492737912432920138252690967996069773027514590463586554315730370648499071984228476120386764695659960244531021233650298071430307356966126531354577787447770602370528326749037723759465085606826564605130302834412760815793019243426032078113774596320853790331110305641057627234631061965824093542621260496229457965665402206986816389535509682705997999992775424642382805275421485059314881512439724778820127064711731770332097481040195250010538469888156972380383732688253750519068129741343591121763884450168433503832865935029920271170922657678624723318804290580984137008559667856790031411128293272932277001618533865438811857557662822400953866532921300554885085103086003061825493643125206903909955226420614592499345423976076737493641966096012927048818162920109322042711715747450447734190145444865383968622032695676386409932917236074576044261277849459495446792041365488330428491701296978303232241849580289336665063313992241578156884766066478813783254969056018462302093593121547987362147115526977430673097166600849697624682504796157929395985205106440377176905944625695725281002494839818920441365433331170186825876514745556781432041806890374965623092577202776181714070699034388165503885492980266748545909271177610646784371555769132731220109400814960848668232764168537584944647645716241064571495316309445107691586027619017546737267688109523325229363765545010799741573465910298695266396403702029920195827981236940045077618766666804323400569292371180332887083518017134161663204099737537077013974994367241001909113307620902032777402009572558458709709250325325231987928097979488656024943423316767874046861593825274169693714872031691214538632745938366993461818460895027881696625299776803162804454870119901277866190024157578024841554088829239958691842041190321215928614815127516068114722565159602415195086110225855473984495759275676335315740176402276150264228293261386997282679783289439896719254256895010222260856557530279361064759292419516420264099605115399904207696706472829568203129631111497265099522591232462369379909767736581537869319298523824789411726897402213094934741370413779479668783173417696074449978961182981684708060771753152324102977703704686804857301735921537552314762624919132168210256455555482592350036674877716812668736811469543948222707903597161776356047669436943622664602889162118193607762264460557366937891497600548969665408848223562601749270522652473760372712238589930181411316866215984444675122013611571031411792528838826720970973999846454956120541463880184590506472229627552133075515950523303018857359805486246644377515184411432443829677516041415277840730800670487560680067809980579093970237226666379461005324147265105596353938683819297988019237915015050750623445535164899426277123851162107506045368271397241833147674485138527919635766107803558185185555124228066780241768124670817017155857061338839617239750223622328559703989839440255800566098902193899686722650753103132549207771889313430420774325419785972963674848059069412386272281164486851398692198677786005903561906896610519456499520651019627172073310268163227836346941251000560334025768620995505366221688901002017969872388687385611826188688379206541891273351186892102746400760579962477200519418299478865506879928182810457892465069502600526533386277968920469116071924771610405007721573616446496821059458070019613721315488629120676819783060530236156609404995029161024932177434137562467098717114174391406179786211881276162238812482450824241813651733586101841756840396216676975136738341078852903036964845182563395263723790203530300157383225272329181412900631463272557819375589652051710203396539443128120743252451457838846963360957871950742389793411148096721233203005715103284523478147448510466039602316535992774261657259286398870741490354701641870213023353509395837035626596651490267858117487981476200373579935851955290845801290886159376080315322027780642731589930452738179220766813883838382805995516070469822433842102140645243244772201924100269395425841811007291417514929562056939995158697494430946902860973286392180076329310815425623911093170487575279500838900634503620594101448612757648479927102031621949847264867343250880763756884539844925696025540558125688465387625325326549095865948246900872204516891530750777450665405385461160198469091999833312047771319246608769622269966791552783899867756377341462850681707058551057034468587489432496623023310465156993369682741370271325289784641057481059574134794559360038191061035887783625042661081521550308481236125820675221101955739220164235400149683443855245131859381396735949800513311348749006056821580011957819965680753563590292456777622506874881767110637292518048691185748332426401218650364753054372873171429521887036889861650683066627091673006702951860546977143376142565450482752436081015602835621259164169777509008522910414710150213034866900826071578398935950248986488287422909626832614572591729946320801819261272272538148702824753056707960992581141744185974128331318056837606850417725926220675811151125182921179376551008277053321405616648138387957719698285565490244420586866377198507740801684181046900694673789164258529605643377463415864074557898852025385871300587272511034920274122932297544158139661104239302993892050436436022885565357877686213374071657872892254405860238115909958990146042963532222249248336713727186407497905785764039528980861415930628856546823718324057907614015609978724392133734258858081121650579879281549691833749702006607639361524321925925343386131133306591316354061065417362399973206507180993483513113832322151500041934050314794598924649347813419750375420815956942962685686600137357902246169461575167846489384765646049773493193692527035958991100545584572540399525226330758420891105000062906591501417781690298150169866922127087629332055224022759015022241243579725475563910635367524436619023952925053123472479512561561683858915757858101372698856668944122002526311238832068967318187030038582329006640093392938080933665226016509377859805821938524115977705293424403821920072060164660270589731065936231129490565223409058862810490583744617884274233898112134614362263414771640170190139969648903174991614101278100544749444833818147414869413068840008108719943189315549125331502635043426342354773451790636201481556164554880743312146748905648566713936446633900218254398565607722897700508617385778001656739765662444497093031177967155132423164778653273431615857015540220180142404415291899978183505769863048168531697721260121799829191108643707373952708885103526886978099958099240624664426025209393791689608733930205171242848583909311240016268587363106275718417566325596847317341351948697631123612444238717919054793188099151967259298516793575853172497970698932916603659665554460940386273443414890530461531559652298875071732036961965105770671032725465184506145907749676929839384744680704342919031894211275513081795063081962722360716892983196393742742145683501452039464673939454811982551315066738436724504433299574844070615394556979914637672886735137150652059945940344562438377844743164725387754622909955840178447613701274275136643842051547248375829415198491535675268082111880159920400144845031376642414331840012241532625169923521757150125864898980928577679576296520157283649175436266544294384463528810812037773342993761845229215636699114349430814565919406939703072580068556248484024106026411530700797978443152380352291066106373511346548980880104917282392752185392221407754009089002719501960318444254835399535597798595845829504640018857839941072960142106694068974139201373564298932061387979477745682572984320751246994369885092342876245889529377863138002240028471214587792304150103976474745539913719692324906853905146077174210347088122365087785646689277620852526067710458926246886159977962108949577501494360101910129030482677501698966292691235805188893321801136237092242718043487345946191957066268620517848777736561111566041799719116055817468426295050125476203668643789285436406652664451660113390904433765348825592252007638805563672770334792544171475299317871248275583029950943681763477242923973942486578925474880640345235333818186033340259777806074436987251896356071349945467179597647067523238927789206471763590702839877037085461257262535124294518945427127212760450286135839071233929740695191701306729378814300162386766336951719100453049323803777115711449148770515716706988075375287578851775290800401998311381899156837532298145594763244178650095289610332357742006039071773936712578387185887190591103357389458917875125802011721344265874586644682253300161746017387894985046797796358026122674963154919236933639893483916061789343477419096812102821468007856460778286504533189204215929023730772123989464323783757026076093230772799967453569728348298257096365495850903201911649312805340580963393143870514275870577244207885294280951392142355982410574085320767193992384523338494554147952796943084048616834753440361708403320132511640560434863794089804206986720508272066197728314674492684834741476401271740125912782263328704669265164612609766158088585269502216409313009875118155829263707904071741268614835130264867406144772057959773289688786923439615249670944385607836574130989327901576686747813798259526048865168997106739590276872836060238496515081705778806011039979077920153354197750328939818483466634295365659990517803422416799356552180766226755407310380873609267322961054727339443846144376341192554358639446967980898431772101288802767709606930361835210321657976275457987530723913772725532009593858787633929919031753647672521616885458526927899103271837105881177803814362475645422410773207921792451905405117594401991728154349689542610438834034565545912214460056735174361174560122793550388083561299626575549338061838408330089582765119368374735091649416893388308578537238039937504092242979194186234121557963400382807340398946350092121495461515866702977945844437076039318990291553411815672059264594804502146300539501158425921909920395386572313161391320364846133119819956062303297627106258652701434424770038147759123322535135924252986782049761093757842243950017705769181725192558884571936824373687476363390338156228099195579617905362222740814764221442815158350971426307081967886475001252565579057013199276557422305283118075172546424892023578220113836335222916884024096857757765860284491006513362138435593226399962720150750249603388535169697923151894874921873720123886545375945090250286244208453518063849511539474118370282571530713990929861058295878400864705356540791666331321814956178111491866776129988169249885150844559548123368780888090536726789465895419921818904083626791853321456993974171675498024414793468536941535384290841108997587953602219147409124992032943046410039694933833768596405946837587284938138449103465645845683665799458692358729539424132541484266556283601572061934057984697653075049321178485485657231948077848471292277151587552307899594178516965797394122656663935261404080834078308679362248171497888623569848999251090509050191593784908148052141111353035486795037328852549464842521823010812943014642976194442353128354265283471037810881620908407973729977751886198527133471416579864599536236943045326711751278538382243828021190491296978081865540144836844843974319712936799220008712712408756249055905265899699633205431042700558732968959464603938683755749891092596110595497840631845692031065812138069983818040690507477877576481254488971577007316700867202877353293342924520312861331102171612333315419174967945001670393883803289708948519798676762971682343320618975544312769421298749773266680648145886317516359578121401881414626238230566852649260837540423782519996425934039478220064060782622822816764487664771652027481384022390871819314931479999301935406847539628423337881269106959304511702948122418117859655529915266449075845547298583958936071716492242407154138737128947982602710630019525191323603310850810389543384224847143739096564105725303537177963349963956707814065790625094332413995706226690022850024510386957648801409991598885390594258548903987781222372302182057858532596037451340529937324657609226426659679628420338245449233472446463728128276844132841558684211713276952799738456726434407126588233380199404502273335900000434889123020719421340371690152332316144121405398380530667055267342597046932707363288155171235704835977925102847845707289350124712600182155914671473549981344123438494353301092932599656361432659734698384876267406336490233899718843387497573454487058139766677038559622944696630953713630541927969085438798696950329499387435197205888784054139232190566952029204572232845931205410296536876739839815777488966710790627288535043405003403483155850306903882049122724677920360168864406758021848918435012628444052793913838234915822571206392490295171074314348697692203398398528808970999257607176882451184524646689660651769227453750175908051424881583766058478569141098568983418126474223241115824090880253729424941682771659819729071927529314717205739026254848517694291160263402604976179137602823309681053033318906621341129167136612699375246377482095718394311805481669706311200533337116463852206027659366667723003515613137127195133316789696764922820122670879798986585814676796263301486384534790522201470936031962806715753428442595579160246649617137701395934343183822603379904925263892374692183633189228150064288218264589230894665497260445265839206730362917810119998342233284738286129422543153702600662366010010296776686305409104195784222023706825122380947615020608873954401375152276501839217464859458016034660503588522275929660744734791326168382580200693301140297771990011552259034209810917416430160275057547470399229636576735960574469712134001591008193844253838787494012035302083948937837108331538117163848995696181986483306456726849915184354811819669438265350849330330013612021432921443654393819014477332597440308664011644893181329325838478125658162853451714329264148954225053747183778142262864138756415469990345040540283956491285577013484793322853661275614267592660674002256251440769933133031732424762632142031962031601612824613173297836929538488573055623964164651466722817786441148079805417938896892696302922869247958168944955334770498768904899085655366100904968312127566155439820147587262431987533042497219332180622158691364987703080109728211922029198422562169753451550690420862155322909428963702583051998308112602001465839803201459230550823821675453698119311840225732703513348663631569260029979380596764557782819501726330424677691487632334587743450897735526562011944078634185997252028537527130575192209609368670493335923321954464228636909221990201165996160950467450938943758438753307025456035220128266584274843343330006035319855310619218114231336294273559290177628526181003340483306738731419836134785480239168962574059176362770358142555702433500793181556878958989895398679156640932335001901865586191164464467479564074738127792548184078466318290370438786270648438910558970696758715608433344555114731956650425400872217590737495307837895031273720493157209577570563950532525121664446284677104816919135406467305757794197670589153063125574822592547776325019605471327036642107882221356625701620162885079681335798860068857082853696170645227848214318804107554733370555625966249711887285982845758963527873540449695640845222657537629287939540608626025552729280453364839304415481101329092460139342640413433424054947970624447304910960003696928130059236817550426544706035554582476685573350683993465114564455989836161458415248149598542053537292784186360960302877974031650944705364124157246810510888818495167022482109934889370593202918794737673388882305119503312498289722160872332417416856048051507938675388056223035945219984016985138720931550988570395373658583543138966478727143354145520689756147945514081922553518488159380234883587057323374276496188465834447336245678685634114847511172899731098263840207937234408137181082118844748347189198915535298144118290920670207118541299717086744694675830087529055150185937483509461707790729623041377388499574606200537579181797777410013299155677825073253400829595557985439846995930345973202167713390600839374116127353468232529350869385726124099075273642501281200744845606133681102012805007925658126908879750833650562659097148315341718948156826622969159729745624099981467289353114196847237840655809025684616487452885817595711179719394248902450932151499895601248056471317653637014947310569593481448064377346806244770362473868725882342434788955774539606843519823625031325667561812095498426129674342452316371110769979242032000220837950631086042365045769814588648716990840498994476260670952112959323336039640479732008597970651058503687015630399842015837712506670118710702841162439360529241449523106415969093654603217214846874781211567302070778298032406093506213262397775830590230772685872562162138932093007007637642720989587030599037560719688681942322332515975378586416078474088545549757593008081558529399547968304333483067256520101729570607337109045059938397724703548048037294449892487697130512653067193552397918065568222306962324697679822991272082509670040614350256133407033335808157071010051378783118705909499835691275068638237402581973410011937138411426658181966818742247004212486347873623895665678376729468611355890275890278126676904653531775418353679697174681046220107134735989298575017596185393556795797550370348654622028864991385195869328333343561790715003015961302245175226432408765926327620585646616573957202072565624446070325929163514334076133890825735581121050598272695277085816214285195781460702272369201844383687192673055676368896720440940079531807730567564848076828973921135658477048569287764837220459019900476401398370497262789802143774468742644964394338001523205417474646946115012996533041142592037565447216061676716324974470652513407810204867864993567388423248743160502204715652126702327829521617710092665768902344478776514683274953225771253500709460714183892843023613832527119613762657066637570164135559943313588692657614528540881975196007472032226466817570237250023220199934680317544696895383806161132344005236257286217063973218029709190311463934824589909032263200223781203675291812454062402031971008002736038417754132279901479954565682167225980082885594818887895775384047408481055412137158687165944819800684349902312338686447033257539070373561572059360982095596408693179363393865568480933854571963951633008317010597884029423936841846028492487410299333299699974891198031444416800798973237631848316295353401420063588815777344589596916926262505714814060556488567402401954365461090892646794159008715634995672200745410226462283258266141194471845939218333179712066873192881298434403462957579884806654470022455247819526841650456323958961579091034002184971498563536148462756773996237643588408819496696058102897355403501156691818543917365149685340978174729757008456053535209783230210884698577739610545911112078932603779963253056873219843759811910928879830496221907100656406747674670100448085718276531883352406919245070815522029380367686824340959363475615784174359295324299481288620341640037973179719883297464492198359453106665604555477004449437682767009469850412826800954700994321851736645940514321927103570171148147277745283996261607168622521993795974503732518782395512993399668952036352147281981078848383675541759870969908533257106004264606366519699847099767866276926030705378105057134940491667751777088979227179928316696995340691491362032793106064503124430738198913715321046925123222832880514313600439426629242565692418975089380721940879395640034105810112679662350275889939290200227804998390979878412720139834951217346894645410394285692114029465795308424388967350544403234094503501176189951759563465626886080077227087697638574857462267463327933996700898936313099884629245912275081665216329998440147730561734557891141419201730070287725300964122090560896527552053938338962119934601604501784286398481461778331586636345665570852150353396063346789184939541901633739626939352450668174630261002524839239010514028336149548116621094564532825325745017122803094369485661470236401366806127802244578489495979510417072505142458288651703716016477541889781624514134416046359795987752846669027315959347845116866741671325832223022096145434505169921744995774864997215436906928154761388386707852640183449036361709373176291672132954324410065554606103419907401959773187627808839224797075388353104212339474742833545098473103958315005172683286271037239640412464661879958614704597146429503938425439079193807149465137118051674622144759970992431831173119309102673703484734713209926946405063347847514697954663144665723498621658717520309482772400895663714270685395924133212090272737017270405240257964074764364796481607174130484599193495383400953671755190383095403361462681009481857821473578485910142349978700437773751064552112945232580468112827369651347696923920133485860178026900698486737183638214147029128369574487004825738609320734798797736899288183969011181879461878701647982286554465679804489709670103033602372682243540427798519233671378192774117465560416200274487974501035949397729224620841179101950194003936825672657583159549604594010232472802277968448448637067448453133576235470123045968106212663334414897760674005663706525700642185285250936690961869703863655732051666023489097407038430384958774930070621610724073051868619443292099504585372342660222530215655232982021562586407179031448785514530652487307860679945326895151405066693656035012434600292111397856484723076758000237779589347952411335829222566607112280360640916354041516287577007289644203811741263763645880512093860877205430977168175717467216019577893514145329371187984100843927683337573930147542275191017971408233439137208304767349598384996420636910775334948859973467697242807289656534377492481170934089051595547480681922551612128843161105390949444486692392372383809516837177440665930689541279083112619947403330485956351474481563765776233531286277669998472214906787441458943765911685794403162987013968734916065249732717602953980331088235905918336061508580242199842468710229141387285496583691673417650200673806230164349618003079835305236902662020740831885879451638441172615716664406133739852237830788307333130805539492213034372636104199463471815480310509718048323669011056960482004723299323423046516598677140742379089496707007462548631102636732900779950799909618579090510806040081250708675491796379262530248329645781431101635928339224902869619093462490689787790630466556263800253055717332857035532249448682336469922854811819279497255359129491920452139722022436983431341056487142809871361015966288752611252682951250811557452707637721886559528500605148737114458041169214017595541714796938310442388942611903942313878431948261348808330071813920039050528861489841211999948980113268748531712657433392964497232140958525395162683863100717322407481240558341381519650313260329450962860343066125394671028710440005145492100241760719332361918843489961434543182862553926543724204446993083735813414984405025653488915560546131574069969784860330730114058402071752776733167539609762511481764488735595634507886406807231968249592401688060331331325934897297771441308184818098417994505978073918820535077646493197395627520094655808156330125273268668104437364861937298560150777387954465850290023994334778989204549434690919493961669984819775561905861533443043936873957244165494592467681933313848659953538551650400474954654375481421494992939157496153863669491109900790041890042660701424719054953491689658733138292349787150031290696876360377111133433748751590912656767060175059232687329807972421184893662011506687682978779260770150080086214327445426272716112664321232274961896512843681766030726973005811767895078534377824164614170348469274466752243044764479524706551839477440445919178969478840841097021715744954203239706016730796750801091438820194760864263612330037139448618231791047628415500855419545877125857932609652290402565572955602084785003609233673991245676368820370865247268285486739387099906406063059273564575802989256368427769087190518607254462677390804096169208129543018164193550038736710136895621393454086917960628876930955500401375461492562961458964787494904875476110560514998896570315332313883963728286296023321071164393201940665069034846455528972434006900509653490612696993387294246214447749744298729117563249825640627053005089667261366939979757068432603147185852215834931580440141120669309233674085395143295073259842521386856504061326117618158335113836372299782117798445687430887680706071913913109851772341269565843824288881638507999402424909792886401382014872251022960158631734633433117524265040813669551968328197504933385076116375504012579375248597316629588707748297134896073423127391742436900807629363655283638565911557773991994526789072486929060022930401387816966041145455156873111379585423904197654906140199386398054452634388644558315004488666679347666342874569699685170623498455933255947107792972672209019409632576246671777488455007344366676857936207719714392807422399357179887133794738379847149595864713314318539857130957228345307823305189241371269939000100414627724684826303561691649440259444910642762544187783434573259134664322269219869544801923413379875529658193228902409652455534116436111150694440553467216447159585081177493083379564962926021155344737580742267239489524193947073216139400514657863576910042392059339595126420028652509413790565246923115870664264050130467832730824166883430331167640196315329160819237380082530532210702768812583656081853870788363221101958768846711629960308935907896222926355182983623083709942951636821678835995122415349418676841929798539641810072312998684225105548469820185907240121412995441077964240207183654209219712573477178632295042849898450700189749017939779128486943272827803047851983562457091849392110315850620359964312154032678334426204216710537083010991087187836251578152341372014882010376611032705754360023814132084733802247004895570583313375196870188529835756393266450225368868549434136303112962870995357080643235853277836678398425929809804882948084802162751429465683963978082972664830009016176926267737030432971333962698860278197354475247629932683585831809786002515871027776031502988073093687235138102037523265431606267732098798855407693438336182522301700415482597187159017367520842581126854428389710537013366285375095688459633359842360630397379731105265298399151534549575683057016098598934583819952618543916038213602579593397369562824518218223183477910155512587462611176716587162220880876260708455666894205294470866523743533533958099433149785136429454733478914809259409848526623644767544393473922624901896061593999786679607002194316087740780254384358870960211618651873410336320971009478118665692585309205669514762151156561782301500702524653791599230607461604493493527212229429267726242343050779752050199177398348270293950468745510446302121863612252891183295614374801264402365981883952530707426726223704614437700282578622261301009003454141519449145606819620702180384416452988322053927222212569732390219850391428079296681727298908814127986952062579209969419894916012141296085807587537736620125164548647444657651310914131268119823346124725115577429079527519647222035470261814675721581052586745487815016972163641201574819292600884735497241292979317297478159962034597047707751710637818140277654220385529092435980954342284798002471197291724126925611048172537720114619696072928652589039479411577309079233392284899870623574377523702781555146986581113313433677939381121875220011076073270992389880397772997402253255507636583928799344212203541069827419474356551252239035416269053570258577767438042937771778463910043723628642759178516831549603832818616830175291838136959793766453289242223800803144543895965573631498185938358594061754091517118101236659676239044658682764568913195564746688923960433817492790754433793907795141681710760305808214215820731735875742266759957670741747693178856282363411388799625933281382201311512800047756696991608268767806556736418767799458687618981950614336085377320986893536901841620230145706072641198539577822411884475194575046430386324484175692890117099452481949252665784706158276362309980280537942168864109920634263536892313770267191884033776487395663461881870663715863510857472427529574157215447280295061379268213306353575918429431866951733393412596575776203276350209318080832485412490147607966252856039579006902880302536040578455060795421445724288801721264489899226915928242731413332144964701976344870362566200184757039114658530835614693494773709649754570277883234976156348821693902732929788819302567336158623177688023586971753646445794914875205844812099005773585028758843473939604446442858908205644365754957674266876833497593724676260019948203043876855427764445019531183382293165554179459208405725838845702278253337897759383999021463241450289904467318635362529455786677989707523143493429315438269286491708596985241643493351557501421688169570407853325106974856581677219872341237285776400286168691069037694594268736309478756871386103783856631892447561137484074038202321520639520593376021543320518920309606805567244485718272365362713779514056349307261197895537163394986067141523075602634891889218438415403610758860542026628365767860920162130408641225054309841708489743214303720192864359986269588821607675778787512508652062635954047119989054127793764646059674935735854218047981149644424949761521457741428619370347240954260354446912816533899076805677240616843282191070196035520040802498608529345511738915591509128416355434510976374175470755627544729390870470172577085570365675583304034181230554135097031725976696069835127419068328284171075192213536052502085502823456888075716359863881884988932364208017865430106870390398560025830299482051641009174439963139516785965594634660168350120952373734808303094923575550427882909966032596250852194514761083290510958174896891294730851917055850948797744160892510758848040382192010493749467246997211288993586002406160834094906296694584908651632914063813072795105513524533717170922270525802641404931941545781693203857259906571513314484158458718576151832834164793705427198655792477795774755781816493383669101364738499644200656647761836231774130298935369890470928641746607255244902788575968089613905341248215045713134323904945258419089598862955755202701847016580804191584588834533958079222566543585209324513933287491980646029665530139942274608222777983341839362057858719417255179494336803650089644267115172210168443906532175191283681971692656059632590373135112723417014925392377403174844711311258139677350756987666058075103180133356989825811049441146336994682375941059820268419282380307444255797277540700893801255126294528764967767851401420557366920968394739977372891681350451835772447955063371764495212878539388032705574113502180203300252605302792982798719305800267029165947742225385244111014916154070809624086671999537745326085553222197398753768166298376252900735017628830183934207631097806757082234125069424190259708359442485285365052456336524045109031819313199784253468359594125121734897166780757081940438945745484275058468417814672636992286838553359856321712049847205149813635930151943682588765953433537510221194700068656961351097010231362561000865424584532775913714534462915201325939005613908834237119018939938499992755904365875431682260894811983945071719622772321936453495677288806284840550775218482980344552647314956593204987320494350692422477588252630849696152569884256883879742056437792938730796643294017559025207283959731952874776768113012523845038184171737722573859168987334994346718511205536531095283344406976261727793654942490846598860671958632846833597728816093842684004016516979575999372071677540635693660501204936482786739500138694483530065988948843360182668189494426919201163409190999212738812731496089326097866535014897316413947116006960795666115866157028818318908046281335092738258994407408723242004872332740616809925168874235682511139213240593654280440367195060364105493548375669338119556013485469122787436074406558014923303128968897022642418191448523873368591563628588757521820605705077901978523117200389665209336248336057889595315934434117719727546392390199511717861202488852412138101948919067348016245857455705151467093547381750414671376113950873404602288603193138038234658577073444443008700182435391435459706874257678323172784482761163289838164827470748687869514781333171892204602861297018231485097549559268682024806495124903794930392674283123317406219379724595228669146050890399944435396963026582926484528885175416275452263485668393349855036075085037221297989546084350832194236214612443046212091453561874162361310533194775435904307486588558682245752016013635604568010755169674029167846768271331837623824964333445523702333828693010794845458715608335030140991386225792331689027217453337650884524277071863957178469382507621769611779797608420537700541148995506449561873009729643151215125284610296136395025977604937060429692034064726988631074887856995677363658887654498357559142407288627435503654529503635943367344618034330304669615976459436458439736471189190137789586002105879981865755857991073469485029752798092471315591649864005170157044178411233835916818455081329349256823818747112241547466909221689685187919860430612946424225490446612217559280453078660819822188619825459198122870129139969590704269673193289537081372726759453099456170820519833567374614985727724320158545570870582227562773992243980460936493457016284955490760853079959574616252188432439520379396212771162940919194243097204596210480530292293538467417841314979912202878929563703181601899958598059596847973977288218967592979740940755849333308171465823686460157609481383751322490499644176657864444603943054650711337261858298353912904686094277645017626440197694190054293986438746692865154382293530759788327227652820469084559860538532951936497733131388117014330035611899313643745334688342240860638279686737186930268137873719053087731756634236870140776725580433720951200057536715096508252394146015185160196248158184435535135660691126502451526335323333223652503076107360129688647720006528448965355766212354252688586836924019602119243529790659954807288700702409246387264789332238596897514665774645338260656043742984565800179123072308444379929086648453550276881816161719111776738013367868065628617602145960327585380311686942442434431787786801032890167935990624541019400324045151142014213762379912608078301936787896536909187834544041315280828115881180992075716671213328659344035554393221723673888868084069213682182771919944378588621570120769912198797633388234498149376033279141595558237765275413398720539367450972314261125040824905155728510278058519215002094058321817248355023217294128186185209422930644548298347133762271256352399956664353577500735569724780160945653098182266471207769023277611054986996233453445252299356759305171360896765333391201764573185759344730473173859782145019719659647769643529424343332037380711014471341081814621021686546844932183203787827578573631568885897854205064994169481357443314319078522813418604517652883246825856836916425322467168303499703994800011450087844758375164507423802595917139006383430790349511304482038814946750322273835024776614176308588813025015715022917707106724771222717388805913263327891397729031417145206400334964071614459763632814974001480614623663545832927732228914100639588595932397799018020267548553681813979455571119340701657970300959724908111735386217341761722609939560197394012521104386939363706904493412840607740923329971586311772828508599155782823634352257829395679341497277788669600481361422579325842082479324893046180411361364325827883270308924569826117003990457296881796493025508483097869609492850915258899904906073216966122212309061954328634460570812669914913634507535594761406368206551279906669240416211756349634362631395652338441775921845767640560203059726397704205362511751799985292311490919749747391536159086141602661620781651632630076880532315464308997875656130361099397159653115901715153008550503176323852168407984927071120919652296281839227726192544778738672417578377804030880426730388939194304556259654421395443116014323143087299959388829670153297695661508026534382247466254522923354460207827579166263978431859074517330086720672463040638773826408638972620440799939209635854931943439648840711589795494156602653501714685973707426028780140492328140891038877427441159360376064513314491146420306797789055610405873725123207377300320491351634442220635561937734459610193851450074180876536683489403319632050911745058138970236194694464126205812033366067812815363789387249486202608510334247025090026841347440658633112934476732517515657688327954813550737840938590553764822281059084494323286182361481484744216940022721032809576043732478278697200267415257444937013368007108267707200438230748032429811652295838594944718770393649752057856156106872262104449666831612749712846521182435807003647510607676249309298835265440024169311576504478468232105604671200530276632357887931954518040397184703507163998802770751507018902899747439669223812746509370383586754263209269507003680676590148223667624174140332484979320994667702164653780326873583443377952499793097835063196499321160847819141394108621576807469658551928888624987513764619697456073068621658347673623225820583473334832091804139139788587863732612113666268235934403066292127787573700439285483693094078292916733078197075151488244950314709908905892328433386634048887130864916558877148797806228662927724982530171540082292214103447398288071434867860844045326396493547670057163769124482951429003447534412841560706515598643917080488784062891313032606713115885499723669683920859453145912585626898628718365295868729203244527810692868735554354447583682314264904411859815360782647284293485845351209204318821087287138407963628238847652471794064219532352735144259877493854777385844866726104098551999454175562205074235989427972910652153441334655572173499611446591544182513788598916379707339810869356382338502152658210714238130749078441294639276223174993095395900764992947098349792148831830753710701944406929751244143078446350272275293801814731055555374736103533353646080689139229543331729194824039604884179508119900498412493311297354146256060624887257970628249057636109908200659983084050557785073046002043328441186567493701801780615117351285269576930267259429076255924984091294923975048790225146214596528155887201209262990908608286221990670632210119451177338321400780556833539176176026152443806566029588755832574120295010031203649867109975734377614449088527262568049954053458353515861995433112127989544065061579526241053142864421176556300240683626497278789669496161109950400488937664378875895431831001813492279063692584327051727715381141662007700643613116735605360007547952279504424081847101856259337617123742826607405029602002773329696198909304251876546404850518138059528817633157906128425583056228104192954583065506215274009709937796816307373843572944900997380462769946904384616904450830999505932278830940546620805413419701347606309848093140369718730307890612075679566698640093594731031914722145786808089944229362527001379045883650367142596343258503854678477517169371733702617230212172358722952935405589288167423281993840519318538636513896726639912764411421247754080997358794461574965155686994340782972124954372921591642132073061874868662172597253524067137552520771739834770324892675892666590477049622523383534638617028750220449491819666084734781336044084778818445619090605162800996304485930062377391867616101971900572034393422832071964301234010288271268929548932976295689397115507628307192721038288394725562029115816221515842761734999033894784475446366675033965669235990299423256081042785218085478606399403381743982048484363715459718425503349737312241902868791253131751127413562141426474531262522196709321858828742464122550142126834916290661015398007358074604599824412989044006323482195600704914002716240069997849792322888909437065985155373385792394410051650316782885997949820443165705664182296593149141207809931632092285548497168725342464925815936668691440394110095078187456943017279337275300495603768412675893547132142155968017088781687370735225935521771399155348698562612113695512528217659559342944774929734708277006564441074882357588499855637712412754522623495315960432000238353797881483977316112002790763550009546230043124066069079452819738959766618561017663858001271123674688642378732029594841353279695218908389422732247226586189828308318637372832797885099442965902733337387565972333723019290056464394231751453956547345383874440845191471734888425058610301794623257947565659105666269490407284147335481996865679491928562050588957486746246485873548400418483901736647217136964348831148397486000127584591448132523755428424580317219944006271771657272119072759674781420866170207089492352737548434574232387679193309488803522440206549086717238187576317783110914095912832568005964399302485265453947460368014261657035927250787000306845430477454631524044413712421456409279145452685584801612705126555659754912145323519066244727223171545830259350782128709517430480825534617910884141645265178611147786928674276719080646475953883749669875148754492476167509160233745727927412747711211972445941958965710891601581144127720119837091343494882585894961778214993525187931449689754387807257977498059761917927624068373574239040848674126604980835947297212719226602882277671613684898428535188760706114577013990825801543603654503419945189331588951803997991134686998188708478222949381817005784627435546406095298412983754436094211140750953556075919122119469227176492989438791395650476754102337600065389541109150831715829063394421279910316011125186172418245363410610333899379978625949614443013356649892456745890025742510529267257608593859977303229631399142543993040880606663597739694518732078112217617946420797305076105935678421771813527628985641022020762058160379828810384454992827212360042024232497942958043731629212787229149262771309264409570699033800027724438566844229040735133627252811775739887623113858640098910246595059816201253472438199317561905799766675361164048992084046546684235727356770426953660811701924119168841379372544504084812157020792872872245362800760393525433209478645859122939526654716237372486392306281560113312668516396443959510933850044798179035706834193137146487660241044065271003692513442512147885236649156327643250203779753211019765339535521831140121117344220167629678905876488423275723961848956341590273861874806441585403923019210355966749925126939324041444944282545003824496089007288585370623355670498893836684172907399410501026036911212057466395289976105551197454880012022930601308987600786491803058373033068699954782263005001943396229686838553187305965472278176343674858958661224675585698634290996368647706958839897864636076853453347620142933020530441781289485421795448258014335590097938179752369587274858501825509509325804260465245881481112985871706849693885016553928198319220394756585676555029404221835960457392806149066932416542825346291582992792129085149346875890153148589218448297256699310248758272397113510383002499474788643790037855910940312786667252883906204463413726630914431669166679106113942238998309567670409896143482297584328838901631269825800792500216781977161366825375165524571137903333951163240929903976781298816073460049809432980392657523101037088790068437045379841868466537422631497950131001994429921072003254197362302657590670369253335353322818950154179054480847700048532302958685769229573626008153981769420658636773423228463172393710873088559663739867239864493285633003347464249074276001537669888514353988552623520638283054689594821168744154480821634567134588215698981808254616228875432004048763574115545780675530292502382757050759984613763356851442929584871403429818750668007446628436827558217473444211347822938027319046149661317965655016313051561828470833215324572927481785741512585967136361629683935938867749835028471175717932533250679573043983534701432110799870264285173155443607882174201890133564164501266037616176000921425663452186293203390475221468170078647211305493936776174625163405117655923044770705435742176613698578861051866082118150940913046025956824300088153589056996126505074555911914064188018419937968038376738354050924596384124907979103432498845140980245915152373502900680601098348575501197665313827855576376586014197313006848339859306842827795782717236810322586257986293915849275833965766457518667058176407536559671399647254344119250917626710820176003244364111446949219603255683633181629544673905848607160988149278641537161345204225647829794065546821928135547516916021336072195127103409623869012911747237077171564466369294086595306037935284668458866805607009262989406399786123273019441671272290014031181557308810221608530959654103244222935813037931913262299679259703699575561020300605493802260444025722043077686749022954852565375810887993103707617174184727118065239568718938727667699378588724878996607069349881957267320740044125932400631639918285596967095198786321954843955585324160903386130790304764780251390658177384764419803666321804924582947059264635107041656234066601457301472840856959493602813697807522433886629977906708979039854066403439108225517299251282379367377414660691272369526542786432022706302178504010796570412726995554510903985268251048234924600161767374284976506821636894739696055341388951360584350395598202051850114880470259403147762939650005834002689721011436640409533822105319855762443904492314442909454061066100691117119606089942540382139721805697585615891964112506288574040140608195400171140552253732234888844186121578524948520246093330840274661681783143045261032268912706866295829509666216743974255793735523756394528254428852697147123078972603763110579244287874586283672287261532326978547052995803743877116938992411508130248635785709327943516968548564273314740208144673879898567746665045071079400233552322740469191414391925939778522420726898281237836953300100241780579266921082703662092143149756553727788965381715695818765286619661342278070848878686753417824029590553891015957022267570169932626102174808503748537550262922485249279824094296000433131098144531578046768940557284226299221504965841656802525047440673104201742182149332841001235194232648795910876865975498371780929469076881274849882655098995006124601653900225222810024521095227903150287898965000438788611243275204810677928777471530802983748244825669461545023740908393251286581889913238558072016635822896187900132721806998527585498881219495516663800464403153349498600013295615799407132702164729453189760857695688485467097547856095289818925426558769925238895770135047150774599433002911117239567296436280041694302591539561976587620695518235150585148318309941875150097985334556315201621913560802756039553653460243178109588294144316496501737960077972431572305496454334336248811222128931827597514498959699512624125796191952750830152109889533667381597912415384601434452905257947371194090002728377540534302213244964392471708577388412433266653088798803090709161113530340549688458974946167193867536577645176571999358987415261218567975794280063599353066033052193845075058444487326152788514800448242726445856571029096725531436330124768808563987710834525488359331262268816111363773320967779472601364606322558969599668639070112253182054236451596349846200535693294431366724152502111581098346714200093132071068284337647582789275746523057721926991980635046890265313249120767264234057886652206972990382955136276851339194798427934584046577694884565709327835608110036963538525071356298240698845354514719153717386679250509478538266562005684929730433558570763119995352555912721137744108142916011676478841581690444512707295217882278594089761810081591701999259822470892035869353021132574394171840971931993571815381075007551276011426035330094234740219670953694438986295473606566750189976497016889278259125330943046227074309970787765839407716512991292085554391277674787658639591028591586762056825269538079497910206523167479602807179236116842946532875429465203715245565753029966106298076324724867751727602027125402467997527538801614353961433582058568153718085728015157705820700808746898763628890649715859370784437915199540715678953579669124071496408047573748527664788699076820773837821664730387372779212288034453056762345081008122014890689942832201565105305239482478732761828981854444566937367003651622118940244564358459440242283137512596551291494149949691390793439219355593974699277780111380126700206656922380016945581838818471684112613970782921514888950698459904205602952391646782520388289395152324734051105241897111845828124194637835052538143839206673945640926518198629928566449023748501958007463434634899036754480599412361769895528322843508488596712752075052559812644378253357083765476977644127369146340465951745289758912859748135972603773802661008580839343308146127472412680982791225711438037707203154455647820189481353857778316931098082121125186524020655921563421169417954617765572461059333495097494599959494589894270779173146829171642599094639483732839020656881407693256989432288982419982540409657111995092923812086894391480780651653955770904686729981717505150771382269881703258707198017320683624436431719617793308301424207466987244829738092388142734796125595477022460886358003690063598489016706854533789805158497093389595413825069568705673225616773553539081627819191941630036925254842795411913712565225850728114737342283448736449974212871873342091412366704384619150227297331472877401576748661395528394812594494962761265524053968419904964892537913369811997318262263878134120446764687646790944966116827614382293726603560144872919843824292640866377139648819717519907615566018122017950888871394048237539646306476938005266841223088928871213032308771054376704865800721362228434717134151293677682419832516656285004024890634645151831955365866749860029648010042012127608982743044287770493617941640571136378096699788360024241084164316327784981245102884004481121827974032733147180278456881315411052869749154430125363834903577157272850302199113710468069622124858085206688278376955496610566003119369254827317850860274808472294581846453202929781636892284914515320445930281057990382064233101102430519167573392250785571943648390472820458642875742865443583810881101836053755595683119084786698785856659350032704281471676778842833942914444226009568165612118217841721912723610444506468059671745172316883070885483178522606420712783958006665158214586503124889608421629484146008695148476704749091271496608937440349259971211340939050708574790870350955175671574262861998941495139833574896934710558844071830481971033160633550507264794067968997877053800043743416780360674655018891568263049760671916174148104059207640802064909445828284480686292491087647099182960744398488117379597091719429931554207270688119052661518582300471853034529496982697514657746145954818088366992320536509573026214300136643078656124523257099179028612881621595418388547524699111828865261271690353362516831671951660420021582742985018654669262144016764924862671915938623030531661193412730383429112948700974764920512789572432238961396211577948390223809367283912484993299849329119948468438526471213015934388645917976220257748583254544178327318622775237619079705175960260958997902616659912920004007322347659696503424774711808320869535578623985787095030336906486212015510154347054980944599751055056691969089553080922751165261859892350438190733198406647571255185767361627880304585765237669579038815861403462784147116634637743042654165631436509805545398801851624957266462342845945610787129864955603539330607913859422851235690425090495602343063466177548232625746523064318338815396898786249031270258947657747475850432732541208107130889209188087470610744775730448085370954954012127393114883873491870671761985570277961051279802268286748404275180857792434450562714858857700323383050166508946677790929582087975521379902436655222123241544343728412306349421105983675721389194163322775450177171543484989646632086983000546844957701229774057572716380849956487861099651470814257678838498156058213342497968658969725766560044038983527018006037403160690145028598708044137496796269923780917919686483275310998908256473378233692383712463042191847253395113326848266382602965014720269466159356433526312567997143398466410038950717137049952750077136064221855289051052122477321009726157654208535123968296491356712828036319879866593271205013780452308511566884751889281238531863368962559519690779079853771385792131730272492228696647180696664235757708929913440569458437058291321940402953502110982648242906434272171698806473537069085831861154461370947269501558782580568475599026892140468175398201748334380458141873393821135688597524128764737016176908463888467082011770690699209089208367154981807265173746188482460732029921777686086971610459761198754680199186872786133571941686880278083914204305133759665466710267453347859860099966378401349857513484819784907971422163849259989342677874143671588735121985641124960403744014960536766452105096184989167462335301976596413314065731029566027337804740157636624050042319526981366447115782623832755294428737370622546286181212998438209741703325211686544700165824117185311933381679044071082849289687286351356682511476934595164194927287245521009724514201803198654736890519332838436335601641639422285267504823057340350581337656360756155927905747996256393162681308047609527827894528029856414844785760907987561934891480214831090863945926818166840329213887328637938864553347862747849639013213640684034531414434330746913513066113013495671411010857447354914490641851282729639277030468322510158266382425106766831339038050733376616096864718740728286014875670873241684216539705718015096388763353404797532455743337439589099471197675418873519555653734268327260146886480527077608382962532092999781734495767050741647857426020220947905128780182056659056339252707983380223221299248994632593830742241633714447544882297866617579772600554185305843197052669455244252226898742195680645017542345447394298600324647160134779203171615832789881971308061169004322214028440586273775839126171650202794027326214702111670076951685108262032481746457221363233669816054260327941247795445764078510533695982993393227469798408042791509876215346467304708323511051526122887091807061994082633986218563038803318218280401204802975222746074050075757793202056273340878577960452795298949960667747516853245874001395446829508307776528426692401220129152852860659524158245388865307186504479277279329206026636149132624846755152017898653247400428839684944636531850857781857426757818638717942257099374642650289999338918273736578906040946312197641722947893411474813992512603274904263120193987050072087437991682997614655877863434829261566954862253862376280777723745869995196143643704183847827315242800199667036549910198632690938132651585676931211646142321222602080471525958419120573625206868126927091786466597392900665197613633716535827202853093760486085260436814242520764851860728538851982002410611057455043630326648567438430358945093292152244937367272896572486910053856013089645445507853047857016273956251873650326620728046550307134254177623532436973698867699815036777111504949922304483831222984101355117591033372589099052901104314129362167417606876601384129492692112864831159237703631251293575861944167403518262979804482326046071653050666136054375892958840238511856427078812833285637720264013783683079900932467257662800788179192615383754475372845945333638742804238576334722077399851458471276450054753584028535215644478981154239992146813482072542815294601473571018408574314239746275786407076165243274352783317118453545168755786523149090749812574904281578624655260703803940127450928490925064665739067666014221087236199380287842576742288510029392652630229814894596331611384630141439493164346487581954186700720015796463205783238169124769378094841951175260965240893714115955780581414241876571475872311137255147070215722831754614490160502847221045185260963634930623505216889549742245043376751536972279314388884906651104617110915664628955616990136344360409401227651392765584289006724687554119018191436867656722604633342609041069191362918263244847326946149057279487586059162321593060752199611570552695951932110082375671016186859511190961007626723249105639778505393404591115285391578612842775917712121682326206920892740724945534087541629008971656062099436515158540863331126239039956519179510508249582598392559523178535139643049353957314410221151806934889432026454334852147688831437912307981164982871252841749808836781059479930982545766737881758071379671711408917540444402077319589534353178251020804769497307622176292805913978447355321484420968574943661765984505523307237466433750424380324607745220207911024089616677045071150292979325364593047672560469678312663341816872306406069682675781987355345749776608067100448371585693891686293769591680884911106307226580632418067005146560563648980176004496135914882323719143499238718517728887603774756452359257228709688194447756884613771106840296053589142539993114471828367363679139974488358636955361700069944803370949667079330105216091757947335330370711385399575289117731543880576382708491624121704810544898659737611312565508268870973158330285771281868676290143558928193213738144045882286391052634557246882977582321148248127241714734940635941490522793665963135728896266479914963290263336934551071253951660992872681121955174272464958006427433022010397360116555592981554306734568032079238307968621173855789658565180716185481749913465268538509959878391274079459964526965972100115817984624010144488222743926765104553189768308406718958795579553254093202333290672475011902955171012013886439475264539692357284700229419057838842503771292728976635627554579113890291971710544219600607270917867605527038077192428908121404888954501193787268811641491103195895089764941379987625616850224821521117742126240734776401853369566226298999082867097970011688510859332064151993465138741548678966094761562200660479593634711140296194234287759837239314992279175881096819261196835444094077762772713985727568002755170038437716415777337075673696596219529934817060390910032631949438634718636380769451383707581723888787922709282451928543417796627916431905809897859311517170199298442771925106739813889309464692419427817196600983814054488145585747284521407059977836225524146765686674388189072129459243358531172490556862710034210866534969492529916815966346464158429804580417048163334650596946864711246617145162351138071871904111785381711885932012313437129047015678271567676838288967169034158531298662804476026272499574865830765976829290030282531371381381785188043458286888979833562400128765358462367537684584727389233125045672992954226286587501294329315040892516215956690825096340528641535798717562159730915173919424001244093980202074026247938666889981251607579774190513451692682355125928296238486382562122626243068436628755984926691348811623162436564082157893300480233864891580183793496245672588491771855363987424359257379193493054733781645443861461718243108482740598921022779707915249465969318024630074682346177684726665299460178796217443437136605537744933390853726666444051447867066844850372340234686240098075200530865737770099497788581531343161889114465567624818223733312114692902172676366602305056675926968173415281661671235329892896017634432905849124270031454129679504978082630079483277849839754257172764270721617287341750882272266165751702219891446285875496048795134314250731174129848338031875084921830577187338182326689827766207694721386131319191219338037198298875868000067009519184769308458286459836034607401090450757452270536377463277267616371682438280216900694853606630711617826873178618315317247070404012954422114457408901189094078138525803412877881786187675070150920522684599904330783279575880330278783813660980097557387707434527154210217463083330897569007235115596461666208222904323045591223859317894725779493633183254831956398335987700344947817643326184219838079211559923395394178717859320872772859558224827466752119407348625005358240095820848616594179367101781600847471947637405025070850286583330931192889138429292034571336278002684360000538491920459163864495849327812172106354550157800504588417255937332837473658830271671458161605283986677120455754210774863732595615095252727376095124728208460895275279034640396049274984587825243543822442892098558186700676050436508322846303455386395857509883333971521927454299107508480321616182078058228435236968531336748853476657296461668844239197914258285553821429132523855016350919622852621519063205479156741228430466531008455563069728849683597267597264614993793580752327246218812850671078020009816445592918076310079143174963880063959150431426914604645549812483602064549768094177832254802929466323827762862128585895593347594748186947914534153321764002437586326133650231883407439712601209883771586465743037806598940207015631230002116236505656110585923828622458231343287222723085783911075325587067867342982326079792456312984769739867229308507258049116359156179312667683672886219679958488505413108006065744660428568047185862109903548056196849214664557233056850936000701665859079667645421107959844925941654282903090768109534146347929451806121322149584736453715540654706731473500489732797849208378333698901914166181244711059345641551515409206399274981620055008753456933837544782411469620529574899086744515725339836108332884377145517783141519763143438613058332409175386399039967819515139346217464380470353508028597584082711867550581944189296227822344865319914447608080302104270245845898232840660970816518456085859805281944160767511653462572406802303177788753517157704279834380746875168583069389032062892567524635858481957975836082238798677470644465529154479716069169089339472473169989429090084632485107284427696806127283166948462092920603889942579565430086472591604645359015461855946344607411696975989741717659516766672475962460860575911899902944435226587913120669133653726769110005910084523022182017062486153567869468266029902317670124914858191113963024330662672247151057523859477031945494923377054101480397943635840950828831239159582015197925839280574552950926009372133582272183215983019905526470622594467500602681353756103476675253396058291958005686083026359931915110335116720669574056174731330453471543872857579688333381579173527364542672015934733679857252613041145509741884511274384407627463446214743144170299232731720564482210845102566296559325464245402033691188138573261556314196527264032798511869757554864013901636599456717738960136652570713022836862175140725562680618360330789792445375262953927736234659497881934508257007961516091945255366110095004354874383404488598809572016663150232628917608750523764643548217084013505187238510049293616056431291547931825273169526009918646683577525022665817794670740667112381752104647322531266177417195647993994220663760184684215038423577706979403873070093812187328968321862384240873955624275199647647194916061836834536765602599050603248741857713093505570352905571351583640378114177841484349822619579643808555087630858358729821546663146391596000505484580236895771546680297728624409947149611227105611240797172038926534005787588348529861631484182227353480626602624126994260396143300734497754595939390112192576587130889734508737702364782706100378997781039753074999496746188820904676639326454257817049214976852698573201131727208567290339182686568055668257139623466151569283228600440512326413493086170147968766431929812381992559063626571544314742161142945836529377302926663749304961218924694645431494498710127080009701662925971474424198072521377382071530448000557891527930453996303178136940652988107793023235680846372667843869646477432328530042557433761805025040285209123018411531572194009925375084532478541069532011436094755140720012937923934097874845430777956041347860694885112211341607255112621109341913983577577155847046777398144257320202733281097910598003375637334497556045871010890993082454649544793725606101050177273556696920019723232249355385662625083042049739221086041647455748083281851942355960197071541032947045618859032104060721086484900645573917695482038840486194121225342285476295162678801603972814515896149839046456515864237647263552792005234455451600789103149300453672095948200366818045261385479162743653737279620721550234645919650384763706765230542345177708603916232649963606379698196296264545833630995568951858547127433655278190803344834988334164840207056983062432840373182585465813138083552600552715643012486745950151669644749808527162267862027904673985754946258205722324799389509304486990782056735784332434346929929850292204303739034575528093634180862309330532460438498719488109749835758618403582422604427923884788469507146700003546882580683447088117892336732609920241541949195449235590903763143543459634421120547818405087982075042921711898348636601049931278249675501901672162191797161048501771142209422647755180878147045767997041051358614944755707203819031929822398832530929074933812586403125747013734217703373867969095008067658238359538488232763271519906409946870505758910806102128871458159334586169533455504906527011366033504090658511914405040420079519563344300617919034260503518579974642558189988962399182439974296707020868534211450456333167649729159881838888205021184502083140521395949685281005877338525915195530895847787846173900046351138233954799604171481419058377207828888227379314742213708713164126384869001798041450173337742925260959798555480786517953928474693102919350898764135536308135446504266858455196599145248181868389029767104177946824352756576763729144290728556755215232240456070411516158138682611912549221512335602862629322474702623029270383207306104920009961402279005703433860790396498419282188364424203190545077003377001118944320215281342599966510623696269042195619595044646245604623618249543316802376507847878892544279269931083581554002510923048660673864911761262790335766925574437056996818849374150951927060662028369446888717181036850665979662082471597178556443498893665836043317021547719191563509328782851015942610453861556619739010532997748516126793381643072288809606941424612796374253828790299656709541651883771288124526724994873855507726865851263010708260398379377248084334710676651669946103972459776460631602134712794960979803984441175458255324304530178393514721711480849718987201306074179078584775357798448952742659028080056622017540984870466191734437770316443020374986738114443482507623365059289500473634950696890747669752199852056164115883702954168609236996656324013086805476565233881925546479610801763037814347563787747792392316422615362994853651531141078475068409258828562285511281992708585039559136190544802403921448968662020017101116841461303301093457394673939956076267168275961707286447949617690095023719255953016006644299350571666503570050956871995340377515793724101562073881728348308372402649340697528219121929356061810718003267540663809983150328162870964274737938471485797531209414473925158234393549221036516091313958462267434432531041418608419226439402580026464380633196634759023388596841423125000558526393057659295260687400685835129156986922075947065537040709302850620757706260031351875398932532856542859764227632763949067661371743945697191639447973425187567781408571988913944174035020088405644417237218809961748169587335630810827490111570596043153243620143239448951535595716752793810518949748200421333820408125001996122524648393101885048052032773210585369125726664052544988559038426951676079456417448997229579645201378175306106934448663852621934682286373086721067153929939401787431565841465986833547816320288410659168988252942963833158666674810092977029859571471315134194396113262522223081026824351185513233763293421191496939763780785486386647896489385317136903240318808409328937268775054016928135902582055388454000371908712777105613066685471378510682818257378052637378993137995205924770428152348969022837729959884371518307617813460578666463843656984868195966165619638680175205868451702034263848931365636333603424406715615179038648822173672764669390065504579183986887197225402649267639426122905424717592608267967221634911487100704339063551738294313732679167166640566230906961924596397681975253762116585823327110304241316079706714313498510943069577824715062090458277831107924598241931434202924739963682012218063020515150904616403913404060630260442230262846798472687712523101570415114275302603058029894972787758577315925397663236412471003151611773034045840542653990999092577495498497527073910473733776429345360134901202529486385072000089946306884110032588385863546337829896090706850274669193113082037955927189444066516838855825791888939976841696379852309157776475245535049349751347227141263171794142557020214281266811346665269932717656403164127324059537177813340249569607887871374217958680304230833327124127793858084662206745705812782145128525389911565385430628477429986725260285049564511772610391845415568073957258304577220676271711350399695638700373008526945037223679894681835854980493343290506075364797645382341588074635515935623560936630873120022351683217412563393965223057546431938374663217479403466598358901028966723996601583278543955042821987855361369733442752266705724930946802188634041602599330025611979979240304414689950357697064753028895695407683360626183283109795370828339983515787947917974086613828678912190278276072192014574297791397166749863923092251954427085108548863265971017512300755848527563041261708479117808512748163662178462567110265783578820921042523998290287346492758493589516796686603672021952429010601397206235189814816817208187471029915216602059115290204538199253682942291804137358452071255343506647045829621981839684049112271698957848919813976814912508450376970343300806422169867287380126808524470084432669059088706116356952164590906164939429326644913129524313410287081354774579930353126376167608318932672171738377305036889535790258015270448667426177464200799025746336256037020222316899215164943370169701148727600456952032459768282646621147024024560557152460684496481469761311859020421311645000513704940654902291796472257107446896228595847626105537321118178338365295196974218342899259587813271795713102453156224918307855797860503588085204065205359728445168960390706371466663716513915135734864255214778560893687985543516128599775271064996001007362225073096184410284344832251535938001573685082700977190151925080593027542167279599887017657841189731107540605996439803538879354434424017637792873247966057087122423851066686766338381875245094512508614499023688371822336213559827419583177248673602613496149221080262996017725809410535461950442018742241208410284221134732366815140344593337253490276933030312034544982298277035539545270158730085810531547839927790592611799734379956926300309675485273151115208823290297464980451156439940168682254413724273362769579535692665789815283094828050672863869705217589409543430235341113262665614480306029585800831916312863734149921190846697616315017409953912423729162142711188549696023067510113422067891976807656560668205602250816214244408498775378193566824068893769454321232190099273342484359354140941069814147229673047535131127124501992074151051142353044999759668691162473966523802251206640573401392727414016639775641048993038250205756230464507306204915520393679699835396761850312215739941235319296995230082567287119669595948657820519496508555775460897118192893045822168034130680541208313951685102538090664617932332774406743744383434501532975845984381568555527485479791902274544716181286866913388856012299716675869697970526397317009313109104523883004953291754676314680616175466431691154464824585349647021948229984503907349247153932026817012956215348853870206446917978277466417386556450787840277755261124203269124026981301573960398135735493850125975042901626071707565947337884580596899240995390047113066680657727966122446122257715216043213417635217261595619015095825119155477681739224612994015514508395858503158850493251972886722630416613022186787105312594654867381632324768368167620048665433840983837000825890066752572265998157170111771610700923493482859737488256933837310883424212916234729317831579426609824986531321435676679126536702084635650044084877818512834428823700547205321579853442624712146609872804706203669312279173109714499130159476964470210535267840168125500588605477581181691672387482652797382864780519023264046232628023340694830165397255385142778611698882183571822430233749053614490433482785794377198198747911344763926994285524948566591649416981658439640163604631157497385068525665378645773639114238023709153049707108801115858077209600512147446196156636921633609517617459564600648239994951974421811025055435033078270785634677739432618832343146855185678133781540764096319376499290456406929685045446206348616440351483003154172728543590024649678737785024911810174223472690485416262545192810506824137891315836853062625010067112563218452661307057747502989186770712016148282089656097687989274988908414251193315998011917342734562423704880583538781577542969921575485454538661738933723654437486051163846037074432344538059551403506417604400597384623358000320279037856288656688513367901100323582897653085345349601620836617841771469877432088880236721744087764625131601741312726732125069230456892271225806746359208036974375927662467556305522413587352088273759499413842271944698563156780331997924933548757780025889724850459366547392956622920197087024256788343346415957136045309859686668757920697839721193893025516316953186734871731181912374200324482367129171769398253716746467423231935272545583200998518760962727774921346823095354192656603542484354700003666008303021247900319513666241378187012046070585469356574182744231933458520379982753030851694425206206398675348861685332477028186262575571080416783701447366767576815122768653339101037190349304855372099258912095840843311367739398937054295808149453596414246082344667057609139087031549934341665047462944189221275213035830880165301017367326515943355410092816786666900763331730117538276016573098552549631155572280432659500167182334412767897566232511818345129881596381644956164954787050881449780236701145756182454875886981534297309219429832292071057572976921407003893540192926817107333226151835879142923070610063076494820615729102225490908818768187204940295181771319316651293707001565789749719434727898940901860744385506891669560614553931587950823398380952283391034869963751587686624495595220498532401705053404634409547948354352281253662618294854170203994526009226264545841952050398754822840315789439732177145490337611305680394970721042993221659521448875731666245240756303048488379093780793546673740659490903051406092047157937901890376981764549199675410126731269511311674487673191736969945237026635290164090026231048604093295821539657400700795655604497365479699171243373212707015058731433251358604645918880344160770356160973101209580809473451561959330813124922315871758468476210558258318645350550854548116736213319023858648121604910720640289376394390509543716326308767344277649987544325559583403226366165731452687667836729808928778654545827442962420342617540468422857330236002670172939597453379063106129854758795466832247986741384164859487034312343788685234764028484662042653355511561659322644905524889895374005055588448871931856148591047906933192067693325635242482918584141286485810632054065952701960814937317585527878242095306352398370881703513914306091206492077022187233302076038012809378546926517906063834722181036961112241263038695385668270917916231791721908101402605558937921818958129730990550289847773209786878530701059065293622347049676955093190420389857548791314592966382129296683259268927804811117226131069592362700717504525115355718375061589519164795882844035289012169544945079796408865428767213009027375371966808081040544977071828965450074575120370938269074402098056296225266342181156450446046558929846839930630729578082397421316138974260806289071373497069878651152450424866812070129086214999987994204607163082630652355389179147743771367882590878885316361906326323226581026788863536892399681120399322779496487009418992444268246070333892048925142390913925130082918873856838050045949010343351894398638086447618582820520397000464120517533641254209137039676112199462640939117579170796618740065454594053690591460672449750685849977380090055339784621068986096205839606129566710791822150083029285757395294741015387199838914020547056243378387514507570336827720321100015885390512276110312528348115672072819025707889313221024853505025110152629640028358178598466998201100188726370504175211261021105678531212640673656414593896877642073333892716339964426874577323842624891997323688623213211795358967663695373784973074247320123936370129114923504789081560271705730544608194502375378030986757184644549011053001423261555557040629082553942125028783498322514850465647028535735863936022584272548289716459889738753762148351444728848574811868361499768198200090824891505596942193495013740627729792351795295900004128245248282020945827973982617039953592085341175932637660155847484101864957315167878049973047232888792504231258806508979453587430587385019955311929961145526217219670823929610038755789145054551297362174850621516341233121773347731347709680536850772956709717409235653751917972071097827409552118822310919478168232530017454200890707110332911186150940239490172826567020823426749906366421300732109491164970335388086232380485259688710827254551143682726085224858443623170478241985237053407234286387312004098614301824470217124941625740812914297781689758429797310538015381190106805114440513419731433971891492157481480401713928741710873495687244650082802004004958709983059467991024166882426813857124824394193575803867882916167738179210791961609240987576541351555485529976124160949379627387579574257577726362519272504767256959083430219604017710511720795445239395088046125284630482195563155552278975955252153143627119635200020390360412718699094473438568183747535614245400393345604387954897072671314239052024929369675841328109236271067476386067037249348664805999267554548409591870225284233573843020168327098354155767914264984656797637620328598162272110670016476274504011037263575302532236280792423492307421279828923066997863724663561362316625171891528550398487150619590823713800956195394016562125736272444303279937072517038003410047108439113464247925669810218025536016503658119019708421904699608900535066504757008361852305813703418188368307005969474422313382719478354536172404132439888390858297999206738019485666207334394617194343636221393469230872242030544335162298794079310205275612158843965667844033580796788525057577703026179326583065668866578147704236197553186712175305958872616119177365895096207940568525208812786059446716941953839069494045255319343864433099819656187729173879788212039859322353120572928416377009539151776080049540447271553693292661879179446749380509122602257093516796801355307396223995886021796314001760984920906260984176117282069621122855605174335392623833312634739040158592177545055559220130477755092639955820414310477977273290478896191294655427090908497754219089579103463049803695722535761961441245232062420334473159886091596679308333414831695533574669163199095009367490963153369756357195796544222114175178096210007430549849906361899263345836842159991019117631838087856173385297319050087297826557565787148604980778240188469365778887285653489705402682520750232963795775953687093984824152492081440905490373230154794061181746642129983933591246178996096996912134113200890116970904093740242439156963935206505013481543732294548186637395906014514970187186181437071880534224580663414913001672057573191008076002404015575448805898689324772584547154759200422235614871106842974241232818723930264628172930172918570896131371148102394320377874445570419410576497845053487375753498591550287808207928367133554049843998846800253873498287962444264096930335228739586981853413076954472305839299626561951085848994769405940911013053223365191886753876083221068947507681251746646836891301871376836837088004394179682154684887640946983658523974702502542581089050517195397686050462317538310872926112808736362259154596399633445347406332055502121913094086948788656214374926225437573754225458518689395079982105959368812510359871017273229901384100756108690741412738050894201818247882422514607838758570520439518689237919656164759908898216986031795094232904636307671039361287426808374755485268849027036884108697316054839413287342105581342236905064681964141324702703913890796456178950817159785284947632653225811542174827260497985434352307930945436589046013423618126651319691961356161405930294543533763213424467322280712689737047842870496730436159973067076138395757743930936208884582326435089737361286188844268166038444714778481930623774475385981903463411514418596427537434000245041638490691784995727646053359683675072539259588019376977436635205312850430535575263096087549221058546312322284407626241778062424279889343921492263359011778427537921275904430313528871198825050309262867612681332301551320826236214131116344702301075414912735838344384353229726951510125070382808784714927571136345708129723895863625362457327354738864483514644268983269730340862310525175513133908692566450365461182122923168151315760746096518682233940265743849065645206555753284106278262804150851075021555836356950565571497097007742375499964913660365072817875512114247596632924644267973109923866023396796066392481935304573247598865174303329991683019394310441170438227968811813641273198951580241845566102973208355281992614997335198244976222888398533264352005739286633379002238883685956636107795494822627219413449532423298386889095632122342034170417158781979814759907728633115520014917917913107311371966637403207154164499282675535738651509973137760305414771720120200105933259345777679742655063925711193498023089295919262376474001614808776346469176633704728468821971304527602504436627225627555030226938532708652459997026769716901364562924772379599586825104520191209295276753523604839117131181977633861373642914781897150648901057945296960932680773216825844113640536597968710058111225943903868810319698937076295849451701493699374653487842247796600454693245889202071177051443130984480944545121457514264397975403307499733512228382609542307536604783132925198545976870407496093914806199923797392826803057140591021912990763103784531239868399949338887461472261358251680035113393890252848461803605759595941112434534269156286295268519966434693932189792234545288379562793394212442392175165048473619171610103568785117216129818725568559451842823103050034877026126335063886609792518175682432928827690180167877716479778274028065684477611554213818465458686871010473817050299912063233106153836170298352453060090235877660514556131506677791474643965511727526979033375512341329231316900921974813462262221076020218091919717572696992325796159436859520580817616369974345285133516308124977550908196369636725310545623367817331378310236782146400071852293532067027859480671561680551840829005941268898010676116395150598320244635491323267809775833905706223812611834283904843306891591090351432614696536504774893288271866847620922334936516227251576657027254169658481810540634312016602915093877220422510222960554070257649495877181728768081776086558285076962289583449842535235233404788164501327930049594632157952198809866042720468138788049985834265960285433650535242590754934457810251506374323980505178892256031992812342893311604042080267434234228297549929213044193250630876607919750412384708928372813670562110521051122823946242779852370106050740490641397455149013985561361957808246822621155207153482062509484280904224617148847095838522734484257582551392499136043422024762979040882725573859742186240343487341150597754458247545538681920224432761198051351280326747044923455734065956402531865953348769802638622059803327961778772005060219301687501956984025846782740827838326077423514848472037818428173808306634741902041891651588248636179487104927509937788031057901770099680608523909968564956449109756685267520360799607663995871658736379397922366516998850418411209983068479262916116147066509593478377284748958630561323156439711976323648702147500179182946477048962668539778724602435970402985030578491491019713993349171602876111933639915819788219968695544264116938506452746691923569758964172120551070861553284325664242533121097849520866114491256058798323595063994542090323947564821177930959592583803400450897808979854007519920912559517052124879215522164031086586247616453928055608053259523218556268659570405887817806890283086246528844705101492355860895469219080436214811168232660436551606863525012959645386436773951220943713272951755923416559807126772985825901626899881294457659906876457384925418126243573436822262410592852720482094124147910030621970618745163338754842984984530250419326044362414729001896431871097182316655247294808583971450072908322500430592005323573023720611601368388394092399121311986039763961337308114750561253092456461024165421843185700249430533710872414320374525255194927669013614389753684916080890015272812663833706239755576025273089673906331472923164450993932271637334179369560854194505861052849104544531372186627066599326355729682989966132242278220257069225768152525976118832634438365631202156816583687160416009567278293507364426568961064776079625405529301965956127110258854256393660999314222964454345373365087585286973077459499434225545585026962427170165337734441917889649921842268457557317422646151094050323212642686811997457189129218541119994641883306091446169815919590562637490819183722686668258056961955386659840575908093844354847692536780663759555080466171721680691784515777141199409989212084725436267048127378317801120472247151202781836233427257818044313055787613318759319478490388335433244527198701767755129302807630957265525458174125872475525901343024223577265743148291314863421666677833696928656863438019987283922066085518695667684945420505014011530545325532666686801037994964884847081939076697995672787837909925959502482222617039324171533232356214998795003342551875246593961487335171696504481041513197945329124373569373373948710744204644696577687507164300093984457245528759581341768621331416066049558751637897712406049139504503606291856841185904277766518704039296744295033789758656467692698588773309140476818904447624058201959823313707046238943965093463283351302571732205195053872099415261099515690857335351903760430101962337555907210219233995995101883429927530454473776332544772256421069331764752644498639100691517716929248177695662383199878914977070877749523687662743101865852192321170188895854489266866304710718531219657937319946882637241521711501324864543022372745984777989240674856785169266545628079690049346433863743996305356075885062764196815466861112657551205721658439272243489687483795715709316871452595879193889076089608405282792444242618197443777485115023918289081883489717589592320666094523658537692626120256850229950230328800263458904789740730673053795487268905840205673765340820019355073561558772803847505229603914512402616703065404410388056304972269476712347861222323650056466638275489627742559332406461582217785797106900561588196690566269835281790774849932508972206427659479731767067817289068519793995639637500153641987894918267633670140689276058717889979551399845123890735382473091854001091729718738592805156630510715550002986947989837400222317312084015473106254847990609950389845175348511112716579837835466066521843044788852223881525121306139312080965929447801823521118535834624189332783693945469162336154160786738010233104058855469013340341516848432283467032936633202602190828277220069616840942783702850317964796264350238580921911628669124578196749290987522042911490416275284098396077041498820788790986108901037819419168655096209669218901279026901990118221919346768991458685201547678382885284460991432863990291058539996306599823052763562893260952838483303593532206082741780575883039586332256970647967574569721639854746265864111892056714044803306931878267812876034340926707562741473395344923631360126627245018578231590435299068973417483620556952835730059135043395368134106819221073720851218536591408176341762553686126563789346427487972010529190071661130332041460154334354822889966397993373200305233972384519609991356441488898160474858455367222425619506261931351028019628564789378073809946135932717655980440000120435906340861244003980094192587006702766043960435506126664223299351141134427372089751162392732793710393837091184259607306932803572727215114707264753935876340809671422513622231194683273737749907534413864221746702257752256008926871760769629839286942657277825712694117359123697188149113834880253681172965776040161297654345067546367848542484986588472422673051161289902300711299200057207521295766043457253812570498073858332686341179287891052933848198979740734719201656032808939711983589425861751833191410347641847186609171992626802839805326827786023831054101887621570769769245150164445660220519795577108800225060870319663649983646911753808076555987108225643356224630524097053066164457551316196694957134293841515259941749186936837717855733979825013894006988258142687896199496636843341531352684394740560487841459641504572369443110099761776348376881316251645941725947618417770272979762967886036090614997655963442702577112358189760156721648189150355533002026243928143482898503091389435533317295617445589191384749238492005911517099532340225851928512349091690265163229815801309221344696938598540800801449380254889935988917035838314617643049462217842019627685482815737530018964310045386570402558385096294204811763216150449028641181031539816683853359948023966843541823058535452386881866668659037557565049756826111623948743481654701755483383184159788140422255898413885539817383235074184420508859750249236055160831490556662742993456193542439510168934379965525940963978404071947884252796872113683023697444916550394744964912040842089740279896778449289356149951444490885686978650764953034297174171788595918790620188195341287468827461162431606615107428767775115974163812968301278213276993464680664841085197912227949529374672476057726640537423851625806997248964373244758602486632248837179663329948039879135714292824744393561149479356192171517679155940231639510425380910813081546092736650841708260395673815016437097301899732346541932166489883355089835860378616667655112283661904467168662356538705648985081046991794747769209293820363071896250232236042323736392859640203478201747778171593376839578446885129609140104484809269008823825541016259342941378088851874500617981926951658874818320417339213260795074400730642226765113138253487644397045869865359498278815642700619286085153441898763429876059492544391767224256243892811845502010187763639057962317371626899350586435101210888569387890221175794405573333649078867308249803769077331505877698089695666488074792531126057044665230650034607501498040872700794065664957765135739779448170035480304267386582063297209365807502673093990057510881820984196158743245893098866464198558926333391691874472740367005374894606691697250592932046083050619104632009954595866856328342413743154545100118973891683878125476436198011630646115071170911798357206319396229259610418047847102099446275511860691431402070100168292418128906855248762510338217734755943038798926159129292761174243566943706358548281489629359287490379639004523854382806225781917159979085549115427528008869742431927215520767436526528562459749670088280258625216878894583431968892158617639736173753655717944535076602278530077971662986265016436646298514366028140444031111858087456347480415536467266051246791130523008809178557558607689704771617083089514472077813074408485988132656273318406664989409660183795155543936901461517251726124037581567458855684546244192545258237647107426203513013927429643221516134267999659586178725435921734360090137791571061036921601199718652345440402687448581313547091349150058421347776418657243526403160479409923689454260566644422886023459205468500826821766188286701542217705410769786008082520871704342992970596562563506241533286688660093066890757792929394300758162906490858087664180060266134311877988587410838123086378780089892924149248868147080691332430978962073485046908191733053301102691479503575754080339037843145867999500737051615457772516634884179464339365159669380977962574858907306819968890469279980258166838092472963454968968989586055228059481519222583857892384539801014273412948415673073952898363097571121411479162476324379519133357656831101902581577064049106545959103190119110039494257187330532862340903934568921559322895480257779282498109502644608014923489785537568035420997121044100708371102122054663902656160873374902472336971631779346567533226295797479454538169710667719864444538049212409893764094778469360303831107180324859059519485077205508934335754894040505508455996048557984660544490686683917786377730723541626166590376915643042336753860630599406510620374322566611883836130229376349133036132637168073347611166690688476096638600566082829870159583122604701571936449978669867556154882146155665363940158115712196075516586902281390986239533922294929661454598149753532444617830751513059634186629225369701424321601265727509820004947784074612497671602389022758051308983316019478559359469739245010998891888810070866895808374400067309695156398493996470238083941738645624803593200349868707149549031869957699557255508882956108512870275459503872799896333570779812214297935641080149277519845019904475495593875299961870759346797712547302660473096326297353428407508301172715860657756604836944556773209413819766931114441327572476651726736893643270901682740840294702004151357186843738983376254440680900756933071967778487944556195483082896479471141139132325971855272011782086030269073612109248269313708575168121839251749372085735621121507029084470231608940644640211041949167725986604201278881070193109173485876089429535669057579908984844857451925760491658602813721273472990940246142166500631258653612490779127595098771827129962244272941003099197328996343367700589131897129180946923522210080353188171425804145944861779908013330315268790369609832987317300586985603868035371837115460220313788068116099771699723936399295014806298247422053686714905468448868329746960315760053777583285048002765979976422760644555289145968245852211397775370427657159486570309914389191057892812126779339647901051685448920591812309397788302555524948059912137176226239074801543201122164723912836580767572419628501823598262432746254546956946130271305906110969732882658710967299207090891204515092135267409200338799800829928502513903433905837732325583004907408362426385071183299001868078735458631094388794021945308574174414033941550163913241440235858802570409650889466712985211271082933417942338468619309464380779964625750087653108388727084359543433900868821887890896524516809699983427879257404659754134271544190611236599066045629876035899265974103428851946998993107972824086425711072239766434007863347468763931762919833403761866117892329278304078493653364503878855012545949630613594777162456253207555137596198218206297213670614279864688003618903376603894143241846363065435549217102851429550403851743916316482461898386104288154341432642884767565927576564127769170297790357888885196364104631811049913323517289150205602282860652974161526565463540722209715573374495496989195621412619019046707065142679021773431313287663144843080216495760055919509530266227969242853522199151874680649674663823950975450281900046913613150226544495266438809489445075559784276315838990977826886597316287640474572204771900129805728330689554868993887098263212426800085422035966982420614743437716361436778693801980752662662076004739887723035975501693725177571326245007039083706054011225192860776188652209672337892839811882845476763890468044335649748405134865365330177820936060592282961190572713579332853610495455669967071877824832254548237353494493862305203050348510005341970012716149285812103056486120812418919116175338176802763732447488475939652133449402201801503348118385380790924400274723832664786951863104375971308328099727948926841500095171356124464576096206697802315022082513556358435734784242930954203635810328757734240727743766854470209148873526240436797473180745527630070105867078838294608497948102883856016815918492326880150077439316500197538068969147300249061501449453792995240827722132814459008486830510953232224173241005950321063143598254980587328325905646260779514768350187681776503512448686200421805016181566445933920027268892026057930591954113597303475631618885787148453770769341765014953620504426748305057989114985330286449716054170371318333387295766790082778440014635739135190237023802186639730802350841054447953666964950570349928173741845811429358741368980464509030335049960030952422561655671750530419370936344011912302388950954485571375618732926261384396620173701407595444680518561575333705303825880900652198712604403154955546030589071522258537950577136104931529798374387875511656425037250766824989854302689727693528657267268608270454879940356719223305978228872078195689903942558234087756606375075312087855809970936669972833120469952482961752649054666473588018081893984555572652275729598822199565769530018350800653944493120127949549581320651830555503360712007350684531117031755887572205912314697726214212132039547735512020185196757701994923261600416331475851802996680699502793884744508264638941130150381882088974763981781560026460698971163762753500644185641157888274784577481314482643190814648401165945856089523534688283709962353291379155558728415338914138207510609524303764452000031818791076852539889230439801666227898683499476840471242023935649334467070465882021736212551356392095140362920104892285286572709018653290105258001076815942615618615434683581211343846882163404250387091535000633431443852192182419736826444471910117142435609440975171087230378545386266426239288766963198197572346527650611226246493097012503900883287265393386532261443321190770970232358211472746911484498984692543237182906315222835143973341309766262622163500676848846200094928177209804504279282116222304728477502317356691534435021538322795328488956631383424407228881504160544580728442902101963300319151177840904417444434730168041384032571953493958636194021384325181721072144620100610334363294332742913468036950255673817489572067290771405973028248247587839027503347267684546700505755077049894381751829370495317043815170323274463712735560585157097663700395605585021047724863632360175462108665286736552310489056128370507214530697303492309741136579752556280162623958936951096729948393178376891119609355116517784157615551087496268565561340646995266815203878064873552118937148173888370729915911021479272352734696704806167816379539140933724848945733165059182836541468210344914997709970066261405189361681497369259499611488466609407454011503109388988251699642960385427494045984288775746160832630124314952785679414315444796829361161045566757483726588143827158957943881468457686578207816810968283176873967677699555849773498762793832163556796624479538685812741983132939874573365356254333351640528603225692050212266228285255755261252608661191061866848334225079755986789872594842136171548161902094681343510228743863355293513364232692921731783071999608317595182269758108634127017456748053604916834671747732358224203783701894349238751773459973458020143241915299557891959921697090299079113545789474332367067370042754028142734745014218903367216744846567166361406114120503394082339086530929136106088834015913598137515873631632264658338038695425806945453041735193769395672547770266990756610193130927443301073342008792135379047563789989269450715935364507827987917142341736822856836584793279921927628519183980742880839022535048939013889886666701234547437741570769412128327669866832886442768230557549510944949130934517917018883981535585660778716849440784827566666464550552614548032737230599524669227892104306739130505937188760403096667109946004373789364130749629388592655013429450131894961917603396017688893386267584594687446827180334961479745150903372836555254054426371380416976391792695902827733908206806354214768374325287254157405344837070074545422352059732949751686189207109855748973692844053882011291809011397200661452497753533097059083729203778898365644371797790887491090075364822963718671467500252249508668733233119265386733869965398837103692436528396820675118144226567782134011797637347668208456242030441018694126402601677533083150792065397973878086713599087369027811297975458044824505378634139854634151522396631835267840056005525529313062722646968167906735601297917933576419344589446243968585377258799043403666905885841896051315790938831358103506803792427890167985160231785822535749115997544261290153417479590593155733007172862927801647291032869820360847517844506165680368854694782664551265749747619490513839909107813859003804695160005155943686240909770830494669795378206036958167335684788154557764076249029220222285969623503913695615498801648486541189304883200476488896990624397187576355024442589280838469927864852580980643679056903930768921983467706817495670025113163229037291675917011914196980315633141257098355898555452960832454891045487385738283630841531670663530986808246202489898135356885004294974783794304650137109045708490495223255513021420599700115075367819512000542458493336515930549831848534967879737736598804751367839156554125423032824816315853821217806995268289690877264468197410294791419970503858448791886862421410112331941119599967554059932981389224467860472508014141205269527492288287013319424027499172906884737791052460883577766035734115323232462161585410137107957445340520035066502462126909595724650563759677382671336654292859371954437686260028120356400081862007302735292011705251289232207291716919251536095834986023275169874111047869110760980199932539555413158799124711555457932433014621188825618631056170937777935348567611535158491817260635724303912484457022323247861166271575365374634101721901327240893414004277363614475748959568335090539879454955863263516694897893114950617626468296162215769165083833680867404861214771593531279085499479773485457834847256927837187604429189727963558193638157736659438206738013078270458327535484848308733461299189939629043290252108707196689994234688635447694418179584842552826521913743895802172401367179211228134645989218164272759569604011581917565551409858975890180916235297803938748853861806532680172832445547585973943575439094557834157602424577859697581570001370766842986223290046953939128024172362797101491639682872170480977564055138169791066195656586328982635857139430829201219380965287205029906521852357315490636821867300978247331781135170842744542228404439333516050745811571791593257483402548285640019132278741671916306876319602593175522208411217016492012007093069993154419408869260161513866531942064228422735701677934597700486390883547380869840808850901635658542718492518986873371873824025387418140043088973905297001745033769992597806852066610567571761595580338026003021856406791562060040915706692988964049746432671460700943815303203751751542501865663244347958670439738039693132021723513451928820426562017246905583092250141112234067911490744855696330967313433899801514329735110305053775426279513688080650353114323581469891544955257427131622219712159336355224042179019469746432515797116123228705550192171662831027755419291527671948448883919693728174992414219716254637577353686678004574845543073551893082791010436830747016524494012671881319842706607334782260192931210962295131948044643637900584766839097389984145862054422681928669751844170568291561051901952215940558139705274319457941032811884157026103679889266417071585085110789442024429689279083799159396397697675971415170715872800034057744311812541420065172196288274406333552551374318756237434820051125503202777514919204317763600104282297880644712322052472063417802654274074147932831668548643992965555918991210898892030776279416629213253249479142384746950949815514331550893249315257907548447492198729833255980927844725957917264702023155740152501197884224793183721556732546230610190824324122210074554199498207290052533174195169493920753556272697411374181338838462626816506546103283175080360105568504046656570847889731383126506870849829877161640282773461548708505228947182452791988438434977380044646608548317579156722590456116539655168618758295848290156033551189447692679138087080554234086616560202257038958191623719784008750425217069330783243451519031018012921068311487053961299415857020425564297553735388906492351634785748293028826835628350665538540230163840680313915597398980513597389607452219565343597275911244182387295717893668746991470564196279124426030127431034892538768400818386780306683695851038513261252109359047835806830801998049369908832328151052869265143501981596340707671779212312423447798711689977957276522894311048277158539207050111728814452710420664377425555050775540702345327835554817977654570784763855837433065921395163730005570389411025014935831489247453540743659366662411533714677335790019216804896350843941342422613498870778141596686696621184328929372165652144166607382969996326603363869942993039097787662185058236099801358001683569300440139801936377925193761798007500668234945499829571624680894046170906835057617035317394642072327210918215910796357110970577457528180271237991395176774717307638915553111406247333642358271754141612987738905120892055874612101340090798468852212599878070791009788812943875467946467343904461545213099853633421930279755497958027745693178195168904652946437463279810556970440605526522848364397517450331610287301041234154021502164893472770633815623581653187045629662295308953658077126799331304080915999943355284996996249303228146697859620173579288789290860781499595191128381090785980360266164467044386927223514153926100549728490754351145626915228282388430182741469384792184520424052067491755511403375826002379397889621028166026938559813730291614226452840894807518514688319529761697026450916961684340327626954319848125539654711847139210076370824307136252711212778417409243541921877560715955125731977535197032251016412330041140776846470756324064486816002036257381796330640861041981507084431824241334476726463023143034459019685061796303339759318412342312106228993907541918062814507795508874720876002656760417749898701550501104335374809776510171957462355356732176371679852941455365784676950326963762957853744376490135428488744704160731029751097709084512367749327484268873480461634679227940614544522090659192110437428641784115376106903036944563423300222517491965587822934643741619004555589757873814501289551995595200268451219776496882856290706678844112378300362914691960363440315619309278626741073053294729565863888090919715760688883691924057488881692178896243670858993219486442491320843410884060202661799916655912848820825269523921645990564807519568578821744695113424972422756253543992128207000436724537266095383584778300078886945002110565628878604295594869051511703152956069952111349829516393989355228624173675278525046178258247067050487099841156714518008519526920466245968038339005640412112008681243727487745940158962536893776554871617767313666722291929155705296240719177606812745758798623509717683227376417360734262523581691722798298131926328169027545603454902868344393242967133110828447025924464076410101993452097357852442943505715372040649585816708061590766697364520117505299885878016490708361961621199824984002163679607896133933089030011332450894714212846212114673054394043462403932828616417558347895837725397199978244641457833264743646099465318117499696593909046464996634128389010479457777378683569550813001884429363974981498275030810829807788403362370583221477814604915441256217790893886313429049620006998265753565542528791971169018253548541216245381240709817662806618398859446239759533839217815255835375902223256168167016037843615859963334702637328914635004123335737958470676255426029735246631122516657577712231331277916161227439669216730908273805482818513602755272674330983048950888212039102420107349255282782502907206800113511263294133180851819049753112879037572969797916644832984599111695163190911167623703851567422803804837182285461442444666200522447413380475482926275931977888268962511924863257874062540769944596638229950918763097014530004450081431086065153532925830141002253686645559601169845357621733017588882956842627671761737912889968423641344794056646936874521402697621887288174922114245227576672029698850825136574194325633640391662871927251516799644420798193271234300803316500982005528424603612688516233235927222844293048720437650096175778362519544822970000522784143144257826869977874861840405423998976394779440594427746421910979380539604169885591320458805582292219361045007349103323687502861163519953352844648307894291561730723650824382298697401962551447930737473408303475965580193914955059051442868063430166773966065799802124268629455457593378372365014777833045636543050072789661672633575800087686364621894635266649406323775364642514528005727484217603410618323936785743229315017676392200393539183350176377912639076921781519644963141772583118727684060839540402835118446640198683726265872289931386884691742765459190145701101700907294989346119035181125794613194728715097301529080423928162970298893764201485897161518968708515332820864700868059051223664955349472368216266455777215729973845304090387085777243134109470464635515825717190483121774790614087387161921744311235957147927886053630258375089364013875856116081985740564446873048188240441443160117292883037884978511670877347141613519687461010534337632392048191284634668120703254072872993679979437532366361688455589275642639131256964372535240776417291494814125289676634521586299232058119602703216690363137552096664018647987670160934914760629672141163107570074716345036773412165078052264197910751019941998878202255906050435801656410109550687509350930842456340719570884464914741371436043643422892403299040614793957466832813353023747201149045015311905982358615093064559171923164348651183817166873005301025792601702264378188722035738801092320805964710663843691575236868690448010527441246868255932170867720193406000995014849685805022267627916360159252448305317754987528018885908557103731356504535729225030985811816641569568058427720890728107854443786525421012035052959289621373917763560274674858533001359306744721241037429453818205693339319240664243241446408400840817887741011822054309192309819050298730772750923088325334963745684195210556298857232265518453499990549841793462505774878510674665964321679997420805782714410388460042394979915677884853531613928861491907176824634769706256932871316505721878918655905315353314234651806887455325005534748192280556611328916469277430233085885848068483893774062181144727258581908014953481592279371068905663185495483885786261155882314485224814501674889782746246433045472660427607194449448519660848283922020506384057946677658661675111800147930848118751321152395768362746492769980865171644704861806291293321881961816695753725206464968891934209828387471040351334780469367194902311969862886905465819731636365823724181628246279041635654004534056714448484091671184905093725960302079005081605994426373893791855290340439138766869684523975701812622898054669947587193488187754905854137410379629494311733817601966891647243125064052914643138288944296636852732150459440089216115123253799823398316194014311313986664186805654181122830572922874604838307739355575086801454744374740226331565098177881895394213534345521643013538989793866813287182462818671271367010200760748316079743285234879798846862101458235804098134364004082419744253682056973806554584384015275190694680100982551826205607471843263358351420354753446654133139122614381584982392605444929385288773469666846600094097167363074846130697749139306419798135208006323277695151186728796900946189513398243410898427482689339419554309615807777175507985499485992588590593199002907398653646081719214734755371330937942050422886844387835435531185749801318198062848255993198252780142040068982475328123252834073431247372971323609484270896711848408266426936396745478229472611970555711444658825192568104900544974807591904006617221864870488815615182099754352047948488912046199273963507100247175772517092183853406615770192512906442601077549224411704202849724473212754428641734309137576198432226818702463215264850824689807408242722697024456524850494523571253704549568908605510709164979444036893968255040382278386968997508142448325007055502909542584672720404081708275680634179015277569001521438537744606394356911980340814754204338532655536328156959197758533164826405813244172876073277238026372063416996709565776180431219086302852243184583769816935384563457323547992399721867106700448073007088322943794363207489446225555715030468091642833350504045471601257403855085192841407272752009312561586213320775877061427791070348791708020722775058174231230988494793816687259231552145869290204557447630941522598878677156273666022946292089104475393013820386905032053315156945886679771049889670102533237842644339316969628508976813036850785637784458663183867164512166564656861112851468093061778746969676431399064369802624397475544520610651983354923212304547294794081223872985695413250569103436882950658443689776751687188445626154665633013377440574145064613281120291232249211559424585832941800042708928098801971617556612221276964048304913553351427602510618676776487785292785845516008537383542378722391608876830231036849706960962204197879399435647722567637053823699263812146677706735194417936336384987285638926947312482579213416795185707210761994947627909363671308969468862542311339402750998234901458049853629260247081963518438343609069234839791907572894031511381962223392231597945014005623168677750257401212467273466243438485831776857296419749177616036637732797378324912027860066816918837370557190085569488638628736685717631632458409998071460267448798654205583620880028277963567804617050592792036210454221209952582941090259887562788727203831283590156700429016034159890017788552386540337335490214711372097558484513491161878705323772049851686326631143543581893614323087763327565417654104049501433989813716924962898405628829499750270779761447956983434104459159548701227155464829466030880140813521675626974493857919662572823986296052463256156938925182364874096857514371254179333623847917315223247838438761625232054845130044551037832467388830514035827040280454811396107620070213281307515177652445609532932675209703334592874410853152675756296476427951622170464223259488660656867326282224809540999693162784109403836787199900005800948113882638093703156637585913833933503076465001672584948676150368652329409253301582449312667299536690369508015983859153614292275163588181851959698557746529217722282791178228332474615564218837029609599409353534089619542160249712938777650755736569175888396779882370272567049347022892759128782879487707732633875907150674191682620112127734241849478904553281821543730346079654827497363958629790591636755661765556345122688038947787809550190509565115524200918535353835248232018273967684527891146250585747963997690910380885163254842390786708971575011422475125402565992571785282430023695198237827773597657258472781298743332111816357927638633206842331356141331169433044938768310261049179932818069043186751481018457778840522648581501643091199814719914222696031519496859144437736556920273464748766630569267869175744777943574772143501924370156104180099712678894910546030901908975701377749609473813030826151566739742156493025724853987584294639626538703508761946995852758060009762883581187313812182374856620654086204247283744472352511985222165045988147316962206808057502714478347159332322226071196231235469357568667844727013816787222608593859238035434180989751588029663278537775074784767882012312512153141958009507286626275002916101860307225481774959773822891145435415238052698848998140660589366511153335918649831696788215398002719284236628776842004813121582998369778488678579801904052625311033311565675908637148647572178444949192703195860557354003828730919309805086001478188822179743676955815999925901227732577693433920819395025490783119355825734000099959435167346068353897831274209791869101523898859913751443675164906622401516021190661591330078620331312329095616707608367347691640446914657041033008475339135622720602989966905851196044816460584157800832273555566757836925289172820462867127447821220038066515083218570240530276122039336010359979484794550196489631137508848930113278469196571824650493855818575494678153857032254143814628757251355015057753204398984740546708538874801800993543105667901479887141250310697189533976424865362568782385546963464025457495689439173325991655105849511170093186681720117198742695689666249642343203414144453440780493940438944112051329641885628676652808812294931928170894274460786535538822364900869943820815170940765196406841417052448735206647047408862556503699661290775099792565960950658959669010577797952233049153458430037764539416256440978496659011247790073844973044715960133079645438846827489801067414074777524965325986800134557450839656162364799329014256928091775104551796090957795163582241784989769603290356017731783401937904326286142293234416504547261741945876634039388484208657389973969436870788294724447027519382360710437333196503734804319034094299079094470235495500268710235520423516122760187873371039480063243143542271425579748704071927789782780108395548848676831395880415040192617956334862285703247982863824560350108144199621356198843682716514807097239466913519959356258808446280331141297316206295558842994315830465711833659871383179737560807332330328412881367995601938106354329547052981691057251581590018995919544691478495377617374680304852047459166362712306537946091762271197420027628582731740471827795123221909313755316285597663388080775032471185298730099480899397702871890914003232035110773937166701800158830514068378918417376229500546445832149854044416277033764032901577332139453889961623271077462070323538185474439953467616245259483268374481003348962727544204263064437965568766212379710398101957487986863316800357081908306301165359401584052113231370154068865500016297168736029906586343751565165189974476602474562857762490713496335740724706210538262812638798013685673413107536017211068608190847212752113211212592576960947512271810844730895986182010126025137144460297231655906362154802958398835227758180895350735243737747597446182980695683970057327980402083490079475990647677253189411390063353408995891806514544548950200487571528614035013392986699062357256046962338550737424999523634047511456834929533780444702254144212574759290302430977497423637131530353554840914290531019856434490797189181095057373683121944696954494281554942509636165350956113745363578455566503820409905923506279278303523740735716163981554708663593061250108527012842897625092353347213441527359869304623427948727868055564771034153489129958145226953927819149972672939480874391080570528860474181181322724872720583387891194003679359887807665441429724203311094134818819021488110095837042475598125895576933114724902318966607368342007365727769387892700892122117742596850294664374552826678950616775592743803143120153303379909258537808895898148047725956644899154548210317121238572561177867902044543725443591241713290065345137837764464201969472302198645118772670347743465861987714992789262067814045764737865745346774395980067484794046382014346466012898052077088841277524703146195171856480861346402584637922184742097766978866618163430252306569126082550572419788552738442278006152588378055603209432640878636512923900163786767187386628536180510438768925685179584081714154294380492745316816999551427291286382799091056813443620019789028745696137011037191672615012204190748004495592020455753474600140737515068631076348590171684853849215081824782341255487388565782837735466136916147924398497872256491209156529238002084042950977867107620467723233104956594172492368721629098721522096214863422439300630113838635562344825528756426369696290601945506203833962113308913901598524688980958614789902757981490096361843739701433455895853177268064936079861106518520564936898000469749814087115320757877909933601763191378280462037108867487048009311390096819379130162388767902752263019874565083279983520941999570489799641518227681209596498670639954039984711712644245647761528996252571451631533782671696200910175212236506283174224899010392318070452600619338338093104690763405287139542919511293071239556208221283284174518208159358615535703286304020312160545188756897288392507306333489724035094101997202242221973162296009590740670741704942570825355473312669578350831850597618643264062016895560694231067568577906192185561503183862997427937021531037210097913665230048951829676660652400934225438517679317103601968899389270954231994723279333630562830476665019413711993592404340827742318006706450656240307837439865688831601510558696811090464159456755308859304938441295615703605269631356199390472344008276656294937695234041789461183861083314874161372819539466460515194881166605788111080314690852943272768928310301286455400490884762145474173438500537936745119626389306752835255123697124131102578480114976961265527752000914973714849770972023054963146762200542800663283680787094903790869094559363567865773022513535552080216261975598740250063974699203514115284471110715368989642176310870717285141397440568656823059313964586249564816494500507399109728894978276556479092006249946404808507731097816712922248594520755985742678342556499484027986553900280319171854365338568183971388883876334532740155109306232152947045879490080327115065089447833599893237967776076135059617563879231156829604790102376476336642911192006457565831590438090744249133963771775251299821519045868372379437307670236053796844286481081666186940605555813060923748736552125128301012797442287215389587883846729778394153587978068909966139728109386917747314218090944426989294032152517798329766858765092161912721485697983531917924195269018061211120969421233989581389499040444893608124026610345745911558049568596262556978452069065486671427764190426047677060888748316734612171221769732002121274488799724897559700679939419964740613464694860212540393670136078308782846191975080544618627258372119028479185163276895275126262037736712765200388016616785204519156170428191382168388573683195466539410805788559099381010954106952785217267689740369259475794694941281758989925984901691187660897354617127766257770575725438489811023137651696082388547897990707708639439141122565775635109813823616859011283492871291197907228278366183703430564737609424042054900787283127397727385181508342989638070193824853109570921401572622494994785101489714733525705019947008564057652916730905046591236919736393189353206708150407272411048059619599036354090736407402595576990309907557925398322942256657770061567284318607146410264690640510417462894971063402098919365761502045254933860706694272327966536755975102874979287096119383553453307870686377441607936857063462847095321191596185545626027241623466005491511301027106372095007661890389355909850859637854071168708748241547442602135046493746460026738999408348857987305092820268896189248184557259506903370876565363685718008974189103426997894525308516063720823069064832521804144889313110533630152739754984605391474966779650426954648066810603163142098331558162825221985266794221459203472826113227859879750689626418325943640764596047922750751147489003763803356005593564725120999202069055287667747744855205521236141165928252009264506872762021443771075049024891163374078011083665027086663589000144051921192751198120473112691927617598436006278577856186180431881574943034102703470869518436363923841654220291013090631647811816311351852931807237310047995478887824402942750082494083763858123579322537831953751851647184733866476750001096109731606586684554850398329706205228942929289773420489818993201756426040905558351281432639072723716156018442133697351672303686022916082023283950988173971268458198552116497378462004569054672293964396195849583199763089423001879707109523220749550621836366942549068535660657068851623884303777382548118533282646654618880948912685322199201558029573024835912060830333288177844060559465073284845425859678343217652720223739116082013018980559342153821206669840348843652927409419406781125897881710623334210386981418894767049046268816299068810874092233374041235345671775390901937173361117703486952174355943559750027351845842286236320192727402679481521738355661571697106870716823514632547836897140394822188689537692848642046811656526162524280944703255289690641807998748473937973135077957200799084694213130215862853703485736170900728758021208055837403904361919862675994838221687720873089679634088742067370787648134728235902049753777970737581817688147949039298861904159259695811761162549731479598644343810745690792334239857954473456404489207113904129028241794005971727202290794052543639246331208504834907149659664685834672105583114239119808022512908541655812010619593662672261767971316038818205276989469958060503016482036947975358761332091363791020400943060189136047153260388216749248587959282072168655510491357378003461121266625804234582908155552763825157996299363589243906858072480038819409966054041921388515767241382027926761280184186007985751960513461852512471116418150456612072383014431413308078664322543269196356437863096553939927883467541598287115116684321365335397138620135008728573695709363016746956657673516389004875701838312583859139737976359833662228346126046923750099521272532368073420914133332425513097811677355850825184935158296541413843108140680306135389097091329837444643009091930127910647061115754338745511901408034104806692550774370492259805116416550937187688228594297772190187467334232814804606983054644835506595278389333787414165753938896281931640098899404922875779489035554433104778625467594187148574253924953037530810814664451378566411780397146268600705621780345288544383712357057836076948162422114405049775102582972232932757422640071669063150008442833854140638116333073787222882214889447055994472334926831370881460734752893878931687046531654067994668079331994263855090609755841300381100186441022849827301191307959975058404636579296820209917882446707243217339256005257443104967261290125684905639138895703126329930093585216342156322440247635382982403120152828896571197035012852892441390066831292943681042373152200315233396359998004240502748369401813449634619796897949828338687346381861343226774016462640833192612806411639795926920601367479031514480076249256450760993203014802237415729142409269774047304786002672173955401543041021877906846062515820740104646932004891307453713423628096191192991156569880888701202554823282143508286326147841055911202796584281361800279790850150471757461842983971965605582763558284214708859765577825197686798868124722285128508275180143800955778746489326642213399194582198369838004828270286431956278797886229492245032178828044892790098144133318687516125556170598057151617142250414824697084616436967490155312301102814714918458832632105616628771824914548913224534682644257807381889659451354251444982495894994853043063137479110128711909719153282675213601484966319270533951992664283712330536116539102844375269244288983424791894056945579337536036115415064673222958184101052252083416514138045388308384460589089811259627664419324096354520074320138408534114194893756445453289598316157761064654351850153864208740643884570479535157140312581509738114027816245469375798886911708640376978735174876333429200159389220084000041304131918581609464201557971757182137275490352204211731180139550151401566772873304480707696054294577547834676665085535812333884362801113538172801512297258305356831637429333824403468448431784972113404890488890370300186450924775342824822199838819523483481525109130313452243683136628389435175325893453710964882395603755860829242340853898401300732391387626995834184546299269677444347370759507933545053824345560103062541229879628186254981409275927278000974828736521664906875333995950945904770572495650474729292871798151317187964170333485810415219667025359346073223814135102915037533505044620407689474161662341620362198303673523150125423143971246755753506541463455253270204835066519061887398533063465954065396475675582078046798331330534231147116925095252898827339685649784998452704157489261054664493048314958317220406897050746060560886335531964678689572963848820207933805894258639675352150626164664647290971093285891306721376866655546640443332040575792694890350590696812612875920944204784790712124967525472178263079759565495969063787441257606780415718879403360951200573624803849875474113973599034861202113896719511114780964842531436758491745017056471371627616231484451750118150176081806818166969008027986688361094145541873874618722234124047782380092680693209303483016112712682188866374594026320081382965417636726464820696955996770862166422950428272562384808352780855455935682564943171183356689357052020003518018014502971033111361761001180535908032035483287789195195139680793069538285729413508893202728393259732816037031379490203489199643508591704692766042913300731813508604028571240079524327498894801284714282372276124599369249622401897390862561598399781828319363659335260729470275335627225855210300329047277806412495369751244052557605097948760006450166644841315942999593554483677422649470276709547489158495924174317155044704812063704552887746299275281362366310548067799693423156733738557293209003026725496676675069342217537759715116340647711671178603205559119652985188788851478475862306629873757228545260440928573169795533121135644639464646828977482218916841764326504018113779078554433488470579900775583126404012321895601313699100360370925979404628446532848543916139716934191790197458891423322287973192820130769726093492609837032016785031671475236547217266324761986187866308402172482148334142711710802054950597490551147456607584705520365626218914779895110112191421996118054801049660599021199351682570008034821710664185859363410683195905888068915791495688681737652710799681070058509615397969326645775131905319506325810056001927300713563167707002015407211403314245381640142761049645512757906106362703336832223028000559609418248536597914669008817888658896367263609788357311971816340483338585170772426613624737841807613959828747406653024798246378580660424955495291524874519667399997124708447140482530554349298634565202453524424099858297436244045394650741266274004759066699866479367912183802050962666704837787030436358956115734771799957949757059148645369971216998687109790735598379717121203345748509169474863948092334492279128768029079226639683239137643111907103507183581470198380880732877934727232725074775795975424481436345329907314672596693696335632011642259125105464369353043189143384451695499656450117995147405482817601146681027968138755687324357748962441903791787200045020203811457902747432589471560913212290706156012469259055126304832256353858299870124061951442613288520111568847432957255575488210163051587043585465348302230445220075115237265621494393567558740300411563222911056000509322549341948728588655705801576320571563430065513301317441201389734955151391843701561188514907135340630085153542733141013360543453244582907199697819637327313749743009975465969543047197259041950238748772058120768708819655884080059307266329756597156778209103896822851008546245721893511586924261293886259606022711301248201318967109426735154004062902114038873840059338404800185296570760822719179783226305182946878078546146552742559867718331054606080371543629982946851419473731962673372010575181253434172963796470447256316283552319178547124313451476610366127338315700779650383450004600106288340822113288462688818823057361020553190399454556019757637312821325254663330535354971157755930314560411574089358113051522679010426082588221605434726901748819479207683025223531149311446703884856739334311776778157322443260810782059216485212611992435244065102539008901554051090615396788563082259750690525926636945095998104055231412173943021903553645410120505671696507297352436714116136318884107700419667789719188869505535766571515591407393201217877404945684713990822062436187746227449896301233874155974046585363778946604663059771490707400443736963635803200185829613871142055756667246611508338422890545793058376195160627501903372216449688730407361649018829681995719135595828406313184825950069797835316547656627384248111206207003212453684762025436357090638889556768063626381136138850014585586654744334842077537043606604439820740815192924924335670963014664802692630620490439361150686036037272350160188020391652195246232423441738849490874591518500346012005345624282473135133957212796579974531203724292400513241912120740343860060114469283430282509277223492627333246524440934221031825777729384387618325204629506997315602588020243258125402004297214027425237877462283013484234583028336807799373336535843105652961876440227327584054031223922642957453375731653419394484348143322750430909535744008250554731125475348357084193368197747540486201109674726174858841055930247402217770785077635647731688073087835272696067006631425000385824103183879130435428285324734161052093508869002602594427267969263349196462187355067897605718442189688240590519450512664742574530508555367353262354862856197496588131614988275356142968819633003525668647077718528080605181159639323830345739230505287922416992117917331997120552691900189870748910694594491070288302336446080945774916016086625513727563393812957817177102183965886372282731531352251992428459905474183119150975391160573119597585655670648831733594464766842199322266220056816293845720374095422992460129966859731187191726880143208919907483617690872147793884623043419955146215574750465526362596785604840713307852403426002661784098456158986105315602403148158633905294200120330703774555459712305079333902523181596994745148234439031234128677422079773580191452342271672416302605982005335784484143838067117084301777715125106727896864330192281672282994888407455572996932642384633990296900607181523952881578842187101940411798001429722332115961686502460810811223032539297023314001132778739271499689825353576795865394428675003618784473290040711746960286822733977137983010798630317088783572413669851827770691785903779606007323861538229024354711040642656259513767969587798309739888919499488079334937293111614129128040630920940494051481453659813659549799043668240390278786430393696524137451847111364064174690332052010134078024700007992405921682428601966774308737340919995008441484837782546100333485621466942472490175185443877858981539593317219789863981585494850389942694893679447976285656265700564567700597880055352588197390436935810780888264069197757787895339587698985110463490721445878858963966203132869979347092225721568702775602091461641404763358262505889026152341562247295261348751405610031210422253788643137101083382833921093810955314298848542812706304613244770705747158489496988247530547169760321203826168033544247337953095325295138018966105007344641767694881132258053954864559915314007972938913673398199069427163059115538466212069323222704197939304407407949434906773042067634797699763948561214597877108860042732910019100867597017556917508448651538739773645912432261142967284142630937859406548629339541435208415176433605657824566514649215635793035751823720537039957475503470097274852387828865456232221126035147968060114915381157034284548699707350159067372083293362628806139538105321745573792077154893514836812768655947780583070379349627474235679268359753921147066937353623343699070518551851933300015541158488490862891435042434473806129992765218669768998745786093652180225785689344155531524149593542832201712963480581440487454283252109974549004318154700732957237235474931352657450999068566077463456440086251914858227915689139830585131105764313576689739320037561111864760271373354652767646035179893052171060231376614619776075412980722062646346530892124875393143204165876339382447540071433078635838353107062089272750254346458111506435160285399003262377290602736504919512588842199076493858167119841255906713558032779665234291935474492636762224564840888003262608535066992457371088785702436255176784287808770648865976632204471015437062149508148013582409405560854337330152484772828122294411923650877849505259613997711998645013676954793538785162773034735682763648767873173056445438107228257456535059967810242177592089452277309813233957642484354256498944452335502522492096572858046224339543129779935050358618904912645055065835370653521695349667696435440340312759328064950514085716013128319859872459706573453578624115154755905342125056831642994374618413862086634911987417230026650148727242953506007712176611297912106030213796515243867746828793320858901875050316877855618338104031451199204171683945568029900303905354271137673587836868913717785979106644732643042368896217080489278611463419566283225675919192893751412439576003915327310878349346856338022291252700991092676352287473276902316163706838305231006035831800267949275864572543681329254164262174861262814615169697095509220480372472709269464526054415992494616651115006639825030124973662392343500255241045726402117106160301136420749259015262971439947198936205028336052405405916711111591903859135899692348480405527732714006640085702526081769544358977526036551835129506807224057291466458247249800950645695269875695701864310580393555640814046539625221085857398268034363552089115923489618894346764487638120987029434118825121863200025240239420930433192916488437079229565981832786586644730778693175293691152278096275663336282880400039192745622303404862026306044459971943980026090560680599530372580338995412068450571678195825980510836873347655663363599550356092093731475364427853866623949838944911478839264446649097455224391351495928502372458052273202117313123049446867946330599817557564721044707660081959855390873669040845606094998003464395645820732926553327075029021504241955700049283620481587381778407576160662332705879060898305735776293871275012160809226466039875490457122590272733528153416963021018623329952806424957142710495392382608094507512248136756883294242595617061570220774518393340263123063596229030599688444792226492723066876818813246102783773657272447206634350366737352311150718541438839340637642345340333702542891610521626129521083970004202213251950385297731799144816224801336195676335120363097190220439168340726279131284530980946614429011026933515640884702427519038308721169142956119916696933871589554850891183912475633689938962205207209509860925633251924928186475348676995667843586442160089119735214077475246327015661403277822146045270699637069532700596015007976557538549545800800482699202897871794283159982374832362159199854231535777086920040388002161764540764204362218730159468577731055106118580442131895822019598654031342627472506930639579475087155887598526099855923731618472911966611863709143045850502849593067882742707350711195232754585890964715360016338545350268763868890882785829437634694894161154157071328918950692154821318953685341649524661784055529982361524347763769999769501607564853009419813175713294504770214989783947274406060892250448771890068240082192969461829412914421104310360137703106130418227509778473325542494522930285584468960413890712800743545023869763077116243003929219742775977746254205945668877558466210519324220016364217608327523454899074320694008196491388292508741833308737887889765435398961641781913039666436028986537252458611705831444095257113292318142401498452459818933493164436389285635107912698811880531371641861936537517297299519405693989150625166381222142024740546280504205549145336087563344767433857774398452893064181618538364671787538029965938119810776549193139571686028520890644873446139209417925242570163631890730502830818000186033658712019019744342929182840629616014459367166747468357816121615322156750416659276592503760057924917729032602014780392256724336471541942385333544636391793873308777806174866052368143056963509886813727055853521438567227357117256127176399868715270112884387841197655299172556775291985401390166979870580215020644696149204181475682333129103260338113117531252951204954562777557267061874058682578911616931133587136581921325384468036685489403132821505550065320370987389591737109768701332552490789110025997513318133053023547513737953755196825488931293046054105021889946197583150272975297564927552504751638346613736554433957785106513357370399674217109289336803178369080919874902575630426830226588172225378141793948433575419456724050887518558594036732553420032604253307313051283248649718478532779709566175284897865510510526786981882237494378516463046451089922969980962683264440861865807745150835524970932365917963093121074115741843893897774870959460772268809765380444045446942738969203574256276721852512441061977470611544381725476789920593645557496927525753890415915078618918807069609093127369668614251237116129933127764993763298106075697391501791275856592229025674221525679311088480962880516563501696364538041017567420268887748970390533353984443383809993691782414129668141411121489475907906386640429360521732750343184083592858599867782576901533142270278438659090822204107606816220175009770734152649719595460289833399965783153722937794470013087006959928217738474633727616253432210742717813861286841061441606193872597760155018442365671654546920090775849058699240515134753547475181413561624308058565058419515857276693361843313751921585062483207928254401222152812928396312531519829411678502406467096828865174653415371137729504460515360987944727796230817963244714695392232347455061637450366640526762480484895129702800370542503704695204734424606082660993630528833696336913211710852644532117563210887478535301973263982038152267881052661726671726023745637930967822366670879390057925765582168327279658673148042079169559885011574660480254932682110530528156940668382736339275474635569939723966890578250614205205717488280915880868662590207325926059699301444533470911578743079432317948807117550058913677353419180153685473399039139336424602387386595764141141935054157115470468301925371936288066430685260358868217390200820107318825640450736935264799428778548949100169126509364387213041219339768197870524979727280647758784960805337521907726842443867390104368047665417483764536833010270648101352890649367133746290223197057519337365089905913855926862307852523542289196644788247142238588564272310280182888229428009953454919493321598619322705459388961897312742196815955305316624285409903693392766581702411753684156074110126090696314134614660945754120738766553541242956309862448470209692449308417305789898766193159028569674187472639309310726089228251474709629102549589499292486350454381380491208419200418899060075177834445728920559022707698376978434355864620735224204621661155858471240918741136747210486940900347553069007972968582962249453602396840046787680839167995256097234812325103450303809767431764205360231989596254903146261079371891486275145529714384413736292128407869754913541237095734633942292651986251614834062532672389182205234396373667095500154306821443951738073407006757202203200727694085451666021652412162273043072733622189690828284785223421018399391141211800098460792780321662141338874312922220366442631908307032718282162871016264626980909923834389226165890622313408566958282296426361160803280553365164234271024801799210732577338018648732356097090279770901974299040349858486064054669480112103585421089600831406014374996167902740496152018932216925332741864448505432083919797276862362947039162399000787202345523441065735152021385761761366575990789240682932321863321902839186671824206906810631221459349636939228057201842112066148619138724069780112349707261161292809205780860985407198889963843671114777035915172352505653876339605443157708490286297053496384028253372336402097192782702889693476657960923317932060044398501098008112986879486904850937237826539979842848816071517578008460341002970013925957759729456092046909519833827595000038494899453776156282405945198469451515319202153649473056898997882371346482265318342404671891888451692189087719011544266812573864574598355719547033416135912837125350930562966978292231778217341401132182513164362596358191443404018358223242691455845919221436297487221470511817402643858087273571016753207666229397724692281644269484032158749505034708629346313469046725852591680330053482894455686582509430912988932567406526337995182757489994957060850708069616688188151242153118551008580191309685146705640525359358795487828377928313024014741542728591348347144201193454392906340448299202525834111011817223401215421689778635148760721452276457417252070542994159099866858869985580003268383454013832628966709797707341889586877934089058170021029289597472874451082413308919846971618695328104266802662370635094917601618933032826870957730008443057334174221993784821314366600290538387628836640366361788426880498963929752626444334526643900550735662377245278440376324045319856616799549447213099607712776452451769383613797968702040627553354849163501228593328080403151881795263060750140145709340785197964746821076397970942588857325089945174958193383326410408193436614288533704408241916642723145064679769263222819746378819635361628362774927460964813700808904385344016565654622103832986415769516660922178711960057157031500035489135414635717970249313202300560616661183876514711812957996232688952393531438524417473751987500302342920190362501901185038378430809608297387567359570158497349220459070821043419112817086301542376574978981536824040593088240521996969153784400702974155568654206066999511360208518823696937302716899359674063385525802085723213448093093119903059923645268350461185436032302879878396225019521157694733155863334171125872716445739001268288707418577188464244913724784880250605927370256785412424578837334885952218640719963567707921963384268746258424986448661435050561565459736594001412231752331225108749131770919905741271156601241448030070577529925776701814566544836231429793173383923718623466157354824012739777548321660374004503258044570703707509890008109580299376728177568849238954861238952483225134603022079979767442380276879112233658265927667421496058269073147410568055776506240074669500704971580289921063305192454534091103449771986182078978796991119592032827881336277914442600288151120211469880736803129638110427154100266349671275629003912118198218642316411878196759974908697243970674863790474070772802031361320693469754701354781147823125015563056056184793032826150410415371095552807347394562224137573397074406378904898536646682011521855795340996195626442830046725312603215901116621329507647794098378108507826183117308676985486036008438362689161095103606218653017923744858956181175560364030778395613688014134055420660225646711188147847206823164294705657042624528963221753629904387282723893744287874224802727379255600190692205685278717816329672531221352978878370957588561270155807771366006097227419325949983337711067072300655248891380568173443857184205188556060524152189975608070714105296983773639807411238821955511586096186922597101675615884065665284159119641670790789569241289050994002984018303265550285073762436562831434918391923940435181088284438159896371236337549909142589627459424709896739525660572995773453637315682182041201353472922467161568235908336262072791417436688589421337874262384220575771110071426572704574071119896954069816065397156496836353723299720000639245992232549917352971016291972331545606111009003735768793592700787680204338558924416675877000476976337694731526446453735676311077267256415383599369905978040268998576497171340679629040370900676652373234452015335381646864678113608573352266189100098250554017554465848446529923712849854821918501685165821709518690290921132426286807824758083047222671560864940865986196772433958802962727891772290953022652694403767285894284871604342820375801359319141986698534845524734053765399821129690909403724273035258909331875384450022084687151160614162261976396556134729000042494711832903664600637366405179783541604651436636259834653446680443042915198931408573107369151380779531682440380167466939171762062468650045862717134088313451834317362017901377361596335914783665322072662801391521840276685401831568427107192276817531572643137298425321224921906201745961971417533307784998984915582633955794968441288389782170197763167742279109019018498091233092548605295242863638453075053814217044176095277388534425366779258482051440724733489192967842513828757963950899388973240103648429566051446011959740849044673393284598086931803942218124175390425675669772376684302535256034771936624782260512974948877632792360981761672822409555720581171919987995422233750204113953345008337318208678404194462931306913473929652373976181823219352276906408601526399163049487096310410652058186297348606327844104864402601818952791417150990071285296180645374696655205484680831441361956019029461446750102431763643321656432771663860166490812025004164477113931821035444160204720157802304055558007561137589721102726298840828341812258574093239587743384441586911600885332195518522883694800183011047727325958797904673909327051397013897675267278547549973644618433177374726673084582259472276367673211798649459157837858167130263019313801333792716030719466265652390931271787532565391881338799949532568599230393775724258747318975994938827794059765832795713874508722233216552282455933186766633389868476790048561157369111117825195276277582992761748887866847818938339522378356587682084753865518484065787760462161040841600774219659161999637556985501516265743418033432662052589399636057809960760379650236310638262046888401516117814957066331575680702111396566846007389507996546321492301823780293199574766650994629956992826329688370837931087045001064035129768498178257265630048295996971587685012768035408694588492315405567063148333638694995263483531934674075618106380634954504555273446169811540893601307406847948412428990106473707296943098341039182980416570307993956378886077979816883289230936120282323915268578155845330756870670236387484578069777574985514290915151569868518035000456347884178138448523921946100230136855911657357888155029194884723005112710779786208068851825599503933205253630499800904601595136184252306291856727224304257605488543147794205337384304569693057859420242385423838010600298485605022908495090050095434919415915636720031508955927346154568590150181039003142415106496492291572219184109194868699138792047779484551722253680699410802573403324753126866281883239025162726249547415363984938350711020856258649041787405806035041530634094562674039378728542970139436651110984666044375850819008998262634257035919760828117299692151611441236158183829084280849726477393835869827954393270137448156519051662725472625175480307772196213217235375641033014144341848549818474865971927800924381316865228867724774017407330355091180363433322497134795939873714545786110933644622366249891247727900342402384780616147282763988289584936710746832179333423707903923402418604911162634969070538435027685544995981590724620161402736611119233587078369745391714959293953700232612826938891814390927406762011681255681773565557903211776194569200396767363255563918621524213969485560746416142389195738704900837471257515388859823219214326863144588529516345518191285395529983074736609235850345151746538606871395869255614589342233921724238051094839104534531321123779903116416801809868971848893576419249639034892075952832503314139638480245377573462905257710622993219634670748550584303398753807362799037384618872028006653064968103012123491183303885974608057408618406420162230428116909248670893781866270424142257755344064808341023448317509965284182404045093789258871753998610247530258010676894979661733639143723981033035177383013775916915843570449300998435061771868768802890162979734991068915593077794414204756958193455431725916517185050008746451573625492742105027323059180169803466450264588891130924494591464625233659985765480767844029151065608811123549945700483774893582883312691607713189009240927268240976899379623713922717629155127613637071553244292700092192242869008889321034084490362348536297899259131997650960345195828678533215708990063122522431748205532745560478670033345960080624818380413976469421788136134753693456710952324397949434599231786625981233646904469144364940631799010549839669847831261282543063800816966920272674494591869459825959967034197431411341710677104434420216204139756452989326612608223825572240443728930634383777498697020028191716172223955648173029061361635918237375986341112308175271788699449415016960219018413873099978970524007518027937158118933533708493862585342118011215556621123406983533606368571317014341897049775402293715266468170097777682593404786327204002398298987769387583611873949115498292080672512305403099454190195696557873617421230981422945622132330736257926442950717980746071854705899752036433638998254748031383368558957620334099238636523193455253163557679131101812453608115842776771423981620934294872228989482213510852069483206664094341521371223721739650986979752476789820647506109239037711023197088733725732560375961595555327886049208685693647087055307981188290537414310142067786092598993594922721741555026915428944700899987459529205304191198176096914454309246515023873005630508255198707944557533806758913496049358278412019352533029690421025798539683605120551245586731833690746347225670087416436783555946732738351924689880010320315164681678490998487360633355400674016544245742118822641981156166834596681214050982685759019104362083595126511981188501204278559438891664115245837688856990375619240796879440400254225325379837736569272083374182121340632795167763553025045914111559281063964121126617140314661556114631393190202570028520992021698851548299717026645999214241059164984306934128123013414510831084030280705718844988454506574254128147482088216413838522088201512900476722446068758829993471960378217285934287141682346339388205070303658522322079584872897061856334548239552917061725663333770587562720636496599834933053100510877323900934543619264533532113426532560432023889329810775995485982233057938588369042925463228084547808974612380158695765440699259906492091307708583611186148374278591175778711329210092989581260039091210288769539745449010919588994154474853738388398488743565151349585649045736633165241563650988120954234907565079363305187421696813138014591584594692879733603697329395968620559446488381809161699222617677108937368148901396418770249652749601234242526682674795238382690951335529048726090447475367416792843521144605413032799397380148576849220363497783674026711193765511727884496153524352829818543961904897685008783246579067009572681715288485148476375806897679710639806855824563067556386649762034265094404292028152958949716610697840364764493738823371473477589186113536784326163493445154989591803317609599618060773332451662783681690513360342360052247972608006298579681050566311655091839493848348006882491746486980039442063530686999740058570723338546998515438024085913947259040123694159216724797610023219793310059388134325794310864734682165854660916644660680333219039347221906453905047213328444608464183286873184917206108845257760683570959227525389293448886034088024423585575893718997637589090619414095119788683879548879035053425970536408439511225393500423730527716288724416117196128130862822614482855001576195723626595829954918394472466000162796591376872794321362524146579337933635863552437014943308686263531648614637674923984979355191387550683955843868368081909369474916224555983188728964546290432872373086542329083297225758282078418526933660514770233890473248683988523027532302055254501677098241293032130724564604870511962406408121239653524054194005035659532716286206721205230855850043325757705919711773181857277784914326521566437302766838472748989661039987587505704627875642006549256014049871945276996589762306931662612328019271127158909390826785366095446701186800922598547598539699983857525015700709913630049624489117059749730350943565347382723101152222353008139789011609996449947548784781470661929290639420379030233270379004209024843086785943969159740375417335322726902509424503227195915643161499395206593976737318256086893359842204218410239130987557905435777274531085329765895975656116044696032964539963815296016428456830003680086739229013527518855534053756031207384219600974981642424967081897013751584799233725922390003170085042389945862554497315683631924103181340507213044093158520488497956572674479642090354334835438819681592248187299208791532330679381113968068294235209715323536542792347461152603292108646572033452209985091238594646686520023529330183804076173602060784627202632976983260556400802192385061110749388326555128877716728623734119777938185935082937133126347826508806360734987953588944645681434691736838239732917644514159000374584490083679475956754243264852146076467736699153396791364204925442789753928988087744021916553446999255735148244533210692119945272324426461546718548911566742107462210236673195603331327794797782524431667979743393685954912738618436480115554760567663535301123330355848666256031681005183378235738784331860762885217182395463433302700317609975458963541904017716465219637011020616164404238176350385515105448068123730105912820907035186267351701185305875161215824722486793773405127087707624368564150626029583639213686926982638945695126307781871503136040440991435445929288575963195922697703148355188275575361705498580062720677572332221328636505253769799694350447733971111068863520577651094899879350861279757120993211084144650947030428474566885059444786918747564737143279614523448136859937218819243611191899299176165818697343339936195504585862408315718901286322427436187210954724404954819967423959629954450857983859879233008067389827082336620869498918776000735231859981437865906657375036459716193551349199679379274565103355296938085619627263918175434483131804428650633364046737655639763173149455293516978060952427571342583655243578640913138811736786482992248876615737854826240552403364373688141817575045602347704832279639046120716751764419234837761741827415479958918192296643966638382412886873950409947445576923722459954936306856899233174781667950069478018432189629038518343513298220927589245042525452517585760495204754077976393715136614333737872299130724341645942049561503723968340778248562767997738860574072524082233070913752588958588272334668919435815350546482711724976537821944406499988941338318599789270260599764433321812270111935020315080020167799386532724936326871927778665594103921182131134053006647980633697206154423382438457519717737047891923360505716260527840681627552422493847691160854130629947988033658139285437619066277181943218527383197418077813722014060542430051191220063374671283973543650830442411683625696874761508650812629041623116255376335235343929275047625242385533883802983953735067314482216877592591890131977491730133701652033781669963790968487262593394340309245368100859574273132449842721461476167591649346976195259576410812018386011117576927085916389886388564215928062688200400554234427334516447126658141666353197840860509756522066625401818525927189954003456561743302478328936408296387468827777123716292338513939464908713011990924924530869163664246456212431042834384869435359617489311941426206680993271383712919947577539392677963787542531551794817544483795681214844541895916737459101555372815322128761105630260802519018229677204741191183530247581724741460569215204698337155004596116759349981495979875262531234239152731744462408679069744593986176107741287569333853495461023792108631343464775269595118645210655795226641353494341596068193326053969786870070707093647621292387427814203048987322468756028122034953634665751188873285991067375268081635493069113582834110396183462132618997516905871829067449570147588931314226579442679481049114977207247552087148375510784111453363330650137487712786900504568087488193076309505461937813757642433208267065089168472688263270488353443043313049786826669684860387631992341520333637444940314965736709557743391105649431958274812014085386044112361548577539490412114313935122781954689695465786823974289163085160293068595321988677783380018128993996375058907185782525014052353336613996943062857155998538384861445091066163795421952586877202753701177102474539002211836775785962260213127532922464090418763225312378856977068013523147286542669093644394971833670663157001747669561656291444313751134398689485968209355289352418324235641039850050397482015082851313567611700556314397571136329082648231225249328597233531581339720692179641358322133779089429433290239627539919959995400435090695788642742044120249285101813736159283659839761461350161298798029342362981385824485641142831402650950114246774508602164780371550663033714249633001442712698786292471196825474051843835180095161054905610531603421301978633412278176720222390997503527516466204013489402511703207592409542122295210174768315163829958346542950889465420057027549191337657733310140401307949411265254433452564435185597356603607371921682463010737617210337486910035348361892947631215973815197389262607752884781872911088032204745609075189411588081168897686611866550702367745248606334482520871553139339184143901558674874215215576693409705575578325392290314626708824137223645859913962045585079298148026707923554723927000073977141897366568205952108217965322766669924279952419939129963088227499108412991705084274720262065088802300451649474471282475036100322138555185431425382491057455935455072359591458267903606069747413764919184534237180801215095351208290209936192789199878447387327197970213063087229668312480487786586044883811990212699193756320260524307728811020988422699082734881940862433725417837818936207445262411383723771137816531962019499120793292991034868194870852847266822587317096734008408609182810978232448317699842823905833067952132090554245424303820294594355786321908768240296098961805602355789495640967852507485798797250907734912000706022094559944571731244629898843441179136601351398839991797126068402920086437747536190272726546933778277993692639999668366836487753632307766057832654077535116213943625672539440839655235371591471267472369716426779445958214673457462253919216053794052504603300793798114065525085821563577727535350861799228459544056654267492268757654735856045245498183683681178536881175452012350772276471005724810617257879607391131140731957759079869639243402486034850966752450380893781945557366075988152813903815972428555380026054032189402058380458501112189705096835572171914831188031411699768236189093754695557921652632136582283506830982692143892162780404636797024074598509365849581184087364293843574508043434558703989441370394979491828811140750316689403296694934121284601164938412457585425987770095233787030324145026936488054649574521103863764043618235296410076232391209651247034399227331043787682710792659696173029521542835156570771715579173456840287318351134429654074422007331144928007248698905387790766102788145583016513655919336782084747385512416315356244268333329465393239628109504340422593687335252472439849774272439640067149651145902071142548910968306557814970282024471517979863173439858002126573688449020147093504505193322152444120028488741789876236046185683699838563615607455187554042425005702285974497860870769195618386388597947349043663640244266773652038789872205549257565454938249400361732088218233847416890207859789335936140385006682280717947389618253589316469908465500917390565183293480937634152072140177462872597183866786782255517800624870626691199402114569007141207557135562952663781263663692794660909577492180661672900154829383083435010886406933018088445792058561071218883444056268902629626001354686311141003533275560396767307569852380093921963150533835862466354108842401398518446454085913587502791482077380688976071468866758300775610628803102989026047645182600727522043311580483038560098164967088590385145977994992626308676215295680364499286076781705417198401975729682639757934975499204777563591812383599895966749955590933176416651195119882326551276322262382014244680014455472315210664175729682989684197402916621277732284882360090298077118823436103001228297162365440401120015856894991850197340203164236934958669620115517121350710544667459271527094682914382065829325986473123146261157389553179222511551741130889569335330938289835508665994822527041073290910173757452496336093399305610809666710255581804936437972529273677062517115521196487119521613157712107291281826638507001288617312657815965922651737098591005907017008771571791938387746353221522416047947669553058372978744123236799627258105714629099910577372592292971040572764042278597212373761552454162179766154089882234036913491896406940665832848781586579225840065537804140142955504538328807938518126556808593335072917546789719962486318789571639938525921049864757147284459508502577027460035526135040634098090994544169595116559752461675087652317646144741826157896466598178445975797209628067163869944965571522107104047905744557003875998987006845692103674243938635377615258677511148405370071912307135457198097040793060733562363605922662872422185515419521802168881719835983807444430236921366901659628284031345127879286811407647201783014478217704551402389194442740384835569554885261868249842143807143391088667882742334839028850270285269484773304864927770803201407473612632615391039418439143822382843491404588062861194249168941955056569937402045825994263765142517841043214790586137779084345715903241781664866178018691443793572569639846364315530599812348649692425864835155847705306170485599526671631631241373226892974881996938496846027484822740878988409822156014319621284046527107954198551551765155913564446256315096980218723214279640108727386595852638866004736924124497790217940464546534573527361611760364744316412732238987060770795763801580275988573420830860900528646784085295077995852470100624851751702256717001846792057211418650368623630590678558496198207835314900557365265218703250505873350577764450745577247173663982176896869629291860686068012658939199336708806938603986323409650774010583489980377465441706179376522597125740617195366423299135573091125967007985662472448587147423581078428987884150157148792588998305794272183660226445698974807577071390799708273483624978976311568407703432710223982857578872696954998267071438729704482748981646894134556690066727954502182634494110611288306324588675226774199821673017055866031800334546706923262829157119413630652916289478753366235947218302583809184513340127372029043368265287641659978642745556286820474199292133454020379838513034926505083883579892639425270726558296609565607724159301598186303657284443984922780094035223163077234903268484544760103581563509233664856762100841200142125601983400154569366098985337654980873170455587039216759200770903433598074040392408353931612568866851282024423252567632202399250973775210226094643931859234829272379829991560793694163518125920144088869153878459615901754092064330466865097593204628789026430615979729614233636547853132943244912167535892601750490561304454945939710959336484057996651272582995782465965879019785110059914761527165593612777507938411038979919191956279405810842760456902115753007976336835932357281284837587931287690484813924033039900169771607598931681277224681350212046422307756125475871009236775603369284945150600810745922852699247848516354577658881920711139669003542811204557814433085221774638552025743176343065508923315717832183327952157447088966845660768674564279243770212454642985937794874610483006494206354373240999536439487296357229049617206833067298865964900564987104718147187003046054439249791076484354588518751209646148106391281425728483030957233896391152347775236175129856926405185832248889793704484822059525065298824083758481988175619438051501089783917774840266280174737144119051225102309204370005735513126920754813316838010344321047275766578122087029418450056854115645005164818454183053756743274210229195007935533230913588498464406620105295314314339682478079656856885885921393203078666117979869221645684169098502035258111453037346539661409659785734415790048048036130896088966991515599941785675892864546796732267958328739389979747676929354584253680230258525348075691192370544989404830793858842919298632713721738822213468422574450875391208286070919879079977829125610790420421443404509712823074812579150352151626416622492769384588263570104551735562291892914255244043904746892992265314913895576240767141488757110874635202635678991099428622189351086630813468501180305863196316822025278243389120542522823334483785414192994925866184754008189699952662904280821618026705399970538528847511499231524302080728856169108619853692825309399485961854451889798776192292351979167996137310982551807037993775115402021313114681811430066047953598077868793419550723325869724764276690600413225867703584736879379787216167820381947925455856947775136455470289792520183177186778354194353135564917208670057105497887722957790516417403662499613489114363452322056321738907090497189334596296365328142068639025130285858224084764206398512890779902320158610908574098614429154150512525047818347097443498721584274432321588089684455062804360448934982118374383255773148404510384552901555216792212863228283791386909906181770722264461360657036214675460103616444895193081358030186186968270763191168261151659578874975302704766997634086167310562042514018783133829976082919717879852561929201339298700253191256620155269334546678676879414864596704978618806077184473683019011382210814386835071475439600509293872656963418626460192148198234908644421595380572682483110123290921661958110964877570565616574977207578139086741263354822187522965161735031020360524443719049751188936425469957655276315570490646391733308931681170024006628323358067667809816124728186871515760738500466482372027415892648986982878820933496295885693926749600543103144918441165948072998670593008682121765618646970652613766521742534553804786699083201358862111174690576797002562425032282918427375894139820779282938535846429274969110451375227102248352270788103957753768308411834408451595021373007380592109497141841881602429048600432459556533756785163627995032852504937934489989179993300236454511400788311078618311172735531337903312917216529665450345055418339257519348001562624708490055681507594894265413640966734717286162882957542212269907136856200355924968322242461979664951930945432035528232502341032081848099123751590290116555459338215272331269925574607516482751178525551032637908328427050891326258933125210654983020740972928944968311273192614549862850239559240105251992444518785649601847545294139413532806017184316510928575593807142893734725395941858992219456225761762728257676049471594157839448842145334880286520256216170642737960182384027666720635772670689974897624213557562905721814181367001739176266844794488825239513969503269016128656107998153872619155467105242946825637067389151051844567107638759583056597634537785919716281988511048108653061988580846406631371934303846202679771983145085746803629427037571698460771219427604077883253849219182215611087560380060808717832964954723638068881788945466549384141317790807213074842894385152620641950440117403977859042745452360382312645500045284222086842030809060911369810960639645809362612922244543720085972808585189368611999773156890813383276755343640717573177801737947386086992219549244335528779441390302217129350801924923870348545765531082743478838510198671359761744494609412558598263065145811045151073563965621515562567104300462472085307498264548715716957490569241138537385988958108956853235389998663910701569586233308991045515354454045868378423297809362324410072585994951651167749531253282718676090264592822366005069095617736528049975587779331137150512803153445966950990295095948888445225832806303268699487896293970240020985103453427895197723580007896336258893566063784761671823681260954134417033943206253964578406524132318317652626403060605686348176576084674204393696710270290756278430468363570743274685048446795784588537644321316253089788234192732490651461203493531225051195552617335676368979858395348107022144350219104597519797307928175168082690232285058534198456120669560652347208949306220071127059715964781321432465816153328042624700609416491621167595244558650725888679736024863520033043689485730046685689063739321215054934269876516356756461032447996451945540387808713881338355070177891448353526174628161345473470951317277749894097895017306437684901921454230018884267943031812674004525005274058729329183450027499849788592119123236907260692737733471147410896866506965858776623469603421631556769451406477672570733069238873319900751801704374120848984491762640819266278548318170023200419111325841281929960252884865965706974971802813063143237037477612419365129774392309856231150778963430719700511510263320368531353409187490855471045350757983926175385267505621234073675768470853314492762533798148555247993539448447485981889572839831493316180801420112320977080160004547777582583598768730174217414081981186280461232489851280088879930170028311367704736833851868385378998095129865485487228556616941403901880318966548842301638060302669303987460097199324164427445170518909494780403111674825770664996289735030539349328272547916638700799685659508624122066587586184080310299292608304509928151235506658560926590210479484528907030966382715335711423024195891388545124031883125246867894307068283957000275130114976105409619349243999547582126971495622831978828156330639682390447409615514284721777388717684749815193870819998979115435548764594528177996743640589080291326254450921750310862257016822401509366346925482379758350138074054767966702089215287609666253107708888204110396960213784089274951627084010354004840017999244977946885541503483514076751497201709244706917268195066811343054358606265480681159619732913095800698631183945062970650397316153481128150812365261875582740569208499520079956757437806194409081598951810638274873967863879647283788195217710522008521632634374775307900633263118412888470550835626107462770916813092805673240711962633069754903325156393197814556952948583059016044024749392784908135223033814840901650483625880451817524959475268756441257713416489527341510139467779474642191465211091045064778248620086193421311857180718678512000889783798493798777453386708236337695577529127162934830070004771647179450542850602245466764924956186347092299332412219410401526850151696574717531076690539795172065839908879883243662283027686820851343717629457636005452863802474521556013311762952982905935132455423346095600429956370013249720029982866638296587643448398323692164568046597633978464104992035904484625289523092388218488909154833773563699429912072335382112521595010142045071971193871081175213909281566804638858311518494080443152435016028068793589511174262266002518302289764824264520202572825138188618724653997448990314169908041233017748907048039441568713966760858705488035251719913339671469073611142889154309114881798558459197233544160403461209005759499898887540218967761873551501984173177522848390305003846278970225218172005065585163072612003748841993211303721355169057987903909630740115154468625563545835802398670231532377868741401490787982751454444448162928343937801191913234392438118593074620195853474923091718703621629689866920642837324822027556048032438687002524344434591686201815187220458715867253474391617873546702142161702241989361352836476428105975846957314047663434341977248125229184375280282378639317892748165740306307033331306006558942632574348621257872328812400543828059496850608053036455884910790182460213779475005859232303513408949808614600047778637079079864018778042822926286399698237757357485222779076602940029522976060719933767039528606302661873355893973768381104004873013967719913106123426601215123404820027024553126506347974191745290288667915290386140141956535713190681064421384280182613028958154483364063665854529591626822148091330166872701648675830920045559957453460166559185883210711915030583824647708128380495622457349470544290905023729397297050001056109300048925247036791700552205369646132559971454513066471046769918516536436137195007494136649398384148461060850819569850665341796617867792151227478581435173791331530284205916048381662228367634527378823996942574850069085505591231714070219420903698100716332088974619852485374121021621475022919511538394251586347790450739317671281464270417991904827953179050967383873365378182767282632664105927556957842587133223142151085177984800149165560583183217363899047516979413453312238098061491310629823312060062364399827821445574776555690035727899334278726758569761791037941154691096748395274517563068072472638987955289870605602606161171407495913384461142350277755881019130804240308588684499154296628019060283574240629871163231473827560820739870184315716958849277458316923728195778412027547177185166421932589850475651541256946001273432869597324677841513827147306723261838110391713666783361875064408894451522836107529182588617753885746449894505224481858606066457515932117932206280996763353920376233007700619677135111614302772738234695471052766047746441733598304739797784306514209682874040798605533533658668254460461555708078079112192823353651173464563850602150887962769627221740487537594004309758719489754923979626663130164243756161935760015502861088728276228527294778611157713703755059530009102866373492934111713794804370829627345732995957966448863964126112791329890445680228684069831400397448366596246372063492168109909989087519243221713311276102829817377361792229747040652813937390813170836041621465681049783079028335272973088003046564940549471876217551786327434657486173376099277374467676328843964314811778746616763781354958538352975246131512294217163026998202785878087249738227532368906169731866010646865907433985114649271941265316228042117003825227750782446004829783433354447397969584747999910223823037941044822719239145434327054645283075312689016728239635148717903402282113964814331682245547241987776064570088189321679397641499425957796213631465809764360753178417417732098203957087018639032382111454781512293792051044102891067237122840080259991852875384367858993456582658860341527916824903015791248930774881434345719198717289804306578088555087989666008654372317860879183139545052079653908631177217107307676265067848945828937869516251397017513885142631643400741497690270342406239131946173319727044348552422041764244039618322494511838931368706901267230452608496834234215421505883360786928120197566367039453599665941582600527279430036919989830480713827912873926153890279452694442598529535093096882977415896035044234387615567580211846805578859222259317122853054547030527191936050080709534960919904995262008737888732772059791349380969680092665118267651618214891473599222261300573594275312880319832299700089341910464497446362191235126354677053417830378410448837161413642078962185912962009988354001603122100888036590212195581770234753339132652692849643805473933248520534580268948229299801020449703307995348272579132064462647484069855399160917082043711268684182951878862667801328253740103768904161014189905115287861029419874875509627833991900901119986885897691774575071418792528688698240393214229679188693488038347104630669319321872622974992443875529776678016576842550128083465901198258228941550598638265652702825539654692714323614603618009468013598231170344943724960948321798159423315439952383321469358343564736453390678896264089749951814487503652465013713237182487759713890033637898776599858248501927127142251143577574753752181959701307625640718421903581082413914393732405261100743247208486475801075362821609472932854354675272677198969956304000745782385671222381205434842306507140732365002711644918200562980586317493966895536227451608086840798324737778796948901263408673882446088351801290887750814891565616786096509635578892758435244705482759275097780926656342672512885400595268475585428150459651145802081545015281307850135885952283266458298528935527484909733086228199860728452021553858775095112195771667767864026790986685191513543824603986940861973061148143884699566894588991993883328446018938047012705937541153599577508338332345691989491264546553160088577282163504866299656870282356454079289009043819975826379248804308271895888139984017587135918847874406315366318114924786886596322095481415808214751159316597702390117081704229742817545744765822035595699304785238160823628849177466116941784368289494364150638978447212740473240659313268401242194431901419066388518270977582662225968912906578047878279110506163775086013664212487758269337896178441032365888270748850066503847191921483290636055747782518676205912735296368955087255929928142827080761969934057374177369686852722063741997203644960873473748481695884507278238634206792697128606360626205430413482933434253409468241528194795760506113119975014532121721969577722953472254566557126614992204692806551722438187852611574130090940300472525949502749811361600810428889224719273661246245636201574944244504604129091364500714796798151805592440665199712596376043080910149051318716079531308699834050359365888175192979425679871905539070907273095240914520061351530023465437920583156015593470315170120513255834713363390312287114142100269430421327278456233516463156297714644388510498171939171287830882236634215526676271088724754688974805298555652171046375290365363981676073631119691381054909810021034327889051724917305269966950920543048697191037057729291909235747060301707260546273103753990762022799775577907939008074862468391533465735126479611671101545927358919654503542632328248063483415080552310783740568073627742689341019535383606252894186528313735807570648047716559602464129431431466259371851701766529443670792864868046773274038828346321310178515002216378367205205030451804130572311840430202851550519739267557895139549008051398149086101946298453351382928643447402307195086775651906124797435465433701947846519171542001508217897073846474348318257103013449772454493976175084909411089172167806643664148631982560740348215791447734967894531726743323424233272047316016531179615138185122881900791469205234566492491698967715357053942053275796008963519560023233399319838586315651113281125584463089411972509771016001107933755918639231503007730831817124081715682066594122693927489362365142094988509739296676346986905965441006848864172930333588884950916701084452792425624677401741399834208294675013042115613019593673649571176336850451013591279351856007063438164070314344700041138204443818755424561321776067799601065545206246043696626473279808532382012324432031324599955606704873161144604178775329750318369245677251612276017298776639086645189995028810549464100173722810332799146278626873789634918418525986498339311195023780062966341684518064967768082011975436835807356122668294965976815509449907078457236699455669560858394570312959481168628831286220598501753969989347010258608478305191990099621559596974734156353433630929248870424888183378013047434003032628459166671342958490682971489924095436023976274342291117822363706643387283617794660023188761786948523246892124065682695621219058894623845645878335304843343796216796774036094929590144047337261932987437343803992603588592132414003752359663831687988691383219546720180886653331154452829572519830805823620899125577264317500869856179645264672299680988191535203898209678222507842147207409641016463253055140389486265198837217102125471602530655885510492183660416784112913696012318687360744827831144340628369610960702227172054996579531447891088857916253084657371747749195723976075369029832297634843403015933277427569347675193725099397802194691963021587799759136327039797667355231479700359025990482717723816698705725121283937034655524007997427340680259623386697634657938153630888664340610314740228854463937992341653430468537082694579917666453034895377064607631766997891411348079905485075676958270511550032143458919158801024112654258609056972802664281798738292193149294280099256769009506676617783717166894860932531717681178159071802801962738875683832245437413409631823242075880117145972307804398899531657779720182524516539177006112861099741438124954891786614766205110507299785761548293171816647235333975239425156556675364231631726942883494798904235527014608233169737835511610946389607901531976105115744823024114859673381729244195685949469795467689555337869881562832780754848903007632519602360568634791701992506816244662324242277546322261907402669893348998716159892200862089856787773510182292371853557799031387218771356317325289774999496182349218777721772290381212466008708537604199237205271901375571339039941429917845006980897368892773703227510212382820568222232426975362818356361015791794517394013263346856946108007937404308659692857733156277121095549202260440600851039176437753453399856020506362230350668530737222718272363249661762889084543935404212734449703852620854829262021986336598128451872134351791225030308381173612140105720093875203414521192774192439768056000877894886055960359225342223608109961962112962099150548632638967315025121604704881761053140008778854355716344451882826623379001140366179686250112430134212232538441292699754720190632696155083008099065028830587444397226749482853000535620055979196776793042306708543488725235192558940871948619352168289379832746639338910462241974202827684071581082088106685207391740930855004449772162708858904938813869284719239715686029099607403660376084835392421569870162541695247562765353939178712415383874149351809038709700341617039023523501426378058115018298414557637853802456997579561296358910398906443505462715250580387390963482729412233030742264542570910477864741198565163386937738444387454348069939555053720440216437104271836788970785931199768973235638551548271180717069871506103601515656082151305860620464935393528284600870462364096588743855268334777866018039381596719919484538888688795753179467474184453540503128284700203828315126295217140571513922427832142856465665960734476515129673422772287186493596503914411204202579467753456204840669772416806934225998436934517499919824592575254333906964103786331182063377488543929153333299648884151822407304377283776748166298121175452299719927890293398196479813146915826335543188913354835558455382168094516277086495323141642647599074323946026173870870736430247235210167446909014105409777573758481970858023363755433349436489040145683362404152762361931147555702256402129859452167888917507794237484766453226763990453432045371269916915710967243805244653418413521775036348508467668904255083484304848060070742186108036282269155778108123190592138438988800515165022359011389224427898441012952538566948103708866178035193696288745751034662822523913332237968517521318100682950631136247821208844996477106903751014386481066650930679257491190210171196180579505330865088393318307385573229060143586867406710644537663333338445671315783146406088220324329472551657016988810314286711133839433105671907015771972282909429842669493337687976634645661495213488460822356551337609713526994014431366094838747440992349085471851008070455986682470299176623851505341088329770660099462113347282057756446297887695440950078228111541624068210452239559243803747862127915321149944390445295142002829624524246052569425441832628647788691772114597511282318138340404243780820394582135960901554719297273367308226188571424125846639333480793145821606936450394530615782223868076212845390370400751279460975039711947528488595289676496867402042548870266520237166826831440757747802044262612336301135685490300363540940867451535781988621926602303802691116720758173715827073203843780714705161441921441820249296655665081227030079073488478856916635354880415540694923327732308981637420206113869180082712895517988340055121879202205174090816235010132829735019779924744556411299324254125121207680481551215197481955658129549493670425093938740739317702716192976200437448847194638003204862495074358989403620820385561787011885021319308195958028497751113226785898459165450279241511916224484504601980798003724590260571100473666038378275080090880527708021206532209558568486565890929580081967152522637568193488573021815434368399904025829177296331500764761996348180813865636711734619296281437780487371381520307385669309022314359685617301336723408402859882961077750275308701423020067361485069181571653854575674803326790009607130030015925613705157763246576103641468555081022298950895717647719323563283014912762123596687379085646971636784994630258421246998149581759625110277782550138560139803720984522365785409280268100983145478482368490075234975152142314178568387461869190676102311401121831585467450154551419010504308323740276311205019167321580569125946280212921417831574257280192258165895978609543092116095590003912674890467792804465102579648857841296623973582532979349285843783519426317421284127291552781118073522206226366650844862686847526417384752173333138467302383471691829670466169490615803918533339407391625049155705484655459339141246224155244521706750783122326159558735365306750739514101649358465975174156405729818911505818747026703060652721128701197595242675093423895827592712988901645739989022359610592109726438381931016553263718349482923557535696588325341030773707716997872927627318030981414011725882242166659239733569416448030447506029070395461338014619458742454352014195216680540533193269184611991755926007462654891004705605510867837945762117870873644225896335412832372222395767258503768455402490031106560936136135923425862645231315284675281940696538185397618838004003733734183185192110317293063986358837543429834614252230351433483723399820920031470091283830728504522321310760773689236441434497160679878888209047633031577352714570800521113424724545340286163405131913198376429348729665985961205102375195451721559709661555072263226183260873024786060389675444284595176891834834378549690268322063839028478636716595580140559618380973481138227344441263425477333377813076271551781541668127976586360549234074081819852069356287663837549510512687313178965236871097664637998139339369041357515964335576912146575281517112999824867388891270764652291069520714454266240896027067428501120976335862494000272567696109079476477313187021660294179962012287328153796237088503458300482760552989438378228104311589016583348140352965130268065314120979136213585444993093328006394174522035803117596924247680519293234360130572647349394357976687165314705255136789350998720860652077286939081735087360850909096059236982613823562848421107805214306098214970572397583068799936476508806366232563101879980750409311560181186059020611126401184206412732845710535457433503041910326543297196802807060181346457777611365145852612590122856893054974374070557089823484655549298695722382539130497249021841001588550497856405534763876108886057029357158368636650668129286282970986251486837018744249175349790159806913653982264930773353116539436612562964763155414000491178239621620941744915264158318840104313970294478567419127991323381322185267903110540515135036416719815815448711879790977655058403790791810162938609521811449894613637372505344308209588558102152198605561785780411853668051552561755577252563123923196664441402910442616094561866161696116288633988388463923118931437069533050247714113871986853353123609260214631497025075082995405557792951675477199899469315052431772155492012775858579916502131972962542469431293973155726065385716692445973016115947144989857864465143175826751178828682332700070542740640361871328165136698892647198370385789104962405701152652602985911396675839206772420214224620061868057926097457267465663052545522428239425470233282344903569659964790474213579907488628521087809025546924311181647787057906191073996079802171451444012701159833925415752642240747156910167698000981254307849577367005607479933385247832412346027341928053285915894386921730890708936202327338919364952057377696947113682078764625520209266665134032351840266655292303782850291262229720062582567470772372743453870883216333067023546641237928387024408045178294398677898099532818580760094619881790548903214561854276803360647344511654569808732152663846935578881937066031265872928154467589690834066613574979163108760610612311921635883538958461310341847847381533439911010231703860517313634070725841810742094663327366298034762198709236103475098911719537876100870649837991352897414969954066371921162853649225736822689399688533983750927971042817605716560084655127785938755425279447830015351749079146439724195386024204827069593898639100492879973362345280322551663949322110510460925756418671186737279641295780462863371675465943580105906319656706949354662285520464381840708445165047255663146384155608812730776858981475363620982589601036130404666006290367353610840417020331814612650037966223132815781033911450995886339018577849850457709190035303661867780603012671092006822899045206153868248099823740348843706945492589879529016343899059439117189303926469421791150376236056016312026707662611319710038955142275006755352639735177167226885459838577664117408226098956917232949237415118623837235444670822112144924985096605729070738525064797141476343754858668939280126354739877861126489703787499032003847558589805582754281225958465157453681139602046214048454691555089811355066934402848314463715846671491695143554974959688900416436467258268636569814715398634083078331277716496708679766864911475094724699676266834485424605830426485848050313512080065282796468454228186708422915042172649589643796493436781211672302753651563246634504239975956915509363701148891879542585348855148953160630602188321775910348601206032748989753500243020141478789943520575083664739166893564269887621886694637404806888902884558953902052554077966898481162057771530029757074179918728670527815732103669307777699952027023277932942292263132420469286447381797006623274746239304486465660325295172578666026312762763162451149558195820255348160428637995246143823844630921945867931286985720630930943919567681576561771753877841972861179921052731292938913097437800220787758705750591967877088495713739917456747310221629568662093902254370544076222282076325102798550463356438341376055686370909448867857602497146399532576174042800200393483381736036868559299590319427138549164006605174636382282164992910924611732958088804423358386006108619112700663745383721099284400423092821538470790285727017609633240882139829105742988982464385248625152367406132888162660601409309343516903826555900806462224697016325192236521416066634275809036027155279218087847533004343747916593005670127603305113856297842787734333295938105572116351616569842069720244246525989371873046541365533593467564184857500433849495931663626293657601725266099544441856578508042534339815552807910960962519345066036154951924921099988038551414983343769140170150760025049795046440995541517639314166016256025034918768980932763003724189014596204791126352510017112423954578392024735110939324351753745622297662602442430362842192689081579742117380987964748257805023717141955587893421899192999001142696058454796887066007251253865734992259934731977366260484596190772793619315599756870050565619243639274895166673487584124308513478361615341488680606106145726471147172085961076681209032836544032172750779054903276501212418975243354007150094549867965749976722871371950007097727649723585122811042776509608779692205589312076577876358004819760345481016208509762255775842342293515187756590938813955951333915087068400921231481111007133388265149279051429484828356908666130591951617882125331003438887512919750308309820272667142250652773871809216366267714693064220392906064204206609476107998579764567452227949717386264414063365390548092985942984622257970848851349542423931318686471403766417954917605222355744108386821301070816740160980645953613255610948808068588479529760317982098062529750354137017387764838437478487585628367104904236784924778397449917979434121877159061450273920337923272320384519166499407625415651166755288983491852924707793461033739896736172051765511062081902673070113697610444668643921341579184514188025608946784789061193074278403029632237214097839811553449508390512891038044250433822919201933246742940647002907117526173373510554844800110083741213753970199384535785939071480613414280526031949759261692757478267599038676004559254260767870568334722212366562936534922842714403990944698735814549862537175419490042568655393130499684885181432186811603703025185056259122294911821667084353061647052073468664109663807528433084546825685696163931837871191199248168428114757152678217548863312772304426064944502044335020503361115447178884288609615110836345671893490435984380911350729554706429046623676087759733814975168866476313729845127803130490220426142536615908483580884989847608174932347850292001903180324770710326271781246860098453341587688432396446965292284436399252235697170394148780263131419871660509348653448821648521580127136737989658972449364966944245546500071135659851512000917160398636839163971618886006523864922141149632508054122283364754225931515355289406881297427260788874891929387025410556360087027359315634022423647863929044268947343075243669089898119464571105378372411223073788929522877908501677660357849007521913671055747620614177992651437179293872672353006277929479791892677796744432666535595754552310167066528614850842076884317233368694716733951625032602024408045068192198262812108167720483955436935489264971276497011358393689720247737007544448149542760420679498759180490483610146971731421514348830706740603453353994840499514056979514664688988482990774639878708298154200434130639712897680809139000295293776796805905837796058685774656026830504059746811726762957356041572972583492807407990777497624981066059986762424907044589816171621494916873011713721162246269752570294851603085829572004029426015082060723170811809213631998216344293577857052704757863851116353516256626232987945833674318127875974159391057715411244976963032989342712967913317397280208495312118921345311756696006553036136202113918770592482496226166688622467401404131448351332251619637195639673882086868838274939857122493836803829107375988503224783408376191250292925027806118399871110881173598720647086878472676015250552588727432787338406892452298094306921434058730021677620220877718459308056302700778096243770454651394904219416301782212483911917539571029079627327091652260471679535368425211253370231524023839435752734925603308244573434908926161860347689937929374009700924891101620699164309368599672090459720103040941802813298122637475390981770659397940811223447044594587680171301287902354600231588868667725685832510482329044976783968512110946181104243194981950409613798729411136072462749882478369458391258083073732215919801197371202705684145930169764160677861814089920446574884274137362838906269696410696750969754256562855305210914393793446870479686373587622571421838185984152539775862388076959773742207372182327130571651520502274383373225329668443003719184415071072256883237881299965638943512546755162575127945872078830532789340353073991598690150236716189994007028119542132638642567249391131956617549586163358305089569670348219802651916580202971445041833904091161885263108451933877619281632150215453399083423053831967422421565465475338684156468864881023015421247362264185452341829613059715989205532654301719116849349473098122898762296126747864546538383656281882000195460529284049275777410272989398589251992004364446420200553598411858537693339817098473696260501392469954988004946767580845301089893998781017723266435075463374205819755672298636281704527956305062346320820277092541117701479348330943446702590680323401828089440857501947215819905341434498481767109882097736364422350661806085373146064275649484600529708295989842537665067733946908764037658101582055166972186305023953933861850569497524138552033275417793879671080408748844305894555886921834957304387694587578969399830725530081338581348096634448496145550616110765700768992762220681552904012620041195110310043931701787532550312940642398721611253238160139801815252513361879257162439632114836968488076141089543425639282224213086831722799194721801911211596796771830395396403797604856160308166732958152333052706134654089452326521709260285440642713136111333097460420004384458117905934746834401474580128154631521057247450309728016090736281494372918291874781656715913255198950131702437848525445551828683177236565010975029340649587125258412785240922331519620800167408847112602415088211298061632172365733755815805608293746720178219614878565188617431286249830129196869328280328682581516329004064473481959939565032692227372411847798391594187994029032735389667377097192317503021433534734126625977627608591888937825321373935850535587143583891997329999887583772670236487616606959204797069024323074764809459451541410835470114709669942390409451358311536918128757172553745243196887801322284867953085585692028958784371021166795237636843143538121015416906232624856603016605979563866980273598090505463133899251246693841885126202563052874961640709241188034396966563128959152748491148944299590037000182830843070840502204958837590156998688687626993300901162218007490662555525875696986073677717668670950088305685589021067542719357925737878303608339653640276290713111298890187132977874814751363385139647843767870376992250018180117813345527556926979261696935318156822501394760842594732245349913357103057376667201957740781077342990298753868060001709152940633696410006434813881978284946967431867747893295922092201023658625416055435098494803876734174215672744757060050443641307098788846659001645934101806625006753090274337923130232226606687896079729252809483832111553268299529406900421822384138409895118506788564072219098289100863997617070705343667390355987985103859096908921210515844659977316133207064844935087264670694105610469654030826450776283700458073487132740356011531164728681833486818803548076351113005298545124971436231777454899569170325558064210041874358884125809205405446165636537105672830576485969435953243795759555100192015883499064013166735409021437282210794592872832785373304846435730411730531983847696622747571004403119423840259000016819446246031225391753968568634793188844529886441320981730588583961706408308492715382132868189357742177336226821233867351692488462628238863591372707114993890597015949986860492450404721792206642969964139499534194336859957026313601124606642009076730111463229847727423338645296306561794116080960128754492024945419642094993362700413920086625619057080914119743456514878433263653969136712398915910734825095200776310535500699523651407218287661713288138206529406565359811227571382475225652009352992169079079695642093774341937389733711668644379325824810445839296209991460808604208704285846148836121296875708033725628425252440501946391400401462269271541132111619022505791030326575367887207981713757426815505249020546600311242018337314370592263405371649786186484172031078358213974478274413278682128346734264638306542365878771788215864086045156873493165776162313010375143573594786298781470952315057352843728539092065749808643116522202296557868436301696132310040212648609326904822084710780377839224881851078638960105442691356478336772038622419360340903373094887090041281410059938570933882254962250636744475251801136348482721340982062870025484242744360893921388722313174541406541137850095308971581893969560030861506797921697581661349559484359759301338157095603917877339212480083741572849286622480389021550415384683524685922563294601236714295034225349073233301799466029865824664543112919280402030978582063762254018396576375385881173964495965916038155824782495764916755724886685414300076183870238936348494409434624921098941672566633394904197052587882038475523574143374017298183898452645718079999027825766383459768476052268256726837078739879131722654885918611817167252639101816071805792431498454614023513554476048139576546530723047925389715824701752383957885918301408302382982530751596668225794324844162523105473183317817054774883275795915079117354941908729511008148208164547491115003412270805267908068663455602497149796916115861150699651343204430575044217002053020738201756543430866313747352832968790713364178321528497589530120954262046159357970115836063558014565539170392772301767536145723248308307869219090777646676744338822215550948959675468766633744557857052884601502151332275973882754039296283936004272115194845959729281746037252147981430862791210075767488893266409858989654956315228762695743338318265339933503088288118401370440847012196445535812245679214903259742780465046587413457775830732922426330321364694800278283201991063028093775504124830941831839975520290345448614500320613177495984610160651023796343841766474121536105393340622126357649503839103738271289034515370592132728501052063472048520316484910924272174284383839661523807683504603933827321680432504246818608856994848575176968149934612606765193700514055918544128193498377167811369240419222591758770703381408805595463592278333272878393127898016957860155475746549845304574849180566185492444972667371862017407614823177462743951889128145178081926981751112714375644392117871613898789302745718109900758885697063114921935530633048700996597211285514497851460057784071324245823580398832369838504705725638289522246638677101754034542100948669362859149343439521779565691697071373139792716823655078760796957669066392842081622439116108987045283056061546408975267058886995103196548444390963151231530477210466862798273463224877876148555651613236047538202454745043383274197446355534862243191556760866144619067034425779162603518273201933875816492230821502208783052971922101657459679302632118778698192018390939818852767439068267966148030681031792683621569651919033908486804051376707931267152517744789441575952373572423006292139863457928786865151682910998813640025135688900021344277169734264200922280973186699884402748326004596274076835798377414026145873190184139589617338010150430989370906353087438479477154484715804678271210295383093223667235668923335857957723284083575054441900755078969393268891974091179979237229836340124575683206541968657067270701826754453341408189915732807702897916681267534681223214819336516622557835087541804890514889943105422627740142032651147335448298570569924669171176749237206252577020425608952915544990505294172144031408574112392009942350325792575925306877975502861265117221380327174152137201295048556682897821972232968391918797064637135557763913919001483761084589990088763745416923271828799625880006754785402458180136098046674451962998672270252416004795734192513369270978210942080091537002689756615469908859420779605668858449880652075357859001615397292723564980972681866782264826260704668370692132710820900017234613782095501388575281721927849894368700959528562209892695666717702914007051214327203491336722573470712291224505057933636354183647354704693844846327436756217250012056600772175329980199446935529250116597374130627957229838932132875476137700223203461343654468468472751896147092836959509361533277405071973691621658617262081239060515728758881111889395625065894102138117373901136706745836336255706910884170144824859577913183615061622641528501226464430298510889212339757325639851173586958252080645224163919301614318378594296045574571839332855962019073977308257100786159776302019625634162599242415247526450249204354549901193637974139958473548547303965266813947630516945476604960822747550274699869897057589552242826570043602741364320271420952798375411322653844302874251851701679347410246217941517129185709440285955054637115498391088346938925584402638758153310985074732018961815038065104025954359490806335435189944284360423605332487072401639668363731354080411040559205670587687635627091672021158053174486746027634851196927087424463052222102221423345893808726920202618079739683966736535539474646443493080996410145842539078743961631581255346869304844911358940499361755451024435477471246068828670941986975434115092519631364567868654349947180649080873008078682459888467711899314701795882741929074218535684689693185334017816661031398531924776978792131569728609658022024490342010404131347221482904569297828275230026677160067967753400639126445140388020486725408239071553381205640130532696959026794746577644009693921531008840447009986776568576831336508292272236593517631228195267726158513586277723643110899849120541180107433584541422497919853589229082613036265349534953604877620594843384200971963254266618308951758775667584031263809538706081073547194710443478919568826173489684315507906483055700117191360658910705844266099227764177856639671076526773730836396687326746567742191322707676317907008318571611768301737535429693936473634190227940998618683667740411923245765356668950065783770697853458372425898315115425458412113205338255123254638731174365594551440952984470599062550014012380448415793558133847753842763912044801477362559295001401000637082045051366383106844874145540019264621971498518675074410828822131631847259355804533933345295720709988498011025458770857232651591147877034967756665054705121703295250654863901543733943373416638823170910983930961037858655824551243736927682003208238982200078102150498922911771159151732184948416686915996729026409632910359743522122097872709612468575273944209327356490984085739306811526282764800535074235185683851590313328856029992122029400732922240409647555200562399029270320983363503120759107237313326250483123327999943723974424566543842746130030291472488565941681533562742201680494032673452276992391302709450155883763355822589120766622696229459552550782920769261171509821709237690765855478952936292011624980133436893723438294712635930725047388857236532421119434517267600245862775132019435287279578396215298430480102937143204511112962501395534778241524464712313426238336364758687006492355836615683461809490976294372657491308417407780292128624580561893038455462573439957343996481506525945175701039072710917659496704636690988746414800004873397139472939694125105572484310652358156590696601950417617789394801772715021962635528972072748207979626702182024150758005131995489831785783300321379625672927662802611458015310933404140594525464328011708141755473542340002729165190194083089758971442602124789058015275833044229092854826944890522663707294977563557302695288423282979790194126103767596905955573111609541125483385524869976855940829335942567823622304209357142213136034943391732687900692395066302565072779494850086796962142914880669816752776759184355088394662701891562160538537133632370162512399763388561664285907958897013665892226934677350698546155922867451213396077739555244158385538738657435345575885805117520595168898427116299277054137189816506322446893880384268675659730541186011058663786161983711507122074980421219137265183846937332288096440384202672015411225626657350797897198217134042047484501698357189079967094656225239155718478626390243043942055368679389337630857050136451228357764069587409373890080113624167169916560870015835035981643633801343283771187544402472116811080795175729574283716637842751159856930217522678242511841331410050241458518960075875174541687437074268716782180858675461893948848087892804757585810456569534121519594581049020288898938265583836801262730476204267512130994857253519160989084060082314024147059606408070422620671106634389000638113790853420027352238233401117017010006219882073463147461484527407966500162533341137606461052663320308417473244867567388415438261669652061021424233963448662700366500979623462728346728680538161916312724863713198036014155541638380280899572097531796835893607727218542214552517410362658468547310662170442423735859171999207009053236287709423436316144723901624238409031765504126041917299723678872755557895841516379875594086979228613122152814799338702712588837455612584592350595299519816574757858880033896197566153044524256587309486919122157788815519150224841654514770461987022946052140514792744445276417798013021202826412212061006684642524808989795618631971622979143530079149675349400660587396235393963855065130567493318425483982887933323784958449879537591399420129001351831805049663140710549930276767133751315675383940505217396681178779083711920481430942644067269955761047459374315886065110832147156536852124149052177115143066315089474772263456965780704937464854040722235417770415557917760378295186703220552664595733952875635452793458865841101142406696496423815949897928447575799039055918523672212507302875783356223113193589649544773727492596522757087537516067631323190605129646699925925377797732539762475611667506326417318231139825289896936091770017200831291417013477489093716023554362547452362970151139569858320367394280599088230940744889285313542527356026664875640193817017014515981443170559610780392709048448875708764382944202698326527382290997832004230032337478337631147729362254161174360152608143427303232645822460760515647826568461627880352917489737721418272105598137430439322630093254598952315933374297368268832255280807377450711601490174347539417145825197549977634612811691594547794955061606782933271919837369633975988127588878325747593335299192101456656902029214800227615243830219687865826894131767385350268311359631329027976499289487740724531164984235021937860791602801564861894951832847081737953210732431330420763860676836661829840239577710548627006961527942220180454531237474477294745537668162774234461280270305899622869842926548162962266072961351983027964670332879167091827621673789726422644895024331511358042847208921052220168801936300390019526132203362940669837972164155822460212360709717537122358176747714997028917963613281332071194687611897665241929930468453143360470969376062091585292143947503119030110340506504312316659926831929570613548467547711854325222365170329926498883513391696665890076369704743997770537446187793391332283444078400467849126131477758887803499872107315525746774463436788887182270724257004733527592600096976579948769259557626272796456480222689401989802739662831315296144446069086213934817447238612846834499844579238682871744479535983108318659077575609871875986241547386382641373734709978386262450149686794275397471323692162813885638460054857268780950000566280550333764626648493707318470306085614187112813873342820587894605464570574353972816168900078314060532931632892643765864356862022447316630983972487927701713754451567523768874244803856881320305512255868294533309870959583417632552693352007603808769400661947353796818413776748798790968659645786331901799427448057094057045176142028766358214287430462564321194345944014367796559705435420182037017486003967553153290417335306752781526266643382781423630704825338304391753750101954278491844569609251137842680158875718328988908156712687701762197843421228889521299879320032317893391901153642183033656449701508607659900651357695269943972057818735641922469648095708881386804740690383513481277555501651127965775966574917065589593538720494023276471396990349813856875952103636111336889710653905003593917145806631521748611743641299506980853849147731348757565381191208152775158085139817731207514307932468399652306998980659286924167544775662214779514000873153187933716865403022876537581378159035709870996623416935346101021061735445839251889905475394773648450399274404727137358269709731107536527428743736365500372967694468657542382108786084405332263038954571764526101619122034004404143543400534664105565524845471799847893150567724135880848989599074977790089865736423693413828932402223914830030348120823295933100470868824399691668092259200425817097638350335205636700776793803391967121397060170717484294363291239100073290245599528534509742100971394498811948972788260798095723929352193464087772336749850952735442436624143917103317344947818123640913090542094552488774764076679461596635354291197772904475916405414672532691958073477377808982835978384629417539322892566821812777701267952424784534624501750086379275244449966181581406028118216945793941134354096960278130547499034500798426319043316739408915813904868088386625084956888501652463082336108423650337215154075062940152176229445743803760212670279740134038452296778620324563047864650062937504372857653804171838336553957718106788354170938153463457039693869624039876366333608509762269034650587074731792093670045002865449112664635778109162625529669225229389214732409668977040183176166894935830331167593728780362464535822374301400492827904342665195466560220618897896984909797570828068378192610969460610709977563312528599239359851386589418128425289893607606339410392480908146276767569326871317793333196341756655240270105989896784197140491835926112154358171536581744653344302767468371903013253197000813829061316858312990815639114222416482943265917875292074924307307193250221046491366985758739148140600032152795651354974508029478320006483281516195095353403100805212974250057387623647691886746897746084630617017542487121778424457894559406838917230826526326935405142495668810087942948446999441690008129978346180892124038418370317448319869557966981521873200988332822363241638375562866055269504272854106211300339031180748288714388525059576220382491026827467433986696481387019532247908677361667024413136276732228432632970514737513718103991488076153687885294274309013557770183802794077216352173060682952278424301312863066512255739206404161485503613765262918657150609028080887642765489698356277456907276428441807946362170086873381422004391936954785356301036863602109692375242689806506086465725308679571595036692977296668642334312268812986294826948547870712879877610260316207888978177906167155538238063683720538379568941757027366113989179659289133413511106002674014816407660299702044941391131224820571622503908612375516235417265780687440655070007869827558866238263137028188518629280079939452698965962838531037256575369788393422444433424835040793058541355260714773724169133928183610110703048710968850969106441523334792420293627965186881463321729902527669378561785861458532192600586187759317749020168738448463726406480374251689083620886679046292597574756871108319054796222195670426005184061915854089334994752975384096612918541050696811400693713139734574417761503742495867035498408024373377717119732849359901389871346649121742539814816144081978038088084536741873927750043372272083417279302551324603467544060882756219263816682087544423648044031582521649249001791591055225544246231776050281172481065111113102364134351549750293331122893027747589733716002408433085480710150635699860461231861421244844061015364562905191680732409570006368543125821582939938367182457684178504234651936956778965582579896784901506086831555812597860179457333375868129377082355901356377558162905308365388344722331003757822260069422096304342324075862090173631844986581184925441491791227328514376862115352459220187459647202863601250218642499578897158215443035470403543482553997108636262012433894056326169130688123701288243656291135535436061686070980066967310849026049945536879532450902344788066237837584449408085075768143117660518286604087142390937388482137523067456608631601364405013504494389064930000192396268538119998386746137155842708362633858200273053767420525226266878106968609054886944714286203253299625696372169990923420873681331835592514282049445584020264215685297821807493276060258338736357348497373495264039475154340037136354722737213842966472363911880832101263997109578256056321557393630526542643970262586258577258656552837208342430197530174275938669816939612128631881739119684297711410192258712031131209601352061875579240905328289566648022544941749866305885797502277415070240698594117294451619614356630694608094321560418510988457037068386918508606011250654516751301985371033879528726757301266491487765339615773714535928531063982832633900389542049002210502279830962072479585868141445309020215823063490363251188847726510471670850728582452447993006000984622948703335978853089670585444335272900703106010066460496196269052529307139318762428958168835271040231661116521130110469680525782322648727847690068267446387771583215408417791325542666040192542277135110234351450289020138096928461997172696584856713174871122635674677345483292765746482559488087926988345138483728214491007544391189434718424049935492474312147233034522222452930439114615624137368015567843228707985569930433339436016930359824338641859836143363971180429849617268269836059769996495990387641037063669058300176986787570645244739086717860462913667986792468771828376125199889604627864311105944180464092002748019847999069219364537094503199039442017859767677501985280934959399913836464167974008833146393965423819951432124392466362478467071827453970746983369049002828986098551708079941054476763000276841729752486948151347364916820826230231143473987315752317349961714484810025094314481496783339463662095929677099722017658808515190754843393910069170137316739369376039764306864575756295637750040121352923326003800916408691456703694866362460196250897088429760355609745522519697893958663098543658670309220726349665080875193484327293539855656507040688284337030958951119326353777396722212857906392710763433651223946569026005416796838136495599524252195259613732007264033561134582834016700523080454042222748533060926658035374474891305242104683766867779712256731186406502502858132366554598669548067430838697733153128831112134129078223595760692537226079130011971037465889006431024089636729580489697669980676744726325217601811731104634003190690193726435310744122186800666898709122540850274985661528054478355273432437383821902815375985304639112628014810839894083667477723262568778160567971210823314532774742082834189465806222261082235171439380789206747982282350746613073371195145254039459797135120359531856893061413264917265299128410666558336024903290968961127549830897923742311070277677238526662615983158554394416884512661566668801239793749394090010245970276942610752584131126788107235290644003626536664877657586744493030256793486430336353021695748900171556441511080569478513438890924926418014863535930252240425847059202528068791397927147928755861046773753518292312267498803937347244062015800797931078999476813147793568051078541472969272696686044757822524582638794556168716103081067902431315772619925463543621658021014949096941525940761737171624051329465013075883887080137797381300291024346962449219035119559420210284362963134825527389446422672745691808742214688731068396505633122716077973920712279559588478348283176932525587266307283262990245137314687078026483217726550113285175841960874182110725243492360213782373353831608396539084228586926339007240767484182630809235954182793285783788487027912368729759090246823093893027663753222045414447596348972267086643562203719067818176955703697725511076099958626960111812744779006518208406163961518240336773654978916866415942249840072108743719761079052859951644276862323736267538201952961495195028639449047348284976554498953037336648566146073995739060125456670766994557552685114156672779295056247203042630052346678474128971473547317653377539156931750688119270528954565440119827430863046323627632666547507453717356287000134109542961841468017683994333498374360142300852013337727444542508430533023590048160763479102998279337570632428679711511492938710495661777461213969926640976711394476337553847967907782864431703746606637107978231224345391313132693490722270248960751773912529809339345492770711832492004116818402746792920291929579074533653390597832263383973226947842960925956035671984130837295489760981711856324709868892382952501160323229036265662343884522704553186172423476097791856458681372884114937795494471997145341610109253356870636406229688497721511274909102415280402351285082594934112821566815148153329149752993102694867335056983524705611243716818248791679206796903824106989696771503702031534633140954133810393532472504462014933930912924709458108793211361224167671054560955203447679785531197833567776783030063665954033346607531683733598060411784684392309218635607715935314115630985760955360728461565693702060099902734480161664159576262235383655598404125396234916124904344169494925180192703647481322229568924058687434250500169505870892720468323145902556616626485134050382484101035533772380021470999323568969338263802205465125015218474673803674626876485045924441574613278667591858896870141443240026197253113758663962445876008147167091197088102202088297121827977517397455248397619573201863474343505368908607031275551659940222984882936214887398589979162999646091857367916789705907182654866855681729030170195483307388344210931936102655954235297829328693557151094367055328469256581599518888790733950085754278712195280930911055477654004740132131562338902912686416367930633274781166805558212535660471052149413405473535032270793128980414062780453498666949864664406466126517251631172528750779940118798034136339573636493498589959970583931918169510622831100591780189992979930806724035854616713993753303918523974623564828360186568740136719299225125530558443858956517989972148709501856148613217005147954218937177602195696515575732578637498775725169921135092674339817945075105006742253922481020026438597407237787598795434020836654756181773681281557356709424462244028484856834918470985197723244303485679412906205092439655929881261224682122298518057460459256683425672564361048729940207188017012786354272894034712629038783835178785703083338572497358271913922580868783069859908303443921218178224685663444474990323351306714875945974749259107297891965926374828295698675600107419355980183188404436886307734857916133857987636849874248587783923454391885912195333455819310502705348892132881504821637252194439928739440269386360846103901388165877291296646478822947915771751297726528781940770039506863619909540351233119517554172915886650310588855663756102639163792012420328037252880709413758016411790125273942155532170063795403039936292187449494448153035841829725065369046101304136960684290221252247111221987696730452368361187072388624825863032094111199980913374268039894805766517866406090103962008813895844168233276639632742000501144749966473601689977767061025071926140408066689346626443035464039597049764547901614443724447137369007897646032887770564914819951727929457233497036620398848702547863344497385542720044405416993456920496292351509533547735522494992208080437427236551304451744960061899470567844756120806837452967391150504893254044058037929189579790018117050731620033387652763280583433133119126444395034105333003783333161062480296425013107257727761292237894302177241481480639015027978929733636872237733683534093952755130925414311364235648344285333907821210150034988499355285681104539468647134492205329283283535012046798208913610995007511554144933083292934977042814502860837894758583506399439553061453108156256542186306939179743192348149538966408876370960688314849197785526466296328645146049785049018031050057476985246188030129411156383335153463531662340748536112361174168987339291407354734152315373080285144820777797057260140396600662761210171303088420691269633946616436135913789888410686622531734628875034844446950709156807355949547324121102483163066813983093534735294674605126580701577289450156990184323886939458952730141971001287021548114799380716504238196171443794380291970007942537636542885379084584516158018342229883079010818819964925392787507669880886039393515330859052773428755834200683751213362730518547333469737982087386405521969738546144178748701422295226589980681235248384423527824066348386158172242200510675932307736846479486720754995399045669529414560118321059764141581467888376666087393136796513362007346097112096277025215302027617301631434878659904317207597649595564084637948440579113925966353143563083523631638646937740567487926623107842519717664658248338952808069403755373141104555052300593535903145630468621188250268326365131380364462206320780743187528891472667847237437661769146387195540185350815527294079199825883770444764702321588920549200467780371782603149372268800112185262719785415880399940294454681428828890737175721570409688092815991360031206307359669188662123577611747364675903755078980010573047878939200608374255514987129124036042525282461633058718580505897009591618908847682883852446932367370940398296843385324227256127087435999778877489118157168856214235183799541614859717554181235896551768659704474096685896788833755972662462455719357437756824527939658236129341434139647857561604907014469784581443798570674025794228141220497105221759569465418620786177167133156639683740460845808462990754349406783604857321610657359477053511328827562891240684824475831885462377194026413904339718303057726581201792491983318364419930880583371165268678974227987187385426954801533081603074608487045152343095333940116270599994316015879093986427075567653000761819380193566420242810864414526423677186637766283909960436830889885446453503727771406900417683920269765102612005551359095653895333512426539163839856092184605179323379551613570575871147235245070596645067166862141044995160958442241070973350057251841548990514435097412059747491605291185626265330782885730584542429890369430792288554031799121589006278959325532660709625571876422255070396943130785900132975622049096566149850913106980150758242083655505153924803272076237289369667235461840588131741947822855031283852790981215458308225541038419136339641865321714124070696166239790738445760568128695842250783545283960008852889335228070919578855421991495037152372813706216943054269164088308169864073263324173146184897896077122590073636070928014881188413786477268555111779366549763959264469395967803654735116174618998525705336568760983559812164240776755430411015965438694206801333314660176704368650230371013334951624207635792185351535703569640437654790383184422262443962014890871519497719950494570120309765603100024447598514137689731001065810806554970763234988713891530406821345980160085916441073803054786515195228933501343022401062996140915127550090451544189921633383944000390562868051992981943401104085878750724365185583996164431750138053458980403638468062918685378457027219715706562751000940103850631373346477107787266933162049143131951440185966140741827687076099708964293954154272659830980030797984880684012725827735036810266156306313458809732356193894215421995329970079921823464228392994736759911783877093286556161834130688755180213668824599690532239268925330343995190743988241678977415676020955706324279937632161953358631803191762447287147238081140577905462748860712244076073139848685681985313014024689772669525955155916439234180908769243028236443699745107831495282565707991914906701254039264270937309698403120191981353017415842212147793528692842231236174598176675716459284308922966713323510376770669717483683775448656561668066146250920075384227055826652701558812244458461943240838676588985201818478967021057575446601181545973024111943358164159621108409558240776150767900096376269728945350477353458281153191053389997103374145761815942929948603684206921278927296303034972818572833344067412559684061064662561126396024094551471370240597278738377851917284100471303961665420155322006217336700214686854648957542684085236683514457769979576812054737697010735118644827115190069315541598181452161064525229489920940402970117577785134836848737798694741755239798887084692925719806707040074823437296919163301496173323717864667522973023645999569686385274191749118928909272923328189744073804066264993941299022665565061812553708808165032403924395918826582269653992819110624644929620298732254620021261996164045523089624397928328334131244195497253694002319679491147517658213705897826532378851887975673609515811846371538296231837126524554995368119079125688114020480141880790293526660654904599884067469655784940620334726375301112570068700490779461518245923591825290215760586541269839550188797440929462456369852389307968158994767688511603100788696080822497117800044607437328172007033038886004843520569329926571103534474471646238930947739629314940574680250365358556727372853673078597317603292495180773110893493485810283695502066287118100475239808193862984680289003248382516724815772178083716945758312291082150151451458061838948507168603464586389388079357378335600103801126507692826422057351191011188870680520732532116030570816074774509450740130737870937717953879515297812262216080489973261036130256205284102215615837560740824533699570217596933434175819787790926320259674087856601756690549053578368041517134359619023193417614553479092653383579829898257700860936001989270721021709532119982849036999366264720904493468010013651310030239232891243750603683013403970451940816770588826713528144600278800538213686420335085970450868112052320106064476103514741496546777393651759341160975528876729692953958446250084886631655040560807601419297546011335624409224334875118453347514911703700844215100389030339112911442213714049693063716800261646110001787689413742193998618077573718241784962315451506123344331107403932078900364757828071218895768458348973868845316235530978454213220635969289250402792364590527730667993158076296543384786898178464120777043675120930706197689393593496379604551366936761471302133503151342936557179900813974058288309569955011185534256101673096826902544167730895839198691926578206549845836357689817768468399313886266493324922144603726188183962956513319396113415288963973653039198488975982355741619416917418627485199051628134638288986222188836788658758713131591754881953727800752989177146415580790315925300996661413663727274733876432351129953765398698635607354750006052897595587767885618503935918735504735173954498866404281540245781318304343617995316513793251920786174286989077492601537292269643158014029618438892561626893855572400160220036763219962668787762156600176766676314969825687326889080516002908080749685645969008045506934063830039248598691241939704750639250286402222542721425320932273996277484339241523545280256877185288438141260951605608437861775740483119794451178748686411309149980563808003796522254267545449313152468421910349668656609916455722272829728826467987029668020567699318552643738082286879139826605783823969817943260619145134690872668897879350645993240114510384133345763200784785933491904268678027363470978681423296815097352274189452971028415293750745294957677488428014541421700133774752395843641472234959810488553360223418675020828103068104888319800774069450493785982361272995527689961024669710307620716897124246556619856768729968003610973255749500728786740219498438277674683256136977170482752508959802570696332679321172823276792860042351738825389487693485895249966131911661008680428029412613191348339578633676288591993615770596096225618052542106872104100653485175972676519025882367418221278493641126452920689138866339606549172213828450644529494806246660449463773146112190946983070596857330823805694216036104890342771635585424300325038940514015396708482032970480485460583325579976887826086325252015048989770984193184801707307322479095423774276613043707456062464287923641602411822874232683184160278162638855022250738809120546901674464481807765448974845245255435849594416771418683202384268801658932819511240687105640484905886981505235603145117833142230662054861369609815605557456993117021880353704746716646620976101031505745453023881587706954665497345118921726774612565099844170045407580775130664664316585552371853107807108432241188998595444494937309570021398472677489009476585356013979691676638244199784360272825985147816923346209463990499010095845894031903327554877481782957577480926062496142189377543354029947905744576267672529614468293031626708888794627162209776622799565368055020978880415643325685739206030625240228654734320103298428408307391070357509218672126088823704641736385407973059417165056668089420332107254074073974390051312007974646206792361957355640250679077951082200013322858089415698455354674012916960314028965088924763931569193471803048356508197021171245143963113019444167012127627573250247651806506275289363789247759993431765002642027356235419165020117729846913212558676770844549310769110997376236664231895111857214585283474537556883679059793414038058204901980202670996616626159181025528928575160255194646711175520525041691119691871714014897541983473546640671356600578456360159407305994181393124492297503452413129600909032258079410783901845996347447380222693474243427649788777102609910803179682615472415417213905634772262715632736798854412942172004440029794264359626423630977142908545364650964481137862005038690326878611771660104304899750371366185655061631502800002598870780356377406961886909089477948313418322538717317926958184313730255173931557310381441385773241046933579923388942140111999538950973656028120865302610049141014274437172221490997836511838359829482765854040602413823683171932327685267328177670427089813527584177725481008330898549771434153413399423689538116661311239766655995406197740795217155369426773233149366551228547154526042093449209724823021528846467598030449967853494849037618142590067888498671979211638440776740814091315330932663865108795029499618678602816124750101178598851634143708339079144334865994583656650839780390349237386424055201419046960983675519273586478666119934318430400491599212705945783058881441078385237384531060822753027811141717929758997863204229486655819566406684491623011708437966200175619526553784345791226953254252918956678686607852483762897846567405713997722718661428904951097413330143346886297407078328959888738175386231273085769668641524212959697745517895266515289077684714202757096605666293524003571594750509023471973361358156692073329911307064945876029554272852129526836235218191826846114650603734998684633569171254060386822729116703100656031073635005757771211865738459466518536361032068746655769800068713963127815715815935712139543281692964972015246575524459920420905492060588514444985559280613978363841031645552366004105891206492289327007880310856960401927695640352005560988486832479155919716123405333803535085019155683275349099969018636088820967282809523745945360971451960722917082960184375911495173381693154872287781373564183618049168780098971854594859425211400100135679561544545223683702624464877971171744320791518014706912829954088317296607271604722737505465148017439258321899193017631157633083721657263347211056496740095239878026084774758730342506677532346381325335104352794412488500095526304049933060679939678815786822833399929502208646886950809320073955934659849300691706606136650140700264372099015536476360610185468424910490594627925153299304580321879520582096187843013926727746634883125040632008488656696777152751666797683464650761658109577615203906192011856552151855712190903845251351184836656414749281906526849934900185270560590218436140888016727762251949863982675244384296529089156703195257238440827985406067116277832448782371330715059477557796500337747447925876664688284441288290941075930289891488663181888316262382115564825521374259446873674117728124148115541344938431452530137527411174426801596978306680921214962036885717079352492010921765232791467640647435210692255681811514569030974778946023530910019355895321414363841204274260669947772407214378809858437616624045941563161490768619588629919878987776921291053678392715561002589022706192989643848561983437264367461122049920459644747514521571912407897578241451708309750949538463821880090947546615673376141165587265678037478749625440463861022033192170220486420059121450101908912705854611639894483891780145046816458271232686306096639870725109773479861369449793254344073642670691964572646358176977751006132102999429570176263417401295300583439959162373904221709544930566821300218356504877782984102580114858112433777065225248101961723707212614736390233820352312697560461212083846725451300502279068209847198818498807055327998936478030443000010556437426632045199428835467317541437130701460887224844324428063324883904471173853011457497526215887834138181808958347059806102384725924198717875738446052938041488338130157165856724879330372389878954569696469007000911671815595412261464811794237633660536665031639906650227732037610428899829216571668692592217464740788621059814972105428456183822370156028491431502382074820151726709431468700207823619861866410607014041837534656974567680837488713903762943818521384554866389190101776221674421639179369475896581324860691742959900031375538851846613363523307393995841948713739434555678167900521553702609609258451879677341561802966486311127462790566558928137530213519486231685777679169235204258887595137689147809816119499840140943165894807499984262800279414138428104755057673308828806964062509747654562318015938196636637101691773178542660609072283479777536655655765074412332655718835107097646463480319974595691865243520615406692580610479541412765875228741148005896304869255104712471214509720020499717471609096293468112772779504032332326787210278164988413731263502499216726583746538935855918096933029130029353143533997427290009943442977977688953645610382483442874132744398377574825749428911608250839322868938981662027448717967140357649412932288258394929947284189008469248640527057937727268271765836875558570913011960276630767735689104644224417301718778011409198421002596287590021476251456056462421997516698525866599620554941785192860540654505557497462149509987102568077306509897833013453182637985538181503118575115574872496218209898602280997004485864763369322215300620618824004228811263110883566545652119231093588011164987960275201215809815256380932887852725072012593603977236387281924316869392643929930741747592602948083251354175027763059582200485201011467565319117007818053667416682403362998971541371532359683769473255043033768724907731261979022745102754622883839921878167475024945943384592779710939587740077047967435546122477380886117606504309234226220796904501627437674578390880468267194322094804045488878636532077905481301194742674636718463089755250596459326037127464659852924629402855614616090237860656276746192309057204008004183508375465064475135004401965667678107707946535141789588109217463506721892149784027387609834471826869733034468340727602860617047674857977304109486557133050511357046786500996699337429300049951769929807833445618374067136121266973009780277399605300379991827498103493347698412385172076498467223035624581481062134489668041618232360555649962149053233486707169187367143847648958618064489573501909561175215222156355263181806725486967191179951071488129241074500468077750234754451913973463760193591514363438623655305791593036609330744742486782812926694389692401840694361082974319272717111269538950221411047217458490916739727260482160204277175349163894335885492905569959739938843597371469393687091800715850907554579695397209087047263503889980185989809833241394201778980561779946784682879098785991007497923496933136417432338768179092560853795430361614575648826842246422096085248085337441614210822841987218059136365503828905278602384859488946927557935734978178459452319035045570313298732218890482100846732372870661033023474774940021325438308917743721546312411140525137591667000016433749975699796057612739121200461123471208406105776257095303701617354131499962834017086101001254718039051674046847656069629918207287986129053217370078540880343141627327667513317565160708329583568229039594827392763031050565420144220975603487691827072269544711699912431411086544903946674835735229713335729480318412670759458098049554759922669327506702798922641333013939916698881610937924817674465152272476054738966416860672649857435042547077073884898977296320326586136481860845369369498508727984005227984736586328901734804869987415755002333087069074105092565080971407673872684455381532787950442791154692886538609412173330168550284884912823526317624635828628405233258202365908553295654676109923305452878385525535446942148198414164630443076566825828127762152801970300398050070446327338475158448677503166797794041643990281245640465331706031971833050515068053463141396400489903796858099038724779695514449348831339537711508601139961235192849470321997320329583517411762463713808951206762714136016441630563929555694072974886761041954818752493116888692974256957525085803128051495539634228436937556795465989916247013755857034096040415371136600076857779883927950091788046177771331184522156193168104924947927444273449125204676432366491848830820416678523970913358882707927036614442133211375621627896060547733934237066247692731589398086371629271291359413756551170190975618432513370332858652854220587904830072856632545084005446047803345831349796412111923176059023041439954247148381056320304121093740518698300132508858702569096426788699480212879792478061163920995449658522780369210999573486741433078134521841569529641228916707969418504203167763979076585178672033526587390213909992527832596623115284153001168178829587998419634301495942036600469055122155091514603973203700893073552418776139236432263960979378425080605514246593301595593996659220476593040428538657954784711259429305905522938486391003612011956859433770590918757626322787814757758787218405466608935966819856963363063977315612374909277485831783118632839829288654888264085009522798277197315240660678510858026218164716534663190167341742560017589752653625870613576530677811058373804275895929529571388389219989225921099722947402258003543389820484546184886769472087530730360718292098494958172537833630624910692788932181957472705431505680513419375258620634623322183075981218938553590469077641252994298169589810797930763631531737613761502392836098320621433061308980757797259969995569162720445059791227743004079807837063302541233241824837949611215351473095250793154525860275784290034386374267834810584191915592809065918266493712570516532744584849799768277350759072454775009363647983482951622319454125008685748917553731052262275034997651858999017191920151300709553671046022607856763194052256744364817839850086938341381268196085616689218605865275305870140809230171165644039387938847763015588778215049906165633357617372131227340518752616768438703987768521055173543545845474321078191603621490585306042108323145505220790418886843583262071154981124940732072667862698391547396240140700741636967317338769064000782491177463420238921058001825593624382970481171633049259900337926061019305973067092023054438316942578898753677220041683276169640852501395149460520919332562356584268910537283873286395834469659724459848668540479848938848880674155585358106452397748104283232906762217912588964122861589993141142989220853468903148644565268685624291155506006742180999823385643164252058127589924647531629288639039067729062863966492479980886055593612580267383162134579761151057904684838687812019786214033061492811667942620696227520127119143868424319182339916429857951033473010144851701298441001218464615457554261115038205196466961744105872325851016976817697123608355928856094531947063633581636581056256592393289835897007539687896252541908087196920368705918542902071724106384228254019727868093196717296867214216544678564079506882200312050447618525869123770991565170979012266689259579455945156376920415153899667307345443703639682125035772073062076517528711787967339097846638848242292360088575077616739812553894805604415314417493855418360796369370365261995786604140338635597244657821490267425137193337747458101246075613087414649974727315650366572260003742665178280813525835813059474047168713622497869308336182245275791981709630018058203729828820989252798537502295516811852833737570439661842466382135156258478662459542422862097699705403011398109341988866228093490400073807100706264517015413066530057290656553496812469336430917582513222733925390936609061995696641884231503348800800831282173024721793265996835546393453154950808936554927841345439429566380866810789952041713723226361595886547705487295660684202161011340355401714340470684635729507894135190264207914830270482339997799577891045923677064441611520985290827019758110963066872644257076670441283753969797841114394693695198908392615416313089926970041467558431579580118197182500894955215729474960446306887556153991790034879927926167284373323830518476300084009862802987898242989130975998458714957093914248546330606436981412802823650116660148518541720906885394346070534721698126536365488521209599131790914710141498832964867776168778876809184452663621666032486125936476855573011194936890157090897246565091402900123594972606092110139784952782804738040947360634630058818238170365857202112765870855059957418740418143789291201435214874475334561350522298239687284248235438190398837219138999703983740625864458236371722086539556273709139215749346876855480689577748278680234260798072998016755928142447366006995122326706837121851721007235502535378892592986123955484280042555405615205804546977314757552586390778450340606553241369804490717185375999015443554368927693611130359366762999292726245677520484818271741867293910096017517666487222338034665393492461506569606408035244673318394115323529632974893451441653843989238859986342369780687436455496345698411573269677624450320255132454604205950866168662515172782645017921782770980572980569077425282877252464531952512669428873180904339635637090991099584374133198579419224559346884005663446211133516080668011328220408523492226118097053033355034345922421214984765669082379645972459958323617224101217824550471325977867791014764559638992646671601409191952870233143773295959896144764352867919642485273870106206215223046965065259782432094431470043145978311087220763010368224035674431488976420677274576741650253036189404028778267609585284808118618437221159704165456277573607270455982082312862574282498252275222719291920176166928906835883754215212134346694435844726614952945034276812130387758964983634188316285242580083007777407450127832983461797464797632824163160870757652524278620362080543176228745370079691750795136671787033668433033277648548177524766867486839760454756529271413402338320756110154205467563433492888950459795147715429567363895661804316295190473476725082176426864898830192723531003872678545122320906081348974057847122447452904296469265416821437623740046080029014479181454717559795339855938521008703748365489935425498737950130736473001978222198074236340399576718539447835368535793406990565470916688699952467367598939628508768975275988066237107412711333207574830498074164257490949157980231150065062846786604236251336903742118774596057893492901085887457715690247951328325081381484952856891808847096508279277739069895756815432301161911695766480112820957403607166837914343054297407614606660103153021829580599251959523186725517639819018545174055023876668564702217738554316284338211943962204021102735950162499317262813187763328206136717983925766477481450277237831525749084870492528470094761837142391393813978164342773985568641425145513944342209865960234827918868303273564988196280401046200823117476449867579377183947097705425855014292099968236874728941661934246515151932315703053124645093475120347990597599055742882050509630647332690178050313430423770775865863628671472977459876294291691144013880513642776868286857901739011015434792731228822925183342232456410257678003345603615902718249534212443553327831959276559135400644400942245656929155502858012058478973970474636011220371337075759457825853876829305513621097885667919134393235565530824299940411760542799228833589722286991840836237585903781011523120242830779010562519434496616728096838104103405355723284755031511225351134231046767836191585710712306464975093221063498436498675323398119880091279595991822823964716159601409565627022844107907055643098832468566568106644770596720950096383438332180324959305477496805431555694499259211136339166065745477639709635880970071255393166349904592885274641686321421618185360318701936951501430964651706003704819153557001169109853132870102783718770074826331267584464398216214485334115739103440940394636392733414997930665599833146340606089787330844411628894038345219561142002954049773058275635298046376693567481357302894271818701958331172713724396439199295753383284856018173514783591296627505244496979004038758332173029680125429025242707347247287959872104725174530045326158398599610649238278447933758242262394627497073322856673861149894033496068415598173860118795784858347041303113685314740717461914829814582076403768121771299475392651151393982583350314223249709005350141421962885745881671313743143045222775739870811631210630679530215647926026604975352594694976255043505285871390720523734472508769523143675911479781273563659952883982124604433022120563704581308670303925078481135826124749137760254309666044434582730061767531622331550544323579291784617514371133321976811824947371327386817039504572396071299665223873151027382544423607766963004478483011325353085822821524222021302248595881625378502234891514305963700207359755539550252936452544898671150237313996070139140105646212653231711056347027005527813607523240196443291784806005496004976350772385912514069670000108862060415225356289028552874539952517466249764992955088138138055757924570807750410397189767687360593630044601025924372516464327644013582059002893871742825476340228581070360670435789121362011666939790429420778238315159499000035234309279365077916514877409529559504708840056026017540608197865542907645500112671376642905205695764717362660073757267751995748781609341987233331203621768008290121531360273029459817070288040065491312770954811502393015027271214205813892581323513131842911996766529844773402412679620841290262925022201754242994872875790361098034233876676548321350921027503348144281494092005732014232346357007069502553201654121731190776744207514506244948298225183731131548941966978697579415100496116029612972552631637004344586482666839648719053576920983660428161907824418328814482239199175380991366806910280505629791590486390807290405766398936532315262235210660516540716652936761821847105484608854094127505124228431788690425996760266265668377679631351045548521188174389764447953376983965486211423522753996818789382449411149374222077626017674111144969507556710791168429847185733247367314232535032071978518828673746051084268248221223240380360904222548621641033351345783654730139229752626103780340677646258627385965916378597387485542499145931313392737915462035132408182495280140910993594731624541881065255707891984697384939763465396902578902532511381422341671850879170614622389731873181000199613843064618577079158379660171798299211345533425652478200959392226613430432033558848362260532266952117041714481346730671693746088436940260240249736075445347824842984293419696620703486546708225045417982315023640984341303651806022784194112702010254467456764300359402174055699106705193151691558094183281332663960926700232139376840579320253679926346534334954654578796663992588506706059575632742251798560980436725530440663714393708208486473160825137756474643842878917030767497584036965323340144101607099463047252757211828916264041400373569750213408430654632073818920166792505514900048963474808739611249682711260047820617223813597314328255702443729888174424246135267938569140145199755875086635827000080772339471670199257128987743580789228238830388558824310668437168314363612378057352744245458771577726825306913660458357680871797119729066567576666714865489573410801902900680396035021671606141678233827487726916129797506198654084998437008247266815872778079846425976857642691991553838691382306201868606220434767011593337335776771424858025104380570859771893306999446593143741719091220642971854710942791594717257709700878670860650029818701246651350498037458940587642581228638830180040268994735806139713274044838058991801140292368071379723391378619733996588529785270667122953821343165301507388561649141434490375688244316964697753665602620109739553403581803013401800356265857463965713828863342585405790380353481770244320705266626021088409709852210366958963502946553942698727841715559013006817552690615326020108708204269361804155382792260088583880761011252058864026013989709642947987428073245204001232632763311902693707163922007823954690686573533676538481349665407228410346187595631300552612241688946030019904098946962985729748260995006269926303867594341678763674359560989744362562408068037129042855297030317759784313546761628238160233550022925957510461473087869377812463221755799131282666848511550867297056930021439217807228316408341461612685408961544259532858429867600088683481879332772377937516751553430709475620346573040662652106541621126555705446385068663956039474364387495199105405839181578504572295106217647798404747394933491365690832826493309950270671624504109552141862527303237047344935403922601136558316174377547489914879316332465461890055128757356037517807219121895481810189027509409161178503173225276639669670987925639888832831380402991858833514719971523940123726016010244683916871325098430027284658304475522379266184627729188448724280681722019009609559672374398701057552383385415344642277618346544940199249382496034469228664005677898587976820750490587465711958234142418094351927433195227183391518257878116699769751372259823674299273368184779168314010819241007603744751228720014556380031320732739262269123423392825961672518133245871087843449524803824778182085589612161182687617773377895058827348191690986818263016311802966592099203935375239581816298959326307224129169416120488830337728833617140262008761024488587582508297742158547073899778709500377567912226954820962357539829735849399690853506979728145692359076749254560830238354685323160359309316960767180349458381687902303808669708971422123215224773422962531320912308399675704797323529073214966475638541018180701812286707244125446872867951926167043307440902592881175640526422841121357502064971840174129135441121471457237338183483903896681596936460384789295237219902792474291211987320497894906499996767855606993677407334133565540892576118039826344467037964112227920896785641884862804104569175181949713393346094684424920018265328947170599666462901377091615230739786057360394274813285111498088189443706256382174624515967452435158493565770361601401150303479231193529128413090353543734472275874883321237698133655257413130409888800151561409225848475071551547570818992074344419759549444965649845830858877795535710569007067155063360833460805111735892183796189578043411557167841368109323393577427354708066336961805276898439897634452166391185798131249308357026885651406234673961746389679679431249404451077605572541141023586920819049748368792929857755628078298897138279946985912031525905887254158757114882705646955424521226850368315023105811201054292324714966130747735724686466417123831665833217698723422421187642720615269560499760469372949659836008806474159497271742801140896049773717417056270233988817370555618953727757968331684647959553843026551837678905194517785694256177365171994116194240630939557975436161725343263245623234803593045727250742109633011298981178179488078594354113622412256059491995462569048550125857611420123210075066848468745248920840578706544849027331097079140648008008682281618480833262949836148127812745475362575212504542073346739072022215742295915860886934269480571740666533312939983889798837062440920123926961200627909341426126212266384382073976709892768001742549510129321725420823274033925985627101311370023028527360359100805262801997853593086567544571959013218188266070288083448133048998956165667363243749828002774717516971025357639480674573540141658029445485160694977751007302788518500632649639772129033322741988684066755290632847650139369928754249858364298427349019464169577101458595492364362975968289666729122346593545165694769979298376419518734737875077723335815569006618764860024337158363818713965450156876004680012792711637012527981901487134848829233948078760191769950351347476734096223776951875298559329307297253398800869476799569057200891578228429798801743868293300372615277354435004356123426094083423389861062617446665042464564244202227291977483121519200974240877927004812784326119236771006961713290977030767036965932092297231274325997638524514566113277776052933603197590607958180320207900578037366368516881631740658330815602525106513360811328970983449461436384281923752809882987749828919655732000432636006177084420801267212427255283665965040080879160212680826437192356110467390224014095318333321340824191608874858577527201702008405214152008748798829623243967232666016219980492633186080059740040684540822228909574355892368295536090053104314334944910671480404239695162383105696906367043136328572165335007064994029936977313465062173619830995080780176433359894740362299056112326909471598976890177050831445370649181170454601235732189798982620710224045746412447301070938954168517359201122040774788424771988782692830587275412194671853957705394668192215056768288647002978298071915984771935976393440780316528422815772240358535954050175685433976988066972860293336606244613534717273272364821067816425108754923914798481312014566870335171451195401894208997461763383541143408917284867116772889314359361071726394478446841444518657573557841499950523612354590510178194582083450374817297170752291371888420912652292478316337370826960139694432840360302307880463091376931253058588244709627276997564069796440078033737094107869545315356697025531418705233879960485529807477591565566396317840361615545208374293378907965836867550986097038255788619176263191500942956471828738018186013235370939529692540928444011072056476678428736579123554782106198571552318395959730019990522120100662355446425226702677044060371766250510582616064277293391625453816335651798057543395430502873697000638547723594156740842690655282879911524171525050027590301891526592188599272969034266791028194205632725563640974577262009982791401991501585263177377372721749104160240088335354474276246142905277516878374214912730043362756635722175957302399940389814199644092389215545853088675419645639284373700823651032951881714022993296583979852084821068717357863238918278961112986130056069073476491192840585087312900116456901783688749031392992861207715797901172749670337202471515540464795153886640738313895142604899744829337350788538561103850383950042052489227765185235663756444586468117635767679257698515283613539129989393862708347764771757755463018917888836053604024209298855035747175194882370526841691155405302321697764869556178492757114643723813855629724852797832973992526509179240905912447579148861321325678639351200691668192768152306521570547365126211218846302266488075376611914875977656753453380303774249042153204043182078203916135121004085841630600938660329673623929462778446836638644916406851500708923289874139233378139613119080856942592460503608693228437883106092076104990700074367050260180202203163537721452716279481187727673202747704652895108802724851506080255896504236009909630934980433260485060936831883178055922922289047821747710996473194317435918394804986052254895614699696248323418184903458005495507141987940099911556616963474779977008394711892831310702202811276450659795106899721044609653040482876958633760941316264306005725117110388841180857673525759812973443178391954789384527425531015376828573851997763615340409425109506057640366931962341152275006116180634239624200040078609834762562796309702212039451429343136738731564300141089961361909490823017328434181673702793011965659144657908030498094086026177664664566774691913375891081475636281952956568895746844054773414337638659709977605485982442166345314783086234012548736841160412771877532606372459052865486444072150425239310607319890579555029449405656547467781161414146457200719888220040602046349104733115325010442702367507622398914002309117915297450218037805534873685586965692527554828470100994326132510802119280227371681332448472156770106089420425780023469908023646248593249778647203210772409565846850161244184641419706844896675061441651390681007273278201480732705954218939340396302679463493630601129084025780855320119646665857201831199715217628038329123838864822932600849212461316677957531206454443155343624740246398771857423804625496224870959118626721656669565860413483152768835063068468047691354564254566521727004567079806819686139628475949157559351149719970986857399887327984879456632229424217327091977667011929604150161596520740386576045854395825503668066037228423092844639700450971980597185322316325198999150256711895386562885095763871163313614202653128835411389395906536681420854153569658083833572706874325094795462092735710307806130825334975842230633661883796746237202196652733897846270978187999844738392067984150150241111438684626091467112645098236306084771663940299905659200941303048615179611487272513210458915838107419958555989793457799766869914257609055615783805678059066487295475765544919420301449156403593446227880649735456957195727921168170079091787820509997771986560735576517696175661859070721796149350093575962194557769440820768089680105676023038573205943864146986438845910890097465571941230402258305823154065331933721855896480305393751582260917333033095590498042648094658146202924939533008955739225253093491748732839281066768711459055583619149859000593531005569592575529012222617010835308614752339154951968832630381738974301204193628794489509209771490235583569418101473368544538849828834760896465085908153219041288712171129246178477375621214805550645684779163574494412883564538260555431423051422191419337468125230299227901789934070559478806857439304612203497503489485488851244877361230117941428231523325690323291056625735715095685378223156171265154919894457087441716021574378514328442031607624826683588911687926162213415359404373369291751522998881075854497933497142561215988236324279726465388614637030401619353726281747946532974085138553434300615787055423260269061492447881764829355929713823936193025123206321518933227050279268529522661325067273166698123530809913936434581214843769487092915657113741407502342585951908946912291579692488787101636759517853133161831077445811739442683252768014260293476085310203105833758298462488577263226018063073608784334710022255362444343992107829571358777595442698786717260464168943044988452629653652875590189214525821458155960880016090893261727628119834577977087994258002026363217098197411998432571164485946870805860779688770750584875835662615729627955858130327623870327275993191100266305909257515831190767968480015862100897734144832973484444486700462791830027215406193012415814769457426065675954777337522610860406163051240327704565619440230450987213588720406047484219313087861726250031036469463795599591068253222650819128602958571519409533375202521211565521947229392942157371344649177932577422631315117000261097469860646817779746124595420630706714470639506282228213383584952949434781223855891158494032275207524699397961010971671973091471642533162819292632264196210583776357773646145028561014027217309372615426021613709219702219860369909047579168424131427223993596272655963369728731735459484957129973336100741280831299359937917718308276892350064480012245904418961858635095444274821655600788818991925857386199824184118089352637572763682878958999387115988902140688237797921238431631100088659627187901000664521504435573399687645311172871196091539316731167582309602140120717803506070095094081850485745340341085554013385945198039597145766900990872435161947233012252676373498491053274865102022408019198497457080954939042284404993929172625864712141550913877261641305357344379049207938789051290172446882227482771607851375119927023893904207776528825957729180716464262464782392543276487593613266394123746571916691915868187807621213637155053650889907818385223995429772005047500927231458588722995440239407548441500221005862364894794353442340885255741222702566450057477430264534586855061938855377735899562554508773974353000327608067830253358207474070269433400472813037930857867806145822664793300569070967311203719394279033601360656958322149249864568719710168653361858835915955042572199649893910557207082745477301210471245001253313938200616938072017811993538125143602505910727410419899044392904887974474086397969391788476307823043544752601763433907027925554367667206981390708890418969809657927310050418156180595969148047683245480132527446091336184171791355657156925666449018738168078836706339256683989533252190583366131824016154804830742920466725950488236127923220842919398596471280176819909088040691498465918955312636148179916627831283643960837156357074235470772730349144422768664017135641721019769311003618426790337852411954042059011696441569559749654296982194904215746266210275902689534863655217029894097697563985519460690756135743702619610099010539995722356073790463023132085438159434021880356343507372295823456508441877859270795370927967538105708687249998163034943388048215300307321260896706455277885815228544225200262636996031209412660014260869697985595859806572253196702490524937165981277768651283435496529861456457797947375791758981494063550914417681516021852814956328851383108147221168899075286005968759327384793382415607330734531828563531736611030245362137113587472285080980916859823978657092327353856201888251233912143874296528110570554923231816673413615902497723303242711046913935308915781415596838014255479554270383191105432895468538829796269383652532444553100946614820217612922862984592879761302638644513937174522949474401197456685245644365249542485338042889955545629811704106761756873988941840447875886769907780371849221806307084568729372706207452918147957933990488054345968601708745459932385894297718476576308201906115492047810993484267633171978357470556980572340270548991120417476118211451790403405268028062460352095004077213802605322463405400885867139265615160875401626475223033642362637222387875043658521419154720464493505180549082728570912314788326916496201824360767765550855929901967287697289306600117640510795880906707144975501104221436228997352798344822156949695820046551139723957295439357489792813991066487515075630383029479106996643331366947789637039196818992770576483167131937635248785902185326498869662098349368298042220865623128395270288487741554655376697914187377980302045173301377099016941799099643346480157408332778384949595002967522095577455626795009926109851407642802801560699846062389112215858543130512725729916196395657154157747321955182816771326565299217995882678040226878482702945095928446021188016317335033508745885698216883687823730364401573889288733865686566844969249383535262971205733580751133189183757894243334965708974307377841292259981969141174255308480027788452734849165105372432122081632895715266941199762056307224383211621432293331360592079985061482219584547585105513947388681397274494831275178712629409686114066507489376477359519823264391267882632377393667610822419102517879095763740926460655214676338197671944318048951077537645318684893156107577072977741652286766661490219879018397222398217928274266119888734856533795701844456521487572253983783748010689586482677444962190373707417728060154475200634504794011749289811654281388799039956105802369811773623093902501731742409081047023543843039155223786057477059657681378792211568112883316136359385082382732746729178642398552400973822290406352267313058948787362168890572710261875602415527249581687522025583900521357762002476725039172172147506969958394352651140964623292093421084400770312844247816619589911586107580805713426525107989675620141776488229500038591942164068760204362411737531982919659349671498198482109450805877539542430548327409023363485686130499933588090323855718444838565249584735155696440711106219739131391855859146081622701262519146818771838458199327972244053318451041855653105164247613214504993299286957846853722654672955407312394477859757204380363067177988292629159123268827188755590560198926354497803621655018242543574429863857844256168643141818392529164940253026179335062147446990834565175450219196289370952134314943161277685981896031854288025981843840591519832816458900371962640772939969194503799294848955771581583558981520068928935633588499171449315612593642687327922426714156480812440079943967601963398680737944694609009004316654713653802809069191415029706900879283804388770480702741141365279303416087782180405469616992248753200188198358953645006807711146243780202513014595673822745180271120605838984290871140890932510005258173793297603288146816779749247121877248710908735655035782045836974892343152603528257765695242551850645433562362294286516143023447715166894411583603280185418731612013040202142173112102069751419356372054608140814483510877521680772197344168646393918491776690054657725703056580728706132777824292589575657874872229279372415068067596753848655238062238566989611953221385550398837812989796717893865215040862338325408510833805720131219454853564468143700559298301200397055566577009432355694391747372408639737557495131799840056458022889711922623891620897097088774872536539342485611119127297576939788293122578766047922072244694288180759259909343673192584660534583676022399782466050232759705169502493468426417706328064282143456725071593427378330015345172673198024647921125418644089910598321611377550423710990796462716142535533382946292920953680984302344367451150804236457498499614397177562374020950607957810513646846897446174666156914196666172980515722211371608436636861088507761848219031142195164045795200140376052767952828760467299996299576031114944213380834518726902010216900154195989124683856447041974636383499334116763866801992933366138367771962336419529609706656538161247650230365723213620348767596838682486409060829128340474108985151865165397154568875329331694020897237184539601137253562430278186385008303446571797181200738510893336952643356577661381700207802341049932121623743221000592505389594767489037010360815600941637957907387710195426940032327784634950331593123217872617115435525539454476726897055592473984283643745515258946654188172382703369004048540477730454464137215328001983008230305573705420402243801386001485729920519088584458440393100382549426885690303023078909541190600823634716337143836560900490983486399615808405513525664501073800810311245072343758972621990160095207260930983793262006416316613576447515078322970298438785800237810983393757805321507553867138744761160692814431276452472542797233476858411166714005182664477038611654499941625525626022625812118802491089161885014195543574407652942344163984850835403554836782739068455318537534090699057730685897067644493025161162614414864794619379906834382329135006732747762708957167449360266944041534502490461529657074602644843063864633687522129040274518056121865978536170084874596989816738800688667108500967488758274057233784562549527276145169499546868736578676753399644134841186811055350465449732681883955734126082569279024512691122167399569420551212864042040178347432047492027771645858326041387856356560470890789267741668665149620889638685651612546705995305185130315673272667480395038631702283842576364099974743104310470710923596054775442312910093116954368068589600035713526767455143199114790307031081280353681862147571573685668674998910847604182079092142178908708733669132102863692607653505284424463580513521450747934927145816485011903939013082775816249100091499647384409280976245070367621335359203491931393083833247184687270497242839677948881355700373923721339030700885964689361743329010309513608719501984113240338411620275404093334447078533889934610347690009565180017751897559042757116645726348987670295774823004072717824353701619719367751316929595122689079013777872477257288965454352257082360592733800115663344990622869383096594411138351108242657549281590176144650146083855555868210519375145018874007161417710369094548373181150458884779717792459836678956094361665179218149306491686628903189424627049077164162396923938277617609113291370375062440776439427029638325699944332985606741326431549869430963769693802757955060444912745238019855788658795355189884787856751690400726952850194464495032393343645847182173927345126158108190753756997095116734710970391169197449244969632617929061071178982858122806808368385058169815330016748534058494925877764100118566552682676397384850235837999257743537804397179657160434205669280340832032127449988274595395517847203792801068423115093966666669912766742605438180011917680083025959735747641899337770230005587908131661738845524699355356460608606798346548053788545791589281845552119070608125344379371903789315568682492212913939591573307195621225223635384648865149931672912187130791591185704727638188181007870202559811130231508232141238848471901286612351201413459493653391691623444480069368724835291918327112471181092716760295768313145865585991739698295249894586369440961425797260574489582570477227483712356580730019219738235506483174603055563688577267529611414129495580231408182631731022891382492974285487737361254663817273492117670174025977559800277233733396707129785828254647029844095879910856646236533907686123962661282991973074213398879975838208323857617261144192492936303423721476686889203546078902515570685053880723819596495380436431555831378439173054180358481797120430313365405088523768168774733247609743429587066891814635038062451035385028790706537281102552220451268519238616929781019331507909691820029734605576790347195827783254709989959679416965077813720047125978138111549518927173855665536528257706840354057489484194755472556889463305539893207217698939017303820898745839406240259147807434373275507461130570672329929104118865513317715561978669111705128069495859251524353475594448513792113915463828605806087625237159402947202925784415416384652361658903211876118755689260970399801569045069180576586969541755040237553765675143565131669715933142732195074062781284059922491354926040802312290556987637164809258601499452616203015979949434850692579472415016396831688882905375169440062952858805712454029523213039948925244278757147535139184374203129485931010445959864191611560741484768771634193435356151473077966929858054469810391204282038284389822070808738179026045833066528982976841332298076173349844841920366695843510681881486009365708544846541294124645612624682763097178514272153462321256287615779976327405359888309354255703084682163172863314276020929875515440079052286572568602261341408227545113676979294133801039202182991645821785501887832909259475086744715137404637256016111494079261376714044463716878029597477670063963338340849443231358332809970761209291325583630057984506491021731135587379834029367030037536995332334860376680602629976650568463447538930589473652859459176471133554938164379286150149171531972543615088185543566476572481235068212755373973016899055407709009124389165758305494034894278196722819838493831581419800887878819421979637593366470963222875674071925212234529156787626106227833190366360600912088757424583228175510793558813683843605676980159266931425970009591697101933609425442970912226116935543867630120983286492270683094850813484602438232525975485793134485039944451820118562651410406606764734368547820592526993043702191816506543049607060032807684573584446584673681140745641544813034177514504319617119460248218003572109023911119889785616954208059835852935583457599426181393357218017976241805147809029642699041214921479515183795834733683233379659753830413962342931059314457690371802256589980678956305219638709971625817342797732489387601044500371214581371573472098425933806514155025918707390943857406055858322971275764644849993494746848696725687316213300235028176008206295504612658948744130303903233831477375874931461626916250339662301882970174817013453863575773345495161967985254089692287851711495830248209329722430974042947345677890446109703122560678223152939058081086078957373080881137469099422189194005568250192378117361853538087058110649933088988091948410488607866499417150424690562746768767713041623325325328961765758234696225867420705897411552081468634287556511503184621784218356468763963875720911551004217825200786329990565643425119485779765557239008803857218386241699164009457676719930463214417830242557206602638913677046660483423261379076581289638439857391274798374520410467664505352678820952640801490919587876894762175673817039862319285783830843074219640494896698170323194220950005562112852026005449462266098171446406672557139898995974941799949760180774450319134357228398699118313185579608336866901974552083955406355025595585670667503874024380666133342235865269289596518128215125274284452996166266773002975736449505980776269206108980542909888526351049004744850522194485127842653636827192225998733145819215482541832636230836639423796794512492218437467559964852985413684564978741101233349360260369367653606334374815151464906036821570690705277668995834270474777149041342794537717452189981082839331708673015996463947620938596586677964613547144288591846862269329286468820461211748588586567074093948324752275365166023021712429012794371842988417724012718770279574207611261589994628500460306207041897178204084340901430692109692443873965455776033998493965997758862772849024737171668677170555010584628258811578598199696774147945549428327835515181345239821469820719273245722344379505075777780163898110378288304472684548344497864239727497614463001540433204473833608791780044558918520088480155619403514613937358866661747514481883165392969684330446761455774006634243313063361126723587561608826739515701296858165513723929093604082996077879849506229005136704751582981931152814647545600769095452599091696351688587249255201939281137299435845904494580529003963562729562789249532623824492234591786155085498427797733071244529518310274658993496245698070067305451953862148407312371120864184505319208444792248613580074707910525605453099261329383151470779019004465621503740432775198512844034095661803987080729649900528388769527225966677691104725453951805802223116027665029704284531081597005608808082831260121676311581399666942110159472499539877109129110715738333019513289827801846586949358674353258354780006016425393746663936666622219272653155228477792857029052257930679670368765245223056489777120682776988875527549046499816171465844713872404941845783200505168104225401461457855972269515041221227333092148563294520074691256742781356669214024510155038530925733025423453227009193391235448796628725297653915219013576020142262416226576422974548488498364171164260725031520293659247002116031346077804891053261988729235612816309330705559137215127676473929324707284348722094145451744368768100204117106980985504708113450924912993657121063204469974161985382759005844420968684372673196359198678391740970308386407558089629547517129193001922855569980576444432814020559025571636764576622438783017064048648980188139151365831978617625616257684155819179579709495794812688376141141390463046771410342099520862957620188112992388368755244430662449085208824163036070073725054862396983143829284200343596605065136689981438539222939853395053921837063909414945233928923450051964794042347064898774486941619748376124375113756788101249146769702942606249035920760807329442237651372513008220242309806076044213164346869841659511141118892755038320514733987739765164832019995596445640809840532524165732632985719617806162000054882411897920224576240253222349846300531938951826359030763123234171296067912627228342122995666734443052038512953094806225982006480268325064579383010846624410487758347722737757690603981814217253471074015459359035904711945200385050683006094061514786577843815586114730898123302117155107839766132296149555125264514104673709061290808263859948660078561189091163142045263142796460874823186559691696669268522305046823684717506971421405132592223512562807031060776468408737513580713753442366181831460776806642714378990051523576838703137101963646295477697108489424832440622213941577517107722913155848174723449808077296423978466957636010144633999876229082854632201251919200685686489457630306503185620198807603853893911188704884664031279402428832423530707425415391608431417673940757926761880134033722043328134636380674830404399030400055705990350220048044184534813373773776070670616644569688180176624720188999309402286885292808735381715528177698998099179880451003962186332985746906832179882374702576270896797199036510708125645525692763566428357276237523791564454391941975261740335690507894961987339790578366118399210515412246457728516753929708119202057771084928142828018831010277170123433036824526797351684390346831623518950047529197515492664399961675383049963560962595306059015945079303297404580781650488081166965315297672053213802988417178273330767861196029235411578412870683072283524641679122549659799778087501216561646835803319956950914144816876953652329808714724891862594538721814792726789417481384506233584430613855224449944124285567525309277468848300250058490744590928176451153153672503697391472410399068181765493988570214421050034129211289927747465313660519487636541455644886970477998387671542265396113082308963698810921504625518396326268430748998654100188033299369389429866798497576312988751137949772200186184651114606904719730507943896454690276629457583802025185613208523247256446098454552360891505673980803332760915267105623437783651273186226787443812207358701882967840712528897250002694110123606825028522093785888102316102770005855606780958978409093464336170682013397568476339272922967625518725531885266153509215225543533453991322749780465798138192974050294955247632189320159091935797322581109245060112858431315018554619410814595333375891687795154729980687656420964329530852309565091913369915590482004195926900839453320322942922400815112417903394731346383958192436774131561214979034355201666170276630440648729443047637941879569752409630035894428593183164223235731124789529505474015962571686791480601628250197609195328324575333678235649595478312806764988063025870580128425951274407113430116095179865389827125401413371559545686161794057338662040533410862363273709257794635380835886804936216111940162801613331973080264042771807519315858768684652383895133485580721987239997306294817411395568554508649646770486026446952386777251026864880985480962561972274451784179583641828277926609972631191858122273590422088125305600384433170871073561764871086148881159834345531499282967724957271385904173206046397803836559544164994946818572117712681613215435382506280445689022177116748681755661946316374003655350818302261860923672592369404086914710426256758881360116381541716886260950235149253721216400950942698974235927704893303086487759422738750336081228946289857733966816142876709392385265953869045558145537652470765333426015168141283238665450505580371007551676210146176597923540047752720450081041579403482869764319769211178955470966789409837302046540607972064917161924843640499523796837915760408795289587873047915195683351279069288020469704961382963959388205211292202994271815317573891093905586028277523337434163313679914265855675782530533350733533199334172407677289504795706775127069608081909693530713690196457431459021863225526683929667090582644226970421024513986968081442042816966519484902651625559773156501485578820693902556118546487725023321418044375200733151761547331292783598528983384411500420077510159356775688829830599215121604625593395743281123991319996330239717687868976650978399100593596088972869503064000228691427034976227336855643617195905142468305387666753382984699841669499080029520289917101123214237759478923631791831087924530271775990578642158025519335319560490808111616989796987817483976677818713965985463236326771773775080343865399103063426398077238815168210293803506751683058753886843155171052608796605216430085433354328740547306648818130742884717202149251752466903926813010653329512723238594706986215211030429043754318118473931169444091324443140878448944469463091484538259468475950841261418102081003646256778294790632731462234747737559117592523699800032891112445377800476699010479746579897904797334027436166574505984680539582183920739818340075650736235225990076242092560057740896592824344145724349008982755774991301359230051707038897001252622881523033347242905608735915511589345281132533131292478244000017784204613254383847189418857354881126985246377658572704092354174725176779934388481517869695486959534825440061981604932659305849606844645110900216177363470281967549142922933429864965440139965010216816229784010470480288486023212029320807462231628069160153818698334239252501516025745061572994519089556442572002369018415611663759249671867114962827889694583077402700322568739230881416096726580298967849578033327425320492945526597829938824245857866172044095919525561287668247755825916452076064503054889244330846078593588729041019779743826939540412452630940767255303608676265131949838110507850977291139847831634787813560140211641107049665396797135929661612698780331253889362109683159499995444001018401700594093954886050414141678199481273310666351973895777324027147131469856757778206614330710921481471647306484234421202029379539181203292440598848420745844063092157798948280829319702767326916885840873672629041034859193826750113724104941455334118868186177629518809664068460033595521420914085394271446123931064453540182613836674071909750073242036522503617506011096196947203977849670074970016569407776967914759816939468987458612067763481151990148401480665390276535701773317389390678168050164099478460830811707626273880889012261869245512840567442176916370633340059258999296185731585703451051416719775667141954907441953704366401228320204364733886723640782540047385536658915583680093335203833374160436677900508723195786802984396305003806817080955055810444590859782472604101806502254244260486858264804914886844812776600799201934335098314409030176581342659292341310297495846046438898437446689612915600776356269404514566849539396987006503393774706506868221701706192870576479931076901581585937561845166728686583868567579528087402793776359627902095236504477970325272600289988454886274507172586368268708115767189195859252226400278432767281275851973182146583266457087474071841445220514935190406595358422199071813671795773047228539496740720650812884121491416349388670445145644273224512318496780362794416628475022731463692237794072023046255888227688561900888118170542560859924265210500702572822170083858542271275055409591395439434479610541738449987781712677772644090862087071504630564174170748240944040874851433515503931886827820092124851450522223854791030611680315758748996558305860584994311680866850471468620811067519513729192762042755600211977877958224434763377714972296666126223158677724895847102544292952905542040923285181810646944860756800240495285235243045845413747790699001887890085710982209533558252639240021301467906051973778167509571673681119525228002080947623730535814278584553682615678715549607697718396655930325661142115270876508059888383816966117925549919841982298634643316787688579871086934743681070134102691326653388106249733411906200952225578911164967576374467672097105153792776298464311233853920875574444177655698352371024253552684979802469428630835228105213466438085521045801582155327799203262006685149177920951967177518333948123843166145053590939299051610272102997824224834821439378777586198026399110722087778583042467006228582630278512484549754665199509652132384478891731633961379942650490509864359608359066657368933069203935808179201545793115080978659950585742520973709011020787358130312456804712787255600896881554367292334460484971924734736311730418970217384214604295712236525808956598049216934352076954401917633881855623720020854064283049486198203959609294298303754812533575040865524372915905430703424709640490026121133398453487255318396122061508618823310374211266986467122676429399665009988385553579571458428857653310457887260776190915214119627885194724490092473539470776671439023435726685377200017799845991176231653339312414375674565564676959136913694541542386078533224075551010904809892116795645323701972188927889902889090333443250719397312702709960855393414457749975786811810424262667646575587578426561737018973341484346467375387971755276263528333163819239364127003820970372655758876668633138238546330328292446594353560265979008836310859332816969802790903835831537998181860652968229400749836561409306014121453505610782325336964834108733763640755376348942926365673396659743682861493548838782941648853985479054306608943412970667019549839381369835876245863039645204916448951179927978630223665912148379735193922086895590508103329606021194328989995926467902250185815173082865538572425410217038499307791051064284292623191240932492586554507298881807964030063184826020366726724360668769097737463512476852349353262204853511693382445431922551898289197422630921922489310925737590599591897775784263461566392931059266876438321398739302996199490248006083434233663019221786235855436047748963324867474168294319124048019141600584433699485450993234044393317019069382145809877631151514036280959959341806010695191985449704683559393732951760402691993370338685407174978020901860034887366442022173094366620633362449760073740602104861532345844884225091201066836861183871831962545743517998417415675695640549341303111366377007475891683788512822183926043939497485849185461972503264040394667620478233611779840381685302293165452062892515150027714033640341647224087334174799735525113588775003316257273153978657996514396821633417299608650047051535160880176628378240230792446332024608481631388555258860438412145927157168341740455691563058581013841915191950023754239406297760760677056086285899049358378705010135538762999425501519954236737840050749623393161241716474878453018433001046305354309306912997627583962733713431924025641826640405988995367730668722003797809593767537823642446050107671555371371745946020516568015853246278972656814718422571350062054320002673369427003417017675886711577109640024175242273597238173068041810019911169796910263102480841350651901006866996242463980543216595459670109159497584891477046144383127645612623500268904660964369193979387635724133944710283635353120976496717292502600969706523121456501055718408406840773521395277381034921853609061290707406661446321016204231184097888631311077465172851622655265387321222101053006333097508402732303878251098143865604014586488968094907897266264714020998086629806239419275709945512437440900215354524611093099741908231312136179684945331599467863146359580104599197099467414543739313310200996981398049560656586970178241087746787766833759787137212190600034818082003780875574898131925166314413010625043748585024322657687929961480294113587479446154038209034334826633572297766217317850572219340388525240975845675105930060116814599065313904461994111850195213280514630525278341583906003842869192915813612127109287189475085541132399221158226416296324900548717016448637755920947108758371281798445986328148180602167448809535585396382663184344593822703862193926119841640653750807448713657344049282694768245437370825949884919391629683980133569912602568436169168969156018647078050811227595880974023681348022622487518054846306921953254499664461211085360410846367012024509062541462977757126568583563681994872540785023733018129539476126862614003088903952625816805186462527505134692502875734347531695281736241313339637068983995654667508463264022685432260235815384053581588792821425553310239057502239829163826253534169569826102753581547639196575555370998757265038636814462399426412725154910845701462005635803321552379948180526351800066640818314413818841543024832766996365096794666386052424059550155445213538074024747469296614568389334194741321652884649471731160587988006189808748002047860962986056011740087707783902327381534253437613866048686128137563551128653519797290735461922005753320493804069033747055985559256168436145146945204406359760469237592511207757428817563908726867896719119411589174229599137726546661180716831793473365329379894129748176880282881196215340726671702519446511383606306334782080112894809956347238184231076960245934357874378750259215369371544413780268978061334767015851620190837538272344148163644488265223307215819837325569169596898324710634235345812096754645912270791683187016495800297752134284099057965802671826211546997719588350291694391596419435389845293256979291446830544123217704230460282046051969538738508356327095740247230509164346344354189922925741784117962684191366234542880043142758997264456788237396354353129465705725133121854835944382068764917664827393833952870065108904580767978879512778752880477699621963366291108085109601003085677330543369359051278146520366068008024586655120029504265505367872399744991316574971966952959094143404829888518633869605961496674370829427907654441808072573722354146792739259492796266229799459341565525207079345168470768236291582766974295423344202926035305674897681479237159887731464990583082360257182026841852702337413522822690912443100522253036397301308813198820598345439013348021902117851516950642849343898677533222907297856134925383937988283296207617684109694247635041030609393491770600193009970672376119414365068851852757178016848333007384571138901626147338730554734667039811246158783025215989217563768667233948632846601991215139651539730742174117470632000622887652812186515874317837097789201538597349948255943500521002857986133680188248040136892573159872948405179050213682814824749909365974825158916923043390815892770487428552144267154778152979588267863236680278972268301759382488637906414735594327123145876814592924980386251966301310601500475349413289773962473511768386417858189978290806202449894481898392406383134731949271105209470843982742986738411748958123507399100229568840124682568245534387420139382208539785182855917425150959313320298103306433852046012610664741838247624568391541382567217265600068920118054130464652494052529410189227964547033804794886483416330666793256868368887925213217779576507407823873691804592261766106556652144036801884954571522585042381766624393084812510287782753006171267447194332963565402214675539878157212906035400088513903416624252856417696648088755910422448136478087874043264986836938393088428640608839094098022332466739656229360082522716368918901092216195011469971281842183676965551716663524261191978310178612794373221756063265227995296914920978490811540843451763940126545968251473603877235075549833402927316582824053799838030097831011583238158927472228571012823281256274587934839801135529972653801052005302810512509309601511842616191243039636674522383852939987080527393797201717387091075536686178603686068187577355474402758720586207462698626213314985406584072282469572037375573425749827903470194214908268615717398997999734295089516484652266465801777308988973025023744716124554205068604923901346688312382482821456781982413389731685728542526437890103798541670507844457682698077460345883116774313631025415377989857050219554695214516127315546336640959432740105024270073744521605227637010979087026402001206115680822496865435720943554321591169666076164893098712232520908713728703245658593578200947177465959079344509509436177750522631274282573326400227080106167537622827940769641474961449908643128888457660004356153918801077957304738594658894563924494295358135811146665755594448660748654987393247470575117442000984347123372004069144585696682429221847719734245107228128345072739530742957175725975302676050369385840880545276801863882450396562433942352566323442305627961225148952395383241937903362942180430185022107119009917369902486338734120531579277582109474120340219186099203330816734263422527728385006236385186300055465287347429911488230843977690949020935556537724031623979172718771889405488356841145225891455100888196564081946048438471296938091542600535760332970437691940849842848233388881136078430328726869769965097426495199130821201352681040413122522696069475518766322113627649826794174869365735723316724480689141985104809196683141503589429862965900341655273189227566698350500645459177796417279446005679064013520905010323224430149768121194359591800625273406854073843431058235280103209370423446129931111354610552072880519603243218378122219147005879335251865157299371289346438635390761284621707876215138768321169979680370283910978433886270019126078153337563658521175914392943958895670239986084389020760797148050768880821367764818391573667364092552900934830197987210916158732852016142112712729462629826730642439536546025632523046811842089686279835858051174721883629576120011395957936056491465233480858057178360643398751910974339660133120720813012410445233442400876665674131825625208814911222451226908023611483310901728931687042140636733261164320184746674096811000962410368808231518453188851852237275912130049273881995785267966615870507824657295082131357945784760920429523203670149410807105682862131144093110257329384917621572951332865588762039024028585571964611952175145143606118897155516545508357007675867541800572018972569877850343395004510113038928018024104112707122374381828188372949082737428288333898005447308532921857637893290112885189430084306554602591098996375635876615403937159413223131512745235004238004786310592253970248155867872848091861655708719958375355529537240957366623314949434468726688250162808434833478257292135618039772907638235434289610733162663489125039947019725210317669102359893617977269411376646234392199096307887288484696380464165826512645355694218641500169683867367607734596092491708453281400364127694124457430047255797811736987434443695431598067495474268269428544141935868632873567026092357423870498330648884666296961522389043480729612272750520455113775733180755727510452146386770391247822037161620742836374778727266249087508697465216223877868190588892765526084512963831137212699633960149098394171253309510715687254314224059263413251450530370509600979868729222807574303396836456397363106933515871515400175779336955004667253473910313670470553241707090630630593675326432012870901632567817459093568115681612522921435056653307794915186144895902537555558253508478046314324317292596567926167797342816122587083908467289593700350542983842781342477994479161469346228782568717962214975506804987217026812704498902121957150575844921489407172990271046101942292570670174184229633101454538025439291298694179774441503316688083497635529334063249644371672582547801964996804252337661929750051922261440900720872318538106281797374106349007736293888733629184792885881400031546519069957343512110651082378645624828081488293038876887364677768503417144312458136599098457431911776332300421985495742561302902664631917199605585276934451299222613094609945272498204433108987545567905800830987812909041055936278171113779329069781271625485366036828323537266992959962593912773066420445313097690700843730724724976416689057909553659140154706648857140383918475936286381105421999174841143253304028136191714327294323736173397094347432396590715694811792860768324109390478658012465919985957167818644638481215485832709324942914900051336592558347610126903881832718568969669022249686719750445876604671418301324395720786604481775712498993787115273822807421747394856500330745796249816313851875266782180443139486839401149009505537510349381681007345383748652008321743976470233261048710849424207041717589679046819080876692185769128238040834305610654394238506566701709962786420584079907713788507574004175357718643552043938173004197664214361097034963860479296642762282128124644786708874254907604351060339371715515917453751821349683713943468573290406443439747852169868938864513168229225625714781493850931017979316624622691768515823621577216169970960927871755251118504692695574938853835410690939031848107699050252771363035217235823791810695454343443942253697910643660208344016515416290856048034238054206628262244021764688587831389024430717334993384389046848708129469303517253408830206278948650506058927953611321654617729978304130885672813886825865002270499878681013114304258303424406531528548788307809176531243365357163064468857799445376675585307238621625514113877163559607257708562118885908031675026320824001952094125611452900209815610151889828514983050344526383995923976411273558215057338378214674706282855903254358552902880989314868038089523432743271452482429529393180791596930866658992690101982423685456361064929735996024126619957700624514281265475426707863220711252392741428884947451721764596295213064521411805035787841543419518512386703296180872302302477843151750613003010587976135678741926088961101630191704524706652979586796290721217193809778723528341118674842403274400295805063155520316539608818844763876211180450560208835331378723753175582311761802711046756661196270493053604341446002713672777393248983186011863862718798926281913723817856348418822099739322238858880895407509402062879511721350713064973263655692208850151886702224509341092273885329966169015412992896249646553677526948739870357199281599774236685368673389868334514730962544056414690666837255194148208360389748813695616232391154094475008346807889400973525605225905393928889198296321705559672347211170844681029331118563381765197349467271348312680353295403380868686318412636914512270927051599054465324311907362988244613562395318423969295764249172080309326193142295659698669519837769099868812242775777984564893882006647040458718434771585963843499765406730590262992536864423069044335799860098647762969753293330130915253634138717979450953861698121994496694896010353861507749668872244588267968974694534815741564479690782405206576228633766445898363091048306256738043198143001614969127435913078376316776600309292030354874824729746963807457442680603026398573378662754970851473771305703709245688696062664954525973172806652743678273822964519002712199659088313719770656863058741536997138791609492057261882514555431720507628475496243457278977018450449870177911929493419914534577830757719661810813566014089025715533361730742411785350932418513046476429092052945483564051123170971178453371611781574651337060694055089677942268039067165852091647765044664624509863897012551628595706407296589525872582341794968422331863951238685134538379126773388468828722068661665962516605357719081850396618290049126446051740292490345626765201819849316426193642874106058044358980582614135995517218911878325638092133392363407874688074331302265134424622175831027911519335042569531048111840388986427467705811860451583128938761957797250610331490174220196580887908976588966914254228771103616879076012964822390538939318126913563788768034601774844480243341329138834595158550130153324913540568489201113281975178507392844756996620321898026918842413368472158938250066345971571860045958996386968227740703081734625710240221554823849331064881707596407094167991939042942777296093376914648966778523837408575279063778508430970548359216978314902276353728247160805062051751164163013445047573567077571137883891043535535131505492571188468882872759601953112977152177906440341279850336455378063843895320109415524858520829897574353963746364205726979897902097362923110774158153638923817608531760410944199185591760881891307403990566300789642807308053306995741981945108516307555733895710742100225431234911590638321091265328324758077673839487380185883599606277114871174446009918474376695071087578341872220672308528396916535274295785679973797163310794187338692858718198072759942015486478933242198443649392118887506678639339318832648045884813125763452455737417607840856632363819390993256938309951698606657142120813219487587238618700288237152063535048051048943801216164093154742568427955968197564395100436667195450208206861469410537491716254355420083967230082682092424939154779903715198986425937124087230600848171587164328981508002782502860555746747630294738984954085047932161901403568286931076049707884784613673329161152962580323773150133351326234008878680169220685214410098925287498727299150864004600967577774272667434655341671121984410685511582287780061415903610909533043970850755691487044876511369841607297121256706705329487658589711827802121840582743168114269589369291157662249465315794915072656969804985809925713570121289955085488956431917273110380095823191814642978847048421088864611380976998010994113914847845403451522502676897961587744672571964533580442129176615586832414874814585491116558491191613013651785083471948520701238288111905146587232718517385659646613686752018259807966775190036638721383929123168194163326396710268483596080614973568752120248585670759931247367852034983061076502342385120172741358447924709161669784512409526631057699701979651240515315694596547951821820650571033463943576780946363007800350440299362054111128992521144189300222172663922537460693092814477187565777624841103451857334508946479291512551396484014792881516692386843275182326379635411970204960055364153495194752641072957407155338935125581164095847127357835206210598841905883309296053272559601272299679877837871493747342340932853095471401436918865458911736031090168368824011099078191324739916370274418577343353635000004239454137880271152025549465233179748234496188653488086251400739043976527785512266932421717333888289443483708425139336782050160956868562917584434370458187593344680589828180176390290440906139466997305273531466319737729877420198963223773180664473301499481872052971995677495777704113380280595808118443789224536131936935727634822750961609131488908347052950389812152883111786921042891460579555082116577671025114802894844958274765613792309341875261319217492695382025701525662186402904956008435785310054834169785334509728017377594206864093666001716161040977245805993603894052521712159203497568218053622812044756780109274008894408017562077094417032617865196222143766047231942885640996008165535043429929201926016721796368877507731339965799399440911014590813755727559189824226476702499363888225727358269965753428554691099396222821676607332598688991137382384387559616409410680675921701803688253801116850861605208403781592897383986489941764131160169734107610057680637791513432781288623045535649118930148719930256313145487840326131842617719142392276603425970059361327261833927768743216070915738048937748900339611455919574242198545412512887747212487241954497732608701268984426844518940371047115579562086244606731516023194252447277153387877111719154643723018338130888914523032799802114371946783812790190052385358533095353839589546271697143196706454806409674912829171268901531099320907832217304253421783470842657862259141921759709845033238375605098698030037844783789231101066937284809056107421295179398752780854822328699398616972349553396890717100911994840359363226131403329157962597627730847475893196541916780804737174213785478032044799657837178410145181431760333467792504612673206013515328067276614877821140850489269179614798728032277798399731125141669817044587215577061701017173955836314744826761999146547419563173733371638448395053174689343135890273605883137183427272768899413694037445117877865975465642642612598165923839401085999536511387114133871367427478718886895813957126515815048862110377443847422312100010599449279578473681190241523284019117470327676051923486617132068861833655258716298521983251874593869558081542821566114154244089323709392212367574818370449281062609024333172631516109355459709798698548036113089476203837235063088533193243197295873836583880475683640382612461552567513975236258744655243025333548295203588962413945863374173989635930818417268589516145999514494557528582831953311259340000103996216669180856201402773464884232178774996920289896543440856221317418216314192667825901416876203717523797448911544397223028403562778057079927709446685660833112703949299941965030278448569928084496398898105391947033837718105537758521888809150505687912258995034027457838522089953308083695585061755456526048197348131024382088126033724751549679184411877229989655568463413057953090980972164560244072081129431529925704082658934033769543245053182037553807025145057492668379990133738528876282891216258050990727791392393826220662343483239195314896386465933894251225336617239911108987177848054968257024870095135558993861031069226597766362414664501808882966096937900111056817670669549934325390755825653339460390594232829091220116997180708530377141737231764653434717588855183616722040221468425320196974522368491339166222468498639983423181504812444958129378284480515444871237967451964209882230166495881804216157392541524945952521379750639088517002488927249642970390249259017346789388982739277499581149753254721680069555117168102434867302972111219072840413773994538383629962633838809752355219971127655721533054821878627384580824670123623134373072030725286355797547281427809103592540194127926183807116453540403343656063919402490235870927230799825625800459125010774659699687737331070074005608493534919382465255780778659737114555314296905227869600542810304860237532340005834232482599415627790251356793324777495495938706137149177228618829268604860846049396944786383551994093656920278673036789913984877869153094022892128936570699592783545254058942814045823791881904331631082959770642156283608834165374356273507513806859999733909201640556558369434427017607775995112557783859447873365579570046425225227889547906412646084076183468043827481269895318336356735413593373027105561064895259501269684684447541288312520043127774944190810268579156427769911622374573343973088506898627977967846142005148497700460236884943430197950047328653002052186520496142284902896738403525077924675409928587466427444568959841637307236998584944584961835639173556374236330973742707672440595017259840590399156648563970309995922462489819701024080630166838574904493188905602598496996082522166949143139206642769591403981578582541764197928097091988040186262720563014178478813892618662411292745393481810586065094889055070370891043742510150309850708735966852499979774319548098221086652551786718898944251269775389571717404097327844955628804945108159152985534845001944124386380663030079676085894600730759777806428131170794128072903776043348742286109833466305600667643313332306800607645054249881975541465848335867820334962147822718764897513584128358652743924228714040116534008190072048781509416430900791603727957945123344655884156142725871733591117554579718810441072367764832070009195665150015084527215906848124360670946130402483443019612276720290179032281162807746710807185147671869276459210276528388311506286122104942754520706387065978119527207294059420948700576713670240629015939347988809453722206570538328904056512409269138897411223929115467931243615408780092276654180062491525042043029468243403350974416957691761613854814472788553319046175650092076590114979332939422464678561594513521129628518919534169895958318212806747984534061221534589222860106605837043126322665812863261426927718741046289745615962329374980874414682177314558985156403452417628744458441939153018693757655926368895846072123302125104904619682756073829237175750120404717462203500441493658488703222446937690687887926747826961369702682462294631448051007609582909820418322661721194496363370546041399648602417786262824112868421263041840498640844719693546652138698841310104754315210861151367343155848093041564701314047402495886971685788021045822913682442068986980128985372614569771746085723304206294753732889975622246612151229453189898776595500127649392016535566738092192699823079867691747493427594586204509666749149928353567335308797467916178268343282467121528547524937033285620161376191882044012733904238080035143647477354581737620502373367151063473430872598260731007249786933958191369270026604716852149461030653482937684810158894367601129978038031869156664015182570939191370297274500369044508079244327379028739539650752754309740141497227215956672361582902924914037762150670460758429894772665424971664191926890624386139483461788836566192630790261686444359242614664562864435938120934157417115884177338611735902965353288935099060914958627523521280390123652011680018082549900440682081512788184079801876933714246763365477857817763120241792075207536826182307627149466722152991597247301452156136789991162432937567028658075977427132812483214697902558721634205147438665127386429580674651622177788108171950453292967378131509847326250972339661740750918326552747870651252932846340945815562454416925225383635221472513143299676106191468732063027241161638943636998871544550155389514432433853820187679029517672079486506984951979009418753234297031458925202786422464803123356588439084512057601778947301523059385193149165077550159280500170779844281119097786201344382121727115498258831648756207273865371558361884924353879512888572479329503839501930118707284160945205506450550552138496272845871789565629269859188254767187425473055854734900676401824613250012309114022751739917747089611710427861154314875527118200270159412889896744407338931560885913066121456386990906629294801963430768111896529739152224734199828789579622191856478546656555137825246568000961228077595320269887220762545540113877189911164266392034372530091281062130133683852906582440102250382338420353547751482019400810420119952748538371050286337561048148168542565928800783840515312405254532222644885503244142377485048235887532586764927341069656101652463744080381963400928063656796648094080571643617653777388134202490262711540901952306225188170993773270190470601621539013096661727499001551598853420845339314163477560599617040967056533024043045273075791236485747743767319160128850765555202984295686286366030569147121080231248384025150962882972612126135434042003059146461380831220816920861743841190061409775157375925259246068402272562888591895454252942324402237551959176185903776163448924086722082919868684908876943056495718683541219148295441219924376469307468228356823868856567448518154109339186758240973178235829052543220864806854760494191500610522221343458186611158873730826516935310585467419763698701434342932175240906580181821468146859867136920091872913296421401280347387765709710114768092805733904107752130979482540216149971723397298349761088749342993972455943706497266077318652744053537136281846672565071888122043668865243092320692993389056288639846507674819450537273398526160994455497397775581065573002690881171861157469627859611747644880307921033737978398542951311967389583479451626380884250547737538503904268629949768713255769791901446950009514294588126193312264096490099854714288766520214029017785871856186800651052392767396942642013972076405715398902342615733742966570273406121815099633030612792139827378928623307150267614318985708816587300610407686567799308304900217350091634266848553136525105115708409197869994896668052599606898970233308687986425489636508445659333264685792977198779724843699544022709010994330102292978476320187374234995872697218329718030691136699442453232094456706345457525544418051800318162922145550190736269542754776443376995278789524149883486651344171389817306449360787924460005883085134425823419611074212675538673512238211074763169221897631859558474812198207991362191709370199201949891227489618748740258398558391896768963907916704546786643703120695444570904613268921083315232642753856017495726583363104054341247140450647081244550399866811146061570892373479332934917822399098803319617684269253900850502562758086970314488550837091381060516189894189162489921717310576412650584279037669841771793293390492002425870298568482187966631022506548856309900191440168283957462932733099499204398567775937670373514728829032727873622694178884258428726282755354174499736111302171232492957134214706594888324484851090971563152622447356606491791486777979822674017552707673162773247441044236043937798825053665349205935401267559850000027124488668785875634435450925152120725179845036069902313862611273527705812699655819932516572433208376684861635329313234155626841750166422707710366054983249463926891072539960398208584858087583578756995176800614552507047491509012777170149920029294169459684256797984979061255527175413322679595634742831701872815285574237487816967133871499303818034025980594813570236521485089109924574842621082010392112860911531648288559850666450480360435139238985294460864237419684341842027200320764753983703528344885616067877149852191728970638602465176157229794833974130157845079528612453298775394190260029793125209199257155219612866939078018684359632033964296514461873043832226009091447726025046042033735298746776448103294802045720437961939307380232574757015744563616365156520676587729478655721394422861023420251483881943156644300237719110080105549762343038548951787673879210824334933831602777720363248779306039266377815758408877162453119965399292026174244627564294265769176871748501079445998313701674126266580600107174169989979628130357205273641324937862603729782193277289308169699418050535158605988580973402265539506384281930166714903797593174096747154210767299721979201697320862622442447108194448185877275071172328000254129208664745898792378299303993057942860875848589304121897803629698519402001970689709118412209682659864625517612030861758642247186817336101256231652686460551930659203573761372128103699915714966960086293526985556873678973546794382916046601777591873051507497880550283833347782751888873268206706815404114590329140634334893163330986388578311673503675570833660305308912868107678411335901648919662549776763692237861102134151640941497432449325316055514592517892684487784753739590728084058533198979774825836052412981389594518337085453875065653226051858923974597297684682314847359297483061108375620149076280345579086052981296694024973280100063607186466849749725978377308509088257894702927904628993254807472501734077426017830215975976080078719795957525846001705461268606838399945864310968213234121370406382809006368294427924728746100955400740854568170575367540717251941104461827089623983715335307327704592878390672282830497369803391674147272648192172745029433406899435729594543463435237151590900303246119638335865908709517581007083155224177637833449391056272662657736591039436856073522027825338205300746406524844186858935832414706575988263092250132199161156960212485161530038301696168047720283816363334280363470600278820202851954217757758070797736193516168569849625325583858695742629027330759995708784069869706187155373081052390603374206007951716849757311285056276344522271431364408190246916841216043992263891798075120751012104561092537111868854200503690383296450337550530761289004710998360606652086284068742076392528224669874963739727015871858575775397366415446069406650804461350231710797577882308474962103737295238886500281752646083318085980256441672609860405607718578901257572626925328537148045190222203301414288572523189415396815140432833271301468268489842609737219892848022161793269332698890002872759355732695336771759581837949837790263151029172046610373200026862881898114550993441544967364600571014513076646972919079744739828695852799490331855622298248256175019344364108268214891051150947677135443318528226280682228019983047613244293723188531537329985280441664100478158335017687084873627979368290024853189019231506705963443866064155396860007176283370782929252700922583184313527545381686001452867101831723505639301977050750043582236591688282460581485531171117658621608843930618217059599176165284687099396848130668647340429260305149917219166720044648265831048363311007909201314709735674182398913661963742506051743652030822790345786618563555292685376806369777661361329405232264671323460520183042945785452230976667774940558411901840005844157707089678792728245082506225997984541195537337241748393812778938815415186655825221964518293472864594491219158900182661513687321434290899743867094383572884013049771700357248583303759773271260286706387875388947016848059658575444345091089120558118838264028989686758421896351548143312814685591487383061045564045625023069560196723625153361623379984712326088108203285694138426182390900139910281579200911214269096926781871898852425016871989026622872264719964537242526760707078615852488729366599719827622890824834840046612095940524933759215605195363984794309832926701063412235141614360652879390597738737299755336522917027998321503200264741999080010926891405735345012046768732633414515457408598808442718653357963998927028409455171391303134419704030251826597829289147043166131028563953636089958742421373904820103063658328674224185542722985938844914670898705401440332909980149252172881967825241626153864141012173093918676683122286270444875668563010183702026049735013020809917699558197605470174728578013958255637704149729607835894829895371928898879851472286924860506902911172857906914767502838759817661127506892037807049795574665635286624521849105617457131059716123381515654209592594379535096818628315225543475899799796137823212509280414488636942654951435802389039124307047689099131676124710367001191589125981658518933851284868193202975910580381357914685156236673114777612760319118394504997706651835834533297647442479809802758984730982036972863188658222687504103546342168888048366804973117104525410007157218954382003202235022105521232550160738326480361754704152611135008206213140932599355184558486427701652195067067590321972481732852529086829893806547603581166894802194000693332198239797040641674955051602172388382720345043662219524401772997434054080024573918561026419944936422930140768533961021032922313323556734481946438688616418254434856429371603603397945399302266302127789410050835752749910790152852240724396058993017009240525444423869286302271417116730455409147393055730844913094973276196393340621392257941131339024854116802281130193155389264651937497156601081610707682277849275130384556453925701747942675375129467347806792587145855704329767952351195314712199737670523226787810603624498279299575380063628616233742185633771925260186368861048998885626181544243606243818790564719483829518490772511145557947451299411589759320147614115196995405765919609283278595093482754002493168237141850131618596041691745278895193330207063104751729331226595062270306212582965456232478798918371010842923421404121141869230280673935578168306547798523282108554365708756826672565208724946445210884143557603658424429557549532237840296693309033168279043158431192542977538330008793230926573026690473285176637741016501991771977036507733097495650820824524058153457783144102926503440436182353711706158985211632075376949166882036585313569304601147659241538840521150772605782877433559497156738476623736644902578054984680850225608493761503664839584569557557260661973006573859906141442343315352807781819866604857236710788823012289593891001796021501029269763301970083750707911644679551476589095712697672739276091079148320381665914282250779317553737044237523670673300400975766211078562509522928719842648496708697790599754059998851137594600416647218188891478997618732851192308327913860061674668686123661795203285508491368096298887247652299626429393448454817524214937813932032117350762148052906547328251967951761156763704529323895987933874174065122506994800795864514334417970995878887306219799483050916573845840762097376325779116548305878020008457442111031907605568492233303858497743596730380532822858394739124940633993264848753509822099230740873652726826293184024415254252332257946384739913237997612904058176877210268641166953487310755825766187096009354275116930524360349580144964572858114210604095570876290882934230367557274457671566766210363797797396731914652588580524687749732971571193939146549103465857214083817686729364145599345462074505244264966735746207819427268272473018811292577369833575581460144084910478215689049001810424415631890615878036229690821123084237562363150980709480458863360367934048371684230180922248153794803782841493478841108516099682960446476565083022076425520211235897387482798346519043817836987273467579355063042964766283519301372347323960225117310273379243874430164102908434323879251437465975365685907776602776529929394273773188655483149315589431523029125945503656131206550112422403053575068123851137375836966118167426993425481994319708428393842302012002065532405453140818543466879555478448971274994714927326875495703126359619280925256153312262951326438151126663893179476275587360783758011758329256794390441856226162450583861839790066464485873918182393941672454133021715352737132734719917853253946506961772359061203802272497791302371706044030013296957218461499608704386795246103653251029369067128364880839112292655567275006638635937470276628466502420560281529351088589014292603007005778440112815414286258967922861902905724060823813235482248171262270859729077178825743367927216362215109298042633406375715271222697435957746874146751562717877700439953776426821148924371653990445998270177678138402430853990341398069749930557929430270876793415598829963252325903003885456751716648497613147480593123521471937685721058817221117141759893570616302763697490821617655508240148812142465200754358025615942870693308839975329202257188797040104995535622818643534357570582747288555770321626825427251342631023959858059164283567021329193898877631556833045378870255935921120190057499514771526940589976284346117880207790668694288659775035174788992139600772845347988032048365498643437916006953088190017091975056878069622447186091713146539815600001597645596228583365248243086807187232231578572845040080790626909698578020253741881956782901135854951295660909217033108157897837573567055034535867106553878846364021629610579828719122056062583391575029189209390792727911076984552889663055383358591521937582712145455017686997389771333158599488057675409281340679929721093090212204111213316928380216136455278978888283651463521613853034857757516958684612280825310101905870229163880540381675947557802859734697912563285299954636929532579882969556845210065638491946508677876777072846638825509952190311370905212762130178057344717668321730552752564315542611677673597312464397078140388970822578015475568762482353619551844319563879921153990200738026426284078959089625092913053861241475596350919738945631733262683758641665408444243859361326504993719854730390581723542939681991386899828140966360110460200889584214572815691890510784711192905488937307095174874753308274858653664160940429785560453385584154297788712378022780960057408532815700561332823622646838360746424303095343815621521825645554907578035071677123294132842809364031928450911805596104227915212245943314947067095530739888965233343311918169664813020772506890763129204736792612319457680772434121177495326855033745740365500019409752704048422564751533177659750277533615619011261771576731891045629706037619256496905863837614722776389699675996393937009827136919072934217839894726439633761705544114615624457388097230012277635510218777158316161527816152672171513529421109406171506284402258744964592426706002447647152876668942978465200667115419113346902650700225187743822650245493736169505365378167043811961506857434364509645644231104163821999522166147344586467458729577157298507322048619170870357124157796770908701475117547291988642474604112852382460229634494484322285086439303080428529195884656560678719413963470459063271392189572572317659586673686783923090211038336281702841799016311302729520667667912448896056744136983583685344976653214928897956749779789611476152925286484820826754163990034807770601977910855399075273956800946319871802783296856846748680333656312575199407416157799243429641857447199902075277710309079029998972320252976140237703144588424492891132882752485962977815843271403577456628410848641016978844335426032690189488446371197178095361906587839609834914873052981647708364829725042808021853535873309944323570088793438272500954429895683453682493474716179581282230176473367897810996653985123307274188972415110826543613088803500048690759888203054549788328880011152632838712336275704510598785475725490139045830734316058563887002894418202437767891459841265567782864329614590303561099647151705955928248194765239249135961984509638536204731057006127378033605099594601786194127733059851744404222998220069212323736974625654860488095096600700945250096429501618526318628140231591417143463602566571343224629957037940067068256187037686889765963897650882788936822317130299321642680981063041068497330415391478142564132258705109132256122557163171048187707007314029217871120212681792682323259796548911446609249437640781339783476743140893619984477315337707598674554360370011873121712879227420435744037279802119620667185553212816986013483592366536205547863161095142100905147092446368200634379845340721064926901117345831752138494168439893322808349698124563085725658706917078865041773143835186056023726264922543609277603343956065590339734813782302210974579048511984918150176043410495829965044399438295389483892648988439207838890979180522703558814012187308292899112240301176255319924170512794212632631782893902611069473139704723050502660494227841770815161599266406043449472927085257529264933924614749655536271203498416940015417849832091821018238796370943766482274410631518073367931391461742170159667215595512706211876177329769870658165611115086044447575918284279311051235828464403100655305885345627640231034356515889641689070498393939022302491309457351664157882108580584467329398545728592341891740071648971126500481102749610419747206683635019562363776464354717371477071353122690549753304940611698046128871599819554997947806026206358232889111982588038720712926351007340834257149612564237369473230991650213046712086918228774393152412959433430014984475070365392112271895234928121214178070149252479449631012065927900791897709501207647551561701708192316405113546550404602820178813919353821085384913688746488443363045917586468414411217346667354900646806862484243499670627918730045932580005087675353838091781705563951252434649905188441963917844084047445560473740925079839218222328649606455713211503866222302641055209327700704149815234624332145310811016656538808782713576756766214348851064794763862921595148923225067754427331071587297888970738026461902184192326403955673672148704033226690127776188320184262039044672587686489802824124713652709380067412734089580102569465701094098364241496011616796473769467937844658831264123627991747218397931909376972521457804351177023253924076910161163263983867996513789281797835312170236632013905881724311615451686157785658868524114886806803516809346206871471096528778246082088138630374959128892462855623321813207409267003696698768889201606967115676185708324413513237866904372102026658797651812270007696665695808769417899348982041369819903795877297156985364590057315740416660960492267375793974550557633019933157966525068909282127482746919397437972852483527726873701089982942319317552482233658763023108440537837437909317253188658232144414154858455728616183484004632222665957623089552506258848030164042461879509862186179237626502107749767267049679601304185621823359841596890371330784852061541995247659355922177491515354252208498333737252557310035809281628685867966392909714294893348618707974620147349684437606086235632584606756260755794219819690937476109648986841006359566588666218945422027238794300120254000558292905811699845534375044214712285996635038259702783598379169427743941904118633327458926913143936212012857808550534539284436146917170067862915677450351709997221422570284512534195887168225070263332434921915094473941863486624694343133726720632459368630692583065417769494929588410756713681261458030828917821386393641594788637881822499341794663732030600789250511025160623771153103686584680226785176566172772210690432433979406449315662823600329539820704683797402494834701189604156165321492078118371924664990024555139291977711228509690822432589531951528618213227241661377740654480141658924569663188105859948005014732254937558944121983953465038651659866991203504051070951162921320394838655657763870562960991042766575913726282167917035744071848566963182699578326786706599940682187080885683099363852317401507518190113336152343481148182702587188957565742009841160730858332808771380835964627214004921338768027062827201709609027404230817757577999947422708092981069721741814853597660465616437348074604956984624906447074687084466537314030481265555037249235127872094449527967689937138788125165676072573895701921952911701435030974488323254148813490948160691089899507685561384883599629031285676041311139299391883873894348240529512506897387591332387807482936200304121676082920523118216033553180520174217581460607748799256076537470544809879191780442005008559530120680664811521168481553061405130366527135425060028878400889434372477852218380530245486948123522841651723324385173746740371849759021301417932578318950459709938040194063121917554675561066204352053982446414025155302472402475709762697049189830932545406993510605815675617932764492527984441914852502469063214049203396262278136738643711114340150901147130378474875871626267238079613481990888488445963547411937792857349847749723175656652798376139523322368653764764374636382723918523381983593970189194941561040098873548229250363206122856101990953656711875294839777395973896968309580908951645579791048064099185885680662899096951707682829874345166443759348261107093237503060271776364620319729250218549547535970876379151647330091136550369489164905834496357929031182090341458955641194803770091129454390556943680952372194449467207772701626082240923039852411871429333959466609235849166520754590003588056875698967086172032427399748056729627815525555925301687703808599348809650260305560680584766920675612857039478879380726497349941854175395082072719215801812706147298146899616361536053057970296388494766108657829428260475786538114571844103186975459581966291106527780612041138806071561338132315020158951829771063102505444992492421448297478100948172760044781276385030643866108417423456002809379859484520664459390391132140489496510873965344197912420591470669730993490067951416783317731414508440966320111322418260944157643453612701651872519154894156835344152363617813570091825334046981373134594903391783835416817776917527269219644121777087391425265533884760700944355657996130423411119329058633759479218746413161082909257609633245357204207962925173113843218748469829462136796560641053902621239347475524660653196317442960742695830453888312328274762142785708916840031057606960874332921067876328238803571361780993079648660977737631787890142761884115240423934234140634186671649885706911230308233699454676306480830999531760335698083732960738484075084551450618498948201706325314428891994652852194838312004630491494728929960506363213166400858423357584522364943881597480865372336710528393894448067816979243433468220492356440304014096114340789562553323422866098635859463269070177239093958050212644131097612585145431497529685888600650883503498258621636506592000424680056201325064927238335671427152619753577258889430056011493750652977034603277963555606322094502076161946391368448563973974557098486295137177804172674699856738437484573292534420883725635031176617220748184953728271476647545657217474972781690299328601687741079255944954001707802607280657892082849859850128951343055374415872206717114056823065219258704704051038634573095951400561298219385972281427026765476261233739639733690621655921677141351776873488068288049266434294130247509130353364442235546001730711711536615274332468272762199990760554680503329971994391313148212466306018014842340798334345416428759361356760562981484818203181540648776675113799237988008398217036764422636740893390750711309721402597196524393099923226690496318813772712958242871001969311180408224263354286919064003759969831577616674032452256096731623660034706261206156801155970759388252075516785788674789206275643802454624026642372286394927091865430878795837734198672268189689645013907133900605615550079954440785562648448425647541883014707193662819239690385643077780436962249281697406228359938692387844021466909906337411318265334164217829026378665826698199595923842390833756565449149025482656689743466948509110577293940162537218047521150708670798717707056260311006963191752488078451872769513377842309059647699629953589535592533517589013818928211706791335817250180183170594254700849035553043169336450819027409027635169936841963177449967325196979093029137569580129717092305042857291476962021595864773480501223673315043194667954356673656521606505715417602761961626733752153682800293644488505824476440300889564976341549176127453343265373761713112145688498532567317031764631041773462778029740152030256481172552286572586213404394953448739473304928508256803874372253351037177790120154304540908700288100961466572398301967830260799930318926757405060996341277341188073172669508232269270978794884013525352663738178489810034791838945830649365128229486897035593148131606403578821118327341949312336657313296127813384239911527404245238768967591098976930409945888691765678707770289871542324258053953706018142943691101783267954595448997483148020800482320355682460824336653080451260329031062957146149390517658899312193433124961165943192805159761390056867108581930365875001918753712989497624241677619166983786644331346586807433069406185180622535063655322881083897289814802901254668778412002770105108022113322294369399893886427804863462925053494214663770107364340000020647079065933697663778599422732418165509914021406092615026174177397234649694727060947445543682824181884482408993738384753146831266490274111915789432241493163325824572315247358253038904329561130262070185665848656936009295227140843400797590174507259309528786884130046980621372889402085783404613429243827350340971811059318570418996910336293990903597580835573358067673293459860051630451644774035814554708332490131587472559109391276436493105868919314386912959868955034287536597857776290367472180585759019485242233053940036173185912060338609188297986887646458854114931081164134625360529128693446621616381226909061215928073895991020297249419417851754813676874838087582824694818188370289997747021713141567284190095666823573291674950166935460011040008241355432976063475141188302637969634616750968885958687937336171744793570904296568859499340868867174375988110045751081343187206177825914176540345546189411081425494586612021045046858248067451351532518253266555266869395726171025488347941411252613861951982517705045437777980745314923980110240098548009541779714692301715278445737814839546370908934160323026543567717637363062255852144483427321433798034195727384624335490671386300415411572455918443678920476524989508544145293289326547149338233287469799754528785957389579735796908678934397869067806193373235607441020333385661105502855188328609633398747430243377784698752422962713782869729343955357664837560186398867905524519287464308806656897942748186076526771194779043321914494082450856344312594174888559490275782188364627802727328971692351139179469754174178286471686086690664083924981351731933471827906198468729387332432855969658129730790298793142829359196741300444534439312711989843199544649248740164394822396074318473939660195921915665543000864370718640369897309530370119637531694781956373267157086337197291676173476646732206446087334761290320442213037922190331653397402800004424380991712491162033645543998843101445449315055504885843913288165898624736446650962464799479512576678371009580220758363815387885470514305232952866051343936825612219387492207651864972669688920137627567747106006211924321340802824935370720476137917124274926414741466873505600567393393518024465069582516107967360546378249154150012982674489253495244481333822878596297163249519584626661012063369876523733312959775569164534812948574207832586191876502449966000770366046919858607760467603039421821792399359425452301351080397129854188586355339455593432992753118622209599025207693735568017258998282749547402306014685799875539817924949464387098926179622179291675262432861369521199302515656165330020525543044120371985867264756307991518025799134259743070810317741776201389383926147203711547815380855052982351721778499669512953435060517267828590552548712692710798231496623138010997393775415042341274004607438567612216806429816320674709371430558245178628669088552929779637351347406392373207391601270341585828726422166917795136444805097229104814448570759981530024255306846968029801738902203863530891909067442989691979860594557486091986753488071922790612860229295429313877574894194001886674500058301145506877542611220941125475801633504585300574834046748046749651125962749337404309029956348870744968624860766500085806588830335598063428468001222937572807057226146798460936309704875171804208732912525573466476953488973975079882143897048220214261096270973547951411993209776628773080184521162562961959665296350038486526837367051556217558549874452742473673466506156875154222102410494315302870671570374721039429310409284564670043167681958921524586512529301450776184041772252955175609546570980055131918536010320668441023839457701652601037363418712648755402117836570664447541723439777474422757214607436735502001932439671831565690497486029123966603399077661795789321077845345271256861725055734367177938370691280784832184625063799422595885413764742914456819430231392853089563001674975802930666416260012833739776316205823350787048616596061221590149448816032693178170110167260006517927204097684975384204957979637423347351957664991093597922682040176643527194099586337842977259593466283153242051679643309095822075699466870259531282501242083801087670072671903437956732437548856813213146390187891350562415276317715458131753235749565019545459287316872314543056274318476642791532294825986744228452403952788314689270759127400437048036174185373882747202904008438389542380740460749195470513655484439245759671401261122077357645706685903009251743197679282089638868948028118098133361325597537661968936548514531447741744987960758717138724810896718247523459357029664125140337949547994150759907114234297140091427761598636274047090081748434812439080240764005784907119981249144820425590665014016268643539316781287701834865964969615465831608931601586420676585524023596005646864313127970712833042299308438685658331691904702481665325413023463688355002088154553509758527000539795946186310515735333910443838964948596767119126169379003557906122029189301329547496465996514426236203275221238031768428868776709855117061869166686680545386960166374524033698874588484893311779342412707955574932192115875227208696901346833869275576254253730574344026732839872118856140101080818069085242800155977140509890852175872950908246127794802781745123972541726149359746553341794175148227403858577065089447583698026606876402013925877006199622085673453661118852607815230059573831482952024316535686822296227958818582134912376592422195823817565264394422494850293819518368428118765032645226655137081630739224372234935983004320820481846447352711999809546448819123023081842232199274543459933581248131838828558633572492065280534910310463448147654381411617294539379855849662601230917164948225315961512893133941795734379240814178906085832486488791705759224499747922005081099117553810257413012503376713056782549535367297159433071552748782118198004287973501215526925354644170656411062209267031051515638768288334328832229937150607148474382979806018699568015179338993085927247611429497565492842296220739181530547673922073520890866121231640793546429908311912321358350365331690996858605174191001800904252066212792556916751824956964244956116399905683897658961684101824033234434123452381766862873527174946828671475631528602584722238443452364168420027741571758448282880057062262872053446143369988834033848246052257712771157860093130915414616937815359632683283372585541723581343586929735873847385469041535197218704413758519294439237747198756742283400766729915020954496450896228813737326463906713117648168832202164589908708734949282054459803485878029827855158348678956903234286911576242245638562954536978456946108325339492739913296613182704559160461087430748401784753974970946139592908647264113730243050229823501151422544697734867009691611242525455517539357126994545193003081184136483452262935826934976126817512460203996140766976369638599421221304904609946544430398031530678774981594735579799983488154625819389886758454893450117142167481924477237729312925530020645581374953886847083579626856711621340243300911049311124311072952943251753728598669403572731380637409611200665428198569596509274213431705195102589728186331516690831030206197111684158083234596960023429512327508377538037890069242800010850261423245593342201006416187092741997113433784825215016331729351029285643443535042252854814474860282534893004408074608223498083817035312347588592716881581513054865497377230593702689779288760208661364313750965229639814780443854067887280344980500316912614497206656999899359401192550446721498686137453498562116616669180345317841545134783039630999080686511902483855406891839976682431098001015258517136015371338446913083003884975510040147231839603354977405075798084710053852193929026764106859352136208862497032957928113410613699177362918115869519539402414098657650093965985663290383257741535602539685796547809955826107247385490611772571561044682403713668796737466400247720687079547435782024056968631787156104857003845054421563542139422687596880221573987178953117203895913254432995133053135081436688871317839406733560983522175699478395288775987929422271295608618728338128599845051217217250742502280371586462914246456283857050717510869556517258731384481513164042188878957644226823309200815427499088378059399942404970063643931068687159575769731769758183022268091306055438506650285632315469885053116545254103353324763985489834671023003660037383632043210914367814804628798794141675799624334078315276109585625178900162551302486684854190550477108315852430991813581828176637642362296808243316941156747284614839465460007920166208764410300767836858855042921355161516004149790132833175484725051506578518511748838565448989580590597673512993793944020053423767615019329140314383658182786427657520790123223272454333066625784302322755478044154233739595962945547730519219541390518478929579614655782038250672638757179900101033931656972786363127575484047178208925595914463559379459647735723946680693854539662202562392041741453035116075534375936561066385326712344386319619425139500550475832234193253237448239287166782252624199536272694167711665354382685683642437194071628091616178372775504105210996402357885405236933754363677406776899635307488366614913793321080032562202515373543938110414129216624936843450599382155436784891801440392380094323548078506604368897912651774297425612796689322073096049887797637048417417300306135969614503673997425281795403119462698584544781611478519656119818872588778053113881750808775942716450952287584366233691431798405854155149103470292191057210054454177325510684817265623502272748299927224428585588644469966695230322641480165156326794814906082388116711324310243277557780709249707633828736379980340809962038814556540293096824677961279915137819457501621403576044729651341451412895994728171959219235725152641390625798039316768233494415722639394036888272870306897776521712444089539206165714031855425457463065266052363437637831469185981072137854138787622240294092657420181530488130254638738370087330842071985164477865494826084573171261338267620411492890764104173387397376253741192184438170012743289223330430598382560496323062447452173942747365843872153743085627692668052047590537145535145233042309597652011228290376193406539916318328422865068537447135117747014050866781303925961667120567464591586735124865959361013842196915025108423836681178170588653992398169010104670882163736342462297003869177070081428939448689616907260005456751940597514798029048500726302648201858101346872829102092440962088484212298501257335444112542710205647412785588858212938110803538093648715380181596870886153823074124342641157922676589671982441650879047388222687303813761393039238057488489648302950240281059001895608542907627284971346858727436567596484419713530398692719167850194076423240238840556488040377417160004616331550703095368565570578596170305503665409296429108528802708017345621473029865972343358312464703723042060342431885637050016263345156647621681094073592734747856056172371991267975973609388252989256307153612666533087644635902940299956509741161339757661279746852886602197712914677938849981473851481214209636905847885153382790240669292906484535342357795275299501356182966503421321611690053214030230676236236780431912115935327919319667530889184349215072904627094753838707826037301904887214861406945535196582681953624460089706250280960773597590512084627234014898052263978689153772557019188123354576599492174968289592090295533976111633726971335585094641857969309701308653061805747603351672567000286450174960986996104360192370235425970013382159511586065730119603373353302866920073100274145947224125457416093673049112214283884355352336493725498992559941486935979447864318621254905529468050649155768761485227757526425892511968981622238956339602840858173779911207736936442012262810076391668105443550065869941075130693638440571760623400007052239527005654419151213809332832506497890650846446712754366794429068759837765078474116517386739362907254602999336967923735989810170642710945991896368766573738769487055659261361772280547294228426687382332778627840214257316737410559428801093788580672773005237498544425690829771183587698726095639445033090197740065638932374498954091312070891301487128776211512593327795223302521368508110583833658596103101882234251794849254395456006731049048359101375283189002025410596232322131011139694747355566705323736405404895243918041604756719111295102253240305216542689686929119284662661420615254178506279332387696801745846991081120647151773750976392619387978011682774186736127100855603605669727047698623303841113597427037197984771579663625529652437478035127136521643919365960266476326701032031421015492387702339797899852090000940650576965607411695507196042671805519773985440797710877736651517887895384028217087902972980970657206408025914256977329344858571932935335462904728861259206594591357172711916527070982650192611787032533310440907565914097638546483098957568077872709331371887739909533508158114263771569530932165332375535916015674005109844404518680796829094091890879083796291285382755788453911362762674054313918976810053892854523714790534512505303770654257547870256414918441309778757142161349866785683727711541743178392308790369598299663186761942211347561267580789786170157827601715495814050615410351061465465158092184291696095996670957292798607300260224180822100461366352281865110187645162441525808006327657524504849477458498279092269172965306396188521827473751372960575452424884952341786076372551543815175999878362603628824180045422241363242840066579812911742606948049786437371381202547707352652216772739995762566707690171703710054792547098036488714584113223161556100003597437394822827201597444854088469184360587573553439938440206375107744334141739718425102784159509071478231535270967120980083725011736350015293510273711264496275534669956712734763039175909613833834062430779391851482493269914425309626399821880048924750569774279172672949200123485225632960733108679838553587157404615018584850816589120614839399981897537117200234288479913002276428624304021832420519055028631726428699245274908458115281556816106685908328155179058602312516397610393974975279434979255897859182627254638454316433046034016948065787911598748707197868254061334647928849286278094720144389586500625947322374505462909544078648564622205972458390222365209915573781142138173798488382540854237215329934861731211482901924252504124450412066116514845036127130231008559183415143892215552472469136358802248888436073694865191531221865298444700493733793832071810994185835985076599031674105741136485668019473253896511680600997242333756525049153305769428404226390657231753344882029612575985709645787254813340830752145066798912588915306396580526272020772386110949495564712984629414247453965861107507238217809145734082896122267539689216296952701554300318406016532647009301074862877513747996935271641522340277036969769371238205831652905241251320512778977874529493762289994963241210819867467941691076934426162707277389995345389280121565815866825620615238380132141427525517054335089156768243800111906878045884052019244621164492707977482487249863191950351369648969516440729028547745918033951155632526326652724621369209016582726593301011998247352117121983919272402124079249106369544586906936166219608264084667236764551673511294063628392841605898334817580920171055338428625197651342282073821754454932085689346429008008178319883685077208094784968611827535068070033739057875623289162455669095436987849487651455803663919750488736706412999949144671876067807307825764325889631268373025189973002191243779541551861258875576552772499374859436722824127395256145847289524269797644564944567826797394103089693442405918535627045823115307742940171208160270076068118135715373211061834698288810486594946073110977155811647397626249646409326481856352175460272695411390092651447039531288163639965359852819591870073318341709376353477683394476825737146453115626074881888625367314080520897851009006214863115458346030273434351637998549157048910347255181731172151947649925369851990055966594882689037597901001034969781652257069300712296895190789757050437581138380120091956572610319605862533923314284858276852935662614693800424702695549518391623542381917707793092302841690933538514806240199354582893261951710072280381525893537137281664610118049749629415885303969407251436866892209855285529813028960846117917948629462430627605935012786746006223588531290320302727150207482419502489432200957045193032439949026599533105734097290934975503802924700729594753298823028610003371063058499599053584578898182677435048779641351935924021416895325396011501892592394723002358055032944022566695923449929791533701018364555260506729669293942281988958387349492341296907749914784115927659599487015671570967400959287973970394340436475449986250828582565285142935374685401254827293265644258472172468212846531867456355540267246350160480678773655156789236905898403593575502344447687630302955059872358407794726102461015194383774766206417584185415111648958332337723524724245938890122672348488647578189777203931268948327594006144095948542596544139794358690145119763838590380336806788271855820996340444405117402930470408895388813241135694558323505249794091105822319094563949361899236612927673911041942834796751950849313093885231452880188982932221173243413947646528066078010166240425088200755386758501930857470735251248046964374589655070671805478998392798992010172309259511990104124843877495194048423130923642734787160839763363144735008367587126304195051659454795499128457482620630099510927104058985110740319151267933736064200173808984307332091296816187748495501930953005238156065518490567416986223020399049577096450329143132367010227492399735612996317850961681038183707955236374348143613940299282752686080722769712362286426842836053844912471451785275275770679591901593822977816510395268923950182377893803289071938431990409823463770815052012560496741550256263815007053472893972523188538555405145856386219353494295418272765859645444160779895813697044810951840282767719973298381356408173837845143519770318479564591026409867582169462556659243526699604276767217436801205139306866372200720091589119241594558667403557269849114777624841054603774999755160730198543864238237298212696477346775765971462972655800344955609980345541947902323657191458089590643067774191706479723397533669497535419551206192266840872773178718004426995947774881835777401364983212203592667960062607257148486311936046175458454147564742731617793904281183017052729062829403099568549693739968559074109477254583752335166854702072589580897575670255269221002366473747245790275308508032228001692417292190481555414133194943976909803188321135953580210609726724085263794943598672211801584953379404442766700456440147385602059470152885323188270204879204113122213564797415660916236637359415081918865836843378871377795471047514462659563065249607276483041883315132110856956474504150661549460118729625418492969744754152592150876002949445243609639131165161407443478290347561418423123112689019821056327317653899780048814853147373851885005287297026049275951061029867433480165236557111558402332963326183109220983056515196917335587347522320213532588617469850036775543289409278014955322375051837277560121028682180450895665546443187982937772515562504518584239033597902506276220991928833488416271978458763040827049456916489734350312578140988998066377613319078716529108389817121437991631917030326054229166213879576942882840922232865846143883298726558007201727740143968126271019665996438763903966072673613670997187093294094019253561411795476253230809685033480542322532337822880442093379708767452844346526940311523018061593016794588328484381845496585941612177472504540770365755247168207152483123604240009681737855608020382155314695643308944287659575702438585554281420454424371367399196519873132195799036194364531533518694849492916646241855367022025023304922279750039636771042222891422181575311151632904794822431856310778447217513534833692495405653012610589310158319054290880044785688388791623350468634249187805652862429240809285199530098198024312164435689226939936849858941097502547330444658421899023856572713123169283854146847093297906855167640252220178661019752295068857153727180762037163793243062184240411519785732260613710773025175778479230361945952250146947228365623300750948822545267615034482555851693624079118988691730221054931247727147884428406687269756408790511453933065879194880035603262279282059865809167896257441491483041054500518421061617790291201082541495312617839610903264930906049322364082343142905779048633850664294534034687482147700027082431812534657452941663146953771064381375514383522237720737246993157688175239380729784572703937820719851650605089218697103996559576027090562672249974706878369605460996552533061147320698189045844531637535851114214314354294704244346213228555910192536264506468884356949677950654524256177699694448358267903982582150157146114605358938680770467136304175158819406778995400775390278681507375809782050090183305354259861421337466136419411681553642475740423100627642646203650379975562018967182522217579847075919938708229433764940641558502431429935728069098280173757291919316486602416500924739780776646519410966047708637703029976786879648472734646510772087281158431091990925030725540897331667460041744523691832282250120560186158262338515937595584692624386594365725296303338292405930257304084894063116963818332167364282948038926700467923056007918547709519771042037835087783409133723898962606618797262392223122111723041995946271225743237977342190170454288881105842355387148132515771491152800582321228668629072802782489618726728087485834227414876598670936968648393346901765416067269055050242257397139762025609399767066267080855260582368967587148835796577139862974978916044280636558974428802807255629359916348751057552293448542868658816127917645612470504081298769546359176632852038562771974228424713100356372995638537380025990653939479233072038184972290111519400743284178926688384223890454508145398998808159835138080975546468347155246800854613525102292459739705601382727521941899907626689310274584842597123305142756009912434632544933026135791870915002509986218284874956022274921768171523390363899174215961184320440841672196921691588598125388198560497222395609852167513265117384801688136865404714787107332621916791007852391344077450177465525462407945248678880703659919997455097745522214790284227500733722678426232683543892371745244491605398475593446080244267989157243636806022076383018938159965773133281986295544910044977701817510680628540696795715942108408528116719418877592455301289737826048813427491097702143217095136735754271726947334137380165441489536062669268474591108678006144187903744486776489775008203039052476413969267654338654877390108525572075581648998905255745997097176607477454602130842225200418135595842936270523192922793385831420967015517300279592873174104752075132419139466108301223036437756230004088129143670534319059090896460590571319476256438764646022555434691501246457044412017422487493131171026711205833412271221107692014217791622639998595306032108098469693363525499643107078670463937402329758870689876273743603792924502695969721673135785188128434478882975136904983408043378705827609176755934192897307553383093962991583366387197563687252250407643731128784906290931844122446098447432992619910419218262022753996870943733655358954764044490238034758901504015540041906642939702758538929731503525028890246664141560275123940886707522174444271580345891216547781283781045372288532177189017372087672656524787736244532571607595133116177053676094415462421318144945488271290612398126839901082568310627814793008815191988650362567931331517107977090085274346676587409925532142980464755008557764367570670536727965742162961573220649849139313362540502059653467701008411445779781796296308194565647823102952682532772409490677017233586876079511408178449053083233893923398252728637988506208784044791012007481073386380238164049398510858273996535045109994413029896791033093005186198351170574406401568613691054787137199348519197358264720234985433345437525355648895232544975643506657783694747637633550034593013147160177574311478925825056401510516714974589132346359445844323397215821117440463920178820968048393633240399919098614941035991296804511793724032944285650346113221038050658915137587271267419576303114426122458860712883620318250506654400044941193404973734778923868574358490706950019999334877423837631879698699707088531774228880778605528362313702789101152618190214887086374837415047791911882557087629372726941380759381357150143502610447315942147876640582711162744659647262922516086597647416383987629222229945860164970807431686646887052891360966213115857443500639511677420454243963405597363964869841047075954856703969228583988924057115467580527582062197255319310805659294290545688551573351366804951118787671574801834154459716248150588467423723497708579380649174428861791186757928169215959416784175786853325804236708927860012429931594113905852856311209126456396108253532195502157000656866410910352682923022731986333834418225063825714642814085272408473697523590163738423586717446398609830885950276105959930472567494193206506169823515407160559746158992160570757437966260154979747165231817254071420881153508579007911339531798746783860026068179923017517625534016965049329421141309492919061192536063179635125407148964271740344106856471448564690701994159436766851943938063146282573231224270569376627082441582393315139353798203353272440809212677692182264686346439362514796100737117903018732777218178624679066841266670565468862066937773032154607779162505692775461766371611058436061311012674870948726475132717765345319372547962383482655379034775681920556289632526316195699720825675308408163600496027989885403439563357157274211051783457336859631995932708826319711508124476241391659604477561409516679112082917450392673641134396236324233202233441116121548909055866821131694382123346898319184605449250812962003358441366637425247356650541176499803878713081774430897250495154399160845312909464056316429378392316486693142009357625202688022214153127958614577886025219473195249174181835934510435800295518400974886506722833945724324554616450922522019878818475204160221771682500661048857020848502405254854211657449030233585648871855763760746471920594688555810429043046894785801288493390012059592236704724565228017829696172620135069482043461842169186002700923916728997209614323750895294123158340433771067190881942630879730865644692029949274383226839750998277972711233764350369089987257709245952851960894674483452951223770686339425469636896227881845714023873881295574488750520011638453739894489238161299425645909311405474123329336944682017206913762894438392271937444074625014027822045753297463394997465599769177695112696652681712071263630335528510141135483288315334066168959155937360718528005762238138371311704540629956571392118020899455178292643769587309889738696815920276867899339928084893469630357781099950480921434040302241359071779516758431720979133916157688265689797190071100757196832532797523773308233284903215346399059462452094776238281564449389113955529203698459219033632045764261896841297996292547860499003047707918490373562847745714630055298449392461378961061626911334569554947807147707683168556842102646076033223378175679699775229721861831038190466391516539295727918046139977102066075619990321409823044403445118537627402972666062325124553297850593895077063072565748988774774114618799714495411354315687702665123898035551961652956921299303821843437773344775364841312350770462357620423485802601170187762763799431864911436910474082770667671526209108872267274909900780725651924898134016731527056393646483062816811548933999800414517070291455757600165689643486579780062066248605840221130072349085003051407133890284814961893272110322074624314547670271526353470352406832383490736790484766663388966229180354046929727160943033858641362529361714171720988713337071534938375232824229378808062404581742979793724163940487083882990310217823257968362210737630523394413969605107612775227495168055950426447719970901273614164299332004182544140232836828399794360876501895197742712244050688944481073617098366884417756156535646935453834440040228915941088456043761297400926681309052272527345434688178187901157739972599871891019072424597685436451533265671045154936129107885431517968390758748065201900077919380492320195678164702292049632566882454187776316850169243228018149852298993354909365700925099311629680107116874795631961741744237409094111629525420921966257646936218351906193029082141384681806395291019291358450448804417795422271300861192490003925455176783031863909779802516438457435806360761834371694505775165375918459941886728326112050893928868906427150832145660896202118075690514421477441733784144211502617373249798846663856074001820135452329501547148855405466534191435498557543216181926575625206823096107201935322941991960065642091425779734294649460089151595207217187015173598332521568661582523832554191790582538279693978405760977184255372909748496347298093660540169422207067753858693877179958035216158344436392359773424214574944331247751623497717194606144278199266775757721376430305182365278355986312382374251315901905073460113986548818206701798218248801127982107563707904302181155930527836257179058754430791354969848942939007396068406186167431175021968063642496660611490942492802340518982078103365878359817087507888236181806202151788273898427459464260884967070648110284458909925301049673322039077962403160335440522293508874206359558109641242223498800129666104503486462084923046799198957611084083117348274569903103307197926724750232398275565769912004223160054255098770148503521568099059881183879697314267146982152175349572518781410282963017477247659831648954169009419505869191732450995170090806241325475243338037765878986049012891075818349015967515580044620065326901403040558239994672645763828112041689586955729281970815775496274112059719046248591647585760288777472043316867440542252324063897495108738222017373460520659448224731686623667245081147967709965400612782429883323555634512122844891343910588969778943290743420141133529703904713683242061713658573071816821779035672664529929820011208153680013080688503321122380991310719874231256090663204816807501635738892523141575300055566387842946932277604166867575797565240611656315610749220800216165910981063670353040532003452146389198157423569328846611563056435322554105172724548521383043168464873902024257642131938389988060724294869923390040932233661692622625820373413332260617379232413983123233508202948820566762008965409127657899057133188152828853258785504938488542662425793843504861252349103044447168271622867219329875961125890976358979686910928736683170710408841833137206521136414462877507544083863925475942851394930946402076547675540341953912981261087493846814095256660275578738111577479284348100632587607065842995215157791359959457079391485189819912026191905365290944108763990264449439977003017194924312130032188254571904894637657975645556924976974979170043254076127194995447628266011642465156099129301142194980753633992173596024452051984099357539242966151803787001476772884769988971669369738092700692390974989433815182613044197614421995144456112402016961107536314648738612739255037546442811824420456760795224983217094075764283786841524171945924020586118153542125983020902808912203111191108766406293019085525687613190909289234122813256396109704926753173326641174223921926675101223493461955990486322930708848139613809035335691118192733593093083958481499218618727757137873788485575905765495159295454486532262352623299350411056342775389412621283601130680608910202146343453672514903772650109265558457023803701862634096682819051280442159832078219888982887819166883250203175856712794011996989558480117452265245707652608959165654173876539874478041385838208496575215224980593217188843682118670275100822923267131735310000587999642793354434561211551461081083864537382318119324109421491218429927597557409023547863269559572983960930986064067787603000460977830187230107024302337420905001827184502156957050069990151095317723858059307207621492026792454947284302561949298087300009063158143159450571695411556076840851190848001996685939212093615970200943370443227381899968204010556298327360064707669814954343554587166181333771533326485005560597136316802692785229906261736970052140183884941121897592713040112105506925857808103912301452237928404228759845460350023101037672160584329069325983005273299293601351729065405944858780091292985794444721113591681291918559762039998431400672726395303939907413590470821379328015334643881158331538456704853145202785612835089624709741987861394261600625482169202538706746475247476377765069275571347318956882007495486369255712143315259637869468834896718934070876614960163114657803461186612190868519175501443452009730355361739950791429103092282572550942606941715818860914026330885821990747133985579915753365150387209529345924550548704028221143944860379510840935955192895568445647603211427956552470096988285441185244267198571680302245104225267873494975027215602276546691211670588842126403144646366460281194503536237555935981941309042124674005074840465327646474022661789732939013469079104924470211321650436948775260289344839315592571275693525615506332858939393724420756339550732549531295940683817933956481532861243304080859726882552347155363021229928324944717012681952956373240524193027886827090463740554134509655605470031728045510788593450102986062863573858310592188376104172239849380563239945131593987819276224884429132792051182763713943411565454911388683793821978158746252629608176959452000088028909820258286681404671152473417679718570340717269186097712414698718986580271120891071656411491093318919995311310382651891158866211942793571549349580649600067719486970580553743942569008834638621085080057383650712054900023655918927255532125429961254969789445327840845579574064561289768224619454203157011045065734464478389298674950533819440011735089053070849558720791094728155281712022042927304302569087949230586801669769509231768175275881742414083817871054929204450949698258966113065840283078117120255863024383230043678954450334465968693504506163652195997178933934024134753744763139123835474020112499501843604035386774691930124480369630637010312228657034666881265818183270146865110594270628422492726393876418757406921822488959028031763394138935255843419509057299673086371028149193292399473663365169065479604875521993922781186370643099331895025133710074499890244641277168959639224116095740888706693105842390565410402301405472397458369767165039591690046866567833541677084527141831550717310974953859761170842125209846565386192721779430580466969245854888570663980972925142576496007802313621931643660177587323686532237225195292713946350827254414914522155313707257637703750452032212056430938566578130359680439444665931237834491152878086573836218471038378461298190900217069765090467403606495527362936419820725743874041301528796041713362930096014288945759719487167763811134936285283626582569304691503917024989305076553607138243936883148305794441794839778422888121767376175758874733123819915925259418177293251973469899170629971412624570593748935208988562640418806816580964832492253286506215586949612050688526876091940609381053518296877276807972191515423183024321598684338678518562455601155687312625391783573884223948135923217055616483970811844132537182954748513874848237778633735745875580931146963975125585956730995893469297155085376366536039188734322651453937306762130559475255694722630045508153055294822420145155684344560280886336004808098344238577442665496445429548898819387251392351324470768509953889738011970039690869352939181784051529965546444411317577287691667494509779984135607004465352688195504257910000638611147142584192971689244510660181789460888031842051735270266832437829600746409766691017676189542983354435890918287152662174889945534904837109623967577964497501627076922927242773360843502277198722691317409007188269317666446831069885918355691999062375708273654381226184274476241912765968295093982882301185807633945684787026215355060755604632564621773969985620751798089489159105917640342787221850334042680114364490273375348299589355527256274948391037132450722947755524335054043707110071013697938480500944965619855327397003566493517365343658782536374272356914446801614121690753448852318910165619768785475932210205241315059769535942934586791747928569517174122859274297094482143209779894221724971723049657510509869723191283824254749457691846039194185039675832458448699750081810000429476209243933565964210406377582559569050578151578597662614675113546729650351897531135350587633144119478420969217103189577851493153991426009201574753559770718404014757071601756667179993809704499713490438047761378281319378934216558263298943217170297975543072965410707419493219015904489668697530679063721344308533888858906778476557729628135968225501458030607787193011135468579654358955758548838971518220833258887251986743239814662684238428579227086629030430331141510440350901372895717033670364089126956946038582798660023211623427467546488666192408826200453745396954115766431030215543042153130800399924991229593016224918816813249689224103745798649517049087620116814354049204601117089834171213325073438904334561516024966633191267710859065665393251982100828580893730213313235873676194616493439857803792175768691586048452759492913046121131621775392045516698113377084235444684879639223321550651874840145859226956868432032439053013501922636478605431168472112538292421252403355097685020558560386569944034024536328897825430764051248426881933083959988012233594422897406005323707328756162097351809835822926791527191522513573445018917309184536427891749871660770576282081838208808943462635712339508989788520714007274295605525274987129283051749710730826259686892041471498187033273668393585922578155420397464749054998612971596162085889717663718352411482739007421785661139463630171516057527641705853589603971655916406540748418264156544374776734180501518704702067916760609531196230978555900056261458073483919049435246872900841272401519858235640922910558983464979324463902356273087279821373897899632184493394199091546034161660279546620809253338105458591443026364729114716002170875102224645174641081376573055427920701961507385964710967382480735935709244635493112202796298622714033417550673427089001657981489508044864239639947537000147274471359250531456611852684969394104218707027643997221030141103751103575909352695019000812522723002452158683189108931221690915078331337886071081809562585741333332094536703195648362079274192950902242488890151458213639942399797712653480888685636504984826317170765251860077535668474327397439367436347650505166682483273849328144936865186533871764778155456612890265926109468615413571314035388601533520500559589725545437663726015017928665272622659380282770546042732903825669275905737105720534618336219297210469320345803634071632446302086898448553345235968618973585939104586828858962190329568238915440145910163395781028831168931056851620324234651478341766099317846777311278530072699253964640354193027941002515613743048226181875416541245324965155003193674725086840643898067281490917000016617951102956602971930161998255830667398091610554220295837420571998943829924939259696237082539471722954743581146754892080616908065134278411609886221772329425645476826482138048361888882615000936866089831342674013032186583558511377831220068290738938650504993471940891765998923247072709066927619705885704251612276979519479031365252235070290843304269613661110462793340966653532663894817349112150222865329803659805384223354478068702811780062629210941968138717739482024630812617452144973893126917203743178044466345387621651660261970057742955666664074554835805207837718326355586362942393253644881295746442360830025867875342664031955028432690480349942453016392206782684920866534761698497968771327036835751899048518439907636284344058932289415683763098139738102513868677447850534633098741703659964629535650357767022925100595531867439361733040692309271723252595431631219319056635388837000145984549828876460830196049792882376396118651449592824900606534654422975633432499495964781841014259489447903347033309717685589091434318604836223828524367361488331124488121321416935549896580807351731104942470613370343522145747774134834214344734546632995911770431069072014495181889850676037630229429280728484458528128601237312571803638691826045826760840278048842575118853523851585404122566127711136007415930988016961179647193046478168557973881527063246014478808141792403355684685348908649948904541353927584215117548198331129850065072156707208120601897262666120905282264012966314506789943832909691993795275085684263919090573482643897066749269324753034315759339516704340801651646038643089433271306929140241701789048696575244189042925606749715726106158741819772503244946591382794034894062805518637034962041225473761354986717622678519974728295173472465305124340062796971616908509537087716853961805841001417125495565962946195238978660083055513836674215634394809484030985468164245674913503504818096126406442390629775645112483464392136859247697420612324264724079466926100453229463516764291171326410759330038832810855489293227891706959799858443833899971652341780465550080573447118902234975664988975040208167647753477426198861887924381323218146136096903868106338723918334409457526442044446989924479091982633418312618397382865901943764591180637220213311762529434461638804602871838626082357432311880866687701199588725922975600081212857397226650869198031989141055968840438206772390567564824176467424451027530244987402168327248119047170528374220879316340063208125733856681025750783274403815467560771696537899363329278299217683715314713627772607470068777111387405854431960987894708062911808891133986863607115968815304143713857063183479143138652654794634240762867894281206539196592555369324941235922050529481258244591199148443798243139569910518357657345228826308531012951504892719824829504359306555509749236417828470119263738850825115446799650897374343126791006671499191460050405125637154039723708292845076751926492976999341106277658568435771956620017041686816713393831740919838108244866880356659929985033903193997680216855881542410593406117674424828763095043927947955183672839553473883662736929310430157254867684559222566910157099637538336834867987015890861650977737480197899142401129288008094685738092933477309029565697542595070026926843757136957533529167700231560791984824253865445221033600768573484270622728637705741321930742933452985401133081814325769824789200536895883851970072331428737931469712572384997350238696198873117279981356599994801236610312822281802132117896953267593512385124233933096298541134734398296081253157383145505355432988722553269556311892596430619885838083034553422286565588612213529258297260016370236840502870465470589485332796496516329891717921363378563437171462876803746907675758995590406322727020566250279693310629601214773637349241283034189387028053638286292752508318766061248197009820231345777696211866917622545380189940203654902585702966538082216906644637886422763266530748902048100285214617337748882667167730159300429327428420574163980223424526786919780800493200454347769363374106040105734899855602990070055076064442325848877722520647306449568882055654615626510456127138886357212984060551216827302109158548340098538520885174057397830305291206889651423910823634477143892516052484089249191412714324945112844777996463494043115437242604580301773345798278365685014125262338132403953189817295165351831134102806173598448481582217472396360847302889730705571869151212057210708956736219674315894838472834267420656573429456249903363135418619190015244032412945230965776665250891444242460497974545994975650126336009645971507100253917791669575603985699533579091248294867211295341891081735799229767070956692334017591162041997620793537112148661569056897315386441391124272466662936825354562070683750142919941973170383382885258807850532075894805537299800087632588531891102923628554558374514122142414552086358904554052682428249248627762203188707339541103307712248290110715111960511695933277733496399007662973717731378356139777939122136800657861410618797446151455419826155463012237263596490293540121890128463171523644229112605154491230010344383696499828971916984665834147996926915590471941439016213314275227768218216490894220626275637605531572347726350524916453475561115227013172394940885076178424124055862805713290833914248377787283722882676048585706824372379181083286283207956365499393612033360095281798652140742871309197215894711732119389666541394076982619379383526430561883640644953704511902864638131382950606501234194079894289043703223577740791249007655494670973723201167742040742713560824374950621691695494881401460107661977669044473144586869398646542406957758244740928678608891065247400053602122090048910779459587755591458422933526717536639572867419772545564452396963021003071851760500568387946432145394331841439418201670559195726015265621916953766761367291048935707630098703990974800046767888362125372323777606815972563061299398229310605698308086758090541923617895010739138835645492091256079627750225094288619214680644532272270722941642764286235707230993301777209142425681392738224700932676669522303639141712011860167915630536522913108413658463133521613447948720023072393908967981852664680713607526359383977533149002170063222534259542644257082010785358538516390664673000027383462651148462267749940951557227953171535080925998839227149619514675096491979208706811544848852280658550886572216119100947906856769549439243915753526006888016753109398043946534078328775608165018684388351438976666631633649951095063805506168320753583693258731528231975050977267961605198135647991014971375850025680336735278238540428018588396246730595260083123266848952158965964268382849503006748476206771982013353311494003369519540087703476537384626254967937836889595657833646440088862957624928730550933491179511998572691755762402120624727210242160090995639115426331094162207822688952616769206550338480565385537890322459087550006139001060483801131751472715768008387298878574487993237363510585051972105486867052085373454574871039546870453881190299965836889923592025344886360668399081757114465824617859621229290884909798997234660403108479577989780278773303891074773488045257517085039894971973181789207420094248731273424491249439625160720054713040528798753304923515956450371628744731413171732763293835746361257339426360920716752699755820706929349600372177022281655916013116109133987330509504829099240108621331250679543884574178709025359823793632475283558347545177907895467917237760744635994759651000075881621611593837370826730306672305680835019057458317575932746789656429016390261798593423513963318497552347627314843435715650333813518069983080292501416234226958248485542426630159614116268337948560628145325768574361661217759964193081224775304108347066179826097425799199077505748618094870367347257159661243047558390464206758738797832035677384991460629664762752957244676403299348046253818662973226625293395210912420814477926071104500803117870205845684779311437410030696357591261664406351784572630120878619271272555969994193614837815705895520403973620449473827050859309646934371885024292614423243820052431339961730620232856283641885774870066241417729416417068434948939807793806812865864113270119732999680757471145179520975009116040649126265430175151017983124390526424297040376908514182191915906880851535773080852733899066153599809397156898665155434294106456430888375654087110374837485141869509988271378658722258284916883339535283877978458431219604853591921931339980533850849397530710779533226939458503654281758894616814411971148648963678051635882960326213559818365628088878703091405173770117703780031376393023040742512099530817744551935052625519845302601770302027687564681101382289517162133131770880388436056546128768184331964260904579128234641493475532376017575109616184941311010312183250723962725202825162255970159415033660940451070465590974288733904118878884971690345226293381902534184587788798466096009625468093290577203736265352338678219186420777331687763153483309050378394128438386412272390215035590336262062559265398711097720356224619502158990599452839048759437350663905863777791702147309198271583302326680960431052332697117633673570201958691178733247518470344749885475852546481776822670860807177273323294440988194952130370387712449827587612068755514022540190979243713606611683727214324504095260707632937391973016343984620294897862850599916164259608646908619511250890578110419328209522897676509268469618713735020468786625627143967436656133337689869054130156902025654000393043154502602832907518235409145024554177684420887669650526595358089329521448297706196232866407825163523615443649519970588985778810921835206475823677402712602096652712121591424460788254501920283224959105289385856218513502879339913737836023072099842988721364061518683191579263235452301080557366880200842926739264229180966782788488929865888826597872694698209278198069587563645634212635866901604518305029599697712651649443163988162928828754937429433753633789696655817476439507705666770902249270812569814529206342287375387706067279485689604179405939060271927817727908123266921548895003577362084686652753507808873074358150426383614404631046725835335537005747644101382873213012640168871169142137807190215008051012918849537419182944870445165270234588239895873128662092184587465532354328676841074360970676533654631726437287619776045841940343550695771777954231954611085200169405513724759663094238961818806191071954942050019819590138956456410882703543089630154904271902411562149195840699360170873493242535449558580071786910533950408632223883217754762658273909952972584825920111805243216209078430650871638142495503768553965389370101769141823745104647635417455753184399980046282890339020498827167775660115336016478232338558535219883187918723722407308799903026217777704935171039938173276016808026002930862059639645853643773412733426521775231716660117066758694269444446717737636687371079095774332240847471186047564875367823517925253108081713764321935776224919024918127518563579399162699200948472011620187918410371288291642925540805940015964435685261050876090646967312245040732800631932768198353442566501279184631040420761969694907348069857263768164749061922890026526677377001854079631753053566164733237264603937981703800630020351965323179143583381925931695491083911433137916605571632690472693746362210801343193992374767015437178544770493776671483178908049692723905883008656457383390811713526797244081577196942859280408277495348079331182971074925848895512136463034664435587233549021432129664409216756296950334688519938886974663178727536972971076724121944863600816900958090850473933442741815693387287387517125818640667642298202000778329944912037495249633615236469846458444253582133542214777568427826210699880664131564818432620312483179478459655026847424862206564171812189270434479220156105522729827715746723243866015054254973540953947413130400878114252785835705657611141513126979124414122494776299748769865566018395029089127381150730567407081157856846888001806000185968101730606949727793284426990234020591167784985519238106426939486780438305821472533273103720019625066415962197479666339830130168327526138798520163248363308923727847739889660113129912413908280712737107007261030604918528992774007139256123661242165795871957934583282954991835709380968844085851881803433855489045771151407539583793725520213529425554419102064858529500336429068945597362693306401945222348323642781877447556697897127596852666268976275494434279215365442098183497375893760202353314129426847518287369349915248957722376062219221100011347523940945724213293850657046893942487574174999849236018422486160075307041670667003950809218689472200662185261362657446389794785390232972050542445995688298341510546854272313490803167710082801493956694205375365034997645524698359068861909346241844000462791234430817009815895026518668623066388868294828847229148965747062315603571468811601945797298250229197496056578739869502423529657703383532797580120189395626273236840623643923621470721820253500268322503897719357477374554307610423304552671820053590816532839034776086466573989766497012591887236586806160156825924013239038363762684280199464848586689480418552453575643131277487527719602572322036708860720191766095064833448106792291642995036558336080219841973155357476142769765730813021069804580877180663522069648993698463651125241891328189655946993025130255910830870737221906455995231430274449190458126090773347868375329290293805585422418583369359430603722034348004628835649685268655394119729698347648546706046623374750443399236365562629045780894739605074390221002162146454997064585179723054879961904320149756634638201628202422926912725443435801016732943888277185358562760473393676358741754948979301996549252019891628045746421245772576239527920775777911998975633447025350373601753072580027503487238899847843479190671049992536772556241046321184439028529716351844356353250602161907711751893712631268179037864513293724975652136732457337845934918368733838317823190654809623248597324725522236809334084108222386374815151525459303310653728906489604636179324735752031477272919973263418662832541400425303379515809811113321753289554353186078265972194607744675928790947328460789111975783355192887149214873696026381714190199875994337621832843393558147347918054012566212577549964900550693571777577049431414267843002299976578301715358641826097326383803806267853478806817431280144968428113634062992062419522304116430907153414139818529114081283079455363248380740291514628896714363755317098391112834982873575976916825683628018259520052911757526984905358508701229552197136318966962613799663349132991880376949168438797958969373833783087292878410743012471656960939431232954312553302338903002586520278542476162260600467486795008379806020884285528188464568505538096604698332984713507546471839609623806363357460443954920440029389598128043464374675018525263074217054493065391590339798396167676118392928662593720540021207033944073301071533257183348633063104724089962684054573511529929947310521855630879711743544630243858544890535139187956802490925802101388103429978709318269070973857008961589203662826144580981564836583446017424514950602979187080709423647905760625658508316191975041940081064249193153693634173905217379170706638527498008771183844447306545458763100288022876835237551896910740460712082322666191897063778766565737700600548407754295688568226558941816446999915106629230742802591948721314107371681197355203951351279799009667093136760247180065091068516579519183836925466721411884197119962677261898589047586004040950024436933170923922985609791839954554046298881358958730191322914107853254787381458248042715723181579132488490645613193070246650000980226689870167070048303073833917600117406336180220805505544562809015070827878125489610397245756120414593190125008290109184138259671110765383305986137445824070791766758691010452246370034285255242777019372659468746879832050112618331422119417899924227163487135559508190908333644489404940747741593479452438271284923713134344693099525893067301025167307424757109670969394038205158045996052886267854627598537328683276528929983933649918274853282993080360244602819053868881308422128827407779239648113927111775736723167162362627550807842833403887455493708114091516497741239112227253731140591048910275916600994212701942696493612198093939226254370221416942106811538217370723710628053524069025107724081203667604631388547866672755356136042681365909116551155431966452677116228296146548331828844858266111371280589096605203040883617434461572394914065333232131568149582354338608051243215556325887535660210181299895867472747612839900656463368994883858350786968196472442982501762298284655061035002487263890813941990285550693908510383828929331894278641640212851740086812858857492656940658148739050188977310304650820593045434689215156398497787390445225353948070205702489123626243398340129148072256772758073912996931177017678122575992642815264265347126014707878500784962090254465689736943939692138239688025392742276665761511281850263853416740137587425636620152847271502538913468247734628688256309194659749866802711840877268974601724618718466630768350082175153395442315811047189614236134063800202542977862977624972618968466460356196658354083048758188632092833045268757482359576002547653746391021026453433549063353587379395327170684093846313296662506619089005213600787346862171072131430845530438833448237801158885835612283589018623044846583009402173371936113935406837893670816966617298677326601010394829183544938191219840383185298826550397269197467962123824575414415169288386344973883650898464158013561176576722925787704340392761714887270968218927534554410788045886677479472129780145045614619489411915177900462083800757967992463343756799983522850180518715424341345393634494234305748153974726934648400879632007253748625732212385640562237377286415707536938171619807758191060164011034052251274228290813454733745237898903843891443850862542125843594080608014907401702438655495172886292243143904979377817096210876840978370548346822385404494978271963128429722543331300459281296429165485081535960152559243710031623702014252082558779742540510356555302459799698501995945177137430067651369279184185492196039603083729058469092728946263346166205748414339867385053723467394238880121992309032189011526233045582299465595959194289890165009906201732179566398516405074276608811266488066407469828046570306949920184244560979374127923593728840228881349689363473426178644493633932851733090998571199701213432203680500707804126239352179262277006587019337444897738495020469175503730522082682330315087582618531976546218154874558472275834194615946075491875995214929978293889959731959324435542677229927411631155318236055354741935941001821161159388379213189751166414788767720719560557256368338116917736569659923004509234989277816539366849137667581210822422201118505676661651334821458811330734762262662434052633181193063531962460255826441618269648519582603000191747650389770422863854705044554695836094719175543074973805837568330507087862799593146813687867577611595459185533856829660988172407430487183933646585587299962380075483433016289637078230743594282215732571344039719588817050127073105401116816623007349167807622061193018201916013934036196809090862996375850436083536782392624384926169535264671859610318543047741901355429601291649901516018222818459321756871757934962399794525098832257223041378091224322689881275917273562140729675400315186931760223669456542156490770267344284558455439273426802218426403956655348514654691216160097315894643306105902043228174008111122176050724649743225154742083281767292589650226355170009695837831372532430629410983687781198555562391274513715070677878592735695579947509685503037386427590669217335159269624792152345447475529596371619424781556892538386601749848168711519452889118106377346284758768598953306735069147317952631801896735577775441326846445352160993950506601193650889751658710732320145530766719556785971007711594238567584046562562691636192454347787847524273242977139824009552156111929599010010911092261415459897009890321700329074666968809959687055318667981849023341427153145119345674212996684613656222139630423632399916152104319266377909639203032440022728766111035151734351247380220617464414815319146707363118295678649297346455670762338776470780026472633362734891247868939001046854663551235359926497474822843374722832534234985999936646248101113319641348627999168803610373111972495651078340970869379701380000104140205393806522538990804138910396806151764728554863912368834295722414691938231220475281372255133891291518404632176308744393327982544178470693429021597815895630355017605518646698754996587336933330120438420463344112788428903512749141716172535038882293443281596468913424402991910847520274445216530542275059182082396775497545754406016549128146251649042440221087800439156644876893626226819463972571419798600578580491080132914019465926265190009992532140401661060843662154473737583939666376742633241245218234707286983046445760545294824388595032924779359516128664577929132754531446119223139565425922946301919823175851097578631962373009868934869075097637822588346672480762916221674852336117117849918825420409210430953604024423994596065724756306855665670673761128685823445500379858416393666547298589358158893969997400927600584023231143723527337483227585998271446670528692053928968484280133601988092978807029606674003285252150689432925411455992080746357885648415226576066091593511123613536407210937827734685227892851948193777147478865681710764694066167996406093278782892016646653945645324620876846345349911312538373225820714202662948767253414865530214285585122648281557170547044631872066650763116562239660238126661125643700563501386442058943002015886856439012392574580114598713498791559917737342675472979304567539360066621937399934526345206363870046878092344723956646785621593035513608039454740711153817317306950509407315691209262405619194343608304295169179571299740606977756937847128860351867352413008569566969390679144670846662410129724589826850435078368056385789069220156009748920330567487439321225670157563189775194355063311955162750622806542468758293033818486518235261075285240516100972726344569853964823241933266961892097478368430310391609577959222014862390084909619260305589585355638274322243243837148144838821616426880696846848322687230004749588911403566211375745482848919746357206977437107959302301452786971230587078587533824041072462556275537059102571729168703010504625163183347829641104575416520621394174580857308089946352957385500401081343697461051986610707152511738507425389071392020535971851323297356478746614740947829535919431119408715564849444530885256608150504218470229549270305141967182236501592329989112919893138244473298456011904847310323473889149044587176217432168246144449034398065386510319441157815938063251125664999195368257678239595646918315580306734629982455411876189033436390952531911721253021539612064470307924877175712052477203621981421127015753094227978538795754454298110938657383886930914049221811698486072260188856411254570239593596147890272589100411032983474974314182769878707027543816096997111237956241051496950306768191060906013923892451965107033366016167474458705589870722677734013140436958752246188790378976077767814592727560610481652336667144359455230952004530180862756418647725245593320275571099216771864859851764480302545860153044227273578626975984410344781035757955370791214118346787581965080089824598725310443873884791768641797165508000148711992822836070095488254612565449359275422826148757014126254135976205575869759121225023677577429556205816292644767102423742864334523144734446579072738508127816743917454457211373255262786993939440009562342649224964406545517989723149234404416525168444264604157254094661537013488798927153526727591589152693437384166794873745851074107350019815161921483983097440355715537827582209363811710767620998744212877789062151474714856265095547119059950997304455316311099779004156437807606604541717975183935726607660091532388171718559510341321748249225976006924373913622514762244114405776191454419137699733995186139377161202352614482214109243703954181233471848987812911763295073117402918644428988855811570744726593151901398611851305896766893801856715617617629120226318826610048162782598388921768062203764448882955465500975053481760458554342921910622388628174709597747103079967580003983481477095895689045519976675549308402977096021017844442746650686939798355773100306957945252294796111542557398451527474370157386592633348655437452779770793730693601939447033677515335497101308286997059634059195930918532436665689775628209503612718744845480402116740246670893134297117197370319058364056683285502803626441125096580084752216974905478752821776084906531077633976201211625333065071818445085718559314696564030418862261907680312444184588927768729831230759494938456361517608209624826458677845111834243212793599786951426550090597212805990888872515089579315458862896390469332971971250083710626070734279326185928381902352523442463141452066886269976506520930861722208600410747598969940369824368345370889726865649475414422831660488402856082186225652499276578942191838474478568741781124332062964906389037711445272035837695748032729325545118122419219184153070848480302051350718725943876798222133420071246336683466929300647596058842782412582723761495384668761545958913652222276810815809824872753774076837377392802422959113667216989879447881824692721957134552661618526248589898958050886218043516108399623014668885513465032041773454936262628397294121615527881868499640206858110725558221112585548754230107043881825895128543714254899200262702833689458908105672118999255587407556927484245433295225011088358279354305705869985299413737608394030926450021879784269589876557542227077060540979526533350958036717649514144516889700736406956118398133232001495003502419195195740743037813782307545549660319444245650377964217391816419612113894138406871454058143451380752716117502898184678310637798853732004111625832794284171723652284186557579801754174884699076432825367639445915996834181979836599633383015981089517023457666319975043482698424371456989217996729099648012184847935499651356230730809759133480371550792516817487385933237337688036754520543332621992950168066808252964447332512980450901325765240307481117719436733000643582573838138209572259331062187381974909419841196442249153443326806123068767087647910848248764559456028542231910249516318778761110293248123615582048949505091618608606390867866790178414461676358469162695595086019306851943904478338149620097993915181078192727889894028024666697879829436300229620581743876898579149105739938178168836805007591686561900585596872010768833335792513985251076028943424968628266637414215967122419901878318590845749168037613450222407493539100285137756728010998131701642259927968189166253863341285560434316850252000072231560004863572910013490520572835470678782941649898668844008094182255188814758189482506468067035277780248187928515827016243179537787793267513081161051279282803315598460356769180901619762736395761551827885418540722042546532381541953358932269239721599634437643114603852986568424134576138327248859202974530418830062258624501013752518581236132789730483969251968053493903881653399115364775673253080682290313046906705957007855989927357447193074084196754752178061990901081659603950826874659088760180510846454775415511756222501372582652896558797476922915821470375232203410769008328337822744301118559832904457878051808420780775848280105518083046112347843752717446897574474689385088237158809659201036538673092990654636064779609633501419060867714809956932087491032862377711692052008374727801402134593614669724931930719007955966381838179115687574895445284287707037496982377236491070024987250557570493156639636069198085939381387729686606488169517182944898235952619585304954341634783310752416682730790724524543808186185051538658330218548815677524025303390541038498763556608584807914113303274645277126363210519924046651334800439170187877513680987036679720838149323394456094536636329858385368685909757784329110574914471102844122806326501623955894315003726021073526767536973136246305950611878593690758443209123698375631120532993390730001159661966254305257395538624501790027753967126977751505997198043048809486966486233348411338781741668614432174008092458457660039372964330405482263333178375069051607429930674414166832148468354484900842805141107604612459210093973408716519477538849545986709224490312503817592185353044729838376175624521134116669005400771293619260404312430072213210677712206453973715990552904473309131834428531574557433494195685945042544619432500340984463532284911158220352949021824073208739574943484667725819557550239946918014488271098950455063344955991152710207391591478053404013471491826033646547322380858583253754534535244995698860755900652732636679426640715405724651216559749708956690805693877936152639625732648645355827810573376885941317499927603871598468835722291031346568178811171998016977386296301079904266107157561248303569801803262396997462940933920750877941563970958501032475271821904978460195753689261409638109359463378558412389390620443297949148137975575400363687779463568314723466360221675911251862603119065666374526655103562565139149755980622627725211012582529047633186758790155766101251998706997344174815271369001640903525794436496959369347790918192982522969624057914154847567346274469962871440927203468898781159978721964982770100385868908192184808010744885183644724970482256477139462651824177070171570257769531408755406851123809839059944406860073961765060918143421584441443092103825604232841008149664972316677227318352203209666356813255341911458304272666518818748559428240328337105821665432490899920502250203903302154733901199986620768780660529550816405695696170012998534636569070278553769804568838970012627670389927615133928550703307257045192313915806653412348872426945258177961607961517588252314612389517851389224407112381585083122256342017635600793810590621436867074683279635273398377971186829928208276833945446716757812898393453010517849545153012333862602271235097521862137737082328011117141195745562355126883622556329744092301842492903094222773348428154626479494295132719287560837743646685560332259713471771059051311986234621976984581507494729104354510550065860905958429230993930373585141887878865093940169519236162513303268902736860844372085828612038550377133961190260050696701023238106268453651704349375914162534975369114803220509398081081712198567652440125461512625449854370226378809883966124553042648061617562785972829956165561848779872558157855447478833749516296490917806504082730910248780801199140677623937229559255382444421396707959803432096442980474404236124045119147771809895083254401007077729968872516293759861002425688347761551564528686384173295737215599819105727003061113111196171079089667857775166975741907607108964987709040349136853745036647534021593362611214554642854768673901523738298416487782053074210833397047482214778052348652814210608948949646503475955259643989523666869646506618744504551542325227224514197079718479322242950155243860142562285576983078486555441083101305557471934945122295464528360700446795290103856749779803167170632948238292710840451085024559032982929738236314688773743703918433611309536131370495203619508444981371116755724001052749066205388806671788550401088352236144423358171271967251216729305082440571693290978085560111003277460921439349724280089849116329846046795081952364830443100354264936311711173770484857038384564090490493931819592016974910259347668523623029219536649159799521314971621405297568008247030619785498949111012237027183257351070199706686545514307265803817426614285279950998791637964246111177849512589089228265960059057806894100640367724607496341823763785995301461630039760268710545696813994861979802594507703170990817582600882234898057081050185341695588467227442054016621626002654871493484038085696481603122750719731411175182336860724106854598356237365032825621274108767676951353002484533190336302105159745563087309671910242878325332690817650931029210414092363155320593729285438648215834731831530242373179698951514598924979420007850161703444577899892451353400196364056102983118836780117860366504422232687429601671357081045603941963376904393312928458970050002781867081523470778602031940965558416350622144445890795428092022292462445946778306615947205143619698914080717009423649342174579464610821074257058142235830694810722710708600949957450071733861815802952076435684904420041004548137376959320049669494335595995323793256853320452495340986186053725270077098767222429532964298440076843297597917105611258893317294902368199288808906277388557124151195535392914502516486401789029646317707638174092256717015661012455467139504228557104946802576311882583605797802393987808123034543013924845002289652237597957821116897553401821156656939206053836417186496155045171982125885743567537093139217839963667651898221600593358663592684122829742380030838558166173287185583811520013727549351796582618613346286913745097360333988551668598041207371646508244530122297996794312090010494824084080928964291050943548453461732602332488462814973648544009193782836745095085180504088829986333009197904867733296043554450930393103767090637766079272031023195502825793227722715175649793845991048768339048417731995590919843029123756072016445694748261185735694251781843019685514535181270537850311015660070873448738811764602964702015337608517789591345092106232026341760515233565293225632422019802358911019958854276272441693882817499530448595267487707663533781703630613780541384769945972952651959198796817487794329817774037414431858220377843353103578917631702451200154751088787423839147395504838514525115111312044300972074876496533787246262211826563541818110788365662877480280463052022587450571852625159506218177871530100081163644129958285712798902632504030951525788952090871782495257857381586444603390634423103413827268115054192683813993671631738214107687504487309581459633894522481408198729458456988314351003589127930229137622478101947662812417680975004233796378315214037770486196674559243098809767331791816887787955731346089417508555877772536507563102154356454847986533442387105907337402265299971370427768802520551603122295253763470258956593904154603067269905428618660777645900244303306166477829789032037180197539285187843550064435217252306103657498317796123536904683641133494404985940479072722419760517007653846822887622431880681414509634365836096927186560022167749564412927523445772909074939551812619783930077529378545187626451994613300657741007839856707649973160373940509294878374677294806420203832978371935930246407297798849572317480365420515035495701226284082363022787416783250113266413336168445568382845499820115520856766335485978835518872397057737130457133468436060292113768845339735526270105900635053786103115592036396373166616466393118531565957535327780292455147544619108822005588811788784672963953305924814568877431859943695260100332732810281894746957439942449127113140521140100613341698115765105383300175181865848946137446658008838172736501048296631112633708951067301085111307009682240562844930263576935000038540528758200147994925624189627669366749663992061511319157157430425661173823526261379369682993780169405436661758087476510867470649171009927623131354818415599106471112157210651956370244402876057235562523823540434328133849056702019479690441190351757802776702290549500904471413880711414467455896123866600206598050668547862852234856352155305328970746438571214355097614886066273122860060478318954453099593058990913015815341220847100590593171821574131821888233954968217659509411480660125487415040796413715484531225726925279819515834820508247517408688252641970014624223267830002301709693845956018557579974947224367231990483262413323894345642199471011765693602406503526893562251184718230186346632007250137599406390642393738462510841756446642683397080718264330770055710903945744092562502428057105267238619129773793086994342976102881400059855358877042283833383696158451825829216489182658219786092780442445183491129200111128431556729406784496238276830718966272080663331467527975941994355917757965251425602410259245316276637078798799575229066437375651484772057430729369746754133996886059915789644615294304014261753235306546184418391373808593873292789607240865892136166409915941410652193083599102727415409564916676098362216842952180797912050782071057646740713478415039222350749404049417907855443656674707078385126182534914621861599269816066982926818228057282642933443151252583452927513326712334545725581310447863031019525435693072664800994864114051546887685126969644410939588239610147352494515304748027528208876445362028580013960157333133814672802527688622958561396655987358964727913909787721703451352728405919668683070894777658243288272953016976456193619274084829634422127175228001591990013558594823941149365185669448715951468597416682185973941329442365400973652533472454036482661150793353205119473348742362638057910567530999048593531280376063732022969005751758132340370385882987785347713424975497334377373872144244312006964305062429681936555384004387232107632762003617470810120343312378549562740593116298498430019119548560039965604211087084518856228598179957627674728575017001010429094863753868958144558522797991161281376001351574026775640919673505899519561814355858304017620482138648170152799219953211764179799203464916028614924551614874355911888146859734691110651590402566066171454884147114527595048146563047422311474423802448115478642189837571453153802115540833902881347516859309809449586908022346766800820423588233764847174202546168016178255889924348632950358040010817889825406412228722372219978983409870702103620485582207315418938351668890637518998647193185391193305722806825802498212299820458491553987941662322578398304490112841146358656115835385263438108453180688717763012040905591905253947147318325415583673195838314394202586246754362113493659576043418188959277264683288604618638159465455231431533067708016610406380473937677601790079865546910893940791323116631923630120624077976780997744603426346604784316876790129870302549599493420193892485709039412404312467242895506945387494818423000537878171744457704900862121772902403519659261297963451863883056813197194576747620181566510236760232022347260816699378956120976833246405177124166926506610382996381517113259089216487833093806653558188452312195291644291094615036989329675760663939741123502130019491744397927775841736280040750659757856052832880905110546629284102654962753886662431708560217800485686235318587317489970193663755626074701091436077339253699587922572278976343414324145223432475566889308037219094675829556502429409486095335602981738135365586871826268373751311343223419206835912019756269605902895442581494261260249462135578994485725590522700612097656710177942734973694897164427297734479937266210649886905755243562163147058211885667692941492796550561615185408770130459203554700818050171663353204462389830478323481409179718590530044772083565863459396264918450675299957743409285539088235280436252981870832233541701774480904463955053081095137277370262133417989845715678594289042818954959172086838092373264784439115552019317348861558338519585402880289074455406851249999973210465825618098111031050191327673299398149996857041552632300252518107313154028966964574497985962427801545407164335777372648717003929147887545874110587495097430282092515264908881812977639442786078438518622076740396243406046995838377752061803505874377985522931749486924852525943469663492585221829083413149255840589672837049524309439099406913442689472107550410810671508754926164603889505172240277618168328606252336091240313527739857610647758111453201361217185335840689510401206733960529440578900496111260431090561250569724967727595362094319286700085562429129198562349681414722217881610161971737872532345031184915966190165055389618445153620977233984618120443975592650661805248149750914415758519074154436117162865294027846173001109246022373636326128465228229385815908269403961170172891962682355902394866815849508855126515551981182449393089539580353369385079757697962430796356530335065736587260723795518292424227192561813901897662408558178035167879704717051937847723120192320345660173793483660130992233417789374639852935341214244650796220599330870587565863099147902886054083387585065680406654386280777396516979163432393069515929450536358263842141731177693526848912891256313739753978973472058194598633554096984648974062786458816961113129349602822953920257790501444921568501882663618795657217949372474302617037022440734681985739931694330463784423322887053579911908821152584323461924928771850970268665121652317434586090630469340842581105671573849880235330682247123013758924608821692705334479186536101607745555040194017267797367411093757172591038548068275697101405667288192392432643419940476564249436270552735890016809270359007003481549705500265934919185870892247343323847834593613828999329624320656549101521697221640704301176540596903563149203477380083131046769578639090241797640064007994764160749671049948223219201689150855233711420159359868395107900066407827756801299984148929700132660055865153281453682741375396468447158841213617150361451615995018630456566927014977130278528376739820485648924250500046331714290742762932323068026985131321542454625797684252089103798748055215594159072523878321740855961996454979907271641516036553479095864582524197481227507615152777257608248500467733151273270624792675912289612640763943299341240723041390713498646330423725354674341098115102761869924250226497036508687346703486326617830900475788186879509303543325828698209463276749660445299456184255510616644321113004946059360743405715360050511163444123953805841854736326474063884214435074676373044133930211332363239415418053221892993661993730619039039056811702091475159284189623862764455672443676285369222465032647669006246012639777310622213949790284892734424230811885160986731954898748881179849067012782304360790176958255351478407839179497487063090178125053950658439743019297139186357193489562086803770353938524515138190214155008690966898161009179441004995819350700504780065461676115161564132785978799549407386630431268780513961863567343319925954755151161882549399522091532732409231909103415811935771805089216398547722344513054999733743369259328149227350275686152269150708738079865057152568482848145030587726077351314897551878264313525917981271638849505737398642544724574978597001485060779582843190386721191328153645883736131922817905851928427906490552445016300349748876016098331057381863477154116161199444424909968339556982814891844765999941143715512623605383729696961119685348303098554441215974795192060170273213539873557534588131478921154157012809896195885566056391062289933784171547978461673246478921373172703697299608829763723206227144889662402491773032109765174994205758938434235635799684033493799819745345827437007212090788090125212276725816106240509066770582264445259457189618344729468233479181102124108173138819565530508967572299853460177546731089748740437321708764808660248288765832834080945741387505311004679220011707522129055347931229027894128531481167309794720687799807035259531696633312817120169509445821434971372050119316068523871003263885161915432434392406715052387968006860345575047379138951174630648236733702292337656419796494373303696538353494139185472067855532961830727237566053382344575792622397800731649939963947928578179082523653439480151479710639549059140933522127329085333087504215258358735805214289457737721272156257827877424556727946283416152692076934451648265532992035247907456007699653653631886305807518292254724624318682981987307645714410046751113845533230852992072173152116310034490177403555803846439605806589315047903227237239065550403163435975463163800393936616390235670808655229872755065072557557842418828135219115459387223947362348986204970165569671005974850446787410668555577404452835182334636022056368386268944861429469653571152446886911694231653818959216451198221693899225428816471684159715582092622797993622223004556945364983634709653367403145538177971628353719273159932363375069911485638348408088264752174879085796321530567079641484417311036929402004248613107057012095260041330386424036278034151653979214589323934480586361649147180542367403056131656440684098998759841851841215646760674824464229592431256908040859660733671407178496445419133200987071865817531720062140605754144489370159356567788788458218715360855162315459903924381342202027139678175318416054498272489681272290233258941675876505460282999100261592483371093407599982502020651732542870319140292878874342899924446714234749292208387037647093261873596082485745348986333363981498614410140539242074654040671561201059769940835634632726570679040069756327770190509111686918407168018760993089542176898264443780916964056811877593977916754288881905227762222010147499629107598988508156294943767904919173928003449221996904824073128305026078489104911012366107777838764934653246700579652529412809156131694811399375794640084424605191056052663639082841337334474071006527451613896667103316120098251357697864878178116262854359041445227187479986786732144681100579304194442980691944448179863239475199809515190751048041417309379528919924123714713574857493140756961797375331277879403080396317143196499251913396804433582010933090633119381161251549603630603080698834280857971770190581876461254260844284542724419871328470897917727539892915449885753566922462642551024271415940104607318976516593593224034227309720727405405060621415347907294297763554441741735661293854939858380021268258504948530017778287007924556535851680530727233445852326857441149160075469285171038414710631943939826882485800936482030268234136563945675522157765446255801143689645639905477850538484050957669607218354375246222031593379633093661120171232244459689692130182706208324625531355150373715721369072074509080119232108034400706176046745953280709175331503352324501747451172592384713847849777120182662599270014057266160215698865882814284002847339822125139865544958886539557847654731345618554536545345901600244100522828499872634902462761861907510538393925183035023747768523747517837798446642972080534449205806645976042278857022923879654601976039376855602067109809305121204604503398318290261557220199127465701737575621737308358817406747147198073204239388059828563907690512829692318163666210572653415489563274741195367925928136253570726450756558563602575681648440313070474570545659166588536859770743273047729801431204252095935838290672418524149545616954409472108773833034666766446981173615815944841532343198962825620783472261071481113365558873783285723370144426586715430136409900515091574496142171947854084881568373198501047658674757304628960075354715984223355910332197736670849993809308319864564408496139210492759557239546795174821982764713426044886340910151629536761465678155839842251023629163518159821789919065919106041218283116553426848941545565130727050058199281550709823812937676946835803109527160731196627027119989821970559019282938356756791647190698432476740342794344870923935565798054757865301386192090250866018475641731039343474178735481009317043722470487346525822691227628394839905229549494584186487063087318875555741705531996948095935428637650286687822938258748335723717184106311859435487132993272152698361765748337815282249921640924904340775636176391927175883702869038012502016778829508601694684767147976872104920942616917852958679900023400221061326974643268748376180425830449723587337541447038633011181142532385595133732879163153440520823781547752106069757606440352832262911091524668456537536625566678017669407273721298534930180228761012282225212970972523523329200571126316039757429293144418679648825440111212448625406309509241418490536068030335222295717569359470052578224151355916309722317900021254230688485552239491502899426583367550241094194602814280975960779588770718993589676308819565937100467925462352229987095619860377590907690459753210145616545323537852587180890690735817495987834938624401951357261477394825359687775091352651166617720236335793530943961118762767930930852108628819187576291585239491177328008487820346826177955645145549992216057437634735139667997449525061855513274542693847873427377045615521504556906645763706709000567243215626116142788570202505888366507008865263447213353243948489342878720101875771937570565064003082222060392382647013933096906096647197445426056996669640170230732737171553063094580486359475020203289981237287845474357140963401856701601756477108782642384880196786879377845301984435830593557465141967854289528683089782468062661861623793638813293394195087349073154551576058224772266079181779408576541530956348987589984379769861518477753420017867632960663718027619654100593049950302658166404127306590697610755625288172147317296182451595052456705072735048134684346337097410999682984593407853067517675487873938188099425528113670545132382676133720254411997967191111175236391792742732035500890786939098404090656526758169466813225625850125929098762319838800975699565585548634408243818137063193140665107594342292504513010124232291478064110233854620168879828983581176387618604839765386352197321836451979323729722764043610394534648967244848714219768746938921528428884848896121276283499177642365072054938881710396061231327150155131725214907109932268045961790228795105540074291029168949602015475243117498877075798562809792485220901734826343674893922341633530166215659650487573226828160825214309901362467493412107396985369030972157520985882777695796844812941788725842032168836028847188576995786481528061103015368269442987941773259399334663450078239247907219497210000514650310280968386009230410850030786405984432777490302425545749572609259033265163685060593104562765863370752122697699682523879979049878861845325492484504120620501384946666538504698140456120460525903806223496004500575543056242460607432423756260679885406223152543636844888655661571992178788013207578831048768267089925954359490065558875112818105019676077070494442189032913788008347751294078060821246393896276313029275120365977152802056369130521766080219804196524234170713520775860217743393459891380059714517374173691826513421884617614359157816700480647371495802998631995923801519371792419748216545189554552788111678110552222481000465210414115662600633216985700881476795830893603815941951706739243028225281210162511145469056685540299411291603078977191037090306323576601786885668660769677512750093756901385574498364782911574159054575469302749568845173913419935978531911608192785268101986800799172101032456001554714711860500963193113139957549817406196368903098809029401683415254383003993797442140463808546814392125969400489819252175897801807274396066937552760705647009028388363815626025650263919973867368409477645623874610170673141433798645025242988341102536619088587022665545258858085390560964998191830868749130326635787710426371890312659977024914706507743231000706059059315319507878954821225729470549889449822605561334425399855133321391043251605712059441586155404181877730126156727901551892147835309437183633108029260031045785633891895723421488189417496689380746291872696556435567745552720457096607571938943401511456790907708485037818459266101179115857977787179363932084716736735955896888770975128584729760763434633357755858420891436561209264827181139497157926982417698131024979090141843866646541369484286571443489260841648626147997500738612208709371469510165739306749083908570009687755975263471080576543436094332256331428143437380314373970579741314591799252231066868856466883410410668124468200059869974269563759166576760385543714243316733494459631812885123010058211529240769243849884562989431300736885992351267934158381835744212984115640125055864414316479382864692349488685735299467029024720082417456677420630023988769696540071764120323900460655555897714674295162778651156876247045370568959182158863578476513562151308296687687371996347963822241913000413132254324823273226572510958790968464214725311508255737503038356153015368165193536512529933231862730010279274015380523393343011223282352917052771469417552487818889073689903564205456324248586807096985948597439519690577025547684663919505105325755312145912975905539672846627324402672227599435875543624094314242235399810907561751512469828764578057929242282586052351062270707660996284257097479358580513440826313877472683416018259888108796130195385891932784226734728884738001857726528277377169383809642671313052694954988946880979403987586535246623831043081817277772677266473712058450114887853094805376082859871640063960184387214057598104858539698669509996156939974114206838813721389990128085520833060907070573908701857807487899404773136983798350092103355768855941715680497776586193011032776561566950247264548946739815243854339893054274269762941387375523409998156730551964399410286643014644731335535693690593509321651706719070007320243810676004548595380480119153984497678524177058044354588419533690269498279671800970233291619200172883549019039094457669816689143767555484707470249492669022771480305135610304754820425581522674896388499580833805698856119864473995325313304252367039606979679413202456081100779991901105901393555471096321370178056750484540616595943678269750815781316440430235541230854124551710946819735002837117659964134275726090449950941148412410877459188822763669656254192835129913708731343631733643156147823533022842356403835030258991355495413423627104572296318358863628692309871936834545185031933361752299391350727918333236143820106580629783473784789444437669296008590890427371092256785254476524355888581447543028163262977667959268075216653509254946626228664930018124324860039712105860326249550597226154337661022139896517324018359233482246814360744215527056398030504435970698302568421648107534328155961084067500187785325477043154445709468633327690390756038688146441687113242372427262528439291815115402265146567810029201173149751782973069134242669708700694715877399525606067626116277338168535542728010237142489320633157257467022446479850513458444075679992542515706007048583767732576978923663739714720432148281945726199242196716602531197249221045136795766606780472591380736790132435076912490193282499433655235878065285135847000093435209919081131892679663777926431937278275732214536281315939220008046325411426427813032019275187765629057094128782945103990843539419647822502365541082201037012528866511049716409162560107514061938987061920057812756170560380499925764751144567806095507449946875485829986371452100379379838615093595115877768571784184345389554644912249588797712948825146769760380011943129977112552355391885027253051301592172163739195493340924624570161564189051523467092388319581039478217905569956516519767234209396826988924566520459882624480873759952110081869404447762418450354172700157357120413258802368661452743908444900584396007692753176998227015790475440692323485243576050850044537162668053228778066491341611071182450275233710360482600375644272987397066794572453068219981295630154495694433947599966492480063349879770091688454073045381496363891644276343308626460235168312294375213049939684349311588749478300507072712933742535548625526073581686075926780451896703496328084031762086600473284099356492479800562557536821023410421857381743722699071456596590207918071570474131568686335770387780800957790229399724980066062283502659302851393327885836270885788176946807769926839161974014904153376055480094573062249410005392744261603648175409686721018659975620253934823771651947177170347491330786870293085457114806675865843869686298842070652995455384511095783715198315591616364884330506141348702515258632546352779087314917920093583506536353700191514823286170047634331002815400264619935170617980854701561498484747588378343767492147614395747485235112314988315414044288020235633847211148472289309731233789299244096649178638107161522722061412850981439843245008230342817001098166088572010899046947038646848219218422786764093870460691117173738539205682542599376069939324832097710047770638562087149489866801927351167580439901869895141254244615522291913902615789113664785655615705500860400831342364984866837712766665344498467867469241582878395296268631920647513036555086842636152220611377322950706074426520175375259132810707353161494987729570614000259005713366939044507272118106282920005442095427943210542787803799384507181757020897647565353355960675220091103488112352663268155087927595602474582566193689554222358000465588820461251515341799258786675163920132443287789437974543117894997621936702863116450851647511057431890871795185107452972338858059622647749114677271278631171759065585647152940217606890083650582026021507504628740124422997891009998476745598318985439920118464581593913401226854198759363019564699827976189350651514341218238064770788557375675735254797402016047040195650393791358291849333575479538846236680941411228693005595831976330297231896656761593792848415449289211449589415705918103064748292984520498568733578667119396105686922903964752033532111577330318569613711948243798090450488362527977573861065011070070015148046448141537922254005901077020426305986762701840159575009457184842269851527038069823240047126258160614162081046016853074320515568704726874217370635897666152853487251238888929197798445063812724151259857913852000070071419778890117817744755583062894115598894590386758887358259739071489567400905444550527372539072333107221682135270866138672794032485903690108755025026160096769057810563684874739922329669762705976504000817953288337494650574931704104565667062331951119450919305560630254799038956326207417904596379111668735305680867415154247291906623804985098725900280952576682129848206055719987079930819470977672187604227492732479268150679528004008465775559565115537521374867987128537508314567448270395030952529925244026431111513937308766217313139124771136392639854103468844933822999487588854399836105426641628865203457552243197070520160705583180737612264652264004008282585461245310963738419666373113065998342120153623544344980565805070056500210962403033811691691155201694553589350802737479362065946365881668482876361249427410995433555329207250937451316899685408995402416088514594545503374214358047373822007113331614149135329541726988281383640631326906169542273586501909367627773912188291446035004499442140336955473950944183246519562945328940901600200257857867986509785955735681014787838250949452931642960966590561838889741982204430177947172715080000754687405544644377569425398035725205075403514117704797912133678519286517084882603285118132849556964612643096406796333512361171109204655064183075753105639650149387703424596691599013102558491331281845809015026504973688555495258274977809073926498006136514571466997833908469144082940102864955944140862519646375614080605695912749315533054829633604347428402155451005581230504520787453117208224669713138901501986394064640330926273578096029887584245906387374388255837090461862898003051779691204881662539468365192272370398062432959191208440998776727282995505123481525660654579080211803657416192369210925157306080643042684813674782728592276981914566372805124275792936322280461493815798884907753505879226786167080168367856233476199060605517833060660782876414484817711373021313872678039058856418758793769113362452639374867767509449566021224808013060754319824592295330581951172333728655369209792402480634919972654889113358197213148705918434681074371877644264462709853519429027096123296671131628869726399277509672808112082702829344605330339774642469762613264695025572931285377500319217688198545189814068404162141270163292023896261719625853403777077649175363945183909706771795223423233986295477337249874673116140633359604744969089718251134122100010624897719430336852289018128817603151656016726373640968169025235863509139534411641425230117449901771020060535678272175112800669035044769744449764900016034602354689938996051032695099843590266710275092761247202625819211095679562711012261923838298756860479689306079602276233541363071325001008204612512132619626790217687271508272865142611376663286790150911736802852444821342849016139043622806102701521818772128453646891875773761868165451207653710897255720455323408825168864146934923519969229146618684824297127458997285177666072509546452096915819688799061847347651862043544801103096400039770285536998297705922768583642219332752335699407951440526530707506007441882118363552714511674902429256219617784836824648574843251733754400427504797314773218877705368941126453066643963427349088406670829175033882190444910373977392403681891752060824062655158900180612030485687373477471761021486704681839417232971223902103304801512515152496129334806562340974763310430294102595313738510656446926225671313174521447251524288380713195942066225914720764165365828203244148957504670972699469470313847649995702108839892380208494784289555077804203316817192689494710207356361627573752322221945553627098925481688209934283224792317744440824565071011091530409002306778013297357536220998250300802899762376149136833847847515362641603555327765992027841234666859578033567480658114575473368973339872216148798794237197012590358726313719372452864199490983938633019525636913495287520945798523540099578982808701429822117550506575263086804317483176566163650940110007702652145335001076327949896305963296992078825052261979347729507093352482890761039175000573002501472629897817647620288824464780445476302589647302412100276487251477828062639016614778281648160752380245137003564018706982771182950974525011824708052695428573494848592456867507757958359738611542448396340191375957981269348714170901969475128089207983176792480505168766859892433696446618912420517971297129566427674223787367502871066599857011930345508561593653341292769799104097632583104626872738403452894754693823428206716885241409368912438100824728035350997561814096424459229318998443197328899898238756175568514460619471617102329496091080729201031846139779495676169170922019004724215766568962394788559970768805907290400707257359602331490614986861924702638754604215866976384016537979273376204171737446838332901451830726766160030672315993291973493623646038065820846630370754126246866264814879022992471782330080201101499691345838523097572969792441128671412576387231963344385043745501031629905368138307140361542223186075365766218993785626169179404504727478280625970025967747481600526375487790080667303435743350161163244793864639785464301623334142969613511191858668689837170163913003833574998346135361489792166603166942040203788285641611465281733458227908170778197389337181650427253724958093975329792786821446234507708952494103604260816543440948717530775324260659670039035700258673608198713464906243703274763215637895749772124268328163013523327256974028049934332978981935294844568124697193170301373934097184824215119382598056170223434785072989938087040067973086506986577509222307214950907491719061303458315807387880369610650848169673162332640955828550327742014727722019781427139555666128709984458468254049225033560918137520802790889247438340469456051236310550648495153725090888842172164364031164514323540675859295514324505602209978116088748484516087753475015028867534908874467697634181458874519772762110506681505388802702856490964552445137835648670599617929355939983799198525035073915045029091918503804831970057168609104131782997027272446370125157206671497996244053417441740930734194674679716084588388547779594891566330295459705485447540888710450470866666109152840899830366384386869071151291349315691839740250940824241480656287807870468442110685554024546888739496342888112200555830724551659503256824178653521816709981560100770483235314820341970323576538677752433418080847263170316540300053631221675016294821787853347437841952799111851223772465768073391848973243601522332793855478859145246525665690343463910182673168866060236812403414451359626241216522587406189636082672103619499876934149705727697288311833890558171234324694452370376691871552732842709476464912354380659066543708959899964518095740483161071894166643671504504499117129800668062621809829496680274620237859539814219996618303632677639541690761123884833193908936700032737958587188042097618035234227087444466972153588806865469126148907482066191348323934217131630779196306080403545590392666850352475726923140633670039378186614381758762621109225825027544462774703368974915205085141932136209205297539582126775988099735836903108526329774142650745171278383550484790440098723141735445971313743595210288710249009444405293593507821445079498118412560517538670184301877527598702354588471717185729240639351128343027179529098485650153052658698724242632150308232209728402273601270904468968804803964229759696507728158999693834176399663935295253561774768432944348820740737819706878183179671564719661753837138893268039806024554579020702633090479809016275271784718478767551553924898527346856110951236934317129501854727999201761885361470201823594772275163289283665483592463978165559805387505653238809854295586340621836044788074320144922848618018759843563392954903674796940926797875570802813073746335427778058805464434569129284182545172857535511908119304379758552404317327804208326551247711498563990498458723697295478927836216598270575234484794346410702390468864421861710788568448447705100161974250476361423883070655350099718700015776166661535706552631239801026692490977240320694434576881759164625990837113668551944281818105933673431081110519453267921917583443794081566645013348328691449719871742508994000175315669821464490230339853964479957906846909354547147303854057876086883588406677705287439239755313007386829960836340807574174822472699977903751641195669136435860128634048182136969478644286304447139442757144752973046406003246100428132545033539134710945994445986832883768144137266129089205119722318220878539256863211924017697375015234972271086107216610883106460308483348315461263549608270584453824178996587186595961498764543386956667344717610284808095267699236304324723434000525748093207980418413971234368003696293607746547167876117972643330932273321656609040510106405166672658409410376864155853228711238995110407556200583105207424200737045969336863205466111302886788697073519584314373201687550318535673929903853941798981460054185257625529038275550663681823731337393111086805320748417000446211373949227717135040613788726839872131140512394859591291782151930625967310156353233550735345636423409883040957936047987172811258902902728941224103261706660749902626280747069398011090621692460194950138358188614519604426899134580053181802236035464689816952302879698807077395307682097125944823019769811279095123516335022770527046696766653054058844480840999248356847904465667855690661884623967736749197301286596552911323060830368460329359784886425515972381686782468521669454991896848343734593574340297972708749868195795167674696052134719423181382652856323660402163012735045454424949571101936205170933711832585510358761643863983739838732568910233158721311002444964692962977696832536311728928914454760069295231791439858902089455428624421491243379522933049560949446277496663728292508160751334916628908342805886982718855755552110197129073808023127540880770456604576335955828312717529436665815581600707762847544680106467269360924846049030840191209376489998922866162832976485021075091672745840705016240604676498916872023911186279364023389760194475677004929202831769888993225239040484251320026798551140806775999100183431430778560107279921607981257200014195020444814177048877259922593158049401436499968218300827619612563580948322215798911269077710673184779513861725494896997718882662638052982219813024304316497295028742766225919448562097747390667314433627755874852700437343172945807937328064077852980456655672469303455716244867605442349345149286025763220054496197022239893556730122371570553816506815889069364782025750593387028379878749101605106782303900382931314429216352470716293591249899599582438139959008328782969092093677156659502573827850800813834129127806722557915429938169602495428779007276125923889091811133900510928242407066276001469115682504854151782167825469072272220710454229106195510355366897651765979106217210109671521636912951133871209221822018163224987100926515244197783416471180881025951784745259141855214169741619480515657403840149099230879456736247893205587436981641222187740870314857936675116101785998466295338568888013753871766858145947034427317155150491013342083812290406549936735481461674587061793930916500076188862546515170418291237764964002952816341485423356770155121979860345652649186598234694042146591361485767435724323718016640929776826027934098712412385582949284984668636099768270572918045756267376153657999601975563006532191485012087569702024787925311280467452864686707694705018710637313996218714676867270267129906496193257677141523374535344862134843204502011940640385842067793370626467743444272610420663877214103072948251414858198948347006356525188406869033245260330970228230797970031103108645870328807404238765407131142064723061663182629585306236399594557405660995875621183031462115380426627909265966399921660049026979205567833837258612881481661781888602586330702385656730807221630998299140107743971472603409595089823178075877598111849820239020665678562583036583873293326295973903990866614900278750912466740815976757672024841798789191237252057216409108534505932850848842765733006670471592278735430138444310938148397380039933641978862059694794093887305083350961166450168615765113511027819478506454886397344732690572887421622485585004637722347929038936926486789635083995582803572082600859531075553294040127441135736064504029084967689410301289582462850142237606085444943895647753219218738224751626993544129477706492265905428143691183847897331939259818888946407220694427485541457667922953026086521018994347242242468672085559545950796050551201587828424348427417050624686898219115147148191038996429111423166686358130511495868914425501660960473707770234284996535844550670132031438000256260318539167141556963270131820075791971802369218828667440807998326956268785756092290606381485699778929173446273601615069223044932725341751901248170466712238530949213925155366639845282870958900313379469089111949436917242473813262811218709518735924970042843774934002282117846152047338594720708744397754274732905986357515814586013154698023828830513541818341063433143834451731638094438738463313750964976054050544347358693845109801362239385839218328664047611179249981609407863695782942803974817322401937990258314394431815715927323336109067875304395059091048358704146312415298685127041704737567910304909046025711019334546464754736310671828040102876796362603608454766101920721734211372946707783542169563308798851292285655901361313044226849933814009837896721463608437979921983303195392466375529036027849210829471829088757604984739991463463507481576020569711366391365663082988939276275251226250434445582089022198775370496939563046873443410525544377163709207448679637921956165245982679805424542842623669093451880222743508427449155141480491727123987099215138707400263417246368733982340505196034263218577758195705235393114678289264187213097711124204678754160199984804483454796283599245840811396448207408275136884428269299560917643819709533193862776484341862509837575792010682576662965577480990163655539704140944346718913738217839270703366722148176821538259793395522519978988623939909537978196040369071711402283806117848141758180601185860264753208005138776409275691689191652100809588723669451248321936775459769700683106121938595513739874932752417159919566076245163563930285216547848615671085100243420922054284721251205546375356963831529358482739891035676556286593581925182061666434632038919617351195102917479182170993437173610503257469659983219553352061981687442828103184675887423784639172967489134238322292675640444531219103825969191112080399639782378156442651207996733280870474827092930310113170209769003215745432623550615437780798595285764878639226125795241473314306489560418180407033810484447924525416455831607548333619033181273611239365427391451306810825090288828962588110412738938307762981705124574632458314826322828500489181435767153503777258846069379049497884371714532959952805041955900924422455719008044260024867988695188250075425022272784258566960846088678959450311337424491822562852862042580656788773313969381673325835577934391045301757434394751160240326968617037923623766829243825588225447004088431457773458503271420230369144708576612977471068884328494549787981308422947014934527343189834060812211390427118788695308778106088847996472932953512220118059970856389152966968898980967667348119463874750904592056988275036999318091692024655581922342137725139965076165844156180815030818356143258810808859575548453569532885613106763120378137397709485747574339500167122553230192960993060959168818735550643310268822388341333488772577883934065257766978868849308437810390294577146909788189362978935564820504735070232251748917858040394559191082610907561106973770419144514059363484658702295370975389774100132906903776493494631871075817371645852802579225002181868413475694250082450405938268997032195050466098373415102510638632313954463279659723593578081260630222856518539971291383966686376136108694864795921720361554117154948084338979726597957146009250587620111711240181461133935436252645378223165517892151503388225336535348937193036345056299942379226860825522779401250600322486136149436506045532283157920879270447490675933512898252478669693470153329095820387727970441625837086658278717794715783272839666261208412072316976659243430486676888969041765225532367092317938455512715028392130418276556154697534825683919152475800290677924135109532216105489697993907767507282985558181279238339934142239724626003326044712305415063047546054387397796756453864278698194224269852391291098271329078177397121046165054479168327735037419647475835808731318907764723729459295772646753749103366200750405135714046792880849923216564469828961411094256293637200719613028736068340984914577688972076405832229196010618381879484518722236282001675695848900935427968319104741287017388138050082505634453927493558825584239930433325828363518129662900532649503315135944884475999656310068026276059352324243125682432491645879222335571083330332398725959807091845319962879743809301010003915494376686696967379625245331895963845824837257148735254215407338225260923419578116239010636313364421474157056788568036823410970422522512728171977009897826600144121623273506215522082515015899276144838111840584634368206086088447442845693609571959477443053158322222011608660074245855347561351790594053930547292654865291964454914796508443657242735415147490819270600493963319754700952577040098539308465517337514850036437023886718932268851299851379748835335784384819956982463126593729332466020412682127749461227564705110940444946369598892924005186790216021536214747981368666008138076583033593350307879281327165744094420752949689379767035278215118912153782583396476328367448507395707383826903340984663442196658690635975830747761705460446949689019351880276466732770615112907722181604469686709019123544646104051718069486695931351957920699515798179808812699817191665350757247988239826249090267585754529752367303544070927945810707521160374445400918486684562742381356067682464902254996094692585816605771413146198029515823078657550302289100981035063239678815622170293412158127565084158908630539729293992259255011744467019615315691978054427956522617441798498323239041984988306060635001775989534812118341110412230729864368352663687059063232550083956962761039171882513510753480718700031930566502327310367719020559834834597547774962184758675200780976884610672355974917943936353238223042482437998163531415774909204280046651544801088821872553498662039188876238928230844080177012327402712186584999142965050855227200454464004431065637478723581592976175231813822103998269352824112625135092275291376429529180141041119043426227851820848185380294037756236258501040652985968958037513949097959947727610349745555419447432056001745713900074786497011535846498535773231614883581511691761550733107237343907740676627256260919597643462610016613069180584630051726445046951594612403063325059867662891964655236850590099599875993147246381063655875950359384810318262599382249235902415546699166504148271710871111682209523012674423722334682594452980854860952978496731991565529917954625729145662038806529037361256126265772915623581492146152003581973162450862254813118616532102659904935900632686985354186150570358001944135641006374053230119727860718679216495514196948184230085691516771712891589581486986524305224050994016856044009427597061244000027731720281480894963404773957958744862590682924394661738666050767634276775199910290499013769001889723370891342213999749046859706158083574310828081720556316832894455914659341946946190455734119286407467881495370261665543801905078086999432516286993086815815076467711821569925937262327018343324759016630469634062594893948377268727414638618701380235517710795801776489575613886500253679999091414960407118207874110865024319576583320187211508612201053457044537240705907818597782828771348174827309961317394766377229665741675820390331338625041180649754576881981536914787495433397773775663021416275455764736725475439576824777600101811350746477909718434479309603167841000487785903060391531284771603619165260913584951152307158178920619833514049653822551304129776631545198589703721534131442619117875040572693619764697815507151463038054184397661295145624873483906948000549823282506017542969883110324946297659621601113880270898157597928746389673161967118964919677248311573571425498115487983196247650276229237058728029182676096937634982848161907492358333162461404456305764782014323466753103654868385262600529714907584621517674313991371670813372547147099900662235273905968467377068814618922992616964725819754407982188436567608165134186415237194069858744276292832001550072160313908285141627608811672598227617031394393267906938595764446195434239669590739468837093315873017183564223990898729609726073344624008789452061548740442101898234698214003610293936209363127597622347407141100523095482121613230014171302062592216301177434255898986493000879896505315994353459779591376171861948766860079289614865273147934622608805846608834008555366840831750996019746555629060865434227655386967657781032489798272324252021427280961317091235885341767359933627538041019940556439520172035021244413665621056544277713047049038087609974907552689569666091028344626743367735764649504948926887780124429051660709774457625211552903063279050745515890698419341725941211231650296786816052745774236371963918953056021133702676744293321650429304432047596659632496507940600026959636838884088912902825745676764930408223396150474439711354449708604850735093117762070274122418841739413957384898703318250287988465691539488220921017853271195820819289763816148543495871419412560923088716734754778176846823716155699388213354206115872958474532946570581203079015198430414270701128294539624900375916172600291970477579949555145874987829029158498950745670498358014544433046084037682118128246384035822709665492894909360413617017337135151738647470896808717963923556003490550492690982239864739107288167140608781890990944346468104986900466756077891349663651763866897199974185066783170464210702494681566986932798890521423827958217040761116097312038917617846753915366773114123456050298386214769103337895595775639970610961892783727942081023993557713591595649913659180823295683310943521524079787243258938821966326471655996837896775594959916329892954299590744344190971977033415809763871514160548802430784616052602457280380230359327705751202255419913855711461543475606983403712998168636662577237163897969550874447236253901134358827156648766045715033127463449589600701484595148219033739295505858340864891406699626874768773284888434674565516138419602607270079683410055602514572094849622038119764343721076711770275973784665030571404667602862560197925642354654175225438188566332044016728097917304503178598859873220947222177245756418131715214429694118182432924531692160299788954526857383142181390742495555642839775783619638045261012063174123323907195981264040503174815066107502130854048913835874927081543971867046480845802129747055037626665692044402274195518359640913274606706517027176927273118826916745837958177016762642451652749577852628293595554480271949670425292535333893929426709366539002418457361699006070799822585902258917358991088649997727120198068486389560559650909158981321466521494389634966911665870084869577175136536746817913386171692105488071591780283116568401835320366058447713725478713509119613568834217119475495577664610601773563959080263890328011561000937334114218285236041080531523405532672756792903971212829456364925692176819027494854465991488596842420931511714305063367476727227643990140277247282297043692472200683218165023162773804115834368047097381131502251789610124330363016051031687351504327645051870672012934573078349360668536447496926187894523246490702236169842311608114800151287168061949306068178140743724363375126446534230974351924958355515243104835552984764977035066358236759246219869367446973738448195015527676419366135665470661616268102566558972180614212576244372455321477158135078953587540463157812436689196140073950770705985381748902184361633777861050940015110048915399931306783932319410227842077320570435672642157582864065178405975408562253480832242224520257759570659962494696749426638711691667553262552166127881982027066863957083358797242506449430570432025440073366861056987987784230584320462218717646536050472958871264910692777411075177577561364782028897335303745842766518261870210638592846087954351540718587269092948676906995940137928359087463031790881556615627263838030510281459437088117019096217521687760909038884113561365731850854460188354366563408720315890190730880828497734436487697608205229923185684114251693089720673203122060647765518204909103235522435260584989411033758007959615931630253414377936768863200678130694033967441606814655940625854248353821427061203604199205197493559253000851932215980457980014249880615762506397722461323598950074458253572092540127656233320754345550520522601620960122246402765932031989452004084486198163312726053494977745924298517401976608787329435662208890487882986535753658601466540124013353863007754127788264268440951575626949324990393571091834176569208825070032402667179890461849146132896490237964399203514363501054799545525807846918289302223090327090442727628523598676502197868544445273095948304821774585439241856820101658884637704920514508040633035072893955789305366247777082007931277359307743811429560221860069869800673051178299611491827999999615285472306715134697480034030041740735969217212280256596094970081656640064081342786006560950479083806195496280653193686720629762512796123862403669128999903306588690128480323309988616981881410368052089427651584339303137104412795177698850634087724455546767774379869964312771380794487807640162110286524154977585942322801748238816070501173254004692893199583806899817556405437377679025561477432483455037693695819986292862836178344614250198975193079668532492278896901923489885277326374407036468761345125587850228851741410626040014132877937499560881546632681920096570914525884139198671544972805760016398996608768310838067619334684944436951241124909667282649592656238993565619579436600379291273690593736871840620688921018570053703767059942243055950030522023699719896896246990191030067163413515042052206467352989203030974443991516911558637755992083139863441502231209801589606155355028639285283925670765123307687666280576748578707565184176847248612710865438368519190998108414983254454198374594922204715320407563367440900252638258930890753149150789155610375278954615508312611558530186216980545475728833585254626278817802568548293693177137986195823449435021069725347102599930279676246993451579384741570207213888828187934788541548043430680468035519629123229248404764043184257590634333872719632514095970370746756831946146600570927066918152144892579035026525534443850742079522161785190924745261454919216500525105642874210107158850347916666366393639712048650986730639400449538990420869808444992730280090044012559937991592779622087270076784656521073643260235610661514427712560160212197209841161542624177877969731058436238698766971983282812039215962510117938647815886754475258189104086661598668181150418845885047716962595692057408156404860433716828345351759139126111440956825447298140951390191724635319485784151292090719400650699642202582389653442741820819882888656851961553621088952696150749537156943392757862035949529781835716741907369684560843745484505969663452571418834043089044155323914766798369542334455430723168388600731853899121533096053979672549288736883739264537607998817780334132374204168552977340989337723997877005412120404806055126476696751019146366732671869740990850233464809553307498499820566319105271704361000998696735319792209880564190765970069639560110967502026498478982706353208393355081292131590306415964311851303386660028092340203473908827880093893484021252038719244836667904137452672775836998031661574720794116501880974993973984834452811778386190016106535203289237582997845832822174831727674640264491664989089124762603500166042239330527417030948136826289909525737476907885460858412483673948813733758419469237009625080263026880269319727050443156848169831016953680319503776216152362547333610880577460548874212801735158590600605894047955336725581133858291979055305975256636724580964162593014937654147253601393201360346869071143252631567875249505556808404037057066819657910882126476603087404532698148590547241839324291061396658301200524360667214234571121324033551202086693114252900994633805187726603568024713804415829405868099999177317765422219091353232465531129440093640301149989911650444997123822559095511584589387895676266573142092345261804134835724697840078819539300158497869390646823683636548162322948835800625896802360662509785482567455827884506583902788212108712738216787224715206258815013003849376066280502950417103859290805927624186207556831863780381129238828942814705717704614454181262914294364969379894112295576940304721829945184866211029605221027091390294029186425630128401835804872762037480638231351677886209262304848684396235410540230861765282017965607126641512252706534719108211848606557982879501496468646364563005728176108243810109955055605694537107849036974266876722837227084531006657481490594206253171927990451852525664433096470902774921343275053282474133528958614751940178075106389741759194205626612617444085748030138315624510126692577152055521622820346786500105589018801656867228051873304009980475512847275404708075246786850399322511216646100304251011238612913636992199673794507811066663420935457644576862604425329649544376633697269378666066984216391244354697796335735612375629686569800035054473383176875173108961904401622532998901428399451921983543468358775507332544952074794126975272957329977381134460568538763047210864091641513457280216414708191040384634283257057921463242599724186492146891116497020747973254566429689941167042076740680370486768026429478622474759632228865527470789024697283371199328300900661466111906463915279539223580649042258598674992680630711881741647021296036842713777384508346861095955447966480003743540528395464763109805290505457824260586638468334952299035847877054499612838091437787682743872439975614795455971974203933485252410403226581765374425801760096536545645813942609654391560332469094835207724992883078172015513004830129862134332834945207289920724800989703355848033370672091267485471255414722239859204528271309352843193213185192312304475238245726126420445525515816998535817124734435888281871619106939042962800113773670290997088943584017562059990605543272253965672274202824793522634826904690704000309689935683453278506086842248483449424363496802681926723323127948042338168394472544574410525955621189328861052663155331327521233891764747946316461767844827436657477658462777875127889624919570092359127428749246819085497183690728018660563059907890032784122098724777101822518301068343545631705494156078926718748858836657391837002459562692805324683698714472345221205251870311010576640107836612549695046792447371350749529748994777389298161628492663782547377928103075981469194557326146687994684730284235468951401509536587492003630539403310761549919604158627780857313358200041724874058816265234007581025611203127492990902968889606112496479271284272171488919944405086221560841981898351776286501118595637048574628050113537462748764076077262650992672396727779682579896069904201612763829773990303320904584114387504731869373837706810169441802813086274661048019505693659764443873336227677294738345247287507396202408378288141827561782383615740085402001183561729298528543090065648341206036156277044206313239934007346207155336246742199652824782720554842549032864172382042732135475682388299382568526334136347801680853541092605841302144922138398481618712850475899588319725450286835985902535754107573881402205636338135257606648814408270661504429661469060819102951306955032201845392509032818970577877452439162709995437733735835983414806867272791409526600376520239864470260050984133123340534230901913140753516960544962363900299949901126410663021218434404645793297167490391121130974533545691891381648853212638327748852624778114261902682199594801196074883234776609054465170264894829216816860565547931386937520608327132744089880435398589305523102557381026529108430295685187908630069590991910440113285288322176323451070693778289188512966134297585054236207252869369697407880732575799945484859986511266934600393751833082768152836731414311685961705351259162104155845682936800739827821590458649176752728839844590217461454117007274058245171231081046016175087160801153867372353466321492076774593986905185586198198036747661680027599243633303311975407141141983055234961231007458524225869714700919364972560918392938917903846570744715187660060873359386965072839729685428510310498042228692538996569866237536226831358383812801120723190635232899298830798401232888118892443964530346981845916573992954693587244689285041236930586615030484169425719468305137406227105196766030325318359452700270981809425096651234887492919214585639822679945758374379133451442107509859763276922059097866858470860236937447895364626838359655739735587922646049789938726416076333454549759562350028593200006989812187664767158087934937454535257458965136944091343686957954546628281624219853308978947341478277734809896222209989112911340627915674853555671176300695384403569258893422735421575107389062892305445008741551536385538978342882616718901680974565114039879476783305993029455750834076392047353481804735415881582649037103895086561367612283831431411157740673577817805463206873330528084825670883295143442745069904647511194766725213758731368141626606951985662916352709347429429851442413729748614818664062359077589465686966583055433324600351850388827204208865447580200036356876602431560523614176418725503237011135747772022155491348609994096075511968692186814344690798340171806399742244776301366187609074109504078621061293680391823838386313618257621575581721976372720770626176348035864533853675221895200752324869680530748713887101438400415052161097971490969568363574470887905707495158331498319466859044927581913526895758725163966161975780311052309529234036593920414570204471385709716458270051395540097970780137051789411946447186661787486912515388526104710051040641452320716907557559413114768334307053415304478063866938154680781000457389424773172625617437498064875704173048469036115989566814745587564286076611576335624293281805190893409045382742979592300339236805361532660144798206133381633646711162092460134939618165090080901949840221897640518704414155366683538929785979370283136544718862242996586356190568888139173191140797967762206292176804711747166123821398813212650788204377829835959092935022365135591726592241808117065244293462297713163812507620569213424763245404332062441142077506540377686694845052231839339711121621874223832450144743480144214072058534348800649685455380647458591626528155629502120175429554434679974446583223191373160922902556464507132550952733378981376180504554666740183920187252333173747762388589827225452361230798965470037342296034058306354332188511163407741577677072634787612023613506176474279336538893115101258300290372364793700161678008277004572273511809388962750887380516586600023062190649589084738714236377700465869637226792950076784490278168166739842926024439616878386642573579307150794358921138012131324435333134115459904427907475037223389801415815217099310935369591173931980027132801865968429711817685638281586498890684016584961748096865425262681048061494380922834631610445097409373360995356860770871377810446854954259979875676048263813079645513739835803213550433675167559155946110769383826350799147832062080195091409281576058191045786818134286900002258088985497436167519658410602215550965911163651811833671227244630983919719134825864831321381177523762894551923147495781398663463895833300076881407257564278219665748162438019473401711589934238197511662812614904901122682566922028281466356980940758977141210447027439948429099889752935025317217722208760427877511187380686587282515453120474512166035515623413665661863534395994310786905594301244773071589051345116784792487574313658490671198693026713620349138742140242886704069676676365769871185038157882678735918938235139905612390074353640890022003051684205671043576479070106158806128458933141532821664314121721301808303035082249172231420692778780398124837525110008057975333938293403414239177302041486851955247862818809504685767414107369656355549975528925612651323312663154226444752025990613538064046296688309895001087535889202326452206985577605014394984176090250511293602857907760646338869917759902969417061136792884842564284104023820685001118411222555883515911789319764918936770796414495931431895461256932535218459502149072429025307698059615257830468882392846892287937256885740059163116679351481413705896203005179177040590013876120915301647268460316167033072838832292906723354467601753618684555807219630520783144183878015505330988116281394680467027299216342212738352604938009542655157680466875510966975596079783318232138552626422028672401519943492381762844872721053989598019246171112587267430261103996489786295406544236953819875087190770585445179352382036418466449509910115907320898234220630698501479282381172598741490146650382089456245594792335660843148731284703767455446027644281844303115409027409724993239494072869349013898008324588035475018758496769444099392423747106914867519554585876418893404230651022257980477850340003456844906650134334142617873515177087848160413120683060418266722383613880678310345833509497164336002921349085511963751203492025625717263066211434773945221250181319027049855275547706897201894595782367720391115879763730902945439163992703802851428796269440084759241528780123306951550301477205876692265648592189158995324478812510482347571786444909170572330375503666223269534154069874609116097394327209438581808822277431680500643428646604360346549419565282508248018073189210885707565974799725329311819680484930052431266274318743466924388228933100854333402248065584996672859792570770514439443803427262691925945286373688227621553648644965047808116345082169280377334735829793031457903337529080446853358052849181538428835864291989806860383111486461442967062594998131974712330341231188121550651510771711759095935072276856913825674701574969414290768125055913860666283777655579778328700578145849910445150416307532043793037341705050141446816702975746677630398875387957268084541194041382603073271632145159317492864775614585819717093428294505344921190033062927055433689939534269606985462451706534907599635230445895370944759741438503765640446484670722373008264545619010954275015615366143045337810950890091822760465856442787027986948383988018560336865274423879785183442092445750464665357109416954601002954108423585101415637419216793724511903747713887684701331328144710990649377534405878144237953477488413779973690889882448364018166801163157722543388303813229229751003408035365820703514296359992953970200918784538214787145198856195701685909352370269483005741004257064736993088085439362787956041459438071185843722250890450155936672383003108053154226169211285767645538755979236108827098480454982735297035752350063120853698758706902395967596608182634518178821850138777987538866522206934364108020765412281488000668621398237578486773615892629572931189002041585409237348790435536003525943586287959970712523875368072671990031385696678101555453679349221433837369385836794954888733790011552264567246353592296739255993196630370510752577947928283156059600756872169263571605514163415968511727412750625173535245927482057778468074767583250712315914303753335477872490569103701008988553561517217056579359437903264048227512008950058689262848836392625393563013277086329236508242894920423506360949442402328814336529785155540197080670718781910361629365432561002723339453961326789238903910165528960781769570077365891555542272431412886727344331635363071636108515206802561492262879749422199501722271058227726003721798104050020824695556945257490290629444717241278770053712794332224086588898821278940321577211694073132692091848812681302965942756542550272510477660460280146843158650116762026168342349746500127967693736137194020436585202614251822869605352685675500708747327503919211798157223507870792930509068310214026300863869277798805220079301705028496181817335014086429176096586440931355737389755344378580644813443476737505758452643642577344061439143602907688956718133198912739911058960680942583692333621400624374737152303969967812277431948255712467254533546778285138338938887663827625397464690227212898555670011245125845273870161520708120984399154096571650855951354850065709842448634988072982997623980081181418519696804438616153572599283988531398403962472995920082517062926668524703677109402424417457276425792876936672225426304668976061633933784673950942644632337971292921292628993513497402354475526643437248130425202253333414036195605861801610087644279552751564994054242364283138554908947237789139385365987781046543182490318811080813528853121656934185677553418237709061280103268746961335443473234345572026489739559027142352459693242594065488397130767002204374556948973956446286529174953857288540764317924725998713408521087925402945298435324505390017417238364037140268243371538582932252245049265961322860050725403450919751540680833839663543775037071300388310812786522407988553399873319188360017645971578177699620213898516861270904733854825729274801116121427471078056498171593498041263240309653665431107159515650649047824338947387989849032583592760410400806927085241811554668412206607124887058709652823703383203108317493841453313286118107884287987608601394957213273573937956173661082392954040968080853714408641205405728459442183824802465005696913957705423219501890806065472861333712824758587500323826311747565455834829628090115846367797151291943702985090728096587240097667054638674922981477214013473505880098738046124603945908442803406143586245799691442149737727492296510847427059018745696987108769713980188918180707455089353785717213077797561428512842523228090591916997224400216178721730852534622246516534424317472619738669285115110035284749558295426444046978980988527691075051706739730859455150621545734678308361361713369307075447827434041665315546034671330068497684818856098150360365763252637173818757535348457573834731674536879806624809884274981568659644497959914970477268077834414505118705353428909195390512132789187301967395243943911224611244404188984375210559302753588325598071831227699610177099805420241022157251335248370866259748513757961960563399473830846248794851288636464374644590685075917928382944737711079782188946357646899521079269451319213730630830363473891388512197797626132664616425640746313011830965262121751952428636898779053346398510952296645313506697987856070351908369133717371747328839554319162151306779579585622071276905482837129981416425716853310695533886231350397422209970264160792370843125296682424285858322388186409214095010360482401930786474861359829442776383635939999878354612388012949311349105016886023858686069894026183539131190926241742516574106296814724169447189027762054611090116808864947756844023301476864155992008090021373932382456055195277438113957380879436982315969922937496288712899652189639628458377229434832457887728634713869250342744317734972467410740967964504403038141290452291307712661443396042715373589947256585748955701689254016286998209056816370112604049359448058325880340277636973182419803715307301631313321379185528389505747035012079941024547370270498562477134053320450136244648511844210467542445585469517744569730890270662368708542963182655563619247059794559388236294710432435744754163851057202627951077398705532317884208096844701412362132009887324047543877955570846582963517310691793013419090133763684814241092520767630835624001956522387504913777982526242139275370821469501162671406255942567668463854315324161701296790634636677988083096777159885095980755281437403987041796363523483773073240250348273327368475475608358064730027186706621235139237591294100650552917508965393825092000217336737356819580963268880630925621172495043974639490175732582852020137659933748173258011627785334613292772217539800138923926655091380928321609631947613562882441989436967090159727315649576844048796300351236764616805313396780823361645035113414861508932639277132869936203000461439509768776157404199323121459064098269684911163238339492007964973198960931783837520683331509723035536024907892375905273990985723804714683309880193584547986911019324515641475029752106102387756918023953730601774464393662184711585097582150969985928709819534780074633348509042183441117628080505155123659328079117973082490893225425056390013168195187460559623741927200978477143473482949562875917402191216969721625968678541429487798872215734953332261955767260435440076192851391112173085649543612939530546116074868671893195967763381929509245989598088351316668418919991162127963619581892119011929347591077630338456159289313262848632548707624588252246138471674389475739308935399927475439843898572506298110886392671584896804606135229776640902099774294344419043345251484751392130914157726685847981998068642770952920710818239438086675468555006463408940116577822546510677722341929864947050790470816981416305494076288120739055590882030135423959706557368298539351507665441446000070939636927882856114268626499651424892856604315598891375439514208216829498609255871187151444596840950091546882709249333749385527994008052261834732968162621346260121960579028182028776353788132286740982193307314825552925678107978206438132909013898762968302345510225294955813462241474793754197854143526935978499143891088770177484123158729714460915226868322559369404000664116491784953466885251517847360991659458626795635610140771847694937389610925695879518606018109029705104968082363148264894819158674070113664245131495285167626299108964095195358068947146498586106146877683360246555851718489785752968538586283365235815686959453510433262946220220547943547622664214060656758787319558226672212940227534416666512016868763481297502703324552491050342904793266615681333368678926653132892041793814971582708542364044975466074874856116676650237462679376993884471989377794797842869291747581641455410298705654239358597431029234420092324646180140654477409319947982934167702814327687499005903565720635583722803626326155461460721898508830450728056358494337593429082793763574622646908899052646899158695590823725356223770644882997538041977297292440390416885682291020311955306155177174038403670480917556338974770485533025706295802644315434726367759671149235517713990607167702408451556462770817075802037400934691400360870183908416811364356292302888561740748049194095687153576605382916189706472399313318461980648506460264541511151887596843855503957985860611772588928074777608270099693081131133882784429378482290671698046861659616994533444646383252028438580419148611561838987716302098262387920580027033503479600666856511981334178882036648156246244352220145839367633468192268601477031552764826668647826880825263807139668720899863802178610252013771982709813425841733091029378395944883503750616366953478462157856540652629461213617123373903099744881379027125389474870267278772157030307708055387913993293543673370400783287297660251334181280200003477890261059490932490573691108449621090433034151707992500474016982909197385025655316742843510704744847776982663366564364961127155019568257466309997880810099739890041700669433707324585328878437329245946236853653163828508399685344384594230949434883113277224758657138138687549263642507024461928456734976742023319301951658662507298942479139944703103168106790525500146931689835220255761200802354371910117970356541613075282119272758841996457970770839163396595629687414548199682061988664399541948797994727138148516167346235624125243709592308786898706697089949366507806868313811721778627156991978317041609460909511556518286962495087948602040088596367115379811986982566778481673202900706045893965106865452785006046432377985933692888291937725975284081378230272814058625671765932383486777166361466338579646457340857159802495344143579588921314618759376299434931893818809479849287005114756602068362416178913154758982217378400859454476415692658449662795476675195034452305388528139055446300836525486645401794669544908975626210956946909203321298036634258797936687889986869431343320241559511995674148547991216183236410154702371064313694060715447233791607293236386585266116835592615016808467479558588841950688413474505254917179275157162935053091084393920432470178537577623817982946612327694007429298495964275230620963627470310266178347670255134130544260337651866831423570487446053970257078101603050297555567836310463774325415906805013393656770547248581038307145270648207919965474509620485145492295689581955184604522054167048847469133569381808040373983166449631095267610598880372505153784985168255120501472390133257862791957746934699320757783612464172005165513061283403851016769019785527731512665490688658248002737592868696381856753655168715465368641974467255918245142732791209868726312065199598704589276837544627205362724357438931927695166189260056160967868026482299681340758417886800993011396664258650716180334586999258757063578141123492011304873277875606051873880554209178807666943197841071865962670150908468439530390644715785981196606103809576287482107969618517035796376488372119018611061762936042637734586110741159156278066382229978206641468141744714417753940628050712171372318556056026272340266212684078954246540606848951313217696387765106940542756104840144479781967242447478264123512775326017544426956940982870695592968734280968712272773729673274397668082384753342457019942474573888984633960138801170367050281553850859800632159328834888353812417142698742240515206188169138031733142192804556995160293418801794958147510574924174803571610231755079575093789718043389031772825973591339992130542711461378642272232571967204751859743610438106704336669422775261559072369776450547230606359488443076784204479685879363660354081660752247845147429676288348962507032922077907621505565850088140786497489472666803222104683800268511774463664602649106630575404246903934176728059493753983369709104829387851591293428843253877427636590738268693816955980538272388071142708461378702176505991018636795648456862376790070654573149662028164495591063453260090654252777548204317548098817732977384019087457923654191862815127347420379115790135449403251781256660041655171492635635175051014053534969059300668926975187206602540979141776230538429180241825797836300847366656197691736034435663003290742453665945574397062047437105827750901458269781516596373090337630583692841060714224944018772841849292660394301388387295701607791286052941065542617494290648963011761690525130272467741477053553439947279679901062379811416375375151786088517219277127594869872623485995295054320922687902690337374370270860851901313208791366393357397087869372683490862006964801684732127141825446901868502993515235778600835208379004123943219826614296851451506945944557819364157746897506735920827610849770245108074255535878398465451886858732547735719679889995426397296171779129831971165655270742049447090651280963133070542476137129698815099078422058078936013839479517540482597155604022338726967456888280667917425983640510373905352429020290745265285856159501309196868343917110237246862344997248973552599671843934989663785157024154084926645031585923718244966388409656598155689712505795877699104361314666556963168138478542404178227295991505722807841308974806582357963557367580607534336240436488901113292410003535062943266214968081339899307803666200344972830401312730416696013120561277304296537310230274622658262020862269628304573657359992700966002789790011445575018325194060690832378652109483880385699742843058458763686571043045136466025976801999629775726312047735260634247689161634922801010709043468312480432333931066134705590996397409148372937301118412878199210461504059651967129321361784003352887898272042792231640393587019138618313294021522388069781972853797165783212167492989701098331623809779383716364123392984742743485201887908304553142217296886220352248624550909691124505715338314054042441102858272503418038210919269078603705285094533495834149290332177551250047671041832471518391784526887178017980170493193192453457673255688801133353665294463822264674279298896072145326522945100231586321226115196952241586172038485964311705065773388628600797063945552945950593666158024535602486423797384471463326604444844176008296629692871123716431548722197554765334456329679783261797790009225189244810247623276571176542956680872331649577682337316204836566609755099407814410840219495950370035669722067374727172620867486572858514440925731510305702629599680865122217523230751333228769873845884038884421631251618872763054555384250763398435513226825926237989603305319180200858299077343556658412271797097167197955108606279223931258214999438150327867466970510509316791052400759557386619873795398691771350243579478092179598286218871146979689952665996756038013836673963986556832817105876009886766408327667693365239191113500256621428642139280505513059496012778207512233231516737596464246618526622064315756216578973713007217534478689181026163724916366284180884875210480092651242196127450286046352008833465483785319741789301243055375039703224661351813148834153594113593702201831457022334287453811769027805237527618848677975710566570220386029633667063259682894091120955774431131377407369074318212952243647526643148701685875248742144992318436020054284621401878058888016867535377731231770699805595511507765589843861437532845044891099002347003555366305043394310154778640089229569992253779773755827209945992218967763218279687520899904410531478835894310982809060187663908605673952652181464951624664610713676238241811144611366482542199558698154836885633818328582189208859057187818995348453624421251361935102777295315496282115748842939899026567118255429155102689001822133849419184505878685557757510061151804769025146498697122384325698596937439327935266780754023778071107493083606162546851426199446700604290882121288861314795503226203331716153186301881045293566226933672397358590453575641504807844637342018320935302908810884677412278965861857205325631989877568818407443420863606579657187513159733989429302831547767591363317641404136884914548047358066417283593371664629832283118625497603084348841681255090444862859225703563168661425586135393183742831617553631670229060919091221241717820449040657876266966146232617096353559437453084574915782228755164209456725782772989757489362466528356113305166572978152968964004707545603805067495599900535149613428822427453829171104339629377371321979295770357605265792402499455054255714524525222823764984244775581466025263107274973335734274026286189500279340639307906922834883428569034793172420912934013080624949359946083013931906102137313410128055759843800594657646548100115567161326085479189345616191811399094382498972664000202806489514649133220517588305197588979539519107075210189944786416520141028462010383686770683440365655353665220603712105015924168078010889329686616993331888545530889247457176822329481618252713476251962905682739830451957420032921563880157421737130991984769786503869962655826277180650631005019916334348615507522978460335829713911165823322986105186525841591289377523801862018136077036384652837939681235201765606608425664790879337118915142664817391355720448263274880042028747343018306365923182326444969090821727498803258213238658517044765865571351040643965893184957957931555000632106334467533447766891125570570365043917189023530055786898827419608824201372342419299115391226611946241218399583392462724890154142057794844173786528974060436984272763461425738686177427272789758613362811884274929895259841596401303159610656467565816931055375889043575290995150961933687418963968874629714646803629338153882002338004326926080897561687810493851127806550820070491031367958160586224838197523572387499138620223639931830573181750327907365925688110777491148711152805148697060231635209259912566973134051171353237011132937029702967336233250621059728796066701225168813318014361381267739421497811186430787933700648707349013637671945121888846172801586646295894866568090175787282892858304311093152969164156815625016691228845087623818297568528171995963024039074432499965577770717656939158619333331542397615213662275636844373356477833077584764799565932706023658593207183209680918952846871213970472785424605244191417716027167478787395677359335489229328560963162134492806489770063685248700826832443592518665190668559523619494590383298333679561001138972124666612623609339537044053454178147534697090723400010058156556183560339181648013686401067007168987832245384768145889726382347408988909415764235383528138469547362804696545307447586467597394765522472311019180039441153586052680478124861365521517320345787747149595000366450280415993568598188123284494643994519096495189457910976134897708338583550625076993911529541543005380532727311349847915259712533490380737035661301571955458186943385994493987538524469837864495189271219048916653405155937233188245563412232442686297914056460670418283461493756764164360899219437035659086549006663035102245181008792446846767866191681890140498539449236761817878086635245838723847120184265110240562676034679455043904823115621779154308411559003097700103975598514397475634968574045183954625396901861923498866865011700956776061207338684501895839972063517343859603187589507238037073917513436122016795617858002185480216729194396089694664755123169746994488698487008219478863314611327031695720570140434415487665521227448825559567090808423990936147928001508998371917580754298685427048463095836817303473387696249204521125225037977216336457521533147342419301501426112144030216096009488552790985028285232630948622614735433070390686094045239397175422035001492042929256504460789984265355505571063965611931919411719310628856768186866239568596524192059720058515247226088923639793218779578652774052655287577515903925260831400252389659929433681326680802181562913604911736143535457468098357302520263812156903811067785873621512714504080465974881908453763603012603492615534449799253948993064750499012269223044529432429284602026505204172918951867496287208113673765153004347540852604539939820695798848654328205278587776528304519793935690445388961327714343853460781508290573353801640988302387875130096018791149703497907899911872935609926304695971546807539725289970234307949888667071180992625822679250877848701899184304393728444676184149283035198450985706382305040331369477715644020173348044969203715310950011962897718918135724762264406355928921057945038796421249961605815273954907483631094179585184794877807057436740930236444213323828961806142095691715475650551910251373841270542346250787547300215181537484006347490114638315954629278082347071870508233840333146678345637426448964602976187643450454210807461164006792687046661340778012566016974400041467127962348489522299255329204687567110860762827471459850327266405979686288381061615122513005613668911260452037637734505080854627967730602141976236435125211318596585178632449737562642728562879378558749432193271092880419508935482472817341126344381472977259267230105220089126032759420771803257617248884236318946753959844648400079814992786901959189159247355529438756045249459003810424301727700836312126013517843185451587024436922903169272321705182591825671413326555363975801156029162905838498561901441173326992254519458039709635712041872695791619102784806050620777901890175349126619504752658535217631028247003510591238729830992776962021450687790973157647483357328412446606809927606459963980717058470716974450482370453918269227311750751051836000803903525900734242885594836148159938349861089715249753279649226904686301171716460271615231999241764296117412490828841298011919696065453846636588295340355408872299981270541602447607498028915674034005173692611482680253441824588710283656723859666049708331456780858663399005883118438058932409008394856518281955234233342152099542121489621583012193191158071052620519006329004667420022168926552088515268828898882698211982279026838408144111980600785436308452174742180825638619991760823670775445394521565000113309386527715159316574094283632360562419135584747678042522005159744898522037089436187039158470019111472397969999916267759964829247218603478189587220196007275950484237736306329329263808374576081219355487844665255241109077776483368796337194321645611005775716398760140122016055309863825373223719719106512587999760530795266901588056781375922738582850086176280970378572540619232251939698548859837241771369591779300169131216061240642838537040018384878051237626292443237084203900483804943726789795723790134325911979607638699362749959959068704158238713055102351490756913020911421983354406833411302928093377230937850036320230114056975630472766057381740493427932324337903340426631192542260440189223408172688553906094869951629541408124044167269009717288218764652066195894920590233874302626139594403429828306911062792128933697979635760338273362922419028431717316990304199830811763144203415507218727301036039798897584303422540901976053637848989854027056936887507675059532461245282289455509355207529155193291815636399711546239578605319002534103987635053772923461254769275691854086693180580481001070531814582771517112909676735690781057681766569386602640360434491440635585254387666437373855520568064050985298322089451704894547241170443707489227018238069191202967032141507516466950857016411654433260769395240416943345998744962983840567415564621246807532389974387703670470646334387073984512119999033978199915234258448914644953124618977101089015954298262610539603054051918177366884351831875834169202525978754019199018099524795899767448676011527501958692705816550692697929271993411381771440786939457593667423234731737131476876353791628932482510351129026050974911572420724114672055923839074313687742533561538337973388856560952917305332028874284651746696831759615464087797830251258339469595528210327510727172927895484665723099208719973530164448747570147693792836873230686385521769266975319675595451561480682923994213439116582047859382286432021152604001586359148295281718472223006266379575786558205090808544038764969775407945504266065512054205381274770785123738192996791668887481360657249269144720293297601485486038537339162897656279612077190487723753025806379555066774167948323967587581999704038997504492802275565705989683136653698057125582646831404439432737286728405768978482338637212259921115732458796583778599240301415842992210099056139550901653676417993472752313188754219979966757541274909175617302117795293299226305611025097900442974838166404863610475516981374545045581776165924437482486156602784756013971468224527530171137472188822833373690956890487300659536251403048199423981474922370339271291170732877084423879612184930936185517248433131613011729525740124028261232007615637052058574549937991477083677886652559380335077403491699101861881771070642092314745316479241429486452458747833744796167008175687686543188617441715828318375714422403799841165110316521317481633744749576662655780986674696061418664762159864142116051200252238258499193398783363626382777109067616850974312341652422368438968304324233445025318198691549924235726990672448380412609169565886940040611621532037252551618867685840679300342784107835973671532856904354782346766325061233056403714301587941197495995723062368155335500814893670355771660851150189570543696054174472246792912160450312542536713609115976943793723775631665159957420809632018107244370380871134549296463533433872577062740484706613533298711569743735603612922730130472144335158953004310811212462702716035924251384935526530203190348393683000844601265582632461756497166390848988016547464837930551331484684361804587492718342152692091190672734000016084741936887897662124580808480510135322524837678954089242519692181665000575085496662422109755725742128739518966028337706852641924914084108490531105162517578535272598774930777183758065327407012241811150124341287035451705678442503992508604030123605406772949747046876848444494389002425258126576296196902165825130209692123908670391180632929891600808870554698385941642893345391868636833625229516414452057469254347294749832889624823410533105168192625993261651168775121803826381275654354423764803655376528292296400224751743969621185102357262836877964074158480102097836657201320788068045075555595584915975731548272770087595239629268744995858078812579447097627922230817928948256304931490449348507462166160677363008421407736671767470745841943620031565474962140965076615533067574521782836857628121504857798471250685287572995335121291225067437096060629698986199502217124919191084388294513959867422868887333565321682101796099143651777201736164975299034205726463506571902754433113534222059189069329041681109737093981865538720618248756401727175211452153242604138214989776897928288087929672736450379961170976342073906430224570410093795876802797599614075129264301594675087377648319145236638147066093827600063691941255546731103942952485503918015334519306091607613501108973664604017916961777835513609213297398220978812546943770679906026528189943399228543869697021361019948802016669963249701508831263975451603984708891033549505933741674258859043634242156573457088128726492153720396574065983508797076835692094335830382224213618878534634540600751622888210026978277955088863700927820735809741412344302287626849132584135882915017230285722419176557110834992423374607428698336157760088222747095312040057267088342412293459511308262184311479678145893378834082337532501954455440845856795418043740163727419084571241894981918851760987205950437824337446180477858029795929780170165635482906737737986782468702168793904325395109668264951661947498054534239790686226522877113237298667292646694645867768101162858334092474153633011540327772102219054225666761644080071968159949857205235026028535049995727023330097981300613411570814943393286645126756655693832704315895329077869028269310431949825185127986757389233357947542694318035553058647406557140007950201928019180538746878435278102006630578106374631058949252346460709229414448986278821212826264769864864555377756611414495695699751819821985564896292504257804860613836781131401507845209922008174008358665875092105893884921301788601190768933536675264769825987119607750949741564104338918943916505659594984397408074322754356855121911813326779568451097888864128580714592591817093160500727789251682060402342036800591702268846175730188446988239927245215934346767071330544247541049804086051147562593605368775245011107659849061592130714362314370840656184926004947981564911697704507633363931517467911517394213533624925341729299390525902676497609031538015906471413051058040195678995496593954025094093552284770914699403993199337052046866961137133590979474371257589999508094506671700925149685078540981371908348399475069871743760211344989819977672615384253239908042779410628097135926373023056663206873873245888843249326355209761435119885014734777754559499610937713267268759241699337359624030458628451970851012250924930532062147160180015876267954198287812241270383620339517686120313188422998676288553695990733578157784965717542392693956405052485967245994364616202465835748990038727508299655782755228910046469534099988149944150284234370459693601216363958147888756861451383821868608872182467086754336646903421137070767080063358713480296532668893545349470480189774495204682037929225128614093912682636409923725669169279625822630244914443967002580160096607546636704847432419181808535855482437014333153928276191382850728400201880100367198238670250291119488377141289071991244850590138674292262297087129228492924414841164579938051422109703174884872950039484952857713951404009706816146052506239129586851015077539166246790115737904011209780874007122194089461238191281858880185304939273873100038554444311529509350152014410805257470435841754140344427100137724431291466344476960772674414101416197853321732599948347506958853561397992844153139263782604035398146195635548578282676095572928921480608926256776901144563291121988831210675790801255054945434776516206523059317969182664540209268421364751458579523203767386062856309896983678784612491741331604270368190148493676959662952238817004205291233547461127837347118998143870716423259766045163377431493151891398983077211326964669121292730894673759817547767953937125535181353115752825672703395974539920655367766413165512018912857475395627094823561730266584912217820788210043966573525406177427724759652704083600548925595232125398946613389336375366483418766587988875806277679177001730782862649221803195017584289304424973771230817165987993248151188452000035340770336455324085273178302236700956277807596094631772339401625062250406117257945883005193159562283003980801357893908078130773130968884247242329108494122174258895020919444512611324364955928979321985662687701395664206654437974367658442683223823630612631508585390422189415646026126989708046633529412303847263916699067459113745401063409920036475083838002349192287383722711821692952235525781176840987584257512087551396226003720977556103957455030355338605798546853218141085217858822928863836624536841714808450689786088861179537565911575330917040095685874300996080327909435137227626337490862239938983740372244940058712235648700664892015147449826554248149481556815230444532758802126161134230702933651425136476834931925898280639945713400335729620864148390173291660753347870916593018706802199568783026858138647128088415548437333157060177523792727723846842754761676219550027922858520394602163763510383671108414983161056176729036065862638797280731930910615222228475566516831550617714148384946640122448027661671083864931690010040140037954799825898110345393597180443260132702366900591497391337987401090632162371025492406920136140267184711694532497424214698847978584714314015300484364098606777448206284896653829985950279231794725029523046767698789534014120786163368284055158268602119830395408649761534527809770482406109531879206613213657682550929191713856844261531340638983906876521416053985632811762834149886377050355048596752012614178852205759014273815689763689835850449419781864346606086489379640808101336475324847329934542356585184144324591704852188703161592855888064216408737283081452069781054308010319396171448652094604946097944022697230952185743037369824317595741550882606131192478935561949300796228761821413335883766897898182300432498565992662511144775797359017841356493847537930026672928164168581385498142458614709329081061166486192924120698294882364120297212966099463464823805819053271877170108981896636735510118943175544668391426969067953957990549547369547978538545517038882941792870243896002699354701190038782711327128917884443692967611176246456122486489646995146610900998135587564755991717455282198091437476631018479606993184890669580516533240514313251146232256668067074505511005783363876963556324625847726448409028144058166065600087257252403579466699610596255763788848893422908616339633590283938100438512891111268098572825544602191965302175129117552826415301691880213755920537463744531536332324193675689227298341061670541164039875784965676324677008717067684991022080659174811140828312320578211302328289222661312618828085330827101253545683473871377905949562304496879043794032405877226960398245434408911007363148288700589431569820645294554960713392044645150252875932698620565456672740548736236070689359048769161908227643418489824689164865301317272650537741324089598541002884296533014893893136206236988016087095413905016274361210089602352142591156641754445647455533941126651311764883663731742688561948605789331934852230671913117485211932906127594215642739615274823386719160054978761907131871978781418103588506829286857587553598508581090019298574440028799041674313676694024033727569534784906669828589249407543827607964421128771271889894991534035315893048934808188318673892665855749806722331371447313835012636252776264907119790876407532276288906046295213972983805698146479378447087964074836479651204971146850825829816205785516002675399091611555627030417936410748195268210334018391776056045994658585877026744624789007934681129269902048812271815016879388014345974110447752833892181552334679713702861008144796196409303018319250419065228702091233802636732998790234956973492727945743864824728068243400069224504297114981724089316309011160123849846464031571698815952513524107655241854144531925758797635133065139862746007354046435966960969008929259667833123328199203089352452857152803113242755750183364492468436623458420880530358124817565883157248441206845489310469017717450747489904409427133530017479201200465519318246519504345174836830915383127138575862125034375453513210873757067230755846412625442898444277243658148669432846453500127894146459036902291337257057775630464572696275284003386892795482157622369498861896181758350723597964851500981538467195055576474696167698546987896173447007847901809891971052381829094826333106096057203018110496905297065733300283093464119307078274149565136591741258933276629416943742769517440834677615549134425473022996079811139180665586275006353263460351713112817893414520938369161818828996188369214203662622579488777613503662455018488711515134418244031684519507597838941505707388924587353537472286293099783960445068096617469935853790084666969405912415464815655884074662957220050602931733016148836507336069213499231056969310475646801981992186946080081721076517994909827281982842653141845565589537584726351587404829332780900111703130572470812612027309059110662165332177832060878889095757814493747428530146600614312628929934184504507620818445288799354219019091939036972639603465560209728871463564000027502794784447175162262350609799206378377584625322322150517640424888161083838004454124905873067228708913594155408734402061755272201510183587645787752596543330052476767821872298272108970294419910864951429522155455795248048398819715870417763217435791219647538969716149525536659172703929585705603883976137537274771606770631130927559705133893898760400363831490288567975069584767186832749417549006866122141030668527194581994722480926773884980774854925524372060251097420174163967149742130213186806575576934118940233190902764497324922347599482095807461842391617278894492586754451766764582781357027534743698230162516737584164914445600123513286864378297019141698008828854869329185852672514288234523222747582263057395666628117960748882742649117091878477306656709890650382268702875037327280222754667081547996824730788404615698314938720399933191450184519728127912194844796481702304598762416498267742284158311024374216288398472759313482042778294652725249632184855875485017361450266231463449498505393773452088751518308521591507964875706798331170668490519263623298428580944416041790703116176136759870548638874117348804379904209768767583927885139625036137824234023421912461619381183326415933476946303535161503911802798482185624618520213459355983175913268375295455568018460298646195257381735208791158270540603778954520167071244426800189946781085000998187813320205474901750539458392223822278971815617187952413973500081108598035613060216043305347480633188673874861616201301877875478917187944022392734130273898459408264597844438427425163299193855058316616191572499029993893144084333571190380483673493762215725561174102632435781531364236499417041808121716842067771319417810932958129914814638710936462250185648724398675809586355882916757719943337344627372506504104625939642996111502478606432015258047941629182758503507637742426583072881324655892458028016517371060265704490125989332402341009244245203523690589287910340971784577307115135838466217205817135054984411783473117667234535201203069758200865200626368657841712206021943965466769440699400519325750281609211920472096345276825733509420617052734727077580997036983663808308648040479890096288051304816840796362009662488990669676590847690851458954733530990739286762146786628030967832989665441507554518673322872006127990567753769842719919199468913352858882534703191020105931190720984933042472286502540462515085563780928436059128485856442788210641415955818289906102299114696852117672430988717426603585386847909364042549139225163597150600069185668032027595057484081059642680162021156550840202415999036512084603710812512307207615789449381899064714740561036296351323026113400918620802270045030079162202699570776913726208564199891270698724759778671228964985740378361270039345939500288746871794516577050114106405190905487895461014734660468476694302302003174203892531439648035103017354038761643232615602117125455655790750734824125290321995686975493766346429033860302704957266711784533917935528176794013796554930986881555798325366713564724744560749187790516533739758828083863456757975963200163378542319517191267925997232292632586170657569936019848600952815241158303803778930196063880338951353686257008433413952719403696819180427784430139481718015570191055868528566904178859661782265819511784911293809731321927740162330978634614770718471578363990444683081761827288258159592689456674259780707016520232455894712718577952221602074062475255338454035822181155751259789498633347116809455443177740574111232005425602221525845262397422268270636118483189822132712717109371458078783319180737678333909330392281041459256765790618346525689229279748696551147558383173857817854579005845350727833383119459225039472188812257036245985512823000056061719887530727599369362321557424487982085536863767744990499565685871085680674702937308261924090496656239647879921159048831712945700318013243905558846621604911738490732425461167260934805706331712084047167970505216599061577726629662752403398514957597933641463296230576425948307193949216229095626266252312760222449010755749456949303155991622283450248177921582955398831645991553481947386399667372298952686806922653068920695343932790699657173419135839324462443224587476746051406347768133609053923956732685671381752802511610243269313378550470107827193816809944793861600748339061704927884153367262393271931130396581012629908552695286781884592442769396081900732954961949595168425046177641974703095676443157670383282731392862605354966630350638238817953111986434765917412482405209545183680450752027513021912244258691430139598849875611412998961039307099525490897050458037053442585355443463816226528021856966658028131369403805567812263387332845839903102869975827384717177707667309231336062972759994884800072138602640483633042419786723571272378013672917768132253033208995771405291819649314471995364446499267289643677223653896351641666739601312206226945237710089358406799889483502905882354188368771490143680807538894797804738137839560721443553382648120094451638133948212404158639963175069394367361494690395637084646272010492247187623784330150617162213656318183936021883577930109060004259462407893460068262736633067492521213587079869510298565502291720828278659442994349626391738130759386713790754185432906832708467869254403680888076977965245370534680757828953198745456634062052137736073575637587781703773247960869820926619382709537040785377053619384545862021083471101571962219283565135064071994105415499385981904892047739589993929327880166013112343148667342539862313105049884996085595869096075425388430806154895380100664032671735543899388536218615581037313442616032859276990872002615869056792537498641835125479636529801442674282436752682074356148044258474760272650293110132154822396885006887732616709703583655940810693915986595986015117316425570243267206695573480133709212292819240167899590865890595494184118645481715885826800673354279006146764436408066878877569245365409431094439206009656297140668823693400158436991425295211082076243716763342663477628212112755106888991669054144839531784422056316187960945766715018419488473108010632142742458112547516488062770439986673685541965495296898856067774992099622378170219040049900800424078139849479862115209224103657138532626796799315279055434341063088982043709758592277292018377644063889803450806606814395852134690122353281422677324272312065077529879974993143328350392412656331975416565009323856222204342817539498513326920968695122946780125056989627775353129183285181979628878083274234639827497512637076751542263340862550973654202064905348286527213642933640315203613737475022193571336336625110394129782159783157165300026019657325987218150920059484710699279196789966702404350452275912924923883643787518519976153648781127879994406199062367933092104400457221896788388756594140201608147698138388795067770755392677211373669356625006251506074132354660047959563553650282442535364067080581243047252591159464948027021969029632725648322119388594096762344939423838625333431272884855264112891537195750581260921688393447341221257496067367258534605625261076863222828665025534968183396911999488224891912347445580161067838785396750523964202730134886304182507129040640359882902289172105649535774758046411649771661465633252330070823160141116618210865889044236421889018598913779700111295872412794443460103065514443312779818408370293617032359224343392419591951198105846653038861551661586688678007741110773157165545488127966299330649364185556163567271974601390937352722184928508606223946563955646763021629062479176113978824930853685508719476042782535805724100805902747736562198460837045128079649778430118089964427971654931986525524955298157591865855591911393345647750220666659983496667286931386066037730035082746799757468977069865086072869332744140188836431846276248380090648388472899574559291630763031523178072747140149401544103321802425321340457389224968572576534140708150899895440960780952739019729426856984112709204098589533480822749982895073832067710983145547363662535526224178718683467056475928264482010597970591658692420579128529246430812693069373550702341869854931631229840996568305690352329952207832712720209257262328519654541573009200242944339454559434943747148919598506877722469773105671634506068681564263912239022690814182791104936601835782219981261695133842945513491806104856880868618609447333908486336450544247160284938935631995050620677189073550246991481257021210618053949958989364292021355387465622847463975091717253364320525525973836367107383341312151678516077740423959174418814123674752043353349879255488225592660953862877429774628012457568137003056596015666279731707573075805423826701561045286591852203291352630928793744554426081686842136220936744448863037840907617263697172378270565106395620433913539998694800833117491609699885069153335325933020984884386639473866838386077138807646677308398804348162889289374437160955396386522093334255436328861422269339902793855539715771034208863854618502714619755218070234322941047511947906590173130919197569307009058243364093473515823550939530458563891647521314145583090270981431955066598162562602690566597789495610096804089636783576858124221110150681199674914135459943049072286194134315183310628483232553589070176031501793573311056889362711413882740591304221410791638980198252333213726241634443620964804108688130976518423601880382038755991717046702225089850697597113849435601721118610650419842426920852448865302442489832484396332721928060531362300363513974451340288323802859352537644958186116133597648112722175299022552775720694558227719271363156909228102286334253869654910643698303621458680040698870231733160097721989364728422849226497901095302883188777514873404011603308587172608308693507975354685669693656534711216016020018437668260311581512244203123227493884053792995579299089001738569784032085479648825316614206579951762801506027055720975450717586166826270945717782353537955518763582031834985913339853586186719061720585653318862939204925011413303155430744932332021546512379851826371848890648322196786676642987051990789969227513230259039647933654212572826529560270227849929521262714895159911807515051092963618871124835499242431434011969268688750629379382907130170344363914710854838759142285608913511455620187367346330881896629812205137599502177404360330471022008259653579153491471275534288996563171054508852757251433675112557019642703755398217990251836596063292291060572505281886407931236382747639358593367662833828160906265261680270122938689712842890692892823117710344987136117714332651371748428253322492301116244179437445352349858064541034378020124070625779024610889886882454436670392271313301381886944107823384488491110981351730656541409263676973553303766943584437076038302351799430267740538186317304258991639149889820991049608780298599417331090821886016799278908398960258121638670848725949615164135072884302113834361610069605339722441366282156524803713223956123187048992216139826092065052467934821458698035301823159149867152704345719919132999867164776545890986775722885833306071112855721699224246950265558296850700607620092608398902115763741693430029876512122810318536676355867465207149636019747270107795706570838574139219272151621565591214371325983080985759224612366065038977216800621973233296151161338530967734075285978115890346145447014898427927776460137841155328398000813043514768257727538432412232092678845006342946001357125625397177001094958435627007288787580899532648646419375870891349961733636864343571632857125928251071577949195446107234565468761765510109680937583755007574290195628458501491012904990722206223621449094685666288741659855381680071841099595928104379287513308432185490576285888221415544237577351033955659617908983885782482058508558626111404548293642593005762398480049401326544952181242402345163052298785135704063704362945060467358660252367748476419689286418527801493729100945634416052182901069724709935018175525753064322885561795664136058973348897598650888387812931315975785583307652515951953226447177246067019965995174372268551711805126027993371345601298334248458815273786543988422634414959926954908625996865255545108839061284877708417929182517591280570527166109801882960334024433906267566233970003363019363807729236037247609073755724558412288828300591707165094507952582023207385626038103243959084543723601139561422464904533543695026003196480032932230477832782996116362496569243104823267325711372310214899061610298286318641005527910672283671627388937131843563141865428655475519999337039943377610477085758687450776179493929750609202346025210659003897781420251454875299340236249522758123273102673137359572847059418010873292128261535297242349942426163373579354631564958432250048849560765454747682729033658293392495262001334394145991054509629814351054148119288560924944050042272714728069552300068955022816178389140356372624032905940569634691124098832089601411971953660005056981984066755076844888263318176168220369914406469128401467094771147254464954379032970718892065548337819277095087355199251888152927712249787223900773077852212743735977599961232843297694724515406950298223116834984726309057533354745055002727099635068965248478759520815389323025706496496374287405800749682589146981503191630246500495243211218479549450047912139002822425415171021809429715761258789156978606098210375649806656154783140612960777809314796304015571295810858323759321300222869190590314220716120982196145850247738707743081825335293390457316021245945752727943826000249889415814022117497409998048509432135686808189822247034254685003524736748117317201987207820771800140637330724530087490602503541058708246953823008967006932784150091139690921587355124930624565341827214287785143553176980046821841591201620865327539772679703773360438025322761814776442419534160219935164016181461512675809962568818928370312971109032205339550612420805159271690664160858254614758937663579674447489318985333156568442558716646870396500168943728987981723673231225485997322133113580360703752751683684316416491550652388253346990298920934208596469301989583198784585200723221243855480569033189516490925680158088781966524935244544180859067257704009528120603932002195550210936020744047308463809512133748963585625461975122966411400317821332092113365963381902481134879001223106578290631982477230982284889327064106988791113857885725116938886257307382741296818510588964258746749639525961301321303124700058934385271438530240340646116961757994519243755855199460941384228963076756576077609371465688676651894914314995487655056431690395019378084736260182262457728211075135586025827367576201815882367777803761271143513863582281392638891950394471002456180516449279478688159037860216814933337137624935852646577683608626843322000637290957178831355168006729660594127497966882319989804390798937314840135917133886485918246508748120151400929421659421588325229262848264687034846853385871115384392731899872323385039631967835933994653717844117730274990594971057995720628355133023676310643955667916384528990103710112421231150226433754286886598595177023005874268857038226778323723047381055555641169397338835716299679726356329079508116813172285191692382554052440988369959871542848771220988182555367315922871828037065162069803479654938477124163390584616301533513831329868020331996470501090209183004796107008016941128381050699112079332552220613917727356790219941032106365330393076975518323583429098336636419972551408736194669233335290849382673776904361646266848252466466711121090817822426146005024140264160814952084618515159417897904367528451736918664822540095549286551443273320715355343605038263445015308388190859891651952332687859243575982214289247402641966613781063694532021987764792597485310972336400763989924460290084870328448318269862100142507681477285562195932224776103648862361674367078340036176954305622234020576621943592121031243545080302805939781148775648831861156766400880480418902477916426818908188376954781434846495656716388519883565168559882955518006287493203609409965900323809065037080125474296555975565009333797521016563076044754070201049293267182940282307717602046633816566541951742760248551623946380201690852159458409296985186275057045150054852798090840946200957372854807459184148370828229743751483350644164576548108739491557628751937712903933607078023738963634022700634553244498264535025507278100048858451911480103097567066153134317462115479541984645711987304673968380309601686084822083055180131030979161688206880374880128934110781875201832114238727680226868750990212213441328974002623747460544990422866543060893447659400147572830817284477303828834616668113571940804258621683530985396317875875094832745003975890331067031696119551957396399910356855355802391363205872754457415893691827118878024945179127716243579039545154458209605689324195229705873825228720620733760381240303529792383091489831557918480208523261452546554743808344997916278444341676451631650480163553458196004259896331341523627881675105301537456409114370638340589091978841780577850524108216158092974177713688459664789309202800605885766514235026203896331583739111811104740268398016209282117501224846973968757285275574333933474410043135054960399754471046416658938210520577539018426223755169145498143804199505654840210244556228526014512861856363589120739782107874968128047292398104826101614050799030142336924373852430137218630950211527157641793812609478403387334650719678192568523697907434601011793557121106836294633533041668036364344081511598245803713643639806754910222282943687660999983590272647020754952425025346182053127180135938693794549630556634531917583628718151895439123508919914214739306816053379600299055031386518408003188198783165049455440240322844234525664659063124722248185280160551980220573004188187493068769171428176197973725968808790733460301448523292010160742868263527032175596824880402240088140237423595990910464133047272371008210672586691706039753884115435869830935757113735773013975026752022918301348288257311465986763746629793586516095780375682185340144318127286223403993773645948426629568331130853834998894730163198942080286434816022015333067398129937829901892752294097790679241240527783906934622304840052710451225294840172123351935247163632132785898537255268885732282794807933586790429774023452128956492553943139259541806690071514416975053732743532697727128992488805659558896281273979059077260195839411674385993388212126779757405778689552181239500800627654952849133469918614092316630609276092269394007357865791390435870742290235865154735025524363831229628349474810260691262826960111068269443483861807656535012984920147204026154824042511236843279123163442602114665861838084110258046380281481192300716831004458073839738846812117090302640684403837293108404659614146634012319184862097015567491503407840434554879587018468696974356970874045366781668232555822570601243311246323751902663064019989324882494945594828841658119346499644910907669470753964000921452014414825937342508331129383685845544088401413212490434124457342365907690098135077450379890633747188266581468787074062928937450112503115819389926894980480414014836474390745049189303768113599523833864118594858142584142655636088093956471639340238552935948946370556185466818629004433175144814669513364302267146265035395683366290369308721616698728404845049894329211091355793856471616201331605455915445855323789494065367509613391876872418227714342530930415550607133507222862997591606734041992589499389736035566017712832755436745677036446307300551042131279465828665350680628846634992114752416484621057258049003667416986442744627287827772799022806343091658298974963259308706845164639091950053074594703504048290695409145257833122687152795248258366174751955512375884241526804679290013145605252496252216975102637597701940885032763267719175279810214119655606946335713095221598130210674828446729151585716235066327252776041302765506769351960973404788073686334279871448457957560820790909892572626084987271779910857326077680276859761559012694567162345548187931366299685682219549042167345724522848929228935833233586835848476063688487585966484776622560889371809274899269721419766621587758499039514307475911294899171679471682453350566514237868413690728190183516874488013500909346819057664336411053393525710636390676670281845861661132641254735755720692787575248619837025769903894853546776578272725729834791801068904017524020841997756949674925658318840899142709214798222264495435276856979819650596878240334008086947548172409523208656807337519717368393193520040881108713762723186778556443581281796739947759908669906506989341876664130129311764427633796270142540302612985723470498391271758129997533030291597001219837998739681570485872745743757421981870678214870500693384335459341900380713140566351101289026112134451675868060940384770783128117838502189433539145684329089342554931119721004586455460087161544360165250356909908132690979117774149615493320014875278794851875406818775356360494339933832665754433474983474693217961391194775698125675837598050450282456927502844982526433472173153707391538684962383824929604981609760302773826064597566366980885892700341445592536072425526641946362707954014167956911255463951313603374817433275545138803867962635808743034573101811372155251951574690675299788987941998656047598316658624187744245408547054531599279092276357852784106110212694566122928365000017562038592683525049003263180330728359010733580882579423514485174950302394745328874891828770009578377728188515016460360021997357881310956451394602676498652789860501301878518459909694517041827232109325277518124910016589834175858652971754830378871359668395791158200911473191314860486048263143907846131815442101432311361560229706475824516482948587155859191000136240911628348815614619037355130166105622006067059053747474609973423033115068233870299402586145419585604108306577681823244697908131513191015796668597127412705283229443161079106844630945649823339685033733552543180250587407330843307627222590513914132732207910387649522942050942136722355945836529621007267783336955253111648859779195889755413988927988597632602199754184260008996877520853789970801900355404206951823115456535486517886297965487166913671056393118139520211220267015909425280942071930658945640729748514012891967473084573432006806828705347582434888624751235497718116434418605522519321428817186542899627691971994291758188105755486364976800563703379167188289757663338727411773590473851701390549784232266749748833416014840276912481058864438602972427338779411889083090126072335992239644909532333036189439045815848828149223162608222106783167950931463069502336671146844476289686991057854635166406969214522109721381221006817353054270640876478193002272228213820718462617204816098052574169366800648838861397134357011682335211933768995761206629234499552642122422607792201861322189054918739961095146458212840864431381991772582215711804805525247830439680671313686093826462853982084106625612455552468698155555401669243180226852492326036193127294266283045105026996598856935128310864637099755103293164118470275794335710487845241089420340230650655748724453053169832706088640255451769538870924153051582794222130797862632401771194732010889040525534186739629611840632743885181650359537366969946226615552076578909278343860736133707197747586383142344314028712010459578404784961930701960826994411782653653276671382411698583802980879303369516934124261231704743521884948285000890515683017072510935930193901682203942955707211218617183728131002208917188966493498916726284695885681042678272001839177757032127343147869640292810440389244985314036576493461553670994884275239598784870037445763534670319957387352377837679673060518944241115042578558342076094526796000034755830685449259290507533507296506246655329479463608856677235857417171311147991907132938673649342087048092938358128986386280486499737265152719427404551401806222060762430468662693279879172338373067908871922852450255280018867339822436450839763593844934531835992775910852725770387328745868949756184352001045323860836981078978057848181325836742724093045959285654411447035711949171490456625788236642359128500899020137286408130583838645117886450600880068755606241648765733793303737189571936068616482825871847788967154829007482969499913178638730946839838072879787282940131702302923369054426655617951703661370227437185257409394448993701340320655731158529166749445330553286255729663514893833396686121218512414667585719251448783256790008143577764199870898013698759589343941221000743752990087302824225445389673578960360542299934878400616274072350820336324378188538080738283706992139932079221935894189087360908965891832023784608444468032136695078400392690838809749681827192170696331383653385782242995855191284367531193232030370025132924131866140136659723477108231473750193196705798137790600631274715827233988533173611149678365595668533797800334921620949503625581445098739736409419518295230799938255455425011424005910523234463737588747066183634540334515758392151811402927564801731190464639366030667570699600485538947793084545192917548650791145719639131385103060260474683868221066166334763533642218013956381858872788218282645606229227369646934519749162754528747660930087945872005609530669718399604694019499315142804127145657216963670545537215008528263948625909935587200515448626120054442490555892333121156321671485855497622153228949683356541250732213182756395826226686161241511758813158362025035790347202819063262038770498757045631940190287486480201722486398519695161030852229190905939860303837145549167925356329448257784910024486525190555957244241997604031392449863935590362769269242642904905481611367290861508023980881661112284308023390917569161457434594174532669440987151370719894438692670758246388832842374143900607952486912545690440676075175038375731404830375934008051875414492848599533059167397302464212672014030175085014157040467305604414048044781658425440685934318036489042247682829831750826871344697778734347358944165817567181074651452311351079825375550908509999956636351159684902486466672592202074225364793491208703465869053602685504328659098928881374931571719266451031578696852614580274068416688475212001835438628520334254697623897336537544619085669535172255297928091415800489609777990757950208740771534321629005673315896760413540179661042887469330945506722087707750843096579615015148723611330477689410907962887024940293275879481958332269750026935421490297699457387521789234087350790793481763680575064185335273508539882510410796096940662175589365221843139700407414492910599613303675703568003010729220687808476773358201455404183818533553079045827647983101305218452511024406222267849030765481822280018574446390474668893077825177619477919143076358840682984003405015305726313745376406206263923365542860497929493235081988112785751017848266498942639695623181642293351022742913906358160379513127402414398383188586361107359718006800392593305918666122875705884298677815969992363847607004114370427210765739099396047544938981774844706180709793636548536670427494416370301748311797809390183016283493912153187393839259785721224082010704925581890675133810998468189444495760988386272412214307155945563995056567207909089462852937311306283789884737247149759966722467068763274300318942886517056039325376620022054538807082478541190922262322756193942469277203103310806506293029193031577478104108884044462654886597493767825643087693458451686170421378317735475870512245604317802959037308315451641854072198773357587631063243524079078973413931911484671432082743995628296540879416940062983923140959475731622975160788484049325244672601584518449088733767804751774043715792206322279003975858303014962989249257014425818069992976116310761554428247006018631364468768378604622587078618144152493191162000829576157101635905465869135387355570435147609262026287165118608338923698836377424893831220450455089812462484216629004519020147366233628635170806157326529026806875525392885574901147994402991063576760960882700332164234447298591257481222089689005450087337778079718481707847833860890209792996203460598530305498249682287567299516066462461799791748927106258611416096611470655847978583529337270110642916543838713824434188274787679491818091895587787158622239973127824067944889929473547969185133219009114072249919290531061379034051620529371885097868493534124760094645950510262591529003208182425171398482255471951179019419119622498791227787480907748261437740927942196189519364352158732905383538006497121183638956493699619632684373808336046623069922630601200598742779296499476070350436916557865545126675520299982378536883806544350731611499471392400961939599066027963385847483498368920443738308235044343090791295894205329731600454694149628511653726348030083035070708984722726212011332398190400288672805846733873900536993335410899715949949290675257755849639860145035244078404850724635954940161623381589219102455461080778710717587828450705465454903749422968942340870525149200049616668460954338829070602803432812309212425171891927712805262128523085833144169592273771476863091279644813219470034796274682231403826850865271076615449808338137486028981408742972740562757463416360936328626772327504039811396256622655766715151757641758359944731735567748979025299233494753214386364372907309702699061341333288467078766524766949172705579189340857568835301041379688442596417304506360739825427322749609583740637531321063570718745487640864986654167730356540832998315215737901613568069659702849171884375992871154998127166454093052991835304753665304529077273342894589490134242371798948067894999464201551471254940069934494332863483326417068146329152119910023812452781729237270419937563874245946894033347232976862062186751806874581643009162959866710523824556691302978040486277424455174230244191487122943801655767410662061851742072916832945432716678171238676003455342974626434086244239266995840354944373763980186765555108567563789859530595117487409658737212768247065145023800078380766945788192877729898619319868239689884891843767009805712889397348629991870474359959527266098022361151981664313357329068706080661103282849392110658357200993186722636290732500010648620911079161345369279274308679686233098625513895437716513668012878056802460607232465548484593038457134582477167498441262205310759086302351523537125203651051925365256351402329744461519896130575436086025401951172255721328137339836054220890528369477563782466146516956927427970360708431524172942501322081553412756203338917688840044153517405976749552219474685314870250754154775337931097621471363740953628531789404691562032063325907715086988897184995634572884443757193083001515704050428851154961792842892230860386839548295195360560143854711595064701865612936688240810156112988685888440230994856986215232307782871546803849122486632556042836594879076871040117616788546112259644957413646234864893521880123423565987684724318852053076663629133702974536853622041949910056618379861545479310837968995427363659655352038416394773672938804899345083768110537683093524481990276382101021045948291366237114162411250045849163138349120964464877941042332170012362788393268894089335934112545787928819047537039505201745046665738851108779833925380771994476799344597670940723416516761293131012336700337891891877797005074750171290671818289243182530911317568177336688862884604600327989979961120151788434701275396220738356026005494105764160116899122820803496698076691677349986319593675561800291568347016657877715975954977726004858407861677176313952054348457525857329367289756108539155984484226005509310025866152861073646294712803168277431604776617959358073222114367195122079163781778250351855906438131029931699790895443077805964638470100355810973675277786487924884925770511152800330598710015107314563300395080400685778759485746714905366163806384590436252457404662141408267820021849557897924836596015066711508136242868993533803623111529438608279265564172908073427275682452255037155744047798320440324948195172442476296486433188123849272043823611189039523015443641304916510220405244712699679328355367835282777411991116856763212906559985590546092324932655381100661598539029186367347790143381497868560213739248024201680143893159758357841414106987332686477172486851597449163586237591157309026009748698380621625354673511561997760617904537524405493704970486920061849872785201562564852773728937973985882719046409151673791823469795809221875120523976381853443146704986192646561902440187981565795381040597924984291935210776707900082596663529850675544958060389242504394489653913665110867351789917102214041966989765143644175240612929291784889030708591932836461240553499164450699982399899579493560631568152582700268195004691564462435373876867423867457578339462551681603449373237353894271764751433990119460413144861343619844989514787103031892416726195966367452001556363729798751747863069353027120927251333937733153202105198112024117388557586424191836467196598145679500987332415775019142184878290433696332204759326802513870313193691980346608960070458472135618437196705962075304430296619937569848708405740292693320189993818243045435966842894586687376171001746630075556632741725054028238467430016943645017340682399159936623907230855220560634695069575482184212502250802940321502558449539364952878417660235980175304256202872762879443398972214737393350817346371451271528990904029248803583440190677599761547055038524201361794974741283508769979523763364321532183442187004545127790604824317615388677201550969414368295693289004252355060798261388046319114350993601103073296172359463667341872137479266113295987686514173695725112073598871917813314226513883713458148803488087475398279231350068680561921060613849014230727883669070598513328540834820072633892078757579578074435559922532835722167035782876124141672542045413114466678946294010764420178475678088235980231029305148791860270121137180574362099084739944090562872698488480109456372064845204131335879260934100890647513640407159845108939745969148564804703163412624649662975028094664759889729666879220141499015582879629097421242000609296400641841040812385653438337207189702572180000495979514634355460468251879517460029282752498200685169904577447006491485728809520952589806304825622975561040518541494969246052461811204763532184490185459775384569055829739801258037439659321799011774848881518019347364391010894867816244555467402846168881119262478521109356016763057778164402627390908655290889446152346412306219501584768818290401266034992931173996882286072431055507928138249777332125602361171631390304952203207473894551200276689235538235654342896472641160843456669386119408094287179189398258690419201941192718037937179845230789836034139992499798264882611141417417535091603232074717323091444217255477776176938044428482377086556961171676030501270929991292805110137620998119687673922307558764888420624610743644024062908591723617485268948626810075403870369359189536715324663939286560875563700808680682241077220726350254656637789694679902282606231681768910716784590265643112177465218809985598601061311255218828047006818371168093370616421885430177044761207489571712380477097295049285232820746816110082587253428452822511393765877717458941316207069102511280622548558654079846707042803057132458462611155080020979466079933397530064051381369640628125357298678273625623330445099061578373235866020464204281916226199954735900422871600578906573399160127956435262023500279895487136123212251553987620594389017516256880023495050298475745987648705100449649849281868686139506321721118744604118195548284514513627744374257404284295704760104525860840013991371883563641799240029724493850532554616102058058649316280330827614674001659625217384224721477627461483221484723352566209834005727215084703556082676337447404403589927321454125739799668680107885472471201482490747322776562038795214089485217249803426901071258955729151463076386022814524121450035570648802654176865125018102913764652832581480526259497437067252670453014372932670827274709023178443799795199512176017724010414446424042894179217078126048720151905595002128358310481114307784377827662861536634817678779814707781317957937947717260107833987239770914862694627554491022678642665692350573836395604846076166089001647421968881950669911329273483789704425904455200585144282366776083168700919449780190222739789776218992881630805002694949789765361844634518087517480375928787566837928095313514730423193920988684661599549262089295027492497708560711487453858298946878273059475822233470987965645530797248460455003217999319895658567891308383849083624407368287243906424446254520777654843971926316800888659782342302087879475372453250444747299478278420501664668138585010392006273631071073906089208545065470380787667072437456419198684680238421120841429776693941881507868630312561784918114819817937614383368814349771404911601476102746050326410583309366004506226437159323946066883891869003997727998664576281757388172958410812275995687243890984415057907106015075098579250378179184656791048567186910605670910526200792676509926486845858447954720007197507665064958917261447854948620671759700825338725482857518951780542230782555431290750259489004347440332883557326012404013940144420204078194887910011712339087989757083944260191992948477410196508003680346087737744153187199127394901730338763357911122955894700916257844006918165104315348488393537689118042437276755503129094945932970802004771879088607451081528007353787972725896472563217445232655631095279855709123791911134691969766124575770842811053144062139587921454186503503671064355255588328274862781556665562985014458129435434103863570301060659384081629785403305216386084457629744078537360801939064977683519333007295357256624797924744097321463998017395550236802593358970896686791531566679540783727711698316607412688583386885536062273627496814120086597880235039448996233699739978057184348124012999968409717044384594847998772416298690885358112449649903757592432530901171347908171242073219317446682409256932223054423595515373772002659640255123290039658417600369887495634869004367174324585126745333864240673409358587190583908047428502276942706660149690182105815222615565058848750291693764038824665792335798529640921983759135793947828689719302190510081924059031134761907280579797611710527909744899339263287303313307821395989611988121491128278156509453119903589469969131587200274428837160168185425140361327368500419694812550478134863930555761807427842036897355195846725722089353618540669078284910338867862819589995683265616997245897181005887226393630912009578586913701173163273762978128758954268237262189255484818453631345041707336661403535476634383931312362282377269802691252331918363782367808691755124997003026078207722128824931576642989547408759069794929431098386511596732569435178433320205690415764598854587095321915729421696418869222459097120871452004340751632858968635076161639044650478123034160565578995682155428710291750967740931266659517764838312613899084221936054453466070764036947707908063061288786608041826824185381222554933489536277136709699599205333049708305129231358832466994764310644187233473137251591612914636274877748023225887138602908594170788663244481779183753110733056897247002958209072937333723956931339974956796083618727973534262766018096740585727384210369004196770461271669877045136207951380735683386321856511835059381742417242265776865326047134042022592617003822368550160176892757596844039451489695935608229607250000077013123027477247835883201401255401028080039802091558090728513609220292523827519029255076372588376649108705264764627483870776113108681077692410513335734381955831867369763279002954357991281633443954099469026478357933368838018458228775748436627896937566730045661740827607106430621182358852549428592403226296923375567054899579508278858960650436769028268702507667130938256259708450336863163434462937637464071888455476138894030888875936369203605924046597647954443486872052856210662119277831940805377982224170544711841962158491435915071819397241776398402064816174262073949342367807337118711815179686648552646833098036816043550349113486584400304880143290712163266275442647792724259833160529978216434654015541057225006253742567602354168474461658504628191002169481054736164439273685132981080673864430135145231839121232407286010395268032991171361147173125546957460810632570702413271020952810998168792350877136781928269169646502475693440137336747621022108049604511496145889996893699449306203149316511659641678306976808498923712352110250549293216861286633946912600735222616115675329258960509220405644815950610023304896411770818470944031163755848039783129304116341215138531995779990676550893249403454213386876944301556435433685253821073403935105841154202449198915386535604619962238662483749669108979504352651299542371290321311555946939329174566146973787262202178177177000356991972548983208361510257690892265885564799140811021277463930286761857767281129502177864150702954692002503790690386574021743868618713290917482410674154030042525105036533148135195112022022657183064315368411745177902164123519182566559375500306067474150022808177527819603726585744403169528668169474031223760765736500633493026347433733831382436372583726059429019400561453395543963687203577095776019029972460796397705338273565365645756671882109593990363370235237621618478594090595295586900372359554083567356262743881337356006714608862764967263035448598316653502015266618468610821934492760420503318771568687129260444548782999993624144318409010276426434476238708113777207314285139145396348809824115601194589057686043046907740553753379451271125371349012096155354876183241108192164053671148480441816360168106581305013361910635910575822155585700180147212446335369940519310219287900417454356906870879408115258215618968421859166265607870261472507344370081775922290510521218056829606233555503601329243153335160012429754006354331394477572825046402219126480203920639496472705675378356797222108060262482617773179902629146590714045463043519273544519509863524709746151223179620178911608460732088850906432339794124285335222929899235193515764742209330980872309467537294594823944264510707270619113386648379912305552791036077640936131938522268239146169560539926393848964903748871158508615771581141502292733337447124370673413889878909993428969922281636036463828365367484822739024972573873929033130626937244996671835074164139387970237440243285649567093809996783279435556975823406165844220160222761236907638687195838547912359442783199249959535815793144303681348216219063447784174836777483450435044095514417722511187046823509484996738740755163706232824979234059499589208807124444817984105137911457593269913364750988998910099103353634704165939153928486805303401451476077513188723020656082023615460097730909662242312888247467452819755493145649998894463854441364832497815522782254093916282456610355197142636509802570649527172615798844611523336062903654831626304356853446752627941214281654296368071124118110894942541819991680913326424101845057501600047808593167476449485913545614709047580483077126613649343856447737068873627759259742629295847119484013031833693598679336957592117327958802448346071085722814441056238579853684450271826310835002919093681676472906917084027767112388803281195556968618635385055664786052065981684699248587875744016987536969069723428774838060541492180983938000011999208635010565825114122529363106597301214618923891125023419633899385850548869736017803578946157937289898778191252208688934300417333798328901622332746345419052028334511195730064103057435699143369678999947083400286164699890333244333858866136375648798319044727965596570597961173472187648556837731585553777515071226885667049924970355206603558090780425883135712290025794973820944766461340158417459451372849271592617896122721415280390135362297882227483870085475107138294089877783514464962192120727082623062029511420695528325809939381981348534855717018824465484355237302008494855368108808044316886152513560350622550189847316088953486187147760918654292230367999020717655932956055982775199527020927341822284945625513290100968862722183266929189601172180781366793667168790478925480254035146911610377734879161079272754140176861832418016807624016876755871315199802520537658163470129521598453276363526456423077776635459518117630227916169687761347655934427029289662099277819405777441818694666049101635135755200573173541925657838267386611521864686571229820159000961559831337590943898930017447431010190378247745929400338074556887390307510153214753402990840724791056408738062200533842127889823452243945962138926371841252966731553821058488024232082535156891776183327884782421468802804346160195935709354062571338078773098170460913649163606109098121928193316034864373261351079179470178755006909297664347752748546832325065175579322669230538014947607132687160171729418184046994598480027808991800037248996702151300388285412728461579323520033633248751999561573649377537929036280561585715057676415467454550068513618543255842214237022043433452503535544378941289875405003849505594849794356581319410879460960654235447448802864914123690349776003317881365334316746960582217242349708572782302637877411690525071017337501099091750415253562010814112502849847795520793067801782954349566105210128037508669005405195620043782501343185544279200537122760476927571357561545633666818881074486272334415554095146892588969553037737640914898367706785620643553412538300393330807049825046603369280090471941529762664385103961292355840735077801915334553944367039692927469447341170250018691742809140172070481192320627729000786284886690131626789817382555205911649727636088824401141176101037743854930815336468521755835820758786431862444318965437270463391386180758187187819153768282829683734225992713244456496069924474408523015258184540155247435759446129977978459851747172381916377029975281080181582345940590745606871444803123142339292440657445401634610516293429446116004315653459560997570320652156233597582446926215598521809963950981780033786247228598621920731122032547026838271429385420403991884247500052894663989599170548008762525461028388452785039288852518416840636799788338672368907992533973160007137572857503743637362995823428772029639819142629386398210633624100997799295336030253119671193793393571433573344246546566022756032252307196890808331505880166774866661371738448513263322605264892922601927930769780368416217682461344825728290638503629951562069338755957832650925986126834772911191102146129496861926729392626795746207931097446747580728110058376848996646082847288375829601922206005578552179543402315946946769345349427770675889555904841842668658561281666191903750610715763560515733686144465273961509451743467031054497849134963799575329849587015444190375748813112103151908081331418597015713835561629873267026791967612256257269998986414085529903114066362707766778360528881285216037443075974157207689952498884565051741339885991038916591853374344091650143899156786362866334793727530285978771015193050404105948923037448454293318380846954593186549131356175048261858747492356321139460595156219720528007695526399937112803858654406041512245050898002640459636249306745005960504343387988772251190606871133890137957474898248802115675375921552390159704754947773289640528896816960623916642701050062394226882335183800000831113381271097320983146652312493877470330970760965238869102948150080221768815601896726217122497825772406899821134166175406095094715070888824192063497081995736654952241403222251587598835365229850182213906146634703557361260483799300400388870798989249555135502126136145227877083425596518531606735983332869093836608545769694896208818669408491459420021154067568584031030564713848203737146087470570294191141897669952106106995288248161208809795795300686363420669126156672202450980615077774202013597928280402820340886560947258726343114890890974805616649440669458533551500605013550913823860699170094763078960843430422930661482783898600808836170308861383867645656394070169583039344979828185138972765402667761280738641128943269671701270300731075136065141696156124546298008098459408650825094016819289388805367108851368887005289295899931075197613429425024543225690884598688920005053663843016622228578308252808116502115935216562720201637622760001433755047068218368335580612044544439291777411924253647511987677155716621794577184694767372912776541715268343946935623477957341372650567277092604752362635529811822792331654057589307936697445917776076183317705043236166792719803463171267026214322867691310271777021605913888446766575319375992822369795531915955049705431145660397995035754269935217483567592816015815669678803375882992098086869786777981430441141799178361220581409076202115338009475773527694847225125863402012423080243947522246476662606965630899165930343818963468796536325692519101976187869023343878106422643034259169157250299430587157323974677206893770729855179896677433179796316793033748099831106453389104483018019509312469238931494086899894825860103625034350738942246808027461068762692552343032203656926462314650809201560184632745916734321875814508041478453200197157984696651976011455469014361907780563828458888547876208050430634416974536446693791891829106627333137607821704417116387108070628553872809378105804303053084427753739505480833707863752054793254293751363278288093122678997506841584207635718809027566370499503527335970146102515675451377677356759549874827369090273466994444670984262494758631113858702624381910067611149739939233275710774877847129138913481531644686497789790374925558372201558069782505235218447035360613745201282089589120005618432986075966555432334500773105619377211513351157443516882603985636130390391978376308322622539175741808462991448031723428974828752984289540990239421664471228298342863862294739334729992471828605014943860168825872634083137599781276504212517345917301888780092331822491615198278847175332527896137361776348069613674273149807231704276170779474701905288686082988331966688254715678924758424266971424770235185249114055713145324794649057481941640178160214377905460701341801788364453977177398748297849434952125169571234191801645279247678767840315253517353324771226161050466480939412000191682035931893611212484124912169653681247387141270125209759228826115841900742801573762135173162986477491881904162463176832496396890075264883711975560519326210354278848311988153447242467634685830716800131711838954820447893764933969719912096388524563997951645758864775069210430088356166887406316611482273565065472129442939341895974384325931979896942239459295918825766321169665242874380502079908291629833995297389448296725957991296924824261506233169308429654784494026313474784458494007682941437754445608543408729601364388261750333104249650625538501361573147141635661890828965152463710790931545007550164271709975408713186338273370820119168503850836216417816919267806532567553592029296756409986963022399819548836670214489506135918068952632252596571383822034767687723730954940997887108828620015598081879810210250530368827185782770429145148317168582644180493718496874669053913631595749285226264483275028905960617365904664032776877435904328894951377448018017810786496606920611131660385768263066755468314193977152382401378140561951614598253963266144462845448621641636899469883358286294278222643657109467280744062548388639506663324742226824511743205325019928740613398313510995483823318701103591988524134814615059684723193487099260606759016559170250131423768979408852395168843388052946281458038942179932393635783428019322238014919942877819944880563118013586283347210397899058142481701636860978056312392285570497932003672583778682325800877689661355048417180971228011220387124465685000688784557794798909642537693672965742185985966576397153358234306463305407942770772955380320886343263146750889030155500376872860458360647991842772177693151678244175038672381983190116796471940641176153398027205353979550950540355822840590296992275086764524749404426267128367803067868652946436259657323181607742851819340414589688828197506544025079736275355625347016676505528364333571505296531728255215430040819920199081456960835938767106815315173805119557999189835465384671834614443034497896943590258960966679063609173469516484030048968646826771317625380012263912324821429839846770261713642609364551574326799669911370315339359159208776660097976122190005296986964480273966306987323929482948447945569123184296038083847897199260892140779698810135138320938378141296454634982117069753949924981229960321471460528827683221215119786657443357583130151698520389072405343694111243497520782771010570513236915235156494314078915363593029922200962325444223926384195301342498921196604382823325519337456982704616324095990073637131371349070180898427968136562000945250777987120929200285099360699141087265618972028712028034190023972833673588026256567881824063428574022482284853583308347061834700364749105097750614774401856250057584444227630712943134830104773411343333127529126213572152549702692998880419611791607911954815895621699639382196602219829614393584399464196143552360377191067286615991758395272621110119521038250721314457339249952952190456331285388415322074854734524006628703971898343438699048229107559264747216277072752825247216730013168703758391197322875553423754371039423090463718122540698167472137207152076016097367617275453347789659437059588740499766048773740641791761902117201174390101496444819932333774457140912749894426729414940639326042549837987870504953786113057776219140320252950865908522496792820030585319604595502992994163274603844815705832283267624627276973808026144055084229583952823129376491705636009853064790614349910954999565432029317431966732198181730438001999320393244497931188120497624981077291429912486099336368135288178218126489902421671096171115217836962674936837658854789987591208032639943169399873816063019928501509784524389790853537972246621971910623399697960952589272439916745415257836277399847842159654946641562532306503257964062739035341032630034986663851022680208971804194791944288273910486533239315118509337817921540505680766656719973732211381801368165761847567247233004509542914519091674979424422525168795427019722363912382695604783459818356414076412781079414301700674064756526544629025657472352209177816841313048137972322592992710432564506987395463260271118788779764651739799848622201630522865935206162311798560663311641646688393194005074349674362400061341715986572480598338776583357218699748359760596232986986924451822855601837876128309115438658855378422697902242116008003665480518212185068938507646394326155337812653846854413319069382204392070873309495117712763227867247784223057079831192596243655744490135328423964248679918985646813531796063607979887008174982401100351943241456945573706357934093255718803462546942554328651471218241276722464582581816557759781047441959835199219026165989645246550404034334389107044416706463562558369524602011512540670216171883583749955654431400202823945947926258174299121646501451120737381547697260005863592632391953543171330285490392867200691249030172599099026012437880561328918202111820033928918650034495198007905440494721808648904772555857010669491439027290732315738110633686926702677510755936404329809207839117745588415140466314271634723376106824511659599859174847946903247032244169029355999027619317641456057254354917952706279949529482579894917921153413883711874607679490182079805273744217332489267795861831728562486705113142973016113420636003443273917705460809689216884545172624842702261909466655343388725736871713662515477466833971593127369933144218830893425819703198576685386412168280014543500445354291168879252101206547258234026553032209784177741227772986109245112018152047224045903604731140621062923699760017875363432848790324865952766382526428104425831833428112922866325214337847288529042923205788268670060774471962827302859749902110919330443072688819463982929400370999415610665833771883729562897179503586442842942383705772786678771260822793628493737271282528534573795105658767811766174029728452463530872194550512993965912388972414953647412305132613546796974027930857255425143487195360038728531811786506585985450794362545339267326085229766585112480902406480823892225178946172846269491668838484238562774444870571935104422913122200387230016535295254115437690708757725455490926765806900227154560200571765125357549042880858937667342459349048277519759721678007492614391454306154219069609497827367176123749742975078515391685627237982706153566682195468597271740108372426491250206219697299336610896778097615184374576942038138519481054725421640211891718921995048161125291186169008453490217336059044308509688721897498959825701005644614610933913625906836854934799923759407813035500666053485662226976855390598614141104351072719024137125216349403709131883457578478566742960327179962035499690913004228129622007779503719441785053656401617097487042768508321466643316501291898597925251175140460313083319497867805877802510668051206824320263298463022924052796899091575113436893859281610391767648940244467365781997728761384924872358837643729798854081815346936406424438318203746166572035417426571428823177999401938168938633057373734314393846948490650330580476902820982967886273879516113829352737650061024284772795510354251478429872523026157335564434818497841482044097189804401606340777212422045569131396777677913738278969263373302851014569889182467863077580974856318123937227165559937574788863885948234118212771377853908318965594283280330141221288756744126917161829363729267213453878384047093400767265324549955417278594595012704259776639307902989066452654876710444531396326370318218760798282702791791663904744231048649973827170642054325848445387028638961516036367040612028131790066586711361860628748127144879084821003753325612880305935129502588912312248964526580548645883283834274687960170685826076164093185781677070720704283243445852616633685114807120215456979279359170282888813645307455426048585918236623198852139170559346463311931695171673639451464698655436283295849680931598042071446707384687812776050374811066844294121801124699217233060278944348862182028686357163087954482550618676484605779626459348884462419126616980597560607271800676118560951913453132780268735971467999917751728755830711595759454172657085695192290993244180081709649278925434936873312452347008748340892061900943539724290429676416585946153532776703436031315302971938016650563424469096825692066998557269408211176591449072364525426370353494151726795913893724518465487938756563802388964891099249411286809211641381263720880722279164584130607236339612210546713886560187397709363346885162927228451588076262901956398209176836397483976605994350508492805122748153612831986504830735661702637238472964495449715109477106102390078331512335060649834930636959652954851437543515459193236213615369975884087531954320990627962136367176682146199963270447574591880385159493065381710520150576575996590552467103504277588863904452938939779206824050436328397228865095432763144914116724731883747057791866262226590479175140030136380304165102718037065064116454578633939468006699786050429741817076364096843410954736052770056234339329013194822566124325594719221546706003328459199190997782404206166825323286629077592804739921331580244876533109057964764261691738137974925058219356653640798886342534383390462830811798253779115782303120290698093696734333451698962150065188024036049689970047674897077285972302935822330911400117967741437232181335842597957533030196494539244445824831087712874130414086028700447383933030754757308186595283369072126566592335172179198288056803482443961549567995605335464170698189636724810101577100655983422193611612341136428871754633446211274387275988890758515149766218372620918643653192218695901866048411832347811444041809801481165764595176023272606525930789960532500453808423089750749848553311720786092893854424162773899371205043992969686838208473416164222426380254055607882962794448132461350272319497819098292196876522801157511586188880033774400498294722796051985455526889833487461151016359886850878907365193682159696969401478147905682540516582604935615706026556077827281608158049566830742907923497855535452462071014386667476749731054801759403851464442808262044796471119159544014063069311395228641951438086668180653013420863600906105800303287843027450250428731955864052930247166513188049885616357367949045056963464701074054589629580083118340667601531138412353540519777181145999883959269828737810944970694108275915701970525593557139113033484742031774973659914987095626880072960354488819863058422280535333330628469807989241838415032184994355766186260844952684196613854454711071962277486698311596651858065348062348183436886420040929694249524370086208070125242213117115387319794906576482177508305567610611008336352495376799668792108775529988786045822961135119433576166858246635544764222235513895709144658019089329665709851258255392013564668111172280242773861490882590219958053869841110080994905373533185600411498001393417520964961573906612271120767460785831696271592740587912753916229149136869542708061149398586958485569752442361103628704422225195414742456825836510165204390351326760134063173514275949151825745493101479140969141423821888020567263813428286841721103211342522233724884738663619837992160810255416325636352229981819968208638964494978326385733399649985990904988326689711157916099453291872559589159782337187874745474168307409100601303800850719489075802515774448677170199009646040470921019068878456253428570973781539409312307804647767556021043078120331798262980182421548633644776264671165780276759834714842147040557148949576911227909098459980529757832154459627651128823438295998250426113231389020317554391853302682355084933937599262399718555424772942144162236958007721094227588067535980763770799995878196091787957770981350997270869643910609639172860447711175448764611913991286423356313201246669961665631780302200348588943103919172802546602311724420185848757947193024885443956388511375636855959658469477057882199294632673733515230565783941641833763248565602462971602988995882455882065822983394421197994874514056232359695573945953281148967072647175789526301132847971469889518292586744640117031293056008722448837183891014892838397690816104363661785856893652814341096266957725388452449526043294620943195303103095756265110043182597885150944533137038085360205126152222288682099486801593537808262780941506138490569120313925428945685702883363437240578945242890301434792363686371004930882898872134390392701798427923112898997602706890844130810327282912103871381663582050506199417962019335762349573050224403403060172305150303170705577273068578115176588689964195898267287698263180147624125991822581414956981464524139423650767137904760289532508457451487232810235074212457585696036627303684243488602896640598761169255656969200466114219227127628353851671377263839793076578220944989568567157229315213541971643546633891761486447003927447198660175323821139252565133497467761496623957816091075003843581074634426292570960065856502651231272513070683828050233560535322058980109518699316941811481245711285107148332768080847418458655396704441939707656566562206769206889786078591703677580291436642909804049764670500235856303433168564369334757940370794732189832439820191281502807660316382146545839565165404586608919656511699851679927634612222323780852070815823725625019239494945049438218655635647109296838991780221298647615693290735504806092862991708809495018782659968602850927603549767125602638582549747059297822276188901624756395816800134012716360494051755281084375473141991943885116969020711599336447836207910487645246572828587318208921609602093621472637349393846003171399585972177996306763611736187261002897094596526235452141869388966306624131481430211612633931739904976284797041913202436841254153121415863215992581885006977012707848470416851037274495562106130401897970860309792346420903800943791051868260158228881178370328800216677354548403165192702870524812494249243108462321675293303126560898275846328634863093290692912324806763353054423933077874491928754928902488665533170079906538567669277586175893932602485652188825702001936254909664575693885107185245690240628689881012121289278444574757045264368038853480343286833161914024199140030872113001305703815933159091952765710888789731620352853273167594076590678010747536525714716637408941236110502464266137022978742659024227435630224217507777083620660849600645941059442526660696497526759133985834657388084018087548720230730214661766179126382075890314519484702638886506120799780828932036264553718328644102002040430438297209763832033378926383734631573378606817136089519771534591247298568821767839113639540437227148887404096977011867186297519196883819233745582798242302256060018518154530543273499243913862147667964693090483017669042142754630229135465534126044626655618057694868355570296100275289815837220778396950262560374738071245394421192727190332751606669336845635148515672224986640416871859422094201185775608793848929948089617695987251378772857827100230050250779462770807523495656478312588768509653564849060189121524908437027387035348788393367592812060927543417405115230365844843359020605038323007934897146290365157246781769269680839482701016840440430649548762617235424131127407101309568991984039595404339811765804470236248671232275170305411608608015722076924190152240176760776106564981730892977724405201509776373313660531754849430679391811172870503959525329602889367467056855174880552340802904121228833793344753852813507298586494710463472179491062675514125329207149238756943154919335298813650018097878873453820509592649693854765832123036435355168006385611599855920653473027464755781049825830982017645463142896667764276705743774128822305065941308774898169478706188291840028960850530891976284798474921011933355857403153701548292610501309905815361506831522180324715693565699837938791969862319884985533692800540456069995610482674931422365798881431179920330085914673436537403116238845317893007876496638705212854845037766726736583870220997928733404301346371942984660084933822567093435882746955347120228062380648986828134244459325580757718659974473861607500731426311439429695107800533554365900077164623164995818241670346158657334892975749240582017016810678647396608388679891807714225958654142723029515580594216685384937552027849724848117485908187291420977518049165897429020499101953224452300074779274723620241257383103523702728846628256633654495530534752029851908292045855158996068841809312581044877975950792583829228768608555856083820822144255397463745513754054641547199004015319207437916539701642897145014472924272384277143529122485102674166187210609543537583283660202067849765768129816743379821095809198409641007684282032756746646198996549053505892668436315064406160741310742550717969070976544129621185207740205850022805495999721505404499490968050325272785840036897117798015435886584706251150227188607840919758247069458750642569523924376235679352296365747484443794745058248271826357076608934965949763343958171587225513659670759548540270126578487974838193978056281019296711837943425399421646894215045143553415794873839291996566265304374731497299023870881976516371777597562435756023255187018349662471064082695837126052637129624926718682235317408355030895676043867761685750583141817443168754513717883934735682963021662210238208155621609441303815532764716023172486888118337059611463981832442551086777336049009683528207582601573295098438030574899391500974052181590059352021935808189924636525317254892616979911390013536728022873588839181115871287869382075128652966681658464640733508483274320175397535927799675475284749884123919333832846288334075368873805540787374957555004893563890622574500245367974513055878082212950734721449463651082337232054695911687194094127629109833282706904448626474452054952437954434049232063447942975205505854467436350966044194107900232677875905324356263661113622607920197648705121097380696490212612498644481498028528121439624027278937541021954981451936157429060959914388365760082292697909768015659820669443234752864387661413443297238601125500918449135815026885721984998040249829874818217324546336320148266297248257367900147184845498799595136024569379023801192865821571650892769518799335445237973479108066577785984274759015998618703827737242175083256156726402494327024777014528116370197593788553540562883301301258984826540007457673538524929592262189352831018350144799557398404733136140185343072359245760508291925793802926420638416217719986679753281209801639884326793523246421822797491165116372248619787252820869549368069020064446604257426425841265999077899175646939633468269393683417040508062076798164016918479830038331144941457991647583544639905347973515245519679545040941720370082809429936945800488600050673341099591068316706209951542300055908422167988598538827325887153623249682055942902623909933749396411371422676367692558617514048714818251470379307706101985156863082757748099741065918127357801683971910455860428429568856457417016970254801775524641420737856164903953963724782182627016050374548893827623149095202327935797187425521094439147718195760623277870745985068218165020066543364658957334723482147903784489243691886676051692089650048371909453863845825775029194244647647147628351750841322586559267563170906277638195824529345886870153858884926565322767282512664843526080768869556347027692230039200216532360934550235990792712399194586618802054357549966880387240876142562689653882579247169891079159507905989801473674385862292795496106187588601628235591371127260608014657138614847994862552393499721236516083685961592383791988768453630914866827755855460174003582000445724365173533811576168356648872206911074631451375711060905708765033775351507651784750186719908659635557700031458064810972284698866499371270733566163809243067258616409639255039109266946322269931613374491521351961639919429998787314856369127491539920923309246579640213352663151622992146866719778341487634967033739045804209688843277646051361670042368344105045938065443217523878666347083875920577171164598001309462111280790416174642024747365878890497648683086296526101173477198775906110721699110091648692701064387971539202706967604248769856589400495914318321999967079813475824651896331050599663668036047870964002560065829120771188378820011097696281216346835337891874455815376995177060614392960399554448678905088947330444780036655133550210329610161812597326162327634748136792698593282771137187567823217161371906772966054211256450747270471829603682640158159104461821181614018240316506695088064339250348357403296591378541875480062854008165587970359446357217556682240525218241637860429858122869911047230344199534500181957406332151686358577375629454260760872452361782593368410121350492974830826304490768261178150163166441746821546951230968917028052396885556416943424909823463595034915299354455435375857485977195804897771603458499752178277244319422341413805491315217255740240120449427008460521388989078654203627861617647718301432090815199149020228558062320583928633218565252528497001662234924259785803428660168427445865821339989034737169449506482877285243225419801816093178390890417949844971990534507874687444354341953412735964230286559409843460297285792528493956295190734366841237324359571685524099086042401750842329202101470231592345321262464023523778628467128177801876795301199227672808111789196283833127214654873431018230589175101381708122333699859983274565452900111586193326549925496652730681017162917954628086993007970419782951077950798151848465392516662090091909861930631090421981778109717646866306193428708273229389585864445214151485391920629971133469974124843568562840121712754043018370502089251668415516452104262404771004438102490028643566285924498560452877015975337387132171950509448427802460853231325732921521601683663332540365739288916044245601611896078442886302738108180576317696064835374317388429592846400676568998265497117529722845704448023414933870298530057988399139464614649248690134285378388731977460385656525303800818453051865344945312875534789292523513511064087092730961043016972339762921090242003637732843384775930367004867318059697650043172126104970824722998036175751595504331737674823297108347571539620022706358555885700053473430098396610796774548724449542933894174504498146114168106073605187881690065926065476555703546876890853601235886835656852550526242502887416897362543155756976062397455781453999711817985184634393435011343898932732732122741486102692331917693745149892209143189313976043486439670859784774782512118785681700790849426475812916031346492255341862292270074390402083230786644356156679165915843819293733047785051013679380062247899585775983485919902642199591079581874861566206099368956948267966424748905547680959964669658101178519129831112246814323613224804640334846783729613425160672609840101666777035936867403017484596346348700199969394107047194197655556126632702948244777980599996321579298687360211583963396159343748506929910358581835462444901296012210406575520216726945641028128196374016154387440667018100395736767664277135389418060974318519287814635021362975940109668843052793481027919015530503788756565768556053494101476139904904015940731324254839350822913977078596138726807578370273865876240132747359117487983293494403235460098648720218813155851566925794637053468125493705500806009200826874152903591185767006334422061107943429808367552082603364114002289311069771601059239838744626234229395958370769109304805471762673255245415652377572077925535073457504144875003377252508985302217137191200898979104550869321991436857794660935336087455679117373417998026789746109516657084396324585847035345660565463935408113022371033413915333658333017589832182007163787843874869451486157053766774832256877275805299457935182938670650130730255199874836299626791416025450479181256312648546955846150425635756061595204634963361641278838199159765396703605296821814230009298037879233253654480960735873361818231951638089636080571883008844065470824453695808395077882971823527933340592934043463478573923611650552453252014997979498850788379658464345851472482174801676795980926716198172225170322529921811831662905992850240592455793948055907714840851989682605047284875749831319502916398112725158816668583600981770231241096204801064845524817905153377946324672394083925535598159429926485395343546306162444939229951658404544077648529082266861626182601738824995688406503000350815730094840205608577563441659492446414476442311746179821469597378216141696046810306643214200983086790218039703804474422461082708764605039133074958858815881601102914167547352025463825461448546530126595443216710793755082622256857005170756196799778945069816510393546208630321347189408578095613097283693986999845005933002771235796758911848892380516594430169717315436650155536305169237143470061963260906936109628532835470265261174633041703309624811625362632233400563579702004519313135671105367301831109207753028488334767383460277457151005298780463279935440610293549200477852974846487899923565994889195775520910366599752032777577075169068596579213968818659930669759401467900264407321320566179430428520280941099907291182405552660192664969086123595401083054349683355923794089108459996801442620420653368391119856398615154209033343175357200983506628360229233742226992168055176432630013946821192004306213677608964171288343055463052873947991358439712963773973845337184479559078107666110133053048414567361668820026484747624723208468769950413519404976436551684037385743896257924997391726185529570157296059048928597602492351845120234082832130573367850313327034412472777288768156902521004459190195021551958366854612334075261019393601843520728215987135423452901735816671233940959997305317717861015629067117853870211426848883651347772590782488803599615557732121507134928303036733701012014847840615873490075966632526384259674131439569478978078547116924442546218734988826355014115898122633863388943143417840655656656018658434014078620125181598645687960528622044992023593428612811147155429968251478582072315978625931766900104899998175476814717665100327882084586139849675341821915232735871846398927423564731126155643986470781638136478794866719918618177743406811721326234124984087769612226923977079759608706204229689896493757199058138770797643953396048281798373589056039228726257953743653058511167963845728205381581842873731869995250441300982152310689368639284527691510677133762728079888650902503359491370902041406894853917365508940881002005484972619448654880417174069153801138598235365828932432449527428856649300665717551812303532218747041385157456885582920395857422521489237734696688193485935003939022721094909834664201406969548664964078291596589574897382565938675470010396115178690202374327123049859688299042722149537751149761154546992523396083193892312680116970619192565664079718388620855923925069700459682668983141139847182912170091385947875645063533180820586426438588693376826485706275071801824253310270180242839410198542902390952647672226788436937610805959780753619429601372672221441291684051156840323402269760046027918494923582525318232711967403477931318091805627835450374108336130189743098393924821890892817645518915310857650405388165506192359191889482287595736872567543659054096438811583335705691395703239065153913586314670806522605435564820394517692735239128151622287622793200281278737028642333860092802468053229938423346675800945924023068992741459303264300838355779367730384224071731684556724169109272058756577492148860032018839805927502659485807173026820996924959547516149341756952670294764530828429883022647495827688289412845121503793196902764931654320206879692427103608467914371516539924307999865597541871120626930879732464923592130737961400437586921457896881250692348644472950305734354897080818706091809866514961776850526472158811980386254101604384226624691180938081225258629474530352495061162528334031359325260878433843558738602053682922296627846801727735412950754750806608233646228551095506053067629363764296505224355947334369596716857213385379327856671156112493396623724191795229340850891696096381142818252896747208048999036005335844264032109820615840332307508303771802742910182118833178735334217147097109391220211929499349710767335444811255396531325075544108075349382172640404187480155065052688815328220800211313728771996450842515195656619825881520236137866191682290763062780192048123558104676347984104997199120548438914296421152823740630262389132091504994503589463371373756407258447509579316403247001704098956915329684006359336674125351923982891243593897443171933677960497702030932860699850236504974932259278300172110041772897340726183744279011992594271201926121260991023419300818949076284795779172027417337680031965392072265047469980716218958042160145890191010516330952118124763187079780720025624642834331218605262827686658873933082084291308775095107866517697788018295984553181259433438534925033250249812642702026251813452728583946380250259634893256670223421488812590549695900976210409017708434146834482014707983315352534273349460859683274988392800080976303781678126777066094431918966538744381508688649705223712890192588417839754863932798516505711572397746269430330399512543539773032007160563867235170009093261318151908732725846451398607794995879868853184820861467586133975738637038618241048807405187600276476269231568204122389506317089596443834056816628787170003582617131300637986815505300794719315627388586859045036099114220075991539498699815782075639240887715461083156455651682272192085300687246090357479071719404585794885906016853745157229665487588917233330060625471887264002015965239076020156142873425358954648857592090287588621294339700481552167904642204081792795168869412647461828347231326370600055745291698735910616874290945763786452477853615655747633676450293920933877506177537451408578010171067155873562148735253471596692384862602647539269001565285790766243368059822195346677819388773554306355468229616212214084242666175219291562703904828076342609082664802981509809898598520640681976958871207835067294540527414267064640862947141522768469700866598767980138694455255399420631148153685924930026850248685794333913681664144375346624759234315819029506910609888085010347896648297259023184800104535149552020461113364888041453574685576967727016008698009115901210406869511268756498246156290959161111385903425639298285043929889820292226645561962443799271899758788023094622619850909669507667099516477168356041526759103670519416548128293294586650772835298334209759750863693553549382476818570200853566872285622158489193896716958055821472337292947727892302821179873693886584060448209708613835519796448870784284139137019797379239693033365669523819751558953037735105189665963184449691553566181697061018519071256764112241830400864993265997220194316656497045652973961201541651265049598306692561299028119862899093160262932200464294603356110390535541100395284766125179576364231828651842089745343716197937266016877216146247837344042317733119291581372292924937284382708209564511027433617344784615031660775478655404307996087749138890486130270195790391154640944395124713712086761574471425279182275542025503953577240070809517028880149774431016415169840868572445985516320631841593416956994774301529158885442564518017886898941517569353511976331553478565525010106894819003573105662131170802019806062435973634306791520098774870039988685323097430816278546915027247530925983264854460702704651280532559992313489547872389208165871136041463715020616044265482133201140640626259097938038239862735026417127613267707753438254265278555355834565052491753264785217001824356857839327966696568623283872138653543669884927889231849625234435429679807426897067065682379846421511505352177006746828170873506263356208296289212336707910188890733487798552371964091420257835990381107708916185442849084395083376472283620210858762596356293805889050497861997863559334276437241655244706198977767899453333256139599829128753671512297035819103384452993671824913695989165784330696985849186328679160530680829158766429542062152783999184837725826791754963251758395808931991723325694526813258142398798241117525160510252617078740341657334640051102671072598949785310399871626457183873447939306130213622098075160966027222252213852489431470228183798379482901238855633850250430673314863710217123696087140466561889409915257270741361134904661024706276296155723056280891270230935260856166392718899566918075947164929188873031338245814144231669571792944131225130586825612558513188875659405751495175850406893396747170938887455349009528229694906868167614989536795120951180124746368960969651173695441133560609053245591976573886499823642191945150994996528622840451762498750963061984655469013415095206412810768604522915028801550041485637986717277819216430129468555636985308964474633432768887846767906427769480484654937861600750831128564873478176285144481191370971598797964957784514180769088555891592181465264964334832779294228998279142303681156137586619795082852802623588044337368239031609227808665669504576759941438286624796961665316624292267261826630782122688992651751774382857253076512536085333272425890191791010736223846110215557511405555525887190067098701582301848081526254293341316446086046012860186799927502152033615685118805570774330282521094110527713280564519551778859502366084494106735684334718640438343921721643332699141380146043109761898642752708349263544325026328159585665223008476404248420424890665167641167663131255760644526379879476673447975734793784870648105116765575704440276639795312321843265237124608056264178933076069749229489427932349336374371160989095063741865429399811840864399826691568468881539682102264149398374463177029039175466056371718512459194649810427898982992956074561414199359455843179092219428491472372235098339359326862062578969250562102435509942784276003503211358347539253699292909668040185837036825233582439467185869586466125316549055157757483342628029462614256603201108793181532199374043667128134896642715386150236903646476165381572366350432325748568768254622387979323607740892839078495510639802383296458121748314579148180711013716714235386307283294224522045528876404765485938590915158621816679904474403131436162753374402667212753690346766223340689733552193535890859720443405549636792446219307000237557871314316653848285370532324931731949228224893375252707442214244214545497172233615797139347285599701761961094586637960411690069736639280552306483448115374001995681503301180998819517771337708455648412984708373254352101979784491970336905046957265055925997122452852835865545978249119882044974309769921669019473746409878976517001992981323726989816381981003739597452863621742299610766663270536726735165556760228615887026887046271915469157310652098159714348867073680192321816529499252901489302923518223144865379935694057452651207087792327548311093727081105784433310143128178810997946891173319516080630996113812895468728139945671423827929604540623343389046080868406508496109809958127313359844141596100946592010413280361303162261550342701588837987510670530996703019691674263183389322133740698512963363719577110018364619892962685120884854794199941783931569851876412780422759743782064016985143298567083181631565345378794378184088596419975032150390501098246219568474545221720767067593436947790542158658487306828365972127389250870020456706570172505123349598421366707061207785655714078071306270881639137155831911060328543018803233420228553963339184551671114743107089029012679544540380173673924328300474751401276242299480989177869805258569890592343399980342028380898787584058758555254546059248034447741216982776240936885976049532417675536496270241875701435623929372560893533890296799312779034627382426394061526650587463105092716545103880621202959724842802163395679794561717446587481019666457175551659820896417198167800409490855101194927489654427905980462077156506541593842315245482621673303397616524218906031764721264039795851971609845913034532515671732954973402956265447720136781484768806534791484137393653388913714934498363798715881665011040113421653000281163053490744267001728168784649499952403654486932512427013581990946097885795251091892796932506642117249379626123272407781336482278301276662347024569537235340173489214303267981104880337310657247887218628864477285628660222336097404852790428425824923618843361504521394645837392805979982321032912660908041823858110652522774827331243886369460425568520772985637732504923635071965606498119317648199653313332958692241431625314215579748270762065516210941937255752149548114500720237049327943558414901087876723905255005530607399449203102917428869943100079867373622496191390311813993283674331644883961252633692294193431283882277677634877463905077384464214380404207511799254409949131633127209269201848149651399219906546164140057911938068500098743892283379197156103431417347747140294533658869842003876637458714713177564048961516868295811268910631028692294129666916571653749284711901327178676537449606304725392390969442376253609874527804845290935700799958686681191457568835060603767446786714268636161814676896866736616695252607916982479357865867130134583869888034526612733531316934431030595805779566598491460324249368524375931610127652111857938122822834465130605758672432039931153414408361072785482364278526399276359442784297195987169723572274294557325966128886616663967695553213671213514971677353731084549821720106711399802584721048157270404981406584167489435752665578550413562235659351317298864501357018027823580470746939884938738436874018511761926756933740620861854821032048452786789868772966500610403020179420074579350222485939807581850946402905764916303235204855505002218838733428083093552350834280685072243121256529471220912526113372730892216771874918360310914105525963378201341319667049160911060425418837514529245254739790562475610571662955175770215152813479608006645012451137477901067833597358970516192598500538494177157579972629862850174509172469524993044836745028876394424753783324390423447566403915673868124071470286034452207939640511816463280977159867905858690793653210795956118757903543911716815034673405822666576687814854962153438605932640654265075887068948578944116250817972600146732264480986885832799915287510866999578124174162603197972984228026741654751494833478257130594150058299373167000436763299220414339733166597986831893000383592678071609249464532290454549059664853690534852813260017341730542655455292962862457835522763180593291584351220196519260761559416163731723327235275021453658805749092179664771052245028921849435315457153089107079093986431831251095224764717710429875727394833322208380063350886869694429345967702181620206296523145385851878254902500298867467353286282431136907130144495384702787752657550967021775049266885306939514657223316926198290869922456525517097655230354752838586737144573900008006813389673820380155118540137057291296468867693030034837975354833293051243412565196180021650428259877722884756259915382805582680239121604211297354547302681662002517585489708600106685857317760765639324632656944924166013255265070659357111963942553089110368279724987266124457260996007591797734831871905468597579292140639199920982449536579704253310993619412301130849553333561200602844304086509728472462660669752530184546064479624910452745627575354209200064865959333974463348122719759300591766904400973021279979368419630989094410960857640167543956840056591896671354469424097453223690162791120141336322526352917796258685962026186175457764320969682578730949880612329591227334550120818076018357550751557086343333566513536482118728113010474296739608464654664496350546594015894263801659707988819943382083060976096859034617204591963647969259994705135164815528535363541345107505641523278720726954781402771513351377971272092319714308016708313771439206416544828762643100392411269980250247370300795507048982451960195681293107442842143540615640975995028232604611506238675955287715585771597434520265463933318852715245034171787830575949121938658060590535401710750510386940938959915179188171784560756826140631795499800630547758354578420396283638098116664874126087999965273638315305269802963816085401382395087933304766567699002892747829235887642704114829690059816594202677665614939318819789885635620693758604457089084177655219383839908650785791209944062805259864584447951480344701853767703167633938522135483886362043897431721581403680766171914208230996801433461591573414514686066675944298790058075550039807507125858401836191865008542023243562635153118437545225990631793247796889672484256985702076186118603628892205853421634888409064551975002561039487806859002609213868466379571281528354998173262597257269967703997944382878677266750282916529370744563949508369235277892002469208554802173655068527815905412970358017713760563227183786162957514026674184202952624215276018198079658841211078605433962193259030638735860640042046490762302221053505622898979015461703450466206689145134050560653225309341305991930188809666695041849595146364236812400080344583660785987834261158275368727656930521743167872543075449590066102577869625384018062432141052443984225083783300304195877265822040368702191364797233124794436263045688369100173109488924009611219708125566791987803809514266891888786561962372091481929376194172887424944991801564793291487872719162216951375383561856236450432419298086353696505817234873181236017551028470077248780605572937200847182901409213486742955526195442146229342739084246427268462296369822012338624745881533455172085758640265503802711654854533328590780025754056604793112790047073431582348014946941464586818018273432412918675945252516151242785747672584078176219177681602754334661126848194012319588446776419746477432903551459502865958017912858261628953249585120706032816550448376768050450759051221615965803147570011037354154144246608981686220089730919741140728665511508778614150303569874353811763988010492623466855997339293728657389600071980368299827543246333086638088921975685522395988810346655996225854820866084551783948298381887322754516812393386892995698892701920370503735393301039038567644728082825880222479124390741182080377115409478345709265444204728329761134205638507088291853020214774366908613295543811233489453816485070270761736282197744458399929077140603836519629024133918503680778158031490773584294617172824432445849936723784703388346070707985987948850234076147366457519935254170834071428369586882240663624490467355681615990459595170647914846944997015891605165166486549708053132643407078414834437325412267875170241687817579163815915874251582158165512407685697789143240206341813671623681109578609920705816790923153628514290947824184434876194286419859680188116576815377626481235003366729755684176602884743168736048877360082719137066502857097247210683040433090795468507134089797552171610155846045319668442376392051810294642166273950357473697480884824441187263928961724371920827993439419460303770948826349078681774547352544620011622364451797348173962591435490912312826855588335991420506549702601071107460533715837822971039890520178526661131092178646127690546385840575555300373135204431145392663108414324164600941416618223761281498783053966073271113234589493912542349851787524843285330782394401128533444357343138489527770703709861865820878751888347215405957734863388962486637548272810421211648655548084155964108134919321323304943700380410686472811050549673387860103817904914511781514841773137625370550270465319549002375673246644096903068192269426983562585726020304131166033410341838767919059664947189232339004945035346933831106501830671354159838806192296633806050054753336334704169461631785916976396043628770483633215739118076224995741801150011889240576790692202248199257844445852332640694982214735797096737946960884487405517276528804155969077476816660246632848120305144503384381000308008397234843668376595695311361328922357450043721468621579228605423195300719316553072593803895263961795382341932951015732229441739830281152536748495789917791945438066559147310912329609886124423776228755845835613442449869228229938942968739327515480610608931021415276100885642101945627103357733694352520562626688123966550854785543590464984330635678104651953337139537784005801752039881749578264403593258200461916305300604943092446235765097692009031977954306768656894234362261319275943440775903842921103783273098535730435841952276421582243457285391759242652237006121865388765202883965920543741826861133791388567732218059657559065279098759676690080125441201699472537470675376391365821805593968414343257893947091345466257783481160237157159794419136721859912245202239595052967985213254676809421481896883378989764040844972913641125198185156582140616702145461994945168727509192575783837201650966220847209614526493403842632423345495120721493236796535895147914793660160151171534012029009380359996252381162652860327060146675318515534708770497793941965165622746108823072229524017786492064043749445264335284392107765048266224559366232447959955130209626069412363409357487760112313568308103248611126288197558827912883200959133298262742005245481349658140924676885699898904505199788793556395672798683105624517091395845500180945922048826647314864010627073425986969817471138823179239938367030525974340951828235113615608559083594140941557318467987060334205511858755418341778920848230658909822817640514834897029928795516764074753331451221244610895033108514956074334467087883757501777289207993548037369102222970184589740474770662897124245370578120449894563750588999590256392515762810439296807048017266567830857270340356934178468764574268652344586380501567670896522927271851726900672390337714040439244130052622158733179710652255847617311051977095387364413239752928490133361914930259409992378501668415129577537464010732882943894513204772820131253373776442033606536559506270888999278558842141778790505752127537862278077236335361121946252379210651351161413693276167589172033253989203731454682834603346449463296815050586159644965377582733455456076014722175591037025372564710266633832634465979093065470912796053869388909993475942395841924631669772985888863167177846646892378678375817402653182115384977100818409858606312382162488494460551944809613212045451157321099205373104532833643364759014811885556387350817504656388277416835575760531422182065777438723466375004540727995805433666334831608286068044161593127369946645208828656647563002617781389194024393395440209372652055408070927388716665984413202666631908502589779227993973153174497111500834811186796421311026991300887290006938712891710604084035442596531510655857088133568613683909619913574203011177191695326053616634460129903919554893223115910793993948791772473121398554156244404202938312958541684550427778883400688808705292014048426322615401589689633410915904586266624067885986448542580360425148561752296319859926774568966133939066016283975495273771370224616658439677213631243684501953015840100859256677842369711181548382913638208540803570263261220233935509681330165527014320663405400538341857435934909977118846311866338522586354350553391226669927830284887861880093065213158964154472650547639391045743733800530805935501147606358780027839558920375260938367040943365244068772238225016450139938466554777604140135010545336435074539525359775084139901868719957649890907813236850262906600743606806766700320164451668458069822571392656674899702907093657084090703007712942957144688337918083248769482241725927963529476055799670321827245100548816115637044285091336708844776571118932445151224681907616542064282032196426061683695835779802527125272146020645099270011387158575891894889231684584918988691933838681458605552925711777587556268464216407620048140391108141508589360695629343438352524784880938141142048006767319320251283737203918237842907365966953694435172360916218139201963251961399101592673154969511390585166722703650982959270338968400711563566731343890029770836591516443719315278148046202655771265272938570614515111849509912352944995662263421476311813535403638207044206263648909306168264368763230021008431002403813706425205675160159143761298511915802338767646484799845335318740234234152181280783651101612132312418622770599867521971361950320325909279743640107725213669129039846492114772309720502417095843139234793306215664297012202943160553734591569420182328154155586094924225409734345539290726809137647745889675032268337897998661202031503677095298099891512199250863287075660040249651314621252933757916017033251226595735364059895027074023302092349164559309859232614251464929418279783033787876936407428428211243999937035720900496431965038717942712596889872628096614246328135558240745906922926143260454324753435662946937524728327659496100459402594111391929240540375854116614840973081159634072408051575998545667934199367298932375980551924208484254505965479527286258522813816678952893331105113887499926326061171823323092046853078186884960992970390900989268013603034264402229019728957481640021207339379871216251247389701126332368881712437269334262778459175096474387911161224866005451797321185562489173589691618342744348120187706732496827522785686925668055795193373034313401140465742830142611575259516857190237337097063493026808554120973949333370339128495600839600533819581815222219005384034219952355858669379570026451005221677027812480781940587504192178540006440701821941260936241786766708045674791951683889440672304949297329029068233150734785122372170003413925451757712736477659079088484694380593958009771032683882334410591837894036317925402786300821354474756521727797691875444685625670461328759494144148755517001079258289560791387249425697076692679080232468683830981743237664309681295585469825401138710254161813219825023478333054783214638799754861536237879346952011803786931875771202708155329333378177527551010862345620782904662601547424993957161192728511363886748023701246652997015128189182284381192398418344447397314230243828967500534227937272779234948369280705261659845835952089851982628122101288541922357093340460172485320370119933864270343200829785215286712629844839858319948903333174132035353405565464000260021194156300143027721147945714681234485109408578874302914271785573967650518657407927995245667465562904882714848513647179871735533915945992478459747748699211432076070128681567500724128163266345186521875659085827130097967910014814139408031971457146261939433668680596649917848944931490106472174384984062990273150687553789355341837270372510077591209026563941292800119570216480401661260743124499808976573845988616016927156066030289525727186287707587145796593819185369806245324694305265479739498927204743080840521783478005383493179523659948189756104412211558777578714419622590637138887165203505540798199070972812818969865032135539696198454042289334150521108361384417631808706552267694270491726239964628228380162181535860135034639241302333656859318910657987884071753197983006652848973274979009704519557216237719396675163106518302828061366498199042804203667319792800349002721468113955936126800010375073582042129681327060119822592195020008681688841145335538725511357443190565216455037122674172462028670662970237027863939598573793722925495381837604725456412897852408322112904331512475443786906871146988451763498974739928735274666559741540198129960948664010829746863545339313554918480125460062398438175805139745214823734961495870805797183311784493301481112590915342603089152736346032039900877531133286013220515027683534847603403191323653127204768763736158613845756207036036799176286901499398331421583730756728784766572218415518254696852905745611680715345646283746763458499480867903191205426877752217716898834281030202330874838904020781876746276161832994079193070772350079131109299986945739476532211188636648041584584093204769386839210685525923053335693210984973911483399101625704124786119678819839978529162455909961387687559334742614655179424490345953860201334505673274223898128244652031139533440792124392861279616339811020776569071470811834715825224194507657321068603339856466960124821850077386439358673163000531166187297003675914305177292325942251184930543070098028514174416050431427105705077324619625205096146390743222810247246443504043431553128890986850876961296694483479659452203199425479242323138243137833929170832011857827890989905115568594467755169929809771184829225423393411848372175649647678005355959739489670379940788464364136221609783851529614808787523252584550603779087948963454539680493327581770825300664833307569366130761610180518980682733363857359197843065310288296556656990283024965293310521347995576657764969189792926421502494132936545717945075046966221629890379466484367612455113574317305234285490962928740932679812889773693616929732319219909206638267664577952367912668193130553660310390370233279004464492292080566097103540706959154700415818297976051180330126888532573582220631961201981665451010844719652707922562273942817489971530924870584563713564388878236387827488406833214540317057614401913976167705903191034442171819125016552816559796813829323151305318912283327394537555810642022363197633756503318071979860232596994802494958038809029163731049374540573576376495005165735026586881668775505569565948193085482613033500825457908638492474063052237544453588862713245664501454152362735457269893091008826923392899397796310679347122890960924265309771367501841890109525603127725436727147041520254196673496043464878499226933999636817080464994338223870108771771930177407095394360720197544391175634441170565688731031157503859441025496713093241018674771811530146438578191039222502205012276031557014799687121033048660617372711685698781987476815468084873196495985663385932114821112308290479449164342073202454724224653218472184019691943997348409199357870472324857227183548329319555656916271692675952643368729814453794942862318798250122719185855543167323984574701048351691714538284205235801231752027356547265537998760721692296594818686227293322814014475763337133446811543948694137725264007985480416016903041649580323498312776060531146158688567792167129541044533412470208869320567535216204889460418453161966560654192065081282283825682587331200866290530437154486587185588398605710918877149515416576350741929706826773868026228081524769756494767442446546878233094380730718401542398485410669563318701242762112108395747343156174772367876290405616449651932877517451897083715093512034713448535158588966530858537954636701323426826338174883417666041028831660996158926650003425221032837705080261177392968957282540205450372723290353241830679006875159234947359991638675562670419615248002628677591200658546411831437130407110505460277637588169897341508551985986637787691243811594913155192903061812009572775403053603863653972632041956418402700988102853583705846021316382842920138653625398586239926203936429284440736305849185876824520093222779805517992845259361962857325077769029349936080143363633040905059994160135025994099550692265009423169843777537380439001656984048861612874047642413279223172770510973748959585821267511154445240973343499998906577748847681878675391855775261630458088428418369455622037447255791704497892557010165209144192750442203894399309830483572355943121316786807172821036693172989252337510957209996210225876601172559335662639587158504931678277861489542457842215604948528646562558904179857815015888374701103426734436402261070281708095592383037608371032919005243224640449339350368089073001022322446411490176280499090141189979956793794674177188404791486080607133480794969558047011909424162529809495636935265938120676756820758069157432294649209342557932518219515629814883867446875239232696935200099531428936956937031297861225944679946959865111069112248567810187927526097469546995110154739429306612122307648278477637630844998321292615095179544568561719542609627561055337787852091847922787394258044900523627177117156583905255596836155227182126359180250472431341928923890098802023129607694749878523936347748702109751734297127765225792087684858609630141606925939335731479951767453806713552076017407730337817898006101503793483133212885968942754535890776722081680568139971317732827233285915942077322633712316443473111044984550945333156341331970485813810177554520330459367593107118065186923520085079075343800950612139614612182888766266465724037838046470032516261236321441301842895493556206513385260714000277442841474609846962501443531944868783287649405935681791425445230348575300445524670572030509997221830304692730968184374285531249637498018945330512136748642521890404653005174403016803729408995602203554509784450556447997232943700541514191414043392056033407235985935752656672717377375175036466515437073584587850282012333174610076624993932646596737993316400986542390376406560747028141233137673643439639244645875663327461240560936393952087448691898896028506356486073999834381611165557520067723899092970304905756647122109127563025662916438329608856810404323623144005136634879524061699619558908424667004459467192059063042139885366574587841767988709407677633685551662807988043373979619487017111815045222013069583041439683843678002763523006985152891601602136068836104081143451498529896482819799922799951195953853156056785142301446456295162505387443930674573346473535155654894700252734302529677283730890532677452646402121934689562392677196497278298074204337531596237317358471933025509338757883769044084437051983277388573234837645832385866307763404243676031588976550489502646963115817952845770621969864798999921877829959088098032042194986955247556535316753295372475631490118990442386595409367282733107568188302874839436926988799387102592818894462468123755750092606260517480008471532742704380694364141995339554264878437111510089992958730178975044314486591756692046080296999311650278131359470109284132386626865902110496680380837742309159765596034549008713565697176409694876727504707480274266911587137209891381144540621267701517601943610547631136340180784759354185871060870622674954465133516230263695336725022379323841965264720874440983649816563138142445757187345533785372843049192207603102264443757485858693868749635561769280177490634872708942947464836891560355378253585309936302332260078959788345101513053870781500643355297904971008596637846584936427625371109352694126973211942488233421373218988822737732102897581113253594293971589023567085127169703078978368085454780806292308208925635198904467795889330900840390297584661237154318613773341549606854611952906804869931921169203791928527405552957411279271180551776946722430598162817164336739947770645281242705587243068431867319011730137450957207238591831504192647719927310684234587739357645950814578335720749361243128852866894238374276942349387725307507678984849857263732670021342381630239636549700943335567824686569619649244658028481089694326268767975876187313215722055707550368667646954898567121592748361233054660671497788461818928917170701494148917165941303792245348166106187847274822349220113034851271438989841805457037570409691615123070458148701352459187233190062111251872921197951734111790487481582739564912716029482120934739776823873107238287341275575704433352228974343221606928479506826620712404612875698041222270110602750150063044093355320155004284000491149923430808018889725272874792210816885332754464322165004075858338239269772870426712340048967134922145657970442060425465185599780703969367136051070831086365674361000158553474482607006839009178125405136322861709081248030286593054491857162598000498694211070205536051591021166443184154436667469442751291520954016986713522404058779179415403144226622388970602995492047103108770387387671290745282872442906904094456183478522515066139687809812954571313057764420256385619677088649631165555125064955064919321318374204666554211571138109198055127058217302966276992662680451563947998354584670741368262161016198396379659273504079743606822074364362169452824414246689564744994529145406832078643702910948798998507083505898745972488453694075264096814140360947358900251736720414921028768682920493949209059638023246410324756436648616120728585886390761269335519653115363261236912035512354379540138573525618926893151935540355210644359248747383346569237249756995193913301771693575680059616175339124425288864418443080319706551539908627908444739038079287367905881188639531631799444817046643706854087837857838245315385277958896317476499146156757837510423821611677473462486928234592009673964090039440669015239456824037449852229344989599371477152415971354421064176102473363833887098474988810785832881380617052221863941597777368358104940093795166987787225918826004208784310072896008063479167159916279746694236089753366007134614430068431598983223811926088546143552837620902976212796561462803863617282313548544792964533016589512450897711764631933657473217653606425945510848492105011760681184562633144891381307551068551595225861505817443079751501107073597281759027719412184517186442696362754417796612740579629930775204698009723244626477108464310528374683314053037613755146836512775107037120933702196566891227397991317740979324577080690888257674015166918719342212470394153934191392031286861506660222515920225539672691328159174997788052711973531081181651216855865770285039804959548136005557813830381897699335154657390246754484109606781856673276138479964799017403796105963366468681072558420419349838270448311250733367190585421945917781940116802285553704546356407333051971171648637497156149390828076518871820611608511326724835799384703351640816318448270777203671066283834107661502801601652389788828867110933835811571845864087681944917615797394498496842916949929850889075382998028051387539772986560916401937683207855752381482760704537259436825034352623606214657449485294378639616879182692475916539666390825332586772915480761867277519868155254475272273314128927268991221520464751925741085208237000633565300991960880305078851250415178342020049328515775460704106366777298711525948908815197648093935380678418784964021749922104317860059772401451721982702318245445850558281053876083073054051223245015335499672585311355854360806911986866580293271738259677019954498093034187414680613775600490702452515719142193022349783533305827745063705814997937268054326334248080956870335607222192853373124558520138576698610194351819784051506334775110654202218721043720373723315893783281693850234493650290427878319959409002333276353861400972182053412176601561869083084791238312994086803918859396239170393141012277380687036768119176475458292138535382666095635814962821810660354944544554327407375956476997820771500937428711063918208500893530752853353334426928335756184064297516393577175392084823534141980612699359372023207413959772244480255996276441189799673642118347975554632318924244818900387861697117985451341369426327076880518605414498458076726055720640305661993584331511048456803198221218317301288962845578000546958809864730956692949035039194319151541599424092779679383835324264243088724634246603028979281628741310278674899479694085790099332225720699647543684707976649839276213229063252360836973691507212525300878425835033363224126028574566429138997700751645528312944755078949738365070620152047390269326115918714294155983925034592142022240791494765324096086857131232241788136679678730501929132089883181907772718129213175075106908569385713887022935345567726316086861880941912352538078208653909881012508952688481911678060517520456314027315036322940602123509283387646414298876919423090067895859803821383157020196845966971804603007915512095481109929476396312498306985939783190778483047489803151798041462896647469420378176784304757519846356199851338463640563335567117912381470611576183591554021573002879784671502947391763099241377162431614304412234084247012848022013882508636276786520032870906517045107213098175122276849390878089068558087785453972550118465409896981900523707525017576600883155735499569923982427812695981561614405955138527758943805845112288075972342236301587864642730497196951393017638469615419510132889979927516844804456421569213094375374324958747314480971537432259303433314457719290958832792272589622374459259033678267040812207588343400944760293438492936494703071671193063907121023025042641999208398586513360755266365378198123677104572925864625327759923788691344081824409519824759031053755994149241674107788869926022270421152503280280683836467731146730229001267447255898722501200864136230954964835090222720706083291295867568534721867430934578842082132290326178524769739112659824438268570535216652732893900441213130576697346135602328352809476735462776735724328787686336461259267984698989419895114376637056179891187178127869003877814408214740834737458139967173885965958430305716932273659968119542600226150287158925647710629874268982323570677509014744479733088097218096580285919484579886843962350937181166590825880395250324977217568769009924122938450305375656551744080677469810278040535860705552697923257033624278833275085398696798764439918313739698852330633490888212199242273797262311134056053816570328081069222128809014355044024131205964373931688857211540617708987023056811618207027267405374774434855929518233134732299396239079788443003403275879594260465348663131484939777408258794474358827480607354860368029452782859720510919075820261261380066264757507933677056471059596069462440825715808081389491841886921065054769653547345046117272735073026090787111847521057882485453568538907957168504435234668407382157263755134911440327236563870798272572755229309730096087641541957078227066328707839130263577305304622940657238937773620984536495985071136573480933356020870794515067435738433817705154455996037823685614103525527550436583396582727990242584132172071846182559885097304007622192871517413922534029138787857183916712596947200716934291699716549608131387009373332450346679026501435315362227508469751631727640243811563295437001615469067049304494212650595133646016424366248327795796302534575331799261984271921664011737339694582325652490761300763515346350175932540845365366479118566520923716416496447250178021553589720657088510969818120507831882992250796104401161028024890473388179981160558666328796562395090532099343034385228435271367984044623031999939688990391202427565949117798970918477762103795053453021491093867223441964230637878685651774722842182262246504665668032738336597362814338700564408267014993076247223058143162623039175106907301177795913082238493254014905643815611011467981524957653463352963166876179277153204406760973858634132140961192631782296782432737405608038764025396575505797599119434939464868705091994232437869860277243277616513390625737759131265051884864763561773218062142563962934018038987223421427844061813622776026604774634799942920096641808084147750449881289422133954228226303576861716254314429868748686812448401931740451419025234406267213327076069256455907298402952779823105175198475311915196488202225000538218101623099695034932568033650409012018016352726777864269268660512393446325487152591182639703957668773233980830063154411525342550816287205400880471761038977146400998530385036423327664983080115023944470602813084047865509817791528391399611720785420738693243585901654498153423208123602953853009807049924325326188651408308307248688527120108688368504686633446101640632686712449308196459005523934771428632464529225170682122471677737542840269134736187401087096209913345474864487339892238839184070485491163507031631530851874406655862399094178701406581217169767839099841332682503673770289567866772821912888653100540894065932405274684721481338282057516261499973830897435309448883794475126875299832039439880688803573765179367366496745671432676308895726733950566848336735865879711235856921957970591308207269332853589286157770782148496432172819513498504062125730838003788940626176081915448385484189549737093663884185350035814272087259253652261115468476044626659406974915264934821290445404132049529693056871905748397140693367156514672401507502044148986519142574123190579965417613825880711134677484187187417227473279017421327695957053839544075464722339751056884741307322471138565814048896780398942589756425561855699157131125008152857073016640034287148460366114652725584730338615191055836580179772003841515340055373141686015499961335406907588286247383008636756394609684269473482930430491128801077109061720324359214650080056799520677257162994759640223563291765619073978049553444714684838088350603876626832134120478640706057927122924758355763260777217549470565275680346433807082705394593638725567229990330799592893011532209254929215027445780723613527299979557810734300860342658807836568039208620529843573157498784311106770083404720354604659827721075859849366483884463696558775290199835678835578347723062488558794512377987543942344736914595810128458538039910687986327972985387777732227208845149331191727574221958086910876272262377014026056166604681840897985767719054431387616916940106760416704062837683462986949232366366207236843747497909303425482843483633689371616311919705188875292076085197647430957194820714169080034646179940857953145985111585906506235952412841273250707744303524796212671610052554946669462698017163636663673332663318652301337818743771057638027880461588317080711563888275563163792491904150410867920169579575247773618387709398903011396811712461692419415590055549277582163894728417779618454699368284714185493756483989476424412156011332587504229005553345580156918205783821795754015300496709411147594403310595531214430629596983738820845700160928084591690137460145026059317778031382737869796478263511450156210812135117897418669591433450295069826055169234858395291879758241580901172768030513953053367783778360273534981631399186776202923635738502484278057958285830353458205230669736113861120299148210536323328351091926405064401077697108273776138605207430160793093791984621574960256695311277901618952080459769352009792000987685897108314255726121361319919482572178641933553908509113088174286088392413308986787895401990710145712777614692979571832100451470608284881033417893845442104666454463395692249637443542735287568202049279700332948954746867936007790051974440675220611440310989187842428056349705702894947036822121247630011057092722315996948068287755230777509453480000945583139970320843677680257178531747342996460620514188555618121591501714392638256984795111568008364175616121909074381490380291989548918161232809383183619967315592349750792481372022629353713311296736583647882341718815021861294748984662629977149876280023479330747404529932766091779027678759406799539728681709557246138804460013783507490542713664372277576578160746226589879650156969637728195993608183020987065646456823323651109291526862049498914277359606043399245262738779317239401946578422554174960396364728462045244592933422437240868560695812861244609665457950560756705347787064365348887898696111255931286675901658484846587578471805355726910889871594054595167772899389998784683323679599528998221640327865915214595768333023330322532028381633536181803989221384249803635413763543979821933582738158977627634175077213229899892346385663405728250074815454595733350320085264408363169557589601750088020126930927049533856304409962471265812969986777139203315533424181881275456375801126431559852024445869008450687858808434916829586881500197315167647291132483161772416970739942087146011465314016860632085886555701857082821619432906980100172341821442247925166228063932429560477827564165949183133946123389110591375552927808597310488617877605169252468537946600628195203815990796147973030624602232344500088154709615044920257203736548306945335944818639780789724424014086687049343730708882076355491961450639738282349438113525973055136689813261683082955156919190090924453194767845622566412635933442224234088505466484113087105638559061537317804293870421166534323622630344422096132681898496665840826301315062600829088563567428181956691913320126022207710168169355316860946830355345028406316043311448383018774481225869836609718142323721230406874021767122468785026810726730902983186890778653673091720359839410859683600142350583477141373983861765895968019114412146247607591340377654628406616568467922937330734603624196622772215165231093677229945822048915711524744571692349101989256079622151944471976492060222706905435291004347077003954426335517487683829379644415423607182244471534544044971364713153057795863462085867310667961427174052533344556552254011252497002988134578335440031092465240254985270492549186956436007989403941176070895221501757745995300270189453870221853204389388641971038235596367475644491057792032445367551591460521149456619515824314472907807773814789671256380460241271385157643804747859007409195256353010478525889198775711373084509623624662863282922915056586117507235442971981847220079116934576779304542180456725437749522881632058881688810195524052772829330806979426926010369876386757985873078745774871576461519049823391940253745218909576232244445915474360309167890957380365382079472086302624645377712562910238856985548877731876082150729373854069889488353898121020906463456851155365036314796759361504564117700502142454037653401698049258734738295404343013515770257302684628743451644169007093671027911669762934872500850996489463256275939864143971950481738007959417637794293335190425675337736843551374291182890262738997762301482792390636064692581384138544818446437878668830177218417670913661148911189344067629123509876062642189516363960156172069948542112683130876036489401657325841833287117585720433816044969723516066301461192474823475266285046609427608794024518435539453909434427379702964536647759969796547845157703472073740712090761722933891592120202317825598751648204103985727764460611590099089246531726676690929873710282490456127398668023071405436093899724611587472029203426333888687467192224669036595152591274405531262653010692889788709710734554858598014823854456365660484994626008845301113739232759114225688153199325659493113196915788702978844198991305181215446258265657609334177746887510838384629931918435478318731500356183060397348767754552487442981293947086521591724855942206959447124780229229836019547727100004359648024484539122600491375481639417482700072093834946046646267185259081648956851578545452450998261170083891929375597289637006611327897825358368279849178871620457945265963352160311317121590548336400612236585589611990753666443744504903420747826480319240790238807759342017449846375248535311763823136972598741316017280838303498332716269737353431417042825598003265593493044042210743942819441365354984538786339453733682252692761027355339833632870233606677722067854024204545971854110263068868012150606326339549675859536348456968057874551066815200542585017652130225990822604653384731624139785856352131832626586180270163869216399012968993653281455888618054316786526400661612831339490379654078716394352888979437438180655905883929611646369745907038118319635471826290150458966309236425348739020438331372241923635722278983712422952075155363219673903977115953757460120681882222265663340094288469237738722711680574134091781748281581549425776733870360292632748117270356938358187990686675928613787799692476831748026482128060398108733083799246420525415503211787408539691819729678586368192665995324209846446107367451021594138178966374400437512032939320776684034006646511380499133051922647055903784251478535810936093845494997091033075670522858179027328652827370810348030516342132255851160555717406476533909922574561024421099665071974324306756076566206168144803071610007232444197386360653646469015862478465032271745166129908355630070142707986470757513672747326744868195518389443450688793787640586357114010550854899207930598042898295644629144597038307152459971495062672441536292376429621647024177880058831968040605778911327159225908535112264081770105260606671708006094755425895162899248276457191283163603594770043841600849764457175397086869001879966638845705206858176839409521997993334960135094546692216864109881275258631655038232339500511885816121166838757261991118296517748953307527865822376731603548102218453862465923661492288303144149238771362033907475839403604635736869159572200090388982960017024493424586254232880308615710367334751974656608566873933300432164884961548034584386437154880403170988249138902496931279196590448491014662107288509372901592408042358581298772158469188548160751537843159173367520317837006596490819704529352538379259906396458176110954532531827091359820508137711191051612452864027815946035682807395415067903599369713062187508681436909808705359860643105237375948936740612338069642879168090246300678542701465485088481744382818040137604581489902428233815160425971572923683640428763246065431360153614832983232145266809033025066768917596941206365749556986051837735541122181930963952882921134900297579657242019570928939262403005209342700892312371339364039422990417900571376154175832895784193995309697683267319690313038033371042059837547708399851140538890300122641663468214986970641463077318198478311082619601695184318780886500510035638194681023558883144240447642480878245997865212409957307960241626128148520121139460900856712233535570480390614310809993551439117540477166829731958925400159865753599331268795609952569811406703824283300313541698547667425406883191119677144608535758980796266079051008043175204218969972823579665418509665294402994837998608809414331870790147057514799127844069506401612981795536569612254903998045421475530678024479370402310656736051413027315934409460371779735951459510320706336890185696035677199770377931895666897983965302865281629797504316230336240487670462789312460187616745417172275333626771291965655447434553569570086505863261112952668491552139743280605911385540262597623769251995677238133182042215641569437513706408418894467444189485307995953316025094907511743500243753530082550893311325275711753948525148485760167927929374385818501707055639615331614136186876077454592698928280079507771740346777669980164482569454580061504648095053979433969281650289583467042615496992807737422931335965230586754109493594689184554350880404078347303936310342884099200111635825992099604007462736006083832485609981421076323818925497515820997336753713724370389161238108640709915724028208224181667140430130861493669281832306422597791505755631403995790597783162295440469394286932102990442576778270810988754134891176791988442147470390070139566475341345654017159191296805579778361734457926631361961081526120694655462836749330095679554348375374360701912944170389217158183964929408382257505882198519415110192167398243308127623824716232608569747913619537823408481081012755767800307389811114282247692345428171118243451952082321077016948516678109266450270836816341037705255673759736121194698496748714068890657097385700717965377261001187289013494698239926501230819971594709835031120476739740638775561848015564315108844837354383554535251394768877758473028366246314175794022342637715354521978083593145099270672682340068507363257969670430160571141343624918721294063955762418922340855587875621813242346062940233977704558228152263670913891865553650205081605763243889966801641389677773429799798020995545761389296545180809330491062009336913907433015184563455035324134252558848548968277475568691744660001512582463431075297335906655936182915934231873249197479438125214124903777388102292859147790301460135300442804675452349188411099376921385748336710577610605749111379258233549832376483919749549854701456082801117882319463427077980405034554994794740088802587614268214947445922541847388062643831860730251850945873297851158096974793866227008758617306470111208614827907936362966667790901108039659238913264118445229195183829613147647483797891921869470395104034343270726002308582743458032026851407942134936819723535402698645376452762851071841112812310580851734664341195088723269117838405246583472974247393139512396256297055984045591106237438467872766058439785346682462234068663667886347721298314974836042573186792504903104023566791499476534382664921814902694005133532690025085054982776422088134531801951219960382110529533084702973547345579978863973833950178810172844420477355141438391466967172646377666812063141862807793344052916052048343957116063034028316935116706866647352325259767012638096428293053196639348280201198898430705300374591534056632113006190993145913141586660952223549607607773335568243644493732801848979555712739854351558866908333947499024221730020817625146492013767522044696306234972555180117760785888428239103227868957954371737594380861467552646733241248859561768811846144988094943921743885618626413977432470605436030092925419788571035297216933071102246659176105008160751182492421675250238194394590958773710256771148490815140477932821696094890823242126890043320476400792820302354609010132022806835159451039108902927356050030138677093001427757124095194012535188534119158875017546696889269515150324552345250751532903591821206937055943395541793454725373117923248967784228075190588780947933899992710873703301502503541049793100817969901693170284070276505635085839815583870878170305576511925686179939430845669394768625377132626208755922876770327440673316120315435686200438910693780677613005217242159709269902371810530431430789507667318335399910703750978825352245871874884680664793332897507934657377801792853811860417990308749103444411442671429891462320217377307496386288046717177445020719593450428851852563746661386143775532799820291505201956205981452783902021659348379400192416725995835997596559070358675189131636380121175286865937297162131319918645455215168337983365329268608783082559157991991235231978591827335600760578403286352690167490536196793896120950558923632327738939016923170835014763642955917996582176852905193574267910977817055526735333052734669788316394047764747521086045911483114962127566503059165956263497389987470941154401313915171669345945872904276800905174551569218835995252740621134616116827461592706853363120605438241759325371847761056439315403851977739409437589104554789165114552050486481135105369973681503174526839845923142059985771924400315668425705557692724729061007812533601409444638679735383994436486848317967751733738809786388002214185881384368783964541507268735147852081710451784301473568967875489466431488816930926810764613046088771038608440722619050776638748984918064788217864888258075662875076044384297712374273622912991255064378325313733832633549159701625864488150405290782990102684854324479799990813737841186759650771302374316412949789628286374063817323595443600078041694728141125360185226516672399815838527811198115688246773485099055819081723962215526512537588162734103738617033841885995840183875189587164698299591859533190379013936643656063923191150409523546632563212927458739864494860549201596705075585807248551231168180735239869743847681885654222921032230110858846432469923377614956797411186121873907328951904598672812831855014484487773042525855906639911375165528608756934538990113217555864683577834430743682784302971106121815180005051174461638763468408100080100496730355904741871850997120618961132092417777560223074681651410525995402153770274884736911126515941787697702043102221406777066223995410037003866529116431033202739747052483507614758855141943852953996571446287760462866927015615642081593942265589593319050041397043149126503296909476936968640610267209423365017572166839670751125325775957566653718024077940367972286042132711903501692898204012086260812196494491141815827485239915754072440438166123450399086990540082378441178983493934854359019395205568080398424945669132806651530988377803186061435346258782918735004819660760268764700906809538111748336425932950663462465930958460834477540698507112743564346138489791157163860160246152385973752114722988834692790875508836774589832653045718035210954126027703598355222522911507742499702502932052844551516858891236024505642509113004366577226248756924530647971612671221350756901058267241533155837213639641804362179597633822613855220782129556296034128048138824593541494849559808331624057712565068790318186890380398469547201967890168877702637968371862122669316137284653599191318615077960617172928920433148398402038849529741174535067583199552996587517346137484314498978599097130567425642275153424912339942792794545929707966911154062189953120307783899238818948971677886711984180526335883182251754893881530853673264270880600187281579478037816759823382554833478220652264904581023858385553752136825920306740497715364143902054798258308348192919900813374303763002419615896508772811766747703368054457261584312439483740224467337971219036740127141546396548113396935751564737449912818792338199496777388094756223384870670827030253784623329871886080148089198815443316988753354907253548470106503874454374646865897976865076290541645278320809718951335558535725218517661857021165080726170289824836653079675806057168165336168306590697325779560866033000264172129158402595076826354659682872039416092181522662920917449118969864146944749887214220202444189817780783531817896404186308889890832179087163843439881278845851500279720225970118590263452563846407372996327790855959670431577617012758742068154977522829718019202073821473269278129142939292185051892484951378496902863916661492503690789984463650470920119120388393331137119573691715228063223259435884426000674310634782461523086082687221901819584138804648459383272024193598756679029914974465811510874676504289575683445376306551533860704562272717057887961600286948021918337944907557874502835125493860193574445061909277021968600006314940840866814523623898981214128662281443626583160565044000484896884286988322517117367500969426598094694174858243491150702673868272639073141051665193549637647507537018175042246935136830231117087149526021091913093508818296290376706850478592418595718564703790784580969505651205250005167532256040293901181165684278090690730285373413424556801457866257117485984610823765024499241046972803397346398428415911116791137586441765542562243048789954844759825693793295884112574903003638159078094689621499268076912863551831802400691096511433234787580669807540669713848744077619370009490676292539146785677309365277833305260708392175471577304706643089862026637983187778490648840018491411139624562112064921897224310459057318006603136508880334384667187444704697723275478427384320191123647385607286539463221716821715825386131016539964555451315326183842322822537926842470791908908568883844781177311072481986550592185054523882754822682541174180524725031148867583592722042339333820214750848193893608898288437243621634690706194672436983911567375302537796396118206802804168168923824391379678137310179076220319132391071596190061000786958695842974016001957118850803704974184538992319706472941751906636770843733783963993238006645281895227149909844526111373590913282089737149188213935047061869596972292739189389388689353528974387311080963604556679829758443111488225825796123253817339629489138199756633747896438745781274141511924251126263993679899442732526760872519656118862943919580547846790123979037597212376293777697181963871352712350283931684055699108685181680567198880446606532640723843509001707941248752759407755020533311427625974264806876524907243486622388151084834836091130850126433831474271629246656039783156359150088599330143722552686379848485925637029756653138519142605665502224409801350910165550576284278259435331162706934326770167766111497179733415054893755625487237141990710031606139121318971704348502612480646069370487785268260576948460399380203994488158136715372477033984893297428687123401879059968298474192476978837179285075797578353902933602034629127710988788756908102348438520466474738377615078301919875386139306752750441521066986527214092390368139754097087797417289289254378360787619199897596250751740453908491554499861152371765795511778285136687060391317645755172064861257504243086130109771529750311141859151885562003451082520742529977154654220459119248659502625405194648027629449139008361237241828752637405336140710471836878996625628568983775731522127868011806259046258108754814654253735495169254093195730627667528693355478564116028923978845559684458736819833287185938517159598046230351263183062005450191532110748491623032776706090083880117018499969288669785664919067362722184121716485346042777500814017877604995600081977201130390061670551661482430344074935226662658499508632767945148838544574102167422234484659780336717075372094137178976386631332903387515267103813872816062922647798178957442229462290525657937387948203489430338576718838124901610356023445281201600433838440811574695556530109252656843221756188298176662245134671427490393116531603191851754879347379434684428449529120963741890516517633177726911068373958682069334628321675648232137991182264648997223887294816899611336654530248874161703388710422323317270602240494836417999709074868704094607834334158098821131960199450935339130118973323578032850390892870220476547034108087506350529038137997230483191144497857552442917642623758084874034418716602238047851005710707931042660419316429972973220415128168555214497509993112072380280802858602564543478448094239062946383519383212219938096312355611460570868010236161425024741893149395967509587662769703342219043180404304333763352458226764215956830633981753376790575637845171047654068181227880829296000843809643974727565961845423976919147949499621801702370391723717994452940746416711837889865138047133282284765612866663636453247342470769802334132000832059565462363841707306219323039110473347724216119552733928590789655205868324185057070069899076977525200178428020598419726465780305601256385990195986716706246188179669720662566724236534921965024520213891394062440644936129034834549722462124059475713155718349383859144943890781546557548386520117675267678794794838260210981006746358342137015053099013942329538447908984597513616678107233602943941155055628928233520561210873059404811980089018451197975733487744504335800032771087736276828601327255253227518814115227721165055291418548743648712721332092059352300899399690386355818069527677929272174799402776366094378080914708649596028825188455177832783323337540170778703384894377117929421039474279583013818578149855504323189342032874621662861568319766158025909264039660742521669029261858219467226461521252519304691124300752476266253684188845480444629564740200254029599862423043605716800299008217483312303156716923198487249244955086856808496977241475886292173951221471823062756364278890827179680475273985153829931095646152567707952564967275935503810299572840541900298959259512674350147238100348840344696750089790950825468788720614069894289529915016119829499634140929114164728405679113339202580473263424908801010877554101797712751202409683926380038574118477591156667690874919512910978416161740542534277586553082355370356523243834302744944636892615191033759949671641302769298805814210570596695769988828214248038403806816253356612563877721540056638205579839718028728873638298155530775143258805905515930565276721573958592074302317023113910451772574015577395309310621021092170364332208297405814751157460321083396530479239791087548287941314945315796732197245414856209607475783092114570793981607961692207263663422375110680281188880961089236074381703266833139336277923282777916167506168224199962688438882328971583648739246742086413829224930313776106509287922654926616114049336154663877905092269707342343072087782848504825793246259605136359219943764595894155565782710383004659557064577419566138145278247677002057270376466194841530265872723947174941340754086157803822663528752072156002943346021586599440393655059312116982145633622543986766218873684736518915675853092623927800029582909030979804817121969928609832864543851558550733484658016976809257189797192569567545463048938594172178531613376782833082113581147648689248645786927945287454803215917698591635415220479389828682721613544324679407130302205132237711379418480623864763159987494002453247274552773947749044140595758636211284486599802159222334470379348029154348590062472060637510133919887501483870328225595059124415541113699991600934662680532391868068271217372167938528092836679247471686667889097492464910447677695111688140828394595884428442420357886396326550737729506481034875426278360673196461255123383315600197891351067417447113129860768525354596960542625456910447867808699461954251925546598191977681770039873177556612429444250824607636144617078881329416112586586298204226936329678208476375197176745813279844712986139317265472535635760066027606623035822908518246966371927611833504968030879994817199992266543646002809776632580217618767335803218671860341499710582720521148948931942273843394447416946048899310708453091343687913265063330569387912815386245046582001018555332427395005794584152599795323101463834550194737292279416957933302688077411990721596663682041177989191955921941849172521648571487611478357452292573823041432808774469815842780267163028180170528860156333517884767173447576934006050199074078054861829199554889998052454747741083735696846364227700234988682032538910301111545874349956346044823615715260449210568380364754135494031748462118135112753713007044405758313182054983940917537793567460540662581452200246721459130703794899509148678345839170869312588405991894893310212585714012330638422530528424334119048058201192917389080570987497852892812882285985015064172956466788215165212837561556623840418163897123356783925226678463221112546382829387174165754353427586678432687304847616192946021563923471068114648460216644365770092426041750251490267039618542508437497168488726568287432425728551423661505915786076792486026688981004775028695107667878869669659176231078155558826659895605849594122753225523866280956230453212630883339434321115396202972106940642839178823708029574093865023809426855996137339611697739107295631834572453379329766495773161895472469000606079243124079217650747205727688860136221734000976540541912346240523620996298354131243797436538487607573790543207456029325664258811373875505741850712520853258599727568526613197338607294302474899587380474246139842559427057750439392077223039340514713687380634383642186818846395778298125487798948661859640693785282285816345569389028177212118850204022775608742524120803160865588396444281252453236353660471455421237095708381136461351608089508815242667669639709175908260350155968699154920267399583107716053030919133048879336058426595086513029679965563486104216644803960824907123458018060458452575490553492755152427105417177935278829183429176809756789768233743514286593314121121406362320851476793521685899312222475305668219634003203040454407358714377620553527844624362926218780212887593913094794822621977668380005339664402563588144023034831350530918663918261981537342218700849406241297208018972467530508403598332760761657683134904412616048814062620564406778078585546575509788794035714374814229245202310091445148547561761177035386351792772993720462867799637282663387473522334659407086026093427232883730408572655848882120613618440657316807495057219262615226499240366198933211665771792289589811505896544757534159779545291325921405217689807088869089844980354671381755734505790763512151186387136716913423596749124966493274343646724822062877424705944585744780068743900558767113281708613495042028342682846788124736418826467164076712450451715268365382038155174902844054227924281560380850308207100325680790649263555433699437367696571919754860225137999676338390189741547082606872435246855561182637869033302746373355005910258385935266943575331895039704681054603899305364150250125379852903834195160143672957602171948666227952606219216673242678217459602093053395163414671239898176831314616559213634364849522961931055553530367548863367878070492181715997751533618386862232966508484771225461877438544235796133194303995638058646510488127860980307264774860636653274263109718169828387097994184891667267776382377061080748036923368758296182776047256726968199382364737249433468069236504884597065190852734768915479091220778648096570100754269411203532964794752874195967302765783498750783566400114098715178070441958936651755410554141821337721047608091439329991674723415350312305576890218896155377290500035341528414280895066700966189914573572226295475702887575524572248690495275085477235358240786132560337356757937420309646344749150790252087324957805158045131838996570020399610355827525287763344207566535744391981551892899578982179891814683693159940609575413979854851228652807686142650142419465183276778914741690015341452411723449537374420483366332725337164804952085454728232035717182998828626092789982487654483632065894364878224632761914379032322584321384260122495753132518377586879709984350287144098068890648271383591814681849509686452426997883985320614964086226331247146855700867560660834289144366842655880309188656538113158356924619432366233134230778297865348446466703611429887970735514085281136667093956182643054790938831923750409837900939163355559472128426565681689699793015852541247769353100338797333235627532526084628467674194014334416907647021249564579858850773279389335610078616819547167164870190342464863583645030629513208955620369220172998052742012032515006122190729674200033125570532073960489801812179633783170572307693024776818663977536605358743408429612834689358981359297174853482427455753404347159039263404785760079317368762511881850182025544195730146344610725864116174620331227719331828244967730309305501382203930351493231489154586709647809439473717923940506487223309464512652100590418081856644131363266307365380749940886216297350301123834459543135073552843503774251331792770346281972850858407922383534124509896429611067153596867322507391263649588673055882328567914922629809531432880341072572415395636494820959956777750186224066684236604112839536217040482420361942867521035280951845956450678530335093777380624847395797132558501045805056363068249337245145239141342992450573267509032298733122105317054316657869294547183307447112345566668288002068182436972115749999027689871435672435214098417807747172877006863029737005942739250448519525090582169514991977311808475064180675148105828449308960310026768541974889857957313794566725827308854454493668970577126291375827466950936835789103514220442626500924886049805738653179548270638113064406834617221586521070563338926187832200972517077530241306064467424336565285730693124596713646564531175933873933651980309627382353987946167188521627471563154681817338551507282588887745226736692752879168371533043808576564356084538142524710280338557871717211383665997069613257768115971674909006337844599125589654409326396502702495747802825880907679331111324350841430899862949190402880548372993736752302206525561468543658686898726181080097923437860220692656870392714241652950810265312768741164937978080369781916165230183938534658023251155576308924939913708304130542435171574915490547872915782592452994720842369647444358446157177621047244051997776695333484090474014114301876703787341059189359101952108162358119481308201144636837129499886169677385965152622652561690847327300342426390872332537082826070808958677757038858311026166949586624402247441599582068997731859422004309478745689027936211267650439506376484083811583169181080311672874349507841040210988037748965153261181616794119391599752510516861876843970481830158097417593467553506706007474167887114681232450992665762248038154239356552443511650121249557335096560978904971970137210508951505989172595978741682907350605307309410224768014959365115601566147370220511210125857105146069717806219395629201825794279401806147957455602330721397310814317907958167590576821322439077132141376150019891746232321171642457073730985523592903408398804757882891246552688924894684184006312161764125450363169397431459766334014739785550714244269226313240825621088606110684316450442293516705294645767854027063289120017531465971463384781406112859196710165609517710637870760208318753717437232273974063765675233622561080679358416219998846549787893691666520371687173998153083435882861754613198604103624630315973110060354771466595924419213410157232181403699740830679384003717482247036987324000697400057043834335818026350152614450435525873147205267294642513636843099206790101962976705854842144520130432001033752992359066878044723947306893643634126561527351301354182898387586893668725604066305853475880312191542336091144343149489609386879760275575890984709516354119332420353184108702281416971220194221208325871044226357968293995142437183289462597861485874463200407421350046896368852564378190398462229868053023532295824223584544551814744576652502951276010361903939796626202275479334027207256342180897105883299340306809607425291838512397498222466171827626729395030414238334650915118598917487378424597116138936280408155254801876216813845900329407932991287577815103429921986175816896362875284125521721543047283419823293073582729741779584281832553681612643099892688322189604379137783410637794187089217857374872972221714399744718188105635081131687778588259240944161078608999124650704118137933716049614958057021285189416884635905484395359841620877881267926539072495421191248721443313761599245330220016497992967819592619388326140685705238273787833002820436783413172801037381808067764135894250800645879864575178777385225108878070093378383327766784486587902719038947425703282193577654521118914683430160598045880134609402642024385994405848715507961201570192608023367532880846580965667279860156725148579491236369600700673589855391640552520867805372762875681119476327986987858862832124879575766972183286286711529192501068085704198035671831290725675610273584539137756925315034012174895542809655783622830701931185712569402578080125641165797893336015907429621372723185870331935391925306418974683481838110567303230996018396041499578833546917095562404530032000723372640104761659129935139710471443751255934060346504023334019047429573696366566393986061355802955477103404883533783499607286082914036135525435955834378327581269306237866609272968706607787364195913683309963126705816651220772108710020652166083412869152830108927077621090772273506919712754152179032626486813253169305027704734967699262139909317060203647147185521274163954930701211061625165593483245466061399574229600341176020825380643397351837870936276112872802774787342241708834347675554147920826787819255348838901305436081336995280101616935988221037160594430972317917646463212757095724043318872305496595660064118501252808447858242934657656557831429043740123349544700817391238002435141423919933990742721367412286215290822208500923558296646090160899307482305257392886113784893690825086754897491294024784702033110718870016645324196664024551873082664553918179384722208359146280322311099867913002202030292923526266789374822313015412839903793420822314859213425065643981397112690584314012538785785013350535336009216471081970669810280046026283967914805304551964454618320585191746175569675596158223170667660165940298237187688099740179559127211595039574041984465161270114339865644281589740675508314367427267040420712260932822361971318899179748132066225488455684176366504104646551656409651158543544488613569867692799491475779876267301245905372170764357325311507730591502837847053856485151479810505809931324949951278162637328196959241805779550572315685983514601381848478499850537670618188602686296587403247103069572581553073094529695176511207159892139211793490747897193240860347994820271835509300585387514236107626926921595376225546908997197505254499486554361882123335293517382422609560451473169197630570306649955484332598873358132258451579070629026974285211692373400477936586795628207049049544655827068119149852952906807167370685023645413982160779349147447977808414230717913808469673211800470741185468625102685225184433121232494643670289379696306378310528063101892505350650765432730133297949374374285765098209223411370884310307486569961991631758680257327985556499122894587119307767783017847889977798617607118332752953272689179912856917879212525290951346379545156126099379205101505116616760130545357325609636140363068428289458296122474336078217800462854326037363864908618765763748941979161459304016987342891218869588649430643767039755462886686117641950639831005694461153094083413280624094183285752568273792072585949611066764217193685797038859174127620107940450848963942553060615119459369693268165843053258898841492663526378596436166660539646124366770685625866545815514723213316219160723930502818393565269797838953434096683612395989137262544867826564259635127110617888401067280769312873841590570723832914815850095253665822580447897443093651389631236264535983940383909612688263709672526076049454017092921891856962471072303868958914525014281009050263994789375883968770978920891437587380304898660985453665853883651963436989842655423778734820367878917774184573362823961209045471210372510121868803413350866263562761714776895112103151140741196078337817702854702943383221606050562862682084586694583826548356736662977435014555309182085600957586289602475772845019709902817393305517783000141628201491828112371473946797570147566483266195597933907459899605829462615221445808264737054081033596570294091580715672315225161811594692214225556742457795751376228930867851189426663331571892673395463120822175814947605360798083710998307343045640733646882254770971939636249068037714449396472492548800880078408667519686846622612476925775415929752689001578946810655420063633336741984965824969277245886292010318146210794310791941234578265298514327648323093884701149774417689993896093775830410649543618147126930188631394736869454107136619865285635688643075553833577906163936260165765438527614402306554660089725871816760560641127099349533467176952988290606964929815638004065100896053218569789287413229479909072143089841184254609964714851602280741812246014008434433683817481572592614775760405526015240497710646758970173501391643893763131676757078414930423523696723465834975722849014661588212984174598974508377451384328553808774831025314331784479311935463532349945799462541288184029838449543508873901132736107185934257168860226392657758306504876682024844622065653302083325885472590696838028395732792663305678385983531870579920337516383781827287870576042599349031035059313521618183432880931400764710877929318513314754915283659866902399508518708110872808580539703497554095800221322184452745220700525024553905993391426315064075355368364935115186849550867803363911506348612462435027455999412376533287487650204142836928696744365015095324709300474366959986354172510793110561841087808092062053919456574437556524037658922571565525836534583516903110410951034716964129623289667301330689149045050449089824201195958653156395535025465511379559646781603924218396103926865498843409903558544425144349822870164394212713571824454675181573896757137020237011265100131282708773532630424522192007450709080006843963104149581991103116564735845172923868939870141764989772485970373871168430262078695832121147644328848131648307381516751386282010734882185451289739231628816684815090898470451039218650195334919409371653508985733289186042869790692935044856931408605076115017383980507067683559252709349139991140815599460930813695966549076541988018238695295528160993429542847962061481485398974408780491980601633731316575244524479986372811909120251448144473005447918479244099460742986949515187426268891533414672733594532544397997117665994472489695944752660313475054525217328594135002192170817952427596995298028946311759827342604985174025169334504280822617649955307246383257515603417293558009058355704347476889001517490695497935928528566813715485974494992580700722007154776924252529050645101699884990895230043198618378184497027606658130561294260815450513071888408468228149466103370070221415745419956887867918672241591216312190877833754380084946760409925166389843678055355993002091699589215259909173067566643940676952469273759236726526012094714796618233133303479800433434371073595105436326370592679855988474701431381667558547557555507200080541599571989481196705910053223109951693631835422565884316089325605959431870512060065602829298648080077036310892299246835281627457753197415538941979859163698496864237497510999237485393647599154988889689558780304345592305534986650679406051879714999656383365381070628225109918474593213080724260874925813200723342666107321785087177250945711331256028209381251100741356759219787771822849418014033850117985348535254565005236888418932514800344420437083897830752739292017107550270421171658649465527799346274369408702857841514005759041774574854104251400308555112070209733475033018802162272146568872456334477173002036083732466271415326156578012909691417756197202720738800266552334874762598029463857631629501675237785293914213379244892959667400630621324525020443324699307519965411103652501662517415871941704451980991186863609088477096702880595522895261404040385839696422485532790776802862802462554740107291294507498292717105278505478339984552852769772621660591565411975680790565664847033984487606849463868878002945913190354631652192826153212800667493374403790920025420642659136965491223995312905040783587170076770490673741247558509228147718631198801242664942475603355206791576339002517714041089397534452358951715654499100206504530632763854886013391696216748741964371732310403811298600084088623316486843415762432343539161138770411459896621483817531120263331340180573751363300422577787240663937321993050994397191131556266185804142017285596910959604557032801434942004748895102309571233911427912697031526681184286391468568519722902532440703264457553505442844965181698463960260435581380607136358525307957037945600985470218372863220986468243232822155253268754201931234229768853759599803767981335128942792515127856428010643091678802746766873184823494516395628283578415660898786716597865490064953385244285279186248248322259323789804262914011839428415321922597183561230014358667134453865313261818314783126617095715159588951162165482417869424528279145232446723123579531354595026967197558155640198430871899213883873950468831288998149618719931811569749359991964054487554164661312244621275573837842224159127793729311990298755929978688166079514855264026446071561325128526216512639153395399773417106779121929533618635729338654552212820153166001318835466523313081662593288212963635449904747182389122734442254571161555713396133070837601457780351679821904837646340801336944450906848908450990748066744512544034549883254904792477494694817654844522592639818203794573539738426695679131888268888175716748342440867742511452388049435510311882332704740451741439206309973948332423611594186251420147808827393798085864894623627471743046126507834588262095221211608965036192828289277817749237132643287086530790216614330924040244460742345186193928623827846907764126304521817384148146044311365275788062127574528826512660349089669492871591237776466748387773109730570417510458714542548424834589117604805510222040335679137381881700329366408692499095386894183695171415107173916467357084910454071812391517705857696881238291075160224965905221263299774885823729181895453860673999650430689269778284718973286428926479584064903383006947084773131443248480085862273029582381574928320161170306229516760411521430413214620452814622885760942464287671834604298760019278025087538575104471407071903731137810151191004999266520660378254841619820381469010435529954176230666709952602475753091125920168913966383362787427350798880534434664469791467944853566212871464755727222256122101787127538585359931182233195507901491653451730910312216036414862219775918306561529543281281824037405652935178601744421416257602455495706333530629502079992274622457308043563003652502194293337055878730067528199240683470118839576499797464197943099935512393465799316289595109907478322438684707844135764875475756204902689826595396777596574496427753624232157658664999432721818282059054083610993395942784165029255371862264821975136520329622362107507575898766353041333227090916014067264477328991091228213203253978678284813188587937340708272258330693656058266192208579406556081854932136971017218375226622199136639681691986235205522347858972804914314636562779273837055840152170837870705540452281662757105372829544909280042982484705365819741668756040781642914304116109250359571547425603197858993527229502092738902839412814236315467719686314654477645989630109317774696250843991625675064000009057994732200898344009983484504720251977968722455968974849830082934341830403379294518357338283003583413257076762473118370143841942692482166987981536618714018640840674724639696471546117400108157728718690560468381974416676161239655034606910824284762472606879734127521583231983693460630078423372831543190262149705839630815358024704521242507874317063067708853955366676192542741255361509700189476704886408160555646465689054961927409712655614636293994368867132682527391809383807732810363568420518490670390105667427130152151104048308694752543056573864540032922292125351053017733977428882340756073241407072274308463074388979622756459134481954148821300475472020263432204209566754064911986604240639462061850725351205650916469902605306530922668395935326725628199524159208282229381105826546179723031706162275840947652423094959273488659870240908471698690993814878570672013446718020486372061894809138349697664535254538426177493562315181211526035085343386609886463156885408433653005207677418839063384476605064720952338049329065394862145879937451597238680438438362553582300558029860283858978122361550677545805310507509639302926398360148998177507950932516469219875342371352714351013725005049755026063121203129533177018110992824415686030527047300868939572824522176716699249378012466073681934333935058169873426221905069010958138371260746464197136553394806115531541359095612710677872543239220377096018009486335730613956997034312915379906672920457160436112396749514615650981540525033212520362290423271315705995102727408073473844898296199644710156417832250136398887416371446672555644585602806886289201884032962123920965111046026419023534294543746568462163119659233954777032324508822916052471306179484840954971263888453710643977293446458183191804979962767402388183887943036172842423076247389235775996612669354451770031133899797244998284993571918852680662591790506744725326734154129001271384186997996743531073658501748862304315998280913261929249763538050393665879314411152115976796763248084125266458069499262005691318985408561594921146969368735935000321932988811735146180230475376420192164258738709645020445889975394851728873377428501880880334534538429471806332372566866280988443245327190554311765624001018101429373782104040137180446814440088599097895122463396316591507590119873363062072946022100364971803957460198966850666005351593703182185568553606244837328125222354334173076154195455273589074749892358731794828156316595080619934549888147776416989737783266335935139200377016978543850830581537001550021054129381057234550657467698332998615667763254166014604900054440929030122238470772471543378774225506989876414716136247667608720206532032363870484319549211814656086506415674114930721892783423993266711576140803981142427684441529909458887281306429329869288929875049177018050696879944491879654153389336530291746337698120069921847159792725831289583846683143025641175357510200861377022299445842043629180053611704040714039715146187764882579760766652716835313655073798565791276929641619806334849855964154224334906335588805288686709980718156679430815192772511571593695301686234573771630689692437355847488594460287931141221153116468237332879542114885691797611193774357348127392556760892711829800920662398514391640225534063441669714971062602956407262469428627344873820214536528973086380711605414054801617441214277537489530185302175389866047029192961190453647716893000484975343171793672949541979954754042335391970154597180111942689972335455152509617191690987773377555122961808774893366604241197378545721761952332548907672474650090469554692123963908394550263271057008328558922273215363035616575927441020588209479886083965211188127713763304839269414225317066273956207733545794940812392541910467964486210093779877094931121505478821603569110519508431394657913964913808906490964359898718648429477627993531282729338956105725913728060309451745695547015203515953415128932365815514377548758939889641444764698921631810268806255392935299032362405910970101153792079834320338255471750564451506551616427512906843391345095808802611277776947169120114864595537612303547109044985657225168798290143851206930513422420069794501046878451634662904425573896485358023211404026561505162878039280545542743031065599218360599610717231980952676723169173386483305247879941467878636314472498939610575903622385248612707667774540193392765676971115951646851202542353786316206093989149391365125020106166697220497658724223924366928408877795660212087814769876735006160081751649175002964426618828747617529076633339969610526534720278266547649868491946046121087602084952751488016363635955789818791384551939685728043714718605606900460453799990634409607832425068082778115503695496868353761907230903449929291530429361402155541240874163465910589164547086274344439246461288980612401822418299894649277100734579242932392631811373423843957115603220079457312833492241793690180599855724846972583324910096062962496395640799850062699009422201036805900436154159242985539277841743985618761361724701071934644777654354689483381851256878287475019428857634501559388008452227928156500907430412824652821577118159698944726195731113646762561783546548453618570252606029277039110080720861331498439778309238458812433659964254168765915202408919010376572836278692898418612411849150694969643667016351351037974065682848458787379659200136072841517346796929008400676652809512438866552053671426358668852123943648059591652278930202509156030714266401680669026269420793147652367115505860726852361505439959492483031718373625347896748170987714243628372481787600691715244302617290214020386378113268407538172562814274750874753814657845965242766209831557925993607031686958998994840633045052650515767381662410101077244309332043659570582952681923701914863446633417777117744921727857783370127523832368129654510396975964284527012782580385292828535595694570030301169807157114536791881338638041350895808253524023274998946735764284519286759437517080877626763377796725836990052004608797288301698025308492633434199809048971330136143697390384044403148964396427313002153835632855323808076702309343606085483590696890347027973177240325090056981872354528051863590422185474740045583568662123186934467488373478922155950830007919956076165754725085098005973226470578076912899793746584386823764391859386764527250602268203556308792243830244525857075964533809324216936538690709803615293915379681922016153091616990682778264646040712729670299020653656767747558588012613476566403938520599230312685828234277794941538191829983397576734431356441212066488453853060127572423084318047826726737840113858086024959614312639876126179842212212251369968460399600032630411634777187713227566433843781945367706074748722709922463184505042549567356184134365500757826501815176869141489356969785491076781880233596293884016416013815781617432236422562150386361880532471810598161426209723028029997039646297810891169134640933743426511270780892138675215077082391695979618579475292956122245477439913911351988343663008625272182026774115510470933602978064994778678759074283350033676481887778442197387779638965544250614061914250500431122745395092745394861264798367795165920962131248204324143816983333625845861261804541391623768283371685907197303983065638675557568206678538279733540734036619448772501253304064905041617820416339230853174615790698323544573567602177898614751999743679127498066716327445535205911659199277254412985914064303155551318488778167613783349450731600981212449009133146615032413265294996601001714661440694241461165119745525792294839757263146887321183029669223314921325479220127715793847838110000240389497604207705555962700272216411396198749450592165162899949083666934493347756219274095586160791633361011599894192334105540545342919329771031713449835945899221549089192640393046881314827428951168691157975405265386017883887440544942853643855585078383151419062353587439219177583340829674057194943832609897045762410886901801322192989679209168594932140125661667612540835925471539881032492483307828408730687414667538238747602140746767728339426747001586627259447820890346655076607702529113896997273159721974171177374336564137479028196147140524306446015470278267233479753120414980691762970232050956872539932050102847215072389983505356148715232434619321675127214386811408158001535411475654233178180910985668857482808042905195404073253977765707754528499532134989420811101747462235196781640540054621736808243890456079328847069262235891821282079536688776963555405033775617327070513201611656386315797616571491411315235687356783199917244186876466178801683294277108613900331636795496822914183469360862294675173689988991274904566133600824328519470401149185050543930932493918201150048988626855889543276296727359839487693561689515189494458347429503751464438428086415097623709916805778482181111972226894829268942628090403816901070273733915701636774698948037045476790189250118736149465525246611011587011222293458902510608700561007661062021255512415612167575565988211805132185861441757487378077131785028641278404693644649373576555123457426313729610790436690549604639082435171903233424429856573903723535401952403299819914835687868257457846464562124390397832500792384984242048753083730200539555804684936917847691635977313085297307435453092428260293995798835848659032092454280351976238162952578456922981880971425552948535658948537773174325184272877357206329789599856911142270808289669705882101206093756281952318084961448868284641293755674989996247486338440736077799929947341183882251892263772088017092914843636692781082852418490266041859375259677932839574481670232189317130042223683332075170379557970558134281916630045622035293793402098372752965599378066587128842822300448582823000491338890592305855332353464508002301152049701888999408197719548034508794767094478429288753265654169490733806968466568634966706014290375065394273002414491387611985948242748392358691969292007843229468241813807010472155029673374507919690935344398023752005135052654701839782916805782015219284781870792344765305649387602710278423373912151915930044607131306694553091452701105376366570616264065919903738076590279641340625334442356031869501131899195778417570942525621030050027206678890862722170315862204064991074357034837822975134225382781623086172505837160612281463806049023643952380333634936675519347400463665550707709640589522134656231149898066510547087466818816189371719787506547395772426923004871752785690831619476801120294632613879567433773293527401787752969321795345549096712312365468453240883820231718313749598328630769817399002802240185302900770478412205345828728992717398486421776727555250474677672722043284786427032834438175544169080946124622262704707767059497515223918930435908521016192313999283684819468197264722409059557115827240153659312448025692238444793604550902491335474269386845604399981273945604373675960620139393392527820313713792846323437009535389895311871327019132825829186824128169180043625025945812729922021921387750526891006683339769759352049358015823823022660445751220877471319952648713099140419646041296288331353742332747219037126810932196151062789763841121992117526543983398154914697462457248630499569245750845242288771882821990990742782255033812468841109872669076384115025412474421028402495292338256037401833728784631852116556048943340698231365448370588935265635946640774356915765726040809661427809616358220078671760413449865414092066298898912624515790700160157623897355641914307935734572103014506503014377060878165255750055655493045678286766256567554945314185473093468068642451764301606609110827273366087804278108742746453822025369462509044178020628483749568291645173050715780176443589951439016046600016768870640745089867391742704189385958805322874221388866930269727361999963616197983082217189570952298381325650499861688525665547164247072867396694760462788969435723064580260898014902628130428521774175831848947026275906277668042162794511898276000866288462840814659934998719000435085987749684246170504998763850171498653123583293140833710879599549597715423441898459064183635856313223710050893584426424096804162524195925468919195945060786423357021356901230440060493575842297421192078466094517051037211875703661598016861120539294835354170701782253583038921596857433729876641382161638288411936884194358983526736586266346372862253501072184301629890338703138555049740155256197807973749421185676469988305055596810767642682193093811803636116252432786435582058344449970304960473067925888726736091296419720343609653261022494464028724213001487162591882003969757986575756252770629377690902697077098855210108669787169983723343880231299947089165827836677265632507544251055986912762121109842418994785213119797195946614736261685747353042511072505885280826909027162594365931328296040178604384022920414065792088925751752740228596555476237001343156476514195366036880174694370783632520258776433953858260204355500166161012995054710528484869668291733888588581939775105074247080308522463085821807357661590866453265942560634832962683788230148052068749535992436701344701116094662987685721343638894448527497726538638816700285351884720865314561974084699092015729216774392873833283233136634086372489095497016829978026260738584806406679962198916952447985170094385089077909288660440247306704062051100686475523731783582681869870787354695738450755092057785885643663441374830201668527887641326099887379389442322217068091980301253435230575449214403895910915880725415855946360178242044192851195666992783546970237864928301136713297121478239602787302620148791596249983612230489626916233981914053193012837635000005594290205735762838819701354919607960468240587376500599719277579226553328304277883960717472383024297726380928695298141993751537402640769662069006997299942334424788735713003598001711170363222615651357630653969182527249543038238926657668178906946596438101035881835397505136747451559053845949872607490598316784387649410835481167159279361680396508654404366255974146837392633852230273865233146859715722994409528606526392259750968812754593500863134496121761696334679017941984928950345562124213503418328677439719199778207846507309553945785390564765141617158046799402947965243653289762835009875374050057657455054338962943506161285609011753991327156197326297895190681617094453239228276093835823686226393337695124993255244658671882035355350135676205253395631991141913225686952731452848292022965165173884705054228240562620267120983214563694325010553686521844826762287012423772988111660563200803474283955728249869041788203369847756502212037145722299268680373421927378625501904126990793729285067686476612397603731190906829495380868335470221713240598817152959983803867211329240954695666928542847564961139689827166328946794596407859859717694183777086479611342969499917999275843589936387315610562426429786294661015278274635006781437199693210812543224691544491168581401743793668978214969834253548277822137586018763345088116177473682864496962550769250330719796615794444850761237313845486639736939092406391627183375317055321549945020034776862124334159995778343766832940259386634484281504028707163793257514628771011884612145171404055022561929041942463010182646269318229815209208381871692707782473219699555034081348967753208760536538494791455938761060424038642842050386035622389700059154229187945685850041733903207031796808659120835728756614283862358629874492695190865127144300502144671948800239026622403456713078743107876701781465330945068182157717615435319476184287761982965483646186702065853330933146079970493837517244790100203277982021184672800531651730997529412440637340051983121025173430156118323201657316803109035500389010911116235342588453397124354944156622305752618330037803740521073149598393812851737228033109611891750579291443333519044443342357069998050899603725090228533475396574215916933604636462621807249478739646944313500448331613696215536621025349936511949712152960128670944841986409017851600041521412378503172455593408287017005294432501829922312754658715079207446847987692503645520493937395554937140157429466427722415325505123747586924546092893536280537611548625232900189836379250985027884454911218976620999966517200044354418900730725120469604094550670629462648828384019943846748188876677763154374782479452012047136883089757766964170120256337890706836707463424069056303043870813725680758033337526509087613694141967080145343560711604958001615757749331601799090539508678314991156693397241368468966574495253451361729947536089116766630040629864355933775494909229003245381006586402644494274710733973310935458089671712231800338694347305366103485470349777602307676720139558392443895811907637606472822977883851630351961144974865508752851220410019768156567138427245205082979155838296001758391811831128244055199566881862455679370465342081371902743145076827586850484097333158168522276199502232279182185286205964624140736331146221455539486061600014493062893389191027215812574890027524411452174663517069866333190014955378964841687224522421089479188800672690941526045067607949153032625581837286672436659700578135817903517023893714946194384580561649016061550574620378838362697002971648480856588960316432264550821111585873541529710422460535973396647029101740479068195425483138620482673804009008613573977557523735882887755996450638121990388273797266830943349853822116925324764752047172678079178063658200906162337290780356849354589335335230528424781395691855490505251344148711743546087088465524853114866953618183864220944888778790771248926591881634682408223086756523989720264803139048937884501335041094724178274076264286585261071933065170095079384609600603587640622667595124341172321339015079879270473147719714528792969488258564826197253189933272451610739756409322630879598652222302951596693808699053807926456172248130498933776215000569976741583955030487241820931996310313678906940464788705294268380121865278553159787871516100838286285619944476227837291301212121132411615172052536695290610913532270886252881583226428014159933824309818473946443120051256671376744077557209363633996597093812856982707683392327513809027340896257612596610087439161847703153653860002990928859499961780955483334359537116815286921844705201068400392144484387996079362144443796847532739821964324095851452015332409436968491648454898098428687981481784572197273817359401400563113105253002173049058705940720627557336394790505972889913952264358739255644366357159073128702145018131418244450238644216053530178436149738329074536855454450646073997028299278841595324427034390498169733714294673730984921174752563248877857766039611732835536806633000201963150735177683176179155369162814718969818315797899299830993383114266689627648913346091638678422666569062366777396415374119914681361906854888209727699733382698676537436491820414011749201241669521063781221985819264193597080506026249493564804212480127073821626851191918026022891767062115306435036808936790390805446841689643100682428582340019898587670785300876588836258286813863817794418869146472926192525977971735771191632752526022955128530126762925470668278363230939322972808855097710097537804414625206541133177135250861230304453464021259211521045822965382036801598754277311394502368295079463576824939610339844935796423979850423839219366830595721769410946438306006857596976511369641486445856498165087206919338475270481965245569426937472115772074135414044785196734924959557461696700966022544107933903193461632266553176024071615681331405620579220153050560592300402080264881419872542103237026680041905608417190010285171153892169044907855604544600539567459850101019724246157342506217368360615170052218683731166953877840518588580912171734154179436933058466977201488572799957678234455036029175218414885717600109144646372793131132072200117766360503567064590721580559347001729705799898124853205973595196373349954245915261690355763840577319080824615892885580750488045745705808390115051001057480475599756707708105109492759708772338863227683617705923267622844231794150695254508961252063578993464618606051664404715160981547550780865048068205769578850351845337688356662719331668559111739961396332408601472363035661976032722663449782027852829428715704933522774096995076464956069341764604274994358966500127042898796009253506895635590722370844018880682858733035563794504694823466432744545626551575091407862505304161768281971112968575189305427335800936607931428892453373072788153842161785007377678723908689431672088112853649221828792876366286708363515558497258055293496949775411057179579678889864843259859491640473312892799532464558824952369256884521844162575580356243663139703994933781241511082742188921928423310942225261205354766525929485630005108776886837743747126960558210686470556137156862013435009257597382872407509049015303478783045641751037710735388877083329480631917979753935235109589765386851439233463665524689730387065653668835952023973360587728653672721563753175627015491005835825319113125472226986821000016380339604485066938158721146691950441905641035853653883310979895400360690458445403619535945622773092652813022733614291152856362732920042074149372417373632714113249365325819683091221835240462438301625005440482804665322622435625141950437887009977442107528453002183352014030370085819191459674536759193618099988978858652052525747943196462652641870360725976886894646790749866403629309055201273521066210114831050507837664814222571282965373429735104907872096427699705021704039644045103378951140869409690605264566593714970622652537415321907860793341163955888918508411126746772242848407449166639085383960837729236387716906577762192526398341037358918580086646004160974690468876691572453456997263436156927819997892534422841378430655580435546619759857352703162005964442338609307174248824275799530050989898177957682313503590373853948786098629263934813702175553947376076698312113351756836627765095790713204193672435698982977570461129202016467394649428199409162301642814759681572628224112626847671050446340770204738617611360205610317504233804791399860593075765415803912965537314940547620861814049425737532528727689696656271307671490342035720483339859455881676411517432949186849876429889128724640247115895194844725754405457500647743600910012804240712606383846151726462528740787380142550126738025847496844720833420634367034625500015209373597168955112198650003218257743560121421561272351607456348217302017840527911896023337319275359827708526430150938473287347364170152758909983931753090192455037562602255016535940152136066011793912196899960349710668805272040927646195760198629540642285347264802865132103438167926255219127781253941261337426262277015771978185386909892603812941348370291720267358937879279039013743350648515893389084414498477105367628106828913030563632052120040393997589629051893075805529885322511135144614333138985840386351271350901296634064724917661746875712467334366785548604086148055993380030610727194373453810474841834057973044984275425887595084211119204260621228394148437522335636840377435476939126637109060905063227504048226013875374927576378590236251444745787648419063083498373180778002217813569405918060860090585250251349234142867417045622867166383906855546630170537647453730993928524810634651736223716023895254639588903989022439104177478152598078008321665308239591469785304180573697632706034890143784631950603528157202812508257072511578518379487597225370799241469976575886860333474299094416934113772148961166979566570587162162370902182012652327923238435741946071441810229024960939872008140398771129302642207854109939490726990323084905544224990112269500304868240125700591031747060197646572248112058665832053056515071953112985209137015114821452173079987715699361932493355391081575562308136508535296242267816903964119947883608525619704219742167832675230460663751083249167966701546442396575778512401374073317477027087936084268435760130151388785741473086901698694111437905961860261119793852024560611604429699041979989908438880253698038067293347431996232979648816083541195143497234101868239324387570848561542272361678647157378417842344435126928475036684650376485768595014297601810785938119204152736414687253951629793170273470131472373165584961963996262525350060360927743534625784123790826885979857462241807686405942962603243778324566096895953086019754817158358597583002140334846831060383385273616735523616112423094289047712536683112709804125317762046884759091434561783155301929696874993871788085562309783025536975864084215351511140095490252587209111297282394768430617529701508157729530375061498541256802895455686325548665161020422119875568703002892828511151944989448446348019381349111028577755312479784336100148736573770741457048730504738467075964127805927755593383101153279740717442478295562028162521295342140172667486010684860799815704486076356556559339627067931842008735721183771352113339222289194576997517938275573828723110309861700034734375522013892418947721691753474021651316545563430637974524282029169935192052200831713952054282756072368443432941681701013673672410303231995308863880666581075065420895365406115954656841750256831990124322148107479177266780686107165072312164267748918347199509144453190174498187281509720309488895590141193044724038016701327389540923519678575975509988893151138474441080028708945731554231738051864166239717229225010493250891575548408823837374888535819660208349454031706621847711098192605130101261953489806106550447644093765429417272554670192107125364781615847285747477935963955235910481037005695743909456801938214489896990067379071776491951521508298860104170669338567194767710977340229746865698738803098109889670756188075373262890369416433391019856321771489275251958127159086554383342920017208087723876653016757130942126315106112884870408896723468784304838449630493727791777752756771688851581630949933115998672468576157938828616377877960323289238606771564822364929915553208903135174152892637135676558706979433753095399210745831391137901368475188645085464629558959815491580856460849036348521422427922044143895270669432502910760536554401773960994827228700672590697224245426511156481658113868886813450188209268336692496857602689773734659383230535364020557871813000577166675002179204701289300759975443511865592373782570036341288756313841980672012409861155236240620349792459708316301712435141892454945694358829269561744638630176212920902788535674016075591589054713812682929347908497350314963895181886875893075231404571574448894888159900375127395258551858108286316161140049569960423825994498841411256230490403418406586149525617838775657031776057584174576922408238941122538673085687410541989268829837276473092123215544822967096733124179125625553450701807899699539672755127769147409458920894097343003661351987448279782923689905055344244292541027890910128489383413902972577055175391421892980660697275225778082989017418673831767669043785490984317561293713388892348348950189424494214684162516104312081433816238843559999380439836923326059496183890723300679284429129205566481842755991729348814080318853906241653656375699795004244275043472984589858056048990802318757063934739411935840605094906208472566515122226600873507021460036569032740611440794176480952998264619828485915512523080345673391086441276192722965468898044605600952590449361113123642505025849630363845875602737695728801298266696812467816324958812322360790704725970903874786346743499246799744746754159194386577703001428769949514781605521557536880114260543256475670430884980619493577557375664006936839615361599827284030701028253642753809442651953534047301862577037039932039971084617053902590317091851215026557139324849740274861367391778570676364877392263566252650682900420174942781857018826131550326353124062872537230651437017670998132492254791968408219930862596005462550981311103988382641758599508461717512225941936705028976239536482211098568783015076705498909206662254576932792807024094120929261201630481868792363613459864870280149967141722849238466369847376167392671870128997870752861648766427171321039034448718504820216366204687077385812633717042864108802019122366918613028556067627462110798376990268960319120105820393311476081358124639858311084140661039145704800227458375483958111306050332010157761662926985945327528957682188442907004521728653040553617624052578623503507224158955980334422156003886276142903879138393089724678149861254213894063804018252685524294442589963221591370409274499098365686149667836499977499838892788234235404985841809928853559805647485672081927060915063496505525359999741497822391799985666808471288794278942531583922247100834217386112198621942989973769087927819661640264681724425019227436945781430113284450630061187187230704683999831460306999939815827674880717048744807255906286403412484363183342379393512708590810383913099682440755464583649071880748399665760750696822351454847583516894216176807145236867252839606561626018917782198303463189264203087114408864869841050084635093672361558049461593074553104212183723990723871366447727114844373971109392476588461086780123590382344236096096149765078638857205826334367789817098328484280194412597363814645430076738876629922361468258255273844193189627147350581702700414388880883033258734472151831243333193383438117058059417241940797293300214678663406818277765007624096588249418931153058219170156739974970752826639803254089219128417931773512704017562087291193033949112374778502138660910898313701398729864521178894090725326980800717068657448821935275081540993772033183022655966383669690144050350172502968516805179811751997354104355336354119100512306110249627773172193196397541816146830861298086119420945353073093087481019786077986138050615591374521331181032573601778139721165319601407356314523776748003320994274289187240873128796457552349215963236297497825752579092876287492938181026901395958903246557203462876418577675654581452444451838009528217745915168044132771704397099978232360421259846924214913649090546989886384240892628776495098864049912867015016482336496963139037783652751440486088506087356405420941495797351188468248019015798399176071889563317135745580854841891187010014828017859583321246919952391555077993652507981129724368847150473719689389556554401821077481499449547168083598356936715732705855559278717709262619198654424061629115458206756869886543574244330995059995890999709885445232764719698405847137656105041873236598173267760764254298547360083752117822027650132065118120128680327185780523079359589102201498426412278426108856511932933030643794405590012639833819932362349860226287504616984766814454611854444252655453849583810633388216158731886287487297244859527618734271913266546393333552821742416952272003297558011377637468734403172001507452354056135078087293521302226623125479551182983454429348077786620335393397147768788817302796656412195738220759655874251806666988270976604266599585578865568819451187693093538075483265015086630847149683869163403345938137828281388707899518585034138110680685933831193623533202170923737202137538898700121215802049050232003569317948705659681751787915567977539755048941389055594746305113605028914171730725658292199249850043302162705191186705058007816446989839242292764935017735369283464903877075944625670793189061113844544839226700155515628483068506226003132576770132582483015099926937865211602328501994129855901633192028070546224668755378725412613253188026164649603064531442033107751643761178891217002975464626950954019195741297073783448066183797121941689845421992062826676373165386409255615204939460932189276029539533007575603369663816151495481132830894429240968246820708211852804962630945151489899193341902860571970445496863605396932054585060982405896008549834277132235012627926423201743112742273896790388886142220044328080507014601887142803602167618802560643074242526344618517742308559439088554171383940836385360685228417376846491755865439732498787464449235876601526948335685707348876311054615651773808367687018890040120659811503534233392770659866424862984892361164198098889927340520390876766756205901903873903838279886051831556933018001006489582575932860851304303039124708963803034243210424898626900904623376500152368373993584552432200851470905875070723268828349639598887692930253828945589530837299751027185623398578885308333827706049544981888732556913087741344605218793702663629806871517484485412165446567290160142392053656617487816288042450975604432420022220903824772090657276772008046803800056081554540629255047131141240264373347540533119818181674313848791101020754219122967899615633113748050371652027494156220837717457798795503145041454573183281768540814313595343961314825277515424378761194347438770634157966778240035414013045510585024504482365294340779486712194234125486605874619424977499839513598181185589388809398829902794010321297501462261817049811559129286547752839274561239514422248811993658961056682105503311017011479465937894447896284587778816438438151347430921094778975924138053061839979025554114922827265162202346193739496333695358952147387024924233313798549314673630700368054194079743476936265824431040492031062859452117253129778235210644334236853738390004269659666205134983057893228358349325685743151888752731461258925358430197595505431757413514366604902828391839539039914288676584061522969004830876048917612659848942582879656611583168811121554072027254210008081915156044711686591311523978425257897852609920740224330717634104305325348041037060807600307610212982167244291571282597313927763200474652431562445011716410842366417036079337361256567381369886097728809947174041037050431017288409797322349378543126266383194653385880159118477298021423828469079653003930118147435832537370962478084643534123636239248373735384033717230039307811236210379630869236587188319645273428694899238909109299155540300319392890360323315692707384677395299965518412974799893700301623016213597027112989127662104739877111016266178693201283522283790448769929882950258990459975834059162409005165030482154457667308899999643265158900325062526850730970886958102558755170838215950453031788529526328800880871638011383401113573809235805412963136358868828893549985628690562507972342937667528331704483703507741422652331204949401782092893890501454423363455934659137120247378318947282388760177130295285320698256870255017173069915526390463046692436989625982325576139411238995809265756475090088500621557787215766385089797636538934885651876021872608525737257980003646034619759070030459576004389683998108239091187990680775413356370913138502590587987820186090026448766357060178771980117068804419685968245203148202513102078900791453577871494190054323277434963421043105746181303175077739251348942252736575088093937558483847405370117237860744063552307177102096122380515052338385116002846256648242323498719892256631325140156446521090824484905177024567613902516908349087519185299062988665045054038801189807427755161877095994621035571529786817017920420397302143376375669627861569165632168219563066270894167289817176954965066246595660110437692622483609639641325285395742636395491583690692148698717189690177231758210784866404690416106283699129229658185044920788308991490682289151158504245717334731405446655183802255177436551318526466009873497992954577596054651293445264797149246220083985086298871269464923694876375876858630783883313418403074420422438883763641612401093266731722913526891881845663612683665047466106686970475350486106181439842899387960615669421794543312135990220505800522034156380759727706883335471923108169186422812472403366373634499399950026605291954549393195761308528246385475661241416891836569712439277995101543782532986994995826786576017180051552992671345764774186878910854420204171516738132743242233340322131683597898557683065928273646523784537766867604455309925879619504704532449973103759534360255004614867492944259971138972335942448240970973246670819471825897374855922012419051463038157184393920682978616517929555760362964065478927130267871794867030449727166665565353706740377812375080786398671588896389016499185951190697930178442868055749197051900947961496510302882618391258391310291807202116397599013036620027381993526352545076603562441584022162629793038994684655951384928608519445321638127175572542269009960131366637714953365050112213897829572712562761097770748019453709823568956051285825781095432909629026941134100327830569908343081975479161390625519417023130224925460359382943266664547086642535954917525790949559407822860490412712968323560028680077062630915256031174410449981857366634053380380543080432764329428676999036382245062974919633166366765658417737662459605409021378515740476668818401912099483181351107709300917230582323778765991946176250375089875763982934615906662895600223962329830648254148843081370830937089862238623408713340178630483140647546109374381241544370216513721385572204539532083875610036210106857056587749293276136917263195178425523532412094680757176774744236613301174898724640817006274599002466828544685088365934482431216968504505807299886520190376250322908410232103513124829736146071970899184269464515352293886297315244224073953905955493395360018582123765216778877456855157842469621921964257071274003533713205690779723919715366759584439316441144054934147684497479703032437654251337284735897626565663413987102042469122338154921354497823328178341396552648680802281932492520124587827781224430468598598979494502799966501343758404444431076191881859275631571618573187428177871796308584603608521907068505644483699396239610341922196851600887035897838231235022103401404622608512196014722679137849953883174457179658871288907280926920695984885123392439940960507512825505752867772244255124868365459997543604247098892468932811620880848789523950028512389376618921665518687795899104772825543669330333353160432245524204984364359213999021137022146236284570577349234741844407966707860448009452493088052588353282880953000458844024728146307149710349407556179678924966951635549703324355659094098983349888830405879660370844392172965172827496271705170487361529907007488472488412915415259286396639346160840832373965262219105916799463599581284921032130370932578105371448641972167353765606838284177164250719126470700312934199793656958737095542332953879043531193015727010616549519644541548561831261972456506598439985876592927043397904082001339231530178469490019584403931863030003862871830882587949067792897170012577156555315070163671735168333248172829717202326375807571963788978953720854547733396326360797624385376313865100229509249499029020739913273326781560928839862664250709054477059697646809170957332044901050281808208372740083957207688081626717179514478085799126368308543972180063107653976910434605581944447270852196420258099596414372152897125606783450275130060450541129953453541883000982803381683534080333762551081756480704519791682186019314281446414253155565674310839585300840377610560474468109225257338136285555104315309674809207997448504250812413696790030806214312904856912437157771712132682834327672499554162987834694517651760981656810115228548430481005726449173786177284502631838767737638351290509792649297899117996725520841794641060985270281006960886296769570927802422687152566223781522052021116572147259821054132866412156496393798407215829055093219964603873789225429105627172849359549851722959903273449188262089210166736999830205310709692267355806676239808058249396227295710631964700956548407584067961866476682959682631558591583450004112324984117866993985484876960068714694876908192904122797126508536135159690331555741841614495500688715520114784699127357183786524101024705728510736877256908607175499080829257135063939816145794772451083416109551380491087323945988622806124337449279771465271358478484789024185148869312838951930817193475363486782568696020791639949067226813715368608373103502533552484763167329964240276966780565058884944356791724452668288197506932872347188742306989865750532587059761717201044062812565489235709855876700112630742702416617830193407872657661608296282785506484951405620051231267482109586082110072702281142968007068312902859901938653219182851555910948565100425244484934298553603485561459513084942651031703191276579372539864865011463216785117439059512364188904413334736658390794717681561405611839202222902466685226922682590605659904273997807025249883778093843229720778530940387372093900538515731958699177034855811071484180388773618966474019983292455153100783073593127479591326875184699403650551426107337196677361136999345445955963069455540691305772808376381269887274837150981365139497702657608680376860717835542119054889148883797123395040510096908168993539984157262030054960969817223466465410859486906137201739575767216581436180741311784361162812787268695913981222505416865030388958785974158805924191526815047118592155392793912653502688573123218873673921446529994710460079640438860905560655534242317319911384574534297634899261702064691128052876383622357764504496560017431064330016215766486780242842572736736834607631190114377406119248603875255835417929791262090975063077434162090505901268598669132875864120368285366277885756703773426473215468325107906089730055355229393964881707626554273926083058346879020625234720264298712819879386813384445826651584601855158967620984682574036537738171299375240382110617240239666868103213371923357508001475989180325279860222336998018752419764228325188350364763492635111462393909430248296134725517652194717422028289163737736840104116173628130115712535582656452273296698423357836277533437490266620753546675362200332640454363959087272336645891328172500279701714584093870796080450976882884568966613096215129991666156046825936078577609591886730830929763055221838471223322904010825804011258446924652919887994577421069296629798787219099328167366372354075735328777583019898876716166003002352337265138434297614357698300430365671147074058660324519336229255911489627128820228122665201648996744588910519642437696399791430074350317448339154223858614694898460751236556083487164006906829255780109270337645271049732087335727301123456816014691364627662930842962817693987494695819360282668938993152211762979580614621302945408888136438478098205139814262773269444104752345665175571476927804302169977086197610507309972967103224905898064866762842553215565288964057911407573821594179189649397190724516322282205832283447506517502879115349950857219341538039180348482707160942264428973855157654808505219741151793490193047075893775725903069293351391288120819917690155041961646540542698068339978757709950960994043029084533192566293744709808117901837415866565912221343406197561136722383403238168643106953946692885147061536157639064179296041702783893875519097873998233128798145848820389597786394331595684922721599380273255336760955827516111547957948102079022287068369737975266673228299353303812054949975047688305252157132057667839437602974932237958741633684695316434942198686865739337706445594300191426551975477189694178390833988204695964828182843957145298010763934611498495659617322234186969062000354371597630714872001789707781243072852624091415520996374797560280552411253102850561210778608367851787033963732415437000834088177624881065372681908088851820050832159515132243691618261743885253642775688431046706821466671453111944807870672812393693585365543135426999883683040944866374017098037751744201130343942656466375327770782056022379167805761783919696340093303697726442326085067689169281598421732515300070381203091352888238456733084288175190029470645391183830580571185019647568007663348082727262987808877161596583021497595563897778022961631953886608861794420311327252129118320330791599450383296175071192640380471375198392705072246875501184598253707834677314414729344748455913080871215484511499986618091235475160822983046807311781457774609595497299882650524838474399505153646290451470835766317572460744545632275023963878373525256419859607389056597793947358251140979756774708814156737136993427890440602865768640750680901209365197065657013882748237844279840425714201058873438271233336270794987920189983242024787165235776178512869401422991667343920532340978299678522513575108445725443197962678878461922244404104099672582701934098880454003956817999945666101565093979291354629387057037361613997571863462264376516815950468282712165910277809068392032750568819498568425440301976647232685866848763823983544326516068932184250180280907182268253308617017479738294068457709551291951374541543086450428768183061214582839836088717147438962317790519354740601437755515957852623850912572826101036174905152337034473163601724431801720704143082241982921157274661163373012002711638905463750989640212894187263164052902920967181136944504759052467493033074256091100560584582772837641740894339171286895490918873526190124210584521283110889816181219925087038978928422131436515019733384705728039912354072591201717545407692148453894668582283837265828183897850708205443362575125872563009706665477806723911186397980083188853353942217322740331320583854618414281383235636269450358861853714110153445646645417758447394193389155154554238164213280483190465263847227850814223255641482212673215127306828879291505138483976612258835305627986908580389361447537804421555411752849205617045295272071715905322216626974778997993498890901279084001719047779531049527191137003077487092267215460504250463138802334752888621505766809166644867333189180057001843733414713218036680219638165319518480208558525172207118402461911255666757544111497840625316392918307096808513533508224523931233378944338865225516320925299359300497415897113570056052890757695012497500819211817843544944828400239916418064445640185008454758246722521276394424151640754320429822373022977229717855436137049112546683354181900067399581992872438239672205996600584657700390556654440600105875616700384841177294280923992756641820729615320092295656499258038418220652136277047417891088361621010164074919867672757623673018010231980269395687705973459129437388429612799940775606129796498522242834968495062447614786773231370836566354939049051703996594878991518831767145326141461897824760415603926363182782397070219554596028811919487516062478535203505528543877865552295685589674601655297709177840341065024002546380428211699898172842073507384291427659261742853450376063389265879515256812627492909237127304388792812281986891846752525013537683634806580809608734672680321949251474457389070670267047261982661244972034799317867280535551144241674090605372226034035929768031878062366777108591773106261917212715132732210171002111759508641011821015764771598235564722665164187336189408137898541431765252860442521949018490072999568844797443854967866493609940284657909392243620140355183408318577152727218985790111701743258611941469435273106467624684437189332669286533570763455985137451841612670690737543452944049916316045390041057427707193924013502353515937314539424978750826511599010497346339648297129485718971149878610513140404731889066757704274083719963485412080035281443400201857195850300580413688163770514742994846839866557496427617095555424345386885097606155428982038610738929542230165391404848854364668865186503210362048376000642899293664040874656925257791385556951132670170740460540440633082603331053342484316959825752890766525625852888041181628701051580486650294596353377370075609217939220335100295179213873552652224807224265678459401588796732119672286900038596387634334904031945616309121783116946217542708756052638049234553667337518098847225714457438143539966281220555272014993184863748278950473465128174357951186167083236571456055168181903927523676601061154754187864834842493140068392085907737750633688976716343655604074206304410867390965544186394849435897945498125217707789119010565126125365623774525205195057038452923124891699750191151348838503160100939135906164011825833847180760352376782524004786221756648742200692213142694459258061815065772527264197202480553754115933978604708937607280168917944028573210358455189213714398766856977665191473122397826539646045519736067931081422928054991778583331110435434948018978418052801257914736256146813420390669242051258758926173766421428595771852464176618507788070015649600741349514832545300089987255615783358155533930398476381638438889610625211696701734387086627230089647658370674706790864311963484617116679352745478995548735407994724125116684015846924985599901805722536865157606935747908906198494411722956361541610302222329744238513495323780401645829229684985318189745711863841321595169140765667548457876176245571340695159607085610206826457823153751464209340220710030839948388950845100780462336704335383692975436438474967636824415402222774078525153800856799274376057160614605408914099610116167062738361280533725824974591391876221008268888454472174045036108888684216688027747470469966526374721015440515007567447551119060248224952553038092022203368687902699412538444039640837335776359813208022063436994051040848698964308613090727119463857387011532015834596677803351782930241729062026008588694602990472304898263921651571610263807443312601690253172427902696900259936342799209505167081456836647213999744642213237320422261086432591100740367509839938299289690079250947611242228855312471713254904448703944946562697317905861461404797108212530511799855023397116370389246830561149378515946019102817004273836536218262244641566884564123652967178196012765375061426982452570932918031462106995705414703559740603102645584318100050687018326312330767886453457890371749219750551448606963562565245647374413179208417466375119992271510898397438410509309565559023817991412779622424716424509107892867545511622764191572752995661114368224626297522286786803187279466771833150523042722044332750929486591073286423666783450027328837952391579871976602669951193421785715884073875289648279283664856280038734083980818641799538430219084920039205977343049374509706586246164266848155874900094664980006259120781790971018681175509693495679978945793851090421260836066773634643114627488638979716918542967613058081051934463241027017518909757161172112233181641137226797717930215880730295319338931204725122797328666785531287186277845647503626515942272891105328160479891268988311677801259831826854851144841962003343642858406772740562549973569332156444246671506169255908492586421013699894259390368708022921119997035099390173548789537914053330424402603732350987445982370969473960105227946144058520576349720429584571230107976754168656018450751935595854012447210194780357839067614260351055286056123010647232068471032270242602437071957493486062198843501661792452377438178491088504315880626530234481315046608010798275103734418347506393613247557100837291711084779573349282152321702046231689896933904751031797404865876006589472441540725752460744936820726424839007782146710458138948879918117056359875830223860730569636014610800044598214464919813198187439187451117145174750197997864965100619321167970821983056571622137113482008878410937359606265844854819796249423579689938887196017202522093236218263704426791379050293571076568507478014842147365267614193704510571196429402818824691851156485635681641646091389631670285581629424449221388239764226163736548560160299337872317395275130565412809808848012398120438991818217754714662161726871023568495895142017016145810313220858612522848567679888303246034408982360793261980859121472295252497448916951767131759067339253096194888061481501706236878207863097771683031698313222288824582663584268244707104489909602715424884369986565705996407456464674838107329372951673520584878500613658626177756970324350557400281135904685401525785852709534568534520743807167859760913145028408536550388546719687203909461886909463394223226703463472949055498208288121693757395100356030111797255062421377822739961875627261619845413714129055567105976106306189628687467631465342295395043789883869503544723615097354696995510754719885033477445834910660434976271781570766305367740345911652825663960701013543677125309454236066121836749743584897947195366104468411016880036017138798098066079321157980960598183905444664682371348655243487773925078792685204610242834050970600136784520355748800114494724598148079193729802228953415415256880537932836502056864089298179025159516439749093052702388727174089934757277345569012990067724237577585555316180856681526764156758424617327476816758224317671081309784808115255722065668859677737237465176448088528045008287018415042858238037183829971080188691957748629806732121490211055268714308199717181830271543662263811604795513641710257837436666573202759312551022339260298512687930860304864794718728429639745496515761094812500587294683717345700022488536553564656182605590059077379004909512686190505136419781144400056719712580725293234749282461195040904824384352598642408188777055026707324232856648081158958583427229149054224016886492082523098883691941306211935576230404229477013521436466731017546976821747193946163788019482978304478450905697090908046755106521648997850785143879841448587156656320756077165627393045631366731964263103698927642190681212618690313593380176781342981876393834440842908385470521044508842772177695367134702903003821950372960940089818068256253288537168169500320906316075303476030910137731750626440142633494927934792469696635742096571884319924818034182198808695062280960000193090325757639907178530985042663951632752180151264451456408288831806989977355086616744352216279314801284569983656232521083751318093141565906675055413413748930764704239959566141303051139475703738123213755567442848960546392070627080272590024278633076346811021107310172275766990277989241422204475359311288654651979617486137957056556311548801063060607505832332986204640664570589281891856575389730510763915834900609865739346491578542677885513602039520625865812989154439933018512326323239286600040173746576114234770148025745655891814295497459379837891586148826944378395200821222102373813697661441235458069147733223562069164005777322430617896966176490083892115265769970486438939387847770612890596419381220091280234243759001165250762021682327934316707813743877690738441478881529741411749318802485472073619031388418094436870552263893474498141423827999787929690958826222495222887933147144640464136697284686484660358734430582777663422214110781235796682051244712564064437060588594430436188875960255494608264625232975969929974864667643363435450751669981591316760076734342054493652583652236264117025041009578652942391438994679497861382102601675609333379379188385633555211650290971613742476009625578416624606446904916506073896268997806680648242973757475406000678718481294235338463942543888269668653824470698955491681547020552796201769975182014552387512883887593451347260551356667034581601361130014376261446025143378387422248429744178972581187967896824586953438086740580426688802628611980573921965525006456376033766062539168065941696331345338633698139960578387326816037890257733818454437351451692767153436129844735923247723319230520534116865371956633790894736713343976721990733049941638322413415458993993946403437279147752700532644385507985283732674641170616142138257688433208174389243235820369476657654353404712196799112798007205922783209702561369004767996913718574944444258169715234450018703337276907848870035559996341617035979420947017509951300290904169103144798252766124895906087838701514577991390633205100882001560323550432320539033868643791315360996275740458151705596276416556599367176228331900613499920185649835374337803627823404967709311637517929246069854150190997760664134741720101988028842787207082167168682200407971010153441225643339129439962879614403207344284940756352783977107633180458882909811939471451429659482699685428493095764476474551139032343812158133015081673285939487831529418989457285682279528422437500936011323699774397934688717750906069841718711386620776126107434154804637587271909107926077103476043983264730220525732485853934732546025622394401156567780017700121221951201121233542130526567020716893714618361827929570832095951583622579159418117103875685322959376830474245706007412723238960385310006394631916255927783632463998132096834224390963248721171501325879450057329150359322622050780787552464350381517511753363438710861336940932458297258665134607903909315504922497060853414603160561426211728037279642485459895359925013518328157665439015397176558664012878052047180157699166001224860732766397492878743696211444690198134580719393974358722794732014851370692111027318060071041090732750544299724290102756745181635606841876606477014604635747308457521217692683939907873465445054485219732471747359834562529382484412348234376918193975171446381956932949452369354531677298460607117966554511458874578681493037165888372962974279393973375001146409538072902669126257026975361194389895522827356071234056446164476837170593248884154569945749144520243431462251560330945235617817302946500058285991467616232939235867359631845424912914479072342451438081024159357917236089630511406726643210106478393374051416399375251287336618770504852896059364674573035795696106801696221809276933712072388010079809551956653102145440258716591076819352025145682205135215550494000359214084901412037983680913799955105455401051396719184495799265892434856183088875837441062764174313772885205791605037545076086992422377518257345356696822652895580970537433643161039575366506890292162759955178136937673192954044021206791067712978612480475183981341570190020646497995092366403189135219197006830511572223253203765671451888186616530710104663763851680363943731246021073820808760861301833356417461333661159249678563628822839610972746429735966627472070563560340005251363718995721654741427497700876353486413417266428872821641923327272062492415402670350141330797490797171217222001699271813574858481573592038255436369584608020986015020278794349981276948479842013715730171381989176663786749184110817034214430820948958247467439391466348517956239524105057469048748711737453760098058783931553137125414221711656400681337633116053999985167874682397477598471764511076887565295763642354249489099602625630090846496827143716557258798933760977889401978303336304535557703770804055860804494528334014014005402120081497957824917934795709053586611974265467932744975658100730883624591127691284565889998567411042092175300291308084060036474349279512376538135967978629275782933900259140326247162686074720967049525623732472152400032799545753017322721675087880140700005195824864674242714214311193642087008262883113852664011931255186168612500242153325779700460791139733948293963051975795098651907238043477443083840900217974678276007914107553108066187180422203186787243209909765267024153287063372431435852735940940278545780852478733735276330847968931700167661345733661526896791095902963257764726715294250003915813920389025016005618310382803678414410659051158246493279999311862557692645767481022842390119446860078626420953322636725895754788274423664013170035102177284144430475414527495538945528083812259574075686275066877903700234449005445089957018306148416792948063166498330929427262363115539131728973612087597239449943895516578437015273022355419414653662974148215811434597693281644595034780361297108611008455058981458602291309258306998509448142108834792506757136296408976968122116366132277657332626210385674428987492524664771005686896119526601250538973855305810302082212713514260213334454674740588353350912742239224957745523221924603890102833577156805864646848046297304645849257281160363337930389741018733603033899664731844424521402547130954296206409426140965468478342160911093152416502691427295077273508015019037041625241294726060682118389799022861028266357793331568543814935073028969457019946716934712880313199875365860935072746460981990474318456303111803879837676878513787730103121383865174780102479028821115684291021926530061388086540254593269589112828108183931977045530144351923199418493321595180864343812539400057846927483239109238163183166655520086995992827215149637017534968201736517229665464876983851900099505354115140686855513179735499861917656850465160713523156905681315429277265645576653234968004222593398521739349567663031023638274543784990066959643619615532017034402066240315815699725676177924485727020139235905569248811841859818625347377441132087380516029070182530654423524360436372444414487364259896293721468417074912068038024913371971051571543666881650754366334213375224519667981733658579703499527576144311417624229263324622945259995951617804626480472717092154980719673163502028926295573524882547903378245436324200268956065616132284802430227608208746540645567931888145456637026448406903996598504543895288115330262765456372662049674204955187169247610118628131262901692359321032865667378966381347409671921067178283198765030249009335559095873048977120903028022160098664860240383128706770120152876427470943040034763398273529114922513154207170515306593079989385277958141045758836024433180611595676878356652813021481647739265437497492461478413256027404431502323103622330452917544128381195721217596028380369157580680953994200276302313731814395697206913998964118971632726067613938116582788460646082511040113118811470080263703789959069809121171020320542986261668359877614876985510266217365556795976999216443455560854604945491216535969755943758698600695798720711251480989943516720137092046487264072050291069406824863096646346494280558311911900720865064947568959250904027412457165019172175190091096028235142833508372525840345906751452062555606641856312920981975223327768387800778737262545512567707573019112227986089076636418252180142037741331999154209700223988694655252986969995697092631624655875771790901600414087823866118133653749969241427191701076779637283938170569315362436447674942287935756930522099635600769612369182230005898069107199412288360118617441686343748492586428440412120000094147551280685287370421065304454258136448900201286656214060935537233002785506775163781937986918879901117807129450525966028214968617426927622444115886592529289858164788511203742939442639710235035308159440027926639896104790321608832504255283687338009490841180561011719259149936037735839423247150397655715829169761443097255990483650442642685627478183067485791593624873842894507157992313950951293874220082496605862636778236222286101089616372458851720080823902225937896308826888919152619115861151305154810593374826612922773471483587534555179722080986649073962743647789197080646038755081772098802788199856891484188924153435668977659958300812327793463049397868573923109262402825039798506366407466381205218024589955957136374395232802032404985380167785436533781059146136010074394382138884359358936589079650553217902528279163754656651750073993514765880068814424633187195851332081471874638769889281585992487971077931380945841512870288543590325105039343733977771002616678553493805892945224762208898732169361068926826946869242863634398969895231526818339651638769771601180567271913100759142659566109901178831550074934100163751611299158434607934832177481656978855300669796084136534702270976292510492217316176353272201723918070639904130448642832481673949093871392662455103483587530221530983493606678724319835970222230524698408015673271454131895468379780549009398465499224006323423856258774337776173311369530967502438619132367507047374892503937177272068222319323739771581772637800639153701497867922632233710400440063531902841245891659139979420463648542477623866345286007918867053561788895006713572210239167651948203847662115467510700278759581014816882118451733303713602787229972490019134613243635362502679289383116102692223516037911998048579472912596807938045210356584953614357035853425419808326183148911521470621766205062770968944227357723878592690575012059012225241380260282842652835216821314358378888946601896345316060929302126922188820277738405503555055451237777815117989465221449882738356026564010371734197978312148702045559853033965990493216776543004564432735605809689260147025722032932482571792567672306417381842308930189979334488182701192255448315314562875239167722071438898657616979081406648031692275098475358952450724847648727001246716719294356221506583633799135001233220127475878870366609782969377661414835147093694087101222045965645845045854319156952553144437209482767352880166015536412191326179592679341571312648565523290253464206255070014737502885892032223360709743377534229671278481073114828508494009547594861265909175490405022223518046892981834126272621270369250021529149135612812766749046629326403559995181051988298893758413446736465919255151085700038693400585168464130881128637701201184918008169390994532887809015043643938599827831691457063232176980078750845951342159920882758989761754098709858518542497180894702154500696804510913197586008286760823951685630027486981629666539323329660199878549753337579347925480851062177736247782136136868697954604988356423215368150987316964071334105781611244278148811899081816117063349852671405052897518616513823467742556228335615517746793158983493760561946532133521308108233042374463799042825549034750483001549031978885105657504649686067643065073059731893512528810908717119554748419618375893017149089532759927419723735811898791024533804277468330193660865424373904160359279993371778493983751923901046733038099744429259948090958088149993628564058507079120156160759394002356712513631594077264071248968621795544995395403081499832743399380809165043471266735452608767932920432370915080417707865315975646359381895917027003553805349374243318355938798293339559824997550330480730590555892331622332675576097550650916729728396477517431407437269339239194623429453759011309723382773477006283624882321181775040301921630762747014104916938472501993700836607455764841873022642106416153529238748907189416353214792193723686480003403082074287471447898086957189143576837057104121821006551583324057486787562619563602301277301284260713401878419572089677501542449056762626024800439604431966863302772082589217186397961608607981297361023778284713101968425738156037145467210590401120683705635339569227013397499348937859233194587628697648671908125580656375653237212645269338906435662314884305981234247463290158855463115099207000977892205441350439490742778643830318424713770187184674347621611513729509634876294297010336546185047504728103127950658189545267719411557940927659261048415426187978530286546524800886743366688898074943730184714350445997246900445409769474328020601776549324141843679440349038944451813960474677314797286940096876052364262769381863832039467296490248164859508128713217956112142687836750907285721073596170479720715692845113851727450360237022693784090244504157344228600954512903744155649296498041361176399846267327031897911074178923783903563024204868288051954140893236250716074477133218021549689028143135788438097581633252624526226783373404063534533381322732752665908075344887191540895202009482637695509510728595927106760263789937407246547620857996009549871834912335973154259663251599058755548414322109731785766124657635611080568380851390504519957534841012614129797421764678669822663647411826268671838804122763786059254707432012779805773431688595627833665532104425873843116809930836334235020368242896142132391417617589858204012449975775903417708297240805370480508713636348703775977653214971883292602275457460350308339229863285617297033308305639773289843987422801366322241336612356447676730294905333885287140603599778425491638687576166528177861421765518256307296690543473462630998433949623911753778918623538039777192148853012646951277329179162782877592088079036505119359996592528659770049117018105513445837710538029307088581159490684407209045124014859255634533603456900384257194796067350762739018588700159290791461624302858237990531548687367527495384543618274285931923083243622181074339395211539395105384456458363294983955244498232286891984331484644445155530876387398749890554474730272346907393391011362885824103647850980203322944490120349428619711856915406894712875954278639017288567737497693105327003262729855125883313956340698009283153306243989469811147867971195492009604727108684168309461528872914477389512960646599058384231158601676876625346572600416260328262494369836147310731521224547805649508323290338682346958836387063006245322213498838722668268173704160558175504091145541063704089869895388455469702143863123866132273566769441097673066540051778533837952752937434552132892517471356648348629753885854502243626575524600022125671040631309675662100854884520973680529274608406009255634350000470866746647296560088912543503703105496121282477422465265477996821503695766587302850761696502744079990830387899249441626043809176803281568534953884991688372069806273608107012924724431336792572140759990245341878195043264779504249180455582531516272982470404454886504429022925755231390845196716620540902858355944337913629102281005641156655274693537914399811907335592945653455774312193588364965961854186780426959018458435795676004867467507763381235577319108881383036489718123061921131266763878953100611718365693737304458700841119285815628354100591067351800711745858987860984460584835375087116018409241869826248104908404523364677675957991418498886786739452646667884429485430468973460959502973247719573157594323396793329302401300460674920239656037885390693842449503205660045528914085769017003782701716689226693737538476265889968059619701516156180366216224567685082287040603583856292813758650958796407046454973933597776453812990219266474373577323706604111999499100464584610691197157316963475493147568963840317228735002429267383312600438690172549039745270416607647599218927249876813555976848872788673836695334484297943122916029241715791710803652933527792662683238468572823821753323946072929923927501783552824252967036794327152296116843317361758953409566752256969766169931441871981420926716599903149842495396486784807184998633026610699770067654536059833988436278610220848515216473329487056467591321013309103408148769201179170902167498021928215633920420365274496805866711803595117757068640510149588854090075425096623047251937970259127318576551963990770599490654868103537332995332151125671407712344359555240355876326613440400151940529770950204196447803365633303948621494825260602330461762002307974988689472379253844675813793191154151026876931446149386130924487229823818250479647649499800278881351670494690155106317009674308452573065275948989581183347159088666317451970402420749396522155626894868181389403875347003211564080496503779829164806083431025020850054847084774292925473729076029584490949995683029186898448175026878221542868383031295569281350590780756609343979592652414389387835749829371740972970214803554809741811850328106884101180616981388190788070068085006175670284529260321676173255163464400943750948985363958715682985171293462163429750555578277156037993059177197748134489398970517071299328872537920159871502792613133709462891994553877339631241674039071437833290334133541107919600293580489215916958027765158012942539563516508658389776497457330376549270568033833224965485020151938086265802658549363798197096899223124846902152151374983294649610593684530360222982714875186362685063003545552087422005123975795476758999952010754781365453519241659838379027920508782872996677634203824044291318035985651950845321808319935413861616150026950825087372112187595050575222492831327572154961871910794712587396317221956733253872919146914655524034619729008802617209965826005840120009616757756025038359592003244007378665875894929441262247535853680363845904201907142638936370545588321643640496117451799510448909985791366949670216552003522932802794943835154516460681311962376950974781761098055636114689284464964725177384083996002446259666035327261588724769437106153128246576869780394120726295929637572052232208741732346313449665255386926780914242844979332161533591256722625985562191605108371184390300935605211896757813559259500791064855052047693326277607811077995336121281097640785146156854988211316429470803470659991187864256787173971350747855996692341507836163097876124391938507810850095126255448477914340162777211082189445163805172217882409024947723179719547420363418026682374550190661697298711970099945277353719323295944726564171401280353937541233204368673871936560796163504658475543911362136649829660525522667652413083301395901828849066691942414042623600904766346766495680914437060966897939460845225714128778529876519315732912113202056887021073205380827078871819147786108474165904065827940783640576872097364145610828180790048168310548632788422165871176542459329789494166950951006085534077430111975387241717114038369693752227234092014127737692267316608190565119182807145886178178528449748465578403821562271554941113857405709763977359062701437778454732168483541435998601069980102980448058579620020337538080972156587317644841182019901861348540307791145114161309201800793340529728286974804972186971787423469360533795727266275791141043707963149630364687419560717441497836816536341424482904338815944981406213575966208873908227847931436736884322613162706762778644052927625410179211583643706790099986511592795308301988950908442036967294219390672438990579601037266414882767802939000820967939162736204599750480190339331754020858030766008623011483272289215306368412275414214638533295739957848256027427572025826358055301594031577243524996969266338709855433788854213649367123858210116651174948231289766229704006748681523633516138144413851192671215867038952040038542181047048630128914927151080984839954090007144311466025436013196642808565160990370209734720839865421666073484469407289707562719142497722839063730405309292229399067188847432927653131336200797908171460950688076411554097694048241877784264073913989286256783974977197291958143165443002070021623175437428101374559792952849842482452761966526350970260343924409934666195085544981524687137003437699596466219035761616924021356686546228619847773152818029274576986651075859453541126948898218916696485468822679223081952172715803640133635120244386235956878494512299085270361423321536060975074756902084067096726212147383594557793068737174193109743807033864314353643075315123559901539598225885688375798475983160580417864902016678395126219935709818741159984403562016650634579108266833706052916577638150116072648082492174798670412085635734013827457127380394563298674369594727308335212710996368429965929341512325726072760151821443530120576107806987419525288985777296833785017111122299004777698260530672959891387860216920978602071732631378183204827461329400481416394086470650126751630533804255449933885549814545521939139853007766895195825593706106243179090280023016084082195376345134702081035645391694840258071383524672677048451694912976632110430073507706222606838213288509580515460628805667399787599056614658047771158013599124796529173908333301431915926642236444221143114990309618329994463825084946390769754416007017587639906968693708209210383352340455288447098840285584769757238894246462290965531600212993489509344029654024817553809423401039365338844661036816794816830216810354047796654683177855110693769469956568863599448577851965256956309095551875307501676445683761927048875205675191794056133778025944738353239646218689735365391704481507543395463039372476364707939290668959759802467598673091275082795369268454240807887303037787666162120297733372140208099740054849731605341438016018989283296737146338660406039898763216229733108418995383537911128564092942413905005056250827670377963282595121693022434906439785037333983235659549451083489157196908033380919831152809728421583743385845894523124078439338270282289010285065761342506051275431156455285076371073082371103576416811715504770556037242942667394479134552341504545296231724870633245288310495227330019555842310197338425389177198168727846327318462461892010513760257940398674865719714092471864639648708145756373512384622766424627498879583677080286191677094615831568330183362948211231308553317512077757402730935027043409545791737233210344129658349374289151557219119679320501178404104415343576009488784958815887658110533064382225380204344115755648961265513372102573110471992908625276800154468919002326153118367514047748958129344499554824883582312165103382535435158331778399095172445427218689218544468876255292338461358193707111670591134175143043735869161013476823126294616382390613917689454028099321594804375980209870934627042877046328281124155047357773425861824893463345980998024455400383354119017986938908395285883600142018766892373360259638589567907961427436914239852756434194608542047345634743934197687481951358162271822719333702412937354200750816016691475452747843851035587515758905884431095357473964991883113261798433112929065199618923582900353386361149341930688650426511390354811743310362589779375463408134845710045833085336306355389688570199250766979457525081841081532179364077242059037426226897192311281887037081931874305022164535378690297100155128402746850307996815709129464889222864378834688723807049266566530490441227352268699439827093231019963618129408108351335732483905061088657624746504569641642600989678370234468409087653797996486199442606085952783863048245057575218658112070635286694697509302625028909487617201141494694296968200235205278784011312448447653769131490544096755481550078251183287844193806399576270271065617838595177729741534722267221131411170611220170636887642499234779756660054529925042199617521431938366618574293224745116666050682466488165655461925106788586441192528704359300444836754332915114401986547473385243317534366318522150964380013439513609463798901196944317549537653442175146373210949854762070846831410010887375229424339135421020597312577856392375069514207688770937984473956107770206233759822488669373770056777004494181492653252909075629953433966444967714293346278306026668891481501750960935223408458343421919116650498541869236400864272296466796728479567657176913695866830365243611417787761002859070354577438533655173707101683349164627712356947519978126200611949710260041733374170205536759514984790805195385535821846818041679981732259125468356290177340755174737012263542288195913279158853853551064966763052051514417356751441134558202522077330472469725701076002100368839216745962542474031896162912341466963560265873018713054754837601923230270939884681911150487055334462892716902022510155957186901246155936814170285310316350485366572257927596014073124062115924986208568504646824549189465493509296374805038285804800448279373987311591664838310130503752378182444298009562368496135993363271117106727750747121292306252162628943357391418743047275071577162202339449340135998193865937159108849909978340495615828415801450264640352121493197078520193247836777515623732180356128988864397429898915174398281136594883889300262929474810546363675671021340193365521028736245715918882950768037065927034276834966484331486639529345126826459359608102031617983228758588793179678286038194677251031010334479121523801724368523568227993293860955196260813442846770906770089440341667465138083820666266984539165398991064314387067163657119627677119557735698170137460611083194436924261290132569230273344738585770740734525039226377335510212533085700411755170507246784694403826713496480109519386404918627569606529834656555891519958999804202721996995655495162113000824428322323216909404752579405344651236557569183388450109859212081415328810556199708057666169854833059418547475323707307723315336739635740865292688196721378771693705271038325841765391656974773102029959346115643751733662018640544222180269193913095160700085512467206995555383211623071392600918258257351476103250659179704617127733979073367685008514140347463009017823758951130103512970305633979022463849278285997937564340511298616070691164308054955842557925028242295181403528409184862263409798184032473159445782943292297555133021387177144382298315751977759126682928344428509769815636807783722765154067286010821387200775964198657427925910945072744823705719958377723409368362566159013310985631996069860511059786192270308404651562717282548296095758597817850003838061803871224103486850334477239091627010834692015238419371665747071881491710578747458953774613007499078598207485768652125056548709945971112817130275112914820834729514293192513109242553140446006175325914347158966033155301414600665704718311245924777337382856905698200588568373958556917964621419314672212705159204914030878263477049325786317708916596260772715393243018040772136761846317851608631128628267877818107750920664165176611080262777555663374022380857223703040093937406435368293314745877430665470064929671127293435764438551237691727508658946986653818250513832405698622590034432116963678581343064580342853190006472607590235031078769534461519191213551737460663870453351403183213227716140725450385939082838242169835871249032102893020970916073227771803855570564053188606651761073980666490511012678626006384204229499511012902613757091929805690629830086077448244062781843949593587031758593222381880634284647984607574042175691242341140871797620656114036048810086572208488054206981755277487962679244647479473605228735231953869751736318054081714168631572621779647844930202340594099012155960045356558768358100342022356360345411737283036684380501844033268263466594582431227013777308986894650483725790583394076527943579946613739247518978769333207463512901870009868985246353681150430480067552627591211091233536008610944604304365866295296194023303642829862551113392890232422836976754108938287274011291887322652522788799282848301974037769523093440398798468925876024332521323360287639006193868103277310774028218882408298970917391508640139183566269426487972600089090787753840079248577529860527997951908775218344928137491176211116850088908292434601810724383927204835701158637280651240425509022361119457073281057798080518758902220135848192224400465975924315440004755457561501115803455055973208580875527588219132967007531575155257188131812169411639786726562160075264859101745992597469128429870503111626062403425180202642785996623088812957200317926373391400571750127087835783210982741136910245042527738318179573753403626896475475111103376440747271042970035762761488340870771128126350793468525850078193556260131432427559317252204970376381021071549733890892849963936398322147488380144060732588196419296080325443400321605541102479785577190218664365542078068455584253460612076661607693544789246476772709713932311781905249965778924771676652183006710933361240131836831373737499809192797752502078495378201609795084996514085497112949097943380296123667033942333215116927245541718660163205035407033363216700759188354650529913218328681998787495059008286842056228591981231873869452690951426594057609514614947450760494015656875565913523704862424742578948757426923112060102084633238503503160836555654579148557182108209208346405460549006592805946347421812272071173094579260069597200695008944493018836861285094396050204537986603981932803008991438426796353675432865425027803911929287188965111077370827797005408118998155137686288294475659711896756318336751438028507439759744570928555921111672163733932832903499977013090284970934889650340390040067789660890023630433319639127048206312065808348155839297035519412422272699129164474345915440730668990164396268544636918642311369832955897104632860281592110869324025942418172178121104812789414714892751810110103814617383350571742558770430336724567510435551489860978050739899133825944242428368053333555149584913322852655111389865286361339860015034362750357646431949511314271626733707323543882772606336179392892206957346396337798982444223011323915993136109828450572520722092588350802895043711621190099820221332157469826039583496191838615298239850519324349451020919460986319109847135452352559046287792662221885029515033144306112391362085499796082456851964347731771477953229950549469542916792253194919061306124374893640976949654019626508196316572478187357036761657439407336723779319522882357338562205702521055122387740943412772721489329923635408228612902073121991762828959765221609252495370112595729247332362890833044272308617398609958003713048904509132866784718830649577851171090312622228943186291973705104623698650714709118071993969812707998600050753950267620590166163419577212705002697122626747649591564739972987098291210488490881341002732361567073330847854115419574862540803166037516233561741744423317300283522370563745038796052332338105981994661340276214334771273225672093674943100321478581084110576296882666745213632558368275433827482169753903451114660869074844626424487908289926329917874444564567097956847103963243067900386952378378360836422975140295461510626110916203434625976850385982296888793922321157504392547102704486136753619928965182954786523873014834257325902421101312026614715096202156485102797004966355478744593992515963897494229783324941549699092463923874583796766015251744057751724077724759765251400521096330828820488254711150842688910082623416793813480359475681545619235344597602018335386922520592792142239184988756252152065639681812923399564117266674617901404420913838417990463098877914377419550980203996212263649722318297067842829875943682616901019119527452974236582121125080602619246763935512541444093500164744494173748207531682970667060963238881866753966877798674274042684617755507979545963869183146222108192589448563925390527006271743345895278006370383011357330396827214402127441304472759507797216159293175367140304247419366830844717487912076961437421510620402046975104334390345129927335226592558623244901403442957987957352065016524552632928233860173276886038899391024832939151870234544611469305347932344877750464233711912472283069652316117197026698523165083194014168932821152931341852306142354491676492304315064656114160772243541170710899386240814607167544546036987214509413192855077799044123890815355567042427861470101565090959726616669959507981976297798537151343760095876447981233963343049650861882428206962601628026059897327659203710367675549190882466117780641020433527540080752716975733417819114818862365982351556768548979968766869339765850609193927482606224443385075437741506240963173984784794726432051475322395961028603766654683460588171945796992629763357800480043160765643301483273137264130242184348228673996860202170615993792421503715794800556396356877918214207292956503447763541067963555948712223978551389295500382638498523865660706603236641152412460528325644310129400144493032507911051748163113812016795919597251911954474934456602400713858927516211485100337464332496227375998716553686437007811870030406748647343726645590146903007648508446474291683463857522562572385080032463117470401757957413424474224722045246651901859277932980616188952795418415903806556630389590755174091131384538881402404790220378807614847095424652661429504828839985207649144607515356116177860666322809273870701094451183678802757078026409314857937150493865011053268676489332100776488719155023169121202196149498498432192469343192517854205644115018505975174820725427148541556678139422158530611265756398679518528989173643053098878056247307375082119667161408063963261320085925624898390027121873464753646199016834328170506241963655824949218534211086504268325575437952434467072145353453828467817425886712685675735216185658299925385425974875327746917070237372296030486211301569680145052235649529410817715157601103349823330744997567917392955533681614441320048356715749734188824483121178154932254299078225660657517722665085357760767434900008884151696329288256098518965838589967387339344197289102931232703895497062964275636231608991700043491400826702737889929053468480214934829821111138686705974396153360987086735358891729817197236872702692413570308333409769133809890933868146267501864404699396195291268572688027241493950925249678636215129613655970628349893320973420262141297495621875685247405076133742168623705579878590500663978437638890036944920906565410251748437214277772266226813648391253998770170311521774453537267308815959604141200449633106240171105557126732108424539998248982280270097813232903467690973212397608788874578675601788508393114348575159197993596028169386850401268317579000600489791645384156426621779316035728308387130876060439844673302944517079364921766111534421315445105285575541140253454898407426566903770688479263289053295780899761533380554741069217354299571351093759471151810096661706233718343437151924586926099083512737103274550684832985346900236659779307761047278792388884936957095993097470461970918650383613132526536412089443732872249249917831296451769287928600858926222357619318875254223182124622325805185136353375262389357487328578076134716208019125062174924079573448760359043044123806077911884734415293201856995976974123979492243910198588171327043478366057910205351936700540068027983849213696571249136201831648382879285941305335302623625103939988709255006103334728677771700130282808355722999740532683657232364996475061292610564208463085801691795160139470538870194167745733931271190151122400470098282257152631708285252464302379344755900795646555661063716500213094123742240323203360985627054802181939415050502312391937732431488029915503675286476018919596274174251799581560263824752518244289353799458471123943109906866654484699935428414041776639843553134596269999796443019168849083420070859709165537331573365887646746114295918740221233145151432715172422948060106104482450741445190336700243023875321026987306542250799824065355407282050882877195494957336180483253470705000790613931626438311258966829793807888902622985530729990660679659893859876852830981523326589207340079260517048295255982112294252052315132671274943688909586139814604035837280175605095460047943643068417806252442888600054777574172883979452691925154153953559648023177757373727181517694397437116683382171823095781973611989565051781872716118338981690575470877407293751926471895235684203515049092401482831483355746906534790337469905050055264368845032581802184763947872366671193139405983434978302376849417744193291690031900517761154166287397619558251143545528643589393800897119439535367753347542083158792151228483043311976929847639571036928072728880420088938067214199928971765345253081464211344530374273759042342899119240784389640972454989458351469154418747982903460940460593742317282137055483680312124761070440560901513968443062493146095034343506392030191491379822854531192439684295058159217126979888783415998753276217915566423305085412494611038245762212387741372456493372681061330584042455481879990298590649658518155817365099076145821932496916918877839533058141330354748161170510577230237152660785313251644236866518762874187487658096875142473561078198951095139295086581872173567463098229379836528501217132025798216631526094848277612545330964619100743685346412766813964430248001993723337624165024895100212058454155383920537440398210924732118248265316463809364438954583692989473071015145365009284528993386452827463976216845762844092305338000225833964183019572808052774441332403493021938789726513441224399480471622873784906659121369871092482298660614962441065688620068701319759638006371330163447547999613335327160418666443005798766441298576930335154605432282479039886115316243576567716060669483639931208263658550585133992965691494419141544909528829486730435329056895479172792413763776011897555603260859869778803302493014879127648048979083064700046084003286626632453812168201661138353523967250252282303030088105077944336489156575593448286770428612546051173243604526062462159731848589334264251395841346763953551362266411189219548517828421590065787460651150816208330464282465003815690994943523175309548845974780974773353522831545331199564818263598809257279299327587746230086346128307955526648145691045212984342270991614190663795121223688509682433997776528137298180321336390586280243486261465883178131912158619047752410672958230867705290237443827045881926996318637812286488154202857035904750411710396800112551174657321324246757881079740430214854120659894606140516649927681399479955489825433294764737626012092723470732131772455710727594535027921675220026415072124031050115921751050807511949976227000788566373107053435965384109940967140658975587315701728613069574241761119096541478980931148733009735144334130595232029852749558535393462995602560569076991040697434319895793729831879488644413617621588380145300595565580616083795575203159197166068600632917627192568012999822895110106375471460114053835563829762225544084063347149944723213186860294363496237283097134801135427961902354830724773833865634598657606458081749331904628753521905818609841745162124363281737800928085139250484974637437219532440568319234651560693142975989691615828205931012881460598557152170515092465502992720348853267188108899282353712348774561470528368948025798216406979233111928945224663503422934583790552572840115134810490611382333760384265974234273049221523243493172364315551583238501463360549277497513385171650490439205617774590665642069656271930056072406444659833347048540052698692650135253295472435973641139262547529288357163661062715093536267533224838885294518564941759215084129788557552161875085390970588993270481638221790187950842181238113274478712561644776832951665849308464250944286759492831447361530816041453736529690169598527154965868881007780073190653748588880085893956460898848032237974167317405092305096328480383597018845243565477220162336840328242772287454516894642021884002745582329074374121027901162735295419367836236401886342951488197111317105836580660687028317931309283680069975739012452856496969324254329035950809332150202926175498024775772878046077071461078311330862857398929608385932349453866036947865456348157754552119238241385416749727830407325141881694226279970851647134084269351189888747870615921799324157374133129640877724855785627565488747806332825741764583990981445457103420066696234879360416037789562203584672844889993544452622339009890463327747522962252152838563172570317897239930829642102478742786109975804994439524748478778810175875388696360850461483419082938797686595620197203017960750949931897337271408100733449904388141990497022555848484988847717901102020396815238428353792168614072921120899803576650098266786959762934034452696260565782535505600423733933017440864364766985696297003606448034535464717923610517055052662769643519924001564202352981580056739348491115725049620686819869427030204403408202585409344679254946768438867062965279191715803319024053407847898324853619958531060727695114555813541791267374369822698630800225183872782108705579086726783176284419739076700215136723492936463552983144433897265050468675919307077605210364664757193041050989638075858464775834229428708512934489386937609713826289880772320945393866114843899793515941647096558936942840729530259416355399923243888965852543266557428996110575899999324889782430175184924858549459058387889084649365864672583896242793558771070847403234356083375281794441614094435688418504866861888804979415566762578037223362708986641785620311161490879307905219747569060658960587952286712442452663107713111903263583900076493079276410299994669866684205063303630730899396999263599520961718797710490302965701980867672763411586144125986944691704768521352029087287172604991445851532885477076799292082110583919319270468910618313783743617979683872569627179637755342468023501211910770114981530828400354335325511774352278896109995480468444874231737020444099130266966792897263409141100061690213356346786985053047464277973277358873512773086323735654259188516740082302287784366154867617202989286298265775100724202731032405336690677690169852700340823130909485340631457113465473641899852957926447459159266527391795840034484551142786418085208967593759167895147716386642865832796636809578787838391460434475650446588267886149106388795039704794388117780968535777228434509741389094133570554311783503715910586891480724976475944335924548945817330937708727005749012578652168980453409576200466557282585251616863004523689937223340991885099500919415212639210743739407781398038549137663754892470389881374313219825062174363638435685403422306498030699097270371867607610370469727520890761182691473731334284940171479815868456981908807169390109831762690050775281655160191522409269229488188332605602335712902992457087243788701870652860573421163296053959649850088647047967993529006092340875976821055788451711372661601589570282284702891075565715184555939716586945776478977961315045466986298952146141385502548006713170803575627496812822259294739299255212931159025940016675170208707539395612641895589155657940407743919363396165800844769317267681044286939403434349524008128256809940795591041936742181150147493678149822500348108808988253547379494505221297593066646252459711469502816919352015610763799477283499223666850360264837401483797357568368219134376239737052221058510748202665560620486428477055687150209684141050960812742776869256255734951000056793547291953622218888936602429039395622776455956548024376682864049294566250392619204565775067798161539547224379615920581093300501162725862746303548331558193932492952961045533969453911310229614353701577234817052667718877646980664583214056472171874383437847046124543530417594248844667547567328395443994871688372417854391626276708598887056591258428262805236373428593267905484638472222993206874603395914657039591996030375926800607761123098095084050853141569139269994490415176181417620672584745018463342218836529839041114303687903782814018981711401894916646441235630501401868103436675504369412147744917742696611344699155938660268464702695252796487397362775755026782178708866894876631914056173513890548984588008353757990543169171539927396008324640253769716775139304267582969849040331270325310217815465807842468564650486017939184054393928251802866780183032163550808760365993687793291795521665335333704308655418058172957226715928818435660820567035908607165478070990238287402675451318851531506543604020233933219551727810016044285387150623235506815104894401675309175927149864218781246531185146735825122674041998844234571716382494279129275609905073466272956947646791475062593282979233666810260859512278741381318318464973854660251249763705303618641019977034300702923289153555750854627909557802051187922335363228238835193005321240176046544891711967486987259313169357644752070161388669853229495729554650910161489029416897231402028779674760642594425481743348817989002047670808201073380411816840909453007344921752842900059799333876166014236027864787291451662381551203932628623789254872921202530446577038245143207228588483788881088101768720673831164310392744604568551347102517833777671358495380408721831135312143410086571431947297698134542336794870250633354291677687174929691970717803245276306824143070045576845046653962056726130011245363465577790160195616766092637793159596514115184194906053699345885144504568285389869896937814544482611317714958791763427320796371312552478601827765080749898411952584115265547244269300464866658955078553097811288534809480035849647808336936391042879638781715576746385472132692045369211531708420580177822526259039089262467582641444890865642179096349316737956083372005597532398486787991914860694767465077747385223015269695779122432779099841558604750469111490090021861621854648245617983200688670300131751514469480327928607021970437736792065681925737379632432873376149172557751574362786163507929423934918611455152395305169887791435039725274697982587966846737233483363686749479555559331522221994323407381368987271000359159695932201477428776613878070403279398928628051071786264294520918250725974323036078585284587730690473968046910766710969368633659044705145646180274223766718380534643350340004768329943128104895253826205711002949102063975193063748964780617095066987092100489677680893498026860653534000492017230949537909265719162930792361193839090073286338178156357803336832677508664080917854048629120412587202621978617060964521003782844558002294232382501563016866804080784766922388549085763174205705057917009807305629618784681777821550210155597752384367212401908935206130124029492371023207567241670979756709020167129804126958206903002261561182775162766875664497918021412565959686116963603314593984466087371559907633081551869907503884327798037902629798969496214403662174713587530865516930444551935310886516820006517584163950216903892250281377841056507938627177429759675931726741083009531991804818800262629332400503498922488653248215886878960926604440359153794536999029948194078319362886147018641667436690892813326928434129752309425777105912810249842743378085014584456880582278086767898295541276748797788159753816370560676343472573177441744699341540681273984413224540226240903608525773619787157565746105787903722738690820145978481877577456314350138059485580821019018107138039957685816564250031906632941220822235780118725725250538889552438894914952247666797645532344215785302845338324502561203339610762393655496452030016269237232911197137600403961020946657930100751169207477276285041416205999355198695823692087981330993458144963892790288528924321025155583701467727490379605396474098179584819951904558616118588483159086882377477304758500965111891548827748801665330001554942067465062984342517572656488617091416923179213184833862614144863115868631929238795350682631079211126422842893389511512699842475036895827079507164716423391457816697404352025555052332536769469302884891748908468484722903542982788114816300019359048173792946065301796889291304722055932613865691970554485851809549049060451561795783687939550847892257490749709663151896484556074851851367244013471671434714669760271741678272384432657269555195796124335340483166084069573317559142227821071664546844537749830055494290702098797174473659971340724925410817992856710239519193513946768005161881348975596992506775456101611340915545269184088819723023122601607644305913792007558035365654518653494927972653431237884189470106121942248764945024369618086088314975227404484564938970067740720973485770415281277470023807432158722599526381503006516224730690671573605810067015034671942254130610105579801039194750826924079542223454571918970148358784057237295171819306777207466046504974910002043838061508280451466970230873486663011532341500063777879223261900063583216999897993618970619481962340410525373414874117943639689933835213257019353738460846782470698419718040780369339637918558753162065281994558456145819000104726499435636045387146218884589943173477888628377029417942310275822998570543693586114934804294363796862100090833531138917820782925429942471589349059290688276362100954329623418527144828715064725758692894897800557667604478753393575978172522144255280585183154935834057417321472284434085354278854132814128600460269195585230444565833482657784953628740799911636535662136665244727090387303387787155748085359154707848982001549964768049573199810268749970882238769969227952780252077303299591442129553128074210555661329344286195223471984679732947847823360763304308691607104805893878443854090377567387344950709149019781633343933125429737266055446384314469304870441520174922662024178777103958613922573692959507941229378063597926789539236969549767391720398298714049778341913445353861107500953482305848036417782130589015322594402566440816726346674403007044797762136630409701117114246699703363416080102146725296037128721820191839427958417541068477150789494095095687901865606720804710915876220879560911571999884876048683265015564143216393064323008643363490356566890326174584696025450629999419194189804639095765860906873040490209883299715942455798808574110404791677031407163525217488099727519191814652836894257574407005530333285483810015868090953156971471502978982851601881800974140240915810429291068331886866849858318898330330457507362122474666320806262716828863306954602953608802316654940021856301399612613394492236808650673958860898318363581612270059686972067310660393941077612091341163813606666205996761577594722226977362673946589852362255639773222560995719749491994591522778894126198202211144487334905833216440233398761183521555704499086183346618792313039728425985477506496800035856632762716214724870675572888935752890880245060611549287764107258903494464072854457637680642236144422921545878225166199529568671702742233308166147870157312869389593091601413642201426991909344668234959571897850978694649855226189894868942196665884447120057057254098510949397602828725660925993942913837428971109572248798078892692000505358183034374922166208271300938350721893873880255889393399224437195462189662941014474318614954887289143421044663943946371667994268694902298753323471004960635186270507775569125418945487422258991127847552600370808450617358614401438599119126809168743897274084865749170666770244402300468554838936286965524623866918093238865230536690384720323416008951670542802765597249150351958758390047606726712817530130995239352908805873280905292382599742727889891860364674252366453346798026403845998422742796692953013428840385891821800388890165915672449582223314671494933518115961738074418387981364377183866663735702298132057388755218472746638274223297546476688112541424669643318221363705502953786420941382309610594277456901714126164993479172551023669725736805719607279993456229242919840172274197449549085526445688487506354390852839329468087975538026309486073235150038962798779199828383393116507907191129906089891896514745214360923207051186285954599095967237190021724501358343050274420000769683476614070137839936882305496029355360258636603876566404929898746841294226096665966217781079321635848321645023286921529254538828871906791977362346088609961118438872711358722655328574800121446865872429412672117259326984648256318561092329250270612545400561713593698263011677251731509643443705028120860306227164029820375983042693437848306051873041379192833589135919293061308163718004035714033553997338392414500666185657112017683096934072308403838206522219909174660092887715536944327510006419083770899836198642200813505078373590624141557593919686872334898010218025172819700426754674066188406065387592224415241921551383618797819830293889694830310317685514042536413117719726355980626397979321516504379304464225115882500551826219256438329766751035154163677994622026959445610192927906570237175523375922728163080789891268489841168684401040163398331885495690280878019009948951097371639465560246455534153995502793183270027750039799111907490488528114304274863256368988533684705638411079712324236528865590818948696332003112131145107384824937326018660286477303690873826172591628604715343530015948747345995925859635604373796284096330053549947181899634017948581836335576265042292473226591074063390615925853821461374932778662392863303870946094209033012437643543902866750685675190015793629998156627809912263040338618206277411555281512714657633983570108361505285741537541157762658437194334652083283645515076097731840664973107028904817541158711502950416783748104624183086734416017144037436441798308895515864982913972172830720770652585379344319111766262220878849935328901912059287307507889805321336320434278243167621914709430148872495726809077350691310927359228389840785257588683051164813442175444824012349934294544303248207658389551939215603912995646714476388075022368589866955308209913347653779811396291874877068685808480771437003264174704417605790828690694462616737227832277256237005982041495871166536164313826876887429685607868451654746656175703783404702919792002845486924987461481008035544973815659054102215787087502976202179521581115700597287006784193461575415425027034741462400276114549044468411782273834451218677185945152731151610051776301161518993394807455021262902159570843522535333919901966247863855897016243430139549085263154062093205355189325061411472725128472493853239239216246498263261663222848131666250570114488509843576256722868479946092388194939708582770574608302882962355700821408496712800516003577018042319922858091715706216982970307432165952809388081409863208474696036723293186052670446734935616526813504452857269377601201421329781431860827913661225992246014286814564437017335194161907512164868123242463387226602732735972085464570816376081771886249551523198107992081360186186911718284760029502317432613535717533589709087244303734156020545594769009423767724875941236837745531819403938411627577744383757799121549953617543601265821292139703027147834584039088363867422731879261786198762679404391697282990295897319059426375169739376643627785050099705203543703376613059179252245619935768936849458671623209431211464674174075047445611647937602059665312736164989412130086538577474631005402338411343002876945299638777083914463505321436543413878100589747721169582820611100073058538653101091872836217870184081947356661958048662012615076516987733021751182524698373347224063260734183901542426610166573164533979204099756914245633657008194433929143008465349634319512431070727701640167726067259955499016251948330252884368808937308831663417581024051669410570243895562021975821640660646354606379546505219133610912286787981206862186084197433442862980846062457139431071233765538042022382781658711346482036618621056781361374484322954995217861901494483411774888116230361539888337331526020627890071799716385514929415136006465294166130488619477160248628525315471403321911279323658604409009810729279961556826466199827334688654793802325864124936827462330407639031220548665688147018407665942467921328687079372522553886671638175489488340673304819664325556506454185380220684865388991830105754334944992697171198674508552925550108666530389318409755895941787516440221407155524218089992339184269451307402706427215453648394563809709725883360431414508113065814448356528326593014534633173820607159875494799852894792506488892979589379470063012041186225441122045722330905243272275647732841539400194254895961292706617355438683663767527378051172696259257112249725027768956450534325410536809347003697492052656893723770774295355197086829347315807297713832075728127744155006523571474571952672456738217284294403974689084643639462541192893369848623688547948253257636197493838348688005635904601001640364097656400765564235883598285708711296698590001937322525543307354946158337877516513208332834096219491068156476551386656937179865692787305863386033728090261172028431783748731249321706593024433324094745574021779914632581833935643970602680716263317529710983774370079144541421104938712718487771607930408315581733871595150492813581367919683269386116329828780328600024071859886253488507763264177704597645522191147614564523494969953774022923996345501453282692504209979526211021557455708289502845659122825649422880514694254411256289073889537045420505562051574761172776766251200155774955642023141227863193870559539705175096226017922911410515982782104842796729032993761152748013088252319851429651855406106568912523892245062045085014264154267511268170571367591016364088934952397191836127688207954375310334906727841084658261655111386461143624619406456502006237222661054563584528377174082788364782455866531737882351365861719888794154477592971648297394448932261865016274294413774511941007490388757717059491774771612750564605668477194732631955411392608365743877345442909437721050706050325248956410908604002623720359232191219851679848650055308218341547595408838487493025911336758170741161337837352613604699934456533481446917867959020098244192942145224771462161111655552463601593840488502677313055115373272052135150013040981375434934538782974622280272488098138573436295099692251995443004330439108407529812337975480444507407161178838233786259108103762183884946100524143942746873727015149829708772617302820238774120325273109505386796165619996881737975738734944151687233280419576593375988668586562271309103908970603190829681696363461489961493624835917146422765459129048968402927207315219290525095686729784340486453132307519709297066157381544143415123684844554701505169729139825348694020898302877094519118485415081058697934666521000353459965870440543776577590428588958371563788035669552373173081608420187060905184895378219559218364497220744355054948851630150208571647768868692897474781558245431608581846280207230911685048013237337785974075374522764004750503665202815800672894440014700393137481130091797125507078420799951016501949528038844999284774055058452139841556509076945401304387246542904487946707700843040772936416881277063196763373465882907260579713178670276960805206798726442845835475117193958368780755225894070543094807719321810000000352597426751202845293711175152041514244670997214614519002003616679189643423747550324705627561219451882285423829914128390479840955649532324232339238931617193385474966776015445021878678845381872762316397317617042629157678753610876042427868329659963755444043452347869967874639700439974311968154827263600627853969081611228802898313148401486007812518480376163401307238557413586069508010016489049419301777609278154662435715005895057687162928072702589192360627895032486444007558447823434649039537936982359416835491271313665684755480455596344618788247400302982403681160673983045161349124482481583468845137346396113392983513447318558291639628125589697623820350739012763169770874059790174052056996291640166981956940183033629774718050246626558674328861852369981718490096494586077837819717804122344039883909200551124112666726088884862166090475107670739932887675611129067476766305333272507690844167686836660213589537375179886646897034202647404367523910110124504375221971781589816608264586213119144652296514883125625536307439157944698310580136463661048037317033850632933603987215276930929423377720090594506418586418342339127211943033605025327533314235415004338180979160993057542049547123405936000628662501903411027365844071143760064219025330738258602013160014437051169057636733988081442620907391075519947911483167236268249884061734826443194685342944119501926093225251812936934380690003816127845631240986928012033357485429222188896491118193832878440013342180326374697193387586452588216874528300568103754823037924393017445126505100569354151504111530714712419131285384123643314099905400346507895288106369448983905222318822273757831924428786229535126150639342074754125729640305278776948684527409075989674396295754190442311275075434107531429346417778747758611703379907787948616386943390301097784279852587590557640140748151515491089993712188126355811231022297121681816058099462243916788511993415964984115720421449940196692681940547501669457707604424579918562685116143876102317506696300939183907463493707256231516959329209451057068950478506952036733855949270106150166503081040056267849041480871641986129847483454609489241613837850201394106288407271551157698166764306702712057626479446895269401410975459967245568984459480885437410265031805253279709889404092734026439909542653904659520428055230527599878842319288031247671919873619676913005128935129297848335140988394607491950156063151151628794273131869375937341027354612684956019192619789625740936061377546192187503932090846078128853052418309630062021058509246565348909468361257308956350277037200159154039615727283117750063619052401005601777105248682211742049162178283948921443107608757952187644672374368393859797165046394758982247876264175489746527434478788002621804891809244264972671018544006979722330771923373110093207850468401565017788459162835522534872923748371471258842595014587116167106357460037042758615194683449321472516706357555637849169252648483564697334227394045398289911523685140092095311138251401427271062227472673647382965548056036283599113638522020322273674686459265064684361152100702837473263053193781358802760132541965626638594170164316711539370305694248763212359839071644742776268792014928823539653215853859777122943569223028890099123691489479500934242384396875068956798190453059358424666084767199781931024439557566750102449895277689358148931395279053543472986731542375583085279955370510193447926874359178671617694570235446409528461994685491249152961239446067252316958001833265558085706168225553057654814769748661637327126122597603579520391455068784030000686098211153154552376854596668183046779295047174095175752249510497064810981729068756094384269201317407449727074887359016352935754920514428983053781047354600175720008537273740627794775131570213390531558806565286904279350145878154745060017959699898713680511352998601430950166395587138319289903372946817438054203667906875102003534215629630251989626943298010949253133572131446021471129622289213917895926852565263991620199934528991415207143516676824944877431343521619759457542936572099511375967099800878408191066719333690149122484607189925781660384574432329552178803546645358938238210360261997655118634264353237903215134647858726685348773817149087864545694055835436941544446153697533939494260213400662939154207799325058866207932045626564543615028129030683627025347014646839998241121620766603501706239214389637584623005562820489267071587127205293039384402187353127391040026940807864729112093363929523995722723111692453246465016962737777392189974335704211811942228543082626435746368556993443805269008947085436452787555272492109773772264809712523320300032264309281579040702390712122096900221156250945845697556582125003173137603983255023643615373502410874717762898574390773754193778157111302399142496282222112798929438238420472721064723689801855776713057655823905255764943116874221528662869685668187100186414431494621175885044497052837563487687413219822124877236350814027427681162864672024315047662424561886907556564724285717244948087657971288222791738020543876215596886240948315413918556561965299480996467004938476126525794094171643556866574084813113960815317396005248717034165442244187556048614355096723901594416261549334900907503931678586044815938430222919365556160296595425615305422711037363356987501150663152263347751920639387272296791491301650770439866305345174224237655438226471443681114928676256899669872502763424358403262592718395066606681176662500208182724667953986043053453250914722328111837533517580237467827927118096279828317586391923572730085109302524899774573524730353051134883288765780441761919630493171868295300125500474638322219359840466569463472380372396689653979942806657037991611532628935885480355570234734446739046174774451004110303144156610917510856217681083896756615726748308289128223019004443993719463730858799807923683396297152488743309956657919497346701541349190841210965521371101056976522212541067931691276827458390635675658925330804474680105179096739630064068166155757319927151155662168011597672640723080638537319363622658650468342332644231826300052877322693842516454813997051234985344848840441149686276716594775850508445983313798533787403652057082201447242050106051678767805358176739426809234348062696379190496171458531482508170466256316578769929210505975064986291792711370237017145425317476576153088761106261798714081187217387444577785130238918132486940489271530005728905291257588293388437117997827989782028149972579749904271721552338397291890904120047934162726210057288278059629782910991929343493094380032922050750405854777295784939432409469245656171633216787688788038171576507360993339106353793138201907451411745884189698222833303707714270295601564151286404534772441226534770299148858127498743405800132129741016755169350520976071590661629744342589538136469462133258896570603723647767185122929583714199743014359032208648175536899823458208424576279206002974108822645355638096919977744605427016151653244606551129544740797284565245621510437544293297975135086405678119656172007845538951982483608602957240827398705388251259934929165528390711451705674701519528072088117726903418120962981345260281385559435838559292875045095468944822579154884616605722075968919428083243883766416403904256440353817612746923517828034191737446278400125925556995043138071408125245091062191755384693093598000283967747313801653387312731179391928089875351645343978656377438612565762553994047744822775948269358593011692191913234971352005212548922518126665454078369730564755019088616965903530046012693163169703423734718923693997042735882859996684225336691779439609218775754467784402770809279577835277238470454257490027551219794994811128434302048059267269291150491180628953663978717906964603008075407156015996871946899487121087437848381362350644117417713687807100737571545357204520227642645461188014230581357846807700741233340299346883134976718965992640464098025339797512900827543529099379245360585402370333144650366327915531998402347680210525829343338640748561563114262887319990907965598469407882673013172989807793572353279175680253610912013683831340092955782031315469471373806997700715037465813930785358129483002661010087186744283904537222830731932192711203797146540098044223925381399298921559457567685597583410221019506817350684565218491134175957714927657474988566327039151960397188701616290084731458626160944394180885788275939635336021010972972592459140521514139631545446710884836252932326270745940113757775667787345931569712315268280751599585505801683014344840522411994199761325397518966498595520255446754767363956846905598681728573680426868504221654770875845792099464679371281100558099550502651709437896334925985584515167994460351526143892467723156498899882763443955787840829508339702694611505254333123274615210496065100582131464854840769626715615736455249177834230069028427456341122293516523988124161904235015287369425493957876694089929220098787458755029865086514223380433549329008478583485585517144307746723816894591802182905578609928762786454507771570381603054697323552778092056641622046446501775188230326907484972011227422810868288873506377473014449836903909491042531349610205079195106270726518892589473726916386202644057400363202553550269069413786628930950746539392651450862340277671268338647464329830123441876477740757575400122672448561979150464220582789464087404748486568018358387446167828681485735897929692010611280162756337886360858969166247878391073369002895259875690826140735562157949062833601830787950651702704241073293414750382433401230269613820401102868942462167785249102126679516585300318777869911019712170580350661837342544648866366087605418335254531567733769116098444780994083900420983900715910401763389181766341589518557573985047526526206702834210591213785306160844900798095051125010715766253520785066540657986085526557544126651834348773363042595133132933750327289629805022663417752285390119455701562121840853211620681933019932380313855983861610484421518538922883489940711844969039677776071725548036216633408454770383477245448410897793160818949915018921937174108571865111929980325194496861959483226389591118026042402013475966405692007072202826304769025254710918913865346256977917401482469450026340838129568978441859372223733308123101904632430665959095921955022029438083230435023564923345004991191015562380434468653029663231839982450392892227681818903365352069135202936199611291151935842527796519255037326825071046101344265168116677281289205493072050629876430518272680172841880971172406919576666930380244130289545144012946809794030915884623708269298184522358179755871446094385273008674347339285001170942851483415777773594292521752995010258126952640684827450110093145496264864091494903993285068309564637348331825745612324036055388757171348036091357931352397443251942792255053112696671212523303937814370546133152294076728671497889338327534394741049480043468609626718696679678807639804266219869545967136414564541434917186334473071984732805566840261475566774842741656004356602778982009389018381508651033629516970623787268331906663005671449051757313416412289459621275845026610393256358550156967941675529396004438075914938705676784290574080331418861548238308586605267852951023335785883287532972583506287752434274620775780152052931503561774406081691091285683601359797538638562083254622568346379121990038081836411496708600217826295614099484335614592686283541464530178346380636796537125892612910928067623384627422592092738205540440505849003899912850038073967912532560454630758516730825522597472448310752761982158363309096053736869618603378518300208993185539954866591015051640227124609560606598032103337166230585802143767611682129141140426569114601751305930518289241103707947125541247565930341451355735967670074485931978338563374897153771792241540214997836253017114030447759116358688550567836576052659943001256939000232086998713152604728365699023403379134708412990552149022290901978564866612053265748511597018595304312087785224655782761176298721490915817580063118497865521174015191970426142053943287504658451953260101445990457904842820290873159739942534350745238781764158772337461617076441104380463744036185800866731654184019372907848084514462091752615113976101743958262155353547519755239715811341152524659988790040845392795775726742017862404835675969762522530974944796205028392856758742382038180092279031953630466253637896583019494849302460425642674182761347839324385174247196430779921599531317160251425513694481172576374874893090469640560175789545909430688667442741885719408663177464440008053681255982287044308165424110812151325436784138514810789981993321523183248922305542799768527731628792226830284910829591825287602175024062897334345495825536113766807341613491194988747477346804605725481655795984245326182195563106307009233275246105965585945467026883091469026049977023441147720633967691377132316413316950194531727670740739145544022942232573018823811642690502343509428891030074007107611982808714659697630860685468514353415066125798900760348796086094620174757314564606428502427385631121266921605259302631051269730709506270739710989192222579494271932945900424021212445181928969011629487222159161442212778295264872255292777467651894837388076387890839182478120457529193426163652972846854114792400388061051755153132977642773304869655804130067849257271377432730246718269150113929612121394746293324854500898103619020187853718721945303751665149239693767552450576400264620380425252330582444004402420953141712642228047173230770064920676171408994551505793740220130121131891442798364382828920435379115388025490470252190118700533947078122788927887923790311419614306647800634753341144928821926291261377191927966612166157593705573270020434948580547547959351324979756347272179263870896235064393778780024570448105799561171063483004258594958028216907385689393148063455881899698211014279193070374460670727490319923978973376658639731373955218073238841087546150889931360320100585139069193072818480519894695123574848932801182282854003035073195491208924494509411708451225326486146103681283931779377089465904238472575764433582636589500897450821627881939442276273017395046856196151395946563936886913974150060048739914329950039734599930106183804671048842586185410064203673860189122049751556462208331815390790391029893792518139112777285773105029401951965392212519757126217141224785162441900656082084771270918035620252422881660194096470832770017067429408679144083808950031752932917277625358730749925420423645872849722510460736680462297951802331223821729589104373391879573416635789932168083099719486241566371742652666559850468510970874368012158789026183849989541238001742624575552020714758936954680574854856696983908986006767894472683168855301888837972328730473732272843791724459001109343901548979558197884613177761968785099620443462797636362170697688649769218535558221125625923071039511634219349426325303180637011748898889841407765717150827339926496101915658913065564600611671899098517605656953038529177459645837259580610160545366038229654842382433355379862542946243851675103585642582635034919383277561652737921617482605638386278493746490654945384420947521607172768766653146972063528289328499419021733799870713739876429763388093054514630572073396419175283670989142775009318403272543166967386361091320200238427430589697091154183979687597490134031502116369933661927488378361245026277909474136669826213644973471886168096855313911721360436722621477673558220618070721623230623446164545644511825268833790726718994995868060917226350877882681622465846502681605121877119497958591126763206064268672795943318046149803106339411590037350055292337050373289014597238890460385585179528049129147907044475795587034537965529507388366436340472095264961517285033699151883749525894118909326166283098705821582088885680578683008538832663962979055639421911949514857484731696054117480818743098639715345924733644010630895109035815598751096371577945542870629090333963084740952744927904942094318137178798656708728229129548328232526455753673272270397924988203589218298278580219410385539396591781140461758668289984775473764203003659312107758600195294007940795526195614949357006056743186101120603312876111691497259558902964220710934121831087474401613292036611651882731140598099126648813578444586669385091989103324683936827609277983874649065799659898839530327876301319800543306877747827668620226036949815164246894437490001909070203891639083174691480692622263540836378178843928238090303696388539964833733173348469055025067595710733320399597058428256265210726723216889125358095385521907084126843868897073269069811630209237465376272330560807498290613975364136643743402762227675985006807153358260545933334657781219565788273700386276577602791600992550897566493254517541886929782023883150574583008438694246233447782820840214721086851181844490675339894934959660173037293108948845411001260995405514461012935551312900241594595280468595026161623184872335862829913634842197360401285651914301213667811697746560008895016506266776766047389847164515983742347199332569487073031345262705308911767899220682735662317571100505356762810577517287515974779338451329712170478866070967906513958317590528190354508922957857789251627129407991802053929413876301989450354075980067147065968124900928592340083628956599656086736715145942887009863148517482917016866910999704138061208641502186128171668436197071537535091009797437531403650309797841560518407872103823775004140126386621642640723020962925823885113131020704468765212087415795926150586628083818703581524629263869329269660212009729953101652620031924923482607584555665429813546480607216390563928974341892193594492985585623804679711804408133976124083878174764349052442050472331938961748853212918752733951176789203626335394991614965413019763088212926571849536615778301479313997385103290760326096349984792155023908749815313583081996829988026382732554810042418826528521634793093421007497787336758790119565078500610005759101253546437522629551600336610771607055647682181065085482377871166118127230010137223617521990859271173094126774654753024813484998575498883866737873968805343308589529183664441254380466496323954992594504684853362983670429123758724888705321219050394062627328442058855173118541270611834990672816321606127621082901312400610651300617194485165413536308147316516027347075426266741517342325479708278491175453309355421040331458055211364445835433258013950546325292770293601009659897292717299289371612218662386653590697669159003455195178559351181822511940565905539561606527843397513062852396320236204460299654063118421527494200602468546485373480111504657839521696228849537253864000236592974360024860054059566435513866608159677507242907738721239152015532863561745085671735258619968588216723784814353931294432027612503879168790417569534403901152853467763357921555763371596086061276873630878204610624985987053456184971969215912250186703736580852475665137586156858129757717951821932170822949068947028642670407878631789030463244200491282222175175341083705576532902255214444710336517006522676652794179477510237749411011923603096634439513910145612388340608088278581080659604829002767053836071462880743087181766926592857349339782224358866456896430166326214102582827552687274176296680287277234441716308442999757719389060037438400014740846654216684736060627493689153935903523883003077509956876369574209631643654928421871679631421978943494988599311529241717687773056878594728270385104264148919309913660206678108228163683078778223383844337929127379742430815085921281925249687541042192408204985303497733036824228066197968876248825934541080758745197689149387138830316167020909982179154011516873722839369609849284283955775337837361542097445929067954390251545765931264039180939575391756616257712984602447122582395505959801136160143411697968320222638415409285029754762230715112150702841493088043319768951617564408601317456630564811193216786529037878922772486637353189253827363180816739802495709689293365795284813306476889961539738182621018730242273174726929642059390587716910470089606505809853097390016079268241805033711018520372339020327189889309111125669192971352627882001319324171190246617958825133829026349496720248115866638028038692770795607210352238434469321826078551516270822807882258915364956474372275185436854718869136150536494065684571294410382951901127727166445096979127314330734564541431459454880035908962441476539416255959252745094880207741962065171687907409932407905751252880806669916685300962710272562845661009880400331547305079184944089244245739075665025667331423960423653802511555775098303313872023017535109734144476966769441255402183153254822266870586277478240906095516844018774610238694197624602589902661763557837611698213866313206176466577534415718891111807409193761073597716080305384467719242211231475397825457189374458257204771064495355579427438762994137557419511436320579153779101057657027274315319978138288663767116183375679455431778357100502817145448328537559309092760232022388526369145757895063335399440202980500243081454802534949510900351518278168946608260529157196610796423508173756236053543253464046279393168659572449807311300072688916085158893257612271102071236030012104310225415866912670255152905775034939888922119098147013248716840677796354518500215469910261219398055016867244149531815885359536596410397906069141251492645916733075047653554130202308378374087322506248465152734015106714109558556966167949910576765317856415316532736858987196255175647153191261399187559204193479781244208415004849064336372797005392098149319049061436245008233911067528547156470095326440093483368847465763660729255999796305357585381735705951096331316976022076065621835353115924297794944518046800301892681707893336704603995104736724635896180190533660220548041866271503388096837267055981210478971466027451392124049671591207783607356064803483382143947405793856357331775004053548963862298082440368409986131010103704276776255747953271062726071385802979692482248518063854191675344702366930331297766483246691204333069060336798292138492429846529963990957851541306524084906105513187989264281902237407729010074170262828249997617151651986577646960008127960438542413058372449274812971822007307015760002215771292273337810078451180435452306736561278484145380521173991739893483755432592065934428650862120504139513500390477038525643904796445287767957130794728662078739340274158488809350302016688840511760058563665053240605368678867687576806518949837342776550572671883672205187641681869983664519686535661219076668891942987253386519893103518381342442088977804949058837948526781753447364302962081362211794228705408921528523110096771007193504353992506398533094909912347198369522880848424606287861890259783597116456255805863734101390946218055701276528446883127926601728253271268895982211298142789484626656233198739092421791754595534693612499998418048965153769928014713920002925407303739747014082857561203683436699945366315838241279575319093983432693027510318574986357080663355678335873729868183519491586117428212959477067452232653969294561493192350803410049032573576433132491369536334595512086410022764398427050291977192880896915350630616949740950908479272572409460129336202986597745027632968919679176272909452534741874275362622000702905078203241170202164436234683413554164954052365295982343482939255820325462898767135990017186307887131873392475886375575083768110652998650973652723104645274145714593465801917119204815747281878406159073123024640839296487762700793314287549705102162276483495437445121072179035653059683679172544213957481562227178887595379375802873050049898813027726723811313848857787236333945122044502511672683373031069190452053837907112680955660344042900490901949617208753863216940914072019114585388304520281159097495667982074057102084876192873817850089288653022044220284212834582873596533857967894916482487341404485195043221833014590485418707296214458787181572163646819214827695228368723754431116695032794867121270052084012707616648779111227932515350224713855347488048517536582137029420992784117669322252401406895601143974485177948928573310395207011630622888694707913627393932085504414081125323025307389657597197775528220437994029348746038969559318555001639513397345983832752401679476297736651029237128571813500120535403873670326421917254909837180048095669734673534848047097634590339569188505555295244098242877042948073890780607419264994869450951888601055600128504251605632197263420618162010257771446816448421941574629641086615481411841139943113714446369099891295798528866761959279290268095505796927066203524436484856987041182708634829653430419715308232952501983566782849462330150507373934713765393958022880822539336410744121377686286763454995889812931709589256097036582818932985120105232472704754128066418307072324024598347816124915497844174605764524846491781003794369876937606684892215264287484807333945498981909436943480611503292977742740306312063857043727822183513996389396000626480155808779917474527635240108685528468619646399955282389865764577392227323017271746104950395091786761069359952080814990089898995832142899929237208460598052986506968333648454621694979101610403441576723832522696013148013364559934451526569782821974568346217600414376382379205183531762983604787254019976667413799633237588450590564444050188167680626119025992415651152003641071374080279904907142517378451582927297438981081675975823973164896589937047071624211480112329021010252047283139911058503013825196404789586670242710390545497043145325734656100094853409969346251077192806787184779368871917324425077298734104752992596296407082670561891777160497761274336015457916342905017423077807663981995013719066915672213729964698013176020497123774222197377635382333556410842115445507278432551762462931066586341401615076404616355536588612796459061099222711733572409983964764885576577899509487614590648257377418780796972762212934002956113767526428902638710285253319725097646517952877287253188605179925496799064226984726421375261912767443734699580620550087301610007937204477968442053114600342025986898619491457306419088714969584140306256024263204623176011270731292161560856410635051962802033912727155509664478656663333548088661614797617141878536253129559086858764309326396786773159844040826595209789880392450141098440374200918703341280954148856966986072239719714671992047800760032658468114115350438601708918731325999764911252452338918188800814758768147573730441125112361496097621461868426651184369190998466884526756140574841640828673072130597327149998292032920085769424733455914834848488732571905453773429642683151742731466666009291077407843174123224408940586818462746498177173465656871719903670317151484078368070104502632719081134277864568992344406525573906509317003438026504696652597603061408409588106649015735194776698688928061277696404637844999331556451265360632676915942019514059312796963307496485119069849259227374379347344428730275964087907570786700003568559304575081352940581752529914091607204050737110454331632490686086875128031917581783818343532375597169746560288251354882344711872420485176038236687428159976512018908108687130326992317895611733223703984808641223562881843680527523596949778795819782516055419785304625902988794915934092324077330110047424183842703009361582998258350724183028286856044330102823534738897112028301829345762615533400437016922328581148148827481124404879910896657599443522308527075558126878802558550680588451943444354790637813126035028043261993667019375672185512106705583214225536330005950012937410892531943136928311777893862424786808541123621831151123496314007126846993522425275658753431928308259192597062657432963824253133347697698125774383550590770460820174435647505681441621747185659465243340989007853747022200923304605707588764610846585617906825335855226766113853323343402385033356567755841240226780747300536571687130336128358664186351370263268118947519176984021202512612745506026278688517016996052076171784516271287007208396741054128734023305050473879936286981816686829106291726054914821466918208452088876953044804971645319991328155419482001630827516422740110699561698746495308395538013509220380637059393430989001821152612174442981545561749223213471128902666442746840116662319647103701790950960045272990050915318233845283900465028602213032256277915842343798649044443536306943876706030617986688815336683196308983237879394933901307963724204657630333549827556240407349883929050408514722866639055024903256469156189276889657911267770478731224220735827178684100599014153760578865477890529972554151127743154475395824528878678796617981367585377262701029010541792724781658134269524959111505452075220664699117618121872647210196231421026474806402423877662978454503659149863945720094966977819245218201994731874167841717315949878080138986817745770534678322384052845952644663047772444487968227413527123748202185558491323766413139628700630001687734807711454780007093687981851242218167607858772262219646617550276612048393338059784047181988086835557092706993970401465010919865512890390558109501490158882716829272007553507944554414607200951655225755677888868721482659031134288090750182855519959628169250279121286535865164571959378395408511765040969908839943611459864534657239059982283058354810199025238116801208406105557587420312159681572730769625003989744369762273776768483377827319928011245808369164779066751757133571295661943966326298739528349016525403294691138300057012817111246397064012287081811659160401002927273071270197021434506199955732186917191464135005342994586131939276455335615953075852665304512278278979356516755295922674345545704036086694149652209234448716202632360605636237993566669379574353415903791969435067258197460502325229938864779185000480065585816527142198261890564207909664972510850231176313090626385814166453786620279423865921141074507818229425981303800270649531100258867785048457144350724130859345072761324832349422066427776469095270555499971569499229051617850175848235781115528124345214615047269125742350415234022240642591917546299175465689977150333861466498301748046181361355005754148700817876348700234257671272191712535806500953706024723742776358985311317701731920006902993351770098761521238552099418642098227386137446857236030977962258790324569616248971782924579328793371239398943883458189793293268234237563874624067328614520675266657435864456239049179160882228396086571412799804400932563658240958708055461624151820207933350083676620605525084949038727682727159451287666574494867493393247727903617398360836281123062096946792722982409277214172653024976577276431212054525915967072388534508096645342493430276172882239304099473591737950568617827918907329692823689942341536725804727991905194312727101588300610778986890875419898846393206900447691721884157879631682816156641301021049473480797107113233887187941800107557824416005305612701353438678677836820635040832858474239313721578928325134568358333644433701962240267214321558919075071929817247137603300760446182237207493454888744219351225136935558213543481013018749378090498140266964796382183542613054263504641277862218870915457687004326798606209897591643623208630471677147655830581145349393263345666954179722476312173891614195083942444857487645666300056260538897171933233120137850828961550661687185871403061780612674154183687376725146061362831138583922276002694753253739649547658273894306985632608503282215311029251999933436889071433916682589443235198677281395796376840089376824277241250206047515556242922499584226957180511566958365444080094472741385496420581210960213405905726115164127720440215174603525210459120382728186780611230876308713919251165373159565546456948646226160054258794820256160964016101306100776000144769353341944366690215795848858931165165250830850828459884476724382077464646476032528607559102764658853414739333119912735280535336343848509417567329859888696294716512899548062818748964523280769787331056273092574255520039299925817370147303125526515071011060410086131224965114414477771579710033150990711026557481504386101856752089199202029733060245297159070924093742616971311212342094461045432264649512668139569381560982459668443514172714975215060964205729053879465230056192276402258071651560791478272728023240578857515013835222364082090033089653942339702446769314191296758599324589355960884178643989546342706571842820812597965685775738369444331700178732415210420637110772429908692761523625510996630509805876796181949120868046233938920799856656382335530556363799241808748847813816912603900098979771010373309759550340350416573987756075242693007023611880616360539093002599866984760308884036357791160586650571790855300584757402208711392300905069736165768417093679126693612435263400060527212297384691717580203683125856658225900429186164273545676563442040090477387946406512598593391145052368072734076609246874902734300882003452629625278746708756406328301850993923849885757110509339611500005961405636094131270500662763454597003100928064443241931791794298178909687083647456227423230626565513793701671344321549124265564266516033585405556954990863179186839545034050490263514202089723763791279107967994106350766464010029500331448942380109795130350971638733344902610021981271433791979664355726943027248478404233732822612241385237336993580902960278529911749002676597979721275352184090267909264691413100739422476500887354100291810153743360314636699398720028685499042405135876742932064993565989614866138898192318376741975917210362640896308647132960714206634673594868230228839352101717128141678672169971707968826966366235079524411234315765557688083364201702416086127450807922006647661517147463958947795139313014867597370557163122654289375659034259863498400308686146720819239551554184932298704027568044509199685251207392656962425825171715775371636698537701840739041642095557680482416502258943994094720296896237102030248509955237439239310324749885133075990627932371204603405306402964325053636477727509436013747695778838687126577574384765713570054676043052575787976455065036813019161880692219380101972665014298805855386663205050308438236530131456915483349939902642100714501312947909964374542145185475449538744422796394305824483446564307705373863460737308340412232826891991848642617897691759908316101419173552164488595916269443915502203401217895977743796352658616271021248125007826538327330690143894942498398844501517145665805754025810566670206849677964209279839656935081192506500803690706960248731684427363508612466083311836977260634791236425978164938633220966990789420472829143295927903239796324217604966009015271758354607327384323033897937282887087750058343631954311059242149415639306330554583415317427522476580881131076565591652877810580012069645883235215834141821099418432177299995368980190906388941174321175857791276396857114881845431876494812157386230051279340029532876915004013940463117788532126802950639437374230784387665295008725439948634284215184746606239683367784812258179682584635029949357270696445690132451882067413941031562551883054807080419730803243812679428258987522169232389547114592173132621970584965755161413483003340255744400265620930434826531089350999296324674847736994495286448008479291229539447713110328954147566533285151117998532145950728069861736122726366480839852230882807862189705724282314198860302220844595496127759511724195437644299155489680971410943331753975863934390653615626222323023113895255189665905411779153425056837739145983793394025286012406272118398489177414173541008544743612690335434852024211759336813529670585599277091017338325596845747237141161437594687843009186382979835825732834383548571728335934127499479875819696724492439468432277727099588712657072255251130190806813421040168354394842976965027131878846790345723950171605700626650225249785196309250385879920634037130069843943744774685175614561334721127614845329397031598378418880615366104462757058387966503216185017720986767831160347174768127834823628514754463819774557959398415840056460654971116218012979565488701235311023713439820894065208355276992457107447353999350669704048859881811561815696285471321933500228287683447498803982596404379584775794466877566716957296870785062821542657211570642076400376589407939351374219351624493397899792375973841580076554242526002779810896112652309122905730581167006882625473486495889110303880632796712742116835882853062947860593505462770284847559263554085425294085029321117189926026166210280517856746627144563818664080370852605639344776213475388719672062514286518563331506012668582870601860021090928760018390035484323552370516877930148784189884779075505309491691020274825832271531841335039361945363892995823822328697776623612079861733785287407691149458433387462893273562903177180435969939616829407446682097389012335161069271339508073549062709048243902214608097474774889541182117365377350607397841802314665184319810918802885136497527070011259021357966511444944083163145039342513863242480040460109840100378339144058901000192370421093370716636702246493714795142488611598848261143328940416581051420429108144333322437689936396903659650552386057411674385975447345633576710550125002364431605310414880649575794672142427070551212104139205399645884483878211233749774838164017301170484767922521469269972201016183703564445312028299271111197804673057861398903157184677392008654830788946891999046205188681349059286909488612563883435191341200934467175517864410882096153935222897746139144047569736682485954933059821116738509365737717619246832800938262663594356588271235956840770747537480690696534899200331138769078368920746568764276828589222229003170287813799485688024136197015109820696213877900787496169632008443807361619872196545015197497725096245820247445065686507343786378683458523018104129408691447700805199692691386113726616738435137165854145643750033584591681943653396250915933433662791950137885793175699784129428669486568984771691741286161416192532992972426431086906219228780953772869969462188175362099429172383445235960436530394227178395250368748418978729009638644100125442771266800065994816361881874080642537537529193446419982005293086248238162867893560031766160718281963809796301986246048193294459268674047099454183097250173695467439590865519348485201060377070020598563938812727516469212462644754124860322720450964002428924623221459007465733089791645707073186978760007198134227177944695736695374838986342286000471471557923659845509874880371144749467248517009242474161187194821159498274996383654943723427822059910665033920885408416103784320175121261333370568016314210836657426149885569069247585025558382087509917944493769567920718088642686349606411496698732053197876552563224639540648752836658857232652121510243968591965978766204719685447803329877955025090766977468672240927189258611841373574134637480719035531644281989447965193325983367218056469137696231010822190745481175222593667873534242507683352643967585791042826431228286777386751899747455217480783902790563090341374947069469920391884891578245838966073751584521144260232910650403647728130688268307828227794437090526391125791502200010206333324739491041234909479543701511728383379396650434536550125058926140957326604392133664633899951701082436807395094534854834601800547703730401616525313085813942787813826969640159983930631156044856724564523330843035663934390771590398670149937252590408227503591876188586210466130934721367941685814657064465314546295040513721959423912903400274965581544379510094668136061839054042721860271491217329729194112725457928393482357128414255300580560406829990953606078753563995386467396512907849533699439110769847348533793370478589606420525428606696016776833129271586311388847040626690971933700036774040067936536348888340583907526916377948645625624518412404351211663220107079396199588714344270162532539116347510718357470210902737097547920390463387182317127617996399188136806645529391707652817504515495022808707253978958117967817615570053670461338926006995353858927427005805845213000908008584213978031562053910049174966949519386934138106843514065086955607632224827466343695114240408851230933685230640033105537961005256161140834447124715770522658971861848664981112466973736946718612413738249344194236637007692866479956178584601090207256118609806707777286138921274138399304608418333402009366207972806602899426810569226021233489487641403724984904742860088861996156807818775942915922518399121096780707507137681305548455270495878696638911527466881954890209383589298039930177525436328825411478871418722222506564177311514111559641397628894404304922466349554558819586143664080489799543182883138975726510364576188843438138314644646254362555093047951354556186952178252793081898111660124130051329470071222339680641835162426857292331774169609117416372796640116949530053863985423682663936285534086674167397197054253466403264517034087314495515510981520638620840782796309445765206116327652126210973390480901399063116758288452189784919557903768924296738150690438332018421715742524694439026182587024094738078195104655311547385502777425629371652173467290544406640056026460229383463449844785387461338533155009362891159707553734133785065539577099648762799547857400536335514644267416263156557343323781176168175597549569893205145318106239959505057816623214590803837891941978771652511180077603010797907819962044198034011602331964300892639558863503097176042776737258433797380633870958731414538542731904604966345197866684130532038295162547501262280626734819269914925593704735548442910284845946031858641983659345584495970005588923350850930350000557352581187795957228984640981424827779600623030312735293479727296110776351025214776028810003567214323153225787901755469592483444019479565869726410181128493898124329945668116355057439103535529343542457497284773966528836669621610108109602604324267979983361324552748212450035733075685366388551851568633774430218042720177755593165455796972414292806993050562412397685688856553093580148932785521801243960256597738341807419554620590758220701034381680225059360814686098306074291111690548289835336252195670023519267212911252056236220048793053641595814695607181751967829226602492953144820474668160829831172547125532084106928676635750547690452682940881481336330483400087787560973613377315006073233897108304785501448039970237896643358480409397672339792304402244318766931726539364673952904060104945291842143087430026213177126212045288427095080091458230464490186512650101629902525620855473686414241916868391353271775187715932474701509314738254659733724950072452559683019549825859134485860294141842361821757561899764195847366750725194054273439630556453442608265570845320320548294248181667105610128904309016053769186098845016536570607541211389092668553650601279771619227116149033534939140288498937726052554995086839867479764308409489076681401371354727292210578155026344273332949559578834163109000702354601563745343174419803404878853266128472668002386422292536261916048830151691275695480217760061566926786228345496214720863264517860688204896566091036996363923892394706663120751827899751406382964057327171327853665386664194164902874463737586708703055798655336286381304731553628321285744957841883040670503784791693684060105920185936174418327313052080843227832647147878378564089196618812341043435576746822886047351965654195361119150880005760044960935803485804886718033880669771833637016062279854538612978464925121884399401866016736297443434303122859173598509639270659379680600542766043355375206632227624215916236003205199416577741225763406105976226279510384262201251780198095138526304094451809581157733233750093921327076324031410306293629721463473759535361289828900572666261043347530755497347917821466313849496166527255939269818710002688710587812360912069202119460144181857026558205984607992536635770994093667949170060600809118387066148948042359888955309255935308870460106169241552954209056574900293810588284716751984325971465615836852373587145856018720617779424283960967743073186591576913846276250227243458448310099849818482352525567116861100781547349808021362030011141506449430054897840443089941686714935305029453492607486307209521126482861275562496605511619125201068120366382781520867388778531228679863837782098942836739352286618535280674888015187854400067841488820937969526812211676304955549291161351046262581927440490156273768221052644660993742180967626049925404756536497137801996506995525355150839113530806076975253134043436757443598391119155659924966945401806962559295130064580654843003824343147395354399772872564895376712589205130285041044659615658623522378439706248570523480353053872304400094625833344346113836185447630488285614465208211754798767120022105378819331827889192983542952346661622355543060905932656535983417413429448808290472730242652734429713252866663994543082025582200753057347756464585457627333436786279400277173605355816439229257353781227568334614973070027851249722705000521037760959940423000612149002317819667627492092055929570093417442759392375219075599368274182618068891686771301671994325734977941951249208001094931702672356350124173732269017362278992732329016556679335945146380286482104300747093189017697820755836303674652786248183902206580550294405276494194568636096238443104801411911377874814505032743561824831995163824996494824036555540135807401681623142716363509480269454051211974402346689786081093154838089686540359476899760169490240918707066205841962769959130760312908195576068879271417289808044616124356710897357459838131764167070281961162764211166746489224025951154367550671234040615798659694595722169052125092676173111051230671887836427357326717793434229339639034011390175202698332495678913183080993205311012459309149102905111049365694970408053588029520350375251246477513060563522795623639876283682520956018772891692103699241507541998498043830867723965205688132979529119537686366026033026628703391990496515545071161486028493433895158736212598710446541261965461673113307485821735176105413707926990158612426965686090834366065635761031732776286011469066385579170909610710438284873527787737172886910299548890595979648974174936611165691656585613472829949417964325565892633069323157481555702511473516638877565089427477739867307956378617532849647089718680658813863059060658640887387280565087906658958819529983279907497366356303769752750239526338284942362113792497328187756901259638196812810251642602754141375718814166479975304877287445159415484501526214334524968817924643880691644179820753169021653389347894887263027091639893333672839376773859549106671878227281423427177370717765552685585855557236989196428789862053731618813360959530439210252573747820888581322110752649951624848911528550908734370923384265473979743768288730416655059625492793015515635822473018073232594503476865967254803270773681830449295603510372306164639740799137729424424510512978307083422662620752755897833101951252137800994300888594754446779248867204299548937398001795649293317170076410046313929699844727524544592756785593590100771579897523552628300829178669547666974803559833762314085014058357487126081293434026629332984595765904215975894409718242298522535825099728130914741741918382478166583604930251666717490036758860922650061849381638687509162858999075789596046704024281575015968860162414794048103489586968389318761395315411663106276928602858803141944368591528732093822408869216919502086788554616269328433163013218895574140524184562552737498247219033771750183189052665685292674943099563975777701493864414183084680862969547332284996741382711207108063376894043082743633559893231959691031696963473462040731692239069340811803613175230283418786555754070829896985585952667644113572791784638777978102342433056285854011822345020797697978953682731370514145061815602397085791471760615159556147464068852498719953170945957951052008514359682194030525819393605044724804901141717771202938216806816614362710413638639267620355333728693428885715951908147918942951020126630131527090630465159296683265677978488995839511568495917536052374630587355854992116488022298195271660276943533973448092781544228054723620984368339597213358199833817965866699906194103750882916092797578622517270833781877488190119779986294093929754610721821044098308657514047080092303168311835710967259881708565746413849866762500183907305912438569727841186078276012334539193507095374972770860111941143696938867029696273021273772926244923532046726259700700846611651520314238645015721659771931947693536084621358493509150924753242517740708105383860336413614953029541316986082115564853440234419198427992140404097935151096752026756878672650274400018209788922293805941490945278406651414031157006039269666463575317798175031846972581201600680203322497297746050069449146361091681442508188008456687071238160855553049518513247164671411000843023964266306614798986504113416201367235366161482720963596514184054429906184471005856166621258053579681560440847521829825089409352958024373010491345734970937932934418885308389658406059416170096669201656661607291577936862469265166046077238578870325237751421735014688644335640651771147670983257239204244062325749167671943715744788393014215927149661435327945846617050780323242550107813637586094292719629582503352581158894005858400671131510019697671074211245909480174516091742975511895574507108582572521919120981290911977386691629648274715493203690073003441193376373731592300484719946748555829376648461650786174122851187716723381555211453076868652658173892164653098593240475663514944194059446002571507931384804100820441465886250421349061685625490955844753312626714373128132555843809972831895174335650268748338977911130798606625453725729554567440241944730605973304555612220274609223016072354361895276753700942529642304860523468340482664567100569845221473179023825401701740048903259373961927450810365947528900306669786371664970166536776362055860468765161420428195231694487130691575695738721394594985172492275053312050144906459369015534778285822582994966957880695946873728781304735057122744989158820645589358617300105068158759088068948761459141643532010726502565604947593075794903821538404974615941436854975546300012178749862599768149581313662609072778574050791912665744438995581723484885669745949514922962857532818201193569838417773255078240407711689392395333764795313251283977792160327861090905997641357175552622651338010626518908205796595989605163451201148012444768373960808183655839699517799390387664686843966306907715333215139416223628508258823376661129103777564743960311660413046872119294780922910308575863151273348007407855729192792454132380497631581791032762921546858723798135947077914931218147392594206437606674216337905922445800304358212424142041286326291347653880568495766808970677586356224482380465037377181802454096301681835224459997968796064305108674180641969497876749234367339226113563362268730019855947674272922199135330652268400878056781139977092441361473532962195612895725875954912811571450505480319872989250602415766275194553921042536138484710687497781380730827217037917348883349945554826227727168501405507112347190836407950579068413654702147605902661517147287263945679478575485415180113224338040839210621631054569482941288949969453733115885975659950009572696415469281888187031407818805519405641032979217522463653935723595704351097363014123540874900780667735197528732753765906259197974876151308124375015231280623419431215006070303641201309103373490354632673162230444000273501045501582436100585423213940430126239958907275208867480854483882549396016702321717434087855504702157462235855823734044836336826535009072887435144836126611012324016203462154999249508319088400865979142523021411313772237530943910566321229371643453707040153597717555426032646091326479915827313127661973241711103056187605595337017845408647945209079541579939427406953586270868648472619562667166658373475047157085762131180438829164644410007962535914205901444320500811256484073720431765159557599221593917552127876090663431131016742037596434413996685913370544248222671859980033309164490104590591853697926306357508581251177382602930249653369289729985376658005147442252658837903423885393814145863395951455329286651984342622375086555649023135062947099211383149022750624352980535758709274080015691794069487994299177253934770160474821709370132321334722695452931152958092711082942924333600461122462836549823655208764983473357003913350450520232043721509671870611598471462945086433134028932600800178058531272672049555970282205929819042373750570727397374956882854930346827210650686337561728675402887625626406238633761621063437834112730048154612504079033033662194311395710042424670480986653986991020015310741531390147212510434955956136037187004807956400061441713368094285208225605237680535168445109611406328977171279580107024906202816487331432249152187575326079627521409491084046150146119239519833965279657842251536066747709871729364612461272727022401420239747012360101548255334412843289755104511989218095799572210556567337605367953184252138397137212654091392714732659919442681713243341169549086443705437092726489171912025376718011422982224899809443244300777297000181626502003153428761099184894712282086430635184888919444011136665105427906514083494521311300400830180808406408910973644183553664532212037728771696321414305975426223256918050864026074176124209914730189028930835648253199478939832472130289360737970127579845755263392601473396286777632307808271157431255518145963807959752869791709704800864288921780842830855451804747127676500917552963492688841725351165054788336222310859123311389359912132506019702550817933709717998066532381466293335677994672272765311722275255297493150991930081403131815057582550152349938877963931030899404932065719939769996397410772458763624292573249698597393141510581701537208283241187263025107836318248993791233489439101342225497105711819000456046481056714071848620868289190776757485291741812727078909770207462447198389588021241010092178970822679658563058202673457721868126203582303258285005813281491801636352996253270141718436859816181588540685661282697682847000878454757170240410931554919965809193279547666768836238547763177716217842738167712077603092057185335369031828774969399716166360936175333995573018228871388751182249874757296413777275868527588269359855094356014617884805438743928975979852880557489543784684743441916324845279669509902276149114966581981656538266717434826470545491604644441143405057293778513473864897011070665751027117562571672393557443262256591906710914073011413591755529346947316199182717779491248284480912486543584917682789156364682449861606316103160894878500161004688908030139880494962128165877968591210747934840029525291371381288082298946229502647236036688260954948064971089901501137932141346615092980577982460918430204386258435476440070645619980971324314743648883041240289876945571129748386829732697586375985766105253203142999554438074169213266694501922051143673184789340951768678423799479439199722187464783932710478484532168013435646816318925706493277259591906225198499930327271317403849296489285085680588262083988392175543278490335053671136191303988398474593223938983320996533169450197488296224385646351099345081775715005975498213229678055274414674091850509713208425827769777443215822772047267048165169792976007349084016510620851108479011097595628449286347726852246065198686988318407293422136669805377346076761938957522690720815779242991666704918153734657057040340166245762630007233819632058400597859345467358485235509853877539440207497452633253529823161271789748437306560392771754845207115560754178128659917957093904853002480185769790295184815458243305035512521921491274927037832966410740122422707387255115613030538209707576073482382788840663768689431660566164381968414312221106051931566927743462270588695050102536623623545266703683273836837002528210085774995342006561674718083853890989396633925704353766093540049186539540700925913146150983217418297059171770088751734128544731673544137999367194526621441241951639715661346375342099423134217753726960690793712149546757532409720379625802953495412320920308133945526549180661784613677472643107175265412276644995328644506078948755722138844060523526769491986036440546589748947605314721163809290371641721880411769511359338165570369457040785847105425037617578431908412474611024721206984824647124268179216214178893832071337792195075994780061718508645748390684427111395258616470503977323496024242805507879876357998556684884104316490061380851228590309278580112843015580823893265301982597990268272377431229191282095700924819572186111005160987609194777996252265699763431848609816902960568543046778632040926507691760015335879887975459695871672049276558224674604695232951712179090702462129435626545222708555542473556191416142410980443591295712812273726155504475644923622736259941547558532854984280248455128779493924777229855644871246381880408328845917655070164818561465117128715951734067275181307815110352237528086960644229030940765272725417024895809815469817992945416748182817326968415420717994541633675625927880827365922933215874745040179741359515513390983077222544699663755665617518260962152778972784263629342025562147570593937792321585415514112575763481751240739658617460227088419689522929573033255785462396819830768775547013038978405877812996634306416374483187852916850574592679041999721003034338699252053407323704527622330654360046511391572862984622085882505356995412264693476236691086817450948759307455023087098337796010539589785837586887065965858823211088027273835309924877837946966028904228405242528573423402809316886963034625758924736983363080905513014693897370594666113264454456525582464321311000619194225913129135670852212927360046955352233591718880725176283467068797346819429602580615572537705272076672132195458278283017663294798285032680993828387785273571974370376797404568583818625487089023840510967648748437187667510484898258510662672633001288161826615228971838727339588556469072852106979675811746583247477068966780551711556948161278719769845022991537064147685546723399278805967948648856895306922736594649870800293986243497760284443228659585101629734359573217568155715998189488753691917166351352920451951253582301349924145614540081669801512931434395272509304403860254805582447052471849058764696907172895865093364349834597668427071282623077441261839631109705998948882144056554804683600666432977736209887990063240719216036213079927439156879325064599941325005375020589643315927172306140108833286531981351956225843468230554192038594405765081841068487412955591135720499091152375596309893786736155571460136390453448439898147189445367945863344601817606662660042104445549605757021030795113521213664276213358761706162149789763917661359669103118505489272300100654776349956213717835290962655340972006951698446588870658278019988617084433075034061844945524586978977841341384393720658480603037514662647344870096736666856130576961333039131694074985848370476314166562641185521171389735220621984215967056332515214850020660344361329564547439633353238052563345901412913427081760931672444949830405053932183560975506706467150946352789178185559180636529993125144919083010448961478622852588139850953871674029349194127879397652887509386916614265327300656170989105392793472948851818152390970257930993395417100280834517685729337269894127904481026683825351370109990832666220336913853702430986260300256297276546100230427429788139108040127736732161926536213674323564409451525227697929993780336335337576522657120379588948028591284399839945967137078695274552630768260334574021982431380833049572104506532383103356610949000441016137352022267295350884502393888762375446696240168292028509618297215068754671987049980923535867783152617757331196572572391618399544711706998722273455613053178191393934245302330724864244604861826216073105893268838380548898382131562124447837542567405473008725667688559192380955818743976136437608379522939310316633009452633085630265257704640879352814674973424765101742295844079414461346548495654502789173053848248003524273519392548672324387999640202450734412110278947924019277820405275096921249820671454257404980238210244797065840540535667584544143757781944964180264409736421788568510787006149098423161672191108440401567555620848427282192076598461546438221320272473629507890555696386547181468381762996548655641675954375051667172505895210913665171360926540670050842633551034893524442438581782772469508130686545766563420221236508630660915185852894320713887979933871954873108338025475937289012635475940842077009684293583843372684798607210394047538846420326904639662464502562911820531583183197898211490926994182723959244979665646879197831570414064403938619740728912352002585553607272007370982416229192856214670937300689398885614224712255942226940275916092905878792345674544613756278076884880943536469052784588989297643985481353881617504246539504594936165084762698325368302371471601978323271885883046234424137152362949117977380312312293646982458663858862792072840917027827614500687640969279346612399824478511300768920230800153476697529977312610490797269528331720194442411622348896862769985414085672758280591447926737319783015133796925768915798957840125254813346911695667012393836264748619691839705612845365462131937021419277113492136986707514672695520164473551736776601958286250400711139233068353226753076951859286252397252005514242709746331301293656697273396120443832776797873539008377475360032583949859440912077815603236804871959729793889638129026949707124046394776458199686738538203440097533441363633788572489457818101914149800015919291478502810735756815707188040172704730322778197439761331972882532757704360584880695259224184325089240084515357050210282971546250898646686869490121329192700011900267241809945270692506837213507527050131224587158495742624031038865906122967256902383779393557135105848296796542850185728961147812956962203351599834755060836536938767682655039616646303553739451644679120654571298637462082116922115088990444637465972089204079554008051746716488595516489936818620669543998416883899149961899914322260265920232697090371262027961803683878782454514461379027118491732565862599876376030110939778727254581796246143776406373249926278254284338188527676633423656266673870736736521257141707045569529884348574483173386517612481692506181907230194053155066576313483723455542619134559648504248366601439082518916704463838479595707879708212963972934106834505757207486752088242633642588894475551785137537809652956340679766588416996298774514908588608772340694440458144629568943310800145012070948998073040633779411267544905347055253720171543247393770296104826680092584633684722393006313383489503150104282944057542495527984907928233085015334531626572801377283848327965093351501834437459892870901503615235627946074800054730116369567409075506531391522851514233423312846917879632340251770452634419713453990053008278720642412399732673677891356065824962397718454270549744650071903146462703140093586662713533761613404927354988504994010986274391890085430504544531486321675168385754992068403157871166593876194875670513068161662775018554173923149076597874012047816409246907862013919411733658153472002083201949841595036724965524038339294933709519290626513923614106899612370793008995459525605255388381846815794567752278866231679176620656095304234586581394875742612294919360504180118966499491300081226680114292969922422887702067628256656129236213626768301004867674582109214117256508283967093694210060700843501993856314324940949605803468711349725024607529406459014253408145950285970572667090046034129587965017656732362403060408372317613435673977939977556437946625252124950232835588768666168645233332384432438260236013173859413367145738820180427074842222428340608326559522950652261720207331906477302399658216350333576900197635338271400761754608070240113189626699767559865965339049137290323740413540952547574355766560396298921640912435637440632012577951930919071147928553287990190203905533080536958302186365788831882956478861943526087813035755505461530809786452233858056650948367558293948109847774351108237815663694219476753454091972237086051109528135345754424990299510787191826778651011379384732199761816826650895820450637672990294617877701471259619665846899217452704442653650861196339606698065413389624272400906655007148699196289520104338759411592538354654555609762734374324041847732326278329134495834989625780834154594023941875695965858910518306699666980969064217888364623674770011277599486790938864707418577935219462950055371720846333564552772271934035927301501813660903716677015597475332178974079622653698778531821734788778572936962451434587702137388130438954449025794561403973586805227701492120443837697870105267780996164599889082178235860323516794436642921628747162268796158604812402638771641286101703356224972184071042959037508944098745087312212328915026058030146463433446815422506825275634261163627498594576478410322812260992890342003811538336267870185558564471548581238254248920362394390345869193193735681754286280114538027531729039788880991066228364176410766237928893062115533078895114013960911550481545244453047942984157181347235763709941016119368036283709772061820850770883353587542015427686471740329424550403068031084621757473298139480692452297535083193274998347656956497626066742959183212038348009516671038247127196389943029489406211241181224101663984195822807193559607212355081927364221528763462966730844950267612996274641335855486305587544297999658516486035037622368909127519262802397751235018104036435132599843617814643373073547031950942208469139387131659311404827118172272335269237911899847128906716608884040378699990768628105279512526081030172088397139980161790991489148133006893368088569152000771458500230213329257261228485262670845661538778775700582783258266767409460160367205015367818817853195555790790205842115727022823512785006407665845512138326596670743511778104561111724245140793196190628783210748385943659582578172408060656061862243141747120493187205856021048731034782660572616381090942520124830306584044819094227852798648187039150683621363792184354548084180818137086446009431521123956936684592175946907423907756592563826408096413122322403923187686615929913716530347857140622876578098655675103460461181305860571332171386983908774615494572545496468667391513298927856509095542785576866791878516843599016468342027096898333795307800227008647063214266216220317288998017207989461140930089315936554934334571284678954188614953892920466353014493604810352481422998503260947599876498698227458088376856297485416916148951590139141523217330233902600088385829779348315498194196363983502749265899994467026214599159123287359332919664630302684203251527479208674664355205993474582713113613276508287310125309759453947859772843349904409100670416388289070969810296038179266838294869441520593539372149600629894236448885178275921097887938766895149682807962013414333731484331745472366206296274979855970007433087064175024350580504564854037084345864737624460308148486995273154445035932282513338131045201819149303759944670989176167452715609690745738407475821520495845470320593332219368840050539947579357155111445322445730116299692762777042826286919087827308560137063687271451240707367512101660386191423688228277585616864701025677465079812554663661127739637064879542711900291696512610599115225837037681291888265381112909667363437730099105636937930052978672570383731157567017733388491851431186537805053181653779019458534531082889405782983667750575886406351448735979433179693317515009154236401671592766651231134297823741880577191600099604130208374953221965518946419462833098088301141616306385579216055365399885875303618890330665745398110887437999582099044138544325236796150018561492169568471147055906270090406741252077123894587172731886863054637152332756138332021492411059369205435840614293411506490959432007790606893072179541142484186570789340545934218583994221555230561745954708594267966451199791054949303862848631338820163928149957982734264304378592149969678574464262412549193340283401034550394505662140804926953927103468288198199674212537917560122930682311167098315871128848105013054898718600076622719351686605733728232923565221756537056640958282842220014246909328621852390915867578048749390611461811826733811947667339901868499147860016969012914789700589573504058742593018976364085824678268533480676199904185799646965843666764468056236248074758125585664017181659176345764198640024680147123963894749662968730272687178586806814439325135773570330371909806049442324308179687004682887261969700077593168666274338310409825299335455137121677229918800265486884805390627203100590853927344210855787297337907635691805419248871908845966871583196939089674254623634816839620114811028409845386104954703189721433345670392844774817523666547712658283124952526289206267851663743288544690549793667224623670936363387927675788486634335890084682461135786191079913302449904417572501209258983992441990846389562197554866887316986761908180063893255342422024492101607087739398073437821195030127808596493795685178550843222404694550890196803590300387756028917294889605791579183247632080179654024856345074691079624502744187338220987237212811677232538574377117253511650384435646192212208809798445221731879397236886446023086199032338894520971707555265972633255607370744475100266019071298296882336888347466277107014721147338317409101454722787579543345434752873075740277397774670351364923442175712869984193593280086541482545913773044802425386321486821065370747966871258968664565524960041085505452627732081848889521772787123823441944646871059006417339167700656833260996219968102370946132081949228524254767615566855728487199737816045976731477195293074114831921037758615528270168225461928800200301124674887295823421698495830347927639911769133775605178314537115821704806922229497126786945279918802470847175215863233338915621038946869037016635237227155081278315296210146633559081864868734196901693053961903594264641910302848075733852531334888112105429348869041318393559428191608981713541062469857800834473931870681883707707730400864770201751605984807007328921539298810965308844146375556133439120158535331981351476600903924538026070520618084144500419196494771727603167725882259130014480430445340345349509184695199224229968123033897013094244601275515254323784386665667164224051907455237460888670455332094633041037872373547113771539145684675413666366477312249734496985161194516541031462548871826187064572839636020387889966524661703184773859170943178133231397138917080975498056334247319438490478690373298745920639129199079428630501963741915972886018012080560852111477310289699179204736636415706074291395911270780878186418858354128637285020513043388367618280875785088026916014925106628214450950359662950338198976989016217043344492167032847948758507001734652197095294208371113689036952803514936719016030158056071502571876635343727964033683844552172275929666743203523869566614952090782823429015844486981167243872563096686621042671799027806467965692751927647307581962689747816585022724876483780984781029516157639283908116946160259195303943902001367904263183750032429294558603195030038286332311460696459369756584902037822586898031278023481224379727365844587374395451553613716940508804994478277503431077783275184832054909555361902127106892183531209632415396067400102761383228227584560807559997933442092693056007036780871000321806829293232373113831723930970638447015956119764178048786166042121400589020394476640595717236673688407391648177932870687385754773501711751804458970637578645322648349626131719246238562098076848614865111382846214214919413628647443159915578213781587577910459054732379139654581192609455945527441672897786499969046730168840052168231823705537390643530089287884238303027401752546051916614520758875898614663900945277857758377652913007215644327374975543709091678602997089382131941300410662224386745894391804112258976783648845143525338793060287711215739038356760873049476153705438075333052404805815912962207832667685169303733699708053924324893551954873080842713506937949995088502463000050563484765742671434432412728323393824025034735233755840499667757339880706956825876259784631728413798790284461763920075454285721923464033094836662066192943520681491803511206184511561874438053511974802728681485070376846363267214689053387059770307991727338432791382025236948322995537580316539003840794446993572441886228800815491666553896168530451492913890053925863954246255115020852078875400829956188773490268758868807098375496998783902037377527776788657231537292994299506642298884257165558940866305976866256198531121854021887471058057203369211291394445572288765597955593346103708639851384349773001017770580645108387900657042915231076620675611683845145187322474237442634213270782910279603061434718547859422694230492891651428365603371503134358543530097749522659704933758307573150690702107252642674329606585466783435511972630592139372577573658658410463699881728551840079709485426752316812419502581418577925836100894783867315368947237880389017838636703100331030809283360716484922286898929373072164215921834303259965114440730093714830346679052408599071882314249150467498159435682423442968982627547237873285610533982532516341977929690185650033029985289899674411702239825448571327830566070699903585861639747889243527418088969695353306965015159739656565942591692763252248123201867193051147001524094142705053391416079113279877239744727520357733924805977247259940507939718183337767921096267494454876703796047899103891005671097513410165759984563348593791694895700411156061659911443032200493671634306906114922689794596078637404965807694204535317010986079406583918068252059578383180944505306600103825757137225937292076634687273710416405646905137746678745161338255750809578550559436296697950749496295587024968603295099430109681574494422294069764095738529971687670665691850026694389663742318895400433435634009458810567433679664041843714043146937966032515430968918500582049035643492609077627084429377659576015646176925451945445958628021282325794565653835945187180297693250910445302083838898830856595320897461021263627146289543414936932591437118300930917430868551106943272776486808435679367958732003687252329002634578422716773076049815094694911632537213370373294118111585371006838146914274078130420330621189434356339904440210029764226683597402703318444601368594648948585394941608378065123398551946093844310241274649901569637639170536574363980781495948531005861922924748790963513645969170616087631089162755710286720470106902548953439185010596328961362339689922330404819601432753059409937133267155015431593265086076794487031951772737743695192249438145773127357644721533632726938521101625476302268749672582415079767963014760111514037101976177180024344387115895176417703112274899262357048311299800177868530136453841871814211320262322377026701393701331501998987143523109751467969255322187401084356399153101928220610190216535922893019562715918195039077398683242977937174211424111159729194776343341309433369294393976307709302472344968062748425746386572021996103036294866085387820470785484376261519430775813009575557459310593960605941954419800915568673382030046071165897716855815854869028723459512200543856648704304524386478547694968642330441054748869008600542290657143357374084747455584867023983470063064884046194108893015571622907344046634919579413189212000730373579813503887442649804708965917009831121384912241555393636320159215903115331893810781985625080699149467609138737352883657437997826661245056760085471178204755056315653891261382376770990544382616481606804428879049745582680693459507112043140136959209764869866778968549694825044982943491435811754590780723150802410816316526459220435691527124567522512983524061540620144403832546493739249204208070146334309840496340484574029708085642703783333906061929671251949376656638790415682065290754133723264285614157539061118983489103860362533192748046050295695347942910185747244919012315193050658771809511501263591855547038463907374949303758829213507859616591714672620166639147724933318597702394075750787073084848186872595042093089728348892501944080523706818823497688701182301725630389634250555222458304679849083143554298575799437674496859874881234054158442055193143533642687910310205081169157740544988551427817064510889036704297570517110785958107297347625999262977932833679796312371321599320812882933721597670601322275158475498473721573056244002360026485563580692588155711321541123786800273138803933027738875710017736771962014834536518241546762198533893362815514783668658220240428609889188472990627824627742501068825683414205908702729714196401112306056439829372130140625009199737201889777838989120230886364438566599560426076311609920042805646964467421360507551587747712143150306856450316480220049957034446759014430305966213344606099133291277450411229722396173334097009091355340277245551667725949966261933743051990684722025362716405198697356559347860254266014608943734183031257961511022587868547732961500758768665971785186916860648237172103913966102917254872930129335636735591972211488001466220874452631633779240393264613744074229927596790487220066665114132713972911768561607369820928691285417187673881562485398070639935476693908862995283423222143934863121643473457871266413928424808578386270534385485838933551655453159664352280642992367623362192719876124084704707187651006955729717899330673412049610469769843878791698769771851701316600090920842429410161151787974663039937526460260425129090161849743054943194568822440402184844706695198895353792060067450298806361863112181318747770065238469364043885787714769411164887340770653060932443751780899943141449613038680745018300947011620243112349576736263831001974734522605463101087318603913352610062237452199628290109880217453947745090119162742030949890621495769779080650175058454587793283790130024509446226928935679557565174296990513612570448526034826512199659996893923226985352587901394699771922335163831965660330382172314630611785765350430856912590536946465849402745947895925018796941413732158427433273594659224171613809597731921813269886448209612847034869645384475560084801037522098186633540367963912971904906673845706054128863888111699475646724129475927171372371454564261364975741768529625850115765357434970646776394089674968491758334088119138481672678294370464704336025900096690523133140422921129935592131246622211402076961501507386927062409766269308681151829533522404644133037256104039214105781861317527756116745204630649628206506649314073976900215721473147750564973726021236199409656752569606576981507812268160751897619456196465327280899529224488483582800728511581316193630378817474747050206293990697290231430004046590425473303521554749409626369492795116064838298799017991702141272555857905678915593840438206635151468985715743034619186030081496594604030680706613401992060548562105461125405072540872864548566810570888194045910764041101236129202291624560238320789165914957308768460780729677085138768895337673517154701828968402936711540648038069509377426028414893034368344017158594691615118242795262463272964641060996768439266589292112172254830485317532844873698652367632248937756261954486555056246707317134652310614965884276572397818133541005428540558787852124802600394158689493686324601272549184844920578438835781421510414547958806706815935410441020562857727559365919987683473537952924533721368936514125742129211857233895363547134360097784974935909664798241196356784892114883842706641160901952857597715702663505035157575423276734831875430003577270711052013309523232838876503397503227113238260524789665307396578213462527599265326409639897298916172021764502856115425924637317923706613530224529949059025282382662177271293404646430249576653046671951908168887205545990819588899442037816643281012326440646599723283706828991596365738313092116805158699827002332501591045337494511524695359127460848222620768706134746493569747342109130155389880157257928404981043637227043360960849086254364069544664073269250746298893381757493165012614186436587281627587439612027066750463456907009414804232241746149544660937137062662761604582667659398823365310922287008978906219120749830077890544420825418093041514317283234739299692374650540648458601664606410343974026477461416578043318537351900403880577706982637834236804701911921655499319697462146860002770453528078989517350317672794445970762623150196814652389049592436466432515508392951841885860288580356027523948230410758479826033511413100482514783011138659343355834942223212177239652605307683418735080377164430318496952269474989782267717850346787364278043708454656425595196565510841916613367480518299438157303192566283047921259561329376388323472455754199039510172294422848305277198752518698479626590830037474820614542349864001057175698953807618961541842304670512885826028989838027016193802308268804913300564471572158756305133956713428783572274866256152376521832758537063105450376609509582502522418862445314282764671727752294557823532102442426925854416771224281169439396390331807829308764058254266296730639575942066919762745448890557320018930776839718822136268345100520314028707742269503107181780886375772949208095561658979238429671717497387584946036888570470838166526721774513440386239923129365028401497301243129731815870490737109626322574691959918205901381556942565698818204957264828315268890843888499366977502771794468106928741672026575424258612286154546773511004546142968219782412371847173379149244584885514682492167922366857758449899094666768961410705952760849587422517107134124935787273760832797526401580532340837636362335273116419777510087391183400913457685044103060646173714757189068701553760498988878117047549532366607632334622683572282028051729143790192592909044221659922898062463878758253443305048594292823135946470640442193243477635769982267396735555458774287988956096340745268608767143796397150673890546511432652894429441686879707372470487833507188397351831818703375754917548782039516448262301234222074305664147551980254106945669232968040773048404244800634581847348859232453406954460868528477208162767683728597048080876661422242905407827875140620654042822199190313259618608788543802070498608316729574096566432145129075264467996213686337380588728639711016314407808743786420441806926981286184857604593679228444010625680032412681459248326283232987568163003480062159140729065157981326648779723775490168303303016335712757172919114983683950073591594064086339768001916679625799058261642517249687465302853895111186248384212180145608924039215385060198379127215936191489441183266165792242376981359896958232725094953170233031776614743638859069553158240596384053462869823140149414921086108533980081131244594992488524414545496342617399712371699808902345356570756257271462567194641313709058499696400062541036009443265336431174857782732497893985847048303194558270912492617650980550914653581396430223445968283254866355097928637207394712694446026795659931148906610940536266842022031780526613829035423066709011801609332060639376738435861394090945172453368464299416037535608217513047489184090451735339472010256443231091973281710632464270072467798751580853197551461164170611021166237696907831890289612631523695227671037123282084430333033995537930697429010957379650713029625229161479136898915436804074248771701692035117766805812455122445255754747682528893456510923782282496688465744029423778516103161163155303512397060681243096446297853744544175224496598917372891076839693901235648809011227440711844212587236945704552041883095922013278633474428632299850590440780270909900425320454336935913757574874042471484896543390396167959472092380878990230470979659557323015576658356098243982640773324822421205019567734044797920956789865429793773005058565618786078924331475323261772319239399303406833885891898480324414485789175498519520431353633822658570183498389656163719362906629180990538779801689631374796511270853079479349436963946087090685195882982824550098834755514258837260384373650820507045471131129022783930109209233991414140008342247283120327090716100811790584213574790718111213194422721510517949746690149580622265511394357367656167704411720089657258357432577150330336840390039847061037098993537964937733609228469309277166254446244024878178887169368372770129378850040768497546508088321808242807141521518786492114922337796433573570491772241251738521009656982040790381164514691934152787748993380567916552486808969239301707181852158915246503932588290365522961938942147519806545291596935862129427714752900040288795747169972753111395909989743360811641225664941867948779044085940312738177445812492696092995481971155931055603391629062102634440530945140144189883975189615230668429625994336120048309888296390227598447175129689033024616723597629096293746964976443900247568720346333095246476649109987452805205400147919691076136362016446093720776253193724883444341996261756593380568926667175624740974318593133801470675390492760584515413721225527731786957754697409373300243782799948610110827670581265034205489698183483182549865387269167217182389919423444711813626715979048327872149664210025859443400350594322260070757593588568949370502538255760714232943196682733114603577802232350527305662224854863116295318128915266625789098798845605380653483656285791088287765079935675974204357791437697988648077464643993565329356642335959377078042146477234562000368074824380316570213365966669436563094591857063860654041821966569443682254381625527270638370217150187787755732586255760670411813781089092700018932851642725722689542521372503230157331421147896631325665592083432940960942451587300888371155198611541973001941929829541560354902091695974130442140043948643197800803905474196407844849956299704444316993799772612395524950998652251042298935604569409828882535439663808718357898071039488583512753764719495966656700447759454840300851664054606253344866431758111978045848919660532081713646864696748752360646101372566629343686847448318730058536194190108497516763601056139543403970733887912633368330479947964814510451141131895795817481810552565806713490478426372003321607092730166199818256649418149537318913576223753743862833703986565151501914112653527383252235212978201848537160957811688063826017944866462106027538960287537540022275696305029754767931711680024447300472324519205405100136481689949129024782504045057402488854378165179068161188706506169825526650156404190849883257189660674216388623454790277390255437586887772569824266430467444277253699269077784794589106358012838757486476798384197508143658943980186518762014568686969179396061029750424074175020260946561391274427667637574955486758796872139664004124438677547785425323920965946754646477113558992500057764571713191351702590475658745145490915647494616710238520610876757888120747400599031911716404708109721543330407443486900031089868429697752338824340347779739276017723297817063533212591206129588199742100843307100161553897061138519577360400771469470302072608081613068583783933786532949208732111577642087940823314927271099942082216485567557122155876546339739734387807350384641222726895324865010181547587037061877357095122822919258062098704281355945775352321016799251268167167709463886186282563333209909168012096042466348233865603920254386083470578336551179192567010310179547429177042693082463943482997574216978943382284395907172856191460370472610186937923922933470476275209071754304660703006603202284330766252898022765811101316179597247172867505509621782738322741083929235606329601425564984333727484445827077174145450552293803664316716999766954130371821622999530747482305179408363188703069615627347370387224788794198101143663081549202650762357179850895086294305442894973189444765574751021205172667776912873985040996930879465630863626714029305595139867405583818252136097900815529453580212707527129163507788820354461970128285477333583880469899429393361323699934470376319182412099540824185067415298258146398287020599021030248842811630278664437541087581525894846154676615566447360542014402796749985585514737043797385391782086661577536397262330385256844813228301670155796288273391968201275392545797976367485785447438208958354268164030409714249639720651854068045613476271575619577621119611206444635440866185779585840834069603094052729268980304312033505047834218902062735582400958084170014311470546685995167631341083121317975411754156659662083842833385700590915162565066978269397036555722415046497004748070025950710472375999138949851284546425661730669871732012639644919923495789506119915767190512787377225950130908542221446283010002035567848621964261847027456270478477017046075152710976932332770520554713291731874403309580066726575858064156182322543017438630202166226473423278392799249881534784404673016795209634094794363727850935506188510973636418608533181676604799119373305439250103933968566554434443815278177259405973889681590727549346041380264347313277761308849581931509211778781420354704519832187097879175173970303442468546367746264841005423441206627539090900721184754871080678190010126839024333067946980257320135234268548198406420351716255276922224393336030302122910569050312203139649670142690990266462853868536324784323708010098524104105694420798159723124148802466711840576603711509334136189112450527145004358071981583693992470752889879555118844658011166110387148941161650232713171801705581363889698399743798303677735613142586826218890495861347071744336123391564415333740739077177246844543247461514459555114870639174196022214432714410139606085510435628130764971313676470426557771756260692809105794009031271026921681623419551066141000127392439943055273396356868228239582731585144928387398726958859417000895810872289584320949496364800275215923596453764045773688737747926539603048956025765280493694087093149752680147531406463143535432075311682892095240667439506460933679009119284654237184445186611777712049911525418061118544524935923565475334143081608250526180871647332111851577377296917729847893722088304180187607359009262996869526035212308025451656433852694552690677194946208121909410602461159580605918625091956377372653182650220581188121324130678529735367892484451004309720915194568362375892392769082044253676703934471606782501803437315593362116147438048077802705567600529850490255090632894140707638408781235794491002301447246248204699734130250491703780197793740542609796133508096514904989008974882042138504250268749903120411667305338633191742804790011479243314061109210060780471560337254265613927456480173259844984412373211897504694405572036712367382780559033274287006670406702833935656720321610727588974649413260772604784198471923750683612511510013270039313984939154900498406242233477016037391696427440850294402137653446180950412274733670154831437904684184218513634692740406459809443427005532896622333293221534730603710722667083706219615309380119385043439746356567153246909287068269570943638873495548981498619646800507499967586186060594515185674653476046300023336006385569581005697954568546031222640995719471033971441703258369164324178678283881910740267310454289589945947244606739529897434370636622760483221283566328231849981915681548081197028521322860623829515415774949347949453059280693994267609913206041848000448486749169089780493903408777608453411061027237457437594257587431188953285981270509023927270837984165437169495529141960250969981043328201777799266386128513210840082563511734852946237359295618932326336526113774164909384948166102135403416997905029781030783265500331272946001859536688607859428062636157283032258007169792422867669543447728921443462345705947557089259174618900645074349914664527225501846226105193392442554501781114308866340490805566063923647823709475097853103048081604870713376511123554618813268301411890230782195863485916114238218405180534076350554186576402937612914303717903527453842311848637529799726589370051086761272509297822716637842555634140487835188486368825026663645214504459144030428528741692989510737369830515871624927956689175614370355553162188607443568904981827637348244706874591681758555205729063528800362448454696977496383115581699110864795594298780140433376106374520369933324929102851692267800163342284106225001003761889075081788448651436315579813088210314557888315879580551694780252183204864890450706993100564762756870116821217293154847354876471201984432711593606834178542558221627828949424001725027627383629838897272218987301068376223680859220661802784911088654353144585376127095094959287394519531831637839589756240208754302361076207032566997670184046703790145284152308176020413809362073855407899109300868338591555631465749125846167796526870919790700756074829757426208247424908428844172748754384030341380083818844663930914586129240978045606980881786566755381902128815466524530918301838981577675015092595222292260068444933172241263914102803110849525254336061269808955641058114840944445728563238997477958492656786640383558243089603956925906027054916803536572188498526869570994589205925716948814672729123715096769758503881487498707070299769552678938156057398394732831932466624069391686851314481831268118088626150363305903518520044593530852698259689788160160162046126743327381942453371126997010487537585565628654472152133046633495346202931407180827736771864774736308854827975806533388835033878747740833044891212754979380670136411995282009149719929391636125425896200034341176339556329524670160365669654222617405405807571354837022645179121354067247334770225005812923796957373336858528563639112350720769351368508841232501049519197828065296605010255114366334373319464698351840956379013571828832663340053636475548660311646672636481091319218091514496462452951467615596753091139820981769524618748319237885305728823848495460688911145735578810374359452142700407668160865126113861092093980006751126210783979256693483408663902867712701740750603512325519241636415635200849581426217994787115528474843175352461236891628528249990867469255645827862948043537255472681391220468434268088668071926736211081613448421871290830854911198014912614633115920424536827108746766741079679098520744199183702687167285953889298025579285192297028146107231012997211184946647273449304765806912434001863593361451086817222255007973988262332208549787128005309413292267701559870959585407909459325052143567459094501634196268367547937472329525501466933643860840167037441171319524552848015005294400123424589587653361419043353631789563057630036042935922547359400412815664348693896087912060300702715532735867383308209728569117952288003338228963030581177308333378858160378322107073330472702881703531384139011527632790894106584575224414193173130123411232225020555412688932925565105751945847485180353974801449419653550614212865896259956900163889371827666789621614174471666699222836456214174441124440650038135335745264167199876672689103256522768245414935152128540034306105261774238203963103282748348178406055125704215925253461500735977315889377401115003000345088282610911540065246776798155127578770856394272876762057734900495930856380792077428097351266634163272097538507609243025103443626334284185452682008947351713888476084558998189917956474790418261819440911871851185917057001866989233155094449119226627217230896336011972101353277574709555629397303751637462273277789357520986920113332919874865967682734576523032176510889030446947259664709103774714183235095313068359222240838307731222991072965331303783903470679026291401626882280206375573679942187325423123143941523483935167274891697003482746172136882376731254076369898754717630692469279409907550211621625055634886803442159215669666977804541379590257762424627603688186267550943774283675979996660192907141824518760559148901148923767212930067040808743828592765033108047548823821354039993490443335051031228137661977090115018703182215917143196985953432687126958458954892923700885050648574076230009192033950685493234487801829302494672720785529874755420717462507874114474190829529061540194403480531885781441706813470126019888031924665204389927824640576053409378659447363710612540657675971965592445009318046797662129478723306792609998727327013578179521979519372072626975690115853206464003964119028049152413181805873998059125564444072928672358528634179236481999891049789625697676524387243049232527335272354206694183400032702402830934729059952626773838648240764493317348101495089565017336158157699355986405643866293604713297421372646003265346203601682320487276038547980367821739948036184879392304684900386304967689351502118027026194291633604032518056639048848590922128147938547633351760533850479590820679832492840997722676389391728431701779029093391476571612235678424266914837959484704139659992766826966183731003958078995137207353947139302986076330525605495246847428053998964456461598098324952080820909685109096957749679612813825895121001242731674735276754527026268674662098721533286456913842838697606443453828351975338864068390982016657774274736454767046666220155162637304326199737453284364285678340020369431358281502864267887620178509474441872551731871080630268979114013018423473116867364075983695468203700971406396754816900058272026132399156781702579112822199945511892500460508606445145040572865952262692359832320691843465514103695179212376689566502428680350656741171096049865734178614751321810242500246188250089293507991483805512681818441131537605427743604302722937651573035077295842985175830116282147748919463654238636999556111180365642479636629204639274862416990152662166765442534384485285649340211944899367592556025157567272267402729451580581697965783676144033725340478601382632748831310540280780618701405773309674323220783144310506300470905693277679774230653759777508180921972508955259560594527776142688505077674480703032652046650973805654819528626732258310742331290638381044567623327741984100961840145260503540345907249811343431970856623390349504531255092244936238158484781413651595115950321299707074678322144814155665700052574282155552937136278378930683074827158010634313011944827731104652792001450865012191903037705080552732527106930908802818033553643921945291470348664536875017289700891559767521256003132551570847114512463822028788260614278029799457326612126062015874502801951655976338240616130488756630007939154917504373734386880170560687044936776832972206801543676961124424683719303739395040006503773041918505027785447663135548613119989867167392711333229171092511155486027566457683434481166710148370096036101713254812859717513086326803585751218098187597342967524335613217520855385742135717945515958957138702332693313790734802205983750063519380361878093746274104548954624962392795600462030821535670410963173118776906671757278695273387978877689366178315531519395323318903148594936662469585537058589398115639425413634835756308139763817140388193536382660840700670711933943184291770102965922827486997236202087316876536100071470295168332646541099458120757265944910402045836094974670541397832338880446502792618932693144963392051054747947864062815749941745307075679017637443272549632334585573032440012538530474887157999490650723405408295970449742180095856686995298978937847570041150636231734485963443186664033045138685352191556365111290632694217938689860233434573176082997199292515125025618186867748168040709391547563100856419415014746690465128853077501930608884174750983068370519093875940468162489032615102184029990792521690911804834935439350697230267381716941113602603480388988631662393666889396888567206978697619089092335895296367305329771963020304029432899852734201523512417128485325628568254606257382715593109600407634524916373337095486308729243547073233205142231377270431192348264655700346395415590416455492552803491923106503526238792458635492580503011129093601834391950730480267109187744933249860387583091332934008979817914348026465076358553446295006133224230784948151341087608302197414604903069018479936626426567019438813040971396011014781114928229862265703995336868311288953727040347401318525300235510184446599175288156561952387672994925671349472162842191181809220405402136728770536391973858388654249699616308359268206232806581314637968032959362950294852040886031997389347558327801951686930241263940586788164447894830700351180570757392505809771432754310563287486012264969221814996455054464060964628135765224589620006083206798899773023953828907070313448043514413716439612504048274500212483792081292597600234980632876942621319042189620035414055391567315235279982540701779694945280359428111456629292078171162409268200932081405439630285818974356459909784540444760741183899053620371941886373276298182003065828548532195116380440842464064638194787117011336262363861911458492237404539744203132397592290850067186360294409698763204761390274386798720705578099975555080585501210379065671322254015190181747100182294774808564126777864704711878789508391324958809535961129567468516805624856904185266666073822368601296497411965330879144540127768307488604368302399960271626053066485854106483365400592052708997624392540941099984701747724450309372127887889182138548210609718467074684143299014706277836204367947549597957723520472111593717081177656142596576623983671923540584458468943258355509973343708353810013592013249707754527234691316483909635073448007115188573491500137855851267708887501767598535564239541650091758742502480416808820316141286811528576432799799547125432454730578801287335492807920539274530221929378093508370826593524725297838686383488263145126812892064402350265518015245219236233642815075414741849833802893393443667851209329051897404612323332880609130560048128056980332267586772021817628020527649353532393783781762870804740881471884125229271280979409932304554596072348835126242309352914228843468105780815110308929263084879818855792564129831892506808518576256945883374593792688629521427690925967422126166980782186353450317245688269076188701827881370661895131386652099913902872462078679027179887374958529115793463946981379543553729551632428332143163464108559638030248470975306632439006999219483937004094976365748516553757606741291202080543700914207221192059260997584148623728373720402379796322577869227521287262530188815903734774928074106098879081863131284406846416207593295365079288945555927862057154329613893657774282368585231877698431331984424694892347385886436484694951173907177542729904718368420665917586971254491780276122475634767595627384340622654478403336651200611521013644850204095610068855095590058592633538785749138203112502345329116118057142383320397413969551969120310903783144880775671653185955606295548591837218975810866743105148516332035250187829084866822191413440682316287362174371550045768661522784849110013514175080735824913823110215874637489448565124424397393221640435336209876186266907203293080822701057398137128779937706367933566167725977807222053609144774718207827579244027335646995419003107057334095941351257056922561100810938341719337236463572588309875695320434172930283648875808200169969064495631605774552999074756596961394959774251234338811698000910776370549281244739289341994651491698725183404715366358134705624385279568744927941010292807408658945647004498813989692264617452940151920287621344461879899668932837600026505093961499897189613189715402548916548305483428525952027709151412069484467251494194972138308875439674172302518456246849117337392641068035656142728607810918189954080809363084036834570049818114524045379585123289528877661455017251491472374596920836908363712810827386428662914092353808911398981345593191701988028601772746781513806907606422789131388613071704445716187680623821390419154667482299203200798607355539796350663074986901087134581261728193143466287707134655211642872644989924636595127039986051596458598491701281524720971332035941020163431975782931144939179547815861616568869568889589386454709371489625658666995746184914666780648622812030450444837887083643171676900917669844523719668265070201572592173140370630586238422458205643061658296253083029360652818858222671506817203213031056962875800567321859694568357988170528615488946893124696021534105089229250668038096456142831856120748752640641602603844962999314092344430215654862158866363740808363246761112698710028056334413200699245675276020360734356583707876567405659752706833309389693142685248707847844425834678880049092421736916575886126427775762629870532910731086466181336908757734666425132877797252333099114282583921771746417367289406493752295534197182837110964248933611670501944859112327337889668397942375878042268975021950743777632642917814015098716088433008731954380709282182994951889628996808554890525660629260376097553980682894616425028952854380458955395394865515645803614348986258820798543606645840879479188720560513560327578251716969257278654735227998581709873408537721667762249641905968607281370917790300386410377752429924972835053860249324475245593766235198017565711205852241070911402903336931721743576564176223666211242051269138079503472515224243959739283906192046172062707856519576693952729245829231703395220248138653159857833681817088171870540416807079972442172784713438288618771283012591530913323076114043655784036143702236369246956135988169036734641327064604973563157919448457344541988897492058820279477872488442960806891952476620721147130947456732623955404057037775733687707895902552088076248472082239918659509936808740475153138872890793491239538084769205444502126225261852934399032845825299349545814249734483657886610276104503608799033933005302355202791828332048010443395625227256123965099530846954864668091445785448264320840776082261946562929499023831372794272633682393170488898108821954587836523240309776504171871205843412120181038981169698778311049826730272525229670989795143200625108989029801208044256985916477691670129534549589825053315525600187974828253977008547385511810887654634624984662625442326679610441485290235517367438498811298896253863944597349812295499890622223171092506319773240710208590751123535393929508575350207357039701479816623561107130651194048081510852264563599362970680848858313680683214050837922031458134510300054171327334047913745292854931057628615616422735089206608602861784224164088491390011017925896618284508352197471468496443039967123133968236841258670539647892268380094322605292005949536237494218444364139981658785782670838864906012574640823789215537610213797946697880808034033675083317190121675016520999001590963268757772432241948483637052203640799304634622231120504615945543741303161889334791707357123452883823038153804835284812017907343100938818626484558745059835346238451950884415441351486882700615680065317569380177503012315956577939323730388498108610515116245939839563530748581984186614221715056735910491179707001233707794267670961355206955414349637098606236925612346167888623849808138506545440491289882393267123263501911226265915856169192188164001251349582765055858903957163955185114126787710812920399032981952387968889853452717126723134060853941900411096485221414101592275183990132756115419417454353538256456250827285380194153876935477548909081528373027435156548785858149247753608092016299227652541008578068943156096108747106409288592222657111774178776622378145307916849169904577138760868192211177426762137765772388166043760355442528249686560976124447628896957598652949527124322731382020351463038360131410092888096729653336473032397507365592329102672212031464303796585051378304245686422152708086737722414644426185641587739222928479062205397018955154871573089439144936715955666643620355943319554402748053931646317563639570602366485178115677269297387396966366966727641606478803173170537498369804400070305468766657231300064848073773597630679386586387025616221806949350131682339692859835900488159896094394637329858527262405590229766315845752001703841877414192764632896285587288241384014425692840847962903143075918747929690296325557448530360189643561179987343626057679653644808971146513454640052507698434753755265455544931479190532797560363107297006454449094347823287768208818802088512956055499655928697553574259843702326014129561236530307866243065219188775921456220923491171250679121559626008023265465458829960626720959614784019355337592992126156971692226783401871444089249488286340166356032949812375688104653422651705903222535920383652360604052215845690430634343402152136539229995803540960995084439433605418062384553968709059751742870235797382520343281487806105052496529327624385735231250396173401850231857035127222145482007996799312564491499425451752921578876454409293877575375115847726593278446474890004316816087203485088935539547008465221598136006992348964352674096208644061001098246240524969842080916233927672225198799503585096573565012615881306027779625539763113608724362167063132230466836110980721371041525097800150031986423735712123038647396302026066790638658615974948846479509046801391828939121570749534611812807084925368659328618818511738213358027879758357359635599531345039196970799554909634890783373414356471267060384567063623449457471956694628077348953733087786216940910611579409225891071861887332125300366756438187170258877104751091690391891227113466205042004551024263997347698011618961617435152793463417607788041756924949138648412036107519603982687653776273919781062498846463382783668666789555031835815040137870511876199246092762524032802627405035580825950447164525554590548866179250403325741278139638166478592161987467773470846168340662804963931655510119425506021729070431007032344908671108940143811166121003325330176948926311117789841008177792877404972260531949764184707444652659606828707334386069722403664014085966905248905596118115981699436141287590132063178890531484748376307704940107495169515167665239948650517873546098692273518174620622288070202832586352967576613527416272664371062042552287062582347053575874557536778027032254149461510968453562462176914021732169961172677419028696654128809811006206696044466576629505170959490641184447376780991891905011851490963450982580327708522036739070658237679008685998488730337290184119183069369579295998532036701115391955345582432604027812894174855460693806964576824071754577858498299434185274942759872723545123236714867145478775417151860065979295131940690675407654868442703646582137856616706219755539711268980658254383700580913405320549640763005901349948816600287208773449675955092799345681588843164123463983669588895093126050203873298850805225705567384913073403928062304616840399204098512748303897096343713359128215241200964793540109586540868394676831737605974560675349548278705826122444330439015466165715047411519706077327954461691527574684539158568537166125037150350888492719715169909167185563258640419366184037387580821594479164556224104172321704407798410401687294627220140728930794309402252483374976614519858954690036969286991966232603778757532476517037013493805770015072111580887257884938874262382700533998087027801430137061392695853876873363717616311625202184223713008478419657103752216836410427006566027855511246855620391161190308690882963841668449617082441772588997540839902596175888282443090339519953026879968644080598041247684713574732519464990967703008017188695356146706668306269902560425046813271645226742818382871075689075725451119598831541792139873636858705889072236088730208565131890857209720489145074009522804610042529927581687989167692036652954770203466567613847893851069608463220587207541221745868321264611064711269449895020829080500782952446053127408126157635981585631742889436462291471136565904354314534359582239658939801438925084355527760939402083246455170564933558025322119730125236612837336395715783462810146396894358937046209435705904531833272918577370169653266093563183095889785228619669896204751163308505052407379984102222713905154959112396383198838046305572642439077430349609675836466596547078671491956211508091001145127424578945032076532330293148508083404857264946575796299868745369809453989464143587196974460040128170275833501664644173719313350706666092619603464900572413334205115275934819715771473078153897873339913315716193757914852279311500778584228514753357375172866719140731715916481641698064799180673511075031010693123927218831462304742448410384702641991555214087423761455159336720543013838700831487162720046033878863027840323132103918571093820912030661087446763877749699065800385355667674717169082731256082285562892065401397556367797120393151565620211696149625666960266267001186259179818561240521848681208313867146763647273740774281186421031945451404548891495602590958720595729152614107038624527417222222912183346541288836711418356536728269749720367466820658272902565338239850806159974281055532865329012347144068984518335775651534158133078409978921045835966291020899799085857901111540589253546606198112238966003865843205241606370532891315368881717326443325601919842036811405923654153021636800095919384182093400858906298020987395101013325216496992412146441907317989377581248680352684244047308980101093510747449636787546600071738693017330103479518924882858434105719532938910704334344657873833578110751597410210831854786264460001015259937629895226072556367180048698620782199280654746470055665748322979495377932977054773837361046786639416268454926231529145308706550125820441555713369491970226959089663216933977043969979597389096530424320791765222501660831075747648019064993727508967132309790038363506099411950478557800716574753463962588229795028979839370966109671407838939373331245124425901262112210754592168238886284546587383147825365410509882341838051448915365731318213577778497773209109152140773430748571313365378874033463946172390171061685199980482297682347285593886416589621453126947029552715785950845366543479159808571268897903132447593231549270149141769004217293314810408440439359546382527291571091509715665714934340813667008088860996458372508070164301737122521515066444771448955527211579470730679905850378552174734283663124240615104199163388285726384819825046824548007978390619790648080847750292946881946053731625710632577694573081293552358990440625134290726866834716812278769653452629388361148498822543162293211274713320577559823890124404557144443763481992738555622403378190148984426149376612384644572785866073496523684989911121705781855447406580182946895492163713876854861564004739101360677704699786073339017400833472811012423498174567748080494612687895777314829648641666828355579600938128919254856046191619783256627804111119120088297698329860937024324831613578288582539272466985190975999048226805548899775034266967965989483402006984133729491599204260383922614219582991050731388932221814994488932760583924542898900790477301152907336834292735066220789260751029932947531165775919441089560097143103119539816746774141523583757819505847141692749470811086627275747140449795613682084685240333453361358452435707060587960744789184903492427935215235132206693911475658824523280134895733768144242159346652199009950065485002574283699422509864886600009061357370283375485108957486952898107443112529692145163813492505364660767737769266815577063216546398212610728600230674879664854601269064036779452040451446910248060927763462699711747020217397608109326649841076309494727590117891278859339630805223962907859263858089801860162845808687058721341885039789744206007132090291547711543052197330199402852983000641935181845746703855188613292036552756568862177835558805642367722931362646416242637525487401747108472217652443773881387217688668209173817565777359504225705923840402841998957207961366454669448418238131538763151791899527437827968022787142083064138568859573789462396862185102939126654967159091185201548949321517209738667521305766101423097042284165030722073814899885814648377199869379457073247522994862445679156146901626794723654752716089260692695959132131910908155685155815127490163830632174268534401662630306238634770265067474191655773296959747943928643847136896405494718346440208877483243065780328350055163959674986649127858101042126542996955533308325030430877468456863554402322067251094275485128586292116531841014910276081413458106537208703674583430106739495835718408906052758321861187675281493204177029693934261751396714437363465111665262255443321964324242503038886680435839463470862606364341607717064140073030032185006653011322374518740902113660929955368903217889566756411393383944300062364763346145294295071004209442077158306477321236746654583377870700812515691817389887805114904016801225250777078953887928471937810911516119558103991722727367875604857367500643588093799670830358467454801134901376543783956618544193906631886121759938804691516386488359489321969589197797659814951064538049839639123759432701739084258905076424926277636793329169122332235578327834848034309712681505797047016863467846425193464122058514871614461997648405712009096515189994777795141141249580376163790918989676347852882092565516747751086144808105149236817529922331156070187200452897273408522333224393854035469656210657689507629600404221726722549169109956777182786347892321367934223138858128303104740019567440212243418391880346088561160980424363357670029702982056473149821752142491003357613247061088295411969553068479029851645268668585950978431463297809886774216034889332957724153979169708556096519214564726565543601730681704368266870863785810679918954608370959674775845956311985735689460774335682364388391534480188895032993226226684688576855320521913620563085955649112940028950725490563781300875697959558257146676830098633827219808351933437007841470681708541290730327058654758459310127023042695647890580200829572088061028411334843933097402162638161672314606483653220383634384178669532521811781095804502371810407230747936531672766258499849832434677908734126068680480776194281213954194353133246713646914290919815860402717982172889428725323410150413179976057610866699527114780630199107340946427730428981588813056548622170589724026088327227886353544044671855444115446118007183525827643991103286840696975134973041609081581598270790245962994286490907234131210684334710948769054710952987964041839928115022329179990306143348030258618551581984900404792009341417398428456757730274761717551460747301332852246032546187898138886278205140542905479671865378259875020805407270439651726636805299214793412662844771684297296296550416538426988219036186835437851292108356728848316859499335823121966234051532514794393506983367633637533882253446149279000828640053932279312816356663947621290841282888837731790452060755770511344129643565450666070896326427272066468865655043785667374251262222830901919685240549522315045162214428009386963477842572650595839336774352930305511097251491019013052920452047620693762945446326562271172133186205260130348853467962186024572818731916380262674281140719384038229550899169746364332410955830641152857260385750178524897179965792778605385025948277129058615023106809873919168618618092798487267707807633799668934777134644010854765571704700226711983592784514501098195309518672083095274049055573994666991908366797454006943994252502033380242223527237591733147256139261817173156492011357442260866711643015150517472303942194170667361321682816091929794578527492827272459803535119968873304414921380727538251072407370959452034462594848725369670834261384837862270818392596674738528835178158186660587300322956439044431230002368441575491069343544960471182663547602822821153348525461865655075589136192790939856521634337657193054879591609974996897873874514278420247210665433355181958529611769647294359137132092473831232123319643756621361113029735526794947796949433846746012439211173999079662571908133963095424982427785274989650225625305180613170452200369788162856855978556481504563403671111533226750507936842026765620785007197973949941937558178955240146058066419554293069961034617769116825028332468643300274342715612456740466869153967868000181111991539722254602576511942443332482378581667843382323217772687623080930834735611319476175767622005470993948315981800590273854575670831634511599131885090147167823197199814105174703223930373480570036996326831328740237863163358797345403578975667771226074774319181966688130903744927540163333673973102584069030787963528106456882978208916172185479323097667521039897335401699603933645901045171050800522634586071005529856119426029963873200278445149743917071928985115831427024877781117070141924246471489244320200859121304537543555700009556982762912678157104807542227111357885072202160135063232389055819841780898258847321865298709868660864293585847030286498930539125302287552038318653399155867632328316989686480659962929967519447079445862183391871913320814456088214009711141063359986963965322407935932369768218374543958851295019367104182783468197173867300649571609752127319364026088261356877388475480875013441328908278338081390688624066186103596113971362905455896160771515205936369046690353268808485244118193081171635787977368407703711461288202067389695811622880380382033138397829112277728375339282757139089719874023311641856448624409971977876561798453724259187600119743323484936596549820933893310352206397042583574868370289010603872398968921919665814853472261950874244437844148349672382375489383247121793319751262441364647798658901273776547712260036948588569245438193142573491641794561064768426354639474075214543901640336037200430256406985454814702335303501442552594331369565405634668741256312696084637955905944240255950202841196840862653200053602607696814367160960339103911144429974655052977413066406192541404498311088413476433731509897011315332332427906387057817232104016627765464527336589576895694409159288079676539323208352608056219714163415717786961222769832791950989465415946955444365125708131418145288495341649599389449231610628952011665561773474836047174588521633044529422763499476627691369271468543397084540969308906518956565871099991513321385768099823942323575174176796860980727735812019739314203159667103306053325035157508712301235152389200388343292509655474357796183558396642999090151751073617538866733489150537431814939600850081428760488507757787318978565121267519214222969595743412178402759153937789288712854802267379499776633905394895429374740625969329899492357984324439372675988483297275878501153073508492549967912401900859739883918891044997478509624207423557949889109184018992797337754169685408056835664991428967638151951982145983474799824906111176312114206377636690126459402652159021997235834510870736495915444148109869921786167700320991023405456245991274880294720806397782829750629659190992823305367896467785586255914853757796643199522132588194410938546268675723060742560129254942736998897241489229494452389239647127152301197807761729698210174272311331837965331271638126824779964282574408747703631021863716852336021157778487014340374489043081491392529422868168516940434470497626892870113066062218599297789335875532223318024253686683322780016063631319232895891367209502692985284884198217602162592395153252904135286202425028638164569439248788271768864876457458156815263793410618049534014104296650152793091410835454759301142061880052016584126658700404897558337735842330999127008925514468479304049274233968699928210097958043698395632815807455310114816795367930910306658247270612062329690975237622412111477082364919431899428857643550564781550766252153809634127723553532998570196390515816978615595764941159633632377592934981713697156985497193666053295892828912732532803054257546593211681313701299559224006180673909590388315751823827605349814254941657862950345213430291002246684465588953664597657168106745836575466434701990338858648292197123381757552382981683669102742556261434793075191923865056132868435286383345315664532808365529213162095705061398687060462018473423442824066830166423673542788183627033636871917018050180680818250866434410394377185522908110795218051456385950615033038008700439825713553956107136917038000073068427471396584272215693120293089791319464639204008517879552317468934114823741345146139866510050579488445363112504010287165398876130759561976045695396809427055286854022873777632299399790494260911784992632442612680328446711113051993120598312881368800046702065085378569319922353072696290170909344405109654848885573467316058455519907777217134059859207734292662577205597887790136624918424397277677463100521252889384071557514162111137579500757054793997674614078403529496600632762860598099344386507017795786220929845841144465332642579369215954406252228362772851231206123630819013935589995609933193763387331504447045961481369983267366058127519048293821421719778235840391806861043316208339942081103754635717114415736936245090399590000449257025980119365732468178119201452162669124100952400135288750545098742372619262656101953416244377464976183703931164527614218973706011555610904865126603093223202861416150306984335939464458540742823467264139625608917327801494270069450628053734380218043290718056607800534857348332438324362592240549278457990953067756603041963250177482697956302129955087234337927610461130253017848599915194863573785177158511813079721734946935118609984068014216454861319557300445306384477584879711554644272782816984967333756493408500343516040952689030383842262931277147417411216277415627851637105193113505850498089501890870660276715079332552914506180399021137451372745557283935038925829322699213321036518221479797789071472118835460343375330988016973854628924472450044570513330447622866109122048220099662360344983092460692091009815323674255617632268694094256197820381983523073237074423459277877275294735827615530502106599584968369357641469964013415950961896850962315636048660727619553168072990916973662155660497278582354102006775243977728222313522057137845572694478679146597992029005174788288518834214395017321975185508563389582569526212016256492329755301515797190698674680336619681283713326040679441031789554802351047313380477155163636941125071863936858250502923275941892561352778265334941255922447638961176566229395928845284363161956855269230038000190441755457653090311610119262124731574848662939214210681113450314364536977241957815758754047131717925646848602687303852637808450744390083993185861366476308643885868440973135460472552014523105881835040277334371070477940983551939857861162413697072840805519753436838304279273358648615842740385856010027155789757426748693092848742135977396661327827096437540715303937375133775540531379374266460291801185834090983272085033543324377950989859946930153070856908445275022128514864171859697257631537720420439157700680158439201985187719295015666480638513210342339685772923684905366169826784193029144397545654979922228256115944491384427539717435302216256010471711139962407164937781524506200385385250493292738190774732883642567029235867540937335262789143496113305033749031855966540886735354719905535442990091904389629426231477634558697614953885695244659342562670423285591058071696091056719737555344192914873218266007631152894258508483760684765625572520183633209889817128268701296500993717456575244339209449863315648743287761984195173852423875308095129133809942120339095483132324680358446307546072280901638127201339962304951946752830371731105229966642295048942707784415981627336099858451780493586833470965813689074089433935673996062700012235401535056087654445324168476742790375032636080120055724397379918340489019241920277925512796541261630986034532982858275169994318899969260715132304002848073627780624636713890269589751843484475467891945023805247766044991082679054674348263355545085363999060417889820984212942967106786320908038282382373786010470477873801983199110826855439420176559618592084208799660745447680902137917730103082526750265056142044465941013057342796605582012887380196723241057931571161899533972222184526633122201678940706975945241363873230209015475513298034380907437343531758886411100721347025939577905703953995041803635747396371634083657297510737708993457387882191792060127788042738898471540745297989594144060919782070691551479239172753430255019803747200429403732217288283367763489305950306715150799159052928297536542877442044341184686529441190272843386913635258530730803045070985328868069753709305186000940006280710751436440350477067297886244607666715894661877619264547463452960671554119395636100051706736525872802008666175215256986457293053368474060140942752814460639810801216461272848659699920841901558790614376811522238870320285701256803329441538369068258060428557126203303678229604995602074505206721239703269657182947658953801772092646725767830609636343334550334097587993198019642187965978437160429115797063279681342253691350153766224618601715366262986939225786893300270869051248129176252772988659393221216354968814079135933915900249614372360180943569911761730439927949413863790447314632992804625391155889789712626615025710330303620360130552722425253456470392548930256599364578266254317297344475690249402501104930785741121361448446330258833894937050535700187680191266992686917644300158461594742579147099641111506360811936306800843709885506249656936037418470258338042050756310215581010954746361995862007943258160532633718155045170468954559513832821402418471311803241775331231366929302571994193404473821145964352701431352553810968223378975053675426025358010400163890538211964498478021903341067039797764001427655923642807102297282308137727548221869980443051246500503418612347871128451332070094052463739101419397930453433690040085667711705964139995474401593576006170518746472479714338255977178946385238050802136285534796961035514078779154549780804560886375474378374859253662961523694558447512892522150129956968803182171927638638240242824133775929611120357161239985709277150222298937745659427089062610182758484484174526215665838105560614344344718086733767208598192157492292516081994608130011501737871997724150454363389874425422659409671220096612177514549517795244371843323496017199381958211583386165081312272916748602587026302480726159491927620052428759637987907538243801134625330471712009495111948690792974958285938486353421621781104027810976121769545944067176885521716231293344235395451739456666711708727564822630154905687763727253087274287489099629378286270117509456382896795897354602163641574426739127279928298129783547221961168117533084060791652096682750066997901879862720228870689173077600910796640658853691249685479112911470121945617955030425167065709478309173238377148227415580143938815204668150534979816580071508045245372659615118790362825048976625638226519567416130669996946198904628068451081617197013719861648227251320406155724810266387769159523138113673786924993798926007474413721792022055875825068846646875629181747564710289954729776293272002919768776149208608485547988320898058366081192536169055767795019826333166938864745111410255053235547592535732801582327168236515287298325107413818709478629197585255205853866556505815507977086505599559408079737727473643188516535837199542317795608328531837735248375992587779952977956384772568685753350246096325378232941342332820598394571799833588018969009324577860456470409998592532672192127342926302146650074311118730412418580197113261980252601146496393631384294739013894484288749998077369905668723099619448893619288025623818098944298582815020174637960111090068086009209067826157746994460126246083994060384639794657481307393356969940029245212343880578925597335633208170336520581850136489684510439332799723204420942290755722736555874384451679137339906332692373279542690075169305121062790131089149506757848754824171021796256019206013589692580610041891985652591067175766592534499958909320043209126826819076280138289711368594919379694930486980925544931054590477218469597623035766321152361169071351040933258708780448793062366078166667180251346165252283866886766969999570382031898369074361001142605155366763168772860842043872268863607839838399442153291822605664990474401086140521808496657743353355433068426351603592440354595821338157996530160878199975517990225941494580670135076315889728094593428236071458907289167518783934156791341176388732256813223515061237090191451514115394492288636320253657340165870280224037116444580903845756896218559777086716788394861403542927036150987887379395542988539594630569701322463853904685858876058758083372103895818819611253428900645121432931883087290805997223804847704683951017910032965945479449647176872131949526447796840864534343433448169586239942069070481295715873819717961347628374695707256523023355077399630607229152273496577099849152491807435266451960519798017725508274022642742034253465494534934793935896741752974592761660725722166589867473769752020598993822394519762799147278551837998273566696030654770795778609863903956272413010754704362834663657066531052320906677571463901300305592960941561508325411419442186295780923314705382754090342803583283476098814505555061847612999122637564279532139194026174804648497763688344827120669829816138780429795154666418588843183635857237201928060545071471732461673229584374057316806296119679563338144425087647267358199966848400962759827260307223141431812194792489599828067402445702159303870950276798974876077432650523017675807969050515829815356855141486850794578753742221508391660308012793110983989755991319546051671530509932115912063643974841794687760615737251022285187170790123346568671829575955046159884627924810408635955191500634264166499561637485907875093179551021539422726443565071277007807893604421465283389463370460281872174615822537866055238859706137863292995136948586383024273335459537171126693572539878394090150277306898077802355604061331339511524661058623540573838913780278794733848212752413678918419801049687652963423432219804356768239929601178340790155861180502730545744080149726746433964027588441532236011408681879488705623687835917430912428383834819273619916642190482014457712544275518791802610158651671948393589063481477149728143250496560952435756961530257865191704745194113303747139611059726127042599719177582355418755229234708831010235189138218934949270717453514244625267489473723154556581324266109355194805664492033979756406323927514702687227331871817611410082683782470063523907195377993631932406974392896702174889564207117826621745558413760435414124123672467630462397669677085106700087096711951805277711946383135050492052269993489299871970288872541433762531428490925852155572228668082509331875331864877576346535414069579273288965509713090202820614954952839017958440326668211405819122377298150351257516161380995457976857913784470430389346233015388742646277408848173282036489547003474071742734763226927604643596547722440954176726375987880073115189381698594034875916454026814240334178554756181940311858044999223184194543326584101531148701777564584638768351220962058301314927194126847870671133308185643714761405334358385813250173067464599112607740610744541174317870317327510622489368087900579608225368428169816884742028409877192738817644420330443288890097614438410183363300477229626352847152921231587987330751221313279833517119305669894030354824126161242849888485908815151925443613492362931089173256509233424876796122906690054430525838025398404561815258337269689406480877526724365505709668118937968304576453309722663198991969808847433186596291618461152617570665464423037700568463466413768388575320932277519401288801284083133221838203631928384479255883714048440717726618524511248677223238174864961998600317825295854378819404384797166765186273343771914311544005701096555334006528400246888677360133726960608572728734626006402467034750495362581060342511084799185424249065170078455677009240697372336633934160962342398459489616537215740517882244631803780026687826493951891151433905345920002104158110741043456481313832720136556903886056995556034226587720242242282774440657147682577217899682183336282486949165474784840289161677791433255872075085580919379824450904264075551950191727887901886011481172968137788907421000798151681926827729354598721183623501647046141869869685689500789542526967090001676149279542284369718874667262887369471726621329989687249756362519068768279717744265535194280964518600276035190309379667349083841365920247469952008224571924480233973446080281753763782979095103647122515105282354577128041603657896907435458035756966541497537486420082946060907738998193392251321039919414207255327201338256866644171919053953255398438865233026780645943931972752031127733440386973557607436850477266772898457211904084647176359184107927854470840837998543819592793498880774987149609378211848954006928977739002186493947903496518586293082210133007705221986623222008718941734840056603229054819424064509794173994371759294694382244467637941576423588161353056542474073837426089732107431969768060599809101939671619830127761282402651536670346766797897745675356938816633922944950660255868171775034669747590786968016219271491270002852813787096911632475993215625873512861731957960146484936302267774787554074159413830999100592396291703378391887093513113716545632010414333933200898777048901000795403568654508534750476128770896418722181151542490608656227658080037830066161759450420379542618270473452112226441065654464509802213197087908294777852744632407393487206297469214843650325198035886059748065805563587910468247258565084002744713891901390961173789775671797970517146548779862341613739037705688799395224736201427320455215050608758690294382480761903710680746752102015239036880830366186703708569993797179825580203814713565365799989369761774794021101575623985075419977148031678206958995131349247886315119727539745652238816876832325007117986446151857595255085439937703596075936768216543944433383784847069065076734451375651454112053069895163583266276745713668148855904870790966170673915108037122400120390382981601755567236421777841735317671081495399819242867597129685829179772509108511218814467885212573999672196789685860102619398657965467652009480954494673597566722333481386851649909239015703317915136373222550474875170396288382020276567127324998248936343713260936065194770951822773811368885007740744653561834602802602150908401620947259239891808549807612298833309512586361453379716081129305011061404106702169390559965424833113776920046426685244910992784942482840224315742420646193708926693072711553371556124353881160048803708857183494552182840795080055647889294276322588359132688251195977354795921697397011548142504459369823910939567956960235268927222381945611771699915637182929489591425496239421688232585091523185437914617905943967606605811779277245718745853907294607259682416328226125931826333846536896641132968073347422649089535779538404471187689240374970913281315616951608139379302401820213545456106518947969518474912101764492168949764444624060530134867553251208664953093774525829861048898949888941097994093622671816485196714668624701512763591639037776164940029195089088410227604571172608659123378778207685316418531734773057880632309927824858878059761521464809355713683090848110030892405649698201579140291806348684698547928434779537951465423993300533980600199256441835614495219538906374145203333180163191207761783328865122466041401892977380089472572365106140130815739493311323094738405984399680211841468213337485642847547732146615021052348615760695963098658857922946335265869801378057362487412356520385956918038902380149448510696295573267135260620302520831563772238213426341056484561127294471621268750460232990380233753052220495423283419029775562100898536700323164439538398884309676993875846865953628510328107841658549383806753188838285448828311784747970216833879411888438874079811932895151629203537526772670745735178178911611413918209565502448840930439348763365645305657844464659249498395726756349277338093308309108689384680600593389610038889732870490781073818592472491977724394901955805804253754911975590517253577121122664087130205728460859564435304973246858438264203443711426973443886747137634678140394746492338234814437091869897701808573074647344863186761370880590069458357332258277308275586765463499887277467245586519344506383356379389954925690170187094713834354810686344683607065152869927070527561609533139190499790224674625801644996078887028952540931612877257907763973459930019196945705804700626898667227239498196906071283163673688549251108985236063965547658541647824833376160696499336138471501559976023873460847533791935449331130398045840464313865578200836566277221650073973660445736055544865372935369607871393346170013365144032201883028382940103342666679502303700069850818730655301640424916826995747588027699176424029197359350165933272486346939717283119143290808891631072986312788553816785364026128107514563312800087774788491086715345960310729753837196495781807608061635783109086970477882769280975858955894928600315636438709940959506334317610056795967873846927171380912919016665222154561707966929921227741493401936178322936655717928759706465023372770987651330934863573606240428045863917805889559085804716745402967369126771944408906911740698882799825071720656196474916188534924815911832868770444807155949270470227802134541726200643630204328839151324416401821389756331131108659139232327115336252635664957135743916925210377129545162127759102270154182049414423344466640718137439696264531015490962619055092257634410152943618071190136322675289346848713752580076206461931591794938884789538793227302514623250721761609153270991438885902167517046509234892687413744286639730935777086700065762143092472076740619455814148397929825041414618023428642974439326640759539407155527190857442557532871035185928525604483755585379072939262710204533587488097517950709556004382522190306926487122646281648304935606210973771021127734091293190751642948894965187332866819708996541896450201877516533387701460552294448877824378150220955131289634457919337481805596712877755903936402734654433599868788527608912845073573670481607269458549170937927377298099789296296628588251323983679631767136724328262498396579152025835322343191782505337835328340665034950671814730199525768002469426544647301240833322393866597830249612082355058517006216686685087956216656766654861860628251479078097823263904347436377837746933765432842958977817779413738145480726992333585623437893157153941388258939578161347926952790277476226103394402434819202446412519051278718240889108516303978136202828005987562335300516729156134086488132172546997757506281863685700437923156196820960941507094534539144358909484619358579031776184347809791279455961864279098598897280672432121717164548014043962449063573636926922472927321099199753739899539869541104734174793069913894689655744706498690993471451891593855013994091035491747495667307157048225796285780640910253637427684438640875227111404214965565813988204309802410936109978410558209182783677507860249207044234951077930058414542804880301586234775706579259501228866066645675417799686666187357050092918561026965149415677953813336817738873095249729097416640712357877980692731504196381314501923112812146140194105463258669690773933066511590790304863921144641753094623902409785460825446367705570378960988386926706922370443290820962502305162160553696943766730586620407218748097268765488310809399792148526762763911518684575042913799173817562160806772441597761817246858640197078792507985297501721130603839355956142513661229351580764140093738784288396478915358500594383563401085223872141991680398634274520373436441353767926727699120153124816122701860587827758411620073781424254252418103100033488666879090085962533538620481932247294470955647566051020070840050503965013806084127856097807289538990480650505377670904301113538499000069935745580039521409107444957374799576669008005942742652702999496770793764714674343504371662784768639576659199339398044626785104451276868914822274690447623446495050576634113157226793089501380471595096931361102373275242328752550776354834627989148615396259554640409138682582700124151537599456182946317634461198639920627118704407417658901582056978869531487882590090010329638509917074807170536078784852219667579293402964249548411914016243272230081110798855039925898931561604401281507065638820929055324854168391192593552450893572262277476572023170186727091455981426018173515675530847109854857657557253628239963641836085404048089997274442571058744033847048689421595228854877249802790598431184429078008129333125501904160953994351939786166039072706278161997254038710770196901617420677669204137133536055027711014947886276042225928971037506734102512018533941459155197313454987569558663227973618100289078303474128822741498936197179438295817431323379021002311093878520894096482987317210412021553393388935507337272379867952442418077923402078804634918933224144072697926808934609591384707185192525222034850388660634402927810643254118848183328973948701897564488764834309002649190937159734829924172249076931209003226792666480921068647126718683794881367657214198804878237806813013338071944102144544417837652221566282164628909600515513283305821419616236417978344015768117838324398497194536352685937790124894473545425932052681808131205647724581837608368648847589249027736710861183602148535907173288712869585440750309256908578310297655624531247297986646083597965344195088779825132679868644650797902574640884884290308356862878047388460077370361480049743767225841738523190078601845163626609881909947090849269021829561483936209000986279717808893034464607751337164983050562644059863947057285608477102164897514589779569754575389035010275896085808866042570669551401139163818119590097228586920941881983287609121960321926257551569951380223570467988461905580773285252869560306654207970224608908944193094779116817020935989084248595795750882346474823225279301186484608017663037398682337153511024857931288351876735483360965947424285363786127701417306590654129250871961938636158209057015022966761811612952358950119508337352823761721635553148526892779772681020371067732726535709334517758000062919811251825506080704389651964904160309294472969165725642884253800853916299352922192790783009114071923046229396308798160591360191730358886684812979798591326554837454857410288829766032786921059062683857027828232504044613751603399869787205172376190458538126940954112574077543409914131545285382704909062052878023416097023062234429229398719454979450593111330472577702710161469662813423893986701741389303730549645486656659731108071490756847626553305367584840982991862912881035844225975362711682304563926430092628974482240922461003317078908406077338695596280168500877086377773179287420574469729891045443868020183109457631083186720911355767516336193917702785343571082005094185020767126524850034521834484448867987357053096793398764273427377760998254504435782248465986493199228091263161902720114691030512513207673753731722201913823871789142371225018123962957316196572551345859350824404624932395848469919777551845885289095903469207394962852263699853588337358955996678579672485627860101314657134820760779771256955761864119962954724841275292401194626510328845873560960341896242515840272283243454679279417070587846024742516106971915418890772256253635999764841161063515182322028262556676362913271563172434919708544943180652859970982752276230722507098960502663819869727668789520379376396895395813958353609511003912244500470381441641339854013591224563718798820440977165454586753299579019044944109144337341584379988584028591057604591969219582872793098450123314727225535391527412411435272231302587061429811571669730814300568517024414137078066163574981658724585181093016258402218624461620676844200043147548505109733855074615629241762412895234000293082741833937595750640463053914527325800288921989868942730571237485168551450484940205823401407897102255353065575222530877911398044873686221034716383238665844885696658413753512768056997909043106276271701002633138928783431262824697575510529807331848436249219525307730259531018826356674189158124284977632390902377612906493555483200330025381085874291805551315644124354723496071298362848197075552898861887976192591562194712561118843145526911180866168821576319965508459938345285135746039700328533347828660893039468582820937992882848989690899295543841801454408399892081559170542631665229044497810184947057345618484538525332033143867932017639841502042960495843900061066439797715259330947530263994614454971433752940842168430130937766863555294815267364077348064578893859857303622317962697323619270821909258747307291448501737897326084581552801518513751371224652751687264270664123972882414788799605570189016051815110308295953577751214106163605254764219457117986963526562682122842222052067722724792099633236071206163199845901921393305527477870232264572353086588610101889500720185515893986803445308506610825133934629445280748830807049752334047619411846703757093808007961296829480087977265397997007584519647981343076767833058765636293145113154295437697321571301109102650177591511624332443994782566381843469604863393200336434409195247237252792488417728198339443019010469976355633044468497236722420553980542480945399022747291211049592187784313619680281447285608659987900575462496187409935725744131533261740071859952118193051348410509635968140256623368415731471045658023614660805844546511269070597704369438111036405542114386354359922071637962733038390261596591602099789803025976728467605538401470062051142901984857754225804958400795755154740032654234613393714862772471927724143247476463975013588691780536070754663442408279939672112122690644544210617801315422128966974007829105909136792834484778344367509336809800701437766512248889406205924997869401245675064635510093793672488994572966515273514254587832110718891642502426929353548518191615315199888141274586806732354610264389932596029274178334734117192292169931409829490142354142900283511657739331236124631568568505071605540623215351703842498597625537955302348913318554751422465027333659047663424932554044994609458740762144731084031771960964661674265248928040906469626883293322443661568394441671397771813236074922511719688160725113753405793859958033586348999392787689858849957957646644857011334459339415441543772540155605913707458518868968385158739934230419705773599201566891265829994390974699075585497492580464341934243654970936342351097004435081474186989371955388494573828776212981412829992521411106457558075259820335551253011635147542217979439205708400842607513093141025548858118132366775131650940463112295967312916354162929366826065021075310009666286704115807561693477997648465094677663745504760934269107157070763990989290525154864045599751702907353412815563403531861372558547349045189281983464999866662717979192614965923678213353077925840404359557226035386446709104066402074795876010938412063681402632028813553156672323383768788829415865511900150866733542408468696642607767186043262900119326900618910014647401505428326299316602512340283216908768002398402154621520384571909372466854943074238610509231799990976336800231558081763229550980188479286416500412815359022868959419438540039002716390094329715813221525886520538065340702419513916104189158233987724275083177754899129169946774666728714115698470673153482942175857684700292984661618063152391371897196972205690424807408082433040638262073243682662123283746756743658329446210036089016207078344084330595511569815491734212672846969274527839752691691221137757517054348078342727032792662762744217351059654576608114564451290996804397834730018827782771582121462260471111323648546643824529930844807899768609777339888680651658154509284422663611438581536061334914370207382658405521618644685536893129096073761205374143217562577384994173775335035552725818548768610707186144939667067682319394240127262493398677289970541354156983447337764166818972954662457677807130462346483888532939078579853312652853283341775149877031494997617268205419835020810844056588383111966407560311556656994799501340079648110301468331708613485264653657438713413261725613672947460278510158404818179905376097794689304954100272265322932086351850807301736701339260722941263477602624701719524012079963319974133382782422711181219438077342270482202186160351438712178745036296849259519561736331679193355618050161866357941145205952059655259278061922340248990591839796739144062037857635112746964379700572623529280238523542751757219961170391793702138996380451720400054433012788089764743969343819004639898022364654159122924945031622571224002588048658181610246199598100727387307148452917444002249575695846978647228356326603688445813301796151437383159546625785000508454882327845734033993499524762626016813426416963729953397082788544170107370925917387772369337370512954863345908319070381072635933638867027743143188177528303339604421615088903467449097316203518182692035346543731068619220276981370089598938038301464388692119244541270853538685889378112217645737977228729507270463714973546566436613267602450591386216239923534881077271245094938003340953778925341762855875748585863321557869427279569356940493587738413220081525972930245112097647239031446257315619757669926125080713624550175468320023790221794859486579654922124070711833871537109570368082856825387312885420020336750314696800392518940470783414030780535353826612533238397512884142416048337449742346040113041800552182068883770444396319562718148926576051827608978127763010558557848158204769810136388959255010513735441656980493695475523342660487530651684842618465357462736307256052727548672348726415245078326283686446085850547396658041893510655141349017805909964285179813988389327567192370074134549405157433750139986452688181500310099936583142121099402839421989993624148796735179205855804519355767215325846904824745132738268332564292333882020341758038606619549963179678288497458386968714651508153528652859209397639863981442631938966108970469079528129223607443893044163305830190241782183498316921523807645442655147781052017686291776175038637486368416621013903876915385454741694933234488351944546645928380447806417017571648813623129616940644894921449447663920092250110209092758990764830463540926402951132760034879687297125926963402000573859531193463030226979772230058169319738876875401225985967209868745711325826616282890670186893238607098431453951828285593224011736481216139463872208405616853780122846349771680758619528878521818620434121500222904644816333799010892073021299988843777049094449380298397280878476766903623687826562413017832765770153320332193849684676114076293128127110220395894855428289202137914926397889823617931654570738792163221668882897654097957614286865221063389202470868343317655298925588651084130645188086613799292926718099197579299263488963647615076179113267625344919562378665944955082731772398822806465366101118818326394852657918573452368422224222966620379040530724900026806743310296093441642897563671116439863002821664754300860250028981128707871994258082893228623452427005785787901899746979779730068532803346062640446069127803831082146188148199288599669502311945902924324317875618615218396805806262100299539750716186270336383887634693481717710774823539239405573482986410868764797797970909106016996818011923773093120782931816377380225896515800392456497537876762270624862369383841301450124502724514544031722623038937984897145565698503968438087068224040328007264708665403071074440229072183720764845296415706503690338897560766219486855574377601336250077799633046131392035344385989390485438420365384326467121640944513182990289526674349208659203275472040590847158147427810804762119767723520565598462279013025989239404659742358449932269501727141366865983852684544257715477742545152946106009726379921194377197222214661521438896405203318414468838658338531873045586702406704500222308513402464593572105390466862792148390076595642552829349931413822618559537723352390581086559841033470592437929752117209653428582543902550882866483930723973029569869090592608087894452287675985235084832693629106840104196969994090123400183964875133165642032583033732609190049062964180313355405008030001334899748525418863964263383663412590323353623788229436505303238494938668618073314422287227911568357405686069280013434315767336445762544572444700021406270907164594930505947741693977005904917401775182607552683611506989459808141091477742234256480578849760314078399619562115668232024460844991561366660051116237838402994102389914242385021195656764737703265756217187048928770759431722739182787884716240261592609740161252839726152225097295552713933032561344695351370495439135452759303158287704819356724585020442692937561978003005106793920774362768349338388593003043232899372236350879620463625544463976440699309488799869190421704289469760668519870658174686996385771927921379153640375714103193394376596500167877172981282508142274565904944168178424838267363042208481931208057907745579840565741433151407165208858275418500281575565823450520642357448144371129933238663209976619091616780590922070772522062645588009018165059367916979835660781479077175759729013448108309820659346527959702146298305390971244812910262113573087425711843630760420248261298922961765382841693472534346000277921787367657079813896345836530054770542456807834603833805180552927643893007617303202133277660779567092304512565559363255143035307301692808560731122209970219462555802012231324438866750310289612035255604130563274907153774100589605058950653429695014634515212110493356137703336514882159234115435798455293170472096958296294492841487476550018812442116878053452929197167292808820667185632602153320062535385325920028760375799771550793895524721180680624677595182336505929435470484131723611513696143058110409111436218967698749702947937340274774061019854327917901949307719376036482565023991210989384234324487513939017438442335485260184524814958583377334807046196677325561822828744150043322002576081538337722257450146963394120376145540089413966865764657787114641208449702114771783130587639196544647501601552807729464185670680782293183759057056085422064970959081902213248360344595724111385708367712793897482829093072618526327166418829799169592621957659619309464368176332037433534996982447741914572929786603802601745551358329833762969225178748261951866411127350244412934738339560739015688310581516501635964917964044575532873667714970587133578404644172505430799338850816760315631825875507617877967584593550490330802018351620033923523382234649563849409711659956438708344809068420248307263211068665018710860683289823183264251950856022308089490617166974708660367283761754787371717726772386342659258652465294740004362724388426943783951226297819929543535623155758033582629117693202766748232961866991738783512688212002607465671712867841368222189959680322163369949734275321441265498141643008145963792386711814413840572830451389907317788867252351948517653277613278152631413473819639585038844693815520273464270702956273439801549751509267659300726824322531448821694844793822076665132401794829952499361811520053943311544504033509663314515656602032766413553897972137777682148750132377704235180626984554151390754120490079694856851056395574417103505621780697933114565168988608974704981271243885342238364070503919000924785262032820123307779146310952573349980247903889540428080148201959461631709199551862424496637424757829686774706417092721954154464016577835448417246681586757318255105970330540779453952971064251142151569285628468572732582659285514756697827254981613935550541272745268921629522795280649885465101483686789025570185577069922602479657757238995171952508204086066425266269171154437552431358971847874600115822082904908236854804238098647984821578436898022393585344900611758824326259518660683266217331802605108054160112992792405258077136942557892002877852017181677355433847477130700140720045947565186961603655087679538960335694568958550998695464345664368557292967726196244477828582145200332069968139103286480870148285434120878253988339795188984534985887551413839513716981832153529800453200566763566187990880178189574653136498574030361206027552852764666703785245735415434153527529133406921863028822358428030853347015240853372752750926179861954249008996396023211554581377988784930396898249132863150988816288215904299503362993118116546249201210382873802490154671126304468006955123591272347195614517098571926170078845665446857420098826469238896230137478280306099325413966740874631184820933318902153433327643235289242382591710442681859223974477545448350304771687922756486428820472192111975743434240605677929048487401912981815439908269936491181713013096675667782479265015395734047193720636380313152567642035979164068393273910996533625886048592321059804081546039658436004522298863491080999630462751853224800425229496793201788162051440106529369959473020995606038666505808286296805066124776817058843551809992960131239651487336856890273508243834724112821193983115427813146648273568758927698893150124414046669117813640267912259932189680104511099362600730275940852550884189639925076236332041540921894428825649555890809984749376690562255487767989517226708878407464190238821968264769612437036419206770541125151746200805139292541735297092066772553438837568668966694617329432987257483805840483508586164416865331069273108771361275558902489202660313427083657562922996785242712293801610044227038962536438414712765203119949938256748474437084679176106652874114486211963300531499880838329171905643737501834293565527038773308754449690115184436461500612260328003486599511146621504911295682317825318107602370939310901815957632071864765665944447927505545761135611593281740490260151230899251098444828492027952377101781084887808614832403647190146297808588143989990407716010908478502615643785364921058865540157655637482715850214985472499927300582286459632945178468285707649990844012173527868034152054479542193675283470402612450748332274567353447077984732144108974719246736001067824306884206878134216444367184043589176628230048120559495355820148071087072562237973479330894558579968434061511775732648637119263695613889838435402202537216267337153028009546611237462431499086450938216069911302246937177716993879573358227779492520498066287564473678571239421107663173064950915082132761624437500310321659829478875464528674169504828368750723142445252598659127166321826124502136355436752731242670652844118310147207176139575524013626923545305127625738837848519307963367239783221716260908273040962700843911625248502963602758429967645135643189522854263359019408177646462448470051186178074354823684313875169364231888744258801000603749377100807141348823903129811897165164874596545724355291384879820220911712084291317075759181068214026001579366328084219659124233368374602910504522211010644195238096688899436866080086290881568789761761643741611514273409753006912755591907865111151811434875646297010894678146362750139479723731891175143982342101667373207880552982916422645752873212339690608345338505824319602098482723249795399766261598404647425078355459156045414568946093489701019552661187705746639852556406521531260562300791671248831269732116893471246786497205020720003323457687993129609883296381650804210496837099756592211268174217376958762399070604086858861768407300027528021032492767157265318376977235734210535454040115198069276972956443934490408423524083183310265362044250786853503838351858667376674072733599105492941091477230085303868107990493082075877414873850921019816057047658348268035250132014229677103285957726067949637691098982025072081212810711164087351170958793592319007224155463821541351120683312548590186043038565707860269375620546161253623354312115659662822002105350467070483781367255022883534346928210211743438362069831417804402285993678049190478531876315559941962842430448553425935118472561063639314493638094387806820074817682455126949909810766292338607191607456197877388413545652631138854928611230971354073934156843084998931868096711742409080384214187066282517627989081590810480216343634395804512642249676978633653452083052699005440330590444118932259674997857294167691377521558392337194241682546765242062659407981735644772266479458956417148888749646829344100889572581297149709793286476701089906112957833289501400213393438064357602170189288013288351926025876685073834552102850172820728473310055043042966799288149651943564752484946648761390774575971861204753462105201728828474202851895445234148818967094778125095625867169519229640890831698709788541805795910419746072956235413123545889799846097893619135038189199186188442988671504828502547578157778332199719494520761346066117854522984298884354896913549200431012686684862340772145513029092446234372491762233683341948398139525481788610481967569729999551314899574858181647749732305247637909397934626291078271650746390641660817165669102541546001030211882843632642873535169742973660976159653028679873860161983153960246074849501588375419596575410919774664151061280797747432140429080178272711440488650507421019849933325612285175264989333661214440371925578461556303517861018038348128456003910997433953285916856968526449622527756404464309981104086764293048712771987625287858475195245557708669302178082189103881535873303067547760791435646189615383162245394398394481576291903734330107296801600780662704282205251596734936382946788179254938511982372811070729590797707709148894433958450409384104295960569198769570514401154677381630642553155507302028224844084516993175623539595019146071267955649453858044429305533582939467769821131639985714053865132227778076828479523106169665531236607634856944265808158835955937650737003822478500328667343368190534933969283506251491140947280924521395569467456877411412727602307694832664401036797691266627216467643067107050769783602034362818732411593925073322110522772941249560606670359042259651431298714338920217169395520827859849229719969580791198430992742939803851763731281472229514170389004379026488198577240935883350299708605693176974776542038938575097805332039743956158935701629071252615958180962301953622226630503176297331647778784308028036413513834411618944146027414916752159332346027631004132678616327096480063480802385390068550159000316779284325666639312885528250314458943273862673785551329110139087713116139818771993901871999210484221727580013316763399607401791294194919457023671997840833185463252294814916483588709068030321046690070902241246370587153680782709827260617576839003568069712218193012640705724178211133396599629962708913675836891238131805574654262904113328243134710624846885132771735948090452443063908334699484586558970490613712288779842475499341141438426493195979665072644507828529703007921490940666470024618215771672019892027256373143413983911148207947516554367174390684346995629392586060247979324122843143150112910199942803493946485327545256577483280265300975121409084156521048309557743574181572394389832712912520664515182249903768600373937736460227873348898626172308291826026557243315188512216472539114007385671377031523371900362253210506399107533602618938150311720502200701563329534053187367403614902234859559163589451621509303989913312658748573652960349050808982627436758570146852145372484912974530658063058470590599672061840461553542859822284905790215258668563645747637547477655842017024352905177881183228139064558194356141481951645402858453259232072411355632932438891816941897204522468530261946422065010183322462199187553091878466795880459245390322686671380580964152170432966019317955003978497447491633933942176473135301824804968928643412731337994504840648740268595849134284712327156420390942810158361547927238467699571732082384408861399646872392913740096430849848068698399909575467855575548329645996798128034188233959517515419986369118451567578140722078267444796360311554463475149015109269820392178736604919251734238619474340941026080246024371300796182307897948778325050914776790294076865604446615769246246118964104233695870217858906960285236156089336200167229820240307991229674974227590399024981977641501529213486109645964727737308161432623676927642265812847413585115546034200633060875314907373729956581642714742069291714318523611322783506072317641812229469775089637002384997081311571481176705726131563990661747282206889625120635734543191387746358156341025567422513783785262419179664824109292621670751602017315101643786236083061904354592240483830919405781832939343354011125502652266181048624378331096289394827191612004578465415127386145144514170829287269805520942421909254052152250710456653308158109752524580852223029700587573687812543664607349909553255042398738933392197331533352921561852669085066797503784308129728743980609703798182088136212004470312622984391941383523689758927430424626847375252465590532019240720999163885161618081456473473329632931548108960926517602317193913729351852263425817272896484967248723274423045373836016619912257727513973908840958843720261735909982843994322877932555627119230350376918685542034918194853671560197933401967548864367926670590660369352531913388646917883033005498196412152767899238869486265859935063158024770050745635004840961651046702551542887213617903078290719503092009662653293344369833700598243018245103071051204995830613059902203116211036826952622753886041479794980407983290007767093717475192235835737721891393173365117596341149186211358634397881208321197221547371834696958692828122097685953629555563959965831140310411355603800871354399318295009561149207168510315131692225520748020245708835802851737637339015500419780797985517577383800056249001391144791332407286658773208662993975167861729278838000350836547780127189458031720734438498445775237109700587270218216825920528416144801562962219626935863777091547440541194574982076434670846004592200737436980878514948278827736876750146359667763713806351570642683929572740923836591801788856589543260601018937436435282301413000048357584719562495516460696128254120571077017905714334048553230550335729960617685327007439234887313406294394879145977900005479327343238805797524131505449548815573638589042597041371671067977236237383473950032283034441060911946369017819038046844232607844289494912099334967590358796114701252594050189425379784238489048663924985294087502765805326189633786385499312090745652580047512456730662076804291223297005828431328101984187855956805826330713634907085068178292108275776324298567425139196928884587632233403245538414051970165954102144165207548197525096987579769004092870871711003107799928400789626935009508180787921347709973280355930187313133519713913308558987776492817753222432392603010869674898594567945857366436355106127711967163009064588200576122721576156527738519136322960167509614472621011465858333011337146013222144764277637624269802688672769703621170604953287406934708867857718320634513490106475449702496453903359601702452122581460008083309974218521381286656396692389186113765118188870568702882805395406205309655018685617775161338769805049200185462968191040221370492046112185477171128894410500542660307020491134485633723901426305686434934265366675100712715958678842304132397398090979674270718966834262988815438675122805308891507831842996415190936858589904760864436651773576972590815364192820513534576680255610360396381132847990225688521497070796117869940687021258997217443343682575637564373108375304191834640850859077514271473679809161959652397647909131913881059073275924276982861155009074304415485994049340456976266362027719178292534974893528272570373861870233077616932712105227248071666946547350449995727572258458815760100190042817831348017106187737234247099730400246585046045449730273212659440067924605040099107556884173466487190390298170753013714598247064056570307767356955327451549982939690995065117833743590993267166780455316444647281418352225982821466485104400035983684721415361038731839206488317919012103673232108353111643747259499060652157144779833463546526059365509607228516296106734420036151473254440915712380623475315789827175571419508581798878680634395766454802805873445443135805486986025298231477177397006818858195270601506354371408864775564976837225324661162188498975900362390378644561460297602422891541498755239038677496959709974969076999995800482109277472398434585528702388538151373031908677061504154689959080075473579173479833377658663133759619382142497077189356164361333386396169883169361140440417022740681041838150207111979999450384070541406763071713416381318975323007644750595707347008623603443050142718749416439058212407543933410208661582028508491706448767171547413571564647937777477393437915068662778060634200134456940031302119823116473437277267481552095243887319562940325631620222030243345010033269453666818485101488893138416537670414597529459473685343449810529037134335617896662954711627248127858247305816074694207693728731666996785636448887014274634923933697281230519782473792849220753831211054192754645963637341971966021418291122909805347691658906243457468817465303779956496245818625551584978752175398598759412407062815529083195433590635315172225056579673014072922218860715158684024930077133327649114454860013318889095836196751265626934124690398480168379789046555954623615259540792954248636801886354025901705252467986284613052963124238034396330302409468463922547296487001374816432911629673425878037297005615134710435284529901600449222661639246996709611384298750481633149509748167183619843490823135777602877407519223428129944065170556977092255336378915062972857866706359000296678809272166302648336904768774498499628145051664773448940937430870009911611209041974286312659471283182276536824714789319295769429114611090163190926785875000411963193415742509872078247433675203405871562576196938785638131763560265136214937693248518247678133260568754364772087447617906966881834349409646293283116963444412868610571160501574575030036581348512805250958906146311340965641194335362948357924105418490005946299187132613016387375127077621355296682037533208825927227838649124934769317767813945188564092191801821057214837459715584539803778867896793635523452716379881582492764230826018768332452934534716139859723492431346461551940120642607532854196606442272911073711436130519863548228997811298670837475716337428514379446124365305404420951394113354012822657782488466945952878319975517423705578900146494603060051651426242888914583952085003454057956158951429119334990630748348427943326325549012692562873685485385162841105091671503636089198181144208727271404372739505378711982268923547488608545394981437707298122286754606100646066089236219550502500661085718420997476573898123537233895962217393339441439494816920408418620602235338564244651893093720631562402536059278716930635830209014621400943201889670360091698930056513283289488629640973644542263135765178239996429523796924230642495104714622334818119687746916709011879447775828412221737388520899054255233742265824180143942353765101714151885591989648849688966792852448173534022698378355308193129682760978055194301445750433408346497451417256029961423277560763882240346068166960153323454174252789075043690299686601410024089724641371534386296601443964171006196982586521852007401790800069777332406976715600432932704303807549722173105176660216172021151603966532996329610983123222967480744360531229633375210169013143410397302522849326542457897919258053767526617710257487747149082084879391567598327119608832102635953584873978734223142336540277337815315103461636478725119586597225855622999222561333809229140440921959701425706358142195390689253167119332104828789169840762414045007098596305887973034713909607396155101256623217454925278619068620756778135205049932203965506249792487536937261822950118372677160362696209584519068225950289749898125885472105825261191498892587108612352843505287023198912163988582347211485796434777360554373198106159606614720471317326918196373254066747550190172433036210808054514437788555460751242844235088511234282116531633425124809531838488042914411105913731863862405630770889322294802208256502304796976994712909200914439835993465241966504566446744353918968464864350398001915435810064907156129508489362813541314485999750215790113845498240554219548297270318623608924019320208227002351010241903142149142220355601586471720537764273487065923311888069335358771183350062653645702771730944946694236603081949073905976746593609656219848397512019866866637146382487845942473114699807808650971204783150473766049083236398985870092918211485243626579373418297831526194937219257051032263803628527607712351454151270761165281849266679743042753752501994568760736674662481405350379210635784979230645873474555476050451148314944548661425205731363470166610813388881612016822164136586372442474256151727426901499117474553807486375241632877822826015297511334842609150172165018171324674496350738923675772522184388085808485524517280914273918951279908133385259536376784450664416089373656901557211805880579847023300360150372950743567346715431854913798311811466059637154853308712600800992458893943905867596564895414571110226386043468401613801795775142914377751915346345253800797652299388148123647481919075739526973134778958673960594985504855633257752055452508256928507422564021092415903477830232999246514139418370201244698848150440822494770875935201081350729881968562784449756192369970179938353045391726517997380637550476946047099393326959818893996448919045786537476854959415941555392837369907315822033293474391257565298168454350021850143273421360685693411928156040621460648694158652980266084921422551207870677538532847522954259465444302963213965095549836329443805229593658313150997750505690424806840643278168825800948322421914024983237439695603593524414562811528351544778803274141431980996030084949184457063438458891271918644208427452428234919662401538807998916758730046225182941307305013885909033330259992072407079121116733563598309666669381506017491422359144346586672403401855009721936513913018036803608403514151599821414862240865871487299122093748665503537440346168188188411181801712008469878351154651315071482346569989376871693400057797037117374840785871238929203468958086543960831251153120044649051556701114865069738975437775211039632307354189663001030666442091755560539209811475230219373386337715017087157497203879355201220741371860998000489995372749468090014867110533342063919316397124859590490561335177410954684992481231293382170895342027140495364496044377924546271975370806553835335950501175262419143089657306654651898629393383980220649339308084797830443300925295102327717740682452546709946281687846234305646190065292654666415819278692403349905472678339059747223580469382097090241991733424464466981011799515886311800580828058378015077698789677647960928658747721692901481969185367711365226150637634304447045176765462327820605103118939679189606097233110945031937756454543185885002257871882499124457440733259987423202770998198237673795131554626133598368330372949158272422513623916239176994463829404558171431946967438919155998613824230353264355704396625677091489628175552135490468459900641044408626458143105426297732810389263201272219527938587602088935219881406203478380755841370178098201585072381316282017893085677373102756889457947737706938724782109220322350490698168734425972023870970760017568670089400576918829699955575775783876027998021353205006994055249958327989370616552097078471900604856029089326594548474156902428898011972004015833382998720282101134069363789567846634460809983443211038024947263911495127740744220587077966584955061497348576011031432851877346061445974239405221326051017680730096691318984786510972924943266796395268961574749859893577783570364158033861553152891208037858804398508635223797118823877887271860797676477469350073343777764660898603715683522915542760942648597380582659890423157051547551290820316259256742800711782010544320864202575013932965473925872041498974654757162659439077948884272479146907770997338698963300382271770463213682291275043610814616479405081709659801747030058809845017402965792958521865686354486703994632925434334173964844221733073004350540938940135921322514173229455974258982488807473987742820532907269436251909179888694371193529196571274734352725192659672398573226135688664135517788702191346016833998689524044454581388906277234894216257071511451022128928834426315945184402127317306135186693921201073581018603680182442972086490096168948889774005180107825308001754502960803805772467688839861094397466075405127768005953453519562723714906098338531716056150764759027096765743676375221881104716540504128944569289440032374752489450200516914822012658560689626820673983326107550870790977127881259631036643843717288064339170688366264447833990653347719245904070372150822410517997686656560164599218795164353192464156498512631070531986822694295803972548578730525615825142817520917423140641090217576655257650108866313934748254338283855688402245865113435511547341615973581812451746445663650545147766225497343115765037368985381945120249950235201476641805637293083947000292679332812585521168498105343210245999245927086450978375089574806447691745411323964994987378047339567157194542070420698221233411731560121230642223568246175276111804993840400218893360101194196619426496537148632222522238805957695482213552469614732515755114925706233235311530278303204242688164048330278784216560718827420500312089048147035623702306587387991605959500260582405264306659717996756264707683779341343665604666919718644611361245008582337646079095859084010035211233175599342962414401073810637510750414058722275007706380708336684857534715574095736531728805203703968634768957775931318928486342125548744747075051092288050131626091034393152552218649244551795906563360027183509723930102883622102639141535274788476483746324936283588709117478906357767386609535956232199308515297305357542464791614287547215732623177270000820675687645146363788823369609180750047532008938679152798563870173130268568402022832103580072424316571939301502096928688306526608624726092197905482839157322445399471306440665249211200382932595894651235461864410489360368643778348476596177180285191571336623803511632605319305765389643105988303171890303492045525210982296576914449992802008013754677643278022823231285606323348965261912922908208566762408206725259366714369986085673228808602503920145418017200745780554632113427099447269430894759893071153527346135792314483663314633014106608110803955938879863744075786795496519087291526491837370678325428261842203247850681302152481961932747295530410387971797552539525660940768001040718573246390735234851373334279613434643924906610862145396374308980280660802516938250302433469315350011827155493593804663979312977369512171667122573318888362718224909363425477447273791014280413528837428800004425245956553736054611286460411248236608951141654449341401752649635219504691390505905466893945098002875725331410752059872728439644705515085506867813801582244750806251470606549759914257527893942879081228687000871585044619580822921398300878020708890956844477435659732042174472010478561627800092003740934504966943591410787016892626301429111583165842468937324375082221537565877555250740148834391973737347387296130139343707151909017263465706496905277561323755732958174270652595747233472990315509533320566161599345188224591089968176614094036659456509691384677286669667060187580441929170751360076485439035936428935316120863550599083792740575011264731353097728576771167835629144661916557332473945959669940785489618932707970890540560019891424668778957349171853671750664884025160177340018446485876827426526715860488474489881941836063757276659671619307795400671717149379865313041776173638593927981236850186892770302078958276029570248760018470600834951983649285611653722505310192640560246057933120966169751922786369885717926846266849811716622004767287098247574906252015744431832948564399502853926477180358943105782042726563576073317435821366827847422832398799722304257028023290666399451768156557018614973874907593717629374113102646802689793414323059080867592981985655725188245670019701029819788898224138577528071272367313791916879513347838826008995454492420503287070801225331005671445464789693616712502409222306546656356484981988339367829812657281160271657250437313656721377832669521429086135694442751878102739737674854987741299721522284449168365067561292982370453024781247419173698381068970677050737410241059241254299521726191594304195331707874226660953100380549659105052403619119590849977485335366888381631425183694623790819622246311400258943299027063172923506937918959825476026701136300616438164477975115766851624816020166448159394584754282348300544039568306490688729027194911632191387370797430938604708340523561879021108376560281454419182134562463415065903940954515146870901407628815062582540326765888232911450678875395369556037422498538219115296746978831179417260225870936307159732849552149484157970519196291940954716605042198836699321231908833249228860691014317714572485980363268578223767215365703878531461209975983653444098402943891947700998365858805089323415720805948971184478009675078572907207179368221173644104492012846211100988667876686789278487356459479090356801027033842431025449668621150332758124900357396712311551792160558474287061112342649619282349068373989112671031665939131773122868789801256476143739553308877087623485843075713942333927106909047251741756246442499341866304645014696329836334832570855174719031232144233307777635031356094273101226260590025198518286385018888362750314309786621404615325287866067662026946468041322282381651823128431996366877608359573208074247649191205483367880684681419128681695300857321019241907690945856963491404976959463990920641717957042136006600437658439626294180846426456502553601116022948964176531493528152300200072845895952656078808489135606329969867937648446743758657567756504595262019302999752564582367981210485670497650374891872426734069132950313038702561273472154593722721296482700150468120483048654973245575402064136473182908571332229330337309883287953425924103477037280192199312587288813418412846180280108851440126331556607787607416809018111694366884827060761261867403781670119003890115578246607404377525643739955001034220717369139760217175694259573715997482411912390710743620423006399165425292626815509903272710799037167979849820162742597770278182599098257569655976482670264072171826876849516194711509249602467266448023153313412685352524262106645355817798198044525973334305982811859602212910119662638534978014261238648570232338982628425576832716984265345419970137154045461067472183084766573875360758564090197249536097214863941900340401799460248948329335140592644026599285393373952783489575745000569968682867831630637486385998425474348987995519519169292783359123553784152776314281205643251241582912218260207195557809973753670556582790097363152809728300272472492788759362030276922349219225535196292739426814133146593585186433440061128518026177147755866094768403928439897892709645351956010292190786140638681650366088161918090536501987068905853380824959824389046967936358546260959119466894205404028251684622898081293332914258090498970273472481868767501007980055391298420442280028499126760430515284148893343726632974717766705989510352774443751298354633122917469252940434849006878456364370105890979578170203930531862361620289441465595531781657339124229439986203370154479701362768255199904839247700629889600313779172976260416468848689387902043148031928147563152883330622223723349358619979351402559145161760586597122210783039444803669344008657541782921932545648207254485366140950242576443206961848873971160730765117794800643484231619330343749745918999306572495959530220018666148976974415373771003300941449360288955041249340455249599285459979265417534178238628907755664828647728490558498058092098649290127842095535150297251897758079818354513366010499977906829868808420222196087063048704714447177283164658551203421522131568738784907300222057287274250353998789238433557445117360097209922952868339407935611609297628708236332053937855458481154543042752889947884849477226380350211044177355969643452200023254396786828395569251978280151286831112589333736576844981612644760303239263699168029532554325075560994334414556394512973182283635200259126101354616713555632701565508042132204859119980287313815569629246188915890031012342838794451986832798483657332572833001806696100136697926790297917644172941090570925371756285614622506997248625553413075546669436143940883279402043948116622634218433653860319039588389752371431099332752518281292647988587123824809334491741513778467393525865304315723072404980152048017982577339523841083107449437736699093881105707403869670671724985117056247154370094546974932287403926500424364264283622192937572320726666422045542454324628126738456241367144029958574492585827828822319862924017652326549711379914557761522707947755196571385492885741819821741659711535137910779442943328051165085043101748860139392682257027986956366408162112866576638986492492167325162946925207639063089867627304520053961517872430494445061341853625017533197230213392398449337958342433890410782396723908280209659564938567283142684070432306310045243980304543252664886464111743830417806518274396722199282032307976244699299594684500767019915672995780735344857933080877819231642353805687711986436436348582572844766559532537870433884619497390549478289652996144604653344827832016663724203668020341217599119457398287500431181150073426990445786881244485494824101579453975392461837500513437693881275322244948507496266231110310653403184467835331050382403407676872938251286427014582666586810120647831805654054396109462115944193939544192350184533441176314194200617272550469397749914988561267505451208722714158729807159954480675088961262646223448156834087291150614111758013685314836245712862063388006026780940192341491525348453020177625007526892025765008571566125939712394900710784926221282931862713003125947339357991331802746402415345556313030555566177721919423784086285911996019138490827938269946856655179491546299536580656775424792743386777497704448729558188482838079433192763524597473380381270961212441438228816792299514138353009933620757042288905846727792398803230364069382472007364016051135836294969737218856568827405461448679844378932533873798749334381369580024509156353606783475526715348960343608484272351199616673963402915568785784323465505602723531672407515605420839454121996396492550543687764682782331186892421340987541866512621771445844428723127341705142642834296709683054260439918664710336865282910675975688963742810724370719499752644541635029002833810983604838842575967328408045379765298180708739446718732817913237121594796478491663595045785398973464147904462709131732345294571151894195983083078798593383836987079047368125693864602552050384308797392122972581421252861402733392770093151594118897910597742043246075666818656541217189758648112490739047965889960681627741886961543808298094933986716640504886440486078702900298899277256480721643210528623027096872321729053366570741641977560961294862516798584523703400114671478862540605898714305842513795932563632441960266745288669808640720521145366808092851717046864311481661240836345530117374427035193590806630515696205639319041760627311818368355046876597373738713090014791406429420227801685432385695807282577495282723150506821138560692893037793697949220287740705360280226119424914488441321329031332415035623157838983560658595857604056411236863436179411857716900772489392505622897988756736449784234524359048265832215391723621065023371569788850535753427538272050598849809587211440699751172303122262148386206678773094268725906189189278016397309898548839301720358264389255185424600915604798144857473756502247394190507724876675708283438444315369458487497646780456006181889981156641472709686788253799587242502189874564766484295341001167437303923120316241433101139904183106289702978727976715269817500124652395454083337296553897873692065926560201452228819094058147582919687006258651934743055313853285677817412821363010822334574978551377581251145530369165779974136540843905841217886170999226724753525461202074943108258357447633467778240316032306380496386312859584511351751919043708342696520019954340650304336352754638303328173768598720739752894646040069513771294990574507832420792419607216298754057349254120258093249037261965367911859155386823742615549475005865091031572965179665012319512933779980098111284650950104652015163826473225934315447201310989872083752328284310726827268542422736699454706215098993977404776020557456889717375070906251745032774921726353927012977462787928662810541120875530406071302301721626886281938977658584354089627164831612575771754793841920766540342122231413511759339959367493431499832584095862205401400397263621023058787321750288749547660627086620269057988747635205571020472855735409851506255006323463111111721060792052609410030711239117840872308548600587909230495732719102375355847582412487125964118628617236828439861383908592780600947639969605476792179201450143379353997263690199892545371721895354537004003951921127624552491303076011367592334570848838574065740924531460771561246379579649819451829505624241320410476175870120599585193708238802059804330228069307400058861592884552226674218020441682202672621403746963397855440635138176430729319017909827444594462067513075667418623629678181368224367935656688769472302648094046200330744779123468725467953820270252810250207833459082322320848314502236995120108123595834879228268935059855915326958580467166955285743339181467753435434431608052393906969611270328445344101573873793790653762836951959649213322030202653923764142729813033394788714817941871985279053934902395057532113011205952154718888599889181189550173954965653486263425868181364256790117356415933963464170269360626543050428926704598362102448905297476888133440896995264943991143095529065148579800122586819356191598520743724643112460899108312884198864792603467006027512539851371335192179003706124839866433929740063376190864465791543327074790085817424887688283671646299980943319570865642122127024598210274970360905172956540915189517605016135630708835259684409712919104746286713500337382775042220201556661321107282005078411968651943528223878543882763983351960550988980376619042404042654265289488067341360908444160145686869298438602793268064227432890436281354557011240795501853437147612851634296450158187073752890338366319905575949256323874936944019507925198849689915488728121502621048339348306500836251282893883683588471274062252078148252272608515392537261461682703267392290552545888886028240856427840929765976441396563419545408265486120109967562835330782072068619670087400809905946390386705674356369346068283152764787352583640008410089271239480834851710964955222168361996287707695134361243295982814161444003563726073778693502119797341936388861744758845595402174941742926217513127826690616066864768722710296988673860434065736913216483634558515388111873186091661200696231096597798310516961307728291552795325897903875614134361855123442173940811273876767897542065316268319400412705104582290358405291264086827922094034747487752170173596247352436188571445448636217353070808923938028521899224320211342843732459978999783323624306154555462025763949165967431393949794485462216080130625469194010137411760246994418519426807968422843632617625574368009312697309093852782628404555937066993231194112272837902587498280682837208359164342219767964038032431701459542557470583989291799098719845465395747041654707267131474881169919907993672591896762694185408396655845231002812005693478668421968475583759069374022011729385351531036308373816926670527568487842405907469690245420364136468087347673518872938119191125544840901078236087054684556544743508522612676427755611637994496970419162689931050569092077465855455177689437533662336647528891006232101488104082519747100995445990630366784774783592895360554386935029762787727260425984862088436390295275095804248276387605512956694240557486234688998813520446882403493588474337339777626592502818351238181766117924749905585153694480295201226595001622423172310155014858321171314108541631781908161099891251542946926609286693432719268952434703495039034720321451027199831274641828145522173430439990029794456352407994978110285439181139355431687357541967645829077146690910137721976142531802079669298019617440150417051323257770757924311068229962628098715858280522333842940062983216993703611702620310552841591612657451460032600945322979488997524500396953106893683209226536139728063441726399259016949206772185960843908858315122560989391841173135289726635980376527567101266455305697677968920013072401416418967885763424852624045149539460694156500638459916166051965960196374534093430525691856450641517933274412463907745349473095724006205770448634432923531335995454658696286376998803924697162596156360305764973995092135865172079367819732140787427422170618683574172127318158470768088690732616547529749148796388214795383934345308174711835002492749917459588917748094261635409459342135657132955614540017568971237978025333122498199724327742980709485933374343331059763293656216720737509280206880752383074749355345813810162500739123966933608713094395329022563736918599478012267896869328466354226700079842277989811374105166867889590783438557836638962186492521766682868841910513039172473661662424939942514896127474819354830786572607863799087162733383269078798495335457587297936869195947190850469621390445163877303538303417946849716206474071822910955997277798182023459788087964820188206019786940263680565768410177231169543768300964473389928600558872813431911922157452938277298052087261489594343898926051146553602343418284734979386552263427614008232130849187424754634980765485402951658733007660839298533211006657164606963430042422360120275172220160062785785512177575482261500056713961806852333680091490919497771796331937306605266331426757442572333893640102937771499536886623331106631407825446772229736317029014452570046229159677133554247774061693557098090444618784919474498538655006110557827950017769457967332925833387253719080430845416337823536955127029140344150777276955256972257163627197434068243542939781300901846410253351305484512765117919078551849072847796292126483143009721272841489205899575752949760213919588846767837479680108865392166292338161078601804316227345712437261005370867368509597513366590080467060879612079549679918548108095926192467882619622563461558978483108417747081796530017818480272830002420477901742032354024005305057783492716454763102878879332236261225816318764405003203331906663061015119730932664984973221494341209427992034501654582842668640228740796731220025437453463737065410266898092675551041928810632772132748210095323205380076372129298420826595694409525199265850438312585842823783704334392235283776606582959130784794232130644880345291738226001988088936412232965297555289838080212433173540785635815711777277952614311871189527718939381486600315498163951549973746404058862521691855134708236523040163727692720621328889620582424461730752290490932207760837821847544072453042875004122923028252927216979195365545824264157958298034863675457784556223649713450959050419538125022554815841475995969489152992766412615133475650760058537874453725232077993402825067593624486231347717418497282801563992030713125662297322079416826292734246691816974283164705125391521229395902406884759212456433904847924861744815387703956594884213067903451947758718760629989006230413774258629975949309084130649977222024429773792793586685398868496208366450698640205576140069452584848755253537189006342142348169043709443825827980938137136115815686886092971517930383791346834014321907877370937755104743276416370224668361404469226304639308352657392395033459729056148477561881749170426001308301488046043088368076534509054498173145862940119763880876273722880451796210652721379579926438989630192106354355330864715515501175209738789380486492742971022376822754296774939333552562617130907253293452758488891207082060052550148120397661040202756275264906841104789120840275914102469000994886469874142791025479892408573833331770481162944084034127437936430592336057800537666681581950214880898964648451187611822342279288939923892449630964951153021696761282659077401159478534553487009378388749771834696540489950172612691983442162325116837694560220392450175079070066607108560542388148041564259753509064858234276474393240449369467597119334146153567130268629952154557749885453432467894018031294767335656041693406391428716461004578149771199768608185481310957060010199852789667867017230921837703081313893537966116500185366672684241305264572170451542119027537639852427267838846178504400324365115369866277914508283165248014574662273840842477209454961514468159258826042296605027244866902918126708791153125898285797768707242547515498143936677229464231718316676274333901241602234939591880319035275411386944717385877150535826922658907894470760165878077191271503465725136264199173986990914039698422046185502926159076479736301308722260443206690118609122069660429153609255951615207826583682721335924965759998146624742125990494971990519840266659812563509606699332429321417413046562405924574154314860358896552766674310887379778640026300113034565695502460541043588742883996604936517771088124745333761544235842233932663786382735556990265772129748959617914079224820673577423253690465773209242859435761329243093861106022975608094053395830356777364837489214005942192499363658118011763369413552047552655341358098498365504424350524206029085276146008107443447353911771785444676077071700559750701408800215080418007320866114094537567047779119732262223854018761733209621068441684530917078417333987019162559408588878281535994598309690181207141382003816854558436974130075285666944407754475365496832388652511449982333368919734968092384019232775146624109378886809748585769364296708839170276451250303055388021977546110626677142710069189063684330008630070856687156505311198060746728626718647953218222305276546136056244399939124001289891550209188830020975994816424956094847145681173389402062738007231334241801422772587272506503214697636248440238859538944523883297062965094898861685554288969488871583680625039679622167684589320451240544118269333101262964637339060405941085037130001617369624997285419918419265174101092794975756437108729167144763413536345702933326816523493634902398716224888415618305565786666427330997343589457799688234484999655245307304632473575297535888466566424868862151545363284427478419395431432710351425304758746352211525930250567386847950333950019548278011399385196986643113843270230925239025668501598586111655024298781606185851737047315384902856685401922779505382159439988876979598637541950415735112508497332530550993080192362423963416660596006428336783481303856519199030281655854067262522980905923277752585740382861521885283016413610570777625168969588181381180027687147398308724252070124798830438093891356979616150442718383667452439523408956673989330040351313014879333248769983200786557603657142944031393670746923956913357394974412501242272580032521694401393938300719063768137782715525989261279196885674344131214979645548497781155889803415939716625396011871120853971814787033079490053522230685265064347953844097714006621284501113814311356394118953936811320462878498674043341302425183530153525893732567596607167744665576527407983928310119094691038651271759098147582207271869097491259625321731624237315724327494603461316968837727386755077693151212710869036624316665496946981065796610451912371866712003569275294731807689202837055965477290197674815249071516138761148607441668267693490099934503152664264234725383605652258770081289717336716655819938000892224931765856891522959043780640089965741617965488175891259740804268297172633845448703037644140587390537132189126334902326382544794620710307683110477024964379994533982393022766371191879305215548175504505347623435750108461677125080499042037511245973742368871471695741877349450837624209470793852679841558573421088748402927039297681766272044050457521730558365401136569358884744515537932333574499195387587348602617604176739531697170614918119603673392795400231864169266850296065077908634455424763222501945836142906150163213956098416071245905775911903934078009413823774837387426821696049618290771933479026847550037513201936161548906853378704731273605171702472003274009130642427831703918256796944902817609911748927240902476992653698482422253439877570079616179362435393748289122070296785955164238722211885158134893057165231937845606448205481488695869142121192091275582356891381241982499463526276608159891191989937576820279053178775514804556913999918416203948428525711281113533544765137501432227368489635663466073981989451678770950525532377311885113344217346768722863024673537053658875926502421010204539170371718359600460136571991703574784718682884968988806909963953541343135265669972147205632786266322782722337129403734179478461084678944616042748371111141765596493918986242338723176707321098340243299701889343631658549252717357028439934262459680218612656510207920817501271881645559691990687875758914704995597365766505450695659988871224037623735731673504054076704395877418855084722951571996823673054841805664802812064158057622147989701662704473100651047791162886560010744142086265952459082863465094244706918447574309359269982390820928309514029503345647581381848276756956094407078639084445023774625623363049713708722880490789337029573133480749560207771681867432154755800446822847950489464557917805490168610472535012114933157111202905395476767770159016871679511587682618842201064534726441973618688086690363532836498492155274568583997461261012170939384025421840863811170086613706974649687324355544677804264629946568764984414222704174459392551565612834052271262562790598627975957934924208917375230783852736737639149177740683139043323200136843617801842853543393518394200958155844087215276504967659093141664904541844128953947205700662031165008873846458323046283013857005192100957518095884267422176591444357902805166253951086960261261111090687465455295126361160572267122307992430084372353101164676049808654140303025780780317684571729716811926839144065545860729017350996227112325934875725641502897688345303228320216501227386339820081929270463991046698543559790341211565078383949647342719167861776800947208528552750635652041532410510329533606305721203906133640362891747994314821901620394463924873154533771441285835371922485304088474757393037558449981797885823364267803912024200834894701861072009179361319569019796030779383856368019646272030846533412872073442703943109473388681500785376540092914211371545105476594317041284314092740231650470177666146333198743789809165453944480293445196175444759320982236545200490145634249761402887469404978199197900959472589266575389265009385744416920077038947865797643953278501639740859331444988532674764054503239796401897088024088006536487374278262243892452649629985414951854588016341554842599748929175154203403092956021384552361507213946939204127961153517442402615948566709965413977951901686976763962745074189694923872199278879740578124827296113348140963015251805941530285479573586271686325981059708230376125728163995551843212293343447534074973583116644885500755733124027483891187012218964310790992140425636182342495152443951288326264766618988447517614089235959824140172040700979334091209962239886726720519328744266917018057932195892325110807481575585056658026089282081610877235998686582200856810745999861544992611170209682029046867750177295957571045330100066535327553687279185636995581315190558276302768045934134790656061277104565368935740417230248911657633579825628651586342724940768111081309420653972840765103352402282156719873582897078797273392204025233636276841167149297562623218633762455013729813515736779256836357362578967026292214150342337607575083071526962047070831980519825050508861279999752465192289595170638207338844735885992739552897736752436999412994546938746926972641336661845716463261686507784982205585033183107811334204479157189457425266338632676470582078988121681242852672034481830699887288165825537727618677355485041782981526832998578216463081531489110383405622509612956424859053659343900640337954599563036699364321592567934796035223663513520670043308744254864462536828933492073676091527488882711756332016248667995447788863433957313085181265108050500761770907453175543956880316211117449702834186335818273823808620964960516188497771007271401264603372284954407005660020619337525191200666755723929563103812684859800663177427214495955812273701818093863053238648943226401555322363111909227028678749178835070780901820236295600422603841288329000138493203217407045783853174621462579039515792597438695758565206796406706032146606274266430032700259032995860648638925348605940109375434496389266122096341109847005122222077210551527037141564458863956419227069660132190702031422210465786089522688562912924408664198750860603455420926434971514900020941735401729676054862767633930192179487347855401699425256870490345323524184357309767708481358039891348811484229724220220016929805921308116897272533770223482913736410729204394647624675885924307716842110228444633408046483276216343755922915801992367606232632510724937054066047985154132038854280388530935849606062191523615733362792316785769582441269682495577522331216365213207320913399343278512287892000718087100786547404384918422193380752791733475723085944579620358189284462522437897327611169802394430653577191795755363738613651825750582720321641194497190554946054540192337896719316529214660086765847977317300398808082496634464729328509758415855706438358887338716644412235926331148453402843006450741800243461405788679679914111681321128787451057895189130451047737172226451843200105433274071381014284020915025948946882098539241657817762766984763518833173209779953888970226694476048676389167888097969284050793355397550819225076982422067446636086533124561563651559553477081371417621341753601737710403553091055715803300747783491283724793287631114298222824719652627351943504164486131305875274848610433640244174629357364134102057838283718064374639008486099913201732283019232401062274413458710380940702257862258742897434680751302987593508718055519970205238178839784177504709811823495222640228708153380748115592553211564760322148665929080877788485825281278583784543424753875448449957357750591198831029956151924425776035735018649353037027694855124266975096443800769690672883932684068791477461383152258186749143081333125653386465553569587701491142097341307096078067952687264860196666396730517478079744635046230669890259313909488525080711306745625620601954265328410006716610315617822345239366962082284254834376040298655329046591369555370741648831696287035900217344793978059361167947036803145225586089659261732515681589054458579144123402613740659627618614432356396741118673814396996037875410285537434613096515668035674860358208034000236922318650616939516850375307324223382827425493675002900471355141500371465955384031636205570531247045871134571868431525888475448833763321209928510948215060912037867686178580047981653270871712973283524775043135643025339515288419576981978128551447660925472688648995506120684403507995823762642090747565004636899153603634245416207236273303625950237576797397996275045301988620864130331385204620396851599807114787835839172133871815761769053800381635013333186731415304226576533397503925658053558891434888357953385958925430482407249962797038932188433962327223188334832923006644231969249463037894738836281240362786105147382087652551060421739351714492275420069268317162755393748666737301822727604869586619364760955749379940416809881885215190695493943612771589457381127711780921068353096478562595683937909058745428034409854980052838689178113101983850083809306864506598070324664609284255736710649183247063020899254758514666528219102717088603903248935140926028672218680655338205392939441745120343043069064780037333498936899340115893307712107164407565366676852475869893784484046804831732040487701907548812829373807896247188843793204130277252956336475864380219225473846208931495074083962243348184369491050813643418242824047960933076128577831671044957468154674860252924567877084791954953742653685989875972090001771847822927169509605971348179041663277009692512494324151555318108364359863459813677203505218600276507831195415565072013350651168497237672508817346185171719974143347721253884362889069782372539818061631811266863469298958155683037951890321655379687680987001376023678111908561205869494787995693268115588970542495881537495216878121655282601143071766670260633840901298174232108235739544295733396101787465546700159154537082963242085243162653408991750148645825590063145363333746530587493490721505723621903820518679752445634749747987857627215245518189336949126261690386642408536026165710611944499965750561425137564782416105471913131474419271557413471195037846621733409548675957226967043269371017469042181154952084893209926054725716729145864981183726670047077993921997544299713305663007445980813265382384149783709836416854474570470264790507271647919544825135901536236046036731237711459032064372254830301627003600247211745504753522843014040872256275524187175312173504902059765311280379217219458743219957631283650629745243288069567509813910110932053298183386701962674980477133606495782799080144196069452741927266948711346323189578962016275235806989034490139183144707541649803496801731511474471231919376439593156712367362690737360615981771032829896193517078011238926775772371461645555604189469386206878214086541550770004443684757633946065957699420031740832314288481395304053164299610963451169251316352735131571973396528437347861677943766095393298481349027744022801353490253767355209829944026282213233970503248356738141339721452978617519892736687834650892134515656725392478683043618414208526453970078455840449767641731640001549803266712297236642315343695076700580488118617157236946387758322849698953787841345043057937495129779738391590005684709038277439895692640340096335504445439774918286262839668749167668100771879387295029055974820755557134101217798249787602293648626335966543213544588667198523981968853743833710048835671309231402558883673768468688552191020148902423849985663455847977786265626159504865620678983931420583049612476761452565560948485858725786317195185557126438940169704460991187391968817323212032960679297963334828645392677210118558954571658645745308303991217830608681744994045958072213122174133847214978160653758930660058087121767844207404630100447111408284400617921495034335962333982402749466670708033163232470674435565714959758450417410840687612452573972280990940144422388753278966292240854426724444367573932493441461824972669853558426124647020962997928896404918960105302079049003153233167117076360342973461960681904707006480916181156072135130723257476789879584022820180805040704826736033208954099254987798483181696972189388235477411479261666074023409868096212754932952040708273126304784195271455930079600740915185078588361811231235133757372336348706085111983920139142176747601078935643565205058946740741681318000874846109163165315924117824335180851734004569811149824244773230136754144828627274011650711849361343728674362562144845344887535518373857432950813879725431770637911576557121367294436839030032449320007765024437044705914471969241183964827797569901376947311757242058258120112830413521986035995532585304468834218842386960112396341692355883292026019549765982595367119196539831158927587572010589589295302376269221430849832405474723711861341332292714668639306861517589133646057298829852096500997783557064917435726014368260687693826093390044056483397371149776779003359260261437887094547420386793620277243578785535439538720971167928013584038962208259327768050110923103291352124358813807320677110768368449093605285426390883968903692667467256983650027690834853208227382328531038844078408043510142166884639599028085552708834154006931856603935269668666731878791974595231901703641998732476774815816330313313256689521349894099250161659381403057395707153874215490177379061767000728977528844516897092711546816360504979238520103837512500718272898162567118794106696121306429468847775263892580728792029708599836489833594252473702540248894352990408412955436491918568356673713290993610363900543291140110682554087828164727037671677771823360818703390829656717930077727216262251368521950276048147939801427452941542910641628931019900356690192787319583887590473797259942667971342824780374855864013107649964323943452287855781197203729807952113927327079310542284296784201156859523405474804879438938026498698210349685135833720984143391366692086905524592904610985369355981885073656963932316100195081252007155641905959867692997850438005914216978038253034088209689490185748039442613714076348520186349420491300381991284986377453109857229353251808205992711822481857702079938822851218155049843609932445086622379870554523580714845345560758570630733923710835303737457318012467835857091505657082597669173821292482952936472071789513970459191490391978498659106355147997646453781997853204850002849372969463430871476165075129258701634774511345743747967727285474423358461027602687229933373889705408257114229363501160462893607816819378325015355634392689451960757786022693989631771493058599865021443820339133940186426464231787915913592346854467032515103103000680582285448461318068104137106109624206805182080291416973982807097386166409677059762303454934275956254280617855752251925880786564402868987837692966629554807914832276070141164521703431461255533979295221930118617676159520108411703232814571430195161403766585127775619193075695372141468765487447279680820066081578620318812770495388748352783260131115933204160634005481173625916943520334560405557442602283828505478194283682294130701787365268560650065762303308271327822999968639004149240028273727270326484472688619075233530487713809926414339483067110602736217761657722475015380853653662918054994061064513468520627398532127167518084335123550737295996352935195686922933413806771013992057485118474444167516404862346992336026265788221595862351606452328856490995628955365742843926497532893679046684148489511483311877987331772192081399705637296985159185411434297253702707260639155010288854601751714016524360205091534745692582664078638554977365539232197482311171595748572509006884704038340514667261143315580960195102814256872956734747431799958059414815396905785288882083418395857349912328860132852967580329996998464166993153396711342538580225278964685404697796535342211746313972977468074942026437650938845973383857310800984582928069350871084213346927954708294003556623210308571942693663885796821466796642841310009906576290251237650785940721119634634149554391290287263801791910498727145597370732540978756138801873065456280781997200855003801705829229491082892288245656912468477576775436921351530291426539498672725689632528724151856894149473243399543643303018622378221114519688598736666808085913760438865714851158448694373782996319758018606325311824331502814842817982045342558953072538551169852704945759439436016136805111722417942815446666431260542867974840382887933090551368401712598269793049040585144080127938136185263573398688372401893854876689426804559803796601541465300032341337950891471870165137366552697129917244975638347289302955463086285628509164931442012653488047854466152620829498195599150253446739334267795737459615350593036684044796548185442752412740195782577415446711781428950208246715444817612319344740118095035440605766295680004665652899766388651520592709973858046919768872733046703129632770330757291323781662570745409025813710484739012545399752631187318265582063154053499703201722565522830303359907470118285831417647845675544270398612979227230740207138710354377717422634223232619699975391207068705488814672214788134996410864293362524978568863097455804585145841354068718122589326136827831433163397946106593880958583543678649515131765325738203597479606593093992125389362283232584776592748433840496571455675837637527970909275628534977223418652821790767042265855326667603158297205889888277354510022357159409740844753970624108201386708877583437318424205402881092801277201753203547676923454917941789548545774063449685735086926060011101395727377835501563426075384451035805862178487284097982070479935246215800113237346294894837994444703005472442286967420825385819693682476743357828017923177314971121041203731665013096783897031235161730872351721819004732120698955917392409643039026731484746396290349796034898355127531471900475598303163817999523365420947296411369837549440947860335003750679124365055286031117290931453614162694575572002921066725420883587432892365250299167480775671700551532145050125622602824560773224090376264367354676656373314529230891301770621208364608621891599368447346223974471205116028722362912602978531457492966742969021657477982937471966569754188063463886186853507418366731491120739541840629111038751363145538821697197904424387527448023368116000542566838039177610170625054322459662863618107120422650050624040063178701819975750556120365332461614629347305698218173125103314548690948736488860494149949102151658808580847044470515119487480688245114885044676740924432526901403496327001066745314171266980655369319870674642107929771630818134893163649119638278138760008600162910610750892746186228349048236142773017205025343649161863572081720674927048408613321635959037253503516045021245744396602856888848516703179529135651359406562902566353862757466497459103989724293392661532810399443834839034171178454450790384261711338398465255977005208558223259635260903911395692228406382356280107227112556354638536622652533969056388883119034172759114985016101448113102998828269850528978572407370796635493471668135325880913715236030010978996835604102420329843868551819422414468617132368482073365972229634022487218891313386686462095069000669467833048138402727836270357633866879700018462558572049319535195399918835649068872991801452600550354591756792964201239105101038573012975172773542069313602987570526486137730138438795085860726068478651521494872695136118899585331085425774273600753830566116304513712261416996161652498253571970849890289989925503343873845788023453478157442585953670303157416284317051166154180380757617696292413059549952890683901596253585456811577186112998548138065431747478771092917572341371843618393117889880160386798841361349672384119556050705011183010803575218829769697688521930767552140539795581304487589084453544882503334567581519594620808176062179842078852040070691724703010667845933315651542723654800795183400867911029730370803339358303268587104201588454625214415923417751543650817867938284808305616130643732572703471305759560539007438030097003473784837911830248810121277342812496246737548440268835979569267343962228767522247690327938040941064098788137098883900415835302459042666299728593733096178954555275792311821352939359663621739232012579865697000191105317588370586508977395787014896811597377482778448391057500928582735851185729487611928577436531105646285840073744559516053035837521391859068841005777828820163659019842679927786831119405401647552137515204146063601371811202514109309534687780768488518684674536532789925778164602471993155130609668526325592636000695918313294360915380807213421494276466091735015322317897072987066883778255034227236830011831591098138927702184486361379418630490655190938204125354687427003711389720716570597163406407166350623079119812195772098865442893360955477211379230575677430961766294476555924261077236464894047076520721268636893994991018176828928947984884949798239023288210092318018779971725185704318521283258032868123521553387295542115338734682613813744489771254928919088171606277608069428647846691269240809245351227034533256048157706810396711838225185185086062997632486153449617059513811702846908941484528291060397529154691051799634668536415877788716140982321086584446611904087035553604886412294891318917720392036899128521381482943064636769282800511473385134650296433792231339202324297744625597352598046210935194572733641212346213491306800354091560404230524406488312484571010290324315186658824723093627298066184122270575922447863166447128317856855001128998162703642765723810087883684860906422462891703888409985785718070800140389431116520737080520740522348031541973644154089530883494947390786356168440622744840255365913657911430510944851324541150843501833441461577035089879328274570190280910854126847018522143621151633494889420347641857718351227948658414960234257731787491521735171524127000360571849136537287929737207520812810301266224023388181800375459178305333054157018635464128214941473826906243856644547852940632336116380287865353207479138079816055217696575026792315176570071789079456061379187005179675522482737749642034191912497436700621486326208531727021406345469080773845190805233136327726788765456821211841266031041334888461277216928215354341864222451500407723842030616862917392569599497541502099631215552178345522052318035132144502768083484707911856341175666714847079022110604530607207395422530537547275774737741367632426176437782993205481375000183784472403419552490890608603316064494098461629217630674843124364885684822632585939945179757889697093382012449856988872730768893789674769269223201247222914368010697071534202039043806689683670187852699703090137206889549342227607115612622281578318307273856490825154934078182310585239464507486188874163553543028558749086686607713018002909644430052362657791533725367053967606566048263985073668498565300995673035047133227926626708681623720916690872045126166588084338166951670544181248889348881714487800032019341641112994479972033377291934814086516474592790002211376003234460319276190903299292671341346432727115323201089843816113062797295440837190338543619782926495072087467155946681971644619617394565387744587030256356755599460138743218924086697137885522278177849273226253505971009860514812388599164020008286402293993227316862409841615993143000225170639246300860444777710083457900248416502404651734162740285928279309619701636625080689161207960595098830622975836325493240992424612163350888682969703734268754717730026158033542952316425032809054066271578137694745634456283077387136087401314692932595359600927698938702323102664851919179669356097783773812022407087355385898474052745783140848043662068079526913172635530373158674602669804284129214950212614998300998606948960892382657001217939077963977962041854666424019250281105308537667928891445439216563626702140021404157641746526566351650219718946114753395693747030921096408346540461214096722177817861537790957886819174988416882932260922557888746364788183291419270152233977248743447818792449712413559754336173155703466600080156143943534998446978828247265020078425225694661411344498054046433822151503453581891157249519869965281632397365726263226332455992317287732371410563294758273176376354577191376533969518624424771184561016756637127176304655376379270930120756480667681879515458411076726649585828907293575320573286751319341804025178232298735915178423458085593020214668645754424747281328581563186154928292378442962493529424378009513012904383663634011458897625854813228343454484559909663617251545529335207333884279464550387555442299728312843071569881596949042040898238641642602024709515665328308969026365697149790977289402705611588249058879550858419956227752984112633544738900247394119934932517923122468136259088142548947986129047133438522840567477114110426904123220027256686973387284099551020978691605046941884536635555915436125204725393571734268304444235349463515384768783595036171665442005742124459115546169383282504539821818589332202802223530091636501206541327514439033708937713709446511484375289786684224785155836666542751855888898256499206153094884662777890634867610330769307182173723958418815359470810199932189031571232934653594008679646196143976527822137828433337044252776099573558432211376653865635834478689428646259482368366987931220933740614271268497354726128831145504364270593801484455793107254332467322412578134736838206954136087235529903247236968756360646491469746636412459527013943411768855873804844735815236308654491571231060380299525340838653846660131601413430782635359877285047652709466238445179760408811461437438872410053720888722148320995589469336816850234426291904266937674468864773664421085695325440064381031988616998289284481572881312876877330966982994785992130655968030478333787717503203658446507732729832799052614709493665742120267042820948835247521527549367009944869495869976494625055350622917542896262129338632054581269813063221250610592739076867693709987773608835030457912461637857023626880709671056051268082132566045534507182620894010810230535670215511383185652616859556935286628703719854474897422294830878413655229911461603336217252496916563876369942982405589580363484543102342356453980724414481960497049778009631977465036007427806922741995421416058027024158924737661843699350157176185204960045283435507373076037370609748856000393254942746312403725700057949602257000236470715793845007592557939898532521872392706158160769082891220329056081521915093531038562083785716329823302842868528100079959364320782250422774949700462564633914565129382942822305933261121037121754225187683391281346429252150667234011135833624515404320482457834866895196092869873841260372220432630522753643222035319481655419978653050720485089364837444875901262870195717292278130970202581081815496593740693965887379999936820503600296051912399703271535540923054477344193356329770662454055867896999866612640112822992208698852469872391460034951278680301492266292699190194481344055271234912927864482195926483998805797959403738865599453492124396128550681750889456741545921481350108743796864545557517944152661875490327316337416365050016021924717796105311890648219998049401768538785491037307454840283245087629454618482559957134746344840847286535304101898135608858526369085123521506511635067254619226711955411657592191020196452389655011038986958869594608011236091321757892668839361815204124011066420716009975762844249876417895652154184316536486579847707810653468360844774287977637009219857505012644300150208819339087636431033809573451216064415952182312192307259290710548802574234118537112828334047961175326441423308916891421042486170853995076112578777684289197089484812012648057004296581022516986975107150162447634165802279628898165874824603845081102814332653097572893086199255238179680807726836995757365954902748382558136833292111065428200192210985744867677404961220345061705069929009987793321031708262095859381392321775392108709280993549847268517935456966812756182771707189622851578961653363346513876184881429260504158401181485580809006453283290730754733434858610064093998168544760398419501917423652396388976964900434142632303218992804244141390311605321169354033964237540307672402272122732719465698153871278883677235141775298540823865846148446193695232275367951044180633024937809837002302744184314303999045621613395187841293087821349942012412134225520927482214412533184007603380749893072705706623694055760232225519844114605139809028383890831363834518409221640901394648317444413478354703668346120335441944254840800921733840332522860090015611174657838544919461479741005951872569290468962924688004833654161136544986763374443786100660304895628023842832804666394911646094436045480375411168792832769992303902011065887688051144139681089430998168011913422087363357841907982113695178043712429481426579967737866863581092543963413647667126591313787087997713050064737110491659016141425066630640421829496289128189937018073183750763172650863903165190328515369146758669912884636889993802685455709469671054795857977204855663372876586824239042533711263821838279578546153839441255429361176327019203584263906431897386080662936120929923066577412548789276394856439883071927045960492992547273886551676163261365049897744579176872761417591001040312160828063728304607170011197231954362615746938661615961064400646649905896954276729587692089959230063823585946959300416509924871654863854460661280817912748292075376543419041575489621938584968757600131852340031889071730242026374266873703243933504029269186137456754922920965752821528433920349180564913846714679398904607441052380354461743858733255627252742251053821825560006440126753570506732579555256113896448812462092189753123517140838848056947612025587331831885233961651105501995522704860623939641585824616078519770045630496245546660019146808951542989314509683694052475517163230844247203882732499657541203498369693426815576188325818629426530760768009363511862223957620358525213484644970235656148638667754273825244399028733862990596480506749040148281604741309218548601207509834459375570968985601047649227189596155947547920183718140241986235593893200333333260146073520145108564978839605109021574699307736856701566147075265013255760331080357622103124117447622689012469099118545283617406565281162749481306091999218539756640981342386377600053294360567811929430497860660264578568094024787122605565695710979040119004217031303376487392851384401725626283282315271956972776876077104492554079348388740417733621168941224849431307988263388961606726882148770806618868679186767575466070600386077846073126379373090379824368126277714820504958697264474023173774455282984246187933779471526699236185039238636662754173028084821133002745126796811185798822658088389686326745498623059414862883607313315505484495891305094587562736851383348086498319060046894011321419804802875223497676482004778950269839427383816748786668163055333398898934379702417143074557800337513538742083372332675508981489944572968487096886728313107096198279618552585194499476718848876217160826298259340389895922538169875167278960815742132135734011760772138398838961568234431420273393356708958215346255817182102176846022137820913560880250942838770917255949445028925276433506651488992972873219151090131918056445036035201106571604541117761595486262243557208246131933085480916349107209598410542847900704469814209120154927170294754782968954630022513075224614298129886966501387290450219491375256265032946976873782296022037866368667288400977360808388916799623332954499615168620784508029932775669841554637738016860291930464651386749104315743803441340057915067886526689956870173578714268759479831193786266981926842585955230538065881234953313821902811604908629397748824776036081233675214660153703731579843323650705226159915022642758214147128730076178724200290676968840407286702094293420085590568581896464570838139214951200953640246344777164893098919746670798594175118994360855569886092613829918691421932148360614031665449102536346459440377774041101144908354661695793656431831032518123385170963704075073846831837954680393526090363687491727565887958062299004019035954516552994769777746249604542262793351081872210433811065823573526789181955386566805653325720336688310610928161693817876665825330902572121000082520926763541452028498090198899354541712443674652973924889117999353522792495402438075307150113200648587061963099650222359141083142040923719281207144036949473438881461595836150958185628556354889706676133983255278098318057632472684740655450374023191351450031327347741635921133457055011759186787076675278918629617253526875767593728453498655022439664330063454868867618973802580467325116525990007662616703919855201570935046413091012833770649509870591728258522088375333838497258808229837691519553740573824316466450689763535592481568088942749700407601322020772231915089385056828254168909600773709560047865249990620471245932501884790598066589522015355910088797371179133019122579538513673628182291485305457236354074355378884331082205635720023979668323970392950870374158657122439029043130456698831921432631514066069087528640270769273696757024294644675880128036640795561812741464385543900861147885582974770749616382834090240305020304376077376431268609405506234912510486035780793531101759533566456324685014537800295086596533991088740024640007217886780555395954902168008318824204255204533695214625703673483744077163614022235158435418814582649929792470806209852392566222881658126714827734834203324899952651011272511527690782969156407904059927315200326356901541675060810870352667044773925224560123344231566120490062653276402278346109958786179107144873227493037138806823771103828818930260116275977260118003261262391239095655626742294741557685317315295306495031514932067122415754480082498471064783278867554839950467828833701519918945761521315142179521513538420933304952284365917043897270083657397926354175064318625845004486459077314529539327259840784122493206205851238458696833755037982910098061397771687758813213257515017697924102279266064326210929281755765703111370300841413855414516579868448497157584454574552660809515004936376844376554623259087645626840917171611818164740700670003097334451209327951988382388390563269303314930490049498760435718447029451928140567957468524258659467733163278819509516967583350025762658138027172050790633251561224172528989032575554671507360324414599158216721476314354496818771174020068282304485832598041418751916086782538191309050876301677468677183467847153609338822520391475175264360670233964704831505199911257883518459997404204193918926238476237386196677179057737545304490051043506206604749827489296622072609185276048926095817188046344795796028604692697028429141552587843419834822315319028569484896612991839541701204890333917056895457950383856812473826461630553005734738165641669761949569715312303892172037911130296258193206927130735205779833374869808536293460470740402502417951928677095681713208083657781651511530894096331649659809830537760079569381555971958903825222726287103047206783551088514729605446449063463515127473719085559706516781924746237287794218549893930389996560800265665692949750910807271527050509275013545930452790026753077353819609924289024393933242826425225344890898109498971228696469289414566150903707121212567462743398811934923498832352759178416367703976416755778335160704663708537623369609647446422099059785652242500673736728684674640218227310374974170381859367323476258272844022243965727893183230367334666953858522778065237514002247038366081205830771739512883557068535471858967526005592534471293524861692813707782558052524960101079711607985472082235595413071119150314590030483563650671987320964698926599451681449806433405839966418110601767292401227409629016165614911296451718816638018844762007797398517229687172604023628434586085466891448273409860242868049887294761174524328404028052279567828668546616471021715090763264063852173742927965240634354452502353605108509787195698252877104565867417415513779172986155064996365809903991113472434977609702303167403953384408539916876734960644627659536533168046802148281066371458887264441775674880628420743501405376663018826352509366643689133580664523847582689527030279185651553202116822892359653624164130067392719305380413398872427360317560863004992252263693292374422140459878109778282173362067818243932386350867395677880329995308051882217369158587685570580694821890094906102484137578924053312356580399948416464250746817397459052912766675194000431538379547201391866877716715491960468803847774182635815272434133030755257593802256662771512613552707646749252201331057574877783825897667756517557254553794855018297871586694027793223602170787580804453481040594750869491616204607328844080007452718249157645300153271489337943345410168413434525308487925606912528310702139822075126923731777714447918855531427777540638741887927341682577632442892423514106738297992643471426177464294112806266104631503605802434237524122233525437217393664318749154623512489065592517242211261950508393762871728517147926517651846867106010727335338184328141010052700593144283667152701288807741724581445598712687440935576404062629301653580479532476076981742322837073055008889686635192113668560004789839060023179949884284527854057551390413165309875908243391749454987194780148919721937404539044735964371814186806584144327090625183287941750858687905299228963092887499806942414674229565520317654185973555026007377611111544640117376955702932812338549770995586894453588904879205494617392549874208411268153765341963437494651678497457726068932348577655558091651189331727832265383366419073916357661210244896347839072911733687585712374208802054030770189797804416975949932024952357060047136882049414586249055048590539182233565299755580137811599209840605500057728660683325096970153743986299520415071716507477960794575431805141954462721172111581914920410427401498123795010239305588331930886532657034144669810323585352304106413596981706355134445854524363788826127632654543367475834615648964359180868916991674813336902892669201385904570234931542545584052197008707622238379707624190086081481343869309309571749814395072734381841638662397407615981129689480370327966481992943807251435166224952387117267995050428560375783505973539752388385105217379806439413758151023648443201565472098794875009572818261558571521466589894899388199344762342812293849100017509322907979573552096031889696570874322157042909737411730793831598736412255959714393387865431153977551064305070775755010866317765116565331073057169387982858088575422957964893990405160043913503978363030139674823245895234349200460230258846391292678319205733639680946365835963222999833267657798398014050687853667907423210133523454710259536328008013661196067716014571875425296883408389377567653524111838946771236089697918703554884607046044555250274481057563094145052412687056886028732045169636000676631153422856318318666392298516921133064963259569735519660003856729667168579646373067540059919964186870449918216463837992860402707123223961001575985898754184943798348062344194329983225697956550804050116505499292231505203014285487373985880182668107284596145117848069815055136782604320630407178862621322180946386895818053899621225235814611866867680905776177581030083558526933187761361264691153902568082401132686967662956201972502139790422549597205860527926570661380995920601764826026198325836421545418882823333786829003090043789245432980762801634316801317297918219196277567019923568709471596318206179453829596896181945234400259556208901772389031795543825831349912350303174897720298591999066366764432742804860447832994892601445077908562233992239999958979659925399443666830080210648489491111728937574338139946361040072420103334784044883463652237977960833254500480251030463433269006246052127008110291329266981354983344841727464784307247743672291054108796175315517991383722988141579987101029802106077281939233019508091224190966005839643826083332989504816750767980906326908132322907089805849299278685596880152902588469317014965265222754512861705157802018386296889399970483084083783321715713642615757814599671740563906028919485611388248890418226571650129312656157014528724909644817622641636051085739336671533524506176252630867329840861954145183632923257578851176488951301752270896740409430345390140845058421103279483016955883500883876463076998405004745588973621526628378163138776517390761892820355783117462395175007010588527826618390085305805107010941487369398722147067436557436298210449496708344394678416957064975185347100596794764420276687945158099103358440617395702567061311837029291750993621077877750736376522184965279732122851854159185326162047944805005342988884270500206035481291491726817064559660808282088425596176439159165736925513969788375885773522161067724891172028842976569970263550352704561963840342576790298903253960341288313125156311088023046982198593133219219656532297223459833121243105419483974528132488540721745138350066097590719174805045403937479819044171864994354701046528400895236732275823850114638508323820091543785352270404483601292714817479172899346522556552796363966627360825263312790478578913312720764168969220308366668790586921497325211114836880011014384977884836714715382816282062143547815136102832146415164191301531993024632635811110188544734904217125733450535445410811433032519341098480382035478667210749956204055848767053900259243836673397880339470604902490636605134191392031999796213271294617819993258884427652046138021884757348762564391886366440487389182091415282415382776355320613039331520680943826912120959275745679941301468709883633005549981404519198202279946148162720172588537842088317669480758934754034015161978545567815907158358598153562319192758867418125148830715927815236401836147754734708030448273190958179236418421338391512165828106035664527377660448364102361733379879583225491755738659034571142282878421471737339116883204923684799496903014523091715497262713620225802311213746408656498197197854081568338827563529852141184805120600315406327678981033352304354033934305054838737714428840822662696311282417267993519155988915080234440093144206629719558677482433923459574397093963971735964723941652733762906551258946125995526531463727105752802297301314334816657510302566480197944511559533352615260020557764821025899481679270142206211018882093398554721381197783569189511398707584849428895310316063048088798850127018124069467978828651724183327566951926644931131127881613075608389359246621294516977318706134107487578884978774305040535744578939665126721725776487611930114854656877324234314937267852514179324804051506111408607489065416768624513041153560183108404155036765091482471680931626720025792414584230997990123741539337327193403756170763557840079281868964709476931798845148679522870497913549278772569041831400314035710979541260324321671621023123901973881125228586176346800072575944495874433252314453900364297762315209082393012144065850155858408632450571514749732847022593669130682931623097731480585675373095036090885345979587736281637279883602419739383544271719839289111733248145742675147203687928281219757844799572178747677335746407914564871566575994302389874252611158987785819087659370827779991666497185625935147032903624288763465890141494921766400030514612267918844328143917422463843531659840711626483535743570958485107175107616778054840167788946377523975250103110201963655685547906122536205589522681569837650785963777090783190907459971913976092742948471235859386840532593725406989895000278069684551453332172525770436778673939344522795647684294282479171580178968939817524477447552998524577512390239252246288372416863793137582106268507957261933872978746742546238666883979897170996534972749398082290738272453028409900022544067885409417902548897885970465395037977476349239321646851942835543480704082036797319234914453265662851922440249763770753100586428128581587672715989058587873465408546994591086735708524406016595949800895097667523600700862883689293770893359652521423814673686671324565651145939912145070236596245747322534861797475627144593149330053428258488629379629616110163790757029988427857286514245399987348684831538438605906345826501370042062514229831635242466674775443142618289048597552893231367099078666376169129520457074583714785550825210603324836182175651113384373419784455573756697346712336096070310918278426790799650074315735556212033500272567304397277124464839709306578862011638927415344870951142735963932120232095233416182402662077244668492213398584900646321315708773110201704681195989554073268338422922107247569141183054672894626882143588654062265336188257097198451375695990305531784847721234544564682383223728684878524942152725968886960993228529799495751764192767729105378515764763375906271783641374968361405254282640157446812113185471962590135701591047349744683256085186535578744689905268731903035979755624687840130606625304052185232646745453195646792632823626222190937676792915182128834136521535247426500656514287019211814845231622743813103629117758177378932887309799900716633163614143924138877371417460533614833038454555005618688317317650908007503724565427749065279197131972485937908835830389806289272786023105593191404959667319527599041950307279169870686626075608014655828493003926871800226468395946615183929768331099218922976915961005577207159753869331791257378323798062498718555404106507128941487234689540189034953934629164882064092539543833523684643945674343738649434189793314753592782242889276546129748483906400179925057945072968410246056250627733446708071345591720130693782445658274422246782921524791769299485008328834161311941991085584641421114449026887998240510713870828720019648186767508795646703705706410305207415698375818949955820683317467901587547459718229268479740094679895775928384937848359926724002947689102591881191966589168746857892174574609044208898834306280762704032259381414929604120646611938767658399114321077250116102421270297077974427780000808586375973574254731400528244032814286545352278898150817418499980548616351514702618333230115587560378584115415020610395848181463677166536195685653039104158547191776181195018250135927973181034513711369950735401031584786158425960070020126832072371830294649303790080565709671732254808432768976198052451176871349219718378379152554495252064549922250935385976521792557564607782443260988066169577106679865737702682546740501558605087940556828190001028449974304657754480567176914603019544053522050879545331120731971980661886645761411948163822458637488349372218818076128059320762583478545160018354462687606338093450450662559713251252604950861660733344100363276828817610881059224642572745383632476482615583093111259017194847349910101667229688179651091301277054695225829441958178276279342231777106307701800568030031067449302408140396195527958261298389794086149530243693739682209927272897443534272628684040364304171169301490301780474814504422826547406894187241025172855533460855942651998510197693014713866934092083447871595789304178921460620702462058770435425118540953390668826989330847641439737837263900476242162532224945851277113589426297079221035914367215360528857511172798619287041622651800543771754134058549687507688495948042270846453161496914122411042881130590949931392823547414368332566496165645896624501404343679663357614206067682079288380571582819350311322197124927420614861753216852668611183540613250046930369124724437823859700749719645807693025549762003060186294651865529702988384690822283119174703798981246890279831235380257239367464413067683528798235404812630788349217865121938811057589801571926892166677767458066722958881826216838009907288423954486268982337559141698585900039380188180298797722777281923451319868421071403670670639124902415804514742155198257570123124896419730096976812975657696351460870888687337323369686237971357459596112565500015471769505560612168738573818893635055826740781289136548572746386080670458706970862270636049717208519072067582411536050694245383047166063819001710606460496267064780292307977992521141643842032989630103794104749015598943293332493850756051477384735972430727474352033119245664032563929373054380947307289790667386806497605451454161642626548138887337885123757577375135339272634823076014571300799774351378159518280890747187336128725927334246028205852476241760309209790600368251991767820035815031360648293234942918754822105944606990048505371035284322722513935996372766995309432319826345544682255882651675751133708200236033760408718221884125456024693693855283751508217782420480632655629913157990754001079787073138882048838858338532063990306560505245136838834593592641831289395405400082526145750188725292341739496366250230065829399242971378211581911696498986041891980094220341433924261425012036846195327235083327399550944116760612553338767255621336701147251234395169833136600180845737037451143538643041742188716643637382318179616700049628525176244967238893256049523536651509431929224701128071731113991291779835942091446074620256092718182347741020429409220243824496341482594688193611679295376915960997588000956244560375759095322587084762563003987665150401966896246827584324950262986668365523738614909719805995306532790861020751513247063491294588920250554411872924784822141008814293480727145333980679841238279816504643869429187547082705170822629698198236745330798044600545617762654615747110827750841918064422795028401800874559454911390323609971017401523270279727170529849018743304415520787209991213230401511966766196439685471300758968433923405498277924020823415667186258263647343691515668123906338285300026333843431289599291286082330355320062747143768813309795700862480696409339024123144384009638817372897620687110171954760335813442936698670308522823482689006086383686968337539879452125394768816887170788937436069558206450919776487150529021827079571156629785840140299311832368624916194446434921501292785065289055397949041702033815645857589688033609549568093596382966057997035947206304637689258723567274791330288562617373541573430043861607135221435867809833508958938097382198369997990038843117231338496727650679227272936441614098929221874359578061279879489897819351584172486183302326725153767176445328049569819056314926929028563399597229389452248877452984792797108908062218377767468915559571493929904362033124378340015094276440004156431607236041316627345200712320919089975649259155222892250608705214061613313655892576527876328439439999015405501367788186215436094334408296286983378937489672478768654391993187761417985944941151100295904313910032090551925802567066004100061055321913293545302175981001461661135044254294903815555526099710443368224100550947590890034694154299022395636162735761235714586451884453485742232922595438829084473941713654302659943695543682275823871891661723404465794336523981719860970979956709858266059837315729721872320278327035412241201687462694963376549640048299087141156124355490439581278389841217057275059308196795542558893500567319222805005452825250720494354023384070336378149129401886765901312990339478292329550048842454643902990485476848953741288804157881530503008983555270414573898062164578179695518876209708060886260376267019054526904285009383394739008233945042125315206578666500199993991917657288475259675655938087295272454092544932048571422829746816401619771906243176192018244374314438531849695041802430208463002985408051359759825747443296549589421065982926990165931408123287319435358640108139535775816466439079327754090005703130999446603890769167421887329088266630682871019262130150679753614715291337897714584195015000114400310089866904090939482984872022615551208791716686275404349923371777224019225914844181147601874296558980193009235308379494912459779308270943105575149943223240104316724597669187595518321059367836952583840464808755878330138380019843883881827903404540138133544004741714910861298026644827598900802010823291080291062528156115581582651036114317726647351231289163121366585799097358121019949627742024447417252527641768150212168774924637026355273561354819012059324367184785411939252224580567037955353617786283098373838909897761356669827018478920706297806323455362379097525304666762322706060348953845617275271790892733375145622033593865724325941995680884881684301641959749105955014057576370638182810494816695047991321014381961206867986010822689854310833708852989636532822889852352389849756586725509341737816782290610213857056274448464116704307675953699436061919582911207892226693940778664074141543924397473063878494680083761189325168557219820114392321130571295501280629109074086629935955246682948197955569637521380052968718570075666954764337657996332056816642718446561771611717114461936328121802728851884214248898014081959450973246904729953822990085013117029177509250106654985532355027934451792266764392355358626050296846070068204356389806020966156511806958024551972705173285819304918350576962188641002673346716958863996965665594032909960104982065778985868361087940913764513403797808886597154734447045816797943069425470325161134861589622132828850619855375244510649334173309365392276803990957387595672892385699645736100737187544331637482961742583502052929783456660529061558414718106932041403184972697575574237786298642282421175913380281528146110327205961680567597234674186321903465142201021706177112564054416671249277166122160670600659438349700252624176150021909920553803913650415743626052548722963127311025025615923316024022219832310777195427799260167856212478038007320661143862414722544888340078477887252784902028481622985868237613627691058195529213077386650990098064257800147834387108482634651895999912347019227964525293977230419636169078251771369574515802334762193530231151060983000672576910608773026695446994059893523508697784244140930911269980271606705849638426164444001513484574132471418392236410394158463935830067249978611791708971836798635203780347369114637067889033506349197382380849664119461978027710043098374243128700879188918484194314094846670900396281636210776350156631780121920294591336221824664517540553901305128429971653422427228629569818532637049628920076945823304996234806865926872188977070549611159582423972669469311573283897203363370210353007811426482082320184524074951873698269555359380462932130294069350310705599031293143517244127223831475757792412164111190082034812492216347172614973042863424301520917801682171945092721646500293789094835127452283534065952885251877384569674351798904399017223423075084805882500955492833634315686502898943711778145258509128794887903002306947503539590781660783364898212328521662236036905258798680926363571370182438610325568932970669523410429496658050362486756738743667454503298235514744006385984404494366728587063419188250857056866870920647344097825767014805713142998047724745385519845976409179518799694623125135721889244576625375467525173037248950503018278511351666546627089114259536577385168162313832898124284196188149529913905367877630209033967334089672635379583039855899929891466705486838004244815073323988008530704851609322340065232255092608383518088157144927385056518150187822094457548066731379467575633844925185454670782498346214453433823713276807384300545266801311163490124401828206097225940733184693880458699027134553049068923442154207009917257929179492681313918164044780384829602966828734153726089582718401173016378487953381989476103428299302512365684361973668277893611091202391708533534801206109442697386118760140407888657022143821812113353721355075208534524031351199506614305539691550947088526231691730583712404065712225936291994249860750607257268681958097363378640700834767855364972009469164789018796621110847526992814177761747995537101892814187246589786200346647913911869177113203482862320201461684441845065588169245730772572410487969091906461171059832951593107805120038719710641406264666166003182593041688632721976846623346018773510871603907949474429106817133862460546951759975762121939334177967918666740199638799231019261151547419281240786602707667264864831297566966962205949574768697693207067790523616239160998083720391328592533591969180749208166427122820369450834860780871964902914669463575533422491491567882369516321553439991089467048846521177771062498494524346177597919056933984141720690247782132279538546196210480602144533422370657131780718279544075418071505966557171223699876574186320060410252203617155014974824040505671399342032633773258754150376350749210247428975295679378207184776651548869509580865079506496666129523479819117929751223124884594697304423796822895634139329011899218288765962621089107045111467053580902679840443683692256180935682404461236139279553394772084772699925471704918725034474353481015738343795350624794907155939584773835939286408179427433356456076683649808205988465808379120038155823873460716977815835492101831174290188883322177640232269780582776850059899147234679638160502651199548808533803519824991419403603231305055548288679192126337059446969539354089580268228719975890681431792975933552419897611929114593891779460537110878388623704218189049746593171022633672433925715829779197416709233714185849536809239328726711265857505802974996390243447320935074970991385801131536530133716583081817384657227215677430524219353334698603115458222046408138185442029169944959720888669417883918912576056571208765957219737510205343531229829509301184625675874145020510882325532841764714811217676569922963273717962070106208340986116516123576717655256580161659509324213131208487012548566967338606883992837184218118637681904400582735378777642006386068184322443819132844590097162996134024242114301906657555195520479358815540959431943609875965542238683774016593976299871977087590180476750443776816482126067200827156908886509137082284658653232247146169444901863159467221320336936168968886500022812278418391289431960724643783923979700068731748468650776685665754870399318154187937392133455615453022299668835606008205993127895131658491758986498425461151838040553415490577076765288327182923524865129001770422244522262397951080444806382191860807373082012280270624397522385239190728240134718617676195024204460178974147355072309595434144924654053990592996361110606802010492871166706480530002394842133221868905187956402335558039777685437802015463972888091367262094144590142178612049718801668074555878281539070685600104195379687122099213297548695809789982866168491064653237266340402421530087339453561537679484878858976133140905336363299062872384033561286117713700851720690001632081212730609396704945055841906533185478267069994743952617200218041838741789246528590153256728795258614956501038297579070877520824590928580868970916193498522996255538073014102944580163813650809354095622446258106357545762959212623174467391370573064755535256494565335648716060498586562437959413840314862350241184246555234438984339829096881546417643465518277145958149479756879606910412994288209853951449522322293088596738674000012171708586283037539577214229501404088836619990163375123541097799031868461033135311050660144351923586079703065362215292345078596869591361742714696443678887469002620302627477729531441318258892998944811221855311087036624656455661496006995384846819051977733934452500169390962260857598001949273200432917835675860914012346073366669231575749149116916414475925985271771861872594339848289152205498793709561974251778639103249263974034116787696706759744808780642480891517371688845074446033328530649854044157059333073123062473258879192071683927830803681721042926927045015999132592415079841375977669777829645690887147358461598118277656971500199761481163464692623583725022304921269238418534934413115360038232570347359315832562497145194027408165427406788901868181325235338173818908592194811055932701745523468559517915673486692099360299116088332936610610037898616046086131592597845701644127863772939712104283777899613162296369147931300977919403124362305279589107777302550224306392634405095949827159260825693998744727530339216566564724929861958196330149018863705672475245565042673672768051071910706088626597944087537941197403593599242498123042588928648520877987453586270234284623488630599909995947634129414656659008378297826508584981337921992331231527610956415516681793476508902972219192963902988671005294283222210625804708354725648417636916288752414388520423150658448895484360822250128888803862129549102896481821258590826497622299601572109421292593979684433951933618291505704209910035968555708111167512118873277565724461133266621735025652735675047164663628331530274099525041195199757268090694880510244433509455618281605142072691824227915560452435297024193286281335535142274953734678273720192827244986657171486372413026971976008567791366428829386696399169176488945078179659246519597660980103082130445871018613981626234932902364403829275351740980710331369097029426393888252292908846450620665063149019073998363372891908597961205562090641879376453804098673321128029470377043192184741114275937583811010506183272833785227462960543737592535038688774335595065208972300569962239837607069686135161035874143664112888614930230586060900523788512903273024336198116828324714870232030740458349327318675517302424010928778351904752217315281272484081530076342450086851603640519068954540822915837368162058155011772636653661787624140616665937388938566755486355214563351874366772278245963453162086494043952107768532941894710643537873455211128589964933437666112019323332698246212267879985055709269511326518324419750398591158393677242593373331801164956464540460095063290134566321792224037458898290986663081845358384900626066096211777601056878617811695861760481415929582186890252472114221817887262949812550208570665936559143349053367818833264416388252056837693936207595613459953366933173634674985034499275248516483932829869722273463949433762211931020102069163623968730589027798130065556080030974735768601340270492085629727589167687149512041484594756231740602882122282270789367459644528495257224831772201872601047078168540518671492996770918704641632713442072259964766499478303888739436672008001963426934156366523500961870267584834844828265560485435542800611931667018013912812026093538985501310669181940718065405818799548066529933456866114509394248234584326402603507699051897038128229739037099088532902307180456868648581851242110925494609988403768426706674677254207374392264438313071342798159340415546440926598578471972178364495742948498336114290101430269449752448210244748290332335679032695623736793262567771866780759130456870686274489684509098261407300982809890610130574160283049914522019328775125505973000733135017220749195236463504739958945802235635013139109889196937326902119369296656908785086655170004795780964732222945422802223443632354511654782015715830039370122624728429944689192453914844146111012328279823709253612497280249577690300091021285465009316521235693038419196278332471284356120241545000153439945196130820849024041120062594796089173749564746207118147718084983997067376489371365652772551247252149362616433559004306588405148166227656127117644498990062550243194512075401291794669444373433247300278607425678264242910670627167628395175087310210830372124918669154801110508360606263604163007020866490626227845050018171740234999707454534844265111168714819543385234261380739849483606119716689615500964527806281407582833510361139128230108474223239875039040301106103121298576069840308159455896324497745814834016685818935945943701728831397840943001675938841883024203889841516466509558875558885788738627197182572799030385446732016957863602488134334367777065444904191640894453397731687374754686608300318270461631363753270022255326636767787953933753640620990778025615277783215257616867191886796895188246471630712586647136462460130627910061247503537247481291604764144348730491212950159620328168566255526420722980299827529468728939906636934373347405658379388045269228215710642192419606491933286564688070572870470928790186138545093344406791152972677976514646788301114821705286703812570364008613589750009845135132984352610609089021538565367218247802072514073576431593260933544789097382061430267662173590450890431943987564908978025779511679487887638485559539474250007278670740601097402313829716968622035341059777872045368199611307266994194922430733917865464005869710746566707227563346501210295700047179742033930576031131917149229777967319048906613998844570222431479494109935939536404805438353695320748600939101799219749079388725717098540110177626917351606647896122113693021058963539428643079577838623744135834477141599547360686347074220623890680753050406408004649583562151790847650875362235222753027966839368087087776739770539398646869444382630091816364214285451437880018443517236507651678086209312889043235512474703583826222711971305253757648019496042970406188125878922486449094832970750402926629734546939462928556515693872653962320144038426569451369589725837606224991700686071947037429563734163182324552763586107727572543859671691278919861918218507589651302508013948322823845212388415527048258175830690474323044069075995186541136394663777080935071740029585134465577808589685437558707380344267471688083147168098612476484545510509256643027096064668828475273894560402160400380116608112230284925772218871662098519418594117984659859503279503009977745930312683194971706299046170986388638628959585277200630164276322414059783806336379477074032568324876476107561085663321818063623601787143304980598201665484881866754259695758535314511121824494845310137292421025472552597611076323761038051170478076216392983928998893222326338488002228275938264931855825983357529514083358637862495042402881789641793892473358265259472637759391926746079857484595230758913409764400719953781851834632573524090153171328975769963360449415941118998717636209815567718580014265504505805602827928567497027810741517267421901753566971945538912997118155029002390108157155911957874527843010231400689715546370472960507655918797102983375513810760979522173460549329661109349623003270046285308297787498106642501416025496545832423251431901104879164299435519670863598164548433058367066618325270924238823251968175815817651709978205156582857516581108809861565356143269358442095337718108004530589182899955560483285952911885238136342324197412571893068363629624473722210727632273679009861975883140276851053566452791769719604102418527072448015942894066534919366370534377347444951827477112990378694533084975343065512547995602083441125838018095289114690483417353411040213689583030661434177004437150938230959086335009043839396446283142711762418977100273546987459461542136204956016931824959977187685117188493899861051389325453998192882844928036402979322248433862311572892406037603366326583988884602845927982266871133304992530618778665407801454264424099603796612147414461945303069985466172691117493564106593512117700609370816616063477706676309897741772549330248140686758786452602768550324333164517982283865328937810198215131446787509171691703022008874294741941090784120382205073889204943473933335477752387280926432563104343720495587407308464113825283420618278970632277190718036874103311496618001002043942192907677337840093873213893873025216694036511593184267995458292899767908343603290905312368416930511701694013331050264250818191744813551489221485470659898429672633852310457393892052824882289141236123712775781626440140670874477460092685668553063288107962120719361066438008326560333885520574654014982956680989837997531975767041796249274641477611701444131294859277657830565782649146121416267597621168471520731306577028862491264229467473321488513186754150831823854045727339296612141045877917100017615642830778038732701347886973218485044948322198068401578029773177220173321810326765816540904456381595567282902150567846107326721940637134980766744009622025419166752514311081960152182448052575753719679084741486649849003741180273824133145078120274686852520061512953528857606913614451849559476068420160547427948968648508647950555831378860252388111645885241105205346019913023097414606157711389849875297306359102451052060255379973375438479738016805161488475258998013796535485131400068806326459566426441716128914272945064448048001615691053866618211468513614022748294259609937652114269373973341450649269582497672927501256381831539634034728120391595613964078646642539179465642437661590129946405178241766514746264034443896278270978323411462849365996618612437849220653895174673351211391580517906662890946183216351283437213643114502849817655163319048249821208089495837903895720594062249986874362260419196994030988581606673387111220413028350500026742195105434402771970100785798396395718416192058390867547995914791990924348169303992451865846453043765072699393123137837427211066109578745520467217840954679645081329444603170704695490546943975242319274309450074292739407358837087919486084450271876673090173325856355912507998739802537827839648004278167839793744902181955690126118483131908359870535159708631848683462975563547583611777903568257823612330518982037693836375066825563216466948533932073811737675277281908091671083502342449702962144685219070623266791212408434108417376800630959607812118714369202526289143356719656352381001190227334339813063032464018741902926600581937268106132719919022337453629047097774553222844182756592385842278419506185984247344386893599200821420012490422085786460372722194022663737242397544073926475102861071833755545798132756802123263634164796706970146974610547218792890889074847548270465389193865961742167951016531098299275226289367110752121475490899451063458988845239552790143325057800820293777686487305438328450163115602581320244079090374734855923872339942901552276881468116164733153251839631208273763856779330083062139466864862955353896518983975899000332349967200900058524046657804069620022307970568547705043136452885572594611571022096957603184829016989502882221542273998345257340203951351138512184683605331670001049908344472841719655303582758071471767552000770309097189383919991842037269708109374050321378599345554854271863887870005945972543525634586630781022394154436714649152533783261101327325185709531316454677026658951562966710516548044887000554892873056011379197379546841920514825492891054331073983158641611694085467733712527421691883611056786007693028804176609965331079471135235855041977976650696590252819197217844122456457468827893621134547224651973441920428429525734880103256264150611721428876725388896651215104856294609072556062463183072699866623017891746446517979356837235685293632728432097641150234439740797735938687177432500171795799635848511345844425205869131545010804001702001168828485505165878792833720532017086998837343863077151455649864277394242788236005720810388361110828789311768654406320829437404204291885650541813957211261863428030786820976978593775721668217754072468749967221622154388677434718575710655267565814728641053253309091711309973372911222696557452928935800165061535279096478521447824572046864892522865984541855018371972775674941408592742310503900380791135664912442378068922203696202525671834872784155142953360496084250749172610215430437783478142983630598931612979243420735172677325813944889576864634603883825208691148807092020599603491312978584862074236560952821256389269913986578041935855932647117587255663107205079205423372658054343821756874865060766942664178260833098304439733844163180243606219520812107956299064434747723097463132515046255153120153571236995095675158384430518219360818134089380274739200373210766774898435580614081646509528125316459268550650504007360592413195787162227332570447857689142825055254705872351319983392289225006662763517756514143464097841194668863092846248023130092295860474968824078102682100492110369917860255725984793175045358751019888534958572892856131488052350709581322005081847636707585539897056116480485105634698085626906448144698962534557746786504094749720585546206930268377073220933881209110238293563148065258335522646695115680898061260816397297388261616934293968987461696762964649178610876450493477783565996748719963365410411569021626587874394489785406733994125058034230018028998428617337469322442925570036127067274421392767583259895122022205996597255792095409563627319012758286237885775339984478579875335337053858982692141168269132999763893133091243168943894274475476519784434542215434082718131491239006480359214046750833136537280960862054608192222040278239277159609870310184883178114447251762259312144339586281233416902268476943173597175760609413995608374392333950188736230387884726435210640639041045344448558747456104808730800185447542649904532841606647274467479713668259875084405749357801035690900998022796906558847058480977875457714011616011040190079501677367447484721249016656177280172382202880201029643350065144324542075378123434790866916637833974131059723361690292107456947498505244828809976499631609924010984490024669540235902194798355135976841221559138612870479730111555177055407411936969991699522864966020229553448330190883700660264205372155234849855015787863087942966984293421762057713646743149613493309515105168668924458557340369916623905992303413660057893658813275697320463102877329780601308207958940910568700242995622642234326459219219264978937745090576596400213013714592962553615294470097493597511969128471278685793260978910455460071474931115831320491204844885880920834053649866791391742811612989300833653569582544282385895353918710389304832939182264001226407372157530196846013751120372862418696132411982026088197181587726620183853433059567396494450338916705627912304003187130490110952594965875872750198793689174038073385654573647610024407017052693341029165659852738264452483830469748128001544639490188916434897861397624777990934382362501251413820765080504300308567936749216899111422279678152895487009827985754452338063962829915763126518250684978708795498576601320138531756805268481814651063735075446612012511728311499011464983870443992694117914277952588129420576940189579500604903473418962970836002473084416924398668057251246133854594503945560913347111161941485290722825988058000250051122786733302886633612981086453614232495059387933980490556118725774685331693971197371229914780920257176465527412318010688881867280898999068130841247947709887866447119212321350983001929897124819245215727354973178621596195771372266349543060665259758642454341987141246039901808754983827843869218874729989789909508213971185417451754551788203272916299996528817737227368349100330792418368159405832441906267049419649332207875573136634803251055408699206312807530185619434837626076352082274509631986771617785835442053554916116985250837821383847020009200711581079547914466878926295888907538847649347338610924763674622454674512325538497042918460589282367234595710091705914574130170504749563557207160583983451673035298936757478024478624855224964217380693328728802117759444123123534253453150240911896353797067695676144036715046879459961484319800124119252082452748566766039048546131453330429170652727470850186531553395788634686111568035361077552124910021654838349256965522737022900722609210259616363029361074095015470175380020081237828426945473986832782577159238993472954031834827452699645686585075853161957281463630376746389635482784079077392700451786120201495498511161131289836023008936814419124130616760357276499107277988016545923012174751448291237183189546278612224913777490586722016066660615466507696596812800344720763240858965486926619968973872649562855944063124301363794110357723580760902474724506574042694175178248130759688052609200004460959793764785167209198331601469729648200473952774109440953343083420833713115666736300297960847597700553908838048129022131266093340016511974664774886222721115869140989741185035026091874417578273653489069903107441589715521921218530831508208056769514551536107384650954484582936366993425705700994349724764443307856027837853121742612877715979482590691314723378338429090535023303412074852031282881463169947681805715474807614442255214439584381726092759157395038764307834667527310132245667135076418340880528514098566914944272932595376356956912733677639386211357471882516949835133870514975220233379784515767642423768693695507759601518039837486322658762419357780765105845654928049929881411466563075690126531654161170660618858232189266010581457514381021049035558461926890936712715654381471630227701683764379742948407898244982192219382283939458713803958507691468373109145563615102678895409244115323718969192956133020559754805886687605117259159654952457428196789919618049249902467705074703350611784782244321079791811795376113196881833332848129358013677341837666256253447067635078469742207023276590011657652909241397516187458439904543865612017145858752186893424548566433501486618986985305443057025353265162421711700032579828132584170300490882292446768583532391910979159636408085897499770860347311243424086034757697727199808881206794070806065620317239712638685400563965934688102053251943038709068843734880307858856355875874952504518194432114766340968910643421021518209969088831572841937719616018488982292970273694038308975321216062156046830973653186818390670503004276489715495130215151310554687656948055858632803594181973175011430685390422907430562702004288293869955833789506230673121457430734729446749998628933453938113731713703743493554809594423772286098487541146529550922538621448579786694037814639734250841271973037325843215674345944117761957269654209197464927119880922775376238239207181296865685305438402176818945712036335425047698362529694147066642871374143980614194234336903643434385824764343629700451815228685558341480876134130552791243587641228110644842625002221960284148938907077441806517916935839989690863377460461177779830485648816188101255982488528426790378749614713962470397678061375568441929288618298486212513939967413562983514256939925437082256633917228605569936349925872780539485697196022461594318986551711353174714358574855163674834373776781661554851218107791093110583123198292466771614895332242695557355622384501022660539493079928187007142758203652758670125702813406844417946032695607056228322796055761264888373875919306740655894243299615336079101304515077581542483299818289365655178962290029917603219384084677732149929429811185216514209567667081660955422995269063664059471252164277970769603717108324324556704031593762972674415298637321997559189340815876093566020859791006130775319333746338232746309636745416393881351443286426135867420619255196522197061852919436816767282253229056694165556543866010509653270759158852497640549413079258073339624931888512244652428536739930795365333843352718416295247697384901024598274689542060664414004251766304158690304874658439259232234426819639341992100442284191398115257402389399263390455761700838416777322402529529952053223775490322742612028927801162390282218289724443833178736318836099305492313872587498806357037868777733205867117111731838846362868763116200060426125523557440513358442112937620157793049879144924384805340988252522223014704362954312952496381654016427533265040546871012320385501506032519068104847104981987586428837027026155557230322197597137223695091261768679209465541256451936414283853347615550576710360456796554134703140682813335093322830061659858498442054112669039127359060281052343549718229864367121683238696443313344281198184168558200233443987560675863391523864650688439772049217590180091856821333784114624467913345231455299775430460956556193111015298230380953681967170852397274821544150627089759842374455351217967376726557754099845121442117316540783488061361911299280590395140453970817638277480851576024372451015816829557650952791502806236663914372920102518936599122123402549579112486304369827514512417060600993552246997347197586661708728410874843133758318379744087244000054841042893744675140898261419910512941279306991081233201830026703549064461689882852269933778084919532833321932450343248636276540832789546406881747296812011618318439008742716053949915058591771359019046198058597802411010555313537072244553248660391656373637288447646895476379446220913806252974287124128962396836434009192981624694965326458196110435952137648906996191415468470410948504417639646921342893693165419708589559874516925298459037987710918396432215089287752306883877994621350936600984622150056970803529638296222500623780937797595230262792349107673503027202019906355846959146391023973756712738924484204152873415146693056369630852596083701346204857164072152101321783727540607117655689276814695666291400444489156601499955289162969764109198531143358211407367162254144535544957642137593344863138538544051176332975101894100272122861473431767870884467485174076152773182522633769304610250807923744201959461218109836216372169653915607434288920909118785072358850233091794661910095919962701325239818266441784405332308090054707854814982815043625173779161808551753141692304721284675230638669281353763901313631412211255321158082110217995931976381344214759018455742252201115271658389349565159730309356090988005947551195336662727449996663170116824025001661518121888954902456322439911675107536555909199302534172983902227133076834374989034232505402670067327681815770305904040003850559340916075822958200797096334079226153218034863722501249491646915108739440817976290910874330197093975188449724246776349829330494956395757152456352623002230020404449536267529011248882838355406389992311091218867902311682521576084174459600955135820435623253021596000228341034023362089928090815690976981572661133620909316118079784066161203952300409133738285660808451663352367607578095182401597434677065380595110367875371814179799578627832907101910462988591255663175496881731801113913026936825758798773637060970371101776067532402448718273508069897250122530707743426031480611578714803056941531973655237965941845565571073425762125655355167364470789390756628825958583876484974344736834889687433661402159077597621326774113676693695780901034291999109899583042148464405558755229132447516573823998019873249250963551822964499362260745726259645180458870751188420326312500520497229978431959090857701715247341765389603919531670396218764806881527114520446098305405349686086773956986916063844131043548537887941193756564331608064826591795216900568882525992976249052087217687726872275079183250628682212351497044125156053361072014110875102870410885160291332949280209454227405258285736260569927997923764002652758980370297576983171257085821763477554110931392308572425623908191391268073405763902828873570806487831961731342822773365415133825591390738717979003399872292197428631802552157518812616968189617178862905426240707876808159815249515816289350522037426735346998720670166504638454939364807104920853190376264117629592344545402159204292463028111359384626614952847512963882325597228022300618147886792538294789304983378393618125124291356356700811203532062495529962206300774941952172707981061561500451139277267375261521119037917258883618460721833998603426097480068983169568834252217152292082289195125382464693110843427486033524261185281995759659445155345316817145974550791651703664282595018382684117333202136904032072390928466399430784015243556815194641234635355636574933063566830999041989524666362305701627616748291632051149686427453821096666797082944412059760996448364320833499677916828786266637695095278118132478658267069565087472607799006744797462668278333863304392785071547876682569453822466883182429561276422962937497979226573890607328173769997867295338824232817902071176698021831515607140988140545338925542378814876735975498613724522820755936219636621998408367903832330487226961426716349830489787008964666487347152813157383315417864574344151388048555238889269144591651564986909816106226667738197723124077922703085260926903579750515897225735364896786726368361690508394891294910109344957164694325729127246618466014426495170274690963100137933476812662414362035237854494762444883613038582567861069759661068395998461686134727003578290191277809987452313906938708258744863617430695095720293718077232602530798873675989183409236700850382176337968318160400777806199017598303828203757017056725861305239331969670307045540402095723991584974540083024834973946375178404750447202323845060323713301708311012078357013934923523221234585412907486171612823314813127726719482730403511267612516516358872432059076088508396344215016883319152634819690450101117196099234511992614882418032113267795475832308273499396802862264163303835642198179281919354816228138706715721405561949514066583675054576037399416300131069516634922445115985975604675968650663389578797975417723356352498842140556932421894640786508454499307358062133241426875044983681261438256495376765472508084513859416010986155498639566275933987574538709657766928744414821962018859489869856805030218788737291710312565567909913991382122581793992227182974398116777872858473193839729824096340349718796501405394937457471941730457184963444211917183247665813773489812378854378186031888929345232550878684986140544776163221921741313369905478800664203213307678112809612132518465559577242856677641918225687459998878265376560849097381509102141591033971031289950655228343161312161870030936981078236448175799622584905318447591954724910124119301731525272218024856527851425744289969403392567122556387838967307510243193212697421291035430224645602944118205590998674031535877373837599188541446137138752572920085709292938134768134123106516179800429373133723115399172974508073440455334871021308822292623500145486276628772990186008580055272141704398079572897983292072193731952556324191302380724150634403059792237980499825138381873769934610970182734362186728052294345100495467817103293759880123625818666315940765917024351144929947508227147889714909840161649668303448375361451008106495751210376261776509085130455529946283930896472642182571646868902143264430234551950284378518598048346793031561160297693867587496393842674551427287364645736890772035972698110373213231783907278705771341195535937153503639908047498579345366614798902652592870566826489716450434221362236658155858570158942417032631664804916882656253168618683741183249589276617119102198704975228160836967179538317840188001351562379096557281648511581161701731732201321832598070559382875595025917046604659834409494314570896724526696518305685520546325102169514515174138232011200614788344612857959801205934321856479743216195467819472468567835198418140494515239789608175066833243612301043438970525447246226864082950661889951995282501279117803477843329378264474928478287278284093968318039732336950571623665302191445600595676883698530012756510844097107138859444829597196265168880435505945377054711827423386849484349627227897030722850696556284113307762382728678470068117363687720274499745521950454556407592609221700176902316608822608632062070420243892666339778131561946514670363150447493866369509308581334810742543946629333499692051327562633996839535388168016986911694090395477017630937705716574226221614352203708704906346966521036846053149564758091893136253887841489960808915613200578905511892392167587207015817474518313855759868771054127949792873313840589136246122158924030419651417799696200704276922349414936060554344739747787874337216592071942630793473424017983003294316971357425276115058395214789758099186327357255770218087498903399441041029159037510243604691350794206426828994134021733363475945998370529036450940262965625575378796324811700011321791250557902766466109763540834539691169137480739971549019895759437142405287276396077493661448316430580803189083495516404995249449571254310401168734889856308791116824274495331950712865901507600829562161897310506634956197029224826081953821273462807452597503476851923017126988618147621327545693553727267142342027532104717355396993929882922285913317920297842825676016666518202052454258427435847547165438547723071434085590321537090891085124428160380159015239751502987975884409427887576476079268746040668402376091777970025709410366833419559158548857431105717775109015889715211493144084406947437601109042390089655196393258912802309254228061986368376893316635483740119817248584132648898320362379599604053042375711109180697516937728132983346822040396903172103733116113201542702800734616947223526441604562013765962879785362261615947526061223041340899566746442659810868913703694053048503755376318988006959636973667373303617771639909769886571790492908507649811579762412025981431070417272898422812373595171960735341091742971601723035811250112010651042026942628572310411311341982041694096839686798484917291070919309428609928508796826970373541899253611149933431843009717793578475292520042315164453585637562628765556472385243225479391756425107813062553775196916063844237816726380476212376575595166716451304013790339518893608772394328600086008169893384269611703548177443065832697368030782944130647134306347137218889162224092594288572386076534616976496686806526589286583803455488992755765207221161530728897081678355100867108261910945148508109007656999060900193007615477825577553497364493619402615052112151098085189708983015032561830070206771034108244502850378083581734743742199626895115810116222330181971593071516703255102420908101385588065459589329722888235782518509547630923209104434943820641310222971109334182434343373055577241343005019601327429668230007094401429731982142406477248339232441781457893017788979148706936161256665481347402835407538373022619656446985231371407046383971386100604561532317250876868158144070776573075823938943639097950147846798857852335747573153936696866185344934356156365380498357956106305112263857254379770772544922553318326635868318318706881090515813316353586131397554127705059570634866337515448918102448417227404720044072163455838346811707715719922980830636085173690450451453156399563304409166038650691182128498178514834754444411664258424937878034958456077348485595799126644514526659043082156235769221515338260047409043618168632516367305129353097002483348310111936002960612287222210853846000123133591518633931193884117573368588225019033685871561434741217094862123027357298848577252122749108592195433913554581093100634647426269645417068677788158259012302935303128929410473129640539567469114434031575720383520701135651808969597203869430317636702498467514476865904234602231528583343429541895050125624787601015853953805249371086700855758230186054453771850704548168856674518490428405603197172504060951472549690923718469932118613996195080489926815700453307831342012142789882175869759260281221710332306147307997109703340545673730825042017429336632069398555381682200740104030643950285066354442357532877289930747356892361510026344913839526390847035148750648858404914077988620514494586791874885967359957786182751331602544265452521836124930011539204277712986772179775084157652431895407772170049215885277236122406201624113731899688765221775944803942669674992840493930996550286033283016459297909698791603285160658495060932724026568792779251602739955551334624866323879745874352267840496505412903752585928849255657371739394397952555518122752684866589392624786358693880893276259166081968165519769568901002927897623692618541170349140474889630451563566994336327892737688556485482133964487535263870974544057914437298524033004810830300132325243151934771600253196805511370984166287811700922198391405286032285472980474054953504421947343123995511102250558316553885047378761541335163088539515593586478262146582894499465819726790030550080383140202425542710160314183636694759893367163291908564836911027518607344522728588632360813657287596907516435701515307400941709541595931604175635432350517076217748378227720535510725164407175016551694522782609882320676748006669426740832653271797693794833524623980716351591073580922188853459417902397936336189566793287585638248318313039703832027117053014222369150595445048996858608053355822772309078416412046250805547886601790360795441029861314232033613338238421342683844919831898651406201101151474505649903091182232207852261417331022765107579167524794119900414117377744930872637568191728686526550954636331839612089832638981497390531326889745748076831154605309770304324908154936895566727182950437347521875660357799375138657295857022731756404415794319228335376914676330472638044875214483890952836893366915156011567143251140767282113651195283047903930504556694012270288026658793861731421436329178899733792502345170008523673817463849945642782497971716608197535799902774147486752055502430629760943095414832843784008951225538067713686367051048850774585077993289825192072989692141482960265731370803835083510319003352167490801034776165145661638614450805995100815351875915747070442948439910911013648599135161712110913482245316509597186355065948153063170866691972922295738243571395116942823219762802299693035603830731212085018206064281983078766961098991322457107138333235736971475258550831061328880209521593554169789898970791881657005338252846417303591566619977094797070035532878987865727894696328094772352970398758555559535339532550550835284760338076346109043792069553587273151051191925798898571122037638352308345563853517306111983433990677323595261518047584728961607958855725969603163081039242671796194990041325104976928021320827777269045308754487792631387903581411458784750596565073339150130333150688596010553487943812022402701140439782862931840722735295046297836266270381362894117382964221207918172246551076324270560042627472915204300240953863409934384956300547531676740031929332801751322239009526016062090229808008434891366461549910982481800838770465956598243232527040274964811804033975288354160036129233508354323381333997861290493396974022755252811116207934110057749317863515789603289995011151393769150822878361614189541756557277592898457281287934513508438748721303720529475619368388215697817163424719329695569820990353954421993177772566942723268746564101589554229909201602390924680740891713123288826627186905340349459942515246975308160806864964948339077557423510190579193261849814788800962272424198502542742627500883860695588237327855677440094838353376285130522249738454911886682514010032400251242149350188867498695752232283206118514252317352210754416336176075049970710642919000894226335278854369402132799538385419070425039828097316769907832323957113998280134001816535145298153725630185932713330375712109322604873294177988962537315315742154469996213652876644330502877147818654186506293822573152847091505604320596694846860450550049081058827317465829043067754211946368572898749578597038560470635280774461037184041366771997793192299645858657855792114486851581540072963440474710445513821811873601045313747766398574521438521183993959385695417952249335084698411951652480311255923306013629434062501081971688236719099608560133756572688233354324739495053163616581611660388258664499863994949631315243129353598836838749441860708674011760955969831106405916929045165019095302582310758110269157014849304137444855091279212380864861144984882581201058478172996452092174891631912107917977230309329753150754826813969256370346067169476386946869932673718730747243109682831897543422582589467458999352982660711390555006289148090872048127290790339567488203093628166669905128028949773465075175453830414443847637012761743360641343898578534292659628025778509706538590995565411901472131578093868633658634396525600209188004693124215755698085556104063364027292158518129903709522850636645820923161389560549188608940506623200680114637117888386321041877510433136963857430476565238927643961437561170417604680384501303255935519674318491283472331966308424846493175948639162469410733060727119950471451818236526373956248540575661788577465639823502302106690529930189097126922734677115991921480949592420568809971353214597837032301298868912329763953996241551306924764689900701286777915818267430906530821027704593442957803385584598738726437610418199014511774737958959666821127552109690854808635474497445906495634678056812440178666549082149273184495240155269841534225582820386999003638450080206219036082108618381517672762348537409132566996534821874932544024036302280397280172070094104669390600232064175625448950071269542791779965408678002558408523884420976818231005474150317107739128500099551529354870229601370215953444637089170788210617548041538987203290034178772342885530264812288350613650801416838515954354685905311135708470069986711897261893517898489758813523405691252932699576615060606141043917249821062983711206118645623117310843902434623153827723710371899121191172215891358450915949791823939145638070158033148396022758818034412097342902598583705045845202870570960710642259970650403762571764781342385064386568999222319100871278406578951414850134490843979520375906509842486001314193483826732874999855357950430590972083107489698927348931385429082108053615375392511652464254186854938426053479340739811951329613655971781282580019877131873727710685818258474199696126155053825198539649787099147167397060519683067030586471837618781862702517511194411163539628344418714322144596505417390096948691795894207304523147389376833365670429735975634569334182537607123937671611569273230983429524205603829766220393197159044189687860489862210951424111861554653320652370413928320669725530354959886695079777764506211559564045302366216525324388105976115402633592018188551769261518208578335945546564222658512577617825655817547926197474866573242819206171610941699719889307513331135282099542713087955150258381355182229558797947318699410133082432706893053243347894722130973479343787190901892512174958232642172140861509320123892263792422832033770391827300150726596878169811204527910736633940560144953152923060284630534791053034025600090162798774143665795082325680791515011329503391580136114857879688515264554984982867059552465176272251446494254812311568890070091420140598852525255696994814833732529470682051116406480161763068578834862610626486555852430888733158954278910683545167809519114316256181833217529379796171952363262555977312818489194380386575622106728167893496659586672394741300254590631940062074718349322243042251830465377364344362524444435660331093104509915908943173715399303008442264892791523385720191906976178682724127789323283188200068566650385502222945257453114293436690380423939044650047373243572717007324603629389720608195449596347501241027318174575849749368083814582096344597475365762526564954150915935057952412034130316807083356076442941339395414787483456072691526261909898368253771961693516972698562937958949248390489300276942676404567356251166583650876458054997297122207851857534502473922118350022937392181733655660100744223833148162445454539529577331355052408425173331598624731720649182018887142318872428302609787587947763709644764978767166496354003755294537034288950586907961926957422502192828833861579530704127170501419657326707540747822275754106267780676316640284888358215282473116837230768812979735706938038096740003347440498994742729856894670198213670068374695955124400048438898148342661085788889620175608608737659953239083743933275817417079411793651512816351196561408007558934510079046813011420104671378088744256889622007740593932813367866581899283735849809470818954984557231763499537896185240050949907849861751695597741855520297639293586942295660430291858060803583329641610679498644233657331258020651980942673391852107369765134732145511338989027078484538905177873205799195101679123349658937520404712136795954722217949555928704108556712093525162872754818857020945612505439326375049540920947997745596033494151978223973738682605873107299917489546405983966733826484665314112930160851274973545825016750718818855354990434859374437190541580717450637437319927874139207524448043133292674668421225082208728116062840900931593317085554338724729819869921386551136485288564282570684826358079544596513461972420648026231602944445559992555451256638432675883050035467374467661550742678251994143666743250117284514603487581556246462749331863921423725516367441199989273226946952128281374172781423818356047825267327945894511013316770071042052795269790833204773611008850722829601771157841037073077531915081806875626550272193346716011301090286482798312033987301091216343414167650630741267358101819284941091875895299751188716518334443232646829221664207340885314771498984627304829402222068463110984891029647050577322364991427838117195793803320540460483819149065231134960106010408614566314414808430699356716061470030890273393347592452769459443889724104981446677845599254222287757258051704809650935244259631546425036026684819882982408949775215506206508188389563223161810568997049360179063918616720098340707621998900632861863084223299535792912386640051339674173422609442528584502626224963780877071108284206030331343424169690660053268451094764632104070951169991120652925713390708183114594555969533301965974226112433674677344526488510367563088678146549849959764665463961719995065854751881387613100482148129307756044065124526398857015302945043212128897376884147201896270487244896779233474123415249660190149168026167817209944735728206820070497480483328621505315754528871677620881451613670268151564367497243689685147044171281649515235744322771966491027543902469010343008041587493663731625036315277642252899911274092433097151052523511731099947902477011609865559833289737668107229819484011759906726922969346351187616586102278195097963999633054895043478854010970496546691962425953892619841468054545221891258697163857168358949470533011720932623858340800051041592810793606060799867232653727029309759555955344098084954006333240460525663263509105192028296614328083435768342018145056151300326238251503892462531148599213966998151452821182195822283468224583859083018586465274123673857016317820207195820193464095141453725951257918443253646969526244434204939705343669844340643571269933311320114524869362151672638157167497051825920303213986900823611811538937743940428970350479987147985005396305538450303123361882811837835033986101698990288076179649641534952799017476737136170379165953752079354837705240866959455493414950707591285588279214897809185374166987286006517443807864496776275598167360066255574892708877784807181385546294400204092025543086989206050860417684313126362066364288290165835069606151368794828443985674788111291620139502826796961785509876597226521110759017896877526620184845286268152965160101921743930851713165963225828406496486611142102627394280241150194659022819742571632866874565083378912368654904938276525521580408852986637704457027045502625666556077668854960969708033118797648024897212629559710876124342602865914098526197497326337122430638289793421133221063846762659851014312417521492296706594761052445414603487516412498401608388611604984893517123394741358311238911821770286375663425098937551581902742217916005458685712013758293237202144206773449100570034444774044955618324475000697067498862724363212540212437703312389141957499594930928722165333532552700060773104272456452187015168549520855006201134678286804044605046849083154773987343607175163864654719443783860355116700132573222662231230132693651027826017046445753654821774687844354610299419859596669887021816417358895939794158565090873259435031884494183401720572410629832225258834696586846589518913947379140113775868047934759449547215783942498716433867247213795285640186035074833258787826374757292306389079991375929100131813008106800209095327056832527532051832830394296769344763947418288912569488167971940075605242901202952017578357919097433944300599343448069995256791859968781985911591250974150540342883650116557433507551931068936154319587516364541712981731193861345206209002401641115936796069253024096406103102484077858917616956720989181049564603481951105640455823421144024972215105192712724542550750817004444056942769281460181242528449148161102691950602079078446339216465442354107399078475462418902402406964456475284054962038476472120126977300628482035777822848888633533317618935413596830818051144514583532434047454824711618580979370904523232183698818149528040002888744481917417636528388695178929896691190448825655600952302478015921444412301236619302468970507411845450948528403752834356645705746211398286643581794716372486078748030707477090842851521663728988648161418832685981467734059109516435243635266536265314697187132022904792227897751696848099786332371820358279786760743599585540504335200643492864910998322386423660846065137576634397215795339287040399502504811481452426603774311086762768229966981691153054145691452107531645662296343986139535161735325188830022114517125212475102109389119381059299790216687188103954516275893958230041508119826755163642341440413968993070353797873856837438555336610532786005644444467990255999885135819549755654887246384220625618683693204385376640367612683866524115582759942667167446184814165544655755202220109588217810486604650587973780268171737486627535682548247795860067480421091675361217515307408975195466243701157592396583714709591014383758915642977646602479471225591727520573200104214046989569675876824959405569723857958000635751042601988662123395267807526994992357174249154173209511585040966810614327824294740652510148390000528106456044730591502952483789012326351544469231095073983244484662597286831839264888760661249602122883630547665822060595706321771940840746206638596642243264234972114370259205978079167377498757652497686549709246295636495460455488993890940050276957260861588989973283248985146569102229830674293133086133875855467634415763796704235666500230141386856409725178741250577092455593194414429083899169464638122598621074628130052989039835077841767763684073038274118399584247675429911681977189568850512298895480808262034732007283835274978404963543743744007794159236974753845791198566269038435036146501594309234232009946782121920728903523842487950557773332225811469024658842063580408779637630505362961948097731323353309111558354869372564810589120815411746431582903210970320747233232791616778991945261625278692575179761992937708205337929700620091296708841448367916533956563888733948588389386064055487232448349495575153593441874351899552431878185178535269890938767340448092190432630274920249920738635195485839871034165954423157750827544109628208728496051472015494626169208270258702120499020293077366404291554629646294728807364271441866902637122152289420135930420281500525483371001958789767656628385414753179995867619996899071850317898983387361909292705587888165855266628710506551349321957879561907529207603104312397473967573353083115994292992071527072370301392286907669204559219540699245879353995069337092616786097383153745948825405611875544027324850660019279466238895290594131786256028965479219498547062929560095559977131570404153313178185688284559817856295615138743582130053471983970330792090200782578668322009881585303701628807302458141021393373965882716779215286721919217348317324763596684602415347870519724482020954758198461006881151201263953332512876894552747975472373517138353442895644075639879031989788079090519357417688121148040087340459065003629150702475273121908714157059476057409815532389207552852484155592963407721925637465218685969316991082331916442321441642032938087835653563363361172498374142862666153277043006642185866668907444687844249127335285718058641131888116762295485950586192427985136427078387893564091227964302120095619389909373080313916391000104207347896788463809597511579763352985506450251360745576112683159757417446243126802018009632841676383576521935965970494494893442084442132782434783671968948421047766215311969020484859683785898785872769565532756582757921015462272167201889304025277569322832844982142003287154984160485791159545672888647435943176530348858342116798157101717821341776223880815550842194040061941677384354829575515788576429420336614335873422385463907396557406170765512498299363770712549119353652313475191233873166716618283708591222160140103723005606328822515361026531820978695224647370619807625263877366348986826890905061785669010108144058759624448509360598403992164574239740017121814359841474055343129065798471436245380348885563833296676504362902308519896524250505829146365324373131991336730484749084034387152562382652873421318836639292524395171020660622263653027918463828711958528599131645420285008310346287774557775372073796895790298674327621537288689831166449076313216562378158410115353891815274914319836285556547859483497632303775124944205428515790765063851567863032072110497682609264511995179433308481716819219171211321417738441291493035429009549592319090636324683806691136695179304855321474647520902989023359721576730315665221878159110651821809027142926696831578427749470281423549155844518001095137885734546523457831632974103734906083116310253417985530241378614368071616757991375414879636636756926263800183516543011263931678583880494680650327157182794305113209966450941359116440770910068762347895548420161553920782994464417017268935126968553241616662559514014327643973848565849010016691483245196151363854784647362080519952162650970351914396813345496008754125744499473739116086203286131955043738784456582504447796143247902285889918845863399121710335102632026006542102399985616628203447267208355691589201503367943840783321786004366564322553642029738017489543885108955646330127732921409993557140026992500329749138064304592292181192560868857696746867456274660659616822463267617734700719498104454994851288739231465235369895904508900347268144365490164603527673299182397430892945265793469519590443494581126716080194376689665792610612304612700320891720859289406046864134458326348357433383758326252219063520096457909275150713369971995906847528338435850509980834092656155242960525093685722848415101453006313157589298980509123461768934639997537569517564309629682278262591028759557388725599078465199985383643074622156292451374163405939127097782005064268106709574133015071447349974562971704447199184477076349040833834995475075614921859229401718469293587429117901291019986579832576518632569851651000527815615969280844649010878372660050584601870703342670759337924330662964799483071244902061883547561965571617300783052046160976323898699016179393331256920054495657934215727333193012700782207395174373678941360515482033814961783969442875625537648183504325461090400776364480016004354720411295633036233965554338381334367322594986647350701879271535788750044269195190942393988900616458380712656749324822164274322212878573559787891784549792849136402033076522928590571411319616822146233785636512304777609166336439571909411321888742443387221948965458261395048841475152921127093990245022361091100112344200598962938271892909017898119814090363243487857225487142454870215057039219247781137924379138893610077107710169528948041161419031932598676912931543299547749850587683621202686994784221549643237346417174443913481849807031079459568402714721616273950192446712474553492701195552207991670497904844824429257820290438525123622064491102583840581961236828559010611083949835380734390160135184210599898462317374684270243303555957201826154453878694494798292409251581708110583207253274318007824073195616218382549690935729997516838546027506840086624254657766130296038742758149164921246307258734192424677563497855925103590464396214418313952116944138492027222278618873074573932170340488556517874282911676807373725685475111984620578791807293747342708576737550002727739546477361484564591338929945459529077867221144867962544700453866178960435986619876556822186138098412501338128236724630579157105439117097488391304102170098343628485295767230665247854570722264765437667129582692366133957564026549903837020245185432040524667180222494314155622009435596736658726036936569059915710067343571162395693420487841467590776829074947915540117151165337679261794961680707615305305593756115561525566294987908716371417512992369041373775647927646475565149830459648322907027955738966980710682692575050285426532518740925685160627398091804180638843818663518564812779715046560418308571032735720897386760324063454476041928174307780809106210681639134476338091796349919934016295393575756737191041336021451936933715141917842407966799268545855743783433498743394516595140868474848806725704068444941682865014622501461957034480211267420535799262054752183622544355556912053860782089672163593432457279606323459245572272179090083892079939971982996529798827221062269477928672044383612269979927286422267999712869181692482379913845460520602799569627413001916525605994530623986750873866839186792394397226060447940342287673025444893668224970029267985289727787106140203573389535527471971190627779325811934168312524490029160766969024057022941650453366441299340757152073744701259612425365577477635141598736301080827046070136371634908235900039327903438002807687869737183486599227641594008044125682608580330387239731715490091595037157904306186194359865841681294195063605691909702240711732018618515475703413961091217724872502078284587512130131566601160364620288733904834722607412930171916691662121346548813175331317128571138509159186171079117073280054385475231093952895573788196925161160960089294559134970869600989068552068635928236449588416350854664779211958680806576250720828342298289703070459999430848125434652581221746960231242069220775068654522039307632365739488097522119030713031219807891502632443108982055176601625754235457082230727735621207406232307329704761906595807847318800888755018096335714314845374886123105976173754739720492565703571155834339866283575244110270114178316678169840864039572561067040032049103305419427323520165116918643270181720056274950684595274095757767276140364165013063497440892043212608161237072679681790270990491689371329753405211939893305814388239660142926218541682768533057423667547368734264802200761724648258851856745867302707375276415896575295236091524237673741079381594607380189522458617116759577156494523062897904516518696876594448165735464524835597867936661543943703506434628864577759592626416652617752817064413196783639508224317468640658160859739045369260477654519320750212873281064912520665747668556651213079559637634986607690778793830614916681766838666992646404919551641932354802650724002404139448251993781904465572925977653933029907010920376698391232477788068436631010415219705397787126638009873653974742918578493236591687732784031374738200276494496309066041708424133304327907099396305931418872957299278012386072230606342115305570300923637186005844496376021349149156050641841416744484867181981722876844410196240215307486770404627188434060465363699744154400468910571275190255234977731509632608975567613523052324461159102643498304496451082508688830238187793344662105814050530138282864461914491348024675238177518506706051171335565413646972343672056966834305735963327299455590436176781732583900764191198148189349469960781946568780435345253733881747407698803313460645267669828015249517425397296413308016683715513851632116843020195354409155341313431853514182380465575456692331012734743356339231742388962789891466967405875449905268580271944972901309511749991773590520626347074439741229344357001349523276137821560705229598767252763799176012481030051167718595261569860260718083558612676573550638830383435949113890625842846810080082899966070665972498074113216291497726706482667396668816977171023786392704159310063344360334565046908160258239379121638237349151130328290491152253441421724261536678168092646328732177081332268816981233162469457159731894126139378705503006801646946868567711354330693461951599366586490832567911996006679383720428182414904986318469627854958918385446199027841956291064248118572945580809741944336084085001614485592056981065868501285279984016956233733243947735267862906103524191967909091065159463818552065880305284094554762233616101486854021291963758703217490697200303705406155433432582847899242856527275278847402582315248863531581460984148198870611479032720570148016441112453593137409422710149993637174835462927076439974044684451173771774410298258151508351905036803265850560898261060108775682557069163729439944854551757481702703745157927745797113379748898884694209249342367489480673133121571678828269697626799277716956976271214678970341879937651548559678995129092152731491188756429323456966604468668870223116270980921627965780542485136374306355333717617867786756672540472208958569228007191481096395767926712266344199164407929798285051213416089793693377763954799603936562429225810191084111462970793273704774735942770030546818382273607546249612516566750483607495584447902346750501760154736364977190867503819998745660496314143063331753462008068089936658391047761054330042186985072784050344473498276008653005564908990468879961802314797660289256240024968246934564008549404249225486289924684007244256955197068346722417232924138397588089641864549574483566975868199254899113229741790376970215252944159316449859151923248490732968772370236538717256003422365466444528643166372379313717834333745791953214440337387214266268966201047285283870347091377224490803353041919131824936999636103270739680536953458368422927682353041182847149466932432623006476386603861625922450757070112806295095732972179774469311886039977817218258574557885902495532371010560451375788480480136712019508098050153301982198483551136436472225680431921993689389455150134633020303799773282927049722904298823430404272362849119335609283152158923694988711101980015772112553663869212247806422815338224958269007536267797144323392251800255411112841265265807785014138885569639365269447903220097024929427773467867809935246547084487819465788759923426367964470039939331767765944646470775010194135555857151238739319021135162030824034419967855132493939923489194064872101713047125923662405739551048064746592701597981629307112747119160628925957427763163206008445484064062439951426854681773627216943744879687708219059462285440273514677351340900567323696478278921840266896918286368377283048783869446471382220695971320111165465262015379869377085863391094418986795177748655810407327534550328500551312021048685841948159124977532782187029784508316063290607677900775921737705181662573458634918571660935411825833179182794182046725797961835068728861329073715884317434095399195977922405769876180699093930071955427404137708397070032603372879756912445747200469938090265567530479491693640330589896848462908177565169554577725649321470940631673863632849203857796051727440846535510082769853695700287019419662576548382239569818327397860937375991569217437881361252720213658287593652072496980055307983205980319824036941392179749677585800592184345882947589675707240053852171535636356758953107864143440548324297435976250466458014274858508347010649081632667165891173137327664230744805734937875671050930312562328004660396448646300575740053821633100456917389689334120050496387646326577134669433675835570396197440143483416698492464452557656288950062643218352675102828306574653856142756205472333217237218163671764179637976499814261889724158778175744222138211986903453218137749300680427080271502619562198876712321211259934914578155159251439347589782271877847209964773265776086434868819242567032598149390631237534871352036179802564845692748552967953703886167481360545319130320436950388275682947741223762592625070508252085172639305759455828700913467017799162627804602534092124555959601413751255526610120629168722747510536727606503342379917141414577420481478626219210213841068414606824491069945136078122163733255754734709774084579607685805572124430813177336771145206157513746962108334972301665261247521115100043976903332884322361959028414706523726326120818858910126459250275892874551714775931715392206436770142712577032993758027428072940086018771729929912755111607227927475955224172558742715390695723766630055916569781505301349665984101869253292565915810337316839075355005716405220986658654165949745206371311398489152760084031596204624974013544753647427427471232023459245245448130471892855394828931105132661533967581271737092961732881781992707616017979656106941314121307782541107758115980075495358455032883164747318335088344355551962648142952620442463266058595545830325978289450422428812975612121728175996969274399663939133360501320975951639608818241161740063529603783380315292493662699695416434381246375043751040998115264316977446441763631791226334437296742661882888816118904722311800278545381487226576682727225028635401616988739066711730481388867100692646966594859886180337962907030627730875307046455384997233699985530201702052068212108762478397117576546761137190099377670025142352636634229828246808263669382171378966362312471689882556780576527329667019243390754137406020576647490317027656375126336697249168884022263464870676982241159780630194582625933715999810385972587476522534413466365495164285113068154286478141576639253372993440633357536407577510841010573586307078660606535824127085904830585425769653973158233071302475707969618107457814851508641723585012968730678377640690235206301521100395454045641008158422237952198979987357805744184681719304335606386362608643281196176875002423723741288149078021211204208920045646975920817801276386405111109750710803749506673412970567068583617312793816889043460094819962629756745889383734735864935753852738911063689683429352776149418347358121050982139816035773510466689783118894474572982650083331910148814381738824867842719216462001563080776935465914351010248015714864383437499294309157363511732322070576564869081037322297747892537671152925180544904341455513096966568195453104054132294293553602771435562489355057300126130501071008352629921097312143650381086963393066101374722084437646018563273185140643526810667161060971871494503541743377251362709590104491302651489866664911988557905533657254680644885786487791908030177709169999086353595572878925476116427143115675140197393839877156415352663326799986494749584444805099669553664629128980563127990338841474147137162392774029138768005447915610395585117413143084596795033261528057759616492694998734193585048153547135263902969191763678852210931512338734257910802150991890993589089702513301856488528717230977503859007111280607155869494789802554806473387755765408361436221190667079136329841976022659145858054053296339271190156789565438053760921946545385260626713065851726626326724510223754560719642990839734009262499807858231297723449670859389875675225424362324385606577098769594769040166728092658959422930317166746144213251042767100430763376925085443275648722144020586025112886437616780470591944277108046397515082385550438018872307481285867269276274004955613089415854187652495624343175485420962291694831922516421732967487934277376345867009224252933364443446655811860375534169978166597526130010516796993101208642265611253510508313482159101416753146644319579249149930512714423734248741677011192299531141855941759541822281110834958568561973571508771664605376348546939623138293335841465626006679709143138114262362032790428106687857790583018642234255339218938216646741194269615350144467079093089073790922475029149814110074061626467482818164945811742659422160562306793264062205221306599977915127567744737799480880780815973053603390166482539211823418722366013472809749239453496593982839724699139407580155454627052875139636275974564475323341127739852784521864647250760332730718967172871647896713960132877842676367784036008757125064707554910509472157472377532053594981416049236000053732524759951982064469899651084487674251804425708735052273357839556669608450071032338300575610112285171637414484052570663038503428044153496535402208724477422424188061002939713308734295277499184583745250017181178544398800873149927946475900647876374004089484224721381982360308061679471230305598213153239102746546252360856325512528512114294149294277344776578337444230722357687825309368890215834131113523797754534697800958795913093892205095092287997810353651661196915399285139343247095928066854726580575445176791429595757792110875943670915985841818418611812815774731261081180956867652140403189347437115982010752318870926355384127152718167646472540635793509328048886886784034170960922133079087951909515807252237902589691960122457519695968197752877745932786698495806864052616019362756144999790391666699730081055380198972647487107389048557214582748112515130730843820133462638063692387505626675269835037783817410225786691224881285370371238072315955090990427284666428881994403142350288365856617656395701251525199050193654366262668413088343128881075587591577877963299863827997754299741797683474243285275244758018021054513740004658509845536494167487186334365593401602617878709318514330850241708459501979957415422002747392660798009601603559916338054955855508852394079831977754825972703716950428951965039284256064211581364052861638028506043646762258033438429249147394557324489988431132834466997123262731490581090995709430316146848622797752017892262672124274022555973596971635550394838996283194167293555250880097575654840292843724478511292175348189997369292753025375791608514842974605897299522006384000293055034547020269462190667444627471738001391384648719326660631672183462775381385676858730892803100259989027047873680266335476328925279931037006277323688132779195700982245829550249982463609883862455413468831898017655814622286845881179864726221405906486749025476112087122180610366243695137811357519610647451132302740344525857314414260562453927768448935734381308984003746805670869777625366301665813272127042909287263413608214665912609788830658442590899772157876417461126095431716887150184047694888799388558059729890899262406502796048311535395367036240212768118908311374513622203619242993971488322548671518319336054779435969509718379666953487199629187738729845228979972620083994572926855597381070717857384240775193835182368037200921403686457412384574619498619746645567478625221101575133696636111852087733391185655786429462551140560919875556005728955272084863393149151435998202347937736418673699856124134771185857798786419461955912124115887014571390724349883588304903233686165103476837443712835873784255834973758947748328685981268642597075468371250883866788758213755123747578997810059188738344229870391726983153533247914355137192092494337601493816465505582461900052998212964854617209022944274895918226550232011501505356614486520356211093751489861041297046684526952041244847956923052296530904320981138802172577513965169938877908762522323911072882261763406919722119819481461137940897617392384745390418761969531781563497373715893146751569669287144748512778909775065119833096454296861070093835798035658137917241099273647809311962386073230129354880315730333698996818409839198636904711994588904662988362435981821757978314956391846889410535035183447215284647159362581588529738382759632297673255896591440308740241014058757804796871438881302127971941801466676524365126442405230312672549025893091499789961560731172445876292593665355682315824198483512887848699313011887215641228298392192980655702872346880176496278005023660243217743119829371675451005585523751571284901578072101713134353099315282230037203681710178235078021936024081818040359408837678926079291783949541857586060095824726623589815110236829611241550108830425207062544677977842869038407986097111024539548616322732023494155786992799339200669098477054496706391954983879194610303029316383839056147801430117906913611460627893119596254990071360506840734695543967214116716130329622409540336643327344013417572533382010696644666796406654380410925790628139907230007059205862372529633532362505791996130806848424141212973948034247466458338034739177954229232774767720815815501840582861791235218124534048218487365096871759120320879523582594578541843277609397033299823515454778537953068042696541563523974749043111596704721896035083677349072240717460673723052348899315067358432418634694776186129560366449416288535230006369563409514170000785159405155979511659067270336253096519806860105265107076279193325290403466546455468235588899058729154982737169907095416693753682515758625682417845123288611607983979275443746175594925833081285007249374173187419165757692513915132558057223187928148851209430281092104888645275395384532459350118433430572366785897284336598920894541066406943991757774778872940421516333137178861892526814142117282304889051716454920454530889149291783859644142146726391393319985600242185195434409235483725137419997320390292515937699381204232186000843123749038026311669988010019328470491534303778314759075823455617546326739789426239068132889629693782768630267246817920513948246390434533381524902645265801475457466816165413952341529386996176312197756242582270061980166039236153303803232597140552678004442216389804309808046328541813193900869943014905734970245548235505264940060807393291097854420782368829031123435812652460121989974241711588905340820205287665729822183390792299968413708477548073540997214058985517851819968378235189546090382190886166731113678588957794968157883180513348926467593902308352209159905194041969334077730255285284065919199814865589093241605088678413928814041539216055530144314371947117957532925948098372649050994016107549587470564654488743824162338324153147750365002090315033078993519601486502438430799489842902394395275027856748079431165905419044773672029256748071562314730980197808120057443030505122450790928835960615184111805490076042760406086880142223634335982004768935374391738253248419119191752370924861530140889193629208221435704910114573148493082666997340220237157032698710182633841416612137323913779304612938007279215044578238014911225057831524250078221655279013808313572414856463571228006797758940747475092872934130012337919068433325806922159773644596439098271295423152065401822778636887692114277426366734458010773878386561281800601307941262292720602553329901914686327167548280311516602599106418791648834244743756299254755685016736626116477729634531583296256619996886064385418345969167041713915118521098331087531033885879185030431942453291273269347046049124935111520149724403604220167476640106269226054846046929801865131866128258615997694306880688416377075837964496821791430243422944337813061717704820401827644133963292079286825343471406221969580796173808265607438484138752443904545057622742454116805320045087802346866599160162737899093506189210027848289812133702492830320260659096358379712759086011303442967477075811061310455947736483233283892244340125715601020379748425555252107742631255359853500655498564339588011105192870141198003169696075952607581750354955499728686494321771903361361142345812109124040381266963173490319750901507271440692472073092810431549429813304336727521837968726350218936375807974146969074082297028127531044691467539978883295722462514912737030670668557171617039092463976566519492374911373326286336814907234485919233559887876542576851144180497836478012940228074263340262618483041689737973779965091923539867805381317933599646505143366087700255545267228910105968091982114236744845755645691330846018504611181032705486459798251341242051349695019248360221137774680089633683710955825738330146826975837957395913991562777398431817643276163146433675182822626833652305079449414755697819493737410159252383726863641342973445865657832175205683877773698160432809784681093501784974362643357626816951907212064276799618705505199582740954404458876439234243906981799224649278272109752675903087657460332731163876263047223254415922073902605263646999561016615627877534987766659412140855420744524014014505628938592249666211845380349625207383267976905357754072488263896870096570770455687731071153472023257770501762326582367470759891482550135915910555980490651188722106621827948371662694533525346853708232987478543698820261769366275733093031385099323391214734821171284532569938721125128914991933896681825768377310910951220906902256663511525884132101603104718818007444372224450781061054316307530708364678978923504095340108883693537862242041047510269510462569167698282720675574282351394521407313396771083070375104601017335535607428857637659823178220012552432519427210727696381345952272893554672003818357078256030460189346027517194627780763426754336414138769702305472822354474789859344043650761284248270015718107934954994687294471260164728401045298173944411461274334369915104062583932077462061473018384724069456610298027867796484174691830904937031665697083869420678362629663312018252912948872737667172746366118863020751697710298827204829548437593817096246305999707113755616168483458252070487395052912642810402985107650644359373727658883060334279716916034933416076466550938501480017879083143767009522448290091109492516635886497996419815361585546414999602573114261342115051627142112143318145634010106586455900370296521034843413000966451820014994303405722741689302855832687864538410977175977856514197072684170770272829967427498827280251463406145433385082524549155412385919143949756787872028907191222975454937843664636660114506597976525679348664324408978297790164591524606460492627263676962677462132437993607115866380654204142220422825102299424424626449888638692437427210531175543054421297400568344288013728453995294892891028451033439054023785330851612689764504479924015635480843504277274457584667160136862257251398353877421471398380841660651926312911652703306167472626732156774603596923800513752960582939129808485764411173589679475729482811415695024866034213277381783171935834592350872121715197497488000910964504918350715829112312844804299309450377388766544046486589800125816446300943488205167805492740452086869799962861499443010389959557601517345444368520254061248898800938688354038207776734921746173975193180149368304017853562917596190669397445631254164562806464857015442617203285138062192645632991696121321279390702101655091962707617881177227854350441774866724568835291669526739199345327236098810230766582841896798467501801412142365173648439531430723712128062032972106794258865424246202477659466945405874768090093466922640786281725400878011880431589298271236708665826312684564611177368015292435432667847124089384520645110738963481796912404337659261892270217941954925214239024780837215960707635138314306529857725102851620053303411145321207942345236500531175399019465720685272891062311602735239200097470038629541314209244465668793123002395981686028221948852882426616541541927204164013286032779022894411277301375002960699366937736664885123090299160213518836587615307947491030467000935214750625775672585020320306776491967814764205826059525155525939549345031599633609463617511717071084864084077266517068296284263739562807366760085370591512418164491476205156254584078520527156730195370013400175265653479146872104224773128525397690953561806750517152933035744163976806725288334253426309480600088886146564656235380467491638907439789608176227839567549679277069328707380245648226597604073243527552477994395646824406431430093221903130846735022067252433416019460813978335344059237223257185135194314736063246062494598477084865792951933347151938407918825548551575844653431390236351433284412555462605352082463860357832657017385037802365705901062015749074240578032557742991458806828982766701256426842611156618867578526510770564435398544209815964599271164538021495422468435091010099707769574494881254556880301251107574990504932365998998508288075167543829403495793575882424269041628819412051592756555251937216637893811335253345435844710298492607199465964605926228542518972913869408515438357703519061819379518101966323649359219165438163341411633866033939057845019624423327163050279995568985409124265123560235127069987636869599432814143580184328951362809845692336119035862393043263849017861867843770973578281216936044746288018968810440335974150534582129746186143671353253080827744767707362840796613119533423303732932260704822122552690822983615891378306682761871882335320211355579837544620724554190462041154036145841644597659494867228389401842840114624607707874092302827405561488136847268287504204192153050973361302220255080312084867418394858522686034317369842778906557551297626370281851571660744068640103191327899818909730484691315229258917264984701802806750933149591836643023856608162735734623972791111397272232740856188003468460169333708819688737591760918064624914455761841080459033341423220845610978430164743008997412463358855297267038636219388243364069867323287251645879149709282258011243298102740601506584960739575859133857805415846435835174906954606208543206112335138999121894244949539297701109877837964830034525997747910419053569384201443173344277840731751147025134644476072777432103579439058270886332914911998269529680464242064575158382743896439370569824826451067520170805252918794544569180982347373688985777368251288217740540461309356807392815090037987921737879756116251827011266937294309905125885580717390759017421918361622034579187868047020867990634672827571916053471273687572037386579790615262662842000948829806670727805469226485462932283578037947820479352702325506406351890322174531430965625130596614735481361784643339106373916261156210058936881091167036347655510156862962480894445299237468847608006038331116018837588992376819274839847766783438061643282597871616766041412623217617267373360504641863882506860279489682554242281233026540380479217391806176142439362133559907414556457411465261978479786079944527117212578718052680780041059692905079136350888153695719188771628740766248361428694219462331117328337350664746385329780793177962342188136488041198615281850428977472070543969787596341209557810348317259862740083200365836235333973424471954575122826281616544207967151816066638859457877382527774500460169852459447941288502170342961115854049808024183243338209472817069325672310295141565649594933672244118632698549384879205578416816144485829349337296444292795186083952652022532605539497124028941568626878477308049420936482801127848842355889944017800899078079022129974922934884250947575425173977659920154614318385412455973189964767862039968055930302535313237925048185839329862988777343423054401973409347346437448560595526741363534837243300799893053720768554307911687814827861537507828113057903350632358055856647080266704673709242461738985888304156898539892056891493524677624274948065245309399520348103193529727855539454316267660720098656456344796046672064197549997897861302900560296554070354132522853729655379073721333907593138782446312836506568451167864669462094562931286124491606944952398484569307323609894153090915005133252752202418177499925901602525820304365241983398152226728407442463657835137638930760066169099128012284697761548177605628754943298241557341985894389570354343587674777353215707954741596963069127142868122963800765986364601685282598750075283541786232394624774114141613569666041628733423667320089791974363804842901946152380267582593188675295119637213256926090008877672213598697677408240875505758902019636519378344653589428567823996978360500811622682489380210404353301862790542742847806777221292697452809480485526821735997386741849648004990558345455144525913392072433507631620668602731518253517348499961990316950802989416031803062530913620767573337187459711756448801485823042867858722704739029299998431175072147771245857385213612804763034307545055766589987362994174154260283927908710020061192306067722781510227353616034992074564025293786444352535841135257538810893404605503216666575241271750703943158311886784291170738566349383638380974137504109388669218450813125022267504835701609866671763243610129182057071900759704191587644182809458439005368315592499405910077065833028274566992283055431220694563169141978143937667015707527703810243868170767953152088516098099511931907399368166118208131962370337032389080253809859069359992962613186373683630792489247308047954521955306262307694129537692209620393076576143527521220930401690418654575925120584204831253155755086845951696027963314836221368849801099576968944740107805930202794338418613009471883552277102039166098490045874814533835249235840735222957287052529240680409516698137450607928901620670319252681738976794742916409139101266447975252237321402348052082775963113439085139541680055527283362853345428653411690371382416286838273789342794054751846544682227247375495942481170678828155715961552569853043426397297511661819507758755013400054512712646491744352639232468036830037938826954287533968166419639148740743106078103285328586703340224983917385176744755142524855405445813283765122589072660762193545758897563373188932383846011862204972513401349900223926192851568236613709272666678765877053386142580561321643086110140355151455093613104478679098710542909526718355831193491602084956535218707617846284304122257648443525840738123940333383449078291780943852100524553074264982010466661016726643247605059901961943443332707511373667946145612142002467664173871726999953716485033105036393816897847765709116712088921180235214673723654973511560781138325405313957133503649278938084541934879238166502731531451316771728399904818327158790907992404563442461739884310673580924025414372190667565018957351835527955101916392419471202618988704081768418351117810023459871540317620911318874436601881700068172520069416126380021945104910119683772000663560967019753305132612900323782714998731791170476167163767974752010933989474888525367992884266973162420300442606175200064250807192340220547701103850013090568609080161813249348826015228804254279547202662383954301614547863733448719409918423132612806919358441508844771222279951901144964698727469839807415067794666639221902390162899649778342744487567727716363089047345440626118854612852782669574095695645109123473179517922844116831438928452189437233325085580495829426776309156718087568389838756567761169624881575901353661617459059396597667732923005154049451066946432023422532403298268386104518738278615586388121605062505284636480422083139578219857098095219872011951955367332334420956885796424035451350478258756986327797489999611910098231280936464230054108319014013159985870136641277823363650388211022385623074274177915759044929402878075784356804396740998830817400889178545852227281156431859011354679794050248150552653261911229137947749680132788431076611946508016287217350134465662801450219672829537868521621448064786506983753864954206388781635791671403381728049569754026247542184629900742225909060649940966456655095834894083810122215161875001079615283732507672595473933566284976956108708159395283625436965190152764107080728283350468440442664753052466671979822720960309314170750367196094159564397642502287855341856204401688941533317282215611265922543020227770216396783999731947944530411674700663478767176987948193935919178808699625446546115954564948756697343121363504017468340547980101266171147132586378043577713236085665149113050371901210032112588843815094069208384894183308138831419514647095058895901050409408648765620431397189204622839837965184130742571697366499260983374702589751072126914874648108907061773239572710698225908581905644830168856147758269426806997587031210253338953333464754201475004999953308004335933469435853035111521680265956343670579499474301628145753779025082707437214853627342790816028314936830319757391406021600123607103204771919784183842767893286299043080008748327215037247753448313435693915564337430232487006855514662957473033341336957080079854003258983011450330521594156349709536169652363458227165770224789092045458962860755956171727032572119705961698293628837528355439395693331254692768904476259822768173630276224023070783444969647594541085012043274752535358041653855128868755619408086077606360383461441108560468669568519966702856675580340283771728215573865091334226069385821853036895242219767398041655356211549514553125784249839433143362477492958513361598606079520895857367746830555149750044323675157817403272658175397667766993350846573794402503074955970428910258583609273307386194841585002848376587452083221320453694843214302616124209090946786240058786448037578619684308664688296073650698555559947946579294368709836489175597988368268259149891434614845163759176069152740049890236240350539386187731746667949878218691073752719485378457640842879413778837374736881005820762756642677289718262039407592017994569913481884873089208717451835994564944751115020881588649300490211897044905769354628127977410933821935064963971098439496659416583728928078646243990297861023491246111387953725492202443753440274762375561601074403886040228283576494598334449755838441308440000929301967086410083702441515943377812965912808889898441642242323209708148218198647516430781966956725362943825020329748960627911596688326880192529192593269576815036548260243477267132324707079892831004072558247651977947308563386593273765726923945215011003860364304991699381692484779886458972833101228567873628640457675541340918557359691725749036171164105777555530238219615616555233619134975318834878725400379949277252427053363197384202819748366259771867151043445730700780883555691210648797155630788214432960951606130245430558557631974371683604015265917599734922934623481013111042525906498238588982645275324646272609400870749551346654448613808479708115411042491130059691926376243221625091957228524399359707866550434354302305942130133761258260643858458003782587506862320155612370902134905398938057500251918819497590469830349052368406863227649846200325700197029147038138106395134738011625336460903754877883656038763882627482544883068467023830700276980513246413247117591563586289164286219739388456253681820991889678442045557768080566338101013408845682495066820149850740281450662860811497876504165019333484379360938235749693450739837229554000655854532033891252926974720371181406248686753699444826980962301321450983175923256340641880726217723343264065937656367234238305733948414350532004758683437074395194590108259408084729987550808032296592275996643097402545651862729181179407504215152476112190527047379018222863100588366948534047264330724187627955005207020675281645149760959892923474314414977151192541985310465273344804808701944288519022939198940871574137401872148027308625469520744974823649510631017347221580500139364978962508684006354573816963409614752630644483034177362118271811736709230372963277443634127225093096737261636940771107139360678838596627408780120741469324444173167507720520360390109159079385788866022015697403650768983501703511515558916280724739262401604760560696640796764354169817562354548535055761246683836191745375447929265959653001655960001412733849595514322275901517828885695333264693881315136878220065151706806531759554297594629753928139646202814434484555025113303593526840658873001250985318191914746161556898002313339116186407532213412779996028049495090587759006732272791433572520366099229742306193097219643101878289853471408431568780216413317752649884665259495866327719711378622721613909575161007608227587366345983678069554652640958531064091162841989503692832834389268302406968986405381830470266861857376309779872803052489430449820604744469645385350638535406996621165897783861065354360352955706074307485507793986918036073498287887855956526689364728292425651944902747405188044388393695557896303081371923945478863973359608483826157936896665143003375043648474223556388302956429079535966529536972399508961772516807651134803738402006574962587875508316806865935507788293170547440736752021245374224529997128693768248236559447122373541465082274821614071568778154927502704779149707603054884598010073992266958202525890965204559466714945392562256774876250375625831916198733542346920544993974087885888368237261134719282738982049295565923654463776853690244176024163630158903905948750359741028631128128850130591385180402285299989025794170257787750410552752592622450803593072844236269754665195696188931680889432996942952229435996038300341871174677637195618463207062775093928072603681619604053294907630689983670742500968320171420850960301785598025749850696145336305590186235809895442863528742001099394357522043587468117973748967979098680123674713128432145006631604235415939835442022840142967664512364706469121350363527954642699290301932154824125968028642132778831611642252587169680652701352539780475257636960736283885083662498009350585232488158171438511132183760636001949208361195266431191406968194763510103705250268466710440510052614811249565000709631221676933326187601386885349875161479664885761246423078685955113499279970575879961862793868859982342712734814130400081925997137359267639539650407395697532471602075974995407232567704094927669124812874582087907875121334089896415321621837083461827396131087306371871385632080454445760228729855516565346289390336430978360506594050657569138564280486434239567463524837435955181053108671122147300020807256714192604794928696646427795875354952198924801555817648279732239513368107719079618416152548674922519211437809742200883040239152977489514968694324374444664955745037770564273367357656733564125707514912952390396805378183125157123444420598645875361151629749068454800971026693998921612994733187745076273264683282019515230906545738766660034822154355181553484807720293354660405066968434158396118050255040605886559120684603517110204178162715288532115878704502221829530025203174863808986785489799349232021183707528621076297369162243536599963086881683887542437305405964662632735525709044524996898856365180797872811724047377700487499254228206491281298187810796617411833644654998974601162195580394573249384299757580740356559861691856785812464344557281119959004766238424535779143612174393371512342007638363334903026935377413160684224451639110900888932050091207700028842375667249410716855530044034776173571073850039339099419643342312094127138714981520225658799222168271965470998356662954735677063357384806602228523967442634026029514360786616380230874530871011035206447353576015514498011812763520301352610125022495100665341373542717164888905497101206327622675880287330580842919704624327234069816323442256209243428718920031246500172642247615581018153484630838005836678259322274366364339357293085972810986258134291005114116822044280565688898999017674067569808281345082513341403390145571857274481355543263600232411146626932526236685635605376021402093199495215985709024763629253340738226078250322378554925630472598383071652013472689590791209774253368971681862086718572486121861796502465854470899513431844799608525239025157355354054326332213915499332856831562805906379162238400943828131149460100346837963299771451454461067315318628730646214465833172745326630014135221714627991805911622989611175538842304095860237050247170505500959382803534710271597292103112491496024910721517473019398092727271268208114815112212209301293941482432257280773191333458942773609342539071689550672856233972502987703315421435276999160652516661798993058664224576861765525993080434275390265204752208812461728491303729732658920446440965254698506720205127709655963393483975868067057443819874836002802574666835981362179539225349080459490534655547958134486830916756424977745206320475438070425862681703728346142955899288132788856192584729009417746748535641815835411235708478902257314413026485330240611722994958036894681265448098089182500363649796052288650746905498182720723456499994967666184478030544870888300341978510475398877588328520212158208367773447995646800302023415695143314441751420869651677940447484891870103592000164859961189366415621888912186622988443239318532488522910616184926166243104734903075838432811575935607773161694061619510965785149752284136611952597140883000989332809028909020239853352201200718984141354848936596294774342637872606153659863954990031147613527533924572589003373890801510013894060940871426867484692961683848561341568110859039525974688333309842457280860491096357264531383973426801429018261413742092971059260610298688022727979848492935309766150233104242240654498923560286158285800064598651058056761555756334062021040458206097254237241483519861804408576891996515595918893764243433471754202578957143039459252245601429335231277608872636153308927486626025212868971617854031696493628502143805602689415938915936827825262436464148745453024990095579621935543689508375827329338837206201768410598195377699391140241690437899739978850614544443742309841388851278827783091647538830879845988933895709496573984556168934794923389921037612381923934830911369790110337729521990741646653202927606145016954476130474573252308585767477696993709697219957793346275721464304479656727217461408955387769727306833574889024068430833216211111030176532563203101660856210297587339314171733400584237003636967889433860324415552391310268263100995125053375663946109361764756845173271209608002599021710031519550486292550591369500488888299886261665103021523620244355873764450014160253017670752086937214312427783262262754461274883283573053983408440923343623270698670932614149686095431647411757394795246036730108853593663489103361200517578452325250005334142283834388155757569832041445710984818800229200134124737505832400956406980777572952117304068046414742468493415063753910698954466669024412068416747191873659263510577539050648976637289776542098240448566376282008984010828772867233387035027415986306838917082269945000353308449551273986546408588094731126695381244602943718018006980370629269895831109675476164239952194347763746994210504332875096781088010539189807124974049324222625372823914389876036806953121067842907801885913420624396078879618159610529778246062307660775946608952075263098166323891444104331490171883481809982269798334236925612014529007372502116034837057452469885732746554404715249602797194415636822720168621905291510220493412715536976103803429533908231796450408552745489358502912245592349822280626466767682165841414879747847148322474031862775308540466515446724826397587404146092829493823757290860272810349213949791136925693037360516351541712069883254654458595253890372692316382964131288803780232742730107117148836192005335338371903842344188059846571425432284176806166674540685610057923705818555590216093821018016104885010819134823507045468729558365927713182679446087494396412682938068113896113207806443933236836980233021914132751865180001260086419464714827305790799413661511905173876977140805242931325981454936030587460269051724785362905596500784906994323399497015757107186801148394432166168210660387932379413955047646544462536789562864989964515260303819763554956467398300390497384917092475699113851787581688333887290630364516214872261875642244789837748221070224937075623147832927726548833630713555215732934925141168677348790803887229263196588779305736452485337726776181528833352453510838135051527035581849846603615131419641720683294555776704776443320483065449364892477809621204353489851128530947251274107970339304618701386176442600955047753702055645685599460587468633953171328419548113847055233036115353481069920104268318730367354782984046642920671693976035404388721247561169480761599859893759608673990014426898487917093653410666761310231881209216229009324747752247192292622274746172655378173153732699087060992906706445032100960486804812339466590111041297377598497331938786168065602607774467221485633962069913452337641715673987301960706312122368295764042333258231756125345681288579070688054480664497776684930895947582483418535084217748279852858533771895307845697613356388000766011826023349232585016823986471278205735353378906433998298258386333831376896541510528384159661200231590957264898951979862113060335815118525403613295864797797306112119785244012566097079171692296808508086490870873049621282080472716052696994403870846193178714336013779117087287445301847772588745662728141448415744703536488024726406012416043807684116753144275437715465155423060860611273911340906752349675747033036146470294143941556177736992535414361771213493026831612733826868748200382705133419073303682506061876418083154880490658384978645543172107693948167844779663219916427336095684481033109846016204369133303529523184898563725694857577546677070381447208930915480507139429498065739174934487825544679448671952605336647857232476037240384096493229452835394447728751282184487410632255309146338783648695630908715551364193947829016866653861307898826064476030456039000241651884191753727942089937101888614499572061726618637885831314043565590451741979950049320133657259446900305366557245513135986816955419062237733222152638651359244940764765339285728955907311022057083727921214228372341953377513641970763811104897118292772720698942381437748187884247921392054070893349427292791932871283608004251227026099792418477752990876039153801330746239044826411058424359802119012726794240127850212808709223161802052428399470960040170948918845669799146389504532545865799799429523829717949362715268060305982464024370659434345988294400958563354892825024690185943151386208720035578939120229807376873010313067580016106344686825696371131090186880974842097455481166354821850168040786463834129620437560362089843929787293886715044792426995182477647033123432443771759425727335579118528856777510107702061977119280674935442062294794392527281770612233849726144259022393549355481513851351570353662061152934081260136362529068853648147379579544136242331325738272401066395475135132899734386837804930017436890164408294835872582426595305559668133779364290553035928870749471383802752444940177500012365306043383391677079673251539377136481966991171938656397159021776217315325919935030755572049172309623775485141329698843376131808324871923223566664990013984468877718662362877484730361819401382506170975024946000681109953363421351495656583601274269925245604441028958833032912651866152340464652202278472035279506979337998880734971118601566353093395463552241825119450325007395757324475157750815008482027031914756728134845232253656714769222819761023778348814163683232185497813577436200391997084787886318708378829303159521494804357431528914706272184580110068860662992985500738012035971190899500473919511446437089865256845304518802867461994255111698283812923068960291457745263676580401214912318761800144464944983146284595049959996685551884288834461161638174143305734335764316749763436743321928590093706193698404359033918676572593006767318450763468916192794850072220733862584974111027637657942462983674650018915481665503168694954375241835296732062333921025315600381853788664359210468641094499929593990270950398678893576306159245166856346435362007602660257620594064882744923485257662049921050779521837292767404178158440156674797996262301618796997260023406695932590177749481715579523690593721030643120312959755341953568243565687923662593756783163662800064170422666665677648889060864639415624437803349719848345522387262135762400408150911220417950429288870969234449242123313554505920497096235046487737273550995031763255305197396615292423859877260833687123868684269891595285402327854876652442755703520309456841791191827495040329589418498285701855754287169326791021054938553221204178237918391988105227295840950582192786801970902775370218051609364658831421158736716276771530429189013217503589680514906368025399842951694731018763936313753344809064218237735788413752300012996149458479592892478037475833807699813259651354442292574242006998280525147897825362262609676945944800413298956874743265810138499604758842023848226202426192510329652437598605757268421216830546954357182237551908009401140267382749182213203420293851499330527036849199103224077428908902025994298769463488185030678512395328330210265547926334051358217528463478804620623957090052986730653965720069710506986650239851910141990196470921140216665926801001671549092780007577201731548315600841251462457280657540344777905864115042747087466023697785905540205896401954050597258764635439699634559968884688460269114415611928710301380624928511644645513239603070665552820635864944203207216447090700832284272331191649355487034366476220023182743322739737133509445564056525591325000334375684940139716214976730981499216730310774450756529878763658283808470630631921898012182299895187960906156700176564439578524296991025268053674721124451539866254244548260825277420187021615579195168698881063892748206203115830388423008081921138817547729788644671328337552584381592066317653213894076724693353326402125827893176535293794764238015044915948910935503820334540835409904478653249012619954835278025131494548279723853438746076341741487232718326850757313491583361574951750382100490060713361986424550321226106116659514397257268089072751099195203200461131723295268330293628319463010224792836522066899147278208695520900651540825925658420333550091843730347231255874581568223664097519133304232196088118048392985932705405920180400692719900369443405290870596040678108336376526038724856234213506656521938303439388971660366869839164864564778523023921509747228646781772730698314933035432304417252892937972591195742318902839219740782625490794401670440213255928395452252823101983528564002488576634996681129227689689121906145400861119005785190191730462740458383113177869994444471372409782629874511494932169317268413268691331555579342616915867109303480285937882253441041068332256273010921424108364069190459511144794137492782494700307070849839289883253381042032575011307901095001394208234049656492891493355677722251516840886069201246164677307433681612225599987875523291248961180298593824617404676461316997430130014166882341284396893303247392285305496837706931600061166547541486912802883919217827892910300915825754275803150753473735715006851073748461956970757165277907155292124582923539039451953160340950417042926911057573674753316272603713625719860874590632601086119127809853418764568906231330772609505743037547966330583944109142610305553342316640755624163822477046209231565298589314619983583730462137418513954429767848288075626338919531991392722309109240486440959954597921768813705210776416097394474961717735639050664162567290894691154864442971173432603610057214540882643198690331853865137777431504981593811234734054854077640711584219290465772032801437161121819308066771733910859954884491855183599945624195975503684256099318032527538943757819712173030220217783963771135359741111379060092646477422995432886748547199270535373138867618336098883885750808570593945934339695337639016395840518052253330592075536002808281221235397430788198091375748313432889580585720927579365655863993082836645575793821373838268674865111486854750465935113082698071038619785673123676916890515870423232198422132495982124537003073791766634416112603615759152066000794773095181877067316330947923284441164368647939929415579906286094115622365446531903036773852114553111320301002080049850675361719025503746968782080460981559814610341173084062675257291630362663384329881611818270091491997483747410149492450040996751573345349729525106903489517329577822513355349421841756694800646356005719861265982489351927198913969570058990713018027928387378516280060581677720020216752911260119290164347548846323814117576283623230929583772698378048531606027638739959045071817428494107236148654094593801952535566368467579579454639717902673263763248211276430842839649993310811945173951467630904238567860314443243276824217401940152519251898203130724133523375818256609279315972709539729652871278075919472940819973464754517101837071276226588442538497209186783557044453920922666824938212582862675848304176919416491496340985359502002562898967224102399850165458598706777493756787140725554795926512198259761661491256986808157973526656957860123174031532273707842982707043618108776408362013405109752081083817119962450789174260315111024271691929787261774717885026852595387266923514337025604152094408110837317416016785978125941028574528047016352764177838917225588068188995016634909608709143351612894579622523464456441133227333942928060172817402827793592667119344124530445542592601413069256384947634471997224577430542885115879045280380692611737500834590756972358453386382739035327500059208315580256513623388061950763982892708034550853868116826003350170327180832139472984457877730804260016334039562828770245300115100956652002794705627854545536439376906034969522801922190707969908887822886339443402098393449578965958652174389937277617684682198575176781636244390595298339219569636818749757811537043808120606190605851873658021333194289437142751755554388325694716054462508992312129883460305836460290870736455177174014489289082438569358743885468347869016579298347704185027370534421130134098391196916813843251396963425204397155317902221428862183497107699131768406449884694075924374127873121482352005544695936156468978524342679509664168298621755562823368338612118408271791518457396824173727969074226698020452769597539834677665317193000378901785170543168730664163028288064764344897305321579099465420810474764624206717471819530849817455537374839635200947307054927017601169219041956611305477685721515874590400218061929638989662682044408613951380815624450929242913923192403357331907089695694317286430471942148102294063012653960515074776067866718027172834068194049649168729553429368651778137210439882959984227485630621580623652568728716400799344778673267823667745245439908953419949648590697791349682452419932084977964205937553346135941951441356775326360119622226835976029488167609281737840405127691791133594615355862443130813905568681470445272710360729227720843456237119677104745200772533442292544516873028585897651877134909502857497080252372615884010968992947156368120811795296565828231509692006526964082995966966098697304321665171548048484603927406462487080621268883283137073379612707930644598896920251106607116087738852306604923814642180080733583036915578469218012111147069862809246748032947919602354036443436853364918399577828561347503955179899822505405444510541967014683170584217484938448457901166616361476625231664117976724625916649881136997860813707516353475567688961139067957450828998464419528142275228356917076547119615007327643924839457454693975366331833534594618342735603403820857467419900121386800296290369093803197521182942300453396651440202364552031650008765716856585398674448271089436378329079383071817176394790012505537196065187188738533845316273487858109314273614397006157916942578813715693407650039054187961945189743701404517775112732565029046489822742204534998407863592375092726528738916054802653906470382490891625766063915636991567714185241033933502054369313395942510213579016735506288483085347845872309852867681128753093132112323279493265459374757548019484698870991305113421589167911589590784144203371368594770545038856073397189352817646551263184882926294455451232742428295076038073367686183391740175376241861852589497217989998907719863221100872302867537415025425973858536454274101213239665795271465459580640436980800957745696619223935432039253126171192036121590101219495588961523705518541332550729878252374891352954808736256243284370120164245174334533705373545089027095952787216747485791371216891178193755943197036280694053316116050529333189229940723260432641306097727256366750378647160063649484390345916266965795745958595824527996463416321877555267390845499904162981659040810666943734008345442284308108591207008273330459713971302949612296184407902946169546211850217688896647136678958044146097802114230327855208246405326423675994663954866831359019716013056095477403103215851751766066359821738761012336944108451603857180214856725528248151638667026719736363167439097356907645031653151792473009666147790497560422524507571214806004170925537573985661959797054680468847944730599217273250569835510362864963421183202402811062937108198794748602503013104690702884484041415430114357653272736085425067682870693663408598177438997951498614144005039102234242952239771419141351664727747139772123999013832156166868842247094093431555062704474453663713359340894474028437086308751154570566269037956062115064965900071815585987372834392711391067315091969384883582568672302061475734079060666503871887536453593692912080414563339196693462103919410401468777495787092148878984228282975324311316342426936617641639575870366138309436965651162741063211705850770780468822363403453611199709852760962818998604325267092047743389993352199441138396956289340603263396724669525227594491672699618385410977618372127676215344241992212897642264070051517443101091849864081773314266185120924583683946800071026972117096444499076372160034089522571165520857680782862276397402418215756485876154196729053922156672126495949143176407839473211522012164560306839033510933729238356241909494545573017037586051410969180967302573300360919580897563700935820089944705480859534896283465364738658234613715603053269731081070883769250518740102134559082862697771946472729145653335292964776031359657008019938524232774125954860119243069053882894991183439162654513887770571666662617842252193185312469679840021010123601014100438848656400801041334395496686559737914833866482351043698812529295902304015208850697271587384791222616528042463684679157521425437785929277241158244966738844150826685223708289618424954137672262775870412341647866574352865816675499402491557245536553180612065759883224511485399364287686680443052279738510919602186256010397323114465453316707382883337906133172162496436756368935573019923524297461253397667557476329895847287013894839339535024577573971057520194871014896103631363591700013849178002318473708611477495801869504795831833612573228452037782536305440694926878481960841342948116573602710013219128509487660753403141087326354134250826290124491903594792881196623569999897758669051397810587140181394413366821311202173454458376546706624680748830561599193956331719350953148590301222831905541240769755773911054193245409992559525944926269064842826618230048653653515669418748941150034263399759880185751198138584042764205770408354938398011435028306370245945360351355013077699318636649538497359085604423431964228514270761320635464798136516253356388023076449080140220446068502499863312635999186250924153952154836603206057043583734016091972153708114607857317004497612544684397491413478961045574534065291299445547621077975973650703813187837190597661507413804423797329933747596423620424414385728929343616636132256010818667477501805441346592541946639094591302750250693694580954552633608979806068201291446107270986948995046935512588035105931675383250672888438104483847508610597209379589289120590377965843885403458494290307897448792597563262050150560173577653558107224288404990580317296607380617731081566894310321681990173087917815353451400416309791616479170392060646290979406571885490255768089910248061226578270466268861080319939101430945662765477762249913732415489618567947869739569335374459329093078063209663601810349082031180588382541526142414833975253998203671141657486984794163929003645999137503561779311560216471356721196843305229289574145206212878424437848368769913457973038872874002460966022212763984010913534685011111254135294297647255380226143591429033122340033214366212969016949954059276408302696448462276168875607534770386855638690829344118250939080649349626819525738364476381146081194278632625276609478353017920180113214472095328543463450525860282840150066632685230279344401049576339656761772558171055523684451982589201884181618476653894156427484382523215814682493844946703122917445003321710972743760019465190873021325766954890628694766942480765356372455705848675551277361580776892783059736660097317238895826061100489325611217354240072891724373106034836207301524553890642819257008317547899165197317097190265401763248518515281530796731642782553519072777350001237466367945371666409831733535549294128028167414204249329373319055165811922514993641689903786046773843949251173868633295571720636772589492865234300080279990894682654309511167284261105548910391442381550443193858551616647922163389160129373658087795354648098448641399376782358067777058345185714232172267547912102011956228394737869795126388770954136413745667931515761441595283206726966063922428476188130575703854192640061916085154366736141556927665348656244079618247658641477028307641589685694444641988552753183238274963536188475061013362231500320704278850807076396133185370387903091267968243681547518311092770440384181933279789048619557775861873268063110444345684501693365977411999700693547135073162024996093664035404969871661856978655399012460122251961861036430052143953895153834059016938633290940645965123714878405835681295764033791653644261953312643681698862279552130627246941545597549662487585818706839777836795224191186902015673403911922658902090436826029568456835161136379749386006818812514146714867387200708455373804527946017896832302177832824493916766951417403132853099840640599143848781088447088667347970882013528315999937735872472173443448799280833809123021465855265786367056383547343424787333069807490790238621125600084941536030842649906611570765490173913932968171010233405217560820340267426333852704738563739456837568049159755368652701121138713563675859838604035294016155662037378124421303221508888906193495258507638914554547101082860795051723569824133127706644763184665484532056456954289859950595712314355061503080752256525808693929866107239839948197840984331808681255072452126456368405705886314466732291586156433734260549596883666246099198036424278915912359288189475296136303872533655815269185757412509915594538224643006459122827907898238775257550588424557608262513130745043488122237227692746051795049944595829432612363172101274727799803061779174610039249271058529887960207719285755290196551913797665802234916457175401736525514874496195956476545576784860411936942453534574978224871276268504781315867223034420611396272995337361079320906749859402823414231844567712987778162762432138625200121201610260054204357913468669221422670508606067828175254333102444328940871949216114112746215738595094440895557985397075059330132468570863317030662641451087653879644646119846599623169699865790505911188469718704021778798116248494883743400162928996056735958219607253119991516069345089283385858131075731974069857545133381093048706294511426468277519722529369354135108015289233695105405814454748361866945021038223361325695445473153495315670817653758796818487911504060850976766662908939300586513692357684195942098338441762931383517077480685667705913192110057701389796644826351032547297663837690379833084724598004129377510343161705188589045951467919401270707214013420654680587650357121624333373449715877240397214383636332561113749762713767583441413720376579344108521727262809337556505110062004677984546345838383789169271695818613271651550764450459554299482250656691933522722517860357090830564388812720215958139557104396605351303078957186535070247217400582618614934290851151675333753929090856215700589913103032249198980680068130966714223565217231266173284691965272413594795421302361262597439283442553838717487033452793942722284944767361473808636012447764730769958000615505700491395432533429850192400924733288440010813993682308719061505864089374715676264453952143025160448634853298573980875969058888952975104384655473250659626990857488170536530226634111850281943815470465591898313571138359507961009125048709524125110864886922104599798941613923840388301459506197764955945863077904927706948608705203779570752818259168550674148531091833297522353364614328645854244970455011642632640315937756709798016881194630046898847119819274970395490944170275878799991591942695816498337340922012810237499879223804273338446583230207927564834493192068201762431032396793611513378821369156486635390506546565113321232586414775197470361615852546493782213910024846984953526107789650861373632480139681964119233916000824904539493751605014423414705044003679363297781808432991881764507109874608607427560847751081249494604546084991739573791240230568641539489467821796205469897831922205685924866907344088384440515159400716942508222687632145814487354002452214864393731281905969088937269766761087230138217271126181739897105691571907113631765468653731908704025890212758109777891813133838317895962662585425298522581517488686749191135967012238144377247404739712383927496829615465856746192891511758547948482975940772491337175720781213143569204678037599084649081388312143368680321214864312242927372846714202665483477588445857168228723059049323223486004363728480214235600862257067565305805351503160034098119125988542724438704042844289552616146758149344937150951388556154895086705202565037635114251504550538788575743233594945961292503342046876360515319013216173119313386577789627355984429362266067538430299341866933306476651467154814413805838984209297763726649292346191478042956414922710246534628396732933934424118413503655207458358825351311597983278083609673418931895862156822109667088127932733385958026011153770023097049164693810916344529158592229518190166850570083104958477666293679053922679917750117498698555750538281359998330461103179715550087227419240851278926505484372614439719960868740266946958381580907254110114973070794814504724756493832050741351562276735273178382979756796676368970186349244927344793827748511131310362779823896788919130956002598130063643479240253672439213052906624606001474573369124974939080387970977528111754962899287685423723658251841356765438174270917748218507030914526438252303608028010826615439819488512435843866997162002061451734600901847359613768770209609380909608315824268280725448094388080181394278086253135641771627307057567210057127341223435902107036031099737308583183359642881214189053472871288677870605398727009889760027174001595551685212245357432104158100890901124210679056375607626426718426362360646354863741792881189149340990795033924689508461619192860537544381003530954132286254942662063847564442011764050870984098597809909195831080034330858347905134160241666184866529478375707922222705442241086580283287337493059651409881439632357941569300486803915116056297364950871677698099135548526687550421668415084805008174967608606331116364675049184969710924916732704453795884151305960831668602578571911826357000958837524867134409440745103613234252097565712800193686453719891128655283264985171025452459851726872838733028153517202472202248601694916121597826631526383139395510295186063997869207077068881853905741418965724897103728856558557683764948232516597613226542901579103989411139487323627320492287223828636569352464534765653086729018384229940591983992360095260517867994353505805419527474108836048800083970473732292872895363744812405175202709711980443945056495195720425047801733117691503617146032231221821167931890168049368668621923593512270409186146634109853534140239321015298785481802635687383461008549594318956212253730246524686631926478360685485636645872833334120345871896913683061421912128234430030403541735259655977662590573018337302992235543394229354334657102167816356245708753863611563828681121597697363437256825495448882927196443926782970902718268468021724917545217581826632920835546654655823692293609379856891474960011074673541744584682561504198384271196443580367848563233594380981209893708415936892853683199511725557660965390525257661598775547772328880144635882879907350365981623715485399367686784536658404436873864423884262102151782016730823586494199255453844534784352737874601487607027014389362392563037812573071770418010363389809915866834974148189881692313453010660145099681917271297304705793963818333113944951996031721685299890825701431346715870295370228890149173984785035986325327772928703035750433340295183148672973703514555060106213050135536853281212197292666325595980370498212483242264392494771205696813422568170120059170130138425063187581885073084374849748746785035381882426671078883441936036040934445994333405553360920860663719771051277001516614118461167124169027600023204362516448489833865681291992354344837213326642987909025712606846016265393106848886104553457163510887080455876645292705796261888603112280419758243670034883757531923785900076264795273318838757984431824225475605484878955219427219434980558254867810890845402015408262942418405323534256521328993926627095207660130028314248642873475812747794154219970043550702627491206767569693683329620508244488647175134131091739543442623189142864851525659365408672057887598109889142069703701563491452291287070081323348960962820151120709206373260969535533443472000846260516154677335330850121599543522145521662309424804658675720378858746818412111906930727635190931653233011877241543948666902797039615265386909976912189632606354146504670280096804975926519831988931682827242826348231566996801961927166440586281787204114093744200803624599942462490185523091911580047724867362765600570463700451319181248247288555204942151990344098323703474562256056604297440909712953911638313075695782940947854770922754956608541701543684187615195217898611711228837821453789393362814461111893384586057662334571690098378778734001982281667913972937643113411389351658528991198645122926487268277918444046057314307883844513429821136350061223436799860667537926578686472667373975795909505094119909632408400111948690170147333584572241466999140528404006527790613503094202677203017115595039372415384275163732926762365170005700765805607598349248740813852433764532673205511133996248176931598797629078150343784903580997457364667523963667903615831964818701845485463592078284808618484160788133080013094801420431346869232125938400033825874649656114474874526325899175987828963991621108019958443142139100927627526010144154806565340196724301147260040026342768859246436827737298029183988259641782605286353818007059950006488975621291534754995031178100333133831252873740202590913684856149921336390683357149704979179412128623381919473109161653811193352930330742608632364716966845658761904096449074505401974047232520209697139131805381468284472043868798486899966489355785159615377919646131609170056397535128827593274131481644048745802576129324068646015602912211374940892629749207160414105789892608068515819954370228539792781781655360727182354532373560122668060819381927913861755037764506099032594706007295885919255238521208256910173765649949949404445152244857380931422485069820898579849175809478931274318399571910171350595974235433167833939672084583373451160923256815866773526307688529952271318037471296298965582543399686395619569838207071944823933811253545303018828135833826901304468699770504560291237885431304016024432425516971596606227972617218770609463870682424784810127390557776844753906966924630770757592898674264251509629431042104612528591812295969827685126852331136558088465923486289123084440176454158098786443390435476689663888101651421324620553943985127077745604452565383627935295477763034842088434548875604394797371130536813108376004467323576685980815347184036525653947951461246756182562401501104221559326651936444091127679094037468770827432787177825801041074208057632648238081534119989951215393976340578743099199789820204986714288353061345786082530377623657882587640481382501516944044432118318476026384889576731179501441401527483918541999483624335443830770599761440906340434818881902598079039950732136511678751854370097981515534346992461488694999789916147466255230513491535150519799689509555812733863739696881505571140482895196365756307646841027936066721823054445036180294034092319258218152553575043092309463475656104640395067266071818526038902945404134640856067592259381878846179084487966457012684062064714055399321852581664168268827441157946041445958402518097595413713571096845294564751628574728126067718113319126346108316899097665733537335204963734819274395888865054991914788950508341380623797824493752042873913660279119252992372904303956394343799254140333673491261024082853720593812793833265806634234793252550781175879002657452410428913964119975285946148978162775984603517033199096109503623627162877225121675331241175848600007335166871795685291418117739520012511600948558391173683746607723672940424424513710727220515059953312977356425814057894090244761938630710579804575141499668365826045067590997902452743178578588406840421731986178430763707476515857503558489494748512803387967270319616014952309813217724538393494077262823851205013484455631008505027235635141530920570151964754241052884719438452144802223571040565650725201473726129449491400414288933180127665516634347862527994892873171080771727110553846545542589515154606981956742994720325255618178924371885633811538350923794049766501842412530734621364473773042162892206972192451918175984710322428728206385491549156672855698486727467304698813307056641121830289635006251315695369732360541874740919448667157964794782220362734058233532624636726460946977726456918887049969529314308807537486865177360319644487717630565767844542161851133946590239872155562637210572388941674890637507756427024966659120883044297217246573408038378165096323871322214631827975033696709972764981164230136569449669323817358507089111349949678961850397384939669953479347945643554284743439751201662044087582498787085837859304512353006976761765310405806463079502579844277458279479116432682369470545318605864969484078418178062323453452548563633733303019542255417888667824516010555622786533841656684485618674669298443553576859816449896809977073652138932656721238404288988600432779263138249222887501020521600744748568685796111509093819067410752761697394816145080302024979726577244583783605620037821077133843175142100824128514074673124728970807016923447191952272667183640027495447647915854971368165963824188388891534883295099804863929074124931143999293873635721287391810379462225282834731267736008551663503548964953128351860394252691759922773056563863906979600708038549130715428713087700671946556207045101688921951250213786732182618714654088999384719175792794043666228575144200520861144957388643128609487366860010164316496623284325117652111625292501185576699830925620998422372228394347558883464163420630361015716919691759978786826843361576147607146523169047083528572235803588109772506082940589646230702233738921606865121566696230464678422313329812823033269396229721346326614421351796582128460004683657439274125643042127911645992472524197370120774109563794445377096079710481828516119698699834047100586864962879946385294438770103288291161987346963699938324985343540096892250423702438510670270355636170971390809859941640546644515530702993086728255986829924401710636279212707605349494217142385439561467737185364643640780365912249274451769711200691008076484188564661734770686267547346452912850213095546261330949924136919151877734995478451382340845767728396082733151123405447439973275218056587777924754531437181083483576138651116529174066396139194125785588440926798343324843610508167685456587336063558422387536026778861358945336157349171482183462719309255298032676460347484418441537119134714086875831893454548749315054161882274987335498276534108131905570554432559847235589793133355597429498124031282773271761197135493074926730075689377563665211031534936724946554694780593113387132278484501120884450298532844128719800967048827160442431975795970127505322447472313459090116114016263638866903360769863780938191584318563103267454826284784702843782038580827089751567042920673198939808672039495172204777387349078260675617975874239635333096714038134545506610993651557957905263692143199287683308579761123332990434384166003178717688381888585316912946111153312323059606001830246743527504921022539024804312906222587198236918297654047566489028897723286326250156308835738686973960576762280280100930582699576050986616799387411949374605698578391665222999031468725153411733283935611648889200381975306157837722051373314850014217508040193185185220712927231559033035679988450982397271113262510314527369218143886137908363558740820848526743682509275165194275745638215904567051276975830386809510799949963538975138553732671151684069993358092308527816409570138336088164981294480249723606165698165625859088756758297252608971291384341219716947045650071310438171860750710518783832396318623494452204418754171849931538782709405522777711379050856660998492170076685792816558618804450174061307179345551227855655102638534939229967896743602328019905937351396678985450045826787025153223754324890212841758893412644120344255528349166820886551520791696113524249249247687467787937851225870954335067041508939204953747951643945164025113818514539985021909257818386145059799431208900733595965328945127467649458419542478713179807343026878335739019580316626641042040327922578437764413465251555153300100236636970888058411459710247012007177697953339351659516917081743950189954237034651923524767158739879539255972560197784478523089407597306288904153128459779392943631367758540840186361238407805091052457959249371733251921990460290217969721860893964372292571462431913698487108302778774414993933844350328991464283192368884810687518721608980310037011430798822550455053770378220411203704216903476815685365034887481911348737625053249298822047795383174274065290316433654891727047339227003655014873874307315249252016753454097124439443788460274774984658080524518043639409369462587025019156747005201150622686575639293117912745034811002409813959612504372013425941552417910814605505233626698863216153120038162154800844029790627377738237070575130817458285885862426209419414443573384073840095613119531739587488904328161958796873554767267217347381319090954882494671585463309072002193182840256430157156050286391170907635955980644879209131159265500785003285531013619722943710793003499675431008852878434775146878471350223813059849305219004098775660681919506364159030351070451573144636402093016813689952987340047267155141503194472489807259293398682221729366221756268519288989751376742274114047262433723435975146771524946004900750342278582614525193052685126987845962038281308463857784826648470944192669437183068812020324850625172594371071698782178811642225799378722844743033672333023055640962767878657004786593477735089238437388814877414520104198154906576123133043544839718004907256967183746783715610292806375503817652347822601714895599229491321920990996462383408064580780844332033315592785597035104433340259324234730059917989760464513723810453120821623259339478733497586097269651267594320573239798739292179585472023440810615553914813602220128029405163100930482153631518425003770445738491409697596982472157208935883612036770515672415475263581561223476411953137956382423304619765357324668329542162073164896688245185527773342878554415753497690624730944411169805666671057945639842083144024687626587284745699955151226707980133343805068180429377476853211129059671655458118823245098898524808941600176658811842281889183837119514454307416917991372769958630540979842077267588036701804868002611326672068494704952254158802045631812101610780133034019039217844718718811005955037727853681391262415817036407875769096884149518799763655503908622990975583529026017609551827523882987661096193993175782882403858213666850241158795944438438639178602533475024029226804501346059265896293611049516858360883245967705647877247066599097214098313363978586184527610592462363997708386282405947387677129443808138165492379731043148520355261818246579818614840456050987403149665914711260717490864504887356540033217854144127659681015070688553977565251261258068481503417068467475971807735798335712670966124549199894978516907133135584261740089824345636616945084031540955326886914110669511354155899917913921414887650374798132883223379495970369183332668302099817382588493213264034881034229371600875227470330395182296577708798828874338233972151394764521965646114220285044534511064708023222796173554016307772934048382270101428823375377265196308137528792343900062642778204982267357953580167848748723927438850936233734857145075879905242804856456098575298315347008734607626390670702406321306173107227272219124195580521614965310339530686749691814577665135999263248085226538207651760816595958897381449966513907926560429010817572460095998806374996153510758831474888073728286477247369865948322204309008284331700809594639202021987021200548995956661737906701719614483592137407643882993195476166638551097922709030623377811544639925412413427730916451063248962705198581926458957143929133639352037359206531402411001469504150613608302449551925175278433303720134105964199741555917363273241276214812776902638531353523694036576328639014314202317442563148201202854655622753325461916526519062157473892877950375519913110533052605784351153166713959153522311981047345335738445005577340290528962881318300183748141909884746967452555250706333747810062788502086091870929353432653316903153476904323852297864219294962160431859447469760413477015225388707139125629553015748871895310098133112778756344905305875729607610864918165122083287682031763154028703759995492552107124452425805268032035280091127977990426204515913736201408168519599901350173803787450477985385924326960045492482117985247642231641656703610265531017515479548971841123938155908313981812413245461698349621004012180657204404061130022070197375381815326355176837509673850673194780506477313642248487918323439840900600452313786448179490138476108420069670047028216284772473155944176667892151408566313808884171973163253854095767617813715953967036333737287427000494634552236003212606721031744332527148768975771856561476956228233064570343050040248706696694412285290869938747098553762567424559013275186541088863232836675737989162346794646212210178864611898033833960060830822798869109055849332234764496460921174217039821296315229574004207146789155425743737581675100605278418977617339882454976655793118099292689916967509131023796036670129386993666685711921739636774307726384785974613341421642830978481818654371280635051631194227961361102733419608172613979913257354220089971824951146497043500363792024220091338792695063129145611562204333689022488809228535868254408175728787175311650938763404531734552728168420627878972155391303710345940291919723728961643882547923412288541240493467150415859156297748136700827918402557920882998707948311369398796483938272306156940114469376271304629490439580189476937676421451242246274427147437845787630468772097665174070796726575206010652391515597870934109401117207859395710477628227826109285492914596474848795516640343929985435006297324377917568521766869895487885505143847494241464473953582755400729399585370798054054757637869573016992440163978841741766120335440092370757505025694217913488456881345864170442514676963010947325091034636272046765221169487923460911460353776723129420107575672812809266120166132855666797962651248493753140137330955614265721335157500349061448778333945221260635311728438704606498017268436063772870071520377703008945437945158113252442883541760347664983451473590938037906212157092933681631716964755521093882215085970553241730941772628454524602731699420188002742719930073247964554238206320053523964754515642947532619349433114781417590634365450880861672521932361656954837695469887612061153598970967977521235030889948603389119371999591364641649628473549485114581298650855141044187250928972111389452456863510828590810561933334431522706177037677257418048656376199409133158335448252431344375632370836530228976696992365502934039336371014198727479537369624664480632983057142559459435248085484849139430609722243509842022279938983209178571770210883873512625064324841351093072655636869012836522941266193173063959214095816760031914293628151786360824760485184149872713326720239791419674248186548163443875462263658735330254685410400554222513084542605903817746565556202081546913193935882149075006618453548446772624829274748688197590032367039859725524667482038953913030480167298187097705404137079735443430398750497050151502373549268127169535473993275359470744674621143454746962101501031841992291669471464820656380294231866656567695205620342851907345349927186355060423166145569624982298100086184583137971920975243010876124884952849521448475750720131539117693375167603490786647074027142693282449284558387550514402183042215060585620902965609489130936039727094080664392537623505378187870809723649701762525168447477021757526535280038639264258442450409950511932243952467319307020110240036053655646690497542927797104648889433094850192777258832502278857483598627247200003372944191087883700003006118002274698309160867149147617526125940682790021305940269791827364376462895982502967545671927555921172112622237011981820475248925224542945266719933501176164380129342005180878088926331650240207708575504624343524957361748386164984682451765031265460862799821752468963052760653348029813961344170279417015887132550377208609142368290038073956825108204747326712105760877796919738386679464252945279720529414316484856163028770815020744321095889337696014811924063058731993168237887475789914108572800112144833732444249124466167066398950333297770264396298974757700591915601302399592736571851765945100203078809809893239172749309249723484350255271051318817465164646834846042179012342775860843190828179649218936867187725044279026421263824770824331777904308925987568808351436246456223462718238659083679501429951408506202965771212370478922895649476608869183401487514919537536391447590268642251474003074638104783582008740959550524786039621089710906235003586189182652446137804199372356103771334529109395146050198710145363035157325297203687660533620199303713252727805630156717048627018214104149229883625427191540707522246102156118185853066696631761368327972127533901757797084529224380726319691625654239458523796696942715128170086850604860223457409005475820394036640056933074629935715592847475557979014612883876889519359247280187756163725760073706727318648883303768472736116425326484829351321662799178927334000413556252783313893229329531318114075721938780188336803828623941255778480734772947183179289259855991498187688321850868762198688906296928397652807825311710192106243623332995835784660891688720162762267317201911243114033717126156447123733993148963145346933853140134822955699778792447245804364178742384125869750047918904163450494602667191979152388880536141058841482257852675905269583071340278136010003145045096826346102465731579678728688684475038823118841728317544636802419106429567034096802211690126515518581478077966535042073794353462608390750705011750311938807403350395498662958251204215385448010584318441867085935827336519634203652017295548137197154813184885034047742416909803301010775779215142888106411224348040219684647110212481605922639771367435975734104110788558492728135323667819255937007905948974539500641934486748845130032277533221124433188175968984670692883445446938962132078395658961271014443613214886748324239801884256368715128212454031745349793318056134975575245144426084317037728929647822258679638882593926856716625511008076131271898516120925880602116300219088128558948665621456139084126366245954706091184704634744994537719733291605181899152995165804291732691396454135932481799936908323672580930791331185864428486778034768416208252764000668757455921493964798894838390661046655062302677474038280463341361585268660282288748036896480891356547902975361356233642656134621981610034257736299602567993713291713859398281391320577729242592169016162520749242708197728221293649425026414443988505693896957079883382936284598108817712183505112974227867474925658475123604063471312709323908300542717223331393965841907392023359415929653034803894226364334139478836075824277455899205607329255788339797045225133654674141072725084720529688033665014232696747108392711423512340851373481576307721579642593895457241825667782095801555156555223241392412616177075579634298036007083819828933265816637971972057300854146204509656848659466344705675210076134576936996243504345256949241482503827767041118503717537968344696785741425682180369988119692739424453532269531141617821348870287613630938635654469350399340315661031862355750046136110157436623544153280301902569191069699821944347831557813937103985808383086358497539156008537969420381799210576105930628976078461095638748199239768174804711652509545814452701371112154875243828160463830652404726128414587439477649982145615681542143294495224020940676746647725951604659606120514859877493527552779677138186935550386366899241806958214874758584329331337401738801618515068434884535895397507119380110639507455859287379166915662529230123872693280507704949796816907295099617219768298207667725609539980339010132154838318470454312776110830380718636227067988640717156627449303318086346551598419312097560242362163453487483458196667574576999502668185980907642329080926423381838236124003967945603580194596638940759041117696153296479081655570729981488126055026066288542707186455406598598319839710896220486066568844358106476170400819430362301829032562107011793582172951400672550754579177311498276851177544505571977074559131741980970964183404293300124937805097536194089214901544978207229054350160469877027050541864175271806102296700757814900211379568704045536152961856542347716265956591676268825244705603732965704868774582687552606337577656187072347983212169364587168947058896177682920543996828379083486443254930671570560935088650464280303931228232806435923826368108841333702359560188343049384471643695444386153256439486968552571113856707761596814607811221722249273750602700072757166178945945415702113682907338695585662706104291655228868663059717947711720489754802337155341301138133828997556508179940691679990655427662699655293172400150891005931744187190854418754121942357953814881362661674821409161097315334628462025008125432159174491462641835215683904658899859397139985066171921073257147147055657563568851396958278889495701543405143011739116372966921416648726209803638429286069890984209022334158473378262126425432735650794043434337146164178555551613297336616750743644820123076265759527573917434187810796510823622138317067416368127037652052638321618586979419480837628060311828413269401255644583150217596695096693132787805208840241825392335328884286445934756700414499919988956345044449549810550559274253248555138176902336572874226838247465929038461527334918798265604832337654048759534623984572713119997658286158922908503789367128345976435103511944976112326676199051563616078285617913071795037729773400026961420635606943828294972178262425187193509568153250685260323726711475423865523152994013067034693807423138362039537497268129549675302343989355669009298823224257272177703671391902300873719159873626643099541388122651848476832049553730461960400453430780689527924446700220356413689509891908366004514785020572968917328221532361543424137176861540818781467639015450522856535332670921896557746236489195195161551918330943548321035373112319562155786477251172031830663304676799830295386788399836553284205659651862526412844265022140271291314486516277643703750742069318416230225350535039492308733167306471480505924088675964007470144112072389232894111315642091346701367148925212730609458538824819154452527452799999666364852249046953260773193808059913637181439544649074735180431327075690119383230936107512914819220211154756751652552214585804157251703601129238345924813015942110691891528138787812063264897128003678778506647701243142062039598901873281555690932355803099753841727080768461116186889741933359539426448348228667859816445414264623699261721532214921871354950339817604563534055438141010515377050983803856420685885041092222756675614257857853883124421080621705345700477237235497898270588015195752981354414748783741169591558266216664845923356865700505534438020469639878551129780032541214073728659955741040070373769327681968740896906704737753634168151515301559837346403457292883049249613942034795878328064325858908911604409784486110699369562377872284565690448939974663801797657296030552005553505543195394668603797010322094938377107017792700134728669170445758450302215539753879431253423824318072724192989935382101387681294720211936772846854664312377621215663888487447640022574357228373133262905734640687981002835213275500988606418415324606847146963677047294732655916151183391896340976732013314062566153972660928586374564946378027332501547675152033798747038073599594708313867201572423388806722788662346399696700126098671909300174563257104093951572564158556916132520334135598469986652722650946496846639416218982046297824954958893801685874838104168122298286602824224020855903423950712608726230645902263048225036274631317568330311448968359386903452954424979428493891542775470651862109818904696797526562579063475454556151874228214909805482063159993793513007558929006938608483696576352697181872879376882014152709832060529240790336881599032926003791619851080200526145695492262026092217850028423545446324409895879894564180971832025450280900256113023546627791685650641177437240047805991127464781177004227961223841993832335154734476939023517709948786275551205402531563382238909117736631202436656205223046496346897729894534795024909979980420904794232239502602510152376813838890319622051202707904995073409880898017314765857937236620294415332904277173057139406627609963561185126740070774475500477689547659059832022736028879849713054738456910784533536598706209420042069827529594837795309835637696899376619434028790127677947857639174401079853955605615721505347603508449767757461461212276025651303321843689483448146473553320625897270051948266982190626293368149209963496733884398909514682386108733688478654403683479154473376774786762579199936966253876601879230233056987705960538997302160475668670919089299824846162671861904386296023710156676039371602595891274219451127961167132020575257880983857769413011563224636046814025999646594699266692226352550529968771637315558779992403269487047942845657105532409833241773564054678264233531016172551729171122714359181793204040465952309334269182572922911936453846045930140084502107604458892070843158633603365781311770735046009706229426727300261341905696585216363599170567786552120721794087359853877852431821517032759859730096469504358179099642998543700951817062935268973421293872615002248383872211235275326209426876353506380063322776216335637267903260839168557231670761987008453554185892662659230622087108859479626631147208304457932729403884557875861336123802074660172620131234527910171964165518239937600812133824243121523464686499377056410685593190791850755152583112606819329719706648557634841078747358865881109716535411194220903119282348806787807073076640164027108209738013617309785471918897170847860479051060865835784677059978123390786579360902756562352828861854758981486639198496220222527849380951298140537121367499495316211856744208697897150300222843336667274913825615641536860947499955318484710721623794399936738126609134105059439991891331720300194879722053067924552497443200830298065655303091052190310852657139329024234156883741426819376180888370987281758124335845797528869136076806483749420323622111327190785408840969490277365284818526184263713408282992335753221724885590085690251488969452775159267124122458494356224945561911056956415727074929635079698232364449840633157245486057365272261936316226753252250363690524900919830056738113069565252322604905389267008761185001152988933667001199815171379554131684950495699023503669625596104527995857151903686077485406987657980389007620927438567207345013234318846577154662812382645537928911504215447573993278907177637000737703788365800669385873940825525163380250627033244558773172095179774511437930036141479641098718636847931892236063288819834833266282855743385900931172682632573750739951879878374145242459213355555973922642278939306690812470239576352267859905960308192697832770667848771470911793794367794370816919104539251396036514645987068182947591170249750758299274816951139436329386938748993575308274445435297611961455384792888793800625213587005221844120680902330716738289436415073880474314436734161326107759758441989924399299667717247974808328710657744699364944957035165634254190218153689924657883054009439964159470105223772609752488648821338727963316987352191340949715105577271733118036205882605284829013449691227999521328493944619568740556319458992163943345766767277895844162697931857466351111725762528987196892785728806241886479425289882553250775294253821920947867674485132618764032725033243207672398372656844263998632180368954782587849125143509569873592886851008329330455354369602082550429888975139778426354912194897159716362269497516061683481659501411403065565382618140848634919910739109469377147110503140750981787479964555579825575408465652257384959972190945399698865209491760290713286560765655134693676319295882611540473199426594298529898387924105754881056495682219445016075656713290705415385228738785204344660196671326077459324301795805676358234274953790963631709997840960407453777689394447800236302667725349638834840083068126617036178601150938856151377751030596745605163928139213870548264203406813694272104962779189189144553214411215242091228537721777124517812886276380343360661928599368196149914404546745055560473405978676711740792563714495618556806509931543005110328330765794946042207575917585617165028413143471624744555560762438685555899364356610115713285799851337204149011916293870881738980541235172938659742888635059930136189105858828137577827695181812888170190274098933001351954464114233925850647280315072921869377233911068523761095050759265626668884029057005547009335538695417723483929420216388803844907728910090692194938429695315379515426936569335045517393303738203722084532488514598150120303446976906870837069094106965408656798702672909361394988413197082185251385829254556208286044041066162424609668628514355708966145642068293003633212216032917038264803508997756561365883585437058382947044213470220221080698290527222797694366617867090948081046550001224818333827886595037050210629068489956359983428833853655698475659105072451353704097851576386452937594367887162574193434078275767559646500355744556175378057127407485243278975451353616175176727477127013019288224811437567724791078370131668589224146424569920678462444000827605122314381678523298808027485264411425972872169058584257915141957916732597644457718280726800300677505963208240636176545000569555741287876028981508136325903193383971136446485431135908154190576771725534960662287567871642703392754447994381182578394393145208379233228527349038860377913172433245670595933335573776675647442008339714128492676789485511970047205928026789504308968379334269633802966631010059681059176845164124027770744253336724722026711473253805120238837236803104584314684256870168585590841437703638850718874198129193063233490750350318872672861622366700571148736223765388869489101750631880036207965713152370606867145090115528743842704859663086852903757713937552758281146498425019471273541476395793378146791385936518827968247396021129211167770281387706460887959858949993816760026679055925948666865264446748157214845327139435500011990329908628538475216261355272563133876886815708447642449866776166236947490948196340360795362822326216597604366810333482360076896287976580366521211931442933497117870089673672493660654298661121660338848208749636299992357695611433441867375164097597717297317383437401818435807214718318563597034341858295189270331499768057483211043169307520272136731389471942465724612645966780691205298708661695002561136538407777050292016434453610195308187854845317066967591678011216033398355614699631896652544565673042839594027908737561078138063958158442582951822838046096675815915155486781302418914863085837193361797208739131201444407599845690894675342265574451002985807506481896143045809281126176297374623584284536067496581482615777328287699268928051928078297573168854715700372427750739582576590456457970128311081181920781897361274713301953473986915396235758434911124286299691806094693976243502268436114307609770081517069091274583347413084759878821907241630017437759092269276548853563790290039116623491015693093638487058139395989306046616771442624949848426849818059474196113052353908879115300388139166082915603207106020450817692393723497242320760491396893122729529242890015140165406455257484411613633927257298060693668859102695922839367002340511062643992260418330321720872128366314772125134337346707960201851302733120788491049169598831254394370599488564015143035230766287705761699416486906341413940161079564386966896799800509313410157107609658629400989913754853924241967357216895923418183245356349352342096421202883660414025609228278534285431496404818325520245198334861746052274159741072469854071221698285006710492821537275633766543332677891940446304559532149627717301940405751043209941292402449501258450446127907958802370778791709913173671499555002260227621640474793788462203462245774025625068102576443234590090990078163587183495842537082583493036227905762867685278514123038948972692755741594204990029370031097710432150632200439582989727870661488278993794980551880284784069461340484535294289772018084607506326258196342938019942783806518422023565804001348715588859060256416832229143113503330974715552748818510434656310558094903388218715425627040891928485423173913942530363141815914810020874817468166558284731533359772821739250131741314576413101127459427552852062314723093465182045208434600483021750193201285078696605661731290131556823637233442219434933466916632643417800081995453120609981335947491095412328689505967170643350461828529205327195334606129885641540684114664113584878078386084821423158613960728366258212507121789493531711187935366009249684573487664695211397512860980714685680728170372316343286307734667282355974656124143992943955972221658634343991829891799054227625426037010221758113912512787388213944617127230481416236092780942517600671982738376476208628157018911808210743859584419440544155152735770869614997455742156455590040747626319511928866625781827113755460121491521175574982659111190933058457406482330127539416534299503155516626891270911019824320617378645062712171511950641855431474593311498832211385964271022215233247731408402293791627416830125722132474212495490698629940386255103067802666621690285845205750432374858463397407700429155376961142656587499588324898772686995767793811184891534356541089137202444221892762137759698577148151123511371481487174567960012359953274492002998706726325662321621673494469342666927188214456162881282620082491262578701774288340426376835047820735263847205163234660814106669080850889816228354417926344129533282076760959430735607990706656441698011039512491708642384724349032397908463945727975671409191296430295600338039062133307481579767836324514485920497686713539678908769912215469599907880387774885754944246527870372420057831539948383033835943951523052116834340825878765142695985128051227469610610732048158280237762220023580888460585226611782880412464617496371346124997626850224987965533151832087348173094329350176046404133298309102488163841634568683332467935277970603976391772666709818903579139983284662813678180015633505180957261821814299477691075322832965488640886648136456733890709674899348330838346791754270257493383389365851899803767111647512806285310791902005431326220739510476371182910273243769423052288233844340460358174777404337289082210801828381754623858117017663296985792302359655266850003788724514337955940328951545196708502539843855086253862224262043613059631505613776566196940476113221950156449715132350284644718699913162258915199025812005444761186852469458484429403652903367362448314819086107060342161315116936544788432793913837463523009039975700356781781521731489635604440903292339896243098776916299447229750848425594902335305935167178800385574215766937645361716322281500722302585699941686001662828596576255080992858678855340730418944862403802651656540914791083828982395004960762966454869899150113478586637754272725663619835973709961212693345438043895526600895930847738038746162392873602430252607840619338198543606310490288162870068158442870624017618088816392111553277833163850770086414043485466801263431940156122734156144938446939002778765869759959428055563842015289972367021435162676312565056249498931970185601450148014203547119193822899679532763953701240379539689517509006485699544566242843242599492492602800477431413768243915413628855798879528139369865173220741405377990114409563192922712411305047428571833880196007572826196166850344291219290655077050905751034554402978375308745849446743305870685895516764428343060826594273853530661424767381418042919223463479239406125650751192557483209974093365950312907787683433030298979564429553824315838620463402340246610123758883105787864262126282744928646702448737348071042744579689228934419589690210100984938101326115845063805608110277604162558910904248112098627887844405927258778886094497571245467776218511981803473025544359238224309130635300896149620962264989702128616068305220316456483440496283595558156128398812049059436663434799273856037345355442708441470998067886857016264036547000708578024590896295578023858934647773793764134286405294011657961623829938933509796685751000978572404475244818388356269636995263656890963379292605833093636344083475079427969773854332772324320039446997564574321648940797747343133971546887574423789132022990481911436488686773208470573693042274819568980360278247460794278549745469660005739036379810200646456661929731848031426914810970408244480759995406769330511463898718676622104287726828039710449351605301823763750578316616272916384239917718955051600725368659700680326851810398087392047882656009863521296638617040108439501217404838010111234356197743594237705439236085253483108705303070422636475524144784420793055967068983436731150817469857218840020843108983990775899620930690331947708082988393885419511149083656608627989577283870005477506798217424851258378627607728673702486665547601221209010243640281420811062554144682836529926081576037050344213679633855378877236478824506388950499734435643393375908560188871288599672278567242131935926214291925411013111240983477886356662149451035217420064291269137056457491274217558379897088908521030847160563673093330784419252187845166247780416894221978834707170567186042650068860640266715981541181077487592172931125815155200930776768123816940709121666078123630061387189297467074054170329389396334249725411820482190089271252538187601659779234715840337136767943980187581244639883024533125200062427430566047202557077979478543837578602796180556299621604523914516401584573136962212570171524900225196700705231099144876345091093086703239305215062212742493663037287595915452850568094846575918696179999655625591493536454283989071482334288477063882044209325472663457309813799627798855649498414800060779427318566686628050952889539347584650964402803730851131780395741901790895118806916293622219400501987425828028829357444555516713203057065897035828974470378314527154738031809082992675005373452152799176838047840116302996521730519006093132833220528518311228844745729103642142107160053727864126680461954967317754968261645859293207599350808980828668774093661660552184160711155702640366496275087930203593863094455547198244425435703944242102451220173920380157919387072405884449062840823476446009431590178772110233640165884138250461546180840622316182139203319581226774867976650237501458316547031470928246609918428703698700201639743522980708744644506510633774914143380271662279415181875148141483093392690294773430078359370844356207970938127652037898217915818849399073969598201702516950170557123826272594697088225103332838408587646328460789558734535238677852332650432427400102282084250006788568264002105365590239092152645632201535962371167120577202316522445864303095998665761621716591189872948020334384960014585526333519761769652058884441174983167429210810242124022954004661602257116602933231966710441374211705891296120594149424109416536974652102294050001860535232896374859894537273693699778486788689330275921485171222470365882687324998055954560951829559989810034703162482629578106056255777708958654453965660433078004588661600162407027310042485597113101610670638914662236226690929293237701226286720839123347810764303132180581715625657047309627265632509558218788522309014366313839653289717724282964368216656800747328928123990221995207471861406611966373776920717606187535527397856829541419326804309101479869964010769245891490553781073465806159940828070994605305979995713458315965180072811854460640504537307452438446655392550540028505368449239533262024209371385741374666906004706354455733746358436314149964115590564071240810136188528676792404838371054825331027631403895790719166585547960594612983430290921178930792230625176460956383259141389434197763742456721912229399528466605838348829592123271031223185065260626757450587188665711675316295131108188908251317754581185120962799286533615457320442547221936497124185627112375083172557717451311940448049750406326507355938497024942335027522247973336240157662927921775693614905050985480228297865648470056205758342236131712940229023155319761154616600182364644070849122270879793306362213770140429947765223199650833694123364951812217775528832462752435101555242322695148801404636384323101457970476714561772165738786054682584863471164997410058206464630157812793662972494995586543764873250434396722668390842582803339780269683189805267988341341715630104883848332362516173348572392897095545460218967147523660125955783541620475879189734080065580737059871626500106593541045322799526844417616609908805152993146960956159758884235213491322849125552901635074193363821086575772576669979710193535481076710850713298460586149340897329520813579175346009101120289271116219050384069985396650988838916895173436101826168943060819473614295517707868968199539972388422999870272255600890654019582203630009997059030707101415125467702142536545567837960093854732415121507575889945809449751375629824977539938567191879031870988033354085303555852960910559795433424636869029339537144981990176926179369230758725877762708566101715116058624447068956000443600045224073192890252315323026185569424098342572838704202287056518843942995606533925319854992609197707014252866760637664100917567412847734542943271747163791507456499530132556929309586615392747377508306020872432513613499616603218510083921075104898118298844731512773838488089346028568846128825063021859065931555580540189209284625091360203312067552447782259220439603179405118082883524484175086377893335549645412110449926043702231000952582098260223879929798737517550220977943168041243459783517539526493191957459817507965168963435263281290550986985935267229591277455419335290993273672535437024097428976671163055653322668583608164838189059875967751026933383525950872944225060882708790086738115945800267662038009033910580634202718305050955403403142887096648850963750208857543291003157291537208814344634493295215766406213945675178242814919473835088049747334711538294317745664858670216708863656462590959531084206014526738613343222606042790290418602589934616045091595940599769728172341156789149679010302644995591027596034469193283368723614015862362736320180018213726119603918974916964050442751554648636744343806856141159434794326394212116082411900610446984664564047540496673487632629466562723755463061307743666757393802986051044249418696989023973530011853730323853641152691216535356867601766660692532138079941134104964071905473197722544899158937080390449506874103020049195292967619863047542160004331415236658914526231229679762758230059079224280291902245574978094118059027714832312884174105934394887885328557237958051039289023559517042474414394430960061330495510281613200868797192628870482973162157398116074612122968164989120761445781814501254455404985105380662440336435248998427883959266215887279579383438375640653397398267327201808046416972551690292161402708939446369733420767621568994684594025122122684794728977562010721757250459692303556643254830275920439458922510585430872872440303892197533703367289074265239622205692090343594156252644710545663483132081283148082458509578665908352711439237631337020316045618424178369720740460698273120362771297659841184074462173913649747978744351765160992735154589986587592172121675606325214807098594907165947519074328780145724237396531665162518997700850569376744409380013059320658727139947101441518836242431714831618952971993338380963838666668093341018581610339939704535094244248159894767449394575295904231487440646221774350034197447558459807737812189786967044887555588625515960526325398903768226592178151948358034153285248953119956032514540582907522595731657258208195514966996043412947921368859363483080023084109104551997997442031353521596901565884964574450481012513352056977672023067761573742510640518470705329550672404766805469248588202531979056895729056589220423894171402632534927135147391531574658394831731940873707714352189423113873134707612300408481879881404394549442592522959959458859623064865304927893467540208399250207134732384003915888699320895787859492275488713724570889824848758117986853985033121048506682115746789682835202409679268187279787142213762108618161116248853745624385108305893144818535189338875887099300405563301644657587645247430246495540061247317620201375297393766059570482683627940382515440211275104366123338259047632547818738630836129369627755384847628186995203538425234751764757066477182157590886903237371463849301796622348042420510241317627551700919187857906975867784759960998671980345900438557648463511342326329224881269034509469892371893473402142022559472925023713710360719672803048027801093270959409823529224118940449494564506394694144635878895809679495494662328419053289727811261812113509143385544766454719480680993222180480783982351448760915555972767964525321975485578621602970134076687530742358250270744559942383963874398123482572214076562208501212914764453275186308904576734031833542230637858258529348754689223492443120983774505296572896943019703372113175375277582557303656910120868695232665626332498351740178084163471636633821617826935037562950042713340818265742403086695955763238870557778399498374551054344530660882331989627779783860060061968314913270816897565016015842786262157662995437971284921718579704450288769124506550938986739412846809649626223887575630580448249290168885237067907868332036639276299154658061858681876242453185279491387230332533377528043017968162907315733506928689637858490965780391853153156235564056539506189023339221373030992470461797667523486483744000612416539571675132168575981915289907255335400211711859994657598804889355720898495026456886157665444486135898074866386304920122994900914751883302449102945445097989881890734771917395014228647068170810305991181286611397315488158296927177419505979035200741201506305214334322258207589951015350134268824267031453914544479081448133725373689723711744627906256756416009031849374340553613089600751812347434097557931415126135381622482465328693561757673824542591797698134694218935684291164703939782472125015667413825339073385736511820730629378632718226301498256144068058286580184015097075726178210743649518666009030923925554201156992005038837222879009728690347614108123585084709802955607835361949917386529709992600904856229156270590701949427043017976480792531678109024728973945853540197475592102142437821488113562857895620075128348518490492938914682401901525243624505631890061749900393175417590449467147442766240745844705925325960011875865953984293544851950516744037145812529544169616158225134202194376676351102520847104165196989800437248175561568526217110876999625739304787421529588206413940696991574463401710315924359135001349269116840068782055153609411147772547690978427363810055469982898166616519949193242471779683421506701622000492844164199142628357706746648384486718420308083515238960891045858770812169919518288986245369729563041199780305595504532373735925657303906344854119195038502024154681087176218440804344849544547674878644970820677342800392059769265524175744568552285273000029030283646535446729234915466792756527716036961701085357516327758738539903421564066206523414678186199935003826725105942245930681814560957023516177399098648398202823476889516501788099038254419116766364475016040867092079251034000503958348000350580564083884851991157700762952299406657695593614632072807670981852836310661955397466143021031539930565578319402049679695477839531092288769906723174678207319793161374639174409015389429423818805579393954573027167015050743914734832976158682322761378731432703390671730661917422801410721376583483704409742821076034576299872945213125500879143027612771965511939770000092223703652392225259256015901826354556450366235036496765464792497146628268358501453940387810835688201732724872561135213801886438168574734706230851606127288284127412984387354231302079303314678218292098646618186848543958094682869673238607634842216064203074888218061331455084330226010880013764746675719319808719867833865547259996897142197451375197805143816063631821271547285335212739418086562225551392161466678158983564118244549988000756173850840128417005432788357624656501909184228292314217236015446333163480366738978859046102022330084294769423113388914064434157699160707377857375867192898747726976543743342279998349212509836575150932176257928538849726536405583094121111230518385934131401342843985458230445465217419033022534048892979926648558032052742926355597270594648946991991313487006581918586496745497160369415759687056646156272913021553221101368669150749423219199385975972208878347241261627209902678460184997037363692433882313888109880861336011206897054222398300641748598500674586148076959519094109477945870653486135254354843097794212727971660024230217155766709720091955221251511392838488711494465178625728492867046640171832361231233432097481714895651586248522661022268347815154069546370979792694909835594387083683057099796453596431670870830949487872812092762460946871297183846817362144250649954310117872184477534093314018849679766106594624694686319000244701825154126421844045708118206248462142090204368592503684516778627748854925777622663989282218835601101570496498306917836124426316800477867641083588553978984311541592915051997060231324478306924794182346952177923128749053039510737051951329068536374986492647088445002437919925581828564195864995706798980817254244110956173040345186541365885116080121515219526552219681661458056991895810372224431239489953619668486266866422164554385518265286968982285779649877355294911495640162013867725876670055258692582784300007664818404877322918677360941231240930884395081037298904137605202871126440874361826329441491944354259434457458034534992289650007026718710597430286870178774665265103416365558755188534416268098659945292305891599183999122475488833304113917068177833307581040675322772190772397405954531030420917702307878326575966309335553688712827392850091037002539450602686807370750449377258236853389365745385902165647381000336491305349602288113666863867164202406279424301706779086498146661417553817658866195699545438878750712459079850557553320103592148734856072736973921972954413563871209962192823911516191630955682437808922691186680452860074236754420091569376835331753913443541849028711181872361082214465411680488497566307578145086870880332055402327231221371317515371855378353304161644398981567708463678236320819975077363231844483122719380503189659692700022625452379757194267486766320192031560071168687644146307668128792009575559463449018644102687960290958092070795260073657945091889670928237697110041923983481985075517129109942184065976028546831916688360006107715936747821971495910776657800605600208943979997467527834013621945923608791167974043011757498355420627861124261120274733700517102058681019748932952468212642316266499446268429611507930004086571235069479644919138279350778036674329775562635178185283912837816237188001165756077148636733078951354401847359871050331139366576980327344639841550220986496023191467798735135061457220035174102667676868390957532369853331772668468673322481726411702826911797939879816587126113061526044617580782007715639490966325009734068797505809512575268259887979939325817111275762246235130150215210674224021612426165990295791295083683067265688490687376866628297016374420013182406440127022891635738067748759083407465148248483238860619184239613615931191597904122906673488179531090416364118592523819863734329074393518751894491505487758430920629219300714558588106718981529970019161527261039383587233959090206468300582626816419012057286923567257593732558159062804814992909652667011495138763417471185453325617178440357654130484432959423773953816383858119447861190183080927684459837876776626675326155046439592639428950076532409905346641542585462673004807809366989192148153707480475188560205983339039955627193153983310693227637287690855422818951020380275245044822029797874446289058222585332507753227927721010685198816359942867145971721659372944783257276970488993265473795387376425600772869004113096677794030494378349431068455124088566240934714370145794366128091097790497464329266840348003742235483579893674526546120470168236070891352298001092279389710592906816520044831136610326283141530462773794304280238948500146537583560598202738555788270452527377469711940049461328777090411271862503892396308001129102787628683374947728360651117632897124542866262489592900719532198287606317023400389461752865254943449719166446800792424731908975857984931285815672510688320004160529934248086460897075552203262698640143910217138523105701081291547106312887860296590167389121936527246109562829246688392631281600497518172003051669005808760552129871694779501757443633932552318230934930497401177627694974511091167716833128916746114289716884483586226949677573712218069126700270010539659705739860452410598201281428227489580914846842254261355869285751093441273755060805127461024376102062479120616991871007949617097913381069829667518511196341927225470991346000740794413249306312674493659612256486641173589672427736765604001562269271940136308220867505738494139626760823514057593182719581424172302853907085244466784963184200616223380452825545612662890329168403850811049017292629049341849214706470437457798345140766558100525209531293376578730392444399034244999480868366160075944762974304133211043778123273498822568293312246674760753952355411970078973264330455935123499424187874333665423360224338341002108508799201807304913475424689816738207429638980435997493480033156378787917099435916148705229139724393731813576274413028722537345515892039889640742983517602833929294081398765407392364396592898961718944320519013169087586525391949973583973442509888338543435379472426104100237993673290500028109735026759002050163870696857117525159099754447905668364205538367602583696028505677609110290788385731849631852125622613040644938431371770634058724789863255036572944721096710607559030716067869973725156994233224248805927070224845142864095957890254933204047255629611308646407657998125750073072021600491208715199219959978760886386236216847980878845255285713769114702850608065225301592072279177775909550867518964306791139079409948432016601507096782329332368673878707391503432750181926467013084844772906297372399093985938898178462029814279964313639481564948354803831752219257158013456329706410856521584633734726927927857097576249972964978810842844264360551290086341285124971915935227668972807985997492450009406775445432443949245463933835074166625566362643140937040397748806112151972737618534373324415861022172237964314151934592338472672036155416896056155255576114311505107338613429705659764698027559943668254449755970098565822685941539137528441882231859868330818043745769173317501538748213710156339358314031079827439262031648845944253342389010138536241064217799821718824976577469194350381639854317342374384005761838571314227518024444834961361834481266759333210462346096642353357123869861826271189792287522107842299945326586535638548757172039485775312815242293621925780516686163438362673968583103579003184519709486583710127376724798614323942799033158910563641564211038504841384951730442768942941938897126284257526471560745442789486875746105298010136920879780122926172753980483581992591446138660828396175947374183383809221743206699576080932173104443494660975589090535090150952162023805984450120856958187903170053953881578533351430809186957453406789871866182198384419441306428378737296832015855022018765378348264991249404428301707762698427482403446903700162254017061628885531281183866497782214866393165479535385353896853672771856136089684915276729720352159076907050089119118279214035160284060899574534285222811794227980045595332242268547115485102266233261557698782886015038603289234819057386885768503045562751209368519120752283376447322957074756673890864561678016607726499294368853178274939264884494944746238970797421598946436164097595333044548926545176644708795765672454265003917488862800365177883985934633313771019911249311514630238369432236101396565612396606815268188235911181660983396548602250112217840054487242018973277963860061887289597527418234693604363944492502439548533170038147780157685326414320697893907413146515455721865208196173445498125273991214986790173860920069237906341495333503597001421938076580452177773962337032668721913145561237261963161390632905130644827220853953293803597181975600877030048580790967288936294723295814596400833729998200919621788128032671651491446565785751266226288702463569065311497614920720584980039690863872310867914256842025193952702699351419011923831117612369691311932044328122497419060623246597265533980214383726837254867459710562114299742462231372500865467945327865013514021323576600550957524346639359574918118355693208089747950422453754334980953034378110006151871881251216003291930011254469205227154119833413714524452286235020783760602277071914045508165256795682251839918496772258185900138777589546786557820907495554409549380975329055952823019378720721265750169158807583038337134316062593203820962474971520767667842941066502546717450891163730732919343834598459686102048485813635464120387584418231616314322041365584724465858102754086582264847412400229454112183521130537249256508105057823539785861601381698279847678342365360502439116361620543245678803579441978515572926942641357748954257344282642316072405897570655382880397248723133872602630048289502859611608008813283772592691557015935965412467841738292566212818378126097891475016006216705028387171253337704559751113254259346891288052198444303097617333112581187923071873710834107897596956366072834530368151025087123492822593277803137876529156864819848298135417613400441169954348240279132592381687966666339260480382738542641860786348378204158285270451144491809585244285464004809567603271265121085947227182398795185533399609179930461901428822194624217062044164325063408791873344452721079026309848031931947739444536273343125810068285442233201620274669109304960137768747264486820897470846092548282059734346340020282685059654158004097644349514542174491395972185206857096296124090572610041856637731092579204336171955559845833958992155568752638395049964683056644056270096505183552038827213702272023607249921887690899111525703899759392367577368344551623968530102939465042349702378553223636961586591189650418669873181932018822279394072787496541932695926015508151509744216476515022855169255978585138011163603318217050602195838110176047280181685668903396004977793267519139970942569305852886973824777507519800821272286026386359587271200915705467148524056937265063388383649531579971766720762797802863315917065502990167063396970077052387754181090074338438466596387692081171526107550767453977607417542441111772508036443490885999079046619104233511748966946622607353380697442449759488885317010166198164610279778005606864210595694352048616594882675409410760458083841334698444474127981630663301510429193150100948158714676874665540213643145645160750561541852177977882987541243921559809953264519049920457047007239572425732626766798532418854518450674138594077938328798733621404777768378342763973473724134562647992752196859626079206776622991593912876906920507669665226511952004791709564165685994079052519312111435681981899132739138595057919352324080137062140587114293043992063344514592924108104698286904597722449794880856410478335206488601333722550597276865789933192877063201828104876606198597906502613143280120903420152069138151439493848582176469171445241498117685824857872441045842168056162415734504280963916245065945272619351837235499544810167159946187590367688977658567451787002028162053965387323718493276751127448135320824795035185170875657524115331001122662131987094926358995207473266014528732223328501736052704463081201879563446331092724204229063878810444629960005512248182729915403367116583262082581025207636411725388145184621557725850531478735951492708517981958407105646392443514856033365739529025138310831000181382345212176921606244709412687858855536533473868361868907127662139070250308203654722178615159393391139973896866580508397145390483917084105772057317515549231799004184404602098063791654903349273120546100539845356148286213483106200596641560964202025407008655131078248452034683816381756650437643087300704317524191100059546923503121794123301139312190111190679039968773897297523209615243747565493682110212504291102457530021982697065382442458893051763994043202049141797885094423202706692023035691044172509714234396448596301123578432083215215196383613638890502588849081137967338189511484579640720562414922328315064981233363261436203213777722564013517288780338848969707837876686929252524439171380522584201337431387869734185626935561491154759484967141268223652443918167648661740668081295283917236821124181057618518976033311454713558911462116448108170380745256464666719845586793391036853531498176764846568630664996915625213849710121257848790843126610596607119526138469530660346055509562182052680881118680549257214134924492303776677158261035048226823296377087343584436134135827088437655262942456553839640697428724611008851595772526361849798641261519244334418323968825077654429728837241713847472681054530844481572074853875661849424846825386398959083286900988293336551037274842349873508457211727887940821274591476006531700614732956812015858102220357210463553891482207295983613118020296780445651449287806830946939948503586629575865117058338132218443749106512457594148919322420648481126660527384961084095164546866683435215003540019553131162434489373579421539758093071690514522290935114688180904785350886602724508248173950981639820957907959466376897772185343184968709624871013525946323390299676963051918637547101304627778440234168079165221409447188942270476139139872115019375959105622681841092112929458056797431883387508211501498627322669706939328964607717523917999334456973998778164979500030225304929088555974013738358814474333769036249345209994473529168425144777759748578513187989039099793278067267633697657892110090747110999729126517232323880128457854155702648298448095151715987178912116642050017414052096062314921076163702225848408654012596865853938917961056292254592280565147269038109102210031755962431206423363079366129900383627697141581936108807158612449143564679704217579967495270655320898454323603868677158966642245826587042636637938632574254500976400558636927698482680493640982474364871280094009134131385431931553518481757669255557358650734850194752500004906301650083894605968836847227792545929452305026043246569110798094226456261137420562406153104664800237990093033928742344257270270380168566298895053905232674297712988759738744398449075690164876367068977371647175701866828341279261473211992069868339209984686675730440003881001353899495790449123935831116172225248046166148001188213578879908465491649168491067856850308290516067015513054347612238986036241961539709131393110356621638386846739276851970679419428490152467434737439843388392895679535489830531851185275096680448812542661059000958031646472298565002856604948425702414263254112179215136912696253135344598212933050075003006604690355656435618193235637379499884922957880411098341898046151548703427313824978076718628207754436292867794957709824961909955505886661587486286845510171226111592531830558597037595752468666008169058257791485469371129125350645621796490558181136471487157283992398810443026520384778601084246343217740395973041661112780110516174139077342393955736305141574222981041050095574614920855520885382464131057095722413912918850931884392493012205091774934176519348546606554604170599532938640466543373614345261337746163943222109316253360938450889767757497585790699486350360978153063291159264686812828687996375618320693494453874691386996037665956372106731342096582896685118564783080761458843555567827135670974016690022460952804071888630916532535227039348170555296643997354840269490042161786828436731323634341198135416296713291056197486379815407388513762013329244343133687877202191554952398937692312261975448107110971298467281859454634465859588116113642117814152609772388171206656721964158732611878972774553409676720692500506076066867497226702971134513279093609665546857903680639876754313179872317669008956948632225121327232217332845264772609210408528899422085110186635372898094926813309747516480561183616854752414557412654383815492214379973268280098201307842623262287188989348708763965761752397596363812859081889356680509348158634144068865829805826589068811485484696700791117215188525177522799402826726722479860757283277648342426859026859206554914298223536258402476446306177622969419914495975655651749816081444214994007225424121488583613580053133008975228310431186930826047258400528338776441158931568534104479612657460137627651734241091375273950534489000821794884283868263622640579365137675537302464633008014373840342619945255061827488788165805257766735237382337720764673369202547122583969396340189000194776762629176819784535391310112690554018927609395048946131197268438334071770015710721390164919728186403582415084668569381774533684052610260638539837771885042933812024336919743565842314371217742594382491116158548386035603957064457255844665335800146254898604722380447062340981848129488711486036657478075901461824554860428569720741691176625268830752290878182627782559680328336754657709140540222771130756868145213438905265343322524793347846114051292215819138250932165618666111866146912067142012520745870430775048423712439962779459392691118644638138908955174709764921223399197267000820373693402202310352916036818709011361780231124885185541940906228477633536355893190834194280488391314628164925235061661893407658474511083993113032242640724274972215084601637543897306416357194894719668102551377613998798508785186413067228722574813280588042177806933141610723869279746122517437607431863878224209350469220839365766552403474006916653731552727598471684279097022170109900355367771589945609030869119349342534116992009490948379246043674240254293437681579302170579206100013901467450036544129444937223265580819640407044873936354233598869010648049307861271061069321915752374048577675271795736687091006856847153083409214975418201101637655203461827588924908120047766644798803681474489447623771188829236628474883447522024775523850202054559028622953540265323082787985643875949230813574628795497583273022930133556100732892429000398692250012654521100570413431581445242918035668339982651946709324273517450548808161594585240182069392653101522181828128503276088532456826227530159220385809649727566276262758991621568847716868412298537588722357199344283664094961153616646316844946513402290096288179609564864348693363155182193446525371994418299208612739278365042917430690547413547924580889759257588683083383606630163719658660994526434094335232228834310349036394045625519793577656225875399551987227066002324541165179309820166162453407597365530930381822510686041877561851149374020759760521864410554128146854492242108185236690621957887253387333346885998408429824916363894990291148792409829333485784761369625411483681206466928534584716112181349139115457967402154684116802922343634044070733745071707884678474027765475940329902634763032217365082449742220847127092901273445797280386815152360948784761137350796300688598531303982833059017838962407853797467668461764629927843535452352423180759803415329557846738055620718893716179438367357183042648803989037243519802159678057146436860380564645561372231514991573860075127090033806923549529086975613322010621679115341959396772482234839026449077170589535315696832968264387087280504888185013524652743094631728455966895278097980329210560234091949567718486892147161399429418101802803366244211187793189043567511241264651393435448433422407991907681187307182538842780840301030524457862848807110428024963983304000896533616444458518407219029540178506956516041552922200122606518943464972426750769469471783083352438102892474343683212376240598210596388402651411046905307638930202078909179252763710981880079675984043581266568358995648912339969865070849645039832995469206892719714238624410658261648275250090222775958728626665167264179758425394858732830268117081319309290425858868462615983302045764250207081291053948633987622188248182530539848375550030099174849761248399056957729066447796203536086770365088113069302291143318543141447113030293842372499839033456869652702927422835659853235629922920763376932995117428228914347826596221292397119208807377360245325961896222072275546628040402093276128157685155539519144269321010360795279208661550133409915753678034495648550734982366658892023429449720734175001017462461577096063163650082116742506453610445932453533414881043123154983291305532612303771320844285221479006145066562707712743070286707038506321969731001663955483372198404720428180695211613584803788132907434952281891222187230052281604293599679354198866167173544079417883964643547026020104141488515269166768555626623072823620625795506354899659962126056120168232907806708843321474532540371034006113133615755000606560671129784368709844153324332087544969619393541218908369016033232440725027801657742806119980620526165271259326353531536538183691239371704079576363287696896167794942776839024057301397804299151986149689285458183059448857924059681673341745170231507743560796622923935164276969337049806073840431893431855460435407964990384705742711115100731855940530416086449927797394194293316875119928776881850220408170959449541948474790390503635083066911641890702849092751896796361280234581907089806341440243142302391447269120947680075046239937391071131314392443028343484006509151021629220520136601058860940214386642202917240189355221769105493520285233398122819970384652158981482635930625711341120366267221618085203081623168016424214783658402198401717453616884153097230255914820187182183581047474105236501750776946394146929129596423778582255079171601779960711773478051587978732569693426991986274470642395069704295928441090341476486421540039460143271954132611343265710175253889634798381604369775087119242899498513602945182721595325038348600941165391373261614597902917109143636458408039755219747604591542091400782053797283328341212082191552111186498614217944887390601120960155257104024514754348823439800263293563520997914038819129328096278916647151008988288657049747929005151416844721466773439841020083915514678462108765213474747991507139656538069299597825025500432899502177006427820568067295002424817095183407432884727200796714207132056939095440168059479029774272772492034843999402384351641042934737462220051317284254201380434222917376048635283071486924984596237501896437023876871228384304293261544712000437430314900649848827159868810956701871762839193466023099108416204235918333120684170875187190878877303837414868134362648732547518025048312996470677092510511582518948720554001176929526078730855053639159815443447980546336917430590839664108874460818637939680451440469123044227394771864093108832927658560751194828597525092734478041810437580627962028038795953926678432987373141126758300256841907632947675257099122013276131022195995025120406124193352484629403689761666557432382450435294418776578350616782314849317168153748399982809076134669301798401018229802846438806918808085626624377060280947220297383011634032994925941485421679047430704326812219819748263881769356584088349169828636326181901271667357805972261921578269277224460804671472007429818795441355525935079343851543231857301194115624314032418456167214678959113352825380578934106572337339640872084829426207820260027250547816140071432970004977681645317677391274776332360094679885217731624059833554153611223388951175497229206356618837899644273919397683106022026751579042176874939447379468558455747223551908145130296184421537416697586453293291879754048012397194493571773901323307402757393369774324282749594172014856038238857445572513669842315856256357010037057606630942820465069786744074214053583617965953669600513545525972427194399475717236869843120048817321018524677092253359364883946799279768099547233442999209990535536846470999205517405031581574241338834073436118535052746659344289490237751471536641830671444329254680505655765082394933465072186841385172591667636667827907571731142917020417403167283078090015875691481355550557372520856472862486774486967634893980766674971174800533103475371858138294548476900576544431029827014984303540570652460342555740116313473273022970787908315035725443860861111909705441855787825074612250242694276683822144340438972095262934846932662940816766545661475161223858268212772700086615179208377988639040180079496344334633472030106896182882287442167644344607199745171765174689880714145833732941332476744803586862720251706323973757659683128321289474234122777501271016694888066159224015232915405990382825132802965174923534679071398464153161359819379721400524088613407710937507854322271269037675794052817529816005274032916675795606690272763551990864596714734314658409737735100614657700234498970391985862934976703402783352146512381082938156812164676070791156658003799610256459153170295999113404069272492844584722390531764165531258741550774454852214206547268582208317939656755297835236924586811155470917563256472273509353310064934632902928140682499661626009809966966119066100448164916375088590368353823746965572330379990708532593418488551913127132809022945530266905715000416253800054891117404232908894105361119739699996927688836701660973297404831073405981679003548248841786159310336448302776325859833224735613313293426870417868659352826059509007995207815068910448177114278793476384409046769393855634765355726643620081900887430361249929862494822799462716654923505450863750857507541748667972966271303533278278170327302679306793088086948884728981074092577662836246360194241665408148220854856208210982255300703079508968169568114303289170059844638506512873987594120193525770887233841544162575298796656069172659164869664822284573676711162648459215584238091683670819413476055569147110839161740835956976814829468923768283371975176561770971676722712416415020957427515384112588901169172953341097089438134621017012188640993339764550840662915399846088607161216839527575235578258203878283409203756953402565993199299583731717920408288026206374586635090943344738725785659724956800790146475053940636576337694592614054338593287426997114998739857700103202029607755832364736039727119417580353851198795028079175480008034220126152175878355039876208326697478287006962980128609535966801203071100634447346145892491298047006228509897395561924959837331162381826090725880161140311579577095240006735356133739637867906648093060449709850984559811193210614586547489682558670295109750326066656007916885349611415752089765720047292162238282578644554660197107090485424509889990266331843223754125707126838614456228171017220414644583837658708909067699322296335609739971799002180769337467963148980334740351217143752679008443288029102649675660841416617342524915595787693242724564881740245897700165030663716018761757905255923598968009272820003243947611040782192279120465034853425382289215968708882487524570248114127630890455000005187487085250619408334180681427968406943869948512443105941055302933648316786863928804247650590336129969485189657028614521147982353883216205966269551625151310358193686625285148171631600863285632517307012253822081687538852717153749475032163774639773055700038416704465604881481961829910090451740777498413077158827261809581527156320985577157916960964335845044811217792598220693559796042257722236624848657231170533994656006155541762812948106736379029045419366792887598786539312212589194006054020180562391964009444942693763362432168360090066896066300673159662881456275052223895399909425508680644684435607346762756586471565652148560289774485242584039896492186602693841994361200823885859568497171652039961140965608689333238591245458334309696778367638696223330652312571183755269994989300167398368169860706671082653321337750661077661935378316567790768202189132254958304884903127902776038600228297550019948591588433654219624757403507871026880653075759068700005463484896170616973151492356575964401005791592283313095365720776686132481999914813904959675729078775304417045841258817490206605136124072564387704138585158323911744897944569856194925641725052611482950441642422669580063500282073428492926539705355490801268102419692002615739328772399252978938501958413790471168769135714620435390775805096747244862996738513301589696923236941962850245762952207823971623698183552865382249790145388257505431186459082785323440288047877493686247933363364388815655749146119573060767747100498156917147881312652969056558665574235658796927755570963579944544965261514398841662467475844898428457318900191691047053376974396378099549461836510904866381861761339335076434736715817889026755045498183755179593292448118384934761509955344691135407384934577529190401561849727797835337376946785243942472928320328783571815265878820554435794481022641092048773271165467461033205529337693375010070462484757173981538250686194903247058333924544704502968853704374077052009623009631733228550094797990934787417987505086680812961917994873357516417246640117581633515876159224523174135264765006086843651088352194378092072292684389216874955178478500359101436137563789140694828496047783165141025668244560140128790537154226404293495471980927761130595917637389524218574535909077456032512660462028775666877958684081094093652114590815553052369400595098843068615032185588466442164625090864623248166603931282968407290154768128682021076417534132793833979280612797519636611061453478064003462201868962000626224829544888931492319957251809483441793895449743512126484664955218270311773742683287994414925824420297994847031926076565094121230163015351971714883432531697943769058401827086661286708047906409937958410558031917357881863418582969742583758392396592562373692663134615821230976292871950576236074929521133410017370652762358234395001084994815762819238309790172751498408653921638150568969727874659514115810037734703913294879005232455298539822903995917828346808659708322254866502084183574639768240228759893072938854333362885840750378588421220020262428427449045559854566812183401772462282510319836546110095907874395685077265114602265671711826433967423202131982012679832834346690312869501556778786341637638433250937591254315797526720303484233128905294980853058030517663861410437604673202349265002774948490571832693148520809654630906197746900889882233838694647538512896770329013522756571188284426694050659110362634378079732449270314293950120932988562211367927878927857663291950859372273043500943124964046071410179854098081452396601253199972140446895191463522739923560567802371807132709823324335019161524111648966938163182147131751692748486651213022929619344023946296588298800896107200602449535944771190705417603722100161920460524822483043794790613800141632872632460738546798712394042419845123714298652534945196433309344635759413861492519480036265631413778224657363706284992038227923895500819701204919376430279246996676731916749447796822361065163818945379126377446679478514437592783421023430712583770221751134797326961279174374440909349278026925617272645901214603306449765203094141087354098699976029441449490642349083464911856338569606289144365690177157512180757344407000689955596093081421413238229630110975155540207875125092233076840502695688824206298371707404701621531544103334360766271336231893785450557489940043105105279594516603082929152070182026427799772616460486422792785817484618318036620192610133261672921105944144563802732668190173052740640932536954762318564595138168305062408978991557204584376695027308482150371393821686096195203850698939134933868724269759684147136183596479189974838076714261522495765732946455331136261889385788105779681076881492663988812205243644904414777851469216504145930214825819825148404762960670934594064655951501582091209095383756152614081917251102167760636505829473969540744696074341188180217083677116462190278814453980554599683444084716801131720683160176132302928071689613531362485589784084126444700696827719125957699246583177484435834612994593120687061800946817944109351997482433188525051366117148420533479662544290650847562272207697826864007021817900951840938617263686195190246191242234569631692334962506602072482291946739895039487507254702313811663918058558212427599665727602566749357174243501384524599815312759613490649918830571984531752733864483268032636527807806446098820946917018761506293724088086965262795637099684701668595667875230423107396679471977874074038188342933251558956506304750893511856011117332607068970742625177595980579806891559426053699056449428682032753475993494145483321489896289023075365591638895952076489744333208392572546356186845615110174755165873532758835389400488191753136626056866158856471522150142166360073571947067760090388220414174514077641704312961272056304832274303753315314460174931749274828500640459259675333355311695662903822412580191849769018665945464936016151889946713066885774716410987556875752029792214357561833479753527491872781658193217360638847388378538351881897506452654878708220578590583026226894635836217235376371541870206585369208008529568036426424932835584288447774561025688438698005708407598294356043992287952176856547483499126807704319292328460407959785840950475654591066015402760923108096746592572576817763515586624356807321266613591508266897269700194788815179884885407254093835276178675087220391880371024721010191859349431029094339910628982142437362301830374534025341770831349679027262397937645488500814533089002194690429420852702127149541661450102322994211733988062784273703616377910901252354649312719630020231706811868809726271321724147350288978074679002455032141519060915687145713569548260206205180300795033782534546693362528047211891945601817364433083827870822360961637943007782590446473676260887157730595989739361431777902262003916149386729751704198638357283191041380729248014914690761421424283501249988931346221097033811650951564779230312744443620263366819586075600145711864865024923136538337770433590407796244634340626578241471682173158184933022380745405129752958077144576904802000530403294574823121893258404847232621090390082562945466804122050017779949046230764976825485409177649581310504068958822223662267951028874551648582236680654714290958633837834710021035703764267320097990976272720000209889344642709655564411219775876603979435234479274576742576250334908990450167542052795491301866433576742108962883785199444853657006324212532124017046470620289270395529609472867949736979536178137661544904949042481360845445029567268834951487703714976315255900481583511906211675673693799258115303989253570131076800517050514596590272042266109898881156779151196777070102535523582146200733960870989628730493381325721091288425416580501901194763331979203689693708217775651708578945270563950787588485237431107294677855847244312226052206620357622490292643874854522009314735712587129742376470296855357225396580726873106854214244774460942431202485077765310428100753001708727951839471175449063828151510818276498096978817758310240997196072838677633452337879904269916342069436388462639174868425331613255229714436453241538555223435301583133070844243357818178836316897503639373021375551637300308528059944804019202773445746679824084817916486424122246142091622550195833424823416850559854768222029106772580898093123987364802574060156526453786346435931355862327278601802501668330981479474550142584933785029932285216129815225010026290277741213846726655228508547989809920548188451559137699786270379893297476357691917332974383586597908963204833946959963572522259773234042638755419186494195805992293894578478846316692017444672277458735099683077113896057531651177590578745684309367012118136639673085217191016002659155885899020314248419857025710250430849664144491903571022888987124874779217166290453112724432711003980558683551532078067835085708719154482374438088647139769012402705923093121712824432261473216976733300885729393323812661935858175707257471033618713054428070531936354618230618350269896274799499537777190432233506982019072790816100843146949491871407962762208511220844025251082298124897824437762562420392191482941395249621934231003269749375047654353403651787153174900274019886376811702057698176164445677621616416738120610965626313540255140837769966739952556446795080996681229219539001922324677403410448169279055268576977239902402103670699623134567766594114550374111260420574337300227170128634536758115327679998126829283808489335798987515433220300390340236476051647763444087990577508495899499671816537360464304963093170865135285426045561079782668042607303003388121819035231129287096918875912155971811304530201124279710451038132802799250954240676754942476360995070429080683070637796872173869390528662414383483932105028849654625002155825944113169377306587837868812526037993811139153858923758244972434906673363109177342772956587881258163917307926650850834325571632464062161617433710928435054956596151787879829124774149448450914695262175120064415080568544232145804595761697772732108193912936734613227183293724855918409488240064611257576197408403507737286514044434896054475717848532599672704712409019678431636546551006847051089294001647604832385037365868416406053615002660106098903345634815517155010280909610322841222447071118632819239449716651651639494770768137975891617120948530872901716669087715734667246263004767231253409486174259660396428377803889838714117876894314690392258542906803875381947782028591914048061433724916139423680652340636562019755128974019988122729495810317516439224365352229635322456387109070859381821462514174688926901608469102217657495724128410328804531325696707759385045898843258497312787587292814839044709482790003838361091680218835816206223320356490375566193037846531337665973847750830178442159739319959530880899825961986061073066537323747776836970366995979602315981220461342204371557184193488778577563145956594137605979389750708635604143711251851429597514346548363922208770709377791766426115782608273356993778907399147756095798674495089510707542493528781993247721183176382549839447398406079850512490568912754709335385736906336923493407496222860001084241018813414738010171519639625245913227303112379029454403566506604830738048471215721364266118014878186131253575372850192988734244605498810749929024232899631794870358516937292657435445725469074990952838215617257944022803748259076663280096553101928907715401313573077748448524636927693407118033129996982524484601225620921527583898962105413026605503841418415520576733399966122646731405217354386015392336596644040738275944747761711711578493542059350296199135356336115563521413476533716931330569240683040570121277793263500846603393382956718846137155680504125691683057765113280166665922480903722099574739384113072328859606408839456859940911709589129966924735215101207199619721401982784826839569623337900732270319321172933138319143777928261496829915601160589691367480008652696937305446767203888587059283444233632147753676285514537887348791468716801521615117234657425702630728537636529857990152758588289484804692638477037160793042782194971289874910245291372649714729300959745109567446056917946716258322755641926174456563235882391138222815416581374168345828045124581779734608660462216263285334836443693194096956600835649540150391047436645548930294987303038461671491291671312792490626782943824760270706243320600444235012210967292836152775645245623397860222625823406622613254551403490734014665952247533161555714112361314093501257764775679414145742865853755578078275975087459048427932806461697991506976396428629932493198821044190599878910148393862872667623637819385596234479452624946598205018363227871448749251134801559044141032629807448474914791158507175231548029348649833162724406203771351764834397962415962282557369615406108603142257002699102968564616910168884358810105325497648198824516520807083595150270186858724482647209514578820254537011533512479171326174676380375590552485031887998164242673304693747653888191654372787088293001835314757182184856534154428560499049642007110521901083216129008246542231892102175007951342167322557898184986073775032341702191524589333344491098267136671338445559750900579578243120069405744770292349927778894055447067950936899850997338884574858570064269442709149799802239191530339710662387179874137574287614868283450562530878558360373729071560849206322839930412856488152174692211878101598876290173348993663653739202837548152645249350793558278040188536778586190052671703333577299191607515275414745486482231433474737965395537182086625868284281318378838087328154023535767763101961376467985552332793590253159503288092344401739631108086890107134363852117368892168882213130239639576911312670846540215999344282736860050521388788768427902519100430871389663965335835500811121949760003462473536248886344719809175420356105970578307284862828582170421577555543365412194903088645530980817502560326351521386872755248985501190420505418534653044560801662370362296589682334564675992829752418717234854209449570399676545914842217882270465884781755297234986405408693552945953697503994388964575203269389996875365105508322822122771593079415645369830507540822978438086373703542513517783176621286958536692618969871716335332845874755515535633513626139389347369703128417598648595857977245021035550090035104174731661877032372870838642979207392333806178834825078499460841929035213178045085387097534014889503346233210022239813896949154495397970059335681183459225518914268673442237719942961111976466608640490407711244166089648685413251536789755284919335083345094755738788003122342941928350587915784030839951504692822311338561574779653280238480031527853739055628857562779649170646631459423633943644283563187905328540271462006987196606495765122350321708667607715456560332880600251131605246041152640382983885999052954314517753623423362220276536524238635722991708745316322947440032973023219285144534775122937102767805743174122510945229516562678625817005748275046398111232571064220058240545256189182714299085501230261795322890373463474777675714849277995163774868817762949802196054637031116726961358055523859370214638848241353010389739055279423440142459185076912521947511339034450853636924726108237865289345870534285136890232342676383301649496909350853497937228477782757896111712162435995157003804955450497639571845895722289191739229006511861476682111302154244642593801822175977877201438919300808420158701289987899643829739323450652638114083669896167261672840742110638693749784582903320838850130196263297724245276208585646726308902353547624567665494235670394470865287002916506796485801071523951949939516607063826399126609371152406170884250081858132011249420863403557063466824338883563302099546310604480867263284964165120578197991879278005766407107160503417272705714441272841635390225688815940418500250271593878689011591517807195913575042438922125802001542535245690012358684691413071935843041495786615596501875494788600082287348032761550502732565235989985278246208886770516836784059133462459641380494349497600320986441936604622227175769633541554168856394818258992992624681995596694363824053828559239124153217781451010711229876612333167973485278256918207890277382461120300138879408296893779050843063867303112404571525976429268998467088159847635838867213781912446245115265051275557906369335259210112041515117823948466984234756092440830865532673199473197953096670299746877036046224872300302385163195824395762257556525034201656586323091700066687183414677796019770098171222064034501522762848094250629504142621583628894320323626514721185622037587982833105718046920803177948191267241026046899937816414637065386433166555312619843569426920848184609940641001575089767757228996875197342367114993190631163589143802863278947811277055460253566552863969291156878467575850555126148395452321857850471694531675075265064698547386712001560093606979219952042536595385368068743076421944860620858154357932250172569272016532632517257180712836065798962433298803467401745795967476928490140384421931470953654520117655086993996399860348929229316393447901526563506646286443297839838900039143991642296023478372683795950794107561433299834674269039687305788078606408533445587226150229125535904054675405743060125003074572122815269726031050836276907510338277994650479989853599522232219106454667292080086067441343724456381399726449531603396565316757659034540378839923339321890183336613632802034482745609763634048279719306893569583084855361346615031051215201230647909083452244902786335931893894515189441499473479491094995859634021511985423440883162135579151233169070073605397944813570146023863148732882527031708592488116390192367132208915147953089278443635463010296268561401956069215553485284219443945409322849214044801124140837416820451421408302549521031716907635631191771801762666201117212603356596140572788828426382533162339186157277866740615867282900675356728648128116326350796513835750828048233089068340041887679414023770629089134289499073753528145035872905077154548854389438504534674151866243482065245183434174593107937850490060104821585296700525043730687331670032134191710005907343020575609667513032962729180739346558342996207192886969566400963939771100035819314674661536570759766475833863178046604236308166951490615206319967779893215376145095875253707207973497969212169947775368788910469973103109214545560448898264112034660357018674293143744799908268561898872595798651066177264830107558284462790604419994193442330150203663081174791864077407743540859241519211625000110657323628821937916853337238337154111940274288980721936873859344768489224668827083780105230111829268720849207957362882357126516434736160876644879781619725929496531077739945533219705678958561518737659763755815701299608992601500594282714958606395553040237911233488416299824009471546365193072643121589853594122049175646324556828916171177475117328641060634082136585275177061216783709554032991901968663053540417485875436342112667371890935239791483162523522914924064823530599182361353338805350126460775986306971812827037443696579082764237313956525691441153732775005494815215103613356863338977799811847922668861072638168112370289814740011360806321982656851369898120462265449603722028581263816561772818211176147430776081183710105258028256247837760669034821608229440387858879763906827111196803600077016999242717939376987612294370622837648500285066282956850315050394569116062615063984560908300920923375628441610712201765814694041965369735186209544473978276626955504780798779247424081026514493765322579743578946534731902440247538544512067688175568894377271415074673910685316079867549017741957803096209455625606871413770133234939073385532174890831989700341477146789480110715452453082013423314996222078620471606367307509952699965746773774463352118083892904560291645356388036272274636349079944151316446176007422968353137298714518595965699656057898113356565189431328110303984356103986310540943452135914108844247098569537374107162853862658100961133567521028073750101705417199730484511118940573356719077002649396185643315769190741683262356614634695323652977687457157075123801557801327468513819264062703989868902044644333792032459290296605572872281512581730311175758440401362525575341405524358839546050638464665929329605474435735604876992285128869415836206850580224243774302780210563786478619849839537248402405747221530646587234325245828981698704286805610136822513706146216379492046793124567438197393387678160075687265414428188768286320552513475762386150109631970003955273288326777087207229854688192524501373034519904654871909619172886168625763488110331844374234273812834784343229061869039797666962414876014620356035875331679959133947827106839778274743951104607400852321298667689538670115230254303729310858356441582392301080707937941513777557250243013903356562572129769054761667763419516076312360263714873761081167654371885328489803474539060501827957985365630512066800601408611121452699935041423572553458094353042767355581078243074370306947516941444671506942052163176458241203285313981276936792207250456650813256536837259779090021309284330932077887493919781300991188254120610251096091799150580647977537531702258018048459407800539221338896628323713018574196184048959544253121176542460533811783204546949663749957491774219134268943948794086810818077811029312186732834558648064852493754867434762662216999726170915526057586898852986458739310836920608880473004232481921013047745943474991098644926110088521071014831231043814672332058690952357153665502343638369347887423016274660340740877175812310737469165441016381594025229143309115114586476551987126400000434751523264662165588370398868554475449299133028810975308300373975261294146036372987554370170722676854805378023753463312366223597353586990815891486307867760288792404383764950396052983867620623719980997057348950335758136410670308984782651028757160707668266437624456826724989291148624598993421529164323553895288696898421112527251920466013771637917874710932890895166959215778693401650254442628749643461994416232445662708346510682959306467959648398230297607357288840448454975404212993087122265578797464282375073670176220040902659873062811626281039193180084241331445693857249995154320452812585598911353267495785208049960026968840176201557258405776040167961430854838666430529779511889313174796134475687869771985659345189865530072522699115332131467817537845267435811030012054590747095472092905453642867639579682601298781866972493289038750430631636672065703686562179697845291636031691107656886547748351668222607616435924179234478719812431840782659375627808507253220300138370399335224629530006177750155799075634484335547216363663855067493564489947318404266918351331303194232366868131040514658909815158973528475661857203614329714046781999574508008911551738477810529942729518578411363961578876674171302036267897816742960103885563554845879221597250041969390765862617823335414067776933564822363523638153622750336008960416854307668248597552478934774181872803492074471392469419790192064244020581505526658837384028465729826450421478920120196362333333097847938881448903838343625055704375829534704842903895668958519342283627792180010980244316552433923347543965901000312868188558957655339096781528639519083592598209324525486443879234611829536812392810863350414160173154529917830548786699773891117849342607263950883053987313222463261858617025131948975142133667825019215512551840230240802243791633695658476589555753113681784596260032104778740363019457358600821369780752047323440794281039133190536538490561244808473953422532260225966888865928727769548053664783849823267776388261476596270101125739143206533039045832126978140763225280050405530861560987408368597014139203100357970745255976619118999662244065124248978810233162044602498877299122937864621524629940961015440065873590956272317580074261207647608926460536951173083345751244223344929491453450190673819948166487700904751491866853870712096595427233911690919304670410052855182615070560491925806661853973943847278054668806549508523943867409441756109223135578980135474105590850740946251957887166186904169835674542137000181059504231108787241055625541203960610471778408982965518746057907011375973252771612551598909530291262509703654136844438204088527835917062219164681820897726957099489456168104995330481687306550396661897065758813133191623984041805143019162220458423877629488702514866749870066631404906953400341777257235416675228933323844008092464861304265548810348324336712986450473817368910903305398601340885008155243694958639085876602919133032340182455049365105777843425104997276065439505005064715757859248654812831505235073776944830561017451149738807413787515233693122074607493148762008179142912631222618631744676852797115546403973018512299954363754793407483740465342049105796905961368940122054887494959123714083992125851998681458433769008059351417997422014353020967623881864347250715653858023662493520646527115527392647123238680067627694886485445824808222827525913320830978781313205728996616816971226372050242219356597294307489236387305607803018272956988057960797305831355850703958009184840039844572322944351948896383189076181400202513104020086705314985567805037551422851858337013326347145621925102858765023505044454235235242265195121167486237493053854326073542331996699098397836445032249945914988981604280032254322745817720298572596221288761548049130266246413149531778517307444558012645566960369953924921013494797255346752684881372598275131755223336303789333967735206451407508346891544198861764766875294581005054904642740810852604172938249404634240099810084487724241600111284458403381131370752585833904279683451031267268231638294773138287945753660245194394827753146409402987147654472068973090897575490336640666737922973327558845430073938256615112388949905618387654501084193528483632580742528407377965940060555717491640550772866005309263859258813017047454000575692381146363001166228529310333946405603898590818194965959140674535018386841725370353797846727372631215166922193687628485816056297104404690586000982455905353448191127785808775954616353223757487591786782767065772763365590158678750016488623127164507043796846539284335362237981073971587712719311104107342635044835092327856274579475894759038338510803373077815202281557781623262320713857209887781628067133024972891242313397151548150257336879398887280463361935545906143459813030140603859732646529201805559231219903951368131911263710984806501024577794011270308421922373757666757990243785166216348748438717517940981200627531112497759354548496286591308697043243688578450552037189943520540034088327319314289877540476292603282739765323388306451051834010776059126095612601755378122206593076199433652697316386164542679094467722788906054841192037247353251422568244880753834247721232704800497801725049321859213961630317596000988453912343191969412829024062504412818471191237514754930120594845707840847134076367308323823081528468492813627813399154124516661778078017272096808624592078750599413281442324563387904580484216263804230077399580233340099093562653924495875949978354564056889008561578529268657909526847186769130879022434783086929879369126193405376025157048929048842728862720778536852537230831299262757231661808581547559836725231987223488914063719162145757236232584882359156328209425011023611544938670591196181695131270708555091431867465865264701739305364412357682851636739830997276753303658256342482996495223954003397193742874162119855395509538268981527543298810975360173085952276416616358899314157756559267876873236538585679367566059098996363553170159084643834561326408335707783652219710515830963144192945685607826902076439058758918473816067005160217875362898004461083601740519836404420216052238729780854539382685540575624982786196788586136711223447070496453218827765820815904092815708252478130946591032140881760775026356266433189280815727345836558128825491064019026231233111202886847480053532828797719957516985466421016809147405683483415315443976372381621338032749708817977943872100583277854310922772645725743264071473543878302846635611056858514136226961564100539903534579788453011848536721168024239220224139011561563405729916493000838448770864283562590985731951068186894459523818865710275964242935491887955200162601517158545373885259227844050168610679685065389237784268121065518289188502561557223860127425356937847504224178938488695980433153675084621115493886005886281839458507500093368041008246213178047407286394775002020022956463551823095876140789790967467308627306375335731421241844336478041663519178050661597523887461356338030578336021609975677567954441349851422200271910011151494616537974482145748772013436097238450391152968250421685226293173975479423342190917509058749434845101433505829285308255447796370147720966273806187166638949499193993868386066077723362956290134247653151260850014277612987100310890630868285239122873209040317314945743588805855541847446240426069236537559253631415836934447631247903198337209927859255645614581482997579883979011667581947041347434164668811577153619016127389723832903661368347777391443780526022279826102138754347022913673543009439957627966343838654994797598795900226168522518529891316351457905467549689048163598312066898186907276730563448141975805266303841894667451221537162476483516605904565798118373223334314684349131880778995613101110677439298972040995026182931469722529918942774987973112535553958713540727543024840908986391898684141303916950323098304203798674485205215908684375519112560420236932870080153569127548666176985740100492004828533153426715177807220373789698368568571163545882501365945588638730717255365025641332973754470487077886481117457727850936099767192397795354988134773045635188012371319590400401972376129954450263220799013188048156693434672209194461147762545305538783525744029009111399008354093730033232275953679834370251365239378017380332415985046111414150436474855572702515469884697076632804121635913363032576265486968817466851326817637809995533589813078720585860925653393869644534562438708658963131103498684718629471520740902102176888247842962143952544872522424421194011241121142682318184860255792456424120546650751736192679479614518457293160544106045689630105424807316546957830269307455399967839920331917292207998219650699300743144065141435011973210411780949229107719572867586754639094262934517987628567241098851129453371486615504391246040648832624162225151812384699424369593448138075117039763979648052564227966767789685181152919568119175680693744465460669119984523986038207100080211085297960217106120006114052265657462118913997989392834649622796305430868249595022852067340898560001561180553019326152876718878028828556353178451763210531675993227048349370815741635668972863828419594436536798537877680868325897735598418607636205450080080527315012056575708512501685340353718920713662738057947364016940850161623525143128453635251535285150179275820181428332560447575487745630473554851732965865883419001512043662118110663922064459383242620248222943594316338929647136218572105305039434453640435798221527812713905503070827550488223667406048377900927068317569748835902476507104218554959769231302069655649778753661383852937848476730534971891906939357842855957634368249725223078011458718732963746641051206421749757791978682570670243717423035816211038890358381977601478404565577727058756835423904275167488951197992084478035585855924432899588140209376408566136371603584553912491127922012467564753256215027924435900388716710957213353928034648556482980047132531688086324273309442055249617871963784033049459605594028362508014535395691113008084254993333609498849496710504836674499749764615445011720206133653954899448184617381800618751016332732898093136345403022543219948130958795409898763298646856223753672101322020784837152435783296026974241568419559495660319871002253526996634884064022386211001342121354833633770685148937986590131638866129017835083618680678838464607950751835370445648197258542177802922834209010975581433927290693439841101546896069311371088945887865203077001014866676542463016945161409801355953082476482944540194513135512059968505420516988041069856048319402733814167372308561324597012524852435795341271687181128073851276913833489569096092563389816956429147748214527175419827830070415736888338055030204712082105030343182991417333248009280255984452442061833116245650524280134318104592368765171683352498386917990746529681739178823720110679476909387676849049979181814661717528448677839404559923115087405990226960664109020023161001314748750078835202596580484771131760531247628617430145894038470719376136929758233711053485206398187200878642605920558294239758110446295781272070091487468479209812347516739278819974924891103678815672754341539611001260439718349464074252249474879526259474722351242722869758650695810883672030365704403178133194193376354099560876774589709153506631073650182308810864784770713256325898512085560855551309211925034176007201688672972996032344726478126198400593090720614346659888579805807534281097528007270469250063723478299478445263119589362075811203947313937960201585844254274681724044737576513877003598438279643071160668632723225075532758842073519817811993740986461688779920784139084021783512113686307800394013854856599853888404148179354123673671399735953880481738868677558392334447277519189427227209449079877387760766645030023229607439697144107920651295311799327137357567556841167933114858129844991708213011671986779343040967001265196244658724815966253401486490573679997936536473879102748455856849958607125975442755401160493392354678197013150911636790387976884959661576478324179695651213425115062110123393343222612008380864079664981208496807261932828621057795854387307285813713933106405950920661824146462483564447089897525372395701152497533609368371694422926574771768220099938200282538086037251516128670089552837796964460299675205422052562310789235677002114438181589983355241273313493209854378981005036113124829637307110028247532543866943999591643854661386377574519188884102543424238452190517330277770240484976724371694801134310184829114938280522048014309115373624033490773197305308445008768715266229132624812304019647328750149274007348750701847745934234035529416042143898147692149187773580125552628955733736318207678817517337457094156714808228905943694211840011493920173247100065756262952585518976504215716995850457008660592677247650011012025208406749462602425856039098318912136619331205031247567207331802666390829143133292866347389424810480686178289422911193057772923665750391989560738298000180996809710072766059373913446196437709684878294582117685903835610714265506924773126660070370340334768539577560284260061266545162033424784975965644231982503110065944344509818205972902130945100587014665392179921821501384200743707536982281447692576143333809305144724685063463774175175814841198861603436107115487455556940319632039265121545283856879237731352880792176809628952969601933180466835804620864903560882863199127374092454043746420581338747831255528718660508333765337245039084106349875432139948074071973655250078754940763227340441405115114119731746533984630298461259034251965330197932873193618312420453536308126521135144654555534189276028986944094921706031436495560791458668951323335687801693775584963670664356045038349222069321174791952260714502397141473252336997436988619061082507810072995761905162036542727060545089374120658549555006169019698504777671503387991062575202387609593494694993228590065961488666505336068729364866562307543509699675789577596709080913944304305329964025338209346830177085681902120153902748240100198382616873135965248306625013785065864036476429941214599436098677262414893987628240192344145959800306329274990826219663504946175846803890282006514079299209540350656638509820665708115806510246688993070977404379023698374940637564600436343435143973015294477918127653929305303703558396679901063896730785625061138128934450534333846572319598514056680091871639880991508856579049784465897040250874570363370197835844565911602727702837704718036490645457789144914491344148061730710829774272863956253672460826057744823051937282471774093167598954194575696055761001895682696102952075525461946273828664127355553892190796886168914243959023756881986510024185062390899421648298785892439300298737376585527849563401817349759300510123294541950646546084348032654242246583876625719203911612846660015476926314099668531469777995610573397578216995377386024289773745202615414745747701498577191182860399029023191841174008322482369767631467553889855579172698375251914832102445103353684379189455009197840133339952640729898334931877457323872555850686296250213503074906039577393096314970314813692350268835895597563552323056415038459032766094088700561776353174444194273707685082485641220196160980769966820420521891159584065128594824419317445320829701976516812997289684564902766459392537101852010125997554007976432709155545771273837974727597911918235516200658580262254075670809007785139715669734361163637732506664923810068600268532600480337617697714262204708513988412601064076531087054664311361245629018140215742375554202469975131100456081757516147864714746204401333012318759167398796771226578263538099346401436214081314698338949710213783869175518734005908581055674548343376045228086963006707356025010274630068345712067685859364607092918542281708580741147545306740189690487503915028762297907564274869494624532956402877503873110760665771888801161950242749840533514151245281149497684334639211159517667509982230946557604116594545497900813963396125449474292326296774885526897937534608766122732265032143083678110835374735874341774321767595413140615406075779890683394964428637632322697697636686664682113881111304057019399909471973600420907647756636454998504011018478228026750428553465256572017938919582505580604097205507109631470090300348624151057700503760698149592733427627210401200109653522555605566593555992885085813561178734809127222078891500984344303202796918962772547685475483599475180651399974303237871780119888381169919561942282014286458954392342090527024247995955859989073427184301942583703461886096068496690952160530358330427275008765576509025257118633214379894523406742047860422653995723487117347891560587049437704094210979064166545159346268390118094570960565052193956290812597449028420999087450912846638748348337905511270011132085335797879578130527086596679837512381192352717351814455439473581114976152688843212871146559262603238747059372889801856011766753211653462064082727123350944184789791257387875008399410301072244984037307938862508942568336049466846527840127909076541213135898439202451682739727871023684180231392153537049840175499618345598263414076515712810680891643265698114929501384992262788573289956298993375061733798260321833649991314384077037237032776044671434769772116309706139658903592491676729984139033708688416070453355334026097715796237820809491822634866056070093319446800134048186628914115709150778695462269810525101447514619495372045401745126707120994449021480700589551270435083605606891712955087626110838326399219209783647751047662803647614894056943793069783927789353678968629308259615064699431825883065959752301766147171478227671696816361555056557379767677518734403743243406283085012271460423451957450211549614551648396758350673093458495687495807775471100765471709537620391311247980946549720111453348707775711476470156672204344817935420391782321781451747939308847702782177829889671175505513980891146578065589918847378652394843252524932063013259069537759848987775404784973015989884368138132221877782741524405628247692391523333444459989753941399206133209395543438209161290764336692209235837781883743092715476905803901872206745713585030856586936015728304162945184341941501402070068968093036641962506706337781737292064898129416709999676175417687700260674084306293917480962071884000152133637250444475063691216169825390009524987981353498931384057573262393694114916085068341557492380160479987919389691295087931120029446882633783268045197150261353125010696033790439187679231214269250571671892693334420201947426243057006683892708887841062979256297304997473205851745256740117851628833005445567261925055658936207743791646206888349464627391444493432202295842281972562407085562449824575727799446615708083957220239955766317769979393515917984324002916134136492332609460484051603476264474277270169777987170359040890303264811333693031599637897172086714044856907348998090576690644158938816354240022510208016888940492483304516140871700007167146099241896299135877619989352125504452878883455734404451357475907892874621668834984500142802034395133696487991109959067513760540707720274109931149233637212400691950209031048817943318836981337393486664478313252186607429730244107333898348940935455097448061940338573640569697289937525414315357530420091450023239316657754686898790375294928566042555896107012007936699280105884879841225914061894953686638603359774676715453566621485138127650888846528313712136417539202460099439138209479160761765806155258978354241511373550572470717551336687759694192898515919962303548286390549145992910688408727633193105130008438234099870833172655371392536641088650680650746461098063655257986208307265309421024451824761455903999831199818994332356321968342360688989396800413063186748716410003432812628601522516360812923981869469449242232108084301492788680136702811008806176850375631014277464631265288135523220270689909621645546070992543723820438811869808305997070090181513788268983240038434866087504652441980061164949339071160088526771225462313287054597912234507020918889844322123017065305332364858373632887146623132244149587294436903913036471179377781201261686590627339471298519300714988739060108103422332205558544252885252896283050008461009573659364922272134407370771846978080501715465857269547563129516957419947301862704317830457259092435186976832202346537686685354344081096624171136049136637763544421988511746915558485943059038778790676883808159708202034440411159698864210584107098859555786820895771556752074331721835264776025873739125535058107284773802732787012296614685383494982942013145036126955191716128249624469662961755307648791357555254552860068896593406800069169617635079260546184684212498543141564008491156801178593720696369813846394107162151408306669571671938059005237139309688277628677306762672858824533378576760480597310877022313934806150475873714338606424885721872982574499548056387506838167392165575490566785443748453345296365491842449714157606116964856587130261113725131090895190654834353498162839198981939308778591175261041188715285028923545968045431138312190202936635469610797949195053417591482858900369594336804309940575980622462440445914469887198285214490387412030374820145654464566926474450559182033470721224709420283546803330050973680127542964000889917941308334246094695092956067646426048299604847106054581583945801428559399492986652893105475076841847050825521292414908883502275979993286639949950614840166312159652994811679385306992427355250241853964302058466622127096020359545990243155144918324751318942430801589216482377530157002475136092162412843747244723086388899154945310271386825909559117301100770975054847483189297688454882361896888932692722293567275245625962303405719927861892096597620163760296881830429139707076938013145561144203100428398422883462012613478181474620303414491348788573776751015333136786195226722097643849457815396005879888874734292931195453266775457406661588669581574072656871446157893707825468537600068645804950197465730107821716460826026591746623552728968961068388210874111374453928198097965838201420146638356405447175997384015087942010195067466003444835130768818070272697887410917574701670502761443640733602353707079694545633966415648443437685290129337395784772467778572805884051077684754952368963630563128297104222864318645444805114610030882773130870694468109179895821854632518061714380530813061490681188165319785053735238429680819960321876015472852754378973901121867553593948273194746299333347798270703504931220195534276215405148697243974455261682213143067232884799678044581921617334802456972207027152956343807201528080233696314190414081308888983558027270261670647784598412073144296618216067938555912240112119030265351456267736665260391085970148111378328954476931908924726274172736799668667512817576433482475468378297956858408004807842671437482621279738922205779325014949260158675567794436946141768984956334339503277633806546748897332663647246243717719719096504281648889372095053436892510414311131655663817465064742530764748202448207292692708554893608494309814611595212743717430183664286267783935973913224510432540876713256609556043594692742771393542479311395493984842541294054589772703467974747198667056406344392033619788427240642648419988409121795554002520829328610100497971041583784144753346767881670245858755628694270637867041675715500382328023382393434009299146997886935900950860875446438909045544124380177405052484339343515478813229831139179682208110840976291322612375093836945533861898686542512016923012661438729707648423891269135385865581012911864067816777704127360471040006283819943146850784698845337186257989646941556377052351037808839156447787691177561096893281603299729711356948859237256791286443655709855588755305194157944066715338887031731565409345831087475262648073624296795483691945661037200609218293762678803418321914542378428248971003808873528146274596392103064585185618675586562705209565834913622153549047572010158623032395075179385757340274572143188450685040778786314405049570836880145239748937105388969637019252550094043139261813050598538868743535101753054189959670335024611933897882101596735985100354239507280237397941081111785645939247927947039019814973710469650111387245381686903189610247002870932534765513883689639539889368690358154896105167588986074539151824248294799293722800685785715100392681088939130710490725732113786783578589395925167904113257247113054917998395502901344691786069632695717466442519098595494148531282197454047106407112925085467411405854089287719306776961711872406078768642678095994510600828676663850865185331908430110829583328576816036147719458855548928917898592631870960445321302708797928076927574180548547032411762301752634182992292097048135539750059977702297436134739999620652181963151727647637333578654452467369351914960707545089150067289781136537888215427549779130386542722507911295650380050023243738864543995597521384956143107567327989084355516935459345684462466166877005795817641799407291986820008769053365701964137918697036804158749103688273756448509538469010007271209951858856055127988345801135486924584857008126054000285400703220840113800673375549151314785041876401459201861199924246716661486615988475910589670605059481361667289434359752587436474419493645921200026409063439079331738869252303527756599293427025577306787899779696303114683938254310346909435227684644822447448742425821421762252168957503459110023929762723393067907426499787295560612622124873174902559618778132505209515736283395712341695304326904919622668857119057985980936257911144442687790336566965638519473820928531414533078116394258161374049737964761592240860254395825332681819818043123217401712426939436106507162818527413208568412128369631988354704387005663679696863862910735919683032521745939569853115188329602531162774392329285341666994401682867326625470773350695026223153870344320662596699495783569515311536083088419690237603793120005060985671200897986033181318662495574625412221989928702894771159679372118753448177656854511839819934651152326550322663004851957076199103154403548767476539342452981130668642044687931036522498591975563435829708987646613241770375336265591675791830551748065752534733901301527367914094009736788140332624268789363175037626454603680380588682665953244765606286051833528193903265646410274537751080554126546145763662998505965196606851610671508215957980724680329357514451144777397871279786795678199374334298388391368827203077826258038682362927474824333224515822341194699019110640252296990359980209887270277257683926617148304460746164616713963132635302173641001584287771958846110986618050125948191983097336033597976824047821838221696523230057275144964928981379644330457221937512885717967065879841104444768404158112374179835903146294012383050981240422479057184795354728117832692930883314940384062197374427638497393207280818780250080967457106183030017892636209750993478669858029518140207550326442600021988415423990911507217192214038166535117736665869430212430198287937612580870081582805554317923045286441287606442540938649030316879657550644444511623174833557939404121090978867888966257663931448613870350783869450207786968579110756604368852919037510498753831242595614181353048841342122066475413445842142736350029026795669995730484511874703932491446090027308393660099206764998719912936536662974061202412861006334438353380793457311432510738056236061800501405426057044637456430257097494942780555907698727823574757850148631392857267001228479408243022269686551363829551334768814128024059200126767827918057340411094758838040661833385714596560693581033198700956071694250400234299523013184106029438964531405153000963246762349454025567999180092148388205223080570580861340838430580056909954988155254081687590668598194183034498069057301329403180599093275135851806120368618842458362622088327332732770393625651763687220487680855149181059735492674045038442875250261955277382988321478847354766571840419217595443399065579327719636634090967820694385391666527054867066598531781398621338514028398690556959073437444946534384477220073311272879383228473304986382986664682151831940851570257701879732572130765362482653101720557167699333481171215884501323016190105294361893432539232046407142406446671563743966965330632030146836712080569133407216337964713362152804430527801916761885498546599797189418858046719572185129704100784280321544869161837507261072718676811409571830452673315215161811192432368641393929947732499999252255051694961641182095554987739994116724646371347219327773227536896373237329727740001982900300765140037531003441123567063161022392420534000013022431993358842913561977059040837472777068919291705406178780319871656197045137237938023627309248587479395090364178649458943619988775875434116881106459182034393520416782838511297859874082922296406981590187889611806422988179049967393994460305161945080428528185603430109643500213061203478676720858972464109783018330763440002693158473153930384371627648464042857604248215077528668080319081663798906935888799259925055711643812079355848785639203574099677711980410597972843631490277819817250762415519465748139699248864825158129910176182439829756382355537028950132156807673835048681655040670725766641550831857269329625450089482091174666767541333245162695214262083700644450369647644694397476959713758470803860254031446183908658926901117738906366015981965607990771023426974889978852627571834213577919942532385681240213584683937865995084486264971307293395146450648153486254203258262423582021040431880320740284607123159116689009446826378442541993248334651655153555186258160738411656942386497373850429881022417831290154248897075600856003825807339788944302220992461070778806141723514719944670472206487662315956332674308379929079447877852152723538790041574491248637019484793796373247401404464174534443375856431983653259694613758196387126999184781370159353008198576154319317347469387967094591896617767919168786753717633566782079539856105137732320661235521479923158240981266093236797024248641605871727394652343029245315250822272357155377097740836227430139864076640356152718709673467954466591688237095992654606870957220282571932903191015796803591399868775819024337030680968568818583458494644029269932069896053668852460815832298877928652924383555276325524914169312595744958532226925660288820134244342682773536648858434766712756267436832883665444778780642393085911237635365098471310700059033857224831460389411449955281434245617006002546705541675144513261585408539118852087440490292693272589151987537166855462213715876020218747287019890528820833723830341006495311553070384450396220024366241505386955056302085507555229085298742278243358317591027002626023754651053574095013741356241888953769743367713392927142579365370173809773689537840840073031013226071422201613458131538275356597137714756103120394615244949709161430039128833167981471081372650336928473538952978375626806028442571186982576030354673040886299724452291379994729438742961268596638282456671197773844486838798736387898156185585371782101512415347442385497685480586563856348897641136009644072499934931478375832410110647004873117365012331688510450113706850215979293986134732008458627869004522695147334865075854379914131427776359434447602093785133840307077618150379064226276590564713029181857740536375111894512169572440291115906044248925075803301470565344993921106074907273731278981052974462749928605456370687077101742850926984089896476223552219015421774784136587581829558162330845110466288362731056637013383658776678864118704521404393947768551864727392452858691905977526703074922529655487261823400014596239940182694109678456322979810521456498712177768322308654547549773508578908015484295802039410342353072406924358328114622522305577918565146265026966042268138927498518510628614276493836028994603480975346077642317817652832383096931551776456540428482258603951749560649967237146867905795622483684965206139445434273239720851832403193854447494267320902173655823828414890300211020217887000890780665298066235937276711795306756733063801195761198485198771578766332670490691166831603038946177359046446741439263277852183019895635842272914418551633448891563849275662029501307051233346339322192047720816820296480793203700861525676875058638421921232816662948909721480663107553544494213145844913155535323731036792141868473724626423565569862076667287669579599574453124053629786557971667006050933278247689060188728558868824108842746233121613429598315571431293522425833337870069885305216245990610813825091719780896170051587428165360643618267446003744362154927295236997386552518218292078058229751974969762263769637748964153785379104867397859595976773856460408987320314416969752250126680944372474043665879316157501633981706086627637831986861602977824730044437096922898053630443811162558832946211406157082303773208470628037017596421238541479755334060648985192707141904111233988804735630172662815141699196188003563436757057018272062237618690585743385955811587312205388886330024728431487081972284554244336807987609501128093907110504732159613355021274518582081276342679120584621977094279753793963026859525481183158194326278377362565973169358168311981829489028113363689321047185233734334716512692888200681109496345378528173376419802482445419012632657789161081697826527750150768123962981900281619495514119278837460552548519200037824587000011864496716260284863397186287094939588481493976698006292569385994770259064812840750935549497743679751204464084218111092810991322427514500310188504507748014957415804687468941277583145897764472401525052598778529346528773219851553667808690152757661629722257466193075249506759455269213876024238950396327236016816521412152799047231842083988982748612885190816809684228228919861589487035369283523797474412105430441382764272962167738999223364604003707218144902029416091883085849411467869706360950143003720387861453322807759696695313654544858074034121373085288194558362878781151524733158431015011963378210212659110639441249059865710345712336817488250040032116532948605826109419177006940643416036134507912691107232198455910696265602798507366184654664043908100418900105066202631077265339360372428116185751001754379405157642092183113774864406045647442327734535278014744823530520848399256185456787252770627130172152994820272572342105067121692872745055166794519412431735042880322047655378928600534178391387770573230909992213724843132686346377487992578980188867777389088797277125372525039080558816729841344904692333529939373060995962316791322683113505264678209647843292401863171504337871762995714150293373334080298369821434996808882701226694367328452525591524024139109383303995020375333495270698680783041154913998820861655814097685837690013970189729387226344311967490089349074922540766562511028755771135140058776909091643350399245660745927420382669408433051230807567848443089091176032583997140644622212449195893418491599740242612302331477627585681678312653957882673422119616901541804777929279073587339699721595554060301216968428609241576816508543569217556942383156972601493675125353103265669085293234314695937729177854633622871946788535453549420027082260525669970468738765243504767128480298671358616343853157288397291520564101146875218770522274999087494145128991889716367532074429891143850982200192695669615285607269367750611011027393060116075999886544302004643533011905269661792819984292071066437434154417691241545046100448478132552435160138248674570552633035321522486952029445492495860623375064784841397838170216358871389653237594319824658558520464852110669991974001373628056376886623109106597906597163922417302081614347601823603558099030156013678990230397145862508323711078878922377785375576073795255882871924941852510971294961422168267762703672046803929789839587737073295146938458116645159504029414811915575210006084127006848150695172470396196045863829485622098511884702633932530629558552389596181328942117017675568680519094618145624183615322095170966697390054018594983610009325128215667835361780390353371677932571400479077243303020913642087809714842285974570808758382915964276009381417058895276954501796720741343532732052944914103202006765674330591695193696790980807896271508337819430441489762768801981724799040678349511985429571691942766570551328491642332961148978431633633404507064152729721133928638464802915146730469200479932326981538176845996816550153296588712055466553955249594082713666214411206000810804947862949325690250693155010571510653780184352157314544544408181565505897028211071105335754862290600692517449704319794301447837549689859690036305015826888313728326353417561869903986529221199125619433260406630251023765963674687022887263388398735067283784180373766829687717790535793720259970935524475953055571992846350352773206882525826879654940794754399384519030350932711164673018018755883841813480494926107793729984869252093361758777194610631199560911254334451200419504289914005907080656088041724603670288209447098981584542846953253056698700626914093096650120040082844198437033953078647797018628142042029942289957913867563763811029730343815397550945070860316176652938645937263768196236102152808137973241577552491361133382698415529071756006729855896183936015709033191396401590967117843507064619381175721505232296524691272285503379118531673228974470001688988391348895612029158965806875420367094450666163911004451980378573578421653911989554555492220530833732285844958237311739985692433814903435984786521361961174597753847273211683871069152838298982827282983516532371543339678371986301765415282963424329501791489580290617357638381988429927422729135166447633432019083475213204254945622653534131588399930874266851280388621693132327840893835482829757220908416857959011728842820127836487705197472233911223698851514851983168187767369465711772995094903364180734705559845365335956690054894466129328581544813264455813152254259867758133488579886942211485511800381273704985455109178308146264186381833459782098272421518002749665109995996651536731434887566962312352540938869345233412418272667621937237829735219276477518480593322654673556694291956296750469946024160451766433339218797140901550027730544340712080128410907338705033096242778117974206106618795532381834381549095020173697737873301551890736039281243192162510073049713776495815188165129036605468411928602661290717678166052464059692203149939024264024659617914044851530241461887728035327828074312721066669997395369119259248281118615265380231690940642756939573309456110210461901634367541483385652753168661290934956356170124116703905890270934371504606485540062981085095500235404832144868379687677680183366588989644910882526636592172909199834940989725470226670434423439734187515266282158461082076861704148586367324805465324032152774437671002609281823913836590973528464036484951912484856172823007390018832656243448214504294988764416731400233722435929174927707270261489180158470348640315076240626781157424576424306403957109801886140300627604374445531922680463865338722275631932361958815896876316655535751077925706400122947044066050400133176585069728599674876438466615075788849774562236338646729327209240313210722214000686370072826448318394129398636597066208178712161121158238602638235071191963824321830408993735687214849550998801894624872793486817506504295081744717286543140838877845370196263391523485100631291656446499274500700700084656263521098467368977275949974072578952749783959788036180128512524761195941722988411992629571116089553048981436334531342056365720264938878247355811994376476025440568885853384251065598753734822166432717013603184362444905126328538076918174004116568713748385685705659337834965849618677855823057587858326984929465512752785467559808493778444243520870203310464542766848521904107050512788593946307487777311481692690553389148877715468495399049556585778887814156832683299141834778631384104866119467091528393778248059375645109919597812648411922117725623334626671989097161650136620913825930950472393766401605858987879631725880472043806696401751270898515440531097220438296423550473620569756951653065739294275498751609659450826953316173913356948117384066573949956389190400459993174244022989349116085191903147824797984873774311552140059053233328421946857704093589458133532764498653210901112004380269923734517418609734999715031960218548963848225478283311715175791250685462274653283798033840947591306404773218488259364507908224203505003343495536967631965594634203367542471438870437393313872453716414011414190611906715434036170263980683232614059812266762221360639205255077499470125511043378159216838731167240938413862768543982328052386587377962313223373931255230107478773951983564955703137305323638740752890758507124494945590513709958681378348250286663439838865902796184144940153447121308266698429693325327480323597324806517980475381362353842956775141102782594798725919510253468027783809285474208916272950888300390943315371639289828516196806007631055874470968973260362668256833936005559532301271646774156856430134036848218465333545405767955845797866915091005411403156522612328710378772300640906570586472620697096668585534352649307478877212768846166207552188100282143284811635066476858811702789269384638724052511161406865706892307218198805292621528724710019776664935727437444182975381410237531773523472295797164025879124411620670514564565921215632334607326675353668398174576701751502418740853623028600512539475488109223074439518412727872652012841009622615187013430363014966483035162068727643319577356221644769001263831862840236106950631388410580168567280357584596533598865702216867543329071379641396935176083903014681527263606354762023281750357536099759103694058686334634112908639804344121463788407660876928543521517670058153447920476123804266936255380078655824883864661794779912390668606711003724344090897399867153922582062737920717441975113794093406975320111506967351867055224799177285737280037042497229982615838864450238509680343848626252543639475322764874074230883732758883697270597833476259600792243601367029352827493044853257680849666182156297678949234656913125593944258444407018759670772500735661468935529377445895369253525575715802977111682733539805278445447424482234643747608635623637841612086568564046859294780119676603507594312402154193927243774872215901379524773427217756541332405102431499209691246030057102383658311276528094076540802665275434782773448971341355028766077079635902789648927906535914600369419974594361553037298283989720373230595629448915801913747397212555154403932262570404001790320077685193999082761495778599563420291249548790328700505834408434471326274855165459917123442164496438466532212247275750722159974459551023110392646500193813715779154995314189208686075423634277791875555075530715156857397519666433355837082451605197669988373495827851293568942676306402217226702523007172622044196699986679441884698806361371760457631911552599460297348908104907916896314889750454609557517979247315542514907204917786639491100049569618924568022799188139707193528761632499615995364178613340513934996357716690280630751350874083945618509256493452843017037310231654575448984344833702196987946107731130913773165373939986802242869582861312828365379480551012399422247316661270529872934482607135551689012363956130994378663185353338518631974615997501634329873794041263595468664790146043187777809777406446373349424855214068946632945276180340255140243617793766892578810850130147470981179470710069070302362380289533874343757259080182405133821859814620240133534534310756305739314749255940612027782232761639934942376248946502298542476279509338338289519094289436687042735785881859416002626231350794815047590360823848929048085803685575003206812099020368872180400315913305267970669159563934511476010436023461612977356557942382615624434055791558984262403427743762641559169880150396835942098630124095499372471248017943031584977685316523885227803211176062955219526105126561522079631740775721582262366905540723083229148628540207489792160245378615602714246155574024948569037801484982736986761306561651619609525083981565850528428416561178027771612641162974473290825296909543627551428262664673827022305196845705649161615823298038048374138816167924425623384826101544650572984579184244187422900013844077658663667507250930806079242867542502793291667114592720593009522883374302332904516297469936530000459141734999767426317113298752206317551006283547133487308431713606206000137413390487311215868731682407657521945596656895966580610115475243246148185753255365992103153827040458259848339162012230199391734353391191356695328975509835579766649153166602543733623767353189669472034443793618583148291968023274595712418314815272169174671443882447941154808565792318216519733041141748048109528541619388681915128875018417077741334715598319536607547184828572872066883441633712987924776376426347539497290973115155158190138885418135509398698515022878022946849156554152359386914128360486004282117715235470975626070442179690274332237219997299281083466042256481485181304477418575561122955702878527952354370199524990041176988630560802355604100710583266299889656547104040941751312238460768840505372747043897206155130196874919596675196838260565212565698423531930654507490637308694537819423981051081404694333069110901684085025174854756860050152768046926875544522643310268823372821336440201150113867876078185834436312344717829192119954503308359538251857726967299568485554442506099300965594647113873495573623886279845580401391494814732191475128738767079232222291855971742201552228764555504318962161776472451149680813618925446134412658057975545534291506208484137784031893651457783273983426946858236683480152557027314616107186363703048899850580721511027716755256789864217317425932022502870699064892187897483292428023824065249131924562576712922437536926902821555730232614564800088869461258119327735642296527976044571026156471443132917220542995760499926519013338810644545986844509383913966379740018628297950155357036960132463782066432474340173917629192642391097253451745703258257434156142368948211753746972823103498047289462558290840325344290132329739514896257719322645406428820821058336040179029167185427741993882602016060152788716353390657505488028999045731605784981937574391557796615263786999488478776319959738854306827124721739869946944152925252447492367103214638790689433915337237386175865547292960509295358980919862620535745049133113707076791514323050021203423576704540383671186730413138431609277357225013797504434692394772455762500385226381430897117560742956615437831004174057619350734290407589617543331345881338740640208016653530727403345071708626119614419440842452395122533365957891392531115002760579410722559679920833404420958272389471846311249995667806904423666240081445407181287818150901027945643358265465754533866720992864914403917065918898680731098955017007982831751697945862796016277258657882346959904004034763403842462948738890468117429895903372111559641652106638940679884672861016528501055881188060392406429359336800103116917203075093631587645975832062831383741161094751648120149867942520790340408079888484804812050858013566502475973512847539757095835115482243026407885681163693045785966522303793365332224160428305995870682763703632701393627744489940967335246925985795083113112607361190272753504647121705449277647275874636117570752394327604875818939837468521880813910151042411160955854457784919769744704798977932433463243995577354145198352124282346586864344351539526591366698630716142705283958751939446287472515861464295951954067156886625931588023623910748904527171157245943214614533981233098164339062622231410431141195423261360134497706895842346295745481702824047246685029083638043728317211054091843435516971542616271075283633346693668974426552226795283555924394131554107673966048196071709349868440672760484621928904405048703287208746959079342084173655677449121040705851012230237422396184241276109255256147133662150620958617291134094359393805846616819064415756112465079826751208091776212376211067832844990811666700988270291750489734187498104700736246855489412686417789996560564578540532151117854767634002455862580561686193265166306513638927439831647227057802114524762001686857333480021273889006679037752559193241680210187313798578450663069120805678081675201773982509387361336437865850441586934265856903419915180266781078748868399130058353322137590776181123487343595544947539731006063631173917755350290581145806355484031288945486087850147451808645551641390603447665122304729519865210915921683141122253528235232078101486126528924725308318656569390637745145120735280541149433190507499246866157602643762205610999109327629913833530680025539883591224146089101643255347389080484401683286186561300840629110841616081893200419032914262155844695559137047491322409547082491583475224898934017441425280612347771645675908967142681473381841363434369183997467825162115593380128448430614166561162785880759631506623807199471340166796804757428910932679970338426450919958460385401920243897124487087079367807733401345474734682975551603964751806904211701493907176122230105526083334102956079930974208444905500545338396778341294408914982492908785138927674072190585463261952213777920074798948379387102671244638457508468318939811325156798016759658124095032911885503876749725333953056773579761351785036516357558546070627070509096660967931865963018397647459056088306042334926199259334246218771847200158352810457905486080880360607076591810518972923453999932458829328179091259684969021290885968995575287145972496289708865832495242956174576123819938868691995806909702778079962925032597655332745554888371926190430925218555144932018534461921422981483117317238519103877881760726889575798149402105059479232602387284960249687876637144952090128497099106787559900596495348462998905750548066315741713123571181766208121471348059906492014812222995564323173923323422273407948320061237938467361094942268920823569250779113713429241343806842435427158484574248009566142608220708032145632193659451852890029319751905468311352486412739937955432953412721144402022914167335187985251260970126700369563524674349182640492420774800223832422048122335082886026504572742245968801652130872659231465343165999983722114773558741935334666361855341969057560432777959337325701639695635548345443126256594840134904948608209325611994052581592225744900462198758529178922672329855429570086268730478761941293623801241858169983318109173118410100826437587515626548733684723126333904864969702957306938017459585801128271632410878397964039905791310434680397925644788788565619796452714392179111845995461608594613122491223241424729667755306752260084013120012306903270482545001203703697128266717164359457731776133711675630671283534586383462777167742793666588510248872804663718736194558363608076409375822909299142372435007501598666890924821194083990152395686957562423905143072680205844006909604968977269479124183467176329951517757827136815149147297872874649125586077450545180438674229879517223732345616617864743318231329863579054394798272439279388194159091832408459301611347848005485533950472883683933658944791731769594902047816915527074461884646920534841947892828377570117725893570949315449563641436413287810155518556195444626002976113771681877760785829992931176246663578266397633761963117224064744857624410551155238426219128079372732112442925514338094276883248251979483764365053759989428062746419790807666426350804233974003472549859304065891456545574744594342547313522397367763998123463128569127932893555924086705975706932271440828105827641663680613157568515321605989167785025434543226340721322126134353196711944322952760836735553629453469540706200078176059283564722507713179564933628935943348482716593531296352737415934051518620119721856525640313102600307115512590916907502348071220931378908617399045723226233540007066737261277666923620664638937618733864301341284995537475266203399404906675328716436144959377545078767297355121665953544551258981388744500601094310635535542895664417035514001092307981254132049468736820466874784986418115285411107870538913711378970994984585268821467564314055165481589951924328096953643848035359319505141644569528830252609672400858306268217794563797519317534235399518408374348804493216902502004960797557136386879604977459087011559618716909046727388347413018037411189962640607373517149865283866613969826713491300260496103663329920212783517990205259151379557254654163570779778740920375017908900360391139550140698488119707902220500363688589069269481384042816111349399761495321167659408597197331795346941766314811576806306421653519209598591221015674287646581140674284856565189774251386425120795504596700368326129410775076439442940699175232281444450846698005363367480263530689438849152071698939191013405988882256597272473051846168991358857099130452004234689993697092209332462261083372973283982391248759795755225168088797114671649562957206157867567142489061293697334743377572703358598142663133822151058573489986566687054116497944191881735238415363331941574516173742588644339683941855854330795500351946500403780304986104795788014518139977124731244977905370180955370459904888033166850587792409268917953133522800208806169061948216725323660194037819854555169450394596948364205413695183853921866445375295988116709164741158709374227160055040778437096484361572073496142269596502474243711048288961392818991470870526501981954336086285911246829375256326842488155352078815844069659373023074592796034525286142140219130993999943264091136622271808169545044800820498256004709327422119197930487516800916348227816087537151251953869405015077547554031489584547674945242692583652703595226063303586410903538698155316024257482559747387417705874591292627726230206704260141138881296001688380639595913501408001523731146615102708339361755894702534420846489492744307185418613840569863634660028388698720435140479292911082237032211080920660143825530651902479279592658345939644024017530691243479043363610895348813723011329424548408071754308213476374623519359347828513416906694454520855306225268309445631517434621406127997357065297530920396549485314900791298448882151365158584605951293116299757178365989989690070653020528657354923490155900947188058362091216967480732200692544641576823369443044769701464826373975640699097279767884407508656406446947992050577066438134559622756236632560276242042017946904767734507020349063961211990941141840367262561736915037360642971057152799220716057463398081366982918747986947973915788075325024629386981438955320028430150114166876779668443776388416540922112455362876593227833451849469489001505006770162609246115455230069110600206201165107983623259185523622524598690829696515340648737241513043773340106742183477347783850567448085270983015987832264400189331054607520943897235219004969794146748186085627250066645056824844167314464675528191755305550690839467218548253156245466050286714385972966883173021041697319772925024709852708543182950337946092907477974113884533282443745613447847188718130500308284848157620087013557130351205454186450217660509915902539524738308814727528848694639903328198725769676997955274291701634380495800508897850749874825450360686357933970737421616865767439828768324285306115983199340230041909516096530698166848927600127124567373581159971850410894756579824780095194766010146304278008326465383044771818824416127211446876916785026140049476722359677438814605723854960453434241445521726672755958608046623470237315815065304323155098014557356300909196697132830129133815633762781690876082770893922486479094756442277446336769010023361142153697590750248251890657527638336178671702457418766770192731002390957182372155961829702337830827451058420291121539311349391045501490842684359760102291200901926575294688556061798797334283492093957843829094135863518311908244816894239505554471965372573188883300563114970048669960509321636733280641906595955194573709203285688567215456709070175442857942659424825867452165845023129644749746094849491036665980846951627287660359984732256610865068436992731555897712789527490814583133981991696298641006279553731082759388009971754267891173763927601779112901936933087287037177869644421748849103476070301220204379045203412226246600634738796450390104635565542622652900006338749956541911436035701778119849063491893301856923938042708155883374701524589487971861054795913198702709108098598034579575167729942131355620493314258796618933421049103964317766873970050347757872072857913982697598606371349066585800253257020356395787860475246150366306904816556680522115171186600585240248699297816772310691946617424001050728562623736427421870663569301651368824530094853817667790908588861181030046361838140155745500212503287201402666931628660631614622411338004837524247734774222611643882268715214111162179653966349489874890967460372808895269855103896275822304817497534281064823376692467110736490618980130840368708037542714300504998428407468585959718911033889917192215308016900298197578447832321625678035693260106968459700292846143637859908092023206979380906419643759065518270647320607972448183129007518281015883238434714364351744031051744440602878735506266767347567223828801545497001927634613083248670964247381989877057004519315397397013531877864283756724821743787112450225995205169786299635729319307005217665448260114856681070828357860143906258339320955766220902750315353927438507020415305758651192088126656831995623402230056081165015107606718538644175381703804980562755739942988704087508629255107614158107943403220930965632327419575016758674376005095149779268246845914941855222543790445914790350628974694648971724229071748419674409439700041501686713552735580981143010108116652697685507462826170183058186874961366129855343803786644960646838425770324413396093025486825226811131087246670054415284002063216625122158473432384648317656221268466023443952103959567872234769476515870537140344749185777837058931401978875505569878933376248819011226421890186791216939569159640859758168205992266688331293883626420352840540974085685181876417448356390433243605673490554466055027978875557216922819522623415057972383977431837940658950960216550977527413351007533357575399958158317729660380659729967966087889848612415160224969354383648638744786653384415003402016422191139293334153938012322851812145797323962272719481103936454811087671201362475168998854232120571546090057451963847336291983448155659056348468272450301205053415024583940261318822889339282325367933286962172574095875302896356410948676260496022311376237656813951271895207020877494378454528275952576320177775919068980032266000494224954380101803553899236648774978154149415104533381046995325434902588975214559687512016421397509545037174527008760748347462873043100450106019596923665453382171572699294653786113624867088104197402315372833385637084466027756287839089681876041565759363429200122419549204380723905057036706035202245145862690431685602572929188511800120104404306442436258309864887137697740101437839253129630365678026819848924872621189317560151236693554369618233043154255321126165085257892020155439024760114449036205277131138115224656199388521616895767944683567071836000893694924828074191457482637738516356620404957461878608898952282305982865500889364070332701391170610345918899136238834689538255031372881542037274254381471922782142016387824686415350302512616498346938825071388224442673466772538915315523592214988041019714165258888918640108714982902335770937373329316434020491879669663353669087116331094738363107999358782512149593201806355770055786875436497519895688049098705322186336611058686070712729568328271705022902216446128463024113580758611040894276096579162546749079869385745250296841813110215660724754584578903253822809209473377267221452850183696832443830472003346013194261636988077836709793724751722531510036199475122530732997256974038107383684259280418721044255110245667788305223915480965145170908601571892852648130686344039698552661851193059664090887468859654408837287066471457095955468872401896701397819689727626379879383190993251852063504540809995899187952450637510247533966038859447703081985184777714878104357240885710274880264033934513184422085181679011248867955252138510118708647278709845820878296265886592230629271220734608354155842032384959400773207941596459027289072121717892084660574370937797309517256692202971022216834880612558662700994831346318390483480670917499628849957658272859350380007262040411031023195478697684016832253044089572263507618322192911315625514254635673601140839614808883761211862812620860629792697588990043770691420513871206265654551271779012097253061597387081963538765638838958388491888098113050751978516731453073756011523539836324462259625509405831365929920462576958262252242744443957733685096316608754407345505463131608555971077108129257441299115190590303050361602518404164906887078232052317658584740730805976081955816312854991877905174406602445565576160271092088007211898479085575277870835383843904106484924825829881393876223285906773553390444285042057697961635793800889717732237441197526067069214026550990453493349443315679202931894399451795277330539299657146019894527365007330480733646306413825097946411295214764266489324184376460158960209338151276329695909666690821232020505031455879161517775689907274492350376287820020329108155209848767558744360573512989259817142983487962102083360422684894818299788345550125151407148923955709347919078402993267403523474646813201011682698397022216620192997502295585436415999268635572448092708660598998889752626373959140669290824827666602974449414093752893676268612379254838110729585799431422683484714960422967069673433973583347254238992123107703971051789306533596612554290225718401978885484002512201849130660826614030461634264465184721302251431756079240718430560842145849635706135446769150031042358172263249650826306114845500028362164040872841767253864941576123234711562015524977493798826258213959260689030813086637608333248723092184072667269384158774220968567874718308159603287577062070059487864084879267541177838973419000106399696899114384665106112596738563780476159530023660456647773014668478942450003360734613712520264718552929546948900702292989086725883822969170470296561758080510312469136677366892377402156538255370021792892100557824721544024585376550536541660748973445294665053266482845497226543017012017714454300474361147974432186480874657836612905174881965203325333009900671705020768168628085505463688013046786830691465129688625136354996637199707984810548020392333567724615571437264837437645822001625149671951143916292268501116988286552121590528036940047542523985388771309627494745017448143102359081892658024075506975672649831364600909890479035471824873235345609274389039579797802631690514475872841878249912334785371018239049129690005288319602875768594940526132463510378334029750469086786344145166573461135537061880370095754699755570884730885794625270279941999482512727842338480154548398694396802309711409575494706614454507389888406540301057031079234202634495473334144352028995446727233536384401983029594287134047943097163427717635653445652966613734767769836958815613786420729541000492342609980080922118776821813409485320127131225380446182565094826073604283779157020039299341462162720700169471887673382932386411448704788838243181868308251837192385232490774244982957641486241287810393114475806767537094298755646430884757855281644724840794678358533443559088744829213952811857194171669421213135301102779413609028305386234116418340148250186875110008973714825609450238625347473988360900230630304410843816739276237165949557425430530414524382710154812663717879534737037752815612467062788498384228331261728691667235079666434385857463663833177095629932337640832689447104656809502047335411807737642737695440009199970672977536703650197723364201343394717822769424920056908466546106477351577430016859110280413602951096101882990531193724376533664313480708686220142844537625382755348240741471117549588635485786778882525562092148636884775154617360050406428995232032920982835949927792020009847320847319307942915319771177470215895179404511460909631140102771829996880354959982031195613901804802419188332478029259729263769876397408763384388743729602149220214277312595813568422359533553480099538279359576231522619148550023179860212016228850058870242751509417890383527667708964117141319969329626279006511124867422650599928868622137262418750410914466608856606816256961598169905175735937927862764133310790261722045891164369563710586546999581403505741701086504122638382260343085474751948557798541741613509255387566349651986440654565406655849927128056502436729152004296057204027939650717340199339360417232240548032290984931638722684151640335532606516744540356822605131589648594650306771276350954746930782044294236395932470738411183013632491452756633077843136279886389849327170112885026198715025711847521586348040970454525585716994621310868541906686798763940887680522793822713708672782658829161701665470624497776883386608699009212228865337235062696806816165744791625291087952221453005323690434772621941820706913854614950386606173723990765754975605555304142709803945149383438906391015859234833095605921833659903349769460411381632107087654685493987842054254780528155866770430573953327176898839392848691617337797740316367084070189240330570920313595666078047264363120219329086162962024168016485426671743214026306983611008919216902131979995204737504131896439999591132146146875427140393571574817481301902554372180625507724020446794132838158819610520393925095502430090392236200978837390505890946622338047345892599772552687150937723405824992220307298669467712444555102956025191366583329569646096234254069449255574439119610757510357583037327841030609252977892886391409917550001146055957298354046096149915852362969358734406238274070829972567273724972008135805971919722490667345010575890276838238801954172067680286295026018234456317687559591774443800597031485433833676165534686508321993667497139454456847259988659538731914412651932815735503797721342902524295970302281426126189839519371971530646722981511235563657828458954076798064417036048434169644075114481082146138650193115800818259226793710444861268278513522976559723152223627186354492663117361712028351665831751620237377082949713454888385435830318278951297416815498101047018922372979722776694610992176759010949042567329621346282828987514793383991646794532563244357088203032585389729310679568986488577403537673886852042422875846802916944180717890319965793856721070323603353577757233137814528537901875033450115184243353157354088253718965973382138674523634030844962661643001906680917178378857156251566188396678763397019260991037336148881534334203748642839676825651582944713213998693013300198315818659408708893460394599487050122863401125757249726211557920177124072352574885999952911885418066588550268299335319483851098479533914699513430023167023743403089153746027662685198517349829420561812356247386783934078121666748388537803807993331060515628876604332195923833346049728820349864387696980114844578504762494610459064179033148965234590402073978056136728807649521004222421904631910810183838864587667071662742566438575092612597598869971471285798016313894810001178241301989930377869878231137971074300875032012754051499563463745097194267554197297640495643047909155423517329749053790173145090375303523778161597334738816025409652676433792173689669139597756209347374082694525026964087269812656474169600366069654260060467488062230969861166281652278176824405720232684286625721033468126321995980410122516775823735573040273541954744725296724887929933590236244511608837706641414972095653869886766634585584050906158827699823168636109933279751037971388538091609881554945511775643431558278622395749368479803130032119290957467549419232073183279395997532622347227342933010304131846727147932485286708201937911125763522445322132303085426654552680345865301177169874397368928880292171549656580795764239869511799193593607684795285140184986900473851034718561784056968983043228597620668921179070988576971758873623560608352410906289414676983504978397777617671529604050078241114866827948450841113586062336523960486192185413183118521119477018767296306987797410152464947376421394526233000812941141740069261128531096934557463152932266935672451317432255101630338691605887924660519943333606180603758004017471323728403909757326116316699074994261306688276663918254820655656662755665817219752088575907558619553064367323043165579327460259949894256979602760785352479050890013762715392784882236773300402211144954457404307509141712902523990676120692644613762597613007860392550295410067708718548093225988447659979953806398931400866639274081017026441673437526153626601869742126789479364479828459778905492920113338766544328586608184916309209409847078006134384648678908241004797832609244025933906774151885139972752717071181904526995833985155933784473293275685875332081780179331714624456666167761581753067301305634917631517736105485014644677407810985585839546608422845950868272591245553211080035868061272250582464935427673742714850792016672701750526891138229034883982772396629931276495208669672660732196403480099608191271607696177705231758372233494426874808891288594218467416021620108926190937112308803875866496324422999656109776130678794934069395449195571558005511738754698821159286529371721950515363346756953334705608773735178187025640571580881096309679501504276458919741800208776450731960367030686292524541691713006695910828274225017847684125256803596105245051921943315838139875095368109850195519409601906638766852865848576006494270085170086339535320856285710560789199694408732257741945230185597251509254520399248053263924493616863392768818289364113857959889210853819439782997145140553179909029942429737360811310082828335693417797060273234478336653035891684894123915845993017379660996848639698653403241402975401762279191421079611183236468703316812819864319736354071210619735789201462835715291563009890089368424780037224466302760014006851198810535877854270306773998706936141054375446891052446262575818799258955856105664735500407717582296592572119779747909706481239750029560983129887248138775232523650738536741887159551265489628594343411050295065227280232858689011747981979847050916741715122629067359740390436854987556340157893529253629199035124686278382313651937721564850264493459541089988795509958274849053063922679424588340179715676511493027510266163143503901013317947975108564270411124222815365479904473967622839402804804662161646351143819421168493180224095540201276170019447671309282289824034070988560933035382750149021329956585564419288421693610800541955866167495165812849004231173830478994037849487784600016510369373140190945578214416400147575244985673811562561305708342660337753390475880313917354265455499214961286475793946255188990490739065795608963947745457665027381680801370609388738872898604485826040436000620607918550800203023994539432631223770940542099565382364123521254113287113037659747596598518130629881117314171814274120667253381881841501563154065802959187386278984046197691205442161997165754365025675517916175730334588274159587200422118369310698313659521949867378481960598812306093221688682064408451311439348911311104011785637747037258453187482587215462764104580058121269875482010789833271438698911640978218326098378278360896512086556467952538115111443512118835966075823356315870663499231080616262990326700936434276651947814173007686322063622654267280696975804998384637301485796308454335536004061927829952621789785419325244036081772344260591101972477159238645048433244589515231628758916033970522755736219154047577541099884950937523738561414557530029616462143169683799225806621353563506581048631026663517679542221613008912377450969970727803050796359390027375294773157015175612938698437827369769965759656318684622040730329308605330872681411543643829875871367163855817740546646248794479790770865715811460243530519109852895777105135108532569532981887365782896233126499731038413876688874903882668290828089855578846626975953972980672932051740648492978571657557006395974607962957132090670497981385929946621715886850583549907351721289956705383607348266092026038350057924414912078259137024823988212836406494673655656117042087605390252511763850023396138693883566971573231402499038483221315140702555427525808042619740578572075373387018866675411385167441932893853264719868659513286594546023644205561933759480925644304258881958723698903840403899893543436932482792377755415478691114114851164991665586343604793435766187378968744169612039825049993851385065543290804481095035623020871442947521243263544056303041711562565102853634694561659052340811023712824616479376546692533050168627497692790283083876305625001487179679248201237383441905796275862042238026991527728174357900756292993680693225851099323894524544188370151822318570698612014809673357484372131266140644047475467066166579202687898703071401915256833210710625777796748362968344622562538219408417317409330243461828982858051360288471628503521598922814245666655661158749842503854647332326994816631905518582523828207905685108711999376633524872434599419432484757442527691075102746560656300916745586724938093909749137309028613642250154860394182617003703936996317196318788680577938371543571029482814122124498025370519194898397965272437399927092562097057047638158389046826686401165896025782131052875519357377511365949421563593514817993735916377080554553059303719875318675045814724818924449624736593044235710128317865437367346330552650485377920369053753894411185441193299066525535922589070462385046111320007044857796287282668669147835400042331400240223231472609088300985243020573104627004545147483202269372400229050209445959204228254002061577111687544109919139825140372736222176544384259769098650235868407347214556172432408519504912186229686667413660577433694446267483048806220062420742341300206766827581699563665569487198464733538415080056108800047459824593990251650757245836744932518888597834420563690739971565480298971234422694646404913181086414928927395306939894577568022094796145358144057065336924918473933235124031506477571222079030144387014470748354137767410427882362571722265028642322131517029505283559612914791839434130651781294441380347844188753274419375778459633241152970102073914232795618493214485628908843759278021231021110056718672271042492148226958104951800414072739752005411248438151171791378768950991813955437318331153056593305865926985506411947119420044536706095806527548547776809376770425887140162790317603162814096789278154261190787705642960763365593252227318124785366163731206265457565870819967985400463448574862728160722341026661584148622523730675216800882914740663843008430403144596053753654983957997591044192653038144467765299215655445231781594618981066449417474058828943525733991819459350689283307305374948044800031149585352686405234300450151243578598639436690684142895558666944737936906231793806803505143969008153549296930164440698649656915383932315515170550314196258191863916374086545569098910485560873357013479592633820660828157043285054514868840252742033963751048909094812139173370704592535522995883526692316511322164975341459526227639179052819098922084867169551617722437032660207669919704089416293456858766093157538017858151341281142288119280531042947569151912906665092344296743756055737271479413390658514770504042769760308753115615753611486570584065061363435205347021251154670694367568858006052444410886975275342832405704295360394907050082772119254872842807612659221976833148758886954518658405703709944051465274952449449397151491263475860340732856391693420414498056797144770118422998440153037457764535014840263305641765206476901318992343804787057780622334169927779041900916484742871620959931138445324962419162952107626570020694794592829670411367460803994604097025089499942586502799648489732030124828348937353071543678925180515705636848031429789001475097054029323156151238366449114461761308813426502066124730476513042281668293792392971963517155466434951083507173113351267255972103857675302932003301060165308976007157356662853590199775348326426742813389653392500399844030759383127382365151835141861889063300330356178370063161320746449484145333393935800771715646164679629891712709283989843082676589602537092220124383809182529152698582620174690400161609273692799772913472740354440112722394247842536769105378508239994316886963717887212131178802161109576978779614113487715386541470968743219571663690426836315442671372630198494046432843261239748005984706079924593327180504698611220316408978377229070505814471242781652990197241220981853913798893882610325155323062825519654482140576581638240189137898223606801331917001577977898027400792016724573724868468884866444918714906492357299173138427780326683138133444680098654771803464726923903824734610794405277306922939024529153372943922725522909209039810518468632703139980299042313651785040926569594642141297092037218109689093748146836325413111273290254581983062665919956658130946103137455412775693369622491043516201583294337476292084611250421297132559006171102151047763349354404029197553364011904649535028171746756833624448470651759807199309991054759393303561462681032984736493226061835325489370767858496144441588660292715820388894683523711498109511790055407628419419741473516816246261041287535704716311570529758796859682563984057199892344163043665975754692186026025557404736180552548761448574346616953058110173528979185684395052031161990537565325911636631517114112646694409707368154223327226376984893976300049422986189830979003811568618147492414112299745899965926422078463052208566537616705571899273743893346445478532689770749313685628670103622552643593139760765884807044844743212319476921082435629860225048864861458158476324084177551212864258049307645470585699492029065601978114255077681116502331251126193056917673793383273453694101473521048222633272983888647619693587095035014347153772818699303942504849791689603764380539263927056895267130387270439129840608391131142018217386445554917793088785164418852371855690773271349641185953153052305077897396114708632510985918487466682743522871086367984563545401474399253048274620448099919981147709822566093172870099444534150798325142361617304378791625603569415338233330332337484878663607313125315781164477407705742199985888214036297748508690952887022319737540037753371425844139212889094811675838536335306764339096146526808452886312419587527407322219980114055316413331342612748457377186857446057504603117745288274621476482558504232475995544987288883678692070385858646455130259584198690120297802163593118081077172541377714136438529394385235210946180965634483715307197664591022968468635147423514766279385448156101577393924990140698257339890164719131509281617062339052275287061470648533005783511988140344588840818880692325318199075924067161441655850085966950938230746994373387002930538956293182140949707887291187441741464545514471552975446119755500617153965663258925596965784894289783375279139599346955813952423188954371332009708369082050060732100570244041630742049151006104735490953962602612231046018107976816579351103230362812596192997607647533708899197372790506483538540046054156336160454967934297660895618836889297801389371690894770143115722880430676688628260507846877094051469062746345141867932099594286197268049132597120454185944102490480155141505338933599339334781207889671347871012644428215329315170002271112956090931602940905474113900065152926701391711415379074559643869771027173265986280816888449266070843779459626918844617934161534855217406738960754629306328333253364399650801883807808862332542724040776357487197631445040153778618319708975798471124251714200413090153821627259563965574754876640052128834683905233086561853919985532516311969069259256523203633502087034167620649203581116875159294872207342436439564668909411968834739003345291212782236171921974727990179853420641352296828561181351765723120572052870057246683387872578061628715275686912650590637592731618046456896248086362904310840919403688602990913255234904399617192254237959193290160755026877880719685178111731847845781546837048439618775411443910898053176050379955335559074739209889407599699428794176185627974210481874428487390392466099506897842621898991175775563063640037862791821607975873364613882006407749422264538638640100667089956219975170433909119890548747727664133965110317263588221134765732461698939820327361268367058041145730529524482382896746688970293293693760031889270396410073093845475353714005525994761545154928931426751080546971016311534908426737806991738676259528109665728139502462114372411427728359361623613969342484795505537255448016030562323356865922561135316693999501568908988334021010165608309552512965335339486871218769249719240001332758434385442313466721500188929774098730640286394351074645385739913366163487671248770023973471969595264559404633645575775889902802919690697637852959334291103093985729925518714468229497366691589705685514709905200681094807794392258775138381311351475213106704323943748831851664997851776634537388187210903631860103205319783896316419620512643693700689254977515558370251963600505762977469887896063879946968644474049400597115811463661308104851522222443617275889187021374523406639497609389632119286123423343257438521095824261583748195677198257829443583137123482298940121851401465224539653880504378575276637879704698789128924978830837527933759984256814971232204581336273683763346291380361688463013532074382148901733412690205228469801405042484950096206601801646707970837218952592845739670073946429645360622065004918161746223130101186803930282111810376360496739664611562646828002929803000731399504830314942727868958677924464088666937391950415269341415784706022766298523910428564294355413973502175983660322045876416698185676508312999976211428849611365415091479452768765277315982198138794361320988118649696685709561361836899932695178247157925378584816857915852142360902879359896671327888801333823229919032824046652004699020478509786084800094375588317801994886443270067976797961148714666916757322786598415881395763628512710402642604681056923731445929665107420850740939783451521096115906579182220262949022398189644019559533561540690644219982219847284963813792081239142228292767752449528551149779861974474511754726316881928820740815847308341111269775201502861351209990626537672307761708506624238559091133323068859786678430321872025207562956459465563259278342568697838803465162209470655144016085453325699849945809368474342924489944715471280939520294190432661648262378865640663901629092339972095028061392572569521723954419902509573936458617357010381137275765488342725965412287358655127924938623744136424034538633781144312653640626680259947398249973260822664366087868811331404728939058553645241022905013456938522648680165236046459514330831504886884201012096390816848784893375723212264241407980637621818930006275677973844055570866044073517513724014016354427614378667608681367679195364896933499190510812762092121336029208849509160645227772052858062185012862204064354583376220153019025455178062209479520515078897639464135502745678284586851607496023386187528563607547808831450900760250971252822895134602384224008332694303024087329673754916635298620672944225793948336706963267002055879836787608301164276131772832329386671026248017970556581484831629839398478931149892497502718190587364922859101073123437123789931297387188357746872058539604196191964010059617806160957857577858049270925659680667813212139378095457949194498006408126416286360700718872687959414444552751241136493819505309508191648028966257594525866470420553284124109549081213396479658187496985550649767170012301929265846724681945895567241388339467339944606405007798564215766495685243856132964143127301336080788760705293943878075817446178176395771211663579446241929756125021009710674697049934983832676835962355314463764077809477467017822550770168182219158577217778712889935668179098052961553052015454269525625779504697774862218504453855452592225254608577117457879480464465927078738424552997613897127005979887107941889800044048805568233629634518278000170699984779104127120889132115515866898165658475812803490166860189478258182641681505013310666552027345005322753207473750749397478972343335959952290747425032113929142596627851197581283278224045485737141856381116796442594721103065281191258904327212013448719659167624350665319745725099549197186780498654327124558263995462251314877291268552120583340596373447983670382174237566123940812283467440065648070633225883363393331094034033054498600364482887382738962704899027885028925112481733065971881418375142553893326370494945179671600940432121819466016219628356298855951721902699621132143866111943097731435348888661045209555411517443719554367289580094235291945890671015648756015054988766065755428621423409745779732574594807146516143790356662141813993573912697237940620966777188180951750871403747731796652607024152510455589926989160395525398296843650260598293198884981298171354875454453045758731655026677492486764480361759499066344449036124071515238187850122410997513187406881105940854519868954873668221890830904262364211697980464414375926343852640056181020310732692994818982371450858826152887843483289418120130696480391589212409432304623201378759138675209024938260086607305332672818799296123938102992699995168906574154339849655056254875343560458604568318858254540235564229747341341025836839173839106876064729289725254373008796444473703673891208386655492710496479229218063444238491047191900317609443515207357941839681554446833124492464786895822063470460186500113413503490823978005496031639438052656791710944500771481471823382425368275456939945829802592566397594805900177103542838297996260062626975092647915594959550607959722747977829426699411380018706758367000183168826680974921329781769770812708406739242987331492197052652976968063759459663775025090396363854733764513195763196423146797676076947277603305988944426521325791778405189640142295179127420629810007745047204455964154520551299561376168434259871127921986733388175881130036193424196723709874584181315218007153520740817204873228395954830022857837277467728070426306894272230952802875586497603553599442267908981913588138937350041924415743532732185727710316092471986594293318850637549970358674463161573760750450932727620844945503921737975767971750141086883087973312862034759211518985882471333409494171305129778728863139787024853682234583845866368691208517443327906450762361831550883592636775879706777418146707345011739736464325320215470859792916921284955458930914801676840842321416461403786233608423861021735928792601344121888943411460269761200370396240080786466329222642516850010833936941728310825391863738197151686050888710466138724851142842651208722216833987725593985513869370694864733152406383883974143856650101652999459166270780400872815794179110577246143307077827978427930352836890167756646966901084972792475969506404994062809225337193007148248198588509395479360217768914916288080889369433982215517837386418371284400361547524637995336947127569182165489212358101683421788833834405588965130883421372678611424782440744871129097929892554164803701251034995443481210979201433012927229574195920478581434767010681209156116973975548195603293527849219096591574256599030585486866755028074781822533139900139058455133436462965743373526159045578732796574988757700532379691119058515085785838214248766282790908626861613478929416075752957502426435441682851090187853996403831949252402963380908621663569761812657609889612620297712838357396025382844932701555714497173471307497071328573679721758482665585649949571112409325899126894518780841051626746708343319299192597033178391285351196918316723904011619967315776203712348859693151255227413393748894831286646964662973286403147163080079603396681662559033699464962946515473879829433039435701665953174991958974180934895960425451426479995167524582091425651273811218598269568114488769699554733145907997296149647024866216287585957098208137588507515265195800973618982315539906158486588815008103790047331944919009480631386275369229472596504016527110557102567291859776813027526698486974992786400463748987526512527630370408459904591720907825878452635365696058314552475086597747635022762673948429244379636973125299790110461864672898055979037555313722062402403178750711253659001254712144270520102448570184207891051061984706987768134004413227137044977032587428574531442765582259356947813014500964848242228840921594908777832896896345114820962819912329896227356136158609372943583323330565770306189206761217988534565158087440694155296917206539626308301272006578865529234736269416457637424405871900798733759710679865248955286796272240618042951744064392952206195150350994399030144526843145985535478120468055645399306110614850488342703511050943766541174365855922018982368031198238777181537615613738813554530681093154205365883595704368281359961367033887468571965549307288054066921178771449075117934231813126482810705147448164918376380740352113747243723616533851769045049785590596296345653723444284144700932950900157386947030775026239735618878118251796155611019315099450006301366987539016346441754196641554565914299406826066343699345116483819424505050513141464886308287240275012883684387351767528691675907213535730594723415469458216932936793149962389880224125278926507317753797576518525347674720996302303846951976216889983090046738515495284737874821264285028949333457080192719974395272207875481720465928032802652350454865021373336575985831404177426967625570751321069104730399354358351597790680754957582458706571033564050100645238301043274337267834526949055941928554760800689195145823791765201985979692351675138472812693171196877303645921366307830224003518853513725822517393519822275602507216817572982262590828212848956471217597769539227510975849709861658141454642484418986805124768294769544020115159811806589544333158944636330029117041269838388437557239677249147559170505571250703167488847058288944866506575578679924643081269239532286718083554261955322110330567473065735042566427645859619321272004689189981412630088986581278971629795586483040939933945217961876846037145456206833770743913347364265188219422614205613097281697806384735232459314418122835891292528809965563939273241624958521934956264831154318674903984628160438785918180688683192190463172531523768517834262139751686449132527627192205610272341998716370225485701953463769765333699213121127500133497971615253722430087536371578859826679922844177360524777754359965474422554960534051215383804853322921814898372289706213191610983850185324668243765970915373664581998273190561517392353847230955477252643655061413867897057873928164572600734866515888261794346907109120693606598587296293328114545230170852096401550378964689656164977719925452276351217083282543646019538810333195458619734834843479964060145536199398578007863537923779645056369976607232055358911959993385125317959937838995777699456550292082200671384755988043206673195885285237098790853097173102066373652355925322057798979369713589336265362779031452419694280469242456774316817623559241012721415387506662908793647648863465699818575437898235323088721255042170493437686044416273006822556720869089755651628871706057792135152381084268640447939011361074028937537285449646017006632981033204716198972392240725910575074293720110942915949616205106957712112451515318452455031720531969807510008379308999602074368124674480676918654305424376619346997578558112033820559776694000610105033167527238264735241123266571444419301391725338134496844530199678048003730137096483919590880801714294928371572746714956769680712675094714215565297170319013188778285170580013437323830481144684953458599869868036314033719742458000997769973828445641113060018914201570200712719027815416068969693998199418192730147039997838370732306993217572386483999646264788444236114066976142532199674504854962727265595203176331736562517981567783659804098848602315403932289324116225090682248110390595576509624000217287638393889093784369420785129429903680757194377380598077414412849741536657449001831917486431849210613534243608400081904246168630572599788623948157425557817264985117450014810450932300298122244433194743304721816106851437924499738090089575127953553177032403722393122964453829768786939515651796606303126264567313592934776444229269161225786230096684867881383737015477258338418567055285764786078102563032683769502016592630910291649206539625853180441621938154280839450049533207988329689276493908958562869397488762554855676335384293917370747897690428440115346086023229657740787832957204920509882552321729260063448548458095838817519461843948204697759493482850503437063210645426107038130891602977954141658888287736895146443993811628439496593590977224161227045374901579428979846506161647569580987575519048785110322595429738519680607607371646993887364674951087070967671517494871936333738706965712396284848425108348762530591286173090302164724077709199077252321642287054629435004703759127585429693773579874631167378882985913735587541832403989977701689176235758576684089588591701617334531555946094267886365720297672199042755663081505590358204500096205522852743457247773705759245333791367530270548957364598836471462852781361156353662294433491105759571725647339750058236580882822077148243523455463023674237260224268855718739507056695755106164782812343088973647277189904961349633133731588741919447433705684867099085993904686998643569838043862125219326289385780748908792822202669109122850850434767596736701003543563126834926426044505036790295871619531353963476605586153861729869834844647272031545554649506693306148996610700231549006375092797417285388300549275051674875615126499372932580218563547350010119101120981207513477898805025146366469705721764142940918709866710271095266666426941958884641028993222747101783739880970437236575609808217107180907964711452049300788580815940626088538534889961201983048266488555568870667913560739877027657097339741750097354950325522971284127257346906993785753932937346522628269813602249887317808232495724661924610255884472059004235172653647842687255690757959057930584866085920052463780671769351930242204258365680171050689796025750789833159273949963383921122450155275021128390157170410847825206411261772645065889037862551845633575668826443124810888918351496939686764966394673875657535166221619042786891893854559922537068350724745102275666881367079377741240532779236554836397177520226027393745811277102185271469857002905748400805665273083090092907982507197629201844805997638901334846516268099034247613581123381206099509987147789987767115824754955950837870718389505762097667759737212332472981652045056120081976946660962570901544527718640168773193874429487944360031218649608367871491868611861991607698595904746654122879947782805840459102214086469119646489431709048893739520533064185468377380385106411827261361656405226878397743624188682106201680331695167606809855237966699356178682073450835559069265732939959410547254821558281693908302649271147764228479502920228249197860777866117314322004268643249814465766213582176271782119047377484023826285739544253184938273766635188263285696285909194412800592330068332187821907150731638639094738913689000480104905783174173958751119720492403445266070424394312411481650324507606460473597170292085280286699318667365024003317778485527043323805577055515095237724865884071126517443324779251984593750012503783641586198170400364967184890798107606183758898176970292159202276961358152924448210233589214683602263338934093323177794793460726974468401523877949917880410117470924266875227049268898048215159144855000355042253820120715231497581548880298971264345276530319806873368124270648360430087705069741197395671824268151627746426497541624352602653296663798718096909410378614527333613261588062473548800156374270861674836031935320557692154381134965738468214892932709759561837060276507199944871205578220280887774538190049199152863308868194561628674115567234579362437989513014049589167350534136489520480119812260762408699164083197785313764292620049412792477663783929182003783406263035898127211707854700216412386252347980119318721939195009895938228065017169756613962792315640756610716709436445703642661663579852214031882956796588297961042199016490293109247360810684600019764477878548192459070445306346124377008772006554647511565589395976964675422034938099783003046605581112244145039928567621597107238855990920652706349541460228484176529224237553955772045796781763246876808865578574003973487904310567021913133463079305718828292430122433743275395509348640698406446239830989062325955739201721671124631268791429383778027381606355228648322799757204329962328745636945815521170290665489388375456189200997947331254906263755245653261333893578538381465768806120974779579609589247382698581099012663029929329124150518562953378159239217785279568512117150486292612819971307323987030941833804765312077418676684228153405160876399186703086484581216382423501694728451816500465506987066652899920332549331127709203127876700730290306596987054605535436312430383468207171243189760493357640290084621244063595258761422846711875396173713582456342632159434936805366673917119843575851506486722608991203966424407951408474322798503975720154580272425731054271658174586915497861599822544735856684648382502398762063055718997101236163648415987660819676943611498188388818365636920387640853017931750589936961996280769020105902184203921688844447920992095956372218682517198756716885878894780966084388891435235041114554379275617299250495665716515687918629076700332540611170704987120281212547403930972192064083299604816561537928578265861005507253863434221937494960234366946337330527266331086226868478995421313392692752504156632395231938820801085704941285525767353291735803114155147259719284380781577433039308474447703946847667028599376745527084830368371868895520732727642988075799671288721442198627311218142871704695426434743519891841195926731887970847081020565250454617920198455721301307432208365259228385978343364138420946423654073137316960362188694498989846872134162490819106254268454421955765675294230677560659117336240785143666054416597144961322246412645544821327690249116122765347604339254479238831676352179778387998981637750305783774975419903735659376121122346936049473954465250855461392586358082052971461287981075758182177177393057211414509055970054143224451825883758015188793313614546176551857631096894496916414550080989609626532776421226085989715306219096327354104641310818186641989715301607691819741300325179141764879562668838675206490936318070987176673660024152138662548615914532827738361057649038785934378073067264859537961700673898179529610731082871459382764528255012641866368211493775251879049752616380751577582969625689789096368335524998479062468909581691608006974425255990200078021172030688679902317370443380635329845624049408810390879030958714383626898711432071180385309249046278371867688336360729520729943459435653547736451061385071980645380335884480201262958696429542914376933477879890697241481143850012761802853755637349840199647574134365092172568020970836854498945848275416451844292622015374753639254048827597490445055706831783044721880888634270151130027129410936679472928126277346344633845957101675469133529081017834410435701093216340037577280935914018503522629884442402005691791241870821355212368703960185077705859169796959026852237549314411474733553364605840679259297827548381569353744267668676524933460087329227245034408287548037642924060989423495663670484370445067871813222705606342035581268036739255525301640742505480350512604609740584370008640830584160462696950646390576933421628943702683333920228790660211556607041569893492043478614026662335178903377178789033387124174354970576794353881989649640396769820490081921583319054168026826890963516111412617510367128643167675337348445514913305520155138816464326897623235972690617213488460760298144300785238358030758204203865167565930030944822067222625017150253184658881603764885713075050012903819202242607386447772536387050593120619105762811032735799547529018383232335947367150111181160422980225233534737328589938325359699134285539254246213965713071782636073812307242471693500679727027615942548986698870337100755673437221843224010843572794828181516656774789898227417224556755377670138430694883819009712597016103954079396689598945979355759110819802623237591499166332964269615315547662239068165557946432401797799623672259856450459410508133839026132742564108955384946783734853145500958249610754552972256091183426412574817760332503783511742815643680162486517343737454991999782077311536252068379960959118154943268344356275087309522461376040006539664058822109558382751972501202426248915727548365292261394692141203243193032111934904345228246922625913021702323044912506850051383004923483441883680376211417226977887799837600961811545402316216419652056566159340309826981507029750708204220034703065087771713972573950662351269150103010166198530169840479778445087472798262920735423873392488110903411645394669917643121892330387963339896449820227621131767263038340435394147825814513275635137996615411900676670351024534857739578960501276590646376817594130196771770792596037561964383665128568277334475196851650914104004773838304850995626048711370119326230034723127097190870894236572765329895252425429453059127132143074582267763626504414895074734442093819902981770511025451395498055042002212572307163985284447570942385149703637659515414323679993912189984717250249865257212034075286720134036535102153258631457709997430001678811821820806318947912163218971139421765020365092192888366662742311516540599222411855778949575319406287170054638809406641719694850106453434890610940325398861710126473516414400318052801593805691916266495819519544125630375994820615955474966597003745617202015980585312771741879237654198998121764873547808421569295353479515855462074922743139271623603941800396960060842513382200405455521920805637893987184255328194888537456963461157255314767864856745786981969407697481903006408922714680277975081376953298053566220723495420213167939393978334515942254733714184613289080338688793210808850420574793850494636826970601730940917034330609508829126582064862017342636534590461636197857764579023295807058663308960356094366042888023562000382519060779596729472422875911356436353617335805964162910787112360777785200019511940964519268939991680269491607670483832232236943970098176869922483708052045624482794140573604834564837665822527211649187492174412218952381305385431339049943631491670063527972372572535375192186859908818572131599277870918168463239155207121330807976802330064743721581227483189265138897697812504890948443482066017412574838289565187826791858897573434326913678040019639766308830404482243826555215006828895083647976251111898923580959752983144276273455123037854838815526150601805421432194992630209788557795105011767849825582107531814205376255949459514113302984415621844331982177006786398467256813208051084287305266009015830120601091689098689689755503544687365326017925189101607169230780350690502943101628353494014448254708286149239670792711475885377717403655704525095905566277768714798648309866096792008114480409590097295477689469064202732005423604945634799249284866538063318458868672889919135579461083451347100301929150459711317174301043231460920701850988143519964169062798852873262924962017512838431728894049493633434479210842321453144259531819568956266501819633135111682807615749933590679760597900345164754522934282343852901168700777664009606471649423831703658238968135290707756297815925588501668270043056079002573842624861702727008185247987670506583284861282872116262916094942484526795172636891185055870011399157864875295488562746057132004220487899641244867220318400401863820311718892155050736699187385651035563958738046546334394025844085647031226944278795048393469810301934819793308528810730578075637032469746162260586855603736368842264197408748609865739564350454107195546019575825830619944240692033897894254198220142471137363497383289977341985752886018169467230481596627441707441993109125114044798022418542497568798311303893007028698769351063131423729064437214939307325916845677640235708343767040144485490488010542159526991917597952590199361101406263670815907259394128733909876842244244750559766933597697946931322049188190986449484802226938558922000311814847903193255678874567305159947628460867105299655321850026770480037174759222524798525998125659424932031565624741813526407189001236663264661588401312472282948215996146822097904635844675944115673265225906702554400842677843033062794384745157814049611668273004376566091863408221068665461993329813038711681280787890564149759429805783175197787136705212238989002173167945110527872148827915481858000727470942234949093979984623035043070283835059283399748758236647713878416728008201630583608988603201933377547468786353281282797129880272575033793826391648989473037457939057872917728333721039323857105564038521306526349922891232337604627115328698828250765822479933037181896815446984591408606583778169621997319231098339415072636557656671108601909171370252488289949911426702137311882990966788180204003501580678260986248627583599261022347435327412920289204313583170018648444345109311404664975562008457871099585699830188083608565145973003455358942583561621928811696117345586294581962745824694569296957522983717863100344295972514460300439513398492228553460863327797930299440732148468892011922641425980656182030533419112047946493914958700341968243583558394593932207168975667697704797891455839323474221159063432657197253491937616819122227047779791073989242282788271235058211219065625683056035624455637452603944362047420539423860631015816165690222530896392563640644336625974297290573398284598186561397594141973834463448990556792965158645908363510281475907599137594315102534889097542273973586699348476901484650986613017782476687747650823431389468287695812467400287866553359516545043273559089071832288923442929522022699539664181411325229981158803301567308281189750091539575912536322190904841399675804854245249406107999582958491466784305415111014518983696664701660167782295792318070973167171064517043092186793314101119722150189815110918884571031931646224287030225229045317265148227541647693416792748357434623854091806427831730896340515898085817277954343817268873047186830673744995159064619989753741824181094712926383498860335130274784860137345975782386662985992805799335678906363376988426123782509477194274225753173739690214762630469079614434583808370534188650247949269494205933088665864883986722617101867313001319086745439245778260594061520873490484270424506029423491051575493436251662815033807913285688407955132062593073692140557507676406409578721441247534726604971898390786776668295490479119294426861968444343605945483800037979261657817596062295901583115286517135480613051045774328645027451281184154943857242431592901581075276825173957610445354100141157913895484315632732738036421609507767334279911485183584767967242292155157397486403387894738955461223074758489426536548956578717773284450888454433428113856245195347833681306265216125792308214912204930446621983993189613232355372567247269375456747982960383989046320148279913906405267170419938276240991750676329866730410223966186876072154626061678320133437757842785930969010552839528412667392313062766547644306168938526299998370827600043105420032021744096565327847006928185695843968674307375613612867982878159381358558568583903667671322518664021989985809574134985824286914205490986741313235178840263621089090707705557317762519429795547942336868175875176373484439218116493285905694827438104970530695459904326780808403804589045091393478411050086127114974465077981856084095508998515391086015260785314763363122771045541371570623279053147698347507979452859112416365480874589229563520638693740692971808266022025490767740611825070591120539203149880293406292108087129209554263515832655626132449373021579060514458078824601486111333041483330231746500743088999857232151704452002845016952039508474365395433829879330223085910479104141646268045755751761007443267922106392362433701410193271799563821657902793673459533331419437345225595771211817991285120828101382250102674542081593913726954406553383717060049823893097813732493430749368039714787137112205052015500829817771507284152769112906192678776661330251979795093809779683502357413749801114756703692810703429959374197059592806499755790654782058126938079923038587623845171075098972127138548557356555295589266739073263000025327072678267653302988519707669431606703309975531875084881376384847478911022291969022164076530048660362339736513029672510830971143402634373425400109808180467035829457914853326650231719794476246805888671875960161058325537123810264470418004412933170547766909414401057010336364655343340629221330454285124908702121789304113099346840884134775845106844513445140903472665637330689676003586403738192073276009631884287237057124987664537310334953822970096987602735603156834009033863599741571319954285901391142444183513874081306630733639975786257040826676663439149827927821625773186353414679653205036318328015768108576924036243389593542250785922626666626625261369634092233096625815727110490292978732991247475436131822281196691617338666470128734397243889527016779132975325343873267926034882996714312923658147952057451450977620579728668725530748111465591624367708741222794104315334431402364218860519553641460164301433073950378849971859958651951877239548802670407399993965435065525317950604334680363306142940936421889034300171407818093054625823635362164439073872498481306877896442838251675356921057248218173308456328497307706999094980105491066192436418475611718604383852518860423823231707885462282996327607570768764849703979475808750528730780919067149737289465447640846573544285460864908053310287339347503364292497557426219259035006776249451055380659308571541137458320668994967762533782535408989856018331983840444504019270160651004106812532984393507675644293354306327315310717196160712242131529414829151501448191181756334088970604752179000089821786774584889880332059113529321952881548266529344495817728303937548159140386862187085546305411239235737125185145719357501214968325526220195917753465424574101933460702227415166938633968942513905167830941203708135490661198384314454538382858693107603241636583540440221093842280864535201642388225450419268142902762952909651300767849544532903963117205358182403205703236649301916978966846077043634431204831193481679066028030270327209465171251504359381307914818762426449074638337675653405524917298392886038623387976098048488720468314204965792546041689352115324667485584216821664896837511595484073222753793580452383829314813150802058851953510936349336610270464156447951598184110349620023151020536929311387072069425560465920843890455395903547498314787102338791639788244339999648116079790169473633684962468716434714190161766509622916013338280001252142287104724290995160230999096660797683478070974860711387787327453060377749744712171161527137535903029369361220742918339933755978538419226270565489843259898712633937789595647663390735535895951760397492551725554583829694718334019196493920655036349388984804831612655051007268475232281536623570213989976113546373382775616648594869384800573250840058225867174441194869980816013650026196761834871974922670458147641827127620063172347570587506240320753288221733532154109369035825785666731129051141316918731576633257252248523863093940746942010077146994716126601126153826426467728303055931990276639450600828394252137650877118150656441774429927064364862175366119161789875250680300933870179080738622181362100908042405854829621847745513294538275892050389331168131278747977561428091377949288838111410388627999592361346468961107005660279762201886924672077538608986247759118587036575982345947681411723029221478377761818262159173879638960986276470881948842382669959584696417696349525001551717557110586826668032628145140282074844821801792418820376380684988111890798584345426741244257960601391815478505970366976396653957054382449178799964700671773062057100813979141680707021988623596844019602399149583656238938842207134403990929817278122145188829014734097541724482410960181824274200421972464250740058427771881460590939281335023140988020186210693463135135454405703116540336637652801619933196818059259368088172937835355882676781472015110494998288931050180086837674015907813394571371704283894981972537620013175510677968450242142704459122366028940780947968867827942927422794016777916193221349205995300818167209806430920016354402115077703879211065729083303149929386408216082768533906558382033704514893716304481927164082476562602085935403222462525559109230511540681721875080787673797019993811643213380889258894307404362595090344005066669069790211061236278747588536942349894315915984062303855211836055180347836667643259999535729405273412391603266466373190899648818699416321219591720624736332609324142902360056811449079557719202135105734994672512155312979935314178212520346519218575490682011932770587056636486360041397661108745557640172356329033927737981534466241276713747703599652187661638922054918239463245703458091070511500078035892782709056633220138456399532896104274882400955036341837911733296295980977567653814670876407323699183786768767162085692164747653523989123451575421592085723328977889229812576154063864019066400160362590327575244298089946997998727757895996831089524954192476305853407285191312466559365512066111109490265846617253803771563460429300751639806895423904786599681522976204891593672485986729910348223024213531654210087429376499869007812696281519818976459076726493003365459180148194658944439369864082139393137953620373466912707650088461398491399715282609574179221155625557891097275852698151870782217464098015679272824882360176217952552483461468478671229588657666811870749977132912054336361237765867009002722991505032469965500071774821712092121867155966410297434743134248211743928921500412490215022799487853757865431334633169553124780608335220840284728222224782582698936927793116409599759737620514948928618258195015543417416890214110865088361813968400168573409432762981812242617601330707715525309421810340638044150347519570314100419843489270990704005039352691331336357459008979492283770129091928430044857084069460989408824188186473451073522613708634911839148438316479403146777162714555833331860110997676245358305077973489893746673666859783829622388682730884102911811953359400458892287960143280334895274233496669416246389053516982899150077025987513925873812100404641179134301687460341612535564384703756234301474957653767707571052326502206477975749986299572201585550780768881857678735307018872226518878693681341826491167508727517299195586366832894132916380209420077047964847273049795049417855528627216253044323698879934816184526979166014863954219099541236843790332192703348357019340894360038049206865184244314205732820980703403814564188610624159447937148681210080030467648509717082897773264060668475932715333700104758400238127018354495701730342621847406958689641905625079284180120423441255392877421572025942697765925724172524537369031304143800425553698712486603455951971816843931260602988401204464747109777798265216158377801634894303120560901739776253498104960250515894914076227587198716158150688692371677561291132951642724590096526795774368268955277717921374483630878324675147330396685677768337628215491220830626466593221879824914004497069114558678392911808143361644299944012962510648224918048543460913313111911222564571046584069880889865658635706664737560973189352647214247132020275840167207317340367417241620535408272454438056757632888895833145470608116351420330459895138850210723224839928016310595418445582759482417464859071995739598170820510879602444929731827324614468597533015945519976174168267250908942895522785744379760119540982601598376702541036234845836229381200362188768108854068672932666500441469056182443123664993255700379801458214912087635888961101041548038291802646168913332382345587341651729713177426898530056408072414877901496448363459607076352320642215181691187298543913301191402876688108917432734210738738136145184249181667266398348788586112117137264404896957037800979636700433768240776336626710316684673918491120420097977320626864333185636453186637207441544594817213616358358667497043492053863288708538941094101308776833495091519345712754752901435368085983315316323966536695290878034435310059068289205983482852319936913721738509257433612650766195639323681887589124537375072491028190770375503528371240054469237843486389708600865920002224986995198826849462369648901867536561884576310204629500225687805757975253040439747152173477459069239793987491371581328929927645715919730424230280615489578118920866312994816703668771597265892055791406889820368891106461063012063455119949285813891819901024569576387169531203615033173946332990620417693425794511427931085360925040943878100783628597116830464040277065940502695877284296203372378568474501843220439291076200806179359298305756618217247685599924315605958698798466119031555832954404676305584106100848991624391954825782557586170899974228402620751832334328911035175950275010453590027288157606269728335354642211282978343835305054117036285382063035464296256369267117721433308997282218662588824485512271347369653667580440406539171759222927395254368328287502893794547930562727247966026888239738117703970571549519585234986961908748971006959563964851059811846293126881766696815637511983099626465010073994728523883421100605941297002022789255105173703069670767849809498845762099961365820151695234058828934406840436236903105784473108282535999334651403652862009955959409826665104519782510325995957194494594188787112253727093812364876982142117892567875080735714463297611625304827121831041969761603434783939312130519240459218798737156155611593470399475415017289424864375190568400101522274573734180193115482202999861572733053171465717453560860463478768830605710380695031676422798899117499295362604271626195758609818667705349393931798658328877345361583862420559159924476881618894728383868429729802593105256539106572483937513284729473064884003704121157663938089259487956710646284060576775273706393730271602635228433567335329396207445100834063454814142003993480718058186893705029155935471494325195888287893058027792800108808294704898115771224189796748956455115769165568424078090402498953613584207934813503501214289814629003522246273423340829605821426317044294516619511610776410519801424616043562794935890264508134196780434254385854406488675736456977670008967995735164583695313925848235510320289129954552974497017100491546743025172754902010208800617270113092657323753605631108223171806705155977484792221715096717367126106447142256413050935811275468526311125197070058606559599410755182059337886766261865833218233569206715647924580580343543788754800710097453199903792395130575917514254421647583037219029528582982496277860860011301742240076864215117890797634796148503582079961702298347586810022115397759457923211925512515556776169023512930596003561079680713035133850491584517972970800319165357965117009953723502479208715880115426721411058114007223622784947030438758719858752794682211925836395314993212504101758867278002290683527573096470014516407973442579068984593551220170729350894442748255139253401150700351408808049847623342743656331376328936138410508514197103405467345692546581162887732785267189797060152221715397477516286852960199311183211739151478331623166412309847440235453395308855340706820639900523833946050800041242489109647034459144732089667134569899375855019243035425330360821007968300941167331331961098032514455393578099275097370955017357373438848904664913384572625441154053501172896972225726099704514363289631827171931304524155289556839051126698550488578031735095441800439485889134278112245290355802747270690305150896192109482250036389665333229321428990935117666974168701891852356347994320390178808565833792078529313148487439478323703391728835506040364672969953060384334818626840059262134343197650651766394205128580289684596068205241200948799649127683464323199873024027641824670975110723679405801210962904392312978194772624491655142285092751368631898413323325464941202466326977395401869157195713909886826926310393945111453011848868667896395549903298064377702137434668371832780021688614501125084734204657460766475990324522633858324913211396373464385258914991392675138746512014536369537878721663808327885037472974886454911948287140935986066145165814890330910527442693704649594507960176567653998949087972454364585359544576311610954563808946088500135404932834923844672192728894556464006764470536573649405856960193647388317290330100137118132159993690477065740211044237626959508307815876283805973772633722555303404685552416476628680814570725385877155270260972730502371974515335769486801179996086958453989807633028298823978962130132173679587928120550449607366615617589210296855448778093710784997991249884951993232353581400386861367109459676823085108502395752221208591829348012155846928277523520781924809831713432270015951009095099126305223495654635829395939364517125981088094936765975826641421749370427252107775637869818176668684468183987463352987495297991387299536318560548989221863320632434226548300381782992045459263613299572537021929556369495540165152094709452003870994143818793119154099329470253635484938924588259560222095114273741429332140171916486427929954723685818334499658546038926041554810399552904389460505878241113283345033469389465297746985101679122490002767278484043549215511498138536630978479936617352964013697691058233764456855365688790555302684437894071940292626999714657734259244645389802889360312775944458475627360659162900926833919944937769252067783855628521645471807942173650490172081424080984984096182533447021598063010586766160209123455443153531190840536010671612372488198187851578089149820574376689273039390614047385623792651578418313839473012293405139897616506444591253581631080339778107141933441308496782240366380787728514525858533557084479927543696832631755458153221732260594529343134169138459791167080703409975449063263041605220060234917354775848474317203354270741396353194149281911420457458748345655783978926863748253279478220056221886886927398122616107634608885622496573987053921688970045647661710315455499324108695261787538308648191409185049009518355925028996959785696031054982103722393529870177088432209158965941519270813470634685722928399351906119970109595679088037656054169953066931291904506250058485388201852191082218388133648868083700535382088861429052495758030199286481864400558181902333035095761672545910386777850399889361850358665748566312410487837093229508209747308773106878977662134460807325143053727346940382441961123864168248497560114029231710452992130931166796844906400346637399199544383027947007059218031561874659372048787610267090035494570702200068031871371839675630378686963571523615754093874955621667829077884384870118024530673481051328189371452014990563523487495015383636055114654617019553238476041404789035233246462941365993539142491728014159171807295295476717088646623180769190763034228047140252739062476136784553351531069125797926591837353373277755484719458322457108433098500789101713034042258177911169526202296087895161720825024710416286330890687250442711338184398708729967128055554737153406424618996934608870471993738842017195733747352977689263615428869234499454815528180150456438068451196262687717174321262782248700121385156474428327443895055041754266496785994516428352217855787868740962994077555094176334309859758213941503009280460047903922569971981619807985749324032461753685347792350742799771208803498996631332576411498979547580005945563557891814459454080976040983386601116351203495759796706961477340326391505297948560796379529548343905731522854239671253257472439585083098575266464923063047655199884291697623272435163704214600800569778051389614675032494982778984193489633425998906891577609860278094124865814824009519737199427267251157293551887965211594088471568419900494754363939929098681492710086857849335352913193805450682619097033531979210165224325187287669379995873750190122704130005738342892202391278002022055943882021262268773722888501355809772552480616070474035121054440965497366698883240982003638661895128115703652232644862986425453847064135488408442397436806988571304070333411537273001071392621987006637011277577489332143775664344789144676275229240902096899458906059963674211108620716075321503376511657650135794098003213515597407472644444158021160435230820238051447679895367461582500127605882466256926391523700964001452219692703626034084431720054427487061767934389201565417523740551907056991721686133295524080499823189365395199849795118057320044661760844469493131169804723752346497324975492154135825695078430045722551761943688159785710882327600840435368607977776023820057263859030200016126406597835740352134971734870691832904015238089243662161012148557677220059638738485307732223933523555341122384221978599332076738630814291910415592478668077766971710519796922892103577769942603540288828532923340155640760615862954544190958163362890226173332825668818951844356300722445240678365893621127697088857694652774632368590989817840730198984955441686206274465315198462109973928975218148553269445570037441523146412977888249995271487786332661609250553545919132724844152180085512485836179620798408793579428912781354608158012113697389671597111684790231780065023712083974596176944588432013810633924517033495107064465840546888221816259353843920253125496840970221131135856658985507642485894501384240105086477425566039690467362190941909112385551880172426072419509479185951199708961609777835743512234217593373626114260233144281422020477434169770492796269762533093882304674834991896640747833042566329931441749282637029881852799574076594586526564873389151417260065440067921060594863769970087111722416735314287510837925311387736456558829774781063322243533853339477171373187134927139138894813808734468373585304320193633169038043315904506489399793643512721510663489926447712462273894081507396996268364468631912780368248459831697702091207337944440440039265860561094100994862444532212277728995560609079175965273375724813825965928293119119484087626585514753230234137875461116885500203889028633855761005102955712612560434441408274528466606462317401127876161977507735800374366809934631588710050966728555318455352823176386656914501347487721471448851082884133968074872366395240933099844917210233341198220654748106830986120533306130146902553083942557246891879499767310657827407066221372483606082437850584039743812841531155678491925566415297234507630189699522658255673734132152879489665064425940634819657760679633526112297791055081001471357018843507979499977425761518784766708671085515527442528548667270619025395267179788136467521269791328409379536691733733788902663054636592484649184561562413323562829882980776952976846887498056907191810988304081014915210181381870281744976617589736003854356466725695652547543556970379023387755698777303444196636419328962874576346253779418830656845772452982778336181843606003976623596672591268776537738633213357487299593217753501518365276499127619760936217560799358316590409752704468303063537132008238877627538538396500678477260031397486288404197783596923057331715150223189006680051852362971515148224818952996350040289496674412172596316944708840080714043491575238486661099352631880028122694984427144926647041028351270505515284458353241827844737811384690271894364955626841586704523504759581608092478722062257032706767123804768041840923288965773758267378355137649087702002410048481252768280208620880045694855126137902619194100819972790710500381883716467610094017543107451981895919631853954082401144945864502134281068879252515550505053921375977990671822011542317761689748215664084095812532989611806997167464740856143636491506763219313564917224950374812652992763367480669020979671637512901496358251300790239685235611843540245794537239637897245259402584652097475030668034848910953968140552627140371362470636468931461473442219638836330525332428199994267732765803832746617497882572663646873952892382606621000059600520131120263487599677172200657743043471151025550830719489290432772983705381891936967531079020111288324954268172580347886355847299147415689798079890987543998560685499200490796791992459927187271368214421091549195841833340824459064253183443404140596333940815323897719686843118155195836806462481918438081079412061114424637451806316172393637827844814799009555651386366300913043021070039644850446480142258433477101990636486813510801128886613702829069625165018374053565379790029604817555436120911834620577121839090833403782542500176951860725016731937331155169929928996936669596164902163608020854385433142818507710244895490834207693368354345185498718685131508346531416249901277140291283680758011785142641186086854191414239637708785928188398202979605421752733300850259445051045075932675561592042291790821654650875512334684997916418729780095584208642448763362587843706238791285280269431154933873010945571159258354609441534407484480131801078858217786388583092766914130609098748486884253509590018766162858459282500313338653188761234916617730140582067924602093790624029459165288553407908549642790025199348891977967347165433715474788647856860472460734068062214644223996622590365983773415026697527505811029713054002737278915517792598259822891065889566299721984887959810639549851919959953920555528933579696652524315437266582376334040279589204375757271706791825184916709792591641970037628218928699413347819883740982196577403439437472054560176052097071616288680967018216816424554477978654795754485441244591223049421467100097836201930780923830596105155800402260565407931514001826111524903244697577760722506283636883818604813513881596720296732209566147624953048574749526059977466089604804379196494926742669197764038188728668923548446117334143850675444013385450083321158898113623404277656986820200170810249530518513289007631061628127068162903103775200411822675471327172574028912506724792396303414789593342088903937386232414379833950902540587065927048903610205019449754107560167022723235157895581100505909119917559043611577783957679617347451587424927186787112716971378986770550529444932448173905830610741990958119789465211887927732714573390627544876019231846009924351934599517477777779967851728415227909323625727600498123299406766982801578689729715368392513728488384365955230645223180089734099017984463025458032489586079745680717848472546721985942384893056570003841092198596754407592207668151323244782718459416114784295374903665959886786513534985538247596279407351421642601075446152969995680044124411352283558801405435272577462827791952017025709884331464097381534387031602113509167305345035938014161760805646169811947091489959276528352480436323692951700241757626617956157465928119716096551066757814846819545648384736593961266580981241311829621720626791867310591963704022479949081149816740315780745132826882793686966935314833002593513339252834427219280072111039267869276435461983173741144790890835779366576304412968398987872918546222665484601102289498104372217993360113413111619465935564319545553579948782401045793097344744151002001530795896188333709032926699551908410712612434648498449676491688661478826074648535774468766568506482940156338392969247157036808367183869534097846559466134046320322175415418774703124279378352366830734086020464589875948378596587480481175545422515396890053137164339986395489937360171737541613538700567777636892400069149645290848528552880610516329356216424155303451723996932048836588736241289197005415535080253606514731298350003879847794635844882266441754065707655236490591293029944160239702608015212451150779326354497382384415853427037468666364245914001801565582626596418353654705549046201965015469943118403485699817069179201436862624667931242073684324562806668410499550942568784635130994463462210813728499488599446981089308934341060111560896972580040084843361149695973559746367133548461266402826901861142282079771487310133616508052034948708412643579570487699769737431175102494443104826875447164400061794318438959051823095493194246402888043684764278071376861129913629895175394365279122796904407817594661111984333104271344271655196518208940817707795304697875950115447895580204941489513420704760623608212141963317001832731652961808267139742581608086112372302156869846437115217438039068171293201361998526153756123062487199526250068596473988266830317722489081480294447187151981792081554259070046244594845577594509817177026910067210858379987489355606412149587669433346320916653433479753745372591094159527970042694182696098890524710231605259015873775357049051735732660695721631192212169736591483718409307567272668045304007563023134613293906024325014038154176619034094048466295763410182502209932969901758083587839959609962099759834555326409976284989832662105506043951216132683070932722000895068244143862906308407960615759009933942262384519151310917406856151047375882797968277515482408854814026087421884631840320558108417018169250715968540132440409318283451310823397706429503889266180282439423840435812245124725067350976526649446479190434629853077020892264049268916926134051384007443077499101909591277410188862039008806855084038538457708170217003538996696292306980880726971313407885035663280728307127540440126290169124742317969731903157015624199877907187121158950192687636527730219348190504504166873362515423948625228889468820310930932965318289995736517938280604805515719417023458963369948974222756815809512318092105585659476173934676911258982568540674369002502488082804837276489583397557149049558973022071256737941717004179644982719396811164287912790177274580459052326436792784814397061372220723331577247057861081518687598091360224708255837195138371186792845455677415479003455724583698139999278838750791793621039143571718838214813876834240519822871959615016642825658105732568974142759005348226779230006391721265381279679733282870283232168910943124162837126445110335633495301994921732566642031720254909789539887879733016326386101507240556757153982981774693424932583717360773365166563093151954015861899520363088593956645999311526390621126553402806309112188671969519389888973822814341906179493789539681542499194398015398848259890370586655744192592320023444268547380025562898894726521905473449774847687313122837382378135060583293828986582985666721294394814516535815104566118766580607130765402724409382931300403853111177006901817667627368699309410130047499730317395148596591229941338870272694834249748596782405367748043288563359558245625032641520194454089524566253954292199684188865657068770949163689554942737730359445949641379574175101555700736989042875360388205955673193709526943697795902981021826260189803962303713642759954615446339689432461819842568639917596975970825903594734279846210386761592834959223611990756692403442592033913710075198896896927276902415937751348351160752300829866372105138455563893670895050653547272762696924988895312094120815240952862037277735035151963962876676508037021985372063032444929038650251627841626715543359727203729765647114898602698797732829221579611992932846337953556172350239347415172538706962125907045580883294926579599322293852590948668448166757522904328627432676885683944230147244700061517895296493556863368712941902950683571167175462811074189632130536577681872689255141251538949118877147365332724893708285360289063807486157796718944294973334039481609052704393397756123301082039723954066456590826930446042764706724233950193112473432130755588096015373539534106689703036878889911331398949912329006805697796819676101400895820521176432795565619912744652889488677605260873743301098684031817652225059191270769485027932482168367813875403843159262531008447841462127674015869956162605803087099499839673298590073947193393058705032298134055066055616510623779987505215561949876933309790389352320585190603048278582998658275385830829705836500542917869779454711061893441922718369293562278424918540853422847347773028048349001320731891119789620738224772828989398558569576161773984543871414004436239615204671127194580724034480358326447160951109288645932562160504865971619284043696834119889661741302169666456947083533363340416998217488696657482392147394279963506960221321805653051909684034617947956923191896686612904576290124050431422534100325864498507427925737798369040890286574067566520919436344061383235858678960004229888759810029363045322278352168760585788263780488501089636414192183481211011690969380594992603832758674751021359599202664673939290406569129174720165245970977669746192355010913470188728074896958099254619087532267640443335961679060057826376742227584400477315062391147685761902698881602636117556371609749374860733537625540153289066906018802356926204330012472165978229390705225388063984144476421533752646028817871467637108095247948299941336078172748919774795704652772860833708001611407920440210018014528285128200227810444260992225502601622919284259344334812701929799820059538465576598199220966808057544110482839666657397376990149901086127781701702244072729045824057063426396211955539890873621157968029059184188339018371380317879488196954078115454532807135836617021782296507939855518089225825385042159644858511985041452735709721950959851189136757404862876891033135828308140753682421224313029317238039652251600205918177418568695517222323485283500078129496548478499646416895474071544779517405473086777914120882742273801287221653699539562983032298052960076413049230347219972714885352849901518962881708801214230704232560049689132652946549641509463214304597462742275794573129351798968548540088036030187007101954530866416643566347665248622302802710777970769193769879870344100611724074297268708747073958545951083209672655500199412481529569491417109811986951118074947875044861735268959106456760539333146020743645612227882957024779503939983827885664051378641427694582425551044555980707085384221507287544786949052470731625192388090234049211686228637372090777781572555470095175629579825904580953068309727367413697473229132520499049376360298501381307255155163733103197887429150677923167856158952542779244425700745053979519057277965685384325847541147810448448109144103871284770773819866205315698524810216915305377181228142575390853775536661373503430515536436842144011595629796855785859927592965395528680657890330287197042390027293363623881731090188571496282656528459973669917204142209744070804091957716019573801924398223297032101741340387471465522251602976049720099415775708190123712535715269143641864192134432215493841358571279264755812755957708377057417872790664669178358629703156237070683294847354497644559975695102843541260254236363904631317473634099005725601647716488043957260531689457249004330135853050480173430034681532379553387652302318368272886256417196163783490634122364883191624602936681505150506911335208142658006679258728690319529014386540247077084992339280549535424551594382496212466658185507221515162245869598871025658107326508554484799606032345927765058725753318271631075221760967861829997716857271031411098029350855123408660979179921829309715150494934397037634090963610392552612139174037704883956497401905123501223360256375052947026936442757764022282197181074723136955097647582615720316656189914148632435143111224464517980616581809229590279316884145422889299394305389033195174296002722543618417736745100543281880369714278527594520040140558298979739613506723889903111069694890045450615218823140290213919833148506820008178305728866904977417445403601798013774968917832083569160600353373919486282170827997965387634996188161616259816799976450759996556899374534464202341763421990714751436305200855440635336638555182310253908957603295451595929513223074623813109608800663983226088841314460256803398498462733012932556016899120489060847409554555774000721857908837365555166538637967153689159826228596091142105207446870633081874066328848711169044955928247480056826156564146299140965840552058072422494952670678142478904337131995505071829362748293663406127007499833056488684076207153838471835391703351876799272224477533838357886180382640452031822573744658571848466341173318557534320773875285893373719165000650161407753802911170684409273976367983265046183473084899297544019437449120156519667833426954262270912564811443077292888377058498206395889123391889822817000818425384574948321527349482279838612141707587300773689898245608132607970086514029269683826531846235006394203299472009304494766693060038034647746035527721992327161448771819316344608820149594911659535769755156968740573916213362600895649775375202175761334747836289567265315167220870310524599866792077775093159951901436528857663779135658199362146373313510944020000457492675250913623424642514925115597115233314377783495051252764365490638938932246513668460760703208387548729288311748490493014733721086890068928721961229480729293607741316635138750342463808290065543726554008050022148307888339019074395063966987824774516789637007478969773847011965371920769496064313943138502189291629394322978681698063740579043032339438235647931389953583353379504158720132794152935936247131436842308979548002085413176488834965455356663093335544585491032931227005546799644546287507169104825912608863592880784079885681901130470743249869438371659806087577599697556932131341121103687970236675289441490822212631415900927657722621920992871230395692432374286975289956417170588005594878997631269013125913072693955480648759286397406361359945682586711695586311886268622265376468963311146461701759898292319318602659274067986024865096271210621591550163467167125242012267695225182355444308974004276429836954322089492385952988038675505103870191622951522672732295733707209087081986174561293901141002919253607243923498162457475544719946375384136673982093066475246540863461755844736808732321056959414161234780556429825531001269195769480532791973804522707838141566395818762690029945465359559293609545345449492334320982315307558040383712984604386641724281672142609128417979864713538240084456009378509265326126901917549781756163775218107205744589381054078389545625765818859014986686902393640212929285544123457942694114697998177533727926816369444962329503858253329263439750014008787829363980292756984591662692886429608856979773037796789303523154326259171016143723197395580119634503428346716585859989095595867073509890144840925748911305858977245771723570480160486099257009681472390961137164915868330910443765046510801007952821341329608644577303409491906246979308416811888191091947452010247201353369702726589706502961620938859698061548404384684923107831937171658976018701585917537155273485232092851768146419808103429766728079813172091843845604847288301794261098154769295506772281635457738231942454973604347381967698482318784148331203828120247709803624383620917233068870354699659612788626996839064323659155506066442304209333994808095033157026267748893442335435257976187386280204755623239430985739671011528368105485449401035770836666543656651704376509637860221029932800644397198123113497263980335537068489103096433766623584817430795520146493731712414439695601212545055281942695122324267091457868847875306729711317098442447156238430290317121193916831408223432873545154522616407064592632310971614573946034269304701970383054793330428049345070706640768336374099961368189655031782069246905728111204814369319282878734934185244534707726267508213822639333741486838229067917301462204441328194515156444348493208969964638016524822238798734317196120932962058482608972361998751459349975573095789778098410178842008505583109034977781316604356689811984429072423149173211797785824521611609962558057582378699401610334473031231644292855435208088223795620314998787437002130647984964186804081705774291364777068433161121810076348023648378482178547984732248094930050175748620749453236613375882740169950934594433167097314053828820716372514039644537493242347250072385822989947172695290101511456728238228920668011356280416835605436031127103998331653587950991674450970495629626176778811169665955533410860432017964146550522898455960931580652094591585551348031290646895118377101429190696726666889903063473203016165888152451278951103490517558250470069326951114496580618098806875633594491714297936504997060246300299565678408134325110794135160714076501858373923419406495992784507656343606235038326773079681844150962951625619713530201146852483676517865721353351862764331599387567898928935496584418280906561347357701838113446349264757014483326182571341725697341591701602180592466285146860926307953077666455105232830848145893650101713626526504076080301293617592009093300078248670136845988309281955687214035187775585860022149794940384792631120371367335741875464432647788129368232876321163915008158412356267614956068785122383738895375817249163484122031848809980413103165718509273060359481854916875687579379603552634095064020018795700713931294810655773073553736246302823186625383936127394429718525504546836909976448512789325656347966666287493932129419591115357405628981366072821202116789847202059338510799844747997593600123816849325769903442537265089156313188499165930826561557194541394370275632795627868935481329894663302817628411089591018409666598212390516777451739503437350810008118561280162850491109011505223524926130502053242744312478058135069882533982640943889922374156875053159715374031339035316862009405673948897816116405490383708314970171679703383210098113523487040613787789527344036718869341939974363078848215922204057354378172940171391186704087881427157358356894309279294776573102686315171262814431319187305675462291924918318412697612951049420704186644718458712420930153941060018475430751913226831015418220362604493250797476936604765466337857886030809517602457153646040706821760715921597890421077183535678431243157733837901026140964801811294833702975675169092313500207837246290391331728393294696266455596675789962246705113807555632346623303157584822026294941883732116251870340196194727751988475231810219238896979689179043004923053364180978586878076656545737478446497762328459083772056610373965875698204668753028328101376464153757536616998952926004206938351785469696744290671974904369782669379992132281837709140591294502957639445998712318575790256105270586103720088329903256182688722731679837515387983929482307023155998741541770003812346040621623230030399833039101758295722373232260400675879724872950537496607887884793232912621774737962112992581174074017122589760958471721038982249568773731478772996643091560243729099806995555887736037798057939773932920647149694399373917820816650294553164351913064534531895829461064748385919963372989800865044667627805837662779430697536027227896589124035008420273928538768600142743310928113669184258264419286259638036510778352666108140529597430031422369847189974413874954708331407789277088610075487501760093814505508567637842974837403847367437873889425017608637920173662651833584747242668444903496794105076140550519437447603528921940033608891678833867720691807198367053074082001532186998152828279146909410634794851122638199108288895601863716670437680449387972097075376840527670056676559892687224264678460235071501043828906518914258230775515348294689561135968415009436877950648070399792695434938194144117766227038205234077649023025715071856933248358954078644038338363640977879366645172762423844800170659738194353845315600399135956911356217238792741419877520570368674225017297365573873116291275358635991061503477139794287171967048254868585783227277319594715384817654598880240241708924699810804997922370846902766231225049039210638902089311752661803599629209603260506985876612972291512287239949350735519417185838998538913554102599505707806887292832435708828122927417515967002639621674079992776473591820686191882678888695658074729994807900200262034619885535415250886714835974105402813480024680570537815260064112811910862423797624065611449010900385185044394656143349671614762588252847605084940787714086510788549883900489401848004329943860653681171176911131518965717931846989321419339085232158290940471541411390729937288304403792945349214149014036621967040758444050192262569979648087541808045788860508795699864486784314563702252869621769360381685729108575901275528109054940477713200483209179883810858917178799035701337636282604362912402874240409835250679452073538343812385994842377872280783049429000631812833284622120231228237860344260789904496326396049128464669377967401002231543130210732789412303869291614723732044999152195902635971959883239068584454066002449021236650706588323784937585540849938302490292539246998781302499665735513994815246113800828043002459784454281342898252914252230525939603400630547005703768418870591487563101306256561329715630918528475088770043447420436359403953205877730104386848891638659015880637307055083327677206736090454844611871360889222473062767454787053352925568947286464247888591416901133695231323766318423939113908494804325241401929115620755084336754254542734085827117379417033896123543100863448135157054599071347321135752320305829929615602097492932539944353903213880741056934735660847554542917336679900084778900328722569916666900741994340982373364782684564478121050402841470219443580324334586785003875948480564984867637221731944694926910619842693249135851476629624839405733580742646306468886865624405024985921522445718742939362018870177781484962392742760434778031793521413675636676876292861149753773694966964637008029242562813208793024294404586727142041416403211101221189696265800433590647098093339856833345461649703055422619151410248609818984725924057382857933912001190758994979180704487555030653999431201156064138146846060631194740812617064918243087212779925020282070425254901778790168081414211631887614480908795804829835616880680307267498433498031419790436778048342004174172438618592034195721967539523875858390026403256981477762382412717455497419545964067908355086047094975503589459850029281200881139207014214088691085407506829585116137285088851895479326357716418281682693105154515601856991512301327864202174484090059409958011080494207159957975288674619754487757682733310330564404649151459038293283268381488653871000495938913908332764584118300841545399935243349048814102666159076800826304198602438576672818120384494241746099190138428719101755248103136062528270672110650017105122528165395152680710708141913002884516492939206752664956358968375536629019451912215882216318731480997757942370498599877976706359775745995036151775023876911894630692925830738656082627253443450125210459293511552419882041221186629272771758413504355573290691099917503841931497834245935715253479399284032542006820533855659757374824540764184648747907290406638052381917106397962369112167791459880119802736721562433805959935276410295126686668925561465192434206575046121752301236113421590324629318539684574683443594133947691552663884962104809099337337363607849807262863420225029041785137523561711035399473678127743224424380015951432119917063138208414167364004645014080298369684758326185164573231354263930791991541116864278915646237007970331998538377853856639650134139187171281416793574771570342138341042001876870723242646489264366462960202914414663468306898988700810114320249701572580005009714938275458175409881098161098898704622167180650093386209214253925740354320464255656007967683186560562301596642640870228450992509102213945218495686545053889493938019357457824324141000372493280494757024327721887607513224316827492402627398185648554936345781901786194466249506382521191948294825906692665416107023064672625176857552977748143999384410830032843407146891383964020481658055250355857042394952324717318007480248228792873032522569445649715326922240776370678291245563030947622153631425468993042944470802564853264055681107634561090600664191633715017219566920154563026953104377495976685854423090845412386808527909197355620769099719098503486043496959841738511551125546172921867071830277508748223750280801493970973936446234583508062639740335193655303256143715052250806046971816161396217017835603929607348471326705218205722113356749357890703082345413022466165086112115037489667970453305976599053785030918340088450021365688231966337457188359617088879800433506465488400976800983559285044266136244695248137885397403350664243449300973050838576621755726693225587031655422916907502316128369833191824843586888877632300871829108081553976036491226149662820814164853498903019311695363613574173144382702610926801750954603455183383926189028612521507831133094017598206344895226651964375245109597742328563495275341868718156094433122679566911113395814747419549335213492011914969336286008647346500674350348950754960835648064247950298838349491657019555446127339047280441228943525199341083127362008516993032391064241785793585836571080006944773109778896868944020155759827432661297182205281471222552477384275876722522808423202065974019709265733832538753560911335097467995462342558237612718929926402006239436171256335614485604613517790198470469202050575512981572356598245668273696293930829604878817902767963688507807485078952337048701789227918269988958800389570730331343559448686368304185654834738075881554897382828027220206199017926252775469515700696041445160888976982038319476847719140213133646796587609340012169002400402205402214054272534355167062060948682908504592768999364959579382665395572384370639319558012337555374515713040366284594640745990466918422616628670953496819186136086494128854591298107882356367302187340437124662193612179045584544097559124118134985509500857327298059612365892607134461232543304992817090465688158543737416237758955688708760837222604491525360408612314292995154631909872555401380770488185614200989031909742344525420594486440309719424569164374027253447384177779531415756191803252625736408648478742699312440255564613576854995449561207522805233500745170217243242403386238382503855349430838178754769382795056863717147942826901225134267712244960636712850312296101253156667263372656629699155545642056739335843831366031571382293555491746206236635619536195140659081970310181810284152404690416708331972085810605323823709326934856444438695510124356575247083728248597243841880567362690865757525329410234437232839960497013714858468141513667957759790573943342234943558363940038911332623704887697152917526790591999852882988662409481609718815365034595233486707872094100714071814078031503895083818148658420480331631474262816045180965326476115213685975939817571064289940083751797160829372081730017631979241570972362291615056313860182684036729356147812982794515509547785489007612686938351200541856823118564904084753206683777411163590527915281983906933753957462856338693265397004391179980419162421315289541753265243328815333838099585624549868856997648601972684868661151532187471369305226532796086223916973425830596017618205372857493892746482458005771920810026932925647203051840440874760560446900526214310605623197496936733854489902339524472813083367996970079688526424022695240247397760812547561444820278735364865312625467277495574350738114662094965566109393294190626394212464749109652098676203961532670662384455616333838715325662134968047198811100610743510255536949299033462445828602552346829833541998388945580814958800036944020176058044537005265049403645446722381253111661460061994529114736466105433525316597567928213913364597791188152107949556605697917455955158821229137060485934445892794423742021377709239206274587536826898871446950924318242162651478594706550504015825085949073504205173897866771510009642185447598096459951920225331268025102057536709276072728992310039288830811903915901829779866478732229202603832065077036680544057402507368524997574339033722807990966919863665748157491451967176406271712846729562925291557717806731709237969588370963210547115008048296702133993999544883696715122632164655780371537465489737356002018008933962751443186356400848183550795631348239022003197155067149879196128941545768534407635563692558503968494369868345857455917004830428529683769323188742848907045853595713737005267565579536247379817316285709874291665105271330874830657555430239612920507680055143163413630312920170463486880778469181675107845582538218188976776599880606311717186094155672772735416346661864065265731459046602542102578546847158360639052589189535361289386714984861577287623139263543193864662314383486967027589100643238563533981592691670789348697995266317747944035199466700643024820292500426482933509423374226722026212583287179245071946414960831991029928136422508158409089229779295043336055801789261452786404600233375172868430079554246103922730451519590346641469272776335252834219422209577604748370826026960927309101117502134235254280110871045368316584354813536080078053043447176036545332465027875229167961994651455704279589837687528652085126440264020011247620525797010255278414868484182909279817312961630253054007048263983437426134472846191658876126187155970233777201076371289537946277963573981073945973513093206842758380979658799695083308249957954172231368620372352916961370374737433585502230354762740775197177698935124083197378721235010758426928898542619958086721950484812007988586154133918887605703278840792771109281855468589434216650107853449636710724391378378614091501379894309153068063520187771318924807232271381690732538223946426300111332496844908347980306781773695201824197307721222621596181497083329924818776604149164230260314587199158466852626297321927141737222794246837836097787176453736134125271880368636850470953855942770763748490016430793559495604091159236961826571268669015618103662491245545502763618873618330463421338899055624635729581339585412941758140646160735632918642817260756915903227396886957765074546983203458074955708582081236168378534882251373971644478140979726737076803230888427358282038993538925129616248403648307898889284622774462736660234535074969690019936605390654315259801741818373917192898850864779590902347065247534122026634617019559821749604651164369115789917961299239019005047148910562902547840405175856440128264144472124046114113779272530147725700539220932841285849859004589749315596853259094486948376398084124687231310032835217641932368731948553291818337932369698594015659140460813926372500755417553520259414352453007774014837180730532196001738963278896577583078069028167903504918623989490517831619010872253345927681424753896081641359388037623063155704137242702473381863232596938332214669367178937064400340132548254155068131698305597585635855575476107509177658003772361463909687492101079599655724820693125327475337132269614444476714812255392140235133758336587153420829974849595713508912909295621511357673671125787732198398111967419670654706849708251012161186459893842138715753417583368910661239072428131841869197117615381343097818438541801265705657076562704723604290544366689212687463793268666524425506787608142603220232941557744196534911742502252020772959235179303376693332794388566738028824947057845456742509899647396055212997052123133155775437370510021674405296638437056977694117242490279463172732039814991302005323858041017265626537882279747546606616354870152729873797455892536729035303914310133751616159381026886540965759880871299556751340244858965089281657655925927667281238784234962813416813472174393473048117634310490067357640090148130371707462994306576850027211398404080745695954210889049119253168999672132577270433591398520087683992846444345827974639309896619193490017440703960085323792987388020596200293184706298362650114142814616692202991370181849395106769955691172935518780171909380710449768020626014009650375522228746254143686071468849323971257359033244409358167293884159872593173544690414317487002879921811291507653643868535004733752658790175937767150796418663742405625649878180861032646364602947046738574392566667549796874696597880291047783282395921612572112060230422349230676790960992253299945523271080080205217342299727132354880862822308452889163129404707254895202085874850239603858404196676259773665171829591254649529327049228721298885592475146135636091850928772396478065846901542855430566163414673885404968189286773400867563635617593375852169429162460006577793219614993980467096902543015637196198185482573229390004747433974307255701251528168410504399301106047362082174094076065235071245445858146374370257433038279366585819082438625979007745089524353929169498631192168933452664488323362865605774655176873100171486151423816813786448591127327566801324881892520474123168939672319447171447417492051812865162411580977131758260800256243592451113822700294278266954562632804008289954957935165455049323314968999359712261372850165240242657856102583081887593818211479844964947619505561659890475588853387703304035395797914576951949671298268116896149947510546858869543742401913394756267306891953286760570623243623737807710978573739848540859572723175123691046514848723955851225491321661848490212392453270623551782182952981665488555634353137605451613865424538068903664437299524375154143844752666442765927630335564974494999951860613174484768010578618056863141840192438062659746400239010474716405127413729861298987435171937266478761807367928872688452556473693573119051113362286946196325548610090342851797031652843313699155365941440302683692777471290520927545145173510628007574414889786099908355822902573127623349785131494994341553760787967540528408784648438217085715183334903555589076144208190039661093546955414884835463240079591243769432859299132972731557271333120183573102757380542093720039728876593583753606353391283952390508356155751083494601783901819762141028118670629756343363921440917459049255369560354910312938892756533035183306192442427910484921527652513504353345468025669788640366255582229578709707408284792408552120284899743151946219936832024931799789374175465497532619129319377506839700198573203112689666270496685229865704218892145398963285662385574000634266256654382831461356468165360066916688561109700747112896026207034567221843017390696299157309785121148087595880450083665388769130097779893813013736166164477444682104553525662122473364088421748796784773763834941714464811254444261609704850595776989531795420698062972148096042640587806377378824300600135062741390662054397606558510408963857374715024222162486909124977635576752342441309671195154455981818566650204833711714154722244603594671143593998464142533699977146484961369207970783410746503249199799161210412369290080803819529585958941252816280724645773325607748258646421557357261308276125721526373239928991619226913887717677892668638702219746798729823990427362547255072827008547285609749867782451819089629446749435217173007854875935601265891154018604128129298818202513545581587985735476605589624146576529530524104778777920014853566777214910496144183602304221852820166109671436790418182265526628377451860357659525658860768901461621830586832868451127942525085398582747236145170726443724120572086683462629749634275334464448075373185859512424021196401751048138244182031089879582359270392411689078480754157726676205943376331130919956595224440128058599229805481080206609323163876716322342697231025127275709310316542434529913220904082275379030566522179491236777795456503698152516214217671115790974696788159479197366636516616977734550910748188063906419628964470247805815661160329895380240143236390947127597819718044462560454416908031816218095289036283009670344373424500217836740873930217566050860279018905058736372825007901831983166512528540850453928091435051849537887041860983241594397734474164212825170411711551085957619081281659146478318419626552781627135868483656432003705276013131235488336127176420072568396262402715428926225509706294358139426493913542762928819893803050274840033688255514250438477797005886111831717521034398553543328548299803665220098705566001224453675841163664294687736447908982786282273496806393205277420185226193628813122233838203466770067880591451310706794141733614426721074804853637223543086984448491213103694015883654276348127252923291802059663251180840232102613054376485364563126943919726311214822299452356913939610123609595101526509522430599178477630279485379937031491389985528699956248900417253582800005944095324903916451165688717461611283057372961458525399032610350980250424509940283537639399367871738287102230325114338098290120660036715598963510585214906414074342977697797426665809080936977740698517628136478681982379634710759683518391332765282354151049824144769987650501808640505063921735878551280786598902005409666917908396542981939291064142329893495340502178819625613131007978869711170825114116563063383991153214150728739748371436432316532617902539315138532764309889684100617385009208761699933975781697361672147262235599638781458902549803356059672581077028350526773970877804114595394535434759770957162330752436817505513651339305114407041611356610084805960346387421787684051440854541151548415482879176292709495654194710878089160725463962250786300693317811309031079669679044428098997370918233444446955216084624346525460098746516956455582324968982193419234205412060234575216620726342213685374615615734978312518103368395893504505997599721449659014722622620586983051116426248588983535344314766630498026824856269899317979219354368763259505636083608654015701199302822203638755890908945044944061930572562970262093524182481076163883596548937474926284267192195208277425625407712835393010670063671707251691134869253449232657004563385721540266055160786352384015803341669360299368506595986444991928037556478520393466622107198141908140272641174012656895569037850029803608250546362482450466354380935185948097844090850009994549507625741118967613310130977767879711485972774539735535058830817015043984833639100312358324367267927322880460274827972398666170630587173276407195817824691848865243012375984728402267636227304361704651557604303272833240292396286099515994439134828755299001816249811338944745997172192611966457007163344632230312549970705404944785495463153453735111241371456586906057276643184708471987844735982340302035934910803406579655110612119226077160928954651959956708581694012123570116686984950014562011541446924150314495040223205752194066353736715425136041288960855920300810653230933719261853413448691536405494382624841464741739769478149439223183466356105048228857076073928172521627583543409356563814138683380735328625044814723940397403990381309937028966954560885425756674994080817347469205211637464626767718095828098918540426134710185239706029731319920799908355187101861691342566509789794317725123662279653924594476316068604162011127162534399913770331929624436163632701410406727764835336287384947947221945161176148410768338297738088028293447747953936328825777716631863384047747001634345402611433869967986700695806305688812390301856554197732906327294011291607407550323336326769407209423285535494508723453102841216892879550692949433484019712706698736520207763275832915762080953225665177677900767642498238529033050549441059018117298098119372616197269741303844292102718814449328893002447350247209064156813384388841866669139687384153940031877765002357877123995529984487994462016285823276502061629915760267825186464474094724293211797022885010246898658262711726537072293911093839995052910354210154949790837389300707064574211691034175402739468389799103364326576111902351830456891738058806659099564304735125210987042023326136856842525162875009949999712407446958279044019986084210133109798850073505542129494949637905760547139416757523117541026475415912836175682943979798579774709310135937909263839998184369878390035055527302251174195636578215190452848189415823090316694205688338104953603536097509928867582640195108711489613260762614862520607556591504294970045601679164285873265338459872659036137965148290673941883029865029258627238650031287873418285351736234105282944286354291626436784701089374537065253703072311205504495691194940399823414506577688578895053054143374710454881957790499897573130341355938084112424892742838229486787985029961811844153206940675927740734369142226422773654579632905247028497959179585911903626215287205790286606774601977737700798912530772754622401746202514265726862181606345140500296377815255878753557358705807775744039598150249331551163402018826111042548184623656127608756391049361461812643038318702153850689756245669994951362224448763463919805405294336947644447398506811900618584468082015998123006906679851395093298982968987558036890373671138544312995208133503414230742498306978168815469790365594220541236530310492557646369100731091326755196107680271292896587440718838587906746243772487944974302597899619304438524650071885287339070685784217540452481442284310791922844322807475532046860045417680076446563791117678886026279693565480153325159007785431714636393009764172086421782484505118715841985578123611601070892823862964703260422038372987226422922799063133957907430766250897771928918851754825420261056945220986149044443274433385483689240141415702866388463567310128688560341326651317808985124262512651121680872836069132532571155009442878988964542818062651116621699819180711930215717138200158259580396308078109180542820607865367638733420105446798937939800263005303002423417452254766373982951877230128939115077977309475822070891581707664534540598331523650027609033904407122296365080383694324140479589138436240344584464773853157454245215311779331885662677771060492558053861769069599370007844474673806890665307695918209295758915818083875862652908396024078323470783130360572108352870840115102200655385463560729314642302882457705537406538818487329330366302929369794242301175453237997139283248547510854549413403750978749930646577573731923822381805426879437017910545855297299448326468033940739936462981097933161602455753965279129935246622433167482908256367597412107604439353870543064238711104110191585520957610724563962281685326833632184225502200132740811349925181731345305704642394123210836418601405065092603567018716028891338385127903141071039731683933254415725810697365591802095834400368008193857322836439491396537569131327543600646640561157834217281981343059453446363180223883286187580630014526297608441882229093379677710090380551061074162266498582477205143059927455991717155332866004719187018066594347027835622935851665623328823452400830284045601172956911527444848543185469607802020302031031508357372182343742828092631845113358746820469364250896618039242459627031320405336546714194713523645021373298066407026190699539374415596491548254330176349535258490172858506636360626566301864677217137157372752378266619969390950085714397260275865476515795401289592317938327778092552767694206127738829537104708852734374514850911561836868018425156769844371778466428793409837776046571331609185106466774362231078896914873810195275560140358009383758142731835965056073499671529811715661853757942483417083346201788482070146848156691628332931625156650810362202171611515288054152139383216807289000111824207511121892639174321312295255804031633890957192416096338961873652372067305921593218795832758798646783299195417779934563604985369506583366449186110241848603962008783736559570899293381748847575023264890367858266679437034884710838033704746867875259439178234454015447378104109616884907163875598861476966483664214444389404049701208050908096916010389962466087871817644480808225223672357511268022792261748753133475964241177750721375744244768630241628501006695050891718079328330332502209409261715946899759656443459376883883204096463319066806517195079865777964290277001822580504986097379106364493808022377237018105695505803869655135062267486557151304207345095605164065355676194261286029196752662100961283651630025598890785902272761818188406567189548628334196687294371533706519857801837070424540734783783251715895761119551799479422345156687334036269089891638029321302075084629829231889163561644543412398125461460690374967503668987787064221526059446390327851548175858469932229596497620341802998397763312433003508165599100881227153814119399113595759377390841713474644127908470431062246898419480128061045283271213101393613907511390758204605062636406811040733675529182928740748399376166107460926687972864113281239573848651137798304968132994208478032428050515683233750366382418213896112930530805943140239451997505368797053991457334821690442472701975368642513669352546590357623806170226571728806642021544181557863901761221474874334350800430520289229635278517589977059942437978809678127572740446709133476893406787018456858487440493370713496375944180329637692626259609050740401825209900411192694549371117346182941622686363358375132938759146295277616207481431138981058630870058511776562874868465974812482847570834513259943137126773741764340019143353767862273518102726226659421197821914150956191172463472788429114057022076723878978318078780936733606631418546199758603887999812668430441884854140306022263908532070370855832484682001016539261452452271777414644035816378236134755001364749044232300372624490408538374485696810654942411153237825158957427694856506773832564382109776176031994047745578961889391708401510897949935613609379862553688960108347184764313419768314145132295076707515598863898176270026461083795193045909979276604489173677847840418351655194883279261846848106907196076706545969298568839181654961299105729300466803249192297332940850403127456626077013982695407771894655832824190957383918976055327446277099765395994185913336575688057125450569072921728475499534916550252395300372761482859532208432882609158292419433175428542972586707630057206103890321015572080494671413467138478301536047093700466279201384836975343228372666876880501686593494482986305953402849728185522421488609772808396828986196825929583653788335314361612569723358866201529938047867996357040504338665059416112738958292147128019304345956670824446335377336395803099303953596715848183042105720254838610084382325592316522307841063714682369181725050331629429301492335640535282348640131001171491979593513455426189108479704305309978993027285715770955698205835090061600593859483571283826836595673591206689372377068779528014548358018640236688600759194923601684072403584454945158093965929393848904989316959748776185968193054588235352985134010297901938124355377924797940739491823757835903470162110246474227771403620932586710413761331072980516049622000445656210451796783472276481558821622802044071522637104534112492429091288992431848313689288686012021638323832944207966315525452717507690979870828234692721980499393348038893889797706991185783813379695976462734379275793136831764630970504305586190981525473384623962239406244222376834914277908424980275705435720282076955188596920286600739815876865545143783965342077264832064432848855277220281398000177248027502364096967649263408993360383397245990684934124452746743122870846403151491340992639872745247857497852342482605939174332452745984356644566941767485519484717166157005810540506518933313618543128298682690781471268662076483853617569514944963304084942668230034013299845158057342205422289465503206958580222058790879476014214770577042562485937596529375127872702991990162155366625110940035805122273249289883984438311070163514582375176791456961637123799561963473068275264805382810476163802014703044845857235116838017767654679393838232286951870871742277434203127647605861341303116118232249123466367248416057897504540417454860912317469539463070270993674647081616035869922575113790443139293471429914680686482348077177410933340140738989925524152487827500015371351855971118464020246388048764225039958022856451931314012454806744393823369029116154018858488020354388947529859297086773035968000536142786555427327446203159066084533913373422713351290500468827969989420385484004282900983779272357590398983675261197384051066854217555862952521358745344701415188729307473702796192788590143079174730411139551146148703060634704439802975620666895231389000843614224627968995978497776846387100139840062702454778058090375511401655641393154925321823067382488158321895422607491579302642622994359726647699149263577235177898996948959008161935971780438469492403678816982167898622850914265257347154671377768509298372491384883191034547504642071940992379516755475947831192232886217003558144284701582652716127980863096882281260327650275497643949346956646397130383634997854170976310444277068666257810431210714838973100085200663216395331611829237377230892592891573739914607813699507327876453834863098529210496792275458585900907567955722788655372253842324453272049088494054315375013185015728882844091192168534230323942292628721671190719445179684883716364375852066637669970457798745755458756130724609077626140594581834489060243575780096164389811216674369396205487113691264429817951685442849766861441753342246431266815607095327585395324050806208407447849296481833686584593502616521583960820603175025842876211250500901876580512080891346719832122810547369670861330240214820295771722739082265478641653057353155968994061963667021581469761758249159499335974768938514727581773216865928895422822883602527598221737941923932793146934091385598018687243812196270777182051557010041865281035851144415773236624987967744721870297619956701532860423511953494188835393052833412996537475889843661308033110159850751585115233563575407180246525278733308500410790392846671921719704429596465030431815861363497867582203276946123251268654558166592101306416834836441985065841923092525465939570863754675318327487485747829703313485188694288777613039485261849053123749711770497734189103308331751346753678845122304576313141714720051014795437342152113475509129756671885421003270253882188028832099983733281832985270153723792994396767665227065099702719711926170296182823282669484986165052548572257501133848254145932215017733856758669117910888073059732410903129589193993625748654536665998152303719727803971513997197997663553349500313036766337285501127313091542887228768925637956649600410743265174165506263120969732032515002098443745700262888177962006381514728312808213592237875229465731447464750066789089479938453496620477396486545749774855501494499193334279957110535623216202604722713528131708435171789511241249339224594488405175583636661344130347188772159088587975258839094091471026245983509824757059237470332290128148505755814591273713268289320321771119367279215114508636236396871625627094140463173465794197025231390417353178390122994952282966179484864467270513678980342038885497746524849138589715945478055250625685047817259395254784441381044549496801939139592844342881988451244259881791973152746801971560386675419092198584296221821397433118308301520196293939155395251822932617805020774505036883478762918080604662630323795514934724310541729122186959044339606550649606747017540201932471603197521990343146275856570072450041267792776305458315702043751615308983832110766480169881251385066847711379487586474340771421153026250567439542936208065807625871431411594223417225311878866233044740539083213042059038670402332478255030200582082564678815487655473760868397075029209355773873216322886016688957471133126892702939611473556436434448142029693677865373308280380852121870231097161866300242887772087346441582579524535539395724047314202147681058293754716699029483194377976359869991545740616745326622755546926455575367719871036194417743403628161240751605066429388082574053966527021885668023920081804675856694126198161396274798415785422465448135886222461261868171668695697417224526888034231450802021411807282462134375079600378130106981699906081855289729051729800106231694561767438500097389352597111257189095573479290310963695087416339682246942668324951040275065861222608003882882852274194615003930578003826101375228325499900669480426438865539072932856863496187457809051033796073565574202354093764565951489641183503098482483697324317167778413329288628120766995955186717812392502840901655059960648848498512442792794400905953338504828976213063947440221875455617271342965453153251603476327702591162543293709202343272737507584157447556703749901110428428619301156395028220336394201890725052490309690794642764043641358954897106387493073174839040530212816988801514262323488469154848106404311572081137917085199152366222930805909441552427385498089262922370814150856643110620743817526161215777590163724966936966745878630613960952223454516299562774779216239370828981760048268047154300232380595875347942458679686365496975186821677969726076597057289890214012108496136851793348399568612293791397864686533544278545528435285291206530560967303681691345116061246550112746832823273795620468318022994937968167341099689883498444079403733193168118014950055050453135972060661069805065001146310078790857518641528953897048967419269424460708740202182662828161448838254410025700711261284907299555560196794743127806493727928186427856112100577085871999017705017152605511455997552081261591865486147381389138373846820177115897187427005634918566547765238204528509967489743108962969059472642612869296517834804092692480179161710949415851699963475731584112318499283096572868487400983522831562823099655818261564933742673907224429946868442287408518860210454798639580058163973042717281257973344112987999641963284356574850797911851660567635870569042580190575961263488537282156890610035719368836386041791682658713787334842031144851852276234504419396488939288574721639141979750640697753570534019252344202976003665660151652093957711831483289441501335900903317789255119862735381101967521298158940335164370449200288702365263359226319582047604720570032775376246028956943885595150511146709673318366811653754458300992117092836795916723486274025367104692312132483812970582442846974698638695300110078424523491064347292604300065510141897336276402039930712387124954623551266236405724365847687280337550161173011242046801551889240650792878636107305106069992596338528669203931789214293079454231556613072982874286331477255979330216434756133024773468505871827289268185349128064732522907721203287073307984004754928942221974324979073558569436859576009921364556537768314293142898647132673523530980124951224476987845439995899392612541076330007328121762897136132070235297568497799763387094008378967116533732465920434486045792239845643738385560797710376725630856864281583997911611853686480913457608331276741964430024194446548919413491467204886697055088530928794288422575151225336404484981964095198709424981975920977970356211194874998337203969949488291753851560334815424585842795920295932425368700913884442195566053343039415147947599918019576145884621396722133402497743096522094392395680162114734957087032656869430799512317500459712723639343143779448720233106034565990492604526253391403631643831543635662564918124366629137467904004273095422379909891038792806852436989343129138466449926981820079557108457792970334924510495618275217150021479105914628567249587006296002045494066949987215563056108480398853428552137006251312540062271951156603630870273474907595016812366293100715593114024735172774015973340986138419013512763006513615196057062402551546469091115373936341807312835646717238314130143118778345573513100909313286456801512409170178644857122608438020747968130829889223291288962057944226921547280472025040467972959050588588932913715417946104212250176182029161823964668424407652145116475863752087366910485573691091309215349240301577763586323300852878997072402780322200321201154371217887268791952392754950019029043930504838579438187828616472547259411922796583129074931871342255791988103880101151318115772293757502112541567732403264367064352300046692414023895899485339464712642329833461584197900491422361098570500427143545843794520497658342684225540674915575957022471915900188757129204740096589236245209606317489880660731065539064822601360565700495517334705704060762695472144367961499194423739051475034844817081190106108339373540293885336464089931853604758936435970541569984574497439563824994238116176325068300191159200458414708365699636668734167048111622733046924521870617115073592458536288076586284428806487974228407348349432197420134992367359489902882848117045181982596968247561516807926085195531888762232341153258935838670524449591560986614984189075614196237811458791710180202892991384618388333689152351443818338183982305005339573170150965704578079793389499473628672420227919251653513618708987909953891948760973006630590146404778583747001404014867521582733618300778440169985555043390240626061065488469156752688240816197987708067305945258343884305135069654726600121799154050308653742479113727682356080544889016332542429497936798754622849954208641754591137494880632515136943683771638144665343369713664009753179517416270353067315170002135962478444004153214963592584818228971315034284570896685383605889549314700935992556997140604010598377211348212282707413457940059563121061191209464953541221516842722774802939826112469978004838185921048867006973616904425883891162776375422327168756531549387763552775024696688082142944507206347419006239112855585847648547735470941863030818434806972574767262833687386106804233126707304564684218564318886965016254905344994563699826862230341352224768085111195900621582003787001838726204798439169791963124849492343616077705764303677827119780322340707812776878483953224664886217679356972576748655332228138096610156400516778698539443111885177937521870896213636988039049660518618469934214164500352609546962543470789773750301780975758579007288104323338264328443039183905217250674348905159501857286311446396502998848226347347278840762092606956451794916040999501863053944819035437913643858562044118944599652107320252951911272866454543339397218401293621654337273182280210533761101576652656439192445420955530267024375079906396522816580180173178616148143634245268405848127628228277301516219691528151138915757888528284163899655981932019317419998687832145876411155211904662364850104734285949627747623350224974939696302684823213341745534548054290165122606104903211689483548208230588005346504495303907684602720320419497771577776631512804826888000951304086846612797003677960198918792892294581295694030919113408250054855148597969439930048297376553641416140422872821986864303777816219544007279246423275401145419534889068845294741347161788204498871668002995751745138474324412407203005880172308817972591692739451576161983434461660215686853693809803274240520538849228787312004666853944435771414467777026200484593184854440682909856333680885302255873293744322661784130880135976768658618625997883127325194683241989347707598415171999674612861297267318153054479524222503837331225909156608162928124021790106444940503170187510122150803077343954226213965846310565736456400741382090559805512022728900201917387200414057884610931438655993700664381009566935301370125444542308769914997924673576620036669578489700373943607440240964060154300295111123202701657807682256740026248868202011355801007132113448235940747611424615501451057806078991757655923763241085784687604824199512871907369643335858125302085325575147989538617961747797292083997197460952269441790220188926921402240439490280566707607289839617612184817423173553236044461375245127057461156054868041157109213442046928094426723588041842074870426716088563068637839237282122474555620185891397580509826655280797464367954950930358259193182618213976071189633696867879270469914242198839993144635057357239171425584914382463380006463473911445112326423372555805322151517672163452369559214570506402687227907801164581046620269669311342677590490858286787549919039758239415815891051954777160133863440045904263428106772111452049525932844891359197570061330144835373140739191302611405578812334980293849108741713520809595464580276325633026708853076069604445566738203227183116393619926038419864052535883690748276443640248236366236679505566967700734037621742217588610637085243724337436097970038662968021051535503554187567389214238708157364012580653156017515992539219590389610124225166610131197117784566742090218879506505026343996783288761316487158780709255914754267411903011677627409472737444426446387028444019294481970299706392047519365384999708202812636506081067018260833085784644964740705777007132578975743846816932263099159828042533166587561871463825135651869211935200817775948790424593748125801496974564874842489754311939821201910147900568863009751245469597087967675062077869656362471168512269600123212156209999478890097359045356490914947366370665128464085383349114494191979838960305866858201656542621404061753608234026648761120571880069354582271484129760807986970959382538111822488981510997490827714427115535851661336762113584144283649275817533761490292070857255968045723452674121770861082237508675577078138144876165256068718895275962420701852546251813199189081771585856311842845706525290325207091952168587826937859789196504824717596831137316210588293853750186433347642495980842886381155645481932971989404831769334409802007865110047988728778400913279973858053933614092072823281298546788993134762748994393606798255842788589589640641655478645577243887614075697479221177214444632435854203690214504183985617526807680692585871608737150373103019145477370708320231543549981018983887148464015821474937716951209731754146658345762466187961827970165656845372127799988951038210070895956946292723432606136198227024534173898406523185336015568603758011008309525434479577670020542680057733830231982330615872862075446511129182968673999487137814413827137640075708517120584096544071625607538837884658732186197169207103872028238529814594514856394821341578719345384542743818285910459945536562687090280583243166308372938842549245135720715077160513034126460827824221279721395466196876864145665880543564721072273437997969483149987032145425758560742843669055967792553841624603885292348801375415739329516405849341212750354998338321472674001622410687324476930554754573215369285370970169286512346540357404259519541633484623408754501638875811872782295892244902301345249814647981222990884422649197588261297705334275212490868442890024610395069092497624181597430253579934311479535032393854650970089591411741926408835908624065196030036518903145075901475208614304643049603296647353700541279387198471594725776980911681003301729735552975409373594363923156974811674768034603231327863048717197415304908196523722408227843245773150036482171843407041352739080807074724202512092299166443774146001956203640465575737367538001194116521575304138215481007700267440663323560121649529451452728486453886685986602340280452974308998053355870414478524212821092938504167894658188140784217654591716063318903083585409674132534974628706213776635322632572875659252756129148318174102281430282960057591101253525945535897888425200953730206775615356665299062051697649124104489584978733045064770479620822884167042771906231557173166638663287157616242590008219180408477895748781740993319378219501289388261295912584910519030804880608111342802558691494686946527103336813859031532364848862669940215110901488069390716356459060384019733533707876767201770958509957087651791701313073549005275095316372683672849215109709477555833906029411707458917651082089365000916296051338235166293483535428184631540157637744313371781000867333792068174902754141492539567486082148851089383318610392717805360155594914045113982992035914999940190241379513810593929486675167670430377919501827228074719199600900117909071442413037108452692500583942565536670656290724100963281529968615520085620379344935291747137692969395154724775172934176167938944794407675361610406512958843517719946605441770445307253404635163144847281743822094509754244706622066348815549825949424888119304069327038839643439847748317949848183718574661191190029650838733095795077758905797011203182757174990884068465818195928132637175543591535485057591115906889949912231643375625779105111702335429050206580396207446415991103117963095821301810035357507456093595615111641257220078650725029737306701602370793792666124580131913681948210323275867197909289982982699243948740864673615847031778453163117493682905508760615787373748930717163680621762016622977369034132188713841042390248980896373555121180335833998968276540195660039134874127014563685759159828898732134488056861220034475720772442888996073815639701052848274223838085363213988537984561580674701786526984067734691626632112375763384749030446781201218151502846458566442363063312590628998853035970598234617324527768332474607735096701054492724729197247655657860239489071084749560080821735313743585902446469701567265679471558245516658243759302724252483775305364506301038242360503216515322256155670697868431779487021017298662453835355991946273001023899893917613365025621389026803155541368422386776628590928112680209070043175352586846924854739712623624863819946167511319910142999359735334387875643433873686660765040218083840842357887136084369426869389964009979451667650812587580295687598042701027434893018695506233651942826925373583235634074541351149569793674447525973125752178745385969084465625585652205347329615078654570439566795865165802495956112919405294463090206556548712762066571112655421337058787312476228669679179528104824593634620025435295512351228487421863471535493495343429860533519811091082447344953933730516527471274557241662011546243458706542130281428800169836777380803276731974401574009706735081071339924205733417990225611721245629425743779279800848753768957098865667823031158031390573813198411893011523287082522910047909544504087882508500253894603906301239476320041362851356209224042427548473409334563020277625481656019446948354634118171417387308337955533547247063147960339922072515292033640873063068552417421013919161106811196876040686650029833376846965574837254811244773310625561926888221375409440066545897571296879836046716153137726881219198753484874792563251296771791369875091899191469308708246169772019240822426352123910701865769962573400116285664492113344992155272370512268176949386481246647434213593138017033678967972964135179178963403183525539739408945369284653163919126541720555276723814162169637055849044027845121523651464010852819738703247578936960138242269662085406275075938584428764302056899351214880045384923874414698116554163692890463214566391400352734283873744582516590360172414812553385383536899887952700591945890482152052661438622418387760470244892944650117575718212401013281679406817819278723182094314848741555043370035974408816033089401019048375855893140731969707043934683556736587768018733724715353376804939727692321950110141777525435119978328792651784911766031226615261882332368778646224914183235778913560498472738015202709090843051217656026688413576870271573541165766500190618367321546849422384864940851203893778052885056481898837181660881522405031231342195167802152007350291443186595549770755669631841943528547148462614779878515628203761165393687348977531953421637934550872604976454174290731731691679327968761860769644861047632079676274544657966969851098505893878132314947440591016658475930063604408086172172391443761900041537425837990928536721589312609354450111672743168095934229858068370520296579187522810882089038776427107647765702216056674257235902089264744906747653604455549644554638792781140813149971460664869126374208825433110326644027156598706507611625778131201052216917555136601495160630114231287785852336130572700734839539073265902856959346530531204500739429395841905899608697441329324730142224224935473927963253881458466688989733840705522816443561916607363477301089348276677110853507720114991036431577991342981878194477953818479112383746204255458203303623906553754040580307041815697364880395916610197390371935351775511273462173485584446255293493572872162753847741213668403898881623866615180004892473463466735190869894434076382700682799968124390604176003849321778769839266138592003029587405262668525599555111677979216593146767713880583732270580958359830105668802286677736589939321272781173321837218974936178646884914567383802047379620421222500415075720336591251886598711352778498532885027750795831101461506498955524827733179816496025255363380040797812846274887184784747253353843081860553722424787660811211880528170287322556935889172127591953474183933065438863093316053332773477773161276756677333317166962578546086888376606990688528468302928411166101610880120418951376400786005885424921357911131680117504074126718573698902086816733997496565206061464096995457190929137186606753675893204808109142145636225965427036759736565645646818312536875178164999958314191051237373940713385980169264651319120444632306487420003371716918925954487125617537279264709145652046594591221613330118784018248959889430885823117810063673931835697013070393810390092328111821636398253722931030107719160991390335830320066059208291123448268651494100759012021803704332292050605519605142741353985947714829423035605355721524406947485068190229406733731785159751804925384549802911882104758722829341356439655009572046990595577121420967237547745070281211506417186327103086246174244995184691430080280364519501031454393031785140127295056272172366003730649318912075556868535354855886337536353500772453802903034378151810416758521018496855989080277599681193660635929718440951239898979289995521746983339208586270144366901764732409699531191283938078435170885104824223942878974731874154281619534839653312632397122882302233354402979947547139201727340372171815168229158139999359133027463108595818216948089359220233552991503024910940610531086072761934333204878781751970132718284666415618028612089988883452186732174281662402523163431248636685722198017419636881271718992466855372282219719481517850465401389991382856703411002994739611833060298072975697410082196762733103013102480207856062374120954009798956456861098042494082306864243261215316096042372144520904438575115236405992462216784664810944106971762074607074113914503043929014245811385384877786079167895714605835032536733264070928951234182242568391173067125662624894262627676329908874012063538650396741328683023501256826730253934587816663066873813453664045917033986247417772636019706736805108397278976524400838008438732105719150798913182994085148494875022787455217019600277227183639192782079925417844428311923740677939976224902090412229769207614607756608295400426245850186296068617268632644912967302266412059775621816271678060245942606268045317593909090603023228101048051714608058757275649026561607051501900376708927558978661132179633414117813913364771314295987006531850626308876267380729055028078428359897781198231534479644408679961679340053006239148976998215827705153536946743414321708650963837581373516863719846997432800937885542464848942773176197164772309802617690332102815956537482788774575759518198298820853441265227820140745843210813072514516317714132856739267362584790310526892669169078728599853533024061986410369846847583968954219027981528180409907216044025616839812787006314307498896367338159692541165288792848460402102826693596732980223570764878476828258894524610045798496338325050560074710995268586919860818689991614038950241651807761155095371680329570961654701708073993282618395298986485954235311629217679877875908769574149697561864581893629886422679853642885280652225741076119266009731875212987091672153927574931775525192054883729412819224893832667852442777470682711671396759893361665336126163804700571686807241355209802200855686279398187188820161334009779923190900457854261732149818302645313334391189668100184547988991058829009903488619539838712317163979167987508410788766328624164159056152344364516003228349500179014792380928066534640623184048669580027310174328181882830772541972863969313154577615065118127408992527517277402827385157067593320855083918956995671327216888936103441724818919842056170304944372641917748080473798096127154296941904731056871582222684769098958034012825243967497990290902249408124504590026104084947696449123446009326595643300625445292452655947174680280895395833241557126155578614026012532759744942831737416851217186382697933566329491985534539206799770349619589196886114327161457170227452258050471111990754683656514872110432382365831928834866857828639431762164945914133726084931454794182589911907878434033067154641226262450148982089947962628441782349352721534264811507340866503489458992543116895477762001055999958750537792608092893336762599595108188023014278645533270165926133899951012115763171004326616288932068561685854762015277305630752337536600464041043876002359169544587041896293112168585229592698579784177206102424762765091985316324911781635421707670702590929081248569331912574166497753554980054404801258490549032458020282465281652641836407652174670656097122207671640148956595753908736711175744399894837243591461480295304215221768578268393299544763685658835219080061929619656486362616437336481262240933416704806459292598490720821022507036296887948206720616289122947382539505968146244612979606889728715388192803122780692636221986908644512592557037807997514907009835080724238544941771571773906042627435693975816315801991501798605584916254291936677449906522647637336908767579661773739769459569781930683227735727788946898956687686257533101732022866132675290814041948819274434093461724025129385559869299101458851873064868390808922579322545995704100931104647871462400083350906791218276114465802345445241833161589984654191231253729891124188499445919278571862323004177252698201712549024320634703308539915923174638386250727548423300782502950009450839730670123511803566012688585652349211940652550123932867892536240973226906156864258003073831817519775360382624576254987442662759688727924965363585808043643578476533193805914101753277068747348858132104324178959564868303299769771562174613465089184503026386463736693594739800515531404628424903531954565521443737236354088169279849515622997920086163850061968502665573416058724250125489678442526816839962556714910457938484109412522051081315748439961795773449192006718339827183658563199776632234379437405842063908247287189584418305966897519648059537149842733091673931480577785086316762891771093795516745812431332212799996687302180709323165989850323343393198133909581202213484376869374387578354645920256258522859939348609979648352409101247375308904322517535222851992953882619224663474573320027738643713217334677835001278704823842388936988223317383342866593051647115871433742109052047659258008754266790041173385772215924050210871473014223327751698558817925475758531986059958651491477232583217096310470774798009671053605486178456834434174209550111855584293265023850903805667320295866234956352306265513457590781821100692105082249972195941279649616692653250333156856632903110147559320455830812808477174877454802818159523930945775213962960312373448931766531845733698866482693349970580209055739705778014060540418019099462347473406091077316137254611070886028977926026134916708164212169396651071839350140144254426341473892000389786927684249785012282838803020138988788388694200608012162473820885412545637256348113195990372143642928640535601607261603314854860276360636739631240255520340138037719257916023793965537295960765979943143265938581563346920882813170837323837823870861613165193066759689369724237445756116546614517185917394455961885799730527299055699166345790900206710926212422219908725344379182012227691570224021041613269574067460912629131819519739853064361236935485099000802526957870945006048297733332879877798356149453325260321611815568503886635473776186015520873627992485037061572964743516773317746881388304663506781278884986608657909361665200754720139094809082227085810874669803216258314720552525236485572931602229185318768093691645817486027189154058988873020617575249693451492818936766555480825801785697744292678891316821199305876783034277438280913835248206371963220020928648949460458049105761001359658436932779553641989029556359507004480525653872791152600611715469329058244902881153861204002211526489536473530783948476553473156490494872204173154658289014377131347669314328236875810199262851521804839926260890513403461722229156634923851690516085739612518787466510851919127192936506004321643405166598785506618637308502285076476363872790604736979676492716391496761767779026011881039586203093424363718908375832198300622902814010429730540450254454626302934876109028901215342204406037875409820143651510745653287397465634734953820988768670317665215002459587836667394341527377122477274951425620002454758403513850307760665343715278579053239268249574514606165776545524933088766898447884415158176780714886587544632991703619047350707743593180034489015404178438959942124548393246339616648997765863405784872752179019432720898364118153147143510902411265188444458371956167894495376016628817294256874179595328159246372643589063325955476532434844055998732395173316891951398752467099408355803039669505291580028296849867750294265245715116655694875721968636275692933768104659435890630393118402158418703450887254850208912738518514136103553555864433329002592488389814742892451719016003634226031499763727622729174443621839530513393548919393976497400640763097614516022747243863522023834601384376957000358003646293428612932159414448272370141518677032802330066542086841966236057666568160616018078117114390192915940774102580632541905523628355715991833018662831149558076666594673999340890442524831924619139563031309150418127623554638908807956861826956726532285399516964438097102863663897205115462195147522477154542120562745491857765708680868199959618555144242059558023908238099878409304399020519825500691958100239234200090454454756578182774931056681976340613454610891949366970246811176852219523275508828691640944212361151264405622242562892942066448039827003609575303932668979269243154321634144193510811361921194044912019820188849732547334369936671204583190924013548364470748680396445225690911710562708741048998713388202202027823471988606612218114417176614548992027589304621613740509764648829463028348633516681718280173775192275022544356459454532558116433115306961974729661634541981895673142448427705056267332886391128368982812883791039644897992484704121331849380345863169710163349204088421669828617815237878376240160155826833911259769932758386031663851146292724444554277331341345261594565669168027121130918080503068747542187539453949987504182154457784215917006094785630758778068716947447455518986324157930519846355128887680774417666668965893780461944713686545929075380620241826613333805417958962967821076107047681641433633801448175860738770375408153670426434028993392566050970959318124058531446784565543473532331597560531879113355804993910650949501497764023029334698329829329516832571719365853268167467803328350220508934851480527200697669816032577752755225441524165435710149349012426751713636677653836229305988699023253613202344696651686840747462086041102410837095126166371417576777985841682463505479610807603424079104907207897698714884265544205690774399126243932341212853419286623290644235028128720732145896136696446762972029334097921016831019149834986486737032419665201011730534953323550141997702174458926189202414218702702648905416683248222049257584241214532367315428013412439826342824593370846868839694923436909856416577004411271683583024596048751072123471575334688954068595517379081990068209154839557074544956289760160578676927258056402894833668244899377598068290306066563722140108182228241195510701071483195581581927453549326561237836401685329411146913536857278283754196107057778775801114514293510593688185043823367405087463013369522901900660002339764187119975085058844241467799706039593022143421417015413717780505500848321708241341261217450491497513419347420457777810854497607998665667210453338725284224139839952382143742854327748507832368994720449274680441877010792379247200169964599468434103843310318243863140809109362686824226018339267949335680193789120045098738890714529546162047818832654523404760733742940250938492160382269342450701748563452417984107525569739514245324429278521512364045431769149584960990055337630783303872408432288602736646255915774848979069220419872175274150852935879324167702723830637946744878926744276800961668846435841935047865279638021206903440660928424037358058773131484809814578848369617982767706671190376401065694512359101784590013542373003035426790068352114453413366892668758183244010832522375938361912877497402724696418588371100615763752757573177983506191031681882806534961896788605832229714440478009164860233397223107813483424864867235639715035507203020987075830738600109578014374724313784799970717270731743489416582066646047421924274308500311515615602032429772017734401196471514252044938306879223032395225228991861168668756623379440455009325240170137637879142972141638517041614087118161338909141182619135704911021147895790375795108438827727919833823115772854112133985462598951463547789471723739081254901641798378496419351596848641828487887106251851135086774577357680154694317134230501400919851922426669728798965065151708309567311153671820554450048956484215643865678667279191240411734118956788452366879052553988272782830801813941783898381041726377020441879587947002650841322249431113829911845814804770269879062702512337110264795856888644265654026595026185098450289678863664947741109269097034339095556193534490218681527848754150916025928497639760631031705837832050947826074007508544968379257328001034263880524991904584679865701227813464906939143492612912846746134730299531570922035636449107690143731500409531674340186353588116620984757160450180036574051303507869493600896368799345991728426397876414163734064349764014062363472496180930996150346892265292152954900380279369818880307905267007417084511752275001520314219922486673513091161216935165279553675994362148631723313856548678567279216600212982949397384819899456241130546875410854924180826813482771866873191870864187635031156332707903025929180799689914332579387072471281628781934647072514073361032808841996047851485268410768500158660302644118813197109618500147955022987801136803658545075488253190334031548734354932270398713896641075084942052752638979226198987339508821086412804441639714558061024875096277228664733077526857296995061221676057097435209916167492273838055983796422877571800459526403697257715967383961793064423844799627545651375698417191255523302506909320515171424803005938143036925030454034304858399737335774328440110889139020977381933755475802688746904064609971835245368145765991074402993218700225164683064106785098803284339719228166803556728592045992119813551950069567428373711005900672918821756701479835645860902692509706050103624694169284880166406190538527010664954576120860020023828795643426194096679593348460999019843771389126677596207297079849665344822078557656479221637878949965054914484432613740107602802060997228842513679165387290156038572984038000558150868825998682197723271230740413544583167088763421667967282196611603970747392450186480930985417952289017381983090357246421147409319271410799582852624651307811374449332261017619953024125156970956031141158817703226959165705751721724155931145167537291382121254165300513724308979543693387347189846533061601214222165640233370054900070016462939229412432718718626055471009874905602342232626643758341828741897333502721425098740149661102905639199972851015593807570360690513153267229740047288950150290149061530846793749023570076547008050992399280189153280521126406977870938840291626552243407111640971377025745418523514600344489921460238868572076659592789759940947141453329489487780639173498837944165104678133794329730544198960778392248337111125909950730005165722765743332990157935502338403203069473009839289823476882408447964967561225240374640546154479630180954026134737706664194199304537096904083534789853302025259025273561437999201186170465953799353273137779982542146294639447714020607646212160829739417602394416608103404443972853966872001603731004609511376237752144201121717893235066518250875675235381889930986559139403451834106769005510158515311762480330744723860873109965178685201911945481080738098208161234031529774331968948708045481576185498980733409814426264011941718989593368705107432881537517589314348780961546387688985950418284660042811521154296523268954722350966812604876563092225654706917945134248102973388598230368311985258663208969429523329648067319045641101684673033517146681171065104503935352565458073237967273312530831393836433614484623529717215790124696255117602375663616403944221378037713335812154757282748165691345660291589669215972162951015021515506164215288371114647093062082774535266704466414983040582794320056719074301706256271020904783176146312434156587877437351399621214786203211923095240790158420653938950312550965782078226338258072276542296065593030055370125408422682646895247113896822306638207435073436310444383584190444663642244691268512436069666225058975480921258104828251949689492034408455240965562781666882563696077874550030274169362822790234577778197913622025222061075588227827509930771618882263935680276144809928119460297873997451868173394803920472597893393171255335385496569168384227951514523565196168248825023488072022130032624257662083250596884707669419023044205429940709586089292438838506169387997311989695623277372414646031202423071259338187500384151889913258885818385863303646394205656297754699900838662805990686991819227201918890307565381603046595253595331478049483292765976716575435977755164918644676590598920752913454502689718364616507225148565529351238904499336594239951536729457688311420560315409874143746154252294195834478860346914877976547608683135652696013160361686298914575384441405245928717695134478767966247812427559379887744692085863955757509974751918511938627054236923108507953443085937539220917797623638080685047473231298331973578058153444815276917600341646264594981580357293783989013985399462689092353124186735687764407331718037295423784709869504224390787522748215520087174498300430875232384299478846055579721652532757174956511366212187389871362113709290214940546246433868012929962992732117642040437971636080526258046550509250763685728856738690386280335158648949695675508137372658191352271548823577273043833563938964137033706187667780950010659584291482393630897516935842498900150875887216983580009563313377372955835028149175206079479698476391690828448332273331333302113135029420188902657456339949780483974082817073267206089507776442078241397364092190983038009536328667372273241794428779366435086364577834699012794510596681346306549515424072470005822069687918116598014582722342889793418524485321366194133153367787516169466643206976563518493745534262909785365709534425797755697278382894776781872128939402856851429903133005169594721273268977915196167547435567428004924615843986773350322230200739560350040837661791999887336290331113194244803668755686840239030614733538156947864820445997072014824048372504297189978093352312847489195097938941218752937044322454046414619011679784153079114466022653070376366795016496993134013975492224709085534081548512414255643805871134221758436976276813226852448080179907746607206672854661047721739358781570912568189655030925924545116392434226551927455386760307959933649797315016642565146809438504905488245556011190067081465237761670923599556228968254534367931057950828246030488239504948048266649185576954735216323483743251675995226874726868265138147432907208230045650328870334512530403429095875820721734162932680986652765764306824497097810934047974869853858986389783224309182710385899098019285660751057838381508644473341876108003256189951183367258151783794487526084635752390741334130410974484938648605022313777406068708722330788289701278604085594590941206705030703711544607967228671495042762592849009599194094436828345759331467493467190223775055569099088768454479107024223023527882262325724462043312631265294107587447978851834870867806417805957777032107883952359611170160521709603706065146053854530374555273356382913586960490818213391742253157006280029899707345248290377407529065662244290499593262547660007848260010770072101870825080205030358238047555218033506855827194121986564760958725552044416757126476415065282548441315172617836187210154103729876222344261630741055343895399291771304780070940798551411320161896550192090085746022827311599262902995393974214967100523556913799706704265795743672921477669406901231529535912574007105084378907153168563439982631082120569578824165766741005352421576311500728187334048414399649268148207487144337428630238210043126034239423556703489498995867003854043761146118655838260783683986952612108044411908146506654617211912746896761122207431636711313496392264203108393821847678959249426138259135578716526064064961541965446480004298214842187043397160260061619894284548521301227314058775983677910968445777773340813741137984941202553000436893005778532701033287536477254050416291533141095708289992844535235341885632434319563925595181883199582555100633477721591968120080522822167073766568040572468223082166675073986791029719307541773543465433550918402856744621963500880227927833922647315819772214330310171354932610122003029011554542724351168756860367521694462437991224614191614528012097158548157018855674206563569889041807721100573468807422351069578816912880709071929495268873935652252738427101560154177494407262992305268698542406274754743201468749398029216901731607057859504158201447063189096544822665895344269234334163673669249077925075843001724739751285661648037059572974105160057755203963887857315297315649491662623947970724071027151900104043758421673787139096477727771467554409616337891280513409079428458967331964071583976157912202430509639420290932113659966457356022604967182490118986313514417734456512129157652869324761731218251817268196272380456954630115256975468111963466609370154575190909590160386996544711698457899398497596827242265502031115647623128188914624206701298482416558302938947924422534878241214330930405706628821800585622572955015314326742363475100284049571636360057626459608394935208698686693164710032929187454298812770979633700667116786662181369767374589799539681680795603363419592163457841552279428132716572174433904002117850027162094626667823974930804470531652117484863636639578872317400793415458081443109008629162084576884495186328650855340251709256946170955225318538874214319969647661398179383137758810654945595629145053231314097865741199666370411382624529035766800927691691285446482703009523882858305668689887512320449898287617276754273946359515595480187119060111843032655617367186219247081870321432852078641126870922141279501113645972407317479287787575169247955057176709641732258249353827609996881388872722524321240706385937939116796399820915067535218587217071025814482694744968945968840639770528911264120269273639900919238338703785420536155266630800197348859159284486743774923198114869031757853194964811290208204395598107471702849204491311837794766829232673911109320109600330978168870832375219246621766489308448430123479708513433141819330300965951867692061705280487891853025579509033079707367233442976957213638526414883121076909146280346814654037086578205663202607752164661255820780417747484396650988635117078256067502819066541711867200390639082235553299146311590607090422866408771615098816803195384791670459105701497055392459874806822798452847390253840997891831039255709998721834150259744958066507924984052748008393396148079959723284457213246791194566999269721256590754575200159496567158709176382062471167614698413060113809884506150312009494978597931735586966178396132804303382453586220338408752840046814856281498114615249856941422329322704306678667737907603044852816791591743956083230107987530302002610266375648077424383524563088712345583829380167544900008580674118156955146785538657243356287793172722409600475400773608766675997353547777671187324844736790851585485173410740863652334406309129106439218809221232840407089266916524301805064888960668842152284321391868462745665978039223827540515290256405994793097862049942505685951719971331628438863919648394154364021333381042089446671594882724771601004972606917615972874972192885173989794634356052982206709548992901995961680216597487871157634262712397502791877385396368821130063286910738577279667857897320952239613159376052595615765092373882877115751504997955667977261910956067770077894890371150549376969661028279936857455139517340053871993726447480125544518083316066524529696453635092829645715946790195154453301887799240011917689912966230987032804375875008191824192590236481278412650714850520962365703405366156956399471858893526249909653530491067433366864558237719543495114911820730503212049887706011230385188196970421655135305644067996144569078040421059140911364693508607627812640757381029589111778007637428624999958282559046753585146283289592259866216780421016706984866619836621735448701391424176749148151154158616618675506991798521924813462093412271010134512537151045942093375182744079081718073517949150528985474547944763481875117632684909535235111289333311967074052980123311712110313930022365532679956416516371500342578429631947915596283986840688538436922020620961146288431494529667397578540185416569931959883844050804831986673243831527579382560433760188305965611755456532838552522261010910302456004852540452731850517504061020611465839418117163580653857740864402863786262610473939273696152294462404372805717013666875069115937020845169794988584630590503322568167032699544349555022068521771825325394378190641095903925605777432954027658367209776081537872835802196658343472498314226694043842385903595411980873359327534502405055724339298211288766653341315225353976320586243511778963891243495631497365596371834847925324507678241544573663661934238579353248525825874702715599362255949171664292017886083630667477942155995834871251299677370916269223306707547616767105913003616520454509991162118935470322185966968369037601586715421907597603555937006807835660617145813328069028367973315191033954718493718693910934309454864579773711731990972762250809235863046551240066182684611756971969935982563684682300602483839678778900917275510060916449975951175677930828224244972097961449713151088788939687177853662954346539327385139953860066155541146221970131619913031365927355512365245453982756342655300173604392873476605097868062020874774680013462371887722320258290627035859213854932866700461288339013431902872206526438593848006360789391059227446335234801430943701224943333918332077591386331353415817380082937736845590242100417321381074351535542406707419371659051654737202617061018419526206506757938907186003623217068968665020111958222159246913171228994340052190449779067971103132616726869462657635992522317194023931803089483752919375663262077588478889283672928241494832742303726137199361154724847534031547014898269830908012033493260361949814184026511422162688544360713486030935739530624097957513641439286488242435263377987987849446347977750407650313873912986440232859072476039243220484828037407096319595720651586281723613119807327234126149362138090783581803832276870449006870494531491244130920016507575155284423315189533815951773148240628270156308690447883672592325407514748197277958449667626163664199584842808075722286770280668039298846980107470008584972679181268610960730905772540106749435012351725273200619747551630558893128518929904681829790773762252412187375007548203829508307285105741681146183849438011396336590123529108475726970867555012790348336697764635139615111984495085824189499577655377723392748334261680999253062572074661088319753593115978394622114332952850040039892213108418929318610344980866477474171372841504879742173912888881522118662188445050881069233461787997568089691875132328685662295393052373907660603770581511869629468033644721665690782604582952025758146014329835147089029485969890173222271326786508310432927198857843237975513717957567640838116100358201966725893976713577428312386652349896802884198093875000798363862494947290644997466500842352518845265809894684333023668740736939825748662933584474451444476098312411485363092998615032252419411397947026894425407126684506839828975905465598653751633413172464266308959781970828756663746895788953797202597780335073037304302442757539595596634010264643966364566723279983316752409107965723292578455037446730406914832719144264819109359728826352323354585496003302871600076424094963382302204799851824618183703688272028822688975006326002721349850321214908576059332091664524106411309873695301488173052890542300859631168111556786225893066744447864001269608226241502077169536387215067611981157231300867606349576593755533434331607201792929977010956125775586815358995967747706324680607751068137970159664366131382299824216032301462090883595709176793031600277146430269054312300844201330466643627853080642158293668489814359147712042660808526389706312246075544810588753328624692820374662220506841291469718203018300564447741747098038763262678812175996389783544221210836163275541677482814614261600164747506148744072527510027513850167013657719731414227207579969365991992603795838211841813360804604609293698940218650111230078638491747662961290560430918981665775704387082355860631276960246413760797603126244529965722331531935903220345400357080155734437570502955594911133415159830859001989319739473709348293507168422757230849771670479921096762893467689336228692011295795632634856859514628070890922958412529353939070889032727243461430825909332566749766452539324464882436233998737435583551180622261620879723040203443645041477506251307761638071036534620867512808313583062635881543095127459096602925056407021608450878358782615755104357240798968043817419689954139259247284146670634342637419649140248576311541048921380402498146964873090169807224704070025622768059476333842066973749623231871774767035253315566201756089768280642207975025957063309008691039470665722106822747558796191193684546625175537214998187396735974883381435612992309798723286746915103782383154586046426422045717987628373811934250060853091809691786508271476874766191277217389544955874058961435814399086993932158040788718833328839186193332945021930145379729125143433673896358574671742018013126442049401005425908368427324941556806947951930237150633820904968673835418853105189180531517375738942489842252140742783902860517745189403789402642630221483980879746241158933053604048053448110599072873794482780863578508286788501674222212836101773485855561363083283752643429956949887714481468841060746241998414269517761802336093478239360993779480350359653885771766975440165679216656807493116929256216240300127988117301396172449846609440573557843004242711556740021405977823612174991683233145302931186709627237894684400421434944566121013609897190919281824803688100628004980820791712516853621612534026439857208880805126008107340990377897683221497717365439537666118003418966140337288802376981273781998372972625197469963235643711382194200014881685704433988353951627582664235866886244943049676606660347288240278040102848285290945840336311645668548819515529788545798460767270046696300754823991529837704776174183593855347468371827652840023714179753245460398301551189618082814239492995344076934702614116175384037314580302340037478762164062950680925840321756586505331281752006044048699419877122698945456030406045688425775070028059752636568164187797669970216904872220938983523922366227588294964106770640898315398139657462685955036237221304895895992061660873766097503077694954564994281551539895333718501377536325181792494061080954104630232070990692539866099829487454380110981618120465834059131706256163595530711155726885179065138041038708082250758866442674203065092858658922810329952893841057077395000285493790533766520252826219011635539781012976908807840995186534992474823637292794820528868688617786487103521645088596288779678869054701655721308698883760295227164504847340303565470894897096179917853513326991408424826039488818474872842108679320017012714306155520343821517296225391569679394207306454605517958197425418612741879639530210521496614904279528172975991239066887731681591907772485860806254378701767541772218227914290190638549963643033318319034040227214378956846401690175279985742030773688057039005172617070911479923133344653094385049178565494978964690570102521204853853926418613476548805033202244927621998209916225979314289612306054885229913461132909684263307186046857120628507599796258006575134417876224412047410025829053365987061559753582472680384307322013871465442408499905361121940281523206991384120874539705541781515246515311288126113792331520738929840060304877740258675417747599826881963355466435967186883028310687945228899637846209081849649088197025698793945287023329760763983264591715714618985249087253314367526384079135600827336902791326923945988727310537320271296914742687841036714906061585785296580661475490984083824388504154856809345808398529300158474012798109196841173862754768104238075540686636848776183284288539181463423758805291492670327886976482590198877610831233868620349622529175323341394885276894234678297484980930053662772489369760948465418980776075934130669397772329402521231196274672914027962090900187654529710409497374073840085327055829591953909357735066423780506642184846517538381357913255143696466338128982729765549466759464285285960320607581531242021961216612056596173314850859860933512254126586964940481487198023522897330292867601322032633695423451637030698523220105791539172439973678396744881088929198127913661589884814213140616034979684313083704998514512563383273756720837587110739184995663702803814712200321603001739757158396779667372379245396292769402317903692961444703287330038731138777719389625743515581679939821904090541416008863408999888088470861375805506350207101962518424850052549536847410387759801480044388583171267120629156755446311145203781268839998289580966771433317292327276262201878576688002805506174580426039697373058248152378352069497430049106613589810551040168803231439420273790503020002012558470966950640441400307680203959143674631156622755354615934206322927720810176195679263685612775064497617330527599057105208328025596635310749051028005392735416210429568820563450056281997460032340718075768204639574950348218127523083582839628171176222874532210749870674260406067574113554368936259129861521409368702634042313882080057986514554829887950106843075249858953881579015034132885893322362809889478825501861347788658823618959745116589989560565806389020639077024750948653874949265027250104072177683386443648501457794160668571843890485462541649678750695307298623416758393273683900028713593898710434134375577950795805399920623634631080127917038405731622812938984574203043417565026936479219671574743966250314126726573166456979186898695855588350088122427339259454811196192488896311133974350295623684364801869762987027895464486950544373791396896653607072081353635318496258913013509182448404426900246157625313937738725142760497291984633998245496103630601377494446315285515550328621018878041878784942462470450614570146576248783876102517851925352202101206114413522408184605184524114312457211864973834286556246170167944088029314859993564393318550904785343683874268222081891414615207720310122997022924416640151044984631820978235788048548723938442753073033320596856214492331461023559968695960554754965619248867679750630435637676685822347438935595896504014953355012868012856677779906950035818856533586075705446863068224977867293997030977463132241492739420886005660591344263744350141933392045810713683519285426868679018465152296762276135536060699670419426405808174430020374196319887600421764067474296955559390750837655581545782925133606619094861831887355927328719513356379008360774182325435830088238916562434284836370892901402732042556142764396168377054916926536317603899593515616548781414498855937017849231273005071520224580198146207500401613991716006295512071648361493441019686214949335273754289030942413164435328378566450286654946062536574483066211469357850450178931859267175447647888459091371571694750001764817005217637498701876789566829735349256789245995400989051276333254358447849509853379312641260472803667461502392113610270941521362672201609309993889223633072519230706919247261582045422757327761334887899511547866646338385517428941787519733229149576899318684719411600424334953930718205607792387802908617156990758298605642893841880106550181920975057001878688938140546643751675967053759098431898370156524038700931537663335367863843075532032434395182710941416014472448227898396430950725411848654006967128293801984907323811077489819766250014707044979806063630959960505719921935548566003998947752112226821781350856379002126305106760704085367912626968611830711398438301303472848422218828229156766089562103836155359436454467485368337395459457183502410902260926870936167571901091750817007594539235258117670873542659470008128843837427970991037470563500131059733318442863939759142810465189116762433263746963354848501284255202529519651885054698416750198121718927696898474601315360670634177755053849900553530495324233436480288301580775864692214218309492391604693816413859709083393129804101785965434452109225304997156820170010737462524172678465882494426013186891227947465603046092450600172238191879836196518986350492055765560426210550561064423565550770052128550580930090302696255173160178728755616587380782449312332478004994381064393566490154417268468717842660073450332969039356763433745292028326445622485314640690008868391013145003421573898608337162366364825286577931388986782059706210291715459282036861428590506696689392541010022003607036846292988035430542811318181593971997648935372176772085561369906063129147768992807779378135209979761917037408611946070483321749108914363822751660213318771676188322411032469713502318936902479808499599289546324503436401305567953664329289642028622534322223590759299579660379378936477269363169718046010837833202017346592687548808492591135913481455335137012049614641104117169612877095413741432748905643999066018597552781968131228320031713812435829713188903014924688603278372332768842728926755027321042188893753905522616731059369500562762648129325062534029348780489325700836912664882242928792965125895266028686573402202511789754251630018575639421684084542175937640544573679874921046540152906096764718518268839283782139992289869926557448841873695080109426333936807299814809079228349992153232863689425731441158129347263329317183592145542822942718273039618415332241212131087849181408741557308211411631730330345844436843990952915576859582673749177478521024034347089474900240747322127460680633976368530519003847943041541199994082245088001389526727518626857527779945899674880833373760741954430478283515563187512583846960347925808993795890948497982523063107021485612715527153376263523926877087616904453659616823259157401612203253354616943028030491243108766047490387688488049496962649986962513545428721963837083316475672614650104071322882557662332067563156736260127541525575458528218828436978155120506352814396590710233406444357923523893431955561422405734966729726120065492092549076315127891863683510910683042493673764216277806766861832224842447186559467947974608532679373348116836914920608070238805763704842356507932368545439968689994739661004582848089359907192703487024182731603509804158340601974732964029858825560877124729195050351716802004972637733463259512329005581845787388002127273967707001211057925589712885940996364607763876250544972322378486471792830910747463566920013482431335224833237713339859553466771711331364383762893485508741485190041132008601831237470609980016398343002916040694345062200263529539316998053525692563038841879460020032558455739912721921339367378438002858738082159823578510800797898214368375788100864896580666425752840992266661526014095362656358385070729082154559031077639935158898700106567168143216186659896216647417552002836402556471868517754056096570247571866405190843876259839517501365944062506658275492064340310936040177356266685596642183966490459050888794009208737680929829632063817290793549356957874703369351263503295442870637040336908006001363695737337991613635562909748231411199007596401221024839233812033921616488938595321771780187473300493528092662153319466054286371132221568583425860734997869043424200651210399679402529034931970198212425436971110425015419104209883598805915450929819324807493685171501879557469517184564774868195829232648277548838464899504249428401012589575710452797092418761564816753676876262039173029042968832580900669947896149024593487662050699814362641839034774071277224816235079884597817538567022539252674006678152029698671844540893132844629244560917451250842667091604956507111496711732210926113419320403137682306167249906305065752293888658489095267297917265688693681225150755143133352720267365292882347690239637290225220504336015676177806752525687777849948071915586818064825223084561142331885354259841921786931049812371433513605133341893301127793766090048026869159177932430925029826942465405817478780174701722829939590582305134932539137937245879969653069157289764755487026167677763397305606816311849343230303076508395489374747585119422482568328026859368707377802248719137538429960215314734825283213509573050681185851494829884375883313300674675596652902290007465649657171226297080354744336161606685975576226138219928384601136606204758218346148358191878119380841400543372845814159121232308264701977799464989978508934702311649098927145814028051354175030265675488586547491654076710787728277411832621804527555032579301091030680070609024864591611797146078968642688195027668736524459909919779406158206583133833498833512668071500137590764239162185479940602314605222703736357625828898807335269092879961013549980556241814498439009657463114878794565321591410802963088438144884273227300157598372210703474083800186454599806013365809901569233255084543563611168459381459819738767439095365161157323061807400056486018899159719152764459247035972709645643157507151716128155558843458753279676187333613894138010405250306223071384362920637308342284903302283548634579797450190991326236963321502107569110522543370703034379633720419029230856257759796896563514554857194902963619094574326477803976113853804510697453325895332829943007471108827573213014980482135826869514650987033289494206176832151251672390379875396406678164733974997048684968187355480897893616764051899035308188166998396981497786418735744317457308426607922105160065889722514736645456828424493953285710541876750903188450779869565242378516176141565002932022124261252639303026367025933338189864941416516084621117009349647867661699206660901714055234549174355636325141277533894334865131888453364256260320590671583056401931935475192743950172519068585831706767250838749599306628325761458532798484236057600304570332473399567481866061213555002468203846779689234678224968032078901279226237406131557523054761195993610404613099955513719756782261437697042920200954156684979513994139947834470521048136237000108206841997895650749512799647589618077349475402164868875485027044341213550933214418344722932578799340047190500009873860870668817419409747273605550796977458933757650027793773070497128803574853363710855091933847510855194406113793067478582087904148474161209295272182474665021479277647437566531139529224028439741243354424810668228466072810979761166464637680324427010093462377089418715138059319475612220225297871785020083627779973548113729574626222837592192092452600440284628933543274753869132937818481851538296749075283968252221068942303889830852268057062358999918882286256871923161766224465551012845899554389302444946873501659576511744540597916189463299362315465391944226883730006126798099210280582321288369399855357510400956125503267065719515688285248514161952950467385090147694605842381387155978711824919263747861683176377481796268439498722194443734231591437504644327467173048147016502106249147260850750143355046006549518629086691248339677054585034920305155305835049416721515417933872885855186692193177083548445303630139883576175671151899152354270572681694891508921441623192893871284285454723768515876602448119745167423990854807346167852058900025900334663402540141413794610217537060500575381313150885857048897646630326151709464264364901895110278603315954929192843166910729379120100852344955589858386757686519685150689847603805045787501808669143805728898810928941791416514008841940557808686867772741077277378085069447233757286834262929953150402072261717889279022776824930299653772346730973088373444545622220320089824084714106546554317240926842860065395869723058211861133102271638687356859329136459694933494758959600347649252477866492090181444589402286272047325721522181145155871039353629317365280162764445136206543562134078967860848292095644667560915886452190149305945981051498963699545078074179725314188346514126203992941965496371166623920246242795823380729962689862394233919330261924103035507754461342703989240112296075593638621534348182462929813374373722090058310374899926770772289416596262930256656432480306062866872281310654232283147047826133480616739088084057357854877954600972130966137393601772824500312084284131594644390328188252957631049886827326980185231852408128342304677908694803513028036405795447866541649892256598328243495386724310775501851054471638290522026122647967822594847323608743458528931395264890205596313679504729680038882290477620875707291391015638083797911049440870329383543767541175178447111791597730017483008251641460263281517429833693637992135528372216549664743046885630095663606969096823842241057602901354730554132275812039147870161835088871659314248172302034738425989835743398219652582572263620641938088078427228092013746780877302622443768571275607190705157249718811249634138851178066629925921644093714755219549670857644762002156103660843288543535062262556321031330709089066869163215848863853738709576549288637331909554603005677575405878186187291914262610918501924764224935532395616722685051053679489991139693446880845647379276952724040136955507606463609086482298756783216357739917062984802867355582283451906532664804885773435108219871583673550352685305523728990932719990617503362563143635181498060140108733363280528419341782468835582280015701838966880488323261885389797392708260992693398006776008336167796012487810485299479082892101110550447053975168942020464917384282469541260670362597212798455728962094538098842417453231900782827789931541232772165310374710096144057151854644400810968038211912724927816600030589642891612191356472751944944564214708331981011701680831643837937708264459421027759806907497427006594869612142500585201321469214983352814853143957857600628068216043674928882206441563608604800250429359330860352529711012414479219342340601532936304243207387356621914074878493583847280441979244295636149053519203983017502207027491148338561148490929032614789987447568794333518916638217364164123296355761975177144740733474866079096284944216090045778851461612193193534250206981363782767150494852008325624649323581199431868138450611341855089680734013766672560552023256800168824745312991434039776296679744117783986389360900688718117214542219485546215362890534720782058142995262241203651967754211494537133680026421270596596682980096788774797931001309325404002149169764774984534215560437699372929459822482975200380759016628425292682875472983485382637447503188619161293483877052746495477141614281196482164730698910769065730716283152096440912196878326975564558975467580790743473163649800689998504316380259686329591217526538363425327282507962782100110428308689250867003610046757396172964267368247900840063229207499296313307159443902068568990042841057373598523108360251138854214005435878097799965747924044477887585554994591896872497177660968136794368882447264709242672549102227061514735667947375024430782198108833568163446790474276934426815613103559656491134249088932915624319611458364568130645428284834914166922163560227562293655077790752956482451629063198289149364600721062996435920227136431571836155583895271267207309159959436833308981029112858540772716918658300870586646425227505542515003824709474524100406715217101813411769525273593650500513385774561017219883971051644352980191293953783601007754693817681283951014574216602068355345223791727519442859795840344287433642437894021330500978642222952723040055931900205547789169704494191843663934965091934503797366444067670060984992167330397067358701314260117018220900310938017354828918365293719596945067567924865593297726848838410533018544045308458309857648596290545907487962807632719990953248181721219800813491978517630859053357570794482538655893299547406436739556666511253761176688723922854450181001580524397708440635547236007125859541210531605494103409756709482042412604565408362481651222433206210959275401866388599431304484596342297046651491115579369780494038755677398590855771099824823402537585622772523396043486862754372058565364624984962708746388626800536840983156650181693660764998881448376030995993049648899837436148818387432960295007412026250181589117126061330167711756371763232455158982639976881693155920341032712037745540972408599388032083359134353455798396698645674286667164982427900456092966369618729560993107214386407988653227767352903579553208866238616193886894175251890404426220994120869678169563176699343890952690246876398391423346523961899967234984565229103457690781686654332808201512547118094556506458319233669049761066607522430258554298503386734544888596151611712083708479112973466892157015405645405984237638079887035069165212230104666302362078590932224431369177062218109185607468762364307042500003207096676467974431383935037051806643171899215080511695916627552933518479379285587181536011375888627568155637408680473430272351532940198536852746870130249717195661842361025319959717478484214247102771855007985420310750495327235610196626036379523431471944795081099520651455757848394800758429686696646944939241814433716409018408144829484598949623161664689531673100963401578911020882573114341316213460729919198686486210579608361115142640529843736680447568625649587089214298541267097069324373546417716446980197147330915087610844847831734745702082795000647683671238829264098976118670263806873083228971522560396341413033732272954679637939813702381143089058095440770085310000174377359211242538201912773576029631038283839985579717654714309321123095157279710849729606899116792855714681303394959225010829328616759005441386664811723200177214197017575661482493770694088412381775585177055584481038483585317572785179216318584931195594768870435902132167880126298579806412545495078489324391560764744018639370833217802747316085692810038719068149592606140078075324710856298436208373733444000462402525586037621899434805777440191317674062016808736936776014301606550776885315697763675689205771058357668206855668784282533274219703862395060618588503766556296419819794535932906445370893865904012480775396423656843382695333867881182825516649224788602636107583487129484459805987139990686198342283899316405497518812018091530518007239213383397200068088088861698819467950706171260568692931611386402657171397120653445801206350788797833175613533480839580105058181178306025667659644926249095961659480785027767940876941107536943982018859506533395080061337014976791946787314213112426589529887617346232539854686441373019758350728823331421133130647665611406572693451386205198017042618867228976994720624915855978388177518766063067399692433042633664311296903951124584557357911122871622890119719915318010036479510629707419545068992464238656236660961875915017148891315945960225937672091681557054801917734606977988267212130079798154350461692774463378812271101149434438357170587498016934683592493228295039565451121775972397774909487555592402886331326335173223648835842774803239662845386710041074172484676370664029782233292703607648538776027571451247652280137685826259980433371342377797177495802555771056570115116162153174506599857761037471877341534038840740599101836499941781571995310965317439700387920412958665586039877103784774088258610276668234603037649337141904330918475262342533722303138429024410040245215351805489661037102437498327245018389716035825993360103041565251988749961113073943273540257814076796420623264409617260900860594068096382629710804534967260751286276707942020769652754388067794213693735971653440718443099452176061592518480214375991041097401841122511341150992289272788155541924663700097491012020839737530857421207321857344555899619105415247655195388910644946015087207865953609809866985007746151090661305859242402242173424043497865553642702151449723519452958621807347509420347224226632347443979743374730767354361049975210819024200659481046084937996883057418216084352028658303120301239320674041399256276673307554670858761962577717167575220863349915676705164931411804172435242077592943423705864971428454092528498770317931100261550644306762451715605768113931709533410270143971817726899322659377873720068779519021400217920818244606043567008131535440686178096851584595291461488529299944602868714808647496236984735841477279011338348260134364018963557263110907199428674239678227024388136680536986401589953561679181303785986744829394254229733384611607926706632293219452454352550471109195236341793914892419522880586887485005404644543658055192632415917412164842760401396943655992392396389571292924666005181261146253455634017725940613109721676128846618260127511543961480621011539207468671884755233073071665598807664017302512283884593838367104481275157814118352699141395931882338111807564877405505840880443026313743349568936073973937650872971728071510528774120675896836266834726171126161632354873157766403871360890663281946416249975750979686440132820893200990653847131725510147608487129566643816324221909110245903034863257565120197670110302437297593306355825491020122441475906940817198316512558972734288357307446362078380292658785593716752596813768587526222828371466850382863484729976348737333952368128668651899107910461289997237715402703359011680339530567671482259529108592097093037589256001461752915828614457194793731432668320691991657657911279409446160987990278179975978391393403845338975900116514040027460897958364488286911703704885737536772517761849992783636378893104505298008038022866390462514966164277360653803290048312546676200269834546484356966768601472769563173080674172163484205598586406321189140943441946798442351832890120136829688344952673601804804629955619352391418548531270774167038423439942488565353004790910696685019805635199784144003583232037487689617239089757809458696803708083571772724201983234130103268990302676705257445983515900185446630761957879940384302581993717347044356612190166730360379750437040221025319729788857885417678632778078534914297498087906622610822392750263011869271948483204023057036947912489290986930419240477025514359073065923774278663104685897037074559335611610544212913179278690695760942437192838176559046855717239746148282622124193722130674043610608557571163669114504460434495638844843802725764963071089740924295437156019708832187442216980716364589926802553716994161769278025820258869631016236216202343744020095025080860516576178828547243802015000489509385459642323649597584233207669821286230855845491930806657247179524224223541908521179069946136465521172045671863731640484787090604348220539035575182712353427142460967029750458458430647911114894617791854459794376164021568357684406659349161032136720533961567367683810391147694639338104948564028212859642049088701002028742956912242082510074186810670403531040816278112156460160642213974217513930517213236503599279549835164813906478725432080785192404812393436313732874842919291596376467897118275986402093376666468280774330083926924345848872628769520848026164610638137083252194983545574855404798829918461000337649027770921923879500475660501227775261418776389577203508283959896893114260545074093091409974391059053874071463989591256499832615946375112108241318128132555578100004169884561011870108906008352459601116498682174190250381653802078197117076167416764430011043194076314257960923688803928286467337027174110014664083248373385971360198872123952327200760478869048609096614236563444182168268108106365603071164258786013273299538722044235515653656830296009946020679610780131019356370720713061728098795105642556080475334115661246272791150916344382270385899229737923532008426243446633189716465815758551053618019848086278394295209051180575210010984418713202593906884804831858806943507141915837553741557474842869415014770318614187287894704740049789363882573386866385508905831461692634978400991657670311675125026689300597107421079896890337804585952263568320970734526198306238767457339171461484886100555533106395688461294183407734366286602573362955104459210799844092724565808081436611774641535723959593009164160605308139085265566737236287252890984561489450561477178477147770109432211988145059029360614564331879365953409882571887426122758419462582783613125438966754224204552588819999519025899949390940739975020687618955085350633153912572272788987208365793814905597689042832824754775292114155415249469540309398449473963489518524118162133540179788643156132848725042842140577307359538923776992712213580856911860864735247035279401716934807284999782358246297308057226054742652885145163889058084634645243926703185437514150865123341708724956217285956351467890905082940407660460458509623339560133923290328550530309762138855991267173542373966285146817477207775318205977185427633923602415726393454505139521952564620136157409596292568222034651342749471310619808594104302905474974421739960490061267312250373321370643700994259490292752864841679245736586316651162210377439434128651762428519594177946898342973435937864658095252782562216568744466740292285896050941359297155854041752934917674954872450654638416872056462411646374799373638850881000290295594807714833399651239343683452292755880900989855311286111113878761584513728697901732813563844772552641640170894220454080287160404251167380255827794161902875168767001656055498179940679973693631870091008036122524519054517523053324122744895769911094755677058361078289054120219633394654510378334996351047699277054248462237105597037419435422062598366157038973972990052388710425102891989641895625333838047314651362503406354004741169167383826046059510962822939746030143699647894741862524353502379770414975726760150520452196619236712364668657375147619077108323991609385837127737912092194286573772615032796541439268595893106199826898965585787920264676092205179752727084487622420181306816627770292349529761881755318375721112586031373881940420609378678602181748087740255619522745368842708982842882509320082724293412364308587742127128018080112671861783267588243183296222804776852490226397921056469330894057319589427839011873470983999183370582709108786634314251243019673183405030588196766497349777837196684828003254637349478027902329350101571399275976256352069023251878524065559562292422933010624857080280512152202525524687584943269810224728319120781437644453024738663030620120015213784321662493247728230892549479799621356383586314788189834542899146716647382825544086955143565416331446611991605023627008654916069274166988283305796572666893473412043054584928688554734677201084286602884544951015574038514392989864990976917413863760002693918573893537129170778430255008446667272789731481887633332857812675033750593235052040136849905411454984783786879993625265333426594263700424281000314215913083595718625629323659653468067293237260069772267725741795290150696758811620479641720368315980066620410927865004923973028851977515782393811250448172729237349811779454821439256745734733654279822343548971603177170890423343055792874369572239501214111543195915835270991060364686757578662723394381989899694975777621752647768005542519749351795603388664047780261764665148965923347368953535334491752329792859652334248837837568701324603155571414249468947029689900556103365163265383829784848094426324328381306599275324304914110880324996407194346346075123282992827097557948485202866459951760917773820529462521651515961695867881639690521558083370770604116460038245112113097037107615809186501907181241251852969431761630340125549515773669351031399279060865205633015313278475339780769316140877067437491266180254827353699015266559421698465981719895577964210789596308338823163802535756107696489920323835021670144799173972959180924026204310156203287848902045054234254277481917186310769438808310633065487220547009633904617342302845330225941083965006128547431160529356942303141095660002861747380477635168162372996625151281613635702021008750540325176160445019269947703505439248194814191486187783284299286012465527546855543585316726650908926601948876917469899218283289912155207227444690547992655920410051540531394704677962504526016134209145793602288622873752434673427272108368545572592437532949291999779366989878229723383622164876920541634971307862983623244853038503961833247735454807627121645853953586050226641478890893799220487648681337064415748977104782773435466631908658223581405915995575152537435853961175138545473629066125532204318655732920010320223754067467293227305135362262989929840702495904847343102710856449539274268710420886946504910787576185460104568247004137989761944299786932532262874347513885641217141910890396874632252096693648630807372739167895977102218159567947358966090750836343217635771070074774231493508809250902139519628814539843930348144483372056525319629119622719521225637244294473129306029372823569753046798270975408095246638648431246428958101870329184927757399315593865293015177442427638869710372592849655704547421271340605651265024187188295101716510626902498838397988344802866909446163414994237051451685321024191371469089396613739966870732606358969778430653600249938966395239510691358236385834318476120289505753432288613026119272245530507489160776462538312066884089792679056091600533545007100955000333776818173261773849646810366211162063886612365335604919875073719536426464796209324701370091340220109051159498656671547245522346322530850497569715218053344109310640862277863875652587737259420993044499547417275136878559620821847718508493480265444342905263908900435256524376848621952653119599810443056197055913353575700101418109073560218240979371349597761661358663287800523373330734914429948856769420475615537482540274876920020368756933782772981442462984222123162645291691643358590253256722307118596455558178118747737064011376862957947530819304064065809688728716632846142959088862463506244984287720409622402886528326040731065230093192425031269629830295993181315728511315119513193973573311574194741082017932764734195472987602158617141421605268101203518976634641005414322555926861380999686008988144923678923846410619770485211366377968821195988827752662527254995746020790785610533022676106202161455058493960714612216217286036455691319627203293101381120245566740797812979325517758494319684120928003607535020542229188338721678422834410898423017508802068136770443532031970575662130808382298050275620738872446423594837462297515581261579366156265298086055717965086581679711697244294431496478403829599263110154226461661799932348639753472419056048360896864794609293537448575946633997424193174386180912185405681117947095999867354915161595600211285373460105822087157874277911076195965208697426140056516580871518067181582213739502803808193672237278479101041171994076677411635388934172729700132483350127612435383409232984627519721686605079748281334564619677122107476512792494974804149039223396163562588727464265527565804432090705956043426961546681213377583224363080134357315472400537715638398712507600869277752128790930442311736181873908389492641386398112250005122415951928043180855663947435523293421066714289343324535241557896248092657037523551831188376673966339395548357785616541357312978887834183973302648197142525577855732814807621973983242368048054505512593948061801709310879318020308800170167823735112956759063893313722284862813405952786202657461598680589809413114782836373355032193515261626268315079549132158822713841558023766607419611420867095064591623378878930058169816137034624656787888880518774465287959412528802628747187250550802149743504720949394799095931884076510329434163296013899610559842028549451504252047623810668947992533117603704656298916606544063630808970782125684030326361586700813049791189903235533739728070034051211736586827779660593762316338945908699553852183881564898539031817478798433948650130164536106213055703835657613370598568464618138153486992474480201804688113695186202473915957589694212872795459584989268827831879509395336494917071368545068447033113235044611352618217128908575337021804780938964678429296952049185315451437880339725471202148762032782345644172717327427282870478572860741682212492618445101826358535421710969467614711968034320314494158491113238927556022403908230280946908563625972654432225919296522626272076603984747642968933878468792832799998800910652071133417323698412721752275377687217311093692058085789981497119659185668979632771914887216175818312659685674231057937717871422081666367225916557267496502955021425147266072145991602392379966158505873616764158095638057181685296214756565461134988931448892819546662078863225941517453576777641653590418197393141390639383295508393496973924870396946817912156008729680795294798974641402487189241306190241779314922013642074323810406223329369820657535170941274010587175583031743619692965312414484217638802458837709694905263399819601033156850117674362368403933819572142562694809583838034862816847016828871226613922129701577365685912340412676397028802464543013706826659663042055638507584109731883114198445435503304907375614522766500177507253164956556090447762942646990942339929405727689703585236735152729234166804914817415708071537435304926998060295743609644192996033607889143748689151842759254542101880559049284182502099521964220242711702283402677311111032331039134914235878811066091509050682382882849792967964602709561407674494469519195009385813727841912030186974314618509670119170742069064023387428153970588047043876525101920535781949766547480260357376344738683344388915809487183305791313411151557860789089589302250791417269470663142114694432012428519491707875597785617591668707358626883298883916023114413853536705469013599894243218546376688157258475806894869416231279760952917396205512770820622490365869280590596410553250495494268310779927519815258065569053979981033875401100852172403357617519261693036878120878286863314429563797782975688000097822172767838669098951678087709318387308045724367652753869961484825842884143051061198999534133903819559750029880592383122166362370786679187111383121697437444396895176348154554813536452789827041024198337957792168035668418823093093946300688407439320156011837649014802954497314122261917304205059735883658392003646111084400882618630338221209106724109873426124789175731589031806031300298074417119879077627800123591303379486436401919523293424298965687567186004386808592281116407319745852170098649061599619486922526115029613377703223055826831561407903642305528521155616801678382594391036784451918970352336643210287629129532070521951284237391759744578128321029035229895437946254914937977718145639956438691264550750963147460530414261601151116368104901371269873031605959054360947467996670100727262130002216382563974621460465260977709279768899232263683135689004987110382418746499583193650605918952603747327181360438132908331458589526314377771374898804888205214990943465444168280514252444854574357579887549158119456950590795492065064152538045298789320145024513366305264511786664111962113371700181386827861350014167253410762339433164991766064343941164794535564129444443252620534295389627768023694410634740418617773141020336142010630970468634255948908931324904523126558892222883213615908162260632330121889859533642826075909786353759227941831874610194888101174422892317792281142944689504187099428323036778239338862530537782904262390284659892509113940701191817817572017983236494144886265980235012692703071323890506176446738323055451529335500091417855970242466626199688428262290996273062126739480115781998381884306327765313613325976458869376411354913884682084492257374742925958682996993565612723588846855684761980011769094660159886902937194180613081174051761264332412348468709564445581122131932099110733793491788155626094231925944411347642083041714231087704790173382124179116817123874457727148760460528640317672320674157393266053718173074368817564845713263889395169898685903626923755496015406115421486970077397044367713085865608460105349298058658372373862662311550281646137029238405605537006141156036847974906444458069243989203857726097313533279517889142504359810982717184512704272792555600016909101298030542192351399508673504901225303732417081613229254965131800876867472308408043832651603541180163020642195529386250837149228161792336912969200233410841666555310813197797695604709708403503906826094978769257955319687748151594345383054224309003840531610916687767055101026995272558269452295127548698874365205706734726704147189908462511301288603064738298246373394918522838230807303471419762199126763914202381789840194923908038970801715703468290596064662515311893801057860812424181751694396206613561373556105242631715182867156587768385851167815631523199546814553616121599319401625003747099414443464968340414553106582215087710546587026687854262472503462975474088855958241576493214812617353687941625225923801885054780545288903796258213104109847765136767894717803772125993716617482635131894120597222570168211857747208846048162852878645306632318228651990780162420289531582291851532008282609832811456023375285537568448142690967432858395728843102785743596100909906010021642224456540192151508698141071107123566122178950904918339577506599406574110805079229784998438918799508204021603865865181607766445046661913806671176755514298046070882368631190240165604390764291209780646072396450048281267880993773473735482701045563317657072391194769296564104034126942721471345373693942685678081142927184114377995911050514594802175227206672954492089625087526184053219629031288135449002954841607358528584682708860371639325896083176915472218684764694742263637903076155932671085442305804071854924788053098225975742415550214717985419863206804196392017105954889244387227633728355834128122330289604236955860535816203241181257770187653935761963467957986370902634266503186420177499310720150117328254662764360247504673164328747343739168920247825389476164928902077695608693772493541401003935088550756658319501044063054023845007382382782903312626341895678256793500083709700862129872611660665478766087205128335680023991555031417421257930463159403931206281688673321892121141097876404152807151471542644379687415311332418280813268456085179554912490423219220647010959733116706724659202673297446114039236836741276740992851558779724994886940125403444087395146138945719632205995509899178620138042938369502783872596576858874385623111529563613487642124526560006969026347502290510806787273242493672157991987390115314904789859926724366202132206456883942721295785103300487612805273619627516364112002961912907457928161943819924485742816632584739731423274488874468370116114886436940654170807162188457701548916094202092486909845706425764061331483566843775488958682160345343859075343186236246358443265531761216871005878173078407484778712822988031686355014374289722884353379626571553854067893653450096199994069940733018904381127989934027315199640893826960498629006786095611461283524090809472772191148391178953791234295562475630718279849903422322261303310215920252724214631309578565725273786942333308177029455410814213316530155546814525424949867147714915973515626204518892590847983397070680149449531577105371250572320725694442213515976095530678019892657801903632313013959324789799344818628283473998913598040421095887803200953659403005590118326447056844702201247345103847419576272481000861954091008947908694769676190171376616928705901613617262678129283164374599786632723355471712249096232022235838668962278604323749035692940685635699270375497939002009342536762615476713216057676161596408216412530953488288101408070699281066222779982537321388573805383650409241463656518400425283732889659704967577781588639807588887391578167736987801818407512795503664474269814877808336250039448891645631222524831012228258681021532774440675149715415171916313567348780724721458763062510775217426437305123160488075658104218514801069976515337423608742371320193219516116724218808816291875449181868677363763943298189387565735373268008188416317802566294027362073919969254555286268596928271900653550109595712334996887625169941093054264032388823571171103291615260088159459403357673595251633928327231037652657217890938270252114367513671326430241961025432451171706521511063348925662400999277376392199225114314829991249853262943824026501351658902483687420675629893644909934582360654523495050745900710471790473768719957131621354435084490449593234579442910287426776833729697732144436006926691794901213533864706737739230086966440486603294016234241689572212864906177050774730999091451704908425550456227824435335910990265933952297862767515210927284007390211517387595404451482064523987631519842660917141859842100876223448190951395188616888004519104527527349431401028525072331051203326122845546626379751115315443388281884994285521355111708732359445920023493646619162578182863341737025177791051240219502072300514958886934951225548794220312701315549232576224644982053598879038277697583007295589536537159072654947978093484375314640507549370653860313854328503495065432052328540395483442211545551621822359629311920308732217465587265723880203202963252233483885002299415080315842852855125021638189284823979953479499226059780353877776046266936588912147907263012571194948349719947139806247045199203802765166648801213119470374724241879813878950135536790791304113715806742980106724690872649323768697301562399362935678847338456921223478334291580283257562181808403784977339966382128857187091282839953265273984461552471336392685187964679088865598468186577024788396613942853530074706190972650771904558482275023538266836189928478371572821430996753150192585003161495135596835028243499185673581672767106976330697472138217837773734116862505177537207009268361885639879686461091361871150052709317256493605114602602219101404322081844611785485618323364499819135748513709172272133482799094276508402937692731263507926981807529668716846533230813044699527893444209519171881095216114486719501851590353137688273060137124629661014934635052387344504229878044186433069295280882558492701847952415187671813313974515142301239243290158327885040521695472744982796131466313608188015107880145013713911704170294780902238907959597011685754773913864546761386001884528512343353421456338055810944757021284988266989642959608827975956636622939208451194533153271540930441430345437732741389811788326337920283321742782893408894098594811854818697375238511530982982277379006657547180975894003092487945366240140980434266061785399173508837698923743690442897140396886770411597788362790034699214642914768709403176313535165116524251924976950342799915829229301868732753112574482496900371800937068538305020311198388146037486504858613318577119765570769456121876251566560658553448210473466069880549656534479261904409980792400177877558447048220266658532402365402876910579983367546978754689405294238628543576343251961828559647472639481839399083841586355383011043383842647077241751598339906845239225321071735564338814189438656915145145409483270544860209032363257687326329805711634843329764027456328335415305114394419067117527982045936681647208979825612623780826154973408853010463693084083921487982174482388243111996082393312765672915697212627238202295223914871680082950299972900201067255656412673493328792407742336808196332594450831511269353874192284066679231261752370584997585060980917119359030960280173577231495645636737692342365063907606505710127887703094267653258075383339469497408825737025191136543719189465061800778355999301542513784348883378243161962249110611316069942833728685285084637279924709370722033287391557680968928004373312894205744592884523222774893780683849733951953440123957057973064956268127999133361738690140681686908555525047455523014806654899614301011117854137194129003190751170879252503946819819376237661497039611914260650598855890458715020167271706534646543792462806147595269679087831070336309023638366441413646388680624262811497382665141528613116522331200584013515115478877486241691051284852416493391246451388670434745583732443539448484799072924272810038543868746107002670443292593134351374978931473822875697720564448882693228113510531734376568603412827883249361909839447662049956337182264464663433796603080625007969910114558170265521016696130149558516059761956098655375771888058358682189787647309344456698584499083459867182419363145298569665065271341844731658088400563501401396806646098451784513791932562240317843207254483300944291754687205082359315014493623962537044033947072300806176720020542091024888379644024581755481921663679447180599315252770998260822195755096918455038741128934231124720876802481483611368418145767038753061843228233840332762275960768784902742557545300554233824998557862753922702091042113174662081366543688794806023014048408043711871845903435140603720867561653009005281450798760519692805736119974198001271332863876296838308430917194696211932553999897528264622219456394874587375738823066792862024083582541975861590512058552963622653125025783319818089996608394503077878340912682076732966201194745169026205291860967024569425416554781748271348090647489300881585698818240492781508745133889693560988862897658304751724666481690988339447274123729626203826291909936726835610477449872949018549030240723201851350037317627253021079599221305156713832982060176710972302698184051183269951074153384313532241830030050719953789505805301302453708541049218138598452026035039980390623243801120809126297824048634034105775659328312356298511944301643906324951458625083198870238610481565301188383368449450564410295517563431499527938912621968787519923976359731034848390610381941546800050819690276790271735719691119395098339994892636043923104590058973064084421338752255485970196886571180208734623747647968434948655467020079398945169391334744503940508462112383399447864274677687738539409331809861076547490442476945226716856368253096192400536414104845755056430106147815091933053907212211586635609186963414087563464159895553854632171494817759205029369655834751431348325125786018517666684314134277050189005568832686958431111665725244801941147795333168764390048391789330151773897123425271183440354704020202169156467100997414518870129301323556299657019979865686491063757716372305923589062106245400091390865089585308027924478119996276064882702061975073138092337240867747261410677076758163254025665476772569576066948546551070155754453525741221714196234706197430566020615453999265611921347073764298625436384803574950897269470939492042414847202469253548438515851580195947567974329343373462950896566870146829818553159927889057195594280280274167434384933594565833222976563709889277563262301039336023063755921185024874104306741443301479111658544304465044374060886200441643296804097315174372563068337183700955267855371565279664068711437413473996019771297453034325362585838030058948452969572545918221185245002184969517528108165441436423354086302302424188942998660206714724500389961867505968767650970214138979210886111348021938169268634287395456019989690128655999899594093998522357498688483485583262424093632645408052562499392351756319846778529214463478685430374307933965481769908735678560926027564210278211288384957601388238026350136629039558600994948672973497700024221628422476925674783270282510419996599233298058475340435615777938047975558806446467750224503482545613528410330538328729921806688561637486551429195456994278328927580919258470872534075081958373997736349199734968460518808002120548839417988566286388650489923621833353717994414996740635587704034411442034868346027289220526055759348429631092241072204092960181000612074451329716666595916264888191292701627261530779479597837056562248355945966738256603735361507828658859435476031316334271885043760236549401871563121552119845724087314798297449347305117026417425142033182760154456793804072016467241191522466721889030151369336442882197577899702198582819408190073618029895524283266892700464498686116300258521484140429599959281142188677363782976774557578318079375627868192576201414728637109998168907907408870255796419177650084423046421664780299320543600759645996012816600467816410132336336988130335216935618754582494476051219946999159033961356226045402008207634843291161078202197111749104353110268768309825659822528387058622400854453796943649090742476522550598103001830529334188161612488683559998120013200087921798602413939198254442476346542250215757416595196070166434445282677719674775295636991901593876094967257565520729730987907907806065215292903196282954478084541644885032469343217901155746234704262771352532381386195422445630779008292398474972232092443297988460762478336428528662807939897731961025717194944311584274034121382620400694761024320501547644989793473254224221248726225554258275130920212472333836960573715591389372445087986550665189963650687057864989651439594851449764940546139728082328538039472877862771109941525214326580589566517834413296539425758753784404600185713410016532677613918255275258626624367895408694974873759303520641726632843135235024100117147272992749806220203027007567527378724035858468181542402768810992249365486618402813446900659708053326358469167464730212133171933658197278574493481333831470244297803372388203298918701030712262833312693441524405697667923784513852243811344831586441539353837270754548319447258703938022435904524986773137798452455147389277963890526661540184614163940893207267507078639709181278048703614095542431017032097102447289623642946948435679290287826196118439424709231576191874341462463266634726458682345114876029404569546400886125131038152421481553155921886623869204563938560153722533454860560812611695563729075974209944322719779104827089517592031150526716419468523309420179374540326471839667980919231710677679532661511871420456716449760461702272173797212252012276691937887503135690285724897784411873134557833242198334855465482638858700333584477205586666584181331921630320022910869901384101334926562475172183676224694070268482213678435062403855013550519096641115335208764421338975676855954448600747286219077995643047045458657155149437050142374684453227057717303128470957299293973791971089174055320595220456356041633597732242984589217356560750959329781770445200288325067425299778490133384430591251861358993824944204021900736511174878425960300710054953996417873438254289444916761216612006985360201570501392474818818050148372513505274124692598869461433167795420726933640591936638337000609126534272759302466672268849573097792060673803666082878720972212095904301482099192855201370093967295536110222433747999651426160039326222483206859933844679621427155057458383676861846702129673907499720222048380350177289244073627434305362933803734922797409779104294507940632990025840341081162027156289679075204952278808234249177712730722612300691886201817741624191580110898863548098332237082080576363764807230942803275226450990183451694602689457302452119253913150869735248445264282519969618342433108039929167714209891650134987119948899911474614947894901498825022187896144397054532284799676716605970086616964434513228560448352496288741559024906193624066585026777140099328868601735570695976026948346920207196443845036774081773863766871343780197981163867966654877803245619285661936124697287269276433218153463749726093755362057271906667085052964592971616948600014086570617449523019032632287868430760453976830267731808726128277558959727711554393093722971162104532969149458777473646429142837041287921312273155140755626873451971155275726502078078910066536185805981333087280103196739726390390553210546209483616250570337375888889463894967515249612041438845370043978170575687401977594660533620295473741496087646815308678258676837663635114597595371592059917308362736561645570432079637702371931470832556138339176332341137116001653497716364972246674740025862702246434885514447848982241721344917112509379179072382435035964266970611799295965149656265775149024682681981302224826976887263573882510786380485907932419336340535349770816576237577503538506607174865657810358236578854275098110001010846994652557949248011064681124300911171913321203681497906051677775667650193216835958633011838059712618474044111939541631879025792440005691226484721110353216432418324259721528801724657092690283668401438095428460029761504894665922396076634072836197011315907118525370961486873781314179797240228170660547620490271570128795609278163766051822434899165699844064316014895816383128924785577471216353003674484680163727049923006981476283527985117656875848153107567524986161876053761339555631779446979939773333360034895379114951302282086086979877835463534916292944347641674156892851900925184712396939507061355724948899782593398422020358013266523306737054075353728979899427992328858970004748388816544375139885835215334419835669546099887359065440165314687081966247278651820878717938515273613908047356102935682407292512041179332469999259931439346397521245012304721231490761822483598416220640431883952630924384858279357824848543733519018367820625227588405729504295288205814945933073614130857543495201071581237159170229201440019175347456165080471915971897681316510663319615007900564254645353170628420489980103729624946740274297717092926543386796979133357575413370441292607754019062604360200431082346764682853585140720779267228111641909272594816895955219180399034248006172853364553941038295384898979905320294163192862877995919037342517166714156049728018342062644506907829508232755608597374024784859427841876805895858474525028482592145556905507393554661621434913598361876910894996141696937033995202468079865046811169964451945209318258939182112271132359250792320847044594997603116031491327835746110030471105231725432654378819947556322159155506666411645704865727491705123958124695027851169643814231928783326903716381670965360156819525727250864543901235167691907149496780603743903739310175859882533929827326033831737627197291685041062126296719130952709135373357648805296808567309897484199104494568187640447291543855461545300620687320127279137398510563228082115279551912097694842980671825118064002065950263062394026241283423353111571136573327583180559433127664210450770038733912274952353371489339491994635625672667012582622594653025429177686679040611922818185261831481966402359013238464702799832453705246827470529993264069349956488672053916672071261481086120153828365239345885614867270193430908587368941800355948347105100552312813417823713952222811630214532176185520995949065239750983190093417881575514364397950106263186257446165231457079352301455383821228978118230510422181133115840464418855919206033893006624886156936148151165181622140484106502677864552604709297730123221409312897290466819112378405599257748146569723540145200729112948776478035363574064140349829556957968081724900194628996696425305174826330522946433208621229306510272503750400239875150302116394559481472316948338169517157107914689721459078210011357994713709443357957884106240792290047336787429306828964824930218572093042322684895418602334743430324650433244955447444704427674934125938297330446300712409999219580060598097544723830225105909083849475940324345507901453601828363819630588388131642348130738281081176415308641380649787642555963224239024927826150448487724440158679885518121208085895022502269305728173468614463228963550140334689700827976369432329247295858368528073217983141887007876198538796012612321036961969992497869303456519993565855773356575559477663695964190159756098686186703793723465890819566792727123128836299830395444613671393000838959400217592401231520779589673819060140692756279589363122428854304762348522309649658608665828975476334409167494127595024622405984198684779777446406886288297790702889098298307929531130179069464232232202150601290304741051212749303876538980841288117512344614606004201944344631307536280097169259345889855384066618823302875310558861550898277430414053164217557271359380969600010512608694307646455569936096827595547487091716372697914224709247540276923292339369527771852552343941761413688377430588450806177732818868520179674184363571726204356750476503126439738242675544914986232843635103089159880277312614461766056737058776165178103899764613141969813756425677446424895454878184795974032977170893230785014460406027202116059736270043394223341696853525108953837527693791775580707620208119164749187713523103604665994025589051576214886506973446950737224980475612490969987165712843388942328792360177567715290273550064063572479048159606397327200375160473516520651830001068092741768877470924608214102636178850076212010202507520510050852082187983349971931666696511054424029841956383539591113095251630371314290164252976375829010100870143732415410684094779927145589896828561635579923248962442739877064805652249525038924158133083721942592973030524018066580192687837541029412622142848648545583294852653496201413017291773650733583996246237575391163905210739417600288559638503346071392382818474539576521486520002788373316148937614629510828741089016458725738349224136613659676847305839029712090510808383639717319297922488745364320460876949044493405120137506935598042324039862194934160720217680025295092648280431258889858552738827344999768897923697188422301033776499859740117000248172196498803389932714578086673845909063510193680360643698730744562041501907734746420988276587701912515661458494303113038123457920556036757894403533126165264310876336651111785968084229089157842537912468328300448985158270095122026469774200093305911736540742247501277550175766465890957631504058345908383980681172151087323100426236538860302849622282834662587927359923139468933737814356520057948374541342298967217428097757351305083154205460424581637612960888283316819326029762571152917388673631552121978244104041908437893370879019881746135497862102747296769884696084252408669763812863508532441146660884945520256265692009680514079999477431011392777882666083922063309867082088792656695834118983212024176846079123091523248346978230221939642296282315267874626510341652744105145913803814708429133010464248868872942037062458375113642182177227448702010691592828636225485736510108940720168220378468328041174341226673061832879692713622771627251463351636662759166446649325316320037722725104592046041211216890940687247382462710396836673862580381748734371011515992298254123668746132225109826908104700792363054143834526078593608475386012241833433026773302801755104650796673391888003253756522586000504768481920770147696816490311236669000411196702817550876550789308657641836358240697643812807665311118320035042317056329409794750316192719785467205733489527676985172807516367011119019978514391795514949826537533986574072295358328754969925745298742751668531535703638026018576914261007688856978608626927109830331027578073754361701347978459799940810818042356747555889787515523734055479821483687219391139109001703295114842459844734650928314378222712408739071743589336160823032528668473946303760437843521282068006044347787212536539345745389498762115584970416738149967911963099037027185036979821756870163680357638971669240931969496273928642239909704208891961518105441428422230376686595905914714640306078415405748212438741193745396375256477375004934146370478036606958647800257936158819558475150980645379927271468696394602591493466794509020880751238363748129455261872414044963409291750976845372437840998814380332873068962450793696579685664363334926620893058102309861215511985904428777967385638113689627087088988175040788659352342828896846097128281532125855164007419258804689442344376646822825579555520308170209448229564584693697516480648467381689225935407155861994520239266644680139747563610623094799789302220077563334025979214847150134494460547951255703098028076849823141112974075514772278393961871210813112142739467555503444089376644722804617902278424684968069767631751610763925884431760954668623677490238773094929596510898775905247100608101618481025377867486424886884138231089648281414545937037860866663193708942005613950610020180641001997454302778131020043657860945875510501870566259648874676921178989401735271715063363626449803398016160198032870284362393351959984730312977029544221492064446980078721837138892816017486898448032441866613094095000626702199727530945673029140750772527065961884274470216837584847994896804172786312403836198247082488439169281540780067942445779947740994128707847346566921798223187766769761610829469726417903065440507138848094541412371148829665183118496716609101278978537125005001665880935230592418022948627257101880233662120035856680301074116074758408725455667302900879802816261637263222299239200535618809007074723003006902279743888525325616039430704516103981026007281051617240256366868756028395692531063765690630537081113359187748242799939738384245303387202397616435694364571636455072188402102604121293951078863047073836795611715747959869613258365958411085193014466068675088798410028686219436935738986456512750431769772252676941324284023304606714900785875056165059455464927354931455443383863167747772114585169120907174181979170373008726369997447737367853723669376672082922729216887099813011997084058110932068044840374276088150964595155005409366607558074539283955546097704696555230514222794113130745739485700492971288175151930473947202279665838906767625812823452363825816247355898535619378227304329089388851098102651833211657298962355540362216344025927994065884874874654981806621545330796808593908598946023349539382907622668784629735842519587207385568013502161009958005800666276112934744697954164547640411829368074771839565647603382241937606243324983141971850130892791667028542200369403980257398197606643803098807995662525183924042527034818426790494466166350908103786741066001184953017177720323207265577611502076183617246902923001937780960312928068116590238301100863566099904950862178358721730122578565280963289935396623704230827497125320608262613989034032819523216935306476284746295983161978589215875806561422469533596916487921838578034551842780768905221534626017172973847999542062404559811132595147803359462215112537687550776529491664837726880168093248486062830222388301188864052241600127391810408914680240213877545046313340261147691762308835369101845326244812178958833105091462854043695530352144248267776571880134957014416703562741262722736915604876013860121144209090235802778656145674987027529023313452198475714131989039842052515103061716872852643293617374492454843529473326445234051625871115138605872209207337980480332989349409736480556610669207922007425708003359182832058972690876155521378895085112437151755162626216074784456870327423749894339539875358586422320349163329766458332533158304027739830555378727785847269963785541987472002918038951995034486270820996590213463791491226626666952541401553332685342377184236176082089478906401744787094473093020246878303836713922095772943986960172596488817837862849922894697337166761680427528797449817058981685167126162942378704942948950155889688266568220407916956796101984866984923293487465066914992349097481155588861659137815714287057442308156593013025285149687105767716122123004651598174581372934750354743017699583977506639576189657195940968750710893006360284205318447416386914370156066594720384772065229683259805839186791378777573499534412623189021844114527521648826252455128425552601854195162375448211411051627411371404898433295256068342185840917996167135855721890581680767292050789332237631478794549917123535244653101367205417555085479543642855812447705060464969623384038880030965731776747350389102408246393197138267975249376917827852497506587092536891453049684248695784727988473849656681696285149092328088643899796952208660469210533768396740851086041616140904415522073323331469447148664349729962648848831589719199047129830548204687853728819974070429962416421785014644390309098131133540740479807499744883149920106221035546207394723115977514853673362589161288855408283759447934213863444834810965601157544373843365930152396051632709749800522877601832619716582197632100550386157153106452071074255145788142850338905977605630127209638469420429994003365400981833988590292528919594552332463504981572280053823863026203595480219388644091845898315136529775504791146420699777689797785558535948694139198277521280386551949303808883386605773939326238884962510996056895991235651255155809920007428565893211367277725878796056351856109652764366950015502234463247271227345080440547770924255437082927834699757523583634264315596844871074714100857442604426981670580371311087997208771968993877372587298773341446512972329481461716200670422914174462589856296920964514238625144163890814059080127898449283372371532452657644835146894863644890292835068192103046791176448689806691755627278151946571009718003732149485220676430414241479854192420260887723177390333963445667807314821958755825931022357205711383126592564536705375135395037159407521309463769780888761740932811043106546189057408735187197719482641144454916322192018826464947977237742967849055785235400429210694756597203786781502601043671982611095639752958315745625885540983989924342640647650517284687789847754770180122859866553838643162200978016775042879432839198840249357707276513001158502180232710012058630501984056271752670183974636758314973317327948208079565274015196819907099483127831319613839700714671329266535803597266605135592338553280027592097426016930291202916299587714668785917024447593869640707474892739283163738694383647388362329725699403845402964228243694495636467818942204127067773363820310835151759524565925240725228849131379206388813031440638711492092188409543059009089919239459329441387510108274288303611209287050467267794910326822894362416011028598098807623998908418363446553143582011242887885340519576157148386826178747725796196237041838339037009826697078076356918928701509811528769734498651478241990037806587297119742312202958760175114274413103851075677493799789303876254818485214081747376327954871775198870124383971081468519726192143511396099695920942864564238349898865465117439059834052625417937208987866075913695366816398706465980338135007378884184813413133090367717407751031010237142229474025941926380194768157303032660825958794618123516852906126899225937792076095287098768622608258926902245647961034962887296375269626253792966621816024485517525110736761647518429958780135923956998474010235278112009600699622893080203537361864668062400571378547317441338016721733203206024587174452031489064112365247290021720051260313880448753331077624935163997445955325649635291517473390811095231946497017887229308831664282458768888087647332074603513089694097433230182729785435654665380654572214637759781759085329793414454998609949729374107136278719004906821543795502485831303614222645068879351096442844454141400241582876846677932217464337261451707676127782772395723474553650008675855167419867681313701728319825254242825213762883731649402565571239231673794297668363061208163192005617319028097173084538041614821775329676211150930831248324341243721471126977706863064939344379767961768110623174873331744978905528976117648111649276197044050192306485072911840313848576601147319338869669679669727403871668424031108217539039832666442950283610308680271804213784988972388622770404951411456438147427077058254871603204823109413714465860201350807721255514852219283540228303741272615689321030513800431735269351871355734233552587073194469976933175544242800654273900677342803952035378476527631496178903144472582385839885088229857220284478753893870601478531316526312607800585943080838980047230695759912968618711372965078083627792658167786606000305365628571687432025150935400606925594813888386261284610093165609936200075140608419740104196012105980210065819323374789900747681010302288779797262442978990097446522008773240988537717614683798560611848374841505286898589440943939286200352527804640782109670303177985236390258005320011556439617268326597399695334989494620523609492201006786862191026054992428075217745751391769811041897606899859239295377291211066232378149774851020933205396645160768728441748860858522313967197076449330391879245514936841068399300832292171319985369272507232991528130546667213952692206219845393564671006516408531823616555678724240958209255966809562738324475757739421220182034930630535633266352671408499431179897875736131933453155985650113223996952546671311353075221687590525679838894463197100743878475288471125093616957689620607001679746149579385238120272997507495487751774530459154065250379476288114243535952852169410989677285449095706335866709548479517878645241493426692251341095650000935927607530389183263624672748592022546879686191101283733709550446722221364967307500865099662510240164519165917039073945026238111677498990381318893015404918927563600472547426675835523488268421247286633189909994793979226244883713372496660760048459901840112494966079204579515336745253585072860837105780290835439982570991552483003708193428584722354160122784371990393482310463379811459628306862924165568085066615558453639567919534182454053734496902365188187859134026187969324345469451442045553901244344997399252744146150762232890641154488641096198496904097057695475690872083438921594671824324198511919073683215821573352610152318368564878322429991883658188686181313353208364772443703534692029065147673542121795120808447168670733246714304577780850701875959014200050754265734122042711863623576995648864333410017101151840864333856470094025104791487209353197257547349373365238807942494300840412734498143230362128678603804174865457750692697370296705370557947617338239966451662040124693027489995962122026224550017857348230094484067189156007248423821422765342172480230252944271163067284158340411745861900732016695026416553344646112800921041297582016707917253839870882047223595850029278593963909458571523701529954574691059648892596857308311229525927139909590218531858698519070950727803852090926286352439892184204196427025604660961524096416121950988437675930517570512767667289211121236536320431890854106029090511068885130312830252577334401987574302654100760202779738290347349839681295206222188875546754217348870809693593339810400828787337438383618140549928179225850166683535169045188967216963748780054203040145854900739491236616207558634715472679232755420485022514276991160899972183769888935273449401256418720968261261947214931957447099957954279491986823068673656166169854983220763385010979357880981575169634152825869211893534305750302211958465938207468258072638880301958568173138863403862114654595584337223723643029319637837487463642658299731398548047216878876692462091750061694830967863491331238441098815669487959014010274145716601632111498422596835506101207288231706377950325491416293248496375242961472398281242471545677562129187631847758675587580799002891103729919451438942644068105627491872106976089225820843107910772147438584213161546743107127199829786166882536352168849188512747565611651283758612323976341637593448934836744000590035263240878503388032818119374947922324244295384981518492557695793287103612674975520107861936550230451842965001021083703593963947867304385822412508020438989415322347587001515053488931447569984869589785034292332419542179933655024701593487947895548747288590213155830292245346493062149982751198110983856977561389058542434627593816997814660932296089233720918181640989550558101393306096263278617611561791597158558584302307790764196254516655938960618618262289259488392724759760216777077569238531538594540046339585854139451452528914460143820170009820331182942339394090267114585195355389185893549263772341591164194229694603991684594533386550579344928667065382030763105367294308010284284031800062123194292606459934584549834318830056087816897238480901264543585282587816733177535420658536664904232553819136978255968782391728423847678222592534345183567924920490190801929514961845258930132590323867968581832483136919404860285973861368252080720638854895142969227391391478092275585252518978906393000683650636287584436043612852365312751634629240667061887762782430824246328953878844569588115905415316165417792819885987998116458767328064016368811892043272271070454554003543495804586373660080698347601557144797403924321643849748692922498240166905322307536824379228596548859309371758442669693604929596529827770910743086856227542188188695437528328696329064406667380414673795804141523759311651082452807050125823970525293192903266257613583256043734497270820654763106506495784444039188209762205212023792365013595120556344991957252946188407507311738986728083737007861458324564793261416749260720933515065063667822007992408810592476833578683394250153528966531399857773110308086490864548769781988667396743232387952996704534251771766228932517846361847556974545016910380265036415746655966546293432288775676433375146386012305372257749586625229496883789976962867441932586496584054281688142874703985049111373479451223271505355088536325087038286765559110759446981088273669727294124099122270460245647410641298696657075246657914456194771158009434402035939215418917534588258151004074283454811355820257155200847558507321749883205838687785647236638660816908897299805241521248176965121585650490375340625911858814410431089920378923528238532849056012552400428437572438433213891153548375815344312162409751469169839484881486736456446041496019764274904858296180509916081193479706406043498657052404025212497065514921271248586337000834430110021439662390458190813937635764991011613592572983721057488833103145056834041943438554876815564260755339665661384471996827444166773816684010083008770426966671360422593723331438867360108968985504536558820335251169545925305297599934935533381059515279569194075188228017904111286395444055265304216677767472256819752308215236257458781639643210623575198348241435080126798554380103565662067761990215039359675523165233214659529649500614490508482260399060262511873587700394722709977390703625237588614616841959746890708139201424299801247152853390786173440857060202648257635462439642531266267366771880926128700242616040232833206381016606909201260964162204564797738948080256880142886320424553720543590153943961935921086595068714455142659782458786780173813986163147900834666681779646252977749383253845931146583889592753548960146510747350432961095945752773178185874653114553404528819100141325893285684791517284255683665858750862625829983500791254164860371953223182936558302477463174200666498556333800121781279312512858709580283987734585675283649924063237774655022349842863910974861235336211008250197468848975022197878458135873989312945105414806173338359962624693115650725160585779303216140977070664217927833577798148642277119075268778780598366967565556085274781435032270481362747957047235803177640100732250987252037837298474039532389588840097987332797487744265313472612637996934869136892321385363346529903699682903859835954869594725809377461331451833571026609761715027045114984767066473568747079136995335783104620864097516926023381013188374356144167894780412083308898329820936783461207123527765699571318727810554039292260201164524000969859209018723917858038728994086636551414936844476032552300759708908813187455337456623542468325946977895814383296390357502056800119520992040347158897861647157022221471971889827386180776682658239892044961440227096981602809392480852785110320500312809637659018787876736460332102428913835804148903158629478244475093101755385692089003565135618627027771458701429881720908866206425801054984687035016694191053654522657499126929230773504073398717645447980317084488658169894602841028115812376200697037558044108294523718031795151685898760840510312696977516124297649813959895734688696559323512841582937183569537065037225557757828689361772745291542854253680847137394294354527730229317585534480775176887989995533747146491695180075528199282627195888399952845886924886480127869090789753815480574080464777279273300272478328079856756129787945381839691885605931116612186433029488012236423824615714565924215145535623447255112129739893217357959320118323909216524181287227361111346960200514438942452216270779564152134121690600572354643777939962633381873591680582025854962092492643835555180666595812702452446040692210226339333646132583240732003398982408818490202036282928910459843210025392153162399939244760537558996179989649749984697386516102093926269308668785835368547932563530753775318165046625853399555639376186728775773247675485929374647730475984370906277760015983925489633674643504627456940750742742571599691543501536802815162463030459079439279245237334641459559236252825059978900992505014963311470734391603030715546584443732059915756740656411776150751338646642229185681042701839701820508691386470405472184018258181103631695885240813287728207806886466635658045360716551988168926118587021277550955838478371855739102370701582512230095088265221672152690759269121601110001551145851666375893624323258828318770910098026033580901279506775748956193949869946880481518234882347609385639616198383951273702522836816322349667401091500112307266551923998040104952544327721601849601986446303451623392250413191783996224604894809572368467984326291048159325658103057313852902898971664750282168040304458346681885358438329000824611505393965871534307175453076225334704524008118389172608651748024048791179278718856295818447179088815270276956920337909645505129747595572190288451099530627983751043657007511197678832190913808633162012912934004583433705327171269998124159620155381796421592089195895404209706110962067334872123265704744882488746671386045653280018961616761644328545156855589716606800666869037089361943885626028936138004501511399043286925408117103422741821248630798223008133780893761961756078044308237470525579195806851241267593514222022480833750681354088733625447012779593914886074250897838499920370709200646327974043342246558403094425583975410394582114974406176677183601212906984891032922141940348377732013887736675922275936835708553833791036958436775922243472432639228992503771241487537076009329669429407116909783945646927504516428177501873185212666548173440445347917669926762529469107660855665418836979578608136827862619296982739256395407013648221430946499222587409324330295217416952969402398574105268618273699086926687013138661614327588251873420518833790377198748148630354647471322104182869443694075777562150427251489218149478976539799090789889421577462401411007968570777912223849646946253433038435916800019305710720968818640666879935615337697456234104525955701351064861829265895306685477823880166826996160557922039181128933599406673316692662437819639022515239572623161368333441117490732380546268757411929632488788704823988327103670152105413525479149541292950556792724740429194323144007265890758042289521731139971934617047914958681178925332582741115937435756945848062241155844051250122012117094637539366299015777927183210612513145297086894854839817815312881031521588262759141060405679572894962715079814249225486434420557797873982336882675414742866941692592542512213075341543608267517203022668537670604204128485123921214042573499129851692673009402565163782608139052822298456866131906380513998953443036098615938507258540486213577319374610318004384620175687298112108253589010741019148048464676626346486377233561815267402050319364471129791748830690892782702266791965794122462105760444944792039711671908195709724355082235888666057870208081098470314559663532341657030600325365545405213638790151964449380715346695838664677421337354770818864651109880211748570975276178945417114186254044827137245227320766026437567970956833095847321911752494818855761551305545132952983719660095206220294641973190915997995740608217147316555805437728938030243039106702041130909663572381317993591074982863283589965907475453824001689645689248770474508229786437914299911581023321518863954469423565739837960462005756010710682951209636974632012029711893415378975723275147714179046337877386430851193965783032714830805338482380846244233843022244327474134202054255837273017874076165540811630255551639030109619386342185324981102217318592392803300317710713014206420323156328105449275925109019240500827211629928916754957024771835668899724994476293480640884592124774580952762745834434288746419785316306082899029474599252528889668566606996068641633320554379278040143678041597338186805408967358608383766265668262171062907079829323340280636261766304427417408079745575893219774401476883974819900296706451391039428021940619541492997981600383522143935725995779037787223379500488027294023357407685530711120161500611802004661021249560143880744078497362662211723599915677981975598073727961484405037723969040006274144633514123216790845112579879420218126250303314661695083168569529689372029482761421656162378255614977777899011774055244684235756453623199890289105638426007651684043634745808261129192295181974815345103685645290231496418286800890990421882469149414371101599657062238521155791856646749198381061770913448611663786053611258101572038708667486336685008042301247012013183952367049037014522143358123988380175302935207718760312833391518002356943386587841899143914076694086808280012660118610346988295711949313975879948283742709500039281068951799360072711556547502509693196750272301059492802359005861700969246039615404079011464746821457326421683381904931628739987571388580326064076711872160959196244946992828775850272341319298358084379488725855878338564505322413401409887345415952933931639868750392309258022882218026446864894498586255928514972483702954715020198279541727452297319436660467593719482195650676175788462267167984147012176014995860734877186607322164893138149112416254770593536381291772372276146208903132521481236407421602208955774950735645507625894317142289679340710837924503211255323860582900395128827661402245348029333370181092197509423335578827464641446102521194527561453377101601544841254031270061329809002513177227051283517026723095041303995136655671178014814328011258920382135950514328334910682895230700347443798909263230393175634909885235010173583647000021050703708367427989901936978785557835604319802712058373518461998619514693586931815133287635695054400272523074489401217630300233411056787496944190976525704366143347003016379183047697796861317435193288292644906096750256498417123081065689705950396503012196118058654230311840516298067929304393071620454824259719755877785657263333249288049066883041672525193418306935272610149772283062771017498810840195214237962075050188255672004952614896952691367708276249623720997252202932377511042875716302426080299977855702238449398506739465624015850862100328276964847071177172637400752167855189601230705969898996340709225708313973674743561990169008134176410693140798763889181529938437286806319098569332346070927849986371390815092175840931132033519859249304314776868315618654019034262398730344702413423509234380443567429003507002865146537658957853710498340106826053363671531581628115914082608060098201132242101025372158822960534490113401675350872576572739833880130156991396703924301398621728721807176875509861599060598066595999749779915596847554858708774959449116196590955949670030004075834832888624315139240659174540995694925671669879454674817343831573551802082572193745003306416044721344043258186922124629747160149885362329381659879603073363029125142069953654087110467129100097816574381105902303073966423222153762640591100445392589955780242787528691364015576822795722847285319567097135193257445719900219347094323800848647688765533755464434435562222993896221922155621777558889128355528672892810776427017614589814479187653508493917664233881585386296089720114281373030942908590456921328807810403606717713955090174322433794604229399686940037983932365635609998777403880435225880837923476347766765778210453647462326863812302129675117611376842754504477836639217914748164080577913787137903821061413547281923689946890770758225758354359179747097081586292274708723405825743754909632678487139404301431135091950201354077302833751448893334701980387415845299921867223047169853569422530723046961299022858598111343043496098137378390089745755740065736600818384942378564577651737144385853496121296295848058562419501365045433795597392143594909267898298232337364448526639842334089176246689923343513420596605095832455148622628797174516067519663879524497906783990172481742093951816500402838192433788790459829268580221387078624544484078626968656116943084741370348823261167107727492177714560649737935014890773852482021945641482855211817150352758973029174358975353793932156146765165025553376599295683619146472608434339998103498006835703644646112961179787913156157627194422067724828975649053677555631305000297085724454738475507791934787327013035405201641768568885351915975563039643292853180980666956140110707489451085055642782871132272651563571825989144483033381564329596098517030009774400287962304056945148416922138541745070045254272317112528594129605121514571871323243302455097830090820221787818285090266432115853861749020256866336621604638519400303664703061316354426633455660293114136398270292667879932743138668031901243381085593836650053263009110484909282173542984549426218903557874991409219212407377249468460579661724619084240649974096878612038916944707234339618560115002673277533608231820877144998684087317414662594271761543775466591727634554576010495883278945616900225885610516989138716285013606168119230124122228348799037216188582283104128925293781910771499969562545016770590061749803295603175753002226930077702491954793640030004108610240038652455499365956446574617310427244393955846851707274195181352480567627669288129411241554928572749844196245059069847680428350656216861765047695087988179783709375546172713973061383665345937823235227024338564136055967301957336760572563331967220991519157826190811063395762778108358595245826098551038191719479002302699294027278752193194493960047410938723433758396546799994698494175203758976874622182785154366772477099790614609531018379132503420227874370122443209154708080898574823600850226218747477177949720829453074085290153100868472756691530369091348791458883034195128866797023264664219040301558332704734978676056574583729851974945443135752425371602161858796033292737983906480108603457783773912695214287450916251634711032382903492549839092488652838756123443776154381933574007682594799359049817718758386322621461216414727569085358495983692421412924962379257159221619155997303429095378850950473146940774218512685093967970629501916010272510903220964545220487531263632053253429716608532092091415851736402224995416542544329261817567993139751340955193663323112530587515605290241304648413231228683027112229883845776484786612231028483843788667437208170285683184140627843604360381946490685576438041868617314201876850173794527861990410090831872123888409702479399550361134476635743690166854811511608447995527647378416586874596225677557932104141136351586844662816502812215815004966750416660143408912877658206459111301396666568426143653153099116587085381627595967974774993928110438179733843389038017475795937564511449100738149758271775253756130182263701775871373823226966138350211875402727925914218810142926682907808339905720845706368778542238070952774617314028499732668125377425171267697072697180197295723180977589044225559207172831319848179520521659158411141546579362571507970802735744841768712484876146052044914084515593529797947603109269446604954097627018392420781391183166741318763325347938037761928969421576472717529097896788466723535369016037717570976553142096844178984678689260975339589839804577294939176711206617881214181612275706461920988928116993448192795276760601195934757031976476825742994406050357019586996251172764188754683570977888698388374764724234534281366463191015486176756595930790161155422108699491258265249886718020235141926167305348893909626074333889350696794687436222270076347954110380400639496918526303639723063069783994552363253576413300458473619581420692670553621335659712202020736406434875183276361757505120849326649875374445802605197512817559667000734993509400143177575610834326082622091796701033347108672995514963233783631500447898184618510365338081673621724552983089419836191683730105257663286676895439222818810936893906496252705733326969998199925296739548799874124749773944808989961413214859962386693904390090719132079970675042212914703955505224889996938489070911801222311436230138151503529521739621069345325847189235312194402291831606997140999685225423272663654746201213376112217424652038175017320805280454633031675756942620198210146492262136418862940043628192697173715372277772521137396417907591332332325869130360023804946701739456468390434534833433651669921499114156380525912215636642601438419622163864872274587126924572288501926371420794385459871588395800518605728359940084059161181814555708896855395905509310261066958896449458862650235841619856497574197044025181729160622693433224620793904532038848275506636587082913848174752180711659400641082842275636232357328420627803278454220454467464615944070485313178543013603278591509492133680621615535665634200159207406905428302145695218217015823013635122933538603651998699119203101803301914206772594724607969904105633856431606274061184211551901380797247329074394430658898951413941409207173997231046025008647438625268550452464025676194532930528117572549570267900650121203619359611819543534077308656679378954551260118786358287788509280109583102271498202119658586705251024493587175450559411778035628424523211960821804369103232619885697265694771056345768454668148170390735903501479483759202935590281756118967987367285495766688014373573789474666708512067612963029503958559904406708939463720072217693676838878762093606867516015938347505146941470740472293111770626551235688701585194980426955136276954078481593493724920281143469441597237592315965397234209385568879950056867846413715263134954656003920393288004398890139031494836051820248434711426734757220588747124153326548446230402764660849439222835913260332851738187932756243511081751441940381781351223427908557222204324153865714541714530953764355008030919740335803103526280210028917978944103299153970874318162652085850190908396525076977214801760002081212183465451937254320306050921517661584306676003180984772006640913181824061966646027250048137879574782103562753536857883303307713839621849995977804432330589375236484784661036245526873550308921848277945533920029645633253459805790773627759216993579351494916416140233554991117345593846590761421898088071547184202708288122767436953468428705446530877548581680798129377763298153120825559016874576211245166517994120205899188779325691107462284875967764600098074359935530041280864596258586169594986578912046447341236127347391171650112871520072935171546390549012210331226249050771765594205481745389039305806717292818881977181204754294320468648789458462655208565038335788016925378919139597523278360521955475377361855940018763516765576869846860108207085276981124163787574034138792397881202275878173687745559291150999006638313872111745151762916571154604028544565695071421374490966582123143686188110746785539559477323289244859957871630864906209895246002968981244108233738961333988467268578654527354290267749574169229629369688639184980649955042556358159513736375282200494210689692171712415308615320756766679472306923106908742382367592092934968556515444831514862712576905514116998995220233463558396933005712787841561384135419605206877838502209110427731117268405569005855703950310910753297532388059007411697202926406379296205463571024119741397370703111670010779680526643660505218282960582526778800135653328074503951272794886377785692479473135635308884935287776847785397464682001788903152100198955180278128370519698406836612067553971886943582549211275519134207907416368725443402214208780975512837702297592277959710562042693509518748935867545908177318663509508615005214816975831171152939865940029883068284290763728637061652436551141472893335799549573289936867731610541269944150029967276245558105127376743205945055684485713886825066980376655008800566770467011969225867086918862938605921017836007989318767813209171049950244093249505932803754115794547752964918998552243852745919530127604736240208453802564724234905690082364140033002189403806289621655319582724824105350142762810203275039541954756529659384067828468729035628366313090314353179470610075279554670011408594329449001959748565359245927184062094252928955620975742747071383065243439331965546255362971161011864092030396929797729912769207596626781158874387571577658768052052011420641803568231972767478225078122437245117483618979916240307628966762258019825465113515412148775846964806268685893597118579174738322464451539260699496380182267571820022726892333539377990973655578241376401973136443471105027033334355295413532227437182993943161129596746576051818356226386121035092362137717190218476973762714653500125595814270338600229186465189696901928806197203845596956012521193379720479660277783295993695063932465471345391513239403837211315850026840427526225055131839209241802111195342630742153674491894170870919925219530828256002028707003320715863717055814575895504708899250354676022220218781516930078498612731856444036829397077783569554087876086115226815422508363944095220835900390778371941793007888161983388562883655012087407764247150794721173386575055781258647077346361306828205094259525351568532486846665471499338844544653636348893847861756413929956979733415282586890427932307154505277511092038564932132283066979747829419446725218728232678033886083099453462303409862502447793702576941150477400380900637562179809742046483028519199326274570168807002632080789827429863944662410966139693696930869813182191344087181244351505335930700343963906605159957067781213581038059467526592803385811172148472595672592656652857505849800558266123186454553476250630935404632351745411712437824000951382547128615053590975455220947199598685424941762645632900925779071290106409968924627017450916414934302679820989719138611359458536950096876146440865565059252749559046887738989472152452957171672702467706928920014304919871696555829124490377076044414708747159134012583573873349748492689920886293466941182195969036588043917618744410680820238917306090179217510641164637301810993706402647497068763923411887401165985100332559111296812905636729099127605189096205683777802358668636015744447308588442762813444281163122427000818882128682448979542084111870497969371962343130644407978188306902816050662692489229297921273270303763348901841939808676997940674859237283588107669201343326321704798523697045243787345773207522617494445181813874919629699432722362096553477018075405117843063761586152014045667338997157098316203126242765902272907097507574857952976709851527926767884015557964825451878824189768362298967970857059659299600976263862038380498203281881548710021015030336611773903507696825327137995816840121048546358289387419101985457392580057341751060351354476503406783199605658331514837574130572018769084163989076379466592671512666920545098114550205908243296771315540291168979468049669050952930996190453733782314100164686286023523717499015925942113818016648318274047039895400125961192074902544878927154326507682372591738148008595874532074000172494554516780800101737198444555907517798757074190418528688680487472887312598384940274130047396420641931168237686216079562161854222151270045456299289748962343004750786442826258880112572831700236852905519123283421104532799499644371438629425240616910289663365075695547194011681509669497443072890103194212084796447395291246071675376965893231978098446968858175268669909704390400309241806239737763899142828721721767051504328751045672693659773424000144253301927642762289104756732501728332843289004713871706421437457452454483709201113259027579677498807042002916329387385120104658622695689483049432771650757035622314138907671137865973716394672904210869852340749481715760907598524803539933410423463375627082645131182564802365734306338432910589617909033983814711788709788845253475350465191198582306279016295737884337750326090127972928386079174099420431497529128065004903167722260977983376990273733007633917983627707681694861931307647952438201088859387206124075312688874016689177384412290862962576104517912861338763008193864491429244675279963318161574328529128704742797179929996225119294842292870971454693803154122704590504553753556955575594516412300426265194510257350682335868263472595282905315546759606052660836262938042003114440718143139601925982025127703220651380109213873470099597161404484992638302144056788228162212142266487207242088346648502479087362623586120670929911239771071998870271028267769210836374321703106352510828414973305447494083437662253183774540096883809039477961540120997829778608493858549292825928239977580795883644685837854977677844701933907110436635583321021514209652751769265356587963192695968559991021958523924753465832574523099279648866620962022150664604670215590280400739534380141184172434171661555901824171937601107002922448825348345127622254516323031213568330521203087444975640564318470011074807590639569519984640100187966815307607633474966387119651720025916794640761300916672647445841537219201540406178442024353782282866839057008211712361303762554321261395384613853479173790756341870991864152809763372269424176964830743341268875806766389040731676010605144943592390761864804393730904408162327702494577444652913113445811872150858798999513344184088918684351660198856487546789008016395391427059472356456439684567956331517238498215121047692975518113453128340275490233141201560072157279388289953892167214278745237023729390627672476253728294159245272118435011978163167170657134943436289048957597215972630145461686010837946728475942863104809393783274846562361006421387355816784953656575850175403125495646562779844859338876999099068923856003275788496894904315645877563106608238009008620403064172470214281633156241457201687265821373221661103798863326760923386502187181445271711369239218831612484400895930068596431032637804998466172278472183514741679690663661400809958214051668829845347116489627207571543837579622925824433443119529553434773227916532917285624929220326985601975263759223354854178287917209545050849600934516567950847985934082190569017753722714731562423419781461550290858978425053025571223477276791935018209990388070093239795816125291685073743277263846521277198160182802566190036328701286673964045748082318189838004376368831470902427503468526416342261155377024659975096314932131744247440367220031055851629484014125110769309742339212398398178215858484147122601193880717623461515587724526533373578278917512413207536010300405572928506037899541482695149838262003901736769155166395009872315090900565892251959606434294661215661076138107277066919493100256229762851650623421009922033246247809802445802617061345370764590796082318871043108226003730827758750545671290051274236426722847368694203486175886424476299709763990361464736295529898400176354361989334187781114994428756091544303261937786800161637612076594072012471676021197410927667930514205401456956757660601405824774701418917504928742655301137763783141423529312118943966454585080144076466762657486520173224739660758699799682870583446447748921855101577058299716772734531109275725796462723393891883722469695065762329828669534592823119471891704294995640555168594572808113315895797818512960072524774428838759833545824826073133652269490571112099707921493540493521731257220015554090910516971572372879475093702493930440313281265780523307452775889143509428095896994965995847559513820196143045912202448566097100486954573881734143591718865764979752872962462938308185849747628201313306253528353475818747940674805805451884744533969050709259083137373494483417196934070522224727657516493801744750365201719650455570616202886102407497914618679817432289173685720646953437468001520077777377840041381601694282666832569765431918973298503031734004127888259478963179110602931694943764200290683376735799070346952363841784670989102160113803483134616382942797139706119319619418359527587970889378865310228937188686168018534095708035881251285726493015540117989105513679921081241654396420323237814808102363559027481538107524126472770025104283050741839869581075037730519034021677953563583090294721292810883105312541033566862023000005594653719949354178021239197421841940349725177908713886549671758810287100491992857979919666319457280057394352523617485610223774371025352920376848578812370362856485608959799152864316752007488144839767813591838197118148296505369590789591606518019429302729627989559301590025409684033394714524355931206116954010135559775093205712589764462392294533281756016816256870934485262841611844778053238554353502754735570673061273272779764769989773936336914627722945221342655530320016076835921435672105664926267808814307351052421835423005783581370834748256020521020079327947442020084521687544357082106049922093810860338762093032869059481449951213799111820744166444627825033978225166847041843921507870710184780292958049994546220614271850051761865001714144804212170553669455899838720941909832011916466705697553247091167818543834171570266630349276205500753089465501115338200524562026318098033499681862213048456383852309406464708694660526485143649477986030207654874801239379105232399540224411665041334323961131048714505623671708866797336483779739928183810852037170927191152430648599688575432523964251322664772131890472962975857555656045864606181778417421984064757416962950142007304763799272991134149730619602991977127023342825549450545188952435595190087474598404004922587147063619747475843346843488620097266410969171313989191232949462665765342517311618746146435459299160867599525415894299543366460126168878978200394550103742549983569479725074537407207434196283664084288695822137968442496965785767452467645138484293833096916173234060219133918867048528157471448501408632664560217936564830827794189053746472363289090935490783215529236636250209969991736012442773858324231275113236429187355518723162686077912853555052306141280852719320096548448341577888534735233704694917191565636532406397447678790259828316500558481041996739390601165731017846257607287742617080839757538389386403906023934110520505032607931186670009656382013772832814574964808816171664329199791259388637667602990544175966767136323485685153401162025717076178031263006917979000755537966955396901202316238356066557028601509046994955434348839938355238225934069372387706919852576168159523337840016076576925237824507187650009337636376415856375958467114841193801802515157570751759084656024894532497923505334350490628316396606323260739117901695938004102228405475962122745214841942322787410006271779361799693309307943620879979687476142665108169001956883487701034252881738103808791756610278620488337118668578576002967962874055854514964552077092709490878578519022297224558654592280350421157475902489531504051767787821454423238105382122337745196496173768511252098333304013983992119616494622266597500453714977974858222412855575908820267971259776203079052960061551113166018839841696965138646783291547723137844749700098685745830220254944929238572269868098098102217627418612186252130753097116878919187466325801553793006206114546022369320245872789085916574835631367091463352744675387731556388584542981073401431527007148767404220043006440523073077232154184340246287677011406539583119905728497646849798210507747137646808467246717888265970129229477565531359608224693186456267549489378542176195172980949299366983794317903789592037031102227787679771069682711117008873479296907520655235920221291415111071150442724864917746436444175567332696146502289663391580668106607822953662721531634546525761681429415228640631096611504391684638233806764410013012430576447412412228839099537996457865811014963543777471777977398269211856053086304510140460095462861652010881130920183112845592569312868353225419244620574916736511479960646575463868877474436567543876741456920417478436597602311438683196079245077083529191127534720444835020254540050976904750925438815611020703700458387233506403283885371646115596813175879126721061686115537399076480679180646313353635024645013337587314904992722040404625618122214458901527889341626678388078062079421037007985803994782527393656063960805555191004872384477969926404392650959008088171461048943695568122912199695707593326592399475156318054202244532211803481904342135401392087027775566401686437859173767456365997764247456538496965319808068960778438612684964830824187323844616699492960310200304737222278129065998909142000546853631875195463185139833810351896594181841660836837575812069004478227427779869848009170269955491132766707127084222029453125799809176242301441600576158407179831274181494951973262004187876962596017471442967394883847540738792700214512709354988940222072279556940710271424545253624460515847423881499147740903743795704445687954649784567146343232592056306046849924331420657796268020341283319552526671156868038849430408319066600739746575584519972545679948847293091928582873231698585051912443313036363035939661291381312465669485111417571571736774028730760458032135200402148975586597595528261641211908115711431849724929165297402427866658796174192612513970540479984930167047142604269784521725837296857178464822102073828510575932243544053143377180820262377598593623001031851851938758671607744680527902937672903637056779828203494705139149165866330206810057331308698943285108179262921938524790091516668424729587116783258820225979263612450722668702925283890815746487605268322960639817383234538943009763734151325059844165776284418512763449478850945979203624891456043780182524445333107701528767847630170150523029397084400608674691155075190813165773437822449132990186938063638777470611975722187882694844746766552146938176992629070866834395753741185790875143888876127447010769330488307676908366526251254822041975429093118536146508770175977218833990824613898219410621513137693655584931030913500352998071545964103081054035087600692704479366478100140196733241078079441840981689309829436783918982355004043434173154069369800115175820589555941890221378715845630469372091671025622449980637530776430128605087391368871270845714500325682037504931855699409015714305927623472518671159605641597941752228878607527923589666568496727275495419221435382760797538188339907030039964435050830764843231147397684553565370105678754173818684190073302344324333638977222102617330496180113898849831444738656176206545226835583834386875282768034485120243403336458439962355990070494645728658883549534613380781412147460462514256446408514515309491799283170001311879608765679999186317334050499421662169088692227977391330235022450643795500141354502277955432212395626812498853822901645195955556415409908024831197579155442875310097297210105126076697761901073683072527953834152018769029704437600850180334664871439189138382526348607986472129831082751595427362153575850016730190963990283466075757687568449229751803964643196520485249948716474154901330693541479466687003736933719596260023683180260966579376947705240286712459893373713752595467015238685005940787116916213822213033919984912715890562017249961801464321014452335996539780614743722134828801883729119864457353788959421799412487859226622521581217982588993849692725660578957436952260916901979804632455438330468053994655138740664532410494319999660329956715180928064226857143686696909859148368299270619433662962203401776575999089858545377894553220769391530674290145265950320357241066209537708361004733509767841534725363581702476479775150013322926024748346258211371311538922263013852180439108509724181684202078269384950313248392074703880774032651117498519468934736929024030794176913642097651292806576574534493325528244392195109626904158080751938608491048662088538879064438054993488972405179528397230870536110475319962399882233000295647746049359099624240948359153110924362423654198483216754572908962531200211896102437626916540240707642482424580841741523145060892006857103758381607697433479430266490232857764383522723322369629595385718102974251501363311362588544545039124002968276881397810050901459766847344673212884187183435597852194831437140859552602893544820623511541768279124262652375539694263673321591086411285423271564329991603826370880145721341981163578971760920329583667144693863391026588545533321212297258666476898034529686575820267362299786202860778966490970558615198254211312853158601960101407651163235131763673539812367554778615407958423103245208634987876493563623925629637946458970704130310410930757733374203934834101864198792752681665091612298158359085780631216738475538002119683220115016718345292196226429193447070636464745689544300044116230318983402869721594130819489711205799912406802857351948587941724145202938982477674230044359729384073624193249204450534525023865751633895064715374360739898985143079082414213184420761884623747182727373526757365476938657563185819629941085433714352354516763086108242808222614721338193584541094985177220554542162824168253077436450122787253545529595513369742408147243314635228471975676530567942488311936441063201233351948955353856123603313503901602792277829352573274603813200136354813782476369080287295910083369791041512129787321733182760085243751633771984535109740515966037855935895883211644543722271758739013114201148990809936780777367830391536208822938364264870738700514499385766677998777787250588682588480982309478411529572195043321965295653597176936883326973745930997672507858482929521003648092695708818768231640804012447707207489805671490993830819062585184777024468908327136713109198813517997557814753345761490336380097264418699828337490431389149409734571452885226658767675492147188887225366547711528677620513285984377485356130940836240562339582902113821957320182584219560991121060662094581457575118201457622026549593884508531243626891665593336157035996423179352789057357244359136676791448951202182284624968014586582042013155115230258666109013912485261446146090690025595497830407937882561963539982075402395632238124433042368642282363817571966402319543905026157511211479848136394507568958633808848025745439517496487563756821662315411106738425461207194518300800313346967591735879719039322371113385865928421903059237057795076512960832703432103545102979656994489282636359089228310594315705523639456082945419641356421003270567760580627239543785513827172539554467109712396720106778390621512880548024911087377039528998163511708091086348806477792180076048238098414243739587920236047091484530017697548340522429341449637585577567654515438233056332097915407608970138649564372367306037796254619871619919923640586590525671265195922564538521916092204237892243822944530876961705394028238099543692621846986219916542836662204328354501548520178361864087916936727786551855880276432807330352814764287623248518724170334939614072663465454885212370327145815589322627734333465571416986775476109950350507282639826848152261005972427255604605951495475042429084073599672630801991447742631738910513836377818510294082696139816922855085967725301690478751537410934753566872575441513337175118418446160655961256150602826944946792669168014651090870131861220406509273142698738691228840677500309713742137496309941549923631582822539453989853941249185649773789381591948571247995838068476532023374477992989360623565369970087558149141033442714487509762585535113782597356186728852060840658247012943166952268183984052519171404517155928319245196027627320118023788433911645702272221037033405041239709854724651382247403294953760180394323820996134494644934215928679067968135771951360153657415315007324868994579957678214868528203213610887161048426808173592321111638334251792883461065933046641390457385052760845821860982920723078371516766820090787399120963152625111458637643837132869083823941100003662563504502398542387965602682198090991410082385972707860921949222595169292267437868336018234435716094952021083307156552908914248459311563011674038741358803145228060214102223597457939525919842848226333068315587868537333578230460998005224419337737577044619298383589884371888951010408483942626192225333824128331154150824075858885786124795176483314081443839854895333215905078717512024686752739587473482765677850507762224063619628544099894862890181113434648146357702616515672961205972545221089918584817880253844150055077369401559661793881036592625197767372731072721064047534437871305946267562903350204834442071800586673227609875239585112312648379775720535382243344640060884708870056459872631597426527476580851089998916749322139908989114073168873917326728104399288419284738602798346123276189817589692049966732468819625043320399362212200594172734366347708966189758110168107892927962391782947862149497593319080916270909884981869553841502999273166908608118630125650928371476638988696496273547143925617021950294107439554026286813181708928064248268720818496731369066600379568421368628144002408555233929874030022177892278443124459785456026714369404306676481945520974341129635346873619571511823309606398891739198040491097862995900080294579267812497654672444172338396313870258110267545592814908771115037521606036537353844837203809756112854362348606576870371490048807617087598827929111856655158688704657097173964501173633528129433524705161890283469381908754114893798046488373655516871628742995369045038081140769450175578041378898350175276593272891830039481641808709372171786511216415812965234801520414005160837434795474494488805536791212601267380579483093247073121219656146944174392689192355681933948342837554236714020712008401758887518011555636635859403340908451652012963175723561162613356550498509451983942491641631553798491912662539512100182580474235989913471158289040088074097056989753130914255108471600929931624473020054957695500863237631148720068615599005973024275501061745105158236258077265781137546675820961250758532309983763350871148874832123258622155106940345453802092181035997303626231940144434561346261647400657691307681545868626483401124878205471581703938102430134390920276273509148905926345998629091769099309320471180918814611929390320899140303471615510017095618490278403473060559295160580596067551016859760858405334034646956204024217240080610183057912655729638202906664936933045935710730027773277774208814270527374447762567585549078448758171132206096928538680733155448644195775926905382021133292117107425805542306042027787108838376212440799541318198356896268556455459955620524590932710671909174108975626768006669487135508037069154526739188771935444153854613614400908202415701020971882297558517950771775053917966635917714794786743254761864507109508582393305097227613676725999004036421378327367319403470619952738622703315426516196076144366525267818148273547881970039092772456091119257186708329255697494286404008943843496323593319826593982120534894049348582004350448947428580578506557524036121566655150923909537662729124828531338496412213434937884027359042765237397596378451517977800620976212722980993280331795591439059876309430309305435853765192466121531348014701776433358874765223003501854572911886189242399132190889470520572154167245705570069184243687008310675933229760460004142047340604430076714359804201612010039422016034289763477523906860415101656392008181877018039347261264696086252856040095480696901012606340931766288891156769889623143882482724056197435337365580600335356034736157344815213657389122174792493931939684789696843262825545774296197254692091799312186003930905783193473127988818455476914439654062232431656130055651338142323465007509469579179170366286858690265170660277787408129765435671037206111309075363155453864362777412314189643229715445064681571617183868269027549429287810564491480080838823581584498480949564276679319083483467124308849944828693440679180528063479132156671608247846880544942747537259121012360679621203241593743034989634407299051339426807371858869730039900728155877670970872893427696819630001728936933500517390416575385042031196042750514102890284807116096639902709229750335534957989187082019649873790741818260512990060970411727757905711205552272573743481535547305674153906049592805911639035275955233696656629433426098021163604153492905770880354128844028402527029231441041171364949644562667968404830300948924411186743357607325559428741738957798185295397351496983236665102411796903900489900650782340212784815435171051084153039563750776660749262106107016708517355364027054740988844261795292253225199877262326983504063057263024446317901623718643063859980473942605611820130117928441199539742824177985935012129469538567685610148454599825238517646371710867885852096533171193952704023693829385945872054055668760519555420959253469116001289073945555149131874120245791295668691795242865354538999576906479212497158902139493913995205542887923262136344867695573630524967436552816535527296053478574338579719447034865321950405795370924161939381877936300774676000762708149490250853345660525048926023626893298850493249964820767013094721401820636539939297161388695382748572551944545800605544342686384511752486901020506156840529027601224853089690453236275966090824830866333183761607153820022945515820528474089439816258385716092626169521092823874048210079563338025460913410437062399040880813484008584272032589775620304868633576922081351914306378145063189193176735017951031594112653058728830303556233802814880571500543488869441336970619283430553244192186319718590932066139024763872240902167468897812330453181585895556786945897376283125347053585667864937524005860233249317275027347604821366164151309445636145553226683989847711777511849831429492900859321567762672606845845899843630121058893438901721328123401075976073565707506496870525388590226199537512268115209633524446496559435162809631038092320867199262627548229351568135980759892704621655199359197817683807574514719966587954332436192386520047227309484125545304561827235149219324412153492892730193070336179175277173178728640506128519547990740487390982707814830150683590719638421195412630137761050886802988152872634770467405140058801406068704599635841936349006332265236946963802796826819886908419540555034629275939507530220695787063168186598461787946624025569837481554303402897026936057131316358371592624191072347772601008619329400716714048225328390155082338665436953762119538510124698571828455407498399133541471919177274634353686249176418140871752259778277764122822476340479057011079798773049055360025237220625567291264723767845023616706611156555746693191309195591393593070396252956150052882767873961023533330938453848875284152805462090269871683973872669060558942465293504098568948576290770114980654978144574090019557114290465408768314730006640023444858500239221177207660897403093698358928833702230491095603911825837022553472199824217250076149102588450034788505751209143823489016368300092849014696218530810548163776565232631523358474096780037445651947234174289950821174278615944378898444889832088909783243907681071085791186346263108008569683964605810571902264756515427197177475643229963500158764967227761160138365869337007381270804102540029969710663822232909580552279025504653804561029833809786998876094147139150861176294536315939494424171182116451201008686385762331815378508715324828760991103237898754334909045569871304082760337578593398785248306908532462633618562548308263230705656846158261098267738855652344839572321819013100313534989074577257674541153601832257574454609887681383898577783425780004444627205290339625332595956820251900185778705074961760201336570690113924690754354861158452612641161084318971209044254652701312708882366720456746327451933665347302522727611534862733677601039916571328588036115084434799387690891649031643863829527584613364687683298217326643374730165719097607893468609213246249263781754514413292770433477983631603262865907803866352402747713017954802705430359246553894647344451593380516583444247699217736373327985207954558673717199199428943475923020051482534998574088088655726114640578541736047027100019805090759231310193731933671233565948175476106909947636381888857109384498656418142241825193298116543967346282477272406262019936908231644561051895564255501954339230183710507035854658965369445688592065974787679128447413676821863812798932579907048957711223122736273498291113168985788620330192782145433982640854939425634053493780065487475867945687967399571401479016853678739080726342915691885162456426599264972544807033850044201875436019573040297818909782265912502663199875002693714795121603437709976056797611003152944186941496169088392685568468202603228424997784050712921824553031306705596816493148044140801104639894123709578552667590405587156638796283446124606881179587105071070097557768822923656895560409818778519304848466242733915121441372166822178066544517709075156356443380444139501251087913247797276495266672882094341772483416987360647053965733977905204758771855283511668512533307429775472263519009766988847649363273954608041515383356998390091742747584028348199805098187162032678243938263830918132548092579956670885346920419061009945343148175505620987572406372669150386518446424760473948536768593416916404915395431473853032291360548258553645791060572116031953235581711805547988549614169482664525669094558450204840200387039587239186986487120538639534703474317398252769736407608714046313752854676393201600404243042354582729421851656199537564554448330074687691561790099711582295264861034423167472169251433994152401809989832548372880821247469842323730392099041545624281916868253926855822305406528697893693838436866247533179434909334453333971335629894051901225000300377498706796494475210166051395247829480223247666097537859510238034848171699692661522947166083595395487010408355127642937173386869922789665037531055979808634708317498855776018974515244479205508325937244722896923057941661839858970611887507964886454400590940969258463501052299510042604288243696255274902962141983287765727624996037878367589388513531990522257173380811213464489186333590612368801455632093491617249579681896814025373387196499869879798149648568670940566375810190425525690584502510547139078978752094759925848309307796983923223461799205358280713195332798743317611061761411941443248941433482034294213657233247445515059634163550209764497957840043818468264355831521942137804017812513309805562579199795305955317357492216291446803209308569154861005707241176159831086146740484586471828368406822527738236198430837523129990211930209087560655571922947357010214745249264826917402743713260764694349272369776595215301210793842980342804627726921718886992058352922358706092670231894276846094290558853101320421998590481347127536270986982938570874842004419058024145334571432727091664948476698214864544766389229989547193206392512624224037050977937055348748648845411670734937265492844640553253184423941528467541934950383691435315333047532513929428027951796189131657175091390205628342286828429231802085171200590610431019090441989952405430942382088785176646105661775804274640073497295741494407496625315606866708138924252748322097475204842265903066423342501497253578092010538785738393377314859614366036350910896156426383021648787919528850467405414908409561273547856157093591120810068102611708995113749317992194410562623633718736870987790428372969759801909364258212072544737171988768730605160609975475834313762359629459726384807615829389379442795278835684977704221792640101078399797048072805434972386477444245738029785222684544171440626245651060044456637437301702477067306898096844020601257303846549118892513289653969161000048411065850978997249775323451865831585011700647705986070050211881109520042714953127329677324763492425343735323883846405959390244290138202931368908020786976755677647682199641778773266880255062512804990690871012283622637131196796639011883072753338870954340786831963638623512307865100946641205531078131627217093170045418328205755893050508302051606512881968972550594469385254947883588961252077464548734750597638663610413496680272376106568856745870871213797334544324164995310393114479555587504566824503958385592902447778990780024510733432429768045334651283196504090118345271517138999769393636949761505527665948938464362861847566156638696110008527451509139322530765331745295794448415932545154982153071861838528994420061380691573549618850824815966949598936993162596505140249232750946860568821434044063829415316866553588425499291149299830113297480857130952821497313110447989254270693100074198189574445454125161049953155562834479685665946818774440645894573318530457273892696341500329996249411398248111881100471280450970395607593496803330544179621046834964030873645684528743441440791747059080546627018516448094683629129317501336216310580343089726414002012725317383608767130691761573828752172737997822967996494698964338226537675608340849325810252525657067327843293983195114860844335962027282732539906882278966992351266081813346644615845855793213945474982407247470781743419069204899395290064198739661036249641013370527046088489083416428991888609837344456523114841773934373230899945872647073162753525925312299070382494973810733595562263304444566605856496910274398101136186482533808512016664349353307681161859253585079564762094637616396199704603185385114549992775256005840613588115604096490964624290445458120360309460974377278690567119202258979804047736423342190168922499221426400713048939462202473337916364625320626494722202117025291876668779422294934257747531101704113282690417502947884668691191998742267198255835969766001671373950564440457844008081920684253642841553113246326895570893232870294496077996339522278404153710379080092298212681336192984365275602847462208851448037053048940289198874943919914186857168841065502128139839092216600570136933845731078877291134356892012854158189628804279669455877084048530831936529091687079098267141731725981988229655682400231886863832773350422189995783359481712854779391311833151687581116751359603399459671533751702574928971448065431154752903390649106737599858550364611958670909780146438679017309587651224297635313303526057732632137808117745793164942258884310194290962152041364725321800580859842070708067910930042620188352031836913925381539817530703342764595534544215602837915928212535889603521334639102575244243231663106481906044614578021518728198783708198870564156651372477001918431445204661367956952197705597312969854657561878597182645732014522060111264140009386512572376340828892161138097065799316051303658815917877053331058782502200556533723986058147939313448601473976027329133212894036557328703672672697876509017238387894588747337772911817134028796528573360584130352378994762361133060409553988723252541637669776979873229857112151412192885047768603126091004430826975278707313252755541433038458671083653951750157769416600317638348188606564592433551810589989909533215425727145534939076777122567772663914791164052778775432517931312987514759746276197534906555140960257095447448461882536443987245354540161175278399366724215759002812087619946846292416610802509559664692113307207673676008266999601766646037290992564845661114303247553335820802094411887731331985295955842369813982769324933764983326527487185943641191810331882059089231448000402475917356901219789974261326680173126543699876322289544000833974371294597040405320429578655976267889343102216428410189146495320229680221942046006510167434508226926538276390083515632666096271760804577926975017169989954149104858075569600239320996850602205924046750258582142371761371506077425936949282147826501869214915515570960139886665844493570754519542947970953542115473544236961163005848647401917550582928828520612436593477554020027753439021185154934222574842507142713299668690089145666248509993197252854100830367637711578845634067974698083235051710921892494240644103872263758702071573287158942321101483186700714568465539631144471843769465926405595371079677907552431381444748518948189164619398083712290627488175408849140855716194558194551932399869604198676081489876997743403665421535894979273512273706417338273257052087172357932177580854684597150000644004133930623356942091764884197772055740175601737449215804492166534971575615501264838262615070606495437551514946579864088818855734273201812636618048833447117756859680217196975714149074067974991687043314817347982046672915228439942862341271456239707507170256487585310267297810005742542321550936650993234575640581361149971926120946539075547767114341125106084174569465156326239402452179880951609214502664518968950428622858316618722393485877720275374061808517498816305176349532701620258056929190387296364212260636324683188922607983422232030316147868169910214075185316471733466338304462142694837851496759546051260880509018504573017733489649005811502676105408454955843521163728163507233829150813742460365186557375982652606851120284176951420818183691440878977294890957545133639519090652106968090292522551388734008650793361413569638405917327781833181994860638406910789351237476081869966395146329144159842318633654510964476704698596813131439290630669203453016061571266587712418852069530925272126471038544046378478398135807439585188304533745580727942044132188511947081622228981300162995127738352634607117162000867459657035589478926636353747571344660875210036071322198602104708455067801807892848720426936352490416198349161076287643001656102969007743731703185908093910096009858447294356768530191008984455917662677883765591166215240520650894627255295930403766755666958761011704066480712416815224412291754082695880341508123526229480990895559632591120525611719884965663577738160517799807453811568642817295326048377072000578900289266152483070191248240029568408990853187758794592130983775337395587806759601598308953645957198389008249445033811678657864498543292542664283648150840573771307216739041470696838173272626905910090943125471467982147926872290623289433350778300865702045933521713987047755615054022826643252005897412666086380677741320807306225239256550675946807115753506344151012740941108105946015752316204178892442500184228820193754653700185965770472462889675353082486622605426473955757756266548397360666507824375355495532494902834395255765138048409831855394048017680257327923809405511681290099060664100122964980047015903922384943252349821536475951378583690215995172530228779120979417803967741386550027469550222308705106386450018870474307272261521950932418304100026526825185491728854226713317634911778598144038191460323256179892986093671635820400241455369176355094668553857774303495181815197082615633375296451683402122496962401052109778805558430067133845957411385714301419766728933671637196891630662132352217777290241550978180130944798366203036612390215650287133552095326889157357775377464507230086945317099633201093618607813641341327549691467685578210072726616033194447648714781280047528119808420378441491312631858045995127634017799463221175491219762479401398635110240356559318216508108314642263189039584124563782839480547828351713659874570272034650942959312303238802404041218658171436820636710374647557790531698774106241591393221448909895042707352844554572769265035673559393561014156780694263150236575109016949563012418256674666331952716872430461656749359598229033500998129867096451752961344163790865250643289128010923894841353149014180437128380018182031862175971327485781958521399213080982078371429514503578467269798259712846004469683728504091514778686156665033987853674020444346562739367774324373514876061628486813065529130895319287559053758579863792194032275824446004872678835690168932338637603492681564460157287287961847337750942431749669134639550013772692928837734874921025437976431383028334919169193968646169599707172792618144011104059172699471434872552619508721794001406849656176799713096607171456320449719781781064368348584234452034205285020029903979642597140593708326842341915753026623929531531961943541790187750930836975448427847804276259772781872992615595795448683309621068118897725454439734452271906351992483933070797426333083392917129963197727483512170803088564686486895234925536498448802904928211917333127556948931806181500539081883952560908616987180040529447462651289960951940136128676878506242469628073078351382737610530809859010974488051188499082770834689508332215610383936581122535647103149171354644055275413475682592820262375911216376369778719125313952131078582809869058647877138286282563371451712684872327642216798836860895189058571201765803958229848955786369815793519858417562000195813072356597597800066482400309085753532062001837142927976096458541090888787993643923743518885724813775969847801448524001040048857962823703102392763662104776140248110917740379469770438215819342129118135718191419233335540783205825153369651222687474202464311011075486730850554090635233786497826812925375008596315964961391870623662375746752801352379912168738000952550168398993035982562133791872571062974839910433402524251747849523234710919841772124534080364351879510146206382894800453165639600338736249820984792722605751992822692477758353700190986061068274493171542258354952092127648497453718355399345921355386566699854698895195503611410246807393848399692355917456601408502231474519742732902759778464166656352778532009947842747451787858078501016912351416256621184225625573673667538686576063303810578268769306220030217790921214005548981122498617890369805543752782961963259367544444006566803311289158683516108130322777764003954478967022417709009890918380711164647993599338402645462949460769957397465561220914445413175799524015850699596146963306796293876513745306601052491915845595086737727891111189511223331602091893416892759199931247670895179915794772761708802840599587305989291990992381457959072727061451468637169927627521063273849105715250722027522260470340310565604944280662273595579169809505530479505139568877200961075589661800386463482474700723890755415534999573955808598549488148541101004822913814675033789829180265882682895727263104263939032134632089317074444517564105077069892322101281167227764115110803455922564011660147537380794726358327839078014601882590331406101104293473662243322731254433339090365639518907623592147197583759560064752538047204474344367597265343017657784053731793435403637732575243926354918682647305320578621751990242922236706155999210101511597618844315423454554287718560822390466031604095708430596399746200487161031632286254518397089969667593857270758526489987630195985135613472920862114484497369111152824525521144590159652089259604268949534471555206458527646127934159991294581973510748853100114068505916177496359786400041055720962958465603054012917725357188124550712319809310830413637307505930703874658356671491803415451329985631604428586607274388683008747353672600346525150879417227433893593035567920476585672975997642960615590499742613071265526966214063468487493751976481430337161761884556853899952599881488045105042751548481161913424011440866523539995974560144857536072505469021722886886560365460616060797671318864060134932530066849871437479030071530853590306878472931279441203341030505161207362681392006387861140984405405998551024648318825211490154094385869616001082837794475915923860532715403832242599297320699416106586087693702103068503813339407019104962900409857810538569251756374827550338217545484285072426712168719901648174431831490863764237764633308292831388023083557884697956802197562589153922986212617938186492628971097998205237063741199362278442849962990772196389736002787140694901319028848684306275384740678590430922990518720949089207200659485139918874048915005545216479887669055071589728716689749782422783748542203605201545650159709695655654790590121406231687538393543326038484155200166317923530973049025362924375995103125689986158672000811169143934647322013286136249565843704728557629068556886220163132144771685198883237132708513529014388589734080487368535618594761773167939161075150315167057861874802585755044671603835295311497208557268202779753110334001217664449639747001544699950057495682841563194344126904411106668919474682571539363150876344191134763343128413751179381947302888944744721815915545686121524717532816810994809385760785178734139915479215282568891613064951840689803667450248151609873685422737302624274148392828779081144640530623683592946379786835007076633296867382693805341779840328595871052637415805274840969299339081976525846535447726915516290688690212489855351845692935608573663689666274332621308921473766119292642159821756652879904780636470977643228039446821426243006081267060015953987982621977584689042188742582895866072187872740782386805968979406812207677570789886950656292340344133445336306416105343236675889825430958451715905216728928598267764368674284957282603378132743724830167986908684819693595069876139905984687816593857164509940221900251783163186297276840639860314417961530463693252070018857485731951615493934016210197911605468413686576407558352058231511777803564659269629607997667990723074564469040965051947098479904290389241313996366884732543682331873401769196716332233497444545994135480994380442239761965532359387284118671852181661970409200986523752422700393921226363802654705898535213142493439154788200005216497244019106148794502566905955885123642525789951215907144888515198356671733635834545569786307813220073364632460723840039173747424045127089980119244285627002765052848566481564618926457235236067416341042670779931090118564054907126926219853024329844528242700425187664796367664393470298240533914004315355913977681684106037939500577789616799029017237802313694324306451003781985141337135318531591194667867881344757245191506679229315870489048369961725279650925956453498978819587511282817552058725133363734098618484028844213698025871625725326200989215487513747984134350099135936061498868062141196929845402436953501092509107645625551432300486954204782502274450749213968465919124987198474295035295420828428237947621586627205122520071743912858306918583950746774491680358322844660344388082442955983433039971069767012778411048903588229641221429216652615993021729175777819393472398528476672603786975587456880392457721494566114950213482239799634723959218710710746509596172070546310005837751445652099702058852425471637406687207866151575716108676263628009029270779109117350627645423021783118976321949322152531396495433127802065372614809571976762872451054454316019629901258712270737317475530301215514699246975332636924333094985881521759740738422707654452904948559793913300540328626414500846207969554565646211959162642260374339488366049634836608842202690769993777081804385685419414350779738698593762466610904594579575226053261557578440626890450676989054874785879448112921412820594432641638223823707633848995870371575256567916225743432521623314280260148740849373849838418018573023888575151169552647402254952177434833571217384607948864006768137704442837066578509040629842943309434734282964667327519121165108118715886370333902037413664745085249997272934052099230136142000711453832834528233123605155703807188447670274480523788041627806360056820172411286388296458056812626910658865100628403343428796378963607810784374088512428611914784434615725372403278202174502875837695693878689601803557861179856724683728604852103638923609573995269184015650280971340190706425232772118724229546729755494976189018809624532496508762184304034477587782075305632277208068771923198749500541798024816254277295205288978705913871224038940090125032534712012651695233888921722396111420577172264105021127327728342406912989667560345470736126982859456356861199080976129929859586538374937056723298402619102159147458093259495221552106458532002399903416444258369492808284245757191767305917980331081997566059103858139364487813753753555144782066620207461856109224247621948088969710757286241554557084467736330765125462694706023940338077192888767300897480558860244052629602247026306630114394421509624278252285181823720986323927584983367595634627811106576855484996717498944549904815318452755740525149378556565963028234818966570610332733840982811286283018211495507531039292542963295056004476530181904886942632636279887583272729996648516413568352735446601873318275200748693887066313146845480651279523038909079771759367762401017975951879501504132428327323873152998714468330008236616595065113949317258911456077239978191213799369648289056954771252641198870404957655220942149667289877688530225838649061412534498253589913678937220088831363506067804381970187314534386577631089912859329234983016106765075089205365986567412848992748784544578086946842418244832995981804328484774797407383278453339359789244816519515489307111457063106342668056543732606463567914609240771941873097936730695442778643901151346760765048613341263019605841714879869688773547763324117276546771552187913785213385362482642247949430744828246967018793086036237217400609119624859238332847339262627505814633881277579971129648626790308016653413121027360112888407081220178566031007137885832976252921490672624529033310004047738134063043268830629430622879267374126542967096032444560678969307239423466002190708216411337434295192704806310803141261347076614273538220801212898194891283546720071230959541053285970054051257211619671142632161167057671888706998180039203096011037915127112717905625310826640816060397133581094422828131159904579063840003387731557005479267620898061066156237914051695932935996760040024177132594887993596590073900152213282857222345260735593899551967001722058634011742499498065059812890908123608487003139691421886060646660849932833096865860816062831128542854762244558042254504405444350003082945598334349931381716159858578989421599456102686396779472914619224226181135076137969622304195495652204380599524782157285985947883762251707154216287676159490469766149613863028492596212784581841544276515729454313804245090340987390304263213080502308794350231549288459242397703863377865257810591089375338556385791448617055342514488230702591893532655793058354875144470028734988957679949079698523397880282410002457136749914966584909935309412337460504799098144717741768635491780621744196806088596529490547645633156693570406777098911948221206362128643465977582375980163782416793161720699100275051908037991007427993868471610435367569936274217937417302755392513594271301989423497225589763566253004238995242592489923769490026971658305948662479050676459683894054713244533231399627193846815035575158537997960165828221747731992286772600719575374973211642407029240828515468153440303206729706992936666050536389173624467102546953572877515652897871447151027715195862605035530774640901913512565119570223745382866318346970076907264887497770134033664630406365758581196319287470055348450950495852439611030323057074668446334526143220780544123836777260669948646495274051266528101378770383331283354065532440189493593804504159354210488548617398173723201805988046971112185044851262562506976908645087361264465643190153533399665841404515077036046782148387686141968250634251660479022710423663127017936555443987515298299989353190303318238853621302372922274478862852485071677852581300991060412540104947263886102752977160048950364860232138347581961761149982260625286638271065054394641573604702174155760247371123854690874713236162942429390429012868999803278012425034242160881161409807475884590774488419269933409088850928634761525500455869767417777419627949347444748879651095318072545404189581049675298014900000343381785053243380268043856218149658214111784597135749728577593620004439933891748815220202091613558653810231542361057621803378089913210679787444361589739901036292755542192426177849092221688602132729504465645068366118182634136036368054262961429942432110947335598589074516823531441855484106516908003526008760766574822841918118807595683959166962379759187638058457790950415023095342274602332084241023421060657428911226157726120781422020075644162301608801092573034040300698955644121659324158456660445181932201969634760728925784822575722265082670477097700473139710169205956968645597679886562196152071616791244164626756273397753592946980004390788009586995922126378743627714649321189617213326538681271679039248694562173481632518556802558939328787718386738463926541639172097216409869262955917692744375806919971979805998510287374071193610824691557134912602438433086765442704773935486942927875398000958832449932959178315557268386798990141464102401699523148937714454539319457679590802643985354255368191245441086788359298422467830081967172852421707518338886280146233658854905551772557799300308054271853028936978457567423554151404782983717731288527020006475930185770135380446196779422260284968336013331250066147463162097068871458813822456717330925196638481323528652596568245076383673183291068728077852920688114748403248704984590583949202819719034555112219061424763071828311138997551886280724391409564520623181157322035047618247789493051369141436263729980785936174219097247647796064283348321496647047452584155668658932460767723426378235518478894051188960912865458449989455213392787209620870109724216132716808740277212080162195277794449435807906392324395052514601162392018093620120328080866249009335351431694497342734503722144659829912314297224467566844873017996394655125613455726803920314224239983541715365194153814113757268487438050397762381903572864840906085182787247279608622806557576043093571944658006672080771423698518219503011990105876676426625540525726470308739177201000982397865575877339098805315238211776768313499829704528020603929336640312119317839095772808068667051814677679489776687523211431791452518980452362874203423673302561734395567007257996242880497107724478296174706881833593508845686730323282313013780183155381019622293522503190288478381114991859044757766281466712530540288438431134579291914708638594160299760462739928924906679904018377587213536111994327468875708047262164708157352402939656222851229559187524703308253018693407945115080055628702814062072623265487622788063855688390185902531194200696264712294262943063408956795512173128938812115370505138124674570443136396634942643476979288183085494829755620927743190557677053466921584101513060618295097358084864190049638237284365360638366156638440326526905628050123740189791408229165075315028200003586834938344526089182804253629116532063066747636307773272805476045995085169968483993107481012969131129112647384951865366659440156500885605291489777202807804576180665307057026535662866574476730426079645226104836750330924546411568270792454584391926939053186002392577332989753229409750499137295903274567582097851294093331064774391082154407312959828032672163785243034860810877740483936253437052029280909050565793868378775439142868192461952770863823589806009158690718473660905552107097151418829412677700016376704158159202665113919821889277511977054361586593431948599166020333764323035433420438710491207898820377558408282045560443744904450649364344132104288387364860041327924171355458489083449263891773516348127104634783132147619349159483536531138848017563660087811518489603833788927343198899950670871616282275732873351635459673173037077837970951707860435705608676939100390089158893573827374972157652249393808148163538360787848243763447016011109135247515955528695267986223070849258971339939234423805007332653659690281691331173738930371411178170092933998824741756415062061067147883597584676434360949033790918884997543266167397774640751994631388802214168843064988269087175818250896990645329571029616023766344903968118720197965297612369681203456920352713654477363344036361936675389591879587934084843595405663972352259871490991409326116728514028568341710967395069046880203186558446561642499687301407535046937844337838253950106120885545496426335718324099782217475454967665355295605776145494221560468713944571163254800446754279977768066433624820936004637065126626401365344582887726167116481846265679142814462534742944495868143239605482293575758213068228768810620309124387749311375536710198608064889345657170445814797821406388857095706456488964890785993580381327470393549139126262261618363954467560599679552652792666443488809440786500156869883171753209696276507417184938231687412311757140528410626818690246148403106324608576788788978835122117172411825001003317397309756902200864121288344234246983443526741067006314159381984625937639844713180438357981821082935951091692408430059166786716968902108272285662195962860386806406316621808627299415847948651683357719190685731191693307061271575577837988008588525448220716482875794697735255434488239527961148009009651537721337219720238749366941390183000983813781078838097392057843386764463656681568951751182390274460490457506309230310793542959028323166332264427751732442665675211739153375446032405379390356095494943239093032762122999604187822038426891551140528673462202380114916028926013467146823177652351027235307723999666991888343536779062706109518961832988881499928300883237331606696666463893301713518459393825560556747937560989375973242865968804938712230578042174770233030384120099224519115907071431854750193799719691517524877281429047190504641624154376439767183752845798555586322926455440481560394205571534100681247349670273929382464585042497645838671132989818606360565871610503413792987500202309129687422427296096465617008474762768620936371966231788159507387927287438333395603888930373996590332889232955432159754573805347722788801199185706874564113186426866674199003208292093487948734065964512436541741740685899144260624128781362847069585364210849696403363867227219847123655241723465179868352191210511938931053066044929233143670435744816074274080373866062984231850144944723720694841779433259270026405693594841442029786137372720118862128133007236821497495262984120820485762080312579339213626087814290588263864048681460143587906309687737775212743589520873618183085292904674218745488984149026213373322680938829844924503781463362587653192725922281996217493151858391695080824122910326014450867519699264768050242007117964985010669437167873141641233303536285979538021759275428825461730990445167443561899568644529847765166980678630091295859429743528062205801414774843579425976992969989551206540189441729728324088036161974914280478661446982651675792800259988080723837041689821014206294599187905108135104670685484080554164920141340601540566749567585393054885224281415622459138100366103942138951517326430946787120507428112938585919203685724879851579629905108308256635012301051371659074672043211673817423094369998675233794738791035558472701875794881599475417426237912109759782366237753612213508399155557460719148578438946722382192146501147671870525561837093587552601497548081282368219043608893026122914054064837196607221957276892209845170449862867956792593805680651408920405560560522728757932009906979314688371376013708087645506883752722829510159628168965693751442208500973637201419351446617438031718695391818017937825059281493248558047044011885055553389708600668019166130162418237834771714580011059285728793150512487684267697085955947043122530111533089820392911903280848596582576879795905052327735719569627755073156280692854976192252911952050022130147425757790627895774806387538754438144907177063191772397417860938854223250104295953629020687022774073978350229354676491542286416516745588895463444025395263685461679774383822754082692851676241555021989307105622451307821692037392725535479531376363472027510017975170233207471886146354289714796666245383062643067303363619427112248462689371452261962980535206671881598910732638668936190358111085429496674942388187968046812619066397418854600881326811056328621900624131259166340205055844352029370615280963544447068382167463084382869760203698861930585220070453281077326041518871107724214288946074263911997899394104177774389369517194460219131715844842014495177511040503624223983366742811078995695017554018412145966763086789062556562826506725908972172252583436992867235375196294180620931208810094309032708739269523195891785115095370072990652380913512317256594561361884839076939646045655081496191699466557069477718705074892319720323824523386452176100574274859522041512766845561772436361443422296383114364542165321927106402579877522989497696651952649025673697541949221398072752489415620943687510352943106585760086463291995541212706556787879374715750777916033055273677807502058447792933498791776046813899335195170017347653255176305322868329958460837328531439011603482216140858045147616185811674618393235706528242128537980841529604524616812274866501803491346460626485062873963663154296363006816201693707481405996935508848853063036466089512066244765433748424263718909697849346965819115611644706021834853507500013093752714290464648607220758156688691292583775078521163741234478929266095771976882151718849063906791012315306092165059838195974587195104757260608596765611988490887429710868529386746650280247478251170935076270326255933989845126836142575514264856400921611641163956327173667583616505089537422231953681034178481933410801226392526239972526702694905587172956595844242652448942029147103283464199233517353104586368060565509345461636832081399282071694654863076111743057960186606733294749558595374058754133698330728622776299138818359565126664060275406863374415369936213347039770582245029068104230293237328654551117700064232221725039926192129074534730063157455247907098241055777775255659022964819493514289537660148889092887391877341353722939086645359053634687119408168164538335214050907435571211766346978878340562827169136737146900624233698968938151300093457554557218616398243443686649829268389599137840961701768214366420585338540369415530288206626766316061747785884268338862169391065635839833879435295136327877344225124924454425944843888262901967619498886810837473045331701922669719570900284884065374886401990908345839533148078539214791163967370625808223821816023632140580819440903462788044520639794582200463809872566206061003845370347655037074190098107100115555805866221819004253742320651882159489290181517057326876438270656755997675967644043771386842327735615331941874614566553581714530621563625116349628464725457246577697397108193052728399197239151042396404688780301918720591009399499676826015609109816758843998499651715791975017667535760684227017303169055995579612998659970610766443919849690948659430066682395069547528699682234770469076589660996790858883706209054355526238028268766759398342746169624389777996850594339011326283914754881509457771581546203679276059547687543851032390890067808693182603894252305906432019147661284427152126078297648837004421695967623240826951021793634483172203656935248635832507410962421433207016040371140298709284359484419575613782035221410227529394401913228829180338734558752494409784526682442332224600547196260515705771797510825503457825781007399372623500728839381001322451090311771331491699958135280989121909398042788120821350146451443515490273565577482755733775606952566330396640900268790510288261225357619376858902804462607368199086580038387699982902621930181480912134391131874033979537648227593566354827285866462983308877187725703334814069273041996229404982445250795907831708694252486089954817841875707183977180303379100057814664123178186544166178853683713838951672023138634927056023205742942717076746852523455301780454518539934817761065297800717486394044792836457589538777230154741205039673827456158157880946978784286926551546259969712850548565125734016749780293523358619269815627258165196163514473738372392044033333741457166314193184091991763720145721468492215383892101601082557063485170030600590308806400681622075966522529090984040981320337736791590023789945584877842784754163256911078654258584443779205465227313783915527862516553289929675309704992761506895823457174098354825416233579170164746691470786092818442666147913765057039510837618163995740184380685246533285756452479345772254379619607978372997092000689603644692726881267873050039926697933801766905351946961083384300823287315549164195628120644554068877191638076021960365251585395180059189100907737473020265336821208217514671829832464035261581512832700295481245608066605268311899217709315672995803263227143301907028402397178198057279003276839690560064356034099348259397962846149024239421342236922713877605912457779553953492304859658173191000854956455280474931358826094695202002490545563884497692522147091903636128079748024664754743122295283895860375731481675751470803739793097648637804384292150494117810819412947614955764719533715390897783645761183228664159045335971468622195254668316637464369778577589091293319530464790873474737447590130809752990756147937558987440414303891713342916358019124371277198187950127590047549120190004602861260454906691018593200983049830359057128076337344479847651522771690750556170323816422622454011685119347546905491227755460767612240242640163432095636589656164559624292367009426736246447723957103606311577755286965450338367835705619145944854425104552401712068837696495320616663169230275873094638923654621544735926408104580590038745283040142055386742841986035421193908004733589788928375530955434911567195273433580180362195345039334577592492177111620252227337030477760019062607652911949921687244682226750964782238386629846123226557124072041440800163964657288256578352021633977071723327899114452032314697945863021369274177319157374105565024504217580017195038679161631195763457777426672244854592671624938850627044548384709930498841972780237331250264530441095135184223610084395705596053217107570388792417127266802166357039521260863088980221186872444413518923531154909400321476855469494743860320232591698552331572564297282467702952158352729223487243036631211296087415957102589461993309594755684350718107399472098414340703940362341789995048975299244370442435777106550948625731984478137658564509125882758003351589580236006888753108582884429662734981334979504415891646451986187576084319431063575575096548485958431634365229591444034056541203649798626503852190494004872572907505100505146897138749880413159303294030362649070052872389143904996149502467367642661534909191852075132191195431056531741570020633780905902235408594328340201433687487411283756451212900729705506372517863302461081167171586343786783311342390342575257814569609500178593530306653514377454953703373517518065202620614870602661930950905284817748867536661548127135904964585766964729787826815566177800524367817879334748369682626187564525352770283229113475320675960194483686382176334914346347080894104368520770543209021248335109951131695861938575595905064798493171587765647154843395846861745454601500911805069971236831736844017703947749386699323355058867829830741884350900231699981469746025919046694250274952100148530493807867218946689830831025384436292714410034717715394764427435086389729180055937360865756240160950246802499262399205744770517422096241143390081704747644948629256079787742640477520448590561595886233012064909595640110403096388418880084723497708632919025138239167781662239248114640132703295575689925288905822660605007758149401016262801700618383760292975610922127757848066009983532003751568165480419068845155800334392172601819581186771798395106082347155393743517785560683056432780241314189090874735268084683408922231046108660268273008764307322769897803636390020960840732043162435278076767199668055200538302813316404432183171463055390601531973183331333704774172298991006482322196536965744468858428519718127097246277900346840217476245894802012695427015103588362388340603920211931629492621349511134070311160645081936514131930536293742192426659114441211318224437424018731276375762844398660125802204947187708549541284703026337154026904619963653607995237581512545193821461871594861633173777416398260938988299568981433450580245668108158224870453156485572182497905738215558815552933549252243789997058260762008585950720725438598898794445989130544293090489921815812999984279327134754310476724780394237860743359638376082637294103012147203218573711105405363013751590160462439610389961911329136237424240313602221215024039896029583831090096360968750457317736152067854071683506946986783485173126972803898518320017962984521543069645419982642154176890792838042880872905059699500893057455146454900407628796233040223683679717721575727669262444196466808235783593309267418052403896339065896806826841921288651237674247570684183989999109146953175787987425506928081534915334168493450586438261714063768336581669240988865195166765617778690481628369545864004971426754938930397076017497894123400557911284064861991371716784657690544484164202692025225195369877745451124149951375027870145021907172060222660976473572861062546331904172972310573511419018062955664928750734390632859489692459924584005990514024533399614454752902499566847461568726487265009295487684216708548329969372227975831977885321098212359990525217357930287170726023285352637007305356341294537426289936328602213133529431896632388538529210329785355657069768965209150009448369318674557875702281390450094052304004774104265917588087930545059104965398505563690855822670674688662289541380619109286340446984242961186586244715879020752869324178599168344411609219098692800108009976621703214139715495075785589136655390381699139742713336372564431612576908134459908099396972876264693652213054811714446745389295982635408338443143775035537573682624981073860222986750544870548159708088395761048173864422305465896732081133101182963842130897158937686180326805532463969518435231134714301417142295447790194367087675105809847520831488432925660055511604927568838679436086127609533725282973386652416078069709658302761868130906459347813752167113543167012815597665186149860476550969323833483987803319756312108627133463639622535641729649192784431519083782882035772932663325599930710989200562370064386622765002890298948763148087710529960136403083663079569692885200483650673275026757276710986680443932669380156251749906913547496531506801070190626634030756862181720520931194812555848594016693117768188518991657208825941561156436840460261106967825594274019580462350268326206272394417987565280231648685375800863188586690190266359427709296445226038014834274669360365604988383842512564832967501870758374036471586712434773788863221570532225269792497953199735014566272689603521934734171749374525772824434912870301178859367138047333873594520132013436521300748860553370866085399740472384310039755796117956065404037269933416526785245536194603599239164780283386261833801662521080638429024148486735899072288039232683663746421296309811561557761667667817502607491414490223999248829553956828817727550173923806720592953366602965553680292875568457512847093853814055990624354927177099840986830608106301070686403372651150939827064916314308582811895668796579981721157022961320179492393865040610395472875467725842867835220072894876812482335566404216279060416376191236241543011791220073269762445085986062000568995324660235910109891269009029006495214515597351351578198225467105865999187805650262124261002648749929377428546946401879873779980763950711935028458558097247542335280661148442113181317322969366018149329414226405873348062668642288316455712965175211911468402984883130155928678632072264714081281833368014851241980056604340538401611190315508858114746368143150682377811705727307228706658362354040344799783094009203943576347994663385982249324778033321774920675591539599715138936616239047660461066845029032891274130642950655889550864554849037434264572045554652326947599117250300611127265104841589423452802586380556394615789697619525620269268072506913827588923188853699050944299858032774430808418278686550541703747485463181841693223338128124410803858062085011175524033830577677649231296316744588779177488011050931029935225080674733814335918988061123958008079881942757192356059584543335499400634197218622404015159747247697723791100042228564481721698558322700061709443188483051035709218715090327250345679587773274083233717164915873560278814417022601918369821447173551239212811650015428951682508220199151902922750002636159619130933171399701895903375214478590508002139307420324675449140668388488829832566736612227472930592414740006228466648764784677882534686174700469134999024527300834860208206487823575105996740108398994526665276539151509819677047139370631525044319797082501979926754199707159771099085767195224150627717920035567150353623664228587851000959560113865650393942046845299949654520254300129049099994302687331830937903082146081674830991894331325310627794194385567117097797837083928583770321863474363762592900924044236221803117411672835052343856233391542777079165452673560392176634294075222091298356634732165729260625552186746819708931301749883712228439605639552000597785093108116199694388612421892478523357291889881461304362813790500171138050053728602553744457186403418383847724792522325236707187266516073764296725799525521787263670077187107776236919281348811241890761892023851957696685116986142273410935307968889320055959195135594630812086845728014624846347453689562386093545715118804233803933213424055095348157501292823984416534999353425827398789818320130504068493536480514313544581268332224162674004456477739172563394581641407123265022231867948991982462465436594929869044912370241558304788296687696359177728590420846274326399263071460254217762805124965755587742525649272513689180447529389372435500922263693093719512344252380732726694232506015246868443504589424701031722287886393775799948468455129793105107543528548460505664753354853383779883206879205209433944379700397597902851076228341506460053505495625745887166959411832222175565508857230516005807400696278291370752678610622220628526033969157492398813395535825855533457123291969101403521492225180015920210021947259738764795423916015246074901747704757618484355301592367406039849670197378201806058780630358585491759264179603066421121808636735570025201713652638324426967623093922573415674264738304962579529628042905657109248949903008182740628840186899476759244628815458921348079269488502290264324724215729046398410706565825206044558052377119130675449983826511634269637593558865232557167136703759449268878165588380545766676409877136957187386788731239587779783731638932252189522163818585935782555627264485786755160835071445756286062313649793124197011307772664146916881758552247664255124362392902901283685639061296891722463890235318804940262050159389491967402283589674331453892793810535859835080775301552145549803889020116232975615122121044001090328583789807284989955477080006791945765368879355590203325653030671849704995922242321048132928221528015277571397002578792133813696142711051276122293010108799418349459866925303174533825057592154850084061203678860287295408271499600123744971551657278132917619167245598230902244397103735417384271344594343251241427067336904009243390443603125140523401605958984931064252774118386057765158408093544631099437233444647467149949105607870854062820006969589216290992502365104107618765078498100850410401703227772041876136876621902290211338409591737635057066242157996510931493378698194168115001935191633038221450034835499253098462597853084929093724568731299329359470101393155747520562855722619147572740239503403908962506346789737963946369588170646074132833891365774213131975818690446786578106083018617884711375881495662415566428852839777147912031266936584871658028181560893379465772807067630341257298755592402717581397252411047275191743522567324212614354102913043259689160506036273029615487455492808204416166834808394702672635105891178267338228315831658002441228439896260645019214298183257614967840378274475404639550717825623547594326363231480923911230394506929713086166609751472152413925299581974866465682912954794176901426822019107089693412207554965733916470156884161753049202590379194135128319643904476267240363666599423990888425416070097968342580560183634098222537327938678290871156573277292297232682986686056361652539282904166053838450815866797359433394070044511870253321091397301283431937068652862005860542983087317149657218013513163414382941492930480487791671477028458369563619382787481698819484042782694447599117794153075919995556644654572163048913954014936309445190534334945784518641344645889930785158189520369816867263723808656435080748250656389581840476295902310307173817660767744528373522148219962257500515006962597861499467607405267817038885539702930806299275079274204434339676795018665409060880309409820497971046406983404596406809761924025710536229447207387033952997089608081349707752220013954819711014729924617248044447619631544752233484627204673347173551297390436916118943816856619865423746228410229201655600546983410688594366732214488498870225173557390678527971104020571567546104124062697988859511648433885972869779489342967107323556213383536547372926672789494532114477264846979488488944794022454876533631346818725928571392000764067594397849562468207947057847350614799739763796956643256146684757280245702407536688210682619554476095663994072290352467658524961074810403033113775217639721005403498241341467821800356567294421199398722314118198443317020597574753663798711189226307463913161001411291215894351602768451313956756433820028000842955000509503148142436375756919484443575380117927483704987883090765555652297981139325910839198882089415787824624902991158708913620679506914291379170297351645068077976082054074684463860916977626727086748841975375039421678171151824674880959264444436878358669110506374280290893137865037036085112693732912533118142237179123793474547828625443599611897008963332467934031218186725201356448423485252279438818436604860197162238979306443492395201041694034976335210092521516507378171027820822992051389086382933616873968205066979640072026546768317052172559677490467725544900792433610817657701665011456076173972424171638151056258996493000757244766493465653642303793659845768873706552044739934540632679677953641526682725095130702431579065044206653139808765695061591094185115424217177482527222204307443530275499992988867790495944516274775102595944141351557724803542938213738766917253865639616632306387000673059214463112034919253813340641677453247521310903143652747312390469432718386959933148163379836106694473204239299136977137260185282629435630435035238839925488314791723657536969013484537032086207077622440969834005522765754101562479322090774181269178836543286828462405677804786984379094415684398208003275666226680454973646123619610706034472093594557519965496965276409164082784145292247773227742628631689837947404572277752525923914973969999618796747855741142147516216972937006189118199471111562114007212919656361527463062430836216112697088042554455372430773317547669768945912546654818484628904970236388481129586455073129411044818057055089756892026278885557230959007940989933435467090188912706117858893068486688485638993706443649857259412297804122593291740850948693100265654409668633330504563279077891590477870393191047375797033697859403787366891255583760815688541667119797679773952490912611831670392116335508984458420413163785142776580437617727256898247913451627154345007300395862304891720435500707144506693167704256798265507083304874425236623652534254978742088184284248010876151427963823392022925494769992414597343208676413946875454221755093092035785433948808094540017223068034504684196407219906993424453571761828591487276680066051160662641653320184275890293052630720885883704573780692801600152782394120330378203868976484559898674091881252290380863168507697877769418061903360237168704230491439577047117152346868977197467888370627519043225823080900070067746967057011707007193403655594171234702039107553667416476825162649532014088920452026602786939543635256280934014452825436768291878180851109165067769296708188113342042271318013566102455813554689645256378701114232853632204358609512852766493125853129545145598509582397270164830439160479853814291398813231412336885534709131015651430053909226115372617995726880422717537335852051661628100860315526363535790689785933025918464764583819913866941481665384535307744069354213460085918687795074771772329841935692426515536753029892991011126499942240675190100092846098563837040820855540975485231876401596538480771624180669610012911851215889255194808840313086474244415814032977224293102716220604955179874554233220152786291230564846125819252549022275391995753852811872223756206583776618588015227886512997754560302668776327367080930996551546313676687092546464544068760851687733393049579358245018411848040693630265910294052613475009206711426332208691925721157999308032879383458084991670712144907389737032234768529804516700406343961519376783720966512731064573561769912276979595219145301648858805931103652923063624782116304474313614903880163930855655280107775215735388259825608123246619294208163211323043534324439142552561321964811665617292323180419477398261349664637113093990008867975002525031726302889227735833095935865805331230526795826133091339624378483098321106505293318268089282991154005332993877188859829890674206084467637715473809778609369272449868686918396880431393526741359308382546999885710647834813808121344202548966923993967216528517495836204113741430587615740604003705775388084770196797166189458221596564893772605291873468393891682053117137468389832928498749598778795681282518248361990920418685977450785549997798153665238499919593870878355500535236246649465940380802301927357277518050574055126540926790129533543146033448659284191244968465358563087643035473573476149119141671132136261517783388040023256829578591229283126628266154404310612205258692888612700170817136563236898025543165963014282770906391316388737921592605553985505474140722383839464583685782818028080412558363801960118689860111675290153114144405530524591338096591210049331203340625865126484848198693459223083332176769840047200738654620054467286739617369288499084309346980790713187717292673062336104648049904039485825255517566265857636240605250802795333542989221706509084154388874235291755364543382931577236207816433885492530518331600713990035092542331724903929380580332627504337069624415310976787980799706700007893274940339430291590924123513482213300318265800504025074299774390666161221506670545268757826351475254008697240188877168687367931133350868236156909513471923703232563496121616869676686474037117310036191279572757142310461483673050607387404366429711744828420900307901488781852175075139940582353341323789500553932051769429909518184670347790956565287382616578499903294957093221485961402993145064498820262670040691715505755052180466102864888224446692036259150423818307332389629965409091817138391147591373148592575088042274294764301274227384173852200238570700475301129845971735886138544354674939085193681850286205596223020250115556117215090758476929467938467499004118636422004378960685497435318373055619510239375922124857053309298538950570775989860879505101708147461266230495796642487132862938812555087722610802112494073908575154610025078587558236227804402469357956093178807274899975606118773425549879562901019752987609478365757058275193339588143577543825874780439111184473104904689673901835374284518959296238571376923096848272271439206808812777678890190568788304425848489019568685806828388514600255841456100926256582287733520682523920675128462172174578961596779396624995257717586816083726358279993283014807036634050636270152926502510479612754411351450899567782573486569219804085931051494005209153145769981575585458041261304210440958618144240259878798945474564327184514638676231570956376417023231021316913019446780713071717292319901898656792754469556378134245778693617896899082753997658652755205406526162192652234407592063542025561384299454041426009798436311311021186174111088132064697180715210462680065448758203857173901976942213920389644055455631679482470442440109628369862704393601313339708004954825103388616178126363436916158619907691734501158326309730202006648521988139757287913176196375096343016540613893364533473595159740166089026987286118230274231715865468783466031379345244520015065732142406084509461344427299110899439985090169264459722093704030717454107714134714214905838981348006795013901373466230351256834209834759894736262110568830781135407863872404149040692658786542942586430570285560860883601876887147573431072667613038366968204839650301744575268681677534544941059111313750107541226584009503643629883079995169208084614493516179763904495338600547745296208291107945236605908335771790227412864977239268217204838442617379882863384829008697528023571329322370803379249442139600492480202935189080970999393708035239846391050130256879378798061209142606693009652912830300388740818791874512093014806762430796525487264623662533210590401457264912695903568397201075907594456173231521869940110790121934278165509420121133355486124545639685210945148944866808584118952639892773180582483596728296762464917952017923283337359902003608301621509482930773072383270939836673464398760598809311467456521102019283268480840641878139839471136026165056866145733587275915293712982848589564646877750175094470382289154400024448290607705305947209371481151993677920102054868801635092233331357438046343029587623681192834841918502868610878298857921506987742914764268625281468661816813174856302117330158789952598605367966960794780468473571665654694634276663316645850658375904474628374814057899080882496364061498832783716726693614497891547257724072066338139793627954675774297508055194974477174625477520193411420904350786296743161003576104639192972766212633401847701535737989900296522300294059898493398344782155979691864900842999358364598189324729985621780322011128345571309855692612610612158033811013538967630866113087180979178566032778284143960770723650472297385270147228022726935318638784537569843182147341564635890229158136781615727184889120985927729953565204913358053671110033528210402183616485333736826105221697431689537094814809913733151273541710906366808996433571126682549959864518652205894118045999341567755279573007111691564098853451966589522421541784223739335899184740004635060519680050593418452615022906157175962278055209377096297642484504461271972376451550054712008936728474868631512879358404869259635382868449010880588046051121920436064491285858186962461861153718612995883172355742229637730685409812823348182676318451818257900826208377602562865508504639409420225781326161195809774097277552479180577563205605952548549264902273721187317140029572688206839692947280414215817383426405325069789138102607679414981985932161342407264247019544981011885155862560495396301013734255185013504124147210534386477726258054463309379066694030208331085764939737554914034821706120077505488453846870691915513635648577460791906836466248282391042598954104675577684230376162194232152038394222241904990633293826596348010384191094396301322396489770513565701338827409515141838208713872092881424992318550136102183335069970188465157802854303481950083014387211640644272295727413874572009999368624443180522468777211890782130304807618442327609309737650119826242186540273302945514143290031913763806493874657882712765573257255652360952109611184999897042615030371363390869730882872490386978868730106234765484926719416569855067972241629693403946134627945167600004853984683672573633318505610421456760954133757884826445800423078158939358407084240124819917646693069482455609474451341671246377530949526836569935394097925822499341522907821383695825611786993383934684004092030182488143487947258672700550946009761382411806229705367760317670034440878652201504736355845927940273700051114015119114306514595202919710411329714133905484222385702993300856357696730858266320756134611583330056187848563221685770852889534332957093307775553926101835830550567314962448203404821827077247413651444375058739483294553048190125952077793747781272320922841612052490460630592561884852008118808599340589300213394687542605065746212217323878246613802665087090835812970165094595766500143236503449578919626176171538621540251933662579073596340286622457364195564123104094841156078105368262926470601217050410148153853705749327194784443592984762610862607244126115708941996982130098225275449109168044235865745429659197724868407788960440019453566167679606616676480607058198255533764402015190265598749052724837351101540135858952655515366987338241497666886706037104298173388667097578142427367985206886888297611715251445727666894282395898307606241707099745355414180363559401094544077077066909317673078396568989312631824671535560254357357781671489801295536894415436016092186289436892795002082100244857670719077481813323749021126141305526571534585475122072459439441790980258538653857509010968159325217118326277750139417921267315402402167068980314614128193834238479871291767226736257283511424522993702980312449129539880539114572463948639809053205876863148125601253909141466733731913712582871391612191626943528509099645744443871432079652598436324838512290686160211247340369968180144090364847118067904413533277255490748718408655225461160830759622095931831556439930116118266070661999063910063375214208497643060886127256418097878996507325804780684911056359562773698535639144225822380154106365730426833072245109613891737538606943417170934368888162425461188294374269966074217465374601971817272384103939857944684051499553801195821501083888434856319718603518016256869188582952035679095241898290880075487490832629174242918513317767232027792239116569520642409584696705976340919984601048304705304948825196921042172744511908914514099630763134875106536056813032266028567568102830088474692265259104390880818877295432585160053284946306566063149658841781786244888012159091844642693352896522626065191944636385656200735996445316258119728093042006825169260892918369874750364333445489194670024155060173611198199773790348484135292190801402770780210120422660309459953277442528098309666312526965990355012408235990615914598728096857289719635475057049071668312460040495448824345490448633293785225293444130025598140364130227883439426635321870561440914348651499998963939675528641072281823110321400163479195535360670336313915648414321177387865583505404022494109783450533227890551056075913024878167591485824511245556677954331069989076586746200547868178577974943827230619438040443033768876146474157060553976060287622271015279371598832703436299622360970048000883297684832981930315888198150208586704283843029751764564198579928070458820033362772064672357519579206232677896501450544646073774379735040048993605399220067891649689834006771865041193543642704329203794584020023063589717104136453788354592565646934479490269644037487026233847823348605471796825764092947018557917500188552605882358064710539165186087422078884896305978256648852056171016981513132704953396071742981590551041840649125805942656289816198160505033232146956063367196819769474025187926096269626367072807470796542889907638640942114020616080017355958366467102854111747270104292576138384384196843663340967017946404197591483324816816114904834746026709851194355806326519277864035953214035236110104905872211900741791941698206885468077757177049845693804107854295484477527578369456129986185242017029247017537973379931661250692587577381017480052415282291341761790508008884587926375606467339626024200323218730663596381225197099669805903989141850567147744721093847073387244211514995389243034791706251126943360593559502147789571630508918705168882404339678445165936575649148010605986676580686495942715084310308772488529786587186185204463296515509663772460101052407365190282916575847027702826095849979537213234712922044857388493177653030147851450684253837066476884254979823538328121731058765475110883260543002968643629170292092537543097150181231967704917860138863065767506444922949536981915913596272178919351829928596834253466163252409272138807158954457560029729948471917976422193399643257047115476162259847923936660595330304532047429194011118359896873766541157475121483727898858712358250267219594449403212685602672979258256338110419823819362193215840366043916950832649220406796868111336784280516956999586387588194898405984067313463647070249007836443537790006591527547250594973149767118235591167597331382924091350173680389172841823187437040933184846923227702406862041772667350919983156397820951712374083477765674629727209766947214096179371925657429885212547724859602643572572835692156812310308097553652151789641636166166288711108144396103257730414299866710292835617777107400186842909296260397087868118937980602498363561516816941667900042732128728489619675456971306329615184478883312326245516528170972732082036417423231384018780864935975802237630675520576071262083139827479170367515806588210919595562472241360777707870760944296851230763283022929270649815475062906774996878160897971182298906677337641233465926069491932609725051998606694140408243062645890482361936030728688658260768374006012377880068877414978622537132573624631194617752351696419080348826539553749883433074597524198701925383679650809546145618541684844527168517191793155363871585937152783084584242774560148567663122256042044634451706595568228812107150888728227403037655077326735006319546833495757068315529275789879597604953124880192501760940778507773045551001149185188594709512603862155646855032139675470351793012113516698851749667935054369091620187368477468647984914326939424128787837632871429043521322303084550469223273595078217044212951113692719517683080433121545370609096470298739825819603928560388973405712428630140785228292174281407383052854387777473890398499115990249680538135043168703423371114271467958465119950036278289234135683592516940122417620521834883832836663987640845498173599646740372087155911543227963890620343134195180546823410486011477470065690338553061489536318221154019185129173829789071013968121464819424175110817894296320427222427304692141670301141139580454781874949754396202783531606167868593844412670915582505261127331393213952464736501375330532371441602942177207764098941043673305082438928924899482791673437404717045009920117512007132577910732096337518471766725543665447620050469789463774543690471769086725046921864508871356939010097473483716208447820085103024125131437474374074453856320320302149802529289953363972250268620578451227956629974374132563603005235071119906412374580086490266408766997205020919639587913301065882114928579448410924278007535121105597419675615596629853104054660279107784840032457877108063650460677645805898705259736799638720718140352909557001583210542327209579674048678703911539098408200142577587864757553883552751201684570822623322247766359437114480678786601926655570226511586750897915816662830703157533636505629569791098739921425716795690596238158269537477535464934871654214938264988815397474720529370831615980151375136631888708524993819177158306701929283725005205227081612687530970392900603019963982989618735559370298406793382072179804376715986599967749942191015385763231622815771429231565053014335307538255984354279364398010036600410582154693934121914676251384738372532314040722377109771946031800875381374156045412687571312927351247522067690893590726547112358166555501991349498245163518006818284610644755157855691644864509176089657594080858940812245140395269121633545383964623486437472579795104155906468430986152062656275118386923105164288265061243144678316597414050340943152368779638673011865510308142758095520860256366155903686875088270482922378118245263651656833113597470734711044423679648390555558052549799588771128639103150621752646186409120138446111009672432192458330037355818063499148099525873531925359466200954495895329684471364550216859440303669776018642572925896861382154020042521348975240793559358614372727639086888856344804159201369810329912832940769965620190380850766804908361696225009256937688142682717920563131585128570474875241522223139747494795613665046283896971673158868359408165228222397116345508373406119254628543714813218300181913444538241302908128979690345790096256544257867365206140003408385545907139411483094084749850711425069787371633202312240335309824791208598060985890714426444073746124113044358268223837840235962467074418143326721439942783343116640032298447464475449347764681503004638867069678280269033101902301587898800409955846332866613626954352661548872684005465212947477378362248149840032755522357027093314301276766820141758576473524730176901884432670018100738318055179488575317819412188960734568904064200952713677235469529511450766216501798118606568055520707382802763575997542903478681296713160193962686957712618766403286680435496179507224298011831663241456879265354231542051766365606084238182602624046390478802100692854446399370753205589315788187618643873758111686795847309809295380645450164520205919225312951266196231126515501547145361271025796735099714454967624443261549336707662487422418902879658426547081413672950778745692136985350241936743445906120524184925629698154553928569374478504516036809429606280904689123197274964354808781161503164107063828961938530163817500223792344683297129834160519172887295497310580543756387168419207662632637483697791337520678958580156741420834730227870195378575757421496821776432678291523129415193384487299691330338742818427604685417439507401693714204839081196723500341270531484672648138240639949286128787038215615407766947296096012447685276538247164504632918088893163171657981746559269072895353199725529510788216769060565328888460598676391983004307565260248662685178002207459825148724416112293932263292077391958297256340615693396747121203394542007853462703584724975456045245537843816809282925847820968775378050399963712409145438228369233332474439931983715585533126686033285555542580496653534188598726794658204229457481456158659813520045194556531473021386157978280128388217227636174656319231939253609499303835085436760671839295539129835500183858852367458569863171739591372165723657066675491796288818627408253524411095755471150158595808164428992482473741278523153512948055258640105489702598640090622311624349547646352829140560518045270652670416075687738814170353705224835463138371508588424610481214452850844516213256897916732752080787214185667378867368886661014165412171008064076226020070757162238783899098843497480123619372740455531663520861903467479494437464754994668007926284648483470602479474868240949203941827894968823469458228946745841162496105760440593369488881568475288193215020633875397773249026332854121558066915645654323586969341440291920567480382687023749166182454141147486404177884715062847192801686687355504338200425561692269422283724465905255989531650587445947728403865994683661958767033512266316082027032329645146627995867981224143313807678324584150793535196444226810813227574127981736207240936964422281872742309873420593394447007799622874950923144559952763089707752431043934866577899631023375389630074849052141968272302308342650777530057842863097005409324345688657611161308719617586558126178070601287462091208688020870976791198120752901439718412852202368142705537034715991677980383647447425644710745529198105877234147975731951333699102412772932853339945914849645057906069517214873900444101507712876290568246836587253847810289205973707496871496543944519560075870084064751253010701292009102303961906337466898260499410158670714775215385331860438831347083880713544626898041448311707896919050301885508873329827496952114397650486897448160775328487549150562200839423017728272994500892397242480601982617466256540513137362501210241233796947521518720169430163497367931901683600939608962218352259564139555829073719646532273655948446651706639920451454475032990751669374042394481692816809535008465978768671040560228098162855167418664748858093901279475153740681895912322332070013685003563306919632818562141058362472940659323092793032950245778192757407599832052303607940485394327303375216413091818382887637375148002068338079468147699277041899534125583775596204344498255288338180231715342090341075465899943475898359026122218612958953545542198040516628037525704274253074412584789133521167072545522426559787450360396681242983874362411120036094617372380931594162599798502632670932701797969560909310773879322145401149784912235827600842777293049168955841472236443168259839218681723287153451961528793775601697646306640765334818792912065802301372462288912608903075563213318920034965323639566680677362834807528482129491642249913653402555531393992451209645183048811052460321129575673188668220833301083198748587044872380100807785018295006053865878004152196047474335011619170104186230631238972109883532246816385068629407246145217788831163236423663577795195813796048288597354796797942368701439359901798434666940112643534414988615024307353761738285120310371832486915544177529134891901338281042614270106336320328970559945102635343529407425012857931874661433207251031350534229671323864184224698751121350784156110175434490722340956248607861399315728660915592975020160903332119129081545044108386782796823905582074830549254741533805191946070306830827013657654167286681552913583816377074354835379229916659240034920160324359185848514350747990875501310095098622242856543025225083254791630337183710135528767494841756649288909937871477536696373133704908663621903914742087118609482985788773093384038758695190432359508123382544997453182285435896180183518727934770682905594148829565285037602402341808907336650956787929154631600917194522232039866060233889137675212385854655070223821546456269965346888783148840380518508137569286856344532862533077120763103064099791238051445092255440648010699969382515015622825740227793130744169899582745545341703023089644314390782420052599505363956192990982740743585517545700053807764441441033875289222505189078913655875298559291872143351229005202961280347058108189321352855486183820729694000934350350540722229036823236242057948506321513693223700606151111338592354332602525263889810227213397204394745086624751659554412687953433599494772615752230668240207345042550378452348575419783797886062698293649364415640467772222211087161096791016022823423780531087986247853814134686020105183108167190479259093037840818914156266989501059463024954163468331333328899176439137807927197052540440987983512751423732561325188487397233548077090363445728431267373214917415742497282333415549496182088007223146065749184200084804456568275295709664355828409082500740299209977449095555965290411923262524239358840285906966983874699532643020708268046178360088180882965347227890776010466129503785657272674070869103135089099964262535137183219303391019162311275713483229975161165371915900632125701214988550424295326618557329778660215288023276160703755516222597563609822680796701407081047347278193185557743870576978765802138452782881569326098571052863127706707805026850452439040991784957790789044091670401944245841331553609307293414072689210285087723434015679886152589226483108071936102416040502917515513029648030040979153732052728962241303903743476337848554306681305181642102138973231145306572493812211340675374065065331252087633331396976570807364379853997120289972285170298668635544184560277536310404626544228462016902505205295943951139759470603438716876527585885814872894679887475880349776073255193648349763954419568499048812121216764709719062589405816241828220361294681375221604593499847088099251010185512465209140910255828520836333314008057841861276557441004514732042860816531595957209396375297518931425208326070189101963425332172800819535255908684247477357192799948806266304998141535366153165895557979859766656045251808049323403328051672839890526708755196384848471453289521844814666423872623124609930671765682794495436518880510739263388460075709216465949013835359997424994143730534588533527711181646518809168712807086971797579270182264015605201305873812524617372185737158787300540585035381810184022102358037625125767325532525916631456928470759369955810853691042514783140341202062897923873565148212929358600598357886201821550658471441190956547138070595355007584939413614815704660857133525366293183911359665381626137801272437440773519386045592350557107179595895541970521772853822377400045170875938668963840502485711300235058320781170132477327896781322900865883677220043102386841000911929139811866856275727473192370366276458245363425047469955407026117776482451178966183522859167979630287335940751081382177345005032114546246189236455173174164254729307195872052388584980482257918775876063102421254015437187811087337154291044607546584623971800969214531060647005214128329218805228096378162953900143358641177839957875823377697956332233557591509624130042501609821568214931410173615638201427357401577294734059988549958956430565856622594339305441267158121322031453370068257212877423955703621414599127363924898504081308761396713309616432853978863624942610120610092888556603700921218596006869901468431645252523149857462266951111071276768917642964491243705884094537130216481633667044749200395315108207405488854481761415239153780217634469733709974773915229992894254108770787255918620633181776400427545303055135610306318671639669709064630221376980332810859673904933086377320600405312563298051102661815248397621611582279372114700029420480611488724107927447550388349146462000724433692909326286404595896097566082120353538289193389250904837798872045942549651917091488658251472953149936900470966162350475409705355403650661761674663359046926006790085588909317357757196035978594046803745492739917857120756342800001970699519170249116065410407294146861747566241653619543375456613692934563128325858889151377940759794391096896447431595046029915759818281452258605674591727520537923770694224158551136816841611246122494535256393101351725838586799875017383292624054477470600954087110085035058555910589574651672682197637721469396923893944342109297281715878785888608388531171680371084753160421667711540940306453130455858734392706792421632324144489364449477349157516250034953999469641512539513509667653871176839278565215630137266317514311897082653767047506654672625129274324858338441185851339297543612136979490146233199128564596874936825955527538172999270503690071125146817100922747186260617778318234460219306441732900103033017462209979292775578948700664735757204578331198343087504747139735429053039890087110815311036757507177162743016769482468201451447302342356690196916388988365570310590766518942088385929308829481693704911105831424994231025736451032570796315437534285703556202802126540513570816896957237652586741857067648143496274733868058673533740898313363780198179169631135621749043579453910977810947487266059539701609219100683011621180120316250723565683680819768606945528457763085031460820825852139922461792548387341466291645898717686502838462726456728863663416425304160851387122714566936154345662050185419924792408049382000417484182651210527202377557656020914168811745111712492911717393798932312584620373377644211740778876871004598609191304219370571739068900529588065296331231403350262530951708838903176562998529094627809027678205195516063222314655490483971411230942253720120855467651935650817778528340707830267515298729768433758687218274838652378640223083741812742829217475217221426788804330266394017540322634593191118471492076225126495800676308800700556914677501629839696380953809977314924067865870742921505421468066619689497766944051578004186115188675067981493878237410182475691012747228827778603362670004002232895279236085219331998656560683733269496224619184524155634403834170312348400299888123296089966755296648294505310686863289154986487309588571528854126291769419703204909189517614519008040414756586385693091807777466599161001308964393549770338837318757334031402994761602022793740615257907345991762938976044566746164880708177535204670804985504694139457903733649441824098566638280686567223276895770303491109838649700679577194840591285796872697683818456658125616011177569409053940660475682614686357864907456924837456484248252069778556098888140250652350876385640247098971053291536331849373779990480682588337679927645189520143023189850363163160507768224228245916880617349175317471669804590370522923249290898603232832965798731413271840520527251554024256770279891578390550073047988213442774490616217722943861750380476781502781433754506665025690568456755992903302119753583784774699630482882508883370359918125272862723500102329034733770167296926451519985442385502868926982580270458106050451834551725563366211527845778915249098893286441220470901587744856343972873225958028168475238892981207615177114187793959747007253319412414395611084045476429755910628699328862694283098867386642566755417313584693595823019139328615633019858305824576700490396814014297353894755771237845637463278065528862282446723734108446427149742425861588123844101720612230109822901869580154462471378846406606393488646848164401863160140947713924228670469292892304648718777757015574058782221352647506625007216234696512839603945752617916033023487943889603098061350520745565061538543164402129219594221915448719078748324835661665339557614118436299001465663187456020071306567229722881715123339829741070457539141690180330526435190646005853323539477734405646743416947306390162102118198882365385748540269404906400021138920900544210602457360407458816555643270151399454362979900290176649206925085589481905095408342762588460334572464617350060797934992510398256655504917405286646172419269792606041852574115116667814762746734540265132408196258100157293042699591029182285799210858012297272474305004009324365216499257035981264519973676849085337831773158219264731484222096509735652973379472048622244854700366686405431526985699059110595129361426478152566609140597757520363438530859305349097657075107655341700213697604620543146232734116624453980492275859360768316404752163233487033307042962035411316189566283479518804536511452240311935732026706296050727710442182124302431322143024009497800192508987709558720800178095861992910728149697637092253061838690759075942125430007795942466719649849373163126512086862224980174065218358282576718537422101502970778202064774748887419026449869153487826036223883706365761783686002214426510093977255534439709907377064829014372163012828690061735952803760068970464193744291821350383425010684544408602251991326835562638852531291406902088979799822889184694145557633409541044502500241540123995248763052129855873646981933084203447164178826907614206184458895079854887748083323222202462617672001921578197922727340795487194356018397459731846201305529443342182233682773059031974548120665061880471887031458499643421771560647915647172969734183374641917744002166272161015883807591259672442154524582633653352302335128836214476805163799244497211610831030535596359029359756152085990869246805254275220904808502487561159947966041252495765474945009761860065679455332413996212766245417765327093111905457653706027592959943628267308629542350267077671539903572618202302062268731500415000759822143023420199975061103019128426479047532826337433719278964555213262501625210035532244754620497121895075590284152323976590508981332507321218601899277594579962753541222326720426314385666649949058808781534130903625855650906146760423076256945546989571179307769177136754491663591376705667478188846699230250513328883903450166913258522770811566425318290533012635907317996212438797623762693880464225201303011220847177066329711145433318890770862220215108197787052034225705675844638139636391416909572946237072155474718947338141511619518866062506725675108671086681358875596851734927335918274601019108593995546132162960192449227837178091821631570962413048539891549139253023838064107903048217971758725276124629333468509274170866137215818557185207932827182812889227025781274759116583164545034022839383663569689079126788000078433389160069824458431488090195403603552758485726124791005767474030668870309212346236602846769135104169474045284548154912113574927720064128599000777645964180768388811394028501035261732200861390452847545888803279138330814442213090918751762472371127318351325331664055003471152296469652246485967270113335949129621538836559971119626881491267768992100158692080036686929076896478304569970875135966750784500678104348311776729789029165357367063274141769447187701865066298248218763562901286837122581334485263046510887626278860104503044971407853949785773095912885619391641772179560917255761551902403162083530249760852108135793242006192877002615271328927653686468081952427711345106020211147470908249932269015825729147324231106093542038466750043581144033464448090140473524847450992379356714256528852334296195224509243142150366959949545732045792540303951551010705410736715079580358278843684395579175449874595761765896893188457044336466821944384068276633370276785364146018517355034576520914136725623030320171623330318606866959121470826093010430380792805537954945888200872615962594354586084746657637796091327170904891527256171732344209681414866151286336159222003696368823825618562764284812021355947614050366010134316886575596262663508434744144131324564591119330238504663102309116224681572526805030677967026466602433107946247213028380091224462227718478406189434690927847611041752736975739032281383158783887617277417335083929782837306522162276813752650010496840363582774599857126232318191996821288008774913578887452068749883032980181388504922154789709511290957497020239598197835523186196230890914884376947268220766579672281826401561354572719392473278470214016914726552072979200877770460414000260552642259608673867396369174765390898784220340074660016840562064231839799591733396417411197301690823961449139981823948228043582964727867906162529448691776825305577692460515766621544687896867006444141824473928440640646065892499228458126751881178061102354423434504615124675446754651106849153771733140342534644742727519922355457333789849760802528321692571619546635709531027439856192502386369615701959987970419122548936099171069142273360294139580099029150893399563658330512466385239003895127561219706910738814531345960266491406841543215907865310968291539514973663448260300135979264476320339956337893324209683970851685600372154075637837930284900857814630938522655136116162802319907222488353030196779454160625179178948128221843759169896252282103145093238941216619546233990703848714204910364933192621173245287451538632938059155156768422989071765104857080493206601743712320953925426287771840312034969450311919068279995836498811205555263272465311556521706935094079939423340162229040501495733359030124492641252426833036211311831454269718605346099642796095171408173486961837268299614903865482533729081061967150027759966903494146352091885257913417691134727693225728316848978062251771180741767850268935826815109940916884680722396181257500092007433261503713992144936217402587975182341112004928315834699518764534379184252304625651869778016075341366624280352576841477567102785967208924251744701522981520669313039694234217959911479910408718698571795070467083517650343074587041976138412543681918849325614937977736883672649447373879815264222652744231657776480474364612694477818427793838445407220868234429089457093535310991112756996814272062036844129182538609802510828988630459953563141047814567518964507006147169642655470656154613461104006948140839941662363223823336451296003595147870359786776233593541060615639084732445794227247344519513530025301443011090414397135433593215149492312922845237909568083584902341250140028433227557754241241407427927313816092387222643059805248186512689033302009409068286713708921213291002455880629975846955227450364549672489003389297721921440370924533012093659070815952481698590179409707255483863117048185210703749860579975579944941282901558647389496337905730473525757320323481088585463580072348720456121167539675505705799013534483920906209061146296805624978457824370816488692300795090176641810794496135093136066724626940797189835561275201123431394875124376289599305517168898282973065196438292874985936386548837600783821199233762199977518036860443123068684019500164088354572746294077596384463358140438540256599447710517997859444131600589796973500987713726692051131494258522227143297370504399123555366225479944262953754476181473857359960457893245060138584737984254229869254840301557942128677901819596197949053148757071621946406740861408400514457778375416203575269212511111799666051522305437562260201320795394061783571066062039695293254904546939939880109248349187160831872833443196515461780434280028070388571769856634446820068624341952926048839033691326073269983986014083591553462533522033136558230188425593467013513984142371293931251853286406003194070746511303483050397589615302565891351066892991182394901083070215487883160013919966629203093627131328568601792166410297908944089126303912021439683366422158202148933608598551966344289838466512722087824922779563777256112141889936506949419911332117160500175972623324660286257870548233555559131098720472376716912157605367676270976986866734552361699334654789169225825741376827370396949214960413718428822426388369569300797160851442203413636566270415038232893625348329710881351400347848321529221539753584104375856662308156809391635422760956623679587252653791458821688447289136043537528813298439692305246797353129351532312924696778738895746581601732357208264220979298970267295027192114199896142798119751524790379429160834217425936720556249072592732089656892528834509168900904605963453723767128647293389261732869718657881659461301534293447180928260702513994794620379983164208167810917486761516332888733114385876034778829956460017266321297620384465205185935218137900239764994628629172182079716478590374480148150743924772992937706367552351554842767319636091109544018522049444887070730119813741389482179421644079419716564464442336401645394100629634734295656256502490149107512145696295009566999485171454103992127287838447603908083373613733571565404846536480865526065045924378413598852532586215767363700341617489854217998370214327736540935544934913375781344595814955709812240375077160904644774183904774407434893223188162367638122983616510885220709540400061700703681769002507990977968434618824734645959387504066970222555665495638218918843486521068979099933181941761450599572739988680360856968306015690734009761049966825462523196304350530347982368954808549814397075786316876230550981579388856694894212125206280384471462994324599773757932353235311276429962014759549821919778217050783177384522889801346032921883206349703714332599593411390102246740116883606228215649636238277209602168703785196762687688147600764708695739873727729808904675531129390716299879082282577743573293155543510122293629025541859862042868241130236124566586569724637400055810059980285010931990273228826014419844852965075014208172805982164698527860361473029494043967129698595056951155782186983540201676684423252140568860483131489680423622656174321259944914561452065873935234632257986502078539055138114412546645769925717688560989752085224328825523770092747105927293537707337539950577821236389692947609787469511307706075787193944542692011428190972173014056488538770142597517444357570448646575505664266438876282687047323547901910054210590434045258152947771921245071021123540576330831907079120792678683385531968001868887646667293821592858628253708429230868322483760693156344918416094193383697594824920446870554045382489156357742280053148549631400330994289344201632614353352854037432551458391303273948792363324801241735398107397192369523938758272647364015063406194293859790135141710131586467423110923715630816513373253906577714840920386251441077666686828519594695648622103166637713057496232048084227500276211032523213196001588303817876111038174364048255053785382580389261505137357287907162745078021583516299645254897149861284405881711922525752292960243428440721114633570780472239135900926020461835158246050183789328791748102485660198636195071572737789180619438850227420414658571772104889488443284275561389903186833056415692732618510997482224608286947284796967923441719567519940235973618611415836530080241548062641646895153565084840588685073360525069351063739250851206951917388174869366882370308607999276495926062800430913963719680303365491908107560953710271851181455294140592290912287745039951306315461111876025872038886585398625169314284240149620282840391308825485296010894933880176089409215546252494153408380758277135700744989605660276164311406681695654553990760358213555349327656972447975553195415769272848434623472389207676113261512632213626899618393195193778623964443133290844801665058781610511302502285177621248191312855895626046793246442398394472368984583990377883957011107164067002049301659776304359460759656345761466834850538946113499387946484450735170631114283202511653131426739622552166238693266757060419734698899191332539664958396776680764576620250612653721238689589959779349066588489673189609098729240401705407868825943763865603168750050884067628552118448577429614816545818672261462313544574336390536089302286695469544083529956652006906161852117274806304262319896559805434558258799293415137524794402180451372857985681679148821577473140821690259045497071697805719696952010623213538531065762182268396102965874278816857127130586327097395509169037648647256926555611983037563005500617337260554177753131860978798958799035739634394210591973420786603685200109173923659289439175437287816376986789037380126164199166544670388463603284213942485041291496747675372537709821991057351241662614467199877285466172517588154507945823999258839532505777546011169826242774758904698080518617211699106810964904987887636477864878430571230149656388702081345992033896917703732438336473318830691404075211809772230771866457969349921461932252704966439788741281755461571257214551416076674082817847190210505541379275750241458449252739912542338843995385819909301737850567642370564545707054589617172572798214706805355411152349994909310073717100070061057130645263155578260326145024911948418249221724471263132471836553125704034375042102681637567860798127522613075722577844739644171900084772519636431403338874746014193352645113934463420321525333646317588248071036532516041390332896256558712709524750937268753020815095395102300895357736371792589996129324084519530922955546047592762155975803987038151531748106331430707402076408350760592192770872737178251603008051123581065011114781326349345947191061801653896693642224946751869746140760645825908541805805632415940923359164495978134233850006338637886587731801706398689149971522825807614179270358500701960562574163986060343982710099950322448973958284071840347399573495089059921880681312426534094463424401658788720489582509180660439590227329725618940673454689854054085962906543451462044620787672234354602749412827997457603138099341932902121735492221234194545267198664274009051591729610853662311690579239861960385289288421914487033671427056838264460449078897969622585340293508717014574637967187564775454743035338103859119276459135816817652884113082080975149098669421680906462941903081321197981690431680166474430306550108639678504923958723026135057789754899401264365235112320663400072284514747981043830052277382947029123157712478578781819761833876917356495111210142185026592333909632294384658502216282247376211422832553881024483875475333392062200438968292062312055526712333867827829763366191506177023022586733982246726527765676837884034553529640711876526443900978812920669364749021812378556601360909967838505842452457480058779661742748555182381060945977383141959411618627635122593476077139723922926966877555142835595874151124925568245149377809438650494891923883064782096784602437608943281081997422641426666118232841095172913470569117983044066663923109953480702544652056448528629240039181337019200068314772499807082082901443956162973167811343908138273144923279659506219702444077287055891791951346677347246406002474964748379607732995173021077332639507622322512019594673327660399000883612633408015200035695270142829980816600027921063279260412382279477307673118498078761659956418260240536653468337443247536292010450511592162260740445909745513352099416768753849729724149672664935373817615017004190552110067004435149965737935903309377622397446298456078890135314459577599848034633204902909358887850863213624294260572545011441095322075472095958771654832941608837745279043275643863067594028163858146345982728157227682886707885866134080628014762708348979051053117826260259879520887178460841900071399985704777153130783752431004339596478518081048929130491992014482476194080688854200421161611766230282289929002458178430197773223306523712591336547579949668033051588508565491566531636885209290086913652525253913064427549677354974507650358359778529452680074225970914093771649141827122659548396190463233854359891901410807871004598571360069442112881816393624436157794585088114225987931673871554961611686909453891373696216515401913903514234974523946982263454895194901900010517428674131732436702817223978744207235015686894215003738555823647007994866521577883600311577859986830616134333601145914190146097784065052236043373059117428291380298679986292009846500661677492340457904265970969653531159286172013191895820769842873435612845312235232227275919185616714436839572161909595137061824700857604698095955434657388364487607464184853318158683382282877507659106557021294932960397547984414922949729009673920572247598098342727127143376364667242967750696794002119977420162048826050241990522889976413119101182148424323471630863680978416052992165279617204484780123038330653815476713385976847744767575724888663429225236614789020406090747323530805857958296880129112934866208861287134345464201436951060467229395270634193255772723841022894949845790351770731681934280420017935340319839248896873738081343174801137665450351191194328238521948387151235982913357951932807196729180875788417063446883466958195606072594408447722650613860976315535202081400561489156488599955562415625379754995466061372569801222972249829761847333932257642633903058978939457610421449216287009013215123905223938188196349656132323348479761087989370897069062117235156152007001434758175844768623391748238237260787155065362148500417069472378868596329571841212488162401000077514789849049748093650766734927985382384921619063688852353120496103647258074374560099302065968325149160864868066334593861229320637479298512808674616388124091461439715150086056755342423406052808103215358852549180394922906832567089296629479179365467156074844502065436018288152448903466356664469078726397661220333765820364073530258330919223195577883022398661502668538666543892655291860141591204882126840431787021140308775993107535157724437533986923225880154085916804995224130876475256931062306394411692887945259771519667373103878922070852508937410478557093397246191317576474050103515889695308797705658453981327949565047860387278617859767033620977185739275268587209519858328012437586095035895570963714217506758529990190206928698752212545356237212848521078836905948365330983034689008009231544765847180486111112637533301482100414921870180855350529868684561765739836372091785576768457759539441802070818208406693369721035563219856351325818060649853437858237945967819855878482963013453893682950228029996151872112216568566858320742581884695983242797151102429561092530732228553015826659833984731298490176915895400405829483599115174838977625618710373108433813374393685059167482379294597869150774397703375497121046078111016273287733871030339660910744899099899630284808070177671324355400185074119717176622691812679090783261098279116320378410600777345494353422981577233669630050047707849646487281398785353244015073354767112612923001305197154409114808956608598860704064931246987155690678510740293328998442111695263000820413406802015399211108788716598162924486635898964827563589953011020514486120275249262769644482371213906227449023037421146746032537694767614485137977695577700290196796078037481260002982594860337045833111247414885291964651939708383749429551686685070977151624364424149399381803235146119535075995068872919430404058509030641152981348059295425009508099366674803975864612355351711394598802466773024795503166905729155727918500949727547123852574036988411676446810091424765113206707990841531491138090108774494632246882259852615814087398904932405829553233495013109683636307691557131162330133338181171246096310435497070347151727403700997886638519505342068697463007439374459738513242564626040243448957100882362213459299557483778743133437448186278119287321132023051755127204689494576122707850965729629702101788067637705347997093431808878738940460877105324014109632984208321772287043250504203269683840534039086499949432210127054226475881033739595950138068358036860475670238769583663902386710877207303770028917134737678714274397533176712678114891260707993364959090590101451985416429329234454139141839864266464455742972538851826067635443091013264246449932013658435318751348879716680666841159590602196927503150886402690269308415872829983962258553345579401317598988873782147427971662755197452835078616147329493699500238018582808994243739111539618857940947724135789294148823478200461873573708703145386506883434433528605365050087178262426071785401940919993462986676754315711779692113010033099508270883705459260832402035347396494218939907648313804659249746871228990787766096788402525249218936027843266340874686187209520249938171085321693763906023826763634768630001668727792344886450970285233842125982925605753798172591577594538223224591271912870855337311936636910049353553869709096624587654006191465731664208606375995848749790745685194784392195715352523829280888252340863968941585748098046718338947328807296991723756087076794940320448322209225720917213040724491076081905495630284832621943258533788325513337676939498110217045544319501250849032958394762061534633507714489332955682116529593513761922231972770380579863074634203607282370055190362183474729853343903803341864353772427017126446673763989069414716259716958431429414164210369353895961157610127222943777975344779288598741161745203367097118541758583511725978912438651491618697535394551200303387507858801835692069701414564457974205693150878947728030370605196946176918641954931191681235419939148901728173895214934913925013122730113156116319063622416465474540700288871070528155524090569976616480043504050226075143375410308372755368829493395440299046599808925963741453950405689260140646002806527755333175939922767759131531960110854888720872986710434056593102476648713293480463494046786206317237238023997437582262153237410963290218687815137208675374766742401443783055595701511654630714141974402261837514236003480374470390662820891968572231444018775423544514174266336814436013234590844145676058567243806361547130721583538915815540057473665762370821886545597748356679708287023099753500892476257729769612221346802450098449211730044249129977341569618374376807146498397208163712844749709079077610342170153358930431011678043916384878954041838720308676347236540338346067545203424305949236677962857550625878589068801194377507050772994330735927198072236169252047568307772194541871840816837962776020955072954081974693332159809489407328390890480930918290478853887607611442046387400850954167796897791059141551727789878295989123446542475386757395908303880307514565979684127952718335085829588850044308113648886995691694095656207564406978363202741685581835654788126887177459234708316728876453245021595802774062791045888315435268347504738541972770637007168688928539733351657030602529775810458193310572272666407084195480842006136481305433199731186135197697623069765435630397143685562902438179285445662351617458715873316922466085752704069184794755890928604979662691904281422928597443870872241265050036865547087778746359437784211075227724568390297003689119877690931281199464751206687707449666508757127453678294710192018370036340179509741184657252197710522860264614040629496300030325992640341909082664680951650872907464929400349613738132170468574172712448193105658518961958468597493616387938990429938245871155724926830504660708400786065253599711394722297829962759540664209091144340739300457504323252566165445015793951545390125100254481690878372161757889556537541558075972359283848462204536076173237940133367720187780624092792457004143916779177441672088984743066295749103080782617651716105801308024041974282140214094391618366733992065589683067204960873877347690538894805528017247580765246369685434421788017160645837305311537138329309759502882315629083788140430053023315629646288519950314506466943694189140988833638379405324743159919797309640584817523478492425126003256782620430793546121333722330769382199616066367181045127782440336235796020569860717142276964816980972631156194043062288804916074112131885417921813233332419465394673238575275349307675274793169319607982679221318271302187393016887861340280055251365261996797335939598128911816914121548955762662032123186137803525419716551389727638501410064225570705313460954331502786517956653689829584126600618589559147378468674518263763590659265666861420015930176393741407124285045351144271260493710825354968425189752506792940472311361254989854010517221380748826658969418603109986379934987996531264044422584490254684757745643537261066726872980154692235472483352498082848443909292258406905342351634563178349805188298659766077684842856568676208150490582962860603956718955641379079882624402024201567089582435337027484301427879670054925238389561317919122584708827200474265153723617403461860155844397120895870681682514798418862775770460094624548755901954121530761983333153741539357103646676563568390489970358641891204714664899497152853328952835766875387608840749684189117325608174930266008387585733111944393875807590675743577709410506875416825066286813260340493494385681182388992554985719378570814698791611294856942788697453774313411294694250527199639667205866567227522044447164634936943572464812146140238386910020412929949175935143760963382082637972628150713758940002745790582643213161219732174777463195386823827979872036783530473105740481958402713060582747356996793817728905766011101083648299826166942842876920130011183283840921710453376515366152827640566529135464742120560142457077370266420796471107097952775031961386406833878712697927033391571936971934166265669914874179174655339001284633326596342280917172828251176039557009407513531859984022952855558162715181381279905213287532383325401555810402321418818154441974482003082049946364071481383271888595696917891739406605937839419726251992789657591649400575718539560289687986014795778586531167492579633006135453748356575397269287220113002073888575474048728998745228611431021419536978008582508395122416073466932053366301237660011408069466013654307774219964965590959036991260971860637830726673653246594606936505382577205927608373435410022689157493738625663575156371355744151000931903761300267939329967718803644517684069521166721283406519827566076975601563559545920895462115095079726246955225702467156501316902375222671684435203120670012301327032865966771908438795111577075308914934340178298307397976148942464209977485640678505271754735720351732523806472007776916564119968813309872692027911298254541168563873523924351679918376167841710206695087520953075573522483722361992923465973589471893634921651572608602194293751179540044156383498868038705972291936361905421606456986880023259989112823628566850879038561607327428018172619471038074241378075143734068912348675451249430783773913005105005156288130221158722012811345821134066680830981618112468403261933058098004621134008958381529805015759826013207161715549600429117904504354532405560901665197148426387333644384955505217690455069456001261149417989204347779712567961027386917607521011086352899485527175025023784120604858929698391464804968044233971942036634206265712068824123229263111060607896007025248810706890730247157550982436152036309581252020858813752050537928861983712527836268484239563679106649739725048435130743198066705380132885104168342980211238584284026455151696241041119661840411126356025490397458106608896382712049727131147400172916394338332699256125467596677308383413991388549469905621995290362905607539454923803200446576816238294732130007484818971090538048911837908575326991435953807885229543877087340042367208033881220651579865434977708501104536916175951570260320772217852582066435984801790602321113652606715217868722192987862105762563596770362092819155499179993222555060178656900041595234661960879273575083534521256654799779530571209308377458178223742024377085059766343801906524554898218930145337885932046232251346627442161187269940524184974970999984651374590882051215903281780429552739464548890543370866254991557199637115041919821013631022214863911351120282629509519240661565137407732067034232414770768478711765267477809115749877286325054323496491885296075001123984856606252511912363928675429887011871762624021668327124223130123282804636118733413629608092898063612139842472326776460314898993678656957474640425045820690520816841927082594195757203085236578894154025138149388332837304538399356009698532470106216469419935996927772430398015696083779893149533935071758861810829558046081962463805072918705222665303782584148422268295216522601731386187185603635502229934272386556464960829341126630008723229703368143381419119469937501825120374666484468443533084946089802696268222336498075269284779524577454382616927522207978583149003553993846086559209974792393863970392910497935684196699621171489473727246708428260208071672714595543904253406490597567566125510030723825131312671182772401568550265204655283965479436585104370939090891575282770070101925568089028360858420516459464165347821237460962909397260851322816208764881014079830701754942686303444921354264972985450528938926003648838737077770972744465210484235318259103437926805628333615835957704245831746464050858733150673975562423854698946143598734825023078726792827198933399569394716003727683499872519890027479818183431746193841445739129248980951302891981003752305909558124882640256500350358227529801568002641599584674762799534061409841090812600252904503224759307926644370613196824515797470402175519849988356700258007254235885074911889368021676735971750676685318874716444160702228214693670678104629914519320402186666011198939706439087132366957006252961265681460263429037018974113700856339542304464727728079528026103168214677329029432561324405805644123255249140251850184926508936799988573073141547863879176074214023749628918430222871539003604555090940210016372706237547584447251121403223170680657821761673508233537907673661287311287523402805504923997333832411556596403493031260052301358465291055529522338956243400927371109575265040988011123660103377590331869163421259342121836194340198688439084837187926484273800208613205322414859241007450710329531220270778456791550395106889435750997322608669963274091945274203928780015861275585544101790999166384180516686193493338119673830720280628128159069114505679818010913689532118538461118332921584140248632696349613620828652579413952753594987373266422280216816234398019099620650257464298362770889126253647054045098198403930410119559962191735680085098347000870584377741594495752448248776271040604266870509297617724106035157156321608698701994036633671372383041041390747051896236807944705181289202757595906306700105375267449263483785876284376036795806827144284247220920508515619968187588614978943165579266516489189664655413079329106252237746413492046081877494138639191358401883325058324638124523586021340617866499147882206064664109786152308813345246159088036038804964656410350087158100042041241859421991160121395298834436381523522101547919313580724824927027918523006263625607196035037994297172295825570657163678248263693102608189797720265965798458258882990033965176792064265505040291402246920268239614051550716654749047411076047244093877144030712346722468152360035103625246313216558385449543467368992833235065523115087087587466428168089219682928139490979461543912744234212350730267544457072294714735052658879963020068626506239023339975906806284731871625564835419175771137433364571895269890968551475453303307513848478958682383732020487431837299433038834195633353987491169999972988001713566947665592036600336407168164670526924817575693628607343676300120930116328766676400750152478585265655525557285620201482617922716356764814489802676207433748466618677019624794997219268766550603567259043348233143607602927549613825495866472143890344336615914183538447730693534924865158017212454051085620767192193212198256275554106270563751109198557016460315312245550449019847219676802361628309606130122799958041084752132921969455692647690837794245700388842027801838180634235372619635397849612621388149151868847646390233852347080420999584586382016192583438770765472769049194140061101405287017362621773350082334885425581880091283144131417900502207871217214982202031723576412932663511728565799894057382026510827664183825353718178248508338437776407936452027629920218034102447662337744254797233029580557483086496328468450600294500473535434790344295516419790874446161174372300620876325732603764253778317821400577514254050346506314252201244118878797623621085791906775022565979623201339104153495061907411502503569934013077133589487975390672806722147781451134387083194095468525703380787992481289610241860903299172811779839557418241858585689603029334996350703218047373457053515519948012123328560161995047157242713941200174124956996120645511809402194416482631294366177037847886647559473198197442041904310601324033889193052598496427042146054856723753685888811773574771798467709432029718500711124325761557298652183311161628166552321545261020262805788822795157551850616637418614675612550218491333808804982123181659877686644404258714650850109452796322682305078853814938398523357735069681045317121523239288419708372376467511046928910244301893824452772397860472391876838692121699350499199468681444517583150420759208256644497007267452681454502733901193739263043893737074411435480254424396766965661649669928754693558746059429111527567725105325576163888789360000833277837458765429316077651035026824876865844609889522583611771035295405777694943359397974806100804245738389330903601046405099218046574806627268973413434185220753655577251907003133082615580052514944334078166772114315482880187276604414514755411928155508983994821091511067073304540648584668656460904978823292107142105481511730151523522870992132265107856293960867644499393163742529950769641500863947957911008360221391552744673882732901554439257853306024263613803304639168736306961466529455612665950166966297047032961349835607645238692925030368759236344021380677440490218497511958388457818722601970373549722176617310416994171155361686284931167110385807813793177034651384402441368980149975205687111746541349781995404134186137073560331249641594565836460145753822381888954353263867500131226493755588995091905874103470052589442413753690142793218809952962781924817369548347689657661738406798733723068322057640812572009307694840105666065848033369826344598260123402387292813824971501422287662597288220255318646625189220058217036591465815907976574875797237158654149987987984531886572482283270217388886459478756136563671878889568588715829742613008551403341592198453510981150412988844932704733127596041158387023571298523332814768281881358669530843964445272941796416035129464668965226750994505668124757307172988269846273774301982461191609665162658504222505174514212423997419612481008064312931249207789581497602273792977689988815222358323129570964870655244083601143198077797218012148823618328460790490739879216096674543915986651092944820740356370602973592576341467434033002647898046861419264178286149059750727979370027192223572557484197765080004496494319862283862531065276599780573166456569821357998776503706273180646646389200702194991352605555420714397689724775263839897971860553638458634392273894653195770694914372228749686610547001950594127064099949391997170753531645538400249264196232580921847990713446665203953644845856206544611756647031761627152104280605119703590879917937094695390020343603827718980086092855871267820499930183902175234213287390201440538881821945331509670386531511420970343678005158023778132517752890065863684481385762788133101908558869224858758661110022507693388677594434725523927400303015875687018626953641878599801530141139411508873896863609261882661287800448570461755951042496058463108971102218783174937717490542846113260966372683424393332847886113014382864424680567106684245513088221706610884100141327812911442051579559454195469874044637568002928987173226543773480688583723150203187420360701508239124358049056020214313322439448482407161571880957967479620086802542556789631343916184109582185250989740829164151066298916438877357075731906800319880737679881082416865760722369521324687033184742141869494506391283512184175518273424585647978456283709084503415067317928083305041734340063624078821086847671621741922314105299200753158392766811691871506085277225428780297707876072305566733775636559760887692161426070247175962942670095458184038083696284083251794650726290017794420868217662863174568097415585218034591175125613762598615905497390824723629173232311653215499644725025742914473690612565817019027626719280035851564103175660101272876350425291819970933807846701639908600872031031807689056295894276841151621069806475391823369961123740839332295337922071266458168627552884904494332874674522660452328517111154123596039080817158748850618005287033971891540327873899608951007610104663513859466776625836955229893068555265968611247253582543288820415838570213726858043006737956303439497096195208704618461070845482408875204826413594589692712622402590233435183481535432828166344181101687938547727565304364382064568672350515416471211996050069164762102556071419520939868649683187174022851182165357329368849899392893458428026941277817738593656906475387872610870067351333458251955651117106718826133675495239070422611112879597454401732572556153075526291908761954436181013556347920038219940930316078628619463852026619505149893199009266424622986740737009538910204476102323040694523178068611084171031438645530528422884349030291096956586335037147354735078830540039213129174874963266440505771655804676791199578930884273433793548597246246686353704644427279713709097083888735502893072711926971946296576717807017507007004670713379313032478016419267101617184815125617807832397717816988525226032808765593830174102617723504504869731755793286327233358298610331745040957174082098935920572164720186424699009162436043478179016865046689898359310599219061115933423646645346227386576233568929540669783676561361306791566262982354430234659060533626535597383716189211640597612959956833096090166688123124135053540107046487719196386485936292336485331830056697862943602232965101267282583166983576981669026136292659897028119436185542508380465895485437593226815882011978954585497462697472241826437902836702918037448881107880137323515847415679173428953049796325191147617089890484797091810287953940571217572725705786899934659249539531692117353529646115079139299693417966550065877532216918679103750654106625371826709127409049941822453905079100445178924860220091247814723735809212010598457467078227927431012333862693893648228538548663190678006221187092553317841765018743953973639087807532133099800298022166522796337600041021147967767874069987647969536670789335694731923440543769076050038338826739311471251354957413140630108025507863371353606175505950058180620311303631884686914222179897306278135974214900159459281304244258646984225879326961065962647676690861490580365922874291548111962056901628436184703247497775646502873474549955129865428898074155647678069764228417286998965974691439387477086817123619616360614391021939329140123703255777359883076957231927382818713997132197948274741932408177223494957621436527168715321938257540049275292276915902446545575864274378278926194287238772446638629123806132375739770287291040597074262150427485495026253753680191554200772435564317323959835480944860573628243869062107622594630999152447026956749654444972847850967570832632386644888444293527656430012159920494087239085319277341872882094714163596814662754752473128090231643349506219122719382720933021512354469765464149335982291777947145858167995318785532471066360584762497766514662265033876640213757163327945147554482251032932278543980731510063393739631173570958420606036940228204263677785359460414570002754423831089590291233445767600025088212104763448087843471088045388882785811022624664212494404553155937615613191597557246263243647891357891500723701145340547903116865866653376765469365178414381772072265152905535592368089431028086503975000307056184219790106244573828173197815369803941042587757595395771009294301274984269923460486627568051719990323172995075450077074188571863660516048520850267705625484278215326426955329695082991628363397578052612624543249396171143460959510369419864280910299694614049810714653250223354016718729434058908016361931116004789360177336182335674706553694856808845633874197852249901921609292030118446932899703939379255847395304580747592447130912388016799205135701337199837358040884646923257891655006184738958921308118846466594139914653624073790447269428692960827296632770161008179704246137463714046829874189067484425332663188956760694053520225142218083843973949874065676252339380098910101472129673154817568585368305715214050208506001169510565956871603627018708387525064308813164962864058296562919327078639500514863742566729391277877083617079759542803988128478678111750989788190475011780361828793732252071704171758819391116959474038517236172491709038833452233726183714437496587985988961200856292238908671563900525685524578355061529498022087624096685642750631420737394670438511655466611701279370948543308802766820888644835297515449997618170723654229285441541443464740330653999809271666491614638745464659144244211759089619300552992385865524684750935902503395334379517834098120932756117699898035488841815999712924820853807002039771045944784309237941530962936080241747931729096893834487154043961756610145759162120222555083030174968664231865409610015780802681329524214710659809538166791410994583683584535345834742087895257348934984909327156702933581236879494127346516116093767736042202983713873150949525538510738004661394115663686114305126726684323024841082720194863017291004584540521003165168304372326308433352150218607177662041220297331573305081656842068646891156827187068169542654647093271304428692697498337295371278314373128981199851230560049904275806129158205670139517306977477397686409631969603486434911266066296545792258431169895372641954522808995922241722839748240709697818630568787822610661302896988538104841268629033052881761031170942708593571821824432504124036971764704577422112157362303006481744839316170238436217488270329714604745907846391273528048860001959689697932318226748398628694540044024358264624895089249237828624368757183785249444031356987373791610330800532275323107234831842322219011056869747381180303607840008042816842858583758203031753169411108816087012905448699503972463224598226803042037518422766897768675448521223915439265328698315520882821579242870311323427556252837127997965081198713904239066684486876317805811502157766842658064502419986978420758390864774768754258229542894915749388745603573100739265134569886040319480082517007746118309907124115270157169343464496196203825391498668300233033797202240902645955694311853713667748626773208555912506018631795526911965550033916721511891462732013585396136068294319527842654440451769393201167261151018797486863142729224894876160256398786075498820892055117613740801114717920451514979278403413706181254134709200216214693303299261661306758604400790599579530052796487002445940129073204152311207160171722918034403879760130013355590503274319391084834495090456882357872276844006489554802913956179800874361609774652256758807546749317854488617918483358941677976729020491692904426406122781930179062449629501108153974178537617693745419893324234567489784644499239620495316398165264313383869219879598821491755198225398138814027176509979039698762882436771449845186317045395752475814258297645975425551663707342422096039949230346761699627580941139216446744544511427750396367767629552600326822440411751338521728488852936065689489813467850624248249789648206822447341611056699762849417886324053006406884368880898251863914262975638342358287180369666746967966210951600026809622688751550030835669603390280066559871221069340952193085274733173829595211256007708920411272260427141944947539641363426075828330390174547159732965159600745916926484743772162478948840244189215480044801682763655303936074692159673724735194120573668410398985854355037715488373969480254966325724610820618183079975331524115524931647651415699414829962419935944344821546687223144175382025687779003530382185441598596722119857960438450988763415119434435235143124739898352979093656459802968285949406953276696725511060920942752696481881946687251153846686367886314772364882572055765265216064244912319369585069378836477986238800117991140879758391685911065938634538919259315308032844007105453541655313133760715356213947160680614857534295010597107324906941179813462717567495186639606746797214703325564383108353918465788335302345209371135239082235134648253068518239391976845385579231419107810692848863517300772748833276542093091054545073446864245602017579761001847374380019823433638681659767212122358404776545649968504866441021172508073111790153164947775353377259788108777430804988052686526290819523328408399193080525358304451470283076317094658549117321675459862823233442805439633253922101427338040309755531687406645662880927583115302353737485371837773365446314715574525539349590506558142797208466547668686660054091109380773300634911010672091857815299129402042621778488124289944962502362396686191753301117423612640260158736089389080790811835358583117895262352478433698675395683261491829775690206644819250182297096458420400837521076938074700914727118360299805646553688008375363071665320176071403997378134549328892227617455767941148832412804315877323458390424344781881318445642482579630571427594111391662761685791336846246467980242628951791615823217646354420532831331457018930066371063054356324051960474516203674913573222527212632327374403977211287259676276383153016989864386774444113413632215948143246582633036421158223916742566147751643805055824087132500450351952566047347186061161052234475837812959059209529215558712494152802013580002136932383662555255662445360708832918186184139302424048319399685887271664511449344871700433432949969402003121802502472437664175322902989341085570690585685726637214327220289765724563937661552074752194835356033789492861183167806833438916583391612425302066393781707196915522567264309761346725055188750109825607313506028362835917126185790531737658166436652402046060244062557888029815644574083740301950015386751712783285168075925358413580630012245710441909681129356318178842185260107803576025793744075119410824672630357691630554767847521771947439191221171796005658426045993933624678674109144436397089361975233044465066427130174527379236732911431137019801590137924207706434837731262176793982831040939194974271701988586794953416987022003059020658450889487390646764086285886150737142296208381184696135646557048072127343898596703126366034438214091504721501927033949663022632384993679826317614629014503418447008006098865759963451977365750919595657745532931888028568158515974788433961386811604409265899242147564494046785606863005723981615733360662860889316556666598276166057238856199159024420466832228052800783735160876309172278345585004511620579541629586969742584219898976749548261446351098259236439312714727857175503510263982181061331985248881465104515908051256596146699830867682669694908228967288028877065006211974800530359386639779844764333786860454691394003414828158668343954378731279963691262433119401054444715425429788631168813810456457091001571128955202864995444961412824266826240213159661849816894617891446954101684029857966762390814987932724597364516869933042950338407269952595647470713682173198343818337784116909364669104958814464595988421710758386655678929153389560990757775251055450111759415750717716261646248253688265725221832994969988118101769179076349524942561737026780589549604019795545529458375814374123821942522604796337478067792628627595370773101571300941136953056147705494787546224646627147258952935882828889067095438958985059676131392978138109221997820170288597385355391361640399269710889536307318397194224478804421332379356981413746862977809440415834893131075127917615908687005672139562431243684794109608881269748883675058104159430385619547834853009124608534745149288910745219706888879050093971159663517140995251830513724480857474380761773815054315363441003678269929019024635958051999170673691485024578357646872145972705846242414014722585769034830144372998681611936501421918452038381999036590864340512494626584344230129571313181229944476878565737439763529534242214021695823843797417076967480037199051149831482071582013271910537174711525868898530948766560924664931193062876005771107739311275628612901338803922607808387046735665900401803764921730043698015793935344373264558514212651477900156869786872059131831649544991172614950689674414655323710960854195924201206411909940539459846851886726937956611429303127969703764641624688178711568250464912772831170431379323181825240508339581200247195385256982095344230694375891976821902120951430235511889854026343267644535451112603135804916986982912792137072226575488102238410137780451792100907015645692312579249972462293841077144170859305074096077412396277821548888508130570276265740475065645799170056679694131086477653382152323415473146025728132362918455097584289817406592392845212432097693931373710300734227918406445911100877503668094551200544308481768897455298516359010071792680399042677915676837922892574749898375947324188417532557658997066243184618566433820677399201684177474437312842536107050673170933992148684658012111281541823902608692897206323255114876640354633706880746701575607070841105053682365829067742545308493425183812309214399001158535817486519990961429050462322704389543161056556074462954275215703608228859223682594744487384110014018455616571254254458767102158399449116425744833585261698328075828132102261696708480481190016248371238029982836192400886880301796018562327130229140815163772978292575620294884972715754675581270183762447349307927030456239272583532853721764273938898921445641095632423360918356578770038338340654368557636447510823566403665158290754411868521526301918236379065586468775197429913102293731162885292976767296286618331002353226932766002753755485510502196425584904810720554788124814607302533660605911134704062592954881611376625591338907344047199054711971957702844279422097550377968333387090609192292679871466806719130867394720590708120838542300302611770168838555218890595549248073061253106860692403002539681028238697775610308772488487622230985181458730354301583868468743295608896023823844552533906347407776192136864483728765514823311317592134114460392017302788004798773825635763266243586759536379000106700605468619451655336965017198880643461060704887914158041618207263311743809628378631950004586593358678407717325738977163328969083599943239152657006594605582609146155266115683777929435944088335117859808873534743867607730928125968845857622393188761861807189398266760241608397160715392412288720592143537174947003637291020209933662852567869186743765743227233391277339355279921676860767106234517908353111879344624863112384183275570747217759941697024100928981822775431378081723957618277340219046278986231782531107930331221121338906593595595905966984690541505256336306518080896977928328340572028378790292473098554995589360425449290466241324592738650347068977260076612271754912239104335144365977460022193210727861436622001507102223401665420135615858623746183487265306395564243494270346510352619198020833676399563532514873575302987161394271483286723566701281994254131833224145355992906805542805258295864268349104676294241839327717284418393213587497172673970478306566064116680475413819172926500649583277949543082493618016907056996608596165233539990095901864128541134480590624016799216663514974053846695126362395950892457536494169805844741452596994965837720142182225965459655534333616897759082817884472786016556347352638495470101380094559986278090514193696482866833311273409652718899101950893163601120256575709823998482273045939007590746306908634110560329842049785405651993216836497132391799786922742582491132102542595749540492947542379021947511327351912999706277923457687149609024391819985023901499775481319218046058793333760209453576244351055116247222250110526912521980157298411834372538028439172658763782731356473106414965252978462263952931830588485874227754816748333876165020217778414514898379630836282000447614414322354607499732400815893858699544694348215424509479968044726607304353375220592880816523241967146163986217657174362429449300579918670835850669873753611285716751324003545763342410566909358724593739857132707170654065343396197694251680871679624413228450945372808663397415857400906597159300331156815807771608408587408036506110350253775813147172522752840713538194359706439060710715007659282572800564989787208271798654633854339875832806667654668521918997013024298470567343848438711921820259868338956696724579118284159284370299525486356021337221358770884852372058525154509198010143715687210440603056971577585487566790991508321851591757404292245208296312657213537016483115585651016345005653369355086785362019172698482868790826908105967061226452969357781200459803765470953734108788812784703653021131497699959904995022867571201433743800478368845089822126180465994973854389255522828616383637918778674908950635262107441320543684918010571443103248166778093216754921183664931095388376421676358697838536556008163713387746117352223652809631153537319096871120080279590024303341395029794343988777012681290829929107036092529069623956811762201285116936523139723133542836313861141261676764527701585318508225490450540140666506767231490452009793030711287292213647609245095187276185319635182062568454915617944470208931550917763438840235617906179734859253520367637751535310761516254957916899492777127888618672902417273487527010407699890274208069210214959013898912852909278052015507978105389868924129127573717481038021694258915298622033165476145022347708383167882093694747394624461283998971911449507792841099622489758695021133379682677290140050918377225917579112814731735805533193418446861004942260074281214620684732846890054116075682327936686747539826677811415294843064876386757956013794519747964458509949250423598417013531084382284678291845673798036579924013058207035118925165714431774556257042908285511962089832298905149915463477683698778424524326532308576032686755442575638776307858895467237698599107127607676917867037561689874575860415387474397940694404777824344126590130528569551879390357160129453207776602502261231693373232907398316800764937994769791931631067775649327412526562844592630878551094358306252108403246939853610150558946955083727371908487004298391215270866955177486608558041483144813968739498128832438977247185751692209695613862454083244763101852043670507389065196620923294001513970669441798797901922744439378843304461721711720280469200971195130948623181276852323418535253623793357794875481007564771543163014417382194828202527188016279409971693708863219251349345693772670560657626021270694238514735405006721188850352934819158082474327556783052784073478108081056853174054070461320168777788586558013796111454727715428307812382994091316345311038811389882366133676467259695945045402944985368309011694776076565319842773850681878498952891142794498742720060565893217103175245708422353594202077969903235338391389036652680767264743675607170254484924346582175527917338611388214826991514359960996255259671503708302304815082684362437879871129269800742794021927253643956167231939699529657128217223746878091183583096210859082136096844444239983508777448730797460250836497747535595898126081257763098689281217721153643980276076717869432335966427658357977238524202872746573309730048598637236202321267641177431265490117588175864656241037722426384872370416407736194477326479662972818503085023468814279298086930037688135192310727995087541411232708920786091152130674432442586031705893500185703723238592135452034473658746957707581011014591150372391603327608732374126619100022752216559702014745887625228671452072190830022074062569534390960935039924136031053594389642395702411316683832041793871199443291088308606834870772397308973138289263801736132732820427079164456040305424995385204056882540116572006271991229146071338905622744762437892671995922475434804336166937757096871359133490241372695604060298531477805112115357598149475063608530521442628939787621777770494199420055896324715626844812361293785277707154326849638608102645255632065171493764657463121157224909876541587730609837776378479176033645789605346191187119818181516273387839107046389525191132522023007420142843477719169057400029098802392001829025047013811650831269797848994619104164649608689494131292751525629314164163937516733892663710035664972990263354323969439777978033208977620511198042049572824376180200073766463773971597544535961607960146399608726502529344500718716314426124662073835036459028531855071034775487455423458379558350967776299349468113035914187459380593792888722840538098374859045911268388455519754359891409499042622174643452458752174454934862340978492291040447337084546738823856216097615865071987990142158540044490677269092589378237495662866668722533730279444203373680956691286766168303672496078866043938037513424351236078747608576059610393934293237547748732833560168584442386159633792997100260919414383737282326770623842609475038826814390801784970588010188976217906289199651557179355800266468933611910283043266258832234920535577872378695374118397643299515756704632959552556706263259434857693247409167740153815033585068872584172581397473626713971108796778657138819180312259956870819609833711087935977744244167686837427327654263691251901946165142950861344036345172816428199835903182206753389515996607130150848736520907798977567379578514137240709466925534142897241838345894359907020549553176072860704886969451585666439916154618995897828524026308890311924912589025746455275065789198734444289287603803089513189903228672963534897677102836575743989795393447509116807681253801609112316186564791644970092065700761904733027258349011817539527983198464417792161929478028948839682888911092882288443901968142502420640377576590294785627965635987372360877835792496864295417508202451840111019808555683020638786741380693373868491335068847512622539432920810190945110482926156233343716333521344620469328966128290008772915237682251313820485278302433429282874332617658688831440919943918795282198674192518409985356837263918242658519241051175198860217804553270513907129322680864518906781597630819014272207894807476363295733015817719087412722221491338753254499658477590247952543611857012916591240925973816766343331867914549215987207991810950103419540862900140402959126391709467470807893789965078487710030068497741363533750363626745712186273271597707625734497615621797468847357299849103526019241967500428827666555745843075162554799834470719441359727838455962160846132864846309434720097162770539792214214374548833368395515895731239949080944579360510072473145828391632614069519689566159754458461875515401293142800451592602507701500087764595858435459383816905293639109894107284745008067540956055934929108368901829085246081096593392857535268279217709282036967575821017569448858363861410600812636748813311636094817225087104946027158636947333816784801370598471462495151652426460703642284763447241276119645325498276049725763595892359087046362888072589288551111895684051619167372869859306769399389954169688360085830784284775124055678913948848516007020702318462188780588407556389807500073554817911936207827019146296179386859145071248403037404968084993219136405745139730648617807023766985642896133740119883965591439843906927122134977689738726275673813877677728025351426312322814092325094093598868788917996525495859684500750134915152622465894219731064566626669811506209765514736313205276389026767531788265809524485789584492027050440603743269494286720376732315607599973567463174976547077359737526933507495008836995271276057980669155209969036324598871514312771336230195154414260913289420935413664254483720353726670186392044118951978923682901618638422306957874029162637147702105302265950886957376677719859331364697110439090042861108279139550529318766432223430985907410509916622477195253119104907331796491674266274810213103421624105148310272931442180458156527454730520146608812579320993614073796316322497228753387706222526158589036234785205295204804004639733437991399644748409405841478497005342583379669280307712925341740280596851862268962448790603743209699864870953164755594149041730532858494448541662620534725888365235435126692234540035095206695521776108734640500765691380294446150545263578276537275965255191996386492485831306929357443879409503059252835748593592236106954955908973423680100812717414177314930361976544541123514661623199131891765564975873835532645632218652273907813968828068583754685740899476987589496820704187775671988557078042803767863853402589385611791909880721823076516037257485317556927860530702399500796778953198885400749387677273191100547318554280352300402882309088335464304902126332961832011283543611188534091281546884867334501313385484861219230867915906241813766201933982777949441496566726016082588257129829026731102378267684543229551450706732757636073765601828509207938744001561572387522276070620373296671620817424458475802584817501213583045253673768007451765123228677870607676716105480829413995265071197772269918158199209752792453634913710860536044609604610960340999579117643763488182134210160809746843749124213515153548683701574398417801833102314285194845536080748553183362017206980492576041759110227548581796013432277878888363635309595764388272237076799785853450967115343800687099235932409408593528063326637603398589971078131766645590050917968823109283391739285867622856061075327030768358715261474316581288214064062138407035280311944101673742428468935179029867326886967745828716960071453138336832756709047234341043926879696069206796519026960266111133639262554180159558884767594953121508898103821493570727506410547880719849013709073936280327072012967298595548580967118560655342837241902890770648633630008101565926278036895656532004447573539885130117742552348117808913937878541618310820845794144464463868940306708344537827491118912797379561926462280899416160933189731614305192666868962820074617985780370834692154348734630678484320237366290738654021800074234944577035891669274658032500086209831852720185364605814845319477794887703316607717597140280409223762606090753307163774138103879452685761043556355462758002505465808703677861933589763094110886892771094611915533548097194205860197943025956595445743647894065569753019538250813990296408088693284054677218965853630152666137960408903252902697847223566500190913431913976815226669093261783840269922255642553034333089405913710599249063160174717146262958414892849470412678769901911723697671186505642897740053744852144261000744755030800078428078943546285605323454418028413548052149753780262784232073463645894825522927477799913864388476460676429899806338791928119649479632263992430986078875854286738497061396543409251470182126489422776332499248458430098107429434591973228963731256546122864095855228436846824830598906468347416317682036123264078685657889966538127167395182927739243998781928162706700629098247818863116361519584947407930291199990475855238366667813663730586416589812697889427281054555984706177834035347397703700248838361814923727996816226023119068779066010544269337686260785061853491895823206275262092247443448113061464734581348858401411044908724556653754498428276149539208651782645918938404533211678129980129575646349835838447571502521852646851947692589704700890133214057468781115269479359197825985288907077241211166691780668650980677493294204617497152236555695004219814016059534746499489706291542362251531559028921138287009914016729793036374544758494897531723471382394472049879671529330309992280825741100836692435084282705619486653856879481309428027798395130719012199173150523649090025874997697696242062053966382059266366432552639271926848149713523889776531254903250419901081609669780457904761647822835593647808218844115751175762425674624908850838856161642082986589018935901897030159972271615660117248567255315216500375690897396160595877480359727790076297384327510851248578013500948528222403094899553421416063900250994429564554436076773298948413411284691882081397628300962468629281450594481195203965308837678222229652169920724552589932697850135933952534762700841827894631701296936073365552312263713242494147023961961842097042209075196813416635991060459032661412241850409545756756279453180735105853269298896192038997700623597253501438051313766678258843449605244262907155839008083555543493225129807972881029066645095770234574296590040766382521446131679378051003488109249221587165850036372955434076566382956353256977376533979233455335887958098846802516611132655408731252746158049195060537204094908324483220589446999142257033087438223761234070522097810009405335023690495793060570023215672348884867621710686395004667823190008310884964378622349093468731700063538185144520768436108169508843917569756613275341747148739728094005116033719413186890289313718620545298140161755132787252318747012564405472341090573095004306222207319165116542288951424910270182623568371973546833435993239717936505117736867175252025234852291986052774037205643268756282809934443904156570204722386760165684337123628635553709392691337363725097757037369328185047531927588702277760411597059239214959352127398901216896983967251793990066825054815137345409565037824342432063825634442157911997826246907809369946550561057907262498871145792512110685303600089411383456733718398564772944651050837309730659635140318472796299307356151754470940513234943729830868430297860310082797969638499801886976102375173235694612682332249807472405404069105117697785189709105500166534456001143282165971178411677551454301715006584306849924786569674684872941737500863589173273165422905876849172483749209303669246136162545098655199200452597899358234115948576659342708204864616974286791835656445651279921095723716454387197076180816822949916649674146983849302264216754794860023423514976832115253872122232221790940064080497198560776583424942519824694983982804592119950854592528051297636882586386648616117487843687034459937059207499173408993294865695086966327313923170537216164212867422752398672224798731190813161697154944165069481178027886353225438377040007551158220365587703079907628285224815904690857358597764864402094776515716772266095828792963446855481486142293605896893049450645812328301545860583305679128667677587895576223673636245078078183967883207066633293889363296931013264956080386727227043443472313160641098014433742886975139355513395827619564058180085902734891554590070554726015464996834573257410731614975108484339710434283370078939815400427208453744392098788287546789298480536426135416461420353185950196372309692722609809191719366620300715264769035276380778382935555839760252900187622887218312256244782743411760219637079771664472144071860835608167564057319881241502316509556680129703313803170932180457677233948649134983941963435828658625592155768672237790447891894267676791767314415682392372479051283156913771043108472993692690392180746808096971952152983741620032615719340806787573637063768497572725656229584699214479544945324494304390960374283351083659623303333822727196442095665726949731443674761532821551055505881950603927292288488643200069960853362778992170754609933226352105827964544054453180058693202539821563420974426571383117074559137039777372583963413982518567850404605336201353986906780019735189980508804995239886250971213924102029804200674462854230150007770514422358894830382247395295848068473158317686962304264316031170735252563064083625601115906211845070478233572363078396475963491758703200134816363087029067939490541134177947067904452223797567101502218137274796271457761721604414343249846880048179953318037936036762788057464461174918082457397165614825150645551399889393449481884359340285661871946587240053807742596513603350064385481281075798908289254756118721214725375208533655328173032608930642802473418994577938403607796231782262784016610192372659077118766561620102700400724859815633699114624308435104101939432644473656531961620480009128769138399548900743961602003326481459055633416075051301243280696254560983791278932735484886240977963527481064297767859358847645230427242218074803170456226905690730873484560922672855272703179778954140875127938760784835729380795918031022513686794992796742844227478129993884600134927605191029090828688243954599306461480989373524492117663590231412851013761166706557351513498064829834487697864383817530021323507677229763826875979208876146880546954242067648834365722397899114852131178819869452794723857212710313113277341751432521979699657393921998024365606240445042405204616348375908895400848860040016914172109360843320303943607844304282492068805179654033339240398651054416027973132634745152912590246067388420559543815613702992844621486894545895947735225995337300825469993548589259517556861737812642861731336979666634508802510616736822396556642035332437504768387803914463218308468759232349017475835883528687999132977383212301147877391690108665868792654828687594668616844344340575482447662741546805273534323120010820819918425456762763755660334896007610122024478424482812834882675254490096042092919758001570726466556857003309520550695345620352335375215226086033870491418371332166421756939757179611169657344098575021403686163830899117798886037268996913509877445359428379768809599703922659607324160829065244253694153714217431435293756334757510868174959019001908086996571385983093652071762667598309443670974799499928882028058181377677721394638882915849781736945393385557704282293529871217215970834661676684812641563306404151244627524211756111827648819127071434655289426710853930507635238665545907764220682924956710078185075150638349842504083859635493612164559454172421945057443871825583914420794257100719863487436503154193930241838952656959408939413501576498475798806441799001781529770686564083649349547902348297615363474760042564006045645012842562365947360885315592044940351050201814076453242472636484096829957053460008204494284187260020482318102130391848534216762782860557811844018937709478139954914531727330187716930882718068525083447322762154141927434282058685860948121466311484480358897385954625978987974683754021349206951420559535187418670780143549750165509157738355838642135982074532457732114070042647611172168342479834791423286726021701568938382306978699935982561472175795366665542686795899892528935148440397112782462460789455675791004654498421363377862583995640576453976210641687620954439960989676052893571722796950378823483344161827738484620378993951264318311141745599457242213357081495022273551608916081699387665570507477413197128892764732781830269872656791470053562138233344193852505408077958654714609400495480928330427805385176226851074714723479695121665918990515778701389303078240730242317310473554113245724763264432447618670716664969474049297482837374985033444621034430662585538936617597029047427025385437969599143134820547166776108194321093973114986018223323732453162172899818259190402139934995921816218815372168859788749159999140487426649105175510343779127106720690316056663741585378775988198875969108819440307257612273289566358312558741193750707068452782122698592571652013717627768037103236206562892750508747754069679632834157641677948696532964011017173860168314786848277448436023695390503249346362562100939922230962323396895472133213031916250254082472216250590460038398550649153499113359628971389493905378503607012650466270501895152687357013950895640962668602427634658402098266533046785705913381944543131663493553805393017352220996149081173406730586737279130911688326398598731268134184057866634491669888471861993440977813874313042232806471539078946047502459067989890066262545109177178306454087969077818027396908763174862546503565901120634063445245516357552502772294328979638042150370261320443710652601123456255066799961045272013078669301164606860107383070663066458695222557220575103466252223017457474271998970754114632806997376385748839420732330257966283511290039673796244922180469773033324389095111350701963011943630433782721163177497937456325774182206057204737259863457884105284788960053253876042499330382451259937080024921506305297199360255131344899318364093650279762830017628390944859102425155158378480063930887694652557307841467783848795584777316484114541459026766779604062677041123870606870251558910055704817304023467344985108495861783585725737073148310322088999426959296223053819228540379972878646045582436718608751055793440285734179619122655316329992194605710006704422265636241620625692650629866759776301786697818235021500190636929088106361236917456860651989498535289741758674450881844760298380959094675127501077646831830485128290954724694796316649967593456442974441945686497690406471589798715032323209174422364415618266134010805845332375654708071044982714115658145203242705229902405689696414569227901658174897776571835150852252810767388658956832525645060130735124918366808079883529211843992414737127974376935073457621893141604028617035784923971614213915873382481111386372612285270812323310593861864274199088421852262918307303039347320038404092645016635992185927271925764659093226627840556492348189470298370855318475065044424454751635606394956370840312830947424609307559015966195791947494437337433344440495088791486429006108742331787843938351460005872548705120614598528110900173920535388434770713601248495477090744236867854382058034165948721154336907897721383341791308549522008640672454412564391780607471359921882130777425900952491746078801247386977230688595841987866325779411626655315890375631219812059405168819391371360681744897892273724273666525396366221630934203217578931538338500321714429334312028489187952200386466141476761210442958919944290676850587310472882162630101048588098494633913245036542833439406696785531858362750308351852290242520518150366601523350757306152519458713263595101315856291831602026059955520493081279024208552929510203686996139901006475682441830650573687651213593317672966042015530086765096668746320124921282206968534568672516413545256477704010830107775959716047766797027259905419362549701775561458842067113116542141292119192981245472173370523571076803673718163895683077156815511922141421229274080954023357167970746140712870771470188892515234501797766148367092123819203247308816127875440923032193308486878550037988552236314166144708257551241308441227866539326994047435039485583406420890394757595907775340641066365250637119580328759251465132414770087918111899723165434333271392937686558963844298680184917126527392604280650889410090965396044655510233713616387034798971310157710662362973825286728606416058863644592180750985740655961765256372158545372406149294102159854847303263665714957032081391409524464630275319341496116651185114892372726413062666003241309295126310075936311572372749362389625525795284426590902971896684322136355235860975259690299500886194819477955452412338705970880239157453964462948994478208568526177545763745973780483607259413383789465108334490225781768196644003625894213006191637219243631394593431703612377496632343736244291030048634261461512502803852814328815248769909511093350665617229544821117133056382406990922708301666287228081096048391499541345229861253668872802175557296663907067070671275234203978592894734635911915571840042052046438424906471652974391824502205412034565702950787640220036822128543448910045777857457608273221331183507792853923555494649944695632840535413420135230223416224453462665479515052547197249762070612768377525190563838282074091924040522762015381198528391942668970597911707272848700219751155267229117156815288846294174114589195004125057277127506033081470225686864152545329593052672230520544365888975002737859481729945885886768499755463433694793285313825532015591931247182480863214912516630072327562824341688051139946268347588315541689400033352208037768438110540268614814053026835701250126194989563492412834840675132188801155491382977074403832771166456989453900548029970048763406257543667801982229104351261120405458830299356224940411684575858359275508364100987080867208750988224151817422593896229041060076627269757800529652051965870092695251300837673460624138980494597581849461633707334313685624616545020257344190510810658309376823635423802113649411858982987675155568562238372683014867550402536831169952039294394038453954745397265451305330683163010276834279068823616304087911961515139040772158143132213436334901749443524067832759914320776411569488384890682727726133393843393580280306162185747557565945046803998879286798981033410769238657011830175263450812605732384416682951924646748223063484343997134429721217270382399783684060360488626960764182180659446521101056837769828444752936728681542520109275691027405041775998537973863224124859953863537348641882234061133344705931761885270531978052638398820232996641660268872706545539644028395055420393203048024042917603807704593482367317057942459367542323921767089601034009835576299839439765201309587387850151670557758628162760409618202521146610106036558979356625777592987415224153421208831872521036825585755730401641594482745238414189801145334525571734755038247095364354852179023264185416988143117493517839889733448686215079453378911233693318986079058625680944058018766730859583044192637660124777052618997472420191564344034304352584384247599519762644095294963291368325617300936280053121068062975850770294251946459526853386029354564592946883271910019710632436165446606658905767221695972170139364236925761842395655395667192479939696700822940843308300232296408505395315234644315136381633692910413435795951681909686141544373309230574123440952440859428587488438749687064230381836337488001278502414476104034076464565985269446956664839443109836849336003127599033669412390801794945358408640116993585098954340052528929142785855777436994994945640617371500040255930403252169369784850589627139422555884497938144559461763035038144719428806045358842662189063267743512944633800748785041319795729574069665053993861519102311356076321622880303537078973749418713730566222218523117799990129569232269724541573261472674196465460610879641357257712814747908702333733314846252643895137278072570336611360390651484297642357265693241097656745182486928257626927688770988985721032928089986567694022776477344014182609139814930199017293772848241595716102204847549877716777258259080556834025806504709929274550350428222692210469299396164410367945988129787673976451895458360714167841542763290212036892368922163586681656722989642786286522660111840992954577009490453684641984576574343829818435166018642120025731545186339259762412189388957646361320324222557023143975355316247564195625214494981074640838665085642010763301293887849332020755752854929445472383569550242734693337733969343874850121770484745317092378256552315162460935614999624384993491208235202238765288463114080805011461601889607769044776841105013122455303811101294428198637990175261502736066338010888128431773358205538813274148629715706803457497688398965715345813054075539701422571732419855691053376513220169011257323600158849731652036034175710228300874071382158941995315347266181354364893813622205832473601427732223390172259308252313011938032334091327177154426223309551255149890368041540612924431135937797670299152176253941191913139939426373093539652580679582431144877410367581153204853702472736248726156299274797921179878841215817796179420406728396326832114770761575081359171713613872766750752962892997158173205576813311200131489917974863887243735677868304796944948787731620289386509639387597994838365993845496260111608018316757591754984907488383579894376881101814675267681757269581560941236151674112705081346895865251866874605054552806250109938266725204965502119455548231788710475616956772939922439157750974306757782639723714727642868486023487132803624902481232014379940788547021849007495269582045462685308849683975434462995541491590905177281191449180900983128615173905923593543654514695497887009298766480853442666218854736172012538775472571683070809451411488432233029432519843213251176742167925576686067569758544337550000646350545967496176596445872544992478940008951398692104568180768094204574168643429387640105132590067918133896644906835718345513108025659677616890845155950505768480339916186594365149083017456034263306675291974486478264522409400231793894483090148252516665738555484998459556944794065192422165764252886956375496095142010556885504031565649194734431359717233586829179723090100024186801072854846906290666739155118291125192612475960592651939574445822604730181210184304034852268174698320768574719053075307016641381089132487177944677626296160502290052019604928450725414623878065358296618313291020355095804020805741905723040092331855211023278906910866102573549481318436071524856875210143646740695042415371653251633073828994043663117900893731112719666446772596424470658087219975880989671270413901779452021030674382742953513653006368778927883880961348202980437469082408697829411880877129983992888315902418413064386978272026655559422289232823935115221284257005491117164149088410695196942753779661863141925483037317829473061155028377719920488111960130325714178833003510716959329406832056144360948852949403990553882113073252543631574709382131012652285954647453849153522405601957423910637854057480924282512059837286264133414905872322449223826972732756878090489857584936104484521307863829898958040287522851948271655728661269658654864312656172214844361809424372059867024599736199043894280965391336482196073106905389272509859851340266302216216050662526311130446409585505873079467554689005100513409124333944473086329102582102258425054169327184553906972725203347905420653597628556991507722720647931228097190307811209684669001050818161907410212689018772063865537516800553547022692468133576273125348126391628937230429742733909724657242506763772442162015632723174673438675877162459664395514520064125022772306949373554818949725890838102397009844321030415277531163943308129610008167107042544156874041525154041115302062440793045250508978831816590557087372627387593973801349963764695891781306344262243887003997089758448543133473248137128242073411168677890103085709857177265160115194808205508047970760196275770972811130651462277454729967469037184952438089909073964149636943284348144567988055710286760297113488169862966808232335498772668433841993973532747917707330980468539810600632404189249763535121990432746257087250978933202879131612158094306917764787703939353603886601851360151801687300102436355097203045817149315144945242334176260408298418907758483233539865215322916926917800968809126420972442982821643071605224520742479051602132823789789594823331346545200596807304324141378092666171512427719056661826873606928767574875733683523394929295321854353830154081019819069128672280459064641992440130074883183954147948799981644030988551306756766808554791809026318215133176393328467714662075679851798098991092365554278165171275752374889634749190571383965717305106910923180929062373919031082850935874878139491432284114173286689262120673048786618612198137981825242879985243599482111965772358437549672605818865421331880500235274503487674262528517995315174552207183581648355394301395466108719591672848216249359717976515426521935943636856709195439618408845516402943118149077792453465242938684935585095395674757911305155852207707254501601173484913526432742309957084368040251966228446139286045973290594512745207130982757700995985034431388237368170008974922989581487294399928009961890165923265585466045030389227319028301435926664245320506456649118243556109262691055258653461797298665969921905561111606287601414640723585951624463350454338953444207830983454139317686953868054999681544806496915074268320651741049829208414897434861072438815817651650866370545068211261985297927660349923658116723774308222738916059224879752028075598607941575150735153367386308161463462305376272116790212273869112246452187149207029006301883364625113532784301932166614258561176809493455279500972106686040921615166842062175058024772990091622022407810955521968289761127984770082126170459685702753179681714426531002298208643398670892877256984772278241560629819334459886470104759732415877541246107872930633453382448329438724778724923668698431868232922526547095231532517917210341478998084151042202331256971058337709694369154645640015622981826371959863672424941613110548639453484008373760608149954866473007006971452641823143212479012095136311348574200594203163822987913479885560460831291866163187050420139662189307665187813504973374640889043654347894549107415360149965682525780028070985527342559359813130675776836975331520913319057176044786913629664825542903758055636783672202492654656155533755697971318694792517222901318117909187766870240685131861786946566377294500852047660162172814376589460392715895984526480994929835790644544102466779469972058481512065285236714862407049695163490001026663924990853893787579146699237661008664317692039189605810892835360795230363489320063374699767038708584696870062593837255821144038212895824269108830757781559741092380582198143293589090135650854076926440021189765463538676843686642114171442176545370256373439166427055385928563323904447513869236313966194091159855598710087081652337629630717801982806149431497908502967639288350591105592471130603922871891193987564956824909934838021221648318491565374608408236788992462851405318613369487423675569716131344456654816515554824133879847423818964291952402728230248532507374167649325438782493464416534073529158112158037122521512710892376768820164205603805935367110807716188185231825719910683864989542302745123698342856989522012366903930888407947403713335795956174742072443907120491271807134469657191899754055679688581113618710198709235704376933862466013279944908444835164339603963990176779540778822089624143854474006502828266750510358573822436356856305071975379677829763227823559937486788723818811448716844410560257088259518171053284174701505412274829932037916905364689141446129400278121449112106237238311635627340922329785072054700758186868875089328806074777197642181013741082539138078216899739988864130869856599618370689756512631526458742984621095531997379273498990030357930369680006268315869561897123068191946481726707173317675190815034986329238007202577396637122627032558586222617401262152521846522974978840304238333800389111582388894920852446535997916514292899148543999885410501538791918634332514344359574814016839584891223903681488359452317218201772660347711351016087863716616436732770910720596002591765599149603653756697673512662410129734390406518232708201334980017982162271669098491174352749271356306230402159455943979624121475546626521161877152222794872082713354346911476463757960394947770222372694461336004112111537602697421637168498822789445496674157119095109871718092280546464024504687306721415288597609860609781203807103858315312415550405975660197128265779497743549712456445150267299807371978501773688474840459643748523248994628928125921894184986116207498798997684456474213983278963630665372419732491375844731182562840160516889685071003327927499861220600981726166076504211123490557799488881796058591095809937446283332871362458971152730238195477189754874334375236311736069552428295842518631074634433897175487709629314775973694816461741778728004526374447852044990596219499761441479692249930889814607320624949424161606988906065356570927710987712357558075562213376280658405434631320349132400528847229334635364917399109171488369932547535331853998146042099210230125109872175136627862302435933417053629849325895679822195513780037172625539220362682999996573461162038191601392371943896053342217834933634060962356208350853312963714375022137135789716264351670028380193572277454734425501816761329543084160953876759762420415647700809363511156579256735629490519965639380433501767580931171549423409077963630116077154807869249098966288298817442815714250233536777011271934139789673855156264069202566770676689516349739352440806436229902540364594811464840117619448050346218883887271085458638335294578131511531061428445974624614952184581310060448897165247982448950643772802601602554024891355738099709043575102489308298470696052531823757711478109112053022959977385952677979415731120092771355480338202189294039423674423176572529926021714616838628223626861450458347787459781894293933376997642311352983197055299399441716452566171949200063081123638348999042519488780517342119404631989608535740322074454733887532840625670653006144906853885038555168757012146057345835763717959928172180708123239549426170096879765610103646757198125358912251892984818656599264637797342527880707312574217918629797838575336108166998540815351001968995707905521767923735240549659900685999213207525563971963973498702493954213402055784210325890479305103421995476282899154704338105573966503251734588506056504605608084445507274915321268455375535414837157112625050544122173805375878830010233594679947112562478788808194364211731515978148321798400015504673087298243099165093393662858463348743906632259565281418521424052485765945664079886207621908003670001337404768269163045806262159987502240575312717355228281129739376815444673293354842375972139337471535041572943409388007733125075097377155356037480761509379917139877208795688024869777923495559062868586123586405104635325825891631717476483025664988577880499814701961261410534374116057653560850945464620343451800735894240666111733710502770080412964956211899372036071590846158877320839115460499889609431159694651336649605850917764733043920971407942905889450047474928226641140865174165621772598303980729630660785189601795965178990094466779936871777013258109117693798734633373064719700747512142091826634097079142136559626834093531923591658705166232866857307903882541120940900276468000272366656306440038120070806282737372400829255082175955563060259559804363547493625862989480773780058473905571551022146891405140604701270249372983159925017623737609128763948044143699276862011429119870641536241935659455944835394939927539334383683871296848995084469484429474570864545232293983039154275862422002639145518627182383992636848745241022331550516138668230831362215037226014773234155738716900017895842547426709279198416945358912053294612511871909011936188198125524586649033065262820254299594533139823442166302422284142666692576556159281589686869903067640569670364032631529694369057568976812440251412469178432051309331050480975450263770930709479063999606072734545316554641125267523853264280224895951442385937959270784996798262857841070135875921622011201308689195543437030967582097648473407272414772558062513128214018681285571692928773197679360136991252460365023593679512678926400458604054747751124786719687163058858057855817942985666726238703176901192593760716308062337640868810384393519646457032880249362068468681423985222461646697192444798601684670703976814530016286070829974268772520341854168032299804262754300971038500482657880954294640900756388745920828752859753535472227112282816777958005402595917802214026074169570295857286076136027514509984844050269315857614506596579361373578926000176608429829904486536348145605573670165573195565679847462451786199705628260770378434147007101263586036647872004272240367323727094599382690959000282938548517467156824325305923240565590813290157007519993594432261949590794249687291682195392298826421692847224336728081376693847444877362453031222828564202121307225806654645344216807511261021327479759160070538047750464469858878330905044858341206990922463786537507421148831728373619158739689444492087029505295305905443996007678823203695273649932223601047628055540078023865583556535464161402940561486096681874625843965508341552550183175266034958621759252787672791828165146534946840660503970402189872713280516390843590215000893568460054559412422508404939971429599173567242840037758221193542796831730644747225635768530030385295358212847021244154472277623903145928370312298305528458497152098477665656797782319872008109199912899049126761371055466740266478908093537778343311260473969673024637382534969647739678957273474030597193827545951535441148405842674904641531949213924353065985320285733368189392624642257625850991116700899310214295044259502741636188118620399624314473936231409798557632575816529422176429771683133210608787493812719063643893625026072633354064192411112458498777717210009007274676759985811786451196457838997928480450375237835870603327962780168118673827200389854046640291429579079762730818087682376453868850834699314934805897890439066975215810278440261665900910585671087687476956133564238302524392654493572028510161506305933010442440622212144346054920633450459320084673983504314729385970387855323133287403059495203229254285993008234232528416001238523873895850121285957290379256355862513574705429554536215025044431425279554575951966851782815658522681726912184320043379958914955213676930516939398395699759278592608793147750558339839908702683323814695793455542417921608805202337356161366754425784213318894445320678068549418349412146728471863668751632957713304434354827663673992066916521069617600000809842481040008921207210775853508389745544725142735343252879670176280920796911063600257958600611637881613789416184411284248239738917778959339322364798723053892273705125954015373795025658023973677759822921978156021537664415446041840824546977334787734979930277918165756713585449483580268921588802252384817486933671598731638052385434086340637518376449713425945236944754618468050929090095338064335345522359672694460636552741362600467777420743158579051146198139217128590210505845256232441647324019188361090591095884218656641371574613550772139755340543981930205003195411354880725491533693098381923697810864061816434652988111275473960460278514175853176171822445334081699149400650671336978517822928542557210864758662802803103317070242418522954706617950880749016581886285812090424416422940143838214001625983427111329420755095096449472611127060109278139358515599932795609376605622868452938123311593772273585564525685509671389650844581005556787828097070385219262485607169161968190563176730001150528231874292504409375483016799092709615828629774769842957330184013965638527425982223717028605556014511678726129447772100601639907087807742534753239551267079755398547789832386306042433580948209786760138323752803654254671925980672357625690032892964230877307670066065981409589584578851057970926980544289248723682468224833213641375695560579564643915772237605713790611028325165156767073855368060056268730448491540557156827968871578639118245576212946942905436837625525325468956457617958445167904891432866295253663519503067012427740843665115734728202632665424839006701018699882626748307429911228847638752628851006302057212269774389298417651480681063883154096829158154875162105302295174051743928879835805094236103748408097002451411493046859099544520164777368562672752994723900750357662633359255965531438015269179725971553142062136838436526095273669451495648552926027000032304019835272941575065706660411242025443034167587551611425730790554962999413582917848416474577834865625670775136804848717258364612946478079329186793055948238097312849322413903774159135295416705200893738984646804866749127216108923224640325130787247962632539015485757555124032674750248440258645887256837546456040525162036307020447692712785493229651398808202764747385993154734792426065087483049754826108856169266264565597540216127279830564441848672297819083366222479628663581052067094920014081721433620182990245379222031845447594786784649255372119950100974210684652002237338876515546915889809148158337562092398656802391982143207128454706394393188443403445288421188292788451251378717787335863545806134245853968332950404857472321531760797363743233749851675647717643524493870697600949510423128389868346280884333807510720544343142812079918443366598736551887834461988634602429833633204221508381332089444063706762350243566874247485334455083627489481689082867910671818138954512865052550901073693378863538055931834836158514532508227845936301808614804173248639036497886094140108378107440460396926381117811368752548831449679554845370012839441403619896262824273809797257582160371935830165952798881635304794299257551644639353320295764164923589845614886205741105714091159014705022029719190127225189244577540739720501254284897938613795424251007743916795917834356887173513181959361253118190766498693959972450818638989775708240174649145873085001243896018101765942104256659346173618352140085276582843242846606650224685418943022120913595964804050463373923708783356159443207167311948785778882660960215881264232096456982635476276550833588150681455595805582852621570865225631098305142469067679157520768228646301493670133634594582019028367915624143478072358059204720929821338225521562197016705867287457892694651241686847498250184480559771626907290203437925389441586650331330228776319891100171956921963998632023047665761774474836790104270954558040357655944604852584168329539426523834662157376635318679715661997148671835546014822617693963855053172777858672605672196441560730856718604581277691129639475140112422951677261752087804484502256690791781390803470158178414885311615765151356900043439760037167045948352403577972316276234360783076479276141802605523974643025848968427905994599377076443775906803754460039435279111144012137134603551802362043585299109281601047823176251998985583832222147109108052266972575617675565427630939167865613654175658775712140776887781385465033067907540459776028273894640423737080893747087429266425612370689571050881198021581213960771905822854914000745512703701409473434755232521689748258420618287842422280756978177720514282349019177819827919676103781252511693621216677059715292863324440418371150388132752907561553944853357137301916990303908253965154135732894598706352830468641620157723756030974806393652838982474895244779530807591253487512601421591196011688883932166358425618469945727034358086386329495321418292601219726489691353743120598231332434576381318140097424454812876078782668314993398013427263555668837475016396732446155774942008212136270622429848747928626863261032725900393337244782758923198836233148469992996057090947864914955121680538065531070225930209570936299385752510389114711238766701977562361984871898969154771022451623649233519052658799564072754915702392769399275065154585933455785320661037935951805429067263951170163117596193132479792863121802769644146158439467343930014873169799776681652242894963853609731334132470795051564502621926369997762491971595735503816166625029724296417799284496627988182097901437338782058920750501972030971358343895181879365337915854011867841394475801761167976270023066646095172549426622401277572389295897950691146291879961415191099358741758399764186283709280943241174476398154351798528467297999844518008628475249535672372619755229813976296692882299339126206626452182923011915384491106845203483346721034528355152434528050619017621188751366627746243242225302343740630026352185476445953245180954970802959329480347389136298519229234487552675127010596535951489015003735431092186940586254707087599042723894447986399946530412123311501651721745697009369665561820243661995379381879440892135236565226819076577505590945225438074956571419336306757958316456493417151087688188762103151433148494043831007034156496924437584039185568454273366781285938197240776578789509448488201998292766130276308015092935492109298177127230193726871968447622846262025221933279096364718719873939648777679142264114442444869078256615239894588381332105433216442407477764403177052312240315485553503309335668487889195863339859072749969211746677511674113391135203288667227708121395303923875705241717137174804988316639557029622230703811592603996406215307421317730617079833080213738824441699048532429384341030197522258562721111243699708186784302684872658359300515111714377702257466588437038851486556525115000900735776946187437031291788249260345968209287075163191338555012101347936392256359771669545568212684399150998111830083815115646638495346680393695100246602810270006773756655735476198179466034454160991326472909342369759585771459588736631400338485925571248081739734136646916958627005669194272886762410954909166502794882223017772154817637833978439600531060378440647155235651135611854394763941431826605188337849891644473413071856047770190008176976718032299676621892839281301859867723799953304253492274269240715346716818390407281177733490409341963894107951251953712003969743175451678994657491857547383677912724151061029451973107732133397353864589535037965162490167615781918080629227565671782396853763154989842361177940236503207023848186064838078628422981321425326131811647473841892419446737248512972671384262558474268649734017814981380287026704872855737999724537689631449896688079381966419959172675839044695671180852258016634061401207545393941820630972006885603097641692434173762426592121089015017576408026182459099594709041598347238893996177003839775301217618943558504185083815869934857319181287027707096736550933945370905843815682607118020012412657939973287711274474608162652158560329813110029222690773962689012450589911037902598000499340018180523703146435889026044246416592637883836429555538103064938192669226281500259903322320132896729045102210084190241505984035893036591181969112563124461760813420153379183212715345130659588011468409429037839121007906547136635289361437083241976501959949164560422799538026575340182194462030469429314309118756041772722414355706581879655941355591972778817055779470996397562930481844429273218032563863863005165019549991102312618797425808300075195505275031098663433805661300085469234793304033508568910412014148367621914728898856942307884337766330209912884016064204964746514676356879809640511672766695197045227730521619440588566061739827765851505365260926581368817684195109860766808951798435983209832298475670670650013710775128047637140184119546783560354639279111669667900128078169546441093902921182935048885153477379754009360520303224188593911574308100115136996972998902222686396750155488353679171812817768171598268414532823528062481442788952552700699975140898090799283172328419510001673267577819857454565566398082019344745932414636582938699209191903168535349372524881038175584220661053152948925608158630747914000872341984256721599886509737174790920189141567736865161627524024465327790306554344825379923131907880420055285223759349811692381348916446100535915158103497273228609786249146256688055049824219418355341326245008363455175602648258597902859310312337899363048557210677978685573183446417171688067237165761879264188897345489516966891522426793975479884820694329391767422560114234252555753398706680747736292753909200057210987968311965986428816842047935107454344509741421061904172621423772174967136370940346292937092665303469406591787375064454630484072617461503382638712661047798582692555998682481002673462773114948519907582404754113706383694651643889481890775352669328278207907657581789498849869497682752866228995098573141752037870975590462921460766716026949969836624765109671702790193827282842735859430498715420321446591628318805411395747166172175445673876531856853689266371237936546572062380145899199124971656020934785499699269214698551935468113046121543480239748590077352145892757506677519399055544824309736188668511232809448338199356899589935870041965832196851965086861205313302346547564837007639089600853000891291566470038100718261455327772987405095555728097497054819817490943570230783927400758326920243244097305046638773324423906233518375482152416931869230084359843939552644183462557653608345885336288371863022343133928065372609691283488574843240890179984948101351629524854094262436768188768069584863306387838790740441424849138600089375616425669702876927497314053667773703865764363780318935752274741009255882572052024858417534027979792601898543973459766888600867098806413350191422214445324131488159898008621362292497270493327984460498079350422753500609458347010194493922875610629126004748231747389587218214732524220893420730053771036470716865793140663379703450265143334474457164939307580835377997854590618696648148977785861580545499996117787564616835891547105612808629026420968884508208307537447000831686151076979142208188385154923855075418298357484825772537098253456583086295675224702442885166830485583919825430304577630660262579123461521691443343723672049562793985038505589220417259643417656404291537657965668227227461404513509161874280392355594510771351067452006142777578056385976421189525437839401052345581595145236158872658300415128688342978866842481381321416847378840874206700669188869697246207856785408936160265678759745975955276286740140499275239810702391049436383076534890419155179431600290948051440052165582562563042900640090688489362823830385327705246411049437190803051293313644012033518510648384663678074945384003657276634500594172177950424466695151304336783699790893649494087739877421771321192649448013264491571338544253695005572887460271312688007287706737791269871267794701398416146182480000965491164896133485032440572710384704600510820305032645274945804835784147914406000103769818182192399995256813794712901526771476430374947469533227166446110981269865275420873173884968389148401369912125648900649019962089385324525630514165824077585756272227930043508931508873259191449553993542859042391683088633849597135053636545384089253368532044723853334998712689767330198321845833129009559561214272118894618162053998848160030655947127946863078637390001784136655718985497286252493749915797457659819219235666871385593241102545663392391524292191932798487768438508043187679327402394251526870831055683092818048254166955681465242521215502881484654705774134373260839735458584301354790532010198744095128308289513436636590787503393912135928163250344177800241803934918227850934080426156204526604971002423512893112822314694063776845043522290265835417372051365520314954836295206643053903847392750838285820661026265206877906452296684220553277350783889935495542219858998314894599266824751816972737904802493270501319036030762679557064814104548807171271536738375772219328094328420657421934508965847551011333602724988496250671402503046515332375164142542909148615062334496962482421530782555940051336641820174509108042583317493703874524153489512161582054243348522341299777296947974292395478152090663946019626052056970113992485059392269379061255440756554949939328672129487439861144002948836222575584566147771918043665494007627603038409567265932093019084739131071389372349803418118771644476327165569419060881345082516211571276343678934022805294467591320345588450452084521790106898080858271725061638381067228367883479741226357869459334837476916513054687066206843167479565354977738938233428769081877851113558996943913084687920665620820069273941962551474541588401863016207172995042504304519392138601658097815699349887728639711234482509767456062122510513160276452101328008971637797857783053345732660212844629981608210791572790172310431772320376388268556828767480559011852700964381478490766254823009487279738275780053559979916710267990309790388055934192412453298687015577879024887293215430131087500795512855914427567182095844874408793844284666149234098923971342290975270355185329604961545459749543008076836055054858450670556614997911960013336378031216356256800586563057982173609607357253213025359551010746784829673170134232007255875401723507660813776220891878560830483372688425825521289042075826761793918144690304860557176915300965209841346756260209831424559396298015161226538434287404673229876548999985770511236916240662904918234536914935465923185064677059821370183428901274068003949418317928404924373234051178598130988811958416670066657914533515404916245268504317048102469658123819821002176213996281538784100042625258217140617578337376265160946985977895330387838933161033243047027493835523106147424681917873745606874928475164851131432656487835394664890853134773253750820177352268621458548634865074855693592412438670694563572680485699885542647649270982067021335806511632303960347289686415604888666256835941050970770504420826530588907307104691367352962412665655840842580851747455662589018019834510636455653850763105185917288276033631938503028292990389993783433135514258385646759906239375520601306924756453418834507704095770055200611176747863867874315658109532045206932585641605516275949365137467749737442335158735905117407273030474887536764847342209379789035806632447151051177324598991068814698644225856826305015125692413259598722142622565252936827909375298494325520199562080361283106458301432826011759831471127990366335439529444742767817462109883842997091941189162314546405618630267338486697086283496043199655484846578715226963408072044895571851061279872423205276190217317200043978168158534851590771936396819726054465682418460601650928117791902814271661963216205449159593399429170231157181601787251015433932460936967097351744945616673622147988973155994043733766588154080043224501886429860091167466063110596295499556881498844736356226913377467966711013232755935094799301229434987224278305315915963981233632159548252324160062930848234012772205784373548907131438905080080238967900970605500501143626914515737027666934247316182779149909733617568980367120086789027408210007335236237240470370845668465081711196823146106853567249876841921271697878232620700222699931234475908453444392676015536336805376542860014714298345700302917957120240147434654687884215539673994379003124860540658502781292576893512978414477021254788900732080811315206053740904631017987369220192685488321635352579154494166903836209003946297930553722518753561393964272028367499535839527728479063496077319248039639377810659834549038678481753120996627861589351386531407788491334383106835354174928657808750785468167976389885105382710764292683812316160839986860071056445058059916158259756305576834680199454340725961405252457577889598383830966322372877890448193338555208793084277244471396233830568424210361331895460577930509831234179772005110342169345199395309960619116577093172820014355734147460306122712129476444337938024856042152028554893392571173850460637102969007999301276308538589938122698228822673689644946237360606799666571249916259084916423449757313190417311485322471452136174669958485140015627337851413053805617063331463080305800570104265441254239785702847041588205804186799125013357535693300551731266349039416935040055340080964214482265879132568199372813683750289281065935121984544006022019500439596212971378129448722667780502862906247400963762655638609921350339673655837655503822371821395144883584212801342999580191942421118616591761569126323517866961595574307140959736470224307752694963593031895257234530988065484660169689465962777274970726919540067910024807341867306787051016575116839846036901223965343093382283148711920997326058489445385521194624019228952404591509618881358208377339043644728149217828952116963748881527809253480436265610003192126544821901034602684477602259078356243240896029548587630869564283919574715398377343922900334098326533956294023323461036414378380588553017696712346782309122138956441661586779203157070693863132213933774790347856008021426145643136330913202141464959924540156943619043918473708021467759026059039275934463356654296343255594169218276047511869899278544680630084279640759388332774927195243746828733299192396624706795626608390325166834366247811850276359766553596826407222322300732990205986551946912414950490677103021735719631789303791564740633038162528819272568361347951586953939359097713677183844622825334922751791448793399364491591946322099583985117288860552576069547962716073564665334815954264595384693679048123675035315811867020151767058458565784855672972165961106510941579417972232489631320387354579096100052952309634522300558854164339669169501881400671694113311235530381737661551819539502523247649118454061725884293663971633808641664173696087917707249066778972160954024559225267184775222377583949556866251360359514612872278897179013724220340676538158976962953272620745348022746446608960074736940642571238642736337175701593215575084972425809003245579351958805658209810761765232117497883502739759386478274125989300526383344424739274329459236031264813261752462784412518670411313012913197117934753583007799618061625409255366458742477224190565713657990819719422685565381142066923821435569815120642762732912908636421833514379129707292364120891904343121775815534954676055233819337961593596120598409979249553507342393801621254335442421364750285551775783839421177144487212002682137997611425085111752979009693601323950466761793409594486492510092576674418300604794466120227117311240213347247654505156237675166951258359988380128516628618653436328969014997065929443065382406056759387329462298771637809769144303629516355263606475842879053774378159621153799298136170146995084363092480468840981768210205191906026562098640582153089048121057348611287058448507676134184093450080331261150402434766157725142167776681118180893250047773290469360742701439672630656707396547664604573876632562032364065024193392332791891263437413725393752024010905589953239954188041277957121337146275316308614359022295260414898029732685057127951847336331929131258873386999769954272886028831347422477089555919893261057673690239764273635313429595398501327179331751448314987006019009104837298460800421456820757607102144465409273019631036430024255264727413351221407598624794441473149879320255766327009489237575397035457026645218998617415962424762210171326592008969074443910475278373305387906407527185985355228768282530104513207618126890282099670590329762410590536465460889752106125250730199501434190462735479506651051294005464068211076248853192805686152862536012544853451259735125158334024225396377897805647695883693731578346757794256586389467497101671764845002172517158537147311836697086767117807042883498290281954394848862015984485315976972817993203062314442120303793099223563460757664207824853971813300160454529262004637877739677480401551815491157999298911518841131752003589552491345073682272147121093530335722619152482430489927423731511155380877548972193774137031895912769689398673912710710148727330476505631703439475040489631079318977507052035446555163830047024930489417060343478958558534157926256557842304631404004084936708797539051673857845525783215714359678216846042768783445981685772628486652161953883945150356273556673505294512019877174362067094403821041667064834264871905542518249151968104612774852946356964654187934202616976912819581406623443487195201377097622635400795289752459078688874789590773780308284224049343413126153595121251989040783682316622749135723341592756523572267341525233851958196430422905946998795253798630704166122990867009549101928513937878783900132569132257382903713607766363610760508430623730200020826986936611429261969611456497442276136352932705501344691962835074449156445959805020456732983741555880383016589712271029378844959193427275605577673950366253100200694711207365915043234599416708751916737415925958953475923283387563339501843117924982978063810361837861014185841395538640095289539801939538619225550786702314278624453233006139264893207083882773128013555736622156672621994749974733281776158246065322328559287834786312265415901827148485785685360471266961646294384589969495397895066373125131923675604776718873029154785057482382518412499033303866702219262402272732387679310055456018859282139028376174611207045427088566227808700908410460278846394248617495619989784923440156475317202220080694290034267479239488236711604847277613612686738334473171894642093306864785517067038647209407019704261273209225659555368036724337098573442373818747621028346211757713076682407309472350063957623829499401004593183283697937607840936883045852147898374283885402855865512389756397041287850658932696860430140424935544201365721867353388606483016205767360900756390619320082730614945336173717282844987569906368106951479342801941332984007250052169965404617233228823058079287256822670727533967008369979149926916634669971645160203184833601417231649207285747217246188419235276167080286351624979939948718446839312286528597400189684122843523424157599714891869777609327470209929508035247779696451676716127095821649652006478778176224183960723427101404636548798512560898280854678241691531320651753618403289310057740669784749025142873881601310162646063463465653651857787954252140227264812376397742548875603652249292652101847118472847861644206841912879569571940961262710379466006635952758619956846574835384729609654712326665830612767053188775151072900948547974001732571065756095308863034255656883720621119132211320895189652208748766963757501330031431883777032999527295981334731336506299743351967919260678681486051828765675564818139389284644228757600870189082323950450304206673722442586925768529924655890246477699881760215615155329707087171680706675109119953749175274170061633967754427753479912157396364565781194825619926120003922027798446726707689287599382080512730416227635130397804858341948813103202067912316248686011940928061881388422540270124996296507671161750231602835612734504028708844875330186570473433396741515063213830987644100450039969679760690887789149869217289678450513022662495002737820098844282849291893383034669658097030299977172492252697247823589710762993128329779244692742850962936905729271346420609243643667418900612398934647279879818198122797298021744834845130716892100815749260698226929472312965810574986080309646257652993969501830450604191306305527923131038248045414833083038183668321797853945115890300564384892161524115525768642918870629127982157213944843857693728366270714232534331451130437549730115681204373661293278699090267093890063380673297187801765410820789413725630416638088579470737742900729631063912821922035756094097656822679868863790477805007092287139958905050852228559594676106847298506601429220737291751539727663165946596425640126626529268917089530340670789137460527893810695392571048225431136035034931635386509592565648084445651318604713053966520230848426960615279515932009801702287923108746867179126652414517428772291893384240071366027483326694298608832080048859055778758666065641006806067514442674070331793946336174700794238996683059678581942356622296571571696366589542754633584689756327342147327663233261452990832375820383447423566392340657623967598847146518597030191904464242025239568757382194386825351677808724895504717958020495537549258324113777377695557149484801797527308421720446617814751710485944300039022305434380606342740616082231597227220686221526339198970789152199631633337682818601116827696743080168440206188894044156326219877913700653836155776993523435304902829170741471813885271100008500640830165194430692192689685292149721816993889797603509883396349248815528175707288548574155896325293307483187790826070037101959190847046358089414452648616617962985313228268276965835093009015024059585992681179370760892174877317097965031545907595229223654041994346419213108987029384572540560767738543294292750707499681734832434071527371114692184965143107769773692442811805832715605078163410326602237929120053745264648061522760671319683292662424529810841638270621349408054124623617589338694528008696307620465687690837396924061004145026698315117839731253219062885576964549222684113823758951502615687766454150884816453666669663102746962953705603629267409261178489740751333393266636638376215543019985945021584852324465058857347733039236927318057350494927480352115426406954600354381970020829782201473218693646484380424605315858873659518736287238597965450177996726464041903855428213683034108415972830980309720711025794275813556867066878279622137075785836835140872926246078922879553350706670490251161683781488726388610073297063824911254816220390956436847765932403459660844022056492473591138097192745764066591943350445247281470870864847905662019742663945299655158948861401613981908782028249410033563259809991215736840055836085819469588097928526129245609827958266783195050454908111952315494884349522013965545731047499480794363617652999679765825461528846475426779216315966701007032741914319132451169310600717227738854035042294042121810256712347489996972210629592077049967908388155592764192287185429587353989616005396492003005290740349278281025883161424582865210358060552227354144036045467685249476953410227514252732782675353632136075578289199616371873924643998018298238364527192677304538097942829968471924068595615617807528044457470262315557926557129588953679270019796732473664939102816174850783285994509383705367655776143103629733784654624328969725683162892581735607264392279414072636660991186077624516557788766512274339674446863656227803447075716941286256519313024420661085514352942522690884022874100279657190523484593897732118425149328167685397234768272736096166375487618997999153559094805382796137852717098222457405162396957383792288834326374724149281149873092033705902637929960424068356496543528504302549250671106714639154662397234658742485785159156435408758741978983037705157687653393997005928055751850349261218246352428609134063723666182087277137442118122876770090538959475707859559556104327311816141263946351827963016543043919706619590427919251673302515889934474445817010169304363078407410327002830287199942901529038437675317070066058419443340340721074728053824062892284945716646212476423512148962982025757834130880629094254484916375633426717744657404259884766970857125781027093251637655205528964754458275713020319237991715946591238915066939123719380051384658771496533136441058822521803602748933342671888860051108907965792282814408090028626824375926171291411846060066762267942433333523094434196077620530940847909187005767595608924113768379905822665634506198637907813587805501836974685203819689464581289274540116140847577035016016755972594916635406617683310451210777881179328185808726596032343842444602438025559510928546910201273920687180061971121052581705636125620635361372438646369413530638668775814531434569430181245766841962105448451036006090764992794034485611190243498931874208764349389535232988391913387470802140118760297678977461558115287107689824030449159455202246265680996532811816870427856740909975069381219798050132720545279220525625197091509290225485689522383405905763244001524179845667959737363092874204900621008519359684014568820194229503764141684874046363326242138710671999900178831592839710166827756082712433461241445254726656025642037699101763645857119144172610086063271329090443667415835448452147883569126371385577082598438861642134665123795726745270086367486396205026580047856539694711418714140829931584673793298466892448349798915338350086928981708303909225557501064594563919454465497405773504168077152283987065479411767844244883859735963330361040869111899662388211362951071272344810707867402956647196881948801925693255449333967445360363527143119668632604004348865031861642108478320297306738028964431468643966929448486672742968912549980228673446150304648184673165874035529557408108968707743885472195748412991094849008125700634140178006661971912605302765984455318545935490215996332359833025391785271209410885165626165838272570075251277299646947433323010637557724965603123257913876581130125560362233254468738119099482095159616055535196460421594719752560807499067851992340209837349001118090164846494437981263399134429055924879173409414758765014555658574906527039323122804812323164296185439372919039272750517289165011282983776861572926044770678211693917315639504738730307523947053426959782061683333408596722817682208523435199522622571936560436234861006109856140562685860632020100484393012718364361870707250035953380506027315206700554497102339287927227779307164674530753722689655749294889259481640075999071743660370984711346275136208854440868187533324210031128743298882269689042149021783902734957502411205185222230971284865449436404683710148849660592794034035996986386892149940272678861361260991631668161418692684454936771636341652738003206740150290732441826720175508108300316180015178221337364082231687907947412626445208928827834511574961172424907507752093076766781535939258210488598317611198668580585466621472758011774673923196767897808034946578523890540912798133333712641406596269271424618652616016089307228612642516029601075391079012223458967142918243594806993794814922825640686306864484015197961945673109110695167310031740615203355328128528574112999082474066760381142578317830881972736488280016737258142603765273816868821188636771281427026732357119814983131804713077035286981566236339775415408811272539689938302047463445722361791273901538458516870565457577307877679532027463764516403353322497327780969467556270738082098326927689174833265411130284867496551224076194812248298988885196871602268704154864062806448868982488824522583596099756615823924740257414365035555969801534988141362432652093997960629157704441375069105776569953299029963249463720092459599663193022264663437425848047169011465098659997294735522693170876656835089930239529467004081929968607786308725362791319377679983238734071849725505239655684822415519623745498746169024149180864772130206820469138780742962311011245747814960483309030985661638439153324715914720738327508496972814083683501056755554006641249288366882497736740796413307467713651759269778046209920302273220670360200010908209165432821236468487589954922395760875253089761852823989430839374734147695811388534858344047406183287410311371055550614076561857389282389973362884652122916389944457453358591496500589634925979095776033393356116380998298859296134075413876382903871912507975980332768363350622876221200765056700053397196824110824293097252004927117491442347361094502227981633994104089937065793995855183963806980007636978029339758684688919226777659950276390254982017393273867615131953568613463524665561546401409780814700602035446597486443548627590592375884518339106512453555545987536071660173982474063719560490985978099226861747357756987275974467940147354572706208588108077875451047020079520015946831410681598236670596511729796785406020070911893511742762885026008462748801429691764214788422569598293447090664356328842303306925482672668370785359729101448635425326017759540156142362525274979090154049046519925240170448433764717454891673054520492650206070172384071998981480417781526588398396281435048018259705494787863901553979162579809820801807396856158280592599405452878480937690599108729520392870591779730469328166457926063092014412864806440213115105001219399555430439542024792359711588140401952920889422131823861556457085596160938587829071647481258009841006465903119197383285644618496311094526127512376069167340486839184730273014173711712543501564973754546933345122056897479731011497639010310949598446019917959102630100630565112795196947201993936310611556379097082664604998245664770738944832417207089435893704978132307500837359585850102496752890263075887369853948258336351452605315968840825465768339717210526618513103652266899604071484513571962019598071097992168344644109812517516765289079977993106714650956092502600536175563526399167647462743356386825222690272063742631407927365277033698494083722394411030974895863641205015743313597970362178512136533144083100985834139891569820272733811917714946080289394768903950022412746866142270555451533300624478267323818539752215989244021815327937692956316970551688682481629104969894139749402884964810799269964134107707030615691778057318220268696502107138518747666435056025196980468510476724597119558270273137044737746672376834757190636445527604202970744961798689192080923663081586193941206749275572258601656206010611792091990601111021927630235033181584054633473947207313050594485334785632239570493951659129898760376956339748805898207024999431347371395668117203864083779449601344388786409105847089835013370939332588950016818230835339880489426576219166903538008933630124975460915763085480911417869716346091968014474597162733142511155647350622187875951192767304258450942319423331965446658471499675687441095689631797674870580375577889175535340073220791938853269654221627714349189711272310061102630503977780789260893724090790715877299354386188955486352255219711455630157631513735769774352140902692669737863521251517789695766419872694578786172173409755829756729634789696649162839171496842306400408884609872015640885906140680897622706365844578807690880249663561288706695805132965078965329993724740615796905344421826643535695224904509201588572153704860990967789829597598718809623746020256603808817342895387549121425631605405966774506045529233315110467376521940276812119161890136906742299618349004402619556096444449275519885431315929705077923018240804891525200572369616568829766352577012743752125046939189445276540103321660438785526227706944865107771987088796645230360298324131435899635100782257649861172912067790468450325574905370795862928522003001230985725553325706430768038468540649080241032394221635816149374702835068436654367606839548112250252687539689744902445404617531348252187994926350491570440515077311412158883137197977328616220427518782588671235609039560186349087577161606051434819614412378033786328520746624294106486861369072243886850833387716752861850641871882283700047131001784835891450951948769072222405641808375690125854683644486157398120405976033872649510904724534577010224338298287562890288990292424457447511464124960193724934660807152482739117003747690401226427992606286553304909062920322931001982739990912425538670653744008885104946128100710090808481166719907861121546395599931799232049049921144785150774897440524280313984902477361872634116204237330447742206711660105504828235604253182931025738098824774330765159366469476670884595789491243729689065902736508578783249283690339423137176692865056332705475413436281998433573437343809155177827510295943030497381485845737691038975450286694120358849624208571981273224716743782606919507333607272045291063621129692468836138446574879659771027233894309725340981315176231169135831980062440519521007611865574060204771970663603116845623997862057024838493745887675493629075860278272305803697068837863191200710297297078778894662351359010745149747125764766866431741426230837893812940331891334473652941696614409062434006939898331371082752375158902171785694119853551937057976062739415861006373949041462008599686180243892419073371285677894151506080019884641886304576642051650363883781053904782017824965753956975910118277133536476555610510035451036751087595902854368611168463240330358436330930249761938721925911183131159472262737090158884997510823363808734813741613998867177846909538760786204918820431071401071615441248249142994748291032957563965161336752593839025190333378863062701033919227051588859611923523666070500869335358336758269734734651442182065725305049428980323888172480074597228818716995691229370905768645923873327278124013970752283929285159836608593662430625264818693125474038572875524366967522301568071633285524393991121622287227965601296412985575930253077544342931331259480099821856796994290328740131549436826723577474189791165339359995771741037848847010136079422496485478799889141818018044011293841485777219265134346659597895202576319802400440857597379882514618604815280243421298110811606191151477094208987992292920643658094561237786608617229186954971002999067653196801400433677709107675361796125578919127918603538822792040508839613353932422490290300081145468658818335301965174137133624575049457896551357393590407787274802499889387038174854492920996779239033855567789639161974055342626851032659635988022138613316646213949308751022103644563632913393061195611841924723602676873055604995124545531520820583432791751092649608412457328869620730718140198092650722129921535369899544268197115137099777118481126172374275497900252632192957240262924653066714115962291156552629551199527359882465988087991491633344536430799250971328449014942127606367727075570789938842943268827802064877603675558058646901793360383785112706534473488729707762219829363795854556668354446856721539412170334573163169550155513842549016355718903487887506782167928997809811329268292563473802256660155906997408276853167496667559479360404760765015714893403047238671036909015436599645652604613773334219292624249821555987622073774319422236284050919263797801956159082004038353266680182718794305633135838742927933638767611645109360962786913693097899601771609872622228247398247152848863993826766760253087533678579172245972612862768995926625829516113746395638422072876087424667633821771930584458254051067666525065766883368930335502499746919470887731152351003095373291894203678897638121894836913279790237409890363814693519143130755435373491973517162988954888685555575717753605128772377976691345895035144410148814643047593289018277601714566285420738119322025847466503716358277803008366495406063359751289893771621880268408822681931790649161244183764253112097424003336670963022927736176158070032833799367440769484725281059319936698724828364824741207267832567288868042443494922513732000804655145111220480127678268512487076134681569007347567621302123440167463940687246289661553077256427699035700884350075834522534419739952058309862861350462038433425187431338600007992916078899733412244600079035145106039131100723280028030361959132837582829970625249270834095308290099882695352415554848588183090348343723764834098626639843198227249235476456831184154660063112750745659934699416237275806157435606894390638168525991057186401396077829703224265675768991126225319792763215770674036951374567159426843454521448560738496244856941268250131019486840160179530600919501935919995940197239647946847055293982882804468118099742081447854981383775969476934744010585994614988194381701377512126823581729047182771207450820693407693262562041605515353989065602084476351958738254701587359318664290883855948050363599078456539506899744056655449013152277973632963308572030092302458910098276833540941187903986724350799925529764949071530376932438700922077705625348143285597067602028875888977420653945883229903019693627491210875198289397618858160893475691150072217199935569000844667192786459572332621155349645894137605473262082272028655511376274291528037690307316126874914211509872893532283861784068900450046123476933434982753427002101410543528914696399297422424997263581277077668624083925149594581287548615868384675452661713102918921915844146174667659944966768008715060643277998701431619189886946047224018353966289069970952405465769582325736251078055099884924597303723558683598499057076014717011687294692781282579347294505029556955862401670063866029890081682832748818322954246326673827244917991429418423771072952066666358414505823485325224093820198678627473983961068311979351030790032662924314687932685085934269119987042055057085398272658248309376825864320837784660536352798556826016356126657019910522777816841666579822725249081454431255628885782679229745579966936440455181786287784486662712479874972828127713106524347460908436494963133761428776025652920999636831012210617578675964119888227017623371883405425445564849391392752351397836546010975486753381585793636478577703977116183834756500677461142519921666468832547040187041523941996726013734247159770126076216853360361556932178036354860828190083295015577154953308422611897144420102387295971624053630101226835316575598561257651401919164594659635356674158583034198909411995915529452076479198465757497206115726614155589759973599316412222839065083699442601729283644677145131657660779435223786205564761890093825667414199889291267832337925145076157665579575207678453713905092343036778399786153428930694384424923079780757207767741579676930881851021541093398571591784947916133398412559269797442063034821733335262110393956009327767926057392763500263798339943620725149223914305978782975791701368107848756201583866733007353747320715719177299267272691329182617981244183961368735347414106121760894996520747959236577759470937396823674135594316667343795758206591776365395075020261520375320553074151505363722090300736296610483593331420391732151445002718459292062196575086455335112714538051582963565657491053670725346230721905961862955469518520770347323116486245561883731331475335841498219333100667584251866115299345086669533516790711712903847388222369628155495388906905796952422743803165762030016402482153182424359508303351079412142874910977942343121482256955477702796717172008900937437684584234647372004752751624448439826695031593236126305997134159829722582337529101911699608118823896488975745909938665786761607415942429199028567178143086564275887624285764176360307090922588346346597566707428624450479161747834718111972129017711092874388753553823216109762511944086903119916186361212701090665876753943095838950237047835031469544543744568986988168329923666156363331777213936322093606481261352825608225385213634085953235317125253337707877412747520890592725265970693878289417477680411573249274504920924817690424501555900749790822579834462463987260620094144453703924162802904807858876103189074778898067670079719907510158967333874993767572920619918214111715642036231251834216280706317515091212686266877125177644625211008799054455990708568096780147493204412170380730251543683965559021406894214428661442980453895461443466986484698025375996396475196580278777302066886711740093225655367644787838573457096333582422667258063332135987961247501089347635439987283523719901361804127600283558983902489856183872764697633059421572269862735254185594363953573599217749385034103923386715511410801606386440184529525197388385702985506157958556897819685132951642784830709202427542195803462060131405077826897634442383251750003485941902763694809990477315590755937267114553176549154314898456412304377853740716308595487875026710895265819559285860952621659653979240175725248217440656320699008924800577549701898376045254155370315608073886890483092361123235304735742183251316619389994190876076005115094539096039421785068721780156558607926654889879670326537394017968962180248114178686103549616679970588745624797112444397093023374528434427778586620979017813590683842197797742474538682694002903621116005397436902653001381513016795535093990331637874117876486124894071370335597287514939683460348936191967510328326226795471299727650672646631768363366488410291683789344264029631857698633000943083742766785608525349108730994160942141086641560148581209302075394419689456781964717060119052850816899478010994075825802818641801670508067947211063664139314687445127600015838186823401257747078100567793058075831360558706119058851327181969936500028255706339426172411262809728002235255314455936358649543234264698523351344490179138638846521720219422753144728147986670252682714947951652376243149872376972954278546498984564841606424079124417677958535344488035087494962153909042300458429593523346034721946403538692308269803184871351673834012098745947706459815630180404119479389703701627219880181572440206816997241842577145622293964758286041806048973756025121230962885589712210522267520577942700195076503149224943324827342506454078534486726606795112383564841687049533699194994818433567752300459550610106383850713463041652461991241964616789305187326596214769339822409399064818672177302643489818586747735126653784937507176209502670238922299793367671850171518396982422546733599723038000836445925103297683585681492852589310267149440582654190640189796222179029112656503552588698508176304102287606803793317045501331470470090607079995263471113687709805091624099776608151731898528004448316918632053515992117159076810748501181398093970802752565455591576627445298591822828101389341724205783941609868015897858403245772027007258766610996175298426331973875806838276429744827107343500201481998558492411058979405130033566450207570072378693025584151353331302534934301072153203530947444785174800146898837919613063267055177701199845192649066166769837517644080226561532959816805681519229381760196251363815777723848335827126871184197021716578755159707837737882305293341867918597003625209308877994059274904964543954395165707602814031364368042527729664300133723202513252004746567767553816381724573405586915984430360982045086419129599217797076014332017405313074431209465110015325506232660292028595837062451791731864614007952358676875965864861179613032664015452836013922412439410532368435371364165624005609554771154475275526331975665063508273230951307160495406397447965124130004761865055047174021083728718525568451967261052119622147162225690864805656736591154482249264797693938199770766655932037940404825128226943438294718253388437909414367637169646679579895206242267548522888118859435069680852222845460929671772941837662046303926608749697277006802564978721091840575582490312149823982562935413170509834357779079721101621397140072049017002771783389320006450135991881713630847548289979955273373594313463745839163538803790034669619768085471828572616066296194030542701518055442549814207975243083075838215411849031098492976026205925069337827278288502216285200647065193276178708995680709523905878783474629912423742144790707633696026474201281166108061098204611069401664634932800862446240639093770324487528021286451954217974701148151228715196780198049989045045243362301193746310588746777594648738862777992341007966223656067332388927435823726649226601118571037446425700332309218393428397693950532945169727231018176782527202096545706840535281093538211583417395285564895470945095678901236097993077896752206525065434132627596790123673053762444308969051002837400325144682670917349252159305784158083833008602091089952789939180067397562507919319333173073790420399251650655084284136751536897541528564788555747264733210577166754490876929767289736357254964905261651222378665587973499507388417522931216406441059109528005088720363444736779907600330029743351291728709739743357313444944500611016391137573402421652491921905709029141445666252225796931781773135934986738388786276153574994524739514772638756650271365123568043882664410705576631570453649808850911371526677374323725466458155803777673104412263409840858593818769573425949041573999566197845100046286807498424044788568502685027013307580609320215313565103691318437203405029787156462481517624765197527736258046516287949222517237751419903678571292974840183596418875346976525570692283808749305476090503216535574503343704509772818953275414730165045522359430345384300482997227617181290925135937149983042729919296079405421211529270457024400813202023645699518127183762527137883650254201490235995390715461304148781228667226870776143099330189394880136051254197113234375881585428170710557047805968465583432630768134823893844909071598403776570487783049514918914586407506061185462380902631399532529041589502482856866043175344526213050848346690931074860953513475928775934688961044021920540843405198266393775792752679266036481322738564837108039440128797242431177900529186860994640920016128830453969064475748454221379901485866102751034021524546673766978023117523209610253674277414639548859917920312409843819241081878149803657190212702878174377665282517154345141626219532195819020383185862602395132498915190585370904908699717868303856121265661326262282647717551450673540292302461638435609936385931270756493370042123012997630175849718346556316425630335870135147118412651378319789344236912028606758925215584784640580790914697388252561420364731090687272963672930495540822203469611177086793983051652561189305146649498273090670011498226216982897105665583560618892250228703268807609485164040927789617413328636540188339370727962421839223682509017476131685914606834949028920894274144052435675133653531683461596027846850761420692235512726206236322383929234001122174830437886661170300339533552612458431832365672664433656525642368829345914058004797942150176196958881056629171501035082257733512145495613406512852735816548390361261402781911576007376100947051260950035678118559520203513152617496077381729763380159240752117859305887803087827101660138369767610691812596048565518199604534767416978309636142881184188194439694789319188276227441867829936438559670562508033994132732303079507648454073074771666501474588918796794871652643340251970439992321418971264562429095415250984784799987619651628790247732254016554984476632035578157326020240819768754433618577790008293707382615029600438057502643187830030609100606581317254545130310592936461250453510914222727260165461574959491838430976368357024147420252813617848811227773018386515931376571467174763699288913070373793502253022024988230079999839042572676277934213565374346594645784954226906794967101041702529113809135458194653380760302017327261149111912012482479525726712669750465694076313553171096945747214068436401366612719973497225966889128436490248508468994707692609848321746188638965806138504138937942318610082755552072652482324022593891149390446257969119357080098496891943456055906931257367212613849295849358620807737206401409311108784081798811697778164406157144072723860267925188875224460952693794655589308228128998097426179230403172268389832033807185516388149657057841863681348364079126424688214481147868538746418954694058911979123349275790916277129263058054316262304277049766322986612954021267465108403737417963788402319294597781464683869836182271455518059874539146748427998467705738047990547721260887842172142583257158849080990561643704498850903628628409551591034361312661686637905243070863681216737201386040347747112801252452900830033386366228111852111260588630966276230427373091060449829042362452283581530336123699653140791563859074292869161342502324320272145150067234199714462632151018102435647169501952736395321252170416485141213296830989055444831159655773189886051325608796324022079921210030017410553418264397567852720852541176483146769035563779756213387039103728371651255619592654789439151897420798558904614201599283935642919884458804617743563961171329576887797214233949744410494222276026758711980249088910785973068835570494240174880179161051904395183886852940000302276766405973820045154273053023815275222234446839551871413256748607254527453847997929780551544251603231284003669150900574415451163888210009908854377522527141675435290307301393460290771013687770158759137437867053978856479974504985394981983690849105749178736175984886922826095702244936029709088932877621885987483997687453936127553092489589337638308716763697600600224570137760351336549292502373441552772372860614697646469482732978581074706287313982285226860704116009484054983620407414528961337588165910145343944919023635905485545357091492963085385896164088084282962462345634780249143897436543803775456869952819817870199631674381699274511107488745311036127687837886901749007507597723520183647736864144589808652639090426752590954301082669656157651699054700730413435950445835240463335753522196435028223120365554450931289274718713309982172612189047709659042834823613647575737334519449484623979858970925352071735992169818898751717852440695372439853551938247700318425572306108343866385731939522281945542472059540085353216701324163108599170057563134650374039423901998994492794917772605117228393386940299877987441466702359072693094043369099177670150897121213946609058439398416483414216729066262969319329583815966084786036492669008653598364179332663604673725071593894531622600872193912434421920630083949650326861587703865452131476117488871765293346066837397101152556137151979140355365455164874256999569757607426953906869012182743144419830051430523781417807334746768307465656106453990584213927604495956714628193829276168611275806838513440157815958828077326590612921705149692286193192913300015362500445059055224981877045550436415070816144246238879735449528800759397327774460761393089584037362320766785093742624013435071238861611341310641061682415977031553944736496286213310539506775986250666861758910654109402912725647716287059220579866269826475541106925743301278680504346574213338813614821051499151317026384178794193700702225992221869060640168898081434159305633635991496076354489263351940284977360998352984194021670185691597295152094157994914452062400009652468484454039738597121659757652566213073461555606188418522672666132630501758275023579850727223299284845740800255099822351400248183820888051487803761493114776052457995459440575302977692239262251252823638685819254442540353534538136522197915034575873745852840870189643673828448876791574017745171772422654976827737472597301481868978598963803793081334665926503071088442596748809945071210814559242374497375967768891914531485860495211309428612541437309446913949207789684481498592232926997582234391082261364398612252101170520214065552267458609663727163797163333399569751200875144280800083308148764720251570143276390956936320116008679173150479210691564640752584246637298837896463342727686032025731902077191675806570194291495537569308527650598076202517967717053362731425715350840808577662176650726369897543001585778556495824130006989246891155094456184233220877428872759910162511358801481415565434723306429354203454575739160023405970852451935223943235976488481910479274022190997184463289979582213512574472623694635339629151255141298996492665014382399239453188646682548249000823520166786134965303247305717970081568693021287822694840335812240480592411784836441515875260054946672059301861178777215520994880932836522308340636901769693769975141899767486787315606424183741231942581324874174286251157023767212170238854394819721356083925843765258922714555241675736927249584104687525892541269714525822340039280532719679156979887891246206687684741980550153769523845388534094973505467044058354495229050899773796663861300334892218272192780087097246593123416242247765747545812020681742554209762085614375975766800638084480333189038521987643666859768829607844387427852171769625264972104532497425104739783076598689118358187707630277397975817989205830703634095744756133380227348563119697603688202951968781375581516898370159858295555578937644460444313684803776249821279896985183930666971659056238721302145841456034159591900638986842522516390057608929988832389006759639684186126792554128069102001638445681004657708407691280727371497470081550196179954441015958559516740378057125402335398242099456024359497705218398883754963194162459267967364443104775969283177679432817259991228018264814642585069182859960967014646199081497481763062741489909693311780055380255926719368075223261019964682387847139730498339424663765613369311724796334479499958736659506169812252516330426692787459051250495579842185130238658937957852917981014543399590738517727458114310455313965682186656170535188643730888276373804251710752845536681787696362530018522053115177049389973694113312633122695318157983260805319995698227587076609563040102547729410079140437011443578717005810227572352499602968265611769106243157661388619117042298950204830698422683181133608379128077343688155908301974617646697201568065190851563827716433288003046371313958389532292801645136019680350845406051619207326887762500173407852504434881606545368170423311367140246042649084031672268714537897982739975488701812481647082479615959030333145678379331409025153529844518639115156832590650888758194895317793710481050095460171110897158605437501844557881649905988073477143314922617510128956859528389398956950017736007733125756355030138865493175764590540743976391614736940232036495329637783821882425072314736250251330831316092681345356429243425811802851258839948054479878377509589342566574814489799140622633408012867863829251928282582164057065380674607668095433287964298411713456250150868730611516318070651494329112742970004830022325601277654336105749828825142646397305065465434827836756604278812054913009802300778884768904965821859171016856313301420060301879179074009797995049454002605727230606147476682328498194825776044734460505990394031351225555800021149715676467741833233505977041735180646875841194715897724893158249959113900970880104230692116999246760290147911430320957643048664638958538933204764990460933600759679538047541544280896100878758267510857850313617181493548988435436199001011171900834191352049368163834189461923376394777163971942206634193267065789662347458298681717557170600265935925816690176413754769290102741867035375677824809256654434216201723934037117977360154147392000827363403441915362250721454067691877001708478724573344704962907913200063420935912896703901159233661268695180190172552382903863496627536589836339564476167692242995544487340852498112357217227451950731996259837221446885520911996701571017038767705020119708209437953551801763272532398813667381503229326373632283872262282733187147800515045452848710190899872086895398417118243399973280245570821408220836784249714122883295396520710776649583961714300898565595962790337614596270680504992280888030250709084573637532327636087830902033445792237882450147174102758023018489834196339840375858577201771356959009305148320880908691520566858017844967467037193890751669322177522381942850493759478214519641327428850245774502113109504067670122137770990745296985909025247875573890004154399152569121517885467198484448274377465241023595340308344203373496915897784294596023947015508752976402504073193306118899233777402018138582953100404946779668557690699498154529063218363383280619514195012315604887321914194282017864361951129843541674932457078440923894177003557013021652406016193503834850833513302733295634460163453645123836459839459837800029304584142556621057584929404282461456326404752896660174377349629743024775824812009922603904946916277731252825027841909349481569173999288340909572570887760459176201857417195051374972503564348101692043264173917810663507765464106879416040433412754408657952941709925052797751143525705079904259301719167497921481012793841041545653727831360953314568945026145223939078827017660553523619984302606558299391170251013049926734514954895209511610766945204388951712191852755726024420677781180900554855448570318852223629983876513532437648678592422492248673963552812042555214919135105562234365199604681561946966082896530947761271956153617875094839266813666988917079303191724790534970445406234872646144288224481545891409374675204490813043170505084633376810699134508559305278860975956532485114674440270296214430867164795819214706506824902024956861794582189144027729660521017013157167162508707271567449514011847277303022928891409103626684935263882979663132470290881625249948882454970293579072283914532315245999458148099601414312428738551170015231423515465622129980922657969971897625467949386223494504287140436518934722571729077178283297612028459241276484734600346747983224190783436732974515710762733822442610257981577697286087704021346448443925675716675920681541397124160337931360168040810574635841939625156133841529445140946277381696887385651345405022922845251957809322332425261626688416929577763001632188165083046444052299058645860968624669016153607946211791758009134297228865054279843448872283761520709152074121872253040052051861701768402996495852646741548332174654252162233991213836594903388779891658271028370906479755935638248042516775203138207040678287905679241429879281434945213773965406287330716341356518741114535225217397362179610027058144639194869135939486175536729564762724072976553323230815710818826913358832496761581801452941854411193301820024333688137803853365442132654414252848547692306968074774711218633463615707649448071934806836534203096058397157381993219826748715063110852311763974202166342611655540324937489187924773464486181678237791440203692951785472476439114483957287853711925655989116921919815398518497609009913834824870278412598593638697557087692699454468283583041857637923166046913444855895228687886771998098361665566465008882785205481873455446301315919866390175977902715623173859412522766168958084936033457536336254542815401114654308471236478803105832564496568651501130855038268644909959446198179567157446252270753371654223533889445435820904991385945153984358275400384673487751557697855716314492486473958806730669321142492663737749059840873957166813509114742826500236251435810989079172514375573031508405579299982342193210861213504149138823090464334271588904060344420508502324694933881064285452242289564496730816885106756053434799338758846911069790471749468938840803493666454304497622678682660390004538281753322043521319314682392999282618073110288235113974365426221830611064082235716691495244631923699065159479100887298651199809250221938546667187015258001146789998816091544385245039785403969600556628027023268522902473550651140045924401378985878036154646069110385545274497300162649371928867608415512052811652223812010321511012778467003347003040946371127121993863264723918277424308569930979195397781593439358522139786467070306711545798247691478334109502163323795700232670863435485742051123462331600269446847250370258150644793410479451867238756903849317161875367948556632282155415155166866847690805804949720736915156717526432412767392891820450190932996121847098903993333328196641088699491344223746782509996471066352776546050411367924451373585434239571837662886489679134846466263443315766937484153179663461132832997185829996837614227174086934892241231482460308217619868476298728804942692934266334446129505264219941518298916954928836832305974078011399006108285216127133390071584310139980039853464295340889862184575645718524848909859088394359248701628468033727069198537380754187722999574143708845694604098306326625597502769350817880482208478072052474163915750030225459398056553424704588623881235906858947731202399621087122722166553774081406054605856916190088352259197640190928146333623709605675864333394133312079258068302715211006501131033713310198837280389248323351786397571745359947267546304902071672616288942941180665119654546869609688845978557575961216662696477181783141334411885765435787229951490472593143265881341776885049489788955590986154629227473987189256949443198255627930002492964848216655485809698821310643969188237772097786531250727344793140909823380402625162329784842539352336955104071961889837735744018845219605463864950923915990999729899299075191540169313980404999888130545377652245938930819029113321695185024357324484395208208956317041696833422550952560396449473548906584074528498319420407584690691924493669509239678382987914759213102261060136993816613420170944424907560336626654273795931079487488919715494158296591209683143042660970786840833108920931752564385979912014450595837633976442403488573501570026097001707089791536184483553433935933364134040755104963765523845209392177906251814106656295240385786394463445970668939691574036883031246105273719576955785890125755088897152107841200841750824950167834096622651746616039865847476679337592395298238360662376176449289498424424449205664798234066243851001914800878246636753455425306098775043186149348085254106204457343813392890746594802325830806593847113649874326540520566685635096799872182811187026427861906228430207490733503186675410923266635302601761242382435946200915855747236850348780440598529599929388311439991716443351707455373674903665100473058179530019687842170999808223636430905508831753069608646886234131235368336512297059272560875936374231662246343419991520741375285177715678962473664935268243200864495806108359876229082795936038173825895931090675653001775713118536227285740704019496427450072806548919868553309058534007222983634955208756834574732657321386523249086729148006053477249134485840010294754439129865156681254004140948665131032191157923918148990098539615572354687466617291841984265722811161776589362657817478438511070946585122024972336930519186451393826612617553033977201758119902583910487036633918323303428437378817713746477499771732624380306955441461884060439847331466555272971179465348995291693413257255810322222570194182245797270526952565693330222956047035157259040064014069982584156529473559799113309109969386996956362979200512879468446898031629582397940016333311422535004585727915696844337787173976648062943084940423641986983823730423483943269664560603586916660957313474959882745879713318387952002330939235039560017494586750320644593666893108208815470211283527980545527226300821749743742871123580340418712283018800538459874231618700263968886860699886972389364974339526778530269139819207215265663759023484491972395990493329084266353882952740850730894462508523602469484757066090317061690242816279162232309937583039183469087111425909840685159118689280730583367348554121779507020247709076279518445945609263919145969824026903734919664865065378077304652225697040852247988911915358376409692971168997293594299102466074369089314475034454011784751148774940457704049349741126433178335027561280110305452011819673488446446930047320799519065007439835921671167851358167035888554028759813232361616073667667573968353404041455765686696436418350562325552562715589242755713962720077382312412756331559728834002615266100023838813449064566274101957298429544628027817537590062832104742981560395397181114309097867339908425947158786998667638730423153457066421106449350439632763934612247150243615505464193687386558326997455243797792913381733036200684576031569852362086523057258124321219898157751252435805601476110262944100015619431169319043785860113760025594058708933708660092935801117278336925830551202828177975167452624348988624472111755046887376769072057859948211331866723134012387261100448477951034704172560052742783005210242915529263946522131454759773867130723614933000409099907373247055416977866070314132423370341299749077383589829926604671291944149309506257734828314060841556024358223105876455312729925765906214509076536464927107104982985049888947901274999581876163305538758144031230441387484401199432798072798218602105409889752837527184067408373481859691099139136252568521925333676652909917919241795470653106785316450446129089923257140144947592351291128140786477532471908669530689216028060229396583915187730855299844579997335248792762339372192402692977497201660402144383678062661892048764102361007861460676951071385357893285290038010313356577675015215437211127206908631901261790147283244196956716707196611135189148278378172040717781033970509660486520904063955281178229683199523628259227789396737024899960385165689713617791452591864081477315769211298780961080174457073611499688573770386970009293204391665015309252376353368076139417178534431422532987680601311721689909378101255959898999667225180513194366007392529151467469086637023421394606210474161329990923789726903285601243340237314967627718473157302837919788260143111799905756589050117962419840121790759658370063489418943051859646162964916803460622147678337026897736387654935280469070697901929873047936833994401257850119157941438217389997144594040530243089994587311105061753366191215653328765959112498403771956193182139138949042534653724806676859775578708144752770126999231364453744661200772556510690358746366984717737660276862364570499323758683681365591482189489258919375539528065353500927888748555533217315373725579836541330447154212704677963117080084868618457596889194102932690429880931000200224109958024795122226650888115388707694096988108344256687980536008978117096472867429227713328895970207263839768165221628334661332338928233597630944333556670094763165726313245005054348063558061132481528776994895238165706141018075615672035891927609798513717904893885889463355103295880824120377621630393815260521391320825274084757277327229921419399728555746890918029451638970737965836210878554021490908371468629110905740653761290291288096972123675639516883648144897232854076571653105546471528833999878729949214423023180511593359278473735349454969654239122357001973452109199841911981670040349226517124446216949157295436008780335756031403267595283555050543079713038507735973318246759846116563817808521182371974267840755161347501874138234996991848411429687769069041638738790112912409677878393542072352409568670576648809347804851451182201005053752532499514637115089636773762032866446184775946171561607535214704149754644370097124511935306368517073482046926379701065366679657874104957218751036918250421308900126044257057739594076358794424467981937530977652754833371399483744371341811904735064800714283180542124039764545513887750477009862161332922375926275014351238847783962331365511202028250440327153027124483051040833291581386782469086867549573210597264983376552751599758096792782746160913633803537294439834862812174877072125296958724390932989921646514107166656223865567275909037311708226976347393003676594880177128306363449233340106979492090838824729736608079333308362700143060870086119752170479137050641390233984254146575240910130043955870075850755672961771236689595564428886034879065136248781546159174774344663041168720633997584878501608533236155871367245208046674480309908043109127660780069956030275752990841606694207870091228612909920662077401598235221538460534677299335991285876082833636596877793670886984181906317998947644945442075709966300091026095137047223326813228445647934555614473603685343984766157417040637639646784361224517262749404916979315029684668497362523413865467188572383477008870407667263892266566591161857018883656283166055691523951498870011672982029794387895237723783376307460359381720353732976307996684763374836053886899440313330142281867731405189538286502102780324281580009498707766045713582617940020914421445929895408204925729598527312993338145014204220036247348949474877152820204895567066269678683276902916109315977015852024801617252778043979555475609032688762653331127244346528634928206207630619478565217640405945079232078155678541107036866630840118139695778139758401105042916489618552845390164458008468834011748774187661954172295928295445630717198312259102035478846177272469014805167913892048214493341456171855064802689119589520588658689476695652127595532621583515865668729021071913167521658463647786524424460635473137482707051116018924867949855887835085044939806075852888342166639743230151436476205432667660312705886295328019379349050361871696854919325947118575026693293205583413815034738497527702096665403173973197876275078837178414856274539512016319570628816007622335108443852014985748803532759803342681230861501600504931038790920075578826487591951908386071065267117559854441487998353458856677530429358175499716783551395811105333504724401605992137546654498293123435697512450081416626735762693472911957824065682459211119985652991620663209026637694478324080348206071426938506552932670599320915364080958974969764238306580656434027226680903324385553484614799139941800466823443459426612343909477669497126890899316689359950825711787768731533667662422529857342889774688094400365840719503706447862636828721619338074885164417984220480650028060168066107278976130809928269880118937400209741740958282241161307234588141337871246488849251918892990402655085156138752669727352924087821560172127272364727077696978754065035017130744394214805332438718869781050087139088026103403752260527882223104143238984065656609415546762073738176127764288913524896006162819981700557285921438769084296823771991942538268828559503661335682741909855694247282488089377003140491969590403515912563177387468127292070773655843256672073142934252509408347653098598681700183210557059884215600394553822723928103603992157652362954645583098866757639730045428358875248145320061089357708164727656985354322322677506965026414691294594471694325232494825915276213095033658565046285052095417003218169431386961065396826597200667343467553458749167758208156552706738779883839943708062660653028594349579817072241379815041050842354325377245408440185411538240977628599718890288921091944398804872991237218695834823636422416430583978384672737077692220404967668150396978899294875898876242656254882591884370019476007304665469843118756029429411085020567009122964566900055588863800651016925849103581186840954110158657762256467912785120459001629845687043960418387286761900915064057246333267882534158074002978439468350474135571756515106079749231514267575163247264996836279400903669741059859287423242323810010802637606615880008908742118722800888118442447803272604312317282780779436942827618378279142023484926448583668222206938356542443503684894532715926748044114089769092938467915067397764218327926785398515993508064523739694542124300957649824170191978936627075570556182376787620404923985505152386739345334600093585590398835657240460330897878798476684143845178696257528038821250969022654672844969897135542429010575657112401349197910219890511708406943916695057232111436651873130842695571255800735219093278477152412520896254527882048778440894644456127546626601778051938432043376946298044895026021907087875930149214086244543053250233212497806572571060529111663092248942950325723432569305390927034655498039019734453955402717436415782106009435710782356721736944893328901537671810394108578225371506223407331297372193412876887788289529069337839811431995948686098384523048943814563341303618322916804361687982955511439657629147191848035140099088371781825707312300022229138595090947110833349633115072029389513932849703643229840716135174631254587583676955255282545263099580357403295553702729918351808450751007168615108808706610338075953365360450512394615923929886991172547701003515821590832362462344503756059681184440725574388236264055057999488112181524897628792569387336906309994886485050098813600736489144204748961692179680478157314813404645499990380761342796163279358254100863817861874672137815174588563380041870378721800973115502357852506531206280308426250813703299445660750153400905436535082078098352501884408087191399516433856026479455055549465630272207738000435455194789377651005812887329950535313723312532216207045459903771365103813644945794288606514477244387487618048074580719267671297722341771496543453355441797154550338398920810559216851550290085583933005854834333917175311823119274243796354726530084921155349185526843103750677043489420832540035098766321322410479841524747585153999931816464070427073912221282538043524689413338806406474275988982772759911999631314007937043886757823145326057188139350216814045314177028534795496593294718197805447467492517157957951869417357377631358486074276441091410854573965569506887727558254580905556825842102305392746061633333360431266728397160789976556211465113569699790155718871072769019372363523305752379698157175468015888206640695529475545676033736053909821670257794194071025081148154714706625396663682997000636325424471420215680972840618769321876828986454084539949221606586758140696238894710402068404333002672437542793511015358459242115284355424937796112057472278067392436156961219154159876976471235733550047477613340640776963544275668654354939836957039250044871410556624383529144572052815852065614679632353025844955852374403655065148950190690773719151884287352959821421961777265371669074668040165038671333454637218823520129390070559910716873358764496844596955188088433582015242476591812867469085610338464539464704236629055488697165329340612649871145470261875032153913258594645496055197547579556100856398788419508076138364677831357055360104415359678297406762861542007973154629987479671168154955423916071765596040116798030786446911059723468616460190944566484246220240200194938784455460033427326902341605302104817074374938749313426718605420824271008240114034650119705744569956282258634555535710277748613627008679869500824033179980729677602676436691356463766025217629783303542132934717403275917585586114603812119940032823899275748725236688091501729247669316328888177231589403582367729836316215823406509520964140371495048045955650427609959403043299972618900497728166256113015197356127542333962834475245846028477564016292102476508021089687095194255472597383534288793303319170485959594601954336805875866727722895607399328278419599245679219582120462936910496327626393786403403860849615698194863216386477365061560261703097579035847297300692581116911108400760940501819686360638948310069141583714565688432537926370274276854521824221568575916611830362311532746660941742388919765697181767545742999675327925726351941843739452254619799837363614460446553252759927950329216301105599233952703095291000273525842255428706842743435177416427174455207395349037352504776019418169709788717384791189420166612143575234057673497088605878593881027716474385184542179211978636589622297242258364857454131093674007425492213944549629190645714368159123307493168776626903621930562310593235421779530035211269086826670932112669327603484902289055808187206778439489912731203772362267277193511782607316201988942651522441637402778584144090704678119357462305885548437321494147698939746218550001246961409334263872861254762951074157522325797977345529454461488319123285198684896500345394424123830380156217661953235276579143160547503933941112730489582534579472423165360871597243721763163911183200837626820416408755178317009497272779964400808473406541376334688890797680875458129877474222337243584440454122061664872655017168263393529213442210292863258881773263528541584755518906988578489929690619757890657306838372661718444771445306738289253186213875135600765187342535787697910583019599031589445851718640584762990925722923897971065773558689996561427538584596289833123735896933768695583703623335651116527653763038391627181180169667695460821106051501983584004364524616352194375334657342467977500009335646931634157735875097931403886977526217025398927810807519474913877121380640314566801952770266043383578841501621495418999122146878840036484584914571963823377592239319201456986810497034886447161468168138555700473581023171782780263449806095854575428242549051409888348989435557773093587557572532141011793694646518821537198448067113681516337526648399377699397536141926201533251845193155395002720842652084916917696350235588757804996944316932211837228513190371471293755742805674484337172596381088784689418216051870068792131496615459263036226945495493088931149024378396147281965612368536645231441127257764494899598657543169263144491130207223418112856247212962721828813763855588402297520079925668279318463764786267395615075524288456188415085442275887828095456233776864941984748225999841175329741905512017537507606802036871613988737242028564922164162247198845574488751551386782441059721268455008107681899915890737840028811709596151954763183000955556867237822599183865688188148095461357781502789819186348879730227964982331497115637512233545719329287293503822614857515930808352401724871923657310752564458408618258622935629738230317756006824924207585138401673843432051867017026037889219762260950370581924227858958793297297081466565241228694201245418838732207513345602913473599624462751720646692740201994301624536097266557393513553489580309960729836574193165044417903988615220588506451274044132032507729620945558824021654336137979635284539591685142376905329004859387027520113605519623836954049144090674627681774721240995709189236443018911236847001003437581775027581715292470046953225706662014468481982336895219971799498327078222701317860618687517273788006672125431279526429552092175533378111222337508279404701827567262119478087742524114582364931492283783221312982266151080042165350322927125238774710833736136966781422410356036007031536093255498151400539281186695435494398450665374999329099940352774572884754322376358369144323852176940192181014274746527984566758455354811923521177707907724472628191375012784026576229385762706284395110447296577483489916564671479464556164030438653199735905016901445572287352036515635984169507340796144678373625957169032722228426253755736416258544167399571167522404416001972719960981825411581199811618240140470379441128894066919237134015427359080244759320500615960711734435083826869243975070208851987734736633495472461815022722904468522636010224370021018489157505800364712139639077182064308851495133806596602483922244640698853310341259881295473202581029278352501634653718367155133343021322769969058809597900417762093480501264436378881884405785996820330191051618565844303718315055032900364311774805597052951096464207778616255744579849113002542684169458809214358032356261206533347579778121007907975937945892336773095783164312752371090237013791936472477899641477834470190708788623590382952290918505191559677450950402658519291174062676964617750037492852157933387211239821577163019106954077903382500382931064721894867707955235536102197112976329975451790964917849902122235952749407571889950851274630407947816998547049441978498127327860849738386770584086670947879082327560698395828776659733102643012217551611952042989706265886320163299034429964454281011316434199480896774994795561223605373380583930361174467508419512098447561547414588533548362636537047805190281989930962271414779876322670501015936635894292491629331709045032055635624054364925512604482947568688458444555678812533571918948827964154769987272648942446194146453526372490417412904483834390776164896357390248716082024077071998984188072447811419436173795224929453046894308446286479474844821417294558659086846305825804485227062915050002395518946150873241551690648405576853223333399647106183107883132619862106524913679130385955700690384848255073703202417915778094968909190820242233031259257791228663084955979070051512277745327050636497588611771784774445983742027879548087739615278253337172439744042202438591365421390796753418243713052982932296059496688149135057040938708528646488315847039640488051000791096483776324161022199563506236884482089994760375342710634051364793732620125273447460207467200632323033928533718185020046036250119610082465087988010633468140604170773151598735075893618839616272381742186159652715026582023623855780745104165408014565532158861733043364648980333973894971261898685898068651961747659659980441290302262590308301300286856123471874723237942345042069623110724345555823317641362453921079195334383613597731681611615668067487800051022465077389714843977043638713482858894187716777199481059408238622263234029806369057134176579272787413230167143156943991722639578038310000932179076691951385231199614805331846302361479334991739583737218444251624304962272351262686046578058170619932405253507807576722297453591164430208952145419932435195470620002203310821629306439571527033046430967245225911193659842135851211140647213337562392360454488995773085106381691569162331696600269443559137797934746079766804770103654843579502692488533770678916649496789020915113471494924779265171371595743372766634024497120332065454316606194275902273803967716884104358987812750345592940438820066660049893320407748028357926727661887325529458151451062137572235182141859555755639663300843469005747303341586296495335156059191638606961935998631547997384450890913796982648835783968213396788674959964470875373479545444536993678383404354990861561775315105171528999381553419821696851202565711708266769661423105076195719730952727886725083948109127269753297820536971495387651216483421078371944079027409121235438411613473541417892236243734903574529297676927863756599066207869876101767018206718669801499399585944884520469321824418897630029606822797491861826950306108196298622718334533829864994402357302412589321621706073812250964550333781191668789641930611711667079117607014665659548728148832944309945129440677188413496178205698718765766736073964754851391399661920531158186797690141331254478903166754465577208336080836343093448182302956688197279760271789482578831215591723924251505942681608473829646895471511683358327077422703901870092786807198855523544452137132113939237948679235998277069856412627731179748519239727554625015513022005236662530618647502639523786424276210219831491239567482007227400771683417199440881461502951954533233271253239453649057637666412291873669706178739020082432046317179831779145811764350894057712886984328091208024986805403474407535866859316358122752972135069248947647378741332503146469184369872082279917433116661365625867556315972358015689567759263853611700526728596226122126974392789173851009508576359487564163829953648389964256207377955922324264433757558046734897210780195586958672041548049124499889246194895460828306230077830838194929384212627632767842864408043776980687302690252357291101001654717270137855896828685484615945821545375904368445251165057268172905697126506888622669316067037010357963969717175099826327461684910629676479157700066320933674209196849829587382997911846609503957559848832641487713634757189543185310437800271888786475527955401606568716550885083219257611825788666781521165545062615903868946937938432561253085669946377346339606979437808117323627046922586430107606138545564306633691627837363580122418246295656443689430976220827949134757647923156304867583686688296560717000314078972604078969902461619809289532264079808006998441918858273867437295673452471434417959286131691956290234833516693293956696012237557355207766844268377532351246688617621645483670549999878773574397306267434169718841908629348780798218018875640516449396504565925380775877691822276681649808971595685745709604540419405361504898318461135656409765711867613012843066194547515495057748471234495686556377472692047531026376083491745899498958692423625078178808945376702632981525048312823265169406409782226217233557824250891310438714397350882895063752301325849101262187667478045556593885752326095884268221572377949147215072281511358911717325358440806624824986696404324501667792251707528778245301424123185360640855856653819502077177562521258085117013163353230720883342891741290392047692340038134234018120895279109805850219009195314346656393205289324004788971201129943562784531832025637808070870477613533359438582793017220720819755701256621830763063487377966201774781924476291231229725301074949098245193673942767536526118144428453362367037852906441485731018677960959796968498206505237631158720893184040606633714870749061983921548075928395581568406230282377588156189333098253722800094498605588300722022120353145688266974032649055434579055786113710253467043729947519864919494586303196836715191950056763290590499652939082689295283763997253061911196579534114332288929913181896698236806277833731631934260928743558676092875633404075148263432802203222544771290206854971118409590906136482413014689451783119381331240483611886569108862952320262290785203334265930532632745758290889345572283214261904922309660675705345175305689447424084251906143452991847701992548749404638300003560781055944687534247267547307671371741306625733940266301642015855361509054294429839725562211412950404587159982667995704248744927495537648315913665710454032844302041572415422826447402562473900745061973868521732153225093836754818658412438918329655527128533922508535545172001888017076806359585215785178260171539217793334411678161871459921408005776554347664656220772397559404459697815947639950346364329469420893181792848602606514757213216149620700173861573488394507296797710100733300635204647582427046876182092210027084535905544231364046936992023988760624973472980534617938724048043445389647701153673857798335754225307517771647545334918828341672352676553951976942771651288131008699846209558220995235100027900219244776733219121138310637730638886801842056753812466873296613112940922010056371055099973433815826223239488594615363971401922910558958786211175683422609526634521873454433581007969499952974756891137677251292322981894179285210055782861282647736882953060841395078687344050472398499661813355207075335635122135175950098196428200797965805180405423207606320155057143694708259119797306292200323788480789752821261792482502174664863036101027757407808336085606996661898817780500437799998807552361368124803091090116028391625494917224624592689873594793494190833394960040339737821636152688191087184821621234534385812571472984503520209355348441117031663936636974839232213322846326350986519187868438217366794783232442498500902781755917218867725463830610673228100064158014378247017645098192807899200973875456599823479035822725891438363509535910273488485825035532756529368536560703939041715651549969225181161178617319958204157027084029081382660879255462817487257039229592530946380479629614078981682138408053105373862139073024240789271126527951090413655113806484745447293590986651900656199020500390025901723334738966429221474444760831709354154740837409729581619264600993031970620707447218339322883808049324948783194493681168213048060440699741576929397959299795419106502657160407757043768086959329943064477166456568504954718176507835219282040650075556226588840745457570307959372077173869791743660992346171304635606723274452166379006123401502550183131249363526042399427945835256154449189906854439231710302717668621899792896148085916266068968721585836497011100882964050662034725143438809652622208485736333638001371442245934099642703219440350463194924517481358644274706317154948230962582160180107729010095527034522733216241042941435986612479232055861816925988424739277639184080656046574311541126630361707870833870970906635861360424669028932370021968962817132926813636521861231152391549408013776033764043794190018007074006319983634904568274876543855395152628494231589709147278329908151183741134324595181704047843194931754883955630738496300667003247345920257650756022999888692411281219741918115673958911091711468474991586027707167410180472533481175100049021444267357019796374388917715274925237126333726059448412645884829289248758836058353152862503655705071990314725289038928424256524010989158062698766322178183521932414725380176822618083338409913580623297718206894175986426991265321692958074817566372498750260961520814962289760202924703919456918207182552041679772687009863469637408878460361434077982336253298222669283107878102242020740737123940038938738211678367248829550489282897854697851189780093142227021560215358397265486561551802779813097232437374008278047650326631414746308561170381249814554660355212567586522575877313134745204106046604653836798624304745158058809203461109180725255606932473695531863809115573363578098501666563327587562896260643205228208450860163674393446713718591555456943305056727356116229703378172119394946099693740590392534731672455054906460975300272128378373453317721760894014449587083754165792664649662587013609764982052301003077115587485858737578854093225667072038723549272367838249694834756986579788530942679860777976330083444367571772948735886260155426833268041468308443130805773954141872560777227359952607621942791096478734987536501523556830734728399424723871165685238038296403386172768199603766336376907058218755704393892651107259763595936531985663867015222509306765915889907932662428700793318440733425769556748914407916716143891846426241547521470238045418133097831163734838407971255361959525620231638562693582848152817613508380768865319010194047165187243057132914687826161052291786501321940557451858879851605054703122288172942171572108389577784785067932976363144138645377351803149192061411825292789976065145922858384684150557362946384763683786677803989383249993459529776307112458497127419737822980218509851034836766306554984404164336577312384724747712498117739868924018005466377628698243485548190009734358580026076892032318313616796287038593827311408871496323067727316170927768208425191666818044396337007866385246094421169665084226359916295628413235220577662063490568812564245958676443445735289887077568813517511343231694791107386408517943007052857185376097599956171501557651207141020002132493946015421317210916481554037660918744953625079779992864887062072012197833578527204670525916612410584811496118713464360705317643185723090685886629063615034912881657567647537119461223561263082197352215568885268832332172088410089577906149438792710810190129489724563782430469785763420101910580643048895773326975633706786722589148012793146622525840843725409698527657710274171130919115045541409384320429435276045333551243959945715257438899202938811281889989412026002760432035260715644232052869345918724958400952158264377959951596745793788255971083643105180413785776214838901955408190809704618444072526841987333951964124335001799499748517619916146981497963056488767090734061002904262654465459488559743436611237322277764785880200587369798641985037445518707794826791149855500657121804141009518215703685963771099112821482094210973526934598086469150766602318626740195169943108311664546912526347293211009428417458740300650522415974014380970457140748200974339925588697628998345047680831860637426583340602548249626097041832867760384142578934462182530198556856408790773915850603126670510901564481158437757524093285496229967284057795659723218636810370040440709934542597980134113202189485399479436265967376223274215974523554962596104865874898644426308856856431802047428937390432282766055671545355603701734197269883181357731608482310068247945504724735059141211126715459327900435631273047404477426842136857427163123679648397202399631922544683673980233276475213978065768997169544855892796748644994239660136417598292421380716066446316619440126884890274129166716568312469990178510509000340118405372948352567364073211141563449502791880711494555291907758111392676587645085018875722516950003529050705378223847634162051849330947087372196924680332621010286928156726966053063963050797287822349287019770735348392497971295948998368172873054977390577183270308653929584501776422826357634909846383322713008120554272701232282025378123938057728298666729841486354412309188870358760504853390046513245303584288689515239880287288415812588347613514835304381274687953445228932138195446067628843942419313689178780447189707886563041885700753861773379296260521531752882689660669234559455204959754443154687538023418465066444094531687556692860187967985000792744622963423979754626153618335213570855950662300850007522800736456077233530291138180853325821324331288402107103134862327450993444186534011143703458952733743740843583461446886725137412731575949722665008572279105170613091990671698480119730129494677262792182314568581752280213282114850172940550365261698074190377743457406941717958186005103332170090768315345264177485578626612811914086099346144803979387137953883787812762653776045576086119734114357525606958090839289013498424819502674194167710707326773833128160240924867700869676763133530830838343975653991681210744032909950624081307699049018003993368537759754269640971255498355109279186209682016340011432168602039328663149362724893466925137561217487204024196069242125171590758051508476221208942541981812074858623433715036275649340751139100551703331449165688711169361125500918439847411483504266639238389768735346675802626352926201104292541299076987898482547476622775515828463018385105665151171712301411824149025218730976612948933024876371754106759130735068771881362665910479838675298332415459474850000398359717327950123255386974178414295846743152913920383063833250120966583538700756859801069718756662216305076953209067495181353827453566953839078608246639601735620886139776618327826954752611410980225655016446369478496756729751397624721588543081551420899238149380658239541666964483537583484004511293460573093122473382209950195998708616608967925339413094839508836159202566223900517125841779009936083673095438223042083781331906328006253612810348152017748390119085233949918732216325447368420197854323896723911312417537407712048579340632292763481166110872020992506593591687769841610404124182038658916396103773843430065328653253983523078283423778087088095434330416942041209741312557442081517931317432869401071964248236995793011247939937677736570768855781602567126238807187635038938001041887350997392564100135587175871820306914886063229607023055238378401590133334971505510392295849003926033297056067465756926631227587940449567755818912921059788323048416320621117460379238154296403231036570569336605278601165280850417781586720115804639012007598836458515944136129047102100826762321947803975098197265228804544518692702193923354901812476867891608745612682136001714202254662845613288853969661828792867910317418790392929794760275137802541888135703411701775861942384441280437139051772244320466473652124434182804137505657233725214942734391617748205823530752073695347912650212689684679318554015603929610172780978451555429039076995480432283094778883055859454795111892496244795462281255185994124893745336815863099027733432546969342239388209923692856462266293992410895027222911744807157231164539339835141794389266805860864727694363264235077268684374847032482800162303740449685094722025394978148518010962477997097645495641656227785821514908878665121780284721574662840770954265125800885424934559736705165156136518934339955376627482037434296395364900400997952610134364747649103070813250295142021198171838739364524996674269627581456675802360372955365223949838120667279237611944996395131807672896352570290382882453006820224452768125911279302702743871230574627319249720992128852579474920779209916368698294928269596438992124564244521209193059515754817298892893129904092209145181678462267069465486926455239427646891195542904718611705518587334049875051928941447446685157271443270583471206289552790203827785960797773576101804548424800842408378285468740559154714907090401982821913787107807722085972079393889794374961334772757584489222839033079066929075858130627622521150824950644349825122260022666914157688853890407604900561128695750249959817795147442629592001676056918268690882590028879882124162729024624319285452932385087097753692779756101322919757893784203560979590262721924221871381997932999144645503206641269387725716537166685552228434021025129302019720856161793749684947085783426623705958929754753933240574472655181269795743159882863948486401447054952221170216716015460783894107398619866787020596838738413567414174281679806080250954302638058363496602141709698985188560254158960887440051305029269688235662244011613014845071883186254326914990495515187013278586181786390602314641788943926113129693543988015302059644036791122506450229421476955202085730606782047162795194735147814026640640997714354089386752240824563701491721973003335435194068672028788036512122913653531189221612266242289060628028278938066789857860742254931412637843723777350669340790121772753390529603571494577741449669576524017396133863718883214704614999901342456804823253319448715510936334102861045295674796695508021144594267019530775578822173200502904894890901114340390393097728789360843325940391487654482627295617143692280504416029824835113536119769320638527579784701798118847265618232950775269836548840687917865290612958327028206849130110042786569326134957690826216740188760450324878863942176707442530911546359260601074825187354236213991741368646789513276674718292663768666182924390952550244910550299912174415601737466991965693125057588799621468586120410452080228115118406394068225334104532977868161308764307247943310606156549879276675194136661591785470098572953912815023658500203133290634287940152135350764738051292777396786552292199033444252973790961321361411674262311913062229558892106502002391910015583797889143164929459237456079315819970825711975451625325299359847511723209785160216609414375446826332761941059656329777234213215830231401041788862236779328916329615812352649085989603007672027729119115219110133312972050943581361690985460418660930140985886862366413382427771701330435758292592851142851679653705004846491292466965881839979574489896191565931057785298817777675986664555114404433318073301188213347157531293107815678969393645148078130730215669032743806723890665892865493067142347150226186367255578940370048880489676284026611678286534860470670012765247494217032926752070076847863712749815362916781856324019582512271079097424646534303869130325756793735394012725651197716721167242962607692027561994525634423038955095500483108938412555282309381458538514987756633694484688661054563628104025369329027153848053896960630667992735737751885038659682680261230396608535943182907763504745547084391157137036027854435656528800148757751909024491588825553229594672910119422104696921659490745689528513960423000306031622906443994244100102833610724262614647352302582813991102059358465623138938089294277116242779411883126277189854718851108184976305034584989814262886193112097151283906811919194339647865862654633306583288639402428621300516294693295627354105647487638709718502754150783210589497289528033480149568621530503244692224863094908290204933556398811019854732193596521378117492353423385269396268047428004955518032055643690492833204092642857446470511925924340924651838125357560398556007744245002705539728625980115741560497655154269198415375057724623644854664227590674861961521068832444832786036750450014344963654445459994850958836701815675070644876531965040213072730081922231068717959587671759395380708648916242820795415893121918305487740314576327452358225696553024320945775809571753298633501868494711517734896905576904442017728460288679826748450104864978852869773673718826876599436831734325168387630024186545004821809723079877630782689132942108075382443807719385883030482604294757312040128529136605312139793985608330632155714838037509774984319061554365097809827587330766175457711736701046192548736821275196874865323079805954358265594858377751582325474974696811319669218182858488662980417963223921606527207237472917097324047307696804897150711344383388630234792948659528100010247009713184619325647699152681110442934467071646174642317050280030458144672650103318461725034195775665529302618888889038406389238336802485187392650656660421920848961057640408601599096265113675781371728744094913881594120182151795058718010326830326941949617404543127902516186763087802856601717314664525206347376791148845212680275688734279837085968315165389187465221055275890093019455318851874414504667270799281649008752373462492785724011464651999121082129445275537154760188377098265139691068999511867510112228000783921811237794127198581144512825773178193232901077736665036714325325897990070651632102387610864181586506844314691728589253537190402276244508897246157748179007590966627234102740856906805468948849116585631333250874313241919167736718795356701465629176842183209311372649441207094316993726707878558080890338811918848000646238065092906124304458385582841283418820300425991976510201331204407511267887985021080993383371489698867238540348147649167066686849610430864936849480375748483030941667712840977716631187121908078625492068453133262792269301398895871120991617558125092830809674860993188557382452620219744691085793910201466370373081638013985146061315871427259472957315656700521765266183043190694164108251178956550499753865953770344393993732962192769552461147092097236691588439853601564391190028519743831153132155982269594919472528527070000136634259232267310004542092891924588144005625210164645303722102647935756116543151970610072500984750388408013658894244591406119647997415778813554984139479559007864979770095119423668726873351522393985392495561748475273882043611226597194250362622366338876168256759876752654795857804935974635697553753633831956628787816573939043702707193670018613421096963786989137283550185522355436942524455228122045186214172604728593914532025324528263763714549820816270148827525265442993878852404967793992619150138331231604014816064173683830424993573718913406814084785816640508827234535995100583448618090111515816588359330268117379099928143842703242339276458905244991311689242204304720372898572975066114071911079969194011100474792252366506348660489751639944611732725442790934448387361956486273604728886356895795645078675911528519748696630992829806397617981129988278915294283662314828475110235184229073536825244251467633164348933263509173689853122855566624250746210283540579506003606898236255661771899701381856957264436960724388650083318394762600658686191835533872068273779519030560319314414854801666119242901271942590068431353722462170650982949920963956712047679536450819274399425555771744961856031761563294307225274687421805497812386621065031825170507725570904362161197389914081758728203031087231314611287975916204885575318738614287643728501553691770724470076310415680852570994416872800192776975959039251397904964874187323779641523388601516687686019210031083026817406343694188759819154313040759449185860057165898517671889588377991092525897062583862463590444100886547298675328428323545063232387424401507196703931386098072368845928130715393306556365304269043878423926862098917849664052670995303485752492775968599787346588669593045209450311388999068611449323659997983702200864663246798069270970677468165561425306162341285912047633260376336090893535271723531004381549333085122827463159633846921282163669939404126110516034485490184252303855400619203697687344697699212025960301928679391096208652965573535200791073989795687556434787097158014653645719190668370215906468228537813114444012595823256296922404075427439223719431962479946104207535442418419548264081950344868855075509358880722193670675555019269888966295409905569267160360424957022340829641022336303112496714769527331596788163795201334818018271002237414052044339115771876217465442809474709796572440789346371534935494336791759457231135588902914546106115588229582383257575956672439514267417852175447526774284441257981696690702244090777901792399380109721192092897806824093521634309036934883787109541264161491795303631792461115621224626015088160395688873803329986706666685824672973442399725031203104001079614372216702994048712594376797600929657374562684892593533611475555663027024103665234594216790381182877770211177594894712151141219675613271041411039752715357564989429493744222895438653191027517555919634349611893076825738475730882844573436742262150456262862919159906352022269019991869960099703346982470757829200157523367266316625464650371474037277435210600954632093543737040983828843435922535774189250881504030901238780087417668084794018947065741092075682788600406094141939695344126401121886779019284738173749710150931011715156094907500095335794385558961913472072809801319155811429925313717796108731096725104945412586886255468466715225198120975558624305189860048083050248593052424399769678202482284880920857003002445265640386538305685205457425003212843512487949702042371986045647640378911340878990963811001565875760299432874634020228001328672471408442289139877231306491395485004497556974277951357034003045770729906445339631014226604086002615422388855440562947296239444207923322262949757467851923651470707596402528796430605067688444392989286599279593822757497672942562984382156472639225048497795718932991221934578729178366544214105162522599758154500744021751451941075898603444359973689287045577167166765235417335491787452760067817387173468389630745580663971716612322254765692193290612603893752997660931626328248037753215852167853061966432341168457774850781558560549172625649969698871934548333651781883487713030189498686643733627781698090159137035296430356219676505049915914785097970298688803390303270947407296340533060873680489426973802831241625703537574041526980199541690099504771134921682678317081295618720505552077680036142133115550106511295362815947300934159683722628443843468928559168829244820449998612916506966185846760479930623660850011150910520388341239386243135466865015539840867605529882695926923782277695926649877766868583976770376895513811935054892078801782511234924645506931797892570136609639453580621053770861389841673265836379504079293198126344745486542491029564095382100419019715583010131573391726672934594972272834995656451323278792279424748854008969752072882935884292114860054977764957287126703007038867112727907491517308095786794484867111604162686698217209132788744199673559417363080953560403943089078119859521094298409260238470081543441764806286742501413843688337005479472826493407880267777526240934878920893641757349008387101992740516346500273362630779391770649897101966736414340559926891998712204127386119882911830484761331164944341094840371049244069935334809908020586414192308710190846210534604769931674540432185395098573751856791039662735666482031757780153598054067661513527879534139521335479534898711792755906776879293809542457876984704216105250544279256398127286725675583384637347409716012104922279847036108229633436529927279590304213544382312553339663918173934106443817901485123949620543992900124630674796282275357578888258677916773729177721708586678922482554979865513291122448072575170773913131091453451952072640001237641612917049093040392634066019264468373441961832216128537103550579536097071741235639584509453649468934345921198560598552394737127165366624278305037041571330177818260498586598699013836329407857528240880423474864197508531925050214017390974398354076134297966648837307442897526077679421819271215930543947304792187732794443831058265483065742242876952838616327876514605903225892913017470796363547848298137331251286047870437384170985605872320904379081933720566427316403160632404206302507032050179029086962721292220590333210309018163451474021517412234915930873453371478150404086360161326442712578874084482814890289717596308288147982613240849742472661165432518542725996934922945443898613625807847230009281993048492507574560573627180848491405905294855724684569550866264534620931511143430583012055011081272617157108111780896584992494196420876060024933321671119707706233764095427176980850894045797639639597957435392656791345042226288624347786625574944279799319303486028375105921801998408837009352513165789865692315137991243229133185283276020254455171931781492323232244471763265371348286049018500585240943484620139762423515341112935476049020137650789883986744022158601718874565987136212522609985243974651683788829039368595059483202283898354867734423343029011869223960352635938736943723920893742867908939869794481349249609581402419757061367985924845175989051787722425394617468919022169875657023001169028589974768582657560931681531324091474600026208031620876826493800344347893690275124779590237129127888360147842329070314066112142638658322425882777273813328594840113713477565952738619580358238549659455997667724264417896695289597230757737292471169084183685679813734508988157518579761764745431634795271743356504187463886186562055432732999013249674464085126745635075905257101337426332707227405146351129447650018804717744903851612716245317331553052574829542039339034104103757300316205667632924023164608960004612432765060345973296872474038077188122964233263363581526023256173848936032443764560690103661039699489873802664850077772235650957287034122531774227420910358039996360807953323183024058719588742332031227502593891761268568782833213432268154715544694712561205898700562554779015663892150891916499799631108369471886135814100006549941076102961902996104707443184689419304032089339349563590439972583591836539941549323044798302477327890266157635097008367036586460273235374385426537291606583479230832699448857248031027406187053147703523652063755422351285745341491101472268250338828873746050924544961398668241246385735934157397537355575220419216129886867750550686477079900147891879666402331753335219859330983111363253090112742016304696044657520510425616619314791527643422239051346611267254275856803346842941694130758111858601490511145842654979759423424059018453353954232042300981206133240561329110122410018254640736827077342509333972717119330345501404069951561336930182131146112637368759270176630330660754520345653254710882639394957122959661175846099856153624339442925702647839627515219989985610931623754052468577358862476751021484331793812804002197181540257310462321811144651736343235143301915680541520963371161779469098409025732864011861932693147347897879993475371693646484806983062786507607474127827088881713125840663476407433349752903024431093205762071544290791182868685641964241685770541295589955930732441926268891413013601591496472668864047858613739635735357118774799038131009165619993045879626065865072813114755475330673319346352889883560685415688011305819418825223151143788510259871582512882900841426832256012099455912097482198683297925215822021476686211780280304023818871943985820204131849475498986646711683095321707932730390534209718379833286778023323501316335789096958630257503793142484398887417459975980312275381605753262074343036606916677634576606074891636402972106016484961581652356490343935347699381077597242151902302254285582795328758931989659241812251760788317862006995651888325329840893665442184455599057494243702436247176661524686426974408664781722969704925964092743617188528314020957112422151662060087273969933183691636911405998354446858090928646518842018139166508091959484250426465793634712253884967873716925603547938601328548935280445969762085233371900636668677985155347457249168361199187756898149413036161656825259092090656333954428413145654666804660585292778000817370387472805624802955415886044727642906831053145303163376319571123252000404605889257674532311789342964005916852455947610078457262230533628469718323921803905673955736780339015568586887675201381891898964349441546450122213675260878710821407992855139289770058278795220738411432923811216364468154281571248615078627726768436713610620783706104748513297062880372566378568645870249823303323533722136726431479744324787052511510677747548218871636942410624830439745968331119085512440415607645245531122182635084634080788125478624760146930563350166310904277988295650015345093928205492913002637923190041541382975310991286157033422573387487870953519620172976599342163753721466816622701751989116734726440858944622931857090494410253619913006950652954562042467709695962819987613760221682655549376450914067239187209830836209186267527699941328364013360093126820032600391280673221115432970437744893691195415933015515984649610791798578843616735833581993507410058009467370940102467802821329563288869199913033754530041684129881640240117063372995655733418660639614734488885135160825314402073119235593195652568320648212438901082971324917033225821758381009227775195609502332932767581005176082270246104666794771463809779442221828529296594429697133851194889615318479154003956540331263006795976671783552031578983094736278003670420899775792970748648186175479349472025966168766912965747597448201797823015552142340630226941095378507307709928832790561609382130337061311913527810605021653307469549760402943290464246765807847741930147976016621618417737249922073744577344631262536669025963985414222062831290107324761803188737467091907615443524817387446713549546994310304963547206041021130822031242963789576923559115630986376233067555715647126216391602793148531205274116178504458823333575962225602181659351863953990020688214853910570725807059647990558880392588323771906676661167497545155814204851116060764041204805562490550147634222466823877028414096480997511075660620510927804792337397968826724068617902218573843016156565681063135695620588461230974473611962823096682032753786941301037395659465945968194437674258669128473547421355367242960651475144110625584397638690351246101215521005332425622741562339626441813824162903404765608145710501610707179691925397820284042919208744158757867594893591326692077373558778519344826211091398704274578329086453181106781595813786916779386402058456275499296269030218734319885639384017270947633500590448712903206121413229946977536246756676339728095062108050293716403593964288181554542369836749584292515062404784517970782755741335483149578420622311023248319966568285250239874277374457875466634943931273777538787712384933024718788376066450030673645659497320147186403274609396759306609664608519866453880047254732215487171069574038914068612122387189698147994589139993266458306518725563249106544582140492774380042527533869455757719328383219055121459238372239062828435720118829504613469602339132857735272450439001024585325675456403890066108294537657769940604240223988723162248062479924773095169427200382149359668017351987175494569621884650261494263461770235631647046157944169321887913744897507343673431691144730161753919527969271761868914458750849603107127342853316165678505220143698877013338074092007833647375580634457317892381020828523951358749163191006336048321920309613246597817614197473123552355564775460994485447062776178993358023395261612174194129895611145342583645325430040051877385246129218689827303693082028114649895170268025536203659182534807356754897440828395864625952454001006610690805181049682837141564865671502899010681398949442172087250377345152972851668566343078241035887377213426798941972734558258487270161999302014898279050055273837927777052200397382167679159403279755263498800710750922733847855801916149068149047423382357088454634440767780972546718415113427167648165472120206216748854478428717909652557531962101340723266734274679990199168717474834405746212594478893143612350183920475703019895469530372644500556109051402792124573360246060352194588278889327235246848103938849842268018821377470994180856132946604527716017067397619707466224991940280352553135341927712416296417638537784436645699259150216791945117333400739727209318480997880822130845896003489895604246874328850845546239226742660308057074951369970825564489985432776540787832008196892295802368097531465244957586044703528528738785038667033058091498368334743581710429839066225270822207832987531274032970405863246427680028521209606158243446309134112370041977012199419707673432763755905426198724803242034027955698489489325994509379722205299683480805708868630680004251887488228316000961766704941754106047850067767508351986650750052304522886719063542446249464225961266744156707369218604692132594089367608893917983061995387403183068129362195196494570003255186271709021525075468642253240359087308691669950510556626187170754828684522245146253956731735251561843986631331900703750205376702295641383013642194824277495254657318256981047274456113885108008056835960396836005458524770945328041104960392093427224410525810232504507607229917095992716535215209362669081341399148279115264571315108072670640579608675793918640282063233898327557099408454995368087740363956931789850329588177902760510814671213975559536991514620110705195804055375414016713336901172202143291575046561858553587693591756542970028558315571439284835547887145638987803030324799284099584480953651848185212928855875124892440823882045589796012835362165005397484886315857349493298565017149097698360328012908307819627037815174959187792229468333429428753929053235612001047982711140569708912877277205971048839606538949288207924128967407680959541743393977239606035226964664473556044236564191812501829987110322498183256312939872807428550475975894919188857895749552465894668769114384169639681617882469088607942999561878264362702763518699890677331596641418121498881182576989855137086520386940641978532926361443266581804763784363544600270449434318558356890381623148869655056779990638365604427364673787316422958212871973630159263045583663813260026668030757829510994067678591899723692443634250983784631080241277499366294361060627285439430124071589672674508844464505325668117419167902040996442480554862350143193881975741919860595340791290017253351952487810043315108203230127274681006120468317259754526411053785621091083164227841357095999042653957453217970950823868210316790074655461582757146461658238438718443805686175069364067013130041321331471263225242340287705831548933078499354458794944033664601087785702349200750603663489538981491370219935475387894640606721182532334617239998136420295448586086741199284856171007501360347536765081156316866718863799277405697664379281562627025003182114696401062015436942044758739814033638241039382617235768923616347920301478624584855790775968537507537609409155919640476196251365076363241861289543151150441572531517286092392962095286098569824584863009235301338602385839978682914999943097323735410104864365645424970771767334179801278690352912774391745876163465963994669705355389551301621730583369200388172931484221917342297989633839970139516166340100136513477450917658151488025697256414236410202621155657063478576625996515708845289586628858883539461714321081683475512104137971829857617516209325368887544406067776730036051971733422341847879062603981842668041538441279054034720434521628650748477509737375991362188824518814161195541634866474178485409006524460629621534725280521441709887813980131726294715177544343822505336068470098519599271854355846108765975906980959840243473154800752284325400984232425652589338131540652406195909604656120867684652934577967180371915824791932279229190915823945034075611785036077999678405080217421672888513121807326461076749529484562464405153832643707558705897906492889135831461604980364322703317853885077016153025514813769195978838191269841068779142987001281173353219101282661866109923652239234273815992084347947740267214298725991992842175722037834559374423270269395150342582568002277758051614906559812806250500145328529967005371678290414615559836334662057716450642054118680197488797131551944676091452656585340130866837964523639358840931263708878159548362602977459069632318019932207061808977329250843574589578508069533166678958065283990840432730872053933497656492128871453612800620292108290428432649652530453821965033583505134536504880026711692856760234193138735994164790552194376286607985290185510702133143567008828741406896917807041189881215936836489422408639971831636500444924080396355931374762446415983470270787125875942648549798553807696220618618217183810173336379574024588123144149522998606078855147372845685641711755092125747227015921381836935710263252613781857293734329217700784868890524018175288411379040311145456443135938093877527496721961092766589826151328636465541025735453148886196357607958140026487312836006081642043771873367531375590567208174161686730175927845981398576682098020831864405261396971635223450009325008400517191868943697308629579069304739751868916686715756976628258702181348387861989870565522728297217294180603049812800129915452468609671928752639700392853359032593302277573178007018425941856360077512318316379303712863906180370339709585535925135323501995554777330555631895780805359924232684970728181881622510250609847703350714095952456396689408381163726652900164811819621809090897519511566856085803400671433751251767028227535191307748862036016142756641775779800060550567778053962033799573801070780935613533479682037489238203072628600490523562853477657532168081235681734281172681209065615836099168863493999020530619056553826712626243795631107011803733339831919955934551671428536151365217482564553028568053442069164341555841988540848115747449783104108083816405500935335719489295348470118828387437435900187470474949181916731002168095101228502290039605472350135390787352098942762600450058503107401405403481102512169019800610080203728710698520208479174869435296477961387611926059715519159213213276701062985321532828833388801764584563008018792297923981254427344220417403693264849496216284122557051205975849301339251102015687371971223527743467367002590597744440437715438905025910032139846555670350959288332620324317946251999169893189699279785832742343060811025097058679972480195222594378436589076148080977927599473183533348362991885396361869050016898273118424298778809344530926389685300279513694776479437635899254053095796067247266311809612047011921638996060283626085292043401737048951517627996989903444201797064877376208192829190564845607595140597240547150233040893304004378850032801086208304786841445214083287052279186382245630522561685424437467929913210926032437174790596493515576719748673363776865002524044200975474794357735899725958085267494344630578969663819815962957181560842453362798950664282006231115242971323375534099798306235609095528850800993366835728395962545897691099546996176286784591716799961362015094055184634685781692231341110690564030415516767363195299963336859257132274444641901816096192419124113721616557291247069892022780417027995472255923984194081338149290080385354584934397841654747895298958315837712389701448623832215627895867283554672878390011474519170820662267581664949487287628036053906588487017798221249077490940967230264678391911418286301761751708683782234399903044047209223836289136643385248880274761480698232822793449300940964840050259271654076661862179649229881874783104102747763198195000112708874081303822369708541496102709039931539568854761368237061309409138629893890039039432955323684852518232480310381634031917214372613919863644565139649085405818757328529930475671401466122067093616536126265220586192689304874688772838050290091013177218932823075904968233410795947395691226296589716579017754541754873249353475843000335537482152278776694229419529166208378292681644618266516939276940025119884567048186284067445816677019859508137292278245523622784929298194496650451167703344475079513431317130099065441759540730155608579394306315969560385217625187278720556468283360960472366165157095033776880685387094734922975780137857746006012524321678205836378869609677924047478863023277045189618881089767521976369723974582272173954165319109298359618041021580595186432908736464863721123466869739018724087228633348298616628673807937562394148243480885011931797552720097270258991891544701949631340222220012517676545698954611353581492485329556355376663313428780812089431811265511963184367128926842909766140879758365040489726149649537738918361411438998019669417224710961160214074124175983617535643248290754311964385934755785893170359783941742631066195507771797309003893791432915575987334363569183543564523379488399742098268346133800463729913347504893324379676222012307060950052979882499511433980376361595412941437374159198874288406063236734802527442255382825600242203890310090878789914785375059012006419446392649780463249955080228216916700553303921993543911914263208347780453371733507542267178533195334992384358250796420533686251468940428833182544016031395650253867478469296679716905279261463430525765458455748595849761960565367450828965664571309106427748292165625181824347360615348250463276027378825343932841223755208320549405455255804722551406075768019664372856202419149582420204107749961480913258885291381471515913142596314609990354502562284370199137946912869226373317551953457402766290690534875997371530539094152195939083948385916403223310957152589178751288423644746941979380767113374305736103088614117192295844593113139572190476461067644171115198404346383634166475778548768530406122682553502827060077315793952934848965004971171795476581281832909409353940144788456032593473242271798961678764368511451103261256695388284139401715641032941146913610710005818366005929636672570027417844666479335116937269007700829090858086538943900280682474564101616875941494337657432252837421162316131450093510579793838261975705006822489626967318913991487837750303321325310557277196666347026471338164153970774638399712239737099363547260251733950143241292761161531808282743268970054795045956187653594979568269009569262111314690230989154396078110238437722288123399023298460131115799513150962837778468547845754088706141914996347440191093449681079570693734641312825342700380545630229727201461678943686242677368225541587960634438226628770690208224802739783927875319444075732127604818426135924886151837371213144017095731179603451994699785419468935136223116606540264661997122756856652097869495647040938048781852017445929989058303297486227325476528071996074710224025775586296657988180182204041917915536888683602401105124216473927642644737513803833884281748771664854477092605448018869688382394361522457017348581483176424531467193578511035460260653607564660023028407906257604993041779186331070344898796554582931638953417522483583968234259478229222403073340200982036587771414060949276262087442026952233144110761003479293641089960396465212282723600907690140862977146967821301836421193186474796483360509050737198628095665539300944163577396728009819900241120891430356395016348761260873022398029925698177785669293393583875133073960223330109137988108533925051478701199687026980220633646907279606917774756890095301449161717378310266060261397920027979034043089927816901399139530841423864412235897089886814547386742362654014376663544081975866662705468465414399398915155598810170662184859334341840970323481987287305811321380398293352818447920353979685109007312331255788815928040864894328740487817736640747929176805853664999612414836789544423333785704211175995473884158701097027669869481149516598642509063496672253300705319195239196759614335662760905987003115004379805413121587819013764937776864556726077412748516142438434322932656058161897679723943850476129707232648112106393718908029663463223189217959666728695768605309506216522439514201160605051886518298614200805028413554815391874073648385497666814603053231901304341629683817070835973906378217509136083760796032758038995206712698111553590564918802800814873241804297223995536093688555496577660581826130009803905126390807736273353641683587388057913394351638640080446484197562728534934572879029011374467056651998605680526408075613354286483074599722802936021833770360294952784408744068902528610328980348743666011481774909940342476560557690989973681531789751488380514520532688832713010280652021836499286627694489786412762159605147251064999024370517415336330270644065702265485422514270787163800757101498495741137181966697161862038755003157723148755855626838503765800683441979672022137809321592799585880958862649683117520992024989756383168348434386900356226337290895153519419232352181546459776963762801548760380349055442905370455653425944682628165369686190581035215979761081329400995104735317372483465274116936092937542041467894496083208425941709520471205168014617876826455504204120758205816361667019893344878084449048135945688863507104880113439333654076405258016962874662785390177836926676503049700012501471909344549266506237425045543452563109871044281277421642377010912922577053936276833153576888496902356851977934051089234714429606760892006469015698712073361957293852514327503668694702779036103172902184373035535136699450322607040510277985646065885995803213997134688307206577449207846785244909422399636519605651149559022354105346984333308664480474847143877598198488239475054115421720254760368802576263062032275614362365313606805441086433464341958125783931541231507616374214776810326314955901910587252425967861854376484618710789946600678977565149508294819601648087059767920809177694737860903969263001098006210701435686069398442191216183615970799922192373371759573013798219172748002238368874990256660877619956139218457412939072892227255715003526980229514457563663857804643031560049825911657956626773738329937779499701134866201237348925233430758656898160537088384306834804455939902818989589151188294044923982053634801415749211232675235245702209602424221871924796843157992842220671770645793263623362604411467538128706093373478532476710318118509376757096264474489044010047031016947727531189443947753992480514565165563936318246469464493446895654784337999871232311937781455198694550899501457693509389973827651096958254448707620014000762286857939047019953827519387124653138155553685676870386608312318074859466313839437041687681626755382850879125162821421815631391917525747995544689344737359409149617099177977514354265476465385774307902770577525847049956772082635762744892156201148122567850934547919392818034695330249652792247908770908873105988686839279134031997194741950820904522826584507817403445440041434558953547800793857359721028598985209965358308542259796659517420417983236038785971998737409496705621564737849190927200201722042922030323820173459510262862256963053458181153405730255738471522078027324249156527590766192847942506354459071738629455085695035542660031494590431157269879853021348376186981340372188686667158240108072070522533148071308901259673860138534856736328141204201354873578239932090918355386415949682020851057295849733898744277951822666447265337915296594626396812249212867469555278126392421319319390321617341000984739554950558826733861194392514243585307332485391599709469196346666635531876649219971229462518899159786514314096011419117606295575332619566822505041902044878476306047466952080490294003249850535020769881197022760647707754529777537686528359956912805172977601330883111621561904332894309657017626042012674995905911717481406400889344312728907495889399603032167512854196638979362965412883980373645924741594911992114514313287678925955984569101997017655115297710567724601649994131038355573385249978696902207014100597935635504752977821076138000035247890497717361865281763449260269582451868064807687613565079474720839655405233009860060949382176035222832897729702581566924275436851045978010733275071479953559891777879629071739279800312900602244633750169295961749946721416438353940066318009363671699785001632719979543764916552005076561634565732898624587484393552519473437439021721103942451428995133853162399531907566684551985093844414483601650787433709875576165649285240806861273372317192231185180386581947194954020572359523244818399305292737718787158603869435391066204239058084263076993481866359922007054031417049469103372713207076665884988969660463046804802215513539102744738399728704409046977603331836615863655372163150887985864826577454796694134828122059788812077967055147256126705249894404992425517875546608088537288270437759941812146558863742334786661227142529838642790395460316903848326323943971208343661175070556375272890149114364470191969292836323899616774592778254294107557287087445443200505261798086334138633206712173906372635729910429860504308818919263259525635543622696965702845516679279254994881718211092995267944628399937954499328120709710895867138050591728942972417252957638155171278233941847551628117974060667640730573548712900209075378296221628330011446474366717989168763284068114479024101599381288203616828683382560424634178219916534917203180171916633539173695491205803407857363908321931368939580675350026441616715894694934149221274595816942028593692305616576540712236800910273048620140331996898996319660094688063246741307152547441217788601020102232116299198780195624238155088595812204827906257979354941866038102562809027853630817600762027854162762308037533149127307176780850475551569127925306462575945528516172492462907141555584506203285707536726168180625379240327360808656496817075205964544278181350425017359123278728890223297051159565775582640912282015822478120479817287136859106726619238065828364977583398152615332759482575572480340601734025434482664023470277138454970829334812462347720586670893547283534061705113247332863221590862250712159778035921064395907754812572692736277151724801693104578250836156473788414193169029842788297654406155688891322725221889181914281933995988409520987292894439852152604992343896058595044991321844462336840562435971532233576328735010618359683189224321029091342188840699374849260033861012752328324412339938924564900196052945042645787391923061258109644228761687683593150789289120754725334806157433901894777435472587299162575400044431874742936948081520055845215945959796110187706523009728850203121807371051513299284674579496969156603047844361877652307897411262892471492576285145288949645107361607966005830549531871831410847295138778833689168723641247989102319957441290484888717792859389364521597804780477559573834564241467796757066600001148170403826198625237509187764118504246942289081961769343913462789462023082541555697119847383124324603645160645831036064221242088366571093398745169902028289819558874899344789893041602548105964810705821293328468549519789432835253243115619261972437179321355655247051054624184678845403731282485875112381792156573892869523365881559937840653688019499522935789212180769000044537955569515835410391679755896402389584096500401958208158860784205216052779478851541153252094143426710865751544763191300314980130724341681423360086346447015135831826074833702447420763272616323871699003456754273442621104874642797476200864223528526242959539975143656964162049225949723506756289516243273518466507109385836926713090387342698418438514093938574282950781450186972025574196055453724975581248453121552837374793379913657217764119390408300666057938612488105779441206479255696459252794626782686116283878547894840382952042715789555875459107173887223161253175779588333132339286385751917122719991243495397661663826880880938138517269659396142618910429670712846081539859182317437002028562128032583230393269955498648552533474448789440252987993285163530944765693267891576117013064241221767769039216695035001473078208382180498003134041979662366246031353506671531561800174587801104130635377893579420432790177581862840547367951137833842032853390489053141945011786610785697495840293906204767624249892705197007946299969615255863931663116553876872968170297466191437381458034175331626283667287290214105262729839481639016525704995068911306252123413567044843253018641173605333413533177994025838039838360289363963776222648047444486020577612667267941611226942712918401885709435222426021370883979380254949751125746966466211984726647910996867891708968486289683570692328969279766074858005246270689092792280635622889884464301119787925700198816131950783718836385347723479326076776954679691501143430889718138040731740543962785583471433821215536230578805015099902051245177739410404234124660672539462115558322615887092977160442943066542468732654405948016823557607863942038651363731789409971826567943117914127212812767020178988531808101043746866556132342084202607691823413922600146765015378023099386747110432085836431114880726058742971815727359777881265773195914620691496355127566464670101313137716007516568588670536188127773885873358678972392745126075514669978395048561454622096486591403669639827961907967622667265946058301605203907128205735727744749999314012041065438990306900661986551377097872180152454306606843115875952197982543651177718140393235199877745531684258033851664709370712034686666465074557508734395167548987720887420483958679053761605328772157139182771488290856406223608875436842756998344197651514735505544578245841038434580193690194919908260902008991803070067689527041179926820855889973050069576908886101023888512900031011740366010203128486655331748690419129777821625034781603592752584292134569948451634438284705010929552909302522559721064563060268193996531722710378070790837251280775089175019862747225221485823047006937621095426710373287926873688478110613879738109000915360566979133786520754740030267828488868922585459143123505508871669160625861793036437826834248136814799245706911721990936208600192300962751789395783282803773798219292209395844023764590036641459328708583062763000311204996946448426203808066390460447801571333954601066466071389728173621854084373509981487213791281485737798976439196348189862520798567458446258670007614733327321111069056026437554837117350395976856398102304316072866604146702068761719764799742972422563772089777611818123441541189484444759776759946485247872218330534471718751486116765833625906972807762286402399345221878465268728635897317622564639868403894511790411362726828150539850313678896411580433356076079027661184848811872793319716697746620714474627494328074076549140095464265360351521277518634187177594168864447360956637874971292501337671636424891295656317913289450984105697320765000878639916601961396413431545000857426362665433814959878591722835909699095131248581586512565868227231636080345454566116773019512497248806194370463189962472801306939957709083956961532849921424206913548611985833367083593426813001148345853476025006329677074602346178617217986425046484719304112683141577229585881374338357320428760094492338793422286132087935702063714918157890306910306483941273531433492691645990511783352455033958495301146107961771825231735151428209008994528048472798368292523836888932081749105118240570852939409973653394979015626863720607665314336403043688459132867721958778088729963785862847599763259948861935141774043102688171492927672855974397096509857678661368997726256971048883971407827585953905608566404051063980477975096811011191132110655735185179969871800010323750490801844145167684114091260091588877758320113752964684482489625947106638056899716113578469741016331655789768736022218421296262553361400582864290708144619140731112852108030101516243291592284137259785014143935272356303691015651871897172659822969286201266309857883370392127693517080719330568969624665450844512540996549584664567533420936327309907151596684378670484052953149067723479766983979392334666354994078779491648714852579673018554394220806898696182545782954467112639161837995529531932351570181889620480560744962365809964949720397223430561374163433289171674327481643639607221415635620925158253662724050475555282745050408274192835227775403453277303545156224419334402469550415488069538745091512688668543348723572626109790728597667251757464461826102193808363347862953911136877157335752533772657836449015490880926012436704626799484733657309435652974485777969556254159037583345699450752017244783750995020898906350358861706428817502927157248936793683376608307391878758969105587820228362958785457476250473672481777926607646534642772442117323219862896266637601318635474920574290274647859725227346013444813930166138460230997697744032512917405825731680487221746900733944094545808766427139794037656230540509650682149100088319998669521120128655843783808824101252948166918876130273563185416766594612734011581196099953449784122637851295775876429714569987425235245995640043935342796973851409200474915508092821281726059196499211103350820218576324805124923827141245368738270731525936158102432985090700361034855723861519010113827326769131487271305456838649918153724014301278455407580680628993819349274068151934703962782002145086669309926255772747791970007057140365316586310701936852502760984554553408539007682912037212954493407282189496018450684076043096002561202017743009995910788849218525709312804217158859709593107115032856400108219538926626367165775182948910158513184275928015673671985699107534917661869000616359879512048571960185634558162034171054496087585809126780042020984604423968042278181055937576040555539687822848767395311388378159766099495533553509548283121637865458942490881006719606831455041990731004652550082228069029451666987538553834161602001014802161362651565063194884531487787200917273276866503717703970387460250326490065513902112638134337474029089951759797097837358876599715163137806203836703286957863560781846970995144132388515898429486995826225425573339327454666061755954336170290001254057621929150656179694564063626658191891469123028787396656502751363469232348169495070312850992323271517739775126339820986021622278340383515695208846810013984173390192226382495883760755223898817461906078076804010988864537456874122462571644600716073718768654159101815343018033448146397230582486865199605881093495031347302254895157010450783398932493223802156584797413500064290459781197486903690467002870451431003218319874748803303011022633713612074942344108914388641056731431871843177393097093599673917197176006924008000826533227339380800950093411194234625894078865615475061543805386134761042983141230948861302744470087515595072100758634114502543423653480710891017966784046777360718725896114194192532587178122033689297264750846441107796708683155065031735234696498555363262586216164932761565899295760215276827908896365070412730534638921553809998379778517517180651681670249084327481087671469250186476693790715477263235942689944048253765141627112512380597937850575589546916142195477211283047403926774106156623912759559079355659765435905456722700497591182349610262343046724608782950098935007377626104705778720051546864634488867820637136281367363440059862987057838823567429912046974878556276952939965107611316414506101843126503111988510606168258005763615095060162309654197784422741627441766167895524170794214786771728197484952330159414529657297215649659315417461582062221617717130347634938722402273165107723464233282731254784127535839317548519768463103705332916398562290117654385390543305300116043786448080599898860467402141440562884518264743472480074185514487356538263255023104934491398946237858230108705075406142172402310780075958339402094474138516746182094243542940662390671369010016816585405630853837898513576570154961366122192363737006145227189817678669938362508387665899244340359382688879832851779787156689694782701777123955458183319415135815044091425504304203124297071478275663463668361853613875538346982133373933153530190852480301814061576628413052843003446559969108311140953740355707768457510500597761341129839685285750523541850232411764221836366197974799752420910816837000069708397050678266125015058784468318888427996377503998503387172734749172512403065721261735862774125103011062136856047941615388783579808585122073102894986742460923495186400129594655566853597762634821991837352019406171943386628179410235937491214234924798983926890356949658940177139826636394598726535872583673760504395565902308922564667445393229946826178704157932219883387054264784907363545383579555700261619865592657888163910413190484221568731379017449671007216629680430547002396180682377391318523845212419364614895177274274608812877617120904887616712873213623296481893303582338862058767043132470103328176756849319509540911573765247919993679901690536694388244577887089501767537683862823338953517993372641140371746890410274709191807598412842757679742629286151675055584391315761192707734728890487808486250824252161276811616242666072505751561689736044025946651746447789898695423695390914791192390391674790771309772952639326225576718377316924985710907479375203811256566179387988667318004929600767332863052292037881064701371779435895936369155958738878904933941413873319290936903829536907743768554138930156056740656600090055533241964151790228180188813011216938143399334006194601564554443566147248766511833840844877406102002498785019575015835062139922183548445245999513863941446445192570583939408336099529117288234197397187455829788441845520372980395319933343311812708261941472515577847101959476868216981218269306710806028525125606802020616362073317841604050774041765476432521976780339337534612110576019997202560404401912046247040031150214242489733693501268357734333970291438955853206028772282432248214065017193514233518330426479288712671000947672282406732055416815928395132256522457874781890713956838207419870540509808825186439026031248783578008202661573390062217103810194041796917468456740861697661268315951879742224735775427457194751417350283284810184375491900012715492345695277306206106548619033514235512188207255730154158599858455234618656953782126432454699745116337866868029173389414134962556734471638683764798600638594455228688645960981683401601970965826680518922378822691277031877934233610117482845024786521344794837879824046623487764227659395717547906910031043086465880839847610331774651890536695917704314333859015252198668239505130033075534678617910508238077675152357186170028269753420264786133619171093906911524665921954875473117684374249566151700166170354939718673041758142577271979013547886952246112046974563429594328197593739092323246298302149085809989725908785196420284855108470328624887570176198642668662182855712601868929689722260780109932501403361113331985011011843441324789983376834600192760585188138017352159435740923643841709284333384178274650308621652204726006295710491120856575157020980121630742653912706098145180705158219017036157740201216879049794536089415616766851425493704843354908860154378176021968241726587081866262222984299693686593255062009131129706197353409715560038927072121569862734883978308822540248281724215707311412844011671347520532566318032996439416956953262539841188308668469332138466196383552685268184017733116216634037834160355740720601186256928046592434484515910109557323397431975411802468369720054026670818562235907191675007234842911741986972798181779172483826115030316234688049122711713316140673397383030779180591729003100116499765789780180141463459561055217465915950976566086449407247805201658270199481335307197676565954490993161090060919164638537602077691895844303186953299760880026260672074681082621800302841136098034059368115570300745950958650276241900121116992279287146819294149210402645040153111349892096659966179013564342899251676148374137967483330805084450504740985886537406556021752783751494510204144834763922455136449927085899048762335225406720637275243191778079206152342436209561828394308731909862069861590607901860715576378990537387699614291125124558475926361340962140687869111409832448353671763854387120592085594178608774981862437739644492633940411720842490846077613729917019707987340663217112424977426449139491679638810004590596275730824808583668548807225119081770820913149962620929666694921666643270603510151511918315571966051107443270175253143535100583937229437694671498989402853934695372389368804601203152256033923776855975332544163763395849537359849622564645278883564869592016026046230353897003141664955937721253640266461501768853043283605178655032566235013100693770186958032236446065017472974120945907442326758027440824429484399603455346268630211472383407268950238052211337184373170875419478564349990675452996971918184636936247843932674123031860895857098690484712602498107112600167257952861997453309712471894350713202505563222542864974891380113047787129566731001929505246175471885920543722909440382452889119592560562393406563224377090066665355102123320887459028476919110050109553103706192098917489058496955951955788010675190037861301725355146631649227108765504736845077277010808084249472872498993630565643974320339289266306186128961082037842276003271930653965286331803338051626068011362489615391126202312183080927128044927836649274986514837462789652319033916622824620916157177785747629883822933950009437166055206127296107883352119992902369254760404424580909682784642937278945907844916848262886707658990017876962741403254578558739750333840879024019016777651883194199621933358755605346959391377796147284081790815692070654744967940027244211401707310500115478998291884880955859735907795347541182706514360665363596968451347389138204075739356500214383794504618536466422446940426096696942424332368893954529519113451147591028654304339987970262585009440297979605248447884239420471599305710575923348681022816945206330677572722945145161760248332236274538737696420957377879868602837511312995845261155525931087820239533428418944010669046486928202127141310203961678724337423208772055402131569636718079431763417168461172848587400593796760106851025606576787879108654472444820395439900970743118148360800019541400100825642842931628439719765541144692542218150540343040897266709478912256888278664802950797120850705296312209201529881489785867828628954913452476745460310896420302437378214130259230463358821521093190316481130371288485107343851359933442289456635233901989196429748500135239529111443355943752866348286176841687922004762792807628983119459351918875359501447786544270155066535446295835454147496715092279805021367117604584894909587553055139266663177446097729811934013786981004989137614318316784543371815479841820165332799662269655198745813452925087559586841054628451550174920341292889693041592214588442449078743933632731072291106511759817664712975781621925849821119194974968513699692604812457514483784261683350543499529312636463250995739887378757919374055930716745918451163280175717669026729716129754930380369232616117582900029287177424359215458233091817646452017502231253801775518796431596398932850992552443541307173627599023164980402155516994829997187065737278938046890227409830021819139605700889595066506867403564100941348729424132812028061812132104851272114530892497775504420722794577975966698548232745407617992466983427369111080947364148366497405076795885758855439819356097134890761147858053535166649479363459810889896318090636922422296175847425142228690583589666824176982136810700271250858835676678603593649904352904082678889348363382622656241801811925849998434761747685328715512400866677457686288141554949831314425211613135996182483425426735104780678076696759996879854826442194278016780135847614951843022229261953556908146831430525265978892885632645098621767761494715135872553010598832185181837432541525396964404741236401048808262213982020117216556442151599138857791079627816886238007412208388034806010933719675597999122514116340010282103189402674866002838912249403132016709590733474272788077334785039965409094163704709283129595965746446408444160182013336933963514237333827880030031404875306061304963479571961983407914448886038165513987219878703140460067987855739206665467339848296572371516981567151548185591608914126102641232501818470709915318655970016653155924527657414795184328891155968658055767248444974702668017757531477112506658425263153711318218426552615372117559860841982276874373132420329693269659103230953437829249412474470250806656297800784303000905526302876395477441390309276291297660852201350539554635552413152314143311397535703679515360905555941181689910425702185282536203744704033657993292656373760047802653098919036734122950911545413249181599947734619785670215353720564918528298730288976194993681175617166420695346936980627204657374998297994504924562542315647264719372438284144042170962516801108033719965037310022516063486992392157577858019414299473553450235972070640116246219474251577250710015878912446267726388788000685494872751748780212968027654568752749482290573993187444906023036660201357306181769066885038978943203920942214628457046405158914973958634956264142716111709779539762318750407376727646470015288336955467934023655099454135960515650467545110764254171509150964601440741609166538455024546244447297394575222458067133982009245629833900299467255002755883577409210090532855660269491346154617989986651517824503537558236760502025213646582615466424452209290310112259669475707736150236673485335257191169182973849300616553976445429030179724680790105114482343162019566249687299384737971232218472740654817348100673907853898810303551088704288880945808702724663582892571719645687476799386880883475362838791090029747875442879889065617446797927595189452127917525236286583989386311421258154084885123004521781896041697520322236816484518976052668081115880375517500959648302098051063085350185246023439320770875036033462689472109362451633323689565749204757626226012399204279437008459322149203244441442541922628812256104642139794757210017845288070637444927092709017600321112821209265591429970134816812168711708356212759907139718948708163263907952194023097811854348862685857385115062893750121525743459872715441265300260904116127587052658267121481008116140778062227176320684303820729165759895409054664703300552217083514938755502351321654890731621726553829745358784665243653499896930567506767877133069216093708078314380262033644173658115905764481465795532483407672367915296357642598058506589180163441224468677249018688177113658734009309840649084697386081615610637010393166381091255981840458940264916019507776810168912839268820324625987293347581478678642431286105157610396403927796422028420727068008248277053501118534641336013694624651323010854585876171927862933004914447512590975194709272965539697911176874432789174363183234514158202874472025120740330808628573036596078635474343520956391172813931343658991378703994700892903014203280084216038353651811239709327381824487055645345454061041566280820477099942099255850135543503411739179008590380056244932418081515214778734164685690723430434989951864238699590598777733732792229637364794395840407225887874879630076114822447301708654221633493309430645920147999984624149225628336564453642101398346045156571920073253786105027099141582699397978180245165729740022956422240850402151473307122055123223930624969999340952585239018951897666434455749846816356297089971166281181182109209037387226474007237719586240177373384701870789117979853947707305278737905498130224484960350955411479296951246422480997290997264537475084074786022681402716599303830440229253697533016279832937109240674890818910829748365430967183696285338807077310965358333595404611285454745222357900648027842748335680603271335053552265953005262766071609337894802027487193934697371829094622305895484185358294727621223988548805743037063637545295740147275464605946347917690238039482155998863045692505138464742487447635348145561462994326838204662144360178531994749791354597622956402429517122973203263797834826894505576568675597194628560847199190287474975125542861212273917753618487715389976651027214307225250626079469702220737076500568466254435612294496637844394172104953733974940374575160121472949455171742169697211256915253752312788674111375477259840232528728956050858476744094786187611456991065305440062154694690173689548092789563788574809895147014179128074697243221809332280517664190338796567477169154200921548657053686957738867011910046012444076915064921960055567542406832608310022934610655922371749432223450879132497667993990917026257726451642785248858356065693567333287627337879720594338034071837642555777166644260361246948797880576165393555484072325049071774757439296115360927511531756141792015569575758794059041249981940421430672650688581552806471413614352042661177604916572138006258071352442190952820847886524127127807779940284362581846497633102251984835087635637211100231521398733469892941014933442427960614307955386400919396417387574422056795716256666721981100696115794715778297660754256168049025815551104788552162839693394995480209454013778996086273983340617205511952936545365260667705962211805933733326537697799751022430763841299124364606968214790711054248478935478418339273239658703691003854885640864003775883615055540250012428063826529415835894850737975456033737538431553676874651437417264532570097369804698430186131294428094056737023672723485063317466455073169655196653738076435718718662998554684084580253875435695209886342124142057334318314376552230668013126396643313273172342530513511540439163487953880431197649916899324335105929043467818280428348193120596928868466341179676023701816572159035473452923387680558595748452347682362688139556212590866803960228546102999162966779778194923391816353143516397305747322781520598723925823925890686393419392760248487427897096274402038962186533644389567793126568346916855425577550017560034494696421198613629504218805906144050617272245691458727187318747209866170346150195791566961136737430314469111029656363259470972122062862646588187168076544257444301403963427033465325729669980225181153404930402035670639555019867347467999664233149833985311440334215388833778093070297656858973597270422989685331282932243903554984444363488786883489830414381226741176512948220062102364278234174536538282028170110218131625457816841136299136895822950340282760704563715330661830380407560023700875512846057577238169230952756611187350812059998759427369732572803456753595023548666355183436269940719321632106757782387580102922303553934094516733875767664790243407404971162023613825390027279238725752250963578689719766414309938974519568464630432138716176127640464062040779083214259807236476674712162809219145670552285120181978140169811745778116063533592085052591256943665661686818158823160317076195987001198725578285114187580543565876674010746567942150329700424863890782233269612181535245088528033333360584290037984859715338026661436711471157480397201916319714208839802653745084692867805852160981526101664983735103812491860952172300205451060141548774259589857661330031186285956519235237474028157605131698265366767133581226537195311841849496422568516936034245769374235073319971984733151907109111651927369804630483887749034032105613468979291643578931650730388835654160189771311180300086007814415804953650238022463502992607501936456491281147582758739260534100454833678225960228292269580648027921598863874699586502486995665074991868261579807402419900140318994286646937076022429136638267924544885938028441159224667910468808631118280374487092446688586613039846130503120163284076350644400671998761645006903038951600961019768097369997843233374968212146320382409029906584273717009453599096874197372259986744134957828163555873676241535939767025371072575110029146949019512769579164218828282963036702945969087965888295895080870107684413728020346080398966954321338276766397062693761178007654717507797210760270317723598626891724931816498308415232001653001646667829544580267874248123072826805125717554004706162536581093006654159950244235593132385508183522079949411603950127320431843243392588324335621512901119624649323707677225055136973005702313470886591938433378694226166579024025088663580863924953010605222768845442492740992522334391337424362180131284972764385356880925145869812861878201916566696342396460523822065917137725779243897763201637115357677186391649380685131658333207153948938080033346136582807886962041451820613221089582303063350548046390795599543909629641597413484225102086688398412435132765638591845262530101472022227979779457046965396631686561823681527769220077152255632228760652609231275592027507960062673145730587928519920105334467093728924692845251141615668045961003065383864731477648184145386859094780883329011682596066064547694702548349848508334551664771642576145448732253182695670906775437476581091137115032558614746240365662230376950637030013662710373451809272756748369308864901014668275474305613309168965514658308515709903604789965191621337079384895650181541902560526123696557302770458479422116830754472181055652458633571407981811405421212433292369927685422608790752534372966886716433301077558264333392655556798249544177599704245014001745541406328966486418672836640469959763622496768707141962015923583331493233172056943347785854008550143283990054308419109276581889608601626182463072663915993610587785434928527194315956210728197549087734578703229065376769695705016910628307037812929276513299043653825518282242083274386426181481610644721165577568541811536714755442396178344289236790470601832401812641202493169766729406789931297303240230575506924904074736803762413333839784974514937222212764262778129617779576133507955854731563184098566617205984964749080003756898870885669814061242535807260063579398016597878950820471947380096280688967310285418596261753159970360662503235001028040222278110053993222847118760265888061730186359131974328261082717149808019297242014286930592953491494246085239657299076165360790166691900766994673497087216892842664523803508562082854870658219168426368260172546148266996267844879721213570020822302039958166554239405006325344260922423700250032607804048649091948539574835705466135394378817858788497496778075694764359732880508279950802317188936101565780542594042136915554992480762881531082869644029476906207982188412027125730081436819211684168911304932660913513341352642469407411523813755615711734417638174520888416326426230934348144908270102471426190328946299376055878622682673566542809312395111826649445779416708923233137646850718087891459792964289969729151905413660263997273170967536134722289333625840281416800547622493669141161803309942061080224850671746680980047528445755260173496219176273307696403526861505789679096931530803275295595559649840006752270864816565000173232568426024209492976262243173438631654826081662626175660068098134843364928931771997770803503782924166790557819515917283137891772748309084664804454322556923892202409300869491028797016074483597077415664066118346993551982858946760793039586955038523474263670528993555946094669202846956183622284278127647244578686491672210375729161649893006756659610200991478308045213586755168177234955103744178021874014706275074251146150507926595407891961297831216187823215263515229211955777398253304278879636025741704407155193578963772015499699695977298794357894268658780113646746704061952296985749154379477610337257526341545941615771327816333088703496499725954239160751186931196052777551823265561723344004531901261437429388809203503107087330160637368882045611456049447888156573598218089691814916682988341942942166436519251853564664942927697124804926230646431316450488933377817201660237163872852349784651832722337048468440530964764443525180767359689569321803096550173582380215166753879133622312718788003419939899807010766267677971700199235136141587457076303245031790869810920376421197593958500303891622741904703638472663138997022686331460304114581391023143266712145252673063645392665392841306336617598366398807918259976932132920631724108030017579122626510090312884229598276490515416801534880900695263411131475976772395126727051199263727500764070960716649793167173428189980012650166717824742493793800757605953707583998604909620154810271781832713077876786833246698775756767522939889790317302962248403541218338629233708019546106050703013741228907728301028361664546997016748452842061699839712899326588601972522437746515955537107619756636604633980098116104414842167114623278765380066942392476811483534071643828678109592636943131731733058736955302332003353171541830946907540722748657440718274124087638540199525718841174304040513536218366829937844923566218412105667515371109053828303076554460248631002064055761280472836256324413239893809394934174267528413198986572818835567036709885457568039131376498917798917537952775973999293168709477591677202257728214562346441861167192832873930834515823075680755164966182901539825324457545100516152136910817580000365783769593853087402672009914181426328611018653994305845288922992214630545571972114199783391422786173887724681214700103345359744376933280317262456342375790683589884625362740084380478917636143799064118591674588104463670768664914571854842414067964610199748430282637137006027429335963919821611141660475595196029107207121748679617093568874470414383200666589672683532661606020471178574471418701954076884514699638765457968741101682753780015763760485426652595793684778505071016924371966881263862418790281463225009060872893389352109443637704529146489692933619946383427180527460480316611191858726624403649209730726402785392937151378013302774719607288406967423845936949452475106963558517398017752432323781833512597836134161327837614026871246963927014537498609306792019159419710929501641697445110705468320291033833398451505896151422130985320223134408060845651320134984748388434447469822148553499232199100449454787010023016325731703210262349324396171093801209909836808518935247089535519716634925881754800991297534797203917305177488744455889413474849445016094780032869864847113823267363325009927083322612318701270007844365121914686515193657326891223771280940724937270221161270657945500403215499903230453282759839003454311613473735554713868772380461307579420871355368413101603106305149282846464208513180410473244878259271586847263213158957721554775160544199289915672422125032290520426703976841471344970893885147603419330663577623188645739705710598302907637085599816225001920033238471315387537768086771155274028818893361999975042811349917302209206520213874632631838575258782056726663555187762140398063515368114248438255743582849063063035810965577407650378242787409129698821805966897733924775543266435989479245449279062488235017686599843668167186951728868646292034198007657974012241595518719475603301360706425405676165104951955521378319830264488636164571366698781052281935125082027449167819804062726416253521998785898233110077208291731783384732346136508734744907328965292967581095829868808006981745471380643396997968758982228529528121722132851477481245117106407378232615147117242882315973981016101514349643519674685069588829918479506855501618745907730353592652241426608058722896168761220585239528293295525245461836686161690714835094171309439057174254566770869030769640860364177628398918141735882998943278457722118360040180886558626123452583038628081019016302045313934645502974359975342856468199157530067360652033606415634631886788826870663258950392240376467590826022384148568617183697716908398093968167621709307531971188648803934079607760775376156743073835028320891224886651333797076445227490599386498575956793820573769907875404581022169184518410637714052771722225036974107390650024281166708407061827865853064803714770272835432375987479610898596348241843686330638572541122320620893064431403352036103065942538946404082658614231003565813171124881277651968226254288729769353053335012665287181152746165995173719414814693183479499191786903464998909381686974372629190463011642437767222299803492087442096198926048473634555577609068924734393356647638466730238070394016289996134564182290924540492089661599755339172720827066353010280983897104595179032282795517561308237749008519279791260922727659103734202928505925893054405946742229343122643965532316015281013351271215688977536521113302020104132945232257365735907620267854116210903940112020292230282606786203918710587393678944323249009944619950781799605683355071239861223383089614532001907600270965685708245921123695563043731032491791061781603160611174880699692972554597241360184450268285861223045252107891522803468667925031508331328853324150312035569946244192987846578448945436899242532119002585064614500097061335019360868470527669640763159535893184828468182414913560305607662994015331188938145108818015464033203891304600198964567190171028748641086163872143803770339364729088924137685448185765164102292156209771688346612010611176474183391025100113275694054494166670818196514800197754426805480429704653690806259376597851211185557271805896026565953379124036317639687614375334469644189322239559498223325991199485753852562399955192992205179524986682227245545834411732005283960394280599259718932369348288462872793429682518754767150875034130828370777483317164902912439282875638263839290251668038397939935634734979205999384397438057071539391175416079685576906917161763095200877097252044290631582571037661613407823748998867436514187930624654817807503832060940211214843040747987978053973147193901179961765602471533795100364248295724270434063407649845304607267007889373463597320630678499374931882794447822388533764791332427278702280989652127456890458509590254836784121569179178612317581188509472372639005571890414151802480626883275179332902602822961885764545016111836933945207536744005419957309592528681683093939364884701975374271929892264854793638118575975106564912244014342912180704898367812718583904483106322506313168889639874125648715971023520404138160740954596790413610060941897698464897743420926138143677700725513363166130109869301964908791709308445500445214055562936706775230083707087869675418662482673304586191015322542075941591679531463774081881804315276250639907064369886487467651116065693634098984463020036891719219965128536416973337455148681320360306135669535173351006712857666315173822537686160298477167076718148415217743988344059311131907173110236720830434830919235706173910721452795734617098991888381572711331922409299825018052032725102950990215972330104943338305835266800026885103725526318014262242170868690884546851553155563929730735810601637196726791102125901390327462858003443693945215575196764423327392198980073280139375520232020410661869187381288480888525468858945513588676173451240376330477891484712087796646760109604613448064947814314976419987477780430181098928936944039585819369728472541631632044288960960458524511610010143433318591130694839096942883712207671762758571069759533082338483160363952637447304550742396462541046122845618354299055019281322251391708007060523121311881453951260418931495955879197863311933065181441475101699819104426100691364875439050343548440622801302644607409659827049497048005227199335606344003433476973549247276458526131430235305092128686422123981554421285899739923639033691316724045869340410372242952840074020553372403854406244934109896461353858148246606097313264960021043090970258225423339172973246540187683274837612809307883338807459947354105397463692036187606326094022645865079995908563277720345446505404174022750571375820293538923427594607715178747825620205682065621376032129302475046715543238453678737829320036411079879520528513336436511006463781067187092475509793689435177361284275668200273848524589846537614753040494186243011237740209738582315514768945234115801173353879034655761579455902947196303824382936990951093044388899106191150389696342749077180392925019088451549058661736073416840708787724927104052800114347155993803937916656568466444516101884703405534759341932108502422178874616279496790480999100874131691600435078194422891662446325836644624213429933590541796038379353921397194794463580179132440165939405438405945635359035224880733682162374163521227139024340860671434889704090690101634637775840956433963726299786177593055584267806231378082596626057732628671738486341550875710534681134321438333164823867154748577781766705195296357695163682208660413078453010070838208716638578808034883993725160194406411823777285721361158785499834851073337731334958862619222754896623068394826057627383923752283096711918535137117750780216625556147981409433259360089554239075437228763753835717307744209772315566646703693654128064181649649894006642138889308614043626243186830501624791881511827757930505615196114442283158685276931667292032388904503779666708094901137105849503231414497505672590166960978920803242092751481279130705566623572040672320831283269789557053945256809041434276318842933447562052239133951444876212333052227602895836428491853724448547782903839424896634633546940803965432096634336993768364455038842192689146599044626775233652092835323779355543606622941126453829910659849725042584350045841074465823963820329205788065820384542208030061771938791190473737556814839253837973800812898572421491501326006019111535936514070438737670102658795637936466035796207130369076983156265310067021708901428385460661067047708125021479152270840866032804076643347084112981923343693988666839833694819688492990718893585881390313142441603791648467169078378534314243512663987383620005959281608619409299657322625574594521359293205869719822667168503460050931703273510246783192629916245907033226833511563435168839205713794402733790205594725456896224803036865024831661868405393703362478763351850387321530043058015234968084131531150542716408506849968269064037039159236540864749700482711888888355584983967257160594337383404974178957658026125055442530637210490982118207300844105344294874086247849746874489123083340985632718771513657769722206068984800924140524022816217462393124461684047251802338717161870877543488673083174444611335986692042605317183790026206029188627097388751141573028362117703897916045281122754291026212827130990790025176712896001812936156339379008280297778949070212068649150889582615089528375111765017409317126390969505767915892204083963794400171200481489461871619641632037295572148105863548931487834202085673047470104063039010194139256950344808239595016233111704818247360646991651442375840232586512345697352197472867685860915933594981810573516913876932124723658617326371258440870206330809869205829193212889447876103610021068398488270269391346801110876658371954181827334473371495010491118299999221912646447526584210581705864846491837125400070671253235968841831150153693335671097754674086345167560476438452793131404964236603965465087633794590760346630649215340071128617661623143458132751945907939914873628982449161197782398887869312356419357397395152288628571928701891823238515999845090379902150073538981854873234721324452489006409077972815053380536291706832039278714847620086866496833844047554729084967348788604315479744846724519224441082620872667297726201152036928494061958180390911680826084239191055201013692924859372881920454735494017234430051048455243548667801991044021302038081618949216375028444539204484505711483531015097610001910811639816494259607655916083845386698740579594013608545070340113747876957477670415499425601935945744020790078086713802119370969995043491953366046771845364362371898863639362351372873992483724602839658378203822216436483588289694093288660424680547288880328421126204921140615058690347468009362614040244459485220076352812138210026458206652928771833671374214143884603166397862476391950881002065960269309720895716003055109035837354916368017833277060933586810504603148438646617383506929378119917515876608002725948841222672295401579334972032784528711020903077058100298286774524781413056550592379823668962760466994775073599371154690917085056107055598984069362598621168044765256277226268004282819354255444268509189916698833001478658332295877190387694132518062007793585811437832506888179421816685732957315304371927235207257892925877572868876523604991940551744032956873596183535182883591540218808292758621033943796968062116213613492807289433990208755129881064892632502614778895095677470488424262930446314350697799784305361663136488051882191626099241913810959728640854025513179263323338607561420094013663750450263307916927027176859831928743496750170675803862497615344172579589670209290059732301768729003457974540682531874800625609236471228889669422496165169519123235301404744024173519427075987835701811811020438190198325961381732791457774738729071088474879072560402935878805412703475369379252960755111491861201638554070359529088993749578132449894126626744872150241660276888745188123872998877992482145631320191841248968764298950825957791556670582040552545613955344161392823851101587062839996539211560094013708980128958023836854488385866198918951981962865979535829276825481017050819781557122306784686944440525781045174216074676857437420474943922531580321705290466636135440702318310480400499392286601997945204893083113787041459568248708309235901001357385646646261748070098595515182885474848290652324187549344560047031056317514375301639131942224735091262074281512151285835385257956692999436918798429433398324749158551614512165855037099725005783661795521082148820818420228771530635321685562497512467220584564858230872527365270354748554287442381820502306253350923684815113864054076330671174415045111141980699425732480024374893727727124473177348007411199076829356438120824537453689544156463886209049225024791587735864036991981783045757269995929951873426351468590255847812215170298469306617096319916961910374869675928849224200101490786169142604971442608600242162733047350420329277602761329675690431751731019538436385883965278451969468303501230907709906828018464368597068262441765082858711931825062957704671807238460529141278849397934329065106266564402867821910458208524123964243121062329056841121258421214282711462022999264419799417123164493563639658738233914556783384755303678082309299001195214308087189970620502017665710617703199257027784703861344037260742099321191764341253699731428770526096074280300212360198983359874961024460894644558108892916083606083667406396214357992790540041657634971591037271475406509366855223207842101785211217880498667985905892106465284009783109668380491327990970347287757773505808781703229368107866168940461930569937509952016584411634414565983591192649693488121278038119450144578598503995132086897033957165954248994486796369718963728592554121518830829408630393053715961960839747270890164653091141117771764251547395122825215056578010545591127014988828533274234953450627927177865327284387348585315626988410151590764943054202241124526172105098787017126300024975829078628581341938804766130068009004015268690397986628698783155149944998518777378987918389712159114696025098638658038230887237963474253356818515831333064039729261563332263055358790762192509939602822017694284530083064017865379945357288962324922782653586377101047168180822093898082190475071694977175300945907102458602462744196250904504408968715254098635030899915157214706478032906098954907708072329051759172414111621508525676630898001648990497073612209103868132017441650478535841088240437074529313961654794697209283880195430367735015729315251541278103350670555877400149247217867794996522312917961594168522305397694438722214800886459744308183793848379573707239319067161521138251612545537145569058203548888807085028898690247717016845430926518042374107974134127744282578747944821865770289672046935896482321877534295522129242883762150492912953777948213454637213695533928460617755512431014606862660033190904746894413105063089727256703968146375908770625313157395790955429620028229599468291800576507412521568681166014137949079570073872466736275416625175702078843617255659709668872706823432754591928875235610232344564196567262813930356495173535502001342875207276008012938787799385159374672132105584320390092871571856139144626095120764529703796164925712316250321792787105958841083036246816930509894485108238313826576462258600335720493931801827514809502030607648764270002786337751260873630999407067942776763951323107818570156613587466411952569854372913842456511702486574090112703982146408071769653220848021119205724149753358142258885984324398951393951971886975258980620596403926473856513832146571233797987469331687478437951803745984220752906306872733333874369648404273308566138831334688376436371176120444295151135639375274972955578585933560265365360008648589539812198704770038494444533544514717824308611636679320924018780635781362865222284585781112079920433125812260135505767040434358099717975318278032126549831952494702396436175310230354348803529479898187103366437530106397427784993887060768244507087297257144020739650826426275455859490345206487323655838436766330954360923455719589819344521076615871642860524825991520020896566428924535861231038864325532490919368838577259043641053581166296905727989130312490905948497759332594540361850044386219245754425221712037463107772743080189555370399564675849524290280180402606746901659101009561473205529877090997910849649731337729121012124123047858240213311398287940634829485455073285150806665589778923888715690858575537054258451694745337681515830698972453007562164956846467283424174330159729441610596155905109329421450061755877432122907998456698659168790350516815350093855886615148096221423646393830602490555616133611199644253687310183753614823272840501657657775964289918473122462908658540426371483191738305738339335249152480952353163263075950516091832744176248862423357356858637131340015762874622545978149674268151293733216474168533932903189508154053574444534687973493925748449375351379653300227623530378774718487760992549144250454786696935964678928951365708141624321802863463719364987331901411450989001422941769695634053596626557751813033692505045861143014238160387845578305185018742524181625682154848930475933738767880842699747286520840974614289225525652978752608524123134184178898956016812457688650886795319275582306275409674219174506698551105648637595509567516372581828513002762456302392468555774578888101368902660649721243211812071997133616596864888864868320295297652244807296537939626342823286329172318479719051469447551201296421667872690963278035445467199045317405508826281139496972688425975919536721815319591573317015325244907973344185309326617494847676134436928229245898628521274839536233959773785577813613952973356947182384498886410498734155257505984927309875991827876779003217895305199957994726626593944884720522860514530411189821475411104707532516179179609723869431243981342904017165210093086989213469256252015358269038116835157436028404123440345738041304284463307093540712090858390313365656360361174889112020895748545012649172738369387408162358829460407876325342671193593117053620923964533399381968005801547206932487645056753557666694098832536200121335672273720567678558711804595665435132182035621433887523326304634427672230019800062104270573788729398148683492215244214653883495466647882761906596310906681557257440704016617784294088224588569111827636698270213464237290744902396737539918019326733051888550500857967704125273743257890405124076123598903954037096353573481036286575994365106222468101174046592399505947585150761723533881212296502479497828058470428353841748902008853659787025452533622716726612066211865363976382955738005878724536354096821948232151060289866732440662713888774600402396027997274545981853738276572446766667297742221696461577551296370569425817108855845344356703758943104363024975590997750024473813946654874890097667058705281908685423877931777316777930855585762163537152032915767409789171684649820497859972950539059204292763173035282282695076642901160624129500477305544290900115661916122450200722457135545434428500328680431578746108699630010726729608310367815186213773443406186793431591609168865420429444846010297450860285261243812444300582160758339087373843574209198458064246944600596161100157712351057181472249895467123909591629444915334685712144353631600357497195530653237842339327861970529045472448801851130705541364239464381010241508400819340971359040633055886495992914059151873597091982645373515143120230261967603345934311017129502746834847001444897950257815609530532490939876968909129451964839392961046636568076297527630656142602876877704293172079883825734685479774199332285541433515941014445976128757097711691128380154329146002418758941954805662651970169030516871336022557349516748122511795299814028759372338069448183633493421227975456060195442033174162795323507060088904381296822420721884274948779056354783547956509954213661102973084485003461971456176859378329548822858285994494569477464258728886267299543991403185761723885332815054235101055654949125580619848749473223811297975948698392133111205943325433136633836634783358375593094337329904607961693734797252170331477008624145565968847140171246152063213425935174559729186217876070813164373778953658355321354947900649090575306538023361257307614344890316591273563274951682458860209845000635385537117787640496526186353501656736265118980475125323913106448058884289183658948279026650420012791775475610902662600133079287197547636061154275372268759377801264905576033622920721331580246211673930557528264895022593429489448477125957732848454476290578243858281490900178947870950909875219403913544295196421656410304481598328531157588673214713734009499514564297421698791836776078846953146795350794366014295255067744367845285838715408781491230709385734434237295792828356157758722581774910254485211813056850888429261130919719632352381806354983708203985188789788417209280764318560120662722947508826517911711261622269034185249062595910346276272568742437957345151130106994222700205219555617836715172537368666528956742308989646569378475979986080713679306909992393467863148749824258627120519228538425151636484850721997249638109944976862393947872786485907029327851757289302365772131515619297479077593575845255423669978858508836241424676611432055413957779519758563526294794091950039368895697310655434792715925205527717417721311838844748817353678855749874258381970367652343413113893783110926229637328210897158697267173895876628701425802711619027709584818019395271970275945784605554290855382013335065028537221007236834584825041215957612674410997853262140484575486818217569797079538775335554854132520712292268321927727468812101356735652318785719793444018834278463875970720701794110953726371550844526411576893451593342518636801593726969388630549823434318032923303159706876609485861836349304900635407831180139965465695768471835199167174917437358907405676365711591925635830917720492729417747966116443225078996408092114184748580894414283812703559213388320267670401208189597933467077401124959636688027702482777703713783836399271301079617313196716704990492207582667612580266912884960786807263589753344711305764854392816727218295250843481090408978090031527586821019326347242917262279804230972499963380213254019882244582385959314867169047391426233992097856745779915629102793694201184417368704669215044996651943262601757145959502558821180122549790222802542288087561441561369637829855971944105912649763891813769377235720428265483996156420792405403486544114854010610918252050666536421455029716307120511635472893274070021632912442837693773345590168891921866092038355745277380318782736287288873844802377928750800378863394128596649584480413608856703644091731557414794485250001053669945302484926583500930604535962133189796262975034870230633747164090154840313882568448510301080676853713852583973022113918511103918079950844427954520891073237492306007150854436163469262113219478746848484331237204479286252513724755044286128594848293997229425320593879877575540952250668947967865787912747158601658311682216941256944263430702849197670773906858040069858425830011832822803499140900006969476734209372267052448371402873012402083111365093460411803654648728709496922203872041894216747913004923879903076596745834664088788792178427725895079473639531996729938167276608908929152861166526617382973648379499680306998699367539866794602582599428798342667531389009682712360515722328682646262518088521136365733564061619657174974374485084239951360588551707509336285132158207670231583502738390347755401329089511403843190316814675921650671941041134102822398570905649811799446917469548913990088724571830693036176654464171335891444238711385093129031615026588824954034935421303580859778180299863497975429752723117410980645557867243672366675925244582805997875908775172496117233807312416542894052304470894697468836252398389897756863332936720320220825786219514880037435298833294793507438828743780724089370487988362763659645202332968910393205842994853002960236549736524094781843199588475786044788589674459577794556795887742455405315439963621815596946041257550409970968490942741754396006648474077399422513784158660230529865305517291941602116690997590726772722760054335142903939379824671180916317887821706073481443019735857795957628219897630873336134516470135865102488399742612001852740526913713742821427895718376141337540379808867317567660414861981744995023183309632169771777316442118791949947318798546903676132830261196471577189880210609895500410817184422483377688110259579180526804091506216802479606877318420234899750804546879963894793676525931391978595700682544905370327808768441331610738306810081721248345725151993555578477440842761327763508515222160823548145582804098175574337584426155439552766699529800135350232994043019587499330537434488416410084074589961901652509839608406189862697983257642099942201191344439129083168894171089885553709807821009943848556217662228772853403152216854279758191021701916591787486857452235699036255480179860743769062131766120205327907532280935052302700482097542417838474046041919305141620913643049855661801046346613646317461903162784558162152503242531856530086578159955920503518454317197785466643733685498766893931581867760083672577957642585898002817085396664547827377951103987371161841168516674266976591499338952310219777284385395920197956457743323616186877742063774411133945673144556598481136200378218064005636545764969816085766928176887696584403371062491432032939771593127501833649083682259077453801940710798993842586062562801416297299642349010731396726337235150384135996427527749294377789945069594976883406407498953724643306674737884594343998888529758970003864582427837674474684790092980708411214728768285190765160499877396492507612368965807191367017063174735009730732192293668366037291618433369818402012852848738679784006960540954643221617428362191786539994731925120969254407482039565442651575962481013696123233569790415846681566297556285611199700746831989258107284384139591626864267247053876932181338743159274837451784971575500427163529765973184119697459672271498463374810170266084069459501950839628009871526060572534508561506169784154621996270374264994276089436752736950643671442059388488743732473352967545454129892261687488662590782712720867123670481592731762785828721240942630347439337408798272047248073153243825343008298617017958866846383586768895292538676320714189303028534000947057998453244671582404876432051511362792262066545631989934585630096119070432953890038289706314662009281805986719215535766889390748760447443496968801593522600355242357138506067842201300350488651339488657563417561863363198997563222364986019136525509718671034330198463629803640747692138469222997786414074567199950232066572501722261278604687813193020407276440015021448960322817582739900255609316120617889612460448624702603568273565146962183568041869159300210572323663996373538973509838586138756902528021519917152050243284661908519196955772172770928925818282519727572927917610210763601972919491475689590691994554614275094396958570684348901006840961287310721831547851737888690900364823509015944855307887275263486150532609751481115394615404439601523489172978768194347825727619831251757034925210790024213363218987103681189760143127118716705857467869349429923496123251605079344734065057122493845918679378375517694125922377416283885407688931333163218790857184436124411944478069586236282759760427724199790984066986483849547139576510749724311732583749415767118086069226694034093909748748775011043554254527301357906595438808658941870704550464495270987442534218100754550153137991911999014876677650577106773324309524644186163034564961584704558045955251054197337622625521104661129483713529650819841867766282375059459047046465876877054414147065944727994992063576226917055466446936675099245131813086071333281907487263131781209888244323385237642187174750358197038538388981996343828775604879288012200355020618136429856058246102022106346732636898006081113054829652005285033553694780943264565911884256335071450502518608453920431266588017205833564842015942038718636010638005622098538933426832202109222471045021813091713681181794273287483462667183247999537413976972720057673048880670349909051440399899623777872225579919731035446638655588358732154167092134790500077560605055715987107799835129739913352687683925255550753867743967530583471483026081780898315370095033457034528166119893238692130667943021096591759267364178443179984624658048479088577390494999723294783616451128026638526616869356546218258324879060517725152129197568896914924998284075647864072351245699074755532423158450750863531563329942476058148863439641056897055089253772831299385651733736093296432924188691821577747305808154070837071798496266754893649397119276854221707508307704242981009100169537993597016375135868768883564411214459478781434708195495995516289144440849375635276986259468251934392739640400393823305142162164671249706102338495640897272002546805473579224716987468769558078305345318126288948916700872608385634204677867242944540878403990650848717372391672298196388153107104391894867249403179971000418228628924870739696772863548676933200898648615283268829411724059165788902338428160778216042779011179192189950410542837529385707733777003644747849912854984661367588733586126773867486497482384015601749683906547074177732321748876772300368453018203536782640375838285450125610880808399243117735471037474609200815151685142245559636694602429544363933753217357021000352715096374769882030493971572356117993426209934492931444625654395449505491933232091023549561554270578619897675067289051422763818574746898428796811068476941658454832129935881874146261902248700246491173628651444879263306367776879334313750850791980514463123113997264689555856162125332834514103282283268675877393154905581803241121470387688428546735151228710081071218676072878721388449951252406153343879410954848974309670944862367605512540276396488952775501068072224925615276976442571237649689350908562600502077214439134652696026257717680090688557174699394723750747050754799129581449304163070711214062464373401169663158750971081777950418645932973334402723678074330700325314663012183466887063815823279213469786900806012652716547275994481763654424702482548857066257672256961391506456342362981057972763186991184057342067101994290518574007644412436635209125577393553082471632588480918189289812032837818117814950113387113430713340603060360719569521953716694974261518531385681365269561623967915742602516743320933905065897774866518466805741846307352589943819225748366269392701750538743162168170896234356480950470796866223078075009196181686480164995483707659161611000523627686027649349841053832677630399142753326707779004427066798600384596394668605507202124643867514391134075218874345998233249242613009840212465006295531735955390679923894565201357942011840549774850097399291140509991935760324127781848541633104554631848784535993249682174332915998783793068843784736835295663197022241121856505222521478036972066233210193405707240787239241424948360939825330309522352809583343720839195086124256148730467067739564835437928610982140899316218729705871542990749271656672380908767778333035406857866351807586056876122550542203956008857827295518035025909373355315796101883692600860136541257817096263818393385024392478079156254211210772914523710630092468026993527986708772177200020878093694486468073615881763831344696123235450851572134751177211848958014925142172100902262384852383479768681152424307509842482932621340285892442612847094996431592825210177505916598862683123495689729709251993500560591960496814345657704183432988687539465463209639832913699082118153548573774202749444028078831997508305969891242180765268616013745960915553248231629048380156499120125585613418782360794847175633366398987801973906621883715782349150421065002015462861447756329496660906834282723186429286149713627132003001776475799146664189106410202441713712856202400407156286841608433916307288315541035645872681213703417520719256698418493879667834950168923646004664911663783089953190761984592167272651339270417234802347684009602460963187306758040773184907465678196155866024149898407803811841331540239858405665982575410977649767800834490778232438914867192515540760456454738029193667200631945937865262648253487675462974701193733933524293389546205396116735077994038699182271975388865106226623688904952906103260721226026700917721326202708383845350115820358462553344572619059226737933921099736113169428357248956078577679398770653098044932930069844890756461355316059573270254074157814950189937930943897880267889781846620092955757219812004734872233768715461930793626368256163918416216742212223237951373429516316596638820143556488824232086342626894620404507809861058321775479651929478630348510238742025376643653610263166617277250318586495466005923661434095965946906493756996365416658339463435776314337565187182440216167495715196493667370467406317414904899271069074912350592761455720996247646395141161045834376594746645659331147439559018347060231053090514973298294891764099497204654082716155655223118754305099599124363521086276680124701942386293888336971058381769961222114205556669224020148770236943389717907296358264169468884624493302168511055149718988253312862476699519770719625390619115026872411137928760664546466548816734351963731114431249830165003296149844272330183580517060582103655220271809867504935975163297334362188205182579810380278556495188086617739921902429965092508038588822213197606541967148995306402751423703521611199019012441395097590313484183844372932762033462430573983097750772233337551948258605002397639888304359981872226087005663879860730921370499848247433209673113627121471061316129337339421911113710736355147391888273095566429752795646858658354735744441605272347087084343815447353272837338784533582296948908323964320011671646090333354162014077940607821510881736810579608153124521167156551595716342468120468173204676006499612958671507255786100251966315702477850922111842157194978902545157234421844113896594944696203862143442988478996315771650027535363636798477545765799927726245361502559801634163018366553462751810048416812076319702342228539998462177174669697517337284673251824582787196498712054834112209933006655858215707770908667197920614653507079715029062002635246750867098159580383473214835825281416722320702899363914620482738338498876541645855410708514471692665892260252018736706243785322249768428611583105662146990024331808723768258757248983634299656518473296334653700987054273883480609892776156850648027615596652595362459865573200866696359283317327494083659403488276273884854897503370368414353111512990132260411762577951416611119382126536568841711793139735599638903754034496370650134428956995285187818610621217812372023006238709223611275854403323660685165073977852130584908028155485558566957283283105458451161385645023949159164949755092419098453796754420761536459870818734893769941159853990253207373478100259141160453336811167202360956733988407754511807105793140338496512042697603254472661600969496612775422765193975808705519707487965196894640774731880267946298545814948423981676657691744489184813394255477166456249958706537681884330762031305732509624843287037278390496645343835108305715658551420396685143424261760448674855766645479717094107946102006055351078257942576940753825015268395295195853846203734252490915372256074835516896829348604034007548281706201669226983862284795670428999749930691766308072471617629118028772575997024887982779021798461025923719537058705143958759279045464425878863872508928749164419481393979118692731746809399161712803597838224394540772143088829116571804840862968826991727842856831351486216546852817243081905023931423491261180472564993884008679128832472289102717242581236105421848094963858215771781669655900018104459266392050431767570867851405613739372447398385316042225662340022078656008149175969787656632014878468676132091807142391378658622189664935172950122846627257942069812113117166587597696326021439517040571191393891523166239517887954060869364088868905529701079459127193659159578052965577973900128680677088485605125651197528298143239525614643981704327910033393828228893640674939854438257992998354964937655511400585857382706339059169706674378768402319313130619310042002836696973902601268908004722448439491233165480625483212663244258545732651108002558223822916944365311453015900030671007078369684977886617343061179099508470914895477417546795155248298995700277905008949234260974475347862213893273217798837596688007506216535238657521276413958925988204830037815128772116195526606357502924061079297700114639383878634205448570991863544140341099468979887702027116989237705294900078571172550841363696388408690188646854712034904530713363495044788466483590192267627204558044979129591741817258269905398974487712585046347003039010937059141607104239793264133139001590718438461651632056751008778217441073645515283311284143040327146430240844237023148374324999935521981656821722414136910164113583414184685761461262398132902914022786983379169654817722684848776508557555308626266567308198269263662354241108611267580941896622164761137846660131724622652658115781421144805097559295774817991271695032923987295213926850358318122621251356714625674103596066887396302962493177708966889127752676178232453789061452559598314662437191098149182666443374358236355630515187687507660595568566033797320053570939457763100754208806386443918214027350851286040910332359841201580061175541481451997444220583096198195886069526587598201838322844516519705399521709950173127667359766020866144876657504686221539279165630755370620269952007998564491890197595704326946255282005452719117425692209245027833345167191671011544300363031327133708555926415928072411692785790324650349103318507832488464914629439721549314372068727294690392103931910562886515868031477221491938972988062746180309608296710728825479731655727678737788012948378229720036976151770844854051078503430551590663139828248286210813557331566298546700306696910600688867881124773823790550667780606114945990713288338479078934570016748317452232388561215738195482929191484582631145903090903791410552431768840618236838584294993363784963237699938644692335499989945829993263246115936266968807569299212590322265097835688340679567212514516895912659276053468355979665581463000813635746921713248514874540761615576982375310714124820598430608012697173262220309915457927140161598637553525430734719810022181613070343476030126456340326823869785550280555667926785848564224713757456987317227211451460738853142353060956307849831292641058152261449939918677412472061720758706270771219734092920534661687624941163922350585371178900888940153028015247127465002491373198697629873803129634424004867696344129261185440458520809957940220233331149655216358682687730925926911859746506540406012045753569346650682649622968543851232133602378097876325173298918850409877001846677628366998346504563072859597337207558185730482614919044751301904212906427348788562604166964126512462316831847384107534332117402643618831690425063522640730258591408424728107814807945570470574660611483945475286907435023588504060104206724733039349530274433908965277321735464920671855559337495205327934287104113597146367232248278634181967079872545223999729856884907492567771610264472236685358222114702203963878754002640889295593781902856880218627434249504595374873415380767307931524234561458014438860183952080273531102281194748578302954026931808263431510037850605752474363853840533725036820001058228499677888827011812010401277835456198917069867230053877754592914636180804180611450287040606484061471867904001623462233936346749450138613527584990504252193609225452979640365511154897969050104830290817973773590211668475921599329158134547052783238305957606975871370107616155347081148208756655915360205238599246673183462440090593079491721542234722469678565378127009578183367593611575967069799446513129952539691186727614145687185892385973179477898304864799077542849482200675027030421071364446628121194741618172218368050138594344075516923345448462293408522002778303374721030623177748375456976024809292151137991424311639917063231330337362612653522633326210137045906214282165156533441364361115230897728907705047170522958386079602638495390025326666084134710462574407449795697434286650702459910542800556767515499665706012974492501347595431111450560417016633352044814688135648332986531348465916303399081067719360321463077279164193644722802480231400966476964961550210715916753753778076877856057370768884732954889539581616185452002636657781321990928778207912297229764756116805160391892540115826613871186079309994064882781686690026249613955115965644372441088741465968710701374135240333166989779292427212138117892223728711427474980591349893605379781888259571497467884884448225498128750674876897168792035076043961581105273946188403054466914067215745050558077312952669660476032848920388842751566464253137025316081444362039322137438246012983624740650517632788847329729437630406474443442214214223632007483738440017766904973091799388520680289699304542436656303800074880513834354479844174956417115352888189780705978707852781091224361120254306995267868432544686521663274910271792615410906592614189908941282686658542266526022166883044761150499537973541551594618550849835895277564320299420801799143483549168482195957740089983091492842960011590848902106015283586708864852020748985267441456987039135690424193108177575006912017125669359346096041470894548051455504923337772267975922351514979857516199596318031883205709855849809450769078762846321329693739042724717770928900622987856351127415911419321928347987402633656680414490212490200839497186100290134687168164604550551034507457631834101373472861729982144521228060609888535627421696533930482945692880408790409557629273506353627232360621336068494860797027267454192480313905328410938108165141651096886830693337433776379098977168714110802157103116454469172714043427552257512241971306090105134057645012309421906986047681354572164197133448339111666272478853173477357858322370046271590826777327150727786360665919175106984869957957233611052076004588382016505275280093220007078942948736689546968538332272893362522144340048038147191930471911720603692473054424429031681672356652075857390107032771098089442842881962801275197751059872798272779656978972252425661390074708705824886321656719752221276454152845534718917851819365248073908903091427186215623022760414534480133891290186609776985305263832788796412291376230411640204201291899245043206874059078817988746345122263322892630054892801805038242405456796234225291676071525937800785684008370387203236424004430822898671530835313678627169822223428417367834268855600897154732716358808071699661222298803549178885523122489377017127684158534613377953846971424114381529407020885746569594584164406207943725268641601866437737266866549053278950734837501075231596032873233311696793889704837061407728165559232559483767015323766126926863655157540801741712371283272677418396050397381104530510256192433129019838083938580712446230619462658269871575203842083668087457749308783091123508680467341920309943924293280874556304178338616311574679478849480239164168625253679210625589486093918254968398638068506958243425884544353041368422127090334586478285733338777180797950627902241160979122284954016583897724820352743459483173961246872158029188719234243280664181339644648432250064750233299789606164955410859103589180333708204387687635495487988212852355593577170735275103571193254605107861923399415159019365317491134885131771725157888593147078289670403769190384021595450397772650431948887403315831461641281389875614674850011693279784642691067118899763206851110243638676921174107195283232247425733068866745744707923606736345711496730779912083807675806663945171302961983208784131986996651158459820339201936978145085032840697336388763585494653533280861066837512009361582746843604389807432265025717453645138818235139548918401977607485315045572702117507390990535468809576521765967475732310540903761189144837926009936639796118194617919402213852258177268505055737439608055292658299868778153046022151835932535160875548496849978652802540169300759390299059316245687390688437051051071060520285113537660714356130541043482555441714328327229829510843607669333216725917884326307581014080189250794834926596586538833792687641218407681985888507416978755692291515165985152538755864130091834211081277045411165647134613384618052270119353323971737038101547385973617660184328591460825335348916002757944570343560008285966699576456161544687018363302027463093215031959265212301776621686039217354569229273190376162896388744749552234066362599935905751613295236574660550191283441047993345919315613876556126699505241804556321841334956424059185039890577128902259028167220916371696470250002870509415252743230677592865453959342211909747370351394905647841260399057802608225138595225535986898102362985827617379012678176451483864903310927252499791127000400690439583267214206537688044140318949368418578993651919777844425445520911732894227733616267383741902012402633094453776187333572894456137964071708896323844689252903833967202668562086091790699272158228000077011633494438917005160096262598504605368378904682196791683132561060890595803146616781546502985344508169897709671882755819122597295425306268058783721942048045902660534804749259044469875675590058494850019522602373938325086459833364361392465269637143759726235849129500630549460724294592564453605156670048105378823502230275883334123059002225673251978465916259720729400677195248279749457244375825084865821140587559007673558086047001377519030389478404604219833256585185848664481850525467097015915598158156594607897558290713631225636253988624983920910750851471494529646204891260983951406791366577369600358015040523455312507497156099561252533362220804233435686104247472738842874257044771828109598544935958179306972062040625135004819263075786499566602104094202167789396972247269943431598975774540208739988279565438989103535724221919012315362863130729132404409109281507151658686520407651528502735531842860708054947525676690996750521485161266726340837649437744192636355638946466828624257723708738725244378108334759192443740182390596617874484162802055915469931054124406258370904435535189995064231502733186834244067831750465509994057123396364090136359475295636210035023086927429793662968824390202064645517965793614971993531604492078483079512240830250481393060435761822665222978975801527326087120770918584355458968264140529049668624614442810751602248765172862866895529154958605026420221475298870686278460907875185113800885049099386401797523775806961460397856792461873707293398416750092545287923433277446948449662191970770489342351554564664887681047209971361300749877801008982012817512576392346804378345847921921592742734132578031963893924581818371888349470706871063245864553264333147169485271571029402446616863510470340039274238175963492102771331914048559584712508021641109346521477018401525658580738756650081364645710198379392201637631230331346623186336770643096267752883943240669617044128914337189665221875811277717871974265773921543679729725107974532461580192801159112945645844414251384507421775537910193792968449599908577990141025522639747783380238328439507941747448575225421693569305622131729069031646937919318141385007834612706115628388590895124644291545954626309432397817768608483131584509029127758015387661272725328769711822315596043763814043701934670429175194160737090206824137895398634264385376331570723313112626089522089002817961547822350050444491908845427040665848626698343159940083477538914444207477280621463386959659194445073429077175201113534132080066557410188850973773645746713923990931744558621450998872182587452266846750209928998075405425879207672823528250474274921172500264587623272567905324708424565870077590235751791155489400632333709084334417755126976454504764620875423707779484353698589440651243899928537003361282659284660461570947348647014412991620250815844592331439266084969825246947532327799549945786861687796464142154148970443365025286383616008433620780613531637450908221065223981473324048291085105843716880851500218123409368583967336253000680129555327909288813268308107571270837907167105252544931617281735518715375258057773638510884032312792373104718197606881471873628623395051300293278409660258584829564267906285536247383547095611206504271596114564909359381282254553130630992247212724993984916491874260535280768326561291335096349954191922906252720106651087410505985928362101270047968466898290922074041397220125683788063607224480355267344319120043527262871896824645519869249756798383727172296372543782517044199364032113151681031802353625252433815855844422869031588669883940687929549536200825940098277436390595311300311935983787431854385224514860129622324589645891984848299615265953959023469768034675898045147821408136881054304746405618049844345194280683414885542846343041391541359097130375448895124848884041747088366966930943957138065727522809222269308076939377708697571204795961498956752205294800954496976711104573155934935255949136288722675853401496192051847999045761087909131907537873279138812277647267232111847109352842483649987599340262228351357366817280294903403602359369499647478846208095275778800695314977653330339853491855447475422351986111961113692250834057356077571408125930991522314450449206118701924686074737407994284681601778820063162263627115438521458863701608296140814256789634489253048634542562797007341453245545382471636026769563458968373515950175440308044928319863437327958356522352151959881020450961267628691057958637735753880252175005277711519228781355863643810244325344162430367776942602908752558178407633517831614895895445983878701481398710067655375098109916028246759984260774907911913541663633818385834773656821820445294038190517712802181788228924415919674035467185182980454218137892964981576533489394214594774133057816449353644309041047931076960929944580604635620511144143195899728590285433287624567729114267861319419606563702819083597235145338137696024283088827223899086946684428522055609683193750621601765344982375895127616992964989723456290758489455405387011064286715181477289304301147114551998078707405608249433977703931644834022981116177260584848892808818074910150448906949437220544262018091775558561623366101049258621897871811026652157343040311165684799594375407386327946515125799140834440248186237799506109591476969240643280334271445590663147380615355058626021976703137691071897470921390455199189877129868069806661283303340782506253119096041410685174206636589154156061724575350896959578641280510956686019990391497806082176586571882029962287246822904777764556786925646989963376793155431729421928941053596056226248184060938518570166305482514177045317978556653192012879684215044109984214958604698622522247720798159965167249258773635079728889110784375398285568330048548276289019077624331050136557624252231203315510004674675234895896433274161864080844021306574607362552030180482082065585768780730599499170845386990711930898513248531527994140211477859442909261262435019707287158766910128830297377881122054109216173138988229496493495407550123892113406691949774979420578987366037523677651702391010647445984792355083554919780567639629797695473615552026237515861687611870062301839038491981841833365551099612555887181646121820607932915258770424279706914868509281042045699847599655906034606863701152585797060081511067622164357529520565306083845183410901813929627620976320840237641395776867172319896201699841617168833184060253888269592667784309561553833874961956089167213513604225419298518403051234538923176033391134945365099813517253140852523108025205041945638613892349574251526829756228603401154476804708504639318179398314176125763809432858680921596561940958955788543117113164726565175605056003312769834428686665723243631311363633103143494373448496142892296100965906676461265572650414266545601369250802175860184153983369707621669661256220102935349142342968404341807753631923953496411237224933638414649128721570961906126446098514399062269873384977300433514531691240074961530104874460759185138737113623989745783294006645309043983144676209538454085340176709422014280551709846110344991266435628422653968385070801401154395826736252975992467947571244099824711806442879647672787118152278748645923107100418037628342114983322530872670161727198464612926601703134673255369523298564168700916125918514646562076578755140476496210206914854182158934668056002279723487670691430160609854122002460283911877188108932721472749829398666285377134745522850292518000543067530408953521072185599367375949104934401969070791502336061565555698045046205995378659577558345182251017072296203057580967076626570508636329081224337160798378822786339301042129514804595023351788263132777352908667224269242362000000851902959284610877712517881071264612371770086896672499272823271199929329355779342110679538494952684345116688877660964097404604991585255087111549433756153052067269216992182326229513443775633500811905932385711513768900899973024903359101165340589254404708527231662729390384519269337745619613141877178430325986256858805684293521667944779257800172506674851342452525985602937735160734764439722221410427253459211969233614247676892704941402298527725524759630380373058344609676542250585527213294153528799973806589252806580924427250756745734620112571035215770542561501386802638144618151804759888519238353223339060258551502380672995456734338507750873594457500330796084012147555048011295707772923414449991801427883797171925761999702492313755052403223119718607320691248096930722395471933235184734360280149908483078051094144403308632587597491078413751297393339228927040093597637704399960557323859183636312377831776594997658897252057809566587095106153861603705708347850437970310360421384637845847246670057654416431196555203211179292095351149733675634007507137479783980231788573102404862393660531472971534571923918704039286419001402838922741683408700289409605310676660701866302452033971813301890719182372881216000067837829901405536763228675815550668674765861771709035827592330022867261609852646618409706996097071041380285112771215325986638515950713456209171196703039786111424330219300650719331250076555448154545351981783887271217552305232231686344197828674665536897286470333688316851083094288420023530578547432568037760480992327504747724633820006801473273318586792142871959065788512469415433813557860652688016389069586538324332247183324962903578987704258577880426376368571286539865720779642854989667042636443368592607794634109542093609134058405810973385289765574015193998390823812563885505726519458654014586151500290106374497327522024216243873941187278467126503231305245946235461139577913909725996496873278437216376134106019154472691413069141711218484867718457023000075201194931984484592345418395889172452826385207425876588047544823539004710558856126502102863974915761988555690955495665604698436831366374768112513729979290095315735632630730493576995455566845196487301318289166545771324737132052894884512140005580704877237850697752970769039333583946110684536985166342542472658030435220668215946909140261681870659963555522895102839599839068862201943321512660367874163341113292718111745785232714997635782504827967673981141343420432024627338052512294741123133679007124834879952711650302974960895467086413705051290034024596669298339647226623451165155221783070221089011586701468907170614268152622380031318655721481175939004158824295496079141886842890221418898376957315382810643129627785822731700964211855315028662077615289641647890631296872337739840217009060463599399550173011295757295483040760770937251504996044288117427238936917583871204894633261351560045752894474847181843185508673520780049756080525991190109857510693014241120419019167200596522525239612081275361379160607773995686910980787477921931285561146138185243961005416864180063722578437354433386016693089839677487288939753154608575030133022334224124881955290613603582368095994745463739061025896370499182468900941147547695647305534657471231782914261906548739414629340216013212621536804713561001525214566224181938755171550905213485970114987407688052148067156410257572372563177128809400304239139820243513026863135161293646178722977750105898950923753356661203296266727299115693975970249258913723353401606862911179650512435014694475844456587823381935924476502030510441773510229374373408930762259929910859422252730932863987506901870394858119426485980889477295452996078955254781681568850258069067449972177284758081108837958355231027700991395450263099815344574190133973244172084852555922952657881809239048251508405596150085286123390606617020461834122252898886574576067271759198441959099309841548178287698272371448114095958052582375724645332875453756309786738978329501276117743374508453845177967130076290747956299841562575268923373692548389130229704898666047759157542305501108266367188143576441612088923737599715187597942492471155551737069281021095879069344425587066047199273253308925943776926244796261110628605503422071723132330314722232201510200284377136118567730858351702472743519948222479325210957582857812039248119395628116936275357214589580845186951667671889840232914462477222637436312772877748147761893778267862143356254119115750837803387926121778827388948369170961082033339119525615870802577384633515400873078235396000431674307941636416961531175936263023308671592353783436166642392274194898181654329216129605933715193913667292147337431246139980831007548769914368960602740820229907227075873981612138038104686726023714349745300072137012376566394150877602981630662999303084935949411570529607711530900720330363021556643755583238875224185087939631726138887973468339570194872535389605733074830955487533504626231898523295891085501265123658827386701736200565693042975742140505596047880774432547745531784772315795608615543852310005704103102769700076899444054263078728747758414535598153915717631631057722623693515372504660710516802624447043679496539944957344049586977273333619660136664038506890235442121943013125404245214447914613020245100959365557575967032013048443210952253201316359861866443011024337680253285111560201586916122863790507583037096301364384084484028491797070498842148013180538548338331166752221565328112883667603449155042070768308730044239398073984529760220113878505389826102515978586097379066206286917519625000445770217029202863048417597151163451307750817660942845712874476700641340870115972526074335030377682058612938677116082795443385920990507147140669665214140632622971094875127241502060083021176929545675400490788666066361242764471751835490382472555642403145094711705475391740121262941927103152466558862388691880575700140242964607886544342640515812499593280789754355451332203238052148358283618257756394861972634298175565627418184065626178317582142030172063094250506434291122852191137047776233886191174818347945733711581342390371617642173992196730727437661273963951588010158524729499669375839780111244845598624869854330133394741177078991443232909913152027189967427226024175299940962590629580134702609459402645159669040187960116537324800528078522775100066484466978730406685155887987324614384717333897769110080083133012452162834260977593257843081289160507997656556314498770286539262123226040584227292423229002744513136539367842521481338424064713106766333827185212610874633322594765722841053749215281554668860964093125256803364047445447197231200028767930760012185446736449208939989159677555178203079424964321111266580727072683671893966769143367119644518942812546800827287945424183144538512085021043970356736194457841091072509853134002752129612297601133542791734803439983127580740055517753433407684952339570151806693811034510842504282438903548922302684956411015965233120179486534456370582620584237225844391846053657843353217978104410640471109894927225488393026704879153889302663882025611884699299766538486631049662733854146582971281421736934165521965594153111975315444705867012740881935244027132551460363225444092622199874768612708695182767930664347679016330634795859573819608192612511455778817358273290315434120070897896531727067050640793200003749727082830830246425911773573978895899769237580768865272497879361216082907623564730952989995042903345039293973918045824734988403053725705788761444493021976048597346972670076942508957881224637834135221232550349216013901401405216172693914619828897581894915225839541054083111308653783533067657622023509070495626193585281003268014308771062275522718181674385086301697965700983860562928731146256825573232603837451885717771310249262069686882209978071163605410520898819379361648201604153055868464447637559729452957513854312121404700860498253372530903186047035073467594623157125804726026579448707780682240539221163099407617791258111406586053356171405672467987280530461708055370209104462139924200788391241532830481467769933511712205308812422060654062049404473196593755801055798822774005681475524425830731232418437294768728062219651257969326036333142946970233534419491137076610101049308589619343468011272967561189125563382691286976682983932816755760260574333493818800416349659009449224743697549620556838044356051418437182231497765805479260516735047818543227358013083629688972172309091623897672669481214922423344803155812772762032860731383196733284492394540693443719951329695264825659833552704214304341641201502267488790464047585940634103596919009495607029193946617678795260585748665467153638078462344050752039085624805727557301268610015515296929751454696560544538671021268443955708478625105759799231838662123733534511704883664864926466813058855696242235548137319737826085041700287897688898583391273194382826749831507026646826780933711052005584803663528326582582502857985679230096219310250044907301037086179195440379239965176938141443813922755380009953581214275746973625395745542216946296760945276942255286034086844665248684396490972617045363646036972083400210326841417117491645852061283268670290059456000967371953755981525226368422642722600059812252690113541153730296996022347035830911735160463030171554201101933655771897141875710634947299206886255857180429199984725667796669465051727689399035420542481929004712377804863582050027558824753765226254509393532927116777643784264982190135826682476552191762875459135923167167891899047780847005673784954311262156753538508457162237879851906087191380467403475455103740284520270710217859324315341136700315013725967341123917198513737680592159121785919568371884493821288394995405364292361084181591588927347768938152491746022736017868555165428664003411042804163943039134104607733453011056422725398678158285802500488339735637405083919687292252473640743790297324687997901951321215654272478226079035332505149439490686245792641153764771849131473854822945314986466903840292836588135642459789062382684054135384390444504074997553179496162397033581455655820594977765077340226927453138985312349975713835761857002084283725313940364038791554722759900900597595314141845620734964450238830569223059486532209476056190774421058921039190934868147908114834261074989545408655093345787382170480125971690703021229212034984001724147434512654164384999394260526800695123271680353378565057507570993215534153643413297168826115830426507447779175288931759912650327466223510890042593857383262554914997493209969058414165902948337181128836108062865020186996718311854257221953228246680358174502073246159411692955781759982372806328523204156310005030195381164597183751313681426655494863544910748799262239349598914850634671958728161563672670239097250723671554367818989878787001216818679014677601011417568471377248174323975431420135461155441916377442200479554488247447480169762816389986083280793593908809082217521215518110492180613498931795733287135897214958530855888398701655060204373366806207569428766308856872521772483540635938167216862051614960896239845633818577351942604960155844890827822786290854539075321413361156258905519839058736995280362837074094752062669324289447190838010382945550788791969769365510015537352820879545940362435074266323241145532663810591282040661072959152296083196177264887030576933012724993320454137623566825229697953923216651872525190823861440592190120979455724526111562496506044911674996322845527305289258972102168843373407877305326905420644954484924538022569136255803662478092439569238113997121293394048661130657148892158641921857727627595162443919301271294778997564401284413384185463630380530480898027444897264828098835644056219475638352356839734041580075929988424545142122078623322020513706840245964132849026049893973229946977640541259501384079877439941663322895948265924064389284229634474134526011840366465847043235279919329106259969798840673847994225322467323882905193954830147426779573942936997513876218093712282808406751526447194827096329911556299320196296128381800311048422935238666681758604017189143106528329409318138046553386867368953514823894347472151169961147692159196202233897435290924586228886886306938383856593823287605995531266348519948422598018453063322921443221566134661154768984412042937866503899350810901235856850446264502738501290966031721117145594963043498652716378955764113692418043518964579074222683795746165272863766264754856473356835329598429974907189037785778877325398081602329789903720092174476984274225535087966437688746031429403636663320076459395338276715567469817101228702674459407056758939408179285792041388807116339219881815934562133949644332024426174587359356228639325319982989653329062375759996173793916739307246168454589630377026020967241738742736187455196795603405089945515034642571701457555696446473818049943656595194013767632703603682474660563359079775267073205415105242827259135387148395559101776052579255283665309807390480511752478028760676798042299216027582364668775764666390922317983090917618147278273086541185783366244383980179075297658405272953282688965638125837423712458465812473433187879709349426190214584638905015590600335670845240855503948499822656002655018711121978358958883870495128204917087677661807604059566248987781808309368327962315785022931984092595081370911579927366800878189568269004327480497165713821198746899088647330308112040919033838344061937156797637940561661133588172567571890727039216586916289174295372389447543239148351439944486925154902496810294905938730030365928527307320685028842630095621692313610819318785343070279253074372052611508960432454652053438640363021515220579722987726573196144054810238921712270865782893916198094968647958402078088979765895083153746589957338639386737262962316818288525223557770964937275842233402131327967309307131746331760528075512689941230928940345932744085568966635292093376713986530463364832217032907438455238225535134357359635568452004187771613289263949473092202863310867664324322391399061873683210245779340690608185349556953327974503623786424728878249360553744393094361974241101776307202008156535312462114812672178969260754365089227071704533773415425272109672080325367233547801932545472178379799986146465522908410100563609022446116544355692524656378863714158261572493938732958615032620279272712219321343348869780545574735406933526138361581239874772733793504454395230945422700755357289496264458204570359295051051509187300714029775196799554997535002760607504423468342882372567431628660050002749687040065806096567554107834452997463127513519062074432960729085184421193317182249280997886612463054553868599464337711255590863360474882626057844337911433838569766471185758773322328217015467775933770610359339956431422371651356836417099078898264853587863458346601176631537046837335867398966195595722159904102401978920147458752020965273531949188695207448445389944701430310703202363945615273461728701040432535386624740636560405198805528286292543505373983349929695421056551224371944160553756712962000397557959318124274142848825443520203230344837708155491212224601283326807686327526420855860944586927143124849689877585320155360710144905284497728904858186326110267648359408559953477969790557658834117660292507680458313783372426858785938520532858696368628431183929625084492208403945083464145798471749089768919897110030427890693353881369599243152012823060428798288135753894693117409153897689292163386081517152237994355969707019109364686103592855220683936511294043706390275415999599782620002730523537981127210166409342118298360907415443772080978901961556439085887515742808652321676423842000549445186747082607974872553366170739557767383660003781858048562036415005402109155724478770194170971046707521064603599729442271117430711278537543907306883831454314965555844763099575116009803951998637686922983841851749360247044136143896047661671889109018271281066340572908083383349366798849405022810584949020735534612990526643175289158708444730718484324704344204381562848951191582785422033331563961542122997034254013854860077821923605225802492032750025648356761871758801928538993339576680488627706514875636318156765353115723517454311317845941901062436695434430862749142047158356514085017256925596293199387809439323380597071025690506706409236518590973468068984891071807711971824375090250917028307016902621411230257875996740517825625723797232579609481256094806747306364509282047802936782978102603846954730262335058505242975564026045952332061358302247062269482163224349495618348471906410016721524639152969736072676318541726286497472564806782411314958752836108881114416059342399794226678205932579168278121809823640336399226410460944612497017485180431466281842246609213317939760353555104391350101454673596974516957778974650374400474834306073672706664326149412959022861362352135663725323904698231486312341595349197263374905003040132566280733048239452344666432080870138790782052459372848817554798510843753557024873227767554688742044018079019384955167041489276547367200384294579067761276700087722512433871872456970399100211906805836753282722213497554861090001634901826116857838507723257363086315203892748865324009105409199723720875799756855262671010067589629647587192584201657627615463626057298544351158858620577327574333188570305069182329356854866785332720997665176977585939708645699578498050596613532358681300885568223423500010890540447473586594809441794666481428852324246764994128761386389246193046175208173492409225554010218509141841663053555057101246191621671493414842040799268016172215246573005535991316417563559206464223355222157728865637513309052752311839232501787579144936607983354664460859118421049082643380940355546536259681908081479761048851285798212773214326956735418050661858747696681726320368034221983156814859980156769825148105134831430807014894775733510806271029820701237592697080433030158949181327209410384825907699815169829719168136068672768518657653810725284298117773219117098975366618393793618065010244554846310381926439174004795339239962738484896673699614143987647404818521183122443466441949450599347514059687663207935092371798867345293178231315272725972010872508011537688284902346621985080921819430806141845319670391375213774401044291274661041383703744683303094922001914951445824718453659016698491666893243843169465629852735169958779649810716948778584198421716618707303944426872304617403512031193108491215931097364245822857525689329829729825030758882679556882786451828677908050224378010839802524791749242961188673565926015062632930545750787311641628264877204451458028467011245505760906766934189297667983415565393900722569610081913907234116838760689640645268735331451449151776089626715584074253271801090506571454542174646990249159294923894184349843505865915459691977685911226935071256179497806400484200432310857584034136664199180257439094451537294505034098670414251516350730148738041115017384630512902065683954668710672506467058405738932077465411501924844252530462607484383242208309301842467863185481136613678348211644377964594212262392637020774975887970862603959796857128979970979547177350651567215627151834649694178447325923685307554894741670766519438561317093005792782419531143263056546571878169608769092548593935720476669608607345955316661626359672375175907154660122099022265720154086676363441211051136074037323409849128812442976254441648870641169920548838050501840616165155880074348861231044464917697006635514766812098024138046097403076958803835702409427245119702459952130338694524332422338038082652548651564389065940680355567691224898220263930943105989462974154292843329011360488896758688656996950271333040852116455329763652883767119500679699851223261153859283137319158716118863996292879509155637703257330036008492341009952859227043876698259382781189766682536470146900898725352279132831860074554339732084168717949586882976550473251864369831205841863251251404566961439184433455819645110168673763788729696458133230265664369071702899805016869316469503497598899071084192012877581880331303919179628745895980988579455775339188672234563994264771415331957279424820975061757582303093749315175861729986113702428485143209150859523227127355478014724526617552491265628984191927586208093882486659228399177985555088758003972450807028357490110780353615037737073784169339609916734813781053104418911493511393645779575734690953588919295089640816843164274113645066588271177732764244683092737682480918472026964566157654715397886295816952998737810200182518045790989667104569849289136964851673422458512153784927235770287468341537242679442945779380104803068101626286479431741760272286892018070716185434576088333068920945841931798703765554822250611861462787352763440626366565067336368421771383033902234372230446329765363080190144841702526598929030421103964563208247550236831253640601158675418917878425199381535468211663609276439777016169684088449073712139427640704666142202671502051162623014659980008917708534100751708047627932952749813545835586467976078162505612737726188083860348486547796603236676692233856305836577085591622338018336990012086147309678755704155721029888123684980355003042987352072037406620176736293975520868302623845414661244892145610119780353693759378048084593142634401079170512459283609501646037252303501514758309187261899403160557942326953779682346154594886194537174304646896425272728609366811478737994872606439740422283323124901397440828461751159928939843550024739713056368588394884992928571735957007330985808004364584566162997817531381930181588945417340805442077620628370763027767813997682897457166146912282757013654895933162275005339370241073443562502168482389377955208000361142319512638874115936146717544248202749524715806147625393776387604028682145740957023816184078152901941102531980591981362653215751664680891702490587665545167043745040643936714406944325147231365173175500237874809656519696124206778896788025253831083940652814658002757882010249585626721576563809668116712079603303774416838261023224294261537902691539801951523892365249239610150260997921802377543914768728905738671506300803147485067954025353170698028710997110194169913027334409113087111559740091504504218257335460695285907059920736154999688996981103141095056805789926302679513768750196767640680143242942895806605633678530763243453016315735011411525741229222060095530805591191737086346193862537214629429431756914899806376953182933849270681222523807967650139883446420341825311120660653809977056222710862825231218090938148834809950644698605234064426250504517291055926599381023470759065514177063393963558526512267310242127315154947305742705433665091141174088637950852536543683432198358202378641292403865226995808238769037922382184620561597946002001578395280943164909705196905058183502394723119742986175833333978369355799174125402664623140655076262956964526881868024198519720028024879846624610776807924327044209753263563712399329993176853655931726234789182357109081890069358332691458287411631726526305898415885869841839161707566605628785725219233600657450380360181393419754566143679577761906778403668687068809708158518876673135820164498647153363418037538493688439209514484434208331998882400480614785921342897475177473282394398487865837537399937401654487570633642140224220325605431026630564897907058420884575414432166806133941576202461044687233098330267476367797968985663745286708646017835339916944188684290919766323762922792660759145722120528825670919093622054448484390882645976173608056632349841916656565511662846537575107726408114448423631092196835579848321682348383593407955143098850279298580066422404257247185209657700868730175372827907858263972643170948663061782044816092599804728791521959844448521192008795392828725082868905033526506133469314960606822823419135663873189599427991501301533755068710188331459937585139228536868506076581974334678317265234148043679778702748779291037218298666724318759559708533366725991020777663145706875214670225906335539329393829372219747867567886662499283409386774090623462724597578383687627527124609532799574667201371535447220722137726994231839439994851188325657797552280549288812498402473151909919527839753700831642614782093706430933882317430264093402174470969165812013409221092209885305801021630181502989191089049948764115534910603217862277729720661357493453877539599374260750787657771059247203408053449974903147103699321621903684162888786033778947405855955032652948642887599223500445009991912322116202789217941124494648881286845328416331195202950579258510141325025762192923911347327011311103965454615626903458596207914207943997314256566560729835762344838642949753014046847291067220376096830894189398921699082877721176470776414363206692363514014886256965140460754955828830342872370175738745585215888825317454112799640184416805688855431431090396326191323119721537168444870078714024280962396270056114595963501830689063234847176203525241432064125909361143611327746609224417961510256239050887610023764237464081594965152514022080921545508587852213682644165013422061847082050149069069056553768165904665978648832185966391760947526184709269246973059162503847523989901147951995727929449307206894990597353416085886265878193098537904693700093729803286605172329254461961727445551486559086292343571385652100595343408004795618808130541727738958371078530127844159394382603797087053498083113518417112488535414436248846981068905814472715289465925976650180011332323177125993122181863623312728245281640862921461524084393436668599177284480706092867868614071027464974373923598949809869177231525505338328823121768161324234979444475932260197641392164069916295820802098691933902327352732756261371888141499608094813709382305200976905710602180387824347976122373433024623884303439513630203411961616795706889019060887136006456510733926059635665224173111000555941264151348492486172357931810456317122245302247315738559613154807862099756430768289086769547152753532478071074752913990005975140351366478870234236807606982466176266189101317890573885613555618472377065248614121805760079757020325262323762474808662592054210176877262194549759909810889227857036116558290897014594981345371710979190803143028765619514271539545595151788355031242737366565690485301361440453718055392568101650000408165287993022436059175864046295411194461400337977899539445920763502282272047987097511177758790140057494383000406447202990578879980038275722161196151140584071487983253486431516245455747407059993369359178806006962626892456966997127614748845830405392759355330175705818418816409609358820163871603952018436202564851351727838589698983668929470582517637353342706788128564049454001254534821281207043996091511952748932136555748212902353796521632056095824831682091854446395387904680891266215523419860174437594520208163548444781320701697208968494556498709514764903319389107842612685809311008273031697364149435394403040007406828691944114303420957538025825352241578858352031427493704808761730141201375951017988295952510165893599809730034448469651560668090602443073989002208038749652485111190475113478555431207182041572739760578493265926031422434921005780861358210395841785012844217126041908039502945972742734106428133920715898930570217414826832799743799509172657716636343482958923765139648692327717820131849825509786461239096072588837513249298776992130385956011319468761971686184326219031689292002870679847671709814320396587972757814641218431438637745674025665224734153356640004060127183797816477550130286660240123545855812857430576819628204071510798367046857095305566001138009415113436115703075158380357007381963604470029933809737621795942318429042936140613273118272422505201178849576949962330789397734103710421691828715849242058999725574096811758905666283749179725096668781197649347909344685664779272745280469897999670156101992261491922242168415918984049382714799073635557125157353909894320683215354047715478809111704707742862593734239418625369312159861595697630239956926151186667754252297973206500686372935700514147810308492202774622223476451034461532205076578039497219147539961684111611874156837985697586534609815646658630080987140620847399569429722506654994030662060295295537462257441324661349592836449749935719458136251208393254052129994025438597330424596638039170774234338118348655528099523232128898061372516288923094693607475311550733476598676323637802780709831882469999364588730142046949589817543298881265528086896851073850919403416371861218433742383241290105567187012549049270625833110215274098533561081184842287587699638428137608964330992235362244100851670800640646605322299229022504616811261219203774930309324795495885249971415347511325337911781292936631038489322672912558202979739498066243611892494179489037195303621962196589535652484004931744559231507115373308728262604344176806697065986166018635392362437824183135765541708942706213693146695796035668576735856078907835803536920532601847675550397157111733471479044851925087602907509632516671150977380278404296754471453729635576750500181167876684954762656914959362716973963767279494651383222434537850186902288269842797060713480680403343362188528998550289493342850073404746573133494076291432313114964164359015852952944598923521264112861911604135006581238623721396831967337552350707730881338390198563902024179572754402800379038516363535395069130400005715527106568923998682203682968301745160513290687295393018898890737465523770668125723736628191793680237427549431778104702921111882723232543367094524492255268000746064343082847530485384135728871773457297283899953667174294151890567499732393718232048019239167390523782293285266964429379336641939546243042887509456026789271012390111769552242625105035254828956635080146308644321026753656607307108444915992895628931980881220543915384031862103177817148983786396110676048138870827338809750213703746407711359529178590088901470434751888778391683794404261813075643756819604032573778728377334669928829856767491121957433586400075863798624042481757456831031488803200422184970076722480762905934211844419438064830212097297745044264791644854777619984709271367897952915223463254109057881793986710289213239088117456795266395753242204695193204202795194922463225632507320573199764436870692226976026321083981598143508444899133647654068738439820082105798721680691308929203953417775853856273487992004581258442412622759291913087837050923354473012523115531785797948167757328343178426396336482973438454652931803438175721046924732452801671439189450655208840147186351752218648552598797906276695048692148814302136321904142061315962401683166682968228444480499402791792109017287961621061928366681407007686361759474929476877328896583679243925736585577861875883163495306593119284019252258688244121371610387870571831011725022286232857448768865465503681434096702347896620144191653571312007422711080037874963478472604269018920863553738702169306675127413158852232015260318278800469156447323789427097682023722883810075752865967514662984254862370741885626768069192493315214281294478508986091859416956289795821973844923307091722037165113594522959031940217220132065340268239395792910798730064385426863731724929507886866048339017306230613956858560255124124760729974358752519531795128292907099004242441588606651174723223485796054617227993290330408674744345887820780507986527604172418679365358321417422196645566352097476536037044073472796827734272322100509089167191541367417579342441729638542880930449200502276264726284106489816090128967410979171041081667547971376689939228967508559158166654810075890589601339913694341001998726599703379352850241502563335561673471447626042476640000453468591309601357723397146700245253366886758496071171614044043529842594886338381867614677116058344179149808490845012131296469200619242733158170233086216987546855534490646205197410010536544218981357679855437674593685990526535959836064589238257826938254880293349538051636413295138296882414510125528831377692167826871809800096743519701511147320005233291640628149566648229817131402599933888912192348194216079734405794147851456615373462381021788580640664486411219973825046484152851688933393296972310765291771590027114273338671689157917418502627696362666089391085652342725165277776967994377235268556941854489388045258549311889267209820085884362864552823941571895761442269613510646209353043639807311148059754796973440788204610283115518382134162215101497836135019516873764019965934633727688779441177369289765630076159502996270378753931830278752907753933555008148906143373565305293009383292276877039407412613490544758163932783717021328458481347186665750293804878799544243234887795666909551546764571341306971514348704317789827613854641686230680173960519090319638143018980815307780850112074974102976530523058161667838757575725700367251940874804804863502594788975401881204986733111611506998535840147841567041990450475492310465745655974237642838434893582053974366995184889876326699745640685575542184198962617616394775706559695744067247463619978731072361103774168651116027443074693403259757283105820370742111942640964037419687306538313587229058404104681042185589687445791565634865389132499738681001138325682999481618008017989634415196217820319220361877180913625129495078776794054222267345119563569861264053624374832800817541112839058213023418364982853466352452873531499658595225299626488295703013648977527021817418870704064931593755754609128800356506881933542347051616977478273958263039844942610190517008489095804349417224897577243901974834105920972382285831711264368159811522706628998876134975862283541907225177900853113669350187821991694066660234304813378993883312736214414648066435581663392566404534058560750688474233951665575452817263392324318582090861839326300640503400037524256134892641708217203522751286151435484294298985781052347319185962065795180694600016058515982601995817022631265046279476190413558597708263719397111932848896628925063027046523656684993350762412838870043212314446574966675515549877373221650914469048056692826626475387979188188298921896051932921316637361363120398289090218823341494798133384016092839207881907797425953293736727024024082323164357991798481575884225127398448749380034664333559995363291363455053816647630891802717834728551874214968066642981110588998078711725633224315242666377246160158220320775777025389062938983525352983343959088296718072901232915649325000974427689000653991548427424124159115624945671447691622650513590709468002210624389848416684493555921630245108962213522375844866412814538479604961775564468650455381340874467871890720192057151739175210638030991260933209564758202772133152394654079297107945532176525061378268238485463918504607444519061582358292807335962607761793611916904279498103208699655065041676604229349074809800399521374712751006028298706168828870627138573846277203759006492642539269401202639804239982112815544700443692924084342116523143440540130831623718252114884851675158367012871349127495264517735672448155849850554911204427728592664362269125886620815031863136252375264369324317000370676781243960471356841854439146237632889266231633895901123570129575017827517406169346490045888719801848277173817291535898094664932957061465100552249540670683762445811807328070091416369227092659609993302752351701514383940171993626098559548296198547793002876065962778897104842474076448809762656602870364882154135512807055662799243869381579466978279161704167910988478859022562705223122139219201688417107526508218383365550203307217628511271559847360271867603658318780673972129308689281889370446032793442522092002874347787327139880242060143704213304512277127364099727716429864826684359769145454563569590274382627964611873869262326410636759720735202305714953852754271855500178269775823695396863111626560486475889644726892712122791986156011821108156078693870086154963686948966513695724611046183738099252701077024732327903562349503897804926616623798984536615018116049894775709335875349384730275581479994154817089799300090261747162575022444453779240296394449497239144873538257134488830134693802049282226240650752632528662228301949807982361252437562815977019874057560291822668463093431261553934562330218397467758300520115752444656826882797781532727362325530244691462209318798828095589313629520686582228016131309972081358094324271304394478286243140306817228789773350418105255885182728794634258808984480959055698341506617520929814815344508882879712123480328370024270323189621375534453073251608103416542926528863826999339480936939734524399089239656098667814245164110636359542707905162017819234257956839062733009323904517519747130303871389012044077183777480612673190740243555355282209679741453134168903195944458616892235970765972081580441779415323713203594230316413383237702092062253861859207397178453628863829582073834081282469063321638612202067054736459322810412591748755803111626215776655151905780391444997630159339456354234283275579373256566412478081904666399576569436841059644982666870606231070132600185454746795765879820469095339901718646630354084006330084173616175054606877473227501015354570719398087055389578668614994738501540084327582897751889242083829023170790699496037505334927124965053151588913868195254538902379190761084230010800180612481244893198773424165359895178129164172477470329481046728542552437175622302311276181430418297261047348849980342437940997362341056577342399709598249886505463658373063503248250797932648438880278195435323630251248125408190936219626349853048633609376183417866820699763521263857011089627175404808727597351000054214350728523068863055825256477490968126092575816538756587234088769685304958006876676084575513016065663049374546035582217765435392153435205968626818705344511287987693407540482348550259463438463041230880765187638221280566953852860356076360993617341788335837144651941199047295879914795651699803236106559190168219768430209617937222547783802727072685589966495625528244027066763832699701883587553284100770406520181692950224794282909004441121628987379761196854605508443428147972456785549072388386341709629623908794329966129892282929995750434524027592542008696707743521916482961435456762808781704944885583027019330520561543671150687413882426127701516268650611224390289690668766231295210965873169439595943137873217712177898081513866416029903705503224982645605778199782724095624627342593039474057114458274813596863570329570125770542912797046119143009731214458964932345004862387311136305532470169870011776244909780732650870359761710257252547391312773574061108255536992119786331677877714867925118025127470882136488426267297650432285092007970075640565885772863086826260505335944829554844757818202480246544059711351116993868710891307504917615653255950509779093595961614925413974856683422221975230761647009821793921988760605126962409923474124636729784205182156070123791779338819613627206210231750827095909627183258320202520188418744167572606245172521752887937314127321746000205661217690848570466603981552092890900910938809498778081186445712267410243291896837063226894139874374953863086732888716319058355543256632477382263565673519870885732471794821735032833169242461099397929140026569120772315242163412423234003286728613997042230753673599125554295649997552811483420438529325939621953746590111386360049977178746559016283897109331233154234055134895026905021219454348069886651604631749412478691842893847925949381595263395298159186626239822569419988143403317115007988187748326372266763428540286926373527602118628966109428974836072681751993125064522726036161853441840217369669297800796642810331518837328455584846171603570704273165782088411879887337364740881407520824629077334605267882180196081805286398155328888209352581186273649902450690219462095214146979982604815970630814434202253854414374881327252315283687623460452527131510019528422161385343835263416202609323112028132953266896317724410248370741147462288614851724797552731281580908996073770882444674191772814487392973114783817173322820033613556607015407873476092979606202615373895345839038861211680923487595712913138491701257844514906642514680901826138085588516252634836890988968312569875245226088017095640746618989782242901224236216624981904884110252528384378903675202597026814054789527347365411136988825203988303707781812063543895499718190094394127118030918006159456775423454876216161903389539611859046662567925929081533091518341848390402481333048545318113058153279930189764777861317244023064335937504177351280276979817227654349383027701385281585657718120359354697445167387900371556065701132554441625655458730959143025489427318059676362590011479960710403157013286559745521606092387682228869151578613709052888141345378503193403378580276121314888951123440972492949667698275266894067969282425169632862018159204292357517957803541017194987004316334230244745144622143091615101074955243948378252958055077857784067394681947404965421515220465822881401702066600861626645694206084596266742411904603191942710297590355922136161370083349046005203116445172875697654018344886979654525907712771188564183385408454892322520877710261929484615609226062499789423712740127395468499617164971202471265044965959409299350738667908721739706610895339050727118467342539950318630858031784906179281593289382652534543589881297382825223483593771001041147683069848238363344549744988467767572487943545718459695455757566637074417215120103604192456828248346107132748537706620224706169421567707545373490432106189785623560992230745055768350232598360579767763954289113528295930373446122195284751031796282949118912955437306347097562636510239780649574468434256816175444362105542122449986154520463570436443141620275969221527913749674960286415882341540100731920405311953360772228060159410136390975477272890755963169317825748397594280771763839211632333580010493316898679764091257074571161191356834622106495004065875186147586823536630761845457648275367640723720428944469751706971019529668244832350446301907131692317167948326858374034243473854552022121820690984695820557215637184288656606789779536621658650261371175593943432219418525081199623713527984618646873342039454047711425233057789592558274730136020891727004148444819329576546084878935846821934591575907843837266204592436989640290862071583093436272647561576215403278209544132302038171928687649308320490158504896447261819695085948277826604128062010047396885187749711900019864679022024892977767592496264087011504931842796289238296985851714829757019069923703378229990199503697551077892825670571158517864196389576990281129183940709116413030962272030476939189253242951101186546348619658168934971454132053609704360481794779400884486033668710849246554843506272596614587024804533813127982618701568851499921354656520641524467697286314718856580106396882339749326471327287659288373570920125658623545472064397461970891685314800333023791794433382337331167356797595378337208425034122845902151818372600880899490878136270923594757121172449183208484134379561507407191365306663790934503816129186466348701039573026512049763104555235326236699048040239068419524681770517791081885863098519670557033883267345614201534618955874111641513033905285278321204439456201665715117359101042519799608904216068105745085030459036372233356081326669068320140713282995465316739597963929013888416463459720172026932216994835027297567969476335359374570393985361247022092431647164281570023766500060637951571740068080006531499758154911622404299347302710626496293164364683169399163639683942742380459495343209655398793717421478103919359466892716563568871573587549240662399885004981073590931156606277509099449102192555829807132084063040550138355140867500273031907313969808345250349239074781246374593705853530637092988244712331398095623140635023942655029904456155106824400669838696776305994944561253791395834870232563477472964082877047850143683466855036923864169015960945062634369461955805327205303220583303526698850358153788485776573609664761927647313890558712909443081014847194633815999437087843802021487532544856968422828292796866101494102166654659930122778820643388057958624300153336739661774001451314954063772468027694567086826334217811673554990495215809802905920561788376953947181400811739029617154671110693908545879992084205848331613840015608424459725510344827502149415133222246449438391680101624642492607582954124827487752367467460335315533758405449808801246995976826893827640401579108776773003267628615777108186699219524228145826891309324306921205583815452777350848554528396617250696148128118748713577898438976212818425311613348499780285228309972787162592822562890064260627491324007324050744708295946948724487577400800916777562302475416823045717109954674764633201988150653357787133717905410734014707731508004913311392636733711497135586572610792288510882236256541675824623734408310112748049650456856336238629509610359958513543984930108842346022562637782811335142987737022258038953351713355301698553006854375396797604663945920084774127806895810895444652223246131327593908938286441992796626909266486225423771422341363850939703226949429923024356089021271220878147120182939058291334556115877015429506772121275105449667556793376793953451289909805979048963505795252820951691799281517639866992167935242885303811571627545875399893471092568710057966978829006753505555732891950391390487205582422185845063330649930053665128521517605056382865466790424499281625031712050490618242608701086893497946849780314198423211516624540892966913634474499017564761287236677177440962355004979596044049019588783448146587503793439220375738020407492504774372176917186072180564560515008152326850960718732942118664447719454771671883892373160966627275371209831659670860753082086373155625344837250556293489767917412250966513444618136071020465005354769443824563713398304195922329959148628515700110072037517183422701937246409079679104297685993466685202670125162086418950808106324317598878004176046796956363944161012141128166745824222902460234988576079418176261201656108124976989238346156459502385881166548030737158590179489259786514557637545705813818188766510464984849829815745158318353719640941565100495268599688291231236759246100385904876443792550074326869602369368190319945477269887875344877026651321138264166863721645566262766790969441227079046171742685066137307718445486259558005717477419731090647061414546710783252916145860617443435137797160151399821347546837711083951366083365574116356324885803355627763147074528098935099064795882664076633188613159857599915481573437455312647303440323511151308294346217787331202759216810539773597331114312369400812770289645385349802822088714754643219043260248824244123904858098399557697487076712976423181994367381570529323727935277342176598643884722826703683842271388819551700483346517380158623480224926528437069331405842930762605756119033004386072494410110868472246090644896863890247705411249263713682776549136816700655471727425598499787005597899157787634954545156566330936359939158407900783898661176794370164493483386231192400592442571247790824707526456977637080653269292967525114245426202606098258946023717938881069762908902071502155084213585094009208576996650833280622760557911538627167110122544107988032054748662001345719127588826443318503303940091532378074138815296558594167559031106474979492370913990303891016612009850874100610500164397179330381082712406043903850272258560840385541665671661292475208329628896441512998694005357923787664232914870414441632242634173309438352711346845016332993415123706907289688058196122865314251230841602101821224958982236601647523513219673438063712613924030189984385844450528535764369356022696786723796382423326025948831264270748920672288547707449286233129944194194918529356123534687934338121638484237970659364761388585712040788395562352391417272296197311940175292472190830483937169274614038683586104501742221210576727948769735263401927985103971026900799680620535575560047331631343300957001855530468103772878189415342719617176592675178755098902371014234896808055812752263331386665571885096959240042907533671464181862558719614438676604373381470407435977991903711155759325762201325926126046161763383696560163097795522425004644302238061263053414752214385241333322927096452882840694193833090181189751842393722925930924390862821916787631080943260052932187720028993775950689571297988514145512975130725167632644606809192953921941247481305068318738253043369588158755722722987900191480619493934389420247318659436837624024311657723640386225151965875626923532215959136306919444505598995609129677432573721210232740095745615150128869316658345491944671004054165866974552847527638399441311824263560551265135051274026897492685435954934257639993428200526346346973722059550283011831194750858236647748789618491391226968476618857478190431630240743512120238573392275877503345105008738737619392261203686485996622376217344873488829785251193261744072275392664636161168365716721833944879002139821057936636912388613177634189142238908057507492554415289055998772827074193444658050776073799012217959724041157062464654485949981938407198776412908339470789274353033539006596174864087328585797070644594309452795427286524421510152447723305629507308812628724071877557864309086282647388455992878240525767503412895280922284295577530772179422595011592497845975617527325563974951627461471023008314330888459199362733227630127698242765898362879058635239412255297113506942212521336291518676793345286882334949531580846877356477347596849673951980362891881072276622505802172460899078243081391342651067661049173389059679744492728938725933939602574208208277124838469292113103986703517826865140886687120580933429753478295251017766465296450158847644269880400245493109857287551263817165304838447186796655886340796523904452628422470393243463316667596505747728073585738381172058269057770932783220220194407997045751176710387948241060810276722395048770101097070743055226946405009848558954561690013496088708550407762824892882021846274469195920232477777303043195809850824481268294457589799691936561823466987631558066613865875087678050452521825414292442005281913574627754734942421355765860372535377003206763148878241754463409537500262078884626211768332016466680378675465422578094908754258225761687636905564739498055128340589331735179328308029241111140000542668946146559028496091332859830954572027822609472657806395981270081964166032819635551797171345307308227321101856615284718994915040460453724099741967543950909444534687799968680275645940662513098831722971837336682849108430725072383825873841708915697276338044932070861037090854333264758169165907902197366397482977982515324418326665232726243509088027619243616901139856420487857073072636796057435757680742239925776975812258615523570130028682499856902397233615184942612076475343734136134610037305884055918334468849994827944358550702796408347339132231374380192090391835027144700039866672779906748662166984876477941789060274863834407642808677447579107299485160786279750787731040642605987822907248323538405056682017638229314533305759737803466044502717587481832220511314225949942849557347616442442407098766034712374128116750783684168277109884402377257506945748623740961441747213886987946668246915620724581796989577121980820427682871659003491724041278142940657086254561468513517610012202939279451800164790363546677856593352672766276649268509399724822207213508806205474821906321336333807484983955884988737087542348797638482386787507458690864802929404325172118209687020788601702656246377067539379643048563680077918697948098814261043205225047575498020173084020824729649220129661138810864567040316394873022407753831325676420366329539118561544187165152503471484252567187365105671917832058105791514907514095441490961490308197112810549824053039941425391914400177847470925770126512910387504779470683013754234683146434851506956254483750839956678191371766492874818133508077409971714329620596515770344340272808319198412445794644532668083949386990968385549367461982956476772519844157774675635457034248548811911756552013465331680079187841370140410730558007160119923226987000937542966646470026945260335808818999173238161391052948064283692472830821948370657050124615719759981688426227028260291128717430638291957641138546265262580493579827732556031572176233014985911517359736828982228483688549226581547554684900620745506437215620244107505219648097037339471179805179247545005383938254101809840484743036678977300653973270161229024288897111604173507676593296326936340885129906387704446121978679855292102920309062686857863723169973924671637963763273425138549698577215919388438601379348142290103857846071213824366359275598872869976028053529919136119389752651615808543175924745310168311187520316761450700511253246295661537390914818856224673157334683741759081284732546783537528651719321907414662392656565010733554889541231184976166003300103300366620638073272861381232249004408113706240985244176267247258413848809299260918142107161654431329237073135420147804338053537564820731414458756921493363593759711048421521217697611105126698259883996511258003026327658524923596132747151774923006287952788035950600635113657985531109753689946506869717978633139577050784085368472276564416067417236810360959037138747079063679770353307606698438407245041044532815012314774867716126789519164816291145216711863516213618207194755741244662370711390591912450276318177413016692617676416348177414859341396196793011708472599554879032915675835574971877104154575184483726026950073767578333745315475697313855482640215688343992990131429710877118214646316273612667942459766778974359336361261249383044183440969900315626215490638275475990793149305866869894420785378573681113275006742543800136918566133504571915487979997555843283334019963115801585838866088866050566180658756127771660187121103582062542426786118527855913270423398212496559739609547578637443622628165310394554144373454130887998144389509306115848207930452988394419387317778419431024330846688583887158160097529824513742705132260053164607136790675448914103434636792932514873881697251788789246672793721189048893460620657042269835071146345857259400315518924968751800795291950474211452482808807520430343362393612409377880673163135214205740275401674757761810810555989764013555980101792306500096944514997227453653529049755513675933777884726768144129280758770944460528888226899349438808928393632319303419735255696739640279407470140949671977317383414117872870909025416736867390182919924250274972873374656044948766341241660375263132536875845778227399432083026988002078528466408918532608540338130810229264400837801251561481160201770873966898268748655418656409783475374101655845545442275634128076874567788074282416433138577928691363168393844059757139423488067850738227964565174239206490530611870037504880494403614683193284451005289725920801713169712414288971588583997548729416575619766698978684089200997639525344161426703852233599806587184441773952109843239542272990767682986124253257980793052212858132617651256939581361149073117844638245456328580717357223973067338849788600080613826257409818385699044887574503002507795737691524547222489107343113559032568201968363066011905007182580269366228484179868068371206586062437888735192907365524502374630635946995507509988240323249382328330223533342488375771183238399922816018020476686159232133633390741654829297095272402623335362489096621718424913739257927406269525772793943770169194803319134659406807164446934418089257876898913785856954337372553094132952620044450488547874259941984660637441098850744080753047669200879112089084703334011171208658740430635846624817817789944460439920957772310958202275704083420105101691871923198536152727661704823293290631352067014749249156060059543573511101910699549256330057190795719038261249805302442742836269867007533068815780578520276168614946184241418907115091700105248810852877637816296048207079207689747376844840681191370896456276986370966089392437731023743628347864796551844522197985545276951693728140796959911631865338268631671543463884835582813527741926179902755385103947286679521361477215909055437987619008867171533146465778904898994025400421276084784031755841813921168402758671957583320732647527963303868988023520781421927154676831363544419606126088429020432312126976779185540071710949718407997007854484390793106498185411917105235742553577630964158789511810710583756676051429654257903162144536797636115041329784508969184904571997142101619692415835967895120341664142567092130580087250581422614032448591070032337777574410093812838111835938778577089015639324017163141010598165215821031522773703252868305491873791011218182513274923662040271236516523867787548300764123634441783670447064342968262845072648484062201120902826920718470466273906561604194080007392766450817143762791260203564994770925253626108272194309524888909629420219085717859120041937441493196694191869745411520288316454864002777081759009485805871734509353979191980359266256617244744620232629708869966655627952098136060007144334955142417564323602176352875070367252879353896960966127798374718916600541787931955775714931792951173629624966644926004698689884289338631729553681013994600215045745311729142045910156022988715695124640159467468362865044532876682777756887300095990056484422958634765883621874409876864605997199942413737034446374132919194482661743940418585796117314180786515069998115844905931199425266765397335397695051339303281954699896551719622108893223740651024815391117934015954126352957280331691377839207474992120818024278433173509703954836943591734881798815451871810564730724140431893553552161952450568821387233831653577698083119341613050195122039182269778383210021261644666784126147767152710240342005084285868995872658444174551251529787350136377020836197355340990818772094263731136365701122963876856180230168264441473840210838321369382768347756147615671075086958646616444155123277645983772001787091732724438934984905852567472752477032211049506434739030700313461221514840579119007132303834720975994302553968594619560047953911052450464923052806155691197374858735106772016818348958449635935549760307094652462844273233595992183542249338884965537690851506288192407313363306020484789561995618639450405399915698770977740481220237966557556734058941007399072481216510342946644775990650975504293950435269160469589626275268126933374082164412300266862263145009402709434839066670756757394952835482297480988016894266311694550607219694034289966910158982825186587570886007117801617866103160380694556396066199602319005075076424073108565991814691732529688706904526411698814906356752379687978595865895064004643181196853432562834129744484531173963496748293781109058805627334725890244877163866697829653973311150788836248611321095529209181200491683167763140212580237375912414454834611748679764303554738184750950348619700348763212491721958753007192971255589724409726940792541613549465543765574195002310007786535900012268048274913992133660998720117511610125334281280385352482269761893559308239804674932396530055598986731420735378604633854945233710413522976337460654282462822580802083930082792385600544591107597255589050231871064723840140294959480056961153883460498218573366306684849770115533553453329397598405823622523656029798001496399502514131585394721230079494747709698639426315450474939980950389148091290976813196030240793187755904155549515611357670500132228277629334644134392935959601695640383716504268131167776021072101220963405022635022130411163450986039070980195169864393364656393700361765001302417081931261790335471330636763345542396426549563805578357611640833082260318784695057411578574165028409897112633607059784231588722015878098840479784284488242610258863997459436974685270349254837052168488321079866934327296394122046429958659403606581322784742293899059846994499096007589417580241507734957893835006601244417934289670949019372935653554363508211299321466731235127076165546470798196118441536549059105967733544107886317821178944727386408987806496777376661233718014225689839589262716462804385105670489994330708787742510921741875068851112865953846327946104234543016168285552960396668685849398936888406536988059260125128640152452070749943156793946800602645693084642797648901717589338635492443909359820765697794701959439180940056722846638842053897838123234867201114406823262884994369191931679115206784094791223517276914366108511025866330507185566072173175138107995953032658204138487401108458837946911555203329079753889122611027110278069259183621365817657603278300342350980560823151468995127685424730786486363044225162996540025667187618337001479018603971604855387074645039471522270748851797867267457552635508835058989318403156755710746271849442938607330577157995790768481621017883065124929472052088464128019248935563285427511606084296985270087325321167771134628804526579481998278153787752161467505954429383393882451491172470614753400479383875866329822021933211880743405485323023989383427258105306546478986331401582452926008635760373844215928944054225266751869950938681373256745995667623488754638964304377738564421028488135828034675218784366210058874906623031935670535448374641180463834567905660490585282320240252517830177674393009869247706859941237921977686992825265780863902826845249417554238430819748272303582012121881213730468948998533440765181226796902514338969704247090327452969431008770052323224203869154521755739272000396682637882345438791027183126473024186327150446375506699871935083436350313568999618604158370989187127926842927111021110429430326827413102494854953435319740062743107008805477095526657953806195288630519492141568549983167093289824434508068365916315816920567099303814867367858983477044565325469772292768617663533674631275615845228173604897877738721538979895320400850443531312519521318686026492561895563891321049000470999787410863877946441950311167693886974291844117875990923333239768378809939124646033601609093798817432485570614870525442217811979485457955598940531846669333184337391241902199331227470583144463808865967366331395634972875121397455222057532748339523577127650024584415749460884149300646799059342711598214381840444616096505875234085014250755596373671252184367794019893109288312326722302975072788225554367778517084353523034581506082304589528838178098294399886004359116115125173636951784409170918870062939669924030413555046217379220353513927506785892262147109382093568798819710342939126945308245114618337799522224038173550478043545115037599203883815512430642773990488958983718630323456842616579134478454919091231490109807985156161202952809332332125379906190393922314436320833212898329252537571779257007557487244216252475579321884551602792098634779591532192058059337553210113039861512619609337640604631869123481990482657132074985794428584819540985600115443476068236885507000872957576094321747257078447374894007941356715194504740869640822438962683824074635748091731499375761172049220499638118898871049832777479998709800332932228295424238961588538667322755704755821432900726830725158615260607959176775204674170672430709267120365642549833393659630387237426133220340241949485674970286407934340178414537557321225203389688451062121331426992020755104359973207599614554992828295246530174585033650165568833609393120846579232245085818832228561195523096249176670454779392455248342691655791234272005204803524905198786236069234327690323999242301746863323914386398620034073534913207170425454050138712898805954514960740592024082315700354415902170005182425052459306011562568198448708902691413242526801541296957620520632896507843291496581622831751933767105295589037917469983504111487366738481772936587768995200633336985975888219574766822364252694317361290371064230918209134574958166810131433903562591570512176102101592818856345516730295762536996634285725717905957511004378528770071563261806202445995706613649920586630965961052168313431597264350335719101158013721325291568909090713590893422290819113132562715527342878187672692276567485599708679742685412661648490029142996829085146953098583786537157038983145158204706475737723205671545286776730247020479742132282214252992409263307595082180234078461118920311681007224509616679304512953677574507355046955580369548871938513798564923515453559251630711145115074081363321497134108519574740842818979971187511869816087752066938291760225677828180907761388443773529298094916957240687219029508406226797609291724741141391978455419211861634631698400228669494193603633104836773858665443925413957641103403306129902159446446244555846401089627197993853190792749405771953137694057629475425037744015917159388785659576977582096330558346663985000812253626592318367896110244000746904777209442902455041211283934817633531706660377783855849260375172227223262546918305059561389182348831455318488085526199287751661393385533473918974226991067075166232484322300591743465593451748239977468763580308700291886528062775774095301303587344788592363740686377972536999685668296151289339665998549230800148881729638687009691352672619917916601616699829643532259973633061825306872394915378604219258093235687980147113465424136533084906194415413687333092617485928315393008194051106050301267501240602951357225767283158456311630482384883058027821522048181719915718063759655313223486688775580622288475566347045804447990909234508035908187274786494102547745478202220014633133777974993839355191781100003393076371471994826153030193495216329973392464819693437005477932587514471705642741517533752706701327630161136002673561939381206018826487528700336772567013040944501224056546266742031933078277518142286521901034476455221262976479409965076461501858940966099409618091788927691658447884334859076171538023475750382949958112224391500666086777708089295070667593642056097193817749025087464916989872063218968761071354707078453548442643339078388438885981726037580480309395259492974597874160840422896254155853669510783010329644452095024241206425605292791884573450904998089458914907989523423010694499259650312171947038074308268485955011173347057045759335537110785756117264241722010354076404901576360331218706346883301278926991858353071402490978953583139101957766448348291089299320412799104675417277644472456348140908310599591796258646110286997940118091278605506160586072540436305018910180735570894024940924296702087716457145049083897244086527780948464404197902404567063557353770193029311438235924250611668003476331588019637670689360419201626509571103947864234739939176742021820990558573878095423762903472604428072391652475196471883319341615773409686437022315876163786675567146055460073485679724550620799718519152421038530391390713744586115164863042730798216164551498192177033627020566837228756924345765637385626278645782085815847894825484067234636151004027405406467248267134619544199326454540292829927771136157603124048077591403863108698908700247529437134850189187260312175948232890488131167977789170154004479053952557984526288514146069540727016576648523046985921091577757191357236393291611557366807094599974785091919481302802613045041592771153326339762398526478274722302304280836144086539793134744925780225949995563756075752459005609047958906695153125501826292881940490207064185004969259220425332775362438981627134714738719509999158447730237357248616910098612837486114278553545326235130123400581621486404761932324802140698371366570293782757652187833465793119491429771697669366017983977288747303729303580608641645482357543058850224240092038801151969849315000998820839818602971027002729612826335351191297468364542235399578095435956881425599848160999548220750105250607444083989123000116382734188520808461526160620422833772576642549212634761764886585830980330571309487330196739118742663271334090591573366618873973487286131410838918926744643662330159699569040100497617795365228076561374489873545970195158242889069452140986095897378865445069294598341337694298094748617402426095548754435437239316356517103275354230276006803507432082018656702441362998285201813020596773822151121095687038620534065362028402080859644856125875815298531645167333783753231548250523469093912994775748860087667813590297081002206389266332539417360936660197106203162363758476357238030984663559612930646817454028841870942200185828497563690154508210287656499891450969489744852685092404023872261150572662962626287778523254585099294967584265016598563971547634527976719091565883682698961148490781741161326552928668509712577854999306145376354194453669745955733019095248733274358575332361750782180977204283209773312325376568903647295004897124197362140710615001469564465871528996994472675998826944481789704119268290959418332151192219479785745087336167366624546967243216027841702177968702768379946853235431879762654221573864782286126144007096895757030681416674464213430629468187851708865574150010008345902568929642207039874724222549481802007898962448473298664395508330174047655641071131291142257896506384849155992091953762436413794173901405466254738409910194114253551749652724789609924261818495320911623966104537957669745389147575698136961659396707327548340523970925494406052682671420465293644241047448007634821503913774583991838698337183092638866077990771179972854566994183916973984006708765045530263414663322456127813892564158435085599530796991190519988626495031688823989438358626329891118861975554278656962094982333631719888334788121147562314626352862470611151066322677091643327175310976832343057416842894586525704981286984890745914448838946730704904040925064182919989855116503413994358844938013623727583697755829238221988140943402720923095699928215278138722828319478511208589059486324995157354691606248359691370955978288509917295415361474272486948738899148184294255753459032935785712152472966847528859945923926455365481907978701204457299398925013430574550796199812643138259089819763158221211101007039830419275639119210524303505089991256174976345951790844062263146897309334330555462207862939039645915605864209148615823320225854514693825161688265899598021793393669865527131419069672126113034035335369799801888734589949042501294897158406453215717701983999786243288281929001681158402474733338694558122898999446420953202879770736166468205569633335058740588912224365275408749297685672835193073623945800350249822570558024770305897819084700773378103475587195642568869785783480342857518778936647370757927035674725365319008227471755180088888791943076025369312984221916903103058900793230456927859458586459666765363588044724009004904055992389813256602542681706062541573164760937948678451649208916254273193004578588680104120972888501355613234809680652023481568533002501508638947593669691306188260074370604890390274940161657012851965640317757805359733895148962314811971809514151411150017626576565021779534142398854297198747862592487031088389750568829938614918396661809927771541968601064007067476545800238490485018096851022758909345675373015502538387761317552847530573670052143903117338548484199347911466023221231700685437164486192438102095368634715951436460167018087635737916750831445050380004305774869554146022327884378646941433727734342427398639889541842700135438097317773361875783973330139484710015029951808901640182403609693761829467438175378300519784634580386596178976549545440011934331165715409128933901161993706316610334875302331138602853834605982355506782988435344106299834573135548489152452610390722426405835328900841553707073000268958995176822028782024658360855009042949650994107390435509284010674284445941438014700592878441883957225157627975179562369132211265802055230003547505502857839129887172390710042074830419050040722793475016670415941487995885441813600896552057561104181609338661115281054389518845101628474957446877046331264880053398052613803947885253235230392887540144966394034672914515776509070137914933469239055768658611983962429023315466578129030268768192728481960894415016252264206306561165139017910609344953211606770336450531038148788142329007562932781731958178289558811182636279049184492826966806098838962103526650067012340225324925300196301660565603107795905977973475661284093434914754456879735774722308601898215714934370925389010683164773133971385514143010103904384403697826563933153629765253647425014827266977318733167806767883511334896902986143684834838473187383495377099424751275553448894582279945200382606475606707832255384478531752462480282779711456982255262942526735891349174014765408606648813709618771822423441522032212524358465079746956938443872440640718277622613594210598734957797980517205670957136855154380475142071934787058991440601488464426020557374874106805485673428407857525453274004147373299020429133220177716375759998503801392254347277265699707634709791044828632359335631396353898072699955435487144858278008400318268258008586717313337278336158974128205395578315185646011878260047325409988319527347735149678861346487900594828724525835249702364432877604822034889321614553675406596496902674676253705665766510547572455570109577201326788174025875178956064117413965975115219384717391616652249139740420062553528442840003760499813828487854068338274257420643123336762584978358377493776550958775398857212570662581079484655150087722436386368635364642261594011863568626530606939024604578159080955269094953054190701132136562793035196677568154784075860970568278479730214286222781823539578605173493848327030535768852269467409532871952425432556666264835001010794327732625469928331534527365757390734811082134232800797512274072699127618998771666902829660857971909081677894056935225180238037491163192837688565057927179846221180630785854436879827335751267766146393127140570559085180714125120957233886862591254625074336569848811954841553102696481978991239336045009219776905286413658111347991771140682663932450631854055240944767139115371829572800690347475901239793194178941860738305162175816748324321871729098507953485167108024358121193165933187815269939651501838074271967415813199189216539615889232140449356750336242374924859870498027378805374215470208358991920966048121477370626495932045189785044157138891661916839988935741494231730178158329849430812260699324253496380672124137730466352024491663856837121342614265889543113510173802462008959152830100018122563146566443104451098987125302562569749534997116419439954336662024204154670841506310910945620775995414793974267386347704286814713559659128160809115964377109807203720684377300228280240658909186940815474569531311422607214247730141492428126575404470814653029606983059159454601392905019290213696413788684875811998330054402350560971522411117117376480430294241149268695555873725803872907184076478364955744453212885734887543811484655481243896053769507004241510370330144856674234907024781113246528829062105570717586331339230204035234531878273287892654660975262358395357710451972980239163335388887818460392575122908006750915028372404933304832398919679459304123965038999348845930035401683421268748168828389365745754675167298293148791160080226149715898331847415776512102751649918680218366486046476875428061026575999871888043742101980591862475347821366873071934201691988366425515221178124089884049509449366706249831271318473332327731651532436588941826454675893261500748796524011218916656497900822435516548135659423157552665478433606324568732020131244996792160679082095688788235451893145298661004183802883849844424957597710630307700737400516894459453481299791941262158506267128364658186793741321023951854470121290457984493083865752205868416949023241073168906645734493638035270440793799931913819241479649627660620137857246318563974898272945907438067374467532264132344461329083326107762817476071020938316857187629077607447650322508674617472376904455503481503589884993414508074792349372542998269543240341169880699328896988618817076212952366544130154484298780713169350943039552680661188705214945783099908364898010035583671781202386923169892313284801062731592041038517747096304097877994497712591659912319054571791730532159658176580308388877325572313622713869458296889982230249577982939921169734333358888118855899818121169308514400015994571700464970570034195219139169208614126863369114731931953296559537710977417131225026728862013591973521169916499491415262113996508050273168484872615942456234334775481364994386251474703052649070091325751772506325189066620905907820127159518431343485307021500761412041818880162574260843466398929640906270917415825824346556966534656306020675027924139007160832754756654236409673185986813553516808182873395157024465756465657034268257125955905738778679497265161968564038048503030456014033105805935377981548319720834955051564661878466471800965024573020246735699970914099514808118588759373718090006067605534206260274731503622433444984448856365956794083047621967614125607694706930346568953808779318708425132925179683576793684086307148955973377827773279403537573455214206485477669659005854493430501536491241869324570760044445834860211806177498372126066590080627786105256086819832317109982389414098814804795347443826675938931810371805321188708746252689310891355638678374971805280559519862338196569606844881735645478560622158797344135564010052234819841167621027182546286990035953953516321305534771083662228697130879118187789539053642497882673010682098786219485960563186445391520404644812999133581121279480327095096270251405424070495402585654880139428498440675035405265343272467156968553380095793041027004544696393836440570210911568064639285279787801286061815864308894397974203721895447986909113960211536646717669796056149344143464106548538727852988546615023556875976882531696053833387106479539568796581862131362656526038289999093725082713138677386591493279197938471318872921243510194101005497538271726281134644526970250416515428526364047791956394970415558083011172635361801535012323445733796392415773166720230919904781613262710965445298251552210468784016265884296795581800800551262914721326194161196607230875245858662165078908754500315118442281329606877961427704659397259160677581197638299529308256343296576542677019959689779072537088697766514200113111880219527210964206622595208527606369796569748320338086875269424801066032514252371132474256872950344697027473916882355692181047704884097407009560301120145775835738594339940496152702708155190611175170813219728069805509465508858526257546043343500362639772672532296777197231081799806670494773535176844887736333239173501079973813041576831665168287136569392885142775295325671836852446007581225272883857774477218568172570186869409197165473155437108597755039151718133734363275026308104161982846563821249511719430914569689670169400998111063564127212966077054295993277513910072816324044822973555661936620025229917689673665749383802707188373236998289168437512772799570307534447784998181045127026910704303058604675015279736969915268227173664847526516269771868370222604398794117007202061725919935930113124879908491362209008400195096098459911560533812766926882319414284576823394754322051472159951319152434475779271481125765696672346291578783059722827996591651767019839658071372669683127331993440477445279812938060005073428752613509074744823040902375266391607647545363488155697084519848965150478152032948293355287304880543262710415598452049598020034892550492249267223740598615599706471452485866173908896856681229086496320528479978613864036909117054381603619350283097689013250381560009433269152805139963647364075333168650675812695338653537477028437852053079759855681088726985342791898113157013895256925830157986121136168118945533382389746591902695061827231348815695433525117002510172544523123858985752688452028139787816957965934890232399007836332792427228062565797843046263147164994726748560186497390006140278925114377930826411654297740834012434157874080855681814805962090410884335240329684814304060065800084282087955886446097986997109978694129168235307849444009446306476035530454280164217654091008163108520288048388698289405535524760926432263985260620083504580297384820848733466218829904053359273355331158990603086636009510233001710020593474143712308063824686275722410417773070184649399874372220060287109238151775387963550358861460831296585819272592852491170644531718787353056779388336259568910572286401509773570631028174726628848854773025981189997787801449601205086724493871606833354753275982292536932683320240828965607953890509435364274841068673559128216125043266865670303928124445618696583168573700972947520767144046549614715301250566562491781295602433319071423151592562252981513501163358863284082891955931613925024066140378794058424382215967835761260996501184989120514245527753830492798796595721961794966555720448808165616295253417454713926925362193224161388127574046727493201681008786842920337261662456643334102483083444514644946754737686612255816701005855552247861165596136849054935438238546853159090829839909546796800993734175514342763715518782876924843766293519814911569454009971884421920512835975345419493796020378124196175197478060203228666544733398313419143924303477608861779828144629735461342929734615135497965044970919598908032513641269176704644781943314735396191442842344997120241636062214369810978770484462219506890264489950117028878808290023622067702861358714038043834189847573081652477371583200465206901602653731642691885390541913171973619318548757322274228502412463273534062396206474437445947967044098851874147528591367057062584376157731107419082079150353610050536903529661182094429841209761437091050856240475919882216305837037374260617873177343078386969604260380751203395595194679885201463118085748082065423528745509508010507571199021837680049293861594523345429500651603608911064472459022771449659181814217452384052218022905070458819533785409824290267428683232009685274818654238052210712724622340500594224235772020651229696450246551320197870172203269186343543324344724303324339219991135919854569864599062704043521875430366795152328866098069531092703004027628718020816338290788591808731549074165049114525913838318653950596767006059426569598168908570916363623203309562528379895375347100086620471310689518564774683809440178182491494261118663392486169209633804881045047084193887020474235966443400647545297053300922850716895002206875826655725419278098954902358419503236479807424005597132410616688276837490040442824951379803963605027015009235021297074016956773208095306136807244113783823000146708112689171776556597724507159647931076582619133624161007701307715664432451125608010170679295900794274750864161386070557051865912005257260645006065433368712535137603485228335705668962438191090423106826732478550980259566133652121092166069507855768353639576843948640663246391859577195234477222758674099435598330728873407770483036983647656810909077816405394281558118998249771556831431671865674422812963711058815172920870590992615638066662071109320058512714692851503839972084038774642845563974071965148853719028398459081519178248529441225046818825079899362615361096960272952846847577317951626129824253409392741354520350267162477222826483795714784607961110327368744101415263587456923524866584954283967880071407132640415418287600503756364948085631579303172258989401335581633135755518066145746727841412720405433239796303538002027292533876935001953176391989731618032677254841585162790324134454762283345368410626964512587898214625765535798823662198220449125942181208190516080441465234375179866798540997321601617845820074353076185119831715539754869871845189261323771212625628062715947409772223511973582329938392376879867382794717311722999022733495717364993885671649698170516129153671577733113529625095021437606618727969858248925152337805423747362165824206695096799433522470384120813393878721322044902182546748673818660941643811681376513873385124433898168016249043495964810283380294050416381723358817664280500568295987831626289771749245193417108998144854324592989978468878221192971336802764997597635545681384882912084264373682451955931104568281039651565008787205560108941453799893425194270254525216055423067062640077901025628408196962658199917888754183850827600131690345636240918237473066370244619306951573749165805354170773259112831699434545374100940832013117124256772811110492891280418651953026595849218544306712145330389963055688742142890619328789369021884364413295513867388157763268658164988487151204865581344135692634741123840501294087483419213937087355165543461442122334241629833735866671408214537914402989152430142199359031455274393406564148875424993875279590874115024280556560455476088304657912350809573038608353066211455657571679950352342031388470098718308458522574495049322734187049479370777331362740991113529363324540253242353582561028507565945015321011104094768189158438833747657029513844740564249881365742459350478551207252440709259608832553698599074660080561877985197922210618396482983920241028795503052517249850288988708813153902287365359840706042154368696070176936325701236614479918705389338698016896060435141563279935755509263884947972489497445999721286081808959031707262713636849329438603982939902565723549006521793938982992500513730085552047346603124942634796868858390736362996481968118314944523865465812676959445371652201805491551189376866011196914463841769382612457491462889533454221469400849992514681398504075345114395899644088670996662054867569730548910655872314110995939097090182004103639649807396307558322589543317751364568781702554295462716586050360204239597263903646754809078717871889269887695587285536988379405528657875801447848436350118163271468093315898947919089064178897193434658106904353608232501314499745850455084665010035786382463825628931557569866610797169342901418013070089301053707930167802192696019372937200719690517792548831153371578840660522073285341779545559292613687668208945171355069331627835397349641526094017990073271793903932139214554209623696353245380677836023761792920038347597896004441068006905163053516959153004996039990406287211169646340500449755916954617760820689435247191951207584566497071635419892218244656072045059622423248478084399492529126806151415138713493096731431911637569237391879188790400314477160859222147301718000594489874906146288187739912293839770723966648564799434472306643961823330178028402599816885727195002612176311113431765958741674516314094654067737381937818077793782655005083698106639973117202963511723527633928806259810570147400337100845937165018730889306818747371417374592123352732731318254216173987941640883409972294041215632111536002776151485735660872120893154351427371375206770464067547741989302349376227181056611729433013445454453159682827375800874482721754510599806642012675822795020737582600728040342865761016992492810449854252557534202964807136657168232779309711048690281140895963447172711351249660284314161392088579760745409936967302599389794195184570394103582280416787207652179736917533362830728089396337348973672591654902094417124744938220751138020007653205253644216476502522989283287167754194564164901174225679557079961290820057819612964433404774296489645601038011796135465071370830300608310684514955512512429734066143321572710474916494549667831446070369349896820021163375979810165218785146393766054268168918212452833924950620590427776989161718296451347822931290020715524165580871493354065037855946953023856046664221087861131711894987027193001387056402759315798987226588591092853951186689709619874617995668528846846987174845153521640747061314133556964054668886745715417357283876393045425985386387162508755073957224781134335242297206229986238646308337451073291257067449029714459891367136154235440809276196720402175740804579087702106559897786259384528784989778847983787050661455581324530633424572801148692303844443500370975099534796615884703922101996231826382550341904587986261365197845762838927998085478288178713209240092646550160836230122631820953253815572214985695281860126277339579829960832957608090443250457379970137252348368039217654445130368991309033556945673569729616966945745070985712978768507399411388504405153335793785559425808062912738605689627177619578887603106194021942960933910017481069048965534181187345066753567311683046661678835290967200808878845030772021070526613462291334063082267410612159222696294758554464423223785808393338405299238698163962864626869753278615430868311504939931924795893188149672995117054142556491602416145701852695167659396849668297325830956784327834080779887959742075247992719715908061210794657370168109852739272501289729362573609865855496461045719246754452301690259420391642583941185694752741859889384362719095374424678703959321771538249084172196827740345057569724615554356759849504246288732724868959127480877769929936496825718386189395676691167372487215315673119241016652721741747299413994241264931175000005522670301933555857021076258826481795631649558753967703478311926669982723273345668343463839704494336830237708095763077538732904199367559051708404737505212708505432472233357700933271134272833763455393607782799866209551618555241994391773809881881239972360711138719727037240563846202145807123601653616191001453013665251274832396403998700298353881580356488967265597713625694025766788360370339762862629624325423627858473828303177209412671848842939818111454518855691392097743007346519001033026513858121368231158944015118837685848301973864044953143094760907463882801451218108047556249025678866039109222579094874983747235465714254776562623539267060179701361028866289144714453330854485256346616591959760674225607080766196510584404303939025434564628898069168360500443765138254688123158169719825963988755949457444467593755547016409718151745023551635530280991055242829550004691894383002938533172290370917693636042143931897280899516880688780581952877515633439343954501749560476417180266011036669367572983179102618155738975092620756671394823041412277045117478907597635813718565111328442140479696845917352881795438714124350565342885051487022224943853187904540893656398683069760785472908682007704762159183092552146653973759877780319673572162408635327151854940708864772539391961425058595775337975805267364399227084100064369198415342546099146251981436245032821289858146684541988590166674792270396738257776678995303026881936134517945984502247544844545667758373065657792689201253664682303122846818172951510392499314391561013319358887453266632259743396913559046149710090170118229677285764469695114972726685189176296603438654387708789172148536017971797505148272339513776771414079920660087370539288618208917766828937489487455838134381457400512009050203807351416033867470556746250229857628262890726125160663016966039776367069196799100228414720282530016619059905422449741407205638433134523570523929848034322666652005816134644279660334587329724927065814586088876666292667399921105796245230199276079712219503291339350029345289560708475728063798841850620782160301559692958417520802975738154531055172206074921676490026674294347979650398588239345293863630167893695961401853427156548611469805041577935408397608018292775728430705573513934154959022877558396546185114541154803267449665690607547587735056226601696232990735026565413661770379561332152410234710122059647560930794124603361234883587044686775204046307613246248784350048817330959199449224299485812196670442791763430052675958549069340684273542626479737255389914204716816010871454137972901285838347911319823212651606818807871393283699603593701056666540144750874064334535922315742999775531672390309873606362596710223040528142385132779894172972583314613808670067045574457072548823704196494478576268885320901657769593252067298359393314947714252252680166721705514314430231715571540991905377144483939896571076810991066061880184815802881728660027409246473372775810313523485872482046212839878579238501805524958619577157846558428118475697897335727361059985571350961832448747489236168531223709882475915728177897317803034025305312274897099936383121765829114334565238661811944856307037919492410692523686944757701277545839750716158411909587148072593637151454266519894187437620188110484654808467253382359357580490625360956050372312055374892749065604583313322449436865885209319990271206008037356270444400161102714384379100636027711877950847888743908922034004907583325155843685508881055633452994729304065261983847603126199880842703039497771097401753789013890444536069198445290148894269743682057404550150205972238828864087582581218030437979144796028424418158912563133445987592833196071430620842009885428696626689447610444465517763240089753912040789720291935626850717550490164124408274042663212818501217708847413525651986494320959114059085082817289508305199493516382520555318666751072383769472349164257616508261052898847157560490209547617021967212655337797669697872239946791946488056455474353917255389085450610519869764403436909357157369626316599487522488184623441782455728576233792629850243797773916212901542328229569540137230322928754320903246261266876156417259307330890655135663664283604171365647686659127472493774265584172427009540635391987132250142177211462391396617498042431452759014805748653911907926442219127992741990229017831132320131190007104410282202731778982010879851916906602485130322942338891375443148395578706031789865275043364504081936950126327903468446336468652724976632580869964211171143951207353723671180830646777227396690500905015595806705938103001156717053684351526321285936478516266247188480500364647155881466933303226252933003743530820951685253977759475298035042244582307626498653448170956270933229744961999845877150211782270565079749604165346779885059942530533997458736306147751329803139959882442702627926182153988010733890083503722484798239840384928229607114694592180524116615288133496084065657466699680280094859470428838255469231855747283458987068461561914850697011773109799393642202895878179020473029520952011422561512548391875222836006664931128021863674395270237672290493801328945401208013533943634984900007974297950130811113240563697235292550196263334578384791513882180034634105402107179543287411173542738213384306040682387991048242181759529961333469681411177848504806121675214607070805256925403565831006005155534975193960049057941605787842852333649700967959382232082901660110136707131474821300038327613644712475941594949097270156658740124914995670303190326845863889143574194218369891652322916876504700123607743395825321661069487594452948412868884011846284742403774736787470942478723497939339189735422861343826479339514445497583826305781834116973477209943710150362524750779902446662966859728120314889272533065688034474012344541547882175406288009761028020064892477328861886011939567687415574049543346562114956854942514581715142915430003478762776793404778294836807857176046299582213906763565333681163891062017932185567534820043956161743792419641077568078945387193804232957855170809313521339476690366378640576489027976928559374958104535671672642087116732319261109845432110617793617727621556863431380020241510749903837156898780621309101561158074925071926281600064454485315121517114705389290986602765058843886085156235509313350558647948907443007114605752358090404191839028929197998723349238746729102947163150215706850209890000973478522061463032610170307778006165011627467226491745247404473492015222313912441131802742211661267579220265191405196916568346011940382172789752943708885251655524783162602901105413583241753468986580082757552059512479904489277033999444244934828763649327971039029806076372309512138853017969969404249449119664166600227682450821316170591933975505000868499387595065660120263847605816569050103703751214117387974858383681284680373198901796391323808305566820908663443861212413933163056981691340042366316931662808163227605413288421568786489749840468084288026279362362224248562061318003085134469045073042469985818395846324531856608757530725158664406573837343987328046883587425612001371844321839875340123108343528925097182388824912734633665021566299024699970297419193069104022115826024213379384524550577303945742458095083101691503203722651638153616898885646000009409896479370305581173887296544787142332248056379447679399039193030120121300564873211990906282646387261266457226790712787171254925432289020054112176582034926644036446478618816908055327198987763835692235222999527615112882665033130669464669537889745122198989541361683070879906962172084111357769336706873129506521116061637028807954321101443395676402695638892696393474773539707142476934111860708346542889565618880339708006255401220396714062682441507225275299029825955620840445755431879898412051799875030251697498571111843350726192752514971991098919476512199133398960685981015194090008320658033667527135334697576527304303138930486722138021665650807386836849971594651847214188553917946059080465713949991076315762025344227828021853674252885777057687086701313301189720362996310352181424432091858879995592608210194166831437645434462564342534373356930931049436859993828080786430357620903926995737038428855176830384542724779057333314122510454056810292703876241021175645642110629992548597318240117946910229347470326211415977402948852251849097724861836210958690812006752344265384642490962314525997588395057214159051357281498272017033083125483442006565570003206715404040679362631592273795471974766478944012737363044550645386195749586477741133936725758927857162266929671571833297761666959343552336977072400275381149342904437351225676772338993699688700516650690428123714779373200595432548245975352290074722703127785598518240771335966076129086866368890164297418754328558173954688596284561843421772348637356920829010420125446186703178345754711064859942791603728343812776100768001170546356720238102409038167695871001983624728826703708393368687021098247324871837525680817897787694422105197799782849239951806245636282022367979530704986451129867240300581829070274812200459938114020250015804202509482365604774935520397394758584185373299857611352706662055808012511653563197763687177792238084104709217567818740750170511175815760405857041433737621535456803600259900969950821748494158105598391729860215978856274928802759631040862563107454040995077184538787325440625217712525362312644076047093053107671280735466283375883869247103495031401064476190055101160182275892975130863029602889019110866789712145700086499064289168822140328140449148315373618605930057137836737832840549149387999296705404191272174323634957844252333985112261106806487778932614011417558284476144900128120572137709746112990494515166078364191512746651900061664793458211775574305391233075157047851209501686623159078934516230008320510973101397623750866342733038020291061284131927803873388454411346283350144884991585393594362813654819574944853010188764739458173471632465693467520387947752636541145074602372339864704786571207055006601702803576373400907632068252219476760331913421101837565417271279775663455872655509853128188901092270874552259335163227077842515977582418551683102073438687192420106037606291373051563143735059625815449032347131830575686988407301086749517758267898943656310195785457654958881150515485170573054058242147410081786357506117656622456912037344453865842367391800822089239232747222407613929106048754451264703770312861133844592443874775008689391128446005059181506172616196056599202688696181528289479447740837887556077657525985353985644881901748454893626490660361219043448068491133286613549978964363492983878663944822096291346318318598137520039166604105123743015689399725640227994836788850443605720049623964254949597559365842753184903827896276538763466537783120025806295828379729315140106461302845705066928964997886135274984353582398291501728283599059146894832727600380570885575875202641071351570781983443753995468286762857261240471965480762415038125494945221185015122202562283072885044489906730071081805325571135811769105794798526291391999007919645266743909572856422901578371406845312504016029313719549402127305435179633700181205065285193335359088693808775055150727781314217754176502461537845429399768584752434219787862889802047240336068931190273368670129014227026112965893260704627222000576174244769715997346174098378855283665846205190774519705153754981734541022365013540025706007586358513007979721514636617016345300990803771350978872849927649044483535446214184191681507006087144025181860255742305413271963586525755679606357324268750093613612752113773471311732714973211134876310697912747268904923916755921394555808528147530528354243005289280972390877319340486179940278864199135278346289389678378600668507791090518020140813590905303856638237786636636849348509155520596124981499233157422181858707252413358702596758189506204699321231525979624251980921433806020226176631244455118391074631183061914315655499202843556627674804529731475857224389877706380756586538575202075153750757459395888546492596653098008839100184143841617407398465058138921951826762393856156235618655494712561474282472627625210079250714119590029531854994408750154778565493948862766558168603665427503318784022100469329730842503759034844685141632840276088100945611440824458048566785173564925481169117107622665095989254800248965251339175697074862461297581744314404974420636081851084034032669622436488207053127115682781264391715516528658060181280926024881226703921726608911251360986482247367670220312084652940617825237409740108905037933438118508202594593899497675140048006245920093977370349182978487178990058375651069746243499989786983744780587033654342968815606447465245949468925174680986474852235857374566476246631814365517798098159510862229507723847149851435858921117746421949358584298827052079505789359476288832817780768070945330825762786688677802179830389346334699679169479712669039828604136079507067144400312244331882947990429265509560288701436431071607409299300486713530581555422219269182881286380015724183883150054406677166524144541802281196325024426552219682428601113647977582338938776778347210605412516290937136582366306972535283312834531814108578685663947044127501302138500779696633080515276363814167156284627127084250299157956429045545725009092642201981838823644047374785450423479933646457329482444617438640665225847723585306304045166002832003208785299015814076875982427152147079317196517857738014774279821029278852039205865810517957519353032398499700096642798279464479306636517170269115491117813832099187640203921600668469026012805955525182323880865574486624146268716234197988819342037120482471626293730504373729646151465399324941436662157289236172610372841725129940636306228281194176329032007360714283379346546059791047460194547111399927876648292646352710335816886570819776299055032608784300340048202556017722498266888031873823224504409331198560419486308953544546797322720468096455356063804155026709112401273227568263109798325944539383832141254387186022173841565807042432610360450802640903600749361699837711377735609084265002044795411549564536634661424525614734237580511047361854798362550792725673076571310924826191330740022804689442064824213432583195283851013304894709193382744575178779106927610836309394729254463725398065337737697271534548087137330836696627516429881134093104539605745531764956821579526478234325075180953986630172321719149105166782070055157151339879261324473665710026086808579633324034400571791684778918852138153880543158942357968971945289822069351446957032584175359503588395924509680834642017003640609715270660197565083622369862644474636438881280278101771474198636969173408030098203148625971059337558759419910896392398324374499646840494875959395375576880341528546464421480543937313833055543867824924750146815754073413977824959219346553316235920446902101883484084066378597493759869685184296075847825841666338806728445067388360079937552247085624750348408566623396642872252964216778312007854886381133922749896596994263527892293625299611466336924136105142605748357421741573057202306885883988436045865492074883447759957291230171893393662034084863027234551432419625560051189571606778428938203029187939716179958887365959646192916075861625325743439061292234706612785473388580066265806853618713134402422303966203765168797034075496054300931866856361622537872316622337381163236820889354016389288884092478108437520959385036301828388484207281293339994452009750430681150485853580090629421140604401155473869092479317193450869482948092202922828290860862188673474812290868430288657674062333383844573969240623785921904299081726264919657438212439256458229947824582350022505694298689359203319250985605518868915122547236072676045270338123870430691655270285145000328712038651990220262435179296332989981064809110514158541919181068754356818951405704407430614630264356587306318417106791509542745292408969250362663092088072219200037790632466560641686582108142634035250595538602120705477902468266019637531283534452086753730129331762277332171097820523206902877376117869022805502861305078690163872086853089452294984045258166768569132739193717377259924099049234150419995717759653945937027181063150246097892791142292623289793031640187718524566274264142457163819356442139640441851704240683052276143270710328575976715462097840522448079429537990286335146667293890846086584353225211987735845272580457085616613907624726544236102916446552137301457311825136463588091966857945429518980352254207500045468360820575114839010783993708826183581128242616411471066740186396392848983506591374332579181973831554188765762422854907522996505675935888034207241755424349366454286860575276272027260978282428543217497700815884820737930515942415608922927538451914544107504592552964353173459056310146760313207966583747897611307114077657707587494835465045610427879887806011193119121359665186317948721765962638407464550590634061754799289278293672498257197923635361249803882962857055477358893477429604541391048629219033925662343633891277539145739777739185989623310183250731966762275811928816913435158052051139668438419451277425817047045470232972461416305975637221721793910899403235347872475566218663845863218279971843705869741140517298239352699412780428410656097605195365385771756221088528678673471200749068946306864131898217838359564131300470513808011981657476127091255224498934383322072311385354822852573511423082116511140568667895776506271603395930033315044575535902460945587078203349196277696011213509072017948287947424189161508295246218779679015350767571983785860923653724098437826539872619309364710346823251311258371121440589678372216782488889665581566217900944291059699557035463293535914866598748128685713941341833444346114225922375935587012130628667244971264262118888651332809350023865773055945866791194569390450439106750490089819601936069888495576253622871157477672440842751455498152548507914822910235181070985626815789533195030284523585211130280954099002632707865886580763533035151106860362603051748030508867671689112265881106074815774296611023253460355801022142121155858189171421349424135494483552766088575566306700081373577665074569330591284276380575169268821176682639868210434762936265463575728703616716131209388495011388397873886406304028954230648878581838324743793045878781313401599878201147365462414597792413954097779069977926683712994614445545417940067931346584223098744892527797896232730248916237426484078755505890167088711596051023076511069910742354465436041871676466079617834907627850372512502386283682929928408563164281375302868051756513904684680147559555288663668953707775919676679754151824638160711071465549551951798579193817911992742932089571228445376213735171673586958029485668735959398771766753069679604719400487276610388213347828172961924826302774024611988997079479706732372018168771520941869281985451189124454938847479962672474900145174865471973734670870348290110126573665162933802606621531081306381788986800192130075655049154116131428411280584504009232828015461967541545059471547874645175958693401701899207750572671428007090541122056318529385049804456796346853295934740368914433285754153428936198589187587773095495987920889093148426946479836486056753557098744256994669425472110947217838696630606853701192673462190581965081125208278611136562173654750459550511293900333168505381803027655989931623908919841069359710936246707169591102758542481746547029395622648987379733416998550333656154293281027030387586377562926781797735675284653477412718725029470205338829817478051559174669699649956052557748847865247227394149443104696463228856139230025417665984210006808812325549390541247334645420180068591903875638752520020049124214011861457798744087302844071817270497772082284558675513084289691405751130173075119910339854398120728550752918172487467865745987300303778843414446598034167604042056078596318648631193715293222428330611796816833969471814171056026320819570671942294350619302374391022598698768437827049047420628109361699092216034745493342208217171098048445306326789305811920685127331102498273155673047155414634963311604917210869562012900203375054057752952044182021067499120363646639102256846379310385239526593632159130406376747026224329640524785153163296280825656498270800877053712195702952720096798190148790380739568130842523588448135218617934254024865533490053657705115094410157533401556756687896357647058775283865540861763023894415433925329725908695434580659802728293401221545111159654571960987780529602815940288492256863240828006853503555844586039340770947624858055230485305841598764346714282018957172592920023411430355276537213307287440617218055024481313936315511987349234150842127427562374317045466338524746525929885644631624424057292776939124025643467436904531927715759631444265140942803907604172240893377302442183151898626372006953811889354865899717823726003312746950306713076164888538776690307137594303145624456088555913701565877714023347478700278223355524712923866136588174971606101964485265565373704762429761328563655439771830925000434699454789770441311884375581683607650888955554449490703830081206926400874220195357017284339947624664148592174986272862973995006251070214371520168901676194925205854878960748184119326407012771180351123739012792671053496326973800194792173731561907058645618727427755088950257412089733364046156644799352992361072537407913417248905817777783766130930582695235334904788621027531344902798101152940987825361273270686306107377748479822305952650428861942187379540487059744211809632138844148088697285983745904828737945366059815708932152044624607884150010723017941394992262577149816334305129787186005127381065578800041223198299469639792494503008753292769297829646047385060335472002581334190090244196727733926243495914598797836900858856314724656358455182514317849290825899654353338016427921504500214743418245436185384389647199344951396773918692056858176310535447652886853681220051040251596579746359432551127096969905336365410665920846076158156874922509217060836577669096038529447837079235987195459335375530943073695116059060905088133756936531755761008976623949717045357953406132677568379903990437504106006716839292359174451667101143927104810875484930325495081940998308731003482586132463698329200041250892449108757730004411665594939122039780025039680043251153330524819082122401333645612966103670756825638799472684570893883450477225734948993536076364340387643746432079461923983565968899506798944178934528783029188575907219175635395946809121845714142858354308811747985587173067177774942963482701864749376590813280743190915060259459020504232187420062215849254421380610326461636241526816459329719949275429043402211177575520919832645670140809563777271456396789618825144081913456518197395767641838614584039012148043963464835461334964567799847869988727232527046323622354898425092935370582262031218397632122927721488004953353082710640763241610535665767613949007239275359746179034492217916257132317063180882630413870749901045646800284275114680016866321984465220629210106733589403519682714010425082622133392045848272648707818945421660969756446779913279585359081068814895590200359183553670801803210885172469113820650733825606906364362401931202595615719874645409594461990305531748323924085498617364059909318469201881007468406445250971390184875886641408735533337120993973708563382174831213595978283184128088423855252965694356591983199266905795465646799234446706936721981459731327012977237389659544834936782691433577657958144310109361411775590429459968485034023932633450936865845094682406209979441943891544326211649957074398605022871429916623362983084729001858302906899990435093332788924150576767000153946360032090542238188366451909507035347204922105801215806066995458565640899250061194932503466605577907127556168606958480340628458519691860059746434011269930164116018928877803919185001750573161055617487762607743766428698034589843846989375339842593549158738734794527284408737803199376378963825280708744145844472036510411060966072167453968585102612619947597267728859351196952173143215021972619469503148749482812356763650993209457836038875691033734159152818997984868636232953597278024096450374966718033250550239691228966087465414836221596279409010508992809654944414876161045541143146581421798164101331397661015585010263642033464570360656309443492357730059088952843665597791815261288163567403551982007255820060015516539330538573797256093083766819729620893319850365200111010886629139606326552035829130385468554371565718030196582886526932155097603739929688587679133186254424371264705049019770757357840311657044203842932139741170239450183111303749429807738652742502250920246033787382423251549462379899752693444237843401709477293777726945228968152972752722898569502498688668410734309710395363963408344546902329271038401212168658303961057709772552506868168279103118949048206898966902212799653773418914664483658401149612621869128501997610779110308757187150208827973571854682449335568351034133097571182526215874418504561867147489906473673764369230954668941079229329285873116963146842578993289862376628875513123616509979653988637085082092607467195222247590590729001747380924426704206621944431829750587228483284265607616115141836354603072771094111140739805384166787229892390518097694149544447518334858271883981362760435133230820568336887738924437767795942328759342016061320989621412930895096435225847106784300879340523794767224827470656818052744759969096108723001069298852814810436910814939667317322042725558305260006017651043902527194801101096151670473282763151473630150179873203885966548802487377119130580103734642406640954855726314380395713489601964345997944728599779654008743075746128056028972903334613302637662370280465761092983566273365664033480737126374260986716094078633385121720374465742784814587050855783554805581156873120838339771151482698315918971810710813212406121026643014021793115419289087122391940241370645178723159898878897441780025121112532471175634480091415158087983282885709299702609934519339907402639773588638829102677306392188219337902301449610748727450595288379237468002514570128637909503359988795531463042740808531025351434650217654045262115280443102713179721974584170204548482965403617861718873535848427500949261532798819704672765679826454505157935906879902274407542000176359076331668104054790773492211348883936210630954402865048869068755189116991380491586813647633325925283752963641199340765763069910910911259107243640757128388451265765530077876264974240723556818540506503143985994492231665344617071406158177721584723491161042422623903140725685625937802206442892528477857027510066354652366628842169733392446514196805459851129826205418584762556694391877756628434834287319207809281125676068822955523899008613999515185077823893443023701039145543918612067332012290655488074999199063621947536441357690195152215333692211331824102046013412253471248734869545868312082884033786055050208601907581934054101963894374665891873486357102087000192253959503728033911240319478299846276157599993071290294803772715336418733760956906827530801579165989910235171777037376098393809857083274122728588255319436172526002775140714885986180442136029741327377391431499894723749499458773308362489319052877784741273656664241098685315994442815370420029628307561696216762005447087321144225436264651218794955882995328719203680922572648348412246442465465753893402260139962614601250629076020712668035702969500551700492003173636393032405866042062083094916032279879232182288987862046072021140893892527961284546612511351371293561779370980746766469925166894399206745279058005278077418413716626115793288931979173915819371037043651358483766183912636353606629589201624204434161640263631012045848130530818430162542111914842658112430546709609150385980070323770620418506083473171845185631118789389835676932990974339603647080456952169646240207460723373077260450013049317880062507716328674065144837289098991000582173525606105847093265213021114676562790040207937375218891193071821134137488303029547919939178953778752772853011100051026785869408675099754298124307423132246393551980346018370543006440284092802476845546128690250283487092734619971004457918139034372757796861626851112073706736840653646214535258576731931550516197496242640941852431686806592312351001127156958915674346128205706162370734636732351892827611081074873607910904862621726227448038728243112003018018832577525355111794415392743445846599037990651907505431052540786240354845875597322000521109210553501049503023655157885821683226089692923241373591520586354161650594937476599227142731129180906283764224026353133905335774959123021086365174250858351680292066721218706790322970357095396567509037324544344175093813556959511973662494576531015131630847932248892577485752551387461633594828007984604872670713518760097694756212738993530300993641506367382879149912150815896894718345278016854858353095580082792614331059571501440798330813167226729316285414846850157637628098919837224068904609387468639226893540099006480139381991871714506685174698782303330733352945053004924797304999374092365300618563595620710149189452523683382258311035982965536346124098096443111477792612693606144459970565107253701915430417924017957344755732392432733620591525019866669645797083677327125637502661573722201978401706610453092902896448986528130357983062753239058840901838238015576786857540152403774942865346852839607027398997761237519211097610772587152849756261819904016383553999241080927284803791248067998282328199240303528583249640817864282786670825048411954478264583196776102115669727256022398110757596842150264074365797550994647589606854160509460647783605469848747032129368856916903086325318075868680122061767404383281860321214732681148770213838239584683839769292732515317656101736561268495402108156818635348211542787346886869752588573914934550577459448726212946099717817632636505880674621549250014545581345046122231001607290303336270028024099144448573494043467956013999188871229181320608197038687346088703637034123535249404534145559869168444876154181005043438592397048712631347383508955800887409196214276966067831887352788526508845828367053576401413652582805379612270210886233213219065722736405274838716246793081086024587246644028666521104897414792665031516935957419445682944991577316675187532374161132178386408081705353773618693024017415549286389713091030093423271203399148290356277913499268053328992238120879042571808011506525027507989278498721935683850569811211722313716959028649643963423179323205909753722602895996500864090679491857629183639510089862162204885803714257246264524456462340579717682589445807415504712994283139269277277012102807908668476804181172896818456143298704623128317463166895733623102284963683813718003884324498294103932457846867661813977450290551396514271329439937477837603887892424146693687259460417060571577358056026626532456851514517366040936938319081401926682007872298232836990594592171866229176113009471571358199024738600262996410375273948076668110172651758206237980696306341665823337215149595666636575433341774065733496763531963111552950056900762410777491550659043605642067283219655309590164017782614642366135324452933529249167937752872085792891901992592955753125633427040162793765660562746227482004873306456020221932734578614363877618264938379933538392972163552360571742019558081484762159565928696135605945290845497117741814067210719175118025332829854568153029332992716959147966357878158881209330664530417451312782564044797503721586705395789264542870554155026749076761006202140180449811551411650072121119692537241048169272345641331152901832535317301887128827090603957731645138215493145032270563185496730638427086118283375508259912714874137528179667300435977643380335596537479022291532529340159431371130598360439948794410519469319493953173436552927582727599602967449693529193443916619093588101654447667416173374901377997491346108591209752725209285346806818239388965805140309108744099580509109598738306953569290573617327792393058455707729473649055334238638301466570551043192840264278987277620508032940469992306782020965116434432254460520024173756099550840306171561073811662368688169362086704236423580768755575723186504542357819484351620448033235098598163816676764816853347652879064981924497375427224941759099207063245345965051703780631309272745152755191832655417409376821706999964955649339175907664235099282633133616616033072998204109624844797328032596841692788321577046983076096124285871643406428291393636859020467710478974638722805847800227666625203137039376111682727072856184483036593575644200230646504641118538219932445055078595130879236203600983272509798593288391833648789802046296874825088591366796506635556550909078692510448154872758185208787386870325508794269287727841085320553784950789328132109095300473196060863890937729168424481488155521014074614258209003813405369571807522900173964180216355413798774164484914393748575469358326812762139928654756596832390575519937671540558701341598147283347835693215381519219424069242329148103528889259692028874258600131927788260448163902291788076383073417723415934933709891196369577460574303905003610800734942345361365991830782253927764918397477852904765822336011685787393099786750580627097961347907387032705684400034169572474820892582121017815478459953857477387852050958465543339989202505003278520123986132784704067789280464633492903797813688701919425898613210368541515520579321221756705378959709671370961457758995261019912787944766838135123022218502065714800541662652783376558965973233058258392089868106587524916439144691897931330804041721746241891752575061989361292105441055990613381078602764708253794361044851932793168411185244878869791645325711803142317842219553428211400032810236190158219459856772772354156183542547561825879939198670995906923353705882340842978643675759002748633569121175370736644824808809526666562497190400606185761213369782203977181439317108923012470658783581614406643877118085977299134409995719443087412470512130785245010592907465378052065171831952897265963814778549739562365951056120088249039460714635363230511757719110257148729303250278122439222008669757675827092708877978205592626380549021244350555269668090768924473977773446963355324892959815873985193093209920524747091707711653213383191962058645521871213924916293742831282857824397197780833284242387966384877910837365192380160204490544164447730805085849823662443133977946913055034623979352701726469365868866783269267628249455529506319902212397364277490572311316872445301976879667132857626353418369596121040579022586741915010559882605085581183991041341989374068227589419006554413286182668408323742179739245433268108317838633231111700007264585809066035856039708207499502185554067302608971467236890303420604586612902730905985833817185403368027802509760096969451533221013472564438638741399441120626465345570408466573710618672247674647990870907879693928102067257250845129989561102024821076829868695838699811678884108450585372616430008308018226691331315732766925378680410451386587414931531857237904968686540245627096044298305089753730902399437261456500046228701289672782859449595580375051276106943216895630709422505357917146841576040209547414354866780232878583430582081856340309405498048485183887880510384140464519864808005813895650161743163590810232914026978248309168500607447727182220216319695968594655494404269361718983567324201237874178926381241011034625637844307392914716451691487773123173322382380896837195955409450589701047290107238212446041661748761470291181481398992835655699317073733716572748290187197026965877297329194016021042880208650452366842445710868107596314100015734463617435700812026215102395869180369435010625577252232194373395743964351821495163825086122383883401722243600348033194568045460344981755617645235153500420071501787550739576769572605109773120519983855683809439850765439027951658505044607705777439363491613669404401258257906886762473930801829664202144361668380963729302648578857781345340590748900602960145710007187457919155314865219322369881767398329007369021718894543019288042558677255951760948476747270612337280391711325233292885938456858191937029023310483113135758214977565912111970344267821001532180524081259266564681205813308382652415612018961555327620094276992741363063413570648277949909732717135413366306745190784598584329362872478861955807465215433327498996032187909594331923535790569545264378421575122576951793121911145976060335894039100554203469871746975365138166548603084931894616262788481425670257220868231248922477758634061548852248832641939447321899732543721027917209701840342432771984240592157697799855754642167963963100389954406157143577600791987307012611730613790140664633061131096099804704216874488146674825076095436690556777943875887501134307115890699557869782281077602072850286318340332244740797324846132658388585893599113717360106928441827877471325139916672852919611363334851547832359050008330770850549162392138069757716775682399568536152006050128430895764990551915185961095262306541277989681883366835267402587275587749928085519151846165727541334543135393260810383865073547150705799073125635768208723712244529242278719856310654350088263893621287735738452911071238076232889548174498698499199270628521420657648059297539324251652681003143988869189735529871750846729903577354523633911043964358293662489617081842023637485717510666366963231088988528857488826072061872484199643683118350018805144389858342416720310391860411709691902856124670845448629701351970176519170611482689696715366061966079237392805091640980640906907653486968447470528961909336268259248446742812900218594632718821285177807990659373168334760055210230721638510696482326533324104967588315482417745247651585071457338404263743755817809978503557668392678691684478273048669794146745373859526998614055712728474627287666625922536680290621886734276163346834751396399479230995371695019317320929459635904509713568806650164864801114932808052766167916294008467472598454591573139491102159190995609934911200311343096636623758478259889269635629105202920697492975580874570579092701105627218225744749106868030573217829848987731071916787144137719474652148102461086965022985612280153092225170387483832050675832401817469312415384204211588055771454345625050056904761224679235308663229051486523422828019008886389808730681708638065267308405008788019579617625593089012024221597604713335715583806618458449707892585005428326917911440210800859322017527391380979967571332248432900559277810601429270995699811407571974369096723702464000269044466712430721493246316256948392453985979341144102443021632339298564564418759841689336271317903653245457878068332660129467113742458881816692459263898843645028535696025319717861824587502703175444621699190503376837690647587715953046853639514016952724286554001385213934343536254057947212242561680631852303844094761411319070615671819405422728107457699408661440161384275269102919844978016311207198498861290435077045968150885929987457313587375023142740537321426059701672874417336925981099283398868982288149587690823797114900195028021730859913580285446798703472571272441441411427890668884091572691212214590463194512535100793576795358059376181955543221043279298827162765421609617935656081988203381822607817086646604021388743311134578835456997843179743542060688532612182434832338287115782532568340621852333174762095835552423134722493294368343742520795194087685900941828799495759783948281885532446851084685575107577044798298648036495688588192872148099558306821973925439882014034887674688301111100143153677161537342272947958195237508482742293841236903506280544200670046408160471718002103650795850293513751448149774770164330333428838528337450314254461005124777074504250427747699766315848797736087620115239046993295335149146304870206870331421724003850996664362062138212128520164742653872035881928082617882344895234053862246578956169617649772877876692492050226866030487416078341309819484967798977288693604201908979158121732555238309715130841901773563941046587469055227539185294683066377487124815612558831625103964124460235191746705972622214267630994619379558358403716076371981101653048530295288220201035548395202470610558744134930829764208955430901978945541871250040913744060195337812523607818072195108128675312975819147421371238728302245989608083851950867974463108376168316192257064731763469522641212859332532295126552386910399107343807281392237395730668651943220718618128942638389784291821550283498533560834248698320096867648905821510214759963084032931180422610864788791056440092388807173601385918123246772642221147121853324707868806800480562308314918988568946384226767155215995651924659518221516288479872901591637549470383570030807718830864216972442037266006890413746220604373693527726067464039664605401397996724245223275178084520346109429913727344822716716087423293857623475588827261690495095639288986048087546613620769717601193752548312691999135590719502688176749305798248041212121301106641205239816444375833065646979006576859167347586359891480884755448753376908786243239967849109439302035435646623563470530969759540880400378402239775171819593430646516230572158649561700931201226597010861687929453603204086627359307040842562268596636554544499489458402229340859741382818758177640276777322535855090222922926756150426068481760877216550345314750436043109215146067661935953641753433246429290140358960117496664011731863218170849505487611775565342883630221811577769559665756243273206055302631054234011381346351827250911594203902971517277558119452331842634348478487382710694875289906964719871881726824640421752512167080088992336663628454067083912176175944257954032193990831345738854012102050567707557052641883926946500334339742433102005783750045103434257968604500592753245537232486261216442314342361168805721863737205312924507128297318110950914360391866160719522127969814210079410309657452527623956329973654613024317478699550187660872149718114236865279771864148297827723744896724809366087333076024962963544152050038700554485638518202702044218545533030888352358131617968327752740764381414892481902511231240155353964556281404208224210672131351768915283706272766434788112355517803620652669767405656421184308832081774331040338698473828714443396296664906607128312140118687088902067922820003302288192455645851426288115440152941887375227090123239584064396436818773763575260887874022431150832986121427653524745524035647150347155004823094087845155425827605335596487243192716178050365221459654851628484973567269252769167545369867115758179864431276040241172517303508866776962444065732829413121768360684560128779905310358907315635986175793255102612141257072865301942299409810547121214739423404432152047031480255663921446846067040833193394293718579266707442541325825189984649775148900068269029028351499746132671946303710041355259681092676675702221486241307423429552888783747312517624761511366771373567054717309975669188437963682723608402607718107448804166534242018150089263564264645089430251997596967017337286754743254157511225447161835397315092695167673850823803751824792348693142983338805503192068567761498813413962992922919475176352971905450536363726430931128221504682531529128205811242332124301848785734155982256114880597626940089773629823650496811911728228047077610048495028027624110513272593411182484393503065610044917640649958522029737181115808160150187911284340633068932086511718752413490095569859787741055155412246926307715918015032035986632242245011414831510491597129140064107788330902238497183483812344093664875906869214813652927422567991141202789202102038077209445547340120202911464036651006453104615089481085008176356917932025727176818613739168813598255290365912580004390861434226825537507611958119422919710449758840439672933060717169978356942256762838268007065943433354767339095932789074534143317955907254538495683673400021023476437822160134209801733252595094335370618117410943963907118193972173528617505651437950492582007332071115550095168777353995591889293212619225278761531276517989446716633145842385079741844824734538598480844692952778792226104172165764106884333107923944213269244170478251394609483839119758103300073189103648370480874083131828929016177325951872720196558075573152846310548152886397687479574668340752603675041217452647645875593561936256406978812764601029589296536376872862332282497947508437913072231218102502544033215148185069270373146873080270226020664462446897200992083358557670405639658547130578585168623074472737291168517721558606008536024528618220658615782801753522596705022894198028348244712998965930382377978018901130331839485122767185116692483837382177042119739348033775626731342872301418516356373571981058299237156329007737692488255352839278832361592976692309159717702919617677928887010268792037997648548412209568415554807840726265701711210196664250205327174584102005974433678098414409997894650924604163553861250803480025873536585331928336863358969718789809212361422946300520440016828446710058550302182812960209542085254583442033692469890526937371563511008985645022575155524543878863667659388732592664625371930149836431358336787472063555896183496821445721096919292361553228638675769116707490240839324357451818435654620676756414540439142353397940074980567752420655633819541408925496702360289323796225304090078908925448537047890817443579415796489126133834152260748436523472270509454599189032910789296452761224365818310821565500837209251104994473578404908075162496274637118710918420823720960522120233273486354469017314345947740284643194601532801396660100546387655814431124147000348628996994507427572179117327112843109356616739510800450629261893278258306663471020669642121646231858345178978514768039024548451921602044054344841856040564082484092272010992705072489415864550817285431940395770107137002775861342691626936816849063219724383974469419390188140388778470344459552682227578732648960784978548786285653016716685308470813496189772683944600364148070522130733164403311736592539283733424358473933481179446779681099993932700601402014345796842966055332028177671910442114533770955502115233381665411892869185516269953009097130773563006665800604277328483649288774845871873101102922254435125052699074153006100550673143064386928472451480621094588869918377030440169470242391965936813037753536239845686486260031149683523407009287095797329876844011807754158512051314854622366786913675500004930600984701951994048781979609016499494946529904638760662259559360988002754506730441933049151965708101918835634959163916110500788132474743223596166727598575909647659969209667165209947150002886465857951192035697018768190266805032464507654117131326225233847257418915275169626154606902616220614353696757409143831573426294632118455396588394615594401020107821471356620808855585148408889558103245097050878161805159919596590140606671750536301705042973400726631638850624353157526697364347453425380463024249336766064764643874887232913715562288850281643571765784118904390004462885165950118523337734371123083159323499974777684806748208545874458788104865639251753613539436872537161383195883967085213892416189889076768289784137090925385763882339427122177396752078444510622606985773894381868440598119961106839938351140226920065196932085535065890071941160884741851157849505369057007720110119360488294412694979904278714114808182849268145107254503849261232491283336541470216429844360283488302589082587455100749275147151756349563989825672821559290054096175186342724180018977192531651718461821029665073247866141368386532980476749242563806585259927960108650202546404901689911848663736621567095341081005364043543461712249379687921398038916509647505151855825070080182666750202086524530997058673513460736656883175150291490703177225653508002805065506221352659519340504435641897264027353957034337172905441464313625347461081910197295577374620178912037363452319198938822831359007442370146792404206487426346009271791632516333121495305152313021082750130805427391117781151431641601920716050390762491655768297104128512966960012428707177721098983567991838817865886441790339345711044217116639601972054585358468132065937102315979695431973685804837565178315620985243589182635742997541320683521144641367371611288937352553960410451004505903663022526296773979711537937074368956022746838751750161128664637189159206616703048198086165901092538593593525137179032893574337361705669948672419380537128060971762497921492651546710980342128113935500747617347937955652092667655870185357450979826638612248351029898739383652544675322842175389615330816425760875321130318839744402933922425000615879534072058882845851808317850757770969843720314196892153758375015135041291539623418427930395460465975825545214775957343520552002283417416783957539479982661564803723080825609000549702554993602987173289771259838759899926687192805112989741230124142748499225225897501635713301868162332124877375129234081372969696537654665507991987819368054653247368163617568964495247949718225909835173133715477170977007453988445609217463986195632210564044453434148996629862418426974782789803255404262989913896015784747801550559207625780895920048128574202134581360024855216054800147040153522345350780302913519705876549477447200898794812889581468911163391400698824259001567891043846133830185159384722624344047874762675414257988479443100299761188092401030315169336079588775735991600572251392504116987012516420944794099708672136390404449082299826502794013577974685605951644881865016061788482296603035126414959793394462647053684320310437034234667085127236530651910833209879233015569449156679952553151668303659770023412940692868068334313589803094552663856834327575594689301077292282569304564043786383010842581848088262404044885828220121099644776940415405817338610112399660286896022600433728603799829494621271609541191544653922819677243129149340608078325123004829015482138541225153391865033939263369613618194715172780620126310469014939122513955107375179877728577196727630893268973486086577864944230212161505061592008720197141618388093758160267028775688480286320495479664170285546703315684915539340766145041294688143714375525767799741431327855951486494726032105502074491316712496591158442453168142343927114282656738336760353623887066120747993425434110843735182543311337571934422161250490328681130659079658478672888527370327302123620435509079137807662159920647735234861088738349348818760020677021307561630152033897979825576961363052508549913225994874501813263789063046766764484562770966188072679050232453759176311078162593941435909518657760975482520153514101077965547298459663529963611029483611797978555708363025804900494137984013992482706267870843262934890102218272246845152609655555551380915484420519144271467203616926161655260668045963207380201502233709579398586847168656205366335964126708644421500823573176251725439379820952584706918547028854637136864792327778538456490559080876513963381719970946309783414949939015525450868675849579973383206720904190675489115603070629724253540232439673649923538561078985893151719107593613218636859861088484262518031363352221566137990836573612378179437759638817362383575410607811956057005387665314712520026981877952849867251846630798076242063042454306278645570336030732380502502929020725299890823161262880511870842359132640975610617836713392329781150819567122023797367703545738889683987827203190216996076819660327217387654680230441909408600299589532686583734175976265906924711382264408686156825948133518132807317401511529481787151397803218414457131161903099340114427871943306526931077188456207351191720541229244542235731530243569698339530397260457178776341660704432131650078889297191240511744125308804392295280269358980381416808257657867262776410195024697301084595607206918164063723374235734839979747953486656536561301873160228947190644058965123239636463384607457537358469814769112155711284399968979595530280361924546266044649285459183102214127249595886737796235447240021755534991445769823786852085676856093485906883065301579915071520561441329782821964093723981193347256151243315744404145773287279563145186025950678476608964730648887929853127374883496095888866710992462928816449669042151665458772873591632819594909034846413072011211946269295108566863473896622461810559502617124339969726806043701314004166857504144529289489225507124035300073025744836682527565725240449362311519938311796730781855400652866426781665210099824207524731172389013540282395745168413622558766589095322294257902805334346617924832128327676660858452155498737018349978547184241799975450094111319651696888190971102690416317151709360045607598417530107253519307543654034983382198864298539545263174971862574243828058472042626293721574475136394841602558811325203134284246810926590220372198327741239015829010514504267085244854478292870432972779069607036780673082669191830795262653049268317911400571700154198501640810946231576000104942326862844038691607302869761982187480775410612094074910428353897128943604148136962377621615954354698146482392894926832087535224884643131160865011528386132242534895120696060355494670296160897231380456347630460355982827307220955418766731529138036056227786434601340199347232899668823447730675760043998736544443797781200177370787074956348461598563016450284339785553204743861635523417266898783038214099095558895704270459277829401946709586770936935679562685428665299674236022147409217013499870972993117355681440178747753784531108882831952136977076509333677170824537326235815611327170799345033391340483791151511997565662806141342054492718150905709676501737549445326657611614622578190406502017299862535098464731604184964593398317466956995744800350374970026726944834775609509517194183948718416295065730839469986572436438698347773004512477538372546299674885477661305332280291060450580631973545122452239412496611938659667117354722488142791166448079481134053333281330763402073333684571259749518493591198455921226592426883718380256421725061568260241837175783648947008047936500947125434961768858578358279785391284780037156217468284746496602188012271449864559458755888818549842535112212288667773039141590586254924750252540039541681112234560973635596094277714240368813424414295376073950521794866079626542836546562994313154842430081898450086496177238188436972700688910970030017625530036017727009719047986400457852588107859112991828229870346379392867663520019861861835851897254774269219225099744646191174640846939590430235708018020341538307059804404332570947852108902270798874686711136741203662390608371904003993356487789040812674184364918762380328320301496531925870652055840929553542220980315555892562647027415627288367494149480838136531739201512215621866805500443180962666451318523015375868301432710198929680626293218304624027747790282603453593090125639049745052246797551805465591434536667549868502527430147119512462961137547138245169318105965707792702101175592041546180603847144700360500942619439278745596934826099573762530138036654467264291094823965358177293414686162308282859628966624392528974911750568504939267610026315788930125248772040908722315720300769063744320201241392950219775465936103336397853806566011319796938291680670505061387458930096050174786375520250906630773622834903651214265379710323379282685738441229332857169322769664333321722424092857307425623979536392678319563569169502591547321691860400880318713305072814881059751445462225740182569209303454061030058479781102725038744576221229128851126687832097326711752948842340694442012381950589518121359185958121555078555063599920362946895063260549090576271143748571225755562965589688439895863111620020390548646097223082258322278419800626877009917125574890595099354121325482190271741391904635891057186528338874775000349363807408866700529120696343199076914734790511749183631102053441631304274941552789493751179747063317151922850113312327444153674898290988647690192524439515072250379358834397127297557674227302470430627885562695465240426214373240727342716422337848401752603077865335228080976973858347376490838925497731732512957336253898886172628049520066437306315453008062756447982218277303646557804070981458124455359925299094860759653678436219256337730667955268166128875973527221295060975487158579968252119694343822905039817047590173150687815933460626014742184153798253659892943299791438132869729524241059157818040407859338845379952515504014286119880290079059603135639224991752610500206553205409206233869900239630099815947699945655173807598936607861041563353595104954566621972658145770313724515165545995722257881922437443515615885511504496471386279529293862476061831457965047714640792063143040506748916926662974203411878617800755746672653346191332062187185591334107087907835652379630334176351987295562458450646432862902541870045284348590054296200026150387220182863737660814611717184484705556974291522321109810083409735419886234826034734520866250735099259588400209815688112752401111253221655719139321451544595781105938107194980652056669192810441283083347043021479019571372769172550261757131896670185513218739317817754622723623431276302685180070758055535156491807036751054217472016927377422870678431026776284761258761435635461527781435683568010015498509127596537859887303207925496145277030572881867629533304585842915492930522364323543195414319038023057625033984213594304404442170900464339151949809788020365004155079646154464940418189560026522234183632657256894707658981957134628105305830153001799821965597436454633821285319194056585034326853648531125789822392905817582247728639835082109698483006854673514933821924442116179204223409677944910041506946264083348472144086994184550197044265155814219652148895848900717689430659680166098380121969950712266619493531682005776909544790311195096731443067196588760356589819995466407918320207115920616376116773656827762683094053043964831049092691818386269955165987666579278129500805722568900599593085029564931042255580766964627679109284999341911959117159144545372220212906297829936779278938339735701909095561554257711613902922581061538291710667107375412686159229242309064663436816200054400935480805765556708475959290414811516572062079850602594552608980842799934252487005518286908199559813590715329654887862312414706588929281454711988515757326891902157519089644088726634884139494099547419528104633165638078068797617469600886473026109914722116854636754119959194655554344915520767046344812372583944703224952661011374681983553312790765726920665639069791272563176508532137082335673640044019484573038532372411190122415494679769245041130323011886812106338271316327212533482393813258046661561113966257239773576065407273397730245212652598295165840352886127088802149281103694818408271613675168619312370016408497168584215933291390042588076674761395772886054452622678769945000135128486696277390146412292734406438284046423791227075777375811160348479781438368636999808747553499770837622519205810573752752564329956661422763585846269657957577862817652091577667970658057199988348932272923551967173353481708526289069021143867944996436830228667701986562956153238995158974164828205422775633485412260874615888899738519166674121595729968714311042468914327363757497068599815993368949522448210646993726885525106697964688594698368809144058349994682324715367004644505705098201639606408550208358898285631006749970743859921474526810239055024555452936796974015376210372596232429911113308670389049376608664824991387029308452359628181703458394910263209378542932651931757071751352595764282114148231037204833904608373906494090016172018375800701568927170755060438392871436033429338665199295040012682480902302853948333834613155581137572057137370483208402137383649164331981886635138989489432032468865686491843006453767681311447903085096886871824207202740246044773882189257484980201256265961319969302019817639915734626670497109438626225918659681564089752467343826522898971730061287408274246766689975239095301846166794386198538909839590442869956612955545164313067669486799394871439366215731609735239855421283095244692377566223587311369071049959381847135566873846634901526953080807576271203280358577291800981691314127544931125775392549203548023901633098965915771734393973021705132431690344120805868306110832841151354478152880698508928699564141262775869304180126187943739901315819119741893905008560816575874875560707983921453971960592917775746778346628587019295157788175403712591114656436133038232718513110526879945519379022609826499260867772240935825710252770006086772013252842579102135831621232785203566466824652871532023895940295734243191184857268475752719971966401691823605018718607783555830239659002524192832269516522514913922540361440844772512814183058837604135854734969203109391815017276813747572043314841251632213578365464266380136935361869570294864006050590770364579521430539949667790603101530938795739560482274093660675716519223914368938962134128390916457942565409677443786709255016610008944128406503293271376821547392979486107710928965474640960951790109116149502364787884910771621381462385370018150870841301897487562398654331557652294056136566330000276562912533836056140520030368815380245606396369217286246423939304087264182850018117888936488713140264167521452049747547904278041394935124511157679458465373322344293116693549561000896973232171470871706594012636581208260348821339421229348808930745232904181376921370917470940799320731031063122455838176053770649165528250064974829269487240005615807786133827108035532084368545070075241496959647208301251127604969713077931412064788212793091158067864567990584549729409010359769185437635288851909098500797073021229472146492756905245397029332037222614183865198214897834039084545144254371078110484477315398629149552389600486495479744663125816772415737374283440063433867788106788164355135238791318264489830409479283734786484187642854650612950951309905477429918018554196221320947516453998204680375154088522600276503639893714760739759383477606265413355989476039154918256583200262552921541502171032791115574282268711162221928123590760268523653897968093050781742736792095207226365203697822144254095036981533209322621132737673724972916005047276200931718457258768984525890869106097503438483763199532579841196678990567071126200427880922285317306216207574328605284047818169922329970517625450679554153984781107827439904271937403611308917791872728557967523703111118886794520252865453678063241021572845608621573075319733918580131300232904450012781151479888004610939004929667282240671499269666150072798837168320327394954698213200937123577901737575823745245295468855837965135680207263335761787303074577855601670702951828433067258047233936163298305611614261623276388418512792682924264830370357082285005036577418015449542095676725313158222510036145756769084619588569983721070808322039513691430389754253701612792536429618407750452157376201550145201318364016568551000598820831070961030410878708342141499311302430292641355773184523506429907347087213523051633218221642338536956998095003627632793379969760965492573735901874472937524305408873631990498906308091706404590332843529297026352587875711226773250296316812130156791660959139993694254293130052315697166553705514605625496131464539129359413005019136610344568825046085130309349443169586455587992892915705083695812579071802230821759850982723880939409444144478492194143111230841289306906978157896715469357181286642153577039660771041662665639019219662162947747101390581181610591795611099191886584900733890123726488915552667420705706999886745415975760684275634967005867358529637943832040907113256697150880216331502163772646684187994351759878886588606212434296056917205608636364065288364436000543812704462343838507276408066802212939588893712601062105097389784050026359772759352615965308707638079832719312131647726899226453472421193433927328784116571988216672254761299707180802595614967537449955012804942536877682991928806437172248612179520166811795799447288753372938681031147355477696962311024433503293335920866704939282563960378555507386571727945718565485464226180637508432819495598888718852934025427662060962339893821636301102723224983150255333286379062360992419922355399143395432718344459501694594013639882736080934122067253794048468230044905209618126366356639671933171845372281180143136880745766752354050441382451635408152850076260755386693369487408400974230978826764717061408931920519263232626350743747034380034298847620331158635135081451864937677619779055369623424122006257286159394232521402073911099882507651999495887305475108860435635998093409221173126980069637062989796492598066092751337337493228768271718374262381047392874612625670330662554316189675068694721050716081048368917373506980842642147722210787003021122750056746935084112421442069398053147915370231028102848240628493758121211410411736254663350098007982587284458938940603139861941232900648984287877247028740370113236436111422051867189653099402368471058528170842670810705088803649418813233415139622379967965956160955989864804899619550059830989583172057977756430344156056764185396669039265823502163985881297952631836119118482783414416023861424514265160701783569793211509865034957135319688364280014114058480583572248847449074637567233290642610994574850677661318374478833611301830357523025568560444041355642098998322084129420487165358868676578421902713371606593122575498357344598902129573363298164383232481047341601474176402895865785450920772904178901138588313348464307742165775542269151329039516273004751063783634644746191663843431645314028410008958087844324119972269347338454655449697233198722829910071971699418129872465260325299227071630514347720323397731099272799363217815773398662515511967358930895702618749101265027608965473698151488867014135894563521612368987323876176327956243330299646118356648067684727239587457702504851864853304785147413859357691141914276973810848804412641329780319943079474245238436742662105176728997864273069460186938965001523931518828486647970721162690216548717241184448114155680599726353502685946343531729715424279206323515857098508383435586506032396128396018443969527202673547258232559475134897396693484363602820897440535769493361779074276880029789310717131716909021441882661171697419981913069180952535517121287261428351609571260762089411192663488320178969486453079018962041390592865089187945103143210238197374998441287502502958944560828020816376359809987785279065745568549875270715722781573321246586587616482409123687157194124142497184194555888138202013532594338694853759935620099089265073088912289534415068995405534752266684065553781461323200433612498437445437524713033475797291662435542648438724390636692418677062554732011383562732538490878894896261892364508471409934881756510561921866335657221107554619061799664242049292549832463390797921878908815914071834459990837079989752405484745103922247468070569912489976889262080446260696053318444551195390509876383823104557276548060740045413044599789452641709065949406042533380607508700692920065271515465408122777884370509180600804566883953402714275641268383269505434404074704750966947291481824470612726801609268992716947222071214885164772524546444646841162332829249340945867383625906424414773527832726915287109837239954513842906290536665021474277981756933392210725806460528239878702128857239464961954231777678207838666874420794838977796085812865650172091974304011635879249360455523943692127028218009830571765191870490072650400536688475051456811712630609544619018023065367827244195048880460433405199041283271562687426345926842158376983969683118010704366195802478983961423081035135383085113438931690570724114997550422528879804315543519088344436970132922285485718783306189370508494559119537904667679772852272903660643562786018754867768510677995129937926684711054332761165693865872765833097636262673130875313278980216698714039180359811581992044791387433496421586771913223849405499491830212560195340936855916036410076425390617874190371327535011194056097700196663731669980532529541007794184780218965649641385817745742521662442686140729784981169707163742105758751047364732756207399684724391700364109565258618127749626874326814231864857938484870232286768150594678375827810123261951273316804070282692219436359198789442007688347250994774441684448075768497923486997221585972303371581209273834540533104628046399282118173951171458300392968461313583052092476399145547582745610116784764252547975150232085404260703520999045233568311018383362293782468494837561542609349215485687678786878944201241247394343860250506675350708947891867975163171132056341930532021657309085927182776888600365798245081778024642079624557890024551078106837976829696693240705041114786703913117952857586989670812642065360303078648272549577910274340351750716968386604836729584938288333907201571934907741926912615164446561182591870372955754434425036874880925260815968841173174113967876195085485815132327342760007681044026036685357599143824271048415522509430257180513040174690337015229233509961469341436329958748144830334231887694589619736219331996063950029998581662803482640629535919397422051305953837934659507896624390828423055617125465333854974294381343172578186295423093498237481835268142501001550811511881882244946105465215533063406570011956841214013199111800608592870394590456690729301403630771982404940183105145752554679664460474973375392676693313470502170087613924921124096000744816442461745804160066754133339092411544201922803856990719488366985926154885995774561467126832464068448260507288259565252676853824884355178105180873042876106171406286467383629236950834289743745265928684660742205996928772013220348666488548258250887062405316087503098284325923273392806481176641887188655691186164034642050422035473533182101230182618228793635280672259244689666631099007366897595590530744134205713185628130132803880980886481367687476338262084027176137120982446446519193852071748309660479648998792658665398037260870937559840176235160246371081053880291927979756993222473889400283285844959827268052958566169946807445100525481041024959956434780770492416027418470556980468660677360890244263483540620819739831896385246501673727644406023386635990451918814415344469759612459469650729649632576919408818945678581719913180195694774949893930533844211578817119809510827261938183550371040043276954922491088508079996602297751391465200153092132008588835216502275267038473776876726698453597841010736955287044982119399415008942179928737931475146694193603557238352425594261048621378370776413450593212597739405359570688384566011555788883593762962178361874048359923871411329842321854347619597720498474583617613383598503007991289629824527464614054573040124030294170041068328681772985848198691056397516607358714161836611016640109200663175817736587801981513656554060386908335478684736509447411830412649094733056941609622749576512982912436929015006203096420686061310826579161826904451261716286471150674638890716696102699548858499458373087609937889565333969272141825769335801723833084831848048566323001460781611585673113893459095759350561967034723926910216001583303316214498547988739526311747534905326619365572906295586484473512660705575321361645087197473762191009641828735792640955167377004957024885017944933633929793277957035325119956600221547045673068368545129954205754553709926445715925490612480536148069226880120334206084407252361887557631601671039216021473374685777059620331755837330919246621557792319059157922175238350586012219144176314309012638020534340451209860655270260255578857884966894952570764870827793609431232460908477716230651114887316380319657658772209987259803460462195878463048888389964435724448006924487849988716620810787643621792686765609081138045335486056936426162354261178248540200957594945709431841334375931730233359917342473130737333399068949877712463049237148485881714159795052795560807761855903757161539850120113580743015332569237866568630777635188047741935240476805947091638581258843779285066653157334975764462623433043712683393910741628114472938372747856785804690007813643381469311386140502331860975909000252968441595936302699165185637850765603021977247701175093504930542564043231984813702866318502195961034956367198880113822642843660492088083203524796198320158348638110904791078828625176386728045562139985498809942336666990165863075564637540494382985828757540553711404931652560533938966626632313312450197466235874127293320088037348272429049551657518168261142495723280916277512511795534860927420821152849305698790225021713230495227901158657097114594159213027953946480691259271403198174682797602935960227304118402766468700911734371818920763339539395612452876646564480751857724102594150492058283467424072244446516558902307711383935471348399524768969489894060472180916325349730782626832862541614169450086553282224329649386259416970369757396803249702046665853377847882141134320296446806083190677195559263902226908699044004827215623818995858404258269920790354436942687063329202125101938155295488967837223161972894321460457951041500710633601237217396037601284157380774633404819025102598957416191713347636047890986378361727102283759191582514830716505151084528322939036423950350975552034146755675300413099924322340133599644008409057819355845811374557040429981782532175241247973836063703037354835260775987113784082768972471991840954227310200463907442970069535736908546201555337761799854762675397535059419461202727137522823554682991764234390594130786158946430377926934428040840518572079906468826140061435184480076991577497787717396095266998259926403436532683753704091646014042291290098277305948188723158747193749299425844410785395308814155719034802390083347544663921089824691268310112576278150570091107360335894704955590278351606303455550543178568716788577058080763721831800636721172748163660063334044334729037847672268503195852554911802894184396287983710999543473640734361504168208799953211939774304309451441580070061642746840351382603276444105717884460555765197057694458469089682690518446255262601909296491107493104386542792370553249614714394188566716518380737810957091861556726073427811660580049496631579627227962869830767870184968605706024419877341553943065632494699837127891481661760357454668260739930356053589374070011965798508980016992086560796680326104598554342964241456359429866293029293837120323709009758543694501887739258383812090998167052701192563197182236964690225484530417908525674140937932345777983176060049585265734425184426142597914964935850138063701441871215838090060837131039185701659885456505381550717277338582112336582979059150780297691645846903156076912712749309722094439260945917323070127970696291867498966205882400742748147478919179452938931103826717763246242049316098468883638240455936171471546572355316246634772395139378879342754147348940731755784737786819097281896273551975222181629487326921098610650252247174420041432254298145801817602020092954499658912224729709617567154398985345429650185095668450196441170481817758361599689809413367470415188305275129371286318474338799231705538846372356205694862804521623890303041531001192355894311010831073919990947759436024486244081716511172614330690531902872826742283144073769604114511636047596145391483363233676645936905731026346322017166487274109893443482511323313789515018384723306679009865095471318068681532716011551901032683179821374888669103398577028252233975420933673372329489052534984091185135980171806913392370991903510854654775838536534441269918994528869737324416482866500088757581834718520311736504925822755287736946301812326433614748684153484393774241957321150531398488624186823554103271498725295825048067948777682447124083058023011809809574052040754672445922971152469475149966401430662606658116643301510648846403717658185482319988857630369653836259874259685633133887635300807973358634887636428599765148127347943488299341129378550083752434755500558417822145475729559277006596568049868909042378921326500124569559666471740107322323780272748004670482524622561948942796735719375622742236820832704063971343154939282468436034267710481588331960274418450558654590883779259052954477624595604453434256399674687889537115403364203802880087235687819875130675430416156371645219870488125502971459764637514862376911679054953826909104045021063109113308171433702090360892734120001387676272353591306244151029676988355901386038424362415827568663687002003037190625801501521581068247037261265796875090152497157205334357486730141999674919184000126445981224171301936467766856422255777444808478569061228553040287203950691466816813434043526033368050320292216099942501827136175842371230270760547445677916998062057092330374944413931002386830860047010900337089817571981452304259940363479068389911072176962409514553024175624117261149554471058635259096818296979605321705230889266092737180186527922554102736819211375240504605162065676938158358937045137217834778173511929963837758812019804812965591093140807025468891923148742882418931775596724161934000255183778309306730764445533246492625807377299655411058164797309206549845080028233509412585065686703151260972326861964034880347518315493983777891186993489172775905488717704298566436544787390638650988712309036797232009744408571314652893369826940493014293240814549390304125408418849233335452671611196614374954489759576223131725445534085513216518603690669598949375022272776676079113043465405816689300061797267103123468109718343187754551207116957027617382871710699432747442980184646659047380096918914995858060397674389985085900088181997810874743470629070218870122106684680762306090761920106169823030684072095584282432955775504643924279981045185279617064344196718959158210894926530562641637427914413238444898206800740705417532104004879603441594318042605880488016459489649751805308577256788859989013242095932508627502078851275587139175745388799512834232537204722582932219088202471608839610474238302068094193635435933785859240453813045197249919561665530005817567171929145894624453832239517904940012279219866968439044309222881099871543819775384797671379767287262544574389840324062729330753692303181112693689994383900915938510571725491662460618717434098996263780659347205717247955010927569842081094183444764421620983457641872664216044062670036999095553596292673825411286054890774135547642786995232281902954687433278586645127051227343558108962892490580239111842313841632075658291443668636661696706957105811003378821837158981058008269999835960041018600573111130574637872660454927125217798541136808546407000936639721551207322540288068517780198750025229811938105327590810954004834144142221709946168805377230477246848684039282989747408742546187198302611728526087176791425215029912550728149014758875275100452325771158316557466138793843068282808555492741999669764840717459493009497705860501465373265866818449435834162954562605698497946393628303606336309999319221262880041100229805393798305396174015142538201228007576573050386510031895496060894862368995139010818633766764185022867487206466823839411698024130408262096664485074533689233064659123738890037389707871689375855422920526136284482511319091660807393231869406000890769802973635486870590651905555125509805289076651445817165926742816368879430273189050974686036157459988509678796584178557059743169123502495116856058370324430459418346797017495752003507194733440134345738245329968453024914370392619952243723913739697576116469174356767180335071788763522272122153144815467609267814858155249942735093499423819701402862988764169941396701372954270210883156081273392995946228946117286530176955312354007938693731820151801615712281158750446008109108569523213365642664307603871002158714372300388090561024056511126957720234086027275631569923788173358081060897013811352222734049737298422193841940097384450555449642340125951632627503323132640032735943277298749450220056795584447863364640850991075745413970644492870805132065058718640544999934267575873196163466417061483828615682531590494930493566679397799794749181101844052564682912982564057056059477196462396603218678304605659166034721803049956128060365606109465232444915754640594087983678673951615439015659879016809434853746010083319828638604630729790683924397028028391666352380894744364341095129490386965996317142286990929873725730606186427436731942834419358141021239065849944224609152075052956379932044326832164141140265279107954467492913966244138552264299027045859834829741764525117650447519243334703990405243767786639575609180773806184441625331795250496651077767216381661576496693215370134191368445061418007080947580708887923821258271274997078182962868010101389115418643072344166006756954317315839671829503866386625735153469285155252339943440573877869915356806782822546047426170395901834223236396686638969001686518074099089738002926032514414322584369404235173307707912162271913961813518456297568819553140176409246848746616343269514836054227579479760573460928272776599993466272453002054116803304532503075712958721239582498790158710907928805118510267089286044352635566947985682194351525802210421726320853411767940506528128507838817097496482165618734861124908222927599292136504784594123103288580197666687524864456776758575086882906538842615995749492284241760046496039388270132296323130936236258859112407336355577869547879737357118213456530455143656432364259526752201943798006245629175274377017510518217345553813118386517802115893836843216399045009063265484027603045523137517569755960144799309254605839584051463065984765711874761536944521736656439386303690912230814545849512358194493076902342207960222315219946954205519125626919164649041033647761288752117236232680959072853015065002933310698589094671512487271701948190205562905099768962155042885244479865645063385091397865585572630676159016008177880485968657598565264043284753605196001819877694832577542948618204669930007360810053973743909846111237958138524375755586790292178649422659246152758920796094580076290002391820710869324935394032568254280388318731180945430367706287120010738784187227903492876337215278442891738192205560512104330322100766722110388329530611657320231204350084825271441390940059862058434085615821932166095321615412275599876941402750239186707701870732218035586764715876965883875276445699703841578302709794087292091689795900970436984604098619869696308776932348602555942621159175709773485646965348615694212361637932179110588246285962178413706432805632026974860332402909008904369553634751919787900245422491889373976058481766302344091879023516998151165378407373127508480254210209727190750737058963502082584171516082498242929374658724116860395333012181763200864598896441778000682323515413821535272429186469966413044323124695277926218525608038937039422373735312159393344473087564176253023409551809831406612717860326506401419980914197818437249948954648722936848332541253037035527446637041083282756304536877113428723119379765139373942950203277864670362148017455707619654266622464548334609771283629637566675314835513504612710270190265100666818696970807012411034466802477793226987151299097351567133502971053060634655274709987137444296344908469834387168480674177913632733117299087241694310755138512246912266682265156697881537326550684878717560784136297871000869521031616134962585253696689700143214740581891964056694535383848041410651467912222085326924847416398910876083211190346987987235868233862512577865573372114307298118591031415588460766975581511747564237515365132074808202084073677168649150284700532144561945527066043869490737212011778440790736238393388095347352511052486674158350408822355273794386515928200926463459272796258036935624240830477036972880902386785532442750660908501491094552706371404521856205905698668169254795056203120007461724088936335189537702637881964204159822973845355521683512332966233309305332035981011028354230582403540285063189045694572247943131710450697044834728024548646010410200396653325774057363700863543996019890312370110057672860466528104807164296697855972768601337980834333342533455719978346793289555963710728759698146874266088549011533960651627034334429134598391155677546532130232234183818006520887118435795531723401042381141663262695978945777751299602705273786778708536656247612939772920886117286803037411153662378749062071298414718691563954772585018588330550372515119638035610085545779194367854979516021630468432680106982929091492016694188556288562370375350077293669040916178261603044863137009832739540044001211380116292556120835557990002984789789280783733217767214740462545693978909562619347091521594996144495878535612455702006773767595340770917912028499525428882939982455117235570822836661379955541952317672335590107842890589260949402829488929751120600150796187119818312534327617808021672500719837129466967411184009830947906306396127131247888840865661997147200340776716709305796272082079588011761630811203642839783760137198041369690127102895884230465342263652645813608673479470220797715433675063466843063657760248690362288083758821592285775533489172818249026477206382066179823458020412317550798238457717139232090770159383793745506081813689721054370702139294801622309400057489573525138483580167362865445483440870853612767626811367460268135101061220856986920045144349647793432301688367361822423860970461121274920846761541765657020260030208388893710067130710709583969164006807488408645035046102652580844373650064264952054786354724761034338485420346379199896844014736937815615418699657031875896370776677896113399494937767875116737568984116718551576963866325320768177298562984794977811125674482596863127123621228080005299907399430427234481897466647552299847450900335514286722842517820257842264379616902442653045740247115462911493504806253400516289762867070081898409104779997397962487849773451155295996128584649745524755950159254103595336041609948105711896586434008726444567096367978884167316893391158667882372751665587328782906733802686073975414661068117279015169342557197223828789474830982512201620479138662540815728080608203844553734272545083139087248041708097356244308053217565020195927800195928694614796602968523015472344306872910654799708097149067983151591475894675012424987025866999929699938374816970008638910142498210390742307899456004501125770729218323787214220007883909675537860469518612323879988307939048277510163635117464059167270657799690564304078361193499727197522081654499859706620803667068089384775818536620272178801297345806932549292618652793327003622608555039650398177326329612243915849348586870541597609364831427389378044834719556691653627183112511276399048731384918927813214337768119433566613253619686852642477985095786481452803103309791205486835564806171210624129599165698898220877967771452114802490463446233230839335061082908025361170007301505459997362764101942737456328372436226561693999087459127421478893051656563901920236509520814442806777225761159989346504403191947951601502366905341890031182955167822858724152471984251540677574646458581118727475309874243786585573074694240216090107181782774828874706553565948745337830817775121832980825717335305327330934381687182887823210408001091820414827533721480171445034357157799164597964560318757612849774787787227412179123494024960977975107720058125483928846304455931240010851084443794541484709976344231118719841404191088919152835204513406637833026153029878986446412007978690672709115353566504222018708363164765310719601029321116422069897409331112962079208534751080169316063806708922261954706912061524251413433685259363816509911532651779459706534078958420508888992496693135964603909180610525542306253146354656602547333495786597670324927894425335695207928738757541434358770822405939435615814789901605841571351939752231379189294044587662665488955150033773056489356621383041571163677912420290646741879852984269180804146723710852417530414197280975750260790564749377115290215720056346025830081053909568521410972605914972695733325213334346896264300484472824175951782009767191160520670570010399016028233145613735777520998822762488898122292984330994313205048467181923684845860523097672205933761976121465711252397867817781164024109327523692780248716463071734153678658725824004240185347953072231175143754947109351453110445040091148380331374215286576917749064762029072930102357879274067475803853132066645044691502352148747286255317460854038362372591637773649948542544251395338466378640630942583903528638264735221256577342042330026000615114025140569366770066232488146858360802918512443230651195394686084523846707269687412196166630618509354851214260296522033774631883711717919629297534814626834481239513388284053594120934424630745846205958229547755561303484796849234242564204021152045769710566523311044599748842287474003258643003558624141299389704490782082696861060841228035653805827387918122745331818631147873304733583164925352412262774457520177905325778248635761175057908119151428137952387730611100691312827388932854610822864045761917642205981850336635525985916613533689010892801260471409446463003775696451536912709071538758154329861639725644338613077845653314747498370695158557263214819357260930502551523645673675655488060456256768664540510902072276970007293826695876470226795982807867146223195971344366801153848914958064001442550564612505226869050322775763100584896497011373197497200381940302809702083974477415838882954038012599546814641373571317713718697858038787422941528925453779636762214085945531801667739023541363864525554490144407602041816091185652493347819126081016244635678742524370777905764037207575723602375615717028315796979602063838847946397205922828433083632226828644387700001971631074920329707958678993061749263629860800452923183999236441348299275297391237297036496567586226271239547782249183408953567758459276593685386600038409998272866559617745089265109744006348350804140288163732669872912769529864253718996122775265204811191709888091341793488463969000997536774083886906515748085360717041944492095185556680371243717533983965143764679575009052079333913766121137012265954123178169218679977704432707367196509016200577657964002633337760540891173576158120157081698779549516609673962520765721354823196085882891584050222025739034477170630816683853703716799137072585169429637026976454210835910111519602805796307193501186833275887859794665044637064781034114304893344573019052959990413370387828460704765600878187512893548080237302146346881102410392385694000869222969785342102517740221640084160961670364861908783435482053779182564321248307004796053863626352911990222515846416656265011475523456910207245347998056653156301407645220298268203053852490193140726239834338057663376384972473242024964295727655968120573098114387190897512424928525189870803210835877766651024454722167753089559495575112110981416271883460526563638347946377304481604593100189270838356088038234271502598381585115408538345792098668439174011885991115579519763118317090646782326486670722572733389946138370134885951813158099203180976337982333437818925705523979464351956036154706872808374279711267888756016371835181217229724246507150019126992577842060036121309712898192065451038522250290051474687180095115591034607171129421847835591611552914746037113420886537375855886165120847247975058940869904323421293704151885962069198142536815099037168626803918926362951268676955588833746641581808171617125607831886171015441276431524775229386757697053607666910217526852907880607892124368316870197786539421065039896876056172376168006212290906062932708508807373192380352465879567624239034090695465826471295000540437958740669343299215176045921168973908033907017630329703199067682301482092904165224616344322160873535701630043273960822936506008505228717597834879525642191199540457256142247163873103330924768328439257656974448858377851622036506917920739530744507757197952335057624164611330551527725641281818542565481173736211604658144730516700922243170700129949033157890884945830866945402901282566158353741563088043089439907632684466935690911877337804455366462646739306036695932342828831856384054014005404923230124823219405074087768475192852144871433976248417505482685589589400405997614044001473079479489809293215072099810473581629130411040951899708847605113210550881439414255622010476623459662458730327256537362160123496263041405419617501835152118656885117982120662170287717692102372060659798428598795976150466084306881369380021385061887675916399149901924159646201699896874222522208789328668681728602144640334854302695031844742978524532993486719111639483194311921064585118247448023489208110925057146248191492268439903233890433810908647155267589766846452808913670119082169171693259411794478387145280041947036106923862677922920981628329596664596406958422374209729129061631237286880060561915326222936392079825233201020069695675072910299917762229429254917143233124047951884171198903817817936361561733572373772273958680510500086259689942911197929044787493956736780053839145298935059813590236450492059297312820428709469145646171945728837760860298715374004627660703033607523644275978657372010150038750785009594047131271382984745390863791965041222550441690114239357049349263641150081173902252312216005238904886081142877517136620822372958227062258811235340512691775168988883805646200372354005042551541876281904776837784868570042033227357792353143037306229023793568944335251226933009387080182744922402318443006126026759891241573554695814670054142711909702431372582903965961265831124969234825119588914667754094135199176078943275122429209473199660628573548269630735797688123369987188375328926066966486942392340400248949700467741265675811327920544064725372949427253647384286350475953525595912360977424585798543110454914600896025977882293174439049786699088972454636119889098198696111691584559648680148385380493967826445227750549062466514906725044612524929771703442081065502558824286678074886332275756456308976639919557942500288803187288534741976974492087946958670763492612053427881953043108143292604487055951648060473336330373350185662805569315996101962684584208772714766846859809415319033288997053408227994227906403755153791630325674093525382829504005625721712417892666408113007676700709740823276073455414980402891318749840289272578222591253364560759134353494265437423147485617916318215178083482368736040220169863846385809038539548398401435535505570190562045615604983877150607994325590175798231641901837477980204833817207799497458172714212507237948601333690027274127440298125275693637636910721278484535869212943650235974537518508151505059690039240139185878070542178939416457939968107941566921886377079878692371100972602818206697831652576469039815132757866801428189318458069087322002861676195444694495893732147974740333092819271145386431660421300622696055432572042487750205622387645508685741977758621433800939773228063340601658694432921526493321756508730744515097740882420373767167096359937533018481224560829080019684280699843738025883910373738502738778753715045216818157796448022692247770353879363577509522361349491957378335386339927586930518390480240743294294449243705641658234222753633898589094771687791031173810224892440210861002564551894879399126285433013305630755031471923677399287516073239052209817980126051565547031452546709177852581760276431123209087869991995369292486218785778579179480151146782430145890700627126270059682213798622830433892488153138429431383117857307210943343170283319478070664493979304853151391679383632992135433893790017050569897401624342259025680491155097345883210236903931179674445548732082129455435530884240189443710203903731434380073499101012443798267142928758898475827065920480135595120817473753533865848645960319970824642222036955378956485181610073397201656014250722737441671994720365258248566422167063063848175915150730978043131167476888370420119307747518608587653970547993483047755565352898823477445995762399389907243806638493361069694825622181552990195371808978977193967366385239470856146359532953103800954947130136517000946248695445650475728944415244766435685742744541016341823472713194574551456900905605055833641912818025940821255496461734189741800863491295203145815420334412741317053115885119728391859249520251466860129589680117714078782544136029333170897831707828408057904597152692812329748356843418068847652406200080421077870486224435361019093929350500299945031081598773214970518970567230988729845710733673206259327502805562498104060913828285879997142449287413161160522473963256083685747728226799871146758522566293302396627493821750870093961808109296145099909984404165587269721497695726668147329144123994713497385502734344509292278329188381036645152487886925425905234615614606147516193931919557799410141509570931822271851946636926503094506608601457190662923082968261048985943658500534251863675285817008160452917076890377048420245797460592917231642374036692022785913428232142797120888855518391845147110669158324050838479284401670997771750303552407496029389459262928682185359071754142985466315243632832606043717895590439324377551386612453713051961141967319004782094130914655307773050247334972299999309774435768068200183498739627254594686666913547387468587327651193100198390786773956254953974500910281096295434365425308635579560963063556235319378481396088294997855386288415089247222176123823607631682009746147130485118898599447185549517281014274082927056235887661608037801780769435592475986745308168883851587713593573759753066760509207133744788351120605111535329698816434345624472005871572178417222169568279548038596054674388433847189966320093860289173329454994943397416237138080996302040143191309211808005086303520536655267339151774459319436164090643680767489376814170546103120460663375742910307719077827814898977088481440194317744751950278156495400566485754984806763531406364952906133088541205901705131155699858173110818091940368398564534747702848596101663378206306007836116594689512866622525921563559586054798691574362758651108620526027137827723147221691949762509733201055435323694455911620579360490941659222588567330495370993819049058740142221799429919232139685288818290464181869092010083621120336504496699218492128825830791044884027144517111176624674344511497554007561114425919932102087024447829819498064274264967388005189756261260864497980202128129442704897887215080112177010965256939528343951975584581286522662353889315326724925029339457886113656295743571018252941683056197882639544276077913730937642243292269417313756413930814318239159093377051714705543157418250305285279611199245664135994843399593603336854466622274043778221281305012935494258491855266308163935807641994994276563702704759966460792593696169883292865736463084081196874113979537370763442685607765750987587225911584609934178877761002500963429095335847246853308869021983547644280027250829881177963391745372022473728923195526567503036471222832587909163803046113934765019557539240991682966091829377289616040475244242789148761565718105908054277924602477763945952089010569486787842696971604235660278381872110361380550676120133460125264151719679621797846874623972404119800863522150551785241307038243228677752995044567352975031573990769794245289396842408739222834811115751339732396290535056816632949707470451135059629554892502871828056560659092225002031793121825705797096380321239604543436029987950542215309657910205113703136228222878064848741838649664856010546026890163797256524668651210063241367805566856006841485141889578157803025838678603475120127988800500578858875443027891585652609354077934265524567176468558860165068219587801147593027686607290229557217481756026027833300773644032161860088206592262317263888671018490946241987120813508586908444396468940348241388154985935304055146941234975840120752155159113114522023239708872120950034853127207969140344360211297269945223097689077019525322972117788062505370283023045107992000409790302293443990509058724583223138912080208310395791449771438355488445351273691581249463154981157662135044420014015811295378813542068869512889515034560450157702874617895261643259596762935817248657303918402461670362387190050765165616873080768403681096966997669037761088238474611397326926977238815949047451668131295218913888765088267436810691436579304151385158388300772603059860869229884882418897177743305680641301683720292338392904352849920332499992089649188267443644595708641297944164357118149483572779941290992027419737165256213638955803750824725991841369854013160256491477236451603596905705425987926419685873999737958863525349832209491329105285035488704113563179379272655741555766952945851659198647994202544535265271512991283171216140171617085711865142809066326287793529990325782009944373849840993585432497222150270767898967879727102019351653480042212531874794572749466091477366950159750346524860802528660287087162285788588111186906096937630031981500062125234979434241143843615545288805690741065990500965721829051556808356873130135255046175654193938185818219747510335564172527332272325785722097083236554655735384533551459914710957616180805129829439337763794109519121809023501705896817869903486338275967130122973901400501137331051729759468796021434029078843106133347198428846746148632748252200963522064703485416537037927753498488715910379148133404084969081891854531154729896816813243339551428102645356718959749527082790613467167835766154371075764362831685705540409577440495967106936935072921977280905567283571015260019795700492003741087304142549451932049094217792964918749844019577280107759954793054373288545120134648082213775542408354851091721114292989836563895767680403959758239126644026235238196769672519267241470268212937849503333592304721713209229843562968244011563634241557061653252412081019911777258520538385724025573467897355821521903724058170572234221079738251385501926546437630834499651682807820487243026802297709677810261012192423113358662415317421522690947586576722835344650646965896152993517918482171706354888649691255701224967311581460009387421909367805107383099032709201046639871513075106392245564710421623266534836439927857714721565237251572518008470995791789222676297525867907154478365209568531932820045904730265546066375876097766090678957494847005861953317892883480664658265468876938521546253774064157231156132276569114193134275241674318532877986432854223498241490100404331012612037043495549395102464160466635126598976134254980610898314843349606653242819563999335947578477165922905289515129288553339552876347834115330216563835441274600378725341100895312638672209758308359084651098421105495867897826872785987799814023414459586267697486074882028957287035401394097518959740103128402331334393852709467794247552377332151765626056325761908854638298852206227974671579374352696688200767486776741771498139292897840287974221274930983068674307030940037078716958036221682438121785723342851545641309068600409945462956388511758158046230757177130000651274713455817744180399627206682124784659637510700647557278930869171876413587037876959503996573268226719475905569309626888828951819239094217978838794099754611670550644534900427942482251239839929211214600816895091697183570722804189677774961706729281816321150751226635024415768386639058693220550793900923086138485597405641125209300397463779168129129538146867017957755186636783692173626570855251834325710712176151160964243218562374427257110392443818284896740827151577576605460677605662397269564201555216465315224210755092454443846906926048119797878272439938715754320939573907275320084504575255302464524055409004459604494558397554056742772654905422833898492084882322272258812280630751791787260262202338899699693258365643049924263840361935414946757925618669913711752347331860891653059579757877976324458955327906097223050219472243934717977357963473798649815849198916313322646205042040374916024464702194839041277894976293677079320194484495747137444149197232064161682715625915544303353826356786428412586126599062768511313543141908804443983170896609048765826743825509152628536773521700557998998091036156495974108258158977382001117583337846632011593524539267943466670427380007225134313937828131180273988155600961675244502040135176783569623645284688673407920156712364750428250540779396735718599992993861725214904224610213470002569516942539764589802844263739981959619076725925003169745129168394761265899803012407972161757735469081260618049540023730595249777944990281835127915150818959273502613222074292903863159404068086550955696423634528529806057920528901404899574522705406747656228965027865024628056618673271793228110816248170489428305348344195279372063083011707046934456483168630495247478263953206788719853617723092926082263665988422133609214407062522587566220137874573190863974981987194099498118313334934458542828022827079404581302679833983928432757447826205832983039701894088160236183920437333980105463512573396859503216211948056387176143812965341932547715495658195607617992746482280648005312178413096346668952398340112394804227903417304496817396820153719541909953135446115858775391529109963677523097290958849351751251689791697587857126876222729757929148577815467931703236409349375794628656257197230367100041167615711353376987039017048863541205141341340307341260622837229440965497886626677098403619102571747588295152125311183711266364101903307538622278478201368943102636910473208560765433052395690519687628972419298166699541641135031483814963438579348532152841291682522656598140582405485513470631037422954208479592972900403156359824319601425805177395594891250377780238932461187915304182917043750081487168912953087928218271376669029757431950465893266591848206683221563699321874161843175633702947181765765816933835326809340084818509514783189702492532208519416096979917100840960373409876625290568696487688492426437872607495248912907943739474420034632251666144628655858854165310098502437441101536734313268581540859045827816921685857384841009214386295724095901615096245258532207101274525157150277251408141236394711969765648971708312620375986042934298587983345894340517167026753348358568941716135149207592072020063075785431693859662749940040986923519991374918245589058062232496743909782062908285275297874166217876283902958587846091255529729869619149082134479190058905930874465145433587584179695990611768757882771776737351496287947143493838732371369199335347615215186997992056627424497811521081976739813308979312250102933929151452425567069957908688017801966479972062215259860876205798561767542867929281780315139510622691173544659339197290112813467709846460789826862681584324556097389129054725223142137188140971108972990870730452660269605110253023093081087948356806735437736138519701380893822740408276074635071612302623639635138606265803992073263095317193838742438193476916941961372379107505606748075307884154680131570515874097766679112156169695232301804526929027481523482468915333840579687887105942303363452125546160437013194820648359196693753495388916333810503736722195302998475733999701279240675466553631995386586389819714302827886309962045969124508192393349200814967014914493793411039671307967889538018021699940881482821608169172664743174794303780648930018820930421360812335640055760406699461801660835794691073931062050151229792815014923816849908102109081489092638324864112770788592399489403605470661423705024903799854107010618722398233032335447863905797600377538816900040124118376626876521668978297431121327858990025267390459190983889604530203808100530734193336003318203749510857512357764934893951783281583253282795540843469333562507645850636447323458773072599440339479126291233592736739789604583767839015358191078107223232415305584158359958847880313904117680472897974700285867536169635356376926219454254439171706344815374119037501576082531721166749147200499766021440585878419550765300967400130914202163043955755037355804609985485943522161348341544391843999481911637418029455795272606086293721144550070404349359722632827736155636119835136898213839889490833648398533575390697162542079565953844190106237947655039776127508121242894692437633386575267993807537879580739287188912731228455229941492529945722633146754222405233744133582438213725644298699752753503884666682611840327718883809002293889060353950391862873090280233207492388465399526602706011868566279980142574470984351726565919940722737092677731631491472796622183221707700537382079160992980564412496184221813599910343222302418351194553756809845678346262952985384036655913679309086639853951065823302840042873352393138402470603053988978294166219130333655654845282873846546925338543870730211317879943601623915090730742629552346873301440325179894469828767691704465323338445775170535080123691110280684567996678357322735120660746886583272178608033886706593628900287707010428736947119598396549461139568781877418077948561975953903287378899200177891589133675095807582273465261928175067655414216569077678337194161255531791447441220062217604270251524386091482277717849255188975122400206285136206352835251205406100912883995998040774945152274802226199514875064344438624888879899205040507806383422042671487306891224060011421278319903390716262570112115853822071529213728217659495702143964314919532153156066111191159435220571963682473630704071450864621537505729080953531715123866618771354957408768693481256412226127501252577000093496655097363953000134687012496927113073802958228250441255144524067587824168901705840938028149518812792306097473881021099183376680192596660494948958724613424774758461671857941426901036289415676204520829096743167792488006926864153083333929649051109262249691573703645609301633132084175780983448236631934176489124730775590132828004655820084182344333978125472402698817547749844979012176145239489764519806880860460293622572410063420436928264284545890464457163847621929280267796773233268773099088868073070378275220959441636585783677956402939042752112352281118086581253186492533347127274988453955247209317087679063604134813508330573798276221042933055236626207314107911832195729761885530396262257453716782459333722480500340951848078586109606843906102418455957381290734560596865725317675930472946879340632875352976341180472012426781183677072600177742469005685762834309665809076039980031725283984357047507013479186014052883750754589487550710166157765479525333254891289888311320871723324294284703065404265151369575698220184535758482021419035434751413317129690958609203163106020985680822176354890179831800733170442174497951270488645027567644507762637594328834557194611606220878208781081548683232672548778292698855169022319030718207095236282584874044174268000023307816988968577386755298613625270752629237833195525274850814572913635293551599283879379819269559188810548788922425082792421666267944966394531156108311293417264559904699341187201602914849012960468057327070005980798374377811315099975021405317721647368062234165530842931386944894388087307999656591246036743558663350489536586169823827188115418917697312587845899114094474262215703064098543757186497543316322002408770899153446439670648872667556855905934170054881679155894089723089227326093432531968905930394562353459437256506934255184187566941486606956284629137011557821392972573083843604813892356657599129559431964257494978155136962227430545232768975217820618212019581650262544784969971682999178449773669839940806493005252650060046618951152322405455382694223097066445884756799882084966969606349730487225046645192665847939971862858400627615459741701719618751578907276942680688775484327614570352489073100099956855795221512329362865611937800716207145607654297452302038472065143104869390306997723125002435555882885686117334642011514902025530652681405907844055051003603985243610214699293572448388277091945799164419971535937073299507461962878110267753830864122912527604188657000543791142896155995401121427566108288070797238324101093286489851642688258815616759461242783679959520415484486528690972319047383228249773180991192497473748971291145132955904293710845658806039707267951376726167724823506496247087740126360389151806457566722987898694607376929364896728569541372049942276688567292741784203172635987349648603079597260790203848886351617381153592559211656701446622491111511532256163823152674785416742118120582965698972506323591090329281174897968684215573121231949907404272824501291156213813215030370487095257170619805895883380721059782567500533563550688334495378398180048264705522268826613895892906499762852128708876667246769156041662510277328463765253180400632336850031390819849514278347961143378886304735580275327546765768864185531340154519300647504788504376134604509208210187178436246564766007890425801918510703778012205916605657805644551949498477087844558878524713703571501849622736437437504781746330569048082342226787992806402321300737924343596500115624393177682642966154036659937084988403845755982696526748384321686876499426668824131225151425523275718255798885846723691364628176437920498906720957301828880986071937098017274966540951222906184413097501420937261359987960235864790954429227736027867903827356085230263070499266661731064634465034450793809495354125017657792282378932156394180717651596815155089310767106141814144877105162645186008222545501296029776436436799523577884055872231176656741415542447544571154415420429662428546970984622235191436672998240343176862962643896317325676042366851485502530687523257090362515304910792898905641470473032179113279546965248603341818095841647666150114084751334626749941026720367814320539049272857451611257381602061167500399155804529086424897284213897145597822434610743445008805917771810370034623452986511399355686289459452363517919264411732980765345945392885827256798629834107464601138003403800977095788360879368061417925324726077905612633328414237989525760404312698977653364052637500033101908825542703889057624981229138505677503011839831327169998039977145818906200787989528966519606304584219837581011969639752216274446467602078724501639773555104979005751584219306313221916931106823991501736715487593774956628269184903217840082884144593523075049620742919911517580234895756501883452816598937804312940218868975502496250513248499128388773045034441110495663762775885895711399201344470589345583225163752842453823018880650589721628080399282204090759768788534339221368423179507680392072113377821546713860317891562849704883575950297390634817343388658897406603838430592990010926608346321020942421383302771482280320400400767831847367163171363836112013883589337331697359900931903938573697132105481723552838502985432471113835619352651661139122110029808116930878795199893604488255812196429906035423999267139788454417005208935966204014568995661806951060982996451321067695109772949849741005014037958590235179782523873690179115205500602171953719006881156012567154065106870638953425230427355343035972629148492893398287522834275398121925908811689716232023536239923321357610973764385638528500621656016038101924948666742771228512183022434077354782098105483436589472874209447320728036592090722668665443630096299274808344594256109367847515091808127267146912504613731899400075990740913873608701439269044161737441746267666852278322154713681308646009252250657010647602325830812368029138264682403663049361902244306760280673820481261282375216038350304431029333074032972236781948051767386482455018474366021420659447238467940321147696732309654794090523368900381770520427298406380473450565242633719356088152868326326784253497892298400439373393016724227583425518823387258976058777438046077939476900582228277384360700631376864744468464287979868500885880098953958859571018697781483165468608821020165315533085298715408692052574011017611678663158128760643139699309492041213111885121868388204906213644712482062940903102305229933142954848191331672850338891961553401533764920688160334079763149545559326942047172930213615462650555300750231069757058369469053767552537048598876256182822226019928217442174158703897316609367528614025655633689820811511402128907646429370234564249279283803170703943286734933341794300722815704010239655124047097340895533533818484036120659772979727992564357869999969151710970059026408858972286410029927789879198991941093114347491579461742334743734830633861539983539996962784165159079407704963060663709534317405208143236826678074984250361524432629989108537757312590523797157707994774484971291496812875092207961261248660109283573220869049839155316619076018507505951378858177797141699464950778435142870550338679329541348236147289457000774448438666434498673668256639011402527181324662807129497477901861110802616570559525062878827766269057055077361631318012997925837167498722732877151869545170563964074470239238067605261653352000297161237165055858390377622113492421000023444900361666302613417303969330976191577851865643719533454327547292640450741348190808328421990734739467388350878024231754045706892643728675362676704869851127055253991514385911861551238870591178240641139165940905178433446996026152732394359240140371723183343126025939671951982855584554942233471775410871901825966827656223323253813499429119550006086041838942658045808777072844997191264613874666357523563208468731004268885276370356710678595015281125672088687226246239657773422539325202643237557836371849612329166337614642608070426523775927817000910939916386213888357499850280095404920575066294118719647106342407566507302656089952055966814385760491117394271906822486937431318094383007574022291822617808322084397897580993905177448595253430699120406878466116227493270300842371083892222862552514498864159558113878229491048239161746007445161947867721707457482145505837373866567338558874178205590141205463945849278504074114649837053622070102370183062500691761883108229669301182433736639445491383896154347081726451017852701499720104192782866162991742913471706481195460163989498659466991738035989266999650180072590389764676998798795435519859354797331283202545248609052829823039086184196858088920709238940773556526723899702744467612048654624089038708834865605090679529765127616224368717163319404804021163866251733515579781471733854297410646085915899462653063811026876104888397492824327999437379577036573608808666032147812712890677979564631627374251417505130891996606369558839279998751667250766877358787725216448809630690424506837285730152177971057939082226406352065464924465914968146822132610375877871028185758671893149430600902877885554396915641474057293282559441590964374681084180577227065861382795869179419970406924234770701207551709218774391658907205577804560821183082384300133233608792763895151412870849483167385716400820002423672046152589728644038783013321586863341803031404745180593886479801599456827109788550497308564525159991223299369257707822959662678895363130598765785914694224137753099546665807560707784035628648036803939300562107669696036796675935764316941622624926641388833615483473268208269482033456308278226062034406383107436959374064968578444835489176961172786286415238864867851869107993473118756380464258833400631007030746226883747480659376623597925784537078428692290801283668062957358345511761842942087743462520777751652768439351516802434796434847835550310512859850096190759197468259272876202082087451973346691601906806919249345959246119435500015395894415365485862566637532985320230804969230550055667941448358520766631868667697732632258887340420967563806458354603075601421773252243159483398275331988473195915157909799080128332123225409342362009791483576886710646441436742314205762320360838387235260636351821642275456772938167778228198928336790640290121016021781761752957894140041114844697318742732540581773798386217420588325854747760508373490639492739850257730028135280188160655385589625290502240221851906276803027054963787057348686101670160578176508388675987172525542677943083077254709076334903215236522562267373787451623954218239896349790478606643639914681102377614204981950846173482679281506515721381515750159792273990374720617735546688378170484566035260165987107762302339318206978650926647849172890942460934517413484169490851353771057083687274059859378334136973906359124506323250638742942231367633317595162541922649302118517263270471808253946566959216700465676688538300159807198912926383584842387902106185499672944939609694017740394727357881037511331782691298179830790027043938794534340160487058647934383923650619694936573095455130071534899978044796831438690053515915912504979329573873910549320148464201157787000426367952191410006997165573030757013787520814412836932508386323183195817151183376379940539354849977854257353648437667224149610678149824924272803822222608504484991402395567012871805038235119506943225868550918205746945032994239518142460005808358291168672498665863788902886659965213334341342905610463811874022308717223812317239702839816178674018383879579447612077281364638669082802041900158620724279625467914266207005125576562726446739491505076158119804012700132494890248228888302661431427856708264272707232712831824054018976229231138227555075998138694840275136841948396611600488992580949435988051336002026376696194605366027107160676412996147286066034562484631883836463914010422159015670911347772837821472356462289014749555317877845550788611862927945509496939127855507225194594431496569320576164016163785819897463584493943434764641909193981256916243031047408897895851451709347428977572008883779740704852002596787562865386983961163500664174347821099978065694819545702052674907903208695107825092292119225788809075318019961127090908093627366009948806971626644320419033168265291220287061389674012105867989013155251563141981325086473606205506437801523744565836987723011818186454473978305992625625635838810253636218597508437447567565229127535883220837930949744569616346579167945034575230994897667570618137393794421892169891628030746189547064996920151476580667474271655190839733252811116708722154349726431467849967532586280456465527400038662781607128520768160370271198564942893347659031927317716649710381993212837426788942323783196138176403593239865462775491015870807151012573944392581634740404935566549614177969007148562175817198686080148048324862077067360239251758869059827575647489370172325972483034169787564975303424977456653014361108585393261301496984027028534202696888701476451557881026669255723627489769931815278580623725425701510934606712162634125976563018103687621258033615042674716215568902888591395649540116191892828408004676090143462714657948772705120900229677341986235614099490051639531250790594782652299879847949445935996210011297224032079374943439255308028420239041820319006473673383318804899733787264757087218516833023465963545975384519507120823216213655074005583973721779227978420281013230752781205360790932163412828298195698035787676353716676542615345159107523538585409162049960054724988270236759252308433772680794275334850022918542371468680178641670963071834770478964166749605184934812659135249864684545244451886079024545165831865168677593695790360415303665853393100184934444813634016412334860575878615336526000375561226651112306085022319897366215114589665379454284643794197382451794364331259438740988392548186569083127428184208447628130587699657859815833385565423601130671676061005126476354819457407039524928768479625689596592661125479813730214411251102793801900024250894388634864577327363639087636131760485213626273115530471559817664990579971057927220908684429285092653043293687232375452054124810197903468430901708518587936847137807574222117443263653442934539420663167831305471750882520242305486209196661016531628740092820201266078012538948606079598920693822751611376417838317751833640824743998855508862498671966066080617700342570690068409899813238955021335538433511056266908756396636958960701093301756684055212580152218430038625760170306353159258459633286998391409114889772862230829160763766052835459461561226185277144685809504473305512012961237647979028355065290669992526270251612525221498262297338807453041034891369998942339770730559106557193401099288013187155294914578933721638240134765058315181997321434110608986647324386626127914084815546582878675873950947162273153208476206801556548121532320652808422915212253602871024093970137732595192362586748649769127209088727796742000984021143851980597724385940383116025765856305184186074535531403183463434269469912314019264986177032434220665916315978894622977689484588085905550295041523967642040360971318529332420726754979952376379283612568174554314348191217442689295627690871508891442332406422733576692546467338475157950293365143620209115514718804475848176055120914741101094632403537567904104904023671252043798609942662519007958549894778742987496264563264370094851444090487149265050549124675439965570330147251477755895979465159989298420622270766475262604183670494102592145731411447985872870232707209014844628459833576193744587964390280078199021408968590366145164867935351981850050599554763479627676683607210260314092349590135428051011277413065198507727308212449177057149069977125166710814087697502485071717111461103162618984755985806674046713273718101963313487496997574156347069691617701364247904462541058018327444475430611302724108639655689949694534212218258546786905272207214346918247140900406607456382611621435504403389727279817779552685810099512575179331543031450386633884447192361361887802819326881519223439863153631015014218505400493091326200511415726160305142829208145916727541040980003289840554501718210126910924339375081388392079420493467344892146461032405344920175695339090442999729931154690421499657526323325165950940831949372228874926219199952990519455968875243643624978089311432815142392175669327235171551053337708151962721910018904588770590309121336621629156066684285620077054085282606712388182891286145717214587210207877105385142143845000687028515177605408315467549075823692998874243217908444314423131734595375469440568436384353598087058636143711380000525612460519027791066463283707835414276766517433701596395062407293605139112672685814996426022129717721282362918746536564500624232304687734500918376101773350608126680642998986208531299857120019221231465087095171159684513198361751007756236071073247941441681674893129501579842032046611303271797420390486630096048956046346214742373364051952166751922618663822213470458769781770494818462114312183048757134186494600643131886116518198624843262210479664691418717350908549275886586180288413491411438582015157468900991379555723198207474188601259065490405791065439241421707531986509670384363613015560645467374408394150922080951265776079324347337499298861363551263428943386718506137780133061548065654041468763914432217020348026586068943228161507104286701387077709124653567716097625014185133708205615587382640616852855683140938438513761806884150793302322697011791118359729306458869517067813066183145265573016307757345113345966839629931169103462424253852823186597166601565969863567039291120951239100494544588708132593227421197867070707676102002787173554070669003961874471560841111004655794426066531841931683375125148031986943526478526152701259583616236257740319210944253802212331097679822958340593190934820838434940157811005450845113019353967021042971508271621369607510905371790145881911198365367675925821445039059757947712241294623741184287566542057820610369621698002767968845708987901295113181063763939889496205983073214667819660702760244897256358357935428477811957495659571598280082100893317067312748036000821110969940034188950011197435958374287014666704221563071277892018485540988509255874308788668817990786303397759712834858857528021558048115308910690104754370972631869782646165169574710033273836862703622275500998899157046400364995674796663995671641290593889326450220380039531633464846552486528723352174181356452226683404767275176890481590521736178808547922075295715193436712861705948644273098255679599879259985104572933726399587683920981138871052524760552418735691708069557307495411064062736903331133821410778844262448777524277706191196639843616157073922448273204992661213088569583549080550318593104503375830362144383944448023085650026669475714308610820696920855683166537380935688980772684996390785547860314620261603561587506698483592374154332782554446293001771601891746204601490465864038855735860208114698000805688054078191360412742749652585787632788141604159675153689430418012858437128283556747020009379596702826949254375034218575817669251424854573594224528040938750124788970464474443552293234676983244250878750091882788226788851983331573552630919100831120766849088368499797175985983778405224804977795770805475757612439868940689190024982060182934179340335798616742979705607244031825698385850161210682270977950852623276488375811691771995651178354690504833401266795854187189749475022442645719718757519310511683839503207130501147804548717580955055301588254749928964136813292441703567184521172890493829404175598252440669784977641371511189707112271173222712719220426354779722324856212609658322915425813607014190787017708943232192199067957160161418935244797139044641890451082214492399836036251348554759156231559637269959260947396266644493775909914542426755170846217382854811569250681618159331586459752956067353796817523163508944702364798052249792276807894945642812641275209931892521369137205622226234155721720415043424325390987804594723465887549239171895718542431773838475181530790858885557965590919887113880629485876794615813622154572797406288938048327521874934413749040733030086581668480183770319895656668340125182075610705415185373804481658431281513185412453637312153920765591697391412215450894267153924653421485718562952753779288593397959852589385933295410298604740275218340568202021636437319443177843545996322319023412176039521543282727647128748982506933970133442244350378140081565135318182916025394985227951642075882855462940077031579820262754600440677041286355101983897604722762025065684442279373727719373995569998351895095864921511019299751417085470987132771790933739537919991266982962384878151155614899374715922210209683021519324335378989856794610334856812187004043466872648667204141527051403882109843799619172868007651296492042401496542070324469422222469234489923835166332326276505266538364864489479514722194123660333272156589512062406398196516444134207350535081904568120674275512069808085342439034201235325096904843159728157868098724462701159856904018671439706163111347339639111571650447347147490075557724836863586889306327990152867037922304955104704832481607880805111398860939624235225679637469855515007158008780780993774359048929531960592051686690091211080168377672664066330827442462390870883151180410631349759746631908382731605870275244862973549810485261961008763186591374088261268841539575850393631834358000293455231329320949828860071642016624269150364849587165599018674261218084576184508637720543511579648795361981566400363141701232004980237845306126408281386437640118108725521979607114123924388656485679238055416865357206369396408240725544248978602697046367258896767957489883212877923473930222975076960141872688281568909514552726391330434970459354572878371158168469092927271210198614391739379133633923122238552127486303213457112915620822297847034845999168265676893288683965557143067915060724017464761737071354598984947876823888040295172616998048125161642916593601349446481660613165284950376369947343422769269450691374512354207502062309110800050573139041392937234921732698551160226117581078679836327088060929530983171144072437168314844511253446430694738250550435880450459767975892338895748924181628364617584228940564611962466448246896240744735009590167194036159737235633941719214002835849126695678985078880532908117973037519817186830596055323009839330189107327463190389004313889432859971167605670435081268015313458726212907187307921517854413047504373975250635028523491822711919028340441056634471028138116735599064157371489148244422043784144276616304202976047733914644641032602280339953069192994532031180675914079166576519015898663102839750206564367825650508997727460110439596365407308897408041860004851974285599088147837861057043066399680196014976889467318945583501887872535754210995010091614024794307636545591967024931584367063558845285034252757495408820833191454302742746083126299376426052653126282122931063679460227542591923965408804005933875419668722697733746864844302544570323301143901095163439819485203654904992631206554032039205402677817489176150357070680515114905296614430450052199638235728937132978094334200381615854049750170767658551850561035879803851421723208971972975397333379001234798435043883837557623993250126709892962582926946899555457465281266900849230149537210318452720451036484473936875229348026739247188712291330614722060313053404956709601274656086259702749484721735070893650496426553027277208733422174154025611500971648047834278637434986019875612017675988073733883568689240937100393923863302600785145191089229205328441199493124134403050112540843122109727950707444138155174480131478346788185699848039421728274910309969139918148613413768920777036294781678363547187123281656170289843250004532388004012552206806481304189227144946131679348953539908870002798572753547517515704896974540253999522921792625857158242010450270251935866620651320083201798793678118880577580243493172779577602648112362180166889016703171457510099977717457650496810417604303769701752353373951092044164315241055125540459658677448689812975125450406670553711368546097500110945283279241278034060501654533359405259162445829158186865470725373401113771951806508951873505315824788937021675663536037553347376745027862601417048373731402591567858902262930272881742775545572123536507836105460001797158163430456435067692954561762052261645409585384329971553406980272367101911158844238208512661893135752956510265073119460159214869498056758299682745634110169269162672233666007271343434962715058888510102341304620953876880302523570676958845386062682171187848295516849966103345598819351118618340055150455329973669584797354051163100725386481990260921957551364433510934131248023931154469037752671117615885447009165113192097860677513358747350020448084649763803432142162030124374047469830697201350251820449045779291942410765011678270020255624221544376599834061520726837454372459339867911232412929305232557726325649000615086937586762292569227160343563772543229362382460014568463752609765973240675428573178090408937262833072408549906979536892044025489945820015558972149433707972109708730961437500981099573726563494567354245952192047969098149303409713682777533687317631852452436796340451954329080812899229771612906725231315396020215068422491265975150393599150851976230744186719530223608854461621558716602858607925300485848295987173606396431905989793815583360542711297000431588258769440762460329927875476286290249174663252060086371765477508505155146840765041311406030177626771554815949781319290346977676400781210591377249473788303631313083149331709702005100287462812248180968404196814107495596128895898101376678461412218888341265483179747470123354963331508745363573801410019955985407613315311903009480248561078884198648673291483447278621137465270534706053056096338272242445183319944867140160883362284800004989177330653325519347293390574393876080228988536440191235764728160404412656881441752599912599497490093228202731175325785595114857435488569611260226687415375216048013031328468969472545125764214927588534757724676120211533934226744202761166195607782033853959841508479783505862544358091319954154327126224401241422552146479820577399997436714148874307487314233395948720920142806037071956861824283672653187412324951749384894506074795466417668120769200629895722467168964613170282729890489151904562939539846643392945126885520465193598258845014655387664619410316996194363181511464437041693048118195917722723983535243206955365293896292733382404639679823811791897725608525793344658064245302391690242611544314206090993915870951410090138146056807558370364723857808268591165252059828267095697794642439555790257126075466468217715608332522497397431247701384470887481346711657284225427865011743037822333591112772224029300816418297489182877245737017116432740746419885590012277163754349131256341563630076498968092980087907814685098611144645919174580200497113145577746403597434441011104147180298237172679101571579913182581578439406776531964844476649338064464379405261054523740868535489344912953575747580437194735930925196171253485342859025184355965302046206687007785752446424045536271960705953024624369222107802664645914121871861775718235344152856220983618720112703463578086303344108673419799297560919908840898202347383286654983900477620615200430949759026911588727543526834545083564981032664192972870171457433067322893303259732717770866400981665387236591069917846884963316789182995060791606953210893144036574049765815954297432727364944023417165681201831003894733423029191378490884629156802531478276338035320194705930402335346217803245797243102117992307685181963437012841424554189495427848813171474371094910699941271820701961708512966785349850449009712935749714675541665748493925992711743197156878965795027978088116645523193036137785242857339606832922486654144578401479635419455148645247989121769429243993712335144186468922722211357071300876783922466990429146380028871494682491123288849293546978184233436884493154547965385149842321762636146554303842487841237117088128530507542087871945318602879419304795369358643289131419192173305405299512330676163309139064759898052463755816121569630990812973391191283682131123791256691669713194805231176928194777936251937663926449296883750247540366730121625329753050195149400479516989243704540595581296476501574913225786073958784013174248949733855275888881684706138938058130304503876990515955949385592442961177549718956987836723155384581320819362158513044889422095653638362264197377822565812854061035207312135158913162827883046433821312470189260174252604513044540096939192454856564182294431796800560879475752673958186035956771546626376748031933003563229933354965449272678932752343202306268489166106721050503379825638400818633630632254007660399847272270358700841147189617201939591456940722983602315717331615145502945180684334691819410659400068995601323182357004242565425280558086776319484500242386030744423753551548112792938813720783539686912087080986830888616978138843111746281301195513170993998308442470742404703889759845178735342555753686505425271995327461309307626079770480655965407927290140649365987648961163094545261004664778289489256566968605460449118545153024598851160766013356354589329288053021176640338970363932690375145427843621873735751891907093741196126468482457797349784749125856072953284488128567848415236865091224491068648994747694235278623331318626519616001700396736978881715540098236449826881209851132831124071869225866315078093735440389977958550191396477758726176600582177319025759870030925585966098145627282280198472728632113253675654797302139852688881554705114457347744088956441003040667112793828571502270569531926584403621849659264970762482802261946125923977047300282643357416331698812906712396135551122748760891434869392871877750427086578825513213614765331166978920449573786119003220817156087717937311437698064178679186145765917021758653663548949899148184690741584677329790228757438083156661226229968262866729204233510831642607781315742860756952615060359554137770964892155938318960867026838743383005064799524194635394847464522718582682853297813737504551786452168575902369918250146277963728675932769541631421369377781836304640198161302153792256667331363617216328455136876302332152800295656312616278639989199772635195527092545336901047965790672770654457340537758511170525222471711861952035837778131692639454619798217925009134131607419651536110607721545522734738209326955122550188722179823857891121245943923726616553687254306866079964603033675480397603229084230685615035355838359814532515775558330259470846622504702139960381419973475409868186425465064844152449843829464465866833624773319268796384240821772592654561231188696029457063123468919856709757540624957399070722913401626578151283610894700117839615301734333779450964587829158292744751967486827241338338121864170946055076416606749850624211866280287472858983790050187955801640839177691385314203643810693710375471172537045214054165530875416438973794814633655554287307004437247362849774779198028010615983452893920892969810598388225403067440001602542137855572759045304257130319868630765499762480819366398186942640359983305856777018545408261141682010355476816565577726827640744307171532142700336969661099375608093061739788713329716469596294590992739539036791492999454315447223200170979887477750595840593157816213153570534502862052124852777892454347624615355728049779561434723058895911011538983799725686690444600283229548647273644356857143685372883888525223917361223368445414137590439045129790145686616138845912955478821592146247221197208029145496743534474266699367758389039052271320528830901735880238304115492681649341416524420801244348787501523374886671878483254549908598455966138776658970705150033381510779651477556863670245250118144159043985075316548700705263015355785106722502509941922652990060137545059876014316378430851365155754606919965207786348651529110586446658073768044053450111679022976173932682132420427270840580536356108173118527528703149138687889253159963608401910672500217040333261347656051792893376872258047804564818714979431070481591726378277351076138413333745179354891429575421002718083402086334667192554619858546705522447953122474601585535105072996594004108438400168871398419483542052988454531822758161549926776270025716316234053445743069279355506277682639627120985507581837266477360550501433867285265212709979213564749339782183000790159684849643742559894753081969165316469143925570033096896178569265608462812006997633454816318211733427480983929108623538512315063552449118820736416744903050926602190460322323871968156159422255451757948420978491927271741956201653686022247579618534928628740863422877618182894895186946142229278428808010353801000820288279345866456054887642437642190403095545780181352179437658070140530971165458471025563769229346274091494628344374956042019472900700019264288470875622593047050844082840266179442035807727510985894371146663359109005436911299493099103991307897825577263611922145996386254339090308461565759989817588529942092574859436008041915518677903228655896036488387070454118737397938048155530527446628307965992217037236472432299432794621214186064852929459553310852190785004077356967333751495402635410990334507303110789784749433963168855357334194068770460765688718504527041009779862930648113008741051996498056334528440681319661992736738136398684194547253631096577325022665070408043598651808674555322756072148342246670486755033244814873752162288195172159906487636873175295089355342565959512682939230756314860105163629504704948871680549781626317222376735361851032869527540231391857873711854692641059706839060301205321629636996442979242164828607001710633585902849614292530975044802808400064598690943118422095090062971107190611456294018005825004641680593075330141478555440658737508015986796864915791006692060755024369162920837858722600651841629895186866686323309853789004621732049194983355700602983773299934854199853653315784877386587833886686000089714038947717269356513169653431323882669796164306152865733883101279135129328314588344290279700840146919522991241527170590302822461264775985978114585529331954612284169715403270761143504587115752301194761809463827950094874279896952029359072494157593439027426669918711942317444424838674562270090031426647041179257022404583357136193618257256638825864925689095462217635485798891739240639178666443546738306004103848154944682442459226187440360319572332080099141497762705052356150346438876154824188618666015072023718011351957799107282974355793009317166404358503372883663591949707403425458813552784527386906617861476403643510088647807208146513710480680409699561380753250477648376190774062937729558928344572509025620934362853085865117231712057111324816703170146520929922208458342047043055730185211887823097317159950906638748875823297268109504568280786703433830111283002625660594916843856311421809868818275657442711365798628843807136541726765701468488880373616804166430451529785767764525404622598095561198377654117869577183815652003825255163170147860416871055889994788798369037590038274279438904507380702100032304794172712662023983635325497006483222286129617498371860794325843609163750931095781232660220313400083902802177005147425924199368101551436524201818110496543861763884945451014117254887218093977970799243038765640523046614740318977696918282960621408529378177518039063378688454993063846794776967294461367913634386453426867233912538366214506987206717673705149031413422677213372905665299874550932768412147691492582017841858306835683106501245125212157794200162423948285491847729682587595400867893282807142411085649202419469213967292497807048964170243737988830847709132503460851231804060795589518898602118556940090006130178610045930005266354059646995033282527131322770093359880657465018720209012885082118742136562302469262157416985924415662821538796989819932573261442633998619595938304095734104204513327870543941396001173532747222938330845783274651755448008459819180978687539267736525298519337280751149721469341197401362868959393583887735494277982712067395486311968612750660606037250208521046093532762218553301454053852443523955073703542401912848704590365934575533855036831327464113341237274979371647467355202947508549766505150613691626430323796358012427774393735882920894082395005438137543854075233167515587203060043731361371910014785207560510917282364544089013694421720320986648474719714221476015655339309859539449262002748024184835048346436507112542055267377874518003566077032893267662303315585605501785346183898526403298479209079241000838878822616689073004510621204044205516719924985870680226070883776745106544489176246933479003931084305100404584671233555156037099479882988968533082214279298857209233537437110865677760809180710640621523494418413226773713662544761169670176490074154770321320063987411758195654466979374139459999154419301220778198101078016267737891294371899198051049381627181532101526731170253719583223530386323687364503874353985726677014978678812276159777381717171661048978896576873081634702934599996642090674420135497515624203648906932433348814532513425396663802508303168449547775296891152804932217170384187300078542411209840453501078015642373311918997444478037446638414391465417856266101221055397572512312115188688483273774696361887140757988187304466846338615896780336902771428760953617863674510092849964527970664127489688208589866663786720326684784200458561272219321415992500304696462213178176751077294533510053363520943179351154751035233776287828056415022590252215686583698345998924114175304456392127411438451703962620227767679443487332363936502200072050626992153169933284482556693054839349293134472692444736527189640795387314695071990463010959549597221690822635571892396911596522317090444044572620160944826013860000363159538513698763281482471556674127631278795843432693039977029794448015129096582501744591343033113048530234719237429752228957387672118964872726012599837225215581914480624572768529837770326436235575079520346916216892071204483793351488421195301955734176542702843650514582209008628388721001652223474310243916591166744466290171796957293268642540853947014472625426327890535090535237065743521363621906679390027820984704340374878643074507447677446715962691545192874515891183967286972429186662037691879023638247793408777252381709735679119630141090560006993533760676410631763215461214400639481628786407547461830540871127480594767313386869625894572024639738580262097161033706747304535458058647877745078946396778334342054639606033954659185115817197221351622684253692022920963635662558585761760927403144491241318710655796850797915069492294639489603575710692404063530301667902078888283948148706321789353949178173206745128156793719786389366986438049293668597162945887584865074026724131188468896197397204117003072422728672062617153101930065265742474064862704556024207240677805692231174695509122428845221367856440986022588391139759284819726827762011473727430293905963946209769735155292764420215496463835232292845532325048287158168188267323304114797301349572295073007545289389954284704796213760655587081691314925176625606626739322900919139138007917650393215774151873358585478181834650960821637874719075259212930724701511016174537674212227658031286926557669547637281477624449985519720983157614647333438151067981323682327917349373102141401177223123030196514592510310263812585844306101847674321864075564734986341142356816043790318093555682542016908995521166192639951883125272956089568513921571336557198342622132062683886887054542616786966162182166931421098296167336277790506468436400339267710902729154919335317613858766881443631720966477169997976631610641325302531906366097263485571852932565557814107739902515188260716227737327906579644382346100364739590360601876270669143542062117063697229679192279597008770820472571043852370527925141190562109027052990485870739992694511923477859886702465843189495610479132617574381027718200836501525205684901181815984407423888459002302859172046216378834261219202555633922309064586611621210368212916287980571798132138509549408884824135282492868152561988981201346392860279154745096984390462423250524443653529620700087490211638432187577253062441858397340099903560864483949396133854326886820993597980877100525666516253221059859095539390392743978799993090717624993339481233264248124235441905890423152561328542845924639360984642210112910332952582562426411002862132811705783621166946140480347616176773352218690788829913505167850102921782660122670965921038883019467635614894654383861740078382470843710109217813657490228221808688237180509541636459896705122631576570174510566058343560238592366715463976534928243107501533111418979340028030046848426078449782398487176819720334175610804853394784139388509243093374354944762441544687668079614358189112133870352937798813780409416986358771632683796260157419426296002166574257875864516768303268791550439837015582715093685098797571451032595238275339515497974645447908356133216286321189596581376144281322818329549317481949272495570591875891709273339168714641252484296484848481167903696214511617751359634695113618758003571770047699478245487787289899153737417606059603454243631470199048106940947974310298829192916831502955480308522488743372881552002929522147781678607729317652402253011046647846015979663076812321897077241292063477174099091012168215379234933321034992708452806299673982633088365421360229547690100906954888945581466044459299223023243066146631063352239079064117894837328840568919430449309215244709463242637506326055210945083746093514966076456666344999157095109410088478501106438656534414919519040599793261750940086830261334042707075464495043084562980205214726033321805512945612984407121108065537091864411688949127128771241501900601221774997565739337458701806751373451613723364044450655425935322350558615026527121452973964903478469879297746412049303385442783648251031724774873788441329445467309193272608271220371377450278660107339926734433536745713751643629761752965572340459775413922624295096553433722878610162808693665367930063971199182892948530123941001522987360964950182938565846581153626765260197996836452720463115091493906375852415452996967987182747746726614975938217854284142771128518357491820613651202445318333022692806808194525272625318328430346321972504881900609590906086607738472076337232825803775430753908489292275442918093346447986912589811571763961924655401616481307107956146701779177060966306365758711216616310032147002087336244895252516746909087205234862647289777383232484064918702005597258489398448578321947376713938547819117256917407275623338634700388470480104710861944316869130059823992153331636137624930563897440043801656706814213413009706751137883627614287038788286886562710004645703172713747007205723161724062246335759487348328131701178778503435106896700874425224433999074301751007702415394264784312644198785517267845266901134005220404482159430768342657411143437726729738581047457209694899547755682084171156484848765236821183378352130313114187593297406225342975103632220799149540556406873014181808485981395737262465086880777478324830130116291861767154484411989311649549807221576911597684030979855944619157653288471105986011327208023349782010402834222869510137735451000990773372901075539563914170055767626738232653527864534969350697203341431525816008686925908851046967117223708056661459179226384264217937408329523873656443578418913796398961320090887602410987926116450727987562217288814119065681059392161166615042488412786872173027886782580050524156340447724738825858868560237034427554395160492142330734059560990694886500648075959669343857390184688052990988752793677755029953913739714913351651481926977795660971267690837926495130452481669228441072654420788221392408633034258571789687709944287454347144530480253590536877045382492429537548369416458882102032057579454199910858298214007675928393457293580588992168668155200261212859968571177690048774315553894969704289737799980435200588389719910613055364007187914948283079420426563416805559112820844723311915942691389251893958056091503269867330905421886476716788986423148200772743451740524350486400860658117064262932815306649216455021695869862800677813353027852111603972666289584289888574590562233908738761000868012551504510533601605493048778929388053461398304613123971476718838523165438392573436798169579175758252588030610122093678703569183624713492928390287227680150189210558985491564648858458763604090347342047244506399385489413674249450350886717961136155126583513321242859474720274872655820849507007424570486190325000886954043492466306357326621993414440827555444437458939829331536911384124050049360215286265214585187594332995654602250714929609469227835210886272720243121248995125013393743908085736753037958810706510732784093197132506497202685462986991304150724878177315548645692786433727120658345142429443008844725717011562719647098926673829199317174313380006337796977565549567328864140006502151482047903280170966888745505631741697283930539182856776786375736252115417994699121750613461269617853220271002080685041855930859345059281941833077444166524521502756151722477334584371384538696826585720180689163995396096765749439868692126858364799213179857458940074454607521685792045273111923818528829524748462120185097341952762038753640080440457185969906169242905777712247030461735650874621369228542573522875701747735963371345171259353377989155149807041859327472520728528656349282576635866363440091359529357935078666630309824257572709138791669661863535771398964402092694506665577449179139592800700460269408711870927463975415701086253871001830098148301607574040393693564388765039856438896449250900024528289148915727222987732583964761365488025908704092357750974840152441308687243487418947732203791505875720938463883177922319855982965802745149453791556698252512388008229742317586539965767555214847218665790919687808649621992269964517739760127721030571285358531184892787003618869035455597120930541326373632264582294339071774945895613664417928471068208627805687551180705345472283932936603278854511306052664511419400547482686685375803468210904282218534382529354696070880073519482722857615869394200259486520147183208742442857306318200437244584131420684294690543707956954911235086903824732051124977903613752161821733689201293444378250988228688473521589514589002150504569760925627092906233375954969292029040396229736109570854411848990100865687868387171965598875989912747178988603605020245730586534285435868449811981766023385094621688816139087427533070383466074123090345486268342647076955645234548380392287830341722595652332548894591483146502132562772567630004050967571358891048903400289374714039722229721725321419641052430463255709441211989755078767247664945779425599610738178014968837519954323827897880594018600176804797090111298202402670324341233427387538992337315666135695861510773936243115516653953932734320227360271850388350814537426281656438340911352154284976316693182482917382153417556824487578771594839291167505221891788535268482399517263294333944869146283665230963235858787943167816632299398198443300295955022575778866378258889482284725208293899281913864419992225679852305909050765197338477956126175016343607683530699209599497319611928434890468504650811388054087108851212162674043167070588547195204887483333019776886085355221071270503256126898478775386164272607208542485744588213654973866096668882275321918950594611004063300742349720400424993700392746995848539136535796054154903043555779219042666939634299244395673693670292198683748478403772595772089097708586321776773944189555520068995350283813700914964098363053120997638740459838795726407395191033010053645416736118406072811923243406703745962503959070263659847682396876182169387752650323221926549844399297160378079801594928870730882423387118375346709924790659882391705852348978660841338672718029289225842124015363014816418458689120106954054110095032916842648705702203599622009582750691704181989643864612598903289961675844760664006855845920982249668190522273944791713145174314125621329786734770394108926559449493545119082438425648395037856044534115327478213032104486803971423836477697022587807700404067760975790319289536222251072445742113591723012876921598622545217792393931227415622202829713948500087556484504506119855635272953780696901709126009536417559750034629892706519555742307670057579632012816637469826148973440614846286146056124805945509083089735508170291391397302399642289902110129251928347737295343252865710744015627908328409789307378424063732899924333807151787976475190674853105905215806401255843200051598767901775331276657863997831981157573290171667850722175886986317883355269609788378989595771366308707158823541172123333899968116009203160340603129380598347683527861157191706351576126965608867979525741245353509835318805870198549431582822612444424007734383838519237778234044133762046139423906713191343776929179241538385830990048165408542547544367836839138868009005963810378542214091441870805163211068532091829695091078771944713853670846168956664701819903376190038968200726863297052624824783022277741079907704464754420710215861662705456085319777973700801606275268018947657227925325552031974040346890675278409240533183792677647650815820249500120903620595389295457821805488137909306153257775873666315705715085882886771150105663667066308571312171711905604949894318355305826970580618752118917996387011592667789257226743864991758474853256149089524019846239378744458420072079973217972023060845151027842569346229229365337987422231886711801844909086212415793874110198447869056051122821549130428932383885552703670905899544320940477950670305863904596442284638477782716579700936690704364427168936052912973265254063201150067913564805906276523484545309189929597271688621248001286328372249479034121909173616235130371273284502394859742782681015812376444960997927134277333004692610419060448611529280744501709695060254668997682331397679578305767142082756173655204730224557053268453131296939865050945513816268981714717778127459806021297233867657487183564537856610994215489059434219231844145924603582515890003431401889011762429186670157277093673020614098636735971132330789414830873502208212980404259710675050358926838501693071089065131934426018482980740298942352968412807002144983471184505849136216621800946293413214855437594918572202628517012946677274609114677820634692541685078775212023694745070256698530990340921205803345105314557764267477871220823052158846159014965187511448923472513507397283940769629148827437923148754773088392667438954914145048912935277340411539063805269975389239588901409428895709671324252671214447956431117898276879876184407986111656758453881045619393884207281415983018356721396954189587275415804351409662949193163294400854819825757412349705020239043343036698214146561997055947387802941774418921692356772088051578474655424248317352121608516526995476843220780021706824968330591481645380003539458476579100845627668773232677493531802381519206045774711698730861346669828569339899839999059564371434299792425555719281353616110357165192623590294181044139867188217937161103158472537365079200981406608954764876176247989908914814470011558023291028000752281730035005209584080393031291401418329237508132323890916572547402389219337904354806598298601339583647476395769141204633673757155973230038728083282155987045653299343371588487199352090220004955014967224387482775320850965833440484102732720459562693709866892517246969074204943531035353875853275035452494368924041521430503843232885988753937724246856416123343257645971279791487450837827555734258479786946802204475727322447952829946575998792146515203517838546977719291052842466648614977480496582016318038044449322809935759476143804767060718309423306063845462130221496289106949729235281267734600439035470764384671886870439491575525788061165957814210580728942917420240026840284125525088962973927068089431544855137034285964985759591091233554638801440444943743703051114828165949382696351088699532348332261169380180753251001528545414100283376293367298472534077282504905189881034902655820436448628771714890864317567357426013755168818001391621444821034341385135393398357977296352903903617589321078188761173053908110543576077089165132977558741743526591108889697354216289221372262678130736458324341016036973268997028757096857204009709534541619655103678738501797237093022778090865788312393103642938840658144967763654301492429911540465107381243763144603982072501740407966866234820817557973875862668345158236225407241052054638313745847195199483138405852965386391694131836990192752262142420940701103299104016806109050809740542033407497712985351289210216143729785111302196696112697587790287794497069512195428985538111109245364910255792519072942256561674061332797757460717662609199322167070867973340792523605124467227705755384398973871761308760361375601147560023671274268930124045300527205139119695084462171023949052156475859898496442779039902378290437060307911799104411883825248163619489958082944337454364580472482284775289914123450654524144221103028218984806353932221116895868978862960092104623190145336534986563003855784602963023447147195923622120668183681998890483248172070154806341216286134401756539542736793483726014561381375230877246359733633363468925612384399868491454849455380989463553833942099387606761538757162617686365541763408963311295951188194604218103434304726591820356684348176113268183966081328204959514193935813590390717027673466417498451889172419183817240184997116069762247869859112403769043940387335922649955374763662516132459761407624297292726279263031374273404035683935385762508266767133329983774324147886447132960457633951703356886723253058219498834167192070775076286500876955844911451875205836116339704375515013882797845461899924162626781305650157602433448811276854106227840630562194911840259916714319757293786804698342092512639917565193818622565179394174848638203995113582406168941328432596763989751385877868719051646490555911995039857865224342071085477229220959764406646534228073445403616790792021157376848211959281838517066746645798588514508568162222338161944202964542861642284094529011919788355124865936245941455757935092022692423774762675021395201047561063858589253151130722434951918081130114424795815666377531038375259980563920617157851703724879361649220150578057086323518730534976757240264312028976926861379498997607305327600155895685998603625557309869663330915055231112210580191718420836037396300634734338405220577355442389794963435931596835998344732391535694046590505977756697285907471214256295414605543305897714705060573155894306953574656983930035982883148932327730241542889561902485714258078235645713779120285910100444630591822353780482534742134373125536805225090055787708485369121722181838986114624717515841794496332261539975591540022214854662123223981477206008464086069843351727098840256354155776873413844235713024770640235210486503933208801634275176230047336437915246284646061318029888399596980273360939468319652122420062976847973783327587703134369359070017823141463105343088929449742305830159250725482167758557109305329041688948314686960580376912229145340874804478659964895794865781691306150558506685565833425122057290850448138261962485746407930706089569070319583334400999211553815211726942959724799843527481644295876652941985341853964319443378029998128356612639937443772162383103147459795097880284372540694547299886972878044661307855107552730585482945871810306805889705695733546990219391186988545313007887883982556066949967508160986942263398692873058323966996146326947823179571190337146471224386707233619345387398368342281410437006286429766179677324171099609552585546633394887759161169567418109697447319317811079382714745842088058572413675215329196134609978225777440370052109850119912541989156087850033869675980922929061376330837395373267658444701656004316342322752855439590068791573098455990930813931624244159753702124743749049307878709552492536663231003066355478448391866817215803499417972378974739862175822343947991096480017056907753892375651326800170164632255121124394838673966032335793432638624653358663752735054088577997487124968406137679000721391662651496730615023805684880025837990874553448747201426523947394868226302581405671502911802582536929395354842572960188537421277948535892536337266116924260526070460847764612916111542156671073006061858988589739760676067755627505292657895245069390866037430733859950399109519572910397078002462698081744676044735253174781094081637668695975027132032565686789837817009383765726723785641575004373609433576436372580108434630867454790827753651691195432270494387333978024091678830634396290921525913582881938686776354933951930820184616857085373834816275033410931133101764435542935749281975907295470329285799487930137115175681424966014744410260308766824510800664229343969816429483726628144553992128154288884825505708128092776178696731193123627334782496532391916703172242775122936730007478022674162878516829154265022311401513543693628396705368145505879185115044575229821107709078761179365754001727521692157476566331121568997956210414471501803561449173217095706432484023411838987220330824835401270478909107480096231399485458528356040664759930552127771267620889454044772328500912667166215845575377667084298986068841987987509048755530904393410997263379930534264344122068203417424388309134156332214970899128791787553513526803072623851649988273705764722097815425959546497558518011115303213771257303767023052527860684609917552927821674535565235906254356299834000271245670808791406683611008660327866153984611132239695789452874475085457207599895633637831054948636515763802443608570901269974588294837886703356655425721179513523108454266184370172652038547589519741723191446989051047540535935516800000727076686181618225558243900993166442460155809081621480835588612875175322586634861701953951020900035199222934820497726815469989233718902838507068333229193247285283717628704159787389468627736752424401383393952472902910243297040447414535372395418313367957629718828118349070343837361754088393325010730827128643294975613822342750776446568511082825214513729923733883173245349735963840200319305670402368499103165576310112518106437044421488634959974904875065315169467835734085022550232512408357792669400994659816154378269501531606933625114908879439219034389134868679470002307198404192091993017841000790163534019455871952702224755749624305593318276882030555597262921843764154647747432656856519279740728580181526093010113242334734825036393341682411644858411015786186798012324265664942715814006006655085168371968655452533501213517959304801699056129639723492281900559994144925076401344608359181989122513423137564605182675276955881877910916865708608205904464385152236439463785745601245519995828978113862834319761794522605740335161359860755990137895349201105974781213979896069313787324541231357502242851312043413677788544241137326706851867877539917282338415490263405332563573735603470442323613938666211608629693367340079398965224793496754638877076047581711885591300257284449922848390407896942285415413816826210691376933032493325280530931389179943904049002996401652867205026318253899808605082556026634759580231686856550978788354068447422638931435904248038121884709319830227819494192154077120688630256369387631227984270839764729955018381236332985189767556991383191369419467748667178024162371219169004097411027505830204575072173346199026001350652419504515768506559117353995234557360508338714712827128008992246336440772150078576025408686485654777221275910589899935495433814112520591867603696003973679832007853687282549942887312103467441554418109089454859547294690165383722822660794657540930676478838410346936229563430117225409001286724911420293445452412484897832349973346947826840041327595281699671856362484498925923772193016937724351186365592122276860128136905305376726667974908631835288807352411032360031856908793723264210143194859803710742918181258214064600698497911969425482102551621593247723147344897579947989619209155702230890365911929925209890502602013272452113753822880048928593017838461192097093647553560613212342867741244358333345796579419592690775548589115055567240727176708296470193595375370665608143436514448684093209224896924400675169390676978498304125495731677163341303296248030313287018323579180666664603105620652476942970615263866951288166053847098941120979759680029260999938416841463137985209986013336947207959353947136332808783120917797810762210792602960934596832766351473736500174363110800509345703943144678918591074225810389302627263854414932622007362506522964604194332186057352592547577209615184858922946878444056627164187167527213506005755952917846115799740997895166372257362431895540707257125001304340825861171128280833201071777399980009878701666885174356428538829685656067561888659865947173887299941310384272171504257989009711021875366007218255151190487886391593009133055067217698599915831818903820286488882933470222129486268353054197659497234053436246177645508605044114527931529015881805663303666880054808604761413560872100831180584359360284499637254731101173620340982578666272249284016902079506063214062990490875608498568519389451733381273904964670030604559054294729897001341194737818530839537272587261803254132232438471020733614315641371874876654040707787675635015672968288698499211716890575728826923915597594995523272619200526456295276132193974556963181181595129760408754742315956903137990232694242267327685116544444470865013164580670090358363017431697538571784063215336670046596783357272870475164464157592544738140402433090318579197590279622223489518294311072356023128607227787201776352993558028373258642221761653737617199360275003810201037538488240963758852492469495678754625555363381512458656471636995738669644578694328986758128216828073807385320676529413986692976813092046157868471327903000968371443529463544962365946114650580980357255766842225665719960355704419403786256933802983321069985542350771772625689474342394616258056532737003223979525006899528792657837117570753143818730293965551473463108158810265134265546653305699041661069005694654939781788434626744296824662940827995642221274392505819423428637292415849211060271401162531505866697772063248604208764433332012743339506805675801523912486430993432220388698356170409225352880037576292162274834921673859274105976364626460885671766371172173504945843482232457716262054945327003623716741249241837498413363830311026676838814608670252180636432454096259654081214023762948628138705295381047054731137166702091176111584416281244633060388341244230321388752219246149518872024481645369336905275929732262764418267409335193686193562535519508904401897914341008506928833469442127311174058675038585105307218575569047576603095463592137895928600512303869983655583885494739086497485504414716409649662122696551181547231996643262333956017840238303935835790268329267166713147739595447767251517197640749886473697391971927156806190861973926171003791988345378503295912780416875445666633469979416915371064285677251142378824316613462948706829559908771163628259153129678806918280510957883990866819626767517418779455859600345902382694684392625500300791976150693231070683439695261212956390220378327989557804449032117846741040692817167491141882596831522858392999813222355403877115350358217179674563696468008458337763294839936207404370814297947205067484728533577915376957013194675028598225714178648028345805703089060298905393952798626584793428060044080995403298611027514193372919277118019206810136317349413127880714797177389289057875270914089209456115075312646890444807803611435926767481435677789648574270575214979526389128753018820465198981366424183596257478242696405876322160377725832418116738838783965788598473760513373179309718314226749406813579299983544781887743892176193250096148853151176980097509187427891790062855791732054181887523041609130933132463996186558970216316596763293687603771307604627574410977929317221716511508535023525836825548391634619379175174606170756976617724651354456832392288526719102394299820622338745548545769140218485946948450900251809398313900020384763046535243445019074058005433127069430068353597753464459697645131233444052202103425008971300006577936197738748539875164391076208833261721257016636472216731133931239672121898533171417860054471568865135023379219870971928069886279223001059807844126156522581568815586146166089568254490263521182713679135174524184146842748008508931936314222865861992391454140234123908949797475577595254604849971534376341349076385560315725851725233123374747315389524596058770460938360433779400078874309080166165019372601758181248603690198918773703684483735379877440582607548572265071532299488658666360505793932857587700229252819447234998611384864816585130068822714564272644274650331579497086683615655289470144039128667627075269486458353164845008576334368369808749494907760800712913951759240603770027489606834717452944478182541602405169083746426663914685611905579068772906081112837740626557512000793075518731640292735615061119365289883544906438208619957810385579877244182274194314183998047596713655262115452439478204048836296015507961544885257064128668309536726292972564983833688148541748037476159774664656988570527861297312787641244341018035257260194939034965728434038345116913083529691146445831287449360138989496826803080772948246462688322895390608127911483380070479512248352854567236444801760250057367428933421358272968428355716931915239561008043807219013121651555326360081436741478103775755506567532029916640019106067740766047351812331059261811480460662242529193004546859648159273716379075950298209267634233350991124541254730176544337777576753945529156353407831412632727074779734378698025071180939376618412467648561559132240883857318123282579721793889670446963390544663586369629323003220361443260756855422590650832488846620751646965987491645855377040161924458325803833129651338583365450034624207749980867331240826446295988041158721422207198561169058430559644991117094695069333791814202383161403257011443160318030787329904979294762352967413029133864333652337077996737522517849993418808312234105213577977465593203613776758569457041303788341157595350374450481369873575236288891365296642206738513277940850000608126341608417208620442229832353849383750116977096181394999796201395382166712776034255668692733274591140734158305693493057132877122910655819103699948691394600788869405229369969520061035767267352683681232732644931039289866488414141598256074727042819838918765346790478252139657913264748783826051494167504269462152322482016199968945655693810485798904721854102201813336030137495476415139044300698015218001819588291761812144222782907725591473818728923441617975943062678086004102187187069038822906708562973033643613622913069376387652450203042308252571391070076947315821695602431225037953205567820361803576777902759084828509314636092055832378326667132479060998061619067481541474565341597849887132976389928873723030941226835322089375032064985344769801693186103784414971339548581152629695481380870290370090044872589927071403805203692294613912313122705184688538196792804204185511977913754593162838073118371614313014206775908620773778603427984617898119151039174882929569698370018495662349065375935608533635741119682359897822738308958305517994140592479749692819389084260086053440532861343438564713208576611780255238575429406625039553821976332651075461322909872108401938128603504262439317578695083985077048267678801647955219437548643145197486039603664035502941794657584458627835015529175989509441663230958288597054448136214418005651846700231551088668158488491033896684529153038360747673369378661885532519450308446825529478159652742827365384660916363620479326228000426996554759466591995383546688907961420773761504414353360890827936994079083717571577093305086970121150787831696585851289280211245227686013359145138772635926757970530368009913402989647487526177107487432383109983397822368258935408748534392451227249890442563714415873076789507664779290307361729491936906162753575180864695855573567685658434683193598637303074852447728336440037575893526687258207785925544478962180894201121346100137741536099290953744297391291189735249803320371060214309089453375890350179851388094623586284879273939710246004034847420222595494557009054148424796811195723504337761608952999967186013085940343729813488600598718165625611587873870131920088753662001720598055570489661002059970012038230238829286778901367917944154999019563358428238436077118933899276649931105137483118544688289821187088827605044812743838913202349018160891856769196383349871117224024322525444279902065108269672589277929265681748544045294956409527753264304206273777107373788201392393081309265487375437267514699870856203642844712915193889677899095104983822731265570569069087872405968619404372159942093136361542903676597595731908751872736307013969595630213379727793000729334215856743515389020785426873679114409556634106735019617307266885403176245305095951593852712764430248525543978763256267221508658416634768848627850563250917614979972028202940927771535911940641102906210899552741667347448552127250682378151756444129275743511957793554567412454607618109662114069637487208965680911035825822227294750418828022501765716090943352697199494072428101151859210008399980560566624363559381794277426194473249285277300830907042970890841047957826755327244981694803053728453087805131119569057912659971239668904958489442878279281158611472332318742086787399181945602871110541604541891431129559668981153187484748940706119812414144237575307380015668026688938918607351896037711290108849112026263525440994514833163905607337360197009168575186654901629266719590510514067010853784955208459011551020860849623491334972313933895557329297344118585977431077585591486606888153635645059548557426407344934905815606181638986092194979340006087287286699781761223856965212850621674872497577446236053358461092491660787989359909077120181963252886998461821577523119564257693086205400940943929310466636070867466727530904875903775669718137878675697573848785296617635768021636243843946640819845892230185669199363050970920797378396115934635211537175313894673916044067797082576348189502321775450547369770740129399661502809256521960143606292277322004845186815385412289981809524360404086235497884342498116103269399150915845989019120056814739859286350221634098526286026405819245172287927351119728157968008620252701952604102838635806335752558224642158266753392973275471078215346729347459941182997467553726055799622124268511150623112227511601941963403193073825539113232906107833965904394142129596279540329664355611552413784503489979383047236466109378282438314654662516380275070450195391588594708610312421714520575085086247539380124989721818168392866217142953711273128950102486074592985225543632651298329110947867330071783538878069432751611916568967793069910306675618143636777315798346385845154061789762939934053325080326171931985796842827395435482741998233025315543014856034395726837391596705424159727516456379286471316001964659239222869099622346104051023620907122026035515568796104376791540593574523395836919155622358456063972647734501332184817339401811835508743153188846380873507999538949972861850972183816863021434090243896002174681734123639722639446946987033669470803661980105041391785850321426927101396989654472690725014087342692100134384768057145915551065466492364124815512063715856201578939842174717468661284921494257592765139558241506798180805378167610852085145609314873869756155018823782444426445551269401121625270256395065227562290136596710585224954022938853878855146790797842907302072800698832402235378219302696755809253294737908276252971711758983584096143736883244677414613402095696823666289498208680975613329460918498667014475803569913676421664985104906632548234694267434120994751896412543490069743933542413608995889061619523216920212616730661731944009593040172694076730236751729605002494863017510881628399838432626039886905942258735497162842076651362778373027052083474998025603034965253363091575255512342460194729438875927523777671684096382172098247055718900594191984033261737766700132362963024305575469968247676316578798411764552734652941399359228369217321849428304345925816369218230342047417291220351009070672251730782670790373322561565854425236985045774541607479891027094833355125362250574572276251429494574868721155357109593730548882774850356966085568882583745441125134033400840775482443387389147940737987104137911642162461140241955137728333778293957193574806085321709616092908811468828972791376786155013606097929039033403948685800248729327852969221752238380424503375466677267807089583297073393674873534575136570770444067173415486242184743719368135179819029399785849703823100520730229814190029933377739412341489243003148061257828339929144801636406980950352874553399292082745371542746751703588526487072014483648580851744685683876033635295165949077763858981116756009634992509110711679353727549912945660140866349914914094550045092950769827135803850228789557690657424035294273983423008729920115412574413067457735803471670279826381375872692912635043587922813539410796285181907230232623797716076833739640838361789568805318967950723036615161292757440024338722808847681798448170409734991901196768581745811454794174829494324616835484132828218374902132692539489706336402824180164861574677981696944744432397524800535099240338042842033822774609152235989249535981545252846013165006036846784372535784560868135114644766572872085905205069110801884098599403524496702681134572475295205336368426832241702029352478025443925843410938757874740388806868907682947737465787295911617586956583717478552303307810618260882786162516116166852765224988019065872098100970566290729595704118807882569364767277633512173653940951592175007559621428635124657476481313151575384038964330663542200649040235407652051313318340525944166602893224928919530151957575615053626994545803212539771408857325465111863408435401175631533441588917864844581913785171814493422687582390996464966878132971649686922376378746119391912305746115545164986959737734775214384106410754209012349513028279162083169937992481732415117217221595218229138026274361390533813467100116581389384153735664818821378855929720754038687489444767970615645253330344336658228521611521670947464344919642769520252377163372708718325117228138282450949037191663065477790235685825526743831659590437616927895811334278423898588254461705497557975322263238020906038928731997418065023556605765921156859483926737638877843160110969546889619868257731150095260332756593437772216712803080493016143598229922405553741306373459970608699481906093426571358965503865653929533968625306326698594247828370947574330793987477424100506860973116919177551114718213390570271881104473517045353644469982658650084186979497015011451158201097053983693827229163002184630748930641362702444483182558992832713890871521813400524813982533862232939839810878343864094247728821417750882259929883878520232623318534769933819923636816958356023899686693659718353712791209061976704034211146959145684283239555756133667380291447186836805352883840724238061651568346913537776085425554872769746348949886539905510339813893262631048665113397440497663426000588217889137028829483193588415947743678949784443583847415339613576353939162108544421810058191104498240864029045276868494792310360325823783499713049581095820457041650821719953626954265901435054775241198229552290036513677126463201567244294401577258463860921812534098784585411654242148873266090282284174266290853843023060648979735490714457673943670513902060438491513050448553466936414275657296149853918414199011998541664683361730200735125764618911736362964485422030761408441645503658850061022812574506778075246752762932720604025773969342885251934341952202341132806454984924044312822743844750988209283103417877485894806333633630116250730393088390771033048693376841328069377428179440852459444833116534904666829755821768564193424614129134569643696635992131187488522644557484716084574824404092195184403419083257791811585344054306544526860320458176896045188727642976864704770352255790882303837510582318178765278771128032071362004375763249913816438964602438920782439092030979300585960322408498350937185038500348423652188502451103986356502895702619235169283067685294339662260971811618674163487798941936510396714294160009074567499669629381503239764530302063798449506750365036686563381422788133657942359614150014372566992891629984566857026712696395937698424398827702665143134189441450761257683741907016410112672966461395094297411404425974233367154817078851208416758786879980139414441629530340568359591306754414015658338106963961015787931696373949676034177140384366973913025220046058423365641005294051381286268923990567551322724763847093215296415887940149213627060127834262574692537485292694942212272647542337563412519100936327679117499179582737448391142894789704992496777036115851797518645005122943015223722264750234115160399803502479032828027046842322005461092313477645626195991549727149339599118616432369936070740203134600143497362979692721698795215609227049803704896260000122927145814082380357781125134949062621610812781720354117677920876450967532952480013660872654031164512258714859529613888899747848686057682085508576682581248771842049260188588427802527209280698295420071080414163445959995814292599117312407639143818126044553143749786325338242235651705811411897874798945909019442388341073386279907989458379254921574893947178675502098560262044231322547818790535427960587744441775225614021228308669080971932760465415107709088080077120943984748930536175632409678448981445381933706404664184751112417063493045843152673807521955104266127005919322718512926584026517824088865644456559676286629382292749786221814429370585240667287279832138897435297156192766318590870372107491169747680942481103243549650191624784825283154985467903242095308319706896139551665412908592716950341342031597865267444637075779132571630474538907118252338935336678006481222187089358616980308689119785454942711063764680419455851928328237036433937702069084859807951620612852966169998544707226575122929798193660595636397473612407963847975182180302814000112821340042260902456302433043278267845121777316931849341214407258064879169583809716889445208112587868859293436486130781138178155624143753885109379738838063452203775668053100052010203948479097186822160849141450484675178318264833418476220942774165504074021091012010472793220903069920593484198750506445056426616971960569371353469375597498523075065074222037494432694472196098730573129789814803912034763622532106703601185676415491090030082926117662815825924593155817130346157927397071692888952231574420458460983833428361357261590184708459698306608592774535258049582232122761472807891900575531569324179226070068082814810775688319895377022899982482486284537123166647565039103961887971148621419680414488838010817587793602159829367889986519864853910183828128325181043209398784652525693329693532622354572460927773181489293221547464650818811994439257314086638400534146063087970331399099321938111071468520237269594416549640231829459886816989016456350623537272093059744935401879897797931909582186076508920875308407614568229198594707139577586467720936764695197880708528338628421724860325256435305952148982882065354691717814459883344506233528894804543554801074755863258853393938199247855903158576302154064533605861469778632114629927338011502748493398796968899960352475821713263511545975489850056028996230031990608510060540704728533120355412544183437590741557584767860063660526544270719987028705986528486182688844633065504287297071552112663135535542505865527973248532489992621866958424051880822219527363235428575854773981238235458255282105617906362378354262872697412571373512547990590929967819118114012184181260397224921759596582862373985413056105885929240346018341276795068539101794651607155428280616788646279652848177986884520036841394335681875455639935665448588446760276092963667807587195978670942893821878969077883889351194781602821440775555463983741190055635104078851401608061683803978636862685348974461700241855527007057829859748935561522393102741641820067653001675123138930862624239040782156665543449402190783689694121190215348246171030143816452954278542202275589358524648354136847620728759930365413444007950047538742643235418614547830500410510068547665104284065743693031666987395307662406468825099680635709557473430857271621739899503187371980041933367520439816258158446198322037840547091572673246978639712000774340106927952838182014252003721551766208241523270426226747378715892194660706029667836980459258292886709807417256393331475606462747148414353093001370439169009254521664106393687152516144677833767288763987303252515700909009035635227967539183934323188255423206448615362041512518807035130242729308715565239171771956886344542836426406842601841285142637766755658710638790889136179247617677923265360989694868136826267455186525462276927064574182127063726431254614213052090791243569860931256046702591471687982999755618554362952679567203187886771563026920579698428067071198017354762997368946846675324585830979430679219888651398105709088396818527085509079513491265366894888774312344401649481017616417540517757170720320779894745047218188917484361930242218990804420455848572438439590954775846119426224121203646535079379441169413352037926059668960484068423851314522910077461879329288038119480756013393105888150733366116022690398578775374573388390773605505828863469287751335355660382187940730182382417157826457228311866352974086829307629714823338778816445777254085153765777705338336325072967152228066644650861746260879405580547616782538205917751024211411012863490283021412403710562505548851611529228478633061735755885440871424421696511820752886172675844614194989154479262526740269940733091892604142611277695149511024477841879166930529222678822729599374750885747156915762604727371894867861943685784114146674641140043768945176648974767478249278091834818900687265247405092260128488722104193468083178536010284959922382912351580586931728207548566075271172923940862308018199857722346715048740356996732277817068593247515891529316978251628833692380949813587555091683111125159463437935039750310264833099249974246744516526943365616861472640836830147351993746007364394235151818360369340057935371310638728084209114442957672542599826415535849373522024129024451441042318529861546446467946066672045877244867108481663488644568342027507364859298262663251723196065838590821002317644430415148451261860310130489025513669301923400768036457451584155283512711407601633824401884565233949649204837252872706995564596161775103269043362065064797502254928654034340979728605574895645676381910189239632335248169984630408953326432889931850564135926526928452830603220054492759108876777238399125074470775103126713815383737734012483147653985036306887706239928997699393976484409239795477642799478906497305953629332243690584405324477542801025762547393259967734876085130285078488127772935769626575424427197613684235784835565118776621356128685025076219717384464827833648520460595139014300448294442296477090228041200892064392411584689973771157806848120391033225977125095769325809202029551379864448041898053061875179389593496898018270083166012929558551978032164102066990847702066461830554452340991339932806817176710132863007941872446273625397862455717917711881624688121314627803514837374313098672475867732264001535248446774723112374823044433632840480150047294579767909971113229634155685996280272143475209875067244062341263542220163626398317655107656855450808874820482712034223453786316643551544481216237662162666256030016019242539708510332709691738970602338625836240692136096455426187686281933489171368049974062530130903291635127679150823027349471489316039482035585406317716841511749844649377648783055571663525250651854977363954177342031795562961599693844568861140014421163516966475013168954464712417915298739577985315492285830572580325268546662323037469118950666516302432188984207473074951653413444721489285445516239789390624173874624285489707431251454418805218848412470554154677137875402743968261571673537352030514828899332420142683150513493249463557781244897954745754284454209593892542116197541853003912103791754309760614159296545091911358081025467522771540083975615601301017511347644211736749723868372935862921586229552922603077054592314561189810990609194242954785472785419375485346387967541053563668269825749743350659835145364214411592977737050065037478486453976995130709140726919932575837440168652195709362023201623519478724379896148179767720742569439729964747299528905160132023657857205209306197686736381334741869851445917665523385832550202336393683871487277750041628219797270783310489871157562306137572517432619082972645295340552165440136161875056180819403877480281389018198911950564859893550466220041162591096879079728232017822795991708052090545019951273753988351406695089382570662871120514003813084804060535544325945446303525465509482726884876151029325002628399583818155209798266635203582217674396199761314617711930020051711597856789857199549473367861778651913479796416564341709471626291814297174440156309035988539092713250558340280896268060972968135886137747891407195910233728379150717352975000294481255297689352600975118834470290523048562235686100489107305027879340616936081219589289377502793989130779519021221977835403154736183314894818324611554497109250434030208808163332851828170372884304332573568393974441913456633912705968655379580968695276907319622085278463972872474494877173988459759263728261354554517250638692504341835335221608736326352594752030569659174293008951223529474317165436266555297823239861403128775853473744789659276206498480728299753376755131491710939691604134986263396918717961187039429942667050356687942350240613313752132230143090266797331694573188811865342382963244825491793902387388956587592770823388724775515262779625865097261049313246435011088158459200866653869573388747187705105310233467127015837758793583386100648181395578264887283673811799650315836062692365773606733047839673629316207055920090694047282737325391986475604386330470164338049850428257291930128148342700271083008949714522336334393384556232209859296631822746761089959329709987448311535625650471106531672211806291639419168852689766998472554111331887003244954939894206051899016237954686270998114946288989537823021105161689837741173275745482480655833739259789853489664610938587779596377150551464495854149010593345170844522205700981856687292983588950376128293236551678386599300143020865368847501135434989530250792316365286907531991493960964375297366983942045969339383459464432043392418336233809736054155682477203129265513623039846144007660973425049970940566644938104293694401456216387636817088199741138393656839370158877010417364940010681969327387271765298852616915099389192994425824641329407709638612574515411869546294094042585293290390881432420352874482490292322911194169076701192329965377915204371405572084658632310883861771127518792657574414837456969783116359216921046913367020251554361725116226831919255908896600116863105084278663731359898725370757875022335521461387603055910226731865702085196302562127363122715076378225864161908295367556951951060009720771860338853612213199699214022961919469707815240203489729128162743499222230138691409639359109257575021699256140188162163882757939069321960945067336517945435601163754608566122979910368341340986793920504975852343441665529775367744357730126667084995062219882655745230591436868621066733822239647389662541932181094214070592241288396267002259147403318277506321722945770114465778733411067923556333294559044777641922410224453882519889604829290049825119804425095922018826595023731282869424430472148526673849842856637116302361235589718097873323719574416353201129274391594509002639480097524785269544106999280540681309907830876507208411283905798570849216259143128339734204125370938643310708773978676795088424678486938906547453380563857461087552314641542613428400274568842862337654407784355542181060791030927322182221346367037126812096914443842530901463178277750945174597008616366742251732423468005662123098349831177924194648466270172659522730778495624798589470358222952876494080123103109293223776143685962754487804839669367715442357116225675272469950497119827106909537667445870535371084174403912391200936341020731041692328719769683301581938572976331049771456878562695991223141739703117183975400999847466937104080764312929793545836071904925470832520785460039645151933268054580951830900491203067955920099026001522998475481771987840355633434039820175018371451954183426531065139451016301996346160309843403484206734123497732063763400795054608813693255487309680420737224808480015842650607740628420962080253735685013201452314732385917936235955393139039765153702379975977491820621014471837663448323819160160756905102933171655902583358488281446110485065648260578046401697144669399070973021734273332043117017180710591565636432024874074307802155309840172379769473696983635818386269996949811190687761140763163673154854727948463631927417688258648404179300520167419361009123230405647144735735214188944219144932513337836463892656160036781041235364874409256102084385263717203739115307493526279173783283025937185642095537007922465265229513598793732028112414942906324677241749829303550138883954258038084677439149512591534711076224719544845992661070485088704573678806496446325917390279873435826127962967083788256603425664138387792546209861964888606711170195143020164279069350701402348477245886133910002007393231318905825146665207951523867311517522519732657934498050137146366114859426173238387539693773766812159265708146257028250583232306345006052362612954861310115394458759712783652863683971226214166830686419060787864515208574188769972671840977142566038697401256649609481794935174561728548955492640443339840838547211233167759608801280758851722726454276219479739229510217223188225487685122171733003791742484516667531653593842295533273799621379456038910327866060651155259797786880459334169864797200019091792089997208231347928628779144220887788390360440044121948948511578300075010184017113573933596290851386916723629420138758449180232492179811417008050089107312407411593927114351169077119618502024756924993092565734012301539047362244244550726381541320778107213143764800467190764175319987300890979384913532858478425789448191815900076301372912935661350275021466717291175448938061344081946745978006978523863569103751905969640222932001927590962666332337258359171769420434425264164126967587929585875380056263850417154582755603059297014416142481999214842356521761356075685190023598404750071382484114827684896017326181388097474764097199604974857025394970703057747231686684980612152399771554464088988800554075052758592351387447834708939231198335165383365609599872409843020085233874221570194245648040354133188857107694969869770750066021146875701241803951021646823561846881176514460934005637883512783481968047072516766694143842933037115270334026268696965882321460786177406654436440445549309157572294692506054503126866664419478858598003692901979282494830729750309276748714919527548646467811055664636235663638261611637203436363608187298301662911224797662988965525745778513057938763356615793662606921620103442214926765286547466748228765660615981360481813607642750760778066781196547715815642172375885341389870988536428854337595271862571531852521056884305545256782027044062778931485850462707237294751024225843716092722079648418063778193836678759196910052244015283009476756570735716616332718458664735684671050434978370032715803231451787589037962060140566623974742285059127090077228670486617303302249029444262463681231624283949453171877685745769158072171679862125335929677136316725421802202443472831126113316574942473956976608486965597318092798156973731822378903828658582942983451959926868604259460826861004782883692279865265121103988184424132690515836452969566677396408586103573242423645950770460002806800013999001357270682613179909784459489431138227182007428462945860326751712518309458927566378797233435762410913740425826423558047408551625025007876698128658258473186922902428905819381011988883992065710077397040216280630126598412295689671608980799782831441491281819471741065492930888122168610041724918020219081206166732591952043059299210938685988765880970374477921986350861521823313155429831504300702532443892100346091337639297153563266379401627781043484328986485754167849322812131747171902008707569156729208307061644414629652459229373711603957312387805497843495410329980871244017270969803986569360610325721384808506961032552331440463009731042900059900313274374889899310110557619890906584562741798737615441447368215746656750113765062998550747627894417196927577085397202376398173389711693428858784091543814895425213319960181746530148454124510591600757445004030712037852859853899696095162911740977308009912783222240278240336214257470897467175053960028407729902040439654376199150500328709884829625292490508284743630528871051110768187029013823528643995779844058237958332476043636973882140921069626003997689341434886093222103667436503455627465743066265715929929926881146975707538032825506781100597984955913755398608808852495409853898909006406152711227105360272105544782322875935249767176125617652883475042162317205798153785323026991707850943921985669326264965760236657237527237388828009252636785184978687969495077819509221604015198855028996007148737367101343068056263730280269641917464065485880389942283362426625852447598293158395048950806030203272977127716823430165436393486173868036374115911418939588307673537304334966690397771804697507336633427390566823009087172093596821275847851414782947116654031789453429672560806553349065787111974848329753581832002424139955866168756507665999548057022161396806464942083196836373238875056752299783082660831034240918703623094365388034821776502220857862737306858712349667877418550403777582139515231547437849942909589513336796873470765560842725363862637657405068011257512840305281494016593938531056339172832090282407811835975823696376892014039286841587776086449867662620701424875809013202764455247201031042287290948232957688172884469475563252453309012266285132274782388557564137036404001375785686305613500695759078516491374160721654356598172664509445826936945499915303215509395152667949978769780954728652067923025774381644041342145435824825609683022310459518638409711279002656041432367547150370437468703089177839560359107201431984873520546640646544895041834670146076466722613607074182396293940454243394189072515474730834755628787691439462088729315135408154956992808165509633438340467718055599142145116653230611089227420184778842511414626876806578220242648072670157521560378604202280322901533923447086202186561604119613550138218636988545434901859491385887092511491069072744580740277115511541648479033473325496964589566966684220232164247867265089202198091608192362465864483932790166687925286111005548465906703825283552439773895411718573503273950794009803713002474361912017823995089022350697515837624657459624643284268026120742542104108853780651260247520099964656697730183752779829645488807099989239719605953927846159849993368223616457664994138211636412789199811305782021439839400014524425084081972081522869786867388564397325343038360370347918351992259573087496507315072865443859680320056712306949518957171413351796772541236078119436029072087370515845567615687055033829867612103354435918084226983133883179906723388692975892495318816179432820788276510067882328609292355538125399372002936407920348976493667488184415064805608784646257536956988296461096539821170455091469764594285561517227486168414486212702828074960444905487958483804650132465527003502459582243031201556592371640218356283663077774992397049562809555222500008729023203410365561919023284518255372698183833663083925744085621110325659469171041008470803686024271549275828870950546167738538055812879718214673473847113323333613769307481417825499302286060283188191127360798934569356558158325615629892241965970581756582621487807889990727205195631939202591268483927372654489601497959730593376103944701973122920595584790435694205837299871424694975909299827816305611689037831204540088484336546299131985181732934845132624936309967942158616115080334556824236042180129593193925263854424019476371319772235344712716771133153130453249823439252584005198312426181564612072010816298593737257755221138261214666784495553241098140618012655006025853811618931441953704513900950750098988494367139111406093951512208633092044135702732060378924781367220915068364155994923033209313756397521831286884667396920222049326951125024447369293314502243621061577898663504358114560319470136272109649366892292175194142236387423399842882395162954481913044674233429962314402388586570257651690639332012124119712065774464399794494243814121999424608625569188159350639233234711105924247542645495601358082852062957636006027307257586302201787365978306393049343938648291685306420752025898034078673499031903642003314997833832691601972347933964974882473241958248259812141885013592795805738133184445365063770662121934438788680033769217360413350088339265410746035978910594368970966651276996884075395724697151074664402270034350297389515461419685763389386909828013602098326734352002906139214714424452397348101125443944829147069233477702744045477428557302061324254431225383419963032968493633504667370992834111760537697156615240858043792960246033580175984303643577977783099783992614076666865883280703976500638049113130645251709756104232576576563885356584232642799967463956971491778730089247607878591305200646501825937278644470547300331022092074348696858962361995315172196359382168887024930882750135976046152193659723717976081540517459851364122000451070415449663841062853528767567849241319665903409838325053765968928794957572002379362801044490754140531393099348421065803374632054188021503784959608130302159487443006405474698851514402185741692308112316107176685863969155486728723158740473849137527364117272692400377905164719372893977818069998454300147333794667966045309720791472964748748257884633711700310443127775190601222938555106060032270763731398765128454862567760896548052127456636235844112768816728371092727734677945861169402071562615994345076454724301466077660414531099747659742648472704762687489418885059935529529136119854731138483036206867810993821160140076483587115057319572880842093674684127146360633425350378484513825696753536442278816906757534808305097230491278648069314783157866451145139979260146513335264874906953926895387349324538467439664868629875110656779774823322190745909207301660823663287654392941415107055398606286966948471740317692564001625417857632463843590241214385867714228544458651549554154524418309203076645716776783173955324307972090022186889548217436936616929069385341331035223566970529442700439016315508195601456201824471210582208144849214443369153432466004205487529950164948790589068033710352822706449848524714770145148327796695867712702517311721077567664440473692957620847777969417906266974246459840737438663608156935471088142003208875505302879762932239784826738151774278515913653179587269246133828448528369617525074751086463107898190661413524599684730674599926151268743375070571797490701417780201539434767884459563509101232679669172957647829361432112755900915778279454573155601517985439351200249350439528225404061411459733940792443351387980230646298445421938191043177400204886968688448773504473209544804998304569014586700383715975052291254429383346726409718080243939089906422182178713201696412955092208209440048043054161108244067575516530015457681546021337346395658798981575991051527750273470414246857533495279087299939521989969904076164323016099458667829465630359755303036749456899559095316279101907800841589566797938579819161033706245711433499249573923994429678804243475945288006680778724094902935485011584234421400409092967939171325356205155649814435085671923932923312949747331230398278167074559045204982130677294362105023514958826599434353622430239529125411708557437111463296634700066394183951044037248776146902614212805486892176939119159484870001986148210982634280032785749004614872832657010498951998279031093367076681602933052229822264068014085292490931016033090078518254172121522148574402910987987183305319894247289532957523316326936228694121183510792321200812186403525623341457996584114486437084124223241341138120363523894685990289884380056968676883131939713388434495954487644137545654675350200754173648439598667305883323776168071168796874529835266454266082152411681924272755891927641292659216141589575055761755151876974478984422445473006564831045572010659715767994894451543652376659634098312640434037608258706826439026494268783365277364841855270477230794809801414132493255450493171664424221598464904426598202844066828168572485050119432103892419790843222598782183435682410890062219520433943415490305564765512141450136085054395989526690239787257871216395984548478468457807511337914726685024432729508171835156504982722284035308679568502657227880359034728481984823515690501080407754480398423495078552331497795958403709985555501342078782764476172463335835915759917374245222018734886045390560055475098876334307413035590051815676068756766770804147620807688308696535353781639859145594045563661812866866723552507431292060525830522384004810104652887756692638506084210057796420911765574352828372824388388286155501573974103778414487620755666533517461426764843975262881839122215526458191499415639317136533853339553657149995300575719124677512186804455717350744412853053989325341059283138491191917321031516748251976210066503858283606552347231128885162530572620389064937310592491805294063017874824083503513657265775673871572673871675717614782891667687078818525258932601100973307504252087984253418326590750054028976381234780286462624485682059770426261901827167219525523798222257775136480965824869151899493320279449790823619668319226973222534944612630523306215194040820695269687871465880083371980162928205492624904020593878768035659697550123321059229888400040976981776608409302563743619630928465602419813507481024968123657237302214739214186207090495463313113352863867364862100072646590500844924850289796127810574136432113624762191942768667819242101883027298218369874513451789664188801798966646134587210819726037534554428968887662284704211105746080775527335515894382929091829202552952241856358251427283174865957938443586520408715651099353493501812734019182757569453412710153028842778118669003334898002352611067771237692382098029946513257153915911800856747933684520988327492034285812871185594525951969736891581032659469479522398279071753037720696596699859097234126375552392906995136950838191929545649937886536255515166939749738540105649697657273282109230125406643376676304864034077148555375192892077262866156294930845867507946003890002007174717419279388480471646601978729738245209208422526317075831361238361587979825976690795821621861492074933904956036180336860221186962862342960608952866627708102410033422582871622250816784467443674296946633204262758864221942586469851950837866703103910770313072529894880569477931606469640795878299711285710931234900830513221403629441462785278182120383918211817300671791488353451411985554708049503601787278067985695163385368183708557692671343997132054317311966757153010057018627299501250004063456585113596031111776771069821762087931057679801757793497673399058819860468614211463981898964216252095448322428560309752016176916076085075717577189852962744646184582500727090897154833360975208647003714634339372532275516054603298453251622206897423002576906793253413525514701873888569551972427203345022082427631808761799137904052524997295070210705041971978046118185974716180158213899187097143862795654703419133202324627842493229924309408124912153256976624673524026128769249198420899102224387753973837136945332293756468405476291429829478386811430391660663295937968067385690223784151224751618738860278918692562767971188242118440282302578249014655196618145171439089833906162714536438019903986251811837613486251608663224146372587783655576236492546469635055757040058890605835953875852418913994247428607519883668457531405461818216335623197555598195066257407069642618001420467871315782556681735122330949088127802925570883077500667142748812329954369030600322258232035768054369564886349242449985734211561159367028520801868393766429717200666023274242478746236662179662818392094483351917126663297818067714568117483300158935427420191550354370293553043317174038015317991639824682271162882896818058897224066978358779286929736302200376868954216004882868416324175538773590235352508645065448918615676062965136534803991703247499266873105672958474340020946146941566931139969053027540273645001210160019553875279457675241303163758499667873434175851347818525642016210764928381514105951767075995776046340428649253992224557692578460369655061927642744319224311479825568366519923395241395993902811616250422316557830861722602214176105867043335118916921676306884513065225508756477304897660896138969202928323444934601015576862097927081656917102059637200641132150142535656755626745904074439538936508177229069781032976921926025357646131984997549034266731080936974406438705209848314477299458157751032866142140331123719902876946909388915644394939404771798469954785106052081337622942014922145859832933752237306230812369449534922762028472824186977597772063425887770739496379264060866384374203580203883742470809636500573862149696603699551649045753182223953740837886364117363967498425639595796147726422486756861787690520312387189587503352011755664258511890016354862235143919145650620059934652484617849011667804031440792244864202227410380110977969921604998716532202634325218305487383754334673718766904076151926907871291835585571370140587423069417139254003160376586212260788645285188810739847100787579991955297955782115079730344757035618572948313338378304983430149055310789802988544908814898120681690221501586898315824355619487582343003768238669901788033626769039221251478126304706054872494486256970474898845571506060197191494482250270753556463195151941231708215336792229590287665746272841448820276690005637627890366659076575218392328714399458813678750716574590787256154714500900854544116862826557064285162672647903267672694116309068259568251852386276319197480577686648505017340355509529661450331828971755519378273147455159256684679472972975796475853598056940764502833267568861693659181229945481913630811175067176862994907155118611556972411198987769017155852068669722477996176975376167267022347052928074278935881539639272065165704269809769285122699405137717606689540567237501856223133968716083016166827376445254551015586146903023852801202884740037063040154142264753006333495651645377738112244129746416500082540938112783990770884933027466239297332507930896451153096457544257420981364667557856968291343569267190379121417749711903444129384190095698210338858320053749762534562597276357879411949565043850650632739355311730754084228356245619965257509994808083101513041693616082415849120211255878096953618016297841434484698800271754729563442859266637108822590946741788293681347903784897552113078146931637439334435590134716112143262621729655962065202402235484869372673793379095304002090688783879638650309024018153746775516760924204539585544417730995089313964418373770433598888671841666520694938183605362519639860286763149613976777793655754303488251268275940587822917263334312322868410980765264944687413343745662977597525461095540849132954668010671686594641715950249539031748029769340572815020252800314765764300175938369310928091942489415703657205840995975690512869126020306535361469013918397191317348383954877890793844347788980346145388831558445668100976115729303593485177311710235863744973233540347591792330836894735976668561669769597598952082848388136562402007472620740241493679321163331692241482053684899893516596499001131178229829149871524550373784313447112404631169268876661809832670097350265076606220418150718294901933762792567258223168396115593137819511032415558361460191556280933420499139810094108806669145218850675811791797607527465520460336224995137841104001699501935608917826255834810012248913876049638567911674581719793683135279338731337172021380705102088449216583718947428488807433212536909665138126315354077653048109519077508179477770174881039588595951088995471416965554553448837077495815810947449658317980826989543231525663264332095076863442825248131630448336564476620164167523789693462018681011479927821365091607344883974532372924489895279300421482185222573349653612882765181069353900564818466403260867307815911656337464441132622204184772038998069462921804786370594528390830681061079985129120247772526122845180579111009195345505455096314910361989996045132920224344401187014415014146502164081113983719592968621491455451245426330639543738999378655726924741694366094966389273510796324313921074203589513596828779698396038602391028341715952681843608522790997199429005904324444611891997389303656356711113910453322332747483029096935750859290558447361536247792995993084463722774023455483687964031174601334018120157054322433456970482400612112287731728256499568384554557013950076130833724925527134376057238826945831544492097558504550372060077285568014122042841570658901052272601985822071997478508229115742433324487485278358237638301145210489298403254859622263562805974708838402472316896505745675597123538716728001381546057962568452166064556706851949360614511688576043491740165465044411383824088973108039705989295038527313081309423895385237780788869105710353268712101403026087773090618430533069903456044266111928003124336207399098447301271738971128342669805596303417410168662557580237006195122025342931558081877912018641040637692607427702939974101579722286973258101797837951704434900421892999053439145402972774259310714771243457583407383929544224866371747003609912381970674605034973330452489162992866562801884285855698197822695340460540536218965339724491518607379723059871572633388210023199561590973237241237735104099574712394942885559822232910549734641612198227576636981187761009491890169919981257700586555990205762535341734941791756831690859659076467433298176934297568613887026728811530039268466158882172091632636603562673057525949576952634057095456278658330050402111748297521730279358673629492936271205907713560517562283682107499265279037313571743523541683626417618968915362837263272991776714331023928345088645831667505884830811402363973390550114707864192375074530053370359405489463538972888611510818973902856574009115458077642998124544844824162967943097517195293749401414038710968506508314256629122300508567974506296807737494638170101298280183732448174716810981008334709807861176589828315964837985253438164453795074112969687575076622064857864367890059620104123015358033874475701837329170890270706187773711630637503913795686006074463523561755804985909991999146164641958832821525516100650088562254725624396355589114793312547067772244476940522035412853080721635519756035265578053310482134493848472339108733346541072742958628355226551726287390352181995723522768273592572007326502557075338767563037319898827646212133017987451318985056595765775969655839633512470783832476362000331233213249578591249076342616051835845146602335885498056314295790742168190247526598738132092923784018705525666691892959747602093860484178055867255898795584768098502815863442739934030623772508832494662350751102695596548166358999833429999927163902152454345685677366822046163207766933555120063292300641830743778542847932343242531923496486456454184372512586152229713019033246721960615063584508455414684542987144100953094536631394789260647909472587106941525534425043149263994771365607786800755085691012314617801053491340369380901849338267085436849232156716763990919320034208117070419634321008319807507084161869360126138594478081774796798463924402938535368104349096134652463117373305677869807149956644106963867154839015958282203503324160653754281560781701688530793953464935958197361095228307166409256670970457206283274019472821662200360022335330350625092755650041848909717809166199651368034666275616686119098470480460304402753951563162194512264604563934343249981287045779529455862752312894805988689881918390682508487147072560011020491005946632909078796107394807243422690350968129707778431000769569273710121628120954926458382376252603455059137614453376115354327945101117410812348964916158122574059844577110765342185898236837126569369404500104293971470808491401657332235119821985489730189506909187931088185070244629054056527300379955887699875316899983039789341242815091056010687841455625147938102661253828168627422716516684705832152814155449860901882543028121071455218794614832996391487166125356970577003621469993879922704690481219987568022399094485784652166754775417674994525553614487160923429548386333360513651988189799253937792518807370376537768848971337400921440128122072819033768115972016905265589607794214268933297390144500934050498305398425510596029961886672671591598319176349487476535385310678335528734862365959671376424468071476272007489457720334335537132812093474314315908847897218149988519718944642724112898606370733641297232609012014736130982848062076974135417115396156077460045952132889924135572919562584880998630098967729726139090090082371390007483729391294837414043967225339979100927065786631395338202735012845334696044280193594554353727634239569200415265037992746967931463780690910886357210292164945840328136204787608818445414667921389132358437654805443667162777996533179640998935789761164154507953367326453216153237485859384571535867528177035223923455795248147328407163885087136140670289878981542072063488949373235321557460725842282706573722487661082879751975404674382395173941621500118846693036523184955560292605013126162267419586534286658209100507603263620067395441800489172355971517596155984058461720187091803888693653556411903916987447780005348167878286504213051742919052299559028506434275100891355949374926821614562389470279677806277581169098385582675194372650936911468658409144474370880154671337948540042547176498572359472705374087395249313854660747309936239963251469884071987150410237540730047297944153619842722726488402029754079065586555351105977036018132213894467815546435397720639142064982359397056053927683076374764468340162928581979480881335472128192371437465687875664498476465983526956907750134765997880326296306185517155838702463296755700402210586075070516286082662277992114712781012086154894655940874631682569505539581411881492480740356181862389661655450545640962970353362048247191083838545757948602059569782922986686501308851045251226039359018479682458207838416300255299618248512116033971603664221907827686287365576048771199239343624661889287595854182215057534421987269572683271470990684488689641167052612856254477894567431751755124222578508929295433346073298200807862620480154409466176084704180918960176249487251791592194927013338413092833601982819912175143884446515117866367410128599351018250463118394822201268412741406468230115656529924199419293786334241519342753660497772094671843948900906546833498959832224716804338112801456002005642233411512007541161822874761398813261605685170384301298254749758126018422514571673173184595582490022086318158945367199013211230411921340972929243678779967116600651575282616107512221629254031691461285917220392150089611083122565310926737424132900343460066741971259937654499327528818616253015429295663808131267655435197647384064086427369939050456595238938795278400375973046674740261271919398034817578239220444480913454918250287989665467413314792307472424806174681120743845605485643103704028753504033368143113426123515319252786117276279131524099080612258347840306103563815197614696784733281124334964577466996596556216915072617926763060896916939613661048632140228167525180925557758941095910175440831317763977707386977257625897067802993287269286638629263162102588335467732735868199501478472496524742780224707376053884799558358825753887040594197198686158275818023581677403251631415251340063945195646575569586676973351199418741096550215910030837336848096651075178087656690395963634829850134340455110558423763042207092000899279255153481782802625042641033173397429525479525421663483795170430974684109471840430737579491790270620884521882324299353228996675659749045536175765958549661166703585841523808655220672783302349722711533576305493843444077497824636868397003709256936622361662963720185493031684818495737110735807678960068995042227604017233832049898372684203687486964501480482193617383293944830264310465147183062366147612735760830393693828646621252864914816457230245479947074839847595637894000933296359585720846735820221389370500056202774650913752244278892904262166166810379827693701855657052322483380923429087232745967649588970906372325582486263727185890259330269367513387266415465003508709476293350838460912606047297053334083218925213591571615972610508278347302706978909712687604488072199129318824938869526639335067056795194392641933225309501466958196268189995429483773307315950141148558189954833501221027745450606835959828774086945480392271945745507105612069007613157089521451738784195275241327356156206760239788846358984551845244217814535109561162507522046343468235636901575267941983980683540309428853141016283881771630163805520892101236843646298627863579118174345583321498045631517724068095322446361943061300558007731558790825125987156752107609860979458546547041940858511487737755320176079115613464180407613016984068054915821294433751532750017399853368220336235094928985258583092711873103096350788906848496170856315087612662838180994229979685441897532531180467199860127236993663869203315135093350922655238617554168634283498631058497537141429829269254479750925402453719112027845622687353995457089616162276283600070075140549050585367554615673682630652833628968791558997388526265057973777797452610076307264170106667673901204409887538918673211543465994781740435327641427104081239796551262290481573982914196759597685670496555813236075086928699458371174090182301481833908981499052627277963289549537221613353571456496974826198287230566090446412489682561726570495250124418985932611187623117816744166438866616025821788053788623281330259428042027994566613897823307544398874807434774309725082681718463318879258505433796818283122155457337999420289563619800253940566825293387321584316819776182975110606104106358906917597469653969728100822796300672562913984203382034292724238504629066741086247461397667664936647816527661621142574645777292907191973538168108675924562892597757182339274855303102063212225762962471095785215912511004156474688277768513644583623883367914301534127044831843258361636070815236673445079490610746465725807725568955406906958527508884344060983386763079525406770384171711981487734954956207948068927543321510260159315975290719097866212334441972055019191446181562613311974421390539434535846737695438349035913228991590212774435801381171012851310312179158023981999841175731472536037036246191458174668276991120299977300643501503943926142038730444071992610361143020480143193231082272306086912944852518865565212458701676399642755727589232826100883518666598841318458875158930774341983285555864439412491175493602579749878497734932064649564262471300846394417469134601009980864277804879038745934550770985291373457699478138830795009472317951843338297139003104869320391947368192997500796912377254818273101557409951664808927464889281431727323299726485777699168481896439822049090977142211478887317834893423538162818470306379292454248166551145348564979478252119209045232862579613667134613457743402917835520467677147927100428985369070839627755227446044282320523487522909866696359110149650954472701303639006874384274146696830211978792238260183272218666574550409719715648378998413828685837158918014293901788594721627859492419486922127316996222763062484777856249397202383535960839025107387975527676827951562389249691284683432580488698415669521684587215067416251754465889114555003139197613733235293791654470125828423288422232107143440767943369076868273942148581662020123873422569818426502455741937383866371445369184890930243187839828243529290772028554608512243171743458790718278694323601020732258079530476152828561747572101980519220526837647445439929901469722842761447641098771999472073035499774601397705269246853212703208620006151387134399737376645609237748561439284665328805401802964212063480366520273747853034873210323632922066562522808918365417850499744819949549508988710166811067805308799950556724564986061518191118794424021245293830292667341727298204985469087620764900650048267048469109163605720342165691415592636476739900808910457260391146469118048669265736358612117135420889105469592237302641730398796389489795418210605434760710790596164773614472809835945900818384489459104659676727315685193657902957929809275806833525251484480677428959262549174852813275252646156310105721311435990021591084067251376838921841515142339775955460265637704291772647836596833733681208683693974408801951431992414126528749484482382451312014595226824754117030940227273770103736677344206537345913897902010624455601637163088834444785444357467188360193628377022925177674949084300613305605608585937982609687527162060366546007797161338750031822128818791808162742590723006651317114396292684203635177299419805525486961086295990376544998773595650049555207029241597060053661873524365364881716231179682677769842834074411681935211735205263849754824720983731611356139198122832260737621472959090703383135851464067648321859732664807199581107996708613389247923698341550886690342647388485913221590211788370297439882265763136179836155927291352057652900922862432356998489730003169016779345997123758602630121079112670446842261991682011598206782243527106292546149277682213285418371982915811759610026711642894416401600042691908339036491920887378510074590764282288832973322735243044550962734884174384085025178027776890259070122747928039489984080949644138580273456204741167331970294471313011265802016076831872871224274372939442914838699480719951312037174309580051243306261651701439517275038997974213864953315245590194061560962766747045166081024126912279472182829074416713280585175106803641851860343867012288793369758336239196539987388978169120406136510388403789925486389482490619768727260613462754705042103395902075849741669373733525640554228262247318396280444907317305898520720450772720091570711387932096367457059042060966527276977310048126909222042017829110285727099419616484930097617209836585979985962888301771626879920363261548525575472618397019703374108105657459813974973858224345568802993378386454651579816866659465407751531927674404503064043899188576209927561903126032151673264465078713784385360251397504563967792929670239623551966549064629303677325178837521989341679408165182763426016762386283169952590681089711496667524545356153596941369149337131810396929020347130882090988933134136156259678614740691057726947787568498851093920963813365851337334331554836781996165473156050121762832758228498594797924028180478530674963668447818707901958352640009610685373826479194170237249889564383749563888845684967200845301270952014527642585740272226448421048434867661959653994911216837818583716388567359662681664749796759347120183767607978721137715523267678267053914684522065382913161736717604225333428555699183868077770530936447858071517653505719025121943563611795494765353409113506870692849561080160613295890065975890664107155382784523089775524119504252335201612446054435731275035492119818456970719675772930216083566619554214746974967343235849509752960163959032629061005894016312015941602780170973715853728992287193882712272986902106718393083441193799694730981280077430047095055863359900980603095679658345078047018110260880713448013752398360461124815707688248806100895194455331246535543370919252819960883518148107607529314337858512269823292669240305487506543844190069217671485391709280245457606172039816971096540018138383578872749024018428139781079930809182535169875586617792046284715179882429606292649905124468707379067163527667335165684523004658793366098820368673332857927513704406109235282485851816406264602522871458820448945388068693738109531569862451711853458142447557294392043841443310836512851675212035984180646392258681166593318301998420779521589210142188691716468220318858844752211370025798052690578517381210020135398357227505023337964099700691129456148850847425405931926487401639135140277424835026119029852193431113325987465557654020820809208615130668339423746111193088973058103357434663952028994111577197215659883024534659960996479216308337598914391843458694584645827461606495943692068188408831914194589120185405064176938906412166007093329671283646058115766129911962349948972946187930878049311831670754341003561336217226694216930014073116821997790827196420295675990854669659132071004365585120303320964149497646940043628132878355598953110434831861265205548751514601369251480896328393221421662617831193173979230918228836001738231001428348528344708848001155215365951844481916278338026874271530544951213695452491499625255839245984751981664558542131236549770130960848378744531864321215697828153951275655396103186921288003886831571747878560015716612425247169446444693719694562983477662547229135262445420324588514659582764587778159171305075012325537031271936259583683234032753324459818944443345970874413662365991163647242904288886317536992329086952139833517221456183657095597174447076575622165493123715086678779467429436166474483498630114686106288116991544791679854327674680989834977177830784421686660425929480342701175827987696654711158051276921651880913124358656342418241945412693085553201416014603018066540165078600160259488957300546463165038852037220511314603599899146544219351409098971370209611870423703627220127528843257091975256746921122709707960169413550773515247250646173057895069463642089401244812408950142068499327219541625571199340563054508225186225520516707641020219762303177149718668980143626218505726725853138481940313225000800407081401655186534805203906116808720355443148676335160957706717780615683541238795703347375874229674139960350227817058381590360485710833877184032977171304015060241939413105468772918500835201695682861756367484490064708837055072971001151058783978059734289889405835535051156113131665128416225448154235498946238851752210555206505232630789354338929475055928481476273099379456074156652404949472016488515372617210111362951050498625014826249743528987851345642856964562065846293790095621986402075504370449523694545447493757014446208739626529139417649192832670113684826907549463400419723656882529986192073499419899657101077124890514831434527062153968316443401323679747037302503748062741793879512863936867679431319274678693579081692879996363016546005084441348593383573365023961534663509650116568509594209262225262949772749072354017903585602594742414342075426339981127654304810106977367720316694816851155898434087299230198375190851216460490757123641662156891135447092107402126228030045374948217623524897141805458452059792652172489166469536605107818035961900086434806002111383351803717552321393862232940762188991550917373151192260813035966106350728740768361461379830258093102632740460232454663594464005598714985151953748791190394026247775733048256444473483113094059608583631995006430495701339256255097995072431153553607753541686902456301543669187877552606994149210971936587413963524503937600651897621979206442770203830008872403073646328754071608953037644674424109623369824889323973538125847840974513255606963933208666089811944664406693654735594204173580186486502221567878257039031838333401291675428689959609945692661968561556721012775024735412459562025134481933970286149850422640974957734822853122665286914099713067058414262058195326323038774515096721715366896615240753956254187288509703525221689880746277031778177028055651054617420719435095976209962599603391523732553199269269550244476144558645919014553451988174840012073710817475491512960285008778967985388925485159249787658751356711325153344050482541460437126758648580334027492208727695292072738685685972057088431208711654966142723913568859811917812461997508066444801371635673612640618883512300673306009300096192471244776587029393149455291357963168850523992352619051213124689977691595491737615323095401979077195878102737892304583977840695320524925125016214476455733361199684635044411112799965419081018335879100180762936719980256740568309606501485676964281915759621692037082096059359811394196061962859590360189985947424123317091433390201745060213719902465325300619079661310639945441560977278740108470394348324639428915206251548496104810837675202367999479317437637440752860068265975837660709028544347491524151528599121326888226429424830225865950305902762649476997322545073031201690649307085992809707997547626580629233813307453821740593164638300933430317423009452317372683242497773287722865192858978816092118684308829755430132218428302582116817189514356006204763814123503270839361538601023331017771635181098702317259684777546426574808760096225836553054395226487318923385930986650149710737428816607525345923503846765449033879808258908719705679307195908252652273562647462580155689716344017523030801672639576121932392395236776568610945957496174713737830740692935247740528899576456086054645864177977900596504041137327122197809949384444383254218577233794544692103038256254206968961042822600383791528649776089244105510972106000750507229198873929623324639176341374141590906501761884901837751889483051013863115434311559706456237405073975829044934383342173338082864685964590223462437867223687558209429350247228835082436513067887791272428892300854662961088361343657406949981012372603431065532807636394974511282417693380991084521547152945689977827233939900974140336399760304529227356069400798728498746655914401267943286693539892161806348349748245818060438269239089062015099006553488126932556100426998349893827437926337517525989912412616957225765979041350613071072038954389302120810863616372313809048007505775104874026111389599020095518360907775211864634317318888342723745181264951025705324906876462761054696852022520124494957985119625050528771909109521828768037577784448654808362993527860841463608051256337411949415998928858551419434902757033390237243647462866913786676580886968266116404611874568339552603024658920860994568329537269825611626402519934135567199045341094827677328087279243794247434185984187099807663547110107996758505503706841418538708243835940813112657813455380694523510086264975311137027575531601858603383882374651890252431539377204565537302967042334194938942396195259172974451953105561120135280212564362708276881997960462276973197272348287941078079094621325800549030878225644188420864689540755983255572467730664268490708142962377063289916927466464560490966520408887421663666384931000819603460456320836052390512882102976819140509008749312446429466099028014456104184529136095309320901412452653883509362522520561463757422260709658261385201356557095014316182719998145451612958649577822000333463687596441605342773327059010736014265694986435179227430735818670497033697714236975455543354570039648238898800026220739529754231906274945325829073854042567008890877450090640435864124359413373307954269028784765342002675518659755007145713520667725827263180120306883525425920996831705153760850207971961023354522203695446518818070758794561280034622010594445246508273131801849591206889566568370372096608885326195322619271812438027566169411081207420411038566981885554747298272535022892124806869016983660949728834587511181749480955145464857775931079289880108232713898761937344989190904182890694813165807822887247470360909735063356706184293422367180828139762792407931714778211703333821321240589494681635907665172143112885267656499399094183046671399556266443139670946823617375886536131480706898390464059714711528394265670938385721303288036615440426244101818781348315900429042017041032026098490658980096854413126813401178441889149081914193560838363646442541884268211647124216305368944023956371371789694352461690162026489425958007102983363706393665255671152924709943918252754640950262523334170329638934142787293244129430932562046521272443599448261799703123945308812002860634478575947510865432421183502031887062915875414941591078712360592236339545582145485957267897972381120574811489448890322098874808896166741448019750996517616064432117898396389043833881058991965458722912673044646379835050303690685815739211687712298840375807438923023282667637782917224964248478988887038392267795235161896641771580202885140725585273120327612538445086017473583604309712160257970156469202472522544834691913573361276422364914543288588859117037373271468611413598425357051463550087495447613475680621929861130328456477973936288231155854397879276633935666448556646423140736032871697612625317414389665953374062775147937187582717237061580664116640572122243973246775892921769144204496064947973405088800050394812144839434422138218160051940340211887562516890503398146353481375558068275534133438899504682697929887049600391366231904300010255619109548356659107025081473731422394646074810279379644359170750742912297115897948661131463484931238274969925788225728296653233798660252782968390709175141538154547375642555378541769490823514157239562436375759147171283805962637019445486638171464671634033029219642175171755510265447800139817859483793180043857879613899052779595220152181135023576849092397347517202247295232207506765644793884849761885127175959994154629939127487797605413573825612355228356513706785119939447444605419034552503027775700264732722796689085752591555339475058690564083680574714620028662001096604452119307665106556781989916841247780010799588611934120635077646848646635921751187674734067684905445908166049341733282250683086005637946770202263375213595689614616507171724041971133646098021887771556662116698497941687531318155805884513564416393967804820019531762072115176126840795081421365091368978039736486204702902159763953197427045308731116214640677024596887076961367274515182217022530178326940116850437936416860042488052828488238192909270365324989533219496204627201731391949293134868059654399916857286978393740476779568138648873035891097155439089083237138837860302155553600155273935573056954813750340533858007073018549150389505081939209117324742545439945194388743546132539713020797108256818793197169238326618712338174279539525611136265164818853061074138703134298148446619612844392204161047052272910252196059571622569890787218569197906439528397809671321701949028897801200161411830630354812625596202853875576143647745312671246521105598430698328348160437397838261425863076125549460073059653205432194903821130734101823259140110632348967746779436528285464774655945584737894925276260536425764868119097483832245164837260889518453031377932420928933411635003455319232681687034589643666470469260372974821966238128201787103561366245962763247927436996950703019434099022516437070498569026338442501590931128194438250270924737222443871004972023062379783068550174529701066945790790265204983084099644962735996430206842577805101648518067018569416143346634903324257547564901617147673030823811774301441756898771239261700896886032546893870665166764100953854070904270123973098956406178123230437881083900003268682221053607748558057796219306016635008206146642576024000082095671088225769026630257432625397259507446023928544224966586317891135392112851647181115373036330916673686318024276070323918057523013457578719484417133447674278039631381830148823896333047551199242868056245081333150935428027804048835463989682794354749394653488783930967475492023707502671441550246881905304205901327674713614735779132693171992173826296609337500045151796092108993535071922991709227947277701037640314537411707244570650797809410086890854354490852420642370382868944632096986928920837192097506440330663469832636931690432618928437759906116322226852616680880983824001394461058483762662994080250687319627114865677784736827623423938044451069617941812530344192946900535071729767298864056699806136327839583836841890899378943259005781675960210684853170693975288092137748685759083869171581869680781194883605232017335360488439384792894178622820252508945205274994681063794868389958742040422568120915268126021397202532225808038436026163922562796696471036586230478685673706186170319680338006857957420815472589182150222050521362635685758156393935407771933850340588176876094506009428948842501444177059060509774752907774353628088180572605515652136880333346240556384060669146407115595110472663996944441987706322311357724883720878269653707897342825742911547428598072236015753537196657345020623003468980537689651547369991288683393240907142313692203538392559514764352629193385058517967770475341772246236731118900023262428272727735533793751446056969661666421101290376377447785591527584935384211671122697073267294374513612547536201681432054256442677314404879149085908734195081452296481951048669709823896732878872202699478486772539982174378371530963126595195094542560383625212410037764051273626210583860931472569372988465390987323648508228211208515151316775035381052537750153007277338262523119076257348762687622231151808420413900694058425916199931279559138705211127524106894209871312353824124544402327544660279833212939106484274093548498355466287655290677708445251588491622142323422573028866597851715021112924705942431983606439940749948135067719265769461445526444569081240808295055478002695628360861339090378283805960906939550849226503028506183744404040978814276378435268634744723147202709003074894430109982518410146938735115774741910205016250988498685153446734469061730627456404761534277933417739402167394891067211337584161634847741589923372316744569968116661364425280238108014078225502664256872666360922643313265015739775436648868364664791391414439545930946748506365608433298923703473672870660461325830157091300628914485431995214213723011768130974082040194412483514024032588792664350425681416028715257071844199992275339695621641069617436272696536983112926226515869781317678797633886128120608867030112509422452292459225557265507763867301110090781585964052954619872488794168972542079831530202324012846405123168180392884757086744349712031391185688856327677797784197099382038115657305684414794069977755591019044012211431052525715018911008686304648644579759959378033225603036380297345187399953943671427890273665843014525664719124158462235846297365538938002345840247601349539319049272556408386330750996677989489403426143886180085633562369997821094921159949516670278309943239923352094893871534350617300450516233830103381739750046869900222247043360081127173654015384036672929456684457046534691755500320948207330188402243273872517546849703580263833493119123642850330240904652280719279651520270136285198436565410670969408170359799092885986637732250554408599213234713358345143287335501476352590202293113429049225207734965689945331572826399534610039313820834419256774295251430060924934004287448992311133293074232236183403139248460932250358733048643218259940869833570497244519405457056794237701517072592538085805188610883384527017082875544052381748012492057778245060734287726837414037437411675357206179762187632276451148787576630612433264983146584803565084455372481512157035361020953207658953591208457017147289788478434307770464224750985700033749613656058957701882115402130665319872281723708468856163780545122779842109144965329014554194862008264808076522627124706839336432886274187169613908830763861437350324101578697419537620905690268018705030399136254669746232712159123454391954676524264076575755960671682698279691987355933477019758798470502381184015936188213099508320184270412664198392676028688040591957400789333234004733901548437290375058970462435602257098336443701530551267578257772710587940154188063941408320780196186592318080075708423104577289591571844338381054509386688047493192158669423065820646266539938795901920175391938738903053801311945341943415356831004723767274164268524564895233038705113904157061314129876625094873733012975599690628294487542647810008622012654721190172114870864236137070631456401985651540820843656164945452929848908227587765019663555251833449658590703932625808574257366249462533980857361810777643684574688357441757096829851569855707773957975000201611936216538928784136097839744601504027575952606054755146622276769396997855319173136703454707401331963024727192420831582756714945975261194087679491863332646939036647166586539340256420383503825654598085442773889841913303159469656151724087232294517087572254235736240676943301465962131519546431229138325224565029433982411307767519579069284126116042255556397287239205896596028072803235863283585031571863662057835977716345609561394663588570711185617692756496446693000568912151049273515643816620623009493326723909745413089251954061668734062792594424778607613574520233477550652393629263782630172408517133542421852379691888407060790693117201536013416232442313625905226644114535703370456076319037272574284941990103436552079693721671491155133447367684777434819035694213437988810552426238083156055684170761469556117153552666879492793580231043974564382656822854750357817265958451603731917231865797278220846960989225184629661994542374229378479736623078338468776578835579404051461608298698475814330277323860993816457444548287745587283885439337239275610658105493978852451684940601816610879993843481421685919539842658421066068169687444373469762127624868221408634732121143999059801230329762350289883972593364483580677884810492573942601856635063535889256462752882427450747421401268981133657430232897850987522399984879187131498295330661081229928188482718818406618200333837573837975117550266945000650430493921455466685194651132560502263039709680043764220636361178564951860227539946858399147946723904354859815465443453633983574262502860935767607303755143857756373679740628569012753102390156430070775397332462770640790523655545944688501012353411927127366329639556586014437154272055814693554071868744712045166820964243925757758712613921035475358993395543510871963919852663495356660842940033180920751820979288192309181443058365311570014803968736797027308012955184181270984541501307852289596470330270542218075297092827265550178337382143149427536065526910518514504427747467055807330466429727878365030768990759237319252462404931525218700385665432190062027314149014030084983264343971281645719598872120921102478315821208271970030119705196381074869298672864790583112470753263260881076273106327906766238365269251532291322674063151976619777120126312633111441733952241212653678562659307066739036804791191380734133002286472317589934608034645868082784243471300661508622025841984347626421849728414461533809506588075811042179796662690740614525134822446352269235965074169174118560178733021008373657125567980145894595616156007996105635809925523314531227013622397526980818296349455930655295184365495686172826917234834620498740002800522510668917882314487700328152689400120831083727933782168866714620510261896591081724335434939492907059555605802525095339015287703187952050970949655492840508768196419303617042840669539512156131590380954849389026284365957195963119483841591950115418723986375271322072029645821335694869515696017611407531114832465017885291161638111940193763663994262032498334362221290776161758803748400229071379298409924954321788468262381938225186038230721099569508286295429128313559921201788679356131708641494845175669100654993253949542140893270770886619264520373074069860274625265976995143622407303117353862807932423441864929585223650631838748989213843157496381076709086004029960093619942962227989680466287460117570888485004011289571197921017943945414159157589248938543318133776212295084007758586742205375338279420723735882921493554196329033666649721188165879998167674636281646623406250108145716821854386224345637136913660106919973572516188271718690002435534321580365068129901245094209798682375608911591806617523574105963952637914823515031947253881567884605684282631530302604185519614508271041546843298880535537865573952260603948407432999041074952337787029151146618085233651097890171142843522655008527132290107053093001442653753167411940120625017783705907162908619670014894348825525131905055117992519027505645445330305595004120776385624440374226827084731188930258456842138299294822403077142529747189945766445994499517178314176390393881653634582105082512867772638457012303021739194759766449856215558694150870088433897838477316948105261127296291137317904908176926330990449182335783645104575776020802714426970210197366710728895362718164088635875997225050381947628419464953254305547991115469219975763789794985126466652909555138405036926157573447351796451278894971903924164637236890816953434737558923499549743692883858874506622919804500713560836563110540677961089321213044785224283275342874720554620000897540456496030821262973033018495100046625098477433656287119223145733467998066418966365120322440016024968147859750136800135912932565734928718526234394771637696587278951815887570065073391799905405652206667491444306757295079104110579400126472554468983597851841768380571505499687539394597832508307548010501792241152178384715353478265270430676258604221564861182364667635791916396669093407058912281029557872504216917584683823866904096406996417798722108204656949857621657522954985289145788714196593675129589993405294474336900617151301318559484762297263611124718404238437097673367045249478216140431804979561482534937569619537026270356666410853369000331419499728536401480756041963944964871207766725065279056690952070549743438815653250837066817396764623088359357220383119337059065193081410182742658941965070300106176421720589998712394715398587005954718417218342299261124877892903155175668205661965974571481968392308565909349448365998128504441760507673597436691612949279993064264207714842899666240972895225937516389727595120981429514259789787917863658802930137907228082167507419583286294377622894605774786535152582206251643148551275698059547739658529365097306046191181632614337304007302095444209089048874358224622473816731248620781499683648795998299819106795030959728717124954020943981975055295187730516750150483548225533181308465641487823175167418402576507583785823795593342646194017991043513157483376491961268764251294163783086122781084581283123879534317640890768296179294975691837212399007213460256874717699945506479690363403329345236045139906716891983658742316617851141124555673016675713178402199242613677613207336865127429723820085228258106922306943592873271237276722404092941198977303684775159909960699994160223128559941464783908184272843343140315391782227299636087352373650345486620160973605831220209442881362662676389015842049607664257388209606879685283344805483853393365688068337422573745420836983056514411417345750440265461622658696680382707278431393701804079617210908771070443536907789598521607253935020074912959849505536950513855791286447457780998394294949109421439269475391470579151592252652596564258138800328129715619543440715841337373244301825624539008154833404826448566622495859578467560268520476949418631250574027924247285936564052506662853520243023505463582016776938100529446439763282778235451870489803984141859754718890835628967009325040244498534668837380137207103384968713410817579917891416687425771263161063440597365421651102743921174535725004652481133158954605182900771879297142806341176735650883344728782151892038962970607800075186970917602890816928326558009304249669529517632857150180715838613672294643667794659416491497893526923010822689529253157213360060075437171871452499909840569813642505850117436494606397826445583568601129241945751964237765464107424843031728270507560603113054266213807572843962411453962818209587805731133384550817428488312089624937923635814695077050489705178715284073449652248222727667584079903933062908127609096964847193374314363468437197323875048660543929087653751715307508464234215636518749095231272487512077079334665874829693663694752769578561987244465158707604737637284745133124757692192209499502419670210079310270645021057166474472009872414341024842360859017910768788393976672029293696799622420962031189572017587802564418752699468469498815907335670552660766130312995706548852856134802606706544399888204673507842643581487900115302034114694466544658399529997898240206168510322944061838475159618747051504031565018879511306717306789877840083959140028083528093886933401270821425722847292848313989478053095131653183792873600480172588164570219756720956067704010980289454701055399386954840296854365395832141176755945077881461243154140051001101590037246828344203017150044405278254506309763186086285360706085665730127903978684404171918168532842609940877274988021474773446130455454974982104812658289697923675443726783733778552097307349629899547359220997305736276973040619354868612439958246004233783269144732362327154984841838310110812597257081385534392025660463083372792268246208052584525681807382256495808238099232759406711070194488650756866554775938866666117465020063771897020575505680766994802529669130183666373509644015006137241293096437100222987671441931591063405134626702299821622474901880714791787708310150823006655260706447847343500407252609167542455735084120286063973420398742353253183707337831881272200143603724276722709764333521716807976941027255626119466188160995198709087296989920877373927218125140278853020091046035257728338678916031594136865939826558979463253983645920188894473367440543286460239336135661478914705939168721834836209664017430706620004451641260850440340204084085603602152710901049629318877102795600979065873504668209148706886263292152225679430188120382902092519456253826754378049409484805658724253860499883265237650305804808129189803792534832718932772055511265023424384590474059362289001389486099544630432749870029622538366727149316387981465780786836302350005266614781824187795593332429034102599273630017867788803085878607861162811546459566507433241168013776037993930637115369339659029468556391422919562116305556232006003192931271437422303044629377754403087954086687916521881401157718376255680538803855171896544885719386211554057450873421533132506387329010553445486496514333289254728875330473252277211273401708169932770604563646564876672920506345053269571341589801482417406729035044994719078173140263017618246947483556815248071438058108018817933573535207302606122560585014215125555833448140878343412079853109738391832804781307840164385963725726012858136958400433349692534446075826260958103815695503299275450282409688242637028377497145559058051635358018061572464568723938257685115709571665926887885997642059557795207815563186335148839633824342020199631747142808967189389606168830804384061053964004293450240467912839744922718481658434714769744696475084733267301198125397959548115288263320011087994623574298225791476125871147483395704227611577104870786712213718952074629686648699517549817189673411103390862502580010548625297734491343020146935925718555818321862959023467803937981158267615476884597426038926434730939534791759902232074143281155886946002050629868772348370887440379842299242799774836832176895929968934074896766711493483322179119911322271453101635015021305389563344074664447206368572364463791803276977124312566843564737654495805746038106906229301866430252078662598535488977531848164494992198785625057348029787406984330509871537832280594392608576751244813557624155407182147475177855707876101400092736883463015779050636584599372165037883630522587478020155190980651607215576300679407498491351175806964584018058338096793373112614929375087468222014159171592942974731277150984695906702506977408666269683555197456892960960153752446905641486690677923564373481423418665190597504115901497512640389702487151813949058245869181596213242824351151324907214466707769432881571016122633356706495961729928792833257814952409690888003826016172559093231235199624074791267630865339510345702716201618849584668307212979223166325690903251105182740769686468007677068020685358441782898193709022767547003413826507681553427289566445497959674601598371985942255385930008812186525339214866836612449797449475795017018199170237333996761708128289009444142017552103620184713985645220865963257669445235717574843936247350086685127955259644572112479718186626409783081585264023529852609445082470828081108862130924452046913106738443376677870618143318007777706749707506493403913225823247921208628964408513009376570360542537281824042631042249695077919350199067953066704629359464153592019815060776656864170772265200396501872745716469466761957774634896444613556026407067653258943762749191548245287240615722044735730660147678715946650607786438280462431678844388146049825019966917585590505189176397400062487715466854400297267282012177624269534591479461686758921378927685269809531503912852954486968427859880820933092877986389010852179908266460056953739854551999454832809722283710424819632184456164590759215267942606719550953858124313325253968665048359705276422400443377179497075746366938373092261029854716519680191066136426622388757466280161158499916248653998700072749159084082721276592533330628738036804567456759257676276822241302701667472376039667966029697353820523797786490410996314620885306235848242458298310723721727189318275304615849933381242291917856471987340434323471674893325388150772747521319143408544762154522253515525982889436987559349354031647414038459927283920277623067699199717418724306374650030502654220118831508297567892815601119044801174112929083002599403180934886168267493357609433201337532522721536448097568738483054177472441171588886057202807357087948744107078651610022923861469863048480614305629566579923851686975680255224188893971974659615964924721325744031968161459494454081837596431805231744874670327354845243738993370840174326863954545796005099108271676552768261748816597326310466268613428141700953566267741688937802265525406738579697709572928822115061429726093817986485512792813219670817405249391068874072485768368953780761952667129055843489135831585589238614779579004603108632208525553517358636917982162641656803283187934395005053095329401450946630990161440958890546199423772678804124090257587419221679327676155015172799915748070992072182302900023179815833461389215337402992533785116994263438435482666832765503016029018764696446892851525730184170788054731250676356593042290842355427930171881303736891752252293464675357220235064224621115359886067734531587941402445899644573083994496439278491281821396144235553295333691943753765677227215799331974846632291392989781149972355590420805073846175004425593571056640943598394025406035628603675054304754005373401131401898396764783601249321475001903432181326580786616812982440799488763969026320629626379593027196777477502055416816245130379202787492909874577381636051927998579765772770233699348626848482142647794169564585848659391778192107538150746477303753811935759914809219939224631319800791643092129061936699175292600486881989362932317960202736482729524579971942865581490260031007525376789721574702443093393650582093433020015430455351441999641735884101291236226545522024481890514451876308669391224202047055707821250422679985500023132705061744233269078388345759934756339138402689768231384992895850084901903629569261545523258225892955704111273592177465398056409913908925781634477385542895315578405699773376222653864164175282556002379003345109162075033482685765735137752613817638926425486538931475532155192470820677336710963951663022242913343975219555822799629499048676400534991333736413565464969926181704684421592718718808865149687125038141530464557572363806792077371269270483720164434914483946122459059465525194411614216322795184547778251203076659833405297607664193158695259268942624764161079113585281234867534236406486290524701187072712771535261346398343574124461610738327971321835045755108620138829741931001827316481538594552105129308159182226453749401707494566855027300305700463891817645609890602117970909468837860630999659316108749638736102343483606115578664799435821352015441827830648829808541594186534430620671314195389762305605439907367907197641827914638446323926034392513196177518507907387739864523622363028300597781915894643832467651302693185619670927984906722194359451593297356051052597085272418433453802007764185878527468317564253552538414213934247119138834438814141220823195057814578855438964288247358455558098932438953546272629320169246872033383381499773511235114712326027697555427708328455684604128551054289112184707380673802831533542145276975134579604651746807983528212624482491993450026197680541701816264403833775015194545142820693004377922960128848348061752757134498974608649619565538985826097737124575028858141848658068975468460641743753199861664192822141540110498720885078417780519935817794654187702597582099459459956331032164334442812564956731432816312876289189675194945474867370214412148336033658659498498075447258993171930897179617353925793768339763049232669164296275231642321918198465662609198982307008508423921473142519626227123771893423341758250345081130203417504459795780837506325780154830101857290535970029093170584098544869583234275952928382864256787884720444472774287656890469100625961972390847578601554295441070997781241588769260136389744817116628866027938425021648205935737210576190098175505680232951268804983845818728454621008678905733429929119840296614196346976181198840067518604339926363347921031562326554441303681949675733985481649491814995692939953925412422489207516660412197412892353963706432839616156326013680214279065973635563085373877010450741779265802066055639964714655272068970835934779676829373233766221711476800254892305987117478523146098894210156643351218998310365567258048414831640860182681409236159964179517162517358693101525677633913872094253140931592953640014331696181628666453648179041791118642929288076531022793149690784018257160729747086170057785899929186594957416269870510090522091971603035380130355740387450749350388867733829514513737605783598350290445152005090445046581934517092072397941441433342032028320024223623941719463672669726974889124268122571316443320964950111990855675161544280974560870170768527016863325827674412439953474476503035530707675487636976727674006210749386913492512771630241168665161020567399168498923589241809573714608367133177710836953059035975697125073380575548768668270433115832668826526554642287717699473845056286599070969600521117499927897890430799574821598726634047419304286076230247473602262753312998855085948603991597510304134670613002716846170351127222949185573912979165797791042138808556813593157311026362393705469276204382393454535061944471596383137949068569626968416492136967980932874481663547116139973407125331580567536421608277920595813024253901813453209600914991180754262684168579098158283805136654137019659123000450659141482648071586075551238005222882968350175379033175360745348613036367606219113676696501366961574795409641897891573680585859274368410028364603012390695931669768668909647461331819695119685999916402035592405762833123644064248019095800753341559289217870346874174888538042090421972612438436189537220111207444742987101094933016187434170498877839703219993284757863277279016579420604286142098099764105737812946904092471447030428386062139376925563302634558990941689067416747955705870658407499992496176925357614134275241611313935928976889610130996528311924875718705619580998584266962757731087435970074160989436787168542017741798643789475851164949936872953638492040187659273360400075096562386360378733083280814634556130040387254331568028269708947953947446229757517781169528179125839138770333542189115043884116990387365560813676437510255024928148493522217377288058140973131668193143475970223197673897899182378778049253395720834449937696733345723734302783737660789210318355987503129257312441820305694541220216053694270035248263323243554330978578092983842856859678374023612658315103350535393405445087532200213614915930496639540450733192749178629036566015004616989297109266307765858299382110687107794875343511037894247639837488993301788096218670582159969332929747512502147098402723130202861798536029351833685660051263233464276648900570226123573872220807194631198776189588751093000252141734053621682020793511855453887870741253858357111214753266921529709545275442520386891879466498592568107784334345875563086936043302848892559494418408218954579057218890777735184189311343342046201810426084068371219098915765338429444149885524589537257135345791431428757137518713567232545923057902626939621797239332886428802177712253393138471627846640357871084918298568459176753615138174350862621728389606606059230978520599881617336975929040191778930556485120664840105373970279457674996701636888748032692971471818089909679400734505141108683139389133739170109063766068284946163031966186603052485725171864735161275800994596002861894923374345594271054227819064753151454113015008971383070583072125252091578477377411330173709809631642768846964172583548389420840253137729942677637980229473693932425901973507382421413600935980714256893048036128508809602017210586214266027685278575317413049280427782770886832037796796186696320403527490075197159039169743827925764931257638399128030713451703868669493395588422927516760584516955963214023353158133507601384824204838200536266190767135762861996567628442297111248323798594451322123692367188403142393869556261384702100695272478452890869932739129469738656721089255626988460963577115442243265962638733644418575733936157700459828035682974828473934414606483194785796373656232922082697096927911131316551382929929544434005070402760375482324348297039288429294783797253342880411364604524472848193208773263465926617308528359975360273105015736864542057571493004846849961259984156729488892111516258010296970807178970060857768191602460329277847977188820864690009351294895313385453846779567220498172010289788215456200446670720660028491437778496101902516927675939509289765271718239015283457217526843686285837137314408527972953136236439666875707541853778475074733100333022012065061921513443894638424578989288549516773121078686048117986785677034133651798151441347160348094203124275761665091115450821396397869051630431877609336835132202716573629359278106154458852237125719143228041486793663216599788372937736224882391684459173026533599556683393300995229553079334111730620203871273208612579697186967986573260088200410874263784503975434130187801733414458150758091967651526736229935577721908089142284912050801248732065075454479002061918872283290373670529570372360872711699820236306134236007155562860307619099008298505575358107864124447346360342290602757057285574370449093788875706078976006166076429782070772617525134219625165967719415599604900973396954610867408679554962151242490056650973104228767990228098720981486081132193426930664503193599422456640483528663352247304809799580731241253163944260791638048801377551678886292958649489864951612238669775054274834916700934885430741322760152851831892150686179128509394678705472828528537282797336865566673152784584696717347390010058628816653161793111936837393102246978629795374371035372168668939209931551292790577643716998636832185757963935234678513038476613781896584135590470449160766692253230217387210027134474371010284217247073380127636791324519082228966412069477265427858528454024983942032600658747539057903465571144866449651471547081666544680448034306935056601468361938892328679727321373204832800415264446617676113854612797927313740975405190910728724724304898291171361974844244482299205218671291788929789279693815517364705059712892445682372634473158206517146376192637477426855204251162718761254791645049361043093745924427838684908450773794616007430305224491129232129156498707873552627508910798319854618867478825462477462013898111779559538131381036709830690913654399850710418125113725932655713677257602519532924593637762937496981516050197130165122885207369876928176947687199034266554032810671041021601095741577455594336013715112935693574031686482107232391337438802051071257690895209727640712610641243262827318441033856930622527745704118345952060488678022569568341672838316639743463082760089824149531728356633957091094383620365462575210899527997464722561297255107915464559013021148839965419722345000553526251663963526360979706645086813079029380947113597612759226064221568069453372865985654043794634210710370836361289625944517879430324714545636863132298437317346434891732144159971913318088609990849874062317088973262380249046444737345580322830388556740246500502553621059426515929773595627918831871678024363429818406756628106423663327030211228886890176351000866460723550525496235017177540321338585157015817464230537199804648804148027844685676974028049711863228322495320834590821066442311874860191869454944989955883237593643387580463939719009894524638803746661330456294299087774129782867289837927275444157513921936982221029505582598887277306293992579519722169544025755114315987743990260855752275378393133436205188795631889421573029931857690784408021097844766857677046139075143515589529487648437449493569921271892252029168305525006819886804617483494206250011380914286284848287855560779654341182253775525982159971436527356175782819955858590623889166150921581256729495582102093597028443285686312764423822894042846768928757424902050039689007235927788015079857325152771668435961920324550124626203019686395322026105781687754192088952500900093384079026779403623731671773881954684094885173006055836545397057144904162829757959881572943014077686091562272179111574870376219498748869518512667465185299366502184501324802053435329556169378559351630028700022447944695351356575991197188232709213875976922306189697982570091590070527020793218769254185801892742472070801460310594323288266200581892080679878489823882458156178691107017613232391533418345173884353142856910431643710770177464972238591937538484782163462587609757039649278181708719701745545258540112593324459756410012717988081604072205474864346378358162864725834992287660242817208364554021673831330559732219501324590334862241867456419312067491790607422275369245180916025973404267922892622083788478636318492280118354956244978422901512560372885492844460111412929628323278388856801453604891341798045058561775473139988454405689115251256488801290689391584545799289704876892861128007209245504165895721970757259884742868557634000099329892552695486353075162670987446887083396256339407253797525311983292392660110340891699639778108504975669303182949436606870409411259052153973769042845807537331466345190892063219263008755639738640298356415647969160743821807198094349316483099909924217677247970568462328530120694105768397038335477119525093213476107126869825057327369166157130747717146258664738701273426897575876675641294692031598621443125038435410639691329196380765341144072040923430662925058493715583686585610535655172026557521996242968946304741514261245427368145871638438005705675194142441179485267379736411094559969544302003985609998161836743047319714647412240320963474884499526528808599590531051292905629032976585990298633821448102730295867873637124662045764489680296848421871900419346379554265585379001370838002914298668338350536395181038994489093805267460421400837822674932441924493746740403954274433993685307581835653555753703378091385144053381106354232545298307653845667210202413533821726930654701147649543295261062178387466328372738385520227515367897407803628137175808872408277018506467935188716245344634792072623514826038619276962649188877690714018874728222165838006499543126898636629701988781435985378028798243957551979276517756424934772811812054101999999462000443715182599311552971268411902390608244181781979266096544309358971953764375971098107887306085443147304020519794261229395325261074299451096049042180392807155646114581512707359752763751511670752358054276886447092425689487089522744181126342909680683762068945715418518856033941040396373509564214640611840848997639113192456016991262694280424925162478758528116718267073183911872402048144477558241357006736642043337981895701269197470001651804939487225752743082899884561460658892934270898757733081108864311840114819922960746838514798216153851288044895792440700213287289358878478300380462184887453361456694518444713945830015740342600362151189171176991565027908530942162730665973359161220080163790416975311180187878051346715905373346354666153186555429568347354057372432428318778797635399895700907044914222178846245523911560707671516158066347702242790683416984301262470931618534000424471927023539746702211616143630156630511241741835715776986724517892130322595813701397806308944043112057802876977542329924852334928772277769795806396231365683323185724842342232995009623647767177980664954609529335055596566556656606107031071913125421501640165822660974920886412545934371120976492488766384530736549893419907305508878346901051254178377882546368583060713502761842350027617224710715449446703916268568466404094929676479089291974016198252885433785951734029597379388029327323685897930514179825444528547156346911152876838131503144438833170043540728955650105027127060513905279343392858166505470452300339389136485896517146474131692234185734297931621474012077329460226625074142297708636472762297141471642177622574945834694578414639046759988407244160558802212327260234055092752950306501050684655509536003668654004838141794596600275464161007239945847861070869243941626157872126262881937856939068933686451533282466972860250632952722623143316335201421621996714867007859919883981251481028802982550503642746680775920676087175739882534185853120278834941198450169690270964378529212123750754684366715678639356001340603451333192726311033096367424182420558301825386304282318991887452389712787127750377958678499565837774808013198724246672473124435521750159058723159426057961014594778990668020483717711089671499431963034290314239327812515031387763379519726807059472766122474985980276223411460536955248657256508623196258854242870889094828588377015854332357626826346179899494744395055491355181929443720738118162795629081323688756819771659874467606351360426373681055243947917619450826688230195665250739711497262152666601287034469256890462214926420196158365261473444849124856921202563505259940680444378786264497603058931475003393421295298591998973255175035460310013456319493548008383301171652161319553052571083464833002456857607854803615798622026768928661795373208440717271835068068183590835779159062556195099199948545245965626963675824269137975584974126366153562233611586678958607247733628511894467659428578361570175038640170594411848931714583573331920457452762415632768677316040020232228493644353027407983580371469053841370644079250437756184632526741997554332278999050065870019024792154715213700626117930187674067463103635146532084555235586254130981726747327233115231251348770623643675364750523857026969589146132618411008784925662068040892740625971229022610300831174848020534636416155951021608702314848485147361673978198200052283710562485371478972187479704869304649865143925821381144407136240268240589697199794772640164731179104711695637501310516782114502648849534912365657570888383165374791724389261950634594335937760931938905486788900502808915905904715185686574916674217415427735248063928256784194720244569380705015745366919980080750676360753104024920059635988567114180929383263757932846700189151904074784366550191768040157031434606602023783778379985651708167130170944522367152251915177082752570789130575865169975174846627806660592560942548227924298772905285465392532465753992190894776369961634687864337675747969153903646292236333415061093750126823539610159951123412591614487351403212851356782020971292282279886299411590326371766248146444473800367196414161667296245159878127664182895469774643071399680788800489005895104665582072013806597460120047790930775878773579997895703889223377055277894619430427549717583454017173445919334097178575862615493353360835006709418953511249268523759118231546733125198764029758955611097730843412940962930240846147545527388296796747454022279381870447372177203047361354956025031591386359672518703799879440690151104092766715772690534957250581753245732119623149575313475022561172389394841026622025587826303072922788335941789606607068451442019092691965618930510062244605152349378052533886357343804789651226759325987012798958666236881725033391325130484655059938170063953218561301732434707060776687588898993049997207608273778423677489311538103301769497520524392532882788873150874597941396174842274052825649271811900071200041123222796826165034049907095101397940748655984019019694862056397058127660460787277863269741204697857612427169355318588419269669846292665299926570596314619235926951626178484946015131034616599946395147143321786870625996696513385759283307898730042969541926518438446188668705905247545250623634170138528426317092150363578141630003621536554997190253162024406060444766865423171550158771193604362669468033534510561512406113030639092162184470205317051170511077984854634642826949710055615964585198109506868585004041985667270432412320817023484228685066351742505566612195881201573519942352469634741874871430512011002323249225841156730697054478957963570611478780618764869149580115216087706668335057619364884093708274185046760922962139800639967437053185187713640081290123509381962253412193543967628819150867942508128512173534524186209687230344666673275377148785007061644775660746850380292827193224326751893836501233199501362426548329193423643202158240535083515430043194828961851685772263309044237016877924727980846173626853120795994558146476316506791646535835480754925809061142274871908923616861909266880026371999523983661247889903769763970331846002395422484878898954140701316420277911315450811889223808621996685787094170475142556389925012254945349059254038259689921934733264935756457858064837918125072938707821651403467865310776750811818788452777863674817199509165903883284682220075939491530336419370971730292929808634456587357333308311086437160455945963146875737266463164089680513982820492809438843965525633485990661523969240472819654022218854147947843742577715576809627916151229688319130092656282283680783741507230722495745979113205701952870007466652190629678967809394951207414494222865222686528683312741429036601711779889646810368167220807413329114670138142450253249866731622041291450109558866222854400958336727164230909911639777531938826567304462107386575776478264441455062027656585850802895990546962329889933480588241348677788757005275073690607889158630402815425557649826866745608033145379462003764737703206062507767293423764157477041403984856827771445664864664294532337752838704671330119610218143551076433509379749898218460676647864636874160561336706894502044859416754686661793883614378498669549011791662704101054099733843212327204822681040019025697636881368905828333694383258496105313268070760837186187660241997780868275236148132356022068219527929481959225271467844852057921570333907576996181754678531195148862514842156339034118043742398886766362216163571890160457949033395799291956847636730476994410379603807034098106277895931605853786453912441937100908059191539701287147907568909439830086309300830798918076803402129093658489914971122429276929961415940597175461800351632698253175463166972127484426008151182467879085386739175676897282678301708783426328799412809354790994034639391045516780576725740178076283541017166336521272503013118709145001522828654198219631030189412857056291861297082371404563344291298252199613434094983827236541928431548193866173590722387254542687534059015379737338680048639797515393423276584530321280914123598737007659053608285286570004223984369066648064818554533681482833658568883736948498754224321752404245292071390673412996046839215212425731142641203918299329249185741115850226729386621615073582739150697631631307124597366991891933252501809864056963260716095776991541318464566979621592159768409808112987404348127035218881040545362793159133569377292624820434915291463151696928380686888740738832410365865979179591815740337507148818986316530054997357287674514558333193674495109995341700149646774096719926916359995659633807969444653902172246845372609001675624723558906163205173234531895932126450678339900056309127912528990111741457678579719340203267722793169804700554874347986108274412058525729150081885821667917452099671142607396036387058572160586658408150799844693438208877944253207815114153024518390700312252833854507843571311583128043255534103115542194907862015140300929106490468840188812633450971997305251204442791290492805396123580197510998293990152135037121653058468461926029005824848704749584515544450953640598990309440484517029171492536370369288420053849043976348418960199501329814093098083252142745717281128324907610567442874144969474577186955118534708498990990292645600318513887720179526194189916740347860439682071312512420085524985792871308962225636633398234440644625584060142714664433472835283706458016255698513895299566408051087168946750723287348775804074729359125616298056517594126841406054032457419935270416771741455420049348699495604810584278701812995035099430488771839378560589779229805304306503850899295548770693478756361127219586867214206423463773049561366800101181150377351672214503545325176260162201712382864275965801643668916299649028515000758576913543668866816930638816829488562501428766743588861901123507181347456687992387349051011440114865988970906445996644961299362914397257121281608778946468817751876108012168439638845230000825460174666764053919544431798481837100609175679976516901151230748545252641055910059021476368995024212031605762917055717894417969329222740055811524047296684928286023326495666876634031022549197839280870564116156119110324823797291412564741572956595390030824233102070331154479392022017323203979092735174137167465596950383934412364968601584657735039111991440642761023833337151757586002593205856781721146039923661766826201846225184617098919136680142500462210854852169359908500391059435737588542985820615027553392918648712529966269312285114282031616375939732656699247699223524190748145349024800174865495539281773989226121145546508458694093986047024245025393370135081014326699220327327559713177086329642187013500422433893241587149530515437744695147592694828212035831744865226229036494963119692813089110792537492364093894671977104742115865638150433585245891700292298423602825052924573336257525966252455892354625770080208632253035575543142682982797427390330990228577469834535600614678505545644242142682264538689547614465166709536726416227304950485262641982883919471138014485006192878185456832088953907625817450207379252438203930819569155720461023908384970456594871319371653898920652061947897186987160333052661001059671209809859652902215847342849200639186385917299957139687218836151065741665178883064745090336448832233479998709408481806818159098789563239019413111374778208254428252505500909893043037708420978201524671515426180170127611843202201764764376147967144294300473302590563211193511991919935508415393651110916364513197396542364559974862923165286018709208130690721487764268460512795720143675076475675372576728327470506762754121012870861573858452837453760856337942684000675541893974963284850629873698394165952209484169251450073413229442437760775527472060774321944873137352637357507594161930362324279617035483530133180765536038517994598104147268481564443931822833555272471182816211839160221003986720247391236203133355518085716245069082595038061171736529919407379013844813572253072738106675345364355143905565371299671666330030805853158575792239914007519766839616487364093583075208025864128059237189283008260844459541945205346262768964851983047024104833689791599862352867001811821817333593001557063658050632135290238602430315017258580409491307039359901481873461413341328819009009151444965022455651655985842017469162347753285213198120326953254208265254472354159228306051555693918786984945625247202884486812999432138827927908564275056447109029447428923631679748235412106638187800904091807133720803055039435225286603008879454936197355826002913632187076696447991502748389463673246936076243870229222492712486230212131091131170411074477900484863420589463141402832201803054986815543214855281890388360865742229344918240660553582649947918766547263880897622047731533884389403350790489227825737530747117737112457791889676751614601785384982720660270536983099699783010279052574734756052634115218017065925834580703322074430883572688371432711881663415986246653399861659156439187673738521835113956487491969089509283587801626840140876081965254860793805114126138701636383775660509634780850184350005631135708085012445199983693121209067066052884779400747448605182477383342458392873347548895974667921938014384372772311527442887521275042168725343572282783450236024983708125153620319894299639561732252332016350737426806684187203386476878118717454999866265255952946606722978938875032752111609172961130487591033388477443072921154470687062520130894592930725688803144963705374269093084978220799768192380211608053696218989278322838158947751401535898312936936067717942874184229668397988342987403792973176714151686247788921405829297199074412778603232912160417852373905608397046785935380229906389910463353398602306424933663527856061550763858168543008941677670191842054975752568824392161923433863715107197395892089216169656153845502015608232594637266922076590888348071983814702896381215606591290748282024218363590021862527916700577405722128531468148218203310289323523320068132389495369038533263622918728542307580954508199179962259869356473711097485708640723494955047977760743940955147268023521466173609314529919001892348400162080172152673129851405898461503131611349048326813280463769672024791241697355611310867977981265603420817902013369178418150413595158552457256813587042280731393645672104558918854062889593508994628202940147156461451421942394714109893063032415644775922861303325129798838437479148814787696925442449447125839514907905450048555292851639443225697395955153067727538869576940908533299568340247436616699561704975068071944257255475208484578752752684225389197549120964496918856434435591244889260471547108472562810430241732186976282589490693101495746590627167945821703864093540812754892793039586632891700111089452216967324818298260305409061746201520584726600708793169903161148932105206584283743959809765818020109778912821212971229766189520772994565491615907701483727055914802942618253564937880690477257630906696572371525460512612029460933649202345847570834220421916226356286557159893791692976054506827581501754833439361187053677345729238664262868119551515940551915848435925963588623227031790917453732210409144521911013722636583498026843320465318521270380510806328977458191643434721447254837511676023032207257846214053122433351437663354228755302873841906560525862408504389223830674166922314419258912370376153445436556466336113791588321495691176946233117004411683225909192923829390139496961059639908602026051195892598896676456436060633725109946717813486735775752043884287514061351077570858207493982299795294986015774729329213210624565700526109670720468050250619316091715296822458195080995636714182553074870128513576933722950209322217441515505382223873164529127899077969112173369859761954888823048416676996220599916191889327706973188865931378423237070374509946438395900950363307522086710309805429319506961009813156676709137597722800111761726688894477355436720679035942348374191043914004033618081545220658711802914799435485558703453223533030223840830065593793104498634499610212853414035976658668474004125759313773735891892150197696096531740590887333658356972389069978868534470113300704747799833723165724245990945059676146394885928012547496398264839662432578956097726947519809067366872240801075895390757906885743579790167095583721565264961409739681645301541964636423606953913232912503629242042525134783534591404774834646258354934555928360469576845475828504955102930018415476674627286939236557873042688132655237991578713355743827688293706077776297774046462055680247618427514280739991326722120037309466392733648092786197967069527191354227892257079570200609126256093847049514089997035359148346942500959949152833557462739450402773113325576451567493087028198497620367853640845390432357572311454522036976591103133162529346623657639631594903376530163640895796551345622705470960496096510091688884091009898984064669255381459085194745208483909497307414648713773214071917856391121611642365403782524075478589930565345960699871658507799102390082707708895866713038220376328821587070819411569529419930146471783166452126392006992713723424992071680785726104347580902963182137512233127671946232124680159890458666245733834589960740442974127574700028501284245101309521059630053521586272038912102981142892983056576934858389017726866488172226500490379930400397836090850802351785585994450695029188492388948418111241517952118746059412581215814412960970898179624792231083283866530033023435604607456836390261407422877429704864304519192617650313126380266567826065319846848076515963958104125925443875211136212499483468766157950655007652112710825051325308541925845701553113981791794664560249742335695034054430264701118592800183679420505870919621978167494554412653103889055580354534605299638456108743089091198845764665236028814599478688314993218853065410779908116804810738142589831731100983222091252466186368402824917234888751528539312105356762285227873147607836929368616418751652660480732114340724502210070372644851232355177453059003012957646577479905963930526372205879095754045053637499421808551052365183653100124428719552893994193350499547712921745705098965970698884809596303715862951732123435453080794667662065866064842818631067647633004791304550755377335752923628480304880287348185976718620686334905568220956630272696595342374365913708609855532402232860459998409493915841605494131665052127940333716337236909632791779306491806265551386977843715608310777014794740739289158710110833769893447569297226262280633697810560177246818014461410286174792689127719789751967893852114941772257269987041428666041201779406427828421771123888424973639921370563764949180964692904961607241307079501329788209269730548557102462130840140067629322682667810295114760946785266453118283034833441851885583027806758577625692871769702321510488004406271509723955315477360301422642036051308444197797528544241122506280744275217580072554493624399188591482603900335446537767599884714432412927753738381414552951544926935842015076754204404393825252144536914325032047226355276114625966882970256770407837046548200675740609154863820075673215852984575935170631025358610196983804702994346086532022373594969159239957930140703932989216335733145888107271875835326431784820377268924239548247977567044130519733981295469500265862080654869022942906240785004620570040147822778598631116897963124729078891080743016227981049226910134996140996095499661309443204078377850758190150311493900840601587952493280064258868926338269045803527358272282670953426796791062608031074061328382912131512403421616804990378785447652827637410394003112523662746415482860073382069603824544267679999132420221974767541133085408550838207258055364658595160390233997438734634963132364251521050697910439332676913521500046189588133817317373937366858867966657103184490495662925429721394794524979638970497563639398217548665024732319088828846192641621432530164349124594088230417434334881424524819926825597088690210939932653241280244833027456097223955719513548030893015682263169861658375412742995564613717546282320008649778656867262649936073896792751686693414186890668952924613636364531364054504330203602283162584398409987266351465757036928964239884413476703358127732619319218831389438146200152463158212599091327604484779003522515888779641536458848629550641922643890624162505807072814085518849501706619315611711176105220701308725242579702196915760049029923088673611222384511019157540397363143225310124418331965020191619285726726745251801345219757922634486094329474599735843182558888055301468096279950313415551820251650613264707261663308970147646444059249060738626948020985728808990113297514793179880972150567689196661719269463313051940139858500283185412192404439514972618390959440755183432981152546495271018209945227330434272571354350131254116921423839612795678763636490931606520302140055808754830272115555028925875047064100216712020438204855001993319730960122161137642539858028888987787553664471357276495364968249226768805050884852307471450852749548061093457637841783837476656460101016486514597358698450025362038535931080626499429422674647409355580281178646809390744519136990305951633153936777008733860904758551602335783985608875413049087692882113513385303928477863419905210333689936211721416043948328784883637986704550616751502432582220928904469850762927162001547707453178813055559414489569090569679846669698406206501187968484353204653948439786157281665994181803078996348118294868646392067615443305560818100145865248228301929526329665264703126517507472665614076317850846351816167405007408220506249488226770378552856403515371591243451858143826715605403043035514382477236464489669657715095395990664921750329455564931261917998626092164261822787035113336654244446666426193825883761629446797541445456534580885217608170328882890049453103369910274992386181815478213134139142253947493438441767478994650052926183691922479553563930669047492811308097398198910343479910516022209491994785873266435438140534997019509871356245654403850359829803237391797501178158001492169799623421863158435676680334080735167756001397494589541715190298673714712069222189166605155693300801163992519467103251838170199658237151216897752427339021125336756261314477499751188380217163895914908643458447448777100736280211720633721021108136673524766686653890442050001246785082173117735807390239472757691273099733018315917492028937192408087971275148307419272693913261901749559767680741805977506991574985651706432429427595811003022774436429844116737741329001543673865536985032517365747908022592435965926916291376689840582080637573297649339632354014522944482675368378482402528298964903111263147680851312897263293742153197686857818098314507283454260603793645096439249085609032268714934311395579032319353474760127376697516475854958505449968467902418466199031079410068150467607403769902092712743592797253962597752232758752555534023327643773493384485889093252017551888055785671666785392677890027841426275681167837728008803456415857693740614124580058568434654996250344860023941434913441311530140906104684304176896631486695726282278753500195627753102591350689847808922572272189906840568072423337356098779587479767940273924089797374623631175257365007977091123972873478898818094231851932191433610708839001829698443501969724917598603978126651806067171095128924657825855348404862753430705107414047754500921211513880564541826599646033856249093657213169024277020381915094823876504678691594863333794766898523955192039624658537079936857161469897077771072719773636110854096151326111282032473095926508359766985758237117323351995299878836513905286039824354604369562091461237815528013934547094959639263568846113124403256297074136179220206595056787298398807291612810166402240389563181237587789441736896234042114440433150670520753976845173150725514696391885263068892396578402987118372366458164211139870864491338697115794487787357176243662907780202670954772238062882005461075362391791080709825484518179221190629255193529488143942727457290257909105936555797537904343943545472557631720937607132413694589504818099259741293243201870482228411543609345780402921767506868225999855980297374912759290195653638145199404743490298734365149488228713800927621149135198697616238818263380854700277065192281436176127278769813315744807574544006485001106745973548902983440589427918413625092266222840309937624771331275768908866525131933145132356215061185608371512680291322102247588462349534945172158659377719642115849656109058480715359341278062917283729672495820844987872734326109698599055816126904379727944075377275006097196616215120650795875174317424050179082115905244400938123596909578220511492971939005738023864426362861978260929921048561632943690092892345799044922701877713879877288343974226366150093895618407383565534236150909261909612716137582972015230456014260273365945750851775793550822642918719832118158595049786706751525484377225270264345617589756065734936529929901874573652188037646735574101178067289797841849868372695884118724759046578256536790877063591840153976609092618972488224284619486017875098880345661986709853085184841562508253765809374436374760937165296819247125009692582955213163818993608533497572291842320566166982824337248977284623109802370849925423772077226645753039889567848926752353710578133764332526313473403469517816873992136970975096286615870927372486757614418818179225102997398651530372518554457781564520329922348462761437878542781399779854351136280429424223416003672150452546149720039864893709891230710672663173346741220237340779710690838288724182639643912318966733882921135562244990497029647783791467863242273488136745101221386936773589464411806718637844269080578697176376385927473772278833325017797734367796069528914167068320898346805871043047683358075834661335530468257982051173565109670751237884370495677587880035008995875368353772200409036422104883615926587595218147670352742762371915687788655838186256181712680818075131323239225035231334139325724623010333170178826583757058711786770921486241173691147563964330032924105472184574961927835763510416915600558120828793884710970707036723884435855862399835728520853743384555444038606463826467342044344763050457370428590448686515998708711766615785410107632704957244641190476619175226664658293676473502325034028028838897951898654581269494355663563413739473706823951821748092146319004768410681619109775961846554719386047830125601314332099407602746342974345163816072273755854181428419294546226986431026085366795526928557786780893044985765697043281218298706939238302650233814734055756183501646882250900790731727978993891353086780834516103119331262344935010456360972353255160943871029820576097826517945560984216806938783335955821077331646332216755340388515245198010363724479499792985639583095884538463434969153438076109702943563264430157965996865759995828414671391719711649965110372995470450556494765646653090362473090218472530427025789787757972013522558131244274934141822929337980787186179318342426392883125264474665456941694667384305430238811475693043725909377018616481552366093776363074959106393628282667999955144864288315301828547037480056383433324276808185814082119449322379608688492472493866410018714924232279981366654247360446945599408197844985150886836485194479504006490407544787167162678701866602467998940929958620668104401434907361784636677720864051042853321701705351639827680147181845921408360427103491528409131762249898828849721984115850176436958754125914393584829489271202676547820168440299500618867057842380653615286409233949436281661810386164400907296235384941617387201985808706599315627444023765164340875726221376264695987153987956991124286163754734336696350147313219398333862527151413368798748496181766416937649268011901612583502538103298791743689291833236065481380983848470046790367143200409918156032222401473013980382218519159429847744692082814751695304792415061807638371429910881604595952517521804604089977887464364607539749059632603947820090220465821548139378611258365753854424336267618016259364513127323784183998373303975773034171336718096039921669331368739432336556824184280966942446163338820045743366811397265464792680935243521410847248889643611110453788470610624641496527965996816217938777847794337925959166623438562578017023964312510309497861207533969442841746589386878573508989417266304108004039684691369954110786539383152184440702933509284468094072777609646790187060204469218318234037222508635704104060947186946620391702983767207431347484385811810579848309187734099662753164137690278429196620352367301017692731446706193379756903434080088299118935897696899867121515677759666481721698733269498531202040823706862806870391660732034427163110791668664619581410687538149096811088690575544445862608569334754379281088292555814962455540027461452353520653042735228725489486717750706094677308593898195182045659688296793670398480045725704683781341550214447058092691930215745527901858287452234931707093117386053702970830355611423240848331994029579721227985092258958586916068656763748068940995099078560079979575409324630575679184699130722527495367976563805840298808337999488419361302023949749758866995728827305312846669330848706816467085161457162245628458812463745225700019681258659054031251599023553261654161287897773020481571258482577241386639389471692435879618019815890598811548406179812567381993183228705078488039568437495760380434089461372971155904359062667769055447224221901771607503006342217957027148342363360220030726703486008246576690942761157042067819832186036792002285393614298850296642671412974991500146305103745251090419670301856161437452787512794708833065360062626874245569942852798758942818265765928041466866597220847010485789043342503001170161706326029867685807752348072273363769445703388707981000962000499275711728362836824227467970401430243815242516629869790792519212312557255465260000759650041431064596235129706191060835634170128333701883797327335529590178099226830604168960994862683483371724882516996197276499512279062016649714863884268847276885918631733161195853906847865240230659640349280076599228391603401464385441586429460866601356173789767119932709770700544112700713808427489379247653266733471004759053633851196657673133418962959726270737401643019404017153932856899731880901091977684639795430849453838817079990919681606071897983489439942866623193238546731164895158084037762560687681144081884297335410765703204619642340535491888475096051525418189983845176866489940961704409732515858356455381050650644406284816957060002060308352608093256202211550977405362137626953550207681518696715024094922798853811452699837549186884837698559045874779574117841421897506077477392192378220827403282218027909375371285146112065175851167876096958857408721400939365525508902828563614566017335691483719605778605210282087534988635032737620016297978547934048028427440802643060951063903786662662800583820598126792750026083137174049983278879167012883107649359086800434205482408372682761209440463906829483794811674913281920719792507947971481094505891706608801023197807725518435642643318238633565007133897694010257603181024621483143063248446668363858333899086002768073666778732392277948083365748853812172345011803313227273804733709122548871865207669132854747108615412298312893273125618458993521555830461389493961980672917730646745437593563143399326235617052556180338762465275442260645096780922695734807502220571616555955588835652682849377349044061990416900071647840702029393673962657420699537659615682156871558220916867046295319066177921802993750683756352683375942754594140683637008805874899058088010719116894827875720935994564571545501877306607477158822835759348022969796142657450027831786080228719866705899835284708012552344059914085560889175948545502211578980282383639228683843715536775754736938250904670742921375425806614936618890449581713400024430217374541376706392588333182679687744268759138108749328818294206658187432682338559291016211034378053090525124683790509461721052378103404079632267112522903862839203765750264631445752850205668588924513127947869435875850966010997673074424987585427003682215434832627460321943666320483742693027187714546434613536268713330555340409050848078133175970141125211667074819707739271180601806428780030191655694952252653804816751872345471525635448847873783786343559327995073333210843402105127805123850161583329792991390764232565111704652605905600035157598594366983386870610480436068029363946967317885807974755251583416160781000662852893330788405368252081023905628641934622616198021805565799308812090762678858552527987072472936095718461267052211089802335879975182202833544819686210645243298715867945071115004169200942479009713509048476844934722428560020308519798743422484426698899507174688034016070197617095209087286194286531213614222552056935431773298985857535171079691781497370746230315610500257511459692968634491640373540157501436991587490645285943610680091263469747713696710633555334876348721116175361206456086285837683623719774980293005527015600529290656774996603654496813791679714110996373840768929399661034475928590064025732150926956965444474051474815322192007557656494735367130696548561999548914881830170165943250714046532909343445634074822918555633276944702568933098419574742052113322564443297510715389208142191414413010748135503171668467853619705366504318696015731629653352232389283225128300450026542915758138793906909370002721955720853257161904941205998555387505003308268926696565573537799424260500597078468333170349100781713260233740627552783834029899482939202121373637865891907144240676904602850707376362272877537975101891488619986575281953682222790638304688349845724329859266017916876869583766938199958492163356855872062188970890847627095861898026604220646953380529182622287137758738522687653163621427568325627275679892437317290442838084679520580970514328173992465700760277284786294558051750534636249679436870964335367394822143717684043151190419228260373740644937288311494801646654408615314551967684889710515385102750949388052256330734558379405475323137834655389267095041481309916473334560083903274720217888548802848046812886929128135555551570958982257326836528198230811911361793590460858552561222263051481442684648249662118193880309551497789672372710695028663753963760635887236821307504457211357862019134577019947517514028963156623702455937278418123664038925730804342577552650404279966708537026578867547658689435528610689314537375935152280510505289393133370540532129332330208881525831266944945187918217460574939919173202258949537960292861061044767715053683601879573854962987427455275518679626328319973606514100202195666753404674524597312273410498470627540656177340544092260783680512331451317041311740925206620394345133799286596972249760640181387675470730436654521017557444015773664576285836068399265492399778909378632705367549832566722880707771833915178524503230492592256701394744902409752815960845211066991955048530392798333949109083662488973411004927215832306528326756624346053294547612814842474970925299276466315254065937872406383935891806969475193251374677883236365834378506961996361556901515044933962324207794171223425815423420174549434569310157578522491688911463361758646377779141580539879972216306296435895794671915208705011751716046827251546321356766736133659611479947755786497459396806599694191057043566455912778509005386900532623442818837615729923548531475755682924862761414394814696887887618182847463828776474850843759024203099056877776997008528904828810129258292303673329417607317312513949762894285337624903890881095928766505530041239305010076997179916961012689229932716555730656772024246827901668797506625915062545737618281414762668161139617279767886471140277104077454461977921729675204867190396223861992001000813498598309379368923450649322019636159135036029241715902107808674135109413736730723948306325646130667849304617586628166262069873204275298130618662925577623189661455055181427618045982412367805594255450156491334158782967392109533305930264993556949337440747293501726230594292042138583883279300034036527525695639505415014526372012940238150702135870619719321626499608140130148964331553856018752033681965459169331356558427238901701724557227174617936848698476199668648882884242557072558437849347720115162908841849505762752533237904414802325465518643438229665827834126354502017715877223128889408372372854153414386626651863803829102829056909032358293350427725104418663225600155087734627465492310126498876006848421131514080388772525180237342365644773714727880664675523258668814958542543146657575026831210514278655250822836865693111168138871662046665273392550335509538595670704739782131531630610570669185970373272408930493653078807661177226538015608508204472772636302150788770397066828574084907890923806401840872062589677133898929983403270938679284741951244286096254712470261661743169058689361669757882548344833844219437631757297913902148784298827919642343017581374729753855723987936349229507636579163769519195396767830213776371998242937453991110221785963050552552781421303708655202026312082113737977614739453414296796061766526520174518847234080017397822280921691045804557948890301032220709653694877437086004016699490778443505421281331455723190369622422255048058318305096284197890409385580768261726204811335497249321718815067314500259203556102019044330215130854906202936249185941597840238257058706456950224346614558594125374312997906341115053199063871969880605188494727318375545689682790115997910502612594786495712774100370330405620054431248872512952753463368942004538994812736305114928925732030498353753508995607838202483236278693471613482615980601151216739050253764829802836598445297826553009601520055615486866608732236529944027978468235564950912050413780239400090912129853581295675695716430709510882285070379252379605250679809029514598930308038846079693956172118354335574799537151956145768663622791174896800449238178840585731431216944460230034789674771149197416796835219893129497092432780373629274489884238146023174817097091472710604333203329586231558601994983393326131790787144819259746196095949306610572031928493844620524053337294821055497912250732325701200649248876374198991893919953191271602262390676575292107414782507121059246460793935525945929998836530983133654950388061208073760372618593305108397753737009179607130843860452458951854516554179939406208506198081037265379371033168834038328287591959844995900843687599593848636633171027994722651278120672835187287223961433221903597106771691391206663798307812941588001509541306604304632109344622004103670386400076574375450640977990917761379360606733023807193818613319475652965555586692833832803953849769982664715986291924630368023794822625233437800859857185878504608863412372058775396704607243200268920211600481625222531140723343213252180031177116878986177744909335769394765958989874513095720722115507385983046855290102523841746933151959668434593123537293834354949701115750487408512868451678347739326758040006537672501799670628984489623261933330519855035727806767459441344194244152577001241731623961944522138984981262952474215992664724593828042812453323830053677868298085596019524387623676498365378048443474467325482753491394624949466144611084478935616022939067727359770062476716132908349447880442721515810719115716519766851170278411534485450973519520845984344534629541296980180303648282655762081224927023344661320502505604655598308276986265993453569945701414188358487491722991797391967514236942775599746222660678239909812032518419737406166694590833986871885349975494192156511723687342839673542331680491288731555663305474821426581107360204805451706518121949598842308924663242704256925206762449695134349831664140142958251626691396564619813128414216230209243829023759347999719643707605449912482767614387884758918760635936368720457680601529130435277572174151497699105868387132964720640403862977683386370626418452192497589973157492250729566992264969814091595528317521394547745598830947519195335310600153393168677878973973989182975144751692794360304672694992962681200495080776755350873549579099985904991401401016385305208606641105169261565230448787809444573605529703059361004523357909469295980141741786538348091428316459666475792967599280569461959108729584398011498414468446057161771759186026710337714109157390568179274228588914183239512641635403627659989832492712339749890472790255192512628482099116971065919459907542573320117734892847663029992192080045152502328792455650160790360408438286699335833391596479567403480775251263889416941835046921468237629420286994772643215308254758832601731153892111324188483858140147556189142644741360838822081266480792709420666105649655699512676719985914748738123962403877149612056129177624713098649346438589483511393252011759456764459085240401927440344163956133203051037620565195004372077752017954714484461376429997218872747426904513026909544334003399504992670327462322896319769351459450249433744168229018323841830678129328453981173849715919658864644768154238813859977293371576585794754053494690730600449802339291723461484173037066428437674065096964995472834566012375551455038602433112480606531491250845604564986558013861325476151631798645306700449267559554841804390543017082019270478874297320799005123116593913491908089679592781548769728142670949377330868873527580986706055561615663783856870367505201037331895198691669053048925973902164978050816953593379876619866831654307159104397555971762105863673323212053088967666803075866376217695070849904049631482500792633281300908618086286231298706135131950205665498487847387090022200257621409031600763499307524929809157147023727805340323167308690829537883570146802130494783297960882088762682661161032443323873794526735087240298059998971176206851892767664866679804188704128548651747080705655166530441348363086598636892478353930943682279773482958446299840010649337710721445552476874972248951841971543538821042861815344941277757996474244393169755231349717168277958046289737667467771918784312932162284290464244476100706392299687914045927744838027311349154311156507635221606406953873716248617067636924875893130120586973635728602758917151335441979485735194757155003593691032287897985391772297132512751595205620544526396551581389409841190985573190555231626822473857915550155634105429110391436899475510441245993637880778210389266314914363566189128445273561408728991883568753768147279331236541958339551639379442877784875090713559283056268496806899243373447334654533846123190068987198726483337562257806859790148636543466036867759260171751174832708034264218262102196252675133271850653106245055595731482758262676419720999764927478318111779413103578887388577239052122237818667175268212869870760504065959098900559441250884086925514792071446546124586421918227747971670284249653698228502875285792264007983517868139621936245366953837882447529139733662045946601518786124707666737455480503069581373580160157452727199308503804886165754710285551018771731223975499380621982214276367932876378395167892894314009532538491191668436542208710178477364037060212070335302241135044127113367815373650229639474840489377874629595702182044774887054014579433349881008796370345841962261563337515195682003393502538153581542549021160003697074661984336217958484267239878963963963658240036714358189374222403611003874813162317894988141338817863347526828694928543170683524781869295834024811173671190893286285735845531887976938055962724713047679181122112872604945166082219275346520808823320366442964734830031372174945983965567097950711516665440819303067352709407221567122752830221203362779300604055052988352327458944531104209860909940287963413503491796544177908051689428711894731589572098549505549292334650246342183454798819496453285635631325034819136296871678143319903533118403294365868263296631010795185536116079197172389129302037369759509595407103810228081347064253258973529229075986720448593817387556439564252664647625930715011953589945706506254658585166362721942658663856416581623371416332769476649256394214463889411947232701167737081647779836447692967912135000550121597994187296328492528109668676248192311308502093774657306156389821920212666453526584836746136103643368447788860473869660604034170715560485655554319391749207995414249275236964099727721823296171989599631026628821336620870005209053497123306844006053499884681366436168133866758807580141444729791066613330490122475319281218729403683918825922765839918280233321568719766852242177372020722589032667335863647560111879532941654202580123764167803529873316007612278482146508234529068750229955369800419521272554516137914203856672661587934832606165129834049124441655373869045046109001169214086819476904423524435718841338501694297703621156171504987766788591818433442809767839608343604151908631935425968900060100941020784416661891463352208347697177400574137770836658986339764956304915104142417758637018648352065809369339322463957696045026588012730948332016224725771425503056001108800567335340020734932891553535099742974328994423926642128784769124112893184844563845284792226197561032176287717287939441889063376125376159053090658998561598329156402864006822116913024028661685963299461309929094315192384342920142993803958957573783095945456441755850415727277725864120043057835336878168193423889735468398921721131997509012864964214678389456452740967659266542897134759511924206343286375629998214818713049589171258938297139959886017422721771915912048157459175091837302450313011174193344940656741498862481656878143772876357983800770188288854884125115590005472234640940215190226215976508341979237170026539021324843563522232578143384455279809289654616299397461053550747727311764981023161697864479822558219087535257587043000598913578923211270228503801161128361157895329411689786859716704372861158475842493044217355869557821430940400936110314208860137516161620450572449455666178330283473680030061012826816977913057589895437691582128032955262625903473880933159661597214876933247300638822452608041259035915850597582933064594974059494111269197254772991456696210946417492719472566873684987837760546901770683815572518889892873632506596633439451356268177627981455809620849843508254458581334360215030417962880088278476287964719852391074743673245444933406382430624406106203286383808479098547406961524095406478941959389440567917777645104855119135576261660354384063459477967646591466632558941695017916249165436734120471809127974521656547838691869175529723817423512985231930393574162361795120608402289401888387743481269142362154925038324726717549094523073549346116706609555427076187457808848732726170809648443254806440814593132517939784298058085504393969518684217774132030976668408327792717208720735448847267845090479845321817167704218756284253235591218384073457703875097071957337497263107446517772393330453063532288227408550113195209143548566396061832463318456707039111339240032098257512984454197379470541508707212700057811081403384924625049357725060184526066662681959286370772144826294277241884925786756313957122199520344265803886806581841464260149056392328470979110304327352413060912051078908009717573370645647041241229915975680153803058768856542861690295883936989491139531938890568875128952415054216863362423609688048198822800293204866397905836187773262919161722309381608505725891349155468940407819199637402991140825219352310005328868093107212769691279570980306497451486948647037648063509088348867891136818822999799384771511785159018792500236792663847156506543275940307986739944790670658500065027802367410338364356006835494379405247231007476292358538680651606748178240241909915726003384401550406504431570294356636343352215094171140242412358550873124703498857867181113456794020277669691575695991128019976052238156291442521800828826166934011546993882549055457995865799231204144063466544766594526308875125530437493545189175030926715210029184439160359108434398900144768146053354468736565375322141604288933534700736584921202409589406572237879935863442490531390909666580834425346907691708968636515905276843751868418576823478791561572865266850183888491917213704672538548487236269287500582801160467679994794975100486140469438025079922429063078694305719817276262460616029490863832267524774269755822100134228992939063947722297047773006757471405385317507483897409479504459146975534915282087182037792938980918089503674470039168547093057626115974691059676120720676906229527150571010886132692669065816116763334074378633607743939121065830699296306614919514304331349022491563205560850938077414411784735283254699685443157403327561391276838229251624314410766745568650147647826518167258424344790158329140140341038983961324028038079198917394964202090725794898606155081970669776169282012589551035245699285219492825304910831675401734930423001385854174003350081096022918591052717709634332845022360391845201299141951898881916143935744269914649588043571103601209282560786149896809055044404565458401387966387869580505277569307665428483858000162941396516011033325375287649764940883885193646414062003113525148820673305927716022211204046515540099201730871964006969086713280165285323733225373009031565766805290205752524635754120472922675502098998028948342839555978862122404939397287417457625359182126432978245498208102255665457728164994947806560427687638814845821425782353270204548670212395149196813625688455295712864339795390774202148214916489316790878728526014510702279853973869694474093681699668351090950332494836868538558186383693104037656045639654067423634666455921748980437141184252926069234957180990376590278456197033572027645220450948831856954208630803197102708980983062568130098876440970857293849913696508425958720505384934918325716685294815021707917198987319819968327054417483927927984075430403218070519865714827246241828596234775971064283422850132239399756093250326320576395045348782785131936865035031987387197587860805143897485148362024192264179211961865663198247807303634004474793189988316239273887002580859385208633159063121306407524477043480892288353934153988469072840143682840618166947916494343178318341863982457855840834372813055934412193847060826803565911699914576880444818685111478657225667113266660667342529588841494294940877535382963608237970890990413998087951675747489828437704375689178822797474626581911272976381573027549260585713798320904642008523166008916688044865423853388795949631444454222469942792076540036928865704755970088655334444146227720849555390632126601371939441668828927951008168134805373806962267379584079164967414350127367021352233654880076149860487795881721525017074411462900014612242090097182127226837220011714455931021566598453133149639658894138251999827778456448547601256767552307295071740933676519197418138062130333078279746229442656929413378785168228533697439319541617008301369060155769956448524271727464919923193077327560284160728650061390441532976667239094494522023527348356050589044566520321159247304040539793045942552895279732380120401734887676592925196068844794693471432309600025643382500442526181423262301650082785879659947656154610800502185649750852969655416730243437910070375790510105582982310047195959360152701945813640683488797749234909877163663170344364196147802423491638513448602487347267204181183090485217042318804215180541335315178314345439664853165286809843962162535324095712716607024630065867273567836801989599130585031877190434128611461319825462776425280414635391415003772402247791320558242455153466000454741222964322937917607184111858865479291142352591034007373818068582243867549342597542281667521983098988552838229776887753812337359625309487511611902077455836139623194092037398927690522170646599842994984891542373092096569564295600193577477975320168953104851475409349191783327945197041889986976607415596403111765035781366170685080538345979763051883241580216272771466500876787531489452012698592661656802963059118237301557018014987898501412936393485230968853855874879977788117879443494883362845547142257872789399426318552980500678591123064448956720097546486451591549278642901186301141588090811734445827094625764854397571097966858429801969889534623380926974867232973404009290331084468282945356250329537450694229274730217250838326098075592706450537423892565703796852290829395462136651614935677413225864637685825938258225615585036495032108376066266834504885742673440490699377708531127592575528852255645251933349714836606267936365095589302018960459643777328820242286140039132349382664953707603692705587746112140670144924839424354882702443935852768107326240809011029749253792286512773731780943164958362380087729225181286456388189206063134864236497175879830110479368488169104173082500161729499286656102694926019784869262587253735206782534390784319819915997157183464567329999694273901607723139805360111476653911864680109542569924643037368945872906659454585533757416808679182769295950900270175380170862433834821494477755211596466244367078713817761364750460220166635133662144872540814259396324306050272935629357279279429355342796154165241329495543934936576867258986390675931997803445769723282993242112863906517723518069782446362390582266229029058175160115761773219809015224048165761197282785921663658900312038641678178321603877898245684979093230811083105456994241138289777005349887479391770325859265507019270152184489571682533414242242741490278970855145305557563200012083563155576738229151783625312507086599125110582892944753116020796553737666941233853064489548025731174163258907273515874098188605422651740695945150163557386835452963199334877651990489918295687409801174634811168505408035656320158063425443570290454161573770825003001532919795318843932600711682830007304547332087463888766880348923590612688967757164078780596756982164972064443201698922276114730488913815135465941897411755736026420004071970635526100446231625216087844370868716694389908092962000895264788520435353317475353442919265508179066071325173539665644833071446403737352081426950545845150856475025273414872366395139550607909353620944390249828584236661119591616124242334543357405426650293510780146933315133934625807484179397587566672700092314308916390208873682443422187499821228700805774033363625566255660982394208191313314585138721890690378635821993959406302140637029337559971059755303569299456721968905674847508412481516257207228918862441605476140306089616688033746084847696567527392908845277099176739040665224680977449106187630456911595862783423931799535201086164454399817573869809825013993777143342204874874153517032912974638311363411305246301745835834062182205842364785494273078434360765816500017797905476505154063995180868416320336275316374842897169971088478730845434328501260157563941154907610609789608940476354595071512981725695211941918669708774284347818007098708681680759252361627263435681669160003225171243725362742063403207253649448185413193923085915684001769559628431414816959781965288935085729284078589173968134083422222878412736968041451943464284154430365310017413249168081845331407372321917201526201782400313991401527421200505253512732008223717916771697059938468652889113945260517945253348377394249740919203912604270262875584918883891900863484204194933220747499453674729800817136352230423541266286532552622431140557311832002597747659433664823602342644261624721206134691086345161437848575661685765137532957379874660071443269728375908936472343903396152801635563595119269831532497012387127651833359070250344341921152706766388782798562775090386841072363219380822693325821917522299407010377984965833854726497527669468044974865155608748358046472499916867198260760400645057169366199607626695665570336068668959803841450031205774816665540234014391582032865033589990340823072890102503946403607203684571621354138048472490784988304274569129659980885873074177517833523303831810614228827049461273830921495349979018995496207734283510454539125229315966734550952049074126481955966412825069052792612416742316119303432315330698091101843384935031355455204397269878414419684180538538076527240737839098794601322117776049727685577577245842861875948762557001715332534513230776003382574187501470431606440502420831638374472524790962499388345564699346633936081249985590080347327276390529509227817176853518053666187315216471822374833246767431354865226356473986547008428267509637785056712941407923978644007578790449188914822966018925071409141402297244406267352048770395470272103523759795515389329634569860671084475443330622630370162164241609424768277029459906273058039116606993824186287502963212961253205107810761050409370904149659972864807391630769192295828289546215411563894553488375434433224215132890478589821353167775076306009504614513604145180832012366224286038613502233498921448042344476755454932475172312922622061128180666233855662380597496558477551197759740870144187462571445886822991940329924484783190824633013711943085924811626544539469044891469597932177287387430376389145290462844672402366710196415413381539201228529854551744170560697768373871871474574834863844459765416255872752914822590203693679761388148579736888284921718503246697073717262621110910389389946875938156842758186948980294926913084761974039022660482573341522672826804421405958065099598797175063351593274582031070852260714220770202245656183128537535517470045304512796008088948532683151053887231492229751025493906398607363198192683245942279255004335883627145605333988586787765634714682078686454501762639464327969243325031145843831266317572956480407226443964123479618817514023302820252610373978407072020838357089186402415021843617704547252498099063326431036216223557333158912477493740058426399849231003867851651140884158919380279162185167150211241455500611780090002735393137181738348514374909058541924900359423018644813028366080160766389775270895035402106648987474964369616312355596284214698217506949966160695325940464784563550590190647968490813227666487781207892079281060455967576645172478827882895425674434009764475844496100415037147416811219721144086799709334245980336818356674579678705153253805055805762527300071213474715184117978782514621788602923456986803062013193968131797790974387659787878310110231250876255922828040910213695170239581622566915734941497151616629959156509315319524094656528403837047198451031596034199009623288158541562784656722600177894592591381857961729664952516910924331807923986839363118659149341515746056004282244326810576341116440656524243536583600253096195253226755886160327570908376152366573163124168256555774997354330280938658720007620448308353398964089202185501673465416850654979051992365831274612334958010555124516455503077112025566460945644381778872000673297999200869453830405442497220249814514966796957555608926341827667399442230910003626744006663505617416097728774263887807493510172440413329131086194498521315893556904259503243399199611573558192966871407991144362303810617627721205686896459330668698604253512597216114556191963313719004263804612582425342971065633773126027631495320810174081276101013444026310157751220410093286043413456082557355415096217093671204196026700851095771688425213167454567002996667369022588579517203752745129206932753674052332707578778242719706169580059394270130522423220363817196503752855273639341069329167533660029128027342876908614101239901070366646048151498329549933031391198421425998663173285946000136381918021173109418021522033105843005698986122569304880139103720864046267339338018694371227378589076942102669812046653946412601540490816917285195481037069548757428665937344861816747247103880321217328473095020086202240702615545503475260595319584033779056476897352586381846757176255589761060686821628632174176031463723626167126014120247247745589706567765524707723863077737374494054909406316310187449908506425858487590698531957874872918064066269075465691359876571308000113050528860230055817450353580013273587609292880140294446761295064073910858972830190992651185291709385239779956066765478713664690252085892947504574683015959490490252900289414956114049495102116533302791182698920197432131456496289293057058866512768375219363198508290432576820732074563548515145338496480820674231451323936634276296433082762770038823041012469404137687099084654054085422199083362012549036042359562900552420592253760182641146911443627350940081001668253028210514863681528349431181652701749294661706486408414923198594546568984218263059958433621060631104555012087803660046312452802975814809337614508031246731103882372709960659675828024808503971246629301037286097752284166456912252735931584073931037171333651943104550749268103340884106229510959795261460290372417888706102423114670869758245135157653251299025822780713941565593124373750929146070820188166646636808728170374065991938868833428259776802642111633313594243697290914517604374633674688370963394554282052382106125124163364204428510892495520601724760764464502056455851733079229025500862936675651416174918799206491128229308042210398443540667706460206347216737387711844027157495911140101452930606337316107891208047212866130867240209669095937835599673902759284722833443104347201924791785838239430812199685567917223026575034036549543930502496602849215530925023323224963066957498143329542170067387614353744680511324030183675411158515474162771209593626959407193479571278301537799310849837771757566389320788059853846284336343424311987428799908834103102966341575661025419001366933880774291267104897710898136343352620557028263295176860351983499164484284111703463797766189626112913744095741191365863182272076097271677041973142573738409402914468956488856208815998948241895437569113350787641578450038443383621280875030017416321548885048691143498443558588401342817721684606729943790815439471617150047370130125128393870628486616031980593061974193251628130070268680117736527396218672926949252808645533443435204292279752129122642998002697970530927425981521772718546383725674241876002890637174920715865563144130980224417122575111606547482844816363779489353536834215538854273829840592516886162307368731373380267967360345383851728381476178159111117832087064348103090184710622804353187793132848548582670051900478502137371763889690397996349770463511905147512511727005687062359338208673800739648683420968486393719629916265312646612433300109598791302059030855704615213607008985166513041763752716132409847753128098213300587330747908292123150960377204751475915326725971555160592204933117211664987284700238267799878010225447454845975574907060935491848537359369555042689591665404264363657679494715509395909477614851541935620844299990379980121558046964602256745438257889150683424251116001125023170730476381136618579742730620953149808501313294388458348749361485570139982849978570890813020993103406571976956554221207274218130039852743847767015226284542804872359747542482447985787152898407441701201278219470022901833424655502177190241288136885536325003848362643469917124125568846243496937863187347028146264564225235185562528025618227955691368205493125268015646614786280392715594511264854877994213697634590830098105675826778113369385440056382900837207287918511490181790012657049880305741816887409431233079998177540014751536162677600658586472163124854288043911444685566630722799634801315492601819429574810585604402935307186254800938968509876050709847290952372546455576302507323004505781808398129194866124692674907369370714979653706018577411412656324575078205995850375847348618152262616563388297418827715312247014565505945705919984004985644589688313440761316668843165020243873179822410721577176455243741936516959753786102501984946310391760171807462329761353082179811187929276153746197692581689907083010507752340341347941792560341909191231767146640701538370132742548285946322598331373587600603268385304769979269348723700711512315369482590511122620728990956011199856702485053987902066981980660871614561223775747949494622374240956500318445094569000202278192858260681751286583883192433175171719074147407092570219329823730604995362670361232117184767837100833736391204786061718388995863924522934450888148875344494467180585200363731413752602496832214641051528654263544632854558785589988561389696743316597171958770422400374587550768038413701749739718453965593476411478672082060321514958007443422551419387033923327512975103329199056383725218970456006441546086410027757925655631160554966849882034533015672004648242563128512909500744457915597634416935927599338035619029493548726431905529609684333255368064804142608310700180443373982800314814710630591016931460459771874386508028652393302436048244765657247584876337432779409346508677454130187235614706066882541552979694571680150915403290837964114077584357295137380712185458034729786575617766892328423130263129657999613505471061233435900106288597678081662514088581848678144100035249383555146340962151519763805189611969697279277048792321878475592891094682537565902432538452191624283776494919854067009209460454598678560708189569673209305116045970548236837965494472534064249787766140392012104421574837563870757957812136066287110843594711394832234656346469355678270526924974355544489168705690174483935470557029084875140055934421135169268006033418746103054769569283858552207558415119561110903460553595937267263640462195408445451012275616573356134560076577712108818130192499983209853601846458893634702369406447461266968185371379597066033805101870298173195570511512039733007026249867246650674145462304826989551821674717528102289881834752892473663450548673405441041239316966217789180728614180822082055546941175636537667621977110122810899202987728444677903888340562348828832839095299749318578240568626533403356300812152252927046864054486533751058988562519229798107730056903511299315593013021986710349084620198310845168014741252350688258280114950713111529308206032732601640486345622367625145597754865758505404612198846860440102752531396235533363982367663320770659200887892010514939399584988729831780123506464498918405491052906469118823420090682996426773448986656467985608398871482547027828211761053542667916604864012454516711431771735742969301839183351964983812640384263196950023185741852801208797650425400039478962164521603460635288963716416034377036052181008536000045047048189536544462450240748120065894732976069685156122856826241574965260026412547094113960323917592159737585315687929770116579869629654557696485113553665037076533081548642505915142905756365135089177866227497187779469253183508834638355757102468644861006826437689534668350213015202655909858913222445540371640755470225208948131117874286637534745640356252732385398138990872380446600622623048956618438396820058300874964460345190553907671372029659711866741146748022364023050706334671164814379203506158509377943627623096722118975035149484572196986984786552571879497537021942135875212911711185374916115384820850691796029421944989207433817129368570890971308772090940869891643561492517705844085690530439851122841470120825099860027322966896756254664656241682033416087816276559783365464236469743439605679692503206345450030065940750931258702572720617092664545145472914955622905403970596268352143303686710561120034764537967233347517231476379449282599682853363738176569752307836199371080799980789535468390373548007488612376759117866215290243663543355502239021986216299367764027326282042364545307291410115012678971472551498535711025061333786186848986091758579921593753444209459534256907867745664766859278046165265890049022817802885306937519906024252931332480157113968567315887200493872411981819296262770129481791794436896136870671871595349469823186153112632698540815778138844502740702408820609936798856183093683253422331547786083034735500602697785729631414305456824571781810154864967548302015017728007485049806650041850718532090431384803946661171843343828597899499760254219100428459591377733847280277958480311487240897912989006515235377700070282210918935829019727372011859468341001163316584536521238907516391259940683475269925614145846722963624440446752109167813085060335031791878120719354490436112856303019513788650423032166894152259452807867822698863336985848495821529823764470692389569740445620419770036195098204454304803202314306337024168873766602837415929545180230523188608009832106612589954679740783811451882355667275659719954900843201633793629139401627040174678995568731289313820419380900447149209597041883916694966453433073284217952433587998728160122281515365202079554207065598683417801911859171259264613049043010809754690264404916087324274511278715041788973756901937095636855039293416119095915302861251019452544043498629829910086826247826598197422846556045429022211219404734786978491321115139936316603267519307621013734262450496380013969576420944590853939873120374089628971160759697607397908316729900345998886420249698343627923948541440412754016656651111079089997742400509769480141449832949264070671756813570017644544259926289296225574900614441765410306813591701907087866594619817864100162248680783521234454671370091048608998107221255699042306366751206251516518035711438076840287812498771228832614495078402739290678973238499822101727604281326504255889725547322021166408648358798339614699842185082195776910325855775292925000017557729084188537099754969866470021735684803809456405232074087657693718101436869847414539849171255437128976324209947591311330364183354365600588888333254172575103524461677459150638097346194038571266483308465581905385223914639763101047638369008299866855542339537527276841213557709027799859631397660681609889328366698521117107574823190288826671822936307398414268770799730561013229651743292158699882370662465266040784924938107104996499967970872723731999131014678594455012514675586488456146889526129433935199963668903454421634548497395839238335378747281786817755453804002386169919638337061306754351190666489188187521978672122872124650615207278655500631409671558627553826236118033903176750966782442710569918683163122443004469922473822685590559947727094867255130357480775315051402031759747529108111202044128754411144167628120861876423596975905284662770756779839068862051718315057486489939913784779862194348424022527139562164020007843060648541989414494069906676556030042719193439555741240949232251213419296202441804314794282001117260299901472879504871987194299423868798755714214717317818271040172542625228135570776708229204062949636501045195296553076721293075428224000886741960242861155334997970676266749697465231595165371511579621980559862002956306534107419821632021926069478861685373028943558314390948818443981700106609913752894994571818451333889735587884919541149022235356982679599683212171689591084210411141933040033140400692201768744066933138008774407237265156806692307981916844501123775008048201054670597385555330573788930828501807333366351404694345744328953835786381986638268079407023390133604480727772480937619324168144493817677425434862861711348107215013876072658967358029513989275054863105445924551960122491451398262333150384476073514240715566570850342864236674632830322409305425665702011544287111066215264051159384630592083972654730762045950191118610441555774111320464096021248604339683883185885576129244563242816363498532142648345909896587208854785332804818383550843352349211065155426412788795177318675573928688898132925449581781996198652199459504916139974241588720342142092941884766271173589935303510842427741313101249751355846449744968009060654675095392330104887806748340446231399570400454035615356386179642372827957263417268398699982573718747272822185588578615519107375478360591383650665028060596836143427588511714990105974895606196187506914392390853582122835171905733582024376320686343976084233686920152727650014998583818344456503742752334492227009849882210724031763927736002376213315091501342750520027002528577343308459749877296153014397983293256181775917170752801700455136116980157441859221909136180687687321066309408937317846769365321837419476599102560760841386060307285362624206011298355022297044271838130193833895979939989763563872587720878376064832061976101574314261454704677774487223569134327400071696906119335640507438169246396604568489390993349364737505739901600989506109914125011526174579417258529268838232188264661766057823796790094219457979342565634222938950531484396972379530139407568522302816726706213218764062045550580342139061349476235278460634845663452593125497739347890520470407672887408512639145476376695290583157843207015695677724049202109893207090788824662357186729998891142200756048920301979736242793206795500027568506060754899667957920258569405163126659076979427298985950891967457823266104783413996296238489604714387952288509222920442399772386225632520784287283346273817770866970180782734613233588679215161158484117265800209281228606903771158962923063146193339187142508221177221519725022326960908795519391863068331625207050130366003216749315111480498270056412577422173765743831143891904978955728294861080718870407648633459014957192780357443454676974413959440046973463959846804354411338521195241872752214825878587499575169113400022299836569212660451052330852109303247537638956144308760122368759179364481264425777415246087180299510752917806506350410401204865982301908023527775822487551556757641158532531716361204954479142638825035358804616828957830268021121533459977240258418264168668445191300637977394616920520709825219730495581993323835970083938691422358356378471738000928728124383180792604949095615210215259969869628334237391718174188007479885898547755193862755802513192024840220501230848027234307430223547157504750988707966396189121820628701039093055194093971573449138958830266556649290916511853170859518917094455251899985869494014900749009634649247969711376189810668557606853352614768066403614000897336097760706532030551363090526216594822646264728769379025763476411669284552915809620893897952718595980394556488577950986810667116203181364456893196460196890475874052356915288201494654206822077062021401108170810980150568309108873604548675857715463919763595010678037402911705175869207977090804202212507427542517235945102750567748673281294406928116000418358214055673156717680569307985051604648822145733407695479898022615873269504961317341367450106614387542489698739792430506125289861732827559855336120536799395942339939870633991321628912991816134614760372349526818771899143686670199237848496265544350126181882809142057998560049157795618286595170641535398758105472906543106710405955479974557372742443573788749934272103013992216077423373234966955554559943260877401871939937684945564065595550554009253397275010875466937447087773723144633402633900371209174893043950650729209755189628606503126049549621759428439607314239020238411943244496766817853584010793228347406561312953353412333008665231112334700088609523699450928708141717346659023811917513399273832536663375951582569130089454910077540224150797597519682811621092946884081358844979795158604316849010481964617198014833664651663741289517999382580953134406573358085743691438216776047571130250721685736818600134690411428718162795515571664604134736730581452268725666806250626880977167561828424129575981380109955915773374899735450089177725596404435392128022272057861655044327223826752288683139168526394011030492450759026519598905600154452976631264384850930422432998079053583785756825378332456958320713756625542760058076392812051691029911356917939298228800582230632464711160981928457152672247888771687378348738267523838844246294782504406035410037157738365287594218759311962230005247963666989751447843272653723727516748091889693421942058679820924810014953694412868374051148133668904228780071024119438829233276626778575378349263202110446861128571663266622098223864069077207682979412699063869832419482378578530620261428498302509856406016137394384815274234881344724607170731944551911732592694670611154576395337813086397263222738763612593637232471985911111019895421154427552854917014818555765143156972127466704008499632050375709081267821580764446738133387453347494326743702294102361089309944545264198124628983674170886965750189841859869491978317962193864916645997708707908854983695021036452553058257039651146620519002162720381673540308527902606081839844261813358960512461973367784270574491124850895383140003074138281305926088041925476586507474656851605643052036199608821674442046058027299035620336681518048586452313126907749637771604831359544994385950880629614066965929503189552677508978481719250259460911732954489210604904887336504372720287048099199636577262005257638913800237380930419582334933050266552677786859791169155860325738568097908933014922168406994550109736766267467391847708789541485390417981357865438520753302383215248920477974764711826741233121142533727674153152140809149340565290611228624259152355148760657083883114671107620678818988507892465668807870670751359642785153828417758242501145399093859508228399509411089912450015667186271456338149729323534215227656049657203504696089735441238183136082537059377385407321150164452345545686017544910464706727129026258082765443269397972894554118508337835866774661149005299639038290934806524572445551127721645170011534746957694981024454576848261588282334191352197321706364450678407849905064272707114831648750391484627353951292198650705749015846036250529855954533702995190002009958395052474560518658552285409472519152800156624034412475298452661126126182009679640087460126993119525482349724772995430996184265052726522409903498597757400930767765267885422561861569748256599379426251038008454899299191793599468820609115810090722007070426840558964340282451734958006599678424329495428352690783121743318439614872670175830978967388065958932808120738016239646245340974239470571109674689645211227561420937045765195631942116717924144088954308366921773213702288949763885719354380621816931543765704268344131793772543618439878883964048237110046922351500639711496740190147879820914432681331440549171456035990916528741951767215439815260416436386029005786904836398537844491178731544413061127231502920667997994191100573127147616439609541222048577183159666046509903059156468845358372503442933608650538083705188243741195717323638968305964275403651168629950922829718980750562645916235253104510350601369320374526284801790952737136855140754314441397956505499224466325968083615990172160328051672900337569972302040782574079702067163781486692208767127029228042608238423063748843726296323844612468301710842058422316497084234995029258906927507314496085611344339745840250178189042149270389175246921222177861018022049214517043458475566410750890933461718864050540082968022579402624599166539465744059873856104527352702339889400169083983258503472868228371805299983460135425939443257085193097690523075074300858458880338620337681099125363845004818365616664607522400803776829077407618196451198125101006990916635879801493261568419051970475328565996274735783891377653324603868877213414924981094727857242313167151110507163984852570187203263842836362079358780162316978608937479824538332615456224159474841423347271350869012670084258868950820145501804639522102670602562701950149626509713874247230640090344880502285065043207306630532062612386161765498097710660185736258045156269788124614706347290496092366243326188916721684112174121463231623467736536684772566750462021929564694866981494818646019304111565894679303189512294313769956257755579795977038832978451092010172758636474391672844372422637142695133869065681148394010763522640905603526056378688328034377995377672404494704682895246667822044113763286099273473619019463128500021755016495557170926035611503698811273106520896756303953924582766080154217115748985642138084760518320749581916825389612395285863409489811710383549534228942235437153650909250321234510665199184822257737766567509035551828474671406407692638809468401789340222819694388604690094474501661672612323273757675994130316390288432219394715947085017496060890476531143282946658136032831628966485446826447496771147366600634770771225346694748091972876559675881515295447039920126148406757865910827974037622325053415800889984426269316126941608262489193237158995294085579994673816573693752190538662530077471772173316500617985003474075082415410575309876004226149793471253315980171069743591500460456708179511993214851101507595751401064705210189212736180441748764501686592343768517073764553732906134611526670969292132209807497041585023949926621731416923902895845740800947873885347653169596629307137165449730740383891558431163888946345812881288083471399731902015276255538354263345628010672575218116830550353266387064471534145545091933429711492030521603274278112517271050712317551026442071488805122955179447763058827600835093378775737265010502421870830254875210686484170418371084779836111842963366468698566192120091082162221954088334772389986284062647485194856993603119312490819790788930997601318715072068291311409452163953826260843692832028519821703354338791432752033821011434728445892808555720217538327750764536051742087179661900557254457873961442697283954908535059565549032663162501737665152687873184795021658154992089685394950853768355330576754744876331492950707193226243156956526368958184855699413527896566637451123585607273486598961614795646500384872003122845559038382749899286744365525522965920665877101476886658066704277669151072488252332500762024377829284911967189963504037153213718960310614315381470493469042117855585281522463817495597573132666639230380303927196435761141764006617572400534708230931312843775786847459658242522803023078330613101997174188752744532238537744832059210149369154231843083135254531220334017941830557425695129301991553388230900549313412858316037756948396569265086867743904181185696879713803889226204800588458186258784042385495104511868874970148233959771813540372565253747263935371451607363541657542262567767090949567382792142778221265379052320170168462054800786815329560059248334357784457362672977240660822516983560290541687117566827870142765977935941456317113828430803378223382588287382433415240861415607158943081488276933205574187905897631187597206819730919487288712009655631506414914339387803972169635802720970938839799876079061441372224018064654603788708489827280895003471759916369581298486580288627158713136664802458228219630930467050475580505941210081766718243820912870852684978654475271202945730647455386464296463758532966657697816406103789043442746711618659116813458407637971990382154530733506343892275046536740622395504326754004718055819277384381464405161925675002627643388618392362728128345152393364544856676395492679904621109830371396880855633550521348858398894430571869937530102460452385210485679377852049038464891942970608236503289522678646623860766343277533811531632467026507695011154692170372689747396079586052274614823571994975449455148875675956391243207519828112974557797338590120019547289844091343129451265937053015346353549730465638514133646652032382475605349516595261628735438522180248479940538770938527461431709774741506904217495183759601238954830185126847441241852558156205100084433400879236237574938036764222791989164750108322745072999422315275215710550167015247483975125571983361396672607472434963688083538054427534427431839079875207444725813772319615528086780703727286996852157021171733596472321909541600569751422537967771823894567232274264330052935891511861289664386026866898805163759145758456634101017840417602447986597724286920575513966329005701588649991126697319624565285164798195019413502127290783252008077789463745235344134992691239382292391775968769454487436497775393394645232658899211910196828233051558447961874525608574337207393144669132067022522314406915935039116325843521633690736820125022917289657687859229331147734491825573918210107467147262974586158344449079862279340097157672930858426533525409674878365730297851968117970847506172118315548669900523172858905483983686498167769584271853233367452831465781129164091171404964288793967648445805120542619998177883114409467715106903354453605571577564384699205921604882291634653101933738446535855717203202371954958503926867531504644447761566280644529745254524589160065756691624636094837459647847155254574742741871815415197277060228700946741047970613876125296421173625452370745546666711384438469314449107587629099579808643430389449893520303930404238544600453509313375309958822191483659864071962501374484216223692202267243016965529800541231856997562538614335465540058375356791235481280077709867168217718685607941093872587981858446668087946182170076311051838059853388025520594448662010012576073035571487519618560152813602745464178433173824924806464145725782387472853760692111000589762042578707758855855267911117906180835584856465907361174142761022288354657629396274843328855694547113798169682415109831794847382309747214560750024510968241460110172976982761857676880426450380836370437311295261805654049727678114933184669182782788393604307779743651881238262253400864429800115829354054796473156920580147542269768884717062206650300184999367131479470722390304534017103663010081187938518996291770539952682106174130537555740683285070839151451624569465687568552796202444089816125879296357571549019937361580392319085164448169677224554520861617141675850436249427626434169439124080559012575685378821482499952417142032522719438334044798356204360334545609991627759581009732189655545892003008524384264625488212258061110751388181389477264844971402722335717237708478658921022036063145072695164583460285928157372225161920821593370923526912204433797093015483069970635765844943226447980350141416565133050563109167131795837222928813564533023172637906914464141725880117971923446482414234569652066384005501917166654532984832234722130104322260307939109352797309750190508801008628133273219089968096412441067447428110933731028754203937098737134293079580796021114227422467150388120632019178937979724894467686124049312311900715295139317792732555646497202971632591483185197653529254211023715108727480463418886361745094001399540961469445087719052823224411088041532931482027603684611169020651860021789478640142928953334834776061263199234346927262721072173292350756980423040116027499176372979797866119774119450806915343043270163515440788991023677715381829323527789265340008486432925566098008963839065996805781329717629914488980534370483348103433908964400941437635514002291825810117660227076774892419455086458317968122794665081525271964904236865997301363541556722891286809606192809979232810410608326265016281999585927192489175571585272533177969672092264513590544435030013449534450936395149073558079809888190019542096386790028636687838055660470743572255676086541913541970629840506052327353441170066385095218957365465738750700524051494656696790381421287358945433169088868235108725089714420918406773511093481260909749005326748567541984941623373771288991789788306411291896351089340368314514116119433242907192874447677027192493945373394642257171247666826575944480014258008884933447697418088145469717587622418643061251279490448564173849842277054697462636685016581728922045342154350312447749182634794250628765755917446530726332476854457617525885075109233088839514407212525736124539369199959760360105136617116113963612057683126613767963198694163750929597640222318941025878173881913169155552506719504575287896984437433330513395370390933652727992060006193899603381140183803342202106723157465293181827050995388264431946269785305541428771968307927902698781649218693554311392810490065712015078454828189721516139750479159357407181839176370676065318719330300450463032635389787127039855335547325297957765508151168095023757256194187907541584014583456177577280819903316100838982725479824576621906759356668374667096064871518579431598276968630002706097740010048995904843550292374756435525316287187557000184639622239104212689001613964115525954489228655723826331345832149954369199665196194727741237186767258025198526346834060556837416506267345552056442131877978965892965102534042174171010450397127034326582206148938886097083445018683052451082352112698612788288202972736670545766302871248629978268876669676097043686610882001801345907384795811346350272777609575075825782095431912772265740251312907652446623133708801753941759942885202214734445251039287926148102284588145544922585469839254163347336134452956979055071816374339584718352470809304597895835206564813020661989799771473924219409960530918677548453464661111949817936692228691787842747597435598251614478600599702169179627610329190304824088106693910518084550599889788984467521036059992827608449125368168861213999975823717496766131357533562168664638196724349870513088095145351810101164846887462849041476535691377967423715088858647392944689046604836254698856487048637043137643932103591658560804324837905388066025262963362526287400271379898940162489001714040864913899046028237439236908735570085290437276102049737549926630090671834541556182808218180347642468694349473726683533035541543818370230694236849783201877427729895621772131706882146784082405991946510483730994800448423152562364046900084830721113588256856039812468334677514343739946397740153351967713457179181653219692930633855671694040322329816120695581353224600025370250552969369840822143063738628985493685957327603191090617711355442222068541764368013798240188577351006401192050375823761584693055582614791734156719210951486210925279345506717007211955771564639682278826054438921724543754932969272597098945075348003859264031519252887505174562862048580204204835613755073029650448267547547595508182524277390547496380856631116930460908045293939905752024779666163874971478967101311665520294544196492111290663037125910603420876691889068379550884470462394981526253345403983383447981378582051789758033542811522222692023968822068991004549613707015128424820230702751366875973923468698363132335923103558518608091738467887520859707433602074202135572441424002872999314123934647339690264290852981507096055350296650915908684650648857436065470940465283867358946514707345980886241245581976389542403141289822340381229030355274940212683275295461867283085723388417743054125375576794528178783463499215075967193417610232419233974115683776407470243339136385703531376091982388037460012765300983269915587858866320505061963841702354680470796678251123339524034510683498414249776751764887120751263067030305009056571339435487362380307842730343645490908269502386659886379560532292311756676510003868447787611339388018707371877359041654123282916264671274759130059038091900572263912709553259875805286184391297376374789860358917561932142735218124395880272799685494389586382406345879686325498586796398465209176570869322024389021750097778062847376679382810165847393415795880890816139303273011888266870796943998689426340804092953390898439145575797872770224127099034764890250225422510387608640584726259499771364225812603659133797243458219347194549963055677071902895643313610440982857678861286686334426011057627006985259552282073808563275905327473592784392211167294852644079085017086451203920203332301698322664355695587600661827542827855005770621452541556051442346682178647818607197798981657259430860389820235099204559256632935717338883976790791051320663202901686888725209066762189699544933677629699001432461018706540165519576602466513612671915948133407738594005659647745564424505938032016986428675912633519133842116538531172989915473853121570447009508172993753617974721766108612113833809761356544864521316568285025630447155776933383479131675121352204956002884231884419575762054553694767690246014533477655432354259375258002373488681035816908303090316333315438017178976180832842393808933115899151882225732359961909298162969623563809042742751932466421652583488653458116680798931938174864884075712356144803587627668195762561507981761796077025009918588894599728066452849790876773548575828951103489342849746472930224251466563683057089890260038981886719890730877167765085562252073888050245208599937900165797653575842787625323619865686527643422660588844022959845869444803691604074609287494002798973342607291197601117763437258479531713324042129222103852539505972425557912505969319748218842441411711010175588337607123855649724302300722686951038020726568669574735875623962766341841294444262382205587014250543149261666408984988152575336815821187770306068585874828574576666220776751166363386590201722658194045354053673761253646699665292974101556243009906932964026140230884623158542166626711795152472245893999656119668143193309101226544449203930261711342826816017392608845373189118776001256073918749437424546753342146235078365320911337420299423772272874819153844788952822512633160561724883337032888009798332364383756951564994010987707715546404980241796108972512887543738583403282489717545876206966096735354946047127419386608700971549955898031163773943635985677663257120182487827185484345521671296149674479490322556768783517869729339027205889600544641208048480677434786660221936770865406025997525785410964039385352037845378926294919628318309865439242581400856385238682507738456852150259691423573761184468732401178027013132203418745424182995707534026083891201780883723442955202121306414497906883086584905913848435595797618066365308742399332403512215716316453887026339044036756410369917197391460904904641651484308466163471008039927878864774501385591987625959399626122826387939316400517945208048456365167359880599929395483354061366333815600556827252464477734106964108555577551117409752044890243505201927142505158005367694142314623426402541999317891719398419607981505498719061084530787696643850226491438826727350352057423673808135599715611136934368021182178536680115776423007735881759324926035370998831791112210337384674866456292994036020060570387295409152430520012665403346689348689497970206795480121866494057155189767703166510121113543033639231607021235478849790902961880661373540631679513297327240477734359792920888784814470727159338601702431816296846802644970470956529286556034847812472888046242566885262994364886273364683317066707024644647726919817277671989157992853398193707309758502304451841898886366710180252355324602956765120487960258571829237942449142033639379294633982434868009019070625866124220611836401944570862752892181846207635139424088781394216333552327643884273230346611245669250010831942230630118172209256478234957615266406838573793880603999745212883882119677179967429836794208267568915684327217886302099855559618790247144768341621739423620829151584552962660334059049653086765937882709575366208884642134192064773445072014108542057250746379959229655246628822511864927306655601016711309020160052564698109424088958327884951108691236332256021052158974254908611267405331779433921215797992246330710378669124774955910359007023529532443091372786718952418495614080259994511125423523588758963457792102265885162008466643628861190629012192391870836281963431583306237005592786284544811780066357281473722326122991378142202236545961434967545577080561376219269196551338086671811131423369407182075705100763903143473178451336462118151609860529738565364281501075888593342427068302155868797044842933262204875893507267665866801930186703946916118571903749048008824581043123506542172727118626631518863410510279710180719014438416617825988970284257166070509902799495261207565784908490640205919379762166738909183825440362418293144255138910807520379853372934809536522231518106083052109531883764484148858270320861434061463979319951083268348181245611518645432585346473553167919147369764876424811248603567924689147093506283870202094176723644216388174713942669995134237972373729295585938647251777034903702101551091950030313219581767641720186051772372781015734288238719769469606212865203849118156260277734433891077001340827782486360632108687701415456127341994581682296187739179230645688403123872803385665071568814712230599309829837594295520395783599831584035770212725106756742672146913231353475513944007085328130775841577370327139476400157459800440149974460474389786100041525575928900027169565233177570766988858455545710669299957316633614430463415817044363425276536467479924916967851183598631450467745540632338894231708728485153317633935212761915656917535004916761530684968808175028349752000221876847281216147499404519128393241277147807478953158047264334585312860315313195957827931163588181244634201075885773597005399148780842278569405674043248131162749508226580815985076144905348871205887058154204800216166302092932320519871727266274740558299630987732763879686973575381665448847907165875119118402812906819105239658887997316725136745280827457218522913283098516849854810822941787622645186731766365099554855669721795385655647954590914911497670474099516663743710893708469019825393536156802378310674813550548894945377560017462303465737809762902977722900267260951667600972605768975763137243621319941838762446659849872607987420337049539577420986044242368995202141888525659698779431307836161147670646828614164919712443815879904144351321695788018711572555255305006604290753321537893994976053975374018087635152840620449939969533096748992109317988408693590258646869463403942071627546967474703113017508963215567900535320719586655170769892978467453969822845158378975919431456432797223200772954402472260969825398856910165473415743958394855454845291338004455038926202845510039725049068383117502497032207092533933221768422031655550271191748198030342652940621432475037597527188038327094366866916135405739150537727964515224583400758776066955081103148551041085509808872296732409348299985655469123143249199440160411704596099430730158565879632958629230529885115098763770248193067921284429957150866391605101647031656039505944554610863039518999222437152907502041147076948835838438391661254863437245631876969226637442134385607982806243198203493294612888066477310037928760454572322594114458994525177289368116985344434091498129023968060393165334879111499052808398892203724006940496086693946886744144094593315493808089858246341065100620902787197774205502864233106229508322410220016565879663450480111318934439113441898876460655607011769604601263964103970838571722905518129770495275544411274355505442948498223587721326164432839891262188466833832032653255479945600333423957818225275672422382713101321123263536800858309716145838499191732770370136857973758761867154407708607462627933355868137815054911243207385130225540664110051412015518504140096019754727528677200756067318976346541558836271337970559718868379844210573564226168554402869848312292157197675594714800182461978318074642368408750126837091568560999879629619769706745396287073073835659554548118130743810715679638678049115949248426264190587226591361670037210522196919373670555439434558764875756641150014869318534750554767821214298388348253898860712059011430983580925877246644229937958337995418225540161239208486250193724648825932804472026214634905312826201939442340286959115937930183479966551233538545969243809515211941769344671856959566403561689510863786090242002467991965066566158121462437054771640063776323396221599156281027002636733073860890983991251674519423389964861119541093819865881159423701714121154195287659864938193339243152206684759337212798790702765871678655509174298779390968307991611871889551459182237012871411217484037408569839662976044021333686544388228622796340855473341990675191583996977495104084880669298368555875527721438741041366108598285179023492602501183567976344432065080046534028956755635300176955188043396009261462337578992937621524258311846977633846093134726945823132527589043687322302807494959205687246991708564272447558196940821206527809782191065280349145636398937740802033925642701580137459472142064311250811076095881706328935236445176966073372844194643119998612137652323591562380506397116949601932462531542869849309756538376370395318326381516505792768075159306357528969042206778901262007129114045672276168981727926678536087133010328802727968458904489055266212435836531799977868472791088072034412334173383090421346449380471191054114295427856701529696105420321367056821119898954487387109183004977646955548774906793847088247222547577282605850136481398441841216704674201367369383176129488152035935132243516554737478738043285232567795792973739723141713235394628464775645571664725913439567177447474529313520414463429601396353277091398854725881239707333324083024309855503198588080358101708735455179606547071543225300912485923826028304699763795931818765095023112034490508348701313024050439110762657534085226052460746735290428856029978567898598709938397947036501136842586496859644528224789254993967253648284419292468441930197568144854216383831042374105375796460853533627254082384211009094162663749588379215135529428635260401408960493721031092219035814677212784760691196860282924506664075315766474554754455291752719488972677291097492387917880669532168119935764565891902502561782072659334166687765327129716137464627792518255660151559700548044674463376890741771544259785220968848020051404971533564207879515206891753255803862490355070869977097572421064932107266175292628713491038351996375637401500949898968712172808649172087163046946603977814851431295702075937382788669367802956145825601961394813486706291247239075767800933293681867564680640830132836791274574435590050978065124741876672739703349476571894543164382240379611764587648687970024712379309412427264344712316551091566991636938029189661724596586333526508196643579220179110314854790856542191869111599406598908303515141185845410717254813311241533693773768110675857007837456503907595396635456225935642345324674514378733137326891232926740959483477795237657847179602984701839548591934795997849715033062580318667801049448818251795490705642377154979569971759550987358737112601305424213782398638659377492005148084431365221425249117869541928849535052163265346687299042999029103362069515311130929915544637568925923925666818557976651822436572768654117043243146417467937462201117658672415640556265824889093930913456327912562997828184119063484545365520392483098540574265016462030535401517012508857107689215786135437572166121129935332421213417312313435652270305891618714756321495831590626636719626295468170679233476072928605405170260427685141233639713944574571324268823737275434930525119674976688759966496400118414559489090576394892639364733761625105344590306752291911307666458484059356723510359065871926851425091431512198228149904790466398246991913023588028870483753706407099225098214556016575343070787301619081451134895782024025077865031463841777050390762365628471081877129818294833550991415883686999446198772204024325832804730877763524594546437494235012457934329980014821491688045796037957976601852581670042289414463372720364633532476085731641846107782187332811083808082279771000600015251328724021395542773081376176686085006798383194479497638622896787116309715161322590046937571778894928523511186819394524919323124059701814086921688157665519135482538250515233774488415540819439944896739619884750880434309257508790630059265335150876753645752648042831683892340587045458579795184373910914398111064348010147113549881173566946280900009646426430320102451972657568869938020965995788390893476551519618577765651167672514509727822756546200229327083932689502969089832499174213056325756381055164599493574462340392602378804255217921420599935350893083039682078047707310177104008540748668140786592985141600250026317934303677456537593455789707760614246173007013486332021930332387501122548175441567332772019578787487240287556381427246776811501261150266177767025292282588509667321785286430371982018825103877196416453866382639342323207559356961127118717392136095993714498213324400674295313828550786858359445300655998006112532965309077496002167958062470404126320034093079162938601760228819580703440519515475325958890066747975879416174155848580228974054218547508108260299168601164313227200338839136949757378828576196857115290481522194585400791784679471677203820361579824489140644510929470746281777116155150908070419691774469572943868006006033092939464361139894738113782520929994097333088014246100323625428131468368059926731184582874128695141290161396937796890620303156154205780450242046816553763395338689467916883158566764775437709326742410659184557144883308865649164381469273955895830112730145290552166359030368482674670924131887298523994215429295678742028742195202325684461402580796271441113062573408619777391868231942537245792202805799464267348270420624075207606875757368990673938951470335998846840778577128973897300593557970722828050180021322477991807624784478860563544087079835202108520753667586156724376996359153091450247422829223792610114867406037955912078644373797885336006715199245384987578860576189505278924890910104774509104447695887979076258174898129249320085018233331195591978779899733650258163482389817602544979489971052392768054918610364976280203586524820622450194991941168771859955940848477533014660107938655283691416378601723672993297096965149229759624211813179848883420190965296972931078850695314255615247583470783582287544278257340572933624393087874514205314945876789131906615663302818574449008701017408665054323547359450046518931097846598371687654103950187252321871888600875456143364227009057609697792104429097559127013738874329441650434748766863698014276541999387978449537677301679000757665685357239839864794342169939274268793406193753282292832797042753684212786225774668077736793572679377983367688153608840529205032634460593296981554660964913300487004911748215015137527345000876208269143327917224016981410920472404172843878793742075854724960538839110895962300229705531616488783293356444198857793998287693082133333744114260063454201394033369231259662219859863789590266376796853423708435130423727561629007273202997986571256875735571314243877672964744647351142123302266275576972622694729226862959951232765219634559730473343575039335288402061031849805590895716570573043026964800132512941338539044517317164435490702350469196243969278031202480007685511625089547199227193600854773248451741404688338891394274197988798282696062703898209230605356490573482703701871860411323770110392256802434066101448501344171792004640752304802887619753015872851990343368749029295235520285422966945925832248685000515305636033561165877666272092027724139507045178502499541106965022839856277135937232817386653238742223117472096809496838436414919923544534252059065226654126152735537239024252864576824434363131202856308076542482043311257467996911469566830484678393379247026528757521973598804125126308400566876997903059404945357858548208262291929972728676807815624107596392979805973363182909386480948749552206468934895855909943620538209960178783469675205616125462061172240564211741155210752326243347108629923347121465511079883028227107768477537301918941200674793947421406536213886686768581794798597757977112850943130213069254084480515455568232750467629449536030223150174275902918774366150425318580777259125092243217024940693456660476564889075389506672294391333612155550587233221199978670929706388761745267998968347435210056071033726071677589087809249558345262970798674243996408176489236560108010852623782032835227965412053728802485130036455333478249111694820347295770131613659272471827515088018331386792527799584755547647430936468363106482154504539139230204614521496481248920170201684348809229513500106262916640849981751087122057128905728047309737454016366914088713286878985542087113547427653076219681290659373870060599183138960398544368889974688628252749301701579987778185940345658125247139534919101164454737488017878980843178945388538968692219938773716387007644051923931428094598481779026879967892753070294498095348303070996356758988494596451605858081149621065683518968233921979126519697528409704961212234533521709838293474174290250310852548666417253100566199220150223908383985491471543871381617126271929004085876146232594814026493848242517923374172866765636591153345458013206663989613821011799396078376189813084394335706391253767212960732820235261507388350915580989926773628106457940025250655246596774936173460087938421807265711276128735193462891994108114978490156738033145294158445113936226294363405334952424775438188809177594196018248247921874808476950987590634591677723627887474106348721175053274934746394883066541696935124828853138181327553174423996194020177019951707113282339400596312408625570802218014841884503836575653794742353131290636697635066830659930744755819691762435850902202430279119321650903254340363227855798599168284110364282585422139955527947999093984361172897039751625236599665747234817471420943846603710222599872263081645675485009642948078152317825771537243378488193435045288933147755548137715573019002130932837093761970625515368399156245854371943934052268417427261075563158668181079481424299368618625887521960373972206681601046554161949980651975531967322286552884296865346220852004847790725027382406413723513650717984261973037435426389447494030215716818194328787813613442718312519899778842931297561185488828188043031383390430218358777125631283714581939919521065117113665919784513897076138111647913338948297029455679022515793135871535720342430634855840864615155151795712104855513971785821261741955488325250756536745404318819710357736936012462844655192265834424739793375424945679488787815948749454484320754677778350883613925534188846636012810856471629863225627274972142292513629452082393192494999745484406594724365930496619893836541215010631703644488776957176759273314335326894740764962965042453061678784719445599213528939115928198449322198148283544805941479012355526483980515448681583342564296947265068290369742792405257640758195716704547321469851610730033010278740782220666652181922254833206055681794286484761245126704642380570634590016378440832977043067637658658076742703811036889832877122996136796502628472902508285491667965292563497648818475369876339161163049359426037338314312768184891303275292656926024554477600069463584211896026995459202142072375517053172772570512081707541497706621072096105663829557154407863920112005684443485060327204827625469969717260266998143920827764955443233835632472438042286241698850489185468928823401301644987814731801438378797042413707628105839262932437066548653585137735997678095759620213893398219027441836435717529654673432756113932628214444634278722977479922593201720175172437386737762319224498057875859788683025345113628794152769170949544656881159042448349359451475167431488074093623720742159674633218860836947440889472724901707950160374190948040484935992354614913395833071129732967929843993699286172684502540560493400011677839409612132484359974391883931288538512614292645213254272718096755722919493664324762543548674725402014649965613244776024674322538080350262267790212934038384796645504070472980680097133768451005950944994830889436106444989370227856488498116636373911269247688242537671090851793573266147820711015811896331146740238444251861176256085340820779869411627189028274788810198754223913015385191176917778035153146326864082930966333618171894480907221068014116186080733547257118547699777676241873276189904000716760793962928938405908682932843404529231814275400808056687893257976862842567961038286461401644632451905033862907453356406884305965387510089086731380760244571356805270681218802278949996930109489698549272475968041517189029948338092289524283998797722745059068254276163967736359016575438482171160783038343184856866350431071536179795796576046675664103423499017278262799823533092551570715282448394905474086975265194739273928013338553953120834106874761176094351162888887582681259030253862738320402881119516135516713679787871272677565795368911046986834073677983019082062001330091083431470340678236515128250081207727202901081700738672493812581890462867730605750725859884801615964855887450203932827007609815122023139837694981915914008823278768538023122476595697163072501584865254334638795274251928969892355798251618816389612934924935885868110582856941806554969898905920651570889847488530755445381410004543892650079119758764913152063561521417032824031357408012066990674114884023340816559200441916925902405088959974879182416617127253045950309154648453141310844972917056595642196908917703478206155307624903786383678479947558835065628227710205057687047805414321007793657545293875947941243572586428678528060750670147893676412565837040707138903377196629659907514495834297711495955408880406224132141721301266119531663208009757838040376864218745438296618728452347551269937013940513336452837433999848148443551338410092103350028147543931132610808097456909198203616073936116208864457003174556168261784085482196951736406878823867015398807087433048995284291333661899000661558328150191664755714593139677395599137037789566177845938866306771341127933689754525448168313845376441383276873967898353041571423138542494706337114316893084294747559969091000002765215216494058980083576710214571481240273085082834608323814744997185250708264147727917190268829200768768270827060406843307514303582398611359040939028967063364275248490842859519789295336183945208313889864696988654271094055180161986751274548862972402334791493414197563767988335090657689096074486801492758261971124185349189799352216948294428566342112244264631298194077484342242900641719757416257592577323344051194339807959391960223671091285229618998052252420514253483558164058421477162659830420038537456727861677916821541262930000218984189455050618795666145243877758987225067860616216772420220651969794343158816373942150265555168565284423692219103556564215223747521645575545907184500511846294994203915415151246519676867317665370271535699910693046083339763537212802643209701048577387793163115911780194116422966671738255905729807781992249937787849388707762396945671874040481005596273922809189405168229219121352531895902421686176999028291356131678045899127580596795221488179514671481143644979526840780745629140304468659529777884958249413570715507778644016476253863056727255325146878776360644388915227368397715170582399406307167887174793038996408353731856396195713443435728719913566597652588036453463568208920382831116091436571126220234296029088497916491411875448196672586403936641692898194240571649338800141856773762504970072064640963567262851275192595457943388557937117451952096093678289927955415921760146854625255257434670392344019369143571958871244574459371141106861793813748308571289316220509829714059767207783547040003542582452245182078509407304235314926567067021035516362050836492815527549384567091884092403509457002443546216870472734639170123229444035456217931912509673582117060277508982212261535869858365390190298781191229566554021380962913841400034101207836796722655019138115191724939042932664878688889549484003855775549205028067636572891786824220984678067270641985955762089223310250275900578226660859687758679336686908533774665417538102050549037819199115060395948483226963663539772990084162884683960678641866466118834050192268447088021162389075415653187061589764612081746377158490466350102144226920858887461338103055471828438192963496732449531057168489054436108764375231024235796020999159375861695955449655218736240202334383060983808263279582019151647936421994008992620121605792982096967309661291708665670534236248925313341720258524318441193770672783774678943602312998190593888709539902514491805478993474379537583446416976592585793270838244974339657267586235914513171052647929673672975817733788143227583474688946385234708918273520239405839125787806272046685803150918057159215206588978058350387591370736300531096995802426374121436594656850867627494289890668007144930524088917561314046601458319996007997778467502363770365768463798944791548855549120005513026302814148203275489370331561333211928830387005198076125383067910702000464811376683927764107803008726331310570113708256958027918085417365883351876899184385922091985893349109822023145829392674848312844552032707953879310827544631349903871735495442587916601891708022647323239989748671543672015681529246177642252617220485284376383122135420809688831697703376921849434067352506648032271916774254665972071004114460433867397536448989529830974440496051822418286340997559904217489524765217655896742741703109104940495544730660614942193103305784779371040764666937526278158483332533761182085191714972237959236997850842735825542064204723627086043119191204857116713018316712574226778536386027857561106838365114186493634492050186896369407646397251859138803202438033931678013360019446071688112979659942270654574706733716790270298150742536589656130154839985828644799674979511694746272644117991843222560788640987206890798959307546134686536188875043781319927998258971781535792184920468715424449498705798676712308240087515662315038375839882736552703580220773202697804885422332768803206405683899590926309860711914218775938115481373850107864994940018263910140626247532446738642549043677849088427055635519416648840525798566574540116212805476315849417110652732391658859030183708048466033772936247777634481950705087906985291535037536330543454302387577196588139761690686200249022302046777961830435702759229200441766959179813528195345563860457866508014572058638892234454267275296130227638058688560331415574185411514914460702141032788916604548788691265184224450358881477285182227017292076272931293939513156745643940934635274990016728582016729207370987450121462650429335875151116760773613598811088657498586176180478939884746531680116337575421844979489034922833001555007358753397685709116725117040275352541878626017712926179172203490568998153196166018259807728957372099043741756263755006546766651967657276805548494297658258025046389616684376208624944006763626484472180279094024563512441091252351014495815618615493236585721626927195639247503468401799049612697678473550144932193076804051993677713489215255649151882024757579651761683686352173858857405126127114077626357585410906480738390509211658361296104687557279608302263574888435679724054675189877227360815955966065195404285863607831123292259731761327587904855455396913562034404094328212556743364293316830659399536999909094963037284829314216349090304516748161315495907030592088806827969943085424649081617031041492650063082233606875454384540652062205480086356136712576891155045653484089762699953444486708999818703845317747745897966775338750121548106699387986658608550344839130771074660503621074249677936542594888299621112759680007894967551422728520677113568285954759029439435991826397478762106845991442877438567157677964873285596127384357721837148151088184973490034226013314477970808098899499389143640266104698651711722777879994537914855003422036301483382675270423125787267323077974022438403123000497047838470831191279246030266584659538757448603881441903210599474474692743248118729728327599274491808032837640667521516862613041894567761958846554805520326798367239002206135069958210048287468803679279393272282687262560056211808811140181480763320707043194573696898340320969249179348509918487712421363759071322809027629787702587167179743868445162352859295367750457286168357802155000324961809490953548176548610645443773108598638299810205926118108211337413507535808735012405879310299318391162237800228573137522060991281548208193378497668129022121031658504891239469887485658636909550003236462039340989402652585690976135410567403639469410628255056634329748497140804420516059605787012192338287791741295100035887890627976623980034959831921382818957324199626683190865922637098825947993747438216861633514331784995870212907696870320964891539220741260831942976068323074435447072039711454618124172125809563974252145782261587740430721749396534557955521140091233299238244619057371506484677551452814053351277787787875165284321157783536427417700376281483136343889414641747296301091737131282796199766146686360732310168326432567679917756537425334810624465608817245121463418007498364472293393785547192794032006557211820369267481318514420890489039334310851877518236261710221080992109334024298974217138068843429836456820473022012573114257359406097791166176322653620635297320373479160080174763903623919920502824774824790113349217659123974503944163264146906893184770676197227129259110067523004699676945898103937979935307359806768334737984717912421390289382107745189243048214162989359824622807099954082301692554705700248820526103046561844942007410616604330986578157585824493940615462723778147062479745493268512311113111388534590838247347854949814311581256053029631602775530723773587457617288341148622669721126396437658991040304330155779928169665138597311561286405840124638243120769816803823893587332183396192452592597480710775952736606750805191554957928961371683390399054014551676803783750012217348289905629517835038803680771394099687877282557999892329162726979120303578610405793884273381910930881306323485269477917621141643093273066879266780754380051630176989116701419453048743603978800706904395819230755529820190242154680516688197136934161324126500626338243751172023426323487226877163877300835503009578452800040310284146876601461961553357147315988601346933030053898855614128426108352758519451202943140413003917952609068701844843954013787292846513126812504601850565197209811034709495937573298387603386330013450382538360397222364072120333429523595597888544429982668537765868450575850696978178130679668761524357318743752122523487930934971677653824129754457893499291644041296884757708520447987649049294945964868760101515978255606020977389738429804403969868652693683671582933659246318879227826794446385179809852030372858834938374744569230082444111941177074723461042540075856518824113315525607721444086886065406594875902511861429347878419083971399630784587567275137393860040561416667173625518435486128467817961649796379152244052103275358741945023517446100095229646343354781128661262362823572748901464575963242776953585429908454130706317135526013988951294901830525242239748506686336971605894313597251459881927083539033459950627146851549647543240700636234905803977430629356881235567903668328039192561040898507768496114475553500229506562749805681094480476867948964566020346592319787246864753463025292540374377075978517750558052204202695746930110580557440975182397006627807910654259348917591201303009964550852643380582339740952644361008166683891412185879509525627886926627671446101178239316315674617639837684918912198615578632682281740911346884783348543895439397429698694902897222554569704231004451818243554084522387420014501687369964326969014555659224745216630104583015973647156326960638307024349297109571400755087138996692647432309536708091655301475113754023738589318731103723667041716406592175444327429353876039019689990039546490514573804853236346252567707920838142240358820373865589102166328056693315899849145700191327591732182717565829094915953755219788360782266990081277347646306148250941502835362037443467794357648373941150171215679584579695022485058650674936619415101527321215635656420433226905617756643108900405755564058595495348495045847700942445338302239158575033649413406313092095394403116643053177989173318938963287366963873963694797170552374641258462053416725442236709121063637791933777113636973677652500459066559004107877332820659551228165318261786470509994093828463914779393978397902756225046083922304147047831961493131291996288067515236518419272778167452604513174846914494844568714372308772054875285967422854437732951413793230834095006773600269144931389407586132574217111579947960337343597089121816484336481702937989791899209519781630904612975674555242730693403705619246690922682611582011908405481296728903457223096516336679599207696784534390196159251454786601743804872822506978481880361151494008730025233119321149558521359062005473365738040865254704668248355712438523607045398656576889482448422976606122282521044484187416720484986119128932356040663478931900176334234108789585686127791449493474042607529333386864493189081613643002217188917417612687999973207554458524829299635610489394225357723994864973597250384013644882759549964626040517949564987455202767046945829010396274184270213346551749990273325736236207051239540403016392635004050598167550625818908380337084459787739758414274413310394868864574938211925747996946574734789849525176220559692726475899596699435241663303485761433915187542812506717391534895562170227182537694025286704353117967326034815054311772273113801214862132848255950724941183096002904603090385489143022626946814186314613586987994462897340227713660900582443986171298645810952959729192116597168604206125628808685326250193894173493269383822442394989910058405694241937376319874116099011093935937874634238846019183398520996192685349252052569478973163817298075392343273272864510851242553971766393205977461777621475922274419732400295343362598421945911542496758775943195571860531635409166924387831882043138725753347076786877348419659034507565822070085167223541056305648574750633743640512983066588153954416101144193764794753607645348774473380761915656254737024618359562767695229830518878673716208337825654433506326107347657176002279967241009752765937919265247745797791513591337463531003558390975375073065395242005220554929914407884541812073790591289476886325033592158144942870417398847055126661995041690030783279058224695508968947366874992446407402542642515639173561866929004358546971434098297028929408487426578547068573616044034848558504024025762465373309635899472960840965818000053516486602447853181265353324168205900904382161320570483132152743550854972862980762064800629777955386909828187713900555670265935689976487991087690684264334573438226904844632948149409986611687256797445012649751087025378630405829925005127130344234778225267810632373711123098008019936533361940990157062802843801607236312186542719124832147200660706423624123281874736865438092447194746884769920620485427343937493358836500171316573089378802427827152547539335257144086012094358067932384573686521542963442203636433546474836055695428094960394352994602388020630934978784422152443762581772970153129109272290709289934075843106353334926071080675616296750028234597519531972386038594747727525340689885066111746569442600708160159732568018931381012374256437871008153839420985489144231064567407010076730274622470413783088172890348886118038218756273043320136700614339982203322654124209563753710206582397086438345305866767545687859265738102561068932422738605936352888317998046324220977342661355780195814175904029964541799665254687865136788805059783015706627970865228307254721571371544213050267210114102481683540723875273841831696926902756018346756797431557005232160413613621935889330582889185790423442956389565845498173510978818226013726961011595106746328626601470193061528889022095572694596621992046111850591913865931654600339789624262034976765336495068651299145527973758912813054590136177435428896890917720665301142724635087169827911991629822408294982018689411520907820681486430144500422648484475342175556852569593444454267425261400907975103691683069749324605262091703844048771248344784180261459345712289064930623801018390481047599161117499160309730662171913250337489973298604472322474668930632440663297557595271618578980294200049962018403221311876456136068136097945705703267405737414004086733834134407168450314613964238211245782703472727236599153608709258897324064013981138044506175326390585555088572439870023555933256671638631534392780258074016637156912129637470976947294955128521681577507222912139766156356607747584096606780630018990172491445889565548317862556995089410905042459836330674105305247205905836242453473100023300341635083698541289723746116723696725528499560021030392697735746722060654332322977175616156179102425308268535715720504630310065582562159152086874953294178279727147475047904036457828341583101878390607759489753148165898875488624726652723281008569788737655626797275409321923089435352578975072362274554283286612613453899306386248355756324843233020079968742150810572509735933857855090804778818697011386621190624649666234181426572238189723204039472076674898614449932017670199335490662429424666657586157172513507049330550457665980481765793757909600599465725240625878000187812286617856128077398285411672627905995657097769074425693360561918319099711947497880718361759782689494372815191092200700002046570456097074088776529303483934825541558885920904809937368572983115262923017534061513497665292863020079237012522074511559170536618828790971826514035707262862951714793798832542367720046090665736257239872691756841517652836403120333310771819692948878716577545319010892692953852949445426113765170163692429596759086299860366682391823427936116712328710131302662234367777717466086164765071366883365110768226757778048560247130015963255157526210087533975102471813826879850437729957816958648456613062957151794851983663234935420860646883002291336951150063000994599329353608947341892001617943322667661978848635484190828232612544539722423937963571518733774418895997740775426434953532797112167609282680242521080804735435132484280093827921276952549174593076166058011919587780268575458663717481258392944417356495310062713821329277473034414439922050324489670003667888892372080956020277058473800132955771267210431391208707474004949385300787593778353813590445897028905445169591515614064265448073173204092089448418584615613721499938210868568334692944717564519007540709277427903626357436078882668551286570174831729109756777108250725859719488765574589818834955525039618079054469034238324831988422267250774656850695357917589789961448447661746036296515304464400351804481889438079480482852675904307588269449696088840427756340871349210125190699283352604375352710017530045165827649297251900505920337938183474882156320449227396070958429076266967334614683598640999821791987715411616576657660384415097035098151352350173923151760401400732873832466007170340944108647019825710478293942867965109276361176863328453431182906171336540009065174306115852523943547262043700286078275327215138544699190687481635692236482626767349180815387344311452316464769199283914859732067563285796739775232586060119901900572248121772212407754887737209093109606709958609650961302721379121676553644209646017236310356079417295881340305649616307475931495280050009195405321036401628065705196520654841990981700467965076056876985565395369780665340021575228763696412452746407995765533447847235532258263094105419491996981167889821239518917758648919044873579070178647524337773657550000937801589105273973989260677391903208709216296293564019546405962703047008872495347223099773339745898126361200472441323482589794252707232014029176023275678987911040647898575395860634029240743367486642390663331196198975884917556956282972843320496867352409140200563634925524590115776002435275857470764893551421434666563591036797521958617033914469953278786181817387668722336936473931206609577038793659202234833955497464853474861083571434843237156883342801488181178577903879940448438662168641134584232941555930526683395354128131892034695194717221973564257116736976929742831103375014629548497464260302890872659866227556708682561037301738429864363935127590567101940397236897663450284698115284298416021338768395626943995712654349608973748863772091440791274146798637185399405403356655979399472384579298263130783577803374704652984896276795426793907655545026735643648202980449563275598118852831663906951744880993752212576237542041456128949239268018039860650143197818580543656918866062186517933846091767203858504140763779127214947885898718773060618454647563846193864164135125455372176488744719806590219264698354447104680965272067432903866833851910984165483107956036237792971441162544268844692770733321249758043531049211246863750577474232662959169693606321602819616459993763704322452273107050491997065815957399799958585767259386938991218508202426218409220262540369502892029941740138831997775736037403140301365622105843983364046561017641859289004828321780880344687601448360640091920018133915983070584577211709742842152771058005360002556346900704048229436394923591003540554108734917866729315453261760847545650389677732646462933566779461373960220198373999399038405774247376299236821080831223061243878872780762441643746035542384840871895634771425114191144645379050035879273796051669977440636604316459825798876245482557315759250555818505952265198026130787260964610252024972533028624353779849255499662998472090594745346193732955871726664116096404061591776261339222632293595308395691780557710488495539288704886182797022421581892094845927531562140887931320802090637254764388436595462756477236167720660999370835813596658089786594675241526262955305766150965291474539750772099985408868117460568936842901697762407568550244954279836499803738508489761613251739369294881402500228677163623610413964330911919092873421962096127368452773639290466795295995143698163632034001239395870708243377522708511903479951638723710787456907258314307641605927693448801907456724157107270707831178436676082662375379011113995547586002260636525742970705895127149630709236459019894431784386982857176192533914184316250107233353760407265709012123359241603713265403024115021097691866551143326434672388413140148779930675891327502709821746056318748564585875260620544134602538481981429320851583856698162417953244928692964347569093111792671452827475885077575445653413406699560795546224393197248948004808569151411147728444873289506732201045346826063260982828733542143295158668830277607648837246317849028957313554560428049863082637724683098116296925485462348758889083809384802863932283254795542754960054073182776492237338419891314198748114431116815899140837977444673307648778143384716711409112679056296863521634071989936673735736187222061314530892006866699626883281860710568509461930896920772571302405834332659614496773755906905352936045223661185068263082389569488398703162364868022159810435870115209960626757384430619508691874161910039273024824648724711441934074309631817486915342573860662584183687859422469529351909768582132630524072633375416812110662889181299704915618152285500416261335684294475532416283132430936628551367130506455192943135425728969776093791150512280135616741135594507660657287101597132273157799415985965952675007308729250682485376149642829939495151591369987998194881654117638206307593551442527763242524815943226478790910014558623401674555572368570819365662309552744377949658937473137122221374447894659119911552216299497104141540218961122900668578301091060224655288402370303947173789740927826804440586244508335386619446179600987354091082971913967851200793743509793571161090534886943603949961185670564379320275125756692356132242393297817014024973767897623716204708104301413248864001804103943319446232532870075430952237979273781125361696712764480643028372476869297699544178116555482584093909400369287555700810364618153702277099388386141460398458025392304747947770927989523979346608992230753819283721320762106707132318587075112397477288567809022174615564100009108657647100291985047435248736948563414594461674358866725206566479179247034404641398100127325023974066478832385913909478198720509144926431427344961568971488305848073057080577003229536455846535448025706481628988375071546851199911682620611166438316060932833310783357045430630272770412846807608932970501448355583082944934817203385653124102015288360273508291831800594162743627168312429714288285056280240882588138593666941049621289739464928582548323034865651215192462705930378702574439507475524805679880879309952704926296966646703192711541189505213397327356270632204831529108827133579364578221585111830136958371300056371729833058361021309984460358306728593414446923587955575947244464986319659636431304137063279333752080917584898335696173477810654993060410181686518365966286194712747900814012632478590483208202897557379326130205554189322806607591752510414313138008019508754693694430426002044572219101924826172382392387728990912537746461251620861946064971833136942177860468398775770266533362157284520591398338755148825369699122167061497541166315073043917345595446059418869744484526379217558046494592264919939958974139176346559355090235569882084440701154257181283799780363280242778323802598651847154518748019349151728017115104045976103046646428011220985280019858957156117194419561857056077667878496527507920068744176073364622833321612141346202818213197680910268505233863234285472981363579895620734764808021483680856899652534288739375224242764278161029774047040639211300794382862819856465445475110945723484631416784243396909569594977807897411126838989089300286337871232133976701839191511891482072375313827935743003019877247286534589622514570943137759888827963063791748979903356111751164964631391356623421930805549901853822325499138769424656941206725523702215132744417669256254241681418536773116012390623109410884089436911275259480397110406164364168751262630582529609040780937941385905790732512445212953145697485772030319482088873657202810407812505071226799262831573476724311407861146577192631131348576068938206747471489836713922551611980000895376021774891641396320295144663195762691780736726726163824517493975477031876007740278588582430495348053748021257028977097258008706150751349396840625341990896620703755782057334130076871795805562774983629000482511674450103394377592353814262742756262530932062449476005589964633973893998411874638327397919746712703420976494457318756638018183305318237439501225750399071351038145103520627998682568604233958828228137150143521336839840717142192785119452114200702582107761018203624862038225476171386640910625994891571956872724470152890738806587954315520861531371522547847524975956748954108375276231448488144874405704616257811380903314853136927584942420637830295362634135064572027472092048754102403746013796492027086171749894336170851043169355961854578283084726414034962650629391297080689353962844463294673751688914161066784399762367565377973701771311484913685640663903897961865977577590317882871382278389493342582833070984419158962360797878482774407102285088966109577222414925113458567645219811551342535715985290271965027012998347720707237178822528688804472667898004124723458908968387681051977171209929076008283139353497698717646977328318981556286342424235908406124805403792631961007083925592723429844022993499856111177200154301231799908055254965454642008434932231055215030691322810485828268412372544398454354508133815508553625408039555513591335861572863574684628187613314537705914406118248482683212593744030410534149670179934396016830126544679327279340320678397657002168647047597758686186298138650528169337312581289284985565921300457510654512633383194302020897709129361600361768756090993074648182322596041623372550414753483509319776892389974263658039881134082894139777063420750989844000438138089005165495245863077423271678672340202538646912892096270260726588486079146685078126085807390399619078892575198298984655540407601951011959004677040728417749507625091577030077024821159524658903694484605740048839383955862489682117332190675675091786254281090568596151626966269570418082369995993366706773299355730032149158787603879337025248199679370849226094711777759765000279941233824606565302131677193931784345536586490076343955219829489775348978319941117403163374910755773716143803795301048889028724830559201033978975720712878662367464848509046297888253777499804052357387241318189705315491548608885782587246344352287830168552945793498708487510957813298497278592292040050487375011169548672712129109439749109433330002625234615698780739806310891310898727559592431230865796722140605956274645912340123330151609099964700375324982640009683953655387838163452907472139698057688043766588673314379098947907801747817882709766768280025057272081733963048042425681721691895598007263103841292494651307028680291331271758742827445031620772095895332091281043793726888925919127729197130725932518945496835875451041690801947552560801244124814014426046391263186669412558146555574515237393299530443254930794388463542131063430852531620413515350468657360339060471573387547494841632683468762985547701022160983194233299458872451011164037815587045708292036734995888371551017598917820921348563361827481694162328517126570005597265736345215369349102183676958717042192579377508379861504381736530181456741626921588217925839889744100304563630403373845522887416065279028561529618926742272386321973277774296368292003648302775296508266538003071994553075374280657407051328092854803581913806109620472312256868366594796495373086169865210584118510887273616376866911847742478719966070709283385943724555324246967782923971497733029523505234141561554163523608936702859240870333348482388563436939485868494607823743913854109352145295510116443064816311957059208808823763101112979293701321829092282268989864472200719899500747529358571128404564085792729948387436932848588046221133299380286873772674275341909621540799809116338045462206622546097196443451867207713650004398724548441588871163904003485833372727195422400461470322398515179123174484386799652342128727547159536085627815637982474655955100134003449594524423965973517004394007967489937744954576840408444422733902386800995888234333569815365880850582770946130362275380996423066757362043145208166760490705287108516168442485129384545385815651406890739086671588213658818638167262468600480138610166487694740260960655389312049647268188693648576881844104454902414229594234392191134290734411197501861291885070780398427530524433928385404975753957044559795202540821337158739254389723868173796742126759128069876963048538989312985980910602891872243189415799589289347711765379557730118313720553008107002673681684628539872342641555156351169326139823647165363204414197301222469172059543606282142250984950283069178301181825499538550119505698873710262269906840347184650593956374963393769972311699068993108888856363250599877895523190387905173485709511440602515601305443993569995850059387109394979130839136820695373561256056627445801751824182809113460472514277804977696572528242058105428252330891000788911830438610066186490663263767056440217678149642124301117127941592825502919388383882691937534561442951940838062227794187857863067203377758566360509066098304146153342577241851678822088253304522878842551300624080670451800241268219891098712088805506352964700569167600093661727009947676647373981716496085794878482967113672519568753593020494623667860572101526878296225771768682563057355783158975433533377839392452757414495565259642064602468071465607249806272741711196503897177593429102973704556705598722662215133692284157596527906586608148789216422296322486263106415551188378586286337218661948168668410700149898528964037672833416553704156442821060281940899359856139085227424962985609531556114745737586186288420278580425707392993846863681435583437995447757536294209290377300972433509893860420571804182690398676333991393475157483357946317619282016352861130900953726387878524135153812819933276670627844886714825387998315760105607584810315967496737664790691861546779683444055932763880834325630656585125545271592721501038744094841781037007970958737127365572311919939271328238114277309168379067897223726950889341987286360846737505627627671213877407097533524196846909930041422990206815727079530896368154317740879306989365638267713526742745900173129706586458123367316811058332759221392007312728973442748120126912076079599323098975186953779433256196591130580608296108143822944045000788968721143913425184063720197857624461494292152224314601313727244943577321212993951213160752067464701890474989485184584990453364600386810971334542078123966442397531823053968149334712730049288759214399518053258977186719019852732489554075251808170687046728055924463383535253425043876665417387285979511471174428786320445528442386013488203723917984916829951600877889291157823048412008998241512231147592375734666502664825584008996863800228493822102758075551509583886202645600897184701546485713697301044044058258054636120761826157021963071388226294651752319394209110897873668775569832704613622127471185414902028478187148674254298091930098403562051296735277855240974749623789660898971230550707267529313662975214925924998289820261169508317362247696847598589926615064054056957771217279258133788312286204812086267674130556160543914680246504531243789403525390385705266295562944551666164131712250744716931799639822253468490802206138407203172621405430616762358793507992983424239150040982090195938723391710071808983779847823952343238921642969467688399671580353063632060887119934962337416686714157940169921193353785287404079965672423238697430686632094455156657710714507461252336241497971325127466452536477772553675393970550056751692785475575745290335316563345937686285868020562875084958797975395052585810154602927972697781922138862690725684567522445118176255036754876469309042448614768968087084977850660161975191617645928826561167568305595583066635941255545785810739412007599303253587865163811107522595897423581323293508777615044024405800259433540536144070735967466973318239860752668723577559665843279002469212597707771406766616499034902492557609222345388372530809027837685682931618770423609992034012094365643070988543015495665220168607781406110038597134196756111355000025954875792144670333693594407698958794910337650394656870574611629006851362947510663085544631504795102142040730938396492943434864126260786198357542155223895130724209993452513068933883240050940568554308284559233888588618539463919828552657834443573451566466267020584123159150737769840457403557253823613925636003543910676302997476273419341002482312055859970756028738781998843085054201952279979363435517524770116598708069959141272511396292316406666881564638497875910999067212262712019100917906313373682026306983806010923476356001318063611500825773990486155904334793934585134044827361253007583944172055818657686513867828461934533790094753258264525298516354059730118362842343053585751086183780927236730603512280648349151461168442613998897192435145635592885420075659983085152752688861021948678302973166338230555452683949374363117321653336571434810785065335535622754720794176715678483934515721598729639042804363631263423682570735975888381164908637343871338276366849459574323554461528235236026421815833398643183126894236928860992290107539762413983793826685372527363763414774544417407965825724188763276958732852688762760336747642316370533296310106009621022084351703253558125337088295081205959213898403177627052345518127305803216497471065527092534393901764535439785825885278853413162401028115232180433665393948231513497789972790456214178603527938388327387738995600062277381275115599495504849432639903827276786873213780179858327231812900624691907475315530723542503586190731807826591921881415232699878898650816572897607853455720328421381740816581656838220690990876660972062598286550419791417842347114054418640083569762913222797215622187805832214693610810397045164850734546763678587977360940155846507032630510682177714039489836527679203616759190689617929186130333578672303116975672855452828790027378765075991613070693331099849438120573962528160164710240815376902573853261891791623750594799859351571877482396337407613050261491592573718105834198235799137926647699863996905342823235501270055299023367992758829113211859749334996525719122039574149153188805731367354004618553513940829010843513912136198324265794462647921570966087962466502405596420994358524022691371342211231217289554864776289158670254505610110664542015458291910474444958346365997211303359124323283208218814427021747196588100483143441769806808092773879854494771075650105806432353857416484070342345742803454792145774832974779933796773100493944162492540596030761726459304630097880231910477965875060745396193981639495209059501063143200254909580683588319581471548905382171891058111573981672154359877318394606953451353302103621633350396097612330405147868245764150940906673526888372308266469645445788840680273336438875939902041946137522729708866632274786857399491308068014903291788749249736176975345872533608423355732234284281485383648048807866193987251493929936866907521019726801889940449594469162708010311107550734545221701546955131264627942316914874485476704800611597548440000913322959380058448713993874171994193587174676774114880875277048820651909477129167126127735461263282504743043135841640881165736777332926893277920980021472455359480604869549014821015274210466324614784739420933075733522302207063546505511209585416668568625690436715042746215824134665701915858321088463920715863185768774476190823190917713248383159565930581037428703744461605885477870850807729851304810158393972275838041036703898734615601882142461978639437539671910916489905884287285595359615421878166896926917154090275968634430930814068793191887963741648495339777096470833206155091354291323818011689878888003650827149416374891930918445920565325544073848055684200734771817803449068100888063960297939965750881538511634437454346595171371837098960750094498065171294254728073188787247311000210598852059649203633724027330290520063292698419145449086346598317517261354704425298789537450431931683724949081828013081189264903669418803778127435376411769557955234269266475644170802703777551812918963081549874498079169885930538633535547477138749424309818316111551583416792703373454444562669783798109419294211319489021488501603429677470574263936746152592958613114679665710694315133240239105406163740715697745924260091144023052982634711693545463523256168510219647104836144954486712110802353218474389526035285645732980687638028355803032995697742874044739724347069055379515768310145580992605866620968979947547575900483239938641263043145593614853962318976774331642148714218083870442081622209079717414280426656225492879119591345772803576261389283546456849629565827735039890857669624175488114565719784780671050500500867935743265479570630970675872211035523039234092549753600975655585516847760660741756866850961069060617154335249189860741822306479884441480426475099886933065565434532300069495237476267619314997726263965562102954145296959257855473142212101812983355306809226176275388365334685738314847812249783193639384601326300502370300679738323728877163351726191238739730271547065727598733302882717137831419762808811446672545616195718194842961114799269695443055888351541786742145238333653058020231909732743554332035439741700588925555959487930623585605507034142230414254776844753787836238906580680760966050304360215693202363981147741311773159154343361592002179728885979462179493190541862533665954185142135457044648255267187917056319167566237995303082349776898788462484179473251015985188448171691971986755730181239255718776424148918846175273787526602907125398729124831654509548481132360670295025344484594595290869022030863116129155229788530618586374557287981161108032949783017528272180231614308228052399228268985083593578038428216451679096342929166741356249598824768553058844129949254175067046423992424749116381256050871104197180658721359705552891213101348363820204688376807871296118139484269992702775433831419602957180846349798366675795628696585710027628513077754110957591218553137189911890189336930390033540462872822348104837395843191790514349752924609771774994127438045408132809387796035619089737711406567579428317852506364231127213901406927741676522952361608671924876148748442427991516062013004100165144022082364031970404807329286070411435769644465282864351626521592130723270229423962395773518392454728924312468729783214188983426647946376903455362377354212841589003342413927483030882405231002164460891241379682546379325669820779152820379009490756593011069537002136404406688298060709360275075307893366140807221818906809967614122960709958446236766657266241695611642442868166389965993046616936512347327590241696984371809340605315138506209993266952325731328044041732959880470273267056073922073925147641005939123102476997250862808965055457703325864247796416287559829596061485246660327689781319649134255350866122398005038624662582069061953773723409779884964002998341993068580266734578689584842661554503159847352606539468108548450947006069170227838990523886409550366280390747105682367019086793163997294672236450544251152921999486315479241650658943446510407539809831192171804767474800025775730325981167796504917898459272217160262910613565532832632186334104094710385993781316139139374923978581695406367759668452772855706947324791761287267319549536536840946763224078282010883015221404871564256930670956843260209963094097929900255837872080249959562836052033651768044392012519315426155515277834057785996802797609500729830580555952177559194945061049658929972444306416079815649536868182332437084404706672298221950937666947268974209632733232261876658506345808187281091739710411888340216158641749012622537221303933176535901952749941898674197185729430688834924942084281598970284989071192321369572331839947780089980935589736697778588632363242058856117714289546690465613676020933889366795988067049043953101688665161314429861253836064957635708933412941189035934293985186931086497044953772629639435598007806926415727796863832643230457401492700363378860820287687904982654993187310415187650241471251027659830117687560795903014458477518224785405881057226818670816850130554474177676638509387584273236336481118884997012065610584776169769914078356979215308813041793904490453854664862759395819344011469964036494323743111464524253088294466825475182513889923392710875964573207957779106260952638714136439252456287960819775197783960105987414758876281459119230040063846995693184127937915674243912735911918417102133982769904168700396660032637673550016077429551347294501244962637773702261656874773588210846063523187842887409571865609622748638831586391310671693748188411201626153221838835583612098261603391855553297791339520432251333288359774396181282267959386384087725596935873668093426941793999354404657553580139358486445430119116079691641732982666814761511476317011329486463665906775207873358295485573342811537331616564721095230932732144504001289288055705436837972387138660281187131772211770920570130547635310287883605122031085782644397052488037551575094122990338651204269763077025355790004235483972070951553801981381362293137709589774448109866845333415853094535689358965099234463715878606147350343678600691642758034444906689386419776415810829391489882745124639283003544166444548451220784755087595078334917013504065927946228196906315160573359164367152652286818070646605716384859240348813243952973139328552557975812863992690975848369124015759491463768469960741595126211594604099746599861025996827761506507032574152925666273201184268809533348709239987783899792170955217829009506371309844196685916253564309620894378340759585934117745663105807110642134093576811605450189518812649780468239043517090682601163194814193970166100741470357362775105971203495721348441413782487852610263069906682994432936172091713251804448623729912084642318676889355255685114911897797630682574149405931702532349414928997600132542883379988920625883563588109756595227738645629940786996207736666422578824274189143592105247509053631494713228195764432558895036779930292014796168580051153709547749722712512788820069972777662154983231230857585471515435423593840021263912640272941851394687684302797017167184180717477718359678380849410780158293099720460951044615105924976753971002140594625028271882055887636639081859884638992519369992868125911507153372028268790493146830727219354259152307616616994056441514428208242403491559786130321861564357499896900593841201287574971353871310878002465743737987868277078753068812165142736171163154537552149796144039968781680395462620825633294490563373920133454363179045406342946307396079019179814505760065933269000393570777738719404518681671586720701049643155440366170614329495907082704208214056635779023411425790687874169138382587112761118361193364704377973121199045420758343589408760575988668856767945556739888321280592137898975705327697508800694733939523798700432369731634397407449210010999298151852439838257056184578461335768525449885978399298743600879072238792170750915201087579312509270235055866494818234195163732776481599975272148476643586019889811038091843670529867403364157452967218546861252944755365225774755501430132621380913531755723503932065269178201534502740600590009762879458070902761451112021724842834798934920349910669656675692425787321537186623548745785685091749282603089737454758987035197353285677211813624826071139710515903647062079534525552786052144032942696286035892106911397118600002929265421473931801482765282211037007258432563797792172880765664256495129613577294747141138774922776742357887865878204553647207515427464231857028631795927950889502620242865970630560117775521014776161097256655840668477253844569627268800960389585706142499986909935623893414004132493529476575379376278732553287669909602719653535232201541796929612779293359052579070266982524491564238032832320724089964487806204632372427904231751593390762337630430066565813645947951905163582448287930887256207803579631901935087595559151925233925120636675229024219113169364089704421541855153756434794362261575900434934097751930199344587068686180761805857895008258369077489869991767028504468425569806531450894895853923742371983125785182875938820874464445979441331991900912229518016191134238068832827704972323234780078650807799478645671792913308905337739784770930488639778496829279197615303171395632648157421247445683125631341618106928767507766209809637173339531622087423243639106305573331341808564343686449121027688044561700532155691616662501481509639407113751583032330204366601841297237820712572902455259055060130411249631214634213096208617963487826946780434281073647981310681235164427541490364992205614241959938160331829511838269039572676105861247123849160375593586366513039838279950185276806624551298229176375585352316857986192331512289689649975309488258361882804343553344013853569255487506019129065635562428495423973319688661435114275839016170863477076552615091398790234790222805027294307207880817120094745203570788888455016617442636896692350388283472043788615685207701795192780234170375070458759045850510163029081549261653479323234042154853518939986759268336534549165478622055654037621312697742005796925158721133470696085407650567818714660362928491000942804568376222561013576358072310833774246933471609763647823823293254880889795152905849882688554380831378806378653686202761016996909895379357626235457508448980216857192940256345695393103060793883114051650044055691546132774170805632033285558157563051095195250257896941537507704702167534605380175022799156010763842214265365203611637468635726212535682996935944830903974200130370035584382306454846554889919136477685540780600344183573620795518925690898079620442866875682704598733090498164445770649120043774802651747262237406349739440829686170969875577092154788200567535751471564604898304654668204797475810314870673932534201803094945487381862432138460923711045418715926185453819774191930650520915981115028300747567929126756670911753364563352618265169277993033691327982028161278395480396585789584108926665069037853980050638906471434852929792836150936445279864584631842849209983464441545235128597518067387545275231584913004122440484892376706083731100019648929002480400421450058856760787949932400754818246773753852489441233881431750794551757567919539977232392788470735426805485840469010538034032097780360234688142599197883509827023925207830526177757454196221287625662467383231140258674109056926115111461433848596418441498233575940842376512157864012832471064574571839917665787330655011229739975922628740974552109774498734417937696264106770801234570032351795590322163509733915625668081625028020243249558132387648974948095697304901797806468666890731115950734479185470961026430713254571787632766238533398803332734828087211987337482701907713408332874121737842455978543656431500712270520066872099654786323193439800573913258022645069224963668979828182038438264848133136118974862374885768565619877168091236507732295270185607733210592177505564324361803500206425394561261676479706625042590368049748023299891419458500138843332851324206548943651721552608373679365272903557618262079257349464694600539095571991079891172767240634860265217754537724631603490607579009033637079486808495607499686100191693147355399861196927731615049124516301238629328897397219071679650877871275512340987854402550192513710303040616870497972669441475418719974265258906267058277700703700892635948592981072870125384784683364860035592818257627131959644665301472416044675805142291747192825760228679388440518146237711422944597011250409163863250729571821231234112669222646042667086233037964986515324237755231634965008429176809468077845299615580769343087204873419885539906684008072834364971732325391220079627082801986176656781250710555014153332618936573108540591256750291776806671910196231646654984288169412600447347266884717190263635710387791962616411490828656448343176795680844609829712210539378897113016544440601024296173853217499392969957574452350733341591815839930574787162366748301315524922588912137698724446673440709325520866604502338946272158137855141870185701304541699996387117871334523366104444908756316126857030381561296299063572184892927284086023718969600916425132322606905327241702749653785122326053902995356597298970924543669466821364795503640389833442302893052033888472719427201137985849191908694967787407361315543624153355165335590862876527239061714028239732853143779857457093438110101774908325327652850235221529887525274795917970538461942894375296116617550280128380190430208471603560469249423440588224183917816568066217820187586696338172252369005803645684399535850711156313853075461141159731327294177005353417624929254562792226496668718671563916119917278756075526648947879501227493094031718491737893376558501289957349861279479446176325126255238209916001908987607801884399104650765753830606273509145757902410790234249084424343906150685056523405394260060522612799841024328340160608510397397190233271138343499248639381393637523794261212556453419236771073025021244617610878128002466180167513726432051887401909803130584118625850415317372829763001754387698660588393753952827885396468261930759912157665501952765754212481121031412970741615944183125160921765410106367832347201546939650689404472472536256567034300119097891360075741127409782413472062613194466503233603295029594612636907621575407367356545947953704719594665957718982154542717979011055606947023704709613070608751329146679430295696533810398693154995440744039057620145632441228668613437848832649001164155328944473429746189129054861523415801573399694199259747441640255366625698734547765204612603360991760826136787051447044625891299131796146753198187166435721724548295149896984148391304704518328779984577729327081824397790943743740953648720661297309226817092059027893637311453809910418235902842424664597181665775339886436585725400717138169162308270755766654739444910604689779547253758011487854702287976761396052181464920305537968241184338780504853832439748961142183092103813365424297793068296149541721306727817638130787651538002412567991306781806683098179752599397911534784789959957822735326985510927838636976408476683115673167350404028948773801470503925578364502465010944586333303899951730313418589375372767661956361786572212159097478386059635850629284434072247145671996867811091968945887747134874505278587574233371971799500204534115255018622031436178241363662771233449292278727002966357478613413693928361404130074697311081102250698904319746261305499260838064523034592718805607628023760256932062654149739402015696389714764039942652992362201025820709033214862588501012656270436370709482416385744401101076515370751275499044343214875376804973955563522572551008023372774184747210893422297619498991661803546051168766282867370794543117740243087472932906624828757767421004463324087135905195453736320483338842685762817131669270351296848579980880178244737561477987188944301760406384999334817425373659110863942381850563250071749643869816533087698810126120769126181145470606192632437431238127076360773069334570339752817392441890459848672041064591455976768678060997144990717394961079987818115062609656362198617634141457235212128099278163257615294266173776995800072123073121518585504810374977548258113185251687476286335206941809983027784660971134907063909446271021306316462698375075690765037022122518097828731526507369378484813371123707169603716107994929253387361141869218955037760767578293733114798375355907708116443434106003809279417002038261988168468359333208772519690679381807266657063548138649143911477846515217204228901662010144635445450862719850260190094505105607615464507284397041621710343744874324661002201850119247577369742223823634335023084300858506634741970880317118261154038534069749179317595737420579685712683199416350817233548488202642794996985118265648790991855811431134421232990318597244793389741071441037851963201500897203580165534458560668942579953199494907671783874097681851146533424348607144048531402724416344000182244618373778289491396595643615942128574357204521006216315524602366733848543924397809734801585257829315503695835040903470587634748093925141380775427492436274840645024403161642975189291956016983863823851946688976940989446172790440904911673316015580162330885666576775642773083947236899831642212671791855574286250398058255436914448140746907937267501040452976772941930650700406318249391158912375413284593420347783153896842021307647429238373888530269989750488581132251945044931872461730950015121983637101705312688236524405421577496711226883143387786809399637028575775131170519842807599646856573483913386996718189679874760900146083852653750473302609594606793347506340093968515658001531533093147581614334643146928346354131293536220225495137626256783064657150887907284275945077907854265127216102899519369033394932963179181020933536052260139182820339308524862930290073418065583960744389126843111008856391978462932297193110241172196354079895461104432455505036951064299923433138215915520885052080037710197642930646107640981934289848141063537787338780937302317617601441468189854610578976407371832701604452298208211359615513978770407299225999825508795709773000774572970076145410977224961224207350698742900578953059862413571271360825434982693410254683893319668232170886387887987471503302983978320920260682688671114295498719222168222349811236034105327842398959620388150565855691029668950814506649548856535867899738086001551084834214880254654038620385045188077802580694553402489468038740963120145966920130637444045592142116176361850274859823887838230091486900383493531444384535373936524898280150152435677679214077116977970417804528195205687498675012930520822077519247153499821807897568205578589866388991670361331352903585554421525297754788613595998457000213984304719720191604326061584277957248509165425275299875684228563542769574195442420511010277910252989474574528942513070142932341205012155535181301102880401338934707055513996133988706475270951517854456872107621046772997467022639717207847588269031783626758224255544674822767074569217633117577038326974109467931811867340751369819501117129134961483516778842854531420072564652515395893432261058183634447753514660400067484595359433507360003752312352712807858325532340469445987398968169171248362407417550990702954561868186401847615667781070301479235094630352418435740960824922956628492911681850155620736288457126216399749003241187397701993205699717146696060795802054796529552439899753841148286773282335318738485152771645800609951404896282482107068609130951890448746955232618774317283172764620195276473254329938718821626385105553270286091334140874275898250908787352107064875797244572899544677458528095655074001662928599455796678782478396325641167451203204424444686664465470866984897575394242109182134336091883879897995724292601345814619827617592338813872003621049226344577199579062318646534255981607751070368601377658242368577469806711310786369069100609191255505885329582493302642984165839136182213461564488803521410277111228429171613410822532116921126976142004813705038585686086473327648674001769573493223865846837333302334793169534227151169514497363971312084219269279695971969476358634798550044549568543719972430132586583795256444804133948183046173822475003754904834489872121263553436810348882952510029463920747623206440732513821401186043682294777018349721397369671727436166654939422596184833898976710526994775874168392975205731055922824395637992684780298007311609932479195632233089037165960170119291004236185864446056184588520538967532364847407851793723302837872171885314911894662622035634911453058028753466453720294662834117974974254167346993036833743672168246141641953628851023656915567205704390218268445602055392144540199992837448756506722109764808210977701678369971675124667441884164315851684907135728087446837219663357117135143465079426930978983550067494546661502464526026401668408369914637527163219494603614679657002878462233033825477181952439448998531147645721346576902634140702180048427151567568991259642741344545677971429540440625681492208616898486369365755606523972589134671855326962581610970520966296520827498827188011661763739439895823380071828179887716905369444305131270713936761908350319617801522576102295749780431292260449916438726278584942047531702402531384208812034225013730724600480799149322517008835604343926016439288384506390540908530344065399227760608002929681346309798628798812459596585957520259387809536257867888459068290839573320973402493516981015174602871641600105857851338216798841602452010090834179785674422749544896667169852553580191682836221922545775687596902633248365909619263956607105541099579440828739630126756265439662121063112691290116064070730843723488351131926488051106286725322674037849845753435579850118395045781312860971517850293742282645627661820436408682019187105590607818242236577530426723503162848320627438365100002934955140501758294501276743144907707945347187225289084158967080658097951766675308206033117606988479523375951788582389499262137433385413740543698964125742020938301520164315629555445188467809107971951805260539252670016265676433822852590665898998289486881951844712751343809075298497150593474166627950910969170906163965283708680259301979362407176027858445637005216296138317037078832731095143654209935274733683028950377495276106639903765670426438913190801602228997638323866421422445116463053838976039204677978697033311531060891765908959762430457383748289735053899645857395013699336593192326853105483229828104083777529665352362423798658425900613016062115789796522639109959515899350389140978128642329180719501078289319443669147954691626838933214221072550451944739414087993636682223876026466066343490697377114038048963755396354174681693099549609018084150576114268051785180553470440997314707260702689310647630281836476407492501334561823221319415849524310581753277318237589127644513509369524659598226959273582707371478654115858824408395464891107131491415820305555616352309451836229690452587617798117596064507147274607926747235224967973648752874280655382849642195764818705047069064021537595349314052073114267601868648790907480927753789350750818409368485223631536917733603665638186024555442889351289944811963459468990207190966292319503795247521838784593511964056000973067249531972934374761492785789163566690835366362679946577525406834309619211535447924801575655609337554656195602916396688771505126531446173015482515522294166042188192216602337641006920711369980706546542016262369276557580691409169374615435882441682177227533112334851373920621363885468342451531178855470684551561165663501782469142678649683865931069461553763194679013619219833853101638471141990602776648050797299090181573114951782360230700346914799326030658393315061365139392638832022372413879773635295029413666805388085638285068009957086574024510592544944736688299073562447014193498913644027876808710009270655149254439945556533046129473217765879924628498775376127919559878821537797168685791042177837705229626076697397723945311107072264069946947524361160318281995596739544840062323356391613594491177535317312847014830828253973026599054517905751637234731047918677581820108819003409726839970533692174477220703446547512844344080161926930717253565859523942421003156299686261655625892760878601417219632361469091236048721559940319331105068019271784424677742849764480010658682471656914386316009743713080553291839379225015140641680514883001067821010070672902247372623273063126926800251749599647207565452885058319574199376791231651866818358685208307030617747751297438663118198543840605817376063529359794780807985474508717024179910823454947592527108729325136704866893862740520750170681818695029651156149742808119866664706791466189749839484274635478224770723786654229282386648400518208508616727599094603068788082487483633560222286632685481961689151290437742975243996332897132675195554968699821773697680333442210372875326484481823090089229099585480145523436719117822102416322583732709783836553317673299370921076717301393523902553853963865812681300193502575410212326072959793492710530425766342612678482653797449341606055601145130626602738986305317109508015055766301732368168884566639074572517853664855346388099567350339179703932999273406028301482384186334478701060461852733858288147809031437156049264019179424003479952766614150845852038347611433122273542122459212330326289116159348252430499816491833890006063169895666609688864590095864559489852457472462862141128941995161045223942419063462230848963911520523034712817830503814115332659956403026868206139948345052575006702611118427029554954071402882578689111726687855597754052810600661184619823399338539722895320115666414521570557926824095990404638280045124619307605264865271946905380456507533468298143021613237310973368786808059303872776245936166680320965093225008462518726381765867524253674302471457575454979575546853843721020974625738431341228320442988831427130240977583534446845104018772734456563010877047944909067245356978939918746085102827934350915446006304865863081583456053138923638160546573469271639472594311800767308646353569785780820555193952844251830903959917086355613211855571882660922434857066671780655421039720774304206383050597773664659410551399810585568215177774777890684102858881311764836118681881794837467183948309218337224088405092179256905266419280927170516573791768421571514254697532470693010763446965926379927153697280967835322662223111526801295712616991327129344090245019238028073390034322046130912353348907617186608445411275873169304982338821556769573581584366322249804222743432367295547134457047600755918763668331072903834612748811445130686927448251103822284523316709134646451972776163978028192358001109009452137003629080006691746089430382325506599455841841286364143443117377489616773212658318175160503044895373607012672645585758933404204233236454286716444496580692590466257893912724749860311362724650903219786011887197465682338383402379152687897117009023584571384212403933746807680659981541268398234846835855399820153075175401531112757454457366277632765328242610848546456987172608282709801691901572519685322523270696064867580171755521827223462568873881501565428370714347032504138864782215742367376485172752135325182975113468213669858667594667001848250781195403119572369431029913366312910995143876732928744155567360680552355617672832728603832747951068284246298504739973102672094575531656687671100423969658026861818403470512744654964277710182760149986012540367231151004228720569931496514288449983560919529159818275714560438829354692526140401462880426250243131993541207974784582821690210447725342266532194304969507387148103108465642729866705379133740490420783177025453243308579723219266003919270005621867081870460895106675697700283403836417197722843528111025559270197042115384722154678667242806435294547929139488940075321244579266589239500039355023783134145367810582728869194442548804731032814816340365757023413419443744904669245018444543764561891062262388175411018239348677191949283969679932759164231502709176939769751952607991167244817740422649393682669160925695538387154328549850385705226039869103222356709672550847716719037150721177073004142397921302516255638629843142128482905829880539549563293432306880140835937672134445899003054445380600343174769336394543302763655086877311266988295329951419905196527450460343822169447185766709660511865951048846648623767632831275401213980998975399338872334865014491082055342231367557461900374448486774341848534774778015148694844589369555238413240036474379854797235502381788907223031407786533689619126880098757005759571281532825351162740372626071564520423402779865364405299418440156221028625552637716572669752807886878463288915521233447599468643529240192533149633451139781198288209345328636730470511261276515411899722137490878865599788632077250254475888716917371454967482870154339382166359207944760442525740579254323384471037156256857345769039806483408058259872406232844739576509909842096674277196779517116131238859421912558218142610370787565341575299499517977649588350553953722259848725082746599052153915461326803180289845148838164793979672005533116232536449714250688853833638280832416969525845759611666436995013764618681206456781671156220184424344694943947689733213858656868528286342707596874156078731460820012227413319416813788499328511655508372689022453739990467508832096459117555102637067291171548496052920196155345054789461599318140440530172157513587184986685360564214506877747740222086712506895577030093144620916491457987068078233604158208863944091176965823123549931034308773071316595802667867979952263329360706564533047734838938277194425764331389741376684499100037495785184273127279217621555786273786289705437954735903071810442799467587765855299321377067697087406988791024124279272706431031285421236742393050083375025903820203892606824055219336485329277548246487238037696233018908064615748685230267314460374625637013663244151553470210645768273967151167692085284328650281586976535252984565852365584532210583009128031968553924860517916091935056400939093924470212075709135024887604079092568286431478369567567712116932196183042889031699899806795531737432901536933398625955683064930946747437975883012503609963562420900849767874609552668710239886225657225059245351769417194557400410050713454792167772148312310100979571197477308928839386610552723187613657985634080737155794990565971485225598096862217708142989304799866037926434656142860229474918408028760995671100856090265925513263304404603180892001735916187501226027044024542196928824921745638762944302051462514961494217956946663540365165548515873907211068150580365248661328390786731384240444277118694745780545149188041003487269190867620937197966596531949233125905419982040982059483671305800290976283913056334757835881757278419658867851220623075978174344214513731480005581612870038781378394767227279092124095009956276577955925617187592704660620485648428244647969212642200662527010722931135942839670955198711666198744663091222337221811928772029492241568807754589385969986842078498548704650851110846282757976462909470037994999480139961508281176651673784189341934532773850745227527392791071853352798464147212670476969780323894738683208111457672941629804229720118899794243109265565400406520065966325696155831359331642787966781203825537708988341677648288934573802742284732119717583966854340819080511858926855959137625018852840778490442821700598815608942606287493417624792272296604282573978882483334973727936859907645016490206367955759806513156864359452783853693989151333217242115852224145806781959823465620568455426453837126461044856024067156901096346666744008728335765554010448199316620340794542846988961108054463950195159935030643717721697934053674610502475202877653538970726029455699787732305172832829090135541536932985215423464425765561020996511453460868533290062795808955114394336515987995376170238148184079375498594003620494454072323200899871556937690492492599695697182051722257092832617674302387729845991169259041025880625302996295999436130298723784350397998117197131675244683607020612987879809768956915923854239497025660511204031287167591095817509424910314405870010816339488296159896526843748983649492809892694952719594326617207574633410379063259932474440686112868309312236044520145726895533037181946326380514967350847050376177678523048654171601237375849529981263400347745824331461051031254955436711928670742297823608703248934792610302275080404562791921245075583249102096598493815785629170672543674586045108513475360446943787054295261703125101366093047176224578424094466382647564471708219032302135148699848486299890122941347563701074436278523054091173311062146064226143017675780891228429701630254557367934829472403899941157217258578962883349081851813852316997593231801147644878361071886226780781032552640827339738386531181166247260215101817069268879903859408521723155879742366875961960639269334755862937883661212094460158793589726506559756703036388962238940178648784391962508598244059799476501908457751717247808182586959675654119566877323913504324214097912108106987087315552591483733600722321898296655782275857743237886889064282077151983038529247165902334292478548683025175626010878467955252253410968191019260427873433737623021309404725986252108818435014078300987613258562586319007382544586759737058526051157271952940862592261776493872670205105410236510279402670325704594686798530457836510016975733943178603249597019588060694997822070571704436219643071869754464600448673295354221450188456299700727808628269694413877215462710534742297257791122608360629516014871453522707632498565738150839186974305919039256255141262390919852341410100844716535934242589110804675180662793736516967659381204112810648917216220190852184137038637821855995663366268854360754069591360821202834900154049278383032886242262942536099477695953850132995586116542059265853070831700979399419131431979286013888401428708951434593346690208794886729264749361127633122024173854454600088256029891635883616452793928411561117355687202231957544471946728794761233789238448977403939771206826828073564120860097368130123753532402649706455320572103587559946218091994954034318355220561578546519793107941169940987789039799780536722565301213370229951030796320178653429662863220711928265228949628933824264620481439626289428510221975425775169227295233874973963802767853783759052457997620806490911599346897787697066857524916020788562119870491590939708245713663746574659104022469495172705298529627441601631234461779076133651682250200895041625387639915797844991084612373958116456111174138135896606034148878810356891870947050145302697222216558873871786060131312888805223713139033353597149561151883890977021210586772811422504366521846375093057790053673742131861528405045646034425143051889159366264209866974822483288761032033107423821199978298798295331941930676455059923156095227939045879967192347484690663170610141603849669190388261632745512369807550454639215973479484884378535687043461444011461731554966634189380943446876690368067928601477640686258494867620189333332194512517285090133178206526504497749255307014408207722908958377705626242912839944134961961377268465371208595635357356080481905980112405638195253124978599689337126318665199698330757713217562177253821419560192652049009202956216592450892093867879547159632756654875380473815214400105953792763940875644106552510454831118329474243401838439558018342399437102966542851005999933908609571772333189127434268396057111365590157142856216234332854620393365815249146944475798110931528329777070693701513516624486133187748387046624564630788076725422578227393514248236694887508933094702625625263519099459883774050821196896802346817965763757154531765348743605395587477834595246560462600271151867921657505398266138411534504180961836434178172732540527135519334189337465566805727800141323632405140597591449265594204547685910187989112895307172716995754893264111173344595887902131836476841692085978289021149827606591005068583223016456288499184642193464782571234135174083365928908903828781880058625073383486040393653899667413263790161876221281456806677409481522682826492866977054637632560839543209123261955704681446527787151117588125128713550555035965067490767574669230390601995093448606374072887250794857914483937240097423789988347796166599292690420272956326354563347350752256700307554305133554628521122319762138439764136609495824166258131800070346233654303387137075338145306097654521807615493092865197916289902523181745863379615877177114977112318941125017553495604890804858034978695896998490363579482977725784473963356099451527782049819991567245907888200507901986102177493201925766743230764758468607026651018459393169983852059115379357871176023693236891943006362009238093973327453048103288360095417677932718667584283236648826682674259169817197935208209958546255540239022763076030625294827704534640757687783213840829701028439210605237204861668216520206199636456332738674982687763308700658709551128344681256835186295209397272446517346400607178756601485895521064874021988394950994315120119254866026846798848334229254239443277723983175802299005185260788739468414310354478960672156684259751520173925522370248348957538855432196090595197509531096253340070192832826670877399335703161726458193396933072310101091424665037070781596888895820389049590048717808514839582840167885938685897192851988937625267205488301868423505135072593425165632470269494923081421067670894082568278250487110748464753259779860540750348514303761252597359417732370882569423069281745177303003301199459229759028237473647268593393655732664553309826307246793816935373466054738517977634801071837362701389960560278673139032118956033359401224217988298344272260341603001762107043695980638480460748225849292276579716619021369477201550578051206912357495748547126108584098285652411338864859709301226791106122307837953421723490754392268416012081195976401337647582956597952704321092127074545110689737781070277013073484706311570694941067164567331812003812647462134719890090822102383039265921678588768912680117903453755835070554936880146800218775817514670248684536111493956439437871289106772723086634064083592570318662734544977596591117808214176035724312693128741577817103891985028356399951520224994407281022516727308702569706026758080486794236781344589109294496190428749435848177351017365783369443483892745142492018200846800235841678965557914935066842436365124972032614151734584346641282944977822600270741877845951275290496046356764564870266513938486112675073448994811240237402363879460203524697280063767885403202450967572079178172179350175391774495618312572509778222669867499421565482861080661169022629138445073027984630594726373235092141851141194760261124586027313043342742363939039681014999318929572831806186034897696396776337693092660059148878031204147976018476596022629420147848063316792547412549185643998498955788340372665327446378971590294985796471907920093581870639689263740617341058634172359633808571337009357919697363814981690242075228399526609692888487454703415795783085797850867791643568275623369948295268027592138257434411698612459257090311313371783851586364188813667026960163447428456241996064345970059683287879407638983267631709407813041102557857169023800707597001158775275820082520581584940582288214013605698924413652956807809236370612085988543697097145227486938784865856695333190791170101494970047532838016042841006170452980778210247718511694224030063981970251842945262307535505176663336542234531117162935561511689313296827020271091348270896303477054903722530292210068340516850880804155878296193894251397848835684648522376447563351238132733985540898380676256934282195111091344115674524436920898643757474734313235564532992576632487465181241684162177129592394515100158416092996789961977160787918181080872580540315039501193217401801884799939231063195101245464985977186444799198281322471708174886566670286425178188737552056984402066029692731025366003573811895343712943536833905186858530201032558446231740189404465534697746979343195823295203174105785423357018848252545699877097518307740270108728276954221408976227252215158451629574696359108758527247939844554545303111491729239259309422119289915649827728780496286454346557203127466220180212698324250693564298697657339463558129943912449835576855737645590244053255777861437542736875798966563045289348709715142927239442295534937221642011076882200013863934041264480139641286838271086904905100951552839669262217229265501209627818576402642002951776596178748465217577879074229744769738422554030937243676489427714192247836719180089772354423406272592131993244569906644045264838308604441709012897400412369881643109725852724332355436949311382477170507195565931971073868009471108042168870750045484525791418704937350468862278184294543767557635220651962410081286444322352691048716628554653696152183180622389408346796555937684210296490504653242082446792531714278693877574626035893512309378541667749636431165501308897023834998772551415822678863520685918781164831410484124936477485527678756925613167702155482543607223027256903153444837604494227887038788147282716064581545113187734554125296323920698146399332555222821936084166471974730071833040648823318168292171815096484694794837897712246910939034674732936707481987861469736275282672588682585682833612169029299318376758295829176453483337055603740226072175510123636561007282183692934205141290955351002729952571990308033048686302972171198300168377330245534743641546775045482336518398480098126766187211626527800440550732280318324338399167923730772025629992548062395081289664522306374803173980304152534462681782775796340231019313011076684285969503519426112083357051775776601860436754883429916844940822122768827446476277712400569911520418637457890419438668639508162609166929475158400137619526795840762211405408929825780147475815766587464532540214847834140933338438006558662263553520631437282888809436646035068930302471530631321634541630109684662904519156836731654617965080258433386454728659710258291738310657926351120229100116144832521524600562590480660846812141861855340066374153116696640611244455258646198439553282768283831698323135442555836333759004469966244059080598574388301701469372211601356286694309961631756241286835152965146441016957901811174532981974886445778570856002424765547123626368798865696605731687468772149134040536000551591744742584066502048051945257734749609375576088395014984344003499440398210460706703511948293512108312362344088320864537541187398709953561588269013784641726799798984453135307714719157828092706238943542634464264172506616782550015181846753129352443134817290167221567537050956109453597089140620705544396435797876159226756440530447308606116842436114356443794176375294449471904427737988511793571475194224111158779280055830190296913336115310694440141635114235219371254859266259367034400416022641710538828263242116428352509905044546311848403856620945158171938449026218238411708008437247869229398762473962301214339386413750851701692568507477629074436698148956524104714682880873418224449005784747217979452080209803662697262352254624304476537417910144988768575871850274849442804125347980204906817662830165418089400161368537319619419881550255192816391643345696296760188913434783425035560298275738751939024271862525225686211922598841884443975600274994401636551943816418516862492018778965936375832850692863114258458389808384092703924516332350498842906254750702613742381530065679728205996642370159495657719401255762400251632417236063601972866053689185990148881744396167484459077453999175193467590566851458940743993019996467456202613261749839827132398008765583163432022655680634378204081758490585395317719712376521425726221830124786465892462279757187909637641399355271434300860600050378297116073766276473672129085971232006260795703263549804154712931146896193571653547518110973723604597591596964360640463765832917428201680966743637130624846292269108148128507178174543076665048423955317285125065115333453990749167866869962846878532096710848549558478933141835224649899981017716889600659786903281328450665594869363938121842992156449079806938301865819378911551150161940600645711984631840055011387069816813846730998515115938937142901648290008525327267001441518333610591203081212560268527272759770845194305160869423777099771335627691225969113070174049909688042511166965526509712392593056983744708144212000806635871777546450219851518706672790683116010778229476638575017445715338338776281850039618250893385174188316685063983133662107961478809216275548119882223334784313781880184709786277520448332186028512735571875080896287164305044586561435481702429096144617713601510195812694175351940165892731348628170542239364871010776825954019403476004863836063053888612044712942592285973160525206407480395273695453624140055680508144421723289113695869577450685766266291497890009659319466275298378420852230844114774110719054801161662731712130401676174875071075383811388311758959079540933283536371323621555939539425901664262840519660696883691606648646487726972643176872184274968893948469546123422767435899074584552839398352606760198658873302782056392102323005385562371398198514222221366790505292562492336703722519693216819613553929704627045263000615795712495867874055585209428712408464048811043816307225603161061258776175100158406158496777593199091742657691997701852251282707694294628278866901809281333039488005253375456251394148718973666666140491707912363343333492400683924740215734708182520816209414620449563694015365611573786828372354179138125458468166801359939582062272106838215205415324873815997867900278552237647017123151768405607016528054098579720040412992819031828297489580324346040049039573392337334854885546264658821268428470332257467272835294404730286356339864256197586085615891810560337293472677052702972562428720331899222778910632024724003260829920819800309324567215455470038311099647487148611297830872821004553542724511051284576237113542264336955489446602117725742367951255784371798525993464858340364534003820433206557396512520384042870405483329217480911818287177921145488212485471434184334946775568331921850151408121686149570978960864557359169751019258104321020078810698149440950005764213195051309462830092133624000207562715001280626406112525810644706293066890874517263396865181237947064983966088777596577580088200701915269116810243427933809938550864593124529381159843806147569622294859749540788434560588697873175029142545452083646612408093205026800577654957532843101364213297380094170658236696177604381851953351668792220426359013952809642256228998290524021812826058578323108557442154855419334954803128389601867631893742453517981792676737898892499773755924474502976685041050258418709963222973945097739339251773451186533998835678179892411792440402984187516167004724686973277480449495082702358781655426973513610519559206596943982390735532977016438188424749022037154231845870306045934428509264691499121968636274047366442734725500837180432671514786095883177653686590722921237091442621647699060512858381015448822583207252103539394933234645271611117430685611776327192513706842530076445201361163638093655711313297962080366059159185001650615223288672975796226894968133340664280695159999607663199661681421068137768277117254244958025406345416195505620491509063048612452040401765845813727451566499803750613929029762380055440319680098278885258623484304250611430173046394405233071010002675916982121038599765803102144841671862734284300449909113603869940241631079237544184739380068440226823330327242799081494830210206306479914958218608332314937445239291958770868859363422105976018822504999398446198938468342372638277094334215018953726463377313756940693950334234773426204705368493727822510012553847920441671281846500725322445835317531815844764499387683009514530416211624845245256224081627409367840796459999671687476218891286094052882708242443304327542081009788413310925511076495080892014473846381698533219002920514032696859802891436387737542253256910077396100297913219060927109848423250889315636997141532584011335933030933683973391847465348665391816243908345563062651285419921452505505337311030451497314124581720237047551623356737708266467474697508483313924728842733660515485805697393529452388898077569912920335496021765333371950409566878550748640707075718527850538204457403115081228414440537516100135663894417020722452851490044916277019396051656806571378672042781177476142561274432116082638558795217676734618510882036556949221637697321839307793733773168221089735145933593262169955518579921012029308940371745945929814786090578396421577876617451153542231244980997278756055307287170150227159985160278263850607770090222442936756064307219709558340947353348516322319396347541601956364785267746270039645063470021292536108189744182029029710736539016914432110661060637324036593572421817515569927797767700820595473355463382392424510981640289391493007638974558762521929920660236444908843420452398907150320266286798124186891147198280006391197155440542221791302387877021573946130844365729244613621627505015988207103445497459455477279399006671344354551753007610671252304962918845191079075928307594559025410960200286943110969104902103770546431298022110240014213894921982170215484374177857269153242499180744274435100474355177917611611920209863913240675222922306748678003939296994661414526230697005419874453139237485758331065634283259038562127698074383796312623687706436569831020155402192153103255089916499292371324929957735034404194944602439359519141190275320511125364088850935199959859766871521804418658189205067568983417866253333380935384594249896620528560156231928087175689208767243116145345700170996900241533528181110512219333846450828259054387318394944623155073830684268432298045976864977510868892044450387648328005323287174005540193142766208063660451413970402851963558182236210744134509719311971469810554795823986428701982447679690929705911525163120671601613117665849671893817679830816236325130044571359154273426827017102758147114488186047764401056993999486383148876404285679013833339451275539436522017131404000655444730558926913644817728163679728476580051589677204290784707435097971897474082658178402889285204214690677408061009343102338303481074970257744526741658695320900951185535548719470158254148962389300838182318233018322298145043677666451629537445182172053526891395942044102922491478675052073084860340392178376485921355113144656038608644050070500033544847714292819027604619133256389973638368966914504012764332049114467444811078849697245518310753119734543741280229167812890043974667672878269449902284165862805877639056419617244892764699859864823230599178985759420235794737742394870650518537281647571063854627398735595746659267999778443753750854140784555792584024816053354582274425590046764504435516674708450792818321425851711911862840239999313334758927911732957592508692705062295053959075197553907565339554011913354576774699942067726083553226792702912126879230167194584650743963869000937011024110192952510472493526656670609078945988538475998586173944807510521547088819024933488286104569071979047107454631743873945865989389718501080914999320044644687746382800661001358341050618991469426542482247351149034336228612448385480175080473024880917898545998287263167522152391366220049053288215002193616851439256590553145975951939288732575902896555718198667953822200042515163236661021787345495213995181439246727218570802737510258385601776004352282705418371280276433060280050890717104536974944634685613860118886440210266793121402622679727905320849373683514387175482241536170425513150291130381866894271902208714183183626273864049211990520959001042037512030147246243899092067179991411610045343226911360995092906034260203828806574764514899618670638882330392066183527083320855671004550799476320711819064425538773786193807028849865559556884263661791698823407769930102982666379640244289183550074666757709410136063084750537882737494244831984557534310994004800250748256510966496743491070614240190057912420921437191961965124673939669032448825073965976988316585903707501658088427153776098556028988387331499666848364094638057600598633734437753282166286952056386918593935065339723798986507476202385973284837550163158008627431585944738101699965579466670050332012560171843364817709682653636438637783986076944840004265198977670086812764479520572994231765460451950324922458517274031491950238036518985155654407459914660375853435830576598077710944652960567659480788818592777890840031241070143577654229895154470202403191721585132669690338487447263044988122374710464141071641511805025791506893729662531750568509746733323823983631486285374635533397486248856583259656909096965407090107836167196412527921538297544845840092681038422032066020865507729687329399505703613112559009607523663809323929303489064190093635861034757477143561732381780653149050662167150473807111611856031593958016906258513350125289202408280245692682510707523990023695430050415034099387071260470396075790780955346395228533610393122972570302571545748828060842503461430081472858448478204259092432773004473605117173511451096661692143077476179350304354621588108848444064907957548177072631298405130435568810908696831948915594924161445803646068200182155108665551215510672121103163744682826639649364570850125646594013999354840611994272106922904178694774168670334331889325665188100299245296037859242592846502813319155711224520007406650906402498649805500049793933114337465837814029287071941428983797501120619884783462662508073696206258435617431120872680765953022252299110625218241856634936365297501230121105372948262474292309283758589764174138576381786364748903422674109739953823002288518705260758496045946551044107300840545043109793124633595894184165660459271291237177765298892050132606165633591855005742453393923308047795863881579385696337963790386944953838254091514947789504788103930751311886031170170102544462358746308089058964276736539694838062800530643865021980968004041132874224502113516598837797236687706865331528616448366292546654418695263566239474058416621023828195264364939828807622309124661909567020782237204022910067826851615926385102915736251990174972840404428181544196178799386809906127248941799221623269434913418440191622559358938453047983224312696381161318885963761313300615436562801172120733895625740604714040447685698472449540566135413271808151299016629924349364033398830460789885997744567777310713839068509055484053514609046288845431251881649084962300933283286566591303171433776189790851653486864378475963501842279032114532310752980865560674086025889894051199024572574752752701202906596353647213473263440914041490651606961065118403861628426827921755147340052290217000426291989435913012856246499427759227719768577730654654366244760399109937375479296907932532346579664630873104585081521820576331514167448729434782659192445070750311516702223545655600534287630620103160326646410231463779553490404403718043910207561712439756156658391977526734429626288337219668854970922390530198084886963039275395702105268368552361323393099506146483388199939031650707181971749264910764878025759625959503407661863151899411032234487791224617444154904432649113943454518170414506630846948764749917409489960433958133621284246887894654938815067025609798266931205795183886031190562084284379842331628169275459419454256252946291222258532340762421925065326949542768775943698215755210488783379897624238467921382866754693951443008001777267496543284674575654556367741364429202075773506699756052636958119648983007561071066533140017846434619930851019220175737845136420555971294042065633454568115456423843887133786147784334512785631377446579325375796220882880237365600271728199813412833037848095379100071351593452598498032107621236012780712644120698053041614071037960511456851021583083209110547756149551141454805873431166178909616316750557862345762777922882190038089718111082139833796841611857489063329307944983040980643495105523802483002472277279218495892050457718377796571945145502908374677129484323008212538769545008773542475741019170017271155299766563609615658247801117674341713859752663003666056320833662796458868531185858366983663406700378587660366326678188764780055235233007978600470755466360847199212097477363886122236699819796570682349034699782468064443356916071729412435575070814426161325851910863520945196763570512079946361658484602624192861166093240572840867456815720430185576346628472009695753641654349180775428781554460928482389332697426827937915498019709987028324245091468739850148982426748819838333488439885451901844205379400498489364793983191613579639311428573924563978805708173441785483022504333470235174949878088089798082415269749547148030475221494060054286234128159577085762670392440206326535761933638495060676830151942492173751357137978160166414220040575395200734173966262324358951781772406416941517054677004866550330148926360622929648153347508050879962921149638386768803792187508227983859815396905587833543747598528829636850105578067564083100535939483350590868657166409050495097291382471648477169953519922157266658378047431293209281106308783767840103501673753346097367272081245920239029002886623802864275459212218175785488819682572564422186587205563153115221655455034706510800816122289038996018732876986199019128772363557551564025019193954779432105127012730319969865683695661715277233756399680548644476842322853914727880693784377785727464529735862375116720676459781920379301685229173825445863118179879346048541560723802517520523908837561283717274956878468066004729272110677205283882510980498765703118085550624013201585457540903304533165642398290605653601619780413334217945697810616335057119974820507292291960088591325053675630062057424236834302704160840300577657529304981075088988151530258051863145211592137185927806040039394835190531783003304759931360484398743393442443432726124626018818787533154476256196110601332786065825013411131372294539027063400666418272033238692425695155025779437916527971636772167043532860790196694871635088908738458039498555051944990753936995416782291924896287544276095963886033931413094645083088884872227474873620320510073490803697857008271542807568691542902464106350204452839889269669570877215361235128020591599406488091186755047732220035005480095422811934260929849590189187564511235111127822746066386961114166337035365343697075360799859593351119799637531434188850916361672863922675383994946898132497214783700063767841003470999335834664521991813300388630242261808979645874856846172002875642510003367945107492897119540756125684980569987517466163901453097495442021861255358923376326845971013256668791795732751911580389961053232048853395829098536862034637116126458540534399664748460163419141350492591517990847498567888389458783492771542326860253097432888362909973982489140891882391258592673500357209063291984812613261025060906026023987102175284560698406068955447494055157768605452495801498681480021975966125325171116447498473447262606459884509081089377090311472618723321137587601133231680578906097336540251520442228640747305976896699104456138492712500959973632498000843244155560366675538847111451949419577756427160640000460307524643785551819409679455558547741272523247571689993117564650848363090496406209218465747166007270336400046799378682049465802488987866328540793130954404608200743694818088265404307468838558069429399335761392524194827329992425550683977331953894210749914095281631045656061189599329955101919658863678617186665742413611076737716841993525045226111850898326906797967012926978941995176696312487277851125232328035259330230506107065098214674394253449037215295881471067085561412114318001804970882478373827009444268395495611304677618871358920568200788054737898040650421375161126065803405287522390029016236758675497261262465941375438189493489968401017239512190661293263998737140769890160344836774646673516894885989719150339443280450910921760557179563689968237288057297256182906600505311478393873905302234581775331366207230338958351145291457125214014620604130863996647147389257660706789745208254643709800606720460522323259569908144417842443496340905790479319029192926766934358384736721704327994541653982849573653701217531927887122969139247528021509651183959935775011984072536633778051697203762062040582694081270515287485131502857096582635156667481677822364638245131866846135859718689004599886290055783664853138741166769032233296735589994105683526292808764228444006665217481563134603388221985712596091166666539339180977005939719908063921971161454701155946087343628925641273671554278325883378998958089939033392918019605873801465558700593757759619496375104064076339697845383274635453605097951548330414381505368965423611682623517227980210655156442447491114780656519168539037831592824600935931068560840168470800626657323859798860930822030768920159865661015937684676521335650455000077631195479697959710795630755865268413839091514436858710739598680190194079241277184896304367986276323811101990499213596411341570982131356517999140007790533736277296363912854320278798403295318145749135048792386347254391682040857490825253229121715180196501240773186637361363335438107266210480889053525143034082828279910860960530719307409483561981509249350975159073069177405959922333045649312620572595461224845091426593221442376279692771156177994190535216124660380736775292937317706195469250535709990612310079467180336247419049591362390648641357282917739084912983688313776827835631442641690273857945357425583722423031296394805751871932110452665504468128903327437784975729590955044481593529269084421092851891500854395158545862025792943568403254656526268493958837298435889488998681111142611594250660766787965604770803862804104834428134081269334739507610371702717182544013712865627735296552637287549389621992336614827444648101337007763422919874228859585137671819284815950908141346838022099292914378524898251998166545366625945534081864245860976257830097409207616497799218411552119966545333538307552366053090260252896632356896758377318306395223371270520680708877803629371326353889364137077170054934925495871325204747957301763960291829965211533936138389962890767133278439925382601834754586633183489096673603984444939405021573968773234367165986952990624380483390344190721798129515880529643919176569621347612418045473761867098706636358072083783565925652500843816919795906636784530603745932342344548370249945848034177527744623041203330010171987861860996708422361805368150307481672862804390253750177854092769589973535176712420346141611801350626585262853556882459754873981930958400300738202147521728409305000045155746335266490532786407383765637035782948710830233086819608385062698806159693904137948143414724831957941768576431911351108143642320091396488489705303248824441021092445962267057490312009987663351266993748506461264389351087143268090757131114217654026698854027922489677811286286545684051160619933170657616436569105764200465109172767699962670239820464302630059248486780025692410913684244932764864800707645865924899485238435594637469244385021306703299676255763859412669334753275175940002214842753838973085037728058361459197083250994333451764646406533419836970350121145188285662321219219634613394423487253188616569327403093860632363288000380175150832483781291854596048081830830535142429704429061258351544598235305779625761549224256769718851954720073432890856262501767421383188287355871067460954909002628212066264159650341006676624099864639504119415448617814317275601447976422077907257312822196046767569583167239433460554296084455356929661826677809316650203616485936286358178823508500486168561239150680193835606418944442162662446661595495539074630508223493504992050454686580551436492787409162031482445606067148052857591720964072259739026349365097885788028873412333781795523148072780061286859365302946090206709826692927068833015126350057195989323157902621679553830196362187616852228474990733773992542430943767323685259683671860608730774193598127647654941865867682881932103175739994029099703508156258789696839824108780885482497546978462288004673767697809606682081630598695323712397164699239138169723343636931576699469796192774729941057131675402555288462965420276822178067616609509270334570815047206240458850998703866946902189996034383934744146315350302942095137878154145709488040434354690429166254059241705639235100168928580699094738909297904595171806328045488938816504009556850150313722174235713350019985521018720233406466423232153042148881731564688173471884307992375416653553987192639932785509661379721494064049428633131883145287090608160554980667543597928570282947263998071511688942369765745174547354380071011077566840133726323003517777324602174047431389043877808181651902155612656837753616423018992535815072395119170967885691309131883097043169720378661729316141073205765596594787128931540717820471685858728485347745771603183428109837562930360414801054875424129070520420293818931397816065801650801245601986025915517360680378259136292761766780610794901179032453097232633207024784879052957420059350286749655595287939993354973652686853291463290148661409398742528190981992867015301487610361731125692851848470415834679459838366674168445250295521754139418933957993222697152752832345513382556192661950576829931652720319855043182312788913482277396397566176830141467795835652755605210577870727908789052110720490333961525182217645756540133142968903934311897243053391100682207318567747326768318070729983122456185584295623248617421411729902292383226350974429795194682593752007229710819031631718310859276266017752340037574219394454069689829747821206749329515170135351280360930617819541357292501397770949852238262044106189543520187757842312538259700190585612357301004327434724915544263181044135156959543985074126563565620777484165999383898662657183868396691433421834270284647500377898284704124304265264196890696619846578767526322145638353986676997508352355433191513490103663849422971528416183840236109474831492199237177725745771790567645933100264083447852016463450166917269057098351000350555829487478390694703096771493132291497622759697380632561679713246958229896412537890753970055231670634643730534716990226250681038645829627968581652201480343767109001504995792800500270999618513547534379658086095376505137171001995131521073658987936804841012947582555697563306057738655704071648986255900737651825338885559077388841044274640995991068137972406334569991593434642993958600228822118435187808066756639328692402657312007909140928499518378891145241440643396072187289446393500294473800373752846539674716544088555823207324802790013658652184518111766108901323584521740339072247012450419943217428965801023290370788127423940838108148689764072975530015357879563435027007329693864809127857322694817686221895857835415418628092746148174390807200606965447972491259285141813418385219055361198741910507523658466796108277272728252486645096221399536451465369629223849299723961788634346811614966858793242751225896098144779316475763478251190344038233189886228470384865404245435838060932898006150112289158332392368002545215003186615720202467743291921727745681282649484602645395329478503651634028034881357365883461643057363546437716261680107364520640344432152773925227382798006411931721195714455459121084549875863832145594511469255027368858457775963926844724027825196476686844243038089759072970326819996700101943385996194883340028182991119904037755154720443916280115032684708509254578596131104738879458071937000796801074360445971482531384142553082489208034997713686729568073433848546930448929354177846887486010196160008542885894363385490010733400622341222605954313830603528113017242302267901973462709390607609180101199475747902022194852564400342980460635544012357271794773603483523225617855831367098625511766134374425541037704885487954852616367092670500125919420924110886186211663504482719492049659956482153433360834945849600184336351529333544596468846272027669276171391256061824936001242896867937382401213550317867446427032251387572268791208470929408290851908390408424332147537482319289535406970811223226919497446898590968473056675910307194870707747455230002204702102118771350891284085715738116324934910613730885158404710496142864824981503359421605317108039762138890784974624974364706145227746814856892687840521990874607939822609277900705460766711156797352936250282483257442180972974546206396375476094952939836263727971007128393158179678104577418998224566538199862754917688052394179516562468548916132518755299411451713010095406761936502566311725251743547320042105132362442734760703870894042112444882281994034645611005623650765042840095728985916467651250731442403026718623612666399408944064900416619696688605638856093422758051510978860542731468691910470850125653315731787212633718601179260466842748814182073827652475696914160009575908372064131857004931841183675691358149728302753102597245321843621869972958492920274614699812761519951127430576001983290493761206152017823237421176953874114195881328392457108563538197598309481614348240806568180021503406751207915753981796311055831156343376904593530098799073515396124049211867018471365101366902995577242167180038433813729011738727873193250881499979719910400862776821393633296160921692498636140410905666749495957587090200829069340902231347325766040414125483779338776671551187956432177440822723366910361009574175350313025660972665913942220925793293729688001132354294313500850422911554892486613844559393017076603405743188633238047556338333546292361595371757132842700161797311592517070261715975401713785784212107689571288133393280837354959810904138476854425149695917501207110879973678405282331028120608857376207902230740761445461025705607961415857507404961925948401287349673789786847685414486528742204361761655877852821266028150053148648602398782716113750991560704882261289549571995410515500827217204578440133438328320144321023881460329974414123870396246230680394144121249009110777436717236029675063922358159441952723609408862549016942640282066765901180245493688061064897575119145550796854573493409929659246791117139425135529547164693012806719421526822867604083816646341490427705319598455798304969366974835803747801825242606576277664992260778799131256786036339491945176321038398648377702792658419761230219607690572934651332290436537161655360416151167295872543440225005325913575295612022280800344395744322229711680869115350991070888376405520867829842680183662769774903477256769172144536044898653907680163872628531009312716160913128550608331741806098702781230759021832671682298015584538659150072403569592201145393560052229413339776971078043666520972636492562796312138991349408746290852590675009216766074477399165747230267826543328192826923880281023811934915726216097546870079231860941041355796579660433538066956603437360043070990150947467037111687975487952252505332646378562509727941670616478107470242124412826617287417164477372936920489116539813967987633411116947463225555018155322027886914932384193231946231132255619453038940885567537164206855070509733671150906554020098385930199965907258488440705517930464941212105847747407170504836813737468728132428673053210439757583641856692313985476183993673722330906837824005281295353307217078435417781371887542007397155658020789270552102643002366009975605825673127225340126289724583877967362767601577694638382080191271312370936543569210021122812037344592526995087150718224283295665227639148423094995119067705378140238062695107025745668349837946152626017943311846027200026579721271608036336390443667556248361456121234651966536710711654164753988740991131909661310831574542141954125271982996191265299104304705290022198234147373235518643725368455964978433296469842475413593153441275430186554184746117894889119234732546883253060593704103616922980045916145643957463309870761248583483552044056032502139401872147210425623937508632713877396330158052411290346018629552779405202316744450633742375809531157885123989654404740217962620410239558648636266777929610956992656944093449195371602306335826952855176431387186314900244092653992460493393863640635535940148963343607105062368447000537504345078912431098322685056434751418707481641117030238952516475919968418567162773065233745579134325116166432004058628568673924114038237046299421180158195191223050619511021608992820406916501197750059653859787070989662786728255394201563531297459261699353119142643098603822993059239532925448225647670364978434513833930607743513099682709613135599585079377598208899714512907654594167647642122840868825174181779444764076844597378125977435278300674524238065736205714917598958641941718407419512134865622643094847100885631667431683093002442514629328881625449602353674463296949144847994573677663684597120807969600626266827454377051192545826418017526075270980162072580310860155470934370820041698776289605198357344633789652506737583295824070595414415640616332376518012499197170202685461744207996930604793267806053958799519604776234378201197378600630881981129434991844475601095269660212977560757957264683519481420545505740238848481966900866696434189837755146843309546924725228627180656615071466879940045087266112562830932091089968436055724242656266967742866463351361650956476832706501044978076220207072532771406190187931397569307570338178224101040620749237590463519347693323512461097585425526717410698189611259154509845014108758425956843143503097711845488931388229934640503719650163175565026540467163382556989896291200022168243236086647771493799656651352880899164571068397835663882385903981006780195442065577501986170177659654481749996444503205116931234538499704708680948367950629549049586105513412145286645585349173454077848584247292844812430130744877940484366597072639316889456073159949031046832240630386024946630490965565766701533985838083329055553755928133048654124205462974419728492445075784016440337294992154486566504523500101136127313566707551305673612068962726318253398154947400905807034957704054081311980697353994603066604361863956790334835263549991806697737674635244603860176960009808988703351105746819046091745660575140437520220367927478388540019587364489766322912264911893180381960519053215724174207572047431652017736359989755023312768633266933008384116110166897074614214827499709729850092137747007612839198776675878089923049281005215816455315671434283453324497539308210275902819606565776697236460009678815073805678157522891083341777949972381577166076767261253770959575316256853138574463542931319217877069353587654869139394302699730375468288674890281113385531414165284466540913252456389413306178738868159924929663205042188547304958196025336463615726440866495720011497514508946105379152466523150702452563044082754984867750760875021798322077062390434290668194856667787970130280306520547330053380951792992612720865603189002315332926732727041447827324201798183576671856070991889551727395415724939446894019409680189883465826933171954196737358204006038474714293869267936159854265702248843245706093379383732742404129060366775343607591879198285893140944690913994247475772272549074585232736128091506032316029985417879840486382566645555895611549843035388628143998110329067080191856924363432402912113604156117485537923705241426155461325313576923749904505225822867684285248415115252641038494399001860849534004907205288331806281584890509612429736040733226209963463044745226840733915120840268338713705891956062422886782093171651810335850727245453285869821407690359703447304418196744329194591216621690917555198808794237244986492033741503571907677434645099004188893048006886161238156398084196904904596069021193260175217472760603537352426952803019203765732215411555400935730743515631962035686578022265522716171303420903015006453284927295429961222331480845955333894137046786145756696802334149078852869838500086885326815861657465490748636959539214491345763234480061540822657065793427136347281258356738714292360853260768285556298576383193244553633120609046181116077020464661206510641450674498858184841490233229364708562112154445387340684580919844571699141525436851664625928025324940651228934399812820781201100176153858651400218221584926958498487179998418815215443474979442994184884017851786482740015410883264612082917126211819177547391510207719475245588135131127817355849139592488942032713436602609798103079055989381552079733187991149657738518702535965825998026921961324746347788583390055724098646248769760523504289166906228492320830683018840546454968547105561735434765199618866153174190494438895197758372106611225514594950748575197255495610464823005297674485554002635731838564040607494668453375226015130730916988380222542169290560510354799467434754523211730338058853577936053485049247359038755995019219444140746150078069069869641977987478441793048193842999380656609206668158398576592530963295542714079930531895569000858161210088557112520237851667535496775741466943059291392199209882517673109420472610109440538512185737801938722881812607235394165714601965841015427210872824939293211123066786296697049270128599636479196379026825967650886298923756802994471453320764102757918429491736205904122760675379370627298781456150422950524997316444599866560061071470977493908523798989855193667279241205413951545173108672574820562832000535495553136713463407205330765511647576743246277342203211250748371930526067874479314163932721872894415648434366522413726141076441262193345154239248481328413173348829202312442286658254811633570986811578178614993417061641332064987469477890761053448666473553434692054749055209199731561362739132992143502225876528679410289383866756992050081054000290874358026838750183735062940160888144225101057280639304863831000760031012217568897103440392462485229552174722861085267614200822147701595319324874513572080992361521578231886268321215220462620243127119503933168630410940552705132580588408101267858598204877159366570214802159312367677534511870540285147594516229170736469619133988694931585409345250303037543945499925102089199425566898270099430565488222841396728441954915190880379396603990348466272053236623799064068373520238501366391822434147780635658030448664260958220896790192851834344451057200483049000986946499791151078897201953308415720475011370752771319409647619411714490837846942147582579589235028126521012748742661835274858750650907290824864863343061482431602636384863505746542116601773204226443681735820356653196928212069885341598958154230032399320934496837486487955088275832591081914379759022781897189330542648648661144275406855486205594225786029979847198442936559187397363257495831890168161342155365476741929227527504241970879541548289696388749027341261294302410524128791493555864128650797953598432107784654332176361822969931916485398577394450820188797166418229948948377566510464389486912844990876195604823319029554383948862752744678936740915129514445437378033896011533767424342210006202956994156333353120154784538171275766380789502361541348881553861975610880711746348943386734470142457738033371110750125925475886583239442913296045963254836480645139823494155420488160660244050032877003149261946015410372652167110830028336119592767208210634117134545915068980071367083121169430102678395985458672703359031386230659783821810533017153838508652623825443831490684546961023945143760636500104723640637177625359572595589351701961265898553991288554694162807447343627086041186516765779933557372859084851736068246149801281127880585391701716172394906021234386801249559255083724862501526048002401615155086020580750555351812788691195718724769550205977542963547958785413719930893487640805936236547496009356246178093533404692793724854642040933177227487172782568995504332988420911567422651242968180266986210141108583123386584663212648503535949643677538171761144294278009611134884111492940629781870661632791910896655026024422570389024894828333187847055208680290413889418107188435720310097511845100975305681833488746238179961620903542958964728788132421949567690328650989969112554026733543371261680181747722662120934887564163351568161329359114138558626880000189275314305124912653385662892343004077795735473662855111994925588395691514094878232704711741472580806060618488700317677674828844497340520254816335501569896694054878842830041928298238746892904506453906607465685032009896445172396609322428355371617515144169556460284232922471679769370818354824201749099782578632083477766129558870193647491025230422853995360866620108685656024813245781421158937133291134773043141406599198203984016934054251674878925696740612678808282311251358260209094755933417421990297264711636144300986305318128225751719584048750902415612045366966195795783227498563339695138967954871370036049373689528800954985799840525252664099958975418079158909900100679726361405342109057780721172792740158494442405171763724841995458325917491581366257080778853068420021691520415348817261904208979662794172263470045786177311155203498621966932201250330068303314296426233603179285953839863909783906157829932379055532856709425217851898387129066400184240638900501809034217637665764453706158579180998759296879716426037651525304499765225561908418405550716786042917657411121402824232191214273317657425813796952540461667354876038666006608623085893969198164309658726178741543635461457305451245481172420668958540115499099699724719247372258228467889429348764547712915326784622967747978725535464689466824245007867024317825984224993794878942906036658082879158188383418083399038364492851861887724544068529290551418972875464008450230415027423249127826805167400939645965249399319079271203327029764251622112093559177035432734600069820767115041881882185072119310439829690477582941837230200260635698580902713212350990988809026379004201687251501904645172468858349633088893584655429076633715646931095596146605529659786224940730523889664088344655398928164028269406611496138279190982436632224305192176827817861562157835330925340121320652162669365993322516490548953938813449752687238253336737311043794298429811684839138738169885246957926673272854933874369749610168861062729126850930145128914178301557467273896308205102312628656960962504219817568449633023161226627373279784688089984226144763595548247126048927032368117146423567218624443109640635946320212551479180398041927786426395949774571838728336156696886378494622450347628949629027285533224480527558848255199641625869450850824744570708925907987215552146149393312136388541801456430992388071691726002553026183858676265081369365030986738188350060312361256109592698516960795280484558382089386329293363921156418836181480880329397183098410917919393428206144202035044645151307388300196373700667681902174479960289809477075159330434022536904537208347878169913657256944840856882671147630632073446684143519201598985937531587016180897851732220624613918933128227968876386623497825971634961766753747232344074658926586347794030752607919376166450166539471023120228766329023684457232386286401826634019500398293875435603531497956149883127816620331140880066158829387662845032005293395585443938721699851138276181959099985801507544664879489645460628508547020769925626317545931205115717317798351787547451900100604025046455201330573037395496646717234631071640679346332141178012708738298010666162068442571034288883104796248064446712994244437715557898336556336172369734902157119426566674540954446099095722267861015611001635424295982318776040718452942468607748801247010308143764946447828870557159041982058897505381015446758215788260568828302583137227462179074305723447296974149879256444732987175525444458243116931479316758118294926167377361879160514890286626679550371531772435416792937050397300948380475153715679960547769923683795252442385077034225744423471477880357935077928167591914039813719899305967698742314281897877732732710255551759471302580610698404688694600526634017814567021775282624027548875457571962109309652363436362135836153431182433013628390875957525445215827230466995416461220090681498284607614552049319958880995492376550885178106414192397358422331060016403176789880446924976175157431148250403398034280103506684733784805500076148475572441552822693503002076468850143960487318926975680058327078617124686588742510734508281094645427772057122364125418499304579347861712964957817593122799815281668963034949060639082426874856818315309446439133538491601403142330569332802246694791940980800098750502809838882975103681225296871073991776133657493323803887493844441986121411799211620568631995546565679249493170876760552813603557579379364423504254586759677267092671905297637713470126276147500915657709866764500177109839748359559968337584357034486989852199381410539505643587373869443449236463564912865435008382365678521052997586579524645248234777663801438483738124895896047675402608935162134503292438368833455422700430505990469530849236500789191474540639018783209959279245324302315489903522094013984537404032258050170668229706268404790446368597516656872615184366136514266632518872501522472068908217926217936855737061362379060559871362165209402229552100545758827676595564041149573685079086102783721798755125869895955382409747133415333587924648716111786137255592753568732277940346777841947527004349020522394731893057498356666146052225592314520957279149121098203407073048501043027345010498849174602657675203211453969524156550252889421569053998382327031343958319878616242418468607302040834662185349723247498321547775084620596211505254503903782382228763482040490723114889595285139166111594466334064680135926205980701213334719382880807195475431260559365998828819810586662845934708607228546687419421455102322797651516091189920878606285192820064713607276357402908077200252327348224663084939417307859539202505266615186000442553659366957191639983019563128539610969739152259914553699994783212578218325519656922695104922126624645859881038179664882450812631615970489579164647240348009556804864054770262427204308018353294380932561594764557584115505808090411098887851524207496540167318410087482677713332718536677418301084862728648384082749184670945643718350036064918936185972065634043844133662558585637427763602232660534081526636299695059557924969987353814040125366508669665460283344060828557694802601596160651575294935714624714308854296798215711812265599980733437481417912837743278295561020435882541899695567128710169544561252998214962540553650614928842974459385707061473800411224695383528621111659109811756342280757838203600690571748474072377002397901351117685461068809230474041236125719684389813382074386521793115520648707474809812759671727320480322235764745461452069856275380341421584602106140113882405915548801623026339845520498818422839391696260189767250012601387979800183756901723580146180694084403587866215450017884759373733722586661963595899751888737280539143823597557415427017367057885150382334902733931551774588975156403219961967211799677371862819575047188678267218356709555626281749081443051732945949999828995929448591891033457113623591474617357146329273053512236189435667825052795446473143334419802255410438723006223117918325925564436034330934024121511889123977656890497154312995020699075353536781872239774910679819491786477104734207759380797208456738649061475759400792108867953063916302101583984176269432160741914191623064035283710450408804661582508035247847299280096270747600522839196072620020092880266154783208557789569573635684600267356771132565520792551206220038671213598677265447554540973596505780771999745229552944253426190611931525399258388613730139015711266472477770772862580701317279363750456975802659429160774843709089484131470939546974931564870616024223697559758809269133065770907808462718631425566652995401530321040344919202864433024633282301536208609376139310064097068495269654595766207472698488820165956083815007367240787148007156066284272245105700974185706127788037235090245435024235885606615967492631395535309445906547462499312147983599264776557216289221708722630240466875799271310185321639617606620022629811048457266074048203006282411346549444729205064371048706268814093180448663478497303773686371169636691460819459425971283510237304117579888638143092210973762727570424601618667788063518077020185239368784485632974135003969196373808982978687213839533929958655307551530033476156298716742899193458530035859683775432695263180579174073063617945699425268836733271788137873088378599780660617571748275442803689567698689108177456459352518369056941212686134919541273292153968952008538019644541758091666410337995034098704638333711709649472494743470305290550444477159920285175880404943564232306841383768978543141534146078144061732312311748288975406973440371340992026589663644503830729279893896859769010959634430135918419328559951280741119526777624616879220613125459218977049998530818636919250553207548927651554450496290557886314776556688200403628836454811962449636554413276509350740716242685847164573927466296333603214084368488433275320867996165748092527222148978197370497235969942795538807476036177147314476678604396963281255351126707773227564337125786194483995545830438869800419385896194131533117574262561839681786231482354908403406819767297107036455366394541386621357851144905767825245109032336329453289015348797774558776982074469901188536713772299628453308160944272933404725449682144326092013925926467546819394588479866123508397343574101731338641368159663805781991144203669755949137852493603663753460998887931142461859551919306287416567328279714055849315233932116855604337770642612288589207840620590449168255629398922502599074200863502696189356021513742487032944636970784950464751874191764411518419076727204959556591964326732161709197602004154239656924460945512373560860433879453122022347161262045427240965819632408736272033837107644840514366914196265481953530141867740063097757978690564125551827701433229958910350463976503914120531208935904407519840982234949146447514481273906604379331437646865547059505573442242397549828694201524002997880976764975633395289410313907609316624256042990859392619298360349146553617309420726136185177835046586918409285957444958462393057110159246361538111515976064910584116255680898944884826034656930535094807406185490419290347516170263557865728162181441293979047411701943225633504747989125240141720296393278835825157755566139222946631239673911113976191399228052792741882373922916280133758940837385253270306797281295669928678492185951975495118945188418403061722175715532813316227521137857555667170451240140660838806227557755301864283729016285950261387394069965671917753057013691670123889962904437418325834472013323784330218802264614971670188610033647696750420576864879487582774516413465138307574445760305728163535383772636971390602564156735050125485880724993459392271642209968903629073364993699134609260668507432986665229620927474403011373371302255324265849092016407365779375981663763002996195349388188706353668186193698950966063524230646166806499792873328307694488630765220176252768834665871267167130531532424217448286884658170471429920493475314979720948854643042174120113575535345682326456095468831659054002303664943224344397491632968994740561438034950194542819621347811335620491310368504090664130286756603879394448143847125404399497611235679817291310840795964796974567648294284510930242984584458501232378787432070324668330011295563510875503271298133454945606624314477815230696376987723380685364620017719630977765516887723338083366554941477072981579197117431389974854590901896527240240826711469779080460648194962522933056822871128068458107133730402733489325345975889169681108520603611198906081432690056570915161244892614488714343579310919875312211877766740684601187609557749271477230843149716898312729021762582389506238290101670724263219405911922436249868246516770863677419081486986810844849513418126487127338835801955808039175471601303789854158622271027258237168929685418773018313833380622600448257588321885441697532742343109564117364215244284398356804043934150795165289460531053805877587865488867077658578219834902110978708258511784823719809438574776633009741603416785147243592993373306845661303941817612250173531372667629852761425830791890245977164467970988953531865552307997286621277569275588515118385372649525772709473885029438224490420814099639629765385695849145160485649345220491421621981832331356799397093424676313588199146852279426044629299701789771908053575202408927929152058365180204020619068542558252572344429250951712323633365639309200813163603280041308794994694333669528356519837379269703979440555593538372788035649960708500193251773937413356679335497639515815974460273743906261283831789788518684125147218900875196806850090177750623340530391680449230719007230098912097548279034878056315530854424424679733742952560068479005398267641388471872263516538278077131381151875882454460078768734271805206822336347707220300524477569253743852383606484894092737836392855092386804063584900294769584730440921106474115975136448738595108876207518611156711040544808680439139459340523452046150057840724800610954874608625594176567999789799014873701797016528118046129974471124713042510130324524334504711256546731706880048633021986220107643976847822479230715604600868774126189955665398472589859955851273211097655181159775213426569613319981118905684258419699673556356340198476383281169650454548698083686788308352491522630450537406530140665047901368286896912179807817846649234824723757689404890804231367215244274914451872814082641538447886853492000534955969292361602811861421279187858527030385839743316333608964614272476580066268139241519732351646511281716721850372443511393886223696191490324075047382902338150135243062129765053972591693143503616995187574922365294550290683022814728953720851880615211330390663200540942411714959226202622311543641162604529113871683067920011817888484026973641684797326499300854849463975595562778867794046510277780093188122981262349080605279111910808861686811738862370124128900836215811186431806965712871168514587694628419351668108643553264755761384607912769077337078780901656403462969558410365141879714280287871774980105155587279308586451003296128773355141333540477460104289374782173947895601261919424970097972666482968084593832132441472761993597540816678194633786783136178032991003647904908524648517082396529111898053259281285597318079756374100290922681111785577347847078867710577125600376481398118800996242984993414731710632468122968075255014076126366302784245394620007365482726513618138728884958225407187112198802298046517172538469746546052729490529194821419434943826960554374907067729655041253015355144915041849283763285126885177252139044054062092159859088820117537909261933668753493147255138554578560786764484555546648171999567228090095622598915194275673063900884621340023465984104413075905599072914220398608901970335742744122964057197142175806743793021346645776978923697595359180096814316453152918382421172899962888580621117193644546200924946403009757278718779926874103035508731028983376128773266885544373262342715959605629739999395267275713195190444550634624806203321674999525294220283742698565962923504770475657501461115757822085500044247318828754672918654913834910110884594923098341633124032318056367694319512303499997091805698552101502773717114973378582075501017407615556855863886053470811531450820561344557335877177940659553439349891906400555574033353987106107777765620804293341232484857925221537042188802428440167628163272525930954381245905095318811082862667259482200352970064530216293363064703855656590419165719162471092105520497504618263053284488459498736430942341262911967399274113015143428303484570645143384353105490507590485922102483918487990140126710736388182492501125470688180809920676691938998323415618688040585775304656614392225017151149980817758985226219809167074536307699030144434892612941096690094384350181640642603302490408003264329187197643025122077420619518882490568069109734404016853244335797423578877131516497189275079203474744468098135490401161534110144966269568828580868886361901298604784132219057237521568434274781372270262660769880268008034836251015426724285498523657810753563217533249581700206753991223943750021322304667712442672594473029663493139431540814828051772435954077716306472405102555942584603060821654264040868325545209823823061384681824174947231262057889266143546878137144756522085464393701508344854054321964532632258980915594742201849807507292160290757520816257609305661040346293023967948984396368028241517766717533052571435766599270017801395115513554510419515284884319004499481679147711855708789412049075018184860475075827323069721874608640403022193491822967555153491707029592873869167916072457356981819479179439261621868752376470024999113046131570474747676887400300152831506827500317309193048316114196431329202956182721622534630236443800077197786559195599368582610706601053370117297279382238605813445870207749895086599578818245442560014689232540538812000115406497025050466777875970468255562220476415490707746334168374898833241474160296748150045651806014849709094771359335132838044946386362396573715456401752989736203140065340125917875429470706626141445949952967225538338972351348099220495814481209492901191129232028392719565193567580611539592977196925542005699860844863495823795844027921613951871347401577312402161606364508311207103049300367006368949403453251688829766615845275741896909440288331476996578354165635317592253339806183570453566843706435718423046477846603704574163438321521828984174651320068516010874136943733604826835834248401585751418255640398593790433228115841475712456943022994129141837533176753668031503924540024451635148478514792721231664579954008983762515178887713222608806574002254516645480324000198570629424543018347589381296203312043715234894448575338056914141670882549174157360589473210007859563749753476010595422381558653374757219379601078390539680611073931798924424061804777863366339657586297802255850353893218264077147780438760353004938228752687776357111240747647146822903196344361700290316421341812416122157656221615951516870581828728851353898827010445997155960007995458461050440088116434632398986800415967002480229228464618118770409012050388930832578873500797653264072942118741054251816060420764097262187153308529238743810210234243751342824182790910115252628297656734423498397713615413634493684367896128290027017514284959592696672364681434467709703367599474880062000886932738811723551621791285595743825304513825313931850751107988568711060849961518369921326868267946604375753015556209042938523611177932547342722869464389365936460225830704797375434831613619282064795393132075365696193241940183105916373383433952705474297963122395591523788092206177698246174747471794831575277236778539154791779508316113181986627155892346300753054315259655696741106939072572175518969685107677549674978084600077654762364388818496634484645220713776207554661206776556394208325799637855562760771956587333762809702870011598684723986266940518179601310993012381289434055968599567844548576234062943377246026170503191664081414737724389339695059903662193186316531051839009116967390833452294327950521049435145353628771265282505454760840799062933009237424193841814190746887698593880703528378248526644855964581208639725910668142836713768549885105942639767077242742748076654057663586028650620731739157675286290557268006871085713894968917882104363107067443555661052110811502150461456686579355748456201270442292218574096859350359637170137063194846423708180915261741069727945399873056110594339182271138224533756020702362251242782766833163309867732714626948496155459428114411873544759683976789113194911188312498689661732595011752788155259415765299796352749103232415492837025876366510141532864226451038882296286686673166592248166200176885031707119957693857457334799457229892212340344017049675892681422195484011273791863799238296533777491796970283106538389766890952337058550569850866000669292028049470539662959430338993464909081560712669208899586636871457887617540434309393858797368049374731921434318142277050657956755574384791453277819433411629692395265991796019192638904800585776742648147399983254206706168345355943432269000639306482789386670464627788190748281913792445496200139858893160891831783961587469792378159808612072490508600097555350330779677097115256277414165801790624834361284504558806130687244678944718614533291644805978608533474006734690500646563242672804970755110722856760230573501817559717410124275317808295847114905739740219267451353607112642544496309245576498838247965271755080830540782084569131874570171395537826466142312060887813014165474036135080789950563803516994555949107433416043026019668272866780148185062791715214655712894399071686254173198028306639556551698644757762384167826993520756956220188216756166372859819538802642338667864858469614874364384844198317628609077525330327635186302855693968603160610289771996836919438023135980449068146422168396635276235552772658495236237671936517453854336609884504679906317467409613570265450276633497855534296859059122271441421985632453949738584697259580122581802352107224186756204259716011965710408687727532951013824721227428781518191570782725713647594812657327229941979341784123773651570093308158857678436547429409148509369706918900118725277128131498374636821166023976189291499427306696399329061334431622843425325566442225575823313813087669265378673406146961318227113701503093608841469074353210459149193832977193437994706124280634747215439031422503993560748230673823707035718402461057092227212467475460721138328282135548051808551821233754110770391884160917638882810422377419738617849594583379122228318537781571913067941308375983003897031866491278592823993151641364174570689841947726970144652563917688069052779906022511577158919229994076471639450673271580226176150734232218240959864438364096695770035441044166522800006750348495389243319788788416057662946659520020869682773173929514333792887702381574187240264658754967877290222663761928885974458961582872321856072277101631261548230136480652514689926523307419735285073103359101530662542248759987365924422846890915736578058347996350110786170096846365404334441523423229204966398591407522417826257809400696561261016067207401187979585280286056592430686894804820864281471091323188613709846366651182611111345888445567871338753793703426630508126446779022987244954097012041441472576730167347036262288260651406843243478842007584155314629882557895315704108654982602219159008173060180090979212847926432375183930159377291842417644135455557288587108748163017734196553163128481771900061557318946533001731891763714516686737609758924412952922519184115187385897508684741178437868023675385680540862392745536776766107394364800961530852211368142634178943908147158847012709590201049474064228822339333140626499016212284731259128268524967877469582325522142296403303451350202696162112029154149045864835702912948029710375429835912343804788783313963825773923542478033968781617826871475378115054365858200539099978807282868882236830878088215389960282153797826277761515680857961408877977133950148705348465736799248659744495837979820195814105072545122361421233848189702981181015562199732156744754958409470487161993327692973097729330800359638526448106459273765422827488538675840148471185810979694125859434749374456266632601016288550595026335729944144720796859765562854649191915563955095395963315167054013852420401176865376832966177325483451056338565929290413149585577984497653003437679856537126527454860480097579187114263325106610894395168704428922405703339405927231958666293040639856632560108519636080218073703813316688869194185778046738293500758392709773077017788263304343061178874737916553566915468526965455089031055737444833439834122168830725899313494299109399398405190516965289397213211430930399533898344386017074837598121094257654861287037896574663449069883334059605120196120801121674980576080971445957347243676912076184700355278846495768107099003375739342568510653999100472611768472238941419644925812417768616108795049270491142061496692653878409927500399577663970760819851877218549951997182069307529526004004865893687470052705198851210989723041701447519828440038006481932275440822748163134767827171538764716004503886780528306423917062875523588051121617511906745562683799098727243788118003949298552861598311527472275797267690226242030223510022606469932749680824506636180035497437341767290901281591427521126070086748741841202631773246432171584323843267004319571828331313464209008543361419862465476124514282960184359461117568301340699918300122862199114490931798665316646888492390703491009318824985072386365420616679351018894821333329920906716296902726155164804252948161861217741826013345647096654837549386942201022081395968503499209429022223158017112148609251395519498105426181619539222670912083935355117280752386686669664248393968003445638768319320860158902436404737000241705146286901416954392793817874853183345228944530700590220838557194505340096087885809099275502348550778102726695278279873889954036151974105258851592757818567568183641784178166320581350648635221232623038307202408751556001904673658379020487378899087299023627876058082339155596832737209707300576150867445862066993762380285896362759858707286674906875872723645751157904801261708624053756942730307797523930542157499074134102805628685581903749550001816837449637877005193398510854543822744484557938677491689267921607626751234168103217520430521971992138599682490308399710736426927520105996511791422777969820114127686288150815607116777336103091510659826922361900958737051258852139173809223509188976464672530948644315128034425957228507136300060521755148024094995126255145861747463850456862888275817031442827380152466101752169988289102615787645688341295182203435585258863437674072937037101398680570456965253356916436814572319365595722480671209741672069191541399289124836435491853876629024774895149390917299998993077767943368229164321181138815023291180657745619511800798595237130053213434748907976407530071766979428933324659100229809625293118792865034875963281285023302424150224163659971846281847801922212627786522381655791845286403735190407004322453873964865911180821453772715854988050057332893184088912556289976623377735013247759910400911897071129539606702707799069713664598472610988203681190776698110288870419721614045204660233129161212285697831936598935579466097911571593134646823268619436843829771934577813052275213963430880298913280180928285495340660828513824270409194843384974771465728248260164441271223840841860124517763202797328514140397916332566907905536575364637068567338793169300973397472039282416114791422108937287050831641722712308716230284728567602680160683016745112081589820836651665307011811941389099486533124183701179318859862737752518995066919081023574846587070103759831292660781409210111633966464044004374252877474050721571620309158815165471440942071638687396198905522322484602176063157516762470708382754751478016389492432007281709642028073808178368204058567287397058317453691961316094147097610686409032359458727041237711347239471731288150203135406505940291139727217885721114781023020607781656865293203051248641383801009462556467738013680117654536158040535603230233932536346580493471188457412218979646738040397515213844418553629798908757301024735920738377505091218241640330439840652215671558499325926371730012626482136799653345220417030464158078576514173858012619636379555304199055712356420854311515303396804702609586971301049685042894440055191131849149139489120217816695509763547397424526736050563219665007517941344727157463595354490136029895118801874538396201082820574000776962616629698328768504142324338010780474104521853798874486123414862003547532566581711893908315186420286370207019303164405922250821807924926137723712017156232751496863435826042224161041099256348795414877084257164081026267442650047885434869678686115680510252296744913773494435338593140992677552435191972939427169426402036519900070372141336558820024131632949188847247185036770808416923819115335432974791782105681507078851333632674206569670681424878398611597609419674749030071851085449327199159356750600591246651999174190258369576048336975693472469565879613002685519125907818944070390894617173082624298598906191434143100356196015035867837111815954717974145469212427865728612490679221580059125576832226467824980442941664883638041281476110923724689314960319505899832509795776867211257689444324351077015574106983047937273966603922311954678685024541923286217319132173950204205071710900122945588451379464356389750510921706554287535737248481085527172414831937810328209160030852193827474823287329534240758117044923764099497117044051528056361052588542973701201326397979781619485306736289834961297410077453026174109217567279045180315033442287907926263497333118801154991116652468276197939513138820218745766041819252089140202191848800134019397941450725554272971174253997183284912843453026491229085791010912079021682434645972593429289471885579066450814699791980983000023933978846175253659445858875162459459094584657960152333921983498257620796517491517687470039541539714112679802796279383239312834097337879467104563082453192533496231769489336329865828843274461430722903657585060818337618934357286459792067457826267124621830736712482264673878741225217243502313109022207065665366962383877637465688323803718231963963547493339575598787622185521993410981725319097103846016795038645155120326071603868876657668000489523927728901378438539327628386412786878440172178216172416677320540403652543443952004569558328285838041186285435958658588005384436844996328152998222836101596048574253088145502372208136655462202975745355387432044397084250051573443847595222714510950511897603383520943937437906481864817913376084216110479965957637497182825900698311005166678033410199636782671815390352289076607049674147270331627940078068254275181834994168611804789159438975343906085885373232138641784960954129273876726183894062838249572389548484514980159218419125368691808205770156192230287422251841799050525892491049547130650459197471005735864307030858289832014252676938750144863115666150441042775455541555206203962497879319198339874088539677963387714879448835247655255285319910246651217006330771672788461234936311120752037455766748947681843011615707807821879232242433045600965660261686805601889113640368659807734199451983921221612047424964558224594182947421039254288534483020380055244079455203402691271254081887473544224813188755558700296788746870685219503162456760621804341673243299926215651568729066010237733581013793281688181416948384106048545210736229411184015881806418069486660428538276683968731564394486455465219411806828045493233259251873157580215453991803231377293073329291567505939044781428665592490223088259252471902887003396900963209652443513017075225631943573707259516283004856125242530085701909415815975625035230386334216480073223342346282499638517624842139112904324596162015283087016114317367181920506566190054053908325038274346306411489313210809531145714395571921880609297954227997886618461389734062450852365920511313561706772472911499529768354115087554332286692320250314325787042115445830607467591191609094592790487103368365182392442505822268233592121831744883568905243500019755469123739700340945907747340338962311116163375552385232760917046028770535797938184390996413809976011509063366133161567694427923700687185752233116635712171950842302877071055721279554880415088027674173092879980756847584458939796529660794853154797657394746672591195035599471639194520391639753458104428023422621960377538780103627155208106878440121540749902740258428544970531958652602761033778596435667437858219987929934350103967872896993816678582958346659857205713679200204940089688098709749030127025034111260396723635687824815092248762457816276609555145937769704481243852708267803313014421305434122580395129568383143943879901670804528571343375821726780190414581132120384960087802030420003603248767565111700574360363081907598916864456390242539053029725738131925334708511820150915406434816425333619674938552022054095496026786330736632508199548998370920554359371093055341787346700981958013835086638211564714702771647264364131533930304901615914748557330649007004091865001960547744738252430930928505654579326766569488629267665094955180092464206879334751203292194865056117426530136092929400654341171272855744578348358093735321555302418877735149960119927025324510680830400508929350151341065142422616016547218881863536704442423136258874926873599932322585534127382008666310529781844071323182260742289479692174283997721524770137810500646204889672547576505783827756502924194673377748597709398179027595198571775104157011871031085969376053091934461384836065973249951287333060045706429631590629318443000966001951767680751408228428088761453328032651747601085863057524915461100834722369719695095076560683049751403982482203867499054494306935112038848351147274677951940371843950345105028512083015858473447675907016566270027675098944271281270334589862921812356311784191489716373783548762220118874281449684788268138656805486321869900628091928684075777452549922744928127721181896621331160134267220907583786348998791774549885730222807849129526126177606218667348540334892135358580287922443226897291892585458528618628710920910013283597897787753434749240664773451410890662292533646399602842271739814171451847510280411504190159756008190336634402330046321941946947583663073996261896150876094197678633712154683124665404222838411078317753923373860637800633799928519053497714218078805774926646744210421680502188378896169537372963375065571367587276179791013659204231985916526074814343274451098366008997989631025327444533141040774260774080464951786720290083527220230731568196022268985429575984867985541493336776454923334658324430781244247031592964153155657778738911757335835338618872764568670583392382841449996880972247576283401807530303878768066934343848212948441876841945656404506774080843670162539695470619933313235664944830465646255235600820800661106920305653837043102946854684131995607088976595400936339558301368133306945469389432133997129183328866410570874027589061867346061939430158966990722771104384665899788497660768464382365744190318965902921560749528541652611217638858804829452970291172345254488428914982846757747982902681517142956596565341202380413263620742845107292052032878626867619711127916243491342190503172342064931151250296499433412732864990051020096499841102051223480123438832577676452091824772705935130491582494015075319349433954579877475050257010403892420377122194229994315574821519447466620073052461409730978572130298086624643592226310957181032738141173870056029622527819050351570790856623638844132188063727880311999020825280030241984778621074121763083103798346951541987131349674489392840184839852133483103265717955886102941650323710668716905193437442689263150922867582682700770790165332397601378096311275058587370298978016259462272632966523492969416919871871983082738798703778754993127161802771290923505268637743952625445886774942085438610759425821801636555534533118254310746191209108978147371907795098933449803468709642833816739544733117299827335647897997864630490857009864310248046764850145838940461060953784604473116184307532913590547215481795798575077061838450551136198594695344232850291404951093540240205241464957224008284859274438936666363067967938479785272240505358488266410097914452681225921857075755200589154793210465916825630317486261391751783298354326921177543760341560062097936298276409491136080184599464819282047057346628137189871926241587494746608911007153720215233021235392535584096590051049709684903538879790875169636812433530165191206011013866514791047772016215663000675131165558783705898787065648494430600415289456138382224687992811198408802424857092009847968136070775119363657972231092550113459103050899437232980840878900431164606764005907107037552349478171520503727759395235122023737002980593806522974876686039683826786046836385747739098061819474153808195344347319752300949584340217909125514620637627111562158805003065602849928550469079937469987190713517812723026553209045790939571074287974651368833163942629579188809080352426397937111729811294295856062736280098826852377672294293594877388429668566360966391220067283767309010342680855190222091362787744214876483252975768844635029088134849299436370575207715368379335864028719019212174058287864178567560753117330192280839286299007639375542827665351657028217070060885272726340095643793033659504781602098557077404979990231906675074554363887237106806480097323698308264330995337408946740540809824678317806358553992001267816315900829267738637442968870511278654477400296188864735341189111435396855023461596122464977466961679195154665341661718682334062110858249904863955432717810540916312658512581993822754587443959869270644744377618746132344493555850877693399584584595751323522319644433053735092423591139934066938755447046183722338535420400922995687514108000476731635128082794261458502635226659906940444092617778395344508218456716814516498165794723750603306986172174989394658508608318602783724797203156552056726122694329777802409661522165138054262268446370262719552577901000329548198959498401866316206630354653334967430691307255004017534364546619917635513581260080491560633611181875767894292892205874270355615748726995601555049460077499722899731640422608237766805720626927884584702087968185370507279720398181309727427559718402505808844344479596342133491191726153747109863626094123379887361264026576749165950635361896502724577672232380377090493283424976664465226573789040844072391652800683153489338204641403760504545244759641749303638448604521688975234619970056010322747789006187814783035020508764437648613019628853363514769638118150924059774680715433178626202139561016181409309239459763022336042542476417592063070199052396754345502764243422064005002514677526994872358126339829064863305246888861229771133851483887725462669957883213973223183194932134948356566057951976622328881922470489465874505682258487619387946939982721512342667426676444676803799225283473053439552171987753383131919464296325500872610836788114986932593077673088213832523867245816771828846488921064352023494641298501441908117482747739127305548923471147013641656411593054852327456690665827582785382041247360643556649776549874855604203820820731242646340246110789058014368165269787614560989202538596881359420566979169362752700138805266637814920845994723267064620881558434607993976468198698475978022040851577910728234465082671051909694400482495108015710930076853415143801636220876296808942986976842557031538031551742273789079065394592904763329293700098952633648478513067771071060419491817861124127071345101840344412432858573411469883503539011220916161235333970342646546320158461607343795968088290790663933975592693053991708293556436389470482929752889091520787546318959481526660519392374280405498636906803321471561107367955991239790052385095947103880544772961134662488621680880267117753667261600382769222757912884713342413500604013883194992719477184096288887035684877932809568417239324735274189151339321826785153262086648443048239912599394400396279546445121961477564253740797019617467478920225892301553074489233415615854714533814757618371228696106837753671244049461871884716732891175855597687912377627653134422768057226278226458948303192881356358837031197770776999571838757685554313256704602657747835071976990298056042589681689423804532649625763477246089419418400639576086835971475427842086614102542039440100741784853134356168647161111298891402464512938893054600878473551336090699527137063267817665261998734638858097086703270223742390404717751590610456466331633652017465264703780407667889361644367514942610206752721679496590455603764989676421837959490650396928659218067221271562216914406278433580839347221182476280811041494814040754514891304738845183883403027889947867610649422294796537185080263152365784760605090087516284770893260878474042736791485238139429585994715605234471869315940839551616938999003268911019637937449683679848201906166369376996105863724447596515285806142192355263909414964642996603595681034132097897390420275152747133929265055336119668786341881325720342306221961624012840656480285627665972520645999225803075631402450819067989620400957595590098084362594531155127444606534107343265134307446371049541293558541427327436539357270709858734338229350677553769228713316498362370235385570977316971901314429352618038293287491368767937631745521554415737854871518687174786168656921220931034301135750430032247416378481942156060275630709137690666702742935261306434397421404731815208585499966953556658268417568226910067087380583508190111093677786301853267116941645335165729054188942629008844559310790622660831213715573829836678302865773015094624816886139816480389256632342722464899344238288872764846952037630269852859204331380109364877616316132908526444232536131486723796709895624818218342784461462935796415305547617943247675075585827670245297739734444548716950547715132405006676955418465381007435846062410633957734319959287163193636103275898422810380346421927823741526416351185134302674546554827172394844955570244511761608431325480737553274471756463829796322308425340469821179858052373023800579704996828681214347686089299227048026989287817634074930609679757827445175251415414572727582925730994258332252161235083029265102773736546796310335615849447670725437456368224297690955114919813480660128496577785717484806896343636577594415991703247272129755700442837424058450210120924974370183630993378672933271965610530317234321306145330829204916140043376134766329382158340166924049395911346933747929312915093481832886595621728750369976194664037209470671283088123049023303137840916754472001847990119527631395198998218384464311400898004719710649645558668596738927172535234227155951554696595018372910844291394820254169261512965131809328280548617075126227716711963407355176544157981201797361874120962281432823479656606775041459767929492195810964396508907237986735131217099338144791156771733758666427645762171699153379256776060814774310742696080852016259978631162131777600280044006634733831383002498688020279025918672059169165743042501232298523726140081286852644477070160843254686089107185446923774059794051338169821460548555050443531969636462008575156018445024948014001074440029407178276052008279684416968499937671642616280058448179722913640029114763245868682202377607322388065510506077828391226879330343852985032635714106551156060379823315805134811961383669312188774021702034954681598472489479102055651159980478483769058811330892663090564344026957937245619911755074851561021334738324584209894713485343880896598015670413731604650582203208508826982740618522049868406707017721541707765636545106622563763266959007787624428096968054318008522830645859227698785655141796839865075464838574221412301054513424744320266553142735082453392565443647112431174295259383289965589749129643928681287897479937484813972699631329683689571237469243692379451493173495588879863657140137505205807233223033732156429453020876926123370378489960299085535668527656018545479117330893641239548996328182191690919691730005151167704684906155226295826025051282966757335748200612569441491849447759501465197537150787197778416944090964854010431436352251968888182052528846641198440083304240728038497702508680779909156369201971708385560075694986084221494367041042760925425020081535185704480634815521597266947542207646575112476363123072284153767878080556544428597078175562630390431820652721651705143547616196991373797152029815103133679645819844830875185160256256543435395659605688473489982206075862248365033638627195880493029842045267294273344841162312202805533090948732889083569726252811116413118869510283921002703092501903656097848424546261748369089097023538376570726244870496875363440163009345974286149748164724624166885742708685163142620431788516561083306798317857014553151190357127373572341511156697047558656613269785222091447129025176019741382705736232784270361606804098037050424611972714226322731022037706782041225221524840266650090370703378722366847229477120074495986976628185228210231702139881909569327521066004202167863762704582525086521693633072225887373297802288488022968687736303876461417853711618604139225612675971032283745591935466600974033753765302161713778890108992227005964239823606470876313677745313736623187457388456526640269909378786286004505185160334623295685503545534730848793485813590224148387281257898837783405739462625914526590683575450979619026832131126544128204139560627370993629801490621566799708553673665631364895249884389850328136995456630620152710466456032953107520617317169164295427552919185251399426914117134868773630723134827604266183371894111931508061175558548722508028260621704708520993723758381416735766075077719158994094321715292902788767155015117107201429531391632176526514698035622884030214642828915263021926976068702654948938999935408247653130396788467145137326243646225919450187693137316728011003634705422486630816337233525852407638267890553884151592972965736118981916433453223421742498489585799383615173653056167063548604899791901622715242365482796259053791006344672096214711699829589998225468780043167060634991457625201294675672197312313210999267724967134571748344986151422250613572429007278092122500222998253243153779599182562350770316911490010841271873380672232066551249468150837983548415664647898167193881944193209073659950514906376954093149141413352435681579228059973597819224934535311054443184712347228002501259024111384456619189489490544036134516457419894935271205346905519859005293140395392266115753316378508392278058384126546363092430586220784502919904711772303307182576190850257501565537936248485344753409042567094598315332386910256460405169977646049934160604328477072654835848285108099345847579477611249937526337344909663785979001267265858880897691568678614546003907245496465937614657960548960200028713748675650927744040061429134351307252888932056567447613538485220354624603190126408622670361279381589141395094273409179172459977544752633818924753068697153545223605818060311205581275834998287385129224723501906635348377172954736846607463926715831382112272366535467786500613151628175848568802199724106013525194672491586338699571337079624613739964066388816631012478232432473101871458709947509789628159341309522210423805184190763353984104320509619437223037401845666623717594440817501592367431809020242716240981654065451976871398723394411499775349431097551020404805527884558022689806337288274114689413571894220413202310200322388056773626336767527011701659694502363236827611198909986369186110907522850779900000542259974897764457924723415644556392797681247740439346155523402947241170364376209082416898185301238379723177870069615118735816971969296980082778374521841365755173999280552880047818328144112936567545372160626809001747525449611257432525917961501663634543959638877064873935532798148262363736426582521495015251692581950608726513433371289008215983012506214695569312842138925694358387269510715002775103932545054363733098880299116354663937931604474104918955743281629616212519485127066281086123781933421912436393813497246265945124651701252209793327253578855375275927325577090522748699764341129355102688279522520308191559696523863224677218414647708845519314834194476657152057879028657393408677974194886426501843617002249553244123238835892606973723849733975955568415077616890979081825585760742429056241602081215114750334987572423272860632725049011910233940343739380778432089411820124930325620699995962006485576805760855907041562177868214952278068062348652785254640968603420746415859197588825561380898579809370753287446574811845322520103685876581798817621878284110304245250371661611224348370099724410888397907311191983252469299293879863213321081106647620146970625903071605314813629106823158047225575289329680400831998650285851611027944612502387140573751121556692840351706541483745579033925846504282154153049693045785112401723351751491407585972556449864241123504383273521339804362618499052654019067276725942651484812449266780545559375468361426003911120304791154319356343384249379564707589188864824188867229140163129736334424455193489704289954185976213703666256506670033411396624748561584163163185519533289993883429730678660420397451337792574877714439108007296420700784596755892435825377343053749480783414175574618573983977391464788616880686827128045994870738453748183099533700012648741143701910465203602091141681164389542448973857725981244926922264503662955204137415365705675499337652524056751453811776149072074946177625473760711891877291961515564435039339343680681818434657167386635274941274888348184170987676772942636784950111066134179970725828499057853278597694890221024848261935984018947926244115817896604431052672721695956879933341300102373977535430822047083579834274467806189186999037883701345607554105369302308706522516882539084115495575657358733472342855858667662249031779861562514369618351887946504336710325348438623086333753114035512879511698518869666674714390574276224232822899632404739663646520281310524969141098815938899988917770305701485751650412534937352921127857028077090151683688272938404063881350307204456397591593724684674534968839132333911965471873801595607215347473877511686202260900723901462627669447548234634165417552100503715047228908625521582747778842636124398146139178859203816150210472741710177520349224068443651856442631202883841906256654277360678494679945720258196113253168502279641177566676118756212869638156362400360449059614088521834006489917724563248398899397580648500532650456672342849830606439408304409015231716770051155692900452157138079903127454241946619040523554258837869942613071494077720688926382346149226252050586348121601896454467593357096058814690480319101367928229875596315787870324151063148689995555691988098513968029474751908237250497077754850096245191884243388588046686093435544614550147592491236389123555074271387042988885332088379144737438323517959812918504783332265481740137252404864745566290922966804586371436765831312640357335831080594959855568792990026454409001858220835430647695559157520599595221771889939314360104109033721476669625604228849305721861147947538749485867438828869822557820608697766863829274032945517879621422651547973043342936627798148080522702629879516333772196527442903527871329773276624539209166118429985687662082793822100014480411748403254971463941530019980499255689609367182696387228811598942707146883088737256398510002588822868181572310202836824364258207219560976544301817246386686769155994420543878437997531484007575222169860134838989601393513628864778928051357486580772346181736441444739525807891832192511498558834784350754304582913698422812722725229825110480587637632623805909097558051112994688161956424582985333346659671194541736159270280386855066041398898012022220346224340286502167083732562381076961220141791090433485089320374149453380617659464274120328744285040044225246497229032467149841948773272717053810269878635688234184002826710746209803839914822723195397158426851180668351174895618267809180289862540322473095309164894730644718914072288933318858771414002203727023691566496926663616693792055068731717372421040520681686735062596262067411353614195119833594071444561928499658838374426717818442626531429117257258346172976966707769098910060491619554821364075372526215333259533116859128926312505696128932739657835345737851329108663342146423393118900506937534506205160898380091968282364534078283386187951735991485901301541473875020268358285256687028202381363765512481229736853967411231104131519980209245729886223617499534842536379875231086985337956822404991194301842144964107405870279166446843526447617360212402385370343294472381280014215601271724202116805301507636148746511970696959030113557710136119714379395894433451075846544210431042990306015545568041634027930579214745872670546451736030853654332759517328582729206550063161322826650515280816841475636169896722630377188151505800886474334827015016717419297715208920095419304558288972459207779768911039732972720398776917458910418381961315762940435508459665563737255357518922242912083126972048002251541652748175001708574544156240816730833426022733126665865259413608280817692788312835015509125411153643775089204939171162977763297728523073442858268903181289114353886440602046992895198127112759033702307118669244172709958216588435622066475974879593169585291535061629352501119893589978576828439104239430109109041337894716882115346792549591878444545302344734213140122218971765775469424850159886287145747495972486010263163318527055821837001353686013927676008574613096436479019553896929385749415952083793937526792263296532427871378804141713707059196073480087420019724066880486505237799406558495013377587633252706334473679374021495965961216522756267751119360457172145853999015886379994257712535250683592749497927458378484168298789324344288098874084525389125779108648729793837349647321220969278431762268456611155668105442007572195430133028851867378802001175537210552658294669928872567330431714697987108038114742481882491729074889674607252704149129944475009209188597073603226802675623317737866242209230533516920728517568929192911461997298615113104653841021183208139630576719974905315524622080680811580127097407447292480585651760065508768208263057497129163868195434904417030460644702135403128066170224197450988573135557151988207697586053418599337051166134051462204184453145419140713512543843441437840680825153320642247411429987406856305932668478328945308157140752990466724178652298494962692139821909623158290424973747388523544167708818968624951571451801273023475911283299375812136482961776513388239970092066534949439377668144318904074813939781797661627678511742651732146493582893270981601534351929829422904477993645112864782275879572078006478837385769592618142191245562134476177967437059307709640982570793434987140691124588349183918138849365835060429158486508561003872583146751053229443097504403161424826108022297819572368825926549071547829974528418357319503019733386474442621971774385043757507686128188435910912494316380727738046522317548928297179084077922436792133175964692183270787626185362476476776669948728027210982198001995348489082659542698947243618569392036634489928545417331335550596116268871999954938931626235435971609246362316391639384566452460989649263946091195457119802393058991156635380922938038016009254870056692293029321564379034344235819112569220579075000837895453784475453457231593418306316745273731708226095305435794788210306446324298035160920976134714072317344667951160186262516754177872134972083965200781615309730018085422984381807510717757057821973499069011116242581996223090077600197902002119433940402637227990259314287018771959339128587235997494403717980266059494997538539218131624296164124524379897220891026346137407851282128646331025525299480059572325068322287549817664895698013649525340395481841357881459545985670937994418314302838801722219749785944972138826696700037569024471453978577969678855960340281543002526071503274033569825806747551970485464266684939936749290184827251799245556754269648912896694157044437718835558555943006016885424064379017998372434751962277880192964089777658764875824603199036066478702048549712490620282567835562936690688955348297544847686639965951950954994941938329541277072353138593179270082429955915245701924068610152537065740868393388598011010640998284242234568718361100266065679049920583137005003715444751774419856723583806863010318955017992007206508036251640173025752070950496949643275872521865972363538008134684173972560394620774106374733926267930578280198340541230097185942427127210198821407103247602368863005518714223189124112199617564982403787474431238447311914736244988890600993750962923617355031950290564691409064745560650503427544190270727907374057177094245164390289206979830172992531391369316409028217465947371170218973331065297190430805879850317285978158316717989642231651361036628985261321071238732191029581112651673548039737644026407358925965966266937770804199937847965491656088242485204486860595671831564210384089764748289897217764964012925307879160500606222106222170878330034782142238139553854121775080938164224623580597917456414357422921614420673362595978294451048257759953096095752670622426071326562785418561838756125242654840271871408262719829299911156436941682871748011506371112055329552196282072046408106200482992012006386289865101330985739712200815700064167663295395103379550705665093912611595466142228031633117450649147150500759697918137704080953843872894795318122443937787311821736662240210630353759761003063960958688001595602799023453681975605702966615948090290562572126416501272662956559323423906638864468361971959063612281897771813856491726852328210738627285942112353013571400728302370112697930372279909235718695632525325217990331459258780918801730148361534707184188456877449982975987085193269811122489352882340812849301158810949220504358325450312890545846864156155852436701439881724325220329590185349435241817319661313258447903285066440692790879413317516807924614548549793447004155042686625382065857019954307344418116451823420487017831514693915051871423552934650652037590969038383959312525191799551765276384009044633650058226105281831522218561566595838741000410285211821538904367592326079676997023163175079297750191348219795691228803757551545330345960183596079703992423538777680558481143925901667088335270551576794436849073624600363031651500881202248606214196781437280778463855286525113433978271601745081687509314587745506174252196235005282333537180515460668464036053597567840662518579592279631447890538841690056084607217432367390090326549235277334960779530435395711723235623162523399932699951109957453646285767090151676632135731398127295402460015614919915210984787241726790912517276495437347527201640092067859185514208484581158017608527354308437482135469823976574805540231524209473632513845302083121156426688957567730083048244989263531196692231313495548591510772345882742394151961361839419313270832479229629764172839377832772065894636990798523614662099552970852591215447015912210304140376784180393318807307162252290408142335809499261438580653236568171420041671256151578187544837772172286339237329359281581726899636857481822601434114620953204465760368813415592359082908567331075374956714613379360137289043687216724221108404613866323713404265330164292129869349140247314888515995639392404407855826100094308901391161268984857258617140686854534952923543033860356593468941976231682667216149716748318663231914756462190260864081737536768603463512097110439549114544655756019041921208205861225814375914751594881545202877957116500796753484304643258765436830031433093330735809751553241945762144816465992868727242870668439199729745792130946414154085099147317198912645199479408216754294165843480259846193984731995269154891814857038575718078083175068639028558118409949629445180051563775009164930659447375561764751339931868528473502662203508107908492271337468182106822216886163500903947055799810085621164038821295239680698487601892383225737316446249270717805255683594271427893751337665176991246342013362958719440728546803839500296681755492201045060894960199547016541002165515712163229279995893708284477080830054668586251207893690996502553797613127089126981160493088565299089904206787190520294172947518794158338538442328563209167990134296226431626514688780559810842418674099754562103528094579998004124525971331097410082883975534212217404331310311588297080097613621586976228347817009471741706883488282556227393410020653750253436670086087372356862165089442460782720282978307703736983104334882973005964899287872116510385920691738873893420110030969835652714649733382862825561063098162863875575851169264291628360743346975834038864286236576644854160650419730332572324130431974688623212307094906491078791860926720985414314406319063674523359301367682620285240477667613123920024377209928960391548679772996608718865818318687094074651970156869390317936032804043036019602223100917476750503304612085471975724323297098737715668820366787139739431153751791339074003505286763225269099969723170809097243787966138775415920545202762523737193410682013829726714287727263267072100916577136058270644474716121136371105231446168136956466398256049152079442111899982392440216367810010358254184698288648200359053562231733986463874998884966095576337914975601494847118306933768692252221568874247523192120333657864151684213308984646359272600920271649137236719456671025463260375805261316905310540812729244083702543269727575458823783401512092122332955532694957753997520214136180575069014974470245451488771497926435333013001212730721304576959435559953905928090735074698401939272491767156995612947780634744683125981624053050762291789947072676265104223223913478383330259553742173614626323304375641859506816332715897594783757881728648403162933272120610549554694543798731453708370220516769211276621224987651531135509674411282643984706091748071434315998893222408893344617908523547939342006868129414207376553429578569416141866129452005020661261896287000307004089011311495137309471359704982082719509542901070911275017013140886948979078423791571317928406607387209353066737487611183196492009951795278006357295952857303641400981779704155582460029161383160018116312001933184870929957631450644200654837428534476145034336719623244084171614236376433164383551433881696072079616773795114559437346052433951163243265042301449289386906342450251407166868044163495646756844961952650371892324065231921565358215733574684033846279687313293680272267159816999884630315667255499285902405553560941053170654380794330400020478756941266537309729492812113097292382994677060066539724914555283463763527292589587285917900128781704023582750751879515848087574710027918929613616843420299626334866054269730104614430971219792500851338651682801100510770530974965728371599255869587451671172197590369217917472892762293708409281603944857988944247528579051825974667616674627647182095682915493609307181839884796150502477181728512690963344952772906512919069081805566421749592221578869526474653317300073984766939684991066322681700727128359042407970295248364755203093236583914658570671677699124435383423765598400478131771006920541962018524508550549046833935085297318296004746194382309828166736802831274039515632419721204375098280349275304552529430328911414820137975876338726689030406635267173584763980860055641798214870435873070095257842577866200848768186311611621371462570109096613520378665861553704968068632717850656571681341946112682274037632124770826417853114732082778371611749547064802606598678595136764138761411064713349355144262629883741023612928828248994823671797307862001230357066270519871419316668339185530946153412956045290271625840388767451578455777862359366119789500314646653678044866556262930046529693472334810444236511124424976647847584640787420293462382695100391601014986821426645514248771798065499147917188187101671898148182970406735650143252812315306345410834509696810946933722817506156312919645635548839090416710828066560909201768659936025615411685504257212504039407760673150014094164726285764316409311576678250022807115103511428225754199728223908475701098258832477065298042674453550047846141790958816812219938122894518545528268874001729378127665645663152606168797099992756822089890328916611668748172282594581301317618067574200973233448572623390418093258655614502576105389230179880899425633882651410565191697547534643849373292850988925663889517504021879880924834234328165716907667421503199330699060654775740370519987803360623106491872175717694030891315165393871250367233264447732667937873026298214596648812949271155083133802530030731275861278715761631685336728267971494334312170136969277146279475238360771239827342772921567404964351132778029024413232943307163531265711522917847333755113687546615399606217746853306434928610621179737903677513506234192921908969931387737475188609389312532759227171302011605234217844716518795978409745512194763325821269362985385295319616777762712782387584024353524049408708605954614269781217286392033761141930673291182467247092250144470446827895181929446558412057009112787016220261203462190851567446689942310530763611625275967346499532209777280976867618712822543676124451268152216638802890255432936477653198394433396809915274243218151101443843495287743485079613597851365033153043869376351301421966252253881786505666273940894121261660543654564281679295751867704980821095586235880003095334595183356748454313947550190849131203854255598610231427119962104605895395622863969730355367443670582433531217470608528815261893509037070569491693615419966823133056528949240709322956649331146782023790320110863856280461228704127035369421602415715303551623982752383313929431921448802638632547355482841047590104108871731607120685282628270785741028613294312769833635886688540598069518210220634463452879314957566336780679536407435310036695677249621729767924839716802834348780213418237841546590594556644340037955802881213726935095815888814373808354019982900458618991793736582337153151541872472737019853738663739573718932932099446961543249274383635382035007076280674332217766654532124405321337414347320491666240522963944675936389756244203035792420271353396320195049724074801527989374968646583945254823819780633384696825758558051150005156103504319245225343953222645111672461215213064367104031781585794315732017824093552301705082998921243683672318494325782478193265752504732263406997360817051338394081008461273402267091099076823274690765912892969504012341479168566874049442115097115671404347219508650078695219807775634416436450829716544796122157618020881928412919895660592493424467790543639092623171145975739304756695835959454112636751164489178771223107398160780329309603600932404991419797560307388323188455165884681493508745902547901285200915972879462534962610830576012483156775857040133207963676234061448074640639454469162681092749186625357865639005380045338618993561865921643140416936588374310065214341516530781397079637273568000810348604351049953107891903124637746728506754221610722230199710449855392632467724356034491132889965309162331185903808742768218605211571056722584603982455143851856528993939415812408635287649238566442725852047343143019814893361611394818015568790305708429113881933702210414378924576904514404507181754197980210732871729058756056475897643379958108584028061687388869497838354148053784143212753099472804338763329636024122285472172582177941429494220026215276250761823995119686106723446290693515241332204364513189924410835817700495405348374195389468531813408977463201520560496463266460564065835198188765606817403955323521035059482176602755592789483354690606599223366824111581718268706074294727894763978060529488375074911424721135813697946641147380079984579531246417718739913672467897272971951575393145001902183200070680709858540374183590528431644732673250080406368423813981327539473178821985246384951021920265877909284581879386695042922362078191565540793769993476409633535997468171292343546133696280152703034296362530221801154623126065014177903507714700003011580696506381537971249313114740037992083387509328288807618972837546402355783860894803197103760146257215190501756867765602655357249596076333874987081322384599520111029156067793786443377246553425401982760539849900683943287077822746840190494097081469993573727959259681629095886377513985939708464152854099857548922245888751195389106054593854993510003250902061992618216902612301952304631006036581947774825209637734872490162842075923936010002454910793546853372491346484707778896795747071634842046871582071801533795212549043623498152662623771656052999154534744866316579979841177626171430360008761659022206239673019174303770122841945537145545221362844713734463651062214597999966038585523447702488099059362595105915065250731832037972373292455835360624558322352149924258767764735749960980824346869982819919478014895185405342180587900521740529739687400945812364780117310446664240748999629377831422731099162145181398141243730461891933061251259065868913167300136931420006689975415316630416594011159670145306736731576724242541518942606314498278362128035345417017780207003607895988209062716265216604939014539518596869389217874116286437168488582081531705676481589028915111623282626281586875566345400141046431196708319639885766998463906653833694662198461731324595631083152147143981302896406180810581860866382793609258279622960161032557795533657119943455394066847689258723166843183326146315752698636253675845179921244042622533178788511160676970399691239530140528145336585180540927203421571853720750625336842193649864437656441695349089686372765761492989682134499982136168395814218448158461629001902719102090331950622685666035609184155965097081693154532634395476496421964216702587494626393272593882174647652268655418781878548073609387343815775708362464470068275200349902310685598151753431335457308790207154736539855725374607318471988746736525328603838510649966304185042460675352122446568010107427496627342707657413184724170233899512905639191179282133422225260677212580467494102054962020990685518794635953019063857915245594616372999430677134629646161502965088144225948000227986268852637364530603407003235694749596340728353811016144316733876900275695836889396081459910398559735777757853523459994447656333621109225135573365358769448088837303320463058117239480826775295912010269485295079104511024168115688773274229297816332016063236030585801567368268503803846944811913138471254422004333557747263937880863375983296907559244585424561002009415965287469700839576910924822205580763882333004256633964750991844451031338973224740861967239338105802709125783650311555124975794364663753467393779186145658354697411520582441391190709651630269421853803622361059743511407191209413938986580210139129689184839102938747688747024569617113643646430592847646422042648538871102762764595324183500362102320185962652845205170693431427414794917810555642478658100862774557317285224511241054398434894201353481086899373077969162649310940555141723741808273012180734102855896577305102880070025475349641017049353782903276317758928318287175925157013698864600745551632461676695412269980268028201978631975492344384185891719485888784359107106438635178373921831108026027075265096657272415064819737377679617727957598473751139334243297041103368318592273888036001686918957261572264770190044684451278246783910665938006166565714542775226356665493264184441896857151250768121969382631663840008763496735268035463795151008772947378847227599886031463224383788124260643698571106206817727098205151747504936921946934073246002718663232921102297848623189953822411328348610488837342235356860978269385511556762267997946831838243370407252132994593811564145571753814519693270528786879384532706834944819107293185607281829579581769892735167402010471295707978101796929407716202089537353520356232395479733464559010690814761482436007241988659210410785773206395275295814287250691792541788572341944877208362620755955751139752816177120095455600338514532846148090127999600305978604845990477490563017128929939085654141533312836008864030092883490438281474366131911211235267965984371639343461413602707162528753363261256297262265066792984105927469475219047055874993036566336015828664308087473912044296137850104067694307376981810724262326409764533813081452865339385141331943063969798705138354223339615727236967075782609316029016745934595156962680710245821721250874638789644258692836722827677060694600792646336136989541562769955589515959265674509090614882700992107070266270382917581032961601130955942299889966576511195061392909592625255326844612021104211995353803064407099037903128829718109215614519745186907438253571611536152600246070091721791746247338955267271788298576551661067052251437735967649187433866257400591625442423691982659163283482661676919873687799348510387682392077670365265109830669039607338013036202744734309892900788504476606960573665039977814107643305335636385085924654655394941439370729831030171956013291796170250006727145026437466274334186191077428481282121827540721413373085306771091151150145203344818805686974278060367413865069570730430132595735217236046564870504319482705944908457969818581316943805228392202115661095847349074081375216100772675549717588437061150700879691891776144228843578258754366184841603796817472004767009457616103421566246107241481923157472998219370158105543753405739154702083979835939489636733871325917599179393066047807932845702963748491702060600120137071936879112972812903145049492037835750257533014585023137194927891493908156864128622348111911830605287209542097179144116249152596862963221962199800564552596130473770965564353857767008881677779453127956787044660380534568746679405865827465875226814054804114186243990573962887522605974541139490850341583466865642206303026186593049187204449031346920171875741885033960437017440049041583244913477509626846706494838332031180246205401601150392632486187799837813917359447185352301089006369057159024634129261369052031407181222841830456073012133601250196716937160110629502983042144881278273551129033749141968665295900432986427631803091568082931163368797128577725477262884554751276890594771843857154420110824264499528589068161856596480785725849482833250418095564964790085940683140588324917548221864422336851295734024959872705791806012052121129815217370283975241650729503645721100320382776090772813540402821015850479042018494546633983106230540604525463154039263593029076538918572318459235745138417816480252968535145451974214446451666106236878691617215662457690655846259344394006285857678707157268973689193858447630259816049274846928273620346735713341005659918797674212488084827747305434384717152044741976760769342072861096537200274789675711075203531142845219839218383173147518023538669416621448549531633179275490960878339197703302707479164457143338983827977548534178504030128188134836854867833543257132776553297730665883923023699313562386113577216241037054367057790303179636903940606638914376674180781557375924262853478794156471352990049751868397232282746988652523982879498169290207214745718982795829373528872132642165410860137594926156687408638626410120490700709183594166766253538856786983571627519735955216043858717067026154546851536433170071034075062874794586747378657233561888727859279412559093978993038048187591312190401300773877049618264147289487579974561991639707944671534041600725444125355721312638255871120500444454206165821998102606463073847904184656702562911926818571359308399399271553704334049516303962936013066326519288511919162141225201234991048098302528695613486484924391112619621846475983207255416233101405354524149641038692604822345364645079079911678808361662832520299740295260521611456749963114727095442208066389198005837579462223381474447555328181342678007669086342036219512884476298361124949569006083690406942680469603043248020066934683621647826205404029442411904680552449935021602930587782752131183308232275359075956831082387234700932103658419888589133101446940867901403485549969016976524648734227717465677778743329581683376582647467707110390837379997845863477274857819897211566104035275376380969298920018072431305580743896005013881486547325971303674618169570930103685980755016592361875190807081700104940579445242943923725915308162683160976384171757768744177037300949880815914541413182571327742454369745059573793750281404272960685779192586077213094999589190294738105688493007666503286840347862778460082439236296869097510201438828007923597778074479324933828107113660020694580684881276902661254171136632581929622447276965298285768804080217828739778022182179166004736577398942344071397023504805579983726727900771479892277476246221075858998925080522537213193258064220995558713820589252941483208544241370588630989842073026791142986062670556702747694351970911207692513819933409541942821023151760835984218609571138613194013222671552065909230430065785542835871775149665868531328002371302469350064288119580404340921026386855257587687574435625659250969781177044085663385717111484324603462243117266974699275824573143113928932300549386280467461902251077665571794836290205886695997678377217004847954897706262569768338926910928172400673715275810978993234165795425458368635640155304382644781791960399271318795314794341461294011929447065422027632984245458637068827520409210899234257729129361462995899179727820252019218514306704445202126546594688938860990214477478106757824566264838321351524375050632762943060104539541231395199455155590622917118947286678829912358451863268530495747580705530456250163312310238314919687682304516018880684154507457984556383907835318824446064769585911093941574403530789264658215368011189434846799000702591830224086316262901892444448609627327098816646693975402680170800809117862468340757440706142662015033863162849283896958729208003877459896453047677095656803452394627172247055807970593227278965265635430232551219155446904991270087469348788308654007809054622399330579745360518441855644032618027981740015484947219706336262790371484347558250358154414652269865043336561377862828459737182435423071374126951828224893752438328781466762994948238942231539960336858223624389478319717517580532523391265725925458188853350534185126995490634313585133303322919251321085681852677473343201663106515723746454827213139387006555909601699103939379892205917767216772050876183634941968836421932956454734789534312387561180790958219628381885206492868547919750601905086670696288845187600189964767101583980758094704256179672296856747791311999563231331862486657267926712488284966571984391525253450641476534815912154587120993482574222895400863401998572073083728739504218554084303968080489974288509716101363334124853761371273790544431777375938247137901627528410849062383437179730919253730453792550354851364331685827729429108375228658870231119036853592545619984803879013482578811046108699767148153506337176175278954629017531865776998067743625750143270028148188842806031765164284875348379760205055994534376165774243215059746456442603628819429982505759456610782547820085552065105486131857341910276582466107899162966986772413580970671045206136588494578112531446254017529090467802907072572374096315536545946266317772665778664235706486626975243790144112559857673593110606474287383634830602990744140541950926015680516594288064031656708788883146778000935383585493428622281047040947971989091035202399577296709341349199438806628305459967715020132993061437253478069808881008569551553773507196805904611758827183757697170970553238365722655579478647306403614003544786472895297445953005280877971773274781842460382928099623499396947740767650536871428236862604161318771987158902966892081831452348906687399121700511598898042290364974646132070405455142688793540542086641469573546724736907032689332918606073643006285670270805690962313918961757207046910635914772339890225214186390239847868536336310451035918899299859775169101063333454574849819164322755739722383239749358069439315431917312609901549357455966005755495634405034884474751515931989670971644093846822166939355894569735736640506917114292691906697092127418149554913299508724336239484766765366460261987018684571036529507613544010778352057796615056212124623350734266987624685152233985187019221748454837661161134552486056878822544025979510414324576134539262782129670788794595099170030555871722869294437981233708721173204295146516464644510158325351368605612676821045670961569723244777355109331547841221829880854214548722731333521787697549801099456847372534162875515670326784106680034171547138234984043014296935533210929908632854755648462092276629064564721264545343702271743200367468538730680054079836995139280613445754735171209131288667526713739852661937593866602390731626940090503930318561173739690958819496339088397931902531270800199844983064721392223687615468761118298574992895644629180862017638110598914510802964731987791771312321118546249414428643741496623478885847644804646155224897703019841958395373537879535117376428924793053012079573910651883361899525350780953783951795950477552948090058723624051167935277530244072110731343934659844743150946641296999025084261234452213356704487753376781800393096797316802506169740572059715640297662090954960777635839670998053503518098202014580573539257516522142265721811096081572516409522289567805843655617513636560694783998028400236186218700641111591802818324119219685354963199683190346283211501573399834481952457713299430151946254571149426316816851584797389713664112464224029004480136636847707281769269977975920678415790897005257697148095076843928398984242378525825096299727670347796868040451541650971234311711448168581276755172080765045246397420093126666154479583737655132484050503646480319167618708052032930170234429410255149742104415535949080308763871203846990813306365748724241536039604170781302782912954376049310881945734832397940495855204301031801727136898009604485793751118354560728118065543650509381409384278227928626916204693908529146756289790118797650795273915748125522383080700356527026369694141437812141819433446807797233102632549145581444996602578569980970470893619641791581299420455170582547347839834242480326003366129023535262735166159100061529707142644326699137482570379123844038861684050143893855307297589576050741514841498760097859472225103171497476496271201193771431224433486402331202034868624480918101477387976170346672905242530753399953091900902731301849250740059615211353217739082594211292897080453400884453199659297544381063515965834898389972779686322754497116568577212445089183483375876137618219695597792863790679554723158637333390791765806298518365652552480727932191676804293502115057974365482778294697149308928430478662098406364311360864438279999760481155840084413244771034015328249764076794141585419670188995990460727671380900591617752831602295117882978169860131373451810378302115059722586748593932648496621062986242694569042222955811847968661702594417617171099573188786082038744299857991277324895011100669909278246140788389804832394807404854561954983214200445156754348413268000225010953629449109423781457568340376960609593209542511838673121000906434581187406545295318598250795678676899004584323935436252623528555745047486984808406745456202129006192464418972928628132213427643957993408883170610152787246744118110767278339046583549081342836472506436322429407235032065114914660205466802161778471629972114401153435481288857861882847493699163979282481696467212804135744211315249266917177803634307970817903420903258936402072230013734440705139378263000512303307104380338178558803239031170667516909953420370697340250584420447831386874800212791996083971408785795183855429130619728056340165442268376025932566145788805632183684026405763192757526333164185441316967614417517039281695825781326991891859046480021054711227861599757076278514034609023275805930253401871690624969456224355931187607144417305885090429627922155181111839167098043078872926680879260814582471951093309874326176203055051274104113445667554012408449926620885722543005790721958301162281685050250983116062287403348758701001673485349742369761820874631199793507236317391249266022968996043015558149092602648574810352117002247156173780895595417724762345932628771568325158426631973424770388290508978562281277264027583183333888026125673964660640774511724037131282512941212021065532340422157816204014000629976090665865791699300150057041071635901125253392745554415820824427900015708593750769948592720053871729476930979427355747930020137097177946268519308467081729288145140188061481753843871207851250051416848003905244694655095887822103303880957312356405357788554924713397982409807885563495235410676304714748014991924781826864397566049708952874641673761224126794526021243826416737195309057902459503685828573907855273197296979750850791340844935627723104335952133296432104326441036233451903192043336821722701723029276226048953167534088578930683897533874054264409348886092590849130316771892206499102048959936124959548387097955378803039178943386891458515744487316513186045872081288822655960843892750671829856905001083756369778409098359414758469499823931315921577733708580254350921307862223491535630803219502761527058106357387956653397538942785548420117900294528050803842507431573848895564165911161755645762201992639797924919230955581769054132415133499523245243712605850723540925827236403447896148105361263950648384989250299865496527982599954089116528086343519342957700426378750194566069727003497586528760808038125752841175848912448716851433233861134780041466245856543190296977847341953889136992741884143549323307033746780170308552008259031663232336004579119435742661237271347251956137630997386429312887002146628834814230665189853506782973484882748140785949090627196452094388257269339707536451185387198070212326548319997858166165879203483728265439363617644484216489536829893463838521554472782373242988714689149017160036098456199327169779883795899623313881649317773918328052629954939486952484090181300406193026241483424549929011718333131230496542159715612764641800524404255346884390471227438665649453647350150232098770665593211365907812895424719634754305251557052245607373746924495312887207322611166757814441668816560913267713774057336155452639980997671694289202197424012747987307132256054657566150598228083629754170859966240205587459773598245147917678272801632905116651471635302785950322085698083956645915569789477379127645603926874405535681480405712317095170510957152024240498718003330230842149387556626477298564534592815784468213798875708981496132052948294395521228518323790444952618045121040593413761089981191967268609489070129272832588193297399286810751011369034710868247062296883676384615623654867507242950961626639469690924747882838576727947567980244899999267478630084544487732865491415723429272785147108963840845182524754537346524036303930104787728535977708574184120191104619442634288921043999451698941780233420415816885800066298570932958921017488674646106335050136581530347693596535961701885980769865790622136173130680454110723088310401617548117671034329276863258792148920774975947007650349595415718794129534874259786534368916736445982443981852660786550266453493562224067849235303985672594254975623342392973294307695283863414062968624535825928029329576726178797164671445460163485932737710017217636685304249281324627445192167701834388979026919328864314069530442401304510044045994363082158728482441375697162241751029939515917137897798506340197062375916311088240360007855778834549121130455297255261052813266115080499445083503723490558146258950337713496903797802110991070173311424640269547540875564660241522668096003588060254460546478077701902930367073869185114952265112741120813535053422686589570114725448265087638455354189456263360575167350027247275008156227801538998181641463031543288973797219583996205582182768845313551000201636294357836425148983609103081396049377729290831113828111851921082586113252001957874123915768486525292899592144627843275200325847536023343652020145011248085151062313662466082821197840867205770056681741782065218138139563015000328229743793171006925114631849878233308882378462468682109850572337371824129198392762377857721181708984853429751179264368314526818708633932000212561266572737628820308186868906981730335698427131581376344786720415550592506989190551566861273190742977373325432589110286236395701615789824289918982111187000849740861469559467405889414956402057133488281796540570092505786542501876208497193194379204000516739432468450064735157779668667344712297119900210509069195233610803043459219567847018307081467975380225569131602259614595469126849692318123053343328690838012136840309949805698076796838190157599090010304406491319650102842881330700774753597496816910698368298704047267426428598541414564557061107312732776970801828253104882033170559786998937591048801069775964605552793628206385116226447348149282320995836376383191112596748085579271552679808469105424105244089355104038455973886789982654172171430872417243795548576165607588872841746761659292364914648052142474471067102988602720661594100902039844483394786969419415131767082855520937181557247286281920746870608344798586760480416180396867793499702715193740877230121675499235360656474944357776226375814671539815323149481420755825798653214469833966537942352563229132176029860450340671944901193087765595885803376052238786690764830102529783557460569787074979196281636110944975335690876572077591215519136659609915154837619007090817138807061870935193235286933407746504297957578411945328323588372616625707725670884521968214042114885136455056533535619594600297710905212659162101983545929169701699902338797942108763509923532089606365348358330343493905609769073875178254323034772179487107892572230998040646341634605645105762223049360718831839126524832755692471496126224206967425167368764537582059675828634963640764337808234596384797111818633849585866719724534189827086441146765263450574873306707774551661919528206531275783748738073203239244500114100315535835542758202324367172038218925706912597009995961940077994126793774854849472350970360926975010763922454291358533142106346308582037483070735410733408455356941704398002215748390801958810266584156825859887417459895197648531191355360013783003074541208556607196319474052309808167373241968024839726018754033546333556923951996335605720383380132425522721751019182306073137586736740935571572605446772140799527948254577447713717092906416214154319097269526782829629463158305844170511076298294155804435396897711474983324339159726038228413885560616787070877084965202190245467610726306707003527070606639483350646181903358058596882803249103471199822613453221995360044543559048509699322666704742508185746129705105779045618751181233367521131030068444160748447970427730344895785643173230572622356750112129334990988522697541279007058138069211946403657051726189161732805761097556135958172754206430598448848067768605524417198407670219384341212284432551429722406273204670571207679003423163883033854793009426553251127306570186741225463969342935193507904820969781970520796125198727679718465840495583474456652925270994919778366338152586210908996264434864404991997503131854373495850970946466865953721866880333210507682126787556716523954258918156695255976957374967249321869309397367381330149024910815451839580631099803501574442440999392050708776780674943465497856675064130037049035436850038184622283098421120903362124355823051005432457373961932642750866956230969012095966160344782048851992104711457372145397452703163531979950147157539793129891550622281649667913005946037224759646813008165507205686960990528454193624146674997954976068891309581584312223604080513497738636874243784638824808989601037767791048103570620095679954560586584118546795049977588270330712097290936683530567776375857297395294544720507927074030409067896942902788668781259361712395476737215960969769329775409840107483585200616625006593080837648428266677640704625656422840145210233419526816141398252819042075004551081928406766530551606395644221816885469520968161456988085048564922161959945761353562568465233090239500316965553262296423275153092078326552647757409135254581097269196389892924960766603535039596764348954917535850334190205529487822646830497356478724787570457874501766455977939893758090773527613190121056565005360407106483989453922108996760443444316410491030237416613410220509551598255617190026837548826865071156859334299258478240745085129131146340134866105243208582957542672811907069551003244483971983651143936545881891283245333454816425795348453910491444697123057077342873533006978510781257545429414358902040527542154402978456065518997073207844710116072729124799143512374612010181386051191506436287380744617143906216224275636466530202687876771576312810534293099636110771031535537515732475144438314993240244593734624393213421028401499614999789669836141394329493467647054904597348360733764048816514680892131332574863768614984357818812684908892036977527801614217224077884711007690657142406567613533049158038195508427004124235119698345147935187133003143767782968966109939083062616508317777371769186392816866110715323188055586430078611872361644552101027981014274863749465271411390126417434784460153902906029763604151600089095205394167266301902018758475516685022734144859079374416987227000961080904177187889614957987261124937055772092807075541665269188231451559206131192600056250119229846265250381164590124023647704416145827424123504714216404259774504982236574784551900352995345693521534089447772365044658400440546973582584451738214566287465900143750115348520538461131886099353908698824238274593901842827861428264687494582795111486841923675599213056201203376275849740762836254333847016243758262823537148150245013777687777388209602069915261685796656242911593867900978531504006117296036363022180892265352940351836895230176948752916982757040491842639241471300657293834343131884168812420357886159691644217609151318280972976577884954235008941736817169424657424151354118910193239687415764525167030685943519981088700075834988358813087983068270413791629490674192286513246242269462467138466554880877099453933423266291131528346672686932684105647233283105978890255072208186667404833527509269604480798804497032032448248450799305055413872883670436484259356944871476051990675558134546696968041549704510444315433326033631430483204096777041839817341826558941107654852601438534047794381692687207123210827439076725008291852625053531818593578985626188620598022838798656570978263378463836656964927736685553255659066167969348505426860865039347639327019724414992029612167588528701800186375588010105117209386758958509769204966362988964012778913371871219498859351973995279546969189698579048063175665934021015218221644352108465075365866719489871648804698001985776466664230387757306191512324300301033477318102073731648763297486256074104324473421255700648846538432252533151075925002045739532742585731697145140395772186189339302828223632007540426376841510519133182881821243164102911153761186674721286548643357567005840668336210367501417953217803212307107466944994616057265215980225030741060460297374944425204525055746432432433009014177190368548752285593290783501325528919886599493774141898564645843613336566059087437012710862730812461661867572879787642705001017645771974828774308047528442712594667616217580497999739891720198215308513375338017654194206712597283172369642172910704827567442974348800791673347573857316042675613204035394580715901447792602003639386352399482029730360132810843006375977130122831281177707241478709934807856479025488397913806910698790865634413118893746674232498356137588006323293518778769129594665984689852074813158780648660069317642162330207410131422807564564641116426044478323077362339931786039299411109229594779529902254950174764362150665000157680265073840201055179552370577209819389642010306973414922312680034182382868702648391419787678007867959208787828841546792248352915155079290844492332270828433813024825739400411330098008040235900017271395668636789672353230531752574964155887988275241012971798385172183871858651415960890634700941339328556137861539547256056856738921515605595727677054749104681026680696963924193485546051199603295492488776462134498585628322413264774499538574780543251484879580301494207409476993288217962955551748149994354861069427158134252876438964654484274202269739217705833914865708556924801029046680096036497128585294127739611124660466967391826918355862867698972302450839456894940052778944074266807263610678015292140577296331241255455360281910868431477028088282275308544554717533933920380152513992748532747415993416537704424001288007234118976585343867254596677065788869996418299048429849844382859036225045694036330242960556897812337129821446954633802918209865214239369283357283651456497915583358265381877854233470162283019598871901397169302619340237119372100032986603620303466066599443881097761305433865360548200162026455318472492705553862519385120796446303438691992829798974969649736459405033587268362184619852882655732076547264154077828833969886229870630851525165810115456997904934470458728107645369722445576432368190342422294171315822529299131054908668335489716550044633210580904714224342083902685500225283528002156480076060522421614501745981831414766646644830070235853185950568707321006494744263384066409965972498927535684773927277225475666462191786876520391242201527923491290872257488011357026868988225738246363370580855607588057780902200133810806363015673382969529981215899878657457363501795529670153394212014005044675501544008698680532319513322144445468308169551634547302419658320685167329718069913429280372113686676770047515093968598015796320930381763129915099728495852395991043201771512400657602649409905937763962403412373445957122756560602616787255759141063846768647313431895544957915027373495463681355702142080371088731361532982122742717067867782204255328687308105243386794320260571875883676784287834467543580755582796731902088960277113204795654634145827398918158139227189370535333595232761843280209743988241812425441451323220380974966565954696404763010130424121403881900313280042640676409950264864615934167605917466039983621858156161764466677434276199484023784161463622444174453963083280945513692079149105898711563699452370768760765193820040017144651423656703194904689479849723395998829106697626351332809167966269517385680532112129054765875643475382339019930218399980244936161207645939737766623168210279080814352180637758722869077387682651563119042708695548034779022594051758040146834413677479012639681772833662158413916355980836467569271783711783841443376539617379156840342608748656561446682558497818749045209301963334393382534038934139825956693847421351558402787589878211876673226266234422977217279235919486101348213520872013083884292774729945064664311580184156016583242992126730468336869009998191928079279321051284957937665592974220002345065874648837075101261542553997467495809495416376462613766061137820972286068450649194914540414636472431026959613766876452285295324093098487632512655610938031066830702486290073404769937428018814797969319827202586701597067135921475446789440472000983492092040960874990622179433014171748745565655991467687023598039143694752964295504532663511861817585025293779133228706005023172583584686572259006422807841050786046427713002882650563048741347259971682964123899862249161407514760566815225300306016392193575602483610691217213827185864337481046464563189977896334837496648412607878639012706593024563387212697855617640260671992042828947874315698513939452584498343142355640026804280903577290062315408517541993161331857625447026410419769077297542165928259040233844186015048823045632432376493408771057882628086247271257311143470309865055616057612773162763318963184088408891307573184093084913455815544884319097056104725798213134412518546669324524471246097565124376133863729286962676651193375621514474304249861776365991251388734780097370344165447672087408780206637791954064353243888683362836678397950377038113262375014741668288081754750743777584158502222173839888820308495427028236754617233420064222052087924705153485870365045296294845999433864819195753833361271327840345844689196925560542506221780627070022687081294565565950528779886514548167984110430296339683737647557350784359200335892197971178126940192300647162577116835389173757910091406872008504006314833141952154940383246055117463664801472004992900227482711586329370643277603957082792458878724601831667122281115883683767952642164088508647104518908182600514968291018219795798277372763909512922162918564069650421669073718746638951980535090602739493590242646292376422274181650703078447233280312762386930720308886684323324688031147832203327055967809574674499312597582934566401427606734222300627024910438517915234779511429660398169099445308639875298983918555056783024883312881395370704638026735911445366588110991853566162929455526381324765195243491923532342957925083569084691921554791931239954601471624356856834267603914224543223021756691235838556103201341434644253212719061800110046816086903173236950880337173639061863970560929659123774120440268591657462439569291595254960996353661632235420300873221142425619780449034164569899330062987380387995464576368509489727776670725654416388952794816846056103021137994367464157595819672260689638756234263585296743367928001355553725093979500160503115952810251223088462496953278240269487080762347935752767299795422359764600244821598468275954359514377721671888737962787539847316940374723697747696512004395935446445276458349331255876667159498499101519726591806450507923834465223727809564950790180644879476636383393229880512889962399473950292387971397680930228865932072002033626047288767241772118347218084722828755828883266087010278410829117992629754752044866159714867724791314894982751701592960864823296322488355914060471957768672841272168296887425973866005636494969285287274977595059185865491598163428687571556468844765012931402607575618553477085665204031906164301462508868377088459541384671237608402308689653177282897151526762906045716582481248544193368166044485490260894441977055079358673110742067065028465378493388243165709984924691643340676248911365873194575509855995271017646001409831074580890877022646202772343415481299882254337216032622673720259232060478204524871162920520448613456363422719002963106048695115588781947790201240908092386970374247639513484858187275293870144028281706841746017447685906793300231927275487388305947363569911537337179642661313223245078769642964625398346553774054115086540366165256612465968458278887574376987141723569491132896691679549851970195872742471844982210676811559638613626723132204494754551802319645639570070391061000249494565526533729658105753597941510057937918312070828883981824031805671636174866450883002625856571908061220433988723590978547722518021631947431738566409705704959776028186925393858570709966406287460942736822275260018506272311272027022824803411333491259702750121854229985514772520655822329456106345389103216661156595778683605408295817076679711170027726576634424359995440353233916015840162280731763709271029405329497787030524599174357236441594030490201426285269174118667746210366753494646548312338279617421841123771770609131584360983224769621638852542231707399484961620192558133316250862185396852089255354926197627354849006521632182965243130869841157305365656374377783162539679025423345705462365180118116508512343926971915092616279684423953664973531929567511440745301199996797406424420333086087820628808232949133378262902103075309325905555992391850223091280318099134537513292968502282938955887762272692529578642873126817549480306970256632158544964110659931102212914475860611839810761305938097713254700113860942623075028395730652837348055572547200443621535805664844874284947733917212663642036977252168045514816583737880103598684676884697686915124330181094874479454112292660268744135013219762586430337138538003929013627436849282605343639397914683118704870750235976556469919715033551727171412382840261243498246502189398720705119098069192789717108345037308151707771742910085446568657731585195999178665172027791365737585679207841333404108577323673464582822758510315135345351226870001759680511127638529656208692339132995228345362212358575667041778457731288115155994658336794857788754485346547675729895820928244097781235742881691704806565118565273389631137933796239010875639283778415728544912147567600773324715477151279384885039018897995548127109118774732286267656713016288219396270963200645860140782079878843922020114272954341712142992650973176703929647475422340619801423439531967585411375620526905134819487029064807964590711646769164289595298217070844487595201134684585921685252260067401318948290563336588624350086813722519374562897977510115078852955799309285924279374033696969494633611307366887607619685899310678757242626506967072435049324807661390734728404561621067268412768770706560897860119778155676229380164376763510668611851513597602400753013828112421229634828230373733333335855933269431885043534823324111147335469564269437843004614960900704626398536707146746660289572904583698472437364363802711129966598987677815960459956754014189107868719304536099470450753108635695189934891855624075493527919273969557010538111071460321244987735415957558001698127817442646262768208735313556789312047749605313278122139415119812701641026100756651555299453937586603203026133515558297841991420848808645297827298444317521502476027085756317137552428017177793111033649833759781983241305202539659683749725835854763949677526282973590294184732035911387789018873317737466287931947933792353052375310285396434166243650674687995739767446716032584776657655844948432671887979945286219258806756378828701957550402849541035325333124849650310683016793094977606873905861529655978877034406811381025445919656891663536608986892491204219849314748805848578353028680135969997441312113488611231869448940041414112168252647984010176343087597965908209432574955480495666462904463560030886541486336538596470516820318541340608386634403754176421447243783533677403022719944410144606931018265959158833999775707410600508943501981305055842921009559024162956716096916534340325865797821615362100109922871465029311450999866069810833168328267299370536302438521248196795452723230091254802163307254298831523023699332138540014145932040097156875226003366865227573412647596878258161345234681827622087492351068130492619558568832140978224599060456213313977363286698290625144930143466432103950171008556535152918302550349775362498485283150399425902237698033697165725520736219210092773194293224925074519172615415813848001524289856764859158717401756961917498758136400189177305480182482859308122958815619753232990276043450977950576631094209378046692205352976406054799604832730592096284694360944052541887993229169792187548969788909679164901803204223562019509755468954830124781704085867679402105004952186494557578490926193098825943229999019084244372922578391586594026940299049179395041590861169906070117320290218705319863705085978801020904527824073401915547768550704316016750085666214244113467485993725365378247553558526615125259178945836455549905283450956009313709247269175111511368938005427853579130539776688857982448048503127967936704074395488024410791012563668527760855447874083642851156819317757594927284107675866143082334679846928320300110696409656408033877321852952464624307883827941754509112160538234976864652540203848411326167068073685711911981044717160924423618253106431093630982952079164617076739230397094305012043220084550207199742942301138039984187527245292491543234029705923764769469241221634763631388246671182660252657105984350237097509901797080883099595556743033586218116691795654995725465504046865893798259063838815448300877253180299084178647983473558907980762831926261378835157147163614482864895484352622185082539242763748475390761558450388930347656568849505131548611064803355647240891408307892345667713369324271778107677288420399558341836135397109699627325176856322987674654676061243938676093420536136445647832893711397962442837503745926591515481999576203950241772323784117082414466542936519599727794954704561754923482906682319738263693759155712227907872231953278576621643165142594231696038592883344874143336959535315081790013604093593973484570416337770571335045965877182005228394189501838800277441258907122501066723268293860319507720242056882741885015617086220445846995478729122652388938620368167823880756892330046124449280018079348881922457806683613459677466344079107705728945598479528932236916081437297083132643492571703095388729480547515954599798503108911914888356876456492571066168989661403219512132486868423813578036699843879307145762459645972344391287138638177396030092563549774976617361617727105198737880657432963762970687530355392941757708155123454563639298608532178720475432443016563459683934878873465027380291497536435276563500160689188927895031900648798601828514163913779054219316851629730365169351576614505805899635309062958895008780623281165678504870613392769278975135222123557071447880256119773240457738796001026544561398834282491975113899138597600581604879914601884000329939054615944090792161155244799706771271515160164951629888414616157319670866291611413310228727805740321566252503939746102325551803530488074751907242298925050425633325413929849052637612500959817714629418959188993659853061113908829119179371058142342122062875696978880185608473288082160696101543058823245009573995125773195238952348870681411876467015479319818802396563270504787144856435798888008845577327575058913642499613368466167924172148757707468732561439891478102963979710979428327384702587810706424438857162307201571242918006189407734808068369556961636898846002684749657247637723668762698811740689164042165747581181661721540927390953395143221603947158327398837308020830783380585057196746909612492170670093528332352656613196973601739341112452021183218681783339504261682995927724006551212779460051638077690180712552471114495645268595614781948807802697432514803112291015873272023310693007671307132794256638317480588975754240491864993680884764204732370195717947852993339618485819930942568616326733954291704279341563020718076185292134886202055953661014849009831055787026365700183431383572464987485020957909718728158666703680885307755780360682039087242316668497713404046720670009295688998999846231293747619110180131356901786127612006209391675594410908128550193977049511091620538660056930631532738576978672704768880159806466898500335588590875502401263435958531025610191591338570532825455465571694229296728349428285633166404558405617577782054786246676234834062263380298386383432134965922789915576088917059889196916254166435198632964435297266704812008497677757936195439970321215690490337507307717427152253085127922160896486656545707002845578556015934839807270670940007291485110030564193357940680961242438685234931449695098406589539725634551465243236546851631390974220041163524258363961643070679723392869660460320880812190016568071074906232229892816614089441770478239450373906539690804877393537362232014055925970001774642107056391101955926287381487699899292659176285267599048956884394350819324446379157473679400078374865227074142896992159770759291435182321929138443605428741075492744759219333645499887129962851994628622150004253709603834185802437798726167869517296030890709776628723919739182227816040703680147772571423656156257434560184668310481360684975413696246815364661692960071361559154845457147669640537107379076925296582313706188920532232569330218250940034508262414141475202677668543573833380121846064100234240509727080011378943308171259977076129930071431110306949166546064215810524692283321464181660215168263513838554414731944701968637953888025121697966868302510544626932493128834345858476732441333298878979451271939399943812997053240365874579436675506864433323266252775272498957730249344715937127414925539817132675460689606261030462859108901713671905697661963074863124732420967256223218193526482581914955735853232043578635596376747557254294241024873458606622641778780817794514953765192898877877181121472146206248597812871878117954058859458818246679502461177332363869183788936772593322961907399887272092761331452018661729674664943492212312536879656448906348210084782787176302262529828123947610781517618885110112470181238858756075239468778440938105306749472700128534644662927478989061913184891256283997272507159172548796358667566591850608828374584437369802395119012873819430354933309052037785843940041961508190448133246376050382485787976496658157087595924895204661936170300784320110414139142930945332882823432249200550761792283824516646263690352952397638244125480436798357238200328187623536880629257297580471326540602921692000642589800956694803521282383836913819275747814975329912429470178629693307205901717911651986600100067826025147297778027875550940460313977105345745076484875589352954574759388260527751747127278037985075638369524881603770048497502566915548830788263506643394772946107172489378894832262728824920775234926272885494415904626480550135770145447767838449343616105238185992747981890525480840080131275199405195476245261212443778834577950916290562396346689194208294148563959940071840569636494538937545273702421612813796156241933918535566018911269155912946838570271440727631938602383443162442852253898349796320942720108855415445869211552054893650575838123402695625153402694304668988285467450605063142158637228803220809277002669166124992221728096400728325156512933003936574315700542496170616115890369503269830412274315840390089087683490600271330753372900695350078361821092968763623733407556326131675506002581642809479450205982239696856540032525386850103430971334425753017133730015314499807636099677723403307675668406934638051626560834954216919512669219165979290396050774368435707628304876864500902630088334688899977306693761927012982216206976073398458385612793750046412257417567320054567639726603746703195847293976104834045177988925016241142211904598229988998814255244753462183688424578609156491478141303454036130568720843404548152814035773350780364697573631161222958216357492217331780164938997478153286301815426768050480495529970685001247693755079201398984655120286499668595952199076706752729872161996488309342890474314526936877685751699486876796501611325319440672297211710990854106265525304362260735653177683465307824314293485552412723108067542988015339826383967288546353825617322554588470508980095983463987418720746781913784683583330289256527351573050041610712246706964781423112249320346509046613707661035120104872459193111611575997767730467326952778996652453268355703893789388605741698619177760423725652445588227724976187446028292188024602477155770854841143717036489609073530744126725878063640756024302055292031414594566613368031642068577919517879457836553745489290649282368752605110015244592029043967964404561731181879513935068649493654139836288795246059218895686561566237529575446633362169228953996199710495197066042346715637830517586289203007897009697734853978318756862437738014877699263584093989923479104441541559659281941942886379027662177835318587705316387909855085255344747504534654991247363873531653759806549443171692650601387112818267657755747509232061860189354101569761700943489578177755957291551869859635045381157277363848377584667915547596974154672829025467664178342586681571406204135760854892457502514676368896899295495475054196112899577976563214398129957005942242629648415001390885045823163202687623385492736348269255899221407883352466047555972131677241261627975019946300195248554614810149322226637200807286995028323640421229564625373526630809343808050832438430825662937537664132911222868915820954600555179369669454452032772909807889185059930570766570153851736322742426300159073909219434537692466567761543244112692179034091385706004234410487497059004229351418256422829519723473701922973123378538177066267908135961164186004555798708528592642840599035921292507907320577474895831946421413160735962395323326396952467206355469961749349807479735029334573525587208396230965754021926374277921313909488769965233396573546815735618162233392499855668537093803627098047116883885074112692784287309949619390796950533690296683105866381794140874431312332622144162941654874248246054083935840818092798397328196074809496643232618175541006703864983891185533633385947287758963758472555382800854023364948005789464796682668543376049344546992068319236703856131140754082287643063256551398768974457823171975060995343570074661151376686262277998731646279534780758590644235722756959281979242662763470129964307547029823816024154394118503184141056667521898858453953765238489230311535707647019367766928429306372143225181736323999864865010643738378682079752963107670321825976737665533844965884961012654302926486752826846300073341132934437167079740751445740347752701598216091458489641980910666281744470368244125563816363444203166579297990460716758763606423584698539276072560974833406363876580763591289248931450777645676972715336849946352645320184768874463341944518590578638908132298306530236582178335878603136532545020049426964173804013091113840441720565622170822788039270655349160912274500962622466511033469523552319247870490620629833630444487283108326419330703667807070010138260278586861849653867396080874250149587259447373348553099956673817173440785924589336481295306277239580009500317338539749880783257662687574077317800587534088306739612594922320346556684835456667824832165337109729175272293556447581024148142686435204897420884241213274631691308574905017532747880431641706615170415432763590116110590399640748346193188115299139000838619557988189256128206580327465561296503699472290531965475736070014056622574779060519823377800548217540612585346646608984226991186257035382287156567321293605253985697007463596247164255562043705744975678758049137876382305903473985663756110503319904539781013856880446101569423331400837548514506831957319685137525532508599005347986533432214388940964330097277510335576742175736322376333674058086721380927201424451344045981169489181259273234523981427327433008968963630761799229289434065726743161900794489516444180248451051340620375243409378036469339798767936818583656789409691765391569433323612597464427366528221186538065835378013258725316295024862722333887545726506832687477880339940275570581965960500182156885171170983829045194622366349823009972395993434268007517665835908912246219349596888509995822334807563585957778878658627776387747143873868025952502642375536825201192860240014786569193806186542124783278865542245484504941567615246772791937549353384548924530191108892789250126166331043657696909884088439594964317918977061353748277872658542694838040500878833844027321647230351928067735613802313342523139830599866860537486570622610650258544854568559697293685733965502732473908532774939800622368214631352011344094899854156589822365709072247508740756388847563842691140194076032204678268697539869333618167492094096423520412211210974724914455183997488358804867016581045959402362421626053892934483221943410462852104367138759391441291685438677137273467489813450996443795351791015357597842483399015300827528849859653080086848071487438628774291046250392387924468803138692778413161255796793371149445759714641301864019538738756744931566030745063428162051593205661424907383794324656721225767843689845000839640835344870995480726418221393340257274447507416586713273789163557283454451878977149787088820992720778448797154713821049617847138056271603185196527678105173973587696109878290838625190464658496807546816275315560056767536147960558385269310700437170670512803569084695589600414077707110240853159634767428693304280353939392159549585315849976591632462708481654594162363215042341317183609046346162811656126237966534810459961831971991439402019828445909079202480452656302050293509862057044960709845884946025941092602406854765539104792477471036004329991218382421173582249607334617755977926770845757168252537737225975078457635138520329306742143790233858297835774108305233572699138379335771388534469790614160289766270899954045332504323294748098790334660872999031767769744876224202182717783849164370819958528939361818853850823302368653619202857851352976402514680006117798170056701885433895308633124817384994181811666876486238841375094677620693583654409955540722866466369969734171665661835767115782747942052119788089351402116694859876457161171991923324181390889924049180884240143164898994268091676003424386074566075766666753767231978463383982243446994055380679969492977988824619442703218179808221933256404734744217504389353233813329653006346853627513641298260949183071503391983168382698061357050235677619435954290754967829509623215174661105420956693511152533481273976514830438617080209948931123701445965420207996095908217850416490669559079817103051755782842503629236681742918425148096300080468652506495684717188971531136387645910184925665402425345549871618954629270603715940708390726203742126542332173677010133128253265591675843327649852733709771837889834036463082307392210915036619579955061363548596362469365982571893813469752796029605644287776242507495459330198118126160612010302724167732048062500306352425976303131491048568774077900016767915491232621188345130240405647663171087495172028032123052720100344600164110569929236484538476591258368916919494264204545654089010964261120648038260249701983767438047868710042012265282452490662858716017577600488882569780435374707426459468009880631482834711677631659233050468728049918165572404076070568185390083736237279345304489388107815891203472885815076751834913588899463197008066221640871927402832323762105411945019669077635861715340435723834477993964224667200197124382533075009502798185379431553937044371104783421959772814536971431342202479493967648017722185467622372393665142950234535891574820140596015266058899744684970831889028078745224899017633728846016157083399197130156940438157938417023693591444760818007345271162753693835413492120703847902186210252598761524817628839885739242798841770309777657728911015931996089722465273928026851546800530424203254681612601506970696508028631104887322608118003206689575025373229342627387050557112956786183491707154208347492059197971751614202595507134211453007621961572635516650119523081967358108517484374201422612807012876808162173028077890465722674297430545531470685192841733638901584505456180478829506162743375614052791423852891401072897530927278090138224761373271025294343957872520463973550287994669494734278278612523677918265498505703013513621870521812612808523401770764651678082377492151305320260324943864668779187383073343735965347997869412366578343717871139467901766668652831732875310081976698967808498891932125970585989630412012998106173574875882805428181090783078777508041804767477038552059834109521778382327675123788264509748330848917651563130426060060734804323411481829741987684181013499035806149953218305272403629338516748412875619707180606608338797657470854127624023336972163524637491457231282184890446000383973794692571838342327477213722753132501658817625488847457919649345100625064521975225719323879421441823584044197118159037143113815715921868725253596455632316491044246301546231379578903076317175967080041013005438169172455355070037177873668968107391076631512649724069480385238429098318618612156365168888809648281346773510715665084488486873177064107435844022352717710444234899789976931868949254268796173352549750811323290874871172163030494634630684299168558797063747109808324116119241725061561885573130108960534898998427969906084029339571756879691896544330593740635639546987383743200625059044255579711474551289033717486648927123820770066845189704936103226186708549151298474685094616204200908987554395131143513458567865718748802656546111288425295646178337217994926098154138019677416198537768173865849888222735852810820878158401342116367586939644622059513680380937998355026739489961408556693738274111672792153723373687246206370115806474660174832755353269345790476777226775964643268828987699632402187729267083842689137469729975202132809235478935161759378461110073527286061373769788615172420909429343697772877939385464876671177005108703912947319940675341879672230920220437280207423648354499774100170852619335791197033606667070919429071284422190128117695260798607413195341833294434284867778903034108354053152507790253558426775684823586824537947992695755571270601879349233913871247702334372917105593050532593988986890186996815494614695028807223431569819180306478339405192278648468452604059524071351871936819002947419156925530926046446925930771539049248848804416719997312829416281926174502032507984387054833224565303032599854805008628154967586565009309562405103931094787836129674994673408099278928364802521923864970413716538817888930965939643479411933553735431729048668039062861016204608122882580714616300537192604532379629097858607804437615426313987353278897576799829440455479380916585679646050401434831592180313168781796803097617335108548917433637945522865400912608889536325567144683646420699412352704643128299142534067596164075982046442688855379648983259428299317909399420367115356818056385989450024858479248077032079157074270571193939289889056935876060329844129349274134137632910411581719455478181603380182050839969285250280139173459653680314381947035190018417857479783655133637074111091636729855228384233811377510077118002878052492275617733568240157856250191620061927238795689828699620822350713425665859067664299698511836016406391416911188143424600347286512102692585653576699874723675131791625667928988821054751174163692958542253575647814876249667000325288042293037954888237218171881475565784614838470012562279434900729966940984731315103528378292168517098311999716057703518538600830016781226027923619409032870307776941153655240047151421481898570841670561579903445585457916102973354305733215106598079177754614540215493785726459223003026843759723077283724998144345878643594973290109753229372731235042742537684114854167582326643972237135020859586067773452247251389869974450103263544292863177597636521261436737744327820432665742682974005299046605731048442656638302529911266442160753208709577018739685649844182973428266378700508925767716528899722236322931196590601055758987576977287512880309818702256526293673001974281147603291907086105675636318696414537662257210568244548133096615887937459216363320653824455430141700849047671612565313770524640906313750372290100939146552484390719923332881225018557960283592263924237915845912400338051539314145883448450987101832482417065449271057789744224247642296336258750449498112510704667763100154537848284563989112342248072718352471611105152661318123659538525318686026097895846436341527687295137042341297042703791106363676992924555263843487062537832781836117505472230318063302056084670107274783679901560497623611038019355492918837306828007039015046854994351902549329947955377296479792191772934686707315454365055788909245556364845796180110899996964633874273132584625331820449188222665413907473958456278119933868010439544586501388609564039534999051312438909451943582353920017902972448641084240175281794639220775901761567816820118369562590799301061597412686584561044969537003162931221820755479302431464402569199687573115253936164084520074477740023398107693412665867082140125630324129363235103455529075263124412796237236520697092146952914124143081699074530766992095635075929466599330783484087928354820501507507039194591667764257462748430903692723667109906446058415826567896371277670246540713973955509100167671369187887967837877782825345052553620307037637669862414837295527224556720275135406807885114304416302937970407911598743587612879403548171258900259924603960730081653699685059275388671289157875419325207273435253163449666809921221085954905690994870594557862222674820846982920317185116724526738792891664237042569657738155810790413673079431424360051634397318676332898586875054955590652556314893631385553118020870176443189842507051071253405747420493793639127243685817259322156144917345866784537498669387391443284424839055675379215352866448549276532174427668116137554623076956666083511974337697081178178159879891423826732687225245544323857332586140055501585785909260084765159298156879614379098524280917924100748422617016619401301297219810434471709298677793765672458957619255449346394675847684829077432278723528236299176120083749306629574995467215629338789869585424879679145084463028258395461693567163234222435341894804011910481085137758883391964205987846068718266761505234930397362235800763271333896715359122210097339581653133549073659241236297950592781186331981470582221561270428779255066738772161250143875500520104533235399638888302325998367246692989759763906952656424708443983822816929644797372444720050897116069938143996198468637408323979901458958102895663261659443271411392807324918768454450354220110536689342735108678637830086240358414671761818243198006844746665430463076918721166864625171839222319564414437473887528157699236396536287918059587976797808005134561989223571202020384250501325798617417275557494808508977594947914386348591941591262965427614424275766760910166946290168950801025794857704385794784584153231980846918900132515620880044795628053101994947131297897032414196040049596973381224440877324111065278634579989024507319347371268057094608921396196104245576804305093784125738802202474193865992471546697871687483655899653145945298012774490309616933193323987540219271122706505962019463365754728183315345869696490860088673199551116351447759023789141992592143070149904381548274387155823526398854209183592479073873376192623258766267160027365661723076524706920542217939086847291704669961135618952298831048773465308075912585953819027004780389297644319308673148997923012977378042464835925159175279057654924942879554891953426384186718564526349130916204597407331134496471971953080087884797237508682017982394626088509304869437037374076702653632584470073711052583136771724986390232254864182411223636330739759866199268172568119160972285229283663481610398036542965908020184029252748458076324582937429923272019481280993260882039279239008438126475486545518671482039382804042342592590069648420899078081951171917828997340059954782391199806499394044603357209157958219199442254943700339830270436985836183587082573533538329471728773080594981389848344277103062450796361623077244145618124930849963095379582738240597734013538210836220744477187237264249045843329378519304256948960628398794492480939719371127240374293170369669751255480483584842245675138997214563821020473965445770458665453428867485657594245612881845010485527191521045139361106268152590101119726340135661163575900037482768541460546684370856858347169864952862398939885594755700112018789940842310152393594040407020695300779052780416919405083556271685656244955513093370363235511838889082626592683575593721222963192202895144731606940754276198363121541936765531045400500105290545996735532544027213200665615145872129269422016442257469091936379716073137120386299666725216047837745651976418383388871663657332838662201869523814060101561999320468213827990170900563138403382769693127032616280190339726757994849022225404883414910101315076434260107996739049802024167615321297710766114505148537919750239486333993872347687487668222172644829844593485506249351252753312478466205693969891754871945529588103919623281078230808502231055765789086419549894366142045846010276919873954360096555708704352816441310475592831835996945765215257551842380857402598852483605235227843703146772127901960055502302114291832300305435879613806358453301413082515007687384772592025811525569116373121310136745463061522361398740371023240977150203749529849538397430730279033163684628342330907437197450924236657436759383969842802768902668076616605560885753869470076266337796224480573425152592045551520669839402862225932475549875767293127516624728211177682902883208615313786680062133986315511669459514512280075140317666165797252196939076686749183453672413019351662057366234234906695784338770069183325112617797931794341723328182387745414189451591947599847752900574080105752790699732825985361827240469962246100506077333659693791772890825675468919233311650103656451521259509663452370989127383948936601392310496945337678981343448631755292180077946231645560151677670378888475193917203827249144653987817611374699859697387523935324874728014146242806252744692904591974373691818669316095179262132649494143672248266362217160105143869314950775990621643744982275357024134778043285107583433376703345151474420350066312125947603198469487047285564914391056809459362378414301635751247028076267256456139230379222339123193943156722514626203139587184461521646066878991119750152161260725458846366705064068999661162827812582250243708214848801125617326511676920436474450531895244533294694240495847180487362309256877578978997228057097096284106847878536285205140846024769349705139452337385487263281501135567707801460258600157311477734293950464340156072157513433981066984667670190236523070001541484916081817272028641248315380839374263694092646706528607850012990849907618155650520964885415788007364015787517880636988131219008014213680777574785909564922419114024309627655563253635475955260974257219583917672288063217590455912526589800727996204262420260618276494764496068959672372843404873878792281531727924847164266779885428015681912452086615806138043992620323538803441148273622693310584151138906792472926170018009540786463070364193917960394891110415383077444424432209429739298300894351759655423579192819810797309760417602932403979869677597459409035231661285195445773988850092243988186780347755283801625493808359776957106219588525360030167803756013272866263647850791351978547671570744135458698534993353040171322460376132237969698163993962461476202841405960565931210152228769174166843843591963035830583876940203493785522474363033318655067626881382527565995562731261881094288491555108539273918418909114162034709420196283874276723768419598350163352480099106905254030158274957092359505350909631640212358891246892230500218465980589946905960510266337161562582640676757239078068786294055766145193868102178115208008458441069147943851406455481197869460542434451601641606643012669685532550850538851539111195031938010635724659253899714773806032357524423394162443578545420376067234551021387160586232145639382804927530898365673180744251601585419038613837611315313955977728302333135359087262844247975558817798432047684143294614052244069641890884019618972131829267590075279245188328559285062255757054935401141852174790661643605778056870642029838524121432764931518835921940511180095573601936389287873786283394514168355716287039148436151997377213560854500634638741989109173878512767583330742800761000149454479096432068049487072866311706974439745923596577093681374287067944535338123722723611989932791195186346600944758950516962263389212623675559059396736466354299591222201729806375438431390852589702031621532948241665411165365547763791307498896058252683910685810348458878658453847313877537018947725384076814294675764700165663819379788311586249503864333919979925161855635108497851888765984706071190678875151657145864673377400080405379095206585991719261527466336710631946071895243201200555838552653153903533684164152085100312447480844761534020088573581122311202770415083194661928910819836894291596518389539628496079656538280267173587926568145116966674773493939318166798910295476965858132889212790472579578108253139098456939817813536356365866615499845755772445400850411356363867431543919318698016909623655904060191376823056255477476661316778400077549358872567505520629401159612118759708503726276066057097327824644123151068434481072287841570111012592563706377785520571083330761453043518029742122988764923249313730215773385215577164318405951651455614330848271130003441010991505088080416175615550906606388327928738577352674795866776563499896391281414601620651745942900066527883510601834716113951317870501671526190521294141977294673750296792823264737857274518180584236577466187462980390251115631640974332482416900547141102744116728936823056482336407615221783695242544926105559856877398458836425523347521086288986237767616134072693517163859895807120952832693554800803846581750862811379641442891668913677152257636681437035349130819000537155911847257772823877237242097072448234376413239569414048381625490332396531008252059529928693899084880565534628221828153987877908076688260205126410572120884712981494090997010314590462475765801639292082474001240360153658918249916794086257822678765408396207693981858973482154604116695479673514331641756906874662354997155015034956515053469539454039199219647109655656361916750551335970832796169809893118726682556652841793941441238506544990257215363212215100389316995145992782116234224974289583618573793733874681598256084444362795045492408211027738263198675865058757690331807238400645440503719572358969548548507693151947546070579104214685334813187552272373403070944315604127139273726004955838249328095620476188343797774942758708271111987084768564252953271155806444230395119720614499241797148825617569784779577956833702965046841522543445105433833317170107455454113504281504652512797578878032873735775602605824109216862807977330160727298156702545135518579149342884418569531128140358367519779549689912051761947103280475353570635349059379024012547606522702425514722166852083403721893835345132482224115739256837034452376984050342450037988198477361587975345513260043346561256867424853180425227877270399014057193210369957261633848199726524109386180716033621608090579316354532978611284581541891047807650021846021916013128598342997545434798237285006458378836962094326897112142739072655309887571814332471749382026801520567563051349560186363489017559303476377908821885104829690571501548499106685736165007496270953222976607558120966590695601151112387851261941358275474707213130083904159167250740674030964883660817430720558252921030508011212631645205482786510292863012166529816895424010842199494752006413186218080053997431684563348664315260853248715085545132041797622258232888039530938789848182383335067988650231528713964320319819744292328247563937980227044151379477064359846230803028769336548675882075699645593648046687937475666429324252448161763230800381272203038587309680819980291306886743584805914760370643449452433966718539852068500627047961357620433709203559958839544532233025422705902647512176088835130195658799462248883549524898187506984286703369996832715534156501102657014190286841619426390758090845534116434661079382557961162827614290431999865810131769836243476590910390480809551047035074583091109339672061549059381396342394410224211215877993267213656634290193966471847152771021751555271492160565677133753541945188662673445807686038951032586874240786813386743529668034285775872365063663604147672517786568858598277104235394774694018240063221687529138726181811798045158771076490595253459241233358549127105875466445813390789284368059520303271614630209830778644046784625605742781791910672592612204015751253105505710248392208524657846650381520273669500247634717903469995812595568266764349994341099875847483704846685684440752391649908558593260471803545961854937926919425916607834429315068094823839210688866010720556628122900775272146089756180078120452938768498612056313872373572191305751457141042776741080497965291869603939317598222781717750417764016790836546988312290284108757844865688040039836675951366913852846018361278437972954066672972535848469430995182513903051012541301617814167091109870317940345807166777321481623310372549148797882506000004627555280566103976071852688245430525158012580077197750050029297638856392168373809403543072467437700503870946483300593073354511521300701013695512209202464063737064205274838443397836996831956917119423299178826110032363080246658145611041192983258166826569460110729043061372133422132519927611054459386839029787519822982259893838905987167984305744361627038843640294288507905608440794924852845087298431351010485094458599027856076400941797848628230895680500311967339912225840039094625635833865177017212025402616740803971807945077202459911069753630277658176616326161317100667810478308854194811776885379141194400459085380205472405817249096825967100862338821860540089559666591591633978062901630950760309669596468724397529796976200432308225245545087926759403632307740802428120845724267005655873931133655636448792348824064995147709394484257233076385151713114316648097316520604741214319138345435587748104435656280689172547410038057913008288001325379650821297626564275705176927931845083701129170629529734602610813288380715206737584842217975145484834351509628685094218197337754547023678864382517856272629460879290489916576607363085431066840884206841137367533269087996435554096487950724466123125022273106681048293708230197642541626622910388689636336101750672718031916739206785791859485900500905866406060675420947492065177378437275602695800926793257573156319117883343899539230957132826359299307252801618761288779638272577080043541201017905978587774056810346816055092737707951845560462964785901268187299331789572591921491118030478959560121606578285598731436003238253006166530663308095554485164919202432482796670468771560567378660255719172681434072514676925640894307871227839175841541986758526689087521315985258640746146155607855352762250142176384826702814864320522624237177946412340135329832432577206666028117800324069000024254119339504358715747853834598405801664954086036712474474725927891045058267153988760800889321789389824859275588137101734198446391174095368335035376831103136119435090148584801905950346347449414881599181567287889738300346843179535590305593545472985276988163903687465887681408686512925209958191684556564404901660200911335383838084304994315659227560575082205871870542973499243067459962688744847976788708510214439879427723086702856531163423184559424541571551853017590185407130993617312624493243199001501409654445406402556827376791607590365069308775845226224012996651367506367707670541809838124053074068620748246558926142028184854968905846096233677581164456755163199226799788236666336312663506367563238228293057303309062289014583143975661711135572529269624164593922473437553357035377172925450455992362283571577945362735050328557164289048707988020353300096289853055408020647357350393143429297287707734312497341764771987183571647424090414119994887623076195033088245019199613539404303325443701080271412919391875338780454862159182423591719611659640104499131653634770105645010190687737860513303333632402607580027508519864329538037667133637901597595757839024589080223520421614920526351656106661177349772815450018462026933287047810738265866560306343363337288461165862246946804210849633643008017624830744375284084963185357156404214141007677881341728260174776503968806440297422451918622625552975511762756340718640477838653660123496387041053389901124191378354874533573488993598040041903777028864895876840883014690425765771073432351980063820433292024766306645816557826620181915534864949005260183708182388769802696779302018929357940041559234874069244266675579175143946247407912847275235262305048654386515333178092913131718032805331625331100515293073325661141543857805785125186953463455972609611521795701039904381033083217086415966344707712903298690919106761881642551909105256544946757787771471077497554311233042535024484301244299795707720216367763719845503434443386561589865623488451918241700843806316097510066425186677484094013836218508064922047324976741897870518830940164341021608656121762749407281809745502480056999688256284968807087420293608049199811459693174313633682236724582683662816543254234257617459795163142590790566396795519952544807440623070321403321251116864879750630937763306790816532745177705123016097556696525004861290886696097296278089127298216750541812715841248527328854238451962508048001402196448636648764182539074932791451031982380673654473048430108548916705944632494031263747204485225543151088595153035664359452463931585345669286072004044583431353982450562660278788401362190244636807281845228934956023741082333110043538201254581182036756325530283342618778330379786027321127483042829848888849236911775807136241046323735477074666748490612347842208828310475065046296839785062644087082228253406429361055937891982411798405752258863093814895197893750411625886573595612980857322103527553519179625849637140100269833531330199672771840665538054017149804025391476446597159027968416156578252016485232933407555928787506051785146496889991936893066397287976553846158392888021306197702307203529477223114419841587475586672621242173872670978762840075735028510349509727008121832033183431398463500546441069732289292612476951456721282187169518198797522769341468901969039975167412898212433691151869149898708506622629468715661654367482949666088904923686292621275785442515717978387136466932275842974161012852885791600129458785003732479912197763678481623674060014867067207889662945142227644976144042557412549889057377676623237855474961447029939545759600769097363499924889946503952703282291558371193326816549011734294715914887524900952667539628568660084337225082414092135150281148709644565009234247545097266566680540423645479717710850647763686620239637602737359076233288236186514612936530268242632870208022134486125074271501599415447900443823412793105263598515491650076112505465904772781474123720360132002924976577056687582195357154988169127657965754879421982574549653702155795881785815883314372279003859844172600589255732363986897052196817639410301273108066240693075965199021916731363810729345424249567216886903292339985340436749046598378569922457559042322085827234239081397353497035058052381478042175021175867426398294413710002313445163607016225807880797066123746158701322329336823770895461510885905151653659542038862827742983912676572387510573092736483852040961439235804502012264937405194416603293128457233544211316425249022500561134976410845246932138018484699907956556364430519949230508734512680287491797218450726986549823010795792414627074470461951953307414473335424887184342318132129382939457440122162901150145691697510341168960357033369099391858984969542994059588547253943093210988605627026285474279066548336152214512289474019466805042368447089740905258597414956664279750039748434815730743835808228398485149115052593768276389546983144645329787228813765670188620393199906655232646762911946256871203347123671050936008010999183248432171715347335108346868013614212377778345238137248043949526380570623616956129091326958523646952126977020138864515469939822188991415353585247817280158722591927675750618046973644174073269850752143870689781954781850091823104234839142927567035340227207256611802611166210037755131708287525674750071666495718668732017761508272677062160278724754381991309881231463239887221105999540503625987228915096756949632103887720947496360535685653292719259642539410308304277012597682667503657672745031127296071495762679092997642273193416046943412726988648009787981905642748744962627461799294624121831592550076701139932170195791389565796256911642817815459737490538646301136172955852793842692509913993388433311485148331744054633126175893389121368629345659504054501147121537935495804201400446375703885000788124826517496545540492314328561926267262580548406835218268044573392708172425411974474234868003187528045289582855980817637678144981891261417385168693618327447592369154491078848220634582245364625356518595436886169010596730415577173897783894992974890815917426470770019249980537105245428595843585962536370016408623345518048511749891682160678675440921869179249323911581393146438073483288676340458843063924700877118287774980822055744051624094034753300478709478632067795499647782770727890665304818744591555881959398930302693394058725195765607802635569954089616057273707616361335559780598677112569811912123728086168087246499116795092438285626376571887572553829429966392314858230316056880822683583091354062350335456995547450977166340425552402253001790013376568824922098849761160868937553673590218410304492730178129017720740881933247196153994985516636547363449263248249156332571540308658288178882524879603822028422963212068538864040889745848166224600654758757801547677315418404894704612237952689427118071173025730359643027407624513712723637634124631477230730523585295373717205855495965074303606214803782204490888987623927097890204820596162212611298576219557569114934114547289231500617124187994072112242906290481599879337943821277899951915416414631703950391408104999064497329306211295765070219538089370955358223879369122540800980093610550435571832150742202206380573078757410573034933972250480735601608122689728585884011544541801944600051173107338470301412228302348631989013666668824415020223791696782646135373902706659774580113533127557378771218267328498259199230388809487736874917879124720406894156603038627854707119963727223807297860645627612357664003385935697065845625762963552391186841899873295402570606057517058097634980279385940034518833227256299408079652696137901996616399895099459174013441942459070092262267132106958623138966489938821271579234744506982793095424175445839378675005156865785428179574332676505041248031069925680052832079504780223184813248253708822097396683184706881223057076934603210876080951022540923526093649435194536616988570053849776507078547459215461795640292083855490822896231460829802306115156182564119776632862242452615006307776742881009716645979862230011031308249691882263252265893666607394698009219683441769902304577621341171975842519988663016937500426180641941015096877627148702457451626585026214175543951269391455723181094749854947656522021011768958241016761056008876161654345926828689249418319115386662634521689784991079032061457806052847529513803518376449260484779120014915245285179698553482946639888801165004569022910626337031722460651366516949631314399599895138892728934721952154785425400545183748300330531882807537231859867691969984974432235123819395699809739271698137820835607751388825302361794979601202728122222868123968554483739080305387748455124695919263143285114488698057062057002093865416434765792987505030386759870727622559269994238440108043691931115385309780953360772825308054552871640416383385085200365403239713285669779727726742072000295645360676557664772300227387701061286412495710927421345297405093594603966652429414023008901226876287196449361714761938979400046438119286108393582152522776895511553640250487921759038268854099669905295895077814381267919336788406593254893584157357734260785737956936893888066342076231825264897265951430384516313551525907044263618120108358203094402332250795469210217315071655188988984388748694602423191026587036709843552063137460085281917628955009477298783789395581794599056441138518809137024415075395009061179547402474881369947862101219282756147953802538985348702805963762611271447614753432595661047504470232397667574718128041491700361338278461325740883778109840194272772351941341118382998761288121932243259140987908033716199483151722318307205115721315163022531790124653338661441715216583761977974223023635682065879444365414840520550291258077008883134467173764921439126584585526993906145117088692730313521312689573013800171217648296294471387971746584136922305636625921070441449668782118221285849859207921470689371756088743012608639054068380582585679591682538822334479765041014964871617584378961660264936973540751723578868033927012666384053018512391389659469823072592530910129472940442365318025363132193890898649980161329385504833679042446811375482480535173361845000996300734967637846926538137430562938067659991993959472015996069687837536319345597560447125409813503230438924294639260895142844832983575609703065324041030863564574216245753653083678305275080471057319270503794683702233805141330280370226906934728949030546863841076034907046402269170602384266019529289357703887623392814355492118081636874707526349879904137781334365549994808672216241639522080529806558439325125748354745950016393587443255726834775458243324162625407039898029834998572000830175142876442535081505405134242237301678808143023052591010998944391507813838388049103350228941433723079499041514023762868987987129728899096063964760074144731320053798176732475809432398632346841928874819800551553098214372034649345007188402716068843261558845840130478832715161836745154884307337322384600074221968306956090837108006691935191563189722898034675097377751004228982867152843699266533760147923165695860211509944383107639009853971037053432721783984408730605531378356322382134283229041387088747790932928903524453308715421438099510158621591325554508456770758832115930106068810984265347100316524968071226908622716415348379909584856063904108769769003680585634069155952579337820532543039636733162820235826893982383187839621636692379498545515523461091835761015756753417867520932037236888324902159044429076913925096704439098352763485135425481113251596893199189324895371547064541571662878838055017027222282143917519769046189827866439740920995417291765678311100411312874737230899588543105387672429936379704270223942772620663905012147573040532572988654862783812934891035543831725496581126407175315067626913196298638055586894422267738642729774450722892561147929204926192539143647682207250716631113728109047957195454574890670849545151434424461457950946095874372530044465360697761771900910914092992276615924627537791760529333591638731163238478860975739196236993675079051179019274531212358892461607745812761811003836142374154211905038837919797824197456063811854897508329393459063350626046672819452876945094897037422300799259404470105420436447782273077385568752373668165321660668716572284645578581317671543412201597314690205177800399515504309717987593334391359759510172144504915332153297130969513872816644351513613877495105569079976993961751956985542734027472637221876803227924280391383281243283898758239623151683154140243644191878130115531101382500515079320098436037731263641927332376031461964205042675951426669609555639536325550686754248948996831319255471377519352333707101154338739255388461736228208841186879136308003205710224523154571479291343982745388223698150436199392803506315057905717420348835494798240144907766963791252992045752474575216546107340670955367739697831923166362059295737866362143617431403402297534031951397031477420933821920298069082771065251417544786777685175913826665346310510633046167445956112186018547342175094340566756627945782033210560410470933441751747253583092470551809597735407874341628214385453338038714008397916008953435417153523493285479651152832591898836410199837057179496219640555808530011277071840625669613878717643959636038433049410164913845082427923187467948734312236905897558729234424535335219762772478971050131634967094232257281063132668729355844411436650350398485160902160734797114108371960714763822240537750119493885590989863326874404366974644293625204857072978397445911053852213676480921323306950510191054052179230736547047348235276927063248379751490415746648527414947954804961103841499033640066163032655751550340204458672383335487100149116131481344382992142203263293034160894025425697680756978905186506603806913107570377684917253116566710235512222817956047608591608725700543998699989586959578070329907736292086456359080354878609420332626522539495900908475840951878191700386918468676165595252529514575773619086928398406166636132569871969434107526422205745323352609404136103518417535398322338739366254650083781110787126634595960916634041459553096784249344405009197056376416089825990912675667731652879893325306632556642302065582612493537607139894890945625894162324797028844650139603360823943656694736384311198067172774838940305163552800585133742384374743968703196801397189218121269972844832159356969135205158688820692039328474613386672996603394719067593922651020959124895867584203651453494160602044641296509121795069416099040249655245074017843762952679751978122152678035140402061328555422054638765072565462358261028626422270244382215436287868743423755164112775089014399790811271894634558324803557213535347453656523358512734064074771087029955670711506498858627846984074091599855653100597252740762563928549019138270202820610864232308172557208556538665339405010843931985540889981219960199856178921515334851709323639952703507876945957313441422003912599788259856662257156413067217417065865458660241717890472557623658603378656998605114695459099163546171142873583721446471216999700276745170396835334121455393203903437004702065063738834216458020130414004863947350380418557924439965269614395166778300202360186751782658626410845493925538098192947215635092121261664155234479393827015746986706970647121143169493454872700541375828670172508300399243445528860904833680625308813778197122788540790426819024742861724278156665799786144450676774538994850739772904059630719618337871475740830514562807316382829114134879711607279787927207514799072973301327041144616292262565402745045053053273612822109810671063732772131065335370202323372975596630736290214873047609589060494186719742008303758638993668215353079347328583410418627717789613418637071088006933754051422684734656626033339308699943689899278017736530389865531753114080072613178638175266204583746896590243963019950762251162916484690502847832185438002844528857507195339751501998996763298980582164622526115289596107018697770322725837629414079245519111824747424804251377794298086982904770948595621759169361755671043632576557860243380885676231340137213860694914351877184904186488558873610857996811467381882034402173157466315324851386229749429127852092681187458937592969498348705198082294512866944163527316422314423636931074023278395878892827612792688081800266382933018992855479840336575780029041992853068888570486536927935257192789328802783446274938144573864194407436685180432203655369428204088220277569473657048963533561058196583073125464870855401134046840982439974609771175077271604743593171063498277230757951747183309718780161658481074078735909609683769637668344457999840396545584010044384757732051024145523527311572611393922094011563311967543222666381790502679466771754669659359048606636220336654223359411532806737386146676302588980837547376185994351108151179412520662235373616190347543128181137661658003435857048175896253934136434581194698142229208705610246917877684173735681395344293256247372241343946951981512736636443415537970987328889473627319078310622678214484377081733018598099010761577482604947622057935121795874083293269474374858059618746837056630960782246772747586555886055001629773678082293100867020079599063170632492127561397725075248625857816578996981615029137927071837176198998781840698865365055802665722429164258424803948063301560056076354376611836067715720685785511330001640917444651953927614561471099917040914072745627512790635798331990789436229231529857675775696050661469543638222057967929494743246510872224161027171743723683767445647868668274993467158788980787062925856360641545625798424198521916363608147425066317878336585759332256093378048954052778922750017758944698667685862260098918516320194736546597065474644164539755333443451684735735398182075918205851208455836711084129563022671830605668977860156945377555824371213317649730044977168835347793041754267977187055325710087627069193712565978937752854718267040613097639209028745861066277324254398098664494104873787491599828547643024514753765125725673249527763269255818113889239357067280102288530304119168187503396449368066048246163053671883002225802872270145897531207353219730628621978413654622514926319706805877999760936661455206733623938360337789408551544782399081727515385345033753989030279770919763049310229890585524575672740852857517026523129143247217516912507242158964321787014936496105013938673231359505511797552770164232325719042933173907164812981600080121715225225169543956257598075931481282713224351188575195342180987240106304553391814351610501794133465934958160368998612104719842718847797453301050562579495391397472603571691016985875464644912819005109954159033228166164855453756486685665478512904075669950509898843184615153045710927951534407910761879990110509339064108039361864245674555004441783314418248290943798874646145218840968777055651935205262807981673430130535098462343930523096956293830047772581472386975974158265139666332798234388082927202019011271325635668210959814310390408304608425576764200225257425285615106303353175262089342881007757457282402271070542412287747797921435037723022369345272101360106144698347423025161850405816810555982014088833617616170626923196963668009902128893416449148155690620889955619633354371538456591790181740065940251276660427369099750629472475656234345375222381560612961446594570992099520184473050806930929643422704084465844051326765505444706434424662058833203258578150101026033911586291032102458185736149492792786421825036948145522400935840486782623614846922740978572619360671148886355171163141554057808162540701303105153946102619765199522860560739951989104830346493089773513742308732129567716275421865944781213144324757529492140457378019687734304695630913934174914256568980517478354082146220662543866722857734190779618363843969909880329808879243861153225885512635693176966259481566411230884148218181349780594477295317682597808423890979129249691335231038244337393728688470143930807683047977229236504005780081316212886732435040675649354509872149446880846116980480763709520780314016417804349401679682753869179758786778933875898933531244902886993467505113750693950860592692179275611151469561075434062803443493031020848599176824010202896685074746604777979938224447002759214659759284820370022352009205158927877886911937352231794808779229309210616942180250466010491103548446953140570719360310258733072383706475831998368604330127621771911807636450204938899849994913781004969744114794924136017798648514056204476524042850882647132153415225368256515680318877540906579886722318507552956040337279846156372081329257664858290986361454852089159837639873774168843824823397930414319199841272499140631902660807015428333841827696859416265577974620751267755799254559597672551577217692399377001943474805800797259202007659389247887154912933106105425991120537228100004964918606490001537252176687446231799452563640110930041344949749968064653464106587538870839940260614078182930427047089477469994004877124887441063092741660737937549561954942198848057987206286396003827452696086022529922233651419759854510775220202567789058927685826729976697016408435069920300582729575783707109265628699497060057515634437583112507600160943183634001927059738517330243056527629136372690649558680918198119860995945619826404726244221981962540438048949185555096398755071489084915394718523190387628516252687409366590784554130591679765346966048307351496127038275065065488835136145523992434548343346379888838631422170450048712863383493760738456868611672612925251493296019836354446985036158746038884974977826449015506408798554325522808545613455433370015834792582791646206180019824161658846001468023836975816966078149413077508058585938870488352177960543912286204606916253748563633474349372930447206171730160258051824321032306676881264510650395406391785956090243961554950725438326164866047180748462721626032411803276820856034399847016683852929513121673489858378649766622753468153942761717130349980688605018120727666363779646530430260458076532117563794200263516734816626075914608480621346917289146231068104454563754573483463923766683521649290474668260661888119148275881123358262347974088177536446262560420284323503355937210373329667889184879117799386437751987591942076821206281753369159919347953974566099038461682689902346230295151515843644933689759384352196060197003885601025348678882487679640408243380782661307555817198715204136782577020644366172338115812734180841102315180708893590399600346510035458789980154476090386155050408730173560839429125072144993577500556662260272356322097198232992135001817036468916379748968577453117782642339531605974868366235725318719053634316996841861346175461017504124333693268866836865682091255974459369071373206860406635891950832015361835178132366467299936326086329442763121909397278948862117973224122619781525054052853457930116354894562456539861020118949775287671018329139445597630767212603248513864033875212845472467449782070535170719012287017275994864487706388933379777572568255319123217599876987014060218773763575675096888982404385344316677435936001555237215962522531553572932585233646662362308233880937641330391627096050348347499063178875543183698567424726305259444636465136731821283119220416649300198651744366744707405731125418300463876396052256123464242753201098602751713406469032052261288233350512153313459946611582125029114188781241548747837404390605405080303253772772290245954140774139953522284982655007873369609844244948554946769617622206948787822386088065810633690065432056091710366049063914812873482425001228741145334028613768479902561844549409319791598473817507143452513400058975999125596523689734853350868051598067414347631668275831904042830706314835186603055670547824265914010557255026092174116057152612957776066460195673966809890325527894004942139511713262260680483257741333358467097542194050730455104002238211896607492771425296775827514471623245769395301205481520412321533995153743911258529159113302796026074157040861936442695897299396173263718093429246575280088781794301944130170020844589875194889956386351191531627105589021689859254140323087664220052471039363938769021050427136343307418210956151312464132289191266614664582092560641249702690304521132436075507520821621100054769448527975261971456719210045050698671768636537941472720727576118846860854323195322026711645875984427843500118856498058547744475794758671861308437383495774306705215154827919473385828485162748242969807051068218982681678259191122116533572264528825020790341516906435926726199796331101079077721036510246129715465709773414676514794503565331226835919359639962274370817283787969215993709773446272900916819778803293973518868399350283751407643142079739764273591832615981306185978998903157194376935646488317089605833416044470357679691491490223124768198988188996120119513047750598713022809523689602984991547937656670843015889319285245461621468491081114719962190769605163164273639742627713042691922793807223228751737954021503411655898767535785625086654615947388974542083390758958822259934134104992205631468604929591449111920329707527707674617260637072204470144317633959617827131254519919211901763176007650605565672352772318170562255726748315595499878341847719750709331391308574842119271432175037648786883267929832209682436856391275390088716320169927596257296106585252361041092467362557243257910598083041265265409361034604488530798318313531969935524790306383283643243185972142862485835447614416136330810667421833248151256722047242652049067063698130482925408919147801442029924856745373078687814253326915889162340769327630417902848397698439458927804198620698095857492169067571441321791855955905271918271389301440089770484209159156441587859946917197852006857958046456455653246628528697206511888240669509580435777899682474808500111257677698469182536539929225790958174489547112848199138258662049071686501540357747512761762888171734323951542665598648864154410667647192493346814241156005679728628186084790492168419169643419234192078964465731484808339795294494131175051866655383423878981734395936562464593359294230073115944273718522162890583672476734727054838449212115054614230938757863867556844762491671688664451402103145517605851319276309990107361485625145530664491119379260706791361051078470597086704529751572949592311374288353180375841621049584451778842956581997413725724088579403235670664249270509382779985912000552744684422149459689819311811088595432318070981546384509782532221847666906055442893848547817432345580362385187017251186209560742552319327533662210547610338197126902539789248078332237018447408316485287623260701883961937605645181746468738851051043544748315127934004076941256866276552623103327322310983776856161766932669332238606940147501595547963067460968779322039902729064517542515847161261044526414036996283008652578797871164004508063593862273638354496727397311128450091362992209525916097339686220430799757455015077235772512180283069177938326603844823454992349545106624947762758315099215809434641566164395388268904923871789585198349590159631637877949870944679927146871605848362006841287493019220305721259679665274505751379483150838939599872060398971928937150597922633751481420183357917037913806375235166342146596566143469070021037899191482859446168457129075566269082165697281719651756374390204618364074822962580243755214956339511041601205284873121515299030413658122650355985374859353474984430184266269186774684409247922455042597291847548051403009228325556538698780392984871739860635318755248850941419235382508931689479134080455892943036175829800428107827556268955816037149979162696276716991351923140037941802256736738912488242919835228725025759404437422547642390699974966930073257509734853865142458440001189426689515364442503103651772056434643741935775428001178552227624165330775944729214047286417418286799201814131880667339618232447858580798960331679176200942293712338696598038138850267274827907852818982087626581243748561726494520565681204891408656939406003587341839847353769647411292777142321949300346356577789981652714300003486519653324895243971516204526154506291195294248627258166277297691746644403462988263067645676418596260233793663559992226113017373140726358800723125186892225022444373308876321767732523974342330765552490206314076003374669301882703187180365629066769287522468283990511714506497279865032798789369304044116476019448298260548902231269855247279552726683970643903357644447296871661074977440688456618479480743103748119814478480608379519583287519044249184558938869241002061938238484618692663790460899725349366425919019368617575434910976907448256191165669645891448765698664380128483444226645724358174936250026380173704155762224232612353961356605630973651166361358842670894505451297173652594514462252951938533979179306815919373179990050199078103474676119776206283295779981564974090754882744469039542691285871089167628379405265480879134652987269665640820421796896728769424843090454625454543039029523532906852377589063467734526012304788344245612015933798389692292643694696545026369741817181493488208849382064419082240702659761673850256104279142276093406673917061863276804899455012077093242728417106506122600962038889183691143601431824359122600446550333938234164236689824639140842189144549642367175185091598529819520270223929514849457548448441765096863801821393710521855185911508834098626306621577335528103387087313279894656201836249251445278974101149996079425850750555376526890264629633147458905743295732929461650251895759533414737521167654571218700882812332744950614598984593640226080167255993756032959194902685399385305733158245821501975134901795123399597446016147687598816398614149563059027677658687495128030653773839477561532778553132976625076075386844885924402109064710014406794929799478522809765689740112540894417297053978637987237080788361068980684617894849313730171527391009057310647384017316683825841791373617334654178322697117885187405373809989464709108657635332697035434231631638025698056188134187275220050991451332515620335673632044416934349089969087571170858401036343674215908327863779698454508757703878662064056190473257287542317645660849085881685111657183214263022940831741123603940623901005360655822760536844474098655949796991511455088321794138032203604727288759237076891871236802937741787938736074292341988468327032072480635245384800968648319859621876640433245542523507187560184839648507630005145392645084723239313504929545817550485234597578363228625111514222370911890470871125189532809533195487854131356189834229751221338824116957228779361428045446465076094631154423220051300721386636979212426008589878511525524222824547579699146604063768184372878546295743896455788661631627380268600947555228967876281619874505109028874780202959439062661475981850147729322790487611834415418005080932097968355104761551279761562249240783272434975276734692713429582966949196385978945553126607112550962482815033724475363788114338945124022044938153524260134284461153842669200598295021890926723505009107985187621247633132740719482847953739994479326495185262573302902959961317494249137459493655538365371580181201630516350456922625421255899788337187365869964406864238756724198527706331647996872204688649927828656239006902367037926276340632505587414052363489382342549010539005099723714704100076955368307773289090957050984537270501756836569552274459611132279316326331910633983454565200631312577266835510280289218116294825370347179189614395508530189659952453163465498398788837838012681673411237585531316729250914726997933363452821555830448735450330256008657147739088363142919626524398892304106214418421405912127978436252375328862868979697210776403172454330510102923290365821803898814861888287802619277978231238770408228467880094881512503373013858194468064101474201928258139496028152799497792841997188451462566134273969999971404956366343912655084095415530334932681765003448223773561296033289148750122145435778706853485481262347381486982086640595320363994634629099586780183849071012524516545893017133795328438738265641487869987252558872339656514963584433843155288852112310687626445286965877530063200215445180364893597449512460596365783887626911567872834378080691233972906000158240575839115160155735543289325552644834063175247709960863808021496219144508070226113088009244839081499500423095177182511978579749859904679169365870612095872555589219607193861328446565239214155146146134282447698180524567873120114503749110877112856751893032822754070661209588343920087468343963585326462454263581049870404615397378816073814358008662347327671522348357634392915152996731354993963408826015101163942885145903842607335142456623233137476052589468618844609481047603125133569442312351183330875942094483364342302313510544712160862242709130839774759618335931648094361233741878015282712412542013373793015732168475465979761162398949039412114644653503749295362785662023605660770227266152507473695222877695326047150217414329416459254793917942090420393688687797762717332307957015143897984278559313686079570708180748794957116123727442518568274243705630691735321734210976148676466795460221131483574883428486843881887295918430915562196414667594798113029899939140257025203375798946010254335664881487379682867706090656182712081872091539203311874248095440092320870246228861425738385192589555492698487544759295013163339052569780016535860139419623821196654745448778753017306829367181839564247850102588664818372814753283779095708494318005346460708826986933412432647548308069402534133337859608393287868016245808964565928015638998856590814195745046177421064264197052906820078028460530255309648454750531018396512675187153920202348655162223564778742052712671982732356847999042626239416225036227597152279978992317352255905224137062218302856591495498763561197722638760434807526974416876739925793723902122964765387421408545033495449981617500328662596496309709921940924201988792657436737646495720646722974761005855365630809116031141258919553454961589642565353090205788433592282397773234716510147028243848980062885695275852301130624125533677639042653536831742142928503432915883969661297620710436181834970422560149337778142852536001645047515245728305719732434015477602507691902648987345478748565996557893395906943607238446378067669666699729858390788782375975128856846829846281109168714336645030228323039765143626211424133651104145944711836492922508894644169291549825209115364032180627959008134266194594999777867405729611539561653970602327628090685990263162500745318361859594344511090208372380938090858780758989231339560486626543089847784130702305536517291562832997928348048681836380772133905474223529860777433469876665789676160714697277942137214603083870314758159349444544717053113790224221783949983052456442201547773178102658242536451065530571297258872381004582777927859670204902811636997530837469495602675659727687538862643397687728383582926446585931060660710168435156730686969299554261522176793885490659972077242948710928817859432921163263987329831238129399354498983876438620836477264936075975243334938901105435123097243508113774358062580767556989872560023469727868872518961839215308612383959773664148084768597231370878727493945516192349845642954069046375771586837953148914172530436070840717533895185667390770811456069982274693235955000535500327902403823449146863187402564701341287329066057707844727471902463902884514680876214145296481446030621592655871105485049799483323913599062516835142923973103775572836182596885755542937469189031215807639850708746376807468572256072536944936642569940764629014618950106193052118394388539872874325469109701538482118678415286896550335474863038424154779335103434702325212919994091240469270649361387021746838214699505419974732734551692061465558511560211698895571525133441472896763502163961120192648142026624604827501987865373188842197244583598192630222414803490367686923577232413119286298615706029392485449318448880872763043551163593690867817055877481421380907676376018984403991411042680600563760374889097897639369149814374313697817130856522042785783907570254965713148997976339323245699873660004162257512151231663562569613804679393168765485612775592681473890610771072596157970910711401279963714742046761545944117047588302884844286813240398440877558352630150381207725270489255701407963292306486567968793439144036068059107509178916027233635457516460211214003806239468281503333255433247541048779445441570738379727471566213095022698110606545495030695778699525039801976336636306380880699309297110055778042336281688493787317224172975858137115792718593725928005196113326140597635360374265927103980806596832101677360505450023216674448191979826358960853865976083478680123774701921378316604451244991605859815126462402588463109675708378702334087191501413306119033901736879366440427429115151899953104527288940933211593380825533579730723571701029978594858008672220244830828469325666169708142543853220267798347610531382720592492320275238684222889638635684883116385724665117069192224147224268232283368612071294485248444589905937510000526012246044822968779914953404127716903568918801428567024699847121585697383749337117476599074559439932981307960172893877989131328205735799259143820267783363917672405887222582548144378967567931188629017746676423215543422245282396105890075010838531347233192174128342863036662882311883833165403624084863887488239403878996466730823366523854516048410290469038181346388526194884086639797508046844704969326291487689626731845163094098325921707224421146155992616343546454069128644188775984107975897684745757615423118617783424771053585004093305949062741275075844672729836639884095105666182331917198971345638022180089663152017810275055763912893201732768065744131112101254015357061171226822913690101112196687350903849418076043892734933871487051532233803714670745373993756146760663095157150871968086213650371026827824457963577570440434997887683458263779014715704769968557767852423545266666337668300508247729622936515130505628406636130827545779064094444722615263209226384798719317779842183578029660325595410173461208953969438247467618373584708575150516316806880209537739728549226777656090078936702541115242028552323185815822138291129057744215853233670411185796524619329763761018943893408017680618595623150601505916501547365044466464414298099406001609438277160255640950927817889577979248274940622233027097556610916795946615225095390234543911404444570582975132758803017464825456416740442335861675647456119723966767171150862129603243681661808645254376845530280606913002510578273644940686372787881271395853816916651927926157889532126138195715053639113529402451824704740703046204201749284050158798476021907007583573146921797536914972173663701426560509438213409984752767118402028247288242802619524834518666636363772252305939613267588724477928128675942097464424002913876841655826948730613091402861919932725914945279096620148174927726481001189375713996981126049603290872793431220269235994174695292823145763934278632841616838639174535085957466282877331695861462875197815949418512742328472153599928120788326256556219562082967982226328518333938767629358763611103779506682180901810947286710698182027497988607707132381763413202841293867394041701313231362185666935974946899230761473289388861797635872873573950046147470572530187324811921619774826527721596299380265001735712646715522867436408762550338002704478336040239943324548327170570722868100268354631801919796359628385727028026533021912634565497919724791297702351902913125414883742416564762227686438885927544853857762301359298175009349516694138700164772948303980351855673663866180285147669957513647914383003946322740832313040716183542791009267277003256978489467067710613071722941170555731979621291018430140598372093080491684443676347546656981134283666901476125947831105791278640861234567077501590287208220003589481143720365195261376581338662968191259625810693514115123469652718649830180268134419851688165210593389208372436354137777024773318251173251331405799548824500855177840676656337931281029081662667779383125021200815290012985898462151436876005319819256019448401008042014809421540539399872524693661981760841575757921514062000481004258687955016250325680252733467393901188899132213826955797763328524848477340932411663898452605576294785883002255871564765094046861053977637047062772626019103406960487773554884589782549353773339250160863167363405985730945198566234086024122870406258260869431759955394740923835367721448101378893352677225675178920992290288595359303076960217003460383489613836103275048881724886778571866572137513351378711543957897628314828825949160638035169004138003752158228469246069412819169158383687859023677121212071643258959205999998379712300556277194389765083308232354822743891407707621527096337922144539045293285262356044268966371058624766373177161638300638638290981537485775266055597487937386730534135165806108369086781926194345921030424982168574404896704067058338771101140456789655477564996159189619590141979968402304185135789630179540569059713846310840045822179787819604845349952547481495300335788593289840758181152244819308999963109247770455586911576753347666931645020214605843091524271399242743430313706764702174486927562855411519949707305697913141361361838223256630962233935883977564732521643405070772324585207389659239924736326836528018285379010284800863297238622299676430068851877591548972576328126317657426183117217924804253595947198538035681666105781368943600460085754846791713119576392962843539340607213884565646264822784534960505055656081628180133950782461967154338895034827751544319856800694823408010566323052875151374301913604433178688494456060906857260232165101676071821264599129032983463139019636807149664846170286950887724525234684299025513786385135217112185172196522306090397881322963297483817780880083158261930454537304594182662522435263020749612267586242198818316687093815245469648507165107300157195787680789077725686066204836100308145035453856884315494554954810538629611146460586199758062022283634424301154736937601989230466319705519107294637081809673884880654165082902465024384347134007297238749078809771962128658355104629195565318899022989325481200273774894610804009779210333965635673607831389083592691135845746115936584947277470481402150180098752350280390583965100430964799290410188340695040399402760889836004147525394476535026942448067887644983281664386809530340286399343651195578813388095568333974178951570009923891671550999105121974603741179861065764637718470168837615722134323578239754584290288853624955112164240695335184359341304574139805021770093586275083687611651609018663705954977451335752306572090919597904068109169218138580815810433102741708636690891702417491138343358321686431440257155066669986472810888032367562411501687225178292313951883047399725185227521029392618248170914714633054261620730958389292843199308917510574140936353082117500885133585602366411458855864615542709867314024052909478499750618136351920541530819421171243663207372573465168904981289381504268023939158020246092422789457858835363825409618370156412304951134640507613517422041860737246853337723553072748454565568412493461127430380304163255297491957191921442605601837712052242182806734971984104599264512681814300036073303488686073537134822091791924660241853305690981339409464348478813177856343032221655369148523999823794528043708645912595593755956025996072152674093466611401730455093001614274924519516861936693310737511161752282571239484478025253011015042217771010491991084249608743167300343467452490614130744235392187106168818524945052204526107008411694865865631289127472789453529449959998648635279490067923544751906126283542298889641292605520759225263853074430761120038111155956227065141737577246883142115199448922232168458436138653487457064497666507910551893843534147831109294698708929955890691705705785297702868929581297827960908603361683767511360874834447668004071602153588627402443152715725715251674035285962410923131687393640135102721405061860229707880319919639277400834197179769731914570541893610499580475641277555461963509547675623462365601926700195833623664110209421598418358709327419070034656349951316158494857261516781154108656565115840076158596198170160815197693820463828893613670177479284706469922671297158925599162348962665026311209517208980853939371009470717445786639603526586169709186335038657017528721740018135087847108235716772575542878280331292780482975343009409959088008930736706703740085040505771226231482463256876273577047651119579156180950171425012750797914870241531425156052260015495934281010254947998868074111258776207931558193594410763178296710539842491559654364496496045688147916636521473368574940230880018607089542852023759559557617329798983042565695031297770242839523067939857118945003782609301446328477283876368075921375541551735539188395046097074681860325711499650814349550423828020298678226931329383224891093439997952537065293740281717637140953363565664329131475248135538829001809977678453618267299063903973343335190490940586250649786943325855752476715417825011177805141142281196645546719503696146416489784343370561144941561851410782036936793624682386229200818456860768758747514741424532005160488205672681751428568003503632589375190696260305771237858980429750994646791449364673683714780256434811653901879377130064583513768217803337001566563147036661205575844778522261618108367932871031622828526934584002889710086343659540626109968957701790078281243324034877024464244350321319227285716290442657640949412167035821488884919394374725326654126412345272035616793940591707045978622073341022368701264167582055285254245668829391552512065516794028937289516501334964454056760064436123899490680937076404186481036419374780841204987590777293591174161473496930037232510351834831517646383092922841761006076690097034622175189895104050800506442765681014697594876337658317154712411955841758340152858675687783503836247734983600759756080413978339097463053089786671516287327718750950783752857846327511297231125210103414672142475325302175792229472311441257158618601595664054977740409627284315327427533927768616103967724600375777959880410138915257262525081727239932119030319414065912246381575671673828452793246047263603617158702451986259616079299244044262868353832922489716318323839614670008324387389070790336525090546842883180382447352192022278161539290366211410401622343573033971809791494336753226353920452322678666818899791439753920046065987019386327152848519747810180155495451442140055132941021834446867481978232773145188098724121726560547284997670557761235936521722489414731838112379972381043439899905091865583804257378157120900448619638536114790625560647676221029424029757238217855331688359232545466340162905865901840470384846265407236903276814015619226090393248893418274601549458213518933305126980864914243394419946395343539653360345993358955884221207115081111152227704620763132592491321109751834104286704210953106622760499350370535786094951113947139690261638417841659409784921388611296391689363362780145003042602419526483988901850868400353722858711031578383470464005947120323260608929926009958592869445982019574521710805990547812622938890558562602118820536230085453558367109856503543842825598598227324725439338684747296982052541672247613912485024584380913777661875014798622443665378804614177907063018834143487657179929460149315455671155260479636440840377477807025922560473216045881264091239088476361604481758794623355200426562362900496337796941024524015459874498477770522317107568375487254516554723635866557949743414451186581904109273637493773328309331575270181525241481942146994403138461479789136342106836477066946258893709817881834605034770289783560194630621079739086995625169363496250483493632870782012022210397987891373244265460149098506444886944182219660525385349496400239366600717493329733163615027578228587934859226993497642030765351171605480504005663068260276799318155889242464399156117613032551186518857379149878006819758213757612520728766516649439262501913307126783970135162893350589936809561816449583054923632354130691768703061167961920303731759185309474254727052343936992467355908371464376097052539336730558099222613401335013869138057087424864044684685495187953990103658103459973315450688848135343063843646640712772345824604911634665077014070182376139692690974267456239366351051877864523972281893710102149287265222392724926407290287816050551653078288889303674926139984532803495138846302159992008694803606397069047899449439457470062969529244715652955707258250423323833387104809542560007742184510764127249152588318615893435420181406635264378209493643611264711479455545731108338079349780455070473341820163567909462772927502979168667707801533756836159834190977435627138655177944752754532652340414502629745764017629706021306393986798220901058515105886397827307964168692812335520232218087523373627764992092222263591010888013180047759749613269598297378899327290394989145643792150383158080249591798300762618583328007688985837018431271905859342617043913278912426758634042617113466568030095102317507069937742034730215065250434632468886849524383663589822997398195157484010042036506898824461906395286026647186114568886018461830578339274431218306569234999333783456575555379898001948102314341834644468330624087465066602010774298944307167354475904954936748172887226818616016109869687980976367732108230039609975228438029751933707444896550907596388658916053972598629955447719884437912766792949274842141612042194563362435750404749947036450803777979003943045364612106617594063233436459978090578491102764025795175641338216412240814205094037655901404624779815890460602403336578796611641413574922439706677251959920770381495621277408369823476244289260914177374133322768342379450210726018776772663137325047556532021650509744383533225616101951890006102785889626243050398598313644547343825086485192529315117966467296053932170196619308700814947457674416516370528796947982690988575192913701306202500933116211173126337162066091444553480754125178752028492974340257815816336230206962134214730521172285424498350646400008152128351387676908018103910588179860623741037746977594226345942305649317247240940243127774977261720504098130160225148700253788598591538403616427632005076204232817596712850377567047336452386488625570178853920902247357965835260978042761193578458086408849873755284303920571274365623938943214055835092122913967859829930640331711871708922230588155782859556514694527322628485424348843537595839168181108375873693253587932236092394100337692275431677268211166613658367935611898100520580130541393506542120540797404373128129842153215177118769459947572659000009382687177918504592376275514495129839379120273513495845764885703780587512469588949258810787377120906007573353525275350588589809690161923873441900551149320879897443774486789802956848972512588617997191816572887163984406976029597004878044695602506489012974498388364223900058747430846144082808963234885782381075934878920863658209842332373477027331468526454125237223309137667831743042215315548340372516710855563707467878850777299612904326816685105003324669454625914042542539458925369808330825788799099303257278169331681767637354729810805556351163512590402285655509633122628808684194229719226091193182367360339191607353933509578573246530764987415646645488513603866152498478711178268968382840472408854446319598523262435764994251917698156606934386570116245977333068518562900238360517458949086740394759369950391448621097980404645933364559293134224531553690888094951465091301184840146687241594594295804521050628636264397539787381930947368572323414403836360007484562675732464023651751019554862569901174593623118378550016121371509646991258218513208497954080481261845419122356415462216699127565849203321045850146818357080025501221471561528140365691342171316639692899729020231334877206383067348894186982869518984457775023142630164986591947991830639859595635645998843886645664539424135003622196823431392517453377473682004481734145554619606555026953841890206685721509363131746648937914651709311655142329368819522805921938667273782836018170722350494742155545458219409964353927996574942990960184883270317213788010634171641318945651254847781807636121677654939807985585964291592667100034161259362521988376561339176189826925252046697412805745353494130835377427852638068748220173157599056084634219654296392354421658519505806787330009671544023653904717860544739473251784300077533895205553065265038311343543545536169197240530668459243391121053798770902840134994030230091058032463161223683073511573739717345520345369499672289373826100606852395353790301603010845127061998394553566179819887564955834945445987743522076634305649612571968734946477493179598038816385816776841861802241302302605538618037074109200464401189669084831951605196124853973198008008708787524428735570986785069833733564768469187625712860333220155312240638541521515033652025609569464125855113766663097903847379595348474256304861423354670391115339529373060143740219563667465769428782671305435761663941511278031058305632921699034129650980424883441293258846396604077398560102432203067268928470265328620495528726089040448500986244735198702184938219391878535906170259988281592285475845620317062403904092260021650818113054037888811028494443980454859465988515479426358836007039997037009464356271673627612409643566686476475142521736526470539687573467930226174245420049686242544605535087620694381310208026059778542535472903379443723536846781137525968916663931211967627533984633697207298959579477612075136314137282958253296505513962714441783588757310268263813219546630777639230731505036137859600586204762819560589602891535380731101847475069745500513900282924853162645896071252942650556465295516866164835617017706211963598501474969037281028009683798987010429600429438393399811872358036196790565384442870325718241205330724840723261570397847470309148940215102389018994178662457162964618054027827438361078975930384014313146511164794556704903784514437583288264583715440985924734059551341978558580681101097846350907786259911374714990174269299282907510018358685855208414531543717736338766528063583199142903324730563996556137955511672275600537768842234850462522114340319886692923745985748527121983592094396520363765170887179127887931831894291098967790281544371541966925184276910806415886107711818235903966627306600949613383337200307568930522694392332335162425470622647024485685070239017678576941222029076277213690308126938648456048050051522578675457852695942655149051974703211835062285289014894762542600695795871144899416602395695598913967067047016628102660953135197554401354087377007676292489225258594413399385084738842285668944411394384494781210744388568091623414215411554359956705835049989330539983031644031853262298016495708415170159271900878198941093985425890830989807102504377308157281475722292274361455506980513788277965035949123652235333798738177196984322331632142747988614135920332637509476514793146384209582397003710625678293384402399064162544560598337956907257829052767226795680447849114738407354427583883429417197107480092836130387536523910609648356588425714612449397017972499316913886458243998149741631721729057281848155760180327310296031266747958059437152107609781016927185555653631713037843690075868609363918361385255776912883467453614624478615302084979744168056819805438256039798959829997077810565904220261979359984657648638878488584889717089525260809686898691576127934857518706448395395012217254423159561171800631586246106234951091317185227878273734839823364644381424755334011491558105933830897833700612806168405196827686662832727039149199114427663678811900451057857720738156633964727828543565285478592023246111571266031969116922743369548177106058589573599710444357821232620430708321925209477716705594504450565544150848386459538791443967055851625487784578121183985349895356646829906676219313149907594842114088899158869699032034782104264334757601199038723226170491161002939442691983724087028453880162492569674795211057479209468202032565081334141074251140050550968792264621306645166128547466464407276270699349750017252251226837642504121685294600952682200647710568364218985912781976755220602103728661015527047071238396770994085641526913696322809062452752683312967461932904873771537765126811858939013490539012909969771148703403773758462293983339921575608867867243799641174670896289979832232215102868040186076258560859422150871506257131463595055368178162113505820164649021647275158222710990029221364552433323670674428805956604768112501530158168222499527327714583602146877278277004035697706684845840363201379457527171951879211621832004031361091739664264725611208468093626318259051286186535169083348565371834195955508692298771514873872987480896968342933543155018684699105043547616051413761036642877301882781017663063253892930432941953745124848189040315176532691020661834161443456463884921772684808643390529432793149056071506573777593378992385573182300102530292003220285215417957783581442772013094924406360319143891314308161032139276539029457068877325465772900961208441800199224387281988309037122051733018168833992976272102957151055726876454969395088126807777398688662321064491070029377168248629576173628751341034580987315038506048074014571982754690175297750482322684183851212099613361734637186431163425470703606509723933054837835696235769162986276300372454362092119872341996461989873519857608608676658255181074185351441358134235365916047374812494324925989256779603846166365835088075661358215418965157756467179395111074348666322058665294364537870752214370570440965525004134085460795586294053794876518567825078778337110546126505170701182983874671104819197499769603419130206014368538032772913156528096463713755440103271244256164448147325787764755871521911008156335394510168406513008549687855170338851321396185542598672936712219631375744972806236828244871404918818391415678151636783847706286562522363366671471288985929471113199798633547863995524472490019255343717704309968940364198370493247557873080902819753246968172469437551550609272809689711610437904542796992655020453870032446853343766517630176504004216343316491455656623282521648474383869895329926326940481145371846717423762215461778978535915658557814551017232641460935161574752512882847646345367695092397780593776769273687588087759478796370453510414438431022185157074298828732102277656918725337312615219688580137261773467141307235055497930532972729050522854888352128350775631761345083372748562661788885447796040796668610585157354284179615205272984118862936352832540196463881753767434397589187670380786829325070009289723866708921887825089571766925198504525008786565222248111902108281994291538805367215203540753433826934320600278033963114532864392032802096772232840244861429840200272350183082624809010691273400593330195644362116649395410948615118599319768605832769392113512589129411183138996675291636842912372674425419543683307233491671270482855771316360404560555855648064178929264190347088756096206309565954626540174836736958704556681416438468982285206347778729090483520359520489815028328466607670678284558043915083188885580253422139952647309866949218110778864365506733042747281475291818142863482725297915111198959718020823179919391934619856745929491184094074758608651142276325744197130024300829957181441502238554978124293416618496169621096133180769027372554664621186856180794184759013534429496999299522391491682506308577723607942219932164810182525030924705919012942106143745345753352738775552567096849368610641104144700440416386306259317278244989277510051219177363908711404946744818828885768926463849913129844191507226330668856619089890823448802858745060918935310085160539392235558337559187106738772471753185204165359814797510321715187965346269308971760754238601554713756446565292049195255830781284916774120409128801369679826695907553900311236242334617451909756478029272048332965484815838844843567045349600337849550120240061247187102509667791017121333116412779678109079408055345667393355668660038897805328055947580848322478571936651945004863146475964933101210682596209503886919212255109601314056810683163190641187674097410016399099962585193175086760197385215958215521096621000457359779446133829248595743032015217374103108756104315311944164087563333838927841455804215337551500705126544443002786314930121711474285892516987744216231289004599985690806285957048905088177686976808439504288806135890145239732547617619425126442282567792785649270738529915961571539245496185507342400206216637888386028237190784128544210450146450500273645148446719510611941805254795421649750201609194191626703349163418930753364088386291337689953475059220525955972285630929461618659143601963113290181535153655377341748075014139742372683160331940022002855884403046724937889799217940513769132368869187121648332499444946191994020464488637288784015845918532257663555220070909953182076790014344342469345322406310249275707555464521026320059266797838547997745369615221972022534711123959714286798792210509145832058560557110486528375942541229569226045973584868457118208062226624450914678335873094924269737913015909476157578023134507046712250168615443961956756570964033454684818974914705296477400058082892157105751368093645058103453931609398996737489786437856402693012684478592109375289069293167583225592034251706733133997876260622165544368132566232399068435592520625089804011927084321693909459227853170480241402929673318444716313061681393953494095276690536509633307727036680451292034601203663384889685277974203746440205359260822048086093698598459522885590277341464542283073400441457477271666966988184821482222863915622576623948872936891449378917669123665517342442239898122586646357474848356284917848619771131722113015830228970081694114738578701538955610474707004729536554866813466914334671183533691263558577474290948110637040569374365032142303922831983877915599635756587617143755410671147492910651369104668029803985994752137308744307056146978290816804239918117416473867301608080958626265967455529963349884768220654866722205540437985261966982249878516603471318167566275404107320964619692437423903030679286926252215451779779693039364181563376370266741379393552564727550879987964795858729686485997841621863285116165883196523476456005710543246293173707037616832614384268084644988053321178763571284962793416603574222788888641917977964093969553732526491666516686276172182500595043637220259700875930461892562280116532001392502565437259812948068174249210355443209394772538672221850405294069727148493156825454470008011493309741142518291433504177741344222295955840713979641475026863776989247585894407727182140257086441035613121030801164300894400332206825983757108727302676108075863493377281303241564659489852722531911034179846858307237174996721149276724600516004337448957541647569322822286315241782785286400209221707453548661813802610918338819817841194034145457236863677693944556701495286346717864731746080071586818317971514891844442009884970021897000803080547095741364435471780623527283360879231319670190445395707562252009860297754606344324663589043152882302379665418066874378155941498254712416469810779050713092525009631094966537456753974358615867401209462820269811643211983960732584723871613514903965249403994367098977134178945133452813116370999071379646141979231284514547711123433406846280310593269543075159195306414957627857898623898160079013029429560283724697211639707648491009765879173625343754426524669426266582971814789052010506453181851920199363128053123225720807501065965819913483320463051423589383888419086127799276659258449235219427068196067259151075091418489526832583053398887205916006996253121836681267646438128642588641973554081418246689656400253382532973484350521264973734854458815245656069679080836504826236942484690801458036337486092870071516140637434153466641594851689927038760779606194537264230846181981520380590742948817309838110628975187596325864772298511968191648609133030873656295317323051433674156720958398979911489678354191793708251300969908724373965596563132986961929497990270943885239618504621864688218832798320386196205606195409410742997769269421223333447571379777317055978612215304523344992881174301775349944285315495400562355902488478649595223429306499905744426461542326270695789450613069253897534996171986463693111453323009024814520542864986785550841515176016878365907891150906354917804326654185053618833844681424864915427268007637662513246753659637551261845956191113866996722118367917352230250322687755512124100687778467111189118986284710746079303174242248826668916188593417860287016612141618218872321413376339794330140951591251303645750078578159163645684338501241795153318250382857121194316008625998129320433432346536654110828262402757239940716838541059441602413870712431216021614309338282626786683862351743063079500722972668191399742871213310186044271950915908912529828438917806755571298609602701124479425020005904718815612860753877929262822525566681218250354487231210333491842693394941691556789898454358904061325423953890910090978963681422102262931503481711969303058890773453676830923186834835897429163667789530706311839501202033884644531659868454611115278923353213169194609301657062127935384540111976432624294394772178059196448606940776731140601774320550881959833929974075966226341491639788309472141245862603838703215644631092517807341091661814149175294896269299123690253691700306919569716394437106773827127767758050477572747705944632933215077608602386269073312900700770622200938069250021985655745841483139561263384608682026743574968583494413048988307481092997525136879366014719747250653146602811221827108223741346909880332008866066044262157363904254763477373942020792542012121267133811067714533364504729663685165677255264254482536630089145084643357826825070132890479955707591284069649539259611860311684144878433250924028946288650956650461687967067987766059503105832744550654024390643808996767378097451539082981348965414222237700438852158008064509015704267646122637457893257120726408701422201330773441929115697157700165597659551021453605532416529553874390275077948376456983746377661651967199937795341151298754316991829027034067392412377917183974092861181809999242303592470862533176859213205239560042021795182451109860776418204829706167214366318556601779107005497279372273064104242656198185466427507955080160477540394532103433810237767471582128754326421108402781057777888342263443119653803616336603098639011021199469138018604024641920102318406872608774543672985931502198833572257620840837470171092450608014906291673490275835614725938297140593046429620505518190083255238630424669565893876604990925074207259153945366669540710131459960465168543793353660674645986221576570360944475810525241615140850042761740659985338437424103014179716464856005318970439695748173464707905262507311926864546625182748067907077826752677471861695212297017432732841549871280488386939462451703012466596295812973693687176827337968106638009021719941368574021342290326619541784732722462114873283559836536168593698666572286497681219989157154574494242455580715761533227533098984215032958010456546697762086573934676122690556089312996376566577759516933269212705030085460150953958628500503310777634904899478334265457268496200400825928902961659652328426262083617512148468699295838215774418596514453734689901553282447665742812045491127773193988387745695130979428769474173876141592507754512420259325917058421497914653879560749577368120206651223869595136512060908088463211282891439504121323262904438950689597493279768944521168410077137833230829254486936355134655224700870972243353927077122920509275852789004282190973419851954840665545731084606311227402870946773668248373576880959489835047222774895160513304542122734301766439596802464986734728058121322502141431742374475568819624728553768355522457294328251893545109950154883646857702713611435518829205792397109156279377161303622379251238318646658573065964358750982031315297379700253204526869924298570969615824679107106200657986298191661392045015946592862112956193926204168094761243099094376731338079731564830923299515808982195700072767788170416721139517120872823590752657692907053321664787716180582790746600503240556011525432580403714702698910011363862522186918008087575182534631009923032454546031099904640525822513988575965388679350422421444339509061795775658546972494555548167986315389828772727925595804513534414122257088336724442670209627105830456464367455295101047271415848138555452062694748388804294098451607494657496891159465898437522134470921942316904763287317675434094838688055133129123320670132444469516705124055992037264394223082888694277480872749105498228258466619980205644775683655450830735511847772187009849765170738440246316210728873912760401765854106746418017679090694255149836264823746339966962682551882885884257855023033740190469752752809179900008246282071389807040521097890301151539612439747324338940978490767966525272328603842562943777685394117376555779155681936507741252783792468093797320257379576683699948446040302488735143912491268650652360672045519578460392786943525515682701366338197939180508040799052959389982838365685305011313298064189842491778693817225794574110214897551167060537376206341368189208106958437783659749446756057423336277507770535709730296885532501107924375194734055820748255092235335671336127773393810353938209074529720802339995761583498177312027516739237900006589620302545697766643733049358024071831670505573479312206191128573384396390313606813119184075340259178273801198099633574935827438685812154071768569355061329158333975556044592318888649245135196625782287972620757283207825157199953933498609147465560290095798539523889219629407082744910056173164186300641047811128106886765145439688519793248627352728579357845328764457321169345423764859203064741845949393858015404248474815601224767390655495395277348851282173000588711029938496952005386655267714638763080669448673622788307388752847438433762085329222269643607579004847970503061278554317268361189798993752497312877982687098075994011610995448058754546575434525524056281038268847952664909144652551571411716097924131104329666496740702453819039566698782152499980374048348102682392776471855968047646278609851500986916111163512821605352392786684639805533466787744033644629241681195406411086071897092867663833491718609891901598483617445130422005791010667136766838478726714883835933034436067653231345581840187493689426653377565479315145952697391094901315543110503798915388275819001103567146550403445824654190454725694349997025503410407026582568771626902843295498709664807317808582266846227813534596914517675570033708948879438707520367095906583399266368360989175846129893085153366672453602697562680948058899681252259576522649630443758934204080379146802930167165230218705269939854243487766623059950122667038529259610648452448368325071931718627004694225949225317616115425062332547151820514813184537753577527823274293521977795075410667501427318097175113843284650307062759960669439368662313301817037899850182640904431653268694056660895703473321599726684846496278023094866185610851832855605030245991947354158214658144340302101381599926137940762013290932248971957236619934489330884347333398921822487052170931008615385932777078698623537046043808453711617167086216320260827871633828605133675463307364057923845722337632763705591992152888903440083968756899294361131184081462013182842000181081264844481518143644105006044572201163422376912367604276074987077933518097454382266973943145150615929754220107228429725857016380365305238003338555129208044933759109276489153787096942690564902035341332771639219501303732142791848457909442685428783251643187526049125918837065160073164343779915622652846185674640436099266521645747542163684935229562706587713670899050796479049406954679350169977790690836713010070785490357088939794309149089188301810888089897682217088251254358785141011934551336759574867154830934289999514069989706341355395410978640440680987440313889143178594463493306857785484861479872986151144101833118979620064712689524126791770808867250014292325012286189188920712870638624937888891677893190085301780291546051463351104590441546365583344026237574316952877730616347551770209904909203569364900390469172441267425768084882793486061428195989274051038301273081512962601439958856142173375238290616533314729584129193661038286835484481306032784297478091148199762324486807737065584751620614856834531423627214357446791686019154520418629444771594527634753493739167948954752987005618731523060397076566041420398242466792882459082569336270315942013129737758810608978771859780069666514780906578778065938965270369117612048856105973384651483433883700373684100156112840290524876205599882099488832042560248032359796522032552817232511900993331615670027710435377094744865086173751886859319958948165497709855624946444034624256169561066199857073024971485859468899013557477683954129662133091628603391910914805530592077432615900412276191350785916372119346451929411498945845911833609492920631957749684092920883772247523683714132909156927440142035929458026557550267351274361869392434839592744246248426557500676604416363721815227969034956879862317990656059949242292654939296289141941721527945114290559263304580449218792268310612639843944466664684659022845326949422831109385667850285122736555914863588567118266119187597853688230927289331385189277610791064390816218185611917263920485285992038652538088092238925775825903423239855593651459539859571189681105258523456974785915214423674787125227240710568952960174265917721982962731010563129654433291849082675184325613398377267832345521167018808180647714584750993010545626163465212674624792034094439313427084159160758535814265757367712670735999984914221945578880304176338580919078697241032281307799539946026096821200801593426781113023853977527174847225160349654408760907900884532528278694214078881175037529681950102738182786524445385486024784806927493142610507661236075785540192305237265750726535682519815176312765634038607138388004420374057519302714249084090082042365281203647496151730194226835646209866570135899543565558516268140928184527183447916025206471294440210285297058033580520620848646561969180412198258534054908217171880692326513932217463317746351392078691287189346310431267598864983964161152867814570912416159796014517614849671125101331150322025423484399672269405021056342392569346054449206854796443192426839699700756326844628185312876328049771470660876561163029490378671659246407596997359687369225818111287039313326894809943121351489942962265050763203090137535945765040250517873217662996681905272741059230953451165288467363404511114902058063970644438190758680838451201964654605124296206093821870301574984712616030661263035995879259095500710067191283619697642556450317886171820945585921602308261614471936259098718834945768034774390194382703652390227396339436235599686971640521488777376080840006453872796667984108458612241647626907048092813821245433246150915667394875368486699212270330060349720832023767254827120965634304580460527277030534323064705147693903848679249956558525535410159867232087634713747244419229834798131715105074178669100391665875114212224649907015576386213446824004255093799564008414173059818709299997085584578804052525262374005504974072004185371424993982928267614294256815809018543165538442326081586489849994443148816637174696225235362010239525651961463561171963761785837453709877874042611436230240993996479068733451872445463785327062690324740768612309089522622524292700929872059444796435247505669193412253265399947126722096577051805411703594924461112853699476480310204055983751359100707570501498656794176825312796002631729759515522275706111530331728209012743996172270314600991034599319137662488670131731192823989920052185833105093757250857384140374230801471720378603231340315296692035172173917888018711868922015161995679232972764200449576145642012740314520091387705040009854195089303496675572095009842141029859028913859687901379200377249204698077700965933532149890440854476388611459830350051415137999605683340972950538220906849137223111038279570352376382782178204000207788166941836913408989882687173903754257878267424137258308288400550353246695686287742936731580114671739262091988524488534735502027825938149589132933268160430173318252959867084190648079601784579291873516253683353338321606850224965187830442206769311554931798474920234289192784629944521408538355962611344076693550772115947943043739874755641668107132925174366240781026585228446103913775697051436772562724499536475495336402078999593501547193950136548922085833183440038168822310064891685501083924980286139711146366095089342575436195844068969554238792987707349339706157644620820825661161796409266142622308736090294625754134129663473183258527862010967796961394304314940997261608327953425906010226485727663033877016885923117292010015810931231616077538696140631406289702515336534356192930035549253225139795271112453006828750163288384626193641261366270803345657627383924692255652843446665288331672242101898977920078162324118097359169218497456980107340168171530913849836559636279642429573564526884300657746250709858999793116193150894907416423275198109324044093137326684102461521607868199792786467430219583284715807165191494235760517166959793737737837606705710257828466359094635976386437563662832291436093614096405849312233519134192221131765472179359045203357242944901410927517810177172951494710624972671672428542642975985748594954772322923702963768378051722766681843152859162776171782631087135267908520016537578794762257992111214011461772597294144227853483538651228637137643005999551750211830294326674726159949207570826955573792615949388726320683559970495219068833915853487962893599211552336642432438923017262769153437808196928917487759783325113404950367187573974521955416711758978436756817661629471987812291869784554373971742284088892729434801701356231596277845898428974495537150487536464172217647074915633593974030241618576473154372745710334958254139094300221163120741624668108013466980709896556462829541434568191448129166880329818916320182092526037259753950005261153373406922465034881824344137696239868583452557368559850832187029494542451865012600662052113222509517359677150890936237303296934741770179834768690065215447975705695649879355013900995793003505627778311572658315719901012582922436622692505352520530989743087542639214086786581065134282058038475959536674372655936773050710274411903683019244551627613593709503223080787354819650904200549486795718209191202300356845595322672991794302447264970927418663561383993250818326863429471532039151100120888595739163776714628614002424754195943874906546802943435038306510104492486331049085447262534201039973955548258043636999761149953073536130760866192165096993621430697808690062471963013628441116153687568165295287147030236595316412908178709828649797762945417913560665041017181140829570304742916472269870090718820573639354001205214643206875131560992033547778890794227690570977676095774301986793593927691331086025032078233686896058501949182022769947270932272333052735892545181099014098468728034844800567896883890454114876854754183233858634415201449747954111894081276081877003452865203351476278023597585866705915164204172815705750270474224683583863262725873429549936396438412788313471246643612052584314363004972011739830505235678718457084658771652928349051725285362903405418478034540800186910067336893466157750479691515362944908399225558385298726887988055079140606901307784653980413624574069026672853438820753960982514581386524065058194051773916613589400119335176513857780588629447822737028207154211171023087519232783429485529930700387861449401983365913306773407946298624383625427026436285286708162775535180865995024004676798257511883060576667650055375192238800249155639098590872227650478691895909860940543651341603551933118128053975752412771338816676455876327265367605668945356387282056748567067710655365393555794496332536931332958718293316377267747341984540762659119211690881345680876719684319532919619789316341955240243528378332753458897655707256249714781720822709809983668733010122702177529402469311214590943944130320144922602772584220170347675610035635693374036736710979161547159749626492734741150694998188532474495441659449319949633338368985022683722916398574062540145905036655945124871426040741524652158043897358701123277253819553466650697288106066099276569864182775124803259267019193376573677321696724654485954469560965140863564020912883171075934180366106571917409408147272037989746753381763693661450743760369805449100700347453459471546682352595915680806090300301894486548448983442718872546632784618178890504394347443327146893498915782136936839103528041090008559519664443984486154775358077535396113330983316827167807588409044928342016592959983056554457238223929149222079771101157539910791436898582770640543197764574194903739307383529675839288024171244811099291569002982631192541219384035573328934542515714498371201138236049514429717234749802309282841108997938165936793871158832757516340136935244154005104333118128348490406106076303087322842704136945743261522744710077495818761023487608894704962223526159846349187318728618428194161075953551131598192314109014924599852906910632389287173879684838486569661964045932301847051209897084561608070813064929304998388344158523454235941230580889545185240238304208663983060843566250508715913063125774441402063577676256723777939186516475253832044399778435981450617792779029467225991041937031398442202015359687981526085635384555925779524943936308045868225850643856686729424942943269738846939916035043244695730505871741833285104204508900681943394189570683022750683457253349119104020145672720475405815531120818185564789756889989261320482335158954648612142106042945394685811133424906653632464970386816173293794612065033163347610767368432413983897213960164183318983996257968732213558654039843705627642808047981316678661538754211754386014889046594681504895699390152656685036728647883599506252554951648962209683460598418271864335374456074248547382653885934339028035362269474914215497554686024339358942941793999909561414556829447576805125837781097116333666124992832996690650145575226386641641444877788522085622274123357948775548887871914631926405184358056957875940160378371698587745057477711708102784844352992958137542971255239568577818734238459106211649875003348293358260999020253456721778141655785148319675613379345260070441220876439441643512149538071927115891921853574143318462373265687507055819403702271055412388747124354984929613648535393662636374509824365745107175881520756685016250568499681301036936947721461768837643607007399311125817013955200504088776030211488310218140733359799617422899823836172304175925656477153184809155182072161464695125165242424552568020351193315956919347266846149701814315240539997874571390519798897212558557800008213562898586082136891505512980950431641669502952078812393589504261366861099356220560992760229531590308304439544352326825331861264984189260628733633674443309922128728069116701710143442008945699479603009144679902398246458169561363670272565661026462461087453760242363411099481767503740818640181195300844333427631388506228989822618704250228423926624615602870944098456379681776921786993563220832495388269387429751216232178127364876977675394043180388894330566826622808622722126922244241449933255449530400818917393230191287013225940977030987230973949737573522051146916670953894723234133226752038170835013919669586418361333559468543681721958589077388339844281587069256571999736129937523746366330342128366762071216794333450262314063435648858121295165408471795464009793596671322152762720651388653065168974171108631990657139205217411405958009345795753672415615769236115863525597007603070522829200406375555304332759660184668544249161467728719151624929270491711288912607880869779036833129878040728715338971260466592519588506004346546763168978682987862002516867202196088580357193334807156310920529966439710405405496760287547824254306022234777435603745995246793603221897503397443261677364267208377161532791244365444327331281611542845432547820724433251104343199618626780657481479677817290344217163383231524606135775749609911327325858420681049882157097560847159691288344864724315043028265595692477889688699236646442082907948686768975495462298834237546716469430449419574651981523634765385408143333320028011362530840091724224651378438015080176684210666582256390588122059973852465763132036562040451351676953203331013146852291681110639304505410496674169534642625724518578016576379765550006919860372492840994917914483300770492969767284952887878712876169991497094802613351041459175319209367243073930987490123173920523781664246190971772119016732044802256298056884051374872301450846213854197850093739137614658070482182112076207465198360555196686243572431762160737030616121788795956474063689734760316186543292861664242304127758184819050882855881230091487975449567287786558669865796011533872931599920648577149013167388865864018082646660525118616266767523862256422092845409544750525897802397289330623301397060452892863846846720509664793776534652840414661448673234346224277392235686223141707911046313717861163261325182204275012470605244191365159519731587787541033371048652794221528606226092931902951041461851207306373416291875231183843773401418703660198534029017662000718697939095172904087553878884051646758381475988552814162439480842388271812717876704957505064165546474808523971434389222361467735304301035359628655272878840052037831998182980316868157004405772116714821443821026096912780364603648033831269594534742919542752488789097656659563535392993157505412898836072220935341803326564305774735192366009709271090692985803815703547472029546353215131421968230582596493335177433846231101677786971478954164183028932310630579671798913319673701975546931862149003172999553231183018254692604067780371526798062075830743899938734808966549351526544362419013183169463588011278954880448928520416731728218911489726932239619380335220341194955579807540139101297606292598452927142366970428252138859976072310125936657770149229370012487461498711664794068025958034426963265941707894948985650041435461744838766795332007722628643079397685045037643839949669888792032165368740342378368288678030803968375118587537830738064261039504896903573011470580886295040196514687105144592420882963176787124607274009140914459375924397256424917022107572042462471283767795887090767927043546919246894735164461497450844934369544275239573645365555155225236052921920303111424340502941321673404552712123478715703649709288200340720238048699842746011907094408185719461964016642410661411687556239982177599483318411173185500258259409691516755284035104503729498501384997437886993107944444599243966109279233884725975777575409927593754320664993490396345565152083009350390573894265556792444570672126984157093884958900408112447705035431151015237726237363254544835847847112623198341788528231617197108147728933422246871551070428855448855606287987353752736619113033739271264070020111563257045821367980823407180739791953877859619805274970068648912995558942683425910332811310106932886247676505438607405377593956030361418838401801221207911521813312204301784815191672236329548513602617017723755103848486039437643224277379992442342346740334440692676330530872438215570451074020428845874448910009369745465830701066465676071981093912685992479019827761380622463101288987099024889451826575577950313201532516301765447600528849480516898658887290898849929763786420394854026943305149551368313952369656733764361710515817344428395800415173923565865191117820750554978143873915456016261823751051915293102739775362014725557072458192884218732692063967125219173900137014924192251794037099507032340391879961409379375234872113851435819414581273103360840213500542848774972214534759887089244388800773246965739789993774611807229520999958911186581036979789813124319054413866326635021988383805295344741616315792256099477698910343368688809008396917284542596146324270301584652258068203346892580553206759608235275446955221947760120566120869962714563335296887651862234218940121824631149346358476847471795013458159748320089431373832676925313138108550110980048060474730151068436763880624896938962689703394344013446062135382559212135710682173003399405037682174701109331455791851673245961304478760192640083860236202280388754771380399742804309769403279521514227716058292662660408561054756396602101229363295323589160908611395892852870723239459205834334273112493098944457307137534959687498852910782630774638737561744918004745708000068243350678478116336245149098419846905064005089030101288833413835610463250731977431699313777686126122457274825979215713961708381532117053298705815409398295288875554718666914360197861483812012027858952114891341088094868748492106428780780441501330853578111709196659951877359310403876696711920022742987296778909592041063015206517240328150541492284002992784114306237399311952260061614698309381877343245324549925043079616408648579444856547244749068924261060303624471992014346832747701528876112996805733750268198306986754181058700433723844349297491769210992444371878155911447675670347105856220156417923605269865448177272109820522330120403082432362453982899653197809353768733284199062072725556552883686563851931551153085040650054572165191551058142984628900556498762125417612947143858740565733869698605785504036301233770917411798626319098073340892062020539780905422435804895773721103240418721336798702537976026646926826726797425538292991224091330962736290939842146502978035301625486602268306901607430928742620556730772788153068970611733911569559066191285781237906670572923602875485654272535674248704989455736742557505105748312414353060338158151089140676467754654800660584231092277194294776980547122837524819687140214404332791032702723837375880605225335561873154039556364328038745764876332972869222862666023740967345002154084237977174037510699895630697396099763875841426101704625020105040390575726302085827310913394450830126760046604523856253583382166437041708343485904013788797494258797852117574185124092621611876984747571702674670057487410222662359383062731933209462085331854590064333605098823315846003371225268059900882845559511399275537632826905035535073813791495957879160393701617314100038788284662582963428291661061588180039907923459302237767769524584567850359143967305290022769737465846342891991900568793173678102432955464933849301644917044740440423804392510947026180920924287305361398477329627206365602484287245203659145253850734853357957972178357463374708411676054452754118142592524010192823846489205278498663838165842213071347809081021944424292033031360941801851549451711453938572367059842382187615593242276030075582284132632347729720516563901014537869763805957699352396310219594451265973973311556694317694237228438926537678573587006819734116632708874968321276200846928221905221560311049692634042836334391894123017540849660913845461479529400429960350345847414239325455411416474161589142438767108992867572581517967008796535051919851669273675150055369040024309233337914286210203574587695293177916985938270385139661157053526804235119483289402080214221624550632660217315587884487500901029234471371923686159383645182596044722680975054150221688729590836220455867198636679300382806815121464436384262943898668562330909505943024216569170485636915684275765772787985888753022955105907884378148070773851225902324109248847326693880757693110926157804882315191460473344570395524497943803636336576862929782552799827566664209674774234242650407272207379117203222894039574933524714889186318387331894725251692273677110145850138289868204559243194951038776145739821965293340565135070247221640443744017542539654631299153210993938418700366584968386026093511065916832487300984735573288220409143505022698562441328527263646361195324703739332670765735640777864986527821420626468198051579856646941784983732495286922124306604960555569049034420235503518330833623104334926772015521257878162973682852202260694172330877921435656048765683745704744645139250515918239309984311140755830111899168332311249054017764496660666261993660031213473615408010705497058267417960696524818172890617270678000276008020315813116219603934387983490861918219066677407277070205556597925692050178266501232532849574601101856169306033213488857118460112017305265492447403426345375595482181365563010392270612142418500977416264287598979932441581395338516681133980002720862180200152687566905238636719169969875200798725901488992066723786949647254524979406239307056645720088157952721483364854771506670081760242638912315792781585277711337482597130277832811609737728476485167056184307715438093116186886643901825405463162146250062272725424697993257591837540765496717530090787374029869612387146133720510998110249294963413791475666530759337170254057171878592431734538440020066688563797271027240442335229294036549126046414378094401743238221324631051442968476324584460513019313467322814601234550975956832486188741956465162744285836869677994191275714814335449180913633595224904011424270023454679057377854342805718840587662803963866392109528349143010281056212822217031418872810819906067678622814319033830997703426241484989904781276392454712919594241695685086915485841663685576519926726506826841858001243549797373857871428746032368231963770274959784816015864109829802280904030084704331291515134844907880817442781069107098793278128043442442965067551153395852461172175218057768274364273966664519578927134885060990645177780324731185489499489485370062436945456505533966513426444625461630979894204790909605236932175093447768952291837915419772858178102110336224573961454032860812076227247747955496449139390273206146676630110282587999387526194259447988019142412116243341920468195967280955907387797329141698283737309223814894453788070334463257165479706991721554001567156517823985227113241655959043957678574533965651476190688770807824689418305324957109238795931437406305222373889619251967841871817234261061679337691913995861057992803287985248711764859917412369809742936349894164434338196041583503534071908826621970525156628991416682678844050801441852938856247842080131727711654347054914169503279205248464036655337349257712007063523725179590909610859748753112931614170263727485097448138275559652559384552334092928015236449814468353694316130879327223965891989945689132958540611524871317166845133873024810686965904005438266186521283017959303755639804592063950867556761277833662385808221293154531580139282291952113670563018797629407934319783666296764256022351337873204009859598114790035327228090690502371578153194643227071980371159238296800982551364775657536411544316156179319921677595881077697567739677757324319432915898796230617514010619013783769024113206054992386819446993738642015617661618553591902784049012027921069458740870062877028165483405139272448817979641205912619561309521536530053339752493706186323497432794430994052071126318609094065191361194358393556304238790066714886858597521032648726996478144257302333244007806478191377248513827297735758379822135603953230443254264670137105723626893749252794600985374237751795729699397225306012800584873815825523202739853787999108903116666368265430255148051569440239718377268008022387649631934518371723250457490970022409479624849911943370567928685074986564478246477906651604233066195932994546734824018134070113170430052870728012800623428077560346400002448904561989536660128775740125518266331203236170336588227754931313189753796890621071206662868250027753194154046118353227284760975661882640568171940483368759925126066129620629160465335408282250485631404511726540066289921605625325049635885098092721270201212624415646704829189445393815619250725737645339328949151292471749255321740681776499498686350370422994955216939501584156987708856101273055737194034478991452461915885357626489520648788051253643162681102902225216946087625989101482369203404418946705380551726585802973761358042690664197376959922497542657188184544268392916618735152768552558105280861978509025916274944733347032178580397833042436528193739421454740764302521799791503572769308397849389041293602198926479429663166033171005216793777049971750951831100542126236388097563365711581794670011278823199218831017449425260106132816641834740190535432568176208619911555022518337699257217990176417932183311179094861786153707408835396855760685964703148851193640063566605041637675560562292526000009623021458022299132729201847807378198443459202531664019555167526458795508359102679877876532230898777132536570770285603323111430726174606161173770713988059891770030557834353647785785085918762731830953112198747838586178066983039811684940748918854931600679444063711301717731642618137052480864044829661306001890886948397562300761887906816530688115449396309374758768740786046974169100566910619683650814695906169606287185829835723192246087284337995204705379147373158976641479720552200803616718795829363706469306863249364266445365954554366698229396502158819104511430260843834454242539657320466903538792981139566377168777863320454670275571568523925809786566426305905658576959470405712026670885810147296703472613235691871465144427483816630410654593895492213067821187559922809382867088847467483645913715654274537003968239394178356679095390452522296318801139756103366726597503413719468324144742901377115725022633003788304673158413299299214168141718808593041393562374815926300505386030086671586784847164606835784504569167105922039871052934368875817199339560306686953813011830839294532499560984951150054375414441604813887370105171097898988461692895552011854919372966002827737510935274188069621611564023186337447889446077845503327500806765204888950578141105365355396414610298748686957188701596215451662886185044902864764390884421144999120763146834413181586845911358023127830657211360267914417559731684329152045685844542733206455396240356256687349690742788387463623688585349109362373624291350891305797197410863913732547948185638304242819260187302973096575018331884257226411790386002901394258318333991432397136709643399852988277507922248836833305259818067940744613542491912186469300437641805775315814437650662932572705666770426427194568784175936041173944568741517122165906785804459264638349234490423768915041221715115244911528999493267217231564528589193929829184321465638733536256127921311804617741151381696069820867365440035422469250133076268138826007516376010892502540179462151359468039246721847847568788002936602166901717304432764090324484793288097681433200030607749649091177162875844780015330375631754213672782444113129566045918396813242307661650627683795377943968941323598906454352075898537607453898485357127651509695277793132514046155647103616544718204036754130405242815805382154771549560463533895511578672601578538400729668378663506808539024134274598400224289153307966053887601853900395031700838756328146313175700153720797747156784708117027383141524721352858244208836963600552391072136760612235509658108640498895845062234160693611061318982157809579851415306429525799431260174643537077117251120327758866940652935053090287235457733676721610764803183609305614402603654528519529687997670032824887594937216296925254556729121452059446668324356494961775278044545009600335555159804748950923678166173537524306840443044516349970727821704355038449307821462006927825479156462445687557917074139281926552648166677044981140327922545101935616154516393803923198358358708073120286752650078458400539473952042260745128646948976995632946907467012909271512959350025865839049741613965505696627532291621856707797870814919465244191959595674634748742010407849121890086489791840021333422197219874396948784904157407197928652320879073443742669788823391298118712335716365403622137237713682273995788922365336415632169630063882951845944348408233461939509975250360424935236842450721029471535170117779975769393579059478332256195409294341037645522742817651040736649025412587562389546532969803174193254740310821504758975839644017294557979896656112343196455483132770565423560042935639039407327680693671260862741630796775102504864590288485323670858182741097100913867935540309606113145914900034976765719250926378755180733870766161883464344898763108063088128150808638525199818183788307202394026250784305739166863696953918772568292115009753846166930311290452375546199201042684789534671773559170570674352641688062182936460602318182894954343160404801318611188616717090388657823835487943660528415445711822304668737676505630558833892309470376185336795966751825769377336609817976923553859344926499072420024034565836215174000267894490542042037733319879146358087700824346664338485961842674859211058385099410572247598704623711371736490529016010059259632094913341626291895982853138082798818082556319810605551895865346766869082406621434048874558728881706147119705787773405049071221696178494821944784350534404813624173391948489193537822458576139301348730376272176737994502958566254419870369985865524533031640869591781050422519584370134836429660305383031563693578941205346015247248387807429402778772316686040995808893180028304204002780016156020448442972139830769315408591331372965405834517963451704819788067469087940408672789501090523520771829028575925754730321166971622479195447408342473875363607064654739668719570041662959142581764371667898008706163652505228084979261057981063176430665545880375148479155793305615177024745018391003717883086387374694936800729554632195256729638920301479515807395174024391051500234375989960493508009143342882706498796397748847870315604289375305976870320091027613337425734506261744678902952702887725467876515293952904222950063995408038078593192339809489330552496632086952077316479354378128167700053063261460917956163467004524000525538414939858381015939324056391120248026083119891785744440101499308669731576919719846008381186281993167672076400544582165935246863043983577403884278560089318427177607221605523830895708802844192447302513768094686931900826181886374667447767299697100288383454409692934038100842840152404503771224597387474086119834122989997492076655225239609144869577916887607049525490454680942412595813641417455288926654549711551885297894419876359636799621409641693112189592061748054839623850913373148074911073555694794948268656045679837660111918941386980076998554586179189566794936992612905130660817421547277261587004458199966859236945539099430604065783042685862197258671436748642812390417937172332938439463844250289545629460685195893277645095353129665134431855235998247530931746313897032472501891433547234225641432592516782993139482146734077903693418878734940424724162966991071151321869274724261317211034144799172057877113947565987586947353801229137277921732834799997686276566006705423297844970860424312369828632009161162951415907445729521357984830243896462464723215014501233536979457568112329776672577080241610591120513399921019102143151445060977093248492134809017004137097415900619207865036692154964353524118866591678210745996256075257344303251810126130191920404940815858415796304183675614476014431223877033603882788916399561878282190298004306960366615196677586385645912759754654802410720517096001417328132761866004833902833591011433057014655813254060944999245328801739680432552147930006132066904066409959412092749887251314815961980775144384035565266504056807891016254341263877348277044103658486284755751087751106299148471115871470612111912694601542615225787457150857765200214551984858829048744509627140676887918302971398219098214722191152987734608359007164976511818579398657507101387018845181069240889440784559820680101403417174296034114192412979685261148072143787829745831669378095069699574375912497920576949511318197578822812852692209662194025386641513443554855217512240385906441686736073136980271179473317061081496380177713398993064631218586220925648134599319245889805410933771043023575415814211319794120474238807276639836468704137289752115187325623681683943479115369730707331714585563326253032069158389777811517742920513400905412444664740718090088534438117919748183834175572626178352058416692839390582985710428512376011108335543164855370929718620294155521849655319085406710214570488550760498374962106416732296848138213943135529938436617141750635175175142937763279863218993670946134840192850426242748454732084553508965820161878650028569681348071220577044073063691715750043407030752114914716893216699142534142191001981234731933543794687219434181139093251723678091802646556611755843722616010653981062882061892108578416258666207642159278841380743951367590227573118721153865229284795211950271143240871787435868940519997465235872599442656429208888637228970362160144657589736976351473246861800870964807090581677528085710383933969567246259724165013423917360530226098343178834262844779900165259941038162017138407838629864667393003750480867416225843157174261452978123055437463997111875611865304911114007317427072140894648622734015321055976596555092050775208612366855595369595625839581264438176505740670416983943147749706456383300219453509981577355515211810451117161839308752745364853467547459320723427938482913155110288456502802606419974569028458475768513533844240337717621926484269414898754846825246472993508130390578489840167576973880906255529131823229625730700575582313883188004451508266707429463510377947236460556868714709277536629439038999984285558562857521661375730367422046577946935901381841259834217244038893457907350582071652949440369599536934897230912936775579795317458639111839201495864039725649098464169449797745878276376019065552178718502624049062761768661085914722907535585080336486762572424016431940855182679751944964504980064671046691815842011557204740697268675542647519201835846434460644110142039821270204462246665171982277504396583885636170699132001447178056214452537294610031829543325580333356141006598338877727770303724964967520054215533974349967567377956367287170259751299434511659125467555702091234433069895651617794824877398291633985223771128684277847971152472180209476533657389581858725436790083221233525604068663149261545657240528549752231582470828304254048749530346766095059887933624083667426723585879164423032654945299752312410013960060162377095552326266430802105641188645554791414708479588962404444567726458764169891765155762942932547356560623809855382713449076718253263425275312091805112732672939350814738744051932877495022984828944357079020223895663493822572188567010697049333595297574738621939560159213285110682353003107836845846457898006935160361134886385136233195880192642494380348525695907620358078656703696735222192824971547139823851267679052830440806059822036713281044881270545400653824701367301670639007325487294063770799007125011309016203716170103085041282035683692034439858145441152872193119180786908876831599468763217918150986179403471742052051500403387990301898354973616309875314082625634927526977233247483530423163330619290738687847323695176623503261860673257438989846345182332775151533989831852534105366068228597833006534080084751583083962005342115280746234632369820576762488849880586203003788353929880497102479596870416795899924514127240003453441168819244356473824769078240221577340755591522198378307149116843511213445902716105870890119903903921531542134562613666181554696917007578204434930784751219323283198053685440705712495374491804436290005512397895954586145261074392951333934120541146985169816817273104792215358865216516671309477015089410637989691829148344078355394203510445971268625989410962112313283332458471376229589818462331232145077690517927540405174937580654307596540341191155468807411084439257507754335734213225495110572205108623573172237088564057831144849406725594671836508035143711745803412939002577492081447579458091433822421436042857693395616441547514728718729138382621037775141746291909179220540328702386515257931464184692727522888004424475522596666656960846833379375394682046928032302919347897164278867124102693220812560930754913253818282402412492809426495291347052598899908812344963009323780336589348128138076465614240139478154043942388792443485812565641742692177534369700487257938873031995454027639204072380037866825463391394848158025673212894194661076545662608582034695449199091563721202197784203206256545553555683626234833647787243595465669369025074460175565675040038115379452028189349951059378112516454260270253450281781142335080660342692440160731660829857025332683534519341690356288114265734132517228742202600331458298348256037243785766155983556137063350556249732408751378027037954550265970225007193928337678807930821341900748196644946124003419607440861085827849655985220689958842755985406185193593351957430835573031171616222640621216440471826355877266631397858348771226591458467369616604714789542361483123065432937844597945188817938571750208576862106561486788960890609207063371188994360189919004476982985999744757879779664662300456605568958754083551687740484047455368265787086914896778411898070693165271170906532799690657995989822899280364331354348009822750978666568823143439064770649428485810265722462392392170745801663129572336949221968693120131195061536767043595912107240216594672631993469264191802098159822897239413557402515801033637836727376602107048140091786285395727223835680287173129037931874964767816320838825996138697287757665125307654729535518703561153413326886501994353327143995541628916831121854469473341507407334937618143814849744316170119066470854185409554879204919778204331130478769320404898712185508725333318174151870785733626713898670736958857235101813434646376573168475308073755094474610760864546580598987969928881294026191735627864871184973983014420627150641305119652552537581192506686382775363953128880058821915057009939615109702352755647210314735203625208541852981691370170863315960008098507892045616384466637696969349150953604147752311910031450808048179328095957484535546497545167664509276312983897265957048165702463540898076241816565183902526254702519125371861705746884099309486594795163231881687556710788097194930247770801151388665764844112297929949877215018001785283811017020813437504647632381897666547857295035747342904159618313519078169010605589362211969298595724959849292290367606615113649218126306228432601773673655106757699952361443020325467290372646782386966784711852205700935243872853843691667065473377426226420263438847933488674144416368086197979975998970847592345525085256973857526344488631196711895678991432085854211994677739343545248618221949984863337520409336836166929494243954540879130613265400697251895357998028080479432658191706601660178838057584349462111782143073765176792543696116890051902446988701933876047751254322100601499565687564564126617720669768067592128228157145233249098058069303875987531514850272129671338832647194431322841705853392561629973980380001103431064828453189561755829352374565362791149729145802513505763190450643170893166866869465912294613357003747261568997608860210553074585495865455159412480265653880324321234700909143829336068880551841851315418832399643855245065858561972782225124227511147012718744553912743194134509332261673743547626855767922244176472330110776837374337751008477323305743967398429715249250843366847112123956791096727010108251414118675399823069549174051409547999549464296443593794124754118755513935409293522386781072430588664041411281123851310116995178419528134206382749607798921202188815906032504978483748111635461864803346259061252748141331966024918512027096969907236494385908761931046626645740795741098157926516192756836476654425105040472653543576312390019144748168551477892727652648605378096953758222800403515326320849066999775412385762563034184948675128132206349783936845182220829630774410018731896378378560229028572008357191673715237554725303107511092080978749303407178269526406306886726538248258536453374464177264527019993998060040475332223298457201578668046830839458835488369432825607905814897472071163637923697923446256007241695711718552131892745956787212610570909142970097263411186563953706120161287872947945576763994199057175177687219473496815995481935418017130339290102075159677627202602430538924817882482412795190633863413986968243351289986305719138873903606688666521642867315654306496200739067326994225503518674705162152644545084027519853004031436629885203190220262551669493862089494244127333637128134755370287098040838755183309317860189963222446879939761568299763571461638868981597019020135664684510861919420728175514172652384919574724673532040552775178857267522452002361978595450072121951679521393250770371350548664655726981407690024675905130513875251044796146383804933294258460631865357053982976868591291745616277687275301699538690764747691908016019563409913171272556632466638909889507510040414106503010566228379007920408805981502548581616343055494305077631835573297140546865977146064084080965167125409463469295079114722463430051803097046100541721335805679166057182347652833252067043562337861475111968610144252273661511476826786033261132687031457253362587174987240412349473979266860924953145780413876679986059073096712233651069892553205714987426239122589070409933575659503649787199819636368766248484229954492594366574229200862844620323456986452974593552803473242384283602048255153994040805371335205483956168644711887721591374571850891010690638049370862602808605919187458694321200221081563882225061388434252768666737326637918307639880881763596522262971937004221312100603741913859909331068687605167077651778990923024625103031988571307946317531198873844153833789156793947198119783943165419561158576270710521588633170611005529039580354401413876692757783011719753697020720303299810874236734985209077573057382126922203945023916899801650677464013195292404185204386093081058821072233691551338768491364920672661077370102187569293231380137345940202760760971995316929410627512748609254775044611251298662872260814374960910303823493004625641556390551510163664603465196871162803736769929248168679574335441857794923094660254863734417216345710138742762877526251355697093048317779149146053660829474543373008574785572597084760608434628930454641515077379725652628035793858112190239358543232472303232024409889468430338642756305332818907729665581247895413842755984361125489626096673249972411004469675766145484998998017409111709710298814757848400942732576261329470809813190059918936414221289533471949909723494297443781927220888675939166932587025363618783043657168114592447537395712900549493068142341179427893265587433964721279557222112907342713329257583549984184217508528720042304380127520720532519053931132367312434722910307976083173659332963117763649151789209145278516197016479232094353897889524578808149277571700152897414499104606248407192799438278321079760495623390264030159561523310181571681655423751123616591586606364201293864684794768825516931558867725499401499127585991062801495928127156372985644981899508445046064211961571980915769268069221204374318586616942326614778795091603177471014978915999475294177898014802265622022212483116059753491730477541830414473007604888082094599201324118780536459949386501596830853437440815758616551549517973089772580358153118757696362387554795091780106323555619961012197152846213827210122588719715561453285509861700313104514778314111673146004190523348032899260750278876102705187577813894313980752889734451348152515662970164316193554589957328786564659337293066677721425328103405210609924486202894853796422487214017695181889851665377433973913759397960923178893311750027891466936574950899095655208245199271613026354013402685248980412252354308520120884053368324201344747393543414447596399106800425125979823959073163556578409419579354405778949999290493952497295191082976693536394192376317454905301565967275207774834763833309269106374194000787067970437795945497659313438426684220014531478384002741975518516474092065073135700121006171936974229889056879503208774613434636694524825738678414218185145120262198876494046721317247540636891001556099640436953545079232229677642474200049545359646042677531979781375357538030321093411835389894369459525608530340253303657382529311591794082406702045512990774010972738100555621855163799264855076935641917522457011331710341447789819426209933279001161866951824639875266404589891908822446589788220926354950280821686703205413673925347772255900730018964960925193296875164935284758439667699688833022255931870732649294680977176358801786921326832557616831839464635412476497139664585142794180041554964760206834697143152062936748592828345213835383613003978652953884832736504004037197414273828111601686475307396561283519262850041764391533894670699127650035879864776234966603821973217621670828568096654466777567780312649328280225958062566391720018225783383523017347566557430497374273999818322864078383546524735670402231379549047734877515088029974070518996063988761563334677501519359620243599785907240779364302384023836088288834264990708993913396069885346820820655084447065058356424284326642011951177094271211396846416295456861410258975728867885333740652700362154023593479603501800066076356328971817172614417751006567227119609209981850578174796824874805480645980777272862376881220632505614683219473093296230218799702138806511960787275444242265293510151434332084734836559942527915560161218873808159779422201164219774721884986201992236873513223681796031538512245428129562669720844799837072141105104079690935976851726884350486992247851792956549940942883179882188303615052325759386629957532862682226375757371627045439675719656514037780730677557037908359159456011635274943006029428396725355575241163093721030166257606938370988417616887543189084787758322862222179815658895456809461536563797799990411641974179382324192727343423052619513106967410049839246598020350785001817123244563969501357872009320036702049837846792118010963584561869369130886086281588999689660556804180880890997561004176765452060610245129002653869180594289246711710374965927537742659364452045219710008958664676520178515235730042305494864607190192724089280244001126826016953888969955172496491382583176730526539465240036444060007511465487348487032865590021177482474539182434123504898415986219926639008386520512682509199942978320505187883121928909512716710151098098035677364790378454806334682775827199212778544399851669583605026896770069118744699927309598928716078479533998064077091930771499606790121277061185250744713762302956803674446572027111005901970148493843515076917970360809517276998593425331095151023165985662436513897159061284374619960580360200903235595747243771225249571409197575488081289959794901078625245316938728349182282960630998055640323548921625867744514630959239364020870489614715415782703670071986978578731939957698186165920434640623116723632564168769333078844855614385112496209419448562650532812315333155638021582418354320036181208675486308722520131235058430712407592248774168887275329323024580259991435504211889127639127597337287666459070727773335613431194967380046419824194037036424259641140205149432118289518918651157075951950772375940735822207692215353996160722583691637110299967078018423073041866189200387410820503377338702169103525348389464852700644112570106089966568160610325954887070739418183316335525284507539144683856710073355335988768800599656977511833100076535790426787703050946734807020456333617662915695775168217280598369983380598928368317163615226648318095474035522192788360156679516731541690037008479310496805938977103555643212013589190233393848088388108651414788790277589414067936821663703848572872877337314247422297011952366638949120741026437640884864115563243234720869700897418604072005039105032708874636586321800750170792036048302090317941384216064104937563506426002325897065650008378102958411990063445904858466332082354053364153643474820086775629494108541084707062501052112658674078262378951836712992828137675359567322747981608885049027821509963332908826436685838538062234076226427178428769446486929994418092212492310975263307543444394696915972266409882889234636975213129013818453001925340358278656136815249829740985136851264065615261869539697068854445920315070537410163380926772760753342397749714349700984420246368854628359855642965264748313245697657017081672445524622072012250935564283451345461071318001177563790067042191286089012387154091070393670779350414123912811858026109156455158521918423619540598936156021166424968309020164069825570885855612153535026251083385348760251113408770138359843065662562493394428677378613556046750642761782242292049130174341680128675022635966051323845911692233939177530515899320054852543524270284725176905912252844280538820929529473410321887275035846182912068920560312330145070103707099154695671757104717772427558727651513054709725777011908054126883142673845912172369429517303215513940883391826557771416164289895366366713533605342423967338209390388034189102121008736457891037438600000015624893662033147479565498734636189591829276167818759265681316618265467917632353111974653018260887470028442084316342840810034319872079540381620752680504268589030630754316617340144419057594329585528553196585196477191013108251059031374220268506763329461704548463818418185943490090358717368688577831468475746972206008900124285037984193997610584055880149520564615643912210409207221675404276992741321086252533971094359747354454767927281831870569593702363680958212813240820092176196148816618584276889118892786407488368069978448205942738659863879074307473707755271457563919814393623565014580939153873704796283528246814259174387705875581447108373103526041242981405635879607401303691421164103881135662938374879203587446197301909362573261336170003295448518087531164423191075308188393122017406122303643581504459088690659280317234245683779592168225587587413716105053618011153589269584855192382557951695293828878453329733221170974483945093727434671470008067202146779493209065859092791331828434039275633588548716425573301236418502508687183796374511461959701514270304706459481833961096826040515185539458198801398414309427718951176247425614998650840842877892057559687568595644919449976778725302247280098102629078480596734194445426360907122911826081379722574158623860903034548273752930785154557741630482405413398646857749133903503150253054250536657928726437303422173825418902543300937546324675234835232336988977896438956079644547951749695082826280942672330328988997834270596190868812719878947745977826928698408359961781321372913243847778012029875925065150496080101082972562545038677841567081150280992384634720849120032481570070324647892991695488920339909922104079331649817346605573736048994039478938993436383633614452848717263344540286106289906093190667442985142982047659862608847535729863086920849681359644965734443942554811735316414495648951614316402869523408194390177486346293487761540218871291616295021357784336986866329253847076945665633416770095184396012218459257687411733778988025653610219913657871981717364724922350438517978736179386805512905720204731840589339000912186958532979964879263033780586844430139500285557764220363495509069645570428873903398978797574858448097772756077485587997813851116156502552487427874520114813808771563344584394080538817642151571524399088250783586048203520133347730403241398630553811179612909185639802887510381336781052370196634562849889675080995938799048174985873589144789680334303768621188122221830254546239615746522421016246768426625632170044844336492972649625414264467131405120446972870870182585969361645738098928484067763879170810002687170692130487803174094607181506079266887924628784697064841497938230670576557884268877778644569215219137724982429896472012296378010348140092090379910941706903984551612777528846131502943509108892534082142541249031959636914256812575739133225071826636045250460213009729168770113108276380894023927258012389992546263213012574475053649334490950572437310372680648801305036124155022060700560645126421777247918836718798450017922580347790654908884322956071974493176871286229745513116052257497265682134735155593315229576388194878923708634814228123343803119329318600134988471782019730579362203556011416018985344624986543547021712171786321789521398580420992843772437464131154380332859484805833651861872288516010518211592534982676216520232917353739545251778079942403557989634098229395724339799763361624850636601959132376835397995746450996846231071229464008880191205215672255725436485222071288488816515617330506610211699561572008137832945862459622440990082135170187153325780756341967818389590678317118619824457708416753950953528710139915476437905651867078681578595670836359887354182970352875890545590483732588770506466765697459545916945499873454879352998609634919614320777232944994578328678606392505935185094490484852957196211476078393604054861250479401936423539554331033793252851536294283815627998250334646901245821733218051170755524907202844470261829049577909186179307488977682199794435758159937944531420660132598336885950994264644586002919565538416433066857318239148313262331421371479165941176912360907555620614088449476269576029832453603461349346732028200002505742690142851577652602291926599260282934088228159219917092671012887623013949159557451016646185724026641395168770451984778103435103844320753544750452236345406453658044520107888393818154401704008411117870212463541030072887254809208500176462572922596444742554346754548192826451108507571923072232916802574265092533761189432742302056721888381134580239091544444325297028460005832468891687028518826535676748802792563924057073984376416095669070011010117745491567834868410755835552853757776624121406951760263897193333910223624498972801131490921431698929083944592213199730929186550828705772030806644529728295890246341147093589978049591076503022593022064690707247611166448323605576056632621325393395809911696286112718981707722500816190663936017009255729654435380456588089539194086455723195196884830077824155179664146678263917325386231504922928460387678632315499207494865194852706044233664612252911039913042009656278909524623594991864019427080876680242488735548273409729622680678928148673434484928541593737616915998385650466072444617196437714772307454530073116137477108647048909335975370816678125175706468929276326346408101207266278278708607413240060480444105851954644379681655109633791816865659032925331114526649527943465919785943080102585404460270948616797642757110292869510699931387847362065928051754741106122462581874616506615580406270587124256621278237581406008510029576468904691731011840557791563001843106616705767460163081026278558884128042629636343046624417808978935900361824928560585546477838370221780855941536073816082332464737729212325531842695184253266047648414421432824288829180668388272313555946200038081755895669129826083195015600121838609243518065285215531521041690092661586482619773191274745429500848119555451569236033195372015300441774654087481409263365180364841235439545631723865527599763782213970864539985144291237762088067041776741682819714623543739710976101979213148547481498528908635219444043823600338332136426417839387491568796340880994404055356610659102532313064923594562580656057814597459868116353454625682535225661188070882209229187318120885032282647072115343848709118995791471214016637912856183305489346107049372756952037648125055951866890733190949213803592693854067758693848722170998145704616002358962509605511031891904682718708992321850851254029779802255620611518864354143183965327613401077545743066562489954988683707072859087165655423572306370324398790401095403967235722233923893199245914941825684854182537865937729132702892246879282310126522007459751613642596486055956818952858661340324651792031824437977073914700717981448450138178698244725908547571429265793198162069882924935377795846734013378986817989337913749033691521573437088576452439083507700824878124435811321681507548622873789563967815979088295560265004599100174956559370929235514290341069410271769826029449710396033606031882706342867517699182713014033892202754879610648173376068416820611129153238975395051470334992297422578119278436051853913229766557924149077337563271877194937356538771236905944172823753216242587211869354341326324225860606169092930395699008701542453725637740903982053486133645500062081517309352527540140147721922649289167137291876706061344312725968748662268457969420550756641575901539814959586340225875278677513949365798276526645661262692435846873787358973026309745055631277813472170533962657061792364499646628833109450479169767303520592159560509915609636092663756316976492599255894466991480706303065444870328205181429778083828638402050585905723466759568566058020641816141403843656943450566348092760358026340496083335190528327341943430068031504945383050052580563116971773496483658097279573178990886646049080691876208885493543324181618035066552745731651774734353013737854915052147442928132723262349634146399108218262380948168276083610252738589929097506139903797111758271473659115183016910872681634171694303715883342573822627224573052562048290963215700655193617845738536160351165083171934562789153935958190175058098084090974116195389740929860545507519600275555137540738920909502492741349899880679998581116111700042437649359646255980301559514145642191292336162723890984195648055034136315955886709688507618162475335839511447213448256992960802365443447051482415162286185666524147596442328587351792415144945311308646366438169408951392191457929961820035699824177886690706777282487659679938226625131333818601439125244215961570627359956860477677915469334922542334513788959263579562751678057275212831578153898664678541371610530979712256189620045223076532415036158132101080750883837805132190969812778317109343581393543890011952505238127112371699520233107665715507952692084879068601573848497687477872663214073455393965650028597187803272781384193447599512362188785058435199359151072236389649826094366783956185926249979155887776149705628674067227168352560752390799283358644838227536073568507198189824853055511179518693425817504878583004323101713938362673593846820735395814677751735501110968684974623340688580719629228502806435953374376474183370325386501743800705149441739729812519256655810290563774108842894802662291255666919686256629532984311165868542309233625685879127925694721131899777413360079061986601536304464007932213355013639528245347852465669864768036879185388645980590651452131203565635367300355678159613825821999523531686482503551509883587002454661960356395616322937708547698532174701154229969287444400350010201868795867798017105614850664648182867613734893602377008179316304253721620598236522479173683457136291017474451845984818848579961199982507427682686300090789122270623075190846682547562232129046630181499485608386876442739802247476206445525867025515306169193955572815642422243239182258423805809314353989593196566851589810193127230036463007728578869591962714883630457433343674086908217171330253224689506489523614618526043496974257893116000442887812028782858805377343312520272743736674384593799505028624648623665069086229956485397953903646268254440162142302810756746707631131108470994498783051693558942406157912673829147071943287805226058052952545724774147572838168279632883118500917445351505327314667692793523364056961500801463771528956785497186809905892322872532209948554632534297772242128408037311843799233339651066913321066244904343587472532200802302085011009948769862194899499138206192962981136685357268328278537422172430844595758176765608588377109686790579412579133757047412692203890992150664184496461215875113410992547950933782549400054840188444451820396475471990144109888334511367241988373342333669564969140116095791736736919266183212262492440098143737571342313233354488902875992715919773926766701878772440011291332943213474906967433349598801042865539521685818179520217044550156522620399022528957929612312631072875366108642062423851486226035966992687714368621006220212167048543872502468761833913655436625199705460958245155860685753223353677739859197261707351353937105484215778908358789546953840958402619027743558908050005164543479843806671575175292663344245101688701690937152872843805877024937580100659622398175107704968709999719800513028308304819636707579004513978408658135457782180764647777377026320167794219604670821760269220559745354779964491798414559319776234286045873839621937822024243842781854971661952747943109627194567517848634146706628257820025963320343252914119056420584457951959013315184327403323345017952046708144167778619415828671824294015615268057010213569859041412627760512858767151538204038002042540930736028245010170143638435828090238014879675718935128891447767639103495184746154038101023037122799131372110162110931269896651060679214034871131810697844863629260735243981883498247717078458862524628243174732496931590675604145127507332325600399473269405978900508924738694387721595776510274876899032718184748661243106638886914779577195683435039508763181933677261145548274144088843205801603621134079263207087550605847423955628588794254075414448387239204746970491672212458971094284747864150601207382260500605861273403317998666210401109199615535623790264765594474295398341595820095034935743100593163462340289647062272779410073944807979260608081229989193045796637349700758840674448115103844069465043487811219365152250126106603901990885598226930759499709243794106554440781513009847801804154650505964014728189040955381221201749016194812318319321337938939985304984646892898386433972547750657876971608963824273213530985410849555725484661158233947650479812528823384596665803835183528615932581238461350457580030511879771613882232635593680159862703720339428149058739694581919602671788093479461061218040768300621416837361874896329692209941066129036626202480221525830595123339928708756612108935532595373326327766606059486944763404907641696076290356653880422344932045858781158761748483278097346849364239450816782448048779279145377294973419036125532822154648147906753121945810160684116092739343449181627586263522454006439704471464616314176097496347164247535927685931328336488307325203866629849201036554011454696601678389282664136158891042506716652621009183928804205728297526983507826739342089209836696259986211060641983107242900728683592163131589166833880832707136317890213542330926624808091521288121025890051917452003138317696008471670431196823023090835677864014377761903601435251020995558431427719424556460229088188239114640670141903014704855557547054977944774748922026767291205621055226166491980137364069686209470091117364106303862508057243918973995014223596142064244740004864347656043085063352886655501412606630267080316851107781050783341494890167391833081034564262366497262439152424016332022011506033479608265344623161683056640321082291946732997594758545021206700175014844745719980529551079631391559601065543233170492166486173108445309213956614440082741137124028351638018446061093617466551980982204409558609187913743776799063604637258729375930695073626167870098503567795561883168847521562087281734948700386904846409720567133567336836440536557397401294397222480931644301771467037682079470052773088037787277976119731227004373750837165259820263498406335897713426419465142839172216841569654418268715998855913424331413154348729017285149293683986839836018353949667824490282970088262299405085299764760253655151518363371042197583795125670891937911904419102846313163541407469737803828095392756045364624977574457515588881937858448246590423148082931748642993908076051908567083382889183427231913271062490546204065422543016362960203583800535067726965483812618804026174278454066870854227851251725517079088520757273442234708675991390723200421473861317778470975160601941532766113358979374004276516114148243782295314147892639330774678213188859204808769105686908182509634988433360943152733891600725036670413724132247163160566991713985405649485018923427651874367700537221355585412933977845096903163636885591732348275150007541167544724975852134896974734570010005533603215045784099844633706199129648852977941006352866531082683353726122508337971739344634631259256582534754150896452727748634519087771313889600712183817695268170124637640835133635847430599698449376864958574446552443323009032648263011649227538379292698778200360968907653565253379306838091288386543398678333342430394295927997253769205736279220760158891806573479173383927063881615173687208979257495406238099047559954761883068865764715451457088350191823830901106865994537441841574854482163491596676570940297921967768547301410634202679569502940558247444134668389920008512880356131013994836046328874645436243445285379276690510154333187782017812017352715731772093806461472234320505297481015334292378529300132399343651114629923399861913533155487699618088039613505280728727673072081861181227505815115429912043399063545896325002709226577927594795729003934727752984543368539719155544622135258922922974944982520530352752065431250434515465012221566645589517773684613043817922439528911948579321152401607762717015410052548190807988291292993179293051381510607836491692820242510636593149501384433389150592156167540075634649974799583160781112097675820489796191473312445839425562659189094655040502222852883757898249873432616254163641698557062480937198593724689373243327321715092839039087065913764356700447378495276315336497790750644196114506864852527651114235951466055962637919859686301302952435086964473016323965711845319798977493590911120419250633320137724992744638463300207372175240161977446311736383225639741960205154869031326010994054638222874471997155268543054958058755626172150401165077679843308074747843889473094137896527079993489282755086901940329925986262610108347015647103712516118067535321103586782280897999684751151673482367609606658763794404143018799968668656951936644272953314589602149985114225162836044492446460022310727204618545914499800674947750328801907943018020123664775631441255870541014625021292879480258608395161837931882430887472087359222089493279381770345745925069974375955262743863666260753323991757227492239166654950167170709940814270763455614769052193894784493634353243439154306079314289923779094465811586655713295252349318394758234930057939747981498070207007663707414642267208685417238816318203960453154971432067458930131917993289929122825559576972000207549616541321353866358168925714541774299520395922264688915087033123937587257509724309038043301827641656675915908505269576478580046557075154013954664713786963528984475065135633457985740757631905634212659194667461598294416263162542486137279311612399569948633183538382713348055162508974523204792210213835626761775271806935452135098730167206443441739724473772057000815106127345814022229592402830455917153825448326339486605073747209260091528035119510998840315366511689881358113947016651341887585810500880726555837547788648195786137180606493004475850954123492350134395237436696484116915882866478132619065627431365006054246958284576931512060957568858577544629335090730484468541257428787732920034925950989158361390032637459802026157332996597182179455562301672304226283683596231135338151193262351217543400334774830825554601356127510492960886706568494158854532523398417320783319635913601690420353796378478724317041326041636675217639779965652469082662511281032061590898301599715235779708174748565940717158338838421044246528635003452165956169681198751428908279850521258018552270985988243356379395023301850675657100668919020681128723665682175694194313407257660570407595207600792374780612411629476969783713908446482349547200395713425242645817796293804768534492750086694996705378907328698982186040115117320702232534658836710389270832481102924573560817335747733993898195416866019034418878534715699373613800158161946890015391027465934170729230925994186210348995538874167150020238720088533243545337806881841337477050168213302638924991096153137105377132920292879498624345986456857237780189931110450434357592273765462765544042915814439842617995814423621546214856081638570573739184427864502275635772384037012096653870494087849882019892229792151616587945078858150845973337346095884279519258980880843396659352554665438943239709575362256425802730060566091979402943672255065416338309080266045461624770238796112872066062084025255238535822558187668461939511907287027523287357377850490614368098654006239522663469963746038246569905855096042392561518520562455379401442595141625283063806071362118495287567244508729304346205910207339828361666343555510340125682113274121113285093358900260850485707411242406508188633804983745844290263831566126265623882413810253320628171207708801765458556073106526699293840498422432186702165027552541209686534219952813672606865421395506167719289079387119479716410447479729467968917238061007872168130391710750768485248718258832392076657238971948494762099900378597040660783757787246925425564887742886570050002969757164201591839233285667241222283738670771819082691290930838586839974356345004373543162633582002085181011523449449898086615641907353841227119469819100697392107875239239051074251442097922329080902508942238587675343247524459618967485019005714103404874936094993514044352861082349348570220678236227550247958195913915229722013697063517503927210307305196076590447418463967421444619020514837344169545636021502159622638613145637072956824928430984754204444129065321859167294139878450095429439758377098184885836318516643259707634812281941914873381336425666639528400432045102633066592839247590356386377367644410672870679966403176656339417370081027129216324437561270197150261362463050781986095887864040028752159623342598469400421082579288572763863283199189592002143150581409853227940832827947854141431463142768516469073679471201938552700291821277217272817762088789979821103299502083544927502921463901971291654271924284584794299618449228789994116517372571420259048449462042599892362930526174443561824646927451955120172590247580316649494375340249766328326102065743095512773872090372593495430563707013733193898411050283833617466990764949236104563476106710279761554050264392193717731332923035926508838700439809455437686089099083870103681590267320824085436426077020266274868860640706611494337034071266239742849439755848231712398195883391583677105297870577221064996195659362129489598452038711162766986388626353325245662893951249879642688955295250758314038473661575383651479294454039062847741459148533488996096414180699489826322345467765248683353006019350797251107574931833224601146407170334722283364658019909820489034147296636382174476018934791905701958923856276925751368614174962067006817213429297592698244047277880370584743069016347409929885655839432514959542807100168334705911217148612697528868371612263391958572274042068923966060121299979664158931985272351935529586963710383177249384247498577920142849503197206592341139658086940992066336511645648403238467077596133395576155205855547691918675095506622603369866020785469010423596707317146097587766455276249864057650401931579727242805234135716907445196947872498058447976794877991864192675548824072321101108558207520809529228470102575035916777920264992300940255363348610032819101841692835434826320331831546673119378451656792512663083424649572596124534636917214318088948217866477365390280805316177909412818860789193190715921170497284630984549067071010306977717332622645964328615239153864909260595764081010520719516896060445921858381433228873820036258852818878961927775635143980590440519944710809131988639455727414275727276858744904178996168401010674750131763565238042634208984300284006925001698674036192654571861895492284958162159114188882665347452691188005998985948184332648334440307853300501948061244433731198600502212724988077526069664346146527224695492943018020742574171455952253866828690224223254626945556790901287291261507705054836148046947348088742365711296000623065857716283555238294591336701100416757578923257731393171358664818074321616409733122353453310026224591988217086779351778971476718085011960438358254386833769010791794821255727401578311755665192141298432411650607071146283308336165043084104467073472242330241553374773245581753300713910250937054542802137750305770069965945199715432587153438514871068962305601392543247324334746682656953506077433551876285217079855923304000309368618056498813020879127170350429819224821168544747575014314721205399895123583182955851914076505457902359879323948772390105845778359110756523449514219185808716290622577789335648683888738045821087519200311459038756584242063619794904313174197333416311694001551460890267601359893699032783428273675523047501096586423159844336140139630922152234748619100623932069396026825651853660910444268353814697052717218409563890981265002189782305617627196785350862972449389032354923763125541756895885232706634152684487133664375548966142333219118774738866901745233512335213813209315804485452183105311229542090144094124958577955694333391916986316701428376191190576845493816407794894983069083912684760027032347312713144033064653930561115343884019857852094565272865340750995163476562873620697521735027422829472634417723504933624228683421781331908576082299676183384546857718760557265266955873234804806675503419775028284764012872460460564351224898699472914121737362713834531083912178694823025620966463106257181913887287684471142253881997734973072407026627806179050207590926817425903968622849716102732701723550895449658999627707639517226488721835979574875244105414087088895662864193774297901657310006679611324649443199611803290976958004817610505915312290928405727229333541651156613172328601818213096410038026691578683089435446544228830270359841202869313860766329745152938255685823362971708429509430201476184304184909399471481936879502797024629415065346311170136530837343214872079973805046932392116562251354438945910645140607721004873556067123128480078712068339324745545973320557571088299086784437472062943609776581828992619850738850175868316388081182210876595984981358803622799026679452759528720078024703065780405213933900374411577080014025866892969954153601260769602684750407537745201785506442982186595515357336706832464546592862916073537532150938447736533533714578911612726687550913161854382581456561942275290360311445002080660246044138539742765743120489265309828764742814776421241935110623345952067888266246451506125457455549121124635745846724630033478749597006073961095410213662570785610724896424677508663958731710391862244436540387030498887280519857789301569944692287192841332468490342696339043237846437655678910796634602284126001519425101694222353447710613459151058317283004387472337154307736037285483297347073832807179042550165305994055215753402475188730467315833139237189045212755738742212445266988525153909507606682875277330206704019329204235157043038472189241386836850024365616001368232793902750124347949798743366153665181093962551865302908786033052465450610553090463509086161253507277326716179662218413190677177996663016861624592551297648675998763263350535130259270340569556984119811978746953618458752750441544244430201559137697099374360393354577924479185675508043397808895992115893704441842092165701486759806242058894808402540649293666895399656119245380762317245726160982743645646885716961090813788019900211027826600378486758636433726688761310004968510379314631663704410787435766923969903411032239057877181235498049025662560344036689890951212298581724028742161047425044745132427810476245842302732632838179253782725134774397497897598198894251211387118886896195027374374336658439297109399541016763592931246722623955088474392777800123931820566127134788936662499962871859926113825080591507271078158045786636908010244585264308134281245234424164305514418354163439512120924788754764602931054746999956637276293487656437206776176049527351095363234032413157432047547926985127810316134644029954844554857559092030329918372225030290833631418761343534119582883585804926475068919489950328533410882488445338349254475237619641722235725173554076952705865841302850801065170112474326403724735737680448094123336767359105721697923020954676621812297816383028360640713610277294792055309950529193668736561492438505712388392325786085198252158386241726426758938190173829216685180126260680214971865042808293048070417533975844677395982662662983474844489445906609683350161581619316639152170553062118073014774480971642651136742740669095109819913782722790370560194550538732810838194688418152468618286717119245461242205446609921564397116531796086846719994871718309302645255810504300360957873616553243788849446569845658239608528589879314860700728870054419694443355481850351296199565035038021530116555980573923390780213249095264107990197668349224770006119607347761078575970992555049766452215104375166319472283220999921504743732634742525446195393553587183811523412785244091515147359558759907092291238268030930244497532888782371693569758369493795683186336676023517892509079968703554639086671241212979056942253720361036516050740850826772313846848193432625848843840644197774049889385542861628447897029097467249259105459323698312158366225610078343421571795785213251052549610838905801392121929736319995029489332618525299936610262852492042192626912534052146740638116141155218433263771247975828544506825403915620891236407635221754246558035069641866090040052642207010534789701518390217123896844135500643931140885044142006213203071208885128449204105077136369907944246817763819048114821453518253386942766268067038398072937989075519925791638248778748693700556949208078416000032468777489514172001258720653696561686607894101362347267958613128935576200131189371591030708758115064161730429198353040448007062056893055386006845709189004103145669271389562089291082777851866834100722763032413331899346769416369338829501210176716596516299959677917898388393667527185211902740120182609793357438734607680861220510149885804239214754764138222942373139476888318169340360222694384346963864275976751701709138034430756786118010484590591270367800915275562789683033467435452451549192182333221249921010014968861467210996406301943455051679647716190092793568390413648301887156135724404963232553069307037085779407978197163286990437900864305280367118424463507003955334570744333614004790939960726598879120332941200653518221066081316536100126427961763702964293936977765466752218278821006176914145061523127362783716594836406684264746083913287964304493305264883424097177480426871019286203930401472231108089089799932634713909693228547349120458807408456465353377577108941917431053689076465768859940732168391995893279496509931328620166591575823689841096639024466065732730832555569169070290903680693022933680492046975336349911871719489353699182212227632979664274059551470246307354633857495729289314699627907021320060085715356553532108457350983059492738083023138584468477663350053567910771915945117420589882530842058615126768760871984469245415665042285579693084306443163335381982265106058988475284660763699952192229442874938106992468387523884395121823283938285739250649632815785388715698037217806043347693051601007435433208695466144088831944415307661961681745062411899008782569699142610680449892878712626306299354720286441206537602806654680844249755695646706039676312892754435161475822206577943411472200670226796988001801041547121633101362741339721284549921864765570964376031925294394820324376603945433249365207082017569069022897135370279809996458152275656918122434598691314953273478005203962437113446864738832930010721028593144360701818232970334748580372056455507214628792304208120482125110159067022353471097941443052372158769991912875691051816772375328444074331072356350690374484031678741230045323869753050760375500963263240716794549174988144513247785777943239110616103017256754648592132791043187163824663631497118891638563626996836245912005313489587340375474729615278618539598883216771250807837126770212810212270187383757179766229251956049976455318582356723031360828788793007999977106278753522107615702925996255712947140420867633203402958570362294845073764978430651865700067013990935252269638389428798035798154236586642483397204202853138046662761886592008265237793744882915031086116080380343226719419345552303357910521124572484404648180870090439596582289268724823874831781768687542884637667491453002499262371002021112411077641551658596689807863259591834043781307166179610800840453020503910881627736493145682086664797557427720608060540718247571193283172199662348815692238140816752404883198300643476238563252431203555190922608527033276612354457240706532373401045931471632874531360942330395159519582451100117388533231255717109961369862139002083930530486751565147347599923704316369146505348035578243382655414815364728816801357602929525973464199345376090706350547435377167241764163973225124492565141475562586302356084552838231567931129744636420000025625791409176724665441616181425478199290965677244660355976935581297167124225593170329466843467540669936727409518578477777010259598865447745891711552881244147839594704814905426827062402385524045005945268765988881582334722369930323725189226681209194884039685665616570943149320212550998873770567965864257728977285803913589546444095615222468882493469640055922601021004772014768666061931240491279656044265127522563124898047305174552964021696879217850318971198628654288608348968667718662428268996579919831244473813428828899367853639020639493011293528797663619275273038616875489717230330169512662322206952579550621991329210408449420304463414643764291230134366537363894798953034419761589226497841857024380560060106096440307464299840088285745006938002752307652989601624697622614788101347717544857996156776036588415973286855197870688220668990089549510923532061097791826491481574326607664009958708456923150127881736119712948497582145532768121097812547766776828330692594920667692521846438971872353059472393044012292070415953567757145873791601273108698180679920917220389293386341084830230191973472664428502778073227930379447680546470453193869888698693411256365009186336068437805326277051316810383675811183500419602857486824887189748539299819949838669271118514550318692322976231497877580198217656495596530084831610699895987060345162482391400378551859651251524847390311895078280785511560314672131377644487211552506171211145939393131713207241681375793943126158504854112269799951452644517248729057214022291459965254508394085788181167765754243045062235776020187332234505905605010348439790967148184173724509229190424960636385843139120298871179993444459772455666016800867590278305237416181026725651805664112628512653026512540497578868556106029901316304285863369966833450755014324991375078815008634585953002536268718179895769312647737427998170920598554166210310079534741777251053041304215016152660647807490896787784263357780538499709433751980461745144649737062275889831434869431972242745543601784377117641492360453773368181794307487827327433554157159515915167571143992360444650504543751311986206598800737222394448597173798122993017791000012186379389331460497025613322671463073188461826364208674140387149751254042112979681928660328552604634087366823699990117163946740654220155795656220621027209535547908711536139529130480054953942014374015742959667492224207871839321815930645040224856781232125968630036511997150038351882259055565363989119244860174733529220751787013103792914019634950121583784371041269077634744229625668566410025132200447839305317882035396216429815674441758699266680126518058139366585668338458148566219319384140587026333593946865899996989416009499750737174112267680804214322453593942885145012809071731504108655736832564021672253544933020992280719975443039634954515386094577702953345377886682251358677467332417606038996763123202793233692554212215365540539827122061172554574926115274630587615644245805617762495838697737049660676631952234975193907257426165474408280230858625279471813753403528480820428179449875137333284689742226609858936191685364631516448057466506615757143714488216221146767600061943517846825322873302922080313328839040117597423096772142731684445922137364344516766084936587765906730216444757451189563852632473822940071435914544242035798436661592176096525709217513829026664680897502624887422216636967876476438490105923240174893395166342074298142873972942910600888695851537012900506309506357013706768449308714487758540934293865932346807431859541286497493321938963905746565086791476608201771247667990091197840060186570398931217594362255664339612099542540031187393623356798511698788634868295643909462987770968743197101166235356489427279933379505574770583817747347906104889549020752854869614317824989936636276104795009491532659347142215505442688898195903459716624590755274588327852966047618623272761412138243197448313382874206363709220287425327008504247128843074081094294071881098301118306062469236430029112046500469160132301868983570232324801537258693604342805775399292755816088758735378921787998342478014728169950498711978840752757573377535598266029453384151347820761380696706914354711912058353868680290383192419639188441465435375904583090917183497749167520964285297325570521539314053186815322010465504828728330044174918473797715026336507992376495746751234160994645221847308564506824080913499909169505372800076132395607609144350617801893837203315391057419817281324271628288998351283119516001286864051374802611582417212360733635565382061427402690573119509762322581800807690536183754560702705948655531465100718416670928690870520718078585658820195276067138742942261388633403659761556961509852071502849356781431061682414362244585548196660541904623298384790369597901720737298071143312123472101372997028842445258691056894042859867768448034538300410366589701017094218567603622413782975947245642269751679838451503564872327541222233198739541582931259451614952093613247952925577051915049520911094090430495003333702798444929920057428282625060665091076235547448068805271297142402777480135445777953178414788524785387793759328281239440556491870890359331874576834819432924004993710070924431177950140087409878544192417380313339987569756144951107751597699758899532579370631255327694092268157301336829712777646966988546752366797899890294078448341893924745776785632782030008500096717621490956866144147706380122406129563158277728928877719477069665519549545342492409400730765938784014185257067661714290618945107416897480609524255778422913725584944675154369258795358748302753121651704777147929962495534269493335578604984638319847896294131081236895884688577204452718434323594032125337030201099391951835599121575147386351857508747664725559755160520792908291590819670841990936671551654460251950742572072697426580728035021934401563937458076408019616678309997723647371192177431632276695493841393596306670879954165790297288240539571303288197644543706998026339015381322812712461801367912373470753149745524406953328194073598138075066103824056266514481579097005677277533743556996689474948468366958352304452974491081745531788110964502386520010392419496580490585208133737951583191088573459896479800666126900867309370133162588529325578283911999695351025876228467633906788374212765235402729912136286712918797127263073479172411121384071298768526996433833429319930465004209491991474431309995151291200465235153763896744791804309447288597865493588760678896289886697541225747931090566801493171989380605439368701692734492711311632460529586974521012569950280322757553862007401223467401281634121311350893587043256285690200406207488194489689671074965314261623167915223584906865830379915011212402298326432913048573146285907198573919304229766183241621740197396448768010622625339201934770321188164672932320797071969414553672756282011338514433152337968423624828026004312190422649008716005018237970499102906925811526908926650549755647364950389039923918671105555685748665633466955289102189466414469142376360042795670317031111811291639957351139336375414337359381492403145222645772633405393780574650312422770650181491508038509370420503110168458419122932242053276984732611686787840167267374184088199919010735040023283120942419007389167608045700841027188452533550221724917409651014589531874569460803065707154515148985335597077320971249048590395572329127060410191602460496898324605033599821956744398817683920218586423312101216124713613114379539750205974264496061050094671365579885369089532310589147839142425520321780687730140549477051663028303608949538607013102104266428069775525945905389398438293022915241418518422467851143719340911651304331644342261543145570972314816672671172129535828963024754555078584289999937274157928918108896932059919341842806549011619573959938179225601540139131937871069433193691024185023807324587702552627600628267112296392680599275889457569425412345892051757602418118011989627365861003162958084018582509774464660681390210528260356174426564803783291813637095220342321030156110328705692346924188956615820523798615781717905982734121531245390333810173486863508345384464000644480364244354724164683341600339936786578220846975119489434049422694762833932664044070017861135057209230575108625745375850332546350722696406293790786801114132754314074031297706086850008115387960447271685455533704283063363302158216954051443892475214000398261742510168649359195232380927602524220754643350406471648839647503699696059444332125477768497497967591930731657932873356174073407117625324802485979774458417180563371271961025703920653201622913842564449870617403058239747843799204024116690625099318982543003366819592502479673743959721170875223696516316490881594920101261273561381293455506300578967744063901376802249818033740658621299839641012672769220586452605415103517639817360138971430908159702274680307068783487564356910338412331346010020015986899556009849325912086907372111863484921872367443150586012915377019567209820873415345092655683094197016394472620430667302129793901617683892512264825113352851853070019789982883735831073399846236647247045729078408023336129787809068287767957419219856034562861373556905003876879508815534830620936831465693267238427029721955770883462745963187231622611499847640045858726739586516014681982992982968071964976508083101496847987942050932351530669760264217706183829567200716384446532462876452140102714788896663563964411417265054423820494080592475820093370189419445439451021658899922509155223630733940702981446221975605727595768889023917929641082382863259341626688574493301204588776177852831498852961423173655816401920165508147583854440104144636046776997238330463698478051181661306568589920921882115598360459077511004482686829964626832335344775981328787600500163735997612783669550273493356017707979280087965727277259477407591670052208849528764345939644132421865411707392252783650439417045925617668828309980189118415207663136987358616230650343501992253939038342700426639126593211435927249668446399146324626951356994103272186832619647046586435013481417291366833990998455109612934343109802756425911644424831635927881214943263548708966313189980683822764371680105087113454064921249589102169028463378595425698694496441358407700459061536948845789969880833263321366271196154974941987989352482851522124865243686447539670153441143785413330386776666031459129831022311307840023235988098223191486020103618028316544705926110279834419622718433856643421138920145250618709290101827990516730125188275024253015684158807683831192040778149797605711405120946412745140254710718347012635690635478741346154675598233553005620969484164674863882274194517980713069351811384802068919451358326689325150474793128164191799595040521845348560956679519113186995752878935800891982037659751362358404790173371031531520126888645172958117705027230489244550127457770729835620260369071565568288518449487460645589145588215914397970345073980107685018208138741596405295820195487094582609879458898572953173187420888332132514617678302043441980238042414100430549862610109623566278339662975045624025381964344486361173599689388060739286879752709488541556590544813460970480737476604441224851055318447151943484762015255583305560356780499003494663648015408517625379651976447019238952085505476484997834937667020767934386910087444660209416313540529147631858085201357313163473452283248081491440041257059025062925230619148521938415275160791880759935843554586182895432930604309923758249774217886124717602048392694612560710337184576406372966339245941145236793433501163811043407041517342096058398286134828010306261045286854844469031138111694151632153641301846234313732333687545919728660190448186997427654362935504562496385233047015006361382104227809621958624865604681976287390337322802180702954481834044408127882101721108015654501469296365505143517990370208801690063643041456085712867561839955810662346088590506352915873397750411380778906265225608357328448342299240384904474910107256503089684403561571811047959627015699465466097632915310095638640276041362375959542965939989061956305510367779159401679640070319445381519365027811002531334807258932340005084447587154060427867766699207942228884406420111129548636119692070458686515893426019788106267847984186483390249566469707801537513437835201735971143900072538040900026811131490280870474683449757641179356000449990654377842001390999558632174652180349405339261185072027976749235326812391827644845730374567829255918076702085826975177907928201155830736331254386543235232970511851903683706068135075958002211449457851073344498767134108267059185363982220841673528531751216390458407386349693988996177927642553360334999492788562943229064539216124690805571583888543323686732583323981102769852454295091850921959702428536209633943594840756890864886182559652125386140434949763574837910892249403129712141648579312413366786623605604768713674253222868799647392941626447386847529163282344398929853468510787419434142347295188204693816113539784642117951849608760455550835321450577388643551982932509688990895333372204227078412604513245347400568669600921043443266260143055884086397881712071916889662828569121376055679063175504663673026078479189433724625031466419523110899389872330761287767610092518077241130823035198856701024099304436898327884939988730035393936753473173804657362892331717392319424706807420366758507563611284574617947047489524623573229725228496151944231460592744197983229215548143338601788185759627101063955511414918416733215108649941573003074961892014961075719239216388246298038637372187358261058814653655710467134930014710846428235905400771675320532042704726903911726402314212326115744444551576297575399013882879732332886846086540270469279793668848274018474040310360339819651090882960608912922787043441885612409166982072670281138546120342309062756691697381018590878572026493189584004064974930816193410410120504922362357258639559465976206143873589498527711194051189253827801396873559204641950298673647045169133248572235744287843805297183387762669007384436122297539985669187539532458473766701850110929662262077942638638623231709586935167725534330096599224403169869669370985056656079085491982222677375135606795150735099110080037351875298324410925847515316325330628670212855541012912276812199930569847192830171872511158138848690914683515049320553916225735821062969811457156759271739707208068665451187807775711523303948508173083322171960560440541117052735236977144404513525394174995760319274753412665335465672883581700997444215390396813981198940022037937755239186925807282564449593403221090828728129565612550727700492893504672265061565006144463441156281304039494470152617504595338616007735736001441459574338193408547414287343719632849341012458288255478532472642630177578433530460074640903503387757810176814685626783545998778145655329070411873312855677218724431294614710455532225486201221586283565074563328511068969996720783622957116844541057764335545431665467362569744146098098523215650273023133426548061384408085332965948324979581336345318402802205337028140481702147233431226436643242740744099092497722303464692642169911769812625859927836226227641691986322185835800480448812057423286348772026552668207644285361054545725819599324892644786736930126485038094057753958223886743426558035965621943433143156957054503621645538644514725335636959927734360673397162094656448476217795742862176886270124442884605991227446745708376754283001415846124479026432845073932812360387662054985308734464254808865187775633012292365839126551065459630078837574749850234998288561777233272745576350857286944130879147374434173548818298883500591191414454741411187031966356816060044841580163770436196649159249775322038035512294579307365807202343638671358631499314781499399958838520808930495999826685314054009321659785085217525410357526065663214766916712422078138751163981580059859299567010467667800924046138335733359215119475310252174602259195328720729622632138937787396474252009834797508762191823311169116875861768365246559609033890413948521465122795564916355742152490107021357270403221670098592971339424152923812588349668947134970610211725972850657501291279975610535465568908602010219369722264023662452638780886364138547123666858245276272654196220380743794104272255587559767035786074319700228443611909006798743397884478510043848768659799428892546829417577911923715512185141964921734091720793288657426559076695580955037697916678642371583568101289306219458607114892641660734256532215373388618772436990940378127031846592294034797613215805181093265374088051785245345840683561352110137257087126956550847907136330198472735519604711716573918633278660399763305945607901376748985775938907048709840175784274763453168432935985878322741676977451051437802123717877109298998592408828456017395647071673345320014733879011167667073851288828139026606418727054180906422491189161738694196015398095978169615331362084904378925347494654730026268352246695103615696287254891497414449181942997443352638675087544241262230276807073229013954132248819404722556769796847339598430172235737193555209176761326411849310894392406463517318421698268797863744454549942579809925526943084478150539473479018374147264036772719891434705327868667039885766107806846075097935367586137887099497940814590436025298218953042482620580926130675948773835145206845529162267202325994143677883832479912929838597733598916786261193859725397537714698959651858541267874573547718327589830266871892620322297974956864319803030129393531178227589084174768784521576154654533301716205617404672925324366921548901232225125028977106531711201636176884839578455123625095185336326575017271383214375038751618241598916783378691333410760701566754462573294957854974878526318508292081213235138903430896441731994709142861179358831516470714854904467511828048671712515310401590095382351786982825405761762110953053893817294575899338851154284336451606358857037191958686700100871719617208501208768426148561046275173525246797013172669450886098662624953775658469113603319732278761274587584696499408192769650878458422063420777367300901068138883881973389184416888989074968460047219426575338957590867973710376505408659425537677284415092686562790850563290278777397667198902929409702602423080270305950821100657321091813100782099629361822832089661218263245540046505710139501245188610692138124918386127538045620677312204438016431163589077617762761855233147791668008704802068322756146952987106577478819894662514473113258818266331901222463452461373125329148966064990338251126829634896283994475141874648108493537753221143909611069926328880889494539050224323021762340766310746838913318618106563096039286428227998060323762639447748619093918847731910428269903077313188112438300077483127774550256836804976238529507691368369904414037550437366205767330077529680160376285588099210194322273991692599003460516843057473727797695205239091310028881211522313619002156605680606098087272183906585603329354181534867498352686477055589656499284177559445581145527889926667270011101380993382068632628392231233162960973011459014807576428648639543433363421978449771834619109903732831306852032030505308626345875665515463640941697904953880046285427343468097059646388805578791386710863251162031298150402581178555982321344647531051883031958708370289313428612346054842914737015882021310489992346397019183323483571326938069439142830122359716726009760928395182776127728139621777506092004752942091488658018003404274734538787791909657384422289436872279277531402877078758575327932989016436918214960147819735327620955057829653737310498941856978866521505886568194719927833644141570817042982247011528503773893746802589159245430892821249584187771884699929475373032746526204566162428339912004425883003665228769236974729021201327704906744670486426060437918899368033858611860157603072664247257142374020098417218260005962282438349637924478133322846132109953389764985206663283278804552703104806417877438492415149615713624751907881224551934043157591226037312816290711857876150475012659303033783371747553822148221989637809993141788672166014855222580766141943090016709779759733437479093274385023645954317791168753032712177588676138300308266392644143999378077612294405062799798208975869185073937446815471918060230711160583401004778365338557336477658614768086477988384097611306917829119960598800130479798117323202957176909069561690235736911992034258868494411365411821023209095439942180528897311837018961712071158460177384724476461599075295842700638331680932983225392122107226524835108787401852374545117447316422108644590704821449244385758351139866190511321803090108614143534795427106265637131937013247734951963474283993872886423609707915396846305479890028953363863437961369463571073511112109142543678925662409143884954898965027874644513448851932058854035535528356692609869962685600711076869795575275649915902076935973499870125637051056601512330414061081535664384032279989995907834702799628038459421500968956493459983031717382583966668426708199779207463007264957111443732755635804880643916754320949021544538150253496880173008506560119401459570986753858614034000655980179783719318104190895856497276101019817247359187923791797142367492735504134384384549052522167601271203939861855413305195639942735866808699343948093599778080364350584696674125761442352929421901432015107812091688313497584893474882022690116613488688722431087569851880997367389719780259655858308213358677834298079711354078508478578855987209621229523316717489688424383938841424342032145592936275981596549595583671281654437464004350950440072224004716696177818952438519443056419483935038494473893718502598750121331188390600410354221395791238073908394844444911509149670242087944875373410022813704082277102526411651377023331402454441184729599868426301487300956767992175706878762796136134695269971456940243181542654332354524285451119148044746946746640107939121048371519033848093546413619535460954802543509800186148071402062243649188295059403774223666920012654170952269015493893599729563030985504382164421996837265790894296424912596889705142693712315850950318261697898313399709688247743226979649991040990668794904781019971681929347406616566983498444474922493306340130713910934329747870559075000978205638293967285235953291463434524549579370428927369762184190020609147857456046146436724160658968281689686942071883438548386539004444028045424106922084224717450169980937875481010456633049478263283096469829742669532443531448846229542007121076195080982608591605873659778346401038644861216088976835841033222511401219424591523472663471916655169077847709391871667865145734955962066252671154359096518206503269222846787653967255480333288096146644438777925886526975899477673558957804264999335008762168098461413093283354440584585405309468577600896599985657992089384215825620842407890501963734036383239737570008350961082575935605599911073615259313839771447344489266330973910775254961479299626020717328073296663113077791379596504517482107504510453769664585032487162946193169785220909169423581265053172461804741236790573504959839969578540568963030820079355654741092559815097944543461779140257776161031473301864862362432911514990793562270837777521567296984506796094594313138041068765686297755762857990793704491771834297270720341959694716299394508627454373375024911405113035701794675435751698129689334682869033300579032224122332495420944254368435988475777056133168363728106072920764629887535683505541175803657893438111643832403154834153915879646563830512348541569398666507895126339626940738056246199023652367113869710575637321758140442731549458611308547042476653434879100590018171517182141883752391750759230119118485187925215445549706274559535273355212447239645597115053755796727616648143709158650006465670954034041758458721560645766630889546562862825222417762827099244085585121104482033016027379446427607835887762800935250526797954518647258467525649809470462739354437528558202833844567852109673722154067815729073588664487133761956927768297675948129116527774760991964351288560633500732765481297973569739695107862939453677005761208337241239719732422257764155122175888404134868423337338118559118288111206243277589323819448391368000826521762823885619331022984124316686055850731179480035074167531783817761893383721595382427641026605174769034850202842556360788691961976451330912329217211543930938239772281131177351238478334219860067364997940565516558092386914588840381176925442038243210726485172561888006206781562322638152331327655250212965278991120408329872128946571290487734414774146810765255069585236158326119040805685718044452847292037172447786927092225374895932154832932979770588572156734287044102505084426023499053883559765636446808675904718744685373424876818862240394522609193339537348614620690487793025079010595483486503216354025157093824114364084801620018274839234124937814164144626694703048922449241670184527197065183257071546890765331681026584846951716546148509611157081697181303825600932207883905041818067399241607957497853110408056654459998791564041203228715756954573450464898753280781057932608593473311000960610957876112869311900720795722918970329225530317421648504486178420530252645289277417975405345887979701899241516885190592912352442046623192150916892056206880211801039603906977387914031212679449271037810739114493591148610782069103829596997720817760391421793378970033378403887667911519341781332186131439569717597935483283231337452696787100980983701521279439364859493794978883764228595801169406158869218954986697630606749458588088505886048989244847643701165796074650844674560085165848180069080591562150174994911744767825774583528955323654685512079767073336034546898860164841349418814890938025530296815896679128249786526277171966783841877529151579190869131783083786048110898358525275012599856289632321047737119883588733703991639992531256774740910736383990111121895212336227234132611575604803738086285361268560144885983905662215693512517000159452875042790672421835946176178372383575209229104760744825041931836343303499357250042050650559473609652054627704887547140035197622237723826615266162866569351591671392704325063166370241735682398042501845498195175457320643913138903369248496353250390258285525975857042845293386583901903546831170562730095117251017346365319115799161407960771767481209850996748622007601165067649603162862704086928938248299873291150329982356188344541369032938059086699237902661645962202736531333794059514070338309694615726469955207388313712025989567742484558181930744460080962285759394301335433266765741846013531967509411238905371650022847139336376302656210512407956807367658051103497108014845943079358224764147191235998428206106222502277512318325853010640943157690485992360410153758005687664592312112046936701314573225904144831376886779239955928244828853818203146165971653623284191568152833063106690437028956459049306762420322648083588461233738319346711502326978485548561586147139476346934288878527934174198353116082648614588582842521038731388078876206547098058215326265547288408926484826557226458410835889127440767225390567902982501593957261404588513028948047753139230502804534220185365662338348487832628704567150068169814554096887389302403378794047085131078898248619054084453332141891531448435067723419857598224775652363797893272108587490120235370010404086270696642457757712454138242703836606731407665571241092185521258737002535532560900798930558146947308131368713162772554533870756424065037446798345214719585443096053945219769521572218124480088794342311812275202022876498934610402098337474226848822547452855304520154304051097453471023627654010751231809607180208573873119588883021868384033258120127986740858882305419386736226083536598404925997524866620779740946089610502596405596007676366672848928514385168810728672431084781370871566061709589645054195847413645139753203429996623478447182174078999855948897233834610506704632069958989869809417850583129754637454691254533606659188697291200308884452812487650138014209984327891800251070398405676142598805499192290149825549907633989581145817656514706957178803762563500661473112738185972362135811822516239316132966437800438874960258151037386943534111069710604180565558012425342337930394395006755814890782335679549564088068046897447620482553278981577888934179412045208683495804981294013483573203129240989984362326141402246858145603063671815322152973333881506012978700786045352757515454302032231452368958596294240379360747925321053449900186167146349569802891588298331541872123886804645582256664724056189019597715356456500179388032591450412960659977155196300615623121955475954040590616436419747695892912829684527894498473996701731458630836721588315711902907740267202736615374794048919031671077750474138461610952534294691662914389178272916786030291110621347609355718991491292553303126845511991838343528386418560426231035765428542731369325619682574024566857467171890261417179238460568574095772268139016219986472835112971345418284662207434010427537622838887842533143861447554713957074106574037176045722462927740526692232017574067502705757094942636336838491226334077867991482828825077570689028478877631920033172303637058182641385850144413140819295361550367724687905640002507996798385498353333701795767299314886101138160353638382867775704074493227366620793159581415344140320617482172858256099398840358796473188802742461750120704729400264825468138972038275068264433928874871616848442357888029128447422740225633048642231374688680840288450566295436359971819320458157432874412309698184546665255100525458209559403792261038727790763879991547022783210230266744892098959631772378224036155778827704452678076478762124251775117081539710452442768609649200362316383575269939502189429065650463883641659680190688944704610348904834240573177375720827501422326983240962441474197727955335712783284257612685458995864499425768478305701821316195503423297853275578373752940954563054942779685116810377086303209960022899985959454233775229901633730093501974600426801880026377071118041075192182650050897124952134462374442410641452874486606857987421373693695003287056014696731209416661803813470932708591940378958385598133454913089358768920348287683306638904959892178005924554461108552330467462789950622159194868542890378999870627709277919166641753772086409196858456007623805639062578596534775170161974563591243071516486380077755049834500618149925392663777196298381308815278798303210460027376773466698020402092933093646011469925983241998039671324524614696108403675626875156932089704799353610213971949415314154967259450634678313390207722737009168623375737012675871632452965037171261057409647280344062037799758128309576518169117617249006864823845236845812154466592045497118635017211271445400989920297732108802292309533015047306001992431620255647554860213696007834947036215014768450465106042443414681384172561464972234973964400415014140836732350571680412406194988126573094649071397606499606049060249520005027667866951586044284419513438376920551269983650913398216161993162481869148179199239890734153726674916519201752089281579935876499910259393139449123985719792303524145256354691557803183671094335594946114449005871256531221651121071279865350950341428627754584423469093189586455827553308515416822242594369568999415604059337812231778346429124321796867487503557394383373694637311616554148262838374248515085430908154539885714754349463198571860672050718130771101241235577169785946873629429527171419618877650469244130655694612866839147700797996775389328765425901696031152102322964776241144109709729359949777127904912524164690669030537846798069373115344500474763175484819660355020604316017413343649371572023952169464154118870930506170959437171435950378129990093077385437404232811054746724467167354416118595829038695888405206250593856177884602410253232316703019204891587073426024622210212661111439320521364991237495884494859172747351472485873120909664461555899910128141649081825074310125398787749236703183640867819993135928858122539164846773096811500991097188239182714105805205980541656554524655591381366475689260641837069936116771099547643295853220891657948194185150980853429159992117938872848528878504369902930999231686107651673937830134833716944070813309664634382080102981808908979773954589867930609025066726789518030410664122504276070186378095666069179172992367267040122080400244945780465253799449558912561657065478806774500215022807253970755923794797175262380608343441142285731193166414247191296843300063094645072388123575438051505730725095365169912735932219185617725447444081490923366717437195599588614543409991646239399421112762899440205225838553916383956590191424692963500632511551626985936012774132149248704210759746843928314747558979449194678932369908795422000588815734977775651783132160753220458680605187349514790287955286675997682545710769852946323816545319651753521527242910924064602769287268646699412964074011809678982745570883965334578273928384439848939624895442199639749679704725881087072366687877350738518046364583882139488226845897570207746903370631448540923479222030434396449632587115870534040197555833868598918360776739114619718801469787068017622814782744912422419706721403828758854317252244933193969302098459747775021565345472564037367662791233072507358261735970105089478959537395814658274138700766394113409829781410379513838958334910423723551158434953815934567822099003321999556119120586018591275351416007506141869597994104637454440225837123707731647514540302934951692305506297020382204580230454276151939981672391869639198653455397765725613959484055447582682963400173747552922911953893218077344896536514994721986932245883198340757918733053021474868043443646465840080081114429094427711234305963491951359494254624496357444173854987317546301307179690201206914488036862143882583581614558753372324424684668077497901211550308862350355233116772443506987435120013559984275866554319074554339912321877200672656681528840237519820689754547597493314619122043385678444829247660810705762235856449765852437372120479891486139442539075634164749038964783685496547242647468420825494488760368078864159543860477189879245735724640732075654787034886441181225972659936335514266199205156592057235840409299589189782118587981694247883264890455001751235907207876402869259147382804934005771781475450432071436056469429901004110606242133397079994751137664960507951583122849605977301726804499118402910992187791022823780578577199131694835926549330956001816559112273893521172118042893057519781333934175561099749862762155058994167807381898420121377104945417476338464746781891180264646924511446456528212328560358183177564810095690738380009663953441553252754034495032258142701250503847775865332323597395221799114726333234579176305956069178281441031703563724212819638650545601174628062948056972758690729169921405414422742157100069191666138962141043206150881920490439128442341099392086578974435830906623940936645651184092090412286912954114962943194053636615243618659013476405573200783795837075976442960884377538860294902874510375911770512274334605411094577488760444683480562332172243075770692448233689582264092600477903664184933913125252102131072934219570766078075978861122785085893347990160408206823942280793502320777756817426200953028454206328690678644947130117881286691526827233328987170466395710433425335280340153911108442361672543294865806358694753271841783598615258918373123819920486164248763713177935417166476390828911735602059413286785182635947726061509899607153342669112666106229573330117829107796763582350927040466124184803607005166489697281923419629681773680178577503646019899595101998072490854481522368904096124584830888682629495615523439584288787484092989238773430501601872592803423204423084758771838555221940511793095049506201613237932372556160810211420460109352025444255574251588448095217179044849371861297674186568679585204312938051894366495148260923410558800545599265005996755920372861218775374337337903159522969575338544909390725751663488851171086619272929909097136822408125571791222738258896220912571548083253787476128003355969363121946283472503507537294315565070283817233059868189044481339266685990203690871433696471704460386315657496179083061639661492059793792097710154138045836076350206426368795466460718395741946869124238931973481641057990004028947883560371310589906998464931156015136861066064624377584187201582452845215565460493546406212029477186411360119299746609863233557587514693322162795762435930997183734821602572297702422101633788786020465404362227655739256312036035355004098600861633949608671285548536441203237131186659940815232473087114443742089049406661657874507758069675491047461063732624271131681722076002342168148608234544618988361233383218662577687743059837157663362741358341176223416272410552690350200411878491536639357625857766227868873484040929078855439655216150153160868831411951157904392286043877354593821564557469667828540231281869066989438915648302109556292912577679818162413507871298615923939545166766571163271562906423765797792770469723226813012384560584169181877021717787911310344925763304394323098780634217731189915245545571651864685121640621559440964790588521612394084045816934927214511999605377411632259089268385501199430217189664194660963053720294912521678211882161540781122508253649887139679629409686261091636659254716759622008881260395304965446778516386084379893164627472229403265515245813272511485770314864906991515248287747404738018396286870041204517116191169577059217966145496735772040827378945175278763447330971009675213902783283696010665438518111287417785369331975633799380832207026550037803335943692028130046249875559319316022775071389896511934827509357330418416698381265235067032991710511580383355745599348642669189228356220962930262551108152205463780819783823190044638862067049086805799357935428554280047593355423833258159782853595262039895997423344089300358566126248420570041839499428909861025707661510882110636739360789296719291269569608829104684117380649216989479192372878320954141879442568963366032181721009176128282480252215902828020946140120842388356049282541039451192180912389958167484811721295512792445652836271894932613375295122800009109881739799164662699984615831404080103024698099631291156318488810489559910719222448996851611723436294696240670764400979167751133744139040544587990217095081174913221515137844932488833915652437409342824966086324205860258870795158534398421469663340829759466151442063608302657156276718605806868744553738090628461554736703547986450433166953376489056070423932167170868156863510992987738183841042772525159870835449633084175831132106353102554774014164766639522084004014996592326751536282850245205676055659776812167680786414868361523481601966798210341148164248692006602696787548540832674645059619547655543854914925494493457558624069295865523473241829155179688203368350573729796367101593689214395086494239391764426044820056422044708754384998788880991754282028181755359729313333639180805189237532767317855892744936600115490448892465545291208618161087776638021253847891462851830187756986963092375868203773292849765856166279449946388526007308177598227184717732604094117104388851670656802286684706332645899794573862338205850657604953078248777057586438533015245935251913857281224370904818027225331548044773075482368381940003310675837541540993783521787012464453113634104941985560974802791607423184937568524583886085274267764852530168873536622165469318712119789812420504484971121130751064798736487553739612160714508048909546097816630986090016020325227740435422335900944586519526278726953840031828657335089456032793765673394477096612213928372409787132999420584343470979108996840549391357389711962683146482787359820215115016123754396566300326503964763622546242081159656396660672584436966945384089693176828906803190437887870164828488146649056326429693308392793338740567741956442631839109222617976067307605904025278749300032391934656798045033491945436469274171715184169027584271396925091615982885523322406247375922068693949539001847255638535902384780468373362469545122678031486415472248511182138327232469304550167579260324437982822013598311776837075674916829691572675053749514199905374689470449373224074059444184404899275295904079053628311571694646180871092113022905046198885711845184362208955132403212633556583769456940352921156165970283163522557719124670777138135267746282079876944285639442439611325663118836374853480718832537738863026916885730919434428775187585480290102465319766454733681375179978576934804889667197883009111679413950879276108635079268431369708117961282237391851650037855684367827379465590594166742403867220565200103830434837827253502254936011461799713963963358062626119266918920655412483788947057056106803449033135257969954010734804132686585869711600811315504993159676788170349767761466307237370809630574304192091960913865861019567727194538366015468410959636943340897578626629959152230725001648296109657690300160417691252310794694483156672965859553370057342354198130733366438595262727778352768147147486800914981147458784293287512984978441929255201964371532705871457149425579463428489016064930931046994062278032259891119619962546793586429311582276880016960770550318009579756515697445104875952727403186444770245048143416803579878006281750280563116360954294789038363138871757934337058103206346002863744604086257282724157563869848096291796746916410952519938788747515775549239820725284417477237597864344435474123984907327203776226196392632903220902940653885796647355543928619711547909890703724907644803206853757465723117361619043365961635821892966852434505844967710962846629043229083773442832071052684327423848363080685600272613404313551312989143345210369127336800851631747292977525532412963675441742159104630145807974624050565979028210382698903506227346484021294540380929677991385173783516415541798319800599757182177010121832210886933386615799446633372460218030990335233658205426259721923564961028832208243955219292538334900993231572491594370570661970149251496434690448004739484208244707951473990918715176119925020772143094032612073435113433292290271248558393926643146776763912153611768302198881963623712206260271063036373829268013567070163911609801821288935671941384534243772296328384842941260460885182658040655543358238766295696510504712003217809441614052168173884722094962821046875418141220260092740527865251934783447626829598462043612811253124218084021638881669292078426793057864598763476278536189659865568900536524568662748620772679021475506097022368787314438677062943832645371263172620932804705702882870804125446413941368754322357276781952644473235722124200973746094186366315683880330979290881751648222731795062908268928621915099431988044829627087829940381506923044567396421538979845432453653314398719519015019801640461647736818958306770954881845052032238951843308147268239383151928950352204348863750182361621060428338423898426934940918599827067556401033425923109324611103119684401106409864360957816957196818938812673466993090006737677815498619116410245134232431635229545982930170868073515437059047619005956672339944308774927151744562981246271902654785927011360115884386264485557623429396720469245617709352570869301075959748739743778264907910032057294751028060395936479785604845032667337126164266154001928496699946886703136614008650731031563171048257480862801187505083477559082611575122423413685262110349183722578312223579558949689289614057055687417370538740523073701545197974298067755183724524009554297251763799579202357653956178736720193951416861622146417855042985889169476594438663661742918645561265076025218720269181460046065424888009389821615933300255398614972395440007393710994496953365132381720641579176558148418067424894074689380749528827637264278356908116406555592613869042731950583045017300308235628699971200127280767351279468543383217873546300302872875632511296589544719691061153694826916687389336958303201163401150756766325582303506805045834291821370752393611158725954629048296417142683379741286420128441182761091929021421331078864745296460576903327983305504682829965029839485970953752007064015628760705655020005346907085669923435719600178316027464747402490133582816447169250221072854293621551859937553106047198940710789742801330230723911318924834198685498188562058890111008735958882756201895606358710319856412387058570450543176028377449000788872746121453729932697781529162473044198296683853401670899418429995791945844743114755316035632768497564858663493583782367275343707372938648854975647153579264341778153176274668038009233774158114666060999133909135241915898651699370491327080901710332116196789073648218853343781076908866658036283124370498523600570854877267653299600877479116055656696684914525584924161733773491989154025830123677289394810063437860879388131585602454550659543816755328634632506500418817677040046950813495045303931030321131318801662554145365851831982931784564494393964156293539921318397313247590811895184160062908962985766618632080740421028206300872475187573844365665183321327975552687527690961758839394721050071435318892078813193947957772951917629116897845820201988261298236151926098815546927537397345850848693934717140922419539742268333894227357645238441500557917367463076129361987502348383665856699389480774981992889740710198213895957366692765000313410136079620475960679755479513888371354845924996377222831036024772090608218735942835521164637968188425505961962422899933122574983374896330427140872106461145885384882366085822592544711616221871398415743686831890752331436072998249827641685843159111082486766183387795069121574136564553606529041123862511825994280801161872758200070761196273041677462032118073944798035855380941209137191920609697956973519107933699437910088031834737352580601147331943425972595760043762244487727805053965865186034315699766937733893389523644657574981456918159615671034079301362608134795913843528045951248318102129963934228147969609326039120930800169824869949068446725394468951444118796977617128918790836116491282697608706381025722041607786030934721640005442193997076468294236236730574749529108636890479410944875508594834218425676242714285357443014401400047129172917273733217953166967149545115257083134909107704081097012125203213840230367120722641761241861423565948915841883128555931628408769569423828538990285535456807079100817773758588044790029932692744542456476988453970002880033608506301563719414859495749909676525615818630830402349295542548721991764888764646749119800577393155024409981221094984411986398825800150715398182928123865974712294275134663085218572732592625386606092830716676263561541379001410592935341565609598914488816620138460244973282795693492529643727621629574239237175348964912090185347306857376748119983557449663163975568726013692861491629753362269664773750115722625223569494834302293781059672699796791845733315119645447956812084051965141558626180520594353205855808090537697655833297392339387533258005049296826054019985787570001880102689305145940092130622588637243452811612208453097429202142438065556409093818762624657680851672202492491245831212878047013706474108910849256926725259844465424361744392783079682962600185447275305895385124280198549000794217945485842355076212630951272479286531145546710658342181441153395629822858574426930554861810243473065724259935046269654634881327148631783888965074404578573167073302633970326254475741995096191642386055390024354618207573989242016961133646300579464839491271047854157354836023061331045013880690602640524784020176669238801095904841685354151818375042812879794955142484377168337632384690428352037549394626420048739275441759800629090372483132514197195467280890587091451147979781498395788788148223345527876764331599976100350917626337402659559211128676559059989637922952547617533627173023691810586882696993991815564885818569696045060686962867808975836727514963747236066230685157447142821550179608279589456600840049734916197982177705831478554993698296302952380077175011574367193063111549234907723109547078931909397387646201314921330730287194420425002093566252739017617291377278389627281588659991505114073458854371517631846846740311058264371660018237954473102498682809782920996023631132059834198709129977848069119732080206643175352028002505476442026471717277122416002296544433192702644897150220221099985421135862535086091790186142149942040412633691575712743275922513122273260209806680706894526831145424798230558029757081411137672921604686655988919885367088226652400233388526484613702558524725767796240218852246327714232478785429981165416387878484491213151865009067424818911908354971283377587096249828989253754626261888465030795730723178063750765283303495857260558196886355819036112266489536268728812774757247098417376456312254515908545812166818513911227220810356632788927604304676583921417796992090882988419853268093088277347337915359306946990485600114783252769667639954820220921139530110602552551861568701417685266789906183328626733727428786778258704456772784031111737024372122931460048735284448054721690635866720325433766894060609865307044144160625241135810477556070302033560187520433220706920499987667354627604725857398388772687368137305216812396230169286665569634085725063145195347512891473623610550841558818572692535476380633615950249739820369938998153137738974567619240267524187063603411839017278152185081814168537912289425052504662367073227879443889668895072095227553235666155694444395377699749663043516170485990387541228726312084667932720200031649829404748000610125353617481688618458140923142297693900296039806778312184174139954762055047344768296780396045420126876439359763802806531099858155155088627815410086104436007870556558998067889973437339102589851067629100632394594313721544019779664096431369607204868985036925475754204559454083919900460336928678012908905126325185607056064606082530782746571863408259932636394100897477666978723738247983803583491079315701080058424595135525989091074110197061278247034516280173934069140776081539153025201692306796020224144013597372859706168129119575395007993775590983178263471196219350866585775409490303652784326556958275307673582156337916677712869808910792764324880542839589179009838579803855786649680513693058887271852627247372245433466983742615407524134642855571452686772924216924714078205210701155287106510484943839087282801302690430226931046205455958603155091972495095591473919174629291791462027058524590712265674792714042669835075367198270612398214628238722851725543063128707223771019178917988019651726956233707004655176720757757827924737588783750195440491945128462589582213942808653223101678862862196872006262221230717183144972923680390223596475668416172155266998823337735284761300678463738486859510175406941847784294597429597932754070807918845715577998231784579979335527880818756742506065324784181916240494580497561841880048765003558160258251120278815612758552974624343043936435901551029329841692495026367043140434872440211680399438153501197049034693812442281150684103318876795253995327779283075932692551982635600210688530168274202432438162472550599894070394156671217923623624254626266093160865988336714517919255452986261424673580485376418440644948075606789563433943241665855631226830935853635244105229350385608629812542902054162592980718363190399690907839895416372566096235276556449945247034018946072082252926510413715260249198324984090841230666499353041299050433109505800205806323705431373048522528364771885805036984749764093700208457191545986153510009885685020900379091726045175429131407648889438548091970892714209609313231128361886248479726817614440541085816910683642417096512722430526633480621864482367950490093550111199861579205199465927843161634972811620344376794734114871939137633553730464120831075219022771983913229841361914619824211804564332519602110358949695145292106270130154224493307706797711563152364791305395863123554216830855429506121319316178062131325225246066363671039727311646240173455448595817418649296007606686368494123411243571390713564356648041292332696701115757617710373608600561088440291787818969702314649891134654690954667160168326994033065917639627444937362609245838272771044243264458345912269144359217553848880270969918442579778506436700711998941897248708951207915612558543789659656252213242422284153272720666803619280673102536711781828168480713796946923872658315800175303273010376648625847715717216944992243111878405736880003059181820534499894640743192997115568390879231292635703695383527858183865046378999129382576481903849252057768906177633569775235507736358157204483848560131002360142669444608523572108421828474123674255395797022024776843526533879141176034819382871423226900348833838387075325599730127794087941340148898296783840309085979192180209026469379950119249561607674269365835726303689911979268860428294258959488524339549894136607670329895311871251038036813305684473329378351233305825656645246663671591053486804515233328849604108760010221403865357516580240091842250076986018451358427596475886555155688071506950387524298972013302121445284728251399827159399792652565631014892600878472764249814071610914505116422587635556718848409252165640676896355041659310117349108129838197008633337220473953281454232090336227260719575797085687675407370916035880423752940777232038527554145601926222043773869207549786057507853760844286757484403634381530505830445190777282988595076612362119783728991068193864690436736508544609131493754573537810508898585486319434606054507872238339577159143900327343723921684401526722793422916262402550146371455946961232595667126330780065291647489962134241320046370014425760060789353434808365822375940676769434325611277465162569440176013609143898705988930601742883576144403230926049312429207536515577454687948143296280401230972591073145718666246185658845983539061577436908843434106420428650458063144641588599493651857061118304281680026589029890774101232976126287346771186772454040814545913909252322658939165488370680735307093434607796984502859533371751374728918632353551992951993075727727765102793807226386716645887504807219837162114540953360688324916118418952379858127059938030205672185385547702350277458808479830803655024168621626350281245130061626925421737288817472786962047020729626717893810189843104446466175907650646103740900939534080958523018191188028865927875173294431416903180837281212866022610103446415265695891742058007958145856938560919321085333774573056703886636168843204943532136962493085515805388192853467664396789919003921719920720866159940278101101435418839619210748240567590981052098843307722289464153848728209942531096326622505295525711566930847784946534444263258219427031984131767084510590133497962707136087370926222439541464275532201535961380610190037600914775687701087500985538767309098064938412151556656894356387224772757796642336205719945178881893406263374823284454540567706447389193002625111155810448897084276679361412295453831083978825481146073073859530120185906966731179488867429140720928833948094825990032905913171558834162568091623056422304805047659700797660468888075798378367184487064611491062789076200741031477342126251063302405462538667442833528330483077000790181098673531434041772764178892880173303951062081789058249473073743972875437053483029983240508141152521320594706570137122309384947853608202104203085253545545015943108625377347725143142333842456166811497675233723435618005508749538146790565006155055940726087171916626857760479716354622665444961592188995683353742492009657889231349111604282045202899777272760115875330512199224662791324065580112635256302912918815341020765847907049383361913695366194585445140222863123376195301924163875704123677343458023989376494184148954925851253447368866064333319096566313110032651462793011075239336217328291843752976714315501584191746091981629990644493420702855634577378789726199577105845853332458846007292309522403328199170193003719553359974263957011679530140397169097139510573225960790224316952127719224731621892345632021782149548406225686501524099029917066439377796083195934958702479191348712598511255762500277168770128589824066147536023487077794579504002330898368257964283954073278589345649017974551674101192992996980978017272915645808477692083900589290246942414131410420921190175582496201168584846980664429173828632208843732492363112391922205315336744603525124887561167828934247958013002046556294902369329262314173334971640228370444720280697713589943473049692343648920187093278776391513216755686211217284031911057330379890831811221595282383608755419442774372489757502992407412130321089014006426204115881710687068952924590077256598652690641200294877769561729809414459917163820427949913645064138335544377799324919393617970673278994742565456805992383209422299572731437503103284546029369965696317130560844201162103618341269237626444438004271649744767996124087780000309708954220186265552535869166142015861792818435498947695482142772982594942710813176701909694325621634937295434114172803821193901476072187089234477291542353806083404700635459873946727035609982067031738560045002354842004053148485671420517230930148646867374627212850138136645356685049726987142480198729037868532964457376035728121677519594203555234606041655747520646192491929445088743915121860859072979252787915838158805696477116939224562763794940605553773132591590139783073474914250667092250882007577677020179782605699251120675727972044152266086702560405314769754364716415793883015428960579201053375204934441938029527299589789438485041667828495351245883049797279246739592693947406824836258840380121452685312886546924731863466680792867840391670655857866433225066941089408814720306713383790817404299587216755167506176587691234798132618965298137120261780527598934197901551647655019531936513085624330952996706084418708867807548948511844616600741957706772527075022115416267633468184513277951012030190917524075247987777899187738974524918737770524024690141234310392653513725009503462916550469396079679315239159714262775426168302932648358054002814101853231217134106660445709530764044374610368510330511130854825820857995693217717630655088969035639383619182961672949016253847702240002604075489650784940970201450636467398436028894448051990636690638202184393440475989294085304305364183414533714221214745398763591478492757621549765402360765279106576204073813047883950629565393108459998052944524409994057610278438683917047770512206338951090283388406403382000004740168587122545418806881912392910908034475078786353374506399517175039137867476053559511702233357115381547959810235566862010080762782180514328481240191620439334798196405915700215907716978329242362395696809480613331371267601137048069912729269760976944175157837901431300171304383848225975186123967416759387305645795236399868493652649041210176628988063150507142294475841675396472454207897170759672576774395080042464551330528735441172023243938978814332607239365351910438083206192229916385443569678316628315982706220769693462516694561967889315603680590884145390353963644965763817273801811999682199106703967833170974868871837359223681570229993718774850495894883714390899150035361661368472843469053817761990536325234691651494410392352061476406912389027003304989064004867823729694673320383747210269395101410441039590910595349968712181812322348416278575348643483821042982554497064656830453853057195270144062108717905033468139782020922931221466498499620800765951564967820871566231022656379170283947853703659009033521487548847401384703404138236069849516584735408919223068539152515932747618005056524401144950005902705905448382370985945846937598136815228398428820874157710159243054066599136850617199544442925461718510940263606764557832387036967310016592775707894802999519786216218167811334946622539869162913030673458885158299873177013713056790988384452576049149529822442486997852113943996228426896627985501931612438433062329787985076351064376335150449224671590695318538551882025082630972225233315605585421656045288022827702309332923328685452049458373133839101548003723950090778356575911704497438031630035158667227368612744727663004043868844366448411085595244378763905303577440657320604995178594951681407761647807391108465432041473279399491075109937464932940844745191705752893356448185521879754121597696119101652677544233625760396334188547474722734594727851742432705181679578651266126510554806958723976910019537172805795838909695110450961187637542692052577065153144754854862173751380577780891501760271626959861453639488664823374681310750263826447541379551118154712145812918138671073499342500615227826495823268096720372868062063547436440501075402355067170390499908387404728313177170819336184722390886204765019846558666687005844705380941118179826812204890040678836934062033834974509183844672552922933449301288026282318017633954441375955286957482816386033562634734129978002221783181931259973953583542083051885498585845741445196873931561322807113961253312695740711407898077831044108079305417326835459693821205094871659694233073881159090943592107929152249909449017959794058993513600088630742072451293692019058758106149059200139678715244191986225364141836504622514094569007329503795922495584337577438654445368458751561856970334372317510348776961382248597718808914175846393736312478437751785450386264492320865225211547793853295540554500380052888017181610929488759587468420573810630443838992059743833634416463191235794339700094336513402501191503754903027904129276070209728656241033715393083108437780992775371558901214405951559078405453912960998275934189312516377845034342246833982896454941058379660434660599292635034223053098901055377449920578942438113164851748904612945221310258763467174030049454203907284891710550493718608856636683392665736746167141098553504491873828947346161507785220922863477794422061387166957966499931931812096619422749603047690347324435618807218611521458420138373286604388935337651318957383151392865168673469855487562189022318452082597554767613112538226953795175487867334148841900106726679985609850497779837964654787743478655057462771505980915184914286699579185051388870923930215269429508268642160155711815077734635203995158473443441853246651839291049048530312250355715619307929561964094350393094142132205404931595941848704757501805981562333901136420618106910295451088502717970557368093041134959696810308239483895867711209583679236918833844622756441871104599234775585760465297311041124312110876491787346769985410494794804314989345782746244155712893661272716656137705549017171750178101578400637871319780879315365025779657749557249132342312292577247869545711620242919072027002535754216035816790400496531930277075597547233373483076941846989388773144431397163193944566972324834301200443677061509662315801917500669193689410568216820964850388960818197890640086471299036567884393698214949995559943278775344183299957693468619303057335461132289108456626188113945194051997796620711694744799084117812804650818491790020989153880163803234318372049265214409400499817283147566397424139825072552618089810594994005409002860280166255161123621750572918243283400659883655746421073069939950771178811945745695756090035072141904208117890365711730783201334575429422981439032855850172838732233323670785358802384196150000686912582753775321454907953959917576758920573475985680834142563909299413078614259552996671872278036920006238506215828304132829161297786956610723064561131019062692545263580891447438808925850890363729244467159103787152659486471149250389744330966834740660163222091226318717097166122860006182080952721440132086745493543734979133021178378219394713814008641912686304559343936816485531564033132114061264470253522065337466253869600614773111885013512186238864539400884896421686766992338752928842746048158696724103290296463684054729366289054350465781049251371735636756313813113758202637509503297399414246774819598069053857871133255230919210980364552220165752480205388589624116588129927579868301014288398802286898087891554623476410164332155824352364411446734468201908623712428737940199899512046960461433644211524384908925656558246031543515368547458376262263850549582536034835890527638586463988413516144259640507544766727177398434317225421478337428405091482111487217413582206747733369297603063499089208248319566196856031322043867934876902815688045355744512147324845766724704775218677695492953768444069650429181114449607464080355462353648102329521624145312021624160344635092304870969255375274622513078469177685477813512312682135927845083983033607745483871467738776290449851232180517872255186031487046625459312250245042697018109865214095871950171666791070242073394889071813270558870697106997926998912561991228807083010396341758027450524163023780212758808338982490958847623089336271935572667911558721468559464299524895556064623845976519795232518145736166388253593390728139946826859914871235156315060276346737861953683141961364721196429527449499945489266074706950664992929521515836832544285784157807822128243225119980048529070238581619600243287565581773730405345448963230756595519788212871798917073784596480354198675831288573504888806582016452721629782698536730503380743178591055258838574583553851128170457765886209289371099829787962610175622660056104029443882592958174780753553330535601585101252883018495532642905410699305359853763886555827412025102267043107648671310430406100938004465591944161828799096633554752234960956742688350219393533293492625963094291518420794111701917536829945235614084462609577171857404603517027625527821992211690523549992009526078708095855619334579505399139357173021123639654354710644928835252597355610873354627059356397923343037638692395502363251515091452004589492068652366749145989687217742227553695532735122351010969559668959366718005520483517011848847477560878384553494199207848913210072305921209973916946223024528567175718838566532608898728946471677918800477259509968490034598486193424786786523086684020357459773657809845390760451029554105253745044523909078614724178050579420060309437181822084791490359504341251743551141777893730610139632970696337781386921820622687328596811926923235855685636362553770338579089791316787205706697906841267005006331887273550496502560132009012341593791678492172776910017015641704985748033370809544934964290584639631559532332040131339461167256280785650175308983322939741035804599297973928760531583075316670083160186894702211175892122404512293756812738358795647343506098413235646869669486761439217165725662046555987566533920793288697529344493224698464468948183381351560094331432924613478536330704957899454641551003287459407926353597732949207428644244587986333665769378535459960829651888100260238429838507016643926522535482405218778391555411879351307114424807380138304948441013643420464765317203678039057303683858369629164633671933784493048602709908887315922224731212136698006237097422162289222194504144567099203709254859429578002795724048930800190850782393451408892896144120148685930169038013186486203853706662786965035033338697090807984706448887386192607539561419803857331158678854540507861955134127137019103343668323327714884014364998234575864236285735615098326147187974618152004933892386030424298666288990442682185785999376835541095210831612458518283993483812887325976399071484933888940164928176783403959776479681879352340949814150748571600275864696437544894751050759911357804344561599349415712723557986914673016705124519774561429610930286775239644985553103303937946714052148267041688786965480365170008948871371012253362013676953539052101720493186521459772818085235832821993174579933803456635188843987594214970168002298212920152705724345848828227517634565704391934989438924831135662236998660465466970775147697634345071286161534719303702501853673584751869008402996588821103661709544598583358273006930920709375829296123530638687588845956636744629954131831160140394373961132546491868832759307818913213129078351263733060667432906349620859382209127000693462492039853366444906887093116689966343465507755633499214567219143486135437979948950272589046549154775524007981313757926211759469714950394994533502603209136345552147583703204541939853208564225418341758542072160893317920912235481576545919836507715168662230032029685444054016991283590138739043390933702436449118543980556836716186685551927297059598555780795009979234799998261890927028323958827585934424325887915949864462635583939801385206030733357637776768705221023310556610076448157789153285340210727289566827002616381957504449566376431898315102936779789017470066604319795638919366099138020471499220369165860074725771045279206274830290556154884333395463419780127671066529369584712869004732895356153090293814884209667167354117416105117034657222452629882285170284971362705475730114951294788843964869339082658719199872622532832369220822798628557472064493683576967741186600516624995411214636863850876815203984346985783843465798004410322256371385529529277452804757180320635078995788906558660448673293219246140925807167183327115666773781561080996953619444130133765163711802717119939835447418723837234980901562335849026297372286912550757929679244582340235752459049948252440112829098223394021224563187429073224062385381006148894450960965320100629704457133159084330034158192296229429991386001928308157492202445226204173004072818607805258772865839241016104002179501223884304102888508959870931849133143066188071126974001588680318603575760551517158058950176963561936441810733922293900165639865507349800813589681760520359899737311297857781019994536551008241953626176833520501947589802394796335088005128299856846843799564573586320573552918684156088792192188532383170978595235755210462894129779877139400790576969219873791638867479531467896326203534526916985221441948441775599152924150602408017339520263396295685899905526170997632035773562582719843876531211328263518923486650529724059314046450043228391406365084128185978841080977025697616675437942263496242567649599449894158882183253046641034442584974385888847034080840656965333959187135006949807386629420610766851465380509772900730375281681802179643453221851150478422623171745112128114016434867328390808667283989691361191826246419515685371532776370997944786774391071466926479249521680583016049243648950889522203629140742464740091218279982824327505778812227862805885572608172144361518424916786722785000626467975190959363805458046689715175901220358584082029021088496527559766390767627850723373740073171901452601438088128199673147107605710761105179352153601542488072833550293004099245679206034959522010859682455957242300854517010845026481344044782532444538545923084985000881620287032709577703313191206669371575517759176456103653775194132403202533534164506217977019278933362605253960427529048543054668811693303818300148971651772258582333035724428636716716803782557388467556110679298542778183972588990466237727364669663309738808920323097826097836163112578398966917252249080897786591308542438799433695426946268571479327370958170358914957500252890768416487606860256177699761061429626523550023184909160269793489726662734838293706561143034220357802837148178517952080975944236873421827024494349405621071173798024312017412692198845550684922046404390194829609794615994596132530560634067978445874449216712567266613072190376210175343665214264291416061267661461216330117388336331908159701566131350192785196846710004108595253582660738005498571115547066176450734633758122172751794934523385023688071459639957535700104946427858710424593677862952414311911746525555216863408409909828052510990355574517399574932994998381638797180778883929127237797172359392991615009040485085746205376470256165003754657092304055998337669217957829821602811046934639032961119697948358513560388333392933991572945175759230315370423947601611238254514057519441717020285927993977434566954605221945745812861134978717783803229646253606651802354393838160646858891942394040063614780765516358903942129572741573977072397137009234969078367946818167812641160368255151299703336493352267614268233203106420138203128091621461964791725355572081527186454139181978748151646405526730541281216476946263664376459598134819161082757650685875276798528136609187230848445452865499433065501401287234714366858768216644840893918094592104236955569968540677920414451718853242882302921345429119885241805412129574934208987767983064191300659585273074371209465906383279053128853702430918427968544084725789027125261490739092107889298463881825700117524672592598265431309050477120740091577364549841982217547667129745867071625354129377105321294056208736252667492271898450305087173569723354952690855316274588478287854648721758364678645995111774508571991148140438114820557575461436274768996716896042054935848190452576557714853946741080447964201069341550562789282396133294973917805798294617914130949755697630394163842473729848946644416188457253372337587243360491544947752115379336078740292103452968154524482599103866358706503178038992047528093284262243895556088533836617429989612742306828155133770792040397422486324299015738809068539437335995865231191257540495748313142391091298967659299686514124648987964505537824134572032555293652104933833133821536501426769346145765524764889832657047328202152371361439041156126925601527954862702601115198112348909670209828316738788708822106181856046753069951976147530657479970382788076543171585673428142449048498839926906141365663386786641515939963915936645152494895203773506136349291311326883017845743404256044798528293751896565921542622292802301571956042470777583749976811200839669711880504406927193393062438264880141317048791698401316953576354552562263465311480773408518120942160418174741032971999965386409376245023070182856596296925948976890429841241163801186763244504806495181879370406068009559870962803806762308756117753557158983885004116430939999225265457161101426201163066695950310836921457900159750755478731791593561975872574919434324474699342594497749574911873483997560869223791139420555419709186189807498979906138972169917708258806706549901744388910235390291865731787411323198273830290946321904223208507495673341719388034607248239411860633836166517146875465184950493658160494381375645515351719573017751075433897742858608926333950427725267950309524989701536282733321210937131339069215549410277116365576722140111947491009781763780699009575840995828559020044168550097012980663830411034263099087331251738820712150368324528856039871679033312868589825940228342118842136364219978412275093666131855887597444169576582554146886195584813469398491935667571497575317906434256710267815784016386058553397349641123173850952094021755117191321226402837590131451752047342464267080126993799692546115852785074111889050706083095962176718578762832956431541806503789957436179674918709636149428878504981754950432426503013857564660672955027426578125443482537276175026151096254970750069609217544111200935315751148378458036838986697532714766536420262830940269315862934826584293930515028124837575716905631377677022316021850114718318959385077815584083648989966044905647056454252666045382424891282794655064816453344158410461487984874408111062201093860630069396994350022434954981890747931059559353849781877423472107311932067228464631990697929329290136486733900590620701958258851056708416686406407363443480198548974361364082063189560705087758084893401534511397571479861396225973567113656540796158567851806547931469893644210890553491959863377301625100541853802026634325925550092089193886582834820130369414160413262511739159778872584661138995677514120808665168394402321027916589670619843877349438881931629253064967308182893234957161129915691392980449090511630738508999977253891632572400062750208284855495761479765250603721926092103137084194581979726691493706655688092202293419115144934690150100609213870262008170712402570237047628498798532482594589724538086261037930369037471794087053344140092207765324077408802325805554547419177279892493978425560470552405236895277939721743835936880824726755013208674260092423093206619543527057533129113276633097898159865449070654000964588447899820055711486443575064903424274106473142156393968175790040872816683787039877900789302522744343083221196553394359687071400013007183803184811606972443341361869773677836273955817696797340673622667955199555256251015569930056642616136344879448699763983047417251325149137543454223647535362687176507031623602862791240194877410059761340868050450429938760281223081475900091083065315686212798726977188556050989946096413557948710390007140690465385631850060774764771145240515657238203513519000109642810286024653339176690730939083551013000422329658292502052470403351129098999417750433441028698057926183802886083706013669097056268785570790478029751169165581423618109507944966185308567035345725168278210725925622846956756216652420651738434522093709367040944779544855398718875656662999296634673950160436500215304420706678255592821927054379070250762691559323906006678349036143560853752625604121776181679106973244328046179605686787718256170936229525848581563352252417942599434288429853232238317367765217960090357419169274325204450691496138133984133818678328728578267693248192891131626451855707976570386015037636354998617022831264282834693113809872637930291271171238394901617354811369729404082399149280338183896573470440609695950525491457787636328504879773639739931490147613910717740682444322464190784533957113782990071995531290450376431792704648244193308839235731859606496552069149495547717552061813202689793219870732739538668956486650835439598699114093078862297657247263520697408083482983642650018486920953294415165339939567678008944308169722194953432345016257793560205974354978293253447202353731261911499822743420980664459209983365087078444163370853784444029532424584755720761042964137288375310556118381150146299682612779821428720781782828245635537354142790450184672293008600181494519863937598414837063225305246441434689202108388291884149697442025837188242590587853041477366515493581816129911464881183188772948291727707025941310375191632215864405140214870177299054530251784429086975276361937837173660784224336868468538102702576567890580521533547389757189648536660091706821372983039010707179462801975985247616872051236929342168922337653537522836569666454794334799895722006589558059263333251861039330241883113793904583213916027629781726689582290178885819471486310961406286879326676034677608826533996280824295113469447263455045579839232454373730311199825958213036854088592532813981155218258908662252148752695769852414928880490331855227355948379420222594744384072253695200125842700971408791643133817093385370674872287584538036128154320367536624531852239769257700469997723156141997984979670156352765637431518165446201480272817572732450052041112113478518842406854189174061195761971332654172695369641679641784743090951033304295100637684587517047288675404473816463981669456865954680836342249293286474588370432199906628012644057313971731331321140255618460318969078923367281960738877878928082253384402142637316859839569174867698164960677719949491786189348821312063369688218700034671280880350908701722277978434243633535645416760444314833629046773849415833974751397598633173661154121154915053799961123242301610832702540008357087149089330358739657879943967120950450948554986597340265018200788405094861732646266267372618708726300707081286925076829462796445230276053478923877312746247516713426314774468857211229673911478746434552727291511603571329563432710846190244877755944492299178308281448322929276546784068456934871871368835999165260646888533974501933493553940150303420862813976268481396918810581916513486892457749035015207841149811259063188494284354168273737400707451362896534428149017942216077318987249548598019415964421607245532965029177978031207294426404752331916960131982523962621522742418296290467360234979211081310457389709605397883434253648001913884753832618924020056730167383395474581704794079010083858787620100456428608537058616854143323939163918169953736847506631034919891525472811952492332845400393044125050398938176973512663802636999879477846203145765653414559577406790766441871465362321010768795782934581050374453787952636293035280977934965332685413925145780904415928616946614075209816774050038189200245050516839392654352726756504966548929939138478578775620616855230190763077757060569740219072794867587899405975935324832708045375715730318808769141763401185547176411675705233892504814006033544346392629724726183222569069458969472424300046723505421331527109393496252962083851942437664649393514856808493047323526670865092408545865575223058923565613521373893675239807181628698177148340566888660096321533457316628168599725523257776082443397994949535036751839158801181835579653639571241257291190613757399072172192611704169322882623453099263406111025776062214211892690383376681887800273142010131264972172044864995793096343979551707223055908553597850554339719569088166020881900158750942618383648201019418994111609329090001621082261145089066845094984367670562921989896151921102684996163780672194847314547695607979765826609093727595856220264729150077664046935501977861682361710013307733835389557042014521126184513142898760997264669130492886709358498464961185571214378420826991360551310354346557456417137516591530765072652974330950090830024562832947117635879400294057982904913625489464369643242585303269111755013214975806502820040701715376553685552030904159444325800977244453689902488746430873930825224860941996541938974405765372742411895743885051492771066468020837935055968425782102606692024138030783774265072910725492320507832905586293992890635551330175406994595574292354710498082098863161143563534355710698894887098885549939118828693725669712932566694759985042925996468203617094039596446030023561823017858462907134911147646970527577347558773916346962899094931960412576662700901560767599123633701613086728168200578984228604626763587294041377504861714285162236794911594685430149058665457856124201636417271191734154239474150211766725017504089208739346711382122439792543646035975162846332976838860009973102776436956540386660826452476211231331355860087211734421261195110028815373369791015833993202839160743966645160739135629179576794991366917498684155405579804538741904158888951498374507841315793902830901971926496584040123952315144591497072425976458079337274018649951036847096113266633174377499623496471445707479582590491071935244595278003932889332761311507289162605811887891422275287668602085304308538866923771743665505976609423931539915896388472627374505384336095227161457714864233382341398949966041206023196132989895326266819106033124031538575536172744866589255876368209337426310741074197877028276776337220164524637719014082285803593750602834066846422261469815077040929509783704217600464242833906732563773579789723163308594817066672404049112199171909750404915658914901556242934164926180826235586071939690270870690946849582173941418250201187314644200993366291381479660503270979203208190862617749235894183459122929335514438911757645560556044125774830992272734386700044990984616795013130397828637286744973711508297638219009581988161595437135832377152501298882472854598470122977304271674978092213091040088129165605579596492774265095716205671480848582126924584939110689236278649205962734529990127733742412599647886207802229337923425402190809146147811683568042809775894125267337241007312206581479991217143877434705789336845826496453030222849462453895121531645911441108831770265452613700755017520582829826204663633058647842235186571158449179688569889862849215688809040001395532706208881099991637912412975335477442101131460356106658750820936177670794364784155365798618774105556654937931074405917330473095108868097263229977023415178196016315198532327189307985862760434646448964436292283145706696386964933875560067021104024713434961061171703503162682667119329816803052211608242653645973378094537022928744414790704619808054903663073165676193900400065537448904418078361910313236619213407216110111355442435062959666159677146464507703049630448590720806156867384892177327828328793186728735011711999140696761469547998507587703898011074282042602941756738937126402572451320406678563417252598924251177631125104254302052660368652492113734609105171554030865368100939784033871182277302679222842071087076254489282081722320941936008779288394222336011461821866540347404095215134323149921018813288476731453648583798022028346610582485593988065321058876303459463263988101372323272216014953071746956723643040599569202054696791933948248823163920126728590447771851854719304581655275419524089941218436182581274919571477028506781508749566171644979140984036707856023757466523082444453571486672348133831362820910424588090683563900083335865455707916782178750369244137602082690772832366777072663391579514037410820282469002231698334707888858446173764112760969148529082585919683119015919570076140243545461445030287746028556379086505614408334970453582551305821622261569675006634267530992994583381868374205926884398188667884181810455425809394636179340626128014955662513216042195041809245293456344124116366015625715560820680437987089816083735355823341276898690485520665092486101131553056413541723460045709207061371803416146143443700091500840256569963264306630702310339383378481493423488574763373591722668314385118095705907066019334274748182575475463653006901710927152797295586830230535024080625650869026149317056567553542081462169912254783516518013328824873854168435899417662645795489989689579788437217761336932038433157891955070093588379740871186929939924841838910212114841625870887183871298792023258351767526751226620291084027852354345951032319242718984066245358174170174193100457612709068409285778322242315412464431223973499742862663552374545282103414494955685258156612055721305825602510341772941295039354493195281358414548427956147856342840864614045708375444164329824857415732882926163435199540987800973424428862387658670711780217933037627522396743611783261644271565661716090667030544994957613569210429347961856728764728630839505268949385193396726734063910304253614918204788128031774721091254909824730796518976599928045207818216590251169004511136290734019997219442081403037991963573907293427798594327017474935576485327208834814247486346725415727109949040543534046118704892151431422441551798216772177125809835307238388609611944340914782195919664868147161309923239049138225546762924024461194089904886085180971578592486708058906615374643916409741894098653902650417160773698881635476750188560090463143797128869470337617101664822648918983855937193454619062844224204577420384102595389930209716980461181793171919994151677912402613963287947866141253553589228650754227994740277286262503660799965936523267349995558406282489508676251938559938141779784252065679352373504785158547762154474578050575050566372888865414538339614718053882770566561049152794029486607995983950926056923081131000787200530307957477318600838738041185460239467008415490948649956485828774162967813803711704743356497138327737389034010715687216737599608054883298144804819730473553247965520248622631634143280682376279459366674867449932030797341604836599072341666357849517559943387126162624907347603260635369653518881885587983832987028707530213359645822942862349540646717877812838974511198678565827689988246283216550688641069769667477403984207791185817680412062048622457744284456505156676348028729482956562962980277461388531002142569030130249545271729692216202433153287323718760211769684965558275028629555893334661369032310730287688195544764401122499434926355042177144059362830844002066518319933126674754654741049728950802484795216463410329058158229165965033357806495838687565262746419845243131792253210250272638617780026526684413248593720948227527173581541473736854039931495283861341273777415439316624606779315072887643693175779882814134311836553200670723654031034277412855503653235060310495293430721611045661439972334789879856739721689117636188733768575398055617360319440720469615744854453572124901088593219911326522409178603377321269549322380875148621623931512996891887404712273920201742224592680044623661426823617953124117402733385395377468850082787388672079917862833819750377066173485728390338211391713262676758528645710228172351853715556701104892495638836639490983229535102314325445480936725390030179197097232268178542859694054193559743839283955431309814923182022308963597923477418977220455609620630352602383415006733108039858270166999644037618831535974677976948242546511072959909035789344427801919543380054855528637895176154718427856458344279343500334241389510102930356871892944166549023235483877809211428789362933641204370491811775517496993022688684815051729907613882878375652971281074043287527824758923480137131148035497865713520377981113199542413765544429915970644624371273185831347938769030434137116177516129718724741109346402206006512511713055794241049612715485078319983417181427336605596215303708680763570375712112660822890910716393363036099957716592137092191573228653604296392001839719576603780630670772927457236591089033627291269209804782844110336334298638877395406800239551515394992443548518091588742903605871237177488979943862060935085590160543616158833201361311228063446945011095637886978397853628676083479867410180936072470782580243858851700985696448713951983846618060764805404788771028482194182137504751640160061534126108335717790641982831644128915485373312033189819000032353144729356335854845380123326752880357292152269679843167452365089874992008054891298399737324387702405018319317039238709160094904369593218173239098091653997693934113915496546399038551379575529519298444364238321450988217138182949609992863494924118215774179173454759496958062125467742900993032562774296070355023009469929749379041338261890312248285622634711427326933999471811373453816085237185776105240988932569811821289290346839348170394825800036850540551702900645659145814262244104697849474087238272482630035500668393143344482134298126143531858100881610375224289460561684366327428182817433197112059306322578005893562900289704106585691210515327184158255539501720512173859737962961099318460696620960278006550437881403468888084851553045495974999386073765885975308779803378837410445250403413827401707213950881063112313909689820561199265748316063052394691552622295663426094669187046614487135083498735451238989327638681124609948287806966066221923238548905778719298141307211226414396406683998699413140823734996954752231652585059469350389501102274982354066644066288291436915690894231392865942625388680869598824446611635789216125253988300932032237832229784017761445709272713345613887609387615817647560251322290506110443542988214411767774511246503568288238812333024781991012498622504762070273792725401618749702062111427902486422301503448507887399685164346412281324489505089352055427338720287661252036910174084153719038479207140534094548942927498964342054079881421820701402118898510658410230460748629228547238651038487897434522246405755655928377445372650648879448361233367958302827952524650159515699477791834972939731219128064160171380822822366791980127116921380708282072849596743301115557324201507347105384122177314178007634296456955558066168907233958094906372422230750237820105194398123218824592230852079549020002740783986386563005762292069343553873328087184602995900079074390475027096214425233785724026912925165791123075631054442060730815111749976860887946357365559861744423199465180016327539216894039688057198295368554001274045242653292075247264511318965630908903197031361290384643257975062709552077243852771098444599601689569123564074301587720068911393322322588523788020084103087542398101057037866903058159510103075863808453470241997688090640904215107538546564476526938400112574636100556343520433685929931538137070913783140569192692092462491350789881587458885349355021000726972204048539577694258287191233874787821524042557015152741239050526985610168669613052452165463495216007304890470581266066915621389010932596929720013139846811737959091460980893523106525328416910528764669401296327992220169736858616738419082920325902046012577472309155251870242517728118378012316592696003610709534954781616114071212768746372006440370873069357117707466099596498344444724454031991442303120391460750104296322304346248305483068197065759038150761653138088781468380876846898806099109559706994004776732346281758593094614314288970008359688646311450133975243082246335482492117704389476652103174925308544356774399326177747875356927824371932602982889725251679422765129332329474835734029653354139016370422495468093568115216096286989536050187434494605629430647818884311543870774303344531569269230299223329899185670447437304173538029239757397306037163176195560645401021395160184508211397559532960466149397074873190195863791958824415176263833506784658116725276614769635608566073301254447663709189835347964678019269904938450523241828890605561138598671355269311138638590162044097227862821918406486447287144230687442953931709095798137231209508193453377692762859605872634958200587251267525016296027842268329247791279739482976694733118962907546259599661786014838175062001730793736446006295502847118249945167141141902629365283519146162522059857474509192798213650107905974112821198932630570198088139497267933775640487493111685075782059403125748721927295340070344262854642690701724717718974023775971198199243199614328966138948660776628112671113101550371540434399531235608299463319357744107480012587707607540699535250709512722059280676619600643256622812687525614077223224128201679266393869244795903831389380013203518499264570196803473405020709363497210219439963531689260568969833982058718872227897642336845033333090547696549557120233547145657637063510659164294526011454202859486029188762027413374644523354066693463706054557890638228406652832403143697333469895666360068714760017811634152491078462616543272062564702522099819139950584368788308591600826827850731674324218914021385714456375446863830815140105441690424704750935389503697937203790908495770704115090723622043305599184458821045588152147197065782923156088667345963194649963922752494205326963017594034345417979854460463237229801674314286207960354048178203895280380600948866710858537251722549360183571284961937125004660820641178091785970281372013524640364604426685794885027950080583191787231268178951681851517577963177888232424286194482321109807006834524419148760876085994182775949691632318305138206812179596763702620141893038218475233768022185638944415539625104034248854734377469174096678680893664249547684375552279865809631268733945163209739252100630466580916339546370515240139375412889145142266174937765286693815269516589660342386038022792701394636949294170846639700810849369286013765725722121750422715317707383929041370891755189346794938438885938887252783388484789162793877524550390967870004893516012211425082954104688663521482804309448202381508819906075469935759014246295839941051029261317448107660618214352748388585853481060647879135068220228919755908189053158769739107761535857532660476726183184657874091971548786074100951155441834466573530540751644288982986205930975269077137502769555151210691417920808040883212848719223116785656983680490140315981608214471999678527877596377048152636712790926545750950776643152704041871831577079910101141943722838983489275695497194463730137556471055174308142332760811336450489636639008706720483717021605053680750384812366671031169331446571466689078752708296990498473468352445978391329542314360920241570308701782661608875849271457453185246767628106679044304866139426054157863728851674083048645127014764977048749775604955426552671238866986577362705063479086537977414870672903218756351036515017217558287740408833135858400543667345391891489352404373387772986752641566295956616860392657260393315135666379202467400716726087324107965166444495423182815332030107002699124459338542739515055562229638212300496042663017064048576043060353800403223753970385685300876377842655222566554717965468512520037634953484678768131828152624359497726774387703712581014818433194825151295631673698711722727242085715643086946445524363703523440946107227978370636893918714738717926093414224266748995277693157023916796466471941479234378207122484383639373224098555651150392130626321007388041529319007713914784292798098503167103152493279695407427764448793018728129988589577634197451434168783557810618462219219657760877864054308635548966470357173656712456732195133249085368532905375404153935052774754130271525708408057983782039888599989791042299472984368208612845888590552328659877803688104309976102026844402588677536698012844351664042712287719820958992326628515350918584405839162315460002415914678187036826407402916225282272063796612739291873208504687173265640966555878019358968103796032387901273789461496696787967997885783744251475404479176940301144206063569463524921671647557235079568971208497274070975129099554474666144994167882147626994443358261781337846126069673663768972379807017258695881727718693914431363640695028642167861364208505211979788673942938239674599616388959169216585177931286159004249945755989976820112805556126409195338049403700208145003620238617220680422552074340735212273500437827695451740022623798960812721030555000009506232363527281677364174257750269960538860871917376077190522014447605384671645241745503000957841072579718503935853497418242620354727728813010465436337158823494155342111168090371313671004152689669163979745362564930935134724989019736924964976147706858366802139105790057556428290090300958083463676118251775440114476166842420669005020185770932082118394581773874443949012102115652587749507471876923265550242090374375613863913418289460814855772443008552309658724689186623309478365045978675278563747947315188700981788542645172663437085730991536175570232982420017148578781968004088180020884608059680518888761124292212327743354028042526352141395264733752923830842028906893374411235983614858445335911433933582698500684842247779522682912795358874204673733882365249785370730623672005834733329472792973759732201534769611704301884289580512450352357158164367553485483611029561708716102255992724427650319469494832683490371202174567854093358811571704815838796809141126227633002291037770742308573771150513410746717156471298266293784789987160551387935427502667718711180626182626537979841141646406847123050218788299972625928137822741008524342393601997364956285491702962604331946946883853650989741832520225470254968921010304054937705666168622655853450591651605742686481728198912999237503134414428026563178700766648527933856169946977866749799947074840468436813744485228175829546830936239840671699120576066367787860012254149918056498620181559222153920587368556556945490821650956038618007074541323797490770061123343087031168181379866667321044760269143451900560304023447463136637901240915073114742915773128201763097101865844032376869151338730034440853399076231722004291206821319305496890670001158257898766138102520709281698634289069685130270323269217497426856284892682254862229210804480429567520743036625145355814743512239476325344139168132338204800995816298486754699597084503315226709846559514529795752441828434918756736408225217280514798852002385288230581338975939006507593383589480812744780558754218928552350166300859592954660834825820819617699369190244266856980394593104482098192207576874772078415948809505820230597136872352518718222352085849485542904065659325204131967192754665318641876140760953590834131875766886121627434266753503482526626696691055387255128663683218807133062857245637881523701143199878849352873047321266404807500353461978490852907827645833144965046602977581969027494410906520368396175847774047271280694865037850136451526921915979803508834568527146354474735536476673914604588899786234170330028253414772469148867875715088091921334407389257880585469349412526289398390019459105705060724607319625926116115282963750788238667901067220266364242267433332751508602938413833299726159722895673993071735157819668992177184485540473668150303276255168948341238396842620269619326714090587411220774964280268334913334881269247146176444002123566546333594481907897249158739461817200566167665632009698503609000072629900121173503904110999825807465282038604065940976782476337069372747277694923883464453467465562710532969925807658600442818743390637913927459560190475977143307451503837680596371901266207855724822885359807713428597963656554766061582966749101123986421912242292047984609766107586784905300872569254905215538847211849752626717373338581687447504861724057599751959295846727861012786258941975681268757555396138275841212715115358338256185560904816706573296074527239301799068086992660280955812305556859272309054828657514008676159824507652929735094037084759882114652194173685771035906626647122720132024638532307855988548109451495747417978766679933617958185745062554287616402683329350538000572777936004462864314360679787732669521229873034023702457921326162062703194492189823315620518889419702787526253593269556321965983356403352078776598462271210224988867906222075868587303718863868890210352159622995781243368648564081496637190920803852710925820440504611738877458606333689691113036668474083961575545674285708425165886751867024060529643165697124050168944507547021601800144130355329165248583544579365649397072230132938352364097957274309632766727029417421990981180779527558945355392261590481208723693916986721433783092429412980614890534517535172109725669641604737862360968353382423523658662336824320969297568191299465121203607774244219511637999658388343832870774330638644012592934257168915462197426953334274377219237201801249136916634060471515961935667604408786238857076931048512389482520017671147488561340993996352790791993833335229413085602429063902874430373184237280437488587833445116142023027504009523449014132546958484265895644443666974076015043566474028612105309002717029972950277856767599232263865052472309063156038710239036808222240699497953232227205718899990013276208521786267689773913496132831630433455630904022242316849038392746420410313233327044588074549217548758372879896483951648123681284163993079421957331855087298543490835896577075715576037921864629011940112465272805909904305201406972160254987443612031720002144885773992425044906564737532018369183514871984325948503850077405873790229012599200413491482775584052443357557957234200263923876958497912841036492621942606537061543644409149045469338714470839887360198043185562711555286028074734873897650991398346815511517992089423223482562110088236274948821481720872122529983545395617935083448678821565281306957943026232769606347352812221570565774519798820401159621327357981132929500875699224691899346541715977678118234551907290401360090756272741672712468180931593896141733887628642656504666837235323691931719752409669683772354855884544202528991182577103900095481293308637258677368302319382841527688156301273988314385853974013720848979145864826286404319247162792278200343033341286537110684594681177857815025578863757520114672168833089878804648434317902409663319894635363353473561195436458323570238137436727185179846095426154546502842293072611202253453352190926180133682403690177280454800066253481793628458468134525212836799437950037568069979407484769437148197528419944086750969613918258583743408766425262254347246840667935703698733578338969120738811398149484758964460794371006533870766986220082349547526301056299524100628010125782016670958264593343576160085472799372094997285771954481530611485648739558768676283129290708743059579408496915251405740737604000545951172089838770786505598960265531661740517550004269799777744640324321446682935724551656470530779675704640590148172843061475694590921451627499112373592218954907208905292959009435484832457679236422214147329144519228219365290191241473232648152977087672095948587684288849208514498132848069126914928759353852905275508823644146330503270586745791383832199367222060920926365787375653285187269102582030763210343252849975643383486680492420002717385522150021983682942179409867027441674326351066972991080814295884050817987466194341185536841531893067996698912922591794532227930400559505310132528426087925901447594823643621920601229739384713097734695111307850512990338031293173754088709962789438420660743547623901044478074776271549235025767605229479232607021590718956117924909063871445678630482965387581500187905551807029222425131935885741416476453697017483128199811920553371182612032862324768422735543597486245249971323256741548732114901698644823773463835426281140073254930256051676653755299679633604321197702534957476320862158795954994102844767450317457467673408138249171930040311637266758505790224153434385401456241931153284228703290855118408463087934897188772600013370539604122836311273963272045365189844060070453703718956452589421868713131634042463791484079901747231656105683576664634250716883283140096826340942806765379509432634673898886559471456153448748590979249132684354707109692968695416322312464533862145016190971491196790567010767015129859982093124632252015247512766563146479612907619024478280801450774428307265754483304018104623366290899011255729880980015083340628515047903947387580196487747963904497994373891665666119198068395318072937631062884869959847445477633900684239790270779481845152647763928398273434811472990372905438119257831901934082932193521110926451033177734068305827280875588421647994862343968586663743253355777823263275748565204276961373950880231126035120519222316995018726215830930628960760563299723512087970558356720773686160483809230260275288201311355953684735423838241401678074484667143337281724999340857514895346978253747917895246758575840576482128863038519126246250555316531547384360876336631795094033175026530186370963127658846867544667844848256496576532470530009369627186668942888341241539600775688242532627472414814499066750595311355890181363967299163120979859748332586454528437475748293500733814441064321624134050577225475245964485348233765384652636994125375576450450265641796858196674796863206258651463381807550786235291736840720386267531218756795519823704233825307596510323366218144935897237773504850720394729750968693043786260287434831209607072665302716951911131111556299616664626817094898870666433837709942426030209682866561877341522671594953469306690122104957249647497632652464119763177084118050919245223536559791439768140155595978937174759420628636219058852248090070492114287979821085260089961831846108975208597386531687456515002749565854193871124194225218160189845053932056222220764039424715933077648417481752913486782492065283495395164708879698946846559851798722768611299308771033805383311293952286120973908327350376667001405595582956371908361804793279984859205321793871070391023485263038935215720692311910143992715132373720450670982434603183988326056397277140711945869171539295094688187224447397547853538661703534449640023968372256164307303810001510354731959212554901946064004282218593190162861587509811879833552337970059300341570788946699174859989686056744392125404944763545155690919928869797818070172854697863128548682529468257681953613191742660133833724358332242664839540455986498275684718684651975559390571091855884764373760666133464744857555382098302652885324533069210205043462437768589253182260987126802611399675980000185480412599359783124287613346525674254817474019644907847217141368810440534990959746775391861447774799133545472721505416895475022385623794216681982270851090177593970194725260915133357964344745572856796654088728084946356344150012009075710064784935017662735714359406897017875106618073033560479579434934507454764966038651414251429593295119679389070954451297339530624373046836175426045307928197501256271040128931799897440831331424764553976143576666091580063730724608013720779001229898017127337680718474877846754434522258118531190280588463744828439127385478203701708177450829652774960048902329474642815484363960621891229148500206846413595081284744557732755925941430613017445583594826305898782314179860839182771046224437478967277231932360779348658209916484429982519329959102510966520811440006822757090714914887783901478965978887088260683872460494840885763402705873714976584967489180697522031874178263491003433184331855552044913816846858710592673947433180227133744509579158811480975391962116389264435307436478490931646682902313465845443684114016372658963683215875939948513655721977846930505968890240167547140803854506218611400763876968583413685240196831617162749222498920448663740220901721815954617626966786478635806583457752590153620790840053958074862784474748985607133022983075457956599884556652438812974599588464001114255850958174016541033368594450491547598003325598033081840758798377815732577076132503168136100852014410314659479136728463226377675715728441427015122842122856511300215617511596366082476051020673957327432443126739164435675453526234014465438320081319099424512458658277948675762045645164254574716431232174965870141438656259484274132330687991550400577881247190080655641875904356914804447375165889838226742545457678912280195985105408472829650076489730796394714549731013412735880114427050344562480798273423790058106658095195330486188506955780116396891930901769323301592635783999367368362682830863554123087333414471690031011144026442288136935877389482639934604636995868152174902858956084416664593698400139652485773130340533828432023756605279493518347368352851610440949581603126781930699904407160455700101839602709756264534218581531643920151876982965401318145704032687345368810675234273635612097010057379827579781341129472725410073548565591987664734502540716494398237464418591303399071795392497069356349511479315322195912478466380894141815223730118734883576589331290930651891884718798247776666770781571472992543359683706549071688907920477351034091391430159571820489804730414956836678201198138502918762122732964892046276139486793273037699104555521412500655776548987704666485124099273495750439344173958272092765254802636153832391969076948199687893296533900091878090624611199876784901611438262727511523916870067556515793698213105827164711450497074100624844630849921094255740662755466183174792604559094573056349852907855890487290739429623487180400903444561899443426457706202689293935713693288673994457277830300655753030984929141352567396456512063039968794729048057841120230819013072708353765240111801060477385081103464159581999640185205316196260135247955917734592308358616072966746147430354503713510719913112192243314683446863869637002558653584754030318812881687510545085896579454502662462985870245984241200106329189972612769991373679237729874403428415433064200394514619449155155289754306380165749485471614223398664502453684954531065329559260219966468492984619619209888549959298627661559006098792512482545574070408432822441647313405190480664025296895327601216254404335537505506024428216199704231632517138420711803406841330995456585761676802397884409984398133970102426465295879053242565489271312977849378145543502842818024880360961810585836315476854668033568576386961901077010477351001055637433529349765259307589033379177733800448772379983453431485931482156805754187008136525914062977845468639526273231024076540147268934742553744172149609031386216331288275118162407706307737586735990913898435452756751806036379775380941963389854120009831635809746675164138549478572868769724363443844059266926725621522136555540992640638218333012313383739226416030404068469450948726876287410436982097527134834826566531012643132235867556127265182899182811243111722467497408257385014509256493974880445920259200448251124055596377832461956379154603918545292035396991969901930954933559625325809508962413631690135564849270824358301915816507762024282099922976021896868849906740018379783459536589616602724333066683888791032049332485317384167336547923835025499656173555831826931895920308477107986056723106724455389462867966992870375116387903079020641214610106183538198755837466184296815681669063762483681544003550204341580715712432068911180370124470095309157077872005858686562742595915985409579716936297491311808933972310429784908412252096346969445667433289692909654706419885071912990657010944621777512694409238463289997059169894352634871860718777293145415844033711925964314997517163827470644694190488670680137784363110719858108687929068137171883027079936402959881380108982476799968110705814841328194938854201158413480940734736630391378776760589364111286918559269138826260174242080810233611993139666224640844592870395388595197087121525318865728009091474285928818963154070175337358056921471259989035408057515859787146963552033012577548360089659726091760778241383348866001976289236832919664637794284771805650021943011972387057074718071346103458626672734794667718533753285693411952081210112630422631187594364630328331675945447000905735539220494722051007728437812893985864738110033597344257545863448360283653578084254003916718351964212613881759232113422224268240788196275174097034319717713111673275136339948420662969067098826794892433802171643650722086514493031467161056965691884264591292952642080389152630718973693443214742562572554916568362455966960433670482121334894920985165003055901306147843941737751767437521298522844394808493635832307729873688727117008401851762603231408914440358053449015523463922730179489834595649428896068542713364372084271505390741525641016853734345915001561538627359887067354465699378417447563131465762632700381397431249167122899579132198980487429816497675944482806785352480545838036269551687011641836712669390229552661399115630806809298483970465214157109827163837493415321106610899578270273694513372599696762361686504290936631975962917334921966940611793731372560428287493728976910783793979404803966408522134978936016150056890365612092578321510453890397655457733174053126199304947829555173278049308373771877518510496217531226911379660258405364943187271270884966630427541000407589603205052571352901524406888940063281992932632860335205722205376072997105740962798873260276062542813275206324554622783346032986497212108765077805577030466398360301873244038109259178785030823567428340706399410027034565241114650282763728858717497675939306796083454149569021884273396990151018788592956305180458038769781522525243360291162088422622490088359261207472650630647191450635464193930413727294428064910043824351185800851666773873208268850016131381529688274652891676215754791854577168064779716095361525528157251143606282148581366957904903118244947760634753729184114438928516290308089349527948823113438105691539377351869418915409440877666223840100702012494727366412200008527203035699059001122442335617900378697513303348250486457404219671557757465704382272763462201132342793516336707116367272170772197438623897205042068701385292283742658658722127087608718826325821829380210659499130100815138700024595947950075782111538158525700117800113346691039880039817392347402109521689299967511227882714764454082504169342422456464524704881590277051777164572754808970906667379343786536131070599284225766380854418711240584921153624606030682620140153366595833571003436595704072537584260800019982933169217717190192806508901796408331186190353340966424212957862202206922192410628560681417196376498411061605374134555260924899472674037818052847734202414038538570244301355684790904046207608771910958733611970241984004482111634457908655232786289543340157600051339202817195862394092441451492285675844101786623134043940204752271571388832270307349966600392194564688302926112685702438281780110610135441234764670187965419873771758895833855992024184989129886757208541227488234627294099423304936774018657058969815399533265395534474878082621744345691288616727055201361475515302632378823350597637474807941632061331959747349471254821292463175035211423890737300045897456734295263409020564401464767813396430633711601594680289137841955029563367309887256589349467994374676739946242561913747006517669441846876705518866044972479424624984255751718758147258872465756501764259877138145277423361430624672623440488441077948390286141619552843624334684199167387055784874782098902705832052900930698783946827707546773069654305818317015426456305720239828308507958783329049503211929195885004131508382943013647127729121207396345127295663750261847391376986856584431921339563057903546860337114349990790792998599940185541666808936011875733277319398056656259071767738603157649155799139080756947253520360197767516907073050808336514744307486770808390511568276470004270896910138613526918811574953702755927676514929319430289587001214543050916778747229136484877716970477496768416430500926096483022575112469794495733408823722390040934834027093614309457284018453774564030599257706049128535380413825274926675076491322340374787270198656148152922756213755652736901797511809505319345872700561728341146176889755520995742218620939209500332759585588671655924220102780771362074882086583837421500826039170590804397815977011822900654195314524948250450046079518238927174797043386881003035818015253084460099787973302639562786788220084426895675020533335128729239409096656729892772036413524501031522918428225931206800795327119409570957017814270980399697078977513263760882252375961799455514088778012905398756328137236893896873891180493951863539005327608629500678021944264737864343500881098950196992524426570570283835151862977070409601389701173683740454183061454538510272231398759362976770760944822509507367290233602964961775638069432076735694057430017364465679432775130681972044449674927225568577257489565736774121683491074266078542910389580948703622477264896589745716944270688748623023659527917275131105273329003659799524423812993630931484198805768747909098854844740472606200836277271280610962128812329192896050296073779352260791647955226581400049076724196988717378962150606210456497218358485886659746325705095655957352688843330278243020925905086456071914460423420469566317995857006731125625145619973294052026418126636923334535539216237349614583715535023265062325721849333437963087851812537311515708511471004818665915295388203855464993858658349225708689544525299791048827107872584333733405599307718443616938105036566432258910550335926443858351851438857693836640866772578923179712561550132959128800599848497433637748342024415121051650880629776074921241277079106895007642291404583483063561717181970082469865612519989126505010028401018139467696646474091709931810016463033223354882926760020462708248568811307643982512507686649198481771904245932905168022934020018169423091437512571890252861439866770657010748698790414192373688458591448640110327276494445882003644090274605487847073682990144902038028179010023144611012617707551240062057253687199462956812880903447569601681109637541265030682529517057341154922663212554727442465932898783676928170995127723285297296362781014602128197571964750601996828199487542826791519122203755518653188195745614278356878433440208278724570204821709642605290408317422780653550339561016792631711018409700416626318793006710356297794257069712546734375503029933694558155522897970292851433053197874389446010845685761104041668609033906099519985994218219946215822518781099508700849801559928896808910089925807402225387835098964072759232634133698369000791491778304061724730312164897997180841628165836721317014486019918551313344699838405483923200243326332706133645549235144840349994519238683031627482545252995213758769646928654017715292905467535238453412836568774168803723157514107157637282830673221793715186432735508282285222637895758546091371386369250475638955630173284976660964981915846696239782853121323679854975193444668825770530329071470027552841619866331814985730928478332534756774189038572264189736169914961933761137825209311217657048062565158723385434043412013882108323148691460533768638570742738674758332769216775242699212109688035796787566276979541303629616283319668079938725771869295621819256406835989783862885210119540831123896976878566663303024691816267175487238531798364898377649968254526313096152616640038102279107719780757582066898158742373172459100583717666010432293350716044009863090234127958969258346260909396359584666102800213480840882934342120847328533578339302732133676979611675103216900070573187847917138975927335929402382855812773993228125707141589349246011797010167022909895220348286140908749522221361715879431920985725618382248126841406884131812059865362283989659614069855554971691105314932808064744972526545179093307339958925383030361636795751465916764752673069050942107086585498972333490239811353371004109928860209757860051104111002640233068851876150366168946780470786635360268319408365493062752370206570377564160843849983277486390643792431846221819600522608695514697634980992043988313652869491053217226975927924974906015917929275540571844139563396532862241615125865254717693312776923071669442219521096733325087911290117100947680795648238961107428776799948842420632693209114157791459558415896763273546023980503895407180130245398307111956364711717668683809814294950766225517824671624641759924755293531420136105805831960962174482431756865576282715429019459555955984238294893886254525393834342324833748175234181984572786577840555093217628921761119246970070345758871998854988248230373811710187178837868430573724782180245785398418621923423592702674577220595142727163503256626858154555117911228080725178606399119625940971314816109537084947849478605378861809253364758576816144613045191351172553945890522140952695631255558737932600035427813301360528859321806653099971641950296157867632687959760733827739724496705220923766336797506936241023515876599827319564416297799555187489685622561470499141333429408488892312657787104245989000072943619170456366401876599187129747837536166997114100458014291738869017666086369824356037621431831119339408170773776276031536444133634131478511032754336242774806888880703645940382210955517953196837281750728188012246961915360302858436557456723662806664369748060931548328768342391266558478241182536803310929720873382284105897965605385280972306285138678003875692308729419141050829367590545606151129451634898182967697207281574260240487919775350094037382667494921144466676528812070272080882489419171301835104648389637098644874820549917587141247138918742133364228642516867336601215322408966446946701067433130926301484057264695324168217279519014935354706239479662900369057859417386132767953937018426671948798333883488641723395351086042928303972380210068424623263076598297870875781231210983973766145823796777537560350818707210728281932987963177371831958901205266276292575221754676671962295499343719950529239962492413458538474398942930216279261749386204756815662302176526647765806501323308283055741506526499021730166492696119579105101876602310934638483600579478732160147326754314893996641302156839098716788927224354268104951727594121330983483846866185658318925405274733729005113624900697327770062394964466800205639504177768449155315468032803792441712895682094539466095327238236782678126868586717370505363652458970065704991263026798459340555833111859802616445420287179970973788726103930876456288850655571910904896236843105562810190023372913423447291628975340814747539232044996454016906985230722216889695095756185399675108736894133200713377031106918232354461289899297909531507006918964831578258208647694828866847155741643133465585122795291206896644818995509227812813768829001147594371942505105732086624578838585035930694539823350979579415174830709759932698639333604661711723688092073491407015879075619499157795587129425265304862725257140262827723497936775165664221179424692779809667446586718437392639315648343377466679017268597087924954937939972108469993247350188470404436645496314505039259902125768039329169251973823622002094546493297017978058820034541880443873347945051782421492105375582744505909362593113115379119050217439647224794784468061293646632482532071730533552813243538803105788975404177218663427644299870986509995843162713688454948374770950518493524967304224943379498731651056143025729425222646783244017045848715760565377534424187955515602221129104315611404724424125433271221775962999779454045998748697963413238107641844486998605952758311908382270458057741838564612868907747169987517888681339455025494673456279752441914189058006483883602221104998774378966364580587512223437891748743737661000314424214748510610942760811589038515773135105652063173552510389452549889904590583013212649779085424880166727640953510642396715675189463778398092782717361485578144346683082483164509603098416480572328293050835918570624714488282998164268607005257405714143827811800880087371078276562455138750581725511992868076746734026359754654405128043711477582226357584302637437895606686957463836849307812633757835086884021539228400751873953994139440896797092866617485632868555995663039922267407847424957755213293999072127824706871833345786620436350456322535508293683726258920218725504169880279929790304874391284167915022753706547192489539662198599089934439997978073639199985650368950334773946582076516574512236348898465775553314644601328925572190858340568590361177251086779198283581034572732715220452458446007586344241301236643615247388547240736743218860300877981830831553257699870174316408011020047384719293737582637497838011033591878547699307286038770639247358934482527268636655883555903881764418762329700499982579432967511951195868167930342617963623054654145738525193409680762925313603740025181075157042172018049158921729238549365066664496409955186135583560862146460160047383970035000120748845769254334776584825896496634694457011886159797324157901682786863549947071644955275750568508873465726215982473333068747323780442108195389021398135675701756403480917882248337789763648616688281501656046005649822472879793144516257847138091944987790194905322236545308829303872001726289721497935828874662109400304509484258183827995358676687371076832525937011098537844196846312015923265234569233409958979785446720910333631952730354142826053580543223055502855301986448724394382111094334648878008420231711599283414350385253265211873856283186760209765850422939002814280247017547633207771537995086297268474989018977631825298609593707441612052066707756306911172074732040288783819880296711595673184658439965083066019519427836260531512798335083550243937845884090065798390289145226394657672673300392874569204212337214085949899114032513698071513080436348784045899006129229449375195892589637322877804954456061832762029655788883144856398552176482891225251213667474598558616720769333559939187672315665879273202525373733428947564749998952698743012214765549711219425771628274948644651328111386248382163520477282161948729074969590207216436962701531818178335929752767903345206918686315993468764254607714341465518325282781519522106303034125283489575024436639953232044409523577902696683139697232994821221864046273759447574656375157921194372547225010544840668026206764710174735240495018787633780086355710972415292510150419228926308988394961874885418973540677388655296337743281151530197863704088230440884948150907319028725561571282442103527084778105240962430156920811991830605170108368343431438932564887169112169041790771432913151096816356611388003895151261431301274299079195042904259703252477169633019096403336212052879108056977180738928084022608277212858844941206725348305568471505397837527491037900481563872332651752389937647262527472359701074580338887473570675517625150652772357652010754027901365893907872706981191448786206583193083630982459010506048352384157223545991457337942676003615784555444049231642739550351541018630328202505457849252892514913474934059493573369729278959750728270064709379797330914048929348617686686641844173269036000309092653625159971815561027617390916980331772659931585389021280798553178020760839342315503434691240061194961189033416769020843090772738840274800419967127715945257466513258825479508910098828218157202146382047515072166490619801018273292589132423165509258316703138210511611927578998051367928141773550286265339641515089953530940363996770655614674146371034272929115532157755008311181670722215232285508875681215028630719662395402255456586688331093554444722414943061514511098608443239710329438134707775403802878092637964595454420548279770692541816760269697994916607640772508121441617886676226626630588721920586667245507392035633628048552968153475834949067786883325444947058917656545640868810878260617757985226034670742144012737181980775738848493006389990778623718876692789850075078083418302218075125618767966199201576967944093065156494995837116070545780047335880941948349716397525431508411476780100414692857494799813368316082212353328591696589872057975208240663789110831654382585156481300241078429433466228241476224456695575196580762234442744752286224591264728539914190201227939124247672269437704382888715669239665547469716234373917932131717818184972383921713426911908937906514879645030548967188981913753141538549989475786237635418417418796195239658325887551519456994717233650812995389693252709858050748844148219087823915366659797996223611050306421175458534889277107334208730626003101666945553234643161131442280811740688420738586562841293980200411881513283320991520487426490942671280853520862212885465556629013871915795043379699078399706272477210053601177868312173036194008212244112733942079601212681682208763406598922720120236176671428521783555110922998851964957867306537158531617519847087414122190079601017418015137658022736194509458311706398283008284965827310649832421717785291003501959865777822197766413179380158167711863774814260072714233728734189048388496505620259391967508661449140421687473424034619524525601506239673818225287635399719969327844487951635566071250461323927756633397486633872836853777958341800039145334479657480302964807373342403185194210018619193182806250883978015337634377191753278644967063290888222569373266180480136347557813975701866126140194373624975293172429340893749184839971722347039464720636223329516371492963333710935284154136529415808721093031782372181913242228822950312430316169466132820626394328936495193337822994783761259791838460177403485456013409787333962875937369676691551636244721433994159318500146854898228065694493030969659690427234405436877979779921791100171098512452231312929000669766045397005802765532600435803855922309451209265423925744574467698252138773176174938451102839595711988162656094587950374914915611844413996036387880071577222157283269931895302106426294587578736887308506888164844449600934119575344938536763630982971390764289313617296920583556889408999499264144074282935608097043602536679085730304062153750592717660993068839454883917973315509718172349141630564452478979893096956980859127007606423085929896611652406564742641536133815956704231299433013737251111525410916042282361347690697008264570594493726585989260046467814003145477902661782015917030839332544006008809340490167340905171514632180396976750386320514293746305320027109300184199967674414225589332426781629419965612097620529854053346768039034700032838902810046561239786041843404564088153765681495612269874242498073477710654969497882838081806881123622678072882803563567505001756693191648079814694081749217487147908593668336540312919902682292273463162315508491629320705363630622034094120552804669946480213495243968538373368967419676770915353674329804361675573965302529017522638847195268719336890843457265873989186890790947087659502637275477859036293959189665114868912853764886332253218560323435993262915840722427240451278777683052595643655946398825022338147964867537532980217848052060625648461103825153816145999053756413975986881958781369344581698257897480593881305261358280074642553811158109076685923063081047271207168574173251565657417105205151975099220562509957436379902346535969983302779023223419603013697410235430176356131968568637645330504173064282312665904238742745878770656076842697094160394537157843160738110695814229841988305684899871030483314916425450663518022554750955927869683222786205139208661467864274801160699778371471598421505379026614065514614640027214961932448422408583205891512833517233591185887718422576566236801987456800968172258116299852579889164047718721128009996623555117211956553961882406409353888395958597870743763508996374466466964366661396139722049305969272519275580934485536284169654159514085534275431971642878441384687236131949270282534724970285129222363829474941832298709973780336152062614502180837858872403902420295541570860810767795736132964526308705162310032122425692154948198630661632657171373412178507061462053618757520127866515763158460571334819016895772335801505565168604009574721985546153631610659537669135727299661676349354710231357883237008274131825949583092732644059611220003369310634181509556264566025039156970507770155198272843547669817980727142369944046374873863716303436530372438265359091807192472946082485989446627514905094637785304494964178540428312803709255377358969174227685889018851229264289795248836418259114363213598972318396611165438635574337097922390596620528951609765166209693246476971182481324672583891399643896902912358684275390452575284132934497941339926713682587093298616968227330531506672474326090633988357941825432197288436321878188473448747719131163202007843866448014300745460281916607225157613544573750951225792267197243916526836081721253715489337770972589853069379836302250292437383426419877246844497297533501968112751544776339468566667310787672050182415420837870674946985439215721871107713745171096288454891987461298690195610581003574824627105234899533066912808666195203186793211845647720264517045284704927105469086880690591022374400387791750175796048340541736267115768224249146765057405638939105728546087876503324280958173971092076140357418950521240008640063946781292993639297877071384718514497600692165316745069005549455669288632086307836357985422419095999542064337165953983850263383284256200684510569940940107295664752101044274688184750057690003686802587340147108984401305662861814983091709916205677558891978407098833387961475111069544792688375133218875922373718520424155410914122467615791992282858026474331765883706813755391022376691439534558387664620326462559375164153421418170858147967339143309179221589938519518095977260790657010043077350908891005270160052536633958379214949629622782591021224971183309660334768691981206532578479807700652253060255808357419143205021620603342430188406967182714568975954089108529227313176985586643057263728470015487554628932771390391618364435654329515885657590588005614630469713213435882154532066218979895110659491647822808160920125615131663368425095760591062869547542323587223995528977416434952325984241310654217541403897836211504757441700438034398723904658406508159866481743921126146449816929601046102636072398261291800567446356495037682304076262388784536579787332474899831234341746900274646981979204930934532032684473283485833252653200860848100792958952406086255987989604749415686052819249842860327326012329519417723051519945821503069841798536321016816856372509019320553317211695194323823262622317581064958030116867200597110954402566050553172984280879226077477904971206762678098909649300303262596632037238781352353185643272936310982610239065063813805918481380095213901775996352881627030355238658630625667090020298592086153444741458812080815705024876984801574774608995189114031821819042847166371907628993444158369029990657688854631181089089905874433357946004031387901638228070129346721867631192533500212987237416850649923785735539257242481641053722408327020960032920379635107174569448767475438842157028133630662012170544532850393732965138768909899221746471270714686909769676639596559974092227213160268812522036472502626202294321686699310542239202278981650015803024415186568099357695216203028668601218682984951344085511885971405421106794471981200445745160998942531125518468553854283381883744931754190682640708583547940864419175768474250020955265004928735615738972086738766365778684274627257415895521629303571916944293155730569090580915760278993815689483498523976686882762329205787697262705921899786579741889082830282985668973106590141007048428469090571529674200646530497131710115566295186251904986695553404882530157770697438930771693248400768966907986754232599962295910679390883669022943927453721499049062301072583094931615142097991880879632611323355210439516816227435730512234541457618071576278133977695673922899840916604909787510695919252146490504196988132652298314020883418103586839964038422965624371841625945664019162401897885840146532274966606672168531363749687635497480364725863444848616986333864426534557603969655809757523438594926732386566338839938677040811381454653525261759936479024911639561461977524226611025895877453120239212908291522496777852149503325893601234007137067097421064106687303511907294530589288186288579563883901632403413316213798467285498521319135897260544665810694549190917828665552217961715408008776938684900134417924510428884100527586379838735040130028231374403794252063421002149002467728630878701700255687539895194818298685872707261920494140550282692354641786610479599129756057209929748485648049892673470639402299316908796279208170195237642086688900529455237299339877143068270790813259193975360929906417410263072466997718815064691086858839769626431038628907099728537496950413382025094050743536819856363615292268691027559460645519870315094793928396283330744498615714118810436469641131654611795880418996789117446518276134284303508171587592555432567489075304548735654306833306539673391349044869357959560744488947610648856850962693395838937976609012938326895090314814318338806498698236823426727849797837247813845409509918040245413466630039156558812755488722071942548986709651684286551610908895989499915545367534612428128305484744801500515357039238400662525542618633898914530579651582957735670430034594391132248697242175196985122839819788600144379304003729174808147446432975389215782662555195564886587676832352294288316323979280427757925439651853558098055653552997883459311730555085206236753572396808527365291617307720279313274859638975411739719308743431356347182553827968256011610048734899856686145577582549862326737865144189962343693874608066583855831116225017296292803222011588853795931837188081597219491845906896021881764154817570540369481135230122821603355908177188858816235313877375668269289549319433343462680858607849663425537394686976898970687837029733864472397119036173669111788937556981471945710627196884008444286910024537138996866110453244355740494036559961508528355814768126259107100214343644339757205802865302182191650711416738709724838940157954169088091571372837261429195206420162739132916493040739625300310586107988130110754207177059953050366121188537935799267727770861882080929451531945978768639131980777448955863900652284083859010818103125638875475606676854683982557441828346414835435769855841521798484387506733265928441936545344116349623298232295909473782982472134524295903855992898542949781952514040480469650791348063036460081678188251539065303492589260460122014636590846886743933967563342466865621145564340617570876426363720832963836348857111151682169305316695886247282032295685249515284105540784848403486872664409626587284707036376765183873687459547151860741646842626974376731923152076688220123730231273483694798228064023745767255273501189130735213356441873998208239183552307284219543297513226355661502708514724423845217830203502333692152680257308135876714506120142822284499838164313702020784378733549178638955654117932715145546407913001185858784109431034303417569013416465644002463474603115215944183354271053823320457236796537030115850475156349161235231507873276398457588071847372296457864397782579544273087452333216059519891242834573949968742671959205241471750217707619540699987930615958851553706694453638176740470262571854292692034991579371552973185526991148689233843181642498350517949549948042701438053663397608495933884577683072974721774689318864333587795542542504966837282778285779857219816028956888560165486489206879466928680366123025658628260574114270554885852839680506116494373183531245852668669673156472871060470999839566284658359131333208546380309885492711781156603932342050612570293118792158387501541766814656688334727068716350100430692566533085591938239183964718189036132297798994658458954157057908582589597901199479556231046219808597831863343977265044081693134238006436348531570552765919523703197777520669209759374516147965532427676360241661508497455931323189269722701957565448556417936749792007476776049261599512815890214724886593501419098317532328589332953569791926581437358998512529335215098470770424457468313029736132711726991140493363962294992789281675525795787087835409221220749448169521875279696146006358600377537525719607888197760249600018901606279588576980530192274586153100200361261529886276336493286910650538644483057129218559547654711777041340694730906204146788799616549986748879919941169944552950110299434482118011728792910288925168788393841669747120056925977856071185134741496182765913123764797670856844789068879819967968539846036709309148033572359210392010739234896878142020365490135201077591305733351429911809759900041667436782631281606990907933670177391059650895881878703607892088174195034156206878485595104024905027107782073852130305800156603252338721468495510228796756308895477203903277087895665814778103952061281339613596965948577061620133768013868723407092874887061182564840995922389805452847054521223251872984014112937527031371347352979230760682451012030138320074328024814500590037011056021855989046863652973258022003421038286664642167974518761839415496397694995655839599979186015434444810577646790996257892800078341563753439946539118224742695594621435163885316889398987594427254985177329650381083422710696789284941045545096361332625980240245154686085778388451716641601330683386132189924773417402777886906496222021472889472597483032802948203019732520736508348979953712174806285515045415479512972495843840739237908591296471133762380198165729128839723285220038965962606315299182062220212443365355826632134425505354285248326904715304169233303532095791867394589876620673385061511209138720375780515831817342732763940840469909362120560899162761046062701090011932804084547217777031085071729036190369229258068121558310348151479550262541299214849110057527941948384160661455257867058748209868834293317407022090631556840427046125438951707226161394750457697284423206812635392633079723516862741677734925733520913421955606267026286599207858549908929273905426919354966182826908968053397617336475360049894275290184508107448153029495439806040617297803393673539378831445993122345224144753028774961739401586691809331298223436588053077779760644151502025062877702441877366394494096351991466251465585498814232837295332813868546025420420355464176574586859524831154763079174955720878964269956548720982823358112878210913297250044282038540875288610347133050217909983973956957795671580807322831587371302837235850068574188607545103586809169440731732913529558964723048746223236270872022362460876679963903682439886577977454276807665077865831933765714349402111956762231744809304259304004182166931150163792696145939768972406633017726911765346890039246723473737877863343142017656253711812853376017736745614299735468865755481083300246153088589748753527375694886242205238302695024041916945920256227361246057270006089870354589688815310611235789248175409346783149272078326670824446409896433352642791419127197396807353635569552621280073139087615588471273569784722320324885305400723166838432659146751862907553022975595009226243418071774149888040435000349206872390450116669939249832149983131753046247310547573223304331520798795382543344625437636642045848884474137151503158860259687362200239837793347583197339751765666205115129239877440344148716094520583445598667799065739333040702084369667086531150678128818272832306402470649702839224382134099266054299126646340296212989960722008085139689029808024784893699217797507271694653849512989109926440096586218144882009238492209353282252268534458645870800334680463065391561756528643873907641009621016671187733777575666986209318996874104542221844752169137026168136515801253153277772791538954908322256706227786315281146752408237808790055707262070334215095936465071030654275835484014439320375887294477107517005717753728388347104081992951072121915200668789709837978607745693010876170278465036130249988076732790979426311257533701725354199802316029318193027754865405289471478702951076213093249545110403208879256554883420883262303417356938921851512207804095751383219371340388718177780366679955901972314232113822941353559422906802067521528974287450025395663869102566832424919342701534243251697250246157543954353919773412617955623226711445291241217023755966930627362502591014432349141888326297423979771318119378728429386886196083648553229857619750933860057808655211827040371235042647410082335524300607896837204730187995845501392692745286750795807423883583630500333733665937411172182386562380968718635846080559711059774863507882312278748739043728595227398864152169299171073569066024887666994433273080833220390195892351087303724317903999017370339871308892347503719448679115766825796229544184183375263278530335437208816371158903948446034379116890181262547859686504228708844855509724880438478985945573684497646215859810704257074953156060688052499137105833996908250297190781023972664712475819653645237361288288855821842535360786581448160501029207016145728234498475212448486734688206503005026171106722813435022056075019802613206996738551022716390142971475285418395020532912223136945982366571665704634130641711214974382570232758367184625127210265538265113437461699392125180532445647807962270901730681904303646004177189511656489559358803844816912342646073007032944936727359612532579218127707787965675602127698006001141936464454238314431199534509821771949637351325353307334255860446766676807577578535890208119335541098707052540170665839490740214367307531762447222774133369317586513595197786446746436648161360519543800334279648147374310592318176937147232575523329692492402956905547978881032237165340880382975062315091777862202270892816039339008621735939359365837685213487558727356432037521419820018693665840899635131407581387203277543897029912624065625070326100393437490761560877103780600933521795770308424011162349130206338652561890379568142862388328664522562540621450420708696932204228191036804028056235257122851166236623486718786896324835487515066584262370179227432311905625627650339904672364618028104585013616088567978880169154857128771790916990270367010867119419560653520990137128180646312983415828782984585544443636849437486680468543375353720409465235128634442969320225683668643267571985662771872914174617593595843397276713291952818626939967479858270207687108834293915352980558104821122560140276279649377940341000405604513684474546801492888938796602167334377406941867243493842454653224254452365927199509729574531669782276363602550964615608863955006946429210448794655354644064451302835827639319167238853974987121331224504850333241655158993469299879945151665200727409012506963889384655753901257947246758588627802246266513542749067484612801025207141967892705101173847318988401578119093873289216344841072907892890692340962031011238503674948549375437516716423159448043523354503077465986016928072251579430778001261847557094963181112756117333091117840424725556448962965242946185113110717416729647852310656100117056833594894167577809428702777844838636446204650393762076225605686838186775359593064493819232828644741520584124824739019707529793373518190483397443478537929041109495688818254604935311176372105360215864573015281268562325074447799765248560618191352665547991922315580497991442279866257350468887358449362753767024758830325509167352246168669425646755929396240140206204782107364183131930086811413667472975788887548587659695766631487331902806472832266279288811612689798559692871034264192271584766780807865402148530721277750175181856277603775500481662253185745995606627010006545747285906109574625420265605333629864188095409525672118543216149152568106470604821852374202221225056206870437918411260891305268673628438420586134698820488301090322908786821524821430466142158218331610217496157170500754988057126555190637169134619931175674893027393127661089087235881309624138326168256993837241009675116069479587620453573221590638106854429032679126383159201657444250366557875310531144988982454395137449045033544949092421565875912354686745387129300646846206810780872236883799072967990008046603251515638205539526667927300804693668601413806419617729058891500507883191618687124373156298192899816573315961309725639492998620484836833870292238120664811154731028166130657151287992331044287903370895987029708901103357588344968023547995109434233684548428989803666538604087307265241001134343601259627245148946134203019496515784115066752914308854392685762223814303622904721643382304466698561610026280756838972426883090693301334771158076927788346677761083145140796851835208808487329715214605707098747940289980574469307788871109992054955839987268053474533116875425338662768113079690656394746050909356604204870215187399645314488906487038960376620823911499165754759382933194740876215425966643160930371918119114237922590154538547692172150328237884687488757047239528917170819972705448486382381657492161642322761717024813907959004782501074754704984383280816095950466038269716982739841989155307030936183833715209998811117159928343215579248348029396383577946104679096121452785573982697795002510438199656308368087391747090506445606143624300463893042728599195588414378960439423712879573697060245965745141903680134877417505385032911221397800362843619650658480125677146523446753747078124265904983273296076202864240289601791054819804528671953646595623197727417419792623825275445641510707147887476421546578583719004388473442622477522867192312693353692445426683752646789556627466976213739516490297039701850137063569151794197853154312227473399767411323093649044457892202182795850108276659458084344368468699853711214461772589488159380832726707236944378481389989497142838382617105002477852078132572482803591578409999004791258273170141339282097984246598098211959296355303446534303420817421784959337263202101823433229727021570309378899077431728086220699638590905844838923189052818181263275967252949923070014923004179627816677176128263250126993922613425750111755796593161426977759157680973976601025152978475229335530347223688848874878942504028697253791804178286712091469850487097161434570204980121884094337891916555606360311765571100135352557075427435432086567184063001387316619581342961440258487222481493073977271518859025130169960129028232796958729034784785411224922935128622089521512835046165123297541119989123967856938252015281210451033817948538118095766633965106305001146825059066815960408929945307571028958760865190077368841956170493693168219182450831243191018997128845399898794162794476885443695122073160581903402989521636700606452583621323454575680420846996244290634203216805148562103154645607112245056112532661941113806112354632342549894689268660804603910633681018525696973582849251943890584688033202306705864544864450698335070950465696101861383704534983001175439105936297994751793787786737324276520112333903233869162423761320442721601408091744259396319685279914498624666871189217382664783865406445971382519836205254393803441232391956530547263558459151830144264205315080961195375224933210441836663401223498853244517414078608366498261057888161531710571801557308049777973024486150049835042101782951674178067840633593839522312588431069700820448056298697948350070375842271965136984189220288731369184626992988666320184149165669241204855182674407374804520361079965673126152141552420350142188521891134906554607956962949261419508130885003304151028261960858009358203899147589333555373602882885134134565210368846067273406846962786944645906995477457906933875172660355823806292653287592964858139435499492706340796890200616361635863033632955639593685306715348646772416702760406891521578545197823543538204759055667480416804741524235955622290926346091272699996834377124156425903019216539899809927529739196833034196417553794417522251317170059239086474670181955368658852009894986578828396764993641733552886928785958055526919800441055838032276314900336228546186039209848575338337942039220040777740276075989667022518715225961879363887022624888770888739033681481511715173112898936771352227915119529775193475644196442525318337428207917259221276304590557250640919930102519752840458506808221500084295474919769498292086172629879853808526540628330673103511583019726224575373949736024975619633234492173737264857608961656803342516560353448407983367453985528056661798984806351248665557390959575845070573534406667271846417199308024297973407216305341044302266699885227713279988472456900370927491912532375452249874751400724934654531818218062863022627201614215553433422933166761066328987923725129935736300450342822639893378018465442975247146513544445920700248971738431975128892083256321133315955083649229044148453073854049787920311785803725713200738630651444501498568315515878376941522442705434347854257593775794766689235600183459796169662068609739156949515974091552472571550387115599834620037124124386793068817523403083085731830366027291926998119665478276208550522541937749580537922851574751089175487417156885336138809882761738797125641379080287928771688037410979113505913662583218051886300030729874525577414500931780333893419265739095563529987030267474045086193986198705086295597490472427780117858949312413684691720740917290303685924824423534090414793624850171406042133278725515860176610717478095283195215822233137279397511010194104116382184308140160091576858953936785342553636400724798480832054249971367040482132468053315202228180091590832315054936217533204709813832039002342500545962535975785640787038537664865374380510378357273711288756151198449257485057356034780486987907110165988257426157622053333051124202424574442167160569194073841600656366143830232002853620294963583758411627338184638771247794346664398628530200719805884559106300468758821314617421824285679507009229308993216214501740704537318611601984850909830517570807228482189964844004810767163007202845339047385523024356351026225520516772380633098378148144078108463750345670686606043553671920169211503784248235441234371103879196773178633769136837652115361635765514048076434240412038671252242942808760086314002177113444480530017084470029015004905636153445273004416864194604878577113355168459887426125466714090805396147887786113406727495692367308844976490457453484231371964202134275381711157767289618073791609593440718859135414971992864735301308367956257170340392945937207119783126595713305052192484532899155173129192628383756679520627835392629626785232594035580807026099182447706833553612392178001915542169670679342851474156439283346595455500925812082807905451324070530221770136154815975668902512871567144080233902306041778093621973348237119721301248383257031235427528722758739912308839870166627760287293764923177651286792915003005399722310412911543874475928355568189844622768046920626035437296388314934450863455793618367611567749227606450270886217952245826995648765789944675607534513746571598240852045756580632308006554246128915193399224927307243667707085935112155029819766157081381436396823346752415800687149107753483218738898659651355334237295185909401422630412892380013992067350038645182988953440102066826173085735208273763548398225996645130990766567263137406083602023852704743106961128379367093285611320947699188584013134221991443256122954908138580852906156537504981724346186262446738476348859850015832705036074362878252946113724981009148056097811175820006026448819466139004086860129760998654527110107930216539131823507660293786911728200162835512397914272773740515202828749237395924826983769398883583129529500642488878580090598322350425470599644328880350476311198596059790022412294865138802110160326673914743015018757092697713937848663878490713473634806862451503727361544234943429809411828698497543984051733185762164359133701513756811474394778094466942544032854283641558323347006566430832069181689094474276668132260559284938375798566481988388255135287640571123785988900182017490173884817772796735039267696248351916310341254373319873105030651590813409470502262227958405570949901539734312773766182747072666494523593308325316300508082558951935737449278554524136721435827625007654914538261786351264391996292377264375768535286229580771980871410847346853159578503227803679826768372118136642221356035976483681117702741539588207717203174680158565843859791837226074931246132737271415753927387276488153012005774946304698278001329228946248548652132333258882373744699265069510071282063943344867448045025156266816682290471443050113539753855007285207179268073634216455026062018651774718349484048147102436143980679899417628587547090028282670950376078881204599807954609813382760480786778591565676774662087324706258861647379510566391742079638426432464301534282961708325486454049674712383489640874308767867154392904654562536194755785866225939357126376203862116014972615805023601172546903077614351493338148065432114027517623465002068702069229986921954335838611276103408592099594829385762304162139950293781503151140352740890467445805200701431079446595199882534006591593237825977512523811828399849561602901515108640455754296805035782027020036906880691784747223851507272353354462848097299999870765599596209935075815036874062188790444247023739884054175893554112789644359058191084006112717328694710325886101049747434989809914921781959762073175407510327240512417947254968162351781334695140753786734000148763534383544915768859057455398644431671386951889514347649307017984294109940656846059186197099795936562173153184025143344558360171127434760940933562373182670788546928486187504242598209402260889749481282608169077112626706210245333182557350507643167788392911593882139084343254815272791269368222083644753152922894183546577244619956502340989106545194959035958882481561537969950079693380347599540533794050712769113464321652006889887505184361732966264946794692814599924372686842445732847097229520918859147613655544004036762658918744429175097661622769136503820966659053621306870563730816586728437566515713297324626707406203276547055494644830617755377769383511588746980239111201249358565500286001269193060322028579806174541804075247225597630677491126994235916278599985090692370341478302285195777453157542800688827302806764017695395852750821311913761449829472520568658632096502809345843140371294374713295275723101711472344601073537095502820496297167833086492213965125990424434891420930428565521930041575867358009735197036792352966674650144958245813340098391906186903083470783499461169563191734198171515364857168973453393705519300162784842195807675932552611807741446035835069660329325786846989352004275417159860566640714078991167592671376836365246199555903379947896624559203242598760237167285654881775573258858959013537251462256854070588099629514480833558138642127189201371540676543709401863122405651716598892974302330173097471407004353435123047976573949104066325134193728705179615130896374928065977594710414574876338129815152899988384484100847601113296096317788297631228223755505326975140423471553200289504632413135288574116516980276164798157972175001869263901089447821990424763556227591277865659683265949032438871311505721875372170075265041470057920962830671139623061947808146947824882051474740326188566952011948278603443847788590941740520549629426059082943188717446599220970291451769696142185063572272166482233925817635761751174922619324988810366244205107252297412352485943459402707945476709472128719023944952463685431114296723623152998600367883004348871818731975705903161291353258315769493902373297774643052685818434732390813513626759495291682789568802132934751116641284374453732877838765991285364584453143069491294861945955949253141604267195675209542298398916768968923085621943038338924130386052649512377746181203577250870729484087602734944554389778746162881781658510566144017772638647268094236995808739467700164906454036224938048188477162682180159466964513454565942834892230723921197276016795903339019801402420240037541443770393122643866414291250582827307654274414980941817421522630415894226738992249250527370655663115966477377711002055975652962881766552486972977963777436902430635991449193419817556486140994086634354009692750962503816880469007392710488410907570626873045700998927201279037920084269371535856574055637400963076490685941729923604113894520820300552046329832150596787282497139527787605976422096102134029693112604081206110363863498367881450671097008860846219158717230296599311488285088510058427120326542388720455442322152269425789559000526654960713044665638615831340992457056819741157996981878753456390024877108406675894170731256227634772108843879445396236674345117743874199399441205121813539101952179758512773651337949844280767246217816758601918481281589225156873999002288458108088381019985013301764914799115112385641508078664041966579746454463643714328425241262068091673762457983992621108855310670633552281528452283208942097662345317523803013908423220328972793681208411408701333198531745959320638569915355482382773027925902519243704105748270416712442073088986995893410643809860219699916506930744778134949813859634830345409279807058118338383304364606012684100744235429367956992308522211784881806914649106674991675449015582378523887751910145825181447886532067864727255375847497531387666745090084273818490768467931554227838127409494105071125713673588740336050424257037518636902272182892577702979703722962697221340315142346391245783157697806066912148984449775118906741400686263194759006159328026672797548763246527924114873259435628631349753250567002068040407803726841364398948558296243254099437370381834095053067334170029794129082222792028788483847803437708113943591909320416692911559080666462407588155113570908441689217376875171929571902105555051397360276848514347370496559657687529433360677589212650973660112705768688738905002278145871068485238203111262087837640084746367856593810951968058190448197504456914677269545205936580878654072565029903887526261014485900491495984168364294117946599260223284723834912049067021709627899772970350427976688979504392324188934843769922532136558084598527126244691143855977118597624627786470399145092066597573843363469700665457955204064800342333090467870489907409670882546729236092715562928944369133986210083869895987125851338806330249332304272153955159790917086996535470567835862805568605355773589277085548325472614780158752051319206381734457499603793954161304970192495778585470240918044721616208957168176751270256551131407153614775132947813017420060403247178803254575921000928972149127606673734823717199672327140998262443275682871384388855050879708448634548900306452247234235451821429841703342556818810206212070842508812790273040945283495336750516320082113705834604963848397927160910338331195354842513880807085515566235964473247349945825024012468083122768699243120427588765726078740257141992111788826039080379875391703898532093360141001026908814141485351311102184109797561673381313733967861349887601100724026180595188777744756396861193304730348276319271000605303860422266479316879910253811086202510715959823379581375683463099042710757848754492128935501810246254170004491974024533005593178703664599499193331906973404412425061353491191588236773670354942653998410147209552411468366283622765025977525284366982593146816925553461595285556890012541302865076432990166422186024603049674160101368779202586172506595727227903960413573845057477270523581185204105846788713183859031505530449594696009047888635059565346437601097648332001201624397946129542666256183167333585630040331949386983737252322792310180479759054501863265220511226943884339860479195849592671170876808172030595539225773641298221737574925573406056686343209933854950433106021686183235036214243537651458984721486135921275646845844215146592993566494220352429345323789391851738604418359154181509176572669156325273198725391779720350997846075704389391387284514444918166571929595163559048689162364100798509448689087851874870750566054999531334338162708536468105970047048884989055172913451644831202571405554026838483817997698437759160310309754084096093068063758916271292041585352327921801868154529562837192580832279321446336924087792143637511672922771135988434877984040867291572069375852689294327365309477461930178402583733607123723819097702717378173945518919176728076747826393308139602825165800657195020065481692130533738127958324305061003811205383794267344827702141189750370463713397525754739328509623150711808489036616388714013837551908352213606039868184639361243218661333248982107490153928926188125042191557066657000733574926891456268947298674757194085884448348835683225094538069541194591069010439629551012417243788612115813915180853911143624990806457307083716624855669730622414194797198510874519813931774551021249229682920310391276769759432178263875375070516562313880764138249283996017194341986230788299549501888890818002154221263460451144000419864762814867130548547767828742094929912288256284279541761297177647571807021383617534924751790161211130656675092288661476001873586775863194595464033416733317206298814410890776109265976784987336095189888170310345708975425433400268463343837937490932183154323051162340304864538479267618983165749334289099544484289817076947231685387488827714840565422192732523674566600379364954123646288289185055286889720802225707997915452610992281802688645575034335104261051221151506330164552502469849442518258585670229748158057930218379457504704308275481936592768157120981676722444046713945316096599142415679356509640477677091074758140556797451959624096764145328528665750802453015154682227133210500636721747843010402078191121327304724916750273744546753940257344046825520305066164525543220256911261519693411577021275650857465974412791430502000096449744326740631894977633760469015220518707469263044536157748484946875405212481857205710112198013425548018583516286757311177216332915306943645315339635242034319332842808163155911813279368625936199373287068293934863276944051061591078175553775708885656091577716414951621840868616599418116931260066900377605337245004409653222198067186285108727411350690067824264671636236433834840437769263754743295297278044667450095286420222016229073358923805015201896374023874874758955823662052169476301186953941128647518333169249819887330063028793136207778039597098895792235891343075273513099177244502671136349843783497093386355426124213652933057963311514995428275988431046190249535376138587990082290241204266797227771473128642988643828207961361020284462337323423408972480778401354546041618513375365769006228581554080602270927977544615600482016972094724003543873575493193690733125810605943946301796632889474466334645057880902688959387703354782527208245475338943764676344179663923196373366653486071823584008150584371715046174433996887560486043134367208793782856030228833479914696884875157253349711121308957846994308367454235000619588175643408270246945373579082472370713947046097542324387648605922624695115655831405623591825496724687635714810381218780571342760147948902315064738041623565431586281139240615171419566423130646755602799383055958645495808974755467996010924387097989751052647270462636516790571176535970415035338027752383428057565047347340545800183203689097524020837842686722392715092855586475182992009731632155638431162931575363250009466613876820481290225866591018322457604669432498633356626408307633845829117720617492575798990733265615358233183742248587892449019583200489561042705703009834394781313541368375671579401674177640308725681071285441879630698326403619720035849906660403505618163141956229920234710130469432616855629256368485064044058578904757211127211173520997969521832548611773221898867233139432783949237984204967632228515082841505093552597816596154152043643781615121497361030497140684382974656530326644520718280517762336208735940698385296015526671737490763027805245636721244694522813672777447611241985506946865299000975817614882843037095496918462315400495888018993787938553045086929002194123140847424637485216287655088887104355071083233953832540218180912153730295544236445591957770418948488495821073408402185448522936122521661492405779177191982407292192992379638433123401168847292635290447614277360034051593295952508860815630762414905361077009177049774829242032289713793941706171465499899093200574369087903724750899295743091043500167015777834340127307641214502078706782688495134245718555583886138267775843743505412721772457482659241837945444622250890670237690407937147850421959824179753606344540329411830458997160035049560944536112478842204545432069553874232507151441105665957797253397599079941887233870958928006418874981725085282505067569794815717132282962411216590332650864293941387322920575002857365614533946984891752240151938129473146634766878011448967664114593982959689176622871311998631206773425171331833287492077719025393545546302677232820504482462208890003678330413209755520184435264540557993859892777344175844100467019395094366320273083973115238785283093555086844713330567539269923699377830362801120689687799732509888610797819136192011850014584386447367016836419994933303221456778752316881475412025569818670988560205073750806490572684944123881424812501330828135153756046477509539155539206520118130616559845093351281929490134107931552362702654895396234148546838853450747308897752613469597409160016576367538819720428836149774655467889053322262799258805456899054399509542890520200573832169220605496619981007115939527277668438387100967043418070784714458687248199174146361568353763366451928499592363303121274531372448006885670252133285325457938459088332592381454115753349274815907983391014473706256120441893809323052286013292615517513294301089122495508405885663986800418794761088986281745708418225579940027340542287138231040645207560675439504528301681861869983372364535612003008156637503901268432240902701959058001455140200391128024723963038584890126174516236991711848387640470239604793575799011848754332510775423974328859149214127659489340584244348336669880181217130003471767132352596459317941918655746924952039801801280853653515709376439369923413070967360311616279153025689717393810583056397463683093309481373558716993075729067518340833465024738802437769496730287219202917843057096002083919404268302213674352962214643440995709500820220296633717038706732151965029369548267578002340369955409899155864706417014043418204783912383938542016741147529324160647045841956327209917068045435441109639864973467494786783971521096156489936276228021648195077480913535854205663952423155928931289052555962488292749730700405152137449978424195062970106292283799012165723136268737069704361664478380438431993082516978758960803098166526618854041291509905358372122672441470355560130173615462934828237950361642442382244312451919876297536108071112327526224911061937322731248995241876104163325212485783010397562865208069620581736515216507770185893276898184136649047020493263107839860256909051438214776209169805629279195961171192471903261563917814088576161861038829044035787660661393490244535762164116174924188199322313066159022422062439238538646274694730468604032193596933805389001030708868290168721650605430324683332356705985535674676056276238549191380162772355038185957145087605283027567791195397681376053498320104813084681841048602387470054887904240069151361336307357163031667627657063901006885465329547984290158683355186430405700438800302990852472872802859720338362850767670310430561972774257060738152496453175305469490898701541587747144680584474067915933757086025400718976753323151549269967786518084090869467441126793512673906946956854492711528273949395941247534708022852424522575210551410274070099126747889253241713856564305192010929559562311851046851923346878117119101738004366469994640786529694430977802828479151320572941213344777042648257707747991486376141617276540319749126351438559962016098688055740462647864913112524762318486293486774988940606115182641651749311812052253198695958843321060151725832830871912794879561472441448894046116915401267554050747948399874947968595658193748695342772897377770541850161654814765013613916644154806616989622670231649494762492288194954255291671152254423800322579318358548768565542709458657915480462700056874344849741088651933751137345581806730097467191371821428503001036799406206353536254529437266643030173912942483989854032450434849271676760144240670578766158431965704772355369868101359049754879284626171281247442631660923492209136063692812156828491739363374409561075407933779285894102234425062116238952741338733856444830741244481402679033347931020268920891193244298541304423452658880178457665541886677612399493000798213645675312797822546375609085926398330032816198177405645315380169492098835939177065988184171240500525374476272167103352964689559447046327967049837066064671536205733341284679061473782901901890563998582494275130910346231950611561470442661182652976449324965013501815133115795139574647690523450488800504243574569495365183485574662724406925478111078672984596280362863124802457644160712253129518929819199897358583412952452380257520507981817089985695880742739241892905284133051740166914483865351822267111806782757913675031117108150508077913120053080399203543896758383140864709061858965036968121316639984770213044568153240304125752582607520472745222460573048859246133621077646652175207812842379365435787169661023529541607966829071594879050469549713430119628375436451166305414346817418421180998025425704406166221483657473690721845849503459054829832809848705246909648912262809091517809695544813401584739717361842498427578747838965692923472774417458823232010155789485822167833948566308136142224968869734693056728333481400448125077544234447566335997619689211805976308153351122315710468914951298325416668620541072745281947280744271518268516422459129886493929957651503393883209692059019308919305175857721343061709957868725719510774949043099244835712470584005560414657420437379118719551401044379084086106141341408642559501501715936826638080171863336804973393197005856303038179348751549923165811730646887383407656015053657491072400497668781036818452905941783897088706446492422500425939858378911139316717468920547096666834433656065516847319087396273458253064622954572570307183301288357483752556823499224793449505240382180371982965185875302727466745533252256707282588297535454670584153666737690763238266624744445071050705978235109990735690263074751324130376178361020041617299118753142491022609859138604353451788514429892641796785623323012372105876460301890429874682612580855707626258567848174892834013661994672607809758620207589079100437572932523119994723939081789541812345953638082209860994202109348076778407051385358098681445652154111126593042707507790107254148990512568431153601590991387814677871314340864439116834158545782499677627398320867644416118812534324610209775606556972334975723223022587479274180177974171582235534341752712297564132574804414416867372723656169600252946183356718127162499180528485672913447119109381683957191755105430066593451731891569894953913417107378387480824722263066675061454972688747615233192890560018044858691913379138897833287759630525018150823039476774961420520755314716752689854791692719971034319645929839341944744235911633153473196676891969280046811959890597134775182080190358198610754081478419464500588997933641787591405331330350465024835847626802387552758701596739767684826691343289109826030532692578125399654035410131912281768053460076707368973693634517951351388292313485571278013826663525353834491153684810354990301700037415346197319124098773267533884589008771038802009006605578660334072967000707993007022959767792991298084428348429959964298483419685334025096258028641579712316707576081092651463101698785612554213830521942390004187068830264196996651420307456159613882195540870077591064174936813437914804938840136386226431901617745184975203989006240187188411277352484684940189299379211128159375342098820227045054059290483924322464978103283158313733189313635346546725525030955366462325565373874109254721092261739134930011315923633809858106018989890588502243439373221860370437628381108375121296929135337767504491248545852749072512809409014371078018492559958015752678828975375408341470137590864682977305133698061330439909831944957577860137156632754528964286722367110895761321505012763555164213308890514532768426782430260424690509183264276122865595167384558990553291488953746378032430030938759076803361428138759520696736851768261661255055529930699344530526165094616299612282998282430849158896015646634919312260416680462936540323687919926642243904128164754409560184100222820745126374562384389599747180571046486513082561305325778827161220868231824283908918466417675023052686554676937086643640501375480907574132320990750390504242728869271581698420654716668865548620878564302494530771890537167254570825550774053487854952327180703413268712245701551851624014801406646100012515806713422590047101643229125516374046440714587410136558908601813272750039145766193037493820290365775035067402131747268707318180449755954647573404433050161126460392346294284901060634722929603966166577652475347470898892311751652211528097671407017793425063872111969497751869143770732056865575616779484367182144387736224982568990839296527347240178962114587421731811571054891254752727778641032065077128402920134703660838697797257190524969461923587937173298873745740451491845132666508916974942299323737090427827461888662311323955388810152020679280012169478800018656433790056781292057181070459389074634229432434668614669582534776332412415856924472604399583107665728057772695586931825338257892050341173482516111685030308592373612845886170819208941421062726442935711135887252774558645324125920906052144291899972470623717234892830207130788023490672768687075446167985089875522978054899298722528492984388937534887418136719063833549109206526647008163491443941777846053271282514259678003135621044508250501388343454156209868076010346632166304590287261328415145553452590020834203055634313983691714331098806750584969528234616126464397009602991046089489831476197514700721078674239009427127290593551597535646739191336109034901149534144482339006749805813396360583892436458834897337735476957805639678602412500348889528005817340342658011984664027743290884245666094447239335966395021169910978116360088194551562166143631934801196365328688064466089863042781583727990684671886080993787169695505920303677435255318608130343310383138281364445868788821106381052864208112547102645808132108988444171041997228207562962048636150480531035057002313293637028237558336563244262754686096206679827318241714085647981133400320574164754619275770362628706660189752124636695266082774699673829866922950838418137674103870510222999719324026066313576231839396723497086779056698746114848999373043240256514629424802962907212759669725930698259884187974575623044594777241421974480442101726094685120612295084034112929326898337188785341843769121935622384873290667082967740400383253912213018215796051306026778798615717174041299609030252889783261229983091235280378964884939794987603516213759118853707242605619731733886213846428212853322884098912933379882570561314700082332819529840217245096286884096260888706210656667138382896026849996620915814600317544739000386066805075710951841764189089567580622066727733532255520917204560567205967439324718021801731155544303260670215865515979650979820747518148769999417991182851340947671421026308782021671809499122143753950757256005468796728819067516292674887834349870076775419442718064541712370434133938395729933629139471813121754231354463479247119737708718714703193420006360512065272685264114267450070261052497515605545571466990756888493442138089592073022230369562945302513026888435381256400503362726307705528735805369447839334188290773111472418850158456503900638738491330761818001398589524012779024415333982998146624797091201798393990680016883196985264831051556352554560643685954414303041913739658017184076489965866223911656836217625093010628937892378775123396247840420015471785376840145254576618193815792639085481466429920338574122187779754186399467868059696780093835040731099399143740643400106266335168335728223812039055156077448304568576032855610033795939245204315244148910610333436613284465783974857818891709740219030307582028755124366483822494131717877929522166040739572266951094257612970671370383564208154091021092304545279039488000474297157835358309061964106569303688247761012825082462239793946831503495811439575271914999737326361884037606471955764025661211321955141343055718972641126099448239688682151000429481198133878450922506280785577822914163279992370596327241205894068163748639876072287867312391348927717951470867811625641044171045876473063375445905631376790847133222715179799324688645851585161093457312996917183394197977362153132104537867564124615419609659690977969206300871998415733269157824071270645721914910518381718049087935301272736223071572411312825680416879232876935149961833997528585754820446924286428532289035830974402699176027917807193140951658038733373307254894081396904466736770717171813264876236558435963824911954701121733794612156371592965085591355477351349143075308034975137665547647113562604469781135155552100007093027425209351301021212822094626833466270989884775519833154347045341741254478748536102796844126244813607041609306750783339874258366173910738686939927657899487503239318403044183619813136130109619497383535141236191625671384348557078425324897296471350406727455902564843286864587993500894633941084466664064562581019117417743501054477846122986264399898925328769861436794988239093563856160919274386752223362108796619197774954953110061225288303049315412187065836986679937318304995993022923668530469779585095916233986798639432341943625438206999331253507327110374799931398136866176402490733648655628590466693740474176705756406633690932485782780454770713813363814878481391211623403207827577768243381324917364934922222414692539849703428661115216261049616093477817080937925130533521431715079762526474124461935658234185315576744560273801358153903506941526524810049922223632138364658040079832584774127360450791966200818110242486932404390487867728181682157650087112603419315957335069231845496729423088462624414449497344787291257926330561854343957637446140893767895782991823476302833574825148169526903456596955899251271874437427290026797576764224485538938655725295922093770602804703016963120277262361688362961770089004065559376386891241896451557368357050235817517987410329774119054848443475338357740077748081300817784260327726402926805612769380373394956930358902387950803032941668859661962795793308694994190904619396224614296507379951624801303050896260222395424737466363080161131095877897737677206677117364940652921883118924781885599573222598869572384790941922182205352786163059948583285976490651865235078295425540063931384434540347512808135357864947496139719152888313055439761994445145762565922068217120770367252884083769358472521418552770429730181637270501620634390350038789490318137521270966685005081793013279567807686851000736807312690736480075497580335128127379066943829467124349527284580639160108282772826179547615087774776605905348499229229534256070586049821000467056857725258458926275595035702503610212396140083572407133477325437415579185849079250626406753018185837678638304708623602313568313515143405055344329930607736060510390382087879070913375711126621757043755207389439413830550156579869980340825476250165996358556408627411322700957080438891595754279603501842495479160020437541626528236736797318384966699861315534681390486540727146294228273501441131742892187282875525124290457197192330158251159245384928686635893855999436668704427359232723679585401281535086008440696806187012635467274663699859511108483614727327946935689935935756580303434967778668090886647955736046767715659092822125601010799561690308871149212173351901325127821282926409229323868525743183792177328799477330209281646620626235681891019629817409307092587028032059711629421627990513299775356695182068301578594468033756986866774875130552312905284495476033629054851839488874313148149731256029459460641018731827191905887536687155645207700641298392608431167989441659861051769595118485685953838979620021902767547905416335159986508246742232477500107924117421166896247730345176332001661496566036452764589906687542216075587303108881126268075739959022235595569440756323271335819133498523258825999084976088851937759154664239389303953845817446013441589310739006683950775666041473996313719603420585510842054565740930739170624055691918025307985263209989326511998913719800129319483985112504350793452658599748048236549359781582044714917598530304272566769122668265313754115829625349041251966313985100495700797741613554440476666829208990814324145779864143509317945157964466238374127961678847795987381834097522120780768231919770222974787086634392680043895739884397588757880526886683396684597067348837452107933125304335050142587137683522799399750422515447817986249785841701835179270060271704140579125468776622358740181318942446821743799311197615411264263269877999545617983472347018587344216230822988770213458216453566938214256814740982397695962695162041753320900168329920137466387181097818382965229075598600160193601123700988768336493816767409325525661945886238396136455146341220277551381418414570068349487724828608829153963359050136728040423955555565944512807403695014126646575215592374290377092694571591306898827258785461734061476676209607430409711044506485134997343219277423985262955948264739209000167805285601905201791613704105850479207436995820480142331470564716529933109011870156222522304508747285452422031694215289215263313355387951246493742302513181252389992645590027533428887095381482185361095965908563935324427590543579586035219131251643773588473526488070689100057172893788910001031738853108550514895352098589126260040159981180033384677622319607393290955045069682802203563850225537285236902778760437231932539674488679679578036198042355856716351534657879316263251721441798667281863568433484503403415219460840107161295927783045038840145353321310456847018069384433017275928460994036873007842762764070806855939856756518978670258829584494788199188459698708789888733337319562438994033369180829541426332482710847825768574239061508564805182019308722439697365546216638776224721314815303753020156246359019767733226157495507576031122775702346527374939623327453127235718302512605416603007130927016256826617368439017858395780677731739425752506897637882775457805170274072333682545077721970869788244888925241820886758183748563982974721332533963707912786049852892774202759269875991670984700935050119699801672795164160709003035506359256367571175055098821556004377605941856752179698503857765059828571502754599654538893206967150829170844064304760200893512998405585199391823658537158091295059820533595409491628629398811086089856350518929320459782907874671047378897403129098619484496676909318103827096706287021698055879655508098538277971567332250027930282039919002033833167334889907026255735076908832018369202423162028809792452172346446674751482024699847618879936601985111235633945656632712374275073677016563612959825244839958908846232864691521631544058631096163843275806568934371999227920418475152687159112588021176596421094388563277091634026100687570850156960986476020492444950068067934047989252728008256925402135421812298432187890869668028406848709602291748485723524066354623193012838987219030090477738784200097404511774003512298880905192067992669430917918949287042239069161855414973087629145453547871367629656421093731486987086650347854212074186317485002769561325128145230842146988148191618042493531193980488842525190472156160961920621600000456111756823936880195810276230552447991633081776045900767712724481692710521116911149043500146605485895951267065083869337988903679736189339807899477597824292232587638544439214707605248410640228809738782535391417813554891219041384757581686378236107865641594650044777012459727852428603261665373499186327167862101327105872584819571108047135766793362926917565647908277588046001336994773419700148856630613861214448736427565882332549710598179371467190194494089637332621443606706187935996529303594660599883498703790444662728701135887951374590937535300063080756537353261985954949037936529465057525152213065895193865390683655381588104004667799704974999505217940817262951033737942907733821542242192356719657914898429727045977762956461799380845986352034160515954370778347970842759020246091155347661593329064811850375917968245738250510230860730934983446020207966569862714421306292797970820833776327132380052972568344614724936861323803380836219946914001975440528271626246968643369613147742356805665185890870396825952431015107881240956208758200395504184407453195154497537884742518030318849154868066601842813996210385373049456792635674862878094414172002026535170132764511263202221845934520335104148527173614082451023678358630729372131540573660407798019409942938042063268681114065198425106395121508956574427089512312948596655282695877771623452650448016789120843539552239147005278768633470780302071729117493768845084209437909298953929240429207413598355785356349241612541516843859679499489915941480257004985408090735916242349274769595999961183086870517368922480386469297673724026173476354996554855288622920599981756812588455353847492401587608933672636087069126287222779717976744462167516835695810694616260311078090517572006533508134506622052672035733270962974204240891084422864265729938736451656351386896520268741941658766115318718210672929578173304893382435426004816961918442921705973771262753321698879950106208153092458213404118071802904212984165340670723087768875491320615302544588241648038044318722625574897140967259344336750777418845717809019466982234151509265794573722999101903333000237516361676517134907876820718216380895521356825761761381368817320776575012965613837473566041612063923211123101084301051349120726107264716424579849800260714165686318525435420946575018260100374379872372425221545923531096844604409115611800199162290635770210974607147491535215778806302481608420624589473388009233118354262934024537954336669555460019393147425726429181177809201362184813124907364604592640612732248457004020354874595945693370717646352623173965680824811513916562771235618956463357579496763557691417799810098908987653105610885196292974134780925417448957165484023597988111116187521483565181491666239049478105120207786002008927636754486706694351925802594138397769377444320689272040912691158599191970352623491060048282908586550166102856647204909849650966834182251907164018458190893841834619535666939048706413111461150935152935664303866247737047010210603280138095188616770504164460161630785246150785609381348321757750171753303126270173107517303223207410125172781682031673457594368061206141746194174448391911691396905155253600974777073863618331808625387306198552043812194707899292325381948541526469083657925214366519987591357458478312666789867251579997091937108053540827535838265230072869800554735099902705453959918465090213676075072139900696708287284736203483820232229845919303141572686675160184672052233852300656456831821027991950890698649671384448081173943631237485105745320430663675108253329185675858998292380434537493047081106934937862475904275540829045409054080927951532709069534807312439806850765588173068306331141474321772516531663345612111900209727248456805344601258336082886234415456811720967064159024779947295756763576793170297106878598858806264902002033232117886822416590221023814939568895778775345570252503337384817353748265513658698289975983367795303671459844370673600203568975110125895107073593404352646964600036841971774854818968529330244385484265678220720720874985657172138036486373099184846409719383071823136992654065045274340466468688991935497469002728185663190456235800207988177603066274876347638394017085054262152795717554447727770619228585394153394241932582131216333804129561170420883867770202074173460978249013614683509738970840712020118367695662661383558157728632780669020329652203189890446259027441346546854315802793086179065926138200559922631790132868226073975982969394020258956315506015869709619268057370930401884103975779351343864378772806503988449489894718263275758997465062511228738239213141406439046118164621152126904797893904816967372024628326766146965390544519683411518902368078140190101901916432916228805737264800261364272469959097853675692191637202065372873981095722768568781013824582569471012030944243760575261534650777754230371952761701018853898332806789413054361515279489492609586629648614390625078698614413074147608281243929894837898882621603269603720652488555442877909613107441082307359284424377523612902834466813882033884725660452668987406461587644194048429134318752449771797788276512306895335401090587420364024334806379250128114343161673770752974223364941073585907427173796579805078002266462102341127410201167006922904310657708694426722814170758227101094438876376986134762385283692937613150707131199193134115995545113403246964717073169275767671497691219744723094326271088420887275942667770950149230868672238505969354596760040314816103816192106921578137651405926043079861333698868423594222365299411752694946456815851413343189232551521598423982180094158585385389942022232348914936785861526068769831021215059898386605940075109642264031628639388160559926197228664840473108212205057255016651812543488500308561467018375002115471177905697418049840038443974647293714361964346126410634689031713684084904511671080686478144914347205115170456360387821598968675807413286259864137183436653668582102698468946931083556559313016853053262866060226712481050020271126493069368846191126982304881214260881039875722898248961867596473008657798733407489008116663057224714925205356586533252086177674136036727196711398198392736814221872380676785563488108011837742542401924211515832196057102287129053766699255366622181271543612137556055860910197847717119794733856642886064854785492856298771982051201004826961769751372049968284546329510993488611186425959155837451820897362855412951201917730226182255449178954074508616669120775314893771133972297036546960530250839814107224651464427468923185286435808281545813611370271947028170520073529533229359272105879779301395465368657600675148184459093168304557400315046740875680725039654086060525463533594852530428084667975232334836225176933188544955477073790638118902201502376201673307393563414118470257251367484730678563582845398040293866616640609951221159464633580685446111348542767013759744828624344228097286487505334787729337158162287844840675554836264815026825998993512461902226810724570424362301476711975422006560082029542975642154025970253398325902913888060448405747743179442059649475251817585871030143884177096879129478901582394279295157441220483719876911054810469039865398200767152049382837037234107097673246189458705786743770209965203984203086987990568082693208362581882326859934982565550659347319924787440179688880523105835714432070863077152735300945220960036542174856129921184325097668405359059456362382693255897890019356703637489436382380937552522591948742080493424049259582908079590514885253488755737362921204292347096678894549084662494093286670790554031255606986210549671855308887805292427920099294173524815686470247964259830314901165942028473982287641474558984519136733370874664649700783166438990365319554387097277157827826612747714088727847517058657403015329021681674912130840239853665669114835937862169741413846071884025817550169529961709848514331644461620524027708961727391694704113171205386468976181380868828111991883658688632640527371895716804204672417763620575007659442252607178917695252561089812300790204773346156517318328831636105442911195170294352139233284452423879429115433250906639011215620388985572334146793945850976408189807118762263113579721964163059969521283898909337042714448806652888033610884565270805763137782617404979438633692018800710833203126949212404344264236699003277056455258778422580187834722154421773362973013416637983635800174313017359205959580793728049867405365678112235951133828413148360964149277275134220984938959173888364838932860731756013981320592707226168078716405006961085009642523370622826542669766957707449520546956845643372875458609354660748417436061591337330297683990778699440888133558617186594680836464400471598025419809744056868182401177577756706077467023839633964200241483463981614377952666440672022967199519698265360847031731373673274492475654652515549241631094710217765362095208256198516505367597693506818080327034756728457241466597723501994801401305516575656375950800978740663303347461955658874263150407961517171768798970858793601434120742766059145601088514762044473336808550003588030430766112088225816947406124730622399448978683171000417801858970269405862013214274612609173240020099461262853808221879306963509447733478634368932343307562861438562878755232662499495741658575892005402287379812129195404830592756886651528682456958580640876742336258133059244383575712436028243225907186120412718547443070142928262479855556029569630661574357969141003813542889600070301316357683463382502992263662128818234052549751725172193861422658555746225670864468768150852669393736166861521839873629834779137339467972824185074475254412510578981280990704274691596261756513770152955324346609197162907871873201129334694266132130436106621249964826461211432824516580357064854109910202410744538294380623809179622099408175682928905449539027980158595428190575085437319481869926803700904275219807966216816579998285339794633041033237111402379154329824098654291300469190681998474214684675659960357491192574287440158339809435110463700651684913767189342871246645092941724763312503988906808585495513897605436348342139525916433682591685761796847060470148412818261128739549698245255286068224364814094135862346104138982154037403137322618067754749524841084859732785102897369246971354062693627988908536216930951039069709189229103519949408921918923561204242312510095682472152511702577479279190662056162718655138183008280838328059647364941118376145713739202319333471541671908195311252515130480838237584571640792920185690740562274353381741527850828119229124865831543678388972623392010150914156520207583305329952207190521379739353462122208035729571430822121270166398641516533167988848076586395926701277167368440231208867997713141587459833511448284041110661175705696269377358538887236732300340924052390049314673367131580238217292435559626529778166831274759797397035421813390350113081753730017227919889234803063750914345900674728634665138292524782920997732565875741638396765973701642742374002081425147559883425993395956502790627351675791880931170077047869035923193273758596076856726124706069993323006540250831637296366039186786444570424541385610648672276139820814629093344824388882405025328831078189869756747155649488548198078785084477704384971045078674059324099786207601734972531456043066280272013146383639034077691626121619781687699611135171530630186588556765994863101227763702606959393034031861490414887957851879700888758061820825131035905275491035903142308452752004205033853873507687149448561336199429527960545223248942544626836181548052592052222133755627993109394352621120297907581110946019268717095136017900429889867163338676152838070612952916893219520621232199355108283009974014288425495915743494869820349899955998834233748580504711421807081975267351252458330687744039517100344481026362047576736208831545824676631653632144490180130736292741577653097016167164856235246331559681756863484084727110940446845070792669701420607166819440783431115462498368658552520943517710224510767384595778683026113910565190281891881041093292349808710200716579131256802299824985789665580254816626346939602903616085284167786190722640065363796239415755447332006926063450646113313761415098606836351349195139499710953110605611729577460305913539244786521377242488812917812575393203624329712610624236710710357157363712108389870366819989314223171877567444905291129256666631790427362133252765402409255856045293663484688407603811368844466452135637390305875713327588975150527207795396430921738973634167247650818864435480414257765884674646299144835740193655229787097582390620217402921429527838583408800533790017157421908004524082310984899851616822920913544496797928388727377658472096711613143990293003363258777937299146633993439477032994533342872752774744323951774540268235336548795157287096087028148539717350199199446927638872127183084248878557811510697988412084093943985620934726126749322993231735321132034469500024691297390991840178707498799646602622354243746940483891033530667869679972202738937832616884257262907110786296746788960671904981717314001614043749779914608491561805402316648187977790106860393761210810815260236554483038423890896348792887106530131366916961283552486801257676463381929548590912289770457813308868210044110148797919702996466925546998026572411878971637348344974246565581692266012099598293495671824146520997063433299232499076582311094829344149844995260775152765703131269882936534838001545691610016918183005008965823250636852965993068974762635920446387723573455270911215074530362684463502277174259254542688906458680370873959720890954263285688545628081470131343431769588974769002608499458180829497131363069105016382614542918658507650227859760983733991236982503985497982941410441731295610971029566096739177244660744002283277146150803855038949057206488263535574555016016720391367992872847800088849308319089242600142006333858586852532612818262425567162009749020896234058023994005573368249949409404261012430748747782691595740713135806084113417395000598100338250154469259473092892069244068626736312603606551559582000524798117815918709191657754498247295791451690370935600282589838358297047626979359572158632727030133652372065639032086543398169548346538125276177037932084045558785446728035277806719181553861262751880711543585076712926103543514842960942668376547804369286852840767134832283900628954632854102327959581917245889094935023121856047861121562511613461663239224876973940449501517098287555276874077436850819846513467176220135301596234363466899204165785664652393139628308997915685502308752865116352665312733080228901294936463158648224948669247232986714328788755374042940391185635475817765322519877514328461183191023199801480559607063453585549780034984323927220724106805351096628614390911554806752482337072694399041540902243457035568898353124587082357602431728946745664660054532220807273718712140186232633655681843191188152683695986181265761437356611305484277596678454157090776885152265119667932066661099957003810663012635659992400102884420429580116327261713484580565450309382173845247240784939882889938097254091337789109581317727490058252817031749336790228928844743153118259821479508307907672804643406180440032104223526664287390288446410686509321195854470308223639267800912207235665483040738373299730191836960996427751100379925308858604751933284354199518676359401528470707060044886326463239176934144461936031290780054920837960803200967833817474012208578728466381316354049490755768344503112691005460985464122238111930455722336196015080862310074293479692799669050726983164525079977363475255184661616726794219999349826526297864027874719537653747598489570656781336383661493716056665573163546018964441714324323637680107800643803197059645772856562934653822839737793358330540195857500836751983295056796354276074218277086676391375293006941399971019193858734075306537319992355831263034522778203350776534866674569391723723918720765315569696275820352091657079819936530885372471665010501619742503668057272981571571350709438777811803965217387972295565167109246837838223994766546145027721226848841145942196439697685056278884572608465266729284979597104314615014613059900854298742819142249021860547062615150331983240920206365820484524275529902318030760730502589828367806475496866458759542071938834171994891668232289773338179904035422189321978918652188951078240779708814627759035459669792160742484422401429710458640993298488271424161308074336155006084316493345723194120645918621255626840175496897687704119148296915253097279711181200828307240509586445494332324985085503308394781475461653015650667179072533359302180605500208381814300774644935674957085111611166535821150950869594990671283182294619629737771598405314518158140368341936478121810612757215234755752898914235594815369901363233399830806605430125004876618135961875421247290993218671621304502673914027494305586375617921826248206806139595481680618663578965051023272867377296597285307961007698653953854450931926308445257450061836179866941188915521210815866184211934698130487061853026161923042832823447664777466829027857218425430750561434605910782636768846240423322737340846204406047322205131447671269553375491869736216940239712713353669456474885353800456863151412206859241126881226974783988276729128388876682673542544141672219579003793018290064027626668106566784830688248861440011820337657806488682612697255695513912856797693977927235198408390199991024190603593644303073346201823032200413803102394194245760928678359781721114460453033259508658850591447986056096270299283187746846477719406352096328908220782432268524255813688248318738034952682781399301677334847371176185506435906556544559360100549865778435707018891560139411598176494918227368504387293116676221687233631029981190592081798255246312901730354975417247299992814602617282356877670076012526277294839849515405928617149064455173903761303823983006924947602540172353704064983372171648028943239904272210293328189351874123136364862148950805808047072872779199683249670713483979969885598255472431156236785326566224616558339259995379525460961016396325255436263000618022211888251100337931872751097469407717824894322961161421642379294647901513880090533571251666805317873184544076181901799377465820859669099418664591157548525127919551754385884622640795591954337103973170332336748840942627928371573370491074215649078182186070002031272854499483901012960873252234554180092436517220407315419001186242919334114321823462161659376852668935897267568112353401433084507088338498714451662704990881447438643299480242304398995265612692959321822727990954967943977737713382749037756059121329449848952741455517619114253280104323284437313334464108371043555172258547732633841623012837152404267779343316862888958729531910956399889526125215060545430737922317497449246993531898865660470481755456227407760980649217222202157481985595442413002036089370732630842919137992648545127046248150269408131679519143340743310327184742195539460549688184903101896684660004310293572912468775844058250850300767244479014056425188902012521760465404640418976118083224193202687649156570520127504666383251640031687936734250100433268046722053723870758307736579851684544723916449411952224567034460375020762886083615347612495985157692959464296679183199366654907388724222285481426683777016867519277697396710797295486240107030350834328630496792358941808512168376687031992530569276587470808159547646422995594502737693068657092713569204019002039623584413070835440989472585540598151505344502866370923488144808902446928688918218887970263857740253594142391611032803040130206303595069608338709589528345350004058825058566814923721461745044644577236009427410962162054045232817005617197552535093130460268390864183895106492981641457101995690885448077029724165683583493005328500823511204346799013532038194355015919876376013321228481771894948621242032847425950335069762107073823987053879290116436745778537996685736904218309175244962943105690816175754184856113114270854424106043668240379281112160554447935746748996755483312283325248425228582722937662604667626466954012632862789453649049783740207123121802573765444147953437604721377884364775433091409319590521114172757839257095037626373744167163166159327498446542515080459287941796054629427698084409843420473768491789822579639921075298991770486817502890355834884243153961090066623835649799900895582088821582872302751001652191114254580325955899015511273980181767136276656207518389129694528404991813560143850025129668386861662492282308700273930842288107039215456000302853964164180646666696773272652840410480356005766731371112042734210401657207914685450160314217878246725045970190092747266708891756540136282211597243945973310109636529666764465512267497856004093035564390315474441640621007721566091599811052659665400813441175943196387307006186763017605125992313796732464465822711117314947604901573042700072848087741084241453045744239361479029289429264416657969983704184432352233007621920255098888930150948248060681075897495071284271001411261906276401537738870423895448988531089947015401910248766765513308669495284954258117083842536045315886044332142170021172626098983049040864295822382738486826600036713708547510174823843594813269883045799920855780021858142020845352663633279512424035340586190291325660693330350383872371014902890289434908418757394605096651024907821604759049801253377664992416196912059764057967232994550555541834537825574633749372969271766886398935263193060082120121743551868292688772883887805555560179378575132046627577335475885606080093627896397356035999077979476141559062117801797642321472119154824446584535181743366349871068434227106684781534238813173866416603948588254409879461498501765624859595134578066579827453245161686550513560263285528010372084586745761172902278246167092914648167985894123190126785579253410720039863804942622342857478616325422287304760413938476293210448312259484384002898078704283866709644393383759931510565322035258699480199410114089670711289478005569298943615738982237884917662828836940083945684180761469108278986493198154547443420267244077863120877627426875732298501033662682423230893090248956364692516772782954259153081904722869557684120408630024620449463642856137254391843467252445502212604755463429119271360605791473276402041230675667069300416683381338270747628352868190346464067248567924050143424426638066117060276229591250598480381529850713863876420775315780386774685930997315619722558803222941592794181507020085905783609056681816769956002776864269288122749853345743905317898573946132269828043744430593556001352516683359592864345037221634044869784272993912221072815162598761229379546029574562403488654770625060335725698711430825871580747116453154111742352910817183358648363867101007957700638298392657965158706230963662923785438526846335840574983260090810208578164277235643829029138044350235590264072850210455797401022222949035629838740823238523642260484236145855590773934816370561894441833773111367372915238738738528149198406041036860963192862720363831566494286346347775175671145840087806841367572108690757825098319482311257417487689144738462289913224513510096547782227353745392116859488986298787152050496802088045306918314566736389025850432790779066960142320336539697613594770066920117237924579148723448329028010286951111424064332530251191203297466281482455949276347953836719198023131701445958241433311375931918814416877572269618737830746818623242581604411680089016906780584891541175356887061651882517804556490424334682290658221520523562058997893432301232379258098601249986100309320551243108029740593026706447480635344369945405142150071994826046297692939336858574202198553246893536723346937562567608611700230427250875296991754569485364128040361360252572936415612473971246867388224612292036166304316526934891700758835325740815697149356677969975505344852362755664362153013325388156191787936489526041228496362241438505101971173548823392682297608860837622391349549799216832103275047104182021360911552947294273821073795254573763594080327798389075082183809123695061709076205216807388837523776959042315793982194967545237572681303561141229547433107499626186843482663050234077308911721338349022660893460616865372378738174898800020756322898761863612364198545065445672572923600428519927992944836308699306696014491096629920147058593217138207540290729627870154443489366774589793012213563066054423119308960094208546174131516069017044705016470565582216622635523012473931067590003307139608893630629545748613283296969297211763946112557842291003597907234351637565593155522224254397895661314302380619829398530752296024840244903182751639183399947065301411963348008130162467035080787487407918825597494159456713500957615002256787304655323535179110300159885846092361823437401306857423069076706024412245018618671637178629047292706576151001459518840771586111311960515026514782687072350478766009077836950012522722934038021088046470356580467986028727002496015267279196719999456322282106361459589910218638607969025713630510945041613707239157120664465269875749463182102480456637786723863615403234492661525944653882657503686145631389663148976522860421715789078004345734799269687352851272876420067236170233480476719366415622019822590753662354399762073417827558477556513083830299153266607367422217956753599267787450904534364539228334936672451517502204837603547148534150198855171427048910416226417033720387786054284925689723807914856405442183428215068344512099176665179215312959016527295331621885971308953223048206377649826911014826856798995818579099722674711421359807386433624437054843763645960173954714750879261906340553589151413545850533069515417553945663543174094770742380049636447050078325859010436981019829628976128969631016529938476557686443460363299632899179782762853007408164642728333845225829417588816616698972430792295779532389057534483456527878489231837177964495724591287557374720306697765700340261222609974690135433635156285386023376003003958657410563673814262408495060081991774741401994705325182071318485737138410482854379103802252997082011844753975771820505187728645966119689941644547136594101695054183452601653226818921535696706100648832132254272605127576645560866120808407870555330984295181480713927797744388532564396100007621534320089939195279529925158285988990786052701354086439181566107517330588003571117487942189856181898567740185441738826887518308288294174033980158915623463366854231040315227615115902253968163234723032267208690394878724555977049549320618150258438278464108922103699057747847479820534492616411701455509661012066334925117087509729528040655365925043948248746690578533488282998890660701695314559070492693277631572627164113702995999478561760036837206414847120921621006069297097077352149604950149120757775374217496230003544250327070382199416457472231965931189663303492408567525528906033094481272921220385145405487465932341295420583865684762693805856913304486764814430041819166341125074957833201848841608662751581707847665615741704504453403374553332065337859588342278971393922323806921576149340494878158300625694116833705005212626649630019426255547487297825253431685934709065484747657968160365274813029402390632285950988952817958104278248408875807748559325360866593232556541990640583332813161962080399036036118583349385673973177915178672977149648123036112542664574055609215064041277809962869136094543892193833598024107383929577289878734621651977085690705727592445551982052694504549010747383470250601714413995900432362366020652506276249498420959258215718342315855682632557319440765283242526047911618885600334065008655841632326548462668616985193118941305057691063644726810540697131460601564972846808600924261838330640583840298157859319972763669700229603108406379789981183482053994815274599096888271089798133098729019679213768778407404041474517764275450903803983540522593061902837689677477399394470784078866914522855567627228002606725603292113012786257364460886304449230022887278846780435500915325669790724109029083782241733001959245052117402750126436062593391200535453538020637959358773133813753812434385514445980805692324283487648975047755081235513792239035172243888275898665700078595674446652880447539392924119865647102504865106170806809296119782806687451462113912826581569410962315930408799943304043766894341350274489846536266957779643540463976409571457851214300188790261458068088796896469971316735167063050676402628814415908100593341023004053621254794762431457038954882743774220886222934320226100084625145135693892399263048395598001787336022632692693961278698792570716534894297936219782993023708744306162258851248049575727987719162309068271481833426939610201780515852308078370212106210103256105699137093683554622545060747691650621341444459990027612103454803184548403189515682629295914270930013200525834906841693869086977024740280843211799047567827976777625646554342957091056039117323618775554996696998725378660370519241025326619396350301116591086862544106514694586781863771303035762008772509304082926463621128621735016162190529596354852348843923170172077109197506399045893108560379295787643592394565776810162387146088253259994211979269496709618635324376411031784141111153974916263371858380870054066629135123659580727468145006616158192781616796843926972204703751346108171191971879321035407552957247774481370512874125684070691419440027031311540446690888462937258893284589269731965817587089578294674319235509504645280413326253526208568274123352040400595780038505445346380903121880122354924638117671226783807995772159981630990101525960288854472839742373238779792141347136538661814270701571282045161715037247269264479121349864008176561868068943475444817362014516222058267068866442459495212484179223377127471087497242178987005323601177990031129403356074840197727316555076937895933406323063548134193323054613921047743218787606726118678265066423672228006855926006622047969443872671988348600132176640202188786315308672433573647731203995323040006994788698038345882546178695143353344079398845068755504024390905464004838282207681503397662155331982049029679315580664761414796651375448541805958953498978106802727713400230119498129044808070742417931791326655838935814536992496075886924491846407256106381714320153630109123422141431155381932338183198295886508527530270831603074691347055955896252754100967858359188443725323832372980583215891749590590700219090024044931539531205230740483894154487444955919577386852532981251256720615492875815835148427695895328499507675876159884667414635963408377760298507018397862618862875100858106702446233922362015339532999033150317061491504480007330952413161859404132210540438574019219583694482826780033580000242709992614382364372109113321731549358052675263727058875639541891040517865076455677891543418644751343076681160917226346610295864474523323784889943460187296922537258131255031305679167162761413607440493241350424145020829300149809119896880196388918086893511619137970441982847976266274421047672327222189825905463238310368729882793215243263071714920985103601563994759070842557795843527506812718808486886966966141174568716615491372429464013381046539290655716895047582845966196139009518444944992851713101540530204036010532795317422199394784474079791145328563786371685512504132475202911401703683890490727844072663655098571420166134955146443862433321327164219530788307978589810430313834701807495672596935620398202859496586146674464224018089690082154034199867946648160116066232459762042379598873657046436276615368963651782268693646038117019982909742489596242568340682340722018220797657587874892323300744225134114823720148368074479338725294255524449877549909269097369821761554487194930465607661948984936313687652193824364018061251098466600248047118308862896125808230442346437212344506708813009352680779011058922738248723803867583276310051970965713342722739263354167809365579427435399837540665274901312577056520936116963722211826951826585863885909901119512321581386372337848502765123769892852653744546853094875331029752497774904066221081448892639546035488200681743846478701045343094848369372740849418238560108701345784346937649141974266700594182303390680565053825358953395827065342440862346175389532345491679744296222337467114344186886864807157234350746148621099873264605224519063129641435176361152750623523410655968615630110441125777897762118091461994574697929552084561051768021828612157521739965129784400789178454268202732866333763136559475353318986035252428159720233280476954285273038105562935380810748563534315555614130693870240456218423137430176398558041120435201771468548846092300432722817449688322909566809598321193512205295087771181210436822593102219250121252592792968290337880054887141378688902371355949396157920155707052285192193471287748471681147555563169909334277742208768947110986545466655110112722354791915136819653900797111674705888173313113301388918201893347329705028166053011973723009660917493111880678754281517021093158483588996793944250930296342354674723433063679278138697365083241773651565193990098329160091651487320810705925894474825480962133046201263167200763492254508242806650247993407331839323229970613552118374669822984356040523168515938150670614657336630540670758553936856286556259110311601769589119055596672547665065867985498844425312685206799500256901950640361546086135741374876342225447347918625881121458497589044415851865209275828241667789524356119969444731440924541364659773082887390420379160901531416924219719984170568991066678365655777333125697424835131556290527979580539748875112648340181740201115177277067794175230973110816232974592857634047562056329315988227770272800810601441536369143704843725970451727225416739625008786657380000650640360467261966029672183344774339700485829827159469745437341001038870164953009824910865436102175818559634660065819854629004883773445560384562641420961052624864374050644443629938578078678931351907475869993623649100550933255636117369755851885642404656287007527863052862000607284157317325387739467360310722547849399986209739636190444079756561745329406162841978545812440702214163757622067360385263690326415761133524598649935015252675005035782188395262669134898854602461315705454668542465955282951096043230124160718006722180614665571513376407320574513158774667804006315008029576170931680099500665388197401982612594386347707387458415587409522037517756193703917748576146819311163807386224007558900044736180577124413766460090299219939084499081737583920714245911613704889623832244698509565699418048802255148526585451283328525327867574548472586045568180531010977510764823719991920372636339591318504260431308490145456155628965543979514010191280152300641123162221924363392709571332912181067455432677377972414764960354141396417256078162018527436990741491804268852915950263903565712142298664063889577074676633611812364289486182290816679037880802490729660170016455551991783632938503825961000222952345090235247242956923451059161645367044023338300306559300701265263389580565697549880706778647743450771510537801122832495386348935561004562961396993846364480350983268170614631292260781062998889707868107983724369794587784519700536909798836967599374740987596496184358270568351759751575553419759650304115688845024371460127004891506599041018491607907007287169015516378371132178089440991255214757352413098593095929144882986217498965324811886985752762810734998481921216206699279551068859596958089300964722281688651071921521389710582871476290486153046507933471852185391743289412809832869719988634284744918195468104434101093793192162458085621377018388132372948724243742566820767684216500547936025751101605040882344807784122830387933536777977686793749739884483614082336567865763030484604067239969459700737895549294964020474470673102248246505459079562704742187639356100617403100277105154407809949592156724991487067230422007993626961048463269096583035827075642474436845878623833244657543911785974041102565042896138845491372384528097880023998223484792805306288841088439104296196554451255861995503778678598082047617784899032627204408480405062119769610117482653049717215600854667236988032481434346864493728924602769093210541918299171809206599777094103561101521222634465839960995624017611600765747712054575142467338320058964020358615857250340738865126897931041257933176546276520534131445800163012028496174206027249244044747321892842910889482175104800436366638355690205223551814325368901399265457825933498409138932090448146805723804468055216323156751402314562200605399073531669670574370396065030008512273703392311194577692016446797894166482437919109035051164576597939426359478382741846287946296078897383021935742558285091929434894555857503813126567942354991652133054762460413507714998198553017221604846784886552007140565871707162267673849451337949507969615457896789825297917827879406798233351038474255129383923705704865211341419490112580820766879240902175090643801661758922387669524375093638690145608502917200656576781389063722198059630229785073228558816648627143968534611264976457763002967931182717689795605217223609383709145191643244899954284495050165576272568318062880555936443770184801948951520412025543054412319235130211477261662708409874360400374347152936626566040797978193211290732054651071531447114250869960637201680124841166525726712044317596331017290161270067886676146903467889657122124064040816477741391643266693069102223102474919307727017746083115716678261337913012081320758058975097094224281302079508537850532636337185173594784518947657049216361192090500661568028256362055732014726832484447936806656792183589338282857160736650891807398009258484452041782999468533422702230210664511005577102400140112507747046914133099711090434067176481187894027479067698562392726010975318565395281954002147407193644190012073468311149505941839999952348610670626462262585621586503495166992592545058901693285473969233939377033474934235071615673742969362554260439150817069960824827108273965875496703264294167964741119640727946325189495941117129391747997966988433128524361448197066690129155005138058216519860955625550501813992442654455503952465593833009311586965649517131011657955922930356333024075482313269042238351813436360270477364384860542972878781431364157493346748617228737573231262324943114925306846752022521238383319919672534171367117024775124088167988033664804495491336185665845084350895245619179072747999157833131733339579531790496111125893160544480626051485476468600710153736008278171994273429336548721229382558942196910682571397570358417158572907356518823908058654380295983847176789003115446659696879646169124901354078253867013126441368390337190152042474666593171102518165320537461575358411953210522259208208172404711356656529591411854940959972459420708910558967330251132353952739120411838775416604161594676411502286729964309995069147881132611810545331196821962376862508852458335167320198119873580375303389224810389714673701447352515820399447897286121392528454938148713724052663364423516135612306884474581919843026863881325271784200847163949002733520541601982831276223309639898848391807248135756514157458160174595084522146181447603016741013905942764824822724461092456834687483365982971306689058780729356042354765729105655618431214384718596169747689704461575704628823767068787649926099651751680639397869577149009302313032987947789188338479616522625559115694910633859521468770912732621509045834120027499865185272018453837013646046519837493148979702935156942150443591880548078232339327741620717796492336140813746625868928626969313853486214414607485479441153481741619358769928248110622302840453669831119494862121760451760395023518086988213800244161770558039860623152908667657177974981837747761803445179068810138234769714282722602680999135365957441935308445511540562348305365881636542762963551302839797195540504289256682542062599797350240424353879287729323458257361755172160769522920134324912349831463366945363121509957466014934044848444220365870557839574922264693794638785175662683923528781683399046872125389873530106733074001263227935539036008607614893287409269970003059678421585589676850964701253903938735270068971441265981342780418059494232770923976439908785745683961039468118326211520288577624466617175937113678246154238271618244078872553637723486823953717511837527262097534077767346633743923975978578963865688494759939310395471781321176652833808146794610844541478364466916825298585160629394571768004938618498008834051521326672318181548319388248661059177000799011123072150272486791003075814002912859461922030320516073652554415427479101827396622657096696865757665134305625779654063710643017021022429232228359203267689112834853996073586628435841972757677583558990515536836054806312277698432710879808146718179746772373348664948159741155018858574266338466525920136175603506473295784480541012309204166033692932064374423811220992597528672742511654141312256171626075298391830638145099942066126275203357413340535530202900992139645519459419399364226275544385499285275235802544538457099300029643752630047005859610476446167330231060136139582724234167453590422364865286833538013556483423543730653496344133928648713067632480323261143561589432899354351072359225305750626592051012906781620424534902595018973564160800845701821501097241728390099042310868947987539887854755951047820311901782820427643769842852304688568057646953382072070427406559565365247044015048261682994240683340327638759526166680891126804625009903527099403222520807253504576326099463968858091311424253553657865882048229311420412183142056108860520905021773926414756480614749408523021110609173043149593692589027340050689162962042008141513471573603503131419927227546750185805486420552324522308428341273301205428737633520758761598484880730259894848397728343146275440746246185193654319535150348265831838983811840247842866556728257268853082008785463810828076612527336532471369550195981140714024457848349820753236846442540430990333275835587016471737635031448031194720000309080376437337424923519221594614824574381762372045377245130165457762377429372676218191809674518599653894820232800005948729779230298710133905685163416762046241883420691133256961693647240688704989640010644029192355534120755741764517821062058337406312963684758198199997068136693318157144503657473357674714007581264793181965330231641566727011025117834653973284703638915442539617841871824353691331459358981775340286164801070524765280415252912628646553925982735499940558732771631777472119938210208230007159229487080874045195670304610891270706475131654876366484821855387927899572688007529942243343728069273076545840237807921505485056679485657264050472973334244978548169594569681963555491427661936712525354884184386914790251273743016892185926484644967544850328514055556279336549089234434046519557294479888573076257176583268928934840549237696243586298315530127093341699317875349314309204014477219274560218506435442526076025585450753437603209200764823434031685069847756507987080146809801116166556278129186422697887379710149310898600879433397762150657519528639888802849889424917585324466185656296764206303744075343625258934458519953026084232375595014434371151450008813724692060461892819440975424890754321859189322617843830878431825164646443047280818484386751502048167309096840021161012369078016365832791280663956103577842521259149627816806456542250785516310129097451525795914185083282386058824789472919078346880144857922680691693701855307419297452073860073981981220775147232443856185202090815017646393989582859242656708747642290863505414454012007545781334151789323333888139890386502944992220781310459866942572411615835703961961755017696525737942715437544147676382076810460070436198195878857748909258505700142577522983670731961603068965358082977860519124273575850867627337803521316875579244851632418102161636230827650309952647875865619569032355204853046297116797509693790316812823537220353836938902970917540385661552589001605458214022085951461851247981145222918924642755910756327054465574322025958009970241255342373925225731434354601901215458524485639636113499455404544762140213924459921009568124987753933257321555895049082940853953421451133519851414746907002594270474785995741991621973818348930806189530279772395809181994511932556449090509324986943375142177055860216735400801464637133268898122535481892407913415022066688676355411327820378093232943406949474961887433122842426807375315618648011277823958975035483712171447851341196601383509216600303010246944559005488061054213223833325082636841457551165265862539785775169313520673186961280217566757557033024628948552719860627358259404624013156351779239963377083528714714447862620277479761683175372766606163764769537296602096821609281110251885672547653997664332709525216743446549428196162954484141543334302975953155740935392796903805176144235783954554315632802010401189433008112197416217378471214097180283578459060240782700151507061632070189439777052591964510374166541619277425467473870518837786209678569226892523199378776795370520148862689580585222287530966010211867823376704426514615373355659990636050967224456415435856821275478304021048117390074024825389301642046091167263535964537061262234224222258919331633940231574786264678619893857093777828467422761347184450428939193292446853383166575537851910129756944515208584507568434669058714660190561579964413788551619278778411104252624375628732052972252039949427595972912642574213165263650974770540459749872145956261590187169028417993391225217536519437360429589875219112563355798505307530449536728261963789194665782914783037276438981780866415861545994149743140560955223456747301552023835007108067737819441113380321071509411270363911412945131916214451240794240122116755728555000906439295956221373815933185547049474654412520616565149028581249102123742330191082285481827015694571334575583931152206979064430075875335137731427473187692925056306878833127786111313036191162535961433582802722072199627632947306654721783647555628604818694834317559229356525275760021296444950724017854865745868475590063871107129982603180853074327154432760398378825316409294255767756004330457997703512396961859463652683497507332936568444547123392313981264775388680699059391178544139165009524391198174994093526697758623379581888575225870619136710421132516260734322043719404158904183321285697496397301899672645633043946035559111939493260921304297351706361218735827610506037667136897884108059829609975635763819160126941877096459643737576161056351559713104175657751223286855441786049795549510027525105853097267331563017017107354810907447890342410125410243741649232308387766475947696524230784439812185719884740035645355973221657990989374492034669720732357336468936721959109410014085713346776588078117469879385062169637320494989422811391344179436330281370330240995192524105519000529279206055694747387843786290723868569419578565414255913805883549821494932165221435157996579908072231997606912685784183968666567612074291879222617163775986010734407518991859065662799874817610610785002976609411613097028095888751153433589402841239483853388573762009107577914685711994414044050017228625873723649645968506414443271738413525139767125293501886468815379351586659394806578211820616958044302112953625101949577209409582755882328398177080076696272993022434682173905408038330384911205858826413190502137357407282222966087904064914774998308512494661081592201665567467471197556906893345241407309895420166725771849598121349259644508814129139278934744203418116673060273758308351370737036076990236589336172903975240172981105671787407785886143656091158431974471702865342203414390587020860072253156829803676644080542161947206316633152657323554006722182934702583902814250585665595162172037674531568380389421293322944812724596079942053202358556241689523759411923390686858724554311191740690695872696969126762642433252800856147587978275523127601596384971528930492175181611235622571092112415055838687092087305691755719564603207033808957588446172824833208121410469933086527442432277693396957106311117748490890239262982879181112056301113873645604717001516468504746427674037185419877069967934165408003347201666524831085785064692347722402792690976395879405619304893101581364515862345633360626141151587602746830026852653224624881293432431466620235701682023303844322168185785955013234384335040695905906650406397769693820976909789945916957105677132620898183718421824773101016076118503007545445852407545169028814788537422444604809695746464771010896410066362854710950717092947335232270403223090262505678537045421386673876743599656245981580098807956281866262625949912641306895240389643111754847274299504820655920006153691359175571400781072343508943872403952561711346231419124826660484710537148764196308174450902945862253467828402448911298758782845981908489505831977567709661709486184221347177778556397999796096242459195214714020597177813957343023326723915645841142292472636223519444760715956771689502252008050771628767944705262308125180256371948327193423976313720353127129561377242662464756390255020040455068363889214575723326873682003761223288651315241318766019051040064988603588102187363384806120932877233699879360737289891892393064473449941089419758940621938849779432641305783705749161333352233358011641600167180796244126247721958976885236994840490401312195402270645624501641761711760133061719011161800491757576930661482356923440588992044077589534909993559930747842186430479021098529057027796432376947607102950562224112074297060709187076613903978497573432376052152851649564443332906382389475574918163155974914723273621279319004215505130024040404433765295364708893065980068041008478537437008419194739008211303362723736244589202221804249818224015095946517070018466856406616297410171176650011328649758788310790570133059269284651125467061656821803620352685683732744338946574786422948406800825038967363352520386515486184032002532655662703007801690122496820024401172583320795409810655662586956093938789657066441459387334648515087171620339117781338888959052472911704879303860119030783923400530570847880044492674401997438612182708004215734078351385893477056713154220548304310911923164323044307482113713303588041510903329972703638309977340200221981646090514411121133329767875485539235708767513425908969342650494640593891574696606427144487099367210141152109225065046696941672624758805794329474293395271352928699179559011343667547246824251870440859168747761461031162332979852019087875715630015571458320944767269612048901014055080884621881827215399743790247208760677538166857230342632171369781754116885133335657199917477454703440435275427422289787852894368519026219956674591420648414788774513436358550970109609141367391240251835705518806892239566545514034418271044625073225841656355022150616108185533606273784459049123427958329732895678203073444309633843772236113060624925601085625914532473631699139517647287558045549772891013823510647028427958090801327996905545002887308088038473181927049072104411051530581017795286768711920746146351917176860939557753143522416611238823630010723398015851502272481029695308420932698516218572253759951920823047669043115979451714473093604165885268230526134525152709266116777257395803101366292616086020342909222728419774137126752422551978706728802153444308320794026491537265509923301406580581061267033807289648251446871063946865256970869286486948996823083066424763770054483882658829310021751711068027425954939471356278468228790948652235999558083706497975325066325491883572033491597415504458566694422406112858191444450560489407811223779891254660219453427930790129233687576592563234285912343843675931615790872592283215100124309589722086364662333573658081080490310051290949206521384784262738774944907309517857178202899620482027284105440780368221600709766841501420208630067664757955634785113158382508402520592518741036406674617367885897662269169093699810749770761610808000357283568252404485274401945364099786481406142959324799052392929240513614870923926749409622083393921549476639441912343552802457015426260385058555957039046250170000883218198612966197972369828966989843223089871009862288916654152052070477342949960833954519753986738684424817853481741398632781179164987377741871365515363069871764329131089192872222737608475152733049450939246414672104195543328150261920109429736579356016544700251743212519236150767414762004696925038558044553509082418196034573989944591470385678533393429754362800127493884352743223749067997870342198704224965091034527545921834794994127009978228729891816200470845124379436761471696730076385818115808177213100356803797358052334888212928081347260494659783281571460124676922279342307694576842675625000006708576147833701788350323005491937128414902276399434529638039316479620091442985172858053980929247849817667429034946455564047399425591490881733101598011308172775435990359071608586298816756240646019588583877193333118025632466912252864819053530996853260021990175070927803211345286253024447977748414311246953100554065337517284677027878884369803863409018652820189608448616276261663553970619852609844993114955566064597726326734691241330127717541730233954592095814653777533811748228461128059240225395381455518094936647350439647949619368699011895333001526426176382118930012399415797806540307747695835151609411982541699331991891636733792366021560254947863060757503409625836937815155765997334387926316832031024144287519403480692412534192883728546139451183359260500884877601416414590439862213088567747368942516873828615562730489595378349230108864330388359188279651688452183716441665748290206813810171779190704053401134734324439148552529679521741153180019928187426458175776044048105756367424730327569813457727664935346815679152099390415553993497551323272676789030425155384486579519254692682410804527747615399063665138357652273110449843558559708581556263964924558876514778760925894292894252502978684211435277352198997124961968844334394465941567530219395576858707560240261746912261950873570401835049240850092795152295204282679621346204280205816484533357446647883117638714626655371769732495865319479970241219232714750049798062510328299707396539912140655778044648470863470579247263788078671620896415035972686612225794046939854122616983313023537907623373235956901775473473330379352569711203494391241590198462266333234487973948199065533282235639756319246959223696674809994780270821613932078599088666039487017802966182141610605777256423638131688334456303937203441875209415951524361504727318400157420447581695468702983450092762654337658872081323826347032771724973384487722884398950382027725466961462307981961277668432450197138546670592765879986930548517105864135671309850351736594948648198802582161091340101052448830412811301252827905923946364041230219613130563700352983422626548799870268668896951445982965896738818251986743285903869578768723634092007442652911299686191381708108582227797456439185092299601843485158979352623353924729596185981284248913361808811043591094122284393105898719813336034015900332705725919788123466656204764923496412995231980396435796647165331607498652226644474159755763515765712763515776810047542274848737899775967018707530307533462613582033510913594881485422199237364013839857354027596252967744262203412449429884734304259074312743167254120673369605492529336290262677718485679348407684959697024421081798744601365353721343434492624633783195041906426388877410220628998600709301030232706203283397309237288775171853900108060154869372640600501361329823802265877669550101228812931120436173776111624600538917198699407314883569527303167032784352963243968822283210815523759497971400850622121752643834562673407809122496532095852683401746023657362561079765277393195252879059376798481388286562662033471818796009326215536901342667954379554400533100843642567991299257844714010937975010131340762799002133402095610069350699801199854412866092698679309314868294005223282463498462020586025209362069483399709460481881452210225699740556287953581286729955355964322668188185526706609786400768294373450845977317847872585445492419030032377464745498759638038246963274110113926267295064066624960412267439394928250173754602134744965116770821012325385505507897986526679827829277977906101368759046121243125439077493999777296976929745060954215748489042778287586451007650819424239417660202501922651329248987122425529249618367480312714481615766310968188328564654446918105052824092699895835116915537467116314198189304197940357354076053713454116552987078672300884700045563249484439074006330715175341879870414822544642404937398099763414027369349125500366482747317462156627391309094549625191027594058612219348629121295848027797761221781908465949958517335307161062048980133394615220336302381389925098552067577748903622558681760509250536957374497545554364232070710807299522998692641266205489436911825882893543054496715508210109246397069719500775973431524663809204194064686424260663848236169435546866405309528426265519335322275376125029992493441873933981735772022928574519107904962742271454437343872325525109799673742785147741155557097695202961422859114531885871491981544925836004222342538952831775355817839334350068400373625156548011419698738365725834811387854060477904746723704584541933416503916058484912331461505189711133463211240646362153480089833050679572635362502985443945028962640792182273083858388578769948412354468452048353035079472562218720289364258302653156894130498734665409120472498230399101458950993465050788117492292415611253046318284270268583897222253761771825489780575016956402861756936372738495726806038034971835697175711067694790526368099551794784773405458180157349223274700910966329732849557820449233327603256753020907997582416526618154918347912422439993757770627362432329726203012832377301310970680850746224811442463097939560583840601141666679513021888075988223004682576977069005367535477799719331354925650271201539935299101656595432404102634225210493389080158664715844018297257845461034041854150454979780096631736219501768521542901325487266020500366895001797583306527745546398198736221736161132435129529756681653605476680252208205599405846010846757019540541192494568208910317641252578985929674949211388556631192203571028525375366255032656522056829718915960862697621028638604042724017559719718622637459387840734491559760433978935346155337844362280061461741047389200923648419915036673515304706604664313011170718502153804889093066350223129061701616587106449943583480591132699544363879636509412637872820732306171271454934349475443341124423509472092450799333463135505133568652785033905502104960381234632275805144469816865689812458489817316418169213964005280380237788575227314881247413179772976668579989032619938090059557222854598141491857782504057977706835525416657164431610982909735549993139118806690750272109011554179737671975204112614270020080000825049279807416523497302130260963299364073557303294807527061631085760161229420354894452642808185162685836451378964921330485555974149530844567628368324149354534576801164536783283822729998730121307199077218270420180341432413297359526907373451947442964706571857301411185024753449778175500586532540146562837238903531708657428605460170599341244134469052692601801852100031880111437503658169847419109025729703896184370399581225401630171680345776869379337290506818782407927191862028308546152374967286753934163691793897632530143113970490836280430958924759219976939093233761728820934390056490147084788134512589197173411721693384474890777204765958575320674256988640851329831858824885187211650000892159759631682565185033745889909753869021642238098185885425263582825647091141575740498284099589195848684023945112609878841458550333945978217868224885236203891341261954607024441149114133578700157280348429871517471809552749791266233808831758274870795094987384760547988094971054730408864466911986093886730984345588923315435545982416824347911229289391894414646280767674148652473667995605674348798396601799227709212463823151445136090115841240751818939515013947360737145111520928149706197251785402396482998702323133181997166703717246406510609515655840189227466115207028878048684829143591633239748454158746003507521761810054361046413357846236203467073267225337402110065900873134335640980133310771578453354006822191478521123415654792215711416899047744154334134959725787039449529531360945848686751135949375003303913259776147782432961222735820647670896030704032000493091620291569334301497866623536769572683586378154023016830914956168493052236188232544655114797658353538123500158218305077215266464855711386364696946423743831795784828039459838856869719696995789515311690314188388940437960172781828483687500574067815734127345233518136065810106339263798038820618910537520324044492010243655850198145860605752534243382096642712153920936696436708636567184112255800922421847734304607143474720781901835557794352024957316308014358010443025466589972670731724347723504574890704075700174513090592542452473929817854938024540123694299147150615225288215960255374286480776195456719636078286320923015276771312757277481193545084917627470893216808791305320017747817664128049248575609438018971016734367605203314104777831263305858901844406014181470610950939303166178213690232842841467155680961653926761094214640830158450434825510163507927652888887017268798118820569008368807296181377818543602233961346723932473650414355879882919792642376244995667206652703219427578279572821738873321376375650296738505552664524009828947814439378215092431209706440609118858334486800602533583593465595002614928657470875225875138507223449296926051957908587870928954302966249395570597086412946102803625346742858994625466427977130893836025234216971312125197836801409737410300911226282747148527965745842206252413235658203611424445904580157828116534779399359586869145818093217740153703010094971835059640440249021293991283707843357847393966770343932910167356362098359673503066721802508156732702045492246563512071297992088487494705448976968313107946546808245460708854743822795992395080269588966615431794309436811822539298554644374781822703216164930959006583268290443059392454136642351392925073395872751974239684066031999750057343215330390756247581144630481701899263226296817777730548797029971462839001190991838661794467706694696870853268514171914900682645157621385672909281103149199532138327353593194840978873013191770623987185291194556682796483080215767376074633808953681039646852208721940484726008181227017077448197098731201210673267253628607104124066721403854946174672382379350678735248581840325869841658779088538463891760154511387922256774893241476585951681245250605436791506630692541210252121654913682625475586143593070782626944336074628357513716240054054309626234410936043820750594280671069175838761219883470561577894100794235237179591327034265238916092390901628128713930510915014813472190812565808629365984566435277883648712796413257861597480732396168326663827727948945619792848365932760427968919098076727714788151053232570325486573753514160781081703344993506461379213565425016931987618611387201316794959274872797911528898312297718091102890182649587872357778863728830621939821083737652681760840580047223336256007211707528580032741742646842486252620857602881766309462979406167858854409641769925172306853251815753352855610991844126497127829361415717110590211480891411319720724252409188542868198636465231170093801968936621386608338928121823284039418103610995580580600960956138083671466611533056707066616755023499307815986649604057948774222626736208657102692976059875109929638172580497120110453689043879160221510911253834709912890776769971788018162686588420795428140636409563517005477301427296321157346802301225893001327370881299684941517661445214225440514614069553496967256290253808041010719565581643547368479787480410579382768697400650817994812022161592703405126622066340474883007382002961814827073741246703381394002282886681190796547653457452918313666809530835784679558370520985386690468370263957669591384952990844926942610030144758122925929525248790480972860124859536556690146774223067665566920321034867763762261284725362669581914084756470725542135356614559302576018584178955792414606316969642327609465842665237139996197215030223226204064184431000932582427997648431288591439902451562864342870305498420653756440082296847291590156250411707767496198490582914395935146599321067368472846095696186321658120974812968800722264140904895124015973125168189453555730184257555187487485730366952714896928522862152277202853897175794028788556158884054982330406043972471891370600270708196575522612787211885009444006969418993380132378968929897007310799963032345830415468006728169308402396411440677372255178885792628443449393199930020019394913726723559973505039861263670035040146819622651440539016590618734743239891980727124488310927611757176594201787603401739132199402608680365957231201088886527820274933474968107731812839309351520533334901054585395980144639869027736747833408512170793235052306712227649055152039863651497819570009407485349674053884119910061960518373793623466251723707502856080531940602225188649756387601726377053722417472320585342963839579742953701019020832407150331513977542040914538581741173362449495708282253315796027510533071746661443535584567038128689558618334914825367714104183674852052872016498548692315571955019395689580541440894166386356370016913703603078987163021003223034013856990016339577077267080817970081780473978502626354387500290080431843832368402152986764376232588703648956215510260656127791758236231644662172354085700065275898139187314391569927138210109593724631923895546088383537019288313157260645690879897562658484090702521154017162026717439065799949032120018926054034730605512563851690802388459270629233013845165724546811418688279448234235483224495753553546287764173675055824872687791293568866368359167034552566345819896571437185261849773379869914350414166586576598014102274613452864963869998878704857722613074675457746311815551526870851125071032005773990136827097512703901853538927277564269602090062774762106123948909440273536503097656106749553116290343873302863165382673628055181219719823526539410258131680438997493166726147709041247000611205144196152934354288579440859934413406731164330193547333658100983462042017127564013479753259521559702633079491873099106350809241881294733949501650681698530233660925338439887352501524758320202019864851800232697935590965958574786373032644505596264198252694119207206018430675351655920240487305820664218982718307219792861040810179337632568771073875484266700827358481997459311990826746539245881080004990463545124514450218759036581315266469973420373945088526968816118008233964513067448622362421586582620493360355654904956522510107793859526690282261880021603754837697921310682224449874157388064988133734397303668688279828060886743973030835903544830583454557307402524577218876765268389924697838876771658261406371047615610528757743993839229515266980595803569600765671570863889714677844257451057804981548691474876761689241486249458182767348352332947228747416102730397029294050968375020634422483673604633812408443701746033553005060377021171171014648362436972796962290333306454941127559683604679172556753012189079782453630313327382936025353815973806368231311185551010869674812295358938676098341462152919250130691042915902299634678431669584322891206737061107026611727871430926724090127562234011043145714431620461169585868573492842991856178977489953623443938019723109229552505477385596750646662441815427625058660481209585352504568598980646802436379611276403436002822915729063982787621532271220168637282232388514105099639722391817081634146404150521881317945839591761930936780906926609938674143885227510703948330610895930164500726032209219078192139238931867022515603392094180460318842120327552536988045990543690885193228492727567459954930650543703218023918457808580209996225187000053576883222196722248538233669924667702085056166772221948125950910318943320550301936421964115006499174376689916302477709959034051573799115928972756637456087121788514874344507409491124242562060611900716406782359260031513323755723874126770141675809792682274536455955381568478075212464530578298932863715227992521568166703754278069067937408797710178792799767316962668949558917740627666175906158030733833189326078558919448657439500595593819904032589917436182811632584739894133936891053025050187581300747188471165400563790139489389848465288600226193824423799515508961764913041893988261306997888152427396173262641026067496623521111111117809881719264295527348653105980331370224160392863784716797983773595700349250680440232493012801406675911316721774327482304996230824208329971522085758629930830502434437120726647264094689847802850726002266813642107570804658348270944948605451144810687569275955162512222208725582786191070622337514747967719965103559322469820883862247487946150165833354778404805998855129389624879244633189357139237246916915129974352341083815384911288266466820036445527784728170116345117052918710321210745536929586031247942542894686573832530043056748083049437917697209384671156318934540060990046052094344338302588722506562154616237036269886231042803103819806720822615138812111049743304560504232007829644650240774368289173945753251333298053643650176276948371569012025353229483856882408508928022489742134064635275181645895375860240839115422710879927058123173521583338446310201676615195230986436784131311825693575943211966405791074144190155802012964034539269122107962639852525385155528643974099884242006996104228267771861056529562494120359629201808920938529041402896611295711837829139543240956761086806456110032669563496985844517667377498877720979762203177053931009643242356304500845654694107869845918111096465815243995626399710001066403714801109636064551307849943623664504429316473851165254067779538423805519892473176060656055665211105606404729388306484961267586769829222802296519085436022130781765583730146693724316776093176111144834849873995345305414578420931047519844032891049469795242768139279898920733367016660507768140766376643492502484776777705676488513753907355992507733016187057434697409955180523586891629111548575493309752738838784554600481243130324746013102339391868248119861473254300085649592714376896163955753753917366064549566328800127809554613741858589000733106841134465864320067744403884998492658298875539759564393534476948575399788122061443322142923937647501287932707682351041674234355845513811738859391086013971301877452181761220531946396340172128292382054481746846070505545062324549502065836235495834331380291425347202604320339708990643069464096921195466401147581484354753708485411441084941120083120244160978966502197379972898803211763496252302639808692281492038360085793804509324604774060340780733947315508956326582616046975296551286665413862829457596437075063423219756404206905852164503005816771194253699300123651152560439698047218111925707628100986666969870985395883024402483950454883264260638818560868430438034358665352562265234019101646357226992223380953709212207401846348276317690249018090509913752544765331027259598682716170900589829285073040513058139924575746686223950122872597583826645875015236314916523339491880395351902438548735715818471164023382320452970897482749274017296536908039310360891510734695978475817568907625908936996348372566413550840423485865685826449051316951197506654998861490031758757839691581211543910323664800442999124223796729759848037791607952803777533154332453043945976528830842131085709469655913382819420110096070435968211618036718968565571914947550834932514728552082284923107403985484170709252804962715775550192143361850314367233498149990858282393881071943213350342320137535347040036171038533381599204657825494031732814270804915283608364468812868586081807998065045250761314417610244779460567253915465894212535476614103683764743355177907238587034175885913965685350225278775387612036829908331464791312229256508511400467242593111667927961321135542722580830035261325328316397292480412294894486963214885422283398186007711260505540585572300454270464774653039409112103422818857590537639909138233901253167776249211828692292230098311315998495917835685152097550114221865592193999121220371280546493213580485992920132910157163238561133304672203651300387443599637892117762936522631438603137131441082788609556793644337485977908722523495118845697775658226010892346639597522134398257396932253655495589081172785909729076394976115255717771025140850237113871236389114580504006672410337600564331198593084502605777586962294032292329915749779285656884165861972154752244626261019790269585829325554662515925144766500023120249030539036054710477938389247969011523862683007194303904894503938055291923504234466398862940101991961191280660180976169666048201479847948164092678136123973045288159594653622351481659510922291673464482596928705167618670372313981036159244541537924321688973084374176464479391124917250609574425907936553048928175381857864206217084010723341921658632280883753312423077730446235269305729559880560390493500169223238679084217147183853994912888227032875223151194518499131413836546867078097501917958438164465828950265336425427691414846010833091987107115247979554601099710486101262257961237357524964450126712026273007011329207031397692007103228504744729895083825535161644303395430884257502621686624714093298519886637566588018550591762403030551921807949950542650270801710597963987754055438099146270180868302317220669620917759836796886359215718496187649721865939195327035174470466275531104541647437734673039063929633772320996704125003834180186215140157346631789781638297779563939801269507001985522537698661083214490544491647345180634975080138578552843472864336930985848206366036903967710462848935833770786975754208584099370290275469373230449680388984935350994458181227779512334259349016206423070784411478553832956362340214386174492755724095711969043427490419946219919418778994540409702605603533327757516882090941099005287193744819787241778822000872829091141413132479025178823423947452473751909267245542386019121590313074968008907330529229326414026975948670662156735877427863694491442575974515082405179494196298184330983209704701927848782442037983009358922264235991593235605971921075460039426539512100850176685054149255609502271482371869983276382761827674589289126051859395187964936342782144875409890616385806690000285833985618819372087512801304383940559663349393912294227461139408214516857252385345243015022966445102029016006157732465725269644607212197545785922405795883074519841245068243210821631771811978906834581848268988799263614154970709168482727048143959468712412235584740131417438127120254268653747023184419816713982896958774847718053686904846047013570674767172180150406652177706910444421087564706490180716453825265169945605744391546825074106575673663745214167433136668213658371102107351800343445905576188513114301397111721558645851513714749331115096309648959272552142390217833447190245893505847807774094489946530406102210352916131703217493771122009472668404252720355743917152315364028490439117294175908995082492795458792987053922712654712469078701031815445092115006405928257557764521440872005914187142191174837978770428748638181676139694287127036085553255967095337493165366783618920819030251234754884364045817754637632193602904016529325025050723059574273877796302106759828041624104908689942296572290658464140752864991407257423877343931495944242714720211012440812199019111696753711501529878012431617073457201965448348664924289483561437202929568250464580602725626912416491325190580220318303082396793440406100965126084504031000616055899564784840926187708112513560789106173956130538889128688709360674599197769751939786393824484487220534821987107544035759741936061173285895336589660247095572937745933634846961801476381417763458533469787911452443580190634704784442399991890530027474584745841055167813564909599541394778470372295722990695243745190920426784625902847171895975328976347054939076570993423335034494761684899946323385650423827382351291874180639554306596918559551870393958117363223489383795582583393667817145597665043058106588053843547719130264062096625650802601764974331602875962524655848351153741250719182909785354642361701495405262184240335330954146537448060584248365510903767190825030974114889482598960400551699136760903001276643544120709101213741940286035986460365514895218231640136247486187527922019718161427894601687881671239192472023862418109949843612110428033104759950160738681450826780110319181060141111040418778081708440367092362115938973114453541645934023994239098107168663315585095625342786290393197889104893442555235497386203860627183796871109592979461292474782646994887113273513000698896228480380781304422788180927345400300319525855631245418807562574917619636224243960994758163037340248461762297461966866594220647540467047468257161005889912521332360946439519462245772121934932530374589045007131406048223535082163930515786763182852493278166440267788138044397640292486676838118538937115626777655056013372984030747304811382965656596097431008755126159283833916815461994046260019002650806514463169662885353247352020927497223034107023530053388666105585383900498286081879680801947679545568057065427573043796070055523473569319913686989020284526417048480390672310297251692762229333630639651870373696796490661161441636547105408434820667655044863084932603319730097869722170037935878877283857190558791086659584007274817880018276782798947518530361130049510974129637687931354380569291113739367825594724639267003774425125194360955756757701031981401723794649771892467263772547331275921974183372373918186892667221634299723141532940082899534121067480725470620656717983092448601368733791568251959942790873949534991763621675247643204881329616923012990448396837711962967783675795560821132185435976208484169649468143740712431492049922148409548345370874487298404043283626397426585014808861055474488219473272521638756320190481589452978883631172534181141980797031138668112512428827215057315353751467649904306709694519807333321363048922513010305714271909971971235678787485774845448784459402715017909504911306223347148477093752531808497336642009644258220594109993712018293200480929785067912416970073147198168598509569776052740030784430083567474670798869935997337420673296685854804872260987175401340407502169020534308082154052090597848715671171256288849533806167864634681058995658646994914833367541528461421104691596745762944321356906772513191252220587595917707598907978970474127378225607064813376282344731318530332963126240579244198101826479102067808221077581638637944462386238326790588254737147932969944202662055344088469677574206832778674053203990347231330033709684522306985174926957225079231664463538810520920024541454915457379907538939087267109573497276755021609726879095824535364303017343753651079235670914516574245554239270112780160142157188453048267037394351164051115512724545127791006923381189896422032982628694936418396419730482370736288856995526263409296030463791555926467023600278704580380628626564502705457204891984451631273809914762879302654612679356464512035063782092665950284786335820467770940671190226830038580236719475140610903242609519191354885054494982250096735128467574116578664002331895772466506388921309276910773328096229332558502847647253313390144360775098097994595185258370398439936001241947134354732770852704524257565625111643704571614565959521867308053386750902208886304930066060800082903610946901850349689281898698757995794695942477809075752996503918094460989881902875896790131293294334303491190957059858344160359281961792643759821662327851760137682070520571768350741716919811993916721667401272332590670096220096069118239426122021764657548266182444735854681841938187229377618617770287348756402541721240894422223212314871591330569039338082832441432289749072702429987200743146882332962456749454101353110047551712355807615425551694684286346436443774253928160945916892024739037380599902728211685243963897463894274692039616088056994694070995695610015738737365663005457318795615765042205634818627285403698195957214321335559995904700743408638617533324821445365140685432746921277875118066580697680760365918113666167410799149807916033702417306049655939871313274521135970430405495122987058438751386316025998965190500773654968893351505549206319801381209668831316944312658293218008280007098460303410403113313627979645007818427542935139242064200184066361721214729387210238462985231667046330056339643100089074507939929526941269105133469124401711866875988879575535668621900165332755922572536675945467376251122428226285743372135524323592051837960273498854775553620874888855355268981629239881968605410834630754804580236079981514921945106644429322626832053464224756309811904880663328482447551500950785559669061688454537676895641824301695915264750459842953596391510816909953240278302323930682990421888797954812283344887259966404231681566669713861789938625471240817467103379476483797211875213867993271167599607711526709239842043505006156052370273548161080509635608898752993179499285162347283787114104368005648074107422384008073726631663961931749418395313628037829109261300021962083772818635594375319719758226273484738744331602340589605209682661898629856373964318793538430691790506774801049879214139278126565798673271850291782568063353281944496538105820992814353093558073886313576651088376930811897866376937721209741876069300954083535221835839997872861936735997850228819466335728947392671574810566431513801887345949859812307270025517394566618272103675558571931909086574700010840423836586795255136889371123660170240026010188822349044947652952273000487417422783500913125924241008588884408651599577639629066810996601999191804671445726108023274518518459999129835152173728759539047413785482300169239430548210282873779560136369980544666403496585341491267544341389099753531029482937808608399481915416328548005911768730126386957923008275137659709379189659426055858196615130634294964878261035319795017009785801300731265877925711393903796410740598493778756378566077061298481220702501430560009144319462071037081091083848419665868299799292040694118467204167747521128429508983201356492704419420466474327773130041048444558602736960005453448523560761359427342631407673368593070922170662560120629249262628595642503645606896612305425414936470396452090661334424973010663527595771436035813448076931810458499180360172046336558091633102081613455688006639020278152109384219201052667388745596163050566757690712230475503461219553042596516361506656428697528726805888322927507911930091455001252694149815310200465641774122542527507799005486730327738028321354606791511830529848732097157914317401523960725345572212972313017858618748023516496261774435008296881552079807670458874828804036735131468891562480145008078477923518997902600472147008545952936437605888186904436664793011151526334701041336655180952816602303569241925001634943140901857094472587834415541625513967304654599587038698513788321182953112976067986901218636195301842767550368067496083092483089278830910294758266813670027694580891777106863388548249846445335662120453496969154422031563421629607150491536480098270906552091516357096173624015882354254001172551220322156588453155646574205068993088414899212695958298735185420942919317359589525853289972890990946312127969530909714209956966237654543882224502061021889972961080494164120401860115762461208212658584443729311921426855917727258867444009479637437909392292375274487199064318346335131498782875230782198621938936529575494723600230654866555189070387683937411767297433063697384646249041720659413484189014106419299377388818901762584103802368105580886557350317538531469247491391787287352822674675198102053029732488636783305328954759009252657495933808208980256322788108626636801472227840943441302475236057787495601178487504214451502848564260509389033482004728909887360372931223783163097942955903227827363833872602658915131190677496410155685562155586177138636546900047243117832895523481000786662287547049995645211179477312057683552176695868077573043456921485366411750161501945106298672759079594898588308685006262392433248339095627540899490917470294795784771984333548723094543073425375940652573555951490588432671726789905349191679255243084799196173559454615604971226244313556002769677247531470897240601961108710246153191821098408674517853231761526394750855791263817155510704798378695580319381964161952051244927367807697476532611741426566785779878879379053967413833756263582419932893658224260684493371822971266498904162844804579274517744338900104800361726415635868489410154922217618234461071229048731345981955463442012813965869356291155196545872659830150743374231486117863725956274296353088627000182987992291428820829682504810923238709787728979257559295503038756677467168033796486183612117984864839367459008291460176182440756524718809762270290243932412761072490492641415632731062755163314722359782035634465441188152352914024506959816387830400100638442759078885653611062043669935546131988866515639127077986926959347567382829658849344092684521084912908376255909251589748509325318755212894860023606142394426965232928391561348904270679606610175981758232302279972130545039223745974207700023766068016485252562814661787892374067410760202050156215577164629654918153037790078424612472623289800460544071645479896669263748779437820280019327300398208665005941246756075265575303273149627594763104243633339632975775457211417957857283034284585868764154502887004981498953082853408210910935897292972811162502224150461230998242729137482643894597752511979133822867291279911827583574623471479557386793273647618239915719089558689126570376067446227049070741816572979239502751848984179079787312502114593351012422325694285261641710882904832122315398010837031983965557056138256340332647226862960505480821928922927674681792116077346713989670971908497936428847365093400871586616810771276062087013723203487726892806660346498621865143518505287757587421789778339469164393649066472777564973976531915293924397874805547219853348136341821257711085860019201891514033187031364030819093340107642813905318871942155692110940409702697305989881066285839428992940282796368681817383882216438760545635867546816030932449260602943258104114934780316017649261758123733604238792874898858694508344756262188063988631769260346879410343531073184861123011556787607604081370739013954165148071955929783718007835505793989392440771904947607651919882455489245269049682682541704388564311394002493345788436366726102537174795630317770203245248604879046466005185927750099182832362441786741663260595820294076223712677271937367886247790066362903397168711044745054499392192696769407740915206685937004772273498942526665661822105353347079506446022405775574718218851184479524008451737623117873373594255528800568310057584115255717628972532986873531450963489079670471603191452224599136938623669394858587521998361345334229140817642188182784951440332883960744512451394460472578564059188674142205280801491788412916112239076297103865815487463126070067800706903330446612872316843293483138053331789072634741749363285185040384690142987515328186676400749593810321962898741734996167323583624850726438950287552000007290328166403984257121120816661665316166155412723744576716787860725660279611214750107395219877693788829853027824777455230820534252463473590222000594833302003233569598225566141979617330992099756681977042129528651024001743937438114726022504176807504143967843007813159033879977081236174035870955881742801712975993338588673905562677589033942580890841513059069279272224387416200202713658110234968902108826770761574535697625069700962509237929677452112174697912226768813867643757183957753755052210487182457520880333511084522384639889841115309095907899078907118331050882723696544072525627901388882444164845596379292246366998100216990616505845695568014791000843966274035560108424262874743290465933795627040960183714572055455742945305872189326492015207233922454130979925956243201166835691081595582269039961040502210380145950014670233114762323291752790900888279870496991685824569939297653688324118032106038376002566556355209246065907845468812348879238140859455533216337107591580394113512757276435056195686385667099742874533796137006923510169030009604408685862263280958159594028005182877598821640484830549654385196518204804440158064343056535055043048659879405908854572976820103512208754602522018162324510812018943531437859876147168743673239287767893123343632063985178498112151060010293153074001085929120788262991406415082429950022700966533425773591295002299472521879786594669485186561929255369902128745543174349797610645980110984179921860831306430835006449779978859773943919533636094564005559866714060866713992206875113068495170875869819370112771722419695985432609894408663061197998085190349636897937460155846566343340013398262686786540727994220860771438177763426798037738942337669740928553811910423770851126112256485073470208365065137557157483019302283652205519686819129868105096391108228535439598072693777751729576977429286059080402921871738327272920950836421342260465055509164670433435778236703031666841886670656129100801575211977402251137668324911848575387292935845012620300669123265461686207025565467934869285763955734462522854740975976678876110342256896930182753517908984002433572819343877700099805090700723938299595989688100245107441375856986563513907007365926163918737314964900978876146669816053994791949523745171754760953698993027247176533869076942104483239086297906656085396621373709929382333706633681692969144822652422027394446957185532638436927049787774403401483477335140230594591937774666438696462188320759885076191533542561181604946277712554810780182032815131874396018977902718890943055986833131512310547974856186388130226430876545287813380924808366049676754356984675230431618103833580943440543486993477255028216250046685530668671074391165741898297883626334543782565585129464566093926533085703786937884135215605464024629736395895361796935055986587021417586968938023729783729824583385384213415926655885316675783019734188807385595067659165079377048793748410911218747034105205427496352199352938640033167346859488138602741653030988066382844532429313078201920637386571030766463153189698883601845126215086601220209928732836467829567459763252886436074470205157667731696114221331199586769783548638225053819750586593037041728429505101145913485180499860035785305870297672618525246188557734126759814200222828442589323928198929055608403053600688042622839471360325331431668912271891524342856821198398183730302895356204198767722359827033546196687133686023656260031959908406497448078712318137716380455451279772912579979007079933341121822752185059163736266197701668965590607614507985182405915696590062630537217567589715688272839775168187592425803464947605627792764229730280483497610692962525137548255632043056783476353058839754247342178166875384527623057090068583563364114871243379122408963834021281276259981503695893818339191511677264332412913421863399686816206676027411891851100089820028542036213557044897892398957747230061616492973722339369349712219868939635358588365499876060787916806177429028953168252941580036116698325183977132036333605699297111499685555640433391686676208857220980064232066510376991344380307441829640458699406095168174312106429058789624771974563877566439666252111599293026561097676229357567002679926035221709545194938634196926339841814965029621642336383899082953620812657225505400018337175892353479999422588478020324767831714964185495687585690402675715981203088423613255902657287428320532749538058460181048350616244482210813997726182998029646775270620024735395737931783329877532235407900185178795929041567188946831792876779988169277097510049309943577335814214204564817080457422030305170811131849396960942453865834743528706920950598954050718129345386175857493348083391631264036078569703536106078038478025290313031931650503125923134230140134990333496580834698672640310047820947418756101484693730703410838787200810856110548078568230765580355160477047747854063271305218846713778876327121269258021979388362408037017576045758467278086666009635613245798686535942870945318427716802537032257159453727479618440919035518136856706029694264742097832457666943366422568818601970116694267162736234841246996797858210901286304193482984527082123052164527642904090268051961977090836282045722887722728816377838361153747451490305951979273739726246020596544006051735087746373831953092854241463411335028649432720988610653671786629574326291910749763674179605757361695136315241227212073396517593548483805380803441436778832666066736460692965665691904719258715970556387250291878983011460959420820972621275162450752798133033881396375170062579872281886340471384385488743783093673876130234888759382517122024362471120071247131143751258554467489176770643571609880899665249368487309414284069482939380172973979879303119242331758041082856552788841798371861180201895329061713852380682385995927927975110269007026891380823651933619097531176868511763983670612978016312340685529293833275243361970131211277377482852833255090279522048139202050033181427783850802477606870676257342431230405073792935220209260130088426257937698566095867611699766976607115341984284758709089824614113116277217790195272584070804168074999420202656853871255030021892743237927382016957781527923618816377282245568189012742322685096385611637157124214410796086447079693337704953971873210577375683967554440669375764636263581634209780161072250601937323292148457674167711126552801063188030113316550701013231584745773915650230106301543775801762106982807939292874225236757590530216115484409477476451277526131015115870343834046602313033443299525104496255594240873418191508601760259844338811591278260075029548538000769340705765827330657856696804499055466691515027047340687566043642865749658915532496109124660245762146198304867555522819177894240118544890039862167966326259616358457189870608646898521561164347726338260191901896944374271537919954657163389929996570109535543093439775806458834923519038959530279796291931317139858677953209134287138612382960303183082282069316203546173678040788776786970768325490717881855419126036755220947327646268428366956627793033523171649384592759717755009555777867086970427897920883988042337120082059555605870177953795048704492211311662272742963882268758912416234404592143142086586250769064112600491429128768210696186954406256212958246776950031441644617906752126503053730492686345908922393980280356956789141034054455604024354028158608244671833331425924533032755673225700506972561767851087712776929458998978609703533487716767303906881402318702800642747288108097831328865445742979976001899131948200323060795021216640521769764219086138833676548545180130813672371927838612830603592662757629131682641462782965993254939800533669528305224874408513592962222805451079171889483390408475687124379361347764186322352085412196969849321618597189863419865868744950861746845292049969814197907552012493791956754503410631799913128141847885601852853296806065884088422939720850092508951384139174208784898739020797496631605116842100799349138660537443106425337760622076482486023111630017151162640779306283462652855618232596757529962364189209646260903690138282388366696855233951500630807866952646616665760447213061930375654412362072246569339527315517516691711367632583457027832779564423363557805717196807547618058616384892240749063794021201932388376717819873433409018504731442495918470250149470898793846958206474354462368534927494600198940255648519364964777141386239857118058100701118835694348637711818548291166134707413907448908826634306670310874793487647296703235283618578393003537241995949857373632885800207913387561896614629614903762514821235199791609908915120486498217850950564376077664524252807872701727964902473903372184607163204559075469066993239158812206133679920633899661456172637222750373951683462756752964829903919852081138221455407269548026421408361801534849396928610373375543813490110296308911965708192979556862552548511357355664645997795215894692030988948224003495845506319531821867831677049754246796094136627052992611104586345830004763099395656786068273267089887966740567012432589891976919343393775557456302586507564113090958503339163730844845688883589240201701785978886212390422023095424943834281865601101376630993029849967617117402598042877688663027817658923663107474866697535654744464606515572605315538764801727488861622751459654661213466373476422294337693928624723904928439571812665297032138779014769411340945674168164531730617005642641895947354601024542011158100944980349636091730534340161975799038795334903840528024535213030965690518566439561758854587702396366002365670126365558032609435794023520832484423152211868017814418713092172954695411964428187670133954862218925811303179433411113060860517661023395048905260442913497995292605519565873855360994415568648894225458297335649023151473034243554421286514798756252354828153237211892378936809202044681657618541074031646538471737200613080723969332624815534002401809577514096347673141581294103658731697546921978345552286795258585492012562953210400354533038727533661339620439984259005885146273315265732545042587816026110898246187842595193623240348652439914841609128360897255167775951314120856287812701454596248679121880840709690982433909035331549664022355806245496411852797743183517879712911843485157878099805997280180863740210701438231887837147272816145992991574034108653948007778975595234064459717034407089100935153539747687844912491172965334285686238456356684032425332257609773079128727778567520121438463066885161120651375851168203812805154968385143377896686077062959412084407399843640531188038311900066617078252679500781159543568373534507209983092920376068537749986042652494698932656194940675260050294357525339799623568744991693063351720953132201507465706796771450805857657795033989157878741029239458544129929176447988862836629220103925302891227695896588164248725528608414193646254435458245017460005196709313624459966416934071692049500156795964669328671941952205908654829771079161717749064581646369909849861892048251309290412882130281165321072557580466947553044286130931120508470500024446437621318468027548637057928342277308244991310747406390901904735001378312592762824866114947384167682114681971566171489302884754869968447266738553103593758979338731081747445354882862392955612527739182610744197703402995098997142300898781119972133491752516709949977516306060694513428412620988087574622729624261665948248033867208952212225929845253818951877153878750365436744979521415633907473659627179261363741838125958077782787616852944863480598422647788688241246429912835535518697085318223940782357119656123540589927456449822884259532767108272929424800272344893833267752379525225356619109196681902775956446538115375487090256669114103618381111108269111838210203733268131405137377241612560588377705260190921316625034052659777728790813420601497193104312429565838705282339038255568830636928414526740423309994661229631945757552560297773327389108885754061465914731890591090678983272446917900533914373573349576997368935918807720458887169366117955510928236056659676763207800648852819654761950673603341185464037501329830085378005370199674681027743923513247648206595592259922534947539689947117525594688851776464527188484735424852571998079821069605498696363161319442406889457088786282889063687300194135376355707018398692078390241283818068563921179047068189309858194130729140877481334955418622221824886138473629370174044709000807860256140198331577325972558447670490347298988637209225425663459439241919260932527429105493968890915542174865426448891211775514600900438552968515400174393091990250262199416999182097359892029815728681879417445981459531478440910102773394939061793446576721174727941339326766612497565822729078291087061511189600823355972346436583036713785052325432793214966987054281806421696470384315204306456995379652775161042046045991901145570446971300916329915443211114279764795926235708251466500947840434545299273771980477644113918718285529814203917027215820713060304192717645593693431975735114470287298240544170000817647388338412325894673416691130924794238749171642749074045900668636531313399489861977799533405255657284519708523315280206420269815759624445611397259025005076909764116700549356777470691373545606075056785297985787392236080657368564585436079439693102267022930708039186744440547163915595025191123564841364921326681375437831199426268389455320763429438803538005063785375283696743233996833247703160212039520649303599685382680355022064985862744101522267752838738935032955275895738427762072402657464177256785435791714754150473057782715021666391765240398612885681140548490416610283912591708807572224362465207012800667641590253709755099035549344360271467404522052446214731107381963126713342678044135121674614799494545974410135130097020286132806119487906392851893446505029964236964339098128001993951515455078202958458702892805595058268551462678166164555683641989173907865453396166323085381221947581626379345555968887135350752644246642505235064402407765344412123030376552618070201472827330818779320293704348528784152838429064914130638003771873404816352055502112371872331492300477924911880161839220744072600786389730302531376944129310645200444754150554141787687653003762750138235998587663313458792473991358807997903099252603643068258106020688683465194158222171012045933905057601812217167313403405098008222588279739035247763232470760466119781663084104602846719792697134267378615589954157229532329271437243782174909348026119572039441926417729972824895554979035505750319867918963076622981184000540518215755089233060292271653348124080882130833074887829966119878491046098038951348339903446953395690143624343669281609498204432082743253520124288415320243383008279039531404908636543980271807409932790774759163229102876951967202229914306872486623909274449679753132243271152765732383895723181685004392077385956071304641438080321794113008762004064198011233731771266914108653595811593765471401941184126250377752749813361114440001310882844045821837009479508346397182007759696768209064183254742779929872601428015755130700021421150460635587421558331026313159109086778706469326410602659252324814927368677614781699567043646126325199305996219523800169788513514154339713987048353021271410839607196252447862904385104228209198804312003111148757241665576499233317408191670478413501449290330598201402583687623165333686277738441298419774241923085454199231981811952218703591831257495022368766341187745293613078817893706405048605444602410059675635278574374071239947631357651003781332516542947010291679024413448721554903555026895203369435281390245940482082670067229297270924011855626965820323567773282036387118264389398632747005424517412566918217358226161707280234490456398624039822561534475562619457277338110457596515425540225084381066862697089433688095467616894352786495832879662878435880051575733950785649120633412342341746177422683908056084647636137058760972110042769813284716416353124302465611929337658431169383358160876489801080831817984261050592266710579740348780653317196926081017324166121869576196311721867867448211870397374820586552592333469327349566851320655409214388284187232360564750992681223245538808838305785457672952755999121144659802814785971084031335612066897891372817321409436596732385235375000247724940346531867436171742665032606695336631717130497730309522547292444418177703096250545554585124785984298667381835259431592644665790381607350752498995624690647750727524940897230125281866975768195074830941918203724158748077862773947886659376625135887863087841172574870559934609225022440765622387737403091248342278392996993818488670802172303973926132177526112442030258856433625440552536020627969791363505169824624788584266734767288864259018187329501917482345307053058339458829172245703598417214204941804936501469792437114330111568304255390860443808603025546069423579357974232855312024166601987364164780459685928973144819832504274935300672553108324932078183580927871999674191642361937238888114042744773304944102085869701642458284046938157595408126658735663434844549177529428328870006284864858133378707957168625238244978675218002345224055766930756544238245326061232416971081318198114796948603079076203822613320238418305968900671694377333765850852181520513299152860077044361687617525058653842059155219699348976779162817033289273067408008590977359215019560373517000168246061495368473796639060499167019813394151848365042720861175392445340220721700384293643260541432066157129723637123016620864252756267461978206884452120023610690487702646162567412019769523333059735320543375808630887198810383792661224370793127333617161992693466594720649158791258762221888525134184082852420693750329688182050741112059973126068917933168585499122582989369059319687331571948967980057909754747445252970348760209409485784793467381996248657788646931518362688436491437590973291093299064301274975637971289837198817931895650942819295858644501926921599996161787036182852964622147015698094975005740690452348822237748139707292860718493272618711140397704797588957101647344187121499691416321811124871727199300607417220603316869072851340857172227084205601735987103222022130843371438287843638262731126071474749982527092328083788014130252574064190764271043863449476479865106499016710325243039177014208066867815978475788023548295079256814279352004000475851577455491431341993931351214264289337891930213429378395735176115639588817318957303818821877723568023858396248254343437654083861250249860354570857074835424552457158953783842317045978455888876493930085290287983461760154469207440746946006415470832923635905006853856459557070654423305537505973590068182995929879846180133777773421914294334347584539473242482659367100258188772996454677189586058151711634703819127814270945879733430895855601196322633169581826290879527755607145010986319248312568272648478096114821146417384476213721317484627370135919920135101544082181430865185917981579706813186294462858929014442272031655020291765229190923530319143464678975614677949796028989807789251039151601373516709867584148254176804821902497392304471843287755451687193847195672408980406820609902727299791488633390195955477824414814673939381293391481558931974161681726171916505022011628445214734880894185195489351189240634080568195558796837064133470459854569032727108789187418969090539935152929161228474275818386361191704810960906526196569658360750514711955443775400506637827519890091868068951049894911692940742752077836057714713541245433213046350594328035241285728530814808426807672064723470683771537224972272344344378764264906858477773609266168034571590365605420388207604595773087769290203080204670639030583176053825922210497411554881605158011730847773826619523562637735792490233891274664391886123215261068367726401927350488229502477933684223466866429945661530176125224441971090057766203046818526788538559528345424774527876520609329103989916216373987129469673072656062380028163593758494427202747028419739668661344055192939741827349466229683791833273778964840713865074126730578403376427570579877825263212063512409008813545132131836818166710155255171379656711052430471755633645458478254947361224156628310468846820900025420905800295890858952412121777984811895224666129446018133632903902942221368789263177033522622114183205017840260957661199964224220890378546200715591746629726209925096352281642276150208430837169578662045079939932777761075256546603852670263126588091530247252860753149306882718270587708051958917996671448920070863424853517895627152613908578166081629521632754901027149782621923969704294801833078338137889627869779358991636010701194230392626567906724008159128589426125678899976637014194005722084111242201058630731046314059567973645186981238572497796248055220707168299158736591553423844766675466115895493155989324681896134606718946610191646072862527169795556676711218684278651371352018885227502287827196460803741810678241368252316228615190833038420916289610737170436233102326272104707946276723703886361977874506953236590525087197947494597231226708361807561778770240824370167615434651928025801733435406970545768302764712703281334549216936559897553945163403210544181546523753055968048725088548940412682050227694438337247966021339119963061111780502199577706875006917969547867991998823699375121029876439895201743864804804432849971375011298512810016235138189324920232927956169314909968937427986131052902120996872080766824742492261788245170198456337805712934230625542580106545677527324944742531567507201313196017390549930697898056813036907156185853867134490030288449381072046947638384352783491717793214757506230016461399591917469784729511694676402499502892827086693904606067147328062933171005222712840112932798343616882666623937750759250669670498743758333838642451526848026738802038855752511913360726711996335278435556769806651148681684789823663557635562635638331968466334182071922540814691210060110421161618050682264502399793485064905136521017551368844868590685054574805561170059359595541254565352308393222808713933202132396657753969943014362671283612043888243523860680839021549887431665777823253559469021847498403858311713988832872110858566011998428190042929582288238724833697667882041970627764524780476612315930118958583936214016790331203754607832203261812764894416270450962402198689192016861763831542094352861301829967566024913052200654983367993219051205681082489226513808574012224129087594816929483302404919014361803879670871961656942714476946619992780720749064309611625470222475702808977245996244216223395161813333946136455167382064495087949598112516159746875313451762911165876534534074699103538808773862017079958745118912842699139031176516148423161045589399637037607373523569053529122200374147701013491247042151167475104153335241741147248778855781381735860787731000080198441334877642110666528050718418047606249487624769195653641272055082530498722863171462048479150898236523179264773847201092775306410542750264816231214232955953052813039503119739603055733852166013764980402998584308847944135781569803605010192123998684036038040685922873495659752173688056532103742068976546479328444647882590137462617411687431723787312258696263078621341363836365118663843304394555108855700972068965853557683505442683930009155147193279241447755821876889834899419857253386054044945166770697919160542437328881635953306571515671980625361551350546348967297655090877118673988867701443716968426514145453372221493251464360754655582693072255908202640993461211939043728453514033425618314495334878084929182563157849080890359750838807622641007842606076284902128879274451567893471710349210496012659553420989284633494720091670980737328674238886326501798062657436919549609367678800857295236780857070399389238399883072838706400434279806327940423575998860443513842875844510952458791437255866334266832528626908314082472374580516670646805829495859274516551201715004507796838887971826952888092167670677738489482202210951956612540647957233307172411228021765947578026375532737135519167639701675109434363396095428093017182419026482833871939926522202360394173131736094866960092749812726649349684212569110276174056474780408664635624074598951809081341526434170708424061229745632069920846472341660861735436377319390222874009726081354956046742090185398633307927887064585875621790260337408785056265643099307131980470166694105486107634338390234562469863256241218021636226726585967882621770458672949961556318314417721555958989568940992102773213330815024474758179359908956477001669399785129456588305371708242010570250901904228389948565604663277549651479934100676331824279137712711831983384125780042680015813292502489683098505894316220992905059455594189825615093451438113311254334304447981443295163974076544102201364207910402259130875767937200172530425598106966370027925436040346757637064429905225846134593895587557597102925496868454954533861979800613596303013411385706939915505159382432303990651969455716497491424005688235501874154224035865047737214102676608837565023193024677109699488027974241163652481422746910126255121989208206515173645350836282473407507089126615134914251300017557165190006852143338394544722165010681093884867416717209350462396091024046255067689163346241974859365183492490084170190859246589878662339920925329145767818447761465175669705708235890735653258883967051944907871684265737606283501385233267031125888453446763738636479308690631576847046538422048333326486380675049973646004163539584000917305316803634050328217489379893114722556078584378543336835520781078996621696151555919582066905224666650345799978849904468515665727581416654716267540143039587534909081521131684497599694056360691665371010348407553932745971104749616181771991331035744815871907416392775592232023664164751673526993542029084392280801063222487526095919047626094910622664352662234035485962699361350262786643148973733469792323023515711211478664798413898317532260762597934218688525859110098698968464235650049622400068258331649847414835647908371347614296526082330974682146585909314808266869638139834246445534949716227745926914893937050129102575380613348740378620249657578250587234357915596580909794240444311623107762879390605277517989374349285518719986417140744103875391712719279093471860544018819539906650333460717753683326790961727184528191697371826362470126221295031351602616505697339271845496223314882837250930847480160212075292955430946567970677192363809661422892754557967141789189003813710982531905728037605884723872444218906624747835100133827335902073287309284157276338387260081573529423324665494493692655907148335858733183220012593646331631252064209502066170024700976394693565489865633515789115383083021050354379896793584037646273506562466567358523613392879795478672004285062116280037587749731746355275374273043854340608236115051214532322647926800703084565568097013562718924616233080189958652111997143532328647076092742297953965137203917990205906500575029805918498535831406478493380078515805556911646616373578180244509264985130648478498460968240499691856016746074422282679836320961491460284819289384049050136996023509122776285953435124086059904147086165869878395205985618841026245183541183586885782769602007705018280665364335363394902246417043142896806056679390798806250527057736722193549850713793797491984671419273024985138249305507148871561173425751916032455142505165693649433926671269022494864054248961787887395514856815200339162408486414508281144476971536082624806610984267389505247449555512794399618176419976210386831455815067320020388461396053926847294447960750192513878085301390057813899695348957849920517243921272555944488692857732133460995621963688927474335158643288302050906643486527473398039959996530357207416565352473721823394655085739011281801529316251431644948768399594633397927524235388505288367959613821763648906917220263261314848453864970223107305655780094035833007707175694323573407859069026243973452281977809793021786175383739274004388010191802691544817985722814000233439558710284735322265132452144461149428043599558246537653514562921259361967242364375179145667596132275068244793488912425021497770652815468445988386487917075695371457947744629226762407625227633938145823721528305007418840497538809183323636852244000263799803949609883424629573657527503888189698473435848235398724940287146523212258076219907443139591330471526649357655624372034550601205927585223162561244543307356280932031970069230622661793833968106586905304644636303078124440824734716685868446096250493174970639709286757034633213558894967521422340040704405890402945418260618150713749368394322464163068251359474204489069256262938875083161436273897956893835608482578634188090550337018061330502390878468381062329658440176621589412819503321401227817398807099513783180408064655279382722286509100054446069468780785266224978118692765941050990325917323336983192501566257293626845934572837905626596114605284382985961546338613719250634643071076966162464809387137751337363649085385026360464049376778495095154354970966125041250728078087669644811544590628475633924309813869738624450292291243554821200947798005920117302908056711150382512989606908141946883309744649684578400843465349966873933412371553203205928623049421132940265295453710128255669884663788387350211875947129557128775429259622618571577036550468711516032600987965971357273855537439242943030366467877214124258637966931765780184220471308915328589280335447156013548395075732829830132095044474678805858673222170643972643169996269998209259857861521233290646133592300645745033125076210714638103768234753151580767862072105907217525884299806557336129378691317129491460726877911655743806716193913192129554582146930235074750808789564265126637528406070145413127519493170390498484585871536893746587740340549384867671779132223198248223547175974658579964100713448689927260443023458612564169137161052826022840895855917988475801932730186005317130703471645576066481408338673495223554015371277557693206723246578306243852983819967635877012108020117644799787930355292318261733860553506639943337919393070940097836496127018272685432709684493039991159071484347552471285641862839995227113972442079850747699475393644730776910056225254862615735788072590026666276762949601810594841684795267220246854000091921233733357484459318543688340401936736071688019091793835026964192183670786529555893067262843922484892110734373689160778129408622097990517558107653595186514743895281665832198898459042372072695572886130419214857791668949312307280006078090008244972188729623865964514642700830993567489116473658031906494579715133321939188828652012997811504529504375084228642440004578370193051271347862660195918676522597600658755702842230388761390496107019316751679344613397247139639899008860296455595535497486252286577288103622873064984820545340510348737174651422313327985802378918723346388559167373381328838013476481038621163791954049127921858228971519485131534008874542948785789390854595757749038870755965077999463135979767613043533847602739227254282238819533310787332949785328319926872923548131681103932306880651637855499161030602898975386361675312574867628932543177249494438996383854335892942494772770290917294734652310620346147157022928381264893576819784502839110956176512764086801864946060480544239755969995511834344852669652556954162136593260548771595341608873242942913518943424461162915518038042835481744312720701666408766887200558575075180645531871527386909635727462292707907181469784160397657677682161335679773506493723544385406719570238854731324523258234464286701957445699096849593904534810734040560479319335088759234742212401128858359061349357451711910609500522709924559225384259328504825185328770353026036753728262214293866125169483755010953112225696726458135558132838703662494697676291343676334405661109749271720480091357859062314073931042703778106763488680774908821647556537413895320839715897838483598125464150719954092954719498530803534296474310841700842578997639380838050147009030343834741089433218521147357083750631119869202733881126543832326937609047676576120954923957166640167752634762829891276768667738306198803497806328815988783813332435781968354278817529380692550169476858662113878887473752808689041775744459803720441715205915973873583432661264634179911589310875881242644780008433834855000933845010596369805210448452360553081490349296095220726471973706695241078786783723327385074679438560214082061394600935493058646168551240551800505660619197665660427537823248449885822333774207631233095652904665362426365039738050370449917024170370244028292062220116858544032700734790267724837448819714335934897154721527859644710216326243979303721051065223235243396207605432268898005573348738674210464406155078766545845089213888423895100539819907041612751211932728614318437524941860638737233832733693374831305106116026439771418364355334875162999845678638598683583763704596500358317947189427238188097268082079183421877486198601305896479544701238681353730376527298397986074530806260677613289068874449132325859560375200229996819988245992809492725743437528627293655943677498922624950942522754505292722450789341794760284308563171073185480830610656768221503874625342293683610161582308745011822777428144380325273620131090472860193747095458702408550949347068366767370321618101668595585570719271056456465599219607163258586506174369556979461844330151707972891381989654108198249081541144281299029069283875602850641705500199239855200785414955019770180781768678227108053216320107270622594067203340060592483557133446273776557458569562903911710107517204386118063155630355805757046513426532480724808691171289338989228125668187731343584269786753415493798239004029589023952039047970353302005078285171126015165757522589484488316469821843747236987402488477510212976507248276665355275088075045131774260850548004537356773957642995755575952410021372715761787871237168182838169623065775917732054849498656080087852189401876967317520242615841677376760182372793682398495974972855257673420875003217467722742620706121802462914471203266176487801081605682017220448548207992113045185716349818499901009595700369969743685982238569485292443815825563290822474555439857591580763247231118234636095311030270743346582620873464449139393676031804610636894512428876627654228244577457937753046200421777394398155598807991037719585809681075980810931350217981529906349031129831523830727445027055244639940814307364341177443437431646431182693856538599464001028876810446949952038412326416026332928666684052439900648206995510002547998591319133334956175505798338970628868235585151739302958672137544108896137018660636655248811131999306155313057783777718113555491028034340374177398388553526218763814913271133465946297033051166994268922629307477539242980960801866918092322280372472016807175564306182089150441541021814866981431203427634306959402516462901237744243593890123419424301516668228784132096495348181412554022083593234323315306114983479964134694873639030311232597353889093315851897320878069135004108239443568830275390793681845630368064114816681515832159413759605049514620197133886266162731609986596693269816807305340276050278322862516021235870859882377219692019252776561224191832416514030814175136581502654940852078272997539801648141531231559381062487397660189133354924790202961464866160823782593260910641337268082338145705691352147323047435774095536474768593524261526597202970865253730594386684400309739836209048302441435595695238665838140603739256337008730359015713874014139647112519969566520908434545542412029096993378507005726946695554759403576654432129970240993907673725879116128972144072527055089393035254106879067422794010756261293212360999045964379100482305386919424200436762111162307113562424783822334942627114817050263646170768412990885500085918982987177388141836265029291170600677009081126992999194127133428542948400846927916661898060872846970593676169546902985448543652539888705126046662002072288881888423370036100072322387370066796302237145919049366130330938674470165483006618360527400943901525829081877880566197174286053564479787361540928774823975127871565360035210105824483296172129018883515294501870982974414858348065821804562379113172424960310276046277188268870237909741903608634910797884410845902459906283261263243487157471753138839034093117838901165894881239487810480347736643493096639992763491665676543465346986260414542266736135167619907323579287212627948971004315948404873863228415810186593879614204712300935267800456422195127598444837119530157979200884309242567929076463158409673506855608264961060138342359281542779734861088386870593954435436964026005806252506964127370916556960903053542473375566963291968898785509870960305317650266789664329755994762934786244830998221542973051074639953040628877624869003221004419996650947918907900295157944442625938854060352735427844092783144540922684037850759295667473442740043179746259757485399172310064626650184924918266459085187359705872825906409959399227882901525211945321750928720598658009522255664348723364283040519390767245896766287092127548251526268471434627612150270643778174110630845912847122507011228088884973711414830068755393159182553947010685414556146370501136319732520207260533065809998577553690272279089403748146674223355132649188903222254094347199294455964585733317347691387060767374481062858418243717113199746860349827996156186421619401473569594344786025630793328517717651222621359006315264648231285166640703095093206776750825304761420047133603069902533540315314093580825860452236671250029348093168059810373940172206062717366088747732641040877358924098427384523261407515697713447697922848603185097954625641867051702213029436753792164447076583162184249737684065831794699157183433050996435842167250186489029550904283027307569563555736063919275676041301120020671064046303669266441082152519236133567271465571158997903804625299011205299617299112794819846939330137187106677264980922791254567073255539268164105775778994584232352440784765195950366119357848873361598913198143110888491476782202665339165997727232313046686932034880872250142097955809942214309670711473153914125796060992689826419956742804917780593319525646614572814377685030681614745650404307571163493346441827848559473624529281170818151396195439494788523509688884135868623724849322769049770876083483986894033816017112009644138811821448559698785325393054837482315283828866881527130430853534856897676407575982884626731968151278902872980552696387326115780200984121581666321488348904885026254707990801543120903840533617263277361878341742564861830560921109146740534825737613382890916705167628090599269564057427200176269313956627280811443751708937354675455995800327150162584588504771874355682374738795247125496248459892054166380999848982391351259914378660574666594287551730364688692015404872424664944151044378203928263604923361735708132958472538629576703377948273298075012171895840309278479314363917936891932653506328147565291771905723261904074895588816765690948579737251721950404405542891678757997554216385585603354634152994798254826371432540788613729535368938277952706083603266639024827455727655604365246704448823309855930149654021385226149106651277387843769527381588524432943154712495453337539673477726314523792267947807877770767206493535591311675837742953708205036314063385193804250467353247079753897918467323932985560263171861421154410566960921270965904679649412580830552713098949204005242236394984789206335368989588228752169755090108701364053042566934713170497395627712322463564273719201181122434281939742569086511216346608222799738319288887785603628371554084454430954894860448949546245758914736045523920274823275081821024126730130170890198386302851284810894404618354540604804343142322255601941849694827841578152496347880892319652200654414169738410037089315057601883169217865153107828490247364641219031399860286638490415627135477329362783307099183708283153650454651196110987503688733792612337562481666347313535527753496539534316368735530569213936691773775055470155758812784625405128610924363272446419411181895653906689365316496973256186244903927623833561114966484660291004219540465612245293416344184035592143166981590999349454838866472957970542142117231309464163407953213095192457629587774525553360615586788742113418043114574168265626985993378922286079710346852517347552669890460261912147206733654420945521587138362962527634913324070909504951674518628096680620471700107619048328415692687900074622325631927397808200297500695482452436658609911466392518149715900635445634879201169525206713258564889687412818713027115469286514905640094661689038786706047721801843134909435153672245397273420230758092725822229341656323052894392535937320884256681366152052629815464020486290533838931501834147624457775234224902872333955843139077278962901312529979519680475733329204148510903549138457992869433027171227069565413532369240106944200890598923224178108155143851065772358483505029436299122823365894540456151836653834894550177568570344918448020893960396400865192154511273742383437900775125248236603755686707667463859313699107382472038030933643147751138855976745579893788639607219887002452001204011201131426560300842179318810507953929953502682228890324301415206457595418064344627748333073404008677135124068346085637199217781903431231055464436848223410880556957844965481047925868349443626419068473258215273134217516242235645477188848195259999566043695237168913659225535446872793639730990148800909211695642829203701060571543384944447958945946392474338372000944394012783233454336442016955759559395621002886437385120156886672192271352132520628480463475658156138033681882871432480896955966968665039672749053158885161234772134110964938591052968190240590054334325058162150605787952750883421367082025563925194441975104843824380991088831159066608472293396229166199451455777378497151956748356698540387476151451494769744990840661756381008411101902857122105424570123897759368448704266196963496892730346861824239016300308067325553658713738904171594391781642268657686426618847387202340334971358190301399994020122037072675659672578570660777986728413886127540944474984777838599617750913121477065691239392845378901288353568420707495860342430188631626366918192550046451338477726983038553099345467307677839380506752726595716819582975547335838252497156895175601466248574884353100217168614628505294616661066259827931887533951645750799566823456592741733286066920208135927006221475305936208501643382093193023951158079638344262662917152246674790335590938447779811944097637433200063947496892286296720653036128552604213309792870405166291438245225070240922030822517501276216959952613661920364866755763204192755412293101039507980901515101438653398015617670732967876717815284639067677665878555601766260867604854904635947537657370851949334138148046462641356242435635673789597455516725532233146214776117619645130066019038369933686030094060456337913454244570306618858376591697111918104617375312936171906700565407619850242370054836353123118240781238083178492094052692929086804281650634968084230824778364580627040687716069371629305355320985172702083988230646029318220832639539726847886277928716657220819576671736224535451530928762929026249426457560850501154583839267928193140170789289154605925167379476522876828076735455781904856577249315999621283916131461551347527592357259249739513168072588162456802906670497542975072364641884283905602462758006478640341854736657196660672379369134571906931326439766788929205642016811569999188953385924039371816788082213464655697132991382209739350548737784068026291134003996932773987222541974919125274112476266394740973370346515152526875700820363380127392876522629772870668192727844954588410003274552393397470921013355883207264442254943899622300442494189677715212079945633493585989617159396486968051446539976807033815324259996774044344434277686257864623586330224131886155678221075184649697024236244005158461116068564509570449841531801806878679864989137717153224516084276244693109255737033911497634843359626416539172177126338093225103223383387523076519244546776117264356985392063155828681235288421226695606426008391588755120469294153361727605531098170072399830965702277818284426492546769319646889267992297219454023095818151841005271452176229072170241592513890728060265901779019676597757032423344700667785386601838694644211141646277648671374608124118895907481765184910018287946251875449354582635797635497422150902473665628543233302207861940508869280899961018721196099324781586819401053288861184402185283364195938104124224701419866516167945185646863375174209725522167583447784784855472839587346931630566478230191705488881084449982515191753110995298910055475832144394194330460128495559016775134389667544975759473804078759548091032007500463777919199707862107995428785128914412019928817727708215518213330894383310859781964876693287118423270837896168895761261713408667199552950370243525686316378071054772377369196329999142314715949592434440351052264487979776158773182350415846558628202488126051542360372012296609197043804957986287728452882166861516805627366880787083556225869288091615832967209937706668827373784697024084924074847473439932577628856803157438309188846755238771659534767063811774801937580535014431646419408213678286904940309267758111342945570732813301041109568724542967195928648798962363565591813420901370326242704117397517458908005313816250068162542490333849686187755317974829205369102674846428210761016524480788734419014716592916102916013103280979917499723087926184578924413713154003965268501710768053929168228161933474900784090937582998812510916867191324766775117126460878515592081349603722313346704969965177270766080576744926832223276216713064275505027204188876704520761123984294712341157132818702867101853032771370386106021977560363474713386038207077285118851772876454380705918210887430038556379493374875085034867753567241182861642973304138664734738035983303311787299402544938988987285567946287459854754541674837357797794850247109847227320249526494804334452324111922103015055890197101424244512882240475039727262165737467772248524685502424278948946124114223639822994229248456813387414734021528192393108112593454862614770453612239154847975033530566347665443982966048964325949634839114497330983105126170781649641133623468736326087763083494074518892915534670176656167881344166197149331111531187186295615559787635710480182189299347696242040022167327528966188677884237720176341651469374472049911690985504517226519503521241032961006062735704543611639166384986058330401331069016348580590498370090616049613533177282067217979879955440742999519740920323544735178755041454926226765975001904970492572195968496533427555726451582141277006412403096071130095771126505962044786777909297980035507379601077084377702289453515056771651841046143107169068788363813702539026126464009867594168763503229805485441812082885175121871339542310843955600405447520636624355923509068084626896904913481771695989525760638026243751874857193369495539849502708331628488359096644678771889066645552065717595554110199030628275324505898369766448131286040980196942828253003451761936148534509770137066967941072591799769026387913810278854251986172861316862429746642242486640008425289752379672706562106066840336983917421447756103598809371027553243907892237590341448726101373379048171529870474026481249800180216238119461755407695062764945075735018862981663278807706668569315042391666662935005518749260262682674384780474017646174864760531348666260652717709924068394795736648682071226309159554853124314200349020553089989150604437689067405547110611242481194110539050907525708624852523059126595215040552432084168837877368383707926086406151506486023546133014372031181835586182328478301921742739523144214660521367271881904590562297010938865471912157176975682667358147964612766760159058726146322174050733496002977583151865384811295022757186801766210717672818702745755201976486152198447131720906108256912210068019108031804248291631518873962936431372252825189877597402352896914651447442995020385593823829936059765577040789543844578143429979536970683391701135150816362877027774929881107157991561008972134386487155178058897837970049585965263887088220699605013918163132481575249217490990000645415522465434567738470298615539193966438673677749927659773279265669813399018323301975475833471247565744144553983487004631659011690592556344426000295466026542372831892358707576349170848171444543637568904941984322758657832739311575285294184785336640775320339525163862375947239253138558500963715810305238323850229779612605467972404961298248182976625679419513119877094572011472645079380140437524361308250516812516903271257322026627885680188398417425722764051995762064469787622923217683398249755834310307317992000439589758450867967858876956393721241910492419794365190154685576697253211149894595420034163159487201187084466608896022946021527938617765624763251435838618249469086566394767009644021380879875462564887058979577977891634733038764052865182426332396777963583235812762153278489873776845313177067220391274786867177292576858368292109420376834420715185111229410136680028149663804805052153985010338864286055079237885466906685353130775219502359032222408448214028144814664961971406131780129962945016438104218117936120622147976533273777576794370324648124786038456987669451626323704877118019857160820847788422555501007156209512292017720096047850360230798618459180465805745434929227785743415993828894008750899752779290914958164217026354251006717848966299970079309635630610243464359602808968071696862056549379651368023045068149640449592275846198317970368685755842261587077464650196839204804783595320459328041493061892307147424591974036577734615854576426608391269616799844697438271896720870047996956372989986607523870535281388943831109418324583953153876142171276685785065737301828865098021458296721908891824263143794995719409133552095771477483533266128569455824059694679664816733990969672221730300478381078693699788692265033753888855402851942393231851540782014819837094239088853047344390877130023860679923460110713507136502581576928372923097028846670110675582776100388794789688614728140245988523569711340068211049167920189737757487354600573640806074828237251691219457299730822545142926429368486527460575478853400551960744341650083606148972379349357578275190305718326902086695452772205472684491865702572932195204829418179412729873735878791144895703227018308658397759644667205144125118194208945390253772987157091471760646649849350408472933023087541523695764402541198437933962962725719077315259116007196084535142247454755237342067791738759407704652423241086923561228384460238915643239500289093584821249224126768086542190560928379643890632949904198538380058000394475928830315430195560848736319710002075349958048469706553689245955704535920438099697215448098785175074855305774245997473037766276103589630608409463083216272942364327505477160185613288918442457016402363793631447814623347480808123368128125014535665643040499543712659591147088846162473985560087809907048187419304450411380004633638492101402191414991201828995181195068119840045330056164869440857345923137659902419411500745338434183060162350492276893138402286830162493977705118959194128153824438756514907971167018250031637173003339263198999468511949326946535557841375700584454751326947847721648464608670623326504699615205795962817220823528396876405861436600541502304974267064225190441695662230607085001400796547958807351929372542172901129467477291259712068245101239098136084661522582185638905866251910320806448698810024113365177177082761746850381791204152399979344198531431724482743090655691570434492956526173623708310104274972275505751450958346162777277921001728840219974987172897178799585508646259412570370783879364368460930106789867074876646172717629963907321487044484773314335929552042895031773375883730409220390528896416110064376900315961857527216316749098218364353042479954732422056684233631117438435758701426533734910073357045854180765173011216084961881196432263173788221351906938610544111697857364856295522234332737885837417008750330104815082042294443746623360116675200850413261931222522965796074917909454486828944211633279072352394527314983628488841482018301351501115625419255234814850630685125314029827875148743606771804079304827210702423289637576604978335553390392306172384359836524833784867418913956337441629095732015437705794299218688008637582630579242995414569206447546681323391324312428086494961121169569665648460863569295885947430538999452253123452434308532634369694927702290770388628490315066431947834578737127309086368863561042851937171408798303535110121710955466665600196009251165249842744223679673538098354637665985307416983977043059577253433707391292143931311826679598957611758831246575125382823632681845675102012396874273410739915933647633324406238556286105636709180299483254489867668980843815462011638064711777730181199857667792663885659287566210315975625976128713449845236362578101942548814432175033536230956425424330567114774116956632247550849727640594991897321162133485842684088709605855819367181641083587261145861738006567016234116324013638366477441945995385447952639281806815756052960592751263763414943195715016011181809376580795926360356014870964484137201604745207247362393052053804321429115895432957079051548320814881657439080682246452977396909737707981479888159671401593003601020296330935675432226519131642561006966357348824467384534285388119391630771841409868647671397146487328976195818719940219225362284839507191238077718253192286903396854840571060530933985985742453778860801929398979685347161418880803370275473430311943887815268601044734045427411786484177188928370630042598210596414128788742163621127688446636508192562318476857561886676510907943895540176115823806282134616601319147844063338548910601567537055435675845732484770237665486003328909281655728649675022179381715579244452448624052425571267431869084222550625157981514586202892058414118255033849695400098569947957405099979124502827587152220475740123603764182528019769410476557521411800021633902372797818461359650622444913719715868203129957476164304490267362480655637600502305489667081982973166239945678314609285561043311652915584991398600908570864124692798084110778798870394512897013386358070498811436507574024302522184804815847220159982930982220763009687180023244160876934064395044738165713532555116457536594212966552523946626471109228846467848058286110519543481748119243457042751649385189540909835850920683262593401586148987760513368622279127282720732432017612397033300625041253380383474085570493508315069295376344353875747106583677022104556777892817004141900212978994839359471849998954027800582304820452164280709866457621419229883988578977477739804785751970346405425108302922169937604511137076898914044876245871972445643422091542221007554085195923096408079677231773805289195790926527111368171564041851503419782771525589076269198229852116457063199148240357103635469271048756501539630943685346753778811672511703022241430042731061519389606382929572117230856824279224676500445156559366121872974751790657941541202568616691166017402156559869824704030459865999282719328583534789213388500141586858413257930503819139371460249074985490545219160708130411531209855735979707678895644929267519498727924476842949048560590657798494224085658185685511841076365115782868567845959638738575735037080741918827821980994584709010037755532212777457773202693989690397453979067400767842008834080121045732718171620171914274069167198486713312086136207313178359096914778990206969088629158617855574840554467823777163423817075375088310931902436698232892244327582520316596847632856710846595663029381749957694632882857531646293764823623000076709793129740771442421259045037582849408664425124611798181845566363608284871160082492122539770467510601649569151582652846831056914304948018745637240265927039718172391640904262214459819507409526893900163458686066032809689894544591019372955285687114375848485584922845253126385145096767401381630672744022927015987844674564596424559011387842190438182952106505273239143475199404705301077245594815917149639170239152865643442469233668461453171154760853628855252441387081648156463059054226836677402743680554739076971086760749871824993482922705155410252136598806331060969011375175091670669908806021984123985724548124426080486550754395339254207598419672170819107572725855307369362926508576689030409668988252438623832112426843083532306643820034152335486188924594297760994033709705855649891270691801952210259911337444921669333543470643470631175675988047908444944515928624496187949533597389481010418557289937498829851725137298367513433255620652357163982979077816243085609628768694678164863914683800771592758155088018377459571150449722092592818043133782727126066550297475425409717919620907676788005456332163619332170735716337865263570189281916680461517187358395943968861772079314563285926577684964773871384782618691163663480200441951778957958075951587816264924079920035176241927969930510544557093798467273337547857069398202863462369852261966189500204661973040747113044315260873422632086336383634361861324199648625186608879967578098027741297156768964324288306377218391431290369354170191639789180127408968072959898249833589111372851948318465198193703350118230999945200401070539644239691386553071279839488535047220745351768309149237618620573853635674151251157639323019257065169668236755039752035506197444497733694752049104310426149210291581244831045168842892266100924789855973428723416366195550128262132777595409472015902101686527386766052088544956861665264750406240240454707906428821425807193659389649539949873882172184161406672362628835122216822612152500264648588291779052556015468927656503229004334956697926675665002330526819503677746695296766037078597188905918188737153763346338131802858313890826151268092603846475373630303287731963485546083163838866248889557059215629889007475560039009296566611909336857348660648985639541144613041868865477004946803423307559773933939986094990770834198740020755984361584536161363277844449584546198301132253018487708870317344180763255953981204092156075967294801797826228419104642397076429946085527466745869977167013483386620567861929249011093319786798390594922808209705241767019284136237011433246424100667544723964132000928633725981417878290390739389970266353930696583331741239538174731668131692177583663110029991433689072028907499488058569893166172391509099359200094788136521274736983215563554850105477540593636187058266714590073674776412752628466026025587720309506603724050735039718386532586051200466098294321536085047741905756465827726566422917762299085887436728650851699915580176295557186598124499569760549000690313067059463169514674232971413191711288569927776425965033616699860161760407575434880285990227864353697502269017109843668744114860997853510708746383446556137022976125599089638047326467537442213218642168629809301162289741913595395064341240152735449293784194160224318976643816906741337130084651961258954068435062932198157895530606738795259060246037003240466663891008979668403798225347736358800897350169730041958927901302441611672755942934920876750732014792235928860131403126685781986517308015412994766598390125753484006839790263251540604754177231650002635156348991827723911838282263684967692061457109530308195241440069213522136153599778271469539314678347986693570441355084273043135155758457840228898151183751554263904856482794657033626891160858303241471888561519491135734497413478534684598097084708547050834727038461802068305396050586902531598840226455865957737713431649602328426165954595194142195102266822516291887696890279519941413055683342390246604740811585631772356791395482348586785878693644695456922900437392381418877523023710218579940981951845824683329410748523649751940090903452199081803976007856175348829842021102261496681444314167142185598269829511980736730978183926847245478633975266490219443627009242385250885525119822130606701503970351922946260341083040414573029404546192325221806767562884729924329663467127158116855118505750414042210339147070047222775869862908230448096369950915415251320836012559186358327736572407358439965177814531583769812220558761306187634672615452448177177434273532933990942562125981547953203754772879706750301956162275312045778495605341174303024970736187085429538152848481795617435608673563043705450576967951870490851931359878455787702068601888688458804619423467430403642348100988416533852744808431170887711665467461461213442065762056885109441500558688480062699907367515570091413702446269676570882236361372681488875589045815423028276394868585883286427006282973519455625301697993217685304700725587031915372121411556555284847120469507157677907948706429975100513058916435159602215371237856821980305335469253293675236574001819978883063473091869064269519302683312213389685051559535409500143100512260459976203379768468078254589208292965202804799633705104223713613505144433468524248871647839038804637853692547529555949671538834540029908989905672464661764645115297024034736619296489031661055711302206743172233032070201062154178552469547636519767499802316927478467561836466937398012846609853294295059944842194524117259465427804742369480312341826549490904345030380424149791457013141327695842517778281471249130673443701296124435957673086894337229021183089218589101867954615754471306953703009730577975550636041897460690889793285829507078403696282759203004193224428292712063926368521430801582764188698513298137069172793291875159484590412432854646850051003019944804717089847791367962748423684435855007717792931645133317606672800067700681348317106540577783590179608695698462636686927106435821239431149936842697914082819728821446412914948375176266925922584453042398407509284468315621840005578474624002718826174761215792833850929268960758693780706466488955372997786791790658307718920447046229044958516907662233808294069942642109771763082256897823133150839403791944367575307943876596575766705886969742254261943097537774739894484585381442458097806375060731616765149064002993610344344109721387679243616505264656664936683211863273554798779920047943455214389430019011572447594346313851242044100295274222396229519111099863559505477161517710051206593174676182918273356995163668318707956237894993044425706877274525536634464386326487142998712959050625427099693052055081830842994455824431057001655954632123410127441044420338625705911632050972641404669693561331060296289040456355871632650025249606912895919645435227436958711439167915877464417236157508998341565431750111874281099960666457409806150235113517418470808899631248939998455757137382120142180986682202979171769253320457183578627491028032235854052857121342590086861210449511233226105684726226582231034859437748188868102396347476574914644856826613680521763427860565677457353355580393770981027683331148020208490869776593175635413010413991472596478583625294059376773543549847372406905689057185371216508334804335136377784670661940612242519596005024896306808721691851495297908348598200942735904496370877369007990693967385336687519736270206859059480276286875194011739759882584864936307577258758419988616343293436316102124892034571247227558871880755136788373371081197999196860712109069443320833087409215978364059625328547080445661723237157836800829496508768409878148472980390419265213050672413501990759270469095071670302701608953120857784306246825578944955821469692909241370247741298639046673758255437568322361353897066101056371838019620167865719789711352049555404633317583342973970249699952250999077505552267504694643414195000091566538104431276047137649540842916351549697568943929101125986413715336081149146064350450968561606445735338867788347219420788996728093432153218343104597529814892799730267343783731553264826449471587564785878866621472027490616490195648652287977189015563312873711854443691654744291168747959217555125915952115358502788299765412866838020680348325203458682681079436495368103023002450920323752090839711075418662687623789807444576598022999669619855691096024607857126518533264742276574926825093681034351052287998752133070859795312908486883259296379188625994953240904084847500388393099791412386484558036778374023545081656099378422594722125807327328498012250538337486110809539775027950515890022036809891619685215016705008352126204168631704467274173126195910280159588408987669458797573753244167215697307914451553361537854635526681515936638455272979081083610698412191256245819576070275501898819708573449952942530552475588263772205717367556100858560184743611440473887856939016253877695427012129891269017944566413053644855888944975667803342571867482979714921341547267183656319706287675010618827273209675879066417080390783220747727799059225918142594731034537699741379156201053724574213174436989402543556155697123206418628226150848137759131608622280673994388468798691017102520684762996140753413709919655188580214575521685075744264272005989620228904104209006659375013913181347772637558278657402051302182177450454140470393102610897869923505041779883618004926898573188570345801991689913549988884241769287371165060471478777349121803671662758483846951429464879687940342346151504564153094804892777317344140729112889239251120207487622040261796380910059853143763298881298839662384789314421919405283609462148376992504637354902658126639786413168319972691466567712644719922346317093706599442241597834411982155183268487822442662952454467152900747002509710354061127662325007424102071603599646286449198939698074578231141877886888555859441257238151691589932561166362595619528510819622792066954407326951044425312629208096801453991632627742616995402239964610668660712893435586271464014847560564003965660803304870044715660123238763942248503671403563419988493456246178101489123632672840918219999685675192126699714229133450618265253313523518808003578041850823913043078655140162702707731040942617486654883725887761782260385081108336933968729037190609711000565084067457611341013952205940500003182035236093997521791527056294014797652010039058188615912015526047299399977951151281574744189279293810546025172692553505395447617234945221391849643463058963265186454039629928083557989735753555559943510687253187094533049017972045637332012451941032375199257322553878846878151727573962236665797824942940049736561273957917226788481399756989542919862943803821114729109549518203731004830872036059386955498069561174535450288271570997932383593532676308976679669362969226496434762055041927613719071984428015842283962409880755177895957262230554992844185092946525630416820482017461285120671138019370280026969773283730838855160842914668151662494240574121413336759318304792502192809745702660349438737395224924400828717830220138982241600013864894438148121303079301100233952993741469797343811957767560138410828786337194332148844277382874556005608569870579195987000955197108913803726017658634304759056468146580950606443731826005471532423101229659473674869921083107747980923922740833062953945965877877235054634183924968886223760713359562248272473916409552311240199960992044019237779594002858916611683944429045959604648262858556614268217826764400659992647540481464934706170584134874440419752218968697636214281250050768701368186530203665869054000342295089250857664665060094174415585931504929331361032870133480348660052585796256109008145521628742861490389420775344322801281261412955015658653694460693551539911190362934396308771054291399354741002753050093826808099770554518932703679703225762163878561003354382344310054083666437341410405813830571010834595757072772482501867544020393391972636505787883909360165473134614715088974213111350682596733659389778734947053571859479546984952747163171505493164735207376364241962092686883756203463147593745800417880367015273901768022820115820365363475209341231965804870841996657141569972995461974359279762752071456324834716212444152347239858176807698423029895324316129942219157417536921038577214944154187508757848184114582647793356860717213763614560891913865868452362709659333071382626467066217994662535435702460023272905267919330526968893161539855540261101866119508222529992700673426200563308806110221936291785717450344528861727153141083876795995559157553071182596728539088106941480062766390456730728918408689586664077787563102943444300947740576893941266762529588540024983617406790867077073526899583661066725250851188139118259356919767323597750255215989913602413092913503211179655731730100658957324242268807576124039777988116770225694170744810722980714508912879655080803364907292044859576744718343460139994965464548753989512320324400513422347446569297279644406159417484090149444384899025063030515262735584646997036932530085654717334878449723330080514925605904957243556895129683588479840786345525834459290058206551935522468269775856817268055813731401872516111200561721092957725573557631401619937511000240230199689886747499045702170906845665157734546587105877836076710196213194646629918581283020252926213944470814321151460630305687289320564789184594931585112858097466659068983900654015012068405374791805347464424146597388383157462934029919233834611326476567469887260072129062250129504030328875054156987653850119638545969568300293548554951623318117925072370226643407961251540701793440332807000163415040413232062677124094178070196160704592950221194403384657108272708646780391092755435823479236249371259681356326958976219325572602379432358223669647971852830054715932730190050104346143050534486946453783464652923466894686882976317384290185952571012930319106800474359187258515966903751029580719066534921425952538171607355536266355949434156109101463716292245011564727123458980159357024904329270133118760662258631946293911880763362695163000430479018449075174680551634177362503604641529810674839186917970451532881862606433399169209344487705816158090918091889807267275362235288650153097790878130382496236064408873674050441096342664668898777044719007792848086446035778725532826057458232631103951287453226144732933164348487207650543840982738520658285238006105900300808221844018276018639700091846928856190733995092263914953651183962969576470032983700389079200921651770296223740297048491198197636667111446534727732816768411921551214948039913775789469719674780124255776565619208418402109209011717226976672691639220448003777121997715222349454980644299247530381217376607483015180104438740901798717142767460377504640923448093881863278320525303807514734687878063520862988511581324720475490933307342097684820952715651666707916604368425812960552860982291715699667047056711783328872974797228692296200542990429682741819216010362831231368281593586489712292308207799902008322212007291783183839333309902088224471813478020149974409903481803031231902126226283113216213389114748618111830148129692362714337730917683547318595876835223143070797988891738461133014535930974895012232084404511305388425817292908669970298910054809432961302352698262122223604109970048331163302555087257980245068454698110212180336015618391851705261839902618366896287850457071731434543864470496625033791276455003421602027531825906081441635917387845687650594882390271257375199030299086892375528049810050403103300461329863877405969302810412037047709848213587310038990429161420721232115466301379699807423852417057898542310708458641461102415120389516064676213136829761248200189682665023643802246753314155518536138963519943095661579814085388834616070834557365315492200362919261083463372455595081349766573064154110006545655611641600246380056139291945247196462062023319088545843296347557207951942090376310771344382732469026685958720869153686197052854357843521329591829644107160559664569578939959144353518908096894446748957032345715205671836848077456786036187156392288781686009486973439945380513042849092103565776375033052328182238214915550103713895439257906830845894557422648318297754816025033158348846730394807298976902297837943428915430895527264759669214925875166626928979531872195979565974633702040032275078709004007262994806527558457645297042422125120860413462798348796686902512070156565898715522558832146574881569896423056118173705204275288473594618580069175341076884863478064716105404274712550205934483211835415558673261683034925732353530267383724622892276999811880146744315464805632897714606548431555616620877360190780540796005766135131880612910684616099193800713525346167495367742879074996310486981685424535408329708389513843463109365574968631413245078499316354118761806676902417808816182214855661345840547256024417551987103790563342088596231881246563741442301065678674655532259032321771628180019171188701641700698053126210775830782614651924481084668394666875245226529091717097105531167883163243141657449382224003829540398002667703276146657988857539517366035931457440984384939177925806942490899394563663932222135049873136630297835302791040764785637559929633862773217811157828415991448426415875088964051075164370834869553004254658383407071878064094095183408542213062849409675705095543380084195761837639817872680980094251218468997310667473067751615580525614857588857946563727912024091607233726212537099683592654830782560566518534035028235121260221738275588640495700734061646900464948071911777356171466984647925896070574687907386946962996537378431284511497991547820034507739349690241279910883850091522104972861378966535946051924754976871632476076714767393512800507208535221324815051409684671776067976745873718833287889203174172902845698161038512601599678786124751042978920640778281000464380994476273890162656490881467393250164210327051762734702515070876132808796243167225062321792719893991206155595143355579184893377652995198875121819336730921579859514551981018733596467133582169210880557463470744960045943385473722577527779843217553284846658588265363391567882650497181094343778230226915700470301476833099746635471071084343751717640287249835397352319246885927398950587544338230211313446369894402566483365523884151944197687936594083830076735459498337433835417355370255933078391837385283694228776537684154786862649700131757607550221412962702707684419896700007094447737409045607887877948222666815494140739438445116525497793183522501358153868702278049894093238919176365357167331806793404500631881629822497669126923453798321159826881653395198158465027020289145438432230813359963208113497883454575940756192560344610369649699826753272133366478593625694322644470251230510097554904501683119298967282537963162678721247252169994617207696149056989478286371110721264643929728559143202380016532005822185037178042713431522986889294559229283926192101270815286039337289225417920679952703459580975198187646916470288211418006896880850327013171547757532801744228829008487096096770815371192109174981407486155633294786170778045266718766914345869520073141474600676175329603883988117662051731606037736672339437293053252646125943732952438222551057184983472303712681166779911977287332659889912400987513718654823978065443287704782569658469269624392679859221829505815892335592583214364271198638339766362225122285035425011077406686010778586911385152520025455135949519378691459110525066767617048134841114618400357685293195068992739264952238352141818376902486348818040749773349137178536700895746354412460771488056392597267718137757331293644277494808731453491663388180590513609960288713487386783594750572348830393868466696989248015687077611066190480578283192430674657164673722817454993499629201673748551710509171751623866168261359890408902160764435653308094841051945886967844459085464095600154029494591221820542139863533513195968326165883981813379345143625808285252021639745707883355891320341823516873804650125958049930409607957067032654630157466907131257603386963753868740690729538910870229404065436042384030910753668778403767477339820973828630150732848526703023578962746308948414223469016813346229338676309930173127602528331385946359237452068519528908207818878769330775568493151779496289479530349967172857807087377123054397700638562634664956564573155306129055686739109809262752171616834153144066581330167143311783828798425612815890490201124003323245153734711379651350849248138513603061252611167009905043953903851407711781529684878998333257051145587496269590682807498826634879827949951373256745554712989042669690368450738696577834893132208902771575218153289904889760130274080357675623719304649386000943885679815304078891554665856285956981884361092042654216574872757282842423631031610238792188389835623239164710035769552357425029083684502632388915632756451150921073050630374855342456555033562460744582407788781012354281644433460460307777155492062171903773646659282026716807775437468207973408773620914557141599226379214163127452039854589185009385748395920303205999785901131156616206733813316607183131367765524838684637224110567464426660328841288023776421072389725590757511797210203720188675376089653418110404811032535888893774811066037463577957883482583123166909937604304328887736827450037096352218414927828738702691438637814567815170109665848112616975950687229225739521277680827922925425709039233947363013329952547955315255561291158324492493349523557221984820322828914063388590491382570558788720559017248099509622421163225480917303196754792420750892028657827352976674810349851926131379848567755447302721604702327505815571747962865839126718060555874418050444742145427833262138028458163411345568514580988070310236965503346490031461060334881767200986751659714977761666194964187547793669913753508422074681646554390286324802180201054680808387463692459581814554598025158948274252078474490705697650188006473556680108413483257353361436628163622847006728429200204442282337535271901169190227808737009909560773381365448814963035103464144125689258743989253971858427247208459329515666432076923616056810325852434718752818170294802859255858012368065503454946609641371628322729296570527030147377625787559088628141674239111771999556150185495098817743605979972855826870036287306938594173722481173356506598892018160980855018617456022428584036129909767756889998089918002306138457005933086197443589863517398095600056903580596079839412915884048411750866945865694813045537070456515942109925306540045535526206202426847808013034931770321604550191037105983472169298297282443276081597314339479374500027713065928503930764264666362346342028089049395847016651586860270994071893134793712454036612092659902850377635827785699362357997726380052514530707109366427315756506152769205130187189561318079855697714741331822236600045451182158785712091975934918441345722155796399650378757321258796773348965765622232158048867432788852492018982034491857086621081435485770275281170915013931686991312424451487197447610319104852465800467664315540059598264894171856026301118496246796408986718034212630819535302683013000645149045696892384859999709710193239842663823661678716683207780365996179884973274795891455110112540759265720590188454961928891566628322427664638307818045750218977951475116243143745430535687097007567218400835790498241295843030043985531849659411206172136816775551296392999227209502765328392747136093021540496756073270048192214178559978424926784367078769233939328866508857970979669907102894968051191433807043656234896197781206788690523641031794917754048286719726669589467870144718037470277464418494817102978090137416444865890639115912528291581258554303749216290473542054514048093767459952112878305739066436070917276415709962522859651667106700899962834754465667713716351175420923894139349640098447401095562329164903399315886954718811274750291974074225373306568890731916899366864636974923737886805076990276952818818276703172922674925808727016427606308717159296333177447934871859711628658977081000726084982311376448014693251283783449460702984067303474286795474662214517609735477957271836337011424097404659878615225299675588017939579333772110370212139983505091447060247982263384542274601253915248187530537168328977546058171295035309409295831497697132631029697683575991338670638154505696522924815785310403967225414869919764828470066550115517345548192488948828943889712956437759369961038383774220815164855588571048517883522103196912511191174045376143520748881444399431965293103858904517016131930279811602187828958422788162785225950627886727776550333584014899246470012631655585549021279810152870870520900120004123630179216766656606892532237252112221770044556967736245034639824774779210001586140216606772066969510207871459377013838496843564652699708166398609178798906642699569659864383949004951431673563724381042608147213200649763260170299578704525675101164133516861536760048789208355233828951908386647186945104060170082344696425340196283106951692951523348925087095744477743740718485343998101129336798844521430821362096472420542450249800393854999301514650562791655564965923145417350571208078405168937165800030701378426142235598773068930979124649506249625873493590926906599894513150575063260195872749608739077874122394556903672565099454855892933160300803221746817053145226294812456735671420681978928868974425048416148945356484138485462537127197364878218257085221335678811786562722644024216732831572062066152411754849359999970350492410272924000322503522784013690300327810236675086749524878816903386462477354548265350915303506922961901134276763846214687566285179413917370907256204062377260927427026739660965555849259657940476014111611864742345004896336455982582839538202831785687453073000201088972938193958481148508919318078102043680468038868248644047728171717183331547660288315633967892303399234561735036650140307853717282439345174171409738261365729479167162709872307183027009771507016980854392840546018423543080540405632606448293567665387559591970857879222372699839803837532230711490442309397220209944458770952261343566412481423287350616848789231838223932992188292090544235589015973700626459613518818452383179285562137766659228618620379750773222985127924562292625269410514478208299363539315964176432792398073250864267539536135787960211469495676013534561163615597186256259348876092223414814617985988097360219798399605115510472394667699609441954413412716631781923016110203605802579049367783501545968886170953214953223465095014569957471135991286108471612581143409114867817184145628753205813038256058344064824673358376622037168831279211139120016683735587541668559379388975301912018850213942701829565312040018574811473665388577833131501399162668632278908699491214104814671483345270935590550987578845803548461895913677594175758745389386681447479457093211677416536382896158430505832716775145304174568254443025330257131797127449428225141446599903541845674923764788944127887042466759343267231230335589520634421456216187199343029170604755356797208911450438074420417853582712867917672388453240651072521779315777589617388744517424896297105383791154669810658777735413308124218062074346506260019144648722861663770897065338230665913099671367420432085483532657972219082481687606882767095859706086848769438813169926757172780787757854561198119762887037116481219006727024855158249472283789956184311196130292233273531021135735098197444114017244556891488902907627264299776757892450607258829815276290502301544924381974993528906440880414353285088224413248780651040878126411732021958141287844213717821091940972108567464481260280072212280001452842962022717520889726307819910445984248869136321237051432294947461391142136644274739078752168191014228459856227716584432713316615286543856309433407287979532656500942770525828299165670940133066115699632016136962336790722708907702994926991764890927888658825243084815863337305306747332781336985889950112980205144550392646272608786890936434806851685605885745037381653393111570661266708290368360133139383540530771959729766566870478837228854280617274138072919367373191271478233370651193211426704126115458410619895810358950470265590984823470004346720261085815848263663425404196072553706121443328316924167128347865825906180076521044204279460404740522005136835181403033932704809132822424999079390907886382055548613971666017039051553783687601711776015757813888706952533770771819175490157427758805803108802939926132752985227385411772275001241064833235781410223825367041177105119416706693757017565768457662038153787347703269420502780917304321864429448998938855500259130074436440035883446712706109973646857789516037590526732781889799398501427569704981063319220574261516714725581196111290409123408374902320794563643362312124972124470731405178943539368271196872111411723177157494719688172906677282160811290888085663366985917432164225293663495611418821507777036197144636959000133487979050520084941360184987717454692512864364511866495892985161915394723314567213525174722086150654889601911083985277244294848325783005937007384402690805796482502399595477768984929536513343015469117060875620177487065013017423400222582873851172011189589319902062240113588835364026624039224045377701415673055430371766962271712057814012721797479433707361339913353071697325752357154921331238003683601970691216503470124441506659978665985939321831735388576908454173307632389005457680416433020059588274092060577756476781641423093634940672532526526188958047799067038453720745757208640367484059969101974852119574754162230040237461557788158708386875636932144875852338065171826279663428987139457081794409448672529375998910456428296949010790901603272951165075764652418262360617202791618245390600229982754740898185479897466924993617278404653715670135132251034430311656616684135608359085224460348899311343527747189021294073097850642699347195592533446600748037486674147753897292509928313685377549603046003827149639032404289538975666970180599874479772876989741519709283146324830870400804282926391048672941868015338969533141295534345280426732563793356786758224695891603836978562552255107701316207496711383804876133235626354982154042919615605045388531393889150781587833757693512663432869592573241521657993933644449083846992862515888105509174220566012241462068385606963564267577946469328992482174405955279238466239324273220761051331353172038435190830606721735375451297431501055052625089717960548401456783608500466794041381251212029264200929956689953193355382602228423024940586279811769361958396507790057637080793954081023298050117150830651989951201101327432389224410404310621957531115783333810719361115533464427488752227348274020484517504610664080368908585855177811778649302099547010931083938484980354232176171104563267054123443288591624729115137414859333182087494934166462368043361047201899033751822374664094593449498329942991369593983089809703286420308600480660927127893548897114497427609323823887810037433702570668704778935813872729950733278964516577397460116895108658344136652525563972686990713307273410561384246488226630630523205200537276903318492455792566940669286652907802414917683760778035336986797937062019705758267933227491205700672926008843832530241217124832582819358022835528101997167778433277070221303649454880111204875417170685935337731173499962650937850332786989279858498000882744935161325634307687127269472720572885480208711227468546285858348205350022805545676443677958307985572093161150245697354600927150961802136698628426338737352662493581918539442473929186660950195408804123269527909467927445675234414950545909841960518578542210245496354468653059481423505179363173824251827472249806020220035643291281530584053048261389692002818419513614304872747229041263646203449793578195491714468316567862078551968252398907642374997334388780636949178235585393961587829231992688285803350181135284682216474817102224409937430801239258663428020216545002816444163653094946474165645868270265650438223081668694013568990179689740307359527608652144558998170812219068993720137313052931221904683027080302803682204596902883395014838592572548597085448431108885314193510759881535949676243917684871874150782410628579276483125467717626556374472756545286994181796224458208761018325641420820006700540448034346011756934330057680166521021776825148888337908205256073106573753260441593961957616601684762552193330274712743187246962884033160018182567352879367130581267882458534969269639939475982683274322739391601710867918828785469573158243853515530768491316880024558185228274668852885055168419051434081193212940322584634145540545852310667192707138767391525676844013721332671815388774409054129727531055018841933877673324212964023973185008243239439457837214530329256041026770013296423367502465769330534504399744172873237833925092039166095050868085469917656536191941919639419056971636566106897192611540513900723806861977353253637716443716803711630599031698968791394630089831561346090509129004309914163164473686562748741680326180475211722427640728257811678601584676407531452839311114727995180434614344433133234363670906189027136204174831790472841294512823138556112695746227272361577430764727116874655540067286672204335268352904684291264758476238953100500730298788817416313879832124093938189354926931112034801854504192104962492705825323766964046125252087041964305903676624844755762576706231609085490282467114190735747491416601449995348368987596434810218903608171662549352253631020150473259895438204531422097562479849572905924855649723116875958521679945491646520666465030043303927088384640052682056610425883937085184414139356217000661318549712233329253261185842634154100663388772438920924654245717922662226257322823633699638543926064345848086444201026596769634488021897501240108618310763578861864245927428549841751459086921414667412953509646425263576220094724280663572637148887164348013115867352994215233947100789971856040883326447412691079729555030618076671082192793673137968694994688625214256718393200317867420684642156201819185997418937260607204896397718275923372163211677434903306964284970969184305521245375153719650417533613155234842459986969986037617254185916568088164644309629125803608574916849995412666053633906131402596269626093885490698298341370533235896770861878294561412376415925708482688430926939443870130744018124586593413270726011953613746823387747679993205259220295511633030834701706800203366854896272224880918436557580901816486729268936122382730614911601507115780449885424031756106473080837836264784456509082936871270076582615645903692461039589593359752964218017080646177395753192855094834486264354334901410234248210916576346288968545303007554953807869091100201186180577144093875321686104105794337404415772143662267900730619046847530563488416163999358489714395804316639872234826311414663277947110764434607896937115613073299791262750908323665987964180647781267516888824524250638921070033582632927669010581755939376764545469967441352046875023706344910961634784490873538822597442686664912938988625287128108509554637344026930926247411204000204768367900993400261771003287338345296698542168950688852509783968809526360642155214981997961676827433580087042431704246745052253724097433884279593513624779743790501318372381092071947068181457612215194812394505278120618786157106885711498732045458611225311357819286408461831353468362943717730320752895608176715295105257497683935863052018023360896619311919442043352828143040800614355200035439125341289791137171510197059963292399949128962598219494015859916079429762216750769443518521970781903268397670012492823865154524402552239320059793040782088207048850975529367736070138904434209691053628409019177531666345379416623361974240122914165721606083719015022806932706996187016005680282950330170569499563848839511630618734511372438072532385617224082221834590973521728694895544503829952219923425836588972452021530252400242040610082240928680323906717335183290843203708164758869532696913826247561610035206335345195435717309783536573075754392622484545205754843443859918362147376562183128455368553530872642232672541551531934684710962797111389409716851298185082242893023247301884733996464332824065107534131313550878525304096785566469193302351022160732820216434297304061985027231472667639217540874431556411894164128497020757109946119327200436178118880688412237929002154212921020055140250468322725998382260836688421921001015535573080309155313783929785856257529757270170673524377844137214014848585219566980307340144573262235719088064151464606231169223489878949394141287579766638743073757587817517374613867960954200566699514332766982909991599147598356897197629299195518139296548855979914974436221760278786039798135635795624560143856914151276527634223269227587637275142576992110411886102614382351226848123884281215636296904012598129792262761954140866075352992296599362073089783725767889127890002634784375841835892341981772761816072435750053731941993757371171810858337060082189102834529437822518421326216960015523328846025694250044727014775627836354868812339393889666690964213756711142533243274983637250434564035068474025295131905794767197671904136829841225450281986545768517797830846101540436795963655470677588435655739397996287054798621227694626792004783476631669874776928284931193316625115904412634796489960322759131717271995468780961589955385886664784374383139641921701109825420482721495473115493100653511297569398441945300687822551196550973263615029877277399975421657128858050145074015985467673260119197164462973473744422698677315699830659003905768550561696872319852677763871045578226225014957741619824961975922260423615568957982906352890843490814768633940131517608566341761696650628506716579449463056060789384405465982141658622023206651894111530300439130740250137061334885886273656792575779255153327353122913293345384235403251201823490238061859932982644175231087239678426060674899076007694023548356397710509354461116227661352272598779886018154106128906291636707866571568201777474462747346169888788776391628129415147746399309335429084631137405268893914020421076756564186837743527601101194262564749374476885363404205827128501388176947674352495801359660881148098939510787753143026259472143466462935511729433756254131540549027142172887150960704421927571517703210358039761928364985695376408065750807706186158816571485650705790144926374845107294624751756058776961490446838365305720796973547485228518736854172298838082869799856384597681086369412347737580091779044871572752412310239460443351659212231332412183122950480060523766372201053490058290156023892449243908104545030800182578989857926412038348060611618051030131141227409194069371015270287218436628095504623789505589036659505888262496837477435431620535599776518632291170040309446277044134422451478339925925267325031231858598785785359872422434310545818150048186768274407190201959674371737207811628273522532637290632965941132424466888671948455767660053356321036755809214995872879139099395837921129367776018863592448277014338594171951930874293459518280892638571461097107943591497987001199382382106572562395771442490440910169488010913646047948418063477715342403966033491656454517377888063800369981205255876798749406647119663381560593004097472632331116786552437056065404695324643739811040167134949537278551907142452137241789792636333831531802105951887504317204693948121955036537732960590707663583768538701618613660630239629398382252744935235376514803032756286977345274569444252702325128013587977512637531144156448967967237487965082713193990462327816063448045918465797846404562760796790373384729512889058151189370307120487783657814232154933167479398571768157106630854258708944426666205339218599040320576349783701785140090065724045808318294138999853126747754821636123993890502358923210041247374660606645812409795247576652287140203819905899234376427587364364698658609238933974858262179203957224229308199846904745324148023719279502141775361592621452251699146479036010669859960684543759533122450954047261341878300877633665690157618114861788615147531788313806098051385921193251371973473030946992805636957774125280207605523599338297694244636914918472026282226048880587421933889956502773995035714950892244264335171588049984526494741504278287108005646003734336481618908258288179636115509963934774174732081308155164531080270101817749430628849204028545846611783315700810060275400480254480395549835771035589776339833167390856343993249468999820351484979914061587408705093137354122621304536747058657658036072479578795470575973621423215618112405839532619047657417820248528875479687892456813648610423796332248483635934856677596959916976516266877770763001100378740442284930869345780416847910024654783722339754366401149811223862596496451238286400622634553093379923022794610904854062769436831753906615364505179842256374321703041063601421342337371767983339799539205483651300014862647667502187495321110692591748738798681876140657931423359317844552113763388951986145412788641499993181414730745189622081402567074734222749586157469504710579811429766496856043230676025486438786465791964926571903011273510842631831171833354796780518592135762340152747138224582619026479803739039090714226449146474558119116141596978101268534051641502484748773349975940877003227002626128280484382294365740822337117504342185075130842140603512970575241590870047705861396646154120735020723668494863992154579605255624260416610519933309624208385343641448236085800204338468034312605998572608219058698152491292719449400326914241899754944031108943833104900162338784641130375116246565452269357927443270106489040628071802509810864194979249669113579115611810270121460901120385695097857767125638826401810989608557790802032909572571704020251891965806109435227496770188885405558127784990836388471802738578490581851286359749947637679036260211832094274521113112322993462103847539146300197756930823174121582727895549443989410495803015527755665350928297740211666876435777295842186492149349415260081607225088185788606990217137772578549479072760079413126152815587265738803589299988049819143285462153934495258709054769747358986855192414920648458303473137313091618694005237969956047719707548976927157151488726247438966790205921169603571104891784516569435249093420123853390160187065116481440817683731765874871311579658115466159723677350202820599567619401053035562030490727201750627108541294399896727893348412384570333108969866932758796695839011667913689803821099512822246558616338167333798711822653566466557777050576781707657902218844245305580509906572402302660636813254127941243003440378504993590676871435191140042650519291318861291234702189615460052337447184535396487941270356596297448129324139766670766655375504523791792341923291974342536507966215352647280750444347723879048759882915863118059606728963105788509185099989553861667801429040886055680056941525661684314842892343624893709324037488427022485365425895739032399500434634052576063113205501884287786870440128125367644035566013405126540811303749742157077472471209546301327272767839480740842862996616682184960521918627901374967651711299017003622117771614605231717203872025328904530218263871508016328936614471280498206630619850831224757262814773558118009725008716039954412335620539402412139788537931646366317124346684816347716160375812643882942920785524225361854492117556800962741854992974767681367168837077927078257395323913115982672173839583658419395874308747183119182085815788950175764404122569518599371305480341328239251472460208168933169750850020974370465897712108192275277996795412348662950554789482290248423910755842147554971497004206947550324089069971721544300486280786582524085412383165103666234535316628540908282737025015176150595001980981532785016626908334459552371337381890282406830256427090558164023531064429423811776283834534436830309664019872014066542588213387851264490802000362191338763574381935888710177036644746807330336589473739961755506894329206606065733960231377730815855055666949851996134610132253351861475035511009189667027281398285913687356829247950692478148622576167310581379507084964722171715408506550650120193863303229343305090652705170886297847287160226630784512930605440971261432047935810857981818529330792527677233028791532960374176151922695514908582438353004214547940340792614685701898260035487621871900076835646830491634446024867903097719332967441781076097826128177583544900330065870303613407730454026918208343590830383486637832622894466917758428130596468540299824649723550674775406016335483324010297051071966508099019031857977886920270341409358056846975321442644308459200232198010532444773996662299734621499393294782363393401856771131203616525825511039194614164767224289283665896499001109142347532714191712751564249345414976700850038506222672946097125166024363177222007938491191648190874340935817701340668311398021040496587961593213623409607888582816772953594350622044525552578336946705014933006913354390632146109499625566096733095980461999276904676370527511318551032486718447143327059614480276941102838620117800958132633423957945620263199895868275587902278841659902225039074660914416073975684198131084238737969640155548116363371714017028789921409619327217514571771363616971009215536962043251113059907111490461399025742732345770862729580984355829774438214854551178801301241147979068663741917803137463350426528323245150401639057084443959213614157972325390393793749792550773809778780908756391050856627581075896671880849071480476715856745156728560314767264015677887664212936661245540081823072969434520957766962682067778046426908784102490213840140242317950871513978633318647473029155669791501935009190351881240758847842171599151895768954445629614721545042168662348122137294143625455828832792527160699403626855963483543903650178426011751654658235306271846301788683637174572378038339319771502998150054535598019376975856313061443922592628875324915733088717278480625375536606286653189198236107687710135005621372203161238709043060450901579430359115618343496390094143375701645334151631219788973768695602190071200787721331589653927003179675254078419052231258994484255593901160679362223468965262236411097489296945957645126727033079475056986547442869410875767415077439530756765662744442149183501648855281819833251022242437311909271456854641446832477835874037261065088123904117808741132876432862589179847374372825471275235766770104789553343304205441802162922747917274485306007942272303067595109125676724246063369048701008343134728100101132525339991662116570726210130100019148193377450522390970248909678992376513966392259285302340921648128544462599452648910982092064318454085341669255425401983976330458076369350731615807792524421328997321479401304223045099621728264747553735856449351127187715187605950012274048212366752421755788214277579637041285993965047827792119889070755374321168957403535824206097112301149768225305132958053063727666663084512216348759855536656140558889273597677817040747417375565047216142852205216422010205422377734906348029674026457014096438728850008220074646621014605444309085688688361450985876452188101434697428303637969535451061831867443777286338429390368253627617838953418932157889656468154400216335460263093056076211502633951775729119649821268860877009776394101172470807803379155529488810059394787450170816350200190457647998464359476317412112278885353781879470879717684900309698266894801938644569561930267390645624144737181263670224124219034852439652049268255821366977477056135727693611540485881275869604311353968078033529437391099065598611027714155770080745860103915091474844724586376983942788042462781988130378784010423262642506706046869317443702350297387931056074647783169614026943053876146535205609597503238319091932081453093936506351639190540380785715565512719589356984987173804438345057676155062161059521359424736143725404681826246648513775548901036850237019050808464038704804137457018568389295745363250712352012169970473167824483111284414513980253266207241072642099589093131903525490242445022254843624007417297146656278787387208638721310745957908870242275426171447594336197694863871722720021750089797520881201741845778335533704637945589354209894669926867446044864532912381689957925069097485651740258521941328281667138210960486550678335706238171223093818610351138478307779801927800004535953383312472618022050636817743999010028471074659119392411191525786821820726732908946255465343088899644667189362056445052959700803132211640103459815258489855523012769560845373283295348061462978917557103530223377924093777468697260796278497818581896671632133186395358435606522613913628676881010465601811001330515251681228420774764833069830923099576436953882894404306055252262290317747027816927061097753537259919754203879606122456875707436345220146816217942630756813356889042968970876296579244786319468603808809080188925369062747852932157594777452705608163681298672824159809429987873003617542954651631508259740595960060226024285362354640050556615427483199562849695106307623017991862203041523426438767504017087982067624208007343033112873939486585133723909808532802399259460538872551087246186082968238771784680586945205219752881030907334959596669928972890265818227301655885752480994545494486610772495323037263094463279719526813976014818255445699010276695121397868550917416475650687056150623189597854643060769266116753399464593980003262394654320535099061686068239403834272347831572830343158378045465263236704717126267031662551870012203499677557491416961417225690691885450023820093694213108553223869660399464765010668934924162239932771574951174750011220612625132001774266529434326596888318016113195097799456808930799884196784055400619097879105928628941804802030858349758123339376823595238160771322366450392216188707561610432098237173908828196429054931310888097811840924720796516586138669524037026333727543454904865330151887050406091081011964629398851895519688244309992013456439860320039643229184514374443850448020260815700771443729410110770926544576085028679528375645370226809727102661773348220122027055163231466050047922546342666823747859106313785479891288316775163494924247921851281334251724438610495213925185132962865428545831615293202169957449448009291521730675330332351498033169982644742959681998293799701171501416697797722688156419263592480040465536883845011758826970308477461987085399250023746996206005910262596630623728713071734720075947066336987572159753712411777602550966883999539790583083895865438157434714421955334239580585236131006369040478009682065214001787266813429221411823333935598303943125837524624737442576004460589558281460059250580207018417090237568377895252917804085802887304666703706284630882816136847555478330561449029272697375753707348790960001324607148961183468335539247841416122302035591937606541559851581210646175874735574738746844101150647904824490385227026352246536458118182882004920574810073819041480731825493682517866876902727773485491126551782744140370139608321918296452571743545835149706787384934168441905049527329168947867886928544323673204135400261380582603612314420138489684701432822119130988066911986708261515839706604328203195110612865450921875249975210438661862128519697481156901785775410596286425604110572267473050281285644064565571157921568594824941776437797905145778411491202013519778959096612916394028329931837568250874996224415224483710024175934573397951483414061846988257601459794932254437093980314411595377911357037039587836358146664123798668449679780444092546614825461887523942627972068577142935339949222255052462219677838169789065268018576539269005719919271269098277938020766799274478338950253309182882266945142666707024446593331213203511484756740907263073515693837761544655962450247813389704867862314585372034463861784666782530084325564993236071288366125746350990563145077882457480043053681480154842335800519220511420946030301021196662432190292032766292731754612238327243580043896365047189306506930613450389696033574077852964542770476124792322755806050099082646885655736355308885717272907567139685755861798876730275997304694134588564588034144219406808549997569936243020646139202363319159722832607838018902390139719819001127110574059713981034616698055929545485054307014532784607428892347003334626770704801306629918027920249359758894429282187058568944772156292932095893530652994840813894483994734795783024011491009098372608115941407958122241293271649464574276250341427460785575184353645270382458964957453414884614411559638221952033351560328548254005570255878537382128378738740836570461571178869461345436393343651017950533199880710582786439326984278359446676403147896991196311425250289929869377382537770702566496767737020052036475692012076001301853366493015414798741310511486580307310004440000720785882617829749037287366163181922456591203529476699135445521560518481828530295197687516706138622365569986602575919328141583017965214556705730750659542985667825899249940128987270945280393014440843007420428970516385316253294905533107323752399751217178286168919281903191133947615374797924586868640354246853723934362761059192332784429924625409039523035842094632915425717867142082955462110916061717306380973289310267405554645563813808093657460738853369718095154084074036603211355080033948674862494268327331138992547959588077265786688931982029769515693015083340818043683398587460169842789700172347911431866905503037383851899346804879686424539333156783336978748757944362514343022548407462948392185604672220530760621935971396899649100764915693811473558140190511662549362884594578739123668274229859504088218556925771444170990555370562446495489693358955930804449772877521406439635191233642621436482114400458838771028641989237828675924305816565246701767355044038184544215015161660894069514316192318359873455807465461784259738693997327785524826073150179031331480633342432115737229959802801590623058215444296495127091814370620934479517276872872908413036550293876788026821111058826249654909198345251795272632680826025414942824143561875334174438700182678987133269012040026032880837259010778459223577827596025698843071430116067224686933030077558723950611586637846041301187325062095267092986963261609399976444272290184228190781173417405006055766886687366320564215968337041768370973868515736177256255724258116497812359521738868455448775664610591192162620594210685406443042682856867069874962616291197784314099295835318462089583147289682466769007147984348794961937803255988251007371817414840964665562861910348596636701817464260343979278622044967319480924477263765160099863053820955364941538589746359388242660398168667949160965457588473993357830018768068886508671114243371773961889901722582190493110967795886069199070886043181823058699486198489566315148636631822836184219121788210987034586044212800627779100481180403341988999360209455602676591141298526695625712904596823072099483805251312279605232068064244601275396433234562893915141107518525974080931956866003051715938959422843574697730601855754806024753464919571845092469306644002051497862242126642186321441223682020353112550175005124173341558724135540756730881575990639348863450423735969741654671489408270770246787585368310248217062271904827557810763562464939959898828704805738854090236118643859967086624069710498216044326030409695598066611376779076445944135032061895584849521320585707554735071046027271036338703003292464384672459100622547440339857937034703421736558377571655933594006289640281862492129533869000361669035471736364647699057853855617229080126194472795930585255569440851795725895936120309185166098660533129640945270828762953300587794533512817387399803623497864097750035340307235593379009120205909103388888903505292484784737611380082608271894154468325729436891400546660310725773140252740681869759423026397812308568445907600600454255701430303508886020569821348075592525004430835324161029565021664875513177064068257943557602239739142218163800472237683619706165128902599112064617216622140447932023209802400626365040227130505251076351756421736629650162305237429617940227258505417489391456684875680858913452248863640296846589339422537312450062488204682298455281090951301920947704339725845957839766725709267754307308783500296017002112625976631659607048993075732584751357437535663288005449716720317357215240015935379826969598733703894151308339545593977514331260269858901729969821001348561867098812945366864599616903171139622843057912578056195681018938339543786984460371355379177827767518607684881806305954879474453662351343665605681411390319964376829464136660151940656039224892915332843982783083416629027271123432309921885237093561183017822171766994601349264061425826827417048011445727275427079265139514171183461282175535958222419381828461386837069469397247067066756873640456349138654265254983293014356151374155989064497089927219278838883691583596357342130408452239018651952175330816738192147655987408856945487021399185878809527720687516696559905765152840797943320260183672091216080190309093086977735057100391312197847408033452559811443833952169121839610053912211891176063994981816933085905614944026707316504170189866656968497798562359035879817595425472271683712325022188911827053334116217422104679651210474603593734832138932919016279208301890437934033552533367992116556162322809406028323599370373741826293071747465261846568737577715986191994603599109280131017853291120577356269920537866576927596064075234864779723062337412230094825635611851727690503595763073550737056114499108316535037301018421159751717528752542238881601278320949580267237058734281030426158759339012049019508817020345306353735266018394589834408625642504162096279168439058796151759636130120732135371255853463427102908664243847031181918587803601330719722983942604942253664885521413121501918462068808941722441527444250718104731826021728450650893712262276200410879044634554285176972609255151637988288198485946816053939757004985833009859285506692294623644780181596126529573433118882025412234571213323905588989595745564585728355116183754840519852050221375580938366526325429172335953962382847268802288274564465546729325946370885961705004906633499865973564407931387060071979791342431114222867243863342080903652355986446732706882246494845961290627870364582579653179644683255525004579803064617313511443809165875284288462963015764190162273684560321032897905520239540982890195420274021364253675601669864694870637726190594339468172753278079316478671676708206921362400883069393081855298064393627122751112581047667429086471034848040787854089815105293218205971594459084870763965784665102175938074580405490422668853200440687185252001096636359120417520546117481956922947882029276607533061555308872721706617427322293359317425740105042552923100021649307247555046920091233194388921035778189823681022353278450964337699010754042101418953817732780012059304186121377837475637122346450679332686367027286013714944655763801561760368355793687973929708315126328130915356145649816042457140503101280273598374157432560389913414630040298517347987258587438359915110525216580822980456358062114388216749199307823086660256210483137015938651645831035911534912205385757975733152543631964129233474605901325751454871516041425027218909538374427722705138277033515739949553483748296703142956158749184815442969710799484957231968959792062396179796164300673145752419195607934769637857350087083923845999072070104642270967195595340750707224547240622113788168782380621067339824968275952975807145159886271608849896800170185845679095253893200897051812547734688914167618690168362992663569464127901457001177467058658070814886053101802045901200908461624614051462556523856777498856019514834080794467991035784290090604669235562466356422384099846451202639057491867995663758443109287959275075208593513597489874206190001055518259463039679618968183304649973707557115512536909636938199204866102141213230652920481728073786295660260449644313008867639256832324426995386872046536560418217404429646204953900597894457184473827237235157359099416774017727858094710972841922119243824913631567371109532364078740967673034383686631151437430718870311066403061338659678068968922971326781988756451159137810665266221128707248004671213651578909608871267784617821203364213502528886712563052937686925144281270508330619682883370900667740963851829730642510147272176478284465748049813250076386512003259173373883502013519178659246173776501521913393331442103491655658813632915177383310820148303537938750936015684735060292317362872172824463181249044405123335291371088321691450771294011912125472427147724127294319566417559243770028011180768700327566035662109216619034147154882122016299035351837190140886674557705796887968071030306689020259783440177116115933152445914445692335954858978283415069639354007797170127080691066790733771608893952424839242860049887461017819829919270396101128339248840944306728042458736419465568462018991497441092472868108656628209299292747962968978038677488716431198177944238884590116246018727237245821425284148167645066445848463595444730808765006026049808309421056282859062848282874522876814773387620679126142041438177371366030008929708011635470123609827100831083150800204116624160951292496916009158577033187270707526535753364001871736201438150499132222983735604795981176059175115335730307618009404247255595853863443970889035920912198037692176548124991696779815109603363525228918482008860203581006022591925803592979228871372528791674929278840130145591605393082420556939871620427751105703809537076638825528495738973915445199309516098548022737467323399472137203928378322540433749543566027889629440044404477261271981747409400186214640245177531549222615700048041765109378419440647152878929086516513443988550905188651042328567262670333988843761550134130256151014836376814966183763712972027113035160743922140482145563197623557516627282345284198974532646151724343824861101486193038574911874139253388096017148089319775120878806678754497926408474810927595033253611517720156663105377143528751687795978939320634332384527137888369025483153842114949899676262356896459403644355785924907875524828537360106604842502237131166643285028143838331384579540816850643357276075447991990351830080522880288818350682447892534316862731597663278766221457905488924829394366806195577966857014742704947714992616256888564680622695009981764442030214014705218158474029765830275737184058048835956378174227674335855438058054035148551037080811393359094941744424066580019122907372785838255864647492140640318163437464585151323335642728911249913346118888635491327636243920613479438447016316091506279509475483773666176420712121469456709104984145018754052600374632176001538270076854569787235455269237868130713854972561953858645896807903098509136109292481106122521636382427611345774051724552347475148447840624349512164404410831673128155017028050151902948636285508048778321737793461699530403499566374160246194823692257543821877428946536694024254415759517116735601012365162216071292256335129075944901810557782077913077312445851063463998778373217562114503984469393374685065281563680389517539519496623388244050118915348431735288256382281910224679290800087323086436828531451813754432204113380540311175374363015975560724735642771529011659523683037563350647868732402114865473828455142787841524417602660160287358557257755304176016279641100035504034397119985542382930839376235002613970863274107008620369077145580224800793065890038984648228551700121616272513377335138371873979773039869985632642415312639082553809690723973022620450226482797116661231159197539660731826237141957716897048326195240115825879880768608165749505714392664961293797377107957478670785900769728789761415511244261920743065007066674659132405012119346926845705286361646845596279938197183956242303880023576240764759567097599394622586806674662346605357662310357966983944184440757774870041480797086261559106548545542489464181841945423828730390645978823649061469572866374863522388019610603973627927843392523000395802293086887471204276682679391090794875689235033093917963122302735232960768833243569360748985241133755272888909551756688624262593945169072446337266479023022619112928639983116053168999235388654534680380169436225979804574115669371380249449163101618489555858740922197841435608365280520013358242705501028633598557334930812816385424985192815556966307418585507211112108578189006040119780439764404661377137566483932134040757971549374485822744323667622323871304058369737300061158656668370264488072197031425590602281610881448145080269006067311135419714430447814328757733901883348221664514651768224658613356409575366252301839206949782611770631100020488905586256163351383697816944633846751801456065326715510812725664972157676745286831867158583815611752276011586769897370093467689710707659106006378067135914463968126964092614566187603055246371619250953642053148251528980774988051249569775527164118167309343069457884615638015461458103289880222122568935989308469374949806910481558474449116500126700250159858754833386929006690176244070602686188573094503052548605539407942567332622197815711881174789334513416738780610761006725898761862443293833241351399528945150160773203701449246962751829764300864011054356511677369933334528003808320110502689315196866758862478586103009085829132538658033554262718286776276893490869877653350726622870557709539891843852020080090962055514392680734827948031440677226225653613727025597056009393246658900962624038566062032111503959742273256691723176702743772158447399596004525448619469193547731282171874749270164241423902563397920403172692578022805810509849919316371390496139075815766007205282805355790263063170949424457334131199051333623646336754348686498964985981538841083099108059778626573760753054449200822521267610435982376273252216862466440185089034907225788246759378335649970553097729641450821604414129297540730946964213633014415298887607563340279176798460067169668690946512330833899302300270693059609164101873797666556507605050158964224976335334635735966182997743264333396287009860666684558089027651345456362379362863834731284811024554187225333566663599013988545432355828560271572132260476471895164536648120320719321732936659175934702569872313314951253695804033902387992589487164322039132548188723382128190033297448474625513953015748279401295685317092805422913814023038987962798821763487259079316553973946155327599270460613657887103694131042644716019787261798682864162047129759337175511392374003076216741296591848525546186681268553764335678637648905185124916455289348034290692124420741992378719524122037930151173399185907872999311186555755708656719178387175077518489640382493807613990907599207571080018465328318157744000402175382594451955527786820030752532762512138886047968080748701493088666345072310548743498410108670078184444259904162186252805222102874283494537564181009075475257636402895043278955962556526199116297555853565779149974260949125699492373825458897060101722626663149084003087711534345834331606142135605095780878702998076423648955617324730421904102793331188264928519428602163386774672416973745550573822000591822709055640815601279019497993546755063101593664492925851827953997902732865717773801469272452164233694206324386751929683547988662022353138673923309544592576527996547435171579975117528213671066829462258970410692097095707567908835404572824712764248151511670762534937181766005261747250048225689933733998334548772788771643044316066268652000627999625399297450581779129764246348953377323337168902206447696493599974010567643601172772720434316702066385521725026121215773218271380106495315840644437262525850108685471744398741081632066642460532136422717869003566377330706034978180794699097567650973840628515916489888424652804639392865320477638300717632744328482301181519517400277443385448953524084148830115608142171941760980916406466175963469804662402213148179239284476938692213485359218669676859800421984008814369540068362582872886706282851224418973450035987982610689614833358334828581673981908504491435611656518559304146496786892668414378924848519518649259795746721215738980198355507756528210093890930301725954441418402329540454107352594490975819173873433788732898850966941108284903154106153287696017392436319012828082476157163886803956823022604598988163399557219182362532550653017706440614570705551998947003008596807402895051794193880869851985502566531452959088871983937186677133365129577817556337689507244463611227190516535862554878741099807184633993650204291057774732705757646364206211157442588278736735222715636924625362200921955497634251526899821554779327325545095330276910034294976054058529192562498019014289607012385399780154959096026027008425016344925542046082020998620471031473318366599402922632157491423385568541041595499175105112534664314426154031553718017731074386093294770341151405630680224939821414018643567723951810873007284555357055665208514088531498770679183678661334138452008375728709909813658506530414135516293522298706593552580057226097866081614260472359994345213298278827726955064591825101159165746723719294866602363894164624211150098205712975850623267570399378188503861991609828840114160654637195895485276230187589312239764962094153175326748389281412219529464557811328775308609740190894438588453548316447262766201870018362499769463318921027406695777430155815289683240630360206500872944109622636912770964584710838719005573056386499850717706760264117969189822098087038332574796757044296199809693945329066907940938805866318018005409248977145667668436910957111615214629242579580538983112186999304566598549569910705632110155031564267781806347872136818430494981959227844837099373341223710225611245000162467195777981178165146958816429334797970508783683414790527750866375799900050819944916348649503226939977976360353565589337287035640046266831179183849599878974749174261304684257231607187410978022059127242825768149365003058618412585725105672622842846155466743662455057401737865116373050419809541877925823078915561195801912942483658575342137775479571439637645567537961429151073235783983600337673438549540429153939977204513572013508853933464699367094188332556036061090927759438905183446693719255524004642462973143535430122456308224810902309711397883618198495515711068804546642147673793517438032447023370804643109452907845055428034469878928107804905230688769714521198831119439021674458008307170028113886274683995661398161316167312035889872405144406241672776018893335905377706359833333354339754474178836138773992488073533489385840781777357425064268455471939258416969938056259209018905039265758388387989381116708089521244033548401310488252308187434568014821037268401001882666000053580312055714166835877037248812346728510847473819340020572216868832484255643423422079903599649219425154638264427906847312636256376794100866293619442756566698189951752033372292242908041625801303944990512076987232488574239134787140718186418810728038602000274228549552937684844337779250543857653853713743956501835011920035696064152576222091734219529620662665656204174141000176669217397947714155470087534371125921094654650696092486201637087627656489573606433472623377430076216903690148949317681906267750850508174992388480409694957836024613742680628497263117816927687299546660386941768797756100157137221114432285911889413568651561169563962959317128740718124754351433698548061670700565153469362353490296720460439902435211963814728150982222460422407767875360545033986718500171843081660199798678261828588034482472822120735257070773636819003082648557794759866304011868797791933038946435343198303092115515219749430350331493249355436965560682966142472770934442997789984435241510379972159691709684983408266693434643199439467324710973188664637862087181047883477147335859621707667651291229145766832725638797522124101926548181983302341058326494359313769609457705879784786186398651476747954622354383417832059455153292043679302770878828263185240824712852031780991311009474819298072704858655802255523246236395289820253358074370996475679681822292476017510189708851884813312469111002467632778809640674000780539914109494811386392826288841768308060243931780682129769662388205786509780305765583379128302527695461151917918671201484466470146709614339817683735155643657105493047550541933057594654379560450353772728146028282928972694767776761582106173822408527528842569235029440388153909928884331387101047920415829190068660205862227760762173740433292502002232860454347309264072832096698166473997197431053697717045896964886655673280124244536802392210813857585355175846567939862636383510196537347721502800799319764858465438525089805727105808958927284684691919743977814240212733663765886626579862766720544044228267394887923170274558103763317401451246309183300473091855426406983298349711454633991228348558495054144789993863985630180134451844123509399183396004095832971822732083159345026072788498167595743894953915938998549726907604311023704057124067575562000925414484530452461360206249540405182793806629543064530330558055704953326789486334953228999255400598373732987099742573127394527453165660716196922956472958195935238980456398180948267896057171594301644970383575596936510071419326500461675096004491565027282496483744340571825978602452996184067673781340276456343265266673227238963414303712144496349095646826437324254514053299793536797905808625400150212367881379294612004607219463030027909957621090279066568519415336390276292991957287351785848108531704191122088304721959516228177646333546634766348720642483530975870402657830911134244843731716069146412056385800104934019794478923758876163455731357109868368368401307621886102956257928373418362445899345347203853524350882772375388301689531605769460369352554908858842244593167261744669338128720727338238935429139235060076097272667469996948918769265750858009695714192935514847429520044212140089872782414834270326135029862633229599396551831101814638910158369933819154669945742994926509628818129616521712360854147014544031856059019729867301843177428282818484933176631397577158980523339336237254254875038314305936322916119089292618965902313225272169113529995356538201978610226691366486333672985977899540601701521673299009414643012758266896264116782216694241379073593534055040503891319140540657694768583681712428381864069646517768064827099842103151045981076975102819058687532472493626469479770089530537278601192906113875259617488126253955845590076629710924359780157172913131701046186334819008742411918949127279812478052209695359073134368005968464720022333846457708383246892684229969927309737035327636895363129316804810246538872308729962064800454989086062050965234063478093543539142443126655788149903754264920881137333690813437424101328287471455428260188251782021954166369406468424008301262347544793116882084571104752587284706423291081178236217307284830026720076813176992661353842934298130440444844278804611258237612430229398993367285918548498496160856870366777117606269145528668031352950654881490501326985992779931082649617562025778520079988883412254276077943455491871292852683822638955817131183744623449710334552135628601009514752335508252509659709061460508907324564382586102320840595224688036372572500927295811660236716121204342802321989101921638201219176777849458177546190746344963315478254867215700811451921027548065385163891677283000513084300973262419189859657320115562135974643586586957283412200439409264821933876446234638781735563503997643635970495847367586700595227132334451984500201476617309448550728230847466063164037663996202805546535266176073474369028087121526209202414989050775114907768465659990335843740138891849826247904614767414717664339651387629579918361900120382557305639539543977132229486810087476014811919022741500530966024832373751124390777759972633366182394459244886840075052675744558887244632020277262854669444666379134997971170885576662500246626975519963734089032138828606392944136371042486801650008631303536141439962855307753642714363329365207716539203502308535047763128247262967575906342857600964659731978233774907217455260355541002797660776567269231959923716222581279025024460333545296163419917148624644567585811459178072247304569438854887790797922875001488511198248866058816582143511991659346532480590781992639312954635044409114210444831578445954825861231021585522015957153635619753599510094909610886425061999752965977451277098543703770822952539026772857321099606307349346500055903708951140425787481377026245147392231720329110997559859263964391385915460681850250129572392795323331597495831115131602148023622738613668318318528007706368716281574779901325177591843128532049696659360579579243089553213493592119039251360870978517812537915267621222514068320111415803227738955231649535532277921626430549351637271730740409452944780711886678207834383376341473181012370460012833354838410400896029139750489068364022111025468172008301279100336452813271956410740858572687163205660531413589554282816783180686937505454915878660690010166175085804205197148603959672561622466058021875195608228928395075029864698079408725752771303330289266624132968273895374696820442507396113486068547982090384734285768464945775075557631083341634690067342244510187978558205311151079903427443960568291505784637732225884002645789272752686039998592859408142370913773536530359693077007981509328838585821213743786471145027409066016363068280156656933242170310866437935502509230252952821068034381631677729797444417220861296664455646925440318277119963657973633611676559241431752079868206562442283009975346746907379222836917671152987096305734895304615956620523848237584427345561475031527223027673432719923850888155947827819903997348127334781851850741742439435143565641944067891392413137200303847057100891482657798456731011136882509326968177267173348868602115518435340992063685676111139890526797435832845879064659760423194477424133004042778606481542884977319382936694591008466623424159742911128966127959214402385438002274580607296732793944515166883945268372892914036625179394985056700172299924066964031212772621493228092689987846595153147946085213929358396473233993237715657932719900427665698030908345998799736569596856174096015774171005223907621650979228264388274301866927705760486877909533404430055369501802170595094394047361106207539082059978457551367129573344471708903714294758314186684862694039684037703631236556301199069082065286965550460943778462732051051196450312328225956575712076901970807624376992967391446416166701216021364459232799354150644619835973758986406441598484199015653978560012158289056722894636710319827307443047561291268194528047039170729730080000886071362971145778082152866922439844339735851049122334164849544363500220637141867113350801579907894328934647546455940763817364637719291215437232233427741118153250789166947016124686478752648902716240464662621944395783671202621941810735546115360759478213718422425879085520473672114466657990366087348261639628786439799348682859485500936202670726913879904287013490539427423450662538245726710113028228766356802193204628581640170333349103506407410396003945342883291051520005953104170469232644836055744832451151769225270594779574645905015192783949212789082797988716453302668235708161156368692478935925326723476427292123754940991419749283927032183170190905631759827690174927248455862650371347915128472481138672251589500956114566614708083597005319291879717356998469858026016035288900085938962443278259481277647657601146428163415066860868269403365363629001682017275063759029508639334403524174442096163680454658224717175625180338020367265063925642675901513336886428315149794872072242547889561869651302120890893150744431586033656888732651287841039904562049766546290774463631285083615597929420625404029590854273681868536713712295603163719548506323912485923021627508906953351072785060818033184183670079987428828878130198159281641056333764473879905739769614504596689500408622850370995141084744446683055217442060100781665072183599029635938991563215503231231089142597726603607335893717436036382233930462215226538831534378863068257209930893996763021686050291365250890453208850148938469761260011629383215054418508911767229988107802379199493603134203699829105343702432830016213664312175998664774980956413805574131485952372295372046858614643692979045267058755854736986382026444057939726592700488488530697232538912686354536286397891068768777006976676808684433037997366976320353498072849632647596243478113262551784159103785024273931822365631480980360587286013144478329589278305642390129870496964493133274967086301135271786991296994309632326633332832084615066985315774732019974221848347721283798462036067430940049881377255474356322516209631278455093373655192676305954939555439169215002210582917294915567497990034043482487534519717468964030970392203595474546679910058592968887583621024574556024304322984895812554289364642822404971804423572555985490944039015272105346686068248641842688311330079226033349599896923422821573323348138631938394033738669593249229591713389299222223363420682606440505328099903208520332912970659644396751636161686153597691950297845734939004479057899309626593677994406976207221462308365473983395582281754268157954443650611165478768127635728975004837058184272815725850211879610565484976147951482959231826375879085353895227101100549539858951028335497584194983463911698795859045612493424171835509657173817251187526008476301630755228652906003050949400071194445591425752519042834667407600366689038776687161562459061302024621205925576872790181510062996660466367580470945655008385859673540409490054455943365531983188036800421852265151649948445836747829198200100443509632240677074724089852010778893017597436961413210514664863616514134409288163924705167284315581898444531646428830940867875397777856951890347105484737756064959002420263425727501575479156895445717334081483314430352803351452030078118487390447098581321398263559777561330839361140695882744347792574978119007436687425882504276094370403164034169050138466172074105436227625131422283198389073179058958784097359522580009049639301351802818726980549081084635669059246519879529787917247443480581772557029938310303261859922890538392517262314036061046034637856505167677896071356480200625325524655415923370318155062528933838549159500761730562659853842926001080249603940486882262751012096376801025529379628678757926745310107627970799154042041610859128738422589384481665495636838440204539048853191550957684789054646579288092677448432029285657679835094507621626389257097587049631609976574873564968308527327673306205885801090968339842163487690647264762899747760275606495178898034521532285236613833561961040090627758095085154189036702356555100823976366994020276197398236926651110883851233056633495667028207069504413644952715626788682822588744832751397829622948065604804929915932514511816872357498533130088174231140124327058006303392871949226098126697388549044123122760820724905080937262383760214986645980716124716596992606115332962065490991640311933825388936020340338060713360566797975661174324813968548630757226404133180199425002755211222778400914228335022125197419715768555282044329419372923054542960036827258407896654382419092987869094656352908858888197444335144362787993227735556333409541100260037645188559927193758326116442562993473597197198368420212024228124208835357869322511168978360494331356974397303192989583910661709632209218056933798571491505280531673493534499763761622541780126266921744509122679168289227441252129371065174977269443855058024547747123097532329434832103310311707972347592342181566154911996801291130873383227854205828040997599541186777698867786685641281841025562315851552363425565101681224503634689653041697921546683293658301987170463133870806272571222315940600285333615686574159093008445611568698372086596735517378950082584314702280276982092930937731277148513558374763726092146855976595950805914120685546430830981730452999773857296801626468205512216506048304330399633215211921564325479178854846974824857106504994974889659388274528751584422818902009980656392335278017417465338089090326086633142010236846861881727041543308484493740817273840560199265638683864983223554924894559915360349491263097212943330842124768890857242577621423322376946111247404389262084345768252947149763786024445404633116026970756541127335864417859468677576569812952087552059737153092599155513497357635912695846687039233029472928568888318596116245931054926257575769106757188922561006909938563751835801306111143089826654807323973538170006232614216927197708231819924881397492625289265082827978813901123022935180589123478969196993007498289488999720117360215371405457277681604066858015995644054199515796976059601998639866945196157759921526414980513544889081965365357797254606185143317389554830418666182343761521918370995206109138908942438315446120792365138450348984511343358522971811379126276421924762730240658486269250024562235330388243733363244600457778957287455418420417804166325280029268474039209699132639205291606780664343606974228534572654996644063850056879229816525482795108389450569391886935334777677166984168711125294240333422664255482427934852303141607186290981500863093034276462101339237742068937735389225548722878948777035958656403052056277618338074445263888534967356741868145702496739750172903506484649004169829449664252124309762622181474739191490675816718147751922204813632471967245891435248248721924011755888029343723406979088659024174587826666237677114272167690113042927570522780524928424291517352829286908387056416825517490148184597804006043463508619993276690625612987429772681525458102871889747770725200631590383013838066681446930622835775317927990699816355347649461892113645180798298152719421876318625348645464661150033737742997542291726026495260038539690841452269653514196648131552097251569721403612471536050913546960615721451939069475614277627761925313336135816935058314199310698037757202273280922578838976613825917428457276979107067567511937365066622167236799142797841119924841576213214664332518743053761223517614075656297445463253313359217789438618667681938614280373736552839153634650136352631628997294058481470205262556171367762478221185519598448529828945878514745440886456586642595341468644413430202209553010964147150692012752609156074871312199464266724283267546155824115835541811270474856004692580501544335750419963110795192841869588148814249998833327187831724362457025714036451445400777553841898139602009463858204792091588291104992345045721922015683630699765303500103471910403080543006357545747478648323979969664970955044900079571115252113948086068036187305697045877367153547957279315464095162121109407240874491644187900179891945725895283011330729691441949271942572815909710775324854200045210184494152643242611051290518072372854036083487823813150955911923117611125436972474059303919094485942027566613637250402321406428021604519288177582974808089192446183876911557566023623959380150768108916793580303199546040105933424995189558747503032154972257855151420559013582912061064852595614258903348543040876579336775122212949854747688893237259136912885788783881620937179638932473196234680611251364874405832542210056084295685467880225249018140326137260926568230743117324202863002534804174175455988720675500538679578432189658929703109501599323264606309470130704491256770346307084142354114145663603711016856894860972725457345213892203965205701487720277150214034503185218925296604525945066458356967738855991427061218426983079386681090747308160282796616400744112132805696293041561909427326506958025955930978095551219083166060224495062694351610744912924932554460502266749349457686230458407903802336406577264477134864864655412797277877013546143685161474641422170302322182662422746873581924611260731074282161742782313128252395009368872398286974131735878052105212564582778834771104673289433608204350959170387039719146268249974192796211808979356198280170736574688279731975081919869988946273415213502561906189933828775135597751338046647454798248287400400799568861919148432013502304669958912766727486213266473400607908635286400407625627588305743405204900324852099097302214940713957243494502037103477515199867010233203901486179294358363164333708955985495073460155240892656355974373149987523423772160489072943547869632229549139930480995643168293963932249222889661946418679464314203234774106512245125403348320669892639230191529240108635007456177796076757360944594530634380236683023977786474190892178420222786124400340932635350487711159234778564022480874862262960183292684842027790390730475325887351203614670790633160180187423566006415362774751119890670101618946277620787222776789536968076943228046979133818681782908080914473359026399263766391476668806397997120428374665614778588576868062716087223338482317000026719335458731326070272188893930254161396972716480534084485060997135752746330874949248662067514491570891357528179985607191438098745714694860126859828381077853142596304393693286532802892656048575805844900570716253317984628019801055991846212286255828375508120667370638092106816412345375343153356872485711791740187595477925343236272260684468667993180715336162064795628621677776611195507777679345997344541355762369180241729826503111179881109913019591881984958230354298860663328023151203939155715947966538578192149750520371493970036650620494742783960009141663755609246598803845220036862549429074148145844878559957565011989034797566776330242956673141775278494836165963595592482684687301950722244813003517438694921837751722120709035765422306218700208789124823745850316108715576107544378600664400147403072927557017322012023720406222469041017278632047050203586387337540996976893858964349375146885738441133853134519507345967139535916685066989570441083320427236713658574815674541769963769025021917569629495742639987624313221093648034961197175260733649234415754229012083307721588605521809703835187239665013507457875275765240711100064601092096224572957493517006957972879020686470171146472224726720105322037900122254568173506518952268468101206231219251983557880125268087502568084734279600413408508084959232915255678292173312620343925937054213350965238917253356760813482471742359795832182928795415590830489403479158078156857116799158051004018497927639866011584303146327386817796605645032031348347220733072342212936893879640198313060226270387477247690959962245283560257771849328994676414178665493500968525872785322489269901885699671358026534197478360301983519549238992740086175979691796950723311033518949513812840547602624482524445549711730949529299319721357418412185730553325518948515341954180582754955922942199681559158008816511668399963217346441218786757593203318311543418919519052641696934858095293298993640926936634009036163072351804781409366686190633915817978306376748836395360414718197760259536659114175963405684974691556452035546630956545071141898302389545158638648152200282127702076111516139182027980490848347514019187800692913543103330264142617864659133573855023429940757747475723893160822020099914651640442164556172485019102320280335510431659667276031994782907223055156007496053057821386408728517515990666468410509682557554019967048103395528004119916919513094061652754762874663155197271435577862327077524864401188637393372831969666645971909392163539496692436614480320129903135287079694562654696141168981535200864241544447698811373806706048020345369791104044730185313582852991660722568045212216780180366351031854039559265662064607190544951348904404910732391493355269325364139291461413437297411135981232275653750407765492747344574258662147946499549192083190186982776336483067493691397806296587151375779574572788575390266177239509906715445776179461300508459862839365160832112742710942444870000095811376988350231313066967403100935006799212460903920253332010319364788477813119970624162553373991086099726417353876773724364851761731231980172621966013452532481943782137107944230468993308924726143262280464892882803453783227396405359706266504487278221582412137310534308956841971110032453150453299490870333760116843836080816524679075605510649984682472043535507858152911506423264254738547500085953838878202392887498671057148997470697000726470264973752242628168915510321517345899415553165696478690016009065875731446840468222995268267321966529764267799073060457734668731660689936268624703854146348853369798321863371237218600956324900778760798839120232934788085773341766066349610121680831896046088357815206486983519626901213253140905146294098069978564782981179738920633017761882366643699822552602898038918527586711138248392346320319964438640090021851256272857533309263953947354189246440275618015787388067682272169660122020522558489677227414913109046218633974263435191021942812090571397947233580332120753318309266652461173511742946986229395770160854724037177347029657914757495834656514847034766465969104628860910416829207766865780569574368811122124866989175570319297790350987680850169291552064275422884373731877905740871467603416237994186370399328662435472662446837164970560767109609863303603875508967842232094568503780968479831782317140592126856920057770802437001710369187183766300047204440501608075333769489745666836508172819971326864066856961506591119220335945974925894348037621366759503066906709783225529271030973429899171757038536701301475515813610355953496747965568393710488448666310840653033223012752065620907538586138394958254201582446014809409444306511585440980418619522158862407233645232429678948151085329125221470271527108563053349785183179085808861817578816200906555121301538765685912290800483448356370726584701148456910450232393635335663179186335873417460123631791862293472748467490885362454456400134004680659340464201440379263634474402631756738807340086962744039899787368248562723864662284545383008911336925089241508554049095654418634911409453719088464842727578582528143260890271283845452574485280498406947443008650063593102900834141677009876843637569372150523273703739545158543416977020545472943106588004283018343289130251747971386065303552616799428591869389919964513667234123013613768040875691726584501389855862345163135240990961599854122210026470956614985583238957792199497172853253575939232937003479878840701952055318945514556766315089421545189146389119269043250007899146808166490651008087554134192827008338800218952527494758054169794101612944544116737826306852618616192289268162074171585751939296786160056371246679126007292327885526622875497418271235357197303984404913966369065036992232801210472824077137617696295469672898945391011817985275884556100547195311078237353438368400394459041037189041457177781348933012300266043485128723889747981014450877420220268637275142787068404232533298947655946516616946140987929777319246818247070600668248230670158446725074062377656102286552959393869595478329729257131627999270416676190353989905169103881532149153275891919823117290781171875784764689129279319152281665129441257057231276537814036633590938001421230733335075273167059472768253860414030896431992968135989679751634560814574982037865337104756190589395536001238245996847684208756173650187773643678466603536140781025303962803562520552347484277361493381872505019068069958261870023782234391085167693476964978000389438854245787590211391586976544392714408118203660894920681167574997222964488214310183942905227676886395092978469195334498551207081023165547106389085756161375225595532846345894274211407793398470913678712139915770683590228392237302439127016397564653591627234459428948829310465130329771399369394563482959133853631027708422149122005178054121320850928761947144293423813453999340194538221925897322631842585702686405273975705821675599060492864294285420572305998693334718423568729745937932127725474531331309434541194899948420195467164000702476335547456738775423629742747270279434068127128032049370961249068488868645365836468227548351345979379812842950749567064653645696921762654819367361763671302337119421980917624632071024390803710698005102239271089470332557130678632342341436672732998760155609899618468599436444281845573328013429113590560783660390731411354616268698513213456128578093255034038228229274742131508996587947451122013293032763231906494716155518556389850106624994551721797492570511275630001917986225733581955036727480854285358900958975013444335535717911504384564561226972531967147069240344994778004914958726719968111272348093930076363999711921239822230256139659245727850591331733970538498114020810651003277674073236784420709599546102437330573984824521045884403130203519311447216916062955475127035162792573510002199451906722802722879104803223578747198762458156628175133133216127780676997161067115094570282091778613031591291460472927297082679344333905969655084332891635674789530148388706326656342422071508606815020225822732720458220665874022479991242871086459720008346656860388750172522670142217244018929235125180835331360167143730548078249605740205031818810516438816924469359109595358945785437835849958249608119467833448576086278152514012470231679245214947917183464790958057718452502884934882330340713277668794769699986776284889937227376027129350555250833269470275334903805027799832456784247419583925712764899552826710742706064971622561699275102809093680979287883263181006363689184694842866547949571912917905786807810656509895122249494539238921961636103015778605778248166235800363656719367366551762700923697358677760281563199693306404317237675654184083808708758563805193348465782474414699670930441632988313282759102478259120814610655448768186798985025303987016207589681858882805327995230352171336999740748113261513488284593259207748001420409579774581232387520217563176805094412481339440434534034377924672599240487255575572524148858503752801046668339487044026190698957311851951555204750370588031628301369626582653583049727018238284246342751399610559989713304675472569760723390275074065378657558691036216961325230345734861505253762431448061365011931268045312569375456031338116057925038478952072842391949479850522403641141825288326140821035420304841190058300692416272433145086819696144266547587432386464286468855618358408554710550527433375371985083717999022057776111928667924467744143166849249984920256912430275744722141330235526594763811588162042319062706337824283387879195785080398103601709679674625268248513762798132777500068178533401208495816346869578674912625619846151419901389638695792344867347392347551472688347914678965437831702114808274675534866221279424662991300486161678097805174311469641661318107497800492698285949465048073759662353166295610441147761451472537743716015454913433507532178535300589733132368321244065354217703209200598123334979996194234926277037017000057394312260349012748768563191499355591686024533570215042461168784634315421975840120737342035952035294013441515269206411918213419745399557068051048804789301379526181404864817560668385824837939329780084515956514119061394766829461724535276793820194898202477825066858717160647646907980093365640431928276695981775720950608993632322051488173501286239832753462290388056367136124230004539576221709195090443167917878494000210298847942519874303222487933377590226948670268377277715227825709324789052362925570346313539735742713232876172051153508488660359336245867756602117896350133135901114969175761816718798984682884555054522603950675423152696732320976985353053624696801923482260761745053721447153116489909476171296149354164086004585987764593121722991740149038005448291202812273996862158156542612954868854068609932597323188191881340166975486988357907891533873789041444391894067124618921896874116696073202821352491782654122480515821562156955935404617106355286559304584347774962072238861257763437183379504522596235396776032897581292510112513093896422091644311238249277195681980023133165913975584199520357660523438889010942152544014430906161346432837963474795737137024630692061775264382444431422799061740825780303901395630680809474691245603397402306274792542135772471294321727868108429127457094721644283539200770054988579733323702753134360232101628432718663064987820731913486274497491569058515660934680259804977294069005262287489168024489601841344394592292348686791915711580634355393779725505801318772438479538504499616087318102093360454858720426323416142091647971341073408752323241592822692977904658781960817079340629284971455573679005854000846807010230725523523068870931660206703368316426151447221136378118453979462255064572080489657103822289768606735237019225645984635009789141153197287121177495123644732993747638666519210995114127292170987419980575179583459137404870220167654991904288189224581515895629303285541179595328365082503501124292741881765465989944956921731240976490726448337556703676933010398042230325322931185973213983339873843485533390516755217946586444903164153181914973094441033957570051617255661566368905682746615006901234868613654348011492220264695034227085525883215575468846631991561573091046640592135719873480491648223815765752870986685840036122280562101897241821974597749300795099674047978789376155333955786173404423210551578399684208177494974156019556245008262585833608808871238763784581990995522707781021186451995161716925312592782681466655634112861934441337836517834143240975265894065072028048635819102835688715068707535232720359248859712851736511323621160182044800433246995134373387403140068134117109495126393719874463184244363845920248050072861020730427921893668194932691709095962344285446030450235263264935865083336871538058957527963724314935446758218743534351673038197594934114787250777368331729081835248708394970216527346276047592431018595426810293706538929543003637959262533453167436048209364382920237051242026530908510526983210310878866113898968754654977613445525502997559702330477145281144886971239204255143330008374089379927185892540997671999792710470877408146194927875658672214899769040710134540509602171983562227847556534802405248283824336271705836205452527527743223413460259631504466252772480133938039979139269295252071788217053677489582628067048281286571806326494287457597919335481593357687105732259605274257833190330695273265619805123649754720042866484484670503617472977952236671250604298917799791181163759256676342911248686245974425227878118049504490666390869639783747360100350690748554904620014289159848632503865667877289779066954513419729650811651774977071515805536005644483128801004473659904885461260682620991299801893943671715033179942446610723424366218369036482372840871597463482462755637856789591766430612479792555326675505385017228619839892999929495461389698416223333706698387810619978540949088565856493559623714952933307495136312775931658985051883173823539369779808991024777051999303593388554363001813766242710472045008071852959388593153317271006055365060980914249558798982273994833511989635714141527777036827846086127219638456118834772733843903781843540984614965357705232476881766832764287144029440987695060100838905335783059285156328877705491455552629732149671826338071125811317790105215031672632008486240655744193192937153720415042524559660960483281879338543333014906113435109370062081095343582231956318802156591196344223631149458849637646098968804670276351666374148016904947200605830061532775124284100067381907162039560752536238724895428260338545031595810112771162921255383808536900991286508864078779164779953833860043054863585915508452419941510586074705617161132893941795210120461148317549740226011590035926155231953618861083515498877107025950483139286218411802030304459984278486114300019764116685141631508854780885374874071522067688381169113879904532092789922287135683931564970486261830785644217625793191461819176793209752164515978950766678181691976219552036076457824774673240213910768924816960370613084895000365672298685576259860329513330163937982592231558178093679792076679702772833802402695509804529477878115049028917223234179860114405646481018245916662991090676955489613537063988434675717647994775319859526524978442642455029489533203428066842877502205655820211268058187245579663230687294406441139022563556209467196621862825504167032203573767958972003528234459079256554238082276483527849703964423081801898561378873993607797887259643293279463503316382627462425621619922601824798455573351448302526957867155427009423620236630659762865051905239309649236158353946845163405047292575011061835652609072903236236739980826421965446918325467335740381089762020891356625531323479027805120869628184282225267976231137300902045954689164707887292326579579626897437242117909347667710071823932522778287449503062762765656852683220590864495260948057783986172332372738325262408865466976733479129963244897125796803437503564457129057570490225178125681331916040033388679471794246025219336988284075718769208634337560461351856551043693594747200180327810014886126645107077150349542381306973284454011306295658094995072506850748102129315079032410313361502326363979872676554419742456798137262460208512892925447670630360520585187087750510360245170613922149826834567040074741430705475276541283042659971814749837381831518087287680767165138033189712618569519052122280389386795962535566353369783234472217573935842222070374949909917771365142596740182114736619668717506324775093274339237135598451688356722397952967644805272431801859729746500283834998069475714967860805335714635284545513651897511329000482429315949546021279634442816195700624346750570604910182788445298157677283248322447214315396156001982488809169278169959324654107728049651340657113494809935494501374248827534858300746942677272918713158311026308430328612325445673056280186836719305303777230896910793599339178235884655734027487787052505245687708194315584872979360441768739279636787835354923069467830321216606447520645293704193337097651037629563298299465714706847138392871434088707895747224652945996311308711861564796365121359806325778587411879406380373977695286566997043497452729967453511937743700015285873556349407791274246795212089415711647348706976260093049189256245605996457707372975272628877722859965018062138341525177502313084915422407058231892325066658515157548663670056779472245283226455133266588686681618333761501137877093253334788160566769810766248943038112550999096548641796734915274996612978419380916117262245450519133791919853772565892010929090340797787156490764454940747338800803744720617506395606126059891717047297460773961268762525960501343454805512200551924679475578276702169419564083735415487037773588531206082708472628113355529952514147482111468885116347361075464488890592231795893455511022607747050902403608637791194122196102364456518360731927897545001625499183296637415203254909053803843936931265032385202562673350445201492364953897041761540926489729781350326932260080103843041128458790569809392021794393565478262381536667433466433264439291398142112477022495903268791640349069685193500459149467927369410947006840511980653886570115271694023237907100498541395042720104668990358670787773833743271356634797901012837715358152212322713923108981732072528633739923444325702987704184354135187033647449313167105800692959320920924538476271654681626288973788199421686664986363801606806976634383331884099230046609639884453378411660541459343326937253057978215099007584777748260448385371166315335424063929846486227643824103002726047962069396963284400025854699930658674766353970830709981367055960922381746596796708673703040674668745053121487199707857136503629663879857477760793091185117985487877235402417007890694288867109915913742412713056069248524669484957113449503149410231081488920270289484320946585350724502942877140458670909855809557246901252712507896972334312215791185675413460024468605655459833879390311961749631738107477376625269022202729570209581457356908696512913280992133689968880761488337999373538716354960434033404028703295321589779286310536093812974617675817531674244501545102355843057646725563890187959834622101123085198751648407229753720824027028113591059705055560175703704223216058849059082835797943997004622138635947892525451715069972556283383699471912445490929634362485119543646879654457682717795588498441362827497015812891223470664481046746672759916931848837149217260917994582454117747130918969492860318682588857389608830881644056099487419026170458314679050345661790868396296174904567837071905859157023779569247432696709401440481170683524632183835322296560228305628301838100325552571588248423147367785032405826824355093060434474601418170343265415362585479453509449898738673319998363533882483698313115074750369594109067971091909830528886615319621021590186350800364446778401817079120048428370928474014758526601435677284369912041186715837414577726181781923660269586189175241444017763688580808116776280036693955300430824287620125932200472418098459525791322703916831607910133134962741001909051923988082091919563428792302253660097731457880897215293772250966110626640052565281065758570900988344506036278162363463770086964168174006390703177547565004238683126497514688457069717558117979390666478383896083948574578995124337648232764675148570609716098587542831571293761283436968741596870087256348605287588011377183628787273104488249112189098099652425472742489512719950780463641207438653049150499864812666891994029187942902948530025307856872831868131841650001459297707569628355130455366791115746936148101899787303212164648400493856933242225882233165003724467145637210619975935468719578609421514855083374728507695889566959395550216758391632981668626938274549472269619949421401080746497423859001576870366013246094069697783781402163930070334724612005741687289241149088976638483115382331267867785166671862549374823046541511779559344181989661337612960930763763619493340036715765200639001215812702361589095046417971061411558805208999012450995834391637738172701816289391729816599058613636947381237426609012407902186493514186016928954125924452586085155266826901736271982175154820319297587667257856219465469965274602135474978183351255191884602649552298303136762889462287319692088009464124163780857881268566595593082461329167403405720409913223193045702999850412980163072878620510389291166485909824731811026588892801861093696152821904234504030816251261290257532255724532011385538636236324974484924603927511930416824983738917211943146166476536378130874739918294047484123320348512043603264541343505181951744888131456456927629337131168598302454935443814130112692387583534800082360869189414985653053837529491532804198971872079952629070529164638970823141059717227722833594306465267283641916106649793454341899263085650433230375755123897286443161607487436029135386295335830580699661746261748943601843175832614795834425026533142209924189400611577144624080897460573290130568883160430625117151270038740603717667912230787319821791235361837471842074689483207641225563045113071472567288350404672461218552725764612447381188759568242307953672285655129195694320558548306307451576121198116235617876319618067735602864828692508395085638481510417360089092505746237401498374244241140062839072367512757022072842101448474811543533015639691029060295831119774930336933228355100377529078869571360569483936287918519263537505511502174211756423485342258796130449754176449074909203271079990325560531099554460018794678737450942854597724993318170479104362243219606644240975722336101759306836179164298798480369810701977973636024341771472188513643771301023999800362629587427331149629289676463196474480421680965048375143738419114241052038322554868015445940464688158831093568411416323337888849651385842754186420570853626288819541556728783624965055346222953925789213902664976318415118842494827257561560425784818914594771718859045077661663932825662238714603658140448165792416502022266535626950757370229540506622516452627000320682084064765479965301359585247724197085949930740336899803561469669288400975377478442324520469948884241830715929390738383245310725032970776704673664121460175891437572874001979468847951511948146480250406034363791545815465129112899089486005057875066884312138996695516223900141348718542942406605374488406994786359143123328875201501235994927048594544315191674530860246605639543650225349308938418476823726873620455032584313087576913474081730625497403601224724826716260719474135146248355759757538687448002039667286302614695922130567560870217194877974018539125974737386041149139144104809214041100245793995553505799973514579418965784395861064684837500261027473306758730018102412684163583823959728177236193447116211106642859798845430752309815685754514013493003984438752562535437385955619797129455708949441111526443083724172793464699839734588349108353726463287710569405419061079009825432093929805412733581116001075969048760908948869088250937833446833565074012282430829228549254314618747266972235592326282912799644372825838275764593813481856163488877203443351150420785815312872706008118309266287107379207396345028713839234132761816142810868655564204250370566546144019491976344587242213915876496044822616169227860936237771046307654262400944016331887707453265022661532151524999733159485387614424197742575598888667677720382828526991685527166684633635426822215972680679606319663680941348023726628593642283308529678446921135975950126784936050408536238386292382005194885133138500330429819085128428472564336922785368826146482514990426802070552125298819509475774143471834833164705794857523132600787540573857247312171421141981530227830612839650104014539008964457337223391780700392516631797868821208300340483507640036575375094016611929906935596214552287681326716189381587996845578059436068774125506101348470956769870190915848170555431969764006756613302867000187858073004902307403565582004207267010078166588975059263711553496977273935595656870841846916022567988331883858752630731102428236910321413536452770960363368432568217548674034072605733462623201845357477221891481702661164337628046433057287974694242336694982130632131759205348888450276828039046832047482777250279666818351241925686614799938884495002555091021885382542736507999336394879126325227528671223431942737287901530588224596034367356321051176533715030642075842022867864486086098227483146158574256354728784137881649447879122285161940176050719424534654212544680325021925775385708745779426097513172263968744058154793204095087233165609820755752931211456163477429639204065257482824007491416333431322195466161538057187330605858296881732024413599300230153281624505325724088345971219185780256592497280193790009287315069582122981712458538761284510326420462655418403912905301831462410010144773110690513187081757121515018427155698614303669499730270268663365013473521456837581540517467854103846932554916134734289614998703409260902175421411345510561570530547960588296477859806604538038425957939099945376332375723531074234188352063529878585835652425514992198431896614290497720549025385983045800749271168098194096555761989070048062741040520878514270577283099509361449088194535836969873112660927971631550141894602168014816051512119708502441912580273850621168881117649058263090785004124893330993149340257507281939174075626458502091915556381523114014735866584227657343702814539611842538748482219296425449429017538928943262741180624421135339122715851358597408688103566417423999217702836683402764347273461183858063732783950021234404455642064706994954946648074920056701546970461597033985432972113525240372212203322435099895228602983457998159512391269490047452576981245318271960520976122765035396919275518019728773827770564746212488129212502166568216800186992931521277210095669049375989542331537954870523217064674994570216499948284734696045607616845424085916248114169858037742634741006528215809959321683984679749297895054752986875966490124854721048768599249344466717336187668165209436605889509382535899836764985697428949638104950802311142196063261677085556386163817329027983393900623359207144369589886864031806056464257651597916082931628382161112091462520146060095541276937626251884732993088214297843568348710928500250217505281625993486418467349207544424892001074770675315559615085886229267319903185033663001655998601709200749584971773241145411902827692737715407901237254090950925282976825191799844578036246994189635053481459885313297992232210550375273264267410272438989383749861294928114503847713362194124113279419552497758233837937724910377174355844384218601871306112771209788408964050005863779196521772180443767286254245904876060076807099471345991434273887253220984604129700230336229403924007540182099695004504458094303659831169432976806237607937914977690981380457890499016899274825916044664559988688300307443384169927072124278344880558539148434424948274454009225023782690008529002247416723881818728132619740184787925308762621459255748314306976205072623195462880130869978800178505688100482612628908682165817666138744953922611172565859301495424571420654500192967417947242826233866657020784243193503157261006719383530861228871226550136483431232254361190333307298337483285725914533703998356408553510627034314838490398734974292695008924603050108871906620754710394938200112012673658621496076944794541757879236096425868043057737604988888441247781695049676909493132357419682117743628208262719880943808080077891440958002840330613646914245652516946030877583737290737634332461234252894429407777330539347082689265835948738192617443459095287197176544628671640288140486120494583651196342841934098329002184801617406467525327630593390716300496834331883374156246662774902432839654901610851178198015091088743484320273253037687900432876518509399697034393936136592276592796325589586545780656771415299286237644297972537458689928055065900775233981867917380383703217178371960254168966409544768968703835243285088882643467401900899586054640129362468266651219013609611642460749298003756720472541822953352074541287376110623072721437691532544123658945049822987961886790339993899134614618044406909257940901303549612712607231802456533077497806787369036960631120354266171784242494516174109199303892978591761983259623517304848933188860906780114827582925865412612004212611066856009502789713877874776835034207047185550598601953159981157847176877004368646271549504851462736524637973903268175315023947808956338916162388244411292139830667611403214541146449501904211893448048435948300396362044856197216384184263857187815746702616421740600532325463039493490865926650049536897303859467306983596190409019885783581803055365756355202760493583587346412981167224050921562924598809079488425022451598981512825112632032098406922509994859417888389455394181802242433885190235157195308496048721399099089874296732237948681855595108834787271420160396726927775870830244139742938516606805148225554522205835233636789061413090842416200198770489189997418791003993002777407342337113491810947877912160438258017024221836190152086505103720218039000400925296082506061179129144142585003933996735454912127683646726115366448844596573521493665882368468583469299046580443983466050582710110901088232910679419447918034767843447116941046734325693789093936484277814708420899293635078505086119986310952969951041141741223458715081951439103588691993007990289831910056703457419236563847939798372595222791203449381885168918678920758054126599242345501917825188310767943681805905171594879479555066006294586850253159631884859110037927982267799573321976013783913385346466746171434296836366418010484258840717334938824676714421636924094598241196537015891619433583262049550645393875628367711519336406701566774745532813502645524843571556743464937508180063531894034584249130887521405036161985669841121730234475727394617583519253831273927308945153022760360249462990749381943167876553659976853450081345800520045467455926584604742808651608929220895777354342114559932659186608364766636386353161394901047933297744662219976686425035691387774909764276333656077789661440327955725731356218651390056552224671985016406553138835989073046819787701532921069815374532996628071230963870611328153531535830908363137984762847676609732385906885794475054989429049889266866022293667456643966705189664872734109028232773024309169932262187497048118952180266467273599161268949810719283302800206041458238217627122003135057626402462023081216724151878381881554879022831848374891434271387883279163460305678423746409011528272345821132437685260969966705944269504747322383346602749688862501252579416993006984952412131555577756339305219873472754136722155010201819445098467635923764294863569054040731426931376389614868565499435510253400457141715321883841963666669468007098966695716872026725000715033761619053047284032764532183301319045064113151570453102448031993123947408657418793072144551805605421548742402572354088889061733094139463574552564944901926934002973442047554080304273877012666020352974370072903803474606029660962488872503031101591724397542747941586000742011824718601303155508732744903891500969574644445265971784683629403841081534163127670657475536037129317768110828282016187532063416019861660130544599206117926729993834654681899676262575974932412328173320084186855930565915253245280190671792750919072819238192991301958990459737398292076965178854920710707120444275931392332905961553594792275175046490464104666530442696269053615014957403024403650807886674367897315393487362197152026275365405623323584295024795890697040387838460638970720427275247529212427327070414010395515030020155692097171520058336802328225751649911041083166790883378826176742784818686737931897451611514951241733625187637456359947872046321047076732398837569020300462339256416882840940002657078942078580509677107900007647253616328842188751789376810250989595881834134322399800904525548602911469006990220229768664324941010445438016687449067261715076776281788489491909327528641872806875446185222687036509221729178445318731888548374691008892043169047236480791809582610889079115830869087743143667538974602851529230684331152904334809565367519360661100566469606644783151757716510118735957180454964526429378340251745712546185720946240888005082313749036188230689327216757548175842239054504733643247650633860375913635171561167287908914662341720840681786284985271395601500182604986381555357498682975142527969200642013338223451132622904023920583183582278515801070568119835173087651188173109180067827701030230758724641419105517488658699899153809817403810111022052732581732251309739293093968459807356300676993873452402689141960418328886668799887851656640765644413299285260163198306890561849554016702786105063798456592800981256108530754636720956916677160801119202894455797089216307172163027616730344921940003359465389006605350568059042741050697559270866473350685283127606073079903420244649826709685887679065192618530458835337660028341097335432899889986055695376685456199119880111445467708384766913415008147811740633413399293399730752567656090819656300582049816065962729699549927005874686207386663875162967106066951581108813791275518088875269468549516912282165557130246258937729269541278704818759157636059790532303862768221002067705873789139748485853140230504742108960946501084781910570865761075140467825180248269057935352087585670795770778216792499140874225459760918553979992803094931062457433500908342439529166579100339046222641633209176784755527550434111753350232819086368852377836556330203370836360039764369307003680265464504342700607369795649335418985636702052716181345979205246124261092892866915793179821054987749260206103952885910086019613964210568803958148119482045457602079418338290465644765525076539079453642425384578836077729185339316619258255724031209084147109043624918804903644379258193503460907457526086073556750332001853414979423053263989582956705638553265416746352334412679709555300453440855996497266247332377358266428616153005547936478953726780931316503230737860406173697881331144635846062374117057922944430119004462522362148927132346828686227401115557522666999264400550406857938295708947479399336965556165105208879044192360257922911172568207806599205703842404729753496489261812789001925840860386941757307942219260645168615407088399911176948985025015184691190066655084135973302702193600019707017692559446073103352092731988492507543682533178429205380227022108094588186145464103423805558087951072177488148108783967105031034100254830859196505286514604596139512431889901335341898536250935935761288583643763557073428085721950636097157306898885569774928216967495876173470219589102462759676070867134095848458229162100092700387908402340086451428340998632452712667285225823419978590595261971598935760859499620059486620659866172866761546128077776979019433500241795112597499455311636332622402472309201467724710576620060707870212238358197229884333296904714672704043640570800653501173886886473632007348849590942980536198473388672146728016595298978279556853632467291873865333559995962764998221630061578557426808133720982396766428189508078148204853160806646099231774453659297526715830312744529581290290121503567749854608502864134774801500576704233464625469158046484680531416108780489752193067763100944129835354384513306613350477862542753573453238234333043692807974397993788350635819059506266931459000194358403693589955253809508722035620287648662495800998296672743231891435523055584209723502604269221730859684569376819556229970204410204409099913630653805304380297070493190423646465264595636672078676787446232625851620792875002723204708709065046036993996343369073588440752727703430948965858804557380323198632597321656414429096549749565701283724348065226686842877826951364382445681315541488018401564000126723738748871456697216670334885693180291751659605718861410322166588747239769127544382332624782772473781409031628779409316545024511847364464140322289039124324488778965607931809790116624072475032359955455550041020456701484775912100226959349248274416367139190961861123895113243799271733635502850202729599625222499640630597381208755563656091615684589178076087787443151643458742924526111444362857758604990824620899084198533861611003562438716521127288888370925383151630065349844672358694717740774251487410293001891205031268372796195024871485649134690671863918761851858180411798170770570723566048699442728956866821795923548860609937431147624561491607896838110710194436616428536881651467838147057090858281901559112774845761325827170610640812911689771352552985673651163113171083444404157815947625524251143373163025290183643958841131533260632599123091517904172635697682159322298733810579372735815917416481422080575756910265278850376403251241747454229487823299859603541735340509680553817425882833586150596779758457590829702489252593482204836379680890376337493523418466680421564326777245382648538074182881822300313918651683185730891292696442404652725945420688646407442288633553658168676570242875258510433864460494883905631505744482079427612488380448035706197661244394670369518516076270117285147010070491814232667327039343251601932868268253403484693430648588281122289607511064440340628405058615330804026710692155351406560333203516146077449454645410841547865000449025346115920246050638984422750848716464310098453935163769660365300171519363728945533678662454612935819864178734245588316312243682760407295477822368277533291220741916226963972584026161742689151488687720647013849697084006382394667301029307253967169735255905118861073131286275413343161651020025173428690276104234878608449990548531042402107750142723111514816420431018979246283682433065530627221410950042876600276907563126536986892535370309045402780145856211466364791833512832519022641313197757370926316626933410688609971572589535952361594080153110432208007351458984446330525428300255229203382593024536306279720018186295277925564057440424892253576302048219500331639620543180132548125914621557811371125515187185612522128029369163980193535851712535959049481545723255084814466146932513546006716322997051672486888364305530675532953428445130792742950435946128684758943673325217318262675036352983148717415962407732896896020577801936061249103412768263400816612243962767288073658007683786305737407655494992796990296858699813878815883298821834565304307302364117006641401477137900224567870946776978426184404976898504154731183839041782849659175660646692304405481790440406337883039091927384319002366375976936373725481540372318183913212758591051537523083769088988299553801681411626721167922235799080379168973303114672280803278672465888171631226356480842638592761421482538655435340519712385126093314235169783674289272882072318981095857303112360336830294453020930891289568435540305737365962614501153614976830392050376952930529169119795153959075796154163090252799116498691358893209250198712336698689835925092342059477947226888171823541398561923121662670980741249162967687183002023974739821633658832197042327517054064954482319806796697443450226296305161939128201597748648702359687735370106445072018799257970615374316709086342374731853451173535100752241975632262552454229873305661610339423083820915513992871945123852796616107562253903144228599913567065154155482826152511226972351782559142792608123054430057710813659344394944586562092879700753866714426108680134430740534336845164447701238070233818073221451894594784564556718324586978173510118901580920568068348573638910890592289541711744515133922275527096766857129899661367870136449572346293893554649644015049357061115234213400702592337631815340913917689366475861250852424967782197651820365556936856660528262163651573911191194680414925001872861497676523470860527658635915159906120165835840390132303987235127835276679503585896530250422216854349563654704576214582399316307671677634035329619153222155032079255717404227356494297357027837489507744921930319014134277580589548837440050159349199964245130746342662812332810246059816393808792234923902599327196541681267708609271799966570374228330688527659426036853184406217530940448092923916847606978600502590768136329286064577850806960769211202788003687547171674653524289244671367200980935114668055527688981864220449149652215709703137114642022445779710416501876143542413171461690515632410229291996878795603759653138897286045238454839945281790601737008335253927013516461838325185936500756584502359006329962884335603756470096052366603955814878017257311432011395241167884437399147931193706646049433744719043089846523055101868591565005648359079159027435442970757932137241244860547077234033846539924036084456697587742323190455908109547680866963644596038753885284049335484995419421686770308636870479367251536305373618082913403881296889715540195021656486387983706290022541789663667681295890203705042258887324208476858396767291869997566949512101110793344560274292221127788468470338055472032755206934246762873762363530997974783920085911920002706567345542193084780379513301983274671466786228602731174841279450976319453026372374524275159236147289077397614820031912047509049576498123614076208923112739293085934848822099500073141348566295027112687327632306070906776687797938141965151183727385576208421597800785597065300002697405502599822085017026154609517994777510775013368410013032139667118411815927726493272480653704121020165020718689989861396764530484208848091777162139415772488020867986729504829442718490901632319758824985440570592063843303378900389856271466581064059587871308931725939052286706426651590662300697286726293292185659002033305066413614574912520241384333701387713983320656172725059227833163782685160861985660333373990394659020557000748588081726995984426105562968509094159845853313352593094313478714246734898147455773215089863370412817296129488156023998600380345811002525471291073485462917990313058326075551586727479634077996174201253694340961087459224591459340409378027206691774395018754311399863509873313226819498109804317374502574506267990597482428188279139777528390041115272038745510671892067299888537472759372271175980178894501230901299078069694818630524366672152913056349220011466576961395409255939757752177416142566571546639292675769148639284580848862066366419309583210517759920317289407208990381799338941160502603277256872844504787872101284959934693017450183372037483465950911275164615244210592751728075134934411517822242260638864508662863316663176411429254770280973261285026558438050542618599130329328316914331048987458142773191296633330959831315644841056137528712249468210827338178266229865341440624420902701805100518823824920202889445868086700241073465863205172588482805027841435316517778399988226195811670384324585660472220214650863474829343998495109859146713321527722891385982225985090356658022476263062448347753405655829716485597289184448431730647487235475931665375185972872416691900694751274877097765005433684357523209208838804047501253193811268504311997133445284564551652153300603215175770262194475844120475819758138179196136826859370700952150336899745891061141480349796951735351223229570929754488295715172532003398281500551797811414621905874303326538380463977197839803558687573178242304680355981210438437825065628781605553745703130769072242864892954980361358509198598521310989110564003728265158159631407365925486611606677877274082382739914234653133670822439759421972450414722697877399032636079407345288358807155187479115576551339472491111226947962500784965514748641793530343527795792843492506038120038880053102711095368135671462694071645569146841987998444338884994619565376167009425916811069668770501113170740721943392286587874214829835352469382523598095136846727608081623386764969192898582421139791344957577868151151410178289268848396081701429821344612802581126013468600085871733040821813773127200272414511883761593559824730314833457103630978436430205875350762018209282932503134345951038895119707443089271914751368947047290010402975671430006921408486090394430121309289967552071969716176793343204880195889438851389097435368423740472605008827799947765594266507775672503643040821807017518499113031431628328739371996746371702747527365347642858316000674630961237076774935396973685635949893010979400312747161182715253833689360745021837727624263050256160718345274050276486187473404999327779131422163317813178868520779408657180388665767988682013295463760858578836769313761189031873818698751201750025781839023657499896342499278657047573574653458468342345267667529586533721986153755742086122181049272438437276413802221973643966283649534849103977641487441535855606971577519538331646884188636321633605607141718765420023517156705842095974908915190413632268224128775745983357281130021786343283307349504624830071545678421527886851425657624682423406230785676382690491381527768808097467296154346538287699338932700697575491126626717853212242219455630637336245481408536614355462124877500605917478676732644557809851326210898328129692001147452832604881251339839868318252517869487743718378736914964376457073592789058890009759058851555921678015881174819681438307876933171734182067629242099659711845200400262405255716964491959171870340751859695031748692777776808209056594140426270371587425038366956639698066268414401833602926903204648454311453599969871404988582655834645464722243169964880211492114313591582671356599460908316379463061100620767168044583185163177395078927424449105731118372882992601877464015419337114392336777822990721205707035362902804497808309700605041907652680634082016173454067684608426930408261051987704337647334001084700696597708603924427690735579740606692090426876388987528763031466534160836463053077450193393423530832465003510778809113060586336988788320633710180429195852003655949045461952790521534052632880891094896672410005439123271389275777022739042415138903400058119839135275020020209566955900831435340835493507782254781896462166899267049796184596965641430872026183989688395293699010542540641363845372859704576711783598508255264844659130292040234228027236504145488390780059923359085609376075050622948594150683338211317501788641406188931185444810451408680725652553200942475200435618866078025522047185495547386197731651628160097543224958168024551237571209606118997313811567061635948798968940067801347721324565826157890991402890115941383642731463871247785762781109259784540907193464902646431431608463986835604312715830267252151117941509900381417024244386381586014560690338697743243760240751615455266435688840168057002045917659073113493586299122374470632764056763050149724718749094046625077286323731246570893621015095485398907451754769418376830802871134585988758296605165825289441008637939057598418907385096917889417359884326718263274874749475161124579846809059833905324828619060136708564720714636496555504071202526316274716365503204884055106076359149497467024681391971342250124757198620249111616605749105785647203347663606412921922471207038029883826770052230407860902007139629673031067757584967255962880524375839599558192271490259317189743156364913663844572293832607086486636749148178357242210382714829389959360394712996310708564558679618368548454090502347827936723404983718643235840606604890179269151217085720892745636030664778494373282240382650197609541198154690612625152753031550299331167109008100163975083415348127162386417939999004045817351633983628614337566719771088335830108871089878258823810629610602276429809868216726955569499026226391812685429098364579827960588921107621082739851007427665075308061970707784891072519995176206890936200861689673204186250891819456979009490797867570556173792079702792374357168702443107294126088716374763768433889800444296863679170407943332304220158389576333103101353181013712953711819854631253524443625472500725086271074586881869277628097969966498011446628252532516104856424990632083697768165628510135822110209691112517764445789976892083785067790476875821080160378895278006491390667938350229233877172066268985052043318700219411517266091503700518615138090355093355038465846039167534235045966112452798229594539487631351991028941914940725226248557319632808174888281765222841730639202126989202350841475060362512945331017353923940239168671758978414620454520139398115183889453394003884246827881070560413907576380131211115360750522667329063525497493530537397346024535471676559559265948387882071066930789914351708750303428808016107808393162168149435204729756985357021955712133397411557863176360256057058189976291632828788353463451786649990467830886478217751452681410094125162885685079748520104363598804693823103612210391993764607955389193457939927458227491060361520708862305621604227828107173402094608298199577333887589859024663966053357285569098700218131519065229005170486026957977869954537316491134267969620058145976278600497724068104586312632237041483413603341505646377324655936030713523694427737504833958116929394653104555263601601454909742991287205578112263782722486019853130202759575543083184149288635759284745914719234143171931275901310204153278612288913399635862549498496480088478267040494311528326292019259620771944725188503600597176482853322708216909005535284048585046275125151725152022810572443818738075399843966508432605780586439417170829519772074091987792967989416367978042924918367075890180159195064146960132838042504355770777760426020582260200554125622113816377062124680355705443193394927184983293639870081076968939070409349177869237050513557094554752153593070571675939391447069718346412151978264725853176983696199794643589993371046883013528804911441383122978471661409626931796693329734844232444264172203509116132806123110752200097246084043464416504147392163638118188216125771020924021905514383967194324141616397071999135034118199050886023383423343220964307972801850687471989026226418912257514492357643076081239909405320490479135928969427382880381492795371445708304347503317933544187920211018048197103432236860769787778117955380094806730428037993796664562238076978845761468549571198029331840076370322875071620135586108049419386311991902588356990017221351601116199228186638755052739005325813683110327740660525837027670298851563099746595425971974888319672438919922480764115348358302365540627812285999270209582273672825284934526415965504758237550174929846120807853739617887127839594652792589413216039898265165269828336791477360970389525934141348506242242379306120572834872773098213273777387133563181224117475201328415646983469188173470939939558816552100246117713682517422466197343625835513396108240491362213600908856227970453480675031812312232252552839082659494690137357557816876121609401661817558919431524180707012814394892149053188034056209657704546338063079359337993255533526921613398406415470742462887008612055206112358288567226155721037943615068931770843023293914906861000016414122455763630536930272668297633765445316185461456489632136529123698745145671581707834738094668376608303149185799469800107971772552310683274509046981978910543045403343994265908901487364195951646085581099057931236945285979260715360767596146195594875364791607423373389421198089355044863678440572809383853573927193581568531973815994084497212898534596860461966739556158395578567206911186650449249780017404179494487358759166453765341590258649151617860909286521950364550207071564652660989952160091663110374237828698222628324173877725416750240323814527045316173801322910060220108340676492060800170857802597399583122353602522903155111514822500931582709495593046547228559126509549089079501360119070293081464625245551484818675607845128865087008378433063446065413886105665938149021533455371070661019237734643751170346371448171960838649546895072051571053241267381485879791326831047212047215274126963985117193579392900432043413049390759590370325623365749947362938968497789973524317214113020218212065132046341736904622112156898745871890939744615982553503192599938692717361507438902024290348774444980731765869591546430238835831290427203177555176824629789106696841310839063535702514991760482180231414165962781011717615806929781013066377391705962253865097306366561228369837267258751169147986602041185701243441879596681001796009893542112201976556773261503505822752945404815436197315240144296165410289009273763644136316071126188534981171590243789138443229703343398046848991782029250321014237326270357582046050324730466178962596802381601235552841086067409630671711925290260053883444319495248957067420283795779118190439465194923505845864746605850395100718650039437049742500830044034501082761631166132182298887700670770580154163946478691137283101046882745682729282698949601632848538980427830106180640609453486057252475930863617094955238557088976091092753873413477513251987673242991008503088305978527884653631433983385058140020256127207284553280576474042016977909713273616741097312934003989182533793609762768934072731344800973541088061969599275378210737475711897408105545084563721966086674132310896131171171090146586189779047242182328857342726286039145085667722432434680944490269504093778333301406841222409423655642851270278763848109591124550799045738242146297844568406988374202088317612433559941112529351319147673382293371510194013383703107276513465001125483979162554910659485239859332535181867785105370186426241541536244063115948539157098584447860531414638287819993355046196490258705947966550869321712591701215647367881936063587400096833528910476325134704323417956525666284482820699387473441602886262933646150026204342605052867428991609714109357870085608902811132252282520578915172151109506451784753394022633878190841484907736974301259237683189828519243792140360410119250909484462315072117307454743843998559970306887342772017961970713059972936559105242551834684459656040334677567946227575493181440536278277767042990784569851751360350055515828825661916110462133530296216619269003748586130172659427741867959391675888625714181502834429378417369639894914549906824685606506211762158946951575421694705380081154964633811470504823071278117703923619716475263073067554648323128325484865036713630416411866147491314084626648870322087965166884331182552026026075427941512180166218584687382586676165192072801749941847062634942955582064844279013970468023302374388292255063472238101629522680387431889729581068270570291922531069672354018278897057775226906381129669435955125775637716496261610234471860150252859720673811953414140328386953281173751333201380309675311408528092682796432178614274074810786107365243592986413263841419705981560505697681343431335948685355042405544455189798571368940635804723967916365608977230881044496202470513027167019516608527884062399708618720892454970995619708557720528299563030476434065487207623033794203762509471212467080885690488416290145473135147443874132875392399351102169535992476489950784844968955213111360210385593313720591123841583660466054064219541705654708896794106748180804400919098894739436628137629449868492043846838733030655439642562779961706813477912322432151559738677349647314442037527384360842979026240734562294066498295312504953101722277247245038541761555399115484732976816534378298236783585778068564782825464710931071277420498000606191452063662067912058809771671228585467484775222690859884018666842219216697139938908385842174304883913823248835259652539066150826245259506779594335660602460932029783520238072464265567041011304428527059096666640906926554365171940775630245815748058084325505439999459820699623040135060081945896032964710687323818011088077480927826249967317549909098429280574469112342019488262801963451978373390988343516118849492875092236603928358307559590306006182072602660390273379220899775311294944433590512116891487160259832576895648936408186587315675532742356999557837666550729790712144971203059884057476966410488672511123991129220969321196654872295623054661868676199576936314281844505458980529700606730546136648917568162665641503019084025819868722750794099263731167417675938448772004641649945588643629053950400323132921073978821839030884924208774891312287582173057656660501019547809466025896634048428876844587026987677208745431338630089538808475160313034707650524024233416420219184654918920014403558300919835820144053852067067638126486283964865506711464508045981981369255079478704985360518488028124157150501773216504035501258724312253613999652034599136709514172964512988565411329078889402795191328333190205672460954341291517137948084797506027610976683510999188975855436737619247321033839027887939115871415224724708792064858564485778155019587083184341130142872262717566849013309194656243112201740947269548252772505939356619832711591023896023424426904893627372830131319925602023299630607503761052578914480558871116200442326459909118268448522718149991599079911009921867977512396619060174544844636221090355501788351387312122738630915603088841835854246794382722939070926475353659526236087154440543060759724533650159085976139511541897018279395979452923097721881916508742913555422733841792033190052933556438985987341600036784058238681311672797752312273703413319094034912754146679362444629826419749873520225014130386217114662454167977790288637517413074261729571456706882762383061381403097812869226609505205459071855426921787685651547547579991996481178879771426374010650878483625174309597444669780670192149120172743362608973326760066769404246974249229817444245692611915861710057164082939560082482799883915804410858244703307643198533426415560062449975801489355726156779737424163588943096085556917377603114407054750718247498388527600400404084166398442258763635354554757926269720129533097501140938002300888517597509585548611003870978677701387270909807157643200198302619790355960206932755178846796921169913320214000488087193381894773186382792174711752067460836817749743562708475836797582750920053730181072746936729252914298182789014873534317021143099880476413896159950039039596116251487571829970194156299254699920975414290924523687660595342193821054908443012140726197533282013758709718295184659824658337852889320796963499012503877848986519166869979224194874438094286559146262113139954394646630950742498193281251239317339545184026529021483290075034914178530844196345246775364701852002734394053714962816839464031779074817739961222635687675532717333838825430634145772467290905028600608541919335384274195756376699529803786981309762818427375224064125808310315573561716330006461045636641886367523126573861360092348678990475983751871372723522866328839094965919596400592988213622369928087058182426341502341348586443078125326833039881770298767949789656584379440284714514279300973070048739651369085929943215617777235881246315192940348555919704981689198288369477854812154661513838675115065175946040498284667195619431783119165930106684284903471838575651551706729236935602107658572697342371081059082838062009093364575923525333509741950503380651046169457684205019986921558101365489690048995688884475673944477316988909272138309419822029436399271206568803351417828102231686488112690929823677262134460582800922247256233314497189706462101560790126757741534796126942069118676726008295463494142818999442095920047906951609449922884172389451165707516864161762903434724476416424102258641872900860110516592821113808006222260554944355671806303450438436905762796182351067024568701508690663711599302606515362581502498348166566941043786055386518642944951619411456072730941722287271155581423286574411800164963313652210890671736291378664577801713656968011257089651043353189550378936035224445162314242165638191118726469891642284140715422305728957064436618492229921669834370213172255673684759551583124557326688449909217521607843562877491483369615725513610868737983900736934301575519785627296597180636064890399361736968669666737639492436874129804193904637460844243461997226509158811869979103399256427872231668466683299056348552207648960652363891241880042237322897790476621035197728320013185042939226226998362396588790523509239994080110278594973875683929335838715746216011811800187423363153552622600654401898586956170272055793483847444031305562028026528726555217732501572243654771762340685579881711990584219330158195090284387616011486620888853016031682878256481768964876833231734552528733313266857601568164344830969047268219999623113075212604817542893601305090573036624248775640277992723636508335154178086159080301839990762110171778521803560389397929516023919722559564715882155340008700648869216326432207572961082731647438121047108227509998750081296321824174225184736555432668083415070100201894741603933196816679587412018783248826627916372168339388469180159235820801908185753621811491263991265947587835429989611815584336215036410667942326000732779025582119455095959860009969935012360283529951860708181555603236109059498247692650840384849964116177723702830172601103302466395496849581152507815954556777217279895894381055688642416130094604333087834594759209237526783765950001632619467296460062508857123579458892017449203571288262834984238923145520105369767126682283854772548209710622120092635396046176449226536052651847389574752040688434781953527239778227877046085411174732881070637287948214566053732775652322900688592725726052900604230076001056362363905129598643630878247262444401162407698893552013419868269387899432374306087729776183156750572002555555201179989016072340041971040633090700821160625900684215995523733056204967555649224505220639776848056558237001430660528203618517704998151934382693369782926050269616718983990430614506375826545191916469079056597901559630737985203505910502196428412953154066008354231398591836705197993326490686401302343367541495999407314919319111664207641465578404509061716168801623827747422539794820404463929625523152948761100746623094411009923968663624460214731298097227161122624391791356221956939933412065877346134036062011759545941084814016477193760249049184577715614887884895712573999883682803130345511451392002785899676136327799223817553750766969280454417060881300959779659101457497081319144178062821377203086670358034686485126902631193650994934188019687816009153119499180497302918386160270750993037430570652756630722525875833549990975754530557488124657019279036431296694808689740049242519170127384417091814768383357853216783390574678098562180468142869278601998392096905237848805542833478574402478895838473635751100315411065741093099163920456680744925874400357161511524954280717367845204801789874045581467226889079845598273258739158739518837520960985798895655600136617094555633670678748611559750539595074357327491951046772874372956968860818744768699421739193333229180451009200454701077614749931405122971774091562728764833954083115636634279027765526104736768355841809493363205783159899840891507516887886840724645901043038151563988278125280901292360462241569056574332676848258497383340302973307035421512531806642517246406665462695137934156744827319617596583452640882944880652234045474374799971997812010765109713284152143925502250261540565662084850806623353798446906715216597801371660705945867806221103937302440660914968797195615558937605726964824730049944315971145275889028317016640028171277773906145079292097039896230370567838040842328806013838160014098041588618570997186662774437198134414901327700556252876546932441120778217570159563124926409064324375485596102710629930925775150642278274271875038445937857222257221817277997869964110228432564962909180866078490536261997466669218230999462880565282650327791545010090430891158948254182271482701001715366278371026330876863897444762681556323765367512710187527558328347927300126943994618490139648547743426038216890906037285660315429592452515827647004930257014157163715343091975910593557143234738108844333648849855522735556086771026021796408953451105996304360784118949018971600919714970940323929467865979975207207712113619290233479994239651756149923023360603548567665486198663641863229469305496631388291373051137287258942553798388647062912424116358644479064841530757243469649445531727873661379491003875031655741281345848696467157255918740241950972329820861317511025540072819101617641987357018265193288112448178025396559390336905417182086670231160312066820397448897226106656137813328887263500105789415194431326623462692123141901767130671049158599944350632184312219230640397510100725515676590053714996625567668039347867468113748903091044446069363675409726601286077556104653632702594358460554728728829952276276757389103712266731040945398277873261046872847245468142544021664369397402669563268269047837629298899334979963209480491094079443903168528365279202125635726206741752234505936438729640196196028039100162177266261102082322173067588924271517393794284618653009952888112493710933890534940236637947690541482149482667815049654273910976627919421453506152282628807868970608250716020903511967815980211420310461344713221478562976689472696254701169181789782129840225269848223911009078622846215751945616425180707384774586922785176271964488059436461522287776350428259084825748205683706600290396762422549234836232203596042932769482662975788238266828485304418637144202275083626428684486750603465218093967362295443330434582195671661450289206093150375693822078868196125367249973396372956906394306776897239140979631767183904343986685789285197833215957335511257297295541667377708151504252512260289790922552178596227383512194587361820870795253564701666972386795179249465003632281642252229201563508208319820600471211232806725447279784269470470529185221879979532821554975317429317690890009762664167518161388157110974728792003090553347810194198630836007271628754097249999932116411541948813134383769659007302873224110504669690962530061361558283827091849209354242782692768086226982221421789227257437708722872012351540475668425397859250551723460055588608056065009630116064217104546078382503809350722935088881835355497067229910857197613411538590363695911146697831161391147311579532082413254544398704781500844246880867405620578042600866175320746660238554401903317021929673972516269836306913587786895487431209415201192455650489067779062227050456887137051854326220625650158701072244066879123899856322199796279360267235789607965073860773680546889291430950622795485541182825616552532198425478173067285006271942969117376168933051833528183710632783679126977980984544395819604644847553180499713010020777974862141819327479710633458952172645115446590164919079850996157163894930343179397090268965430798068069419995405882903856734408020708040794493262419015289224636841188969217099631801970255806444847876024542306347304428671249156601452048506551282111299142248453706135717685067743535516908542442081124717282507018195046585479198440524628157613370977319933552446235183654592016038282249364721081775652704749946909832587049568039903577301393505868330257740279448341664881324976048128810363008399136339210304580393882404069270747642636679337177921130292099668295470219621085702323643714109187363134979483176919240419864221283399302768906275719006485294014809767176801017575032486179858101904731111937762925187064650275108225543712933836217424321693054836667688061140300201742460388531837826904644137651870361014789800754269266859572024719936820076297588749319332668381290804774031900022416738610118657114732456203995030318983692874286519231664105608795907138506852409746412664853530325406511768608400018835488123764709308475291739120943478289844091607333554625968908746703366465113367324804735289997611383910404867459521454274251210833952048390360514744351714559986780227165892019838763786335863375704490649655435357703602751111683114057045294807573529499816923975177266042416851751994191975270403215672746228711361227614427074008969913876448796420991671646208784068908052916435513466347403462840900611271138509186373761670761813325571006214875788827955922010134757891864601984663092670700739614020175966299974237480435184197788803127271030303551234490949685555298014874449651216222658303313173092417370366034221960473142291596250762052555743821166078583538288558265334232878706028578416162331191093021663545448235408424447278389749285634356933314082961946482450666447166160728330474713209245022943219546386145434472985756894230846856355655402198411929794241681970942229912307709088694257701737373036907194842810805998433408769278715664248180938492019843547440986870537429740924161572379928656079805284399830833587472789059593516430520397553623161531658942552937305644655882216741203865288641601023031049049191891526061186797672747156588161543776457907132702626609713220147113882977831503157266182728818388001477298124781818681835761997821198939848309763893835299060165885512760858748317556272815576179763106398335639524929718438323637833339928050914917192445515739963480539257880717504653855740951094555302635589819523303333323348918004566505727471143934256510699547485669776721392549413989409562439292085968977415868869625374032429681329969958074244257584041722919746128352840804207062806785393953304193628444816680790762227717693860025214319087955200951080421223348597811056685047926746231577352071354738434396469119592300394556242414973992925088059250292199184961273141258827569117657344531485874731059210723193531338351646896392664438070794750506408404495179645548190233435194582992156227402012333565560673944327606826071344870687416152886539094460856647838298601879687029253124764349337585910241174178920599718506671294762734346143491073802397808937966492762139337257244209765832335115787065498930091040672861727283502321463875344087137862293281331618492344092018413010818953601440165986480921950815388125275462772395231996766223035031242864678651436530264043359362599824654931752021792890254509115696053394604283424895164941736667503497625087435923393051180441533029683452695418384351815580778257127757145871855172644925322412851671206008868912284933270783505200403362738253136453974569694162626630479374192106742276485444133239884984056710415664061782441965125871660207331913792521859590894160296411532909907013038532130270039141817555748439694737251698523593765518195378297706389479111398882312386096989874613639757750396141536178924372699221668517217733378082928273190077223326212951402494104528326690036150912492008643989382749701484242851590141039715211438392688001607665277442220943761609421485320027371186437611988317297700134310016599337864643307257107861890915543057252017665418085895315075905996843015699600415804573163767186602290140659250565463942731788597436174783686697203894905677218746238808092628030365741480443799680632056912217081845034203839177140092241124861496022226925339314133278123502797782573604946155230208226486160354668597622181065614912174211452168836285644213394720750229017441191630502375266776957410497605621118275910137642703922119842254521805082502995512310283217556254999861537024697084729536948183774158261735798121822197624136532080466960671882307746654880007663447789548173990293566895568536393291676304457821513481639708883645335816321425800871006257298976634083452504636490526208846415013089318251811451453279645837124308612061646109708957380452867601860326230553609232837088109465180210363923911076449924376280256258633218219785975837572121616264399103190976342535874454983410149810150365455948859883372605338687551237178553670326324488707605650472888340293756831776830782056316217117544284795628915555916546896401308175569906638323562721832958346278126921090556157645739477149664499815053418026735816103156575379874047752643751062258608769528433050183646162550787510387883652118746801983419435843572695407681906102745706109071700586908073154056541510010244780548677655212855499835868640556345087656552082465124893115552122303492872871486499007356707756284628237084966214362069270632651157062461276757067850860456361238405020276944365142275273723684479894832220539184149303256955245083956074095436999623205136026606021734507711798012956669732056135550981087431502244554828495073679116347488715106916413037085918791773638778461806220685510526395287684602862458350192147465629220189998355371209202327633242144330466598244496867880526286905672804288500410003632154201171577374404402195449155461158269060234044550281362502988676654203620268984262334108689641931557528760310644154179545507409547864141321224153359096419767553739548590766927412058685602375220765266418049088378673840388032792501925158641230084386097810022556535207138983739242969997394146267665777609033540048753656614132880321165815359747628795269710883883329681709865663640853856595003078357223324886824764520839741513671296322410841454893401676062652532057495431406573629681861780516227840607201271733788340146058242948436600916061258414991841715285649540656871484999092290910490068619298843867191390566266491478093964090100749302204496568218998979844908537158501985039751361265351805360651358694277800212814881472898012229066090697285793201370736039008155785082636754615185455029801110609635164417873943444211579173875423819098869468802125074027104120223354450525996993462376228021557186103393779378230110233392905910021117871454009879828185720332953167051131950421137742729980791706309232913847051383375222193064545757701589608238228966418592703220251127665059017594866515470861604246071922779630456556279480361135635276252772673841228648839844934899652724086862708270648074804314808591078562270653862135672761388308279692295202765137138535840914533783583998365219343577621542536240253989918358273613859001142822075697333005695103048824119328326897287546995237251274314715860818776723765227967677164153472013340700763134200038722356775653178475123534047182207988047971012971199570801763154701402939638206744793692329595385633572824332341958259891929261342591720017299574767809514419490238669778461056080758898246641674824288517196681312655273990148651915907877497385967179087581220071311146801634044871451422285390113622184220588900818498481957781665662161736950402699357079861457718356297288254194819351736964931765779184994796570072864901739741609708624944978347569094077577152041822559935298745695430944432605611186183603439857799970426190350264163812775576456803373065290457361903772607008383713326535529987674502746503674987298159995923992135959636810490061788386075392104070704034667093087460690656576588702148011873390159623272476586642106382244898311092831044568071503461643412260971407123146235355257255081381866884094382967242671626216347645501262708127774755119623281249502573763377256170430999503060116853063640107022370750844730566846263971002549381575335863783898357988479670161934280410723512181649047174583199576859347313385176795392383911765447933109893432001341866122413708154750550593716531947141238363874563941623554093232610993911656105329976698596585163651053900758960673905687832920788718523070460971095264855396938535025091466378034825805438520938480763246385863702458640143742231085735674362600273293840699814027258318317335900542621586721499826433796727658840768703096250790996909676700256454993190244441009574152155272474572068511963539882861143686150687555186287281209528438142570460390400599201081087449781034381317316519287579213927556046415265447077291960466934056897309938605746137392344361411150415423534220346023364217100761786034264641024648111732859120965935575899482125046388457024151585155306247923227530258002915504729123483524594631997807622978703149809523811567492188683670284242943393564566158464609181039616907933247505272476614546324554623699099831916863339686011444550612419171434642996966699118614520850958123533684103368574551946042971131569106267913117280947436227153289647430861444296921242113574323018808312826018855942189900142111039130186981977158765803728297319017185962645703810258939098235815162956329014327369603869734747049907732721169519350865420612492858009094395037413919563748640320405904889606190412642627187842662066571980886195722226135691604954337816997399777758587051663822162135342420043854406565692203242789005231787254323410960902915609118292195644907928669065138183044709115151217800843615150817508096835359275707759798067106053853544338630105634206559171665465759035950074525510837755749536295778735007389541091766868846870642011521486779926332638405514891623797701704444723167256867468624947415681215637876477365050490650663956512144017238661890353194283763190883696828292742225828626066787935886650687538844314644416867471692190280802189226809578948778143309691973049579884266119079024462875011031509609462046236581779836993926783441294100997743113298220448930800957179097316996893355345362141973520020892310151665650033091914718573055009489954606829697358243684038059677545147141641112560611715072838198088686024435038897490871030892598420661137433301380369149548677148898309152997560622800829524166581221377414677138211703168400410608853753001264223073566416190444636676527763770189946439370331318914922922879595341917829131769642315465725030163824555652243083880699631464196176529263487799949422063407553044677074100257038250056875119424763171456682011056595712400057105967904453841766086663791334332522667164623487602871157133535971329469747687840414024156327289553218276358622753968251334132293517319133871862633987822594269455325295764537628921873751248480952472223020185409826997827659287459200699405008465502352384510791724551457254329302574666672486517982803586491648034983486788274285529088094309303683200045120408201472925542335798764376675519898657165343299303529776265744237220387180092279201759464051733765551771162464433992091131700907225508020872777486016417546302778751208934388279258233668985340991145532157319510672652603956264803422366849195253135016627084041142440624453980500414485533632317678692192242768277748603703289033824876896664887066545569236136284699584946902162667862410989147301460016631107428009809303529354167484385069148573246946186030077176016844365285144781009882713287831271793046317008059413078443767009705263438932159618077464537927962931367495827797641074661813913099643056502319391903976570043470425830902972275964689850493723496022054575768883887410232489699238043924565935790715431279101433987371740034091744698190533387140732231545686900098290153412763154454301946458295021974016935859490855943509654966215342668369168537703382997961743080196888058785860026150608752436341004725756755756393987044975640769187900793728249685724092243360977545068216494214676960875067117207271436927385871888029107647196184723729357911172001580143200152994018893342430441369424907106882225164954804390585799256329928686365920527438399425154025036289835026189505159728716730283290352753562915443759450301534215078243436258135934135375032522166362076873614996767435919820841623721804140178321618698660675163109722201522531184082651597066681805777946290604611083792768269497368452621388261309515662135088682126571638136260663794865824294756352843543111062119942807129852843122584760171909128744480742971953031353940327152569608828065805095093100276208687729479634460803678975540926863483674535312102478823164228678705605023791935116282813582655277462633849157864860019022573746002008464148366732577959959885714899909836901024138424893444188008869585091798975106573733547113846907067771718924333731577162296194405608996555620769691769296917552232282049657823302388588194453439589660547416161081206782067897347439234809646037230717926202253891212334216023160927537010439049486614307024272377961691779575378194316367143890747358020269350535330744322633189655968989445681206285763117128367697222489807903520751214698945696173641093191732337497863210403003953653245317336330778752415060767376347670524681492132183670123766054774242454547921234508563403688625533819665145888288245901141083814337421142004773734214803722293837724282569382316894244323738473649910992243685056376139855215351273832322793973700708868538093264278737822770647378958249690466200310809013493527895794208765077012207281335717781812865723307362714302293981878030881013131243136658881682022294484810479171818352255140859005148359434501356988709638937975277761013046751378185003387283491480166412131549359474832818142878980472233434393768169752785882313942382170484607591281223292926168944151703457598551717489258691317188442673387492154659974203416892064801411964578498593118810778775556731737936864665400412704229475028770019018039082259621277876607039070837312683049169960393927321694557112149947605203354205909183935323622204454363206628648832438693909461900993335633626401003544412641896899061043179649272438510566896318463886426248451895844550885854561919926647044724122752697962038406456857641937158022799277197798940017083928408752179309445199080635890092845652953977506002136730514116107683829532627271149244132532256704997153477528812798131982349445173766563050416105591896857632914535325683719168994200280683180564269323861780492957242384829902140199841275964544508251456346469973666559458472124063534519444478061280891776288660314757358196409333627385234960798664558641783092399907804126096253293585706661703595451543708022794251395067219779116490034909648487508948599932402134138026593942014365394182776946417485101567314311384517579088004468072484087790139123903995619025743288434699207680039119815337193275144181282454647818330572768331891802200426226617103617855444408315233677909375500681415477294610856642201907792270423772699951060419496943028273330213327155468420481086244083895558760685209456248359901102003332289605220178924550742280801748591902108892986519161705892536717900306336909962065169105800925311858207249190407055785711036692670827179137345633643129018586771995776319597386408366426014519083610856124056185942438072702966625019130082976814346274230086081736421289226312600419277346532950015736332308002807760390590855741498706024269963761757814945580947019101530871322798968352964204593440922019742561119493369386480849604359411289822868133451887025919104710187810326519942497486930165817647265013787005447768811941263120813181660460676174001243763288097381543715939818538968664605738193187386661740089087668905095969891448597494599017130919209988262435840543515700500071671220743457684519778064108508483703711841139615444177539016159099196605201144893788912445689702364114121429878745568682142373277289932130559191195877069976853575221542950192231498100702304020080545853483619853330520873601937627316672581434163147555632675074115998451716459143612184817368732832167412471762550984389732116929840806936460949081076575124827608562829744797498946269074443858899494644185132635407505187880112198642598315797063902493873564268548831250934453048933163893058040797274639443280791054601625077146445021530995288957568663117712525558872162849744208611742102615852320146906532417540612725016978602310010652478838124190334983934337426723288704476797717863463512427608246656603097046363702301358024579879141010123326414517702062189028871581983802094812216663288537013684191844709045060490178030063566212266170928591181609673379007395658243767246882836417269722957499299731813080555504875594657540333403940423502716081277030601445044710873322776140764222343746849293655291503042577389136214386623186540850796563567590676855437086101447426184339520548162331237607143313380396322296661641309874126256318079487179473248959478864592746274294142399827702184127310723418990413525297591353206184374500711567953598879734749109470913815621551414283268858446345751409353888188543041417972071833214255569878597476872422694743528605054337048364100191543247887256345549895553450034800774343086450617670621362327063369389008341478084773174126071997751831612986613763078189055780820994801189688566332227962806263904271217560475338611729841924144520796049511979812950434969071617056337878155505300893386739105174638783943441105007202974361949714299709980381723808658325639076706044442506979542874325891073988782084983746832344732697163988902953458903376298473322473072603966360224874064997714569448596591442360791367507081862472164492046856136834822876476536324574111788082655681619097962518487198900181545561265099994849844184620145697941936203644552944603340031264315170413528438810749421686181891133937461051289029303633406724079428001843431720204644795424602165832112604699768455665335846732106509713335166481222810199583367422760916251971955949514522279589317636469009123257178451330180686435903641548148119787286748017535654773034066148606520055074226934347325065213527164784619013237759224726690067431533026715435854693843837108321820079361570064201597283963611092474324351753809576837858610457151826171963791065295604125958354686543087399159996625490340874654686141820777492965423507803116230919384932734965383439073949692054324788971883417397964200997062222894234008013722993498305993662515651661378194832377465092902826072638362153999267115831190325110346621013385315823337034170838669811377745045204104335930067593874588229094426554510730095222977461000370693303312631308371757622392749724468778124997106201976571141312544955201932880093037047313410362196222681864212466305459510641833885791150069249733949060956290794117394930223458728164601282523784125217383270209121675633314206825480785779400131805653567282357320003963607669869964493476656338227298406745143731744476543471495549968144968153343647888405141641545084952705969055788258554154158673177131474663671119850352360169196706659767959423683890278635415634339690286356346829782664971655749707977923390842361976003027176085017930800752871759488016930484158232935169578352136030917361095197876276656866653547922698323739428664917733629140453995253716512072338030371008779508864578041086384498340640383603571870904981773782129713733008806696948174633361914360417562786229314245510016530932454240151071836467326268461654152640795097122182032668974945539005544380838838996391185553123381991561388747186308392083515421012004490316964145161175112213128282533393981169814210275101628249138599999946192025846104497432809585639465112452019937900112612230519944258385945374632821124721620074519418471017689295973707239136569163598130379733330722874234897662259839683891239439219613225195637478961083299385606793959524542528022164018996200613612730934807759273609188166128953651771776169845355000497533433781570256318182155028027278914592178621220186257878768279617103690072682902111224158514935330233645098743540061652383550604223864198054341889077104252034625771097911419817376467400418745909679722667659095404292436267159066217546750654302766721354860782838471807794005859937750330486826982580446953489241886030689251264187153130232715782874365631654910870964186226293905395068839776835101203919588309398894252985449203976337288942323824121494293258241121437238812681306578152929343950343439935048775448156848786663336226712562507397266289508776610505364092098387900895103556377985901849295644282058109610160293815298604277004547139524994679793759284965736877916648694510495902460665729337504357668844305111260814797822262915382442029754197624941327401709622871392610292380306381693514218952154603991380104158794451390164980878163398877388553540069697225546098844534426642059982208729156789356475335997689185761851018279758018595650226029390345506067464697053465737791844536377145471072214917059633924353422932872976725856392153350608621394514938605117754621310722323437694025451686823534025887082835512215735910874484605342657574272751332876359925198343138576364129917488566300349518649220442843919526253359257484357951981120414190690969355420038274774955593703334313608549116725373650824312363214893229016541114504069351260427475460324664374221645415003551911622644764149257217453589915404330034543058205027333322900414616296551707331435944100234776346385753811978677984272351492600417467537266766911020083618627562505773302222160223649563555569234919875775506756896637161906025369749297586118201627485565250493611058264810947745293514991846667252220934796461377916217738870022721240153831019631564422667078260438099078263845378152689473744608034326785243281193108328370019858135075010131579336692624843233369615850743483753327362575998125675616017936835147476060726169423000313272694727750213373666090122671373635145364490533819585722910399239748928792888082963906543602767407981185220873414850450660344409419736119698976974296943230417694566402298176340259769896436152815239090009172715469215988129682054960368351720944192927755252097252557076235410300077431035533433820072003452426906563765472876740397149490258124108217494503392538444871607369657823809943144396113132470419433981607248154054086162589532351811741584655860373914030260494664367122094916502706786666541358037596755887609292771598116151041140165862983682653904955507140306211258411166343541441751679939208462547140002658834406759499542315950833637711337580657737327264772862227356038873248738051556210848063981878113302689931809667613289604961249333975767077917533206035129178091162714630688613052496941637133697781618557178868282169959151544944852283222797356944643558385065752766646512566555976291770049781694413694496335200076695793639363765144354729400814490574337981751921898972382298487939770457305183092329582681322370586883459788000707897297225079988329409966330836797204324578198008189276982218919315698585003236425309982112228194951133921012946222988560091967980140484288546260246865798913366614960981495401925480887580728338288681394825173656884408504618891261050716287173375346688655413052935196676124387229988222638816250825599172682591981138432645506289371122621379685856720240358293340390448609976306378828769908023417286630918162515080012513617151697606891027022014652789353984595368428228825603021767850898818810427309590705017225388683302244573295953708695552749920931281346862889067045866083732282517563597971969315585750020319033897667156217771857372387719612219067095632238821683457886984908952917911778598465296037648009153237822362261376143427704552154364322149505378227014154729626976898465686522694168945420146132898034157185428565529487256848869645231470413404097227822018721253202665979613065417831276721808650458608298796033652819648815396574008535153085999680661347012766938420615242564324056295606883201131659455859179758942748221425561789475754240918910984582446246485710804308384439311711445752197903907441651172521503707830900322032542534298531131734902445162030887552616316193713792139988089251072017054154494861607855547103958880257022296628826817479427555974181479536669351075091646203601001607054327730151341059523659694202868214017139259216978187753521953761759618918146907577503350859183850644575669410004752808045054514135910663150534336999120795648508713840430268436947070805113854233272287077258635529938431730647058343866734765044437645706912735724642466781385807414192548197178639615989176390042412940619034660725483667492784618940795437007077428434269863690689633148605196938507803901329166927059038107578854778602784353679247460677741522085463860686993547782500542642924063462905010476519701564913343036091760623119773638756998367390539367529548490444964431311625662624550692149166458885047064100402464883009077043670784127392864926065669483156092496624439142911621869005370091861293197774827262904899403379027817050775299949212303920134792572106417690323865421552617588917495925624657866541962282525914011184339236042014602051848831480333518544157112422889792111828950668015312832324737401709675878252275622292271712584310759966811545506674650064968794741631598941916201536820026017497938470926287704901474753889618010130337111164393188953099380434518951266342067042175435910314010726986975329267733478686940885785441489180650491646844152267119879154201454532892996580620147189639836790519706314530904760428347836111156561620076615969642431032928236689587612543475798084158029080765212996667679688915543841988307732452293215680413760204000918307576348363488373791357591148423825440447630871945800462652725859771842791448327748796162805916284046882826401561871056935155134760295868608195948683507667071682644194107253612935601311005682364892784255750277154332886372721452829296736551834109107504307226363898614142483874043032843785387918345230792549143963112341424871950851739223938473605967563672731861653180525556198515857504708304841424615582605107838271677180896617422785438938534413394892068796524100000844976640962691454347817337478823633676234192682343984487839405799070108850936627858079624921830551932889669393343048519337936371563338792288216028838834884349473114187160691914869280509572935969803794980445077171777904095892391129543658085282271422202184178745160484497448959513051827303109161814245857928812150454411520064517237095475198276710071167610166201324918941326506545787058476151196916598977767849915837161469967378178344760405420081220356484141701172837427513110634104264525999268009605211430724781911657625609296318380530147325243776266164511841679458847914434582829133705970511066173470509916808031649478116922560665766293581880078425864459706244317642806046740101664613654396574737072859560154683678871338766740877779310040573592813758719343448079970443436598716519310052557699020976306222007284314498229646214040522343466862102983415163736361344325908605156160993538647224396020084182860812156305687592880243741384973023121486169243207138100167368770066951467775343055818864985193111545252158247539223799282216058708327659933990078329660064521628448933515693550492517047836513163973357551978048763326898318777031455921188746671259818178178268193854494583123260885240180127038025535252051476658787663550274095091461465133530977049141927939774484220049884443384480694687344086705357383537397318019845512547155887776397333578403493753894858817332727340996791390249323437542524779484515617945582672011338708007970662939806637163612265827399045606639798520664526710304943404489799667414643557544416165310304916436281523702484524661848284066013225741958211567973969214466066489858216474905732149815787492312630139332724320892186064048984098005553603164426385114146691476880323266706723792207874385083802365927463218903637779055492663086096494762455335738848734051625012458205786645017833841523705982590096107184614743747867763453883081843659579971268000999502676804029930707183634099839163417825322591931756392994567223061255221600674090459734327382944309195025918824778495310977664493021959214412577384268595090193192654868283235422261502848014588536603503217090913435955530131648103586387976450225313007357475478434754232491116123190498444692518474284241781901300227723271829577245982769285315118189962373506227566392723263872706023871839118510830244218630144553447019709111546054512766108860781849520417748562360928750541681327325056653013874173621111436784925678962015265510560436420143644589132562043996635305848515698973900295916952942372073368316646102228816757300563039706788920370256171837069532851323041807524094950648033760856300252518019188948645658110624041604589472676344186973274459568858673447426849467788037878928772350874533350303154491105877369667436165012740988358057634252492700028877454128987013706999534407271945083166161483670618763632811400790706425798551630514330200981676911048635538335056483343796032258206078163496590138839734651081249953933402896872035112377324126096685163339824825710799006065997032170056219817127651028877926338443091824705353307026298363201242392370341592000942225656496145242317814470924874885970102694157229829493462324919825954637694617164595305945330734523556520472831574120154611682116326926304521324200691260350876459583804821992042732588807761377243629971914141611427402149478438695237614370221664211418476667979840860023269041743445986339074197948571388298843597362608927356314337168784393078510609065744662696100856379835931489704504960844228157701295612570879209145122056426118112374895521022542270055483952310314423428812438194741652412489098105036202898153404305984996115573707548211830030681470221880576528298700535573704395376664087059225045931192844202130428745045884153965313555096234499774412669490579819481761967453906900517543239052299561481948069520667332347349664915250129456728660241019527842136729530502206160377566922053599653310550073194410049609446164948579088431553606407095515115665029460847589539559072914093845385202215058349873963774276406141235702391062714070261686923092968125580745505440304416281985331982192979334923483866923544618648483723839922482288724877663807886965827206461008926148567291309325544601754622307612358734368474956521834029286112259573567421778157689318705554914218501896779887809845102293895525933208850719271645326562555936707984300945996688181334932280789525688918518029986634369833928763419976662236036977891553809156508737324439404031052349525897352433070909507318190669361169164647072545339758503683620040608494358204305372899397312101740224083756393107968833137257934462421023569652497225108185512950332416428234607763797952340592112076281303473771786403684340306611933699114322917010090712345765058591850561659989379955502577610473044977740603765879707178780565090586903208324881821550444215968933163776019594328042058546631628156792425880491730405178589244187626534782237729925506360367581168506135381616023667807554659210150542468345014119551602870794497805642498833352961873689357400461674294945886343763216763321702146967283620223232200876371114129947530762962734100255722178546407568912220570773880838946875286762774111928138237981625652990758104492113525664979165958887883456777342427191720404375595279375921613415209982104086072773263070806843115792775110224015132403250678118537996852429710989146263887512561656966471431234932933945551164495463418805434730403066420835931605605074631935847610416044307306663434804830959047266342630231130820374995717554192482480274548706775522218298590564154255435224262835876175391456713876437652693631019167249681598568401090766078439509305046498134159118862402199398085576974777870508343360736323072625277422798097699093704001495947144767505344274156226537153421198341108850952333754169853331339902314794038286886041876116538478398219476419123160363061038371866176149156699727481750257796087495087406802264524980319747008442811524541343268494730896239578097105447060816776303303170758584853632394304450546118075447319706893232424418976412652991958408399967484863645386963662244681900882169465631446556075879434097064376017010179755819447025925470270048158922647292537526505714616604727469326414534155024341903176512159891235645070181354607339192719906324004343539782575248074208782537009282905867446329725276265299677084909308075825550071086778890712698446080692384742263985470012997367970916234784228851201129477409179696566869326855062468326174460326978953395057215449841352770908092706390125434848137043894040717982574837939629371654909504625899602889895574911662739495405978363605315463202223550061680611115955091192778648197962471416571698293402775077022951223714738963015778026343520626611029360298042643677836256044801108368689797194591785772677532390593637342805417282796079378081852251294469981637117371727543488274936376212429518801157375256877225508173086183642019582144864160071971230513239553064729895879480966281443147824774700536512775077405833009491296762772653193849585542606203901226893123098489743978284020976909232138161355979635096597981827577507275675056346057499131927741503029295247743843112155273814404018377810654436250030676799351299294761756369544411732149610429146904451427853930080879286632344336161008404169723650427317911365835727664988889501137851029972891719949684494572527764619166084815705220437691141381342082578144951759312696427645471499818301518217869674007479716164646209376956056300318155578911296832941178535769591959702579487632975134887619857921516969059647403960192196774363768454057045605992909079788633851516673272456451897518262026585381092661038089167237499549241230389989076091273977355346184494891658686383565106619592668495807249817439844119690660733560333387820795704098444196859083643765903550428395858229198592184978870669084491569535311169608639291979720193277959512373792926403414681199778451957423898412993470991157512510210292468112728138959754905616163554725851939405107674724608650660954271798481528126357988860022158401833741078244874567088682143246524057149674012018209424275708914566582777366914740300731513873244508814962639363800802112242020053616329182042988311008159800268437669966295233329295992243201028150032710568559455247174416715158142815010297163479635431455645279604083919398833467037615349275996626285535756775178981322999922905345265150777125528083204278838321367444146681945226908354895464912108546415463481906091850966243184709579038135379010241638295973102830058185342834893063545281798209964232108496249250635202320569356179250967513288765636479320169156285360680271190724788347506428520183171796573359580154499850448617975154493316386323477216607656937280285457781159400897621048324601296703796924834556730046035823729456702760758612245935651162322364274899803996462834954297476017993969337096830940290671075349501285782784331000833928047891638213707680149199995726007050903591084064872921325170446258357233864470659871381948996089937815772898403103717175664171646210188711567821428566604846495842636804266960555717526490918993290353937946739906716889118938618563017084817502778077539610838071731235921597097037911511839067454972361613261050729916157868927319674194651762798844333366365523090466670668896981774782011102292397573747721435819711699695103857018898752791902470515991284806570394680808446410108699454889270384870199399237327365580366791747595585246781433307246080175872464600110804105750135953961541455399368886425103971024805773005129104207585531140203068854463328754133914381640909580624622552213216744410195985690392540351547325569949588630918444754893251805732887557950613595670239629940732290051182251598625850746179318514965745040690841072717873113753365372739482488402428484455938137174519757462757984084492576848034597577278468188777142729856994571920520146301570943187501320427706753154271487790839800054029862535961697525106067432912350847664639433417940817517589829070091028225860494644618499728050373037893089774420885166911168986503287299699110054533489629583781867722377121717649277279741146099643310239761481174402504758286202902390103921032344695701733395308023679874456054325873198350408707630544568750903771496484812444848052160567409638559208569545059244547391262975784783613412197838304177952091691754275104323455974080759732684879154191972781671950949925015109121195391800182584007436607547836776929852075337482007179543619244293683318553522585308119044678618779565583014954408882395486579791433759691443170770734756035591704359361181070021685083395077740677161162780066907072534900144117757297016029834697320155294593785403522765747679908432541853081255217235900741732491585918427181262435763561284377837488800808522268808471612008051518645722955793027757681426797463970824622824163987013589913028837409060408016477074078012808876733425272437613551691118609196969473137025734991115754877696251530888877512285105574235760033843851227456808030473272120587080097199696515859703483152156531183236215544806225743793143660469619883034245598421499878660945001997439121837024462967899613958842077780408604763146346836501637239423621366208172790118025910621527835791761038686816904452694948398935243866141731572374426576291765919253900729127494030381414690391396661933941849827007621881588434151324941421360352441561901040721424835880115487203243408817123320813577986497509203494123018382543278625541479123592286505284474956149781095152359706474410725691222701162740310813672491617504659655195387057652449714474188764713282765771539844119019289858573255981032784415200653503694941933456742208892504963111443762404355018779746228558688106370223605298432953619462272871576465030689246264336930726587586459255301357345267660243585664599089742538322222999465937851585218450815855665616770519979012144703215193659502040863230297800925446759311505520023813786764060772214791101212962324671695779964980686536633684949429889330626961804277017617945492830423650276186641554729715577842562974688792001588120528298949783324599072796890341561771298540348907936188335072237180816053748477044353921666740755051806570264470520586166858757367296527105516616595980919884870727352360239145530999235209627324962139346054956614430979211582078474180636181096732830842846458722732464262283234025322926237928059876563229715773214743603073013051638583944335526987332504153679920791492851269950150900657767439381527154124769627984489311455096501951226506833966470387636512642873215452934738523476808199580896352806795236441679495985228715871220057892420238462594066603529333188913696115423110688831176611873524340247513482271001304110667082502233263679457078623362343019521095493234211674007568552473639219773112095872507110219694470221237883111377326075824852320666506596217580618781142836113925951174538399642796479443675004364849193042695839907785183625518901266981284405582044639874306378549823443207427485597965549238463510112511510059099594877292333535461526881966171571029426152410413043191152412368953496735795252938122079028122976874307962984749076828528560732761486612493823968254413689768366823123257295191097543952636326211974925065545829593384984584555028476856215174791840144722803978161193410485421660842326518559686722532048523070815500675874429842900730984418378188659423597875829758051016980507595342662993535337390502435793844213810776099727172326992770351496962326351698295528114421649698528645786117047637473113001678177451296756546883202551095531061525566906619655518832797014284020906391340822842676585698691087029951563500596581430178481108954039913571876766827929063549626609173188473015066944431483900012729631788999924737120481590514007656295247015883994258009541253421339928248555784444983680496348149806336658424592285128371769145364923494048030997217474284427401132234755469029937167934217040519303796000263547690459161118954966189639915901569534687617846631346198540021729567864564614201134458262964291688470371871587060824418968485637144286988766622551232014017615812751437524994258579302642271145353353458117884603024186294400539092175413856270215378769077044818512225404598339156303478266468498742543309079870416481378767260905638730494752716142160128393732088340282400266398014735794828142658132576183872252147923735474964915771147259833082045174786502797946759740150395480500229565188187889469711134019354042487177031799385881773557777722189087877687212781260793016251674648981216537211886515306539296242346518514620605747793670177036345668491790974021232411792921730010895687947764006902169365855926150014086215704097177852728118554479827614619861324953097664532594080333398776928088425294583180978602818580601723082064479037926490232033979198184093158439728372415163160310518318923219273795806063293980666064950569550536790266488915575012400515498123964946569317375267564939565721725885782669480610825892902491085529007049614733997611326770513344478545483243113846270897030099193319627430894515700572801192831083024513528165831580423798172596362358017636966030413831816582331229191191488231891523798504766882063020238366868114229622698479479228763955198985064526782148892197060120662674023482577045690286536822761653541031667068877608319493835997812154806587068675108027541985409009887955801147454858428762246576638678903147621216229028214242353181691689064425217881426072935078211035352900736910471083537307586853132421615690028946376571223867976352983769860916383722859604156801947866582136377991501362194896698540701135750134478831838394029594671431529854499497201428380196653876909660757830354479972180101765238263027313723823000338655156299935444969095580640746573076119894723016061104305042898125201775272249770336075678386727412099311419884863658228663897487424325673590799256305482142939181802579071700602287949054565150519831950432211002967683112568641957214599283450913668341276123727863586722707246810624717055963437992846963757833185045779025391903120156997663743419332651666919460680514065925585515478287991800840899300648445460827152344065286100793590054756473054924512578239065360112624799444101400036322883954155561033880784217200315326800254606222565106912083276611481579787670866406700861677672514211176044266342914452428267562236442422648763178690506457493193674926038908007000045379912825259761238281197577243617581817491098634536161133727231410881749672998373566145394614545672575142772336047902611719908472802945087974625685053082761176726872391020941988882931418328892557830774996365639590082559187100702762149726747405140103634256058127010912225907888008492005865057948111918654922187926453199165043238225232754116221825121630441646164076626497437262612375116137574906385832000353027043120541016640935906985938977457137479286541304028813880537781068297819157553923999141431749282626126756013344116031229625706056255018722115449381517766839788872154045228850633336809453086896454783150182518608440195025815627825468320019551842121239490837112910056968689083317002061409512054921500255589749539605914122131908773581403807401923701064327903439912090777156543886662147972170157586334461576456482704537856702681381677680184210707267554142230609952949303257565032465942655869551846864543989838330467300650255175527146440904230435581829763691441997597430005034655335280036799849770437818955990051007178695126074427437395577266590599285658177551313667945538158867175564737228104470697527752186839085338969634545735961934691438925985316926113223392336706367298571224567012097179239872602144822380239959901442581647463185912925101037981127435341991063478825172065583035160463952586755521839323644270733926820886286931719908534382456896340440070551922364012204820683391654626182829122479384900903880078586061598648584259696564399616246082923890712419121954071437136401710868309036900923572486504317528581548462152612211829316662625214582847334198472393314780498556962406468229068836845068673263261728653663828117384288214924505171701258001939794651660115156545969739896826460253157676661486373436698607845787991270615874396746768516229120339903302553197651562278471863435110928209721662979500451150048017411113960131938023643949610323626602448916915335802585869162961282924829427941642708458249070707338293803261134687424974137414625107842253014362029458112474413600655558154243019303198474797839196857886893563979004169717834146083061131519534166928629607189618216457322749898882584869451190425523925037710800550720660149850128224089330504616084325367988312884779099401680845174016384822778685226337668475364952737305404001360295781322908837392306387328282181121276365134738374508628536085447677875263913753860717219539002764067006960565612822315863361016554432202523183100018076081126241929476401935853279565167939277321265511554595330664704733151605923848006942950346951633632385930621304264294037451778123421291895519173134622507478069345240268815047178883019535254098889096373167346569600089517219953578383572666353587554509444341662419079916543852149862981867083455918401100925263701972451882918710825076888871958210394990371575926133064149176597185902405628106693031050269967062569851899550058731107563994404917778077980157756999933958036522270688746076227065274022696859816877676434589785976325549713287786172040672737247936734985894065001872797404250296151395647966406244659949139327051927861762363223670278544216016582059174682562425015244336943634471280796160960396921881083686633206692184605231555885783858541272318352828819326788601530241696605731944174510567542449113453527897039793134131558983620294734336554169258623446441118472145936961213209783554871114153763816918493548856407921089163320438811204892179941645697107918618200738361783461163701742865268257341009149064727537892376787017035941775279918244612493584867559384056246153663570393724151448196995999564368471542937588109988783823069646399362878424801204427769875990859502549313580457416444096862216043165855028856286064790394576298135887135553137217446391630595720241932321943133199822988858270076494246316626889756107260989151680598877177818483455330600827862815969603850084048410275361268286307442642320639564245391873186761086649246695358077453214887818817080048648686018288500027094061337326369919834255385107507979665497604683189887600861206717889815303796695740307729520986998950845156827504791833054173723930814256390322578707832053700307722198133391783224927964154802828131487165393361030118016167977639748932487135310191203747655230063138152721727787398507001763643808284822685631859083582146814219793754847826748486825420070388040912593702764910374765894813481331848053241941055881153799874226550280025652561421931155460680538849974998094056337521771040668944818645523251963896905520943242940660664795873742505704008583814579999463006598246599402186042575007560207746129654176288009582695683749889162181655162380885576542045853026552425058095955645751129795999669339648650124505041416045985681949992564859179110878401858829541065795930599556023045796375342438494556898521746322005506517948846232203102952105145442616058498071701630526028522891119622448116334225179361651935760176930503595154524402403682010292379901179791494175110543812497157639134676723283880658176462233408677287138209031482349060749850773446578472424263480697602534156865991728482600500440500777479243876379487073762357801457625938291328825422458699680019719446908945835657184519820293507406022247783235396927940419262358237374560114821589023125830330912304916518942307367047811710168217764582435436176294130552022325067709936064162434800254071657631020389682177857639662033269170560815471776118781615468564321630114464919157768361675674342120268037479468538380276460932043427529706698307482584340038936741984071431505909476568008765968555932952246047147667978655131841235334618940126217455584900362278149716595938124748265435529555006326418105969151373127309027379565735359055404065772059054009043469981493911492914854285550050919657047989792416876597506778203207521831304893331515213053829406193837278968431313889801068310247533846560977419993134059247360190455782554899306500943741070145687036736468637738314253069654078103043155377760422979501177904407605172576608635918431601694062192538376458443030314306677943242736027429514966377457543283789528088620728776252176318196239802810417227512581172550397172388570518107576798342922297161949207442878177608391632552970349325202755691887550676317936160559788600133878322561431712348936897885106078616934843511714641947998351276435619549444505967085673382160215243333480795045908863039530726063899200345569552539222704732681275486055182684109336261686984560209309269441949384669483206152817164999355542598834394419934324141852664742431123986969255934694870569579694795101965551558735638428529072144432435464513189884523768695217374768165860883967231223773110111596909497931766454294645200437196447228578177481121299475985163874943871146380117195294365456475876281723913959161202072431936276444287663560869640507388761767336545825391417276017248366512419041255783241710192026921522912528811996876437800330567992688849371879835224013155710578407145129828339391176195908191012292953592949684395815274209235865583068277652440798359892505157326429832301573498730911541917470740448198297959031759385094040413914692875405161284935515346719708111794666958316480096396617601245343463573950431675249765562868949748973810484847705136920351013477344072396761457859844459254964716327745664585120982515188192877488211871494543982056745752722444188198872328730618039508171380721213636596526249665388762831491468492008141196116374755722892300640463336105022194302303869708574710486056398479375906125948592799194572499037938145972324166796276759557204521740307694056353775784714411876507301073949293677310391175875767470713464686091520649855245474832477657994957812423016956561553976414492985773151275537270110035566217658072104189541700753835012928998812798555555177599003896372917752491328390898975240748746984940269059449961771585446353784873998153473873734819363091651215804539927412682519408504910622001952049305019568821500457928467182988844188944068490106605091058225839558598276974590300562525846444917398121417821202271960347329153562942648692397834569172953537092178475095895747340528424493327280438126404575618445022674417319158161625849574500010028379546733803886112127129273249967498990969774532928151847469699980422906570344256531852304731739626855901142051854978399256477816531791918770939514262413090215341034404805727429989174941706525402289693902340583088087819639065135077108240964733435952462996627857054420395256981276081421153815668098403744924610199333070624764691824003563411645604556337986336298783826629663249003874131174109857608705533366603680524773493876613325050092776423468912838030409897772048398856250677190603763259782438576093663737228044577123853655912403741014789396581499499220469433168691118357173339749888275354549005211426734416430612518934876906940665726115784624255090205393089841818561725878504525735989520117504641104900550798706825458462977970133009840161540558540605104374611676778385543861447445301962855319038292239338723158635833469602007901295671932655058833621146050684257742026417025598173844045580766227940450917489855596786404996720898867225079814582961435464872524909030276569615931284539502598118259371993948489344511937847092655445397475282344652990748449101152597270418132420186575121005246269320913872679101163563067848902727946516866489798041029978800293399715807377541870138706496403037257690250685323600502213209770210549466018697310413527642859243095923143527447975022011817183259601686990938696699700914883189136356576629471313566574163739020739556976752963143043903916359137172665943158845140059759102940932592933247378735306483539705986607999786174079243292992722661609122859809392569737054274885248535844452607707269517689227292875190415958059697859111982660289681945411821613312131712185348601736756149418385371110701311940487729075583022513955066967821617574329648528555533747473508588892713669675703410402370631548740070109992705114529989368834473754133300723572545312823984150627774085635554565518062992724988440597250583500933473911194761280813029202256616515562062301663382095592832169754283822510063475832948484915162768147891264538734830455486247988947005271156461397376064893822455466513702365615115002360699870838269165107067705612086568593802556330484767309076373082874829728509721569056650601223627655053604744117178149974963220648007305186999757275098433195216980367981385884742503927190650384152405380497842878561796786776318011056259604212800857024067532361663708184639831020163586471098224796830570354843189643432883050246884303556802162127434383808885103477859966082738876381603746936933094421780688108559316304420992687085250000873597581048503589140033471391736687577502676253702526860659410002686656653266118026105859683207472502289534554729012802764718830705178850329483119762655971739207909042543704800152841798940835729593863322423567207400476833187260397165087871582467908898553333920798622563291832309548201370990168030402822689831357042619382238060697686851828028125595353944783307617609803546128380670912730402893576219344835527041806642777119476860708356073236242536640529105245708442653651002908674168414588628379028087884452038575750558114573759592320241128368545136040771764284532889925274141568885702857016755230908208625600095700823495171165483718175566142606034601024808242497989883457124046221324811361624753351805140449445179068950680661087234413537289338729476610664003059594020359220345846735583193547517068345437622335589790484900074111338287032808960734066091496555425241556184316685792178266331894689319200369028862472216535815493519604257664374132292519258691518839895905063952060709226381687878672877154335192900479411110980951176345241060491377637007485390023595960965231664543903385414736625836729757104373438308413405828778482339998363537877245984494825851350917060452137691247705046926402205504752528517839265117818633140834205512625773000684009966532220338333436792390452707949798211618158805713258576026855102024119808169697913853550228137262927004143412651182328561609412410351849983821103557347504934209032080710961918224321609016993413375603365150608426154448076223770578315536396070578040563933897727601396063832973672811590192451658288539567223466695352585641171149991580936596357036616810844720210870107756475704964094230620666000151445851135294813142231102214723628767380619781949000897414576783867488853452302184987901028386034393537543543767486252832221144016499688777296058429489790975858043981317085461918023763871461146432849289839962242433490429157853141374220548138348228147647109669730162752969433275880429700448420006083451337844801341299002485275466218992110579108342647600885943433157393160986645602861861885519244176704062291049652612232023058953919178697651839414951009472788903012832710653289930373004536018634492097956094294629681793233298482470086121932324139178965504646790729485614517784906904808672273141648942202143376901276621472489809293386209830214798926383753084956353642225488148671585595129137475767166122275820370924371917483535978509146244525754932733464830318593315096965483605638918403956798019370845219449615953278351888498746237434368962492177040317280299764482647185324695866106354402307365065986205929618014796104908414058713274015232212220628501801368128326815760960652281240846384029274124181982491509664729397555836251743291111807241484883920113606115683335830712854587046994358347144966210494461726416565976145101747583297243301667845579859292535660443383761138478244196149848451879326666698216390550256551398526570034516814762831711056060642082458922853069716749386890285785883907791833826170658784258702694666347745073586334603342567457116354089569164103010724193924169173032273826204253069557911290512545040120257795816717608338614941133952996603698970946122408183836564328877357030279197320320371407010084343068018025577520074700955339908073743208738747214690627438601931585706588735234612524194876586785133845015934738176958280074016699542745344625199542300829086473130438260422930041864542654890772654331654304247928685186200025211767957924534622820790547957701801211756277504189283670494019812939429203565919801832352068447730409721482874428321554374440130972422166725191128741462452113519280609354887187877939571866751866755338666000839998435112678597311183448617807798560418953442095672535073334504782814100069041942312227282461678883935640379578649712644057116999975337024099859933308432402521352122814305720784619751522200191869049734601765333000842066832152275017654866702547631587818052830782137007641097551374564630838335267830694681979535930776261891207267940417686789248164377783097347270511048893181330997676897696086040513774131045357122071262642057829876224606640423461268671778162025209429307654699521161138207570678244711474125892952534039336028031225272707974255110454416074025936454741061827571157810236656498733585083720174598967162887891527607492760578263039575212600190549460495158642241550754382476402541043757980881296417530505297030861119041111197615041139686222882503801357692622616682061661000659967534379943679222112045300594042021663875031669483676428390064924825709264918582377836819816111435658415555350131549021096699114097437947770276409265777552062232906174344718555287172582109127861628179471020984377408601665074839545175243538393107344377662726337195939804825431624008124789584658975792285547090957558484761096245828250316307356377774893659319337351893199613095088383741357611213569894028916674350331179652666125979641300213737333184149736234861202477475796900172702494705935560608121630453283711167296566641020245217004455570956786442844748085374486837703314678701355049257228932484673333283829698605944873041716950700345159078706394683914495996162689686107965023887493959321792811219915876777607619610106144465884037850118555737390491497762224260229456819788466525558644171874587234768479488744763119344369961113780118962579635491286171021132045022303308099775506308288183250565255680432350923822700477848769610698187885673732567728512383110505805560716793586521554860644306833416757650907797850987371784127725071819060723120858636598941269886673897189922135558118423223973368342415093046311845542856506466533186408614433621000992203643052585150609318312250954035117657317146933816433122649115062175109549231294571718991203569143027361878915116115199025325597463594765272290104540294925189884536280553226391662410958266513154424341485113410021286517690852958929941972764276484012998576842177934491909800913757780682872262268542596413451024739013555270320428533526108663229272187493091524073199490330535807771826865392934560123591888342342251426685382759304198682009454295171292280385447952895210403418199228678579335769311991340674096151930626052214851952417056432636422264421802429041658086481196808025018169391924512304235528446006773549120299218233019677959562149036759416293413679442321246131556937147529459526511089649897984119296086294721474824516703004116989521394672112531792757315262294687797120707840573142381146988349364040734006958561251523475181724428081567643776000518169956888541098776320342559307288666773330572550274671962672090312577726797800031075496576230221877449680261754552591565102833577182107209458928379843232482993101145646968482766152165311678614598030133171183350598098998500194505547810156003448545151907332119379612452600322275183656565103233459281838960053466818735248680192449248796648608096619381969114478647961995870278660361765354723541198916635193834491309669013976631918287937780311786060332327562793299564452660251627618774189084148529816592442793846390242320592212709180204884864540031242887054386373298889439174512166790218193967744874713263545167158554665514431290801152430180620481258248751548657177583537257045573299955810907181298831968341752402639378839141569100884926837918181821665667889471225251796430937097398857779372261064534358846000644346299641619133922601435994983666024546169063842809328777064604225658180025027238654832443194050230297125274119276184752619775025881406792994492788760326804063329541921106171957267610640719951788070291407585721135032019512866769555274195228500001777478633621986271730994456462227216046766846912642586246509490177084433206821177220359553483067341205359896430382053071137510751186882760083248492661673511868605025065168915161100622139289107928287986778247021418702990279586533912605488608169686882011942676399250363974909663084577812976168684140661767641882165198414801102575326838460503848149668803679509980467259808761278182764699801493202676614916508581979850015171989091265860117120128331972977110659637639628060985684629069997796173577837919282760366062550222886851899539781902209450152973530214915638092979700243449710237140528356477591504720534678192987927791652287419298302512142837356302582874345904316086634675449336581312566529956111144150976292050924931370835812976792714521633279727535775491621543589995585285676355846297155816916153788588639868819965186570481840637007918237152219290202544863565803016865182905662263186183465460140820775189317557862390403886348775195006052187093240687707651201553224806469707234849561260078012785519478382968846557136881241640366988731191671063947558878051372952492187949766199956692648441139149230903012315992610848693469040950664784083526794527864697645505332140732868858286103989292450022458141652678935154781662763953864331683569296943865326784552850538813338845618442121002630772649430613221030627703465034277276300196419961971756896162488088014667564530053334835757845547875706833036965583640117329428117426852588740825556984788898985727671334951916993213458358787703384121659033989478541165881814167591984272085560578594339479917905810137339841846982419865399661970154390988925071144352101426763219530050632798686846045775763259427213555383680123195004047697385341277762554125206049344054480207153787919006857475225040073192247534878171014097457251178830284820122576023843896457937892715745190049781105751970505870023205438180857084220017884069977024479507087833333009210548703439112347837381530669709505657520601124722787325857805256053231216279188833941945299774919559520346931098165531482925850033842272173799805458329793857984029498933486700149106584171807572542501048406788126294487358460713020595029097446172505191404291412432651097494954476381168683222121819172918060593719390974087287371535674519512764854340563042032243675118270003217103951094429648238516248825931824718834070083586395818487119415317250265391608881504297016507625881479400258201660072176227948914085135189532290751233596638340433499684038253473112219366808395542787973660048495070627425709894791083749570883226243482836549199124882766382585584030199604863628082636457845903783221754374840691006658525335992911358876244372884711186097286008486781002209882203925813424430618278962352337543170412021107627938003405329691709761816509005636423401132917499496350534858479706469059277746417328056037884906849833658981543873877279777504420363698176496287078753898996273085063676167958379347303637960292467262608077086397834601506711923988077222863620793023432301729547262771259938617158355189105419080383653494799460795143477603839226982998853724800843620886167265921886862653544074762983867827482352139975649875755249054472666977353805009122098667568695290838276189079809474322979632619864254537243795704536667921128171044193660833790496437465105828647408889947571265073070466256702262269829238428726000895676861374725563457582479500145466417671191708336292623830630263244987464159902913009944889717950911365323880299400594382958167825456754902681086215140593739800160720347131607175541962569286402211413460815488179906795172960297160388175394826404372894730627859439965242252467682585431437235902212342201213848625620862465339314675589468208143986859725905293470160118760726526591069903576006288193150204479615398400515375938044449288086892008839152034304765202719138876071361250613895995773194671451862689720844641749981110135708038781240824292281805397074425510242986371063191956176846995729919389503802031814445507547183355050851483022526908963914205349334252777907200574915076194568782895069979847697651899585592072835924135471895488172171310432726414300043486406584673847912451770658266195336722283443387125675595461641646671633930782822231807183861631590464347525279328254131782916567723910703765154836100498927446288012831880756870322904403811954980655246975857311278459705473655048123197345024585754571304206439114674313605662396851781440218667349862333147730883629232709344393371416635048732348074774389806977573967097519208317211128936148349105151069346197185288645778633357071987822117807738991316256778544378014528103871758047853819365901637673929919757842109685112541501264136546870645960152284860936366515787209280498162834964589198315458790963057429872204386088681622748524352959579818740609272253708955142561079661381051534052750282806107182129178734928274803307277597529704107686111711212848532524708364121140549997664679523570719202052767037736396393037559398032262232487551330591234373957753056864334007290962487099627500011841260875328264876382822944072406074068785515530041486193026265275392923468082698785952778643133590602768608030664312392727227748694811568286304207610882659395348797896068489522467758775015153806433971210761386900695857260999629317315761395268934089178077483650932193680656820431797331443196789834519246446479170489323433270379023289885400771045164383430336078324958023230056505701653980556025443004199614604402872685157509036118871682188129603309509540386390439035510172662275499350928002611574579077122253405225149927788814188463325544444288682885110365224979829695285523950865990070689713014700608980833559050651896710707894095463117503316482317999817804696914281665179078847925151697256217901168116494231394337899946287149734687039627320824588420052079737803721612935757551593146650555164877217184292835140593127101062717585227615968980932401949166332244911112410786587976158506781179897263061030243162022681429115199534427947749570881495721576835615936491018770995032635906660411133339391586656827170761811715353111875352130465203523634569605730622740644976861227959530945660786745857086999812804279229814799520435427474120067372300708070122735394541100603345319177038173427026389891623390646675098736070774698095387833771891101518864391049182849101796207620765053640904882217571327222016166821038902378377039705223124868034831676658388846506433285796471501302198736754225066749866033498912421474057021100391889011988725600447308544588799681511900670457968950979898470026084138396715973019482793761551562494736488323975970855574999226001290119298065430301178783781365236797963726256881165126171967288630281417557718126334293844390114194925596172843373695563658992465184327189702359451632204545180905149673424879766081119495351894043583331247582690683740519536552222626430455175207957274998864009659596191887392092543980235608192856612175416260614340518356926413789571990677531761676071217876701527678847777828434416059771292362079032846968604367866976659980227521333773842344471461881360729477300631361209843813362019907403737543622374946584389137170853189558702948901153229458298788374018846825717667096810945647116276468667768817689324618488465721027813704583143545901869681882379317213589213992682477764200984753376841045061023335182162124947133812949262985928192505421756785247142569166643270038567896782123070087203589466908824934167643632562159465462705715449648351494342210149198746880889666598184857707316022740822678900282929410475555092973353589270590938856431118961164749048032212086831754658813848199426028471324027483866636838600736076212974257631349404341593976622648093459997943242550970122844256009066703003200962609498794417599499769101751819410392110419738601881869962744001319388472506932449995863494836094772111803221094987501750584216506369579557364701861333435184742298333253285104020738668403410087387694454263653541399878803752698329736382007543814794839568450264860948323631388838912071411680718609960868506499681372461343738647211348066724175428782944672143351405545395074601576653609566073177918584749704446590876516087924329564775303652019251506564292352502001139236422981872356201504241668728825311308932159065470414016426256926673103773835151960638453936895646489323022433371185253761795767641104050885856490332481900095553281237475255580039607037619449393735203936460869131914415984037181667047289554978058184751220106099187037846012880008189394255846753039665414824427190775150592728146029061204196778291956711096936200962913057220912800406099238442396739000838741702337429651537029757942616132533309361978453587638238414861311845242655766785556615570758273786257685337176377074040777304140992067865806612297611522975771310039290752908682452470624483018209574563409239959834534432772287953837687793962933832363552935290162959987061905051488858233391980328847801253005628406305823334062215935558935413307030372930450227220863461841781289603554029992977559906853376014721286026131261133380597150814361160352711632035968375762800171164357417329251180361063775047842708226636748743885614726516826899949647034051191882243467094738327731269513855115085623841424542959070448122183823742166310723036662739127658420493418812630694921169911283302377258375509219582663651053869952093690210332901851143936931135537884465507016045184201724207023982194295798133286331723098812146913293004785276850360294477903558708100696268437248844032114059679818816118046855966786580595002823517525132500347209864107114881890036198850509477361098253486085469929978776252937591962021607446202461040717801563717032274789456184194558824324548337572789799252011846119672483182399362128209889834076193650451976152210484302574096928794997625591180648113770130479374194414391858169425046752507044270097409000135699088387535787806705458674650698271440410435049731572987568771723128046485502287352927739669825418877829446377818134607710628819865913360429390481822524508617636505020829798681185503736963049170288367308089390358641619882455785662163254294609692314057146100266310867628266767558110594260471679285722543569132581381461655749933174506735625125501640982080074361930241610287903243898771208334850143787264978888297729657405101359940376570128796488407963573014179926246419701445695555928355742438399792962256403963140806995730821872613481479300290854770926153910495513878074770414774959833179409842645867095655581008216370300247392673095623114880307337618816206622955432620208818203048704731339338740647145150266496897272157573822235852285630929411727535140624790180761683123405990676666208103708513834958874837520124702312481792559319618448620326709467452857278533555164522206908015118972902665723688502056757852045255624731517078215441600443509627499181330499831340319209493482020978500005232798017756414706793751539253299901775425596805507314788093662501421651860693527372453826929652297886099291857010321035936395697105624856091830871555247005399659926725999694225760302003027871306375000596776647983321014465465142734447571341258154868705223842705588947266829744624403244750813105360699406788292846089999826283024441449448455873317951829596139362419151049173869942042930015959250967730190693692649106540367470619150849802570889222560990199560611379150590116289104870151501203087194838702054793164076697441355847908475573060164955456369468000100949796387721754238544403230557204982706153830990658331185726062156080741393929057119078750667545315150484087688341131699963924711569936753524680512000472922839404298889219303427074945504139296160260434595423975276534774589067868684202128811901591658803374546094842696683068348112715338148763084606719728807845558326523920073170117840677683062819542253637143042669938331262730540155811649008024692464469132931820562392104284403419249106304454746022776631476311873251426944799947567075664585109553508742101016881314872505652820083069606939818826761704784150167406981058569004810436903446054134258534445449601158761600219427688961709568035096600717731050245579951802052866543341542701096422509837009720297909078462408398207459691319553750516809297792700039352681200764617517596837337606009279696592733206839935934470236283947093107154162090800893739732327533010759299562838759649535218728731507397911737900793207917575444867615920941252564519106076426223915054276720716656893602157668516812448513004666528267123545750451427984630521282971740504002156888413709648448050628442533816188358096216399843639082160147201773190569533177017577490163689521895041398980617658526265468092924192330253044261528209981114491489012719718542702034109834415197036510602688038856407449753614371966866206468015453236150610875982151484858583840402407673793144591188640287439719085223666513554399417436549737078556463495255912111354601697041915316227044304293653415896282830917725070552725842121626161507681033309095650872937203899591025019756715437966514915648815281223698121175238454466254189245132514313967855967782212899870117776080051525382888685442641722658093763686115828252392429237485286116752070532991225068937525093952994747941442426764405050873925707272310996436549126281799716939553659139652529832637665553791020058317224595304497729189003656647563254764185604017880961976673695195230159801037946093476082096861740560742647375135280978500396630409738486599236708388554533945305005268998798677031904734598265466374976833719199204535229720821294684686661789354658095491956970640989909809451542482728737212973663926863067596176523305113461477124412076072124072749558004531868863763243415666217516150802774001442090864995038361698239737475702984562849266207434724625598787018212350492707823865888599117376975703265955105423249856386379108271645922168706753878290364584373937639566793897179424055277540838020403181759044222520041871688270891574905910449418420617911663998313718493754069854008075302331616823907094331999602731462220357562831722097641621974409723824303181179874233643493088397724682357854714341749525617189024416315826366136483435489264709552501174243882766253564494980108530881706569503288355301366342226148803768231704654978906832592838144646764761389433615094607000990896213715644332139478363147189623362568972424399098752530924137030248166657219325150676754939418217876043735216377329749551312816649169850413094419746323162373079212003029392676912133058412774716286838020915706182297994015402889293267028125578179437599480350536683030322257702812766536701671777250868307547133704699621347520392807313828560214693808804518730955001985610370431659016205058708432308259218413537531713354444372604938002959117878348655925819652874551370328487984834796016863366713173542135670858298654111415568647104378412496291578434570600499759463403400158724332159352219664843238346553762480785363333579976841799463975176655849123986779040182024673542900452224051041683788434563799933287081438468425669340076818982913909963559648220291647237260705541252241001595314677012668120519679706781724280394754635849902122265318649728810226811195730620021142120196029699929248823268082724091071981851049409607652531143812536047346026009235449324632875504735086629198051083437884114742025540023087783072297280089770285454272823549784820342678961948025929269211679550177067201832698139603086182035455438187156735216349385501141399316534846693113671739129918594597730041262939733527441163844770283403728268928394441412392378431840837708432773404192456281864961372899287162673886533607485730717840781964845542212108099745981017291673840696493606795212202172844636152701800938900910932930867790185027263033517111914700978159720630060029804788850464776376144637184492164536330367588584566342125951439490725664009549844270815894697224133357628995127148830219997685048227955740716757311463377666706858865705168848132115171887309925181528665654885070391893178940532357450782014543689502318443927700775237240527339203214388376968410141933786715535407325767519862309311352897483624730854942366837183945461017929924290331421524724372636485054517744219884875084128408580998613962223502295278049893368845338284278937876304836016024786500116777783493307864632551588368828100197797128902888693233586698243076862118464667850414487165732400010609118772833717666433933334245249696895083562200848350747723313628942856895903083932384094997907339679477167145911679377077371338902211494871011635738360083816312619513109307294027183621751597098794316405885577999123854841520720064266734635871020284317724979122019805056456368961541801793570866882168697285828605999119723762777715805171103887399411111160269471978759953390943973545508548828062719352399773925923297183136628764896227517834936459048529832290182850014506788524653851878670757945365446058431141752910112084911383979190612566683534265403961024963936164190821542378876823803479255208420645185885079774981523098836981802108619303801197712208715328551146013406204494896911101542074263192337846751426402863586559029350307385468698303790438647932381430600497827746755532784301024164741894844651703761106406410651859921088309602628035114893614670422017865283898223664623042309406228200259429126977626294622907919535512378591837926178784161916803906544423909151953807612628937880557181572962401217730066242468897905831395866715435835384339077107560188089630680668757950923651901612507888973524180947087282954120255830194394514327608106032042765773723086770322953324625790804344042714556170276424194063253788756295683067936918582056846269763102854057388546437550445506863516314451503409541510894106325614943128502541421154827320025227617409041195486392313524930027653025464561540816993381832783044588497705149406874595337727766364352213063030388458315032509086073579279381186842875627637356125960212409457085438017366572345131743116156984667889952275182031801196489177389224318261856768461940399546903271199827533018879419769469169670334560394100320522403454663032570712419825632938993010483787146839024437600137286188594530495911231852641989633931052424124311434177644367478682473322235727058223009468970730125991800758053105380741108917746826661421316792246994813670553939974795646605205558569589417706542782649153214894725967002088208193867292033261507101751508517631091735081188025631992197350541134512305981872024628369690853785876603749585950784621205928399039960646933310774864055138856265063430404752155454063435971820831592917161178166102069238260063249390664358713872964107867054654942876261669005670865857173263155783941262835340875818662386984639711695005474749373050193519217786882053757860207378693695441716182702817681655913869087162764494867928593473267828597323481168730004405913663528917784996484055107640828495223621541806711635177144471198227857836120388324257251869570767298826309525359236569069212766097167097162470604818985467714296260557734261737135671800456709301072718708987127446773487068459972149611200270692363771882657222724138413660124603689789130081168531374394737904094912320757976512144601726752186396705542188633912509445512742644154905224691212132402209480054789124360580630002983581155788128184974136829636540557796674689016082019735547818337212897973713681072341051314586098003408665231918991755692030134848613917048863969857982320682513799742415138706185214574456296665528456404813701820567850107642428522395968042950084460151966101578135589900785988450777310879255910822237254570875011440080664212715722304450512787600426354112469972200539588975791717288286622686282982339295679324896226087382229850095119964955259587772029418295760766004621455840882963165797778232946593359139178633807796386122926123178025772992369900430163806318557107323144961171023412535119143269347606801432836163431301006794212214333829120620079041449085888899810779135607177841039270745599561166895354144168188020510921136640051244517510019029571063313846984402115710439378136370084829068801250581551756721639196684094688192427322546041372986506739377644338301032481535053659722641680258107841711122754911854394908172418568444976142357330817687168491456327670837966314333903196615632087419137181349553217857501628387922309707487259708250420245492176253178498690395016573970737906574761048858907501083158130748871862600893918579713951475058319153892302003118297648143582428571968148995115312892403376795881032955148083022289482860411929300095751741474426293947230063434366020644001127538607074386212015984602536265122714860291640221036569065907103153271143826488560863148163804797518400652925456746999626868008147374161653797841340260546233537791325024212690543757983852117387355664297612751993647666878348202029561499532619873153204040695180507664216751036344967528929849718376192784916455383999435250645216367086083667771992816977421104576773540891695527293532834967411916681321818143688546572245306083264730635434631243450772565381559219943769918798866667722860878207935757597093683270473096888551471384845930370587628458694607200506598637402770019373369150120987165495563623698196329107366122475948078296043174652193419092141051762453877479154567626021887156010126348532295190814380369789524080230345037636470822617679400628862871616523171691293115906050113332271192030565355629442200998844709802947450485902935280697883023836895588068032930629086920252234948531152735660947107588788166827843113169676701633733021483267992526098935594411257874959620943189770787054526311067753227921138732651202336363927136637211104506280875081874059790877318865999520406886246931614769984808355934750443755104691582755474609453921596517642262493533698571803103034445086169556217229630423885603109810630521978337395861853962574023544343295720344469055215385210767115996618235140956854602303931585196160941449677104205003945185481807545709443972225919383772900526281667642561258623659816897012934797516932522324406913590144314461118658096993730126357910488528861213032605263411836422955535876434974417771121394504122448269580006343876805363577457903956212857535063547658938218370217292217803679643865853625560076934455949653887678058702438508309658683450792019750413296935744893409350319380746566755917109821110185946445813912645519015000016297787473673404073894694640731843337753455764685951672614255016904466019737682483007002261154734516088398922282282105951041069390861935384273460838728811383468712761347185236929403508415651435960374748228266025573719557719322630253135475469715443711201826553616650507772416999632216920484073547033601531384142040633961900706013828898127094423633215357375709732576571484286371703356019707590557523516535490979535159178504253210839701500546714228313783162210516925026534334976107606501731882132970041129349708766331311132728039712981099591456810846007514350196271977539576060716217937467220290721380246617441127130199150882346753157995830852699950878099891151959962988435220704852594331142216297718077596845059698186382959558571516953420314399855365134578626367874085406367966323826636504022058277072595201929427589969245202770226385969172596189363451117519525244090773847671958298241459549009408328499688460673613113533761840899128415905821820244694560879972882911095904707082047535830934043489734473574421363645942259691394238828951642624914930176427049002667686633113358144063313228652767991721754633275496486689652987244763397766823324107011649879296987830673832054344947959384162925634436495157826765315068916888296969664728797207120302381041246846008547348984708894378478931235342681121414412266504078798321507797639555686492863705271524294046280057048454316609263591488893505691290221080949930610259071991132120551902025943923393714029381881568428104302417449951789042020898403444575796935604841068718030649921183627616697083599605630283261601403650457568862104143129159595216845134435604853151248847600923986020828484738954342543681637616873396990279056727855316084662214127292606998483232774999199485647024464738365641731943216556845801939192481164749420035691156661917152004364433994542262772027296695694258815167409456884816473419639138807923856514634366974564872030825951714965520476039018213263091178477519262926699046887921347155745592654279263684290137357822506969494274206596877779995209643610219472745682212366855218514081127127880190728753404964393064866512656660817763798729117024827284875078267053969556203337179290600931012324874030918827826321770944114965190207408370003722168819888796340164486627344578036603245528434787365471851045731498481972747462214915389611090511841830797965380980038247380664441934744398730324636826418733481853451311882366031099228754789248625835256240072548435430966931345980180497825905403031056849477783391885154495966477122028731919003957408942311173253499273604831122742698429625226366765661932177421123182906177926472542066341365922965562809067839363896151699460961995334902164273422021431021781470050816050639206967348170336025576960878290424747153034015466256763734428100285196530440527853510797348551319976950840860310535527647791664428240447805780517416251278913354643241716566029848639767700984469816048043048819213080741616363408139570324162108165593634764323718373561056625533371184395767708997993504204909579070798515004180616971983194905976211137407130747908800537552800259487091258521867061282002116926442581587274973470081424667657699363246666861795139227980272071555255751762429907359519847607277798101360928698540297105359898803432974506294879877025542334661546195975753550952218229309355565392008169741345853193101364108830016045409049702984765499582549429727301948977512215060373375554975360057769610075308927999042901974919595067785159897493875107841959021718365321678425645205409685139094652152591593698378980636549423055718826964462694597319523418753461038129241041040389007940616506950551098327936244269693259660787298085376069219582161378424508159616252004634714138607555828283243334455551868946013095543654119908738922040675311211769522077468888149094482408729161551428089904181897466756164046148207996712106113458855574212486647381048142325374309587558580870552141560598812693268922123152160007085106699432480007128012814978486191684677819997511828385823660489252337323594495527086200683454103271837960099154415314186877652330067527539335960662273885634642886163013470682708151247598658910135263512501878235762432802693254461713423689901289472034586556874289260730883722121198887141509953773139825560531810463963757848998177450304294435908112688801938568967969588249058053777546651800424426808025891044635464712141622922277684756317917214207765506974778471493449826765656137223104851773292924806020947706342139040640321421037097976774909022608898982784703113444656464430231027620739612790064659380568206227095010126807580708697936603531850068093775188702851976683622735727601304292857871054079794172720323812700845505515008432198519218167438447367666920338448040145498428048081025697105004498885160475952311264215698675770574793597037433054323007274377087203864378868705081886584192058840697649648157658307095922021334921858861237347497275701110691603117189498811619272316093861556213797138846945139162730473609850502225530815595906891240762964100732009499659301061541956121536719022224536108762045820194638778638088628027172964780872478036700312410403315490805793688444503543448284552317031464755749407849790922659847074987552422963158028781117002966826563966710121525432566005868097244581720587239973942842626052225281049294180778525460014710822110019106926594505632462982463642370132533139521913530626368945905507446453078602393476613473566964506183976444073334915033079981593017723720517227060707938107744673156876881099181368003161663203608156481106600959223506589329863166089451910172704297093631967647080027835504075337886916375424876023673247214887550930737896857172013296990613298982106607077113664384068279303994463661040284072918590608990857259729800043534742233156119060957406549668842913825676879265888272865739933513409907029931264249379971496469425920702073006966428530733562098692646594843922530441654110509670816293373079042344961139860380032846522328710543672295506859988057964785782378638443992470286948513180045253285098803689912168061142733701964527173219486754425233003002839255542555767531862988520404005462503934455127290189613041211690717462338275308434251815022702698812961815744139629205556632424352467616778603165861457205547208790250236756712785890282846594890493757572550082577682033029293067792164755819596200356315534709197199291606738168764111979823797120447522581212610227395405045177404257177720912779864614173681753780877967440721592778168718968984672690892694322743198889090674941891972548307007436301466430116105310950434379609017766176327883531417234653847445452665183449039357882815830619922711640369439307103858188853027472740027398339698480628578871857878049900037220221908085794883999847888373995315000903800312756869152789765253116895626311780455268296274879625624084294133047487413863822202948202231774916885188267088772252939670535489282912681102903259662690833721607393302714961724523856571062889570585455757151259757120501934559222420762586535621453932231096208450099859281659267190392748341085055389613043236939362278937643019852961582293837946283746968144042137552072348250411266751857394306191408200288288429862503694230905050643686975670016405673267336443510732850548185515739406640006213832926982039388710866677561517687101295389317561187134116403560537082785540596578285995768870178660227178164590112284094358338861688987991891646130976284634849056534156916606804602230647501623521169379382500023017467437292932775036868574485411941341891287526360244555627860177206139823329078529701980103408384136315940192698686387961444125114824914267798202759796849846240866309025759336036314255576329094067384974010957164819270593012121240485709515363074091633333750743066712454831995526099330925477586267640872060782985437686066898051491850215049195024047969816193257787607648763750084854323036896947474219502818768440834512017425777702677015722528644152119834926144414819059940532638737694101677911565975706904261611482401716313480215274120242048960245803864998619247354941400781689565333307893555659353314254694278643004852225533366757018746750115315470209901584400611228641862877966828873176923762931109543472652174179005540036507262218556607367514800178466093856805917106524071480941252552059115477085155280212057642485036399774440484081030041493731798309905941128429480659587764994757244785386793380995380394012024307692265135607510274944635251033451269221634387635809914760178425588116843140845842891362619200842459000491663952950763845455442904430172713392458427199434348041123982870968243471405657056319028662233535014781447304176115948276429963231492617587254920492728209946455875206715256958054600391859629267901936824165845521554793052543038073827108920539148977504796492884623988134470632727061613123763906931109758917450123327838178402166100272492472576398472307974374097120215480029667363905657445935125598115791629617382493949663995235625352265426146650890473908713082641466435136656465772960963310535503666935125276526274627070875572454822289619403468769849459276437346924598817143199636224014982976244199884908472529016665063642925038550194956746985334115609045373484060746385498483027477766737845892767942500202494749558957798198258022119407613233587370454086494300106112203819136726632047888179710761538792190609304687567107643947337679945638244718859729479782509165412511821762629178732130140072327274474247045647698049144108684295579652715259419489387444140310216240517098706423430989347537454670942441651489172794982087669706055552811862397472311072122852963366198416372373990087960234583207714063525932187148801726487404491067897894298225701574212517777640339063685790509500314641677486240839024847216634380396109783001494844023600694865036366418660028188164223275689923038226904017773799730836657968183247511604276741798700833067079135144061875639543001863022435138010556914092727138628635260512623947434847493690277859666753325152168242363067325274223287939283831790302761456703896622038473121077105789895844646683578649190388930892672128082936044662232427984006073889856101593722909865005362677216478169962850575908901896507715138126519202575685348412544868592936741624340660904826656841252583300746840268820119463290679045137486583635964127334482160215916568299000828371627370175618481833896265422002295920793913312263836079431778734135059525840664713611672209195250999184135224815368212161506802134931316283365264059111968585733923852226673369274698381536929005824455953937991853785415461439361840109578753375615130119531925718105924445500697900139470037655729354896591296632658501201947948719543603717661127891821140046043518095715625795068029148492531145298426601606554792367898208756823021954090665483344446087255677008361991849517794032108635249342515220843250737188773244217181881193159798109869588340048779932945061862325618721119021113645748482124829315402052702515138594056579732097575155100650579595274962897708964450822540616118664067084034593613561338784599076749345260248366841412697827929227514401263641764968164800575023596735423935434814556680636448878241558681943479134435134469706238791091023149112983751636522944897384657676499954557941804496264878222467974271672185691319174506161972543600048275807369501268898198172213524657615641963011311962454481466147043205412840694212635058794508605326564161442502949246609156004716565017384291545988773158545453272934175881366833086840301388665126868917155692715968001674889985606145010035478806543591705336656379335616955154512721604942935348272560280622231220369304505050513307813105890339590317825665111807333790655045479286375198195045659718797443290467297725331447381312866663619609238684201423482066416778808345472949559712012347387501061619518781083215883176480309776248358963765547886245523547353623898143299081464040591225432571949930663875395424522266530521005173897017375749260645161276207946353074087481378287277821875715456968394946643458437363764758993200486774055220176057849209579654664198568052979710924871164558330893505702382598187788058776531746502857404982018657380549785519833507829938616772942481035558198839974283836002066772903126780974329995883464619152236155002982616024096386781101413718217347183090767403621699846150396550439965649449354456672669402274400523822644491584864355618849701926175014907631705501760726468959407969345559675453392420115262840356600860135740693151612303191534420292229620809954965869649747691610404536237853439267566671995721846398518092181105210375162067215853799172206356796257782405877580576146796810238718410579647932783721710243352463598715894650255199474639179745437148032952522533566156426153418882455957868151119024362861820402146927957952849066871061754640733782248155171453511582258524575833111336941026660940830185861436370731934505546096346193918435812825394749216157541037907020734979210097761880191280370696029795542236158267170103813039680306291633092674749298497615294497787031082269738997761487112223201084489613720987159534832798846483311181055570627516136252128706855621924505302867910259358492028057370590799198213260852522831816793126632573692251692008646403262520378683729180357025123911476658233781018593665743930954039872201617107844976404194455972567119217553436274939617051650410746933483541292214395133463619665153369825332985569670949385452185405912760656380776045830429817702606500652121562217272595120485391555041427222398890163029757358591659251742919429368910167220258142774094448099361829763025760601785142533027137327221527868207074814057349656235372941184790624910333495955073861859061990890597933735919704337113351151037347655968669303721787578526533428529501335283351316672693334211110324863177494851732718685777040134746553342434813784654308215298146147711945801039084703606061220284623140811550544997437980010450964528029029461911498451107275980982057322931632367143196664030805073005796966923036133776308749335272132097352755322119725888940693306003446553284427878392553058619534883526680044122002347304255940509057132627454276664167152305412422625578519878429074563272491813442143912664087809222182384150066190042185955423590738947808568559438069000889549514590793282541170057658083986181345957884219526095087993271393688957897403965140099258368151955763863551946072205619691444608981182717341733476602374669637052335936074154633755440572318995390296355477564700385063898340316037315640547801776206736036387858687565204275577427360698577461398327937642643919340125084172228721575944891073769022930211811840119464035293713628506821649556695723092020977017040561820200064928427566093215783211262196260565387603422756658389569873094396412248850855733878125283089399480336410109884127597326885877792081311163586468396786944298197157202503890831029907948375071048716632394828206544842903129240627321705817589050430476385237668732568354854962855203876292222644360337839053643844347847421432787498209589912829289237278776400408997118644539823952982536556263865216553071478340721855724733040924740575963345853551422659410079598963877271671748916487868793505064273499045437921151435780285140654368911924850171837117486931212509178367064413553841081215264503256411547097896336047102565678431066449041213104983830003333848463211429440634613597575359353200067065823175614374544493515033275203997424897239964400993520012557422945800680313596632479302130889342060463087336102857255132322212930659959056104994951559169129348466632374155946973412706168337737973041094190484589947466409202745247157224300674521835053712038003461319932655053938357991795183392096571479179146136562017675454418448529182667808903003559168762595972962522024712743952792166683351197769014959884639776024682406861393926837164919835051680462317215797010052315419810028153443438124670717086693627991263422190625388594960751335650000634443039411923502785726118302329258772298015678567151054298558265076049134567720216261063103434297559396187826285761381473524481869391921299465266070664318548521637329113806311777191089816955881187560502089089887438890793994554905964692156247948754113781757809540802392637164170192774408813997439228542561261623216692986438903886801584490192696641536096438908051218951015953948101034602232988344204040405078606278429690447240326451600700187976808114362350410161424044459449798340743686602854501659118061253101941152967198710995389605065379294030194726592520374756253511370646250493706458149247090558315763735793598677499200286857793833171880230780587735630746507564072653808580137434972713264062062817866899431198272300578346374444203802152441103463025690630681577612071755407160966866717513112899083168330098512927642572731667751585000147091514214942304225166473837990554323318852046217328907223997782368552118716079238153304663999352767868832186277272149432522638280671400459261842103989980698619758916970361561331566258229895831490685311349198177620682954851731589831351940255822278939962527388862920482293739209943076666376325579282962654422016573973010669327920332514335144764323320718190502881706564713026273162148622247225498347243508360469159619675832765661261801184031021769509355865066029167085658611967320490098930074256358570889004637966669110719511154358892680816707118981511554346150944771975901210389470502576373539894282214287308689741445224702529728318278819415066874691648250987427336048282909529332312227140806263995750179887514003342106162489493870198469309170482517850058683227962192352145353956249097765961014102630065615873761506757154357586843175668329251902639317795599525728229250260007385174295511655017493751666661614121715561539383811274474598738311381818414815011313238967520512020698078853319015117260674517772501035687839120493831733599477340804638971982234738261573580212153639770619404085016430921645395259790575678376663183768529049368466278785782796109002727504389538687024258994245239527382893354103114169753075343395897686344280710818920489571630765254140237593494133500247530771133631817923941003270158722088512930096672285391146027355284850772616691992337964990171116477039210042435661394242322695952174361197825821895806196646947608037593698882811917759085319844205542028762115979498468783929339159419031803841341706024239672815816190069972376608065250565556213904852596326416404288186834963160201846166102277320671632032127195531663209516310636544428361510492946449639074079761071832357605061612859208691390870944308262073394923740145486961138589351551216541136253111044842024539726302911927059761963774411907215051977255500605168493662955749069866861641985385013092404452970697867989009437643624635281272538714937780982222154531970743475524940298168600518649566451297375277297302525417281600401660729711485946454274056434619028741681590065021236887565317142101266571404946143237011693797659981111126190374603966940198071353874881055534914824397456455474457345163116193371781966826891066576469433826326450186730104547688708054073619653651511552401202283603861278114565367531161437024951630801317035328851548540982201216423512916787402428621045676087778337806981125697873954195078622105819171376181606018506663530273293005874155244292129410668011431927282323841473298549898341055206734554377088989921587053930728442381276074762349982221683686592309188917767784457926853214051922546056012158242597557507208742649143256342825987473219795072247641383899642634341197106523418926447670702154685713753291136720473908796018784428512866545861149784524974957470121643902410409273977529834725214474793779541807406290721173923397050844456218436165958920393467469065605041209379073074667819607212906835832057226216205832307466672535434409916158897471690112362802193816400277377319404532498008057754969768084670648794194239482342803148264627467314024514987243774010793017464482098917188592900872835649688178064017735716616194640398073650398234725486092156145233327612794353529557197528849696265756284059950336433551347692429950612410303587582470155049255456525521453275430285060602106199172887396147717419717124667069422347108648578162933118301964743776395229266011436941262661977856842461580363902982177272776059571955451654649165931595683856336657103273796416968333322620678204086251479334574986180170766648292565628438954279183939048942890751346920918691815946861816070164000835328520138488944244417901793689462507567619892485636968174541927815741028928880491301911013024902317357272925574675745563422305656497401771210185850812650164638653430555606907712314192761705270868538968289565536441772392689150184181821169639378103079639640334344043663356772489087569445944966162028859031171776180473004245797906641270054332250712147110246220751598482407376574226053397478632155102640116979807361755841772976223525471004175087911703901845817816514884088624629637241803864203107683598366180861708202601994233122775431547955683740457983338947069132932784038723479077799337147246127569441299947879854351082200731744606958683288421577732862327514701844952982424749210456761616595489634516028746577797534414856666328867691783542119678188506111598402218915206621401539891097348160064483591715854183443934494877766075445695856192269129543286109732282484880125236436820814752466293488657743709566207079873809767946031444338899466371250687450095759905844396856682303392331887894393089964981005748660238803631359148228231939151044495379783039693474720476573031398134848459465456006722313618707202884633018624093712352978016018013614831708219392335246884242422033067307145231179055421315306624215165383961978808480586692964988161477046598276176142684716195711515094113086953000374730224290722381579481412555536306414906695124650077228263040475476953572824324384249804576631274767020660763023331061506420196519009024182058521979095572283436032164699429980898003781091002366745950402857733754261264512180492499927830050997055223270460683471212279509200054914112556621661107901486763450887486381330289614435276287894966882126384180595396424143302649774935152161151328459905004102190814651962547320358972219535674741834641957306619906039845705466448759305286275616067979379734122641771252281333825076718168052241432487168044300530734741965481903255513720905684694268372944354260881489446518245382051243585975567543908562807802248511975924497333963582560964368566755817421942309920650468157360346347152224350151806632178078865017071957673792710887878890228967069616634229336035793073832741823124799945805978797537079992303436506572947295763145266313086607695738006600336806412831159080955543112805647071140675517483873520545266467452872657389675158030549630718780019491739091167513036380233778229210554445355428457980919177330483961329531535279046326656550568342246578707815662030621604632411085685068978681330200663283178734855879017249291572326711425327047560379921691477483004142953719807822686525596005666009924274964483082731606183737999664169370588554640055606764724046272677547403410872106566363995917044304046848424395654722600955436229620348361707911622131154459751027846651904625767041347528734346567067065938743267357226742445563695265966965644256003909626168809881093191946084609116623148284364166901398823001949947407374667031594898198583544141570383024257637233367654573877153640681780702140718598365749781573135624340584330655551734583220560659190208198676751577480347077961872932789751078055239365917338271590524329304684234697510680718438759743105892331718517303025903850016203208357756541138250287753212245024503552239041850985616507597741633311611171940931470451191598910850777636040087795437924299818355171827188545086296187632027653028510912649119138953338567360655365442580615873439397479591874306016270934939940109939633786821128685485901020405295358849351808920146818187296712851499073333555394467958777833067403355108658603331187460338292779569633229230381739003123774827449639434560788645232280900125293641419747458873000906247432795263957523963518771439223324067923509496909024766414166179948562648104170377889334585253813459590586918931046388211516381186363780868178816166691412225591215143843364726938357638279032175447336331503418592461339349328935014523420742268669210622897899115582439380612163595209707616839076099117007434126534420733563899873908289007643122773205667041836774583553641910273744320440357987525950728558568874537684787959642508673623048309978657649979081424951218829285750852598756046635185484134593344145665531652305147534902973429787112497689050953638025561772410673109112620119951813235514408105098828778770589026785878035507520049343274898892954903393200479753285952594071723108832301887059195476879531797165984620786397670251118278450449768440208578141172796005444430488584310784104966407025123217626820149237651940529431801593790393830930626695266253552942669972875488814928787593274345648564741104167813999287033121661291961443326966080711436462334787016267110654640873952718640877088616611496263763320958070154591749555577192616019664472460161320181437135241224955212161597733633807165313407528211542672941123684722796867639451161214467339343399928217379714150741780740967531049186406794495008990169309149386456489219462514559419333004601041445861273520836240538641821329761583082140277536400311512916572734063432472162529323322282828831776247487912075488904136911320378746717347504983885038497479136215215232331420962575067538511713566912798186187690621736770015292515737876002717939150513008331272786053731707711374925928004368261285820298915963807108400862166642664816033963756318935759157515882958575252699454960319294331920058525392984626801820669333837492906985819419032465627633133348834861616011534161876819595513241517133043268357973294458794323011520299217259603575061759996009063278397386078324997265492197102010982197871894054332879906136464714542690749484696139887249283506416168875251344555290998388955109957300559260616503820066045552802147655741580786352677971327490680087515193819347451685716044637547321627965029480023171518682969517086194323985434831670174123913312188534786281004754907186784422948437198413788800824309821970388508908144308985508031795667143821356726987249705678473296592980790222450351067256709138994889199501957759401928983049529413073944109685271498830405418124934014397505052791919447109198533844770793601274102805427473355459859369750664038063037825853978425179848612853530852452258286279867846696721377594872646856505352183314917606527513801375697513259780861304642084148715397716857114159980819197996275216794042161619692611406401819521723636402613963897234896584386544168857522240882482663809008813948533331142942260957361430032127296695900456618541664211923731752742530323290737786513643790000982946710567080377051781299541665412824339183016242081616890458097061487934055380990838971005736650189704587545915976103579079327525624384803465549920899919190856926786655919163242261275089838685056696185262667079432969688982808442888802188452950005120677737941291983760272233311093725626551582215359064959622793503104262125626825049738461170710200658461952637285582455724436585701805051561081084510292853720005703376908631125233088967433513962512956235387168989738631187148644920380969393267296903619643451659229135575859703193752484184912132768198205268018938726716459276108666391784744356790978785662197228138534356882505758324011489320268499695089709913134660100074214697437059333327746384218271419922424260634036463179289039466428320034670714330711467722144280902359912796869618688205430278817896709577287212303542764870126310214631405173329127109239995025196959322664533370344257288498427862247124057550089443754772629805639887931034290343948079988638884506486576312495076210538432216921722031611552379441384762396457815742093163508450339595161714047429321091334009325060049174540451149383758033392962704471854484778474050946129146795217029337844171133680124620187998271843857442272568773571909775495663552644916710034751897005784969057439550776649101662464984237317718103729963710470869375561635114185329386939635029348579029406177736236967188565286725524512058620099683755458493586386327993516373773508526630569401469990988371156581978026013732213776578517256479608318662325527514408043258357709792730025718664922907743049523215312353208373450299761403584868717541956288158566579188294652869092532937453145381839566683932417545350515859586993592095277709834465715845891521520474899670684148424252845671215824222073931479651887477456649100608324790771674869444159057619141683802292869502012504868468016892047489266161289002089644593992126912776925357124234431976694973535966740506011103950445191375276327224777087460027118296634055968912057696011136608154795801955623572211666715178986390808191837946053699000742606691750866125935819015704746394448395985415677022065468956079163636543174705317342184140702029806738929181836854656351371696279583163944433715270537665984408624215660352998789295246129730298006315061632592307584262302944559970141013906002034510613527390417386252496827406667554893453178763056158297000575128195083966060784383031730392517437223257235785199668508169740633351976616989042684647350001851211947598951956137624833892292857969969278823539535675068310445912489683483735133966039699367654845549727804157424762426308176174910992344198483208663626317361976848141206753683552553478076769056498256815428893592138933374366485970450087360808191188617005639488974018991553015303741945147622051496871183880875747982345088135172668262882964453283314097440104327532766433966191574112298202702725356677314025970924712171768350129559455772973064360468720309414929388365715043279085980321524720856769219633842858155396971486503952335422002492774929450553034680092830839668676683425289290822169029844587011519692297608040700941471776662391246110583780828462753133336854803950562270011783511384787640033284019170756899438122501690790471303219663671669308842228623488011850999760608724610130173483550645382739252584333529742586751655240815538482834771858713785973421644409118525694059846239007621414410288970818102821780035256545356984029179850287534437599073884918688418595739889279280411261012742826110903513257016675342356604099756146199179091438634773360289065461538015339556611406443752496342328227108898667296833722656856279291376927145585947862076403386896724399774818015883989011308450141516694379637333721855214769473946698492217197783321127376824470036810859910245101857872233758697505298736086352854866270310897991753479365721163991254632608447816849514734246507127607483119390258551905689035108906828279207198835874541887535850589113084496822244574274235296114646804376714635634178101497159639484271303361009307218858419122091481930141799439222671797001225797224552353733781151688372880594252435678845559102983880337115679105150494555489588219625350986314228091955040271317202966682791344992522946211499147504068942573735746479699940829878496471567931239588759503502912440490231541069973253538728663605082529731400966474710868447743062418416106299852082522053205544621184244615571188252199482203122098086596315259750871937141128101538969265353000589372734288094187545773993538929321380202543013758493041341695038578886883203185206658624694420758672204077558969159431132299773339818662405418163575801745122492071875623742592102285289004965655521233287589768094567580500690392427367843051339569573084398089818665990398914996747565477906856820691200866522545339299107744264835897333069224080353609474997733520775268644502541911261501677136460854939035803141473225633758693350312656947785686108130291117219116644143500853625108765911649613367917589013236893669471250511592631176413732267035558134096621218640471042104131428152465826237442190692890787150618111686701820871297990250650710135261924842370677280957733827656725275223875960101549893205670854394394008176701936678433373566053096647095771773401075728163159672630868145896246939692456969027148059441520824173007284918316274229034587682509006091675277383957274178187453728517813814299664731508586330280078037220861544318252065947534330261636785488233839548971449189834922594749128782442779283521228321266501214210806205091585081240695486968825464658773285536791681522036160549567290199434563242134341438427842017525908740218676119720513196576995115954053779998906168757657077653321582277146191894572316214418474304426896708830479616180799536784173846280859016376397167727485528797752082839653230656660723251682902031790503006966714910139295265347965766674783585716499313065565773515203634340152333352479519716133485300546092867853230991528561333567274159189135591738053375712341740132007132793173791965924081889682299741023249229723848677970192494563807102410826229275827812853589861606471305862290687683903384908310286377908703649813675513263637130959632045442107669141858750838471922835025298148399498927726073777213910396649296211927914694904599212351713925185547097692229799639682997799381349508354244664343989368104797866834061157826883370812292169558838609280657970333014208239679446090763684607363129408075789505455946077364909288103496052295388093425556617647989691360045708834581163551780713971787201495124865070460632013931324386731295190297607984851067461006596333990490209788581981105914829126197373659988301425865408827636138902067706271135522561352962877491494076391352939803707648167520899722468885299283434110918336013335607795828606361365301916163684841645594499506553543953158975418257915434996145075469488840728014163446239257790149422775930947722775102325157522847704641901139339766515977182131255646678217096471893213635152940028321062011758153342021608648443961844586444673508815327874578396913219610483438966103901047438279918648466895394147685613867741140240322863481202530724047108115080311531675699655636402749671836630283543833646257351847233014071459442594918773075914553829781573094855587331844577218867864696569080649848326855439410873945609139591225459566551142155776545597303683429871203542092704909052860800538257264394574356112636877843974094037178664361234031076734808771020641146365989638916344563813488183842898051372100134993405644156712509156452128824452676850071530576654613876566405526548120054214018381636426166929873591044636987512953139904840968915713358529588626883923272024795755946221820103769618827856324217121411237867423416257402843114424489930547696607618048739827650035072254456636929706899265013231450787302642085174950989263672831878770395278991029567652265319148989058801824583456246575399803669040333161042320588984775766844604570980768399921007058332434639130907210114719399724291431402982787162918437179537950192126482299653159107475176447449736888605998048622232284182982682663502903069022202381947899097606126986732472082192521061721736642553087857352769612112236742086619407098524755435015230048284946455026971416885955076026213487650501056865701344421577503511512865473132837248886819619549320240059069144027879954871912944752755740921868855514838759296416835905290765679741133346004473294553510232586394839035775777262683815569640407573541362242631708058473977431786082660437124543462500714725524950292913104251950717482472403075973755330366321383536991738504642694374269812682849544768279886697576380427367742053465981709317658363583787966548896796457720624417049498041559296907044754862787295559376920579143174516969858002644439053565790972343560989507915534867781879796924748066968655318324459961221304322671251117677029259911767612592385748590395177534651493576753906303504576626681087053081054552174264737724031152541608438995087880454342667683304949575094578593959151245596423787442581181751056600532243665007272643182725558824821595000639536263907145411714075330083414817625081438150629048294916378539214328548038387614208488185439986141166289691258275271282092958156453700346455753438226697606179229091524623278427971232301611229086854127620854930373884635620376772648003015645436611381360694703931680256605585459696389202552386230842471116752490261574146064966270395879477719199003985745258203485131846172471372751789723114959946423332169830584920789408904165573737929669364698052048117553499538943235982058134804529247523491985418753720492976368014995620138111332578167205017567067133412151870313997636186564118661965530629403441255473906022022509703168377976126462228029236329680060919377235421036317069170310435365175139029006210535610191912861690591779669813507960955604645342723943671333687003810990157733227815106742443373166077858947091439713718510838534470712074307651900781003730125823550013912531373903843934440257547949979760807302104304770499221762411360752853301174792176570290670981926129713500067091287698117605441431578872836522019779990527528942714279246351363633655697872353176565205849974017920142967063929751170625677738597500010573173654722518226467754400898679933505235312094140771569727909806643678823569296256061872028099699133440480708637176593375013320518096416594109626156984985147462457205700277116082580318907750950142252664732337160023381182132667813551538501909984905534601318696932662071457188149517133004495537689820242791442679333409459624774110042687128982993109568364845979251661267005086445248205764678798598497525648867016463440171008554840519067638460413229423362644374662303065357645056284185845515466264131888258569077170758077760348400567605183225129210021256953001846851420156019865494964772981442936742861747225524839912829707974464288936238304178307530775121780868628611571957644131103453481389876292361715412489601515283113286377709070748507952439935163890748778386878621845558334675679534247196652750754332283265593546878405961209187007039747812309552514686489900580494979905422622414485201135804454769943608351230747811552056743283039152397034459039415285447537496307604579267419336983522295276515086387821384087529961473112518087680050691337544302913387243892770881916792889059201200500503788889492390416406421169319486459285283033298665566494045814238866763560300152833039333598651730190254120278340902486045260847841970659931054787270503854232426758737882844047710988649172963395104385493857966200429232600210756767333621181564141579545357254079879322542883590695441417259254559535081690666928869761034113864666628960851502440703938118828824414745580724835892605886553091017421457798956719463036669467103132172981479309197780409969195844682339873898548594967734146481618414487666063533792316285488208196804995980722041597159207337716545955926972238652824853174441516453596684733023091410205893825153690567547772109328685877970330306012311584134690857241857296504652259340145653054054723136982702828087041325117005414956794460503488053129709014970277629789197434160593445140901880102798362969123325514382963072083586290284288540249657871620775285413387437767426887099430133036864932115136347993136177798638815269151963346327925343387108032222838773320698665531263361243243860761562903927979773250164830983116231065131507549264051628602159365276965125161060196875584547355270681743389626722325733801100521698523253331463059530413666649274997215230522767954240774519407295560398918888465119718248160629769105170276200500831749422415264622195627080489005052141731685653831018652666137470567106768174116553183965042240639172901236090402697659938495716152775335904006661002997291686348741806993149814405581654156478912244581041865254402689520268066799494806787004040876985904452628176810388765753195785598296190115581690997277827704882316070412686588370969873356234954983376464422954082103175579069911683558824878890774833993636465978632165312821120264036951906266977408361102544780394888464156873826885194692686994716571801303876707426913485405877124417898545674601979851804785091169742564350022593383536968049355261934812953151497333030047773045593718361767662394270912729459323813989558490725350424165193511276300479760990252791306518973644154288366510770196529701654393269314637988863629862328133252047285419537981360424421048255292417291061297886900946078299027218786320146413335932341079543172469330151651706979523040725389973174499036193088875387416080090397481860614130167758507768958509894175550491072588324324170629457501588157632704053229362750504592816587655261331817947935377362605545248516573990354161892497517252519914242735512254778807988731868647806720759520439900564422790501532561369800151134130186711410733461856945618587455440165841981343472530879510181636367262182797362233232926904836464070647817306777024933404716332216836388946482425301757255138395158559832203904014767812659492259712388671286070797790297428571887565336025198105687068026629992332105666366870900902315463169550366160193273365475130526846579473109034007973471713302760214322071795462949012201018512615460428309839223738630117593721734335764617464698320571972254751506566309843248670545538338816835844254761633988512884740731712085140635526959393184483990710677111487220422578679838580264783331284971205291335600119972662791078410296969808547479480190188397730000771980570139376695413392049599486531081490920170611405432403787149333974140044608658731051074525673713389834852960316817628398494976467254089101441095711001537433334075280180863372126478152587151757078016592665743579221547455407735004063900239187870472386676075339546279809152249310746233301368599979243887830242898937251248973834405933968806657357358099307209451561151501441759317462714619771609558640123402015704390658260091536919830891792638724319736983474372174792242044166392915061356104174525487864572697199431821132906632509840946639818288997868049011414258221821004206174537317264407103596757647637184817533701308840334629545881648631985716158819921712057499121112684066707512937058365021623074169090165007723244955992981111449857553161349119505086895603337353036772162707525030849551511579123714701061089521149217397058847658192169998719187608218812213915702007053158959505312830648443749286461272638372778188401099656361622549717291723784870749966788446731095662772578702402371694542923710852673646583189665308123431557094038864785517321917495665104739646895830000163605479614071615765556638271099259453430913519163759628231425988489566384863955053478021248071105598734429624013860467558768730743525321470469078363198853840849326000712440044777238132973652063973991528965225674725463705776839304531485184073519465268203048594730011208409279723358085154013139033992831968695278113827964613266559595188738075834702784757756414897035516294253263964243866102680159976122384170569885289859215078768403044560280612547939170668325399574516851827983020739895271872013301038507702222441497198269868352599301475110002776991817350862510345362288451794201061898970986031824821058562529879359498733162694023410962279926419613497791190520247706242981438537539794539629654770154043956121401367386314086685659234314600545755787557109009088597273395607873934747350878313507141343909339628815549616309117948474083114273408080783437990743031930531312547806993115714809264143275223410591411419608309920541027481305432310311701566532674546082402873378201158292388973792686404537588195476674799646381153979648150201549118669965101310673704329579964184984086853481119461784674890496537178314455071664607372694587760041514539675917030252509752715540300747628222642156999009127663133320914380745249205694844140413205615790587138173933865903671739672807640942914751994926283619173841300309189519397824371498466406992421941072024665060580622601852725917145223501434916068559562614859810912940749531734812476224943937684219399719261596257935108673420167520757444762324821471815864819626468189855899379339350416477097014596261123667818280269451207138449783211380504959708198467890000577739010742499546807847278173318919093088178707083795295311750687928631419469076438077603779883480288854479822909788985372371068251522783512817545052018181233937441008344153629753208125481292007898440177971992492398236932625926568315992779199864438931339416564889774491348714617715193725984806761409093346946329077246110184123991475705674124495578515126567931568714197613736393859433886259862935693370876685523055997317403750839983940818887523559092181131258283103730837519252199913929027516213950425286955029799214649968223069267165987824000715343194962719383661575415983575472179021478459452339307560487509764967498650440526609910410293066393761843091783968790867201584650210614880042807990838077817389812628811122398668871091358911965669854902214606356202889975373526303484317991298470452339896052397294719848665295998997650198314642478765960721596046718696479261185569967178262995958325913595137980343307579836675332823066293207003422677931199449055698502272214103376928549921818717133853924697068833267208627175521488514266816935099864851513947485321612261902465231750562733844686039167120794929201790004490713376085752529311298089068310272327242249627563239178707256431995347242401253769237188892923898741505495535286619570262356608682143995794860541164874720474660568658808489931898086682909929418485006440032398629272867369611185410723882468148776326606138766632962867445978240370972923742824459165721220740688998407795631978056625309535589875130073679073627013287134990155634807122483393797998288344479749777332253079440742375981467411839187578388250798925553139098179619612875572936447257937933313745985117507543206101636393409760750404950357300282998847049905592064845553317654761169344064228957278939497419612764288628189218706697119716439610219532927407704330658803810892483914680712751162673564175515582006466596183914619437638986828169368612694231349547821372107378434582060745941469754671221492145081184390637478072563374654407245724430665917160855653868328099606353324545254355127074593683009003177972611894826165213472246827068618602166329826466736010161002613829533329750292854192391851005186167929510797561167779776754790394608983134622629637721398869861115223805235104597385911321880918050809502724063659391327786618943270823315220809921367645515922473474190608265517663278959059263121874523454778148276856346132610716088273081612132240350316605834520713905200450778805846147662544372186549278906770570858323443239546979385044227177713848843884755316425191200734458559739780315021637952062611221348644285542412828807726892623569638907560253806864988623854473754672865798928001230805497414695453374940559920137366321352835948239894165365595593420788200787264740517131907647021021561326977776107237168034138442427297874205480133921326315389320248102902951542599370134959103929336910885416057261060721076623364997975904288008421389731436619992481954656064717422032108231402067864854300625126914517006693016366240025481065640940181092871510563693922926399169056071697592221995768682742559667173332674521133860769972485330614211435628575827167492736728111727111461432910090908360092067787137647960277421366618203192133276807817712789370808074378605320475123759128562704997368224998328490738420513332264562561047240480767198296995995809199181134982480903563725416939503056066891723202629762797856340680053853671951658643324576558451368937721733877603754729643783929899084544191827770252329724214084087030802887350590289210660453003811336118608769495459502083176704634129182751955106251967248866653613265380504687462846525787846402806382552193280947268681176617877530309752933378673619439747104824469907168490706624327421128026588445659498987207194360489538105840889979881925807058727666087263681111549799937268105305333261813964332636217636329867666206057773856760035404738441794130129917179086937164952053999258472954802728534792706822628230219739407590373680874269736667105524768609158972250960555213632898892657620339093322084404200126457182485797833042764502501092001387200478669798357230675876550250502534465711844490611421459910360316440491810360890790517475179082502146381267969875443658721969175517565412773928295836551525829301709622789103215202177112581308472477633981279383566009174551155965132350059288617918872324179849116679582252813715352400849758452164554727292999049273567461561290709988272581457982933955781426534866371750978734932591746048465647123564057345773801987780673569766436191486535044263127981562154515646386537015038795886853394920672934958894497243912156419045599596638312075454833467433670211331187275886825401485250922587410455479823194998727630106583837359996170747735040439604126111112502497432761349051653176608452314865485347218626941266121149245141814531683137102695356870172972397363306437183220234773608309818321226440606349403940146396308311995563514933141713932219458678361924031083907373178610366045135266447633887426822452405480674611409858651849509182799350631622334825010442367623940215385122585991244350722527086599743221438100541135228885082905661853632269108295962591011852587876268012984034138175760553332510771115579200763749491636193191360727963430840293026565367684265572606440863420213438750000088013639919219326146963017181301439126432066813381362861738870025274620312507530602681663370821645211198846353502555711425379685242409332567944631170020546627171822915264051997693528932862924946459054609014949979728311250959759073179649885447057308689680940179618681350837481350600720896990177870861046951750221969323636473360388255207069315081100406978390746070606424679802301402327713242804721096712533747661049101878036210835352297653645086171255469489572194189430862374405008692519058231771151536415445459268558594457419052925645292058875554713619985095785626510746262857543735486460722833939343666918938655361667504447085402801672794584944881546395058728895094430276395289081827410942721435900328651003550976956635705231370017421234271940173546223334987882862437818549257229761009472531376045880926464678860613926831750342274974455577340562836832624062470756943430952428378115965731602805757439937689756342359228341124529315943340604349813382467810791852231690520654894538093317735900728531465003813249093210598379001587273264559166668896220859550543962875268395628596796905808742309178252678178975926769395213419312913593225932908374222093729642057232435514974616524330917560186272646332685486076000073135623908048927598191172705161520970783494397913984751842330387206753094762872110147915840127247475893484590013809621900800980022009736327365171561368223012397965659239450250468271179378048298456019283146523041668594668797374309537346706671246840025709207481793141178346422236737282710297774805886503855655007256091560118326055266871086869707783643997941282232881022747441903085605081170119394614117440677850150601234355436639024293505390506409900694977905746760486404920418330067459504888424438870166089657123253150110330591800579623752547185655322616885934534783173191934992086994684272050564769531272898300878644442698275806839933819322682603979793293912759920297283061417729617888804504729630670320443695231439061216065872596908450853836100704391336260875578618116095970924484961143944838531977713622404423934860184480608427033606388684716899643195666043334524991714305398700927328432426963032399283218682916838425096125742049745114991264419526862426779018676634264556210015342781656623650032681398724058556572058113178229332841605442507974536670483729684572034926300535531751671065673723632271705164311930650724248597172122348088812587272231292130857761616617502444304596017020272182185206590851809608479105633052248305673490283841338785543649626968727477741628404609529298007591090985438835045495456787679565421587635904107740211689334723427618223831071836641752716458731774601551480930013713212408105592372242559275665450606787309430038480694900164886673724975270695202836958807138231650674806406580813762535096398287844691094833047309249014526829599557945056018956537751989846612395216438466473471875934755132419064196460685326423531108182394487891640302841877740343978904284301174041871442611212183405530975262449303451669396478738469239301869375990905066829939544071716317800181413052931833822177459372667038522023066585311368412202021386609602399969621909653456082614863725875707426843894102184825323111691214167020965472710091066540542171393452129508314452113002521593518909931463974519903756920620267272065022616554940165478403451102917388555284438089400388724765391039332835803244198691877249360772244514411267690005888084867091657415284887574471489356403753524607381460775728643382495624344757255304287632227822923883230917503787305273360399301832827536913125583722758831244798924139822384105056781865218031090584016370884833218465810283278952708542972542506043222054622189174675772948871682113439358480442916200897788258749217858314209969741726503388274186825960256486460610195352846212085876194426636578980513167119846995240876480362646746940348633340739641095210091017822963333351159575730921697849058664571578677258629748012664862163451716330921356013636067365209432351713479773015253361925544428266481954426880064840537128306033355819534461692721645561504140652068571739066052782981796276359868886224017937934620833088821632479631617930792223692883673690721618233983605175658231251410108012078445585826893606709290561579616434842314830274864683432449929804606174083140187700897249602021890320227579073361599839786008340545174332953271606559136157341911394575080207779792527949841398466318741467089937945292719303687696036966552789238654827053779163232739586834726609363606832426566929923490705960581831608581559662955009389523192060040212056676652889032057375343825285407046219808325206751323158368216045748786423348760543570878889619566230951428042634838748390470078668087358086114403447199917251521681834414117410540127694797138351172763459048999307706089349048830338902262252065735556633011660941047695110035323639824774763877886078600784361074090059025765484246656745947200385622033313149011406758700306663028890743527135988013984932193013694890195173692370746825257897212257201488717584398960574733014601317183973632025457555716823448106397358629233207196033680731664364550934943038654248142104055444905241998019241731545552380260188119816063435418035659348073052341754144147238466524346331159627914583269633969147162195978258683339750848524032112214957552853236849139095707491104801068673556713444184512443920846539927130156764485889278029994416237724171297760466235075612038456073532074166219343030748853641647107354896376337854198194057138730735809891777962400340879075072809475544171165232728505402082433602361114789800301643851759990163891174282151478880055936021728700926782196005201691122183329063729974248091490869049585172215388692535398186420844133060217181660653711433027936211067610652953810768805292679817555993841515462105757962322965198125801781467167737146831307285838517867176249672052504610860546035272390628757054712726692855714126799811084807121160998735415033643101022738037241319118944337314307046415341611089470607802170556162047495186558084662589515725766849260219925297166127330188368564621902655393268015050137409430508799457277736351294636926100584522936233211692832158179645650982595993799621063152009231441033380300522197825382595264300079770378473402240934655703120792965107044997164988979496777316683648843610627642734342891320703510834415514615691116613841050062574177333501416779311854686344008970010067276830788698925892077153113882461735370859642171441750749305124445903225239397991773084162896902739510325798467551158496221736150452328679807506514197994110328349885567248834178426917618274160688211372369328708107171150880394036744558600043886956825804048697601557472905296810225474221778658158691341650316448330158436137143565575085593079892199725447390119705405031017996749772251424213025558364729364801072179773715718790266764249260128948763678030954416712175459710246264495608068156556241480903473883225320699743004077318232051552528467703784358332890473728492478914980214670601517517534556435117036636904698761238186397873460486080172403505840874733943652521981712327057297357457534132688713668231991930196144273745327626417355293729576107540755304238330941529540320545858396778871380961152206648288633380021710027958063606456864604162055612722368947858645103672504539184244127534714651694505145635485259282415734498399401934969142793875760866196067212498402088807086112309938873560661419444850310425650800035131929891165121343972529357731490808577531918588341595155979089636111909465107572477488958468500500892791415986825442101012723104887613615319625646481464352458255091614019659560043743062317312408693550911851615521810481814432748211210090646525069169737275901086434573451299184350834725247966603292660312815511736648638768683089954962303930105656467534091790615369758210456154548939962007197968164532214835653970757710574875316573142360578442077649446171667386439575102886298110932788906385099084401780197003472303628993549760258480476721092195039758012706413717405563662699521146847031885311281426202440553737084995992031757585214240418765831408757452630024355695429234540367761231250679668366083701223695744927718039435623838807233108707226774734867570830513362759398536828089875316736239290917862878904857876112774446213412332573111834856280544993906020265481405755743301267559679866164997469853504751525449873926309069861860386289716696727778732520780380382004405043260307594839963251442988549923035787970588676566476206590702967367383938749642472264105735135048778477663132504326796370537233145287746617814572533381616285331578479852700946138859345483950182244586823709305342316241283352713413601353895032659070004691410576057554672280859695467076977382844559170229649822688569695759734383411073460456510202444968579123960423759401682962131631999769024256369381999126268788922145487458433014801234637895813931084248246043339532918676875363137153876655307878966430695861428712601026293887236742390486140279232937859640357250924599215373702024665631417755989635796161505939177040240835924119003661752299020502460871891387114928248604277826393899473550105729147836539499616675902130814785100128886161985854232247882244338691040521568281669133918319399717633178082131133402727993618059437932581862833137276265304727370161453447198319475366684384029067792695375954611253335040803422529557149102514515089028347072838371782506061527215071915973819667233545530188390453838323203044426914915781415791685799818550543984624269228432808944657414486269463899053822867125463368953479674343467234717700091668400413384986456764873837565988203224685680216068626906272763086610131497300710258314486638800844434403963466372649321820599947160015548135353825948090022621882120993108914131255637368734442663239796629372627691731523110119951089646702541660208730467049046083191994721061618586130505096783696939946441685649325551256148568702667219640418809336881937835954820715437745305109021292021592277661017843909864706765409596506535032175364007839035165630366908802383776789608823727958108992607378002167751409717069953994459052891652389417163285291369798897503217937639172847850615806156430034175708345122904443525049731224849277788354577696895204913202788404483303656906598527158071373252500739294537327508311537342087014019397579219800214521998045519209057864715028146684240265531347425819895502006727755934972960786612198183044889538176812818023649003379966489383211300765098715944467685106876623637349002223006402486245480232495152127122020371532184343470701911486975604898670069236485245561917133361913409866055194111650487150176029625905803054482079429093715568586254823555875493020528747982351413064975795419505434886817455394337021599549268187487683996741531531115143287488379598926448278806200941402101510314038879628078077321578561150392356997472196693607493244035270139358566414562697110762505682757281820890489965583060625052894031698459444913319589834845947174511306547603057679790697290572257586321602588578547081218686114080526552160292420872817207495365882874510776365222483336903765042681345891754235989151452589393465168289958402807965507168732765088346325717664578499012099680857297170509669565205716048949704699086063937855073088056440643225152824830340071833015147854003552501557258892007259549428902789800425398704852268820393205163332410837040296316284022445544918123773911208725611505707776143335850431548136395877393597922717561150679904661279457461824098931264726764063176961349988719238786042385583289697840231041385758366975660866372908068813065745687251878267913595939074369778125726317239289988345641636868756660669948259315655375435910017727825087640440364138190622663151879064163191731583346107677088535208220549014316660366064945205967157023870591775000046041040106376045029156568969382827919285844250773124487177575238874668161646595495313186371875877265627589789377692161338078239035111362515007510920250640608848561966398936383006700119482267058608862061208605056729352984937857846878794622877676508043153345650620261947799059667405536931393007902640864798967454689958483378600324829454708237760031843554560826791053707391502536491381948272249633207754179126981733777189750022422182673771873268686058810523833969299758563854055646477941131359429162381373763292141541694506240863578830552117535402477035486597325346766094146598298383757283582318240315537437207111341482488525354027877725615922196771663674167495385702671882810943989465488572870564576677187372894094098023344717055620908424465547219832062425889042042333357672740163210988935232229297534220269928712498983264902678243235227492736572625163251637499501998912970168041752639116787052354646450163873497738092074667030711026396853032140446300686733526668647085528066928001048664542120152047087267441678279565235303804834972795478953388103208543327253475109158744443822189999647253459628853529770152268174183562990895338766808307177759518179797077181544879736164572710154610190127234396154372372635525817014716745986890845407869283757004218446702258525422480304542506499902167693600212588184943905500739452734815042992905205781858932733472537941777076473610296447972896760837039227639748410379265910784427576572876812220750357296365183732763722989315777369464695195443639295628296434658425623754183551267203010784563566155612224469938026562126289522761692494246952215073874469029062075970108391818837294684737292947293471877724072511655939796023359297920397163991787051552609270388005085964646819897750173556879819554500609509188036430461519756351357133082715799271187507450505594599444817536920668988055335202514408118042551669561977634665092085416866657911708860461561938135226245009533831461155295301433475397097993460815563210469517367494141697464889546927097985544338751808964264746314185064584279877194812568473910542594219879025733279799488780177316396255656550244975030200113489350348362814919467070569720701543901105378876565260534644546026580030340209875114962601066234647801783524206925982115050891334535898131175891351151919930376084391259725038522279486311786758699045166309565249568529377439432123232004494822929845882035515688220322935019863216798834555430891848147258533616821462723044365270093948831671211448491979214623491877960693856480705709719467435036314971585516941069111624926367917342311695219275397283369864454294045485616147872242588624325377448647987441492187369882905811883716570746016545859098077680717995083638250182069819817006559480998444554307708555275416782457306552049270544780509436074869348210082571818558009360937957206037848384271273694710138013647336039892029996872093349952777366628368205627186371093179457819099245926760764262442148105795326538613265107305658607502866918220909281960378325880611114052499354585804360737911739888280632498877753346203339931330941502022344865837222466290670585735212649018669648660442957242241659441795330500651813820288039525645839441516353760866519788899210911589601163161237197770774379481467725612228522115030437475416832219912263353212102666785644196964246125738345376192815837767549163825076241564619249996780204908805243382929005730664164177279403912713383286984420109188749410050282849067115272111964989803560016740551812460414416452355005294572590562868537902395133028750746582647118221053323463163218277307365603460532234269400605796043796426787167163808964764355022765829794696304161642118654664492101334412896487664580085002126984297543414834390914883640007718069594465303906343305114262064121390853458661617183537735384322968706479911490811000828037736344825686338059247534145600478424345356679800601577291327041999179523438057990405158257861294103959278244677398716859735970139539234319622870466947098465348379905025898373379069067177945495532518895467652427601005194009753336880473390582032266586968469600939978110747369623230026457991890151865278183427816960939058715793591142776238052623995724494570812068477888372986331210966693284942176920358578653236679665735337787675834327617956149725538815892881101930118453699134678123385459983868589502403300553651389448403857390653552916719664407584045460853044254116911962575574614831699916951978963358922291976870963130575744948827333389999687208304883562159467042293905200839942556486998001055320477564289074213070326446358997488811069435897036006498599697774127410479603204648540968070457947129296857899020785317893241711794457546257503156642938667436578193951023962578325312304692162054084195758046903766330884235383057421550683555416687214600371623134126543154128422886319842581055073734829592684451384466204183359656209721478003333829479889431832861180510959467005041395559898604634830852055364709141822543135561521606434214081922371745078923572323643642721791894879115104823652735870969198039747556096241029953455458125328118200169019372567433201140206977042720388593904319736981936334060105055222797010536616805010243117696093750429348818530553673299650002945356314408139178410958521042822471375180653659716304366387604466161103053171639506311008236577272770619332610145128894869587897798911067632985703230609468243470021044676243924775891520462282937373678664711154311631002693872056900517609878373898735170130222772957114487290010852370286830842672640018587235656258787764631963413497528739895139460234934228079485629399923684914210140501229658013409923729358860796930804739195927183818421978744129411593160146520877051460946713949557164216783940280114068060959585970061875001885681253540595346543125632783101023570626142947685637031932178247444236430332513200860179327324920399265970262046769642945529389732891187851753217751107355233460805946075666274712546558176110977113926106840867007931772484042401713167014045289997858399130726128765077781909361821023539069648618644004359405379655602461380325853460657450391344050611772310933098874326871398253033575793807899192622813067565332777519696358593272564782117367892898756554884699909171392087275883733536286708463539082889720567708883523156181295165951653762496797100325243742673807597485271184753039582167645757468533262126174549849730380338411172646333362967212534330322608188326879524268925902400283275134738736577207353308299755200937975042818565091945203510137181284628305913718965914120431129865041653786080077429282629453962208386259158801729342427607320420759616328824353873362043741602959497377907253490172128256111337056859631019047572689352189408369318502741721748540305585904777222227424246736725565024422712499874149248162543264569266488895703138896616070879188621773723457138526708410566658649217416877705607502096311207143051331103485718823451425951650588452909079192737569803919598513138159553728087402048022760104043621805109771183630479778686205391013977449250864520657685022958221898715329477828234500484297813246464783938374732235974206868527953481869967526845898817445707965864074435827374292161462832707929260464218858181134953659489649847083317666405614240504828885148643643038842905033701082410219846911610162861949730304692913462803910159277876858337481963184738829443540207127033109958034854464889365677187689566366646964933245112642972679188204474924310317524981877990840398927249923776653150953118466346131618942100547080645123478379950324524215313537950505248110322496691310858649967240716114106749038264755987519054140736392017693122235972455586791441083337968232891564605558640537800344421590624778782509933354160789469368570806437117235987791739607143896509233795562937004930075085123956930975871993306698915581481933876603451525836350307647478256886926882560518617246766596411226625718690466869538051947648193363025552509233807540638687832787601922034506166381771309049104570007836529485313613743884932776734599298189149620113852665700572618972203398002959063258475573762456753251513400662001351517416150641616673564498708269657183796340732556112034626646115473043652017882018082459850631894252354957262992981451108689000770112207329927983944210721195562078116574140565615582918223857475157595027966211488629653016987366774068138478747472046564792279676699214991203017283010728008996625544251588492386303754822952040581530640427334393468375063332058580449184169693306405524255117976047488036245204835010729916224563746573221477166003960640916351652894387655230383686281492837204161043559225815755218677914377557181687955822467849546014355565347479365545863288715548694469735576983983715029783720935178937485940936661603909722602918989273150822085963944321226983273828933538170478486686882797845753365946452930847165537385803671833223020105564875962251653214481835740394327341666256245034541450127446909360690571240598724510790344282440385418908453866655715363359813913048314107325197260358647644505083209142208785098244709605247257421761104408641102480682262982329787126384161173336605170079423694749598054077044892930076796946067241768883106402701945620146305973992138940248010902280603874032606551994722440384214500717955331333364348342693883975648123637525401909325001621557600001117821254772686816798552183769088691314300590857021880258770905024113676248464732738339081868381802231926018050275069502533655865596992849819408454762704094353087492627314837094029568900533451910123026820446688869480334038917905110282647776584339448569660816941127564138192939343035116708311308033038705265955633020850198455427200998039817829783074039292664446870858219556777010769827796199977140146226664272004351537553050403665951723370061043919739831647799708313306069537548531273424493947780921782489091916957320062195426468571150057957588415969016246422611453344490541622256604767177175547593883106492492318848679251393254523525643352750785212646294447058984413973387454828171463567666691745460423298364819127524036688690577546221950335515499527906715841352224913549850928345751671914089422863637694522065126366890373938733624887670922749852643765058931727682056189713319270227961548898098033041784353415788347363170087715933768721564881301461895451254055658000478671385014774997368282499458385681398128899497697085634765295486588721204796079537964549522402489624283355354400274004362865348071085767816490301700117252139599390962561217293453706294641819452632135079540502709044015667703995784758309304970550972698086113298540377728733990872220234597952959923636434967764748567049631983025558561596746037078134162985534945863794615183302526727161843412603524330434554537566155038761561577164669047925567745857865218426204342115808970777923018538309894360811207529295171969633514353211060880270768756214268311076463436084343588958182112170434890118355358002868902677849634639984674329051114553193991854586581274316884116882013525355048199699358190233824724342126495743657130673785919214014184527364927286101795019252573067281890424685364896499801456495828724772996905183354273866779915130088039274991590625846470331456470435667125740141945579821233615014727880131826976919728421123408637777379496938923479096262333164175531265844355993455492210029478600781097957934944502904618550952881409664661780209315835849691077321635499184685933175468533248933722481046022357901769378401543327480024362901409453417672194730033920683093636838472935106183878478747260759911434308131116893202742306457611304000035480470838016167940041703380950245775414361062668420916000899939403838504674082837472042907250264425254889732528877161977373170619758481188613362349129291993549381083001158846503247477420662331584323467984788055803928146247084613623544446732894027392256522416630463970481337580320269064153482892590313578525507344963385881864971498847249827612909052158898713468952268219746189740377818879128433928867076901050620965127096140399380724996102836421996005054145231119275022574618551986993355107239391984795551350222749403824732667779824157151563999060941116440543102958181960741411934969783222052067114299135555977009873805254853729934186453347926608048698487471350980142204072344138858878962976808752216019595496711763697795721972766593509359735243753242286726526439629584776740934990590336421006802267954321229403767543142012343193469703246334951830112480751271614711786029280216241571725874446675367725240998795953832628649142712839882790092819156247151975132372423183642963914788519599678767630838266830045121707580339113579991849785877256161732731745599906306953375620289404273564254989184390099564671006962582655955059121980219872126942083829599912494035946008861315918655471655701157441762253996680464397058920669710795484397813394304991213636284944716520008611044922977951978583591113090460253304280676160002527120936227968439074493581809930429247312160440322821392159085808387791855361658363631384615511501358003846879119200860870559343791390811197337703352557308428358595472352901138080699135136320652953051487136839928735931774059385563332814494752569015745256927194783374355347006583324371017560143901904088085104251626572175347144493559740083253418664300505841149011348759361334897488626906283474369572699095796271667374490333044607722362845759449730258895930287175448880451407374299297744755677733274412592477678252492585714721993439041318908063293365830171512324754086701176130473676215523475444058917423575563952526359153606907883618897775984734344808541274391517848859821631124667694229729429113457339184382264331865233907124404134316250176623301729944928890593864644412370397425029285166403585353879675247537862999939185959628628621822606140906962839996368212834609846552744203517187369545823724890149635523216043240716566370085538631355249503365015308331618488615506798687974847038087081243733558876974479688173269491333407328820098857070636483917772664813971703280811100575391064681285198899331036369817719352150422320114008961492361914128187943434121353829511725282274699037967816261479645346610721303652024811485659918533028707685097756833481901208557683197328671249185296468541728177550240955721969755868457651617991622929711180901671657306926443192128596639394369905574908057792571042645978720118076540759885455498184971576994940952246400136845256869447900874894274067228403113821649323092616304354190482832119538020627085363172279881854869975712454194467329102452372377033368830911727299874997854100280553614630472547784512742918899484915678972654708672792823860034312779606541720555652984825340256172809495407527596989539122883507444474476709238571917058656846586008415346349738496887226815753793660073355201625651420461991895484740302463842664816591720722287374875913274529579265985668452394848148827732249210189769094125600073692687895066251334887075435038695629252913307173211581369284099731449151871597319953336639530224189565916202466137930652747442926644876946956018779661200377234733949795542005416442670334556313375569410052637060963609233270185463759621890821258603938630653378608658640966261836652814582675382369077773281539752635342377835500384472905280015433833835829999103743069776625247795378563734987524718755085708616498221530604096101538995026623664968845355518448063358015907724234139383410861219863739591812166052174975136660315050976520700590141900423215306806277588564446724336702162714292253177578585172615548137020329858452290392266960380069905578424106871890226843460467960170841762836720621506955245284961284179620507607083836653875093013958066145068846812996762626942332236608733960073232412466150757541895158841591288928515845671783048319517346208307342899902959310662785358657334869706867429733064116088375200446708584016487655642726663414955635689695289728526471888886455231838711040881748710660997529963590591638445657857442848164624744320336891065290551414558424744224423892568865050481465861057854996390050093840258480830497714087650307120277333841333918679017814876555580149147942641364585207277987651362216999588626716502411278963127177131235194994731685613269938291117350482089871778326491836699177099138006246786920595840368376602246425479265459810528930728522860353486814129582094188221578365141488585153760135267161643223071022099181957694841398043335128836061427412467157836689548706010506513684872341042417113264363121733016051070096837020867211496651858946622880247887864595568106680904495475878140470188913993243674615737516066610180244711925157998428302682741193222259620668542671926985790727382675935015859232663590986965692619796638770343427001090000239760111917947180783514492821686389879396708423180008176672900546084245174476270837107434089453279451449507224555890981207121013674781534366242386924510305297347243337660353042249506051148294648032586915702694710735539319938646639256431647872538084211701833523228847957648143287040176169236047487001102225249320225865984326575984865464153574936516299136383538945035378922777246511695374469633054236405881298138374134571905967038346756437710928405851677808630981007018871699278302279174812576831712787278248548211357224278020478979654360133775265407230765586684216208125400317698140046520272699979005467300867679890535408958317894109090713528583186699541283017322291709596317142018864687556791378022278589685791735434123370819282428413816652818942057810650471525418290837918053334400135050883160396588785044259927049761083595483654149185872099020145961392058638870629285455558733539729832706826315905450578656498731429492316207422873007411101036769162627217662188225129523410045520644025505195823505223831086092834933796918236046346308600662078500135010544018183660583623873436794821022805248871720847547018654297114066651337533279498427456488115116547261437642958474760596518632688089788675576297898370165056100579930155784011950334141900296638935027299297132819573275017532427602435039458011761768404387219894048957125541064896448732339017223501099591343554642228901550044110850881696232833888892055544191014794669891379946735273594022253227229134099302314609804989492714095553370332182546615389065106376616817881537791773104904176839470375627288730083248524523300430093102739241283532668695057049970530703106706755767731635540069781743119358156187997014347812374691123461811576849710824603722585215340359714334289431152502787077042123917219914797318236370848351786600369942984680902735340509998455882572537162340442614484682766679740280073717034437603709940417431366070895373779473803923838333721011271957631218449849702958319688402392383746031819732898460731206491688824644266028305193504765250454698568273970359180790865338548541637441557738308479281856445985861720363473468075287833215237704768557528335824789439450824016858781346702301304631859831383538600332131919352474178464839922818715850348761766442610432523354776647322034092019605596393263470494107370067445036162566370288682601162124389073239417528195671578569327522508714153636559918942089808545901300507305453511643885665673935346482000396602230691500898884667435069442620452956679666711338200065492413329909233098743561340413279460235311999913165882204553197308836427442955698044516477046168636050776303841089069016369233162641801499160934402612724287096529641174150181525724721336738041478318041150636978341719575232888363805937810457613691143749570637762123529461088900037879345122285102173712475069401112875568690843021693308652439911411731020626265722232703053740008883997163000575781425480551279377009925715843778025584257238926900204855603756056842899210997064944304668474772771315397115663045940213420710365726110889083291116711272759991206837121056054231819348352415638527500265626706287670353765289643237179247609630185556579990557998391574417889747379469805662791777229324103837828751849184795827676527070921420890799125204289598856381919144011206931730735780795055946917608417391195207801171036855865215045399654468461679892266632754058928287170168143734911058874741252670350401228415836556464937422849558735498546166844595765126953823409825965798974572755633572582497637670061570078346718521762679661923453190900729068220970461062860878584530485925573539522438466864504247230929278279984521394111150434144419461043460567589235286565881710546785740596109932912529296003531637384601906172096206360652163044355441094816167477920563778032539930698398426999655297292980759608088736839251304665671516211811806614081903532360883088722276427459118308210707696105220140755189005885050176425185062477107331343694735186502286909900175775521849875490816885496967225197004139571936167080304275372972621337712840494693292459607451939172930673087138001681409705208728774578236424712203202928194642794642149389064737221900796811566327610148066424241285389561686354114718265275751740017460250969876199389658530339633784141382355147524310989609332669793936446475225090458558587137729998171908508635236773148533714276112964727063309548118733482588994255865833733717526929384952453860169492025186046909792547203901702606471836214383271789204277969266117514797540339034450646652076783757426120627774238010339808138675324606977931606053380748031556545804662938386540669361510449182898585680672839164257588696427437272194903680988600080964428039721859729853652887357640020156534024801665670814421577923874519589262764561848567404072404138372528706832174017564551715119695803627183225924857706808284160614197697990236798739236880276309112149896291509007611262183389518972762630319449494065917483697727372005464083419863897516517557633509716515173721600797335965365152264720952345542665828508937039780756559400719506242222313801249774999354205560755193907776698221129160797008096726401164947216768536918598703767187822947948707736049610705822639670011528858589040836412971339949237394429333121727131321192820381246484027282568672195004916404649963628433043113197042142109178276676854701298088280832645302047700823783247645245566699428823048464123916105218209033136543561039708733117162266086031877933669878368826982983289483332695074612318006855148741540407755036704368318796104365641676537142522594514418470859281656544673641194035581441709592472609543400065081691306136172660820393433085539956275433545938876147639636905139152067568186218436000022062557509552907537526617252427144636898277540301648779797572662002253495845698129246891562050429624960220804108261033127883804058289162923778116891252634572812162091448903393471386023013990183514734496612484670668722525623406159298219991942451364239419165831986825243250841460338228766483307139614473269855369089171359850812365425205497083116225411997951908042348212738489664433816887591482753323853920897594132767194672122709358867552440551882150466231486069213972195177579338535474712702586586328410357869184516281333385449796540923913577454235514014414094224222455791037171021698294418304900828764460424759330160116389808243566970041996651752918011992827258229634042296098083457303144111125162648861169897381784489836130742206735880392493694489567829418195345736314257067851412362815105989899184046562744626130036146286281938898179154904748968772076216552678710772745196965800308872507941325984974070676035900204106421778991507097295578205524717540538977547925309284268960160807962307665803497848653859811874508651554900581215875980204848101014883350054440250339826969770236763137890806227121506105019679322769703232113045113888301716777001519833409577019286925365206289069550975282159088027895810168235315175502213564961456655454371435271777156405494319992387656078872222135374415121150121917813666041002333037184493367815550066362954136194904296998341776650535454631214887468133064935711551054459646703809606522921407758129945962729131972183762995611672678513267952806496532087631812305256908336234392085848447295269176237216262494551866649914968269030759416385575129088077441018872147236736683753570351225972530189644982221501040416134580678804658280316623647467690926014809760256108829583875855545689387783980846298796649017479758486523519091880944129323920144704369087189856491147689751191690325298074968735950309742633876923007990177316487945443841626686150001999584755859838569998004141420650263730573704191125625260958786361335280674233330250095285913888962863994578325901874468259140191970168924306471915170725850810891343283254003376276103037218364997626944430373555885997703400167517244465082024834036527629999465154825681943763882815980994676928548206405841469454019790370701622158172069918745007464102225556437022921494340233928003522073037079605700120605704981295356046186343819404609924582449269819422538949470008105091058067257585531434297511611084972154105167166205710123115980558305473765040713269493293194117438915585049732201383279641644054042138747303540920118210716920501093967624835617935233571147111171183721054981441423227991887777993560323168815649541497250117049805394289512715028477288356557434106367326141333333989066772983880477085356358178865437005106399263757355614136842154358171557233586898314914333531203368856017601458736041924317678087673430689882404359501093169923170910482973691798284910251060414640817032494175760262376718727009879900683334862245809395964980837008095326840568501730617874620627501368254936737431888264620345401406997747339926470805282967927015611381854596997893101464643387357651392511453927482870703326477684877893284126333561534449295772923800984779676065869730288787623713499048805960125374480277355136382507447691040988595904863294639487886590666627428910490078668527349487557934773785573509290414794132644763433120300298699378770769567765419581569997161499636790151185602045043063953173141669488141472572509731474068099162374686751663774787618639223958367973900777985820861724795724547507477933855111768567391061767257669824000763331568629872754324575843074702898550478809114051124990948230024247656608251577054904143246566153738252731681551650821003052151415146423822547035635373364461772335229113468243471581550549801584329084452472944233167431533845303874404669629647129611163665778028591847708630673121939364475198370996609352264319474980935948431940515141702017135177014954833467407818273373011919948144361473769988073854690528528388138994568150917505213844454512448187340178561992762261017218068805020872021397191024862800804319004207713267275213132814377216104638829112930084897249347484143433386536172100235142700575596757302129060200091128723168061964451715228577574391827815892817125901142887485094812488574998960571216557119253730795260869201396995327079172376960522983806938981358537289337325649552890995853525149847812567571695970552057676262086928792585313234507220207357817872997445923219006978405225081199656068323188747619330137641821817091272891519112355989327273056603195434375766549373757717097669992546234032280578462595652280903722459396781836348731312666962784909897960542453859864979537641463015763947132378809856205694764995880882716489978105451799421124638213296232019263556961066462754143032212748451833469693362850376566932637315960675160608742537985975888932888450511400072847693099639759195126645534257364510568009754785903057364212594398335539336489487413141316868839156006146845889367920220180084781499449388957970997419415122510112139418228322882119719547175859441140341412905470483363811113409144939665101609812060042830935890745475450625600699277231313166029292818191159380652178909035155799534802625474048603384801499877473779380649930901452074711845764918095933778138335777327876428192589729861360854434733423638656238500695936062203463022299846929245404589178795471199906827815157604155087428312156922469044490243723611216169004619677391852886031604824627478280219155444897520733989667585822963648175872001811587339001087337886370871440717083991159828239638239738088904066203841395412381524717798398429586972332637937462593971783741979450702242824751252688372680286539664746682079068521083016825987342312245339351641644139679845509820472719347621891465341205227079423829662512458777844568705898706353065192035518735985648208406790135123385927651522993459830493536500321343766574730890002463942770437352809864705441844122917863853364499891256041631764232418300538711479653914283773153064852866119003992639483960543890712021230937409502846198904904158366901378111447112338164214627355038426012200094002545051147432956606184599919373022621684067635136121921752663601393108399062695164497395667454782394093235706549784294838496043411648903100594001137798218146677724213873267579307365638011804028917201901926219338106178880006805916467339844878439708501018730636500590416183925497082919358279929606577702071983526841608337405374123320933436390736556084333601494854511017012926923098144159389607119001677437636942099702115096559399470331032890813398195117502701159100502209808452051307595860975114095987594493385663712773969475163749170097952579523747742061568511261554612260360853207558621466164163052643860272419187843455741725412444867986981809726862720071537109716906584469764695553138436135390009966785472376400892173210385115335592044571904678061842647560432574217506767151436396157946806273308468204195444307997370557311321532102227553936259391596304936215926039505406755448031529473544699813937310362061781304709078461617574843086250681519597366584611515772705797700937466590735457812508486118121382010281438717714551029561301605103272221242324338396157199325663447054984171123819985857934419868708929389180540467384593546447376728814956472003888034866876695407237662065200394867194856072179771493627814080147907949177235141532773705850376680308133187250622998545138565357116128850546326875218302697763272563591692863496231162575782060208051138518068152926041760248213390571636491250820369988687160120807900308834899405651130072232365612625927890735123993822456683279133639796564329478137102372111129744235878476843621189314521780835712548972261456084348425041453366384248645803586770992193402920330071400705245167463281995555429673550643372356665071718509617792763138508282063508628259113881200258664210624106319685755098234424914502389387931039853672138803476228789521160359772301332583076229229361265941128485773601805601470736404292269877971344944815127264818344416109493837086942314025192798188477760846446217817235082859514660270824897333689790646506151817224056214330168429835237001968829422340168921834094187992048495478664637461319422508973153508622330360614483381202512571435616152773977638118816945220389715296155188205638644692597637934855663565202744905915789024792478825224809079188555118633630811641939207874628256699968894734342472313263994912795830747228958055568656529857765614021962631663182669190349755180915255713047593340971922098249066860490187870624561798533587666040036447421505819317504156888117226015040221296938235190403367978322067726924393439507193771933619139985313818146208496693898320197426775340909958995255214954121415278597194678131886855765808800374688841801328177426125690506298938709125991436589266507853978055363675646214578211534358331134732240463237019678767372264952362252912199551583234988743121753296264487869407294988423526475124634052347436994624664946864073631392249601813165012751867027367090411079909019131142635616468828412672555944871655012745283812483027117079815052536121997424108713064020901410075743291800859142808377707591617617644817141994841396690157724097275657993987395496975213859088205030583681413195830189628619045479136976022247480071047993778371819669782111340170999631317454010706822326487443085239024055413343713585249303185158269470138053531865626548920890536388716383593085633464163744393338263080730163587241555316136470472158402987368580259748333039778569119053355931176980920558767832435362339963319410069035955126702910035313415212699466735449865237641736415114729428150738445004698160522149113200677622357896449760050654897982969125312116004891200373035446473706441215713009566723908993858491984626904131456719655862894592692080552472945650904029043951339112505266083701037868309833218366353201696387797278007036422046521784652721784678645057470421828485273777950556452067285658039760747814416841955958095473794667632869404709274011776789164319387203284127110641898296902585597068701014651714686770692401934123867220711961129440064639623100025441802899808486172042007831328316514535102230429912370327280247205371126702348905385888963147899683809038742777720531104676708423372785965889672987555967145326768445637710608807793385587699261942439757563873900113021254709297625308778876911467080614634821750098254413021402209305657656626178611611876058788977478341249935861799331829087196973208126640735856873923756527558792647189131597110407192695191420877747165899891954096314923714126279325594279701005103999898861409136633670487604607063826690111435808930774674376488028381254049677791421229773075348905430901937328684771288173138458629761985409848871211178555683729856470564562376199616732870889783689227690168153671946824147436576141327508941889895002538978455530688017358623458194477665408737748708482473144834965562271622461793574163206673329821705022167201663357834837335069853180268730811917972294878756930119082255262782344873322562258579703318587887475395768164191917845886881914421309851478953624024333183543911267795759675006047947938035943355862037202759346602870766017263189094653583867489543835485645820418946099740478071114045146216516910516873830475808444907750412116967537525962950170445415080417748715178293066014005324742401065026493449841828034275944720493437124461503862389704637943530679508450394889855488032947914742901538043547776596490306813287490883616270820076519084330642661872774292147546928336851612431714558422572996178483215826472632128815045420016397734715537209468697943232406071153386178419075621414052215938570755253170281150930510473417167936203539578933631656521345091236835620769650072947216551724151794540815620230063166635638567341812427996837989113002100321256093188067866946332529062693100055148040078870419339286099290788662406279480873796223754901933742554385402946614983575732456277818088266467793674183680827258705946230778138598011528587136316040498081170626183997694048115047164802378978713901555194301581370042298378460913148554661785171049124021694644262066628160263085741232944666919326480679521840402606657258643191756504462498181344373191880381179199654133501447618603967567786647982198615539947635117930511216585794623027425743415216654438972181146051440810474049806046530787822368049417306612317211252626186917950837888105254407146463396423751853164160322578264782224329311305938141973259588070230352502851837144350900911740124981373298710639802922651455990026238904486522546544703237982171109888620985489065039332779351242305698806848368382807839004825815555735453730471418246209241994254740915825718892411003601266371449106461170722582713919657940332552489706174837926268452981701772762186078246002578710242069816041182518038751923725508047279362603400782328626831617599433972993641110134821600154637276150629032459317015180079255375795861517187167787606900520437564671241463671182385895697214024548342942513438476281988718978218725474901303963317438908719809530240821220863409185796425494505350206100881426612376199832814899464004753339024822618986047453738002201707345178441769611339827665451119758020693154731645328277859947334857771366576391141481621302226209433385056901308757794555876111115342737835018041689403290913062366336400718774051357414656216325554095235869019577773594885749822365067333484920031395614459514327309848426927100618440964110334823883273982106417384396792628110922087439317883137909883446990860406547151734465682830888247664996544153212019733841775068555032386193809983249398957142818759855382513844872424187115560549052331963055085980361149027199206804242084403079494428230624069160215257321092404129113406742783743660898109103339871408512468309472078929575831234885665159321232745094151255993776793214787815293923695258427504592837522724264651508013208147908744658841942200134771960329259667635463117813179331330374519870178278518987332078026147491759353349000485720534031817522312937884987898549796887924998759706535372849625953670367282320764153862011242480972936325513692414500144331576595785250219238059310481869242129528686483227008373916661491155870589659265847872250219652584947103292169428892893451638323076340377580409620721751419935251319051568595173607904723891143237754904331428529056202440625468250630945387932131462618043582652021268676460756473404979987416685725563502169468340317422884597667348469691444620163448720557488552805153876276185129429157126581702166986773401073206667715151560760768323779368408587153286642336488052577280604993433451968644833041442528337809025303305510995324063638927277924955978991705411451574299281034024533871248252272485364382025668448888258506845679365827796613545618062333835851520420177188704448766489641215364796170994705580806351932255391464692147253443103084268149258249204406413334300311568581555322456837609618017493242717150274813143192965443586320553911915396420368686714257517082485594360282273050534604037917985628275769670391457340483436114169548301678708921551582015755342753557310831505120324440677651387717791122268087535815005012650904965815527338253109547164626366210285196773832541720920981376904447023326367274829666680878257930227031848727814557127464370888913069409893247357317751172890801443892587850989811701202529429135925518617991474553927091859245385925382335482189778664759184063619429760140913367809042238626629393595023226801236503515175035810977741832213789902309104162746772309425454911482319210230942467957469183562068995008014142983207320952835409900054174575356144175603316349733584494169890268513671570253773084740248038278168898737666802792589592701799229247447718658341135130884454051544427531679826353262278824676527273059228562371828221898279709477410065548109377257964772450471018194380929493067000953101722755773428525102749777314997832728553647707812020168647864368345885303847455831282241730274400093313680180049319096915511414090900018692339466791640991923724351062532074238252179958201456239141032005272902373675842972220945525195129927983958695064606400946928416648746975029364224270316518735081015455255152781034417134707003765763761660282078133068522976190162369560394453099439967686474436106468568894552935488583268373468562767485327077229621539969493551690485537140248231984159690355687996444738480447161942373186972279558478028567709942571117647086145118222667015015932821548703524562520433323097665024553188293566737514345767907700643301031214939542129269382428662845623627649608234243234552637391434552835804665052436569520567077270077128874393903106060666863022539697426528619024219099470420836649514787283392257296321904661715129874300302272373018593366267955552571333792310833203266184178341700263685942637496053150002489152724287281633465184178617704187040058592000301800981880649342081479579924041030223265165903609159302061271605471754465873289452271269979443696642240859194854431318462228280779448309204322565467740976834447421915090944768413680084066717517836378979156873926429373792397148697169018066361520266193230175520814332502066375026042560877641737823719983647052380000889975702682383696780808517851160410493791451534764616569480783029990732099455225248473728886349877677075294814894320837893255188629343690655084927478506973565339881024526510502862928068078412122094923908104025387584060078717051617574801782752736962698139069421882946831922531757735884807923235333536616978318807732316436055891354496783239864595620146190529277008426529259096741593597497707194237086355229926162117047376708508997490983417051343802274561578549273986580732583532542314421175943151024567587873621763597620234927014979935334289115556907919858196370077922352024460222560193732902317870899510549468362443072198318678058193214511666425785896657589077615998113952966126206814692647058809537368365112542018329407455338655370440286518523690235537058927472094305632582313511183553904521597308177410926696758601962922684534793975221121944743578471795644751174262145946650347783236143125340904454794015022502213842925065900511385765587291456884688679585986082626520279498173201489218379936188805452166984567994845740645510885508111278175263818062999019580392614319675997275336325002083444160005360805421769996159765599300699513007667506512409995325001402302424059440784955410081107745079587598260071721385294961675904812931897446588164108973050191905388346499756655922716331953362965144564577781454540643101987640905854961510854460514833873888581609063292011072706090814131971913880284662163674074003263578401822473288564179514181098678779231218454029866730007821149434346826622749226603918535725365275309087150946477402969390932464138506735138941373689373369165730670365555640597472810445679097099622367805923376204576758086171344973105535283614230844129291701297303664843732741791722391357192519467526041358807627974209499119613919948597733127376436920415080346830459393890863753605959097728015518174911995897977196086282436230380730295718479654987746873485075614409503961208621143080548174807551291510624205850129407205411785036531436746533058427366639984367617141410795313096187841550470402330654295903322617925138106958413942954166745919326963169190180827922914723542649248096233913946745596894722532469300061367387734133373620829333062841177106691886085913154673661701761674539818471691455839870694636476729278411533037204834773805831621772536160343538201484847570315078600538134290224249672449903308685339889404516497718764266712311024233791734628373887641188427719231247922248360274075158088342926941473308227579063000565234308187013954882330409059862071100739988501888846735201148754483871847555959896832694499365525375680978708889056040595105022061443498702885593034352123841185769456218627368218284936407817199696958265590906888759240894058485064608844692871368043595167147721239613804676185274645297216557857021897769662866594727117923114657853118907772105369348525689245260896756492743222278018534322015472616944673233145595979367982294056911248358863593704467930029306255382521828854767875610325455201523922398807947950066786838116522354624607675783320269208917852015756470688464815175862780918863138067454074529567058572271191876802138394352493781580098364655702895375221250142360162525987249933363194774101730194577326567665279408667654084767481787602596712912962955974719687596271934927624846243723578449546696251498009685921542201972260446973827044583503400544366715327780904312178804770498801172130299381593252977418195785232687166101243547974871316626943017418010601961637788729065194860397665888452718802567868596032996712401640647211283310550712366477884938221006945903815148478365317418237481353449711024621062305699879663366560958882904017384358103308518257093486437940964941773098005296684163300752157408506752777978338940356830865883018068299328718668296743607166206076704426632279406607217817856421852586767241658951022202710373471459832139746068852652775746945624393372307400622012322945723854288513683623469501709035306713480280587359261515604362413514998175568302792725674068974689298769727818729028845813708834439678003806211191161163768078472498381306069971359696565383275904605421196806432050944442294931463232770836466412115821691094796482108563089762650599655791862512457751312855453865156025551147573797162327600707641025626152413653347846012612627692999628523007801731265059460078458864604707388547439733330777142354261156701197739410196411667504609101022189968928529814103763748106448802394182933742684625898907887718050113009623479327316355515365806360515902214420002864705760702059098041754092867878988312942204018923728890689958608384020719462279653936459438119571357814446652454102527506669141499858228875472897148263640134635203063668808973392683836971457126149230540325099586420070932561218341751478372554121287208862916323869330368576551881578312324595147953096796540094982050495046027776686375833649062827388332747433843386758971030505068889975350834816226927539534390509329627011780573235816852601321130195208313304633819923324676287278524043536420146322049425236415893123279716465723364015431577104634507112184473844564720670047081528536561606923481136899173003486707954829721494332896985670529308921997316574247769862414257792632793881119182096244505429142393872536014044021801001662055588541504143469193149361317757054370555515146474351139453464272669358440089845599860597085552669840957277190827955202582916071274820482504664703988363447737580975510429747440011643549756054456527805218335197163220847698907550988350753416946957593644463808254842914683408836815096592768609099130232979521763238060351559603864702148431656443456011651906649536829210367156792448590148316605941106055181806752962701509673478952915859567054116108393928798252126374452283358758785927591440964303688660081317647276627761801761111620975005030733614540565446456047822135719816730196541172211485604741191479368594257443660815176514117599385167778899576447268579795607578840269013136880603617729004541257099565170090564377655458306474339812227940167277308983918860342957684351922958161409659261894614400931105065001364493324960701280082346134602654239069353969035402092633075885857528879606778603358652452558755555025986386312531976516587000471576765123391295047619667529209635025163664759448945168502863335926473593251715968177260094351903324292748043175233051715196236169823870401294250298062577515110603186266677940401470065854348128200742596568047992268871555008069874718625172773386384708040776517498129207199953454693772366679738966474978826109959325725430966456482124603661327017490567316941680081115508897049485775891375297110536593522754172834748719403176938752699894754320397736528786208211892236430548410151724580515404055816595108146094073169964695156705441720903445894404228534165884300099128003725548451495038702970848448407334895071134628913271507009251514428757107826621749809606353526714824190970984293007097782535410773006608611490610784938032235535747123578357210665994066558583167448189873959216170591363588377653881289860230445259491319205424626025563974488482891361158205675411908659096694586385109171886624464041119514578003191864142837829239179221033841505818391744709253128566547611209298660272948321532178392875858049236328063230765546834819866515834122745017227928252180453126971018486691490155648176463107917440372729345635452650527799987657760164970090217568067669549524073375203535856311649215330406845451308196673558507712715810217557795920035131466529610790344624529281129620022741371533204892524917420427999552027236957681201491034132081052589214648235328575711962110586845301533237621753533923547023479483109380905063779961924384492180486136553489007849786938393947764455716964457293641119747738897175409778585535926580344044729444466356677857958658624954457818651540059580674373278865010220919884284185305796596903145552269139645688469296657485721593740514078502234932853513203264779973086175884072773605368934621237108395644129299275313368539144801128013536927506842965758846697726554100127773910660033123943288703603452459883548625194014220249917251443772517416035807449990707482103860930231776426845363275323648596913190219029399230822946746163449876287797073529679823637635491470139694482264243658443993458444224687442218154451047828070747917836067517994092123375555635251724191450198758190628784180260077499367732084525561477111445073932406056905942157005063004550302486252875231292238763748610933087274442545309484866082350604826042599463584087143891267204319999724937555269524465823404774161466381642962699337165270674239094846990164831818766094954643299349955006962153117588070172575104945977949423572050936071386905807929730500385061008855835755385543270482079427348168904663635654599632201650902185242204761670303169666191378570455979169966311283687135571596689334321753776118367153095690558470765307790278623616237998774104891139141705228170797103581195565900691688054730134897943749848272572691389942048002561081624473459809638615906542696733574623574288334541567284527577618846874367321885847165656387684789468565282634441221329733293327540717502671400080249670054057818973888098998870320620935076558894890112479042333926512214354079264587886281092889895032224036882276824826873074720862419411037631865341653583915108962693751271800840440107397808084472344627005789728080306772161188290533515209839490615276721076184023423059285365413545310435589408926032279813805063650253513740446208080691662909822074769025998673543659880501409839272090344758587149710118084435155047716944287776896747544740401773615137202935613046781554021614177165552806893394024523901743661771170630488636060705276973519906183862199986145206051096021337144506355949078451147344681136067542048665761780030101096880771328303730129179850427920566606164405239641015087383218652156391758773553190570462443998474371978863634537232774804713824797691469341461296074875298910821258559553028045326151362853053962270012096409849155109544395496230837885612294133966119336067443633553395926814849639760170201626055547833703853256576938873101768075208388969483232099414314614677962926100932812182327418943946529294185996216499245162512530335841128028972172594669138648185816971121308637397468274212247913197228516349613181115353377394640860279304164548228254864787744208415664014161354516005702212289142936305063599706760319807235279074331847732464905443472307376201739942471755095809431937245292698606604671838278289499587407784586627915998782333869805866250789391368386946938199891722967195948319717562093673631825658125877179324796775408908713403240181542880134663447769433796403849638971833639774528689263557039908755543698551401985201523210731504899568183987985682915182029785946963978355224188205156172356570243204851113145164347509189751729993519235449748442714228721477559461811042377749358170494162721220984677445389740625894579007812971967149238016610936040756562149046239267382608269425881727919114443151938946443406550045614603745500339419025529695993290747735247924532355827101613077504617550181383162137083528483054468740048033095540389450075183419639909998518990125516928175179192790229287410620543119854717041704111706100769487266043059800210812774139867884211681503305108311134704279901414383116753183165928686721645962037307284435153016534387949811890173667019102591645358085796273965760541894088282769883308573525427194596240262072929577955569518261138477277440327860287701960124986806296622274333433124991623985123661871758670837139515911616376870922763114306184074812489774382792100049022567637201715365045337423650324228695945961441930076753730448120399237026156904152119597848673860454057181915213629830726935534711839826448127021948693673751830143722179091986255670682883761006348013331264177990970651342863145138961364108314897998489583713542848099239374132051204513048798876852065392714794496431008469631624376252456534008825907656968269279518900099483477377609257126437806574659271406501842386472428720691330136388432812603742210825794686811231663530052906098193124495757093940153904084979814958546612104840510666034263287033490584349241413740217756919072598084021347919704744927315427921910291630085613870434156380784560992369298404878714795347244753746648753987128952076900084189716354699599489479860702628645051811600408339652465914295444608304950765632272655893732837761504132107486303833245277329625301415243434220086531274513390545708439326366112517020418233744587497731133406249046716901450327684041898994590105524220211112542839759203565851124350010479518580681083007693209113837016011051468265509410759789554315993170475344656253187715454279095452299172564384855463898242838840731564032295275609783125067914605497968318425665641296118398803121805586050058664434724164953921336632499424789853853665828696845848798237889820713614169208190374666175631954619491120636432747238387381180329261683708286546268477182920715830474992117467110212196067638928764104102905958052072382802649925841845025375059417170505736622626136353142452354767963678466877579088487907781469373134039957100171241129169285436162626961072575232480689517093214394538458693239877960811163271413793114540683351803057784353813093883697728708895864778434043222666268718998350326986589292013326988439023304677611827252007158944325265595255690025004228601253522510285513052998912368723914321043031732861743321102619655757286758021331265164598373618150399401750097136419753203610738943860470781877608038671908651920128224686187265525113487371956679488215690457435955521342689122155771897107509142591028602086374640066680024018083309410839643208539433457394225624954730534860605057057791523907557372058457199230225773514780313440436801354460581163810580433509808988340666777589729232408539073085170799117679977759568531316483871732758648062698062789581680990923509566079834540619541103484950550037923936956288606347319468806528122418734519846346795047429246913932603786567950502431730812585116112101197569091983331887862324699383033890669518337260417939170736770123684826917178845162286229007706696196793977737443847874414466722993277571080800198518261217162661664721492220469270385621647964381351051103850655570618038824169527788600203079510060419551813531493850881976085916302558023705482581512812495948105385888182613064857439163079534608102521711196165867308252745893291199125791686872642125723631615161587368495956428853280895867019508423338096389597198132091263217942275816657982292821911514188299730076038735185402027485576674741214857638228954801916187534789303296515822217022602588292608195605241672179110868612369320772697947394910226849942972514676935677626683292641822749177622443641295144577170972231720267882932750382057840270048495959104132345148206723676404646455172477709430791094359812386577974032434058875176441966624035039273337744074188985588935084836170564524899650361782226620122054869923464378784015919811750570661909293547283939155011563486733966633076896832609994378078668035281603903677828251926422826598917367931565713337735378945584513049517876662340745930374624134193796732203733233410355785632364046847988456307730359519479362604427973513913523134740347495924856606508351800409914047829218793147114162100887627703252851295649371100122786365853525116140789108850552986301709157316997801793890696275486250181979737069384905001621528105899429893679994172855561413183250218856430773401708850012908756502821181532990256180455723859994219069410347423082223159326675466570190417066332823788446319298981263024118391018600407108989656535071080303553796981773400557866675262514206568731253086782381656888381743995339756813884705890691068515871947205683272938146719543703009695733933885674318130253543893472962737558832267169168028789236415683290602691337805704878320391660318761402446988175601848997441435775741364070691661972130996051842539542197074832868898290998464391374080326151920204692718528580828616383612521783807920431027971567420781367275020418950382254926236555056065005312416525656994747483413290218179037555199270228855636356428274659523242704206087840029295616827670027246549239545014009174422791149560451737347082095980394379108763304575411994551365942269951302645156750092768466937998446483047295013729061358235537515475183116152142316266236704490520681134745957009390542486128581260257832695026551080381334912845690885415666670210667751129782808197813639122676678293032114282579580891740804074620264464106393064527944106477549373578824425865379946429012059627203640668279396266949909652375982842447849813203911208669910285043059574576338153038413470679286387234293652135755212180314414491870243478681013507545995675394259329452496351737001188643297917614112312247719149693103653318501320421598287324223022401718266755186753245093209120928496383254212123491524574751296441844890849264012907735278672412515092077808974024008786130784602999331341539202939911233200905074541399986160983592814414767939467403528849410994059350900571768293750467298622740417090606857096255759394238666361174861013083188627374722013874183094624869494389500307584989018711135631916114607528721192217766294372966659300731974750668341394947263512241247327672545673774328668146399980021980915546993906310715477089449873260653661131430856025808579896371590860945618941986643098908319654681636316751023260421904752877673501742752283487849522051763452489331145645961414747016803920959435138121272571884798290435332717568000103072857984745257518211672562737833486371131046641433875155006730048573967423242276254679058537418555581516933365461259687037977654314695440637432139376834575433369484294304177494980893947838081779810537584972141436432321141714046247373460739098893455859909198258511772099463480569044260084631551437793787549155586455125183060028582203578855802646943906709937916191399080128898620157808588875395526371017231744638981970209365592235159118383359570907661573447714362004825354930079459206769517980522106939427804137632309760653898487707676003991696944707716835865681891396709464215547245066390959095671695320924539300648689933029600329822881662376123048025036383277854435265801559513402210541793033810343920760897351200274379524811145775241677678950401967583253103830786259957106360019575968156235825504991197516403081441671297862372587237107055483951164337472794469361998578022732788700825355687148466835111398835503434163799895078234483334364294309073243598057281069355381558448208406444119907212020255857733063506587809149540826881768439192639743457055976627921934670906875693890794052884844493985261528301083614479679311658653848904011826261645497482541396682051561018456801986115806824089303295861657623961288635736493984884187932832657083542226945625286655643308926788956786673956252198227430637218394630233305869071986168916165686088348105162665318964466085722049916659732632960087228641184116628605936277159959559856345728389132922337941702684016021937394419439686650069868191575133937880578313274057989565079963590108244646973770485868414020466138886451307269279102238640908347070105172543085173687442970919477173090885279609604327780680518924928214515781441407823219142427065519048016297431496804641329382796796209239832269127600969958962928355568813637681102627898450945996449105687005639163543995123301257895350248947656817264480137336830453233197270737094367018959697194735153330592176586878178619689779796098226952740431456890973497435898435284198435706935405781501403666431088293542664763835132381798551689657878449174834612544207226195505629897943062983406203100088997134877220988973340653522754169025556030689673566771748797346657486265144060972964101435907623964728851646620567234181991364973392363495427953351503880925635677132753029836270240073321477354448538127762575317134622493857277864198441227042612145871782773370286741895181299254927497487496781621756816867163655968658935071587865486293427326688773587255601318244015435226071658545572753741319067923576633051425094571960270601916101677606190903606712717646263565264145843696454103659572212572180647838259058184285834122563206501070210895397295867707342492590293536727934978251702676553551105529235152007289431149270257004515291035915853630003907094196177164831246456286681659563329879946649313728249439381354102742099294225178474886250371793815092175866156744535198010095514700148707849922117376252122434198559608518220579758569235576976864528432383997112086004095968021651043245453155894404492246868847563228452807085846754932674118412465061166038344622043848090636575254676250226560508050593925758984047434141704857286646413797699821492831012723185205915794434717200182963977905383692079520520332734474910587087209453836394384885624863516665579315682179562916799327723656710907978726840653176932450954117423326771526505890818905930954973474948665926798955463553754175191843113237670828914496214562524753733462198679646239897461690165284381730087669021712189402562017136741701273695173204376006763169300790109275558237459588693633260750122853712563506067319889262746722186733150391844702321987236830630702863414276687668501512430398955905953448504965886391234879075269714722670337881042284728820346251490447570341542181278729535745175426381251855757641583242975066430998745421032967991094276474475274546553605466317989617574847964823430698241899566441120326300512718411801546201557308076169834686014220186808330999447174194378572431048799411995418332801378627673751490986291613432717229289062965981330571547015350789705303891430316009238948002189397571879545312666869980796347156952335683572151509260929619732917956092685349940875707107120085463520959452113574346701144088907916804890448606626985019470773297361638064668119940942626528024637387973987371062089515616141502519701394300363611468857761217717995448066733199463747068051472434868214825367854775970350035265691597945781910405021190454841558860758697170925918942073718716908929955569778722101716735206232231033339943108322834019861941085214538140890779640101091814343260057841209904524690052136150051586287312862434873111838675159013923630057833599033583675908431324778857285725089111313008322927857320043780728411604000878629360159491385257560812652623087021455308333566744975861504478568068233096454634124559301913847016287108983562036619822032850958739189914545141817484846498907961569918422551232038921282604074171639404851386315503017944538098115631556811430042229332118191524781423607053071766420207228504556649974230650168473409472340898558847759527335196767524564443357747546972262521170630884674624916346312139780763186789552996398998979311643099273711834422688426676683029733008818087850890088053910549773265700241240756130084276039797371243138142808932405816647988136142670071088923029342442523987676761480858002906468979923531101283562838636941124111222372884175526610319319932659369415101337034460170565839341802931344127380642228900614157081334839829702233662031326235860654021641340829603028513332173926106350330551240906809806241339920308973685558937433803660141498746080579921718279088751115811804736804560952478647025479167732093901526145953477137802724244325451940196145615777561249023779741759974373250843561410971530931757193291547041476888726540820214377696434740022832981477204971054667146980986594887996152151089294172735492045785134503158145528346880733890362163267627931413077277933984535289653809698703920845492502974717577582476615020612692528071455269029185443051579289668594202074136028430880406444626506430716426386766369812395393166802748446789999167128050704049228186318913657551023963568042294826907172798474796786539263826043448574832906188082821800084467362848444687415562273099526871986143423928558203631153074096167997999899557090380153887230862750639686660771994507887070563241622516935718634959186400770781163608087178536612470162853897297189605335128419424180273054345088493598679368848549902531266656880544114763429518469248858049836685663727817156948693127630353195435445827014404210485961471223896455286202118297519708091829552269081344171869917698426192830572206651958059649295265708676644830062680969223578235472969234513911886460605836307897646298063639781300629929811452990489315226975991473557016546417595961525781537071559545115377684421023515513158027690563543783357797802245969375954867721205575740805326211488446484540500421771471328822136604686052116943625129960174948462224562578722542544906672736284789076172644192149701251342371147035262788105063073110480449751673566068087221296874293897413935122525710259610941007601450593068852555837525881517474458370155954784614688685228854297552789796433826604600664815402611553752915852752648735123929076945568214507164552776383185950807962245148576203128454263987213295996947455330552265068106225015824006733916642538505653706760712520326734977236844317235339196602338178726236378363615280887292021795967617181009642738349361710762087464279714101617552161651567594418609673824815129537914818392094214139407709036892148643266100539818179864725767248757699555214728370757144642037901869100118183244247930455481048011972029638523720842446290809075231049011017992106050796502279295047249379391069749518079823900773468685194315978531014245789668392128465209207202138550395490265365560839693988333950798102860896075939618026866874961843065175654663510465829494144019724281552486739005538405082219780844861894329437733420637970872762807493496535346430631100734812062105715005177373063707205550432413173777313902695101201345375538163033997006950152814057822846581749655219489353041155819603509840965742790058555066052105680379992775525876946651563332932361295974220578884678841928212980020017048728847489704561400081020677741023417279993911396444366914855852769921763300148929256081275980331998587639834988263817715243246805985707551485334307191453754840024751144325465634575015057295280286181330924443486932298099038558734727966820318253223822532569509947534957260341731122571223708715208015945531678241355702237716819486390576603207292237728360495709554486598289866595885776042038165996014697231129694939194535605224710749856607641517064036991011896920854109158409634788436328969495144858438694167652810050222374377283553311044339592697515102473837412709965259859276996420305270722060939590307505663275710992240029987319101015133975387270073698108545876287426295530948504259488650160241480813522236394006296635259261164213207104617910353359740372921722618554913386370625451894738529838557538874873041969475715717414231081331739929554813471962758462862756828787015378528201968988888058594021040420055903945273200485275401000166883401415848627450841575623251340190764755508323765340854617110422517984441036990751783835372760488497938673029155904320981106145869843541070772282100761106650710135137810136031381703907112859524581829616090462232989250666803396751206752093081511183067286313391324825912605747836164568396312798979693961312460038159288803071567697368508754507828454238551539725506195507426036241542009857953460112262863165188147673239564473414226739624316638015790717757150949254013790771327060144857186572529200284461256902306812369157278509087748132320793897719138946587775022881081444007994162103138960546196274849290997439274234307574362883156508233726259129388947861759072728819871292258338511927318313713339794311611614884236716352955684710047352942507763230401274123498470309200894550227624795604460753496921289765772310504039313197275700292967293222258353618219495546469766909183281437867235488810789777444672194420712734232959282067291614086985794345244079498755926324360221906086795472179923649505712741856788660834727836553072159994766409049806323557214865950429806984546902623297122663955997018994132402169988120115368042166335656319875933445781546376398227105393709280746742043143824292090722640335835560371769550390644266675652230617946946323082372881329755360268166456909428004829389049471777697615479111601792178441537048052810376993399031818646823415269057422591143268835245667175859228097705245602205558941824168103819102290837166122934034791017097385815149244904644131614968789597468860144277702452619874771238276223803303654689030649926409351791226198301836212970333076488010020770762967111691128774541128282374808818444528424568822810756773471049472550278456825220763223621393656014370146591624062255282308680055586495474530553484916524346602303775384591295607091078074769144388755586841791648337768902861261910452649963930799176429518938301533855939776311607943577894554485905196608828750643406398055497219982519439763746739681290231714444560520096980510988965487105751317508983138520756929769431906538232792140890468899511477661402903648526347096958310740277547139743898980783464438912463906314822946450719426352181260614830208211324872540686419020025497954363441307023509402443736192165980766290611133488773644425382551243961290785054840649720054084905541423284697643272567156009678061467246340354517247026351803198161195768112815937370573672219536755424171922804415860543417338170684524271612100904690487535833831413177594657672209613614786761399109541090165002237143641119127598445353221809639027201168036791606346759781649929670100840171002026892335471075521696036571132000628184941313730920416014272463841898950933971544122813605282867700365616936993223121054617536154182263977615094789245979293647378472248334088305195485956583036388009369506863354735736710569254514236381659699915657620302996438892284623024076865020308270901081912237950270049856427123103113317941177919626453254375784980969529084939793821861029176746987384562729379273491886952683275054451590458357050213854956513059710394795358027869399004645915701746692370706441117371134684133915606506011502573600762048949982161669910611006502932232465679551801187841323681786338997799536674366255590256388927347656703140510666233818127307057017568995572582422576826641004714070600594251021278597667486065795700045328234560994220019081035538993777552798420208222468733251368856379580046836568811004725343439672141592808768545197805781249428500388040705154261341219913503549610794141033854820757282369049997694017870573269710260814019715466731930281290652438836612337604483277656812761311149375021003798772787898560511048353990026743879739197299330905774257263345869441149048094698652102014390595791358359290983298704131968252975205113863580937269449491241113525977217470733927447685430660208216758473788402682655793368357860389929893909843309913603535808466083729704646656703601906557600478291740629397683629425412843610937760667011201307411800694108055301326360649803460041343570084933792306417261585424619750014635049772798333418082790083214352183416062744880827580503407022273151786175548303905839093803115788175819775118617590882695560276223495998709498564883889356860847786070957067148562832769778540728827133400042970645804168159353160812530936772985606997652851515006863601229843448929575900708505190428626641599373421359682255711693479510517504484275167218825818906572242455676167848335742774068305303105169382871288612233262391136900114512420256954653905730448275137105280580799767254561029279147903975910006591771047606114801218695297990310000638733862210917055180916940499978210605913557236889378095177729642603340327910554336325226115012777396934631227535674376791425338613794786824091241305569002839616526003127418718746928358195512661994845359058377785128227341200535272266715740670963254403402100177650243354600333236707362234092544370163132547129791084251343466873079303537321892874383304536226042090750711710803356728643783892590913024114437053969995177902181989798234108655663465088928715747535152500872471948140708072481465731074954812420683317148756168739709761267095925648539164029410661302185567219848076271123772990890709009376131520688822690523028589021095587408487413113111145627707433613487107837436231103665018675728072139476013877056221201407140925345247993291651093783643513382752364116143065860441043582464746776273581104352270488799814608364086355114838978511704082228448242299339291780296744357055210923444078282892889258468506279997733679428788667587257108670332817365198481385105437316670392575421369878625801546624933168260577258415816221766969895996769881822289712836174180910814741260299641035579969417116753365544070798680573354666929591309777672415632444895316832187591061624593392307868859772777117387953279597989312168661880213505434760998271848479948434273764919616000854444023180929931365751453236636233138542430828969544867661999516334054196944683790749879596961923717993663826222694016297578641101345730750744759712869168978434745734373354193348788315936338176702736586447101511954236719151078952432001995293495599230769648898033453512680710973582983184621999476599234853544619715836646956630090329307045919353259212654264548933765640835233809317805715561645114011952896798131770282721944929877423405781835722266657371658857006042603512054335964498029310780914749969168117331380015701723023430887061046361970279470852243909436469445891088988881829587986124071158291075144565807204288191498540113122079022780722512716539956190978909645312449704003654076643920798730025979471788405913646121138986038087644371717804217600060990881008390986286709321847748387476600083887287150464775541609602128147084063730421891563084236497692231459538845007345631340000200296041459900067984416635821760676616698236742784741651228560225972928786403549278357338454539717612484856330504412180305566526224140927720369379262845224393647335720428520999969063521484972146566723757548497056229635727084254620183796323824622336289285873762558637137835511431272967911583262572631914927025820367190596945971870892116533412538277872899716194866118072371432282350932966586659936116601084645545684871324646689759297648577872941340108368878053708396035593463676874888208125214071625000743054145833688032668691224873302280803105616002667639773747059107978117096001886093667364589830308615299028227226163545447448109158494635332938737859761804373240488651837744926395568227737213651977873248653694872701692496590767166604541650436187098191901364854812892472837641138200913095962045097249169803767467420852725883452789952065292001171587512372709621786854012385477050860844057518069361265510332783812040487077537241600726311321813308323781311078507077479238407691649158577976650690664135490546645705968455806123378464210098014060385416545038255110871462514065168899212096890782636327025272845904140245832709354827457885009494132646453317910133282003371749006620847458112660603086593937422453231739794660457638637075511457725073020199760682130828166650837325333761410242437495908828727129313740155233903786811327459359336261819846301883072060838393987430270609815715568760260758070307353480408492343973364570260638394315542639869549290465479500043196495405915144691600633474074167938552171787057270496100645051817560783285165825560597864257511796424401987345347871160119718897882868541069312316149415976413655771336200548790054378956132911801729730407940583824912998666910411552516536828551288580837385914179890267627796405670867441103186579992298105105212939679778736933449904440190634044146378954446859530920989031341878205282821326884119376346224989006384388271507398857168713576444063519744537549756902176438426726336204445097469806868298644055016006791846462900700491682499818932406079996930090163466283571127213677673013043667936933820205383160579490719126769374544813645839996377854798025680347289998995229002246307663387925677340013852485610365921099706554071015289254764370852957382768116884348669921898129461791322494850545091183622854389908054288500406661726240053495311750717502668004285137419684707857363550625405241443033663897159936738238668268290718693056365314024490331997499334556511934106192616756275722779320057169180095548189383325393871988654590303557317005170773225891853829644572396823066646218769063329277821165649888767905214514942462662356382113584591092022223095623859153839723236840465064196695881049084211967790200964994827994240928621954973472116122577405412807785987130125005757752678031004446173378002646040346381429298314376801359969720467211767232821869896139115441738334608914416713453726145085290799303302044737253588277930653274846617688163263028482184347153765052431482867081560274637286265994588004500514823920173486375062929287137224658111631052781091751940153460288992907909143450524336762293810070385837564039674961168885799033630535632841770615007789262511976841704546510387491371147958957468652335136373291066126392420868569749039420734037831717805689326396361358800211722011644512641645827598618172352057222407799715497215728057145729189983439675529269176804602971139778342912081101751807805679697779156986983257773732714186818667985729294519926772932927286550950405688690082562288392072618558422000882900016012083269154416146178325855653570748637411589746643076619715980647866978784092926936186696083359215266350938129628488109567909094351809861014746717669380259490831504514014099184785461413140792235766464241626330837315557781769867230366753008343366090516265625297911706572324739186443206458586102490395170195493322738821869127175113130772513766807918716598013309715317977823855667452846886783921854583065849520707939353086359287475625392250965895631976705910808121721045056330420285426075063373893664910448766822646808357811551134895797669420115380239949745454972868047807336270226227065491692579346770224446442614405405955565928704477228934490847133091748692407742756805840655485081022401752916522252530974502196533678615619921087284962045524795819305399337954202749240181446669405360231067720050764529354058264989920332514641204657877614267851583291551695305306009841483522000877298471737790755941626970499030785630113881794482858756489864908720523378138435583520337996367856322579087825779888105246094814979841637926779390860193065465976482900808144062915424490880524542518288691709598936745059063056019089482985274758254283305425287204511911201896344450302915117062827636742410706442780273854206685320455440444179480515008543762050673126952544753046449231849863104258187399666496836149402060220805811994031017702630169965099296410508071845246527357230768423871325048917760204849542076632456306345838897622891310555237007205678850087693500268220778864479211163836958096577593886682460600668216333797361189930171426876432742303906550056309128167968691590343916611794478940337933151696170845046081508058368566059611503162015843614175033332063954363249922972120521451282937441418566624307802784993166261920970037068139592683111933579221236373482323759493142515706334310702923786843583845402460415506435936617783864352582781150717959343529612078674740053318968775683867560343794280796837712383500291342653875177018901148100782478173113864570318374942651194544668899518815599636874357817165341005755584484698607109768836582992919862574227752367267935509556053164042251797831497470361568836955756665238101731949781288606845140681031020644777024602969924996290219456991552234725770271301031428734900493997259734669651832103762814522776648636974761764871873793671093933441485666770766626548556521839651978461105488251945819669006567218044659372908893544457120044895822575514769575657958252662559812656917625705938390217862236231994476421733317549618170706023938576012388181059115336812668293589774315931563546622755858748759517386089217196451361309442873921625455309192176158684353898102814493005623511356267729498221303712295597307282452580799839392184572197716541391626063729695650169967625882002982564796106329227787088936134598057018851864496057278133093943370777206209386289230790046368209999608401251438790983890191650141565800603377615741285618325134401368299326984731901333313633689478321503856956539409642567489423487920612659522533445615371805876878230073774412991874023820396545141049248931927476549821646700971510346553762864442670659053586965773961571611176383582514762840866747890495388827674873486936453795187312002225369668013637565524672362696459119804138669120211879075748122510831588947468524380223570547415165134741575556369336104668774257549238608971906075662524010669442748841037736006984732368765015330630929140811778257841970388589471258194881515568863315734337714990134391142010168439975534601141714243747657655380616644150123044019894569804514736564628496790052438640802118548059407711975515755523068798333332941698496101086797736402070851873348393515540075456284527585616483491122746421626331312351904378700752190897721007703939767866681851639155424724939589937811348377487915617182060867969151673069443154533649091434256772924274417387198702461811387339269328864646987864800253817456057867977970321317163848722613934484342394229762631029786951455669879602051279229936610378347584687713062273502598025841890037138503773447527189010572791740243621338337585406002378684049005419338397992320159037780338888913314341986086056042861134043064790441142535392452781003495258474059069892354919477433737497354180111151481480720145093380655349963624361742678590284262653267608105685259689040890508251751976004275931389767867329523394354691859176404903054569165059656757680505600453195262803899105475974434887959960654113842655182633980451300045239424215531854773299661772692099444096077923359850074600515302483343666120798875782411120063048630969856931909087717096023451118279902377949239717724940971249046933183297477780099776653617964460329730699262879331525187501718670489153560754931801355611181576879642149521562623545983130015354586254788903820991201210844574972570953104946870397401430355122286891783163559314285706248491550668102919821994903947225666126326419596168129930042828857936533781278912798060625048599479194193243713446965965761547155926721230661300667372807684500853615141520703679698995884081754839683627034184723826102225903956875162148817851408461837248802203677598595539775102435988160264489767268678965321269632619080153135545367088510416415335213786307202373232078695154965530144876606017222806229286015203882610683443541710559893201051600313005580195582480535019720626241756732390192469414477933890227313108130613808139619649760953085844346517403558881126607594289421375267421543579889755600006670541147723960228790062430576495661023753177760757449775206849147128140728161316025692083618040468874063479987147030852114661795714031435796941626213918806052061922866787262154951014368257409178407975898000808622812209965934686642864461857519569444557214836311857751381864876692359012818469563847650934371124261306680022758381824186069405334988641621332556196472358510151689165506542406709240220828608492973158980114565035887948876216339262002014141765762835554244148815973225868347022077609431006687918483600748316658622072926834963534235681612361656645402080523475244030575481398378790251045246293479109678045557309304219551821269072990424228521560107931544484204595617276522547098564756798145965025028924602480846246505841955308873511503815946188531039135184689569874873946622584543698446806348332098662174528929224391747863926535581762925148458639946406278942000475240279925953890000333428975940004495158125663539416490736813980834996102424350598052717073468567975741855225975053571318510498204813956674040386387402999722107485242446822469466575530432195365200274736930188225323076234421687242521571411057396903727158200432455416187965725027387816365546166880675678390275691374043725241399686759119407372263071086625205707354929394855310516755621275524328180560361116649817120228213855167640712692241824097663350088976425924892442669824771670988786271521164033120622327716534692523686040715669446446595996864442157746825612469992978798347065634767235960707220866997896097123430729921254116903413886115379335649350474120834410165783188972186076231402613877365046073721558351434772073200898214392122758931685081402898747185214452847566826363444899210396875394645075828337323718848100987079408650521627104471829285065514715801693016188419174393649417810506470936929374818830854542026942534980802323673379644565354685904944256891109080478281276362249161761977724988264346669459518089602783134620152419593372665856449431968132257339799943101081770547680340097872962777758401742655137753868533169981094353249907443453369590401057120025369439100124314892244443056091654265271359250852511217339102241315631471176757735588830162648653601741721068632109415934096249153257968480731590713909384424998984326019660501568341484481537047556945602492757959664904725600018645045788427165936528847434007327548780894652947527712765206658170632827782920576629705173768522023877950926828136438404336117373552345885610361259752382811352952911565565434439325288074166000183587054756071252871450292965589035627320245982557907859877147125396656969746001244028582617763481093630054742002330693917130473237695268236981284157690032734105530772010269878354326958262326279154117837456896291754443581902299222841906649245905378924106511635236510548824141583235496816095690779527249981097336029574600386301431389124197038977460301824503176596034326092383740501148208119057027091192298907662173451766343887863232604347656747936499749830320667982468768242273444188082171319612389311570219844756209072948906715907094847153647857276839865856010092568194203804978943548110621987129643640197460691675779582203302924935829544377620724336895386098329613481468986592249662787297504470704591419978464422843184134555834414324452773767651195901548684132613186652848642859762619356059890101499142617091676774007481478363937819786716098581143079727660579949778031245338860399427278657539430131226691220160695948621832297633762739063793739858861197206972937634136044831791603339912211641325169610385829597079574446238224359891794487539810143770533522150958472115036752501740100319528472330876127594151575901233117539701552861699930693707402417746543020787637062681817224038940156028994053330856181940606892489009680405103049423531223760921970881221763929828599100912205839932616885145540177642828476608725703152571836997690965761313586470175511380820010028449902369631741859672476850029819033773434390294330862258571225086823319782690051765713197880141491943524615810383150534075041279654722103170857083455585422795902839813592801955030890978871113201090128077835967313760584315936510636576562025401764324596169681072860858675947297741852063870822823794355896067490804305508360022467113557183553427744319812664737241060360857569292158869444764796649459942473515623885168811937694809770149787815768368452520767648956833213061957686018966116682511410173619266294721737454634594485630478530613147495329799399421881585750390742098309299155123846895812600013613399727012690723965989586897908247834247102670387651723478522244504183326278305351763663645527075949676142819553020864690505203438361615272090942422674727588841064271640092337268757714983295328170903410202535716284257642740901418759873806960398432427862045376074517417238589142945880015821488071489869333589229701327810094405631386119403983776898458310435123810617968109596888742015914168127870774765633843596829360922308247959375513590048790685015181092546203673161607681850161557461581226332454884331182770918116396536156272619871658744545168361296872899680632818149665051409498384859973747833839073561072964523577701613623462826965545266334403714701025221611438029556912351041722715935499529518928261662015740652541006601486468285830665623988738467695354276557762171604340294168117302898188046969583539543723622440470535855136744916077113124424010051234560919239418161546637763271167230779129002470179680689299496520250922295535614503262881005294404047633765688216411063811431179041497170881964645552889087820759946293738867843040951157493054784093346309304196856018879748029367030568954861635054994145601295219010892817844326825525306148303588927669730716009834020027471338957919996633723597105709708486714861359827141929898903006748263228165392521070102172602654267786041491538871852979037466987914500452014700844735400507858045051485093214321817387549926400666648987762924092742329974481467566704964749088546988118702117587276635335929280118216437781065486586942793692054048518390039568241426558530224777862088106638666610506255864060565705214305905245837035275176323669815974573539348335520343005075296688745745424013073611308634817482640214701008124333777864513090728508515660236298211381916571691469065693285505165910670195750541986003262876534453003398474647874886009004717677335129965332931573767184438553365389432240618516983448773141744631532221043545088424932109779383027175584682026561723237141333203202048749222283591043760144659211886682250382637236167231768465098298937764550558457922430790729453395194617393735746785763550971973320226935159797504082148415909695676266026899290917035730280341042231465275338692104704266684781531915319562688208370535710419560683380777734888792868000477858978258879621192371415355570518101893202624609802577246810264712782896464899631573828238322822331208397000336074958727022978273235609724051377853690308144157940650310859803127274579593009466247407989003770623506190386504239616963338539454364668690623721038265105262077871575362050811195657968123431804996989650111311077188626431146834424934520411054952656153650753510722315329969126387808281317917950099691167579534374824735394033654698078167709733925378967592532480367443151514821067715415474380175615606569036874429285638262700060001307923430353782501769562042117491737209867849351305144466727216577162286138100813932132472066292766373761421240977977767615509376495411260250427051348953444455982107884149753229980133134043462093493210627012106317353926887981232582530092594607023071742900128909482932977643182226131773256532655816419925853870483119330598482838626712616931396719694195060316216217973893150945712154155730329290181360226007248980959200107760583365098104652062023505022053788504520107375383814499853700626200106724133060971534806410116175863039887099938483108999230215887306372064031109993499978777540901606109355922472464177330417041378738526041831425596012402637176449097646429817772038583849569960313783669431364133545341736613772068640539451411028502411350285903127215987018713987513066658932391336566112700633554302845486381018419773968150908049635851027763168051847311554515115555595326026685607128510077459593282853816661735956457539045237062822858024743020307705931645611433006486658901908045377948114068877789448262140263586686824483705445701100669568252493665140633530150426340838057302137975174412740449828677597100224416952592650598906632717195767594504742044379435071151902418861230069424451934071435825767992034120782249949200102953968789057975556806020154313390971776112539103967003733235029373163825867101971432706899299737936115904476230092668390318119562245598587345060469250101829119753759846851881168745090423007791817282387818321203155768867062087266464996711632724621683779093643392084173710837858212328185663541619280699302156952686247985135890538944411474442234691742517633972104423313128860699286852620081893461517228039111021303215808740436776883158203699928390834617059490195289278310237613522878149863497646832065321923972795109011810314274499543660411867656693155335615608639871288392097999390602014559708944873855182719352390640602705536126666916343612984383531919646398157355814061150632108852286145818237778226054892334478275133076666530239261719454946353280167582333861183416194387622872645917472136301640058150771339984386330227037744203734671935949746895311043316332575747777285434627307558737271499057763792102663415897613175370729326616639495845177188280164354331726863267407233970677968400219320000829407777874473969650885366580921169071699624600180070448733073745444908151515130924358518054329517817222121202691934578637524921378423425699773882546752847349128153624371003353115924379878495036336322506074545083576172655543446795152635602351249869209406252427934065711541957261891182836462649953333888799698154185266833013383071720872514040124060279665080373491115593798473130187531439154244042659143070501898643591862222278784148482146395922613410802717448827430838106277917346094097872136606244213566756328841879731167308877549232006621942421454447169626094851059283409187812507848301756806795342970065030013393338147440168262389867916082480853826626069481563385944744944574384066984967687937245861700755304416780166112634265696186408909883959682503557779292594237383496947291806666678531316359949320147932779450184025888435181583691088970373800708989590724755984907777412595117869270348359685582982101287614322894886976481215331604118298394679538394430307474140169996688666184442098141085014426857315189071749009252908229492574438009236115246768873345410723963836547291626161532525677606530249427386717913018490018562051803580024864608983204416341172283596138727957653349590648889379242220686607820013574965645561838636580989635276786731571813405544245794032962817019127991267326119986968719627686225061052861688191172123955026825706327631012743075300772044053333184875072011233218023972974560903274407073213662994351168062281614347118439026400174430552301108232396228866556519028880610034747748572158527435358262867862461770212077339444520244565682589695578550130758472804200071517292511270554296429623655781713137348802629565326965711632349717899664412701043113991589827114500537056358724604654994564746745628299332194349492365275923586758046387102883052351197998836264155218451279528721201677697302011792308476753111925681195059761618499923595410607817118127614557335062049213052182728814807939026728885064126489191081892518272477250241816495905630964212917331545732221980468880723470925111231291641407025941560467339799326760906986874390174231069420471487703852791300316872730933375072377306704583714763425580049042097735635163395328675631370670380449426145406374690456916966495734548801079733327192746472741539030410642123272053682311877335097536788954926004780151515649781497413240608610087419047202661326665706638624445290864761453180303131260852217448744209061998325608629417554304682059806918449404885751939837881749323920237929715998983460350371084569125237171502648032169529787000551421395619574956122678478722814288926243553168967639167947036271016820962430202051515113206138878613076582291389090819299007845925656176229115190780951692069352606206904051675544763259908360187534448195128159398690792229710034855093851419797052170992687889485819006321525418610712168164840570603430509260123785567229426802679819730996995657819675872068074273218149962935753401261394033670103637345905345390565059329689300294321187610064212870031924973725915670371541349195230382016293548080053737214895605829992583653791800244806344426818633199025430403288932308575780507626076434545160163354659826951116283057280482117451923533908367164547847005947891555843583015955591546087244516953267706199948056720689514844420267721053980570626500301754805571909705029848377213912689320599498874864568055738700480701924350855734637499784950360496706491628936583660480494401920724192392909576988762130428998992018224347913399471226524225634460454744003208620087506899862660044810194092678111792757957088941028280071315395460742052889619414190022466783845341827546301636395515487461586837191125792032409921769175582334764377603767831749922913297296880618398867538756642138928019493623573191176689854638913014528380063107075192070473655070058182337483659226226389867130646913391588720705148809321585098795080852843691705322281269724210591477324394955948868489885375293193998910804651981771821294425390948586651771144789600683613479552409201459388504911816699253786591145346866287217727454436424050270593598309902432359705045146665657676536734339313853335661043061822893188622202913487283934278324342561437408510873316932560657283994501241425102116883512694548215018212380680948671135824414480010040848270547794445261925628229437451529262340100361237441660238796610116376794173571297781559086580264527449289729455225284344166833360728178237626087695302757766060108097526335226087396701408845134800415537526168672428457491286196857884790047799734377007720854708920989005786144904756535879350335000219375210044996447559966399636065933389717388395357595888149336496305957578414764981804062324627921568245178717928761766419036524586071651577253278683801205213972109678249741788200844318965636475832753125280454218802892131063916534123279814838026481856335932045562616308189746498621751558027754023829850751217082180636737986573211859902179685615478806247563458778884713900363756015360756796286628166010061423898404020189066277328469144706163308066361694092239504541238155807821411048601771659869620183351758567814338483076039112836490889631404544153369568111691195412000753782439656076297818630222439006228864919263828273485512242085662949825099714998418227032453908091416117847587732726770883225374536386235869254295429335247437697944538929783275127909187100238960619568844306314977083993728346834661126302797891216486008256127274933797301004535923505020462308544517389072576826045818520084071430683509377333965225384454992247277207340478174006633947952033256479782363151559197538657398947253204892450854006474563523411419100463844933345823690653330739224358753351292075125248877586403691530900086753297650322025737687827012263293118201512706637659466641782770826744516318125721637375178543824645161794351084705894060396962329797297022955919480513416434943873593654399196501406102725853593276166243337865624473952418184952155404200385662351725142895264509032843184913461849086987878897399585047770432621668759158345985476362703159521743295168507357279569292198823093394393825020262644406157692969207851582417592361326508232195300356886313048837866984133884782104292313813637962091364864514531512457172625555233974842649473522431114994921008620473625951562127418856766597458751877307342960675849787312798005252594277831863488913472626301303041678730388728160266628461090484722856077151387497381457377009304715714070704970711987850917412963702675266818254414118288190915516227771284535418226991968345756324731150826716103208984850153367528049894081071085768985910274391015292902751540076547467188744301581564668494388903976693120931353007323435774180434549976435682969913997402573381473808210380492774180846841678676788536595456171813181640936768361635001450323106973047657535764210980873205195351348701034224369171288595510138215443462141863011490168868922173454900996369251669522065208436781323393266285349192241904064396536912874769881467469370343321153599431296306510576003097658872033793215831454508758247273159597497010032798617141965705393901801109376372342181161554218771151978937267013353919020405116603113807883180981327733699459435053977768210737758231910166799705658690103304275621883403159307089949979693208908109613089046834374806687481639652665443581896119776153285790121488251566795705034458167302497610838007003061437305726197620489874512086739590737416643131927335899562617546548140429160990598000869030869552879298225866781696553202326588743660211214111248035852591862072006333479811194821350161463184240128393254750500663438188503561521403878624448333510428380799821727705203239051093173859435908998793268167685770144926405083038275856299023101770187791887271223675933955041091429669238624427159118662138776080133549889899730411700253634265745677318851755317490034326463896053423874858693148683484280830413515039060984262191532450530986617446760906848594680036584409774977239942150105950443366746105599651646400280568876014586879190930499575153180978230419119953578102865598743389223503678957700614045935221810529850275428006902036628664749372192134918681835114981074371488773356136318265747228582333895418267568458048515311841295486690073690850599522224780590012462342385160090522739860058223785147383309117810723208073250735876488525297232334851475259018158787945760683694499638008944085383085282128801990902178908801459116107026459871012282166638202860139323982374151993428028848178328896459718782663282499130641468675717503949197762971206328966595274351171025564431752904961579957942562704720483660605208110029475439740609343491424622543718935733136445207453131928861495358442972013340341072000289156165820654565207809413657144096230818029690593984812429006310329274718869728808248250498842984553974316433496912902540324972882701888093194561717857518900001575689171563861875271962893426291510687824159585040886502308132937279998679224585195918020374543314949208638128832645457090121857164189003894151058658772138744586482007389734212425864977150334525415169330544908251708324091553794035457686446270451696315582502765310670155870879810890580772061607322366646734676014373616703113530345668313788812367560353871004874670213853748316319952079377096856840533965043371522371122281198025759187385007209866575829233357034068255000868466444909479259309403306494489888303353856490692659626559378349068491130426886749669567922807203077888369945276324126221648807435686634097424731743804046312037072034899452231399581360377713330287092204404778081641553624048793660080890213875425418205683390487959558396930188027511571911263014196397811723358256526065054262981306136345474767072691812348690565243937849623783647109981173471022388534558879510595279076328667159567987103563347571456289266824399526435590731044984726782419074930398702388405001427011350026827323301951238639057016468092547989802188053663894177256746169824390843527233831767547363007371210575824736760330467742166885182200779173966592520778405838612899459063779761145068238417743342985381517077195976425044812433823678197952977234564022037306903176132882241068547799926679699538741536361525086304331937372026056033848622498278584797075640475233461608948735241516523496799173112861827746161415489362141678616577533377341901991650294582377917498233130240971653269570740556600444573878332410755410954358865447975996165701657757077639929724722979888634208289513123789966969036396922919917345864441237798290983091005760558088572412566871607272450013955709880297653757113313546184068491321457351661809426537753001568007044389770608577827296055312484066495950366762585136607315634191814541583797283545918625152388068963176109744057037196675214340148492106361967405380827734562532644326116396235200808637516280845412828460577182388893441755333189796437597049540212852031399556076612280591571742980610942881173920357022903526634658132476657472566476312127121766488628900192158945619234747056209649448635618239880236624412647645557422106667055498683409262115284700928727808822905821416370163094493223300738715280443254648725437152834988060384799525898877193147713037153925951654637604621655148965260225476266496462423075819801494697012150812213899326620902647696573682891331776751377454837271061497921843590318971960378011729690882244010222741319562996801464761561832876012094195972520976430498370297959782129477220449299997263714861794366358116454564859604510448637216741998719864055621707560961247555690412188424756145104627908343700614622321558786706913882569615779833333111561491599965832602465704573210356590671889945371507907888762956158449534412088282463783766625536768026659377676656981130004592559092477071518877512048269487637598586501344422531957833621610184466817934252690574338000968034658506176058883487674612139174899932504180235355583174441241315287321823337025782306597465931432039559912939653056801743913109975095021418990973643247097542634715267627718796348708384178815370741728396173399774706875890887302459735117419913765658405329734879585454044539645615062341354083146108036516016387983642472616839105047057458418759907541832821031109692489943218737798763468549626892007545985715307671807799160873998170448217575449843685099199314928180179499122936656062480794227786238388351013673425927161368057301435735389956384188937262230823233620429090593201451108106304249750810144750774631767157535795693224276644196528243640545222967476423918561648548711785438193542339436203330615711542127256682995427965978162529401616447211031630070960831739210744902946487722862188077605492223892538083584128039303212294536859434993875031523638873172759313178872662449272506361607947839546960458164228776692910330539135023001034486278859675991935084433540679437334623043573541468421595825544601885508426588588427151241988744834375191658542070217467145884935872971265277290609107194387558139165458697816619555852174459833502507824230072644373101047830099970546667117358398480209701949218273329940104732124237826788864652976877327924100182203148957393083110883063341948401770755240585424902226567643658973234930422073450422988266605849829283165829386226958654119423325203174651700529209414238267226412066954655743567286625453943916391724722592995393667610652966081580447278854684144997690195269269981816324049270784970172195149732381472513768853567156197617697835753437861931660520840546868302654032833036472606890047845559569001971419224436116760628498660960911800811714900266557983327218757247412222375372871189298277561312103079518851982507728604638579352275281236191630421369975772148120207554986139511865511078186984395120799390150606343825588428782903022748789161818440907813891231556575965616190387973338627529183251687529650793657714433192926056047760723458360066847347109530336264506474982915153933087716241009206942560478401279000746144480100960127686908020546609337321825590893233959067806093392309617100540263976124528614621675862594133253664987713157001256555784181103629246275534495167284127590101695692788945033587117650695304482213458597251679307889523329688707550400322236942749295426062798459771651056014745977979874941468825235505175079755841914853941073015631427818132802133933898824643917538162380678175756937549992143843043117044222792704930524271900849539743453115323306593558762935706440014952965051778577691053906523290666033864616129667171237340855172593663441512009750050718847150116939329065258415599639372365531216903859713400805698879327190810302601200947807374371557870522119353194781171714164579065415672032817518415462504882008076072233643458528210586057485672943408929158006848796848681372462262909316401522127455991270856719442800165839454875025423380779125248008229396931856230568838499446491229977485589272533593076101393615429640210620757697258581616298998215774953480900768999529575889248205432176603614379426448561454204132163991095344485489399526152609824211885436000039661790588293186675724230694400586859899359916482037233235031307881688743581068706261808153791989705420659514364995282718992215996422823285384048717494698490116691674955547881347448921260028229845511815727127253182233924303244099395837288944604249594637876025444966659642658982792054618031658657330904947051254584399196278146514230333439575275004418603931088889263604683977292333059914833550250754773523653682276482682353183501882146001239148142411873857387954918485435001435539595801453194497803982620834889092047450236624923753348507081056820833345168917946938946915224893778712376341735238661909840291874872699600074497827984722391009951870818196842116283814275632907394473599721606829571242883769383803251028216299004318649894050062450347633671697703567354914827897752496012738797998176925097874643306198745549444740908122539071620729419497806906876544286242998567687340766305746012202511622684632607285665593716862442068428646536477344447260683428917186138514883106607853765342629616586576058027644883731652303891797521579139361957919929492098259578972286756762047525361811631684459116644883955624509968524582457523293041678516352319120388584623902475804055382211097536369665133576474718987460964339467559973237787414882920711879295316065980702181549353180976753092935009237550553409463464084719842858165087565664753701763241476742754223279514415605360462955728040275935388015757678018618626480281763946084890419491860573659385835124876864056619904010202623302636037883749295171951043742126855032225425554392444194353800338800725047006170264238133136428403365973469978498805364584606734514149971528482980367156764070387369363578677674646169961957107994991718354623390713882181358769854999156259221519563925515094107591043352764209579194939643855102250028264822819737121677049556467778180741190575040086019716782665929386807192516066951108508038910377310950896174835556028119553021890157621395328588484164851081140025929485152350715236350676981096564626436599123681767238218639837542894580779948843459399531608683103219423086416098884633757103044739166227385549734861363790181909587955284376855396802680001367330049865620803187115069699050606772387099683232416749329662974331355085916962863205772788487618195840571173916457289154045363135395900211746666413068127882769835428949700267572435723161350882912864824062936123241056410023541133958217861688860306290236694870801619642834612807447950309895423782990131027113456497869167578073625936629576135953591130635116740026864355381262372006882400443284078071043447770039661953324167512661519728491419380148771446408520768919133883143013282551789467821258310598283274482626200957018153952859263702620297657467408937504485216977265078455882324818729487410210394000284593288063432912434313567730181736791873008460730482825598992136007585254167130859611971581405462141366610272341051474182347694152418720729297358961448764815631857182887054705828883274025711958269950973041665160386984090180542101273385957747778643855089450434681347959594500979116444106787811296264701473125199746235274627715509837397288739257516240191875458322416513583118973909425439538725126605986561331914754801987482227853296579627972885877977811742073746896556910810353852142535877487215550773804780860169302849092178278639457047794066678347148901554666555861751288625701416857395218683268505919959304737155884825503929956807134035929906891874760835657882084505853988718852732536461463275998641841238826414521559824478174195628382238999892907855179509749929918017167545548922903143846746427435923739950789201271871905269977837907817652607442310196616797655738807601618630165257054823515075921817166781458461271390854941654747565259079884836736598248855736665449812955917565655535074868746831535186902321618008376457435092936976979199187469635015145882721200533000055569297404449193414804065346651670712960271865459272785403214112870435518201048060896181312681661136093549348555310341896771723631519826585057378746763477166666339704529368553297206278596917767459667081671517821622994030605758860893936528743541578556843483973984864071669928095804104417958705591771690596255213240392312534279284564378812740891854726735556343051519604631133806578514339042553163145730705526085242043340330280206412092028105074716756079205037810798505175343280606350602398617396426407702669224581856982229902078826700613489295914509241972265661632980394142270234165221048976162394171607229307971758539611241716253806397793181284694300561788181352223168636118060919155349499499651531206718987578874087720199668075353384659195894760057286737812949412973573435516410143242729631849205552292616379002530002814056674717454980993396112866919947368242154857853088103528371992798510699792976363552516813844080136762059480431764595832240222253933702105818696343370761913069900200286274106423512218815382825473000436086408027407338706839769316748311511882276116061480724093291799234105532521463159761338838779238652253851049103928992290041964545392787983279159766917202037185560062351940001324071004742781824513418359560906527763594303689641132682765526331591416325651166323844138612573690500955220335000343786071049586839586416694005425113305596000670443354676399120040153315538527472851848914325786933930612294382734356131142154837811594022975768914991932083419893674003929535240525446884260844020506933986644700783470363020668105852594048308881346804095755004228118569190144096173698379000898018926752886442438867954251615447027208832026192086773543248466054735924837946050063872206074037862245688366312513073577237855256855245581743224879055103548553768767341068571988587668838831006065615600900319828124594268932620724439617746969762055296537715506442913906963650854388879739601835164928790769919183732382640299109190337189337504974432978157803879038027493848440176189779666620608320748022309551395179955202013707482409546800578716533842380052616271848659150886498854112244483899793439084315639378155741969827392866530005073791029906311389263316418284885998962196345683657497996984853860915231674074872834695686232063862568362417173146455420127239715828994273418329083881067333765936141852264844580597486761026805344751415030318941014840173664964704764293645496293487571021255752856421977657844518465669181754221496777914550494216785240236472349801433242636349296641615151766326030684353734067330843138441930750248651996385116162250304440651127175309199316153420928523029211608314466438768182594155378935592283455844019950146420417521866878678624347909832282254051695045020063806555530760053866976812216618600821287056408529250588822868062509517316710373761128724648007797336748248226907107139536279963694911488231454304386106823123297365625423373361755572102624920093758272366487679350519843789844764424666539397282221108060951485680390009591792575175665633709849156677159942781866330875568855447703109626933630132483550516682415339990326949018858971598528859527612321598812271487038374923792213505715427464893018975494042390496370686244928127971622683929565435397276461761820478800667659132728169506824074069059680115908399128892133732342950509727447365796674968588500712880472175376050692361469063800636518012904919104572680846797713875215402657789152935023778416089697697159783372277651076462497039629020497181141810980800567328965465250841755025713696783331277242885995527048285170530034707404990375103260497575261050277438140860092628806045170430713577798769236226833270350068217791133750888734875365497425283760156560846269111311656374603946688939734180223404545313521486790540532615806580053916339112427779980275950326858740867843448397986473687299062467661097173352812495342822513627561469142441898288777559734886856939706595450595734278714192297954457389208065795533551939547657859573511056520235022393176130707105011615311112376198427719158938677105305658385872729453618652370877494373900454083755671286855550282313567857560069750436029867008204503541115042867881425595061603444917150773980236521576929516270359788063241426339323614827796011160268993910997814595523827911954177860625711838286442133803347266418196249998863514257993906483439239798414627760254005262964984749675208441396079819387404537788370742356806571023139891367104025097388535862202069682068922975937628160663602829484538987905381981177204673596150611231774364224833437760334305584707655854783871855987410577334873891211969150750557364200891867310522990593775875532894987812353282114310147957651584276532960922498996087997118059303278558307063461394858029051162829585919974637165382636083923638358773510734905463377601247227558202245920104880388696032292090965138856820725259755911491496727156209208716447834458769807426024191559760153641761126686804595505404667369001395631554672543397444086135804701177972301628115375175437640770757714226955325073397935324579043614916554552153428407552058966904506661034054543443178614427468248631621094814974208153816936221434270295197919006566608374330795729856864464852544037196765040594340343737001284028723243218701671317104171033181993297747730554262154443445529317400141988944657692366202923861333292060225023761828965168992256081020227172983574174202664602768924390304997875016956758962193176935494797569966617005186317990327060860399979320848185505159700190444909808464803862098936331120064579445090316927915884800959130865465696865820336179220853830386003132898330023955432108596957192743977028366646980796431908537912400285660530770149492476035495581369190172408733894082169341145844208066619855700559930792151511503929460302540264582000142536376516090420639948318142578393755039807016635345230318487265983046248029713853319002942140953838185421403642050614502569263579486954760439614308305470208203884422707045570525103333127094718233473722656387216562464845177550358729986144139825831088463184583336594718690387923509882201745066314157290473294341982729830433863048119644855376700135965425999104930037644689595468097881598579440023629807472495193223331163938937732211982100134526103224996829819484454347215631694288474655144618813195006517367566865960166374503866268347144559919474934987677078287906918599613008138806870156847359756391059570418587501796403302068084513579053228658218923187479376220979249262978476838461374926320542284392386242473190668075931771872219056126055901281017171906116466835425228956236251342749328998712541664919490493627278412816175314376524393490609538534265122300766086632236139742709230805552443062363024517337671118127120703623145554421158265720371826155236764678551059013054608763409216603676726344837184778532315469679338830391529454190936516532116039851105594121872056316503544745252063440226816985939878930627977507357050014241498387890530603389817466089335991425738256663331698287899752039244022401970255201926418957329990409857091012163760258085588180665973593776800487160172166876238571983296691493611014814743803158378846980452264186111034847580216775713729020196083393626606576653073853495915399038111758406485183120063856616806294668064246230505555513018590832184522059821621378148155826521431560325985396424335302158719169436005704777727879637510718217186787945859213143315172729082182645884500434735800113860670943659742561560871096198781983214856929957856148812898585332679379369690483249587669736396658809912453787670765031228961574470437117291096376605166287657352485526715008870701288389401026992478510246218454654492924339110452776070214824246539765954263022485113071954219849090769237153481817208294630205484850892087466433424335931533721592185847369280578423599407030280621066561801770278740714238001579220953554732185425362214940222798084558357252191833391848829133834540114548639889923440242981258626679411865483745575662998932809248847616192564593882677253609991272698631399730831359574032822428722798638077721031963180371119468320014866984617906988268798336173980831483377895361768413024792927830452550828522451411666770574045787087969647309026831710073291869142179825885677172345285001373721394640776241635028687085222822719646716331413192612962257577752500578560028161964565849830468790705650918457454089343964827451061937223207701331019709287092858423750266657010429545949771966916816286995874085611428296499859369131037401985217151116908883647374642472179187380801211120992522195953246640145161506185458363104909213281254977720779321164728909459136800500725390836680503678167237846256800184290865062913077515282193814964646874604577011803915090779101197514251621508614444543781056608582187228121561588014400749265486462868475050015186903746142398322854807387001012965097394309294909211482130626740107723292999429131701066490211384906019491216265410630746137414361711279445152357917739354517966342583911701197806776428662500417857302656306106520076045738224241628651880033931198310116976156529447567086976883017939022998975202892564785253664369583124688077977790424975249781569403825972239745331619098689718229789663515783400668263897326403522404621601533272825165258756007066336141183180501769588862206504196662870361007016114000796627050638057980772144359783855175038862718463434534121129872127592716849139676406381112293505569613644087032604183332298891945742175924833855430083843871191471865455775085481574915916073700445339974497586756954616753026555202576167042621441173383012289171465251307918382317608603488666046302803653103999114886663345419422615326745128184381740099968444828439953042858275606941565160107263644122614117578061816203153901283712393155699678402869319830622497926899022443710297326726763371502672832992529549511546851758863924124942815267526455257259392096524421256563283007544500638964586212694229436704596623830040693654782304049789516529802875966864384903875879570528925372159699334394895376573103080618791775054511977931700462063353096233445227582765815274970216288590491984532250877616744749935728116918844759689826282671908108669898101102485011585339228927944026116658028793652319796286840393566351545101814590032450988487391697864979093711152503512523108721205378469216926923609958365065279623237639817193630651750559878607097394503414890434760186076142285578781348031664283055037639592548389411774066598954752067165078634638565121263715543305404816191097647829089586625410636870793823899111040917253555934266501053012718397952560856156723426481969417966988047146422304273466370078257731790403946243467576810033516498482559745678234362498208902784491254696123765774481524248672185437513548913054700209563082562820068943806982036749344110467510643655273144818877441996749909084581692684692208735891957305203871525862785031489740827612911216216832890145230568404438864474587940287679142366093562645185493897163793341241487464835070244814208741290059623045775053847434068445391797159035284654681855624397943276837080425305922076782961556823975257457656901765014583116177448814232574868377742454403161677257982169997766715002030569697986408799098365281752713784297348348842552239377202795359644442482200709521334849393083418242803268909893546589903741961619535615552721394164319486524397762949100288219723406761786770118343650187548700945831996730527266550037414220220421963322102303316845868915583631986034612073567056573064742633159327532890209812147149281855540779103271138716908012451094783812330336774560517334040264698843599129593989326921373976811723972552407672797496157542895964592611489464608393838860472983246724152947831469364443593806988484948464232376645677384111061067195215302788336581107335164190446287595185683116833002322883540514792333679549639330036082376414059345149522679711366017070028616506507557137192013023867806837542926248078947205541461104395137866624335171735550359195513049301879747404774911634659050953204588831790895115064586192590360995399622446130345698513844225861857266521772091117405655183876501254313355246761036006083293228996401633648489682140490467057367118802720639454605292703244657909779485790174968160843423357235953262925163641129170703267980907856122791462072031657666559808373643705635591708261373893969332023658088246285358984622950205987413024260049897810219587227926930596785409820736104202488417296452110371110114902129494997499500141744454893370027327297939178916189992207550011190055002222976878632504910243122630171880592535435111764359715647458784887534690713793812496587548969496839205858687776123548163283877939290261048338157759656796775289673468876833652802745954325188087804347855096963270741939606706267359533649012278420896640173163060069423066426811929979274658064806133391988094130710521227026759163304254676408916342679187905611516932611878182952227672272691320805846775782795858893559787921557282565068555366271450394577781702926772048084577019402533923676766854303600411853529196290980904994872709370419433996266633000539821946761751185544372994861029526774955411347532615991268087615673772915576438550444956191497510872781118048357570897245841349048069776839400052967528180228440005227186736370879735305446049231914342206591760249101993445606615992269850841711169036743863233566724574051663818530973687449745160591448134201582777684203556477890167224345394164859913955828383561837931393684110533373259588827688274426482989445405941229543197357539301929319503058322759960301154216026077908315284402544979534863089389162898682173663575621012946788982086127465582271844052703923169240681892516991879567577023704876448442540286941066885079551187536080891871982170081828306848731999307986490546811198586108308077469989036033449667340351173527220006718401904801315525146524190207328616127472569812719269873677062704735051512173082004362708076491768216003764894784548969559565350746262192124297371655047109494527969317730104973225075777134748916287003383620244582091959990123312491318698534997669558516339642365344857369559935324745467632086453399287986717814456437930978986773236684355951889171594931393192252190410889934388931382365824509205266897638455595210427524493016164181457636026050460695364311394556505824824459532804722694278742960613557540909083170421954671351168285430103569055364094196861514185141325355954907209397571688868063467708421123037320976321532625702282489403266683566812498021148837083993656821119289128954392047710681849390133653729255653338501944770998989672898782838185263579230416409660082435385044861167731367114193478038084476280664133731683425821747506648150672035309953157205542004460381874129238725383509574583107866855985658008073186284815858359818978838562280248320692851674401717235190570421319612578503150119531146959152005324576561299852048377003098830466996242400639155174499595029460716487449353870788471905368470669584150178749898878953078473288805983836961063550861755754968868459771866170782199195405311493719189874062459421345754350015859797212568585766472183328955933310709115746180756409515846401348970751926230899233747551105674433073215475016524845280871346704951634576433073546963089695662509842282670271445042057457321920944041355522525507819440796061631109840578719230631140435566318373927114428506062547696176045582568215114558773928291335649778060816416258420768036986668184501954100538215570346347697335466507126692494261423182207350124670896113629863190764870901492845902551595582159523013795539001924576788950541535462005900771246851908889804069676578204022658925073357167073822982430088560555355164303889247266332038307950681557598728086134829887614605385588174322310850947282816867703131812476325034196719102170887321093860355665649848357599006885978526950454728450564556834761564606629364091334904510849856604059970607325677776127938678732252852029381943537033201195655166982087880509105779609105493239094832737066468021199355025983105310220794791995160082345582117301618737526537080477062441135637668816194500283004181030172092031954984295352945950716077126242594714687687939171810521356407658230480028457503679806585717809629617890246280745550177986101590580266144840179365809242020170167964628821812693834977408183067444262979521356113852063867605477350768696969778938418999723197133296618998919515946347829678699783318761963954808168273879588012131238433247299766758707699420269299687547044088371219744262066368987890890314415185931251095374087804378695851821593487233163380064827528005258443053062589620739183216593272449736203678416017417777914774487548928851204092810217353458472116545701660584282806900698130862867912189492674255723524702863470233990725571669919860942787813524955021660326719166625269910323640412946498752360756654856065603542911912279164202873715448025922714090265369926526799595999389227499494959825691974667778130441541737151840593280168148744416421546037409376108912464819431012820802793391724396975935388448400115587904725656281237725162340299371026174359873364100172429450657593233374792147141622369017280838473821800528171533546129758145695586659566690543361301934200167422864024751143137974441916653185630190493632574947818201113100556983520000900790193484126013879979449257271786736421790862265717820011680123846714387010191720097450033429232466027724150992308201292987131934848937791152635229535266504615457399990377439583117915111499437949707612293998694743871003261796459755054217853075026678413407085299520442222001983033677837736648785039023923503137074668074487596708058503955041318615936022794056629568657159809759198369826436204913610389884418059644142811430832787209174386530348416465374055343906934999454431884631502643375334452415536314919193415521887329884292270743452748137559054395181216026527599354438587414508618577092994947261060278994338217688165299658207171627566414398932873292761540573107539482333815318613235585792389392691567235316121754384768254933784967741403693840450380200011406099634011947374257015534818781060634479390996696523679915606725810911239011886582937067736500473463510315902869389986465875727367395680693066463012119193165064745318115430427683329253446883461437863091941393552026956755159535347856355617231380354145260543449517350240969426507337136126715549835092699409657514772061996215927471185541823261190193493945789422998805810170372648210657050214104306405944632078666223153471322865680537226591224307136616924657386276947865739020863900253182084632457994239749387945764101758484360674954893575563464854205729410258302356651758039016997528690475689514720387157931331876207202371785554168770462081088755580778633442655384544057792906603719274883852374563954757298308491681158615790477628738394352910305466185402306250352568644599914053791293328983285577302364613347622634594594878269998655654966068685893689698270280310112119881859053209574692646104033723660066802656989820259808459112649232266620986136778776198855478439648235191287618765317453057895655496345233829259307361973964651021417353019811418558054182082462197289926638164310535866294963944291136274562085208484642334142959596629245216789893906563112795676900239100540212737378618912839839997723812402188371999581548192374950475928673446526233172442297977917743341785648406829535711122950923466682432485217905483083188170071758413047756488758373117569244421500065667293782940209261344894417767998091930603068932864059118596314895016666053070703581221737879566509357962496896228352013308216542012914827263988494206868040967880848828840622998845111296833921938054323914987904958751795394877563064831492990350787940265837753050461311936521563881133016161172826790465911111831227920281269477233789987140452547190447264696533958410516869049328542545085109319091030087830975650249485107301010265959123341882260721763953132083861409679904674226140203553142192932895746196316963959543780311520449586878793535330946446189903808201875265819835885039143578001548079489413611920509232150338748524964720353159491886482826224872295329926244293831751895108882118705173458183275251554104567747181448135780778430535297988745562625540968014818511098231630388162735860990257117090671801799842724893255709312003108675414232677138744502594318304448895264678427073193407322654156819020849681038573338579094208496232752650712877894273619852948316976324219878104302356381662133086469351202217791848472278393895778983913724096370774631792689620904217185395571386258360232408887177783188438877753307523179637905084448333146079201285387324559736688445822648493438992070939249719662557975777456085561568515806028931193243718653837339549251535655624606408096184775684000303998747302008483630573981874801703747253378355009878915781668887572500079759904298711136328836515610497048041375192459286961791096967508068364409045294855468268051230548461660484769639868143600107749231794445786543598269640495323321237162548591960295944500649252244762773840423665912895127593656771311393888904911016874568963326754386230356348040695845764073517572531493635334527099136406247634136581623347689969008768177590349015255306245785146753319803883123436983984197775021702745941776505407257398284578054319344630013165519667232293064277223077059291192195891317785034963924858257511454362788293025959905441747078494435166253492521958398810297377468843527413508349559682330711780572887737425752121759330425866524083132493708317306190869447828602711455820334677810396278906074753029601923995753967467542285410280287382183942661969897541615365569995591172998274798794011884874562344371425059511946839303459442683249694862087453438024558854022238101433278276886140954495185702147860532696078791872317374362519687379845247453240504898197531032152404089283830762010718055173697198294833046389728822648928990788854372714960346354991167296568061774590829759790334543637682329420521153374243744616306345073534874714310286570896496675795255966951984740245713524757300565736885912702839320356663574826375501893420229472379840006275602568740342035884764036822959522202015286136828462766225680990694208036902646953652181738600203791435693138038436606184125594472289140296891971561100276465886410220532113422328738182609511163534631233486539351879432185837331481549439871843779864498009877557217626285477283949401700865478157405358938972066636780800948944334629666749083222590969983818330967412441627086988366995918831795844636350921354702637348591948170042383182971349277359882084195906300064100899672457496296736800470268111142039933463187385676353793539977524109905005642192748739985617914122917240573546960515944261833231452490239769169270585033637024772914716732580345420064215749409890821436611593520322520782430567278495650989014974624788461119723455553122984733620158712021792612087339840928932541265655374109905991048135468437157403574789769511958184720647037533986893755802481090396142524766104795777065306605883368429390078270600700097515896910362769582972299510636015247559629695618152572517333768991664606689262746635247263732103233710370055352179535843557598093939158223293445169730889881801670583586225477117364844925481241211103467778749066085463474847554856308123787483344092199925952505137886634823650656540097242088746224327020916288126349775265987384675190710858329380817080932293539799110073699381842551616554829721863749779212124329041218676991802239818817570893984554883493435565979628186313518100641264434445704663426489602071010693495949199363269481212816067402992745561514443307487990998029801345144482588154224379294369645116970154482187585634599712035037821608217914960349735787286853755614130317147027852823634956109082158462422389390429389047439766333343958818651963578659309685125321416171105032059087338395461849054763578671757961386709469263288584784101608865629705755705055675360828952023332791644138214101009972627094325821458631735847117542006268517089162201507645110008350284288827431594837511710241014686433058680743296713450326323685329073093451742818735610827897523946365255016117556224251632107481247866123250139332723671980087833971997303619987874333555393554433272791832139259256708880969434193372066098525738913960773390320644608836307319082347153066462184508388786535996525819178059966925776154205748350837254922477444898882787226484973552081490457007915240736825794490800300229368335071049510894529726573457983859071390611219681011331950366088635200034128670718548613172988651037547564808118499047728106918932057302965670539031776741968277688502130312073186919728427846428464204772500996411706398549591175497859540864827877945183833755292318682319321836154303179577773981633603938597974259206964057784235189268078231238485065198530687372300956466909166087969171983149019948184310044956582849589608391143010534792163787626820017222032995084737288510608253061786033279215808105016116041397147365713291851854875558721589773921216644184334883938487959602932269392249065616612595918928676780222141844093939474978492400598760700982512836938875505078995103577248329252971258279113207468675893882777986044057472336791804576493464384828292130163216927335573343393936844899044699756444175603551340393230739696979215062580385499462192755364728362264229400559187659226864425780896825997846468454241983180857715127389379071577714588016570415146928710848784113390027949464166500390752123635655093212011170019867829023588127524273648288698973114046989739421995618092440941208296135080597638489850228689004981475844991402850535013047336079738559244762043438857466839970807422348323737792090138451517503819228821937890444035588887598932133478029361988404316830288101598902708105615653086769419575768876762428191815975220026688549277624938465869897703751868350436530049459344427450465678476907873555741508871701064864694868739404834841730852667949829119509723469082720905399105585596410524882138850373322161882403605698008931865002547927514995487447558227881502236379288712129414812015018608094868140199595197518956653752119086895411463831493043039523569868731611254994088444699336777871675760042617715622337617049982091240194325438866546866215413830936761127495386332697952734376990182187561948404578225145165262600131224737047135785160048350765107348073736262007669706296766533331728779017997630037323322944528557477057469993757012236459381067709276781329719888220709001169861724050191291746525571633286836100520089007201944026075994370731814017385239983363876259970068927588248968812621303014863813912548733519945310600205308020237552665764039870494874553891923029579483343882672788821088148581916019431806829172671504977165258658968369740716350033098220754602083086137174139687712925921099118202049549567068276247337694836149760381414510011153128624070450054875973231518683323439393513314569572636095566483267056648935528643589944343168560606601068300831332212245169754518821385502574123842612170631975144918550559126747065207529688377953814968821318869843571702767547632808532660273256174501576295569091413556367633438973145871000076397889284642310189787703296176833406719604308636686523093185680773109042859896236830268833153015720039463830849332052896319734884245926386275932887759616488522912717267909133681793399055113072799371100182810907429223094804410059059881940644811679045959649586566238400153881729678229294961907023892713911105703417553006113466876143899618544441629324085904460968773874916528052501888040759664610728551884130443532606719180770564547130103852631962681291033227511643069032439289991581982637513418976644499389790176477294515539062303726705222799671261790077178824218337598989956366198982287233742724497118629842431071890106722795937347218303173422706939688142123041783206304328837391567173978576389302340407888977949892591987768287995321993233965434490650114551065483299797149009927472564265786652590102562628817330270395602570416852170623991689151799459378204332195158085676273695272773953097147979195653695009184395026067742626893606132197279269749283480609243307200521695110215520717592518664467485280095166403348723160656843848381348738569483062337008692000583074386708725628021710683408316190777530338581146233899571741779763501554140125988828070015430483564388538580753744582071507357634028193957399439397257808962774014962593040945805541354274261310603280135541114158243798239625819306341329730177210231190986229276688378434803281705075359555249734334995408582792788087654671361963340011557458630481849068232036928849776771814839575135030985602761441310350446539179934637960914519126820863636464113937429033509657298905333651416277922967235681593238145406615578368656038803395501565165197492710319170648446653589316363716409569070428314830080178321478525220718488748454803432290238387840965076544555531636339650261537914529085411486266449576500580361232788389659183604336888249088982990058533359792155257102289175013073620437073349599721232371254076776791247362664499487366258348207091599719687763710337322078469579828648018866215876044276703043882550202346017795265779456171544739669365455707479070161850321067676805019219683762312673330492149734904863166728278540066237646535912393607024953938316789767543430569423364321518744697250757137747417971595944269586150949899888008964182209749483332190045747962971143474177258588325631549082611082213092257466734999084225597068014533454150508847216936780552827642685503089289965747640642524070522048294136066459739628888190944497767879119036683604206151417770531918848607141957766383535136160436914331445141330371260687137298835352755367355732354639657654161457465302435233763166927400326668802595526876797423734620538978402576690990500385049566881327907353857625727999352750393513998894719812406159527842656025497547346953922273186104844306660314040463857759920934450712852735710730651740435082009393014416263483130140391649404617838324947153591074411050041377558817223526400011192609420276258901344651778995441858401901278815633856565357050315882271898486480041495151023942640016331515712122784365174411754741427679720225986293644839458210161498149425659839799718875578348655758934543111896259252609992908710194834591553170156359192224009588655168250962688418095131927329952122948645581773947678944275605453389265666241304931696517678106962930815461795464284191648331070841009781743546329064222127563553015769792026057737920941944480012582514506750416437046758198077441911659667370211855810658292598467731145539476169347664888645299782201668130130534686936472824184099463134150927932786481762344296743623725731993654525329694518535413007158870742491059500549193130379962617485012496953946576267711134147014115077807774301321725061361093882010647559895524443391006209243207955161639079146816511634179027758310269211330189559202924206109521779008656751132753540516174259522586697853243391175496797144675426491092086770113104188288975774496173791398605498065440889588859819344869880480859877632253742734345004394191097095666225909743204988011372836266245457174812238955921208266226101324164404579147617698166087855708777722446861218520823714463159132562243530065190749324610579227267805306500547127706838239383229305727667156990342904473961413340367909553876695326589894866511862748661377312431657366214368481697612171536219098116337637740236424611893517529758914319863792889861955561369348487982387863010888632247989875997243171952802658509996708768398578704249022873906281498042107396140622230598593872899558195302821948096225308287651842016558807108772853839876131568761107285384269816836587687126231945112823622889097337524803400390480722886725481411457857135194633011208941296333753669310720038691453451756713099130034321637827835805635695153528571862886064611002645491565359914912601695229454289655201688875163097877974673247042982003499809245333092299216810297004429936152619104702370407383880132382783903289062206629617295395353729425423681222859392043200230794142285119188081188780589602206529628326363055328845860024457064953299222421636596412623997082171982681466399140760725280976469212391657880182277708983932517598825275259337448481139614854454049423282336542875449835739489281845877181399170486317098024216819812968239332200113149421429054071824712400144173133976657625484620151360645216281277199020251417348227538833332217584073646651910280513115521169758846724297432919007870159360244587441928781787281527508213951048932674909134421537954423109770039338411964250782821322476469554747711503565685303436419108776345028682855716783179006742244823300819640715921791968651536367666316447055295009526387938870849771985450495491674002962369574940483101237835020780611002848789654078571141792332459208632429298510986804422726552842281149226748816715590310038254579901719191518287054453777198742271845301977203225094880883371787015368800961821838555683987067628181511490437535586436020941133407054263756818787075028269663191874388665101101681688609053825594372706162624134961605189194135883767092166535483654236149551655941044877617315365689602969465500710398409758583956757809298578028494910104866171346547832638366918129240342729125528093460981777287088487119797202911188667689881768360766163406239319926996560547938014081226857265684068399671225432393370270192066384573488869116835907368360454214974871673630804486238203160836345531370060191317497267092277417077963750991460136083456992259124722382515979459843206500795693922083789350248607391898491866668499544677254400445751667879019088599799443347866633950947652493263482498354700832881751146860051716122771835824439902697236700062243370828093163312021352600830065263204224116051807341786699769489422001334050137247502860301388617560378974919372463622032478030595554264725921525347317423794703740086460454811036086415988527237826418614633662010546094028975723892790642872559971991095672625337408358894818223394038876750299051221866255361086052070726363322022222619019049802788953476841900984480144271767401760758650226647374255386178506509061610897068132375030201155906747803391564840935659774629208170148452178162022614692148552341745216645508472010901265523428835771795057930057141319803570713292007461256441022288997029196311552549521191491057207314468397172442551129928701402000413874877790587501303456004614547951183591203551910650252211784934537988904328781278884860405291865928397958984669074877769476339446230788409863650654258959402885023395199617109995102157222260688771059069903375612755179520260983922146574623220245245093917006797875202885433215740392148546629871366551640295377691601282655863487299407342100377712988723865091794249133783193361922270308635929588246573651524154757637421767398328789841270219898729030486295313085386234688019861272161239890061442138536902512989992263286165903470401180162972042146988122127758822009720320203143707793641574505497223991389989683035014989331602447242550310834181475569657752092534550008355734951047981405378713125576811166899634814969173756514302183877627659768759572699741497825696089933818674313298461629672718447937549803453603573129450266307319982417215982332995838906233326347680391908002442512415569643418020757180375550778002406820453207876664629929677332426396005499985258553131535590177719094814043455905040850019539931289408219699925719166011341429936385110888678736149944716192431403246156273326693786295170428426873711707251741572271633497501897376589563705845457487014270923854452952243866205611678008688788845868064311815509701275000894111512278756454002480367882774902733445008434039133418194848180504284755804113953160670953133731478259517336698890445173604543208596279059136630604162629633258751888213760405785739680851858190183480193477285778058593650965869455535783520114305895033960433421668367454883668989932883608402225642013431833736475598102515112935646419060875188088852341020484830196320112998715884863179884648353223158319382332627249219375774051828903436358595904781564385255353324167406805770223864245895458512733688114338963940206239252362166313700168976275877685821978102360657438499726053487321185630895429976017745795431843697119409624040443240196183207345594748230664455218169640216174755532464947790802979727774160599083647605256267572830084313635380387560228926343219988498792424258935709074484215108836337497831771256194861535363059461882975944360662726554692104209721919760500371140872636821120550785533259237861519152951050124848763784243739940730700679163455634000170441021181775376914147032188986173057276705641176163638691168217661165454682198726205553103670681409935232395131890629954838453276523889367855036732977838995678270823661906137127486270619380706882558643694499788152679850180541363140219799558746028103830966485702619352873569338999507778190036148521868551817887887690763604399334874107122916332397064186780686008341189123152037274682033129083361036036835981757799795179516687896157412058595240904035091187764054582561531305907564930499238986255734702038076563470076797294347336494219945482846952570324122793208878864973759990156168515774740256235985859877275210011373472547403453618014673936056900916855767060328544232072750988831201683254394659572755570028235512741993504069922391840677888984505511350808138837476000722727961368251190290874185477849084526187152951851558666334687039753166937013010768548603269978088579151184311517651009803718497712163132589146766326430424366007694366662403806421559190683983202939001951440429004416678226923550000894566201980374877979639316349606815159811380463832012097170718671501765852811627900639161578289702599647428161644530086082693745127042560861709130151046729710139027408440044777844556363076317821779656662185890818293328964595467608264011503096689616260831170257537692359075801563510456456111761749738163739372437975044969144123968085487223641954875992112730971045627603252087770984019625341372426970491097773067615175783865848872634751399879771531207845277900858133840227217142578627135622051685348317396590414550357536829440643768298553596155374660950896002916968594727803067017170851366398547315894780624402782591687764623950348170031713986011270271078431748320214407093857570620809900192280182178726544191992182369593705708852145541419394459611321651695276784749206425908251097176403177600884564608925079797889707955057804764511115278857154646957957881489706339723099123129789835544202836325713881081854428670001162385927786382755523950365293511547691556630199933072632644362527937486601804528982597570030331958340433857169685687893789477135582039285172415972260395437113976234386506065249549838284372443198944771139079765949137142303612205027708500108804218484305725105233398948203230302356409477398420828469695326861744246663987833451667965192796567403583759784412767559485384076328212988721637659114119678759100868237620062680308959821211271262902724224305627419088787297607537311730383134730005156779618247833466184004070100868594632070272808669816870888677418463658572219554938918031014393815135295766834777280005263737215981828564384825424054569333520715703642317890927480134097938220867529052475366845727667866047632109403714971974312545308217451563356322584936837817744758785487466471164751930486532803264163322647787852044873605809842511876076471047404056017671331934737578050265829594127457751785069894913356550512144442411103150002941048189752474031777334519429466403207457335110494362461701765781240814112432435703197940102976414922917490110596084641245539476730115016197418224990108863771023122352385850058975816402339149848692125301191902256919468963802345400696393154887062761849606294110217430744579580366050321289822335453078083798677862489357616894359118412754412111530843288214603201702979334599635759294716451633337508907805495222042231326053397755021749148436368568748290824010663432299281655881799247326451228643098530292677859400750304344540311299000220581395098262595880942094825971023652676738331381905252429331313500967561583566812830270576589000749266773186345756956586264964443282970466013677864325103160178841353988070134923537743331011718620953074418179219558424886080682931705889870936983438106038687986912686805426120049977548967259599591100246806387078940288728369290856275018967099001602832880201970415842799092579769054148645997346727059087722638258467563854113522899759762537269693887234434448362426767402702109293508118400618431506098151349322401595176852170246065587558719132691755409153021540050320051786756552462847117816006806700453021705236326772814689333928713012757933153568511972030818397954580865325101840962631692397596116448792322381098450553353117328582486173427935959610487775563354777642506268845145458431245929123812569501607681364596210546984045793128398067284752967111441672804400208343130540151218546051919740665859659073551437425668549689145570336694742703760361527992295478940582748926078885171532746491437607828564711088696399629553529707397393580617359747385538495525389282706348866645280022346359319559904932938278003459696384441373787137155214230640312903514663038182853383441178675602639345404874272350740714253157103306518567348856999444865609507153072242550046515560802467847979592847627739011047590619775056630921318360920058622482242782809844326821004886781786460295118960598407886697866928579225130084294506559610164374990330910561817987582711395436972958127615511795561433633156870067838278088658434437618006113252907891697725123364810482889469912338290366026519141153647460536642189256176311512917510330247834352864315387565192223595978012152119191187943987528805727002412286259004260563574903004037280112399654799884099735555248726042321757762720302954634885655552863932154347054577466300114093870714870530788237492905213623764068661800120872014709552151858715376871881868213901805202934150092558972728386370238362772760748429535215859127947652313616161738884581592022912082365956427536963429450992144784173599435287686465113675267572513865331206793240632712430408178825479898272978855749422543742721519313103243400571463998927764112529739831628337282512873782166044459262280421863142164434778227577414419369264791641190079568009865981732401919907028171840323395862134172431357975180678354576187728346333708757508458225869696334830886365245173703769297281846303200516563321004090422844483352532819266693539912630749558128121477613587851624556677938407762393371329009260502611882721240869219070927568589066346878271101742045855507603212443526574599980936955395945827853285032715937204964660536140362757517396373217752109887242550954499110148681717535034209826516132405968270991681784898868892781615965376209774975073772100307778906789537697370205118555537377321164951298146919357000264015618332564138454052102503328825886663891490788647894891708855662805689274024116339089825674876720263058771217951290026061816506154981897273796534162219291253204640164239445165377283578368950103673641680406043965651512660706776696909235396489505844107720010617633678172340562428181514785804703836939277180899501670803505560826612550186082203646059963266335673785706173688012061252958199440361927602379058623156453372204856869477613700438101326407232490294166090366350246747307226707231182462439851811323264975162086665345532983091691420371178528375031312036985374800055049385628545617100414730371828801355659929220280625941206202534883581928535680088993496205277961611891695525769224484138895647743605402345859666328920709782148361768732372609288595959022388470241598637818864440416381930103075448793407163297461502439892129676601547506254978586657481594281626453994715659068694022126189792282753994203600832396270224012048737986958464665028352716918236286873708607034324724452613468005098799233008737356166405889358637550987355871605709059581674564103155513069971340311099624196748404625587403814827949946853554874299865228605641106580523541757452800434024748324886678069539908394918644555123271328490418129709055171362322561345824938608505259172006717113229967115592115487690172309318235657025721834187866399994848413184533070071205127328380250476013874176024259627411915564313265467407698244067555704176633077556767328110681488387271126627965894581009117027831621864741756414638712307740306349772588039160636198808497900741711617435603643495594323976130444280347363471834218454490429093552024359599362319407714427621275010453401543228663373763258303339095089914242136422640823583873566028588377491983325459308327195667881723643534846110197458899174072440100942270869410901770319723644603552051622779531404529427912861436792185331444666650203580190403405000508558434528522612154201000039786901625181384921591009777052616240301371644450233138665510096177101066433018384655580835502426434835002888949523940913510418851014908005781136132588271326162303542502906532227299293703202894750496441212356816992764371585686565418296987366342682527464482108531852481474195558230930392487582466299305959939961037756688823232801814114573918189039833276806167641352003015276695607091033057024317097967633712129009255100394960321133867311467021229272283470455739592650194746516453526657686081369041711849889544419325173757014599037935649819531764288882773221938749083227796870237446743791890121489454326845985064949561892880506822700589560932348476859473211912734593484223468526800905512460229678473005141437525499356649853136252048652499326864228253713587971317084408316411971681768788466682409006077091532637141726536351798965844043516702474159403945803918958143700092414374400717742383790868468757678862161333688221999720368770411900304136201904242911412170466622912759827850008942479583370825392579550866109394193489304024762301958158770486697940840737721146012169823269461247778278986422885330882970864055582477171823368621852427021016817822358649132342818298164184937951850398188829258108072963074447431867025898607478320914771382796990638946526754270852260870911161396721298713709716464909572007871682926035110389718215506043208264563243665806547630111986309405026720555102516001183365019507008223342729822212650343130031850414115262385254786813430586124958586881344221488942638905174218901110343744841714753883767837535168508224077758582156481317777222800774412309259484540152241308055074433996353330719831435637962746659174307241583193199641807861318054814015410644924654657417441846256638955616836256872745976845121240988226119831773874810510766448127380708143555183800682098800643201420068070818798552668325835391264235447827675273090861256706878475901963422431222430642464855361264346394672231553174713016518899149127967816289409067628429698395396374582578201295208470358997571240700082127912975197446038981111182336452592770721487625528515614050593537682239566298884617987347584760120897504978607951393781907767358726884170716326203274167274465277999895232511945882537998141809331562813090732834641502225824623529789326049443718505394742177180806317456564345888667078155303003064555792313474538019337606241984352919381705999052258550158217825260086081076691066471214644837749858667060767500643099658771285177878376209239024305338845752709239775038866906148258702038134490998431051448068146808027008542474774474876653165191680169845896026029035654096016825089128257964603186311025643273750276600997498526470466237250420798892535939939645721408012644692361164865964571617934284788679756271930486711386843692986654126865282114192687205398108980957913259430740640131179607607944018350250738849639870152907838327920299192415005017982281204790632998997019958380951040300596700896384071479488843728838281989126999901347517928682231368397098677264128701812748014538444075024153739796317720991507756683990862614861494201077825438535687542586680111230648562218748062738366017244631571233109241200572766827027869471782322722504347040373042424425184635661901431976108135815094298741335724681142151511530886649467409386741702919666602399291624640577623462249905614793465091237856497002087054058367984256038822235623804104607461997971895899146228211272388540949151367263298703307840790349395217230363489171515084970497458041569243649411345088806766811298584367027742773553396871425860514405496606928866292791615556000405305317938440527464654970740054268816946295701625652028418877996042061264540658392913385581601216631310858156957418819461241299946907489262376555535784708530148659269709937840570645908114861000242561408690878713147960077101272147718126307008359094999756152580003235299524498010495149740274206315930119589465076975711386942009149700105151724526477210849388857229184678822356388006959300446102512186440013050424319354460470433293094355181849038347378542502927532872488413613442811224289098215684621178992832726754871644672575979135408593407437053804201191354043301731416535405324480827912449809275830270420944359253307616738941737822861398779590013256871939587869010201925712582600382350377566395710876757951941716099634492103897766785404988608004635646232707811076848946107476301152000737126798541611632766220630124402824831499535736687955326050402679715505703710531906330681626811757751670759821984778989794106369416740192008894223125956532689582306525367717264139203633518980848875361177976462165728245070303409224768142373454207307387348303311344799577046792224491346923213871887495138106707396210294840308711844771608809581819502263413251363631227702152817154550470068400841465197587940757719244768216439909439731522918371807664835528588828798463868692383897552903677101325523727727044223369390218802028390386323247942977786985613344573430169236082173997341699500846165888524641340654529027364178550144895048174667274754047385101267215803668296868149555435485995519009110135880343866046564529406280689916469118018062810687182478734574144266079410972553657469331223296016224363757155824334565848773738555736014144292820134647550326005366815598430631709208806864229641836487430157954990720561940591438234597642490453007116621005697302272511759408034085581987875120498115668846213793300113387386128530043912205783037358464580958520782713952238164663774762934241077063375177298972731909494159273799467942834807621921884043018521614810035098883111066922558269371021276397318633789010662242553268191499960851429629658733072556922846853791628234568417281184889535217381483460307270581696488980481546430146359999716391656890050206948477636471017175621619957572848955944162658055682159521801568138323463930576084958695235385670354002622050492827980190533762065380277156986765720027993545679471093398923465280211227407740672802484738547014270964307326681995758372423982591035637550383747153422758335220476589345969381988762750219220817975693816551111250787239584385540709946024912637244795676311486031472642634678010129669575709871683439538173921413274482626600663443060743972366920869673884478522373637473406052114524492601039497898376834084842114456249365042685711788488411062567611005503428500351904735397112739238106814259812069147448709710353283879511756426188053497136876983646943711551661819077346121802576112584917222042118675803211103421977116934803357768282561118658165180837201266010820540692866137862144396928288387464549473495747068572882947279803590873617898226057044760941157239184005786169740870646112812968685783490550442318682558860764671885215480465279351665027004907779775422551531000495755212636057576478121343570015160346333089701783505357237780311855815168729716159729731346389089575065584501710747770236761593930113393524489007425581982604442955147495022369953520460121453058804348904581136386342987333935109997973582180873342077503293065328220140805292279407463009459359913863592552494106254848703051281658812409262832261644870784550209508170859039132332998381998261183374986039431744545003066157439070341892460783042604640859261111237387687579947505457941628137379922552678123443790940343006163490150665023103491537651735923950156358359402161963915137995489872303719260242858860135465347654778711643468022083255902798294436931655998331145223892890440446159105455046397694493504657127849545360702689984513790167963863190279022073041731143377580488013496287731969157178013697020072011600234513960089957754799633656191690814287160479911701562131913148892041951655836555338469526199490369541704716229355547259975930753604439163463979562606708303167997415689322320360126727279525158567036866324212279148761617429052168056505514137393395057146460377235733309068464472440607900149755264032059696556768486772269010239273564969093791636334439846279898075975266249775473483696258241383603780623821173965199484693527509783753446492612197182403412697184345394545241972471869863821064645181474007780046399524487250956609324390787793085243673010170872465297266290094723837935288051306081176509611875321739990942242147789807640668154347901258081059106862691163020698835586671946979166828561997870788891603444040165160102113026472261610535286615734773373740427548550783322973554742392936653153263207542673093187941572757713828684001985789386500504613123648287799698926991102702838442604528082996605891549270213129167405633582068205125426120783691642052606768203894633321539443875248973681653488185150793787873179851823035129675887821183882923133320746445278507319991246473714346440338824144183536646832214279787129213538337386564596428139693760914390699306924130764365131898016577468761044017946609664370751306470484372892696316726841836388563013980452115928929758395362741330974246582965722828403053938611262296270398009513191659159312880168426799874888096448772364629210607534540034185809407097529387706929123031857775261597376947866203124883661105825712868683156541495138442050631886443556004343976292564054220163724715121884464022027276518323117388173003530367810267367368679903011365862116886502669231346551753313910610523955505407150610553637818222798200019765383908368304423954465960912777959448575003365070490092341473686894277347724191178942501844525292690844180902618044597435551230287144872657562823502349437651962739547318619914450724489113842501100115781193568705279749277055414796363045238130722397860940704799039214075969202785566385854698957164526753855218309853694425647231180561984816584602495358026267087090077651575415931002726391487455931279557484938969156097785275548550773876033298915400227023753633354419868159094266412785652130818803666888078265982607538167583748448313821064766317888852189143171700391823417399496107918932473951094772182793436229949046308318535409961039640637014367287016791334451808779670474281611223415149519675828767806554063573173407787897404657445156590930310057132660097559826539939985968426309245927884601188439965215485199182684969609118759720783784941734280064579044424999033314477774125354112659279705909496973288026364150457677350765577575780463893701453143353804842837069939599903898985932394581483222415469308254722054997509647991057971682484707012187993139170171641285781799399917207289705364020938076392536003133907272093299062393749489256376704036068858396443305404491763674117921188187654102621746703215966877355356804253473962553397780219709786378405246456738519008213255851811116771183195891029537398409125102520543995811719650203976639497421268103551646477347261797936622966719407987600120657949356889856188878843234964242903430798038708638580614620280541688446384534478721426756449627293930036053668672459518107849596477765671694715948258845408193524401804213277615516352782562338562307884305280301132653420411090803776938123987421684722505489287545861530869465584246890765639129002326246436806753412274479412931156000615058647416397738814640389991696794159123517861765671371699148489566392076984489593844939104395829473770407639724296870050351587080938990387947210922875733135916078513017034649657179603098494599766149918909886236278799018158201852486708298817877211471584039434135783980076544827675079642627971101029576503865381719980631218897648966429610738210353768761900153186400619511620729716675336048374447265488904854155661376053053936337376000908504341878115656143669246761137751103081074872737420974577859628402645900754027142568351784051956843995073676787736768801640318207284876281442270603306044847690340964191287814624446390617427191718731867484470001838575300363178955559666432443734091779586649824329977246952369285827272435999620959598405478286451604544870211014334654916501253601836523042715405894215246668429715404445111859034722640356172790005056432896866713473211720361657798073238948058313277006979040710520397282907922478370402095770722339903573744539961610567770550334489064287516967546030054192565758081244430975293935844546913997684994960602779193040545337484875711666774647119972789359025209439495074621833767968549706059646738074953566631960639408308234243919124371255697719305121026655247179815376093329893090818430671840596440615540180775383043259567688713961592665179968969537549943683778209928566421092900205337969992046870309289854285219935932962207288403781661268302507404475501787220454553679331338824161853015365616080281394578357479040270230837464943374444170663452424364292867852867095191930895633799624770790998766828301298746286575436416731341472979365991952332476109473637203957455316980124281385624001087285753117778968677751790246817634671823439416911314079534672059514796647892256925370446131649849861236520981144533186565798291915032470370825090381674946900509275493848599007983567883580295923354413878166328815498421791859448520549916160323533394833547055019785399013377236752771704654828896981775131742158747947172574684642740839412833917974001491371135622973717823726034243455234147154806356912652223895568299009503072810595836023196075954206299005094508183874987316689138961017621036027182918021545291874218012044452764655028830084736428666460521590545886456515405333985406811925536309694605058796038629237459495765468642444777876175098447217826447643505668971834573646933766652554548314218275564520187702892188511210308675277462997670449329046816599754932866118685052189206957104133373256482225757851015378331576714215172145427805886608012851843488347959541734011464137776356476002783543092704291135025212970737474427684684806397928862214917256043541513797150538237472572919034271930603958677053172890882852947440768772917150321223835367771203573479731264807016140983918098937914057458834565075488699666349464116584636106716132081399070585011592768333681397040196130436988328382066206686194991732824816354905336767097596511140377148494150296495537173468862123168112572394430068711051369541989721920997314745684853839453878072430234726068907951723658944831836846676466014725898915605812210042501217720446342432850865279527479187596165455129571702682760415445808747561891105986581086658394012738017469059982656829792195073001146699196609419644071380885225562139038893438954861067161203029537615996871644729113004686428577856872940974429160980664696636097115209872941761423061410139284363759191790434786297563728463074681385850596646696314652342030190045563316214696675811807590043985740102528087975458407887874569592495789397385332494608213089050370064228035020298555546605055047993152763427153818076140315203369166753499621317569701086136939242154432003854957656445644549323786810879686319002021706607031611168423196862072338323496929450122964459873271859374369261807755178886205394890720336135440653812540126887976933978790247299094731340506881328622405697883059964405815691806986853188172487281499940630703159966846899343639816315740815011731457644891994785258622094437249391750104104429942184499276418550677000792928928460898518761562170719722710541403227240477418556221666126475985855573191538005199465720626514556800119224880082387815271556998548788864445965030741083925907156965132087052481472619619332399269866725892575045541191848564601326985488996893388380753903049042478385350290751052121149933731827278088404152487746004434462351535308341376073346532542239325817021301656311450642177873528502832012408672456316934737057554844816893174812254231310992094493902237261475732768568166831525383971099311671715603086300335963815803440346693367374683156525551636704117026243570754844862760015431308143327793822376168061441122788126577195440054239354935759098813788921268375749423554252675547493918325572578049421126974816175625716480605015394198201007533940096393336438530044724925218545498240243340660492124373631471854480543833462199399702126936677388480598684680583365044781936273855847670624230124540105396505408321757137816286826738205127795852174514357421464463845071512802835069763427461521051955361013918993962851276696199101701143296592851508374802387680910295464191567608682461561269767317736268230494863407890585498966245647507005692442023071641998657057336933790150073468892928111087933185504751468207356429627416667795736646324422036164506532747034536144620386617730972747542754058641621096413939905945256814510940347915688186060693451200506893169558724566230257878892879005059908825633377900808939789624439031806866071475879673093309951050468629657212398771183319939568610864694439852692698958009148857434262718950906970277407473996850844852825813597347178017719468633251768375162190782275723159724462717527445468432674567796012294260595576786405679499753027057154153259420867833941151268298945378516603658831978659655499704029166409644502691873063766274653688261637425608074376560611409561935790013875054362039191493954176751068891463955720152093025116443335240969400378250172845302234046028923826372472589800267998959864391098204496526605199716481462262805515544862861061165492711916106509098733678981725239032192467664098645053174646816137541211882732669792780028777721910206219068808958382000587392104467745593903011881367085828077386902289065000547053869596843167608760494103019824459712025838900821699920959814826187376894780008107097928623557641875345833139671070804242379451526078575965400845630024246762209167370188385272823043535851071966120601958125886612928322374888745976186813646594071614820791696714079442330174732916901611343272276807105028400982635134707240635127848506997678005567758819954694777354267813118456259732353815538895510558750469953533522202119468587053203734919001015859278848278611054880000784425009112962950313854724835701504127598206883877007167576404609177010259851405598057526914847103751744413395981494980807203121951024318349273365279231447224871152156686554233663922600400836730715564337451954920804531880090069996703210588417057439671721346088007838079586088469878876228583064659321631407295752625424190266508558389868949355108605372562207745686395819671523661677852975767893029211520695324368254724442478748974722843950930363867086259848281268355677744170727088235542399689400837236879969882511783600434776918871536392419710123034938113546839033632554898295308021450919412313717988909544273517846430913711585035994465747976329886321303244246903437646653247484612046414568848064343900857585406258900123441735069359714305011377005796112169570298381396441603022303869633854272180993179118057546943877258066828460021466487619876320500193763128026915494474912473585704658133865389210551053213219879105811437488725945124200552593873589741491691370522768791959311545939101905486130298006876119841208013142529271435102819805733001677254172941578180536340839792359174922309194633095754237400002608819139259324287856947763820257634510754036413709256418558646723114243762919193281032568966896377802357778002909676815168121430596831667967944016525793431371118049306081027760591683380834070367465717553231193999540181187206974583224551954092742702727948936444457750992657186331705284815531566045733783889652422450314740786491277917403951657555670383536270381901019705655601676926657308115168597605624189973858186461796757746256813618784936718015005327155751200202906311815262867181856177498951467437536297889878844765743590758293913302061009468613598509397287010258925791326646832544495870368290039103841260974408241472766801598267167896294786433989163605709194746384408906076829326801105886489533964552241677337157127356437423450958515805075680324299861606927711416474018619763438278783544902376503943533401214967400462409124771206980877996123960859175186157003936109594152234925358841143368372731719806792212725631564330243057370155493382408427074146936203853971433034700289579527799963396497932067520809217320603751710076344560095604750253463083038230816744195795626065307066465880627659446683735937884731164741990420962147498044264091675771787720151871082944820741260249959867144690969595004921356496104158138515486192910195544825185287365534194601370887268989915289352135074516272585612782621568553821944587768052387745843670413547566971046238573608987419428887214439079347140284884207093231330593948216521212343537414919750664761908274348228661477294281205922425842366920844061341534131904636900882123346574201129403292236171064067508867467268714834005695239374945961049262162509535810431776732938331470856857532728968474591392123351422121524757853888835132464263822845409258550414487503193080798802631990990303054091379010883037516047337456188517125322085343405710470008291309134490382658060549915882944636482311443192410374821125891096485821435698040166034532497904077291118959850853125805556692750498955080085033265711886013025645775165138299026970136661618857330376020945686161660884684088343410414771837886850582383367613989004650874802145611959749080060428499414911904393858309509557893420755531716434914076980153237414639420484680955729312281211933647981601650335124111813904219051960429540117673483404394567364165514518633099095320847302606183100702786742603366049921500191193115050316075735397542343109928556955161229362099126406766378206358548631419374369132559748779331892295927178138124614426491697763133557785089290892319070856054924737867889638218203473660282828943748084646213920093140693647627192469642626786178335458588411919924008239644574162723361033630241563988999993614244495432206798639462209027677754996046287832301974556812175700093491404937676003939427939144361045054678693337128397366535978528867519102284865695804697228254090270728835971130630989432505619630030912718954989416923297187562426322399641444502802793880577494884833715844549338555211899589907951728184749486027094449419200744491026480016042801483515252726327922721492837771548775122826913195522336592860868650716946677527572515992300694339374576077246958812417466848143781578593982679815340954056308017266240841487133820781569196229172204307589759676397157556246306241625126698111062839237638522335425335575224198398006688306039105217497007152179869111821240082331456440372077564637783133990531148732341225702686366750508620766440699994472301505265610151998075367952182041395123640396355151910126065000614346616470260398866672929533927132103642804219215950501456979898589416162879042163276924480717877944040003167506128561044290551006867587919539073004059034442090220629222726946497961985789418334532322407180234144503576856956863327883165411534848454950041048860561887499915630320830549565317566702647082474997223180549186615027723845047590940456330886105442349197538794093672152966015892700226532082317029448959510267741554041570629073290072728564718624258935778521440291003832842270676631276845829535381166671988172591951332034565505274435090583036411597005373919960777274036374460672566001551494413431131963599300985581960461156231925581437277122380300828562076756817458934117123123428594675468392200183551285336174057709849163651973052631886379165463367989509411790962189879992778539615588299218570291059732598620560310277592032565327878395318639383597247869760345579880562933598026462184977751213358201359103570440928925220456494018059752618453469712015983628342916733148174640776045993084602515973073040580871697025571972363333314838302743378244601220018168412888327380875917680255182801440983587916945253929349267384650444848205269949044995900224654358788484021419732264834787834445030619189662354308403872357645582491476660610296820852352831048056390734618917646928237726850093618129560147519346330770731517666219510871788629973264946457484710124133752090790355259066917640759977109600628974533395739980834781185154066948376343375839918142062015518187663897050809491031495729316865526467215179133696086727735582501799391485967590374148971226266574432181338204616823094901869776020095063130496240480135498675500767062081179606743350151504006474097215750061785873175513822927761609837824396490295927043794717870053533724481455748348646901183988514482799836618522987994049506321242226407664329939186356179691738970405805614814734354057008096628490053058382543760037679448822269832720291842210900617260279631536626989278821335644387283444652188151003590772387429751221615774897324204911688588213669891932531329524148616855851292480336020273507355421247650288547116566916349651697101280455913480820853405591637109867069655465448156834245502196619679157768945047164111121967881083814946467203939080851786145208614377207707185196496097948079215460331889019590206696124848356789984646915118385691168249610547742266776166904328076175525062583622334044864062945648544494356835153747342817759530025105756797216138481907103700011436879306051202756940996648512564285104374798529350222791859927675428349848141426568373282641473429139950203187388571455298982845714087249669804519205270505409088006630757934723480512249922583834156396411292585328468110136193287806593489221685673654606595454240073936013650488897953864985682153314592736847008870762676907885732315121692878006554642106188719261850704442872574415253487700055842309522276573670103448021044359059658042667536905320628584586317841689508416372667191960536903124743905676710407479299246655129125951534098829157494679928875538524315720639814995363299652476235819669937508210896070996107393222621595882628371884884575725220127103877543994961261060973585794998958051498179859172320224530677984198466312631287566101141280865870737408766901254630549402206675196400542492110797007058563527927132597146058160419808799448632248932869470058702609392491739920589524726360836122870940281843609329227393218214287979404039549061075434423342924088731983769627641728107236494355140187918240888727979434707601205122733906286089113793082905805694335413461146668108101959564898110123933661735411399775447161303167886429324985714713377296241734923913221809423312298875474234599829591956452844794678795844673241971091687174668746286958060948203854856927424784989827681491873496369994044676357910474396283344951914143378122502585217111681967945433026398747150422389154806953884955519669638898707629784971798864271826080156273334923881481506948529310859004303329203226605160632505409584186317531571892391541048660409627453533723553218940252278457583451883477495215577368675949575156157812022076798275928640631669280971560070328868841898271506922395428337806348027765520609431627131828440386911451848759768102930438083991391144170501180285324957361567167319841458734590686761929861178733737831567107320055073264871066874898075546202863045040301316072849297847861133503771018576388981746860708707082592934922486260771347734425875172883790946966607259148023510242945787313078268161774972921122406973927415199995226870874926834942080872446510038619018644200848441876415558507276502976273503884557346646172554039858550224100136717731307419750112975079779674311870160712744083860808258487953648784147232518569169221914007254574630224608638420475583461249641106001607905909813078724246158599224187807463502444124994642421944473902397138543985788007092168028935949762344694707902249013150139652044249185783053417041487103779565272228251530432254781305089663059529458572518123906941952277515778186700084793804177872468887502891880324607469238221178135484601603825068654319431258091294977559888527953734104734394253692268956821032003631959291536360506130622769490886986279748695694398957650645791303629982163267737073095849231394220275329402433611011130522233226763116579611023706943851892342108625047604584538298125620789643530554843432294195601507801377290001936930844162361376118713599406199388125701436218825811742136150791084143485404836475735794727000841854296624620025827976375540983590663396695510038691066856393838778053446740156748481388089510105304618460846603020948997963005022654801525871663673390714068613950556431973403581123114151826897960604252298230024453787472783144377975379606147480043822330216065802188964151045297041027014999854574777814546256356383323936744902515422891524276080579518954877067739649708620275957304218679466743922505854923976008630216523497044221414417710840784266503360093549104018043732077353124041613936725745760764110416298830964640818470897384518163831011659988286394159303889536210196384843000579262276952851890366406416499327455194049373335820776283997367338439470088646491519577068461601708718491275816357155168326032952009140072202695944211747057695442133184780890511035878356816605514302534326199326655401361523522095826315532317051437279222177711115027974089940526706759389860886653744688318439781768866124285085428874935565302645831306679263978144171028743004096453392145816170494980768386104586260559877288693439472403733849074914890871625603963290011583676182322150653796270744717065768132560724610577789356888325678569386642756688735389089665212922572538803829047331816449618828982883126313469891698405490180349508280336946930317389234992800148605349562036180842737299770084006976127314775250375714942140940064817687051195651863458747242919836089234188620536217686808552139830921247158750345267571852552324293636998568420671486415386431873932567003400736556337926154246603654535967356306437250763934817173412062481709630097862179935804655312170066978760265694467606113367526622970755122807912358361130260782604061503101508578039273953076900357715081292450331516009597500313242798557928713221941479873291954549112864146270338616001179774856223686513774688289764386292542133443418720807135365233512390834131808435933281319488153084505379195564630865227488622236910679759394073277360691046388509506616700579644693302990842140948175767291268119788545670714915422590272497477273553896316341390154160060973556286778851501026553585026591972162529163353072163235913543568590837883456290280407752801302627879758649438065411568695183366148136296899693074986439529951931908013456895520550556951975278272082321499493022982282676104850816927614191798298441088227362700750489247530642153702822998086137781199618157213114351834811549646740686119371081125785783429010784830863944379537049311765523499655453705326241867576687905918792985194251207100363064040740481785278059074338296057948983903273492927940183275757904757665608436338371518847506864748978705613026878152756036458786848171509178300157221436502047251469368544614030566941733913126152001972385750258522203659637066791922877105700261298601926266809794688070843790795935158610741271897882422138610787687891046936784687102009083027620189387092727292347914679013663293233282257088231629021620460025308136150829311985252975283900038249549031077120875700219027798073945331436236979909636243726458025066923735606140050956854861910352316476072850600136796860567730288878432363461971986620071805335279540843907355800965325246137982694899875273945507530541286205913216684053431172069355888881458565840894029121623257227240338855121947041513663829740309538265952889079965369351258095116421506218596149910920758026739189840327220627619816393893877502019662614646345757293961189216640034218766266666551996439702671322805217461010312884302280815191982939532599691491927948997187422792641565404941683595459621825246077765940585843976978169776849891448777485426665365491924682778739045057658792428982761315362328388221250270762072961206133676343904327904930242298493416039371751246104939744667428074496232710614792064410202561953027162177091765559196649348101703111485107139404040834040500306686037181632843643616258849332732642088449712221276001074319377408342989662495176210760809640487542921737758773119875642355775231985460531189714506233558122688571905887899609417862889993076254209997497142197727195740086116245056062155972390477152488030696147240466290098149086577663398842227434546536474953276258477118595832483308232684408682585554602099832492917572689743679677421157398613626007447027392935230249276595193642141877954658201638995958670791643424892011546185538955170089184170071228312959755305416133291520185719300798862304108312164949462325740298865623678405642010743664059103601733918599407263101880995287094965333073756717944993661691300663277109658904497753185844633291096747888136617355824903155235163248474488503437029811150510525091127782422307112884444866949960746104280479777084329474439802527893890013010389494889845997304545374234611127962451250166420957656723456044707012363718361786697142396140391256440376454724588945346088456784995199755538797055894978947602537200121244013639454857415554251507459250647041715547024070850362005656569118655447542705175374441667675273134640911336982793719758381919967981222784390331418374210701298712209741952190935762446355409573145821724896090222047510731943246538607018813799420227834460894256761643914838528952087410407517265404085579590017202073883584291440631168960355182552315826838408368010838741874306001669937705480010462582528474059647338199618086996345775792828440488955237436936792424927888649369277281634776347730021158944033023091579226293906042515673437111319215495510461267068796865145173430199613223806856926851694382150723969229269089262289430081241775821576191160482552301438197607172643543659962364183358852525925259435241248703868167884130628917407148116301210469896812765133123091315237929333467799152087451224455373996297443997283496728431070304177929809606513356800687758362253720127900850454860820890336494519656044280227463773924572347830351555952599138391462240850590375162349457534225304549634828969616125075767709113118905042210862177049066139360686344408455199706241175292035164942956037056057164410323728080656629717196411363360164858241235784161932979496826674940070233296094175864265272248641763917701203495853977063656334954292393599803098345396024106047549291844913484738653663473352822374817374660556661750068527369298781515670861019308115374137035827950511135118823440029097547911222555961366273369746654838240774680781578976092607632305841263013923697182223584369235741720499617105019286116273312462494817629633589925128811493178442349687917023616389872619767986721113707475531235377877768749750146314212299280075896354935906385801369167697983542927297468282497616464734680225786690238642064330933712781574460140407887692891544694902904517368877377006939902628152397654589063485831016044780169671360568820453927118133215455811647209146829222218752663477902804167942638575250080305499348538468605891308981866181160185248794539352351096672705416944425734477311817627471750317705385105476282285336191848614550636652468668045336788424489879724153108450102323329476278405679463891808591622916840603501815117492541658100857984273447341217404253268423821826501887704060781990220573266956642606373341537188114998362024048198142627071579777946139610773949973057317366607056045480694126687661519570179985763561394240722178015616074366161589047208939310871336656635410076930031485063972746616612140819231128043826873365761384458050692461426588037400583792663674191300388284590463805566685770442565714654209557061574247959496756711594047834532676875830002263556608478298742811922323490867636492948062128300876405316177666874977136006215690794853751732885841503631295202718477578836636391823562800838931222494092016233171312364033504394862618172900091418659751884283320321189983026424670655061169355998336940361553673072310620900166138180688594794721541860950433560080621697721776300646888686234552682163243901522655447713432395602616890011101371921008817279968080095642305993021911450403533541232869658364291380949432523866858587795714442148502589724075009454341047481928795589148865530338053789564986763344503459402331284546638168295487983283427935032730861344997778896736918457887047896517045277847756027366856849021539220750223847157557102836912978439567465749911984213119512615993945610246745128575327536239676738729521677105006825325324288912859625696145341063587725885035329326333725689638347510386837384729059677240619170648888000446345059471940832041495153846956564193615863017484208971096238471244709058618952482708097276855890813214130979454298847204194738495416697394253205697610423409329862044435049930662660787364806864658823419741511222179533456973122384579677871833105898829124331954755959644558438211886717205658574408376060485537749666771258946141177358781956869173242131246553481800835920969251772894930458213572120851763261623449699335009073634920634528721750258130160700620344747437765528654839747876714753573040254447828493227263248470776301408839901218184165265626334183763422503178468442253844832850744737684288815779680248225581815684080048830761511446045763326546992357195238166155734341964404541152498388522349173828686131883781481693618966587141542328677924595463054847979661823335981910466753642866766580377885555708150290261595160303766035026689240268688569237377996948187075246608701695252364136058262212689274665569730822323040495055606762831500733736358236470373120173145578846201392169444453169846034962286598787812719212053612401870611842138917182316413215530457942117386048933032995731872996926540680461073424718510909171066107089073571839272703776077070467789462994018741394655033392938713025449378354829304139368003220199124643826587698764280052218644239481598087362479037970795842788735505304856515214499959402395367438848054902758027514151782543468705978681438244094408295005176826340014488885654721004445802474322394757072628362401585018329965350426375988892034558323384660652219793755042828283231050665375731825685476381123178685090250045522070751901486522218647126241600053988515229435162123908873405002908182555618108872608822566268450253628087133407698778485198857466052645808853054757790383121897360769377668934682480981916640975043844801684934355885351841366705891156873646611122337897816363541995605996667900218615130890331307164044914676584263608889990674069897484558564179071201153264158267688800032722353588494479145807315391489204286484072744011021731931162954005787204234161428251963765692160497342556158224079856287846269889067140616864438680866554389488820801775325701267586024898040140625823568701771633687571540902962466196312303329466835660658767443528929794440489690961388567672543464322096306048465307569015873545785569081957624019596782652585185653525303951544386725018518247761883719113249458517761230385927897395168381853315719538995172613600729818426653581953688657314325474196347248256816296397411962324645809307648762563529289765819117245276975804602043618963617152993857864561421101269896873419945890793720309849380465619386344843972959758460220352459228413389721583590478845942251114998649666271271320332423291640447793466970440672922850498959002525118741320123778199090642350866326958860278175246008259001938589495476158102032188345077864813447564749649837520201013863977438808187976442651676766994590143120620392616279975643840180096185788065941956415537157559470233435713138579594526655132439352797732185108432450225620605595165099267014365653138705857902425382846789433570277052971594173894762474296143983164874139066501128967207818957924803061558939102332127521423187865077526182996585677584021362604027172082506048182302721409364795553031135905615745549249127771482507280243316107837615138049478448683936071116134544349845457716823981186767854275947974324441310196185727252370287920685561170110516738726818909323315362962442626199292862402405308161670779054312842335801381455957268974688720106669702213310943052135234269217236756852768742860424962280912544751684001610082990986582793812619894673961820752946946356039364487826662109736729524085843146631532652109817412172401789575039671566140676037967579394270504901667599401853358741551775248212027173995271835277558031347632385085317239141334571361803988744014951810507661298271362298237646767626193519702468590591521924866428285380090449294798778348929470854600710999594599014814378424498330720026745941528705287911048208860699035335951007658853940174554788044700481362037019817817498357378814993059909846428124270212786256180783475263008271948353001485027803484914483576351685857888560859111285829497983335438984206327173520586887092799911958812382511239267989473341214936471954994024305685476049816791420699084379631675263009769981069971540286157356896800659274942176390241269559221848738143285651169776380854581985435734380270305219388178845616831697754518583259215884770206018313293279660970748466349501982810622597901565564308469326679341644102388378743300789586782660510749753322003147134651955924591491227900308206493119722435907713082588700484488610166883102029678891450865581764569188854382062357654599210788302950843261773519215031588312837180522994924599618881276926978020940429023793742597651846979378341623670593759944562343340536221137076635092560373358039084743681859251298244667149797905689979980386418350378133225005127289976115188848697740322559184372099608980917851427236735779162759688819908392199613039696256828273851540417617768794423914282391959028241707477114075665575946673581894815064235234230170243248207197831745382329075430606927199691517922210468659442740435948009608881474341902297612087267986221793477776640166238120768043326349126984696661198728889855268551488457097545969232717729699783941584221391409866489963831808859049948305588561303273136229297027153737526676716435976070728940812661621538111006851233687204633943798078477244069891909553016458598883761971548274811640094591873115155150483922455925911338186807562626698460632244990514624269463203932677233348914449887018684082037088334133318097988245630466673631373814815413125746986392108124040538596452108157302868924138742993009856907264144051565766534489306970116981818764930790076631609261014753229324520684342482361871423532028968885295567370810210152615183266314820271506911543449124091060495819863300525257015594152607023029535198619450181522371172215766549870787789787370287091974529568925842601471894567763336165815381570302214792016977692215511278215017099849614132220685427483909375486712984409767364236620153575451359394410370799141809561680951969237864285632692717453297639615696124810795542298641869921846601925896454369570774543420140169701983041332147421257024004961945152642339663511465966100558462902776701570247796566595517480345401782471425338091461390900146198501698480552975373238245229258624997721993822657074445153903880324569661207512056283281127503875667420958421229309553236970878493130212719186339612304052042572582773392016954838267877617448419721617903736171163989432081191859680724854761720469869071608445557874113087817984105548634872100775266474584520071327166623535687123656927800438987133009228516695688581923311909901688131876822732933934826246915793864927026105253239646387883868858760802384312545196835692400152182141179725537493753575568905442330793929646708059737609738565469592158336163868230476255245620984148448066226479133233939101316963242208772313778866577628140117700749623744135867196578796919345084760377413954449297981736545481076982224677841294942179027578420590401372083704869621105590100051390182439530878380722744738686323368063475191731609272790964551931624890532467886460666109152629681641051275322078459277918515232521621368669962060877224585939935947588208872968087601720348062946681175027893345056081108467244008946573419744286360263372983295479129661289516306022950853480384488200878286396118296070411971552148935950759175293410281220819503895282789623389080016876711503068209765174150515156074758248416253450271959295398942860919185982246698728039508208772929341691278773329696622152036577967014921980024182762298653394591746827436392661907620754347933634151253416821267282374152478910281944594421396643642487779294705770669053041650845396065914572586434599443046989981416371655498240155794912249545713969524793305079202720228014163610928952318043212998581306479225713398036730472436511971577868559641489594203980905300281812186936084608980917128386908105228935994472667895403735683765230178238926748787623780850166356752313054638664205320319472490854750333400346337714826457027611658686776144225845949730839909866049516248984938816497625044490277059372382720520610786484733037624126513829218652507749917214440143607061258291380330788910128265544110393095321705385737391066888589910206871802954427402461259135920334980342209619151970578644971539886240508789318515848194877017939620626506482871610524562398958640571919892172261934724614875189878443415213140025253590266098167599466431250606563444292334331446194446129914576204552976938827353661400318045610738635859219609254483361067885628089629873431874542870715060369449277590363025738797243459109877025998778750778334699355893382369223509965897456201674835201157768604426240762319533064879320008506143491338137152006202416339978196540955334174987323228740700064747356913771392967266709589476562590257816309094621966224785645938434691649963015966788647620503012476209470805458324043794701726031424629744557001756985970264924838965060090928106951137431648055761311517710865914189986700102016281784785922388027633359502098782861063723224347547795242461035872606333819846513347233446141751312837614215397117620171647976088368493567831736191598340817166032932328794130924265599580320806999225887582153270921000595897533225059980241383185797362057700513559104600836824994420508184173638074051214639531244735363385769749985396934348415920470486574831002333812515302394435105506341823222448714602214202174211493415080635113042974385862958632525376495956103966526882640657835746999291918172238835070138720930860183193985811003396146439269833934448342201584424256676117759344683848900786155304113682877649440603225714313533987866490009874175022063177553176548415731169659929845629221777548351465521444778250560301012530688945414309271217841395848488951300238826710587202245457905315845839676517719345779822452088820609024237352278190357921998403581833097574839696771591870802584594734417322425066383160927262663722360125761287567477390412955519578031864460937237255595472452473722621048698474442413819348995921402470800925864888850579967327232173607290972054014752233737145837801512081021088622710294834582612214572742925887528958629694620814113191801304329175579399409092521566572375842743612337186019724329469897830509463342019914866228188025183835460757715848674779905583917450732595516153761060946924981670813530601492307124491060000780592340625197300797874000943865616531513414273404077241945673860591918329667083409596977972635355919709977343363282543894270319672668973939545877511513230552492862281621270868562692442711942001162185886896396157913625270421151383726577734800943470445491185549809406628967072135297404867064856656233486491210289727269558624033413401647472088056456046046526088317110542244971493636605528076929148948916187658577314537071433882860568479530933967407729094119323956360593350051473700547233092697315212285097934462917720004967794687875661464922973285978424139269452613440985136827030181927365568451221892251094490443368315835383431290959515220658403955698208980641495100274718907792112208697511076170271206418188497430994396251426033197330666104462171890396177006521763604404378400649290861527086204463868148007424879101311616312558878361199397488544989572200457731078972732642543468644039615261896934512671032016046322022348959543183559402116513548060115162719538442599520338653198482195078899796627986961815698078432155033267318385014464437972366612029475907866175575895084177605299096524078268754215581916576677064254612779795599339235032508678391866319001753054030621634998681070362237906283257451734732108455777195298835619509046721750131724081865628022211793536053983299826623995989410497830137823247758221047650214366552862628119098205150271664607901577772295473238122470955243435330023303357049503687337418168313439941194461764028834848105242925385394086381774435514181655691411722660917227544229457387822302279925429748575525314862047625447742216717522188153968032976336282872537695488382872553555216221122527872247166319604785841179578054404079386136764980841352671870404075565708998743627886548502622209104804885786799005482903163320729558218211900337553261436155941851333975269377337715843094788232724882052736122470680947221040809031335141667312073500084761145879629603130057542898269601566298789637091543242130015937139677028025782055150979433515918240822749797980523128529447976592157959648663725941905811900466900410393462862960787448852777100691766002022677161185691494907912105872833314702447812110567735881687366754047488914513924912038276830746628834614981909455343357370492136158868722697401714208634142891533043970377294038391344054069664221904987419750285767369921789525434717057328536876838653924955482051134019487823770818266030901381438404166124136140460756022546940094629673520128389330159188161603025196598198947405577931762697907268927259400580662111208960230707247273062991942406011417609606352383553934988865986613224109556465922523380187890397083027371786754738301406874086625859157516228011874949520718962075033888854874544812984777032705623029333438081347099348775165033869456724522642244329827342322034468538105123525571774005166498588876699703815592499725262787789798785543358710850280853229545423368311586495584931999254377626128146283213969281932790631851109475889714480758291209894725050163698533427726461599692594646636010748607651451125909260576248911427284365644679984378091587192816809676159553368639147268072372488958733175649649291500714866496838925439940339240302584324501589215953770359790545404730190724938642519913376880845024110725286702401616587561771085858011425357810031401017201068123850402816371876204834229117283239577440333082982390824283543410386743043369945117572037256391529564132970787083180150252116122551019785001018808639725967990263615991260037999185792663465898650851644910905495623322959775671153337593208789204495072417608930419570185094622278351666283857903475346190301322991735497911418064180355811772955928614189294714048990044708196610327439342207820910306552049307298546086666518113988549898159773210771244662423434919052844560350984590643885308953197333691833238557663407633134004879644237093371848896940630230498439300323768608370377228853024022492801004784563726149872647011034877710361053511895209527804370439895145675742288817021293888308174994562618313604185496259818706328340787762796187602681093548961863177718894634381553821175611863964874097669165938722894973262341665000661300397215832559926422545369406921861685729174279829448684782868104908207086404162998800927503521017014002102360766607608541669992241519178286097881482845096140244136721006716548995422059620835800900961908715128879982679996543228730552604488894598683543759447690844897461565449539639381620357279460677724221029711588502537649473145177420344489775725111231472729488060960069703695981644947486472773642532714696725251413151746592698510206501639066607706376227975564232656554713142153016085947530883739160054614211137502960947554295008892023937652825183675151492672784680439309947170331037301941148247849929967102604129719345606594310007509335062857622382276587636486415810958705051645448810173165871193335183880233812034911817999591495267319127084721404630531268348289783912384201980904544880112152276570162756239898029598976331031336326893639109886913583483204979059806983357267591191140165572486162996836566329876007458165318567665195302366937290974077292856707405991161252417360431514375707252967862271056680276499059383230738879147278420856622597638649199543766933149704406617194866227696476454908211419452793485921502841745282158362385728503063615435102860769588031484962712354147738112387141753433559818722657271703977964775303900658411794856737103015207968054736155100238841898878057787022205879512691788248621186279384385614280116298203423441440279770802826120098797869097777552434183623107060304022582031075943934815268483216312537684167849632224631684342545332122894252938030778642842535356484262189272372751844821176205615580011747821465699007456594236445821570510896310044103463426560748792258862562367433066450915934997496919083505841635283232903114986073228128339555997425675474053912302005928335429978051364155525218578201434782101526648696238419125368000088795881369915515807573882967043824353777187462861478071894661635874876676754635777036986956591607729050871026442387098538943375266157501624712032912945577805605116778570985692209453017308284445174663122522203078229371459554235986763186527304266246520298646350642340574591084316141033574756830882492096219207574326248983810789731598609083652775780380743178770442723864883953593791814802124812106334585214142025354258367315411322374951808807460930957212565300773061508284470457027620767983612038465865493826261230013612519386241225333635549575163897187625942276741518022310139924142889552725825248697992798781668298545894459649938172151099235095990556146713136265890585246023038341976352643848481864187275777783828702556390163385532145505288463371432588259612394139306075461443619684470425411720272027116657766368231988140628322736709314756846215555489420006306579753299517754721695675050066864257547265439956245992671954951432777412755405619411864497296443919367466891360835483072966561824270085477962241113231816857386915444925845732166806634102740328224975305869439293338328702100494004402121618629535382281284152691208850880091629834279596690479597159567474285632960356302372103987050650466792649430927762391529011468849895736772576994998351777893003772931716223761186871244123507062814554785806558552398405295797076634947316915511750439532577490468228977069236004661415493370363994928326213457997250528737328697775195610549443200394267233224013373377274771508573126907471299468069878484813230235819110557712849382455577211825928144697585824960901005877853724978531252939992210314310851719298396722128005261319184530523102250770758450749562267541436413470487609070308771076730969896751674754067146447903893002509770046297332852526176703956571947314377027131855741091028495845111251993877055756911250283541800457852013832511611880291522866832324556147386365644208160499494644571772938713331104207481258173272415367125935010474285554009186416656310444256007168000518712364098500539540080967726670749867438299573102097732188946917139001417751617356307353993115581834659159685593850080619020826017692037773192361135241108468734135403237652321299718141367724502485884819043047300745771389142411720307941492380977531804614538237668347155902389250306388505906307454225803319774463610611596701964001544805196204725309358947772698172153827944353873848684389802508543463389085538624761956174657096379673253001754677479800899746140151736440656028873881189713087273484448806729953223361970395163937348706242272644148858534139069503272586323345010758417057826919527416508204619178873821865302414720315167225127223528639739819304756343288071855555150928197398239746235408878789524488898471491262988445577945946546214372127426404276121028432767499394123756677253508591076483496788181079678120103582529010032691505848958706632988527817329685472392956299750171165790349064743021273961570605468770783205112133847118033378126673354838707960590007104084579551819103577617357633682044261986209123037051261883835467549004986564766469459575310588849786081793561479594891236491108308928300917638025376398148246378611362258157774024098769352571278291792717977228851463416352112681120506551849533167361389481509704010143195745108952747633230640985667699412627488107731118768452987771562385916861486719024165870647340554781741246957748946261077500050355516379010075729755054986561437259926191691358126791215383032113286803644133646244002170531369436167972217137823549208651749267050619789598915012460291685463125024688311363819051632452226584184566496570515159101270683119781924098976751184204015154735224055890693862467155502705418003191193481496125881079088215290277624195253290685712126607814881611175150535989960292943986982059335825358618880705240770518370719350414983436533685828644521076856220967448780144119636217427170427058222689785074903245734816266953801196501871967770968461383215326778693033303306061454675834400968363978410876990365841185422847363401581801562639087126694047739691103998145798348776051697689982554588800476436120239166282423421478505881463444867859746436882775359028168685203581863345106119534654423430151597854374325973018656955353059727460854161064787647373544286445610691554889140285687492672856476514950728572304487363608886568475705854625976493166075021189992796625156918346541150208457221529972896035306642962034562448334908970415688799130442586996071216699554691149310609391515389746587125300714817082923587241500002072042241000509519651583184674773443867806008550882939678686323085223280907527201637739352385787401242042130125468725514528577443036521158977726629578599356922788043082589067143870013303586919542294000513446316860698098659213721306985053225058896434020027917840134938750240718168506393722753188533497367764577453608768706405399268681056059838814462772472924862758516698154351341385325467722056718435180286868118146829545138983549082540371387547859533665143616041277889654082012960817022294113754489224150867147148447142116767383705564220378872559095895090623948792041349441196823952412882358400952927417270335341036581563933144827154480060619471336277921036033920947143481433716307080077355780155499865912903044278638602977897018639302529941193422759955169090537333494931956812227419306337531303322098983015827133080617346057600138073654371109277122994209805118417931090211799928040493174027113513518712965947546109840089572684689092288896310743000692868692001379575317800948531147778083399369870397367061877753580368168222349037898532916434330152982579592493988389781795602649246832960344018248745554752923209610907520187300108855460034160809467931236293155638786661335335398168004484438758325933416205667378745935138425982447177957344309732386345940848338666688759783445750263586897686126745437209518825400047552899128512900189341001485809860943453713247862647097126911137221800600430561667315319633581689529237205502321705780779210783692486347876663369125239434677807167902122001107798225309310477693160546314834401104799598533421568076757660254831537835680334740088595027680782259614928217181719060949757692600133437982061875573069592239414680638887483263357729759259093374306482958885398982664085648856824681190166713583705616684654400811244507816280038770964728529821329468772697051204994277814049922585472230197648623547453090024331134006250169430821864353463200272659805970192615034047141590654756315275208757557324606136240103791256621188851600688248816240339700628277690283082319141198117944021358758137137210520439871637671658523147540621422511027955423281933114419470899623998027040514120957501097988913795220484863398458148389169408321527385400386515392159449061672313337907367586981888640478489913566453566690722532493383953141156500295883268808823009881977181840038779558819225208615127391481934812545236232991390739091114760383977188450549762837154686344675779195758802830681248402158361077123113141930189524403330040401843422608994701968275744646034855218623166810326819506153417745250137936077436771106167749145126170461818223784926374037460327313348182220461147244275800167188584766005016968465793010875763357870383180507569612384605319927192747720887418571400081047403256577923464733496941425040321129452474661426033486043754587712845559454962495660585880309956433417100123110482628474699998905246632490259747566691442069354204519246063978147600087286327330920640076230231959225348676378365158545589946689683342285932891543684428001960199826029128939058758465315039737659609720023665075547372672742670587585094559430235224733239101239751366932705415854787039051555729134766359266231338636055017158447267567215992066729969339290605467339557371027086943468770906484657161531261705401149278218588037879677167338781943389707232777094184290945489446238401406178132010052688274248752469833405214898026834047782205454926898440936417476078426465634045939452376678456209771479032107397752012917587094535261050314653214647846343202971398206502014984219940809137136018666399385997862169697077085034710406554870752037456231356688628457065944354702117481908054368760172906574523522937692526270206618940734964315911867263290018098407050579812674878119773317369760953227827662948903969026388965888820014468925576563837132889756857513864695134043654479409826722924117382322058777432136764604352173703657275583250524216370607370992561162306077941067270851073009379513804703306740827777396341099925573569866014105788744204941045938059963509836690274862350352776321371162669280680961783398240509056547576782294639211668031323226648309407029567961360669243688517327877311201027248818513002022398681579767323866912266993470953415274327985195279534087384880592722929481418815238989504563294351220385663947231082162877243010758217003388105314021288877329939460443799720098513263510052909774187774749987047583914485286366373899667651318306383882488654908013568369993617025369319889112190666931370071094365158221714359917801987193514865233157236207899405874451675165757009534436665980681570193258562120241313669533798757771136396211540841788858908181902122025486335396435467635515432342214176323503141523824322708478006889597686170254280232911807798579491688910819120231507479471136902435338584700959277758133107022220076569308485450113293845573407604802080767057449852805312565719931885126074226653204410242996546737028801995648731326573133643914648959009202244276723674595358298897292007017592565726829310311658010519518813947757333866633319981962999233828651003147991938626101689258721557220433774240530365522141579223902733357096318251813389700131021850595505380176923008029326229588803630156592253687280028712072123350350231547766888319548325493392924513457436050243255243420883608659961063668323767636642310573946731914050556229113459891703496134450538405848943476061818860741679522267395250012919786483058070941903488408375453685040120411916033060989479121511229939505123345840526467164718654400114633550778724084975320281218559690565879011598050008868801120981993130660059855986645644136762636393039752055134749902919483587761647351390565272728767706417819683473679953231097604964156669914074851413858263065725195365223064625054655768887933914863359970176329245740050349427045598569648950183868427225838537662714146465717034989396765881876091312396540131032323359860905110538818191246469442882222513470828758380383889521828098495052764972713622379542584860565326464308780465458533786822566948246658087517871681326694127982547888333202998538197636252165212674817242330472234493485440479225142336436688584698732091482472184747627761141244532965248408503092943080049220650267918700335492321460938853788836308939950140888316852322652076952774552206438350132651388736526575836213812397621091358987694702444062353731753100717239270407564031647528712042072100230741073975225984016450421028922818246523978291142117048342822580683641781628202619220462198068002625267180512721169464555442176560091399703374065365061657310788990917479334729729567228094142240834066778189156271148237891383267167950252314211986425005360892405813183777856602990353178487542629207554837650230547796651566116946304868769247553911669584394774562123123329512133831236860490432774328147832686228689571644383168629358628917607963434842572876489036698326633174478208227179034943111540176334957116360796341133717212232891048196018638361120362638316669987632139369847986744393513190136665963146521265355850374122502977359189727078159849101052148725330667135527424217722635186925154596174782192986427346514967586809637875283744700433190218532014264478020891347065752244668102084776272167087790890972075365538700980388510976080899805700327145844852952895828815927143632547669034433476863018045798922494642462942226956344247663794746476548948342593176102341680065098995999020761839227535790066183987055917011033569143347041356468843683892437622879945250564922196258470295590661617654619184250541792272554959956332933024448211402490720757507349707703775841218581123087765148979888740552037869233031053938661678429910539215493468748211040136342126305496291100846822165078573453826371090077485655959022266914967533848298711384088695690187667389748302274375142609212778748845213704597113634792235778932421807750068391277302904044664128585918185559032927445569603665590329768688665809642582952957908638851114576135259053060582801541198115082923011526052531417655700387203124505440486315155092324027314373637817089692201934400529285249199490808894482528866999326205283743532132126828929414082363802837471052319692031126001074932250809594856825269066979543349127440996171116120326229985308615653429599095200940507221139636198315239815815480269459631845395185609832422621089476564989017131229126960248159974004004656740304444174171756483235703022373673570149608111970302798060225693892356557145765904698106792815461504742667957756501640408944897336513235029603156781247960688195216969935563489838239739721200357120690268333364146290726522876789247078082621471495215470924310335705584096872448822105572960069703529380711961942154813075070656809931918189704157667685701075865174970646175699743384772200027316077470612108307353274318213794740810462630216911777207680743757054654903063958257820614102470339792905114492375515658609541866687350408440763416169127387450419496770983476608889906565785764739771205909530845339497955874602450250718848807505810163627877397859960524134793625791068087803623203226380576286593861233763235193070440336994756036006889953224233924314047163002497053959664046648239401452584366483295004142734979986482266267362166395439764930007267842106427413123157051048587917684982841276760919890551451091799058216558382355828348004544423611795640927574014012364676796659389172995023372215461376782297330175651570123394389486842931048521989821853550217415754161553606559604227081484005754843868408792714847749128857827426299873471006141756177606442762748012408888144051768808918224136318612561773317143378014553806484214748944534700927027124340077886716831060682872220963106848915051598328988376597997096581467023501506945618773120551654877902278392854428201120433604021717232499482456264587216852832286691861579844277314317967469806959245428095097200596176279761041675626654312601371729900868866269592805344685748685953154852746921131592312507192164489475738165804837416515250969759355013291671880836949373201250586721335842486559328943908460917253662779509234257572222274587953845221661963304111673237063733546394662013369723611779722569449191965006819267450366761881938245488773192761518202785626411516170441535196255761851495226397163231462259798440302871729768928512283039011307287599562942855852056252098690529164288768638795210409068390601718325975685492898112974718713888038820421220911349451197145011166654434509937948388086741716461284520963467908607638474701139884642643521428872233721158169995346449052613601957765050004481821149407149748931228274170686729574360819177911757594875207646959162445839499736743783011353124462765338354603078557745980878421843490347308839265781088583878291514239102077641572224406334134802588325728081961790236143036251951619944097514639959775109407225395487296156474509100810983214442332761287292718853458046195323770534862512275757298770694573381085822267417229773340335188038974408133992134361235072562009230527813305905495378704482963743468647999288535675740151454936856686878232888565464763683718162529809711034329854511225843987957757493264175320438128534402840888713357541717465468388561959459639525773471689928844271539490738272999014560907971777654253773319759756193140065089266604526711699023970638374891652459422962533438126649288298358931668826986436744513268941658432206216322867570451247920100882001288672033593037180895129575191499556248859060983675798190652658105442325415483187896842445740871028057869463813544350697980635226527630707301277599735767864673211169131308757622865613236165157202630311191367285697088343957848219894008202989595025365825816895146438374703052653282041092607055905796139785089992447460641960797944928590224887988472358973006907191984303695105298579612707456816613434187172355957667419094478941873787986423947201725246434778095501597319799805251398469976697989698640908029398222905548580672788346595336086212776663096118558165636525335989413812701420297646203200476800564963486266075191355257362116228255508480689398886326631823380229567067780687554769484332731301559716716988259115794467534843595848229295196666533001460045341442418882799551225026933599206043479903194672014296122602165754404481825220967719712117513133545862939479377461004881295143278059414708291832047936072073144663443450836400409693851248705696978199010592051576196584369970849069081314481982850057121150042380773592585069551545878774155757534179917532657461094625421663138086249373013420230136237899251825436045283089282440005514550197344177599831280895877115731431322759312519310637424895445213085587679826593041717366026161056529249246726665812976414956290365466684050635917516426790660653071135990774008244104768487918726857704602643617305339843616916875554220279077202202596100188860054022604617546837407052969910472063247805675919222835846315864736198761346795433233967820358983803812293766796267185048553912415994136251532451968872919671637372356030783240704850634910332423861344657648093388527248509109193264972478517903600351408928167514087096274277201215484474469071072555172502734835022753030998462066896439687897473780359722883051129971165576100204964467339634556262902047832558380054314459035812065826482925328749188123642497918987770439662384489784538281294269793862385379393955756241083867778942693464188883941531401602258932215438101287093650033243200015765797257973988944215238538786888187107714753541069372279747734586229644494376571201328399946666241212878177669383089000356207630094022819635253930831780812796001913503027938988490339744366417774629745742319636860230783686608807884801220874673734569956123491428493913702441075338056916862737875126368928417490852013381504466270935186579483628328605978904919730915757419639807772791035517245164630760911466192026962797074664269241879710498221986069056927261277924256499979033854833128455680156026925484205290017070612117941047441207662667626108373617874917658978913719958045722934694792121631778003426628408849848341854054570009352475358992213689298109904086053424525771682642127155614713292879231267101750727588309161885026469169003377397371868630734460510485203951354323194278366891184482452648485031739227068858607334270722284725508971970674812863037584202040835185995595993984002720289660454082985243540931622200771458546307322533558682437826866432020069435909945428750096534991653831902355591661475194531053020359824024439436182928601493667221760810603014572035913179710013157345167056462524432043553315050309616549963138112074947080677345347413110267265844382966878464402527978073788613375184661452941841347721098428377246143098835673359369508539726558575929181751338671580993593805142091863879621805945280628649752597518210883741117241005997658718748225152094726905841803109001365681172038144712018180880991354694706313405511792264526723478715935517163881131437839324022591931141267219887759407315157576545380004850839959177417810205840143224827595197401984366472128359011768279870762081773688017666938807384958335347653374080759626616581177915781951021475715868069010167363839196281223759484876874285301903905223743466013625182265268935445554118128399199980763251746532752854860033432399969577247449385989532596106951003934323478494499124899008879545711996174000506824412783339509625483203069074492109094422648418887181621334581613917086439095505680007240718224000953035981108689460030625712657669750568718732845833387650595670001143249595553632338199030346002895945866870364575592377671278581438122326867582484853535065290233014940037890583935327979793509620347498469457512374955419085053299534764686156072969111343577306466422379995200523551527747090002170762328752849977099463260820906559328711546423138459069322770213544183596074495395793866450804784709210643299101471958583182736334727596861783826537939385506643484984645603180106259021446875898475492673340470503748732767214824850181096968958440301006669395937827077219347919322232178388887976223533780830413607596104418475993063049083032561839025997018177634312222058386042837317554204303597705591495670146705458507938167682823819056110692970454087394495768443152825397234202650465459002650055839537537794809817641065437264624179969785640270647410947653118070395903745215348430012141729590829001456703528280390109957230146346979440949808502301878455636957553560535249968620590718719644620801505002987126852381553992185314900254082415204086738813843014068737148425463516042843759868121748489918015585901323470029529747516219335082280419490486977700542558109964946690500754473177323149698529751366648488369374686366151635174630056253921810648974996607478857916368462294948737306127949948404578273056349188933822408222941475587004495510404339358946215498815162531473064528121866530129183841413914778401239983004172144868092693343968875348778571361137824826458778378371255164067582043584303203548682087583394976609987235125411256357939861404347598467686901997557231698627721012768772004217554286633271933746614664297858191879177249132458624094619539163899535670021763634156350126541849351712467928163544742990346725086647054056460393164613156900248632995702982569110933853991810124824863357201474621483827061356369011961790506994879495679175352586516944192826596111672514518836004796924140961550087721828336268067324281172839648369779958945894065290086713796240955234465721579954051899819591279414596549534798829126272261551597302196882750565252734920576444524591857627052346642202222278464858605729889717548439074702436009553026732681863829711270671260417249055137438174377860247556074514323870611636634733417116512796918220493571543912218374942159220109125442182359582671845469018875415931382905188374674529838959542629773813795254096876097631540355975702353049632762403126777763181398862143633129104863452527460766961666102162028974825105636977271918509891761037770122772750013378106359893079953038491338135434497434683420627181922987050007697280108784690996116686037182301447193979136429284433488198640568870642953043178294641571277343308530738684461585192191053629925066112862393181619286935883364601229527643943459360328902214475845486619805449213873364386199022263864312032430481300366554096714816223409778425023485912135999840572430669617440555263253156773974818830812773475696712925510592924402689816601578877502382031114997762583889760068617864736981192462360025040526230967311768088348588509411114133714614783853832321309590153001177503796162010411855144986286980680321460287745900116514858869824219277582335482290877843683611980979264744998803170768057247733290287972659574747274066070393279761249892304799858716153232198717586829117296626576575929128486215776731869877891087382830027596484558546348886536993470454149419204419093985007762966154572985446379750855121228904581304721937292391920659764918589759273871896320310061735714995305646456428341399394851650832429281732996665191367662309970986398649973813776027164689643719725067717416518686817003559651716918596903768673592335693006511744974409830023254254526693619281412907891295645630268900643000523271362301198818880409052402165541339949041394164769122508919937906524764719455226740957089171761600918356918893924983988114162481213175123136976188433915768392375238202542714521212260489031139918173709439998763308601275702874890450883760602079135668090698126063409996784518260603901559113797575581332981003561491091341256838319558463398247090536094189334674837772842247640521084962760240428109254590734717917881731284945239758182003589084247090102918957337558252109348875940188963853955299962980852920482508593725426832451232214805163615769389669778672406246705806304229979590520167278289074772875266020507726324959426960692785531908309432703053700523833624995242010537731286423065083738906428088854227889968942846627075530488551669609514634354458464333261488504322934004828744876525261422410522221853649529034352908558166520248451747859750191734086524397008222290795652808465068371508237410141734339294363789112396347461089065476407344030210889889505720341755989571355675028847440443586173332024938829634325035313520856796027279566131220236532106916837034913105883533817737008568400648537044381067147325751068182760648114021520250223802819678341295302914174187052718376242584323539579948177627223701864885776246361001900543345490227876501264964772081013169218070502642428650824990349263239464810974992753059161572513970074453331526168244553047132464943341104114729869796526543325213877265324015928340927498497654503885638031274399030049780292365639031260108610054874480076453885771013514560080296858160695452724851880147326457208811976245413218791182965281315638432156997750461819422814586084868317875528075110309153012484695630235539138381642063590047977742982167381423365221267942831895034003005498494137643723237254766620237218217942069498710545863058444451747448825592062729321848870963249527963770019501768009035096149968313352856103722799606869157617701693867076981696670314405646995719419538780999186587394250002046385019073139482300624514871899864499715632604347035134721568786683826808841494048089169657624629836986154769399704290601444621646564396111947961654604940414943716924193932608296274010211486249139103144114949803624343486528973033130172599326686243419295178642571651192416178143260817999463242151935721756463935670310796967830814080779086851694664229830197742380692810798207067258937550890427509750387849812165613696077536621485794389746342250623590986906841475579870013292047310920999778762872359289997914074547135823008205303920469507793675722755857195546663985137558572545294565885129207676844652748484091336646024128944353847969713331213208580039061842714751040548206661926156069638658529273070967314686444234846300563641703461308870935164546231344461344855425017021144814226817489309447565767051707624038398538810896799720221453969306614130061150260141751989558205559415814880081876199966460598536436788278267064503790305658356161247783286680500562435361243303934381921715954546996685111363834257447756052577723363416108723812618726886120226526539882167621529106602400474978750686917118129197647507749622820302770142379844257222452442022986785265422395952107507340454940619263144688198509922556731797417232170510741018743072475293038859934353857203348328285713999070758107240423845526212120024732236043605235416195836574851298159411374186653271034263308958355353233204751115632165602153930345380583420550321207414359389518411673529140165947628435301130808227798297066515247888311578895937823594389290861794131992254388021115802429222754098275584299748115326358413482459455707389325177752486999057939230241039757993123738970374769632681969389164427994342920666705937316949232670903338269225852539764118686664777267430122037114573533714737437741562062111577099014395387595149473494150588641921555165328825407777314138987949881829193199457684041218776745254612096147136682626374718353034432284032197038732271244195578421521468626860446786013331296688374464092744451613983017599039234495179798041149363205584352695138716831424257173630561749470394411592062812442481768201181879074686544137037131956924730396236763341463391861255437514565373418247475500581416902773354672188278716623544196754355651573362028646380402506430946754492326917282958033764190817815422363238181354364486976199391987754103892086775608075577480358117138667761273415954151250374426735729077138460651902019776064144387775756362225083817121851668292087647713212924772416644466778667857667613031045362403388831849465959651914999640273318204075085092744739641864381948489645095296316786445934150003487831330824262198000943262269210719016966809681905396340947013239844197754390820829907284178403079028488168503807366814033631218196702286196358360653085781854270421177697808620557845108894208308522723463574084052256823223467979898207378297117286316145008521406965296571814458970297229469149452594524753414020928253673231881139756145396896582867844222007405088598917746367151244548077416933802669984942924403729123641910154347754038134268298791375786054841852578031416293117598775270801430277308601227739482012777723694761282825637240031711168432706279953979730474095090218539101177261193365230488591176036593476837866684939062416365683232528607880504514780134702085850291289458628357749001967856715793138052813894364422961839422105437175270814124345466342817854992068632751573283934088069925651188573842272413248091510888089643052535591812657145079945388095274320168483315737480446987009330855977581196791712817719020639004128108034402210311062723248959483838318604741299176549825369320384946887159755888946943833494241949663717318635965129974368808633072800869707717453845654993107036750133686479275209265979649431939556361023203949326789837994611372072932383613724842769770113546024056770650829141363639567984754732277110351225795656907336771494109798782283967378989862895414166660624216440482493962560974126793241701426675320808976621251891414691294334999682567307543329381390481033410960187307354801618343286447007592144486149570397454542438640021960261755973450674687600535068573005037311478741642903647395490617905575259459266341464412568345398197648712997761733265635878003539380820508716788573569230658486180236090269676636332211778913019045349950662559716715263062581905325449355867785458020911008826883993642547411696594484332814978629807759235673205333277414450081475380464174792313514240882477660442501156162961004689457759175347750120495188488763620917518111857903653788246668814631023294368907603188719627545327770464075888557383755842367946306846307097546553130365930050425592206507725560429377456672144305890390432420898741010771055670016241882630974811051840842298331377242130003477292898389984256844926131447702016559156996168489833673891775873403877590536163417945194439009799094689518889366346032302093370699538280975608914723470707421589648134180741700090621262286899780424175333670839685486591895072701627296080530535898749058706349965898802741304095013536209030427748001394171513990671666833986948169563499918084591183498049747231911955473852421570673955547662755272700484829490411271893705797385112582249974261591906460425818231307078758387585017660808614841467880519580136771534492042234719862498061486200357674289626727823731507384514450121587266530726319067949017981131775699768037403002445285914507438682378453285242149242418291781942723036904691040025774054893390511288465825283014519270772173152427068581223606812916908580905456446348059469607090428446367832853325193298609590105952868591209035037927628738001347528076854604741603981485483635656787450375144541936438115381275633940438015846717551077118465111514143497285863124403590707831647409063185253619946021051558140672059162547915992295875283112752389214817289830664523710174702546017547350272040020484944596372227974551147427543942052653385685461844906591808296141046962893362531416315494261359728222570500634473773176274417137117985155327788577897429755577849370001498932926474889240176038949690421920737107351626941764467222671749278534583595601184973299312063227643189019599781776638275933824534176095453395376967987310736905934278765386882991163386396641149469860269762021898988440496513545864740870226306645371137161895059815633341301009899298064977206769424215549133265075951307106594042499258630391919040581686023493739251369972284716948140993213065565221185737086694662876706313665597691821248970720068164207656163858833741582234719115770289398347681412138153947144833254377836351543247892193248250388246534329977764080865455626086385669933353335414886777035786225310621975672664129372341463329650338674189943451008115184941542231880020924145434147029434091603846013271144655265895624250364016829591621500430474215374106566276221600299100848226862386690428532206626393894601035767489733318065204341539197145164912081001139102973348444385037666209642833803809704005991485015824005664410540306592182032903485120307672959838287790844247518363600019370971915674087270111274181966542206430544573552444993748677212304026328399035582059202896180700439617022890698013469020949535162450959909501384867222991190364087346235995491240013402345996385723202030078090281621815825956813954259829667484681093496565286670514105285746996247046026353169630608064401840740835172288138822673990912318041888092524456414280215480203519498808327450861243746485410918665924411542948261129504625017877281840311565266211098491772509475953833725083062127378976167726454228473652661768496414714408921588199219531024617724720011963378650223309971107099670653198010011948723600214294512296195846695647124374431726542595365931184769189470545189848474824717161654292769100982534126538718872239581306942722688169329044834247937456238320663460884018849952245835532402899970327149861556403835486182225646541691339660455887218954556062576958176175409679281559835600977730776096714911283954405807354799890254615680730512937295222179536986022629133481971917978797573510128173496331418194169079210195762023670888776583979070753804301536772253974518109569548930041117382405555701287004590984974106705174504304150013780546683272199768724819501980916340859153297685880609084467608335632506281258669192703552547646315299946975944426942131157944806757413908343993431911990925009872632799220384469064407967831125683612875568516638919429642807736448330814334261093220203288734748686403160116906171057432689063689233087394188024640988620443444020524843659808776416103894892200347739144842157548768699812601843481008850487754194466638204499369001307870692385806649773085847860530161449022196809764094582287818711987134168889108436478516294474357165967106364912600979139038051132377812347360474391259206418547138956208310250321470915311322184722474781818140344719943778948786588939516038164733787157789861604156321877947076986362898450481749160813409391573641909061585434790031497664991231877938590674068710150947032641348313780787842956072215851869690157713924852472823454831521926359927815237910878110254300139334713119712726912317246289592304742404721962746753273204225812519652146878328156945381646207787156800115665550849195673554009870826685300197187501135335931217038223500533199032731663037846086689560412283408790500309137060714672441889682552037655344391643960363900142382510301712792692593269427426067935406604602783435973104531043187769616559861874416889731459038567040272684015551500636955079352647867445145351290503817563136334708559612344967595404721732466671901749553618127677341336792877832325889626707573177099239976191940973181885362030921732222010798873040235108154206857858805139954138467652391938293965299792141037824029970603474675663894247787758908583927935472828915642917753902988822482882455878706391540051483713543228740063190719559972720336680880285977906340157843305628707942478730219897400897538684587474345548784633163045181750232851288428479542069893707261800407980028124678504394650792307509789107794113651853841996756253392292575346837664583774124107445524410316055287365437335784146439519207154571022230531616923156913256602694890478229350767227660144249833603695655843398493339908078573513563303225388950487274767520681010885658218656502955758128957967459095598393709069706437836338097362959812790125252454369706802060727022212717307981832262565451299416897106538363813463012873261348835916954360071110315006016327456022635611121411800407853906864614864799143667286925313455914632337727968991849447481159458953163909268498128543639356687543031699998036876380364902635581839910552505327592127109213107776529459325367036632550239259177132332686276795226660034688104150723682873901382783805206452467054658460098594283466895620486026967746982050572423756803757814847697935825010824868257431168892244962900392334289875177832433034368713051782776298675041676702844497533721895203558908159423694659934751825647952972640247640306432037663885776160981230152803526100737944001224472157839974931278241076408498764760082545962857267882181317967281403511969767964245158338174599348097910975791110457982531212836368440962405172246291663904344159417357376617320486067966365181284101857082756368504826069839108298993945320248462835977626856270145214189411153998124001804348698551916301293045680208151112800539203364982985821837795793761568804214388488159099516588274188255197454576663217789115512697558829527887673063062609482985216345959137100638160421033616238317920815520796195262864605427755376797975613733969401157436424615863841335820834045927151497957651636292357409789392987660746750971530447688124526605753559944509370815271263075573926989745954887345362274255191329724726430524180975753149195510407935149041388070847345256529911081248164900139092116181839712377949338895284945386254039508433357628248867412657118372372181585243549586383361122280535349488600306739582850961845443663276772130481001884655864340292796816949279409339544382062548559567638659862147971794480903918069940995392379416811892357589804111488773110519141341803467552707448977257851619108150145379529791303998462577121689237613220032692117759711872530016520468046903360370098291003835995695353210071687469533243308332797456381428594208836243477249245554157968943652619782790060326676197743884443729692809360568176600218219128917110287280865105558957655495239342622949607277841973638285212839424060707427123712143723687564047337428364827356731923076870456082958318954721035517075318377051407777747782332986805040141085777729512315788788226230632393557165851175160237685640468347712731760201080949376580657826130764844508628167451234005157352393360207615936438650087662407490307068095872128345004852557619763064703387080314544409782379631573519025366432506588108934454345360695340853263839459494683081388601512216536057182129154439995290230877162252065646893538472611620546932166574371847498405675740989825938424005400310724733725545052175849398111724699237837786349413232566831411482247683481935204334940369097672288759378809760550496479288365613702552012255024255556153666139924813254480862902540822777018945277660020617505424377919894959700208527584982156046713723873373282697642371811578394082684076092291384766840440475857972109728328140132269239937579073323746096068358364188024672573071191467177019422860339177956039965920153082918102485909739347279920024039657411268192419778247927155833905798562478002333986248516254943394374395120802535633784099127425635657006241033818819361478468614886269990968479516803385554909276035331933932062501128784334096949120695949983842230502576146709989145165882585730617291817820305173669820557782531497879093231528913571481520215378525496315842026479415322456223467865557913759533395246478623820431820485176138218588270549408818780839127640038246401341686849450691796124458075498681300472844311138766868658924890282348518490125317593389470704439322168497692179716550874706588464519521290005230763195269010939407671057541608698411122362302422324492595544745036929964928908380007953847936841990657889361170203196536426477864644789094998194872219626175209903709977673270957671481998405468268697335412820604047979929037421892503529907337426636783492494675635429914118596058623810216439335562154703026450089006971550244804043298555753219169121945686376609680117155740010641666853043405555136221059566003207168461104037361505596379616148863676439811895195159316316007065527281535145121871850323383547085291859625922782786303703805349051921854869365202068306908893987420775499824896158943471011145757662897821690512299746578037269639909394940173982648708639812743001686941762465533744164472671602695790618269792941338730202279078756748623138373015321669418825363586206075918454711537594777442072803879292150105063898273398857651482480531873067471039886846683926153760193016064681935375604616071350069682980914201355527539128610048860640720506129125011452119506072780293099795461963407860978762806199960394588469201510185891687299747538517161230547960590605486845440237383589800862779324974345926542067239196696357760302427862766906656106067175828994918857457283953910347510739149572844858087306600705843372046714419905471945406981036419086569353823684141073752956076458938144717724911084783460930683397458588664592594275153103236535625643476898973555769237123466079296951116981840008351028908766118272961155045622098255331714593068198523069294446088534116290822227355021369402048718898813803342184600084408294920297276972009474130106332919416406654554035847255437390497060261475174928045438741186894946899766473509006886351238415009152850696592561082055108267727048798607293449561676274449922377714757264880843282287878638512935453070347104399049410369583181865958815689593086500261050370876337249072234838332341558042616863080862059570364889822491596922654264438808840249883371685290476418638187836279603866659720238735933867268298521430258745714045803031637547100751045319567074949288453641170978984988173435944987693151041588780511498977940422278001464351060315827199754301668360900552158703370863969091770926065998724049159785264378527886855623522317074502956179428555416476664566395083042372174100112099525010664824283540743788716319635186938714905776723413991052515548283581831903646759951231798226954960253655463326076183458146463455437269390708984300798693894853103210100058449452990559481918392893928768463625043769424901265442200050191315656308431205725913320606779072443543499172427014818722131681643887060993527007419705813180257644803238162400048941368578639463757626511375189952070097920868488529367795132293128670098085758770363425591391422535061269661137664605064912587952913020126137672210908369401521257670112192542694306745622788126816559547444109503217230938499431188818585217686977203697186901321599902354609534743688177691641520142609657020174836072252212980640490461625918276629672770322471948746624000996821468070436253964659055290687122379134245347369144079731361190583880944737926770742421576724273481486707276522840021863177002529745353376324656485225392982564947723065543880494404117851285338844585770276596476379114560746589500777396424831630504264202252030013551459259544564397679402968810024169247431041668413409471030428014369637904744855000984854289425287146311975590877759037548355789402765206477867406836275421389132912967335585155900130595129300207340713910719447787972653593788283904265632778564871578229010444469728629062423525310409356560636849623178677811749874003610668410328613260301218364503463808484742960075845596852125708615062902037143273048660574995086669652455749807288427808364454324797720621942665994923349788256900093559743998133046129689188312708645865791668250563266807425943233106351098952956018742537813616053336652452195035608537634537286339300511058667299027275220059204495487062463098308830772053395761439796196847747044153720825782784287834743680704509983917125616564918985961832751227991845204030938269275144905795053844576758983138312127808246966621314009488383121366852220968072098128209956875454345680097424713826158730420306234414419934139530056349983761112966003800298626098158363196904794611726327977015355422186813475953961252948204014732755491756078155315329372425209739900628643690448064912527329655693675183129002495399104058348817238788227673295845195261757781755322149642126568305400862929571223223154520482895155289836774975388842772029703797759203122264894356321390062152471552666657503331136059156516422389053202500400138193745073243791726448025018521641492641167369368645350911674599034025260910453370424957643482676028378263691150690500457816571243766638972838819023081226806798553571818250824557781688391913159376153376278593928880079710176655348080387527625590681252194392753954537933059513792986090516890381058323737213251868897131896055617798908248749853390719197383100173808909835739307013250378910676572683943148430632119310384353233177676294881579767865836078674298083059532194092130640486005367481426695693145611427495106727022841628510260250056254207128924590290005376875837088492768745028202657961693855535261522470017621969554899878728187937330311256028378886532888739375015202789793705383161179010108161189602941883458091681237509746113359021988990092592442906788328873971549398387757273522864726704402667237990623618522347771469504325053526925835436119640547065617668654680392090016981511605802476028333364578087625906109996097796190837309630171362432855715857388566257179368447656760291419577886134595899310696835998888018698837982996133798255534989484616892470772679662258422836043989607935973242575756615138751587556379239767366429551608145946139467385733435289802329321195050599594243858590183159325693579412906063823665540623253841363647737606997573779704597193630702222885854513772806624892445612214511370121569269367676578669658576772522676802394121027577192616234550331288127485952725261206302021226791450162253836820401514020173354524556179134520466028040678152300885817656343877572276360013988412414889548254707960995668951702153270556814658216234243849972300620432637668040660730608431701757611221348353365481374272059248568800237031311072002646084052619875529600693841660682063248243083940974677257951117005754328799254703505573983973053332377280032830328839733466035525272613292365005397529866766450730809731492286567484381631775322958417963419908779094875413114736289641219335787237024036429926589895165300845857860916586499010385255919798655789061014034660181917541961303601031514074510777339727444586807330580269292937738966805001301092055119900974481076812085978273518040933421722913020560110952420954487742532932473822600868193808954079269127771432664236653595916240269672331773974774663167364491017087790491736093936309014500870021636579879765552929939581407246286404310016653995565952250596851937840003406289172694997720153471492195336471387755880377487286336106712802478434084717395992730673761511259984251282363820888144165656417913148207697727578707853872639080337948233487359372449802614547050466740304325373683938624336062378411201257330342591499066575301029080252834392359655288703302669887519039866334871002019283260755071023233429966219433687477039313339227476414907221028420103701527621164678676847532329448355965848074506789381116468650243467548805695815348824585509263206675168925163352499441454149801618395370637070553670728172567327930110794357757837784844236913880728408728836652437331379283208849307128429688951901158116668630787689928762034583584510866169420511334701219167055840736490588820092228603939216717663426921436994580461085472087320395929491526422499202565849771597621736054747045659174439154938956715168777070685719560703011417000194256425032131346336087501453480987917980360787647823193534832131675291906576038198997065630938613215599634208055269671623423404620150353503395764639229234089023826099371905208290555781853294888397511058437603231663483758604765578920989173921291708040987567718771023391014692354136406630335247457029107168895191306206553938316924799017055937227585426921789435761171596180146748249999087431168595928579163500634311101357821323634076983953752761253237328020121969521564943195307500418512117938826279834080377567535468768765445876490400623907367280813125364591426285411556000166784524836226662798780306241350136348803846883655335396248823658177725763117926928159694717954712982439396123790720965005188978493104740635728991182492293640430089632568763305463299965773185272073698190055878633399998380187644524366137692883780724383755247734009067924839540463084864511845702532922166428823313207401167049728962442939036595135652164768349304713041909941737089121499111885614148890693256331104075536584930036753270476736838624978314606268347462003966286474159156659176583383608824667660935898471739795251977527466288910550365188834644097555109858470756815979853225237028026357007528252158404423939191774756532506259574310886446862331443206505781407771405900477214622368097802139202776456041989771853809989022834340916188607332603285993886035280399177528251366545461224249761894081021544653120395257150593690153124846235444662665435411023231064067551754363946075513975478603620096877417389544010369019377081841462893608975282132006016740136314291299751371951173970057798028337588528157749078027591167927195727306169746922669380005063224847528338676397365088444258462818792902056855637914924092004898274027568247021381589590417052671514273446004690177340601133373672129655097485932613974856745179892846003075533267528666505912377196385601203214801826352495242315862801812856347314818637735110898731192311333930424212498947110954517904797211520295282792376469022129060861723806581284021127247895867054014479203144276164716756749391733179205207734645372310985421885524703581926912190053068998506109264845069613044143289358721433864844011693769056205015606849418396499137953155483838772712791497288067862292935635999638427516952458269051600432001868923980786151332668966471474803186735945972529846633427485909927515097399069075627516153901329883833121051125286927229427365132804176908143166822719886762149013926621574756499125616046910058081734866531882896405050849905073163364960528247975862229146397003331974976954036899333754059336641031214122527096073465051330106064241147887333960644298747648379758353502142222785808652394779164513037917363297811461754435960806383599373652999333321595776709449991045514520085969860232592031419377327853919433989881991668572568529915642938008690678142719365942766242826556369771643196931539188480137731613060304281418872203249666693998336481066265684373079003152725130841146401719059937351666298907734098905765724803312291336896817903362584195372142334965119723679965056446051809563539624827044629279588839562714372666415541727830787145458186786086907159637824467219504327867436472343678170230502244768524564372031358517130210360675878351171954092126774602136113906652995448554740576531487434935451204110019214182233041726720645922428663475459132327742096453953272814291468566810837212707471909365755108578581531933266116454063191063556524067922778729404735463550155466691605149221322765487832624170579117841470713304721976496729845436232579707367280816970742783204321260131083212557707728060553246391059923044875201121964342717479159779832351356102731354306157150550200821896542062595218049473996039318898458119706262088323715905075938008724455966722884631933282400917106964613804213798294292973116809630867343178277569969533974286769265652073042452273644349698511860193556417245613859655856432195427428918340148944783711891917858904791336736329858562391190032315431641337121701799917837762629447170187207261365132647299652265859302474834752053295368611955911238930774676815594791058924011135506220524857825202075467580211637816997733306105582376214114256376755204868002468107355933582013448854789410477030796579619176757696479643997956496060872680895301483928159683772236906302794277490720248418662938701054725982331261584752758073138430724047316112232959099919889334239768906364540274269053604545019925701476665549497362581306635100800919754284840909796046018318872201056572516342264886735478469763503735948637123812698574198249856437686653363420700637349616336139792029931503286701275418229054956971766142832801524541403484999626786961132395458301862268764457470082149333800309902355947271165981687866479574583616876877403283061764615324464368165163973499986170435532271029170572381896563261787339899922237161976712992808746153684886250652057910151502948833328048090616415437470647395112692217907636644171945817212664753993728930776343991736154413925527571051842509882271229328495666918363202412636555027283622092032393768023168653451802619432451287264876248836207933367842958069131914332401494461532365596329947864371192633260769099440001882009907048176764439735071149512936451447966795987925754927180452971676387587070116050490532278582411425839088663861091200964004003853859647775522124476512310971307675519337426579182952445661692259095779247256140909133535967534163652009376927986477016752463236230692853679973052528873918573632628340842704127069645761985697136586254704958226378026842210104369571427490636046511686568869562786279950453227754138499786413991205729499135073685781867963060710843447042674451206464755492509846775531841426732604029532442796127922996334941694423402869030338856767729790442570752797854505082964728800450077981695355611040765866292079793585454853461688036751152604991215469723347400168442866229780860621511871363460810272412236877226247806360800809143293136146498317554042457203365598660181397947121801861720540471102662663831602786459872362837926915446460314635166176905535078817492862331206877024923595072566654634423609934362470388161014347321181135152696888794236770341279673637768960388600373693920071103001261358614820972516194742756837896457540220027150649077626973525102806110785785805616013820129786623806874640502023889102648867845026580579538313990239049802414067772066812227008576556231106133067346774123456492996307147502923052373447688175509302738422206554306504513980758481045030549740209977419871384595313032048538737825834071291688172385987460468371334746871152508208848731370014978917856046828799857946939645866688944323987351258722467261594994441054114896624606320926455723474366018991113750351781731127234387811114064294390179134515812811113545389519060096418577470347158629612352556168390593387396798815090021075911255744902430213104438742670194140108448848493386541974611363103594085111308645123915795679262282053148869385781065647225083949549004059074923332155610687114918835380372706006559001327412817549852146504219405261786089794866374078596221626337841072855076488650962707685585011907702020356647149685377593406537803830339219683749261666140988399166070278476866731851424173654291699889112415905661535057456077679292461567032310878077145042570097301465004880669673270690694151716452941410831621327651855021184361690110964814770106964095927574029350984542016643793999061753806019235395026182404900390213892592884443836190311194097882219231689334824073018307676472537916120303277215904553949224433822219061958362543646622117516846453101209208998418310964214136060104031437173570291060851629547211987832023722582995946087082770584326217194801810588320685129920095598547676252247598795055946740765500225234766260234136195815778433509900468147695445394513154148572002361426071056508443002004680153454191634127903373123258869188658504764080768096319971503249404461080527884909840801715254577538181227357798315706780327225899133599105843855216743607722840198314110037242290953779053266293333781243151854870026713869256172016558396233948680436155633338345248234741099308458291164300836868233179162423287030007596908804594571090789738050333466229438001849751087580367985445345977132145407714940821286981207846978931965072690663149886344207503646044773391211177024790632890648479067872640760346153893293814863740771425028247777525162745152790597203888143722158316765189008434076110931856302408719686279078388994722677575657694986199426857525330683823516111614283040599752093261325396415596106893759511581956625797166108460285589584217076999956832658385784860404493911708794712676215074372939311446270366013193465294931539913073644125226611674456209456363610128850485901393664614018054744758149625458641127637909020792279729392633445159642280404351956435719189779430165105084683857073146904915110685342096209311750743767887798706039692343054793288842615931166131605081353981075742249359775061244438008440374326126761262009898448728122470044834229487723533826120184317098520397637709106528224767933467354860633867160114016263157282133398991509748370310937985641965924969289839568671109010643038007779883812136199281916047718446425377536524687430932007879661456631816526430037176353381908276092776018312348839651408760052004015979497967586481168046746715839965198699574388549007515989597455247913122695981211790663920803329273033114645432297784078295545041377031117135305036530584384977070568614744782427680316712478190612511752894967249871810601425623983293254235649003065880452004732733474804833004254755613731187777378877243220617465115108080369465565033612796787105062559276004704687355006607727202563608678091315313954054458826750690176074216991950487548891251854259571711735732619845296598822490026182141797944005102472572573768973725309784612958463625980443287147657319668696863398371433866948845453538165726942171600480297530624471295930011915563386168368222205832514915680665861358278653959505884618959236927450992802538955136186921224542121767056914664462808052248623109759845688478027848583514346603232549519407634803767922863076054425518493279902226542076264132137460829168383555047057341028200480680030812883934301806174759496836698342548783748474200414239370765587805454686514659219622055913436589966436845585813506624638875571461249564477601578554780244385146676669382112490851694792436399044128993109480992262578545533461116228958717035122885764987784769680135161461877667393997748734904253512568094440791063676371511797505391115301733052645255871277855471840324780881171272504671565765593910279395467998360538088338868076270185306025917641173222352248219374259015898063343594740592402370759588328587649117195670896129448574402109622727191248144034289755991851980360932791564109884855990720377392734984928301125334699267204655197308641464079002533801388980092193365725709346931051657691073427916516373621066561127347020927307668028618453113379340601067375398789703817926629406109660208405296424405980822987645586823184589258767335381197434303806775145453666342089628918714654645438344121064856052346119045492998259280229053029888527811291121521194067717331363396788691572751349845040322936199098005799512606188574058724998734142828198203432313660133200117665310970292610950321890099639737990300663175838106236165674817808949403751398254101168496067789905941390838107307274927191454803073164762386496286021876996128061409756487696893140954148362709065096834254760857414440574730419033795027503895101419786855712223059593881495421182661628101030554379586107375953017057941035916634942603449993547211948928476518439474727579577410799454809534426826835856861151963879985579596164891302097408176110103632465307710595022126208864362100409665383271972936385530368045416652143595635566196234189778665323062657620773224724788219324622749242767131719947288225132739664893846761095122559213507311251376295519657330884627578329043598962902638949212254239659009529524914064685733865055838505936727226129122735516137622682708233929181803385489114415679245992741999210028308348000245953590238090108261217663705203802773012852666624168912146852978796183030813266003717623598938027477419220527059515727595360811478692919462654147366154069046867092542154504406110177435435505028618148423131558622082286534267635211489776623792536367507298682127057739876148959803131558139605813427967210266841126775118381353953494594552242867777753279358072581113251772147924125864943738613510883183706061955044691041504732731524507216600219623301292605815237581237010825446767307412411749905764444611107319421473739490052926253888027104450282868576073278266330939176875163055402117491129307590667745421862462318190478154406231664912199301446623742480135975547505649220206676322716272490274889296167615922657713813498449097784204573270751545866781655822387833285534785854856017812545444486242918414257265898425763355882681876253008856936435241706344048272207100157264689009738573717638128959884850031959845775720840579831538066689956690423043621019456092871519641006754226912326634254220518931630688781373626058343396961019469250855079865682682244249208131788746662100298208429113011843629341243792443240575535320966482879961055854598146368318646980714631811889651140708040322589334168909889614133921304904051946451052287767488164907872614983306678692204099856516966397087298587922072619858061890674554751562394995178724401557274428973959795591002628075768245151495981991843851280767437096855773172894697618243383329618818836421767269531901487205029028886756459608196178111344495831776416011309884788131361281227147314332031784216136978903452357740422950584391717750740513089185687715305199410173797388000738540942373597487345806279245546771089378832336125284494980794274367119568092815760711653077448230722002668999528132280742575947288263387056308277894763139307121686132291182053442728968266463788878110708789742901737038581700286855602563164443293041835235060322986456822085670151262801919883180047715578363071093902965656872926173426387038582982398720048624361352149698262383517207535493829410888209448870015478980575822043804763185110283100070721879744001571586640915476196864234735140888977915950699736964928304277260996643014291421309269790220895984654534394034335758862414548916492778063334079961911147077298894991725851899218951430806793247906231457254795404245580153829454169632422983735278150523838085725399455715916932876554054276493206121197804523653903595735343427087769381131957772987606648111556938907547716731471021652745487081337263767601637024959931265273589674864664152438304289552694188193623223294904062432100804546950407039541339620206097755321660251867364192522388150816738980482915155347756949882974599740538671958349482147727940916039544619063742600720551799478806659592683858466063153581259359783251110957961637236476027654868646065278677956496386992493168637517812929386732764570150258862683874959228317439009045097497701479666129783493440067925352320070742658495778135870516432428724284873534892038002332923481032944679692082023982764486841331484392298926950095719103259094969221098246671457220950804815238606379286856188703877816220869454216408038606360665517217518596102735851903132029228128750264265501239516708658732080794572833944624420586856880509327777171816752436776329118415906743437395599625260669190775566350294192234522537563539535780048542679087961567713520211810378006060802300694423382724609792993470540355364511479470532314753922882133436149575655240759809772888593143887102158048289967352600453583937905937679421672444638970216629131763163854491103869981026286147123932517886837188081988598960559572234470745993744794159677648583329197847932230803104959437769628110304701306541723774257341382923686518147407841427020498338789101247916324922610620226136574209815483528077921033744137186016394166017124611127013125585739528910887232209586462475021963314205762427621207463451960290678812935917117412347468934790123700634873745721446594422678022320313766793276458995926948152078692049058516251441584763034313147233233162267386699644037000939000685680021948518494316030274673902162521087573642856551822917802496059886708519122101330293827255505175015686436251149395215693096514696759926934892518078877660222400967222915134423288778071749700975211236862115999668646575224621906109777535744916766972660259551069800667663410786722847963651155726219866056932216175161154294040941286928673397861046575784422398121436743021821554237905550317264036152925951798271968014640749904812103542309417652389576996735472143097498363793227422512836289396881256825759541062065096576857173766166508696339833680560122804812274015565196862136470523440694513271693385917796938444001629000844300049942484951077427253623500093181377943147974819090475673817910390705004187431454102316386397545400394100131068049363141121798634764421066809525203745859041348252018872604266104604205494506273626736489813660345252140251259996822198053376184854377088564910940178719756485123542637187637840693498062562342166420136666523763188476028947833934620355436580767353580320823466803706309276465857555961975047837186579980053145871178445178244873708876598191157673102367237525275110423065528888681236136684794469184011016028713541173226055093800551726575158253680155049697944691888285141606276278059332381236344702636058453279972584521576700036199227828691487412062067258114432410342802758228994359768075843041935358634209730872515756350104523954293822786635093202280405269630044354483602223109777185948994065560517829874286352080979282102197607308929994586426077947041996009629726935209153535584791695103460544689477485275389471839078718620206642986405143955731615001538219143970130184585483434766413616644588859535660397270977796077842831304272998162383129396880187308918861113025042032443174137797129760088343235770692237193329417935899930105554942496971940810906532957484714430046005385349804148966561288233656058413424077733987170464654036181322839348043048206231897080955330408520431534223186572841079893852591449724499576872188625124990805753777779980834783676041187255062956555121716602993030720233255648469676014735665983648950490661671295834029408691067400332045260421396011166395704166637532640065330827839843946490690478843430972966260244275158543104526122481949379049560971347412720897015931643076166046478272476629276935726622918945362885674650286682392589527254631420711005389830511426405360087251233564656992787983566156954596002131134176650398946857036531857853581324090982292278998689341374347969152020031257824751602024266614283595890632869176144274549858433666633837620616028107828370624970269447788359200952425554895190057007468195167117513098516489421168906848727960508459278435261356573277915337002256019931325706617893202949633970013499986852239185781047121149467865450654342879440633768525553446733321730001354695928305238795965287464248225450527599839992820782546673607327217057826234580236831214543323158266044656591531735853157280043918077010302134439276918428709332495223875776782338673721067192433586348244475978027934685101268327660696253731653292775366027538468694928415173356321110656987142900147192139589083648635152374348069575841726021415364820250849807285486712750310880547148271716535964270480807942150979780959012265739343603098666247375160148762029888027503990837397074590022059853298336000010567715948003903609087560594922457638974093667515925134577411863487363779909604161353714566237442566249069675975500726088878588678391226527868307008632199011916585651636910686279420796034406391323905301595000171260684033282755247424618247745472716759038998769486970965436339703312248237234032193046239102877208532820291689704441936626095979558331970604051892380500090253211227670261590754011615468403287430141300697909673950923859960522567654080680227643366187819178830682262062729999602816220655550717389251929893262747826804943716519920838009100940412991148813013966081342545461067075777668717924122595911503473304692181413692577441542322974724534836533222598181212335134805099211778824161688065960411767943600661288937588285494545300573396093572219180931208170310978041981367616120444723661113051547624272024746831362744235135645978105425062406269895055869814285136248822738953588069487054148892132058278989386255081068742450905819441839826156883599197529759191491179231649505670163193019537100320470838279754098818406995654842799765548497402381539593341841065382280761066702897853538172241471275641528177235036028062174791431765285692514774463773062874853053456335675111169011490254632915364641259928160721689761134977015308854567387176913761237828619263802559450131956904422221334892360033012216666803699685115650817605359660235100433044933948862728950109453148497916989197679862258021559287385480571978534121188744415174484320143596200358745146859726416436403735121765033566719294542225610449741040451635952971825034911830492055697543752977481790298245658737535739877395267491753915320296611848749686654110856276801093797751701224845544183307286031544760555262481217799105242925729488570443622099063355389351715213633971914458235493572097263561554389289035214121373417411181480250829564264435045341583819914156969350147831514243612635041944148657545699782391717256253806537341483911678357838430067694352141637173202851698505988701886467822534330930992242488145029557081183094118647762109677526392622554142606870902374791525042892761235816350421578279081616949496809566407949295584326403567842704205496849277306396952730472009173576621867384738758496760187030508514654560579470009724718312872831726275449351283686308493785444625727433279040690343823971957151834694396200003665480334726588614543968254576557688766784501218273769662653294657807068520737850326422799973632831881925901851232854449624280130266733433986224591071448997419310274829334288333445281777300641250949490597856254570715967169781267849482170256327142733876394747368418608294736373211546574236734275960329429709181764117164740657125134572615536692867353813761779189867430506425218622348047264759813165464525723597412881577778703747979103016751745139841920663490899586749335908666589323096272343127721238062365809288156015825503607072490681912406619211736913752324295117882388017289076893270181435978590273703614256566653633942425989664741574595306949809718129501116223433998796808981550261158207285375677004967790237787233626286131470463524316828662118891773705987786776377443653220186604278398887035667828198285578681933051100585777170466683792906822180388443550630989732741038972257300581275039222748230320836564303532977751069886915526179097101279068934347823553380350233393627778521768104031049796585908735276178082297139216468913631093402415959478963587071353748740174658404256344752068788223802348979055797286958897473765700799913553867921804700930010995887497724070382356873132571830707841237935403010907321509772805869364219331628759707183048681393686856029674112460036614304856660175875430124660284779228491126546521837051752108326653459125710916423839203115801757789263374144691667130289624345951367802073770603227600405826774277942301856103643279283258202204943255001413838469060875567815404646460427189049514624402747252416569637715103370732803555862745552155038214474574555292641984874966008483135677542769174657527711094619809766109241914638179457230508028217428472091059627502366895073234166223270743712713213647038402175760804511888968544638186088299658796809847800498148328579077025606345267765661211985707185106158207848864644912613354461796737838063213817961199677871238722984118617359393286442690270454568857788786029439797137746519184338659318220981417958161431898095449149307017678883398351913807248747637071031660561248445279151555439834961289080023067284793610156212754905616057580270720449994919476610522417581160654410661807032910262498696192740946852263470907420858793569287848326985473141075868279495399173848426069100688611445330083871953980785647605349582970150290216360717285131531311196635245119818001395002728515702931071604018286031139658448153808688637775893508827806985655695647827677249199951710764259886656003657509101898856117580716641964904087216163077096598591297264095355248630462321564971108942586262343790577032068446661035284736489481313247003074277958041503849214153905930885679386976729399141690564214883020738771036853594670338558912887075480290432883884840734198753439462573502626113054997459745928479810062294159360528093064006469330952708495428448759148931729318415088097530980318753157278006283931681654883125873230085981067292019341568116577071071299055853297435442576210668048672826555229496494393633514449027503598567851261205123533018902900295237404981934918271567461007946786402096706244469820427538466316213537333487447545189638482716178267114024062798101742626882576734851020829532840234443101362395353282108740107625077877865349751476310575292254717932705029474303239530909805408492639874726790865576570942432905374265777080470636975297707242345376992380356736035739005907321225029318904438818189912192673857595653874655306532279485335149217794071288639772186484416271553986482152969941526854680089826745952110130467498808227264731835366013824151693267197457964785500930774557148052394208906129628758950771361804802591493583821420043532077183420389937857837910957870877885811894469288937276584180177341718171408999695472736548296877983672419147262254256463344088963558280077098627456930268724613724219416785939823054083789012454032390073180653201434504307789684875431756224930361532297273158048139174757838063085844923210947460175970039257770057452221830650041884153542119663806735523150383288217329604040935344084899577794364308731601748188648063220665368990246830142335405651544645367613600807338378953243895372305457177802295587121825405778486316410540766884496421680808367144132583239373509438450280489982791362466256436919568854277013301651667730149038320113503343214623040554817394165017481485894420210281284060106313595441010667129759720187750385159120619795700656753077107937974339795377539742510760939564730598418042082646237310475156657665451318874556848320338200650274835318512585896861461764069276169372390730713822204677470182847473416887068461854774736852752955919188421275869783968471327707539506897836846652804343027482281439270325013300463186311120534158450398439582322599391847357218983187273258836664892632139957287045861876920861303999409950224063304378707281869167516303631859616923486523413886123571579268818296651653104789031267851318007002651433545485075840775296949255688799469538276220312353641054145133182995559043609776659120068014240878104175499868285947873370799127785678127612257395254623361703986477020257639786086500029781471128864600013697505364220479810444434686774786699066385790230004441853767694967195542351971709933408301965398493088223550799104069582569750788325652064149343218203315050774059139773418620918247843017187086265866113491271250849805155047848571084403810738338921239404539433427314507730644794212788267872924248038071278543254942001596830428999097700594067380769244999965743779298702716586329701533708778861563423435235250152190841085720338885230433000158186956127192641876815180583026480433196178652813440302530776517584924394726718336769113202668697659113351323438710997620379675241268242338572944994276166458791162259339879753855624271729881443504170563876309971404381764941924058510043311990395777541074103493366181757148808951488769956956557549565079327354372676618624996044147168743469526880282195458695125232249632208225659731639778023890409905486137293268247030591220691737121338317321919480521435901122465519403658239406486014011440336599251310995565366865070759641571631106967812965880590012176323699430646030805220390853734979467652212656802840945570125161366680537731819793450752687229173396287517451161131083148093759914123428637910747540660318404441582437280857640875877376509393256716903894258664314306875993068684122632754436195166230822084689634508441490626446528605838373376247661010415955067098493070921219616322120167642970310517979104493106658409157935860852058264478547583229065703922159226839884200090690492050211553731276988266692241586344484594809542707766983713570482704603538720094425117668504325820256552543432730998591649881943677951987680649144902884526518383723972373321239544138804976144877358785568113338991188297008943983659986980290309408201939987113133114647278956154117935286043073098384808224323827245941062972954436780510995070778112733533521781171896406558941345426851013592660462986406962755536321477739781911529096315452055982084152539168567222842657678531909102156929847059204235881378395442211642392293806367405971423857765095714034762294877930152986731207231543900767789079215536472748591427047825637666545848577418136803517665077328892630507210991728398628127357377787285365590987263355704807194495770327854063775600806416309928762717178982759234708608547293326591784517347460988503663416365785988261101548878167203359600990518293510417714628550335420759094790334675578892230883798324069635171738969207045056262351726645203558546954572707656439629513886494907807771075273389211842852156654070865239899785034619756594624332361493900978869204380261475974079393935212654396911499785998538398610493518144049748646334975742073938227001898663868919228929059157702681715425923787855280532984119826077904128930804955906090709057080183021602624225052695405808383190146069263335447173546612820522394909873671130401170838303748400814522459168903695955592726782940072601520987351606391201049785830434976771067315576316449016867951444435193741647860877567008704323671956340805721431471501400413553971431131163577170427938125139927205973093880504501338578270720742733612182679159518700810814138168492902873335461021006750084537431599219789628456117371698677713447892561798770376352028327794848347792379095765398159690240461362591730282385838707498551788585879995439999183782106858144109707813248040108100135356546979995778072640263958629023151970040442803107753003858497737383715910204024583649078273271601152384724331538228063588895368143909661368935956659961134397247172285553757759930902855893056207428617776442503858630727259515965472037859674719190826956998394655290920124997530157912324105467846440452597268334753622693278018845886699375480203524947638733201539794990645525482701332442786076762983472017093918559965901073957534081464199824594883836066489009894361055511199644944742949436703757402760258589416679065842634685007973265142524235760770547935397842919025676943501904030597878620613971353137094711401342176070394902915184234337677284077683394558737236011273557699953805751994621844403736867537159039185136031113524564889634655670803032302162876768629506871917586824408181644811068852813485294538522198968187571522748189947017382892051768385576056012706016479893004261395447765251681264752972795342907914320893488549787034061417165738394477527080474330554838333373256084564939667430620745816703321138999589400753367289662685722156786635778073287718398516986960015953241864471052418485274967028026818301194526377493463691250365594877188896419535634482124545248373718349974501658269231326789166505778739488559281645507426989808664964198722016227808243594421840680693423729680783230907871867347889211902237794520991339003708425529168147418210218859584904393486804416364705108835290742371910961139274502440384698176640174714345079101832070782855492347142548059919089987906351861271405647485560965350533563176405715630497655398278984268351103341101802237030041052099348246404999334188335657679379836091517822216882906356670613342629297995935967394310766939671561166537613030650748446577189151576241737391909703198517423447545363919770589373797494692621551192164504790083288495197157265566988994864952598308444615289838690622621532297662936705007318367688917226919131737871568293305567690552043099625806273039533916445520683114780935755584204495726311184322212413503583663540495556258666704482995133997443881719728267894669715067843350298940792297938340889943481186198840869374914753200512763096990710849975221973769929655762654569756589561743062107642529395257992577781980631659497783424409847202206534367722148367122235910141148802490417314620488122653657389535406212335148104360341865385792370481287751414240715263145514317144480437987188334660425354298243321156804199549375599309715647004736493242666226175250001538830658233153241000432340344539151432496314306386005483901757099028259957148635616614017818249030955999636030420509118893358226248273154584767924771283012810458319186131868016735638948930304520429340681242123669763201656246995492998871060760294634955894005293713903725782683941261926577907386208429581547954794003435915133288754905079091097763492992532784945582832576952746719735334901486191273659400419936830160533836027907670572684536785438542564240314128573316256781257284395893852055994486071402141406435039562058141493329740206573932325506973890958072579430847743809780664183638185688032097225160287983096600322514784431696836861650954789834202296963347560784179391711968319129731260051541871280151417240541545436598902746846126573824144954165812578747134954729392194098889380583431808797755653888764963480935758176216313721234731029750747119749600607376365361979626007393543567048569548385556920081798949970238599061334829537590480407593818640954191492403798761712881898030420924870313433882758352625778968802545291036623154622672581213633758630412349112669923197086385275348775786489141064011325545356512438934801974419829083031619426805021141876799904911934234194659723333332009737788532397508984529338423818074310923681831061000865652205092235966017569129775305994686619912833831961831366272362717959877214841695822103730121811895574534401107433135971820248882039527364600775087873540346374937350536955444052862476254645938801683589957915935246983914256238840940364708927922716841464795674102714803786422980550303162505801816931304162691482455451792097626856227255380183230006989579234787130087544888259379925206586492392229336525667889249554245601478876277912635175859045903190507966211731275130658361465325068240044998170998996833105529334563506319103073851563957536568463769455906533416970387679459372751115301162961556102741101057710081963690181945702500774607639689076314926490619188394991614460765725601544631507753699916300850750906529148275818832560480481400656915155328954022166494238932189262721151717502170671135834828934941298994957234757913286497834181976090683462530160061309740143430744691940295259542969624289764657746878874621689723842695976115938291009646192110331418846565601885078757230754478767158136929813564445277908266430995658784939034783009049060008315907114793526791604180215933671684195347687005586367311737326567377713400750790308726629534871873794790039184993816445872861297782476982947897748671168689824935794151891719833969044042253996724448202168052997931265405215840023268316920740420440065616316165699297716780218100033668014819034148729232412553008909096985274243274395306357288507815503623036321661088616605572220970628019725117653811854008291026288906284781743285402804449310867446045521048094020568921912706809463161080745862046802445231563564841200974742642504499646742878948542829583624330382354127454294079739134319973469118153095562645303520866479753314499908004097806703530130646192381451582402320614967538246716590330547517729112602657884671358127007223908938694787690149033063745448364669884861531295828734423162635312508656554526322278599750678073687043665790376669400677290068205193084071727811482048389212969239125934844666439423125266107520180671262298083971628372813181893633288331694613935531926252326971294594079656589731039567282758947281411361038334575976036753136416531208359881009327281551512419634843954165368752492712313307483755312209377534596700922245753209108813114640798537744960343408039029343780172697763025643345396222027050893783089527366608514665699876263514680986411330523004287811593785151885960380182241388458437632542863647481805015552142907385846878910870600440894932024974292594761914807494798628386187678672085784983937238544876121302940266933816469029440324642124258095187340841169869191308141059916855296915326480938560568381628106665712716312425876911505965825684793400918682412755425327559239902889032590133164655415123314746358015496096788273875728731148891827495657627940317990855271428463843629402251784383049452996486246630872380543538060154382572205218905625140506310105535540386655417785002856728437802615192413153977427395052974570999238250041056524685026703490849843204114392963057718259603924831856215617004031406331243633095624810288737187080382041787517721732155922216598351235170436253046560706926942704492858666117837692393764838582019686570572886251168607864231428023248005619202131601428335028876251217081109250779663982508188923521738596526285227266377230047477810102782847538491708302249066550092868494946422869126374694073132418463319677360427432573091946442565654375123440471942881927444559989627312508391904093639832409767126823772378590607856476171257796893028434930547386356314870877373664160717021761818242501296571088849237038072088230196207728414437512319660919364672912816705300197346014757346485119576077936791078171531257103226132823046279911479717610890591209811437542544618292554149736450310471317952100231267175059529973005020985805665724738833988457127826324820030639505635712123553405883791614899168242481807051811834562378365473624358818546639951101332625138388261824182877798936525689846061847858721909321179912546205162486567766773026954365216276335015575887616306007431674169169128966011308821835406980070048956251211716611673378079856252307496072530323783290755198844713417717664384295301986545184710239171265513698928445147753373815854149616311579245534590792735629434969567225760838157975881403481876362407597183679312086726184570335627383093466263306189084971013639101566520483467305526239188369522277708343662946281722239496988956748126981421369072311495339173988615528209908127623553468604358122597732759082670698275277826244758640669326520956725289430644095976028651352547665659662237096135788605809390035660366584800272270479958225267472455390828556503815277007185655822924753129147464447246214367839154060788652619266664089752418121864424033336144072676731203681607317432442050166447826757142884653396980254748358520480608702921278155282198991837577584783314718009495291193701767342432718177672449810771334659280742555968429872463844148147940453850572929712313594716058889861649919390328210033304859704628571544399861706265016040901479961274560750872095026448172380621803608995862826321795715744274293034960478775042180295225919579484298343668948780506290908252677922551955115625855384745936153997310256100913912782303986206306537686330521371233948956604704435500406697069470884311440579355389434718567880330753630613916011405416672630822290879064172703582647992191398213256124907479802449966715736954267398397236643760472037956960811103916279835545678603411348374417580032777323427175075116493470705444532343026037347712966888666259957808515884344827210149416647269907764368425562338886671595614652799861412393792450650220877148760535638080120428472735623111453833779899554984694812278098458170700159278025884177312301742232289479950201484973779883991616026816719912854999506658398287771922174896463626176361474268247749403912729151904065840488253370779597008041622780823674366404585549953741063154253526895770783116439045032046136562528061518112088945678347088074229346321955028733460956394317331552788243676594136569945089898787927148544022534124820654779501361095630243261006870579171112058844346477015594647014183865344704755341420879778012429781557632081450251755588029949327553227752335241059369824693739403202310283702960080574357638711771845235589109733162989404089380700159409448626342474735462760094485655756069047326901452611739976914319169799643733601801581312484612128037103699984219990898322068660073921603366861778183121835214983894158273223671300085248847615316525279272514385192971292177645519106126863061913300126142408487703573661792561530393629687334751362520611843017484358909015395730951316463695799040413504385750878257498975640563350630431551337395942871873306221428240879387608549234346215409507301904434827768113186886341191226883543230616160183454643495427133437985191983119967241439949360833171268938261108025149082295475144113872345208369050384117958023754833618418145682163747371766392366176753855875718983611311521964822402579632569926998828363478584543177522524945040357844857593643402125725228674167916404246475003443068332024914791780251976506116230836663954499651290482456291304421871825542613692162273085072194825696034133897466657325009672509990477639434675645221110336308686939187410836043490813711808633860492004447475147473689575305619503387943408451505760410750473228077896036560166754166313298553934856485170202731398325010701063521496244012942022487325244432483521152125055933226602614424861747824555977503700061839735400695073630959271524675664927316285239708381175845098310147900667801381338152690511159976693255727274540593320902261745078669871024387734923588353189592552217408354744240130484849396817448694134023356221407055019427456178462307319370739927196568743813508913528018591666519632270932450531033677372104038306154318395379972489596306573375608796468407431029878366418360970687013988426200858293866077792145680825373539379168430087627451978198448905813198129295734599278938649312697319053473917592558374861519664115022307331823679030457187303376646137955891760744281282701680961422724389947143918929510328439648210449847188681968631971739887923359102545355829182965707578237126709775459260973563756429624908455528563540418181798703303170570499119534720505744923053421469383148627158090564159963209773979285472746719041401148840308220865794692485984952932379642141997339383259478384117784480502426075730217915630644534421807075694543456867135714331703811652013046680500953973859121784247413680755579152072508636969842290129775043068310409821929040947315372187320176845243060111306587380263837359626348312906612632485380215400714216839744782522576693252693595202089063706186335405323984738317522837133664327300591231273328342227831885436820939701053869816262035958278733360140985743406260166895765495597115489468963787791778002410964942251894432927217415083166368786548422209217871720372058225024359011198228422394955242733059115124159060415102189877430912163977731370842502996025574847375411075793580267522928208993635009593123127622282480019086578609065003609561657317750864555626990024813712875630804944065994281483024353851225218430973160384899157408849338906952640732698974430165005764330630242072813514785384782187405788434994645476641236861319659394526481640789975943811271820008550435316622014799126922756550846902754036484788702472199003836347638602993434909256310565701355105954970679034270476945992204142760145943121514485420684170126139741786775569436717933473763826914039682565754197083262736917231094128392473863657719449416576885368794316368113733945179876670364160937806077180221400477722238928527737283040531164586977157316322238803705627330617652653960448167500699104193432464587643577847705615583710245752738427714750887798198972949276759792757663225405467783932368944067920044327887660921739389644712176899269178443756878525575221733032725045438496877230824015338664956841292364628446260121079320181641032895633802806704987555154123128542560190167488438759934162317764783134517103065597138966677055067793679549933669699063146438835517538015087529377575978796359443542448250500273701900255651922185113281951585837465467286349669434026385241058458786813517522588482516571002811871408393978968552899416934565706504493057217817098878336966798207239954282825620424625554930983230053481593650702035560208696502532530158717575770146019237581941833616674255272729178397465809365174497131445608981508575411479545420982262660937407478444123632090531882865075298719633871460204818799226522489258363704610056931017374261545280350924037641143754643696455400842024970524878664380795465656424745000900174953822662946634691585993268182303258314522439018034744106295484527333095597041626666123874813394092793318719715854199207248688927664939623733375795184913197773827073146062663461217313190107100904461607029193731358409605662716519909162448751759832504054115301871565518344228511594409311601685539857542050033442355136570301474080845567410393342662808793153178347558731994189178630686994208839820480578356108160051861112645477483333028224326368616910235366916084296449735246155460151332677958100651956050316117038503492054640297826777426508727590607217858251998469536595932896080826180164054868090521909682321802576243452838608622947816394937488174244848599052094540508275334442680795759318257313416532610123015148291409161303527044123812663629170266292314625567052927514481146853843509143125910730025956853431739407053631882825232040130141681680342433803010952882365082580006638764783273669138255528191985788998673018061898438978777784859854967567181727200605248898220694437603056985461386855931241684331795001081961300749023836315250241774811809134583140710905554579696479809188173732685868502114427339767348478958363527468833621082573715359793592851538474893154486966505778564894321248799219465451321035074807728812289843946392817787790845848480532967731622047585797221662061235055983467018331731038448628794977856465997517956639756368484152431216090073055017340681704943069455328719263083695026160168753397842617742344684469264905915553885877504394241959742843508841515585506240548233807341200268970652151245025045151822492260804670053570319301032720942868847956016611335391721146706052230678280644539333107205168525404806187188669599119427847225320984739257173163230662838577244763338122252857543431041166389001162061575615643250281055053807318817309467271115180346385374725531017279991671632160789054061020898439986448971832368958118511690346307107520024499885963302811179179548573511778432646742147895664270832635653149597373657091258740423213869853094638985030278607221875788680561956742644669300292608529288508455052383119083936535323063219058048411738926618771496065975297953396478501851912177262636639905871485423784568838267194438869837347871452183110594881211295423519838127920322832628058005419194460940429241420688449734274178839422604007240651430482121883556724046774815452624497894360156041743679288705361807981996884848566392130509241622953960550302354659810887598930734777563770853848731042610248097613892119433554023229777426395203649456501226414314711024245874100265751139504075125866934349033574424117902833015474222299674420458368669375531798913265015443143299252657840308287894183615658712398669480608750142527631104466667209641680084108379186131022257566033202039449129628129743919966469375728832636914085692440087383994005909058977167376779092272595378402244750128899295873638302221210146880070404711004492757773552717486001078640954974430285515348794959335313129276583079055923777897717257381410001730057499537433412068070070716364937660062608689285509006802469361647104498507128584331101572835564749712255589082914390171571598884009526086188442538739523028193964152865003760588441853888322790450371791884771238784049238568809163785342416066606058967844383649812878181346607748680157307712642971190726936120790057873003648041267360764553076575947791706725586472301992216066053064883757811274285338992941914465972257862656487051437248233496205220508376350661556225028325604358894917222621250772767666307232352301251845606723066194460522831468701273640157309921100047201713006318725193415767021098685149059854697093720966878532494119324857289720013158932476344894343578124549236485490221265503974167932466103176128778760280420925281841607462675754863834895331287017354691987672920901374650129063321358657894352491524442491199900097500146549323787601349291205283582463685666487723512993692764298125482385831389490001359034575727912876680241568159711164388624952350796770346868960628983887824824396118750162470600362794244216805304279875777090093171792558561477324233482605997203334001626352421344674560778341745520769998428099707817521803336617456259564592342279516238124383180435587145522924237544208341019137509666213842222849991124386341815661596819992843059755681051842541395049601235051796022551553649460610234105045093689068084383515179185336156269867174245637420585503031364342876532215977675599217394739976761519700068387816017042142180443331665092878800347703737530268880627091896104451429322137251529993799402652922427709244162033050335541149470686149320709787546800860198313307972849755117227211463492797149154497220246082542099830917333580620020658428505868389608420995436205660467133518551059993036196464991150206573964809373527983459607580296837986893234798069977388800485225094337989670572876410753224926924024517628914075732582458222024172578250714209111633852166739064205948487298610929212283105790286557627300510104946078359172956042130911451439193515637002983845159821382928441305762482398974729114843237240372576774583581623181356977246367461532452771532634466761837352602900833012699799278135944987024339154640556872637432566797099061701168077940021739369733173128210619344278270941395074993689906202085399890565086460072554146803813107787168392107624391246141932551624146083128854851198737970686562822036976858038424969868962929402112459603334054096112721811207205232063979107068204705714231966288377134335673002487388153203553290647517766546703992263785601948067379083754975022205937670422354230080452027910411995453938609895708830131255263488203888420273428091219957471655097861248553698437299036880288772431058427427548523288190466714690272428536719675786190778988548290991238034978620572105809591459356236455290838911316227872519550486087592770747201730446347900735599580447291090920642898256672178789076499223522182627362683191827373996257615144078713307334057983856430583789884094152066387854359841125400739825040393500912283491008527281567571097880441904160292305016246028369637071591641197986770683152158636191399394310329185588569563226825797140364881839023703740322335296305640719852474480779811937921902280719854064170517937122434078977558916364705087242758838275285567611703694676651964763122469425634679443481630301860466345472711579810893987192749460427808495813860462994511075585212661089456323997551016753714645610158590608646181398066257434169712914911158383187419173014712111875633127138907741827597471431759453801542730145956956374827187277173499113406846479057572047167301429480395068215163241252253606528043376631881114213515016963656710324657806874257954437740115438371420784093351635401988673567955751720600428887704746780757301818244597886757264829556200178159312605169720913392519975799107033850120105591408635423142052550547244222266327824623280708760173847977291125404388913284723870592403353981156296978265832191001596337142465642592625579346603391432898196896771798356143485448068993377090982779917399806724534014323016555575337765718043830676368749949712029969882658519612171171760765142885988121747712910172099455336036602513326322109401478268714743690297465174632589305218399808379926514105564925227785132788416651478152617485454029102973524378326378804229568143629111038037299560579113926422368664773694345856267194425866938379885289924472236524583203963210346113342325697414368826666930987235255700826334135472143990951645597062515870973331284105079048218183530956667934234945252898272060591528038991241556374856006763890457146249829933719271717277195200347697086910221003654593094740629484641314766499729219902643987888391815773935113022872568888051202057940410942929459516319584525064046947326189272011824075895228924737713832377867892381311306499689818472894764097540237493408933242413028792496599255029346054507999688979272320560853931934137976648551593409454935091028205700381737438415705388277279035114600859825026433770974394506258739865781382711130186955543322886147065813544101541282768520230935984015155294082696655714044989044278986569358362129886126256147681574466782536689319419485238439752462040465512259506323565411888949616250742292637893378720730659987847975967456657086554468304181759742798799011762923767664553998997892009115048766649210696581023907958382589324515780422840374161403164498088238910625767793588478642958548785340536752311515226355848230012530346643354905808763766127876082711518006494968521850916244703133563641018711001159268134858433161473167581325038668323202314600924380361541336219608892905946617379961347756286325659183065669032702786483992436310982995296500686308020765441699196731406133529990186601801368718905352717173086025970613562601602022797740950467958388395483859100632871020433957712417266943522714905603892750634268527411287288237197206716564738891844894860153923021656923945659157741779321683721517727076982299060963868381420749691940370049584570174800275019992304807619214379393418783838425404813507670293456055323148378993836487000764708273093002786690322447405869806409583070045010482575860773183673569890318808214160033200601756097636579619231041724623814989363530151678172488428861372429588168686185989902042122317196526404331619182365398564564452264742869115890011819096356203113850064091781486005058925451667909218179746152252623114872287299550397896819711834999075690534115521768337346262097493572768685337786947051897646779587311432099602388493220627941132624071618985178352616402892170093389335878249561708635049071802702616180581476668366137402807935343256825271027412608124504391815454024620286661907222723500414421735418112557616842983884633504520119523677148010744083176531396624493420638728410103562344345650401743584386003451639241333301139414001988917311878214291560027940685117918391648756842724349140614755589124411045018651796404420994535071814264744242594408059810329525361770051711850546572777726955143018042736535786462664507542064894836827963025146492718979494417296573055522038823537422645604879924096367442331927592574790462879630815773498402774225540866428210923419331504090966260405609076278407258092581231031049083012691120108078282385665297048897315289502541419797670538654264495093892709991637765812694867662972758126414414033284448044191768829759118906107807872879660854812595216685729609310393476814770648139926182278786400510126791325126058128929766016845316112007231858118625225482574608128978353679339718319800079557259343152727901602052173105537054625785294349499208114416396824092939941211553249279661438377188158703256804847719734069011314285684770861896248636354830940433732766745939930420061783766717169951580824868163660538475609921979041532386934160206946409370485980158361280855251267914163119384727665028043282367132155318535423612641534902168636284035825888995207787529635453629383352440084728574672049049687455665867871687085414714758385768612287249226138897075022090752043231086936641412526598217783409570787389468262893108721346742287854632352487650167370020450217924812331442831056054708844293952298116862941249781425117494479372248809478258232960119986429899027357454088617691113456660163372752488231123914401074700921421775209454990982061147328842353966027290031449006717212856456323752596908693209189941516528571278569056100565294728543787213913801524782724913326415676232913464763868186740406148068066337605931671282356349520641323872592612370131581328648572630067803738728510369662216907293495448990934525576741471134311676199218244243813557460354524478116393678987471308671239086634135873958023729944039357851712277516894913705288025882158214146046321768285707235881505577802935203127552063437064692852791254658336564282832038802344984474497011316052255738032206760137449745082348328259583309789090105398313205361269394734298424598254955467864236652348675129987597126383056545644540645030891815311152140614960070144247774272946241437807290345414878123518210424325061414637841568741228674949673727455788308671641911056660944898429918927993386221813563038623472843351422115467689493948245629566131948583300054018832414125890329590858408042754768251611231083219483183865123639976017707227724483158389714021593576496364754045181505578767288426005482617334623231904204716262302423617888797049816940069602064420239677045770024697306450957742877987077594285850005348865133072543857099454568067629602912840206362143856566364795247470308790332849251766993978511075010144930242234944134218461462823725006923385855257750016027646299364544269550268283101466530988345182107060703784855353818813828715924083884302664791668008514173173777929957255375640197627966839466040700037078304319923339133506310088007890933380605468265643925363405424327757605847232955753696246095144819706585833497220726340377688475717263693344288705193166421061774408267426052998779807463972172158229156391678926046268064707704778369369622337396395826843368592192310487725342977616572496874826089590246194776808742703321169086621941907214662057606326302050377584719499162711367339394329188275628792888670765668865260784599765586396355756850493210688719943643686439826641324606248536736988783438979002932729491312947524573807328523160891000398993291882638149605441573724537866001912859736570137261752547979217385067049618881494709306188402154131052346763220209395312417572921674677649364060746796376886150199800767529364128382665036762904062097095616137376913105195288452301194454194644664934498054211448864037146034342942958907031753062604802921964768555740368665786633208173348425637125064397910068449219847321503542908999715838300938042788591070910948773369239556985951484262785727332272887293946247058668410441087264812870315332407024810325136992137761245671908411645445687720462469351356823040326268045447447104908773271531172434640922285375687638271316855041065440299427055270594760082999453868732071048930145588282374741283966945873916733091512629488027221996813890593986096369754901390360987685514324007356358822934091405488507798038996070517083791911717817210053584862426124056545130977905549333866954796658018684831242524221993484268894381297317909579976366988078079369711992541703854056383093450172068226070146213247845169795755621958264650487209643695981519353866059151640530423168938399139278509064595173445673852470899581211290452011475406119173626783970536401315905659953770304099287822863489960876709321224672504655237128451606629227716730662866515797325858768248986922018749979516720609154953539575501336821596320647730036891323761544082229087744464067028467776103930804257948982443138139610202310054576374728255263377458494989972394404578129226073579112121504448440920378308144971825844828041012541011098770163422434912088359040241811023139145001360977864764727357264017229295270092797829803321410479484038369476756231738693207133571696348875898459777320705208894272851174114271788571070240297458385628439060629033189429036422434051810760098653441310074905140160927591045953518841031856503916337437914211324205723684016497510254323481708458534358354106881710037653511971399535215192128887863876118982964457749797904649056321110073394183442232699454620024648769935919751595306104823843836645143098461342580496403776562287943136721500960982154696327628369459875922963490460611398556478963456606616187049104747169821617366687273334300813645879523501977480218417954107057949650170151895603825913619848804781220822868981395728495273162867675052440032989888297905703521414774854124568698182666847491473181849170571092323176826071457594393179682799440807450949899836266037748877761979291468599550707013792293869730164177080618448018666626211064761747539168853037198525122239339053645514097260821036729933780673368616265334695661297830785469673170839616620611518220317301988073134109924430710306881029567645943785785685694178472586113381025072635328074736936269387444999771027762373900689354213755103031728251277069473177918288059336105704498052786964637768931219583459212439705947728094800325129846486519069793933663204131690327446999961528172764503252650915019373581769460341911505435089310997648127723385826401385899659408345204597797815758888080849500211922927618767983305567892549708533317790508104327348523383749382673725626794750387618495043452714646322719002330489180048059452714432207665370836577071037751388859030780069637374718045773323036532723542413008385700392929983442217913719313746423226964047678730273181078227783549026584244265388823581089868789640715384178624127833578987281083124180451117899381192760707086638275452973162861763884274672313954418481504914467989055350444533508676415854872840237434803489530660812641028908527022425144836425723362694868279237648284698855085179352949481625931998999784969444693299284930432632760037327960983335202770660204134155505327106833433076301226006616245775377277693168205213192530334308541328945487530700674651831052617055885260493987085545320002955625602440347294933433301867791685212972717273841713457682098210555341787866967893688000829668253475970400254894155889829196191808799902407921322960175037553587725088513153435069965168694047166102257069469928491947789941874597199863885914064869922077829141059223647006179214289250825722510114773315666886958885977805707749876777938479391188657727333301148647956273246764908939158720818155549363623747391547556756274829404301308719222754381080622222838395835840355451517355255755327825585955991723873341837853397620033310411359792478708741879118391312647427424702906071624813624627030124127258738676361275470510096469025020016008681449134816258198638000772095907458017386975074439314781558786378076370569731078778603669944762020490003466711700561139219259480732772578651373817783413047134465375850416446895797170349820097861153139506214396594751733335486288628439896467715392433831860007195945174231868422613602041467588017835288164741229999455574122270411143412806269296427379534865804143558313201381215210668723861872118936875878121313332395773906389918523822331355446348443071632297414118157372184650113556834515887412276014720201898845030047118686319525951136610426831838004071594373907715899402568304847335952330543123383813827227781189755352481479204713524711774306761400866497205415249539376875597500364423997952927048708347694924513407451132704341438315890472346637571286106536231215939715911289013715947148464039506139794389178272540922856588344508166674378814076237010416279924652083505793297202629015912262670211544602655289746391043207097480077507537147004975273982359820636863169708706694220958749667146351757561559617473287856312269591344030608010651926944185774234949068626813877768232195223024824646017326315392762618729336334567389636820865008130697565276483494362007705161636450862419485466750880731404489723360338850305900494959423783693796786464403593516580318119051768055325146451008807888634627422255707039195633342820661703797931264943404617910767004705003146626371409392831606717198948175231252839731953700084280615592406966924465166619820539894779609695189135327320400657671755865677583150381107112339874164404111791669459043140673527250674004816100458940237834917582822611629366195747295500944024977024814333587023239194516965148373255126488251873244275706755640225873648705039419373978500976154350012155822882517215328048633818224481356120293841806553374826176581873345380365667023959375093727517441795864296580545380973611830605790852260585458380245721829427519198317038244701268707068578013098398217308425941120989306048418887150544923185657947044639833795624108468974054667559262425231511617618370233967614283091009381134352201808298644570903597259681647391053425055781862013878450708015805068413069119153183427406042970104135721173062389350361368577493669896672285118808736890050606146579203790958090443131857318997823736213572972831541561197686836607877699054432537670055638232153708547036812372595448603237245670607209761617480953269477230538352411139744446046221656352613406579104044670030498637409292924920418697322151862152180383953833929175552656385322170082542868997124013070376782204684823589409820504950398731317798607064484449803039226366095295949294024126747895780747876796378042481622556372883676778193024075380604329014011412559616506324438643090404847730396859338986604015819330215465433058369526879920550122269621540450441917535750489300918992087114719753182939880706024078123961043665887592117399788569463033087052340691849353026840390756725222672126276261731238136768555659413384994220658899990755766663978150513838594536572758320911418175905512730524255101167306969055291939201346278466471276922290970141353300125361224770883082627739210638136682913972739955712702820517707501809808816794030416020113891701440071944633260604036071892662020111883348311130168080702359400259465486095120810077647222128322814455531036582137211477964370129093901614184944482183267729960426997688251155182314753400702096595006876811338137049906114223181043481710337782076965260223518411376680317629526355884978190243540818596246422405487996111566281517166218699760889959437973172719230880452090093526088841249959470649495037491619442679565094117190425003834884454586403507326251803822117239317381499964310059381981589640511138752643987324516324027437079288651344222782840301178841920983024330123258302697573845011350283607074469560430386118060313664249335299309562616800557271794323587385306056386738407065739972276639354355654072094401683392977180372489784625024001793140486949739611679279472950385323742013220670817414564681902167692541208269218920564005055144331601622519358001809657758023191048447469603730884530958323842820637074562655538977205800187818121523995969725132354269292834637180424647642336501598574591545134649035704054098037971941833728859464140929094038268532050653629422436880233459745156664759391175246720145031562955265023165186819933153874403028757725307425694229756689203345092340820207861280896408392523903871714918926869623417734475912623907986933273774473227641390188072354471654942564161861360539936954279587786203970477197945780545496709518165401345775007950155801376214779172118666951495624624104408494804678868235910770940877865456661459463013366293709819036813678610829712173413080294647191894257462639853737947551663389416441718594042496415239534288907614075072119682460454052597479647130723738565321574168776393633941078890694793050736762789940856241190312466165299272524203947484667377762335754365092338074892174762375946687470103465159379545476004858556100552692672132915285524548641771618229178894084151607179294933668815838673384676278354988628506025107736750726921737515007457991423127767986137805197296801360401705091594735713775966681244139282810137905407833448562815602239135824617137071640079320053747973280824223343887092574185519445889371836808709048959277886881736730879702348360010515451908779281717266772070355859614421890391092897178950886263320411709104770858298822116199747810191693949773127954026783989940569904931324027440053171707826402147050275576891654554664300206167043060852777625350111485953520918419357693543682233427830411283700968569588192725085286901081519681613148557511977579181206457223992542005048164885827758208957206251183276078393687651695030549927800172925018747697757886125770751002028563709837538298025447924254893474743559989701680136368154268278836997566565081103262676934376735664519201921886146578385033261965324274629411118067486423342603384861882515153415246868932163377319448429973300503951406400331664255796326855083088437714334202949146462257393278777168797675224438247761021954171124909034537265905839875463191609480284410354525246406267123792705133257156072170800555993481036181524623530990719711431669238177066984143833614663156851345980607221464215494541582522456135765517523308210900219223130031331117298164773198400379975729359129238977910043975969681188446944221166390165572500766848023899333624517081426845806392464453889679840048258612134519098399040135124159090095633805452874976252894931004035694640300334888303487974820779031762274034811608224516858105057351217944119580974895463520347212290705594348429451438695137034625443722498600766411815893650295020796953853665644227753340949296511106091681534117177227707851792053518999952646750584438722670200481113308855707426890412570102256821122804984799460402061372011110432671015302779146222651070831223612101291335009246474956658069631805126770806519810295415597578769326671869298740222096410213589852481135828479289993868853956114777512583429860148712359151148965341351981478688319882713048079985418798502788045961359619951070838871949830010778927727676201992010991274683494886704294056471861230153882796345077552549400960562279264654754605753368882653253822935712365248071040909846749607805273146520998351682025761154830274073230354983354305476462314163519427562333659624867536698667219706143626047618244555505905209137179130980204981196227182092457275998269891367549493196735783403828181881627081423647450152433065947475845387461971667697873262753834995105737586013330474560928563436081098353659250168519521544057696657402353678657673084656660891975028909862513793925253638218933396956741627472858838774071208258334051314638817003214494864804841437160794643273828169669703588928312312080376255464398089321986719603593152526739762392080976796299696889429178054846166280908543469499917831454717036504351387466412159949249194226936042111506907750762351663272402539666506700446830112033591537568980526189315336519768268269337167415017595701277445573718978226736456541483572715638993228173860920322671372842985925861488720178958821690095361926141653414357794195952841227624211685733030594647493369859605708782457738433040282043509861450118047677286166802787863216783833529381889899759834763697016251682965920602748516104292597167076009519685494246749163914960112153973688241565743622937369218781823427706370169606416683544363499393577779020781131999452446198232740129227532744684759384296085693843360871056316697466985627089817323608987125838117002800210105668908196832882937489686344469660555622416220634661093531770962539759735815569874382770204247876725545102725025476481557309621934458701983693677003783022749367292731949671875892620809853963097078138118414045802734110858426351855750812058349398436097894667620268996395285238885834467327372812197730653722723747189111650259918328838826355004183910017732503204002212804425226858679737577234509795722150487918761492703490888967196208281804722071841640868651711725735743496944804793805117989535828251052424237102281881569655402824374023788479538163506562907874820960067926901747624035238660309091134924369305884072250306111182988180335155992293283200224968018239592843340746583426413696693898772236782040579190596429579608420533666740118883775936719773984381833422024008367980249460195679944531765734970603276786567182968622787101926150064531732398129501056126928287003112984391798609584161713141897597707753005497087615485481998658566053646842814391188610965057217682295257649743484303283801921518224833379814890088840934656793242685347799261087982617202348695749338633623246496940505454864767909722967891900230377654110208458383580566199482069757916577808884954250382984425058880890487162939294131768576147013785906332342057933644324921006870263339255961542242510132051070901501164184409461646798953653048440524573027719599145482027363104431562132138040657875935929195885847406856557547926472527025509384592872090698620464311520888443102984269335196727988978887519530268394820010222345973436991348596460003574478846189245034247870113801821465251574342698292034451655686202082384459209947399696258854631899749675956259535312594070054210359528040290101198829575004046265756512752962314822487221484872643158561944000608666548611961959860128738361269309771402457385104096376284293656624677777731329360251994770703758244330205948485249651833994036580450342591524522757699056939178092562143697297458228944780405239358031579466568288743524074776173896339165817527821118486137558500337464701836589202013343616444272810877363631938422924706901360369131519249702397406169355440971933706829528753045180101937707083175040406787788574221888764162415282875492879943019555732991681494459682837665607643092111102937008684736716711876895727832937640850493749423111449890695407086334061355661673120853192916552177220675377497366356403200902217130718937880703362813359686112498318974971643906598537684946227971647428126739807436951192164167779778554561420165189894397152148489838698904651427680806864609334196349945401480254882755718280632626175006428959182751855574964496512263610112280245097171086753453073582814693592451554492179681823996206095756126561566259512084928814476020641920345659216898254710326369257403047099655754447001587019118175052302186958579456058625623338319483849503890801287292550772824531957515988138657105073268550529232457597188281691642398583197474836552865018894456165968539174767135249717354964967532576689064861133242921825080217538521393994854159534676007735885536251609213043174773465738612911545456771911366517819286014814349746157364073401479399805870313005041298116947695064594538804338554345497805909711845998307069545658832998334668527028019848188200833357382575713789177000299914438578049083941152143585509349389811955568365580797320514490992281031437195081146451481242352540744259079771457869149858213527443031445090291067959588328953153696690840120423551775073642502307247695516450249235600647047085312874775153369790053525697570144728863443700639988811557117707308143135237634913265709754489785482783496128950844557960461920958446378452959857896037474745893017245644980844303857595413578586418566336518546175539768094804011246417543026039131613123395894824997829396207250766384095637088763591389652257034079921391677785126913038212020516510651547658280768728676115020757756810782842126386948782940260351836920769833652110074822203789985470440059859328309048044093220929436434937653338770070973159302035102784936327508893090253711731523622601477182806607009649607585146371944786382606575845809090488555239858655902123533336867594477244839673948056214157208064788815232562208890511176982561707433100480369323645071118086982441258736917517714972863592033741817329719145304669168343401226530766013311141664587286223912225054350843072991914966082507954241401596908376639779775884501459714610863614436499252096343399556343776160983236409897781926375867868885058324716545348810918715568919369747619095542350160102727899322464918946832393673953522553555122017890823156624896852141198743151632779144661764493634228897293064983972846607710088800870053054517286331783927147774429576398966346312826879205586843673188177755021814737291120255457801071714520788936123544145151916632960709760385912885966441540815528874311852092013354289577900113922697179273365479524141790690751366077567919304117787083440219119954715489441505997379182603503171608149922234079938578397157539215583919794764973353314841030088824377385888592278080213163316011407996633301981540986149832334515242243282272181214599161978628504945158328745706197188071714581007122109847831433432081477364020761982211650401578289958540170568553356916561309925237733287146158848794042953051952287583752103274255852933828513386700300613303664351842427300187937404005571388817354343069979006952812186668195823268932636845619731878183720148707528050085872639193599098906400951476240052618181535123466564660973028422186748709310349735467621245074272648522886256128493843359707480169963496957729964905885202224736269744159712891635831898692850369785987927988131821356675770027572039833384153358428986899912180997895602461160332932847066368663431544349965980106479394630561271990035727295309084985420543081600687205565639048093578716822533675007196252267878788768563910571089559525099779052130701509009348098383894266078881886019398890739948515071101490735438439144974651588070287449402657778121373777386767201362362645985989170231049015504970756274397006881198230266991194795509267325061117725695705729048887693451867045422210542926085065390261195737230480321186303550780915605554470847480212546373680612302598434445809980753254611995005679266570418820524863165775492472246745348245901437170259614209149375290319172925713271584898437325618836801150660950568580723107544977260229592621054761478205530459777224839203945135395642471838051043785316726941077750829167284020779734861014496604398113695287088426485585064681031151752837314930350988049255264969916500256508709330080048497767544113101357253542090265235610851720823605340156813351391038930149692789374370732090975216768770726340702856477530328748979896116388652698252234328223416546034308660353881774515475565067230148017358880888307197655873491498368314343072194555682696608260376434121244617979792430933221508615377093131949338523695920666972224352331717988740459643130207723044180105613914993034687533974820712480071022068641404971199852976046163211642390343543798302246075264135728912767876102437124485521553647434656518076324569121947661797266149909006772419254726729589420406142738057382504371706760415726400880472656535958184831190644319555809380930733454298039864279340408549328046155018280865073360829661288392508262185874947037353716139389988909290641117333060547554981347601397800595122130698985694795922158204446945599892057687889175935658790549240320776242186529425553648354558252885006583087365234604921929338136640520226987391818391585167112813339407236606773706785844983988197788319862957189529874578884107994777872726391587288541122861962149039043656292374415715188309189521592130873467120887115091382406836471757305045964466568559236589257953566200331837401969779895565919708655932273742656962885771692014892187573051092301860422472716984768348029773093295293504903013845664351145119381523615012167626417064698198424550939249353969574254323042452572637983177460694747517249577535654544868098564996955210625623242827198870250853975037625295774865447407843543384515957006171983119834393736507680064954563862627771181817165821505189468825961382546450583756384953657550888785315337911803547464636894268223621095838117982514103869732876376246578461109951089403739024029900510750104130330654402304907905632415425376817775453537327938788181590934152142219298188131550125012500532753725434617490315996760019377880120133157322638463128567494636840026789175127654077926109202851086585802467266123165484634234057705723008738642398086798677188339509980352972788331824138606431391288118616306419860897360012781926332741888531414292539198653418233480989207757243142352216231300551990625980056316083563631819504478788827186763539099597827143195541267888927395926468723054754774217064891611287821812156079234559900691718274051417706299897645344307613415727328329793423630939129384057119778274185143334961679556646824931739867445253379300100210453140519142121956303103412516269291457554091403062637565575190794702955016280114707316346744626838738910415108942213541690507234932394675947297580842497079810101046166077177058830343831216035721510526238434347844592007761162800042605099459211664721823089808491363744677839003721214009164306785358437695249957453338565434521265924325743560127893461377431253784564528365192005233425213088310950230874150812645918322940928150818257958291217945750451663336670928164892209054848270357334536538470911517614734511425219963020899247005950572836868460160206027903308321821429335252963898457150780731657317756780833900749258075769783152204791935877151892976148226816954548916970172878947442955226472386512853050244234585393756704645177577020063187431809854771856849051808992278883294854764525631738090514908676328015258777699623927041525870760279272120827490792973557714636004287451630420152667938999815299507539785375544549222676559118445458477566224460990528469361483799539774290567744641727272904660505378970326745772739387262176277965214207334895122990077667605523004262698621067271893191294484981270496897016203181111052619573622830121491872295682160574713285045610328473226816652096683805701348902947365083741206827295976536370057315396042085328173769784519570988473375019379840437596185728594184060351591136610380525965944866659099577846213141417108375137481197423146975202209661452355675097539885244053102107290541442729829802502661910774792821682550245744229599728555235454996924624891474207843543969921904327573386807730249601231350160040155220792183923712049776762907498562142010304404458290290439016702084799440409209322986692837897667554013285022879436434316555661833105470293164334459818000668455380920455644764973914342178907304164870643440955753606618572986314553841755319460615701192709191491988077676692242683502850208629224918321972635907910501319264359785858979099386148421062928202845996003744206992045924067432076749474363613307766338481305287502933511964227926011936752506952031216192097940966221392942372448911657604689960400314819537943081800814126223367995840251143278821751304225681037930696802566745605970982787461171988869603984847139108059989437257847396606256533018858393248825625542844773491181319568905954233727844052474810261540547076845250596473682320647007726298722351555678541041483938251359494141967509515937454113099678509552085958506099373679007459153912593182313483104306890160950972314527961769294746498954033979185461007041845282746038297936382529705686238768799921472354112727572365730110968876258904802516450762400911287930735571448328847394559406777377764537993628081168796258614663183330927021797017606592196594029815102223760523786281075630273692655409523716612827853876221974260821122282388872880461241650928708602938572301682079164896081112546258923403577296109753395522146150989444230199077382803330592880749738469803194422125865143743669019269033351530459615816390094916519692923342321682774441118279706199055355066735783452500473981740156145004325845910853267082747291705794523655906141540729752276013774600219455368630484976955940239290843369779456869544521296627213295206187589326325445479576421341067861269671383134859196294339415644534298982465360769261419421537281859193799941765906187550883958588886329190603070152845059242846004908979263594317517285675973344702280298786810060903106360713908255738591661002500651520532665778243130424608181731271284909476550205264836856757313290895298336825208214391466676009231572642318768516801219104717990150474861443864882024283985761847234849760154949148914930556376622688725887768262813700647015435047613617103525871890458248269568303066741938382621861524926912445028435187789081229336776931108012468281166517710468372934178556698226303068503303677227842724856128351689604873444652294822130797135132445774630565035926859832988291658064822021320817192787649103139923140559316348293757080592892689048231350431608572124625020028710571170182354223785533537522789136875520861631250060857391275335875267215378265638913669936672966025785319125535616218130499003280271245414135513524535472751100759140407919249050741589357134624211902966633418551584155960522681625462898206387810645339472865750108805245429517589458984049735550384121950320155038734986028057353260317675078529838159468477841114280387399502824259657406101447770569686542460338651187743691017420653919268521852232466413729132778779149597444390634126071572528505854804526072444659953294643410513844045132987255910979432506183618417922632416714631477798498237967589025737345823041920269320480078219597118157134731843004070216989423990336137673661813777921923528187390257607356753467761564453441355451532771853898164324333246797750822966193784522668974756197922999343824765769892706545452234237434486322786094810095641198369398863551262528482392924876425392195131459091884361078102060308840324991503865829288397655052027143499929530088524242401015743553856179806038315817493149784051411015746547728806972926051144808453758122628834577194400492582187183683338876389989784471945540176325354793750160587692095098692573276850963713044193368538474338078086752951620877918925494419833158519321489595072592853296358475431087206737484098135982467282860792842635582232627330372430799346929155699649307690977446351992957874958128391417474952869931153492483921346570906437981688373871879998216993833323239548575462624913844687467731910445674629898190296734663491609898894422704893013891767078051978678810394530821584417369671555585765776198299599720931018919857479758143426521550728368996782258583823186958590636922147664074637930845374804899165685326476859953987065230347422024472467706707826779620016050045939021805125994206552397043217463616906048332590112184752467817525200661906021699079889930145538704120251900060213560055223668611190673016829167368007303532395237282405580695527549581080802745713640613636666676533329846731459485390189486973777678213998785065298881046982066783902588946349590243888934694381968239006411454423971941716071043469211586852292578118109651324894822394865789024886444525774598376560102971766442602608150725547723354110253378730345651255536772733611671363364335117058262612758600206933653716355325890122870819959767762906936451755065236448318714702016788614732818516859926325422684565559878933632381556320474996579081876703022693226151261288677121778848101500120649967455445293781470291376261577172547262704305779070215726035352321203306527553293423939928080164291667130352357685410913578915872414434893684429930420257488383990928686075295121925438058353219781882166985220460363077207565011485893674283954234080147842244125778534785789128631486340158160409396654773640966050427476716529850525736568964628090564171386615879476094579872120599337945466725097551009923942548406903733661181578057055391181444011323092906166297798300532298657249594107262295602293305959647231888435706687254826530585758717555736612765325553329056420411382403883891040107755000555437335772958423176945501761610290712201364976294764686039877686483463369831936244742697401436449232681939019019614226633114959594069908310037507141062074155097128238595484936401177484198472373705045069502478451326097492167141124576547092866704510269088730007160791396838843218009018639962590440739631759819948684968188772060647069996640868858447391440945297744873917423281201083965349131248984602878651000737750115738568006546081616232042326164674699733917050936657223567555941692473989325999696085233791984908850590499615774930247158968742185539486958251228013486390210046054658610294050629995053574580238566519538128120352135855433272156763490482217845554493453335318572001194397427444862159654063019506541862184686125978482997866090953782734988812349510453912628228101966237181292148376334783208448495092284216151481191495637582227860990625383462050125220054282128675760244189331149926750884648862187322137199239453793302444226228633471504571110816162513822045890560182105322141152872413053470151978601811486086261228023364110707943470313723433570974021206370601069550736509857544981402638754182294973003665648521400468620068489142931326066206865008697020303287050777709895188718617422759791925104867997388939843848081139392205946922453646508394256079220838795761599449808033924667189636908435728994686101442151753812765265373118894596020424842499774065278214593333967740185926425709329562725912084703874971474762925779016988354420680804118909519284365194729647839671258900655345845876425662081295009079426011556071900861944067264063818671670986020807585100545092155812184455656022026423544706486443799666398808783085351383120745413715026588266521924135493707869287291334120569165284015859417865660633787729423556952449427968270410803805366923907766048022547947511040487583844828241097735261453071839341209920765565341733932935924789030628069893799612741436570718326521944771620921401496317087631191801710429269302675092506706303228636829238021499895726862030101392996162168082541626875906910936960715784420187967537752250709495822272809942901975944250886709927135222637108559217746791736630533799657392424375013139013544632408710291286865134079859390086375382768459531859865905493257942245305196207185807941032136047959519605543634005037509701699171522685513256058514656412095805594932807631067836155594557454612480912766341714081322414922640316124045955947707422074698610052593354787411713629190800507715784655579336453411024575951514310872027521530201446537624257029036317955494387059296939431766145918364926487353181147039491883223705252416163841655287466094199272040663112073700353207961541595231508363806416637470549408734406525825146007331108355184500671324821668420402307701615357440887340853600544031343076503989110511127971893577244430412038173830246658941220815434495464247718058502286177802533549038195791304820513685276481535797599115099854159343362620216509783001948032623150458254077553630664677573415519433781222332064926594166286984204515013150285141283736981412268235395834161478986868382172959250566727064553246445711351102049942821635448888924429639453691538438994510199971955403088226879813198177612977379322494385946107728823230113166959886924149096742109265701659960587970030552943887380528409019068238925770420862449705294046051174974545245008364126960900568048331369972510270702596474107512463965862389385384475868851844084652084093007509800733210486518919267530311148526556059951431820093886288055875943601770374812814989234119829525914223026174159671099411242704183761696651057495066284851373593431592662075690786258590116189219273677626880349125069426662699675229302221617684723368236921832994489935317116546740012612182301571930350096058469566850683488730261608918431932506227526344127977390294500857823892024450693650467629892742963069766158568062984612079739616989569009202014100888436366910179052143609466964190677275333035917182728867445008534293574775458220126763555412129121840480544125622305922797146255404297789116318032001854224157355616637253947071796333582774213339826884327182211071433261129178824700427406992677258686235028580188994238232582299548721714395914301273241405678624176479707934010115483945132135998416449847707907554649959841658755390603664185641109057071519168181202293825208040715048216317287550690886061416574356542500638861319512393183110391534536388507944531186364026983767468635563567073862643264915244747135753192133611734416740499988091720722119246180360433385923951414981057418407906936360957040088486993327496427606494136502418736099782965502150335873426974394387605984072825865814939047319539582133849450364220114616624877441671125694969141260307695473810089398693039193559035373456617922047354199236379533949750513031661291213363678582543326121963346235164700624997629703274510514636096916273381567540893992736718193221089504892429778231091707228264935325189409370091217027062703741687113533136104373738586605657539857246474007189518304274734380179675896409259580199263919452923399843710635568823988126113661225238580497018296301128479365516432670096603669196776705723554698083334467114928211198392069779025147193792792442715590471178397117502223430330572480925901409419362797503047367068226642977888927392303090524324610113160467997915737216321508722600650272961118775788775863042173573036831017236971872464902031083415284067274941296172495945804134279116801115205974696558184232612265124845358260011353207053423248005989028721557398429390918585717940889570095234627621799387692197211722665523042252565754937828897907023817108321716570186033492223797353324716947744077002392798100749918760141786992037653262634346887338579671771810639049399463375791491790124257828851765141130033949250817938941734479560576802892076610629369030600328094442461695276512982851597613388311772204523550534516736522061772836344131213549686748973415288162421490139393183753656490490105348355226191915454317034185318190073718586782949648313368536719529420062817954011172800565136492319796125015613953281134472210989287088333155827677624997548008625131615651246247135537973708799407006994410503294512943136971686220670574186125956430388500006265524277481592223768395264365802202016763751737553368598761962494777755516119271386946262680903473399455257926741166466117979195040379337377552337900141084876663799549092412677622940117798768474424493236434061838594538362261278792553112398540397059227083219163026144874102031885379699740331109475853530465702944386738986056291811285949326011916310833927676045896184780670687085871374285523278378967046517251342145574113084212874861179168319122860151721348628343626772594616278219327841545057640946777251330867991789557104998740119118555161033314010828081808846010214178100879436446550409799958378172929647662154102727272668576014976279016891934427140936891077800568529739554753441903000263089549276749246356060237134561627913641340561813949383703561255255356052136153503672154560686009633319522054487803481510783011234904275021488859659718519168811342792959747112543271181084348417329155961821556406150012137296480152106265416040005475855701675198401578487216037204945666391231224838758331498892031253743375952822520421388833263132155986967142028526402305118610109790740434995129406471757621317666511923649098244992594438150537756999723528864111547531389551844199146560015704233138820127229999847115649378857272407945984272063928912806980491459241637507323893051839875222919162000747463309652671455554624389228541606641725505328855139678644006410289719804688645037104675900679638064496742703869488661400515090773432762038105853304769251330088977361886060147449629831218867654085154232070149373003985454236007195248683606718952551778234774399883391921708178127904734653644544269087920296497122113424202739956999094115092761258636352278664680938178385281750764517656779785705648755016319955950443615029364799240413189666723426516248453434668096965267468219477572800036185495865454237533180496857413546422364360581690882333127954839857300308631464249814311176069447486111491524561978308494227258736279856249754619059776510998387305709208473742140073401171191377400183968906456611336285784161953580706960418530038449782094027957771358368313724067525768787657078448312400018798708510097697210168610645623054348938901021000663472811054442720652707187787759330438269504882712557993097564991557352082809604083756729798809818801906655579102372144476084015724420978687366449745570962316397763572755320266802662739104052194173097557747476854864837403483697224700353540029548863306158166013429754866584248783455211297366300181419913749663996874776392713068769306648346080944188892328642607128991047217851865290711461138829573608327450479356429515790411670397384337407533471187849793282649450179008627651171342414107618979966894200435770932179884726823328156814514414454024637008865264403407734702897399265004332419611752734055609906296678675855098908874510269260380339599874677225182088176616154007593786388419983219088127646293155130125465300420428920473289919479347159356146021527472892637181819519576620095502621177655902589494631723749596955151954387920531706292194128294952820924391357901619606378378730781118075263445877316801479945067657703791748216516423619035363735366239525393883499094420731076599921742033694657827629020127446374096495458726159729533347054472697862092938370088846660000332305257752437607854256933782579136304721087411410241517283493996841499039511935659068029439959816792785889421029882676138000761914629935868791776443278066591717230709173551596455417569494738559650758802687153784152564458657012940649573519726680839721346622980411668016246982389316412295218117496042668639563443284403486417838120474465573667995458864496182499221468000426892065428272410139757507322599406335294820353775870722105329214379713974695792244879096732970269994537598224463610699264594659407801814643135113640548035141927802888385383703111451165333484431109595197337099797162491465196257544844952526995507615902710601180122724773000374249025012917009990916472224094365280303937796887586495296212971740920189980034147191654983591432271124606314777338415582505259490711081365966666267865431456420480679558858440488896124850155090979454980657515169654074167455055971259254267758876109371196441731568310530108979727069072642262177845228459638333976340378947060123829474032775057787743527124548969320372995797446202377963392131474113741517936987337483265772046233900041407452377607331901657057541922570776145637585526091178281330330249608429304622592979661704217072285861926858093721533723318335242969092434276733513094281211888467010829791409077398604661778509121189552856298772809164201768429600270641007900820547401487740108059696670592274019562805816213358223112226108217033531267535771316661060109919871669559953836619977460589002909114476356238985691761157517996133451410793526441054214041473609572068929588266844322377913019379517371078370092083109823269936347288141130689227885818448325026710412159170268407298701000422450438909919416523860293687337454209754972804306380109278454073802304138103249790614379795510177811749384916981504945378697193975091581028302746467325915918830568619069056817846763908961686627469299255460656811550761077908874344983826082525624688534897546144583133544482922037674992777763941420813239494211201240724097090769972041592897762590560541549114622356822767152886551918754514793003716445684009498127519204827244530385043943355690206445863776418864707800988237778150925321127113921305081237347554610991652364090102680419163514531104605823556122371052009056035358088043775898847047112511061058882129650096179465261235062188446192648151473575946717902473655719341545122659143028010628761712085451109433471021653499800788185435209670535947089194224699488305433634452208934794103922348421154615276624679664544561742285261631971810150204543919646727879609523057651369743424949119421509516013741927531485593044260331493921639892119423037743934147632857890691225349076078159617832873947099250753356688110937657561103908405001261993919346803689765659798980951701969236408423855309965259622897951211441430646444112198075551051430517489765615571445718251977284695077373567903514783962029731414869625458129455877449535821975127721458593727302798398610210706201496214213136176318122066561293460855668864094803392860884869365330382830720565726604673479415119852504655226070709859771603799087237368971506608985480233836177905866863926409427802269814280740026640084212529721174937233793211818607920025673428461688196781120149877292759024947325109201712425273694392030128080219228610262261206214553102305522876238383600767896460634956878517032143052278221874323672968168487880592451368803063355621888822603602821630923377060115995952944193464456730656413711177619763871381906146514452238029195151446900665474220019852912105805154927283079238249132064499476145160694814616714739310284395230552759157638064055107681355215582305278821486067236704913770596395543307464128434884528853134513317895333823283373855812558919335806751964240736196664096122545696373194765523427958979705802842920511453428339587111412057808275820533987419923898193181821831908843265634880469066322501219372465049521229437598443121657462849685598753679974436915190585322751086701525241056605519401796647925606037901575504311558552493592866008966645240050910887658332194082066972692670148422286155199270532585256133369224908087221888349854535894362067058915000664361064448088804691139375388224172478135439989625060262110986525855928030557649295828960284186114266336982651083639593212013684935433537628999807404316659510259334547528151065919440488885621969560988839606507430887784797592110885009910385809757295313295812265652863491613256091269030512814076586495777305966548362494094542556997808712708193668408968562556535710364167509448554228729066923964303083315141827157370949655876335353194915248738199945903633492687159753379177233421848542567688741179040227786211983929914141028440077284388572575071097839445736627836991000747371856125192656312935615487903462112971654990391828488278073990576092578647297441251635998440901114856484952578307514461304064296866277702254954286210208738034835431364765490635028691074730437881192739856805839538346809779760144215121576280025677554693243394101799706758141363229968703711724712120140679877775739272789743910990336829254867352980987212255243098415171916860191154494954528361905421105788077799144476883347913675412523342644486367702779635013283192032220633142873583990504544208840973108809978159330185140884406401946185363133944763784330735453766705201466203938991751153224428197607688524065194136082122351795128636271676112243820246053766363401125459559630578350244201251908257874889964445805563511597859877556872473486816635369481660120954415985333940531216808599025800406774926530164008605405262552182108881718319469131421335599919286208735368341528341139427065893561355272580188583207684261490291821414906064670223722740179488122840246880266746698451723166148659631752465562061512583332363734130366110702353245135117735684816807191460802053928679943553366281095164817472023815883746083562758609459341551312534143857254255737248822278564369059632125828299631870365302466136226261858281092765650827457198799665574776034779869671156955057535485756078180980891216893960176481237059641231746599478640995797832201100888626281729198525570758556998163067859351311241488781838758343320163474788685498702690474062255391594442729798274479811704756646320530726869135075437566252129218688126604436315693115740930133630338345896634036094499088163672504237301421593192995306950999137804390674866444732476359535824217458557578862065735347040836352764065390466683191370031365086478024747225932084572536588982554602428362416686505733335531617083922865787547001070347490633218714363328549520599377698657290813491400627033564520385193838297809599995881024392363886479925737043262946677750449303150952554618081385549210735478375334642051322617740293929361308025174913679054493131091219145060671149900358265166080478120691034637142522374993848709186288629290810918659488643361975977431091746944103573958289411051754842660468074503781088092098567838832348736025900315735008121053267194281376745357744703227916714515276122823256547115947340621705090331611575607470591063675024650581606107944740535119562739314399761319278052754385957111963600532019977161708492409420740274541491051230359535486215408245721387501558847739708094321585782418150693143572533465251269986127109118276692038696665441971256897022848281609313534570806667563097984751858249930361408762230336696216903615788369967401481920883766532896098642482228319683987998752176391661127637575282499842351443314743791693285383800583524203161908839489047171739328340486728680075696626161656546445226122100139041694599159382274577134321222208667169252361896609298392889391511641656481057420765435340882860925281079465862803765229027581266624575732353469172930144078162585320403871411140266193421591252693157533449002441173713973848579191386106371220888150207925867721679908760933822593925643029111565692136192928939574142482915810743186244529871836018924081012695607031955079305556249567805682210035064275626658629518255155971795924378593722080773044831778619382807116154507465774633711046718691150120719866749507390228372903765386323522866711021217574708378768457627905844495147058383507694012947267664932238297852413598095864920122903745545462256799790509000963922033816243784005804927644803013198222360080801323831831738731656486099074955522534084320638519229057543616024908643300919525572130479332788208034020735568370676352552655639403417857201025434831540897791375722760456113590453130940669175859204708612156293704023270786645862133800218107738050076546396176328703987283617879191767257511206866688102150154683691056533717901184234811427017801618385429354837929712398761647976892682184350456540298210679223471473267397563155740542806459178097473257929912206017328293338764393060498119435324932545837716711548632769033302367800551213024448329235329337865385928895201767208422191516905054866785862636416961279794066733671249990297486469150645270459535708558874679189747790919974308876726353590980998012781358590685857777067268494057075096618976698296723461309712661167365697696592995129476870689805586401590067255273160508904706632004069800507715181602385926220484755153045879564894972001774564943488468399871296584965876188984440608915978530227746307652611324202196750257866931759605664892749415157632909774407222679272976021841050083477201534359977637275133780750921825056088164719926027718793091616267627654851092131814710768544336977608287361840209273453332943778678431284933509811043146158723108502394986081966517094247907289342455847597291464507445848115671915350182429193587690565027243377210506576485272239218761836426338277753730411018635962050224630238357560420189429755139393885760088858619229558994384909456869094061205134122868683459039164168461969249378474489916386595759006221523478973236026343165744326546562719663561246196240703736264484193721224394628818575813164296534737982433962674601207168206583895337613271533328541435277610519702318119892012796396962397040502551780194575497402210822312716724540519799094571266874672750230597987543279350155711987230546455467726988149693649145328920958517913676199386665166938902719147365209024344638224829428581663689628835503748068035887756943388043178290270091593793856938257812545685379881908847903394486480819518959426131257386919923495157975566001478353076660941548492519838174823180533026216623041012090088856359286783451876567448158071653598249191139823028667173897172968923701206307574315522285788207191226349050488231005791590144669177034894760415981702320193906855689107120146923441776396889722290190504807636986056353171595092427614446084115301988068780841065340383883490533144698638753354072069013168282085314251672456180495759688618740171530172558694588759357071759092661506097935046242393850854253268164734880463535809061374917007905771270578779912187946089202511448523282020925770396804723241217937254371384165392976268007229992201376793419296056705992085315476103943874864163165132047687010337344426928394963804793002565543628030184017089139096803328884491966574637888822834532128212978180307096002093707523335709399414718245729466607281666461669663023781304882761712376472160682554974478152997395215362272996060012951305555288482839073229996994125632216106023924509052335092563911853910574305584149399931999725804215286174295735869054694557270045874077691053437081020981280750053709367308542246401865666594295164220264724019286384983115803023038584146221422637168933803315133619640732934170463577098453873425305382887802317782604939323697768328635400548242157525547581965063965288303064153748733405671070770816658659582145698541523569432644209078881136030311550232874135178520220322248182351198481377557348920463678405941565454309967992240708700161171082274792713295983336250626319395882703485221608699582113049818682751931903019422424228589207748563679677142757615862017674601033323606885699881170941139983119720260016766014054753013976206119079476290469934400104552692947380140740975453881484132586340745722808784069567871344798019910726662205089460439863634141420092130399520236797606426626182250753118153509796564658082101070913612476246104654810643156532696071617382003313037155352791359783749137964224428052001722141418971365243603922200772468388010873102365140096630617469923755211962097922287272738446197463549806707961270999353918723804198375660166433851160445319599787405235262657061084695511047287713936572126781343607666127315134340374372442056688523674086148103075060867618318311033600133898849295113954507147706966932376335256394148414813823355862601648563576345693658071180396586139001066822002642813804018548984827400319097076606984112257162177432361250352915497314906029086458973767132499273761301908755556086568140463861517700901057494234252179210501113747272383423768287325422444785717991281089994764741908302907666007796934888455613310201600616548594103685389213107935638296666704504122930221973162928423994770641825554916902369891857085143866114494614281316385201544153763003840481869798528272520935872745457270723539882206804223377809927432856948707187755932375193322059113369856799927179037455646911559079117868860037667284379321337770096147264566313774726851373865273136909581286993439884113392219230287550288582236707490291322676979852043152662311017481583597613490246938895261390982671523684251561629100202323137778268427952411900073176401241519558864355982037852471359007321310764206080008199453771601321812977678309720635938526310447060553642258586992164011685614672158462867652692632278488548414135886485647894098075198312590307147716637241083775551926836463814668330600244097282056147885640398202025827765712060740791232788265148106780698407426051949540887206221295933692853143465551965781046943992768018444884365947036870650831128375344748633063400801334770124905751149595318116117349686518640888240881768513917978415183200859943371733532357962363429825708253086446241754322266851341383962099721042854187807486858744583359530241876963970830659203857025612020257610212746311577563305855856876220087605659144522652709590441038450699142694784783801110530344827479760001238478030828628309547539510428271054864397792986702663640791106367817802819942181346089953648473493585114655979514784416057075881365183645301914187860578900629294149232795353557628617945630112598503243219929915587735070501993413546121714047521977421805310901016708312926702334320109878270540633174539046565157341853088063679339998910271345126703126593424648498104297084672249775604916551090767861213700088024263283478071274508141321269721242775506816845804791256274980145581211281711078401136139968841304297553626048951191159028204882235952634460105545835674239829046260324936907652190652738020008069988930400677100991012781153466553623672484739040945685943465509373153425667603750323350919551073257827977898272987992396897680245001668968340280947943878274081742661767526875721259906542184156362757105192664603250586515604573571742033196345890105785199140502794220510345712808356272228441517478796003830656609471326230206742631604271153424126867703590086634918400309893952969225422806429819528033710948381492033845282342880688975379623823351306293007386619704523121791297530369300491603216478761414922394663723005131383967418629530920557177331930719418161058137175938790705455544857950293981746879403573877040022459764250896852610882572177827629291054868388542829672625892776413515100149286948040616191197839527134177362220119963053568843455328748517696565519959459274148902938564470666015555035793738860601908534699167048882638397777355970898709066000785895616107590024404666568061988178463727543697885450829092067124157105142620370376634735350482683985820935292738213504178395055143688865325603138072523135641260243962343633183305312875983976960507176355913438873183383308381088590914942104397055731996154817121501182539378824095705630548808643160747530739233077302973307499227941343383091161150886463452528489509127225523967478850789042107138876674522156807819456147972790432616771982254954076600891277276790819013251925641907622190219313533954054739411995533382149929349726465136972442114386610082033666951066204148137339666354337882653888288379756043038493246711856683232599490646839377415789998444766229465767414138287502645825473012579167341304497116252923977426892667852833434384831138729706285595447577547608326489268851851521578917130477845192617265179061985303140591409370432466123243905548254844983588619496713412716498650264646577661906627925927081409140376050467913298188420766884830450317862986124818590001120778719752931654939785477142506473555672498664814144183102571611589636481867609973496375107928338192656080125717938811163825656773080570685185055421728884874360184118790137785141004357281289633000652923926650693623044542264497908674757522921536718220418984048192355898408192886243659328851759364186483630954172228434569431335829278987530632664354702303501160805603475044714503627347216468409843800371311571466269422451187880353772783240098534353517266382995215958789499825196855252161173365108255623215564832350439576163870629200319048535602831215139346761979751163321408846523717786750110652226233907444585481439085560358294406824141633160138600410867203692001898213430233055251822480679022851622970615583826705818924523103888527110112833963703329681089250751725980302020749234109762484158936160366465772944658055172004987360839920754663455820436865133327821913018452471385439738569032065871359803268421745137717984126101853647664237138794468217976754845759153383383230125075601275435073253852933089172795131319530255802309632091268893046895016140783323947248877101004547964681680820548210641198856936075472146841454497829605690408708106036819572792854722681149757896067093494928243876270670268573900073394301043871760330485683057932167814668007769465358732930730331781013517139709204829396494014995919264321921294591198802983721062168822651484515899307008412061276924257365804219184215636437296876910885451487570099099901223252049517497315982098501198315613031398478349196595757718357092227732914747746460347903050937591551392928230718394627076131696649907068175666560520965287975045416399347184510956318078103397744495592934961327954795739200894722446329450048265981183014260931598836627299045100874988541444462088250724121799845359382297580315966377509251334316599684256139267043754178166878875708966324888099158920994809646387294021549301787727084225067849188937894875275752129767855929612358111557248247604441032768019952634477990798558242579697863973562018657195953147678015849136419334364937270956024191772408606050022764840213225617315726731971145385163140640201921266596912623262521450016857768718986313794120685599021840627530368327661458982755274472976354896361721365021404346594867591901868715221849369006212859775546072963454521281214233816450099284655081713033331007959208331511584476770508608918535421117424608490421861463063269909492524294429797806439243599328233495805936661365928899117423046663420771942073685873070876649579357110725062461088775945760017997324995218402248247345731320623104839353544839176285880353022966215723156323286725989053350698512080678204112874063775302657475085947175312476960088483528355589175244798988637880982335782260970597929293661990724177329465958456002724739991660282196156556020209301708015247970032856026088240467577259640214255486269351809932896790681148113133360600897897529663243038080430778403356319960047859502519252346191318433791067947181998424340276613046487695995933224908139547721279526118898697874314087831162921678875426167524854240193091647954277142628986162566731418276321383019859983742066777353868797325315303645100107384741403608242395764326349578711189710142978890105038901966145846591923928896879940777643265730224360463877548035062831057347971597593389203065146611485002436856675680127632094556875289006092750110226284649433555210330106546663152609136045201341708857413887395942536331940773801432441692206822021067744111161154616239928591695310215165809725296580713692124339500000410931290057424857067856249980618491585471222171256913615321675575433571478897508153255408862810694458443555921775457309085458697365301603216382513106604485648318594456730394110916531810408605278268915524390695013766694710266197130459206438750344927952344291116841112383025558808611554262407876484442346992108321410553721822960790471840886067280612389799420722705932967491480624710828815484457015080032207518836912152494173790402514841644329182125473128231094972223383450672886528792441630094821951260996468575945812319629276846586270364080136575898755411294901115896849475215231890701056948585691530314406108953797147516997604233961495107867392231332136561215101173922412340028011188673612537335691996071863854379665449287419384856387034422106325864247597797289772187811681253306381828794158590547666897693965999009961583074179492281794063013717239684806363385239757984091608298329585643434575310197775449264915438676746261743680899747459829731688668265039573157830979440613437384193812934626237806593182903150982891712038536426592595831729142656431244196652600543256677821396664320335164099185981364806294679097807270776149879371539513923893693910048240463069562910395589444741567135140854797339195539292788829757768458440796288215416972390279230135050642406021302007550732880453197981076596414975877215341234815349481387328832205268349100601659508656187072248481308083068703854651720338232071701799017001528956616368291169758670254956512488277909023896249663869693227374436725091065099608313318904594762381314400644238262507640048213190658376472504930328070206824306647332886242291409868839392109058757507558146807036313181131572530992578118441206556046356463791968593521866047261523514288273095568504827964627375459672846452343775984068537178399855771251649988909052731614858116574878710910826536430858919044586413975153286955029931897787057479992650405902240103084033126629116826846659489475706200685779792996651192211984498289351855375279127900741932166177469575664769813353856693021400241426027495869494405791252065166412302324262327539425845616814362671653927843883424932576077209139559670043910843598031751948908280749919105233997290395643909930469321206477533915814017977429344639997618331764124432563263817057140447399158257565567839992201057420517263280431154757174327010497494190154348042445167841731768346216304205472908053711386248726163236328142455663924206946660691995903048843243071093126917504964072653596680289861238775442698070145516835880152514441620538711356947132395797780062580849335579530732030590474121634527557693997383723171064886167316560836494489976891518260996521185129173682803442860013642227556899478080112428156987346376833703132756184908017301999212799550616511775300715551410347099696058547504160092658721558101794456088326150198675742335093646729849907616895656685432575089513888193913997452551674017223447864437872033596937638159023395800142717020093831156220979430432370176667874781595892889609382167576070473492565365048942565209155907872927035780379151542384972513992419650747783703269165214818706903543049976614063756460251748120527947373513923544926433808856886702506119982300188984001132422718978768297182543982363737014916483309222428921461843270825371542699126400324462057593290242543059483048064081670466769133232420713844931770270909883585034171829187124266208696124744084868668967308671537257509069553694628150621192065047749264818016276256713529290308932973597746776103192128638505353094366697009017258292463527920421255248214512235801445260642805177565753592341832119621393663541870697821236558520059683009118459089593961878721633975380021114446922708841728090012566732374607881494956362854815882654990526453909692197169878046061091166297659613895884318798258074871638505401084313595667202604039308587581946121320452602154117631054213113530277884162006882604850678508300542442616709938098030089622465240192480477909388002381749555077723578621915745320011342714426023252537025717354706531460072906665607182548634608400647279075864945448798154568906350188379324214218090330299052421106008914078454640358893445190065761658631589414077437838095831267686257046025919830293406806500249336875412102617610684619933447022631587054115500677329982732635123222222157774121514741801166801862640376761797128323897436111947325624792694133300053276122794205706375523314396690145590190009893479200788795914656953214734472511701772938148152385604009724297041547473388279731238400568634103185991628176664257445326862051234240562949407419607509608033620267065572445291580818235540557594315673847597686271698205313065867664504649706924202839026473991075765088625785325324112045578596905150117961601455772507966232212398053562836693793913813338779796386144698736577481570350502679810360255710863614520986150897697098146517050770441120667916841268506408788613443991384722485285388441366453010793804746726072679439675500223109824752834377005474099852671061657589046302011390647758756033433459113621879580241393349839093212071888838586973584146289942717727156784835965845473242433623090210488618079034584909608327906789668155603610534334538963600152114142064296658352754246123856027673993813667987036538328290792270904349715511113566174529341274347875219812786517804925878492885490063491109402930254518733809240863300764565000311324285329313818833400276812169366650894605913539143953667915576593249418199968342142200762627316697962132258755130747437976480587874861929597226339292251507771567259441135759517827978300145916619155726724460880598660666163620124058659043041060029721455070313013943544753533497313653476899097114362790567335534883556100690427696958762933199633721197951722438971998397021388432757550605224942038374916639571809294132601573661779842405563867250278653053401696746500500096835197659801676842929188565163844826998704200991493483607387205339830219525139411183924825365844263038169124628043063692642814590208483104385731176321538778259476128964647740354174109591601255641041272215971815573571843321619569665626580110781162543980075544466010128597672641167243021349666246253028081886028559105781479963881008552853014987418185163502712993778981148424122245684062622823586050825426801531097999314484270830375697068831317811091871834499055514231862786668208233771999468946806751938727122102670687265414769973290474244503756684784661461265824530368732421049985720070635814023487449685748485577300747427785806495434903137095979222736705134379552103809564733556547403059059718288115846092871286562747929085245400711424070160273089471034332518275233598791242408547459890787950861623244992350931137019571751386047137953531608073394786629065529328364172230372771451116557131395258430530800343383350120543910468330050607666918218603375349026451894453910043962862054236372816228036465859454452057522658799839430094423210784445275391806168195060675198224887271555602580941183822791448280717500728297504441413777573193688567413475490997407927608195756219071411269628171646280955964922400343522852285805104201574230962388115612073371140424734964790920820783970645360870845691653032571390946788862355817080954065005722584191237890814512360454386516445725671294024381301290005867702388904065743649986197467067942293017940263785164266593732094690447922955202312558240162408575807483155156919772264696165283187924328875010303496500325081779072591992684687478249224327443639525468745099272168968163640648064489843166257768127530871957546833000996920323057772117012144414269854005198853725187002874276339786137881069479148954327817555769188808659290915999597828755422410591513675164512635684514302738270938321637075485275677509060630500697584493620936356246179288478265667123609105522538561561825081346299711711015553483192326365580729401964382814393649594572768274298553891484640858031584243876047733918156716319773237443721734139723666370202915016887065403433668327242869798333389959526270660480354115881017515881861550685857736523718369275915077342020785705057541982329525560606769987817758512468742368125259602409741020309347700411869047552161002750238933933497254606569948555617613626409312943698519339429483533778975322975631291930962160715023167702263313004821542697130287736960360997184730558206678216913493757883804363981981771334803749965281141546094684912600961972507926985999841849501368334515584763885357165061582381677465461522693047362009590084756586996428885634260776334716272634191025166773995153385212021114907440337171186020971484132391433919139580081338726741687725649543666261905786247407238454300535507953352433218980233986816762977427283593229711064883128265064089911685991406307202882461456228017254565482092452511220565504204057253779920198335501331168916990127715194230270102926690945314138740957174854466342445117005514526776030427105340758183763175854227565638687970007849638143205452687136150867030355840661455152867965612627530192583526322789314567819101993804730929271559246936486124228980364123650080784155958857876011685807142749725569526426933757559016781654387235577828554610068406935617799646950455703042077068286510802849486194970741024864932507736779843412030711740559627032730535295122678346877086814040622921954931393261884800591387825655069283958659428777756833668819915650840986879746643384804442853624298335116849309894077034900901142283631779108708786974080343196183625311868067533434235877070385255317051440018661938639634169015014495613656729221658180291282573638619874151938019379814953983689042214671461628687781840927236973716565654959959430212971938706758500312227588901469918275308559919673098817425364696561813476060011251615928761987545038496617773023749754079557771950646952169584576045808890435629479886178702507533271739323017294995785748496759510120786675296354570010572570901659188592450873558480549073085614725367301962183536175412073509782657467322786391897177104208721751449882119152379086929748487813210617394644807389086705811435875226735830389712611098541630349821623427233200242342440702971610318467164759210883519474928772697462011713954420498746195957697752243589800929899373893567914806563382412822785658718777799303537146491144526891814907785210497915463428278415055083451310613677129033326208035450150128228063336367809703218786784022942325794890155617850615683833018063438914293751762948175367401638856854719592638200722183507032864015795705494959285039612829718878246928188345551862086134675660467238979539309243677041838919863623789718066451366538525102342162849212976087075616522828019912098208339609125490130776296150142172484658307668073732743251264662649652549465939673343736545779639491122391681977451878147479133045025975439678300905270034571739002926174475105987086547097810722212554513570994321916270246384149118687884886547966259044412051010688920498091564543695302760338856081347758894195205938246990292211345416134299731371492021545014152280541433315091041439229720562934881371152600833034336287847964645337970358463682606223290901711407415877289334018362573208196517007349324757377489360624733321655991853134713297783003780177189151828033837304517199989360948402709851012819702933795690149252407302205045636368615294474147234475046407875572978565374421141150847572891550543612664535989682050543697345240356495393048879823880387097370521807007260071734429507097752557188089175544497097844126004271731234094393735356599411558573140870285585075911227904379827301408794998121684120153138572419288871889112351838742776731695773940549048296133946687561846424327682346763838936862370289484823254504054455586748412789101637819103319616136843592358823958182787993222053262364136247266160874199822752174541538834384728397364129170889874641222853283968936199449959764462021828249549096321944317476422015287477413636966082522237648800445739682116008713685863735622130667623178706866345434688721967483529183316481264888602493353721161047275910570572633856797056243697131291682007333318909806990296864538292727342502988546141590311765070116396427700003506309861584149300329949976880298438206958245648646013723322536968327209635119989439380159665506851351233138981422023405848055153354652701333706006934179623173119081501305407435192856819760273561332800962023485356174591250488807001547294581352014051081386014823484320873807074509781521370512793035506579962229594916486734628491000014335658317894977213279966013535041105168119243043854319254515282088429513418253225638294511485192696943643837913388649902814283208340035369103966569138946115760435003155153766766583966872909458323908013569925806439946438122933341689416350729011768296249501562532953459081088027758882667016007775434074551133286841668357022052073801330919001006919378639825539323927367899334940359762609423930875354759246379133526928235751862740187766417980861297427849739424079009499959191952721672958148425715680723556054890955208890424718961373097160146686779247197971078434257124983927412128552328075712857258505755608805049837918209469313764044330902824604592352689422813934556993041126164478193662830986386144691014372526982623709918026660724467016320113567887154397617057674020472587516943485779224628577603139670098754308599668556984969224538369368867234453336138551320215240293692208507615061517391036806344896277852362909775914250231935498523198713910424256255582183948036007474047676843182672802341150691271596097484211705038204611635054213028683222956047008992301210777589118491180155901213765561659504516959239668581761522172385889760963440061803917030908669113133631083419629597044505466462754196226461568854885410838503839588298468863025154565990043776869825647825771463105343887813017146813952652884974894317217945904328811244276053960421137090021635407812179193593121374333319083858165550529828327363556975308345169532448319360432368064714318991197736049328493763393410593630731116513929089607999680872205585144070801853424856922068797588785323639368316206204980938071358009871620873361726890864825731401177237398817800064999431189113350252903669845788539669285842682342674285415691291547814878192347330082675410918374567097516272221029440300580457383947192662974754956829323608152470316861207015326209852187516581672586750387044262124398182577527010898743133055729385029079093769516978300220093268368208920676761619562198418423109955972608207298489357692152807925809771061931369845476697500327896672139768326090717913251622987883058387395985442977100962267481941842900747382244750806328057385152286945836053805136946006701847746322112622415721860953852222696239248352141101067025631707623604756569788488886519079010642085027438442261483306060013551766416955427893830257813498280753520816313709242643961033560734330959184326770529040729398620309159601890082626136742194570429400144995501910879661626842700149564441057332726217101738376356274454009002243103619363202675910027746893143732735899943033160986175206145945398913859032563021961644460724020725729654397479648286753638388381401006047672966943230586466849810577528374064138309824080922541028952883484323138028804634845949631305623972839391947279054509635915040475148035144601483319801838332422644934812167223241261000179513483491786553547935313641585143632778505867569948083677114426655072066940098906848345598745632192755853374264819663576896872126723686111211505347581044664862423531836284652645538509239272568702036669966124918784334413836410241545550129400580380822523153991691398446030441770693776841344101894694136107479523235405437259895304516696826940281247402541898193385891750765590672221281685003138316714558859516618346784690329255522875118902334110352223459237632551889295816276611479303689970040493383935350499830820854383635994754430681657729902612699674234052996607332992237278551886902733814805287476961994250383486927100433445465707237623607610484222179877362959803489274536784637969475630470390388355154255535855382804719206503159641840920390828815318194309620115311708025634705849661532303014400714914516730581316726682125477015588628984942102151460870666456211105142189807145723957811130440079347387516963033364796933670532184824243290147954531058154897997273703638693090156145787952739508584429600743630672683932664837799963141596926469717544858540700043773725254383064380344763089854301576610979892671717722065887129965815449633564243405340467947423977938313508630103404056134829260320569789861240137627830024988246922203415280220473817807557010218344009494826218876004445521135216777913555571539855569927856013143980224738302117138139770326362581011972202362384541750357238786990705754002683855044661978459668822848187459727874455720945247438995711510748430208200036270795849460479219088949322795453688120280073362740101630119186190407226487036723923733819181627271941215626586660952943889689602915686604033877106082810597912620269489169632787176210137390902422808193652725335813602425511439671429890316876400746996784027844484791605552734015355342297312970536589327478749964294976448200561271370535430328889556125064275189293176256272799858498569317395002990589844591377020009976868053581535958643394885520523829930013578571887867381050029214193640371844387700199884639391815452858873031951378596559424363618151382317219874411208767707899015527643393860906039545292261797620590942709359293088283952008012264113540611105748932379575468987169987018148795599759615409578560827027681665318710696701147980451839094791727643985417466488516924135330451167041217388796212622594659049379185678810574266271849402173830582163809358766391064382298578455695993723925973222015501518970363307015158210414117059640517327549557550192074991286198721196239493400315054925762631954654294742121260028229584959107239251204041915946331914760075243076251534754175105269695197306532630208883491111511561058365628774437464459376052264602222448225855382751674960702397489372081613730701404017975400336783427141081588428956069394112365551643783833472425987740814719385317889079262457564462067139777346459344151749059406241887795214716589213608859993193260801854737403381650169036597201930001105460588051578922540946836197352056570045880275190468005380122336401866471175574911675109127060644748725735706319119230704091156638500125639738643961090156239221353721530844087173092724855332363570443726098940938967227200046159825212768963538877710494275780978178470681765292573813663678549852916079511236105372762950291471006290093804970632906097328345734628483902575062406689352193694570381637023801013947023561539076640482224497257232297285716638760230200126731176189736997860279263591245139761633889053740778122787029497695173649199386508249856398271626902395241394116283023535977490301882283352390207535286807677281864847634112324823705336620948458902362267377864651972479016616558822000645347089713471705809897452463445122469143817841781944574320825975978154020384419596690985242058013902596450824952047556928293306882860696872517400938358718070369374861069081015671981772460020174577136515890879883549376840216279590227049452618661878840108157024647800061991608319991033770773024356163173597005785050346157085329570466901390529081480514830225655915569853338914992830696062758044484706940544782193142639518324124008119921802455024230258869573581966791212097570920057478080745049309387359944859998818183716415528857507792060802783240451350646022845896953054306659128146342500501604607547560924792025776600562025080842019919987152244722308383661157566661733000492737270918546702853957696683968776734751105623242199841612706559107864476348095957919796045649242406700914159518198919197725134671096681299745479865007794437357300493006409900173096526137712762965139821838479918857846092550304684683455266508510255354136839344999604751983819475712817318013496795663640795017560830070481428024377887447457349101042895574077221152730713337342111764311010707584848381462317639953441201378933002414881107139410949711670136126152099017245192569558898939663991917016318206339820518398768401670407928435092826069723314746700588166685170779527631991158137000018634141607257586043924150951966251913107119505728666043051480007747575420196554593072377362663667104089580768233620388533079932125420728881540965021138431021327328856892310253414117132937075139214560895002482309019945911880340127232934440103236821105777327006130120776258824024580317112580574342875582490197707592433108541220933247662826684666171684355974741588296379722445819711348665274379688141110789675321137586268468169453301155823962397994699396749225468077982745782612738621651938218786023478988528701744499109749178285912806125682409470327655399842136899580308383259745074345873721283825396350403261603604004208370778530421145143660094953038358135689592289993918401998100238573627490905886980815742996130879103461404983216118604315823441577248345056896402680984275476487011903194131045913016112733681107424462529800562228178160539311055243111807578535932803069620552425157473475090090098403113292620231574065679861267100814712221275125212541786945943180497769964165760768743432261502956471282137309705360037741538526490919180332535447304870562795877171227278545908828809932571483729788716672011247581325273548298753894106260349544230616957120440574759921849696007243198135869529631164548100799886874271943248318262494225707677665087568223754588493733090479004646463654610388671594635364224473183637275339778664039535386041959230161012491929139532641199423956111036026224458985513433305279174531658615071956995130991679055969456681619022835711755006671732982917868780283537766401489512605301582473072291427472223649587823452702026093440710821823516447722890990747940569321641955070720305033595457373953830801526168241014876358792582697397214835538673658526989877576079195791172566566478422408328396965289303982063770380684081087530340944312112464101785703846855581093901797298958007148695810334543783906485074398891734051657409790328657859661507601168150100784267573414379173708907170478346641766507448132342553584501156177349499881538727812243603628836809284894093434665622669397852461642365747737440491369043672456898507521840821934019456561791401931601067139487472086261706383899060884053093853885817697033008932467157724463199320139062302774470413042086278863502499307314002447114178175642815432769881503558141296637825081105745746434597679685587886466821629385259202840818601258276033370942892776337786193496391202364567111995239120482491406706845381940452839761802670933225005522388613568502322838518609097331218656847537174713711781764937393645523293465098632817695751997085190261231042435681120101818823092863917085257113929071503658640205789812223608791122099869277010086510315112032968872188210421355466822604434787664141214178092458434496971213121356405076183044152162852840593793811042159682394859901940250417583275421115293383539480945676135744692504344324864627391856314310398221984848015859534620562203768406187095947846854498982313685296514296240497907597392601720466392084404837647089843978061863596681052208390273045639860466603571737265504341944056420514854616800665088162526211520384244796894655389916313920566072337413770049150670752510940273810718539468756702900225397044633011903125064741689295073783460200825541938348825617254290493090041830552452806138123278258281488558481355664929002659025871183656290340871600891383381847498453107847583775377104015567812335341977132070631254285052768661467062770010196069100233614550104569533301207283048847977431824808098145187845621931856998669504170709954489958948587892942743409589170683503884732583951104048566634139375637380249954229956716594422167577694217514974124617027836438377267752840560975956485375251826352811712386692230416507485420476466228651566413314426378384167695537576347801713359629255601895073019990853441395527384926598413244049378101498963959243834856667777516306913742398972049041773884243063649031181721190913733424435497871591372283804540910788131133063993052835662569907824952919202015722546959144764213511998435449198140572436072439339740423597002129594749732020268498428319275439490305098521462428449967829942071345859528891385122757826749810925624504995679667398575754870827580511940439780842356760867339648090587530388980215817294019072495891688493696280708822249413235889321413781438505609543628401302133175945778777309941322446040708297789600797401465951845077414736387753102725909666808570112843019207066576866052356149855472655031906266336853976323554806356670089226538141680946766858242757092520959003905273022800909971671298515241134242650218913251576660312668117366454167246155626175634354413431796709512316705745512677591922425454908245342633031048485757154650277964030095373842179387846990127770209797916023475510869214530571350363160739491807840223979703064125735459801319859604451807904006417019233859253687142562537460302099485746234562971258440295884555699241274392736354494075380673773938997889371904928876893797066388829839348259970403567883508403864598601794037835265143272402660080010799220140372260700365104654495980658902210857874977055165237415462139154936796446497182954394089285351189515571094121183024958077044830699357442586717585975193233496005483175010323535145925027048861458794664909175265956755066753546992839245282661190990939462232795322106960083928232537342915714329740632467503279178928538068066300803668683403537189558853634396663197917140474025235340388893860849173711991249787415044643285142712940553498695985978467520798685346543622342465848568224276234972668406198127846059691955454583726362169572218785230093129492778963065642991648549009787998727673536790105058594303325161298363842110497687465636436448502887742831536371235341491955547949031982672409454077919697854805379519069196984803986520521575306767311814030830029881055627749697174257869910391180035944891943536454341968692961843139387288253722340561760938354730191412382574631984324522337317525834722634256487591835738588956921991767485467918855631553337921801738399730135034699122883171819084202633953709965831473818624218402227973569721222067599899646696723395683405633132615839167389919420481240189715430195677877324448929496839377480843236723153206034352886320224331133141076369556054124030916006272007719040598730410623834596844894431569188657920439915298762091150647308198858755623244536589872806581954724398903099528616949013034978988314823024087241792461551384318293984494227635114402274944469440193316383964790291497170281025357408003076603878369066666806974439433483936070137496066029091601863708244699516207782446799110409257498819280379710330044746441670950080982554369519220248329187534535597925773388998125713793451866284905869372448850243456646024627090487106079639825137095735979081549906916448900369059357814795740240211088294089732993009011430796806233399624389709489749529307058115505078314223555039580574114338883838484500172939954783425900359514377973646308914498469752835720400772492169308184957694699694479417872776483930887483965613340540691262441019324941507744658715042442459795390058953155170697802714022926665606394226781825286231786726505027320328048917251970838077178810319633154820315859793113062724039299166169278776779777178129513107922087968690322326352201843236726664836402898392584679693689080826937473398639632272065591092631950063616294692614464119939995280004263241106837135517882551690053924134928691026225419721721410385338832370191187303183525763670448961858855010127045086335803345600095680615313010267638037712950448227778457233889010350445672808941863146000480914377927065252992217917897526183708932642083199940013093858402865208868573390815376770905237000746970238421424462358397661878312507219709416539785586012250133860365221634090745105439187695038733937176916766698348905496586293493843213417169511802357680561029661034594508625264254155651913515716106615514374886645697897637922311003437753847006627880973126148342581932475064307998551934585374154124425185768809453098165215389335529975235649225988071629454238455642299467404785367975866682120261466925344666391172052530170295030132319340853996676422115874752298476517020332095877461879682101255850234177174847851092401595341640127530482544536426158172207710370785210739220597067145860630481458178272495280793296814272115081665955962520715089957105563324602320412314450340251364766271541784334128392019513818295625344002046922457130919105555909636348878729898241932800627415249595082657932428556901021747613892869191108112700633954601084067447331704780271847135502376209586214728705470938038535688511063005348243688604937624870184935967071292186527000723113278374622994058226346223394818923209559692267741105269575974918697579327455823605695614900550883582131898614090942761045523706168339437921044829992126313288978597984439880235281223642576270200457781058459721171495283614820519792122207162792087009668826505040422255974452240414503152180057147624703443322296029160072278057771394753330357128341019897636933385824414289517433461493608256829945765661221792964574302297544522130117648664157523985454321932206194593352577729504385204140190777998180801055415987897657967069956880128652881852824966287003970789535372607317021620446425602360018595418617611126349664744169988409871283530646280701595220940669442909831449622144692603823562720601821106998371388138434542486050214859447484081300549411702696353976914264571514790169688983934506557489363083826261366441108806802605699588606162705771809568877642212811881599206707004909693832407624106713009531388353052566806221834334847610563205179616032440733188112706309978865485863539417031343572551269212266790526965026864911479947099151616849100127326726784675752307716699638099723712255609404823624417901496634093754919623555593237489880965312473561917035154111345269335126192420566118898655943715329671841058680004804857243330770590426658571917270849842179301548920736637974451237325916635600160019826411965829108811950649575989890760762634403190483568853956185886446732148252337983775570703208330934386821969487480788532691353634006036726237950672303205010622929616978929232620519637963078834173739056740456256130665123698476948747917281472141572787789775246325572075244770355875590116485369611665204732216477256163205235590235256930548691549250591105758211673447249439823549830418548939350776748542460727984068721233167491269581772554091644311145683481200211472448000692337912060073907626167356950718295790807043460138543091593437962123766086072771949725757304588222571060587722588307544055765390595600125068916252781499499402988162814716922439323963292261374128897428938108683501298330739581163954310991649151056069125418974432053813077921549860584422208245763808977006079876206960775879102369577528883078360936322844167317936355678827258383877801476804302699916405639184225042840544818994559160245464950991745644088704648399072061341801204127350145771636062769859744487261984057973453446546413780457678170957590813213553887965879950512070974835542041550794432653101556708258838345721491302326136041813959662937798042753397521362933458188043380934517616497706400598856981915638289283582127736810693378259531063836434678723664276069480432663864535250041298339429477384118583880353761189651249527301071315351022540548814533658065240259286479002457952536075081176845405581883558032705602639272717853526364701231313635534648878887358288277819514438702146289014737903186185412628428273516886449262251678699842311643253685972238936942129301726235986747443457668083484611883690912458914456064672962081467732679028699800725446876787527673832902969467825566609365497785637417185834808150999879818810407061470688458790497026785852022546144582757662304659228491794506910828909741162255247618090440004904239875625012317242046249768009826577199140637350956990156719670929741022703394994935950522890867605855670372336103128658682128877371656387598385696530588589197400648677311050149702287603464630056365590519652010260051416904673075342897154827802373454519854314015862670779715807173657136693181875529722888212980303350810587076910894648574491561445692375087666746108464681606064314593955628650433353708444644183934823668621173202782290493530446484112344222735033562531528224191843084492198470729925752772541225233393200950290883525794607895941093458522934686602775950320265871712800464712567452358159230660700702274129557610546317899091448656842601946267337578963938584854251643170813923373181180352383230858818584398319850880246905608246232083295665574137053015104670653788898719266571127356509277351845598195390778081458764268084438541017957775804104298210615238301871693084532353562923430049210432386938444483844808909214634256080093421786083571439226789948138656117673867776012552474753300095728038594121520050233130677963449522468149981005240293631253562847587886203290552210217136699463777638098555921809179134943443193342496195954103780725809800878365083222648668938221032495305778369202171562683839044022957379555852280397410437353818328563229626198173708867724061376626831927266345756935856218642501550239839614855714584775964556569244984729774355068176494243487305060293639018098010706260929328441432980468203200091781016815484594013944927695449136818958423221418007418151753810701144371208657359491576812609509043192350429505075780976755777431366818614054361377897085205180278365487430191621517471317529430760169441357045824061378135406009863929147844202732002802221754781597001922511805324662431923341627998224597882036998953208951124294645970098804421699114109312507890721204808257165015155412110265006507060456572280148658309201665556628630350948345746097939159325529144963956054446816644769472175162273163626116878747108785497949334535694144090248946183832211261074111003801536923755228465796622600199864267656930020268619437649744432406769625418444606590859238783405581394507753599437369983959395713016773708057441333145020993885639079760554314815494657459493418212234716910706949881519048326618458997434483744742115797114119711061984691519337209766874241798113877488592256647371518008487674038979232699317560316726314226810373498904815868811070073662282547317490302086632056331783526586362589964467245250272340998971333669496900769177801263203180499156552516832472198344685166506988952882160610630308054490634848828300048590479546788708423973379180680474269787031837613563892902576856551324990444264720482911515364126209252824554309886040061752835965224545137263655550762527720487755347558090878008741073780519753899802620133607110346525109153505471063540468171509526062076166752236804336947094322052824266196894335490196243458165003665923519530338100663535148492322998194266467819823595531043720432927386495321559547976076547560398951216199948734502939172498631231619359375131901594563925238674483783184236207953838531732060600730260814795362470788643967057816441147879849525100720421005706827661080994982921868178368469791631626227307581165964178552068582123790450438145021072681327220011413811545001041038394440746620014957407541507642563494970936058410810421936886724105664942367280072452356555501464517201382254229178398358744710805065789775779267489379955944855101733435379206529682019347678791874375970911570031765858334376046208196889091586836241597785395828154339022568354926251535614069413243000710294833173647548315687871188315750882539522654429729350851585493991582706459359909867301878998368149246275511396003838884634068890609858522915708502624475383593675740772705702376130190624107922967396818413681548942268514667547930641426995004521376502068194259550743099755490788787669586649453268166643514853426742006609411559659848103336110502179188319886626583532405956570769248028129215192593773218233128482034141745972814990996323574846002177614543881842196035455010543119533026829998491421275296816004091316548051528845667255661961402194129965565719663490882164790350495887319307511763742620003775585164843403088215015087930212644453969820066167257190083958675470616860731076070305880799934514191398072043532946905511750794332525734734994040886919979084808552430023836712417712087527925670561649157982313952244083378723046134604189877568172391303764000927455330318469385465915376111798915258266905713020337725388140013345878787495357688158022427510542677823755356398993357443743405277644051171230400045242314871959570101972263790828530592260445583898204192690760996047739249522591129063707915163540100087702830141364247179064869790106589476584138270348391992182793517978812898424995275820032465434202124884779464723062102975190216901749292563993391756966565260437576390609220809497450397173571683548244974556673969556963654926702589717278649684736036375797414109459357618930899355186178289920288281911007829121050564959775911926582122511733721411774912095865404378821861388166815560714578198615516152405626304162025054223790358512518097342220449316589903556055072893101454693308569322116811433995097740362486385491551001148310303144579048394322599151545690765747401242763198710090173576749361045570272157831637783444122548610324442705222410413068038774854289089446066982120216652989448379140146807087705142461333999154784806325689918264959421633719019197589304760476342131318423816494499439564881032755749574901328534528113356930707403275488951980424256336605374962562668953804852285547848804283082496954181031650789400984213486779441989330095462359329942684272260452542619007548697715795270324469853648465447264293471451657093623518692238553229905745948372252894573825492310507244189212455959379662319201764503686010097851172161135831147345727170858174119932599250045433462018413111133830793878484325917588544466807571528038188517790220303292708187853310627887474881558315921279538308637480086638243478768379019338088469882627324966176391142891509881270869569536298438372589754462004491475729571388584228267284795940325206800773441413289115693188740106059175414006704017928068154336430424759311821864609122963488393648991204541331076313119896930010213941215086966296682441394456962950161989360304250577761325707584857079039513033155750219617426475332407135723692490806959361035853885703202157251465972323496217040691536165713827751490764653266017268250908933019425687222286449257490008817349499412231076828132502548836088657906249915976027052659611008100072884548609572438042583398931629940321719273569121598740819797664046270112294505524642688886601380166610434618320285923580355999402139572725758612984729165350936677217369692955320686931822130234468807634616605586352226385019842698954733754245126072661499679448604318341958141566107900954992175941291935259250798044362066301499926922476645318323685904201708943918350911017704034543254264019845047177429540139899562448519478625908379847736247994323352797678562646821305629843972325029340548693378931828758366781792459815607326168832795350796958824093982082534789007966633513862039317287331632824817008188283229536395747776781548980151006663281533716971365789641292834247864556416426197190320374905473217942015840077939849465986827038343307039435028842746882092133783814892578832056652328246662029126774607649765881214459952061630649367406139689652090684763030974269785285342056039801694939137689085235331287344963313828978940577960967326111578614850110604319335993157135682836644305677559071010317652312074665401313241976434377087925461549218202753119021144823583819483932274075645559481362637063521019706886942177042973399608085866993408518550840938252061015261740131657825033255349075810008848607455907770475730733647362029790699644728143539826445030758251607435889491768922375291267880953969286647412964932944747033079019340825242324362655054067358828699024871812300060077357985592273805025062067830721871942499550285957793212213957252971137852565550263028315598948969437134872817479453425891642368521617838767984949632438050825550794615027218669759106058121536588140655124297115482172308940572848662606124812880205659049407525171992515259236862379858451139239867403913693157741956483414471798486815694227604799831602049370324876549476080242340591075646629053020010988569820261699358847953143629553551878190026041227022388293717667074838987978351087502479722554700225171311986053226678953382542434051370157063310255033583921319320452761531622107007183826994184017676562516371930998419088136952665028403482764929374250990051503128903933017906564875922358512395834385544365881081818079532033445218592559827058860580762444250957016480465598000149458976933921989919100627343941170560321492827864968372606070267495888805492019670070884762501131538644761050029981848943668240494752894809931515063369962356828973018432102426574300512316784491403779420114031546811603201527109361668730034068654483085932036539136126462537930104218639205662247522958996992986226349529407173324836134050840250684883231938157646569494105621392755372144447216341412227876961969046195575965442535493174613286457673906392674440780378069667850035410102399557163172016562000176932145900835296569560472947348427935436513934376675056464625375813897610426910226984404298633603942487485119400842558965390937021588860610132144596683929736566747884824834200440816294222460042399820880153266958876572834541218008574337295552291969858107158736621229064633337558583572133316410502667918983682785856157024332161213368684878663988416444979122587856413663915726059439777268973253424948327500631609415692276640843913783196358360704650505239034359607492539712345403417452570117296750779157866274464966275395065405169039459499978117835900250413377731753889432004010827617795633963639792133602300895467905339401513555117883390430277964978533076458174491154176132113465010880131293442959926832029524581378600847416981912770191732924595815919845478471026489497873765974162734783559259423665833211743388745924306015271398304071273107099477241196771465805878567813500634073620705825441639274528760565613555242752547618663267532707179291911482208336220341586049457922518606992245059952692017318751093553675274865575900154000611940744292782564625867327062347139700744133288399315158043152241017932754622502427555684736551781543987456368140220466327129349841213666971138604267125825670202811777092981597521892959205198068555659388471482065574019492893299082499760431126205523651440247336044903282304277586553401942051623443331343017075484501341745428666342300346664287265477597038692556021511754669867564697671743308187458126837075984829114392049127348115282006752045806230580085783416416093030285254169738441652242694635319375998198655196285341061422755483870779597395818464146621716301342735729077630678337504228809216938954409201031852394078796625723608858532289134504005142521447516647626278526490789329976177450829750937524216562960034176249956010298044756163168454346098825781567806721503730970006736158826385349380925009856084924513029774890101475901578343073325514762835876334775430821888557640805924056677316119043333112083647438386046440933908741935701111766953000030352832037733535727711930815928521722207314600083471913831997094336011645996309949717021777333584209465214918244863054565685790084172734269686810365808458680326161963530915441641319234342524680610553761523147064532640852663716938205326730667258232030938067429724131199596187701767858898296156050776328173802075693543416729454229739647700869935461249371645299919706208516560039628889250309660022171947206417033530363968541735207728251416758279886507191422256927840328079053711792374075617988727081956070656299769473603656665060956616351783159767293649795097500693804451680991079277333481239729274055950790039186940836141730949957009961515741536604759821402909681487931603028555001436375334271638040978356959930238403576659363927337334993784171272368303023940293310976923989589362359469037263114813179096539328086050203351033549707008830941284220448130314330646986335891409384795289672220872021574814148835531240701421562523234574199619009262362459027942659337146586004734235663073147499506284749573594024158538265645100852360995884585880946198518272831613105328393852807125551307792175017930808367851085509262364263040246177233074972896797631259053997721484123114610696393467122496693535245961341925666083530467161815662671114463763857544071726933018116054743463200037087471957717209424126021610456179632078531175979862381832726429064104662772788295407874372086969344529563722635569116857546362190263417902766045843134485378551569483743933906459160432812787622959791568805586796985720481466830382654284343746277484455493097604933745749826838001064480621077829749605114853398986519234219160835849296141701948385874972637995267819252170711541480016988897856364556408452156607777478660488686303583423980058133012600361906443363168070980138944573031190099366246325745297422958599055392212564110945199419307113597337173246991262135288219576376385356146476672693148622696068699208924050338344088900729602397680005527219094371015861689907709432119924619658160381959882723851871867709704231342615115522726433134279306630220497048276723058413927151363113027191113588306050915007702819446505919328667910183099869949626067763962691387279868500250520817720988955334610621416864625056420720924401557055750526758967351929707412788125818890154925600353047354702796084632914114078127374544896935359495921389677552174296057124163278214122134909456797735768365313482232252335827670110566444020449237991297525104737624680385761794862769904934088992716195099996887032973391866179196647212306764393904045823534332805068574539236984613920254606149796305599958335245345251116524130714401486643749087744521904994745821460867194184848248319084240538693519576759091708855098688925391668993055258203101542149834321396098621353453433061219258390022858899789258411934798426464471176846459367971549939479683049455764322834741493215610264093639556369362496460740757022908399152109196944320442143317727862242746474826145085771537772079424172067917001538040775827840384069501043437353413465362410098007193963684521588045789729423805336476154297633040562731401272006493524434015510880780538963408456171777644223490191939439355425060271738924282319005841672539276622634079885661132283018920542337327807162135192965789690709652790967953271597743828114884639274266492299731958570174188853454868459985694221334015805111872465997673918271304062194133969050610241720245348311074359271530701336533191240834783309524925304655234040065627066915385237690900921157817473658488072151735310048285199234650836532846350311455966684575013335786813578189967355057247959776892534870313354681880625803379072719334455852982934995048683424669644012782006219952874923955657631240120149428804172578260748998892073241636903805307939956860257521907249812400291515746146099203796541421603060056371745342945828278117109361194320500010078573105232826459572680952526480507088247735630333599310931341930505837430073681548448906338745076802353889235512344899374567671047597972047665393648504717625050777986320754756987630206251424028959205097797337143489136592908488799653134638682982689358497680684399257967377507846951429803640269928909671732426173082636207753491541506417681110522011005356037919098629763471814725329125670804313800210714406683354245933872549834722183337173266727907368781930584402818868155130539837625371694230834351460251085672020711698050368239245258461134787406587371534129894283814402521387817270592047311184299027717036287316640924699086190888207398105628574484332212548327320776807758390014829119476680983585084441695798519710386838823201958615027546288887712555169791092921895552762782820038190886010170788844431121517335423486831241245228831760414998466374255078529050989264137288085791766958377140474392981901450150309427411724052731035488309355065736723077692594371468886646124670482678678188065435471749814527459944220803024049925714872096297112237087840720790516194897083591488092229523860436009243786761095442898148303929911851858859781328971862132836307344560214268473697151288696853755013886574819008228676491942942859396691427150965359238703146400918644593148581038699277346864351923187706011384594427028167759899075847338544856761117745693756269119293950468993195605833359233961261195142885131423591078198622617072415178368638566828944179738683864270444586017862634466728781973749224058261348422354738232495831867481500857877273470956176189839644550746480475155115054211055075884023045683490030501593117524758147725908249685101092347566682040994874770504219122662826378120500386197913923475723722336507001059150054395813156503274094531462714992005641488830569522190338694654383101012975353619764224474827574375827911686925068267670095159228643869860333018917671988641887128242234041950660898501688304987659418086613762611834736202646031166597697946622113122985654713737557633002497080520648117545734588965195379965135338681257663270780733711067368244463359730848625268324433165748332202364963727790417805162653963796649653343320329011989085364925016396660098557720056478680739538163444184857748690530760040968803726457049614478214036936734671080898807502870818028094691773470507910564849122322492282320370544198599112147998829323669150082900846630106203066839723148246047486150391739969953524557974107502395942638066175733799344054117537537847885729268612693615715548097737755021467130772471605510280135630088006560069135630778234957383450606363784296219082178728688326128433540714502950224804137130729789217595139092353653970350594465987825230084758489670668074473955629489076094850291924711358159540993721314037192806519951627923539249239508739462757862939052139624957527307977874677614392411616196565480931740360575056259356095468157176541995712419593983984921145890673232154607955142283141811994281061241025318089392411950681980243974358283744098316387920441519184693610146175630532914075084407552173910590966456871143871887357245668535683881543566718064535770479186544451239097386470316500482108787306550977768425702046848979893332928002016354220579101787789323863557725581634674032412850541189894806413611088975859457020971559492283594925714090908268287636407973683252992848108400567714672517815445981361880493516543201699672285201747696844587188236654421547332502822559838691724509558221240072266819806159658699079998376753425999646587345213130024431853833383694212082897515780964817904691603200457993566251822496399180927875640765601248903337856495683433871138221039286374820870908597060578997468835723760515580305435140226109723800426967718997505683306259959291079197332961160509707850116567742593809569428050197922793493759037601126340419424831691532644690320088492824023865001126976333909889418392615903738041436994934385286288480245976864572489855305768038211157684887099965863865639449577899746646356717004331000971906894105275379689322560720595479718579954905533887580454947815439584568374180650087860683449500181444363685860669091848526948306824094880879301482826531180001388550237737340470828704097210433559060545614169200078415319893763397435860044385603785352455967072198865423789988218335065988382803254419368723347626853491348902855984269452471193197222977583801665961063475542472027828614541229002469526581388615782861669849365560874620958003190628198973248317520305624565302922637562336753303488568395691135148660412377526250303640885564217383203272074935742159225888581104188143725077893426893051527430713977226539144603232533409177761550869065746764571342958682585015728081914995819460263520683666362530520982872784876218311716570886340580017643963093572917959768785291536153917041397036354904300804733959008257732968740882963570829381437448348118031733545901153647643571581047939180526934879446020151343868408113001589188468091679913843865287471042725411568832240425772343727991310255535529051300437357543213406117114426616076763711966481757033429670456514740697714697778886776388271622634909445744703463751795731678460212227498883140683566638407631620187567427675793966586438201167800055506527424239095534579147135315114348996415961623253037278849071884191322487129565104807512060584296234170589654085991565601998629602481660329378244336880190167083295483914115630718494182229522646215987342910701076136855690943136071542232064646018591886701617285561134219413825404188413860233024570683603623499422585206072478846918591800109438130503981119909010190873670307124625760792381323616680860070113692725621277422222863772246632692196212046363475326882905010437638236518883139559971616706310632648994473450715588252147358732976347010469902200559231216865551304800074333946690456408250433970935567077240052745697293307021172684008876149159041262115773588852155236464189643092425040249334311867818130667970052291140464283151777618579979581468942364468347536232085925000858417151787898315158056652319129142700729681863118164478280592294713000055738274790251152200657605652573324625109861361586688522039535254157278197856495766696439852264012272740730954621610147184615760103686391123463867460664164288600602157974729409975350108543714148622030435419375174125523426945513963928220119440286283176976273927704041726007804947651052749099343486284547750083401978847932531229662463139737860739173274379742449702641346780985071677250680567451907360462671422408216787268026157063059177792518657032706643247845131030145920529022400116831753308654213228918586094135786842380033169712760482966223912694325396783356864657058951214252418363050405534812854756573206782568208630734153110919673710761450836036847160950264358027518885096043245737630306999710020145804560672621104810886305128680129320484630840038716670239954404548523436779824799372339780583231613018746975403103458430948733885513624935045951547256427592525010482787202307678296751409531100888837692761392669024966340387175717575922316861369196732565850560196526061316166865735494206939055793102343409336178501299020019460930882221375316187307945547080433950926332258003113510559222742619403206160535145743775834546116956574164316379387314401217093671541370749074248668424778465332134021515076859486996077652755127198649862403454427188497508118779075251917207174188071104351940516510244586882419647467789304406649435937872094879734337424984254304099381762153536135995019273611397836520710987426500269453452259514876867421152885939562907157802122664298037209294293566786663443631664559220150995823232977723933316526402629762312840134870401481983061791635308909367865616902625933506856411795841418259458334938842499129577086697328330224759747845452923442628740879233148407529150210352955053739767613232187299985858736448668894941508235819706102524553130675714119926487279789924333861472914271829148537356043151763754686338827016133472330988236880656178968235124942186505463155890705038456555184246092002858569153814119283383957560491437699424985672061602497547158337422374549935666019941455587216941745608199242679571459585666960314458962868176467732063761237460374612498484136908114694678720900371346105061557028753458866809314994346934547228224527710417618317844825755869834904013625076948298258346452182902713310990653319198568433001566844898664060532356031710011901971548599757787193021441794216498681016541872825878498616064197088000922026372639719091317800877312170058116105599779025437781541868998877339399559329642406456797837908217081373246093326925258130622715600276369396511245800577639212091274619080345382274147057832873306380484174842093518992326723906859412794065884859990067102944658894160658594902745504532003808456477251604790141992661139651809486635189126527269211655355440469494636707438667072816694368313068949458485015932081564460353017316035531724698620299374005848343396315984631595140321908928811867701671074761254881857110163723940013703499975636312825999816577274929481951469491624580404974646870984535675662908948532108406334397730949060342411326634678426484712791725727711765463413293494779467938654273614695635328454605163244902165284254041431544611644921332300227370965478052684369880855471175285250495264447418965144024665993821066286200474614381480353114704827302279395005346136928429646568034875381541016249247029821554612711452063425361404931262592173505529570605006194699691991009164688921534545013671307681419137886167591594863304332385442364553009748788538148682914354413153400727462096203874520158651705237068615322994752310913281728083809475478623130168420707401828987054297254738846691041942431046987495582125986876026150018707949350818240928812406070106151592082508184381948614843910614390146970932380981865014521373937798360998503401247716728191572807585241991103332392837636444208828841789500434144244247708624269556818773615177622743054380965125991484008506297885410502142555433681197734707630683151322430335348999029492046947923601227254070057291367840841707553452184765344321472489354082189736121429542213442326916147119041918626234922750015337446726676492037286161073533471978611861801516340635501975111317383903382290689773433227768345780911620255429690280040340870525138040999420191250972376826309300918287672022940970906962173215775187762286238899478535777539795312069345114749407845407393765197517954605572548566014537829012421164081513374117461971023851794806992730038481980414111531358340635103983506099816202351805878497042985221062182704401635584627718450249718784441240807367205566816018435025440940179986691916848404898792136243393775036425758900616027647546598845270096904542564442865319420432045066188708544905497036766606688808657790559230061110949171972762473889117753816750557929562903330296966358335424568004239123565209378254578375511678344307332461259881529301008010017674395254169786760430546294830271362504977705730940698417940405573403006741428093054287730797182840876420312445757605501382877416289491687759207117806169252227983796453990212949585896441997837424877561727244180083207742145785875606218583893696491048730547534048140368987893469809776958835127670058573324459364047095611979899751466742650239086051840942922523092149461387348940729506926011978031667032072559111386321918515108070447197067258548459746893691100174048168129892876643926180931827175885935005658371365875783111062578652259941710206833146707929872810952390917189517810329831079955482947816944157293902242718838926477636240583909308198504771441795178280619584769965483603327531673398758215400320850912533356102303468074910595130944303465452331344209319748106608976510391838616810327000258583838774705371115546903013186248869914242490376030529243459412224648633996125569639311349267391958854364956241026963893786613586262962738752848482079135185792750478212404229401218961917334668268572399037155357632804906071532371446229540570504762223966097036007620649148300271867673383450798053718068935399903102985324771190348121245956665427672307369399915814611270331764145132850451957768125126088820966456935371520313666440765284312080951458869637108584284027789785960897785930274788771935898385073446469010735572051068750272351943715344912090890262372836959663771700072733309162682774270122944484266781595506628973519032878180433168842270216568087468010470112688265044411786986761460268550577119225239787492192387047797043396076594766802268630041039129770452254684315793879172896159873476532031254871527755626386137282087338510208633040284557769923128571368175361412588134856605725495168134200015326432807241862022031900054999074786901598376064926421447415287696614685491644122312138910878528434498146472559513962336982360685609267886796120254430369458065259932276149898241262049110513413500671265729417733394834512965487876843167414401553318114680658095371331335054778226478011276857645054579300490226878736338300745634582513056422834339472591103066938387619822905808651848711027433097262676355995086149474887378834758813874616798858776747842121500809966809306743796704699129613394009759245917506645676657732222196064452932370714803025999774682622110294786499452473386956555818786251018308470208854576567008758218601472411164155798689863280191226922838848718352378323226985247269125448297477227437151736882496932918460775547867261836028512170487265258070918570240473921546840754971177365012533151079242269668122275461587783281883269906767598462041125022342411238862680316747477884926995385167364914333586137843191594943958008707600331316261666956483695019142297462520590773269272817010950513948980965268441292052552815776888412748745779816430324692795599955095651037910242928691117574555220508009815141007164531669901786830067043251163647441581337386138099140708825358960003399032263950545540105452677221020668669832040439110235178430049638193140797188748940568136267408949479961632892242927245836244035223549374683579728892327284390783714596257973795002892151969527463829645563434617288042393986137880025279973828648284649079143522041442683513641200493210651098987595267931417899561214701983699859526859326959968890428742081246783125746088077559761160847115810391458990582290082530241942504560356754799786224748791897884564267043781485900007214316030798618701409098133896997936782648277646263960420080580337344415089642526958681133308758357862351362060192047385117166971996137410475116883815267243000027107831968813256058616788922066939469457092490416868601618722840914022780358686678304095413203399912197380223055302263344745727833448548378111783313137621577580641767115612384954244248347708934641860177951527128264880507653747494359436319616810831141268290176370703662741713283832136177992455501484794363099779524802351205248675919699710514266654682337136006507750262124986943327020563275532793692566229205566025253321214505014683569532340986613165166036709116364751771023718732233040661371950485049783505538311163656660010385792018423520676447292968364201045489965382644979897262953231961407323743467905331433155856236028606137513699010193848819997387811324512088375677889867534188388209108169163756902247741529089293527680467663088930615555927316431705487003621067435081564117538296857644371968866548594788733498553294790017390928859992406310279233948860159961234088080019566004275332408347542772255641638478498613960853925853955645352377029504823979971706244981556742322613607232869585829937954268656594531477784569515441609071687268627137111422855497718072502735985558304787648227639368901926723129173210372212135729877168939325976086869533927172299689295838432844556484108451957029676264021195859723805622878355210922447036104195397478348759931183590793234126595009146397967393660137353613632411405631311106767278293770137328683621618315615322109495641506776983557295609107877956571601944570677536770229194854414914813262046307836950511969642826325070965551632049332219776137147322124812454950085808241730085915934880016351416505033488730413600726325070138799478869780573265943802108866880306347043010686373656333485446744087549622966603575556606367343305611709987569988734761223641292271898438700670336896011293997026615861667578026122723312256638264614921329722192027987654617188154878438056073699317131125531329218303890163201407068963842872320124030579734132777926576941854900789259569606706493842892406179488819012667385849883179602988508518341623588715678973520183418711080526947991220972830552415427019644596897821201478115313018403582001618096037844994637121291997145672957789901241346896604619476812901396677757609311659078842374724877818042208631075942190133707705332138939708301418865983111306193537299569918992266104849573990003072706175341485766533520745888508335375893731276969298347760517144535821179796214325424446596362273915420469405535649667001680593748399305510209030729771852476698761593017532136390792674936035596074584597285152585044668173010984357095668356987255885997451247861496114020409001584737797706422305523757421896199684495100218957186489085972875420875022771959511861398404295957445429572426830918249550128515797663269688075353350376623337626044061878649810357273703971210290310971008994027764946159184550785981932542404109301445426921841310045455445059157875420066519393192928964320732813548320481721896636698124666462254923329019308722409598058336463706135232735101865523439273327533281462993159370721153149296159255327952951878746078443225183108685143109018392337878581335269516807657738664613376524161255854541271023258770464655594869125886028480861617750159387879618787456614320312609265150198999335079441279759820315644828889309805782684770995507738141061244912647112439957626645601107163657826038861154689606981796176024680902616222507430185339705609802639016393975481866387442614458300937935146670704716134405308138941282646678745145650006625188011515480033648990475700422788343895538259745207901550195415756567947985033891718923634310929321021919131817919223354325848704115993163394685807656174284157898256306882549868118640605401210818025269342648043355641737410915905247567298715230373211338904716480611424407473861926088330940222097632495979171764776918962129333328836015672412115397447700947702015038937304777761164868921796163159238116288732599925959620940914200649621289259619276482458070398168682520689119341071006398163174525143986948211085869175074482359433102190552075203225614573387983526699381197216542147099973081876194413288594553671062619088094718671878093379223837189713168446293843483054294898844762414499530959541238362630418533898415702830665511115176320793940863596520574480370247781590669974078589790490878921981850601401192746462936769355298824055003229098488547886511245571248628391573807612423373182627562833401797142603155286578037042538319570473837438286137131161002901747693665083989829124067976289039201428590684851667435805128453825050324365744979381479461639946757345571355643684401042980386278302323814585884358003579179517881033036353202759484033443413387508519993372226309434046681598920755545305600191544308742240163263922838862887191227085632281205798812209999386718000210259970709625657417222266247378812711822683795473951042992614009094286189753500588216796672494706116879521661731056089780478555233590255790578379641822695072772026347672208001285096439885054096304544651387155519729801712706244577086334752449318511364824525242409013459712690433832294145523052637636050384670680056759164450273447546328127894411805179176665774398552693215109586168010806163303624614735354301980043719761697792563155051939762655073391221374574450575942564767855710730131055546333337626134851336959443034288597803736258885396636095858282925165009627049713165685499896372196397967005671966264863914035963306444001808935229557167451150191143162899311628255206997800510717486351079818716579031046005276002380325437788272367547224620753259140421632314851797753930231248338867583469349016808938094094037896627214391725492536854297968807748665853708272780222769505557717730606090084948710540330140993031231573476833530342276302002727215980918264015887665922177547683789696936560594993044594211445526850354563505546208193497273850660829937532048217382511064060974412429234689800154320311190106745278059783593561454248757201613405727610217519065526880358235665581043187547440098804701905061905722717762244832366257896244572354055340018329984965641583783141319186432695805385069537826582108123926264057772854856031395266110346452452186478450003517016572284728611181506891682291541397742662274477305867326754869693067218043198851058031727857897517265234423510779924120831086664076412508100506475457372378520403107014757293979278939852775175265789236910995360111492598715063338573056956086785746184025458285654489725556810050704767296916642819185594688042662157204982563570192923418088234563492984152438305956725089600097692294498178544615997380361639399325926270166813035630231596394598847888286154292596957241212826703669623906948694693461156484917603703499350002793246890214771779745343149682687440366113623525507720415840521532339563210037512964508409013814054050259221764828554971852315782724005491491884215310598254475632428984283406451113108684759979287764542173525988806901040121963586884038286325949680946296518452127506460693154288220456436302571011578863051198239054898600610820828137728487343462401267705651642768115703019764282525796458042303851790286053454155590803005234963410883716546021481875948052477263624305452730060492624994444033231850101716630301955882478814494247270779585316696857409854081687238478226981875521310259212207824410285256049735451366967108122872419383640560545503192568984891930492768513064262889505880710543931142607724255774281629991150540954638792583397560973983667407069273351594422524287694985056756235719383746445295296076298896827021824972179026602877176227667675528278764601208256017098016688599015384511903108757095421882219515020420205359181217049534488109336044974434619036770011456243934623350405433156419373064014414825687332136897593909667529327067347767057564150792001320125001187783832411635429886897144569224587487751350172565084434267984652022967860812885702808484192595914995554010671944807552820633316037831726009622436550667765734856655484159243399022462844119090981812238463958391628983425002229627391393927259294771300032671881979150799045275647742403678789816791018145112270454936922761561664382257433054600580951477998420509411222011778791838904415784178983145787723647748745100212076515546586789721778257227873280829096399101081711251802861212632242690812619502569169417834624074240972565575869703233472575596817966720420499682100052191296490753753363459724208029165034595211840386741988507781633997251113841151256946206616162200616322504751703066805803904377481524983838929884684763815931606175282897922661184399181238011942009081222875529860395682633665481924181573817007899733525513039930117488677435545154822457793363803110999441266535684816455662870147048387687880821305419907866638915248499128205746184634057824689782206141601121983096886158818228301578956174526959195850362853602104640113173602740629593611424310178607053042607820461093101868239165536710805214352178671979557812730896420546123918534128645973385420369067118801911542421692320548039007180723385104531612520079540368830977785659862671717309760769092034123770346034060215928514998017093834834894579649538645995035374406094138368886453769224942842225914164134307316261526691093414064586759581730314859398681180301359493227354091760943338353249469870211014934429963629318895922906614776527723912632962925085896550730608626349994742630870769215490041422929094638489515881785255321642781341858796104160643127638132616698242245711924707385527739567512465956835566473916175681291345093947753221093617248848408351952825557349200350061310592235133834033020503565173370716491992988246639089510383866534588151508183711659516722686726227432693829702297565403247284220410084642867789811151846077941568457492845060356316737782359139552384599241001629366569901914547631817090923118373442535447166636330609276096076234170182889386257392213030284832791095012425051639234904420653187838691206900157789875531593565817521140429035629276790466596708913037144462454722072541912973636719404279512659850316741820949801903552905088347339639544700719884645952646873157937492405778237036056803229861954011273392570383098976000158596965343406886077994657486488550876351529547285574818657532540786428015281505636588891655544194998388425668863133986840923933170871824982308726220022564752663008699109488541379503153667052227989149688283154828633291829695445027673446116594839881935627405904315424422745387915847602511932175259557465133185504712920648131933428590804018099996970936940208221518860190152697414553977809826692208293333295246572849855813629358189918775846183389488352810932128692492259478161081748278818682432564254413361689054370223833017429113757153610825807981535765151234568030516281690252352400323015689903965020104341008309873502080856639147584498467254225136012606179189380635109741128052841930721544201785968038563860836805365578701612706640859634078620222341601502156565309335764763416915351329943023565909029705174578853453555641083000484879730765067725329530297472333483097151079412096113193904766993155613174559606690018956670609746641722065346716606960245740491958597333044083324878376742847287871435772906689429627883496929038871002203462937905158996677927970294503818870606493330081964772028139059106749794768734210414750976069280220756935326243722145412420235219861249456413696957111161420812356310847631503551639618051456965971008335525302551798961257749003809972232878856186080154509637412054710293680462125992115544037630030013507494844250231489604040547536952625383069511835273601386077377749511469852377715411726894063324791248694100063216639651542219651281405600402098162669935642038628265415917482950147515032230203355482980794973496893382565239189616358173201733572994294846672828144978268479389858611565640475137602063312208674332400054603881899615582778507407165782956950806312012727357445259924536170320444547925453813994229871469373016901811415439454538798748256029737278117723412525392929035123009796985348866937125947541034672969604547564477720254841094874192215119435405128596607264137781963587708464943824417453055238418207274601257282102951274063560288666359195196339357878602259898075473350822350422769484080542505343811969483687559370083999119108334934486164126795123828659466542810618680559414547908662142527781723897990334675526827466342215529299423027524512702090252169884494728225769254035529235034043043578365924433039251151684357031073050578852697512948112942783249954932623601795928737815909327071882232027239608772101721214718524604376272131452620825348120600488063246816001976111558647452091744537063614657411186886597918720344385621875630006149335829467248581662375423510199332918369674894141145977017883394325154864645796506008920626149192388182946101845830644065569983872868539243789447071453275888532606006473225781640785778310817451018281850549280611789282811655935102273141589780925043116383330630945984538854752976457866357569142453925741601624146062038704092175072851016498150047538976123804801369152905142784392235709428938718292731681768938253806543299452773323093828780638511458592528906764265502302556750577354689349976297332732228757733886478254914009070623032594280087361851120635128243730243470020252693797811287017491984535114550027308719716715829610920077056668999776058548500347813135886842248911755759244217582687225090662144023213236871375737002290453424106757468804103703196432909166563481423638890640184154882961870352705047361001470531647550792140496902448624597169838070674466934938764141266095079206790545471164490087792128182280086660408662429138952722611452027691681083108200227246118636695650091375140799187232803928578455544319858740763441352411041183478428400132713799639450623424183061831040439377274739438168101280187795433991616940558184722277357366361278495751950400840140832959832653264722951821633056657086256913106209736368389147810194589756787622209838884172301420346496520267793167909132748161090790655315780920676141915765299465741154433457096805015692917280206702563265298787325094196030214592131861865920997709556087167060247463437784990012869617252824109155029127419105103798409737345725669713716378925640026945031019886332960298821843832467569344114540148985513361387933052523539070264306540733861209915651648304794506946867059364768674938592557513543833749610914381336325378534702640533400060313236326365858866869662112962066986472975653916448358014830648121799687561156790328068185824879444904209086275562648072986012063854974018690808114338278819838677730612325848230628549739116252432985694718503089639537250087540995328901198964267764467883000236009384821909144566067550055955265317984789234440732293108906198522938892511752431802948324593842938635852097820741586923686973463241602897994232900121494137294178251174569336082706917597116217657172356938502471269675024420744473474831223420751044981633876447436109933504319275493570469840789455390248220026676735023936157735026616478700046861062457889778002732592397341154764028090238529687290937464106134709836161469777169232308710952786362299286270184698768077630532247469734367234254681596297676467415337103274852493491010035954315875789154280119478215775823730916918351592611009787348983069706674030749109318848158910310313467722069465341895149496565357938863948543328404744990005832072128194070277305071892879790602793896925032305873042089754533143381030655649954794289660095951406029195999731789297035967129949344500106809295445578118999460639491522036760634352123005495379829872921544689947841970926979075268771755084526294137622156221015815827833819381204878781983323321296649805295926296403350011720283994446860523992098685018582036031701347862803011609744116801738416005457543500866131821317508815665334797630595572137951566548443966372430967202447467045136158240263968513314315005547855208408880941150051840662637086541271023587485603804789066749503458398002009478054830330049590277305670810192479827783871053101008179111527177094589913343456854278376291519938992148912666993394893954670806825376725034561629246784599888618499396599948116982958859566115224797926513167424655838873544595862063710942935560993814518593721050221179450654428327651164310653801051097172892928682618729714560036517445381894043142657930803097858553627522213381485786863654982769275734437936652347802756816921297228523870554791788672807348490562946093677233381705992170279618224439775968649762535712772042757320218552941993566971108173546515870420941022163632418743770535264336320561214000331490980091994462974962691103984202378537218751649341660337673863298171199088178907498668308711630086659558748181657847164605435918083313448737407066683849310205116658808643827770659741681647099860635039780270061471780562344735115601851723577474332406929960099953284455434936907826672090342710251872700358107523447310118074053955065450495633255247728855618370945840739505878370081427933775752458023662635646163998633349745335080562189918447900294144802729695424845782504630176181031932280975638633393449567247303038493060136903180146748830450797296883622054170056007940267891680584293663254108229157427821951203000453849461839240585135591722250570473520148427320266781190739245318652795741380835384627420690023339870019219271484227848179482078070680600322763093088867473766514776868564347055004911795782480400783322743398801777530097244759557176585808218746975144060965208277213077101406673876886020881756309658658015163787846373053306266797877470660121077597447645629449345253088683741718979409498918910017307058276245804424314327134634933814934076626086474160449147102795532904340448610327351872329201636396298931876744455820738386276310378380423822486938231349315920224037518141419199958417018598206628546117879440421475076631276812764924709787935759038704222592053472918453258280683905670797024539749106536471000941718842766836379913072288801364697590153851288206361056987795962996689323624016125682700863216963001379266812243786526764199986081121319547628502265486713227964314186263349255883217490880301856294316868419525001530365928222510653699854977444258382825728731101365274615578902635584904583236231893535684718589424200047632701356274133203721777839547168775801581773342625608330157704040633593378321131470817897008763439544140973578423255777702225936693444837411505383879430147245506326983150407931750777130328343389592680614280739875282315272768572690082319330562483082326309947095243924390280725198077608289285074716547216084154025898325157799328383259569570863719626389126987196015182619031758972744610998028230984413688246763381897591430659130151987250643486168957667803839672279413823130838147286567327541730590924687199812888659629022856744377098899254529168901995173335332596108059096734172103637142998290639960256281395655172971316939919953511389502787514622062594347153433969722286970646593324794967687027800136337465200594268489757346134160091731014629094258214582156394889513287583124773831408622911958432349818247063649484752365608483441841988863269193761611804835918697475498997226770875235165415195814615940605371270596041748575148343354183210190371242746011340797833039668006186826332896171526934409081614804483961267289701107376584351461043604244958570820091715600049822141071706581690706023508443131866022259007669866075030623611670734970605108956747732020549030988687169733872576128187139201423299653494036247314376114793027034835393886131228587690694740079795239750364113662921584865873980903029624931558372437146756686828734301846386505382293464067634055459714741654033203725888484357827841829721724245894683981392350856996958386812739947481552821051469124195998758931314186040103336947528135336329512030414668871848996348141852023114388615054947011379424286028783141833697602901685346150207096254299981208799723318452498604590403002287446108025772972931364915029084005971324145957274439777870925889805764129350204158281089705247656659026145579258756577312612756381436996235850256542283273588276010292176673163258439761297358943065160539227680236644227768440947307527510338689213126284954978975669643760537962139115377329044834995179221124717636808135059438212109130060914419334357998599976829916155068914514837426842366773109890629930176160404997893612592560545256747132692293606112498546913986499656891717727451526922404858909369581377550302159612606871597932425437220572444339604227432968801665717080612913026373340206197113562370042591781934754241037232304906698888249337177469500017904863938324804773828363612643162498602347379303365078230050857752715230245289399113650944436992102260518107191812781152075717020974181892604275878589023573144476809699909637083119682271611800454349710779828651703180130719955098218933392273024255641540891684017724151618609855024867973332380017320345213529817578998618449570850048747634629425470026130032519464285588888044634042447945386382918839356602411990266283503064316696823774387868345220495596424368172004813887022237126079124797131607776290451781056202815486944967302722996561546865826057844578373076105262123847285187126412204824071392750273974868797230093645963723222540188323163118685935759173752583026390395091856823100256694333720793326654910621367609161922735485435785007108844971765082900525068931998083146172736950646349967429880155833012971147282534907681654488735571838632835739840734468157081331332516235452881671463661974025161011942804204238812628503698186823236492535735664364480437508563519130013759753877366612673786876765812819329396430114849176390585828937884674781624815951110856361921761375269343254137961041523318487843597766593121010851568801946497927253488846751331137206406853528740895604569995318245275213319673549217280598332306268618108680812126511859209361495309394951220729537530416165282699129124833513612971821283374237448008557360286708699316492617909966049900354902889262864743342672282308691136782378085705222917669543422661499495371664374145017924609889254749371081450444932792260968206049326675083872358581260041501209884993476388481326728594474822835141688327273628023105326842994344970852336814688025587119232490868656137888667880622293074992574236815954539225277646928084083242857779190591851676980138686262006462054737619003758927135632755966535548270997892034857793849186884165768590318541130251654606156384370203479153545873174533672592957713887082557517489141417253261755164248017869048116872335705859423734208271091232373573086212877742036219060058372933127872025639207026457854675979553337704686353639379453041911103175061975956095951016075548111157841470473934260083946414383223673335545329029799003691344245408503680588024493838354932024739679148487050126732196126962949759838752915189051224140852647986952782037803509939552855653814071109450794044359642065405794475947066348398006854526102796629365558685343749460855829125405808920177347447221532685431152406080607561005529083015626239877937203608933147276332174292696626249286948339270832788889931966372957524926265800433335539883518949040454135566157794281771886281199557068520916613982345737065722452789292845349316855640612622992177218428199867965628674296451215468540682034128751342891030401433750525041230457564516143824198362116374994194005424186488038641250565707344401295834985066047666345812914876973060714484891758772476818777775422859680914486528527218652266338533953551231891597063768633396662730411998912872736052703483885251119491553373910241158580044572022249925809005996762847769428981592677925766342474140680304473385734640744682696246307156916160661962838249087422358051542834138498765573096724146210741318826400919218271447400495001298204585428288395336455232643445834511937586825581039845018455133424112625776227654475290059008549818767569378872122932702181340059308733502804077004791002646015801752023117117469062369535062513149037524053619490635372718153395307944186913443961749650431988542662002050956056844551761841776899393473019433755549306715699512834922049787542165404866232999253757302805765962521689132930676986730672079605009328624698198366709322883168158523345926858087262350534200250800297680408932193537558431847186761619681642222511639501704138824787328016390291060557544595652682845265727391853654387729413668460658896339815615508064879525157016580698965357691169379148136050651741323107114600348196309794467933611483005992007351494876242827981707987222129821258134297897431476368148865703198201973491620121896746957863580380259145498662126750156747987304379036815696392484066689106429984342966623830281856855889772837812507773815051696388510321761327677060506694226776667456249298513202197521160904971505694077577292567059733529373067647738708803540276520353143476469614273541531068190534319030479001389816841852970758395512624805363403969235048678878447433339603370489316506213234392776287436747588326726593254562944662395868801796940686530337637514021626546894864691914189049863597271451827522954221947044851145207566373126332478011062089611814149688875465365970484446368301874147696661757248543393301598456962113996587358226289089877516556685665502824598911230503261832434747867227378822382765447815564756086416274030883801343353559127457806484572013168119496892545231243147665723520317749682188697075031045404490443590065359102227289503097607086745752255145444806082169075743890685330551354933964939440531004610836639636831800827757854503567503480000128305993921844213366832326944639672440375165639855250586175479030070674189026485223358733711192119545579007448509612967831552916637554491606381702811452506957235828178969757139225997377944018059310457836049867635164236083941076110287673539034891383962928437406027803094108612836782302219826303256685873275563942601837613344281789269560669505871370973249655017697574177773020391645154962544019160854895980061307655858636087603696483072608446629009046308273586332152828658449570034212754679288600012804829390079861255946371143608136549156746892624316790687316102216652407268394163529399048402735915236141679366139664114022390239603552797573015634118557249293075535988105198645358894989657578238797600451055501704306200492455276427416344480731078113137005514757532835251976453072194406364224036014010290200859080904805527623795042313801182070732488919176079290182578852812417711942873589902692948808809238154028717727475880186838644469495960888339813658842607458320146299421589365740362301700211165075045660856198117469950971835652544305194389298113668913200598956331872454434872079826203245867060249178244214885543299363355266345116821045029366683468460702860779798711798494518215195676470622974330042387609559514003306444780479104956465523264038276648754987644117792633387344208300319258796562781849561166544369938400670134702784632155006864610813436143261118441437821751208075843770745069073706015649983199223181978500467276321614892017147535664045773282951489147448389229954437855719472747196117553130952486902914648535261226498857103275612468176178690957550593170825340663779954758576106491325884613733233216622749607968195619751622661727963063152378168493902251424128919318759434123330519071260129402736532731430470229608160735331025079215946813831302108383631898572009987292002264433471463452114964156262340005119198697276821887580300332792124596541643889374181005219365083478988041067704746125796392270979292466937674086967243570033218531373655793339741899875245202014379179363019178313069042825457609416955375076282703002122419524437591305096804204067950007947472226152250564517964785752045192494378752719749615778430925999841375727611130497748356418491909644384839461733538287425652677930466214153360564273175231271848202566302338301829867176648878607596706546852205539569833166410916642493440279150047272589060951118853140928070731928279248271517877869343797554202557170867637044590930360444890891576934993951274695107348692738093968002795930775250643480704915846026053320525730521808287199941023774662156626308020259142338336807235473050993281807355420503585521435560947166457641594146973158314014828127587671882536219659126745553176212704580889396732848865649227595896532028019935166509660486635712024794586987894073427855671561513015588398428170998683856609809902996406459918886663959323623108446382957496637194795210609218899654692438871752407165309360415314957431719077151141188450327642534323174383149675565551918335200919673285080793352394206877331228338181314129919072613782234632666679950039306393927255505809908874147627448401111189022289029945657550567808202554479728423635880195948607996807176302898309070612915694794797985989116569677592690205563283592812287214804880941978563967688874592842960936335663071012828043619681302923189306656653091258172107476795078113179129299906506631435480338926539101609569336681660871303341293780613099917358478338900665001478501754382454195113327930178872131406177754616191964499714785193718735607797246106981299402039521812321216672160785822993470520312216031888896699792263292607794045675881138004142701410499953076152310289861487599856209016659888904038257479636575375331846845495007042227493099592376500087359544938991912062532284122447312952646753935922328903346469623140945246912283598759011002756281182425251979597871776746481177115147416668296706646383822896461123215057755852236497027436696855318255101797734420273516755578488616346502187835769796569629414638972452876822050645101238407918770514114163446385140946527923520586802245457785879806922131402463986050965081516100105268018414518213400275978144334464384771918977098360924135426905240018876777274063872096499152538495639109790610377419781113783729742527446580362801903738639711209473434869944600413143694295859002134454673892019718574071517084002591780882048188838191236323151748096011338306175074564726152048768698091291991328702196350369332732758747363911225487536000212989644689303588590511743748682417365056059084993756972684155684800613699537744641459911385197363802678667584452858986753938781572470082203583865350018079410989884455172691985045012951736397910385139934946089319660041905590456117735038338174812507693956554167041274054601082428215215162122032092451947051387861086059198507872215261934573614711946637016325212863439178888817895236434431629101256131061575475783632839852324228934827244702178691805086692122626370147019357121554251925379850352319174510663896652234485434468232209880806899947601619534081474578885523030840567163021211247164894275194084672948973530179677303545376436634435248292846488630153739390866953956897297499760146761524640295637343179034163975227093197247936300831448538507712758566431179927107820741901721796141612488251030847627211547581337149396877486759373823805022651983338049135963167703094339471588300969402546687233362451451574912054354050182370750721291956677520266615236794515679652200129298929849899458055074602664160747257292481233200599211508865081426446491607828593628111441602286302014601151946282637665879361621604828738431738121402174788209390215752702959101337722223638530308757148084909689490481578948913587974564389105781732648090458844020777787178186173790606374342726394897859431229799233929671521815136744502382916395430589899888914021468542999382354479449545555990134700726868499611809367987696103047619748883805532209059487166338549986829463507022113519729382751510441718388793106698381340581744614952445677946411009398960615866137727283558704275025384395438441416474706394964757765794128131689583822854960378588826300502658673739440972940785798852951287116146184884404252808766471792576413053589240094344705588927110628298543011386948364900275777931774845368784404351027891772932408696231085306244273427427798654178716487173511298572935943404086956939004567595556322745564766740682141402353702371117406005365327166272214002387390040180952860135135347690089076512791528085298908754154918413894470433719648903190124457850159114064565925478209845072648680531296350759499603735746324020720294323097446759748330042429443861370734155933252951244426399217608457787618078313880612340336303314531687466003308335162120123913085398943200958460506118958428096286556388126378514790350546560359343417900204317535323547684765248497570918092405928356450533540253561764866252657819224747836624603419674489187210399957928288902406160579993376330483246460930167070776238299652579755404869384629280580212549178912553932245269990531130082796979090587552261627160927726190687879286613280554233064713019673051805659506120747496641288104003048575912728546989136709680231755407182051435583162558194658159733049286801796124703688102403497844746047495839093345342824997290895515039823888589812656318623388884283774267119214404839136812973246894528629192917949445333259319379770461163377842004152579189674854955073522085906999205004239140535855727019768958686880613489322533990753595398747360158243262209155649591307662500108889408998965035366879583107729279743391196475258813120353476520542434731997619291587242675776007516017209073648155556628524072968425652846649093823126723870815327259020355697614538507276176017898697646136047072000645973772188132894182112860026461940525227147579359790100065337318570059834524947289327787948824657610742913109455402111137317179314605668835744287215929994470721419940549948195077734199068412600646058852765184493585121123189513266828865402218921659827412128795033883783662397325713732134886091732574644284084513206009123531928649146933038853821445500355023716978033845011450862695651940862144337012417328015837519684066567490821045515176859324139200401796187442492849585846410524030306471354728209479237536088860832581610669585512978931156745283701244359550661692774953573741523243848953661907271304338881763269725398269181105066521011727232145086804617351042822600140696615362265571757556794761533279270730701402310944189647893056122977932404700998034965301312686594185421566552863661008765188555201569768298030486385742784115249856160841094954249088706805972205971689634688581151626178780365866019817311330624784305612719887522122513300628353476042011225980310099097379515905118578858034691937434128857588405821825849149720750374267809453840861874282262558630769889829165404797777739022205329986703679793564931406622290305735728245953674748233071885471282372737267572437895577137234329816063405568454022342862863460188029197259588057869471994924359705094078601797968515031759746538300915390191806081241526003667571243936219809182329896841664429040671706561072837980849685065543436405582471465676010945840967891955962290465342125072081468605165179011388953096458903496122877606925352081175125979023165121548230784143848736339562395118127138404855571100414075510750535319329950914751395733760643485052289815787788408984240275373868937509414176751674958391394194041743988001793624681192885430712059517469480641685017693424200826164903949156540887589714680917097734900649171381498251011356645599156955899183847130532029922509489389555650271236092278155311097719945757129450445957027413980419210725376430056268340188715625433545640310252433825660695520736122392280844873641249512218386540231821652866148143123598610862428511865514306826271822256339594430447589047352310746185523483002706330160044646202936999026578827774919079445258733408826009985765014506617266282255860736542608452022420081361663285423103210250926326399511124984160495275745702586875990844399492378843879863435563941277029102220835568056745296225709927151848375226366603180030542184068222266385427030589724793414638122682710672071291476655670546849718541509110125448114426591128085462550659079219177622145713383660070911721147721136553743415206319830287615230985938491601344917497760137560697049741737742823271411758250109103251579217818405545540149810762997094445582909802554210565769027861618223279923875363381412194968220439711864043950050364851002042593832514006932131761357818712224115487155021120436911861475340941701348611994078614169815433933717880484237177652707087229090327168594060325791909693490514140489179470911175287621443247859604963576720676415994617297879777308687915057149094422473999440927317569377844720918348316773341657313226543316224823111713158741611652618423354115894778441066406478678491169145153870264684700790373944882535507760068186070267317052484914081016848911255558537961428451200697463269116326153726845141584205247968884833766678640066607910429141842049931702424087052229362081771266986953185692064235769816105675878933360976683726642513602448724502246751406605314857905809044613012676258070393293942253937241114249112405063511742427276565912718992934483873919367577439188297666378818049533520834936571527115624015696573015038474239821667376255598138323480806872786276344838742816505804881266299111480743264860003530699611989130167572256894572501859710887645304904715026974042319384674622614555378655930440970771409182045670517907822835386168599109076524119147182134741953177781268092019207637480552285373658507913899156279567665780202355517152996035605998214937350991181182391210193649619251077382729621349576875971227832716870489058851212506765510986472624932609463453589304187147867238596954565622099284740554415673821146608910574451367616043247011326117297802302428540593252814817977006311057909004995582983235084726470907635773033333444970736170002488387480992958864987857061206383871779413670275177721519148108106677532723593856210412810904224344247537413179682503460036893392139531475899727242116477670198327260749059323909948911515847246654053210164725827960304265388134554743196975628780897335276126705743293037850026415195001485715127747953736564684495844744108982004998189834657827427307472402534655884173803164801465106647620191034549116626586247719862733186791484784719119572807616764267438915424152658296040556208879709467014408484760058126385683010107056622409882235750530039927415506614188966449863318298327207501169910872564146901146648282203621789330278236823037211862760785376224692978342881963076399142054167866745792290987564835876801630662533373877323631037331470039473957668881090029582412614671543216118863085681209828566546660133380030304528973640906818852355918351686885831917994894676482892661910594823282361642385709287177568557965457974443246768450608488147950483869833244428840452054229762620296219060579653996164043628587151927566136664183606065367077167585491752208013247164984028520403259646995081494291171417971269041642775618814934010274735361702830496475860249752659245607351925373962268144873146884622741588709963160608023106413969450878871820854488468071991582800636267273034018897658826696578481329413857135916411382873127566363423580048275004884771394367773746772416867463781676806086454569043142440182054575982569597616188066656354917057609885039517916021003551998736450083068646174486260912277586269530367381545057262317947905506829492124820753601501428187447355236804376477143554941680463847390873202644599052767321695121178836363018660083565407759030012045539119608242287132782568023112957278217108144832949582440473710306013928842341187811173303644211187143277270801880768601071697317189622548353196070616939072815373105116106303457124788241247668028841695732162060518824430791208059228778459008383473456662704380736301112473521768358690199232775536977048232983956079952395849451270487087999105485731884702174613122648703380297680533636157964794523258157505243596345068710436080846879679839800723601416228562638393655000757777098380633008647073231752372216778075771004741877043076600210868987185361584159332606340932599195272283920314375380463284837135490371433407993261795149993898203018258571617900299448225587218726846219542439543364782760023633022354084569543805367523509272597266935775278604229235510473920471030477412194917722253814366295845666000454250949551882907035778464154036150319653912822288862819084477466015849693761276555180880698093090340264008601614381253808453515074662876490474369395888330865104436091404401091757551695576768941784398216935570325124716858958043694817049916271366893406205920906960428721925193632721683121591334915880873554806762184656755943101037813496062355063484954772453650314983844128159025277152353088599950199406028692317312628621206395597616505790618332341124994424623455627959783345793185462341811897445699732388244616946990199116950032712499721064550928179021285207284603546535335560354534548764984618250701811041127323879307722357338953329268467210708033080921360105806102067902670647759470482672838213353376757768859270502637621364848708274715448206347890809419324910530533071685017871912980385775447965218463532091898037755854140072719950875211634645234535193631995426591089134018745899810925073749455594812634778076374819926188210417349720382142967769070337961783152604609530220161308573183931758649564255534761082000814629750711036918045383545375060627001956700158102427976457491814957452617344180246760998044707763566510086825119419005909626387009921396344254489048216585568087507055547996404784804422306339453054405710121654871817097576306699346530867087841362201812549225526571013804298866539753423393133573096305157665413611784637201489849157477618134471401526505080577623871504804686415926420441593298502010863445214827637463275717520156908368268481171872407978624805683930716838815685868355229161420197016113472814185908881568816763490542596079357526210270040306538647604911243224147566335420816108928601921639319867869392241064935376724064678043220129739522839971846992855856091963991343503009581850941649407161977392073129321693049204574401341501105980877221602305490972253296237332587433233628659806152925467882996913371827302110888823284188660482577416701503477680422391529133151864610574630110897932519869256137310422528517197109979473482335474944834885830994368078161609626688724515348857646970129595643975393677570205360065104486200117116400434732825398550934564281476770470324518158122406242754066721317309605373046637335698040779901111861327414544770708607701736999628708821111127115888257903733065663287466226870897426100042051683126500278983511016448340007175532066991669095211021781635791703384980094373709942640140452478353822704792813866850605207563084632081953006865950784693025642318180425044063434383406052279303494366862528618008327074258932073965904866823690197641961569814556428093022584576206227055999173964487619805405600345204382028740984486266695960408898919969244174320010729723937910968752732287933411078626627335743382722987982857985766855021725558086078242901763357225769100311702681067070375879848930115494836547945280869292653591045498814377193316482488462125676539615487900837053185119162690586852665823090027586899608670111470441629434287951383381595991891642108825011653477163028475798686524577807624714805671940509905166601879157574536853255119910439384920003293192915699942454006643592940783855326396633753576683915748255445632678380352393731325578819500930332699734822457474545297289903952846600770215893942932291550417873951057725869567132412753292168333159706137531613465345179553408516795312019802961219671705305733375289448335009709039545353130277381290982330224465441867180249139092232283842854661702891934510598182835721248954136347621954384208094535281542252985617366310138076549800872775530714109272662427989312239205168924607354378577219092768863444101536750605360644504456728456839328076221833580098640963595901777651392281639724531095430397280602987714509667833201961432286374625944397257444746672787253966923553336462858943552849033401909234274815080934884955169382569732531818935860400769326321208373309759392764627048263662997712678309399629129466989233813241628144209881196552669683805787643481217357321021492310101623611679618239090555731668543926847483387784937665522458784671610182981174529370961759592837057408102348840643083179758840787522018741701810528141764401102123929935997620812095268329471737821844767610811125619866903965078047665191649653248503658218767339487273378376526809870635200527235294062086578842558009783856134910160846351687123907514318153183603353782122389750234880228304850095342962741291670398206677107948036898984751849551401516076277071282354473712063015762443876619289763852438197468772480453741816603824160838983427515502274005232067741557113359629394477246815509435635525494201935710812116949173922566607275803010584806159297048963544585327996514299689564477920070193738958269841149226910914490280067476753032481681346551127460165550970354475573979832353235431087136702388671020181698191172733761253028294444222116170167676551591129134415674202732745543235228658442551316659897611251772664509678918119859768176468381759858416389640804624672546083027449728731164488722343999138021609570261519901554869097973107956546326850957773780354608325215635164354384027057873560431032176097266851512352485935120949987090674093255211723051824157047524952569924215712036117331260629640721325982561982627389813851762922407323098156408312504985899182407667051154369051939121931278983094111313654991958857209418298362473476004063871274773755586514599589487054456389623236028855497905376536283672970755055107409884115311137544787553361990341447064330060890349251983772421767757952085189946920846150431346375850664278707331011447642785964141310893279964303601312675398149678555517956262547075333718858045913413809453274765557249159788537502860751734674412156897447023422067586424861392059521853576630858084805483510871213867363970877452885155663952419573147415299828903148591806093896627731723170711042185194996256513789830915279114777823835670127410566159309126847725102658280138176120874121499853117421357453225943120242618399013425028946712366152697843951061936578682787368995306065769573444646345527011121875064946249135512838303137876772539671774997717741078882768316887299774316077961518930664124383339197227082947993767416993655991878963024948708427610881012709427659801960703658329040261422088437836753031962884711023035888261574588467443078391275731365484742705639055155055097078157267248632897258212776819070814366077389077558115111636924146523723250689943450178765810053918196133099591058422072733150822592376591780949657540516666076470173256295547595992348735042854434906101874205780019450199518996011619104581904228191454829584269635769139997199269436534080159073341078602589213529410870938440599368408747361074839621695200290572384986724778141691606132042031511209169724908149225696782304844859548662040284820299053022487475376741005444320172191249669585942560628055792863259565327050142989879510456123155074971397504916076661833655859977763108488035175946249840812253127812115038857100390846291579677553950623662487538811171604221658612521141901759275063993887461663034524695697187705142246386655523784015419631343071113490741331118863601267878780671120137702862032796957729482911496772206840308063530981809864305904827526228356892677954581619196295340583580358326084718945116262897263529624163348284690066313423620839782184071270332739013314317452199184800499046488986140005330230531125313561345594318115955157870443928644645295635353722726479403858500238410549323845950271546499113753444331221899323376819185969578127736626143871344196618940760399545109204958905907449466493019523285718130996103618849970572000695362295206458192215426200424941544606540376225820425530033916420967413045891617130989277452328204632307156910578068699946148607898413162409097086897094376413746938872108543579895168319132066291972771848662089669567946276623006862129905194310631084569108757519146042958367114739537403327503229712938497387179548702892308432884137922302089592328235386544875488796264569333399510842742135594023898723871246074706971661868123155850727886272234043008475271762741509193281459344255443677356235369179360381293455965414747819973135818742607347411186560051609438187941530627505743909870850406217852263000793894263887238204692864312600239299547960781073536773623955933544030115837253096640333268435271550833208791915814223406500719688336900042779223407160706161892588664976329698723003400163093636939465099643857949724119000506194751798955364373927313349812157405384668263227362389068133607156076369405677780777300364811976752491551626216889833221507773089940096712060991143354855496347890461512479543400236940579752633621541105630931585170625345244846793387426824486748974180085605977590098242476525897475713151584761002114172022165156720821482235417171455244233998805765675491635538842147178820218697648646393181370644838675117892741502888788670130582287712338420523749324454815497522037838380216306024611463329526987271188589727829055579421561919271490278765251431923009439687376450552402691414193542808956168058848494677505962335974413951201452684508805690715819079510322033501347515779573414117776739790372500819707616206959579882684134777906143028221441733322463993116986631444247741353359809077808259816575376401384779713628722550604016898381623060676920238485077384713485474598421689676299011058008102403029896406732715155666809095291378487503708655576442559905950165057131570471106439867956502105128809145801564508915684060624781445046634077985325541719352576674998724353787231096705695796668007597017611414754534459286387488568693799503588693976964537498620983476253251061515375919535835175031043956560593711334294869368633948010877371348997208949711050373131394694191406142359532968846797878958539927461125501895299565042414901774368829968176965385463941304356229966752042488213945496153199818968877351476557139243840052273089130755380297389790058386008929118189773311610454914963412492444759765953907294481187419288625091478256243036765887071438349951800125915124984958720731038150633347462166676762944155633012560152724532749688847953692570341423068350930431595225395212059655159773045704946192419320904779372639666940944810987351434797586159107601347675141506348736600497671110319804555992601120849262669247679636319783853820788789246893925520576557961389417305002754286925007686142683709834511747633610578605009096091918712728004412769529895209505487178031982436007275101839390321182942657362697254854723822617761579556608219765705941685128156888692826360462828166315681174085541884605286822622664318164555118480737439362245799364151712584972773082459548286565689493365755368110833304675146682998344569842774491772484163813854842901931485001162499864953108129081452311910491341305395956417530878956614108138675799818167332518221054995158198676396801378441330315488638652679000263203301039303148643065072398278695740782879876879730001026221385397310899543344045721761814699608050856953501737449871524697097299688504877959497045907092514247509326548212983569468614798583129199907161012915131302207669871640270457004843993799150041928077366511243456314499789112518928343839683972615890886368145824915307884406233287290632868795787442797667217011275179705854574075909366633511811955299578276885677972616245576995774061578134974821731744615322553539151085066065990510626177059404029382613779168708909305452538176792839397524448606448160027838979777733837383820300287944535055071538306858689423423175924026155344011635107626215515500234679247073349800535315134288676121118292833913091795094422505059904510302235490945480123898093321605199310140782311801548036835640148003406929867341041211930258658468328795533120501417207296749264444351304471914317282457281546412317629566957930608754285379532425157628003519123932587246407675458193954169328639994269279484552712294553163176432568312978728858060642096655769364742096662629286316234216437324396894180003098865212576247674241703191292785089933025806538969821200679774675668123329295433647719391477129482786476120551016379305578379857434197742922000895777153921381385234155359077541352960215519531252969991450807352752813168242219663774207950425100737758514227430800500819304613985529792926138934586497280734730267829836701335435036052670455385577084626668942314983113129066905819655118034418413033891826934251373529690323383633166599770975297857987637642145780176450902010116861453120226882581154871805281630737245673929683271318060796237834212913587720211661688028397590693252645696104102817483480381779459046954419241758702868661061554554758056274648109915211170453573783903325836352037649723894341267262789797174452719929308429385043270822103185648016002584496247978271863607893676307773077731731480256967687087701046514858252038082824762321061657122170042404626041274791235190787718894446039560813942648057386604064452606228067561238201406309187883185917103719351365155889806606463704768460432807449821400479000916040039147191680092255447268802804249746163497201848656816878457094183595686981972123505959581416350917629531090159641436151196691601879518277533769405211976668879314062903044489163166748802751752193609071022378580921213115212432381701565579075200526469874596649601115368117638627697270305097629630788380157060720902587533625406397563123586010709749879295276196434387040951857709600081638619867089080534925887831152326521689574583314795010115339681225179054118711087403363328191246172313601596693605611905035243543194209257730755185927928783120871894833370588875370129386785335023799533446043299523053236791868844453040465778189581840381595298617126608298452586619105411391216143247268711574468586252515752686497893284628052874938253428443936079956400810099517585177111322757152555061589032493146979661841543420177636319798465220550414913636098705714333613905649216179716671338774371351818689434065021156217845130048967100619366460868614374676833071789873675292124015879552395690705203361512236287237326840050490807527208042735519695192994366208887421640568289774110842019107554425732605109276177047431649510084593522545927666468429647585721476993335128451599777786140132324248569575494556181937507128170011352927250313856052269422412496762580723264311189249818764658913915300476196444605540556193371790009246537373786286866313343093671211511217645542644225820750340083669159259726510803038785997419473533173977572669487232369315656212438154082599949426250904776394740539360921011670542952692620478290455137215161873238849857964556566108385716203642224127202162221531816830308463500052526322254485243231505768331006554191831001896816936776325123059820554080834178317630666708368302782509738967880702007157332035828858277842708644751126847900423033485733334666596021548372736378062767584516296665605576860005228616419862584317370278519106167548717559987625669807507710784663243711133116701204451734164736612086208666908587398654027678973699146880427675182203443923540555246101027701209281637129360068132553240770254165091819756422362525593327935281807129714120231821813463767792266106692137988153463572164754511326966827298535896874947089359149590276933131347822446988669926754854326834518432507356975256072081389583508863276753128963582782465601732433959981359881038983105762943986058697183289692512483831557309577310389011584620677064202466142728453245131571832127468107705762261637857498946909765408155461926258921969562300094064930645499688724215627823367036874806390703705004912783651581078392967475106604163280902267013301978192923542269688643473953573014456430377674094609326256698925747760777371747337743916529694806133478200243198136516708024577551830881918161477802380634156101266608888058897094629900262978439709845717304498370732537229570607732924945272519888696936159097114588612100023903939558470737560233166057181038547380368433736293151084114026116221028960671482621297246797833424352914360371980942968935107555241181582016613195763517768417353050698498963676397777000315289257142972350705195290025700998503254744166471661959545214928003491505138335411104664702390041445980968634990082650455157978196375444261743760905466656341003481049958333936841166668255829711480422915479153302356875556495169085352623860839811160378925882505910025243496681459635650317340515481488722542871657902846082608864764220939470751318976728106993987437596064916882546462682648667379683142996486603449689249611726347215137345556453359456661540126868130099819761592093084428767998137464177149147048209863222327540590920321349318481477205981358443031483942401351570533104685603530137262725093605831645955427581339791228784169182794919953415079075194644726972523374387704219686441119417438833039471574771204921148197087564343474709951649808028112927262735135295719769102450751133003335553431265400848933006263395659105827593363913788226255123063390127678919653023681484612023218130118165157830897400889149971298838097115608762357268630398828124737331507070564938357603276751334640894780496623709670282884760029642588192931300428174664469044189746364007383559016944504258937067801751393060721198409172146896902545190710543736239771027195328977445696290475465357182313619974716294193922680041191837410133655798293459152839940316302163867083865153214005141410716990944773120846224262795100944320251925398270870729140933446853836972177437519354133671314508058656648365702760174549169658121469385306789710896750153638421919234303343089032351179296641376859072454682246359321299596303817768583888745885869580480302129809370542781145575551517364458371256377243968973183925995544940854999976325846823778169629311201860683759817879127370292736090406041646227859263976058565171343627056420947174009281445928059005443721755836034426522994874903023361730396109195769938993714280813106819177833690964592659029879029451799253999602481633752348863862575757758130215241567735498317263491758228788190473499798317825975153858408885278068000119496798617539395955447039253477397020509958297172456282198494974076339993329512833734965386288314509886308825471465226255329271565072643435918294235774680897084661844351189332889201645375101570277548743872031785589563382828554775118547847224629729867808593307999078570412008939344378135059450609328472932607797739021609490191405690717680646237904672849500340356222788577017073331968351887394392450586581462638599116784763487286231138145990500498909869236596103682144200367699528189871855444269165124147193197230249666149132510799476356629387619244070199537584689509650498417998943175007686466650120773217803854429069998245891803399366313955648443630886212617857523155221731617658983117560171567876227261875095988058733865840259490413757820860216437287994608779327943895189068722897361406177196068160780159602624984777912774617448549159168182611645601193473132240550307898275332718357456998019871182315544516680081564636731183236572718291878165111192114574278892796520327643563485155986725691960328201763177732115921330608647025048352682468810695714052610190613047518764433488790277971445078958513570515135637091306426789794339888454898949646961576003870358742266880796464013921477503955099368184494405719732835731827872233356213012166013146824802171087849260696917039869937684563871977314327658671092453639609386803698214327390830478916688421046294699996243109194582881576738209196180745180196071345651117346561479678310933075440042633404796607000326388438719038395220308244793764234667818344756072612463596049578266145216816884077852198638754268030789409786161693968157158001127735695934531919605600232140502192821453756611690481976454667055377794480280948168394252986887775899224957523642869762432208957242112542317193610936733752419770594947388133116192491422872005171162023061627736672038453524067439527384543585558268070633036092357529603857611691599118440795500353547905826566265755959542973672470073090227838402913870238917505134481702286575300007751941229621385149760770273296013352762416620779841976232816336748351316181179819398847191585484371550519745091639925652949339795569925616580940120833723027475626450715638999717753904728660477795071157411933736610878748780670765161895250886944534958537340849474977062966280960599435575380832412415517614786327140967693241469530352268593548938981353234053601034695108335502368351148465560698853986973790286388438466084709134617764576179014283110752023732570384878674216093579822632745150217585878425636849652289438611529016455591487715676941630013106131710589627328690750601481156454050840626577713880098645961160824902298111301906324024013658809932924238504630443826273412621037848149376756184816395645989659509998753270897329185583733697924350819048486813376469863011206872986107960842633911875189383806420973160096281722306886244512535841020362907055324515661568925862285080824354003618668943267690809806529990666797907087408844353220884926339595288847810133082461788392978366867171848009115127574414020595678429661619206549799488287019415618768746944466776953494589579571804987702504456771889781258910521872338321432511062755487679204901742263393079388725026009823846516268941698272603846547320297430137079970705218425916778688518052796285194085390108692833057475533621784158460999834420951238243263097932979123877352828428722035031485017585563896976816806495853562879484752341102987787717378256319046112287276587674733887461957802157544455527878186747205800719109246468077524408270828649566618874875549045066478734418232781324061686853867163473234515165902495564201654358767416274221718709128712323704018819218821219927707963921070847714324310755088578201144972372356669086299634852781584218543970435241954365816774939243133740578330857991183663587101683282864664074320636787993421018642553808978765092474345666566641229181076754455760368836004752896254389322196176286579738213855349244638996324920864254160716780691691537330760842286074511768859406765162680733941712011883753496309041623856371587457094769414440628234016703782300154813152036689280344623518419564863653979633684272572714342423528422267475357316172478610595949271697823573494511963160725381619384701017365015856881840082990396884400137196494386371404637987122987602034351474156053626747190316022041621611849912989863059908467360013577011409689967153210222943382812882717944784684952002284374757305453599132738938606135538701484523100170860537096731458792255309124341435781506613258479872006468868741579100216316870587534479330262790530406386812586950267779692791986829219316221369522606332412393642145355581445333565283827929213392765154581507172004831525506126167403611395971123908217125722524356033523135057682556389951495494977399577654936578809393324342311443279254215901849887817223570329694350373665633965076314596012835242318104769707810028985247653010514209110707020743101307709117105549594887487115488878594387216288102788840633969556989676828303183531815903157658675854726680055941907658195876393935305583973313508500029934166302618975318420638225681437607261228800173364457381829314241795188748027704755961120507258695950746903094191603410424022663287711084768032922565923624573448459397935294004771705929992796548649568737936676855072577389679453085006388096977722992645843066699651268380609277086427739725830340334364706222707387580811230413643610950415348220654098800779725184059553764816668214889275829932725185782956318146885526378650440786201863450241716451961275678909586320752088845666834272678169056898666803418401466750692293486540414737072738175443792546359598826892411618182937592556964684931310988158573822056639979729953104208232234373748459142865770715260703117919763476065775071532959138233969821464868221321671785023853594964971381241505724609934115218868415998757171195573776669081474540287534765996657894961782512465051644033431481100597335341897366246828150681824622861150845575175869474185409967896518406553857924716428194906116951742992908736283222619707678925245321054944535692520221514626791106662112913542595671383947262588846288776162072791251171552302991142848662841533363855626746988454843421386210873091358588184331038759302179192949211903814686507241161288308013424719234042529384512959309803109927569563611850998479542905499693689265738781509595978839631138588087136724472609297348075168532364870585755898063178475122304805686814655699222739153442055071414852657247365049005986088240976351864610922002961902425767613125264579824833316005466747671928130613567150345140506320429760712551048909844141765339422967921573516018302304606069188200112108752204950528221982288252383022965006441971226316347229226487743573665416744136076621277522549685308578711324698558608511209947235608019243124163823102095810050018591807354446492185947788226317747213283636957175932715005655165389362997772243724558247920044624174759263237497041891085472933940650029233827633946192891754144941999399189790764158128795723197877828627992425223071148791576529000996723172293015629985510778580130756555434785597548640767967041148514231028050314580852250009795546559973280511090086867841906008985186064390300177364052765798233811996757286117907895040792757440025423486323214972095213432287742249629722384385347978593134953110521126164038536612445787135607747307978507301077990199218736028774228765132861305560755056459224145547566108794963820562106959063643331707120863656035009364430577482297863286286851326689070992156758684123803494751960638127872703574273082044937238243270441316611910322526106195592371784025836293390384474640503352148812917602236703706277470674096953698812989617912350989694884386411278451746086124660740358195129095054389460523807671213285667980857965509069773907346836226289829506722948193434755207567503907971324483541129907269650268959009078148356757440564348474445987901044587785140975082235508886063715767823414873535724753991521420734490042766714902258772123081919249628401884799040148687613863561949870964006445187092470743673961654852141328875093217710370548267842536739060588069563103388308030962260148621769065344978599550803894735886683162164918762670715110276629211798781044340078721230074319980628872045920531944893076415486679976990030186373869572279595330570097402338042818543555297271935786949790154599359745608630646086990735105400381170600094778096987993937832254846819599327941090071992419082397594201518487016286436329662640280146693458985288135264897105740359212787183333106804966394173160885385931125817114044717289561941848552673074699632761118107744331062047881667054694717997718167432441651238726797193654406774199149419960561947900749585783444216256844156546800218307832706544905046869756681761500138417620669750677859502569970507030282220440399816983021186638415089334425473266116814689582864404737676139621778195498112083703735637963010501877841994993831740973301183724392951104551378124441950460725311922897924971896963930333018221451975517825805080095391270057225132999149729271415589008673266071890975217968837271099930160179902334480053084998836461815678300640988469813083523275333689812652519413010550583710894184611176369110873860086223373901049222241721460881346244281197052186562092155118436611793548517571659421262005713587898426952414364325681003647406266123810507023750483021107006328767364592092236886442247567802886450378496358453214735016898947619320090886070178327455101347152370744312464291151277237799864644282554360171462021882765214027580633926610850961785195351923079695136608815165949637985888146436017554794113058835782244667897371461094414305179805429318442076531472441514404026751010394557788450125884274179997696448786348802694712126970148963610359635854816550237095807638523070227180922187389782786519550684848679878101604905894795458208008677585264357262081824298135641324861128008331653967463737503680790675042070599670665232705929665409897553673723769671218873526105333743776098305636406342347258857707323691836947353507403847070639255467998550987461437717612685658867854579735658800402830612379382588812782391453423986180593485820561118419590887438039544949280639705823140213027250535549773626906980722369769058596294940073761396742594642906818097734963601757101903388545240979398251380553978657683356123141440572739949236933478343141367444787920494193978870657594711454142111775907074070539323290989648361380342426246894303660799416240845430450520285402731419839296000107892426322993357208480242212462615612237134965046399401536668462688969405624784417854189237810345952546736093126405836825588944786956178472267559266548786190614634245181452270924075525453788004969273869946322882768795716632361209115845557496587485160696483263807805575796032068560264969120673472359275958577630558602758644219822271776475853682236093649858181758478110248886851499430706851515392675566531503442716617567385649287010896901004627311827851606237983412732229969657230369134476509727870099079402441406524420670625395809375952396078018013847996034074220391615906833407834050884996506218658117147719495873598688906103549541842398925405022154596944389642488291209703842362347426249689040795840156728179388570227139762985323006092576762866360880175199432947510727398643124136079992533419637028850758343742720096652371530290113752417752238194564934092430878658820665567645629958776041259727240171597578741768231939329316930090154227847288504636649422532426805721431024816267171336125036042285527025549107015214768561841034673716865458165910867969143976762250162345746815386509389476328284953185381483867545936602153977888589385036083590343951614311239665459894403753427524519260012269476328332273112764640980301521687911594123864492406761898454662568987927345437167424500854385482095549545514543233588261280155172391471008425651414712311836498536544576464501180963618040130739337805020823833055557997057628292673245032697319171050648959305050921700844768403274236203117296228131164303571738186600633970968146799794883621857622744205126264691641217799078699028294040522723865617319281966254212028298185386270850136984641628627964734317066963092296672262449186624987222298438994167980785617827221207579429071870838541341386483832669773392977686416789306120519986298445772857442078587786592726772085413425585593672389876970420823825342423626979600393518319242812483512852495453768976523177752988459546050161678954893046861560691128043404601639508933648085116187006280898733753604000262767081038623361156604496456709061752789443389952639974361669043521676848413353546629192931182723949657266238744408549487144691763909753037481805627982379688616006458321820437881925821171449952050232687083874487676197296966699150512574193067336945400802765428894717641541445225663023887693204213162351564167402377593161817611467479498798294559790494759676884921303109263571097632441287170238730147176407268534042917409827707135034674483470954604474890562378187759990240717221027996950587878693857529553211933704025991827149565368843037508777227786776368908236216751973404141804259103821527984553591969676662478860423070285305159547908234816685557337633158487639785436021783115935583503169541146792328903598553426929208410785098905506666598343240219457234045943934191966184379429886327394423447053658771511403044259843965796918380822751439299512049050266744011731578415278626891937977565988539812891659755025496123076453329542543605473375937003233048460789674408737145184896003644968936916362395352007703850765019986734740842758940613674533886722527449046831189565389276777165332455216938918266590882766043879891988212092016934074764358352849614602167254309569366634185961097962793098250251705278326434815153896606207469601275504893993655540383231299167906737077441855095945339233579273713123778306957080887017149571709861590524104941989706979259660499196085627947975804629465582950503703434507825466247358264240015319292227412005162729650386798793279390146641167797334348927177046143767607787582804706275791941137280889004418764975665039233606875094184977386006479420056316045414180819174146391440902747262374948965609686976478124076851846297218515011344003338413035687191946288454985894063365897485156791129835688536441934857464998340947266425223747748228055856430618547435085911577303311047856434245867079029724135682314364026692605812167412485923553434644473091984649665815737541928300922245651360209102208105383517850881901068859496932120565414682040789247259540119145380445766179020078843420950239378868806328443555281593991348269734504674808661520119390850519767642881554827400662912737981970122575874618532900411550648662792034438519907851513468506120705564486259615449912826327134287050715597752525757822253477364488881849025902022480785192657897247881967868869535503032432317291701204324924084768575191085901824239191398342366340164456939144227243108887109675838381394983211352749023988019093472081682018589133238544417638357780975675803575005419988875666303354385468054424471754166246508307305655405501460132790617484043549932151846153078535404757174434988117349320190559092885708376043988908941128977186799384983109033297154562953998040285985794966962999029993536213144895451561593789155922130252330301940430414484736600125041329575815207982113149162813912511947413802775442008469412563792700563751015917349716434513281734014717669319954357502265448057517148665191597711138801799988597980819519192847364012493607542524482873335644151448445913715078945544358472994895508255491641956441180031886727665965130051257108805892102468212019204359300278723856561055137614513376101969454003497952744228954740040560273713359601103272619056968598302718390748646090979090899308037735584081801126572994958063696618097383568364691610107785880089715050509324295585815073993512469096633591706030032178669915596423025166497669320486402866987524386395309729169785865689747480255241290863386312907345176383293541912554636635234461163180907770872458122847920733926339444895162688471382947875238540738251329990622858822879818529619747986226539422126590710552438259824779176787935527356308398095109592778018094139638093540305184290076377330845211760520767860428078615659973159502246220606941265471844999115859284433339518315414622982948922164640362823468611426016616913102377954867099330046758470517867171312789974097311605060593541033498748348544211347053839375699426738486045919733535300946869881637968986629077479439927435062428766924523254065128362922907621567688837096009535317493836061463177803148196160262827420497847335825706662997676346992307207569833085742038788518122600752453688827591977988305088814830138071081705295855441265785704058930275527137866440401706611148046450473660893783555080860189511428334228328900223664798652444797378289603768240510996991212908255725685176432720487188461643860802805582468910066956690205174185223507159992753125974502626711198705597956619422320420156349584261235059462923075411162391606965810493184043139734397645855302072062031751757685874197464977422930518415831734125106684710820122202957977014127516958455175252586695718756409677263155613355776557090048685779410744499550390043344616118252613746008288228023820895315174158249607534773942122065762708292624363139533837421846065803201929205908273842003956713443957243278234272160712618312409905479399427225139455199444953169535320744349466848407625344221623906962020720808425575276818826163127389655095445734468636914376348525127171682708269003344965072630021153453199883921683161643294100763673051159926303975594942689289626725021022657238257744325397615199634860187970232733359539316835627497635637809325999078199924555388338493652082163526490805066149744646358640102383495979257654340656272252329934133215962089603100098919733572097406305136087260672891496257818874900441617642984684810434577553174934422640873422981039070773333204444270122936628902830936764320453680075619808865583175682378092897445661319583599462099139858151549508040719243138279633019925093347962407716783414641683267864299213673481637366037229497890412131224528678237770438857785239112575937585152566606898024907214630590880160974587018739351846137431500626335032656633449367897862603698365853756031285372910405145573739502081467551638131338119198357141097312901771757083432301333759877448223675297499252273188755597192472630445114359462833256222721375132148337293285504968623749880281361101435267817329383391238447366631282656542392908062283540112184400433576539216332188967523668913001951374659325703894499919475526615713322299231290202566905688276861831106381827649002630705148101478083035036974416672258940594931031591866975754354904197323010906761138064742863452416673373803934559792601311876866152516025820829510782184422342872449162949265017637577972674033256833898801244426066543236226870316508960722455181827819123191698359924494816861439601210614133812642907749605070724936038787548745524726692572358890358581983627472546061402325071131758209574076134672173508376839093789444030177484310216659015829957872379652488157711912597857583200883036915012853819491146335243521516659941512812429885467965356493164428042877725962998357988120633003718909296264660736894124425877042564776683044771459161479291273551207286110572719495116774865438211177129569593306865501700599573921830824985646705713482811567271265728435433542333908171099442909224547188575212521903577559957363527305109733819666259620478365235270236599713746206805454654779244272189890184129234452780292896881532304886994761014768149478931903997063864355886020657029697533515439274382056424315602962821186431511094673911889388259061916231380767419319498144091792048334458721687829176708019734776866559286823402493454145142547125692439046643842884989673301687275440539793169199679984786935595528883617247550153419199422346745700912322606576444200350690534285999527294700586648620735736190086164228266540176598646899759284677506636734678186512374719257521864932560306808101746900402598738929555769943704083045009055309301526681139879326898776620935272416890364760888694264195084757440396202673560559551831331638868524407193628721037831572935915049656150401171500786150681120374920953800859545168022562424105279616825418401218689311934609505337233751564576182641079950571710594991079927316245269488109958183741956861726319635681953119482014165438573191804512470082016357730752782424046553135691195425690424090686913496749456000514187072867298039361757713454141060453724771268921720318362691580920907149752018706936414142028269150778118752243813877797591631395795635897961403377461836905110149311387304099098310735182509648914720934743447051838700931714962275758002415279771119980723689348154561242874126428828414799299992231947645679311593691788340434292173156672761138442719723277915514756538408960775912843301444178003051083842549134530957301427411611808586195156248157737088739549668772769666912927207738611729445420558679420845069709479538159062954433956475092469695228642960614875497910765727293642280384433614615740764521553025643659714144118736116306501352263027316319987039657082013753536155826650283138165398911492928817344455768944870153803602138730771659950949107275055437046057028786130477512529145341788810738891026420378041949127903496608572603029111673120426835421088191344016664134033056846517296007144804895041558630759314859262063223085414940410762041032710277284536322059890756890612185250331327699006527860742860360591747697322528054042569868184029461149841829199845340215181674582425117314168760042363342256145268890778772570221494102359995355817149477480608002361360667900730486002627631460976210657871893078136836167873561655489609853781691690534465817135824981318799983376804769368799053736676657542083431261514460443181909755452174828500419881476695623628923337703689829926175380100348353762328678462611109334097582155505969648609308910403187056788195385069747112454306036663847828035675328281899842837141906321132899751628085356703225073645738698642397138349814467757019935213211900463036991868455770105091925020857753795480471521349966914313413298182994010687811415368086223888702656135044691534352286781721976279986067365543945430072726936908861638810205206186377542367221206244961980087434068955578228581820394098249889925655107549582557966954318844093307686394947240073336184790311372859693640273707289218635756296658314402621452961524569654978121899878895910398879749482686431803108881603577730099502136833045809526752479691205621273117459421718363212686067214143997326207535632087922192837478603657515450566271781455672235471214573131574209841198930809940135243905826855932359950403786224710588506584078674503988157160226670959158915770168118936832143166419119837473279739220041142880388359727145421474572164014914351501822639797239175440021193238762402325831187971794237547792559012438177598061145906756501422381207233965907743397996591217760484387925248816547989731881309672606513052185131347544494498746979540667939456751236099739861352449182708169595602825767757476045115507723543718139555838698888646426292818055430966771073423460460382720569906147934331474635340848092085628235354763343947271592166916880966129094778360578216073645495264651639851454307473919404027933476801220328044402611113178319641938748942255935185300017488265197844437385024014920189084190367512600166282780509316492161340276320707792964621940475124272146296124645616565598168074303040888660289357330867408143019149793121947650525026292280376435947628198476516944619364806663474446176274307541565312094248756910592834215346517498966572712991239938294461965371876914577729364266060045615524310781999478507053152274409476544413974895178031862652633817147931382975605813259859105912599969963805883635662207551008980774813308060862875087307552798546265078989870844446292594069979580402341219387868471523759535606905290767561086344498698283385381236552807092524490482181130301067540251203977478394583697667959440382694798735053892513061841452220590207460468642669078943384158931324217394856871824262128295355472660935806891696939041809488588185774037344011850549433296128365890546067525486924101620855472382001260709560709687198643908426359341907585342517776798277435402193780939571285937273948163198676829217819315798918645115678740171787942331975524255637293340812748740439112690246006653075420986938920808164283167161106351122322642027866284727712931940323491941479176235619502575141916094173035796555980340510896229155378150032309307759293786604431184427152661184298172766004832016629115395485871543900759654792232451409917062075390050249518051488814319168956634212908432405991666073643849665414112060431852290930603242553840876808408351170102985460818348757630489046362812996833775871006038699563592499224865209830264729561443520003977769960440279267862263084103134355282407342138862805251603693621317176783266070545174054826374291659002154698158908549198245963023666007121741006005661955816778035573202587026294645157295258187042025126144107285125255856047662288743329146027258423445633716747560141506941712609892266197577812354488205471984663023189866210162959908635611536461145689962285450958938589180907180580700433887123702737902565707393909332028587481825975826901461231777099125446032914727972702681089649516501383509555907784508589954109060467681654010003500366266689328124342412784460191874345375273110460364248705620575507553788985154662977828913313697344894463216954330859993159934939101799823359025943479506423669578644545474277762102176798985684261981462851519431892093829592020081048702966524584953967421102417877546953808660789366239943700720069016074687541850807318268454806267058161673164289192618670477059674863378050916497275604102865522458250349520526730096480102962283702443537724068955965997896623875819422457968832236083140957284248824993000211705097730694300738352646329891774629013029369000323863796720893885391642568202353338259880506836184765483328632644018397848238021796471652929817695217504601105368941245156642108302598805133601036375501150231024212402945658530409843949583077208112396577493714711124004347736332988301475973808020112443139040821500995815638303861478485719488735262167480603752033836821978098895918595496919195137656334797021312252447024825532089951263826518251560225000396700335129043925410025389825623382094661927021671970269116196326322130075051597544487725923679091276879451858936847008351197286463315792434000489716589955697287701171732850393749594333412758032031813769243209638978710689373210756856519392305101436103577655973092167358843883399037489899441147567339452810053007826489592161546879877469724463473629116495850462690475741991657200577378949945935391744340490140485572113676715900924171997041627943505109330450080678623397189415211126083054431740596032960182551976658249609888886589961016344183523659663352788347095349002059375688412993781296400398365794214210522380955490159991304411970699694622244366332006079171830995692861305431445582231725109701029952922335662839539717534384402557060820517235875454468084211912048166214255724093492186149485542961703814338103666543158462025991689942269760278799117580806230406915745995471851992801331910296091184423017306881026959874353016894649991162040546796765940435115165820767820400023159286804605378016594799596160163399005459820207340726126448672432368564349487051096336146823553068343457643158672687318744518829311251301915998184159916557893528609671776231858216616456670568034455838414900904226484853653654500424802850966196153663362959461498962140804074271106528021186611277764190818231661874854393581962660562139374853496624611910990747663900687237289607010332907593926271433704682504462678393008865210821683790110377785949478204442546638988919539904303383547258438276583162813218468280146258713808797451900317237756655849218278956948367708805890318514871416996403398690752626913164313040964889364137604953587081047705380144617151875234288486438526657826816090252690712785987369947747905296127138437740466751069409183190893396185209526444679130583413979521976003051969993735417842766896613318207321853704414749189474701514499053461148416079433512765204650394394537905921878472197600761292977569364149590685484883498611936671527551488748423511335775043729505381870916584781159683542279991506752856688240877942401792038541048743155278146251318178568668566486683208930851921999873695112737647776405918137457214384919281910684804390454982837147097399266423567503847976744882362049781794390527394534223133253090146636654870028360803815599022034122374698729906634309625019653275535370250903688544332507138335420541147096835245366777077016318690832896278540554448514254095171713392776298938305823312907024703229866738409406455423164915035370698153810641309763023531480949817571844998159618046783103452866032895392455804482850786913395644083656346699867481983316843264544050754187916981250000222682480852130734186890684111112425841840061144018773996156205691880937791502084355303000420009686396853122593473809870727405038975071517061977863286980567977605219757738333485775967214939318491729423510964165333254257758720581876451916747440986045272906302562682915196546547835513635861051995810976237885763350244109575773541040659183917590450858968830008599432391666762891283862907282575664336841125608153323236747362430740759327588431152599450038374366245238147276766674903660203247470028882678705248201186301976356841648568959963932249613171051192574522226092121622313931835542747193613349495048029931277636591488439530829754536118215914044596727625284591671652256285863792509676436846528393009979913761160011537124914158387291912889018890472292185591889547665131384438556927644410034931216905315209317099158753258090274945556898342691039107034936729889773893252436831167297161093029915344507358473124658508009999879473095123777418154306395496579066673430195717429736293442384410793932389128127992379508250751413650567489206271284238865678980564206736875276046848935117061261604801777562440031897497451741832341152829370952141159850584349661534548133540428644697531668854637777615398661813075951925316737944696301978466693875839312189696927730349230603524174883749310696370041877561563416961779143401829667468544886034755984794792796232094315012540998547748619888184731426208662064698672851235365257339252252211731144725932600917699808693612669829216045812542920497170809499220599080930176162860811182560455732445532833903771746952218603161642068161527514599207402184977100050836260287755747623504233038003940447174445585625472081433740028323330536485905068710635873704622537803033847266120692836883404088596002989244200673375456878354152855011646994783295798225255761966633554906756659518521202970865357758254702574273945552531069395419866979942228423959059995486582471608148103513536945479205848790050842508725436059234404329378623868667337290042719790435188562485485142028083719079238056050064820169237175411462939107207552416487259940681956296033027281875899456271867442649672475690505058299209496480658338048056864666000431686599633663123150250232734338452287089324912350261244553488386138928120154913422319270554204510994888414857264678229924442330368566362094498702026955945046200201651649908528036420735557831181422840033023551037664855632520893843241773675102644201217552619284513781298590392310692803781715372833719826757457440240921447511693179802775497500897458533733423519758603762929827600469978694482005923386889103683583203649726581356276013961764551926881405104336402179372842739466371248383473739542210110539330481776284211390627695144748768133995087874484381615892258768745357920968974930489681944257560715791843050606164842658620350439423929712315558996401505752916714986694794103279803314850677613434468376241903528678421956757356269910431150664898486175524436140643711598950226844843136211823431452642926532302577400832546634963642969461138172802721584395370308954709842993836014453974645687215732443610616612001040435804291081061962693987957216931047551449431335432872014029186812874784746060344649171185751521260329956246797881810413196567207191091289549484686811727454095039970583126526877884583925577271336150147550190535507441707568267076821370488587957661672188845179323796796486417622118296437871579148644412018066957012345116096290009254243944707305915516897490041029817984866857813069092892816677797352412896970434356851286567868587567773782948237718520295353866731830894102551563644315534660956056741173454108035608458644327113844893926870421452705421573836679316626109168626410639371462779267745814719122552851285052565696098872840318819939855430796521610612211821609131072247300819769735278194105470297662960020220869352967246655527135287557294479290422582006077172916949227262272286996179344690416103473143554968846815394048230253292626992770866547196935731225467391018285918445664523304019417958082867245436159701898805441391980870650647640076062126081421313141877338673386872908981708095615198560311376328976259847406507731453017821707363607390335752400065366573520398630620195702868639661351273266467131099278596360761390442702528593220413005702587811366895441802420921652625901121536701399137198139873885706216393237404044941708845046190287814765992885603669519435553882953253750918704469882002982527320824783881474874413478199942326487805395328650022449287190491403186180783623693585151633392863333108803496700188005328184486836486933378644011183586707655429838467093016635596646597589422101603148378815252088432595215053407320594561639353906681982255897711689423537779767641707805112414828315307783636411704394851466357228388052209259705592869548360504213059819570911358834806938997744499185356675185539071901804192040211416877923437011752946893999825019447942718206224969400798004758792330324930449951132781626325902000030662282955034482615687414563645636532202878130615435967839816777051716166337347926536994869512979308008033071533862722137802027547810529085518078936244144740352599639066608149288422221256000460248476182058529049270011678299388707808736027876713339785983203030994654197122203312592011837348367117261331690008720920023256215675372749635978609556145715398112853883829447299124530959662836412647475605168689611421295966516515376190581005264690071700440580076624509683551522781185994895188395261358363700171018177827416319880051310724362675193959989356264708843984588862833180366386502932736442597465935418892820479926150808064085999332820569560858660089520549391150103463564731369844401070145391467902570970974614800705646116859743414426204999796075840412512815574751726574538737684103555172049286403371281295739980432406170856083889624912193514217888893223867104625210493453402330237211579758678943026836550289944176311154195171196361916008087414713612027890530081707221524953611614050421439296006694356106102340552628797175831101606802426832980966332065088595901825814852840590491445706072104905196094658996365851090837004358946746626373553271100093946817610027141146658010539584725614533483694208574544052266786734891490037049584057005413980218225305014987762251343496520903429716924614739342977629203726853037452915742565895096126002177767742266293974193365860853691107609192312929599308614801207195589322745256688253655831995621113960234827537664440672681428815012554193906226450592853784613544024788375587814741416398620273187200702470621762845076882264250765963889149301944939019191659295947416388921458342115004639720182387460959797113528575730087484883532626140828353816050176984957372841357630688812261740795704459943264514634291544533467278722998797246867945156285438805761328762080864909295481002551897162744164283232385047697479616536634297649285999657030485421986192513315733414277021775704416293719623367505677534692734983987375193037877704820483587925455288063634094323939260110593906467649374516166002806244419651903427212671571472232080440181904600946748240491797869129207078401568423200529907266109068029700118978373746624425456495941714981496169936781967236992194940230562326146208828430707508320718575585526735500559087437530861166647315765086321383618831388492122823719281325118962252120459535759673492817364830073702141632677374258247448076075578810370178949399890844073996716026694743420298946272545863580019256646291629498534423082724204679137312074285076170420931289833822900101870233258684903405833275916521649085554587619388159922981945749666440157249885437331601701053733271075470453529442741291631823171865191013102751048452385957935823886683792980670214485326882400341752757853282055879763627384333439537829920095993399570333739368111064681459807096857178145262038154916472827852331129764535320245071903153115553100373250012154444208716941435370954032993314422568434096574386967167924069056167388343312469133697266968759116119469900742146018356325306210512491492381096602262577722356637413805691032611677673787630207900986321694268771648443657577657024620382587828521241766391238201960338813111403629814930142998087302555749671097037276124474606632333502826845593879073223274510360184576957061136296885920365200823985420357465240693371271410415650692872320414077980089575936143906341018135671290840552506456300589919435829346653934861816201285903647062540590330739722366262669393389276468950220582237324164206341728230923437402569614440322793835458141803144356018759232437271024073089425655665471024817516922213422374397935265346238276882846701882461811455513038157545485745209532228266373970052726858674735515000606838520025406586999771855994121393149304549185230459070152900069403913032219589257350066980412325061197714806233420651569451326475474950977884834748896094380745114381216714215272097183608725461911033409799983576690181005096228621558116165837759401642774403419988928508716844569901289145303881936560676701349474743379564397911461112074785280175509393463793103597742733953501172377114910610606302149626650598693987723519438758912466269320083905671681183900568343287512233837035280314639500374711453770851143973634771236979060999905581903428753164793209282917809324911144945763004775468306636215537322981439668297272071209674745961852868982061867463424578459997006942116597016212143787515234274601558218732536705113286814433833939575289385275265039039890031871598195161876683759037619863949104772838623939771142135741473214333814997937222850028279756985629346155418580024784270527990432467362250342463761001251710979130023873695304390854986024431809533540952275085620746975230575935131875275291198732664293033861532484149953401732420351182561800179705291777401005753102225720648441072793145569184447913383504353323661699183445156433037465897701277973997587666976204609163331817191030958538411273331733370446686953378255873778352784843657770068056264183004908272306892760532117338341366148810707876050499596704022867936346755909581338233948458280991037737591294493108030146472540334797221789722628892270358030719757255443341722304461430131714424264785890238956402056096074774824546312127598298615222456867634388743216134074443831932746502702070110630787389415862855110634607695172414061540602367999792159945267163829821926376035996061449854793389720478089147954440077444413931816006974838501665989102263955053653421710274712272192034394414064312341572957956455971550489791743472238935035535680263838649824792647686417448562069266787280971218416812195378478308181440713745954886235292802653040202200675212408245639474776951956222316856844719235106216928688705985200581397385016707202380122389631352049017725892576917642006462752665615680344698960352364659313146180895741206887902801308076258233629236094034434929671131323896252476790567699938705534079353108879461365455890961822532901313609522396173703618936315037140307245230641751359704907863357764822746962462824571788737799358469088039737682431702419156657340010196085981058241670590693464665522282185926223801941412006281950502287249517203047120093626869614460551859747151880598737508502874256493499297119545432367336181342489119430160082172324395701277129512267651215329519026140450702103133274022934426582895772028202878992661920857211435314369460946382898376557511739803425031485906843557973448828062115621480791393984297460237627413437136350888971967324053073311178501163714790597665974841095263228356772922170148323857145194072926318544499570227566440311222370299195619476338003583468338614068688663517680874357326943804691811482184969032714809782126863876945341428664176111497302336289612745876881498302887326186045392424612862013762891952168193638247727978804211854609495756188253721795004453865741194889773157278443058382021618664148698609098803487342624046984983177860213597367560829744177328269388562838550752161198147506713113586122615711107822282786517494289460857656622737442471910692541426839955258572835925581708475784168150583487405088795198597415563014661191296888864097731514767132592888343523226310956517350852147029604594875140383823722388079954505353348785156276866697265084078754744418494238642244904966990791836032490944624089998937212934537909027072536031540422435994563462361691144757252468744809704617650410325710140083963380531892327476174311670460259985427042592177914008124477718104519077606813331386512513456408717002381841762756592688103183952033883771569067638978724261604924925997793826308211675365984812446362560227912739606185779274158250763704500924255706418785071568933150482741483869374513539310489011662550394653984922003962531102083284945050436957538448121420563979346568252033421163676588730249175427100474249376710797333009110074977687776408745215588821381967427691150643595972184313704752528979162076845488006280170975792442644794410789760547079800149619138068880213871733299137191518151521310629662911421809930364566409083053785474014255580017647782867329271638768958080702158866358334646400278942109897346392917449292570029695200483339270216008488525047080188300565461637611161706489486093431009479318866894359197468048443388623901350351061939237725367998300811291374017626160776503727744629581586985572898338132567347623503456492104234429881316398944720851218968253636983703421469824722620933299823639200255455764249517050758193176120782066352348265026670959816741903244634887839799658147916312265021191512665311967781250661592515018865643970419756776531845012702289258332628496776917408336429910683173534998690957270486198506486550574243276558153708992220086200638040334314184215408908130684254433289851123152369023348013196918176696819141270473814588946351064318869454488679439523241611932481837112410346510876912736102080726571027005399269062972701990607503264799459408610794743984350355722529913209413916484868986460911158472308400049185607951528755827584230182505473334618901937121811936875707397001765146901813528223900051666764534635572149599628025983696872435351451659645547756083613644677737746284987127971687161225475412948594393640215312253063819530083506415068773676783141696441254269890753931867096103979619081852746025776049542511969341701933816173002627158848932833494490061231272945901194833625619836942425107416567179078349928740028587180548289228409624877469382931877943261684056720391517280357362201546430162564744939090457599868528877311301690813733645744687762228404850456841560166532649659522021554572449701739842562393448103521216186502624758759668863425755820211105615140152179341100769806906964292117013736736456357573594131345856760041640670530424948097302270167534952540478901591215950272227202361112298821621690772971536499116019040026403740913898129188753636570906291884160484866745339345734326443273945760982357165271916175606713503376669318505117777167607464277702669024318408884058740788102217608269402746090595816392645962562501588410683880112550734686515495330497614763026642647816999294106556946640227027605708729348092862808104737206368367747873302176322203979927435555879491806708996288708371897346106125029479490311297895170272406912470630963576549387321473376697858404244568698203262749642874582570682243761177590297755241010531598903185909677522714561192937979798764090191512546350964210224130958747019020145500173260671341343111786701123420426038679931810670430351518766640667732771652318771029343645771757054592422059508602599240702987185031175935627414100923149631630639247861971738657089478676065245183435144523239932283391476495693709396290312122489724029723605722304997593200876948331830723299184319324117545184658496049170601376312020324919834218416383138369144067831578990637206846061741997877600387514162424451107588937658497751855983128552765651846463572355005786921587129886999783648935059352117997213214454068807728747169843068631506977750069558359037716906101740510330839079913303530659422213413921949118443849442122250221793439334446777251356978820725563979122462103568021384305294751715085127383646373264489773698610952997038990632974705310766687098319558811380882121976260861274487353056063998870148827697073580687243488522279171289806273233469885428300030635479590142105726333806148041709472571651881426921766272625436904749676849422636465363452738061508635806903666774074164426756932769063824435141104041507019972282302464167694940535015473237646895780202286224679778803702222563471191862039194620753488632802348745790086212743284954931451612169508261750823832967498388728914126444413601558392289608651203302852592309028082293178823680073976988572911621184612732984285522869483885300439342735980864628335688941674256117557581527002627765239883097260067798153432014598759526093310138358299887831846820255774071046748510937072043692289165553365594900610130904453012185154155475596552493936245528911983204693693151511409894943110954149827949174050970763642466485425082418908495703584714407466101026921805195435859521012968925397191880575219822919093908257771904467243889981492723013800501065638299347329438363643402769710124385394071371264439324104089451964482228280012109195437454698469795052949580036942305528311310355764523190522158476803761323104135609258261272457150375212210782967307504340927734268633104100554635798586229225885673259036160945363385858988920803461884815715388378079837145139146284252456609509487263700681238715036680838729072251594810477883213446473529361737533944670331568337704056526760881455994960005859384040179512434676535523671236379292237683888507620311267354056523470480752607680905244021836641804992035250265611671104178124974606811036636966871676318702089736706867241387733082356747307027322184915755892706200610348048899982873939685653186019915187059385013426906820172794420267538950079439893956356770682967041629452809200997423653743814179777248865549149415535883511379510442660675021036367085162088095253984396838166109646547407844435622031690493060470853545329293888829405922995285346183196661290728183665521265493870939318168369360526166741676755428496751404958351325189347383716039738635861265083315374626700146579922065273085065156328646495003893359493861286878882179807615034945511468007837967537931878955681502118256418888748608769955614784120328045525369778901413814575552578729523501133232367117248209816427599774877615750661223670364484497939616489481751538397150025550586786785121331325452704594452620544499388420201479454430358450436729123525485535897514218585882133728567826786744913154166915192155153096553372234134281564734111263679300184912031039055707953129115344322947167454037725184074507988603452397406045228738366820840832885140858255707068235640854684594525246843324047110716557579149760023868159220282771046969914954842257838289896170310956671867461273807436217639642514277828396167573665994704325411958300152494843557116003462968540496562032416081335391109650924231313265944072582147236361659836121219906995713591094871539968141075041946586427474916556897386905580338386385418722481613151918572728249703695298520803214468026184411556403694794190772621167824596236952495976879515191452806964148107724100591425697541866913393668304302599412702921743214334155337300946045058381535276755419463998686747490787300601111154560255047258954781670405084229918335415327758436472443326131469351888006665116759655644100229738937300227324591102148051770504124641739758169201680927052772358767711028112863369200949573247622927419272248550704833579907748685400540415565875239047768214510591537969008414407569461173555887403330998640010165244282627597602250311770622478550762924941738519769856990338162495048378786349095039510741236599489371507444623774156801384866004454437596551685981551548372099379826260075195855314672757290666299213080210900819024638874968166328217969613162218562295676059734761037029980934179399898405162056534894080984535247492423080433586422149495748785073404444103922348880150311249450499135747429281310035407512071688854441353646377793461102616077162938238522063719826899703754678700023354587085168139362214772399825516855227237929384985785758920137307637898433093678829242698493111071605355238025040853748890439592507735694186922140017453826851988303698831169261182130325340634580656636339688405084739491360628959874660215209392316134811372718104886483604373209295847226322353180800751094507440942730085357559361741337567870510100196618406805260004308307833521190296703081340754906868870853322514059916117339930867726996439944968970109322735794182847570079717208114753167783665928569369034918615163844697328623303006465974872236984115368636529289339116413287793858818526080142253177723346350059033925279365961184044337437886176309948028414322721788375210292591854604988465932005843828871169931364635044021721583751413083167667514580414774359399838870553320953849107350876728097345890736044641879312196184886723132102982977788899129027458775185627759943547687101638003261930897332940916927118645055984743999686855409986651533082072828493916973655300261743391229998501332929824301563046787884909360072627890813197386425253653868768975162745459477481422832878603396262350383296609591591105156198116497968675207063436179573475189518088659916986676489771258247923100176521887545375053154758773357668007224588555188139074405665949068182414443741924354798303959886728350522902920115740251177418833327983570042600727728284295615247704256638386301304774290690862661522006418538489561473535695323091828180227575179978548903428919102137961391049004461395312399923367655090187090261495600556205015498429554832104604225649545279494505560916703996070861612785378413834602229646726368108713963754973180188942273525547058818514363291232335035193964665376793513365792614812236610602658431580823878409057854959531113577700850508310888069438626808460593544214542653815519436470304102363627848222199668269027554849165364939434964713593562226643059078249055376419175800128210802583355684107261904226704542837696752758212879935954487723973310814423553113705101406672217242818984795013103230144124147680773657708157000832041891724768496277633464988492055382594112426327634164585227369463275891077892943634918096255480783568302530867802923451508683583951030806158053764875100046502124696496081599460786480763474216682605987030921511265717059062824113451181901201485796479954743529259792678581817830051608574059471677506388156617277052948469072848369109945473431964408197085998161826283953123866489779199126657576697902440095268855571711265506754827090669164589441609482962135754097374959491398492593570106788600342828419234634428385385930315871390432154488269673431586435345161396796298314321177800661842304660351296324928440776657829515656569686806946363530878771717470795139170171795070316707974254001024909253633711086878170430940923081837105260488636776459677395298109681075640401788568523224418801743356115341564773191899315535960435737828744368883588157512190825813506023041024415995741447745468979807696456720291360845706230191714787908642945445037401143905993054648031816827339714804875759916584627351932586614771155590650427270479680068783596501353435373832365158844149393849525174939141304704755089449926986007131135982753306044015030195485713747656365669520773402393731397958345934579980131481647721091071823571699082135794571386449632339427204621530392775449246679047393335608451884406848028054714322564843078200501183251594263976303952490099872625095940935557098049085216339225533802129218880410760065736184918741871650834212397210407412813428148023949426638797742310504573553714451718985963895794353560831090473205965895549316229889526421013984640971238997615574241580909383423873528179508816210014418607483822554720813939389023174812285671820586738560433282553720059546711352516864070908782155194322695950436126109487395619821448966676888846666481694154394697198703037780992485428774424132855652487833282573897523606819441645544053634342803018085630781522810151814974199198199762803539592408494177242055187260365046178920923875544929164176861792250003369993745078397562125999010873099256224135621012007425254456567513829814275825780452139401590196733404662269369122485468696076156689177216819776396523219251209802948177298764346573086499549157851992523566041785014006559955435082862529719040856654228399623167713131235708772648607095358492316942056755697754075658839046325439731054084962955378959570926023899093394797236026900463018160596636569874568331951443828576270297994293998913919976396353827066220959115856264868750011546556725031915905077761294317460374627011865290816143086263896380383262434246948853784332968637344821462362834971955411662051986926022319493191842949449505530464368948053727984085804139933492714414939666071574144059824889550161388634848915924774520861521519036982766608708339728225748127466374122387098126494800018018961085248570768950676448481666335609869405308723352559243417426195741938146584754348480756227059809386617362549522704248281751066146708806042437797658841245103321551892888576430191930461911844191151543426643263330002120465210530812475485569443169315382703149743063188408126184404446277226275660690349292349137680026055097950211803636314658265493336547677158613312406820940641374636791930351411762977999489170415587649352553385402022282183899879588837337591214204676105589173598839183368604238886427580699561025918465523074997425087620182190507311482999542273824884794272729161167606513952476501874152565346414073089583755915882028661074627975110958682197270185766422610277486246714699965975688712504487752158549927358193846968343838361144780663515005421645891681223714693858999553656244009649464145776579466518703791498499203768247454477692160329871023069564570767243640357571098411518118163198650691679315247417090609457776435035221111276930497144447483535409566923061192815219082443075844100216622193954274432909525083977889841828838765552176741574690543734261272518794772251865532302021384666679844958351929017516668505330406682474738973834822389071368411375792244463768167124041516149334980664807181003976978131879539686271772699018277116651061828042625897800638261769311685158603757480191666864544829907832034716829345342322557085489993074199533503499669007097940644656947279733734248807368300578727146998182303948244020319488717090045618148416333945690575880882565208089308794377896514999321100290365239885757573939561672812466835877101060825283563263869709644453027725750278037383191838623489947577562881742690020646495529741048426320290715520657549360138303173898538314895827913840090416771291560923164145229523133434849262256402576393276764770852305680768290616446153666354598020220244419509078640939594779569238873599950108840891749413332243823464969002568332029260274821639166434482612571950323630470734062943504055745509387033104751738215066175591664696599860283713981950706526942589945226849309114298772230822701551188526427576810706587295112434591186218573984415168623879830682633678052530763953959213916672949735935995357734661557382463350724770674172823862325373572381620188782005528541520211306866491962629974492162054581603091602600582651666313282397120882229541469407806019166282693017076209614265732590984733874007788615866517359361277786686610034261175926462982307441951113299230996308897398445456231373669639865242142710144294103617015472480589971567742209435660307187540795061389780883002878231256654379638117067683463673365686660155666320831110691023687586102754870809767123832998618960930356095427010685046217866339735148962078342999238661257893425557059705118255821742003954809991737367174707512951255810793397181489934810096462532976094349723938333534238009054714567580097137775212595416547123444612739538616427535611547591246842584224412649088572208550952355172692599667227015112304896076606072849182721616864291346445589173491478426139490522538568931593483956584620579201725720054829884388407353644315948137987675101654024276110598206730697879448246943621863606930462324810984744779589273501019242142491386060650128955809952042296296020392742381919648208158053513442651769922936276834862388718997005930611864877284434082313184506383096693810956046735006926659534985804092605291480941787907750416437459317330508111312578714043047733205075263577991125659676159908549676216656529005561615206758075449049466003729907921630236867798884949536052780263855807856519282551962455830800595089445090328581210927332344778895150341030302192893362300739383456736988181333751094289845559599953266246088222779414080475968296672387313805640157495430022595109317388123893512888246927620376000378797439273060554999009225868824838437480313082610024690988389341464851017033722111976213174293113529686417673108089610594138433088209956797922179645208357576960746021666564532730836310072408977696612552260570901164456088530165242779551397302798430296382142158616348010220154795938114089011603446573630439711526016868208750997495986419320969665072764559623538196172549091417840428760395776032250613947516893894837585409331971733633539538230359144443524572782700108008535284878674489432688978545612151834910354366588294719620473141733071114322893696181362364723971379626804812088149519433828910642731762319813991912997801887217175084108003826043971701047490209355161479328097393015757293547478045731443800505496371103382884289921019598143522423759500872435509212476949561504440157524394752122450464023332199667229532015637947239646212914224397623729807110083111441464742824789498057244778289058235050277942718022617011864210818940985465428815408108971533084421263970644860043844269780407002259978436111919707698729947601367202963997908614260315109036117544148506762216936856308292526598417104101291472724133368538270822863176433507649178263725142847175278106941518411929064701914748438942808874198041446342026297035579103408560448845730774154991772401726083054631936533760143037248099504599373383526816824352200725040114843326115222709774252674912035141236057992646678208333663718824241878158441259595153632230342872911466665118536130153278783101952717372674416199347756525501712989422724647324099613852614305623552071399792951874219779250266247147939119600299158818739690952880955395064218561519370509354971446871068358285381981049264981401216449393766315293508525196694069720968491931223448658810454341576061684015549594979493576992381001473103531197422147856417251347709609230327686503692378506243281245926867274479080204521399964999288265635190533367656174165574416281215673468757053665979947559960593252450590380343299207625867649367482617390928995618418514900368015962025068328225702757240158218107724356281123159386297000553633962286608304329669771771623795910232560664062317078261712134428802236966094901024874761378800546645474349237794032124482723515640489164165277765306868985832958746446902240339416323448685525383394124091293450036990241387322141009862496844838370023313187815174430166826995117027722291570590541114902770669502102313200419222330028124184502391868584854250538672013350968487402152981102331706269276567921422262254370772863080508740397962044649922330697789664455610704681653345944313621501973208844434091201450171079848578774293474464516037512343691516706212274420253320179198562755969185897373722175112489251227516590737632036151122398026636624927523550595666288289482111824874178402028963085353252426654144393818747111737689297425962792661118232052872915495916837984834117127561104826720562124369382048477669520817123963873754973169745235250436206385953146489191665025907914355303554538726572287836271118565241574765702929859099846402878277706290994161671465872372282383113135180741853341429642090611664135709911508286724559623951736133712832476773195604661466504143078552287647342649844553742812547037086159961926883636307177553657039492987100588092367464160468284887226647924333012801258236265112814058712400216629879750663430248287848472828548219781889366438164191585579154083555945312214434023838740108951464786659169643490186190448187396725693616895133121041871149505812055422594419584044679751757957636986429754387061923113094869211387863177859856701764304095146705693540173907901372104740538318696214405712257980882942046760966620242950869890694567024169076544513326981717749656164286837852907244943367299478659352351090703340496953144040236268677459890825188487796749353154086429605562256826016269906588278438270561368977851132886185870543290517810354865995057987362129167092791526697690140883123948513699909674984973517619922015225124435687005450861833194457103860286001898113150533753024349085694929097569249662125741624240014057381163463684919152814351142604014481974903221062116698971658264597852405399371623347343684594830992242843095786800482595227510266931964524716726553682348056160680861636913315130426860212511628110286875324922627932224029120005016232259987714170135752124262304885250453555031520856137956240503052066834299275476631286360257632687787592718392383000877438610934318497259521020582871130775603550133624466711006110274360251329282503660558116121041068770709031303573578944899726233842723110952084817553608798385105968312857116633497688592902495328071604853156720446805580376260877449692605117597908749188822714753182183858737741561984775800358589140253358333898957351190531741307203985762074414914854957520213916233817868708968424276570848583903222476054239808689439130323128982459754905315995103886637316800633236539229528657865559460537998060279670271857323284631400052198648663780251873375948096773756135950975432879548143681667943287895744721293524682891000952114339066980001171256301228026746520565199683520765549002113048928579765333487546417082206167396095724947151411653287905029005229950781578761348242699837018596563012406544321292919689619463907490097028267629010275939087441438835652802134161496191899594207283977315827813984595270336112175783261284073908757999863037675233045278962791878790531569051684021486950978947116224357483169180606640825581579868090587245410893925634308186725940650993039201842347187533730458834079272102370771274633013056164500131404155370531696481673004904763729840918270131577335070811146787526283464626463628107694223380649308179079507614132333357384977512754273793482759650280064905356080800197346185098839081266854388230369946157173824530300311999917901533736029019575176626765434067788899791600573280007281025244932288253242319997826863404348900568814108840013943856695515040215539091705085306889693248076608247144581552363923880148745741887043280096756829587635822001212140640989832356655430604594621357983780576121565742373838849500844929732987551231547523233190985295132945270838524494909552000952881742961349024373916271605386398942273659186733205311608719226828665708365477141039335347783738664932718615851162883846331836809149700853502921502034825837003266060602080520218954307053132000700503166067466908404414494941880231711374493405259356087780908455544743734917938471809494776060446055883378040514053402102040627970695937472532993542124721946632570505229732767791789671365386684983149574368842972176947232440737076798175349005215419080825129135172387747965407535993280878735931164683608406355298637170567127036765232731465510925073113521907296712536011239296208586457331059108696704463142039815654025405788813957699292821908970928782080661742066753133770657434432358047833805578945517870272339551860901202519810390622692474942237626043781150126010950532235495314559703840964473142070741449239182130697507344284657145397180071787894720120856484378993891761321304905206659433865849383031018458471255458581052629154103861916864882193654606981688033654156994529321765825483378898639118359955691239662388887037223610765930741614658802793018932181799789627446538465167284239946540174626770544303740395553466529373898872368137596201680568718118905601226151101366520597427106598738607406017106771978782920249502116625806941837226848545919971214789996043504069804708965401126289825699296686440197556188623875351157601873026121333431084182886267655902415080571353098427539174063016442443125389762653468360794202886529930043558716054266149488576582128690133772263743876463874327278995923644326356942439143040291778978143411987251113671958039726811309594935326967557545948568750944467152203614336218133077909929791834854879138078469405520080593669531865375336837328139389650505590143002702323550898899187396905690575926017199565452782705595651572143518898281359153088927879537118499689026770702954417366440879703359305725245289468647229329822135464335950681167035087511638716247687364529686880786281644753164447547743948338674725549205062425797512515449940429402070289837418022413423511795201797254696127009264121892060494762553395358439156699842386741333216481469364154219255440498341918690694022701266158442910857933383128405332248192167615852387726688380849758205174194498280877628562944718613500130477671226248818632372621902188559943549400187476186625796878821180919623816400653870710447862332287316293937653074555456465436859671853673313742994420508416985237567112333204471169532543774831990279389195070334940624699845127492800378565864274144478224874730907898265865194251651013159996089161440081932882733703796450873721885816839743689419547017546036739493740669491999023684227851819818453384675671473957866284304498725630017996057302574755973756701656100223044739963852286792226359917648923359439477947793961539685454931997024504265282590341644443835745869573470603332995357783765228043975732612870901319806465389463533517471255213248609904737561327229684450703696026748409034261416643204207098522933618603956895367908570899859575768324458157574023386790484514412851793433990703639829029378324395155580803508229431355233205748976873069851904335638380207608027795297162440826053633137286695248843481899231096581705703184375796797858684293687262398283305928556446410716066172504442260789794687920250794522488613749517884207929384885631694429013245617275207567434781741596113529468923114575937487300292642616925053994562859298145051808478054758642442049304297699406643094416793322281086311005472120230505494475617508756684511245404550389707729540117997864349208420942161769760306530977830515491472656399945204325443673292954200561238095608582361935178630363413094851502862866891985928752334900174796466302557465277101459885496758134702968055563503990079888535802234383130698559579407121423915679362628517048952286694407622314126282256709470201312597450589714836259953261295916289303346577950412837954582435905685357990307640285174571406033927527603503578264116363592243655586690337808762436095926004818047665732286528364385082193900002662625693773443087378758482753127618666578212019651619236785820615799560129779560891651041243247787043757623239872800418854966060794654296636678429763672326756008289223965116006157430788228709064566463710039873873984072835942951079420404049231772099614944427849553958763867153994920454101725956286719130675638777165471497044922192119406907757795449806639539294275285556719766747437661427179341241198653002458647263684835261330733115723487241380744800717501070459344651494896264464935997491366763253989126187274704450945084757804326827697100243646229289627681781738868054606345050421549146400602223864812537076792358563548056640451057558898725816714117832429920162660057726482555907099768600472411239515154511467080036848528619705165477734161637558598733744098574503060498716291333309454968553376792472729172386581733478125680530870841312055051238025201206962560598634003461677663749794225470431851980619932385311683020487553768306581625237914349848694257128420456511309255203213885198561313195503827818151632651127795438172746372258740371541004352882225948337985664415472079058091191221187186856311806784707391164133859803785746347888445601959333749853345789923174553155472135214548533517437332050680833557400447592329941326613822483694768066019912394952449054222095107502670393227331190339508541574513611562833157507865156305454713394120413548959489996727829288914323801772770306371643062438208128323382964849657012105034526723373152628254088131095512537351172929292534450576831457226506471780264875858170387852606121886285211491644340520162353993217781036791745941380692574240164498398086387677684170618963502615544070588262486415854830202218370481274730320182253017999986177430069144644222538362216010668854493952865551065816351259682606484320499622969361878412632993824800189328227088129580281648378217328028370920681520281882735999596986184533318563246343156860477737900103056588872542087634118036809180830366249521186662713562092948014967451295509458557966394924142612767172360132433992841018115595566607275618768564905921308605531588582246592560183368157612505238071517806335054965703417303124769400352323681611520233607661875166271572938657141902785300698199234347618959797770628148842561319206774293976729501432246847150104991145432941503205424354727790145228990481515096852658785209519211079095151965590052306886504195213954511776883463136739893644241497923965956111574867243202399107073809416169564479483880056079759543576096719311420924220691932037169311356520810887103531723279443205388952784478513388303823438362387351982291298585259764052332965159899656794671349995011817188151556391620932690624812611711171075957389201550821764333988742022362170837394458172834674628713920015419381926720888029908237343958145714662701545017348518026473305039865189114228832471737565801968101255346439412937437174214000855361177669357997470575696996851362523584674375807655432181450550524477372335880741048547234107757987892084450118299911374631312136006267706689816924077769307098082471631438453480832391732967772738990025746803122021479235381083496591971605830157606208911687254673935407002447306393995499987949720800051620919774867654083174434699371667317818379352238473294513924908495640296159946857870743075898143749608420682160870439589175918285771271365912726829768343720588407703232000356734317881792946922840878688534614919930932414959428845814827433132458351325254039770008195732014313287841789465153180250411028881090781295364420823222655759513519886602050742260003811480751839893242196616735907092835555130425215911498884788819193187018097938477637228674327851677459477847246656142103033856710809452266096841529076436399703256744510946106887293439771215425140645104316336944059631691584340878409618582619999987225556615404013211615480611324326738278242515296888250030850819745908237358120857428187252600494505632519513604579706688141984165536127641183182260317565891673950962244220001690998919089430141849572002688171826092814281339261681109497636829659529240142964311490495613920509647966717418341537360968415727133634491668788684860147724963920404681572444516545203169191634791782438519482400701081428674322779776158773035182442251477655517546628847400444517882207525643099879042885684986245056039001080462382961831265577672746329372766957981564841876249366919879701838378562910194298330060385962922803333733483925185111453111848325769799829544999470249073132981623408864135142935316656631308367470145404753628727313278805299704042385507650820397046984786948527445846547689324172984832955276588357536236032146754573718316896504259575986217125287872265887890417636423821022848456632299337816802197656097485888882516837833587750876592145424184134171849621892879350650098504720074701888496279950805184891884614639796734144859057148213083847747963256439323784242526234698310276236968719701824835714650358346873193613300012082758391172435070528485526214751285913378165960225101604680309628617986927682085240110274584980103088515995817340237453202421867627551720623584626689871036745854492909606324654620364240545290646293045910663741092768299429106505965408723079743955114354723515689575791537634476104398810586201969565111649075768066775704983668779512734169475018202275089265264858677460639306347820470873508563708420678196608667779511340392990781088183935696363271081609189387556110858200534405573778819075798014712180497056581812629488966881129821632147375704594047109026327303728128540916715130196085248191737761335506488201865091076991811076918010004633656915960369271442025673832006589631061469180500036111922423843539132445743758143757222313365018483240766701415309545129356447574064385462838497948869640940698400462836819006197107728613143510740319636121687463867947424108101832320106425947651284885268340223693112231379824435371309514743218262416863840223456376824385884919067982782360290960226889441015091257314986284274061991489625433530063504016678992239571076527611931823603142580233574217575077975206899117172592127994673282824201660507104809287492639791454950589173171937877268690145105997472508561999405130069755431579392682711161220579229557182080006532295118723164801146812767085791041681980666811338662235851761172782188320178423545180514546627570394187235472620784293450987910887757660170785937407213459403399881902414037077966703661814915102431670195289129785421033299929753354379853889600089644293183401197742423536306017482196419918508554100573661334927612947698055320977505206937777282238583392174500142754199321644380429315036001997961659941408701932698399561189181264584468513829266841812218102701546514620164100538148065836052788669103013329654952981488896797161899338464585473845334365939201598495139120268864169974570894600626708613417725546627105284166266511113626300164428661384225492799536732981440761018213285356527438577681116591412834192407366686316547928402210804915921350676531087042929341152543740309564860496867847256035204164451291917539024543310645766309712125711505389939463334518206162768498928089214598080674322090286676767944780677869164911233402823199682779891147576915725978370421629098424853831259374887473992537190566913664375555604009580089785904394564733401533085675227106697197429629440649189050867485509397462947941567054017499778253767793300237898994050001531634268517869425269370287150356988851319966525453488709277294018023735803691329022274207078136915140691304950462202685384512446078207140133712455661326226489901208947963969135198018282888112514599965172483158233161386183716631710191335588781045468560331111861048105002189334923749894315862735867250398097122458855660695273005431781654401770274641615370186201023101871933868853015751579226477534338692555243225653031329857206740591050597340949662971816602310648761042445592885133124077315781865495045738835495902084205375169583305387273459461435506751109171349306234725396124076571141552661785365728065790021604905617462773786315821388108513604672826537877419840996264840823353874343499353663198954025682205323834690876592058223418848531839893693366097504855537859252867460498041867306845634636434027751633138172192850280426981211778520746784948492184338456871415705118867403617478393696457278163505972890223596087444134455969587015239464553280511044671086592859788894489715858868432125799176198816629346067853696525270518706770991406481158650840421893516950609643274373860959607416818133088863755731231601049865246628756719913103354186850636596658269567262075922668010081863416274582778016644383445177011003864667394672855860935697039163715288677032475787484732688821276375672679963848167425491129606484390680403110603978524673478459240589496896949171394989726731833402440391575671718079777866102213643461771944275087838184123152596357820526869814840694100888243705420716094693039739775499235032293452033126044783409828260733052833018250195834267862968505430506503357310412253174872219146603152929407946124856802362517687971881731606060493391280830208999813025514355378894514245527679336292553342157320024596949450732392007270668022218810501776320443211337926485217568674481270571095042087681688145186806308471799619419492057303287935549094201455026412204563951699741467722198740583955428181266494791680589655118424024925915989084393158641427283492596488781831248116284144763579597596607708589114387659662567847360607405648414270492145634225080676820649390059483001344691853467317453010889187643714505835986664309016036272683160493180782443093124101991488699129889385546170453920837869113385846964370898251642003380402859981968882486007143880168067942574025100230591489108929069835041539296891968993659681102231027728112010616726881562024142366751669101305541336816786029263838530115682056132013862767369794049871520293286159521357867859338518138279337454648302900630659334662560742628616752253225245567213448793433856964664309368634057573543863897371699341932539828409029915584977583979088319240310672970221410351228614438770033010203342337001126637227356797490613602022767262632619678650570547876524262535868692860729994220160189405976195766416704865833179329461128790782713093638903843287707871056782565510374213377995744459506411513462866032006223847187099663858240139343118949648598491517676781988817951976345011576193060805342842171687219453034786159334001890312707589983577031826610796923319042341097663696237058540395518150837317273104176060035386875174899463322256258978272932722640952461871780465613513809712190121420938227867963631245521756335726675335000539558044388050780040739701859703918707703774944123436725227738477209390339392059761457657561325480376792885135800538202711624525659188187367926491190164332509081280551096672762620853777515622243999249192513202710318483797433355080303655234443301756913315227029803064969427627952217540597676742874836210989989222586752758575043527174066110115476839635694161352963280401855818976592694067424803632285536631777570281925578507172518575670526661339608774433911856769404742677946791198206743681626882288837399937065043208633297227140631835396668898762063784848504672048174721902509048005219341235443791274015322437514172455411162844848486100568557487136159275282001292429581157143862705152168722906403168299817670072718619454472560239737686689613286881945513450616933718935840131038005854705060934920559819287018419262452900634555337676126232121454631419701827010167452608992551044227782894842937324770593088758502136195822123078210356059276678332759807591076400189077916371284758236608739148846335650825817049226086735690232188069464923977265815728495529591327197982212522747616651901144800438869975739343607551947859630420495457626867946965928976559270407271877261287616620365949599644962428743487325137639056914230223316472117695775551665763857608660103789725530218788514930420427343394864418352458770628581067087376315282249839940092097997390710246543899608807361730752856553889333783968015904740849633814651255621889363033304143708340249671249603869948517581959797438446521918860869220988742325243922294423373520649688279657178962281012305979492640149338056635170398613066857535078844730431807919631589641866240799769352981939352244130771832241862814838927946666747653188771782374051405715964819748707060464750127547768361253106997070820161450240453432034532613496628006729349200430311857924017340260166529911503250502188341303848498055955935133379280469056970506379380652212396493078012983270790071718221779887582779782169365274111511701795879722913836311130223238400634620701568832232105732195856685531073751173216173862516215373772202513762256737267281132268717681682834280286570059340794708128906705962205351456720667471370991254338429690963542525765877439451477456480723785153433390658988022924090675989222152116743294922488010834505414248898340059532491011690451305814004623213118149879433999966096472061998143869580045754146525595669318877861593413163234364502555784826925593362131809425642410476273123346980696760252710177930766814971139038617666772355075987986909557067638000936571221481815373333034212007749586112653514189523640549822032872551741174590769617005092705837227154719930665860078294780943458659280274243683753850864577085719550905415209041280388394982612931028852799560622619732640909388472437725289698568763012232531169524911500286019376995808580461447418554650092521814409567845090748518356812127095926286693776580349058361436387244662948311542289805993297465265278357001870035932879129955085962449611113241138998920877810799528641070847590642567849257619710782684850521518311421904215680189275828054733418063374968245001984527157696664301116269000334835896956760559261141166201183247555034096278859048429466726941202325016371605932653978171827062139503604319816036287605062577036337574621098819150392976834332679523478786989201633545610390044942375415296948122672917942846471551664168082117222351615888254044409260303171826947383840769348301399025689684722209412636457991956204186001562303481833787170881576059333587820425597213640834807490124780417797564587255335644439401222599702091831238364892411420856262000893531320480125086535193776254181951621960301750586703912406568716996902896168295929341161755005332886393903915561529112478337866026847104928488146885034482768315422400683079157631231310408879862808490260992284627025365556558656329839226614833173959780671810744965465569153262907307453156595635554688423657147557807200121475446206183057132789550461912761681697029805575996474667975134366363762005580579085274223023302243288575009971342015666555453931566257890453228317688063269468244529015055788083051467964838905593331305906326673395210896173356909465942802814763551388996381592030656815810857398331607937454060672012656057711290518214490041288307045846318856597817114006888184184904286995008647433274419474487318168923206006752695135274402787506400937468684255259855309487272298677621460124182189853339751930192897633723258326031266115363861263152923327135267146476960824565905976270582010471426208522356836185566205297784936033627284200983553384582409666607380301776964310732305939590240969430947752526834031855551445638423600066685042905790409382574699010842214572509399974229459345495152363437262399045168183556619916558026402818500613804686160677007253230729525255641007517343955048167300061517541772656790075699211148029929620958657650078825727390177211379845328086743999204167631016773518307450740793396039338509160270454331461649301821732634923496972862532858388920531930527715752208627880125031060783357718380040168628467924091752818084130245045108853380318844078539198298852410918439389206398228666225147109574162523976401832882106640609060675148057983179198133382386325384211444282301125237095200969462398438167669767626031579958085593879600980656490281852716535520202471588693684401375675886616947931260290195636307777427948912519228754591174099116481530164039959858840064396803632070355734934924043678991582170850082199962756258358152521367290053140740503370655079762369302685177212193405656810057532550589691893647139308584956945281114265155476239160932697062001682290368117583951532826455544607332336591018560989916270797251824236962384305599868811117416285842889919744129846289782994574143162613577303773435802998118192280850574446016119520055395138314491752227599796478609568117078399773499689470968194176125760449758500591155178037064794683744780998637298064251112490352145193296940296679154884472185799812096004457335050609811262323363358375395334608908765275871335614445351630939801139548516206790707098718751354596765797600980793344421117665698633069979612287043305254470811394355335281491784485246869788996685643158859825083940933861945072614172520773501101853273563706801882647233866286356861724401841962176340046167349389236151389945411497285066506209741141876918623661713558250704434563646534352785229904436542756177967823373058314796567071737285599713593110233823267911289488696972748086857345402568099585964094868914531442445778946704392818738295292284401897212531177223390457424044520579049654377403052265226708386345568626462769971514957221765041323052833500052590581791060974561604184856800507078192998205629225618504440851496897289343663334533723352180558715610006897342280287718584727542597892501667073570960256730872874534916197905701048206563993061493128122617913451612735764533118368672254341681072985624679042614539055047519358293624354337439599097712462668206689287237333315511893703327413048182719027996658155476077580003469672053709809762581800980627202467352480086191502932481315425832396325063161556074936965715217848279302309395208194588459913216102203456716631960158524234006856475237559415883602832396999950410011098009217392586553841902890701066444363708787400349174573996822895052554617855899034972816606805187905862711924278319619080253929212135310248911911687137045941036421041426350735045122650173298129964613130977833134055165226456609652644617463671128537652037785810712796215614809882404741567842538807346994844449541980119753045423033465809734074824221526885253007032782532204418108883414754232469132606731480399112339819270243475424201176299965496829032016814034952541235316599068155945070877103345447833750715310843679058105219066933413004505996585408340281792091551748459184759084390903546053107952641552869793905824069751324742350692739642533512475208549226019074314088783829625778570865521527222926916910182625589372918048840658038109229120181274118851469609235183499289081165105262690923002613263398349687026623835716028943826568227623056010910924021979009742009749776483557091781138285285528307916554631514754619363835165876837726395873211420977030120311339642054162928559081024624791774928997011340408087163139248594084516380341358370733006195050253097640255237560300772737659477564867310677603625269795591130750141310761531481350150817018729954608790377752623825055428732909558005178085092711722002540229259189570863659593166751720363155097238313961136994683433129031322538977381472530843854896375831798204841342057375784594871912626164746239657554849632641078580777484203231744751764410574851002933927150800314898237867407532939432369112047265004154506954202126981871935104977475841207572287045125491097330968798411943375560699095414176158340698881906928475193320995235005643107457799279148018373718644731972794838400419359449643586658256391980991181802373132412523057003104060014858439888565939752373746575374864255338429177385660832899343814199674906451516009491616995125293524476478325248410294559327362529897058807033889215012528795237125566368107327750619027296336694471395041145935647469271896888654358384647810076651985252578812002855763469486498267867934112464368172653293619389643801700981837210860739392340350290913862537750245123984363687016150963871454708548551554386252869590764639852056117321048047865866726962140913034408025311456888444366777035799376786977063838515350089949987221159591155243833244476465933452080102291942164487819939465325099179844230072715153269929418887119505970040225710445450554553465694535842078232295939100145835692108661126803317963101126296324036104710072365924697651208578974510677062220403033176610017035872441729722758886030475053713018977383965534685700311286361976884929840174584001213087511588495817699629377880366212817260562506777724803079141350025276272567973964707048247505698640345936140640822384111008339481303439078605022095012045451326235107992494524622441149853309401555274536456032284675120475396244615357222264598354965412991236255048592726611606005239533767410853330649152336064221375610745557432665162790669892425957552210432932738185835256016029168393573704823219946158898470420999375630712312896234613168759592378254959520232517435628716992569426315469799143528513375220440694585555601066741263813908241740240693131154219729458580556002186246957779874078317202994998082018479616717866416296342163926904050713283145012930409150490428276065483053380092901622280346836361346191826197086877707268500009956199620156427793262780959729520032364805067284243973371775918473054316211127322055076804444322578718331288641067902465816257755277990852365884464874907553428858368685425893293310323007812891488598919537803337274107055481438134064245150963974228554449429737346092585256193634104955704357294210888586594586336263882915736321851761151479565590093985025120635595400329723314977939304341612022235158395927827619507503877767314017029479785003587957875410033301740652007297023949621722992943264416006851254932721840414582853585482236602647879540507233290479526595775225275622436235144738807775612919478953852533875341493420214046712111720965946245469361201781307394717309849490540825671838756207746569721027577819017814219036476625562959369955429215916987360971972654408463105449541221772769323619603157772628346717682032986603774273779853950429616490637947830205955987984819128172090333749068145715014960211646456239541592967320923539576251166980391754671737212143243283068682927012704019783402534586774414120201320818998854281605187227523456609756891948853229109936469987531765923020531746996326011654611253343115599149389481693312809155469655206248225822272756018156105182286280087029873094623930296217633711675203137996732173741114113795325633127271311930659993942597427321102676226489313552313578730337174005843578423722496217891438466301625110385800268223469379230647805291191639293716855272580632328527510875214152292711728345346354964272489579309570700782012432094427952224700721541785957650712341242155098384380888138748782146714299640634162328491816405452764554448362187475801517540352423220979748850296558206382420534962992310405384109817173612124767472848991909646966121022521350785822193437716710770456648124450599091305234255075170172049380022558939695586412369798343695777018429092799467323864211476843166105878357456527986457763576782496537914994699739080341275144306086194400314183764505023912287523558557685988983076324917758179212765194031567506215224659703374696106085717337743145712755308543292712799320785818975791249681168552593672053940832042255850784096266522092313542839586808957818455611176334252869375659736336331308834387412334281879827625589712718037160404711798774907751422851596777431563952845860348764259628229099193727478369887584689814682572106153930332964925460871103844898190083249161141021738701923721065160772349489800305957547233075972144033450150989330945004603518062648574319419392001029606226132471423027865028067931611662782990331699694261561519440636444894438704953289232258341321198017669032384686076193931469095007432671584299718615148582020792844870684005827941652620239271287930626075457709825310764954796358922025619647146443765253894891000077108014011515866109715910316356815127421915740587021763187508202658979953245531811779775707792113551772441058981698531607437023599807013072741100247709760946844538892876110580850050973472786376922888123350006550481971319323901611356441673203504581611343027451623664726095507727355379242746767410904067659369587010026914303492457832090139428175767719355389198605410639530791724623407389276683437764598023830349203196309278696714523940211948016972421893459523186528038258126701084696097221781218794870719448264567136521324944253341931415153042471195976272391036267119674839825120918038048825324623403084320041607332598672544719084239280627607727233587280285377850175756863150190861098154221124304500840353310218573705897766041746434742229275069875014639290537689178810025025522610491586625881856194842009867479045506736065800123063970518928882997210981598770308008227158135699153404826978353077067064786841187101865032082152019225233394175703834055745590054090471228696415673819032724771833245245281126347283306427602391513999687121163392186500869357538321051460914659003162841672267053890695680411669229510266096489798527185319241078136813602300901692048611454664155543620406574024050254451861970328926236835319506515979888419406697128834650482905812365838259637396607526605188625391753505794019571012534852543751375402857851859856830639802374284264399051827544177709743404542653229508620642809483998298693191225094755297675584840079080569109269991679841887317651835691633711973478924157647092949700283060550023957542716389117813416193796204293579213006150559487421583441176782930932425432023186729926331742909856022681264468820858647061588004342391629192350998379424161417447768480346507554457408200224329538781451251560255537263775480072495287878152748580815634583866373822939764698619087437063815125423821238203941316011761523842377817673787492535454681854004475229489046350230057156384915134149696551724252303005547565836432508184475906249340158655485181929774990763530251241150233941474262608298921668392077598674516341794770239610907376276457739367621052310040227872100833952366282774497647463384427464050460766195811630216514007564163433880179669038866011181114727917150887649096654386385729467365416437568823275482795851949287233296574322321320131464129463127262697858389189357372552764406103714992206749607668128415676490631166930273838979409771832607974158485254163054509526858214916519000246557015235758967348879227095127411775447025546244903240906083059262791466796614409137953454311412350971599234884103509499265564560230208958330976953781367565698474493952927874945379754656336604129273749697570348970603960435033599360450807109729099382952996635771065702036456808396228319626614040250498780635635612589747198419561637624579536709196198902283477980186132369140012506122420345875817251219921026704729276415273858762679637953762650049282368588016427918914678325165245649878619574103533166767960621257642452843426173852830751337511721363562695851047853634976241335823797565975321578280179672936670034589331827677438409037129238390788013591742672907723973393097412171386281718002753155096144568060953231908442610718458569234185473619593353532493041618550432198425068597624597329839886793368312652813249396873389656404757293973829796175570061261905596512581321928329865364060680954846912291950489799678690207573823193730408753473696248806980676341117784731830395440252268529974302376014122689756073759227082901457770466580532096241479112614401783397285652234598857628390664932914752806396762767106697769829203025420734704554890334011381637582286926707323272650135228103379285212679847769334829590392554740277716984575756156926066713147791462175215237167077503516515420831428390989016412356088927182809169868196191158520522567677746004442943802121979848281406974867594690853331480851532456832120769606776241856736190576424897747728034977246110156079924904570046736103971302443744475988433587364996698657969102147790691950575358824743183524689612086906606939253878773378354727625405440153816654376115839492334271687536942998362446947794505283221123135297122204665417406557781390259016843019006255248347643419832923009406623412008606568051389491543782396219851137963598682665371724760966489264463069351764657173724618193389584181825072506024495927686358666844980178135959926119673312872694081971219017087685826817020306304239277863251145232751579995075999786055080655845945871016536594929066019531862220676441415310669603415797438916463524439918599606324715924864132820986234500265751435258667552366481360462548930214882414949834893045670086113666344035225017603328664126159280245493204609090354387055924330141530182742313065306825790949704432908689903807848963199017965851283111926253576357605069005942104336879424423726657633869387638592673638115231053011725073602997275915990551735292836149746339431854906063256569754144368180316833082356904503469611830826189697548158113494549083671339215970566332752125687245733518382376484090586967039451845718484293965578872151703807377219651599026701012058490896244513191318112403440210981000920716606530135470589133972268404631789218421616081072128755163406130097235904903902037299134118187363662330228711734833717316761051300083484990701152953253051448769103141038831898135127106762796891926184266567738346181198166957587780325281195367858962671229936820319987489013564657182951226227537821388399188756889923918049277137534542584578010743776889809822377053682311262305141855124215909601848252639468665814504734796309101300815381684935442853891396192975119073108007940322864855418566826074113971092833260384970102635317934498838969063858277843187881725601870026697904148192498865420563583280935026257563209678518063035333554802061767147061398158974043294158357973746993557754608300615098488785767731723906043448706792251356197821100546976520793114338879757385386182894938422029786859040376509908230758299967014947518583659293459748169312839758935238047272350851142847704019823539509924911327186879015702838916374134694757625451004829710033418824178686536752231777414348269230974605830919210725979416118088751975110204079676871375886949616984889335877072200045190338099278894888944925696892132404977070429500507551542436930506826221838271349210331254507272626768325934284018580516127828307590000786016426567126022533394990264120428817543304271698418444589844595003805050562400907808206624201295578305818613333155219910760039974772429365408566842893502276894392706577164504135634887405504709830649495401547374285645830184558098386586281188018678708584987344923773899136902258282041685112860635792507220706343405171093862664258341328117930511414830311280518078139906853544032583580826313855517543331484288337576081617216527469203777794819942988331024078796300750249645139260426212573195461583427460193931412233367745779229562090327181792863352460141683396488045765302699747023549989480701950004762307339145989018819012724983555426899600140566599148372252026485434935040626701820528274130997136742873027579488147631224422079553212668064692120215864798888027566036490204147012181219844113011066958177614726270317880919465980126713129602266495303309958629006575152499046272088684964327261359566683610035966153926611733119871775264296397478003866141693110970837564138726978741558897893936955074661231405625650595091506544329612537487831489047597266969447589346230866680517589624042037435268928697212315594594519149866138255772728546133442675233425578446587148868996343164459758573835206446603710015986029516705986894599778251077150771962800859676573132026143509175693201375429395461783241637222916369026555248400355121828929776554911482628042230031253248334779108793080852174475863197354956385886910105551535364999648330833108552564124376843327335454070284385751443957105375729197708575234466736220088910243316877327938143829549369121667749835684016408625349314114823406560347682796283280320641377456784786942613592095105815112396755311244855770975575023208335346427954737300463014118855041128911564658063857548040103123806815380106870829380380024181412571590277822763116652296305841787908038283063611369901460042431098599600631798460235347561759505046205748751175604298273142250427698950515362691261320112165086989815478755619232521358581894180225989444386538845750394507835243943334321561016397130630023797229478386159253535807818653116835202034833454522251384219481561455009525921835594842566246403701813976067589973398955826474832182303706306744827171005851157796211147382053224463794329700350315254503769051803188306452194457659494217104392370458520789933810161299615981837459939386167914523062869228948843816362766290941129854317788902831752847645911713558759888894434077023929336723499607375870051747019101764507900472270826116555502066851203987168729656772116008613357448455855956274507178723629853089302925739764527883499355787995796097273525480295568959523682568010662788388905989352524845322723913661928928846222397097717020023741335307979102034526619805900116221383212813947621162977225925252014385216189336295442738985799455748496845165002117867992537940727165934090277887235742178694978834443727019715589147124264691911614816556207240104930406407766699211871154137664528370581290195395404799381208948002299966443220547269104211276736092158921034911441031402860907106683651028401971934203888747442344548359571393947483390623676244092619221132452955860980638826095918078254552405670577978059348126082362047254111888193035672553402974646553955490431480977532420285717583774309701969872677160512075357632049914569112649922413971553912710220428709912312864365551450385544878543384454215729406477639556638788908225579234520941834067204797484409933776899844634971970290656645520526728633653982005972202042186659568436119098307885165425440594612494389682713587063221826825245518471451647123790744751680989916852259799237695125610384753472664108110145675761918693676227632394991330731153064917332017396269006990181763841364872974095406506257080098902776069331209421200684659637713763053890129938289850132125468286627967946581523047501367878942751903471159871013252457633820467594517319737041217003926094387475868708484017447460577600418477162608593420036628670398554695323770680675297830772563920737376610768873385795029993647831817571500898881081753696536060743356439016449968456207742239231768023394914959777713600251550786540580568023942455267023984947486571468898792888328696723720172825636995445683552738388139792003490328851256678882544704629128972564190060910657658754113235635263226462008414402748145362715086447090339873507593270768861866055545864161241051107034104589206638116764076042898401073548318212940018321359708443528638929319638120653842756346039803056963325247225253356450423622063087749272407018964455893474483517086240991723940099751328898704569731243005620262971597802050021767489744190005345794428109305930838273751716575380946233321239948029973143597483645820572140970569196339372399209991263226849023177975747530946763588223481924265303961131288105453696935761923544640740602324855590422525489041049449665232787513189706748287229442500036156420673693235984448945651077203385607831802489128333842583066685260437299836949717656563063968594336111308777824319966340957994872014099376534809224739862561151000107008790623218327755593017309081301912950941978982515743956296313070964360842681842087513349710886552258346334992174159042814235083335464806205637162990883434137985968461148377819249454152716852753135424685643159614112382885758674714949555721976479614671708223950383210485516792942473954644085138042533368196249863748582849347737434926459175405039082669392283859154549528914446269070234164522421782168716707777508447035765744596766201957113501357316363218648692538368660783648719370706203509078189923844232610595975573928563105243236114895549398957738928595115913018267021847761747896916419358004904006445210099440213789889523811722189999004768731672042419836474657372222426911392146400703226000478498289275713945050877125927648942650556280273910894316028226768317492780357165106678990552508449319229964260651613868685850173948741750632285756875097931512948396501981854612509465485668894842465974378525428908004139469100054182577242047573677971646502057453178608209056475876973570199410667914993373191416489337457399640192909577396002931551742768643226281827626852867615577128007061769726749858243659469661330280904514848658428979805713409262897119811957524704439555757541925405999691203283660646830888351414523715971883139486465680367709137554371168247378294320119333353178064784088077427703506347045183450370123102985870518848020739338296421775954702884218266570305024425563120695626452055692357099935717481835354034551632358732862055763835291542292329903077241121519967603457181844661616166461771215561457994522726552503852350520987275695393948659562179326788055167541192963586050575413830958730840728929162581236849402406495670376921334275511454904994744135655641490512080046269474374711163999486789408810466066458718088076577861463672169865559769792409839727523394098667709690307247130810830065328769495727415616505495335111139071295221540153693022586821550762323520810947577023879340167308092152800605954124451248192488342270691014623627166879958123346308185532162856042273537786695526449118218508977116087460039299466578653407965742376790273769797873300269307011494983486671778132297512324044335767510280963224326201750351394573295186114182637440085289226701922716093294994024023434355844991533796133336805570783503762380278201129381081514727387462669032444789498220278936733551193611227826354422942804869231154349779561121387353033764560249264953309852604968023964695064990670729545552249076241866965054387314597601438879351542252535000490330725139576301200136000805598361677594646835945966705787481729823137329368948405342360629362758103431779251935089057148850931901805272115647187662697744565082243631993999007378585917894629253995411530396579484764289851536997723102343347948310272012283889839953922868086664036623019712382592523368425721583197980420265731473313156348301093191296216061566008026996154294762290104653907330253640054708618549986809985309274880570280182858486051340052766898577185101225020137826298548739710896331688810148313350213502393356401571224193177710246088164528056838677766285166991949762455537509282945036990409559338930390607032835089021252747292659290407705647479581087473720346286256040492831963499231317110162149820901241107666426270202219891776209771321886747692367392023876629978148347854269744057418062266442832682593663508377179811070501397987012720981727924773585734339575569395770654522206746180592614557148178711140351435131588805812084323065436649124161159420027347176246478258902411098790246727545750434101077068370410256006933735864487836969682347079828268984468768557515335814145965210149634415748571790606717423915596479568536442528511907379118958137104909656048866799591443468895752521787673768338046787921559582034663915152508351705567870961892652003566955969212797891277175445013245721957217852542870968549280714480171725879171324568072979232443414357761056904918847255100763294720543773099724579810148209828255641747934227051228545757071424553309454725717101850508879483194370655369166796349033398819974298136047272879138657626977568598186022247756357392950926128962239324805003293366705278497166274222561530829946750796506377887824885641346610340695421590569123928744303903235334377202996989390078039574021559194839584412723985230503122283164834032807631155950863382752575598367458595912537629690194693081111861241205796228156909001658281320786055723171357882542437447966411386301549698739687441081809402938161715913258648359055439133004156540281293996468913040296795761471156110136964780432624271951380177844263737863663397757329835306501852209346956307200078421636444555882652883201888153870940645595258152826052078605041933102244524368985121796565188769068517723547718768393692642090713942494806076357701648719045293749875649250906959142969101259512720899934925134249949772039977602505678191972650056939646409403805010746227070155387520193306866086327773909309765392571269130333507683601954789724589089084303379840806255707137251471750805853807857750212327235043126636886101693195530840382256334826673685070298031406487870818774389076982828405208300546364176808938084102980180932631065476367456794341217795346596888597628387562828634482720048445370336072747139555779840801623487087577506691902491356783827891175499110655513760623140940706378546785210564906745256558234792192320735254644891924020156688336047513094050831491380842949023146907434244735973974531884470928631811121792102779760764535982276766874559978002456573320107743836308383173440830461721814141699310005758268641933309641384067948297264179423160134954757343257913540834773922089094150033678975893582043673388637899226648290680885055742616818125429598710450164422633871470148881904600962492226448387953727758027308448402915077638188616618663135042371096956646350752729885153008767463097681491517552550106008774350572765954828991770270678616516040449228340917196199060618737643877480783811517660791490531088872003344141719652332122706914800400096752351990926347651139988359887321210877038056202732752905731174015130350145915977478672017530868148028126497575647753044622296673036147173923519325716103433469172642058072761947738473365159912970423712159691620846674720135269382855412800617394718743704021700350864873712144521608476113316960454316073525862365927569373107875455846049465734633044535070176445615478481263207117175021155817814251359941571725040755809362433065910366749901467278980216782248803282607089880178797929255875991023415553817511992972251914400009343011690146378143074431220330088168670077997177084774359855810458367661405050514851294155412135662752162125464144990381794223152485838371266345617061360738372048144326707090960355038649826234536570077854791261338811484771676515283321828689453569828909733520513337344012405320775367768827838451338531365157244829873045025981476782785326971896063888720109498945318338287956249726423669782992055745707469869977196204782494707690145892575372454472961863249454697398576530505152192104407385476196347604945183962328446126043589895375228499326291706571553606064694120878804847547903563029031826564150184295855926243511218649129181982593357897823982261273855611851669657327456904823771762337537043647835516068929487162360356921481675034700053527679698260349081225071391171839389651128293531667667051419643748226664704415630703550907931704121446963055944204788470229657711285542025178798410668439808222938527039065416139537759454267225814937018625791292146137801405213986463544106830250668799772556335206310153039052566692280299979301882867292680334121136270620248332273775926705899607376480593439867360162502988729481748951396348164634954368395364027562629448334635191525628093260833088937286894748622345676688007760676726182024225318307040313256758040419799002599500699389389901025674044303210048169598680797445736651614459061568293865403276201740446750766714019181961366902410840664951637509541654647263535759436949212746116331768378596614907596994986485575632459211959977657581275258062053106058237490160212361626921600042701127975039270241596724501133505658264719660406541409023230994688752339096002280988616489789132512250711452614825243924546814339158996509239073098609934318653331976929888260444922142885890814370632608400474928669989082290439239933199183964814004500166038788483764274052668479229348400547601016366853789360141074239771492153042115837070484481733795957773270679161964224537088735414750268799117267409881227636136657701850947053802744242416808704925856431098380922563968598050122428626266731801859937991509634649539799488650021128290516745258012552557692717807365500294997765338741331961543838954860830096627140355885542225998695622408284839002196875419719289458548941334919658237753128285306868191071424256842580663422043566470535428537185940864985495209624669832042011348025009639973203474302908864843472885953618930174177498279089587850890642233168909313474886536369503013052114110327689499123873043780423774479716719015121171437548151242659208647388555720930613249117305835596623916838052747316724294295233419980485880185874831596284703745238863633813866492531577659806751979918763012170613201303749529108231361653713664205817807600883982516640192911031641037865376090064161822724763977394524240524879079140647299400967612736268956789836336381595851216794153155635477281786789127001891981488325034126962786798080189071521855386498798268269675996541514699787081081031006859316337511274199009429384530714881540419511147643216423540637912937901307476914880237763738340794166629103900316634798280505510138684759836229835061472656404374825330368449497419287066540510795243857886357850636021238066705233516418639800724286102192383239733845708046075853145017457407878534722810532209276417075832952051996871445599112614283903615801026671891836154638495806928406964751690053826862652757937988635063643971659732920924001181182698286412289633083761495619334385871442188898464782348336156250093084732042399475459809216089870453452359229603236290136219439799687839351003768053730705377355582655754293796625849637276906831141143013414779554196655422627013260885480680087196473467268502977454154014121992910194874645004660490431809003558514680439313719421781957289399874875283976683194765749671159823743672522023555429804722187947300382784914865943181443929117910632268056500490182259384680835040880132569706952207739122366271022995315315719074896730770912353347784593542183076475507802358080916393223241898051852760415607883263523904830336982968753693216716220443062117329615889226109609254986319998184973699973540168834191209653030842733638897680765965939099657490091034124951388063704893066731676575669200235391229209873843889563275253757412419754087599644677030203172251172603773726080535865685379621839528431449388877825788098964065731255230231844717474663070262776339413550607348083613613588727019449677435403558541810836678212443568999208059266260354440375914394062109903871320608199344721075664606170324022554836886902849999660276689235821409827640330851102528331180582168703789485543852245651619645469860875202087050062983627068280623274715575092718037824051796201973234976498834588563408564633542182226307227725299097685815962442311572492817113367632294234774535994785906806235139070989974793319030580330912152181081919330668002413206318694579340697301767615905981079660419739064089753685871794946829292815187740863387266133485805309203872885233188238846315114712541362593032940571886159063142733854366213991948682424223689040581382775835678248144871894828523167268791660930660963457781342559181246419144833739395171047506080922146226556731348140258303829221796355317911660055037616654836117605062229666382846704870256097731163793995574662696502674506018574851718306782536785732722409154978527246718155844604240470708471074556474148130824080832257417000482752481090758725670174989588763698202489941935955442981339097145211364146133838727020865459221632243927833822011309761119109268838166578335655602116715980046111348220153733577520502264832559376687586290116306026953985524799136598554847882514027620320575737684384985920252587127140668154828571804789148249411289435013071060551409816440499843194637347239590816111760302371341153460935799105407551575322002374687389377287752007184449045775679365886450880888984596063548767275535773117430532960364721649592406704323867461751470219815327546921942056096290439518381669093973056830160393066563310184066440895334215508750794672638807841108748222651796572203057462103446770695211733481973830713475937902045305268680630635632660851453660952661024612412484860350920688323839897009552407646953791173548747470483330716161661670932211271693908184974971521705310470329917439670209357447387832691335837541746957271283190490227935238493314781146010842764146276905109690395707649044128815371998960688466483556597203744610425667109545105560445713553684579452610816935600599447595463914165138133268349802117851978927733684106451302388729562524315100626987170011505277632741740296823830977345342431246370338330399533344819161683684318580197571592017990248668994494378270848638965442178315895105209584383227569568782559269605690125176182836925831298283766207821975116774432836453873705268321071269040073637219087685924879401302834423882343152516960949515788963275161039248215283202564368356067932382466269969116734092644472673781997219834868798274560164658899450672169507175044586911116136778327859811094502291187258186359343484033709178130299871187654829275808215007857559513799073319769871323047141748022908999729741832836102237718338249006546316795733406268886487742604154392860426812537104783673697738368095885643541098244085488948370075148580222756706203277681045528715696180346394837625003739004195538324931857604412158200467422013143063141829165477611006135255478098916409784905982342983625102050088576397305995868958252416459180590355385655163422000569570412079618919587335611522610823099375527610130753564623692465374741863444431580190524816831792092010582288064156531254068678514509344987532236152589336690951679332103132965063881343956120443459190496126821920260624072363879023369972547881966964547715451056614429353433324936541650142958216602614402110226368873154111191057731324215031774505467330963020877603522823153220116222328676694049422583424050695545575930655347861575282845086691918647885642625562660307575274482134187923201864151958980103552545557366327125254298242829382749628948771863718646867874039579968655226226449880925812238828480077854781028553814244513168608718191656794518723829642399200458883898462131307751145247926639844020944741037165462406206920821454803226823118845157876535663131062335385757100485033636191235257258433147033642948410445239049759719790262464357220596702324681133043670229953779827008070394995636542079673935305185382172165658237708004427362376486042148390861187523215139550115473581815596321094321430103187606210448102680599797464711859585339258498042893713374104274451719029987339507843240520125111147315971933468786456312997639964268512720825926752415457025415161583766394225401986507313978331237594415626280806597089033471983855809577644128082318829399823899259073296884684984983180353437544777208833405866340269738362696564597542424566070200601379551179659188255386663420966453180115652491484090649218382826519380241806833957760513028555418486940360049961935505843643237345824245840319332134685076109726980667523841249355023136084073275333965880329465672282897141959450685185830894893274236588499917695817600453379435553914203183437457080903885539084875966990025589853054601248894409597030608955451186149639712053494028757902784083265851660619151223352143701928879194898523715491778098810384494563290234583073173303970368423367954524804997115420777517984699504509038588562690354832318034025307638498724531195690810605145220836929856156811349115893180827159102786399449733696894401740814332615058225031873982488779284106765355087516594376770166473266706553047196292091391648484799651107143484124712833604071345761637703958774838326999567834316645173629118287365016662205473776499051498361472303456311969015540601623743434470416842494855686273519390538553869137323306159415345484096603606434454287481561292556386031331289435333166647947425639171412464660723058356288175672826381186891312628476158294646780333644966736581407158942881843897903926076473367836708881642424093056373001397112120453988004545154789301523893606384531105822041035980149763015763525823832769307528247045981210230204085466126509823117784411521685821409327536538049342954704957505720561486613275816886714876124464325355166647522415842054729541420599372977380606972360275733570462357992973450500320002997390924515590927217448478008629755673972835777360050842148494202757617999525766417564416626938381744493505156020101045707968338959259017183961160139193420024311654011738775774056989429653727103698722827551083197828880538054961743987520021552025942403896705666028940087203297990730266496117721402496841911523031735985446608831566112428025464032758948867326997955598601011657972832939739879254792476023597550737158050562249980020955034578872947318175037354881625782446385730145531422658526973467085383802541165081019456505698335448459256965937113697493775603077731280038038988976112173452370507108527422689808046651248972978503007064160173797572737485709022551061554865085040848564495359925128072239030241856242353978700697852540084040067377920352904227025423984502416564269883446190679518257904352509646266578212107076330520370502175276928454936677040537335987825484469712235843262722755941232926502798698763847491559730736565401709500835901011909199113869058638498067748492135237542918440055845323216035928587465261028542799958264809759251170289662959769860026644837195824679187857454920256049702242710233721585471466128663173594904668430342236020220961140600554757171755768878621780520229541842183858057171874724452364969028846933054430191775439736382904448596165210054564433024376570123804400851719473973582915238507539731726484587919198842782309665360845861525754347042765996759940271944097128454401164126041480266717580512581153344131222035970020908830346516609220651583050801974754455321544568051776397622341592010660113982006194463456448729788276247130909343976690796697895016631209881692555825822473947429122704152220848515365098186070199173940274955788907230079658651663893458848879385178121842165115260996233371503029272280265955115851789529537136219577981400227677156083228209740968008462353744370910664195786748326164849354810976913461252664229522498063036318199169381214509839308912336530655796517678116067990232659624033513322578086254832587805433577468830377849312162797653673359561497742509995759034398901689736448580073830376807458987523877461425524832165735997272203489009449349419605550083726734480725558875211815967134263066581150535489885442618730634435136104916528884747829098554005543227538162939952964528077252026600482257687460011767857404440133697541018132615978990013912328163241722205366352163372124784729909461009368015515313455587699269874668012052516654247726761652209083033962093544331716358900910293705407838483082268946519350035389928516197475509613073178248873088634385424952414745006466694542138640286440975066722065449635824273310475764548621722408652461378253897159007982090208509605369553355150091069475736572692575281273814811962846753583907759257863906625102284674079293252039995078822787599571580698535963622657786645469796063065724219494743558972097916342702787852368216029740182724255179075269446367506614347784665958697815198872772585011961534738254822752220453814342711478919252524526077711308978199596698186627865617054450621272666328371438556697580421257610975801487992725540113940195164989759130969389683731824878889692948180656099717984813022613839151620916970792179257792385305080423448331164210602076676097004842263746159413207083267739669246302187835772388827914600152618070075222878884098335468918103685655095983180504155165844770080465376786882874354507146819083889161264630446211913128376308316878953310625483973434374422310850384374166089549717315106265850749794473239612609969255459037273837339470382223295225291125388468067382886430764771312677056371516904150791420833812833097460422212838071899861642036756905936943876058094800265256891138363868062022738033479772127796204770131124030362680015462646920608799387805632195133937827309906234558658633647957821420887798605722800700477168817960011273254817414300872654213986238437175546281506716072466391076361843038119651162461937034057963117524033215147329008910755781018192314944369586213055041226190947027160341767108373892459883588510369113263288222173866351189748980909783036378907909196942759470986140163774421047836305180369386597139805289276477658746588043759100045931604487695131704226625200488367817044345230913816831430150633403884943030575585186108819525566863166395241444132971783226314787475426317480196622799676645814468047633587065649792199269626803178578647027785617980978112426713043655981389837391550304960572371534859224916953874029281569614840106617647314558100525857610918510490226395634926213116873477219764222656142735859659086681525859420737831566682080880204767221860960443658334387192988079962895830731483400793311320743390872598143160939676075540737249408985261960677268303484518692839159520807096538807179024530825133272398990542627599157339618351515655104107941507096303051204071314429797270928148234967974484918548459623275863889426713618246697217001199398689431513841598209961282154702113903279911025496967553310487895621813454416150634258279831195098540213823850817369440294198954322604253631185711755579892853416983495670381720203704951591386207534890576184123047595363875741160058902941378797503992966336741416551848868535802587152884689771798017216348354603580120869739719504695409909972989081045563837722028085301599570697542676799845472777691584028455064952945285560028212685097241641938203225150866190145400858499920465569977862024368290105362435988172751059946592776695157687934568505728910436875992843462095440354643759950025994053960557405163713827828784869225649246139251036192477290907532763268252518450991742918097868565379815714370606399088104527844407424454380351523752517407968191349031493272427197024182500865137082928962082923209529527810655809751735957615889571898406916469107759721350997057873040852236713580655641607805000410389779219061605678753494344586636616816556419699828555761341836872997267016803074972743186275614925158442207527648914967389388972511316911999460413424932519268008904206443011646836363145996401561077359751229600854185412408571174274183248397496823537619682697267618323152660307286427714918213255231400645977039240542092048582561625933082048560618282103045884443130201870366826341869887679593998391840448043035300284223881241475633574537104510011935810394161195225186400340673586093398631988922723933756342665949712462320650222625839203637918843298924127819871373563257612445847662530917284128715012445252026249907712608323700439568121899368681580205906531612241793499585490766251696117657253270114073975691531131825377605453790553972324928630851648017342412818284390315964769468029443009483689075086498362808790938235674315714908823373755823682959993661830144469518083031215970157686226832489065922685988291289482407418439684776200237002186248520273521585272477479651816361170313771021202374535690452186626289254302094424002550142030712268007536435448189068112525873397280316707343762711301250667598574526171760392502246947608791997956516189701284692836288007810524494797214738778628515596754836888250322043429286181569336908632252481342810049071174544267385881870687811486734831970374675868553071014847326895110335215061764038455771806953468055502951662494978972798112916833844800710273201532742787923400395288542739643813580915019187871009949094950226918434598491898500519196049437770309687367801685822399574966574775557137919085805810481412809047475197439484204685783857795295452191451660729377737165055873948738081198434345954561441451768561026175216261801958206993404900359922372398457663226497168833600375735464530057718153675500024575159018100833619600958211383322279116542840370848087448670876425892804590327518717777166095460590548331965767502708095868338438605949714169838153500165461842334922941672165773815459008546411414103954616135495230142750273645624000215277552441995882291789574788558293874096154052896888123976705186794750434845492992027266026751933182603422461407795360374721765823694914038907059334611678820388688370014616460475424631628246714769996537631005798285579099905529800296042819678898032281451011470150059572742274564864007565952823792860262400891688288894120964918777638638036167364269350146662137400932791867176759494225228246155764603005116382131378032769704516459998260873538674942891772253156644730219107393626503342739378296862638358193371845334205525127389608334535283090307900819706062880776023151207195667252945297630430506171038140192945552590800891283216322489487111727847521195886916246383948023427557670700587870416163279262741190396813414886102189056224633651034943567623646720022059278768236525200954316551066443440854260154108428465616154637534208936137173773943171952124463058571655175689330514584453229403339745888880026317802021403001950197813628512858332493447836174941610357472668866807131388193990978083734509632072531155705855704919379623172766600060310499290733568968930959706617411970766891714901809484294890491198416704828893101174476232566744729823508939697642153955564041566568410276691334210799978708005312792662168738987590610878016354499577379621946950063382134460206175349756005626615128134378981690446427686613458308903152836090699354595760679958458166865005716816416572946688330013218297914584773456787944872335182016418551817385975264627210951440389238674773135388350462178351545444243273215331723855829040568266181382515985938206263432605305689201694974396444767106640058081765335083595320244416333428847078757617752100002967671914846029056929041985418614554141202449084750913457546279172551837987801174538001620943715508034510390835822912297771151886714580531024606289677930770695040622600745720292349393387826952157731827160121186730582200565124933840696715342709706221389864761150714788736314686608613310511208763468162162525390725129724590706867696327127893692487123532766713929389679436031465475311931485226525107602830358686698555051733257701309128248857555314325801952798217142614228205486352040130067008161428963464986345703053035008773520831643900781462055732965476625470696303607872994524900186951161540937558651864048612649292725530727274694721155074335281617679811793527086456077202537332154219034748730517626135308315778890600642540598798399310830739472447207443705939769666502825118860515309928065322030574364461629330327944670940768195907509240796423626711533515532762147759486642853550540445910887716888309535257703215441090880516293334151058977181375597182397363770711511583991663437313919363403978392085764044144165384027728806450009265128762419819026200332974648820344962547864625619705435006117766667519578150138149167573281494512089055811174597389794622693289217708341577320625917336937937034981305895990907004014309453395195168403780565479298900093102659985837805331964541884038941615505867709933838104416806298886252354456610884508590230928846893682984140462526070541364309073033474655064652032540605316540173040439510636567750170345362691095588238984555337790977300113221143968170042108176996861064352115331099010884549720394769399398217473858410490765264118204311924159200088808809434480340760090586784364530500406691103938933518918666904834722077644030647096775520275483348832883253828599709288233718813773004752382860989240243601447391928491403288122889700604174428372222018434200321195050808704894619172009599990748867390666678834205757920392296877189055444269373101347884752227388848801213476893578349640921613448378611876979118103272714407229047679229472520767290853334103818406748350773074181908914185358807993983089030574520709542930482233370490285904213801310140361262925691085911240563375919652009049515238745592165701920681283410884671366096779276236570989054218332515571406854898553975156782674832024971353926387828752751295751777903276614167308250050707931515956523803708787245766498873202408637714609966281395084917317744482898662022392867803407692009748367758232405653974219291658223575915196507347306498428141239078390581325247788276614382194976740230909162152583487321561762938054656484989772016034474254231204339588064666851533453581325464641697068089235185442948945033792751179507446688231868122738094700085081183077351152147441914473277052898843239612561284406908718931204749524424488312056629039750853017103199138033674139474333624823942576856539538329471598429571788153523708241730187441941821259611149216215999915093923101477082181266521423329896392481876061383007663439102052763768047976362338561472029561408809416780785266357528152890667225184189441422383436255861101944317508299241920080581517174124664300260466512692648678721384669295169580969441753073613878085857960814677054785578824826146283427366765165758137811708089035299225727175604798333956723184581956643569087141280450769419090991459600891546888829358593536902310813734502728895145630967168619885425385063630188478796459333548857066240511660588593236348365784328087492609826077221673607522940033791271195456884282731121410279759829431164798234945341939260458923038476382001499387463501963085224736084947519094882760199685948594036996758814138443989907939667038167457904952472331698726233375849326279347871471923560399483350694799016011214386126208500444735816055392286067440511543278761757332933716757920854695444516092847133726912799440097566103957133050227807713740057726256394883740340795112588761940253767013839331961866205412285618946348585050659179405007324976312774883412654163712503394236521046324307742142455397696079414753384361887318474845592778423284324038519650098511728914589358350441087170545071385363962729160509098712218589950628062898821253724417041958267936205216702561042774208841959037268969975798749506526766941537922525735464048414957240512467868894825152099586042284932580468744746285107431076191207195054304234867910346161408661132045128072568941818051428425557996877436956582708346074856566164559583165883656857490877369580307761317023674743470469442035183366986362880660555714378144201721603848823742265098531086545401144535056045587207150531492147683870002013429996062409458401537503126477583346023204303579787095991318514108081813593355667128050661545879906258882868859050109844761988785305313701686059320142183009604796087094311658399346214623105365748475358604445270970256329310801944318393921480554311281885783151968390320111754817034333137187073376647654656803737187194849122246274406136904886700848291947501655905113075476904541675324923135834352981011743192933165985434120631919833852377683721327555164189720489472198248304213101630461855504855178513778858140019170069373245902315833331526190622334360417834515893120241808354798532562216332946823311857052988958176039175669908433809874693873298175986440664505116117758485305015781831515376089682642136597849264384287062048282418405584344370320500116273003588184273641192882786209380078725391781134301232556713898772278611504616553738199144706078711849121087048798345553229430835190026731566731635761190442324839139254670426360739480239201740934060544747981856157541293467971125520510423027990090380930889156446774339816972809400923780223571438771753887528663614682885994798583515060049089130397362753939222893264630884100167188842574010915145757563760163588559330155999801979135703687690076533618993209438829164431013961313030313573407439413228139549993406396726369518729318667472176916548679396914601558631076179525242413663204906884211424791266088870298652335047412799004892705932538257646284525554782566738098540442682734538680604574250998658084837339622917883596928273709345516638165995229099929239896367413181434360770028149037281304473291256459332395935274803330069551679198911653894645591309931382410986798126707081104846115611386536626328202909715505704128840406481889652208882988188481923666694004069245336117671637346520783078981629554545474369664307053597044420806321677691991713232082932838116167268732826070680685334656835222420321763244913779928584235227195356605844307304413630395404405130491628384277871310329434715086367336485301173203138054754904264238643509626216388784041870616146707277063119339405140708899458606809340339201433473031453340620882480870679288378634276121388718022715640703404862207271400557672565114767608800536824817537815112989847947851758761784650799167193882928225949871252073653931520035328405391105526430549011772047987154262603825744776181447785224381669706965187970577174683630978001257074862121616502719876983163904126444710635923974246917625261199042073768047258065498275675491627599474215008692484845660177046323757841767031571194863726826442484845275424363231847838388598791848887707903636379608666734285753307585005757129126683099351854067346730026985756317236887191330861169180636975113540382730422016523611143686043390924025855187929742614621564923744773913718060601542843272392464821629760844801480354832695458496799714000868518150190378092698268126866758123236941937761927850346577027608372379991417207312559124140337778499540329978281852099566860094309185616147312549540913049577050117490014832389769425835045022340309786074827423040623787251119155633893265524503853335579850556402644845772777686131771218056129031627464466331192299252006334190568864854663810127752588129636519017253744768202009427880539829058281900712041549590441398099997969394284610722625923529638822528205485109366967597625833469100898732201031515307797941563027636827497515379920458997224978483451033999207259790089015510527198919574277489534635173196291580603530433530256721025237952753908672922839640462220729944139540721043873111530302424535130114390277505433627888861784391550627277297936285614827319675526950383700753902199293600016924253176554994760831929424254778476805482806787423545782573197151329619033692393930768478951494228243456916671529877545778687517162930672001244411107830373137356463558462658843402030005092441553820840501476987595911149791049252526931823421532971841956147096811627079823226728898726467037150446030007844374179829845543956019613698194243728839063516004972340557959048484194012762220939241677988086229075294332160298161545173835962261474775322365827995101694202768732961404182551147442607872018289003353365296234262599578623571864448635745332229974493809737215759955054229525511288852731921700298188955273775614952978589381307820201562912306676291972863958953894018809374927274628831669216353671295255359804031305538628281559625038230919732985609125212529404651195943891505280094434665276353835529655272125217976303149906530758565554709258992882584029622791604401317098448036767054665674223879244904109556600300854013199113391956332522059509885913898309041513896857204894622802029789316189851314165891709678886220737130709623784591681432383753146798999748050104103355416707372516413371556452638984990808803100813421555587403097434919819332469544477330358286705825274732729139856739512642996421423951489637533677046403273236555474229218230160122340057620966251986494151754331936203017026917427749453282539069355631525159331968973992934088825214511185830622890800059589154897628523734066514240044556741134800835054846450905796468607027849921975809006148948855364834926887489756033699804588984112883501242624543438645236428862339348674619339884102727728408011556832033811500291856813798582076526666577084654412812000544786138194710689847034424205668054834603205465749700330824344061228444624386464415490585088175446431367620954561816009190064720731806652713728289402150381639166630022731243387093052073165219931793487831795492741511902592344086930088591467927659465741480823725193982138102834651019233319774280805845923112743508317649316577276341617722434341311879829531643067464126054294047835884159788804477624400808944004385244865791457984762247666630648629882816048415365084010633015670844923633903943469056283774134821815984907497753513435371783937053866154256755573767855238928772683351846124872173857194798112982595775635804865292548387709640150534445598256855443064507910258394080290706670016629497280142264488397411707138640534986393323362000321115499985026965824386995999538278769950620792985060712589294294214282176301228560055531183225349403944146688185972025998687292821968556252125406195586089538662215399331459987674109611136961127920467815722483887172760086894711103117736466550583600595983973236240661616411585726889644972394245109921323991996491515808597607708165176553697886857667814311372663025471136287864126004594549295935448450047186946412586087095704371345659381501591774422838706030532376989571538003803463809328019715908197758726848186445702402741298572215513605343825412323796492832996397755477856412806421439860872843962190443041810475372401345589685662676796002732916080484328664652179899878777223004816190928207184190854892237093712541698933496876079177107553319872588343944738660813691899631534153499532930038104055995620760828731441857111624550530815314249529349909998953516904642655204945424459796526755454569180054241031137423773964970561409688326827706470384472748117027689008002192845083232362114918238518714061196903768832708331530045185874264464311910203800999568954433661225235307983533716009135315984081113511533342756983063598522934554214009227950051612379028670188552355783386355311788336411079975066720431738727363606507881564192587043578025820044878954898361469619635365992355576400350055159724785714449584131365319674028673553093458398844629078143314900781744263579875143525834798628140392844200171194030259258880570044246763150537742092218476342321810661313341202696533099091881557138264306601142312959236222517909421836450464983872312184451183049099744540323026218766416162031270678015618616823119801070882508074625692017577627710768662834308495594727559780490328651265788515634195996839360418828672405226914536830247757808290148773436768485103727462117836100755113053018143435638834482479241538510962554190398632401063586799115038149995680313002300301931610611747963267163345821929352138477132100476068778551742104778399224276316936129287831026008424872481923109142744833546724465820571849530603776333471582259585893385755492218095539892725323484665534960237932438509091822900555837164201389756210971032087357697795423746852131500115788988614370537253627409437147157947407723072895678466845932941549608621012386079794112845883612968431971143215125100021685062825438222935547453697308403109013131876127203119660946464686509867962471097307206231321556233170331023115183795969272866056997219194518695459038127201289167524051940163681358581379707357546281259565812477862336985147500651228826127930885325686129125936046829472517359296207173816108316587299101888217446835804628339918428640705308280289379606088078688853486814663945564268658020257067469824379024833587744923271193768745821178654949484930128226581463820432565070623340719811071902701653565975536025772629826833823461621163888220462403555461490602043326403241256998286193393002109367626933842142714657659954101788728231455488704879264705808988419946345906781856840427672689812517534932295777315661390871222354361430472973095321543498408288208241553162556458815826739192431013967681326689514010535464703803629037206433830744382946361437587413104243154806122902749113275056111715527175978778319077384723856897820066571159470481333400068397501636552376645157206068286034249306585355513640996118945473134754630835146056835627210362711075322086173970945284725007926503995598617730923594922177769487244657795860138792557367245095700501817649808376103421223283510905669318762363872308220104931851875773308328748080152919090004034087351871181271197767599806771512452675088521874163467739475750616791075388309521673644515713819554710592527543709943659224460587051858658989271612468089452134278323361689097194437181419694596300189528684322211487617311937911379839681475185048091469704170341962788012317654990574075786825206186169868246688001734662370330706449320713666423388337944940615556473853232453556495242127609010428449669308788180211520293282383453211505396685607449088947323321327520337741434298793957650542873719636481093195296725485019673581790303163046040581788196964589372955467991732919753774284273524202227391097982264074126441556926083423249401414817582566293891160566660410631358337143447649468269833953517385075432431944115531218313374339683747681517006097507783934002507233224922807476308164492405118532546054685502586422731951337546701599848460138744985738137624044084127603642847918137548187418884224605362351626077004929622017250462071715155959530672370807497443466566522171369998229415600700443189454766377592603521498886291240304517165911466195252770278812776660558039451416311409678252589528654780773723896176741814424083188370801215710179169507301646692251248217113117246717953722046064574498725826394697576657213921422034926526918830599840277549112174406728535823153420945861302628262480495682294524127112945092327418484162018309698096096287019471198591271575746502462625298225177897716503312914186092209391124590173083980721540979010726178813788713763024542549780168059590038925000021520608659410362801361642368584447872645511069309765522126810159410556989622492712983570967449281199172563401800061243276291087468475242433420073859868371617974511323425009493478899757663735977988291277957665014754738661461389212102093229544044265586786431771730081481672430761415034959051731040429314294662621671018106051094565134700360971802830671927380572716197433437647467713980829468626017174776050186296972994117650406585739129977897108576333052544723891861700355735182399128406223840461023814907174787722468359550918000826934744628498660871220165195523804139029391421727475022342506566451097223789394256608472155558878065992528208935218907549363789672612307299193908022102818248033066500589696678044454542107228709772057594927080798739047317961073376740763593230836836346093144374031634929214719387635576975073591281072967466310437016852139602887629772253513379326237995211096398746974858060919299143473246709339778415812806348900915223612222707783096696868421120428046933827035714659045792880947240926393835062287959902403441931832851317012745991562498794191845393293473308787840476962611205760370780413386817288790452730362003183843603351759332244834941282813468067130705431643651225567314672815850020788263582466671846716592421408528953152782228979522919241538568256341964037074877068612837243127295564447551951060393866906906565208037658908976987953131212459017396266495405735693586681902277967024511428644881206855330604604844666196757343551257171646578556384934085442995237341064659133691151145076121677196356146798918201877623452108462381834850906584713638411856338455864814430049063693936756931296773502085763702262377120834936284113138225186435037015152252879836382669310808383607296446290786363774367630103444907669529687615497281438787060372678063476097364516168702223288600223629304556391972953324025484833413305850982533127416585704640276322938852806979223629564105495968275904986098158796846880189367728210354245250068814924728924435382472112839693236127802376631495650157569456374284723676135794193994266631506208213171960944389890433162387275326043939983853784695393117052232587492347016868176048719344087089184324642851948070805053987055784755442182485379306204836400474058679972913544732596031471915471206142987056430908149723741072501079810744134476944850078242030747656827034050832957503272617444669031002502939985408448906373166353233144835827966175209517360507709652349938063916545187245299444671934599510073360931055602374708610361216818072088142973841806633991771182861514172798356942767514781822230936184090434099773840465268513213998840292227184165509390498664819708726316661117800047219512732906029631589932330766335847266696495325792890281582788488287288131263568779741000190738610912471589013011284608141932850450079522778074385039231963111166878907827158807154706066538174391896168983016216263802802031471493867141508097189601186218146823657720522622126006612581095158431823727414446164912058768498257439705800332501659892003174365193748963296497552922677285247974091939522789975492140291276785410454700409191106809853465060975220898181426479841286275718149909333660161600721016974275637867798402772876480795293098265809581437015002227981299051473479985440518223670639018647303665200462908007532931959626024899687150895604336628755233225308372875029600819726207664053888895554031735173902753454195718751993784037066991626419338113105442735031654835987695806103404965986433789950139816980540039663288193339709123404858430259742469906472801268719352913518830630214243146286801799853609996486574523173483681311764220736257576934935345541563093343982618913831153917331507227695950688291637598454615108728984673659782178225227723104249959266891624483667608498505821551033619604320217102364202136298334537382961698030983458999014302933854775078089706784212463094383575343084445833592512259977338765975139399585314324124630637311572967279840294085944989578251533546339246966052956163827742949680408151576110418419675957127527661891617560429413564074587439808167028999826705061949768603400077638666641685576505188323244404802622009005281952489204508090237995744970283740678958118968627602138283420007451875843691320339704597009105273293106150196875918808916130148671348419571616091743417975151363401635661324886685315804517639421371469203630710105850924802373481472784569317699547306021588667562799313132373199158337688062660402241666041357024664171421164040333194682810015514432404256688998723562055793624875709471952859525023069017669012086499452246498693382907347241168624606248841518242019459967410666037202099086121068392998799987395288372019164888430833195584016157224159443780930823038292669119512018039279047157259483440701132044616891392254445149822345949663875778474029292953945671413212532034827756212911444169746162062061603702207379751678362748485407231354074185341204866346410115351172242879405988718020540400626096961806891819391126067775817588332909801295613847067195524764948763782582156764205279527236496480859305471021068048520648482718802001809996808120594177977633860966835386522598504987682822522675279382071570980853817010344261585233197295835858871276606210535538764339137288432542508938980699401839341163772683699205376100828057353330558434769753484111313751297942526446348363106889387749136248922822390078575848576578377147703999457341978491484984220496740811887511173326420325944009378482031641073751410764196725725260816756800592232400388006371084251926960333673185260111151556894881766903837318653395887379262376803800879240232530006067277949220222515874591065595790314150878754012327998524944111984856429388174804798953803341563690476069825416443306685918849091153675670603206257689309563330151067032098599224002204698635671746142069695228707065860920995275236046937402093836757274308439124793788474923810702880410704997168018556625678534644983274210652342765668558030295575015509563325699820952018820365532227451406959075544644352440054017012889707782277578099341957347878609730600099444349740665010349147048987769190814809434256764195529418704917303340311168654703971250984851766582794452754826285506932769272674178229899882185746270499930498373432457722895142995520115658287734346992804448916849079840590302912565087361954680941265112883954038026304405301762132826474034470055648233825100019790257274759695422663915040505422372795233139245101841822200281308741087086097955256799716086452079780824481500969825432499599668075920898374749607765848754293109270222332526929171789459898455654564287293474973575965819030853559966268611502576873450518477115942239720963395415630666851334391533937365236664144808077589248217763546395226436086732679841182276087915964052097422188428891348293687334788206809985013711407646461645610552004613086491475115572800452546609836896207383289160743151289228846743964773073198729694243110789818066069799629290967335386817952403279669708264347178169369338021993188477658288333673921166607276677881885603860934059151076119307566692916729294846432823472202240152320876719814709737676699761504568303156135448221576434546029491057304861332229908386240527787793590016260878833159264038239333947295648739212928621065841964450646691361440953105751506441620214322339938856680214188392389851054263685095234120345708623642721861592812043007405193556350111146106997938608887002378367929829492524481870969430496652853211707489186234170634738582864426261000137047582640408739958919507709874777651207526664896056375553635091521218587491029820908842328244203354626333730571248639444585782363825114240977497424034220600482710838762279690022005807355221317827678281574517292765776889556483107020742485731778342134608440835602305433997801015042263095880112681102675858330771508447039053270540295752438050432570341039129085915347315015785755094975509336996660984336664187300349953203081562977239326961689170700680127800607996572250147445356827534847699837056413512323789514286001247604831507094660025605011705499600788678232536049451802983683247744440640245597467123783810807594676995806202156212666339110139995132631658524936689332381582178984197370311292591991254567863869761666934754638632040896978632305481961077010259862787808028067856435993624685947014295151801299159094004450528163132412805893942293616553618778243425978341607823583718731928087834408408622200784879274678387395901105947962933940548231958282436981450015617126031998944142844453189346432089709869572060302094820931839563374124876229008042220370123735336536198519589304011770621836732822925090323769306902592307079343402755552064916899235176868405290924689113572974415324656202272624969561916001399413152420553259591871390624748084213237139137138854459259545561231857822331178797052125718458564314135460151036473001195612436258505204267327580720921392117452643153236063652383598352261180185486249528045604045628626299604106409376865257587963998397760872902656249199913584363873595437631557111280854980464912170227836610375316676869571888852531538607809735661668396317226767382288358440105948545614011935786072459861310357895871162535587881102650102899345788679104607907915107300084015360228605050847012443518746390984234614775605239377616954574132015781016909725449638657407308022294377932225935849475643886152161640381714770198282332426211304928098378349685490530705297790327040320282947354425701144171489511989803652574632328174492318286120715898254993931413373401766344364826066407499875309415564823555393560611452553185607755573285933625562913199116699669382846345231088498198245885382693031193304489234913154701380456626268427717421166674508879923786159104609177466675662560136385858534686195624238845913237813244731809164861747256015602504266990660071656731279103314089081394153593880258718661040593617464759363288774024679390654579182929242856883270426347406776626790864081977585721578441022431950226806683403972565304937009155324897561160774880520644887752221558548580303825900677935045074219805532622716698107165212129862077396436666904684104370593984686174333114932042596850840853001987522830209505722185707864624780590533472823399840664623552052856246235639630717710186515275680461117204501411932678895876063109600832326005329011869787064167854532170667993055976360409587767991449357050529903715836503786256801732946653027528165148603963575197284887370640914224130050687795048894467956437229790244856454754289406738345644102575176914538349855696482310959359045308277721692323452492601247940673088387980840150922835174193620598730012329460759426194640409065781831552075808322578675308688871657250088154550889666097421964936658868580731238401902521107742748243954469259682410879294110781530475682259525531031390030985938206598115094997872906991728808530415543607279467389387570004493783108911568624135436919349123634815314683361350393964591798139715344421353933115190189957055426446671273779838419139580287703260603441855585862766601480555452745893141068690105219906949856034000694820310581009972757333785709699192399242712353823908275269416804277257076757535937768664010406051532633254296977752120935444334064386552234789186805317496340657157522782787531853509021801965546067697043726878209688673118149568911538358466124878632200109496533071098783828757927203278326377308709869297147018208883202253783408649211615910567931493130309488524313069263527496183039935207968176680293367678981177650771758417414890492585613113311330533384962192787259815849964882205044319897407484057681465199806496692494588594379482990900112178338764951375711561491795811803694606140164561994516868001588046520148094510896694285328497698240287100646837121951405989140766221974952590410696422925985976293689107442571108465466255261464371341068088864568582945548428036682256205234450982595758921254432227870046307214178155491538449724577681833617329010130342988846547270205980431280583616376690603182894072757830508552395290419157035452485711903505832797950186904537824446168421561817640413599517815159326390824768614016176926092427313783013492078335317149330358488186303529419785358122724242123931866579432125840784035236133249538473124284893499410808363143922367343098469190333567753712826009415480674719446169037763288984829848296251163173550394072670295584702078418930671881472992115852580581739439233096362000840183815366503064518914383074273952659731576124397156657648726000246659533973538937043159948550747259653018070551138637840919300595095154476123724056396891501556460553408907767692550759440410587979588898421515094672026564934233511242613144370387993674636022360552535674727511121632786036403119066864945343979829631607292976615078046417657673293510272215843914302005941794700500793145467498109000705404067664498860056645322151425692233619175942780396728802799305944334509049412647817353368416779107653062644971584287773387515809415944130981584332817265656922596072163847234818463462820231779836467686224773016440645664395231029532854634308684877963509169365411816146728200390606049672016464220665337462666192096153756022050551933393454092550189868071942159013778638810525636830719201518512654918273992104161131981469760933338860520311258798938872880176499237842896047695264903086686744839015523641384403704721862633769221467030768820946535976820246695631001498648993550255024608080079407847257548713058041577459905642658626971633516417140643886967529406842244285738684110344967484746669112169256591747918879812847347685990775303290088125677213569580877199121972129335108107718480947470745831677106091160306574683664547766832711147374633615618924990888596609125571644845854056468610447670548030445973946736120167793958660682134543627500050240320586631032962515410091328504835574724988740356976254329632719651469915999617389895218711757261880453655018167628485988873373949936564864322926306624080985278111129511138621237972756751005351507894349273694085558010948833705595668579029074041337892584114560046412045411062278101879466412490707049180038630649915128238310535825481765918278159211711348753173680840591136937991278051635110017209546256170079900301065496710436993956885566132350976891875529360240619042781922392465481095506849671248807101753333001751872541521185640849367801725547172013702357909911792872823046432434354074521779371319615093966560098685992504223425092768123711996072620869389239935275455491879884785556057046481031702319902617483971423498275753840611977609862834841201335987005272054816381548931799673302564384477985549898152706570922960438386658672800587631298610143404483305607886997928727277198697156825722488439920756594418827563263564746061578998708798878587216302797344228019460578549583096456397823209884279881914113464067371865810645608165777791744080030879235198229900673992942951379493096351721763603288420361694901124229398474411569334758587172951923760965199270267784990866138283666689821447603250528806997352710752579416986023557738303314492575068923317017540810698914362514318635879371942131182064254551329363578476332708507840097759757108202595772085118912369348319641388201943243591172004754523610977048068662984576980052785360702254925033187483852574856455841595103820287860508058780007223944378513883990283665995185826604188887454184955634042489983363982906046625880224234774239996824572751420065814649164644801373385632046980259917564432420356003222666949555378125897082802054860614055570939545040992640403919515372333354269610104077891338527309182905692184689063675722509928502053276529833829940394396475526048332844390950313978044642949773359530183117825239933392219496898193255664611926155336988407070246400081597717803366443939806695769006791709534670207224443534329472227866907920000236620916572307079074761260447410537703636515410939053031626546122551611574608065729092477467560459469053579284245014631487449873434668484836657985850834842951126770516359302152582831802836917906033572100068234776594536485231802732968155534868204833639888929326414769716641855612877146738785036846632249150880070641760569217380226425638250098117828989227714542232595680105529007314474908434175090306072906642747338234141748477756627796678169286216228247321003164298044487513371480115248633744159665800847905518082714456930260940277114115990589937324933061441865936527296360268818948934595731692381805112971539295664462257779926548160493053449047318832024432311522907103492523626646261209871875460368822521794964938250148147277824397077887645622432113816353956285754527163533791479543505066738659569858556383438357750508189924117711249479033992069154186843529560631540180297054008045812930099410605730463958996275629423740466528466129945746634136898525050780822972300095976315879950280709799977763083494456428452150786333731690837270108632686191536395987814534958108936436834519931380289518400677672357455006048885871976595612942789168065019067015733653613233303916997052937619515160842703164870671159821768138382235599096499750920144829497831870572240387168198236921192368533354240545107429579651484076387057929087262105116135974779058709515237571058625985576412713426152800006716151793120706123978635505456679061005014124436343443993984212216541271258137211574279226306399064656705793476772136009711723057504285255590822576445530225085394908471523346807462275896202849716216045859400583332610653695318855209603799529029262536074862632371567508867463497247380599038058148653845522071219576349400146477259439180853314825004792652976034265091241757219669301208282130110415711037860544604863818815021581383649942344594561586466630962620983835776557323719744104362684363999413924271934587017028477047542213371176850916862297461998568502671626716855958336253904466741772105166703637911954419485927939006857908677128051707643296871976677971772390240372053552245902837341100537641247483829309128055012204901458512487004824596140075997875043793050078327382852942379897478394737727048788299157219016380272045067084891583526308591765373947072014341400419449149936279286912956918603420552358780052651265880660143805202047598165758899021214420864145019359756707370046865586241046516309487507978723251436512033349404549938538372138692241622940805240250871265718110433785951017752238805084442965345761244297394752923480959826998726061376518101571468604207012521012180636114887321095909651799228728276991271461531065053436187009219617005401625974400201361371098994067363913208779056475507485222185103449359764606237641264787867109432079222176597926255502591639174271475160396137603668201099562219869338488596752874829215514324790495997605618006228397986965054567428668501135629669033878934597157141573678304711779504190195558359366817020357809249826991210521197143354681781494482856259303313513889009890521131054803374371213420195491655914482620671776578522230268395077777703024872885315258532281199117555517817184396758765865268387048444724748878529865642482813508981425995084983351845712526942093006331620798571132894036487286700521413466124894443743801121574437734357827122636002384129005393263230962130992466592352603326500035913051276250776726987166140114014748366941177915028558564449735945410565092810177014322495059711580483800496453142981494926889026443002665231107311459916509774740325581776637076271421021641456156143729007141063822333900464219419451065732254553803329275216956470717617668034911541012214784088305951375132045754049439045527121382473275004521877186114829991470122588028802414762110780074000849170185706976524378346003645247205818762468218821716428083383905420580415558484085284267254429889135146850093069803924576900675691973954285649213238964864167149360867139804725221988610100048189142968958718579125247700262820067208612306614446410031990129129657794951708519660480900209311093697125264144122474816633200522844552463538839625009622105305235367681210469916815552393623790653131851404805442492708363456304581559829862255838501172442420503193752106191786312608151442127120787923258422537042442276727184345615592947812870079370477649181471081661319638764662210570652521033978713271000560223343977408090491993447957778636499200403868363664973144758508315453615150069551084860583856204519415570561404285635431747007149715030986839328183678129491759562642947523985247043292507508726929496355309439723520154279454442188273050209783436020267557990431647598645592191648155050548699822182616876654813454472312970747191834641466173059255071865999344379797530921061412116315373879161632372759973119034982188604652749316048244331220448159528025274631932933905732457936233546626678926561904271320663823787588945801548936582553673859011645156794550308992511588428564191883768161121319637591928767855747178392393195412799054098807036025345684671964572023717728501029544905446742405719819768963215186223907118408132601551467610776696484070596989883009666722141470760381606318622705270404506430169168343661883156242747549072250134736456010611987033372834184039471304559079962969069882089827856083940238530633672125203666311546951374971121007197432275026756840975398495026130365738906677055980646993498810074384221264821788013091660997494100872662427905518737966029502181350758625899430361106077516373190933205759486794137775147570819413965040225075937526898050332183076915221525388788585583249491639041577581985554909360933819312038008931101628534902699357836177753150399014621127535442518726224539121304625693381817034181492019185366980035202387157417805137084790787088325266353805706991180679823866307435960517642694662184044330429257293874285385493521635506263860043513533410333372238971641558715824736155097109694657924120892087735017821302955888288923878069297344890801177302884147134178363435586834181469960183804890083059195255085305536581466970669913891885176455277595325773801781225132237933614016358485125537239899085086921551248919823454444982589160932667043592754517824314256011018232895810053475862947117260448129773229935891696365547313161190600880961360640118997893895187440607864038952080710084720456096614485297632083951717604944575323147960237213036894374483280988562805219454927877095137411745511974037375130633644507314429765147999470627095912814990594604917878999053697034381350163806101777208575482472641789084117920207884389206285356079678087028125135983792436328833187854395831002701613539239982779942348727318156491343494251412201011920019533424841568407912053053189114116014106155129088892896172205052563499890095410973275193210508172094119170008588496295843285017975295315172509768408929136481137732522749355127229902195552288450631791164674585892208902908430077526193458026473363458694200202931334809209474048006847764636031710547089903004281216851159289886128959118376258592164206568589872633774238698926271540011110934805092683231391298816636801139809151821367641247526939142763678272460419315801506122803405412265893893799866070402983488971840143356529723870207065269744083199633882065776135000811395236133679118135523409185943894418482454544626608643528117680902035818013748883308929424856692874642746368979896690223035959498971539716861853813411652763925956079235384814699576375661752983223930316195273739494695225058028915899959094697622300994686297425565465043242425261185145275218643165022584691219857060659341157996863392838281355672669231819740431632682813562461585234152245898513474466532398037871191211945838625323509006004174627556228069844192920998305988228513609995967989299419058686598045668455738598813604099653388532277767785566108498533484664117297487697509564706460179493330235070321778423389461841880111421233110799891201463425429648217328885358578817070566364850744451724821208557857530154058185930034599917819784599814995229189642322045553854510602168921993045427806954958601843930174940087537796014068308423166878867474486961211034546166375803419679876716673999010384404644269703040220564482005007021792354975153370083932777155484778911588716274556616373607358232012033514527167961330027519231086858170151767723797823998577549560714423118244966372803163015634121936286511550250220445734389902347983589038684612422392012623492998768255769774208542896746406382157299522901112158477910643558244773215679238967186131604432227632720898950573733889274239698439659180536986313109714473878462655937222506850451827970433775594707254273708523835124240640310965286567844687364227060589434366750912252866988027984249158492349673777203128859425206487397922051403292813337795980160877220052645342421228809441169590696947101992565148214188333274406386876755488031682087068029294411293498324916036121863376617490552487330140385966242187548260099680674650713011893303179912546988244031996770449565222787786786479947156147740124181376757946695645211126714924183711285887690711349062059281994829141315698683382872395263834854003037511502554729331444400279990169726862522082970654847462201605104777144403301476974055840590270854594831951955302188088515974177986916419196730565104955773846476928144779522325058975090257639438480333950116869127309022106028439435273831671291660227581975480307324480641251806925888503211308584813654207003202348240344055151130808865173175489644827672845935789604283900885553044390488644133918608095129088790996423390577669648933800009793446778694377452650320363017250526892565455920601194139549701108402065226632693462989592852341108420874873056629111117050758021481484241293734423822614509816780839453520962538475778316756816000051251127559122504566346175678591878585222656608027695474120312196428437628652525767593944037810496363144672315331909625269251401602054294520464811637029306281025437808025677006298645519822637028929921985504070698328006926269837756483136142957092827839107951237122021848053095754628059785953012046338277957633666098091549460321473712812799848136484445212032557032378694345432896038667484203276175263416491620621766042220375138955931020787169065944261027825179844406843446640377006416262737594691746490599726615970721703348237638701307448412358237852503742428580390986800516301543938320159611589674825541330515609207602279607660623487500525727192300167744541708673637463536466187588927862467234560157396365627927134709469695573698771448365499761005857591686015355937581699849956902542304870744414821348702714607743703482623753413480539142883689438431701893130267763868589336398966528867877584839003937973410096568623592537249055865036180716725580172008065315965658226060755769756278441149934826807634242908863503443161491090080443570767681147736725805260281178389331760528110846409680573747154797020952272740880813861686758554927473968870491500401094932197482335056751120828160756669152250187358488581428403812991848349464405029902063774146026478026946407380152964594183744702841329635880500617352493969594393873331317434118334228160353301110394240985290268674841159801194324823181989793275000209149930283150485357197967970751964291711131673178506272292357025276973534322772371963016397338158926229202157539696936048450590095927214670886370727396622093620349985362423364551217964408380510903707962838887115545837898288420325825675276342839445134691129257937594703046257220638528824738447384887909135905877016487587570043104657580573273066033200693675284316306823562646594757469418425485531415846028569981420405671478864163829854782369558445843410109855621269587757991197401342618248486108497511049037715455726761062137881396579782733208461224038951182393860240808370195289596798605614821928498588716280446767507829935686348829747851408533826541797742067024278689125698006916431811528130405515929375618385861778978579972733335849775150263925655577007230036031633109221231657274037447914290786843018250795729265978229574565295261101140342641327362620270667497195932640577296202222300478842563029195736607016961798117660841664013821929328249806779187437592551705049318712693104471947822298039574452121253942307885662024145085178645393728893333473212975502014137857444394607662306561632552882994238654541637860493379245631738475915463547876388639368833116388758792117972309987621915681602332006898555873000290193050610720436516662475947126128525782807563005901621684516561682345836664098071261622664682961895980286198030182680772343188250000414691780615007454837978657853149457913420787794684702788788824516908269785981633555791322547985715716835211746158467268574164826564996802083685611909004608895168967145351065672464043813591882971735096660441115908502689871739316534161917043281461372250775556689209720147950785527459336051632498198761537536468682709586778553756454377050409140160014753318944106055788277285254564030199015106493289197796965792684382496134820920140400359841403598951553379328236146831335894614455827369732707111610825518991659897667153280747923431490182343467353049458858018776057312827417562678534547493356691352940705889095520357208258351279768131698654294043253476012272117486320465032231164170665349596117719200271236680015700240037350360553530358738362907711730872703065664130317243314485821148118929934076815947369327591341400887685567808137641601075588793882342199723284063279758668922363194963005255122689708019968502190956230110731416707295600200387389000450141649134505012972575540568556122547339368866129073200744184461542531057745139318140133679006014564868389478175987769505146605569597543016700994058242944010912544404914252007015341016037086817613848406873907960975136336099167757168394344104730087909704711419241831328555915108784313036600926288100170645839971437060420039830428555888977389481338031950281631000415752875765014252147260108815435463014164810390560292325170087151572580704855820499014635153993619811049489435720364436623913394321280416682881917400150575852865294066844110396862205998489630417036937261326416717435349807604667939878745056744306778662312637308308337769280716707460953631902560053682085062253298835529981671965030873166463225505504457167163080483746856541946539299898825295294456541248007110782675120297303129334688271062508289970112438658860769448611573664238057986367487448586014763434751788600058866898417169842324313996968348387499527650237265986823307137790965668293718612780145094745509006616795656037439875763857314659310920906991974268072290446146299862062073452275525524647715297407937876590240198681224031071429407324273097952325190912435675328185716722178974146754396826023839833504855217551749973702965810534761940702738107052114233120739223544300255677604535797722531810632516886492490145815786928745920335738871655077149781255242862061555917108794751159344479165485958516171755917033676134159697299412931036431387862210348687132113669242574265650239504787997758978285791513840429329336659329143473396418361559693938434519680042090352908342178018633582538837704083564090650113287267323555631606758217186882047262220911517989998247343266465514428840286306329936418244800395485170633996679065326086064073261983680257575102866368971985723947251315074323389599214118377846824951614046281738987512270587739025074431420016931372603625053940986527254687733931294365908020678143495476366307582393366209872812477673503091119656232462980158058871013122502869031006777084418662610022000576867748076269530336245854648972571132145197707595775330102783886405563608407366923263847223746929317232186464449565140105367848267490389421385906825304481116182255105779352041248578432090008201160445439855957522591417614514174837199011451212520293763374861477291578062804195666486476105185554836620595038850218165608217740567335164535694777172219431339612803289012545743749314978777914237775580258376378017449169984619137101011087104033029437526394312788081663168423418917932750731301455298926314890010670107679545624753255681899484356558650040375156291291629141500095230857142151399868550253192280897911910952697730997311921072829824986891824111930729560804352230909111326643474267863576205202154693015130416582927186424290431189818900051533066266435577471008568263406565609753110176123599970649155589483532583136206209057317571687888255702324952230800470202295183971899556720532341006566727585224698352430093945229507245415350387137301755945890621707213719006192805474488810950437876579818699605424937322301904523933438290163375005872113245050100475707128200145437597276435621428757272840404199142666907806427530775201727030649706686619098651586228747464481380792359395319952468008974409557946167242142502798336888865846876616389122850625754879154133856154952026946901008676296742617324790273369856259631319198773586776979456393892816167447207465566556211156446267079597115849580787472727486245598307007721011615163922994149087316741483452783351655002448952114752745083693876380100063198359818190956557884145535426396691050143840634360296383435395412873939245269360803511294139167932844360183572584510190114428445485045243679331689609949712239644048442161083683532652944555225694076292985816236295967359203652837129075834393271842309190023836210358983238586684427808653097929821579989436173787729823118629902619506483767126296606887450394103032248981907218401390377165969559204793975062924855398174999201245474763210714638653404705073065856518532375535948163388994778670289073694761227817462237960300255825764693703921332217319044245284024939191035982700551425543125676479010824913668165675260819090537874609003733223201585346986250691684750730049476967883885519562066874392714099249913503217622068818476513745285702112765785812775862963259286932821523482287137742766602538829891432317245373845026693979050829815736162564018088845435889829812109758585033932749588699767869723907319995399059998516375139432587583205986379612370355839982754665335989630425924441852636859780784674133214037123333949798407808091099155402713356955193126611625178648408793225985007233719311704297789386489911980111057340546231771908675613258790854658823978176808291531139529409759049947080767470557610361392708712493072265250676412575096923279611951143041006425119821481890145367777782117436038320566640650037739762334502495736753405621264079097812319566087190389352792734138187458402821263270773795343371911695647668513025515633723331326012753147013013926504715214611683152329300306303087671126909696969008272919441260754778842945534397718777343866033347618245518940840831936631902575785767555983477830483724090313418815470743634487382978698869119839046808077900161548962199220697763362347220612476403204735455769552218808851727926419199771129556200747393429387605969361194628912358662767458783422002014998918269256919163699204987928601074772605064778782858998560596844746237813282756832720945456905645989146115494782831004849731918078224694399960622245520556129921185443018689674518099150137932722357373022085894254929025374372774642467889775032228508431236446937309200501863363592518817843356298329876300278728812002142950316130020807531238224170744323466307506655723622466685644728001784568613296724484156455620376378260558554714121359178419041735887608884398376577896807780771517223391131075075044161844058260786473049685402042079259956673564663227169383126029212009792167198391467043503981196508592293543687701054184705108573813618815633072892271129843893664634715872705459291666690441403683281199475909635656639357023108766061879962893126595019366591718079209643364113213555759488691973894477554295587479576070252496752365657638989625160334501193901428999114577207985010329169211537420925546690916344799005827689928103367598422269640691469254182939230590176135158702783744018949286516488870176538874912922595272504975581857651251800637103611379084297422288949757853695935132915852000908781441278845756150629321244338139169563961878143565578563546252378609349174314104839767928982565487228488033885671535617728362924379834256459311008479505852939472892299854752662494429638681081037547623851817018922910288147886649098447991378558973226977329006553857282308078612633551125180074979479878839928673615576209241263315110090079628116665441720668000307459913767633078204904925510261474285870856356629085901585224617549298844258612358118447672236328044059372706261339224736157039916141717870950537903958701380129007815046695753951954829842037770108757919899653054115795694784306202367678851374717332335546108019841908065647470008332712240038229893720771366240575192052037124836859465227831007286817258880309803779883109404201836218158993238598045279060929007123314644195671443562713339369109928856043019624891976657254901406566196079771181088788082456013518919028678058365878909436824714850009255469046257910087399846510135038664777512012452135164857705147401782182690360408612123192348490577830636285080721847987213847305672354914596290805915002564025310056885016553234696241518190560554610537831603004911489974511365249855110692387914739863569931849784655015404973301619066534307216028411548019601220171544699165849583461264939887215881288997612611455183679106849232331532828865253361061600216897071125069015260631626433517194910928436725231311641202996295760591620540766246314191126733290953364708948096026722406116825540150318306075903769369552424301885419102423045086997968294773274099520218656916482771958803859067604916144924385999454864157692308859919976610853222807463764667951738320400578522629866444685548760527016259391432798489179815374565406237561821119079436870806513525189446379909909293059196793084906541411687557881911651697892526588094060702008120422625684344550727936224355496813603254900612043711627040619453293163412303646214778422415389803390885654217366312066027599611288065919728616878712821564360399506566124389866711004232315861228467907337112731837389572499311389546712518957633376781711784642065445932191602366320765763031786210696058624870903548961599029299605977697217842899501009039428232125977405184492588177400327302052861455273191006646710944548331292182358770706964947859389196241305286696165751815415942245807998824587579434015232775906740794504591498795856356975803281740746643810648263582644359316613662371285127852717721462897050359141189826881594265278667335208332396477708033510611072792900008721657923266968696857570159529416997016323676631349341995162476960332967335847323095005024805622900579480087853632706364896651970939280567050025514166884406230731676605015128287154324854680633954560611548388443452605777090183768034585850556093854592217800926202392132289508939766433678457030036652545578872862700706948074841038633615413833585437129963168802756348250132820105014401102822693977941058378212117294287197688848617221663924605860508037424224310687263159027076749311271030913814410492707886333280216516593728950234117799843675768664093426400703525683389158741089537980879602880345895936027264800363889630464151122757996260117169467449779579505127695868505498105578491534373398382270308775852248127991396290889730600310369261347136613287929120638496070440726773792862424124537764235212623609448844499366615182130017832996624448580056721559721100360478154533694851094294500345679496826083339406805343666368691707682611149592055752341062818214119896162234333891941938850044734334422210754435938540745783657043856801935345367284332367585646244511096456354684323650890726516961553309457870381569926369390997457089354535562487576930991387054513274232602585259998250475998966985687753225694298555511410302015659300944730152198097393464176477733247774571605237920536211446118372804093609978405671085528379630431249031354764524110777474973132734294036070133460740873984739999807721851856375989774235886498475618197408899789041111019562825835656969077528502747018656050679852924436868319553204907060031581264540144047208107300323189674458298140906770096332257947467138223733599883809752466012929280219208707141587794199631756096424559193683188332034747239917451496740900259464185240457790097102462992156458016034935645655461338091276618605445129251700828952820828432777451882998643660370389952586097767438994367250168072490552159962665912681254447518817837475474740591249051900588059275099382179067296700955874437047136540533490899781592235999631848854585014754508882982728120300852765278772795328124590289408180978545799267065408809344901591270835995950616480617208635756779023501719928567423418617277901774179012685961986487155759440829515086531383054174095358863743249537398879006730227217863025665624366743385694406878351633229982568101470873399170916937647176061274729795517756649144789260217934315852890539358959684689549731067448105408232292938470509713179666697955221169358342941671357319784216025854057488379351183680201197245008801494859666066091259561843974829605949692613072927139670193744083634151804788039932593564893030159334132571617291359624588634702989617367401438058994804061964681685654778569844666183769143593187306253462778346318650320257275723213642268233922789592365222478995343090933707982013945748956280470850197826941513416576532092712876714572162764881724972526141997670412967837260505211945358193570082619122427322210835695459190548200049669419297536767141737950913169129830744250078309241775284096028981663284547192933198078997883760968991832927201472807762422944234320554476772900937302422426318819016704625979960443660608163824821668240387608283891370318771218860330829293466031145972881174677619676434383228402047070161399567812350789299744053492684524843294136401547726540589976471751165754055754765762578012616633459073693313431211131640177198502279582650434243844745174534753288678498249579725317782886272075167897920384834822288624339417605443293106267324552918336570657829447798488438203828902848922115069719987873878096254080015989811100473849241877520717723034719784335419886347340323438140405483611474029794145975937286601791126853940028874285661396181682224656680858544329959883746143877957843332507729143375172826778218767513950787994730139448052635145572859681747129661593026643541275225484430272229320585831478354078314961737763409177003817561438997736665764300287532404640817600125449802150231054104441060934785630369678623873781226549666319730302677021041508750949836671006125674844181966842770243756325384522425760472192457683398722669548026935170930860340431334078147636415751725610425923471635691012118227727570371133289255574422114379880441788295302626500046924439088247518758909359972815120085754609978038518848837146306936782413821084861825862776305004443284015950398776194988959238439858738568636082614862486561944248074124785418944432570665393854210067968647934076591389212226541419977780164021584798634331370076758562802909196257571356155188654255020142220445456746240285802399344615654184157071451992827772302086637064080218522992204437977523960342735205457983548455557766140276180849518829207885278567909836315208647531419488172380083127058943878111673690106868428951516842010058017219932555129207157862111342031668417680590079523965485115978038810632743546129730784114499438275971077622589287243092862369372532972854661835716569346873340767026848987419943179522968867492878188697295840714058293055192645507347867461866134678386148888728979165438853520423935495469249080425910830243547977400434642579085688902193481280907361919328711747736694356825890968428824583843494254245666536768902957219655750351315241306206502112249819434624953608672601210058128083710080396732985217559601929077869942462237557340783518546802124657189022805101108762484671664678008965051831909750752246368805432099152349304807879046612893097508724219424178604796171250922480111635121893340287017187039670389405051161036787133298347852820483373040980919409172425181143951767957823629251346950602485055119483318152440765259606010030384380930532749233691546298094365131836046335067501517858250348636874700474697626203042905265441361579616691584178352363652931819258700444355390593010448385278450306777493047204448044796663301641421646271936699058576134626667673435355590565531785521885781819714767146327167407664141214812517272172687038751312112762184542548511671749316305545633264556285486104832988188783370689270773395818876719158376074807862260187907259159101834662395591557444083642310259045971550761328913082735342626476514412369483118290102826314239498761449158130447688092986087105821900201421585307400293424335096260067879261068549458608791838509710135086098142369825867935287312170224485924280605226151057537473529491633560132600800361514901255349596944999646077632739869969609780842167720412909085704839221970498022536111397271596183213348125448835576524231517651509290418055002117696326769409264555409423580449078222261522008141524213131383031736764352331465883581410005930926130708144451193546903352859334489113665019212152439224082622582130924338977686247193819608846704908122047175543460908526143759521268468676014829617193458074468372500571652976267624429594542973458471167387332081871776772523481408753731073468020367238099872740118313145364831365056437986607901961071824728492619368059923197435272016923886845233465385478815353333523769533326409403743628189157598609770829464780448871119036996811097200174770061344945979988136706056384909149580464994020049248858108847000729132340566109751889644656665062607249370489035140664603943294600144103480957323099798947742258233019032033391207335630116704304259862175829563217061102406124029197631814935623941984357990637913087424730642693953171597097718092956943513701826937062432147990769609841022928547321226259331764807855294431946296400026074522432160597752617760394360813718658114995404045552664923477318841796205323087518776204844862946138621866582504751038999865997649283727107513522377510868046060069555832408560257747395433729492869823619034450214399850789272811352359110979504646010609126402910143956947351797746718607035570556224507183865457094731438503930624292014099962348735618818789570388827889702491390547071505954399962141536563766536464202421592112107564295756979299582096912671283380855127702125356045211282413139681558707857293021605838914934850786636095252931228603780626700886590415792004160735208393387843060827082888442639688514083885644844275589675595539272995604516616493091810728519980637936499387449755230398284654861999635908644639029496954095966070548568254599203240986183270313968746600319264411102274316219326967358771730292638583850722682699832031206321660105362499743981710534753066586825685817099113641552351765706600937152527491558726907982445653018993083575159707510630582982816137806928357531333947660629170013661329592230670652735671452084375212846369872680272867851299670091630057419170427584892581726780203966940218525827972170291972605356526542666870040743520878656048546946991280218019266726583971414991030398800277822650744172127541743474358061277886098364738490754635847765420038921654238223655934860105641829013463909096737501844284301099507233862662591199426960192302826386143897087340823629717495370753703959690931736760294904874052393238952603803168970198720930815789554852710104739446331400973059885139859730964655860890207056025059375063293733834556349087588877465703254443314794428222761134688596992441924290686500851734134841513637795869038281038787302287777652582541549777516717841475348808561573586127920990825984082381112729859802712680855354725319784343879598356473285481630783119947299182715317460579530642351448201040983606471914583573466333482879554897753885117714111432192000734850753406894277737616675450614614111331271759563881279059586844484011998541583702161881240709055164547329256504251420588049813492793208782963763631966397235363356361798499190604648164517384228767990205920069204870619395296180049266934579286661567245302891189205399810726887528919438642083666369650613227205720351036362138695010085461518386394365609441536050779129840595599024528818782801439921820888078516890518524720589266473962582247669665741113788988155119603679618920231933803686552109788101739085668856229956929511575590893609117777307077027832255524949855440375345127763440439358534684208971445069080084883856433399483534457995055659261612104484135850158654827348108990197360824469388936115150335001814603393887392985639542467330340653415527333606052412196884224291298746688937567767073196493322107025199854555708706437282636203808944434029317827506918023709229100832795320208738795414427816267811539976387530110622156425814828322279812715429427686198655607022569664280271612756171851810194442757394734966122513192505437808875710142380905249867947137143494998144128808320455980231322051888999624319193810804649545740557799197646972150095556215923009923151875287859634901848078627197238365336046771856645740718258631822074711370269297605531819483172099538528450007986244407394909374248029345940125166288485785379814727187394772179100740613957027311121192686519910094292513139417771075516033644747240249969719317444465394687191136721353816219702695838931438185243688073704387028985237633191622542230752117445582763536208775521927600081105277647002695611837300433318174677595496591696585475333231444295640377974059142333455138364619256300465103326318559497566065750624342364269146458737092474199207557572743296844480748556232303082631298244926658010828378528095765704704370909095925982425900446064812645674695058149509549498305094290285751499302503849928613963658812393941760125573643342196743948479644143811298632361181780834167254566221165134967878163179383572170319689447674644423749858415506486013410847961402400661415541819972523461425004611822696321532625475958380415627428835233065176772228726681617725158214289819944127585936504327061644800905497820929516688793052052358828656671685968141975736390578507088881119687065960763608090124040957028778510208286341878085296978818079981862245970102295347260935316731368273081712216494219571593312370263206009831614492006835578051402577242970729995519262562520504161377179137652630441906268864946983352842707442401201659444663147390952183120476593122201941332591963043922730917322347960827247771025983631823189682381471150550002596185769444059468632520352500631223809477113087109445983506298565274313869147489442667719715029462238624854525388786389859375351516850224817133502986598100399344650713371136884271431711255965916121518476354616877739714014424737550962129451874692878365445887114181522284796435791500271927291637521882175648476454152632115689472466048584203702935035347040095132759742249757553091515992297984412591540444549418772282896840027622019049584605044644104544522609736409002437737461353622788203996721264003119857779602497205446185431077571368365942703752583822461749809848447679808353893919064242716879888258248028889538914301734770253900113175852090804533405332712907459566075622399643182163580743935538757409967288812308925344419265244545528315887511904724658601579599764998007611249029155620309867860369351762157421004069264697026779058594933419271764178351655539607262466407153507177472190289438305458445013203067439937238947078669919828392570587400694694638228597080493569275227161282732430684661604794149500429349347047916272940128349465614683576292412444445695461557319829649983965864806176649460877105087557012842360712390694077275933494840734376708503933983935476661885460955354502688549470695493321130574290518113818922953413086150102829861996624720241582627880047104124389811349995823608849626111845031676582245209465783373636363861914599409061733539350335623890325962883308305716926791495472296676358146045298074575517103648642151935587055589333356413905694834312236684897637822435065771508792268357363621964940612863053242227857857899685101372039929960527210366248139015518889074474790963578545775630323235002772904885942309645861230753768892373671982976434929393934691611540120702538769812794638724706930624072850350251408417295437509244462310918916766048731135866253879406047913583894129374401151887020830519391670712682260349199990475981091039936294533031534679899110448495148989393393060162078782921941589574863340171932291902868753426031689928403976467715414076383277987172088231628053015524977233624963479724457082930685351885823270964692000181057968582634488581593286007353994243762914853301838457173108094652816922873100466934987867509232288947159919128320493052554280400693835260668722369645677301406813648615279489909361368217474782070456546562483146943295120306290589593534440000666594087013257497466435807495947695291090352892410257545321155574589778686839847250413525795766914400529694311885207288735149678599032370800973682544872712057743813217699307428034906191842715537595330993955472799914741236094046918899448150054173227569443958999736181069777918205513674250962065609267940262904392318545434614018171684553999669795988057608427254607136201232978139672844690325727682881177992858290553754642186540979846215974919580801022683131709987232999349701499058971503935132482356357587993572471466585161736481604018933762524469612177704304861414784768125890178064776757718900318515781511900032749115919759665770240820043450750939805464861998535309731257978223106617824891241177599305025424853492624473003753519074724613815043785423501158040195531784603123307676831339761548207961554508486766736089597198284121249348551024973652643945684965724125753066494188930284704485688944512741243416965591047779868510362079652654936544917523198718020124982341307631541329008073770789734760964596469723946817811384987010049706780170174690507640319109308918564184691926621370074843286140739444275916917171096134123719108372225527103402626762416654334524419112346985249593414670059321352330959400960755759178308900449462604028544376046755255465736808692752200363950203203390956048795377016193372417091806920119264467595476547507513458057125614200672035442497630874196221639535852848641676108138358776499107275559204026023652917384196278478304229342608848320352014838525733450549323920943087034875459976119802442144111154439059891474309868285396454591929404655137549573817217566808017568961970189547704478026104993434220178151163328173308438492067526612346630595382709081045348848223393121806072332013974505965515459379056305761103145862970827520615148446943579480002584459927061006481418958645086344597636935074780546929952757900936660238018029430054870930474251159414061133222176940443201120970403020759023337379921547593008518591820143373331509953847748234192006202441080692277649798754368385349681086255155232384720637940109943813163226602064896326671547128114255959269768981251037768280897970952518491378262090709812157574313398125711502540518921319727110156738892874595944030212105686814524767536134305844287582242351414714539245436019757147552406354517604078378034784726620779178078628712329415148690036344429066313786981246887850774463016135395146020084729069943924254166302595338568866088010227450973803697942485314184417133420522127885696397716895067480087819753445610888990539454367252686246967489415603929891907602502116754105517493189779110019757894206606352857986436023021050530227153363743609154008694169939801410995116001983936781163939705956432869930073015224646710332749231408158266555305961103292528234663480852300863678819733848409683090783707012306265548000530611531763289735395931571815156283371388538137431720074344755725606578894074649716350781494990483833904244859294814003158487495671046672251960011598949798499902793065361406373941633980932860476362798586689397228173555625730664266671610695989318198794702151856607629598160404155650683719422271121439781235446709036528533771870540669095657787020970441370109332950891170226362946192469106155770168471996512974374264000927520302933342115062884675011874078584603890441546542166203386507398109333760407933529998667463885758480171876469976486446192884453351090596048023372165584480273964350877936949249967971491343499335831252069244875736380385265152667655720607433117915928162534086870012373506980483128998903234248612749449500328532911812164902423848874830792498764799703961851558210917322691510993396329898216581687119598713867573025074800605457620828512115838031095741509357582755240337170361612217393696746899985935474859474009124493156490185772733450554960158497962529203897649145608063713144891337815865721782067971301891254301968346214810297342518992741012442544351280835198954377363684637911519314877000165322281710471886452368803205105128226627819411117378840109968133292103350516739353362325597903432538923412829129560114376019337960408834944006679022382074080541015242990739187139204240714586285957494419811379791121327057695669584482722973112209938007504294268364259693442563815626700475618347944896772765909465821679649433307966310833309253497786824695408537944719942322497486741741274744498923242811729956094979503047365500066792523913797050127841846017409994918223151659211030862772127482476918045509642123289246545621771328735741070919971006418634264530308890254121150977789703064134947192816603325111911123225115963528659748766327745315201417313913536822017927520952080387955087277712222653941453658356932929456411056536689533210377779042597620292754919362368029477734796888820585370885893034465592128433151947926204696505798669266781528777951924299926414907678443968081309905456559120512853688113716007687638591206679380462576468776378299621699603969837666402922350320492350892971240504261744796561464031289693452503534330347458493120859808269432745134330720416942384131370613441919842206934234117436736602499671336152974801107533203220539365148781549049528701808118894886893016249139321896917842123095537443885499535602352292243372016607957877345590516924517398755660856271108610037838935029190636207043384783893016283696721634025411609369981419389591110384628315430923200682514354405205619753599916943053610089052585027321029774448304836547520588758239064458371705171956190256736298096043023725014436074338131662045767579598433550343925330969928793586009107350702858968151951988336405601083222656966119316315935569917165781468347250800493586588570245255317789439485693241112685502996337725115497150489484875079293293904896923675908992011133649076156440738159438941230998397054433905825009294358769183571667915401574413846390714210909165575098150228604167673595291958333084788556461026784446140912451677546339554950259949562795357574220251469823225757201451377805836615570671413260347305444627205518940781588211624133635763476393727109029097066245844663862215498902522003688777541948849060590378869221414714169261138379669934397440760096483417505709211824036303607586532443763993994166396248629062240688311848525505018107032809067631970197517163984535982948915011142981976154972345708840836174132857624029780784238311649074881282338139074330359724246895214030450602151273323132997152731456720842270623265710566497871389143187861303733816198556298397180155306846930846587476820640001599062567136961281166296428503391373848017745772512059201026574449923599480651846284147199876166862379527726131851954520534015795879804396570832927747558758095337381239650709918541949201234288710541748665306998406876575274606189499990307894863247126617272825411468211848347076655461706999190052736103470274631861807426110670170898944430557345549807762245268623722058352785055195089788287234354172008750074285686883500206766553323578085785110504061002949093097886840983211172331544378713205604756906936957833692906726544124375722562094753673865310736234098853355371934054381364540810511626118437590011096647926871816293772758670969008543939945865064070650593944885444813510174366418304460041351086959796538667681000957296714114938250438579968888161593150720109939124553400715292727417889040333694947873983877119146581842515787280418683192188256026426273640795390468333692232367085515901491297377201122720537884640992086372408211296096561267489262139965112741404966677264828049825620885895953040093818749877212680250416168790641065054137911415505802296966384059181276661789721412202439555306412308864087513120970605757611509297288907826734137677971018136267554211240222516206006768856394759951644638334313730260207279195312583090306983212638469168781113630812822591911318447537364592779386607970314483239546418958653813463608021750448259159376755374668278291988557201513194421385902059215261865499226585464318271441135595878446310880742613580741585007369783681475002118377318701986442477718573450432795135862481030020144086087644652028709236881347450606974293972640677891657834239915471059523251815330938456290536168535483862075532968799754878749878870761320971340616848472003524520064997311651616678985963343641348937967213946675744061183541513058856880372822252390315360982635272111809256532645871761867972321107376586424932046940186710436907446689135576688324637561318358941421021307547298765923471784665747327475390587456318762102688261971242359488656158306677074390282037898609200311431012977944631711572648889760575526589808470210281465512333605669758729227873658493238692059947713296369632385244916720906569761912151184534212448275348929710192736673780566294932456989215543996454432826165701355916210955372819070550074903333140212966962397366808685967864202659554477623865997335437970125948971928595145341477593444444411084678743295928642758080567892539513439668471607122186259242212768952343409163523046273637253705885573300045303325383560397521652064401565415408776625863998165333248788785959932767566651187323875408611578355259119158009294560024236943500493920616391524483266280570638334696604598949287003151165080844767363240202997688947092399426617392358152986438039045315491521440432433452714222202731941883795435184354527521627029062562331613792499703459682964820603422723180885109230874651527665681038151805490851504701757659225772150875195364155068089084329746953110910430602788702358589725703730513076804007937349643587476512094351091518183939985366497881993708486075983425967171905978698428249597295592019238886469950504811474677145571727239444611184807340731932575710795485580997841895568771759361224674910293974900619242712679221823086414306910960078987150051355018915984120583265911285968442538204620755023284977005602805227354051956830252233952034530506743000149479499393175113550759189248284726034406560532403139492367439164855102047939350811559707711235076990352942771092150617964326380196256319071612144745945059512661583272179748450748096038543218141367075943023452422056954673671730987652947522676962475353088933173632320471381800024181171195571463434880208343431672587242900991451943338974109555236504097230476297190064306974875648392080746475341152376057222871047119427817447198179050630436643343319417111621252543059022665743613204497087827503352624304250344648086265897652861910773387798150499181508062824656126453726465397884658863349293038042372277747982592625295790520973616059021187440430991278046853205385396643325993181705558617225018742832203355414614421690495493041970088155596876109112377964260392240256889325920908700362543758804720693026488696274166417756445224268857685690496823025253809780380962465521966818020961321231194289664509825192241412717802721772392694928895611148236415697423850617818111761124848086210984573687418659688194344582829282811396224131984955034264464691946339582281806999301757702017741980580412453834575044595555897499514330026735332411084585779413012695052033141783505677834859244444814858992805729491654459035678018362268211358890864906351548974756265754345841209411867316449683677238089414538861494434474154391049661074858999063029995063574543982152540911814179231952825190691958326606841077133873239061464541923149381149237059340247361440469468347516353795288334514941152936437130943527716784325125834579135660718749719657582790134669022360947426841721524764087907982680249598904217428541784098807977455973260904707749095578171254260317424160989232088741874544527912165108619093456888821688088016710786115605437383865235596603268672080181781832843655587531972359464787458731900526281447925695255857022434270597869172887735198773372969005112672819249346295228309445697368010014699744359097805745946386348903780887659837453902400275927691964279912437876744784184222731443449194290519833649868355442847863573756206282719733179124034061972225614622315747461408547844690448437401777924255542846923340043401007708257273403375130677692384228636442168443432456628286208898363508699378283960582454935736661679032412250899203636237846000355287150048264940962123948948371997423252372507284353471852232604627549166893819478415963229038833164345252041928122120871480785877938382889419704419327814452293665458013321352108184340361298332653365738186878253623669307903183131777095834222778391577849302156316969089872343947597750203994636128705396692318864136692377186906461034460036043541776955559446422624842024623845001651574052184808106200898207906893133365127348628269155027952411562885787187216140812345199064410215078321746552288441724255713482387656241917411509495238831862204521213578259865218764556780763235883879418626062383814133017546781956925319123268755048744360731798535253754297374728573118060730964067539575866001168190641724885009854179586913369366605407525294066379162416337129710569904295159031462194393034424909101362957082876883194395121670477027890944816696827480715015207522009893154108294929766976254164727355514121110793999723070525059910077456957416494132134005577096208270376414324778901882824779995696518797623236730615200111818012872904000883274488828132831673393242941496918664517648419822616191865491373512904379356496047615090947420321303567159824293113795383998829242465915733644929361025926961837928276405073970355256930522987863842678426920600461935090902030545854146052329374439341115690265768962679221148414667257852789683158461051650179862477298404159746397920479599527021102475199646742947645036531227369206465303399938558056644936783743189106238925431327927057880795974419234709317215526841706962493675409835977511048312848918451052951349586992942627690048536493446265965236826699098291047511532496177279828109162898638830811592342613768510212074367087182548296679461907968363469443394554863255920870897330418662527432588566876882649492124840299427728646090694915615481207816569834912082822132190579383825722215359089312819791822287892376718993645420106123040560097835860970146282891708434570589278114641155220931448423203876460095682354275400107997906997726686852184995517912344520689858806445633489229919381227463332684766397669411429343163610924054949313221945108005655943021228508330328582408270784652344837687038900535724011775537139726380139611963023132486005786088837799676532961953685315176349238681325181711456086256412288362192400998073255439745742050198275130690641994153346533323074825237919463430172996764661264417223342501345479858298189055661785574050782031722965776078319582379514285893079427153787627069505693627050216360066678890886680158244544274624266043164460771614413829701718810798250571149525891881947082362664122910111477398838495144868867710805254000051706714764051491655181025114369289084986194097792348194511023811829717492973643041422096982360701418745145168666868906539342012955772539309829388500570305721254937180303876664627093695744807422431256042873768686589652768697958558153897849149066066847365138247362477818988102621089458158801010266119933729987932186126509530613280243265115656028961287015744246708958568772599068919508709075377487617889275370305051800847516383503879029850515819367054394929130345719368679054446689364971471532061673228192629108466513884199702675339764859089949350855976970671492619808204507976221884744809903099939096022618158661866830493671690524302978696722284172610547412073253244399197538358765554833143696386585775594504812723053831561202170423644018300787628052453481394841928940503069472498757671802047351300710498474585703350534348105470002933154342508042126339569412377910314895470122484280291481278211558079898689354599444687823559813992285702843251428547213554772590477791046490910116522055597048159199166095897849793343153035736640716140176896658193912543338751505778342322310679429309887716436600648731438280475406846186419578410279451018227239440403629220250344137497079000088090641653407031644254351205432346698776924263773170480235870431700085862933684670241567283212125271992543568222655528052959592510420519972547126333561377084117333251470524027513554125438098693870816947328190315406652291659568104196564966240077718716841472655853105879231035760098180723174266754211063149035298199738112921721301449556215817037172918038053212836794079187386148917811574097093225969220516343618662497633627190539511181196907577768263115283133601748697754074109427941898230532591166358391771631020373413853996310183218012246020945476141402924899453384039897968426824131762812183003004723348027095281172039173214114508376259047995317193084471053008056082288528984847628833146923137040111641547062016364337902988963456767356322181265709467525967482665371420393306903270521108426346116633544175625622930089033511342797776057938166754682449000384547851642285539230755763149910963922555430118523747407585855477897727716025977431830610269595363272524286885043073995289891746606342638142838171454713669193554170520412700104304035294552973548255511820361456158206188654120963068164872112648012270002203841935299593965553877029949835508738415604123851071642928850669241735673011870240346321498936469555420751114548157504883823180172044653188231124897228007023569500989339994002016930397443838855053314985533037483997403979754594488320881045975137187904624379454389428358962806195769999921544437878162664954801022389461329978326610507920619789629258841258526263522396518937150341325617548190177165851079050263046672847467200699848903225939108164100827631636184061998151921338805185163270769362879505214378470520096377017283653933479513796872070207615056646287596539211453593980527248014146238674140087034685960441015380739380205674067364399008242517179631156395231308467525263051080116567833126434171738322606924422268928590104996018904360057247246794250281682386287781165563278899260985043629288068957840206024006408675087720427780080183978101222018965189648658178649882012478012058237095884795327189777914212735956177793119311863071932576126701369316517735451826521147388581050896061225773725528604066933346371245629063619909574846775024034570169046407612316133774596491427931747153803509021454803805380923697277846724857495223976831872422442887154028683531162364634862485956580071702677676141603954407383897783619196928356200954322801621215151915166066664452507962971997737342353559557378669119056903803667431975356509068110322060141023749423143513488386745711527494288241960036853201557452186368171467879749745350067946844487873025128078923028129766930855167821560983747026211083979363617236773844701375040670357798900345668481448811573666676449435898866543043422736895569655065506700151774813906555005857309847141124040420874000876167420864342069178375486061293921260835086405821139279942191963956091468811030786991402149755995614500193598467066329125387912883134182244428917856694486462756560716041398391800812677482094900805946180397236207111257103584000550617317670854220606171197676608636292640164664531507743117118985030698594253653270729194445720461309173235253405808997763621528240472905941122908919089694028828377634314289258630633839250382042427270321017350525963661082107721708025853911534334549767142890234302355651054536071408037118283088577670090630819975132304426331814872579861078585353438876716610105437460485411605176460581446702973343171798864925686049900436393322991628459724641873603002551163246248356271932070840574079311281125437418064062120597186449245482241722905994588918085127259922617649784983280636665027326014866902048321772103479030101026798149682671831349933090632165363514113794901286122700933596599883324564628455897559570316583693661850419683133609311348356509496851323970385074388772320165494511394946757465971319548293502547855556553656353833361026851321346635952179716590773437780269954517242164489558283788682324870812557711929048320232678616519834395310686900454041018958983591637512841322529587125191945453700462101660214942543985938959228747010683261681209345420561340830610607952815837168723626519059139784664604201059339569787616265333546785506287439450068144621649978359100994296566589598038894646740832436648613793225819692430503608766202693446024071878527708051257826656945010551261848434003214617147294346603659969076900636839263530286344320375135213148390589340346895664952575026167141744545273135939062855816351130719109534447750992695357217342204708258696740937282215030461007270464530812977900615870297226223399357416567944510140969625507320066123523894413299526157695191161192455831603465550054487279052851721245592810625878589099571221819977741515621632775320144561238627427233078992660242274793876078155151002632472014011764692148541722554052978210906570142610591111226468057563483703012936058982514120824881395546483793270602199727192503429404612208471356771584598498198379134025890890008953250005872391596713431376799811018613157212789440367565950337232581898324211834613341473284433787276515336342532761980884232437890514945031108791153382779546006720353258571924721193925587176599972583740022560038429858411597492786531525170493666951426068494241514959198369205588994004695562042532533292224553183903044425836305459806793538400909473688029023107983066617223930566586702186286114674181809640332135291178029477254484334548968340980767170100333023284807892009461954555898847149603426759978038067459370276504375502698080217709757720842244973101892648133365242928249306250374685485754651777101490465543494850041476928262345101673651706299177592877678131687906372796480570178960786793955217072627986515575638624051986124044147530104752834187814127450297863114079526141354343953079951658199992080334656255802079307480512774333770014542250364641584223748484066118708600828982438348576426619332410989658161315442404444136472084149956132992045556904198528231857305679013898237553394330910566173998394759424347656059151514159184188999820681411115132365723089948501230123189477022114702710014220879802815275985794704694025282589248324556036735627345929237164014466536845914047209183050903539036951938701737669388531843825484499671361345423281192194046178711106372753789444666691276840186473215174608259346413800217137807575407963052951529254981780015054728880557740395520311074457536510838815512379245346892366207390404464584212720018743021555414346861613665482675969840828969055265048748414956631704408425823058216833013612251659415737749483513188850414506612234793850147335889415929855026980787173352999054976280319040607887710125189565442637637686627022915303680315475544675169977919644747888136801465920419742397060526542873852248509240863098290411318917927671059539607082925372522717389107994429019136029676050330858739060998376700809251288126607439385812890503753937753627424428735129737345896569609306867713892949395487170662220245067292927192999535323425335367117146349276001491193784896743587505407809300066811867351459499750586523751487210676498638647585640675211486180210862654633512752827723939008259739667116609585922613672825273119162534408565052540626993825916764497058135066800816009820882947905493660976911806850063408721325182857005804426170840992252185322265806958003162656396614117999240920058305070178147655715165229118713086477847121316987902118919511604524897606609100495005152538161487625149868232803293645761791032964215179657757678230110474696744569013146155645209214882516497282793077657488521825380680158204348783884522986994918462533106048302461789586455165630886187834584597656462234746822535787480795923350487092216759382321112002798691384940913479273529753742201734615723731397290156590181771882284752687372103256208586333128802713859804598747710675721185976766127946046662896008842978299379990671549448682853860855846398125966574992073601894880444906978893093139980981248866094121209035596031052611458101876379184717257714858349080784829678873290780093820843293211000832099091045345611826823700139987078129585231840919523934548230297568250659834824923232776882869936765438395386865901450953833767178472892241977509181050650651493304083646056944016541520539142628110955089564777721642198983323384478181234477421561922968811885242670802073780418543960505575700151450870413182764263215571489456326589048654678170216959387581833241240382430678880588072426232857066830250448858705941899026406011083577127395728437217940038800558656218565687487636727662597196007227858369420398488470810009503594132888793438490027299493534043423244065533761251535086299782996934896649064029352965014188988854360899166739744570380329409018611225201273397691057925860987579588156782215505371570528445593796155988136486761459896968398811525036609130913324855802828944311043167107106938078102392822405233629320727135742721180320966525101723532336432033422588412629157834845625141493565157474442174124937274509502381496743656081386577740181940679369200435691338583751646018269875692027019737863633520399897976705485776818031189502743910847754849436837992147033749653351923510892001866483718400717555830044994590670979800621542838454059333604065817976474887635303073487427216013720893205559045947460799679854722775971482642742710543322862208841890387663394109619982168301729525253259178163153775804388455798007938423816452595957428350275795114532977993210791398118322684866423401101926947825505812247223919295417779301915175979596921255485522350209493398596450614007395790566435456658667822403505093527823208457427518333394372682662254072819570583502053715814642802095346742308376519161391308243639208826897839480363643888677494267752135687679381529633232304900122603713427092555154595763350364839777707882929781594058972752460386552032073354102308244133488143414672540605254640871095528071208437454623424482222149710059265060162349178979406983131800970964118190780614624957589813258996772198886900643156745382143963828367073012908921325963351484581259833159484209577763577650301311125906058057424725558675005491994944866537732514053054692366719433161750346004123577077383119060749069630272052618509632255149418276096077434333133109648307089354847543827052997442251795350564084516191482053605421253853788699492099915411961768132409390606286504057956115518927578530743493169046701216699447978436979127877644633366535307293725977136809277682852363107377499213781757090758645703136048496531477259402770161102623244785120081173631723356326361623337622255074795724750737549310258734449058705743600781974584104528694471611572284369898387112100667079425313085220678655872515649225571080618362179010308412071174170475953225403880215407578258887523629710298463137135084752669263942697104019581784057074363158285501463270817161195016757600422694973751957183475195785952317801148668194147065689324396500886664001432038017657235872686343237032103158474450326940301838979552992099110538725176461327140663912342937339807575843634778681171267396018811644586480055997945421345244396098356353910638031155182277912345983867898308307843360769638482160916091809184388688958093496925742180064563836720820866334053184560029252403460187729072584271035144869052315615507381596811166518214607468262840708456033607731747652800733950044954894621873296732431287179512682466109575137529195322361450858678487629046742878801768308655570473682822255754007107915320806940816450200457454539557402764106130377899647863320270693814375011884574927688043190042350832164261971083892268236112805463342727712235823268176721297638291960954437651423107701964628031729655904041804403371669775523387132133078680363911198296184937553749517107572509910289769503554995843915435582674957236812282616101811416171492288023071962344121681231226412154901744511683416899865657314589874069720473320503172422180437248486580351773175427908599989419549555000375554723003750378581465577822902047996803539433657486892340968834586626163646499169529693053120360719196983355250700208905060397951032798659262554312705567402521177829683028317182767706631640879920262667616583709748597413305403121751594237354921662749291305699006508039723025923574214565533875811622810669398780692209839880944682019892770212679225524922144705762137939202489907344278757551777695008313770758585968545072022216072957385124600669221061427968556205063944222572331687794876932393181758856865706911445564515645395355083497992581262109532132207776274102999086100412450509377102766124020177812425588231381963056495525691711011760660816201152707006072845746222344141126133533936668521348821685674077233348643942642146969154253917239419531907816827579462356966217811652772332097972750029967004660156441629093886289669658568726757868521355308325655319415854787562888139852024467403798485010971467489847120083368828332236929697505827875806413078279549832621172908298577143160600860722386063656482163905468095429845034326400198526098617218170944321243243002719967733124830644128025040002843632829706268600121504461190693358038938161864188153861155645989573127436468390111683052758730425007916625976340892956133715732157686464289245183311600561053742108096695795797761717304553388164352274246598119008162072170127209930112064038477160275862457061305818901136956078346914090869512862556583144755369229703375628151014570428387574403226119373799236088103783294038279696870651788054926657067156676523829733825708381784190916183497910265204002482889496334177433307400959090435275044141548785751030288240115891569088538477907155745414743121077233699181318131474652794334456312142256363486320742989262240158037409001269659328986323397615120797885165408526078371590877983044443003171483878303201226295079819077593792149855763520430669718161478861287334927737604598151886862246308574528166012990659687697488200693174549762500110701403755877056381828498395008453397288213965437420771062871457804139221492720320965045209633554214760950027568787240518413228466780167541316617893670097206330807428431335497426666218716109062929185770368373055271901789994305379087314017482780646118658171288057692991241736818419124001231186104062327523511162270776074285038009421457412027357129796752547095936977701901009408564618114434669925422618311807051831571857069892638557086277718820846725794885562724914995534740522416011032728931148984927839180574601889732862222961132259311171816464429302813390228534286375310048442688163300593224141723368574079861502442938418582242723143644338491827148053543901176016896405270025197055337058693930426774784664236924139990656331307910760767840385113533853553563499114987872424889554234991199491154061907101992035174919786067348221786962272286647584217726347286558792188850937944241793465680766162758585793181647755133221952259155159077586331833949789350169805351553799631351659239698782881304752452786268747430807185895500019592457860983434424557109888596147722915571424440485365670081779966172989776512782718535657126557870183562530743968131124634708676925621792909205785228794829795185753780611169398328697229299563341047816368168365506702361823765052625434871070820714776287241641660512941141161898379474699369318203307546587210267098220065078137860836768506603478547799196112522527645903208189491409283212482114656649532975584980692564379413522447973157372295421434058571939051605077170212786034420553193754810063597713860796162442195596308035769421234244951767475577289291167990503124899026262097149372763109420408776812678355667509774233424095513310839706522693865381806227696080043417402524022112435801605058187211848473715240178441449645060656661993048293958628054140005402182425101684807647845123198065210903310839352631389322984322257092486306534913337678001589586399952634501541437821731422780519708677826648524441177184063875132955755127255107635440874803103700527255628559303716704078795922741098280649552467300860950636412554018953803894509357838700661857479674586528313557130633205194347331600533212282618503315478793066023136576294006698344403692045774038689805742919716693860076476096861745679234467030361186935106679832424700265863716895177440096313324386517163134818155526346731841475569571676904721884389279656735429367722855256966678142041340017904460077475937283088720480233172698620193690697124468873249499214079941138878057094781711473017861120535404709237282897817454703665857362997490157127311768573686973588813417218705563177534110308192415682021702428213989225617197632025568289303322028597879511235551368874241446158797730527518548440211139417300370351710929557929897255776594198666789004803910784612262194804385827549791282456140431879209924002805253573764657742819847156222108038692757805976138554457502438415156710843109480540858840802044412524089061688913323416957660008822104821326073951012642357078939216159518609052694624236929629725552257112395876727330864566962660176833616322921581271808543163398223530950689636855748934079162519894758739529732884577921172926702296534669840994194686268518048636362592874016808040598982058674454589654843281271732610495514621779375355468623434342866011044344198643350748353298547556863716380840381584697821521659664992466643227480808668649971492306465016080314714833282951502664263994783744934106913444054100010731863882894100553319638373968943766855506414197874712251774493599826339910161272156034758698288649881092042290787336335227653162425450766135527539768531160039661920220315509712107818302293139349627300036804386582996821262294880921892794192157526466206466284429206114840688956998952935923567912599780607455050690244115262208458653724835504343514867383820765688082386177518403707938846296796579930229016743679451253819046445318155585026369042760364989093561355549898169907782613611199813726999301243360234617218476483595587000578535091270402244375819078034259002369198205410038283797757660974247823887366487153771399175973001453587722133498208823239870589834913391539813001160125013243029606988499742273394288333660746601596060137451329834521262611192628614101906490305654695646452057336000351980754774433358241618557581928094447094232489152063794918157667029869095928580444310004274402370925371522390168418295005669402431379305368655346817966476484238648381384013054671184934584458250829433760998345565065512923162706158775691186701345936064427725096951626054872068440349233617001768268127340624060765878102814741441488850423022700556983997120178577101552036942030103129529602193815888991325555788775207972373811291620576103620418032782979017061760954493925458367468890637832739840383541799614166651483590093026174433167410889865580992405274442936237659191996751456106561918010190310787204548130068015688741051852169225677274647050890764298374470251588625187132320136539148098790652275168648052777828596832633452544772294679385945447467994491268305841349503850185183132354093843317843400270352907939678869427103654210225044389911600815758205981270563946195961791096255947952849515619953329025080491509692473465603185691166557952381699790945931300483552821939304489217150759846445293218681227579154690570249847880981927599659473566770263679182854607447152371785211733079827108791990232600050103856581011280912479471476929456963854041724687932227403276124637235566607649213373185526329609192699133720755410824987272254570253290314922538077436960560585599530012218944946112087817050337498984633756809088870115035287479170446491255048483684905659446117860859391304640056351190414437137197765802635777484409955464691953243098308358651090832462631879274985790525422521529471816911495745828643198137072988524257884250753965138744686301366878371791480139119478456379055472007666537852844336788912420131424226483293901129156602837508234004619132330413449823243115519880615024013388819425722581361014712130528947607312205516884902560439286662815193333283995988906073109304535707694908568301579006447949838074641540503323320278758212388608415794096004113677354737814450931517385053123865192961997028049896607641128357429195756615169420016729014723511040231534512207446858124364451044019015576692231292012384271857725881658844991953605564485747083886837782649393055243755789761832860911368310337489255916970580774665307853510557639920512715065832755516409311885449063022645822955182797219252287090429467147881767592596387762787263568180860463134536563401562360771792499360310827990922794419179007366920889355362075666758340582938013907172261235320855291871586696202097814016173192331318504399000489653163728596321080962557171280530015448037444636684068312627494178950143369213917341860157349496454601560314789870720421650534826978506205559416293072321535206176696059957685906488316943290070092451191570632024323586783467641587408697444230561213477502687111104746256669491653011652806159930645249036559978828878392482301677674752370612476619741662150071827341193251650108635413940197562791444460782990720880612274083371622695281046415142846543167894645808848675343498550077123645605959646556117735932634276768529037891577876465483169513240462083017067752626819525056276805764769800742369715611859274215910352313194402307747590445867164046817990818691697058278909192218561747495134203326240796880781675734263737178256730674654059837619150242015318663936034444786580854526363714103975319831307007720177690267066984881323993048486503362860522384287500623177763742358784521011755149520258673140173783154053670112199958994289029431793067759976700088140963087480174972157858333611675503416507276339013131378959105846258017970296005268116112909797197386956778605954850703296292927852335286151112907592397590693361729489853093471514555885704480103300656899896758576556113163679070529308904012883559389925150542050504692091113185773494513452073900159286242766439165671112787748873719900709064252534401108265045461340034596500320996044554248730442799675341547723090385158558846834910126807333698117904574920778621719102336932589324196165504557843535034814590396648129126870460240360171500592115531376025928337125746105180156344909637633660513084153893436983480581442827144552469817846160101792430410710397570576578348978652676075427735836120226077655448252406680767319155814483037781096367045100007958933969579000371499048590479286344051354731167911522649199143455529409876299591427736211965328439290680933502851835029585095682527441901997907049025066582031041793874028753370826773327048307215437510047023617826953457121232708722010172167283803690641295609045830391706443619926112268403713249411510521772815710698580713255728500707103107489709069896121129681524355796033942059495574604287380821673134108916864657600453236404954917348257588949152730960823488632438691861767975454545557604362781270801967262525270366291922496492201580090372880811255117155185174401575356030195945194930978799534116362568202546855279761402465564187499976363975407797174094088780544564264805852398032607533749652665013394207790792865806144968307016079749898256294271566496545218997032055962818964487488206735566135932608138834119833400713311988396833887469037688882480917362793184564900344761992186643886065760051308085235063213801736765968138654383081069846262212772675200156226658543038589443898721453754736056079100565378774829626096407391467310354951490342190181041365667034172453245203642619503862529651077603334303086697881911996392343282294016606693256090183143751493512580690811301784524874775311453667657413767459828160399750730118640556146599831881495731636786550482326193505322542141041082328967276712130737147632796470947711919130505128635438033874740489768065439116946296024106644279419798358404817523348251361363038258591701104560252727562092995980954212974088595413358019607979992434100503148576339654998721981479931483553152333789223641304864296518120904377398108391900060997599021789887459423713252713391987598945276161363631754126646396877687753848310881016126907490576469720251031671701579036410842983994494246734933916443212477509917402758527556207235709350867424213614658663726137453687520836163791809902399487004333462234360003596052397360594893318145100796124016195010253431462341110678966385549678979644344523779441821763209563210228268087087635629070829067822360702676698614622662791744956874912669111417374063360160971302149514275420265511798766571358789240432914166629603680033509624267237446075667182114170535790080119236935780823992525576677521802072509128163493604769400297772015337753748448799619354893021776908483013418729293856831030200268530161239676349663612706114001546077241917762164107278933604226046868876279720005363450918468359184029580839444255275529229742056499446533679571044840304358196874665517728824417971531568218726139991949295628012643829940891727094970785397426467650752247159233711362649931661440742688753476366560497711143176492175254783402509031938557813624023004283058523181529673933032692473862394566759289132416540071868030748789019723179828872125558513780478468597474954706267053530587310478588559392544854544026216255603021905716814574187932273872781251885084824110828767305223950146081225627746707305517248278831552601056651034461323798295192026354664148315990308231041488346046177194468396730248960235741107219305728863990571631535122629307925533885570157253177832674424718851279893882152757514158698850539118893505624174305541368758309138576435427834717346541613163233376027133568365402436861904665833612296247693262669291215343694498366046267434071963517689380910590393422742817246029813996278288980169968410143364196039011268972225026970874068272838198128379602568608924927783640678087588802387607319293542547382298023046710040250329927751159654233855313626613226713359798272071288345539929272467528458539537061725394650180491033403880227457319599880689854523513614699333484695430656206904362745061027034630648031418237559842269099516268197601545010049176136987509140027913605417806477469737925565630637047972383900368123213181622924101491453045781220884074873914633723604576005196913841973850336174958785983631645257412476908790839598053183302596592255849797707023669470132256822544629101360825705623941830691571232500393666641437601632395613082273867011363384063744515685212833970620124633667352322858648063513833065954627572540787034416775881303508994393876633336942014321873366033992466519519156296435662620449581131762261791561506146445512908878864543796116500769395891334129733917163376899123990719661755689969996755070146588429090334408658649375602077570638188874684502678664400042600618050967276376963157390258113721708884397008058801432606002809988178639839371196382710689199271902493111742978955048019633324337310067397145343075228481876421591359198660811058387604102040644512212801621253920856842992309520760709271425970859662271596007013673932082615094324297215462103132847775043617055184125558353476027692452850325650784842355081217888296889288544515876460311909660121239197795671937863528028083628690443552177659303047128416638222582434282932086654981040534560574721504635217764841073497043335501031534014193064459188478534554884153287794291161972209085170798380364131537976768825924513410464166684941564382005088302032595174929317021859858635779630739570854705446741337436132335581089823888951401060883630902750295339930307501088453117014602911533564699061395747907231985020422746631944243910680096088080277841009861159523193646311301632864501892832997181644434090945932401744715956568880466386695311200899764409021420886969436443477767024886988497181754600754090264021271140476462570504120003888137483571302939209425783084430146940248072386664914836798217672465526152682559759482955053242494456348408282622525049471161168523599883839707176365884822772636198383435724790715469007265300839217345060963654123650096310136743929377482460967349837956232450034176305879164562708405430655420055163204542143502556379856348577959704058734079298052810008158361017804753339941852733420481602073339614927870671031416346283378855353375149626598752532545427153429977648257832116006648898771657621084360376458352144461280401663396019963722608031171964518606602875692215361723727357495287695955512973792800995366031462350649113971597528511039304070911811788320311872765697245011947866401949972058889849203790574993098646601035142661182196098379138554547374290001640618060775191208350015658331043271773956493553214996630302791371496981372760219397722429568637347067850813107382177903322566889321567378036497148783029869983405877243540746766252611082068537196413173032402070832636986252844631867492296078222089937628737158755501499287854982345577748475938364362736823067556074804821208466714567144641186909406625031727660867572581199835354835170640921949578960237971915033871540229722615234899617475638763089649134176198052641889315692051214730323748655711933821657501616605925303746560499437594934574089953014248233838985941084825589526078490799038418439452298690771735121685928840884442875377775660034984857971167185715666840847616254684310285743039425536020654527000629589703819494329042790724390092258311840644284667787435755304279397722799471446826358944654222584990844143887632709462433961392924948152631114710916323534856881945058737997288639163701240497202957816658070521968812878316461316918842433708642756691886634533750228573658210388193192044667746966186221721898145197539390477889954192356711452512685027970869826387701268785873551423174506376627487567260358086302882945138968251988439971414330845523333105142138325459308828917080303923279827951749137219258858907466911040527633728534129413227150770467283428256691156980049964834546268209663662995948569698257847808207064168587222936760655457258550404771151027895407077703854076776507055174191644579262033050994818569935581177553561687457421970004773121475650260820604410280386199346427760035753958203476294070326899244231546607808070762975934961277372601637642297015822219486550148463083930013468655521940501564423597687206035189124203638401897521951932320901123759710257659912803110432045905014450709882663526790775363558642310993268547865955168538422554559984404585191018339318777713419316891509668823326843681030942332703833049809287501768140949148571947516640985633886265537687483987703494209214135366491147346060574789096612357600392386705662537166131417102098358434174268658717257510364217317022824501858327332685879320618966877747083309687875137536950493077773692495072300467504482846315921682756214446508959722385742599459840201884048013436164590884986613632151163654772420559625175742092498965288449832036154881720331824363214778381360244889327154550372804569831967208179644126920748340356751812259534296197642888678787894721088116643555202561644137389391875536297385946517508703458132019913848614519116814749224344938077634981323941135322568951574001919630099425179304284469919747421658940389336754262162772405339463511411508892826106268296004892565736818863126452685699611999891135923357589979889834397456353662215708212907536820341969173563693424148536964231865932979108345915017290733132187736312937228344049808699191569528101701494470980397686053258707146350773532393636309934565397371581745906454425006906747152221427106188871564008227986926315331728587385156709483012236118087301504044656695926829147330757567288073725007860759847784429240660057293523804373580202842871893733142774040987424890335548165326899606824929485724919404678448259892634749170710612913361366879983659111805360825080356762415364874044416094465857067313933678656537141303023929470349366101615103952905037545482984157390715031320214922808159587767017541440476028537644592036511655567954136429348828346054672149227515963802760738000661375704006999602165450269534864188726965073161809138592238099832927930576467666432354349301006677147792553387963136936144174501132645738185058360091418972660587054595881965359431195205435534758971422899111476159992095132297719664046013739490807976289993966379098419956194038624183679424081735967825628342146634398295123597731044957507234298593910939948724552229328297133705009141292157694726024342185953474366434658310946958135818067230976928112336417506181376712877440945604600331386085779299496861571837336177198183252029888453150244863138321889318540598619075421058636981468459823996067249776181316932850603640409362684541725696857510966392770859736058127428606634902864286193482713913809248245442623923104609326269142846124546181852390546983390849151364767328684829144298921016531895594381870968467779760058123810349225712265743180624259271986511441398261465338785625469353470498471288430077488209894924188089772725863765174285445287260258982946726740250527709301630418793834206279368546628786381414564760253901406443016907930490531041842825804047497667736624920971857983693697892533827095539414111701998718902527836238469810409947608397345755040816390466947091203679932382619360594768729751198471109890518067440127560285676917205890503065499132265534793542379186332159948909667679904237466814178733659746623711562492736690266126981034498517519244500317866030583567185485173565022619688707905186872743805594473848173518261053929864038987802765423767784148470582259864389314694961012065603538345603118168968517370477478889806887623113506160044075153356323559894271930605989805974213670070775710926636576774569058702725890730559098906460710123409020384746064042449501419091522910492119540597926811245200014320682552962810530153916288308683728506660249162839525836799094363414807677485225452092158976619896687919114813501546808026189312768214870380656757772540221275308337165904148654648389421795451054216760294418873860977075324810674197801918753840618830158449760677122659481422541358940631716451539546928484473370352982102336705024373907876551006575163895891362807169496462165208910543258073031651743934267771011307076931946875781814378203883016847340553129414394372443273149400721947646170782223832299370458921525236582025007855246464227905014887508505999117365016189367654854891093757183354612100923798632217978153750734561426304179653055349802887889860414342113869946963870694441144085683152206269438507692049895206825081404975403010888991741550758661875753799808148936715023385373957741127627992812190248025304913937276752202634416375171015434424379328386307516507095292977636109884552544596436542317003101009271806757741712116761497990525867774191307738880839261846083834181419987729836367275542014565552347199828507731200991156175768934019726227216319076321991199707202331907834723379311767125200493020905986250122975086611066884194849014470443969667936921730215129053969463393990393052098891380432878176066367872707052383625172078643057448188865352929365868325087798320392196319860459178696982366017003526599416397112327145197263779577012431499284925827911834614375592522969163580917111609536085276615162409928556234675553860875963548170051869378918439571525079357397069296664089229302804449013528407934070427245925994914496990189867634164007483845283139709702158274515201238918114104131118039424048825182632447220060385588627793361848816505005491375241027397143217981832383642484948779248115872945483959852194741261611395511305487478327188426501296994867282036172350382808429995986475551282437430856017180210646806462838225805265100720494067854227050507766428301378368320363302110368143982160578098476474751778830105668477588246321932902705404076111513267196754100873760478220492772102457478073466003026436276409064243580893055359905336779171030102176038758740020959327944323970109241341537935269334169363945983114568382756931866907796808906534650345966728812095752414467820230024149841414448829259808915025921102128981442044316775343136802226961516077070802335682450391475202093146388358072999548165785473406324663526008645830807453791822234861786177950417087026036774804724818616788542390342764169532925550782907897516578636407289631998805060019523025357348321599914714185697936355502416892015256452495887398639492071975680162013023795513360707716485833657195650590109341801620276706793536672688412514271542523539083732782887345785315253891818810142755269721255020021656611536718017572202626458143944864527400772180939520585925766310397717151342443326631287599104637062411761307412065396408265221540039461549963778062934937735148266015475332973996240665635919834260712500690953744807883543351266818794133765235491543457692510700935853626972084880741459228361632255731915273623713061327085098285397450494339159520677736881554465453513582262940861159469186641651988241224235169747202845808554632291175015758559567979896854851028159328499934373888784366164681893587965413539581540845558975580620952613412781712974150506861270796205497767833989106750370004218486041576141121204927064970197752776044651114657428022722109565270365947437213666799686849527993352518990734054071112133065719031581743896721302946581181239985917023593007366150691424683394787222058306786623283368526163014102207428311614639305841732628963120106096413454235036823996069615717658746096796027429293726976517419738571224676177951723296504030306831075988109363562654706309613942505168506359718913361830754282216033206385756862457210169934927930531097851071255648941077922885321949863290322986119748687834565447451095308111911713489154393303121898600089272709585096661454706205870305714921150089227486721300870210452223240671049907859454524824559525265817617793946711508765564785285374716041448314270366996441150388301989179949996016470598619991483557497122944885335602857033393486238237299252964985511877093060232928280348598610551532945241612640052471864245713941138141348222863567160131018504324951099848090026234211129054433085628321003552494517966692696007607114959546083845258325500031175433954266479292673445530458569802735957002099653804791732506745648948691355989950937743640423324148127110502395412333993397813298712543196771467155977746347359664039107097787505058537420646254357742990008119575806571291783827907799662657381781206932980833815894201697413064088569523763787323834602853709931007968484584442740176809303256338214479450502812894033289399950845451366405521111601308021742458704815337170128663223659224817701074299241025144739638772835869950672117725770405326108219038677833756501290704047287987786744890555702145321737864455233937978803885456319543063481077971917182436795486261298089484536445460487111322972681195522974846035086432402306339685010377340788507293227682791472886432740081407558706658391600372923161089915814137444431347999174953544770243544225196659846774889053936167600324833360873708522526609347069770983214805437404238182562012477851056326001379132751678352544786220163905500173883509177133675305910836372262950912891062032294316630654063895656461058689255412323047748492428960626947253921729178252351308058739345863663864408929278206857828747988013516369604482018713609342016357188284638646730654165951476420326755680923661183776399871186273687668487709392448263625002510229608493315173735282285672265803192863082297001728568122051588928707589382726569331967239349029386494734656510871931902443410967010825051672932948553403510264430343757249457408817522715723189667210946237541419802208944668436240941611106283187080456748589798680115378551054172806746946958697964785716728077089870654268338773162071584348891238545586108754914056840262612642941376146883359608568263280583538649572483211439468663025290169299506168159548377524727878046624757094338700492060383308932939011015830533895841232946998484177315515840764922612471676193431495894859823071477303252923584460001116239130184405205518921797934142722133271093185574110346329098720948646804553049718923996099896754833942097962376580952198722453786243916109248659819607648821840898073473591275305999264840063747799358276751037896613588748472958656831535102905135578146568985680741914951203213847621685515605808408156268390256926543344530353757078285835924588488092799866676792399241036275167263657399523679833526760578919246106287293426148029915846159683415137152280372371132180461531707304494162540031366708486113377503109243609250381571073890308939299647427476332387960485479688615746057620087152222814041194457462529820659737579170979599463946337733668740872973646084912536906497834175972106800629196573736283011766551179874545328879361574224643471783687762264611304929435036376716991460764216334726343846199619944824372069978804081461309216106714919038251515805482585759380214124933829750961924394684982125886900453041475317437762127540474738522128384377049056659868785158849782549951440348761189703194227183044043965973661712892419495420199807127810511779487578440972972343224704268998237229417669842466415820667062807843954271190896245895224320057786073479132397847004546196402814574594483080225348835029986471762834150884360825888973658808627452113623975213203831493076448411105531774041128732132939648499931680627114696779967552293917318987071390434609921976042794759966432351524068396571332034393176540301390570020594225413240243695125094560419014178914688288221739824127291381919407899212603655494518918420352759397341586253501704180714731863952037333337721743931849122272328496674589021870594990309077613726250676179866079452717984588116067852634875838769317038388962171157351678798726298290967929180142486593841245825763450078672787995368162836047390820879017890878752274840561091564583028739258168298791597483904747495456313419556136479399254026825026508748696671379299283287347658303640906842751312442105349687080009111211410806890631467973135279986799749147881193218086097799403420905935362651132449881562889602119209911939605770278019398846965502800365748913266186185326360177387716761790853389596471933946989284938029180581111312532717394340240195204046718510982813791268756133409593535940437703044276085223034570678509241947421868061877456281204294699325174903219564979309072746520362689423393066611954967689307307445981221436792954176449896849570373750134689931016125850459659187184972153520462228693227128123342196063757330714964714871607129036222962136394540077609502256479215721907919671296341973038574542069903932223018805376436627654233987777303373908524421922115594649057861357004703776112177605525451088153190971171761293504124420146152102140457750833127985158140438323533971484140938518090263908798982368111998240782435233663028543590036142079721367324749304754698396267001824274226519349218956639763380937861151023963115400726550745795905288992154551919784718631024161551904746755279652364173620794202063953739517136519138016330213858129953142690607345226924535544799670277311742013844164851668290986268706636930863409951622035399391905750427776632618723932428275184694610681810221345727384169925454795116945574783121348838115044373236681458837429474711353168184819131631887877471316590105417371515026339981684791189435990252248548667937667784675912232055256208552302748318602993538601013235210527988302047023148144104543643246070978988318106596375076484472670113261351683267756464162772230969410798400584709598460473404447813369424202686374342450946388066734711627753820226400102651228508562287263683338955478553516405599828350454946016179062051357981519908934059151142867541637098141815990891051206451830571700215654758940691000305367533023655189388223234917826040785371363008618618367099543497318595990362552027199263186209406792186904962973592867363561829339570502885794661459215932378259379644009582409745025295725571364056408192210770248378767925109380508651610806773580766185279934894255637243065656373510316374239749013498830808611638218111130966183237521257707873611630247576599741238065112007740555389129718772341307275596891849813309655963377362109429301107022349651725410033734505279731627605653573762069519805311921435888429492348550307584622608033489651222078276190098894655933685165828097861819098874246382316141671480778910851420738148189730683560934657683544721964400900651241550434953045143359639151548944236616373395075815791930835573108940678622501608582936865992042120287117428326442485392445051603405711784059553066641011146793281021926474034864713992297634593425301382459823753749695269215831178495941375360520543365762384497597803612601759320959289470092236000162356366895060849850197940930227852557104685826406009907704609184619172292650268545142383840297230812301101020860523395326266944740646261376393519596416931899016839450319835826143126146213726604712329315540573750337333161219754900461755283569143193877089043660929217284693868930919343598731071192710502601516229038902076933374764943252328863131996135109424946710964634508892415002062439126533253971567437581827206754240219363881543636146924755599861479791550921107933182201548895302211816110742103369400456455531976204801429868188446469899090353803628778431173584986880807759541592065472207749030545164242335087369840861481550943909757421585441076034195918186076375100339110151618667962787278092743861360074441941029951890945312867338177611652208556639361032636093217897344711779304699751132987894413304189201706892786737092909922390310557045680533184459335756150388030124728739034515968094066889998838413763918103060708926840872492220808300034215618782071828521932735285088074205736608315926777699715756348376301575061186616177952314879599893454551833994070267003247405514468430595014927522022272005814881193545179979820093712921850112342605627014291042908344081499370882285556261694993131093086274663068117169933402094453462750164216464995724140016486803481201030913595151573087189788058397796461764925606065682670156433786542532915830145397872376883134823502686764602227219597046857794125063075497221018803551285601518235910451162022754014116824833333003195233182614674148874489666179586706496374455445463688668499812036382626036967493654866304009058327698193036878950658801617300979829462431119972386753994943668040011375056419292798603424311543666750554246395496667295594224998725804559981430108889956000259710698762265386258152204951215684750052083590902906319133674768683771953271761548597377065484868815148012816415783446171409297309237642634371962070003596412294311723923288673866442798202183287507747140665805465883616647666257661890566281509514482453307466387553484247594406347910151625555751298695642819080544414871671864293543617380921972027283621207798507315015818803348159048321737679486585701074132467872855979696292523800395311789033556191831485282036026187565965909658741341758320941120695172693014432582177055709036494656073634394526440678112693350451296016179409124654810271088572452248778289512096897718638426843352725515062746386353004217629880498708572410367211481348106506943812845723416195579220148167025503065105972481330962153485130463519510814689052969598899448762252495211468504193041232098042470812193851453021407241076104759126932509889694449599012217679592771510600221772046456776305207457369148031292294536627942738103944941476877565810074565653844397688875610392093596646808909187864203996885920631078524268411756839264294172926898852595541284572192638018492839649113944694216665013685955812358605300783375094183533122314100851033155390214363979143723601643731631655353974375088129909246791955085908753652219902588323545842627037114635789183627016329077056912856623681676621927092627582640771129685670344202444134839065091562833121536472306848367763809054071231935233120385506433283985981143197447177979607997081698097114201251060932614843256417466997201452727395648035678486459554211989766171528925817485802661711667653599933926876886727080842369179762669951169635780165387734046399082274324050282700127872884159282336570027657096695428060895868765857941592078723674808937498135623641015391321425646485709952064599046237613461034995429565707665880651171715985684115143156046548144578086536652046366805989709535427158362581326947976651380843464674702745620341642005264674393967303503669638768338343362490126387845399848957110335451308249448091677365296758859237771518735340341399750855885810425702427153386383728172907665551486004850619519631889346970360935790155301666473657820032353747351265763658868078713353258438366967210344243887502707577358802070919659210959838703732763809073982568406644883226350024427185222113350736116758944399051423352770244640457424354374169464325566503634238237696415029495767446331708854131042743874998430004953901804454216212611353336261909920797736345401087299485655023405055938910995383156538674472745153497272298816361459861963411733353958820122857063308332893961188601361599337718158723425110252500166586595370002219647737415468310904397183098929939098577221639225832862507579258612314880199209400984932063871923254941546032113204736833748929730400591969683813824299053504789000041254437384400259392637951670876968156967624395636888412447757662377288099344643469007364860727762690556694222928991772215772566320156378600118071788280194327006157628825143573276860567405724578995599686753572507656475033279598943771189366636929447237764188499539168350577880649922575453049676314441758666329290061077478918382323312625289332596926957332066521508096411339951867018942412159745346905112359246179169348791747940560243428153068774054751910584785691018821378815509585764286607289038872703627182615752025953468406066960504917604358166408671388607312669519727469026031780806094929507516579365020926580110593251504877773165122300464913308391047985067057873877151604114098309157233703353216125876668297583237634242178518658302519303121874503102744546270648060482730977601058167283815088658724866993540667356787137782310241804602468860416400147806171743779504517403038585343659089618037746997107126949423111334497781315921164415703225716261660995132016246402898537213345397404612732714019341952791075253867915926060985420306179137919043623825152857278382913006118634590797916158720851375080388998718028006278813241140665849931970949295705137223386972242619392157293904631299423299662364786394380985929915371159566073902925050128535459793431064095381383900565133255865085910804492303641230154717674610274039969559646925202888546631873894367643730087574773072237046256857897737478091872703547372546170081625023025720425102248596163360928985732327648093025865453741282424217446284560966061407171507647911326668666025026910520507912803536054695640691667418522409686757005931139005105944624842351803403534880331809186874357618310986518446472817873253854733621664288634249626562759668760227398263860661629840896627323167567024508945447054695884147191641283123933436551813215004347082742819956608154598606176438874085712502980936526457069084659335022170487757355820177328191244502117964766075616634901608635287587972355203620919335748638855923032736652570223683721197203668185863009376181513640769064320560902188233601930947579847060339793068159488784168073263422508559491232844310493884994551704001044161472730550647012434821390241706792832361356408660589889324929154524721130565639332335288087933929786716299196520119900554115862014955735001647820193732538317657858365753127614271677984752115751239507112426293776740092324503890866899259359992399807784351072104409224809911093815520740473283923507899624567938194897841763438032166860290524546099392535833074567796280104869458989598385046579325540610177536582651691891035169369015550954524409590514308950418371069891312779718645265120882939760830726091539240892972884853098594984255466178596423068388342210180361768132120077359712005610626635012322768711408288519738206065625136354247696781441147180016424678126352907028134758637354809105714586493252257236336445087966847844109957005379533438412003421433257175440622742030180758544615670694875557878540949252454512458299621819628281326583785937298353095622250252079387531706989208281076879154458898085064881966939769234931233875029504216754877714803426979215506760897193855043886655386209731629320747793681650625876917895994943466651681492540619650630101280341040488854394266010792922981283977611147477037494040177681965655395681498100414726691224737411584792256055606204378184573020017340291311091587090828291713993633957923987246979837257198092256883821277773197809341170722515965682272991597335913792016638184633366687736859602201440150725590243782811921186343250810340978766183113383788417711445294464059604332756343312278015928313435943450081852278676108740116562280811857943028517174347826263430649066389631201164992201428293892530698443684206723761978729939712537525938680889547712127998331486218871519567473208612597909899006056355809047105680152646572181875601586166975800503511792769051132226021318394318155096625097979992646802214199382340926364720546003882365937899013511714402595593416104687257628697090631646265116621504647769540579366615728506291886373343766702428807652870679011946249287383449790395640117748127475211677615372970535081410704465121348461931665330619406224221206926687539816040926916209028393292485804171724824800827705963203332740409258922192684227351855255074669236067722733133537616371973582374252689086194622232782714121234620261874284428268907770297597466336563642941659577649639354970226772927995207657763607258680982548244711548089222910120414849699928381177997737837813681489038663234016056950171651376924827046221018296093905724319008340844388028963259770944924922007734364082381674188226214942119050696677155309765217296712232712320021459503171181944692812320402906962789111236400462918470357608800623091531950365188929385679392844132490975850097465152156872949844805758560467700513914615487685911975010530366808968732126893453767172756664677904698099480623398495064692259384178082634883898178139663552166305643952191381554680453288034192846259358871444699275595106836722430394628201111150609533191179683329658404275826723227602973063783397822236528811399530205699519803062661827137205770208363335616617404214450510012377143872487924755671516744308357375066416713976216344104255290646877561582524200387846896055626130645520077467839766100208471366193164182959893924591067771772589690919303386879686976996493021396734595785411429004554324522478385936196686962762874569784800960562395399917234246062385134162036357485866176946489471562602280465213794374673337380122080236294114619799398944590132782586401908082324208747126061638164026880826731417649606958837124060138122529419859622492273867655950513761620919860461949539646848862354528682215767977101077739844283490068833422238232248191541724543504434647369117667925152661993683277329165172677886913925264813403095106087914735742452306215598155186398154535159639955860626570913337703951369618268978562507906819698038347684823649128383880305107205433152010234610526879229546258185779147865025925960513568975980923626371832348865027827587069148392677693147482306371406607277593507617773756915449982399276257217976199855777130087695607132850779118911542301237188919831034079732728018380744241748731684223174027517591514330333617872624236434436460203689857795458538616257506310713005849141144801460983767291791714302780855801551272827608466673201945975113681430600862405413709200066927876937016240400747285595378979951764880614346286964207853707707499605516127631538566927098099625099470667993103075144555508562476499767675784315464799359629765484376155858678363827528988805819016388652022342774846268677956031768062569465209538376786125519771726304096622531937796837417528161183598683663729757549458181657262759419069854193062810589145196174092729516179268892573731832446997135144811627194594939807531377956555581907817732992180549623787437683395695512306263658446291166277512191047150979402110293375964149163012953153936619802908961052960340945287033470652477381777232234314613715751323820768767977646203373695417072453442589803518316599035771467537413228280124990384612489486695998478962871481730025385540613478452604864291090974716542998360285507164180445873431177879740136911284014603664509516964748736873184502285397418318435826542473773554251627495425450811354502443863695396213177550895957960354545119242704449068190025276000689831683997520539243943756317321630068965358984426321239899070632557061027948514025111979251056244832562406368060258697572660607280592119503578971866581358926906136429074282808517924529987364933494308410659593353688905159306919641598643987150061376420633156363688729894254474574404237498185182384335200614698915358975175194837332456238020705361527950788473190177416440074709310072091247656254589944451356351134568155854268122890473379001212734256606799422989026367186253129052773254912470663945208575177405503371007867742217338128754249885922452457407718741185057585114704204395822026978581587141760932059917990776399969111700793934107593425169149999051992016256098223169660181745453260037324376744124907650546192480407083862695433401453571644696028230062964876897692168200265439614920463486535452019392965503963552459645146158750407634619271588890479626398528634634184759008668799767314459397712573700233281942044746239294564621846365607427413859116867203740002203585123342698902964497702073328043778424922441959879871548645410018911070667496807537776973870872380097486249924366993080540174716312111808487562392843268540817810617925215631242607627834373621884984579328924196326031095453334677042670195989629845430680784503891870405183144004669970210470401031639825945843209655995824793388247772744317921133266400505344378760399679424965423756498351840720045341607850784362778638628551721617720401031556115934945421586635598853461103221054081878855107141079967997961360536346447769187658335594851839306106257417088580445576580711446890890751005068419946236715060005764797106140879565267632687259492741864929322554606711152953461833054835121889218753785029836687188436990389978266675587373738932462396336396596602410599415816795710581975245675352686616437757153025007240136820684965407178925796389115460396356298983434236873679501913971754575630283298722354313832644876300044137987558943931376598532748192356158017705101823117323899437886661913867162051125724106347730607337251068399830011981356534428580174819912191403252560662923259297325396384835699772567011378180374201104210382626145256113009407724915572519310271945474809960323526906315219307646071665734364295648761389557481988263637075277528966483865353481912352263198777464340746056919374410671409667486425691404500273519743287429179640305072549638751238368150050378851467667844281743441311802776224108577646890273894670271692344129880762896346968070905572431293822382060456519635820115972436892046278528197079753256901589326327547687272459401054521638414584570545550977815709799818337302145892025846588187064645847337418189354880733304574485154275291435500848328812957599600822933132955692513026413866854480298311677901514033963503811855732554963953706160322359089749691138578599000037458234367709909448152690873394650237212690684007958825722696424210843823273828697459786161822992681260156983906528365750542229337664808100655098711902654215329153431837720546983239459511592095979587066778455612446891232019413112742295046685787719577706203973143679556528097011852543315072755788797443381759943866301974023448069425023796380308384408475446007886422455471013752778253464013621167740151404609601382211402009422965774754787889603964429542586831003130882006310044883425960771989191776511493483894227172410391966951973797054409945051384810294876944232283699096803422425721706398384369820222501293430099398942510380066674265793322908480792786732141551911586828702114166523567666439118044651450368908015430269749341070839762216918395467516435024723512149763193844085058847297635437609802331068585052403891851721533409888561803703244132173144846928844542864428167489405145603565927438100058064604550094639487238412497118586260510717845856944199706489803565133112923990988996507740643328541043359596448628810279068060450635466734423011154389395874118549189015701317627465355520582869905351642006036876853824827614391943879378205816987726797329815796936534911447332450325818164425035465041544297329105620145973015367705795666088292209825440367193464963462356595505503884492867745616775464292705066147334893871900169667933142681473357494257832574270749528285684775232786441310064455230483265157867948533148613104897803422611228453251181018046400802812576788712183144447061649658647135421792437201739890021785403813243717619474837948222835437357414897542248101659999574382061440544397766251156441296228947056480193293167545776891419425863125518790531344511843040145476698464445812288750992919386500613743781127473841267112128874392086566159203140236225914939234687098340239304955339678430639748029227255234067711272163686371157152091592758860614155138520826773130840072807292513546798225156460038244986000067648224723327929308514188515078118608752609672415536435176222167617739526216177681906444451099896144938510136158259614831004806192426680708708339648104758083264527707461996538553658993243292772164245194326431230304689711706400598444715773156502668895341149754178552013074014829970431781700380984468188140915815455027499927289688678602463831324155405476621383044203310069347593286240247003632547280898481150038106246937603796712108501428077636301972365051661784651885432056603693222680622910806337349626844961695286892557896039371359365601775439483493018740959795653861657883706360822876568638703554387429313046045728908334008848014833122562530913260298163251685527184346717617407417601745686433538974883469200543926029393304385643781702671119609335687219424639680029292014894310890146032254068053552820253527816266606620832659404639666637963837873707419619667255068479065271646926268063424843868443301488105976231750885940934540308468022984096934483020342638320688428836353008584857748597366091997700140563048841475816832454818815360788424591831181174319251353864993100404015041895254389028608878512763937345019431246854290225886213028762573426688174876000044314832589183961138068954646219364578734509078424539146824252952588653886119857522039413338671878158926497367259505211383300499881493359716414540707762870917756736967276794219087368211450477894248921894270935727705540441466303007425637197768672266407405437323446747289605824099593392985641235177720563844540639030538947266699968320538293499936607723877058117221996471353823458778354156782397421818930254652371900884509916903268637657829892132804533474921463899051162316374132419795011805284470854940185822130473754363759664167572513275942298388891322527952352145067466808635478836849007902876134397188681636706631845099177281890053123107404579994132926290407062209368206229860028881248189677561207380364193002095215841188344676557506401913099435681348224322965338019665583184587972777142549422624739478522723148214441956526750940787188666850478308511198938899989759971935881277712944398646283543974204295454704682330485881034133331461366090914274837891888123003124299555864163956916307611391088122631583761798543090218543455999390904896127970442592233086721898444530280311803658641188931594845303900406996589928841924578251386597469317155898505886177693914067841858596621243492580990084754914237616661953738059346894667973626164891141631141862816134727513282576891054465040750731546071901895902155836546167431999095462243898955926588064534489625844724449586743647879686667764295394073848727422140499063550802104540519576236209382201449513029600924037692587134327519524522810812798511036922987782938242054824792522363494500368462300496432452602807196762745596282771066918882321642483845404182195947059224626170656626438143961572691653056522778171851763923121251103333678318111443817203143895534405125479655921321472178399066030743392149846843816125844134912199360485230698625529680027759087602059088735670068573609993666620285494049639333804515212435651367507749494446989243214676959285683342588971478112617936166343556166591183363283204586769318073635547823289332942768313918327067020523460591468048542165862634485329383854541796791948640457495597678312244991783618294254837034435396082560334482453737444163179765318135327317723038161036401540650370499446610944887428448134069474628267396566169962434603655022770063581966234754692489956692303417694296132314499539586931832522104404273836949250234634581169472325321466419539342500093471721852910886461410844531776555081025971167493182474895434646403695120120344266258417942979735897139101730289857212199817815152555122207304735355679242603525283379351047585412941858715271925421445497152153555751082186324447119978727479563220332592883719958304513359548302412366198623991441849789016656010318014871849624444506434037479005831245860800033764924447822723445346081799161510878058258151841380115799622553314846140968265858241350452276141354103977938704310050042716717461925237851279414656766914771008055911706590406902872412635958986742574215436255187016180392469317053471197300505082567989197344781295388261843330165268664988860423653590490257563320018574167569077283375665359298375098235009767596507545635403354814886699217144313149806962274475919338531673362156975371690706494232563709824590920858679808718021551427614067429000439806896956112572085644783384178253037148222287307297171388631650392923743763953117408477812606897519006324240075637899077545540372795858491940081252246771801294889664699604830821018883919708831860763583930652638830967652749306359776209538131708079646870553075285541272808166153473064078030951340980401553601117408178036487619236144211614846456852940661337350230716418206132960407349105337567382778434629508443790723420757703524616123331049615686898201206061828818421282889133964213633131587780471354564054625204360641406729796292091234663665939501194380424292822178247784145767494650811319041343998233727469972815599519167398885868837634892568741786623962034102987260321774145432369627788032698252333898250994007554651164582713098940728238152076951034700097912795499713017912975439049970592831303919077910834562440059383951949941410656340779777313396227915248690350906499371176327373001906600921089781845472822112260242509472308551089130428286018026915451256080582386267077316125297585084888849660836426393248053513680196855348839065837495085048617925667136200234731692161334344475156542801525226688363596904498900312061874853677392573059678344686298721092662803438910592553068715639134256123781600381045607737318201014492694573877605033448687806754282068115254933320738912777095818019443972759686064598312717485548647542669280939456814206112460190900178867609212048689080594151450283965093559310865657763793998893475007389520853536186827371625968571146975245930829740876948458515806822624105509994705172281911149905566448346906940883142520323549533998873591198908507399379992117827575336038528681562340718449722523533153455499195932076517757523507996204041585568291362913050090289605618036604608960360813699473858133482049782719557443632067182417978091849623915075971044916593704791461169676397981391866993317307105073347389713884772052385298378867123875235840153212589653673884761307989584448537267298244377361941899372457320514791398201057602845596715186641192655015074033017860683634416710678847221432480045056901727072748907729405643901280976841487830994992776080757054434760395538356300985876899850573648622301351926459915374530798855274780170745413220557387059404410604706103147306099658914906121485209466810420975884277286653053960223219169157299261305709048086166008108963652944787609825932058755632234935635010573270748677717830456300784033678572471353937160565249422741769983190891467959253707747874979667600776902270299296324230722310335326983460582834516048615082340510322694945481680379059096547817854374332753092541495032338048043628934923008375210427284905588444882268853215106698291012490647728020533105841558157286366092589783099026674831373406475140709259710136382456105692597971784183999512276561619753236871174190127473522971147828311121341360635680032101800037806877873584613558582913978622205008811509644852116520073455313221601696527434341456942628770395609029029689600337697415433597297938765476258088629565371857523770335000749775968044320922257975136986299321237432406767943908049545469207717511066604872522702876157229003511797015914644485321567160449647027707278361378249681807366319380098119453480022046091242145923579294614961076870509803773822144425516651541940276209708217570650662044469479028198016431012409047706320758784582680990825351134865693025566537409954418617686378102037785158707729200656860009713337522467699852636114018731918326634653378959654799000436277787998023027550792928625879889802099088338560353197955988104121942139450597323031628090237381481374672901869742731240402281674823806564373209552613971662612141884454500470902805145145912930334711948743246705496197857710208352316770008021389621763631585131156773260302062493815615284517260202469472706578580744773583143253959923440514698186203306771599850194362932977315067480976611716831142484245429845759023590565761722892844896216308496340397531122816458629136622581818238553512564627056518997418489008902429002883654224773737967077439054276549927084485056975601799622387010307781354453579284755334967344603041211582568430621149902072986964667287249279026351408832510229347463334911503787016755859981328773156855569709813740488374071191944626768734574309327033372345537429082500674417738078818217682347367591703278441917726767294701086053369621316977032360881761716428032553789480451828515017490507124538377307371592340381495415118320546134328193021809603570118857699185377041757282154319639281956059256082201816294173663008386879034885162837681781588173010473532376366442886871991262399798572468785024891725808587785394368328392764239361928312439885076561922415036286477624085439878462576517350232134817953343023096661446236531901675397303918102597014008202375031501873422803610574148479768189275551145779913736684571088131653816820883088576751848944858967327741244015482697044406804468799906768820442068734471556599725271924336850597210474658519016200651985339800952517492937633468419406967581556545099789639112268219678392050203333548587724927212289413138094165731360251292488088687615422560493396849558639383280044328479639039874341553337843165751415044307384788515023103255337578744959084730386126032157019251717588338125469942048501524693122380664624829006460271892746753956418944982127211498945841903236594508234264360109963811908200704241800786531154875630126748238432577880337131072500264803155642700211969557430585058521952483452849202326065517541120383416799915799824175179703986013746781161546975937606783006332523969569622975630853366995920841991600677593225632768081470224640474203501015451586469578216117924348334962426368383706261179133976906711349855031745751868760396951865410381885491619361853319726947108785891528937794019230045721938207387038451825027599625655151821925040070776165187039906186855138641858694967723820914478000719287447221949176924514976010424145490773725392215274424636150515306171171258006687708806513111610992714522008024110439479561515078248204972697370085123689714520953972613380605666198247691509883120649223973873781393186391047170075518305188811757742598707605227101821986384374702013657002388253502786206316255834714670031857121812312920529841714378209457639829733339799908102577246891259486644447626365213697364591458184563647929401013654501506951566343970720695808709529585018430735650959125263481835431599960726560933535326179071411590307908326104326074509430365574926683162811215842993744359691275440863544539681846617588953555162025910435806655043611858718965035411806250550572267652811266622324415364408088887323410733019985432053338000963563834733212101887350997929865022412304401680913763924203621986758432955662571471610664921022826200533620313775649254819748289929548030233252078799095674230836675500012082555929495044646164764659258286242969137183827283512979715952252843371369995355393617006624291301339469500879703279436004098451749737023857749669417869177189580516975585994166540787549743268288319174913187796671512509224685471325735746411738623933883858688760968450583088423134514369365400951507447379136674397946891341703649727621402665338447986166388402567838071725791289911078845384212999255221876209756351991112650484130833532762458184247366567522383035251145555871592770971915475733688809625234861011310718703773154003656614205483418285443982559166059784636979961001729239867518289093949629375908846480282796629564621118885794374861748922290464197986319611436030548314939881043401790316192461715541800103228282313317415100271210459482447884277467379394527887277892772807122438577775737043986227596447979369729090216361552131208407443329205253058914721120212303519064964986312241509550040309861952164739270008533179569665091480199816685163525986466424805911944360498758140357737416277560732302880833884184517055639396520771806825604848735018021426016936465678092818468356138769598851057538318463042728547850749913994528494636512697945591323530762086550526514241588865768815612489616906790255842102010955002306427421449707837577188555987728180511056190855214947345266106128083565153857335153958271364777587595387664633507712029205753993372735396407257320311068245774761730498448354053085697726592308809721486149167370851218439634664401850454236868021694062912581589783151757539523605989900543562825986913328525604923129667773195124421714844694287583613409884801985217376362971485559397431102464388034209220240725470117975749377634035126699660527167122019933986293560274371732421839314334845808634717578043703331693837398515173777855646094941429490630338761900114409949218706969022202112313207021255951784096312360914874735144981078656375925563312140111947797364645297254467261788106188174755592717874258473070448405084552164578682750216320801948378415987592532502652984062569909347768358955827490350626202919871578381192088530618290951597739135329609762315245872424336031097956595225128973709861596582355775917871612319131275202988312596888621191907814769943504551064177192546911386849506011402367852143259513820033285308280698956795721072829229189950346971241352909505437576065505624293142897996349900102201171270106980938987073644741676366605731766739978051513363904833067015688851064695988176317298721369435505726002282869296948381523800777992041640536551506389142628895988466278375761430035782818694543084580628102203754782970514942708691595966557423941136224794821625914259536613798862187865869123387913710131252860523297651527148914905158869306989662036737355196620843576157193849525975065822556769706470814822946272932576671989124887075209971860579483656590549168484816664143761725293525574192346957831111596277531553233707625215962815757143955649757506269672234930303652728158753354281303339799946551055009288028264184818944522059564474078023004586253447259789563710975762870631966044073559591186371983869061881691095389703734508518210475883844479179627080922045420763302503267249437286758166065457059914938976126370771929970441510119476442136690802809211077508384035935842636952819838691185941284372239163144595697286678321498087561875240725746928854666540663051583556385822740985006991006777901914744886169953354817004643667083138510789285111502523616670049537200132581994588163253844643201527543692806389440688466472982589175418563507051680622705631412580125025031116622206823664930563734169873096590098179396089802989194918011880044140682584888957096887238125060608512379076174724916014735877658224414141014635916446146108015290060537347861692386185656302727707111990352680664891298326232241776306570810638165457203083164034310612118613911399451579181477043244302818004936918546940275290453497438819522645813276778076370342371560727850740805598038999548117557457345165486914599684871230041405985645002022929965900406383775955011513054523599574027970286217811033382777833381911931040113190122965092679494107508325820126341879681108177818898021289053296158754520509330392276477626874587314647272370468702125317363140541399465011257985347399059872312223532918119347374772817830437252936018689817469049245679857859341556639804632646885895296163208040345983438252167405195663138273050761053055618792775757320097245118977461732522839231172899339641157652782689509486920509840543491785976150629216511424033806094357874198900650065621854237751131590052904960452378334786814064053239018979351841133861384433965207021221169428739894591632758750562644595344155592800897613922033623129214635029663022636504194001541340723860827849994323096270510063249057187344246827596129723650967008771579112714688518440081025415991398356005314262000070976676468546985043812481789504693800430989383494310999847623665386841496690607092580905396251593242666672583077803574861207266173147122791716770238891967103414535406352253058074007168539742651859119362879549020486297473945275716655743399024441022893467313406689816541872364527539982099130007346552445421537742160241715072666465283060415438321283755811188809922812670478851399692530182006624881403578093982867903731309786217181932143157213685751413146983045229691752421737473563127002849649796256488779317487937013702435898248551704496477903722879684613352803271007528294689423370854820259898247864264889427034383843851748406854661722219567610554940931627470952590297967842179909097181897373931532484207291012765060599440670979606995819047024667785902138421121194303645846104781047661152897491427422832022820542984056855548044542603745356767551468143094650242322671281739862123330771977570416510422606142450986715024381556523861648436220862729048420248727552478385719674245762034416931353851145264468750903592322292013518937409556962734054637335983082592797047107574708410885401955710579732690810394320574353303773408665448410735017475339402866335323468645182123371783576501090432154697586102391497079738085090370439212749071299702268945843510797590711110015437870490340143238447849818181459053885003174259507825044730172802434335207138103340112768001746699167171335509712173905294561497610431032888085721570637623001325260298547012903253184349307456397368622314140395881480602130374791313542236995606992658860529415706613760452433736464278068886816514124199327792031772000348227908305285980007412647540137041737876664466207142497481729938064606246628642533957298801695533146489052687269116132341387860029280971496967292575133672507592306189799093917373344680125340055950925426994955716194564300025923836957144747759596206442989011232913091404333387149882642964272944080069614190874261272788628664277038374004417642358082460813885747184698727753200550478241756020589755245122665627150230038138856571016569782689519087067382709914075714183017227561917609646968034353761970593210995348761343215234709972145718778399508082821380970659824651790347397883150202797032103002797094741203915905626046561645440615026632964183525904352002114777137594929285849403012169927180304983041287770877906426190262817314270158944621820263444341297164986106509326762606389490829461235532061629710110633542989280269671871079289657091080323147562275797802783525021974932680700646766513180659322941164183579818668165019803903750055334273298880483933230464522327537608957306173433361498328539519652700026036836113610226456188732486548884168417525183030645693222337787009900123010149886521490919506130807395681571653755909045122407484658055494350783684603964753436906289583552347265203856196507698725134082427605595629671983395639834703501688328805831886794107189131520722736783713531236006999243459658367497642707967894787201726226561893434434451567607615806836479212911109457869323144390356748990567857845413498115525526679491470939686133099276031526140601066741047161005477376973203195393748083055587659021790872249857606440180754142375418541641238264066712817931193338907469602970253361900712679550102840068746232784187960231081160068421995800230925933792676217302958919041578855037042405680553427103011668186816872446893978857309896603265342110002404621432949010508398773014259650586022557944860124437768034725082908430183849509463391628201997506578033153510159852132117449772876129594152768991750548530933719137718662606879525818614092758673207326600718538639678557651102712501467921846104641132106526339190031884297465136548137909441316893985698068244883384613631110868114196720791377125170603192923777509314628338261492002414197585227824399141111788297664704417419153663608316814887888661238422861119569883568790408008526021677878319735883000627630082298076123725674313042614716114792545672508594128677468253569734724698849043123912440476599617165391083620131202037593884384451623286700596864631396610998421887587995591499961146118147097551056243640168463365594507194091556299734098841917778980133530278294621605246916876565862165376670428406714162958848870880388869899822281248385719335030325203681286294242565186470757645900133400876970492615271795479832647607088992363293836010144626459017234842212820806323092288321135790875999899694865931923733874333153176574053722637220256811101855158067988541962037284152354772663096151098557564554480387125425598218562241238053316427577878753001677802092331271387296339509758689019573367732367019828545544469773963694004893277868396236416287233074141519402727839032240597708212806586062959519465639837043928031197260638376238020871467581248997273949733538884681036081260237753131783144349402857776346341302031962966731637900113100128567639085008451799449555624935201060458955013752363499688739720004012847054715869995282999055601362805608044964367883338333024381214690902011832533815029775351295675473345655280098778717911448523444124933120440917115209638393302644463627978166404140250651547461018844441799302110229969846064389732799189221799183264664626770820260094721044438687850685820333695706792162615926029607051546312548821494227556573256695021559745629327465386481473281562913187438418440932663685200192886377335410616986019446718286337361954701471422594040441017179638949468995897493012146363438925275045278287041721363294636550138391689060072648618047467090347666875412642845384006900259459862616479669740499109080440804489186460945812078458649405344957756896554910527074778498394374095442490372225358336059622890935637765688546792932724184870910190409405678218123401851631210188711728738570925993324516044683443193085139543593007658897378076912647625074280430593973420307903270730443543701178697130523484651865168526317026973001939068139016897918385856531553591797501251356654705565282190273816858649509391651549992432893551663432785215246521223110965993610371548314356021569441477567040428429747254833714679555986570400365784060422774247416169910274474850425966720521312326935451950072195860814536040122125541516150811353668732080506924644977387589318629177306669559390697994971606594500528092867264727900462966079138308014860780388100557033752366403009958568000543452987644354702127385783311596122185371548301735044742476880504349544744075276034149087590117702865116263776855418696800528518728343472864589873646459732412108609466188046248553122659069074457237848233993387252201359890115468426750651944097657656054680524391402851492907419996317649897614932379580832321994346320147583080219136771920572560299207807848084527175459394828265541411348978845177355670960032488308167052817802740969408816811280434490751008102019789737427515428176226823360274224059012194240032887073273579184000336551995778530267276376177269087216196639970458100753480604998249490921947241754143156485727263912935886717151961176936667727728058507310413509417985422154258424039708585835949030861746654743548340114657493976854234970505354173457343209583910627936469454708049840157018106733155362507854882959900456766996150221567564407506382096404559194389310322600669769421557786103193448831931096594099647798925119306997062827685874826032808157207466413367904190165703250623750547127036717566419082115154446966209517956076202243293784719557242232029874632837558465528933387152371432959933894875876661436927902453800882362495585626009516609055866449095397197512579193293577541689912115777522656896752719408544744594610545425822450168489817981978923499826106632323946938732918045473188944090763746739514672348943049676468122793570593897938831369505548381613840761212204761598208840622153970132394320506087935878197638244432504532549242397170269129378449931885104720488298238939505069626110848231900390710759773203520473112658033796703309076393871797331123860338412233295421206749279722703000671087388374925293865008831035698632619441064493918305199890800477228662449076499278039083976696531644676812601829498964649225720104411100582725454560620495114163269839856265204294575629828345958559023463024414557069788947169399710565880002619224656404769277760734498759792893544912393312844650313106215529210191139043702568046624946986788941930641699876940753104508718202513689808849789013956952456049496161969443134885487675580148688679906321284072704259357519851256486721213960463616302736535120259859399133863722915803476359866252785936380777941533395299745517125353724328047472555516889300410463710421345422223885136416920660407257105178066871172168940612206700863100479626379448979812847171734287182667639137858967961123706640162897870179921663276723443784801406368761390756870321363223333922228868977054345387113669013532593122991140591407376691872170302420523141998256124579723585109519606732745645055632072018813664120781081222962123660660870010449344271642780444679833148111043450304545027117228832058928161491091501739685126907167677399516682561425130401188635461050615419547246012803968978221692800232225571718035958651906481219450781218967756331246753382725338655769307835249509969475828064702278717808658089012844668718999906348584457685595370503824844053025843183726450978004633512555840577507919158431040049240458198649856200894475538856882755420859008593432566928012730678030700286075875293610672165868833870358243407947667073136283295081494079982461361127426020452971278987449423737065235700648643462091326917783567636980653169840968024576123591518172293928544732461160429151702082636502786923547642837982033500349838331512474840555709317086710441304311856300864839808668506900204119511189666122216625202530773485565675836325046102198999817240704789874633110280593177968352604189776170744504792487434521686438183927353939837466799714985665256317945971949350523975923462265153796656218339691738930708301459178689038795784381321745358035067067035119199854049042502762655900055704771731121402002399465992973798464365147480365575475593182253588763753593319269815757244984405514073202465177925958081775183558510829666643637672775238149703169656530226927096937353134175050108901726794410812453153273272715126188918836302851420715552121352273343824856486765464160026372322294886228005486426519668898307865902650578571454621056621902287269132123489434447757547200780126093567878459838577563507277691049024150422242164928492966649664010719448503595270534455580921713501786497415543602829313482081051079530614709060770088818873380977406272860412971954177017773691238980016087698424229448008355992083400068201719475610420412009297520462144278919528932672069234247843419993213585077563873006789913066432537454156636319394269823761328960438971811814895546580167196232226728863113430470653990753423311791640602566508800724767573389691033408982600298754638622619382778763003915807362966503697655964569013953267495506738022523254738664496101570386991911921815650358828710617791104277736919974685883391784363684744007711561371594141503833982241475634997517090799986685116570126092606514277476984135547517161779431037676468495259374005157954651535900364555989674553844839310803837090067597173603739270909091202323322602062106234955668957910345524865252143109789761349421839993822235213252623776676945647758161759657284549853937079761316890508416387067063179777689169887653094553241813316941694262842984751684797470444513943338433827754151088121075127988018301284700465516531557882803618395431591773710042328806650983409557998171316427102715461599729426949968364190575994819400210550909224946505619895835552374779232873141473890921328189465426142739977686587052061377407639811384089162225103443167606774897737462011143028246087871338230408260305888673144248742045966298656085911862840010518370244103165946460819095448237221916989478881278915403403113387982541392036111720039477913801174204294361818541827671312423273849152098348420949262822216302530494781548280571409808792072346715224151026152227226829554676365285030467030175222489496664999803087851891426015893834045812292087438460150840491234455588799395958414638892181533358888871373232305671402874724668044118939749905451201615733550376237431864861188604436015345434059866690680564637010907551238259915848154861410340979363812962365059980154240169077552160475313851382183340996095385098728983329398136622038725744604625600966941089594001878216172673646662407196600866539274333014161040448326984523637854551743494480285646606635386230637486467013399952935868619868553221460371274714399096569104019065826778636858398007210101238538758445772471437434488374699418417355480710753344423092531720051103773931024140176884643911303403545769869801025524632551892439511146645259363473863038039326042783853253719217035346039520772749308381210347435484493483670663970339344164115458713662685571861704532757098380851405131150871479829460772250247634266919233207777076515595204676268140306474479132209097311950405198430735350502231133811137386710056055455174166411338501492721193729429749810486942073428697902163191104557675970581573210684716801186389838806391092544795522778861249197790220301870066254796291311940074859029036323870674236878755615427955412019339888314684039773943209524936085379192696194470529944985951046873406338266069460445170947040764742031410501482676559395961266467255896548456063148605677773365103782080786133343079695655938139646662589234157310686324320676715743175398938742924970222290411311895498115991013647096708748785481672399689258478475712484889471633406240107680327273104859829463081527886821779149686050433343901616395660990113738197940181580144561242381507252815476382050087668724716226234816234998899885585326404222508189621749742687892911980431429387447481465240619746825909753778169195032597944108305312163922962213059082432680196744977207157518560723721028280696181463270470099746580285376616097672273497080974859521474199537889129846351872473260712885816522304092883668903340402158483528659317913297318718287141075378803284096217628187650051464090536823239789155541647113610758571463877530105248335195074577589207013089044361191589422128992872253241989256250013033443138338269472883176521937172132655262671075104123071152100904793083018414694660836025584110904925674929410862119651065752033023997536946236747151574081229987367010317631763153068854016828294963584617069948387011143999231966770618422133404810459079617957223965477267699002273986018430026566030011069343756812289369849847210203965101123965557188700857903394637686259746026697057252465990551050977755417236866188282313181822196372289807889769359518013634688480574318875275784887065429995822190505444871572359603456032541344311291891176039330913694378879074362844946705102509978379627450712328291060449817028156463296739284170581335878369307567592339014575439087752218302196114608092556499003503184616045420077673277283892477850283604402373821755147241177127069342989821369459555584862789678263243108772272343567835547685894158331258482084880362411214341275190307826604786849872805717916084333714074460668926780713603203530777957796661769199895330728380680439339258957262922878078306718631903938839809821719557903001966980167039335762541936510164297853363150044800266762552781334742900549831522376113243371746823800480448081245057768399730408815779026252650333485340928429289236497577584559078331275800394858049259219490379107459966335940466389245392453290034730234768704038604720499786055043439847102426129165521992362465849210376605931684384949120941175608133168206009569776180685738415496419440667137257016180052369525598942458687206390530132834677935852054379077938980860849513935205275694660301481885675329794155498515601407295510632636797479673229081274164144659953083137511382293251473671594864519237392972290275481694973923699690704533196125129631886694761935106456482266833774105885887383434052196535047687839048382657962613838196440416441681921699769775638717191410819320611585663210801298928948421501123263590979674985675287366315274090414835280401717025911009114309690062273493519629955976836510544761019870673869897500678446398412832476377194419979217984094389254861246408943832356810684267821576237025587973138077123155528104563443532593603407801496637060798277207969920800285258787978989409196051488498120752834176139244965016071983229808379337698143502918526160813278062152194481164145826681796430169869645488566267797254015906545574512628669751388924440576261630671107306461303133227594541497865499382511062495228250957753663867435192450265479917838829644479233151644840712378298301735624594795239298363935165077546900065622229492995680985988753316833857032956166378405883589523907493318345386586020578445887562329415630870174301225796256093359586204721363404745942544344543178346683808538077773947367297877183467179492975336112563441784340194186152484984402414852412706183400140037013594294667143261577285703588174152114480985954752428720428441160000682239660688078513346795596389555917749257516545774857845929576114721559295569191630136138230259186879557332975352462238992496662269702364266230836942475939317157178700264524895039952446521568080085004191739063906607317742670298249053262237103198416118927191785892696746241184780859816337909690856950552414528055580428465570741237258965567440144074317175019131095247229935786619895143870467084920329494228148702153962015256130901191006915409495008077927814233385251016110219243829676919423644405686447507006649223344447059666469106602837253729780119335788744942959641518429519542964642923938920464445393283339511363338807200480269738925170846200931284943061344846362077461175159612341621210476838470972888545929225631270558350205275234541835726476866297130600623613990098734849738616182107761336330439924024658302898694523876871793540355381996100967796344086624723080315658970792777524507908838324759796412555091023517642526656600379928240232611728029330057296817750879203088540796000776254486261114491012125209198797570934900626876692311021607517000068402061241675578092960479996398525760987288556501722744074745955441419770878369725402174638118288253768405501147980886981050753622161569601437365188043312136476877705632006989640691780333425360809700370521304529713143167055402552915515246710192094515825659593237200172513476428697216604496389806089991559592178062526862060053549370018064856393848914297680905611413219098471372071279780709267558157444632449467905671409983645142124426390396254765546166113886514271246425227215383461748992538557114311943322294675196648162856834116571565022994617239999407689574042413884418015188361791696131972737323752287829222002295338745158520857266658812455470122953580700449909325453293885446366398096980353456001283180945402876888437152295343588886888391867632918811295871919059479166640905840710095319347028453985708790946186459576047846716845694916024129425813741088955316904186242838173308761939246533128113646365709603127127085466212806723763366207809660757533373847598577142757192981073071831423075003934896425145741361273359279549021440182476887244994428208214141770109517086892641117328707561709893597615084215141449083977210879223387437143781469066396646412255190329676037568835913220834987417439882607466847052793667241365918665853185841497660430098435980357668156215742038333509315427742403538841771862702003010476985853887642885829683081997991050327663528263807387206580350289569479646615285173288400294276284432777468152802087265991235525968453637549848940014116339123490580017762032135426627185783581273100128619901593173097883678351407946411669270859609947477847614194698128342763776783270374390403191514584562738739968250396789436182826672084974667779706201558365274945400597119664021693983913917430241248323966288814469101378604029399049034371500938258465011711669182781857458119864818646095766723412139825345585089757704269517176174183564476136321670839067879344786064978076091630136545967726484560553207013575037938179664443365936930930270058879306776537541652657856636917590518213686333207964934357953991199170424477813595414341792590589942633175060051274056261680588519977030689393677877381155723456949276177279530642487140137189465410803887763740443806225222469456513550823160121887461180454999678823870559074972199756581760309801882193369010578684923173234043239632479819559565289051331545178144907709308263511342119471166640654613798881819999876484828266551357954686531042069332381562125393689150294541383740157523824957230859288856703059863350239439609570995787303195559708966844651908680676896352908804305581064089468875218578348527703484512679787590609446094197923451400437837785786764732926156100109002439288493115780315444380846529469177035569688882924861950951226207684128465149596960109867508911008674503277681744385096859330728556900741739419960315687920698441523179304248574647175051933381893024132127934500548990097774061292103085204132421647720383300010363486655621812022607872344457044570639369984346651958943940916717424439650061929377631692632455423636111472101174471994783625562125723752829924419691715194156548827735472353182074140095566099053920395342112733382099645106208335833884229379233821800037629830952548078004967679256830368558262363357418694952236177085119064919540630286478799585575249807683906027837960864873399188124568483822188540006451626133480612599889926935403486688237416079571515273195250034325550208189255480518668949777223448536017499423768492160127428652790677474060041227581757036193670235788868218138841893659517042685152826169977876561881150431582819449593284193176696569939372214565160593638317730044453590141147440416512379338574123573508028953766493343074653052324681170344623040638561277365635207355040492161589011361904038960449474486174442208672635091853524433690694771361125845059296778085359582465011266459917390038990159147720106287567876638428814157105377534311880788457121186481666438519006432779472404002289689214232970374885385746003116680515661047590650124727181635292176517055770572121161705932513181846256255198615857218179604173496299297612762382312177699700487159444466696356463547621487893560368299565306045365790007075487636689672287176303499067359484730900306767009310589315360112005219770708600303509006009978701558685829934665506825120419512182856847603183798568411509515589152768792476597783952610468646404721482467117633874193183816136427677555370618990293240798240585330942566138485761816262746714603384727258277775332382447008168677980558030375794465178938391778077936583666889168046772829708209780965960396364187453200510970074150066466559927016679353366496395593455298079708206736717697000049247249632483408214087524279817356622474905899452880007346579029292634325955531467814188359884951441152259409325704735816687033694519848746232095350458562498527019989524472653457453907350561651096457704233052409985680192424085983440853220175492138425815128957938698212965415152928774596024803089860657964866442371844161631669550263682337901389802234838510188492214299682649004432902809284436421466485064260692474225195674268169694179429664560372750941945197187009046886544198689488206656182429679946668616858030220211397900475314688149426344017529245272459813756714124614745939673694624204177195917823423667197764798230876530961216183896250776289991212749836326585316609157015599220679783127281497564672314440884517446380342554534497870741728816040419021471468421258406059498057632279371234876746507303307236745748525341764459193657051439746425589931928999896592791102993774228519161398604818356651899176031778826999862622237064925572135993851887144685932930100767400794868672896618258752382853971635032073177862263074510358737218300573724824130540747239190206373468960971714585865478124752351191062891381265126025250974633416788770150925061912508884384597876929479968159063055558510225635213422936004331952592527606798194104575487565688221900197341227089338161004651098232838749118880853220829902217365178540756258549325189241705412255775513715499226397963825069876881427824031623867224289834687043629710564054048188621514224173389923713587684371831738346353242565555313882839247421511438532299169131468227395443012964396018501320159999043279549470368723933550043929432249636157552334424014846462170235235855778519452106501747237686464310869906822732902780112810238248043171217439461012862122669340889423112451392695778698774030015432712872006870237344429639959734123413526921017926631248754826576534848586660414397072731443783029110883277568039684862697762525963045816752115102422070364997854770786463126962072975409055352769016868385905308936614605472113937234721395361591864681990724046571947422039855529075182768615612732844697362126902858616458092005862322335572178373596719181687242392641168620048405030578096679625400483033774768754716310102060784062383665756031325087608156524226723005856097676894346587931936771283628480837704380831416618250826348767915354770081701670235312901872961015094405260076581127210582344745571699586941871340130051320079764623204249559078409653475435112056534051705654300688113521785204568317638343549126418580859868302566399327085222519345616970599980337595976596375594568062306126835679129415702562682228188583032368708553457892440571766048696553250692952346803322235446979522837124134036392798159565715896084835432781390118249495814349629764082254044318574381103045161104545177868274598236315962763859599139011819287229937037697171966010882958244641034338972575660282640046736491656327500461388599908584958247699086999881685684151650709758052407847179712278930818914556693227468846658174502072781358148156437928216325831498531449969384044503405419269656215281136939341303595305072025497136028170068944361512196706518227273094562320545353950109732861669741405292704987498278400206264617593959490409113587907691410756382306636283715372993871476479227581949929600640190542606292289216567386606582387096987997026894435237629849759282764206983985705324451628857512026742889328166689163307348196024188084783364925025684200259334078223456961872300117376097770906839891383154915841940423639856293102390133294104664281710767370491669538574470408270698477579891388020656068361599169437196952785814655241047446044266031425341830479815235773328499508819594220769057145656679005111094724326182726032038058309265805966396626749868014950472847714271715180193592223045463257794129146492813424836598412504257502312939164203493429971601910600002817805107284258773813677411347914978528500797581921494727929663357209246794387713598119656784578061529643667369493146052208288220792321776866052862988175039446997310840843801171597843309411594661113748603591487290441654645224434598990064835200517335126638482729347126885244119344263269333737271106877951220005002177733194067407647494858218711428608507610911113631192325460920772678997995134567821780051639581764500033870896853251144829770335816866082441177211173353273797066674430973215454063536633783874580875575520384037982735465438504487949026965202293655092234060003883125239497574646992474934425283178778692445034711199711264684964113739758115639671327825691250629128644576539821640916605076941806975698022813449650753520427269667944399008897311688288193937512048946731865740833652374289423882772650000628373114197648535432632532683323323244611324925629882961350534785395307715912370331661257781984968343003172996098011423501109236224551599322394111035932768944888048007120466132122618450885578321238895959266856743258211258853311654596733636821916990153952397097973734936433947999462370073030545986441071187925289831460570734630768197892236085973553587706925456974311405023282905531683288437537470854629793341743581094322806488378879689363551305842473785895303694372234645672120322942270420734749990336186647233112468618673187305037971379887107692809421449751013823354655100626858195414590659123101309711339705173122528998786964820704882520353750967821116860089464195614046306368703965398578902674757472423158902652261789286141563106731619992738791555500880206863146148128378164833702832986996624697253065882593696065008281696914139752505998929052097478821537009860420134817433596488330418281796184106937368324726424879226872632959080122455125920920335961942457736764635252315051760750596630988411185814211712722462529177399787683656881316275464934407877454422835465305890763358127254704988576196011365592755057449170947746903658215759287786513068017438978162335882966772337410182080928480760749189287308676864164374959862911262759793446849601313251904630262794267492023544888480978256610169097624285638672801710435598362136075827332334129009965495275747113632591949233234469596055693012030215963736123381948126898055377698935729999847385615773694622303812497347206743866360793144907079510653718550240884398231008091259025964261853547225303567603551632778393212770965984469595152528581114296826492100830797379430149292495912462906195774325671889434879439344173468048667035838409770972981649797926119940808252861536697423688810655435188808918802788614537994880270520269216547901827008435020004466518520772627249497263992235698853523678797383289775966785633723242343810910892170229391137391894888468466721520599741491872616535901750058052777566269958513263499517523405411816297671973856225866473485014700741785666711158731911076180942472468973857919949852773006496501830259774790415905649777744055601899716726878875144092098255600423421332844509271517169853905982149846830705481938060368769658128757512123873011475263242274286099450099462366040869741111141441344556400336098179384674808753595403340102508337306455918851045589475189374251979390969545931375853132958242734441362884734043905260484247508387156868434058435589539962851997530472691777148763385937240816210633635476767858316648853021155343947729754997955447536752817959315117903009546072323437699697818258911826811956221102991928109551037764198079665994728943364077108113483994783038363620525070247554062018322161732525442777230357029702634809848635314037780375243593456730822785270318160789228634333663550527993945548540780175197742659181110815975791673309321793870324082084809037714701367684342802104086759161557126269636293171637832087569208266973998563655143315174190854303376722204974056904697800573388332797919241494905687325579758484012386443890580768686015305913003697969567564814875221859395610811912844707882432236180327827491103798900555610775123540476852668104743500079040201188382633135651292289839861480604498919737389227702195634525296864372297801835560615462993097856345845733933982965718449544694086671089448992224873042358355361551839581432560165047660424734298381797505826324146153916956426352370121085651260417949561305171177341427900520884648911642344765142900358600121272908030672958631659890241384262229977155327725712311342219299703992058623461733997606154217427188803547120277508867828220322101129000127621915118644667505792305992514164595938778879652416939323176109455121121513635253833624069894390222720181314926602240723201150824742538330230328389590524585792252682817097379982708682375542907300157270723558735497202649642607472466490689920245292722953767918647194204044339302099831941181043562458306904645439202338414258242251026443440197658627153773879064268061909876575532507188057111056568270772321962121571505469556280431745136148387045243798218693330415035232312662647756324102811691286936770509391791188498829721009474630373586747890677126720814469832059741971447904194818886934648949305347852736230288058763320245981276674681965947213064940127051528593995173333550361686739094006500934868487918648017924305033735381796885783868474770501723410697133131271934381481295724373138660691975359251843693613482104721198818885830679946729085727237554413614235745200313396182538080306693075755194421941452399505766206165283719431060954561055649835057511118169745668529942443161653688861186219732572426273594580421195845528768415838999697957495286610881246048397521694652579877491792996242277479944290702611882087180955204334781076623234355238142127980983061514917149924339316086819131930810175535267608838476450371320778455103753331408225252910106702801487896305550342601776101466888393998162574803302924780943769446964079768051927124480251281386322832380969769065996144533293956228845182659203368379423691990660014126189746154996818392927060211460437607418041790749936301234615255842041642691366926025951363321217247542476450957550271422595631453988686448502917348166123634396365991588984877978272792249289259597777577729202346902480674266246647425483326438462326714159329866511966776047977108055899996130470933749516997089343730826409417822460298589893415477572423575535790030730332019750487039141501733879702097330983824024745511606607677935042170562342120358275388309235240802660494678859909063338314913495134374929351834581022615269107815520369400961368589799201090479178342115947599896106864706223160604144113471118095686136087400599919116437856825764369816742173292529559740541110854347194988476498135001025329438028004290807221564822338979024220630714608586101868329457432166692761079004230849451845908052510472991840093082667679172289115249833443865631923210453207794661258488339830969008903350387950954115253525820598630861416878160906087084576917761402683150433706969063438638919302833092875972724987073767526474780036435944148587650851024065802023106794311597662924515154467388312834506346768743135039425180949828526076967267732802196367229277445620447643876190096939853375509891119385494457593475859096501249010309948138274446243761300115794948246612278348260111547241431197205413929798067220639188124932515269448867044011998021062036497955631230720860321722853718370973334195928772339094191812110281508765572172366788350631487479707953672497142832892707613087255595788542622143089491476560021114432188038176457662128746589731438618628721591821208845216466271697915390417885356162387684115737595672032740201163791538316449485835721820314575016843073435936261569794132395862140025309280616186683035808487536938416239691216109362890072550505545721329220386814440791984831732217019690828077015015835378761282122214642126407863581853831751515386282774211392506601815056029803449288431464897566605911914074171443212819150210979294667655961083025697880696916713022248242290834337464483669574552256499100885645618341055074812926610114667540982428012863145931338483385549930155672571457756648932727737986845875159217775248295412261712882460862607979801548471414596677807839669540552242450668992288026947235463188188614985857684121928719341606277892599736475864493504755267869227244193829691352421543932970187767528944202294376579027915871054034270830269859221708687431234306806690871558858194409448515396258775811051269184036465539817162321042767760198848441553329778904528630884744645260135400230239074465136980094141741752551864209312158673531280352329066323596811078918004108242062206194152551110122881691708821469178443721635588386820920668200085404126633446418191650157697337438279504849568620613792872246225328623404373582411989851661170409892222492918016107827043045475676469098605918665560539327626360495373990352775961095879171322551280653188936361106003604748069197947467885249062658944821119709744935142848842591664007899855831982050689347758345800874920402764319209432144077674360305641292861064751454466356934373482633748495968782139485813588621411840595705497121453936723286964607033808661639342818942608087291334037436562201268869166898089412160647184750493043365567657166510635052188499446497763347207006524793459970433092176377467514797668990025110680106507811511943496357778148134256051537150011697583194262600747271726094004044050579062488652744057851409592671579404581375633572578555253046161580215407722324540629252739166869799917808053338528359673417365824632926784615979351144699936866495987965918753516921226088157885786428916098351092331145626563879275192411168805104756599614505219105901878733471759961985675919332130069221537751471534291617722037940552055900133530575971251655719143011689466399938806928001303585050173098110575657183273551999885677366309485552430351881491242147893003429489273949928299869772751906304469060140074600271744349293774329303376946192044165318077386431517073341674964622071436457705105160435389500210410988321211092201933569099360639327623885599998196209961775655891835131446902948178410147863314772264654925844172994364374966294640810565771264550859480477470458011594791065153479902877947488180297995022609086308138615848553782207665545635943340936382389203988589235781250101703003448308180513993595732002368216290262761146875427085492061285263344442097544582443064806169832446988333042612475677544809357346395162256316958452940517330726604422640851674092978384223521281513509940089921324393262896287634127149135321438716983219208082628709943371618150073206128035008809842977631562359765273705026197652206674516589921909928527280833094902968856786982015664984169543135681256363033332632479036167242573144079289204338083143033188882059204380164323899029694884336719046440870491494438020797033169350663060216767092505381985708299242841910311962953709075405259974496848776965023165025777979618970039998923213737161203815481610882790620869369687070363011623909884664439356532307427884903789244135646616636876024355460486475411366939726683036830814623944209183845580591044748775385348424451381747283816029977179555955242477691080403301079173789391254365550756830957415108585842486371929635474455948167548498491734800164992312705168543742975376366569572042420991959679724566844656591136014482387972555226813660770363139378529159153366307751723997429907573975648142376413547471234575994777426099475165642328798254416555086854344173143415685197650849856999898251187267671622990447156732603363804698384101122512738095665563722232256763671679688855356500006219371577857116587773567966950836161297296885172284905625307035451213233637647602625835722821395850525859640236788103693299740994464599348028044414691403423607887292776089282761392109465945117333841996500381275742168113781667917032557340874556192741505197154131952099194066510443599001084034383378626450852039290982277860943310763596771911012610014231625802951474408829164687028156502957626061715581934127217435360866139057998699481458970908172498225223311714332445546546718366515955114793991410766971574857623442180522535225447010161510388523187753743747181093448056686080015342081747349727078408175083275009208996015451690986680047003329632143230947058694634909074388361976771623248502775092985176785437114140413043086228294756898863593945200521377245372814394452938329240213134853106861047626625576097697222715416232904228771720877609656192429549021550251400412488503578229205784434914444515966975440649352727801606977514656770972838266117727752805693491081130600444793246322025989438863265174480920496111964655703934726010007313924255597176168974792676652239809338893624976333052545768915695585747847427158033788588183854767208700695590103151497398072438985403060729902590429908257342801972545763874407735411180298304698926177887793017183179147798027893405955956484584117446470642504143637067907224717183485223806295916140298738389940366077918919980077086617879255765023588982899517786115431068090256837764485138148491360750779082368040045894912121768257500287608592988346500808789711125464771020479600701674883024207266335511672037424206922390893186901305623125995001545822041027147000975198381606040708396739601963855675762683963259862357186984037039733291350971029037084158377484401479789762014207182960079142869447607509967803977790215409401027428362072360421427812525500356515155186490390816365891754082437475335885517401820000661397867881925124837815735844463443629212088723543930365175261273494304899305335271890745177113111289675981023708637781672103293739360782489433494193431918527398334993846316212614622716547404158860333393790736161050123393161821511173424074237791544454130729805876673033520614275206758484915219082520262379711342016124532810750904329546959065644045800607005041343395614979437199459341817048271158704337836568561519720499255789341383677718145665814781734417095920935659397903265570548579116821153905149019322654486827767183304102262620254218915097262618897167560184331337355405057176541443404157289968937273344109345762546526567120813620969301736953685015247580797061412297918106324604299447614152390298250449511098978395406773326799252877536486068557404755105058757658659590994387756014453822773280575042768484814572083077946513205387222387088698004058871733127158551932513379603008063651311772026407374461603710290215218734175051950780588553477044780780893545409076466859413985759546626177513827556144223858668645549212800342245354869032740122969280826728845920402757916498197731419978418700215696526847606192999375465753616125541114555071456941478002004331060031964659426195662969254715449482486965285348864327860112218866938771943207720049470021726508730264354168836287490576305612836010217645923752928176929150712621984217223138114111777473156858970088711683069179967960928961821554729735541246791407870946022899629681517997814293105305254131115219902187059713996558131528699504944550798454068843790685705961015931564157775220249072220487237308506903350574096582999787811299776546603750511124184690964259001181193142584629169318205669779704224575743711100292199167021612321744015492844706228249703826146407682023691306487622114199277381686525406536517009909196421335174958967101909476400954486030159142577247699434545982251832202168758142911008636289182057181188554018337827464040198963021842270771143248844292142808828625156774247399635331008931176796451374553517587774086306436986884862263457251413444526526294974770653348447586106355270181334360755660963646022845463770815256623785515854188879422644595015494726438136173300722135114469141512459872554460468493102216257662267016097826669370224215292325749857867518689718833791280318784987777608943944732451500248422676626733952500631758707630055206716651115247057389711662078514836672696663682215271268372227497828655733238199320582420905006351583696432464422471249115069248025089266890187647005809888943919940067221973770559347344091650412884498599371656895756310636887852186055041598862553214060998758663297156602695476927535455222224649593717897493831842026261954555499221611199998488107692889743550346489125883615173068670135737020650201151325945385371953624013969191659934849033863120338270552938893928213561650291458986338666311493105038870031520459758785997081864147048447205360104650174704625342709111028268182956872641554227825222648997292687307934182334959087280450844307937149654567426029244731449132251581503367575242232620578239517164353425658602206815820523386596244819797536076049077004680945148815677878814987337200014282269919017672474603206744636170936145896466558537416379792267183178637299947327077562049954530231850893732085729040634038142311085950591017770849843576327645928637857379938440205069204358037593195684482444443728607844337670127258447558582919521516287923268336190271995351271426366062983277283354430901768973823452326307723206730614536124862976919552393657546357418254436684241026824541937660937069276261393417581985221075615859641416512465802691540630019549251223510331687844256031465823880020379783581803083793917973279290982568631081605623729212379747275334116699268722496929607224755427438101807950597502853127888097972525569711836915831541254698040981734272195651165156662982458878798875026976918696200661569642357486222409449174262579597654770961131883505182588283617279666976631085083964393928193937540143740855932046612321117718740063383778649266641292019771999425005041278682285616187300148610998443156940861796118502271933578540423050027849976166797994225425522879432081483028170395789746141890034789823596217888200336478906075783480148500939888080024080601488005060524315996455302824132922462479446911503028265118828681264848619773322081002708933026359813103433468124680655328201814375710432061135779776309468547935232598314022314921987731180851225428794505072614877235312494092860982322970687160380158575213269143921323545345820292793022004628278718352297187155222761892675975303326492461159048064314893726860547191438026340782603441567682811092874006972087853309361966901614537708292849616101747595746108200478598753791599306916924322452826951847992232067915484688227879865132193619179337587098470141011431076742466642936117802027536484569340333044315230397958897178590221197964893812794037307583145103837699130792901367715368364769914270903566314830069613609273644464792058462542510208657134539848072494123822508691978605305936384479022693057564155475175123666398989580556502793116524261454663119219527888765446789692235468871611684801463685499400959040754564844390323286722807929579009634011822053592638006098304598803114040201456902094823466623252563189185458080443646989892027627156386803800615413867086478062430750569490994630118513284600627044456719726890381952449158745453102911261425073721886876058851885155090262455120995727848051308546180124070868378453177734531872575481992836761556265367609163837263605197263365749435114285562286684381217873212670905967283437765056668718435053854183807373189762397515557303531714410294904769607847649935677053432533166054851067097564913804502237219878963591969708414146755630198258494487780837473799212681387603184653849880630874047690426365571278924644603925094771896637862559407880750438376953070695193581355311732746747076657952458137313744856769406234430827767804050037756630743067355501896130695756116968945340565299642218897985022850563758429188187543941405970801591708537431481572798717956405264540251095266582327242254936026912145662288930193342002201074871717413863161874353265848480324492289353443443383676200164971726900892026570725150602027612087320560160350891874847943492176077277560442216374976866260914132021707192392296079262491081240957133868654657929908107895283358493765529212636794325774041126494255478371892663049716605638651764294748210730693843874454967042540665541608383661611883373346409232903165512768100099449543224350774848055092883981136085404009313368202394901317432324082214155163649534204747707727477755717654408439466606072944384101567277566636675907405445398460907554634834324321166184972021253335606491525581207616113055018596011212489016650434535779429580352295017807514327068343533964840173520509137003385772528628068905841473806545612396918996868012024133510178105448345243251899665765118721403737018971990984894344806284078983968136773124909281073010235031430678710794697172533712951563232936631703943692364116132964804114472116804713147859950575687457105116957304629341646286123406770137665840151482331743393653889743875252929972337259929512336746598493153785733783794379511663063217910891658487069085914056478795877660945683442766661749297708395783695676962708018915801846307700616974701241120381129803955677916266329958152143299559765391277655678672105508484704639835022391902914197845296832058704041141985798175070275314164574519435696260321910324677194951746891416021290187494622951401177530246220403932090546312210355184955900227356079828322124306207491550666347120296396074541254271496288322235789390691543655448021795591498894917467349746437466217130434907579474554899352307965522467303915766191213301758443649289654954868369936954658189348597851263958126610125858305457682495276900517115650486686914678829879732423273653294025489910811836171196944132418596086616054581927589780038051879802665761668904050192881400021351282403940241689951715345141388147186710491518160186070108314522051191415581653975794390417992169257512582751019606830612019645000875999276944558700492565928412047052121616992149569656524251238789532408589251313267034598235062227360476856390801105761603153762403224297611142342940596390609583926863597910981403595674300851049095290833132673457687496384949510358753501062668639882911488769293413940163919049547611680825869104198349767564820191885300391888265628086867196503738258858780344319751253915718522386488790507513806441216347169764665510273610138703351469077306429147205325055008000093764281948026011169514726616693164140803184564649388160268467831506109515852136801395139037354035127379437492409987760851598805601249299762031367231673612015166192570199664312893847414062646907965837642645824271048524960563112580266990970695363232226045390091898477995779671090845781584729009696594128650876240850996498357816546540217976133004982626073149984752528081072518380518076005724428358976515998372450094821317241902719141529281309399313505235782836384380803419215244490237676986054581172111573012566297091745284142288004208130184214835324519937254984871965422355928566746082369367525552215779358874075742395814733835925010866145749537150587775264065009712673682531055243690801950400153385529210964252989144508350558952565776189088104868342507605959000321581370534051122278187751909828468505340801082290832224389125631707729911944557521376265327613557342402295259594911827802975647941106820976302284081324878650977946781319550701517473147200341646370255676289068694901701387015305755443425620529700206011298440499120432487781578499839334528672210340709034346790212141725802663692272675706497342846945465982903197038386019663283811948340433028636107124311894577046724292655932329991611155196467412880448661902431998343028649589069164353024452960492724463104277386089554736873617896360105438387078986265477029861474797675235261509795480203044787607502333888851268754085186592683318435559466101407029903722487801932938577548046564491791750820692764545954584725098795131399233562627321801768832280294437020015135026936578777364068927236228262960440546072541485178446376085354662848750162400995959233773184379970319925821249792802991317000300888858924978619493837343390647109402964948759381169953241323488828457134892671358930352753019786265873719227789547213303477215200684557810142667617439869511864875899287996222373681872325629914342043712995158968929440471719858490622101232580739865947378503678436542711982199335930288204809685716388236134903102161107088296740481967529859863662247676884970906667512649419867965270612417863356071411030135258309311153421843850680272094826741487649007781676536286333113699486216330890811123332169256494921158753388152538743891670752386663097280604149609898077144552537146695312412398648382234132205573672773039523164244836301273577178947034664564355369333114025481117419848579828971639835014544660312572060175345428205409823890265890617087751127378301262747006604832391397352520365991774667565991685428293079361160696772786525889629387874006989795927960912606904190219105789851992104133248664832232773510441657127090365062732557399685843116272735681099982404108837106908357951098589418307854525505975368485932171139189507752672680601810852504894582286975000045064555978279982563949797746434302248522971193162680212727337871616189079850429785471601652511529288125533754885657031581084403523022961992984153633672771304641628715345008244214742497045991447824841308655125462252305306068525722385277032848224246793848567266823484555753630933805427688615342750797656968156982227509091681669094675121681506938880811920610134497844722008801278515180914138869236857444365333282621770124612167997864289842158988190144845570050998378504436273784119444477999243325458489839795318782709663636838748660412986774298317164967711007925691349299095237835841571972563813112094362207794662243389752549934471263722911587431630886456046477225288243852866653542556420944818754001138129012938973020520125833460679846690335347038534383258927575596862767875249598600173201426250369493311960648137443941226353676348643059405193644711323361196828253732632373033088349302021503209602359601882015179919813629006716670408301733191853345882994381419001983379974573972362229634770681541352414155406967362439274820495057237231151190602489230737690975704017290715995294289223340291713546746095479115012684631277142165611745236684493095372025567419707236782777678691119116893480817164544706214678778587883117564201307323178354254065735072153327728462782985711796904833212912646432307286794981602285320927778782969277509903454982266482671260034674606269564239132691499893009430194892215875392797304210784927200429288026719189844451204166031004883264158038408531051312358866531280045159471884387486976331494308453663917792604499535825955740098508846128810954054818949173934156065364675282985294946576556955539340426694550625842209828979173552842319431456010614503761489916132985409174503352460085069725332797480502528556076701708677442156788819335099898717607508683926050115056701635139039844322397879346594842752510150982183642611102633009402210910951740406281597293554301521907520081404418571594211262508218149972463036265688290051642296614083423216371565330385294057469210285129656160366679202840768943636572683629868422961900663461255706150780378064160763768303386738023311543343789136018978955196919496253730734759040546841046932202324655535815526940096412630314275814433889316465493074081162352056123140632002574439754853690961510486003085554574810393622568681759222801532748603810133488570575254061190566371476361684890265912485130331293761968688738654671396823226820448646284410642581573111354230500830272136626345986940723419809902743430825087004783280734227043098695798799491172489809576505417707354775654600657204929372725800111640464139983015710612284323237440222995838154560574088978104514928374987194788490732347170567713022971490046016164517668856078274446265570715672098037719019222508616528182873729386847298085172164192134670884926073146304582010499489972545348846062809863985218183987330055481761039024312448918269258950028396693505532528243882905380475314018103036099825104084286069678689128351275209873942089308808101535005001337177654078954481393386424333130913399386055098515917301882545144345379142878610809985606312732748257013645142260976734067310360477884170295916527232229835553209004419152355546861806325575414051607525835945778593902766737105826965940320921812953853181077363814554907340522191966956392765158643340480595211525504531124958178050751016320384436267364463756816639885690608378168355163278179743319179054958693637733951093056909512596397885937694595439424253282477821822209368728427429711140301425264836947692170373420990747224713033045485333702608657847085629278518820808533887008327045349250824452310311476120324059560411035852301928525666300958921646680617476956582867540554381883644192207002795849555219457535679969351972996024957762576943263689093896253520688573152988713787962239255512787275143860028814076836904229484615170833744487953960567162306896534989603724858902823379740272453540924684170420360415799835810382134123066878126383085979538047629644309070130989668739860226734940741439804286887794193351376669811780131973531492076822212541423625465687270719528332087362479933440774257558932459129251527944561054142217849939867354628190669108835964353936542010351475415745684412664231987364125800710818299891032765300227254700829314120090478692699674397906983090400323622048543810999107555786369575304594690858434693869800471059179487974605613647527076387039257695000935574027942128064012940241061746140650474298232253246644120001385566890516155169376986440195274859477093961162666708843628284517896693796607395626865586255637977767929751303618773963427599200914673854450903718733199871855391329139454180853901943866604801207981353900871057988890101512397801034033106770856210924682846855126407969023503603783379187713853143976309543377882874503557685004339494757671002521692599503224764464249369806903389325244224056401754875925999832998224763126222510462720294325782530967967547036299614734564185429164823308195128548398920983380255458700307133268507560754941482940277641562478892413230690937566349703497075912453561550148106878458212116079785263606913235456648829695756774152983470551817206776316352595534404429961324877532382473604712208725526717493060779066400287834812291206434215177965584057844043889520050436784587754874810146609079660958844418800955521035501601395554035874226403537282058959741597515719849184010993294169327912577105452403480053932889246702999936223038799954296872352679478908072715605918544907989272863683247579894393507116778839201402818457658602707817328387479507963941518978056936593417027052936009436535175780190953479090632058978046593022008550874969672020566749259240318783174222934559037098645431289239793591208895916765442745070249202614120747193021519463432441970485089566232459384822731486134024379873817543077444215773210278298228813129472229560579982436399381037575416455077125925910588304986538611786192218868576278979968279522993619387435064414774520146514704715496695750420622710890340935537802053476587732737334421995590704774805774463961141015351288990208487869087491809332354757479790810561139266469664904229040497345001533090539640008290751142026350046956777586690735975245668455509876753190249155777653743806134286813209085209173016692740561104327525596555105928723455900014677420916616312736994146053780993019698211845311027310691557515178094275420223949806866403775241939206564205352215897530203649956101371489891664818145297674523879297729173575440535156937976277766814710180155389153745605064382310929985303221669776100455696290399279569510022623561675449383780993750826039697260197191157381935327044552303008659489282106844978854623187458927194718937563914138097955426377171126330347986982291067825531801394227056275751624007814832189663537811998442471159238357513352303837756849647193728265465150624550904579622883606204720817279989519872230799601280692620624054151306527988306894158642587911821162434923602922801386257584246976210091438730559250842154288703383915863408036188632444145977902156187566325925313051015296037653440676116643931628780800084087114049122619440697511205739780838149714170894716448726013679529326805578045252153449407018776126174912197686806802343765222717213140252148873011506286577659690523671792978208807007332228940155966754288824130830809682072066694356747080678355622682296938297606598044015468314904313460530270104802024663811121473400191600660384472389067290576757592065990116405282345686149400068187203179338024014822517796723640027272918314376210656657230455639955025320282391417288048103870110299339114275838947475341641101783339813673913300509045481022061224248253010094663695403646449591510791875046394244154201216896528331373955800079137849902465006543803761876561493773808298531093475660201694067304115979778063373510730376241840592841457242333419391953778375743150091324357519523870009175607491075229742335244640499172033567143710104114246609622372734738196259321029782419997888259741711935288314556785852647764853281926281025290245435534854034443947544025053787403083255318558075311334577509258794054223110708658325378251766759022969283199524285144048496410524402167584300257639981406043675333030453975636918459897119657378295744205187777504273239338575133612253791701505134262372340218473315616397952650681323858431875283887277164719118355661897436875465087816299806018975391607313774374672163457061691979349131089274286989401514566120802968891845891663988800241818290969290335369796556623136488925811834208164442075735893343952436306797078720978508107269407959955745643372124746651614833677617528682969770179308386904382822977550451572404088028354981790471082268804700883781471561107883726926221679650670261748743396215003747248966795827363014677181488410517080751842662698611887274397848510388348826472056105872548325569642607319470034466179637530681079786259926805444508545946313720452421973044286781516747878152812798100665498925225137003234557119252907539976497933828550287117893989949944250426430166683166098659558218107044438496471168254940066667332492437249354716514469845302152852709911061685951004997333217476232645858803674317290956117859851648570253912895979008712213065059700462626188535723800831309376360741098929003561140312852576235597960610572692080282855790961225498577646829233146034379288409679502647610573980779266434519933688967407313975089153367627930920821957454706566554646789786405040232016618804577317096056779422279117049949277496107866037835288287474329828336610831083847304782908725287746327852716409213645464506521977061661723578376597183299241628987894093027487503149510083412654071498884089206204714651058038082623176434264370560423070524095949413639701798131613676938669902135973275006154730937594784483863595510949828239692626029565389747440220524750246785821491601169908885780413500941102542432787848906770500420012937171885787977609258941504251844296965872847554428636122974720017236821953525795184859866251061000657001782187907879276065711414468945529873470316965583344501605727562766795204409413200590315616243047990285592028534271233524420170804388153796418726221270126921157718384268090000689719130219918613696262593262504475742686502068895246914388966334814926473691101119814569847899581711066373910469916511220789561521665704468729935935791909696163767611432656598566536085942995091528103841421615243178482113569310411321669462937718767828222853502253749386715091946651565471188884612043432275813986010871807085691343190558350995235428511814366234619029198032553363325672088417828405521947276393008118141130889799674037570884951530248591269057760734693680226333167249383556704995141353738513236828747615174979689607119031470525831767209210172199763896087987994646546652167140744758642323517630255122041409690933832799891391300114277612168937325286815033668377733248679958475215552510615740597225436154901013275161791201098320140321500920029916405475080200771052456460814910536937815621669931929704205766529677322089180381823698442950902737556357269513089282075722106174240628014262422010490935825270037286021138643687187602463928552525928782142115607208830551442167696235511003511754843441553499395894361697205956152539694621097417918184327663723459784352530306428418835282395141729259583359746885571145081389917735762136635167168982591846208374034474254109351777483851917488889410064476353474560963630383055181385982355823209281293142884779040211911939982902659315881857129001836023911407472073212840607798816542095416742152268458436511282187553234084538693556197657681726014458238209077981835265810288447573060648996145847273556750118895866195033476918355563603802063255912782242349605393895583322102573903546722116575956012205370169265633558087452868357509174853973201658622877882125862234616407477624781381240364663962394078277304964384002472442695412407605385075322699453663444864211426582222146374240924850560235176562711017919628753416658833008728929765615198887480647364768601192663176373410485028581726054028345053239115630399248543925011008754362436471167689010178294768015544133112880822794787552253149257143008877369238314407294999383171182746490911954827074515497449370209209414268369541634810280513375665054468993053267103569694540714916247857670794058481606583985924674995890007719278428003503600904464292483763867819354692100403830827075976505214980643633940196992085459063069768320954850257971937831852768766680577325764121074722003164277132499609261376024302667643063356309887486768385231345394177776310613941632252768575992178069991962555832516482398042832416727637545693227624489383407833006565940721711048047664401764970254668334854533700501428258610629519955594872730332732782012393012543311189874660643716411876927871228827290726215325888153290605780003966994526038336280903090146871362828246633214430980920031416824922312087619569062036056255258191227618387920896308987139106980876930586809896885487025342563422691211073506276846172123237139017753436607000237474434484843917190938693246208658518641085901240500085918916570399570909540715474294829287405810200861053907819193288778400469588907899591241814894287920437244523863805336274230694226000270430647377672719362216687206291467916658134155813350796589081892855624378936445719660334592877112902498840465034095947051202952733496780337537652811903869590376418651211397741530704617971040896673844684803769790728462817944373948152540531918534843124423273439995675512239474409131988488532059992649622432243481832151670662282469271641729602962241963127949581959664215032287501409432964526642240556008589393498118100344432860182622334543304687303926847058858845201134584779633166775197940336539507947821658517910318112934664792152295594887958694135366415289921676439577768202426957818139858869571565451603729452281499233259884108200254283414909095799534186687903964874872650961758962411088424617751344402797597901096184606133508530867801205466778233469402064460747899900150421996628451637108509194662777211052224110134228589607660180210839261878960992021890552191000079658134233181350382178875241850960030877657317143624609606392755885563258859947002586190073380200077517787351939100086807466704425493363198424035944217255946647876200506792967369943058919537073303668966202967906268899045502150656600294942404116421752302202060820093253557394384260005488497702973260347027332642988311771514714901691858014248621309927999789620801212515836488095813697183320402198055144470303923657646078213787865471359693485002958339690296477949361594713613113973726820650514548489545692542766723756394171724807943817724861539065816430657688091773275562683525702700488800493924238656251620099583431762568646978960364106846562781179334170181901373886166028883519478584654979421205213197734396120010679085991210993381315765080581938664716644818011460426176609908202375478224360091019192542708986022256056899621858355846460846443455353529494056476508064987659700408389599657419141130534274341387626005263000962962940342206039472634645060268995578936893676161027428807791358529967367101356854525813444655635165199703843039164058445972404554574207068402342576519014676134158103792338863094814971987662620461366238097336843849776314042705939732683343087054873799210001333332847498391322954702812993636792712043299672230127701480563329956171873578229914440302539303965173018299522413079710836158478277914120373858185161682088600298216650041022291464129506987316928779986679855972527425316237799624838934355815777823750919355564936155322629973980507595479919919089805621444731018871742206750913007476446950623179868832105685612049067849892296747666597712107276158743273253026586036099149441854243902613168268191809286817105195657216350688808135577651502686893823533583037243520489719955018932501387042657979986193189876678592112498804563770549118928930029595848648359422782707564907487503128207414583066637907344059617204040761664932808533191529175766071518338281371218889797454599562169860789054928722843840392359049988146646053139094580683282378507800632825891330446648098444202738827459564966888455392304130966256239275449278732535828153964963540490008281891119161238999376943211482377028131301313656089919499586379924515890307828747238677735610650955084455301594913916419958985010669909509988418608224863084382679471599459852431989543424564273135887761244586224490036700334941843213285172705804405017290118819065477615988613173249970404468153110037300497431720280402176837721579454201622452932366443138207025962934620547718528982254655724833631686119123906293916097161689520301213662775886294311172080603760725261809263463242035704351361039575074137480822539815934607026076815318560209386241547633149410394999250831754605465828845403198278746581246903116738224617039534982839925222069976191415620227711484799885006793033673908661790686384306425096392477839719682570877586092522857375932576450774361320773913152170816883751833237433120346603772035096149313722175011092621133240188866602863581267954232841505690438271322392133243985962486336837229980653488327712275976789338855951073723019787168260314469370953095579813407260188918366688281792984117612131305241300922515567748489107815032065873021057607106347087444328139967960424531594872782190822717748901622278119329045975178896294901947762499346666020943009182727714014800525626098822648716583242577695445180559769493112581785831275383724401352761856271921006867502429069632137163305845887791071909124912679321930178198936844824858182407535988735722203642186399796226422963286827328001899883054573395835935479187404973646504617173500396892823756795544654797696301165526281866232939574774378362005470475412953639412545007134886202114569047686080204817020408881937948133788129222598660899757494648100546454225185752025327534350575820507234919401402511188147003285047711033876585999218562743445850312978113477934259536991481006933671076255644579071469073776582208486779376523102326404911051434782414579924950808626909121004665921379437775608444642856779741269903546867288554371773945755638629797730854895582927331076602224493698546003197669295637533394369332866239654832902150340912158499836970408797472699592354434826418044128298079480388108581761630710080751518430019312900229194032056530341617272396174966560448452351688062605283729286462140807766035754345001479865627918680141572156929332682200038804559638317714196393898085764283590109390946574677896329337459932697486967603313357883580823672873426976838359426720372282536526187051801110494092130331042753726864196782084948082058220674240986412422408517364843714034975343102924807227292485059344173285894036438704760335045243850970341605025479388596483306331061935290517096682879358477855043663091112573084177675692851168434101856955026318591216323387390942993123368906888834538120980345861261951568809231779121424154026442588793267888559264551604454067561493902812782654644587584767314237157508894684584911097146610753859900518600308298054724658345186458083969078548082283138990678851681508365169281208399010834619570638301843456257631103799416941472042373286252326376888935431865424070844209466488426725725152286448628816161457268453614445702808941047861918137014837836042703518271739021688700808277069392035925062798575980662648519756198121078329952960295264477930435935917551562336122617768198734798590214611700319082490890762095234224186636382979857685177150803421490193633591497314025048113236078056392736232898526982164927440947097760765559675791534658825694889172663026665636610366700616508936498854205683706790270103567850875293952729643364938900824157496219961590601258342977904510372873659150894905387456387856669952120244695944281870054617137313463102992536418693246162159565059290029717907413352084423537149788423048412667017153212212776228981121226428478230878418755707826178580632138198248334721912074277221462214713493902496642576948430859396639831692323878422440102831176218373903365513654326929411570294637020159492957895765444450764421398485473481246931921911060577182447862871380906681910591951631450889898583343367948707435560681048642873077102302551186278058774140933144785848457089263794991036079271438378039363351907579555188216862389852211884645647241939985501254831819263186333464315256889645364496557756316401904448423511853059628893171867614952642775326707468496656962544963941050503266340141644689980231049919671254199407766027544811461271930953490043810898765954541832590863596517665420205354164254691237148075718788887981715178810548472349632572507614439625164705424051442172648590098628412027493773275820484686234044730278115638966817890055696537871275067970655369059522114516374994401112588858505991672061516304341304587827397515072611859307188729144747930785171574443689961783446513626161086811709905824022380490701761726955307449574496224757255497263972406376769741573269292748833768169478534610077797334277427534859468052149778166704418942611386525479500127081216538777333514846789655500021343223255211095052096217756548248353824648553712003588645719130960180300879523173405838847666476140489880317881982009981384987017780571797327849751959796792950482807639268920788631154064829021752992865340103130600660813536734092223109385104667436793735724082658684340812708507635104084163404884598567482416305443854698085145357565300339106591119324866750174014556315251501323533989757523066132095826729436292665846962811318906193285999705354254386255672548097619705146942321756731001794143985935161307771855406055067256785642541524952956221152585443865186526410272146421713415047197536278865634642421441999665485924106368315287645090302695517516915580859265196196197414205271483268874371778898577046118304836316316486065209675414275179796416672289291815247630311738919755087012138993990149801154942143761939602131795855732561304818379962954575082947342312154462046397627557499330481569581422141981206375760102175805681754016456232452392156783902678162726317524414095751398319962678901590692316772176957423756791868707648679854129066183605987321561909901641610481983754618773638226646451802128265740070191053279845697005223282277787186734809239202734060251503786013333713798227838631148193487405563711754002852024318363620210803612988546483536359698823662648992251734119107636252279946600061141880235834891574894735396468193685648009779664798302708427142274301415430478819798380939721720076441496159055256070247762852914136890047550667216182350373400103166864856060261655286895713911007341188080673136130628169792283295998154265003632807652499782600261224367775090909424979676657808005602578520078482214908456660721683125033476320986624854816375016631423372062852082589834570350937226309278170998082710256385726970497611921309006788559909485169358618367638687190689641611179136801594061343070187897332047783546207553137343934807913292079567717237948824657512890113776478006325118448606729912508633016459153138535250170908230730992072470487220795834233892184850905590536363716074165879965813170433720432628742891197663962361838344388189284125533116981825805563665808077663561041827879481953041288212176827917953073384632532764331144609692339547144574215871227636052874686432039030469692481902581556786577417266716528997700856230276261808604429615047199051354843556895298912194229179755758376149942490289350417284015667905268969415260053648277097927498991137608708599526049000510854979407089844268906992649454470214132544797410899701623757644760555629691907531330403377765539865240536847023773763433064650525319815705466642192754570376201129404963099424075629838114758273214100620918001222945931597794268049204652586568793928999932867556268127822767968203938532536058451194687628170581609161509700697019101187635284442770612423821332104133652240287096352362307278263090196973293053211709735003267348174652987446316844533906293889550262083248576313930131871417982090910151938297560518540752131598175700403499633572139602839948897107788288595270831980185582184312165575273675889820254232642037101947648983051772457053556020228704485541753583660282548365567226547458157499848298063513388644711793335768419892584960074131475031383655803661653923755562456743178050406493721171059289007079068976741951491624478644570099068735609874469364008345106629589598332969888732727680493450006929519212993753804257451138476093812003157606061387373474140837462921645124503267969399923622940819641741232743638183956222235168613973819113794124331974250752689747861340727264178850377481521299927844935135137508896275504117625609818345843613241202216415303529720473839703130640360839121357866263927936352652217420463754843537793047965958214507845552365944962631149385462270459851419655162537801879245134142643634056303956155058821459424031708979718121365775750049551913531365154303542493774282294895131585715425782817138445688890382718644083378592221534126028567999205755432706198335275355636976975357049861772064514717068758297704145584447470089312540955658905989586893924901936952821373123568293060279517561750903556366752029977298231275968843236846526624611715501279611543225533852646210023194390844709508698180246375868410975768974002995170679631659480577641625436333967807585273601513694582588893113033341224798834224668783268262489446944384361461451372716343591821461354537441617953999484153334258269671225724270545926562601259777578130199582900568962925117187498505426083632056382626719213207417408958369491507599326731321969916129848768628481355601194033084778460781482754654813270104433475097014416287546859463053681430752416143775569803870313767245075380142719529178196563203992684083896079002515474479324649076879406875844950236852698620142396235591076622631710793486420189530904988601088958936674094959216385083857991306826403892699373144775185488145546338328844079439556771392369135444990459341273753451490359045086399550211305283235575041127581722927972097628247448634073813811675374044260086896217536067619119828763247100845555467074458149002551806378661993732684235253218897504512228392007748680954999539530532602800521056821632935984583113649982207278242176402334015455937186062242695834989943259535681132514297148825625799499253915919559481139451820224041285444729016333119792405945773412844516114882100286902461672223631996136059192402699120110779254516116713078741610586794922598462439790817867719490513690261438634414643557756178278450527185960577662781654663700331017238367958849548171043071900260627553512793841667332594282896788437721619127443088690095778388053377586549031723051519734271885012393807284505889088970814610684265907917467964107808249572096381069633870729233223457101244407501845416464958839442470185870930467725041908620769644291090155362053554875149123077775851099332743520927345081246343219038459948699226783248243064126093348010834887448516172784764573024098030919319735631523910653030359480043303650362871852770644999962171412780718024164514781381782282014990060341835661677059394899296909026404995302252816995201701977739554102130141669733929960026959366186485584879192517721728436034740950027383724456120411550227490277681740551478436467621731316722769911266660915583004807541268512910437882463782782280390525735495207250889593846262304371247050035816801667030516285751320409313283176853702161296439976907365933084440258416994570648527233390610109386965916899961889857591949254960808372504746021994157063839720420906346773821088631275173527413419594866264236672068857062858492161642420647447438504924641247856837426639596877443754928650158133514363748404235557002965750009837662317982208944680185913836480853401440182802373564292235379204920725694166618214711348573052792040007431662021016233618935295764381784719857516248613904031398896839718292393271009833044494568501600850179805465754505552191137830630178062221380495876378443543385291674741026493972777301689317261811590835713091258802957670305338292920397822878182708865300413038436110177254367196988115631046263144108425593874657788102519384053435973536233862111159885896973797800638385642772318529567333087191765044006965044616696309432145504616110810766327731144362933397039703880144862715942931708135667352643885898874082069655110623336837816659822046463191985666979439223772930279761897789783554405367787614734364003727432964517450062290557978393607391075802994362739449611219717599071997599191950426898738907284432972411565217349356253320706388179086610310463730214959609386949973803393413149108709204248182087863417371578630903200344977076116339274185786051948700721624345081302739302576752413338990534533397928355341638307698015701534584596388098144057067320466867476528103542834012780411444196635795604572297310678692507400225779820571023283827853126148541837567227703548421638556332107109912983542887218411978345573609058351343158741428416530007515415317257342486140576276758068234663575280360783912151376939364589343939440380238155683116946051914844475705626131009181827325690201329286479183012589593690440164621900571066765380624720808564163664630160481463278745703086513299276984227929171607174859360397876242104736709029071001618273520299754652014771306108753580114615939334072203189944159477288540927122195644518563880408794639844522837566007292746404580712422213528232065051954711113640956720147967087339053963859896071979002356982328203484553151096247246440749524708322403148191518222011825024248083358987329851501115766739090199444591046348999016005952468020535809608766539304348873696672718132338691597938059193711691956751262390753424961492159407156024999299582784856015243611776478477368448903269821069219846416650693390089624452782055455026609456795830791069051948846649904207755628065322114106294456311817396381308892869432432292872990485831971387721076416094518605280715284278413508114296457400172579287218513107989146679886781385310730659431958147490013409552640471903792277556487330756724805171488207970418641429056609660360139338107964490977592366185205485852377444532708263278467041523826683269856107487130449565405037579225771172309477206943780538162146280748550452131072290594277350156406120361750349354415234997110547216598053459036024300773815277207834397874769813179732219808133772107580958508138446569342508345638660897815126155044249796345795007663922297734778315496861796688469467191519602167447481015763229332673022783858313665804181012454337408041092903771784057293346302921040975761778430697900916251709457043194029523325780161441270103920722269608779592366033675408186868936925000306325961595036459356517580274070738357729068657976281547926025322121895539863889757535618919746652172558403208206803516250651360190256551845045839663395615006600857784462262793108997056434107640074086342256101119009946259512917526302429594951680117048198464291693756571958760277213689064827240145157868512800685097969652806919510874353599374607915132496126741791838520896663720824119825326161827341186120589837890828833660422036930253378785312160742049149135821792327649043362641586658485546149688183284403611327427383877808995408213659283870768130458873532673951870703310686349161992075614391632737932961024416614016215103333040599880155210004419159292274315723350101764984251822252098813324758030522182671540245560892689082686929834561158399752717260085981123192528129438004385832335297260795709199443763114488517252348507624096983423843675933474782223630516143900805922243192706472631194169033044144424685502003574970857632291596171765183893728877901980180446198445835559000808987758998317342671275832373076618740535903086450930838286448751027743829414816019099844199663397567403247125946927990659748830614405035649755604848775996225170823405274071389206746528841273978572464087420133150533360063817826902412811527981836696256931020922310434568637465449565335316534772316860929310664717446300351978131796248506482146641430063014995770904304536457921663826259475576248541888383097878052709500567631882466560218854647370450018169774489301834493170368715109186641161602450292889076108880870953927574703101740208905691742852636660675671872620934361320480713157098034538599965073040177942079899087981070744853809472888354881358179421141227329083280572140342629679224461303103373971177976100085195397628278682496164209000616868139085206827643899210160518661375201310330683683947249816396750166579419305711161829785149459728506856967363559654431890049648437318296628376299551225721851110311572702455829642929591240883803002407219046483764352813902519099085440265834555894193764408320304551931845186632028499502428591001847302349313437257522567270648777424724737068999588496841339860143769382169180670856740709160925947986662742487108330710077261741307873378495527246039309041717418434852819198665927654493413092316709528124122655245326685873888942169482921287692661646060934771783211445977631734209702877961924885338019271879122271611179808470386269428901521959879693598677072655062982141624783634548501378243477143388110540964884252188178054643950739458399662259361866759176168074021034926284267635654563481825559877427630613055960441149171288478456150492056259440482367232933442339561691122384022780278028380646319162558950670122205707168853336646417568674933834956733847956243496212119839268884083316055387691929701955855573754117949380585736022001352610650779590296721069910404389234381371972906026986703396419450818751978469137054334686358263376490120700628580826509236750135631030028374340033621666414778947051941285039104609063039948981851388105187738049954000382403917914843038866681254407970414474082221133038852079767016625984408431790221556325675652501908466265187023716766312382626113003704560898904624620831361408614180780063648406747512835927664981916635338537272583677486400034254033724346340464263406156566363962534360313027186759555993672442125177107372989664493692708272185768949957493835488077332694698589233762450498484698936146112883093912418345236590364075531400999014892095091486459449283604219017426962736416267793619293187750223296461877143564013926678217425764810716194895600048626152313263574460066001807857691688786500643781412978344008694294330197104005726677588183040627112432177474562981703678456546717784482811019830914805518215439931490689594407382139311290560666083020732212229521155534880357257730113824724602999487588667287143486130567296350939956144946790958027065206798179543986642571214171610290972076100773192935123776422055248198305752359236469285982986650642091029763303853717087762117233839466609445301479464521291331230429344670006100272816771001637313331731334517967473576785487209077287317601539182798169743167186745187203329717855605594701973676950648195736847272200863458121766794655245319241538146326488280869713569794596459733890992017232211789138852308062373077609922131049214152525008640464215811914589637894836614645061924395072016979331841158147470383472378851967407458861472368670818545585475148709429411311800892349402754558101841894410425849707292758867434568306752724731323150837218956373753965731162919456091735588397889408316718369841074907851323491582711991591855594091160719094250599845152444211370515611593569272078042946894800701522020695377561702643796885315521523936079868232781360757331829721350511808934714096317366196763477830537921450781846635091390895876388877037785857488556164602485145205580960954910530843663765907498640670913269497785659194175256754494572852036200922800581628651598455584171256240611991775874842689208927609825338901304592013946171099675825576699272524869191313547340175374790115487494359752943569344545343734013851685289690464716208955176116057752422722924532787576503394458887529783828454347687732338924592258949122003954011013084947026158998282291465786842856270340307334282470095712125239311204273991926897580484313552665692485184148439203921474069872005098624956998979202306195169850081719408209503402774840138623452666188566530808263728441836898407101985182262981377631233179913318108817746237813307997184856334691876948371846166899356013814739303599433300302193014428179109470845123979936004812677550707630961798516142727370447020419634804204170971946136865840012349600468026832553902973172177618082883178713488647465192302075931709026239643413127321813249174996933927070338035210261675843869817158706701723203564733501836474806319799074411218533923797391183960615875429757290781891073303534402400187118258357558047241417405523551079752441268403546348814208642555340579481816123834435107368928081152970193697271131363385655019506726235519049283755200111164069790396155978188058466659794325289377827881896294171975215243552429364462493063837501503014055252653714656744805572442936743475882474916024147660064582991565497603557865892181259439078382538129596585535042411719154390745539867658331498979632265577215015963769385336731500278255468553209747255113968700897257748190021507214814509345368007004485012591499690109133707916659760812676861962180351580648042549832536073271749514033069701565133044964555718837824442379039050234607432118882892718827038963815048787876246927173737999071192708605118919250356843951876728158917113132075437120698329344503352387188152884802449956896158322419959580910670842663100750580295862146968372917034935333332217021270154092609465785805779623695010551913820190520638639235690567339448641432884670406661127742549891411092200401256279461898037722264603646213629463283883396047926296669983160122527810278780011163783779705078398546648674030450235355770031969958411746883177495640030825850242440681204736832464944309776410997547067068218391747288660601464035897193352375057601702704837536045627301337572919609426177506955690459906505437720218262707860879601743072672617532142187906417880514735924107599994427620180963211110436769201750371765202376575651239963512035779440590148569768029481298109147877749698261822778404157993513238087133603866923615537179543996017675602384471555097240108666095985300042360315698763618361523936461513471980402381427912553045152529229089416724737418370880856900848935914187299448159904970094367896916848600373780397288018768834381818953733591607312247557707804771155429313984656960141037681061941756431374594293338570740368626430795227900529169924521251090879831456362310325293770620645172575322073427335595744492112258665070298631019165589931802283920579177847645733089312299107009255516125569358357609539045650169158562772424308768806253302886241142251916569263304232541279904204161556404399000965085861571691335158696938442023526651208716989222002121030100795632273485318252478535734106013596624162840172938681951898279917439819734469921937436229482915452864818141997839930157466649366598539512695774958900650921023740724362971664948993271226608184115729162886626167345784763246224729116513632347559391090230219136332578715301925213376455673587109398899240663139455800262248414502735784436157644794925166534519741366150270746194790705729573494509478022740694486572352573374117763428533203158535546251465976577622651228286298093334739632846707781810754420934807541955471949585334998467659218200471521903702849263064588893414658752637278408605383163479726282456580898204739780809724896524593854612203424409843958495222191116007036488171978928488706073002614401166466843667825260730352427779099612145606336435589757332217997806443151384861407575180390737976965631401665975302071109926990272699111809617827195755148004733720206964732333553112193513207404203660356888417596325092377252371827280618589780497497939008073486791953477700709516235156806470620923783707580251557555934958859053141476247979147598080228872351687407307581222414983002098871603453598840508385536129903011102623758428689419413707485492594398520180019363282630068668391656317585060869576579305353961345131923968113689149731719229483032886965842068028446333517310924407500148346496703831049416928927299672799071582447378616657539001277308764293140778265207506564343555817329767726453523902430145945853108082200320975723747948068433220908081184798846171723596982197908246801185701551382551169953123641190305750893744951721378899721708508877242631526318989195872934015246800556113309612821089004354657488287289501560655692205573485161411511758683161525225825163464423509855880215013151948579753991035521601043685504810049548292096742677572101919161500376955057314275550741217436201763484895491648931740108936572174384109047849666963149619897583541812424565718805138268617405018578337676225611202282119118295264919684082795657392128219575049628453575378352782853798891500385352419906647990775097417065562743116038655267829110380984690823004577990794862115604168402140751759217576749382115842432009105445656647734460726321869671384618567500087777925754973383782975004345888500597446133556002122570503161396299529050866345375154979466595790264195735070902617189519583566205147037812935922359850822194234105821458853147712130233892626663651081739500072274354676257633763803450303455753952842806732697232244767960241928071732680818041883455144248532408446397802300263627149691769326312498071986632888895264977818126797108528324760412549453758494726014234905351038902208897628209680176539273857082950199815823971462798917113924291520567940740061533254173801245435829504324851803208619834971385870872112398915468418176694478313997236167816451939312377997679225817972390313408907881230363286918313892985133124946459041489461232682263600267051050820682705361573972803064589271684672520020158457556677732429055367794671777463685996486633392289439988831291354240280107361120597625829832449133782327904091235904783251766557268284556548352044653677042746166860459756154084943835987929339637666872594285377085344938207391089152318639550290540761100984876404128035639912079080506303581097784330634600612409580518355208383704348226716212646881060808279985274016236759135934122504776974653011816908086695692094819836897236681056542713400068076074202548602836255783752223853681535145397841015007064672709663913414912183329413435890670499772749448634446256173745902993469737314139974735870056206376305894468561856672525612259044929537098447055493988187314680607998960532782000488411260432759307648812731440072917024198860935951969552352061120330087661559638766664787322862007927768755003716530927801234670523160480254896507184361919826519312501840635303133464135189696050431793749595668687352618480994537681574176706333874975090279309686012998817114082988587185875090690454186564347914953747563671481640770684432130754546515930126660392442939728445281019810243870992932001207933482669632193523728194035936711182972566900933048042360535192366147974501824852595437698931396487241296487198358081081269518839680790430108159345516390536744652458666684288847252139534453321068544713166167585830467949688163087318172992815137512464511431674907118130393207904546277352356050590154452309666146761694971839963867128066993135150492797830048546587918775818165914527250553041440792886897715406534589716228078882384766169879085305609001491650981858654033926350555425510269511867723106878958597202258780732955852059741895309708748455676765568071837401403743842673107016256673520607719748171416840398540358147700843848747605856073819600837391811865809247278632787059955345822119080203815501788920475436363862225109566632228605279224545128874235923777693425355718260219862235201707238583477279946221504852724004246785188790781949114072270341130822748630015076810149958368004805383153190429674498033234607532947172434450437508230031372942426504734291853118882392607604800706550679308830823326789742913473079484361127231665320402106846761188944085067488688424474896237644417259972990187078992770574553587074681211823943423686811040154723853415021473463577183733457324467682165413511708685122318682468841477901875885752169738388082930406575197556072239224180643134681151421851169528719205951010263267400144337721039426649001185621678745772228606315921006270697602946282985343037851478418824378572908485345670211712810544381309000775243039801093896873773818537497091214551812446910456381553136278056730720476804050299300861334494133278847236540433974374308992288350298304694801172385492374174759416034117405532891299588186082034724772758935729300620028296141386132111247416607428813133734090593769549077233358154182087242704173352791970636396857908962271840718743804104412010601080390449032917532705131993075961223174063152876720110657790682516117896354889257260594322248787538671598823040447265692341495514104619119938803652538550647718637233630644027385570294841430804220426402164066251159686890309339130934140511239536821774383801246556460544344434423963902568186077427840628117105519620298399254135007962886508293356423418450162498549238911447569126467212734844581419992420893902353580976511416288540844659595372191691445851949696813893977404170351011752726659889547314520699689944824272462333485226893666449693582574909465260982194949719969554996370670766427056721326982769187484088040127197924837275060023960469994665060798523259120932327730598861478539812369886752820005729881189416906343876729347230426842464438922808220443807464678942762482419627043932930849065133958939708947081320486521848843213729130193767739303048822732614575641729773716635754349195815493835733921496364399399865741719374122448082840760737026297010020840410093404494126569438018055397817863563591724461052996878427854385857979257274896128375836107675318191965857068633989960095662198238907806413977366439412254740154225602042448089410348981162600137919701090963835459588383648786775259400676044102508080200124072356863371815927075848446997863738565106534733430783153598233819323121040841633435581612742323497579079419015811374070225864714269992099380610900015424896128798387105852755453858526527214898808637564520306796078113476475638624897651500558283402693487395083257654341532517171218523046274820385900547213460250112780905267245549062238334877602650778704262329150892526402023329731142257477843944137670113042693127913368755311894722866330283017401717423356605909796692839971044165656026945446235118939176154097412330463312461431649889807165229374431838996100460281345431922699501860574183454132611359097037637726742759223505666865482791392727107515914075452851539992022410780121284192504714422000270252710281047001990275308782498327245931538411013239754067468327724626186475875747257847730068010237291481405386036530894254023305051285395957429570995062712612633855590587754369410987146313289842824228185834074976729882622886894213006000120329166310627403650237554594513926007088378274537585516215807029637518940639645722428680532414894284296142789607280582885805558849614386529340236812167710402357904243518670569075310309280717627373628295106890389300490347342372821245662587028889832528262763698640436512370781958181687454665044300876739662856962724092213088278994286258652566228691250827978690820266234503734759887883708133979216498169494296442725647037370967512155844614358197638526880710746387821333272371482019776722539694682313799264905835852255817174979557286387382580476653261104557220960081126446992770013316814640389975487067581834913043255720996128032322114116570839502048429025408890268869827539082138040871948316848068192357318268104804687319345680017833221595681162660030672145458269745137742624215312306446156635572294057285296123862876074999160573696732228018834121875945927393168924130527444343193243110901701336044453853280312119673492355705085323233289878528080866635123882917468764841322205154132390647987564649035829474079338849607372652435916558521263843546742041855769560639681334059623824543524858046666372233238872248555217683592171760103454272401414051064340787219392255484002284663956569439604549696962691679894374595062483965292539792906838260964681580934833255492664078009816080018034649507170193084730082786369848393966999110034705140578794358988641366079324430004643072979927063948593162017589819136248549816492058042705367381000783971071642845594848363242392325670360716732750302920228306863544780577611397736420605497429501253696324613979761784301160874344974601137630880986466640963839053209730504697110398957443663207947872782255312647419983819214146351422755408049002840468783549797373625391366014149878187918646144856941937207372127140320205175306948935254646255330768475281171158333709073780833077657610483562073643660485750340189052275488543420257007365646390841864128081428043592287943428984721719059998916573420431531322806737137451794919391065884442781773742183767562344905714249542569261604480919696427736158739348406142678820531375881144231591029914433548178629958521707359766463966793135540464225500785298615057939790386045401994568858695230079623653516751256302348438985043642240486290729048078175407540831903764783385559014540225971250099863712307545715453311082343790501427456026867169454851828805004170001973936677915991866118650949805198529370824472186871797324944894819766413103933117621844980186386466353879663897930507201367719375151899856388547465987759663087535471655008243372471932092314473996728786692665646827573285426008765703978135258675131888164956197003402562257258609967394019214597950034716952556891943949131974008041360614135751256122670665632877784650870780302583016893049653649357064232345888562298650092578793384512770963254736460083919329614847867662089922649666342990058174532771839066164556362269860342747255899844259829249720392516590664909786479459727502474794489481594817286949096233527073746649921799088816284363285818585497690613123788168672502831061172645686838243350941483961633798625744454115154387480938962194675468845763298190113429377167394201372036711056169540565544785051520101625029226321791699309079447554149827781914165716259603986344659807387796227442357183358014292046047501768097614447484657855250613566991564879068303747611948539580966279323128104501135577396014519394352364659121782300929216154952315858657941671059173126106363113622595605371617711366731048754175477085165757251599410773183596010157504004059156143553900109971241872582299453178206839106188847072201917816080480603067104693640626307571629382815364389553378689890140677351728321937992141027281955037222738268632903282215964909660893082536528854117807856768012651069548791113399252492026010537682128192702800104917094159111919431772160060926517585348267948829867981535428554735518778804223198736870676819056160504706584997367253047070620782508259501190297157802552463533581501625689029102979041876643981233893513567703313793506760855806233460970662847336917129199929773679031466102714931277188710945658806201366971419909450008889451975549439626373253504207169482182675673056989524384310303887069417036723938019829718154605076283139481768377061682370000878846612491307140159349914805866137967029524426033763343230314045771946372544063594911549783338536723587176682183938793783040271691489425936345466008511905309579629552274563813974378874017442205556787655247590773329440274077603287032707635676505424488556304994676778345019868887295704147836919347838533721664772957382842295851374524063472243418297010363455790457208941383823016616766694227427452723344439874145376265790955015062091193063873322820956725909876173221533265304462071863975678630265064385245123989075227169563597525517978062797498774811422827379090671302544070796959859047408458815540754782999280512944538311699756874706623213359628106567976521482198429419426981351302818191458923295679000762538912102070226409564561635109031266344954899663939532125737217356776681928159104964074410603763963268116398510908417743509389993473325379174064080050619338913121569176457511856321250911874855546388677529192191161753200225577589860313973130334100208898622899525022269426626300292052433797081394470963566085473341752107501626470519950230473782064513057096261892222219662709683359308241214558203644313376541093273446420725543865446860895655645627505201869664758774225472386019787809538873058312748736774861436960433112115985874468930982866689509483087063940988962495571444599378699360879221048237522440910644879896642143986988145948069776615013837566101142320608877083102666121808633360569014795267805217107432426575682262605040942040582938454979573070427993067585456192041783271741153012309257743614790124598831525349029994817716338009467113859405763143255528742111936478950152970354340677314110203312642897034128912607292561454403871967709315806399330239036601747469008045378879135366080580908887212795123253879654867523535465272310760385072806020548335076255063622846929556912299305231824672312067199783193318381452142648558707234861637934003936560079784455848125375475646168833612595440959398154771993327830667201875726803199505917631794661040502703242521771848808659714920488052555521922630951121387039058992485944526102409385674266222462030580002572714881009675580623325093874795908384433014050651943921460957951893132212361553098175673398634422633527614726331823070629952479141626646688402145719411096892238633465155386683813704960015498985008145040858777140614726954020705914713026833563786462486257948129034011342127027466689227513767901600557439772197588408578562900259325504001888394335743436572329995784687637843015687797867903983602630252872218970005944249298228085647710979110837870405523152080734055638311635090030187630884296202058973792240162249292017834388893562530765758049520530209043113391139748733319949917253374804249254277578670854326854553362435511101634861235620640232442722839246859817963233619987845632547636135110762770074417084275169750342000635071884568717170142347101767851555131367187801268853152029974533528885181607217303996641922042239092534532985542247654360598538311241633123492599231193659726242477566111293344308748100386345269625609907512248602388682633782954731013988464910325472005938271389363484725303243186886102638953551283246128983955721567349373949546568057414477074948656204471464069448367794939864407390206246236702536128358283780894371477118554520873350311668137207178992900916233659548222161464809093679922777171841103725188493053494760079543926273219624960166226985025238454672883969320300868972377905208378358310294153750398295176612221103196767127481039407427231211409041768035619089907395707315285447633334815612054020464214408809195881653136666076249899920888049945033262928430168831518484395871321363369413215800740558712396679214919281492503655336843198984019406915147612640103823671055377452418437049940708062435167008146986392738198734757080139776069579131657147106947261715268890173112475342396462975273948272572526450053253031352525370754868500331522730234263236047317801620258066192686387503663336997450753493291991693241524972411402312805991476953156510521743018722765681832988585406164429727061458121743682804573564236231311622697287382705422443664319567774993285565853579253749893254496748031449535871347595582888251206521032961120169608652824021248829344854362838158449812849502588909373280882841553459051591663188983936181913288182022283449726130952644177263291255495944201086113312718338674108300611866757460299425064099087642156331801713615229093729765305495988560798295239715299785560287022999211586767402941146470114529103679977041710482889957328826911312610058783881317428044481601130159946120885445897308849880028785831849976889055265714218683578002815228510077642842747905533025895196352619864599650009206981372001940273741977466779995708597452492165175015411084102637776184398718991587253025579711470985791492426755077664217845767516664735605453007876462255634045895682487468932459588887852571679448650855832163298445266141938216260295738370869077305150723571170055579882717513701147475949996601630165463165281927887031128386339209235219535018080324228647502112871685309915858588769336482505046320970054800414531723187405516128018797323563997860145014003009323464027416981556425029679656475095888984076011594322234086522044799346321044224207199847828280762378264657038016730485495215185473088838483156003156385676596550738988428176719553050722897589941593993381868806907356476515212961203197254620976251014376578192850732446855778493366677835506551219424564429963795717399671768839707200216996232034265861941242865263529869113178083063363802957160291349926851997551102431520157425662974563070347574282641229333428331153240780777382612130633600653727549171387868077005210086379090917817313950485413114809083805644566232426315698334640272370498224561493814134838026994888819790015317438027118318065057671570297350867660242220301432225878946462108799936439718166597608903304695721736896222429001792907414478791747841089362796892911676288161698363332312156129354711922234153053850017143852967910672626216570705474044507320565369861526963623895591860328195581084776541360897450774763067651222434281230049714915064154271711130170626472004665729933678316010972549703973493896433663112452216049654483584303303923638448406331118466446653518584666254715440698214874122881172946430792871925978428779386165082018585354208559610040748046424002630557157221113208476561638815495875915461705287062648640049561184898058457713777818675791380143033793614492500156504304862155303405309530902101469444496919242897804464330615471778588609183267541906952681571909884109806000055095116633746092660435597902594205900299948365965627427481545084827904271202657653008916306088116653501837390857193474438891027571766690017988028526027081966223847570510320872878229249222180803047445624969418693526886054966065876983437709897456643410908048733973439186833504890446552606067964278090427852200842076188581250276906608998955692512410535206888041165447571392697796433844033392192418216057553005914979400569726107957716736028462979709300481989817124287270152762409540949388233228488500434912535787353299891381929668894911831755729819305564767807949784509172453697633089504251362982414501313313207899467710424915233672310255643694648199822223949247735935490044774958426694650323968660049251879352555273748091904202021897996635924164338443178921276466305676434735773227808622163636738578769652356422884574287574345465371118713390323435323829125439826345186670236203805187142704920757272969925381081704397180255823458174450687427150117740109991445092717121812753626313244425122629649811387753780773297846622950750044889614153901898587177687611003757501993664817431663047061715259445387232023283363760797526272334362369361681906585595490257498601846802184951012267464582822185193018855417918853391928797927612802466495397928649295749660719164923201267196988417110983594586417889751860621873044132911474322395196014849494781610829798550372575271568903338648698737528153642594944940328748291102911941750947024311315993635175531205950555378800467747195538133250066523957673324461377366472405323744815627039311102691410039934011682088728306914247740713319151273559943073491270242501235527983708905332908057801652519922925383004173948824904213686982350745972496045447766965634747891848748591345614942353030794261764032782438938313282621180906675184539556878162978693877645460472914756660309505423650553698009355381295148390085819054312553470665982172816127216203155964101501665293168542309766575795005027805098021679479080291750258381808393065209855999867178153925502708970308512661645228541941739553388719496034537676633148211256295175469468490672863707847689672365128530100256590354032646999744819205015985765667703685189953991796129462371003192077342776746952682843483393394573041903224151547390950399154145179258229218058822660825718603478889803655729008577568626775090973679415508862848582901567754517312014763474144493948430471251974473829396899976029929012458681277195427124471724235365816958678410487861032885590789339395231916401761467422032393235943634367612969661295640217767643709932945040604898731207712666408516672246373591206678106906808217680326726348496507058339627960087634038238918744385236317825237319173369849159334146536124169111135845982310024775734643690510362873451777234956072518299152942600210744248327031465900480415515414251248175608656623920549471286303946241487907377152749255696926909229918129313658522526422499042360189918174245363771837085825942077814956930014692448641590664481780075484097551653603920965408823731715685002241935089223227785151657838706269999035136316895226749515843505113493695216868977948689969854829184295433647200258751139342134262207681681779539430093325743229130119930604156416251338521288299986570246514281118340118177984239401416668905714068064208528572294017028688516314904923375468238740220174956462896373005234806964924566335086516880856017412232266462123116687115188536682536381165875141896963266149315046946873628218262576027593554440564147359315650901876036365237398569630752176787306928396358879785224730089833869830625909098464050180028480232427548330357955469727167471295320978731317760754557540048450759257702683147871068992575954524754049840801200337435556626919330213308636578519511858706177704726641171745972829738576876965721530540327025968292959672222210517086667333242756192637943446124656988014975067887556764882049976151548672077606105242733884934634505179461989955784069183662710801952372776304992778574861641606606752707860277118908034617715569952815442965489368339625733282714020670008179317401628162703363145957280588377975839683432131366524013473367196127961176483132397988717403473154832981437062020576196945348861631207278474212153946066524038283675480416311527549627058661987709175262458952919805059373146297834741807521375478622931162853940073122383877886961545862737930392772655566856084790931832426280547280991709062386052370079862568990983651625562776095146428229726098609857110850192110402227542632624762977361963736941986561419973383973500092216577505532123771165040356887984091866204232000508617399914722036923508440490169124689786467447611825732248009307043833962391213326386716226829586006390676412331395965676312683533864017479212157497074213699577764206229825907803624698222212773749062811460826199041357679362845037640825645112094732159105968728757269302972873602446397515351416241799119242806736903260630446385158744688064585571410846349261954226503065668078830779170580928481599091525758131781366461260545588006094402207282215635265170071468728199398666601900825495118704650031899744003479002581401168290302900492068462379686220685549914001906668200225388067580240774558774469281413082689128923563039976829988825288369292908232679759084474864314804906585001526256476823089497231820840875912840833971171300747247212131952817649818194795552036489651620770152567764717431905040594888360566187851344343689910381923567721043650769711370848277580066272643571345805070256239231928225456354438564300184161652247944451131753994056917234989677366937973410972759241780949841096738499474954997271863261229595790355540703584150907018688730738699861895678848563424056376766338476496532725003187241182997943172999338310328913824081402187125180775857053931908022445985971889015599723023391761123044440018979251814579732865234582951795688434694995990079646575953252485445708796619520219047056214497422062438347314787162119390004401852578441590217365921389648986087032076422593104746549944520203050625045323371799455138962826011605878040745295672158344684138313689327048687799407387308800950643230979917981541442055974657158041921000749976833478466915521838764184524327281405889339617999292168908914055041567823633011993853045462015731918402248382200605970325923035064890186206680288420863828151789569161198627310839164016831496834401706420869662171291479113600771749018236578146084608886368256067582999781556602800685954125147194293433757891102643044082451146288337303819005568542982671825329107263969657346511432122351030801339778241472548286629672634179331763070890918176585592065163871584171790081060419134554144612323657884996076335384705204225580091087085560549614847321809505801021996454456817822994799323049565122290218163898702831224336057983909238471997268418727803971626422912772502644361299457657099601433632477912962461277795242627355220987890971470026471607233635681636427356033042326057614945176390161245206910256054740533409049368430815253848094847123615549375000923715730000515753277392774766683159013440644632610881534954820984615167441729782319756280060454955733379713984624870771084272491926877587634344571268197578703322110167943140321612346324781901053572207205279812732475023552729588819958891139307214085995235888015115721275364739386483725984794857876978265128522254815868931973941878497957865648144131718697444094228406412970903137942394395250267467980122052116310269680051496984090616133349978355032445717974291066510474773923088853874156974906822982701306991760049032825559204703741882035444092228503618461607983811976974762627972250883850279215545292879331324098061585661969377151891851199049031635301909316561927482982416818575840296148066336172845164323638991274759959807553699177092621799978739674382341738675949363193895698881755218035612842241790728592281819846536539872306664652939911403584548415536179626533850821534742437753884618844043846523416445111132501697293584898880123749352173970997703861444355126147061488200279221146779386919491126267484330085462868843297579807210303219551687135416454341438893835785592366411796957737590387433036268300672200969343886582130405718453020924803611737203341032466149587914045924302402075522481602279584846032360598479934806388121311001850635596998430011120663196371767887672559589612535037497155142066507693952044985492129978027096717059370204067687089430048188982240490717923401241854969607588785117984232039558322458239867938776642093629808671984650537315778051152302988151032926444719179636565852495054695274341992243817252194798505528089455266495109205772966210285930706815969878298624475846633331557000832558730670941638439149205226528966277457842596457019279414582136202941235172231141494391332875787200172829989633512954628978958037398795781070162890358021163644765384903523372314202350508577744682226066387888523894956703707493357878187307806318803256134605264997046540584907794963799223955033979174633809920914181602075196632814213951496349701808429512899555821968966484208957738038395820270316695207521597794415262147579522394049945181531575815700122797868068521491987934580259662397339273250110748983508338793340821641202445087712628643512348704409272690624897794447129556116777781218989192708134956166560760062961765231746653782789922735937207701406779614149750106303996066766750606050947566741334341845156205182932969935586716758372723602315457279546519031872725788263813304744229812166973256825712542263159720135385234900659244543701043227368568174293531999602166161322277857117998052821041400881020278071008937847621705238455013872007739739752409921171951157307453756530387078810420260380714117062316602543422551035618984693270087117563356539462875393152798838485496161179193879204603740980754747013206457939662454208772800153645199706785858598406561084250875913979857779770452688036910897406724534016848217451914359438412174261458811083408814053242687531316026433531459401779713031973533059034218024526860098905646887028589082738688054025064081795198283793203837268086880397154104446576729683282840449847894810446360442903341434313393147679383788324351114476102242485351170565411150127213584800208370150013799260978849183014297912631854275988677411298438466270418810848651848803037449712272500598156801804258812501296192517256076246136745558159256252381662377103716792258348068968752543501493370895437183906786610371320407733171173729830105338353607986923014423234909311986966454392765722156036897000550877255770084286685515445218667075839781498864266453853496477230985591723416576071350971757228319449347361693104408723211074501934210467628358091070460051648458300916572522810293605300338838207444311605302798451521205923326526862242596474154477690081214358819342079254596485787376106359663123988637147558377642954027112834963272318687912527889552086802901314870194694868106511947397731394088240081571364114274552073674855880244155438826583646194061482530786615389844727333540171756578242884387476980246795342518110694169796261873857256518761253876227019203042821002730209884007235048844062215464101091364862621620463826467258426188849519707737355980271493464790929480027593662946300203493254202553882582768462362821480630707999695071786688117981765139448062849162492031915335626973099699791459815839545438926864601490155376708316442777421391911697088474944799376087723824861856592895905830127608726703697175464452225691685127565529901822716754808102405212953076379052128739444577162729487119979904946435164682355061127207932664344185042154556672000551269706906424517015931689529809854736490486532202568361932126406623509842154297914224826401898582700508406616858829192344324647415072766004984505443530867033724771515170036949987636880536337954804297214511311240788995926470082361784667822708896825637095788991697276780585924478999227096462509180696459086739360633802243823920202212843816386885963302426409377316350581865810926466134058866674781609243142603944698074991242830681919430249291065794022879312758985496042498265841089763886030236115407046608007333131411987839311351611355027404638307539184773585816659090611223559765368403910452766941679588465455747764238210922532648038865946571996796281946509978608670589834435069141052707239171359929776057249703401454225476894085615195727371824863707114319066366885520125503333832708629822851063332256556328896123903435342017765915999472667432184181473413846130985831584809038519673714417342475989603576891702395832584565343335325694822222634761145667295884560418381317831464827989910540122283143718316313596200281003310552567759442650592999788190887933241679235723982457175710020373940505411755765190499091995039136698974832378177550399413593782008876475694144439556706311121630037714329384764919683881089303174504437243564038842338334234089260298579032189582798226761715414728582617308071589608684891813348486402282276807555103644194807573648630918060986782688737163780228326308886802922568899041360453963998683105477036455188384620882549970281359080793522208968126053271648820462575599254474913581506179015248268829875676566402604873542463603037752786208657392778156657943143504395838924488148184929246375164930802200628791248981571041469649615221970205271652844261066476421375259842602708587428892865690004323217634575917764413605578833837372207167879743926614174212611720489432728470885853732242866785030686040628118884991188573985463849908542337045151230040579620249776852047057902392020369362852661710247323320938492309185911986905079345426768676926207633708943849282585104225847218140906732645640775494673120044642676442050685102956284221006190679147227528188838040198248539078365069997554576274430643869733946219478487282800669201720462190896798300227354716185774178326837162464204562069992333852866927172223846789746304988189906556511880281935487723984456779725415342016604355251243641492300962872339060378077790905876406212649604472629874881823313602052896665510672504727952513361724403160068261121297709846156027500354550538090458144150825631112630140361675553798214626993859485967474057283462620706043372847190101506600485044496278770080035540495095711815130253267583000502678113683999003726779870864856618363610545258207215296456243197426452046914945172784661268934905503908387088581049315062280293709253676572271369726783835038697634959315322293497649446929294234229520771216847216832825750731086011709637560564261829267429996145820823575663066393953857574098897600049680734162260340747289578233627560237288314656779699187332547444613572450663395919152178659494200631118553346342132955027027956326335674589166521201492684055687869406389818911002421204219916874223473024103314747566666079340320356943613020983659096017563872079557643572203644807464948945374401758082227508618699389313171236284016108110284878789915575506694436552581703438789062028621732548782685980175951894750232766707376269422347792939814219472785787662953313347744867119662904215198225250838504186048716758805691181197111910644395278932428376377788841291496829080174173970512380275266093373167812435731771027251743440073088473625107048503044791407991689337206512019471182399283137680008651182590903634237623791833552529802365149546064439142457586836584008527757788200295494481891455303906857386218775279211119660855188888338501870652910514293900148235709836274887800408346253221949880578174963128257513167651235386592007348974885752102063242327924379155445830498574039632893578770407099114726627855012591580145275873790939035110716645151971605345126563497881274690498145150633952025670354353116604428236433383934096081433846582906956689030894632862525789577491415224527921003550621749831207973120616172081689746085751626865476982462829035486289845001237133486318227051179201908865408572823877798686316814229898244383014696811241564692205879696517627058831132343528329088538959661485549185818806910979333382096083180177327111924215950036722117735082093924403074577591658326370602422548528155983908500981180479451623338501693800971429467604808325812219429762473640459397245496251025474044655864908192639384559778354444701335168728462682014041488038491911225251870058123033167459111994966108088657109493801226376065784898456301001501647426917994218256364527264774137173875317411850033502531469918291485983732023620866635295361319913706835123892063538473916915800836000790739306052000431859807566541517741398796523828761272330185954800632752830728521495307675921493767937471620299844535438204738677676943043063241817042219640975039114511934432488951266712626384273636552061816367049715189416033533592487220585469720624541180477789708087753899862480174151182220891234815716334660967648493574653667027471081502095885691692380586714490551334646670316160288514506864576176142204863593905959494901708944367641873586667800567498926219113989495516699225634597335686016994780137761176954095033953110798023444568871357683546065028227485989751003474715075241115043865120805377276937059905669874740506857710956844959716223298346205618192931041843010897493246492440898981640235334810007475177693856729031340433833807868443598689971949505125332639147753592355929833294121800847038350598663745292397293402553394807120428588615630276148108838493596792805819794369425401755674562980206633361114033320881283063524623057807438403769220864698233668763371213726067959361000219681763486669404443618252888004821226036338040686133958104719058983885640137557067466713224090538086698741696965528760755929792613491600049601331547978315143765530352080280420377114695877521090770358466224087645886792621258802433258455177420002555731696380199207790092660680789291692448305095835408935569131426293165039082416259499841511169857240845109659642188883119460356517844801677039138015998325697855077623837187162498490330520059681546215633990020703219533572883324682591357682171644918026813324515324122774215370973675639211612011121506458875185764685324147500549751005670940425919303255461152890828198244275348738533074139459314675579493382862725467202761167269317110994825313006029636080904654154711249647303014487256035109168281028131370450810232533673857113855350685214753373980088549725609246734636374814167810684889136348266324276963775197205160977159573839556339359672232940082116288570568681644066893473162866132092890560610262416824777705977292313057230607081211009416883651661627204634500931149590509759786267866909729215555984173533561766204708594747518850298128583304021877696372823883473457449239045950524074590046580873266629895123109462067996288865012331384914181597853511214815327773708494321123124736911334858416636817365249910374294671726840377008804795541915015343826613717876067113433723794289620420391759629732054761450965095627169906681940079933290021370115148805508943236239797068498754932380028999037950292897522748269304113353165735900453960271310258395546569150538791417282350363028018595095621782578175758673003429594296928767548795288959200008419919769795920454242861303022450353663475650461526829103302766008831519222160123733624209819699918651256057119662069549373525276293759884033690845382024565958676079644449634634139851647493917116483257398583549627127209177257288804200522356973960177768491847040939804650015733028983046286537825163238177466583223821732547537453696958939184624296750784729257395895550733981428464196839618679637586471634053608735150353601324480689028110198088377315836147364060743316920569052275269121395629601367205874853304772071832831118504943962341577362141175993907379426163260426784512581781239003335316070251741503529931225389200906118074855597744737180829157363497635836800101053332605025566815189940253061016432618224505774268360881698776437912587254124511490028984662850119802063274271627146693411549897895385488807638149960035543876020523531278479131123651845727517089552328815468915675588489037039704172272304870725528159936840923923492028733349700276253773945831667411990796896995068648304727219232689314386088011492866645618671534492503346713171444310889128491471558186653222662770959277781118538592254602990652996997779406314444838594083221028395654023685745245103276022546016539765209881306479332037926246832731093005101245940759267947847856209372506300563515178805653675958441044484554153260714196313016447293242341983107518493622423725016980765413730481695128980651477325013271690040226829986403869836798339207293537517955689341025849001490386743068052026889311686597276491954771293480993228377165657507954245966665822077683112605976528586064006449440839012874838536178043328110562704105974590784557632258947602314187661772214048278368409040290693060128868368525176886131281589205042311395146910074864672719989841753417572080270627993819274052655862793340558778103541640431299103884992123562347870658649427581738574268693169348407058474436942000839805240189929242060325485327472980087911722365277787600433105571908029646626272708096849544632420014528166394564527675539629905652356229885099772547854377784370426267448458942209122034901717225350637156242998254143573112377364945348042363745323332837441351286059707832625318100997087566534817966780584243156059651396536862060183520794641342943040975064497941059749432587732042402482783414479334460874265555162836309878557915721971976475525871210538075240313867565423329999216506838933485454344577344586559306647158115423919341336045140542277284131108031425548955230286222067581131389062194394410405794941952692401966439696955419811359854855190571049632651326021598326431241946259229922995606759443398890863876445593477171119226757505869442731538112568463733989061270810746856620992192257226053796282783750186116663517984643338367845903528607192538594202989548731434200623995688840506280942455617395981929310199410750622966507402047231774490545334561974281155232947743042659136078810551890461300979617487263263663331719478191694223770115487803559903380831725734939612839929823615003509576961732185679236086530783760616565172175742016290883096359787731439639638739027358203633304688886440767873755247330866399825224925725952169170084922528845199904222666406949277769911734244232806721978429250128052589242591640293668668242829995437122580255374813443036892547579317020830217237408257745060911774524769926042131196754502879167049851090589453012253490688311650027164982930426061990407447171759825378339365130531616773033420286501720496426961018622530257916209003352296782555352178786800234835938997742442569242117431007284651287129980720546413295412261484381835302553420712011090881349716976359912025348078800234871394724060429450899091985392453636084207958088784836196152061231825075037916546291847320438998130332736616243628344752369235635562761630026164456244050162202070016106680320543502519561902701147340877271002518331039978284320913128218492806156785112729721697752271100344801998411694663094672317682136754327226372004359647632162164719300357925759733505102366811671793164312466588439962914074438180242125569652909577913141743986955375797248258069739348141322414299124513039589617127615280652896895306536991739458992567229869960631363393355435949931344373014079981374184255487130509806081126789506543711991060423689680274572397597936945031665798508281179842171552941394063249608727996972008829942464057343249725884406094629378847567366035464727717142649673768924235355343209198357245970359768870894113512478772193990409772464391780633622638864022202760753089259096424129523652101057029634686125783190377646627059398223390282449572376143570502184034906127894560660245539052920632530127742692419549332915246360104852114107229977738047492779565177143320220823187172723989437334724906862990760267741157173204276310634628914886470295362970704495575857817890595729190358442151482229284262941275404558522679213745183753846150769505902575357784219601222971479024851954980772018267325627662156575913927996281003031485681236045744387864571005334054921530024217625654730465824212793574195784841355925075963886837749464760459121733516435527006674405754262746151293310244885559891717354424356141558831295144822807817056613526812515542506689688933846544203525218618923173278012679687374081902298599406606760250405865803619841061733929590626834662011184719893942494053872976406215551364958603932496996871103701212495280538028138791194197082577667405266873568389513690959032388219728805529204288008204152613926852240649316949957820341645488278266779381257172785163390204670139988577351248312776871977183270046409601260208535150562570179607589218083753376369076252526751580381674208551389307313020894558735950058146959439043068669444198049115587210854672348315931003523958293392552858816498815851815222626829202884589394787727397313641084169324849835459890155854667114499666302522674044823183413916556342906738366152479609804395524881587685422791052853945120040215147774137595049904312016244594821531086834370675525506463989292165882584389305609681166675677544858159437261535374174746878521238822832671395317358123440187707187988351839443337847594067727438126752589798624154309147913379347079205514215382417403253729896294758497091835944883637282395039136830581732689121179316896404841377571453212029002764425804813553293420722777021449733868598153842236711337758620172241312968111187510231573398299546289273799729798348918762922316964935539465087082336573424459238424109842638843595594804954405330853419236681841716383606745241168915448813555385676485468015701733643733815990760596958979660270563451457077817796317835010221315432935265495577605896091014588027941463466314238674623426507507917746110483258391047173072438158312585374927246961162171327160660935631075033996054600222685379225171094508920668665730121301423416241713834552045952910915556467282460417436322323986163677480701057820754569784937635303878422512650943283214646964001867010490027886781713368966146637152743262921846993541939853706738034846637099261281189534816614447136763025170118427067311127146572295241047554205740516364189293028364224982443721998952944607783920147222836953784256357046048823397933291475535194794665499141706937421024727700601497356316976332719513248533237943149524960527915088831267091368854934281351167327996820501027966346423290880467998731666076985206950224254204435001577061933368542552028003525595949202713213982110713040883884397132137016504976628990767120638991151232739863820487066228654335148109360742008733921512983052096667745944659428834420140957830188642877478371821660648038768880335863671865061152034227941124411573465552053982189072463383818675999626145145243200352009054729969368957034717766667403429627236491547488721691341631422668998487358053907450616220426164216242656186226578423734677059651079341425974393632993541358050703604401514694273562328141130832427161223389874899275107121006360327503334332821478054132874123035783729362802265613175674439752556429744160621138959276331693808702668650605446206714142403090394524926759542856588292505001727808356288411911314852030007753106732189303189561363849607199364785852065908262273023847445801046404296560109494347876043294139001139494891748784040970882113863522140302232743815604687717045605972003994415788079535778589245834563932585217838618301088984324898521565382951745893405925089459101090352992041583368193631798817377737929014461625935411370013775344651344096841843335631378082840287898200843564104709531941408197909682638928297034301392497981220194570471640764253644476934715914724135725653034275056187553753808987150437976551773017002807098956487115526061911254474621087772298583342323581558539326109487202533863942707303454052667579543705107391187192012763998206481871521476530428532734789748487740853492970102303130263540917420672959652680382570839160190544614843137412746865346508098685309558563607540410664538253026379535624325517771605305269871357955410174377714581585485436105478289288727387644672913176466460140170775669979347981780357745121988804225115296085292748419903860384570204600373518300520847534085818320384571360675705330190137897741492532829147862874948313861235256270676061851888227909214481478262473645763424394329719944547958631116009518058154355235837791748677843247276682448966145466039069727591713282408605817357718416078155754569503452061476918339178170783337821279862147248853332238299377092937642884165753807757043647290364206728323281922522562531739532618302112912638992133574867106296532919515929460350359948574042915719267467555531577729201819628945694698404950200642359963598121576882513429196790917627095188241738237683942993517910075314562749664649709183110141367329695056923000085509899446227312006724769681316799010857899293810671137010814091519169290285715063388827466150131888173161497004363169347927505842700145668589993955918661911135766153685541148126182120806831169763556495928980772361969736202877100426170038425938949570442653023960161255839842431035121174487929734945831667661107024509206371409601482117308423388158844444200572794157110299980972719684198942964757317067110813338946526144558399307962063522404254251234321572917902496106760080665079797492109786972178604575376829860473723621836080489542992662574578607526076854132769505020728688445650297906724014150131437039458510243015541444921080036184018525072214303130817119050928592416828427687300497465335027142466968782561636982312952836731276420492890791306136050982561850294708399153520063929207166084505492448504914935491062488660004048820915198437860092876365386710302052943380694903429112834836385082954410308785174418017492135791758592578365939974959686074259442769739532006124172603065418657090174066277221926925071871712388402495704897081732205961632671709816846810707572596495795613112044628023685132562689416251400433158865593273657703312429416487747571564280191591047104872418890092959882405887515922154874560378888478518279877649995363622737601599631138499007825955368855775683486904262642212068984644863570524095261339430541912855391542861815477433015746563448096006282945961863921915750675489689536577982925862823223738600343300589675118177455605416550101692504565902835679057803602395963470796049846290951794609597461250448017391181108369225572896054030740528302199074004651208067939231509882631227160027521903939980538953639979349771127990621239996055219406491297643705900277321374092794203668377352258228338301811078708578645767941600895694916893843677412564106438176941218795696104216005610991728104160616923891144878778544358841244047777434612515133558196926121015529507024932495540655863293829143287772219015666008541020273776038455290102262796622835242221718423920043791970889478230787541144815823028724417149955600374292044429694342584432740947746191278965551324566565044580782076774663891264103528471585194230993413308309699725621619461980622227786375699648215551867326205988102528372052385311898054445660460695265650370320082471286430996665880904971422291992018663518516555586255325339322741339984083811806892270102382595643653671413992360126807207404970894091424036156046970049286999576886384163640325095616911583123005322286488032111370288816469128111947266190840534326401244070990972954788141064954272918406748054397054050788651916111069462847527022356405477529197291313231894789216817575721423822161380856479236635417815140861871761788952402119982595044852882910127203824150608137170527544973747517763358436117086973608611530360990557728730150327570154405110052454870955609795306415967911811544393781885470451986175908548731042494121418708967515828158798199205702659540948349811149811504849467702307692525807484172897336692973688079887784886430603701520859652790051174234558072297026588305331930035165639985133955785187134003828282031891665507416464102771478369827680359665258564210409218404445840510895381001677161016201486864754972259677547996524680400645691963964968479123381633643328862658290404905592793207044351550449324777664726260992730130758086525853913677313837422258616250704968356353384707472942168039154185665241015995665888879469801029973799503147769477948660711828423065846620955399226557793220469778325132545450576551609253370669583663721571903660350083815335177568233466957927385836711093547260671809344833322012604797990741370244782771469303006381778189300118989758070704679132821651452529188384001192360760436657531723538131429477703546022870185359357497661481360306956888920789469628033697880938995775647604617794875549315232616278483912648077654590510588625865803007100693940385629232568764240917181145448720832366321197606258140161801829128708704140003099954190708296197182711661796512466347514980377713004773524900317735135707791775750573017300636012366345531844574357427991346497460361312255719262727886482775958192279587409166998928769414470347798997895765440548880356576244933960153381833180605064286111738975408905335885271521924853319989649565131070704747313066955007199456864721221182387955175793804828619414872742226734603856598966283737532072629716417235101586218128755637485412798439482545627226446312834616886645946901239058461364368751016546971254051518163268890265702331290734817243829767240250650157840544455934712238420196147917883424324045549905207143783714748131598464726016490078864548693344978892293495295971570988644021440457187461221944062664249966395607598764385701564059313715967272122593855404049468273394452853627021583648739637034702300055154996497216992849917981688263821448008922926194530153759387805162489196579142056599152806021465673657974510739823617127610010813182825993476154169914490410916785348253885922319345248466377611691760656280038196280065180253314593450347497967482674151487021654734863624757182427969526076232082995473433735381628157983226603770320215620233390053925453657413953750101780759713697512053062083904417769043342163169513643326047674074758139860472825598563484794407060236663286292661608320810708381020583410130744742551573337668811126579792600205709369951818815657244453507443645109046258138737795594291949512722462075950647615170096446366959625743719112591500601826740794287175207890083872560666881597188578914590652946115053972230753113175004388884737044867595577732208620419028360033362248442820549883066593978229609768818605759288813416052159763119398386345087934728946266106191464292766553271679471434576579474981912062749939298717961746397909115144997622652322932058267602937435305990270149099303201786017079665878079135420673620166703187908887083818445386293652610372308114682813681461180581549267662182545240855921828413061924006991418884067346727721281568299774344295963022852732649959711999232966272548219631926301518861201504691250021660986142902677401364178310865464369455354731655596459329235024869508109529936682660523425157757375737014522087333565853879516382459054378584957315429999509256015748770223635846440749662762260547089371285352836508033329338240435747477960875791523494206569693657096427979717023782566414111035316611903870887223428648310528387114201301922417236402149853489703712131560450069861451454724647026153152814823233477650819749521192959963441842397873923692837146981892915697455043855340168310993545316566774486397317110931303055586563386268682443603591385357709393371611230533764815066871753259218757054012931392959309811493787536159661052190126992722149324747425010420492851526972109776449634719209990891771871905969917358598364224941641823917046770304678378935643631498361171129578988066192474000258960233606654793559381846361169632960667596593052923917441541780800524321794254193145815101511650183669900533230407545379429484389772912921131716821259232161818883660708685757635668656552610578146327690176563064222207475427739582522026082458788140651039156208055724097988660837930320693965568000641309171876672151289787439707150985546060396195053752257837172203494255393602447916435528674565653860249143590090009244050140607937991512594183125222144887679730022676026737901907217726265038992296053005221657885179641842619212364322397397197481317342151254133618667459976315748253165005158340080052909690396976815485858121178174565808418166220127777556041097518589120139537394886177773337411365833411224234885630074833852415203612785509998068295729745262186752392648905167512210963874235022438816258444093179930264498916167948253975366377391091735432514871455599590045561966597055059613194415456163038767259585934746706026592072526982946246987166212444431097390042512984813460226667900086003135624256904003562366930238802467143664865674071375155875282877313901868390707654759709639381426669860798539068471884001796749330146417885562440717311777211602271332002479680668780863953875469777848029605132195770446049825090607728093827828103417484566904070002898202339486556295842082333094520969089970010971058861834636379785617880888700117816752963068247847456685868747587446950558905972092633359624130527701238597862195898398609384372672865793054275866047219496759160069331289882755803509599122178070066177270407576683143475795288536470019729678284570088199516060058005531754895662879206411526947335491567010861921053308059804988570104512145328425829255751325090427278363729883318124988667307392523464923183790206877076139265456804962594660127555725064655255355432128278087965649606692764724114329832346501120349471571728930213766395089093490589433333872614063678285009100825348135503752475579371558997022555200905006659975512270631483203649311762794216150218003516684150517094816809027817811853963365756666919065230347766973751289472539007417950770683679156895163093565768096691285099328580319647370474762406855866560774271016530027316109608755825578513749744810782157838295287663996917262808906567512089109387032423969656106996234217482973281617778354026803591469207172329594686909203435017180323204258503605970267370107366627843661557822811756058025486716227275514287782280349052735113257467861420955898037201101269896392609915200916709641458968840543931499369881803618116470014248331110971301512759991995207083370378383461471094774008844653598164391811305247070648155924522230069855560533193364069320536014156926301592802137470521398848115835067640059267403627565671810280166608138284403218740365232310214191821449956536538714229641834829879253459918547088332092575986500029024923620006672175846460683123630256448123836017300157186176732156892950985022863372756614596441561767004428652929951250421772435390709193294540036044341447063590669019092155184733047288473720563037369582211615788192938053103608989314213371071059870565274046841339348660806971313328115799707779237079804456785289804060865572574455771404032388955809787371832073581928295008438552118281182926242821410030284319811411927008850002300471422711847140799298962217576363730390560192371029603896842842487976021163194985798738242699693138390229670221037689171980776036036239423987885831087971457855719455518418299058474591429556327470873533842431344822529429863510715276049677010574029199803924507376629602233902501870887560457763704136652208983460958784904457501315920153769744062593331589522062693679005457719778747795703708610141494579142552194420235589891072817474866253560288534059568843386525581541305714953873573884722650981473861579911920166015681741302760358660659637445018817612091996667585976077753937659560501766125157517400284351988229432683785343028969798239199033834622558297613383036382999175199445779604654945642968115371809151117822189859576183566061345026931888737137392133186726712616885598813398066169464217141109551032983824591467801533038601919326364402374051157946025425036644672186671661112617854409520526206448996979407122886441684641021681417306399594870130813167194952517507204597706718395744842688870757593929338883081801313004644038894330469433289353256551234918643027614436532721475727869227877702701053743173780697307566511647491158800304992296967730372595755233103251475462406875359838526064979494926989560370097941438161397528359437672104383839167569190275337335816611942588744374045755732464404768010705706077197177122148496614912684586266712283665924537597048457961385127528700027536850212074805748339722596915662084287602266721382290893955370834887919348805772559832839678260118155491710608627448004051649369374488648548587440406729331335279025399454429216827875361618265633523906851322045980279493109064176003969754805654341337446645203033468149490941360564537565350069313051321750211756527831039715590330961344019191650095450466364334750933953866503109906208394410549040528342791664934656100001624378570224257617753084530507107451589579289588963007599077513802615408126598371038403924628496941230867789546167495371071557353594216449911954363250757445614116625664434340392891948958183209462530338702838136762364049938982327569798800163252178907203987382622329171574409213242973209301669002967827966497930818685133970234275020078461588574660520312561353451018652626600135938490405538000715637870930757175138447937325780961297826823401619677277390915933637275731789556299022594644231300764910729528574777921318594928620407011978529720236416877758611324583624285566088801473433983609804103076386254598882808170966823673645700126254055809404245862200021958443067241248835493025096334009227795220682743723440983657305754620581310543899596874260483523636809612028275277134789195975970251752976852624212700844429372513253722224365321460581454426888969518385846993191956388977681361199079275782329159689921937731483953336404396294360457686164117088593839679534052839629698555409414460933858834291380515332683271715930940700053894463889714831369311821661109411222056583687402530040490233660985320914202463350300039459522681727710653461478967206040418549926042142210421443312430257938637484778443902470600355066244475080135914565037673664411516471306617855677192153608879412220063648785066758092900530135045941309775485990280560949142155264194367100430497978463901272638911533058847379319518900279969634944120486802166351448315089249400835425324726628363608573833353581442849594960031352057960730237872873008390273469735526695866809693097280604667054432339349404915803430581225037769830501625302635881522663631389753379607592765122525039392508377796995196267016658804355336117759022282541418441518254368308833491846801294616611147596966361799058818302244298862751524313271006112451478011458018838931074688127545974520527293424057582910972908799612546172302933093740571833189601455721434223249721607147899906310166613159777841178585001186368340477028447529118384234305234926106025141404699540174431394681900326939629288045831013509979274591439735473301100117812880005237265277725555559354212191889054798899605528400394420857279131311450156775682268967787417076270155968535406025484885245681071077863782871221022039599541931975734807234147211248955525456121959588600120501018071728430381229731575404246837951331963505534705564733400539616259708483613217204611816894648910682897075010419438906864753537350396229408928244095436391063692647151734817854843454355656348882338072597637937351799034552138094568132672163153887089639154463179669437622332045915123122295548332433239308530052205471179589347489910187417622514530052597285896733773308697224347799730373211252334296430917888111116060115812725881291131248542200666667458462453290370649518527644130621020292334921475348716245346345583911093088195162137037912393553878583007441330774468922898492081742742385874849802305773033340492862575082392490310239139236899164511296049021226255609872116759253840480114316747637486235637313059342709632017312910224169468325061722855506100672405717837897442450415422822417811375478769278770998786018094631304238299866046067627592100070243961804593359400105720759357344920438257800055637247365401362781052338042701105315502284956785146941088829496792059419562766969378789749167147740003625129614958941268183012021789487112196144148427900643142738813190200623609079826438144596462656629923175441652951421089002126535036479530068045621037571229196619956363615758049273665480879345225480236153056903275100884341495787373516860699718191699584037908960323822410167382772186716587894487187081234778856373876860874457994983856394817790747007974361922456818797032407450051363586422335195142453976049527664577305811129237828788713252011123529605819019221410959654421496899435004101340745111797767012155923264177080933548153006923967221450102763599905365562892496566396211198515478747448297734048907637934666034629270808477989491207762377815205610462757556308924665062825903245320260839114769085518387057706998681437284754691496597483981914854359355988615144891869213618467732130960956959847366205685985991440544195743076234350995590190924573165913118064528440042984362347051538036216323996539629228620009685355275801045252497753309013042490132795056260046263663332773580117143332239551581755593746400942809746303144728094555372526744549941182479095113486438043268228796249859784940406134298856794685260741849962463355096915052701369752253483879887316276597056332340343047468471423030135467013051126630077260690431538377737019277134413390948460394372837264860413717516146078795056267120320380905043424517913537499128287934813541533657118724440571560539443199297489667413120856917661219693987529247156780235111359486388316273093599153893482604151337053157914819493174187494953491565564555883675661264627651734014780341379082344912554236600676465838928790175461089733825188045684136915028351457080944961377556627984999599400218138785632453836461066117313780643013692682960907308892435886460613266078567523002642935813904914602841485705975211109315557093768221873245581269237812349252970352914309490987339804587257263315402240890177168076868371207133209386068727854188787497913965040312702966797255646227931103282726732587467063351594040237713763239020046920823020103365011045133117234429153918928527275489912607240087329798414157718667138052559649220028991415374726547570894713411161364087907307607164348477548478668636772004111085844143063313116718503708367847515709041004967830817707575273108686474519736276171332732478669237769029322947043036250189156438542115176001649107451945062404243894928284284139945664771884307739825004891522493717625659695442234199105926457210144109482882417656476684123214428741847950829895493964138532682149600063640789341474325054639488819572903110115373517675668350512000888012556736143007090091444505592017070217427999629445051631247593263373716965755548564302021235310212571315274161532897793590266135835403188750067021784095385105578826087653863625026646678094834430612393435181306075188976574218126416756372722741050169577138277554326473846956375096427734194161434097061239364328241750824417272308608173431563702422792293677909221411353838623787473066546174249817650040318798342871807297771470651310077597882820752780832500164369281839115422007648947722323327723326297550456449005132922587944936733401444830463796401647041148521985528129765724651210640088645878844177447529411015763738848966847527844611363820750802350922173932949214262849700733548832632817014458538805445817295551698867226134659812241809209761079900667194158490653107545040367464047606841557557108085330476877882090266726339775650971762017363377873283530274713052349216516065518412219491720473546054895987470494573187005973305690035193594517367510889743587018819817098810950913113104701924796953757599559592002453160061747447035141853811172826537184160907873300906806871772801801407223385220052075485830314447230821140038796090139016103286091467019530935967987491452246618498494688338234379874555858560876353959995105331925072868910004474366722602264107403350639734494499555124352418541288806943977923494735755222935843996997361065754187000353618763505984880425995890337309028713135626635529220108204149148966889941445019763711299536670520813802573902748665404455701436446437163473890861634715963197822801324174391801763693902981439911202025319558676313598471926506098809667140455012190181170044386495134716222923772443440927363001154027640368072778447602578703990983268419959043616903721877625802818210830578354277002414672486458446768271447580425279503946871699162499220101507905730831792009573687114799288901139393991786268462679965538489050666249028042704596115347242762926613748764119979333032828213301232632051885438817145741823403526627839037154344737694441524055530277341203618542835088489614279314590607999447303327600872374004866682355594140184091587987771095779956540519327588497154612647716498507956697851414567082080481929818555725751458724029826349641739283427066997737737770610400352040627876972026672228803454853881174735539257183803355993823027111404694891267276516156483891096390881016766834289450940722139426240568968640483230554594662143050205737916515741788291382380319360390812367535659210139154027499504349957711696043484800952598362687111150209168545264804859819259740099714456001536477834145279152058028295353905253184334263695151881798525320352468942488098853396104333147255986786926768289011257625308928386062526967074596545100116530282183839457609763572301219071030952525645322073429146845507092626073341304052943914713959958180382710857206482811936246506287065892922111627714558866262826540542077516204390498717234991214845063339714539401915598816228205310743443721919550629744264393755496729392908771980734383658801442180327617245039420743509787066436824010640109860562962223550143952133440652240635086461759556214257871118092445426943196707651630858067625337279228098924632578502044080495371172595579283310283026537030228992771299725554487940774928971674071054855416739493741552486401362416162090984182185726582966742340491078807352012490029602218853360404632163190708504571863947107379024147448863224927134075857926656571937159252537513108263126723754203976276091425693724443424477918783547977710595489155570905431751974124296881639503680304613433708368855586628725387688304950967251978170738674202366844081519282631158633770694292057942048303594321357474185786856842149905012373830385540034953581542499607419964821017985839690939598112871639427877681548580508163309926015984081960029262243239767259479290651874308560934575892895805760273749778947445600450796677032703272913282809929890466506506670765373296695074814290363518443502481186845019092596520085385126817738506304272624739330533915615893032951353483010719062470346301362426046493687314503607372074176604565708958715676321953982079991373247351868220160887002087900907467385636927136415465399716039487530752092026325544861286544621711277974239344696834791627378025628380394405832176965683539556152652240982587604399577188261803767782971558703987190267372517903582934366053438007131769674384607151958857593307454530751228807181004994068380094121683014812238803650311143271814544066287382854578844221261318852294126432375179206558261715854974917497689845776800196893918569214526197638974073696995614141488159085345098042426831173777571879262818863969217050614730086202820708809996792249959238089833552996774251102475364418525568965713058331359522368814995570234636374183818871892527932352533622874760275639470607477755321554937136949039551406222332573718311077458813269860183087189488679046599242422537574106054615851795200493911853007956066063757589861198218337170897491407457915205463535062549578617361939158143921148121925018799642089169881941541398061290735214185447279363235074905899165267547307122869934353046342625929140773737197016593382019774059493463760424235499506370003373140523789295897338298531578734225428950100624102440784126014399922772159082338020080425713808110280168792901292965672776209986875382978035823817016624907889452342584060004730054060198673108059019291663644723185813734475056848270662153569889778141508054656163430256388058599436948503107851362388406811111349043350974839378923603747424940287370919966094933713990174958597837648916994441322341666798467929633562682694038754568033953703156751756747270641742686523656454311621815600396520077595606936115624030187343047079456561146932898003287544448575467301447664788760885021215860190816023983360177000359194178955878192184544126999855585758558189192429203763223929146714814288414618782646860632593358679934516767774075389398672555540946398515654353694651331053393536642448705833364217601160085433011594867980561099957654923008103848050114290095147234186728790752917900501946695415896391214195577163794392374491600400116052735256153111385573000373628186565639657559421725532540677011745845044613635655996548342317865089337896844585872661088278281877831995962143178645479906819298811400558081087365582823266433966065739465122564509015575320630976762376138236999449668641459190038364477523406390011517619209960656861064614127875348092737290598218071990351890813063412950447007122199915810649716210079577875916325147781857098772141066637699726224653802445710689977026394073075049235795793920818286148789557887565597106689735030587479597180859553194955562111568086338468678003722611040698915046544838237449842160589389369141989061268200993192833159192661960583772064030055251133323829874484958981893394731945155972852677507430861362714046959906307285328580103204111685080980958053030467175882508201719852095032673085569168813630824450454531457607662704247392124272987548898720262752768518089721675663838761677933432300719452770879040569757774824212172470711639178480665343519640695373958595614016944044780499464158603341067038230511756414332790551266965673625617339812984393446300180469790083672162016025447983026970868653511755115616762459466088955424802019970750413366665321555231400972974864529671453904155911091591130127714056398244479033110142628191226575466272855766077393725582473823439202573852179396662985989178944315018264388833274874635186838432339940410590739233196618134049118140509809540473405007939657906498488234599183545941359593842196699905184250266799413298027803023903060073415043855647529402596056482778494647581812954642465826509762159737183889204977577057693098983001418167729742267440310193316703188894727370242487421860665012377110850660965337005585333651158163236867450590325168359007533314758663344328107700404361930123343668994500283378441219439882878909715746853039508446172933872356418780854817217971533545783675165675326175426553299511858025674808080257041995659435664772733778807772453799043276841304023167897123620705468920298923803032184207038316028636129968895829727271099729025834296381588321001836060911958552592286928164438157823391322918637021233653527475129132499182153193663720172429352332913304304578441593396080169526984027663768570894890038350768059296821373320891348034177472561479365985722010878561639080875140181875941894206196982442602718370428773300044207513803301705771545002139391893616903292150541452352538419969019440159823421110346362418379435957238409884681003257712269454367340297746880501342289035337015387496666132253058585726090501412454796780287260897403285770138618891988258480856055479317171827858885474652100841295757232011529012695372820897654770564770050704603691699279012013356540726772984040363730705523310031593849337663879765878309619683307674266893744585346677956983408194955629776367169028759502997093705560270669678590470744220558978856161733857003262319173957381372854244641614793911449988567916351832316405740689933974740039338525426311522447411235476791576114509787679736479945065867139686243458506825399034305534744790520794867442813264999552136418690720027560521867984881944297981443762351609533412499893960485298187835897699054860956128453080752020217303029655702039054120335495021018548135428610925052282475131632905821763468962758101838992639891043155975932785300482208374003778749974089340831767654292365029184849881224233154762610014835978163129286696813333387161769916026772507970858424901825262127019968126356588233786951375176897936938074056813354598230542790619223140724625392984920127175488437363501261223313397136016486845834936465817078430772771766340013172166472364626297563780568688843847778130634922189505711777582399426930185761242541298866311709837677546781407714861804628886151478070892112222807412580488656213638130779691457956081317677920766845516713028613700453967810918838442207043225024203230646384997363103866092156900270856509789138459456903197228931379524566905833818259207343554079470677294390569291260950965849438697395884348194052813993025536137242414301373843039989033378008542943238584757157784499856369316609410812028856945519233399068592992128056751913379885264220545569176688358427227643243455286820795698960051235357832425936115305736341773192568109658641607540855801154802078517475039515159845136984445460039319345136057192920957512683057034656398342779106732935600901682162149030286139245024028589644826163557380079735825245538488329185576030030644684927887618337862905281827912601573466504736632526427579308842157091469031399599290818137456184637323697033640551647912292533400164401786025752995684757639571316201831529839524088382275226815298473269704482378944901061554407690338921339772269155309323341905673450543193000782568796676536484911510011993803780017315436356307556617771605452018620834658531483779232608816117108776224680636778176778087207030834233497656990935666368651798493291545056747128977989321157747239770281923126488738658399147114745993131946569397962354996887013129324061618655093625913396612772403701023014013648856395776158121221573610887732572905834433554622478536734270899779711377441206955373167560745112782149306599371529118567363683138627861192406771786110832799867697862557237237136417562234000526290572216245747467589339515848515553523766957017068478638994225481038437129385836202259223708990029008968178585419538432927807803168538741634843177537268907026395307958396832511917330013976413521198864550723359885830544085434830565902400820103340567038100163106625715489837122028991953729609084359594201820911310179008799501815271903779810044910906343927463191520871920705606876411009142104604479636578753232482208832300377688579541396977503029468863465615868913095584298061116306103994761146666601702740816995160368300103663053715186700791825141684693008131237938170226255078386402645498699573875306700413169839656498021667990133690625222761307347993657538558108034179496719152475880067032511272027960676380222963256062028501658770535752753779963470157571623754313266683623904359530511071432113429810902310120099290702974420823655589143624644067088577629998995643982593078313483862067815791831975002485932699265354483195589840210243380533140741371437269965967864486450445856732758342996071062754538068836216036193214885924582362014812015915455522058246341447507342521371013367529029334260454950945282178691066863515422584567723706717758835624078707931766279859778439474182004238626979985769676336641271052805093965217855117639510258599494292497343164729008367852819628438229452091332476868405609418822924349951160837417106813301869842633463467100709588559011266990449435992291110094496735691643285076615125989295632769746367275215717942331258335171123957737694790472144803804681384199616525634252196210965336817767186189392645876835800200459211334018994210778308384602652702526912611909768279436976067733713315282931310820468346850052459382000747620888916652697422481653240089667599903218924716646142303467271304268085592251601438614704000013555201711348608018222762304146650699811108092465616534690315224229619658529809941132971415735368703741967588002675953213446904976769705127958252799667133018991803683023287447456425252310151797806002981934422271802495723176231920495803744514343612314770730189094260531867862383542207497162826697905490183904662100767045882377528375686581058015678687591747906782348734790635606962482551408731994157628653300144626037510856213042888304315804513107871168815322309542975309293947038318145210566092759898270552070109574407163388016724427447697402966371863968936757094252100253544588050505260750554278875734121670286028688643781510596858618753800327578842970349919066303194649854198240408629312215819463199188883486911206684414232195087767147041188219073199840428881625824810789578528102939808115754112402837581330160476288151488198717468158057420636255361424212490823217098015884358216861979437258812991886284771619650633419549941973372674779710285746766715569789504605484933618028474681346160635009515343430087383431265090043418765381295654087149603798485340681436852817839837142656835212431231818588053901800900523215458180857075182239614662062902932745331676459021065042080198054600717050009526678072183333147225201687613746746471408514561855194899345983608782878469366385978521594275198409014246195720854257268024510477057900695523652953973015370421416478380484861031444153177264239145855741026243913242498190668473867015501310228021646024061590211433193032896014597416266459787601754489709231507609877664164691422805899333131103607841770805252807426145254990686587064236965594045669157130083474195035453196255871847924410410166071188713744387853830371686635378206189067957424126334669878096456662988198802760932884422321605237939405920367762787168413371204582220661358163661419547095073407248182181289020996793292975021343452382675082956101365039487593779082276960086622858197455861385378558113215766850986907577282363724198475093242399597570600763668896304793655254300361695491722835678639213829355681375212603824030986003654066718444983591403232113949440936093167184168092117984914546639647784325886658644264991683487526793830711561318813686185850290066393941090703135732183514266654671060758624550466469819343452908235178729836184152725265042041314911932864560290558512776393314047334095266521826994600773329180329020788584523438434186956906257639089826347101947861123629529456716560495641581909994776685428191156040657316746199404869565476104421887256676806278034429019503740289026545471727535016749237247541639087434370456290990025847098264012053134620589035015399838051060882498848924474655450205973981798105265826141419097202242890322194315772165416588541517157172771275616396612347232162011791846160470774790952147580838932366654575664580312150870643542382044153619540204904034576493395894234281020065757518394856683902122663542922375928363650890433761299921955214638171396353869119313417585268322619033923678643708120595808341417277248265079208361449213015255853272589988347949405957412854711076531428791201737995086131075375303923795376512183514384415155117660653174110546295430655995617600482675170712171584618679996284312661819097063205724882601210396286884117064189629457523691427055623651956567011957565084364942361394058292260212946417506952240157130769046807199002933852579237568785752871627240336456920777734604906211011500776852276052184519323233828625593600479829671752989649355322953955157985899118940879143720765367475432272701500181221192875569914169325483404465936508069855392362498627624404639107333198430963187517059132332173054131927816025695869765234122130197229090415691758557649555623842041778297603175058997627290224623772129127464894011366314167031698427464789956121845352248588082962735972506093252770216931078409932984964513957023552682105964118700068801304760663414212790452919600591790181154265961619845268431083458866224748941379271681122630109273374313582514030355051258171981449180496839737471864024249164558144432766010991144205841531752375146544224712781179488060238090553066375489467336828726455138867462387296769041048918424184909520234835952229816535084101741332797605183193586007694359901816675015199738204438382211549396061987177557686160115722645874879951536534973175310395061002427770191520735505347198864331086128237433903254027002542531438996341764774466878124278794625345511928420136285208446159450050911800784089225564581199854627419643398900227747162639657946285191493227404469269888353574553776154455150859082913734665387563978015667114835509494029882065919255312507146655945241796600089388710389709828315051728393955754225304975062847455455471158483770008015649205600448604601815390850710952382355971000297893460923724431560760362576361683861389067020277917732129306519664189184041506872719439731701529975440176839210430683054118203299995245106704665079163299133182027962937442382103270765506333592262938237299500408275496763594779901976251431106967158495058981936731075869783169715146592294070328146930244185185934712566024500649030842191967579583095843357876642486928220311667847643280520807384114496484653844409452049121308844290681220901272130699042209667345694400587464842417212915422656713886850122328048849433333849177011808090377888568317185537464457806342295988378748254036765011381789804093774497442676983827186827120711540374231576772789218827067915277390793720174080713806278597989119677501698453917990071944728205770135952578569944532239455733561435990770254539885981455026367874073946381410237982296102947596899656613433611772910379233665033995227569230211811245962011621942220254244211839328604481475363885827834393431149059497969756761278316084842087599533810213312141551588545598690308054305618527191591136847676329886637588125168021696385299382697518396832486061865470505894582220620555713869877139785028746171916932621690245627134964127758537095116230236674817322327517338865746531962224875205003444950109843013385578225289703849508670587664620055396363493127468981912162076808666361929624418591944134810586821636849873596378324163970005126421824269753667231172362221997677032334087633686020325957656417417936401344972280232411769710829339020281322860817567548602223148696678699284664214724534412846839058668417654318126424083406497150196469126032766986399798535934505384688107836193781997302508252533765539397919836451943434955665463376098106775845210510215199607569612195339988309366427758741323107218623196898888003540642777211066583499645743702072689400061272583154863232309335828051930793645163863310526690944488444098658815992054374799003706669017082272717538112815042186548528219285932015980303314209203838365426301537560579994240546785018082557995536445000517004424037896269082259627951198669854645725050252524251558408909532710259330449399586415021154243114662599282163985064584167251425198216427101349198697657156876483356963850683682119674766001321455247889094629289416566924668074801603296365016104259335460652027906141234710378461363245096292278034586241851770567820595605022176191302664223891445016124787966059722852009113734496850476977825482742766360732711805348334061451060387951674219398133282452991939060135205155646664408315702471925957616744733006058926662092628450173940576467228936115973416992364614312450805974931034792623018937910135002534220351233365847101790209581949833408258802343713732512295283457703601734584919217419683762423185727529835713521622358247457763546456949127315796995480164573227227513440299825007204768433140149016824916038241664406623066437461684009053785412520769107583949873010392539408026054353699758945532553461915928005492057822323154993665913618560523880075700725719188257769654326935438869698843436311941355320797654307007675772374730053025895164736165749823398176736530927342460886640593818326574404555343328486460552208387547361414702533144790707732912526898753299879247484162408823003173025378171508960214038440395995099646233877058810414680515322979898281349749018878890674918038344990690193196864472633002539315133512478522772431669243864827896711845335210582634528213426282846409898457674230414069891768043997790018179454768403499781775101922476689507050476116810041197752989465224961914643388753863002484190821253621538852586368102982643357136363509364957233023822521528281229836623083172185105979304040538789732538604057635026863260510815830799200672742194837583054613950025570848170167812351553012842866891592663332390940236870797095221776248129844230375171763001607837443657531946773128427451047959629574578569709170423901316137700653224273230038785296388427291059733344278257088529290326637920455809188026828234401320658212261612451449304038929648162263483994516053416163760209883595520254285251220316872885508308297759209295761482561697774813189384459837835491596426972202576559885447707632481422185685820529634956004093111982977485702067807298638052323376179897661903566191941884768150232784997769257828359686013983126482111512195975823086961599076484292466526033972268130862598649778181041079884215232049216610518380101029635682926680144145770288165829127602866031908768436389339815419386692758175555874977987025512292319803067591074796586427221297004138402855245521016380192491363262088821032238441898141314542078642251868450023938909647621616371981773818303396387355928802187914397762290503507163831783829586700534822171138483886859058305129628644515031572625863727659961336920026113849637133134503508188472277363538881616062130825096675943305449575655113512210280470445340853090373264801747260458080030708688064780101729725970982403031360538018220643006142700543423898275955968735091778221067008536107194764366021268875221546012697431561218606976133445181519295921391765435513365460382808187167704916000085834027691556277408140899583392763163691305440719141961571669740437936188777233431872681455652604767553754027854983341071035803338294769943664306767185237483449458001028878582947312357315911239287288473279299153406311035276216812016710003433975297170253735099350136285129088817248244793123304181870762950133412107160400525979691170529091340226038255489105286395538322731767992385393163287456079754584635147508533397933106014426373428338210226656650236368915005436807753736911907838502242838390539260435168498984500055879968590909603377705009588926884392377917651550856300158461254829703063512603406389542952819918500719056787141814639501600958247543571977235501476027614522932385960949536747320900992013038833723683039179544786937792919802844692357974753969532222091730153369526984196309726303126781851286817050771795484267971064619653914154197056711308711301148488318253001386669897214184357620611251372940887219088086236940320909745702405220753772918317554055574052090543009955133797694037019798137081587361792368501129191704192431230668399429834935417595509126960439420706121725005106663067574617199957009248365067078513561539872770626910419133874767206028501622786285785050263480194233105405337364695866700793242238545424019936419628376846506382214899686272749070342148384379123187893873463708291943623049119063206270734949398999218143793752261866989774315707072496030640943011490430025515804653880049779677376645197436412203646803846470174023921997778862332597534010324264187307604695370215460993067214599639796885345496971274463901873996383689858661302479614305655853805535991513766179097515351336504606865296228631527575195776368945014971948687314449420921258898551605562246066217141047118254371000087193741943833716547807213638073966578928002734468524419542366885638095848109777469232519208936606286933596205002699108093776481945058291227265100515366811675346459759260258848545619100366331679325060483938337300146267231866248840280156574959569084488936848782841361601169992151741914676909146152169005795526254608200808316115304425363561621256293444773932703369965128562099927828833609736874446002040555761020156440033060508871665917310774601055724923274025666386193892770229869993722861098682797119261105095117182384372125766025355030322009969484178829583809147006565110986841276629916605670301236030957094770844459261931303754373961703550054504233492526618316637167687415958323452761191609134933703252713260197879766919059377752539298373830596469789176528990527695757027628955174727259369931435175348603031224864813628287899803506453876113266725950398657136278958437424890233312156790485019991316782192182144167048329277643373938197448957088586710617941150203793199934692570173419644510048887997169485794889732765618775849406800467261454637489392993798946587402170413942221327934466680282291847389797177539007670583374713227273528384108077099909784562940016537926455062210018367823733779043763485044725992514735675011869509640660914250390738725525930876891562095580593773249355209490644090214123916025479315011581934902264530418344808451116881251372906633021780144812974088093703534315441641660937910107548674300797137848319022499187350720378241737312166880378579382803472862570950465093092279383688866870980968021532574334847566168349912510342653635872200075160282280498230261264614221614954335530061190899810409526518005891956542993042928689855897852261801569707316756820371634494788632623566360706148350670444213337817459879003552792343882448710795585295352836330721997747646521046692680799062848897072041131745031282602726732974334304743028105191261579167147304071268849068526773745282026159066838406783041529517989015397394012172548516564092399317462995094023909240489597817413206424289024360212479589052624519337459804698023828515458369271630408096992169505476672154872653360546533615023249499603185635734428508525312024395607600547849764192102289251057134936837293745146724495665399639302673605237033214004924467997295184212264987233852734383665787262476202981079215185490389280720573907561333630640795369688681591731302214459872241633065870128168520514059877642681742640783359129222426645991522453993302173770176080264338510269935915406673081247071818316746820770853483113719130168034107724652560463371860862407780994134007631321205557792662322601246076293541241981755649276044366004049813346695969482374640449426782609885245644229825828225708362726733807583234380957388581663379706681510911898095480936650280084564955497882658462916375795204536533083319100199851772401003299536887028761525280891442242992100962745446853780745716520752011419498494446079009177259408200517641152864262049464004284232034791502129142714089955302268895319921985260641774092868656430269486931409643396647663748684552490461891263693870484767539274730728252022693142851799763814117017715326448945708903799901375300401927916154031268836000426582409917308378718313291389615837489753386925851539488574175720926201319453933010558036875707138068936591566713858332160006636766105143832882874958277297373029568376838178722201888137810921507204211053186928300404902701798547005918542466826214798882210335101599672214460417869724030151969143643619626572069665270551544450285651669532074235955607738348933435297102838255691809479131945091410880210209346086381539964341227391410886621561284622730062681854710374122771649858529025064483338057376699279980353508927405908932187959966747034044003954339879128819899505723860657629770767641047704442843729772992598434678365967588806218758671837448263281811146146651261295779451770570314649349927905736062156655108292705109359123981272319953417732845904680142840544253863130967321625989814005520610288826542023926343814411642630232126858627149355548136859838528474761967386442725069908988731444334942663807334091920927518975723695536127082786577451680248421543037446677324220008183866097084358693632821319640066037467166245498658847843799777730060973889798471297558180355856864237638519056867984347212460852694547367216825450822069097765824385014986206094863114345582788395828407877021816274832822375053447619641374762248111776286660562089919173041314752645025954663297559852258448588670958827439438181518601996422504188646804275060001993672555129686635942325073786372871377877186525527072585813767173169414495257363860615021614877070481630647476166730996388543721893785886811641028521504477207678542894659287341772361462531208943246402557461391167801726737781072599497739360264811197785405200261968762376369975483688514060500396600661156996561795889278012777152966544547873350416549595895737740700836572393105278109052890313351780207783291075635750519716550507562336140073683762742622682885011533548714679507357795048669578441043730415585316610553447946260471898520976847858391331959450822026370207086097640655311549886853681360809343558193652072708899428887827816018456706842554658438841819148965455812992083572054951202588661062707513991189861731792122565334751525772066889528075828688893411507891175080272125333857225818882572050657310881470945782348525636877104420784758356702709954838754120863366391119828847557357524729382753736859849093994441708178047544179653037151720761911621729022429061312918665099509324311303759997108517973552902716147245960677891153305216252161212330808330142810762004493614019894537261264390177279174780581323669774462031509618597141459156910975029211640319866331482575045239857271178504874816223379507332527185007343250366170984277902929061319958037076841171258062475300856229770970479330519656841917952650342502685103419301215475082050562810173351912455406147913901643297286837797921491667963210869610533572294625699524268651776018659161293014844433550387233721130187732029696627310547067667266656575126302607462521355826303110499844790464244683582657605451844016430323125921222495662997806215403432424533587645326978186312856988672380432170332651563174379284365860393877241547955864095464025251763968749481463212353074249243694690286283276665860032659883772441845707148253951109483708066581870149682742110502362363417800437425613769276513001618659190332248765761036620784242617250651956821746846745612528929101163950788066848470594966845214006033608196431726361222105705181759231471051832715363954735386447359764112553804182031768761779847705108467808431913990412262908821609495930747871120543362476242753096331742456817373276821518533245614655056002214402604903339755304510733204032790172365309225523768362884691745746040779427622090748067256066942151342406412266880482420789802847300488718265290688758789950675621253783456508869962165626277279162926965672097866154775290317332467763040458242976824491837784061158462752162417773588682359079728337684863434987842880533394791069898307761078377726159607754935592944784221600095706983640225872061318524867729389404421086864678301322713031176156897814284093103353094475872360386649381341933659539900398077528249433175421457561196271705285855071416406273796456953384572660530024257557550748763223867424054863900631092411379505818709522479968230802093876903530854094554888512245280723547473633710342723045607188346042733873516588765616899811604367805557482731997279738391589427083915757188158270987961854855418588872906311586952154780162124274932986206378157745508436573343088214455022617790633255456708858052086732580885996995182450940377804260944742638787467582496198545262114594522598066553635842182596717687043305455471510576926850814677366741898227787198708787901975087483741041536088333853202315624170547890100636522904092464342940677448938588010433557641151153088258917724771432006469882119495972455345867102889081106723578523193078075435623171876725579576210073622278441261366169879344786381247868524867302328493767791614758837561935673747384826201374425084464838182677174761700752275979618676944231509348950119086230235619440909073816761098136646483953317538311921890043622800991085533056652646222086840994000027649592007409849820809957735138305726681968386408942609927017848094451118406156128432885003346246214830617780527571917815750457522843124757936275237713680017856453580153476730982476931735323649669270278605783125482751839235631841191477221990839487356121929646910136306947204933746233074423920318227816998794265560642725363676372571578327509221918788248962412605296179240649655562405906989835161792673620163391566345258116560920078600526246832954354269759511593542454724080196979648142185485612969771256794186622593251293508054894506708416948893652219324500983260965184200173327595261764790294086923236976768641487007037714463921197687011949443489818326099890148226489845292733382082915745268220949931735423245038793141511725398973958100610838587247505023386699524535098983636073817184084006205294115026588560059105848148510675680366391591332202405886132404643974293448448966184524973067606049940356100102199024805833941244728054841788986423286024011730547068517715781507607081436425969749453450094427270024705541835197740478154325380909509486641113641385587118650409263930750869960668129597610789430894447728535527566298724365940941192782023527097913921063162589172881282326474349681189080860953053419439862074862283826588536442404193323700902685573251812841713446020131048967992638407387685621539676325505833630954469487605083889364167661266289439580219144830761365472718917494208822171614017339240973970493760681703396534964608520356551288211987063787435525552215408697317033083456340290524972380911465175244466244545825273098803303152086406553341117876889501585598340862659686595555138533126526619411184510628382643313493774912253142332569882961348791074617981870928815728921061571096250961745478991673093690980634724494741481745729730637416130059885665799078530868366175516638287395872847269915906217834124568227293946062175170028824851116630447230643643007293006921876997490200126218966029467236781508762989601256642092777285702846569679298930062893865256306798027078027567402295683809693563486217436204285560736861302914566007893192336854613614115758187393798098573372201455491897979800821539808336548528278238638327070428211015794534482374141021114551816445689856149306238459148069372070372824991993170801010183298947639105627020379343877258421475842575446451960489522299342047053208318011555012652221589882923559557172633102097254353956537968741585591405812390643511467320466699233219433922623148242976592958070039113764201862877666687598392424452336437724971395342245745343800939504155435272125843502222687042931479509167333889124491627216204099038696027543291427220582417203448053105191944613974997575459870254967508281176577352308374556937946327577933524487187712063340425502580721596927889273879314529828829494494338595837341310322361390625806635412244189936731394225030227670529422924816460794862669449208136200657361371578340624170388375192256966215509871434560842480027232877847029911692596430326972282338612780558953554928106982572429372486553037186833222791280983296440717069508576805262439758181720686108821743932518529223013148667461732198646915220064467870072454806447606741610556803684175740792714171178529820109529366350767697144104141840959585107800722455902142177335591000658285373360815952848015217069310222242317523104679989095819985298644695617503262449680915381162294846465604925112023067779423787466953011944673258858278634963761711278950345978909878607719471172081739380150516280131394543991712788276449886312840951634791029070456154400246586981441164769983398945914799892746909655152050697078033491071533894841660950332282279120196679149789325090672652112173188050884813217542600576307171373029685409870889843847305275322787594881869856200758904496236239079274205734941931910094470881168222905188326733918779628009460432869774382790139391345623628440484721090017347008043484199382951922383100334356017179097496484241416614710577675591492331255015656466260314892634868028251928960917101369831281138238251915463686532959907567600316136664297573620447831830468502101855802576109352059680311203867610579317342854704346084202288072348831857718946528631994626294866329756498603797137510724560285290812247649925983120535364103532427626775871298978888882246842694673960527031922302658578172591120284410286309765846906630333565599249595636173958381526270380424948483074492150720520269355787142919293758298039206315150858174147609676243130873962265725931125479179091122724685149814643337477238213707962674285748090811479477952788376346082071814390535675287893879072661083857479610476038143282633611052726527593513107337694892713512499851596720000991927389213504222078864208522838297191208025466646866922116131236819661961719626749807022913542113645372375569828157710259797284440870475470057194212184884243194172757030245622141069011736518037851850599756574854645489826802877037984643925048000189191181067707655845591933422019557970616577041019315851223167924011842218293533416155648634418344026623833406270329236470861531363560829842647907982915033175913986009440430977517884953905125264933067463683316915506801305053239133413637429170915550896110237178542110170454701088260543008699487367999129522963996057223588223071126551356687599448400317180416942927237594790512058774245755646307957220499098490931383203029158879832358108422151434030771673721224130170142076337893422162051991438933917219748834788674763780866187775427160967572854756695320372361556521459009247564388535743401630088951241313609019958001551781919437831572859859597910792851001417757436652860463142425130035109644342669362743166167948901430980712072111322562637223386169277220790946963966819438386222400028286487293950854706067366098345282551162373894371830651387670316637345105682456702850895911884043354646627314477963609843099067274876387698257889556759655297284666710499010669165774136036263482520130220869760669787535517653467464572148306408660525872918453256097859157955397086302091592767483376997396715843226044081690015545837071896585422824993576954760396625055002313200375995991980227801885557440031947471071258173723313937801805159514554044136873686922516340476108362777962646853381012940450941956904872920037465192892675830909566865743411320142799702788960132990911876498482523988784054462893244288246490440812178093758149074571676213969248122518952130049785617627078064174418439636908973189515088359779565092399173566792234205931599499246788635198433306929104886442942163726303178647259051872890688860654788319837780334571160855259195296817613017156576967349651287996204523452642300023459961736396047068114373756245535514757641262150002047822120733544872076546977303325323651883072317273394143390042862924582846884799629280417670026203403927983736356067698854143101262242848153112869469670253627897134897388663435833120931355015652167843292178412564425004854096191685522288673734102747266337976036909783378836750265057724328758640433100417764084129716302137341835092015696105077475883073813538909592975178895467089852733339853777173208654963691588085661302850069977806278673290794969004268632689780170103632162195491430896718744549281496079390976923400011875801037501583738692893753249271748152905266607063885572682058928695354006521360299516148107872117964046827725298056929519709095122711321487089732716691096507678082036131168732265324788747208781225138569208224788502450528498938738968641132891829716375731245370993504132593059735302287974930547430464352478077212803511892826529253950542775617054726510861145171165189711395333830892078967603615513477893896671071379340949606103571580241594776037789943357221669608505514446786274452289418294604223066785047795037757851562922093299369246293728613956281056342229301711667286580732764815923548883150490251792730672130731844354606330712139307854161959762315953132426842288170055001368111372705600467333261138662223751556731996667329337467793530949731659798375746748576576540349538451611067699933634293173759903782604273516638767915457069113174384468869019611010076530560845662582435830574677000195258878585983041599231533595696345456944103649670802759484436331313611487378731371167782201417339805220152229379919673507053413222911573815201119701738839756812732709592921124432793643723502538058770499562392518743895337948121742134664406355629815059020630408529678701232818793077473651466311881155104769049559626905913412112888856538294700305345186456903166317957891950393731742978971674608940984857594645751155167773380334418746475276544805772566797541213939549740345581660513734590430221876554464980807836576385267216197704215486567777909372156120955153388169740423875692837511696563267639655775500234884229007790558520591040796434531326827640084866697674335060206771806138534053280295641978051476386896323098503349825459917068360613685585870999255069974204386595558241265792113476352533400796381771360886872584262120640360510214075741859761385364169811700633425739047416884373783083818426358194667769343088871065440348267967522957211669630719257191880799243162301341983616156581997685187230363465472869873376825987620099750269924294067947991997152781792855056284302731348443289008510623684006080137789468488384267732981107611169164302863244356526488788285545881511195682954271443514244813643107137042004315213956602702451233503413081040947483022470581034144244316415499630982059859206184652914464003502290307322452811527187277889882745763595280938504505418760008030788223815674605774910940722648777581842972258149230748923711094341498188679308933568930728978886047319942044035229114992885861333020407249400596014472435673794094232388544172914812124805634989333675831601343352635628029529013283699234132216084152799464891871542620945105689700504191309481208461945971863629508538088155427006239267906500738341195792794977500621943240194163204439453733520523398439269653965392799035787704525675361757361567806356619672701064741212614860057329349861117468172758302783961155895122015717323068402891612041738984002028617481809642663598890954634532437112160885110978934558160063841523677697980540526213348714846662956410832769352699170792735981676296126003814166232017306400038024546575300483715100018167856082761876131539285175605944384326995671155231139823037351257604773779662732239543500489871245201341707394565371065555298102172936265722845840216083963328750113593614973399138746646567394180092166899314188377559978087098826962261339980409236647609883474766397961889375206684177080831118931276064218171309735348143839570135415930263662989931735475712335580433942107603674190074327935651325520228462115011608589282507195196911787663701891951461205590661411665897674033941181219453169628405760104506050440618158179505944394455393404580057534913711377467665976200645902612262334304173965504915828580518850081869196000495034709988579811116663049620896534308203566257577130856960849537588742311905787573617639539253719466382138045413414143484985918219778956511558372702920636691778396895925303835147036586562531808614366594164816559819411556819211656270769579267947956751968058976999362564313990388520671143604147167253261538308178776392206077570450287610194574050979357385542485918360280434351997975063692241237415589190047451387114021579438766333951523159104574972213131302408857356351189090422465003365073134607961270585593058708679499655141075278816071412894464561404512061787569316518002831514211760779552502664182705844579911878314804566060587863753072177729467849919861282998525234876017286582850186110012307826564924911688437079635124684736026844724189253712035928580487307993094193144502186425321796400937416196045050202708028447430155492553688847406455751996342778890476869999821563323451533884674999783596361515796673974709846340976288469687841751781784256653189578545066910444574439764854415451423258844468516912011952363221819180896863828166552380684217513342546213388041272230548858383492470041075084792333729580200015479856383580904709343344058435617294095866770192551563132593198712924817293694365498490497844824710126254704950100069593586241416718912276313535069137602904946110063403061634104865695943352945122438969347721197561422762088819533818954235107521375166521229136385386889035062041265915881674421860452505815255646174199328783469277155782814796558522318645626462874808884493895687174432618060622787814582145057713207834643690200954808677790533365185742707524398670080589934254483553037443483988451211225864726399967047327726568035022004419998009092898453062979486446718352863318191214852999723691771232049805863115082777795706230314732539748128210791933660188395110174943573561244854814550113212925304873510291281925220225280505406873068579507102270276166132053935065376070908299186677847066532716428836176512465541094140968962978282021143867315436894412907329137101767106958952902559317567660267033484819221311049067578866657458079011870144770681605075603346175893183527499646905341907671565884299976988748150429700039890945284310802239493427840162538901328568000661255702138444173876879371790981935061986518269810839825834133228570764784885795148652489553494160100645515968364530864862475632222022514403100079569158471182037192925281181362062166514669654031563654328884261749019679137049806020584462604890955039837905601205802731324867808424819928619609122141908198089215895935536264809388551412060001241570399413803050576405601146069645020005619267764386767245099970082664512623281104387969945676476302284488001738051417059113030368389285893642369426004955281252853150758915893027189783615110239487904654696287716020677076094351025425112905778629459202976883046831994425753997582149329572090086618257199323451980290863326762406078721124138747171373150535381890026676761263253964468749644726390011110699341684585838836824783457590059973997678396879554906530790887191911307751095574800387873022338465417800985454602174097102237325205355196016915117206278951640532763381728733544015002167263009787614218838268842258034967864844324747358678336658511308493556238865659478465737505506337858011564334402678824149291197850529994513763176719266773704791712815982043055865991764132309074729685937029100525016584661410116479376326089810698833079799383910049710006438577910106281655746168447344537454715424876068037911737655119254586679672633406913684507410973059102070663858622112474861755477111740843184371304816650288525610257067011328938039400216213851814859195117880588529740630975573148401830655386289504546432271328663033555745828491461769464034218099284927333500272205378641451610747809084498196130943014762835660293901869403102003946212582998649211072108405532160826626287623220225089246043303335695732679185941903249799414340611351050526925385013048046144479767806458666597544213861611729043453334767019111316894447336883895193699433492086382507275722692318109536047946305538493997104767638033245114759957294499074140272307111732395870488664335134066372449992835201408804630697292607673162002273499275625585156718895536572183300501326953478508215668378142776920818549858971135196286232558065060126510805460454042690318574887498164899399490033047691812662053452623867065874015754424408364224671721601437353567058573985094599898334140860193112846060341660905799671042494265555269034432597395933078032784336005610270908466866545597100213457086438671879576648509718040841962354872401937482263012523454408925940857934853953860682236345714966622042707522048786774045662986834422649266671055153260178968123071602143711326062777099690820104256077883168666216192902001195807338939406878645001025256630844395902093264510256882486767903500699934828822403200477962600648301414112798534576100388945918412356094386131977471245563900188233212988532209627005173177067027832855168911841182684387574199547582991747786636404153729515868991824067172503281484778799654073759053255572070484466739079501743039954709227562244690530044687367184745952874887058592673225210756632702566029560115024597575006950037567683573963823909506311666322498693086942608235249183446807978773253387586205854202480022164458891499435909941692719883957255809681025568055188497578262581349282255313057582317180602560490069467445765520080778431369316442460082082465540308879042810350230459768794720266035828942283708407137156242524821357248395771324369433822082708936700115561551168178296265105300647150456879767299333366613025049154308422585898378620415511355498894073579222020512435892246293479288201221240096007291910836712022541756762835556688895043974831377167825769049656717015599372862211664771779331403373023787130565060849311702102793068001628517003147906134298187719138915896799232020598471505318367930200127208022539933857908550361967847166169832745633280809117674255837119000297025025276903487621111823963220707342742239371851111173514602422803442095092862344460581316657481233884099836893198860722368295744697711204301848051815602945626533728820457301630944044450113933987750106113687423746440628402909892273409246719805547912733086618683793079681944319316398828607073868124766685800250963017323256853866577274438702504888963575441620192569682511211137814720185899200014687884184848259583829628051523585866776817863290323820161929665761680696652323507678494839827540863727761718962372492138395431625926423962858296053888448986804277890486982571330111700413806936168496308153323624031584889969404262484499038688790595044131765090071498962375344232066842816690007800947821615577980836166637383549058665980881332428510825877273837138406692236618303397981189787383466188404237911884159674804899672388984050888929282592557607970713017422496381477977489484644713333507943966107083024065282466669652437855723011108660968219066209299802763011466294742904972870729772123155745906017369004673610625402566579872013348445548983585656293034628260697743966253858849951662186728594618756638904439552131036737155536229834586102238818543539333672896067316770256534283289366551915164813244151250078583622080510648295645605906531672381140368702475214324063484147258173852525397927976411669723849886702911641562533296046150424308909564049289548974092448749857452164760867936680191204604495839879826560064910388873528449460096145922984712257964776940442037826778961528970117091534355560754566912546472952526534168402392027915733238588820077414853926535109240895213530323567483527166767426050624041237902187104905342214584911796871968530930879842278014068933434059885506895132682100409826943517036501333934327324048777827929067229478307283467611442878445924996462894836112637393245672776773155557488272562832998217964224657622509781915365884007287247453283984133180121277652922079005909300526828102857325309384761692035299756161664000545020233203973495200808332851102036895051379919492759538218854538432016647766332188481135147060255169996312842703314333255922987640796815278576180989072307998494388272914062654313910202479132499044488407878239623772623562269058372471286991806413057973193908302079869912688889602255621459914115443065515652823122132427993580631235089258650332422134336017358925046078273435785808166434218371295620366197227345650280754893246939124288463068012713441286812521894107408378398096762534675855594834363882439497154294008926050733897635336874022370836739697649541900927989084180876790815036365099674343815330903930696432743374636344277718616315185853356005333537599626440111113865041970968937378441699472997503961939603383747890035246433811278998174952525787057356153069029650935280715126853337616054489122058239582221396173080643546586286588222687103391647127716844758176171207052875532634394753167521293271171940868565516312531178073377465614213428591948926458364667931373828969910122002447553432240297603905915478598956688261734041097693154941656028523101231642646774773420024445218784679998845746925859312321893786005215495307638625191656122933222661695303618769813156045131088081899490117460433191253547452787055120656860797886833166357809311211396023590205166336544034613229977722063926970371249292929256246962627680169136865371971406951056015986938277322026264212546079298441521307095074586550971020665815342962130195134672122970362986065341683904105094380276591758024973611075967424710334448103310218233662405748070595758969222955326156621197046572111434766914796531606920582413773896590206147150139140999657655756062447968026760251924197938749832322029293054965825521642035379372650707085708297027703899285103375753246591599279320172875360339797320044773109956652373197641131495356779299578079282505502576617538093174295329064298790453011812907687981428901388308342986517187415725770715555569754154920593936965112656616333645825041828890029595194801487611705706827362470919029196299002522082087956806247324011122074578863124301810780695648155115225365261342180633236145367804105138964633386481898155152373410888173702624162357765083987528677395092414268963841576554975745075700288671276860266878804186678414426127006894297673142367920636383688618815112243964691979058259832202215155828092221335150568398700802377675546330483888946092142346257097307660720963226657594231124284624520688069442752892484239876052632808945385004175650036998984313971445898527246252967937817132121868241996945963020867041714604031363362396751669019564260455217526786729584804848420371514030278202784150535190207385563531180883546027924444706528966471207296909675696780793293675082675017721628364887727973100210206667488453822004280881204617955760520256980072050976943664220040140022364707224619638371849584544036293084865111068035976706156163372029061112697171791353120840812320732448863847347932381316369055303153554849438391968823127795860475811387795347654983159726871336126238112465559308253502845756801517010359827217713032338289141231066168951529922716461209089360088631480220353280496063299560440142791987036877941925310637981468910642526679726155796526939170842331712374723938967436913165156336046628201513189269580956099016295996699246154523622587617406318037826304734462082373009935489892721940815674955907018665655825215066167271406750560910709268259475422179087896614375990594917876396188949475248554817250918675574245178408760094668901976728810168617536963011146824015556428498683350127072471501739259396368522649967193677281042212287846895486119578433267983354580382868783122036633478983694078461754150224255662271309999522778974630836601204283944999015131660994892889134714059415230130562053777699283876502471279631400481705985449569575694036286818953442349680849799257059857829439540076770549042030774556281901388410638321580070144984735243122614921726688891738418604932019285096955758867169214967845416335984592545704675875964556546566142500725498916662152052346519991841441958745175374439153611988363417973655057522610246726703756729749996352227097901480171394859070306503674503405083201352753143899576693435698281224963453239284369702609661259899054417562160561414190305066668869748897104507701017746697443186709085161728615031535844626342376788217820614416077213467673878251972625777426874629391115684133016350598617873489397131409122045186716098296027285128929855809245503076026836229549902596077419370171185278159602027799362146919368663901638115324646424262733340458962840428877249970171570940090505984984559685364585778748813121030194880447211557752453867568211929193779955893039338515245313179960747951331742586713882441326881752659022875471263655072913415103275800236150364969349204049141543987760270750299375234561716518029905401009551041354862098621865688684430202554837004731765044729967338999562319057414332892018435161691287804355081394425460556560688076561433412702810725576019861250229927946657459813546804709451689615487615425870154723776660208406145090735947666213740114780526610345331193375196146565562935068008708716218784182118727892900760215407793465879395276792118028588107213878761586712311841009052527341530743987060775171383361655202147328026381520335620142984105961606948241795482085522348552442329404811278427347294856840634942245625247056803080804397562055327085819228512152265435812573852363766122167914917961089613011237691929738722230413814858506444811847649381063150475349842957392696694875269807035270099059761191705793586736118767466686874065947995811689093011349561057219282708313953327707391565943346234263328460352630296523570921246921224176650348628689535839413704707228481979304074209424818215224040304568874926581212369541649950936042979813814819774802298754899780832968781020828816011249911897258157242626042978205502802285791750704546729961189782138824459549496165854992190059696263012038315006827397990026855523339756793696571968928975961589470566045312647452455536036834048758318081132171433066301737212869926890062510753635295123435818458731910720659434410344196049926934037270931495808057979907439711739206063653172898664382581316616069607096342657593486461822994085081391250274632116003480452620380378497936634528627407219267072080497850664832808728759828381819834411804096802485076876551132827092670724738598834611436458166369243923673375514783354693059105096306832602435664455099172336153357799178740686315814187010028016140031659388256533004827929369690530545795446417252702370384168085318866302405857744636408532512738862305037180395154443523245766453520690858930325076602318359217089463653118655972724621583650616292907042982970158493368412035520048617520709212184099752134524588437999719135654775500244274394356861524935317965846156639630659234355630072418302725578135604398301971465631062631263526760122747652413295162180669718965050142294776623234241585565338718454896843296820680064021221636499012659171891383023915796926833565836423839696395383439553251396480118596364634373849018497838081662037405259975661903265503657765552592872103589435444863988651284299373076405734804313901541281090786522839725475845335851202023198841184505888849798344057035676364170762645863591328654024150863698972653129581611210236155433590005158548546904203653788675819130981967481217719011512215923796791233848983996823879657852274360353406842870847004930526166567197362420093994842071806562982679020897747046126382363515762313895032690212065884776839183798173099024176187409280292841748932876890993599120103047452665700192134147369578970310015788027288973205854027467972108667297577290557684719708725231624288613600380093382737706138254611405765493756596760396721237578916643616141348846583270288082039886372759481621964352773867893124257257549876887267352392678640955422659989031778091159754518959184097517036610267824616373821533863354802523011813733228931680505052427349760139735074101165822573862699121109574285753857010390280272376044850067102582099523962623809111764453402267915482102951144348169077154714470977685204790425280659034393652321024140004599247483331724772534201440277462654156435156664109016499642929799318552443009306671859218203113542790740075451762356557608089877835391220689982555602069838060589826670019052951239284448757107852799113657267933476766250721916991456464268410879052817676770785091623635229329356322563438824071496099122135422054597152377028095246449895461028947563220697593852183079083316380652832897561370243244714167129236113814602472769425747743155459333132407250405390164973125267988716971524991237628327330516808583361048847902074716039881263235766261290179513855233147422320559470200598351221987775805412831463897307649094627835643469047690736772682608478334519336530094763538326178962598757290313686544969008331014259875438896146708388128885850560610731243363645850299084419574754015443162954373050846800034846146175214256820904682455334550472444923597939595733597714112166694906686166321541464805971619520953830290946209547814670539606918718276868467809843399714443659393725567383353315969362552432712013954618462683840028066841327636137864185165386161547628496273935753240249840113897839061331536625864545302288063112009096267939317893203038035349344792598060831249689065664621611734586611166989177356574751168356764001751301027030152625531337870957421026699472908217566063607534314512443810630743768499584112979019194813556596843673852779742265733060657898866941296169110559563103373170299829055614330463281178198950232626370353814562723836497803116224450031174289208735060036363810922965762161661566237354163014891593860072693010420359117890426933508121545404653675092988877657214059011934804859761491709286492774814827797004872804813195228855583695525090337478087392351241323780814858446708296744452474704449336414902378367652017057434823554419558847050532338364097285522915881019679333354545371390622778501174936660673837279886307566669390683129483801713143411715553306736462340568488278637973439762698304814979094077491450506650494384793278612824877150058990157487744155871902262610379990304595037167326070315783983903518707388140492969847031827383190656662280693111320597271510324199432261016305419522451149610294930755593250834851002251564558808570580526457474979799516505054315249807889323618068811772859971429529065054269456562071754660958482534190905430736761454406752615078822306756684256909481294925696751369240762482667229727676973477152148526970056680617648805532404468678019767191526868537338289330509083405945738603018852105565997061695130793984925805687933185049202705148278791200238718305240326613869594920540331002664918869320967426752412500268652742861281613848629562098097314620992823162272977483460042371633519529601897760191557730806416737345382751671292675005548606857748980853121362369087768267538621978218199556989828832931648969900854291531316651917176288111670158279408553777492269101218691951581080619590662402282278855872356811024751654982330547984995564460822970862762797836192308786208000670358393425892753191945231408670595655608178832439013318710501231670559764737637915160893553523210760154124767368595307039087594662257905927484445377104023964513022691569389624999432348207462465635250960494825660311165357639278091332914823360936164560488545806674562761208102697783417064190293900495550485029599948474483254092969919098743998890186575248222816640527489299936655326647958612752403898245837962433349811397524768121675493644149960243077250651483544008399120988441865003329855799400209689322890613630097495857082831084867573001832021946681416362933046464324008495935615013357644376413117231322431837925493120007246839375423235042058836756929081414054590935669850728620909186568765268616469865888005959695026282906178068554452979565325314396916718193649599018048915230810274702246033592835761734600593819319915392482303012109321144164140708429817768723272396767652909309832001298756478434403332421209051359452087138626922209329882966886303039909934203576403988908251126195568818625029714531530765391834909353939242465054427276074967774127399691405175725787590718137362522736669869227170139519899508244688316353203641063894903903146634719969390566497034983488744916195010326109708073807908499037321487413707097432882416200536037499047851824042835383142663591103945575600137618798940061118152183492301263156173004561486223050467526598755117334694951721668992997593786135132792266996214482905569074304286239030062231655189726048781469304962765742480675535310622685658128051625779982867134887471836414396210800916000115006965374512811763216217385352784601006710893562228515384882872969260461824864663173278754782719942891983850597333216438810002078550255687237524234580599993857528201283990697363565249898785197647604492883266637608921555068063036824152234711956049889621986601556898863049438946647686162672100539211189842455764328048764637470679948051909753729967298951139354559002876307155435083531857776180770612060359780616945669143077929587039249732699226885405569976786745178728317155373291747318335301904107552307712960924995492088707447220511687288386609007931530696269424937386085561746933254469040058768547629612577702046327531574411627531550752142886740763805563941417617266811727403657953785676059293709985639363824271544726065865071228451103313695812329611454423142903373142060292411596888315947464468386926425747829734463192591993313198117917291224384589396647946476419062957107413043051526175687977066142938850778847313578558468627406791352831231283289621646560058276790140790977471490188800155241738616836540320309883175128125762937732995084717852842878999650283076764997559207198608161346576032805644145070073115421153456221038615808787632776696522249202351966756520738292647251735752625655476688256922449813599233035112200875011903515383475358971425352055149177374096094596404841364751660475125603108122324380964303041923193273066927013755902799875080670039608998852508958965241856680601164213279024034025101724307182337267078384554831489838245622324089848733938109141188321235407755602932807255385389199143653746198511321633344481194245748165871018529181250249212886862109434751086230771717049360799901742492364532965007009313127432773507504698593593761168616484276287058800708587110733564529413136283891575185863939506756844153558129526097451066635142121941238249414411367004751889621370976529791461197007213829814368650565416234644185874038235639275679067982990934352349208938163939168723378517567033841282732294968153673219046911459211237289360977263706906875803782477428443758720065298762267756088040323161682774416598971554356764165070314066331308159168172027521269015801577790560237032063205281365413572895184505878283817472471446792606233675668049661152746808038026164068895989295129033582281107194251984954889079997233965806800969705774901883840086144181062988569633845888548792145616074981427708867994902567982722453005154693668033940757796689581212072029467494264459650899766237348705664638110269404589176031267278878761194164361893479565386559781605348202745294626704917356228160781544577235495868558819829336484964853551845783227937363466688346417442678510489525396912206647269929352323594044892263514665219809875394451593472249292061249425725829574677169809014689502843558776262237630111118332711135453343465583635695551401710166065320278236109725183854590290479680921894396541796924853182144238340503840730878856826369932056806152479912064361315280277528774270799504885452284637080361891632703951044444210880543451094697504944237427159284464172409945385721952381888564035857968325767594906669564008742033459844276998538490582741683940861011097566061692942492424131498584405150863781743199568427421032477799632736087925615585699026479608508034051247584909010249559697304800434162418441544811401456684170773367832216534395061004460116199008052195877661064355961742595075966319950768272720080188200054837433188802588630857622605136880758820869690525498463015771194034743595725038961804612184537031379274170257308911697335444762269231551081579534522786939853258938495439361848773209245423355647311862594060465444771446292087445122599642226390985148491333659411158986141987270458220266655326482325732302970456357511969353251023291522841983732376770490169422238008914976836068469176801948045645484452126155304385341161654097084704147201812515740503156701861394269007413169227831978233000117256764594174806191447418433867224609209326219989612296557618735021529272190777227030473941754554062806900561512722799083635054042692947106048945907095563660059944436835769153880009306901058609831048075903169949938760459896314999653137478677461979506435476156404800345305477226306002144981305339179750077261203784351762847623429218102259050225981927593175821864624636153352149661991600331038986038356617501375302267093155053147121185104213533411488864880416051644816187104080360126730980479088366743901112088786954091931169780450149101351410623062710823302125669048432021361876842251304529002427755120166942902250405167610216119346800936508371214077236333184644125021645252089403664970897955810531637843208281380603145840086249523638942194207633743237066727205122217116062570054656354858741983577330666967203312559939403026922640795599217626763131721899484875254012695258609334517810311057229855950597196563888131670554388710777447871330448601782675223208453477634699937859103007102645984161713760684251773835169833380089770469880762086610027089527049703267425737959620838201584647782505434577103157489065120799503616565687728011120230124740548180845627559816993112124433644627920051173148725140240080444513386967521223071641586730640320217954241428803073178940562945577102806304751077388796062527662179896900207455215458878316874671541306919066361241038240554348736561344577086354734557528352757226757199250366269327787246661961783389776330928215967929676267953997100797778768543007605398725869389362330242529345081357416781414319476535325976783810161103785721005829735761584757804538487541516819508008858707697433508060764689293241835622850218496244172024333712482770399767921731807525119508262839373999259392247964256102128655656567769462057112930263005237126801335116029928778797608081550179249895326017925716011118809094548966541236692921413664106300863782204280858614865155718873058012732270975529551161280043252675185497079194713257676528363213400847671405103400678722702313386836740702958537522965965891914082264217976628955986206313888091772387020053217587923119175973530974532113873022884260847173876784326577030642542660445304439763698964177028698120096489797643143514676976298663402459380164234739341091284858141138499248515260127048082416825364475108246709316304549719237933474949587329800299528892486304768631582895507878595530770813090170842561207029260192962476092026595430587733135754740322380629628157107913657165902485884011027175569857653588791452099160103469170669410329747059076986473669033106544926767235479505448836048886959209972359883859112273521168975004946832787631770228579125842808831405385941660256123377392496205486766318679185100384855068490531749565462306902126163690179678708808711157066053924088192617141788133761386407705607694461731025341261452294830843551722771437838213228983648908695790373447671975685526258439698872633942052311652122481427008233789278454573509013006791950602011888594849491469943507709498384985829434656107704182553082597827134801574126664479554404013123844780011223976952103140018080100904244101165345047487789389712740131274079194732418520479907714676184568567264839423136161170426975575495245838771899280768078925508572781308461967579292899773675883998819107790949872612581409241944522509710544632518219775910061330591706521632490944213516140357141406885376546845192019582739222755479833863128377608748902700501199620993892882001540594498623188715678922999637647790291340699631441155311278760799341140774109054781158747630825507395423588035447485686536031278302230442120510932144399137018324870262455649147930627366635049101071427581150482085629587744359942613933466437102338038594079284972524281180914729343320708327866568737866065487103621638754074817156564951511388756895651334471447810522655920786287878407075565327742727029882639938312143631800937361964366179974988248347074390483378295716659865540644673402356559254460570844179744875188509210905456397766671543659461413109232943639105745149431986941172792579545414851029965620249824037365031189172849642854765307134052338601126685937579684232846637168248507618450456235611886941898340626074121820269495727588110980149040890540121162785190045356737586613105582928277573078231764224268313898761926171112092851763133939034722884386036019404516347195734088921617913394042575620878723464491878892458123897203767976871837523944640440694137221727621755880353865050524331134510624573317211123906131976931438235453824399932794503395853915810424352541858499218237302840716741167023068296372829498427990089107295915761978463002573698179820951397541845956542029011031813658225907157176796316008228170425934817453190096335504484426284848513992756488345938993078314227945210360084471894358612589104603980753960332589148037920892047244428402593841254613678150205189388653148571795161866909148439543757293180663134144475569593895740589366652234979680891013529497310094051365691048545979421696613625060997248973262220390800097006586282849660676823824904629845058829352500131491479468441849200518642817660852747246392006150465485441350362124514124484931534316441694117411794050793516582134573833212688294586176403358979651082526441263835687498151971142227945233826458960848544416468867041922064587825386969133264127041599264987416143825625219941834932664469168581051085239541006607099544764183853722747523528654303600459447940964378545879600579473739257235618214432909152917730242172123387727192481589426068092200433188121605638864221968826614916358079124793827782012683416995710973297897453832728966429211502997975740434857289653074986458317874148768904057593970522718660062331126673543819120425917844725535284658664043717319946596474583656225959176740868386006001355352533265799200680251546814490646275376524483990376571571958632857350530368476038033324591333045403399189949136965317789449892263414013662942707598102284609518343175415816453387486291674517718325153854300200129817634498994949965394659493267539596922695101161728954672744260277960859833035028641360136450120387558855002913851340672195340422620338542018874172443577782877562433310443591594253994252719222201002278408634594298075639871533139585594370998419501177011080948380320184578202021104204710712326981879418776732209368868915873272749501467307020024884598121725281562329111696698975201142117792554008551226847258146153664140691783445089847640806425129968298266075498503406971927032083819284973171618130360259215288717096114735437525114152935487423952240358524416733970896382030373083238919735611371208343585017089977108178422516643376962842389311397210841768187143112296041921990375295121716585495278807775563402635513565070103820168438018372330777798742310878585855778925794095065689000629611487857280720593759091413438475300486685840273950938110888238752274735439369134820171145251320343053958978899794879454708631986310982754736704981850108466141828189115332285477108403214891262619073065922783784590343666766220527314383384610348499196539149367750243193215907001310116456831712389583504344166482790560803819216245639590766926239830634406324829993005028678352680274636861645814474995270411969758430591195220352135744139086515665296547121984080807706997095357119247849105533073520827465719355064982819858558605250406371855188788134391376299304959697417505165566504980536207568097503584683113924785527059996999224730724096268777954302171268409529122798797006397527282454580423421663995144621764120479748215422741640101862193888786978360931819422836415630717015847068587148272878902435819133787766541686432188420674225413513194178603048308664025760351400551101509165764355169958328303142442686088038436582715081887450994857917205608604695261929057440653941860940552767651365824909168303377869742251940611926684962766246503931388805965975680138785111084358127662702291277989116318886598218228180231763820346578487677595156033684640599485090508696473222638140117506400390867586197378741252650429532144768297510715983009972033920579597333662761689098274330120901296335184187407900058377986036603719347182662241970042301597497710447689736366895944435337724977764314357844959637444503314522027577802416458771770678935091094533550406517712012190704816891156640100860683837020760611593246007868400995720546235219754944024345370710157309674138340589016563566137772860102936030220093575456694216266815000171953295678259122405899434115753272967310487731772066054938025430337516040175879505801779643077789828021597070508761871487509029868733275182206900905017880523676872834134338587330845014037291471702938923134763298750176075391650122635037789711923558574629916125491824122706666439418178182895531047683046262562891131408572314107835044084178889580419161307530069403711349057835555116789271028352032209942873004808747060996951417826391944662920874213084687502830087673927013459997806840947795522792642418814079451351162734321337458133610151876258968537779194187048098959165919620415340153901504933576077204034650657276253418203920325799007485841027188623356697945456599957035987073500050425946610192341775259103379934910638925395651565076773564847447118788800479946307641707292344814963197756834205841940760005864286644696261043325981085285949611527814664536340277583991955464083335428099860082480170799458015612833424776807722069937673681194944998480771653984949237170046459662071533891828834593165036857948226433748315022871733823256153087665249147278519524969774489193027904244765205863855798368824794574320804984147935065648823224637358576253648155193401165844474801505896751441562575001204930362650084866014647842297456330437959167934030398941819010318093314940925198837084246332373412372704293496964231684711989386455646759724990207677633639071571547801867832996954040503655473084884337639002405617226695696090948676051337818037053413936230416882915553492594976588003282004140177853052179561933264879020362581393527486819152416007433731135236904964969494650081446245530646921849148863002519947823338524878960511056076102752470775392011727288476490776965397385156685082696067065975960542307770740428297582184483406389805969034393592129542534436088625705961978422917245433114182793584308043802193678126205623921061254768955985232404020683572620174290807352109921084302261182643699730153362372716909827994428676503964017757010697318125775628967437966375595439924198567124465452096639048907736691099680885594095308776162997528428200013733446246508231539605488911021377124374940526769297844900814630217742719722295106297418938603715261359441213447823408938796152350334318779064913584631903772362770476750788704416495561283566238834105240613040323185143244515351191234500428960606965507973730297803516602828441167746895736675370472921261242726902453684907456964786446093321612134048756130981167179963302637662614137468594291092886349025320300609674216953501540840301301408990855132794439290746974525186115368870143854628986912941957084671701730972911836306665829248937299160214152217060863464047817921826700833041038348383714182754018524179386597641098837900507136550342256568849965375849688330038699814125967624922464839937226351800781656943557807460227653126802063566723308545762194010646893031233806588331762576559980676734273867169870737621611574304733375779283761900486819694659182779726216551090867862446583410197043368328824175319342883898885967600428446257531002653773288461352572129064326159198616776387347240498777561048438651452283707668734280038673854470257095382580077363578088025979000715666046639550154511674643259329545190891082350260206854805892132624711239920852651318763131929137415747331099778444497111398250734310918789024033885931741817040519458142419921671423776825669381163588803496072416900809526002206066993791286055936951812137025556117827981681802205478689885179787124633352110893260721250895275445910703227670147120488156996597301773372876941285615103800284496983755859197565019056406750854600876411888302468218379149681887484541127878119775610385799125750704873993541801656396184914586865076589773430109208615557876473415300266578128968404871267376340392964992685738263147196573293471929575615861678653166403623936506396776300063142568732149587653147459096651305705624571536196747449846006277335117710142841018543243791165958302304745388221525137390038628855800112027822238057457000295338951482227442183461769493130557803797303753441903077151035920706489947716128616053332790846814325404340053085262228942369671289634081980346667915341577131753140279346529611826213040854913699316384550122893319470772600155437236318390092043408022271132795273975071945634525900544925594814549957884979114425118066402165289488274824638823488626888562070163926492400647031332616668287188487052182330427068960180672676263450352503793957773552970474859448228572942990512708951840714444793242881778866670815027829488639587010542311139311420256609570461773018344297507278549193601857780738511375605433681216334509117014412398093172272936481790414559227984013622003934174638576901018027972947917897294788797778887776556780321897035324108912598614111100237929794521582533006833236603729005752727525913923895564046614528066080074164760469201902615919822412108162957458334898636501877520102208745316871811196819468485178075992478658165941641750625775933699289590342651733425213102919660788820833236418913684927786344231900942508432752645081154412778607490119283717893919770217759350436456027610216930982641996360743733445625372228843217910968853434747553630519238722417183604556208764023524595825628367422929105760475174746069675299204370143434231744082297559462387743437102038336428301585672092726389688788734250727701376032939132061607455717166300649562677658879409353826922355993099995500315046315893932891362114918998319829160634889868993815929934473887311523171849166410310476407774349182832014562218605660649950222224659321804883403175453374219496100236388775129999796290255164625160840283562490592259738444290007124078011505585363073288137820515336682805730731816626835156418123844732786051765484369886758126607879354006269343081634693525294138683205599743336404789323445005595403898607751931546872266758639759166055027543643552820375666625230830712465124382044700678141352069078579405178799856415036810950443006308193280924294839119997012349404522893742589822648652043455389134490691170765073090835650130093871649918039631771166230791606042970300298209935889558593689632827346476394500484363304119877810916175768234836995600259737217815140448864317780752428057038944366511214079350094569101293041041853544702202721512558958955205250498533704873964610252578187598312621195096117707639977711748286215488785628552485796455183495973181432550900887424782622382505863149429698011924461033698113108695828817907878335443595529072023954122222577091519961269992720750694954745207802484495712551528365601720658551431145914849408577326361759950397283795082440016653122268990482522635855994022735145422796247513465839573731706525018201163797170772519651532399683739341263549577064946029098987582175485660648902994363865110460160680869131964887975049644851456743033139863115941699935926858867270233820250290401549993067024819147004693923623171456687815634742961395226069447335621523762050653706801309576807878477585612822965415416826131428252373791421939777401763829914853110222678377009696480797192428737676495357130352773014915891616872237075438850604229555369696383331008287614518831665210251753739114822594838449931893578612866517385240282464649323448521115114410958925316505258831942452825256264383181872151721289047739205838481232085475058054889084518284437131579843267739980246157211143466046119473446366073802540641551076590988417013879416149384706236776443162239117546356073423809710850100884350250443376378645607173854797670637705168727652843902621285527792089448025797482098720438732387789239626409068799964855873738682489095787625912783784330422096544520570065376474588708326390071531486297539116810196663821599549115610257784103711608854549661784126367675106583021797366739244536838598066099631512843685323690873404767020322338216504190486549801355094271002494537344925045405606316116575059688863045737935358870365429177709646074280127485771943553664739337812942429988480726214536235601907656957277194713257445521222151821908599303291470160580060903780527545796414987078819969286520918043183551384257756463874226665944251919800799578552659672276043214494421465345196394318936653411525060781918263897923297240545120718263404896356826599455857479684964156649385469377014455686863331712836243362900441926016347646012319987663847863677464710093511919302169505232804061315695413841715081832880071337744055844056489253588412162371788284132507231794388225563704751061429461103819582339768345177890478764894806328461769081774236617764929760741219664095644501421514741949558320738336338274467974569795110902762146055318177413331236861511985086175676723440883404211857713691786702070683372942869924475953436090053752432461401408114723773339992767425729029390450266706675080642318825037485993888451985481540053657062129517183755086601910424786562260245301447594682544786536500423152261820988739606097691796453326360531069672883846235110146454532494144078552162723664888333426196309965412247327472797178579614597368077575670245246094958217572307963757492056510086028360667903271380458908546335143249992100392600467601779159450835500694311128616911237757974028055814830969322445933060624624269673186495993671934755387911048672220312008343482688985682401830878098059916149467239001142747339003848206659430647462195375093040440098049324478991139192938328538807660840267899418419381365258269993185726473066677491108062912438386529480626633721221163900226696082756002587311473281182680361759728241942310046312123971890841973789321926178731682682269564871598528248587080581383508061211363141912152219430790956212852287180828366015254028172671288873933835870349149928389413308937333018540657130115315727833175541885503280452306448348854960627790769442988709815352553237578659708555589908062981893741880559575797043996505557429055392371185666860840860172616642789082064902044049692667610874985122381772427477782218362040627206924195836349783678553986003102605832471266608569260874145941518634956402229837657849694813734344975602361319174481426778239196576451077294108773492269279560130295023445209836419813267447413558974806179056593791100776058359352570061417125854945216184051536779042257749370004834384172158377676977328723013028076151966674832098553450731007834312749632395098151429578177886674097499166692000652788482400812400672841164298380901976321304424211112788570722401036037500409328580709932766553837007330382607944209012642931814432201640407102653859078120672081317418175106858029814712185922697484826127694774182566217668359173342212203553363906226657942521037060693060837576691084964153749681800227864246963488461090993218805201249216543188625428986060053891940177360802794141536341748882153156559225407954926407362839937335200442070815319382716285169034355179187136619865586427163494689491346687285135201281507770765275355742986635910597747397030195213307317124909001797549031113766069298552747105368391423338131663311670617025282782748413451113438996211362230397148759959859524811798286874155034875287351747583753182579023172264039804873103998776994737928273176839240273982331012643055465466060720634435283509906739644429589679321853062676430200847605853360727186774302701232893050707357719800919383563795877181546082760146108513614107028797134523064226809344564321317066986163256082002485846733427065209090738209837782440076606650066289574306624416459720940135203648052765069256579842213979995050742259989236766091680397384158252619842245771758469565771649917590107489727178215751499032148311626637002870357497489460412963410433527924214131404141026739267280956501066144566693650730099548435093806264088009141457431402836895153494870409127532623788617179949168151945047230229484859256352124589520124921501644935429031305084248298762987192810467018043409699125420379073579023292563898541160915387285144403870136501673677071628062412490281697517678560552338860163004138857064550200770477463983681243831006078494804257627611577356421661039285788326673956008476830042214254832516383961023206576607161508726416775417428329669645998797408164750404951157010872326108601228475651354048939110422976219409490701029160031651668953611310135034787578599393579025056689381790379766385223261129011120198871804324421469766456230535834713631143723843600630820390028284527574776401194196463265369190038883314238241169250616856326294166053070602678173956236079369111690875495441389463860436073872920389892852794587880865870090106285289600650833334587761920683171684126112030221983110560738472636236617233724091343986677557617509952744918718634889382317663822729769769316519497981414335894895437829614167036104305598728835577677962767093546192746468077188434362699325500993873243647483906596077344158634085508801700831639651231255636717925117084455856729592470003096153830696840136634931666866691683870517458025213028841142730080436411104800943050478409077338297654428530459053109701941468024298282207784827020043757219585738530668886169989811861941906169323758708101720606630826450065113751805684001247085932131961957707951554832426695289860010812928777987389721708098298508246349499541636142885279882746816182078780881983275081331981144803457361818487775552024499794276916857676801547351646767221317637103142565591579288612024605657423473955907484491972502953646981858566119569850615172863096676474687155954863715312893891782691635143678032406482607665109942498720851616557987201277438102349052033325478776699849611286054605532315553319680707526380656245676378169305185537707570255505547032053534464368364044879933713301822158262835301534668179837010477558322928893917553204371897956641374410650731260427122661583644919554764612757443631860122260866422796823388591748129974983704553706584702228433473750571355242117680462354989241704447498115383409116824721991491351986182562628861997369139979407612736789885339411426948524660700087676280934831058840519028597226837602568348710133613783776793416220740934240592861168816726867452879785146888664101961274550735363321191454541029514642739114371355196520757689367641768204682145301427768558634318769310571442414685518949090276156267927851721464484273179629672071139743931213994031676980851810775164330168515553778320632901820653739156506005512459253736931497986939078554539959992198922154559740885088291293800992815211028853136187832754469933777205966663607743227400140443853189788471785586490110993262588210159135709834171487348211658933082359505489282674623843261911140665356949450141079013860981809845183400936419218955642566637531534393349428825307012538396967271502400476532724775753840165535159138785344200605877532326899259182781834943753169670127576098053279539119717095817815553305471013463511505625350072042237487661547995064347741562470899933946429152210880058668906301753023392241267383792043050421309700163745930285728063361316399368189180650257840856375613757284508826328837283136544175245456281112021082033763941429509829263557308915791311163316431732494348315617998522711559859104330599207195892859659507737103460912869836562256837092692479980303896421912171397028098844222449587255840315845255798443675700767595206739629821398957609719501132254880485215162759524852924184421921657056967999422550455667273253849925898669694011452277938696105404889633476930932461623294337238950350917892613362540316157851684903567369459317097222870407980973778109023630246497247973574972665624324929382902582358402047079414521151586962399595944647248652738944814049714331620585285478075467111535508662509879534588119800818195899969625235387276378857235503434808603541244368364432440893570538979542243431411962040647778001474763362752343970428129412163995144499499893146915154850916666252177721184766130146228117704955410553368283614564222595405375968166729401093162304681578715220096581287106560108113714260595001243444466615643027234686594365915607465313692866589869376016005769528979982104579992379527139266436547071290453690407740134759023698654694389334536898352691313114264922947956213709339971082914878920199032634559719147995316206186387092246029681561047786274519426458075230554001692026794906028386363495614231996213169922173389250793442868086161777319563253536163084003956227070260997610481953246820852561241249500335892726339146118902398011653453537788362705462381152916719511826464350129959841286208035928666288324330450130704834601855500238669062365479902038978826080816307217571607737432569846705521932867987432667091819651178081515070147490018856361213196230649073419064839296642678424874001946513099856928320533296388002851571495434134969107116355511953995174507053982836734908094239347786637861173524151425548023785262778844272841403230125852383926030618659160522883060239558796785032176008274794567614941168475601066830442831833811249245719421934040309545144503396443406672627102070596656578963945209714706047498356337701420238744890351770124169500377820552864966934527542907159795417600577179876907711407074668390372692914983609172656087610842159410870034994107963988471410818816994524419988480260095819933955633382125452410407445183344682466822216887534975547238717877570441059993380006216727687577584409968076989912877133109598800535763662954402745655875451838378686154065753427335741694802295529929966107400487286357601079196522113875031766241670435711101485858790884514611832805449771060634967483907354713059088055509124021790433194434106779153616458593628322157490403537813488066849604338410883763493016494578096294394769022328609111432029801038918250952980494848677010751441501494951794849270608150345924965349244689123357771663859261839074847696213466081186579794553128879598873345675239797695202712284998977509458878685124243153850574811409048570620055390226653136646006652031212143686750829862152362129679398973803288128262227230153294474494667784964849561762432613112822529384572297665181796383048755610056892219311165124922565438667305138174769642858453983912982381206443721643105614855748692722276247116254758422939962903766196518063234155861986624847413896704215147644813619768803583971864986591867571532875546454952128268804748329534952596884901420149379151089460103831083665172603176857022102486706744500663513507413115047565037097788568548610311037112585109767542060807319617215169557193438446994542116775159688531683260799797055822357488524593847333530817615060812727076710562795890570929011384846057314359303755528650381032564612964843168735137441685466927971202711137319311997250967243464925521190373725102206115204898683090300291069279848969684903514738425985956096178046592887254632511651003737391115237064546515424174279154710883675857987377530041313116858973900992668625778390215143239545807647765546828597972464150015842496862621138320143162588061894454500274868560348479571566020035729084799338162768367269000165824253683817463323408964289271878319718705107922912611382177763035637983110373872180549831670963857388821440979887474191797706947192376358134614482781439049400857446614739538957935323441373283550073750774356920655994315715428488556871234880034447189963510349313865586555215509109896829283219860966684035572335944289892055783629970673322697929506436262054975041847252559230992751121413479753291056687504565052699489419893415003654540571063812274815516551780529018296371160936855904998334357871801345239688764007928212320991012758757008234903064254994265612291295445152112682904306065713733188713463584634120624882059369237293202192747009797214141477217604635414226262884304211281282854031264230274955687481322613403934927358368980965479668406947803104012715766252433997621803550379982856187783628695330631693513666265789569607685102574167539741712675652170012376111453669197265743409577272906242391253366517777599820371697335211522907733488071825286954335687512932958788377470067820358087295418293826090803260466119042786573625333137874936884508579499081054699898776887513069064398684407750625404771689645007379771654895563963379881036592031499485082724246890583723163199712872877862312683665405059706132996857920885110680341917889095414747967876867789734120785322073987340439496691433557008535066820136516370842541056007655875624481014098973929572073803090448386023318446562474064110990673409304038077601545807907516931347051211307402301742425136770899731749718098438192031070080199149622374039667957811185444901995766590672709452212608701843096679178982188618139287657135956679352447320015910302230987465250783384219873354702166687233350614989097840251994767303665998459707877175078130432368457568726730061707542527506650015230522719826693159754968297992120728739316415336163148003298508224260357392174591655947644038790240818198762221176043241794828035142233414329715359446020158009874237404011304060550688008249070927820380366703083770314059334988568578366309360969361110567175441132530452318616859367452764751647793033020062633575716737937407933496825689621938123837640284177098678542979508534197404571952714600936684902089955404194248873919856309772348452311317267546695319383851158363038097881896543013372293805038542409882423139608994782621824973718678616881590184537557184282757438030445619872061273555328545868904242175863031200444241953322983334243508639692548863028390450218027942297182399621499671332962965824070302920227063733106681477823121805070232506561424055160884469054054556729759348504001104260934408665618173864961293469622708831781065821551343367649884064749417347182933396942350610040720450589811021274676644851025725062596033854953109761726735389813494024273177950265614428218053961412959727541567275508426468235695604057466592927986229777944789929530666015954366277590785040670399169736036598627882921877125319739774251655061574073183861168068789822522473210747096985064729873836316381508971397679011474738584933136423488514751903640224305063631274214650540290505961394938996632097851354533142718413224240608915882697402570149771027039405225869072333314414055080064695008175407479149842664997510326852257118872450035273347666974730299753301621439902572337683435285107275753246781456664547691432456447656815074718386976814184180350505318491811391368974708443386945017593087558543030015265808849142556866685022558877869940211818605683022648418634024879376180859171469817985086785215731052584139219535940357453026044657871277408207464614847224546716749432819973186119577373044429908244191336494565756714841390306109920399795598125276426469024800502571566514528991152467463644835168894249827531836891421684656768946315848296688684656667781747280136154435929803277975018444514990496070804149999879581899648018941485618853151903306075582591663846063961047485100572534537921158249004599124718693392100438677951382560191886908790248860955574338863084098565067503961487646373720560843216183005012842907250488929802408607009694625323183630323311571187663864336755083860191002678851412350735517591859350238704286281863918709956493435548802894219779749607151458721919856145304851530921232457347225612962781553852843773356724013516966897253310519365723169287522383711918913990083540154397758607896969663116406566389225904852005822000698584533614770724936694214145828818066071312443984722747237096515174971748296923212533095876132614085476599410829895851104433747600277425984810266322064044585512283182211677175712376932099343379037990211079271605095804155063490864502056562906739432785741719700990695131422658757995433296381137558412807764147897256737692469201966838879832313370765163584268643565892697240327077674007914148783519643762407289887043020267073333990388084230248809774607219961970815209452284251342778124101420354586013536848681918696385149680764678396884570183849694512239183709607566463543923111719448521454701227645907952172692652094199714984174300673858783818299687655640557201276947488383785098557719636392050743378153249053564165507197437807263728254317774436949485107082429548017664519808986062068384408035757727141878861290081880981666815672126407864241507245295808601731251321742160411257400632238335807555471845490855161039676647342898216925723827041378135156501650144855168910158880010864534247390361459731655031634899517707431958767209021710427943098619622678499556897741496471231003422448486701925546260755671693010152223299195804070351043376013851169725422471101600033904474676941534986456700508659991361261595295546719883128730561907593770433713201250369319502147531869881347596321488529863519887982320450106619243330837301338535917408101514199201433101326790610768193849029935816403989004940600004652668162105434668907987077221029725658181294340638463093508973964462722566531695179832475245223883076134134080071278515714356182063065322126384498240503910402483793559534554692105268523905232589287938541492151022096712029625007454307156332328729135052812061965094880685579287220957689470724226914428840006870607317887306791877786870473301867732594276426142686551652449209964054834430405713819099666956879353676183994452908960977220703650473387765553825960882641687175057851854172051406338243237068421573983105746359406299969808929301593975461754329184842480583501023447504941763785633543368929343211852494503392472970514213326581839819254836703359565946334959949270031032799419634268618251460687573665853889303213213512990495127181143132403615019448832944017201403237335387325778703351699499411178069326439883118863912499801052656349345991187295164098379746905084979294745453558299698987430946520510668158542114576295083943877052695201388110266009190420275728956821811571681996236734866472678515805356540567541510395178901120097908312332103509511858371701912653131686195439369183213974925244141597391949009880058342389754684380488324960951932593855049475049260890934869627934952741785741241537177650386041816398296069766671832923145472951848486302463878412257772101986083459761299179921407579483021795833831669051291298368520863298450033138262909006997805571781268557208094152464714144706758793686501699089764892493194322688564087368995523769342855273756471568900148684640383508523274816442273096957401486081696974801330858439641211604685004993308058495787696239283897396068004837586371126379342170594166984964848207741698920374013913106695023368209250383706857476654734646222970020462044564888063194449707972080850196935208971588564024665513873086145321108381099929333590774586017642813799203172892378825547226813975381787723122343649288791823171126561983668704928707663640170465497902652537572440975629529634877321444054707687768853137834273270965519349339005524660793503382003054446757998957413344643619659591987259429542955530783423577615859924459441100997444382755415913199596001867400457500533490562206768974482878180600520170674704825535756780126247721904175154683787513988328973187314470465475053339959790626009184617798955626017421127995277295341019218084120319444221489355510010444103852378004468545915018207518097303938603339266766061222519590122773299547557047237969587801805157209664971687376851755723871476581780756906982915518526125109566473567376002321466732113863331396736174532627354421988862359628259130197335272950017050123404324188814556773804539028733604247972611126752947256759169899534181607345286925771210851034077663958249834518004035682041436806588317041013481893018389930605857769971576363650722555486156408914181616218940340321711839969901080151864574809306579301151116172697559769852463603790745764966284510639210717893142281767539415877391674102663460404202077087278115400102169468692360185029598582090057853768896281972545188362433533195526716409772851158819506435589198214797609091533652749268603394861311104794113581192567785102344436367007795689007614297820813546110172384108977795304522979392244743931935205870480558318887777291473334610645289924419329523959152860970898745146136131304629082775767846732381797664047426734805296620492440111359857938375394295522303692207775919991586805182393850399953426929236264138791652869305853029710948236384668955217576610037051997906354949197242021350750162334604039431618828636609803005760574089375780525714297929546626064653387953296931085205988843919025322553812490482621535069813942886290682012353935207782510124074529784971517289133135402259190803833100993137763027552194452309558484176172490182436072101315248176911723336868608141058592428191910724483112081723505269219642752028335072865773401854322466107163235614584567007732242419975728932364390038942410638753606995100410769656901658324555807674144225591154747277629217804205006004775887055807251416887311424142383306601849279698693562562839436698608109610763533703893858897753925600569934077128859155898657040122198821472393775686992615445374034366298586372835261005581374771385826649641100192436192935833932946614738248093171839420757603672526947559543251888601737749483882744907186711377875981268414994646033718062516164052526004621935562719740107715153884254037212167180373565337809036032077171795149084002105397332033877955126411802918888166871040486025843505332765976707522094526802375778881803297568420847928067928860163700184111585190896881791112296506428812117613226327714145514318519924983276284139434902054374803614771723708809402624384579704987789146167738794822442095974329465732795931943650044782577768698184327012114166257556338898692800485504084895392317501538386318267865282495070385941556671538861107391925725319733100971861326137886204281558458895366872809890368824275524088937345298302225906302533697422961890186292876494041097932167771768071968384478044652207747363812442991676867558140169199616519261131376667695482329668711061863664143185265031995843705207040549574170961156480996951902722964483409233347311105133246988106436633987043508208729103186101857513410180627080799247547435130894692839498616493825446928359832879650359703449875624894234488322374266568984831983357438677659543426603931352521776945060015749578559902168666071277253279930253418755560845642329567828757803081803857015107169012778942750844856302292400366352976855792986002072645783022311491752310668239168934500215373495541904690441493588237097817025847879355431883213063568555152029645650292763926431284483698525985632892172044881322335579893325533317446296065068953415406821997645303772245425142850221556831806333099597336235382758811414055121765778454605615317878325877333847283662833251277322231323118613507945027037731330993070460489077301790260179766291813640401071434290706394549791896872822224815790778412280436534004764081160867758609361317197926150324198947143676386992702607029110745176767613482573969588086361397257538020673348997187123185279320736495772109954225838538190062957297866209551331955248541631037467597778294491938452315805984734396406032037340017462733862585627708952386912753199782751018895291154846989427842110586034916615262808077430713246381317562470427768363004204509827195544620477579345616810194035592500003565201498013925514054867386467809214585626040471887057113490211715576629901417990609737959890215935026891240087043483789567381898992488230492784935615413620083470764472300758766474507710083994028111098160480499680290570129704313041325095478169011019374890993573381773549579588191175490468768043620902123755226570501372039665079915354326920086280590417096466929518261112339631112746856035479893997089276078305816296449734480751158767331562052180093021471592059141908459906751100799289123396947264708799013218866177327667525433374343438728626384847203678727459926218623439052076394550789375768738243612169758978921297410183116713287644075720631879823774510440775661678328951085774248633616008738791715771812899442992319558464588279703220878201206034538274348795711574179481855715768920438305131241191704577636474891766763893443542877923993845774087528240355174478642528975712206613268494600501218584782721015484480709322393118247626056260625887810359624765811353841433226289980413396678667982463383290991575295640928127772034480529158315055193052552410810525791554323086466743850901064806298560315648073166816297019450305581286580326274204956638820506474944431744552384816361135431082372328730375042729400878988661157377486225011825110586866148620098708561731339159148507582179462417081803686614673816290440232769530625221182027039220794144023367746740722449544397329725156314181917023384625352297111872262987194909466021652506572757898874683063511413974597326855106386099231712060863667584926976718293043269109656580265104924905470193211044724424993259021245156106156580260822929982192826278299812314919650892866021072244626504899833582411303003046776118662481886636997408121011269130380675077990150602785461666464508774619762070213931031546598955899954926330642277592481494573981288460651590496544768960926808179917643915714729208134147778942913898005815320189965230468022086585522987999290590237047702887632104300426694287832612407263037939894088293249063270904301128753727545136163454928634521317624669186880768256610609467535753416080617925396642003681582074625970641179504066670963331122946345322283472662670120084620461235258202774313921070948185692003800893801825448966886400721078483796190128668362986630597046201085505194974622228045437855697697912725396017777126277892122190303433162129291504993316645227699289799054881982981201379743623288177802659681433349823608512608585282259654568160803092094609536399311579585634323337788826132473974323094966248205822885338922680012091419605260786092072923555385314289107219103023350209788741505159403828661537391529338251023384492599191523442025558952990135459895306129614698952515470803332791163551579690677477468359308209920527562826867803038672840043099317448413046039265365033217450472473994067198500535619547238143094848943361119920562216137975076717847331254711385345795605077130905540949402607332506201571363413554205729867604159584991676365529282652465542805546560521568332375760523290746998984925831260097086434417702204387007149969321602569722812369577955293298810107194849598240268407622022099736378528746705465987375194493362140775953708300634445406493808231611564982896117402557663293982091747712902566383787831594841665436680814006012627573547787197922419091030309985804589540911098118260827600097626809292407893991458688058469788604003291851608875543508131712297613895057653246831010347091180808353881331578621508157393138309217026058564847021891273797912933655418842465801521257993832628555493332566832221078655102386980793122293139746456349653309478453374248370934671673635069872708470328269921469454107859173534364454446744968302620984971883632912750130487455665190271139086381831150006816618706207005946317140867381269066933680314599688668897575382030241658458834292058295068026962250279144737628277677361090286593074730885601376988602359718003950624867425486616993889462735732710729140292327244410368018333530741717628533509559214221182348781338990645536829349105242632955448648859671067889279610508544122247527704356764465880057805608484244669324226077827320605293694470672417014585318410273057638310029635666145671619577391093881329873619569215247653487775936332059681775041560298566877315169868859889912606152821702483841890876383430511895713272246386320981963535292202111456580973704309734420127029386533637302134628309435580949955796298381192849868332363833452162826462747013160496028057666923579428526317610886504642914501532406090723469441038430552005723255126757500824121504695379822867094490480769987091704733417596606268937773701694312479407717405052744350127162758472547949132728289075094706602959641455558059057624575572290864888690467717521610422687329944305079493344474706164663566987583769336960214203041818893877464593466392346247476961538211624011167319854802289486058676709470992032251129290101081935816106890555335675531096198907406420265633398149087117147344495477840611944117057146841898232302376390596606069542730111103474754259970794295894472830362665814269530453829338617816560781493504172296430560629626317904747061530620096481002366382966964973837268005342498727154265585386722654727772783443350694466475696696936519389990161251511711958985416459765396179021924924564129521625671964705114942301080870347912966965494482429066273215172489323722173450309737247136373528623598470807169238867649280154008079277077452645344648263644395330576841332477941967938406729219756687859653890633721403267648900821082584626798045392561218734048294489868419755715966970627561317226663926044401825711418717795745908553601479197585929866313739918688753946715977492192690670346725886585824368693406774834129298372797058098841433970674710808870828833330870977301871652284054016478594472365711783758793617260897746890825973701018251829949808217411220607449974868556088706217490701247660868322289569699400291920670186310686698394375440190077729192334789043122814712161647986401561910293812574156563747424696422936195200338605149224174940162896836099586113675500512251228334637272212157653232041139811478168790604685696067364155802039524496754303198181642637982414980631285658504918451396621860519613996792138936708172332169699046014984285424118719718539880286235767096284588008934595446717373749900550801660198634721579139340183072019931830630241780181748407632265884130062743287573683100402224643993533328064183203557234550735537641239407025221125888292104183585670173807836717448700561240164137095847859394977979052831543532549438288317007236409122351087581072239915458013758357038345329912004613252948594557455872017947655024745962149200409592299096346215025844397212711811683097630369146152123106480439567726588060430464623535956497689331607439040693918239766835380189720499891969447466578087300957907640909191963231155947092090377900276048362336062922362867925539196396418911122206655373469701879047107557356715811384094337826309868702400892286343455806136353806687926241048376849908379093667344355118403074876891316410674014614683952791563642342257455678132254728705232380886351314774165988758770502270076211832063174218174649446494263803502960725311343403860845401201940054823920088982744940033177345297921936215887323995262175195707268593374120887025577393924103142390942712583296710708191451042134920878300925885035302915023051527104710534031671545622273197243268444140011470224531482719501791651045552700760419949528854030496439507120405006966262491143382750616843950735477057917781905305525961510621426489214089105299300049148293506156163280914932393958374722477674277629835606466654189672688077378538946999848527113435509468884256116846426974496558052618705969716240466574478665641511471957481228341318303249048269117086394668702270605794957453227940664090197387637403842274951838959488455782201844546615886614067510434710045824913129837211771548018762640732743268180615912486801476840580224433620151397194858788133812531051733944410662316738507446268157985223350077106600454707078787005371229869977994013983617808171670350363887376455921952590613431301256391504870613221371490579429477249984149240790963820302456822024744989554599808337820603794998527804046776162002827731148664410347586638164751947022669086147367122073687182299077701839906814323167499255438372852509473923412819315570853187065290486155901221208333705722886247291050531689435589516292666012247823338085301945705394899145894342886923376513339086721624382166728226809303702379707968002941500731096298149383293110301323384865497173387284313583614861414364731573497741422643661267381849728644888426213654659969885532958205296454164959755318929293292781589791466846677195426491932416295321295667251708131636290486293350487384924773512395433724366922450595003725347081777359766928912751182827167310908291979256827900569930227584547637790496162684016169424922220615733527391996975508477460709449138164115600711808335071179308120573691910199277742143692581989722238100038276636988741870106326564960895857879750497906600795634412458914278006777790227258642650631852940103919613387820335089207188799455287647913663344875796632226867919696876682131997130942735747329633060154707507136955229218677118500892593031899303672961906375741653786250880775835307171984571284554559343064831972302325673310842747287518235294525601821325021256371671079003729441109326252155749435747279258475651451948975649522356789677572090501458583185391768399131929136860412677899161375784049891675019100530220177797560980543413489331375500603608946367360486434618597555685311423699203719895530538267279853486244883052739190383828815682393963968529619387373859790935744695036647255269691796141777905590663812099434277158215645764857944682110387846153137937602505376484304477061174205898629284824467061790676259173178286957651876325660249938632080248065003834358552053744357596429554060580198730388321527220548493353610876796926821565455137211668881409429736587863434007966320969218036152500635608006681380370781103846473362181245272369404564377929770722184659900274308683584309766794958276427225673468305912703495417911663458150720880085273240572015179051674539113284300081954372468455874368714697046891579804873023140712028331436913717750613456484690612919655218714511336446894182721767447517112417758118010851603227188765516754997820316996829018173869898154914243851069263103449076547526222084092098509325438774509978167169433323235550964041728365159525993460676518427081928878277620901243331348884950517079334437257957582940996855396151150507779548408629170894649156369604915236521377735153664323109324298997423623011317337865954908187489979729430062939891742358983720758058863372037864571093514720865092015872660140385142617480175955514700086771324387476325540324522982454258678183526046219544314441005824864960954801609422676381134277952915511279053141918447199428984501589016101078801039368011147129972149848467313715388255640733560864044561766362487840483177340679690750632128964865982359564151770945987753377976118283745293806295158639790964550345529062775529607943360065280548783017546708507300648846631889197147644472860924077004826452074281521834436388773060798416257780344126258452959171809686283108531475267396579359956151925331429458059565012333750317206959108602238002249546195492656000849399019718123356943275207775077241066330131605722295699093310815621871175026344811903146679268824582536751290214656000681246523480465603405061409141696940257296248731618434404690979803686820780770559079622562788618328466084088345058331221618127457776989030684785565910237626241468416893048014426367681631884287180331723918937370616077769201484692608200430394634251716140107338269974328260165962880867227754911378460008304851369575003009251160776913546567259042502504162421588188459188790984414914201346651834753421998905137875093493827462112560929715422640141660239704946820800511832947163780784621851619346078110570144025526568840224242309971267022571426876999764758755205942635249543401143696666376134165173317285715171685985638709845781668130385106115254065153844859734172739020205601161817996601451761039095501887238994235032262926990585265190432753027390991685989637323467738998829921287849653281809119052601855430063846097179895810534800444683623595831659404727852238517566953092697784810474161097185517621428455453203114557840893334825828820491885448566794538769668108447774681159081271784032418107475594961497033707138141299623104594272814826957295852708242702333309365365162533077757924539533721614666560772890882583953563553906239651084346366456068061716943926871404032781089179749028754464319177576694096196223686445055351204484260740732079313040743296434956327126725690882261875845314451790210162615916534965359124265664099527555419298157573460803131084310622143562039306567802210574184439328250679178296361847748029510648790868144102693461216467588191870854665843606149898245196614542695787058541962025781620144418334855201292866116892523441639927973413464742335792363475394243293745169025286210737354761703564596809256047654701353412156859031268740693566437817541788172834232330361532221305474014077649828597792195159296788302554530558394734587361607896614029263303204327675364184220198099855824481539730115045245159966659010299869738010686576587308977413749987799923256156307732499375535747095254520228210705677117473300523798834432506193599062505025819810990903078851868596439003374167702194484761164726742830372852210542006119800125421292319431899332226911842861697131469356387245514112464124811379771407948068600320417800059245167659649078242262737214870215974324024228669134159036326263784506886067964891517929996530624423381367860773709908053338489551134256281317049792298567833459980027902836166547081014552023540377570718803059586914989987030348171319760707856201597127982037373019664944362017937119841325163549741316560760388168549950341085300471706194499214735198256647356554671704704403698613105048963808545758173681265327057510392271857297692207845125530100238875661007096615399296694938820151002379973707213362399013125252823562347302634632822123102965050490972755728743184919041000977708801418110624973451272111040051177487998972643491178168685126035604391813653834566587745738996895299411867483167897542664252979238029159098655294245363498454116198893040396457557811387762463427835516069096752220704729961659872822517842478369480389515639146679585427862789428589470210485606584909034452935562895569376050251360460742043941960166168675207853002548530086440777816983649673305017420329371991470038324294776036629594202729837436340797682710905960655199756588259638404617842215405258704762168792916405264421481128259628490598218496876865348392984797472628377046197322747274500350837228128752012616159929174388614305628193135240666747794761816248702248757482089998650777659663097551202441291303573571604071117888150441227766003096957504403975123798448785896647855018675067249973965162132070142410351481061952697084278288702658916177317650179439625688554263599159274358672980586882584429389649100281276836362256827370679281908848273421586565170835549826468288320558379518525839636521571530641381338241374486454966976187899692511088116891729906547303170341475968049027561872953233165120475918763627714560629628389278844937277885829288926141390776456153663435998028274011479302703633615942951596392565083665951405990027035370042973415773630038663686933612306032930564503778154357667688038626422406882631510786529127929418441687854881403112115854381841236211052040620882819767554391288537054918487672471561323983195997565345413062864633152475802083318680839165627050470185389224070062991727088915243017679445182981304074258339858362372999644934026366709675048317834501325631631802187058103087551095301530861549345150957821930703473536243552098806018559993155136348289074368448536245129258636156182679230590620836880647341891571442201602889198739868209434608197724745651571973736730970759131430200268047558743987303789214593738014920519067488261140333549914575756785521875999007044294342866701164502772557087889662216331205548410202171520890304561309349099539274795079350518783113440089133167546986252786242154310696032433599948342124696072001036670027137694255526615635805493865486970165066115394830241430727337291911244559979743022402915707389276650726701498036993971180339524906566433540468917558393890949463570019808435008853745565318624691445308256029249133702858453705441045281996574857290046989881689150143741358544331782060637134584108293027535576337647010343169736415950973000986824038142536336516640345251507613599578398103569429935320080467864060519978748941486907037877991693181134490461624586609012216798229471552349866651927418885778105360181833049213781538216315109094502988952714689821960987949359600099255763356631285559103018344060880890481710067825864236111670809316999180777261604384609849513310819558774729425220197576782716766149811704681282050316330397991211958926153384060788962409696817825482568003729002043755556443952603925762167151162206466565227697927877706942842885212293748736796711226261921188006729050539857203013577753036064030081767636215308453358442677405135297891567873395450352852876998403306611337875661002658218012820830668086190020185878854674169735294380392128763192807368719181297796330612425623167503458900743919512893740790015241377235478884964270518317370988244407817037784162846652020244244668043280364274210280998370905967204544744524578306106445277990387214051556659565479259209650342508790799711264780932731529730426960878000299908137066539472740005986251574756644435220030504124329930886744010481883461152236259803845432223212165102460977781688124126564023190589951167006567196332401017637306377471915673227450009432269882510655671473282798906738895643810135748477511091395890218294795286800969968370716449177597546982756920097899687887268455315885464082064395732666185692667805125886815658033138841628895544890647048197121298571947119538912586054448788891576518682738762931934308259706688400612402516981294884966816353838885939308302416042764369447309061633996942610096507980209886579350517466755522720037462481465184902250753660159544210286782664217511028972184571927774202774406502370644978536083901268295749277464414092743017229230554348885722734249139246702972492897602726851480099932602575103646769054431251414368062678087250290907676916183595859989029334508088017474501616683272091176916339551741331533531524162452310262585778776335071345702486476916641719796861095264369617638434525757754490437372649798313344494959771042663046818314512991215336480364029209796980425971196951138217855440937269528560020723911689840441906219398847607896743344538446312668045324668753276902717395194836594842620291383860170417834193167297576188929384786442869205971500916793610579841213572385447495223690217505680310407688659049880534521949179576541156503414013154606580599191211976151272970419315112565259026233822808848417318000630570307116821129235005122361160023011041181041494409219094108017932659536272539896967677921950608594920994245806389803428382001471359116243044414314375735711675744712664868980496289201006923752522801506784791598506196852864324643987915563926110430369504338243078420242078313818864146912959698634147745569860769022569070725995451378838241959358952437587077362593714002419353022658523322326598291247517092471108745256638001121077569582997588433327144644683819322233508319254331205423844523898133597992887420073635175482844280321715025588160341621919145944378924567163032437727514819265737489304187741287585984591342188251657528274173274174761816163929796439854907826375776684819751296542620713410079711836709383601462513919699267706563248074260350575856159598230878242589756437467286792465757431240416977762245722358753547465103086762097738265762925273529375496090584566040828947615556606022567411624196964980693187471934798968495924333041355465316742648594576622668065567466326313173067549439145825257581473468597821664194297343197199769718538252096396079326158703648565307753198375083110936517254431071252631809044647717162399750394825935226244755217463560246146077775345927171289996279383170885382970467866250834366356271899835750178570180536111208885989435924687245718179106005620182683516350510600938956247532642993653235812830571302076131306129355366187565899181934825402853535907316215431674400073361911833063934462738076355022530519947308569581187032666518394633099885311841759979768579195918035905197094230972865602507554630699919882708759663322177857002322415473358650645232578736101991706738782459440037241640562920801978886141377201016821441743552800117833452516998706564660485845003881168880405168349222207117595515911647475635923680423653295400801836243931068078025977860170658125577408890711575698545901669649068413492827254852613249417600360661045362429981056807242878940273355956652469339465947662661183669156598567291136797080548406191452810380967053778165935480165510139175850463318233003900102461053041764373639480942959969680057430255251485088236815522054299557699758337562219508800072416231606442335514596797450594529866239459558794317891228274799968447881232928406954220538880508926749621528753935992401589225656271914736617646910782256545535932051736556011288631142926726168703319080440091351131555225539760900973383417353886616658342720246856874395122286384538542965299855959356846909120505410632010629614989888202222081613018706788446521450002995295660195198553811244792818396200115007435146573548668504176662434852200713614466786247485616984602649083414627102989901326228756989065505152003111829633582489419339153200274332433387009204520382935020796411090515130780152055168420697845309045862264082829170499304307725169678263803568250319156175401347482101794122334419453225043505871417195261635191045415512910141342914324699062205609518246131179913200298477393860704937606546398458842008232090511713007171937956712575384689449005362568814219831733847984487507495910976135029557634812607234618405670580664844018005015045236987519300774613776662079035420335768621185503389827277155121792017149237192365036904293150404755374782648968209001594591641737315923204459353926826918534960107842956881238347662383912193045080329601766397447317927786581305958887369569216417803446419630667611244763529668230132799920380028251406263788555263551003578534890105265221953516742534951029255374441905256647332330376682032158289119004595613481843329632392359612260384822758504818624835022328190766766211866650414087892743357148629289278869865604631066706686932171593144629667583157625182520988254314514516571784680992952673957364531970054768086064833251465247665269539095552081618360606687242993615466011811902921613949483647603272676384410023968439302953076849860606781123983319654268465887452194125498655543275223808332981808229666161058441672218952958290740112292665883048705622199206852621084110604508186541105778133917459714517833975355318303843380683298486872499860069013840122117824247834055767058854443323779771088890443627561249462743784357049215818641743960161575824587952981453337327487815613428131394239054555937532669408312808442183364944308285529953611172434018444143164136100239954737053039216718483556065487734375744075165743656760670860661509811469474166213261382024195594913382344156270178348072447020468450725282058805842857084776489730879660281422961850308867462599328321488825331839171563625803221921584507874586476979954406016032402079782262861755271646777341206341750717425969271157530182812365193084012567040928744659805442360949191948572616288355919501650786490313079627320361786770539845639013477054308910459939921500024845889085160209970996211063746136173565046058247604780379951127174655948485692652159653644370849561013714640957612452746490289206517482623488631209501141866718333231746064059231327826906277478658483497080869765083278951057445015792237363457206766390003991667531271413912843454497004042367807367417925882305747136770948617352308732260106165389954269201607285958349554358262583533479191190044271532065984982014744276288203282351609882298961739444402749626327894231183878220723266193509372403242008239732464907589407276809167864728807473985089346507902963586667969056185800067574273966790410618428698028189784361974229745302454866513466089668125263128399187559501777088464990562159247576033265983220596583345989436358324358725532159597465064342831347899630408911083762704485323473472781515225747828333694701865973469532937662443962745058553414949311405067537440815098131783730296621575156270164744008737069749148313701427946926533307404755346034052934599897744888483030563773193858284119475483678251136941900376174554082896782811740932128430627578998705375270870710372173862061321337033066990143324960531629616792127881942746414436252304229241162484877239623603890922045109024191131118911949842006095517783710136397233664184062589954277241037502090760422027433725391995580532406347587253123533574320041335385027896178682672564330999517467650525389165120881879516729931831246587404020459914495227903497382101259567954584750863035009753049533344261639718553844018690592738407717723317914802920981542828337247747543859839062801946508284422561451974308847676018437457481710618203096473755004901465624456176647050821897483158323594036021291558903037053791174183828881698626565354238300524411443238671493855818215425380962788557040122455539473663422426996132786220552081276819329352239343358815452943405700031751107307633626658955564121358660439324486548990050915158865850527878623097735272958528138023704075881273970740434854601660940296259948226655276919679250691993498711552956511901783136456628013128024332837832175704767128011205893578814541696821895541435689814383732097414434709858533137264099014272445076819972168671410285853270868961057733205236571857721779680288719266941675798233657332609571680449245921743578703448576791779539335983297431416616217402768248014440047258027674668317486581999898250493382843668749922536780296607996055296645600763317782580265990548962120948215256031118606883235845925737852952796607011992265153772386283063386288916218582743458870663122177159054767531137193088599102195115579515009970893838600519066888902250763402462919443969151364967407948933012378199495137741255044497365343067568421540506031688407986222937904049266930214233702714804942011098074615525578642660133438222672359369479806073430916213275775088778182755662090505301101724780786809432371278836790163619673026251068166602590422898165471098285957011003761593461261125205661044358075722925096940896124928980605108882561002833563818094001478716963212585984034426819427096399952015769818677013460251845582441996409950173968510362508787715178374176226506269372702750228072672614614656923918809218342744286428755044471677151513944549579283531619130252886387638284873793786819700099605023428577310106878515386744899477577014293372767789871988675557156977575066320599276313643376954507318461324627502090974402685535136156008961429142877167108810674457236913633404767942074094358517358328281939754925179314649429935372459309155398404835906129867029799274399030661594987827475473683988917190752403259611509641205536176445456497019776665769239772399612301421697691464627344560087143477870765544772394822438883579672762549424296897949293646912170531639624274186252533482837850532376375367903976882409176199849617281309289827454431257866168265039135870559821704028317743974906073180895430689087798655034119494391789947783152736723683141077178929360379169974778942769711966958462052004336532568086813627238484022371077498465593457444262638866611973004439275574859083358275256914192720013526846694457178658232823881216534471619988501760113432819157622552519878288195335563667899548169876568429084321531607859883639388422777021701273124501582951966394315216833495992222322563891857575925553800429224601846402504876291999835720663982390112126948912770757539258768442900301365807917825502334971366875006192205335756193892312937050718786877119620812897875849157739320782641595760998188788811417169542556499037168351108780465455558495453033767786182164706888632540211337597420080915075182409175135332048195259782121642905564414481351364685996039638300857290843423471907381999058414419035142219381031165663094061950632341311713146169312018350317032181602809104841039896208961759640435592917020685604426878205993416073219099446960455307372165335166583290867324482801244224288655546390547393697152340432356842265276945562921221238729591240438414026201930639535237297573488149570912813389710766104165033642956932853517318798702430125199268313494997635680732321346539024772327245493098016888254257922673696356955224017049374354177503199344936745622696842514925171431492940485421312106069741346779100752494837610409025019926055859637398651353300252955672706319266556305701171977292896862979862388787398007881305690176605912030790800784294027201191124628437601956571062397547878372028465569883986858602029248962012942085043383269184296757000649963837283626380213454049945339183459658371394411499088214317091621520521471691409353851785112095637802404252230112865083955713568614550144949243971359599487796406739755968575585926501302996182507009387221202827783784146821266534905693373168074825910932771589020025002565745612840377262333243063145394140873288630518535292893933153677105585629857967140000499508888641962938703371667518203748195393724504380230614029467634854743717903643957777265316275448981974708153079999294216337933617480744706084135138380387292304159323342106797521325843387329849273433022158397038877236069348311145545773262831923387107862473449690814283409017749313027652221079016323377145890243348904637062138526461608830409039146291660094003230731033831003340207731319263828108041125552157423346063842584063376319522072570115081501634624922522202272133448084235144232116195881770090814291373543795786313182306185288067254902692634155588219460040111617136986647041296205860546790746658246170644495553439373281164555639045089348983191424973163749781803547423518103571159740738997592002864512175208486693462214691137467743813676647907786992679596810115606000794958914553001222935596279245151734382007212511385018964168394425785202205208267837766211638017611838400248111214090844684124409438913471210358354618167442261192549153675361929533880066760397748816016662869861979312832887411986850453650642320863548173852407514541981155379467095120166845661973479485657764738216356468174965030983366313630347483360749315289505060953039016469082702795901775297384806444449246090638375510179022900162146129996859017384345594175090523250125712899775720914434456187491089198118390762090403186680413280104793078274403580721374021572301527447926788872455908310145926923410838009403592807435815383263298439079780241755461837431707769071561592419166759728218412064158273604131846724762408930603054171398595221358920915216635280068434395527442256229399340082086535467044439331357496622814689575857602494266823203945519825313043466201668208268874119976575647729872189050537936886075329872611037681866571324881928349962976225672210514795992910514494549671755548419241573877562936389026384930514334138393291106015823018979141858351071012391581227160875859378369788313758677357565577097539523713079750724770932802203984216197738807850166254189530581704134325245855658696738441874474689415462294805729573648908243886100151765841233475232239626525239223717017507940507101381419013871759881190659305768859550008099528999527568062622212134189124296539559890407754745363283610622643111684432056362641643861698010111821468580831579992055964475075367239910349285635173946862364238431650068653687927984011667198335635191336250186980413678245521762884501864685534359139500252803371451076652810135504556677861204426534117877051931199235964602500745821597413363907828080367916788399167015893006141075473351846236034616618335658571920982809230895951903402114820251253522767146208775521340390768694098358417408153507741823590417265282434434095847950706391435273801105738809288146180169897335611937869751497266637725809648618105380792453890862858333911335233234645985282897350953021993064667691709284587054405856557174954474122157841945446846806263930200960373797431686915899005751578358839266096926071890955727715906865210568518015984159155450389153656466295992528697952641640885344668770986272354018185483422736967641763993346572301682909691913274260603369135038908720659972934354015648640898355778854607415104219539518647520014233837663216616023658657372281089944524770544640111554523347618464083388650278528564808996010073911734498957674684953776576853516039137523898025393623348522791439736539788564441021848344805247860047206210073161861667879209346039072314606555023911398954276814566357288538262806037211959026760349084117094109590286631396991654072681968103876328955316292770075138190210382181742918549326190747347256541217234468371581843954114303471303459900128538109018847369983164847681099739209658022205186540501465620020857389337284857532407391501715698834661511137657566846138291010413617487520733697527893106542831705189582861090647559541763774456077825448830538939225226394810187774901122275093846467842728026202488457033827379898177763821340303255534409129514905243626829122983728917618450250689717968660655530936066797230691387264369422518280853818091826732644994713271194365411967119689393499765700050822934856105468470666734379609907610252191246351902933848189623595374025531264297561971073298705187267911870237643015061762504857666230744438891987740945501222567145873497390901950604722354790819493925011295623939774777530501115542108634750404084113444126493480583954176584292937738746300708359700680770430140898567389992240277772165431366964959709046737610347117361263131110021104327676736292021606762542601850236018616991073691675160910967144379500959987877673658539181421225609336197711997497169201346279108136417946712382924971391852065993372043206620717355636834460731378444253372179998891412229490793656927815675086051945866829282020595107146073620908438833062427301147669009522375947732772811657586260334528664886520069742180064388096068914068391887923822379165268283601596632684719764692328141553587356995047779653512815196977079087360295752344785009693363379828887298622576092702341462543253369677962680585917538149863127448822823500163250587207592238014145568640389923516691023178921622421145926356796163114290119432420862664255153984110468505871791895860120556849200889312061304374280024776174527661842921588759574647388692956517864197064180034455266011013537264508862313649416117679398876165105942575277210715733703038035476932187087077737538694341492782969679266249348319267688996673339982344191910616035152177973670584112777076905019475466429709540585036445911750926100152129589199782673884587312658350966990598721307569526533886495878814837160124239648070600298910695195920735741063983902371299759995264065332279022461387338788963616625897995660624792211800652318811611643894415985840416143043281318170623021816799093944487933498680759379606460629428409562643185705120847271976416128831439024833425933039004042737728957967441958345692412667907373197719228253750667165873303618875351297683750882325569598676597526008627455058521729934499506030764424881963734395304826174606134000614986615680745749150581308535188634141759887097978088898106166858360166689040885635067782465174704963595463466095726815286815934956633254277377799096389153190374562965412685628280451415902919827081271753468143003144692700078343523470137772263588329905099721495889501920640589755485198568603113519984339838889272396519823162327710624897317496983507988689967060006892989472259494685106808030143201059677546653963341490167014762552805430628783976170489598287765874969922651800653181034273317069820791400215693827329052808267048585019354943030952333454998945056478562552469190018222713205540364919382722359038907684885701556738142641631314134426480292237554080957929909053604457873526876779246046628328737075015139795513072003824137552715475792825988254188678866683226336062723898377510081556788345084172232671065236387125588829395265725929149846813473247001190976638901604579541558015124978024890702703919612335425117839686176009956264724170011975558885263301563897702632638403153869788000403551069419008668664461370822864384270160415034009946921103766916347428977160274140853036776000394294709634317567589379039728742718691274765358742586798289704473500847174036657392112108732054743149346980911089110116368049157208827662016764471557714251395820993589880758501400827905541680377920465331184082010442342702589034430105898043103189873722686349221305158917104510573238362472864586950616476951928907613521233872275389803482502321840468066807959886694006792764487799138832843396757952399353702901786645385967032911110224960932136048335846992686936919569519372877944675057451501857315705758713173807510335572678391440953590513557315704003665430850878928242305133060955772125405037214599164619507375871798911758999685132752651751167443951704370658847975028026862281642413759574354102844450432468827349063479514493403263962779810949485715157141611579417047789113225868536468917427151600469397423841710486486359949893330155915166870680379097559893353934360728683176697782168771249195075596616935084297031189047978992588938889000525814155064583219763144710691839934036889803811631255426644919543165834899106821125001176479692181709600102561869888522512673525038328954124072559050796966949508100361584743302036617084394173148118909803557943076139684408927909045036160945499630627434175557947425663910610918186694767939776991870188439681229410734091561115732922430784100824419002180892542141564744998011228149727214777661940609681302780337587874416670809946403627213520552372969402136407723640200285419009436116571514524738632211244555098554268224100457456218476522407118564632076459234812660586597356276886800011559714780375142097682840406722660790833986690397679717243690933195378517239378925288754643794425892008752179149749227456244040918905927296496856244269076876669564205848569632395280888603924977127933075077967826890393700325755172982185379078540096414479640237352616652051771552720563454443373272446362716754981279224071193307751503695553758299480063194694164859324880928064035672216870391087035653677469491029475926231325601075749551799818015751342340612904657140165437878212377756165576705009299515409494491975994807524562056205787863870417392155694048802877025730037477582027965221417842173237316660174870981951986906088863119220348119877198300419995376337333347715663857664481995917543101984580858350444700947741448563302136770230256358793011938038668973022230978564941329607557372651250046408889882686301281136796998723174008501727373211154904232689897848282754057982570323859613594277502220188188808476572122348074738127172500296592424106879114829804316640290679688845545432234887890049749777787934491313516803181207209188689794292247119740088127808542551294066956866215032885642329878790890092713029680672046125539805947358554218042366515000944130061276510195746878029215981510072274592306029214426823737656083840077625594242905947545964860292044730348999345860899376415137032395987412184800075234590442980799922762785936604267604916915397016759055783270874626594612814682817339208045977516858324343542847820088879086482523655498622847879422355691854367342014894618127300060500718481427675092309893373930612278511150358094697720761219010448247291214635723390694867174919947177816667363527500035613830142866816350872745796472516820341550728755025339983843847928570629148019049302235484792153967647207347716415238100030300759133843964296738615671869650439958129472028872906934833730621519312369960722244768353281166207128629445788692747170011437873186857545020579810029691058722054226156828651637619743834470432769397707760850890839055387697609253167534072021516639217188489609727092431485084423597033694396863004599653429144625781335985661983794995247417414239617938756031610936496622002364815398700166116530081367789123761066416176695660736230961732380748131887249595400897720056240847018650379259800414593717706277742196778200970832259029575548010862155487289891520793052457381204424982188884042016088639086533010952880302516507741859795699974402048954020752997419625821907499204096601254563561489299355383143158269843838210715811614302707430279328097668448411467412495836238088713122823801265125715563199149505899940840841300193832402231778068326177686908820081763340094630855728135370210724181479407427358642279548192468292632395909162851664208082786566968286592589354635171954554197650771553113112875215045365700585244674331538449026587676317252388619221660022020992940305047018087906250520455669056525877055268374057666926012441554415780776160258186925954955231121518733786567128616210190491010827524521739414785641718290116983232057220648832166498766471380086097475645161464082442884853125339463563721646387121472167948941510115626863784277588780956765736540980180978548165714703338852077566009374667478757360526715474033226582505645706768512432649336909079390555122355555651276448615328750816171433220438918478837173291399539736551041860042842265115837460115236531323749262526026478023369751259854687705057370748727038400392487293104545271978095904120518229376056461924463724267924630591262018757669572496271232334166950229909636258112144464661940609054988231219253328727639893948435989975538756645818761319905530314939525978728631151296842098743325778366986099522591300277975972350611608741746243302479807312721346241117294398079201379603654316992511444778940400360430947430875997224033885986672090498745566212249591488005064685084355741127291941900042122178825803296306235382056347277679019389166457157975224957858114189131482296474485325348748364338902145904614739892692922359963601134716429948494665489919465958957160647365118770725648875501416968818152026816060117373922456951955322045856497088676869247214280405231126233570757179311443561608643378553435110223040868998352625431607226203683907089541294185109718753884244283057481414118596680837044174408020185989780168428677080491180225116721163627948406998332120129814466046694157951205781592855926641158266225001175174173502747655731989177327705440792675740780705842796863762430823777600746251523957242967832634088124830419110198335808473573967710582512106664316968544383818111032612420488498647194702345051497347265928367178659686016235730418693422441709463786404590338747699015927643298147186978608216428699420356223416809393131101195115280657534391482718571788145447579638289921606601003202864092224505413076439186051454669087448085078367399950248727318262315901700217892282157106562972588794249663279961138949483935090258164125706503577830667549435552205763888067567688666354852365916438017436220693335504648229234824333935152762240650530050885801869080658048298314022272036887779402136402833530375113493726554632010630616834632017743466791422168962784628422898950980527325659210217709869273840191130938976765223404789608765168866043859341096575578216740951838596660145823312868185893827347282772819439745071110737916213605907740770002977333169144678179253261083678319027903379786214316066988358909825887555822216882772999534007243489994912891667681921008011751277130039484341886286413422205280516210543904773397213935084663447453627830475849772511545359429701371026169339157705980951408509374934232378568863404665134378705446049037807352892139237071531905161970552711252720846524925664888849161359197346781381704527211919933258024713655622209568506681170722172559095795826795705564620338600966968527819112167061301151195429724380973312986744206223257661386896969358352557158276228195311796918016368281716067744125263927885793195367332762068719841027505582389771098789534906235497437176878121298839349732848039134667522459619520366124121148170993589869368257124257429660827252627218213968154293018574512374058545243526127616250536128443020137187193211057800714762728512968363016701551884593251169047716175731418890292424977709032428194907596133003635232159379824665982272695561103128864429061553688710431004619001661030884190927633861710178621081734598160072612800820939210944901105528460475850517985788558231695860155128897351655387499084128911864641184481892097877406225653956304599656951952954548601214771082016119779406884900157928939440276306294364934607221065854078370702548303261676942995580151569120180896159981330296984372096746280004206810971781083811741935566330401109403026467279434823200959708530034013709149954894314424520619888679072478448204538311004074631871662487800128800902477007961375679587808570573829535235775910372989363796289564337387431229621417360986501988268310934495250698458170857630911939086571561285433708592471706292942583598881033420156270962723388192242648206934403914524797435013189463923528674217871190981577459194012851387529440871022765467064853101641592121783606672936349877059329378490014617956414680369262732887735746129119288571622276813514827257654187352807708365329758664980286701178574684194782505291774327913009711336389525868497326502714180916390980934507612373856889739731395153555745274274553118599635585725410231557362086263462215280393525523722426689730665701975518935172647853769845074061345801612025361425323413679968027467343861063325609863092271164050893616414201553144785449185198949662723774810071954240873201141972309874796193734525878945950873779978187267992240936398962759110242748347987244227908551557005151691920675362920869439623402359536833254485752286147949113726122774194880047769218607502486448609130600884142976826372396335938013031032612954737698892959667540163056548172951219712533541421088545481539673652793861184688147704200159642770352497030307730723081972311238089274808912369370955166912360915248775819212242627624776890133417138884342667857719631895563483016493555905470900837131614624553525847185742014819023812810490348900793319682660898142458170130555423146106239584455836391506643236468903390146295792374629583971933951480955241237186198414754585727991782083350370356604954217150217244017399857777020215943393897371857237983804015534817004110945008352435045616799437185085271148390592893766844582207001102987772732678308135913192895817149351044956358363321704025128000958908397678673133842821421792024845633002295114633267672719633188639837477204151504056128779279789575745985014532286079652468987166762237902983962818137753420117806272993831814113436234208600531526370823657693202814307598704590496903703188337748395379488594234368331209926171687770849252668203943315616031760021638470072013468581155109026585683913765462253169288485872515413405525794261182411932924167587047578759937240869078622240530104795630548729551549775236792131256042753384264528276099458600626234202835884942477098173172226392487742774165754046234135029389059588697107666674918777394974245252859927155634843016688972448882894089774361751025083597588888004124621556886438003503081205658851467887065659316708085834879823777982220666521461534880539639046932387806080155918144066717074337589154623285094744557520261479709466878837069102610121588161574451956614452384151831811276266512955036083399597549113361014151452231862237272083496203857831318820486535207094939162175377123547105064022853494324382507379152985985306592020571085980070420240401160443461041908011610179378244550887441668987987741175838952822909276698898700989760265866840191058329369821078787776168190342267515985698603666393561995059486290431239595988435537851724722701900298373312011021949636156220542554524403113046584387885696052478615832882151471567713033631980560524114703740098829461506576078748529809660894667454575213052085119551433175095653163903995337842584955649755443402686647473931626298484064571400132747630510699028162331309281266507208659855506646133025003117474498452929161214989163598635663770453551748344828166423377496064399629491155128065644523448203660853945217068058533821401746050970053121602733294500513089643543027520084060690953217464454826747056963903199780643180536221343406321422304074718728845571774406789762414638056482621926343021205531101320069721759106753805410512615478846204364588337463964527346051988557306903603984771271461597466638293107893391973644637566460780962628722762789099994797817395922007703298127062366158689633386694867077108211614509531984715947589348760582101299451716248862138350994032110797462285266075781100725940919149808828644265018197480814910287026852711632737265445876114143016429697421311639632702185130680841593966147617974127042213262616803187260245394380137609107558261703141507195524047905550201053274845392950322858571293216318402209402571864891272725208452682256777294234281607977103148544590235890296329770100104653105121064478718975876675650510441623322269475521679706599890489614573172098856007890874176060448799722085319965777999198757336555090402132414209039576964539734585414622068387179481251563972723939165285242348883556260913548855201201575545448063519594719180421418472481169140518230611010257461188723303604220560113012331112249376058619714746789952258940710726595895086796182175446711999634605202445269711566541743682165997344339497214008067424537401075383653710863939011366155646759602271638520836100434618064661392341226164154396562618392821682806539949384267463603412483774781815673081527055670873909777670665937835094620700423564984038675038959485921677125076398964262984356921281487767105233687848958356272049585234396539089142191893197759561620172100009724162382797273056331622170901376817410860657553104581731863696369790557140657123607793846788025825546287217896494216253203994557904333665044356604290650106568358143251135509111234081197436597294297101995720084581373835888747188402721964475543672539457935138412098614031399575236097648639632110058694371617381202452433840030108473987409473473363608299825825411076320124234176204225079364620800451585956310631832767012182099021589735872719408784559059818623879718538410100724286886069989024718148677344620753210168664257413485377679849697336216728690856870654169863380247713319068642091194135532658814823443012367223519548999256337715661914898095979964438265934475847926869963853820225826957100169682625301190103417579973636135292029125239695522545761763952928899480333532837164236354609703234159395339183622773654290485518287558076200707453927902686126173332398393923084804909767515699193730091802477154732915074253353366507644327917561076553456013764140629769021042642052438324741161862362858803856903629174059991724285683951024180909636286673210358980355810687429547922988269321505184181754369056352819604528475324639583525774106562743969941063777613035853383390592665181021257389644086518076020821991991854606035735484911712526351267137692625269467382866695652730642252741112823781815748051944960136177385802196270437502102855777757903601592083635644620953459871361528188379684073664513230915682296343132301569295304166388311215680880470236396036918280750512227273370759701376576100550856819595760850101763408698064433466976563884492097841824626840780027733020247933456087460876393194844165654497691892289246068629754716740970306324285267643506591670866221634669490577843671505075793252108781300332529424736422055483744090646218635337299103442993538941995143327849929268688364801914888412220645789311069348298616121424602279439268490548652588874146976306699091711022228762164715937146053223115191435436067824459675364643492060298911519794892115036901328595968574209317163791902707743835231964291553855941538453931416209773021577806415471206363971378619088399159459840540008838426876345518125650557083794676566174791382672563483929836441069206755052464623993356796137077211023691211548400013774372988361827395904669811585813034681588363481291044887580032552179820815667505248892207603096859561118680899017116290244778704278252282815494684111258901953781864513758648225475928390046956869199910644380846073129781323072447242943469478399833716095626411085751060378242602592051130818405707505983909578827881767042050655527793359050601020265763934330477911498287090124027739495813580399378969421494490542281895044472131200182572467612145751236935791678884018741523545061808704729153164625372737447488567780523954024235777945346796163241193772346654800054511982877092064145815451294428239684935585965873393080719951373296363324919832414347186039973177614415672221710619212510909779513440558184151101477178478543041873073266880271457475586969944034205660444003495810813433864110513781299246441002707603289969864355980330107309679861551824809851080164141390767095369701883410770004284011417374056219291390388932953785071917527088976966416061363429113375977056709471130809644472732720399969808882003052099974125333165744992627673093461008118496004539331596615008532580926149307972190409425220166564178243846816600436928966555347071912892266382877010754290337254026447325151765797608894317699521614426434538981791353074712069692822236283362827160467358353124174982671141289414987362295174168478932507585622907769992576396189213457324053373481275592376891562127698695678622126197566199012663655550541315742918647087518019768565555944360605826038542335636470779981149284924584322286863339834332039722198832722046032750663829963736207361114227561761085735130347415433525337925902926751391435767949463856966576887963833751599830030572539509511943835052580584099803607604606463279562918624896120682020046900542864305293410819536956849038357702163492267174522520337656476612809244986710837039122625908417861497553893040537459236800731848469759505160985507108413477035082770926780901431479111752698976655800635487669436169137633480179360597694323038953961386839490422309340953941566631003590354460876950342774504459402777441813808703549969312427522004325486232785716203541953199049958559353092778386410846935293482364740914257550676447380297454364840042736004078982255030005745849708702436772776196034558334477040037517726032468650069768006153185747051898819560984712983707221877876431303665974818945308926905691544789584412925091425721553618310873117197008037295462122958271847342410982825712445137208986310731943373557508041518876349735266734310720154822303410917390607887062501230816093489363101683775081546775700917493492654533922761330107788183313515148836307907001522643612118086799747509123393250341520235145716160189882907575144961325531706096534821745856854388046961150557551163745012767825570335451559488053457113857701709380000782523719384872125861110120047572978019934593058113144468847177927008761125719337496092660941555193305286807049620498947950803561411406726924939023606618262209898196943419809954569277690433077745792088136120171327155872155186238302314193290476749803154911306879788497543918922333221310927162887250214435748390035287271100261943304611953390019477690436640061541159056757065319014173116515132031025815276737015608773873017570428795567159074920154848144778304614144494781907100785249542870165683659506699352238304540496914833354195494163204947491947018459259316098779168909189377639209416541803874963611277868297266368022927024969337800677547167984272108193912026411635515349189553233037423181156424131012523245030286819924834899407242598790669625076990826597201026179387560193028255928495850966621828856412104362971275450572560802824006429206586457093071951197066298611400161069378142230097179790590033859415080748845951376214206386823007819434892875759653823843272578647308186753848831682704928808857713849101229647590708785976866717520721110626896782264217358062344158092814048739108577142086761151273264913091740691344507740784265063872107188430723676668916746459114622177262480401195965797603655751440453349252438954187722196159805347874769038811382474803342849059128700942279873868917279790905563648322472556904955869798397446993782577570578103325106443454221114563193657152484019847986093449850394365374830281947093992506786148905822574105795893320376669768657729616200873966329557950602549286326999250284837568182685966552570778416452210917225627070555681321215189302667870996737262816889852549562537558434215046157862901806532070309008654108944555862853474819250232044554081357518582119378852767291072911855889108216048951884935049263212364130365839559710963134294513165529913124190595936476792186845653922987929559022478914174835119015456126644221910488322497438171149277766902486786947611613658113554483650167885626733551165990219183537310682154640699253581314113901764629744126096093021559651129060523538252072258248466278761001690147102764696794512930713011385164190634969845826521913039194399830733296647638606180707966293419621120188921486734566478938142852592413244931212075074232867067172896335243582054149519353593316744018007581338684129867988464726258400549676309343733948603051378201949425472144382139878922107453790320138922093946654657413208039851645461600966035001033662648276841313451414545375347370893835143995522833167165841446054309893086960011374452567440327340526115735854898122795107022461340598278450545830386740899729717220998425765506176930174942483057222791988571698973294368690297788168511791183167014498916113054084417876774423587423118871293583266195589901617539041059318007786344778470070146567822898774758455175875617872181717178240814095927694308909240989179824907892136893403510455306973381244453284493948714583834500889158647119508026216894742534789339174492600914030888589869022276343041446268189644732690082585520670960966672780436674612734592782475848103599959637182163423482538543009550892807834131142116192516034338634609482310098634130286886890441561598493101386962172178490373618182071125942752804480360109376920602191843780571737757894148102007628691899683406441144894558843581287144349186727658993949103536905735319631776294695484815970824906756864800981870171088813411875473458157056335439850792611190514504956842914599385952769937541849928007110177380004577838401462476430667934482339185470761832468352978639375985777861433021902073150182436821252385414670128598530497755853317660990484031887477247046660469326773793550704549241872669667878767344778039282670444046728530234250781939230259149712224402253813278902726985696348466314956284333485843388923288707293983623946975810470128400673910963242205746586669702196602313600136327136496345850795814929677864643775313258148175610442894888529628385259451005672670124550173662248266987097545418350037802865590144090403830230548186327187746039806873985157562813579849413813493673793720143807969853093345922326744931902555025436875570050219103766788301257680336171105931929904419913906244701610585410916488961836238205420436882159225902287073844715745044480555361719945138709968477583277880559620512062395369485809832936357726247015356612960667563938097218750678770565468556926638011822126954471564558078256315185602057107745258229482771212311200456837228895306619503108435061368995139838394212529619693320911189330386809356151518959382117317514826153443578363708415114569165976090387702896215266049452604278939251987290238152531876328675073617985817764686497609085909168024587143198833540152340356528952203178513034533561797359959234413998364188139014791275033738047459498677835646223303987032121862060060844743269118194738687326704595718184098494662888641399225603671341397275105618516323963271591136893284605093366228018067547875626131143899286842273219693413834522735153524891152480383927133450950861238516770545637590992031961701275388057094669356934767329210490033292522078785340035737488122373890418992120963223587643839017974992399535499121907612634707567431781593467424308948583516592339375703628235817562473709049772709874780694533940572174156851921174495772988989758573794949103431937454504988916083035632885440067243245454084355149703866062859469403402046594463074381465750019454955796887038360776252939162950415542902647224813014426381688372406974600999657492243594305701678900601157091010376757949585712672356716876163879356538994697345749255412364599857673385471833380129369416585706313857159657174078969691865181978176287662547838236981054909906734374572343348075897056294687252451394186764573227756557966301734255443084587052288240146796726225352830482198699064665186323361619046581473893454218720846784665529972695767638998524842637622087145025176933580558355062117906343483243939084041647548499742478970069950573176473719543374814175743252371530434978447894398414412112260085896892899886140240046192398758853045015627036132975443139075486306185607654746902803123293138873404682761501453860021175083205395199336363901468238450432347087475383917821198450199841356196207361195211750399416721685616287074339927932982900795631961414558005955268768451697996904989555246259896970565462366844414255245778003265670209889781174517422834243683629922563075112197876139683800740344063290431792892338748019866481428336971906477059160130173124139904511124970337476840460931367239423137150342559239567985835535864331645083023604994329243132958647669741063048041819873409184627659118020840183587419919840455524855950364274562917926787262986851724058040793726963112203330878805886232598311891192431493286494646286737253391887854523067634133822982329429600234238964282794851566274091862404260945662038433316597382148716307438357489255586482407955297849569359264394510000569892075073434489872350651097072456957805843386218966274571255152253041080581834637234493729804321234616773733419637845718252917330150780023572471094735537945243546114550984200779608503598883084561155419810770743180435077643663110951950519733458424498879520038439809381966914565863499943887130553144789993717436050774940368868235272904697347621550736546266576624775881162361765907552980816417185633064863541264912556199378689393755682954818508859100409618250655975685975878887925696993265799923237550687713218309145567072304116642898207630528735215591683666255772979433243518761659763044052301053928773142515935023712995659859542463161946939112207634979419137293301526164895385363268618268310248538820925528460446913305315583265871312325698516873915131571752162693483965473807705935113470280699114286814968400778021218230062948857094741268011777552065194792501003096634256083116192772323980981245014841519430207027375902594949397374844204763296793470607219761350887866526463209618087087211662140625444367089875680899528362951755528815887653893707383938464697962962110531958701788940179505385621929974384637899226333782078380336220585622264403941605564575594501689395543685428140438562733198619674522203071671047999082300241539203847163521992769542011711887183264183715653188750241176437747662293050319439566624367209684299360372005365896900403122350698839270779066223962227533855723999853246153842245263918990399023104944991232846142809964464135081998532546680044386803953087473168845555842626304960385039306253714871676973185573451942139916863807610749482258460731839884527268019428429853990995244556214184487383915912008777183270384681336945506161079365181847633619226930802661285631730808329590124586812839421910500603237108053197714594768049023869053311491276819308913947679378282665415235655627645147693903016103647700610082546212649463404556297483273322733838922852998235974163350432560015078875407142382878143182482762018298857532834412217317198815897834269907457386653668999903943295665154699134968547607140660558627933723670191610180242929628952767045985993305001428872479492016254719937924980762434376424173318897687961666589109143426818828903237170779535569889671418502472713532512893984124244812214259257717758905481551367039859196088059048189599127138040967761198186205345440398096361144804247279418277153460891858361681478529156836073853871040450464514446472851984546648469066354392697774899465739214870958877990207115836897196200641051132020787528208582554914680399958115546093571195060860625905458267550566334686724242262952803480460731347237471178276540785545117775651468900096067595104989347677713299405618076908746766239951275518953674023019881714216642677863497617916587156408959156802630552887885758405627370228474795949867651346052654960132636974761967417506130656137186626525604419394645181872942172183241072426424853317040799729520372030157968347788462276926459288450307388296195229730598203265821303346605427851601447860126043086712959868391090616488775510399666559793908356160246650243893534156558780526618922492290678339296987479667763016381203024315930926122234373283990884916961904292491984378124955148290303156804656436159589072832689697950162989206189791252445448941875393570298820721829445045306549740860792045592380027224799405276064423992770469421166919777124923434669245310279049680676748321912326840017362695702841038527963276369414386605807967569006754098795244500914790311933613543664396644149747157644848583243824978853463694260834272457069428173217070079974600750144943814165103236619669612066807369322400403848586969442204282961022725257338012843255439919869509213819561757686695698092197371825931342153489636281034803167303500181411339338059552825451734534403258250543574563551433062102570801222962529981384792232808111102672167986010612276420300033533854637707252674464777610936810407345787471975145851768181442399739718741392686545903937006268321323620549412336445147194458627868539109430320769119826091092565243014951165968954291355019178800137384850407236818401099531611155113432180953053125604311140397382881575494804996687834403980474770956774896299192953806880919490718492369090774850827799506195060843660116942598282748806417540234121009451413995474507782722861791676287602944752815155990722341069682543646765082350916393433043431728872472661309383675519264660270528530376070297031386104863029830897411416967323833973251087719976565773552174270379355805068958553824663255532321982450049728056386279182247006194169222804856860535906669870734854401642583165687996859847768336013165402628170429374952420447745583487809175933161464967870158739042887483852660230695358603571291056788712381500729148079874045996771862690511152715941390275054436389027829277809601131541970674041539911551793044064795463872648485095459221804913737420571222502000592808457441671336490815345304031884598975853370294522869000992190506416139306058803168410309092403824003022827587134717310212153612444022939349368477359098228566041708590055806866071322718649795172167696925829658755477264499699847011031575246327484157196897432833709675000264272646816135138044183724846766127766020494123742684229067237128016044523068291655976130662495566220667363817118819412325258067771888825900723932128810857457541548833129809153007153554401636210127056109171155675322012274598652605646902644635956712496430526036932615253641595039558637258927706880682296014610095798837682411462458957485936125729575717793372869459033902627775778439426548416612010674400074943210510702928895579216692666409935358424798897901425873688117390956787540303232537334516938319654057751474235900075872527696877244396891935010841745927197802173898662986262378771114825482925897747750914031101544124166210306451824095437113821766501998460582885111907173235563430343617828762553720850609240412913469008924409193138287340700242828206827372304978872976772750581434889913835067589401062705053389826460615488985545762951620256788764079233450679709240355199220932062753178676265522363867875815093927764255036974925603064175589142875645012521231048760025187028739194254071611572889612070863807170228020327688578865136179205965368360346562256772869845527208779866766617624248152507963949294561302619015074708494955339688196265642237828691459659379848532931760578793646684704201139655809617618261592151748956080610951397624675586705397958247402587614265919803522641933411948565603313609773314173899458437903971653871999236684687353434154647055263603470809394375222364585943202820394074356454098577531428406604307295421022907522709093903147118217537309565862270235479816358484888813698437226663699227395520488805954380615691048474816351116259742517944498478079356480150909431639427070750717594561120373624481804415058084792169811775386502038833005452444593398862098770361515175297759956676115960773759094506738455367358873339411355270971980751216602382212673576559738738201683340745853327097068536150050924220747395529926958559446967061713640125725756288916516228590928435730850833435265994714964546305539603304440333084969673772235590013794767162756069542368291005473613013358499530479936882607828137228390821818074440921392608711073948224369133478031854515154478080535425030548259556845731203883570057271818906583619677794464780035698329539386511610514505504922218847221227226042151172042707649140853888116547604116039832495031678201430119020560134708704836402308661431684514058877955849347215395936108602943805603747632350264489755770214947164379434552619854670290506646695012344113280755668569120348275452119701079224140357216289049588606201378134580921163039131135932227743523914308145459252275125079640591071054668705087185363261143662711220280205961469136356538344179825989302920231001204967743104467980507722110860478259427516801632758616804198746957189993158321392562219147308129241939082118473159356178488217804751648927226574218083884095945695510204427292426735390332769388912870711880462181209528983043611386603201727458955567346314730866892019732100273641155437937152753019313965159182660783148748917231708104512513452607364125925073287363694116658141233794560750209943317525573212097738880667845911440615242378804279186633751832993889605682095360547940882419661208917356850648137641249054704723117575175022635254559644957909223014273239923504486708018507821078429550955949855956448231675374634732292382236089832392869567944746075304077525970908493134844933899909367594126448483115362935829607272887602835104951274279890673700416329246139582219970104824178991989776596415606242932877503621810064749790133875109017464801846394822830001718591254195373155316173747484838095089481882616416601829728605961044021550973981574835477977528256987944779020139969251620738891294209091520513741896530510692561830762923201995172361501012803034930438339296623586092342297511511106304985753365034446686377816683458967758802757797547787792961277172725516151323803619666616668046310374831965768420919986872500135265101444646618527830633371812483820594129297345573982909477041597621885089431720999772710646432697229275412031921064274849308375197782363116065633757251215596896557522860378597232728749250468538386821224001830589530456244899008581446587716992930569691236137363628435941739011445643931149335913395926754254357064023095954637055609430039317367488931756937938231916522267235974361967735680574096211685858101769936526876807648264348432746088359026164550856535712045347734298727176996667938768807805472180703584264464620605808576074543688526370562728454790743678407037313572271304942598783427372062935411269947878903795088886959358498650963708068729655106184633679215372057242053419950689411136421836485195745220338833829096745237495727735268469580147752859944041338272190691950659292076823207133882037391723746058036795088951607975485446628755905815034872450053150411462350328669673797015063486779477937413608691261360010463273177070080557993859688883196481819476059702911390109705097572949005179507779072347455542902600117672311102624594645511698196458591405807012998030019002608450506866889839560784473197418151647794811915621383641621238871619188462698331678651835046742139208356735934452255028224877885461148916202258313070613770874054052672590775870005472287896898346420310665469991387803875743977586309801710957612553453493535287160025579313716324707166237458808832797846740695097664641507282345351934355508458396161021395452260373658739218759429617685463286917355938334937456781725987301236022605704074192199585554056964279329794698706890236181802997179182366766073439229962215149869361373967888980632940556714324795795009532910912744757535757143424810314127665623784570489952975979785589163858313244804071477798628398913666005619922777391967071255506124888586931543989252819025737096202421455971010544875062573463780597320643076845615569124875831938210129512728802163090204950032471352515024861062411755243460695970480009051304642541500418131398785998613567790609736618969927344743986554473080063544087394515228312938213470395538909838152190321154115875916099737047420427718059695862052221209625824000086344746678380862806844494161085396420552811181447935192646147223074283341070585553552822428245077917859922200855192462505897935876959070341483646575225345366485382707477012296611762903164847005069462326422921167321000492464798551469050581124302373879825867387267558513726519067329738151879537516606198643799398980785881550320913829395348766832669067729432623605147134703883314276290574608478160837779139526122176929138242262368843302727404629512983989344933928792607980482767039654819356497547981123449839355379219911932010463209183161864572512712146972067406914811978111404893201387833576672221357542566535121819907038291835865349308673515662393553623464764315239847328571851137700351006409416343967914847579098758857324573659477534443997771573566389230301635077240636301946570254861449144642112400273308967735432182445470645777750583258239154849012427297613667411389728401377834139533386820010702009561901133618758672387898259723816292420105744623265739664219170995914819091675985163994009576853182729567263406242809713731359189467288556693266442117579314504300351889136500800288903920189709758008336663744292863392850931857511215645584466040793350317093215665834914751609549961851211424152307380649273594249987755386882417491651692490940831927825892969706918790726975025056489153253364296627314319021428820387569082374955979500679946447386788495276862329769357259617355552150809289428071217967804835228699101159596376762669676517819791654945829095712391883904709197543924380692115464706803646948071896191166244576203772160409900341558654001169448271340520931559475496179797394275671832279184897474448221750130028999741301604106031268317653112396430720417846269095071965150593666024846424901287047177666614156818536776720268110695699015256207174395455371762927210863968614500054319697911012644048242683067586032162461846001481820324548070442928247925940880086128863891322936259691886515047427934378454040164096346317703852390555704428050535173322816429338669896016732611936141106638269821425670925431339402820123501709201390081312243829355471343900286301120939528566822165143975841894730725015018020442662335191408192680793260869740123532994760303086986502910662064681508819428530534976122056850821244444643563291925634566476627061573751334440959892624149302758756768633673708725894898575020765348981286666831245490406993989196420711814485270134907797973919426586578587775054813662519019752321911347999841976867359570561990380975468279117928037786418013993552583457724147625338707127204172561675587515955627396462742801426814898280843162287475537616199256172412964203786121170830384872574680269641310047655745476245034653538391461617912078825074987549384455080630094689237558156030633304666263246113188678985282846114621723085557366222004920820271217151167263669853955165647522332220305436841491765885136433967833502356725694177213964387145894000732903790775735722405855841617463794026797300341786987941990939632603859246438479024563954544482739148079443943539079668865996584090172659571370850850331489472806925459588797269830099591210872710212875773854646554221874786781834856290287895604569577641286503536787209414510071329850442644855571180079441501303614551938545547897441160098186268738467875229121679129041886120169442887895337810639539005732260106406542324740333214186333003510878617544758310295960646471799062086888467405469803090075619206521664139951685647674637498544494728391154804552259724810891638259163640069463957959549212306916756676761852567437345486963540617367029445664733133115849660709655251078538294915053538659278887698251523037414871521945793380242766181730149791481337885303668966145444645689591490690713357270173751901466396775032904137708121412344547730148828412545420423179409655016317912083143335945880269015936783308166818783953111283505692906447188985020680493294580601986842823880484475835091783382270184008527500891137515165090190424305016094470001663712011011017606872214023534127661581360872175001471591931500416541136571176766386767860523116557494750643788507401645001402874852050413631778499680388122957548496723201994854005133072893023549889812988576869079410368444843865971812057133892132258684657310265455718867784245640155019681425079886484958295911043616033669113237577195591970198541939900372547257581250070367326104727545592758644654427859269540364284966954370144400255826948542762747579702467002152625636707590729814373836455459713203944391727170188068671528168933823534215604288418304763656380794537466747830026015367107831681322240712316592286734428792050384219191919437090184903296779138129111301888282175234809685288311907103292308632012906239115850809496401159979677544316218569888995695630716033041864752495593496532775551756789050531888227605593350959844607082160898083766716764967908289713778789948695893878308246677555827619955895152352629591397344503948060990754592949979655857126789196242116812916485052877207325999079270576313431275440388124424918395068753341111281634290747243033981589630769575955163720487473864807124955466486244877697243121637659616511229703139900802728271208858132893261170219298848450935540994848323314033443441145707898279402163822878570449277247775685518003087907098508570548377314424677703203662298814396450697460286556374027341792434399589379282410867402836988069725085630880647030709809316317140522807704274210163540798034092683773194152643658538104559730971967194310701450062558142865663978810158358742642733341901661303978905830319741111580644220940563113365033685179817640705972459013502040169708355064281617965008143516713139218339098379697059620374738831036340181914970783096045786359655631220433318374663467476684710611289243890788594089369469016522938582165869083305898480330677946734401647103041212048334976571584003043324283582343096049651381813848704028753370372144904946114798644047460674011627934388717867890409575206183457841835108644005821159012398491062118334466908327015178628550874174882271522299211779247937843807247040744953599204498772078974395118781105481000484495379786400327450742994733531830630902823066264404559821389353444524937901951745343485357703152441112005580316869229462816614661620668060044675013300924369427220496208068532500947648008935383282818994294513818450142613827604665422059065457259043777350687808987113524980522608556558316069472067151297791784608801215798331992775681678662958906781254503819959880491562922505317135651413157729239420989708823188253869222912420049654197234155703104748243833766090374642901452001196559442746428869255833366448778506077248106712598729637114783907458507860989544315891542987348262489966712201846308769257442498643214935704692359336538549382893404083591943671258107792291683617058843734757554683904614289210157874437053001158080735715490140733814429849310694926966338230534421798751097162433692498880730974069444474449266063549267367771947701810948423642282568421118618872710413531375758950294522015169643500277452230769847996514355175497067231485567798011714025192906003204433857969493047262641401225205370346770629298583034260429498803507097142402893711593626699951849427123234448884258266190277109611469777997958845073853717633926196529778622644974637543436186107079408891978724878111528880692918923524986025022724582215074656963492441777332312263118992811788659755102953274008646864496625889696791175900999392806846607407033984438452931820002328419228912607579726272252854257489024318544907182281880324655094133636383049588327863475084062642699890863304301424318266792262557217747223371314181076639808166049526768308169534566038537264917568889551730177044863186881065854736989263922203231173093537470845846035078360312877866801265103818110233539913965622633497122603995836558245482605831250281783713979544598833108936884258736537206874461531087218387751153080043383501146316082073067091493146861284624503478842720506148638885774517344917501920090958652584653798094293629202753966342054792178002214885281190218502928284241517569491943357972926251261421724174640700618438854895114860740281842859913924729847696492031946731929420170675699967031504856628814448846430798081699065063575002191127594898001109411814198250431554298260669224584394443195391691046289095748523620168646178495437163594860353429579124450655391440238612903906951607201997152482514664893023415259284910687982729795207727321088716556004736156368952193006908107896054750405315779871015204826651280561566716613307476902052523058548178879218494608457583096565436718291233384199026253010032522197750400942717005432118873510111787526402819527588357669683076278683363980270884678982642501319415245787957014558026630434218621003914946309901346887559224640935863691026077178255426811093208491376156842164033026420189097541739156007920354864087605738232880461997876381164022693195711280453938496056505515802133264521403024414658940964489042729118047197504005869092953822683146180448774462183166455822342196474996127105040231938511784665912459453016118774438671533251716504576426605418258833689752738554970085295908215910159265893431761668895953125661375624665670920908786986179173299487820884983960883842282114878361329899894405144420044180676353064999496116715528559344743403310018218823590083806924702285036311294376363111868845070040421092386858043003736870882376691363939662005244100399762331944386723436663954072575964940191106570878710606724158731197303773650843659770258091149732793963609843878617608831523679678817383235447305383334272734823151332527441779095601238123477041011712367711346104407496753248688919286272909799178837267664346210070470490328996372677162702615752846614079535968956262576778039586705044091688180913512578046048433832370456558683951036051346498068786183428720849597082528741834740730658526448220186006005490820643775185500358244452824363192004001034016635870067932065346826454293775233544477131617098823134442821708931352089645826553909126232578503156729353196580507171366978072700559677617619560843581652405608597470801488324686803359249512873728690234611160744677976901891836841165358001157006117440669906824914841623992850655620107998522453702593108538442539460022352038927389976920900897230595904801135976154019084997574535525065446616522997017151055412209589190838256536740765320537100323666023636903610399443673115624157807797839901823563863860076227588783173194880652021850174765478885614344108549982340279115114791575952833305996942462512999449556689057566937404725169555596412502577918291375488455827198909432213447336465689808411785802269156584727470027282486835730162254340710165916908476139957360247842931795336284640590234857647536231245025797804819410245806970544201552232813919951256720146321215060585592048213375468102987729610623453906980313423997342012387579359861366971930364899370854091951190168718222755704055175169137575676909437296849433298961544893906548867358049307407597239882804918332363574449880158499873038439134408468017081933470785907615765486928048890332783337876356749275814877379317491640063427392265557021701699605284934344287913814107197409276967342464003614317110051404456062290518467382000118711407047391731509559045440276669644029776775413817753683073418964525887676945219322690703818043725952345574719274521528973945723474599458670354592901122107517366916690957173196745618698326594159526572109634646369627522538610838154226195278083669992756561328112530724607086386779370409104825604818833456520612336580583847952344887005178483615114542128656552562543830393495994774185182403320891178874000235004779679308626133750676372319519676647958570836473505622960741477086612899285440551101167570433508554162216051634444743970186075447180187168764949069748612460273031151215265051051546624913937436971417389936483815928819658702830815909655365387610291951033606499213386443997217962601082101237266474827365602706816161630521250412386813119132008132722426668461250943608539505611351526747633338055719662821165967758079928998550133183525542590469318053784478011313734156966839558332199565692347650836075634781559133842635925032873890838586874746563406233803668086414948789000533277635541173783247031146961005869651570084157786956052997923801986190063810430021981432207370678363798580954439744606385046036907508960097079873373733214434381559996541531013706894259527897461412984588120688862297100469295173796821027790335032361675725000302221859100018901245269569694629327549796716022507561848184967228356165172412785340135399037166541977260005607432939495314399950125927497126650267027409640943549798626355005262183739255782546735229785656755023017942522695625532846036639404075521370194129644027795307988007083835011450813237572496925684638757799920017702208041501737668329095143388185016460761819472986761149409337415729429521216022136232078443904419661703747633048647496017799553233327702926020050610474142482143792934786499917323514263863199810679007250623796821933049198376163527382494086423134269088009878192643096511284842211740684110027053490672257416865497723570413761634964313541407694908738230721625683439899187252944610835229514401723205571783131475883739292805566795029139027843882640188331461034662786763239364108121048469265738945144380610265832393877511263469723105611171234355251263931622032929173743408737321083219388987198928873217847908954559734212577288488614931134271890945759881403018027813034088177347933366377777129955324776743403107382334586613532092187841291851523964766913171927245573417778933655420574404283397456878926338138511686359505991762065410712509779610515371522826540932938302535778315455001961547776486287410183625699316399312672218321450351225251469894051092507433717135322500154461431623534312020184293271006262391701453634852546540319231287692691370150821349142472585067701630497724074627426874344826491496424541077845947423366922609185017901814999460087311417157172328476279065587286684145446136608990887554143142509282987358954979940692351964516301656399856835052455172824023420098999076892171566260035885289024892446528499957756380182861094504287949912000020686246633090784488008416946753647743486071760637802037056530548720251196751704653500543011563450907785511790975211066662406271422258417441926294914070967615694783016038416799190408506298127465760062557967982814198202068082122474718861203267719631787415823562419635778224842526306578528921789593810321774805959124073587307289761139976704387116479382157749706274504836817351496961189062308291531781693460441303661775841163068812322409517221419460015547572381115128896835343465361530346084061032535108438150172651034330566547307532961390812433354914388060280996048523523597049466811528871079529201196388130723312149814981569870817458638664881118730427034277062606338912404576463281185760417362953815388949812053610565631986364127292144371236945027740599690845487661634481439802673173509438375087591944121214120923643348726031263851623727333093691969469045332797233360511449830797013095111877532227920740691224082364137449504122048772431222523310709976740751359522125395780344112145725724777767694262850578146846681868633500947159692517854920959820036600665247793776187897383670730325815958348417980641558824997336581793442350475971939688961580878449237595792838135449912826416255438217039872845204475536377340385922182848770031517701952026168735486517655608070523073362677545872139927335954454845194016777862166211104061113856863949971801712311866961565848973321492198993994883663551148528605896646181845978978722048252746244869249873620342902989270417962034429364883355699622651075165824334114693737147937764901950393663271789860916668635150418282334456612787542038295597982066135795962669023678388422346657931097095053477589569740738867792685505136924428730588054784360283225822698655432391391724360636532425549477967292329915546453291391527032250546183736394900643695185168332503749185892801108853368539316704436449046148397941682085847096500794325895882941017915570294445816356184478127766603995298786668979844494073211219194273541660470294318143890174218406727265666986019650061876182665153326869167419641124466274998680142427537962396201454876061900559978286987976652804084313301757881752334760181508783514369837398940685790036783716359048987863577716695265248520779936876563378011107660402948424305646536868675929986798277585550940244106019909599955123074955551442221680618777440184968805050252146008906432839020135310861846817476405427658138807607190507469446803047969747753457162438498348643012653706339931872621405448757870783095232727967162584975064244876162473904106607893156733397869444629245051876531265921074625380213572082783492403543897558550014857481060547404888430178548396057045700751033485239633964322662947208531741486748707017334832545381953470217609147177873403876158490220251199358856048809072260813412745064209663965798673298798862119620921081610195133727286211472832163321928038821760963642142297313192182506445004207399157595041550259034090560139221093371865451062993191273948355217214337271367786306942112200397616192977322998535654755865584230893104768137967295577904664699478360221631111262128422748169774400957125774439747470461189013351967287562877614364844653079846561156135906585873105921026364255383201059411758358433930789315135193656160938453851741312971114755999558728121067798046528405290314489872579909063948096864812223619054828038095837465677561741623335521734754309253675163602111605962703196955894012985886524543171298683240999397882706382206037856603202714617093708298699270351169665024745305985790952947682693540751606814397319589562795091492866833209608175033806735573344601887326584583435646352543654152091563353058740799675571753228653247102642531780673886378478597122463502414653157879331949826800945680552169757258864061665598657114808085936514052908187587821740712093700377429272212309886466404287892169938784081245428503252501364326456878548796638109021379372906595053628703594101120244489567690936519731093458853021505087602271501114015503475388328333189898505698424053909791971242770768616427545972137167697770731865347937134240484927568237708332025745335930952858421373837901723748113949495278139165452443130332899245719793880247901131880478847502025116990612496067619865951473627480577159051987411434700900044220223886476236299133719216787333819750202861505379100227692129802921174068104895243333058585268447078687445898759575985587129321650043009120394532284182301724094818043315949228508339128130568494805228334309689573546855043796350797044826090143160762188131554264100966659481002433915237544643370522768046093686117280824146576869991556502626603745586580300494590394693924817698096769962204806785930137999476255726579250043416374731073997710072222399367035006949422830902711383938019019559960492546406650357007345543205465514108257079219905879289339923839756674970675025452209547589565068247203121105092113688405314205982769975405782551880884915073684096581441169885858529905746577325555775148897505232486278770015492996176848241600148978166622210972908941052050521405965394019161388203517519335436225987162801561303907777625542622125762953170294954320221250653996812969706616830667298200264477383004186351350648742835383958805236582699877976620546492668075536220968097834644544956150181223634942765821848096417542255958011268082919555332136657109389355116792501347861004930557751917862509519979826292341651929154217122818683583072034796611086114110106238680101505183743219323134160441989481310406243596003515991877129788191179840401207589908787018681569523526772839820400145385908162855721995482695255404250672335343754351832272487379493009180508472459344822034010433106540149550788966693366881199496205445281956088718038897198841144550744537037339646265309941357907940152583890634197828062197921755007676866726955955735540296328346341553484573138042907765076591660649552976413819013222812346098743139341645249959528731281899658136449863422419689110237969569602238497335127699025837302895804579871213650804271062811047844183062928773909049180020107365659585925313079011116975945604312595019224721561709752870420312716833717709159603177977934428299019631925743424408139052848054896200375571836400706480413858866500662460618176395489969035863249869916822857141751679996241651683416001576195709186676030117962157733466547832404404149247925536476851101303812181892722760272859652888156867227674575463993600706048336364125053767417055170682420184415323754615592505263233453570677737532221197578024960425301103698982172437432297588089712613743368855657981695689388367647372485033852415108295072942595775945235523920946979603380707097953329849923333796327248007590434876193484513486971554252199883856035613875487056495893158912820708542741118527520741236791238804891133741321753033994956009734738356743546636702026522165539804297412604414139377049480802394930955932247550836456519406307039197288002463596114562961056420599376904146052116567003155986704959976103178440425449515927535047994430895560359965931631848633995487135476702283640624928788541434148395635796609044578234830475100296704944429585166125307055628038393233929379117047722982053921301297123029049971261757789162407936159634919010865828579107743366445139934598966460052092421900188791955176635666711228784800956366923231924989235270663897212111954314449018578665465719227627174053527574888010151983548172836032529205681786739492520847632077866322912985276478656765992882863804749356278389529147305450017953504203739224284042120368596620409239067165327797327358167335254230358988105681883795258212634915314766493848909088265491054055935775068682556518739959311934049679434430909246255365957276120679496348291670083253073730431850047226042768391262436811257210698969767246598998573670982243962190654594369574037175105397652604529470961080060740937985535430455411700354254080877251314365425933122462037836678522501099069078315715356122794192886235071002742339700283879685638398758958144313225747961177895873033217025155447261081882165108612703096713766966898935242217295678208004561316886573086219094231882406775533583767848302296890865297442358108448043152314972075976571760958815663278429078823701814449008995882112897589378183277531169228621574728560003470493489699527705413741255746109909712891565644907748517673350301032340291679314906621964436245544161731551267528597922609972490799959890274606594794705536030178047777612863954704037906113190034087120872673159675167826201728630490852765368656052275271126047240354751699270903660604044895243677188453621827208863586057347272327786547111700255306844037791015614048068643290040370439055131884809386388225343164037466106141340021933376248739655752580798870570747955743330806526780735076659406119978386234088811943189168695101069600809894782657152277054662042567107397284117932589596613537372740793004231069918899890706406880764425774936841004388586364560860999490167626289077019784174593600184083765674777970725198261713736525451419406198637114506704844086037433832964730500604535663035749352489115018089419868298332763391979796194218175643398877825825307602750008189967810304851507068096164701589994679808723374549573291724408652698570495769147854625291275606610966705141188786177368503580753895649761221854251756544648316115331411234760453917370410083740774648889509479803606061197851483991796451529919795239205962462824668596486447103074531577904714421153512934441046341271830390461540151137356478730861171564851355402433086199299609979702326876563397714361647318121740608258674629282733679891837465656361934782634883757420286806055983189331680267279850866487490686973821774238500729341217087408584305159449736714063184832160576012943950688297033588618595474536871110438920731905023011429814628725176336275374008414186997124597914352497760760806695137980702648557547062498812275875129251976418633679400972562058510726542653675923184829813054019874709140687036765640768783372677955021971464218736459878164156464662291990311389677794757777028534138871074578354354380450698365679068408455104712615742408429845644984177715450677972606060927701645836906299697943943910852733341236948975357083225529025448340752256797602628353562683332705890610079057465485609630290354754014644830238889689109290490629403561577797668200360474142075271517365060106424839667401900441300299647300351589168795951049144864861381673061288392364259441078931842542103693340504877795057942516464097349425457090600180649099653313729482403362707210951121281208710190671232436434941485541757502416472957071379724590986142538461123197443754048936600203007507862014878865571172859928340580299307379296744221634989456641158442006476730501742265662462702690551887377684160445455302869843876847076564441240853775632168975074546175131559570798996269066498462010161060847974930382752440602847927487702339229504515239722458560264979726208958407166284289651352200131447202630317217469692147905759717170097617519833007195817765152201577117560822486739145774072549325468794772440796014534374048721617423206547947087197274669693733441370136598380699626197304518155632686426746369248635933000446088274256051022256333423949451071338120956592104396339546947097966446642956409736035740144292010633071962111923140364947675868792118332808987637580875478608152358821150049491171758532987851664734561922308137955965143499774869553026718917444348524776348208773907633206804380383501370145659445902476935468710315292308709384851814734022822637734479553064172858963101063141658469088447146328372291003141093388160711156291420040535213090303071043390967335169560535435250970710942335093866190291079705234913665179654466317489598164030857705759220207254127932695368069826091088011621879767869064424340704392589924031556127849456409831367021043828412972863615023868444474342138099695990440251098192792744520099362702216389514696783301471007800606938584827981545747579535143782061241354866955468019669770599347677499243876248320575204347819808174801207953318172088005603171406820857671814203108509780378526929368849808395013700644904039097454858927668124714652835946048655970722793652669076320575933017703898613258072102123375980654009874244642394678150849424675137252359176111708657285359142440473974283934408315425862318442238865066144443451081763316086342370223630338843630261110590632070508813439821066321725241254622212850535119444352123299831552087045812171392415050318667471103392743833913416664956763306162962710737538827025927833784323373125923892893142302020546763514384519492130406719655164295929378630357501595760556193549794383270810577620960071486691184085165979063041621910532832698739961766435903441215567039837268288106790672500962757774062232476422562993099426154278045554400602497743850875139999143235602008340174950789330389288452062717149775638610082960999823227792058227645885986890807717771838457562845038990185509495881941754224233938323784779237105590451805967942710585205753282239474015113396593211807148266153482211588521391966000125065466419149864366311703069762792637712320360070943135699325779193997865493810254288363618573389920165172031124342537198219924819728418138742205991203516481910847138272847761859186887069735549372810464158026716777426742416776265009563592783489064763439799710338057821185647650098470464262106322062884753703139431857841845478790015323568551099997815987719676445342500826834052353253755228210231914742384123836944711905477185928497261797073599639619524384152844960707850856376273823413866615938634450083599940261808785317760869782019034661756177525295554075835086301632983795219057865035284032194840915228522277025856540767187166950959585776746902936840340175068121587868730032719242732434022359647589134771072620719730093677868676078133378718437919441982949472813470067026289317303449556297597915315299574876187785297025789840941370205215273881473644062499956115381180936828114250200356123965742642383715600904479688862997631325203046854149488323049393461088897599320272815138905333341167194221237249407780785584570446612708405155446013390137744853943943746594288776901426535725281102814690440173852449385534580898470836438602553205512468789868306965953028166242398621408221480780469819534748646173116819771422882673221063519329716078072383336573804158791778435802377545322376171749451330043475525788685465625382323457673938330479396407059871862393807976080875661178308621347727377093497956635854063362519360161099034504862513767072154519142885176536776606229121838671092716903435891938855762370170050288924097008992249073531667646057918943465992180564305800671046945875074636766774810842096019637473552993847269852697674246831104970738370777255552541078171019882516856165281957813396423669774375295656133209360078280888838715100271150566348125291205522937898957619943522811069356887619145297710779997774228799244656544952984174658918941900189699035466030812028316788396227281335005063165471134051176649799612229566991056717204256473504697324731006176377164491474910123831567825039118877431341854151484527257339213127406681054380280710404535225316464704908672711157913459143030799931757590209062892036526211088755606745831156750432076994598297025234365806687058506048114149342621821305535550758744136559008348048206100763236445143921098187257656573013751648729957133911420352624318676877018950949754299505650375426214404425107394847338103577312308345188573964124379962113796950929250745516510896243495974320563648909951541273776360589923628433512235289513497739410380672685820179088917273198010389122084725022469434987757480356112798277968077738350953855451718435536217513351782940220623948306542050702287722264861339031829060374660605917399397660034902875821334800438990810941055811982293747524607772963166028544411392058546731287284747723874276961913522636273822252407637111392964084829463890360649422498886381540845042409306568087934970415331663369357389683336848073346560911451446832740453358925839107286308481278514999778501342620803599933818330971545416132883953319011024667766299491206794539167213569768303834444811934500452320263286916537673218781390155225864207261054527773675846984789991396725480920451715963292428761025061100625678784800181961971921127491764929577519817286468421435816884445633856177485840895337506149790433547446730065525165275047304824016310608993727381641663463257806524909713891072364958377777876867477803941231255776685213124459488228095452109691425712498426542331788306539536818801030331886646725098299110484249594977569128969194472560899909006926675886192454150423554243293811542052606911920220303225289489799127494318610235462957882668268715208256589611373640381630931953719591628028744523298106226258825295450650724729467943476926593701963530241817600191698250159139989532094865125964167091711458448013875776228273427414506010081055744535292588832157103443814013183926386121335101130968012145120025641893725624010590724820337717094866749112186981690278069107843862491760141090096694283837503870379424580863973921469029075833183438289640220271387172410899759543770686688835999443876932426820800243192495025891957351433774533236810859845538165739229462874035603224816716359959907732098379454422107552461311181276207499814349896508299476855183875063361835874435744047812387951018671909453402900499779001849173934815539143575091223050000409899713453640768658503163306355595966759731915515485564368085537407544143749318192362788492427536737836547161410074601414911421861236242712450606969461522901752577586260795668733069798719936085971996574922801248498382321648189992192144843308764281606926115060689618146388696470631339289982526839231138077578101316665912605057953429099546679413699065800439584906348151791644793916482062804372430302088026546811922383228557165744343473579557212128166409565245143022237216262708203215503826834881346367071928701801780041488865618688294941580829854526856657917400116101582969927232927147693657410693639229667823907746383018120790649025444368516133040400691074660625049030972457615739127892678514467776849939554977265185712026809814514657179077610202734996583101703447037257491717860776898583413937284811571339105018585025481713021837706611872882112959627076892414810794806667140584421904392275849814202175000607051714812653263166144250394898903311610239711617127924920608842613133269418621094102477317784447223816169500754276336795933252213405728439667708845153774538418797474068812763244377349366605475789327349793523824106725202216245106501935110023108279229557423380866851017237057673356716751804021795376696720169301630186262157819847433737374813909207363465951867855076758601491223027523868248372954416528239052208538571492520605793089259468335164884516428728792202819165157456665603309409389564751290329018999921334955464284290770829171251686851424617669434361913845249357438357384187360990000465858042665123234300718460739611560883008812382001537385845035597512360365148352363060781190069822341201670108591352520322118487900004196577274115535785522544734619836711233535500775620305475388465464807971903239811475855382397717987319788635197118199813298978440515899607379141655782199908398716855389869147800088346565131368193124193174939551565368621170958119364637185957996150066591786709959863114181139657032292808459675163842867215262631457798535461636146790878290874584497644774641051481491274430611056888904090307136759338694773439252403492667930796713603666189763883905247210843590449459595803078322806173499680146681387297043196611910428371465010982996318553891024442569969750821324233963768865912599900052078928650455740490127554685405674134895590485973481022959360440735262278870374575497803214953314870757185836426970443543238621952177000626447485665678053281764325320709785663938180710418842944320071795451705302620886938930261920104415698260176997846832349715134436281958282847153539426357197512433796188801491052777537922837005683186779023163804775401608603150378243180581212660096073608687289413646285785416007275970305970086067398777143215565773255627837195562817489318334439259474312598282814493753831080771058944170319479777649658842029602247171217473357680070856992525627200337076757345511647487974434934267854696633830651772932935150987350751302074661361768026973621607749688616330343825058449668225847196557878979720968212410297917674201988437599007518786037613118394973487670483215438683733092760968899983314247004269200768303084320089438609620792819545255484531976587345162468121549188989374802194502226159928126684130100684294688911367933323739755986214300383049143841538041338027250996059307290790571806890310087697012555880240181283416266887747687934298916163000515698453742110299391130257434598648785785571647844276655550613020700300045872556703932127851156112755275255825959613833686686360173949584955338600434556013665602635563656316106845431949305921445631861899178549496083360152452122336424356915365902705095613835296490493025344603080234721066584568994793812742061828975080528273891080320700131438495436780390677403113545456777171640202995194326120559680442607105179824990260977993103119308496312635031756153976021571685789037319671970051916947444603361081757553155778983819854858644126076175937514001293114194924918852561570581366766009466481580259864109534310048218247179067283695784432369069903373210607244420899227898950557421892498326873256742392082347879416362436652398374641264033381899399711676518785395075295386768295694678359284084107227364837634697493716472217018483486121837052019208663440885856251238205207110817869977249020820684238052386459617030021067607004894777779216251167809331837270041055130642645675227530230883373231516586717981223595892580815827829183311406796386488509402785717911854535716562550089619545882175786363695559491930801451912132361725435460474004720223910006922480534681671538326820013385764481711493717009212436030411755624476034675429466692038247598844841418283508648494618658260610102098988983899116036849346860387982697207051791716029206370283692481285788930575347330727468521479456030267582875365690536616054220633987007012690045149429139644846350654539735703065770125812602733758802306615353440561359001967086392631248983894055001152976535917691187270096451745883180597006852936684390884098454940324094701526566224366721912499878971110784572827767973133879621696637820899527569646466132077990904370015172921525191076529980390707392220826271215713683446989172749911467169322390849089345948418223594967376288849179931676700787042897410164603736091362322138787262893668066195732641159459347830624462742969824899107716315072340033402031054787243786309295930099229511426402724586993910510656154187206713898359839470852505016961734779568572925669745178901837668360839972616867423711195118845486818896655930133042130290033385886972055839250880661133384648166716207223180331471577153049186542165018499940136204715401674165880381098446039863223891842628374045336178722418684266902355257786992714002140449492888757516363919855610736901214906125244535092131887275342710491004495973639446080459567872652387808799308504439550111119805894392916790130288718409222470306239976382766777019731925632687941418083915721328470101211677063894953807060573157368253642686433442074523934094632216237399591622258061383950524198743665237975270317243393684532865942851848569867182347953614574126256429356121738964335876929599270661222740184552486271515790603138416201428480207569316744377157484057807495704592374482922833492455900519501335544399654961230000016404087087855433688996753689285316242281505100894682812513670020872280652278589687736160268682730581734455389302129923053700792428701032814213959359576498909727328480447376927444420078716117908516444769921129275606405773329842593618204157095745495768373442342945018933937741458643610914699307113939304297060299834782801825551632104464378287410003423568586251259834065597536894389535406907647080678144517731561626114142436488852539854417613713939897546006474568701222799535225795238054107048825169060762584679833751686027180541324417620657430338557746631011536668226476474708062021143425642120892656042068437694969807840066116089372397737989275020599810066261351734786309930968899011347717866888317146768953551612550439325494122024070985762464936307070361566749702374803702435075480777442223587506631334836505223891018649055880730717889521473104935172539349558171132585197773084386409627469679363377708340327050910350206352650837124242377587201903913778356220282486974048278804371404886970240690481678498518516417527849265054756095432412519646881295427469631137555151036068261709584801003416713858895944507059857950544418482060630705639140189196709458735476754057760580437750099481709217397548219807445976428344710787433464451444121415674338942811792551744334803074354681006304792519843394777030677121743372030163097397113280595553574053881807249502266558653309136193848135240977921860484491880315769369486659139761233297060781002013594353801366964524954226880590066746713046321446540815834623366862934622250007652905446181138039950555760194552870517658850144219532094128106320306300983641481629481305049915745050005893487418933490917737177698894546668947608955134514838351489299488088119731940027851421442964030788045223880168681829145931020750950980220109776354988491654288722193327052240792413063098592467390252591526374311116890518143283311508342205285891195021993216479221801965788827436757376171958808642435866017640584971624841220572572325363136519314278106968121837079515067157983974242007979284549855863915862591682275270561734758229021331433173049204405250229089050848566521322465308263957205364100225943057353194034145493745755280189913809740487105208536247308015171901455384873927811261600921704228411791864812546381992233832024813996945486900390406236001396990404691764337506378246334450312005363629240429394768615475773189010334480141515232958657175292520185180908066223229388452187974687026791157738277120809095030931334201745374050925126623353841878343237150034197975846565776551102736340992946909995438532083499010518038891404275676303254421794473508150811300141218028518702813101305432860809715045878173914509703596174460224421121968997137263469935312391367786177180877994125607380102181397867465387898514068367052802748330577196638584699714333227753030296268959996378183533072310096648528941554762542818696792596899231770775219866365133792948514954912370361734934090658817297052654205900246652415964246672546731274317272654483065861944465577938713100021616466464261135151399808893514797491384846405137961645735623725000112571009193186377740751344532572052616476925716511620687243144934854021756939142850047126692058334016158132617421537537460945878868905895309926900816372955225729871079590898826616752843650892788789734440513403787633065340578792047174312750123167325592085964433486886609176073912038754014401383404745436533823311762153076599022609530887303204216507296608367310724132135893908257197757943696487112740794584507846252951938631285510664866248975831211530162183349839755239469603928025444695675605543639404416315209942636812499040575794178876274516206048080869792418687798285446543500887019212770430333404430510916977440338453222590522986374844627470491202580097997014801970844293123611440307072549529370610219816907585044082923850137710714959951871588150722803267871220273414717452284400847025817341372575475274248920962745947985806717165785953722274806416756567162296994320524636682662101385392379923554731509743187728092465356558235919666694095857189566123916053578805016757816162891026089481401653626595662007363389267767662441178567592779938337649405436351106578653821060286835802074026210299500195830920536297754762024018045085765970062601258038016919310815474325074882196122035690925108935744943102907914667224735717300229588791035544199226025015139824731825835869661669712060873418511779261611521484754842582605285699770225560258026254811042353676190667442497300677500328471072805447121734745969033143817002625680940728293471180669753615301077797794794340029454622464451119317876771360619293463416480873119239872780954447749494365979681090763316148168649976294090545981011409376005019153592208928197486930446398160338435554275034510848458818278923631341191453107087361669324804716365124664207941878541819405338044617120650122457736138711291921551012032418687182869997169525282157542930609857849710855969661613450625975857995021144234780256214595731454440194558612965162022739107168620721873025321927537794459346366447717793781560602817545340344638641364555270755729622127259786238355003712866331223389295687100768757994745005806485124953440710310243759607879735118800890167577015121823454805756732665539188301406456975185126761535496327822767340589643693936638922161654885212054268441550627700129961040397218635961543678177658486522582115909263026780911214546726009191316212722819698442941653819269715115178137060836084360924695959342461971177410953595572454709648174547636380776343677842116294105248952623159931738393368269123603554702634034564195659712899017315591365270755209086878280228087215478476999746743327905812477015619878338104740773130967848076853741399091503381490364375364700763595251965561441749579795274709512708600520671164981424312156890824139167003714446962922474997290872909260638484893897360362912803755485047637673862430141995400224027319156295125194103485101495353998834782538182428529079632494287841138011715074338660087217322143851325783308173216039520491739459170678654081142327613625921474659031824250714206938162704863382067197527180378039374123884463751114677922490107459123501645961464889547211207874764867155827153756642220284589390552244425214931604555753005975430324324039985699877743835965189914194204934806255703072516504397554644655301047814631399478351250333039029539594240512774815868148669293383387729223457379758852840349601148345694109607527296257645719930076449818724313114475523790237153285744463714977575341662461615489069381924521849070624524956207775378279097105166437208551170414125825795739610399970582676544458655616178095917957707992004073872602104746136935194422011072821433468815214730479235054230223714114049429748738859476492421549077005315194230448277453590876516303649553219430826846097368793041284125821635868823173154485622718204903280141114347100254435004308138644883536807804709619698192819183826271185677320230547980694821009714463566419650839718430824257120339992298269717087414700743916817432070890132796437465486520832311278755946634587741960574994113871195094951023719102783161738542777527276441735685657649723032275977026786215481434346920189611707872173076301576031240029234763551734291127785843410008970970035431791393321345725749686039586125492834585985339463697235960226817918882532618181134960846896813502940481060045158900051900222472886180888330696139550207793362569883777038588322680767101398061939246322399503365239252014824929322731859930615686939365882804159851241533339663372406729926434411364549861258673929299632497041287508511476900211522787732094434932473296397286915465746663389346617954234662179944953841273994456582656997911677413229393160698116933289306148374745645189780803863803789855377795611110463763909301802337063192735799133069235571911672139708693378953408312579651432778657815170877956552538586790687991324028119741075165306208298904117831104818026524338267817614412615302978542059544542212798728183938816528155306091717394216192382168679149237108370702911064255040661645623657940556105734951475691427492279268775570787402218493329356563390178267517386417320059836373520977860697228919548065450622138400656433760373932458815169008570748965161596871777424925644310862392162247470393393430933508389624168852890411591112138886387352881291058850536499803578960224973094535433053326231308088826814068769962726173155487325360679595297459218447111231568763891913056361526474255845790650013338233585025886863951590755113709480422211159403760981909794743751267273398851560354028991459673987506103813708724560067899572340921756326988214414189253330769769627676560181934822121583751109227915183618517476808586190199515508330106454684778271000435745771235282534583480905314999262221526111303186637572553694557295708039775983266987042483786912032709484244325963546779364043214481269444550685579764350113424001934806629891218969974061137382843329235852408334947026235239909307480125142834138166629752917871134218423855386378574309657298952079034714101252689295075934983419631733058488590703997423281188133392391277878231809412178645989790995132435213627229406500124065818345854542721999486495994771237601684649897420329299927121327106714234787607406142043030900693353994711682384575580309874916657091242122906025465683097622128894922837953223561509522056382788097010970091579204614247224291210070692370156708795052010652722703550990052096963065855376655615306456802662458310328262177135774474375612700871112115057281256357502288786917107321333725204322182909326085632032876593959471147342641157988445566283611627129046776928440732863251415928092587005240109313981407683511769463041426756825667944554365823635886948341561308881065849516281975756325972029528233275563840593709442500175244710586563558582054593687245822266185051757175378404324137848396208062293748016231143164280935298545637390157125711987425238573833175848985908939680026061859807685204293492295521675106757323181977029058885273640076674745861697894466086388039507339705404765757668785244053320456082728775992792140220672023409476813365613993588700995566158691515501800427828988474103815911933858497457297490244415012061612931546772817904473896708970610286284620849539605194367868424441263396080601257531676296548636827976379631655728335003686517048839149908377500341013891295229692757161538742970957856782775890881158042459481340772988981083770908835615934563524550053675152657402543684796144886425360816423944878343222401156868185482733733066827249592478823526251588285355155359789961388954721272083822536580294820344671940663415927751236545355490583715970318155538708114112838042455796271853408517612822017020532771090506944703409911298528609587467831699203834860643650683543724958975379879853253823688522198828793969176996646924323256104708240855115638610687191911682718755008852046723351448161070544077063284179231933333655525224329248766883407903783274441041753482703565750171525329041754471884128632452093824702350463486274281398979388125366688517796139225063922884058733285157589626606222464447443047974661678686454356269217802698915274924813326608669584542546087047749134214026470722258577704099491057004724923892716153933863169859822418670583973563758984741430429614434009218964091330486518870355987713224631805183730159028291596129372546032086575969882506627663149998459587930141047928915580183413811343534486718948821593063571629607323926278225751586110787771702085253387091843966517318434535927864259238182010985592550669743537773502444601321920676532827764979964580089832741256191301179465399375370138987836270369467270480970789192531098793892211124925618072735586400421135665201134279105816028125163911562068488764911947027870509727223868048813445651615239237777861721836198643693808891518049592850094156079306624878881864377437849348113538061578719311798407933118732246604392774750962197750901064823943980897773797468815050585246773949055536471589665078138072998159294228229666766554909739774740346102699061540981031458533854018935680025195198312663095915975405009571459385930179555482245283781837385319702835038364759540879184943244795671282205255307372501173125814494234583514304289135709188373983186785996190735445191884146403947477306131291592717915439196818367519166670448533583683982409252674624454603183442352447407907372185970987667911139503480007986989071754274170445499447448452888971850353086417424236534951666971763217659127479084272253160802792954605660681698773814095933168951546252990841656365392762062667122194818974016824627505344867706869828838498496589610028503551565077070189030098511882784439284272331334818233242503653470592762696706635462317990257518475819237654477636302112552927536334363865544658283632173136547355105917068171090246586839014047054255145557775755126610642073592358384159421215344605165224312087730090691070938387887749504477674288225662342280380344454247782675619086291232566463924428371687312875756438486057363245741990290486740906876830279071652909787741357076873569367151242709121976284539963882285934051051132441149603686873492363685362828983886121184131333928942116026673781773577069462612814533848893757341650764210513952655125334982748104916384613571427987812655006553452393846559094703567045468391802660160741691350505238755207378876329515342394685559938627017943504753901154127883614777650690228648732281467855444315795359273730162041382959956475201943239919220006161642511257462836668629647850199537213258774944934748746149425612382710194863220182166545615937241205295661742838239481601831153488708166805193302310657170363770963159197145613594284428300451634861027053058287008582705472525711475995209445397265684486899802550301326600610119935219456650651222340938739919204762439987586313871023013500744203886078643494891327802932780705246661945417162190590624693676347312162571931109477269837747369490950198329083751579533614859700022267415295498016363638532593461457661407704323759651291419597237187733396992355290886284470761850083269146928178663388034262882648934276089107392592453822406846469751568687883041884330334483529174759483586011783557255943111906947562056344074323511610437696137476165967873121093156542595154858409854838134304903516035808277657573134440870205075535885638987865944357518186193615537412102372024806918004258969587622792633319902731824547857828327168262148237119187936086052419233832467209868209266929978269989723247802595466783422290310146216798948047163706730105926284478905092513670510101215780825909963195901655173419714554091303286041140019530027697279249841660554446110860497013969584428088112172655977809852427574623783150175642997619043878660346306959890006634642819605567551385020380952116025241333952631945078792062968170970114629756171967822699819865910372562399496747943545687070863977986933737350032164340587527779613735667652198548284354021306934406438633209030846265495954481219841671574486979963931533791896045694141581635663778022405913912740952426377569043365032754891872760700818293862674627749025399950334902852563966077585510242965717760103095056198949575300187971205674449731681644394984772048468448529649993957864223406888709206453776958426348441312459060795080006741225206688193544622973525325853160850327439655132443587879286637925597979576919944854710169136671157891228794774713281643016765614063580209369232739491556544336927863875345719246663354792551060351489659164802121152636170066272221517881617039373745893025279508239200749280529082562205262633809957917900907118417434843743753941534391842465800412998913547222578002209661762569710736991081846418120370883449920826471776696467621753173276356078721953247981012107487181960753429987920882941632069248836485309904896337111807786086096179694118752531813625250172681263776061900358974298989134991134152752960338209051617630337879946726536678932231666278968399798945412092241410282047860507694655070744103532599948122068141225592375342217672616330588422110005981389320793884407731497594303118725538934236807607297469270565468117585037405045653535817907249720650905472607234393015339551953912582616319935963848576297010471501167314207637416927543804561337165911655300482329296203360207018663189894388402294414327618086767076489964894785731853672009532989871437231049279175616487767428885912525033399550892490911643837104466946157377391124454185223147711364479943375541168137894774790675402608803324080272885561271874793878532424390911680470572908116064156933985642465074291159016961840090824860743587831865474134659837493935153060240260438243680124002651509340803028584044865557742452884788473829429263319233691621930956095385332307220361166883327455976100582290948143989003748936272524654507708862308118050719550662877169892499358070831610540208195057193512540428933909353327174497412033021695582557215408693354020108383673070040351419183424937234631352739310780497531979396243756933992329985642762732670180365019159987025585280969018894480306454190045102657237714334163235974931434739057452695403709479008071832868941669093845120627669673604287861546277025124305518154537590202375108029064852183982967744416129189059602893921432053653999559473585699948534288217164996524240138073344996826858117748153643446207335804675036011512942303248292056083049787997297254999777490630195848587371683090837167347093297711325184131823482801757454093641980024600225629514348854936382022607227490454258161354995536187799746385696555186739367166267406097778835457115939795080385867670638068233055137866591896278412208328166987817376773211366491683525019098377322063275336428482116154080001334863213291194226310142453618661519550860538151943283681196117060956176264756882770823502128879673666902952412675470968048786587897396792153942331977542534505023414510761873415060241583451486175335889481807702337668808372831108045909983726763055850461280854248282779793049978030595844948897866797491995903251537340828682639716452149841637737221914271866596673661240042912990024204074855857522422299095268270192230004719098519171386036485924669704807443253515753429206081909729087521066478261137661540225745271823361594461078249000558861478182222412167580942431826351988587678423642766874721323169139385862808355341464070421153209300171417881957424390082766053386392249372649143654101641008734463695513462347939438841505053582046336843868551755272809877891115797540616354833319238960334403719427286075217659241125584989369606355108478637647376375791665223028115275938664048349205142385814175552628115134689895989019410427146301493018781880608971988475816736591857481953394611318508911739368937314863359583768135599498620773882995576855153087095059857079310053617549238234818961944293181518580079059835934073578685703661707389361748331138486555304733305216450425107859305920562690260437887572946414446070943606987065798292033542891036648665870624195532568264493060150471846272003646020802313539979466533256414331686468836742402844053250346783629681422614938563405950070565831183888658776799535823418179309297527176721701693010982531187412570298551872950972363204122274783994393502161259274902267664773763655091992067683543769049592458605653893177738801148136690236735238610946662348531329813523644660417710651940669834496119918521967491082432945685991162367455901509152793152806573872412347688334723488271401348639296514033197241943955962989608947413694263689636228279741799810528557447298125417000193498999592173237943527701270623461561395593524118177720315401266451035610398076251442778007468877075404802458627513381371328105229161948834711907689344790827134931285081510104768781081895684121520393122050453894486129525113754641066151121723658567572324793328829931760102762992755952836165831834673997103995742936353942838354304987554567672063129433603574152272354855280244228717810604681343608119628987036005679630413661017028556495889934465228663370208010331915482311234261881393453332223964343949516273947119106333277874372145265482644100472891674167345271891378140101232202723028883690676002640827673644796662325905206388468698858486920318750964197546649010640462956253757379178982826127509644912603618146718265737446927338776564376375329466965111607453234187383611012894329694387374468720053671567925704294715678867949763417253233800533923598619474306628638136476679631811835757118922641765933793434710658312059145659050344145946878797318201157452600089675932602948880996791622027479510901900979883133958647371618127065246892345377208384922614872067891129374786951464176508172346698564403048260581857298639193795559496841758147557121893916496901101170461808720301071273963009607248733995511566926143451302388783601288529726902358606777042983528227108742756969471730744464778047731227979953349036654078869703167316806062934219569261144869386246244506593298627763185680303375647406966156687630461802873280643858238893471747943245157283418945377391523519936117494520247711536393311354503248954239844381788552212046343117307827829508801643222662647240768249829525319481346588144734608418650973491809914274247866949151498481849078018343255861918381000031429297364060397476693474734089745743952604874026008679299121759056271376015060241523474948454558102533179087086973654118932290783079617787722709890275783537704363845552525309984362069817905036341577325948192999834174988967882396617394197041687714752733870158172859232074172064861783894097962795057332510073089682269436205157096751881380572439556203240680223070236569538518897226751634440014581044021991733320681243261633644529740633392683463231473021206450307900686564427601980564141071235072705776071872029529851638936253844120494305291042446635901714952502141335236092782182912857587749239337339242270669903556361114684154301565072212140422058903402865960567747783416591825781880758142636475928842785521163020227851327272044432186972177949017799232364782194507269136244958914718478409198158510510669807704810126431311870532498380391061975965655399421962652660921563955834556980544569688898128444108173415465794109912516303678367560381125398525433995796688066003438852086817311381391018797040888408523714783317012617931756740374539357728619996136035570908526918148410091868775037179610521007711230063264081643717585769039942435099728797641229675586708758788982520297183177875692665603802910573046139423686641733102067709038532696589959643501240535557816316370532184238528141856595557796214917117496176448256543299560085494035819670197483925943890867196034797309192293514868323668509158734316952453428596823894915283699738693824961434973746156916250656659577294968199313838112998357658604841598733653778830582275748429523018158190761992622400637568232321356754822926590393285146794637458604122618393411903504855893790738866013745689215869810251197085224736263647409625422208343759109038897112459117276307574131312672349225044371967743585499627652602899613112482402158528596281195318632961605049682722150089278520854565879602807793574709112599080316754628187462503976249745674898347890658670829768375544450908966381989299316094062169956958260685711434716179417624113120061170537777012425702230024490110444826340682567950389633834181163345759742369802132351365441633539099035877547799616223724436927542322483320585262610395775945473480335711469228748109844599547322644600416583455179783446329827642124777607577716649266191423813768802847060064260450367598953255543498912567096054678829356095994083377766432406119121998384898039088112506962981603638462217649233853188669574229712287707826853960728325311860625960408750627711753017474366378579760394191515208385328239328688685380407386265276534980992811711605553143366553678551751345609734525080173810045815711484585556189587724030637328196849082055846478645372369689003596939146401974967347374767784869179261234941717999385418328399867783033915270195519558242321205717570250859143363287136234553144451937152448263989016831402479434791542084562846128670247533672883302878934565656424471600986220436239814609212748272690270813962514353059790330460202052371416830639289643660218732678438499443441835385093733019132201601500594386339112099919651000120677150552268445376927167713705015497746030823426867010597392453762127269843240360415567628002822165090371947974386285472652476311931272160498012577854182344195773228706041731155832766883000322565128585203281468621750465033007921475245721795400213863472866900615952019065887287967561949644506391294283350733551691705550989349717886174969644042880942812775280806011745101646837143599113546602117123131657476774016248910918415062982418458826185643015264350180377880073192447460169970866662913359951858674518031368695195159317745811126689116421890429701187246009781262900420810680456709137175585706519800813648468150917859972418305332691144120859894023101341617667163663714121015515519434493056351857086267822793127041326341235817154210116289180798455864629063787458185602600782313576071321694983895784915100817649243168868238027845227316802470832713828913586214243752271887514648735999235896467735382027652544892613182623952647721749406947568386034253320374429315498077999148766361649672771040643002880109706630619497533706535086510697719717596231423779938604733203130192004789271771645740541991990519951122490534038439142244569267271875702948365247115913562662377175016356231048055089474805385761112948476176541208293456159299167982818321988161034761655085400138381643944315111796416244713238105628578470453963758264473896956668978088866459983564165576346817278943682285477074749779597795361898576762092994174427580434356764629363672911693547921690728326143958344334961877513560870835542546824798294483630416655811869438597265103100061296667465953893074276614527014666384963980663689836256708180947120539410436327391095090370761901480657278478383664440428404229236169744538824843612474306488298086777632057331769057601311506919712094615102829120723440661180385292136861052309099995238640543214304523034663939347289987065844149173598828516554801157295687099976668114834737468262494605992903966337063016384480382204200990003621095691825587059075499554426059925852804671143710833779832404771396671084358017643163110709734144120145756348144860676327950443329382216135028140069405268068598924162079391541779922163529756112258300475362173854154284049522449217576808108855307727143511146537095299836552189771434144495363169083488494614622863107942773452183169880601485916389380567772009124331178265030680982083305027168566106420449253637185617544632225289309009353453503750821049126072351434166020600645884547493264639379391234894878487824611172648723175296909215507675078602127866738702410634019955333971676103983180371592641739530867738069300549526128984670341818986300946114784840650906073891158265176854032479552126593383199584954823675371798533206339540412085120124197804961375972924116368307805222991814918270851801284494392997253401955686520922646411349782342296896615326752497932603419922996880766874740687677343967493402683853988558777994567001054875781810532847554189507194113793265290465610670438480818431350267426212146262536975868901738157920741788492903401834004427936476872684309901329085334559637984401063360035097069645650882305174160896895904213217742326336607257554011020130400462428354567871793057473601297259763290136248744050329471435348533801718808421465061923270787728388838862929997655454394405622027445800924416358025144966280868733353665863460905225773936697362552193758320251632305823769798876010255155019145079973699096157212059500471204026972297885262768856206731895892783661953999462535165310408114071100313334338274661005715172341997704046424414531669208406554992313663022277460204393243270061886970209557577780819147985149471960620112648559997814823369510495024549165267714990394911783895480596675708041262842572709313564102312696991297301544568290707543154702634145983610923457802316063192788042445792008566075943605952917045095263043150211412305438519368043449241639594247201656420744438097178332873146029368265105856392045304986250825574632818185036669297019813248782899890206157232698127788613392685243892232244586329917654703748761735416962646209961188746899876063155588914439605927810776401492832071050229839323749078517520873627854433997276321236476026771413967258203767381799301195859980156215547432168053040325894126419795192657494801155401956036234589695277139973692781782690242252918879167061140451409829619644735209760777097485761121825955404045016812948745653217081469424101566302174931626381281268707418488577890699139370700995399860538815902030194053265612327258383546978442012998888443902201766639201935408606394485788200292253805243696358853356508086659439297271245485715044995705559755668341295829408950031735352169723134121843058181987090689053851394796038236851116819759032864458935307224810401363387396954975410642055240206991283948765833971235068110048057226710103264099441954004397555058591551756142509174039351858792764528174192266452505929811829236290640773867091529754762865006311374698204185601452965968347313176114342828545709593600014216393096751347914244384488682103627566231125078916379520146654351392744795332066308435494052320067177905292261014237553744575862606077185915903997165199441747470593089229367211661381863938043119633998883077734321307788085049001364582450204705576968390209408176926601850741478628770550067342776774224403646101195395334899796372826222459608283966416822949872147278365872383735720753562345533739376437507835508336521058333757096131879636502756511540660168662394315723434464052038150618737063488192256308058338304149119255662513145142681326088793179087713932806031331761901645942681549125733368970862440103482769080683722648941606748192294846956914496613253421338397977754830241675516837942248236228241012333256184587228065018141104500495989162661531266613357637962600166226233348000917784779392897560927747552084083247702825330495028710287333432904733938349644011024455548783273667258218143584306326483461825856902065666338124793390943200320551591703269000438907849914689771031232335853980971918385599035130004209691050950445264565476323359104434178295231095809847343427529143466841626022274492550992806996159303531243147073945694578991109450348729388692051068300212343607809958955720765416935714392270793363988164610261450348793446114056965038110905401311707551944955694675082531211768434570568790690149324585724083770734956142609196878264046410847515327234715541539263653322691840020161641654278730439637157982834368270770393222362661485657339878941202260401756814032017245435414794181225103364487720746807582062086807636425205983913694124998583213694207917784417872554112529845273373869684289986221385167049591837592275480547570715221109272726765351335624826364175630837410254095143859761046269403539583302408232634371094534560351303109330441601613661826919690000984394747979294585247556371239380044966253543549716381873193270221528381556296876080333397657500700731010180467908528190091090030092310486898782719250560656184800192970168836616784611409204164883060146377114195048731752642597018006688011591106184571618720191395429620347479624581579632020104794563631183279809857220343188018690393685984978391519487629146755474918440070287345149020394519728206856601462003038557435914112000421275210309618924047445696178879614392292675804175387254781817387290986095872431476540284141640361302781952301050908543907603868423783811481882810431355793549657630446265884607095667349569323223372469318111879299556360455879182461130241964170376674404910796632273216819843501779029505650410855368900104449683833057716191646757147653615829178186728009705999402737589748851576712960970250813164823957543915069686640742841070786153206472819329933802846254017100808139875428690849383612663794644042094149588689661153829431803476858879353467351970945489467760250466258845117656128990904573558323531938901318293793382944506691242179534178333590747351318542368252306082868109881479974389277730637791495131032165294636767577543842316334418326825780143479726771555147666448950706742293208874676467332463065894374841072905402870921921392840329252296543456304996154095042723870507510859589993747527778921319798727382831171198971154565440599134628806009653320300350970054987211967834869040439310465899390741647624401335357934889846921768368703200454271079183687082864850178844234037558416769554434554482065272004164549511261544117008622528102313465490326172406562745061224711766825971363431202963212447407620709309930217387064005606732393747613939000771216878377802837887162820860651958778250927240113198158126302522515547830977050035234019778676312500657224313189368927322400831576791275110501678156033732301559282519434760011724254347174085983795750226107723940326719492908919532894880538723148889482171813975476560122692245020054617425221685541074945967087859236276017923051970634361627923705761544885348160932494556210326270500170814576376384539326151901035935172742818198517329639559453566924251407946439905865382604318181624761512062705247207309600871011515274124294969953972871446396250982307656838453503876730568917956748945617833370686849326937098226211075638444100484586276568031516462433716905460534037736602875205253021847398603680448573341200407605402773051300119251892355847903283975717899223088007403472529159048226774984705411253824331144604078568091549696921330978852289920070138516230191914413790946926256855164753906248480136119209226711630426606515231264268319997823155434032077359848945483123331764094845933576122739460730070930590705140580691611091694256955335766643899395685927558716493190582967875675791442442435406498349051226733905616288756605325406144970244043599538790550815242398612077722619778044230165449997583358671005032955964456095664451625792906560737252870682081627144081592703033388690143907958923604710574967547727789730838971027882725892224696622666965977469558904898988301334453944514979109824444992530631542425081743144399094134336481404918246099522750618521803626328595091773354925412182197849476304211184752853502273715859773363100103136983808606931394389782019067150201524987829814428653645556703300929387367660586435477479639052885857946891647500749938809364888613703358804287302459519463639448773911494228764953015348709401313486752490851373453235151333072152736403147837267244836256240441433914666794242842440219700949282008092399754526407006064528322418142913049420770941942187729557647619566861841769088871082691635729277182793582109161340077613943262631632103796654283633372605807281010549719987671942968560226436511892422774287291881646066293875398976907168094948834869594709300690817414687149021488768108113394234692679385297494440148458463432637716233039016519692425117583968894042416354737407196087564535778701416197990059573210516509617476325849647303388519739080160143536614228483620587707317500190294846163388138676236518800880573164394183294978047192302668842457429499294206666486334667363484153980255622590799567432649703849692840948847424830278389658456120417334488467953484772510488501672224430031718731657153877807018155721427236371129286287891282889386505214680240217717821982956572516078867129413427315153657791602398029330144298047588017653439928040666495828975897797368440869972327547698139813187504272231692955414742476297812958248645394991992665059692772445184777747857980268164456260902985194176150228372545856430930717635425209638567173311720926848910553470753638993421996095494445515027767655174822258555791509236178692926019342670053213914029251001254526958516507470448574479309009448871466621811885795279693450109319530864993717446805410354319770942911841577657217728330860060493650191072014900483528459339249105902241191622803742085140741394448141696364190232724284429086827023684840233515622605941555364952344059609267922850552387159730974654421628118521883790446458964728965654908831346680124963836132412990366533741113808260497719798488076006826529340114938729934905784500280742880903239924760517698223986608041053375537090308604454501225400632236176751190142298482300053738094859755318956748863033799606386182656339279885146188523886228744874232102836773053491898623378972004245976354802967607306393264457514285549037999212983422658248012791685920900877505100725759383893785645084021084931275527152440388977018795399253951672807511312058631232443702897386769242654934414037957692706629943395367862581531894620755195967718557689497365297300709240678841230104804133782609273281479173875263726215143642621375283747974310997907842736291389486978613224322406555466016628505155706435851953189837332791979750623574532435758711318943903216648289796446106088753636816679963178090482432822909401445060582395991737451219795352535311270702238396097052339088393973512999423890966481029280081695042734869158137055968218469620329296487936680528682732588907698699622089067226016757026995953893899486386826515015613917536745813693006945013952413128249358108020324980098591401370003198779377996583693490661965008852034532722051845588061640302677708300686922812823742565670182301543795073027649725165207981985831778488146819168477568271173016220529838323449754531425146582673455327570699293790454225592909485486090920334498892306448456420449070749185091441643996740460771888986196555436521417118008857831814791499757907478811465887680468309915393335811796727521183089568990768427550588927215520548081256716941985849417655911937005721487229706434416717826977783174547596994989246237633460493917134178949641742042651572835823778314037663662759174230977842371459214786450348187749416335451638855322943462014757710086835843858946994509718854665207234243161207133378214644460194176641270358769818991626000639276057715534541911138766331101703363553998076688319820472228380519328640248801842601703947059491006641626008864245763253389815543843081316666527299727044369365150921972502124683072146678371426084289474058215070965362688294458509083846715069340457350251487652677371106728101899376803744082404026885224140184208372538575035893869127725449881370970523781627383162773357939776154077685597488775840046577026033350744826631813316433589479780688909673124457789741354514528581425660358891760902787774560485520179289130430816976944406565793895764431652829112444402449852329181678184997427434015595064101742611096681018098292209516809316374756824353337297876649068361255614027309914377833565907286881453104538465109074440961787004401986910964195305521995803164345786244583061414983460974952488691281946896902612957280472164078891335591875492172607562688642574999766443078692845328556390365065703474421820269508185036788503936758210430060872787867743775013739114782838141283089894116372566390050232217276799200410765070320142296448315458952643776039051464571753949825790864255820576839830291171826899822482299393381250130078248153225831820778045160331711826879045256881099859256200389982143552335848205421249877520094131919321245621396572030723500063173214566580286921459893275729006382981945627226066301387659711527906118738109583267484960354433618336841858325119119004812118286797509340563082351708306640642116425647470017967310356079858708435297274584772999620133430585241367784155477228639903347849062376915077420504078450683298552357056563966464377582371406044275989084583495157503940263789314130858041010853981247202470145120103596281099339764967121961937631185486053517896120322722492771726631366479519455837598966711639936392702945588437747283871054904728465747576357082679332633899698798544690989138102855507097970628608419606930424160297124083925524346538811345039438657544041544215166257329771991268627462389226370794561640494343612235651835112115385434664453623667765115323246756053035321105564108080398274483758606502695033549011829725390201575034567444074418887269238015929043473077245666924323781097399235893213995415904606927701963597995726259593393127874485914780293715662499059660681625500998301015803423544778609000046122853547231199237785553220435609022906480796656637781226546261483668426914661871821834936711962929167909246300637183627272394813522453719891083959376292623709962567986265921273230433408831074736272970798024614456538093491131912479735822195203731520121111370627999399954758157647113929713812704899422056047437905443030808181277786725797062386363437489427936119026779944401577403994540646467030387890755009090170952977777109753878124323302020473322607690011886866644512917739923560092656904998531533779407252349652050169256271412953109394324209122564489003453293374010784489564703255644778971173445621158164383990363870037366865835733672051903571465308553341116784631427759015829244911091046277679729087048883612240473656827051236641840795713694893576338999088209511756202692704345278798434588285080271201836405755040262773044841136571046598442881189811577730141132707033681017333169864110672877227889775181679206366811398959315097496873098160358063338057051372356867934982303439019673419182625821274002888601764223053788733700489771890095341741553814408027380254796841003163557354421082346812363504964160323011999709203879804190343645744791737564207927116301610276630855489837450535757807791426379466915184274844574256014976748120202235272200728728533435469993744534839046766820230561883675101090641069058792686698312346677102798657590173064914549245007061304989673105055699133936743623760318865907316738853505063240340866975704764167340079616342890531454557780291441930807613161213517522552523928408147665886141293346184122443891644303280521990980421949540811717718600746636331231863861670992428213118741384722529291889766383262991076362679643239124526907455427479392295113381014326608934445946542528840222985703158947154038547354096182799410006842984131447538584938577663311880310102319178283282030748807009971476526177335778232908097352892589563812754121425653538467171551804714863237512445074000748087515021968788042533437994878229725916581899665660300289147654919433382315141512707771980396527791705984009910672053651638487563343920188342118056919788044444677355442556951079155304644272905963650435539308771682503498605982417675442754559405092576653446669171249021809812310259576222782417373200157613796736727108329735694472865627231776973695461779745174987902840892265905173829861828581099856105491410610731413382402164181690568048232102568566763718688292583283537096978333756155232551300803580821998517298047497453634902374614192506850312460097405881960057871326378055332442376600087492797488880925366809834224086407052388537613824266006030608053225704768647504670315121676466766828812874423987784115753731995189889068272893317810043227500050167066483477906477205456435930970442356981887391720553233250535127472743682188888894174217079431567733663623806793244626887986372554933257879909876744145741730743834771483012810790031280229789404480456588630216644489237416903085219412690579779250801996403243385653077587985555184050634671961405042225447787498532610150545676427079125686023036989485042196914214254211993324859909430562124304890189752660017668148295175109046017587563387311867956878178374602252679861409484315288340880094610440165369844406887054433690028851245237255999512758833310222269583823426233994146453672826349960510989100288036032756662573079719252525573391310205848393815211935006072497082459213299156704758783533237288129740007814369425098690270134690125935637390175057330051460228866672104991401226070048539350105533907186866973911392153042435826883801633883874596464478485874335594061507801657226192847102389759282177818488816272011049705323261987156265744221979036373962842728719409003999740739725504459302093455788918802892729089484545717577406144778273513134241528426823013721015900098926355767763384264304381364516336626615757695750498992075918617433166908358981226114328278343558732727256606000066132234402817317772180576736069850660371204812609779651498461129502174319676084646905353469572983642315241276872891993446198213857469871927060219783800632716447552847813879985769529846540859832906456907132973702054945722357014358497440717851330898910121394332475043452306778658625663602553144848142046869740767159419628278059521615101319611960405800074782832811281660569513637163865829918278962594021835191224680444864685205113596573289889966788483577949815925385345787607223749898328072085776661697590973337691234939823078928097639108138766189944951967899344611915680734316281019750835458805775492197529447724477208335259550212212198324894839926007768175969866905032055781759039499506782240378266989653857266316941254646592571332148807764140978739269011630160982044202596633880592580254619700986936174098266755373701266474063624894118445066477177706340915053876836767727298714795159019594847775887694738896571713654602984344811230007076721471237182900328165881473842302347326586129924297114046383781788444314257095518761341521860423137469585968847023437726187925331775112035192909205622978272530440574166338963655780046328224509657539522440344790581845188474354385580831511224409111820721130438132097743279974306103754551190836598759419176656705753544152370013480757709052027665172058332781467194793466154908233343935900077765662779338044502785993002939969618032198681892547092210844483022280037788327401986304369956588347545720533603767493047543987719456032253869701714981538922039642429436183944010104283363084394376565413222576755573744199204622423418771980375064779548977394480397021013217520341398270055482563140621863367934817499961919160426253495528225449858094615333401112140055921512714513412542833021028710114489494612526167130972678926411546935301193754727415123251181496467448372308484294973786236951140227042373143555367488861732198129534146405827429356795265156025174563600165350096576516195618961135676928893250899988713301660414166629723894089118671348060915859174028144383260905849453509635115005557215650988661720180837106199828302217460924852011140640291940360012000579743588264479035752280729168692169319918628956679045582605728265791437066781962414878223784300871437039290865752058525940312866381537457095593854200225306197481034755786731292715076189215015545293689906220017994338077110995020375398980514684123930209434804232984297140950612465915638294353032206018789098992811515143391923498617793017560466137556609787843597827182711084303221184372173607575090362650510202088719840075153446220534270615033358715425448412835363992816179506084669826321498160958514292346959833265029045647302078260311210785744277635594518519016047538166634589798669422087557244234345261582403683827792916093439473368214375139110504927015965835675373714032773939875919669678919627936876855396363774470841151788293900261461292158193931807307886150657786200775712707886016063310988219254201464200509099601867317822633321000350260390013931265387568798689353371641816476922874861672976063929224542313979161872115190014392011159941513910455227694675603554582553549164302356484881725609504246894587570242111169792298827104589108750269511449902603254590334096300575933740966377585920985584225930606131888405577380211148560681649116667757024715185100584374500826565786123595508928297870601195769681456649142823203071513954359436248640843637613192411087203120922481342428501912262069240307415282506807691085556771541717778483259756500957070919033665411699342872589459007110514134673912469696054864456445024670526129958608391623742867218268631289593760784094308156536891484549658658093777743609872118131072287896930766155470502527318571595361906625598763019666513192783660631407210469125303545840268890655572220151881012541035247147567127347274700403157670529681074286663695215848164917828788525214939523926878761451235459817829760516391314575386006009177536145919876104442293115937587549699191374029724270748418108080282559090016807085240306971750040564886580239376967035764703741224729423738104190913494464521118186133360697895740627349263688859662977727107561024993738941450160514812634979492041820985507501118899915317634983360599351422005569798976515947453505694323630673943567364142308745546219586139017992602398498859366784205239042086893103214422554368798825032216397377054843484842454172722915858980165109261397205084862747720664329828415244605166449759269640223341710133556434329744495734161339071655994608591039772409695120819647651537402199429679571800872384043042648762610515355682017918058599959372151564680112766698834133945392728410519415898557998848676376595534721268689621526985714063311559361826423485665743728246283676550063927404793027764235113368576035319850197958065596181203252880411567854950801663676510593337506510405101872079124059721005063184721891103036245405986376554627082577302679996399680000130222337718607708437666982928343090628861896534690391283500907552444983068447901761194418301364862513308460154027078892884945289607995994343214002964197366489592467226479371323797010477323088514345107593922561400088792303605736613184382244059152183370155717403946710013003158526274403533762178425589295521791801498947838582707388435467696793536861711102630738358861145772856915851673353466181406928625070250964040816343579060755954531126889851484572905869247070846140118369959712204791069647772239454355726153697533443353983990916841998429336899151874233240680695735749844373317964274454823718860538777954245587359912901605311674707769769808348771131796649141285308332453797921041202157424067620295874136401369405239593772120252542093016327990158935776104488843513554512167128411675067024282535004321569103679588057232856726864383157131387883074683270616230349217321999408992676072702723030770680011026127380836703867931812057836243205925570796844748577152225009070018682328556788810135409660163691629021392453790668775879000051481624940904157004112674124637741525917020185231965638124940832565505996958630951743463456944012042499973990442361962353280220383090827591679090917841931165934650953131633917795929082443601961142845128310141433669352320034260679688864008386749114872613540858070699457889058329734757611095441185581511643250637584055525522930426165601886666268729979779217203286368875072620815200497648575010578601273636633616859463617029371512445502885315728629313419250381457504785926344237558166945762357455046429211781138135146740722950643267965003431834228354532066856939117991776162874349137550860440546196725239905804205708167652183963997054815077561567459759609015655896932891557920409426632090213295937950796567101037193253635530967764002599867767334237250650234615311088721167715724315125652985204242906627088148526262321426362648543436387488974955628232601449103950487613056660205482540554377930462418585798144107816094773078194900583763152519462899366918405188738449527006343791984266454763368543698766982788059354146329066432783890129556871868009206172011623684797507174188516772159975014238946377345655359524237494016837970437153515812804372808226281178203825814391453493728394715060981613747054927964519878426989814563136098774888394416000659641545301777720018389027026498415806408692826618953730321736808825043681884099789728824956360575313733703033611375840991925868152423574135346746667160693991951629857100564822664584498230470938432753185029807075262576718440067598323280568243914322601069138440711051769299531485702042653896870278166947136718506720181742889448790811646510295517063935612007532115183251794841816875533200295523616321945169809065745358204876335632913576671027520980108782154815209535003567350012000378090864778760305150877566608551176201406042771317815985378433522858118686588221471629500794203889882531707790371876258618668372248265721466505488150940337731217600586080569985276867469477141843634589342667410280155979202034813543128440649505269674705246986757505774453469683805243262535785348355356705510231828719097327104435518804811920322434607360024389503967712306342004765555808418585467742163026349007760158170707527604396896137323135364424293717999754394186181967714980657294713673111382971137766393251526190100369015257992555915640874764327614780895341864989028159264996208115043895567699559617782933458048038023299272789575410520127175924258867349805038028740159801360559479037655818084805861245804799309321959648917233355672948487472284708317823474185430475104536625077766075953916502430929478353219131332233666798805710529229598089645234679930473299055195194570935277129194390721168410199044120430773427943108404003366259118308002904787114607753868187534548407100592176043228662672715708635173926619007786721404353591114491869474272459395207945593962651843871556507165995676969292701596078908360977045594661198783713006320360938169246698042735427212910189474797506877549832252932047295588802225334277716924737627453887468020694242588005455198631277674255283105106942519575514542066987378051693484249292715844690754766638335006191974566058776563976004146642493971137559036360471287117530105458843461034372694887577104624069111042990784885765849643303907493658082150752393499269503829968280525319058530292603303611082466179915740460896635726834604211300137684520125022478068872311900352190407652316781180908893583999664756997316256216209740379022627910112739744309272544310503849047188743965346754299379445716558495534028192007565750526581730530193627250958787198740720307091054779010058802846264700180871834251307536851520077182085402763120269117657061800167220169180256567417063088671502153046758144471872258256089703956504203780940469703947867307632064032764001579584743735551096610258348040991021727360479441093767750685724688110739131765257124261267270164383408536142864296258569987121733601490917055581067722719964400332674307253403934542214182100285310209230103379559483363854882390786596401781922343561600275780534724912003281739150287857418661477150865234157586847463055120597716233289206162147516604169766950093423749125210905664499112451838676024042266722822257313928024694717754260819353900181937606606885596216600645943691045817215363415877756961868380241472625216859318115232449808958655508380640747647579890578904354691497872039440610978446576360538945163257250418664865691409228679229831088617430327537216375518650462368586201280493247780529362210710411539275248745629536399596227849759500151103516719791186359289074143098579759939938706657265435203716375367927901134769035227134537856533370622386185438807633984991166014086738313531444784051038621005873640584804173358549160498603114770153045226427369588852456382888784400746801214607057998062548025710171228542743189782041878203591827971355066776848937206078044471836781645563383615436275713550695373207603738500282374098210449218014883556754785988920716533995998791374861169393233728013374077642226711029329330459132940489204392731070764009889231175926428419406771196291319243030705088110211686377019121697146771766094164330928109469710523738645149077874065997655743087074427033601795165934587542684164178088360815635906661140376286405024104766795449820173454950397679665760873148104978871301586944910557277800761929618897860437333965564214440743037952643026125975389480276110501108583230690885268191242032543464067270932915662532439917185633744847283823869763192234812981453157312149527114920102629829587710528871847025067670965650420260668960148837716189597626016539392779100021601487988705459877984783455419853033626404678502774871083528085105575105259591482548167642844634584802944827508776102128133685001270965468363575296636757217695963240484733294380931109259586729224666541673925397556277917011539002302011711815496636164144881561410289493855124677504015683419021992374590485112830028570155512707807998431049326632506153428498668328595972995378381938155607897899037587572741444577792719073718717084009878666230180627244253553169962812064106927821978099880717176719829460141442359889121869384129986259655105847248051359980477055288523609270550967377911771537995827861022290481113308426123974037879798474359572696354812655189045307270710549019020107744876094571937853951603329163248724734826973592346235847635220084392223133823829716302435878419077433115857911762248524774731002907308553633276265088789839828854986668445553380648598725756543282928026161482428241728087165092733489319073640235224311343648014975381582498059969970008568160479757573162505254053686397672213676731089322922653027661623570838598109451594245330675830290871549367056548489976934224735546022314836180571842402111798946735771854754133347815843755642212306341596403510726878578262919973875362357610539322827972557722369078587490127899424331431326688977030084577634432915882490552444658995884040982435283523335294079137322558149433038205855481988801378532476984978207485176490092285933820060512372425447052231518737789473058509654752389398057648541579763241421682827369863865003829251714241783392426215375493608560905310957576515138697875597207924535070860407404501627778071828256800656202041495786353820650693531882464829953176714359899675682200333113535642331885670520658659011003217336440270231882557444435022133395892650470261732622279573430001864573200001500075511804880288719053570691699004176830473369672299613390325130491431098358164397464867079354421834229529125980679825435035639179994292787609846100903156216551890474526610245299621495233733035956706249454273766885223991219046190340991624959214326624630700010051742084964701456904787178824644569225827712397761853031659740996913215484032400922748399798539260390321727851436605317538881222274000999893225915708461820265557293080746019768287117878057249230873689114503323530457901633698873880428086311376230489808268121141029079889605940144581454766392071682193488565431951781688246022798169488364452049537028502984890574835487918491326634443770564782070646629338150412871755236746232562912465898497133418202624444991386066562320839876076649779128609900667831147288069373643435615635663421535453931127197828605111161273594729552403370504031162760907339420075099006098075476769154597805800616829316738103458096863086963101252864577955964545702929644388214952301531305762027188764631886988062455347151189626462229901878328826224229704395790084490472205060134718759240702617286645638007115732516065637996052600612775579941757470798280491589721312124238820149692763674531441675310243488598525570148538914029143411243003540600473701322205448443189846370004963766146895467350307575004668130731248776022121580826338555252805502959283094370232821096692338217358143290486476441918825194438518489349600337848942254763696129667386054875715280390165939417815023273601367063079947692122200499071652310044612095074219409690913496565267018330589097905242007040568969275938527163814504298764788007456949942601354770777719222338481446906965316871893504364148280999242933633205260622259565348981109863326424368110161730710587036173522636134609760539513992901207961747967616875512509790816763339693395160708243734821263784077150471523124682742522793139243303886841997990648364554665344872685310746997905739302532282489268974878356951463844383508702895750644055076484887024690747332402846913227398748252619798099950479695702566575605196737514628773573159867920729838533044216582397638486612381398442702462529490483959510512153225235038081550135563043261701909100900247630880942039260286973693195543544868953890665937712379645545961834901124752403205058935527690429439247092958392441066426568050488296870987124877583865819058071786335374534583562371243462770387910477468377151531844496276522548111078096637191373649608546168909173982385076743076522019577434303932064287830694913876172765926611973522141547835612086006728958934970546107670725691144314417072955107011445574428252342088689414858108547784224527891058138657229276956288944339920674161999621851456741281745889577336639563241689030190559216162178090095639840089258077569051825483922494880150141799223604392576192191790111728182287341805496430157869353780998016513608720853724885459996480370953405165221121677435497900403727265004542669832499456544485714339608326560557752283860739083669291005152782278656936313586022571534018595604809113123857419024259921452867019193145386160580995693219810939413405489290862729308542970131691798642487113546233815113267997418853454501338236928199207544355510457612153496243594247629286681046602706062122816126359118985580070010307016518560192429975514429897983227947241929271206457424134285939641478909090004467651923954076681724526939886383197074051031609034875661499205302814995671366747213678199469467060876856444051900477741511781111735530138210968881969768311938848272221877179045614655315857832626870165374023711781473993665747236954090776066420481150077911784884235486011230032304565648750737744082876825308715929896286302703672300515990964755019271963809266842231094677880236117952401237958885611217048706928263361299515147494450985971525076331106424988148087524764514179808859908484700441630954705766182847678967578217296808704845589745177426858799849547401207780134189489575073019011685571947145805514723268241762141108409831578564845768615315519373054078612532764945896414470554880983765910501872673769373372376662538441718931599333015106354778571712775387872850924063189262441969167414089551984838702698593071414907023015029682255383442545179033700305874195605523992871802515046482932864762546953530034965974716271799684588219852877204352944212342679245548074314238516470305525582675963160425984202687445099255825187033130428709687433776949405941137354418100518445542717686594944214331229280198583687259611189180411118932785960207387911479927529662502883620317213496818178846704993990055086341188437036380049574411553221751667404454296177136051668441294279862118959391037645808734810785203671161522287405817405790090440643493906968110940761151421670812368579796165450103930840679719128780685834805322273303978530602568895157997811268384432751081375585056670052669984846383804868459849075468959846164464524176551166049534737902107432636637254971401912470267547461004648719061044862870812180295159910719670911873577556286853114510674858661317535831914674329455994377273079604971596204414234981655743974510872161688339405806137237112781734681267616557055369711652825080617667524133189054179697061956354034309381367264731939115843790297576991035587298825457198804170627428234696671290764676018603415070601171213133868235002453174584995115745124376469956951586711327888628486847829931571079417479780842999399921972446790303585968920924433426346941629525355868668169443430634176678259642684631813103043969582183091517811678063837310344887476217410129439277605917255639570570222732337396659775497116021407133619217574660934233490613642652823543209224761982659311728143268002260965100519576904676918242173696536230833860355413098916375978707156704909806025077821941523981829309661162731359084353926563777685251286598476845542169218938682747311577472813421230623871710037935071580449419591451980383673434761843531334060024424445565572700657694111424265184791496687451828219453732126198489150526079219724334786577794731599666579391803897778558063068081545215902390876539127562445998442849237375638006280422212175698692362194566682641696531113398686814142376616087200781218128867416014879734690167946157012160220247037614546844622786934634670969646315446137060322741433070979089270236574164997363433738865421724621124619268677483943641527626717711550579161573401259208570648508705189296961983047309832428454689539775588116954992036192721037903288397079413636997885938584974969141683233641467869694963326146926069015438775244780751340728810188151605473136614632587476248278361192354094631286729843922384213196251981953737563666448411245942793329508831629434667564700745313332737463145415300486432298410132956513568170691799851909970535783681592569552176747094947053305452389190583564569460471309819741258945069992892219450866494327909187795458375983173671417578817702990321183155978985335926114575835152551027815316230125953221012973011413465773118297912314313081963366844764344033482119658164332647958317002600633792322283128965609689140617815311076266699661214473785931046910593198159629908911763095854083101583861915640229825624438901277687741345505546456956105289176148051515319472324509886163644603270011547034137020802026002518791063476477233151728811152144725367443736303996203778426349345284525110270271442754390089890289717679971253139269303031428874727681996864515865657155838056269408612830496564794325010351771896970877263273231646668755002757070381912249123091666237331172826577111527518640335556215210359867670627455021675294928716638693660994657008016544276538835414696562917616000792607245079197907820757212325601662374204258288714015395705542708004900491784993824394651008199775072081927595508658120631256104661856687640980594312184987900333600163352913574377991743167660280916712714638808736400026293074548628301747871685309510185719809094729130698492468479210870016623713841033179535156393985240219942170111588701762503141033456143815660662078942072245109384234822501039235843709702018730858735548594050392329395620513647788420611438128342216077099616104965108016598647008946086583828197620833846171493495647970612852637715410857002509175574226242350441030987633398699137830791083371611818248394652419998972382289300512321037102647032804716423823824787809424686056109910964730132071090651569193495555262333421514864837568596883101262520985512634637019957011461663050186337490974403108850615596129777202935863526318058647243774989171428797344264121859031721744251863917086285982821347956316863334720541674517745260191302613039441979148417060097303102492691228412787173905608035910196780894702083909264192784014796438332470382424155892324874301063389560855332345279499878146000668027058423819443038900947176881662626130668819326576665025931658414615318855467424387453883544442760075331952057561428553583615579688863325418576463124823985096017666400020858820890012018312890434525138653617503004338804946039769869713761184516803014119934652751965188564572443298181133748771191071589548973981552549096078888039789685448548876553510811067098660661832599199346337193462391572154938928499389997374991865172649379440857427495583869018837488080162225771000082372034860020468156399372761316913557909505876844350535803950982040996808510423590990586946402234798075892267079772425580841435618975371175933658819347186870918759521656922341212924063463304922358660529461760616102752173401011223854435463806874332863939815300105519281698014367175538872085789057113966078906261170143360610173117988171474993482674653854587715842798062028946692473725283422811847674971312157171993420497479324685950666857120865767150737585276479598378502305525979144520911132430619953595132640463155893240060686755003915735763986155742107652923302009427951199551188715957477348842144010728336211728668543190956554028638915084680431947995086323669449322135440885111280335242301749405467933101918557511520580084559942718661726632296437561356444409235225376293663178640255318639288682339530294929840302831275387253134529535631822169416264717155033977837486532517116427661943586454121293736894005215102379188312056161831917574203083112175238634846810088359646344600441890652932987530134997744724154615346194753523780422670239676327148480939611008183985396157876726421255680108220589076610220742791244508037905413041843299174032753528660953884523678592784301946414024842712853012820276402771114808650118742314655848834796736216665725197123557746337268241639557511814688619283175405516726098502175063396703333011067678369877834479254567071837531389656714678407933010493901735189424315991075043792731789883325686422653352241581217113366303685991019009510208099124378376230856438466749874277592572243156888133375250756376223673298800615267883597930611603711698655940813469453789347913544849251677605090688831399193518610315022748589742314735811031126881164427352473469543534303372940525154749678005678158230247445522988481545081053995833018467305260680214752727600884283269511230111928720185773765549470353247633998620632836745135416368432986006781848069193455296022407328642062248035196211971068850060335101378423247966537556277574846402649294246794732126398561678938502802130052623562185181705266669360030498225130523046495267153884034975004956808399407248787436380528641170899225839727850646023525589800823109210962045846314317628030463445865124608702060422952971453767440647660396490334523228503880466294234680088142672186783377929989737342569113175107992591216605970455426528910856646720936241818478895930508813444070678388023383160828410445702527996785066020296568567335905490659195531568986676424840319124475986062143742253676431085705162123533576119383106765400642208010955016339176402304776686160237949935355581763697207555156676110208108095450459566488183839639432854766346265506104096721460370567591589822985196726693914710972383491717410502207521763226978851684638722107441568034338969885533675405888167256791670344695064359279871547755636243401126102204320253262406104511102557138328985307412356232981452786616447803529918227187368942987185493684931221430211128951508859071982447220949472129878682613394235983703387652694010624762739857753176896611715991327623303793635289443397917724209721005238176879258665830086649252164281151515276679098347208451642115611051804855111259856556139633751917692463934155564215705202455857540078994564875652232986969250632887875656302633508340759575452137797829777064799694122660867970054006879358396468815590796368318983370575478785252295002262608357185191654541966395069700114184530459220385929636519830939751558619819838364866357457564985594707323891104525344179077075228673124230505493037969428285060936232906021964481755161516894702228900818820870044928887813588535597199013721495887799036899719257114456255732078660240931406706005805184767332979689040733816077419030115940353210467402677155184638054396361373938148229066107798507366182246504881022245775513032584110116065720986780147443191898232025699485179209878614234615084872146831382299406559204786091230458108789242978447478922484047328858990160329590169535230552039728159037445183236556431388078187788109839412232167027719074502261437147259333872374297373584026598690940204005281720787902047028498136724244308567439126298291981188147781744052493134241522025321270599959775226407870741369037516996287650590361809367249838806051153040778035119552339311612993799329392381002278444294494106773126712935991981518114490338027920561024562574505460399972033340236301159739437689375673039620494951002131464513592462259991736676102072514014923167057980914819582434000106589685244396031558476425047453782048058040650181681333061676845781469974053840000809852514343040299428778143796649359960233397766224140099514109769901974483792305114301551780979271353332385890728659707278511356096437609394535478709932760445513180298856895208925315752848754418182607344707619463402230384139801037851703102686608155995068822407689735992446354607755744223339799322000070492129382718176212040161884458633554053194342016383316366252234263619494411010701295796196892621868610264585438119001130984525429571884823329994440154836420959728115172975842977701500361159027104765047038647001400207420059386090215211738938099377295210579021979077475193322631128882722478444291706144481996030554463636898347587798783851489705457455084901102087238044040802009765374679059782483899518103358415604265571228398210383696002680284935976695612778921817022463271966279935351781692139645886300878509997272076313874899424668692730151938104339326025236058334322411132996697720967550585782742546533232424842811541060389213327891349833869048889843494667856786862306037060952725131565059766302618925656899853304202194968920019145748133658319986778331979362579256997764627851059306570112434670326837253316726382529981726295291596322803445222076024155365667190460296237194383603725106675348166280167384232453006332653334934065785262269719927185046714808762602993260294434157740041064953190689520189271841901961100914557622943142617086331541132011221831595446543368595080253992684243756482360884119081417715623333677138170823805176234022857967608572725407533146738011810472327152195536969334872822908233240055303216710258604548942902264529473561711745937170824594945557866316881507641462317601749523284909957823687106986207881752239155412741886833974497405488268257669418074250268780944954135173999795234425475429402529989158223552065295927436418295218843657189618730600170673843783189444558590833325348692579971620395163836859350886697430809805711840877280443426598340211960217281073442657728539259517745000667341144991675572880649525753940331768845133282980615289409337377370930456249581339198286862950191431611536184921422589883349182202323153761492589553927002588519426920320821329661075010076502868225085870923526769038187187364320128105365468259728874632922090295171551353485933150123117072778799254781836600964246672673008832477785590476925705043770996597677652346268948267435495718285016602300738328916645741710201139459689976137567988164691671486836721423471945002904115045887862234709038998061617290331075216537857956350635383260229125149743502465802270584876071575612991508564814026572283740615498090844407447077474575455846852084174986879470129928239089359467738960617859629967320795482418296269624346740349358771104748206021825184044744737260364039043078032118396387900941633788365160337880056538613731855684180503576876092301033942041466698090328226372478090647392422879570211496901487851645574635510572390925184699100517414934064636310059256586629919805550766787403992491033208728446179293725392200749407474647269905655556279435644065542933895583294967342302703255397699731308793098951256085336079648335257115492905035506138479557278089120207956123949019947950543823333773669915975325187894367612926600629818138994469396791200144335860462074860053215471152321449358451689571237555797723800060002348331052518601563277060786345863969317798786594001608115772627340613736382517794768996900277084733698445295982482791363262321178069473732125358731627324894011319938132725644295776511337097230225202587592576935690323875276035854892656780084548953543634019927223259475234976117108786656351482837713066889249439210410455098626943796610631510349006391651528672190909351051409034227659884031147945090860423582282372182840935860004345077219031775664674572630536193588375271048087471642818756286641065595012891316004053797991494097733066936103781352402996430852982504194948678782456178189837834344669402338141697563707242214393049831640815750908993193569670107308900948075224117408186187548244150334626262771137217988776830560145566979499976977045554467837009834874378937340011892859041278377361859927947821636495058284647606702689513354417010295221973147399603758504494175094868708038236319007641321872054789935281446581508387770892822082497493973083648175310618244671674480972854590499796329345011452925587604902162819888701585968738731806084341008369858305976686017608963291008253725786814129375852931583205466665875669227722709114572156594136890761332353530294629355618777027479244017507674934710912425977420004513824034903907427987634214496734395742410340612841028980643291610439369001053843375622949699230972853428328323762616088130372794110717393335529384908472966910917394852083834624825645671273196726074920530165384704848684917062839737556978473654357395185057429076969587343950949970970821419836175962886914050088179879165754549932751893252895688689776618437484511132631597605234447741339715961014281546606937876629335869939340265140326675333394006717476258665764910089831429541664916057908416973457715560908106063648181880287672410223211636753092487624588909109384394800212459810237591339069375023899758329396949613265068391797686587618016929939610457072024143367279780124460764197360624152512828239113858340179976426410799747535400438684050164345026421785047511305279233737734561237906007383700353574294231169414271961386620054575228598461554042303985123990116567798405494664414867591674771343604149371262100866658715110002392012783229117766738607106830685987753438617217073065443331890754279432384272018461264347605770791975141138705696292520932297551818848853679401601349586563302769808357046349319190588605616484615175826073560638462159944578562237254047167253366217373557907369523256760029640327962860865294878129053742209872207792379505652778837796386494950227231642833697075102393420187604514136465787658923801350503572283722887622709220676585196165716145308337015783390863653412611090827216638739837975208587469307674974104736678609525893851292097378974420424440969539672308949508273241529618788061532096835462202734382104973554629622152765323089859023136796179057628177441746394829702127235497939678779746487382288284400668093373071909353440910613155334216815827066054597429945399610521552463679308128889286694968536586767702916126310699361063237772810297668850397646472974129002048805144937474104522560002838505554600681713528333905562563310685057893449664907703304190694457800582508298546610452620102655640709778443102747825188541390326069577393505061601064009818937517782883506256207689270728033005285318112740454323535033551309712862927328368418694297790178316127382054475519981229139069678252877614231679503512731815677107660256480200151395397102542736575738347417576854697762833372319932031796365987835492567756070241646114885429803143124329025132520255468170234400073248053990849692306898915655502853711966858716263094167608095045384422431756461142507307448621992961882631912375736949871007984621125831400615052078129546149754112060595036438336070704384439386952640574044013908127066674205411367774847450328932675540868864019228008034201248163352660125146134846495200864945167675089530786028138558631972267079399941514624092378147644705437670243593460376190613175863783517411856118992121667068223736639373232081312883612996798570922379144780464391355124165946173615977430092418394174208243693468381394553671549265921410131980810525330098507531226998760453244533260520804271007367318091249152970579696913690159043479406507311843007847161721621003639312211188740337219557197192480243915058827380974909269452959097433263934692605939817673847379015991119777936594228139086625051676129939701314397224715009806579258367420236607761572804859541478195843708298529523969575830193364433386153296328346567150918111142601241045502666073303893687224430891350869544207977699556111980352557524033901566034893453713472877859985700797133342421847424367964858214664177758302689031153844277185076263354930633106638879907678367599989533291614023841299424402069066288899057733445297391378147912000139014582417392481485300336103653118325157787395481163946473262884547100275421438531965971964647408668057521144171269453494778445034466824127573246551822147080800302526698966067734723295887682159253617016317448177149391655436953744873813450663245987479433833037832011648827049783241289873663634882624158372783588088065816746053295446293828772962899247567372095274984662740823279732214925363180999508708514107957305015028161929888584845647198461219517087261110142277896295042843887090500977543713159950358851556049275482244964881036604506519296571320458004815570488053893409162044878551240902616079602223507622466975553637085139143852229787633676788573707588568262996928021430784811991496788738818670226015507402543827061595574221845985602680585737594190017945791098774129123707498969709030358733507065403235406641941063241140394544606896532955506831994262513886950287837776599046603473026914006424597336996688692082375988336846696624624952764101805515450181986825613905423921260001217284786280375803560694872925168933090921108368311060100452500730566198327264135299844634714830784755004689144920059316105560382845726028109142580286131204255032087760952768880499251202368577438671311908471765855546106944431701680938816705065932855185129545131146201102834756418251353501400908401786966556248333762423068136303950421588640656798917133615922568451603569442869230147060807713056137766280573018713309498236418675491394387965079220963943480271680115796230130247928774277143807704466736403393472897111921411685510684016401370343386314222216145997934826686706153948600472945655541493684196254835428615802915501604217967051213945351349893679425958102659567969945196876694364789636204553425361411518006261567175342506959488229456296010961433725356251800532238198818320313637970079042870183893187523595097040282110941505131820770427973995372429154247993616669070295223733611185080436831078085331967437069335684243242305134313611622781782232370609199598832460299481671251773832414431765836240009815441432181836668653905156269967689036181488118505609590968623960635171452883356943101264489654573340019436245137806375862005880516913709794604339961671195765304276194487135554136417934477801599676615660598967780345929713255030189871294145538311560325131073974089508070678475479928046916127532777505384468085485656415067097419573167877213380477776124868749842695128774662806993658297352450138047314686511622691261107904309143050496707662148434969401564685855517320377318357759155222370722027153376211143147397304075695024558858613631739733049795025697044573491401663304857806966501179484126530874403242977664000346195084711741417487130274277814665989286813733360801092901791340395399927720799404606122457165681871551927614246337418270981084065080875861061231801980706957980557445179321920680183312044168948737538990993187581639058759837961588978784064664564401463231864903736271089913079181539115965894877246513669237585547806725461395350907840351797343986328388358242770217791129016962947000557017388647259083421224457947551362576831165401226649038793428512159408119930648665880704817313214248736801124842961837021413124558960687640777440137955276122344839779068141395775214697039331835345424041057843425036327787342465085405443592898262932267473744766499032210261904022955549952942602336757686896365601684700196572994240924538359630235294590540119511523636792167620472467356702917045959798430787860680677226887121208927869402663883368097801366197843141516608891128133405817593002010332952869585993419089349963433608242796860308529051218884075701678793651442069627336136742812766120762881546428947684027336620624934138883669889311404667420356560471696911816768959142321483921840902406005066887457521108304119669411907263768470241080819067887037392816683519541645162162944766538308684064464553233251518765993903364592039414776362230911391424418105329932783381732088368608324685138145444614098768000917636756568413407901126928566386374814086332241839041403294410572732028769873188331082650536405181829528034684118244947506776626451931940183208810179410486066912790905251759137707796125788045282934586630126530197486269008051357589015817649941271150987414581692057696795864709742951820332263819275839401769263321928183150071954760481739141639450610973747946464666412821708383427338070195246262249445287340080475822384396404909611879449663987830726582257904635637686719242423619863100839983574584044138327209114981904907641362145632669588352688266657656821082419666422732634225975893344224371049609600877388767458275521287620306328788875413978992815165556322464828262282451156374411344730397266575279738270681945136280767889671916378112886715997253150917697891718990589680332823173451611728537056966424584783861551720996570032512706391173908059745117362955413652758944203259810514862040413260007770658772167211814118618636883532322925224069222973397176490607382720919457199725496637402342163286409160915897757977351457897078867204414140410764957864202600747329989597489679308116622839180430731181813857812994596727333773025853456367213234352142581829248486965758601769221002611855498837906791066182098403411735121509160109546016765358185718075062567939931200942245849808924009682376344956929239187236353424543127631748274153573954960045076481560624030294565603290297037450691049071305011812298929927077624184311911612789659975555410886639975837407083811227583094791017758977514237789712423141174779234185157017294034358830224729625654913871201359104393933505716442779410289896512092877955137308975224477367089243666903790362567745059876030624710335557055847709219907891645448337497665869943923865225559069893765451703933464674873960608394968493561259060214073583682665180109385166628805761993641078032758837985231652701669026423903646095577703519578597668902733456242639521626839291094752202852947138283604057453626482004928440653898798467998008003906875877822397939496918599588235194984085896846294054926134467418491798585287446374832884613090297225474898328112381435227527986429732735358506393225396253888290196243089009606864124361083146926460894040060056928840132592337924254337989620714716262470507509315621599731770039935597116109398178352269064784108064911069455570784789615725686135845227177546664697046114499429337208593702660560005341307311497084113702852287764281953007818026040876523763803195389577179165016769430554174669400762751939274030661456455158307928362975842966851336161959907625539493654422406801351127577311092872922929847705605322240242506662350099426381050782089017097724530639216714078346429786497196160776414199729971133642784039630110174229612175209538168849928118455821295071235665423734160034454817989322814550333503722732557196359277204354531471487531477984803314050434310469115904158730099061711356406505711590573648291768578775935679426662521386192046770909180666030320933527837340136381410286077094889252426276083267948746996162952492860896289545534977982374301218911339426264683875560308870947280985762590522509767180388367196410040299538068509106285924542332295578136894674284072957702783448591370004032277370890710552672977760359192108077375761895526401993911863563595060302303984141936319789926709259045101295814005505144520631157973886601920988718986802384496045702640195899421115283234652358833117838600465230082857021495623062494149288888362905303325707644167459255461864646683536812283930648956624665605276129003053218841792880855563599147994804179306858315382685314554253195591790294365502244066446041248811451272059587763478247796048690224542811423018171154832673745338999383761259489404439783414029321168464691737307283907399985860962922901319119824165452770900179871309615028850238827343388566400756994899041838970302581149838757768788403069149943066655242127939332526320901655678293629003352889823864460981937084557267615072840336750213073092290072757842316495210456427517048290864167895685809666399603658329541180557210193290790861874744580224900376342738664206949140824818941749003286293303560665608675700476983040092332378217487922402370554052495587848479347291311154713113471730146017971728111248003344504692873902205600010115952331280442965980675357409675239179540540652570299483471508347416675286129541399399388181960675955127597432448056664310931460237890088750428230456149220297458012306717958234113613513390073760440169751975799611196831757709331152921148134501137246143509622561811123322519086005515254728289441544912483762711808419013980711625057225040934101290507254971719453376291123593030161741710651175994384605245939485822222156014284441076524645841530378807663649438843490116440693860337611160220297579379886911460752157298062230921883628954655437165795683635077612575955213301588564853289203749568194466329358762965060125880968624790558224704798592402460015498803763584673533411901153739223455381944129810281448692851018214671454766343837510803602240391039406933373701891302866461559909293320191692916014198841449877534928250881898649592313538398431371995497037085543661268438968221564221512126560894759729667159169249181621650037234980592685811513690585556189343247347785054362465341861823319513630613230810506056669484979226647110416204458452775180160826263933593281057210617284592961872377352988584939744772597074985294004776502433029226484420331829956378765942537656839985789744618654548202509068324265306913179236001787574887331783592993325735594880217907326459802940456000982703593510414250236725627035001329502891188450433902681739460231834368906742836173466544949136425552716905604747773703969906045686789388012353257915022980414575931029419409580232721789326373511862278250697638275582291451106918467938455484927040838079669409152601483844996314262271972988250654056367613638212970214978365006978918568380677163255364182678610611106848089344780971273379335781589210310462507022437706302006162625241958336005167492907610909966882460768895945536539837646574458576874242959573614472105965462246731294182753650785126475814653703897993880741877229630984873666273524662438128238878202334320108088954242249738013518162222527022074932911848498165694719010583910890496884160766366293014224028688311512445191979593653686584553684892883714346736759476020730896553110698034922004357476031242121286470197294808684656457065658515085780832076153623215515850694645209119194261064587230290310455608851883012414004307277416561363231495134572169790880743910199630095109025679199061488792718524098439700818597252597263692049448185571702592401436684772254375312977528782714868773297114867630654035319886856290799856025204720835630582227730539208886485720714731616836335282496113573991530018378576720857381231699470975182746101826904198655732200108381340044021100744030584989482241512884475024622884618409275611293650130202816475697872830423033694891801839453563196754210482879704014896750120808464241783118849735844181539008375473988585367188799758294942147861098866417468641783799605223317591573251079207601324312457794436915344615482352456751505179651759962176554403938165167740441274548800485246832705965194569729732696591317544432719452079321227815368040749616790213346872379680974606346496391084190958357352316103982507357408249907983479542181984605263565245111816431263394568000012622043668814829346501548379706721802446319772743057233763804170855632532089612201124490545744819957855242288178337649751110693215450658067216265710771151156275825719869709417139585289847098358758481348742032254172751406732311491076512059807157384891925250563592687455173640503670284689468307998516772471073137463548579282321348595162637103346674043829239188924522098558759934328352941144479063515685955381227657369667639804939969553487104110800474036348507541694557013099942663865562287407861539403537321843755411248606608162969488191907692927975396651637493680379759522880821534061290647548440918254943028756612391004939061033641545137928535626113163499510959642421673171148646710700600687901238514049352050973756126144156475751110455302288628567650366826975521636603293074040526888987738876001086696986357272221058767904967158136162867035284357222290307469478096965235625984991717613382127481699414463516082423173982000429607432962207473192932826264447172118471707444697641712037939684616986707895361909216610086502662177210060123747850847404798592203342373730479623829538392024520610275703707096001955751134864224222573860151101858516100921107392817700589995468524215943453520608145520448598259541451167206093271360484749015116517522913187361738539570646437701527832880395144471547365250076696777454832138308402028882892885737927303631642151521812453427316735388846427776578392924799474538190531643354421551353228061616893477306043809497377374731464145377742077494216661089344042676227242226263560520244645328783202165593370782724757816221473769795209231402745463559766275250294293132580258616700727378078457639676566197718137085131814343662867285584401503588061906659386680549007007008002979275539695678233894024477583059509355010515512675575928596453700431115530903096018396729963730226711665782790238547953502705443727191765171849727511066565765316871343267382106113360974134344011295523373394986076897449522731154477718529945314448870610524491888655997562859059677417510425339284420235264533660375701594058053857718646787800234044891911691096476885080489329166394709045269615625808765073159965480005836095901803095323942064841937682990449682444397602685839288398721069494517890296907632185659008732157662195413332791343784537029768504001836453604163840505836978397920644193080536171003289607813046040786095930579564289514441699246084032100108780561215904091932517862986702760725151724605626762068004711292306538700398722533674319263603791029836783507314672321622936874396033844746518436821707703535384468464302217742006146885398408861015232898865696517322986958606618480192946516787960897758494169863552142993574076790496056175619583632071180513297710282834838876485298474598157558469596334467205963469945407739935366927950286687799974178004689517961896096413456898464222124685941815437297814909969644882898159833575386788594740186242941445593514670055104607971635856722133134570912590108417261256993396075986395478319045358013038497321711700313233726336480913027214902465989230595792341690014476006520851763927026433698292889805740584380966644323267915425781064836752859470533215263311431495147846662937678753962306820575994048988968392578574506792614118447523431904508757672141236684702541383802318446585835244616830978779923130545700554682770184898719711927909222666005267845950809748069448123934611505095259386594832499182001580843107208295364845708087094146509106382701783113760893809669565488579380122025835442721062882967209355582075635808308919468464662386323741420118616983739026384027238789594738969620358400640046812649136403830632632240351004891583486465437049035115201109143670663130095324960656585660121089937816496357722133593351241255616682876159250978375317179446359157490812030195370019650376335353922685891022463244438551087290723205682022800677777301493095432842740680938249413530554094373484319533274376744224825399469606194101244397175397562115433082334676536472808689672508816299231179004473385959824858440771683336983642279453226851100785950063623696491638571962443530162057498572534954628810560914872964102548004783026458779868792274779536192762003567178032055151764056758857072121722711877342842751559343618224254425766087434298559988511993394417860883058289608867340522272897427572621164480762231922665961572211688931101519104842813574469575488302835120659331661452488861329462225342743798848864705416904351006183572551866357790131682994454645712784238903515061603243277599480856872004231045996589346257235065226402847977780657414559649454415251941216644858528716405939478182677920835332727255556941415208359131803491562255544134492209295297850529281619949634005784138822401837160491144233986801095728314966863000793834765626063443405318386878698196240781924678863648976547449002325838923681929070927838107007562924019247988986153153885891377915566232040670690662642399990776036789094255843460769008678637975745919841686412877964198188000950791105063260278553848644539789832419786367970587623915643552904316529138595350244066195396013987980542310680279140322467902960392413279006102496254048537716806816045782595083929770538952854935600486979026562974327685716547095934411217370296214388321646452788880619152003672318271964793394541894749704719801696805767638474015053639080308905827053126087271541958335055227830796250315405924216439839780324896279571047975051918061995758195675927089441606623075323840795717047134622211063642352944269838966184973549198411111419790873709656932310310530977504813279762764205241520064118024072282787346187356524273787159478130789147162364896825880909167627421077845749745368619311097351589212432578147688346007171833067182061751674117174781053135104787602069009100118102992616695483941828259547852150915035067858916740582783363778882525493823437502252106094521738653149429940199680260247106943832585531174496935270759867019210981166498810833542986383832563534656715305919242930572874367898788517214610085254064031302490711827915582322792813075111878793399814135772544711683212614500884248675196570045345623877792389586251545215943076634668544335531583711877042106129810045302311908310925439730402802643654580412522238628406207819758304878062529167467126766166585939754120687724231839184924165227398381127151383309358143480753434003878022160390761075734687677731993486863155172699909407580449606780683607176844301830285913080081713047933901372966940053354717438301619749710499599070928247069659139857482152033574825264305799018421108349220816410049400809903852768304946749744726341666495461449059373044878846155526970130582989003901751611954933218635955933883158030903029178115427117521395626852997980041066085479193599705885272540846578009761435512475736077700306840072717477813497807843591114386415985400675822137283980900741632738455364168358169157328195471458109228041809508330246127369293747226822710963916219592901014256980963729045685288210833112717160273873069022187580594665558710323017400596044087222961666183224648087001142978405296548369248817496536476915577814285937047184799409161049976969792788047644279839682355083450747478154004143107272210142154014157974701835161018606414906286145030650318448938083002775179961010872672827502621068029561664659693822282882880121519066911442562168154470813836288536631110339168189756461709371910534696923983234417778270015927555900711766809582977946976477101978870300338679893323448835022689060183658079943281531063664985614427398051457870980202700534971453289236297074893785489731872135689829913019485925028141500906101213266453460997314515788159826766346382717050651991229789414340945124400149221183998057216819720326778492905818587848382314685346876201048353701332198257474562290068998897642974296035213921505049575635799397072597031447876513577720343191099493951867511832708884247551857679687223983088840991625573350362199456632338851750585695511967127253241250695877073042913341011493937799309595517030800440043701947472577004077053632726324336747420529388642517759655674969266711157902244121823098210474096631247778395685624569753201547910911962116458637438981529658646618280153482707857607784592289904562484749596706033456930565064855663047576601108613558546494839780679582254533844434422408070749114195036737137808565407177610343996971088076540824402278750506277420235414739368030946556176631460333282771953906156060682974175651805866322658163145865866077492697017951048777255215275926466827585905961086231378341450142857004920970363880610516949126866864739126994303292100095252058190646345700832467048394447437068022147920603880498739279672334037706126382353303804577044554215844802372446914078053754443896573960045371492018590483443577722744769084307780115323976183991138775906600075850743343421674488947873219288818418052238602031873332856606557501020677205283578219643114637077179748530845342038639051515997969115517019454552499158946947477517768393462767287005457166476146648151167520156496721558452276397322806466229075244526615455021488878263715758695706520720586256758117891390867562042389463489001610797118991095924958023064691546719005777775502717857236985466809077711460524600363793846308604325049221143351119065534225979919507473282433356666311466269240657665156090629288507213239492681645263253278127867147548904449894427229375705577764516558355681395859338979818183591770626501213564479217913082515190815023313896538410495912382650949796341131599493798961782326366376208116001946142882150110405179830164966269099619241205061095193477052235509221852561253429765037277583824073361064551919698067896206865503623103167328282082638446316714892444662855103760707307350265420799764372827210994227604373511007243764612788403522758939903340369561523350123197924751411835530676564604035042983397400787527465614482478219991715753805628840000301227786266031549392571474384377151821370679832172110388488430853650292269768198115516936660823281308508178235858337976337917492400799459817725808718800913632901918543318624582396417762255149710450789971303562258596626530454328396754584820756595061263825034387452639264055083444095771508463904972456572015785799670922026983114577320456508309329304622719670482679085396534928296897389683811200977715274347565092768818886126233303329780265065095061841000383068318946565107702656703495567530284533215693712027676950757383289311959249725033842784566048026416350478757362335464097899702221507887635742234231228556436757738955914114475031914592899148936535061361401326246743731567192493701235995192214584832097230078619495147111009352756865648421760756132088767364612261720142952707006994941028037483162199457813600703207802544542610586012101943407419571512899951154346317365501967466759347242075381493433399618217974218021953803744234282258607508142554926264928661136995883594941400348601935926054802903012711998099471240869663066183391195254692681380063576403681909695517372462324538952859846670836982966698814869479420420305635579493703756327890897159767905919517599809978421910707653639751477233083985974598084850360791595780952279954069887909811400385957767091436008018657833364778701707670334162090221637944324127896015456338070459877369168551127964687099764289836292732533282130296808036919539178383361134671764207423659720014115467103257027206654155747554529847761576466613842210039003303036498134427746952156146714386466984185204848057258421328399782992015949404576481777603805934581993390291167736004225516995735817080724067869927637121226653232787505241817636320755605118435748257387329330572000986506360650220478639344965292017321469902151745348656164609015710535159673640402125917318338708260711702319670832299422619052797021049756538937724778830225238496023666897542318748097955665678706161589930576464711962914777674237379877696423261091348246718588576884641452645587006179327067852857055083227607427346762689870554415965175614835052360890633543622750323237649274625591727300403012821276574195158300995377293658940807717498435281237799878188280817530436809906680873417220966497189075377777518638794670990744496653146072402462630894053432380499181876867187889605741594090280961429708218588661624085133056121293994889902417843458191741522450042351674012078819936773240266088703605052300562905291218664020000059633837183348023895350651543041739197206371536389376036059795706998982310784743863095791280595605634759449074714536744965610549699707688150874651471119355098498069260033603670212371855795644675168790431395050318522992280025326314287065806593757795621479970474352680051326558758461361341026808129666403388859801671861035413955430045296685517675697991707434968398477789036303295288564891224739999204754270491243680430556383294476631123286541434919147708771173316306106284748007028545165730955108634039420995327640004873442170837511021734913884036568025178392464056211619586146847001503363956322591216357286177256649016576319206078588089389751450834935988436083684520950492793671031879067342997959837988175307156373436231121327924269150465821348406918835821586009029276893630145814566726112983337625148450522037079203294165578729556526045764306242724444732449203080592565631225526830825038404815255186751719278381316955384138877650825560613281109673579497794924855644662399612287063826986271796943863443069326678255691501377344120015284992748092208061981067556791833500010051219078081102083022741361891661506793903187174213558471054184876284848892950339342814374862599668938464083335182126115562784814011447955895126045179717062390815836982014045594995931524086574830918611664387921618675618878101862462059704504201377725612096506223300411950679868469470003995808648064825415853305972989403827950260517167920190544752233757156057085257244317599293485495686370058134246064844875798807300007824428738766345468306053025626498736235431358472575839878774419582747940605136641244599639994630817828179312535959051387131288340099938406451501753935675235750480758332436186184281132921208467979689093607098849644016714298414775144197031625817045516843636151120265654695175476069415814587249047789414240145339403586060718652567106177040868466427073778311199313455939684720806042075210399393985673765296567081720337833072312461765314981025544545500513176380625350549812634478090570610324701514138019084489121844524083767742066414458137656216275366722098142124215661748821030307062446553153407865330077595053030737188781105571585091893048854759794314965086819850335142595690495270945454015789001906176401468155071210849332904748332040390943851538949321277439259425652168610522420387956831033056519011163689349101216902654129047329307413937194236783762113302718698176345396237316719102822065140694909191247163506744878398159219343894182126407352778448635923936415956875646039669355631638522482479537187570692050597188630624192841309666119601507289571997307891704225797170296142153455180276176793014001246935142258049118060030949765883991976811337366389175021392855144880169952561796355022284680980548576829940608308623880653996776241042139713272712310833249309657509696232735452844947646391755958898746120148879585102711639298585730883367652156418016998577046440047424812236615282908221694327188313396617926186162466667469720556528465783866143031426752520048047399513117450713624183889427127286481842224768758417198262675733584479834983172737694636798717100959439264299610179276821150516297756204278833373550854009270856016949483699548644625704509082457708053490388839282482872380204232627888110627528373690407010668541571742616752375270247966178302005710747434310283445516462029234736318354424684605806952775560472761664755343729493010272140051291237871969446798916256378708614816815040028866964870609222433434378151253455851235769013253112122206666328653400254599959764476272255495283473632448758846133196278049802967548779192890467894343601416376789596455308942964411895865129858827259869990533036489732171553631235917209509490741769596435511789558309897166992199459501331398536630781552388653393229827115500838830858640771732744572952157645942203320211284367044605248862952838833787240910263001175173398412278799990757570535530092797262926082171905451997156610244451156108562658339753553581501972457111675321565370969683118186011225841659387825466145730920940793455703045818829679981219868535217391694990268173245732189585446872618872323508131994649139846648858480161413424544351990822174719480359509141515715313971446735324617177327026387229136593845733809060570442041263551119005153220713915484464702480164646702363337275677486517730117923859235654921766581622552251930656906019744895723910785099789863410167785276483870545844203604433963352919254767886598602124167724788070013574424622768516206037214118227039135804395240162653996783700689414316622557689911260846944805679790737573978143712189482575819388805156481298809564097200737697090538100783699676122053318896993813068016745779032375021076798951905084321332934746020318813159076236434414108389918653357718694808574790004117969639885455287972145862428032078565797421355730935418561393539499050501974142473353884512571629332216997359206094380624362219568003864049305708308000701646999660811688699611459655604889298418578308435296372961063969660491173820274574775187449830272015795224321950793898014588964443449927251414306632097048727775633755911543033153529802194343294788033640953452035871431488062709668987993423687484062854310471776549917280471950481757018897368847555007616042426285544178348056276352020872686132612127896803026168422903316494181721721545181356772839248873210337099033068505669320909402737779790372271942030738091760877159972416737128638773170516064068771337115312903170407335679743100292083187982615064916599389721025936371574097185919350982742586662962020128867796442842308332714286424807774099442839981211118594654362996239162165367317674467219621933667369129460296948136181498614938997543087216316294237473264300021496262568560657553822499050945986212433179198772265491102466262335856064186531431967123654023417814597295024040587420853198642698980861563735628790389860090355919991990095698536942787405000379578772663011413621532464824551088099111168927432621377429197251269162632253223197546197381228651236383881395698145350481202611392747329061168101960847684454706878905145327913391232932795156893875511668151801919677520387822281417202084075394971527495493343561367916660580562184420579869612464612599650899952242336767055835338417830652587479750101233978484528197882188291329393046046843213259147019663116320691911722514624801540756936991483825289108403941916541983320208459979345536288925982743216285156154109242799967340107149434446050623745370362823934620071342013158440822184064541783880995833248389527059125207618534304716807814112417013771750016010784833748057629152186741434211318466143472720523811355232270967017429925403288787350470992824882685505530414697203271936390834587411779729818687226104871431692153021783542128373192399561489050534242660077236865910973844606389895437155554763174244692052838882847712338674230533577640341180271802061950513953179698251438829988820871371597132821640681875491834300478566174294257578893775175686943992185493258142643042602734605857114088348825255019847704452729612303969849606611365100260843463526429495698316288180454248714168141582060400696655547746732533197130246598498777543273819055958377040158360372776719863715415938177329529555787849836132749595278023064023192955081994761098311789930093550633631179087224734096487365501720024745334933526478772910348853897469130559652271959158069523466571880744215475989714547005445158432374887458033325317857787317922757439057383064674629880413201377214379154747986420914731716376800931678952493541275804185250428646046911210810744668449567105361049378687380005468552768471144959945559482101507312406322438055588281123107446513058922849556349383709374253761131390880146164709374501536059943847474830393591390044980730039086111352632200247866014839083639820689253283204875274911468447954072215711348052663591302817561238664516660675845417882603271172373160300237407385687498882621578876289727322878247580908312447511904404986773746966512688989591499587083001660586423332065182804431809201907986022560591116622966907834170391785428009125451947611102064979392283712541715680556874337198108562544692832141349259609676824177259379925664456694612826130005835240987108440525344821961155861632815895399676764619860893945372452900784792821997424676185323046541567962576887261222721349818422014165438493810295231456729425505977953995716007173783171457838673721923865145187546775545087859551814883170395649174880476852182781803781659687391444743517413537371749807358515441855189490574925855180784584115570575231934355445896225459798312309956451534569840056448200043370597218332496325793310665238702603219998134847160657321666285094004793339946207328076953217399370820882589943534658964611148180972242203215685395316849528268150935415628799266043121028608439324320937859731131983847540184592593110973818969588059842186764036364967553520637313970226378768985681932009116247231282765178146462747308595407190345462280138544454022269983703743032856889340491113574184066656184251033432960393814534468896466930529034798558377176161520010594894108107088142543191421342799513584405060690017816847213806023034311286060733891972532010311883974260659789338107289351115427712706525444117834446082826263573916844409148055042759111661800092888151489580517692574153859401549006540648943495978326222791752010895373184234299835053383326441138003832412753257199607067486576381784669678895552791818815032270167911420261447078364658558965634768391173135019685542190716324461030045900743686078243347292656537112829103644637385757602000375752809425638409102050225687925679218812020059739230572664333851558266144268079862983836237281786264229536140058002675305559860082083450985369508028893843909548499818238141267152234151455349759291316515280514748796768328876493536749146006989588157808197725132417336458435337482062373730810805408525155598179964758580346087562212118024402402919532451876058039163481554524471940421110498906746780807449401393343662379804572234031552029698695373185951337392359745652666440107592670445232767151047867497178240652687499562972589815858838411254326805131056291886988559687318120714463614884683569541229475682490193025944007156568639711061430440789685008643945348378822792718593498817878127774407910837260587810131177010104173761549691265525426557131470432847557856148394688639830006969679985520937280934326295885147840933401365369665403324127712252469349219563427171743875058465817055866566485648976063520231268928439413340755229595864899814584073894110930089108494462281378681500556210197466043844552538946829924095898009397486902120881384115350021476134462957334657514751580751659812913114214595546202981569062975904264762608457663042052698646588596318395870298021603547673382854320190082419839377375607740364164475358176097736631437625621343365714083041947341329324395502452041671793013111835172958788517400537768137212727205250715439234190719586079887417021380490298512450674777773848190357062727686879882237045342641256614610267645169683294958759909995875372325273363998331896630552512980047587340453596935588989111576765229005348310970965938714972788598834190253082810349930784807509444881581868910206338498392010840919707559572257510244586873482128233813889263556209094888879414747417076494501469104787414764307883281429124133587497017785226944605576441701919512769195873311705660558823187734983947709706314826436018289665179273574979044151416525927229465281950363736637141277308111524361001262337472254406675849016009371649886345770021054477210645529489411417021955550964810625147370438084045073887544281414906056054700740229133527652979146605176750910162843383097934369921980497341543141578958389441313721334899074872100835452692049491594588374639269731761956051812650835773868815501534416511648647275488631230885263370029764504708040242523282735182951844638748628106265586950501463149862297659150421473103487882987600548880284952217368372197577697211817665531438498464861719491832937008272869413630222789734851665588729453798834872183227823163100476377631982610715841639840971961630365892635722840623773038033014278315062981602498464893900234669782297280546938979382660583904349021920956351016038200946392692864604568216238709034299513045184590696092211442676321374362056747286279292729633041015537355703261378598777257661582066914400812405078419413102420379742885069137439017961011233684768386488004984640787979737830917767276126709983613965494188200868910528048058480405494575973081396907655338864955864350871962984787854043764486316343554506770975197572599616565139134854204990528352389703659531565074240935617951994420978948572645362920307178622482631655019544054387635790331017858165021437587630774263547505097964252154221597357359266333189319810786090199565447110011734616659422690239029001657694608564817888598627496919927442467532569870022115221984548298253038040365769936197846621295815086613331911373635285172428402572687278932218853809195910581536624813195992083643808020163585906781922186725288803343998629329114126947493895086472593337664565649038300313754527731774368364698207569294797244147172395402505865803055691940894558473262005011507410698565278414720827735235472687267661663746653538795977182416450168987461188314184219953567597877075144605752643779424816837962245673109671271639575946429511787845214230817200489323731047245926338325151430493625229533275659504123770297221132170915448832507892553754552702618102794775624145914614050985166284225355088240199704930495240174383947585471087766882557063466925500154361097551145878008172245374593513783987021936554339917327295116000349874745910048485125627281351762237243528073384291275838342365226660159243943552804904589949405539060324023494107397064887397242667088034104720982372300220109818059729175639128453403727862582196748915379162784363126124745101391670148709309778082189374703611104271935976531733237637568565880333136584544020052756042997060161633304974536855440883611434647614566561644180439711380756955893119855302420475014187425487241245176667478784396986449136279156231204263010597549432508408291082479275116737342269453471212866334219999351403835804153423318917179832011061152122103253630222473017263001294733334432266613328186256730357372991701830022767655774509936228928748263190641432672290458362794773319635381907234845874425787704156411225086920028280270901320702273568721418832847797005182752795597199104872009063071653694648891550732425420389065127347258573539480830282813810521053179345265369927165165152102716450229411781550053885628686357674171581322146474131325280880175599108692002567676160664073831935699588493414002166048680857850364834943126208658947274506776666888870652800870511583718474321309942513975278172971707309542670934308718940145254233686874779396308348912138678246799430613044477604990998827846381476975269916857513078537664775477230877805255494987588158574747638521142611803950748426303861833307145068612658018347191529622510260458527304805105216787469574053403941497570625843976220469884044731391404238297391753706400565992405457809713160739544858047955263957699562367340738550186044130458278404317997341910139314127618423904544663005274403405145748635461842543341843550005118478365467886291172342692461223058455034746268115575721334261452041350727338842841487661172677995600161134699186350470177256714281472173570688941155508841130093280510145772027964615874909737950314762323394156812182802308034708307233969208052833302019944119870527730523774555041351907335313156626405634177032437721078761865036565995437545953388403653407838107558742991469915159913538875827082065956672499295891940909283427979216534559141746205303406668543784780453376370572369774202173971336131717934367929779735803512236969837570409130415575764172943209844293282289545207342166939200476430519223491396409336195120087462708572690527646947896837502352654771546957395259484903679225829322123565619067813266294810615752691217018602559265673536392320120634396257071601410934823860202317189381135959118520953208419660362316137677430172823228664218267958660317796646496284750083904689396319838942300386540288636855516377274212766254667271966933609172748534940277955396613579348595432532246709237140004581919225819366034529135707061615299090638074895075485033277478060378711248781621314195957372735861176302197989854734725781291705160905412163913231067692027316257356527898985456650302010300977574338426021837777853251929255056362468132625726115988638051562934421378255748067058996764963323804129181790783364847085476245061023377599144270896251939431046088434213972555929414881403186140305943788247760653676095623545766120764738625184498464616937026532421961012886608456508797701542297168246280221582249403941923964554120418546927199034331108661307090774462450704089963880600508710296139812834195152048723653894423629732411302648997588332837144236794368600912186695011139944970039535314206953022876492691893461319440332333312798639949480056028431587145318029743544064652064671967266236776969970030846177707838100564916486162228355208335262423399024232012247925748824580441574092125024142862539093495103616536140617427079632152732968308017509674286750355215771675862881584780588703565316549306279046398208723743219197217898125158277338059607388820463527492465835814895533893446150398860923299998267361240348100225684208938246709971411740984838061682879177345561527192222850899839307199719333428924314288954158733970077988287750409630635539585387452632420337427031872672223228163567498115583123460339249671309086500517329223981170030830750456559908771095616162244170381390464630780838293350121760924868771930396706041635944074694563799878468354472423874107662185612432855914464411394543016051327254087377582418744115222302551967732063447767572861549966225718969073651022388299010547594170937526376445744054798918531727633474654915115590520989923511700909389099583393808287152320502735653875971006159238266771819637018402354537451329878132640899170090211921863896303690146400148307459621324005345540149891875757282336403495631061760774147929313576544407214716025027044988510844362460542017230504636537828709232119156772286121082213660243800823975336255105942114035162521054921185686046988445488855525833079909327250778794498838733838480371851367856595245239993585622033553666116336911057424673602256663542413609509744478333213452617666561735576000745835558528763887755367282439401962838821094219319728449325182982007607496417881370426108322220599685043137504621045228129934398217362418483247319863808567005282122670740748064178818838322656881295057561923146970941599871655822779515510094944783197991499063576946192989288807536403905971296219256302545385635004648663266137273058236639610410498396583953054286048002742089430398973460483413696014284342742913371144244424906288167977984223666190558854702831889575156635445270988525012869050779588179382370937441281263998515602679779652191824909578257395103661760464612499904064984398285277845873710748861591550977498689382820360147773132434158312264058689612101142722825336982220527336574622296734854224649490314522052903873667264372530220039131333688151259577488434158791564028796195675149177994186624696479424446152152923039094762622294901339966788494625458527529956609227534431235561081452602894339904724989035176408523759835053485887607206900431760629545856343960478167647822524207813432235310966761173998518355424514881391374054875175463089976719351630607078997733734673467023821755651207329315605712663598335205213685359839795327276082939678817037061072287980170220152662005338372125765833697447479972394409704925008250420414626265847915562990477132569521465001791463606372245051229303108179694799345402237392023284132861827873098934768368306258819685398017841487994832784479357805769488677051278127795639617554743087950964366290664996083854434396586420991635001262912214447173514552533784748346306368859099183093136550229816234293586797483345523694911658618515623821037667697742960293255069762883465940541933031016426452348858619276014744033219821609830475742222874862867337888744542906271369515735396768502431279318384486411521712260642371361337632311692890709221942823589783386989599190653523951315442052443343950257396369708741352863842584963927683764782391323689417198439101201534579202836998829755977866439361621427883234498732021336812711146380171243352478161777915466382019279315993232392071507221615519891635478461798204404983828470134027650951252686114141186405629784106823511339244645943289599146404913743639259340050038908479545438656514192954997105215158835827096566028078681664014694234168908362982075491379913669316436339337662504062159212440591510579937849683621763876000429742311161200867150557324163215596507033418703939903004290779178036055008084593936046629520550026130638618212654476663491333287058314453627864385588265335997182621317085146133538259090809143305263656546251299246141540104493311654038930480745638064391932661767062488083504339281540595274806028042452198411750980725876564422529407559851419304655500317766336180380977695195934206785407145760021738819477286835658208963655986673199826271379692984918466290521264573600226680466262262094001197322231971286505376345775240421068889159555117584066903439410074434768830341071765857402800394307805841776147683057257813106862883146509706704573201780214569469495061444914088178386039780787986166541419861721079815639819300299568034952826167576022742664299129118187908157882892027506335294758453910536293723003061733538354342284306238269060552039536595004273388938929954869024244765534445899139204944093181174044055205057229284144180931088533392893899321690755132227840844481845965579955670295847238583051234738696471665730228691964091156495053131657226454002259792544794601918169645825886398684556453733798036491997011403275158114566650136575761909818228844210633521392586782219549939925550167505395784866752096172403932798211142384725349162668680252996114279139660914009978311328639215284455134159768188659477090891092524610622161345436022252953465542227502614921211481902289565860108489403935916214534451522441820664829023026769105594725896189056808810899455311865541980473973517846924222298879154650880787179465520613444970443757366984546082180949084825586547519566628167887231614706243434546897028268377221486443994807877819397175455227559602077247758640535158922612992604799947583891131519480580024440788632264086727177581736007289759767143379782667068091081578475140439253068577253489563751390353683096381066622260309579987263024324298694708199115647600671140143621491745526108766863627218400275018748946957043212304354536504721244872808356849928740069240131674390059210217277653875473684864834301059224214210536872118298761758267054783839940468965424544080966646133936523660173115410389578231292875291854401926636340193394353672561109648926918847049789463245532228703477076637376850126045598972787926076351220585517349061992769089594553332855516970700759324907362354504882958187743401482206165988435991204748627498103319359326896474264416299700886043464362294302824858814323879488941533735078681991340691576012266022309697372071558229837861855444183252821201853438209932136209060198345548562754121823871427150346232240445642070521530267727362831410557164350929727775716976593149511341699529213070705372781294316893937892575708287466207202821513120010225618823959129838837479074782786363025427530268452998953499401100024610151368440323025828399908228615670287298093052812308382384992913552627525699559064562137617151103899633424247835013481765589361154128417775156387895758838209497536514658294412139809952141883034611384502453356595263925316103748663347418616819624547443648448468571323386764820101432816756012774625145039411499765492728868997649077917192731827765789720929008961067944994466008774637156949196814789868810999211282406022925238856085148758455049114024898658528650170614385651017571941079329937281952010078587269166236148984614039169287446943249632232409001520413581298287879848793909721101856954020594253716148682715227495726606168123848217963495357915383195345851246130595842358617500061862961360162994937610025349169453825667367498703191541331222992977383583862188343120959787184496049504237541063289239979508322493085735448376461039392347372104690263568126044914900427097006078584371039439284580677847043956635114522665003907978487156194776775640992053985577147289025643216435691239308539262045287466803605916490077248476899017988277428778294176983470017418578044943934340442504124798258429145291272451725838855947866838396568921966350616948403848446355774696612109062958147968365093748093938552587372872004909535491730948039588344925437142886636068121039218883009520828387902719685000035492595903517120497515950327672261237426053931307951490966424459804133463198741973495755568405070414017185846179817945920106854370507827949819318439793759430348293201238979144732364861306764041656409498020496732204902614673393894195956733623723011368901755561665107339175417570579890655176017376920202397828894119511163036739730112091188035507805192944549163977680040791407433556308362563543333679846133987231328966540366828583476875429708744873969234206166381783757072523895975986368253865592541573481983823972572997901899504673947712379534155687604702915617365655648126100344864908501658939807493834485987075991822112546847921994041974804097209521892091728318612998691840376062452007397239454239435460620760556159233262946671961161675615484583148233097170055408793946174187921097181040119117168710795515582987513985043160585925953231100011407249735529446446679980854307635896759230355159510688407087465539958306735413472078998418496435461126114015542035387610686864572016093415014897040633871842834069428142046056563789564002271256235226909194269630283641149352359726920977419052975365857042857763542857629190675905401678051251838974375324548888229769269984480804770976850044984836549320617175030710939894317964690853849089576426747340711147483911325012043006808075242867084584901442155893229845521582962334909465475988186334394657721955024840145394823060922883398226385736682009677663579158309777777017464975483534822241869586121417062953459645224624748588977242362111841165044356277045674853317975750294017402869824343528821509586785962884135532017832890198690839534277987512166968339843695013672082460987863814460212644672576104813721888346322410695750981469508513681972967792989266664778368314257545133813410381039631403440657893334974069461474159088161184640843968505558638709800955268324803317763953233800998136954397593169072320903682822794401344265842890853462230571741444400444175072245780361324424183134436814213041170246114588459824804398659660710785342083139942692778900369115198203085902731101975482965886312538071011214821177412510597652221789999762512116210013696715850847461171234231689134763039741141651780681836428221533968021403542287373461525218752521632967145764709901558711812233536589684288981213769652134155645034458514009295025325879554499351652299241164898661222129825623391564345689186101798090024865462536176153899344833808469517602576842913382685328087831473898579997491221827780910630426733789915152367097536413473881489353205849902664616993050916482940159027386863522304397245936540040863652281942045508215865866359079172230634325222039309180890416991586883821728899890005363949455718505128099201142411858310655979099795893378572655709242468796541898658474835906241413489263570625469579289544832112803558218645862204764179026561680404417139301693242959670170901754078885500239359457446764635437087205734396894027294357117231732710519223767589902057213042284108797836933462131214555797988300250050518241095157743953706365254610373659041183083445194885107766895807007667419563357555342097572718055607763008982325516489514834295655223281565287904075092322757346598194906568227430189797090195519635420437977660234625921288162265638732681939101811423650442394731021016397707554023969836380607847956384050063788474687039278667637178747459225261837152727913222473963258977273374753359781805424775374001228382857333797396543344219845992453596599806068776942941900169145177639447048161419160711716125949198151744183934027869701600891947304696240613952150772277156054593152557387031299278548120926482470952387429339726737171131539775739025658043367512233831696150379277808631508087585981921687195764635795472297239364319914587186996580533504807165895060921471467584378128591850857052300608272415729203738085259696079339326360348349827417996409015352720448592953173989562441108478574267219387752414284136701047356994841583890097042138258816160322962233352392857028213557093225177475437626205521428456990875483940930438244141278718579173445631975706371789170729139549610846504826720280983084527377871139711206988533234198694768808962432683666052020778327301848149293582450366141820100087936414756968306352053177447793053521278114035724595732669167628499209911872784866873459729334700068509400210809588817931913074057115208714051403895874644852637895816335890975094565458513621469325137703232532731931418453694228531330337395637771395437833902243506552835679562163709347851743587575818561565572804784498421024300702190349649302176686659751977360087785623386251771317482415949559715240412363229732711304721237742369841467114199090571759523277405259263351888257483510400050235031516066789632205577187810411688548581545355770847902812914639341136577217483533439872896219275313765745933678402408100079072418001908527487805696008989706667644673094427754862060355584771377473610024146297049499557146060692053298811072656936186014543215391957323158727861168837762662660165131804025929046148520199968848849063939196285781239849358357464872876156968403993395062932638530630972910731023541329257252400618901677049054238521452156248744456404129933659298649740384458113193915649445269926023142949451395624832193516824014029420301480004106590840178986974771888366404556080828009343113926818773689380218564856012282502462600399200709334435960716583917164915349550779256180934153170858381220828121863490842934898910482206768026189287179557526497319641429928109031120396508139747847345480945755872445978017873349172356208712650730251283326044716040937859173047160711823822715999922720776117805404729730931364999393035112359781856927501313304992650857408202050819199042118570522902452369456570666122828151970122391131035860126569031753737468551443909916055142549700968195543255506201811871389462714190078511303877610399452608902030532319115031700487861596926831621926923365065324981283139584027259062842634861306397648546592332483879166490838584991930645518141244827439535594273998781565594625567711063187687287182545548068453365080384569444951072170436054339884917631246435490117063432717763828952098062169335685764686496292820775574912466336297152290368390884982874784702478494760618728459172144528596203667354634707044448918858835878098741824491831519735542593101203350307859725150782868103493730652240897663935568103979530769743147069490503216688825569083512695754858883784526030389868077013891699705380976021850508565564516101916922549062914202069748322079993093021713758242463554585752720869155503550372251541965419158536069535705176527861698982796273646167670793112978362064473125091469801596152301297191677395021101490065106181800753595871377730607892057855276484616332524868450800485646291313506674636198177736869329914393567000421343452063058402051442193753351457028916998848071448439619329524233374044756723802814565016567108705981902167116616942349387951736872712005427049623913740932466530723254516903312487291563898823841933032702719891879708057650984810722633331066832885133309653775719563236113344068051959532390626049603152607107530802405064095626769435546439083485821168723976516889427892325610690563650454884973693299936613278484285076410133502747772432852852546573528209437882814024253284914832836472940105311354581657486216684771495589339128241839422102144597261038961150070432033509047200119721040261124152525467911394981203142027148984869144448930233893355164611319664585191330881402973004878828845912423442181107727073626148218846300860892537979755012122050106014273752377844356478933616585000997753316193527521200334822610386758591025745756657041397793913886749529618891515003276231744927780570187396171961113762074153552751440744327504982202434600897248263393588971249234307273993480564682391755475993616603609216539767234582039013168018980873429117782140696763656860039285288855486332600611757151599655609864336732443777691766870917958330248299784410772659331733213590853325639901284285762528457325765242306142983551167087932390334771526998115235087752824341254667439338439941339809001975703061703928134897839084377261671733052932258592798891009113197808764960592379323554108460972464115608355829171520000599060250714980233399696522768192014217925505111678426472714954437474765206622330921046249441720251588818295613061400427445169276116246421629990561035905369629634266879696867903205501167136484899165540738551474430886758213317913968383119863164308967522921885305542998360367837199923038468535314422814174494682629561947332625844753650716313318419406278289414767020534201623969324020517916945798594424111997109681353459702201288037301589148613051912956370580322896425141614095798817690647600587322075841604213567497308933004245846201410394840432020858083606514747548475723068916727677068849109886070925705414468037590636461320615570780382117387958629512817348176872534756696315420234765784144819564020712692426820740996139915775494453123846832953870594711074469331062028279813658885778978747973674250299853044632025710615062405651200716640440916498208169660680206006616295115862052546053772686104879218752578958847339028134017254946480929968230791845639959642178818938170840273328640948003992393607181805250251831242569064929719798949481815043875940091256466281508849329568798182465796259319574058820637897477289455195053043403247960772598751061798295666914400982388697808244152536580668238270432715676950777036649390897761743086507270955668581465703522149684495288379634827659317744124972510209995168449428993414995304869810457355460713666973826906425197944824461084004922217971421801330033079890248710758178995795611436527453485433934293582266042890028271286894087529702726943112943960442503801076369202278105854434939379525063425015450201701913309908404173284011161592258007632077541930193567705270665530219363601923289979912864235699282646586796953839403661043843371388024406940395502782948712022191829090711544688319377449547274346561799375874614816061403146023591626787779938286249834685507200586700755264479760166839024649720499913252593260142763260338883777050503801308592987173253385809276687954377815067305801644532739787416190595536801889937594359079187462377849847953348691099712440685738454936444060775017729144952177525461837409685689780866482453414808618102187270964014763344322859655349164358164100539045180993449562296182632667802755738750698233817076615106149951578970834401512386257019365126451522388634859387210199015168119983896459414393933513693911682443080403847484037357740644908935764861581929783383892161944030902064539608143778100749467716762371734087719131179860132842654543739877787636563956364670546450669554127933886411134085250846346656616761468595243851741890372694444683884195749700908396189757304412740111719387936297167491214583846371070747792881539482712205918962673340256530195094026631908005907670353971265008019452888639427366889041041137081187658482669604424225408490023826318174589874643980073735347657099574592686452678089642746203668851364026565160309688975980956046332980587112632228214075623045239439744997090804501765828264398170398779793579496443205219066314225955276114913666921895990653605639459719438920108364758670575020633047683648358034699769995459525903392108692247034722245831393085474250343053639120706699818580756224475351468357397085470371153531828096543085402654250654924303010065334130530820275371708984820647165524963304850757477379632286113925598977573866653813685670624962466070004947203792389021948350539734259752592210552601618481282446030759717631697545328689455746508247120879707704585916491665365099268017538170122533391230068372690079967949155354870832651875829692177167733933355714976430597872921509406190798440119808667462643773972740314763179670473229028192411469175403642662265321260456244941186051875015508512259189998600494155617611116467138848154455447696974396849257472398799376966033091346405618489226985384757414435806326329222099017892604789810971704803511237945356411428988931860467106917553101022522310300135465918438479467242441617870891263007932578757758695162442495620911510307572758729523777353503930362337004985349604350234733044710724646007759180564913741990699738832933424064528963116164368009015579825118485659312307153872613753738030416985732175307066049665110669446309367368452115243332656106329379523223860292035129943348958108113843777251985026356123948721884677177108394228559775147937593640014448241161438684042431545585735111477778577655867367091211064817822872950228779629665884798123694607943083219248549939705384761816900595629623282511802325399132245445015489608605087377612847018356223337169536226504917371258762868424200771625643258757709530626333485365661691397712803011116872910715959338608864917237824234945194095548788176897352633740057112492773191402943232924047237201259181019399757407679038754083473651268983668146432853526115639150167155890130064774349666922893352030542730552269490986131260169011277214596786954639581679441062764363994702229321911528334840904628584840112903588568270646562072050114917211741716339957536330964842987507766539057032431385264295310278164521870284494350502512343684766705118659817462488394054606021410143952133543606219867344601508450898352073337896619389585148144360594624594825819188621916518171274723782890634833870575004461211630944162687527791974924758390253524102292679068414079202218854230781008132279259615114925057031024407315956576400844248328728597142991833922213364164860858226504720014626830259105598754094926707594250116953029981022007191895392455563495888332557454825183419997760579385476720113146460610431634760574510788608138994426692655471812957239164896890810724980677558307368213444346076346320428648375334514399692479502977313732962045228448507925602469043438758547777356027889179863141430666379290476131150266002246085264357691132628283295933900765131213309443205270684911206147957773789618884340538728098710130737167223409615564678414152227866389598016156451116665890088360923680620418971961284960459890155631181884324656471275557998991491952171110556180422690852178024150074896239821522450477005299811825633486173095230022646569551309827365504497425088169431720239148499929795797674878380326093677191722122879885417039624735545972669396163585955462658218907058933793575547109023551640801095553152708448263508438148585380848907426883901385052279967074133062773676462171267144735237378789957654467676164394123198318954483339062632344735692044451560427947413700719659297099703270108038198512468033227792934671388984173684933452533359359448900709895709689730818954716611280773771125113371555323517107607306863293727370082238625684530110111772607581138361102984098541596309913176776178118342975526947995565447425084853507357783875521908293203383314669852127240238118614302958997140568536532833229705146794038732192997940574987122010897373516146738780870242012101053166486166596966497000724893534521613541084932024897622111266630509977996098607869013077875381205933913513667890448064870326693062519280306510794839098399837683689067668121890949182654831259638563288111528879528613066680913917743154344797198302366075138852986346671454848604607081112176737363153004551289938050392246968004679213124738669452693897244113217384177481287475758729569161807560711922485911932341477577882488430326921904425924204677049465342021972295888507936892978058859637047623183744553865977649979876102629734343745203699723474831955985278823954036511254514531193600186656211130481288151966569082691553801522969302971304007585498513419353364668848214898702744152837016479033303396796540321746233775890638170736077464465713235375813815540619788151198025933586348442437335121672572435040781962652977509667435545795995093886748049253934020250013068792714961032795315480679975655267975704265620473908535396092959205726521021227025365836533417391049513565651856193399132902834397021405025790702987688229501341346203312615066089124546364434287661782041752463656128849226321980253879736939910823474280824136065784733225295516460700035452667754313634442121913020765490887026389483813847793483865989988782685104718956054558964269041806404333907362953366112725205437442719941325474082313190885715884264315154935257196257046506985027259320998434451731819289297725835850130382513126421714581620134864827630525890537409311205061550052180898728192855251443356426173792377364603901678618775309659118387673771721481338758529846964754170809318597065602270241217655565728853736681501432293485703442387140591687986379566751735883767258822716236404921605214690815714741609574601258758584635162780839987681060971415656581398648045920642838934908367936749902931752896277027721480704138603671945624602257302158628711389339335057405729048797633545596538348332796029170995954078153937289877242015111758566586660328700349845506884829142155322932410227552037353427051731663654896090880263627904547970282539292671030816564903545114972986211744204740630610807738766555318217184140827649465225238516825416062635200983103238389073714781401178723683968421953688044572193981705471267786107344836357739619693458352761349650360088811217292429152515858350645780994089724114776412257434354177599561604525577184917413242715096386866333172800241750059028283311724712754627836902370667525203455140151070486377034234471517525892827178732536538902414059067608961388731744367152691471069589639394632313538259889349529008919216024271431554319079870838774975519913336617394356152556969302321609031658233187028723276182936759443844334758516952365363192449959099700050739846760815609258180265882713949347993068817574315304646886875764406119182820323937863115102573915700915408249638361333656847670262708229172722048193082220701087825139262306952985785481533355106348537898119064405856847685709327944063183961170155201512197876428870014909149039928674856922293674360819530241010271951433225938066585871369935920003108155416240238553300280804457581495728848016666788740424618669518107625365391492649072009177710228489182558567256421675979544961274926313599306165568660675896708051652847203906874977857445922414735596865433976457338448666099307006985187953708338907767174356310500035040834081026974866282266612100162630048416286381064594602524010884767058909730535726231906877132538238221547350524210336167809612407629818186561773348064786634672199340617025280528993254428208541069780602618820834031732871834692713208310175933640212693716001669993242793474688315088719362387023275181332179726965003988001119241788710388824389361344661075944694638010214428187075820462224209105794422606326666576219746207653358462371093182346416301963703227071861935539251100964374982869661815564012002185695410634361384649933129611020449791945447272641659695988828304816653299702002915066467438106044861120297994073849283125280698446721095936490037014318262623309212783351725364617300146480695362582514287460034194118659626473920607457702242171050231209627573764046065094053697387623718639185688068612440873815604812877344173080948683631805777529874350028029985693404843557720616546564784224165656404095509613419658976412967128740251040700065737488331782615170817513174430538413892628016914974436833659469398195788152224083242627923035014694402127391968205922788561400361658537022235694615500330940821994748138520441751787254167866317370337823324459047523249507360692212315697257134274170805467039022415358766223108684359664373274829132513497589756015702646375344076579727779936467680504686741694195559941997768871383235467154234722297667907326892025558843098403972917863523590776278284214779433665458094075549765274301795145321264637075521885258276153500581172510783919247672434459556209458026229724643076794511879431280761093205863916495478140171395114935794881456876216031455027060044545867209833498118212986492938022349979557943496977457399299520538648865539460641280972754593108286036374526623686397840712161147009304704410007393880833862661598160431230000365886740252393770304634059796591808250911821381457307735192126816058430641141408661300901294474477885409471990063499066617184692331365435829379240144291260420964749035671034903164556752521623760953197477395459663665399396553827549536689294435413281264845065463025713563250850458864578092895592843940468774618262289487092285495706984901647036814376554149537908586167568605567151449467789654679948745432545913510135121080818433319371145458780292285987926986144416060748579994207521444492496562926987181258507033087596549588713952573113246820820771540856610134266143478986693523133494899593354534535726754478284169112746924917439345366234580365291402467852416894343733649588902668131664901063920148004459448605121302032568032492877504856935756130638157423727100320312168660638869111072287525231012819927227523727396533894712835415453976294367914664640055600475000333431248569850734282923992363978272281881258918134855811715187222508438217448027518211357583836877385389742965826805427384666581122295968945667381564130905764896795176081628226120169415823320593610488245744424453779862526631241286883975696663082480096620989840098408223354623929621186847412059379809259924654638774385558795283374461654207343289203433105951864761089740661008827263547226677961536376005544700916672227441943717963631556746120319751112668484411373959654518416058151329652997522333981556582054361935335600574101419611185444645471215655337421969418683959657058484153252603886597351233592127336725466462235327938841794288087568257003307564710371078840928751127234649923814504709545358560700441784997377427403952295972960148693884030435707893916388222715118336320644580674596460878860430935824705587155281303744470155860923162929011812188972973390856961656397646395084385764823041807091216581888961809110068416988210674822416306698507927823387808376392370413885382460665465211835407526123700466942125043382410963643057712647891782223220619315593721306863388208114351755001893794830148914110741604075370307712945203441340608422834845428260312498167215585757630404677528095159943946295005720177544857688406976246666275676437849927839075785900105961824120281360616687971526111600923028965367022724481528248651785010947992836387058995870561671066418494480791746137133331685966317870241927892080164841931681196832714999035585446914175114322650940809630848288688165457937557837741763519681322413272665955545537679642051861608728374067412373338084022477333623838059388012396148079822661580345647605231606408952591599189681927153983087594402719560364901620139196433059546553891057722772203006602452400689137531915175367298200143887014905657376611815560855180815056812894331094531786704392640452959794430847898414352100170611456769190035668263329230807111905126006389334981083836027613698511969775892761067798435306314117760898207199376553678373567810181534132267861568048057236733784243427014535560783688080537642517556863285814278096545870321551500489972564872003774166505261746821759461600287319111319847208567967616808986167182434377967174466552521470078090456936753944776323799860344575010722963847972100291658622486883920331296216004878258862847495014662242727598147939643795791698515044036263949496567678086005103083693272500942767320931330903426946220046952315122093007139141260418507036712933120308155953791167114634507526003778446752545833537499317740343169303490733050140145800684220477511556509891328254200329838885689876076880952615112331524643833029236359041240859025686307816075729046112506168614940706152438056673726246536405085233723355033918600283636944832789962388483377964965635522878530972438195670554297174029687330278402117078089402443745043163708434789028130859008024557613652387882878128664497646155988654733428566438550167475367944247358464481417762343475444411311620188988779959956406001462737551449091663030304876062958883555423782180592011374882304088765685835740536828578911037343162997302860966426765013133205527556166094717590909199570381359639467095876199908669436161917997735053854201348323256823187855133775295268182364770881473196582673103288183912568472826775748818348740677638609696476318590463297717087645900483962260440094228332143506212621517778963932339993721064363315805111119266160762581215997202542478297330209876367455058801193653811285165803724514322301048059465556500945860595747615203084146728354235251152794211274744976602210555472582789938197255967634550179777807054237077307353398181985975761362502897096468907323093721969177683572856488414399838389243676532059891875652182322527290313209904667497146410634683408041632933203070233371423070624285174128710682683655300642339520401965994769837034918320444895668263720079095964218743736722513828830753977693184291963600243347633475859023848411782622064415321088387748062259033068275017526977434424283718848933328771465992776635212503846521379450191535265960315359055106705468936266561588798931247182348615226791333238947141437388850340194304717704438957183906401364355609644546629828694580864254031021051869480799812094002468204993276903271023367016957942739113818001582311766551735192245406520225884637318312627378045385444816144843537499814587999393482215449862562913903705262495290593056581515519039539534901559234668751652475075751699749762501359846688875525219290780069532576361092201458067568214852114661441710080406381682952819285731120472563099264973120160167236034243473380023829321555759961346702895931532139565366409937827313443612814269158494286465186715296737524470552144651101818605891067292441787750019015596713453711729495043189182358371524704146158111811181966453508296072930132400279253830922745222581135068937718299132592397036784555349017012856632572324085168641854332938343253960741666661679638451645639650552518727686250742132567995201751656895902656611132707724959843530140434737986440576118501114368226428045938295779336583055156758795511463468554930053671003803186287044943497663547537211788857733752144904155822501498401783176626504092442507911172814231745968619572729672423299830687116660371664142715734874364720661391847161371290675224779468903029291450713545930719438735605373991225762931059722493239965298123572165807320005240815030355746876210835096454449700633081497062718146105367091536800741519663706421756534109506439979883731125888902138603010332821235355000760200762516850837980487591224432960130403182508033158383458626068404573653761982668010298983000760372804251142405015298217731217978953576352516686771235603984184323376402400272958177389451951897263996445149476405393741718580646059887870698398910378115916030057175457543512200388268162807242912276698990209191315128491492380135408013759466441406947329637938051715331743585924301091214458522380798800719170149692966526094503773177208547253123398960107655004794922287941061901345853064163977766276879191043215707765750282236315285486894499855301120031639591573273254539891969914782094669787647030611494179485170502537981153562511794683046422567482398722060085181410255504850087426785287701736483002985720181156502863002012755889236539308701002817115955764798046861828155847925361220284972931286786506214664318273408633655061429152168506069842068520795189667774434797000641142956513514774857217545367611401905460971292661704547764001165977352068898109533444232051717346950186230942287617741390063741536291486447929731669643968906527602067668233559701752767848911962316192476226984961738268987761314031667143185584183585790942718405806724221400018662778659076021478628929033498902872677977411070515200893218773666596783937655716838531359242837594311708145645264181906923862936438743365750140001812003714389548061269279060823902079530274833782864954632824358287090611974779651118217278856053285992825408053468384855610294256450278192217855993537545705326713337481839866997909343171456029580740293628099215410982413662479192729004692335202324975124699130915751484325568904931162376708013738926660775046303069846132609704196164304852659640345080113421800087558691668675787416115746236895106753544406910373166293025161754831266259603929092239774460689425290731428673342299102191132332223641643409650539101377751859111020333283518247220837442404379853531052818535676825097692396470098772761410474593889998782741503659484030913690354970571837584000413719694879705071948690344155077741938013241586738445738233564990120790642442108576936817923844581829016969894697193536617953730398193827845938350193749982859553966609404185512935450412620475864107595615766175443169113387659347018303111311115489598018805060727945580806541717971412962677609071078132230566217949273151024206211766662869175913691830863872540699792295698771699799994465108206508498352917507740837390367041152990372957372568370848033833759602737678263803378259530935308270018705898182293008990655987189431197888223994411591194178442862409839876639955261721643574467998065707253187012095044335088490002811561583588441103573819044962288760438626811213645391117890990506497231948671308393417598779210883792609383808924045015906822278085908008784552574960489328825405799168077199002540602954735506804535954593507466878551506132734819817923411946526194089378567109956418476717738796083645532204758601962297784095064039450128904814169416469790338371907798288903903617039378532185388288429082846168826609244956925689721825528460310981468976155872378221833054849360443880456786575728804392813412436851571543598286358622166859419024988654525127269829634176540408900666176429047881798550076786804761465241179010444792329236062451847574386704939713108565433318782217417278398079106148068449048913136292329251369190781927835153945833260596210013716020576623996428780136096003875190371738036464488445127396270180838130120983189350647726703846955068079747043007499909036042497771145921209851692216998526175352428230798342721744018784214236841410228587914449638979987239822094239805771356084115778663374885544794112364933651481642750868068272744934239800343130704789117684168949175698483158182439958861021594627737390457291148007818146300376284537190845929108296938146585590691439352961355942906561751848308013452845611059222120690863549186662838142299255834228283490091193502098439434484382447965219677206050134012420506183040007071388238152210822434831750554136804443224948284988555543263718898876633581779164413191438658686383741737473236990975387900927214765505703302831523088462222395058772905606504290719216792411255737714242132912488435774359446929300223779021460102295612113453793312213580661775172317597611176772175954360252328929324424246476764488250488156574707317102258232120982397674592203316634567246318833932673521749802260756231604005579241400161660552594299293477742964241167847511014868064313634725901579004348728476550038606354071993274218885538096744990459949524003368870380984219138370665796811091687331630554585898592605269735420251729091980713502262000975811518377971149355279007252816867670325277063355420264614792210026833591410530079212155948951756503011200692516172178073981405063626963553503421066898264127421870068462072677267682065503819415644448953367885502378438395383108819468595092732389732393381625970212754570430738620961862089179915703808917460284101412405548455328095124173485750023067193905520232189060367269475139437039240483087985098621283132129804084614450745758949579504504727735575475814044261117357267096318240913048668842387770429487822839512007038697609695801407108934440471923229459578707641314851028089476205031664173868636153504854181048319394802719816027917923556149787052573024127264256668533497335670404482274875859574455634592541131068465433156424290579325037947853893771427223392738563686625405131142514509894062256562319718803009516993387691198553533595093121254710831691620163419222691938108521333826684982169015222712493619362946418682905357133996259592282237711865977826299938469877118910535061982138027072855287999242771821602943020122534286965501832783103998921965802704679344929369729770703470485852983317018846661485185000378528356286833226994031399703473433212828182322506633980989209662765282451418544325836892902102193632674870673717289121713148908825766206965466839652525931722827406146399168503269367348485470291778241275030167945795454795693036231705875303198713277577185638875937309528760218811056452087995895503163017673517663618111558768791924584905888603212018048845676976370563500440842610292743851273393076275179568058090023845831895538858219316368737611373080335882687253030186937437380603088449023823152332243632570475408348163111194015757048664131419192304696860301049025724251494464795512352789680931183317318614155607926725018483949753710128367765248734710521637291149754855680480860076391710846787999764919022205633370675290540395789893454113437710068893379773514762685622194435957490477764781317899388303784237050853810054761263661484902604588310781675277150999066056027527562669956443018626444740985519210951151708297162930060091339106677333886299843244653294627541074999093636117791440888285535568742012389860780568934706153193702705261540273143682076044231022581781537477692339482234653171758470009177186252590423015175823879920153241268421470798354334490689225191579361126499065640211266787051289269376085586494470105658197045623153046892267224597315858377880913461219531832070169612149712028921302184558198591222831428365687073535149102505867167315304054383292998625234077780935213446793564172864360055996733560683064410145908980425321233981613544620796871136130101688201337155135346171209194409999383436729889218757747501178506407694272222726779168757309500037538311270971775824378044572011248295941180465151901937205284009755614326300419653117999380003128553780388281823600799836972477108728488727685911705572578299376699594466737156200006958277860484758085648264213763075463778471160913330816556056117373098996112266387248860714856329731225389944566032535938226203776441919883410258154251899435592706200218609595304937507430107521168620171424796380620555646828020306766094600076988812610001138824793296460801112032685130671341446312476772032481944649964309655474373817821918716194187518592562541309094122566494952543146238718870330616945211208799726067005108973020117125806609069431312438448170091292851162374657644504368519031708721892366708331282722980626036190295804240428928932772923910646338643425806828287742486515295783947691954039820166639284486100478527832152333407012584849669310360729115311236729638151554970222033439348707399806164923160209211996207559937211845696532518327448467117154707154122964953365868486320334999719771436279220364361207015778915753412798394398524593878583439699397203004315121894876342779266932768407602459061766949408887317093663999543754480976542365229245975113523751882177723024799785828120966951741967752391082466489266227920593547167280167185615008947587438287713348152371211249866478196739289615183630909798269491722183749771182582687829122068674107655440284361670648060882185585867673055896830500983302419271820370291621039702179750842658370037967518661912952589081544421512583497558019982777436638027248267349671601580209217722257573552602942902513717149157840988740955302738395513511624859969170179205202562404541104783767074959702168949968781223932235160010737528676167545723487057262557968520019761059537825722258881522080364569689826895431411204095343607657568122351072075477152643023675724527614410174761034995944766338005569769867154965614998540125804819719106294305952051806930708952366964155350126970349234853740628068182960130514252988593762970255919859227307523880639725040963182275544775671999026422955872721898970268055436585250656642398078926928151303801071372483686047582705664602906758577822194892878640259435616337938753223236184169983250178711686113165394892796213683485015941955656430914975410889350177906352657701178433973756309570258983152852874134979205226451652033401157897301277534307226527868436698179609390335387733554411048373478851333001840837762707371771764845152336169529655153362210771588118655403565357740010012781694461872202145120993229650774462315946934991037164058030022686347435478009375543628737023904248046527470354374904988419926971513976733671542093727303494621255206557386134046362431736524493763708236598223462560631897554150417519334707229690724106669557581886233878316585588511950602676093356969851655141403025490327408041936829932686812099098975941052764238551289523612045892184919170237103707175987587055413382371783767178046497937604374159241862348923964041897437957765900314124852494641585355825792869226152990396211411759524890220885603010365051694749923609514489615830762246033685713388423637182876215050343057150691137778193292025676467236809589005507922465926495071387376416974322245710854144053953656424611080917254246567416088451395833675292510236351012182112510523155714692829954033620057713699396974335654091684624770607110093772619014112804370327244152379717560676268338877595055916298734722754568235007987158310921721157389875407343478373294379899300266808868058397488729187522170549434639965796262750720926367562511733187649433333886534343018313339222309272379108152330627999619665072565471474066046369791403149683790458594223216103931836962459145078546370915556594824415322920174317376492410525982014518732074517390593478570192573360840638678943940256637066045838118182028579684023124733234019839605130078554921376505953759518033971782304062905460463410856078541362970376478041054270311986556225137659577136494143523736994683230709107666903201230019016586032120634646896345441085120147045470890030404427783107625511040856617307053612234160909809099825453478323275953163998861725863711893013505278630631821395569631011488812998425793830779204047012611802034815073045951076936887856302538512135444463991711414968236828471345126294143459978627175918304903184757162700706183036206101705488050757063510208290562048241749739062073834843933701159477669158151927957508108503537178826510358780233186395773665254141696432680721082250260577006880088008609449628589541181844954259800755210837266322574576351243880688507910136117355248528664727375350898510485251013085710825274687228305291127655649981335073477028380500841496434322807322224646685868273213412375759845585441357928594576073899997899207423425662774777661526287124145709397643104667944476686902492332942925420490122358747349602421605476687540017036350461374409352235875280507972061819169232063130978179265002722333780749166446884374966813787788458408430821017888735558127958078897488072208329981131345176103406791317620651059320014838745137884828569985601895458413761172117879278871943086293087592819648818590716800866351189213971388511676110682475465104790665761187763648181250980157719952133587331033710720866022812578929817617195765263743609664794442926513026261591141561000849288517540507680254961047868085741419697096137392595747787445588709271137729356609478876511217634006460376970404022039359812856887565555723363329462352782064300079721307044271974890047026301321418774514735510459949580795542149033631786596718219989761874630052811021366811391111177369710262163898640751560246780647527185169490106499164901255420717770407244175386349646434804054089296540602534604549441974696653587707278662461608691344372166832504347269120307104487666595927176315211611030089670134224276028375631192521536972884898490971664949266452641200847645881324844473087749575530914562114373238808475299530925735971146516952569001161108534496718278013585828016792537547170901992420168959143045823267786812881755128191414721640446056862683574533260680358512155250048003975170952687546460871515715803018621983536907338646432818953087887664224725128063916890262331601400348092493020605311922710414452822890753211544590878228738722057719456886842019409166005959974599471392420062656944237975328461617393426931591691491335136597129692714286254685412123702942045139559364778759421560953833387920704926363738698048141596093421478155107173800627099238584950407261854409912807221466608301470823591876516325225985991634907671660033912477266585142288907181112681474564977118749559761757803101685393260016226693631375062435113270947760231197817235521953823437525939701354132568584361359005415112924641624830563988419852818590299940357980934213288051728704431823569872048596256720555873038291348055152378907734169813829583341580718574026355250660662133016631291776567163825538912916585783130005960894602557771797291294036190658231060353260182761982933658037890174516677582157635376479405806714407722667650455307195714678807266433702543987952239276767032021016258597820982155467340424978328471188482830445907901690565649658371592400558353375220697252697650959623984779352706096587496899189674110853779631597347964421991787023230999940248698703222652426265570975579385362875985764283100778757240986811239531658551313901146146198910996718297262865846265944502904349275643663095559877043178687035823048924269901168170909644264229079190031273330060410945940782149242203353325333426267723117723726682035851183034408425297840633240547934995648072354353633538288005637104185204826187401248262116153303553104596530365313060264788230747890509979494048244110990251573429233729196751899922736880494593007826741003148176804367904482772825972855862429813726618504979484733605992414498565184338439358190019809674136625102823418296442473465529275716088677732817402807525481164630120590253385004998342778618009201582217930445970984996114582817860217438138748247298396218432745856767818449132470458385516909032585978233494782558138496737145830161350327465844290413564872203073703121508993910250687897023820425266990404025128582731148118569311945296685623262967593746802224407362007894315714015779326548490358444126926638099526504223094041393262157468141720362216720001803273745624857711361490918976710952903707715909711419071376126795398819771684970594806702324452841702925881244582307364340483736481341466004011756390853860074593593392426202864111467265224198494006035146105089013647120083460539353880859049416258416614682348638055736962442543681859617490409648617616980904092214443170696201446974854330629016546417976641486840653282281550751391527611082505038178921324650577126579813982060788569684303085373113942609262286822792792129393021913491657568829879953876887783845308233756086786779416116359186918650515416321600160267546043691778318788326216991605017303252905765243909600427590336182962576415808790634044992553824531355059219730295170829412131334282995928585838183418380397215437531545815739141598537586014553394881014474164817642631958710077845619586755921740447107907483874728005983434383503961310626152522097865084638858119838595396554477712531001091012290256276333717939329779973452073096265868745387279829432511613021622049400145805487339521337032447628206170676431855295019681065797975747967370932019154445829183171811827635295424346597830487923218158808990294435976586640453421959894779234463575169814541494238833664580076813658425658755905859650636268013270920987370995594252101396123918870140043046473581114523486047897087072230886928765607294677543613688565950573794822129650512813752571481915176937510676794447932316565170588634502935329017105212240259556075328155862998029118859755127142707008687408753299284042705215804516206147003771328714612014742849047241211514336091268522217489701556888163284095817924513628753628075444924524305767531087874089355305052584125360374827519796087845129623622542777122029359537802189410163242754335676463736756790663290312438783347035584570796114711073220413403513334876202484602429232984373764593347424431597205082009512575261210106889775246479719795701130549408489444328583347884215306593992545286678584834450725675832497007512748367147289078622368646684633195515522327891002409262909616475304722390313594806748550951608492313614628662401107046281337157571104940631785683010792789253775356871768106741171932916226111869204394464256028715241931928879625356888941474376241664953991591128021573324921009593243580444381804512671675299094478646046118846201700556269232968184842879535231966102448361102362150128428732914451442071238000341474370378454939441498984721903574010911112063336773117177002281684019712107364920402964927040385409677626395149984141119240695734533738990135375417584881862821482039251105199217729615870371918131410964349842224700717549958000583188215964284565169881886604670715025124287914981893967844714101716398851054391087981915522787080719415509439380076153324883501739142818854753798808769827704374477196597624027886598781384501607561838247216622863452549718310818318635558648721641890065089592631335817377585853425653495340894084548124747688081562342875174306462450880108162968189807695044459360675959838015396796871103426655582371547698139336584522212813877961742763756561693601162335599465048368740195171194274690168145953041742407749964546629025783787726462560353225958979359970172389060291206708099166888383825403680095964886125295678406580814554722296938740878675800024923869657346188490662645680551975186556887469669012866660759160153183700696574712710517245146568387375399449118760532752610644958404597863902620015153766214152407760140051860694423673342189662989905936639574504601076515369953884087743587302810812179367654470361704822121948887831405642965371337025361860306807852884907809462419026791591122481696963481793560181560543934534488138860509779857806632662245036578451293244645654630637972857948753821111903931979512607855571676021823474205482122535892622494564966532369339740814053836988813782799614821353544987575911913490901098492061025373928547531554672794020678109251477968617967881920891557007318905899508928443733694286261613745607744202540892510423329350643723684280853352020642243592856889383304781271790314984241184455589463030851782817073463581058475385480276208277869147569720275614394625693321534048432886629432555429254366705008195783326221618390663195655837345839041092619395234670185935635114367868666664326516267946686077851472138081895202289423680274401164059448257585763107137639572847733286667029098820781245981059690442113067524543992690321797053088386912886077573238738440224341656520971232619122826185211799369716618180097483795842319392703415829027651213297458321925872787581442349704243132661111482287228942077578555324663736526179737671109486374297259654697447286709708053280679594210800115384577403704452040992100603331687530033417928047518582710657514646396021973668763634216796881590543886358838643089321144506561065199505461274253583612215675852679795974074966611782953236972298808972105562181302792086357674969824899014798795414898402905378831380230606039680343388896273158983928729183280104812642278960893082285389736606217900205040926622786143141739899934893436220299833132264670521366413219616207762576658824865680864509829828943069946110791969673274435143037498185292918534238628378331914195634694574338686676167053361971857150266959217723605262413225089189852330790164163922166514010020374854720902517344617863098599017132035029247216373674720335608250608360143383578650198822134975664226769169407861431679169949973951319487278030725489998951614371929051482446107027103528899638909527237609017412651252689211298371093831417742484138711592468467624630284533880968967699452284977748016651706796376700240297435986479420543375798691251742187100507829334630734853389906444310468042697041785358130774241810848221027361183213337553344573436224267606666707116386290364637303989696002462356760258357173345313788719716516924033896314604037939367261730181522726203684862769654974861607265517727994869682924914047305505254982611478374102176089407340443581719915406998292811348466731723024896414189361553573447931515041561083446575936713959889985419289118374347201248596933489084297466168312100486342451648767818032771532647845455820632049719308638071119398348934413168123647977448500403356387766208542181923593144022225698623592597655990411494330163234363808814515628380769159710816512440155088074064847409804065850934537831679015273514597552534103168584698729593819408513425262732114342385501500007122800509978474227637224382959892719621144462033637571088646932093522261902611367975410539338938485179825179401603085084366065473048779968256162412992616105374850821414409506444341047601265217699800538107247082353001511214300298410312714265716573322994014618213191108431641964061010669076445470821845188176122867747210667195644187927626587557156310021720667379628871808305030785851997655021215561374326399976208651298496940373763227964907562295525034362888605523363542383039877214449902799579801643992183982945498880450386077707278662298349800253681750839054731497337378934584000986904520879678014097200303754851525552556326572419926720780944688445123703580435521729043716536572284468747214963932376487271409319603214994138157475455880407010551916565721956401382159384042936356335579157544597842262538921812745922007196343497312240578774135454033663906474307641795336455752595452736943765632252717146393421609974163198704762355922823658247722054187643850641830253139140882784993629561908896392090609952361604882305875729556196146670005984728298959765754051414900799017771140641920179975937801654197831460120181124009746544202595467808167846367319972223592524801050611392278921561796509685151563696892893496736554629074527336820097061382412450979298099391585422586569357841940205894428986705162160638495667957231317307195411523853279733104611721226095677111912793606308349746564759423452260475298669290145505804898736414924447072059179040919814363288570769250712706429388358871062893592524686220589825951217804602325913539227198561934690695109551445225511872088161539216296871464481708591302488832907605720749257135278097410450005936596516036289170270804684458580141984648355364951545919670737857286683739537011795373272411550113259874029622307691416011665026431097929095860652568754985560786135431253218233200011281129846197096152522737885187404526527589995570935854218621501441588266323281342381595410815808521486472844093273406047328166377573843442022900119528337654571546243402127134423313777187759041324590952601701197348048897121126708616524425135570531218880267020456732951903087836200174406280065384650377995776175316648928458496594056611490900918666576756144223114544320500783450012822212133560587851256236367636301811529198582143415252927891835648455378555051890631268854806408076004145153615026225383568254605631359993361458821229179258345501555520565062863890483682190900185180201381624444774856953939309778541420979448809313063110042138608445050901775159897964593738183970075580026826495875482758809090104710928948149570817953904650746420024854008788211656107149269129785351595833982917625738642729088661722571451248581839690025032625794716350104363413793415493369953083727464550681586349796391439665730194524481850923491748262552121975962327227857494737853311119786005277583504761473951925623169515155893608744305778934978897613481945378747738567505003928411196933026713934268274981655865335799003666081499350580120000958391531148868544082531564389608167464119882057919357773360436504811204663828718114459480436097145693206231473108995051102623209498166037694381394621468588406483795617575994923092772234145763455155937422206241923557369517947579566124198832489116186917188791286851774178792471819932183934580036517557139295491581477398214465470346984636685665006272264109519073433338692934388357861262749351307796208889232664070086563475450924397754220681515312903947662418672077167360738383045531091738621931692869845099591976731255116778554857345348422779034235940774439532443504463125136636286169752704405574304757836025995388559909951936451777310942630094151739940884455150808148577995146106912611624573071942033539598814929854261474580340157080362922033509796524930310450949686840473348945920240194534296907215926897395633775364347200667096082391982786426377177152759607802797746325109317427217684290333072064767953506797157020401668001481518434134830498085450977853886943880178354298558228828246297849796890674490954628393319662917248862728591278637707011983457366552175318229738773704421687246279973461736246764963443816332240706732110975539346204920142833986835412652440357519843457314443025555198863334752360546264924043070550202283988092558335963280803392827474793862445300579811344012331639592028613397029500378427262351574978208627660667170992762576956015793469621025413789282137748008843638482030519217273354042974178331996987753546887448021232803767856683979263886741030058023684763177371393912908653637358781226408336931504044497683255550215515085754995035795347929175351431787553895316124015248758423372016130657540867935058405375769499620244598268429350510071932336408574408284990675600554000288971061774947621462913959854626727780472324202142422717175330839203125873168677268568236104511867488387061300613551188809534330126507626555718984319598500706235353059061998172397489962878243145649779790126024606444289918537696836206761545776811289405800268693519098732402817309005937887179054898605399566393144962430758409221431834510988433200539754785806641823335709046073599331891042053888261140331604284886394872806394541129121503719810109350750997122898025895528168562970637433645921660930677088088762327183928410636250967611192529961556039154464220932065905535153624903917948472187211822410954996192268832767585136506456903428655784977457067805183896004960356822115287317184760653152148698206257055480446791232593443631753549724391296783092132133079017127445851038935794437065249848031485973168801390243844911991163671361463990382777468994010569973313442209419312214636956390802356903947784128062111413863162700951921907367708459895003942598189543496836286652552377838580093084836064579462107265785007610543673239488323371841844889903397653405336681540435023613286514631744226994375211251320618770479741199897865707705759906311896988507455915162320244203624695998057268963617140465589203415894965884914615653376773967295531208125482888424551014373348012868970897366606799997186771806133001645696797227819420839949687190742955455066943823775731359801628535289164530094329019108686295195647142043851783616008298011594312994590450067581628023536045726092229270011822699400029388618335246231245493212512333507630528709001169026833068891579575280113427246823247107272122291505749201805221086352948445799495671180342068337411161419603469103118471141873380056037710228625635199752729851769977542413312023299764224302331315719706319118554091028152506421249417117426978717966927673301818915647757100801778446953626843932676743449958541730210541757557359460344537089241541062838212514206002908594247683155847250678383417149874506781692361362791037583538538642120974795995498044563100182103524480077774173731623893910956251893975025762833211762610460341773435411423834110229791101440538435326727698647049520314018408475921167411543492072334038866737689731646562630431190954569833126435846562106058809064060483691848784201169093660092421457928193268463890848792847792767337973741326155050181276823587677096519986620471603166693700845171922134133858660273639722749969328460533727911292091682747585401131402532943135423129844888518737278743559564752388491418296069578834924383563811450514324790978317776698915950717282102783314829446123637690461198518684923347140693100312781808165751911641563257822026850724250312165768216930404252785369129459765141445594261786002918608329535589024789431565919728198702377554906292815739666875771578926962613371777576938547539194349933156942970890288003076704606612062165722645263652379577063313204666611303473408608400908134846263296271346130473314084640573031882589575974111064944745267734210175382203743321868875796063282928588573493233969019056226289796570447095633538536944976166252956800754595253707239232487293651359014263014440032857278645633022632560098899182270071656137602896505967953536971656261654980471643879977793214027575314200861030067215482626617413267688585844120033088454016425079738532665698228745824998481637125149683637182790532322429966148548517943133728072633693924315502174015986683214444771740790649233676544352225596762074901051335536127280587760484062952087636983702596176440876156555351990112989251014915484189704232325926908493858883192849304249267366726136889459829595541823501205891026137289598728849402135887684650980775362430952982173175713790039056764676169275895701930605341308689756147346477174520587816720748365527892452705024923456865266401327868866922218487763634710532554677671544944867904122626373702844719543396988806762100395355827620743631537118575674965388186374295114173241441885407566097890585306874619578791727260230915386551517569132741174306441521221949812417105915897662979745416494256203634909413891959693948193044154196024853419192357001888987426145075701512552327186418518696445490061859748384039732764668564480863343683114641029340222222138579031416584358327611540404971138849059210693665229748039084975841985468737753253098130798452870405642133757077061901834042697671657360148158787823070124765899162215313866899329667622165138879539364734709429037101847673424060886931879215276152146470331957639625149815335025864191746200101743597353251234383275123673633338200356616523738710790914852644371153010228751727305780321562041498961309940424345140049768147454671149789565015168580784181792728239699608923043932469045930495692495389209949474350998630248408000001225157321599332133724599765473126848379596423582099192448500129404357949971159198091580702951251402676732295155465663366970814692331869139849527041574814961128747655407143206694016003956102644019684915495333242022452742805259270817830670254896554250997062236407290163116437948337443187150167576125752177565670837751085946262309110908953212677002803388702712861124979331663426769124671709142004910344017110299756783740863776922838038812832673246429323350716852964862844063327913508998226273253165076011306444543450074215542542860382645946997118196381374928984492300822153021094843025248914854522537960436341421039534834866951122674386340580999201371555111953849298854715514455808892188339270229396597965259709874819288795727828607742844897610680776280858635643408063444612441991416256422676432483225832519108849472197482858551321318860968950114933780197396851183808448254573202814782180460615466045168593989425072598753585590385769249052449374523366292436267653234404528230146290237562603462746680769871653952442073992427041235255724562253508240790434006645394153341612340613848175360428020986278243973318836510820955764681323217571610503077567100730401975526579588805904227585829183980119491020243917822987831252724258433999997943957919974746974489331823613108939071087938437457874185000983167656812392231158430209071789658215318156082158466013937567311056309722541345762144416998936283005654391855811772167464230119690462977683702218215826330778505603459865410615804115061029731230940877462623987057976283617178750141460627477893297986765972755607169297048050766004088161009199153794783086367336475199083267236582451055171810702107791444538721208742954865792072893348260274701963166537367555766475590648527214440365853357837791978777706524382626237632404008679378349848982667361804285720136144719861385601626700506237279026230525856152367741074985919203175565637334839489796894205887349534472449109278266856763080916728372603168359833447242318044866735257624573284957304075772586300407334700427276271733134116985708325242770052220958139414373869299729425934746478799278989786573925791158913496909968041739134784728094089371471031124682845841783260744788546180542903795501096527360002442735316365428813231057616090054182235036591174766390509720261635576554984285551745657967497549462341154072317805272592239944732052427879289970952403763389275151216732023175112332206736015199812095526165479383534227854811968285758821441508050732885145126429698213009790631272813764998953489163203869626617930643823420688235119169607672223849347963202223362346755575225175847375878116238553304321157553004738865814562501179752250430087168334602794530724992397811659910711972043725966994546821042102468005373983324034276569104024697764992571866446879584245105456073188548461344274190300612420614254906539726232443159305676524171525085800408989044493664845210106160509271017708941897886855522842958400258772421020519023361206015502929973695377899483919593497009023622066683291503271160082678456044300429082783919905976246038384689205550654748634800284985019933502951628806337547250368911939599467698622163806590169683526832349102382227221435525545000610119697446885346060673216149285595205299104306780282907260852671269229035683717551429259729340063431920441022565529239817445737731464903154622068968029745114180213612189315559726555116077242776795288410501749243916284311615262743419164834122053443232164192431037297876111435961454144753159433170426637841061698094390175093493197412670444810641762512831413455184925876067761001061522216731176931097704757380063491133219648467269862514323272813916845957003933474461835237667000306312342388167133235618698867609340998032186349066105341700756034431584159028984102734707619060414826134196382458738435127432890923759016878242845405487552281957021292991224001303266391659557029730794866822256207198006139924708817837396519638533296466497599687914537956580064693772610253157468256843218848334871804205597018575449927460300680867198325449439656982684319900070498192443609581438210650969855697082336208979980521272866193761888103869303805084925206090531725077572113866658020405397575411344044304345884486525505650835240865941732635417046231080130507962901490234740776399833312583511398552416534035631867341164763126122209176638161871903863955853320665968973495539255258708843882902038623687723680418536845999896586761317193663664620828623946371047379642703980856405908333039553050687393921289006093155807085616007593546560945607614106567454660485000676687522585630546699378204187629093611287232193992242191641102971996259613470449931580385434508020670119976462211815599779089222190829586753223841847157317370271152940553353238071481317847280715797284872228076223157453106708380203826200029413687663993214518300241652236874495898263397939008166828317139565503367679716608002667294391316181474212085656971311252239386424377007859480466230560117978015244926627823328814629191668506986744812986720228199272299701721774779855216553839413817622531223362218454747461880917065257367360685997277355896423373957234369278292461358648433580774194234050432970205358896075511178241726316550604165092220900622311451793518758309254968171190095422091448642632030806720819407373477587312153231240525674405992566627727274636468745941186100523820898946824182286010523938187573619405632430386306421077130623062470953989390272033397218156629542793232342109397911940464286464026354455339896746784582040884791156144480344133104856505689450200935842591769064300844778056696940739926238308025582015247039073356658084369230242892535371536049074284309147760314290294986956159192942559772458899341690924955277463004201833603212759473755749341842979801791082925479335639501597488772380457509093161574909771620147453030955121536682197206877298792714108351394725975490531346543963140276177921342017853281661267741921618478864302770768560919803607975394790305380599795288243321915901740502369430089314206154143702518102282649134173527874787019880134903230734053755174357313282446545407622581060161123680298973238831002093150601517901425788567000184382521282167970410231415734172406394348245050153008369835958744415680008279003062239104426559984013968725049834781618546609704372097016928364282329292500365091327091287927959625623682918352587829937668117716948749102520418412357161646278798075108415804833463995027086417773670396104689384091188195129630554558076040009884876565636000199524016823415588268565704819679773651529487303106747653292604178558465192603927826346268024171785687692600230354358156151102621937543620638898745981394915381432029073593691360021538984985012245754663469260245569842286501739047916222218981793617868237864954620433184056391226543026215960955480615990718506081047895266863403910384562369796474801481537214031612533003886042047553793079100052697743373039279102699739579531960792359960600824939510783956549159843963401803184499449983377888172064931082469906770733519100707826934839035077119685526886549463980834412805357759481755274963202561899200764259427979067747993129903476333057769201676400048252316769287410063727416127902636622299123091157396110636444351094100571574398690486081156783621492274671267218860582569580655540442013861923616936442360585477162342256795972444398780375900961780058615145281201551464306135145210211476247668427329426566140339303444276570561619009850737627699525145405581168261633214804439692164204869210690400910074895558415139344454201353928641134040284677498212028977803990484291974792815390461771641512427053241846145793555612548941159112276460597990132782608279287596384205149884059026250031732850643565626245168179120289057297603036509101883697575389031116078871855538973580131534330280110484653934953983975284781170169752648588534695459450855601768929155722153038154573850213886003251295705513168071622833916856178602302261492318657041302533962394488586213786849777400382957663208139583837866621203186497759506199038765094959462030234238329000937257637288649049745794635927322976343097505224792807950890927967329820873362572860058972438499809697911730141072913760836637748311456865173161502423906522589208439321510232820190611467258047412591583146697131500976034059340042522261275559975059526004754360179165912548955720773790578721447224627020765874594117861265187961520825196943353823354032050077541502161540145930137075164877540974980747085375843614623513623586901666959750265442427304702789100804235307530947984180446935498572799948426077641223393933615587887298571283163345437147888842984554011734803379307959233902062416088489891182501629006599602869986220039452817385831869218283017099580912606526403577392261464865159494403094338007487529451515204031682109319378051056324013983464839521332482565240971397306482900948065406575599883184492922982510741028256883263431972256027434238166037141661788796960638407702327151867359074519020477783756720653968454525594238646315945918736838322230750570021944934821984975065308272699408799465876881624417206190786146830279031105118882595344808940286019086745230056695742208534242612172943632146558263954317251738707590577264421768751628197330789248348526417084810610331297741970248544809315005085387897505251227113328589230084541578252371678497904138905085940599853407736183474768051610033550515293627552888438517196634467033737405008798327543232875791662364895480012105079438588044769442269211447559010732605417245812309171966065314451243842320274202113977911964900988532315929488219944326214923944971684503909497080290751489604193975548629088852012908462482400449814535228567208460973991773913437226705320879479352817817691359610653913106929576056517307166255401113945243322863700459198877056642035123686171327445114341250125769053784661492059828907534346387920650166949842040864023571940177298151077845206696377155494131057691147875798401847985934006121319219184416867798793590795572209298109794689958459183544953722025346476743707481159126290484078048366320489988605112204372955522756703666310895590398135902868922267672303006685308739617619529225504369631258974176480519805930377001511403585869203619316354080376570581548859433812693633721828166367088420611201114272022213092779156079063638296707598508079528505574670588550535009137744280173063483327930422519698960870945348391955239894097953703671971365175207549482074328728680207156972960309608722624473797202738370403461467673838749310953909049793997021041859576240358253390694020478565871689833675218924196617380220618680382307615408102947769419968076199822290881921872896653637107718251700109016529847225946397022683037007860917154215923232426820526862096142585127224373269095890255862079206866385741636566126907165560077804938361070251168288515981512301661877025910829646652392782736389413943911557482690045063024038269385997320993900992231561957312852175100593525446686916855258149106624965825934068736013664634208141184125501204745881037724192100992512411059981495673131459013399065788927266011694056842256299605911754604542014069984437178290283659718663305364039212351509621945039405224292284376180030931106159998200459182511591674882780528457117312385885264949783164372461270628186473766729318613399428149163368298040796159349328666112466421173909754274682794994162009911006211263990541211882407286016094710735278940541373112612468403371162026972046041740233105282070851594472057114483324430040693294347280718865166156252485019170689428815375490222559689644297624807659163029504673834983202813858839677831834314764900906435878932345323001872745399073332515503552812032884256633114898888341255908080683349192722172338995469575647477883797502742012526870165079383288710354894378412929432167750530360594002040021674073736608218204237289267291316903008665207160316251845471743456063862323124644893413251108836393804773777295761887688223288857137986440722205733298765648328660125108014373436321196622741677548610845291342215674418172723727237887064673408647597012065335598998908221007893968092413129814003931472933046921386501940773779071978822479318249148326966587611216963934771779136388435397494073748995293156251448985856859469633760696348530722977177424031673908192203791679414260812822337937637245155542034704558195326995236065373429507548403269899023768605850733335320244426631208617278552104099717202503190689293218244209271271284246418290404346318949511971975438180314730878596823465410567673949585535411077147110515148942111089147189633860613720577067865512980820379188333618308609143886209671810841185416285571803364919065507369926551706125490569752368900047815646031027678689868144806594663318060419860845895846683238719655247850904936786897538155027021585384022437197443895258396690950106306424944599367962387633498365596352179724530776252057284181323406922796553010870315543722480938182655586954085450920527004496323027818843608792238472238289464710612236418460347162275055366866905551166745910174446467987069304730931568007648529690077521097551293372357236896309772111088959680911844666162716477154573100084560780054177608732149656979857379715230068858491336974428574136064375480219426240802480627191921009763683140286709224081271264452225157076757503969746884554725800178512404332158189907457200923259183865083479009387954666277450922256096838388737440354755821932918234896173011478663858514191046487235397246643135910307368744331927945034961517675084326686178177519316327120859017381521341374062293056189589768325100602028416848322862804274609751760788776748899139929037166221073292428700983058046821695670483650982074013714780256204698380347038350806328395061708978128927617382009889476339492747812906782417322973215725354845710087638062949986162866754035005403885893362990365915492903274825925194617442560469661666362715999728453867562244161459629340046642937714159514690813305831525751220734093261143374681449198925536060475732015795291345154886285887179950612669509549731723478090668012716713864523296009449041533569706289798434954847313968388560919277775042771562130101175449836605254158128004787772465001054366946295203018628663065543380886168139011814512858334271566355050634318297676131243892393124414091665303255643050304426740878670676159920463502485819922052912016878428526787598722937294748141643709599832323449942921421132934490964809078328659170856433442838583542697503572971497577419884577970774310906418733669864296579748741054184566290507005620203401768345606281632226478926910584805286157684683837092874759787798972703788101454923408621908481936295799493618192117341261843084685636624160454450904162065671486854727001241612742082866989317604190317608110101326628987298884953747980722800364233576157458927398575221885798038214762093245736123557929763517425030144670219957547459824056542666868773160388729863051098486025037959238895846370478020289676681406301211406171282037679932569628814086741260896914839700152350794523974561329746262958363709546067943533061875699428408201772971464100996278198722794044899015390814176270500428920056808510615363768903064176105674495774476664349410143650318835910979058300014959631626348991946118357006437274148050858877880799700106715546732564444445426362966138784537614751960252874008519221992638950609165334243278315194567853800652021668579268356458877641815622612606433882058745753606660973865730502625653092374723472654124615709430686116050355923293660898340377603551725393705038589526370639465221705718493023872394964362399379151385890005037375965799378563941215034345916753649997508952680737263849743611671852433229494707971030714530211681616257968352609165931005646157329918165433465349498349069765591269133865494424035558460986220287849918538866519542821666193375587394847958089582851663604185026515886015606664127890146356163513154348152381023821846756518089030946582001562844931640772955938129930094107668309254405967835603519017811357321290175234799793691242245790264653130778022953384547907091871178323900089118888260320454837385004941055185851777862347416829260968996059060787823813966024736603405576600611234640300718556555577123481282168728414919114068418578354471642967662301816951115789387217210672754041309900462181900491203274863497955998316380750674944228220901051361928517558814602399051266665105363173344616816829500054529105871933229090744865141906931669998122967376397871798970175815535676649244228186078275051184530019544613989677528613091152008834161295233576012385272779568486858138953879829680854724094251031777099517701570249697727069346604841758823608603124651154117241040648856686464573967714044054177452790245411180170356698723511412826855460059160714829153596562919409785753300223930168273236020426066389241046963941371288636202713379757294210511508411845860959860362582118818545590980937078743751072770198106500833536272105442645258158994215122796472747530253930304538122556013838075942961221585825387686586381458061051663688865746805692115534479086788310520919972986883165650162670821520785867373395428868617158289861124538224440736255543887151313074025060012328626074626340475664079449077506804891842035472305062280241778961653092899352063202968932117981702673643232826554165550316693559627154347006711914870514922736154432925429446073821670183041298991263197816410843877602554139233588586560201453853203322857277510780279774568180555013057340773479453675505742671319601527421627283340566655431557872099645331114677903949037839991879653498885496255125146196788395297046004946009736995779167208885225309386297631062600068061021948173699199863187983423442253925672310743322591808550430706463019027363629097737199148641246602649875518013769523896857390420100743866144434872970882847156272777440379497119925806609171952890896227552135676482861488830086183270259716412918288646702076674735603014275605732823407668999999163202919451162977236161980938392126390992107515828675363180456111132244463401864273033216877499989706929006270190150812453226260850487541208561229351098673613688696137461675233499214618173915143735744990590505065128398864399023572950399754815736706840649891147692606660104789119146726544093988927661578309664786168780488111649300266199855313893951492165542310154341699112357993996017488088593035861704546869952991363852002360667691796367581453667536810252663405863698923581766321622868271148205569800799091211923748825692374795879385161478941372628771222679136606302148528128295174499995381740358645361136828334603595443576807641591405325087187893168948435175764647108227961854779535615564901449251222695569773056943684905317842715444729195583747794430638712711872264226782714546347092393908546563487023791355200920398841704646994745742370838651468426191833808290666226212411634111094054724578112465276653481620037348493356075878877557547462436013965587017604773927723054305830458503018858315316813697085723855985376764067119570403758331919982496179291154224881743544138170463620118907830661449730968925772779904181125641254940440850947591349497354514870016013084722377563252410833470106139485771610317683680732072508872863785004943413249384845825920770490482186917475528053409770746433495329631414197418469672023517183780610103293083149060208889484441281691058862313935528375097380629765411018484764591614458686735322969266801764127249665425704516523360965953847479773105925210084802518237205867515218694006568389580511956858026419522722252849020821105688302714883481390184822340149764192698491877120651476549771932893227444852399345855054393739380557429229854914819883948025191272579937911231431461052863529257181373376207192350676282797054210819349860138647151781668698186695262762331196110842041018444397331345325443721409035217592866451408323468449069159487065584144289987194632202100070616945560697216947620360594745420000660667765372767003707084588140991296097359089890658682640979233904139674283899365858092738378638932036011001778156943074398458383658822680876492197339958364618239804821322093552907398364991679261990846093784084331291827884770231875786860420885185058334786929151342040654121918091956351867721622467340030511601672149251198869235711027793159095232618491171217212451940516887254671533552232234443922005690150726025340215828877580051430790367609157749568726297022954315988284616881821046682207342689622999696769610542491953036120551522514879263255140683784467022473939742312415422572778510805454812068604578053246731750793760559694771735216474168064421067609394862908178318265094737009115462294905969628067356856878155969067382862024119613462058123242011322361490038282114366064598567454182266103515245690202394151440802821911850894421401263529862210669384706516964612372177334672746847579077306202202701606880387759067004468558240548797945256068410053284176297414359674066078020616071198658867886659493527470092577735046600545540945630737695906833950711393250850952920140900496572378390327568682433095927290701899007128535982867293022828419624209504943545059289649671054657232706410037633594928985430433520200591659290066682431068366704576132186968663377118453636411987172727932491349871144138538739520901990785916262454637140327894889547782589299475707622763626649598306536772859988383189076896925246041081934693817698651922144803378856088933308088856182973700892532229418822005892898629053946417507140220596940750392636883015631088089860131598193985298550418674232502094443280689565138249719947965146297785765759503282030343268937743109801859318847494193829163561801019191925879513218162479627720015063765972681865981662619984946734971016230113522309449154929571913596178171334241140229984392202094470533911272062265673111670686135612179683899822863213225366410524033244181627840415869100982172173885977281710843929206971335712304888500758974409184764119199990457275924111722553425801740307542074007442708584152914240809882476465698170756747404216754169066266306785381516046638351350137745943792348604567989958335026624230325816104776655382703378822226657558247936501150094492828417892643794341776814516426703888701896391722945089652805843571477715737321717690212159480503781864713700370338104988737922151666768313603566973208048721113102987309824649674398566913021688976186770124562788205252554889301482352740725535599906731923780964450068212358521236496527879568549306847960959943553611731198648572516868720153710587842239841258593314385919624540599206969271922388132661781232359114345385148530623650510398868057801477110349540575914898874305297453831700006631674452179621152494990058894266078550462660330321804581063464265095559280575753906758145454859937623927466766629828377204642886251786613982114596246881230538452261068608675005106102572057078674622703699914700612136171393949119157959362374760098142797353957755228728452549119441640907011610407723718193918007497538185531857271368879960590073665114164602640059005740254337874005855340712859499079742741228442173644423797099875718237679659096882488882450173370885345994970624057651827001293501432975273682859262375905019611084252603942304254232625003226073701470217491962378226703083398160860418065175595537036070380695527596293992555086659577417493189434469829505474909359224468081255705726483728967303312971915561169383281505644655714659084876598841481748850658920175420791012703002958778489774006552502974356676510793622533395298829435987498853861072652290771094444779442046453621663732391149343482500577683656931410699860449134937357291147583412752956665409813295520569865496452279862036332571387459026822112887241273481393975171218906240178366290745433324455895476519902306571607479415411026963262377759300317415273612658829286242718697127005543077207277740288057643694951702154461856676854494329570744025147004922206071847884520561839421135494345034956162577242468539607722847241519504680924610597898372528082248491365779606271635573804494316717936977272543598585450955330910233424080885619275676174572556107388263559654377016652396205156839766724068620857496521184412228490479154828375661648836489782034581501360727927784092071975526537658176581082306832645617318809658848640569166691650078369461555714999785545207124967551950880642229237711377922815463499450562360852800364157056876656400625278613616792758627215334271415097621583871693129394150633621546241030771617832945487716480801362306331703343752666702207220196331687358342750418873163239023838156357271601378980374935226839722340409355341484254987148236112505760284328530974560680762593140424540396661502241036716768355768569606842110988964217122970085052554999271188993946951756483515016485809100527597315065982841299065019096898970851812962002389457323761782802147894389713482170806012260020914309547390224733032563153300616779946914631158030787728645453429063590282115832478518736511566545013870291287222274034598375224770691175561753938536887743375252127865313716862675217920124466539684748145733991849975936035099176588285849003977836617685861145140723561945640367077812138913921641697361341442275637424655890152769514150474763994436640267051589508962604253138980319758985937238069818456299229193128879924786065569343324397053623053824592406685080285357316611705547401052324154217485890594008379085095954217220020664978150905186592613488523131939311314139435112230037593048709764922558324307892017172911715594105923995640022485626062088295758375541235923571292343728437866874562653464074884602070053172090329828785295872117891205173122654592354711491888056350658083126102224404060299607325860614462337879036216861786956789332371964410246430273820041370404441555559451394567694600580752412738034070569462625541492545995221644746734767525676322736954732203595875120131303290588673782342855251876005325652934909089974448111197819442825499312282696107419530764049034404167240378082033988564262364579039808182536407191072775513406894969800735428046231876812839693039043049598964374275786320348209311504980247092866003854774917925206409224079972629652211693884042855017147345502136382455237337510772141890391955224021914785457800889366571062068922618343751394329968756992877181667440210654352443226725867790091897147663361241297140652535358090148320498528513393579041950896401878356703774957795936444072461859512924309760508484185227967070389117478524799303527014948247847994266046275444214059529381228463276995253875054183985357941169827946185018699608104677654209007463148429696723374687703722530428054129967942106980364933246007625054044584985658893184445700067047062442890874330983805785038347846059722315214289759134292604506540866381855651442241000100659236567085563109302792304233662702437861846644815543671665649237000046424357575972683730079146598337012720575372631160138167261256438010073882353066385219591999746879185044138556087516087422053795570503824619003301647642862648653018617953788508226324559759863254586226689200778782222455204551046322318614844910105079716264215434466371919417206859313818583964896972808249500051892378185265672056129560874130895025388443212092646405046547432546260589280314961674169286499944676492550506820751889548919297973733019746067004416406341487146002737421739097224867852202910969227803286572565492929904245051706918619763701367918164756136550451612851315230305476671185027610718025666829591772850532463346102858660816637077246081099422205445245147554793595574990287794451095169633518563936585001894724092380018585338013248621232994910073019608898401730098477186540795091852268757241620558195837638347139545373811177011096911392894880309708536918207832475164544328897158113024875444522655714709110344882213573685085131817352484654108196975493689985995390921203253606373423121602229120180173080796975670416952494144699094883746301926828733284474457981593368675308378294092867900801297502300212555590053048642070792369266238369806236860189943258902826449939725250574726572139398933295338665415120131808750777206664349201279361156972890991596021016352739112975309616820757470959835174691186380147142122004189477299889876560496329768349849151044508927592715213434631127629169014887749395683885544865774381102591439143661203466744475400558227535835480831065720690304503119418824600276102189798246569856601038269347556515697942551983844690637385838977285990288688092161217639071748718035335668253609706301527343849136477370466548902534063874759588545116956727062893740148986902196755656793515905086140021451122227342844422412060381341226242921501592163117602102384109247261515829646468370807508534048077123528645752852092604248368964464533222201932778418083318826013134914218330480833604528599365868592253199148457223734509764244091661424746677951599169162700972500715689965462041567185456082472479471204172975920253929291030996408123615103532525502161272913982701333020397239223748610428846708458859634393275308675679862558665843085313483057454237515514542268047771078459869776850486704468015284688229765746989862840982672984636783313359971734754971380203887514805596496429113496699976953975315298260781118051413875040605432119856905520267249091477580914773705278646286713832398359564088546708664233588756990985809539932339155698877418988797207481197952553006025192953915462786828018009795192990034088022257748773326399169313576958180228798233130199688154759044808062283037083871708680180673449812776451550970880961996147723807607029432047396994698529138968494826761795989995091041544648134292966612676924862556589523391539092055453880583154186812663364494413375617801258510318471855512378667875677864668475484360118143025251620943293435665071788383808170938443397119475866788392782439109484256556129091614633750432974452497386933768896934487653898548516662303338263170611236271628030311378273162985192966515149659318006298662084332357029195947931291019023308922479464047353186681807965896427923537101190365913874729290239181127824801476489004281903418483580548169349785474340075908106284094441835982066289080572458500305009874477972481733668958901588104548870240329233062487622207051749774297952917154967587403653003943072380479788224845745831649373673583848224341341404509695275427417572675638846862433836563511549434929391319054745657575912227632521774335645632563596471133380310617111220443438693926485481865201578649870904787106006102371379731061594792668166498126723891571223534919043110215453990642350189654248134334259942026174282440059293306270590453318688354417181147607660595974448247038969521044122666064141426500948771073438893694094902587981616350308928994797382870828267869884214079025433775896323361116917644995927458188529526177990662841185780394776324106017301554598509777105210779960189009757452664375210817696618508594498643071676238646886854602581694206010973764541555935103825517463155197510541848420521348353862909463849999252497546710883222621896020212722574706159370081780168289938900079851873386927374642912055251888366335474182058518790331292573154553208617764363042815495477344404413599202379188505651799082628296876668733044739173913653338991427504543360197417694328220745608784712342314342784208199778576891721969827862969456162350864189589142485329534502803555268947817699818524741998765631780252670061792772477722649129243854841025165869094681621899128448070579554919553155721814126055688473201260789004345970382860306403988993668818987716509430570701063027843226883338829835183818395586223516364111975771468674377826097351984733308566934568982538873684172027672336062847358326032341376409843252119954088750066147131016714390251207457524437804212613457719038462088416366743190602742043000844619277927756091763201449338531420842522407458919256824087899330951309216818844559773264691654794666790462500614800680537842065443572696442895044088558966863586570372138397434064281230866864644147352557214259818351195266533727160001435103101418494020517246655258763843459545513444852058104934772800010066106387338452953329423511473091626183785045237840735455201056492223900410290750461700984537883421122791403312135385816484423835550557800616577094289080941599406655319519336545906862537034951455274330018949796059764658887094199432328445120455967060525185652354335745139949006409319876558286601624165317536253900492714883180921009305284898349689322468899403146287664127448799764849607822133380406654572344103640602786589310376817459034197570652261990409727415517772017845835590471529805081379401578379402169377365704374719211170200459893474707476567934033141679891698209124785076459152965848199095118609987980639571983735636996523024478939913148884362968395923347167556478846910060589796821194757662364006190209483663318897874271447379272657695568680672197403321448138729860864233309640971100478896995402558136040750263664146921332364239943424002347745521875748629804613587199557866914635528024970320266001689998311379035935934415134539016939682557342410843264706880223987699632316543479268498918662953958444007948354817618599239721249949599368170243620517689568695777944046644964937362095279841664960992832614531898929471505337411618885932571506883273680368523654095528480454538050653210497211449305684107719636621215007917491241284844797613259308791947974753717039739855313934759983393606365417331293369987537792695549703299772664618436578566855609104660400024344762488398415847671051472367063387456345619903059620444321717841716268111231050336741397631215397383601984093526034610662823833946571764224877193555002087761978101218841802697347367866580971301726030780543291884861827654521106688509702862507351020621016728538743365269341010545062113671001566696399504136704010983723771287361412327942587633084426028116410004894700129042709960652413537004105771901938269809766730163075646359847992322249833807188916153800370051598131923806218472948858767714784121192377449821311133081589612176380367477619086575344583151026996723957253510634393146824572527249909572119335223044958433455799255462549408758462136817591685896281537586005492434636117460690802629003339890464122237098435065206792097932175492368554682487165333844726944967264703055669358981953354437599182516644695015117023604746632816948846616282094296878244468287849620391930175832122154885235379939477028119461900704229342861867495258408697555040243867400293223883097009282158394269465940311029987065299544068796297511598196105614824965918470204810052611773734099805290251629144491699936664116167149012395906310579771606899702437658925132142512226196551176686141355908583378425489997929964008890883380075171568276233106787243894043423683674010885102788763440452205623665397298028412425643071075252729553309414878983523688938638670536332231914663442507324710965654307955195965236706368877130323092543822215343851415399606792132743209404108019320406998704113854865959578736130326177378040378806716011483684273772748301337830179287716754703250616044045443185191220256515747831234788037599077668613536797889744524923418507610841567184849453762197064112992229933704460386894936143164596906744047032757318343849776266266268663804635669283190445795859692957970523198925663399180558002725292960315966009415319713864377249144889070154468628863839277140215187663368771203147356137682906689651845143748825492921429757240997656717146308796574811815191705126000288960117851548536214466667146407748604211199123534965560608439812911612529194071570597014984259818750539664039638784989766561497482798550679309031094839183885298164304275632904866257052714858219016704156348073034423983590285038283970522002776472811691639395631073348790271630367914440664527783000388354342410307493956414371945297038508583567636644361669460078754187467293814902240802433254040765041219809428954701434489465465546660676412043527025144069909371601158369239477497602681961354535056407179273046366497051590511634926766910504903816237060554562155601289653707014309207628902000406742340086585172326865907451129043483152155764514600184418237161124334215295971694416863364000393029497407456725375726867310590205225042046559865755157576508775645866276355305528876889164306500003545258037060002105793507849580474580134852667718810910009311532002989014998078999659090416443512963066090397880712433705344736532357368514164013276619977212198693568963379833805750446980637562890552607301269611643869970794420260456774553442472187970913384050219566542923415165192534513421860557319773119073756435882256634860453950872949290736937926430491101187857616676386265576720039400684983001615442385717497497443335549932664613727104857527772692920884912908237811282040839347496867473999895077232596813984864550539505045525556528905340676538071451466256088395009328609322974734598902568778356694743785307570172925689316359357132040193092454577589971571943067907738104449803213864780708426083323718127275309443707622926534224529450476968049032396402143508151761677728566376908011035958934320719946338119954838757285316051492685828501739598886961599188302610027482013136137057495937650491259649268349116265399898278455247715315488210722494477070967276544706834173767405991626675299540083912399815906948786036075993237564309786893200745361825597616271923761765788752357771196847310140518342405138702201543026565254581292840202281892324992245900870495554239839080779977186948403975231295227745371103150334275569835394263130336098811980573427478200078113732069186447871510277420213413076378486352540766653783868613869873651283600912691175607004941946568054809085032593742606512853122424066928483103697722025676569315552347943321259588766258386693676797958114063403467119397272850895027257167084455372146014184037883879024894254360915774521216920980670969399175675456349419086822124155141591904098480331260361854437155876736558917235713781216721762558151582853558818489077842520390832173767312697241516576759191886628106695868408841587795791848336299242665778729355651863898447918374478671229981719412153580996274032687259130500806947780480355904665918004598471790434262830378511151649538679691033298599930221270120121032437368057981226145094324539499254674624007385527802951727598884548342323815741213509986125428578734375183061079896751264918791473016476175000194728947201226943302924157574688867644079503900789875697387673706813515563255026002899133623131267291686639485141355756345046908504320002523293086448386475228533218911968429917705988340766555698089312346795722165207363709935881609178494107867746813553144754807016965962387864609781112139232093714358103945732909863052660689704454716819030669488783956871295319952886632360927442355579703908182422626258185863673226804828046201837530395078680531936980204635547209853648174976855860111170350995482250228480208929794968012881803154140760635839216717275233983206168773917729518319016425117687698601194641109148352118051348384628528795965418412786263213260697957807011749122384670376026493223183300033039686598932642498124196444516591705497155677318720850117830551069482401361745490669987456938250985787649948386650125081997677461165378710179614610602524511446383022002855089462028579098418988718071028270255081366244380447550165944657575516868593021829216138352056137188341094272331704817300094655310355553980623991116245877854793180621871747579651244785808523427181883531762990473735585871725192842046704990387325596510894342177370662619380333142954936320171858154238040951824903020540565755607969797038594313541246566209085947979456011465781452069355349689235252936045726592153271435400965219583128772315424991270032808829951368065234886275658096556146783111583169775894947354276539490306005526317693737077600422899840898178559550429598736246175882058907855194131660416626573873117002870765535379742229751828354762095071312411598298706957311222073595080915190230326598087588204843154802386635348027284290537350694910112160722589908424679985810579967616152647299330578041075410119005319001681913135293551104246099565631212884982173555128140029745343108447929377549252423900379040461066729066593438756377024938026666576092680242690693161127571519447743274865412466683504445461066280693185199721174173775940559863776991386739722147091743113693844399795894833579769514782503750626675200363562064512259762447187543484197444729830381174565040479557684439663257547987771962493689067361917961978845344021190340547504644302838791573026458725403090203762877065768890339510176243313710054824274479745710352018576758998962480415199228531614784285839114747040276886103551114965416566708832282210091386852920268976559066781143058730387567504510276105693322548408546790936677129555783194621557906485638920223794053647603942946929875978128919103752630382293625706605912292710178335027404234609638825061511128594605084543507148277337007977936916070465258831499330006824687672823766699456284533266369394293785699968799049940041243242734485715108880079575773126385097810070233017538364002504513433440349525918992317209213105695575160715549109031438268416523261805737194169379432164586297748974503149214646413831076019211361947010802551935776199835830900752755665945102879364348315356916578697149174027093648020727981448125864256738279444935486841476727062603676601798201181940538551956395087647328928515680938988179553381377746197480336965947235222941659202301153629871060066689890509362613810886402890007147951096671908791177990841792318824308966540844741136338344175704371003108964957298272982315897000907229962360116599324402996012379627064104875732245447700799715515833911869719339628438977257826278390798747855302884990663801600770807576278376737145417838776332935231636062618432494523197326332069230234341981712501399458035586073592492624165086730859754101226866483346476746488791088524303211990083971436594980817942180066555628823569116373817790296422802869816985215193979747488187601105789362244890771493300688133386918377432617355862016238817676317475608847209830989815249797096681323888865986376878426559858171626907762774958277961637904091450232855163471018042398170052915661343408736071017393123336472206469539396231027218091162284009936101488199549247669990735792915443165751032877102977368058761432230243457322088604249791982359015349101740777100620778602038458334867080286454114500626515683198099669630606749842292448261496978094338083730377663729911708745143348893445188019088965902227330284335891435754935641310203227764095277167339960319094422507323112452783925665312980563487982402277898720225914452170582820693059788846428112830758296645708015768865766460507158236260328992464926933149889870520412192145804659742118081171090652907056215256778372974168775055140917651522064913821599351261616305267049679062039100292958397234052858694339425913457964885537465547918036185971953578460283661296368957624072475126004701461996995679022099324073295475405613646679526444293122344443259111955679972011596464131048176892381289619165241571044076938903277257724872550107447306507762563762131621411397430593665506624827324869701535912964284913795827572783548056428512144403430771089916984991547771079718401874971227327820977067553433430722693678695264519607147849209177759946326376119994108595533597925460866236745917569024858039056915146776560910402362624758223207880088714927348750884105833200236815684231798718403034851633035264208341855355546235312020662615792336672345353189966466783341807945675326851548782676345591984211205987921564345476517451978497987658445318190423794795984820656982642883873028725356956710436826152429200819614812019300312262113927043712710577682997898304312634157428508022971162146041814232555072512284508888139176076958024149627994190760511107727625056214263898333582941177389718811713058022524097666318130796876545452856944019207895162618679763868337294901544313195083448502086830315337770795530214056195405817504221912159511636150783555108254089466721115219884576699713860710412291482879571307839872077493818207523349448691677315675474288575055984081023044465734759008163156818413106951267935464559385415913639168095792035620160271742876183542516188669701907627461586050902046941624404154503183741568346312076170948929105636430494030302069265829353546327702298438744468782501175179455287953428285983844148808029794445625519108524776357931030394684999314959594983796640344820560862976540687818445726871079737571254492539710779372452225452471354220208886482568361757268227012176803328482541999421509241034681123750188262117998855048167576872262243655463917649509643027206961799832303134183666871618799372052787788072153130612892072017885795649876636024710571080734693554028863331349543047717918722802294203871415624599892899940826320531746447125900616930475627862138123304262821065893283142102458112602378163512017411826268903321416220251272603658340566555801827009795436772836356709463968951646317146166800836049623427619631744785213131579737236412534964302061522234515884035286389008501390895983041537805128324066881212981027409445286080232857859990311335364330797176385977477280739878399872799855508537065749342921475985919447349894248224130740075439025091622537860771379684384893215983192950653616731557734959310902540915778461669301262381443603994665726507093628228710181826610741345118488771419316583672630303149948292863865717794401499018395717407630523115380743406867252881534203675992125276907298492862934745020393908660530321215932110884298737528372065697587238264874758908557245934824710460710378591454657060638538611618954390131474286640556220252002278474563238339613829838771299089545703117406272030177009473606564077848334628249962399507049842357226950629693479705213796338201445709081434377041967446906383429653753612302876694367433093752607905918380048201722799161536644052599305885789952025749430772409197983486983135755664071318053962579846197655327338954596929956958529088128205927130029308069052712869724844955436886299198022204152799310091662841269559023791128303303460208642870558180926281061355148734687849545575870573373735630593637156695461673758699336668595216157621897444059256185100976967031656405909902280219272115454114221322037226591021928695586002085409660561230180169459213795832032630630709459413519220061153536759166199891963894684409567450640680658181976269278945656077153534479062227328915920573970545957796299132069766937128275325720586206154260330268372145837556879245837395241180125675346688013147474156018694963904147781241189426422893115939039203805013813898925343576184983185747489042387445591987926316651111596891206907606924789512709721038088769594537280749553740788794618493315496033566957782115414611036063203806897964384555453950572093118896357099964839999469888782257958393931024446185007127048331187276582016089957059153014019783379635778229793630628315193706632470667949162861162362133882042081615653122422631437100220798270171557215974225410323858771203172943463743180035072605600621770008969113181975499735128521737773654430861076796930580624158474040248380320988919687794808662136100835684712519427197744282438907454438039286492668054830617769198372832771488684341736797532561967110311463981955665495637041956452686043887242136298839145684313872493435974081000143358860851234680529375722631575479005234793060118859248504026374105698214110915387407112689423178999208318663886113752186672008266363012119205609760291858734763558666397626041054894964979416380320373723683932912017436032207747451222104210653916860558736921559748609408907489497641733516000895411148680472329537290772175773832906846405305940639737189981979839742278912328970251412966177422669480506474727647675553529892250350888003305580350887614555174951253273108095063993139623238520210312312889043852223690115557051723792144382460882546115465335009415401245920823197218089956328341470399023798550063056176969222953730488876809393148178108201716690050068472343257637472296013658073142366270639707142735054449852953505425035787005928382008086200039564831284083029763012228615210754080696707066619341025401382183588553163546843453134752576924558721545545226290129130717762118765057089401289800018780066631147033633394792831044898747699263531818751781657793345998732113478871641174993097708777692068800948813993503679915937995316293653553941945746153742247887505979564411393671175387957339374469785267229960675606299352253837387437595644516835364242561245177823857787244205074979059283503205287444765273163240228115971307578289595304472606804896127189588617009749506299116008274471363185733496428913473236341573339854610313850770442675891839823890890584042678619667163261659906169253371708697890079512179996178272594777254364828156514236396634929536938305734216169012682457820113455489574559942185741441397120512464202599411441805955136535801484139803803873366895739187561604505841521274737251612156463937178873478738579707437893714002727548078726127144796248201398041438863385888744286221220017301689941107906849801298128575023197383439273939792100855918646812977712957596509634790087306063603847836548499201631103860062375835021447545945013393386635420982594982676869234330672388507376903169403385590723298395258304282656669565077218796118087984732978789294480861014968374100665613063726662635258149632088158235018534753549972503217907226448744210014032818190561194588567789300722511805944415763807438616918887493012631008366405025682319542701940688992597162459806207012418099470354656890185214894854242950595932775345488336706856604960513392979746488945532460715461573687651233780668067886663569078833392577963049469703579860108474065168018817911093630046556945528533381149455411684103808461083861037553350277204746875585437491800613531025461174965885192895087806077114979671872161317392908393171993022970066629983487878669803773747217124188663859131512736496003489526678493929113295797003962160401388638145992751336536483973614715939478987267341062051944062437350812595430988610048425418260996276794590460850966951438626536537370585418269169777161748312177439861061315344596604267793242902215663623500468569788163493151955861302291497262658107282933253151883497142809835027310627954151396752122297120822727568590703721633543102062400225512931981994772727000948579940244009416128875360747634895994465612264573432677545309244680937310409930308765293779676220842285617896966294434484935519726929222002950774850953515158593129558001231906437885285955045402886971405324202700567200717402077748687649113117359165590977843750460643153648186918617238368369459839432214962805290130481672227566574718911970128738713714734364892268804500585534023563360761168109337778025662870319642329299200212786336385409780713302059182300375856678659839696966398506657921018890061984546261026349193429315691175914296952376399055187788059502357885120175861269302024870383812923090055495475249292591569604515884000878536110519936839550520420995892220514325420818783196247634199871477668689144952807755333627093493131835934180378663877183705569618150469494388767154371440335211182669118022846004507759591898233158368637824064400572870394384555916565904183126385523254534592960197981848972276035473668270082373400599519070304582663773318136512910880543832129106058067642461257824329929507824321342944471928661543226359048373049964671970662561457538160901649915649506518067395694234622330887836433908468231014763028049984191349431067260661677218533827172712906942366624569908436271188960033674739686883578610502237623890721951538351103369727488520675664545155366363653969924979568840185703692422673523571255595245604530502491795956721879009726468722158427688131049066684995746543868621786362166285556407035036733934700308205281246124847324240103692339030905366807276792137394947975048679298282586664230071617830459527823210989658725430616568487935872764600897836564515184734321454099147693562279152274801156567718923065489800003946780060524525462471015399580788820665286550516270861560807474520731364104966957032927399348155585276326598465197974465847648632566039955084826759173740730669382606723075382548749808221848259707283034143259920420559286341458930341378961934625238367700248830648260856431910517048929088365866625972792972107804020830780519860553951285711721284120678019580313834916564148269316173092379134539756420505727582631907586787872682495879694210750419005746422228612164669263399968405471369336465879264168406358949044117669625707194289544678474924382664472874700888112114148953622173393570555559266611702990503317658755622772943834614671537977589287719990316125963651512826430793070109464247498905488084061102558370602337592979211105971505922096391176582643673751967129209838383059004849679564385299869262072143618794896159988052123241369766563346412056747422495528831707088822123502078236624059938284554724713688486533139271581570284529504277991291761941675099767540933074825069333143757944029715975627801274332140713165038091363334621691667235613692074717642302829467264442808483507269843984446523938293514820263531194906118102741700948803903088416976063938808945716403158334004376447096382482947680946054902307851473571690273185933949809665804060005701092891006037308992372856610472933445949107815677249165005327570305551053958993786274182270054360614223906140718005317639139896874654432457887879476151288358726703400204617816783191447480278673488544729130823976514072553781768545857548008080973879681235026590208372987047020678239144978408398804003187930965316668563430605079018373196532925009913959000624390584413233202997777063737419142781872703631387836869883275406053977134889759825998839136345627837612577034965918244552284463450382408216152850024326521301113014596857625216684082511134354593785073288236789052649316972685486353895516752583613175663390342063178813431138229457271480776912276538087951516162614081448224973165777244458333252311139684451246501558697254243068685698024841500153534458574606423439239188755736355950588431516706484813402743054970395364627225220386008851275020764305285774123037774369159080649123666378990684955491944755796521544285006940537504098878747700845905287249273005853637137226443513695848628805081428727228870917021269786026452230023792091646248917659980801798468854708732676546961492432561911008666895486710192897320624095144832024353124804499322499864979314035777583458634883941040712460250487962507026926712888908775691012936691089430692740268804974003910082737143686918877680102064352151732247994383923675108532578869096096015348509501129540368831206264715137324489701753220759229225975576483226664551899819418595000319446242871020578414076033405116899096473019653702146112443858105297610694708453712324524289837788166258110729610942668557219999762726533592966694407404447391882647828422048236147384385734759876993605405140723931760293015886836688648239109043668405062183550565601516825937274082609615538003808244596341854988648841555457775497506651077282636708885869434478676691283072962388771355995400455903128505827923628069569317217589041807654373706271553195566860313933215626125799862710724206811615847988222516095591819554112661201225110913472443119241763845800994189259073319503231550530172885529843628364025275544056297051700867246253155046888884909669795963274551003515161444840118392386572728522565275881922057950119890203626061430944129858969557312007684784556978775790463551595052035788791504996380207976188623069106042220857646839544124775181381518423840646873972522189028611197642615933593313639278965840811459563054530785603419179511430589634543681870674370548827281040543447444394686460596779993412748859939586543497497744453812708062114112782735638531669589594237424228620746264719493203539435277357458353255244754701513006177566103083781234628373954374522147254250959546639109604305980220563835868755641025080912316401962795685497336842180462761538856452113443871094077922862979154550458944304312850506916756771359351661649035614640339409151015539877638645787140473061820764374635935765025138999005751184719346777772930283165131565944756462940645860521702290220790781611596494592579526166309084945039005505336887351433504883627971026407814667668504880403845841742741079225280450801916166323990545326159197280527465128937034403444865977724341359520384801248086531908765710769832604950762365252708584927870580191720517047820715608273673704923254435835802160051282352656877847642229642644319763444775846265451654534395740685337537633839701813449681585060230664374464569171605445553303058547561771691734008611442278709373537864408614958297335112261600587698050644370688482772984374977698839161314465637734925256641198700491120561737372953377750433401641130729748763983048837665031976228918811298593953014698430601741284435839992442393208059526342907328400516886788808484884718128000719049574059965672444643910709428841648816754972782499488102468924880234942978169840539115203384256104081906663956681432835423519252352153113283150854874131110175787673457657637040054254627395939194186172603165755230469550856229579730205825314061922323968109461101056584988208251714819008376274367114058807296056171759885614009646095224392543427741626152538979458817025091349024457301500001072179138764288537758167431884908330911174592803578319563653080401633050986917712591224224825064307512678453942373963126487808770894155102661955607244624705894607775858119473158284920786330881811377477977338914564336738725464433803881861731584652225427361766576146051631439122060233703968040309554162427186404876829323299102599538848758155795894842426139187834070416819714659113569576238377932321814787950281746745266109020142759321395867854856392442938598616786601773640075710132976328593682157236777586348361036763219031581859705612053547888638431552118728969237881885428789869694767571761821197797172431276816536103813175216308995820761162164429711153148165131580533084889966874431772122840727352561140414443737184202270659037125246073161140988950087519936857527862626858160539415526762726220912252209906564020175012344512642298065023577094978838905806568018519793696632731810174946201543531038304129535121281238362222544192605296764570751355710446913173368515997574355053480457802275262335086131275702325400850733981176933695639968781430297766944345049631718439356769422901628764339614740295117888444492857669853119604472502758171996525937289766155655978294335988211468041836825510297795551242222859377218472249784544802080276939376312789020311828344473074382756640154341587732924893124726108164664725071347298411471682303705089638695810373998940329458837376236735388601954630211965604845231029070929845344252903504486917282189975187221108744802941542581526450971427732308947445158550041149825165314477305387191529030931346203631423456934141343258978879922354218826241484249674315469935952630225140119628033870042937148966777239375221014124659985608115719810062023300094208634558091425301815550567104386818376289862762476270241585299370387095692747845000902135334552526796378207105994248066257629741338120825076408018029344712376381238112480553121282245111809455397664204883812497669290206513246373593719845255146817197519500709535064766844150304039050704140746389833086528623418850022549015831018862969024893821231835649351229321455303815368713598826542015889554634999621955189583585345658667341250315266119757792691365558924816868429597428285577167698835675269079145963610485837575821088096884546915440549291624118621967965183646366241964731066001916755038433099383841022152760681504222825935321886433051122721344992242589748248955611857611351397710107569030200428165641484982133610241925542260093499647696364152847606588644936329147064481822959574662193653171892453426961654296028083356644714533844820261647481235504587351425457223532383881910146619053279083968307148238687500463598357039347393028913502541498510116319952120759562846872012067952354852501360351425404065768517741508578814789682856382714357051542304545000651130550829412034199594622834031242352271644824564839481481382395605182664408236986187200075723345924828849831185438526192512164497800896212509379564506085584795611802106507948771668790324198267376387470153784252667437433275378038712488817799023023478405740565994729913254862041132220102900047913194246417976089178500635589714657061524803483756359684918786502597134293522115435292557681913298756421759425146891243238710427089815598781461003516861604929802678116626336822919148452362109068700179542592746010482020630967083032332956981340699084486295975649709314819412597409444025715225880823405858476911229505007660723833132853114097506658531850249123854331363146696353110307131387939186182786946470199161979304171785331509953417594034049986912150423477536492218853793927251358403021446207522680852758576182023918246274970107394401851451680550387231426594516230885977049189424042227560208986417956338162706889584642775455956030216385197007757909548578655390124480465268042529852709151384949211031194932432966206302883241734558584157869679669128469843523479775850959992402329137591459668348801791467791781941898591607392334635457519430817606272071369283468973424719655564547013402326515879965640960285193249728050444884586743885480347387725057009234846579058147539266283843862309320959091810043936721241932076035055542087770260264148753115448555647179531636980897823173616026660853863063281916524010349763595472380778471323877720691493173892463557717336913708660997797386535874916393562491919918618151961366586728096522325140091341654886192962392691996191675766499103422526264648544959482761185127074971148242155035642277592797342785479855710894963999479658258541974420980195053653678818251639309921950783747261315671070881570585867869667705139827275579350866109947043666106347682069529913529201312596872748288502795015790553809560155686586887195270282070865378688162238570536021654428680623750365499711963065545218816292472482253132878765874722100240960105451175998846089666476205318699313293185849945988584290699923466377238939812808465647002599247681200636685940032531166426037378188818543979519538543233997627911525300763945171541499054113839312857676376373910272349093058540754270410656815110432400626964016489679210433354803673690281988349602239797110234651798537048453250444370302531922382277235378737824257816855255343052561760063921795721660147168164097200292134780408795088725977852470890976676649160928108866293698741072654347615162114125549604585046122119027293982860101751975183479741774569902025748964392433167400646150523755964653694506840070400532715150526185357786747498638830647227989977911949866121460242114922375569951328282728063146696294276601540831043411643064863828251661605120414283211041434561369439975405629612002621566273399639863079015228675503732123369503699395065730415766526429347395548533898730688035459759441596871106001094020746957035620415146378693886841498928588690375237147599359040267980175999409941351594435111990737087745907299918412137877140646549684363246200182523087347835687318141344388728573800086480811241053561273852824891472116910784149687858564086569951417784127224550258790677416903096293800411542546826069693450551238715573370428561144868700919709832131719286856004022398965237533501416641636249998367261970107443914002736895506462590775085732624784378031686761197730968422115227664873029639753081023775969615739142347580749314954122205206803336485059097750661213610386918116532850210961762326352713313303031437659126914552979246524505611322422071524699189933479274096108867444460081933724516978054544575107858320171228943681814164190468399301690144349236545659130066122032027052023653414503975597795318937535647060426588843017169642756951583672520910525369746434436157089174531395085410274748680301753140179129057453378541015849576276744861886060933352299649558335060935832705004694878182224965738627027931489436989742597709257186187964650723333980923816556478395742639625982075564262322025289057720304843426630980482770161118637202026732740467872548598698635601271617529953431640294113914137908046432196061688419078227722651126524882969698561706739565269583593447730034976523858478780278831745912167743488965351205876389676182479215893905627883158316742345494489638491891145333839159112069490220025310076739571822152863181502954790660734320465686762804030465762589391851460200337469034740118149165197314611370249850251937547108283875064051665688402955894829758972146731531834685821598937609259525152523819053259017473084167055948861535538815747176968522944918521419555178587213222128639415638492221703538131233292941920799690652371472990953004717242610207446603867301182949854431044475645161749122380469694950093035981426946535315484371687226788802799257226749838319430653156622323200490922675754028266724065068220801272015403375622078250559499746749172017449678952873437568995674254155906171820982714160522258410353919561275555450789384940687046242990042853517584267806489011553845388349394644200060358850852477603466892915517145217344551047613862430577805572444435154660400670089764470849184952672807352914885465199286235382283977196806910132798946263053749046508089640808453794646263432472653771662409398113376394201908307157883785441890255144239047054930167723831361390567286645294668870241369834557476693188257252771727313140352663053182547232661231587185784220789217955735242020573705396415538868320981448781523520161604071450855155832158215667573355484171595701726178894813567671044072469767124899729870819494744037163062321636420997714296956358592231201650746707329452895526773595908485596917914627667519328054455140215588269891465399404334179488449968220118381648652678303034068600640025106457559368350933449527115077095190829016540905640337823307518018931381906815031026733617152615005781094042535602172319112353611026513432948733425924923483420905739598427408928660668884770343333452982800042467964854089045121561748459950252649359577994359628839800592054241450014082922672420828283723732502431258597095407678413660970643879221935652073154678857890513993101569290386642364399471701641770067905941448903476713520447812822402597030292826752581304664159912419188136615418453235803857835511222779298545328744547584539033800151458640301699371517682781648102256797679646000594886914496125163759264105804514869076636139221982173804636229374613717421320889855034927111050545900207653680806959565908565175917254202124325576692479900393870688303590408280524404465648464858685038435454463745656334283759618283960916171622535583250020186106012934777742051140366790852488194602953739848466876577779245909672323648957116318502062765854031131172054254929397132488790245314116082016917704976224039568580342096480491652062155042356539554318992964804298085323234248653454651618708068987259520660901675821233331094618549679424755981007282286891186370476791282787723636804525362278775881730973563940300380860385524689753025297265250237473166923614112903423746208638417555970855888477652207076735825634427346115450495102453060583207724092516869732454854832213355840786682502477290869755899850299639255869861360524173650124810426061472065664264304209894814783126623098680982367951001234537641420851428533017750143927658206858779906942740479610673280901781760173815959966396981030533938116169413542570628022983975484595950705109394136992156290649542529431565914472347160138296202172807203789126164411712526688972124929974585617600426972666584745559850464432355537484025478047973552386842242650881918726463318477390973740509785055775772980167167796661628952122357155599685573462993918417905166726286550571045380546081498471308336629859771344553930027128771121684526247953498400691593178638617322245502517223842386471993003815665758831167777000355071114752264864968318281529246815815008245695919162972883700702885857337895688345760455443330572825890988145601076511104257684243661010860677462840384260683471594793993662230986851917643865736329524313532476592270849381175622548260382727706971879573975092137820364228540156529595884944018001576183234531806468560898181265277648144037748543419145057300689428152716138542515938558488563862974086525478384795540642585398414011447744402400327245158999407532284277973082263832909317720750986541656207602028046916255670297507555252837468445004394670056220801333400600759636686320608897551063398896637169434369400677091682745015112245295171750131667598956051663306111746553283691320724732517762289945126334555377266812049239694749496466951675782874052684738606731218368137963704752376364430038608961394636572477228934480943758378663785079110968017862003684058775098903969344213966844247729746834364995398401557700297200216390494776137153617390240944657275899581561898192142289869118479644597451616249860527486289921071702460446680219957542521910590981629143508977943086662846121927935591996682603498909715449597378947343168018690974636973608308283200867742163784174343310729552910207624508918728634371069179618228495661565174873632757739592804568898171184039889293333186493037283926299550102182507511050312518698543235840500806499098426206358006250723207101405275454252503288294178196717659336925336459550529648066545888466392213818725104464422532325884940284483043807725523737867069142355697571628676679456886275236292576977755896791135901682471357108130931074467316086534391489576894704704618766903495777524399672429135227615216274593435068904510955626686855910410988639572656376308433380521626495233266335596535863827356187474817501053318134321854245057097341652089844175875053126529088882739894994826102564275222968007457150856227465387333110841815524398092799571079496347611391177156993657206250901090335038579902189304464742183528601675916572354710676184986197449054649972926509644903060400367870777887926399914140168159799795132491695359084465427223882950126228160601588763397792308612623333257548904076544951622158138045664491816737347646447823461443460369629213681824662053378243703946069423183439879856675074550469059828521168053130363754269434638571194007857442420067181887093809685749803885466499154743125593674175696563277183890519144565050761864003555957867576228834177783358319102081357121849929062940566127567066744616675600337215887211985711525164590113954264474288999736082048070316371452924421553144460768736040569801468054430578755172125620524683983810264551704608749950556525386604212151438939887324068547291636041513926782833105854983718831658970661835141369136658635846012103420355432067536678793679927947298129380466846079209061063944288345668947057102444910438737402943097904209663318568618260929930084570474368250404759373613224448434856110462963772367896677165812911650767627231954736658624468226014718774992546830164350621511402668614514199608701599065931883162048676461941484541640480565550919642149408393360697101236255301595498226525413433862903901276851200442925009156159848265323922592761759438981740143020385722319657947769184443913426372085392842483997966684159737065579307801026194520955010192266791383582072686510297258188946401612732275552491742067677605283130673542278601723810083106449262216414213160319484965064312833385550244452844578293968881480107341858718440562170943625696580532770468140477014619163624891637107026073545679863795950269193155087957230709167465119200044925293719813600779079385680697114417730636400440497977533288301792956744421086521839888357555107471153584506393659174610760947375440450774701128155026392021375109137654551585135743716229392919495528034607568760600972418609794519631889096937023568430708104183822403448220869196208146900829898326881538410133743139920474541658198664004322178974215499113360181768788777479009872524115414152517075665968460552716863825441636358939567216822395307813957210842441682107599276289324670274016707830788656349564702512683103376184195857261300188715737842250951286359341076269049121149050904946366043331483844641193006266932672706956185201727357181119514002260035559050533821806381819201281437941243241636836089994826681128612918866384856048606932520626356071260491970362384415143429721827836849494657365615662845729665695368516749003205770615954263897580784435546628312989712651988688391907970131333054922312077239396683371737809799594207391017897373264730731222945078568352746028664003418934711238540947288821580167812347955222920859411292404109114558440484008250087043110559666797267910823424569044162141355315611404059714968934241639720575376667179933717462433839096147719308250770216551919018511737015335959870707098492080325411508038587750040453734567467757839891367669421495899668345184168358150469982874629880805806564307449336954993095315163973207451408176810697417893238147012324029469191575474202710332191278732862499202240387902411281616743915993252622142907248734796785555871620466380192906058012880973400598169423504280634482156175267260126000307197157699984686408183536554552824617228249802513591808149942305349282519141912669474364077538522340881193180269846926756294512129043233333361562710485713179523418492625850218589776450935697761155757218090987233065497125688941502505588341200699504374020499068903540554516802297057266629648493171944294819476692053691828286928144299840979095968420747157191330053079925476623670557736009769368732277228837344453778572984434276221985942291956680871476272074929582044961794068361247081336136658341142731751048772366877649591388034557239350083358532663166730720495248322005389386814949732969502894169830956683363309749990220324210509734742212303834505238298322005025217371337780947514264351591939512841006241787837834050788956646085681594793050320829619567766096048734905403629311233015771799838827959125907905879867833327654659580317093162266637685924863520834313131413146921528451127698182123119911417154322428005102212743108215609307215135161215648753656684412236481368760192440886978382108148531105255521752108461745915531472613270197629849940997471765286230827299461536070888260952924222529525212080362215804620874207268336402397668791917082129622188114783261363015958027052652440099535857088981891351815678069627470290575822132647803303211587617250596629035202164117447341227163249050644227984973796155366474829437026850373135430415294830002543113977421360591555352716450693855971811848419185266782661694255333644637202992341647953156799416874554170606368117427171292531191929371826562428220397439275701291024428854495044075571249943937965237333755155778757820925477483063435066502260317526748058235547261312563253158311142457567472933791063561161698589296968057182438292356859512261339936020746035102612610257177941209115758591697129993431583510008399849358329854019597760025781494081774117900993040049202180906235922278986132338182921137552534512526967651370423037272501835997100199335633661933337564305483399918885564121060490551018117999986135091930391532276566992958308176423068585199675219834074162195312001076103190066743484578803588753525036611557903385299551356058108498820931031301112321869978704058819183833333273020351867038857468753854021344141158474674089950049867290311943487908887130841965574070721855836515666009356510867063915803958332976679050088123192306557770615695117987473193245845332399373906572015966574330852384851988495715223487493774989472791883173771839833536012946084663813955047291934001024061056336580659575029340841391248988370256242277182246796212062719867177537015128166506543909077938016822298966891271483597638263264699291586594385740933079023100275660192385442627724114565912612324151921503079513373217221422349932305948966901246064884713709955813404697696129078584308234591685695026143084329177722384540177800334739035617665617266471432634365268262283906141401102405138053234788916363542237785832283931211099648179438452860781429420150763194469686393601947692070918481781248937521122260974393699826996447700057447631611202141097362474460982123920465623705503806946768711743517302152402740120143921923075409228087026655606341123268140906654288664881429058212731710294971365290369708605587080132257539601498530252678206166900791288206216646923021320192850722073509982142955942924006761676116825892837476560594162892513324972245017252953672047668876357690797018418281950569791472326587726971717921854715175062184687984658284760342485375693721475860099249466866441898322007058388721384944829300874673412838006884660254119951715345544890119289117651543782029951461178239408052866743924476324883362790838111950241090880884569727108230729716209725415631903388910260641283047662489545497366321362464741556468783584504148901493744468160243799621376214377979117493889642602353882972269017090308900133542293516726778669928466224562671090048144831541387563137820122154201857510110345791587283396052342661133348463104981435447752924313435911905505015632737219943621249300158523855998613102698666250857428876141627327504478224558800738901103648788602515255570323624555099617002670919534601920651070169615355954356305885453683600856480993775241549151968100663362488427268669768812632218680396714085338694677194428646830150079683325762972101143649637220106941892502736948608520883052168546568601816355668988140382253345196683743247607647784042051930453448648338378274254019179087684830613824761940067307490414314624475767229277435573638976046079172050135197989250712725215649121897811252887100670044481379100743304670130131734187957710471253629843843525235972617239696558862675294724755166828805721816033645766295358006594047432294494889949339286458606339915557982922431783695941508858753876175325329721544305795384266432000251682421916504364591754171387840132607262134765376354749193139369068859783085061323253515010534293858149989507254798974534588549618413666923075514562628825697439259486615294961712878800764469282210750757231775207491032249389969430930754300629633235372983095063751410428772538106746161690529389181959641725416970057533417988444031666831863369558194848242612887802354386193786765154840108748178489195338131266581972356990352205827398340502753650466683417845212453621519853656044905472804149124651808826579446132956806693559951229437168559701832217267321849376314896257866511334034382484442899945911836449628061372844983089574221035120643272662837860050645874102241336863577687475774446267807914505294505437131334078777438633698562718154045809676664452715088470396983179668761313337861200021950902362189439485332802024971537464597160580964461858031113397794332885266987864124609001322190174239204427725223135660412191222295476143788847731465039308927734861760951039315780291829915912291892232863270174817274914268640162186527383988303629167389622911330394790718202212961794219466279926952179004359465813105545021926870546437680423235852068413574355215002636829008754196137722256653036552258178727841696777154383059027050409613230608435446272594577816040884936117156375891728059258799842913163017578717424826747845658094203803931020882265726759168006567123054157182760392247219190581286200845490797762284376056184378276571633066437129603729274631883519111443865284953328270131505362176466595216232626089106736266440819043077135283380011427602446136788534477482274102854496929960004070241014467247377217916963220959052135455657016548766799359927677871998743619247586019233650062666384978471372802786273383956049307729101881964208688389592573579190510346126368942052137093940424635093388191084641232363604933102674375132029669015958694633570403131654869488034926037201546347563562926463422409682593613353968223702870357745974281731671704187257178299508553036770713580081832742768997513772655945402290710594064520117168802233107575284596802547584077834962114521487253677020672508217347374521461053993576710392712762549825442983173894201229900657798269589043877036801478936213592154821830755670478763419646225719646726560052889916345656462580912094864911655548332427007183467833214682770622084096853994257243269064317315697201492168726344940812467630392619086241359770760081286253402220113162263102490223723590371674369918682852512085606519663914244184224983235399326668886008244845356673081363745477556452072840860855308368397802541273841563532433236067616338032166196537342494712825638997405093218575005904983809495233477544976512770421800949030495788640141552683442587191414577240866664396225833320285054273024203886219958596787166441034523215183188588720150005057928216706216063695016468679060041629502878851095384902993870334239085898178448092328037513728103276482525989145183975805553611653714235819470715645511216383228278205765784247040246746796285491217551275402704646649375215795025008584616178767411138979976315993203909597354326990664782658106419146441346192517395693197281689100853472063561427270821464083209122524617618992686497152838644926118419160840350920608514012235156249057449820407269474165919809569805945353743414454189067301389809182220362919536834107188093018730862514451297217978920733474958019577241102927724564478897558136737477045952922863197520655955626758294712022583801868909389903681084009067702683908747268634163930620459785232018463125029403981696825443483922917596260423679643888624397777586896537600063290988575585931821003251608661655126862118951288995645151513240667529063969275591021366742965010407325667572698460474171970559876496758343047420607225200322629690857136028610377473110093945681080655049309399221463006607903776619155797778758546903278320245461881044037644149911520091839931179795369889543987452081514749762646740178253260435787940094026200783172827815185949237030223281348700405179629687976603370626953383337902949168785207283697994918852931499363313543995809048377588122079839400166098184872351918439920458501491222882841961258688783847184617423730681485028700552262051911719673911462725389340546750129593125781615187240634193072432961751801883386570135730283851312728293293067661113677955719308341413324449218547046823827070510279149358213391760171181309130916163781028601993771030464585070958496214256097649497656035735824372031176892798060539107581382411661416061281703360785973135092008812586824984416208001097456936488419234148064751102622034502902914176148032625553754863281556068728859995278504346909700085548266436816370279154306012031699584326346032629585923681617014650421703237610113143441864452566971578044361346621406414850226670505845777996857768039283303327079490384284534083425054416244903954339123396744205601860081760694007612765944857892659459811122394337131191276273750236313453104163192696877180109658912592712084278664586153630301743355110595164533241410609299785839592160631629197832639925427442398726973090379734621410269573035140981710336118848828382004364311923175581006126018896198955422585771733032950606237691465439976493483109236233156393590128469219662122253732798998140868600315701432924127551601870397798046726387971297943520423916885347906052197511914824828567998849882697545713462448085923177066959822786765522626241104351222488828121146978523841454683358589644821928867496049421435778360186049372356921649625036189796953802662962132156942157128600893148381686168719460130537186792605183385326809726497774146926105375703838285946468405869155005600196031036690107297950483158622127703378942153222750622397941497444981682017800240688178503444195882658792871009242437584051962052906011428009746112690387052638066190675261212061131277588536113886316440292852040576998958510514429378520438895180323323630143235717532521968005622464421281049894778341180035041927468813797295895330044672298813293195986798293186262777970228829971705419910152143800991692382531461956631563116644671785755462968141309047029497014545027450285277339344507803673138690516573171042884790611741401924611121400692850227809282671373298961005546004228799964919175212847520469217226150524628567124913047976346839232702240075691581233812732689923930539024360496096857396158915556702963178658033479866233753220516360598611681199361362293605925690598347005201618127212840401165346311134003754558058772881035565953383394831378109284753140767712106173966167157889511744810786978230517789847741934355863690051066064993978597921999082738020241273093898051928362263168984458309006006049335431375267034018445544084407033791287998713347453036272748771060567516337522927208532297229615394036793810111120384465002293056408197505245900576889841409980606887446982876786164124671874465292478719832163982627209065885157797013214447900109028088968434242393315376256329732336560293691573205191024007488805222082679948778009640261819847196260844113408990152106449052460289607408552690506366361308073542384253086431597656224451147155706650928787321372737096395216271220345137170310515661438274373753087887409806436426007471866929509922933368256640203042898429626154450672304417926295790857057174973012934164026572854560133149188247225231768555871832058195245719741092996610792753978216070311446512842431007578433714008590511477740776949084453837827371905587058736423530918602376283936280984926750215030936820292053521838707914658389577675681631808263422956915026083378458445860835967419098808225252982554604793377318974023801174464931601292309512620058214172826791011165448431125804311640025085326195637031159144779481554316482099072379795752281012648663908323972823243923327387945643211509960907516705780273101162734256100634277642943065320466164719654385987626710454175766076970965981678951495316330058713789309353942870648781999314884875208614002761746334110543505471436748358507385702763098070396522745575574764216949686007458590453635334836174009429231455312671940344329810620065026588906500069647926748272208006138467903212776286431353506184530479305053657594181832770386985892952508551923845291228841646632104882916495983000087694564938115443442193225953275520277290481007106726996087531319335466004604759918681979515305156975225823952474889873694131231333000158886166546954139860285757314334794041447909685015836500044724268879584080126334521750956128048547083118165161814455973162149405629286464035432755353668091242726774200909145363318322541238306540518775480325651541683711573272257767783771424861660222013679525438366361428504500990233904157705585525447958676040252613807198333280892875610904433571008392506836668534402011836495588655976069548594370175270382776470499865451144344023036441924356270689799240792989244961171180891232780568905468344672590583588536337253117663785424869142665245268930976571007125598358207641351897161532555774473869856646324772996245057082046019368130653348185509530689341676700675680177657347116399545191963088231966431474630106593045874575985762693258391124586664661033851013617070672958421886418566735832265396131539129074753750976777936592425458505640514929997604714620004697139048477622675217051463101488737069438949009586691749253275798417582575364004702013864262704766477901536586417163809852092153004736077372666197002886355073085876590709198329834801704387436675090828404013686495630527176210178906155442187014997136385169577533864871111502208667240473788560774866075022707535498463675026312143836311055350655945306543847006270296883242758720095668217061082171294938869422085417566169602078343224254794266287770596341120833372889583899243959019135709799838551578835506218624764477718081089466185889955724560983418571290809785221398228835198961083657455663069220773032469704634764454048780109413915644187947266866511453087125753978799471734111361480557823688290522341292926325447722006511128908007346727453589187726533973038143523196529567723300393458052565217052671148072878820102276258541947040619884537579546237296480406896579441254769801988902973769523823792350306702237289408619446015604302342882367941576346558950457895493728881967910835530263101001039505425137159693077953433287559128345210903264034787560318802281745624826746039358009900285810658109554867515927384653518816180390747785632360486413094881887697554835294156661645959315444749198803393809495546466104326411783894193220212554209584752330741568562945908839544448912264278724181934034766602494406466306485912749589237298249495973949207325781565285520581946200575532940706977143883808180539545224394144496686673704688464969323906103614986759413050927539571131045789541660197023947484170756967807020688929803546593022288859574155164391656007537605322594591467465874273673503027271240674057260179404392502640491037385024755153864914798103505184183330317019531459615045371336102625675907209509289377348612912829178518587459033084707490233267544904979267058668663038377308639392095379425125819207282785276802526478340096432036683257689655703756801788173596129690276237289934889936354320395931554151522757307435916566627390366005562637243671674106836991014120599488688555249411337115364777686174591747793477377285647201451583380573067246311506986087187796546589760934043728021823340090251727450610960702579782481772203724506659509680623858525278091316806360602162058164881159462115331140469290586607945892258336097590665853133786289738391338627048941903181284488719491029019233379417889068410039376042107753547097177952514917209018130728506507161898661831047582749875781351773494390952821420094629746153295007899342127431194329408533673695950430283582469615598962672563315028647340708832307362412533582909279974604374968453964422911763933943786594217581572621261789448448701622088059351766772405236456709769731987649206430870514146532873875362338740787190551558325741316952156848215564903627148826521099772915726881530359765614077555430957951998035945138629386683632525080523593322911671294105980522614717455004740715180500485852782399008492288339380170565918694126840793807743128382490367832513275179147445815471690429355736891834128915700857355789100459075670385642175083676391831023109031821386689259926230871970864626633629694552811665229255025622466235101897157925422467470873848078805029576932823916546307835135051290646310491021958340228609180600724910453939288047484203237690638986304967969206892377372779667272359254976706489244285283400068696991494797221166038273710609568526682934708793216216660672774741569848523274407941280364014342627067953459723529980472429872799281123584519356267443618929629910988718236578576603821250419017908473839985563466910435351585792955051765414885152730106769364874494426816202173609118744995370701559694058756926829035920385870348369515063352274087356734989988245983660336492912999942447981446256899998451692565391540530616095288981344119279986004579028095380705999257192335030353989661989160243008049318136813273975158560691193237961754175266846650702345467848104483034360382881175240508660962636184614977899907441638251386886014737240911035347210775940650075981465824417007443001773846159445970364344897299981453224347277449872900972137954954922434353975771189968174354569349944772345663078312199810970102616669378537970181317478409261582745965308615815846995770332755277327298409326634452814922964089723179352361392738138142198985558144257461521332039724983145183407233852522374672199606124675327264180732072010510204026561174245084117318076870482131529845615334353767944994287024928651189096058217151693314763879685452390676348788460222027941308816078409020677170259089793248457822791175608507602709699498850798507916626282457282698557916284804327037448760084027506296784748449821004782321166577970383589322635564058755713537825661404109906355481195445211514319855736394786230320337413382918132147324668756462675113490629387224642921735587809744643858776834312091614363876359689529366795717595304142361724368577202441868148349788664409852771271372704816777805423726070130487554821341756328049675525491829837673270047106315980891709440126535528757748006577359948076426487081453533171570613572288285677301295898870747202649126934688764114224085796030860981814708940843853965158975447419351056909182149526666211197949777096983694523928344869470743320110241672271725140780151502569804774740663575794097922375742230964112429637938331963547177392308523602017159570243011060286183062535282846093559263099297293952642531194964180376488221715526114688153851054384688930495641890257803321640846132306624723445848557630646139009230301267618831506590026604184085147066592589226239260429577909744285868509981487315619514859477917632242365213808869673595574222425684225829649321702982630978015198772144240720872998194588257205458936296730451586697986909095381243797189143770994097097301910501073797940387033119003541790472517918281235746287909273164586804070761405812912589137210198603175264372669289239503984414703024359318959123608710135066667531858312183009687135482039678693162015271885119524036603809377008028265666451339786029056200826209292848606085402788487950616949018767521842037325859197755023525097379796408483762769576972410177918715213915421358697240067018246663848193988762931011677390554860408366814724630032539679343107059966062234615463853672391407507835215787440558018951634149793252022344089644779586288132515028298740164637787655751801859207319989847858251682638251136424238091562628166359965061186854932374555813522319092863212422473938132640884616132095477852736097243334673597074400679432731827059888144789164659378145540767527905566397923458634843404972747353928609175672712763296098298272152400278534818439065055633549552520064519630938678342134218473753412016525954640768343490740964614386888860676431603117863929702566068937018899318296949906129138527059923664031975550285501610176944808038947142033768925100142844835295660567212442557384331967899991888732675961258591973189642663707259772681216481059010737837811119428424238727933479965235084210559526660170056478204881411934633742960564804756241411899763420406019428619734774056120477920474713018721374312514554468461000304000213885192937910066937380129905574732457181381052114659474726859424102842224840155347602455272921874272784763735839002735339687957179007297447802660289979459537537932799266604200705763550400387955639557894605434963840978777219228931288461823244176290345524675416166865597478594987937893755946627813403878526355026895762802090322237711649538133917465433590748665269083242570407757506341394289104660271285595057633923453794296070853379276705303351538332953824918464279254393405471374527804728458882030490170007304444607011246195747604658628767235825908606255850743614266315805401236887796280700407422678218938703484141851263571946561755859098464249768524962861645402207963027327364988517733818267525462109611517055188357382375562957126203224173034746923049843622750312893415555509821067042487474838553298955430572798562894647234932800397681049552368203686924573955008515813199557957458769912415983898997388666861484186440765510434823012776387842190324159890327815849137513446121581864547689135116517058136852220237728316944444673599155415127802738321069208623742451476527891764240315167911918395335492272800849084636254670563083226883802927681917407145244865462775435563725858322424526482808538328981617848712862828284136283927126801145708691019517969955432247218189359957145364127997331255359442125939360487908138487865654061842918496863687525270622508721977234104529815879752968042951213341871922451842111594659833024848180402036120620030202906093969882581724911888890310376798378154320772766189159143811822623592607103175652264955147544156346879179963473961152480631846437689761688421114348672696357154785361098852135565335019515890040676009175354524081854405716473913133767978574386645602748222441344171905796316777535881129778059661985694586717460820962313851878270528529342015597334448012839117249576388756135481757781122979810021148486844339620725387218356985520490942986648029854956417684036250834256036705657224949118787565949997697862587023412307997672425883380553878690956198917535919782962336728987188692979712780167229927230420457111244418377658461716116617052700344801987835937921665382342779943578075704784742271468068675533941858768319917937029181027895574822054563019412606238559440537102482555920594270879970217999326333983138815306391113018461416230024180681653893635728846041569681714677658086862157739921301072565903163454332546309300703667423067846426417598841979238511093441016644866757465104814883979045158315463860337745772914813876451895727465735520402848097540967943100956920015999051295205593108079172622953003307743574435833031637051310858509154903612602817300967635545172534241369131088006277165462197549866438681094732692765213312023346786376611509539576730965336649922732574311182289917461433735065088622861072871932967117918619822534692996310082267248186538123401431613040190673930565802045910145939333337564084324761096579724755146109584223367251241594647330586273662373420805958590951315418231968449485247829605880171666471498979143113653551544521751507065301309017293138738279377145806655154936430390562579692178503666610537504458523429602438469563302119733448059202227318005879711920664711936794033477133552484133197429015557793615396191152705090475738695674019992602565061718896606829842260102193998516284456944725759742617408597268348218288720053669679418248896198362003361886245216449073949762360815623946860962689350803018564244331969379430226148569568376049875208144314287095814405264526843594841391387916895816043597475431612693131823648605372585024055571615328758306609037147346774159346416151115681757376794584031178516624562655823522952412805215840163001373824712176934218203183818309112124310173622032563555168196308195668721053024248815095757212448497449818791538320819050298852981012917333135277885887622870043482300489282720708195662456816899956481348980811670961425969979654188929378763198935047761199085736525772666548696818881813147477312586941057995846396397719360358510812698473962790218754277221931169885751487652113676862639614850476177887056189874285087724846654533802967063449014757588541683612354269075471963269218049991042458945327723610072848868636389046319863126180101096822871359291406388115088195079985508017288310530535819227552689613845752575105578230464334819678942558296814700131632872252306599560914480456715112981412795283484353068078556066228618683946498589410092295603662131177845853944625852618060459773702630122101138329714487656917360483561443391822295154194910593629491125827237397201694735630618804143095092843568206716933068574954298328773361732172744888690536372004200386701826644368817778878838263562159559728538584785017263991763522715871660516838201296364887880279913605267975702427570113408068866869832919453745731250468344980951175317576320248683992809832326349662170572930459074727329660521325074080384460823106763072153544616210314588633745223337989003866849979317285574165308308107592967000522118157193705858072137917384105262469560167912048915673664131171315663113891321273773363231171673144042209601180620828115993783267056891944275494862722490100774601931436165252284608227657103897082924164876736921968594658993421492107667810936190305140330238713713520472042998200910644768195809277227374711386735941230783946765146411801686678273506201068934279506964937868654645879426126033505341346797148471993497909597082668036291945670958199010922556117624680732843090256075943390033026578650998062260612105464221305136347114255541406065852534641840579682942434877127664038320357506106882711107308681076554371959059486684691409095176796410518691813704418196047971702369942781706984912559694145008758153791402363240418744343127693666024503298454159929157376220257937120095294543446719408949224346775026931127305052342209722067979006872200725539639052021607950944491877456464021715387939892168333011233876688432440222060928187957585673177176990179336475594273596275728688178427699650787670615821400614382296795610048341418655687379084821159258702256452951746488121713313862652820401851473386507251128189834952803657734343144651632716502560023883419709710063207975562744964674912416060834247351384003934175301278884518736254820734262766573246466918412565832663009120924051108955763002231075441363107475770069157731932876112442738958802328065498357275823335638483031663000579059855785069255183066408018479077004661925960909518306156429119422635804253596123638454613047673988155253823561727179186350604699433313958664062444079142814629536288114758697167784335090557916151631387562518543578232765911837659264658620577850516622775381575886473776215795117434168984360493004878304480593195077031463280899624860934360852200481392915597393265220385093008527880276851119058485284211203606597512541466884573095725576525816517566538729133248554792893233905455529266115112884484526405801509195055513439267279891667055262715671645983542101812421923804983127523432558204746358843815248400091793332982228522895561302779092026907397060931638176931582630324444111590572572189295748954587730341407204254921830371915257857220519955677298229213994328358312798619324240060805918577646994937079249659887638307054402629337822756127630086199251363277049639111908909080074634914066131975237525425359649494971447294923980506557332855210444710670205057024165268482439038126126494658759724285940663664668383703647055228024794469618526973965312759248248941750561095819707075503389487566644716728903899594849220274546705842533037392269579690461964143508987017662904606536665992061885326438829822604045579621609216413113991735601598307219849508360895962324600273596229537557242212307319541594461456128516166180545770643261628754719392538430806627198812800956113990125592517417054739155396834757454270553498938515047790080395947578516045704086775364504696903945307547566756776701283584709183619541908991278354461082697383123200372111928852827313103571137500192830849736179244125646532199631869589979016745809909417524469234893801731841655229680873201548773585668227317881348314720588687261307324390285127985739873111646917666961041238872975827485052718177076346710783670778497360002697061645187132785738871140669563543956067002609343727044882650808098531150336023485869468696402528346129209723591113808372684051103667227663586565850425599576815528553395802885947786429084656071431587765742558449421227400725925257615222360371809378087607757392246613866750243209144556655447230790207665327871758049872587790264773219602702028700912655000379017548782033821394462329911724815421971049307652839094463539405513765269839488962937048036644505580977603132910923251577801737194466909894778509467845510242467930018871858441378551892123138398981097384691056075946871125836972163548267634925485490407918879154619274051322099051759073665211391687064628915953355965610599702136215855464070643224468062779400168700584990784940739794727861669238811598811084063401412681924679641008398801536428846703650758794624133114845791057197604502067985805201590753539261710528011378323889922823267273702919577848010570913602408481259892391079082540139595346443858296071087960126554441145628069373918199936422922983969783805413203005940285260729028048250943158966753036043345304528005708715632851296925008656099098487926616931877287795909541766846299600020571629925008586866892667301215112108070081647893936677891976562695487860863044543220589253439127564028588950120985278738520310088101345037363072825076694224553958330562191324017603587973549501834697958945412229057899108197978283224045290782682029928570066993915332446596638130930023141856631675802005626385476013457356180112878632535610492176534711271229338912561384399709252068102225972364568564875901558217168683150123602004601319059827857591415252290203009607984139526490049124626087413444987614953707551630912841652964724184058359576746265159833826946362369792192308291375205978285016792762709550488117679196617351402887377723355885132978468981763768465045595720308887297142634576146085837773210991311208333080377800817461241741629277119444178544902756453397871046181667633392145182074479383281461375331319319970737568232703944047420006760092533150648725242320886933512383405740558847473972718573708704595351082511433092312526176654288982106325735855643946945030566364988004216254318553417191258460041622937278462879080876763956800427742093673301730114617938045177275570534125467327911043663084370501785727057969541046953058239491011710930465776644009508044227758179521452639152322995394125481148537633682693963655609016500028985401080756832595218583841674274078521849601392940230135718489471530876735520793712117448304461750835680792512958836176517320722598313956325648919536625464082095045651771652659467163946752489841479135903541158278568142735421329742627482754826453678344447542458352245522346978686303080892195144053158340911987675251235711442369117409300444564337334969665430227655095571673410940262385608713512187419232216454314296488510135045556965830300794027995176071329148665527952282134793986214025560341430468042183983071130496386916196847488227298996035451914133475432949378128225827230352601551748571346298943648231790212149608361689146348394676537735817805044406223892811534310939896627518558897720193455669904695194646623876906243809223089565994354950991095139352993328324767916546615435910750339290146757206946707704422929033853234263779647101955117923186689109365314750001479489885560089063142080313070147232832334495813939287201982667737985340530713214734544660806518534486378478628378237371597856706246645838050930286436791145095482636197366086240465205831369936826119714649535319766160200462786287954993070955541008683268940966599944605983786647948701355633605949938388798905272473937857981971391941659085892533717041238924223006314276368195546356412199809579424621362647352734979101690141258292108475486001915720586891000593434149646161685347680854807765384943493658107785574349105752773017335003273427370250924338284457335253430013301008409924744075693067365395283308846555585604775350977995125821899983215557413520250572819284497603085411725339360850429479098373000091277179153635848413286628713733334474222764800081681495903306659628236349923165561952074091282108693789736844750483343827486800349822897594332815223572970698146080845333827538351630245041874515811664812496957907863291723030710670674358860704650749032536563635452936060436474686581902965794084160847719774782671629045021805850756047088401968856337690107638896804961952422640405637012392460963729769270922337832269370739213555643219201705425054322570824882065645141106433034807600421807943236450823764761471270792002464147952265354707973041155222109436348579995274750715379180615872091956048027720959934785391602228612284346862361905388511776143767207833277400564448613082782288906812819211985511225371648557978013337414471002083733811151591838012296092486355166733579552751309060949016070486295092394973329947541467162171080578759029111016566290625047936889864702415227280624121036286252984968655046647639914923829805190396684169260527259785049053044759226226262611995640629275473672411635098987100273448230037700729132221325897874799304796332447345884902839910389768978959321840334198271485271547791281699829297380252639106519599904107733602427411971150050039407952628665548495311275614706229613465182787262350488581306279036758836560905057592391498367373076447900229135473889395267217016503551643207217437977763707323184162183789387830976072188403528496254711712645315532270825668605918253377596430875931697800004602802767248707728490980912374936098517257032702119802553104198669133690837284551626497846369489782614418007559119283719083379041248441618410724893864971825592119765049273968449560144485578677323065049862018849006783939634627477397339006830937377879271372194328124771326223050965201159445932933113971176689274977536910162316685281322766590534898002547577242554242495797618886281481785439825870756489233299339284325770987528068246472926555583438098225444287030479761997441500706611587873747465077089123780799701090107754233617823831945365854303884769578474359405430736441393498634166471737623317538137691048509062733108130152640487375378511785370164344794301236594921792378522298947171577648882843832678575611805082234104286449804611134425747583450542775548908075243046969523318801298636427669133484902545629582733184509611285790607169144598399219496190486296283137948902063206116858214648554898846819858000737427824365766771509206885161372795774143897819281650298718688210563835399066833403720759659732997130127600464068616881399338079488970708211509883519552835733369878292138290472794100113595965065642421411109962473481210834343717470985993962743238395978579776174064565543863261187424019906389956269171438060447870017622637410201446048011808906022704434499044650651362688778299485079815233834179332965007638520872941817323915264794439516513932928815877409566801404836725240106792987624238950811432747252164662139025502230590447169678842037895912025123317566989091210193670671703269455475042376003292505544858659851210154640404449154705163905141307582922608191638905451275700159282067213763469955242878172494781215216810461227474531962471469684676661277260344907980546074512473271086983056733969062850575532699153744789200477662431302320486160651125886945788439138157821074327510278823064920256596497258020058123541181259559512839999900868255451362440374169268793949125941795367953570661662216572230917049676687392899156681580899358943103212708448230377153344886178702740759624990648689186749803605399683010882649766767926955266829572087147417743685810103787639424723402720458340957679668428797567220049100357178938534532337191861863778879698313642920858524253431887953424202017041499181503260790321094900153065489593621635690080235742711344386222375691876031690910113066741983242816593069240470309815739240333282368620379271915285818995929723449564878481628460800576618256261389780934086081650795041456767786549935679955613200844858281877629729246972362490237058310530502597848576615085052619845375299134446745196928089450619324658532940184353454403807134804471128267487952598647442462945302174009709841116222055988245077184232315460820858936112338789138441646253258533992318848650968717772837383282928824761998316552280274597933556635396210893603242747448468814714378200924795507804064966446611472337268424111215065394966081019662410811371197129591543301452957388286566606221003556992341105120720779779240492340902363571355813668814773994222134329462259212697062353907665117019490539714487282862042730652525553536190309892914329939845640037235291408223816570037511718992477211357910638031155828388798328697635385627255037943144469248519330065943062557686671839945705098930320942126892944446653761708549964455872601622757760908841951305799491661373898925607065698888712148385840977910988694177248236111039874947490843647550671056572835064544589522278344540611820145719724415401569456071065611163866368515621642216063072084696318432405728762206824683365385438864164539314570646201923172504760375576893412889546817450926825201167055792183494575475346981154944386080797171327896268132462694751532777688861248410394857668773593187727651595326873557423281150165415437278869850912263800142349042256099318338288824905788295449920404856677013443094446892971721878447378744181977219179051957022133952737459397717113498716061528411465760395455092015418973243962143573407260206527999448670119809135613799086010843775576334269138426099169140998466061014375910116528663573277906397343057610452289927314766028612038171132196803154356557850665833784149864525885876836188391620180957954311259303027620158756031534945939410917115637163860411084263694782336389779277489427689965611385924282082677342744741018867644979388389249066150290931476932849936481390256252851063327422427815899301599585135198568421869699357739430653471389024727843482957041459249924421230720061314283011412322847459102820978210970006210887553158357213676526216407472049508939208701347507915103554963952895659158324903827672550554986789730036598974443013661901883055261899442206300897820428159322415311001790097799593731675703541797499559428143276542852359942255077188081170159174167645983605329409954136004329162944288618124554566519839042494692564804943689529441952905043951292852465770226384613935727041574597509520414392761453922036309184064761280458662329107643555853520080649205557607096586516421703387594160346703857189510994588237914065315001773247527312937951199377755306614743638933149574979605553201534148210184785833695506395455992523019122118768755699872557076902239498382775917460896083228375799674137527136349625546163274139146419904930968337632503026569383033458311832723892981408777246492673661720596583621225508463986625329366797888967735559473405829197039725544935182446411761507125173792380084221512657434814738832724203358308048466126755415107156595403013032791593106880326337685484275943606855521078988182708315005068937623940625562375222768695403522657334915611402045986032592276976009100577487163667868575553104399669629639672598221182063761539051021190593835702179891039270328841347010086560533134476999221417544439195547368895960139332469038824204109348372271593632500279732978745186630735427716075100998777110438340325608220211465872906728503874128012198533227998505692030906871501492876211548716430416852729702491366455771042042093087323953658787861017847773016609715595227772491356912369669529297243595394126952081399115769250577280913470040476112323007464190222896893779721742274353686352851787510459072904567755563001994822827916639186525371226685132861085113218002801578166886384435415341335068151549829468425323078189365476507072392107495625296721214892195924349969718688783760302588709918992863810907360082324865358353665301509200011370567474591030517380669664682322163973070981170090404625928068712542953383699348487342584334394245705452185027930534231639423072327556246755902933851534616215901184172706745187888140313197169631676504011384635275316852666208457861023140029146360934221682849768901042083168965840702186092341317669172353282855382719040908097782961262053139683564947783678597356644453388848518935412877746476863887927123433670946574244420111648424938951089155482102433827698401674832368659251569933564621466348200681626415657430777272604126915716104584351841377783012357607068905508034591932319020730750758822819299213589570466656706627831744540325698708170346358328532216908076289521142922223491059635609180672680895967957718007906550886419791708590969343637174268695010179667371664318193862661965435142711337860104379376106050748433987167367434085865171292017368956660356333655005542288149484575602109108620046860229116818082163713444007510116633188457007826375435355959083835026738799059536569123620474939580608172768798478625080631635517935120965687999121026336297844215201224467781914409920636462687590355053163154152103196042133329217630625668035279449153617166940579309487508180520745576981631229801091973029963093879868714927266719225400883403722355719962866625864778335756912887347315928597026715887695093518106892136963480485668858748944909921709218739659706949452188292103536984124035473947550627034858877244229194974720635550575900375559741727823424656888832629682314920679002527954148503097688602658771762358479026136874338463483759683597498599838392260254134510328777182221201551479079472410527035802581164336953967940162536049139298667671946171596958722924727039596169458700409389297330771638781864823289943404778101544698039820932138152703023285961465987574970319519186321571679249321719092317752331081377707105087520251081350579116384228374644227614204356498467266715063433894477300392908472998060503769395269782905309600772603092236854468849181828120240159544314848120788021719979472887318614087553940213019355234784686091554995829164579292300775623119786780189520454628295178481155279742053027200784291752710359014840243349080067008529966862609645103826926190770674065057547771805130619476370817344383404866505106278628912660942380573527753412482034504479483649552497890924124601555029187639565176727012826883159143405508030735215927550069810726520962059437064000853376897896105514953775884507254164075876484227032444474665884447271542020720067490570665187585548788317789775727614687489851346895467321658277570266975390196208346159578531413430577945699563969367197308985205104284099851417348635840564207981426400864746428349782440246349919007529500628822081656431725991134310469359169791893216480400020870731104386913191163590446890960701049768395502701739451821504755954044407040606133377249948669325574753652788280188634653052156404813232721254656327496927059581301030157294371687206031673452796593652585401269319739279863971497229843439783713526064161064663168680555758332156605353231907725333849348829668912115929811156074640953240497977603132276103359577205955887747644764515498256758446281832239516267591200433553118055706498874750082565860744375801742530529686129064561746755702072952219351668662027135457997380760650686303739871651456702665416754585052493293931809671936352640274339335076472443060111562788862698343484382528578769801145847065641192543752304342742217567502752251545283563585876822767310710838791632255822572140877635204903270148841552660478627778604723016829870475394330185192171995150142490749431709628143872997914009620946801700718423374116635531080164507389116315574324361897962105298500921108897887565310265075946794203896267659051521124148936082672005082947155316085001694776155503161670575936542040562424194607467092679791016360682623499548967378063575226151210394207705333714011296579616009690178721702073578252753081465054764693446416705499574001956301649430264537905842944736490260559734927070361308006631738953403536690506366277413144178546513839431022140284161138554690375742031572752493731757840482998504430065996528138859319178075366053727297835349708100141284737905419849146740085788142133535095389517091974428154233021727403337132334738240673913805595786888187944185177264838555994522581766567510963322449146401964302682426913264218576054085220565924751477909770346583945128672861161471324098789844698308382028129525800239396853718711312833583567620881908784837853433053587953420492056995493139616341216134509535706382474280997763406078324794081271643293535711026558304557974766864859869063603703588572870155334616017421768639369539416095007800035991132797700530584212989746846311362087714329925995126017561090437997499624412209440121653132618741716643885394823057221549133231889526828608658061001665540166633455484176085798024907008519881655943023381037492156951787822926100427326335065647836819154317526066914242669035180171435660518334915570068030998196319325310837504390604921937025838246932239617590981589560427540497956873404231941542638518402654321333786700583818333220120299147224029573841600255626988185965397878035789838687804091486080524684900096709890815074936543522979994258807555335551115501669389651432977117028417393129567831686305512359457925263448236192878834962222953521566037300740594836761991866539680326933157074290390630357944239486266901659023287901602380206797519389340917102178084444412193335210324273666636665013583474889342227826391664172942323236680644209258064356681195435160568311244123206877561591431112096449337589663930368440766420122525056739718800394876270698057434176758203239627676733320475916161400361364939140527805246606299601752459054714708174423251198539145512183136380471634852418008120094689721468265945038236500443842029346190945457245395943012958410690099542087345628727474469573037397170924069930926188586576297259572494909755516007578574480435095399459092477598458020924678829481632917747726775288978581430722751018169393291212286364334359325790461357538538953713576152310544981391247333889225277662554346464539361526723052307130539321189930202788749267616239706040007298246508104500716168976928489904150478615654943227902393227805430074279770448151567126379444014078504812580789690024124224781085219524290805991967062845886998961188064654507585451131550433867073162511077385477192343826434387640604240250461759817441774238603005879914390971254539367781315612595670275710160268281392155572495923038285415297295196472722319834892705380796720504776589226226130502349782461882797668168274688830744062816007990242729556304390411794663377727263719269834258193935091775459540491517935620676702398922658271234653974228801022046279413201251926837261393478239008103327365295904091203191165366724683503277716410086006648007248319381394344914196910504005765825371911663701895229376294792564230709921255348066886183242992877554681462815857465066690605063264639490964424769455551058491853125716308151374869180225328605217646659486715044258972531125329415336374241200980602571065030353385123783139194911908848082187995180404481312081878269022462587887526609775875959800366318436031660049728340934376007738044620711582076208462297943996283280225405514852463939847334196610577612591389232480367754225700730187310130369519963273166020889331934425354691750886622137404622789013005057491977513526063631050734385614822010581130802919922730085783016741759798996589339125497432010131061299058714184424717868809878576854433906924133210249815963526980806681807138755192052996057596071201442903500718573509240959287610678346923053362054992334349475943331298763794810169296464470748628933180860213950638810797496807983225179793600679399047601995089772166412083433071108007621059057246970447613172803640849008504517653866352742759269006666399988704862578781930481221054564658631467569297379879252994846941102195656149807588105880745901486781006010174544303762118687921200636390872278048458576635224316100789651126741545041665049052238233937994658455940454292345527539514491851262857088393974033808486224522115399204406442156923298828297501951288681438774217690696087361832215292545463911755275427297726495123030628865961989485919383186907926136354068461859083080064357926062459807325121093420480297218453620805153477636841319313970717827068915769633879271573820727208619396712937942966208908652869571631210241863275859731529492784750953222686705760354295867496073058902223785154606657705272512475374806916822650727256493004854679065043830897549058628296756523859584018510653575954029502897883531350120346715633116296014992180265442076933214221557808973798490865052754211923094550704728600979316567230181888786632467902432042507863947283872562343154119281210120739450506946353895814264815150347986399953483040882788685447306341664567321609605942597860659692764933514446433365439200776833689011130555704116689533833968651334846772573721133506501374085073441599047140796419429091918742005095265564327737168138876328997445755495761033383545391748640012205762882501807101262104482198641830198832443189453383060843258580632831686731959390879323023927931725964170670969874937593401680360087463072917555951834337879517235653297065205925794583461600616544567712909282618196851985272487088077976353973920058752960350937488894266410108252972238146761535939989690893364885799551385645399164132481542863007727042816507745833226812754463654826992201007159754632588768820320641696242676356537468393125013670032917920140564977220576707700053672838295942662933611693863153575611892665626663727293118018942625012434559572106748334890815504319749643420471093923448380338413690905782840172360117991229563687754030830817886569876312864830807064289946258950702567224196427856838839269821155168901630952285576550809445480136926036079011763910502350646607592473824528837249284894353294049238936992602081270037700388862193101988700329379386730951477385524056235950028096030222264873736966928442870845747001397284100086290451189777606474010243759023095978207796070460092812594637301796452601356491009074750915928307745106972595911735685630651372379545250220702615353893190894458850059424895128324676913751514230741812905347990816526672616017294159496126589301416958631087054850339944909973052856826881115871729768619065908778521987755616905428748370201856466138496796887867716275013757057584340855176974708285643088154552074333409706125545727093477037230269521752423245401858890567027963700809609237753770454804495656190851054587610364386856305966830312502321675395667889552643132925307341449775967486330974190610731667569045097424370145397251097235290289151016375353894695813056941863168300871431615846759123932172756541571723373704843441514390498397751095179125660882530712534580710218987472401672516753069883317399123831188787880010624933641059971523219207888307034553186214791947613859832703663602009854022234241275001442249034729875226624370373202535100139829632031156999791621832726727461748962407477310562287332275870816891081755080616130559621538511701017034875113020114694358072235226658986590058734129830706876476525882530181088032487514100108320474980209191168314794038492331894595290274788079356099995138729340255893246020996702266500931118880555185722208862619073884441337330218552130196608064419491794183886941801702803382394266445236623750034065301087612194753672823874990241992033444060895086737507442236645145285179645131868521707145650336007585576241064004013904871548551619173934452870684714730768304789697609349287039542877769927677185740257030471996168332736345485535273424333573063141875429914600523914112733910113458773539476558548537547545282894148826760775095496480266553365861662812100354201307651429927640498411411510454149934370253126213564491748093129876342929182767248376441569367491618852208465789929724783612906992846351748210098917626389439982988603569794920282477195251816225804283863119773588513023317527699554470427846811868064299371606063704362725716337367830977727295015029069225165576703171418929847626865182775004479429816792793309059492258700031668932759661342149734428691229058958004822823061294363610016697653283276216916990465071358451089320564132948185953515364388634202906249100330853640347963216754537497853982261751734382080826214040841236403603762260696710550979751732189630631308566024233789657878247619160699663766610653005205546434208034476982353554020470913889106066674664744735888015006904637678114874611247771801841750590443672316041523269244166337876381400754753456005284666482739488946065268220371756591621066797105503135739171474326285524949329639829382588667878109261533189679064201550362172239958338384407316344580090246217154283955126447315039833005198895968726500354681283210373109429843819489958480821272413142674139697999888770325804105132357820737109927820032082068036214456874557522394363390341055237099381472687664811005471417691170757693682167196872836049306482378446828171719555782348645980464155521082682691706333571009068168395981256440091106427359020380220892116248898210923345062574248256994786322394556500400725303394779310906346897701869947523162378881771736361802446024913477114299742942034761621662805027895740529514414744598434223248113643547069601038158365800479261758994028200221746363802484196989253603322696038270930679576643811839924744781848997922919407352875013281808946154069766603413877978249514318604093199173300312414224904396847023145890542994115616230558124594372843055905882228000146503154974945649720641499768676833879123641103663831200712867555914371122609554820052664989447915081384064883328158479743117330500905978840771095537055939297877709577092782988245096165452852685973917744086195396544051424947598419552871752077741572942049662663825328621936608536645535803300576660658177094969252529415006798998077685644675334336089197461515080721981862301141767120726760317614864568708781917743838690479816475467592197256242261340183338146672809884006754370046714773057327789479206082167049855776156476735044754712570387233511568051885549269211019517501526321190114941098479938775888728533303271186413015622744571377949728066499480232420721599635476653875474102753621280388370221604404778248846024302896902621346913734127370939382208696106672581084818443443373747080069822753158401091249529144343968057525996715114575822116354575905156465000031575353912361503588220908393157798638264270288570879313746488332826304304371904153209094366162538687204474333281094291409345341370724191774671689313274736231878206745101832370321752765004561357368077758477499695393637717467963575839278361252605966685430118855606747497695795267842435262217228431724874575830703301006266321178160523856386513040716642365322362199472994655026689766071317662635863645980324258053509745226454808439616600318173094089579940579041189389036532307686081633783977508172151363508703313296037505282975081440537554159800457077295234546470548463873037405312877401876023864735372669322509657736846231922558801750754706176956986178298368512445911829932280423361176628713205009852473580445918094089337313317222609301550237963043745904826227639288086260256314974252546843599736636241878737139248997631148499397140945369606408512748249758711690375628329800526387888977841999512324568339085258620050052019663994668355490422018730921235369613756454390692316327272000201355291100559420950519220347775603259366473647338738331936552327990495689640455635937987705087445428689824638791699688492440387495528603252268941810304914378168409120320904695853887179485113827371590127128049592073209854443888725400490154955191133545942511277132318078920173171002926476440164243427068883434317053626782247564813788875380737277908662050867005212265078921862239224139650244449384781719953334331365765780974934231457054320716000313870574686734061156423751741558081834620243824663602066113173022084340237180473984539553868751647272823158869178867716464764735693228083128682240986904154349857452326361842100092834696888997418004933995098637296259703456484570239016993820021826737080618311817905209793433578621908343143516715099086249082645248568682591117243920417537766581355498969322245668867819800215477707029649141728629083059297157769789219783361812654623686406529034262129225008114444181410868006194275726940351265725842408205325776599664190834537849395064099480567030264097481571107865571204413300658961578301948759629002177322147621052184811376622269035182343577314201713509776880533431558148691400762531632292158466157857068894944655640346742298819314780185395174729876927606830786704731052835242275865308388227912303981294212900504095832050421815641761068616752477055667738084123821381795754698791496830820110117845491199439304093913559290862997974282125004167755854415919892817083611481163755302119546490472350850611790073287781612489088144113140155031519076574582342324530265506863678017307572760277094457330943627627910024941828389319778962414324978987606713802202143960924922955289270436575775776180262821632741122175522805035828114133733361183938411113396238745996054452396299786451258034413354490544504392169850539061565084453108963217459223867063469529349308437160555075992332332183081061821562167747580865127189001903395808603174512158114234089492351383019467725132517237943769794569346070961652692656379936277850757104069201993967397029313005346882410964001869590136110282032179275462625401243923718133797496129305928876103382988250007875886451933313951750475678239406738449030608787100913040888088548680084066311379035563326642502884917424752712719716136262214113514937885106096210728439097114509270573517123781599402440342092134100491465177305085388788858281084594125040084757260536389207556908359725707879710481605317085395816632243066330657197372993206495375339733169994946729166650559499455448818382344460377024171610441720651908394020965842731974622956225454434936158679580380844560307623954807992144336727997465174132346561889332751379187674393226382334334714634328680567648429237888311042842750631282502848080676608814979739390850803772639227908264056507412383555163467633514558481643698245200343454264532607345018638174850820400318617567636547457646855751173673728949727248995135153623729634455204130924246896963853436504495268112974530568149354596167552273850897983512254141346245685948337174209127415313769055823210883064023317445662459203086169436496716622134735274359342722370393259503252954457025503907951718410591469014928302746654895606142323832646991702954816369335753953362270947340839975636925610037521505599612146139575404000010825438587666340602306063379289148940040003345699800684207303089479059687436588651707883768871471437315014875943617237652477628828890519821603755792266252177381797464034074534685905879366262304469784523866811074678512132559959082000258151083221827618103988349118400528606164573725853690705262725314982080198792178901645607609687987561361982602244396857174206948078139195272822478940358837685976839805464678959508117729661083884372786957358351337207058951790160415340504880080711715535098402834175802275939992023319640082649609987478338644656822864610527002084760209543167848944403837165446994048906894847181350173495886998521368583979265560961389778811952400591498284858259873497941772091264489123134474108975473099229690224061310618614703825585132390867545299779110770873123796342939651765398704986963044494214369446115853760699316868087538166230757393343070071956984405455819929828025297721979610981286845350928036303260188893209475193255539875885810192800808473541696779642854498538758776632503831628691103642826071998244859693360993263506602208885610712499136753753344661731630870575321686891793639123066969087454138340291395641636729958418093235026823147516033319233974532102251954172406012305689207691305054024190834342141276118664995613582314958487578208942244125006978521301851430630741584504470300016808639319775168593427247001718081670508776997061104280657210653612494372394026968354383043214180112289255147188867073796699549889205603878514567929624767555645585416526217913460183403111316741665048611494429747989180295443769105915717432568594320697601304624323743340319324501909361676962406538332722739403661193578925741812732886867468100494435542778194696735558021770198058164082958914199792794997462320247727319092939064342403916771917299405431270854249495575715096617757124292349609815356237585492567852121530969465672687848374910629598765826831382572148169862019807259300694593752345322912688542964450854579442732506613229636692983043150389147533150703072714872034525784050076497466800838857843944684867980446428453911694374039986762500947547573556280008636449743807881862310927139702392730733135396162901602727997324993052382489079126694883978536406576517893861801973601520089912892013677289507288192275726823601580413695392859396528729768346601965306702761819599702822012664866780092946573184915164434357637506665873971380202146550843592503326838318667587760310471438996355733327022368566235368532283406129314456941334493958642341276815366990955843023354663759599498019483449389723420126926731919241288974517642933561117876282880976220789235475696876245799832101760979370233921567473588411449909576937084369646779242092099999855889221099303599138210336983632519431552880710226071231039574879367603913987254514138213765341636026698326007202012254615592919522276438378051500402764975712569344643325715285278298573139737252507191633504425298655318200352081908681153870327274747180109870696908486513024723194475593232256198015239831284633966528199574994585635108192714249454817511353440025143825070841936228964908713229485734019111658936574200285702435380834790370420912197517030323902437967072575250532539604014414250749728615517058498172009264718942360646944839886477471284433080714816418712091419449667608633368121035887284696829092915508312263686706317509180644551758748144833940104636736302445406917676279702121133865566060745017436570683886454076604469264131779440011201780947715957083744935964810352163876399638911062736305317249805584124777230768831529337889596203752326285007553474767409163877511238677219273660584513310998110565145247639631317387012001338101836195081662368470608252671614753932494630770453757795060584882809807425366488047492176254925404516629918741626294241588632244770282632126719479895895155392235664542979427155505663910543753183695819831364089482338269496079871674583912195273238175621278352447217661561259581742358996288920247490356541822652143595296218830594761097606901335082731255174397861200518023472985939831299671942687473117498669112622340508139542599789268852599407194783882154705045659409217712884759638604638092706972842445532689097081858024957995226901422736234397254794984801404945180073686087941257913141972847980182647600745748042043053653914087246804309530308223877684770715367869612788483182947466974894432196077727782309965574389044304059312534386796409199491562687646353070395355339909887887447506362358804582763811966975034398450469268324013553304859258774303139014472114718979787569430239465932948737341282617977609206684955022200924700838846458403230776028799015957535872869288690117006026744710478131817206757758985562260696700736155933154057462897114219051731302371658126738826533093671258546109737951568358542589419977505313776822841875274350941378954513412166773906421206503450120676783123253595623299934911153216086188764703045298846008264121454123149667377771435921208584797688636836791716813407675623156944499042955408256588962756771852425745211045782247445893285120371544895853329107018234306429796697739251394142036994744488292914115588336580369882933021277708562480393630010955800886678646774860436200174096474996243533123000836512034505757269220746433420618750185809161265705034515287884826505391958525441029979190789052096433752062619631450265289951555719549422655561633104321592121412889178553359002373087846633310017757956051746548721182288450524169475430754198865130518128494929547401107955593166710400081118960822755447858362464083068824410735728544490599048516107393055417207728972853764913360546785967080941844117090851147139190636259041293465358228450763925920939622939074865142402608459645364687230656340469760597927333510938955989196431573947527294812298253141969336737742274261676591497318738445334289061405229195210014819569391455148255562263034388742094660167550454658136421306610582247481371450944844505887917788314127400178528228085659707029363720913698786073640489802612843369113936189507363140105128775253759160076148424597192184167199823515948930432758166119936265242651966895861160121356939841610289811409059405201836691309603927249122038619658723592072137060033466862018129876644325743417244522946891142483168724662985976338499909033798966632440312165993795603938191148272411412782173920447656032527053949285054770687383381473820757180412986222973073621969377419810198832100799856778769798206312314930017103720496866577054012969387507619618808081356709559463345832819739852429148338215304519731537169731513194164241819443180033722261133732006141241905647646031963311198503392481392455039364529080365210425092964079552806853459337260609912160087736197650190329160113743526502738454925620426304730307474076100324807092895494847990323330184748648408362379011751458060339857003132880823845814123244015232863795829361026072315351748147343232747906345366444658126077409677028108879966980420265448167353203392480803613799802983332631329413299262319737649821778211304136787655598353145391266241981005174909181989523326565282810189260486569899615259528547647935675577698531857540591983897306603413716688468938225607766792596083011764952911598829179483003108863298054097479542498791028705525679621755301520104040694266957583555481366172596289526728802454431759897415279288719697024667340096819041899462123245185758171282490090080041310419201308184453448061470294341597362018668190884800730800849806106356535760499717759552456009798170607605496105125484731594210018753194085140495946628720525309757792017564034549649119176675082752457967691149625493153876124993500185275220049105509134383871821686401503712959106404897341495145442640371562707146331139270651302309332362037381851209768542915650894846808457456005196704016764925207204525480634851229751098704667296677464433045344677242226641035614452270910650438118826970295886357793382666590268550152358224759031094247619504924476454060707287368980879053779353989869863535906067349267831440039153233849035710143543620033648525664188251121504681626944756529395946796807111810371191640051764987263961155169989091149758372530894988700043449062578591847815037024456886035158352103325376100178270137735393596934689449131334967058738365574887198088228006243584530483323701839364335066404600078470737882294601520438512234946572576585501712012003152663308806492199700862213008508323837088200433390269846696532149126393656560462979259000120213730421819640661729390849125347396842040687488446342407963261655210997862838938395416093317457922302493749534936081619626155427702513553651990028922577380399545125057702278120947621963370661464562563741458634260458468680125113507345966956789274963089783712635383886635907059722850234977245386994519453293568881869092478721970041255806694225457175586816663057531798081109677964928510046118559325401663555848110471716996185652928882455856885771730896978462851004296039110781585973181988643553665726789046612192821409096624121303094369028444201580818180813221570123196841265025620689875161587033009243913815276607584213333497517486544387453730820053681518354904308158156164179253967640324742110110192593326364733955132855478173518536611799313191464700714478091375659450158963617162977716115319207073415002909825474460011202874942774895736086934974159454648631017549288657192030944658940826853869125558928338032641299109811129252226832952923122137022563889297613418373826875621880392067612508819130478059433347423675027332125829459336681265451250878771032148836552692966783992225021268818050131228358870266338614844983339207437811029599886976173709968296897869865522485372690156354947863812493309424115366523196116950717578180321027660822140159535623539077093311019047352324076660986804020012915521021809171534462857699711271802023177588852483726551193561162236419345788532861063544646077664294290201030438674221689706138449768473821700463896923280955461181181130052820686284329192497903985237717859918746318214115440780413140573942576316610175040378436311038191966715718962703477363682245929286972757137980384192041135306760476074795618509640912316052525552895439740315147160315171361030073918441061816401032674692422206950487318177544020894296293990811922720157159106738172730880600622489186228990549346903010923600933483476606518252126290997253445042460602623803885004005733697204393463385719514809008184677516197857075997880309297906985666302858510755601059352560057696702331766074377408922592596629969042461099468236673902348422579491534548532484365036699563432566204185258267836460999912528360605236954552661634253815828751506195434623136185748205829173504808560822933285985418479040935170412307723199977738899635528859630401310640938979508968749666728020171501561734558192583044640022072932052311514872997149358925333443144449167241540423918228557441140214960209036086632861440477782824872832485446053069582411045839963047179063947891333782741763716105788301971956341164575359269943061490676571011784365935519463088779332627255693980233416752285784734915488064212318031588761605059437406962447183283846632908949698025028125934050295167408247854854390997218763738473284030675644954924206005777697307453573324696204931532253455177969798873333158996052328630334306970359171907970589888084233274273207313595262695040790319326005210924732700079284152828430573624200666065255403091671326381821313245977056625569801737288403235728432961304745401607000274857415246390174735871262106891426039185958299021898260367939161566732326483212897924867119656986556680297688110723343781506166949544420761196875518837693729767533143417414933722867689463392752572058983764298989806064642689505502821375210326801745068924985216209036346491124633791408411487936471000907460178868529823359382311319839400197697160747681417767882541200072905267836023984540722054338477956574838111524207786212167456062271087159815043988195699175651649610502217339348795571580071168953387603405832125865249657617439853663407952956634815233974220630527618019096441888964133135108433912847209296454741189379492169944863495099788270958578079446779596495766931568450818812727813825451473288525868825735981505846791322037232286667642230762946605358118887346584215102368018994834718529408834703990551964486068117731910629690383459506891750520781352284470302672665343337465742471218542026670786079090282245499372783193461255787945945166824048345221869395857729769510918368576475132415069688109059678428690943059525725505159039491402132573913622153670929860846741028853631672214484734350835929103065009014981030523399382521757298574154027872838009260451443262635841798888736726757492642921419084468358832459249199975587880763339303123322550969613758841255354850208654548773578776492717251770150541465480129639012262906651383059168614137347232519614619605354757692826907038823801576448234263617617736021744844613297441099549895922954207541191779031214604277232816134058232432512918975946223201694802010134363018620186411472123394183110485413363277391778036421021968143275521037907088075401717964288968396577728456013295253821911897108520105970491790047679873105632149637692703884582836179418048201766643000478652593718206889949837558334416650439863983633268573323712117080786851876371099149207590733417861261022509814762249496453679433785797580211145473826410320657959211814317991180610780866824178891429390934262624961341456578592836608949814371432980026683884241427806721159359421728867667773813985337389909245436293884641313949795668259407759503236235564751883429365955250181368423700927773627896714645054630238310232033480318576540985652716679293440433763706929765912061407997089582896903286286424296140195467952614885237385870932202346972558722987568279459809175596857784756586767964627734463859238019106387104051031746090454872182540725114744644257576814553066347005981759460772790007012954683989209501261479761336834464398610575577785216049750599231213692149072696507455966171636906212529530987081996268360144306947780061427470646193601601027147683183052502415934504429433461934477148066289640515856586119466002800281575120789239812967800233365098662251808051794031588890421809163390595764137980445690843291473683865846667040885268214719711057381286884001591223845303769172911975502283326071841238421818592703428521789700375286404001042141129232252485715697880240381843802530000680003082161220376884561062502852988646514891070449342404761747819708940180051706072369508791213383735540620194063591566223774360359495758356355550486392097386200984135232001802226508791265303904883067410255565177567217398251504705944881804076900222114154861360992738499607530294521783829727025162212125333576823487232881913181063256379587649983159491264581878376703110690146453336479634471794707586017383220911354905575786597340168929926626085948861114187126136233333307533737276678271606601452886646125194014699069602491889557888502656247532425514145289547625520820342978672667107206462132209136879320246511101788895167308748827431024788831010133779889017857563697260970299509465983181110882843245971192754884185345557829821601631865844262289117094739777867123004207733796762783965597369919172877592628761346089731396482332867852751185021428343303614736571127490391566320824675079277105970886493036447164951252933782116389771729018530934589598791056638173431304303922346205152920831495483160520569477185585263832123340676545085865676647568334739247480588675041759695095713724553651310026022208072479716155508446957992784962374369272319346624903893614654105085767350698844928800835761203140412606588515444746877398596294229859845173931890996700688549969907159616721123167280916845730685455685089644705589010644708098759374315369335385900385977527536837845001032851829721742273293407551690894853944838144759556195922577934566128637335060663627383481019307623382307523431368466430293799238202635707105628032039416200773814975996585138700563790606653790044620042610485793663746899283614289932185497721783208370803657822401847484906552074201460942164409868057755113259157154626601718915034310715980439435245913816583641332384898266849359616290441397560561998699949728393376978841395606842930522911901550192835579486431573136828567781466391219918643313195812261409401141634318168116127626727765827570855282689949811681364783638861656486488192907599661597121716042067644255216296803204151965111687200951291398814921730491887380460851502227161815503009000918878944714702796694257558685114113881160417846969261033973565216483042844204605698428859877359270040125946349949952155321386163937259591700055822579338290940337012442201673382939090045068136279893449018646000047189880540353676220824944172157732046986223853970259996483398037876901305782569462504159964556250722720653172489535471391196260981759119190226653850638994374082338711797935522034141151398852180232987776495321425617996079216673518687186171830912132179949192781439306325068835478567411298906856912974219900194365552223005523959138055474627660538988939374588728004647982983180216733661032547208076281625135269363721461713124849778439095874213483152812341782333048823520602599519331623825177292202570092534167699087887407298409532101174804205189412301991880389514189797696372015219489603793876247215134716506618183942962875910670458269361534126526683810247211281090199894985882817392347462825346294781525011227300329152307135409152363511197962792729355097370017765647764067651761698972389131698333271638923689847198669531676273667287761520038031094784426323268892488416905155790329521431988102568777750047294426994197596210085973221610225411743366050415044620306378597526817862202167171402425132373546022754842640103306163715632581824017603377591742113763015252118008395724105893801694402546873679118183089989379629850834038706261019729405874856931536068733565920645437365554760670469405844795118144204288176636635566558161399195648720062185872274571469253930810320225231001638618172051462292259909159387996581346379243595299013241428208305726879259505011413379749697175589344649074923948580796329265029594788067468766246530365164199122865109401601656300405318577968566480004017338601537244538898835930760306060410587822148182733191379882410986544154901255247452982187673760934488543380901677632930079056866628438210397549205555571648545965178475641833758265218963492356404535245179737410583452054211792100301569986174381455498372119820681803398370530114118958758109023045264391544120944041943796072423817478544146103261746041325848529720630333064490076533991010720571779452726460965076564804100754003403148335639281271338318804302867093048545940678534589376799553437310701431799362388531546332958390498225325706263260594551507656420653365629024013806884887941155161511282395719450661978296759880292917342053916356307267113767377675352497767970796176446172788222040482904424545899383544201145817887603976794443168326039600734855813186910862321059711386414217187554462384499611390440599022756227366112130956357542496097333626769558097456100100544038214638026470393261373673480198370489485637367757346401274915497658373280730145755874366815010534962643524638540178081531927371771004765717789970608272553414354547329613998098041376263147252077687879549222030172984561465833008291060076833829724386385957382103536821678471106257877828497231627657773329340829493328404232427825832775554895307141263646996499435461139618260470210823855374265002748772755091522381664422601286511165903427777233174777477617610403792176448727996504883050621591734041376843753849393896509866020141067324334786247698098026357713715069117927032131400264527662594730642231448617512665989916296162205321488972170807998917099436241651676498262616476273662222984442957810284072223526757299942585721777955980046267856301205718119626422605148924861042633069477371773233585622749407127923410698367395606920410308932630014394047997059358663096025152909953465097756868413936019223757471485628568012164571371011883255071925349743241952037343872458904173040743245893770119074522481051460509983144454741581824769719281350637721447102646010288329738309006015307585674281083165629760235532870679622959302075000357703962347342282131282838987086623290900817761114989446845431289706915510335128647371715214090863613993617951228194087545255304006647143556057604566908976564097695671368593401881483365217456204986325577094329233604385021844642358009622938309164835237096179350636888430311426678105343738626651002500693225036975772578761349102061225045714784993310777880265777669278479582868388699712389701394817457952928913163946762081295388755460467658877344377449343140683039386963350904263006932982892013794787183400583957844384805500050992624449058417610020310731377907422634522019395705002034806981085161261680674753519540765917037943090720856983971820165916209233595879227369952015713043543552122690317941721153380245383045929952413732760076312871051137996668570574249486455287483342582487608751611932770553539722404986726725032000610894034392446703872613981434702068082059704521833444725378310289843745233869492316314294158670102480372308976231457346717964327096742686946819403335788774596252923784336070875217591517545939984835613354451150315992580290680517840296496672650669509558418954405415958065766276686694886700760000332774887652082800133407210710415065747515558704910670872317465597707139314161623749911416612511039873447138729421156437889531945658767763147152873358648065739472887488740128827353720064409345379509294469902864734831624719651538592984455534905694090460890670202055218950925882579595122546315602282695481375887815371604966892569254205777061780979791666870267072461342356787440278416760446897629867700112727010973341152976262620479396355526757459503418445307225597577476852148432182420659531592056829821499532946483025378480547258953702479616232579015102085491274449390883744280896478745378582590640802993018868836640672177361304667786168421334991333925706350978093996509015467063460391425144657663890068212554781557482597002548741258534423525941880786529250056149106179060033599505339315610612116233767544235379918517151857899165536409179012810836511249690472510378834118563263491761480532071563621126556147718080325654236722969998885996601269446563041975001172435137476074016272739466850664121438448884669386178954160347557478388613969012647574883659094568574518489328423123980725248752293386617696582665454470345989148102312176929156399796884735048448282867055159136132327212891117076604364299302326298626138051754770734586819504228470244501452710562215158399255674507040556728993732939383257889393076617333320573785618076111123077171219399471773439969429346607948334244538990455815021157114726697889892455247323660780855981179312319627008333506646596261219824931803998207187350757908000607536303128743898517359053208064076612143179635192264668386236199850915130064639857042138488070104792996329021788723199301037012659840172739136589183724640252173942641337109844467848128569765438916720015002188393092399877060363340964194048500777428814217286196389358787536807924634487977164203384591988543296915913155537646678100589452550862145356473723342083522167893244194804504953664556144099618642054789161866225939059668035233337089460855828486034174346616996589926672739819972151346959122835152997174787487659735035859538308849881191831421911348049136598057871447978539894644601211620528200732201937500551379011882040107377969752297936998189992298464957882409568430629940504116708891709038873208388140315085582847908612364575925528387430784660612837347701529521660874462299127012722298507906929396170223772373190052330215504285649445041006884168394493946777317384472521273128932222909902296523453424956896061932531853019849987434931403331449117013308299657970760951298345170246768575764056993612910615276187373854909423128282027842525841395838759237316670586439898104318261505917609421841123604139199954794920477176856176599360476966956725757613544560725836289120188894625275303787765161772403247848389049088298329783382680335211578627130756764044944436859927596816713084937722187310909014717564818428039751814839857425429976286885193981641341759276464594600768769405455503326630212598354361963583538337221030407251534138674655479629643890982543821060154925986362311660951182180169672757190511050446306051068327011528239035268777656093025900953221240677405982426256704615314590956651788264964773767894748370761975880653046980570174326751203594642020205738388000371009832985069640610271075545716191758095615748995058831529166283573988388234327868223947498281878875465996079710160423976985965286589286941071793154606235261951914521656680427123963351588814390469376850637848426815770694555186579191786164016209313434590163854463960020899800301832797238730736595937774336821511953854532162219060270141415671285546425159227053089623418909540256678660384070356511470636128450399410422281982399448537484124266745977798609356648026995182376002189507318396604728629103363789203375185809678814759431863124485839615866615049920324044972653228082739476273172673489344093065585758544126228175886889174143318267245667288080098953823102035497677417556760215344831890707995169732358430373347212290123023645804359771229613595226106299680886448664828339560147551183016427635827666438384391463964874587830832993354189622909105838743960931770271937332419711300099942134862350389322046301141453501363049757995339100446836517412912941412790211568752064909342108550248436775633333945923601576679650959547637209842246069683807709728588010261568191243796588296634330050861399793176449264545207013674536918351493571134827483659177569763342755181041833876813892202662688377498984559997987414998927329412102387126278158996566749351797585412267919958349376025434672518660513857944137614149619196884597681974512227638815105499589015665829688345556640346345461234855477940121402654403827004735702285189875523585552969700397755221067954646817877651029534130550027077000576097882694717772258015582782058780664288649119921168257316965509179573213432879927906323361832905127251915520608063002569027472498394677311146245278651327025874426022290521475146897925067650173350305971578059483416051512027384773851403927113104187593725308401273368332356241442172313305611490644595352906795404142192895156943116207776835232537884385292504126772287379220558573332950005812406806575671301622766211075510760196619201488217056285123343805111236507321226576233419063518455300373972911762515381683511110148576405225774061544650159298473684597099480862597453025374316443405614323578348136845472001633180949598529325995555926837148989184360142010850749139449847064376597034258150381531913342775856788784297816686809158499589554548242279541845785149976963306982984210196621526514637120376421045429789245816646100651226699320352444580006714129391455803793824035602154682229605939201636862922843630284098278578638587020910083659887350443074288679448561046238821162358323794582576506562102408640453679960075859622111686311359504421233778555367235127042138298366789548471760401725816681102493970897216435196836638111648215833519189995523990321498157486090296971230230768339541397980467439928285424922555991396496117283645300499317218101879396216741052989225382825649751837070566721981326627551940951528797462666443106172049895066341097969765588292358069314132075941810291359333715485060175813877678028868643613180912981593397599968468759131255713052419556796846939511007621219986599322153908684474081576267507999148730831622812472775499255816577514287013231300514374391154003334440556496616184794458231017671046572539800156147107372679008426490248498335470107099432317105479609268916689176763435830441675520644687933489175083453637578636841850319455159563895850752622474633221374234680036433004718773702000546029112541510472194697155583725206377847980742622799845020773900074907891986938573763397491134872368118939708083733052871928415650919554057422447422622300492610653220480652133730508018505097062090011519694802460833501361214721722741483356736008813112648825283023647369212996484448987074800380502975263707086401260700544465767165158277643730164065651459547908159428050659193994705910631322997734810565269935190930514841571614735892639502601659721207406451842920999549268256849749574051083256212217251272706416110837720966236414162182681536943969417009714786085698666317086053857863852756863804717347498296338580494034314796902546250971088774896923167294187193311392621437175205964190080404143663661082459697652567772069284009572547784898908631348898434601787519192831582488560840907761671874840349611978214316404327711016419209353182098613838883488171514558803386042488479754208143346947834879967891319850670998127484920622456695516659065323970857551978720158358054394943728326520171413054808805186480632206959553040289661581286758933232796821571638183271573409018958153360357259618421134732441380595043138749899892245925546695756352241920283103522508428660302162511871851583141880016889160891342224004963048978306375115693463602550878163821574947816528863738397130497099565085727456495846428996826262922976082475061712405642071355685423527605369210624839571517628054600597405571444616824940519016032888972990425113295663422111452646302812573901546858123836769585741080447451981956745934710237342688601568812136497585725552203045745310989341607114913355619652417444949086233261675553700006600486619762855965034079639467605283300900416496379551610723704448008315949430864408104265831165578353765528351586878517457523020870318588742096246377386777036591093350321154437778305218932951855412847757414787785176167862831437130828130949402302488485469536131174889675501732412965150332616263026736159588591071387100503711634487686362271659516826375320711988622371528650872985497112563485367217315554006584238286624699000889730047775062247389773524661900288878789970844813900263138792710880640858237729346963805503348046752088553983555387675962986651022617815255019650795006166038542740184819974425056994758993264927224847300435894219066857320406698053120853270863586702870492735832623462394609379600204557425112733656858204043677541469267599968256548321121230351037761230814739142818715335403555618428524525353893591894226529036108679346094108550015526225763164773791511867968507584244089509750065655625820663180407172692415139232584310773737791070591327920990898230984194334534250024852648003322450196934359669053756225963610786141290585470261923605085721211447913982973081684319974910365580772984844725941399272335611466281693713081571552514674631117649687591677347087096216735070562081695085429909909647438275518740659046789165185261362269400616955350661480217999565944713587722187040280319401012908176262584044160237648553763933073979949031998973179214209996745480370395901068167961548298379820281566443078026715414830067944693004918398652672122188251898337467723048790851737361004290363723857525097271333421550834225963226739901184612550578935654315342357321189505907599937205426277363370549641969541539232630472025100170968768782588432334307691896919045450025072520408532971054980430137301610036593604372364637028946485378250011825605065550346872346780299527104045399779259811912408299607526391814278201032138688102834064723551855490760354896171562453869399016213715406443718983131425105594091373980846128254291104877881878976425907892824148080892459567050415425953087224855756205581542593189800388329635463997377924624902303061248920947318811107324101248308475219526861171120308641025601383308985747833532119422001062058201945198802031752539769644001108877935496802754842719944943653336728986811159700350058424495647397461671829310573931599971282168169084484506360679952264928978404473932989372523710793718071007772057796257745657509769012794984326176956799462075138053736966292297951443809138567299747699237859738910489644519711205001085270910366929360979616068967758098126211114834944111684835569817994867172552304473081562083629255967406419011017314223972953961046948830297031220528366843056424503785556216657448079684255630487205680126592560251609504441674983570863154543939790299618704051848491619803613068553571998352690579464189355829887052573357706924593371489910915669916428901484183971122520355700588398661863410868758967441431543647952044517790447036293889310881057310237637483451048648734013620665093086097962392938068643237733474223518734494395043684768345674573146653001353841853212466239356165991979328568265097304810405084426188598190596886722546706901754432824920986510790772783735714131567907746006577813955060677941167464789867398130221757413118645822451413456706090470420793837730382434949518347410747113054794285340963545896842655873450949606630830294299995712826304632392348868719317813319454938193740315467688411130809563339538052619434909086634521684906757501740306884883585349749128610533739046981043507696179119258811931070850387544655743152573111850457773270888298041864165554067871203819984264161722838434624689934458013665824630476858738332549050764466376442628113508702677796090411298049905948881866861978477796955333684177716515677473580970383655767704460767399570948199659347759959115072574112948365522126260011881296222585898934653475548737924541705084273177630969336697784516603188685126162952639746853531432742980110191559759997703993141313957076897915137578346022994822301541913649329959262407277144120162274761784316040160898752790514923850065992618277706506621551657081729390416306792086303275466626988088325940938515064387642247012820242603366665606641933980095403487439807034024355447171922434567031852025393003606948107791589532238907054704012315700696645147127466218186401984454094090657529345996048812901006479647154524273096852410523813470079405528723129005044498277584108872565922406865228710046980396573082785259623687852630513910839093838920585478046356391247651656331505177366016977004731052647022247821378570363382577475211118370218879823183843354204549620160882655876505263278241890218351095710348878757034587850526155522528236291692586821550991880258456226591817314468956537264634907108475851349063030848964973025819763265532107193004234242794286224098518288172592909379808152059472950563788064205237595548656781946411228686897807766533937339499125744961933025413797703581472635897023998227537372209404291672337107986973616218349371889415555183372601329369852853924712674626082433372897151264161867774256034882898485621133143678492807577894386306021549895791065274648544678502534118596275282960890856912761446709465293911086509985276717935755893724778074652191613843061183389320294722692492442762435818664177478327215167555522973111096027659472901552077042452860279118652275096982572616212430270475699241114070599502261182232025531831660087982278045909417569718109030319625234141570296845061817566354099273352399877554413659569977631159432449366956731975568196772997254370375510288102125710673364117334423663811684143588908571713658259472846395581600915418424738998341935084721772013983440356668756935024502204644102034840378816532905510206630705870403338538950876603189069273979118729747913653182548307997519506734225017256358588052113749431702688134079423832823746284395838891529333989316660092495028105048127529479968719922675745135838633047272265886581482827370114651044427271837809420836063200998777622619502112836560917154917060452100937312646620224153341840827488209823620022966551540998354115179149605401854045968530319508885551567842168150887357992980726923995700687842006546149135085402296616764030960248121053231121487919307156872461656907285932454518456993207038738486721426002448420242351238825863193633722566907234901801582788393293897796803727999917258781229972413774133195762413276346781362728905570180399249631457582650937461126374600741622538845037724796054645755574614031948329572353927619564102918391848378913513194543189210086022529506822325193283498720540839876248617653070892194916794219433990953654796611724351259555152276067999379611070453016206621682437550414193144917716324331423234507452312128654897187219403587339316038773251918712313780151473262149934132834022160061489786243944452946957579337919707651685586022939959009959113896488546948735328049669401293949432919653798883930718842195236103084566594125227849373098513719198135655600186521288271668991110844263095835992300530588771051865963318328135647758238332920003613539360498437960735538622723101085981482387990923564909847034222870173433133478883321491348841844749316930837969708590897723705259765788108838996221063742794059636342615606458077654597432715072187486291174597188466779351899190194433810466909468787903474205792311335008466005522795617395099566424483102140756183035639996406353562096789035517699974697810191132489844336513037805577203149595565086488670887236106527399115800332001153679280644129212456291838740493506188538367817363868501567144501817271664953388732907828673321757762537561880652454472824845858990205300221922693981685884363842767598644066687156374260301538880048981101892766246150389828092041917154790563435622294676811779052319947573899404005937117685951475748007516071029210424326131573127473557732966827754538173517085048851615855118921002982329034228818387444906900447901923850739037040681488369121591064413811027515125665799346932327024524867572178630769301988284326084984843422716221793996808735511816746690410854187555548539810138995899127196563820751084007229575151092473380512140804853011931466083518399520937302040905463203387793719726658595360186822622040094053210086123560900242797902929700737690054417990214149280821698530269596436088307884516777034387521024261696207673734149339585132772539803401818336528750530379626514832229721075194581239844821935873887692766531201129975469930271029203954788893658200721965906811003945466826435968503017176960566077757321247890192405426069543305791389063465594524862702066771552610540208105172902903323161572546584888271510023451526385752693910078465686466037935658671872133047233759452108436129476808526665016298988258193552678834336452121401506312077139479994158850824779056264514073527145230726543967881846225971438212126194018628164889133071696238587567520447022470615072245210287658286502461388769612155553769873692500915082673530176534429928507458402263017688027569526518920731636579430547307000829523376063667177698709773823405501336718033191959172275290971816632920793397955071898309737334900464986020385516614734813130694112764533071675864864197577223329859187332178253756008241548863549591075093729237090688021464490524574693041277103413681596751821417272807693775051743124759763837111312958872159579226686302762158882649483322626182839252026536294246282626103215185948159414262823628991429324580099848042771253593502104174489996169589914022120521204400519974385225006642939126257914667445431963771192000981444356700681689181511572956821037814378340452070118041552961899726437855202750453135382984743890565306592342262734119728790623572424149884283050054940777166290221357629354460909988943380278317183548655277572471355976515949141382050862984862983356759173956890408901347558181737753323080986103637841418165083106467399688779814202768819616792026511926153947796833606221700224784043975028330061004017458166310181541603469460313986433313808683863120531439639438291029273366059428497801190784889007097911133300143323880689900930945479371639429668288221696484490257905598521032018941548008303331515775897877570980833317715046208510854982831037805853112906683350106800101206072836817326455224625485733326769581773929069164102095698524113698571753931767268873992998478918609413818135799968632108264422663454714397749466126351018896746553785456179330865746480520598508946123975035179189056640964170210513936044367532105986120652673125636140213223645827023344048359582794268397576834845755774820414783749400187956005282087980706754572891656873747955166253038721321351818506181545101413102035469999718120026763296611692816307125986368853136168527875806845937667431900293443487811237627132232163669423599274120820091252503005742894334020826225267958454814470777214643973542445484199296039467175059641657932228858462811964968329226229994273512302961468527595434736423134376747962029397241045102784789785642592326862559794039864959979658150504361615216238624068451325733347436892853679394420032057436723468045796803191993168934852720765650038706169784920475271503665448616471482564197817673939263999748263722575439063285678952623929340682922314597984065203778009830799348834787010515599940941577559675447621164099408699086591514710572922532066803054952492464382249284706364063923880764062916957847198034954669106976220348912408979495186902337712217626395974826153345439131958136241185252283751533674121680558266297925512370276974134691163533666657691988871608852467032578232989625047365658356099448047057591484962464827877794983292238133362070537552518089724846022608924407552143592412650540988969647112699431271328662759546280069214664842246517204734711406080495402524044038300029273352535063524736827293978763626473072581386649250083897776804929345843600363853076148481393756234264734322543432359090695160916063226393346689588188160405413021999583277409602364595362543641435034224668157256224047842173852112180782739632525296279183429988412970178923811664787369444416492819549069939016409107979312456862390101710176386601699587582770587585868999424372562938526410019408201741194274167628427471946587716842115030920450165330866598198742048387316968633852122138165517193219937156604100711205879027724979636055983645916315183430651698850643174743567494048780557124240631617803075123173434239249832695957449029014768544009085160306087383844063623081672783267700096789246839185630577623473341840423344008080810055651423457520518611088286396406696915849743569491523365404112291125751399321290240172779424253154284830728016236042958314379861333535763897657120422312112896525196696316083871426850037261222125324281504170968665375066196787823479016598743145062777550030856354986646156075891964898492789983448122356531048443552254681148809043700979217111409414047318747027035913810708933116566248210094108418477048124264771185757923225260627618400659579918251594210870614186055993514263839068638340725689170555458217350847549235414553060267806531208049163077742775559824521383945945330258744725825421005406801994789675621415418782816740668125747527230922053088770224656019399973354958755474713919856398677987627023960595923073787119195740542761959756642199652419289460822891666729899930343211961757538024811850435769247856828278334249850842478893434650107723073796089728668767654477847134015964250988880217137602922895805282527800514398147727874912811587626875585246569914242923731604294041875860390300405164122831071330207444453032602580796379394972125879086085250586010953736540568067096704284972470397174758621768488024309788104535889840091417853597212847324365095448579350601438371851978513912465754185562026992273633814947016721849283186481809351943483786645091854438432909283881176752874255489143498314226554774369600345765572892313758913385034060194260105188979521005641954470924870311239379382581272431947409857640127031323151690395213635675019483982254305661208248563095995712005107373500874272057473191466235096008679600925343957721916928063459238610317138640831018075618828196128010822514058632061325063835529377971448528273066064859486051008796736493607283463688145960583199414048941706668938036692048108688050580039830947228838138795986573788657777531882314894186817722165282396875033642154321191351685480284084557510523290784745754041964321802615834791904804861829019800229459574123833212109402824593112830624786905526421415102450124386264690773437530278206421201629012296506068169850454564345456298235647300445459877740000452792692008278334955621315111467763090491191446627147463808800115108486917661653095609777285785341259213552255867935972777093271444715733370958373982795984090899266101318788909379988957804193357814566577212842373623240073923477019306858223924562832706337214029139885046991478696500078843688181123940097130745726570847235928615935214241521588354808769541850267285616540639607408269786566464866933217652371727042168858343491331683577005868787083764101604266317703856159986948010434890880159496332908973126836586459609291845637986472661512693419481384417566866166169322101192992169051360736874085668722378805254139847779597258416355553785844060990746696548823950778717283154674338488919009715242839564488008177375629377698288491832264920564188804380635517972357002829800300286566056181713589431250061887077096100799671115132038716385351989676641910589201327127117261873325920478476417918327768053479435620004246641237703438160815678826952313076276564232394497687177640029002366203876483941962998062484210464785986299756687561867640036209848194253854707439340046473615055677300353397603768397085217724293551326942393049002599513936838366601151622707219920476370407118586307567472527446119820879949193248581449281211125824785055322895011659424374989747198335117070740161377385885881585329193725614969497446810100403085554270309180328921535787203610275087753431421393122956861997772332743860393799650809215715109675337452710917045344753800751989802051811741207187373931064766343262798439061578798065422570917404642358958486384482355358655653095898084299110892216483776792555709763970770782786267859323583940407474978908244970768901568587095571047635722440044736059615330087781419197151984092824770243485700052730828191889414133360679387572177652949742232265484732807257730419569513708168039681950901745021802826303716605523034712252878512452645586643573834601160944682978106748107184874326969936273951846209268376364313872905195662884233115315142049725723423287706509706884377144674351037856373630066351433506465634113857009254175826122750658073811361079247512580811861957838488474159911778454976778032473993317771580972451426954711607954745594059182347707322299905666872903910667167159363672731758152754671622440584330802582301615547369592257741519124873729042392042663079900463200730554819054857319693058348047951826986256131293539653646615894452784334975437312759155055937521025935166206537505772685013518051823102150971427841809188981035853460027056765743198329948032149343597715754178858204213302549349005366550652270176188773123282170301668539440546966059358813673418142244333071664821671462962952475520899498673075107281141997382513407730655695445856057251254358416552660588642845138714124061904667957573022571290633929087498618416264140404352556754846899981339895860590809573403509863413610904921526369901350563374567780123835924321496759652647262973330757356723245746241691542060120249652382903703733197830966584501175040297995893477505720306097608471930684396719595397115402433139465273078074246990865921592836780051920042520134753632818777924428469737818183658151218784751354263824346092597806965606336810337622083119308460147002663098752684153413572577243263501951199126367713300912186665235661426304042310985119359561815171682647891612427853920733476118215707775189886622711444173717267550510114783359410503326585873686971393796974632369237138951387344172745604494375553216570586276052638333380141774915827895758763865992560956637388143837112222181408437731955620646087751202396592956840383830871675867265197598049291827048761787315221588682742010320347133984923646143108327298952406822857254997417435043869153731306411404870091334604121525267792595044961204575940143510616596489543345798158154368363625330514950878086552057650604611987593599666323232158784065031079289777517245559536842867594634175598569568591489835879213254536918502326088465314988050598960693974709026259229286078735721777658597685766090469686320244247500713556753102416684045483977401888472678555294584443434280242628531765720138388923578056845820086965597622362798403441727115288532761105612205407810780302170832173164946825928335568181965785388825088312130863795491690081662552887296436065898509048599250697415965909924316596235852320049622980345378653940501552396597544155528734128339196120353528082153223483442535642550254520938108222864313068043538183403558880519723517755574445213314552991643286529880072575727911290427416637234371980355235893922198581704900140561145071042358709223715762478659267744491279788609067466229202634435056896613754192147347369930832788081757936351830093032332204914102699673052642995286753934409434976202498538749473613801851628585301568982817451471370967384043748388886330071200774827736657119559706381909675944323034832480475544677363703308384138413298696016148208735559791216880816236280102209567888871547825576978795142044587503555534734212446375185403574723990004723697946805513249718670557156303672669408472075280510751866592788228750357375577733199100402795269100954127842143765439977756758888137126848054678579810400569049740807617561520602578598064412785713415982350214034623085514965816956839734104177862009599576285664036533282275264056647541882349257652995597330140425955639027315648404596902987851877022598934056530405332022656646299470902386047229613636261579468193597963411085975177718748946504128706130065777391392737991861716488691529996379959648628580733297387538194171425184609720141372161595908583696292704408352683078678046924284271095196245191517987868072582887147546779380643510013811313707602949880082013757495761623409544381627820982805442414406636738674596053938257007120590243263798788104804862350496743468455382017935192319368156352536551983507086966467239912405645804164552915143843212909035621275419545952187810663641180155550882007913071083185843641185390635484671340243533215447495142500058032866423146218496305820411337389212392588245800684348549636156135998891070141927798538699019854462990713159923090607744233754032760914465948463115081780207980320159002922689638595467504262139784854956322637693221924035110697405375264332062074282869711651982267999547654906183865283439297522820012589996244476828317073216325876587461062980088405408325936486072381235581550022701958950326586384157078807276308317318601624173003355841504479938141141592260133089556755010520579151123605053990139442377604143159841146396855747485988750453081706718429887798920887414282814664669203154212560113611121494170332060540376774110816468304262362703959690795276080129169298008792393593368579349793814081371161409173658426260411092064207660754966167918205904303042816270675839505559390187442833943693898330816876089307831518366722756985046163669123674629883628409919134932942610511027800340393201932466261042282590483615114237468408994218899945078612869671230475316109554219208889372908854885004675890699570540496685366217253700555090251289823025183070194135597451662469329159643868793383579652371760322827667100534063890799502601857597398034887119280556781707947858871811839545522901596334852468560945749649517216646848873713614634099699547358227328776610809586601957133828401615157881350516828815096840346789564284729316764955768935944314857336097463771604494749118565017358950392152769348430906560135350172857849642275995183418977915532674802037748465723004235645595963537728446239314017683907915810893342684667235354533992799134424500756903363982038318664391404287981348242406591054520645499477725081529844966522955941942598568284472214473958931493076246748756745687251178342245572338711001620653701915493683730253122302359720839690538065631618224265224354164500490081960583682304758147413259247576252489266879474858978058781708840850855343826077946282090387486979204502050755876477586974814095428656187810672252405157688821195633183693994388853111702583306459349782529114590401562758092222174985859572451315727864438679335549471787725846349041686215691834343439074309100753395095801094243443951690344497465033110898783476117493587147927314211955373868827693017223417561853458526368343485752480209956488434304835203390156470284946305299347900507051571706194440897215634095753124301110926545879316263274711547847290004581084605875136250975922161060224471720367103296590887884966649401083323574720381471894520365549691257237756860101230273716923053407509208342440881692224123279686641674156247397951874314390948791700719865870775640662465880146442250955481907876991791663699522218466820915828822394937889032632554585328809917064651570358897178214694348303969462741691404932592269263135751689582723013505541950033210673569033322156255727046799831391640909612565310299103928980483206547830274441049385803517886326173781707078636019832395204783878004162006541960936959187747224863423769564800220962295552884263990208477151612952772093745217726024174634327111866779430132692431015078128150703756083982607120245786001602140142300711829963227867619904816286829607781082835009593919567720664066914651969062354181933798056428580004108273889328988977852378867536279565167326284389800194713412884640989932108028273566960306649217836872530555658230212918025268194939270593602932647286534276359516575056277822776157344872025106089820426025045286616003159974734502595368178353507078839468783578897640732779062441686615303552464060882256607819284904620464779095840046058287305747697713129941677096975508006771875237425788115608015726213446161305373364893594726425368927365606617470758435195657921079977044041040346627023564652722132191235042179053028754954642620251136481252297546981453638260948663382613944726190869457548168517426418470748830232243861780385865703524839555140392590649710665169910772004255522879492458630717290082456545253973720671251298562956434016550704214568327475838780660105034982583498172691138713112680330967394482346480814673603298507204784636855336397547717301929668231563709886777781111340723613461034185363436899730782003231291343680983848674855265034087157441746852163840332708591720737082195475279392539672874452890239232777337840573925807928590092173187679798857285283889523427206676308763261123326082783558783148308353507872162293119325063327707964260609292205867125652150471499210790251182475239755546964729414255187504263092017790893433196330228592771693898361325643329800120300020384231712538550589782175910790738089643436338811000463318860729645397960622022980327989417100495700678472278779444663003560266926379085345219102369025631545982899227265985716444995336738014871906078853204526091395399392701498810711286878183592504871697704219227735669010753390320961549200726714342883347816356685085776680006967229976565525410991828224008073517313115006446962744396201335408429223504742683015440892519199397516318878129752879816240891201209662915714369688571757989773284759376343194242148354965191141748238904164973803493674918583784970991660794765085074038548279071762537108534627562250133298274247098857630864649047815859628279717426828072815540633336843007778162185898441917406490578752706672850894666318718918424797789962660194264963021391668651687665911411343743669575412565942421399608698030789022305235868174233554082133228123245994796274341584772095000198147060173119502950236698802932789964173495297278810863277613108594623763494541144610486599084783739685590302547221810100106586372016633024074230231624076565468736082308017629030430774727315597284067107610404691800733856351281757508840403509668104702193339500963612665124758772005174054278973813809286189645077690385704011768782310034741899676229630952164529426122403245567629853795580792731944243190556179575212485282584057525093652733220374975963417654675220206768297344862230595016615589537146682892619854626166205838471515618910129865013865841540628003764981851534968351864742113548967325626126623265856254936603387979740387198833737669966579746566336985046345350975628181812451831839522971552634215962987106892166436712739142049467006644527707322147757297263393237365700489300189897004817816756473809343834491607083882852157925886330588334053041213122771491910393551662551168431423971702628281679944497417555655923803875339977904565903249150628587633267784153874505085760639868047203403061924741694842211269414061781913377416368079352386444700159555208293239163654197116742888987508419758135088224725373482552147314250542706793128234991260058846302265279919957982396418986714209336932898759788142999481117379165345028922340803545345086253487752257842812514842195067273787440053078622023537768687414102230193184453826742296392779898365352462677508824580702935869767537999457169235576358049345298997128281084338132057967317540885170729758558054387926569111343867720904849014743481368055575739672049248174544473320216498244567251617388790799727363572135690602362637098153315885225035667089307965577551802216769821950235673735978561778494184200885876724226698548748973527549764030305377125861150025229834412585162207281788855281448249642574042909746874121029269772977264580283297528992742004440164691393971728773426105427603849807043676547640091865280510552684524839861650911153448042159156906878511206306980968763635310083980099558519187765950796139394460703910888801670657165473570345275782408679296957808532391234605697756231850795365613083897881382552855619430149086105547219359501898024549072299471920400984922707925369822885693849122533927280974441378607166481289680526709210297000893854353610615979341869482788372271806209878278098660956533309059640776354009855732327864868628400958506939438457891344919443416901395301554514442715329317657026810427432315864994627758682198179159791760834100515879935475652412421713733606962191215995233356347008948813380934667554824383620471905200244758983101214871401915116157331373450581402034605457155432840088018142282250751714969412227878097759775654673360614495220676654396386965551514942778113659426522596983361648432653396007274954407618824396906699619529953228883851288748721185556674752455066988404616000320471165289418663517471030572071477702672178968970314326477591111939898266823055008121794871349316743818927903967768217529114409947452566382805385705768903839316681528813459640127885336988775551024189639649984154081099000799587839706240597285047155013991347550624644405759853626627333167848656733156893756044549423797159019362931753104849710496793267699847850157455655824891309474753145037188065945766615405026170135152843985113602666802862564185639538375391666852395538026627868783294349760898709748484596604275086765258438666925024527131839989140205830287300328311280986170877228954806215584556667570344013467418779548212523924173666989960972348522031252404588967991550006001956247104433422177309238371567301483217875517324144137362703911901193198405964684107274267245690675264054086035207192787508911387092640759797712357370254024436135728041871019769218008505198225503939339928671682371994111668384666896426202912118437395638354970969952495115335119632622544106607688426331218807588720427066028352351137462094061588876058668495590008129507937794711182808737405586914109054060184186627573339041218201709368962590409622229888701119305784111486778478957105530201191430516314312004814082733535097081356331514316926387768837126959186249564536662150517495338391258870610327634766385274799015998275169443861223452554257978561482456406003036410316525179045255269256138882083526825942300231935825860513294508746227695107460317417414516628068162629061777153446682726663402199282337505516598372913574066926796627480113805688313738250272664905137550315275699317351969201657799317674682340684776444474566314376570374175965600489962392042444606310069134785490280732263046737293303439378315611316220050684370527185463780500138692922891904228853934996547341895395372515220244661780721990170126873825988752236294655290657494029987278952426827225963789771761379625667484676723111824496193132700524156049860689723177683832219477700563399170638178670290433415375444647292749919996106406825816775159482245891615821571981673163963927454968296811810402238744590693923442484495153533642906233979490561082254983830572751584090858269887392031846249118124848732869605449804436146448663387927110043188768710442977804561956541201416888766228513695946194689556479709822704335214139759091132400065890188166997215394594928054885557645854059252142912619556263282300486055747409022235387838610067187142702756821934389199388383901030614245422379860927537263377783220753443500770436323935627248224658928428566398808227708534868508945396647019823620599132548166104330461401208628844941942667110956942503023841902825959387903118859908907929446931098257683776262857546394515071678161367509291791952483056826990307363955671131954779979308084315672506865828649838178423083817273683908150895023308164662255041941887989238704985189571025204772313925849356680650890032672978286681994533696623996721676503558390270253139286809821223876204197507862156060624635523220921073119653002421852744098827627865117437703610782588365806086445084223567325622261441082198528911122395065062415620901848465051522494925414327646866307854971106375974505733137750436467740663892468769834028563686970364525984103364225771058772869777808554504068537556670385773786684416064855470265945377701248591270638118291933089954714162819711679087120276039275967266200015637160623190564507169695322205653806541631149866870442192451273933760399559715482339585047774456081422117844337905831221894875466249890152722103538570685838753045391028089138762267705414265250430775782155880518423497296363203545603209171633900603142220180473025350745950852967207047809317105711208061998699933468770727410585761223593382643157288658361167945528926600197732685118669264324413701920502615870271708217242805325167964252316330795245203748600043358592978088120093389807813972483554631954012007353224370948104797540228644573036216196882137339056731719924538998427351915104249364881417377567690271163262250953371328755215705745271074774235916285018133117421491598199068074520294141884922970649718785882993431019226128473847458438162988353974104407416158745609156122767217079445775892025812587457818886220810808154218396084580974843463042221909485670149466135657504563885603660960753731961629607606260002937086336849709736393890092625292090111932036993981015320840886309796054224390874173711119041161155204403506657528537265288182896068527040842916655792531382298606433321227663238496841682421304788054626151175894371486422354328213516153662308545844195478394245110278629763572983440706287361596868072337224299890292430648740628420904052726481169109110851675909228672217775124549880014436968092049332500026887430712418528987369429701957596465842537185017369142537825091627600954356448899887577391690984162878771691648914379734342904862314230626821313324030267847549208660686086193109560921539298963450726231972376224568190351182268385641491355153742120699495335504563209509525356236695695212469806051649318084796103938307663110016083311335871395327177884302077152766346856291289141232724075716631756310898749493856995162314255758148570995027083343953646199775114392677947868588452937958655185161681513702465399632418206980724419712900790367238366941236119933366144718865478118796635005093355640803478488030358685412685010058285116135481446917850105877599661451722619497868150326953717620280115012816497518023893284981940058152588761315198463369189901309511387020699313787533549426057223625397486967045163808967658051059129380326824452958457884456104422931176339824669575804947231931566357771162000386507959553215635264196808848402310445208125908727093488684366546726041054174360257772322955987875369317107033509346368593709621098594340137254276576256943043409571296472459560364001260403673299744526319924248835328213717592943013702954215377547148811626518390338181669185804816882899040045452220974091243277553034590120338272290611319459868358877762462712172223250228639158565667603907948244726127029317841496716469026332880542683762226560105586960254525233186226832338493345259278665344299154686359349962799836396459822353439259867165936921208909736740186318669703500759761574332964038169580943088907733810983640102551080193280915197126645189414595446293626725755801285874041402478245931711448805778089937188310084717634751912676302531962457672965703716091084894281380166849579424779957210673012999096985407070580305589325474866593366516812016494370714318224692965667437037874900791862430984343276658364814417210934098368185552486869524149998933861602185865341286909344152379864817437989158260426368291150512102345089771212131691796084330259639735426275482591661222914854057205157652316338627606374880253390190215839264068940002992357965104206762238973427056181177050224806071215233376554890519182062318290454647579466235554468635621746133615955950532827342631820732153453897014328037379604134515202543232705461548208952258845478264781516398912910558690958097596761598226449141990495992588030192830894303128512370830439435201281952574183485171134122555270378802943006201152687597778420497976351807130597623289058679749287456422546413965131611049476909528072489945039367695463538648429763867349622488339652596148315119675993227098503238818371475852464076648305710135370108587373051053527855617371024695828580303258078734084731279255054159103744931729112433553261991494225836636385403439038319557462575587857683927921443956346823856340063733464400974091590472522109149295038763607994229431966077571340582500518765195732818375497448163776725376969402122812908512140816968797353715250978199037038647783444057950260957984931782777788489514041399531687318325515871731715611895452344348941778817753734211747394018485163757823655046519179125355569952359077343259935664556138534586572525050280745380499300819285875169500731436864145379143838508235452815551010184630880263571572346858139315446027991601634755810151557508226043041070209684779950831424146857678914350740055666461630757855149240306364089303378789408029762928572230067981146583155751648164877505492758429376368765602430198485036945995923138817226537981084784039200650230338774831944840377598904589262221234306903105621183322441855206581088809347255038051353140862452913788581731652380812247427398416678644376314204746613561331026885392210144426198141170945086626610014795702308729062382325734387854178823887517352984991406072145214662236721027737238031513565977783960609164100757119193759381061156955311023599967402660299128405575621171107131169550572062480218027132671375220678008064501781936654038895509016707208908217097049746658255197930228778197566078678984083692628776123113413520562161305383523776282531874571222526049636011728256003895881068363243796421025833859032173226642709789222575308473534063252538889639730656776642440557852573513668366877159088542935162724486105328785327363464255493992804010761866891204961661949786048591364379319923063373153707937478967968619941862789961141536805745881243290200554334914495653327972530695040486800978627884989657997135726018797106205944106537626033904205137018536197819017944315557869156181735123825110803263769287412016669408109239077055804944050647023484081407952142495582771974050843965123348709856608397280854496610862085912998999204609046795247474754377472986121120222261871621726602708470791612694673613082680931362614608236437742554971359430268210982940603535675299452262578783385831566535791809583339196811686660009394527472561636411047750286523912860872182260675322674831223121635919759822142954337555509923423603194343250109794777283820731266213405440038281637017393444249632607989501523378956820809829861997500543775588458461437250279588632093715687912687249209229783043914111817346413134278030131905646769961188890195920181821801114813983007282818187865113476646715508416929437601800790472111791409481101961695333921446330747284905819265202750215533347815812320252107606593767210485487510338515228937450964240257949064850042414207418420602864853395373162139258137936360370445577963391757433423120189465110346146837392975003848093179256840518497803881366367006049462318411480754682579283121029757403632579937558279509060829639638653786000967976688989967716925120409807946161381088537447283982829928987071103112710166882192568739584776294490405146233303115544650198428292424146810286481829206871390229572360228317237372859262105119574999533463774637808144913372927572255243646402353444783740694441175311693383215125867656531804390193629280220126945082845425649609584652920499306750131336646266504389224319588458709443141020743077112589083090200504385140388602535891577756979757829103101439511572113361293424609389068879164578192643845296551718534050233179272656672421016433222791076503756304576348773061664562283865831863899038041015504817354309707656021699427864960305121512335784751736715892039980320802229667070191102921283326425622950258227769476347926639225647515009820790018343692718772489202752950072769289219661782365219910949592966382978821924136480822287188959096962375262864440744436748141728144835777580542261053549616015268742146421862093333933568823819843845581852147876078179875829277038978271537921322575629179578487452342374917585766167320428147573836724508406076064074724657306396493239708417617853074835731142487094456312977936063054767867262647501806550637008520464311909345468741154922224295657466204684406052163235400659421024574306236572470707203848625168056825023392450729143324805098392173712655931446153407898814668673589398185365572081687796531413315129588225341973383665500974761917860800609710959518603931773973387030061502385182044438619506300134845685298303239220439858073910456130102568466945526649351586101646082694719783510742985729040355344550064353290393958545074616264131452988922371460666121318424918467534980882787808894256280946989699304226470426772290959730057107427217749019776754689874086608857329537661618092176031132974018755574359409508564237180543507097669886139727529312886004546501052730253320520799996918310955736517148865407350007860821502911761324862457622474289378290032877743245034353146681179985976233798068353856748312525937386704682845033899684176485378254979446277487903055119503048250069446845865801330237146310745599557396936085671988723879619633693765103183690860914866105222436831711191329161269022678979252280256432774093560398332174187873975895227882467855386115547693224002296837991002468447500491464381225635496692319730073906901427289958740760238783058108990163019171158544369033864662589659278401746814863222681526248385957129279255198814370044338593040490932022434472049789015593176522073844400319679237571246248463528189505077067481461283481645709419628118508646352555116199646803709818525114631046907473034280703591330242449890609445418755729406335186884516522524114429462711749855521593708131214284903901392052838917813469858704457990537318527309269252606310913605216260723078608315717039460956777791048465892940209113105493888010430656185585190934315216262558258778607702285072517379214980527626595552019893134524402593796690548367714168899128601525245521921138900820811982781188274281945821727181096555310617039099218195870445029635787591776996556916426793982496178547484581564892952093197287981102539878894884753646675283608756847327695050007099515060027992270301110374679402374943076091266652428880278765038514742722916505631287912727383403052697495027331489518583676770291090675669319492134927495601550298125713918511604930099744429085041295633991081534527272693246831274015339816400198411551748292105508620347334206635570185416932887548435533907826269220894630986685386792487877523325331056169657619331225654796699668249636295147120479766011327800325809478132961551170156996029474417184072651118586305861533324969815835136259142510402243486385654150158898062732131399029008030934935280680747606369071460117424303500399813925482999270779886534116187411897405814423882637715689554058849174433400872714265069261411268413821976911649500725406249228386589623619843915884236804836704223496424988712227685658042891886368413631038011523642885056385249562802967279680506509760535507463425247455633066356146022854934215842317412315765906266472589473566072978471633856660539326198251896370375242104385883926542620975654638333594725246302589856134480151181729757881481457417303874939655222574342855904424474640961755815492493909182776075658179644079845082752786602260966482742543929793337708966301616589110018459592931709303372968156219481183120359452629592716043717576556568442393511505267611427651099103025172801917423436181520994750934367099543982402579476269407142082276502718451185133438580854615773315409522420872572685117445544250287869396817075686590782801250818695416891250475875448018234747333538726247839628437125740960683201786110214948808915344118130962040047690552403553824443434974476739981732862877834290189046281791837609849105555026281013395285936634259120584504044849925577541771896867619651335182328794444634777145893590371261377030523254190897517682011644155667728718496530256015742902834834384480864950198516916523683006966835944859965354490218646242990223614737015091444822018378994729374912839413151862262058945121486746399536283342048081654890928139462706083908239262952380187652815737967701228408213748650377360004236777701377368752951614056975981641161712298376109080437881009398823604012460345375171334770084925777502538503183472570201104487061879569576534418542502871205669728140647183982811534521076670483573669122238198068963288516629408408234821657003196091947837450473930167957833033290161237059406960996968748589381769950073161584443197650223895448830098392930206544029407991137315250072667343200107471529512264556563964298343784424915582123515984499569299945643590303624423206653193953867880733497124990253698102007608773577703268956668173169465586785020307934030356455550195583645167937433451054614661555519694578963928958364832985691004154106126669350506395444476449728810018196958469847632347866196013934155220480186242962579595718525093467521846864538176368399084072385804044268956075656692917467716736736537219445585764395579478047666268433675764949434922192218246308214620273116210853523434852614322408708054750084714932164677892770206044723944890987485089405694375839975786963876488386726586119868201622573010959652119527634262042521977344626922511331993300300083814905854184411615627227097174786855926820132410869534596702720141235897249720921369092738914119138013782260265263703812422424715974354383629170041690362019363437450554425379984953923488442479783732477527632217271131431621809052470854604442889635428017923660851207445641244912638940679984105632214013188425632892659570814779571006232660413996432372803060011753107771229574206069448985740424603181871639857253210801128843514147321361146840182199263813405828364760815310075206300317616370269481730636981687731281309966651679128888350698234264840715670489578434950834584305832859837873891814932052291995819728451039219009607950713808346700652642079257112409080389279027175038555689003566566868176647277024191621187595490002281207948411322538773872026852357062328285040390449816618329390845692299462470968820255934932550380112910791018254647987970519613709014365551758395350923981162052097149470506744872601164896189257297617426899426581498005468576235688098812064007860071754021537611027144448174517684738999126926332848168245658211551569375424044683237328168363445683697881028369537097747389944439259387844336131629387422071715082982144266270606094719066406015933335600870261691981115393731461439215219581550215971628990458805764336302416257404078545581047010168951263565375829095301173157286238744355396246659897672480618012278285869185123931978883722980315855917600229535862014146843976377460706954734320443394474739921929749679459838770732621894846166703413158532852409756759301198757650057528132301112507547801405182559204030361957879317252014012150788417523976430988644254416894026022914487150308522497938139758488345304950907576001576761461957683573540009539804018888554086060019379510289549983784227339577455143633594248503489887153480418206701124361659273506534860998672930727332121927517720435646497318308456374226240194810779590575586225838870194178615546393718622987420768432079479766225365887178076963657221896018078303717447831170246386357164808793727728628228293534397232777455738648427660329954145941711679644505447972593713823530263132056196666477143871548718935568446883783807581239055120563112610804340154991103940269482658505588542808766621324120519248495113426408443959559635256024212071244696706528829374867113504058787822071893915787366516653501215293345848326287413291851768697601776819880009663752024929465996574756825186175609928001102862969154984867163780566402455644110763858692403254782218287506524501835285195447496964135706774891317561252861371199217177766033790917771444087872493480458365200194831562930429462054133243668637145721185781379715220303887368181740537434779828508495580305242668770319882800266920734852818349986305020456939156703142986178103132963899175059921863819200397382126206127479979621940175803467577329298087097171730134008193221998843015634800937458608169842758345379026120268174343658472670260005631703258667583785552139132747872774244907388529714587557887473929268037446341436667271779495688412306292175091573805308099400848983857471072375830395669202630541166500674991298290259803244086155701241513798304739747186847158621437426412207277204771209229855136910772569824918335824895350894143496496969146751065765150162154609459715327621666114936696318528914086077725817556671547549572693834799561946944274696675314257063048241002106105814042496819584205930342709300728099075082971015855705273672030961164871724245480838843601569518619568439937336967758812954020749510527617186074797731135512953777934816013573626851666765658010438424227275411822061575794074000309730994866485400568195118982066325208053463368418292761909099083324755369901065980374977054034644101253392604565756657612746514026378636361297952604238278734560790671442165399099855080426768099983944151402706268660074031085058913225220242823882687704396827294993552200809353809431653967546510328886557651166601262811656053972677650491541473950060996252450433577710344306830183088909758570250955440710499763444834336561903924003421918165930492575160881163446886250613743660487778827998369377506253146058826268708666479226006710158721260145769991389505351580419721795127287688276714239496516449531932530283570441058458247768836339992153357715816140486105199180542171755809518647374178997001293564293663030985608644274001464292464862880489957708577495308622602752027672589879315357688567113939459607230126970812822591163907457640154479903453111642903007229008181751483197700064124737529893591114384931795640763479586123477771405092649491834422621608305973114805807935930243014719412419558409138967389351204846312818250240968303569412186757983088199057480071329042884488175097627794077906324636064401613477619864345884410335111601721797281501161110387450010424678365203111229619337585567092162364436977269088670298720899926356538618161909522251303831856304393464009801436688601559558421820145015971113246155105723785036220372060981591657650228670699262035144977699589236159566913927412689889226492634400867972279610929411040632881667123494728450497049594990752132290636762916957725961940506321855406869374356943892824530612240559201360770741263796566502680753750240122711560079249090068016676764376338131545910800682763923505021767668197312096308588124671227606130778697605832164187685850927545007203297332095132943992050562900424754390233905000272675265753019032539272204160312507730255934173686439465247254640638470430860122015018494898142120858440233683525816274857459344869023766570614778394385273668310482435159343615337037192699190783109403738794145558392196396374705448774411317827153616088435007580413173003318820928190328466792203502592928154727650060616785741609180815330002444145242999632254190755824829993620975464828313594202648403217695889753788695868619305996798675471736384181374578577623905929358942086695116508924187670585793244004754606268977280073005715777324136309619535554462755700595319524598885965975862781849913601146563460501349176264111191698046282536315804978649783985813227915625754357523449355613162153646815626807365807512329494024973521949185718115855939096850565653549737566350603074360817255891127162409994839118340245427949315204798345652360290924089241316954095253810944882080001318789187191728412697099024503976166166803184141888708868890815935726610986534088652305977478314785009706264854528394206745137833937763282172506596883251216033503235170826900396860988061997182651211963387170072193310315389358172333596873035186459818016330625037437659761858645422639784075898847244543985487502770698437604624855526174517877168290609556350821133745328578979864309071938326442474158004516886298069202412819890964176362652791769934822627037624172961306892052575196289402230215763088911333008066817199872646047487044525737623766157393013054427142101065116593449259163108624895734412733458445456200650031845196134892293719910955407140043424883567522588062312068524083341854872460272297931386333726024559833682253487805637097410703101054703536632384396368795813993356510906009206813312321642253536221866333124581151779359085351545373270385673971870244046045310006275002099840448798267774056215978576841469445859580897510464958578784096856527464750372027912114020642675004542151290888167908724069514216652225528638413321728589476874936766530497511349352311662237845908297271974469920484178243802247609211301613120240077994384855203753575066868576564649720298115233517761384124779230917355104753970288061431246107288982913398497019942658925304997772487912504988448496460778654858288124819611195383844423722453078059002120196534456370723468432631472858395763049599039196596404996898146532750387179519428440900072564913463997489530287109218257125950099085334940547968605175707487042851314690479805463137569812553397132838244550175665233278311260296004451477144312693016594183317535359266645866969553366030531117179367399138516744803860470418620867822808350643472679133971619384664853428845421198455513208553283434959996143919165149111055741127696746586166293581933276371914326940429361406913754873407578479743517349015735081640608756763640299670100587723503133304929551567534664477364271116506040132157621035880895623574555339092403830712974927378423930766867446189377445057328017096444168639754704211081272468033915291981135101826820952491943243765781638747364834867125484261309585834009710917984514181873668788634750061393388451682624855996344291883073284347730869416491959920102341051921236296429590214316384676348056780371076454368934044669228903391917383481519696680923965864218051350406426675986780729312873227716043122920254005959575398284104245333943030070609134999401433399965106739114300352988517678677027208908567414756412963108065576711586282008147995676040038318945232857344741589016595570454250005133398863276980143362547239112377974955021372544554068805352414160206211585211623391817042164948494621436295549891657639521284061541899063899017827764496614439415345364931649525722690996148553265214399607630140700176930149760865729151130003137311270633043430846085418622233219095890335673472457764429938885394053544186666473382710399264492762155125600099642206266414002439496625225261646640870035314765691842086207700659861696143586758532827077510361252517368054934141996424101947879462784580107345972706085320073604891576376351319994944981422895157317056510838291323255632780236465247568016774066564232341865785169374332977304340900578802628664475554011908328786545720279439269382274436684251858482589034432142679457424613852517422789329778929346819004645185618224934532487227498779277618663114919919884779037119182143647288094036586480963741378793620380230834439698698061867441352309837326921476087277934168915045599761683723081248225715409569557211113625247296298549124998228333126851372485503341427322147503345793232275531063047797560741690589458095740107067438926303338168504333031016339638563242985492998094693467748345879465934902083327838058963220650241762196571513967688460247264676416957330086408216800483946355135487241456786528209915063967427582115368440179717255177092578386165290634378348065182261546439170444906441325313163627445370773321417573666382457039514578669428442409702067448909744301482820764338081930922199154699846920796426505971055817732865453407352570759943751244237489885538943417396399855292971923290147184129049360394179632966762277004921297815364698389708436486748472496172844402077999201481221866303481675178236715274228268099119039694283649435046758536307436709772578161908927548711632903653942816660296998733029803545591979753927018299698631944787220665252452190011235616576202442549959804141550373118237149802270397088947571661674704456366405509634319867140013303090236322324040298939222580904480611312114107403772402173907273797885550650423385744255957872948424170138073812986337702982105480620210870818015035842473888198827909193163616427955273320162795614904716835059567221932277430016201380559735433697674364270524385186898187086712615226438145965920612289726307614725908766812828418056870653775124558935232320014902327704759585751071393659188769920947868682769329110776048502753716119211155151547160705502186868262317071749148212781689135655854221354146318932646149063438647593372688776979023827949085582728882986555912618364324877325403765945998135520755800686259936712932616393149027260500128927235633606565511635578836534009077759104670478095781732254621258287982312217004416554048830177860295589609577385724118095081956601328579520503667197212348445141292671347778791309643412181030781121735989513987781735080722506331439161592322223002512551110512873092865212983062612586963657300499006525263394791076472523295526169664388137759592263126106290709907795830546632347839140395305111659820575500771424055448150372391712609897230153819191179172938452681974975807641737417418206803620257995637982529352093364328211587818457544611220964792685463619421596185165347840926908567106628963148258138955974664590282143541317127599777405240650904813470654164011794035642369560902098858266234732699625827375449957923424760939567374328546271722704228422377972400143688728537890339521808069461273033614634290289982077461601906851328630575326386363248408251384900645084235565322469400809318875386703339391409725505725808412385536696695932581846797477163745156468925054830232949636094266391416580908317163185263539268482468663086212850396142878260656041269850567805802724473296559045656965893260861959250121371524938435298781327244980775760982836137214444867657137808548154889110944487850486101851302650983882707091081300345930177605884547674264788458232067276405533659092069011626412151561689370195432618156048051395653491422476751476846324795321829410022765098519441658158199137859713269988718108162606907946344930242195356003119882713444741218365093918859741211907392243383602437048310168516478208767213849162568186051171620475799633288506036384239566984571098582981480119362567025216148430175558386190217385068452978923067566207865059173800350113529183289740710224519456786039859519646874868425939971410856976084746981477092115523340605975239831198886383573366940841960255277170175063382204432705090359356563000353946637559332136283710733438817658333048634802095624258322621843744359539927292451483103803400753652963017740002861129300632064934840596303196137316332770675887522358251531269689969651295346211628614624071961825165211726515964339184053440835971438213656485281104713708824979759342172994999708978730893606573509836583912952511824822866192060742143241311070620342235664048079923239748401865572782662440167259413243146947365640987189651742861914605105025164303287092263051251304246677797835342966352843975696647584852331738731392704196591299186871748400816904755481047663698084268586690145861240307183627286821466487264092040188678103598052194374140964616651443125711548654749458314984641248860403867869990469835267562158380433251346549615500622534922621483649790437533950328796102542152015966025877338115821619585427660594390598954024177042722117355006452123665002726644813218736015280289491393845952430139674008581616723103520810082314460661597322053386016745579266279288523085700658971487353949521634997277537910715548125253825880735759348457535530803342858610630381866050773236870103610832812566621792303672501179137419765092139389226715055666810781476166540189925710111923877561787577331327959766930530528603277553307939454727600231663414872851736151582089797976993896971497354931666869186304060013518337826095132909371135614017370016608551157445032007361191448190251474464015980217731396888614797497373937762977466235441352552857416900518686393705683702456890996222330103314386792068846292083305976640952087561572779154186446131740678751592844847467997695600434527209006731299557286298342346143724826750646852925475009532199902170021295583048123781160017343536476030190134071153729571906071231759393997325986490147323611629372960586869734794044114407849560707422401910819960119170331191621875345908389113263605641826450393817268529451345690082350418585853577677544720832071523380895007056083273162218895770552083261514284821880477473124745325397095603726531156545025473164671829429921483921967574447890860977259197510100800469740372688844821995695118650092651652446485252057374777554368194108751687381557100556240607450081361490023513078626364731677285355118125081206323372538158880621984016020030446923105590685979557611268749708476137152435083047024184988620731646861375845364426292533713122340447883431280885248532498810438081489327783463645618111246646734940993050536132514124962673525914523598812803200970448292807465233978481242186542830908415080228682390602443042487814663127577953869673624797914401559678338457927088573514851320887385277152669714573818612093945716307228811707596497617159818962205708860121896073397182718628343011517971028167225243474841254924597221597385585153411745952194049577077307672493088008382900153463325550803573699458666594229163878573778858524170675192084050927750757948129066164295405955103409508079988087312921064744389112149057954987864495317226681900746580909553048179674824804026109349594572356432196729900514486742823775467815602011075014682255801941700018404285141636277716783485269748026112122628299312635873977788361354981854192305131546896043209736107490841518353413769878409235023789929860753954090840581345409258371255439499768155693887282968795869794290611857147546152368096989848972196364513611152923849540112664382494451347097059002165960397011603647283306886737407581223629358652675997537013142929179549356725955582832699970738008148584495425615394448152299213878022512878282941105236352077979757702093646196333179809447733779928856836942743163237277263501565534283292029251290361309858611262339555795599353540400494606687076923370315846646080397448978390665607800305582549905595545666608252076367963286829415362470311484790313509821585391739583053290254467923145198612850298933332536653970662717363645524285955642930681187272629225137064952865763561726111684242216208185197116197514050779034439525229849688717301201879793184766652404818575073432426711940327486687415064704083371503570235149097778267583468898227112086700862059198229102096726430248243161925894252777343041450950031277675701687323683031297063515900611547478672653155339802230659863412214385244560370465884760253637671267552789226601661523341783991709387153336025426749856028580652353253535794843865702486810651570033791846690706698763069514008881816815350459293285930636928604577077420639061378379117791635070059439940779377163633628082561941690992208445035494754352259929408218376019815290495392654331230882097852811345865224311384623719914251735661305733029070185435365119440801637709603591397018478053610282985231502314711942159280406408998330485758285823364768941975927729807669601595250050297643694869761530896937200263072497594395684397996476372872721158822732880819613720808037118277471290565708763281718063083020210098376911714014966109712885786793830602353132753902242349766147749575655714880148163110560302433888328440252173431345815221371920645296385707928539053915375368666375596856814835709663275205070880535190620994834651448408764343702306752730597100052913714037934984998426710410270951278585919243261166356592347136478753642914520526335123127124801783870534779339559092354110889700882187726766186643100023354054737080653804564880704268052408668412417491190565269078397172057898443995448369648571376625963658015605183609732662388262216094485078414022981563679757464960707121703431926508086416845142264951074282779735753636112350568165785175462670833971572440322250582551816334119332124954957967697216312900602150681010011203245184810306083685434523349539930066728006552832930240908893092939959384523261481947256311195776823317428713182605726563563068366566574251539543270061928800850471741118579950991368514712780526270574533832717637006828698519416564559253172830839173637323308143915424643285515549866330137366528064640579558865728804509015294535932114134505384212191747155958826798526155442046545246497793084606352763227388864295315932590393325850758292308032033715476066236536744905665184671838362873717432264111360720792512770803870822434162576747460670892077392177990602669443877666164456833667821541846776325859810753280934114552664622398236148139464199230094856651911601757254642397678549365559856959134231425175697423904751902543550945695549420758329294149500677687063122802450783063958711393202871352177803179702537019202418511735982539369694780115300374876731858576820285982146072748009241671022968145559294680298619456944151685384735769539142270478487935229617737609174726355076946497005603431756740586877209276951308045883091134041848928997329459154578711606401881293609283209826837885686463742935409153492156131925002295394081289809966863869066720714779969940279366141141158121491493558980917421164064740692922181457126545283084566727852023577294253463101316237929977817519621153052858250486848439513089143325125780158979459982344433220155249997084875866383775568768262204514707756075282043101105649653866236324959958077215057711775615486025522052229777971110804034242854733672298323450159599365165435361864568438695464083816456116407096095341830204464886466687067831007929385615066844478622155635730285902054979148335574903026336033748499722132324261558008094852225420704535259428716139122888225041787430125321501718460425107198901128808417808641575855229124055394341614108898208925944206263464937796684224025630392980838552413839988844849522373807402937007704092375969695933413082568234651639585057435094006861897874023363924052125537148101511195242481474930076943652284785420075591484793315253644446418351731993717449309977172697859566014088695704354751227027546069593549231239570481985814644204015789990606240003053121261489353458920767335090070341274482769667382527585418387086718292033627259351833009017378141194370490067985469968509023918582490131885538557160989256895749539792166497408137633256110818035282173827659293018872421447674141821741020375549933239545981644675921937223167678445488406813605449627743504308011097715723134935086026509360378964972823536410808931255248412748830792604180255230911330618867788201650449891489040159267165206572622057656981193451872327550644914393688340119134342260007224822343281804715624464004336491547051373218917758726377227860556847309604525010876056465007639365761640326875628071650985014486809292265499988301195601782809553225846958935411511762401523034395838638499909290278568857089958001205493357556675995798625965516553131187703249121817999122960108238699954457291607021271341221435819986905710764196270681678875162753858580389892418967701464245493832489266444532706381959920064524767598188954100508940192546542546488376077317959545506581216864203962062777946504675679527277820719622859564405545282426213912847059869916962423603075111780857902937873182249289516428675987838726539329898170163452958601567215064797424315940470103962624888319508120017505189575695946531137955462603422235336841975694998376125741822655512533574274364603883140480408100457578490525913929861939653658400854061018458100160228957243262745218051619584998028865535295411346512987225877182272313356313759485224219213033728352925473287538102683632173742904645354863900910118372991301258710086330174061568901791080883868760228442498045520131427686335212098077160952622146539847508707694374403894906107175982937404007393612032516579995680875668717948735198063569157512020069164826439277095033048168890298707612584778959306925698447052784962052604425960577524043182314182405900471444792624093647920744928803357854654770908725586804238888716031354466843375752605093891467028054432001364552989705808135918062940655678937583073093189931950867597349688941929638210293500900862785923589128552433975234270319238122655579611877807066991209418604294151765787521719866276316439142136870813455422381043261124112837784811890692969933328089387654076024653363421263961558453646909580067669287356144537933663304331127984424916082261748450032565239920892927226120881226140503020600006088057988025626405538502741484873684171686546558657757432739230079553984064865058370405242366955979668527259149147433135178256749562464574214959557855973467938262420996784027308363211506459971836029835160203688337680696781687436041876012043525328198028649075787014315602129802297411139335428606444113929810902355451267800535641610177564606152651593367806256764221480459050738942619815927193222307294465130860609939929858719487413636440077278435454944983393761481103284772874547137789480474223783450101475774118406719776955260901518799513148495067908064275567469531680143401827653836702268662848935533682456984366536958750127780402585089748915175342200897902756751534902412356341875196146479554919571951137907150990446858621304221602832467427049010973510346630993447494770982516921722459817518169013566960349159395192867251152977890040002469537331110193593888960470031055600843770042845855746206438682659263771152788794828503390885863639880928275394184450929824773432855922022874633311127903965787110787969950712735275602126741523463825509974573833948210493610279127929476184036496420290365795559524925316396900818870752615270152446207132086423732366721344205626413855481479174867096833696961017034700765663691592736338962302144019132215634201871297368002808832223359213074526093953900543273597812217740639891105472298975630778892946579829573374373963302414682463373020493304256616553139191282710985440004461015768656212575298409741861389088829326052967267445777092054991578347441345551076794831210295933087790506165255789889762449784372171643843702208010966450368764999642202170365667780285153985693767748992554804901262569679906665198537206124366920958342553214366461258748702474714386914712158386534809840172962650767720291075630449543653983648682466006452014575364023406860746364330255805107142449884429325301450022797984044185748854524491723692626605848474968152140787047240961783839439578967428463135475463238311042602213533829897657839344646964777525115631295087004515378821793504993147932420174725408795881780322281899176902885877801228765151225636006465011565047126267061765760093933522727197490242129928185819094848874462005066649194293654274834141320826085293153093353145712519012155774716498137269839157107694823455867978371622203882929028499893680272730145015308347930023449305585612818657228445577559799398118003741864574946969123507336493235845175058573687302837546625322371594235138342031464333877621004296485355001833600577198678477606531460414504838548545110824945798229122927576244600444655621512251437534319155508045097748684581303840835574021199622990212844985367676522757728122045388696053749435815094222990832386650184229380087055679007983629005789421224518997254781018592267642723250099718869347231345399393676905559206418341119961440686227282555501603702504957404810094169797027308996388040755022526497075729435276080537201825264338380612403839045510126646474944758513039149211201427448452830110721027360389802407711101984897033239954627633789877034623082488784527792425255577684753854229508093365138186551610300916011694036926679046944709593207008078526837223594244465371619570164204627835321184102531559275221180833034121328653893105122056689436852891734743820774662838614120839960733870266717554280954150484961832095283467958654804847900434259458375858880546428108482219418496379268332451465147210886774415803135748644234877033540127580665285505378311134627074514472552190635012601579618988830427732144109460397600160415489581991438589205571972021444786314106859939283868779349778091644900721434972532417974443152556416445639860806230920200446640595255291081495318023602119846271155898390140005246177904306673526756107057035303908121780024022969199576807266095513097806629830575935143222879995642340710583052200057495263228522215604471859304435321944318142859260763551371431396346228151984281543954191554819588179909427469297079958008066367509293865885391076392509484707164746394731986941498655492784666016375728035984318406371176351144091845203835773137596447499414244130042712934181839358302979641230544607365935381700060112578238683311527922199859779581235450955956483028869997940587042486168857959401606878911691236397422761210705307118990775360879008928910346468555018447180053674049397328386091495338722849882173075736465414611961381635355632265606584429748236486888670243921861136741105782614010852637479925077429888919412310108230814143955798565267986401125954861364729436685410525643638673153692294784017773494538249434490210577099459508918256489389151232704860442071671180763044548217128621931422600125384396894704948470612203239830785409111748165195402815746990428039416449524222840689425014896168291763770935952577976695944275297236974457049379414939388973094724667422439699786756390205725577238087691487569550688136440060206967238052336902346418226874755745006119949115334674871803587574447687164464155150380464867531060688753700759988007851261185252876675427117510226260645841058907282275737825007038308471319736023579303011059160784562841534185587778467907789045775862853662987027101449555237547997498195184898875841093403647106082262892635413842637466033402152399887864845367216128941402909316910402471773424472285727500378819179189702186972873230835447028353353280310468559420098962455080185546866345278748679005748033785237509134397892538220144803351394059433370116951927117629050300673088318547096968476751148658993934050043962435527792967027523607171235005195051115610929543639724251896598111016379702831288508187054210949044181761148243133103696025059171248919410314320477306826045987413009768299461338903532905050299779066756253042320568749064135882211270693572009026440917036090446575236481671996518930300846013830982529330455793207750418382200927158869922065831548031549987338220725744814348140580291326803541214982936217012241954582139958086040528861376415387517260971017291488231958682704818569693882034248419403865347742974784040485459248232164090307900873417382095617348416944443893138445333809443610974496692976152355811749129451528277928832817665581207170414582423374307790908320746702982910950008886077445634200683216360938569675414676628020971581560425470436062832771917193059000266474500831899227333837922628951584518733435471127488425219362370264043836739180601227642082398045858800660876956168595086244358551991864894396661482500024474424946608008001469603551941563074607339312314540292299141074931248790199493500963314332323869081384891570655066805262050615852468071076182518908982615855191619560529935841929794331586672659226459763909013886319116652653773028810872889901172597440629747634208554314637638616233854955624161710420093164995733280509691381874759740676653978642021106939509923506020356123267897516488831693227946468086972704736101602144517171583572460131979663595198560011866593000789246030161923473504687729643047279241699572815825317950455949775408513775161791615222489999402663117346447204698530919787154180757412843637071507615888615331972443316593550806229975299494842996731369788278327691705328826519241567976256552453753598132049979421286455757735850374899997295360272995500666190400778636331395999493268921722434761153085102346087474133354413857063670955603364848342669024848307886496573534907556377641217066442661463018565452920898757909410108076829894293079398250280804917345912337441521196358479031235381183679854201067079916900364686594169303461992880584495050393960567192070227824604402047655960886264322262787310461467926403420641873070413309732698606408571737772595829062473523375540677452032713338339113883322283708320332807789885172129888904949044390249490985458435985403017316457416858593734276769428410007219946837367439454605911162389673181599321202636829604513297424572559990517914336257386255269007211100837414622525579884083949754478519691629765162652640989697600869436240430629181104312474974744680267937336594511229117678799475263148506436361973310744266424673423200254993862656682491779376642190158657590831359843745681390851220425226300568547884370908645436060641709201514524863565839025875815311659160700678886420713870139403006571853147881417747461221445189382541854254022733453605923112371489729913461185457985265633990198269218556290709246027725829849356402834491861666186867848305270162508939954685662757446421824525240288323784934017417108259536593992177239507829386464766582695580410238363260982685159574997292781760135198370151831525562227879254591955296920300989116700080772048890954846624858336672236696917030997512362849495403328145397160547428764189438357085378194345207980138408844549654899288853406975967196128843769346214420050049311563025908276332506787207996051430903966063640524474239199143466014548007530717062640283694905241647704560307754597008721756314707424317968366290749846095955699749820211974680330619091694760795947733643368039310183941535794376690115643712491399058742737973162359882470854872316441673639559372870247447702976711714848468665251040990395668366102805142499370373522551791618950005146716061999444292538341250745486691887908081134039038344706370169684738194330199702782082426358681083176254087736122774901530231854355540262765444191881878104638219692983233797625381566961583880359978085331969926013148860871623679193283879764587686694753967768102071056532195743556433385765214617645633677090067115460758120706401933759302695076790219228850250743593847104372354497183295130137444478764694447564830282356006926216486663709490660308171820626773372409750316487980823043629968932701482186315577191594159834890776876831341815496230480561444816432687754900864691156017893768717763241169566463764754220022593318084214608760872988634643745846440639498957266866715167420890256646151689335054548795004508857340366066597224262441862355213599293410076890386810049589643014476343653301743482635319635026550128117113992546322999578824921397969816891695888994223866083613294470748496951451412438308922322854713613435561389075876875229434645575128790074979230730403462795608680858757799638347506587789309916688657569895985799444666594737320152740104752717464536043685727182021882974390402503298494724371996993699130497286023776094463889741663692505523888876257624026971251380489117732430380996970678657525682388874979773914037042538199725627574886290421755918614596975869524594846857385808665179711456172372620574172708508221817622112224383991414527724065135203705314222875628409829693197312239217003461758281416208201026991883313084454032799626651240608236351629201042990100578981154689441777211125953860565071608106807069267870564386572512582169777252509834548121854055010661598425792438588814633340493774574240034568947170442209100404664394676522986630997698081518009278924649157616332369569796541811933523499010371018561037935858982079473786965375338831842412216759028948602452412741396509972004470144108597219935166973787277742854620299888502877382375877910008544189346660105445357443008267650854452910590843486206414477797956336694295766280770113831120663499095367098636901958950085216765240291685039744972408459513499992369172811997582839014688903256269199544406976226697169386798453060028912314193383037576259478350076857103707184720057502936670301278650504955714252599825344564210563968128919421762254316201172939572782912561780927236825022239037689293162515720455121912339291342149290128690334144231145265903752318078959516932126559388582817920623089355561752020522799560102435772628586792115040089733078238211047410033686137545495299386962431572793809466374248370737479307807012671379774756377635128980537878696575661449637440994514277886002719997684691665604827666150037683143529352467006212874813510509375690177087099294338124831076553896110426531938333130869622924922797006700017629969344540108587622357273379345173145405740401510525786603572803664865334468356622226007906281350441680321443893346088303471094701130758995283343434617476302157185101195156788646088239144159492659892352757790210914894859615881807437140455802733266975016787233488208520250826855987286172970554524357834993549386675064961422998405166140311743757562968892294588596176563728557276455442290494695199769316344727203912717322388963587051621426194590469243385165055813476037665762024254055405626290775495589276560856894268422360972663552499342621403712634017025699249561120347548266012271571206071562862424828116287176219144656569376524354386080719695519156087355406302365909808993757004734591986394187023486793042650640965851816553671928767102006645529782394487711617508859643092425234066732923502178293325664146514050301008096496644210054577880711286002357122224052092534061744548188988480018105077791503658341396939852072067924330241222572201247652367323177017418351757091864235803364610572982403986771771196786414624371758997538269703971382442866755589943937542351334250270094484596787596948100989715775033407135908930110187359969513086671922806633470729578148253018038404023170006643222703282165149082495241977460668804985142846331688225073092515548079270465086973144144352537720577330657165607242672059605306084638078783031054817438280795004878572498986835587071822985933577037723671184330531581005395194643385133625041935737618174923454125498842588952756499625443404551802570640794609303190182542616704910500554439050152601244321443002893145924983668125433314472584292137511499418967474155806581513577343863522519378529135044886158285553931967866947861370535625297622470835766167397486266417612211746228254812068610075925861600564474609528309423052134147014044485441578017751031399542112332109406199376355267315051724696078185417415395936566473035834837610008189961827309123404229848162247090245919153797893493804424732791492133256687703751922765564116916438248637672688739691271320392711754026660824934070516275192304465681855730212869545085314132936326118876787032786799596731640952216058682556512907810990363379977805161167547434932510875202870655478545120845028316807253788450594461626256690150241999497828128344184113968455374141100536205986349705032905691786870636832916903749011270373643483747910760671450147034250850178291420726465089656218298607141111228554798767158295034887931966530485809623526417866350954155340469352813923295704238521850323997958665684141004683583914049075584423287625902605123553846964065672296818112124919126940090340885569256593581022820839712823163110659486688303557751094479013174176349591736135875895754758230343850751001826099534655387604224529999111791963194788732513814427153783442188188768989557096545367328926699751337489365582162268603709663346310983845727124745400164213367664938210268196777671088350757522871306250727840838119634609037566471370505423200473884966828164622600952842220465633832199046679294529344106656022263490144508817415634498360052038788301687806212417030140186134653565324051399436424155112323332806637127189511209670031719753957885919992840558903673918585241603643171146196622369037782068451525692710086375604903504957855919731386613131452871102850315660336824476554714349495409566466053097310121810606750563231860361569245263066751357283306928992505396569630519771326740602628679789653945206660537848657949357179579008522146787856881033126117071165730922469926121440989917516022429363912432296173538622217111464771933798869218443907603925238539451674590319294804402630778443183955181834247236487827996133944495381381441616138266366979099298800052174941649854689296991200666308756211511993206182790606664409204620289286426770352705383672252387247723304398614271875338420257400919136279549843630791160523696477528048783147780695459896176933746986620945470363094145083809476992841507500431203692030508073323580971063317310531312240398167270878433658947616810362829388230503470901778162516764667286628195553343484808586322369224411047713971896929492554867686763937734265657034029855517013275136767455860758388520813245731148155862935199351139102558909980917262640508265357132018888679569251833030165643184944666185571700713153345578870907710373486302356988378283635813080718273010246110296785696947898858689354869469564602589198099334568616392190178058429832939460610509999240397675842729343850061681937233046549139144199979243501418929180117771367511783594562391482060289343877059856172399940144472838129729504720765903756069041973520277022707459581677570110111731896534698552175727392335130497489186342002346094812722694904419926178502036010059339880426902080264286095263901833343421010021702587832236036123583229586727680673596791265106793614029776960555910370897950983538288254018449697909694649367531824805555104009829699758900545233749542245768637250191392755422282668224732167621009560369118080718090816092066288526103924061278876346611609495988451870077597902279950146569089778870715921215773824170299939751868225026394369044108493123606008185499939316290966690472963739993083450682793299999167752035930866564029575783115436042184516302520577828402534063039510766364736519584630169755282818117866651210491599719998785924038676437762051231604315298442695329190717574888396315721008930429161016113871250972443121587177209724150057125851684606991712708444294443133202647362827955101159744933906918543375032319944672963158607367985775209971338987852253705372659665403859172334444483136662353681488206200017979786804972808168690492134890466567102086944011126916814868511709372819766727657877879064315769185305369675301576047094685997836544552415731009965881009035097008830921082381532898704876734625144632985315172124956263171353848432316208969374833687737158928840608426612536914025148634813038038671014532300986423478054392192209629446748985021623779317283954704975659593062814856064057377250728501150515594132816220375628890647688532760691425859757127249345373922871827121054909103962462145997879594215141471132771191794736098532017301658251018544515175537320009029796477161954310417423988465024197100826774266357394692113108759149982781313631326524925065422803477919865462923362462658302909542120800694869126132469387377699368945189767211761713650330352253557006854213968159135530008926198807714531471309381253253524673126868303158269975654603256648875384243544544023899471195093387897053543167097910866273077285150111502355415478297585631645691399137597368981933009007532683596354195909777517287115427547872131232025249286182116610726621975465121442949540591170217969528762047255648252841360435410135494804190191028755461714599960414612499200900835081322196004951580913483626653364065142603949756855418208755556742581218073881239530768121423076185415221451494373911008382663768605653243558149385481439026316032583877410053922208452500477691962690845345411877025197389436235068788520080211899066148525498832956244274840026144993243797048631300113549014740215145285525056245184195857111288626951372757912979179669835504507155190549785104234850749369307227472106708075825870423541562486050279177193282283752198725252632180863585533969999924242103108245088945816732263348042302615290254489084469279215560070301514419399151917502542357174046771221423836663747293830618796690114174749707812531385842514489108247536054957496898439543679010730567959160339837383160676578677487869058842410943541449315776551346853968442920322295902634275281398393962316526016852751573181320545555706800586921012846041716833482953269625860636205911547786424043475813444380258859042923837993873203635364090614555839985889175267713859018150759878224765786243154768629300655347378735029525159659686886499918896248973034918087519850850618438737372855758572128332640980769205342714753550865633905332552640831845576757581682786644544000217222699493272651381275903507054290436579342984897796138527205782106180606339323436628063127561782853045592685799493336805948396488827097423899586072950188592017872337563448110442938854097903207596339813626860837726647505253652676838238431080380744738044163190798765211439768377010334447439692228630499968365999191007409006684411810966943723846114839109838419490588957754200242864091681591333627048229108019984249821721208190341359056428483496300813699272053242136944827263811488456493296583816319239774207481986965993405235535389937175722015818503688152748540379138414106055601214084215527623737307823253874304311109465187260674700999680552481619703222164249316448785216872156009453146193199266413546620365691033312125241929883739859450665629310342190651270777401585640361821442719519340477258474746643693609496740403207376264740874762593297082070202867410086306750959575752618764370676935453452103165246390819637699404835949214735195572704524326954695683984947212650876269507084750727979068143774528745845743992402047571481754958427850255639938504812775725040726498378884742370893555699532429093245886145736186792778170956298992994784883965652359503831247876679349952831147561565464197625411998555094119832788173323872103358496051396409502242683540883619964840775467479910471988955112588690574223296177185377031639737374686340463966663809697997246425435152824241168865911421447669929908953365002391386458323964671455298113248723486178122173482220489779252091690884203647545605377834550636365959730581335479004201831509512637747700927561600789750911424954761026823780989029699973293870274441645994386736468185623355200103743111707644406778839471285355183341467857380519093559394971493417034390927700177763052514332598791863209741751542573419396705517569108596420326636769074733140984739001589923484390876142755089990305353534263408176321866516964480118296735527274351499012663559638797601032026124027253721810320009712597064184906886846253346055201856393369231674069917422077749580657436072604471066342578812984291162341787811334587116938972132779310967875097887886595047286168153720559516733192271669057654022045530575431860410461020028273505734939117220881439897556331202593115473386133229511648655401368508194621707962269838411758171674156416173838534172052682381347314017174316602463419155186937990870287611206893148267168037237306829489427480271030572721314397310975208850824014590566556528386036131327431988700555748992360837613148369339755232160763115597550785160280058508562571507610410378537846397005626605785617787013603504917114616928851257252198955574558763908470195987246419470649069389704393273680344642751774772415414660668074100731591512703809026754215429615667236990092163890596341327073929216309005142526029154290770387788330792091602879987494117534896535926028521916832748771891335622180460428056891479814182738514694758875510330723082456684680874714889052983433816225323880038409380423064351866379849256150141075258053773800112488991351300087769930239308852189566643867710845077418208420947094720333402947433411313828758401858609213908624874995469835827589119071329908755482404993476133248770042593281547293159438663645577339899572074017908023849517199459776886033724494904261348561064963304612474297590367873897791205310490084061260594301845015239787255516640252860540479652513200022690864894488363003485295140677385784689409151474027332462629821058323036023493749078624114365861175234734331583943837100803274630637363704704621187578670669136316456814968315810865175360595882482107214419634565029267168571491823538064334212883943571336036127350209162657189880987897422585754356079838941514056781907267103243958799817973467247791582111100876457430980004261369477552570800371149930924370927944738844014445451853295438385467723494683423486730359292030364429451618736421404223209049041877731892915603359493851451443372980060085312875975676897326747338266041652245894874767181937987102344234943512838731452278158729455662708871758961689550338509218900054545324179474868055306547830509745245749751169449844294821315136611107601033200290945554907846215464808599895839945373961532899865708814279532204104383649451566736154464152105029407320485089665343766928889252064654544737164359215625277872501845205507950212362472230638580451729598217461340788250052785278346976367782795749218313709385675936764340099449769237187417268470790596827074984173748889553741201383007167820521445057966354089134496150587787195176628060758117071932022633241073019859339325891841788677450102650959479973265774598921450986251420015605270041024006421087111115003213327566890159008607186835109571418653629925369188229612703075571244596261198933531525075072938890473863534510582954401739525471391207821367819094428870159275597015521785866152500986139487296822695842431766621629693751480055833313911749082016173577074073664286668534390397547318082255809138406314469280965931427050117212256103411238616892246684079760892000670242652213726180052975075361468916883065775658636958385781611096634112077030691224094780483564515532586045035888410625937703021212487809684545237719354898279115682479253598115447533507424992983205567851123871723008841439918180717994176416425460705127470422266972053666406569473284532691232356370310339437597659762536062986084424097837566577918568878830508023931058353110248984553255063742773505978568749538624980402790376486555289292894740686178951409271291509409967920205438999668754893789409051122578444948524556216425268312413876726822925757746613197021169827173785760944117990589476528116236056573762605404669809827865056116767759556051226006775602887144200008481942981258062159696003181420045805787719681301793789114734930311431978859469134309662112414982411158564844565186624071034102787415076989649516565792716146787208956845586319605334208162496152058487286482698191622716715529216740452408872095389159100883435329276658555781917482695474696974200565216805258810182115636975306818673548440867281044720548611721683804499882005686335312830114203157500025253035534174321932782517272741676258798766309100103906898101879149592007775765640291907675322221844212019191208660195819526803591364098842502186798644518613318077043902121626158079259908349646107841844320316449463610836622257575657988592191406285767099476843945077891722708983543205559447229310345658228258841126553174919766745482172489131210894182556962460167162510669920822244152193074451908482309712822604848495833703007651143011442679868248565719401360008999710256754201967724548581648071013505168509453874597971690257034526594189476604033103100642074121565187349429266697118333526492791320938627368483269477320242311894290377558705184310402835688150795072118547351840083238421501803588359675258270282697063368663493989729359334966564774401271591585985726970557053471451591575237163391782085232936411217582792338452250482829044413039873269424324787869456985978739975436603164333361854145451438093509897405931125922325543050006554375644049950834000806675180764260245259722301349381858372335750343371995402683553194488406918150472128649367321716172937115285804321897346906657135050753070604774959357804275170427636436056222119084116692293321374833416814599535688299320211415716452516539129247709197145546089972906928913339119946718307747684353788950113485735765139148007734095285268398744428451303066457634627513914806874717816826110888901487985710212007343643508017486904297565847837576940543020794219606566170325462353200994372573639229957907911511908810585085290818017102754861311531551036042800529548433128432654257891513558024623243035144747416175032289808444322320107550286182423801395110332115292311060679643814056580686188247329164847482372937323205868234655418480119076410828578176988974887580753780178906835773505915219453216484126698062374299009877423969005588995212094096309718059973328220355720485740764470505603518915225163797171698751535918615194536385126320535125145161502961170017745077781468497611465423839010384721047823726627231575127170642987472176603430287237807135371068649236156972658525848070198740303042198049669843751375196213979797210623528680035392398862152626547479013368228643286740843946528306449463135648947985029114150700064267476315004278184248142968404529161674363153189238602888777243634907142817938377418531197565857236417442287864297999053754781019243192194108718242633085990765199546837442667749783865973192708573391505752949661667161809957188165361503152168552897894309581953765072045383726707582514881071717721554218948992012247522803118933568111608329058260565777146405954358434935975545750085293563438386103733352972113986009449895264472403666285243489920938612886648813025304643944383031108666000959803865676703274564830398730878503121652783491722077988328550175026999859640014137547860174610463388128937479474323705613960306474495546318414892192363392030220041929640866578508396347157025995548199561192852608705372464208133517222228257797106350707723931465725275460329596756971200556795771119755291851566412259349132234745574705155302049937595846916345239565093348143360097769147877371547556217508838571227797850281246216457494020957262799915785219725811917290060645590092416208283224947630387046659511921726172494159921010263904050239920050287230074684821287003189454138998793260349330129123674685810626633593369576458937319591699952958563415583282688887380406787208654270615625855530736472127558023284641063617254795884117772905474228219463905876021739799706414126220570499604766662346156014561446112637407888505618365577937934873910569853948678742548206617850788243527130219875010122942512865730901383984353098518395942659279662419849072153066807279651830019184619298101228534941997927736848036920138442610285427206954380162397076834321859938537098990446157686210411404892407058902698349385970789021990238245314513357647679818445035337781924217187260872132657253232952314573972583854354189782510455422451745475691644659968834691674840982056339749777971384260567430750778285263664557025406656562342611937310500460541692414624060740523467945371308450310206711437000073961278633640941246168693099209256271395164268008640860954983713952449115637313112751602495829726764651542897944574736055510965517974445574776084269188573234355048636561742803687258614172642386216182904329389428375804009984061307525916918659525645679692495922946321980298113623429406021177536655553834356564298422559591128760120154191447604642391606456238462354382314756776800580925076939155534235268676332344249945966963037285564445596908051000563876351805184468426624130428063280688162205370560045896748139086714329213636643824819577268617600757716897658374253230594117330998417284911438333460043491832302772693816172727206486991090238838146168798281491521920561538440849557715844970421781338355734363254999258907343678479206759912564638452434983857284803664750940784361495809471106290791820563773051372429815633351082608791213955837991341278891609402703783471556366277312265615807916935162057604829359528331736711798899897695451624967855826762721825309928936861955951005752303832618835127088176725514147564466125742173768633871836453890001415886373224077236735474710572389046142706862212748087981448076260588761861271834946014128992071207539603616308888733325299288079073085990758925620992143772473631669051475423889304787103291776495010961707793104114512054905152193390467387914410148653494236884556797097467887928030222527015986288959386944142205795217536958974287015160221419681516704041401872690946484270769755861570042064544185511794109368294001657851069640377709075827235740847630831843530859563989714793920431382950421067982047652267310119049961867311959209490312615843517947359352367366221304061421961164139519175188190826086734396157680223753360331563202423787855262197349921844017771043644305484879249922801418564449530547877100000826685309657761589382386167243002188789398315388248829760264411136961541240615587403085720886286480166873459168900972396658365178643609219421179693909180539283321434445475515669472412685110515061603215891355205753709453272819251062612934724049122182870023860613787145755400436417964244875435571645828875535702634166029212924126945853878367745681958390504518165071720883158591267194948229487484789000295507394741108593421070594513654822509993645061887928521427271425039574141723085807594114105404909224848877352504070485778293113815043682759540247623271597121686958810639078734001653293015176573702354103863994976429999226584210012170973997979835947931760717538424527510248556062435846321900316051493215459515824219616806550317701220025612500974787668310369321661480539588034240346288313704099369328969695643262265988464067229585425052550079518381688457539121927807299358732353876944325707226898303972694878983280763455083127298219171323502065807671763076888351010770691484733169980603172654492179342814033712299295881689776540510724868331487737521508745851329389667583221294478884863418788563193440192290913992156256960538488844739391641424635887819717381775854391265090610795735840185783784297313733385214148279588042212476137247853158980295663843391392728346753265459553287962017323187947318783375868531426372707773612553853329108013888466756672931362967048844000430051665010361185825661206982166801098236639863620133721363464633698164551501278817296324898062936387427532476954822106164208331852408030949366608450741357913005892131996499944581688812204260361539970502548681022988174047123276814154405105708817243687516452246793981226414771856938438941278928762241152105200492925156023555123096761456256295288189248792121436361790279396467354016321865856581631837442589416104011865623070106561709024052870366868832053137897829296528614133205485711481667472848949676115668793717184204823587832142596941174618701048597162220393211086951014005282705769018905948381878960244373699212805287966926987099098141206091260604386345982741560570829536984263030766247639853343627704317877482167709399316394474661476605385295189393196263722485935068726377757788754327090751615474573117832222835288434639845196349043474734008212034780877851716791129179147740945267045931134837792678971713516550339105469678017520642334661525244534911043802521954090803738898209938698578992695183507679127386980924028644065249291774245834596112338121902476741614699926300509999821534724323375039909326529261698252334877922816271470787629620346588826524336112118778856640996149455274410929389654487719737671541200226705118999206875858608446218633258164588815146682107982272237104049392076129387788561710966888824030297260278774592018591345880095783159617688241334157905803596900364427903294927233310936962540096600432302402749492830910080063090139876990002705112860956148804844700301777578414954041419674092636808696753736845377147092548163509052260726758513518768156349390849367045771659380006212435598045286434388169406340880548792207929406252353848718029947874438663223551030707777597380416470095954726294322978521371839243005418404341326291813272597333014911728661107400063122170152211343058100112949133985339566614056597427989201438436922698961854734722899171453639843100648538026163155849345026148109641831113923088293777806368605846486299195379990307526808770972091982554303210065033496984020444231945201243340204568204436337818149497118743864263244490149534770455255652086105507861942243225947212800924490490039213337159637237568291849404543012499621858206397585178464276156018247642204730655848003350783361274900966268073117208780506659453051547388582146752936620465597661569593982971680120256338787390818205984570455829725441827416942787431301856020230347192601185136140314184335676482926666653799795244962635116226014103635035374063965103777759416657581252919782612192947919742423910028870801430855204442360631761590439199125418502361150669420427975035609928541798163543514807793620391542683665672897088150271023098671847158664678362510817620173140349547015981717980748473588742616488118897203704508188102889278680027498991633850228904624179370456553917285554052151308767298492178920761297088932481137617334932972286819473335018048267243156831830860936107938144074004947713738302345640892019476970882125426069499960065725900467127683360242496736824083140043722382029801484392658602103228694858791209842282836503543747541024651059027672848766769155132258006180771448510459260563941866643045924008907071733429789799434710017375452706927844702140563449352595221291316310906471122175632256190741326908122057018508723117162980348129304847260504373770610471889995171133017341993805200606347556387282990881067236330401657097700973058590858431847658143532294353902200930261164064908992599041781913459362654736097239560640461907449924360663136626925620019292042540367306650974781445407769189260149732531783465303521846220855834986198255669830882512467931213394513301805694455647165485267008034570628472955513306632906941441329895174897134234973382241921614864855008361538421540997029153591392415146831068242382021541097090087818943218101968690229968291441767924958436023151599697348926274121856575208720120346837231028953585948923183113069909869372434719474610738381417507855051882484582570998728855196478537664484003693241310963888205615094199796164980298450268213277998569191276931740378963433872334846696439764670871789415452955513369216811749351805574823182682071211590834581213780690912134081782212215871382970593398432214423296061334555275218370293020188846267612528629913796696691875147807218916651521311796629797906850560193113260983472595839906721623692804567093848307057948305256587172132562950124378607313958349515100217239028054015869705859344356501375745117182846128946410175127218984171117202341498063028522049103212550978566626289739326322125156685747520446464403889295489372220991975489041745647529226009616646863560270756214760755549220112650334458130553500466341927446640523112550024764318204924072274059433817129147851045789193656503336032275218790993437477794573748814164832709639335030184553576873846210095961366468384328419858000123514900731089410198641517665149372383824251377984558938903844204238795320927422100755446295055849659924362526721485691404720799941255517308729672876944501844559251489612038921970608650729980245894990653540374335943237460912198173542711284751947539086458956931393304619457889014286846959763889269733588431045775209034973726635616644457481325708569785362735068772629176589162161852283019386262784388698362347853794711157838844529080947747880242885531181702730882156257549871370218886443835879849035355722460800947274392110543474802651740324083250263139415242483769305297982214550533673169282397832169645477568824082190354293390538821953730049955095265554013862938144977929223191446035191420184496974885684270623062019751632099873351034330217997817204422241075765815461930372353399653814408606390242032732530266676287424751447546418775858520108573615023673047154242534980723318171467171937239052181421158190014490664616793941215140511841915424082259505060877414704582052008078463727270413182701504701604895495571258350032139335893259465571792672848861093966897127125737011069294391225725715796240242358683792931611102496117855881465596287731555546728957939522022376358351361129112677901285484319455067846294677616418145244069792894459946553855615653243736548584697990854623812155417113333413072712962153718389314480257670421123194346228551938751275178627815941418092688088490169364835282396195108450445676612561780212548101944777703702269312996580413587679785242813024610636049449527117413976441509029794110881091460930021351460340755666271657200055324182878316338722068225432966582652733342488202860113916154018109574481669184236604519814422528109580006092233569449793175397199109423807624401575590599153159745916769627140411967283319915216893509879569586555575855108173287729980525903205025368126141618658130438451881115614056473304972835151260804577743095866480766388229372835734374455073873486151993388742903767599190037881489434992962998375065542058970187541304492079679410192708712848883796814482745758522243060710904391150466260649441330614741256498021682052183644044058656173934245460278606833326809692401036404169064469901947207635333247413153390761258766287225202189885950871792194263013381403337428920142557550975710689633130995150972950174649195309141355730644673107655655977561540675816696356232410670621894448044275929630863312630122236993634967514528035416403027027543671895323337790520480924445592280009434716390969130353355605749036585781750558942035942145310583456337342741327692531905897757765318057385445673254411421077240416365608995090820511634016773187962761932358369095338218251430433141628162501810075346964617196640908982665451760693022652156766844208752553785891842509833381319709486988705310357937402315692829826938163254446397176025198463218663079791201533724164569531050012389954096845332754217467648855160154767250133225652187748122243003145871242565691243020137313030042972854955812672512816879292063713422366371264313446421938070049485651652395226413445456551719655078689377666897163315850434162291224351746029008514635746303361812699891767778575144429643398281656115781431540337264520316652150218793295663364780087886667901055599633274616621992740970645934535905866896175282587573116015106074385023564419420201836481767317926283605633211426143501344198628617244007950589904451173433872259873857230634538824296490972592192245616204284307994694387565276129364730214720293370898821836208239871047790601950593619631374109969948125874717601885354733410735841046166504428707867573116292654002692369459431910177227393981626098006496774741733336282910333209388608015831090351563571024577675430345408288494098710008753801749998345181641745098826122261889065869503252204044347717599274804493208041870825211723977047066536533718053509926092376103764906414494767615375762090309244194626216511368005050535952920934750957109302111591993344664270280958860361125231483246222533154594205257615164775603340578951592507126250938413227480741793700104824750202531339828556334359696397351319668768440546087427385591374712769134962832038038019199040248623309111683454679698912603085804618948707333967273424654163247576465105898454884156947644883632870956830316626842187511486113152402323953054784404486234320555542115867276157787949218702531531226433993469929876034198041388110734678382520592977902282034107149224092645713199528584396750154983926293850072936322155597909671350736208921050971037970141003917873726125029067631775219241855286532628823141135071352512612325479669973581084128157284533160056938232338548509736047665598050984897586974173070984218838590426950391272946210719747338080827531644319951817645328439303169886060047579598759473014658092109865500734807832618921504418435397992734983410959533946036090847937668099234760178329693197785620741941696449793077411177638136781480323107956136478672324163580232572832688982210066664948552976843699612954642890507307431428203990343229362148142266194503965528948779358028720965422281175989048991353687182569706000553622964219616232286751323342894608193159347289642443375853561517477460735397524600236193847100024420765269718091191233091415539877088786997592619196238894655737604340998488035828368078900971968905679518946521359200418541355456037923126408774149179794528166797158100564638245078475121008579003815494471688965979397816545726944400917884651779169004298322673266099258822466727461586440615590353723277295185065364289745443084727596328251307383624107313864870811848370287762889190049030270371602463722111070503617511942150774875978328743667070825868507238476686971518604030290407027446951394582612387910284617982781675903668985092280981059637664541816025414499842570864401244685390100844762917999216171059160714112183818221067600369496125742729301502848499163373324781966125484125361504176734899140022803205172993678665692555162236319842799876715372760647997541616702354104066964323401741873723876542906275665678585345864819989023457482909547450253597538378278854303246672937753674138898183866104243470017692964280739718189292936655348757325801159571638341584477469412372549569513189700360280438821510287468297200369054438940714822425401317890283773730328047760718424943687407367056062898810812081096102390934134749650437164333013613346097352898954498517321516472422768258952815633895997469533999216969921656330197745828312493948172007906737725530432261425217267402639550271144684373395148755402849590845282198363942953534599511126977783175679948378078835881654287025867421293008200028163456997932534153091348441377330280804389312151167254753440201172438412631970715773294793444849833200677432137932404759477107193111949587112599397675159303471246863842004611825048527145882322305366301108994533747165940850416077607521646289098144853977304171940650999623055079503760301238690397231070458299507029071280879218471084711882328842005106282943980070136353005942882696989353139511445522933037154366308804332537906385406146543813644833292027860875229172170075401718567244968530329037402855576240131036070920567380565671305954320785662570061999348633332979295996639288258844493046764201647418326483649094512017911387079388193100871809850408315428370795553789308512653007016943006316373594643355639935184526307659912007804931028345294816337558057361729259247768106371467167026669840975967815830869186313684304137810748006445903422686653684107841431019436370433584876355477555714584298938855656388640811798994257272048249775620624102380662343313626370529545286030732052752347522924884972501147447718655419267457057529425151873953200348761546154828586779643114668480495294251219428932746772416859840773853835704998092966308907135331942837096113187655180081484091265814482565115701615421960217559404733687260948630169188474509994037460145461513922530590085085605429123088209315129904109096641577988710881690366092216406909527969639542547439379583144541754013661021958193549233921836770590126605600144832476456693769523388107362004654187724219952651311893750297348807469247465730685886501282314221586165729056522204816901334078785047598552637731730354471348731024393268965091637463418512630139719032022883005419289186463148928280146426536251855974160709633418241613693590502990537148536299629153075411202167655295049888330822498002402574116958810408608556848404780857907464688197025982456629244480067890331671863696258838317868185219888110869573691710432899469728167562901536561017338269755478449358054190511034782727031946708146981293919950866944055151581608670087712731604987199463641658333930886654487778739483114507346014976000267852547988721993115990577582036064311400207857196383607501159103632928358172827977931696378751327636352790764152755834711743653481708334996628433868256835135514930009150228729437209766224177714471341030159905083514335855506340974398959498472661847425939450058940503895153906353849322041277618652115219236190596135911662724879683688712986360903815888138042989589423535618040800130723908898840253886224215521154202778112902495523124607567267557501790559085282702338132502586400917304952185281221001924172008896755610483871020643504080234074260191575145854165306497313887674598360522972037402526247356740187779403125485421000902316694502578512976753832133918880830863943272219130639486496608585983358051553636088857296781028214087422939037805513985356308612241545743745762870956241610436865574967691294779548238912665598618900735870821039405082005754664203882146876892392689770252824937373632254626334760211293040002342829845647516534517933823913551282280584490861208090185504826191631086198170467035779456641799103410616600317406501602461094227364127539851661009714518068824189469986405935407628935262206412062062489575102462244312491590356249743243102472139912535041209746680592507486789400456726721778917965871767972136736139236745268161685605348918900306662153722476031242628804030855579161016718231872582779882971833149059295281406528827236914109593737867161183373076343472979302196902663168978320695801385038990703066981066480626884607284001139639035595142663108557457243300152449064913145338313312146123449367623014014960257361907777323574914567943239628567855801308346817863544092256392167072319611921542380239350704430925815923371594137012874911170383467708744588515525406815676020242490593795857260508916275763611378197885605499550670841267637350284185707435661116628806369979421705103022876134258566037061629031942675826332541180304109521412260212391754004797471694620983408609028648976557052498742710832220617661185551441599787081002022184826435985355202038101794006619144837794274451253154351739049505884442199109343413614077260530160234203174476688123543522076651835076919926469261879017876992746905750690248749218402622599977414844925916012082134399826724406726671035173181266454273960205631856060421616767275264854744174804512615838965792737980954799920857107537869656525800416488255200198431390666605290720231909555597332936641813994433125023353280964198710326998435615259514177041384889573310272519826349804974464942530016499479792338129416782870661178321701225418210822423739129527539640973701171145579491056585934223681520832035013155298676260953941663754609987880469925700116198019920271680378535900561927145556290836764684676490015147038131474602244278430730129694433054731989199510505054779139055267179087184881829530091681067367744902362190076188468035370156923236433641068572404684302089712112132079654259730994101632985738566593018360651621501897671606153456041526021969449644202840103949844506060050814497758268964356298402446849907623847111590022479122571564672746094030117872737064172902696781729035385961365898153472936660710541319871996926892527582900403288227382156168976290821604807652032401733544563743096885559141712580462158334509418568136735802007058574688651390410551016423622252504169622448053536675165677299168714798464212929818168316378509489997679700184436269303448486301977239860072126793394289746503268951872597466635594482178026090002935868830129971970186634451012536416124352406874610146050304915308999925143846923767054789997547367931808446005119978310347284913036867121818429336201057580259984881740014743591012362602539024565913602357023521149698033987544891548274569899752443904517424356630190798330915851944655818481396261780154605092235921534322617636098603511680355818606123710984367396799751856932752601660926849205322920013903182723139094709687920496698624719579871173322392486494748862149568753514394994084930280787404093256622131067348363896501379502646949695896610309784922135066328811573782495010001993260583395993019625602537527835395718694670177026450810405985499063276426736805177477646616895894718241155252763570323283509742624324450039814579845943067005990842504109338627109663872651517932351967335534181417735519045593576994748395246390398919926709858675877209398709015406030331170821104572761782490641098548514412798551492070530969537195972937345743298512367914429045312413470168401745184860226587286078721952263845841209157483987505117142116064618534169016635197593472228822254215673283070752395800137393968970744473276220927201439332472758817675459023618911521221903944312058317642646231185535986354310063698103488041219602007578006171494124571670412029035149569241795858201466169032174039739856702116777317682930848799596536601542158117102065099423011707291863459448945485668197905974630079156883099036363365209245450907269197478374822473825009830946035476030905859971954059181511635891176012889527827327955373011109815377982473244694525070138632960084118335973041323567434515261883619198379335005543719566318707290620168330512946076857867845439443894952036605843961140625260278024692910580070471464914863867122266609533381612246308586351809938466969247444198382596237327604019900677220617509828340595880406481778888444795467183766057056910948995660431007891223707294013487436333943581465638709351493392303869796881587975195013877731991979112785276767222337576978289889975696796819425767573144883612017722290905183130028744750324040946638270206781345740566375047555537613397337880364591307183675328305247865429311290737907219090296473131766026124802862991032113349082593928935018908190520222426590003705303907413931108912620453877509072303792012701340381494785911006188342641347258528579015826567380058075941007530497363315290189509694611101713964375165866868512135146247552446203236921927230909161616482100679151685403707444723727510173776392386211587639785398195259261422979040202839464915516403630630212425302062923510126737946237537939002035359222854489060098037708743892279707708804486674952231951381386437031251195281629258059495769534425580505220734073358018924203204044803204804349768470383790872646288648859533157288524154941335986797043359735965255472730957964631802436246280228759720009362998877722868968264112257547705180345228290051796560466603718479349794547726656682320982298150058496054458626333534855481231104717731502640860344852465647815654714728832512467534068237719883394412886562938894184557236929780142397691320478861272598504824264420008631176805096204571957335700120641483536395941540469519322840370228413176917916206472598664958144648179009674953448723857972374882693583365150432038092972434936592558538374560131089346112004026221380487170744047784764675729025655438671042777832774306358298717519474465000933630644107990000478268214337930336232858025874891712101868165111557034038750978890134978890028724217693611768605876864985547017619989822711934334564639912385219817115519899805362948074784540554433691589999066406041722852780724825018824315267865889728558161405784561727041329321721820111210639470382484173437195604201292285193828805968864335744346156442516918927772124753183465719252268319367516278967152904975700940106789001217959342509472305099864400385575112572198962342526003130458758609898929800507286340769617190802269164682782974498516672625080079864140165101682366372845579079416331156738476831989572268358661668024529946277320582484211899300506444432731775690929955306001885815256770796763479245570055670889020165458950102916297842633552704971330959792348919646095472053406643879658873245520144964255345122547811826585718730904865569605661714586099729812078215097223773660126291168504701850537675876056887490754843866211675908866177341128231615641819738036848159526318832986753194409551871025438402256012442125930135193075759458435656816014564511101135247331417367798301702873643392362397549016892773618205672644174493089853639735400685774176930023963741857345489494501633637593435549019772006517379802123583758695838810339736723110536586422678657971367962509857002460713569738099277565515314925441320707951266854629748662272701789451493427565196226258628085324879146914433383974608879723533402731702436855787125644513199041921944368094499784568079166718509254226916889718330332036536322906897938630410854951394336336594075665031660232140381622358290816882677740868595024290653307938968133633852273926984825322305709746352743725725528870746977385825229746242345504132762380531013324638837282226054564562313871044037426943523031091572115488204308932071464175270034614905356893626870842989905884155588340150912113040044661392816446458139862435794656138851893984238651780906005930730078350141753632497069695788828573815338737211962392180709806578548782102468910457283569740310117299313320564331456511850779101608501362263714233526729225972386348988714822124953212029506609737068924728417541049456085498248085086259898849479435879901812415384771602413265215018329013235858704992461954633978790331967494599282148045318188683694383995128031016307402879004414305571817523206933673178320873266349935928007607712515596738501437451330866306923867939182795215210822039698028469084712086314529419367889561015361338407079587590360267587868451475308425670366682230679692401572391269787280011462545767627047076441452950718976752697818646054143748532123779396181063101246038693039006348415341284656328483340663042279682277119714984049020908976469894902368834065527383585491831626673743653330758505715998839088712547777132893130664758676464058401579526728815428577896464371621516676239978086016654833595566113330465995900237983017793282059841200914631411664874912887784951861237785446134221966512530484313718028670390271885776136115503782700148096833582078091396470940722599738178375743576777701335304235327341159098186523317420372806037589563483718132362765797969196214494022537118027728555032263474541518549705799599925318056443993527823458404265773683294804682531747358832872565079187116152285887340538239027483663073195074069186888330422969578590291977666095118617134343013147874633561188144272758360127714671661977658527797310283629850431787807924591886673658833010673152061015275850343106545104989956011683024812132736206348698408989030711348291373397685502617043620505079644013605858480365093265748180434041565057711499727419226146963837709342750926481608522636397446163054888789178364454452179714303827506935099293850564374243922906035666473119026246859310485319736157939073957948613795607891236956604321576858122846327664477247728291004178155823922738538940229562453929606265219640850389050519822283714252419412138806996130680702946936021110363047324456374018954413274152250441216263127313737585639248282011811032755173377702441377903339410922044933177165578863039009506105590357576588682075286754281576117716739142441664407035616730140045595549196343612394837954656896404969981228403587070850014319575764984725064482653012134764598623056183833755189710425975550689284970758892693523020191932249082565048049048928553439902322564812494899332654448985679970162944064827135199679269046091248901994108985568404868243432389037806631463883337668091904623156039889888949901762214274728476938429331028480945258966735080562320484025949627141369489107347902684324702613278171686776218690748563046254660589533910558010586023609603826815520541750158223540946720224258334792910059283470987667218436229039166415466714850721765768759991476093833861872240889106588713312087087491283905949876415828288504454709218879460311786973092276381721639104003343822150694177598812945172303046447540672853677401394906799939807505454162640353912412115539683445964373570993487030300837575094612243800443786169153171708344387768009407137215883710296176981922027189228061654022782217494600706735300796973857016776148663253776562861248228739529291356647277029684148628821872168229844897969366664016783953756455004096070244129612933180796159237107885438658438122385130929799606067916368106226273135940648230566060253993057089404371170430281839116437381341432398922207836469982188057855996143481067030177423229869913885393747394609375163046012772017964126901037137273735462313118642609909700499760990409655695208755594946800124734980732786947286597108835114292443043979441107054160438767989792926665148118700086091852154749517602855673494254293186833099417543744949711148029470130199602696643487255873406674041678926398764487745146501902191230002608907982376798607178780025026562646757379439136376559518764778242566626454700948215328239478563415302424290367212270871343763042715735880778099550325608156874346903459823452964364473531009408499954488887274008978554062082826178024564636728722899887768125538665533827419699780709451331103522386870262244602467525198784886453636566573206972905750789349579308023737166893687028609036722223641414195741916046665473644636834695915495162058014507863805432395082202337216256029422234398504158452754264449264928346729376907347841829588041141769744067547352039836861163803188369666916811298805219581099626745448570894942923456138219830262319093421382765518496605894763799345339296055699316356246957925556478888599430648000325632274794479498634768850489579125788688655858954955501238552688816306901795010760374383587412673542038458507111419265780431149129949233216130332913230899077494040995818658829135154029778448598213348344275953983003691383723939058987141314244659879424977300195543106318244334900585466195765287396363208078048943313666902304380883501600648189750620909288256036707553435408480017554291447896431931089154230152103773578055810221371893120694870955261401858451344943815417727158535320477322178456721326650246846717187577738360499065301824992694533169510430080794439033261267136892380510691190096360316332868916131542992996271525905924658616277807267529582283741272062292619622114858077898403412940193924860593827681077510651098962597555355859514425393343724110699257673205632465291279757678565313357524665548043063736365010285160626142960644608655017953923976661554066527853519212068418667341725245989777737104987648505458284670838734834577491556825054396329818801125879443779581516666377500749529442160590708806869337993330238055164376351996441034913022971110268588241303309870331447600637769103099661668985576940173297931568520029267092313054457454211221684501594500343803117787309979127065665179431894998863367275628857727326656193093867229820402544737668026435520738116862469686286241755035943189721486228578279879153834930541672334022080717004030483055246317182050087141636749470817777887791478322159565787156469837998684704288215974848748558492905171465910585511159319068395009061069057324570745751582835044752912859170487258524497129232372741399999146183047203801162610875312485503344144623459155872439873269752323846210481596487155162282592878407868985878612829916644280829289746936449545565386504534170983477854614607170199260531033933258625757106902757335125447605379593862052359819996848222051021047499017460136020408278130495075466938275368597160223305725864517631704448790881483931053493304244496190156941324368913334754599321898751691349694948265345400504837600359124049610024282807553580905828325702739762966109355294821742088514662406377236897070558459204626475242562229316863194648505844150757128680660770890111752976256531798782814802629994120778005336544893079194959073201765266501464995924292292864592549479035831675299964659697565897751566176222004231472536327195014143758982440646500590580283787366614734808181797778435897528490434516741474912491489192200434135892090074312007402474274724044262882214102276345128962450646429316853469329656455288711990244720400977823451082573950798000718989896299335233526470977461402886048947391863757012156932138089989204560636993761476653403638077141639884896202216821944793811866000733125265216326468582552360440876294212748786663580645221682314862036019229297948180637577774661081396160857551927035868939899413389632857416802819475623970415963973848358790839870108965188040659658302845975796153855025205972331068426232783169880631198292326227217690296084093695305036792876966901098702396067009663676846691220279537287959873058849696657819589739800410729949888928485908524774977948240585428910783883104628723516027069016850723487694789404137400244378562334863740593801574047444468250739927490885815095336653770209695402497731777214355851466347514009795033543927638549574588987290326937307835795299156454926312071372153976201399987724195936188206357088320837281960410636766534689915279128245761918170408327342197318208172116742657290904306895906272383668020473112670032909989840237080247211721458564398859482089057474414315866120527833424843543215230772966419421222358602423722462405727262962561488173311895359312521542691563210530825899286293916974777758325536622732358606788285642231833588474365861204603308406980095267140059821502110486067460827480569996073252261383370755553125674598970217585202129418207436570676983776143337049732164600128866988303825332270148240393922320850339368207925107826542113388211679131694775616122272488743478412822476965911256314274987943283218547116047142069370674504290298892499820439393323506690029056578742581023291151218014279240498710306697244035255870173713253947326172187304957220158303704912693143121036329784378149935485364318279666170497391187660817215829049795455880537357036893024188036600082414025854182422689944319072909358731970577521663680084015334135297653892557233666892092321258113797524998847211161030750478356485015856022210294737520711320754818939750591841672585412468992279833898184472800357850168470318241506497681308512815887895738900292687293009052205016812757745978381656497057914441019338450767199312847787181793458974200640811825419750887078576417317433287517160810765315459411640457656243679673298912184722763173474776748751561559264528425860906817783740286886501032783149496965593722386044664740804015144087411014901901845854971240056096948814220647318704695661500608020188947119716385034569138478920729537809963347132492090184361031396292883601382092942750826474074689433667459594648677153748017191940045860055071901924270988615425568180266097541741031524186146108768863663016459301627102584542508949478510375315603096755343554080747545159335884793378379222149551460974427648012133251648615413372858619305780997924894110765327883581242755956777353464235333024117776878830383540550127497380612580170042771434023282013344648647067979696621635718339483075113828293497409045622191702691149230497076322977450862175371770543456604276650939849919289731415380393771524782040374558080188966185606538816817684714385762886858869792364578870146202620676072453108055390153505355930588429071338698940953070813746918120526394682370108762821774077636328692465786929922307676133003125060242995871553590691044970427567572224130601318410361241959946650289086127407450044999275910847410817004544291643585650611760855537309874685791830347074777647511853645808429509675628913606421054887487175361691386236417965167626272832820025144367302514482521044898576006935009182689865544286706485630652020427177443425378345563062576695068791949568042419907632415470502115925523696683696028927204169433027415883439813282376525882829202925630001402517085670574175838946872332703596753907535590956421347720139170445297673658099156127779953743884436572646839998013421579665165021137509747853367834882322787863704390669117369220012969613491373305856987870534959674755960607505298705114190384890160014916319288276756009774494281123853748528792524128008565876837655045131095850062438359908063945936663553062177496542166189201142454880942319856787502676693165231765757551027886776467553682025678211762342625233318625137252821434976135602830652883248406805998885419245279797938805978448566475619509068330671192587705089639268698100760732375743493284308703681211389185985111726727393561537718287513848775117594812422732759530230565719114518582406487431520115274040662005373010900437751499016484634430049271805569947140882784488647155380232212970289500032863093682051881909463830725631578875419207501304197004104015766982141760814507670112931110822775462760284073654699377687808043313710959669265304923390209178128876038924640431099487073584375920159014459809457936283432883415040148952699174018593060477770533840312396933927724830339749972540517682428720791403416874979170760644258519605683131723855804862953619973234376615932497199252822786670811365419548364858074790373953757918966700510671410867767281146110464206634992813455924076437747298676997694010835218283815732326904319077512941701430814255384020369813898853408135352292504993191093182619300614689690198680344020475846757207915272926870098954364484299444628072705896816314249142020704086252600727298535343004967442178879074681565396087545076232959640537567972447460247298350317774428582607627953780618609753561917639635297714290847947265545938541202396170818253060605257110978076640261992073692309453464388942043031337744797857571048600318051950717206984898043735251590983287992043668745466939725242932880521532774783825438586438387770202458428595219054489401497068725634218712418344169397608653560308478357095987565652077528058586803889535377606296751418939341219063918855599196616642193965563678680787966293844277043892108741560951866419396689364989469034832814150306000550131292814389860560816913794661723861000137128582514932269160091626089917895829901032502053562362353107611101705043153560395442870027505211970218052267734016799035158290864254421804016750996451684472389529226540332916145903235977150744554733663859522324068306730062036441182288754324477709465240263659616017079960032408097639200958340613817019505095303481272483775533260397878560007981115931246210579292663254212370723164763206726749494105411444996566695993147650776245092889349393737517572161266984666835994572367813320387819603290589892142087542652400138988646184929722284588983150508755032163721942257468428465194215380866121323560596536153840307204036501760189367793111905298585781574652999518314877325906114293565965637176947006386590794166006647744108832951736446891937142666970621465183617855110993305479840017792219123924243595508641398382703734571789610760252531283930976627662943024534039935475190297640532236695848126117610987489889724795014659269906876733960453711818048972418286019239871731747602252969386210852108090216149956726657987485317546120714730978585988636618372590811656848673979266684552384853043295722331633639137663695623953544551574783387402817530004057987945966597403285257974823111405731185059556816768261431645784890963418113967908079882422217032367622041637830625294041675003087392480417058039406435314807574196930846286367187777470201735943360221273322824677321882226327761314547842229114008541750818677231927456816012478094745182244623124645882275487325853528952604451200478356531368796907845769522771358097715221376855417830022550916042936176521611762493860078808816519625022773378868954524686405084090074460555762011539184346563621767685278351488625350814602447958091376152081609414356442681598429555283007734697678062476782579612342520160485980818562307817422919887280065628972618616946777677325956162875348832680883436580021563294729233094954807046551280608514127359704572282944886227824058329577645332745037890562982322100330690328368492916137055858144333018356687680811391253105697127527828216683714964197406661178904525015141842620661808937437820279714739806658957980926746621286854435611426853801167080623275935633981177130843246367349629736576340529378365589620517563047065557359768514971078827732699084924530846177221193353473955590918266942153437842363724957904986172557293196956774365797642968338460002533254650467723112393588554508904206875055208784074016143524411973388457581221594049814065998299501267105717931898593698462307255760461336685144031546619632604884781657910849162056410968664692281227462397281743558453587533157908436930136300360516931681444503540520579562002092583505014367398940270463711197395937547027967746571344934534555336565028271203002145305651850822927551630096283433817095839958718952260898103279643728028251102536225640663475434595662425954287843329867734291631572225646126768387647276609263073249876395039909462795183508844702595022153714698190305398183367193378632550370816262288991784896650724453076963046897382996472768103529348313261162799806099319180513414681068871689600105239451128622351694546285574496135441947473035831871089982660816201823384831308118262217031042872201169757834774758347582704958079832830139377624799134692221952336984958332195532776156866842466084235920899441719298471011612785714736832031929229375390239068286880365570120856184431621885140997086857306452283444682212857239185629800433430067789278302100357075883931283076922668241628353448074108910253635811316294475882596144484104636561333831842363158852326002533210127233003116841741521609214723315977789879453412908335663502708491731025267203433559974298136215405973756760181287086424899521383278147770599768731324623505186745808835940978753026660629573780790297594797307948644452658493894633423312198603586273528324807526100557602496147107003551117353406969121082717430379229983206266540883766169568603885701801333171686511588847508127183597516738974043828423457314419124016867492213122458507882575971422994637119462804685724566747635864641195825114885662163556461288091483092130552834882872961007854272257656901196880864255626986756618031642652696287792498221558060961409796167217338777951510417396334631901686617909988394144986890605479599390285522530130017979693557595397494135968915503142770751240787400806240749469923795094906934088700957151353023848561447502042171497015749661160508331310757511326912138268185481263285756383734937671588753715395830695505084694371819927423458985423763165779179198129845685285409733188125789637518688205614371138100265776259901365357100759228563009957020637929874478210971699442228397479523643039330080788177710288206706918758118175425754408842183455128453169489287190544302773571157080776611153524758485135523835340448044097975287118934988453179113467057804409354127804239021577265624927229580280264946093940381920539879956281806372509670385319810039512008172049498912305108582652545335892134860059278116175851878862133156889483697005048916060257729491909492352295726259173091613324888426581943209072479045614362590902251613991593329138670211234760762653305341459853648517939200151114920415385503008497622557170101446560176537067434901511516270974138587559093192614936589490073544287615985241628994315422310299769642652635477903687177173754833021402696632631670844589945714533735306487880415164789459257244854684239036188619188360431511636367906189451391109223966554126136815017342688448079401176884480198917446901246790635465487109058274575401074658174309575064054939579183542191737235357802894862275116662411687204824936697743953262132419798078830542216762787642794352153139724817608857817164413248464250780395949984375277168359338416097935643385509396948938480858537685552188428563735639066648225723355336880524058231138900345100530855672947678541271829420690359937339124728386073520849034885759079504341213403137062737424007270406269211894357134195419592238091454801279102543853298102489312015727473136311983873204489776557036345725816407146289169962287963629526077141496457093912907096179634647402322796047549573012552981689119942981035961375647097585143399361177969031348317210569056736104277592581866232155491375147635729225676715741526698119578564933191011139123904599308380268013584528619035972666157160014071952753815760188167963929255236237158015935032906737075885070129226241917447286922860775217384659563036664193041431107109955742078256391099552581209521293731602869827825812683731471648994216347847882698883229051977495082057084835234760840619615145182095938641973712151031716916286329333290982334153837785381845142101428648937179252930042189378289927060640182985172824714212289471343868571183838851784081798821709683515921813002071335459695752661195017671054735675302826974107934795922925638076822674358280263638620194376565235766063226120002624294018182290663261367550495072904256218462331767770196413226224101935865502204664345722388295478623081973484998237991549829727257615561965732576905088825047447830620788578384089019996126700846198327548648700383313052948481701249010769955185665804437138956855281205174068626756723460484557623282438540487250293943344318681092417435530999903972908402692533288584569351762550928100365943808071333932535149443854600330833837620569281056603175470005439638312893921781733104837084415608795739477291625046314498893496706572327168252389709861510835124868831791661644743700961063773095525891945893421273801421425511551991988677855289555619832561314785556167481965190632181700076152179590035701997730588800879535499266244006973510587049656485057003737276250391263599283377476283096916018356369223591574790337509118829701743198355139154820301182283747039983653058991304716920815732926410857035847498333122833687009834372872243588163858997218681025170681153358625069542202115237668996524164011770539582270050226279285912372297158832332646591160720420273835915746660501024861828448635442186781496669089701967108587432601229951262085576610434956873719661550831245576959377879354901404739380874504488524715606404095673804947223569829798102164705553070033435215609768449565987849634623625464987482043398868248113367339335188091852168427788024676111925262871673357914382616473045317847989226613433395631475941348474280577492763083484891050962676436242830630071424433508996692101524690143448773890915262725445550028016434150851541642118753928245858782860086689877485902485933291765588019702450654084373488902223638818914211978878862222674943860555255159354445986954373991021321005915846988874880890119335252619559113228481877255640947554146902622914558920624347586458583171381281446288735934488711360576749831111630474687422408935067377666460778367351869676346553057967851196709258423042221969388766613498189903558830828817639942195435416099082978166944460955978171225511900119677625118295470871808530446919467393878232283401973684860952184811518263950646989002008033117148867870584260858249950041007105295488257426138228851830316541037568372883055897405932035062563976198943107400929464415538768742220293366454734968789163980877328111069479425483008913759676978732969826046180800817104528624431612928346957030323050412590461637203066142712334039367378934525966277636503764892003388918667952047785413967335169986546215295139186945240205968069081652392998515993141072021796412219914913792537281782981176526849240813312845336959112916710132840459333207919755992003462075726180480798813177332910565857205789975523519436209327933023121935665068794049619977202775789797830897050892023132747128661133836672219594716910816230380260487641794156260956785253285872058699488606181411018897233728945033864530642460349309885262769277440769746480516935715101522231371303265342261188708192486946071860421425675644635683528978048517451696920847604032178593187958301612360643155851789431418821071156901250845410546949576043168834745566518276402970074254191783204227107320346317080126521933964595870809755982064942458658202400002962534193343131508676821527391013419628446976448225853918433472522837521469661092391477318126286032747322788479366649325568370649012455493619338560171079717623377681223133263323664982046139584549976485902907722481212241303563406894474985557137614214339304826602624012649350278600511939568013534142507770018180536519596471963482011156440387086840825252084551209935246993675884052495831505993444433445928342080630100659055432680552708318643760663972641541624977023861342869449034055367645454409599266600826866994903683325944029259023861231819224899324850578447709956802713678638983607449922043495919112047160464021532614372634341981045613092521377767719272238014369372135103409660448194568593770829151551718995723251213506507615029580847717200958709982049869444349059944384643234846278898907840441834024712890878673976162436303109383884979121266540209149784381867740842987138872250970786256727228874147975229838229192567166619972464037591543820381855762724178306177128196325814659480256949013277407843908214339209036345187833419289319866892287511690746280906925132735345617734604476254222004202065293868491669023726235115663643792549307429316460380792032290057989419938001530660599147568947455669350115209090160276744851295297237239130970871924937055677630924085660389488563000372693775996057154153895212289741909556466096059929111740665657658938091505991166388514894016908866965221869049812434615469486536572627393465822014803905009529888319231956216413956574368972864730315288675026623396546433497865354285982512368267171577134583395000029854169732341904060712799866423099150525954159929333451886713321258645702829010731137367935815644004428232495787534614400229492056780464897117236055250272068342209140357839310832408603358095617003675210412896095485005944629595738832171126529530072010272933722136941551046649634215752433189917111546024922819463162879856849657833579996636849567315938381920478881154599073025209631183952398259109990542714915054516576849963672741779877336325886455675699294510965974601248005380795721027788203657894122644052627429453175259332144197827307844619093057185866226302737146526910307665972164466293659005881397736460460960263172513169844201850016684241608030523845588888894827988698572854273560331352761535626105237223443994519096149703772840345194387912680836187554367283503921945340632774580443904869024352834178010768614765920125388409178866612449777161050656835814589074105751372425870587743949669657284918501698891800435898588132237871760006268639130636850731492827867109337793216985565954013271399389476289227343549134926170632333328819821555932602187108808717320963133043054705685931938497794331637886385545524807158315864703103506165616444553128437870488776597149858934359151658975221927091701748907783785718010201580295431850956837127647477071109116937142547173992205074454782036542039894547652698362351307162985814776308524601468965763659159593294484331011746294609055146296574722202271929262474934444594235358505496141832871961542178607468814648959239503735241653808081469452828590730883838643712421741736142915315569412553716381739730939001600006148322297461469107760002657551827290785000437230440878656158032832965696989707933066246686583017143103340123852880701469415200307175551291271943730726567383407270079443505430473759594405260152988449222636717954615809930994558157962324491761384404814805862087537829635389370419691677607660563277952593190274815887913478154780463164871854149469370483851473111801251954887785815717792305562722756417141788628583022603282789596854256989844442768699170522345515927211055809299356899945476548666211744811780934068876027391030872605490957531178016158270831449393614204670568666467082115424256133323199566621553921382093314343919768749678198982734796759174612251063772810296040600044708411191985428744962915028403908433937156095519995269437974467948630307426869833229133276706337425033365895405236661474378547552911985982240188082192793148878614362736469660733152355793121720866768189858383573778378657587388878312635288432151539818301927430290511759237112089084349398603683511958401093373626932821856007505157726826929880226043948433383849656449384353934781550378165826250216448018493484240750997826279536886889837372298222134058558336638628241193752076095763901490229291062015315462654476526621986817427943137026868229933363970537697782183347330158407234472412268010593677097744574413447820354806193043461020937649077854476130036986654402123974594806325859462619133578607822027806469151072190207329858971168174774112511649746911497707666416523125926154288813937374524463847626481798149065192187321051263924147679358833782235319910551690921981435758372317536022182936108415159354987637657614332465467235150544700037928671637382112045128428717311542541094573918027035292209565932720150097985222625558050760625822344015328764557083122606757907004858250393009175757555967845818263881845633660129835182317298875661332485934148416280051537778823568345247106738817800040537640083243329929511763146015964670230729329210373823305118727007369659195477184444659761461816649210793958503366489915651566376951847317534676433437291406480853102192093027842063011287870058177779959203111708745706337278742919202958551126225365523957515408325067816955930833480696697727568356441785045716857492366539952584280526997799964440389172126586145637320672660455168568972274174386633190059922753862071285434847417585689698840209757346426071573333136513413220621424036192454949414372183504974170005044667762874119628439585685862515900611518112477503771823542679700325169985326138434129611954284822679466015452806998719569796365183502659031065218190659847549865452649954194901664373247133902983426135641681554319792404454170578260103622910722307149190703036603427373364180553801601848371502545260107899050711465448239884166398236299810536020861926116285714213749580890813949767360177970449228930790575899849801643697596517956323917426319010145090621126178495259784720586670569548727783525048498215555408658337260875811644792907572923145669196348759257848329457139863580322611655712265608186412541453637978951454022798290287187959994669036278293744176467258554498081841881223042239889353682586287007229873556478960269471414851137183650236189527844752082187761583641983661540047289030457012756140987756970871852553674130035937961340628732393382276614915184903444487930706784371355351377354953084287210308614292363886386368949975847887107525678295929299067946737873105872323159821485470539555128613907291460614622004269104365174651626282048937846519769938224593202299704104057643037047858138757895746897895425011165027052225417742119195916641497016018757149212016160733778471438787044295114750233920211796040462387478035166041957588614878608871913857506740678161542562673893048505331612364442149448261953734433959046400552592126960752887179407546148814832638310625003339274353590670195185520542080271492883945198855939080706919779636029056087396915897662252398732952388178468611207258889332495769584523391263260777637743476140112413378609879271437586960701941979573138329429018380888230647066110081099932796368466402424739336507773899800336645227596831056098191811329070224885378421498035746465185235271767608432840215731264096046645676487986651116512272597967716765037452626477932366327008636357872841105204927171291877057654423542925501441409897651275920860926539857454129135972882432994415587844184243608794177434557032644735859847355230938391098718656777560971035713671723191034432516369827157816880167830517838456117545658904248024957144803527662504849834875167251265839128089867599985092634265252768276384521958582189923739471468857319730562793061607097719292347304215439222977802440454266383345673851906559246647841046946106915147095785437367498819608614484051505544655499858640713217832420642082834349605578476754727802502104341856965740930446275845288790551043289897209084873615433699497157508087935226625852911228118423865445344953165087181628505921549120038754300139058858073540353109528682459143739287545054057566866254981901918027802357642736815308822463669706369234057225874793817009547590498502812706225888614809085301724855301157599240587379642130678478901116067907826588588542688512084773599014428704341002494581087912602763993369598197912968807535543713237954433084931608163941852138763133373216847509435413471452479194292145788636139005236688928388167230821859354519964773461105111562193815143585253818491387709319984687035160784808113104286437837283392738884457837309926983702482457366775712223767400926797548397130442995866866663839312161943586361095686503922568954853209953687922318480358277996295989987650688384549784839330048394590972294823802603624474578363335823814482270238117636821726563681592082769748258041810041332909861851871965069865563034323677482065354752763451156295846960537719154810837223393644951828534173011267347592772483939355603734639129143997007480335873859231231552976492865791924475026449178525826553131030168717210429567325736539036663196412387236931901808286224974445875870372069829715574550639202807951817502810286554346669003579287757328976990642533634428325951820055028128025654543439709153200194617490219981153939029810385074135107436508439425562198195383969266156822135428588233855358007252961502859634023568384354563702168021485088037590276494887977933660830826570829230058321413493964612774973305247937564530001978412771098358484965301158892248036438787181694880998142996884184262535575725221135008472414827134418950954167358401149886398802174065805064293341521847921186806285328545673194257744324889899256114831315480905242020194470943795317111280315636264884907927679036323254080462512158704998332281903830789838928822404819412381726244119874908242222473464906861774738937163828308888853821467824488617234254938618051637473144260955517993063276158099520085538079828050232857950505420478729031501805756147086047520063661749331838933588772991992783719903383810593807384253908185659857212167565532076381146218341717134167943213239191491219645859447839670456727844487862511876453432947929040474427059378406748014372419630947580849207344555187766577957210608414537564890485312358423858332944103667916107684928254884836732148141541789230481234818341138660095389039245161751933363138418955542294655190459444818015473828389453101772144572974930578175250462982745099088187481865658136009146732609443498675922738065935736076304387635974858490335221799584364433171799439991155753344259708442889062679574066706579889478253529732190293569250447793094568859128229290340289668716761619041594281295624724528659304319721531233544592304801070392080933341561574923027904439271167992010481648394658734438453593455959325169361110307413141311625108319437296089652331446655441044838146087144090474326600031658975655202288615285016286130848777711011421992212946620743297409723698524744561560399945361871894022635582422469966569650766203244887757587475205021515313211849889028453206747699695254625902037878721657501370220795493470327599594170000696111856883254605230438208945604109187093841232510292674699408598320894417204266623399313407670205630335668795107236856260348963002600577536319714899901671406766467491972875232857399695616275273072256656056185382556274135272716827082015300045548681934151887010946363869490816963081035631443316316978313742822256457529157351119109314540660101998068166758953373880818340566755353335423964143980252379449406809640383340981772175328771783473559230514466954167690649731799503275013600135875933763283723406862381526905081764511342129529119228727364318861327902697596091946863923528597474860504336724347539056250602207249174478966847442438982772810119567956936112929682682064644391147339982591472702162195424235332005481031760764326226303497749599882756762294186251710332162022652290504501463264858765080586119591667987227023700344285976667773747317516332911883771755108921999788249902546053522898780468778211738414624668762266379422121674153642628740709144897591656805146776133240415110059864995419427928182219127212541155699147562760300532639630372086729662376863973637280824700723892479638579948420190918439380838601566503802926284830224628587868793069649109907464995708801588923537008000304473369631443864620090574093670216926591374512691949548229981023767157732757109294959223871010676442468243839280098604613965179874929339815706909659315689297803913630641532398022907319146250094561691505734816199924962144388830839976939552014918822439702776374041643274760924751386357941266582579002120933262560756579414026951415444244451096742364914109004297305963082971996465623911440929404490963573167279286327165885888255435883466370915098183840620550713671059413917944242564165703611631393423571977704035729734452681667509773458893345122639393595309636417018991101532750354582477648622519700743042365920492771534473187713049290770909423806796689805462600927125662886722934657283732013195936556610034502904668437748279380757545719062105740533216144197330392820052471576439381385612254495427021498930941350954716506620889459461429393097641436349461367775242615424067578293997219442505396614932968513080567027585060695486635077008970456473479832530114463427512950784705549956041800194769606336959769912382574943668566822387838271580416690822328702253079282686987345563444677080905728083569357535417095804666428443913215021943743307422215543527429219441317847518756754426391693103767735088121501204090133045220115717158966821565142772660662871705753692393644487988054134372216181241316124422386044062767374405275074549488291992317100115011952351345153863134165842171822390419828668638343614632790707048063038824756583320649174606289375451020247652855499912374971754652617073607801228079267253082568618958901276876343122469931280678287442022364320590484317616462060309791410405987296859119944512028494350537447785167197924749669564249626855012901213259984242875242894123778849866655355131964492789887954530581190164119116719952698523489982560365721253661556297462351023187692858268209137515446479932334499317991294371671587225239031972764945931761605007293631720713656366291197557159019337591116118472504446917357417613534615187569011777493024820137320866538447237913987016167574746181644637501559688654957850552118862623671701865486273901690172978038016076208597860736454810762773572881883600857543287503316080916806597640213797415644403521011236414448466743071828326792379743723081043062933427874987367822001752614959247139617199812780080543316873489454335706118163361131708257225869360655710932644734889997053650354307860212840610906607439927486810697885462668789666014846225863799236083366413349312344684104442418421708853651253436743615487316251183029445008135032977905587137160229271291636832081803549017852827334561397540672720117038147314614273550476782907743599638193798269006131712884846636500914018295186234504317211156237439443113838836255512276851259142506729738468926286933188643414702894139609654763545163317571754477057744217332415706986109054293018645315425671294684716730754317800729606348518783809372940307517117847563717587507669658951499182168450421342667154754734770349899284480549501014711306815330435152350863402224097511690137148606127355751861711581169448829271679095485672725169414639398292879949684451945963937476252647975899469239354253290598369451622214648078918732975154161529019644802193262171946669685435491627307875371481987798374173741982428676784776803577450902069575511999608763661701583360434194877235490637037629123375594741116986924600949509880350254245976292570891183841719882231731798682382885874191831009799693648952960613687820203789818071105938958474210879652493051441535848223169800860782505299097653025467162346110425069385484310177359626632650363287927509479730247016058708547405557978209834646857127212005602127020575205439209415048240359761550826953056391883123310382432747937863694491343188966977950903683135225585741408734001842248082999328427255053951836335463096810058774168634450398555630512189631937023912160137488349964479545592986861247269028413475003557585867421070079070960756305694641581989491810743193069240747231058596249861215220120886729493430506743229199387555039423397516743720305196000029325931834441710348564961953733889244327273155837719402183737169700558344170356093813645620261829377302310190661552926419774042090032853538784734867174744695719094061403944134311565996552528945259395855659674853939468703205882386563174463447086862520820191873654775779517767060058974341821439662484090310982643614540135750465280846788504271828884431566777616964959871394224353259454416242419572426253148040799688808156979729725562948826454461504349983014790416216660639839182347168367313048721900097594208867732317301397456394443848764644636716102694421994456681221717581820909817539533267968059519314148337190920751173340231516338966625328863592666740912132783894970481079085796882251727409573694674404479516116749146262608726506133908433145050679107860267725092235172303072278531537873143481271040820989596136979861579596434687904984339783391066595381849252770128824407694156329058820630352317072272116574233469874696030630397250607268222178478121572674270450929480002852912461983445462427780764292647912688858885398497661206588161172677858327040693102176217647951516463894794395813017909851838536664744254352465308985631261804541780655278247112732492571084868942599400837963014753471283626368557131084741424160022531249690852690024126618442095466802730821300295038514301193170665483039971143985088712502150947598531098925983432101231602306803434795083640436264098477966979945141834534560258356462498527254894076445546265726686342302088520044790752739495366534550452715194732081769449447489522606506507890965224673366241557471330825327786196898052115745446658455885956806870779052042571234363343094637029273113221259603205955109333928711224893214162022653475720927876770002699737036015498569751899263504751463558068394899022893284018642087382112799740157376967015067584463485026517957170623528417459806677857554879399905842825153546008570048172999390635724945150773836874740083375878214160532516125751163233365525027966783988588583978308688046687646766135966785603263993948421759103364870738122951159901367199295335807482538099788219539263746572556665323270425761815431489702510033947247849081803658892110810087134586005033522626496179236737384949211198238018458501067055096207821471009538869617060123059093510572265796486378491493906409672155304130157391779366377558351183820815285642313809219317053251756625800473016779979489639044477295492971068406404863497008415687377181962527021278546367281171124169422796982176949108211533774152977590618694738817085115366226109174786180194771195573078451937724041129494221084322600164062235759070433845248203701072713775286591471842995090231576547861275748435555518305153622003770232716752461049728795459379683284620864892121249141093536103132591104009082307764302371507219907056901377900603514059814642881690311709721801956615935448659092243578314441894600231788060556568860788438287730658420360802670329217489829616623025407990034409017955795954444292870488907346598096696446321694751654056719836601997164530419781988771339913623321453467651163529256608594525425477124534269325008594221882940730548931342379746059363881578306431737552058911620001426085469457626000323949070760783617075351326757849039670438941780891249063152632323092061133328551060832297612063336250492466903843607397999305151156570866026485344967568224458884945226276747571511527878370855869054647823555268325123301271690993740583719052183888433685408968665226919332269124513322920465905821153154354350851376597157081308636678190242166754817273207356089468354367634552888836190903298175362932727097362052626333636412660586708594883770315198588301102932030607386418376422567135441949096750784846714787091469195814781972672304809993122604540648615229878891127870372708747930545500268020726186001404001085259878018921359144171428101778069594612600756388278682374365594875682852014144352925234794226919104045531820508285453688680496593741641265631490693168970854660986239462918807755591368214805573113788213328621461648664854147558804054090775783753061310289459341454665650953830158089869254635562563941594896716657643858216193285336612114358710982363872899823879424593963904006703726399912341768163573975252738049582701931277243721886643178425294137511929486448284457337100666875496511054639585527522528369287953418351908263116775533788153431360832136022605060675587034914203920104718753230402716195813281372226643852298402525664655072897010090102473057694204987648725912238130355866776892467208598392145367645083107528422094854800916340787204156572270863040860658968365609605724747865673283449510066491761122201847592166632338366066523925108858622640996140426427192224262489121348268071123946074135701313699909811409499512424569268626047936534175126154055983229434857550941231312380420402687619394526757525077690139547875077210816419299594002405436928871930368100013340878902475400294963610466780170968596968164474018354048836884469920249400023958920817897960404705188132207961340454793059508728573821212294011551928656632328196029200931837758542256200511688181993143090382661508772496845202266083973475495874293768460472993422302391315890287022399622107302858998804133335667408074624903887254730165203024108921937351121672374020667664280739624478890162720974967705471227568755784349883183673686730794229947280290141487463238891672626659342059580086791606235996245570804865780984988233018682918781442752167361782113025922219553673356790652886301573868548427894006564215519590384165857311193441805486672728627867949252119882077999448462943289718388028245968645198409512583665657558522859046049524581099619935258493777234090176010402403791614298714778190394538468196612471689050637558996949689292561672000655136318217977145021091222415063436210806089878602642500919881921647282099166080512250945738185953299070689986931530597045690369570451599515141191413518931054911581686794651844229880078495515491275077550197163312474828950696168091485316584062151609877346041454869790950144933560228731020206655249240611057725958061446466713482188436741875719234815493995681027983058172456412475525321651000082684626256934742381892859486413607482019929863961598225511638090433109904654274863962496631614272467280327649817499147106258663900488460228836502756002985118272960604102608465005489947309042320934076453112902995836970937665173597001259906089869937331493672339882916976446109122202243703491173746165476020062946782313124212091445280546572613761915285127209730670646554941846842635204754897326385578411242805478336891285847232863959154056892571750731996499241380687711667909814741878061945371719840739167340439649981029977670575511695449952900432618344893846287938118612014168639738573564394421040002870467521716422861528139257182137560079933914210309892637627103986531475234093333111619037177359811237717355051642540444593967696119294086894548369659105874865191885483248697435109635355887748738721012673692939917775371254920081451986752694975364736786572602025015717249740685175269033928675071885554852411348477894491610783769235973173335861840114046349778308771270816576158401447281500446581202835979863200334865057593411898171739107329177653720045612502809051050095987188463404486493047724834144296910721874384519159186068086747641630355299780551027633829942197465368280720213146296333274470493849850573232138033186422694850604515200685501455592759673602420666183733037117101170641431221198082870626550990914241675791839392468180884475658357542496453247669357891967768991394350114626322239008782895980115908205685072839030919967688268235091606241912151320935033295918925425503057434000120532829155268608081596271328005759740990509063050346971189341335215651255423736104448473387221502907722655715003304907116123434149233785763646442311075534735219805451566400048449995333634929824510260519658875475486478144633400262210212918855959932103207859297463651315185594307030603220324391491863225755721317784869704937834261033300647425903276905176026226675423723139664938220231515979087785974052522083298161076515226863054829507463964489815996560512505012022546259326816949095057179162968368462190105861588179949770208152046975075183027590375084573253600072789260582095046690849964646359622222715968172359111440435597829320647803985235183985328794676279403102292698569007999369764972211119373244279275704980578705069140569734147377958636809419831480533810441227132622297115532354427172755059137662072390427156838266751335531865510318167023993908769781552118515989335668862673619137017485186441018934245813790481684239416549240461560623993246962195909318330076221643926898189280773252016783028039327605365647041285328970730354222920791916432279413052460955075776609790109803519555768166432385634659512376656011375956814415940511073254534365815772119860510719351561013011280931772243076019400316267070281112603987530844433956718668973196397673726846456353874664090765640201088817000115673816033605688006827840430097074677415631069082844595358375742181489848935057407761738152011746933494839172926797957938761471974406691524795798987718238449297951531184255109782815863210415689168259022298420747825496378708281122163054377399857963818945094370703846193196981638757351525080823241045653940814563179958623480892866810426476436125266237715376597741559532190971280072655136954831876000185374815268375728617247755362230581865815384996048581443568507915557239214394827100192092963257198036478762612720814753582446579287327499275179459269782411159098800163560971598678535923452270010297388301893572679539627086542819338489062247072384363058685408761635922224882219909370193335638463703639755097558209378943143287990661947698419496848566935000854347290143839429017410948551528337415589995314855473070982811915513079195025422599265209588045279483844023573796639883730162864298226604510016516981753463166810863191733676619984834297472523562898301607819879622992016440785260509247758854419807262570916757116947358088963556277683945134718946497428214545316882630307669383453673180569207749138376701346178118006314066929553101308099065579081905408756360713654168025510770696626343717007885715997204418492740255049963581173162560089456981995336345610432927725417148213934403712591118640850308736189782135989668719414886882627541816886840609582312551722546697687386512514645538043715828943590211610147737387785284225086404515930331821838719378806225919517094794322376160671802893060675594692533955766936751809577036273208544362295423168439987547984094620940814647595416015190061369663121638444735107712384563970344338750305752296495346956588032530890449264725564610242272587199832971556730975321435139681930597229666795170818726714253131391834760905332560288172096761288311437213472635719747162665880318182789257700977634188790036789308911144617505561430262652276452193335176122164237128889363086498824579387976728455308156231552834069348486619564534539146354960526328632248390463400617196076626350122387144869197009671381560044275878561490495883927916995153082515123265802349575696500048019335208807084945563402142949062092258947820248937783984036365083812159840863000432015442479358291256262733645694350335168067495795170778826017788384641106826276547015220120572731585360144629747799761014725288422817456204181931761309364917783817738724268413089699015690341429208025609600900293781509770669379465550019166779789159439400321911059871425570642900743517956039217450788827300659935642388142339806899386928813422680905053383670548619159782210428277695942004172556875581088442139292854353870118090984631151385972361565137445375683825392786375795586575591206080170736586666646590602319864986214164468381711891588074817398580834361051934127839746737265095573295468499997524929429491411240216180451318089119322543014564649758500027302385939698417189918337332349983788203872955179693599911324979251232051180734930971303914319996756517071343260642298019124406713136551818545278279833442890725823856137587041919969221292340276488205707618610219290382301746505794379854043814679983795091439676324621188807739932541839438635065307171853937287346120049963641315378919340083277079506245123617740104629687752307574239997934820013327544322788597149344710105954242971307291598304143806068247488478465595185178951675353579227391381716108905285894083110512438877901093681544716995074422756438099946244201628383539271881001621933146552504793450525970452753225796905324343200674488838236037367121559472703740305064687732575893139666891630004983747045244315512945657288522190073447212107600353667479330292061027206605505015420718951189033573828881629814967316592716737613109517895851477260151221769287378787996182946423550923069742268550710893482728143170379759691296675043591728437010718952158850054013372978973208054291906126884541294023973463669675283233384023397196581231611936175377559402723426049869141081159676461107527444081708713189757449956803023568977021493831441620376878991637923411069966622575340491459009907830921801636671568347715487708262515398781345015087832814532784641480966379013584301339484166631497202523763905137413870287103812379931388327797226004222043993471865905479079609743713108941991079373619241394511986294850052048497372867796018549543804558609375445946194253834376798947899527636925852942463700971258559784460680626948713752316070147314491880217116890917389169349323098228295344004732190789978884970798365054237872945318127079504885805728576577491773258593968283011342347194762952695703440221908358516830308751794608008623403043326361225374720122674979688262665352540228851300919233439107724218386459950973647231486929539501905324977772064037230598236132102257001841739466795528007503450508413262971145211373749283132108033098034323717192249452068347477597634947660240171831244357043867795823840574309871022062913414077119747258388818165679309518839261503743211599362176213541546356435777995693194446533410655209375847747992758893089706718407068144823158667609565932961331789721278481570544054107315311636916051565518899928717768002653840844694740734827998203258361638951219041451666677344019087270071603664850290973636001646373582409696884453255175257344636598392385079853894992689988110482220816324545591159608802495060478838212852550513091196259307801025607715441398084668539861297961630848842415045156985251982787165474357394165382506932278534927696975459778345403691521244231727391508504514154781147424924441257669646094786982342629129805207153920680715907156117238385143477418468835482210161749534029450813927826139159131349469988339915430167009586728292243939567743979782509521046761586985853016243276229768045440300461330109162822577072329059110429914627335914136081390045599719559229020190529585133940095061477878615330115515454804145922937460525781524098274761979783199932517060071082588065945087333874267558535645897208204375105415757465395845868194249065685145210670413492036432516955419158338492525121929444955650194448420917063457646820539055149189053337456610869443498515627993945615780436129864698910996684892307428006832855119440651427656559403189247663409358458493174349609576026422103252491759091862755221122798852439593491734198820307545902309476922325769151603224831374142412750808310497699553503159640291349084017654196880294397854340667327808408325106982515354011037618138343279354546109102346921859747076989602125688009070998270169228174234651386852055365280617341649577335033237170551968307254593429983840921273065251982765812571613025557777985672885877843410496743575380667447302387916420666905119260389950097530551328691696165304218100817872992668902266500624877044543928077904325654875591204063501507153386127704047390142287406398645585091079841111791261247563921336851473283512885976726823070297762086080105382768861883428160246038483082916284137663231823197637114924306265056219885728586185210168539726554993226499372731425261511064829516447622456858109350534710523155152724079058061003252077560225447459901081107273030893569743973254520372072756461279755242583140954160514164286548051938881658388316251448750862478801821805968251970026334362777135274008049906107753080168966971667956501811171340447795854463009581977038305610747249089188435844029904177377407136387765719470199215523350576783866861613301865398963990649924227005310560029963913006727458891995878320400268767640784594341815841821003993664062473990254329448486620568668911542520323709041625277629827252728249241818670652661053787331171596294953782033484785347448747768761583430372040970249298311246135947933342163147993615108986406449578211383042518066500488138940960878947054226366437297898679408210788878535528648714473333505890156343802011621943902824222453063349448647513368837503658211609824254214305593701313891400006227105129751428168414004369261072954283432510090516530947653535991678604433114433483105758653738647852421965199748569263668882622900129092513624071081968394786060948000591052120066083966464082891500954834201586228002235782045890913563042347767980526256339385475875823898000776238088002581181101725733725535693360553501903347386825857858940556778148508072551687378674382208093047222761240663588719145820538974729331030645736541962933365653812683151245786057516855680846510737963907957680703173205195358295446446236497147308536105969227549464200545754505562945994924592221433603688656720345688790927975117151323657498813118274138464275105300124952606878726415189714680699539828220186326237801469771778296678123073629678828528988757018475238020144016700712045128236053011710765381881217730679546871226145891466528847955792350237711904572846010317098596656207847035242387343765849604864446300910752763674256336220321757535542863583296526831073947706289584355769934297188052531648361214486162661693773689703400616186576528396694663136692347156074932703881307750248638569209205463920606242245267712630335057069531734151064221652260897504400793752883216918672170256033085344761615728799038910037252794608011178050933891950295772710677870206476608419716704720871512649216050564556415065202868123514690549846330698262623539748404966912923329396768037439436250803709722937424692292213951812222273918072358936121635773746089620614014713821977904913022179654403391802602542899986397422351670390370190972311484464035606938087410712434181985534941254086531726310087768372903670356104057764173670467149831301763188750700978039806107718852488755629805242118668785939036063384499070470615002480241721824343386899909255106416988666485235389048191237205783057676930548417618725259732262092166712169454209307819547754347344059373966873480253174336360317538798848762826163957190478827248589831314365568794358360190265681202986561006137064837135042633398601331040315002934575303330934402629205083666406062062480586723313814937512259307711508337597649442014233937886475742639279330027460847572851619418898995649543428043879128528710874634467038839472649961847434566779219189356646807805772149041230859643555682288806158722461643675029033184931079235614877604017856704110839535358051299309672871425074162194390399389545965463492788482459067664040132130058521564523620198690756174150174678112901680902689403829471584589368668820109793603594371579450586196596659317224502663660845272646529584025899284434571096544271647710858100729932492816115776019917157991013217622109225677190461414814420577310752705045525440456458839611400819510145573991046197192988579948006240551253159074081255695706796817891563693719881575188339020584191682798870622381265743474073361220750899771941784098160666645430276580645212910175882773637438365641417927975017322159356717910186994313686559003710691239964956569086068823095947229113438233296900820328977370510179785165741891688957846106117449498858531101380525370631710976455182660340657727537263321771637573712923185489711397255380446149353452771013707001978713595599575760371156396332691623091672130139473721347037469406065291177460637748070898331057325587517303817656116183017427133808158788495957338177796069154648698184908965613732310243549169762363401223057650248200371349309231867524335405541061076802086416270422040140657096232796690855584932957376198594634669997669606793528887752366581718232002184901801658567422581040656182719648957846197371525030247025312754997003760641085123881390558709441227592813799524373206527632684880775990273280230043341735949831704715558557002600817825678790094300439882940261186702137232852525141426224902175246506548837858512255222478208166796495927623340322040322931418421786522343639420649451712984005387919118989286901736903968466411704705286857851095349073863723034132534038817041896762544969900404341267298115632899308577682909714691183061942579661800621708081872346973574095035507604538963680099697958310224521838164033980679775155650835545447825945487807707320335211365771030584188502457358590458746512900113333971583924843229686677797592813963299079288393978958795138851294723342846561547932571385295607651710155461658254196906887103040003914316624850259601511384485714517331355459225509265489850802859849898639659048500098127532114094702043134773465731385101924699712349850576169578752347293010985307043335637805543625626042142596375723110982619453186141766409157512601973714110643110768835726633658422262282574976502079179847732053550710321007856785953741101363055076653540691365450753782362069626675150055950860173698819659164453359043637461394985766591504185447952000623045279405141942329624395145813795893843591527207159846006768446655164969826425986586694167715563342654163494323624156997608020761572505874719287261390589366938523834685273175659836005184165340414973159021476357076392313278502863097846320020259380550533462250960327749344154528670190136156757538729052935075573394559837435175197590877664248926581072620990234812637806439093411507450654526948419465751267765501397266979119752445839824822042001813558546010530458301182066908496919915127909708458737386755992086526705339049840624141897288911871184416598574791926700190181837617529387403494895566827724710739291041673166037681805147424230822131342874152723006472000712215012987000457745566098977433606598832062950593407646577642367018966929633629755962221955916550898420970726247711146003345024061415256168358769624163223492097543661692473711382064188317880200774533855436501540807489944531783114383246761863652293690507110189562695932063325622479342469232700869380577118654133414398520793449061639722489982249366421792622491273139274914659254533007838182354352068647609119917024742231459007526325046638215976606863024973521738427857957754258063670391971754600852909375577400657194576477580886104364889066126937724791624663284421016463246351950452148490398738205526137863463777955638264467121860169230563289726092512867493707402295127573858312628074114892913157681571119501271581938049164579787211411932830845173202143073595195227986816783484658274364869504841549062045369629132674553138806297045480913420912619560771427187981185547253917770770106533873808713485981754435021104314725248591198060277571208459541573388625145058327208280621826646705368629796571728478164689341528256373059842839108926010160594538802751111911308532248624761524953417981067477112961407254103441454095908640554820149580225391711889625309638200176432125542785565221022041934555055407112621789105279831135634240679083312416328085111693673373684095104285080264579894205277813004857444261504470546446685902759785793705615140352107976691203624923835608962188053773973989073317910484856170437722837556095477593319882649304366341566998088865523540309673635849122878243647100132285110755075449434876478807659085991026753556447969448396929570188498239305733829232529229710698789547364008438045308353297951928463713247289627415544190185625498884993626812923374451177009860596013611204192280861201302643169066270762668207420736622816827872276161809312874582444161371497507351987885368381789029826126857482400171844450458455064931807822503143657585048807454201390510294890853137051813587221137407542290631872897801036203004175730913385830632878793273088815797288874365882097378301659723107449957689315448342177661818776877951653874170144964519555471328434184215022976596481195433227515777491381518448700010677355312974687602587296080341127387943280819011715440991683758791799457783994236940502904735654282113598325923779181777012092626816628010839777042813735638463848555378778402227578440068465755647035773735914071676273651053392972746207462740947549188156913377178735600243761613677000501522589905187413814510552304329917789217464249577930088778572007359566241931954018221342282322677649149780194764872349013903579498416742396865171889218313053301260159069223309346012064817255565773015293682881856900872671126803459276631072654656400224196813244769337653132450179055548276151423199927536441127799753313232701626877317227822089957901078948234738200636892763459620574816760143116623845554581358506715599754828113542062783046737057066995778004170167932257661709657710773038012863204932847491930740069433582384006795070531243179147055202362356660044059422049202706230934558610191862742560753125582225629103643646711754118909600137294958212278913631710815535671039558298478947930163508093705012599147905739971263844079756611593659299452737300722578197520305051649563096805017252056319655978990076017628443210485950691904148956772380402830757503795905850529189945463118908653364438225166854730200359817131950156876467639115494654828695364292221102381989088964935832229264465156348229146906263352456467532950441952287001817290608205930109855051449569382681728135487731017235118984450664787804255329308739529411017754356281809687774903672491644053070118324441607701790820911062573488282766329348503407167607724706235704310872515989930343050633043511507095019035510841082174494808342955190974613398368308952092302400046559058235350874740841399537246166256804871662790748161385731589248848089306073694844264477052222310278940352038222946558893040405924012039500124496010816440809994743123480496316442542999878937986254567899843463003392200938182482449098867299683451351855886405725175467840127931835486419526195487938882348958093770452781929173306354495825373423545177845449369012079236043808610581647643449359139882333026823752681762414421835297761097237591475943454691178828214764715096460144177086328890401261050285600880663702446122882304921710192337232697854921281147434469794900373680450534069441221922654405438464788656309499895682965514319237808324686361557649885824077926302970766201493689137382482717502860185092077453278369570537457655373340493308961337642060434803380721249534977303472347655755688238240147892311624065550719852771055884540945255757008269962338104930083646032202551508463565112719345656479937578904151955700941165300862584479344071793539895264761867448330788843659544923192159536333691035096514137709251366931257927702349661684880731462444562210597788723299694175137386342273106617105665529812010460532277344595510193324143333263148081619258051089820279840170673119943333158686248714849424865137688901509245712566000170663206318863179132728192879426628876119350426442247618093053057914544238560522125672852557777391545620768622046271820835674085816797491043890392232541334061871499531655733937380670190811092290948928392611494769487385420483892841528286849285947053335471754441441784696339398694204289571003297559170123757605720977992406583252405578061984445145498732226051927555712936714644267394170838343563654753299086135828780712204612367164891208647013881951199885634978465356330541497773743310403368836803680186998991260583175629729166039799890777379471274032857330805593692804452449414735935489511292089096492362855805690383921717864390518689512708002025781716532408423709361559808835420855003646938013468898490401197517069844273390318219750071534152708242790117974642052878498205845171939065482064661911222922267538193895491719559129294598756782526736934843057896241027452941113252392452824111347344091249616207519205475196175538379104634374995324643673031130587592567511617645330131721704715557155355988983036575137067199951870965114466430026406941132450849190658434102231166060313566069883218144575899524819812844669926864114631813434215237090785047716171246194972317619129070385639625207706228933405257943824325062623942240550446214293819814154521839575390370701912828178386980246244143327993801845371442243721414457734316793241940750361321739966469717152321666566921331660389902221355580238445973375637659199813604734315183686389028008254986879995194864264813462296711068120114341057074099977299935998967849520257867048385212159546991760451461527509484088921921736930539353825745254749122717372187688683074746176155743378202155199515583086421183880113416948346192328148245092694910497038304941944656527549522520299550627803730095931709942150502143971928291642125385761375174531719867347887533177048510688137909709964782345105488296938257077433123869625809406303930586473718443389666994606821086878331545551912720341302209422604946138619736688478852473066191303036073248600647986403519748297607789045613937029294512760104232278749814761992337416071901933937510859255400946956836996659652195527427801851555023335837920180377408879455056778107735577252237396975185122377831615387977441910445178597029922332848177911166902192062152414003014537133391109549171955169122254137778499380204564529369777955093800724843200161463234956700102405300879733243554128036668879349065289272598587596348689991056545125263428715146695802475423961191918075646866490352799940278481312502350424183614985898549937536035857393001018931391652069721444605381069382292232820245220047044087726909524813777260820515808020989859984626445482836112224303723709248268366293859844821952687177628510830285996544522513348250912923483619538917899049120330191365935996867084653266501573182910124558925527380621980412576189557003866284655412129348779535077438290250274391939600682367618873575725411981766651153636432549324035020103677350223440927776571686144991000338753470138442054960382765441018427922603063294800931502175508807402876511342469881491369237378284653042063017626104738402056376060095428213552780241776696313807335990949741731844722466328095291835364162447521135117381618979115957837754980319585682832437039272921410881784887457146240125387565825587255383753456638882323971405975923504741908115662394145336381580444110501820222331081544652778266595009430601007119843932718480162562102643892037566596574222627727303217606920106518634642520436100064988365767313660129038173180647123135968085706453377800245565062894236787379560092583782824375087941606882199187863515463399838309763358786624641511239437240791718717279623285129844849026683247671749585744313987907426001856403653561094928024114597034557374593785156060140700326603928282671128360266497519320544771519008704614694834731890304377608697346327284214556012309415132639474064088314399359258077924395674643866489049564454746175522206192426856797670121757784565343817905480483718417814869821862462738085270266970888976278284827300574552182197087491224165059691229927666289831568024975630282750693742136604177235809906713507732516928180960178026989163527383175059828058177838936562284394152250599206032959085218945048244011331360436648877170402424052780929570675429273453120536174054734811367885144206512824504877571847537342489808895526135394809739651491378797207499586854450986315734606430201997312730665164310935210402522040650606717714904955891212739116763239387145272723645333129143133882682045843947642330481721093993342133681802938030609485639919428011840173483825619621670662390505974342781831374508619689418603440738099042478211423424091141732539825387211664956987365476333410242865563252984370503170545011817554145466818962320167253692080132423998452432493688388982591209862601215319054531423678131093245447937064574496860290443870647061491820171212671547469309382173541058957821200300294845649170114741349243709562683865336239226000616300256148017204818576111795493182456228609535798906856200904313891830798640081243584253277367476268795208416396669940883433285888752225947145996575402456820668790588758459183831099411352532226302043311593498137478533910435731182430983285872534242817258110736998302955085213584781828914302728577514531188805091928963438845205818076529902819766798852716591430957606558470797323308861122057072959901665799522056645412664434445273987552395683581599930713471321864514790217944193387197259969822855629294457907505741086915775743372672302940609259181423776365571871548944975479998720066477637166645124292748170407378353883980284319976991694391210178209541929003656520155499601283087839959640966960236184399244496701520964250103135050421869184071159100746234200683256211987186126934204670902425888124071901718919493669577731340241042650801693220123659532139650443603918992637204940327885961697514739445536322567866984742583301640647482329542048851424941166451432514913289180188759721053043073564003982591712390266795089997643683576054957076169371433631767756663571366549627301202870729963161622936967736221342249005121521554312926586133676600863282061635131033497824497807745007423022493627521126114308144083715958040501950405602318253693702299833728217900882250278581311832973795469928622222402462870841043267588967811146650341121857484371518973346490488988234539794169985238104275147995556279670269747621277323452134749201534525271255791927919673209649054689720927103402793319654959303034932711042696546330855497627545577911179363093993778634492239372212483233712450481873943313147250515488850764448600164133545436887172096671815932614456116329709589166591874408437508207065572671514395897076035604371429050750298689104837210326593281274652919914056044085121211220202878813215554804755318958040338826638408117635885289590306597517885356594852399921417667111041647681322874934538161059627559703319449035788508981904167604598035622620371540741882291640681436634878461232313570802288114928790776806909031809815445544749854294580897131793874789335567501344728112229281662058335506281308097197333921745021450595577529501770960099495496904380747684142192585846350551705806086404332491009048786671056935870921289351216013066467456976049596763365447547258994740404360665137105433950253096471376570810001392024113805264249214432706690194227979407398645640541730503844204321598299044008466972811979652282913175871807196444082742982676393615627485744768894332062379109749289745645130578133581040405531052257808748060294882144550634088190685810803965047446404065638747518293371462518775492287799929915677332820659225540087632114312696642311032957869206124115838167441017493495422690852161988438495130241408356128735139807281991218515292170962396570468054478223666115303368130786254717647464144361868463807596210958712366619771584658016352394604124612951696689047980355527089877510495599810709598279035928782064140828422025705458257825360877132816572017892006458820109076036995856400679018746937333636692920628810726512650097161285552504341793797248315305199751851610953432244758917683897910318327287783981664290051141945364943603018159746699509669552576455605867119793290998222168678557838052079662237993099391829137053695592547632573605487746284337299690441100867896137733522837292056320544203629127635125197076210396417788030420296569074095503607037006957128126477816456722146004068449198313255574528817365988421727036887565523572488237175083020590247338451768899685647568838733320903049089049531073781197162968661975605713332623048481535930393819901721612595643383283545826447652245678066681234472893204573127876938569005553502695736798634219905348855200928481599004426511445372719408426139338821070812463665228266383589103054615932016383623605500736648460260620610860309134529375180187206138254190687840784542912899328427805332752319844267640274521520143221778570698671352873121874289683661544415368281539964551314603859310346797811439421419480474641417134142903663944087735431063306538131027068697700425098001852846466706353400704207982966764637260955970361044665609089011075666893770108762946752017807551127196357642268022058142195052317963917867918408929679118648262914146408366236819478916950798992746467561199559701353126495482986610251714624393838740605440734371986214412030891444522733758616076632015694537490248530988061579878233369232533699585673665057019967646970116830279804576834989783964031620725942606392000056398064223399832603985315486820866753739849111838401885485035387112551976099822865036676392740058186600454779381599325946047037635816997958589072049766079701045080222927979216609802040686316323132374950143264735513319735580882284664582027000931575431540041113868907808343419986480871173045628470181517885035809500381718998873075869711655600273522348356086087443612053044126884949540946090589171102482603311755184850359871709073868732046894576073561670936409485985381477384129732385586575198798810643597316759524504764068342221531053227032094849758166255630609289752175477347636063264061839711854585198526167377816364154764996635526589442145374283328131170222792220386910260375637335171741684314040637991027682147708332520380469362887048689331450256986649947891048206929630104136570502792251335558126744549342227846012454017323046673999855196797251299928067726179240599275727728698700309092943040468294248957485705009109389858829955728838885159631992365233621160053136936411858814387815437085743650285265040486336094327348300880332673436104967405387450443349573376774506529146786676197227640485002486349422013686705942344176961082470446439237218858260045291631656068697047519106850620886405071845308815125051435384812766133100160022251821236868690110901540131250656786136038544199384325620914201022680246398545028820678286983530695037805089201411486731406875941833979280498524697780768210905786231407716823169334022823091974651571534084994140633519351729431469355107758193171036465711204057600117273087702940978469242686618192784797765490421116368675352567184460366040932778623011375668852083732861300699871590066858301911826428966988221401639981038559034078337936626995152980149289784609271864823645466575426101289613449638061985762569091605021552455296494486721807919608606238617672514395997631419252489375855485582657743435527811886533396660339438925149612880065693246118074266670126682831369272465210158909660416108995286311342709505186499018362848484491698748240924716720749100313167397097923777264083499095991561547619640761509259896154713783501530076698091535472510170725593477095584892190451051068056766789387162160633454952393044604376558760886303891735471917243975643377871492081133817475215875263465415233269794056620592404774034002506125414475139508899214290864007678444888366625799655950646413839592233586045698591431422592058022896421403423368590472412928644185315166407491033314862351524847677039576023260131531872306963550395475384163152251671689840870150373978324396681707214088219317439183369356666189275796592094835453004524681558729166057486292147293566309672368478934169412066544347595052735082971009062378230147099080710478635216351809150493528997092042885779188537157809555518578316412097090239537498010918715017609978470800129671127761881144777974607739639488885611288070951453592598994141850534781485071120939270915504339307324245076147573265818886489058018783160517373846289584027126515628118607941583501718405107592655025762173078915182309493051555431218148597231611560035925145884537349916903311693860983981380018238679017833336766041388091021172676090792213476728328988738176407320438236708335209938155140554606474522474348261727401478537297612693160007813321484912797849460327782960151713214005185214995882651311847523308248642370957599880528557958020686943640914868474405804895895934573969234131041523908544363280926744409116878641594195938638672493705602835413986284653778885909206458951962350197260207220073067823441373577078500705746885483760506988820988331792038101232426742702702527856067447568719183709157732145986128804740842520040121179350277024847148268207725700493463860582682129682738227820290289343191597611312272197202051492355425037428616093092997777780934906523030612115412399064145904499636291729579090990443492846083971237880977215400897147387676901022800771943067834732078947594527647579228655917706222550807460034159328842370843735527528315259655446625821759633324772814760106411607858060521322351814299596607922481711204668804949270763816905441707080173542948245503094819330574551929680625229424556493188404421703038933920003206277786179144946438686970079653204489224532391884717760057231072935237008106146296575515916874788439941541518653976670181900026750909775486142363366282877958066132875045176715651757607120054590762752245113613478256326545347599251138223656428840681190255637109051288111838014700361629758553560763942302465653034838957344189069698908814467954894098245018370675851884323787973790814108450381747692165280827210504925359638438385476957805884613152249083522592560015998100119203175499250445962238146221397238195688531093139370231780242722999047732161581150221464113068649249619978245428249478891577105342972564597292373890510728848824035420689270906088472262188732461667726891124109160170054224248340400752507466721328880018630271913489819702604380221729876831989267823257858976275287938737415582816149204416279465652955850374544872573029817404691264024614023641506391147340290921759912087884338576652002201535223416297174032576381932500773231282982263755047150595141816680900824898135537624574272929761677396057007668918282415651750908141970593924971466560435960826851067954233573921575044510377617345870606587785570718438960888910113919214507803682646618382494732258663418713833329529708952252637474786420729992223201042687784890989791914229739190572143619416735665914168253966564801442831341208589335424533693156487273524542051710808971558302790011387182410374967751663913029584970962649286764214622415837352712084663662734492139785866976547444230491325508996090160213444108432621399376915646612566238842187513299034089798376835011282978281673261913323035806499981371935520602132993803071117536054764345381166514259514634769635199669863717445962377374466460402003738070937585030402154600499759588569062119962634627642655213617729080748267514728838106723412026614012601615530630833367405333472519731205003696559728235787993739630548551269297319264812285314489040361744596977849140039534099132810372533500542242454379000377936702302492771245480125146989972584900911734535458976745511158185015348854801283959023561285195223953691041180745850218911723724163564942286092158853123343395983602688976288678121483630460024591769944942754077094788670036291573892636011781755136131544775918383019937834656566370623478697101681913320304956373566969014685594599377933115421795173919739918069450697761451974883376947172773795513335341020145274731949152686123944176246947243523970376030421089381082649155715441622772741134187862617352776180093508579053292944460569544804230251266054282818306902537051223848848771100783844453497076486646237874567255820657121550892841822812104273280125884915545848841940259545804582042132177708460135201570592667010519995700856550881974993470953739787302535469991796552536403295357459938915692551728387357773631565770286525375553380073976064649974389702614335479985417872131922713129319381309754312302404819960182249092990052131620425999333301547181430109745104475018864166057516520215567258801098759642128904269909079415999315388174819888024239745830127893645537841727705931957949335855713742530098008035865876247949174517669847446042470078273916069319539224406564572058348556841850743114121901006676621542460375555640300709318661580617012133483479301939298554044535408603788774673482793320883587925595296497757993727990161120663308272813541712971909745609959082244180464865658587087561776689903092086814201165536119490383243169365890114892793577572652085083604734920567512133878522765558178272851819166916176226675133657674100214731453116466680085729820528243735247871831100466747681109119660668336582888438533177667732173859857711361750532780351327380420710239580087916169586490388504383137544431907052764118276934457696358241758551146703452227415412535281078512998421645686136156238330116260247556430167669883402644085600743565019432418189867551061962228644725514982761450763218471619987920830934099070667513224156217846167109716132679727854484558550182114996326634946638996080947882959299610518698600180048164203920962648786572677296154794684689888510890778896385819945042903933299631197314867006348844417670627028788677962417889938094657569724309986266966575715761365945385741375913691979882034011402599010044785753290577717421056835665030183593494778646313069246750055061122165696101225066967940660566799270886169420205948749311752529731164664066146508717549691527770835682243063715712400125461704980333963042727316504792950968371994073755470978051397413589023187754895644376298632525797277813011695412726937231179673744497413232297918545720129213611330100371556205113902038668581799746489785194690298891803139854755450937525420970808738780158978617235067444029062268912237194129791776391960112303255586329815994840888571162996143982901556249680155249620321191371190840227906822800858127597547312989277326130550361014353085024397329356739692647531265055337935984065883434190987851150314879763965370993130812785528897889219114828487735658068765948488618552881169790163780787945504407585258756553943092684785382821333550656661737037778032532927498102856120873386251430366067688718706550145759311553531076094312411486773576632117001802057567679877028773754756241597285786363014461187332933345192866828387747466447995408697856303584612234385079708978690960894667504762488885669263888333344122140596213834071925124485076781835439062251434962253314154337825195948518713459616099556387991530063915805815994005925986959027561998009899916034168939018222143962139144215538943499525747309415894347100994951694325346667299970511505460757043545560197758456071432665060530839205679930614815190110643586059071396787080018653828817147856437952004194433729779439683938601393243875767976155014853202971964767230924473606067041735236629195770079260347058373864588738485372606294527969649918609572787319320804205394718146432308353445988395875973948935737192856535344014617819004918857163247484946273390927378905304923072125777912365851436114210309950263746879925571649379611235368083971221631971772759862233193439959096786303646643282755732343593601819089640623873168526150051792130651291455019309879774901033515105859311202392309656997623592754187717433509565947819687249872768001493559161994823403967389423919230111714669364676359658865901291990279932869379656573397250156827337125555911432402181639440450424377638316134533355828408354974348243032479386639493695489965208335124703698766320001902787328994245098723229042201714333631453610629187384551616478721506419184671600823276093740799994679585562997738083942274007346907901001658120366614688667997508307267339650770054717668970620261856411189514536401627663506442602459639835847579422701642694040482487390044768865630024634605354777666088085411700767319855745923220184724891763932018187069794642493382094357137591644534406119887519020326450751813431027658549142422873069098373278507096004819490584923420924599845665617198020525223751764184524100115976071188761410901682032224935755586102238330570658579453432252959489102255086100978221522150573861619792562262933130494936012534856690855612407306937645685801276352553964863978135585053089873699912378998303086418761054751116025285592847126490834590118964970229336074303364305155075501664203453479283772624368278616873072256361937847435793959339965935751505264293756597780474292048460394783724469884730335087220031788268090519862031214102926426718434336541229003804287178953554367461736003967965323081651757395364507827503041619548498967053391952755077677485535890270027381941721702545573093340342834201875452595898019915206934897546204288130053256769666406229239738005603596651460712565231174798840523085057879463574289438036095650817710026096142639616222712204365553016844120206330980304890873254125234382704933792546082034131667865403031556312409769001308958574224451657859440728833537372968537556932640616848194045321649088327827422748191259401652145569557657723197304870994062572385846016151925915317108840251476315873871921165646422878651007483129366373498664427868371512957902487934910982798459946947351517447448172096634121618955053905028876849983827313404514686374398099330782059582255791891789196225524606736550585808623648102809277887939511485379138853096424002576626114134534193527546083476998656857871543904601168017918860070186178477837771558499594290324363764436643747787984035716963365367375496647752127751831521703995857897899457162279608174356970615228347514098626715241074753529236770855807965820044498740105208830764026953359846690083234008082241500589862204642304319536340247461571633836764581411803002247156214572481399854944071127418499590958916024676135150187782412483577218397037482425336096239912873088168790277570773106781206643894539004992299226892089808471516666788820338551339861484930795286176884634608005631078010400159613431684277059795727700906173444560876353969544476412632387302825798992222885108563897324101668946073586083703470830068647521711204032338422451614645788505448929167376174646096534450289570315010930125370379451507936287058106801068740142464118578149316879567199161712557628260202331727692544639708211329990948950952993198045255380168754874684366085244650875443672323847752825535813199890042430798366744367568738521450168414851844798616804162446607498286374532951107530660587279373791111589486757325537262536675934413759386977496361815720720749278777994494817867257196968378701889496438415168344746590571160033218135576440268198876426494006142492938821646028971585412357979202303044886025352722283071178743064502938338813965310645401085372433045121728303753176850118360900940786920406211802818141185204852148830506068214844591546570408699805038858766540314604465016508666440548436834167891121046104777528566780679503424385952975123053269637262491632940436652127487625769312853308345733672173944223499883569266543045995588720271184008254980270906494169361520406965104200916396768888316092137343569355850911120741898406232884095197853769467297977214805953570202096144852409846073660508214443587801664497030513047171529972352011758890928864036327396477552198119727228463023931006474575097073149652393391859392104169913183584545142625455681177745228559897293024404833977119108418298940980713373150463760556013179758539630950010975100922506103176781475532989776700244213470859190649316941117370066927517081550127513264116352729583927890183220637618533230993250295034691254286309264604588616157221998522872595115179661014007337812969797837290493461910914870326745499639240708020754456750560569524116097476370187170830052408112323972962325715093574404020991236987697330209392030823342565315239612587517402895811770670363991173498196168630552140206340416000486214999068762813411175323054211138546318911054983807290118470912473568900871094726677077291020582683579456352225222529648876571549722249604155987771136858304766622446537720579814793297732148841167681946462874658211023213501151180450192765862982653977556845761645522938536240589666573897828159043311155587861614705964478559407041566322301532886729375170266670557362020753118679094822042650083002047028102335638580329654224641535042761894856296463496005273800484916974768059140164177770539641909610417411730465648906561858914115530168422577222818030088834829564131874703459406836248442487300543702067730328230235691263938282130123657899839358360184464583476093879063837598696937744962048961602951124616869501403567058242399424166567699628561028831262454610946633887211985863993743077065137578190270650648710135163536032783323710718213831739668767529717827451824425065508505614201335439451242768309098500368700177521492275376910928809145674848043503299746788027808951901868917403298056285249906034140823390024567074805547263333345479249967518309078424825995940100488147104214673522057567649167474868740639772066821770890918446034396765675571111735627476619523634652854961743412476232707015863939866262726767122268419720456288238044512777633940156977045941642875116995800998905996232273538286316924739244101046115028705408938658229168710880957601634996009296437929757267804916738498884327754476261814149121771545649536011502889343027715028114216062462731206589404621970621971430348505300283132550185982036621654063069842800773847128910793499961520250000597125012257114097248037172933151402757077142037847738411784172312441971719318423293476718721615041406570666576595512646994702902807130875829399773372572538097153819355482333029308084068359084884273377694009596547055908718443296634250293279373186777466184264945292972536276729884238171332256761893120236636705224435928657165133965576649314572148518368262557755804350495147191436021176377196004956567001226110031993747573102012064138615500139312944006631131681309070348393620888459193287668324852539032926383676474585105204722963804912000393396021383040630244208987066235621761380276772033886444658253199386725186728111398301956898154997798047837012994787548451227366124696562200513381482344020990085726935704039501532434995632303860189033984953928624192153381568368138704974562720502301834839740179240451221831099982449160170460840550632695338085494522763682838373620423469661035540924205693996098644021651765946693997698237594500389002947803493772415527305082613665581807843604459634393261251459739773403863078935805691676721262155791578755055711260454692281937060990656216794695801403695420272493872418369155758827576802102132617094140702999832447662413400246952046986460993423382160299490915710866259679085604773144993692964848485569559914637960360774924713130727004248508806787017492915925381576407652769288324805324299721194994283358483725477745475414095424967096849136870209313565202045026239623090493419062321203783117350045020531694076537256495834042347243187190410986068819279838234601206183698482654395482935923191251240906377339454773574973624372681637102291839311705073307866211141193018046898848176274395367457602172944236277005595346467719068863721446343207144482076347039730836587649238436842264548806695668522988056525756242669170141003818026447715340333483216129788692648354525625080284706928921593419282165637133950235817237861237150436020646984491462358396254840321037690587131531261901996780681542933158746215339960820037555330836526035103796242723263036278342834222441276160340851216770752002754994352918087763565678460685029693754299399170549749602611246796244928595619920142457124276370553995487870198937798402476759383033396661685487145820919631790903838122622642949266759082066526541948697509229657991344963963180841732344830780272412624626250394261932568152201698629933128903727370207607658410065960863342939209514702920234047675116463188206755926671550308577364657743753253255162971870532240506834065445657048725287791770017931407470260844300790446799464802112345973597745379765181489388280638450238333685304171226367180403347682947705238859845967126064965934502675231430072817571489599286708879009759113246748091022615033970129842007987787409224282077020091562415131897079327966398236288553497074475935337432588982478227961044199955386761288698984387022729399427893634961236736229779581600441700428704489833587150294921589754059408079462598655361516737341933922192575881211594394952151594429955604105578410315219306328745807944885974544570174503648346243535432240048945459265785205555215185605616948490980105475275933552205491772478148861870483847092405225094086938880077995733313848345637318751932606899938798211277433582124882865334596293417975346006850825840996171743843829622747338960628519186611705735170025091185126250266641438961096448175302385836928618666263692807539699056676183689140750520213560469694569353253877791335072184879415401963512742863710977384604602041922899201441415665015280513944610580841320084997211359030208191521583255708949765358690921420829037044287149487740229333928825945545180535449700132476174056033377625412767713170431845916843818321626597165323756065694297241332562694848135716953497235325295544105604942939293499464338063084402594293602165773106296994056732617309755708610419214299536980507317760782435356930277644665527106333383948311671381718452208029474406042712203301694800012857526588685438832401137584329950386784520992670202756034778079969452093411665943837098798095587224706252564975319878218385040412418354863692338619698291636442194587086796892087226749986676281682889103317930438195121143810087458105037082630580167468365583557642381802225336111737563639576468528894975603913380624977538649085744078328521148812658926490381370923571856136913067806917638953770096241248585650370246852160883994637528866753994230140029332940268868994646421106609860701445399659099501975134030687494323557446299843855906175463273113818890227643056775707757349459483207798789015881581960977770079521238623166925973309908460558246272007604191400307992343687185521278097713227988201203412292668348301542935429521284228617308768663216245704772272782975899469238350528181439106428895684260973461138758981563006289825910476815758487667463475939118384397287945331933722563279960154528118700176567147346909257156645875717743400649303803260717734207985068133874442728074940040743986481505061244571193166431940161969370880576454491750112736130477438720807861079110584558947551853621351784124229107624369608999273678050425501205852842442226200861447672800629106693679358614351417954802711399000467857145444244739758958709826246898845405776730781829475870441964654451115267938999639316209836071408844239349387190679044215051763072875760590480714066490793464774845627347105600036874163371417070427596497134576789393420007725271849128362473714258198957739192674731599022751460703670679834330974581728059634396650195467367026428412781931642098591162333668492830912982702664747188370314529584601192037569077175819367664180322277983776738486449208609455118467680173836182231366614627498499807782009794660738191853629108721611919803788392446604131638090760805577046161892545270867324002313061684474256411581044651913690697767366063155083445433048122626048802353815283929419043324255701370349154708792736726644012307032265725105146856357583149057170506142422976438193766338090519960791330674521149100273989823099195083571320286062995623177366185890950479901711769864486676460660670577252235643650198324094595778303327527722951082224944978830792551688041187776635937983507554596567169160298404287037243066469529767435075161569626064927428103412200311262927561579729156352262954465407371517681878711862506596355864293496071238071730308790163560847807636801509329338757248275404448819637120484496460044678878925955592146180000416188663291709703607050902202837132170526914727107654086996366248439777534480658459228447357662483907202147490120422314591203515217805329811557032746042265341740526991864434614419943003372828133183555576773059291325409408957973039022880765494050345840901597206115361520609024702017017407254511434908002717586112230697318350595465256618413058086456691901507641582574432186059044203935752921660101781714040245114760617297236352679910224531128125326480970170828864633265761893503719729258066478214014575092679364182393461304120732295760260139580988418801140662026149842092117397120367313954227682465459524913938877122163079639145473987402899094977823371958401755971240966685447347548712195480676752226307478774071468651530859329144551199211883582764158500985132242977695513176702531478965616447345268505678892973980905246002392885543006224124965133771918481429099729114542804812465470935177038889610739028350387335412345534138550665327363413542397098594895213335229376653274796265158728569631112226617901453900777953946381257059488803612637325042021204979379917049504739429608320627581061278373930285204995810559414532420077578314955260600946281755766436022980178297919999809372842962378637212933154668986840428938996742114219478723599172238322046023084391541685553698242916371940738149051199045114883515533448532070497372880304677817260935258397959028691532832429182175535593462706071268864131924846585123042790340531909333969575209846804392190459435859756010465328503090328567455415216608144209626141553085544246649663485279048236061191020570533448469181903034103597914507689442036221270393532363496100371487440641352697288718059209889003514689656754157816372981969827130261196404245864710265264067998384850676673203377159520812947647179628900297646728337555286365650114349939658429916414535458931002916487782270219735584485424343455524822327264866657511962304811905261540011893946279547359349149987174919091716866088565717285022829141687935525996635129645479048487510002665065827680321052360008080611273447528593895102968615247006036108898510506682745782400935311143720635512081470389295091743224628494856915558723345140283131607822048910293518554710254881308910961118800738989559155980393550228558484875123240901954612931817317393581742681210693433667492018695195948787931511033209926732766134500152236757538885628132780737355000243405311138267806099636939976793505693832504733220517218726834763415840033697829512931141041248524126124074309255557951343673727139885108898290196326419790580800467530036021540167348041121303899407362154289910554064763679552980429826383185471360976908633678431750209093533350162068430583235114116194542432484487228566494467962807040400604799764471997771547337554644848711493870306543578722674574901145556050398758594124784549753956752755399841169313988164073919752487177106259025843394891074948701083348203285852106839500516160709590765624773880149376183549945919707932193583908725240361062948666545964427970942624102567203415716236936167673041520689043384446551788958307868635702784864122841908534974711450224256955420999727056188745865506764987193782060254503046009398574302092690560668703042916804304375847884754597683649117349984768642214496287224099334127455871620489458797721564976719192957806159241000596046605127170055346254582263932887851424045706526067293837539107985531834941359118011244077143136268812308526036033364545128840566928398334161610107665760344668096548489484148778046113391391468827742082669870828218660681727792454768408327912151066353629698323545265069819109571312174007942210340358287595431281369606092682397546573895986667105843673655345724245730773443145918650694387618517633514530127204424703347338375942868889240719217065362318266627749713404461732760843314089039005266843510408704330282501022944780421042553535517984031460079665135517447827564188842541091141644045175270846728233182705396457819363719007213074193260000193284863727272878842318117320708744242574192004772157622552983496992564508655739011629893828124163945646303950593170852822715182466540793093061696612851752971010325756007646611381677276730660409499689087959466597778290208859250980117281417823750392975955070943508006117614571737783245332521073451640086655465612367922469741234660456739665432465027129319192778876940945770391295077704552789888494154160637927832050748508445344560493665564718781849068205124398495594229592772125464429181262142824412549889969344220377851978420017568615296255961199102009311903226377449011266278277248416048562908618069799762479653583024712008092457767251942251245683572526954236645525118459305466029572126970547614961446031870307875356209872711400407974003981453307065434685258109090794462199688927780046647226433356619054149295337163245669904424876493088879046913356893842002189198588156411035218665542601402683768997908365456840597927382859067127207373559484428012252848311465127496987024948035691178212710922000738716761524709848420925374687064892318339751085177785451788758057680061946465223939719419179600353824577647935824037326326034178228882597731719080644915113401592215684199802478923153089559864547828833460191249231088461831944152781735007886312865309113284627358876786112855601473540843897391900792590511674137880928818067353708165884945693850298100506759480977634680531904172345693866655981108544062756416811806421089535914092752269778699023152850753696689763128100131362801520477208103204867741537828143248919060324052465896821276447385871544253242238372636362827112682725818106167598678054474010086520842400793314355812088159343939133697005438572899683033499085572773803456603629946312406730634499766899337640069251951955642598771149653029502039330321371142275369390496208599079963253271215903911411989971235690392027770529805898871573479717405125261283943585264539615332796777973467127322666967921575789465268536977246149355827198087958861177854866018576969480297745166306803085636606684387624902105659693097298837522450365990072215725144263690718839539295267973443995534474311000134880384889003808444756132536891675747751932029697233601392849437485312749797437533597216566179334557639310665427729595766018588093997463994059241580413792901441774803915478570010487769121864212655455030980382005416669844305029523104991362469162070539663998517284881291958075583762274399919049346831481298117118171703813548430856351595825390845729277402283455087181305260186270695530789319148179969443339698920365295863474602754140315216077163513670842090155472313581411507080357404244956679732795024181369764941656400923450864014193831504711434376755349090086572503444822346593819771142173505463106818045564841218329979818597705722302041799194898368911778082143953456844443457183314320079017218866078306385941527828545274276392951203287352697269732551218854846525594528674804778536085676868091008597958764994227328372618593982121580458999486741608722742768819056513272273160180820676248184096021805718297882637879321462327331599427261472190567005494019160587211294723778619626465613774547335229998070076874695834443642140944398936859153955884822098466106444919858915492914915033675570800124404658809424208281395869637724472575699355668786754677742243401399859211534855037764590841908325264326659630449509732325929837513214156307000698931007284597746628117014106992291779962879565670779846180844733547675764426458643257503851358561577769549585899855258653841978375976660128279064184903517831914701114392803390663296571765867100051985987525590859177722500104419693861373794374520084695061319547983572727665342268679646930103782310909957825968259685908691480759661480448496037547738663285100496841306423960865809754350615974133230718339848283884204856060202906967407731580249669461432038767523272814550127035610285410298418728517316106599232089232185489424239801717490787521847954409501817861364721609664625970702829782951395401220419830368854773068069192822864366671314010569985748394358226727260238151474020038354052520941458971451776514044798246559128619105172819494392180448896010833425960701932003486177637185198408918277844839092403898196132469768663911172110228530034119599530508764085999648742946064871418246721745576797914412672463482583970090951046130205743040724052004986895432717360276810770202395518205470725714473409852232806811372809705362135775559072542067922409700525676870643628456322954158084833451202154998024906685938446756396056518767350983222600697012586766116647637078251586911697935707964525746048871347784263718060907890968568989633126099454884952009929326889495109826071959471948599298717167280920567049805847607805574646733122813366121881606574884973268688527964564188730583650691966612826842992888119204268511335729435013524884140756579859847307269813434816820735011874721664583233241207552511254066228694675364994397221355466950861403700957673244464293740281819946765778841854267207615494522460461695044735231595113435626766501010888500189578908462962811881081843016197511669063963876699413797274662043654731806286984117914802529109476514495612849910259312813677386604104900709662130277871894803611876649734787854430194687849176531935187038024996568377928125677647674737068533862169303823250945615649719915451351765815112935765990125971189741071560672995738211061325880690515368863369089607802600121003589810122492950849706700175931648277200550533411850671390752208567441313803171266019165150349910257300811572542055240418949893106948489794741442389643263965183054324955149465140498206688784693086555690281331075349444738750324893743904574588796923680512477101847024771284097868569108432000465910725054463222479888931168944156770845321575790551913834623051560515806377338920566046391862006325781448457230415694210992744961045564291762448095368115557424736773327977918083829222172243449471753439716361181368400252059510658782384664601598135538685549450061863885147582704053241786363968677708593247402958610074894991111820291727532300892477824062704571441034855987446641570677309599063972226427774857353684573810318838840048599453803854553568548745975279423831867450359190386339992802188888528534521758684255405855804841565661087883139521646707423378298874918331769228611981169607654262816469892015870975079849463252852040754962688173521186076882077005083240023528392667036056880280485648386153049666206329652004485878981891346391477537322146954020233875835778390036204109291280363560431938212322183720207153900074674270132841242321919245522507846062836706570339792855982700086307196491336214863703730284673722364060784662745028755346972915387157494076472791527708741647342611491249350639855235882766526143415440647942162561052850104193903145141984461796789978299222330191382507699734964587303091192655230650856973909177801943014823157490903824734743135450911840893760621456065818468614554177290743129758640608415224234961045196486743169124848391089096853712226521341420146158705183162473254910745550665479120338072599339119622794250793382604113394173647769734398485188404249691935526277232935726408814399522610246532565692820053053307980057531514650451647628289127398184630977462595848873997716094836267999388985473072580228880314200260824166020199559846379122431034385034377894174271605411563877910473905414851502773123985661265519892996391337850887044844710012132450461835200214877649079121974939517901288726831287614827468012443853712950193447219291108654939979351808322170378660810179573556530113240705475753347090297704380704248965395885396286974759474522414407294947073392057229214512928129479365022517118239582847712338875779968693911114784567498396413447016042031428786536186363515178730840278199524652042394111626356434023456547831431751265424680888135382120352312108331539769269249115434551765849634308044160531323556906458483176455690224783569851957424450606320146158597850695997785802807273414778501305166573621808767558431771799841292108894982061851939991497570646819191125601628197539237932905929018087169811743620071799843481464903336624804401061997625689169579658289504607833847263041249499518836227425195205305301626972741861057238688601032030521495143497628135262018269660676569576701382108496987324616805956331454707106280162454731593247595456142979028807652551939184598118471303324909206085321800439293739881815388523669579197523620819544480183856871230151673713322441053165495665797031905745633730283468293847005277959063715142659761656723357056470474316176028778657348730022898050169979321272470966496136581660568420814499609245468633809140185871779185263995751386471934210670138253709415201607197996397095782258810156530365379425994319614306226519486891046359589053998838523865496942986559333417088841744891005947513024121977441945287874845307880351363809874443215648586303068845271338650963475792418276482363888644499078691997977106869684522806714350181882898558348233620030090724840571681172454379352031137564155419795263183279505717006020610730112002265739121479794560528052153455833306298140057175739206838176955492699081792607491737795941966796474493045580381430314024421758893032767032904177135968783819174940865625252605933715100115461267204239782295952552724402174169455611939714915058013337882609473772365398497622565837658575956572285258518884644639205522386857098136859375946090568008884778660134925690050998640102540632217094469131057286496946552739995618067469028835307433697841070546555949778755991915366531391892707199356963836276485182788588291909222390302212540005351685336928332746805537454179871506956605769553284597301727312831446365123247682772555887141143087032672057318519645348999217346026820611703597483373446468616117602957152000539382445499036639625949731910281382182987946336854131186106291987567953930423754132820818253925200413016925421426795809293342759392708538626899261676455261035771093628303422354914059812784779231948285614794156840093243516605541654293289084042837847088363386050208779505153962828638360036196449974248335848655393527769604765269177806538825705888060326333487233119305346461851436737286269597477197436979005057908624889593780705356973124752849580886301044780342199316007542506323704704826969028408349652790168626562509003504527210760464355943710962451399117410122538713579084073663790103085106915686940177642722902796705089778444394997753671866479489220680885550019913536302229304691916341382752851089159800428322973220436296630892877913457786138235980936248834657605664526285753388112821652205648573312867637570030654685679296618955050318989215131596105064495539524354782426052112030079938992385913838906631484175207112404782891883567087187842194894830653714857343798621835066020214878387667633137434070841158737964572563751745739855404410611704173307140477300631188387046754025422267201718827783037572596111583703898400541451011640210709902109124409879595683129308389851766980030271814872679786967534303460168678417956391931819147296862272974146235259415173498667101514507722176938534772202796466199013980124968583337909066259237543680606018971308504136825628833466665863220089656379352191422919434515900180348323517285904480588754414888656332961285636399580628503983100008981031791424838445231703516633388993213258223749900567657252138033091200023357654378008528115369086438448856736230615712961612807315331550450738582646239133282089214730589438222757461401980207469400458202238655102973727297391342484632073902891751685902768394710538193375989537453366247211816209152993276265601544329350820980463506023563569921308756594419642314486337143216580831410821063159738943533084880134180479967601641281552069800950681997900690554956346910772656466846070304351491211051893773358572360603053846591832387508993551883014292582036210672744817749136478949017073466869970420358019284291566019655716562962547155714725779888877141676601191499148856433894073835220488158477750784569476337544466100983892325410416411458795790213785387324197321137430493382399116533907082145055200438663537689209465363089585761434175983097118429270324766938155080619906228689788925664650926944783833444318011091830052310306742630419455766771135556324757170080710267751066289851209029535910301018029619588741179266668769453351570478203714918156849020108489461324851411504811535968715824758027722902041389864659102835456700686018771374286986727396724459134222345150076410561010014093898803928989227468028091348258896803326379074407379190980372393716508672955358762384075651323182408255562285623618896823777412315576570093961489017929768864080891032454060376345361687103016126336966045496199545621257900072057250767311111771331372700261374997786530079194060308364298721710508921947819049980743947274223961010175546148219158778686441466666177872690297341363019306105614035975259826775881957105060910110974913271546690679220495878164130888929558043262464197006995637463692499555094475781123013094596641061864138014940398996599811702620703425013757861613771572552308571666620079129101456243253100074733518716308844382682607684321367012931900976024401103370412589484173159871716854768816332817949859693470262596092821514998456203065675882821575918504689601149206773761386622347809798386528431840115166658660042756485178880552425201057273209775673728239411110351646119078555107966600063291572115221718849708226648653724434320236899886539613910637253319053595401182632661267052934059600964208699938995840943593373826479282740964103014284437761819064169172780820013378138104964069063307797612467031501276652279849003011779826714268730291988411847065733455613301652049440065850607738956721712431789807146168386648728981279611470840906814963407223319047718310505368142240310810727652946649459251496419152987663250374228127685075443935304617924025769905412800412429671797867063830814276401330263632258600401743203349449668308971433925918050463529238811756004465293477714894315055882767531207160663611891976115516117739060709021674362648864882804321065055710798630165853112223556098564379303569848939473901973574872946641207119519218329791443506553440846602290983659896725053207128480909215241511882760971385243379564247715486823134435966716874967232981743758902689042236743439166739917582492327822747846702466567357576987553250328962344427294246981288785379573199613863134129443313795916881064608678582822136223075046547897633638305680901843010378658063621779394107319123686936381505864885347918916904110999668143414821228951685775467711648970057615941330323998143122377186808350950467794229545741007477735114769184523520421018264199231845033718736826254499803802092910488136465010048181905720622901147623648867677728664466144870174069537051701716743175269049220323138537179811883021921254969128838668317953301553321842795954894483397734817505247218702538092589500907547083379369118906289867388006213611317708096347346053591194848479029137093935377438875164746159983014099909515567415522463852264455428578069236879626745627886640165878102916507988835454496801195395183020391915876168029427144498151867595796719526658923911024802345952810323108842723981839564758186196871440497386574412629702733711963243737711406713570328615663442784962432293161545980072185493441391963370373197325082971594388379924129151905808490934785832818195922622629783114331622576642843112762001959700036340009169322366305009105553065548868978881309673445331076363420501442394064346090219404512754277890155569901245592813290221571921727370716375431793086521597022325300956527512790297252499606470070858418128603517281429664074371267661493455522817093392616290360671035812046275801242221077157221223345909310086535068110013332064724262050957378115290824713999959614636003633343233305242644899197773039141094671803972994742992765108890723435494680356757458577036725688097185253743009379375121946356586231044150161021734524862104292673041004874014773220379268669402852556058989677067600257458347081307977896355961012127859176299760153371889464595013034164469386694944200232132860237087582957007533646760853953874337057312255598557150521077909895609950767906978110096902049867038994087615325019068343864131080212783049375601576272250007812087430567230398963498024316224122860949341587354242372617842045129003577550821023435013339272563313437080266624454003546527276364380036535644818117580141946271742004936160909849435786284733082608957839126563031314721544550286539094165112415746468151150754252479059643435523410336304318197741812280444501050944199828499215077311410162993522158869732950254119208473734024637787217636002038054159119826409550654781965281542890063087400357990403926469500293933167870117865812886558083446458841819481567599665515399120897336490530126472441334128520852518730129283949046865138882839823038622557872446009897289819028934035088110940263612700771411545635305204266535586112580736919321345610589545769139782253049278308402715022503681860344725809414812795702297969611826253014512462875624089430191966299477145492588756792346276885688937409625412673962438200524158441031611403556934226919889574668414479781635311798479014437194634963776645658560071347493963605239375723426478226010486262043237483941611233534955743243234439672734671046304743006967492908333048497615401723268349607861283386694696001812844732344059447535440161034690915653524973428283247183896242629427884613658376909834573725211210252596798293897118603197219302940404898787266548521561263013046980050697827925703123036486540278711316444150820772144048741425951298953720279465285834524416208260692319567533633276661702766667447418540629117281272457225394671711930561586221900355956970875958406927654337898260844161390672577582117656339735085302347206785151268282684759948042003705257399838064923189030089848398295323556565521610341991116453196613013802715781755692377079189850151208237846321641930670667811942344691749171949707825169392301500833918727996773162038604799750312533267572192494092215294760532790050242256989889739957995413866358057696234732277117418073703510026450355193707190186590952797763169117621657679485820364401190210453948251333977950639928641186224047461198630228976509889920610255973279775143322483318651442212668014554496289529103443578118336673330181369786892326739350599517535717771720757834850529372281491847115620608632727906407861005343138996251321801777303162033844606890842833107729650557573630638774819733212395690175143688857292641510757241955009131091966097138836986403207546990088507235148761780879020479947164691974746252552668639477711792946801300102255704620991475718432370366514974026620782840449074941079110452670937263517075392022336728644112406678212727089530883883698167698928819719252024800044402122183104295460991163501084882567870197658127594290905069942565859625360516485364064145072845510424450710384533986054343865494554503574431846749655020971731455411424481222448848436050266434392648396482115270071448901835742631401295030305228509505861318611107239018592941437531841375028180183257779505590673252728100732878293630039018029775960531625854418775638436037690466944102078011114688858459918667493892237999602156118839079672287477402987675080779666834552335053760539843605292034545813627330413396605663883078128878318108396450452733542250107085561574172973098074549285944779474833354629744070417471376532513228383883038973881732411454514098938592041859244849687800488675419082825633163379009072888897697694257118432256515590337556809983094774051298484239088583047551069458298907410731357930667592190504337903831054720043384198459331216299345646654487571627791834728837063401933405509804982648052132603763478295215078051924667728893371645217001259585377675018130022559719521306093291312036481961303919789568527369143386053255231218333124985132714426223261432198305953566936046965009193914268777366971321729729148326854043690204833806251342578773399488073129599306747120737529260487087720628995370134913915124119824959219347363641359996440701357570793468962933068101374655033016093538799286911142582788394071868482113100159701414733951313335511264087076783099506280205787167893350801746265856425937348974982117190501605264522952597882709336049708530408786664248650491621607204132817350470555590233914472246756082759804036702003442596974434705173654934835902013170430997896551836983187464519413306922643273216631671391548400156670737238378690125478051320924760487043941765734412762400752914792996402746645793663661405640903413818866156590738004043388401087255997223809445399050832985963805986646281655209979129411263933123988330057099711992174535849127133530161939467603543563699449785214370261900970870819335459750065342963277582479859337887579435095449407587883451652258649428540767262184759458568764065042584631681556637901945424245569335803814337005313805694307448415763667724226929590831327130213214639118371108526388129531254686290370218856612194660889849207264521149865120178577587195708349452733060167402119676863455876979253167290457132787953232069076424164698303561295035052924992643305021986473475758044096151864314844773403639854795990038334895835769621607740180803090184474242524079744600481555872693793880482084787418833527507118363819353913990785177427885389256437546807402725213905021638573294140764177800426790565270672057223789322617295227905344303927383596526106784972018023004428464942702718110652307449364775364757883760154653653413491147755853931962285804841324991128856116291341122816993929627703926076958228238261752429040649607920814354136571618392697870020527125289597891192332171912409822877145883178771909697351080317507993044857359066444410871976869024560452716544320449633141487284024664066295632203848443332157824488760422867124371011416364194189726757288858344033613289378209512881723626312270760078877555780960519164450359001751375273440805768986209306071015756364933185323378814387710993530753623205131645525506283980784171693862623707449319058625351839496949163749026517017696305696056821499064363546551409266921691930733222046635714673149662899942848308696361886413969303391003597118668575622804729121550877777709117929980337506378357561450522033723984585696831717591849695897317633189959284672460968435327797123728147871557225048678650423975789578223568326810515331565234031566897180204064823944983479326498390393665838690946403205242870574409256730653055401727445847524961188576911774331741845471920715855021180096218842582178137979738272837375341902565166222730785010989993667019584592269529473270850010315616351748217629716917450957969803288127394792913282276524135474587398180079136165110835902681379595978745815627930771483198412801896441541575828794253989983040103282087661155216945817060689538542793998711723951395357704748756808956160633713011284284407645655617759308608549535702598731964406202304304204597352850355273679228222746017026912424457139916972694423946854699062322856750261057321306027333999166872901636637132537763988140818116640057481346235367833765841909772270968671474580813176735065151185165042127087308551630822847459216146482665107653553871224398521356903502235034590709516905208312753909709867185186605382281174891255045356977026416229697445500707370803553924496237283495854067903298377753282887421977682601134185802729866709759055226062330457748073362084528202996110575199773394646648475290521908418941360222272907635676045462036784477797965768176723599663711290121472317966112406640303194777411512407531003500521236495333529857670608877502182675303451689650271526776108181564491798973312965404531020100698906480659665045729100924556567595901590342562472529501973450018371690700882299132392026935494427810445171865015476946105334929216379488472138432609548904489926367288536102116473722524834927801111941906704644684513757920781418155126245854875020598531520466501440913339136311900268946622188261499261047801825611326770760244242855815264347895130629622099664069209867504404383352169684278169087232291137338570176929791431679710645384318071976789628315244713390255417491852513400864353872528896859365793073947611590058204928709019423469164420954601719095794968715539765689599144214471227402488751567876793494947431770324369745467826792299929454603688493579882817209094895587202625229055162593090899695617776408899201322631397525111960556166325871895582652004070689022872121085478561232624161825711420251200898253887632353473294803818550744748558972549186660718126087946673021578341746549296952621987518952634039743671306137518648535718645405237587233775903495825981582539347565418854642656198467606027993913194059077564070696628949882591193372229419800754360782643519952431934756490665273653036207672134729008337319505790834281430687668529215333120523835124740913219843146387471265641907973390960121045556790866254170938980208062535264675287884432503367942210757604217174275408339002578908307756739936798135953570277527576608383550292474768612593917911028381665915119033298165593046827648610361099076494135117657144168334201319720423611251629735493812723529596661630752761865876469625006928219854130395579918253251581002783261877122138340249215387289193058973593742281883597009514851338153719843851064813569639982969808310343641804031873499060364364737667740072012714038167547592065497007428711841187550418426878101317070785443450726350520280105692156002976081862302008712369993894909816765089761600176614684804606366526099567390955279283269515444796414071806390691489591804538982197291796751204427042430225926020508648100933669861942151412728173550468786484485653922919401611467299976853972938460368850117053834779906211649486090761825966559528772338640914844883252566854433570694899753415674993060473641338271225551353113007505617872506450049864015845080385431222046277132758781028309869301679776066128984301576330960897322025005339895325303378879269323930445770533750088498078227378386942159595287336195273704459658560950718753280221379283927937878307775941393436009454823673614249878843819630085729063803849068240819230438318333472595548625026737809435235988701815927392703711658335050849606316316062718621781194067364668917302554483497079883124193550803599266938357203059498336235546594075811043856871217528236278354542586346989815283726143833457915180830964915919353368760137999580313914554063146472286573622948011606859017582553059100098310217723178670680891945701101358535976260548844186658908224109310411154894389158856892979173757851126841084031744530766332330533311839485559849485739898873095803928829204867279991285203003223556734236703970518246401886987043182932594217853780498829377645866107624414252578341885166669820330913155388308541081511476834471291402095717735434506119649111956136605631017841934253766689043030803469030873807753138847999204646695626815598167124924570229751872688086217019519043565857932746794837731430665792857581809923319029517989718195517019596393815248754969328295870518008910750875395767967212332516612517363066504102619903811872198526428631356626546892423873905668198130604334598807682960756089604663691173618739365537364122741417166349288058803126888781062657603671048265461400016400795533791383690825822842074655944710880674939807743898935267319931997028279544452811810554551611704824931422189098506586792090178644398069450572463259069620095824911943417432186159718399381306070087653266647340206476201064162407599581189293099352856682786603360087012958510987675896210684883019626866901708819531466369662661946877607104510388760496355709535443872664430575134484965493447356028796125749112672912422425175324941411968685181318191046539363837503625164843890534428733921837643960081791005103636568913508194628000503515023989893693433320328286007272981640540660614115269558629851490675289957123208493137578793123237865961389914902562005212070007978802892180795332532873419009870456668561940851928854967009741887609865426085653267785916329888624746437464554120935887343307757568101417091526939288984321538210171851027478214076135066962734304419153685943064239013120536684142113671503153162037057546101467407197935969396568751809431816061399101870148753943725195129622498309151543494155785948729243780798052410417692842371869363123670289295590994557397390429963421867886353425887358818734367898247812314770687063587080248722099331975675542416671692173678707611487589780544100282510590607666575542796102143727990841220167420829148059765189878329038496297149081178995479224929925310400568029516986650336970207344214024201983235788665006323898390376092022452441119228661557414162179344708779545527319921501049245826118044104558434403788840804594039573788182866720135494746005070840878910759439227522180518882093222716397452613720441751174635362535884475834932800852348331793087180938315647137495086396646322964530594417564444595267796062509922532317668411046070557934413456565620348581867346253817075261366396696278068839132574971635486699513931948971908963244552904865891542253920173659852409138465386537990312442771756819339671649642539480950203812615402137273576572745157325981972194013304683812954487104429866755321349930916592756710971161396802206333878568665741890259280721831730727114099306239119664466151355288639098757257868470724472051180940025887426399154599534015108031148313905392574097044223766952666763605951861787136887833111319826983340794030915278684232514795658262165223559391401778192991102827547099868602388102988026336463042618617862977470658231637695563664833507985414225364685382630279928524312217942467275416645997811432616050589659710180056534261247242307356586673026522957634460481756996869507817042138013135923069228008073830143825408101250726062091678784277061142865155010659389107277930488854943696997304348122279272160266847918812181535337439493733993874894513989054561622904820392842931804711245432705548297551782529767316680912981355932307690987583754198899820052204815009836542514537080956307244792372006965651932420990186149843989377626917825600222604821305922961650516078137958467020819116491057893440294923459522210967829338210414105429967269994718627997877540444268524011705291289048874177655701410096735267980049960465572325761465365177983090143572556832692738955553861891887758587006769154860915515926360191936002825627299706985129450867475012824404837394429217518497304548199615123485234873493252573623578950669646200941346683637438836281910864813308949567215616810007965018571542871845054089565865826326818713067716471087655605017593100955114099520364227709856646693912488861486760231670948901828963807876580591743692148150578672467310295815483440589064568459692499448159017658690079243959879202737044743376427344532482611995875894867589410320081709512207867981368584362228653180359634875626080947561770693155506177269493209200957849520803607961198571689308745171369967926788999033008126293009705342175562937075740146209805542663451488513446954934603262857532077492333135021537386248865944781005371561066526499004858467749341278371356135775823157511913023456454528127650770823695224043366892734246990529223870626464733804473754048302472734003628554147313328365855073014540817896075043303066853461638716843989001457861467913487484165157295379143175077949818133645545881007026331588301635271429834857687630702342070438685612078888532319827054682370090013704188970301329916006769120805175137402664618005194960791459350061570971440567614015957433700463053033521378554658355191570243320604276192000205826516738189867675239761193168261182852338179624644962515703860851411006324736733302967241578337294479624092777174753037527982307259250364384095634064668182330004246167864933749536593593650434281707372598672889345440280031946632269336950095201110715174357870910086735491595184547341369593203885026701242604218680774389994337876035854700254753484055925894738711237375689297888351954849325389386216429211090089173708852884707942976602896489524315565989591805653684583376357132429221660717065278829884094938313816977753737221606288844416689531101835546518534342241319441781952133675514077399396256662807786015923803976086372065954737670126408409966106967698048043765348641940014762562079271858234539294030305432894432882430984881285329265424583324163700103839488537771077545989833401313112894596412433401924223084041616173214911682705589739536939381960807203059650532492900540409724618116550091661552372729288063437646295211547227240561022735553226857548491400802380955817527128783608177844487501230063609647270790055266093518150498779587799299762910356276718586246842116168591242219028398644751614318433622635350321375114537786613809565517961538992121658650247956384951277863108078464652640794037630417636105962945016854175127161308621349209890298666063805917505939132901801407338753329647057787920236448701360030639027930370230309293222449230605523770775722052491659480445693535140390931419334807831452132326751977792572583782405978446418044446427390232212663927140396323789860704305187495562374839636925344706773845620857220427908710317499389364457725313935012180275168292432958206019027207855154792325353176712421596707964017729910568584265649059070039015756148900417268865074905051490691789925861403665360302130292028842868506430852306316425421989000627635192971482440117444442301972863230635712498177302171870617712307898632830360698120894646351028387609056096972413257637499081609001659806768806443724369551754907086738799954169380791174491100418117697778046512715722546476167677481235399447136389467436364058659318594991245024396481329996430914404012989734659203006529082614219002663402372796031585536906365019603966726009273313599400153996371463927650282841912824263693287924098626181444722651667788190098097817669038394541146016125332241232223304876994236668560365866692343450396778314475480165768635809764674151072826645167208846908753702255036346197711838358556889686058878218750798532872430627197187625881620632783500950785816667449698673959604670408157028869291855926314118453439148689837388342313491571137682675869208082667669831285282523688078730358432083074744307011551084032352887796815157852468915340118571502423473185172014478954763672525722849395000515052481685802497592066764286001266974299977186621218371409291497809513192468132092568235157970836408761829935753363450351120541760574268807267419917093338834837999776225534336395664059179545182125875823520969933860682581631655791670007741954731109316295935460789048113985020953837190816490452812124955885998771808720603656356677200722224070144603258159458385994962588211242156462705176646541920900290885107403629554674213212631715712405032123423654511877218288755132456746232393233463824494729212567717235058667353497574596949667211905150459317999529908633899751686887793201676725773776017686777132108900810559894545539947113431917075237765391399001296137166776335080215867768524231918153498681155559569520426298561540599110131823287214667018841615808127906905497646294147337110229482672181921083512336365372135472726167768966619340983140192810021500447308395594365501079897339670446600958720958208004172065051700043315256533849796543584067855592945638044390185613285634839260560150344987013533454618487202212516787897988700324142800825348765639469750960660291514883925902434123078594121215179046062199405591946586966322318621737649001140602216183864799843041925451202717695448629923843320455866230673482337824331596201305123826067985821095824545913454466612656766384204757645809896405413102309251272529202148169571884058668386117833917890340860166789484028539903142933397088649823761559660175841126582013568055357240063792237593752783129367099082661448634607897587870060424905243974797225286546366865193812454428458543585689405021138801868823269108761934870558091123796419946798054248446843298624411401989825338379859255269506396616685066690622726136906624883344047019683488001493096189661207220311400549276277302308582441022701616073273547264174262732388444856618722298702946630072103106011681393495145728513659341782839636903219512404167118630690143303979138814311935071115113210931580104945334057391000911318906081129839719363843195323957235026394914363395578117723342674912020127574733855184628689222384421623160780646824198188986068615731249066594708920369923325924581868965921824135210027539915380317554890745238872691098753833780895494635104913971016916588319051978597544977889962044183569821531996189355515374750174852902899954152322466048101961715297447684133853416865293430414535552654720140511207939377458834164023158596378031500109308594338019396355777286611710626050854160522874165401021468079693676687614761432606388356604976610498305337494827186458717989250878202279163321417976313339364283220810058787079959899250536482900620986268626086496775826730083902925185658910024507377746969726846731075532859208116397775592190864533457668499208276027530571397700144541445824238754743139546186704134742932474299618067908499462087989499090665451183918791568451713347115280991833899846423567015571878031227045346684838138959879070493593504034381969310175411514310960305448528247691252824247648619424693088654917056669213244965322812163245269272847431755452191253339228084781193924662072248918494639506858320142124624723636051768440953043281912620524578183032130742046273314943010241778597073357716138366257738159464341499758072397569114156271147912201513510293273041296081700366735523202651966453332685011014055665606549826355347148477510019467719279361355772371983261924246967384558933335747813615541265610302131499462299068476184249659646494242941841307931547144265523923927476002561865768093176386224352282564209389944598515617416192257506498653402975201267424929506573582338751719548847839136151982916574234635663576865363920747350293769865674290088836232854835079244137568893380818333883144258700879548506417499079070958344800592520010333544957616002152959481848004100995209934843042793921541903258830485441949970228322858823957435073977814627551446273040907595833427862560033328821872352553155945948166490224283006225876866698162901782465673749329406238985001616095880694352756236914002459735682454922443537055113085806563254842509656217216270948022438818618286955596539414960439508115098562334666039593644854993234742548266031823623785426501361244518563203225998139743451029643762936511203402428678993792475007382561482714334689200197050259497219135042154346263496824602162681044139523432158380878917623034401004280369187952227622377846846340320416272178013266695502248688754229595188904992736575716925265546911812737694988341476903566001554371050552018581089903254591867084436748094194734425585487128482941120444823848406601429857318121689845749394486082363912801497605189577761485731936250296130160837177992877732625122379323049842715004212986361547091513246945107703461014044379225505184460759783513117053550418951142872261578526160444585277211483209004502435155795942130073901659268159465469519780616382504090784430065473714572148890111627008839431147574945482115729516182428656057442077727037602893359459560623977110497609029868909216909288568233269759765552521098582874441437352300023944422393078564757035592279405011989449751174784944778260362436014817862599113396641438871870285783161176608447585826316305844498705853707942013723952284670391448448495565232333768485173305730781828744668121451738622818085608903202474736165629083711059711781677551082467482672140548710200277384475738870434678073951441036845236302152702601351253781880296769775143368888453697322024526093323386581491992429722459111429695984244769884934284071189648364716569982227407829789039220078162998948845299391416142312447514043141255053322496930864016708083166235945897566353174170417535426879015644208448829267365283411119475196022397560682764765659629048680793678675192266568021397108654374185080116680703887744615116472755911961534432384420137296777573240378764455723075310238981928384136146635891267224408203474201786535098585109546414156917566207385057717082909634282883711029666927628786984414176781188063673779198852400420905081860357267431005280100153662770418475584430203326685599499649052743145307059389035620934831855020980990382913174108973775656931943539464902842956786183204275480609551924067853723226356973470743466449700200279383461712353645605637357917810645916458446663440825901748109368088755675273330803917912347480542396942431328331355928313803643815019524739927987960506453149105802134410190704943239963238046938231032800273095965686603917638839750601681227683166160365172569517740629154612038577081947768906472156995285443266589133854709920286344704376571810611837609883965129957362416924779755253263635755928498316288311269133798962012269708269738320734304900889869276569184853352393429908344431462405339972539764969388648740453997524247005521006801519272367236967635439148494282440228596860025210252077438616625439627942765600862011524561790917780711498143300867230577479846938457661045981356443994826687173533781765927886003382079117948069642164212653907379090902330983363709422861989425438692804796985605309519207425355486257788010101604625280751740492118354572651238711204898147835666348998649218304334669364583058023156461855304732391166145614205470634289838585620722269058761660936226308436425339855546754813888612456590034897532551938647509932728504286560257539230014353324067703142838439095142995246294085968184370514604807554199070607692937653519930971691708663608653678758289587361802967719195901058746854842307181206188913417030042497802394588258477256296673926599137605570504582084557852181804158205514957054859742347871372456378695379938785651280893949297754199131976476016546428728396349036995282293082930812659859970629672476019560175071855525756959466959379795313245150842529008643677687598127535321259381375268424039825971833926714249137679088393540250636381392800239059215135870110268126828127599349246186074033424162726448675720183647672326686294882170293521584647013101390659479518598481853664459412877065891304941307602266362957624037224722017156680152422545991192681903878993491023729437093431497818235161673875444533237231343672521723416544812651241895060877829362193288905695064148203864559508337412155876699719878008720394664976990289337457396989568516530269014625516998544527198345236315133007927998074068496862118419229804174149230245730250850519230786020823316447435924884834213597526464566281229033953257330336155464893764416306954027957652861187981231227806447787107313258486893962115190843490612742692468057791868101942429651918328297138012743106781327325406839267311456553096955429379469124128938477576117262442669766073531314487202291686618167536303228072468387327674994077551789629538026168474586307528756255348102541177574726423953105899521780644036852896209314526766705727447991049543218579957818978099153245523334132127113403437026440485873589606319676053606365238021873758674373543301399390482826689304917602743490676235144872878897030032672227926389978290066144457950756560680705708078432109229882821566027038791371107413516530704145581823902665923243513881158738984920325508553624434717909643849215968014805544825530119442689708899103637064861221449693642902147854063924775202009183346385965349156978398728314013106883364382093541494473565546715094431954702212574397072057819934824439785182313116326657693015916949370333468184293663666035179946848840457703818051754688752053164980085264927406447280578992466846415843078282488924254644184041441047175310572438809888780490126832414588889090296630098668372449547101316940889302007110973957699312681782736068525270002507771143904994315895017881926323089853338123298857210159449154429014450312713512702079698446001063547229765146115050309750879526869782315601389395657193773123225106982729900588666090282373840446901126407495240670322463575270008770750174950982950261228773749266243002229590764091762715429134441946806116702541112079789958369674700101466621991675587264528195149818731556873657226784006964858390606490549684073531674317570092044990995913287020086362962121792332572857673638026599022835426380670995081102237211746453139716722352094028073633713071282693390208122315643170871907465095522261813844323982251056939530082398799741441640282922592456512114499684045855543090197833471172886504005553913271076500950602062173896230793803662798787856137851125463106282937035322819774321402647935792193935029788871514915972459652749223594165109866970678169375650629615730257660171007847257988862228170387865620406985213540825268649624630276492466915978279793478347323620190348266804949301802037222101010680822278519161409995670889673550191866975744394365215119926214260802966076305161612880807791707866872850745857272280204956077084873522146562638136579850121439737306421015266926838738262346214379887205977773495878892623863508766401276553100789132694033964296619139451716983239194433718381674482574285623743442031089505474653760313558823909399289399250369991045174579360448578350080010232769939632461285618852569904184065796309715068690342343932769967433235096490036686643366942809895187700971542749610787533096494590756549983505006932062475496850985145160835125957713761152268214176825180499637642738655681047408491940667170267880304173316738602949946032687093141680839404604031621859224752322018954117530919569331957300826131448350643980468761452071131472818604832262558337338789582703627359544267355405608178712400687638142814081622458828655955876856773113438734496663469993714263464797801094972177627766478085958469461817587717671873797607030466966712402914881115367183529840095087575785951411289560395276068066134097482531649350783018762528363065279828958538625791901377411270222676352669754170873791410613300368264972021987354422630089710148785899442597172316844410357817310351788351656086847911309608680452422242967436318877036578164181671003408941709115549939065439415851138238438349217839397358378271808269615402925584707352714216146895549936048702974591876839718158910350795935200310961553015453362845441983028275611515185751058287197911603473010787652244559657862429882316219540576611933884622729544924645460256879570003586537459635845184760039542758815062540498529440705853583632165697596861822439704845023566357279285891232595359509635054120955206033936714795319286185678725098674553600662708905332558954254466478137125708186069548235086484568716661115978958144848401762153561541744992756047465095652059448212498327209336238748040738281146092029426101317619042223748236276901195305569553588090839793685393666117785947755180620370902211180139332144744360061154748875679454000513637881111470432194203305869041998769976249062871862125031676194812035878731307781702568553829011063526383575029276374209848937378270433090002659707221276820469700428224994192284742144807914100032163637271202775314387188469757681014962403830132334438580008410937165359678156003960401077612293460301070667492408114812944773844498185706036633152983242830021085013641904087009454598120383516684651639568579576639108435545014010804682162043482571493338236786551608544548061555509099537633297350996302407875352215111544238605090199743802435761707414390762138704898078171112564098221849013746315913248635192668382503192371872013019671754505837893223040374045479702958713130287272293888163612832038723997317426842355871634176457065794336567490506068037754804487885146696451514239878964706252674773799229039683283823851100232617622966075654578158290732788369387114920002554270609842608885117229585145227476022258744730627809151504996057951457772224574935579075780902500682333478261318040362545092679552421699185746936135640678894607262756089573204658681830699899767389657116716435893260777776820799954568130995217591797129253413252232276923559868135677066649092595428566143566412737667425835397715277038935609718277379962496681667973076217703808472007959357600162049769352557509580962991611844634414301156121168879896556610236198137476456438117650713820648443449431231373099887658614327282406555459251515388605909060951245605454113324457733812586552547626751609856357358637116491241146421729346002370932248152714565285223998574792344167589412949029765555905961819056577770755853513074765498345447389997949291008029617611586213909840599966571847382582826591528278799828829859991258138671656882196157018602472918947960684290297730699033428815660525043638786250006253425555909817613254511605753958573099438534970492709126517216277759141603287524733421357579257708579966533684734682363893937455730390904006692926733099986577294932258774241206702191076461935899569451510968032603242594170719763105885525711051043309334312331515995760993435207054196902361668313226476211910781003770419733785668019359748067338051056443074198400416196363702517087866117673618338642759062695902767797687460705719235846103869088333294608056328263088095250781494656976175240172502927864236522581512138554544879228504564691537244641450345287820562387303807157074279103297898854230848512910090054743683923615893361792714673144197407257046291774530375431741383940526553019790886623582423475285068685843883524198946247557985116660969123553238223887983706929425749692557973288658491309827323654485776325023572867626540105030248166319599514174147705759783696778352614412255146816195234384609806229011011139484289588855315017958806325209078125104867141266259292458805766916568613963618214869439617018004044428429651839957752981936991276370934375456096340705775603865482686721069095095936845715375527354636585200888156922627400196151570166432425690094888450682751155617575923558361531952292825268430990616514150406672949831511109910733789449827460565210539095272171571888869871843611892023704133571140569342507881382886798048621043287496863969781868076754906531247666381976853605522273076102781900274845707283120822721998060897076797304501253478357533585573069700231464504226544105599563490451396796656790522035776107700352914790234429089895080592860509349947053417314467871915381385885274126555688051478165404426004593517758406297849553727780945438035061226942912879093851548589853450811434527811633776405934169134695058865493692276867415324855132161236164438684680978966617776596733027077871755783427582171336194639471597392239613669074971066384743729564507251585967927532558031419416709711944503922664814687728439132166837573465159461250010500544036109390810279958466986829625915202470330033613116257638364499907548691476333291619274235836238166640565970489425593120391743797458971624734987782341205564012163040372895571089324872276721169409396851488301194416604036657892902833358258023901723931132455732080486124351166288761823164976576801953302664135046266088580264256261323107367383491667262066026213052313002903653255557883492401875996230922392426115238986422175754854778740413521805376919924005306808450152460924856609935101485715796931979767072580230073111228576697693473591734336334133866963137193703664384329907768682440186103403599961951188924766038418677725849426406713321024800520068947017473657112912881457483904116085623410397986220069150891568098045559902608563862379716989962008918491157218998640499652575175442525328814981252042930702142903149152569856509187224122661964119673834064203162980117919028652960757349733594012900670561496641298529655323197966893616531943989860842806648215386090731402574560508612759183479283039182080606849205414658932301950881052640999935035122453736745681789587270031596124572614441253640909854561054994687926113596317740152012513407892942455328487561765535604036641644271147818942222056117876554425510844126690732260284066853533016795325164116237168962642941541444555933952572818134432571264370620636897325231567053101144568944622742780270844962885553260860852453774531478407172510096655179090480720659353280570339881474222425950721846720455527126473000313979507187609275664229751102426890382402417238534919313509366036857757820952831733127102683400407879140847794342177580899194295609285277760993508333558265168722915012722097828571034495592934557659865089187502291621558170103085748492858684583179357530738008219652822433134742698281634100152861086067578501948939881829351666351557482780916637898607020182309642257491689746737922625065681381725586375201946748788202165097933448425515713097281619020017888172129244376262016560264654751497218326315327095865952556371885405567376891461471907160100765992894052636404870703271999132952807610963293799862195597335020030754190460976063840032395623815059830043648968384460557974367601856297581080953721909955822464378897963247317190443656527733732306570735723843292635356563735101389879371376512753958651737666613001777433417830734482530812019332884158057877807353127006994683359286679502310315604158096220432042122381722656221538366666626204572338958495060569449126860949867862732396069886150648667159753118990520392328315262980648045660176695062502775218716489793010444123362889278640619271490730703811035624547229590006372775754282996768479454713466830629641364740751260312589001724576717312106845529726462337038979485696234481845958603485887361728290422153812087468865836245074665451036380100569414438661803338474461978985456397818370583480338008043386870746263887299577229340977228444562953121854272618874263931844926765148426409620398835448328222012065489327435784665079415386459087851328735064803274284984374310451992040856898195534553021314347194226287820788758750844342258716062050425397003559999540170181254668852111726525595073076944380476518135069556168613845971324253180908741901477984518558395585722359142354194547779088311348384503870272562425731889425184451593314908136140203688911092840184888064778962906981927124292577477685752551511715894887437503785874283598528580558110767858076170688603577761524451353984014684047591114225666729527594330616718615182785223566873341929969227052135298728465335058299378209177938379742571510743679906779322586961261569968442355904698508197777232025359485871795306231083837596509440609433987988927406048739094173401400534962816150192790531417329050554095898120163837705365931362990908891736960065309973302960838557737791706384261783332772137156074584618411663691840380002915879199514361116260721223667450692245050804876651640683547123399233018498617988644320668444345796138451880764716657443082131697388652630049613979581942849017175864140544508939675501883931439476386106578120082339353673743308521794975878552299766678997634641743600098745197962009318973003372352431085679582585374887850937476225988095364549096827343258730299816590585903400605941536300482107729002388119117928250213634256575411780018640829591431584485775390770937110109350148863265672216621326493894736814794724356840432166765148871006414641443765814780565091269082515406473289481440356533916779701138829819154956524579547872715811034584682582864549105745897286036294086912419309372828593678810718299201821670185563267093957913423915079805675042363442511545081338295459861730026972193562401457770970076781837420829012160444357177220175126943518598120231221440114492638104641197094849793808440681407461435142931367300693756060547444551241178967903911761690442263140386821920290346402244183618974340597384178313951706510655459474310127559391791524956493794017432911928820828555899067735442396083311261785950599781941206501695682312132898501088498058920664087077919883346762635347122842769070387827878191168356572898504454128710081265091378139687985879525802371973148394883195598839005700347323120721932896931274298709089070783877069996847906291896996276632132366549819058889812495322866493891390313150932890104818466204170349195364741123697559734202981727032993066938856586297244788581400909862342437061246121364466737668367706016808525192223793215748860971763149006874990316360870378103902233545781626918500724483212512911354094875267931576782500959318859052307173110348777491821410204715604134083771281314531999055149702388179134703341783905797274684627172338308335619244171679595555750930903841629504015537926959864120486165524999816898209938549229303632621267403803919886979493913968434974860841104291310874223145812213107667679272125282629553470358827182698164306929322237041215886174162607643282261611611802561118376112505157321516925358978552209233129156451381053224544266303586156304381378028134851572272413885410434826874479870977070226673147755460313410576620996544728630581210002507129853015108960662852158481557972189002333161018566491915557471728568055511700954177851698035776873083563941135813000181109621518281131180492684961297685988733304943402953052597760888146446575062923326003664061655744275173084085015758508020686416944778747038607295985890343312694153330222392454449457320749913107524020124460693842478224321655271175937667265179346609981872540719258879589499270357152284811432335470492796000594969189221229666298832073030153504057949006527045489532465414668616835344690132012903592946101475502974754901284129015370245972273358696037998021763181105043753106208423687477993645432790785206674097022142755148974589089416591729736017130692325343745695461095503478313618798629576085510814837820666120084368809762736977494609296368627898207733320150381501642310827368745821973864236150215339912918344359555613736331402376040914560979843252849790446315707634608227342050579324734578661968022799644321849764046284912612453940155641249513885934473892936074251470917072652217912764648499260003207172092915491101841954540939619209714619900016463420557333268073289612072995749483106317780384892518432978842274319093934547429131250861548463723045413253310331524210220859874368549512382143276539800443819089829570008144778096605304384222498241777072457500888598168248289403693668989234422790049699701540415881837661467902786091689857128976391501490589946155244477553726451697945288515858322391087269412262446466732356346989454651510563701722762913327998530861106279545484361653942397429586767396889021374237020326547331584862300505079796924757875141611121097649568562010283370823788058926892515581665469123768779569497874636832446764736685398091419293958094218340809414067157962601835710793807801170735046423988169383604228734794335234481923199013343386396211412858031652647404335070163030095147643834884526115158902079729340192818784894266437916551679216081901324143396839547177740873210233715556533692308268798383158886489512297013368812219060595820144484582119897348168581743093419260892162638903651654404345296040475825660259409850526335131202533196947008232321548577039836029994643994363867836881580014219064513794486334066427798872088695165493137990342673644561945371229187823253407389752215081381259063925797045662239173466821788829539662922398726144362388298475746672759581394686372861932226186128100030974980725834655399364681105744063070416186091805106080303605325534152540247584523142318389245082632373391572571478637170900778320430820281965398528579886336265955079825912415666507501581746759264153231922410345367352166747780497198004010408941233454820843359557905181103494874051338083007671059337476167964432328581028307728468707154784076696181724362831224964656613982364619334365271423388297064437889369164448212023858001200625987684725067164455509639347063028349484016882309077790484140124915549759107024593191726307394558946500052921999921801524051139041177857828170463694456890853072744469342758328997775308254276830143362617614337352879028958585358137605989578354213106997291917472000277414095489576434310743370980386641056272521907845214312940908717110590542006814799857921732464971411842473163794335922873902513591120160722961931932233636211081422690315675014538993445108858139622118103237409062058827244889733915959205800957189245330422892770400311605621050610924193045042027843232217534374951864591598134383829380413550145725910748119608964756582288016725410413320366422339279361434581531371761298632128694184967774576002597706356185403007528199638236173869647606307529679254738626954716220576219340949685897102871326590085167030818311889784430569732604326171854029972291617763608941328597695805484677665562520565870046718996130604939905822810597517414646969489622670018603444095432612790799709988721977697150303651687476509607754750932611318142653299010235963918962562450217818438800406190746385246024544939076691250883218965953693510132919174204630014715059239020771221873637467154913718968264311784547728753278163650780327060615062199644004025211321666435890204518967043136697082871167432917253595053720328175857471950951160638913132985414949272184834617289582932895214555072967286446445843173478593707709982992185089017280069562168337318109719035464176181917459220118310532117261226186592381421246925652535503418879342278842852957483387190456191324132824309115429657256851809025771720443981465954847083240895879868349430008488727725278428518259161152300049178328002190652312127640767299624019535178739627347687946573675040430762280042684453361071653279161878258684399529513401197271027165877407609041578506490453195435066761414909242543586583880279423376743860552476419628581292107976748326228187080525800247381814949475263833765849224742578859758266771750227688096314049676851271519172861667591819361641494438989229306319712734901523171265359650072063104799230383384756963346792319353324939985073482085853546659475479085507870106551267945064797809691428867084326477904040996170518243542022688597779443820231972426298480412218545404190576845907902420193191152637116165092465983197358449782131961415751085906549595904772072079952691853440605514051247893448423117517972823794776541974670227248132915937184499239425318916937291083839725210124592807971921916527979016421624367548535723627778862040620304888410284925857951911212974805933249015747093785766774244177714590760463091234614128298922201278022733016120080448937994995866553935875113998675299847556825063013025076581131471615672970416599265829765770974210311311207015543390279026422289426642961615431720161145310330143370799723625487146347549483612090601930086018464603245796801313174258780019891524661786665100139962968004627085315727156394414539628147144921914185545932884741791887493695022210238227466061426357346018410114779265752815505016936242291625251540878288990863233077212373030093701160590155770893510830472093890846163778325632001462209286440279276815673169351991300902898188982543598818999670665734480162478837767382866389356809425404709913214011371192822529203339892422330584438341356108688969627908766110645379015960893140882611086262331119121857077444358179598788219343577070195689925103700834906153707828019009807753995060969315548523878106483881284912441014967141956327976467285049646890337148050005892182865359567564943741808683311719951355960137805537935641727440121124136824805593638344492995770046789856349304814070089928218077407075419348032553486145747444728392729669911076418515265816508195684898573920378695649792077462668330562589795827133349260133858874383904560994002543363697731557841197638086954498427201859606808286493892596008855149977471774037125860867194044615199650226239543100331726644520053173693239762344224528925996669516637985549305243619730683620854577070424791699415307989160036453888675510328521484632452102226247637453236346581442567797056995318016831842566002576133086922572742669288087224910652464873768638783110234562899219310452246679113679691291726756084232735389205634123362984816837389860531720875109053444029890328731718547530688673891007203974254752440547921334893879654486967321480773637773025596236007574994931666704021225406855891955904100569079173975462359135451018368013428211335063724741213478374903632644601911662503621740938751979515637954403297665690228678255163779623686607292736040795689509776870297796593459284793440443335908220722311003744310684539555279959621330313691090148197047648093458212065197404323873845639386900687249055051031551123573112279841808680240991599210313864116478013016062835518971458041386260345092367846277392351826462642509209251317599852533594190785214832859008772642575763165701640859115949225352319218283708434668804211736270944416433211886898186554024563012592609790533291127250716462190100455905498134500997961004014610043530597519762249161943896639539610965412043811890737126895294281519084754431262579650200136052662012362828062398866442048974687882061249693353010341997035595787667054882537393666993159794559379148168754077809534932166803337297504574339555927108684190204682018491734919100661914579363691391746449573212277898247887083447114890763988051846527359426512975475725180951454834459551745978315944046765247485906781944922959904216063088258546600424316923666213178402333716238373386696635104727414459588380230878507585017346538757376240399247416734230027177283699016399262232901363204529348118478347061959799822881578127044602161238384551935984868401597013187881127922407722425818732220821944472986903966732355678818870360683456184295162809857663236637595510674994931797161978093213909897304410551428521836886967971631182301732341345344261949262298525563971546075977280608071107336484288452801640843114364841453132735873970117222983924676982531187751458816098790008258257961864498375370801825149357066691283901728906015891504412485138490992806423283429881130375281501328845976385693669201024451331321426976560292105994071786540125323994402805791844212635853292531256987348651817075290145678764580011094716879268768128194206017030391493142508444916013567852124245904049185919710904160090631341510228668831936415629675672253755617993640256385725964627159470162842872057319427635714784243676025240989568728608420507941453304204695531445895128197417176508689824669822971456778858717234681608678169944829667378090445698190508547306014467169597334210367381601490246946335575890421384118246760251406983801032458260524785380310042946591191087329173570495628003373998036356338721566360899094856520886110211851237900400475656079910789825537849141140855767677013064953324041622006862992613050757050759188603866994906230116113695351400256673970303580069005921709950219335460777530525111277770409862345320577837969372366674888205995665450575993722323342357676111372461497489054855554821860468905387941320881019920402833588982153533122181456246152519358702429586056694256812801015547104297597942962321736417369695531277222216218999136019523293846993393519441932747926453602930340784273377348282507565876583971857033321125543578871934046551731818570261130455115341259472295530525671727395627030125236149672094531117755493302824342376665788022598582228971473341118437682241856647795212637005981307946229301041956603418721035183415141777273643562906790831435432095501538856923293692139766114970764004154412245249500842893102570621421664991426585268547437058436850332574678282021756662140622968609265316763061321617243869926993990449224575967848280922466154671945294751498211507935866818235620799756262560880213148925247660284829944401545661581213404724844007006735855945233418303866644530458138610429619040805391959767775957164894471579034059326843013959700910778696260686752458678212039340975052736051899360246436371778983011449809700103158163260311838324294808151283994841986115311513511494946098951754689568947175447080270275520978024078828080169133529121513365919957157539786455255318916631439955316671008282913095406519124774501516312401188173935466904055485877192472046887941939976020783184405836111988738685552911730874118383511750667477099089430504601858018205106540209435286336896377882501215901591936231117237126961502066099151898263985582984801939834412219976385406868436767097592932391726273377994185273492880976494038528702621947498281646314741274204795549327575932415974580782301490053620348224829506196328903780092773643733558545494862439399143062506785116340946178602831857601469203895152908494805888534499778485018534507543301016519155203307651615112684214978830750750693015566972836577090145236273924407709734160439309831552278081809334025215531052060321121212621334201798244160550083310473226811069878232795963521147735886397304457607267039696527079388949762612393581513208036761459702855330143554135091377470397998705858881675205636967044465200121381428280796344235243760871495859900691588460484497252701718222226606932935205510496592569034164142400089545853468254638468891365436435228217836315408723724339848576923652894073096285722809228297285850527634515880142353059891321666549440938825089190080905527727391796733063154772889472810482160576499649239888162972651736369063210993938962040020394079197287831497376415169631832093446486651542038844364080960266825593694661684929950456555569726860458717071339793330810466204427395085071671503263316787571721502550030400882514571950724058242958137300595912872860689257605959178333932300531830121991759060329805060235168806601063138049344074138015827427639309250367019907478015559429620817504300762378034325019368451365481895845055961318111769690662096856898613015808693492474693374671681874226641495548496073020918979376499290160360235733431724653583872454373649439731634904099863031109532518596544047855485773564417634391203319581569989554393558891976304221353595690352418555751114309945937641220434386054703594371559451942780580561295217337434345429931593624835793326606328872711953914807467786059864799636335154796904805143526234435234125678682235095658019654861843896217222029138339289530136268542071293179043080658801463950194363959716640164043346537789675138382994455535806917308330570604394910841621765532294131489850176747375887887508662734951694494072714862431988725519969898183347543883857287641132691394806652596193119233919322858598012744252366771346082325444271302619507820941680608464615023548528845222214912332008340450366846194546369670825417538232128214341321394227709393968137062718353070983684707270754102103274656101893283884723301009718705205542310280594812058527715217225274917101480749485541367303449934438786277226832192970235966143338905637419510917929187578611155120836642866496541682389241379653522733121357598044446597998341059821432155463813504837159216529310199165520303756884289631257000399443042130612688666432764694323583842650695617094381815422797968651060993605469884562191902262900836337809544576597495979811542775720300319657334368945005274089046316084928744568247951332607628968913499072033377642014290913444526718498960472128348216624292621960468795898946503759514225279528238546412430360765415066374085978048148043979493879864532877483051091671000446246475417314717183157650552981221389127784921680145640636153619410301265951972045790512703200524551046632017326661330692950827440759174489640851552641821238977541311341736936715608924206587155023611078616690196056662387121624969032193638044953058416324419996474735714753233136540607017879143015075610784496242951850628232445612180239143260526025394480702622691040557090903225696093509179311247477674751464076933107003226936882149602895654450851554447790249651728681952200412771506883292130700470674609355665227172816135546900076070408550664694803912979771412996577657221694016028417329988991460841274380563731012031567776952603462629757858764437088270955295328390039977984803968886290839526126090740678666630095801967323939820996409508897220879973398753994379399422124432937109541107392747235080229831428078313700364524255571909429044959114761774414849739068156851027693460272873562287324922568117884439711765183965000126103083526159405557405244747992027696593575535153806026291459136236998465775475763238115191603982707423515576979708354978907353987327383186351049122973112362132414989403684519972916346165556342993863551682345547884148067872681486203588922135681933328734686769090968785951305598962445285903822960574062424624016479845896126054395045347607961896366977035411289647620552907524833831817968729357707791215456185255743112067258699919130125865026748488317542280670660978555228084801657472773310212635201070492787130680579587059433651651436209473335825838386816492552612169697116601324648247270797422210557588581066239232995757138781341916103759294970433088384501813758434886421732210535278119215608543356074986724500258749696181680333580271935325846289405448272457432870906599991387846688351911600024719982312491970487312503384727845033231022165171388197848518868572638891650350447198379107576285272252680690016620311687628675577688608416066879658994613756408235141468454799218792353612806118267739648018521179351438122717430465438973475310267078449780441848696097037952591392790140178469655366444669441090056609257082048403236368359799271796122282143653713898353308274404486170321788395056198044239876592219549647875679192757555728808201626282988077450942122972527016028262510222101826150771927317361065333910831774264675747357219674231764908630716939215476907710313260469076522835760202447952904848266670523691234568162068517918332621844989950171501374926372560899217073009224686935903352791497171254384521930287194365209013212445442155054649927864329203226108548030114551855277830706461932842242669200355806493106838962544787093663825399966470668925678305602870088304350580868735161325331457849800715589802921804793699033742058157371246166613038203745052285888874662335450557844397647067949636367367854457357830410863984990907454167123385197905879391129843876457824524274969720890129632466489033849287259684816628116564874791121416081318435816144445109330958890195482435431974682027551251851266468542452779811320687864576437828236388297858703684912183190792982341838274095163156531910507021217798629042953658843326656686348662313229942548528867972038490121307117624444348413199320730678315228634741222970553513382373193411309421047601012579472299686267495369400128338690877642597492782128385528285482515726707786931308291221189795691829643292138357604980913514482084659971482986887146963760322784565559510820319425734670063740509039216442380573419042186079473687038777488137015085830429918030575975294362985334975212193134801255302057619389905290507867126828077682713044642643449481743220554431050148447621370525498017604690605889480786889492241146234487483947474179363943324399831162281738194954537041838117299477882400107348685433143234427847155786451320585430343544256429984269865074642156130254384744250208970768573344342204160507563215732148245481982585488026020656419754885209036863887878073280265530628443754832111580054199601110206692794724617329833996862339546411215584092261934549512125359901392423073179523742755597700776914687631729869521543538015180162872081395065919546172681739915839103694426171175123771425357998523787111473592338878922808610049053239422684032675307017753780671085511235439596788962494492483317093421722267280976653626165074703586291689854308728741612300397717353216344025117592670367485016130000456283770766563776482279571143475285671616319662904586134775543108124953834948884178831129548038039100468868417792228677858701459683668230887095854990318013207716974291914517732111759501342284444227854800503918019937119156243468977009506755196427726227225722421052446671688226651180693053380209087694137414477311329797868080856859696339697050275624944721772455724794762656599057779423498497716160457708873850718811049497839457498608574259208791308890757877339629465041017828350408365536761636658264313012230349125109619512631160286968191013362475135978798016475758056313908083307019085487238993952761429323919154614859140509349839403270466298475598943468606125607381419535968767949182879767225478517793935424205157488174156975571081984423163531632735279729515872056124810054336117117246921242601146554265050455495476224816097464232826479049872215405363818875902621505657752348314138547481313312103963191188646562629597825433762104058136778293598310745695911364657627217835046211529040600342297771958878178704415979401807064412155017063960492772442121010700160317431502101220449467095986409509957197289206029121030085494895894875038439119072902979995980483729791471276001523655364074247239335395985182417695511448138845304063567278172909214409663284109072421875029472905169414170520658298623515457515256202074002823176659468871658547967796859363161819909763534522717364958488692192158676227211155850737942428781057699149232213245751355692730202234940907001358549423892245235354062026181814458683183972845074586770281066581804235672026471137815617302698916753712530009446302513433227002829079044489483251961001698942040041713973610495280582485616967093076589046923888242251591382397884720692380525864388235369018806274217813886406650542310449422501650937043620069252856308105047569523264235114131287598389883319401146477968548663762336437390969342060101756048480658090596609395954157606472673760010914896297511141949660140609113306228337399240601550463177890615347311821690429959242248719300070141319127519658956667443092333849405290521588617831405239181824660074200482837988217923613491947146652597961019816563848537711071377851106779780257787915104278934971555438626958639015216524987462553963197551442613177867020547021443425329022079950643519493720463415388174318972051936180371638064659042435819675022425085485999436087124150354462420958891859728087735885386807151251786875190055108422794950487989410708698485163022819682013697096646119059522467797606943102859859934577482893299107438850281084005377786124002337018936362028274884693750515286335511111735070115606127316517722081373117669881382900932871652525675917961821935217541679878196312668106218096562656932410690046129298880872693620559012854572448204403994853254143946068432308511140357859604478281990247166992604277642711768543140008161269744563279882959396136979675453554077372701379575311509753850133874845790367038821571787074692255930423793282758100150619432778806459489859415015347906578374069989375736764150626804040150638670402460730391121716512961644365720546780345193461391329859987207290947975397157076768950998841664296580505623447270181253614734517540194282004190403136835372629256665900466238207462211031667690820245763894357538170407053676159599168237357140393462276950833049574531582627445723022498381118105986274084415961630324939146853671752216502443807079329342049178794900615034379812822340759209268551932539788478052714089317598638363390303672338979412334082569524090116493406573034341670285483012195586058498761244389057455880903629432352364675873923849810687151141868670220081117325085222200611344886623352703540821362327083599726187502117379096149391949641489629041999001151839152313882268773614891588202838745198671195237718344560134126773919452849660254114232579901633476360664840048257742262263240113490135678090377474241922704393913614819550858840843174420940732930345131033968733060287520340987658716204605821059268564303091408909822788901328776581401249790153958774110625367085249861871775437884814777123877703561943581848917616813533541488768210149927022646146234956473078084496618511674217590861592496058226833459095452971829825293674884726525124027291027546838158220902134482490026751656282566800295200689901419539307772295934731489850440299231363958862049004438915758785602201604281929509565310211556792341928711298804807221512025782608722917375966057049496287223684372761537319584588012129924591062332034152238243197434400938302958882076157095732381017102273751653451276277395167348625108308108597149537152069410582322560556042052662082444063618268277050649331640384311947178429699873689259836890793374363110032237025487602601060764374303922580644580701656869349721284376004919979101913503876519401712750536352088265497893777315660784498518656517848012586678426706537159605129770484172591937168834662167925227199950222951147828393737478525299287283159499853250674594300718058689083417145683493986449818873529336598115349534125999697240705513434226301907446247847610308778374293973065914827455802851301257073870292681599473604280969151486533616872731986459801341104142482421257827120548256463612360076962464916037571165465355912608470354267891582704163591273975029030552764066780652430236375483203284081858401895031266686996481150581297104604756887318435465103493122096171492138795151291518513648182106096779980914668095416801344197996015479615609396834653711808657165870001737829384762421911764478916612066212970306126262738665618802285924721865861605768949812501182763304692250884293496997756441846996010297639228079850868886271612186347500995756747192288910140276866390357185280144982655208881788588142849404391997630592890160886459256477114445346740095901785790900576739607216460257994808558472135330179009844859015817591669727053558138825745044321700874037297447569870893787250632955275229620760811070999497156394652035878376907080313347999005671956760271907307689505577373929863578164501155683360621008611613320806128644182994373255076625842239162940094899666989162069828407552082365702290976403385614170368256520686065658933688997824313435546714550039399288820804276364378415473544750382998892580380629127612966553111047030992477158531289349937936914384929462573022169989639302718000732307368583955977042048905227842604319699802696111996819713018314887056810241777644232940046058059289739702674641249918629752203986641980299162518646930955851698691911123045866676692536925249226939576659336057906548724395274413228637732779188021650787587562611934753449899125628141351162136838471955848444143249551124406545483122672340814675973983219554440357146309490336542499775671105570176361962930740084770228710403521613942098653698092748393663915080559241461016746352155224514844317910484708859658848796727539779000422859662705316652192850877492781043809436065449270115838172471962241611028162951171836792892079848120438984127714416047341478275944155468311862473665184969612027391939887252740950085641582538509175599568248013285681726591627196848734358229198770961749376409866011927736377570164191343241111219615842922923851132529711179806468201274038369716004279934250269967067435570365984480724561550277115090009201775606973111218620575600636830593473180996993326505922101082309929641691452312795133044870466550927351212521804368031296256415738462123709753691849145967777582234756990234147779559973266867987728758216355712139893666758621857040027188546503910284353578228483869650350630110413897607453105384621084532296350267833019423468705992988951151172565732544019726941745354223503119737803996282051353284604819640113796407125085608058527216541476529307907924369850758117638047939141607354312222849564273589487132828350557007622456339998987716475590062174146779194830507316990797070871460217402515345611949553926702744943175220749165090310341585449275366839855053661865829216156127553067357288663963018156242114194909632314619406972556866718565323528226691535143326534240695084699881456639069664751269712203449210019500467318203274344640700203125030222648334100732933997823927533779841941598512263278910680017520842361156141969439251579534462268608948379094921635317238337293614871876917304764091020002781587677904972719634799176162256785237948091294675320309430515662502036360881892243212233358883343937037927427735640422673640553185678563027211796493660671223053935000625748752639329322219476880896313581787594464242871832290315212198216581118717416610799201638879384075050864019667238868001707437609224718055016479235089393782361314026864615456823189169805466126810973412413562337216026720518994826405473886663967049058046704457845331266289025281671736770276972245636264988547690626031548458727204527262762911491175582862448644552693852594880147397069568138681812373265201838922553913911868927630395739544657378959476367657303014597692640534759124135947000218313782048777687944945096957280228761935310784609103568040207929833169370127654154516201684657440472512978533262984547092254070037122524900463653632915849991879945326060902683120168621323453873677972116919780484322564570023055954203543929926729967562202757467340359382784979511410816988749519813681839100172017701039961679490060302680685432715754329424559449318124327379342871749101863879569301578227063083113322018490411607000799454928776044237432387997586520124119329170997949169234290313163952293799041224599190449044866228132197070751409041123812506817456835734591191081965075018097652007199634746839156111460503997993857916487021092654956762232017232862337576352960406388013956865441778687229632532381730196774266766974343486378675786700195129098113718281293894905187531524039027354175255827141847577437782713592829626010809106561384981659188410614910653094821991977977891624164149958604719237099161477088567426446285428351082721055047625202147798409416164018748978351187954147413204883281589269637939223107679201684060294180348796895386772212188343445604003274141376048695485562330646708516244367747203655527273099988213738022856783604118032002359455925879052856488574487157702000028944103869515303838901938834454617748026812068020001280148350885871935506365959450507763441224993327114440979128679935588594056860116626522795694332217854256154039101237874206343102908640669203294330391994209205244255390912777456367598846432582213649189976038079947081215919843316394824131766766064481867374103149897752764348472419600544594246053193555775464746513230882356698993261386061293072714678980046086235702043478703724256624315090618917663028321554107645702265478263197868743804820515302620052053186125652382044820911884107478052918108033297943798636388923549204486463048182339707589501214162458192760531186002293150237798228784902507151168504984613934473598977043481901777145481228393528238363400841468039090341243482296343142259740369753930191498948201789210098244391349496653581587564713721577593792489484669854349264864913659947737882573467937403288413848237024552071144026795653089648821539375141622207870406572077681494583133755143935013273670222232096728216561179506191793982833727100743892915844919451689408045209112532468440850083784367948520294610645480280973884358947134274550615626804210349970429727592417843392198657007862315911340674225985788586595583057458813749869310240520173711121165590063882744109760372175935025598955881189298253337235608033853452110700700632661023658395042525180566875152317151788007535126237615312104472365370191485389275359606264041191804363814113298164222862286745302262119698329196454291004233600276405899810788020071310050951767041724572037963595849169420672292496352253467741763082696169719545848569149189972734126132328728968626079903473363947680916731260229911087092737250046270860169493281279784523632143864036366401886095128103771586740525826424448428670262504935741672609851513947328353211671341676673361508678862976821675601456758105878461515506745077097878922470035573503266999820687165111127352411678361864916289010629442521268270674578918872802519332117935291854145993289943845939119572032606400703393433285259608330868037990363035405548030309092087062827029701035807309684518580093571457198257043380820086999667747744291241102297765559031417081197316852280224398771350925954217083255510284458204925475781983870960650517294133717632661367227865189956358287918708801527818593158624846436955261142930946104398905992333513880997032759631191225103785079573911414580030539863427378108905323754962084391223014942930821422267063092085011874171966912517178337402569309559623378804565779739692703016551513752503489785938903830513374596403791696434276264960446964650117869645485183781084214276151993556496276623458586114653976177535595630918763670518425764053101638746538265458893356824071320015272772676844549901756362599870090438810192062965067074131350915256078757859119233060006924828629693560684508266953841139187702267236541197083865950874358209414279305962425693303858355263850544512996772908012616779490875164490687629300085390316741557071647144712411449167584021804145184971151229343979906148598139001157342629077708331084202930366752722381002862126964148178961693077044043977836385368789405292362457390651241369565347978363737723184795016257609563705080791023606534849679753771436085013457767769934991100739681688115867553542655183899065830135358735218386873766176301155497487913153132955745683760144778621051019463673910829483657725126835152938163022172359480093897031051327390790340014195394955486538173815780524661758067701066759446487811197299500419511937010814505845883055781804519040968347292597004190638317018329765244371526437553996865327181441283532428466936231949117655149485083849380052975164519921834159875497393441779982070151985889575871060710800685835057416031564487767812168999523243547344167652942562038910918510554071948234495899408446841785707739871732549014994303472708590058775453914175184717750066263789583129944258006747704979741797111541455380444227365076528403724350798738463912990533347495226510071405113914516633759567093581209293983220283770539617251017451901616801458952745465508468850167280679969747919987153907228999736697157983722921901032886570101526604074653823300172465552928965025272079434638558253581982260434281800148010036853589549454216218962365664191474350536271730066880632966407659520433145049946901028155014106916089842820423161913993184804443773322388761180389943636294829557286344322122538233547366300475954439067466189777300986447225687105083852384328865524119149819068222775387505395593828821434334843625048173672863874605235806564208220282448507280284800256406464809482245821444792863208504437806532184478367626956266559172946830660766122355075095919740681475604901153438974879677471958490541880174748317349265073086136811274006493713914668382083159189183627274757721049503234590242882817820890336354070389639389599200488696093080132380185650931990692385313390177659864332286799407188230264747755470196868509992491831623269256806586202674430680180925192310619416666090204157696638353980195154665332008954481845580031009083069035537323879537466998475886630272805381177360838597515559942884073787820965689741651072196092963100704385890053979726842316879114529924167963976207401731733534913169711521401520402522865414203709717316100494232287650330300431611669534995536115430196997823496876011580834294542923171545172113932309341645333600283494468832442251926778574904491404721413839323222436526224825397298783383050094779136259217193472815484850607009173722140006304953264418656190545322748095656927023323545269419432946924047808223622395820849187643142197273701075276373004279507428970670776769744171035227995390454544301346434184688962584239983937967235787089282995611603477728106665412102075546534206959470115060158930718527848473848161972471902869654903200626101258346626835261716786112793147636491982834905963285220222385609110057402446898774174582737359348747462128562082581263039863227899983063228494749906270420055163082513988820410001278704015488288978003659141238429646496028503900480763020871785622239882970937086165623454825297265351764937375399330991293624908266574139169671374471693895631413875498072784194356656628920276549243290401759515708305692684549051490418256722100244536921178059335630838423833728767098639109758183195972703402332246235571186600105171008729663603444997385033558573639251189820782900940931462284698000112424621454825971483986381553459142654005797039494497071206643239642650685835997165706049762627842927616934728172550879279011882225942556197040379987010124944621739037937437411542851062539119449170779403911752657552828743483777286590823550180368429372718344793805780963286611917102426337565685206581220383693926814397953064785633119405347865348896881102580207421461007056506138247521060845884395774654643358526308446853288530746066263219441999089342574052363500998785112250656584803600620841954040000491131421400930637414949385225425176293224678435950670841200344950959307712877323516311765063352316041910059103742265210836088278179292119881838933861927362531655061434379783359789816248657247115319057922486642270007291629649287812142767916847087269503966602428477315289521109804430039958920187584793877735699227703081970216337758474446940758083260743585263290750006579264207060571653620205071436741474903734137294362469307530012262589674413093396463665639628615412279233712710673138241226439511939699282272238263367083377224961188763085047245972569905737404183218462774342202030596638136852691643172570909170818669068628664520822078406861372236055158211044124538071759896362896434641774248879201115612372749232306407693080935516088236596681274257132086596391652593233804172568118584499365830337391870587075245795763378639297987551031325464174251193668080665390305835723119504354681424672478470509104107918217017704074132913208030322373090867069908043422736161738306252845603444383670275794738375687736112481245496030924391666606881328972632657880721129823573252761902830007520571737527943444767736759401115701979833750460840004411023097975641787912343054227610857851707641108311699137892555269142547151552867861498525726284771743347048050325955065033709526473241431469908278887809950768184268143248748366623013961002864757522277910657561649919276778645578342991492285173410168169151058221443411928406752252115447567374206228506233371948495992891746345462468264265240791891838889368440630702870363172428663229898754252592876749037556762265881803240646227199148323975964246561085127973115237904408606528140629657746614062545948839197355414013206091205161545148533689506448393508153714275058249747458457743907788066828808986180341400536369388312292527693451352022717292941330277781568889880742904933868888381669392740034813388709497728471108644538552072162333442234708199517033212124161106422650974078810321953946495947114898249867825130733300002568548906789687639321649202696534730533886980893250401783964447449947522029536264254399149353555564181973819692914114998614510275874765051433664016617427345599217319413763920937534016955437132136756885931223779218674354595368073628942601401576034365693774527193819152680519389696204340693836931922662437716578079093323791264494006822376836749373783216682861386664458287395102867700917180909889313452620853979109772243401055221421525544099689768130608414622108201243768991552683334227106980961239932764079194820850870723154146428180385422494029346948544169035739485481983762391363493657358995596193534983879910160452616343614101530137850025108449404500592164413083180480319865066263085992063513396604227635543679113504425463275052412890619605495298695697872786141483028555276423408785895512301372590961173103532435024131284697005311211027737536457262548401784839622102668978273985462503937492689275014842333584631278150044591776806199614887078083839993903171731395547401001078941484692928953998176738339118496141262166376574482003893700095967380590747159848357180759704580459267401175416790527373180983868201287471590560265191499344454200075149835208321746698811706122910548316906856000084116319246716704797345279095189500815450189890666481711356502331380884126442728363532450438594988712183219634036664566841323704527426268861255946003024190706726413168456462910782418772126817450091174916826499978299590144795805948035831608437850937830773119869185242442392646171832652908228768583568394140814018344690330390954766454107032393556462312611693954826420816308353931631534435215008571727957296376768715147786074504912846864206974467574916605407946441471634518604324858413688147283071030798525051294118306603978768905248535115022519089750693733697487303602665241094479287040795530458647974957763561367869294144309390493242000492485598403777428933437129154780426054629538435553202349530062049516223814994850775659626969463808714635859891497039364041471908190456432951257868882866729559429258624830509067887722153323046582102029881668813346234512302966232795690836065479359211225901849321248793704222963267932446501170359172480271991042513570755222672387387202993445555507051483101482740762169309652465259653356867370470353677571364725484756794510630605404477810813716428645428495335648637732771928838261199582004909440312128110232996003224537525579473344729206012195408443157301769513310632318196495828775191454802039552730835356020870667395453803591623323091530767021333308361631077284173032382285600341265271598672529553998184475002963604440482733726971460906466839046808922858353086797213366143541320924263357569949618544860002959400855348561966140291503576616774541237413351184380645816898006231241588349146037947211978776956007666861918891080571527580074318342465451767762702537867422581200926344911126745579648029256498172587621898893843191926172563388529609777092540081730903856216125367421839886486245623559457280772050485947853331099851763470944839897629924963292803767337548430509945714842235022770780395685674343041044450444063338497185862802763184387624126777086789127962750238593251104309566071100347886189787037384121679454053416749604320330594937675499804832153259109908915572508245579535880136246964696451325526369498936243793301031045389984701200676028786922067266408781604391700198651578528818379348124730817530703626979949621569842971551563232320430316418344525462330083371078077756166354668989832656488999856711688250651607065638356400838513851872549336120869783921060841457158385619538736208199848058084463343779577479335229283069254769487705739698802919336097560516206146133480078470435904043971540707101567108630990528592208418815896884499101075337185921485442924283817009718569117949119753110297926497278528077436149495464398460619238373018035508408477161762798700433526555418266967006537619141475042534353018705864996989284977115978603859047824631215119631908094863484086623565537805926064041174346766520222420964142306551970084858000542184462880881449194040880575033962145193814879260045853611746088520326888970261536936096044449957431908995253908833893692397046347794604433034272745647250328355937638301935194533136316477693282189846728039115429624000637064403443909481790760286636781678965502324462030773231229521386555913035054571679200626684172938606449580564452344194680622344601995518034919563836510522372119901796291239154943264216545924206998794251292869975060944211601784835849685163269919335182505482738692431724528124447776701168677174687800190358708366359499560412262564558338659172564489986910966656725135773679657375571350471968075634754049046348684163318564474694560276369724073642688084046613421163957155621838528813961909179261217061080952399024126693150900314807834315913142022287092774512785933701788942295131090567716693106444568935149003608845416517105882920259567356865891435992537014072728062535005726589606238774125076588206523445219052355157257752101046180262500015968821897312069179672096440889429081833960095631022367326033182081350435663976561120985307039105001626503284632301589379899260693237143117584279681893563099583171238831600935482935731571190449810235074344986855586122377851887508166546085692746784562333407946110292768065505082770828681852765583699580371813554083148516570086472367604853958599791150824303719448324898644402159574979347867802879966643272524709148536254382589282835812294498049877362422894106255169050423066803645790426357826781729042350278297324556210721732740236891009755406292768211306847033717141415827747339369700869932550135593311228093875641520632716608208718866844158800621582532928712990255462228936022510939855148198794919998586653468297502074330069782255542678702636137630756853261121405573981161063992539450878752665840013135286745216887666040481034031166021267968610827889406597711637773611431233287040620244857553319200674278511733844972543416975238460613438923753470577157852498775063183709422982280877858694874604313933243334154172900865417689728407866326701025376810713118573413205508930266761184814367556220804692155655515051558595750815864213321577057143095151867433195801860398779124723416715103410272448242200036523676492540956199173624562607573064975419563514692342649801719188485149204179543365863324941112551436712251019180104322710949904595912908879621114382381173555469491571978997947255099401337363459937009842781585934695588063711017776722126467858470372027806561971230285612271271972526175564055783581656802324019720495890623357564866013427138901467274261743362570165139156950832884915792172108709267507695748031131407686249026073756162203207314536007965572900801667001065218585137906719604552713931068252722453720088914654664596802737637237385269709014705555761382387598385639933772643017132228460916692840781259903011326100486203142791317940158564308843383297465597635963534258935806400323744438669809650814579226624828552748541621682532162565735874997754765139921077628490671904212883786724325470818587704481082434404849393066657463687869685906436941334727692044220251754925562050819167436044666626262284630826795680972180418615814717187659759133255186238736288721909669833728834686623937547105934135900263824780195735684304601036009552799256705264894272374711614312733067455897343707040051931703370371512668824095044142225262585496241154825928434013187217206922569398978706246563991124646400154278033116795416165912977475806191703370817245212250544403765110825945772585868546699420609524879581090052403179475400195258459039547376107591990705422011239535804681556477880478429426293169078207745349275639598795386523511454683314127399839833478405710254899676422834255583283759474482931672283224234542534996770466352861159903148187632144862650998487623080099659813364091535563202672901598812022129113431272704594294536863147018672167640980354538913226960815710364509908303420556379141764597796459512216668047499908497437501034690446579881730358512961383332940436893062097526217430676422092379163003296232939292328251364022162889728501165474884193020381367452276633317410390134411951633720146977772871987853905836902031423577380051205971026956712808454030174399555661121915912977298076911639435294481050219873785832669515240477867656710457707459455139107666899757748991710885308159611303504096189466208140505247612724464633795729083395018564836882651586422568332321807624424807478740571392804517605355157156489821761774347868465994805235726179791690590247465695954100479160664567544957976428334595199110809852082843464360708739008879412778421175437222729939647567382410999611659481312779843413578876507609381564553820984292158221075271024268259093446307357347036596305131445576163757317145372607533272998714759713565972384008472758551837495642661317755714002024914061754440168288204669409380246794005575679700641813357281670270867095120721509060364610260140992170917789118444254748413694863332383997477103822562595717954309603921899317532944349107895045027192601835958210451970439613075467648419361332535647085015451749247267254909165647703216456971892340692502230829784922509988344158097354013270987500384289310173463906595782767090189185611025165104162048920859076865473972795028776419430590729610242112341192321249461717331816336911363191329249366880138371966984273156227731472121538860465169846347370335067729525219313561481939184879092752950852700582558778207617233464462707664003349529141540304437873080970656580422650939211728577797004064593984403368006182821948005262967768168652572993590263908495021805565777664029330818657855062261093082402283695332000128395056600051226403051242826651781888502636289778718821439204118489034444854783022450091809120996751103141855138033266145540680239032766175241744835854586162255347994117973162758640050902614261431620266018697234595447643523585660742961730238066520896587640504926806204569625003216034422899683555847989260963660283765155443998895290422308958249442026144721033128183668908974862509373749023861593375825259375573820605617475972440310720496406103899112449780300808056388698547299846352278289394290327987287936760997696256883908854050738357362745929243765921626790962000107207325951848414697790618084941417927103266634651444315353606642875720836574347254354091011990522835035391918883098585379248648525084000747397770726606983623857739416597362895434164310540431080075759588031034195444288932616040486236730641655081628596448342115600925789458874473485413738605078512741059657825776659900013862707300887088453751447570817675276020406354360168496113213990531859935147766367496539144139506064549624113468597251649300222821874466469317410089923723194425569469440638216433360558328742726332221043133899189724695370789943840340023420700717463243103619543177026888507883408760772462905948733319823132835812723332856689671529159210797678517466262086201604553019614852642877172191440780354734548988998727446732787917351950474724345671457173314416862568794938793838902646269338099228068332021436422355749974154169093778386464541122938763041156364936059278258339678332601849705302803040171197776443441275100423948606923472306877858712953968602139891560723683808142666408993721498972523334316044724875069469897664162012805285022458618413105375951617895670107008036533583294624773972610315956539403065916650753682570133043361862324029262040047776708695891708942280379241626996342504481732594945647325556567291868738428642997239224510895906579650048127738391693284743436928309783299393525316914027761342401168683914133536534305690903380432856685402440555997201538622651362139205126208540018343202722461813389924869134364149362824526986843981745134874655502099222116133992621889467262155106223259372983844716189272694593114538528650767614462276764208118164015238335888669442880977526709530452653044546235147203388793061402328141941535566471972096538432443505819866083905159686381975621351379914730768212895258267187645452036566510350377213738323325183531074615009862935627555936078131172826841542966171549393405215178991865807235154592217134949500689269176211683822251628437928769476659946758942881051193349459879512540320418200402083087745089279227805208293642593272127347641395118467180290454231825417529488895185425705089284085616963329643850085341831779651399713385154000289971944328752309310408930547677921216157905822707951597697970454505832927869221691000274075906859097171709088025849088783407425350363293989711162808979245749424253993244635527399307459546945908054375352253606947566017862772247415375931461811118059036388059854615217370871865396699832712005106524061151197715057476613480769455732474124035659395269045110433093051182747509964510937776806862996883796606895403341320997044130851066351730514367199178733427691353162529048107602884123185848995238940549382749379935655169056155512463146509671268044689470075897852085786566384380245547465926758265976866766346342364460872427820887186846661917856351522576524925394765746417850022908119210168013435257710619428249805828422901361477450347399184917042263159286636986584518437597209905860756652149822176541295989265474365891122735669685693940461928497317831536465616393769058474136957063334840216554486450216192039786416570335870788782547038488614726108371954994105298362364496526609468794612285681359993966633906454071676154666084786906098730487459611389736394963660834944737034539874887749853732159077796465031730874893787078353820205841115004723263371836650903006168269087043554283493944093976555808835272664732758114195433652999388954551540203217028278804338693286026183145375384475920276121526905084384844178219180069432278091099090696955876877656433226339158866769816760507063289936353375415474979928394861424038704442098163146058001749090712832565668634806766522682744456392445429005067597578379471907546099359598255573896716463225759644245615214161314869138989037293296231377916769014965200453661363153976999623056363585075807415214776762481194383950930453952877363053872885891272411060857560979735211837786903111219351404929083946915683038911694511939759487761924007126778157576914408426014932421033391382289482855017130681809381213530560990808301541017941160246377752748854332459614192382450863087773030403520763328113832173459567345331389270786041954411780523673510185170367733313580175550860482830626686126053328328954767640312092307579047095921817613137549151563463292909953882321855858239996167050951388707772532259525815506669662490534054940287231008484503645721595401705999880335259238379595803545281954790724715617572364018242321141510332389238924790675896220717738196151975258417808667411602345271007758950577152210986623901772113194371318849923683748761882479983787941546332279162577863338396511558996803184980900008784993067403047057846756169629219062079404996862580181734244510920416852629444260789894425394317715012574129223530152723940371543046610433884567793925889780337322064727183865780423699890832865603832061593786927573142058192480553656119319212039831074549370713062283026894940515426192633755901235731215658026153921102640864682313694730433507048122826211454868140439076449627072246906571496682947705844557361298027764923072121895919224179351531041059448435405371168958758484095779513779352894288366495170028812819992138495006843102079623865584571452679020438365229366103902982908458392717985143233248957576395351262367905232181579375732800948386088460308649784618045960643982202133712694353093088322920837877864370988565865814393758579652157935949122560442175814831211366640627648746107156919529882599709875081498540701935495491485766245293495580650789568052515017981274882641872534458563357966052785851941020480916866089712591458788156559078548024443822170167616570680437999278517985502205312547841966205844091196391414655178459185253612475416610824397315568992643731128173776910795098314205801130150921592093597240104474598569492873559476619246954127297931633794115177860535424520298324718523867490765803052228256797835907380623779589729202379859451847416407784786517043334022153887346584221521686036677010825075873360890035257695941988617343707956189552734052697284511511507632953944965812429461896461345979224888614051854448376652410082051433243317910035454408822257305058916522901919510854587649144438932611364597048117983126592580050212757270713382682235283909000530641999826840951245782242086108581683913003707271648354002269944219797280393973093276524828379489338208715913561390684722528635992760947595506370765791392483107154029419046785922931908525308236963404105268006175174026216901426620378998408911274920275408316315582196733163202614339478555317319162857457357019600211309884419337234582347027653915227635813687317392789739499293118813601861386698916291638630155270466749993007440885313775486312840720768550773706910493279814268524631302785630169690644095665484187843797324117730926943914213519357699511607187822371494766536027038637175898681934563244204255880194793960674194176765616623258236724414941378045278031106740075153354844653234984475503305940844410092763838589825688148474268369910372275322596735551655674791937046130046903177037193708033314942824827031650496631375451742546929349272166535371154368650031778169298717731251592621306621843778556272664190234819615521631160957663859292456994089185364869069764904049205973210378544340459593272035140205885491996358039742997244084920443647841050723019841618789235277009445046377049287336546302162534391384195695589715693502344500561622102986158421408604337569916597535774945069139798265653902149344528516349772933010691786076060353929969609208367568172877718517371572036511548960752779659597848891302799270063297251500157471240798143024473693678246830244307865105481063613902378409797289201677543544025211209016992824512120774322521186038649658527881623263486458052155530663294731816983777706282993092699054165827989600395342614747685757048783288307274600868936419918512078614513836697790435230554341143995998376173863923995681567806689529725461711807311303290068990686888188803638194404536927292737447467152731357993020645891930804475872640485854755391535480170417159431496177258618091624393256834143343114883944354103917952693719377413994612452571478694971073200237669970956017955092337849361152674033454912752688952386203815414276034678498501839102395861351008535168077224635244355490530095796108523646015041011398243264924834907030802631130447787168730998978196049985104712398842318550628685278562569027342746234820357933981630125382695776350318489975445463215103831227225059226788697726285110200766291195423475454066931116154740587002317743687553927068163641183581686681338987335097044414483367398151270696377503778240375608122762664559119371924915301378197290263005296221506354525209059819725236532210944938300927894683484082509696406892357089786296520983099276019996315933560806076155217698096247091152594022395865558865015698473208252963232932860548519982151651761607160113885477494413127432322021395760907591651147848835040968132150971309070796482781238107647810308699533243610323460318022569399574879428728088646147406141985502785536877317641743738113843812589258011191493316439795548252936384400922621500313538540761174596274769140614745081413592965003439198304357747168269579026200829248482398423887293997962835084537062744873618491277260059653930432439736921819020344159364977393646266148539891428571469132030956404277085820218328062042214797060191175331337860822410667993309782252707080705908756926088792791684603447672211018884009155707734694810716705515194671394263315559324659055296264297341911954694936792927084448122233561340340840329484512840315115756181630352641629388815994331151059001172804597685967199192511631696499660600764849426133279498445131180894062758843523801114494592867456550275702540204120527612268160043072248798361131811544084733910988899188230412265040743257409628324667088341571166523861661630204911694994570032795445686345573824994737000797103978184334204160824165784248042640677397054338629656523765994110866640572273596886555748852141838175794489540994558496014152034779950583418084156995504537914394473933230449793683653000663107894467224842974639274205476689563243878518682491566383281039865889407516060157507674338819810374748362673915126579481453560007645305621111193575667197212466175300633523143088116983813827214258366651788913617316853228400414020162620045496720011421180616013449510474069017675515239706999308885889495547454691321772397850415157430764981315947254109490175562883019030541724550089239549756415590220344474241951173412718056695340204317659548251536543542955508870296309942847414418355498734047158772369769740539855938866249504736457195484878544010962317651515600697449616609021032032727974186073500566477672806585805729687443480361012667360678911723224935135670262509986519996997574239964917684638590228889424894708134252126949748850404901852585982772580037137747231888875029005011185732101350378920555830210701066795318020785719478941691468454090469131312929681713016767440271849724821738586637422407263733017778408956866620270907935718600604566112066735817660110883921610896745740108346039558450922570845951869610912811557143128129844295115633303399938988174482118802728230874172499216799911622208349992630363807046033776241960340159482441635038340301171884895487926601667655778851463316225726473441208450737845597889953703519153623276503582036509024476131909717366777357612148041291651924600346172741336650975877375695726951916391974277500514371781305943244077433624261627665928112151643460074223377433338806635438633151000187975578459217007977357363909176777223141217474028127231417169346738644445989125707013306265266202956291129679211853463638643047617977925035233998376696848013367641622703283004869952394045161620367183612685014191547184835525757161668187263986640530998819868692255817090303678794143712458708881987233535292086638611588184387072272138122190896699690711643306830282299606518986004504169231358916059779249417171587315901824725664352595626269731604668245608455703945595896874094035350390384277749507567214243848086737979871890519695148096618623841143070911702337124554163830720662524467024103835249174048677859018858778855407073398626823475613330939938812697893257545407911395663565870378837971433492008554655467941062595662477984890387272143225910904406150491412277447763617268950191969442990949154625426004481438143410215024659380756083456492896057280544950890431672813769168043984087114216742410608706603825217520016894541447276752326826758138351479409551577867757177835068988521865128480670269564264828705639138541540682141897514781924734383158079055430503521397065796819874879424964174491126797801995621145844906763196977090552506026635846608862019089622752879485886920357596584205117528966365865641146171434217148064322932358588536609569270085136378907538339373298117943921972066412579871821831871735247608593517543385770813490953540837314224915690380570647629223596343606918257282253924616505428407485176952399217913612597811556844852381624062186185251912134016517289595378912518381691132296764704915112896555247540679061395840103966743501758327394649561423746055284457799113295793922872704665040925169263444474967648333585327309874556326616154012481911094252871045973193141276284064715177612584993783565534595408986849159702076979887737194020350963773658178990382358275232279643771527571543963707492405315681856458767273587933517301221185227851478204639922612567441164059149457316500633704198050657895675968665490197440839396368542659906323518785505910661023186000361134685512069168372833504386816615961249575967999408914295580620000953049026379602687664368461245911894182574811195398966616405399797508976209127882694916456664999181589164487719662263249581582509572290136446830924908629700501954350666265159868885493036379581564251993719437983669568862283426169628818381386387896680565749165771275047636077698235126909726092234575665378131769062344204829750359365936098720271794615501805534899307060575411669875307357791857918986425610414619128672687887993384120184807625376794245968363896006066255405010575519326638890820076150223813268867288411623754318807250923156018812735429943671855944099013352339613574433198393974787664675759830153072296968428689367999357311357322916819026243718898014981944353986342303653121533655963337327063007535988874968201828358686026413051022932792577374136605917223164711742472899459124516673174165253914406584551446226031487596598296751817174028201609911275805351779703828577195038663751457547575720453581024709230591669515844518796772313408929046817782609074208956828773948860344097351489550983746714402402276664111265687558324792798181950904611012319627859236407731317700094441895791542205588818217141950125725804356237162330897753239980543418453550529214937586436057653705200591170015540250052932446285768391065502047362080920422894262935396508150341052898678658781216649562961338441962837281911722681462918099524580608991983043318450748191139344702930613687472868053020551276322416318056615213782514075568018964846187615632461271050225911693898647610956567172245154049504059915918167624854249354418662833622894577862362187029382162193565936021362333951414062390383121568496152412450542311975326391847278147677303694763641232079908371085318075961131279260130875903698405875556954659614197893067118716933049082129635711152633064584716217871278736765136579301100395995319719134321846299642114988494675264183681476926830569139373229392958235066319320829502421082314896347928523027842783146336862613590145237445936191419059808801610551002850923970385705086974671491733902445377099347281396095684919740624333241713685012374030268190071345516319431922705792030007843663094180942342031940413320724442854884392727858574726800213297754308666394059941883922059055314466952241016276625080309084332025610345806339163651125972296687115856075644885767120115377501312020903894336690498065111739954237043515863091608861244184790276469037740726764462260324274584121734897026696032148805708948129860481105557321996700520845373702967801126573014492789164424317348736577878734941465572071299259166830252681336241035412254733138898162996842807037712623435254129020406228485718538750035767381324691406877737016402150825147447830619131424526313934866580305666153162218686914838872215491859003634645789448275280318520491715000640844009594999924410915753353150958337950132484774474717424405206505327696530547612844941289794398720170515923153128056659011887566180797123014714275663357996586616540122622923891124626492576898141250610380307098278450091502187458730340156293300596326241359606841772707666606839099842728748213286632785607588545282532756099756263297159335017429883183607242484251454196645681059784469743359149197543380686486889101077926339205650731369753588945189955487083539885062179364343651515155346312449712865046244822972979856382427759220154517850384489542527233946187572300317769254736843409096923669251078186915931423355393023930358366584735937576165628438540252291381985995534422953492211841120322663387081416411591458251385446242242973790274235641884547991911339468082113458971228678700166075565812096439032168095283045632870362011343683764167586378804849218470235315823801052673346148114665736381008144372484775939004000388308748297143135373527472387723264749227969039334002130007287108369456974877399959479951919906323472205031041670821035574738356955481252596490812081320910746059515110772694067556134250915441289407268900368951746504082213393029486106452258153720536027786708167124310452108600787941738293340779172701539667050123420223633247235467670430207739910130590087836397096417009595297236260325901297243008948693164412091031341347681491622623884278824649502943277736759576593763701988663556261734541009734132332570897759737590485245900553042947186707760000980313952166720559092615701170040938982715238400773928604196745117310678403013599809903571018801066381720815968577305755474682994574883247087665428554471575364183398878579850116379221805192468727574212140157217443103473891654975495828772816652930153220958252944070409335097313262288591500359881502812483859718699381121946059628879217896860967048100244540521404884179729393807863899767625054246943253539213458838140850346502252510713221694803887647894949130639496295784202391245412993672201091999938332270247595401585181440891163895679833115842781912176578247067178781326263376821741912414154439065782718734529016601499921639696010452482930396303758457003334211698577318069283236173825518710035274383799634447463289959160314749525509114697195413955458656287317944588519769834395222332999249883756264007428989251385620457238556650983866711875544377214637923294287408181027536473694746678786552743313010338813691917453355417508388853435233855193300342976041583839394354929761688454366760538698816437455682512450801556741995032934348404773265701850948563843631287033206691839102470556143332470867921947596652419291268063878516611190145265759815793778819856635766509730801063398706034576203510380688112021825384064225662451215963560749983502434673887496640308855619867038973197179486679225761355696013198652741529255773298121960794855997579159331015242416699872022674073550897016851343503905752636638674466127920216026347193855453364939012601666821906113780504357590818837537888671749542797609786698251834007523855123199857057123702331106721266857944811601307593161923235402856864226126499448182817826470536278146970279920961072081174715454661791606622659337782762121384184871963327277435567270759466290935915865017294326059302723102294521380913946563063688084071977294226608112949649053986974901415515490489885017907582486032566161447608949319589886505032229136513615494920548741987852044104892621699930082660643467432767861050806639196010985310742354554433183114929014708878507496510541320327933235675259226814583729749257062175417116000078455728429551930605432399454089764118185842090728893234772282014695834140786766236174187710665371180110195539189872476021707647213313276737806311304846113524129928897962738046203374598766000646223916747134736160885038059481897887444258430606874196485224009546168748984431221203558040698495239230796546942112197506819320479401160484350720847266727824225556954512494425966109627507221168690279796447378865401686735992000679177294861553426077811853176111410815804871813617688442689172081464699546516065921687786709767782617312864378961132888815605027627816803994441883744970835229031100362958015837510917750259586641658724644807517943253253290126045562796696372097933469257640117063693452885917042596161898517603957206204658709300172364145222294627680933459374568433429454729093764607811648743290626840623964440251003327698206740782545388505486405131132435437301607215930276247458524677007592461165210763532364897023847631142382337168753411289310481726692219229994462658668309297132474161963091392832489505362133308960951580910023664917737516980666193908375451754878935906517499985742620190970594658049491721815364545427872081173011091064370363275897802279015865732965527132120285304933250477401156516041970654974471010326175899381428241204936307940456815062829457626015914706861014930621591623871394441879132395775066543835501839332823507063459447096688636519195315578900769298436062688255180880508520267951131613849537899249658084013685428807269339763561127171233167708966827938374846798177123252308274580965651493287084865634853625626845049423495944466863872461663543256271951065147273375494929307363131473865225701948286720163534123644120651163273047464513843028950154023119969282322153699119886643833454012431338444364325638321135057320941033809725765270062182820392285831306836998595458515726090423574820952046209011862975003427573520398887820314964408757666303988723545994716181074096351191651281025073827919590185387369813683592822237788216894584918699511195409775253522132441111560694699629546206367822949374146776059974499590519108923201897675457089109081799140396851659337856675470238016935103804526980425937165308315591320622343696783255526986134943060956765922699077843122627562001802327525921284736621591198652962430380231178785104760126748705709730287766410216415416953437459167531539775776192233534584185161941636345217558549357263188472133575128873296331146161273635426936448084102169845953858264410320167490614137429607912898110464791212972099650632775892299635136225677767760296068435265620709325722211930799755330938891459092307269941896364080324572909615599371623048927820828674136775727343485834632856820118817784296387940814658801074271097417027089914220339724305795043490992774791442550699150167084642918616852537580626723477136046434831303026907255767341406180247414322590319645224927592527600349831674856478925667057083844599504703309741023192945379646553107856908566517112769304834522093649127253131095311891546863841289709117307786134781094995267737449927534201190285526289636097264836965455111587925903183846609472917050913115005353438299321872002242956308356467968592336160421370608695750020925607199192148561480216289157361356924972455013682251412640298722032352508096759461324675032478075736094717514276988090449869923061306412562565019113183229750432554603981129443924163971350151646626570758839673531021777660216743532802709579787570559005049515515469616548453727252118673502723235826015016404830238083918201440620110850693452652567033268303250617780739533447798445493643423076891061535196459075196002763349757392798194218573317023177305829590576806375972057963121664224210156869638034611087226984723548101983168726234519908263051345984175696808968102348910507539535622006842909266902519518929688554700164983472632609261675596596812753314620915834196620715726268534258710749288962311924459076562131083780467568341530455676931939249106321862284299587163992711563882596511845635363658025976737338383054671135427230289760425729476473374614606698071779117301444957417775999802564797970738170828976843038668776114095222300406433636701795762728491555730893632133163637655990734330770044003093027194482288289939939306879550438121171082222947627167824682075769668916927295220788156953300591539888031203029472230338623401435608154330281689435219612483685612281171792088355354067806258412682446197827782685240276669885266156652997386111115261257251843254299832470918930871399252611167511857850627725896632863190959943941563568083004533133223601886381247005540331645924750452978009503892424035129910585735617654532395496170566868720888994111822292364258174912053959155042121715709442085319808067844423194575402710393159599632184253098582856740886222613631167423051590917803724866086390893385738605504994971711190544763670099455160937167339069288870154488957525672841259366734427661875233523233668013602683895731636301035769907522449282927205495430954963728855864793820666071853553635888625756006195646488557055942590761275478986110650938426459602292649292978215903909141529792688404510958890031431231148724321276395053049139682889017126384802713734325169787476524284012846437148006943183941608063463917997295275350804185621311453993010085274291312831200296108990574389767756550920663642262007446670791474962340494210121405310918364418065162302483989844113406243629763323144654267873515236377324942697716386608110219129729331673686282856668729940166715787066003391707930930493671795063480024251207498168766668235059219309271136972855906106923257218122881918844471547280970347835528508194278850809841199201569280859901009704027695039875733894735464383263684698515380359361513865429136933177271700208890935402234196303312672166208582542783207147311258991369018706145669915206219683237216014398186406454888976507848379931334148048490951591131581865019762589651005104220458599528913973391792404725125016239747934221607283045136634258705227456541034058970780230195352141001571534720804585387809377460966694494609362232111083990499425190200620768074527342886840647488841584976232387261094091599211051399897751698063543168151708361647035069852103939211141669190803864835248725172173765085932232333365322965056744109626579055280666512785477545260592222084287820966752282866789134800182727275435536276011956992726803835183425076680781687941394363585986844395376595721926128227556666880321711330384233399944635152116805037179480075226040010276715746125830917070831153302136174644661745334060925280929553570520479911627369143414601700068050721669081763389888494099434633034399416144841294766030761205842931486954221246153346389718027656546644927829787740551083014374543555631132981103706506251865490019660963734758611835746931952001348054256526287417740919265140747648957070202020997645331038227355524096380489958177329949356966283305502205417541804813597153043115943345053395235487414358082250169272650424038897914945774442395267953048157236893173134716896415780632381025485727285777786026532340487777620578475789657875910812598363004036846067212872866205813111833984594117675285558584989172099959795808547660387180778939775100409093110502101651830047073537017879224559503480613582960295232269622243256880893221650281493626950801933523065784529690528022561936727266786779515969383192494113419429463284274250243171843851857764497561950294267364876686333963652146760537644176978682358807436572384310109624365800033087729870233090804903689942275132156907120131705181945014261866642651311932403544077932268476521138643615476912081831437560810187469595331194196851686339157761523642535354588170585438888605710325618953881761281725559679883771731903820015814217412478981759596562405669862165480872255381691142778703576369474022297885000810251461144920463690620370734082456449446791983538124972916547377305445212445454964932376385018400081959100474184190412960609984784438033575194033076244639950781792041488529078603321614607941268507501095586619214104979173603811123609130632777439211555699934028216921204883577421688729683677586775711459315538140052500510530345811501191255261975245979294358679538566307442026478439020397594153166472757736147016285436006798688330046658145832254518507667836335487291139206364251089219307307132109763849067314465285061801853959071740615342023687088475926599698580547737076023263234593095917639646542801472390492030055537906986019467015093756800996727235511174275813291677309306455605046544921242983068632962148700829494728287177104307148028834469866663455338260574198696819820898486284531048293666054822496548807217919897087463017377504358641978680302108077477933829713984456714506801224381460999663311727930571662898010113192993225783592495690455946269330973698730986881290035909294103185440257495813029300111794199907502222047636706103211290641630834472820611759204628171363347942192364771319077920034847130099079202903662273451701341814223134673308094377245732002653840218197342379268068890777430512031494243980733588192744195450909707792933077490213926170767676619786884877806811206841393155717741593874842888612655411044646445971436639718672356980641495712996258614576565579022211586682805677808348449711675201464304982400654568776557590031239956616125978763870640688502630601841877689301269012703963396265705013746326185800029776215001334356058623618597936912538320855461680204504052500599598704905842082310896951400984339697615485098645614265687220248318207443260821749436841070515107519840301987941433528972181913409403862551963224596630617181812023084158661861967949309814633428662398357477079271414856198274862731633976824950257332697282748035189839611519349853569065189250390949223250918302478312417447044855165393595945361423360486669983189295881160768776224681245474499288703969432337111907673441282791168203134282507127331024360638293435982518786818251588755102982085342547456443220014788964438258524898441055127359358493521167498993570793861352547646949931601455730894085590390579102756112185971137148570934509640199446828098215601144095861330141237603229363126014985474295103101156052837223643330796378721884876259853053337424968940719162955327065810924535517910735592677373540076245647996155510600700299244402980584833992409159544795977584531803062583123943935892175579905509834787568810320855114708558062377197654235475776595793973740021778533757172775558422889229392529054055018473137026255110265200312071356007980511299917171017204177338294720499362340957824389781398592169066461441752699795928151076058283408687509242445096408001776527728436558095755901321749240110933058210009856149947479581196457828117047744523028593562571855443296026112195588588459175410722079825762449961723713708765704578359777800320483018718188126951810641687709663062299273480416813568922074057848834781062246441451612015024375236910896539791146254036892520449783358458289973217392507490376408942576276247231358723851239715946835818107970696581887446816011814930166642628539351628675587130819847051557755074449579561440495135870866547193913375044254809765687546703841114818618667731595990831175489259883636388428630064805180997335224716855543889807217214604289387006251705886637561998741401197549517206598306003701892054632593073972114045869950566155952289709183125822703089097264016310900949238576592556806678088626180869110544111696095746999791382161829997154264599975789598894891216639315601642987779146488951627740171280023370565907731137256954797714252488646139640946442792101789739854055348769022094767850448048054040887792233614294558843155025405742187170906268802805555804593749784597977198366747994131715015596121177273863688579478669360413020563178040200746086745684779449774044417274537646438393730166236108602102470174849342274342197827057394158859045668145488053765827987123814028575948639925745793645423488093166760313419359772642971149709833338293920810711956268009318612551763770959993576211107623628768763805951923888522891995846661775957053371891595811239804472064918701220677520439002158950861918767870804169445959877385006778171440093471858189947498263272602802338439432184257243168867186479080198646296130688439587269612168759008356376601213258225741987282085933159067126207256798233883846248765612447059135063236865020793731823828813954744396046074362737843171379494358945668717074601009935883687302781215098677960606178890006384504463055375308514203332417970949620455285049772631077012096291831910595386078197140193804277413603681334553450687305813293405596481879830116833058926574685637242101665936891273704057022123744444153052907588559775468724559628004282996136140950017776507052680595150141268972037891145749330685621139896561553821094818854554738104566967757691583154520563670455342983482387905103764214109388607418869621876426566710494120606785960945414296756376048658295599439740195245521612249321422904009758226128108814654552592318655370305369151747700522067992831014513254378823520931857349807189868868475250382822078121336807586851251372039986230557072485426142010106501128403836048292374003813454368870301907390737415836487695474060911521229387871962683378731563061275406411914391296629411915903640377631173046062011005769228193185749013529136563490416804817586348402293663300776599015342702414818756658945812428562800216476190635193971205002158788084391259362239271564372877782290793020082070592356004425299799416026921595183129411218035458421774596243497432123460210441583432291035027392230757282727597143919396104459104316135635990989756615718385353989027343776443455568130280433369375439495031320038771289701164118702306830393836248618641758015771911867680099778449433641207236493920105475124068818056885051440412232194598774316695737386744431730479104538687733792023024240836479186531269647475748158592471906163220077457112252914438283296842234005901208658180567179916283877032724789721761676847877380073288665858265047505431927812997363673232949202910294105275998540360334610947468346287530395919137876975109100549884053427642697058604680498953492270252183782171325681249431216612069941554279694881169960388456409020053485449149514584058239541813235779148158566693334176201951637543642679905955175572391967957277985112435672964592578135159575207761251573927692773014445477791498540945823597306084442426492144883679484737221185207891009157564035504964527304449831624167701451705577503380906618953022005115845156977547840401142497207340256290832740094523702639881076935967511614717304161151369329481754737800956457707071385722210359860903913431845515202345024089043143034744716034098894910825848192735767385944889785556121225133386110102457834445067652972257470804542964522187398612029478806982534780298399687637785833200017834875454320237544078699388779412641806284600960288256785462551083216834059630419344090307587243188906525890727092162657298494274494610530842020626962725471964345768733128191088352604121592733611842788508138954276545569691925803333577675357892038654956044189830529612925631684925640517816173626479628700452086202809193846785817396680036613366173358984657890136313489281709622701063650961492356414147976512142625466583193392365501355354472045022228188398676484460336846248148065059586171346534469873206840666095755329830791223365360451818823971599200792191105324315879478585374409541674330170300274069559627882807061177909376757256789050773260116812312760667615647444241281576895707875457161189036840500833607997637310206235326244703788768637888607579283845056354254891533005220835840055644403259029254611653199600199874618586337845481391756709634589957455162641382648014162308733065710870086453845118286425462725182178814942149211941983452551529832190905662032283000865531635645765639696635829245529287863731978362948073155378582784286333221356799305547944477527435035856116710466520544786960184747964308778650474599923065009464621780177506407941375682524757717396117309463844715760277034654998920921714602197578280088059259344880076161322208412104235559396811733122468719739640477544768933128306275512767514185486307789299672728244622177113334730246978488011160759462410031282494100889329489114369358891208270404697173104255500568713232400767678410620862879768426074128617216256125685392948011050167813953307198957061913373287186535412981061949631444587653353863380543903944973803347471503405928858384136078271070441564663600872518486671569363870081230292394655485726591434831759482375840057269138112930035599104569298128522408839727528016987467047780807091058615784179381953348573346181558238754844037323142417160650864860899101734019031489317511144813566240797631724493226647055027508650511626382481777764648451033001326915778731566909987740083754119837118449683811307814864825930662787655928636456973714272016404210128534785344857485378220186446341527272793245050417241340567647403174570879771093918127403605502364882550390897248180870214680390704833360312446219436361644271834239130496316280942603654675112142208009033941201942336595666572712583894881532076906324203094140810802599102555258103114238152562034191459755151789284230282199266420305226454608757011417970540811751334171548067696619909109663500903448227465619067522572380058654609412843286424271786355548355843004282288383363756223359480978855422821589790455767930940393688697467414335039145833411607319471902338748702234850169734292844810499987578850561219659819635031542513654412247137781669997779554214065116658031054892170993881819344681409001708059567737836882325335164736300866001366796428697470971108453720278829194397094180857850429162734769457707050531508044189777915993979438976043132358840946457935652059009757347768012396863268809722074264120265950384847170129452473838566778135181549658121218267516739676712750200994963198739993221094486123090780204832602799249160551618846197477444789459212133674498863714479969076227783296084031838339040729252148267501528160192084223076477129593492416621639851167814604672241617559917001589553713094783427340231592219993815299179872503605137535484588534719507672922047709725428838801783446404883545755986563958976785817102777400861255880131965738389922679380472966424479454735658362319026950870311438271705698566512494814940873354894818766439823794384015499964478383940604326071274472402844408091960768574227524243703292361677370376570411082637992828680288556267199493447512798318600504016324870818018437817377138345877903924899940191113037103270777325549787161254749870274215545749313874527755127143539926515484787291095551340385930310761866050607128643240134599300789408438040962644276302437609760348739192846149982572420411605695166577688969298247731348155934943366936229363660451379325368484322097345460867815135621082805757077630631363047101414338443875513388357359894350855912430369634323975802314743665302350141433976362782218437937118754098040884502698943511827689130154557220311738324570744700342693496361101534300675148408662967007556435657388075935549554924593214290491682537333930845181167939591239630213454885347560360135892563026432767558262117687233232013197247435194577834299386506428553538830343523386423863578956053189530538212893872108003881134316755595434433573491994572307636917780782932684057078069690041102122767894912707139970909745824621941448835102625749432375367537786149762647590766923235434296276257477429924691548034462988556935610352715197919472368572358965015982782512953993650246124958582977100025369016311923609562985136118936646209749095434852718564928156661305383713249065800197493722785639747252921065204323515074049769488643060903543731502877370964975645348384000100426205118289492454323987026360858428639226642278774934475927505137868673017545531910854814270286153899906235709639624315510361220953639796996900129031366331229430169821373079542715538852516994059969440800466192111289833214880845649384941315814640552703304837065620056754444726874222271388154336251639824397289519876782503775957166620705832773846480554985468632005626300930921802997937198925223313807641618846635154888810251085516848916144404997514700994098046263267211309802735909680588665359767049908401282906550405054415505716422336429379265577743318159829856737103632870600610064697938251079428935034067289109257352728123473405987764925049824741140911697474774191517073415421174572419413438165119625233774509552338766917954625745850458108474560295797576935874171444699706871837420442489955539649974949871505522172653225408900607839801582828046047448171646536983343313118119109262214898558413195442632649195885498408292489336255502352209530516052214091101713033598299299834591133973260688310317875223981767001701088179275189221405563031023048771525402146993284227587191044914331630062212676409234443151038858830356901303726449171900407498919874415543996969327565707792889329474765448143219049704045173750885359753845081647600736078956979535612274816822300831136784342035998356499314665791779080875778248124847280863315071834760354087999183148412153987188228129453552276042965001058649427744492530610525628689152694996437046561395143858574345806997710764181293434731530355417628404003830988561758772865111590607003535946110457724179500210261040318692145187492602881003243283776062443747322919014280459617578760225220544705193064436713523949230149834663403393465274898344108475643444440956353970165302626315317324276993587466782142116492656352100359399559423182885283368814783468445527628649006897776291120045763762065589951871571195244828436449475498579241320463851334149846225171901127423157001616452676471624859490140360083378933406504853344626783886232496063814151442136115638860782574922053102996023851120323706517871676954668297884838247670828298272642631647218004645073279185675765020008372669047906450659750883624863585250789662888291255294687139054547471588022033278752734269444052513859418913055067221619445759258374534001120074372957978513163741307434004554084733703807811865911333005599402422261039997080568028590874460977235502231391079983579906436487178402147181538961134492149658281958833631508281288596193384901186282442900445340761769664284290976019902804212123077688041026522979018224484702935160005052024357067747254102195670800797927556813381998797828210772668832310545098118732248079019751193781287696935339277336147900104994215966653864856052565488635697444738493949744391208446703187643615431945477938270636206165623875172106181732882580727865434639403484459550933325165000351365341125121425927168923520762560449959587733910792867849239187473527157316648615770799453264764221703125176498794105694374054126217740576164366431088850269238816014231037839519884533527263289057064050941419298399567336233083676211315374325282410067187364835896891367934691612748992767717965001065512985294538431418838310792405214971160131333503460155881469496934235934928098081687519486871657805262744706828875508019926081466475850255909935957540330277504496088760649743950414179687068784272811221583038809114788934712238108945046246105263690859896442942194648631209664204124066677675158749623439698202062550304314913292675110783419332209856822013241497693032102462445923701376959554884774941010981865407888942021846904605451831321963736210081280722589805235967260998432412542988710578560073359696190913757819008600606528261487428010464148318118070850576489353192904979853606073259046549313296222126423773709503673035616713053146294834438392444207326356338790807502546246076248728445066181360176270005217084438151747094091649669743192354569165060590016213880973979089576763298413628264097610789997833573598175159022932771397891428302517787714124482617157794850166726005707548436031550931778365244062667281461980354152395525301949571920581368509690467029828440820483619598172941587419812634510049261975509080567465205691892908812889013100821621835228410117086221749088688443922396555040084573078846671009164234829675974423122175953501675976930635520117239634836527021553650761742781419351665396397425203885635269510211001175497795583068745255493794363039439249039947918417339103136235371545161403360253989566674094658702702103110060802127928538825306915328858408066862326531313826167579339210634446847427000682883095285110609940650861401083903000409413535697268521417556248227534883749387578386815152453731140770963889412911655636308183911018772231561733403082680045387340694472622655745825632204189361574486887203314607956488260640532147767886936592537019026166496478595824342392043073200365665364276712130767768515202746924231600944862573496541734741657617148374772422655372412678653050009846917544474632402370295969275126546293594232812888996813383910270632164849293680932312622188395252778967304878313374632813482992112718467460132247569954631205443702506355491203958761722945727440823330776738386007329325568311393250249054013033403856868830267992976111396809542386658637150863996700483612836644517708264690224838581356784981536130383094132975527758300530051812490731987945334291338849746548122915522936188318559715447661871011515562541677339526626959343488483010227331331133374846427069193158134952704495243535867713568311359671479112801595925031133277805855115723876149043876132641180317778701408404218371347373199038360319504512611126359793326251384324095936853123057212479677672679448239642131464671762937002914042989351234598749043937576577133639019760955699399953586419108253986144952639443039763410278185972191796223737463376580123547591854472641390620237418569648183650055885342466790941453251915684251934204743538144743543574111604376348188892436457057038844994442745447777803078387363234369822604794204648380140937328801527982904028246580167902192584143645888893081252611890081414876467964485310852364042112684304797034581895298797097221734324191707469802608702492174477962893932185838689314817055398099283839941141378428446752939648948291797643489831683370848199885308251906298693072111271528383682427960461071213126673415629085645089338197519300083344708465956831724356799509110717211729906124461942725508217823667177535382290912204805000217482064044494978826720553661497288542567985348878528260635600644502739240914110059870634081866395661716121941475153863747931335609744652666076920381893191878910208839974756859966022162150866006738383128807290500405692691045591335265328267579272318864948396278910209478390559074685838636188190231995567638154998413382162697967864606918709835801392124671182561503508116017401419146339405526460953994563425080255061183664802856407462029133275898760483201122078513340076082258102470420587281724960948781727499141316214494537587520358161145664576300705517332988711829003800437464977041005590851459971099218805044552769903894509643512228754317079685303355864550313750022209426136254533117753546812208478184779290479682880532020758210412220181577985017559749505852920117846000986622963227425018485661719549003187298991408282991852168881759643647587230662227162381855305814838036984355417247268396754786248541543245910354656813205195990853398309852818641864394799000713778034280921136491230423297453238779395885478968265111227603568083083622558040744919600158257899140228214592304940629734260383732452918495577780442727178905453113411727913099215614060306117151685068244457418412904761749718922715468519382043997444685016240645480442987357071378568600928690833822440282138377613924293302263652544858477266225838413414243095380462067409753292222880212406401377723873360733272074173660599087593422635512220518797670818424157558381833837939382726737503633000362448263377436983895447921678564567474984162750115216078224520221968521588489308485117531238236384944767431387813929886892430461480495371222389497257063528459413314853829406174849907979958857181898772249065318129863445134794241139567084479305469090582591523200852315222649321846720531335754633532492029889641294536288244869221917949808174016395666158535354807291321867374200405800503142557257502272240711032862312285373183853303193217808201559158639550023221192038882755600741234473782952060215268315611776366557194665515404619273394542064586587676608860574909390129833389792373048530575004300951127194731521439621799148977075893176486881269667485861338815410765640747420697512135956327519762252585422928815524056800376634701911953111856223725208492259610894748196848702832904832715642973063457910472058117938765750023798168576555393349564504007055390550752307578863023366873634517646497618467493335323674072742465764123387321304477010209269766839054632983900883759513126645798137004898318457877517802357049468957797508362053084697111080142997507422604325798673467396473796536209107553942727462567207647451408634698179170992747582261769781547472144550291836721923526331303124007534915140728991792286618429033151228762208623316333030944941866485592361481064715686636889391907536809661535740563584422576185702783751389134904824322706893968172327258033887278291418033432833071075900657693689338517924072590896052012761539362749420988903017812505909921714704003565467589825284990676495109555523985570686026125663820143699830835415715911916680323672525956336005267971254957227046550308665808992496524094209274907020647656844419754614159050806809452709666552458732682644093301493623534634046467925287446757273015930909474500748873911108081474249182907612322788229286392824761910667152108572875478634214436760486670361542584329078625744693477968217486099357375633750140211849052779009385108734749211673171072460577067839613484401194612769572906101755648275910171025290176313759229269014529206481607293803507675620456499524824929680641636296826269199699957973863997441699357507245286043907899524834664509591054754630628480825799526059438215504735457115791311624790475971642530902157523114136241711940111304030460837259513528573874390114950380960959018641869155751937172095560139530985015765971291902802400888339103215806366614278505571562802496143934221012339526994747978970495013638479107054551486771512531964349091681010089553429346354849961431752784473866468713013492147363592982288621152500828135024799103120272014211134503459303774262640802134654695125748263029787787222616975566728743263710261513677184953201281379613521639514429646738921909692658765106902960413135360246751408824921086061235752331926878942650923004459264433859113008218297077177138621121015787158824622535906671754115231993174722666818619427121970864845912780186517432345745839668109280682906138970048217933182965255794654416518737013940811031265996214680459044177920003799337003226955371591951342664457534976866486853665991409000014664934575213411333496986585899512240517294302428831314758628757476027640600074254942497771687283140945239958187955974852965440619721111047045096201318796003996128322933438664902850941011750105345637324042555677847396078325854328709670895582793981585024867555191400614943314377552308179972150170035073780635527090259559012359065676698344019254585383937168884212495221207096217776293242145356799132148916057794631552299979716281168330510658333456250396281585403356641173088658237145984006282921722282332604737605505856519046081425648048879356272279466640396868540302476864301426321375884751260231191354581401406390526065378511781109900333282642008439063624731911468064178835587818785149313863579509042890653496866603209139377251505494238532732376642173097322699388656219819274704568986889174224099041924673995079010253701792123574305019079486655631282219094808432645469599589770131828346107724434253970435953181221392248788447077408685572877992809387532115418682070267322416266155527930471694076028795901389549008557342676422402491192815709107658788954776437564002325283339885838450302489232385153286659924000936557073732503503987855838625155577536985295898235476915300713257784160509719611969190423988037617672805861590237713119190110750511443835633013112642162934629604297234015156009079581571930095231512704502430401735103874349848850268827955339522959635905153341926914428607483327289970951532689759160869498252370123472246987090195878606706014156064145705997854622599910290219434035983418866538169909839147106410802359679400547896667668018853770925221161891766599011922976071144333688880593512188073022142664660157558171395104882705868374223036975555523293576142176992920096289470706985947847085024849993157884765670833964346583063706179280146784234011518969642826768329705851026189576512882066407425672845466742967422900256457275530135224787222728712098591473017814779027938624414285165878889873022154420244091605038899643905747505908680531808916409928755449560602519323708033033843094942477354687944892844511817064747195243956773085221570814663650560593360975634522991444357986229695989251229325090081173921140217615593791551179710404274597240252180122921272358185940214331322508503123537871379332041349057625629633253887069909980670275564772843705040612879915944984600857421880174465786039010063354309033255066909975301727204321916533568978630505236901529486933989919295888630701597437183010666498319285133288314132479329771190349246669250724740977860217372853949592787488171776675159498867453539179971269078946561841115485991948923716189709770556432204131423013664318945745604345027649465785310097155038411443461060716239996775805535177757003352957134319307012536533614733873864783220831405004602749433595756850611471208955513824531149449821206913855702459077825071618504671030773710100329902832404441795522511505282394159168123641478778485228955799344604923480285109714678800099600453428731403287738532144458349237615722500571221429299637290324173723341048752426914184434673461262431325896810953971590156307027584325858480867915354811113726536599624541230607623750191986308520764574360856683007999376033505106573177739635306834956329413496979932176857983730138803141866226125296331854801788851422879864360104586971353034151919465409127937569253142343553068847611417445369852244475300319942392713294008494277420034917139014167608195807087722739973783162799446429886354811846827088364614665614337039555822307142723135135877179573379671858576286095258910887749549860457268496670520491477323809352042215434389824562714319547907116746143162218304725358686864451965472011540315711618339584816775054198411753625966177922912228688060921765859986933745298738246865188186937551269319381140939216165497397105800794039632355849757380589286670712566039707239456519793196742094062568575333477393492304565398028281523282649498259491401503972406575585185993267013336384396747697461830879880676237432265069787853872776567247267620017516264335348118264984795089005350656608255787309204968250419407608057649332475638063589448463387880062319758898439501410197342134022948941229882529196415067802117549683886536751562436177561666596353646804967245308607698535373811592548949176042641348362406639752851879210361253332694941281615024837269574090242338945933560971568152706160650324806060586651172977074947049183812523567705590095400215066338408991960090035916089071068351799997623366779515599270358096440573489479983260221804000063820078454135827360694732682307814829265790198243524930473783251172819285812400468828313417467197461262655654580572774606056128058518801373222395305661537788237206760108430131081405457711119212012040268289014787041519793914183416544646133558064042944783143762434149326227676719939994679412249018815453444116628991826792675503721666346878658542137160816108573209083673104685355435485218765038658038452106595894367384021311598875640290004775483810054763134233678213970989878329854996540350543694108225118936442976380442519850202505062203417183134095266176179926407461355738612032693393872079064734224652948415419652658098270928993021306058544742972299685009547504653742553960014173715169067562129900625474001763606763249139890135394098547386246568122114775990364997420103560202709284961321872005991171316704504993002557982008315135877206831639365202856493444563958665060309786441431710994919885524533071403545745424727049419034289530631310038502201706069048320510198855143840943381979509082190192649280722639033670827463425514482127605416781113282768693948142655565308403341472460817763827267140036900738786173623593321932492982183246537213440507259510830796970174855423648627653650003841080036920284997332225889698000569718733104784075483234220009903904339240407089747597023333178598087544514096124574676055519656555203653104228248739873188801488902045439036893416200126625072957948798386353081247254423123375078952069315038950995376711990756469826342819091144143746804612277332567806804291789319479888195004033161043309296045763713609184696576067160959890212128929982422048715774624951397825716188027826583469483812536982462940718904067557889191506394545034088296670092054534997566162855484020922650146713460377464331129479519989587559551222842875434555295606994763781359477761683773825919053904812709987760302426029133595770803216713002104381442522415634647466510131925365360173327313280953344353539827080286234315641364825103841626625708402159286170859642968168314271310798620370227340341109147018653334572355351660923668761210253304665568782888806159923682385610139175939010829454046943240939106637451509398168818263246444336166098841662804590305971388338815596882178749755336562473503219959501495257907005618438194417495935464923089587070216418533333060146224299135800269413579320660588071654389332668929997634454406366971453208570916539828921004379791697951885198743679604984314539904274532595379116737091347988503848712603474066130004042631002725893117287660526567821784871800888359205625337936491243446697182262568582988294028122464455515060174077472020734172727398816640340985365023517763392776304718389977350212800714207450864050150669104721547558602496907065116569368528695895981155023844044206879445256134662961361482073167580170680085860813229134861336037641149367228333646191500161592426878487923245065012019158066366714297238130965760164098600236937380163495544588913648557390521964567160525330682625417744759499981029161134441195803640800500868602291494776105961939489598080775348802632799483458307821991974318464525358191165540938289900984844687216085052528505482975419251361440524353561138118306171053155492838691173490794340412928670248319990923434142901241443893139890467961405593566521553082176263412220179326589134765021148945983015231178110823350141384414736189255953632088694415518688664209539252842576325917211851749728786637055055629844601425768380189759935508444891516839178377273199952238063622856728594187619138087297516784778086045443593738612362526905928760443519622333107176575367608776621766827906429729925542165743871008922597607096560331823479629560999976383756164565755984392991014645921225805873753332814498571176350609888543500656032632329621432934237756300200697444682141909455289462721731351173972939969254585263232099682320761843942181187376082727008515234247761849729920877317165473601468068731903227870992770037002149634635381761394313353071167008115128407859855090775389244856140037559602689327509458555740786116332244213121308317473758305838113494264884891063056349880095475901978988439608478426953338056285250887192445609687900996770688694466752124581831351510197988254103383588414514843267980742657728666229984004462397377990912412058329022325525126127019739847578832205589799023508756666457568231438462820886209199213617657100214798445572020917460896648782944042329724154525668043255835320769203300296542961879814773595336291755620933064109519747246818007533366883941618085537511196752716401854200948241999571204301158522334548954980701622923892600558844221287396454187385256012557759545644420106980290573294613321547772495755905107024542104239368617566296133423994174958027984321853859319640918484674125608185600110179624171208266824273251854961156012670199500769942362121851527398888024763631015720154905011245468902394705037345449281326742988540518707674429970214401363734211838463045272744214101776182773058878129030680824290026175595764248380879884478199825918989219397476212075135110397077888522492927046870531254265723061839513250253315608037886544865907177836194903222725749737000017466498994136518572073705173367712349458340295835073118842866756048826172382978353290631384036976844377339009385421645934480782736126820312058711715877958603052224114621941333731598672901365423300203989133501525771177928770493770600765637628486807593588744068403218039194212134779927036492479487804486450564458001370445028181617705182578284294796270733762453488066602929317724003514750732244328492030729681179533293115116972085287029568418844425718263116534174582748282674044135337614631249960634892368264495133297574443896474420480326108816926989515537239346121467815399288903467136999368222794152194836082907404488829550269267623017431187919989625337160915299776832888067138584930239051520076763448777816534053888198597877597224991513706265400841990290002186833192154539736504558123368434429221791401521137783545225321101979220897144073597196214851426586885622256071658450807057533590065900020137204930998142877123425148360278517748991020119199214296522844923523547821153363065021891121014745649581009553120493098024344266760273005316616765476705931803796833926837132745801618066000436849691755080094017511351982217374760360568340772497736787259176406811431938353789357771236445829965016544853561671108844052954154568069750262505689943751220833282197036337551755768003358381894325495303897735864684937445172065941237252474256592286925479146702341053954814222034100092774656094559124646904421338850795160899471305397685629149998905070680013814181175584548519690416884774908233859973133343695182386969409185826031557695346977241372718620705496698714521819208999881071311788799847230454613074554929112574764065474061807105218924087001066393323280011884001409076824995925972512330354472436295332047763232571200621311378370555346834574244850372208468517270278532430658199369488188676712571999101334408956025186938106944564309831800933191549398905303901266690028599707701632162918036491545060907332048071721814143029782949817075408653592486137380205814668592962344523047154166680714096354196035757095829125644585937207708914264083238541323589119696760312869578561374746221103426887730557957989355712453463323412384538734496707634654859376159923951418660785371434267376972425611643388655847208369033034706514601265373904493306068428629907546796125271619699799304172623408752188379575578250912457629486558208269148442170900119872521102229313481309115182754355135826700741511453276137608349420641481424258911377224435888802203249735177482866864406623429724810690679930310852803671930460337331679908926267183474374124647426872735240523728991038692729268984313343900769890560212416905702841371714227310338700237056532053183467331874289190293903350389349544808129506886958915238177719464972403587368316014361072078887936870553082439424147514406667703136176611073270725058637504797098733080832825859607828163825521139336085349070165195069444818631481417219963192102638812923865486149039797934819346717682291014165084727706344957005215660818127398371105627767702182523487337350375155572312429450231559040437270107629059766177574532214181113678155948487380181915122902620548614921378424495075956309761548723730791144173066818718808054241566501507548602532755182446085816328815563210695347552757561915522352772043968904287971176354732525403185710984603996523961087704967955962458239656848222043961001394185192406463754774219523446064989981157972549727691144969157983203805729069028519879294989138653080894989535773348630024854836526906147764151555406795193443290918531510635165057568172274908361301957470070022088434578526020020298043151064614276849469442587034199202015345858882350657118449236130937221512475243176477352746537854876320367390687985435776086584785836854996873457089598421945641363625679215247998988930362143895400616821135544002097626350683573852764658758580928038891521494960640903773228881624545840122024171089280289060550320776749117215830753388679808879496904158034847066248616411602018332751930767738783227715750555153767961921547263872107688486606526367476557352493029364273014142157007513866549426757638324743734266675731014218948273368626438211920887122207882571441697440294300704041278714125052777568228835358705118819428776390479381583001525296614116324919233047976571280008031684548627102755710999682739417811907300740780856390909764654923817751123903139930822798684072382234816468873055627225704310137142576116687011251065512734581769433123679349244886060806239865685852705617569995765643373428880940548725740712859599131453601950443545794194695340236043171398542213615093179652820580110907750573303006266990959843509630458099573683947535952285712804485594576058196233423362575477413371573353860120497820819437305704224622446211095189859261316679806913959136603979403207410233373413718897583751429418495453644050972844880041582431147013589423198715802968307927789297262778849558750784246795617783192678934433027133315225274274677463518385313137666827176058537189015636023183384122090929221848212843432840850574613918313996647941004178538746586622713783767064091432801893369419936430904244552220648316633591095727472263407550616681433807664557658674436614288831996337672631518511454803398895380880437909258534071621242225825122332571196137271437875051067474902127975654595579310069968888246527205965023822934845284933330783090703899808538466238596360293095249794784244733814194168731067357057021942375907768288739475108515948913067705197123894710775491111978778974390850435220293544515149587034581951220794178355403985264932924962297495125900682671054980788974611220668644719568407208840943537350326836113482455697112247913629178421775108997292880012936002293583355883406233523288529712797810845487243636151510732111242115543234867369694448762341923357635120299158399012633904253518036337729160766066014504799737069779500408351092610503271437077175398019933651527685093267031018211820780541853561323183515609980304210126766684919021069270104208783511590524439632714743146745248623204682625549171892809572474124478685226395046123964126044220320611168171502212959254205515038319247145732625642322086707060402535393724460718357412109047234613817977418204074252958767092633594605680092959610215243995527227594668465295064984873945845410416609665437450815699647277131019060467240752799336579809445531807384161550690212618868294076498550517223293620373958095197346724093686913266899725898563477621489966507279678391758442141451133894420671119073211935257779827000342599012795645334962018724531528432899926632243234771734724026909494133360813575274379766820711566045116436118993414044283335129338637233511405693087053776541065082347019737466601353485658932754541967504748191455641543008247376463162144190282510440334952924190051114466212563828894873963925810052737478422902767668131307117609642019101851543034354802008949360321704462229945206894212314865194541895920737214460675356876017426696488195613875332352029942698293680663787344642683353992563147643581186752860330339807835463840634341276099491049088278826670207780016084079291811971737112190426063398667376049549421789116984417851564843852076880045010159538508670049582716042906233550196485562693491851503427576096293868648036445303185975952891901308739734413500412394724964098841263188760843674676480863531854182988821323438708677767037273712041718779533828260364303686448371488538338158456127254400790811457655572451174215687621979656533737055976817122104049714404313132507389526833161294380267351599748403454397525639341826787949333192154659357787056778885104973650968339737412014580615681074630396149239942729649494136995980927482007189217222178549748657722326261751803527442016876901073916413703643075954016609788620968563217547656773765296742754765583309317792871280559543745700444570964388532304875826824133714155789127187841047113883691916992346352797754122634833462152290555284804030466557768498875342496119070885556983941212514606889445065687040965677527868839587587934497541585094086210424796832481823803587719073246742600849180826997819824165155244848688792615737091312091070187200651801236520343712373271136786661403469603516413964211300604163085500504678699859616524503831900256907292250755579308424002588865750611439480921376198010413613354653251993619908086263076505713624709632054900436100642576098530570992328720577755388291751670339809788434074136211231762622631303999335141726260670391904562946381890814822242627894451409687986185371054396453832566838517753854943915876740463709846744148486687973858923629225873695646177530467661765536821465646927351704705000990607946375458393269571164597671962248304955256018007138076758973090292681679623975800126591388141541082576356690582437379925251589289921421122634916824706832896957919914011894968701133954579000463458893592640164593715952679636192011711694824449045959124663153881283406480055629318869218671482269283773730134382520736788618674417176269083598472646639111969609082825745903403306080165338502201538992216150889782168975711527451523249257711362618270341615656935142799128112350240304954844819853759425309209904854133749135333058345732620361093760000909717922632558697852761686152668143983321092127889341817179052469043606906450975655544915159825760600226632255615002177476900568111631252776394790094584195067659499441638665712084423459558805362478540144383281163579431619023070792012034809342344523483881348399129916594622018521071226266685581471410128936899775722436772142200943908732118557529506125125178512444336224756403411885682796118491557717765443933778967607387752007380533777197045915207138266442460871698910810813015922027990619549585761316754222631490483900412719766215141165611386353786868980027076951578473222379462324849277621619320490981575803454435958231312547944114196443683188485641158523681926132768262595376276665456663270075194322444017086639001805884123192737114786347314487226998937705623172396358932383426619608131704690891160317824509028832918975023456188768349695999604255504292342417376918585623316432848672230346274864645680757904368233128972879239439694108167682593410134992707362260830262952175105974314666258678204557304605405974801113561156411998016774637002764429162637422750268653028420553423264778547008857772521708636442853140513823386808211490588528191911399400567336927907616565952933092671473816545386769154906440838729620759564633481370637195892720515233025677996735008576261825789474911725077015731726686727934280414790922085058119343965334223547428529950684933607056912031990962118389682617866409364383840333342130552964953214229717720191699399876028561313462313279161077109149662157608847837694981292177530654817426535033978031326794833902683193589304640758786193864075023149339380539650119045056584082881853766237052569784578141915741271793407161454397642066981639598092940785369614890088877613317727339139811124223998067677755805696179749471771407594562183574569634407927699409931052662911901222851611599625205134682955445933424571472863526836013856352287624502030280652840059059635956563846246475526117097645383073442082486280852002659086248904968524216983968762060887757124458823111392136817712473159126400002610201131570767698492878510001736518702816493694395169795737317059247681045684940638429851830175902675443161976726083495881017033578219689835093371545015367792053835600455558142977547116436706234961683271335920376398278064066230752850923579722046045867190616371493307357055418553148883200771629436403586878503594385472733943029871861609945426809890568607136146224305095794489668763067908075227991046174876061312173188168613085747915090795960923810394148158905718685681888687016496049253285329232866292498772592010324982565783378888298840993681963927753611874321459408122003165447902679604709103860591551735079849321819613543986630350279164360162058498774042238489064820352227325245683749424449913555220759055371424042490240824747248332788392526406902230702546271549029898789157409602678554169586399039274635874486624396716979758634762967802233042398944713038296536652445390876155311094410134693182202278168834783665214118516610428699077430811124145171422329838038697958928911061189705892573671971906214567174638300470384904013650520372136759589414186545206695525099054655465347804593052492354677945015193536330096090900538817008187577315839862925120798638032933677249791974600226698692129002340478979403217679981336298047001359221308283782301126722132303300827089280928140409683161937398990017909911292727973458686517746382014877562191379790490099056854721602918715970636505186532706934135012537899191896639627467782388198883433333214523830977628844974331514694818297423422621325390273638372206077384173502495720688462765983335194852597877541312270821295926776662701421680296337714321987950891198327683458866783193100866025982610960267363027372063859381582101858758866844687014498113529859982177202083892957516318498175657968434950330103227979936308719818613872157761879135154885792517285250144539660290262782240632344909981751195411847590180183292596234740714676209586755246538509663379197986886968790255636614932627067741367812173286104720195536194324186081618179504570211585499886947704616164754811620893611614726093937469668793701801917847893202044945455090265774361620190105472616654824873849171844578783812211460205531292185674983836021609975319738062893201594032020079834051644451667119663997529597179151077923217236228364426385647113817236826928377113265240239573619967514532098673997097941604229350449904031839202956773964050435703785130613855348050402678842907760587156297788526220705143546491058499804922022669914629447718609972170281466461294462800938504514854099901946094219363674444391673853227135886810076263857383512148808298497938406267774722065980898396710665680069865172769624028212792954262786755424230142943609212561781484682326017292390573160948154289322916945956195594286647523824379058407815083259302115729186217965438796144192720488367569467625992573580901922468858804361080904515139846259423489330852750162284997623949259222117032499145456296938715707307179251110153761587810788691660222626797869207590710471734312895534863638467745162090966727263783573788579884200961052839553630103618176786131421321302715006423769875923024920181062987459885834326361483143658305728416112619058845140189533670592418581069434183581075401968532004241705805611280325489195459680339252892578502944065575031741076527764052658646602544547076980310885472025089727387564911338051372241570075889472911002931460432815832343364402145252309376160816028254713953110114711226731433274844444048830816272084890912454444290359752523406971022946013199394868670058264191558959708230363709796626338254926922877508957100460142921527188415584128083985117260305741663909324367202736376732447222698160817971944170040059094061246156817649434479211705142155922670075610125228004660088181237462378921262222431730964831810351316401187318719846467568733217052097444652557758577370427545330953440734735011666239082862723852289648757517585936818549037019420614995447332938922487137241816221422970762223405601540619173326961600381235307468640518690566375486682868088598050497145951124768115721130190188749636325367301154551081694977991904709379381720000566022228519562748569233225811068657397318267649260310135454781512926952310700142745023910381363628836032066424611226361255787558413531422923361149333515352285449180503012333267998958049973525869110208118197095642687949967923391467783441436435638013181794738579613533215918456524798196770784743076910129879068362470900099664507944981276310932692194949460134276888874831617532155982715236833364095565349675281470827538031715593315380848596057434999305150654376704262611389143873977920221725319695011791893975111586138481442115307928038180133474390557166882855974601114757957540918040509998198663266526433533851488134592579147526698767429076284616861131705842594598579110177565798843972970805740960525854255703363773887715600311427905271305465362388797865748441621198020797356339836111538263578334096169879453319639607178359329159013907028556822417552906403689803597955840675680182212548949613007408474892168828100715576741732297825905021334952405107103504391321847055301548115173332478800178101224653721393524372116057325501868927156899239827160476199747254369082390165771714554042695976437705674382742512043286878452430865172724165763934465413928122502659823880926268600715013850225478975406053302569877514484388694002337500382770272885235993740599685500462879525592724978021512953280403417780194237454990968230983349850354537357503041115673093958958849855309340048406064042324088447130088440127254212591513446824482160442140905206457960691561216130026505263422034776800322110082985766825520862609089452233434482192540061244837826440426288358299529865538490767247489632986075437546736409680448552960178638605051175111770705522827116433547114302864521378001312366711745348665710875205449046732517791053152340791381354210132457267823929247916363977554383973088249919661838124015830008544894844089054969248942525799898755427648052601340582543161896813125592217998432447317719570374936903829508095639705955942225053512026875103135554967857906778462211833042760634721946396535779075788357975087596107090664193985045950628418101335273800976559295978354704907341992116769678370565893517899345482391073641423455427154455929829264679323373029618454223936165272290814483875733310668523538175750253059669462587484344814647436458266293434621540691820307856795872834380662132539723785168483679118077800730754779934822990389314188415360147592929063931752104617765407843715906498348450027392828420640022372702766170452812967417422176926580239141525565162728212570281307122932694279698961342540616820156387589475696072449882890134267637273419920832140674485484978856398107715811689416809641015977041796837990089272265896692063149746295509266909683632911813450880385107128032284818133828118893754681598192157833059817136947010311587918124060808429176377109700941559775733698023613962598103594966486215596407735859884671158677969306311908555499170845513209250492527302507857447921100685264910104531999576631864202508297502849216324274028164181801953168294059049160282026892414006895679444874566222938279307506427632861763930471758579737572985259669819674039691193183432732402863720834025225686564536858546457056541282116258725692541705569402291968864031621575367633362353033355336014647630586683404422527810110387333483853419091297122495363417492575313346912675684838233043665032037126208518546452133155394159846702801112892324578736844307085140402835530586753642898779356369022296045163688683529162276332592037242026556232653793994747012718637402210320872528329842018496590731148867766922204009363387578487386318219435113968451726470068417921210830443642824119856178493443802086763360861677552100090515956008728834692067386205960306827142937843738648091811228130021113609550340291166387337310838496223990131042549764636838062381701721073205560171487269072558244253681750280584142721825624834020128727849694220488855542133519420492342009699373325379244373242151864293723803749131326155936097843751146303236356654392055688510802678946923123860759997340755657462633994622764280183290232764324725927647777818595317463273248134727906539923915650335617223265659859906203045746634725134997170292059987071299624475018913426583241931529673751222194330385509188817643461352473427581044656955247027450050662436900903099109179952035374105576356537079106170771655495788574827307511685158237878163539335091550368829351434194785574638978220728178395607680484855837643552074182038027496268380902144909382454129385402653110833842621101201122285653986892388906134914090156521753205888531884753993207804847740912250052714230951157112392360301110547266117692599914469127160349585283316122908329519192564229916493200084345377649540073505381221304283319517793259994942025230494890271513091703426497660540551829813373846834616503185031546859873255629195253349687812008193628930898839638340386387545150597752264155618594505258123947822915722719841973268266484291278162709474936045568102529505354169244080905730259771313956407469745748023371071852106322059031269429665096329224372788597959253964540404405798393177326833414884675999754501805156222899869874669676569156801514279301128456874294844558892287098283600633941483470700668100354021832042424095570468952592055824686058367722811391397792799804566939119196945499701537348255458516883891944259984547886491041080630632430630705761677612794145604362241873347545504558195598847923928669431557339838395532229193165243721051909857438890262116114680704205033803627164381880593727452398792019441571570781484402786538745682041867690450579904955777662422017734138874212108784996289878384337847315399471694876549353406514691309126410961254258722711240291257122050183700261935487724842024131876907912889673549510413696505819554219854730235891900716084479391593418847869174765626486144566315953265513546283138188333515261314478817771291852741300614402640766766849605509495531746697853630385657061354054129009482809736324503731360217457101895089235514793607325607000055141621610324661316857830479712659469946108577002001565038953978184853741528275543248786970051098098937683966434330152904742261950254802213252511816450641447451508466655542304301128260228753123635426221228786763632889462184402896845720790701237750393895374841339441767402431260129441549534914507414867946957544375679442284163422107216119448247134303136350961545189335801146992517169915741080237229841583126593218199675298844510710583016177634268961190940732697499696145905348872011413646411626903624918600990154714989812821761551080764472304072333181049745850331347349559262605689001838737667777585779015811960521062910516652550099322076382899021504008045753533444099013676293610542305440619326896159657424454963360066986842433015503484883605399973794508466407452754854464852284854599420001422246121113685422448608288248448514366619789478294137642180948234484272878365869819424098180209905193172934115061198711681638020744478254777863361818188922043995241629451373500008518178196030427996268594515696714727730290954550419350666805643536332027199458161091032960274014698619443601724001447327217212323868668648964845554864756125964913495186888168831843102354154657599278717626680367675545737811411815891863121488467387373775066263128744039880960407370399453100480212295576283640985288256798791396970172057673350253456590037648162517762819353795314453856258436710845573649738457512512935491785982991187324309410745703550059147790907287350608396718927882269464381224870810634475714167931460155982659432471730288587173232945945902151004705059137239288873897844353097952274711982269534785699624815786341708605333052867222322246320122865634778433319255289410819152764768851160548795771687021717249421499416133214730570255161256389030161995828084152288403257005760678576547128404264286611028176567204458809224711580036948465858970698051641737860515444617322978044853431863181066711414598253809340195085826004023455089272298216790108724112655914589619326722031817602444106191764201829040755740709704565413473866880462948909616240739410746658544297882168134482244930941398209088122695956956350631067118951382964993042851917244451838992419618444614951284821808152604677006080402073901796187804291744067323597220447541871976122504263463805313587426258307144351811328363907304897060913730252627926176932043448393640149714330786406574519936741294975974369546241509526973365637066470986912770589905661755305950954315385155135905480708091261089553347948371721874107313515899754230664161095767373867822746171778318080265124469498288715575427552965276312821075627288888787050494180123097159649033072249309950119547516371557817582807275456384498390439118096066505827024300986932966920765289563870679598092619520930925684922367030864725304871928252343749419946915516856832997443901867300494945864525955770070958350610599151266803183176364778146579528989066940799936389837997114414091534376687784986228170458531694378717492753487022400964464650171969459327558730794609335262835831985713276005892831622252946981459151991693735344079216617365816842860869288010058445505861688654251923058304536982474132245881404150987276680610906910758447433296216029435115261547151241798995203187312550496590431458177431048791357157459428588001925390179562842785460998587437808369732872258874562510545668872301499234795867197329766676309087452160648683810868062696809360632510840500569463388804312158783274310485872445825752203061709085738063683184854249851064698723672134381198761828295621810275086124891353118105868963851757219079330264522894726823568762770372086436872668429478720560324235130654970180167191260063046370297833300622598159885643498355982853587352552602753505427670793291461703198919590134336471036818452856574273350429825202122845080398792157154851025986836997387342730609259557158632302460379770973006745925913926892623186595829588135437720179131964352609344662659928453007316348890319727820138833411171573165773369437980404382414771262498645624803649453971824194098059881773732360812994488364433276275065107745146736846750888857849612887382645232051328275225808914323118400990592942953888675185819932053671836821019339844094100155733419618170215559685241066102560243323082014328971399810130300835784044610202928102391447695390491639808045338029998529401936906952813669715555182475020951177219602750063309852223176030248858584770573217130619062004216350258073238852249795744868626190182916338475503014782640394727062559191793676540280871693860088485428977660748282846652509244053852348918272511552018621135261510637394755863954623501471718274109216422038861966561680876571408453500743708916507846407292122546143606093868874128492995044604099988153327682910444404679009445226471663559874899410420477762825557111043074595422227868246443152870730757352195249230727623617582153678049501007325082570937408620264082974028670553695529857585255024650621708768779913589962740902268262828675321558292645376026258867129497777402829574777847101203487916417642785816607707660543612333580378395896503891883019142146414397694357874281639125717886331451668340768814057444833122362971767673760165654301361351986301506371898009075935578699403714255417363397233436424140402329903416287934907260687202133735372849495057777469232101390595353774903037675612255246777265830292796043910039561353969979203955291098060032615672757505861329622310018895847297339924496980482624793124815745190422570905846304084987075571402743603701848860709357557582566763944756304508066929814520284853005111688278407698388420011179472799981846629783307040587344722502100895089746720845224793872331950352774735605160549987498743153713798495613823999306959494393098323788452981724114676505799975437073170260332248838559474735001701067661187339673473533809400211347461686262870707425590271641739455600882621844096304176612144329917774494476970120844357135075464545281059915179854160425897467378369520129323512411187189442521101537612967769690041476082121605113901311289423723192415021766883836690739344265964439277073275817573957216993363031698372721223528583008277198334361445093714308087595679226098856497568470752966796673453582918993052687046349024091602579236294024559879145520756665782947009044376875706150621955532954813681989280548166551333827105443270422034219631397212693584078026988318267325422286834971755435313004509035107600232447426719294558171923892537507440800760523849376733727191424203970234069673721004493559658709296402737532797174817398951591702034278299597948603303028918005523977962779632316263233900224071009205743138507384030252313937420068732955757475498643806126706134958111613394720668527604897895124138055592674741200453732580549820964384156862554475830143125400895487877783935535325731393525309451730155679831724080762152880982284543271311605686100643632310849158357720866571820533988380706240747007567039273504752482709757128715738843439124369891884742202219380298311706849599223821890159264381984687386017352121861593839568400884709021257001425150073358479220362352153193634958595031005621521279039523994185672196402278898694347094065183003150490731292677433362457100520090728847601021651468340530103260398367456803844942154634071703599901877262637337755200134480101663133068604450889843276513976052031383184784048771875510494301978917250069698868315706066290405189565329257476835668775054863319898503617960343449434348087784051700334772282919823720332057591853872629295915006039327443234844532514836497127583190168525770686120086915597709294696992282636014336511908003267074732122162547791835174239410694815774177585215228032254412865996100152977297721129568248899041219073846942819779612944827754717445048423890388509808981540823260407629818105376162504710202918010849022857911435281293870195259409705931037721841521181365354271025845989806572356177870737228982822891911404145744830821560761333303066223112830931959599417366961161921256950816355173363078074092808294951503138283230498249473923835434680228976353165083146808710135892930040883767162332555713114765935403984403674899930079341559621389913021220113863400000427682165550036505294857975131242982687460890990775143681129028494319001171450452166597248850157507541833644943484912266107935985453077892133528243621764191969696452668781690729627818676034586113694522292363246950506836766849880846351406417138157804920608682157768999614099703922581959023987274932628383628954598289943261084958605226459578179506629698659681562250972333331889173298827873327598058150912854129672342004933115240251087921320831152406663788374777197150676896572511514210380206119035171835851972953417283754139752648425220646429404712932330376224757751593750975073245076215213825979450164017527053832296502827030323695971226714766696404003103276776782748459118225505762051712453398291473926539577169776283807319475771464477848550328297108191534511112820646015218964960789401477789149665803285458588090415115675517367078713369314854039296839776342902796142854521745251095923419951158217233065327671423450750418477003922872296288123515018611456833265115973841533845930722162393384005234844413475814298392638380830873182925478902437677545557551225947348923704685411649366854696852346059740624431324643879240104510341379136980310832284890289380173510277301831028335315460881010034038801432780496965756715112762933414711661201109593798892798978883424451262351623704649137504526695791021275813573418472082514196175838288528258332215789684192888123281176920587721170113409140338085479059804109299035294669318625346190442882442416350189785567447237137225324289480133874855616236820413417601529019554823201108685109235167184812703446453697461440321202787616998401211762151755677735299343220925472237023969749377125701483683511412549063829135592145751941461516430874497864638706117048553269186050990849415768118566295760497908166021155388327331708660052313381313998178359245141855120800372199745671208280440534469534485428716881956230951027567154714072763621016454223422016198971561764161711065398150023258976079104196263140030662609317986461426032796612942732858333543604332470500332769220164988808247044021977928804243469160026755106593646257138374435303634882863970980558451863969226743583481324015643291440934248681034480761204985949018622944230795775347600285657651423841042418343361728544636198854726136091602335393121005819910214285951755979908990068450496585245199914188726806752603549327994970822344035523552787234287912198679753509985433071304348049968570517515708112231507488851382093778955093659251697098002708018703212064997794126706987613899226968239369828186710256111273139855914513850500344162057750665142854369483663670384346891598561710695197978708874644339476782221805597423579863194211927024678647600009695743039362293301142009660127421869604161291240415546147451213874503825609838044501554152998071632251844816988797611707274472056006536246564691391166881816887313844541018426368293621499865314785425292150124629235380136475968649532796380199599393045201024946080778541787659925653442006852433451795918232269799639443304081131976012515621539594440878068314402623029208648699751016408102195504313820698726192363732937060764474232971797759436607548783196362844333688416867866071631871739545640505565078243423564214764271821488306047348490822502412035993283935438174417812870061395556818383901662372015179917921749899510642347993622197985239490727819234253180353634015382459438084235906715838205418460505098525594266711658090674649584609590224444870549500050086330881625557062588438280712233569064071743517091758603821803866102609966587397877336657422996713651620981360303602939975091833781687429368066718340063763943005475360865697990081672040391546686747455763188572961718398323771738171258708659955425362855689939920770678040591446442722683385485627657468029603441416194975834335035646631795074316742522031471919476668339760849380374130561115615247886466179041943470215951053261313569340119900858754846336499249919934253114638661751597282490949551484005363755764791111402836914008047153557730786812410528161215387917846838556911931147309758343359490867277664868064374239520919426259296883201086788581255791782125301832794359615146468013330656367835569229113925826239387266094737011617283020362195067580629490997561039438486432749070804185588266822841169465021403380007305595708966902582377822166094499598850080794020582509048560002924523299233839504229339710689486752464125113886637749614811192737369891049636206371405220097401896214601441628697726176861121349182642921627207223284835357259988807448292792451071325801683671315988493881794852638812555453861357151476912164201414106706497061444684944287068999079228109307183549895479040018810863312348594524301911640460464463679810005509325435458535528903354211176535403289109938538640120295908842919436221507707387245220252637585408052866206754936819564521499281424248412182815437274023254155616727009386431027188610840248176719505363057023807846647793123949267361616059865475998194666785959602611805194117474944824759426800224675712743971333157767260222016197223590604640407761458050963398053849157446959431121179604351537540952373063118120992949366237255283337027192786688367550070164904608923545749338592887543619117788423388967076838934291409584795544400631819807505919465824904780634097269543915287376508641588928023066284951282091738610975279001270396683226026151391799358051975291201213282633948569240627434412987128636926681263795274462712971196481707913398096075489201905037355680603305256156677979470256192924403570780760696345557506522458908389666506535815987131161419115848526494317284949003452572611837335321274248398695928475630122445355135974585215101249894640128556008998815550253153372260541621063288187344427489185861372840866291493885251958441524841094085599899389833265247551537113907423461097652615434984085752457985799646933130816549251844153488763522846551765705823513598948491450772531261764960286880073562683712910379794076635633631220765730932555263913017278171290085215645928327940676187314569845577947894210053967530435885156956497107550722730292128870159345835793902253883026925403028454377583848770787007923715085012948387605136914253512282408246015613427762489242299735481655175869948177149034254333396840947653212255486387814433709420740086269881597092607510477603856697849123352547123529549801910644079735598926435060858544286521732205948410957422968501182343653694217221277354994986546794487123305676448096765500364723912037585672409582936540037719672304521826728252199205948558873041734418556359591135922726933964118849886532918744572407582811793136200067822113198896265400382752302896886113163518246289093581437080947356133344778758406454718687144783431065510928557404919325247697387062250094572413531347617001698841981924892356930134998348951313547603641597726986287308003156482525229020533120854586236631555354121434070078667647296635125861764484690798315431693701431362664552600608091553721837676174129573613155804620059974172147761774578121055070060902944699838050428172234902180974631566132478960520436962713772347376141965480631163000569442683976858273642056911807170118779979524314468217844613839332009394931187391319249067436670853785117069308105783992490730736397154083172943356960757180767792186143557080839454043078760849539102841004635095700072863960745776125704332804138628056787793943670444319568465463193737815696364062935236569706944772262063611549600754179502580060258429019074352811303525548233819921030657293789312172280879993077064553198131360729486117980294134861850413873387774785202351898167954389840240239701260245645898704778572583509719443582236828842605184470756343592402152106557113219077515919640411317821371735956191205223889070452226512136145676158504137417326233276598085784180880592046820373605357484721663467346772787733545128509565253000854113082546601818594312760307536167113112921619143638038606513082312929980976944626805643160362445107140030411230134434608686175018390536535821508202575364241421575676533512942035230381148929540136223983527230151220900864814197503324960052333007365338539458172984346370560761300286160580299968550294937445461057604156040529726515033468193065793301956640140580624328441383823580803766085706498170234519901740991497983227866978759314386914992063513005038713252813751564577192936065467007721468357262268060695404290740728696283932245759289178864522105025701326893402354386509681643115383929664847794597996070900444733054024148713645669083533776887136622140583515260647510876289682475978883142905117046234394330376628043060218058817786733558711530958253415256076036936914881511663313783559086692003716872583041693461006393371905608040572772198320136115832049310834749096031923930075159592171233724135052361301799612548919795654659876400322288214538212258323747949293035028270445480536456085927737855286259533029142580438467322305485152174219625641116037209846330444832960455303813933221842748176992993748627663540825330548585795485220323830559700435154490528994725267181465939815868680087230913228221855001259066097717665384776044040941742595200447500103977624643930839677739843196104972319732662282181891560917707936485113892853785051141447000563671166557819908228193620702790514767811407556267689190434914071618831704002761951108912235489969015512970723101921601929154476036005915527664732408249119111175438919689372267389664505950858691808836228691348837303912631349186246218568561541565803675454465543756722831703476863881739910333474770524471212287996163930837254382455614764234075998316718130993761632492425075208647401431757771545210022390835251568592840050811010832292388848635316979819793014001383009863480434021798073503116508119438665754197537993382663292316055300072754341267686196734061832332681659369785937818841718389819753276988168566233085345120687725869593859360307317199558627789871512085072574037612778980359191573100369486429538246595342559225783628945005923538389495333145180712496213248000858516169323694474188458797867607032940785072534047560811024330683376387524564772844585256366275331259937075033534854797144809577020371051430582099006456180029602695109875880248617123524701074334914489565416809362913348376069144883083061831164984691125086539590108445476098108245100966545551044765500222567381900102095716470596533610369029968302337099883333658169954957604803538193924383446902060692574380633719061369400722912902798178769908832111486756941234960892696855948764335729843291990278898889723178128862899767077678327369888436772488393019889998801492812663479902274898256957268337837049700419459221487817664734935370971427995231420118086031278691630224637481895965163669140583270782592545765707881206237802089585660480931027715425219578005263311834966042630875252437530312620501486654721156613189866073982806141569069995510686776983033768661549412665448479693131350860568358021702588775000917425050430905033893300003388539304250226014434215182240355356736110404415860787101633974062623455593144425013883429349151522594695223948368224050490332379935006233221139075606626891423668316902715149004245025854335561233294785253490856041382028176595316489333219590892064678124174644530188393006088973560748198336535654828911573356854304312104833019902121491648637099169563488320751198469881469212291331101237853032897928022446904943468969591401385070790755439926852427366650140867077941719264855414617824932129477174679078068338731328029833200820435139721169348972968664507631306461906981711618436297080038676942360400073759417926261372086660893958636104400416518920235754454555366988849170808096961087480711588436220805305295457541525719609409388141812604616088532043029743578742272439141607895041513621468397483053384331102847551604152552475804658139597866076283212017155250033086048884930178091199222256485012653664616555337693412750568589351545769344316548301789388217413391055111237769777794997331107298131336162186176695114544344574454907156022043370873414677174505445663322943465619939828347011128348363586903621861210159397069748606978980642579530386712556953111534611422583454590783383816090514765837000378261623653403715152259730266004173982697373287831513753523589511299597897782352977014176746436359757823687022621708409463441074896625292239374105136130314424826419116973518057237888594197728134655658264063827004089439991802425049651015241798614852276301159850628832261085254709014373256654866092649385137761408009270068090039248384664032838009686201291343668735028054579246898397743889030086909119150905459195498493432399672155905395011177201574009162458494762402025337641843421130998070216919421285669623311273362774553636492793279674001538006821557863303308505670789102329580337434455280919999786221044994398273744581292524468361408118246508890136820951489358608951071259410103076856692668359165515780877403200777920089858459100246134063040872806394755083934380736492712071965740421047527699614383673861278524383899539414274348070617606878424219394526832925496739397584244096085827489800338412464105083785479823331162515305131874813752115730821663034590766511576300492822745554640509464701187037029108844385729323761594548721249844953172242514527051932067959373971959689556885454203466564304689586272942915950276978609431962612415782250701941218103001276306109288632730537020323749202868956882191387411762119917820632625230184615357425842234492938492012332636585539149236268487935084673150713424235090143220642966378736254994361043302205534740833105399174683838371224179298939989122802140666444562414955170755559164614116712101101200787439688581953483345205690410973215960015516571449297716122134072873384336481866043283049488570239614616858340643030776125642866529977525421087842762325328365064018557636494369019247918543020912615190111221716078464348304865530051127323356938947857459557136784275492361984737663678633424217204024450972039362501644655207965982366772157897932240961326588859926667733571291145301291207940003936400479908895530516931587340145185245061153573051411643099034345386073296441367866819836266122506374273598944114399172070115220107087252781066730190646497415202515210519651360856224334506733286036684229414153384134302574944218097971919283379699912445687063088565608335877403284549224077065927608878357497668808343357952280902175786753187696403299521526543932816763606213006412629951309165416351054647524040112111062000135611211911223210232606817241545256069510591474998987913146059502440405491800307736362837251433687479135451898917757295231891425200034116472981574108450905475134981524712075664584050207388428269383472684098148268238375965374752985687662894622025507196576563581813116656121781967323635745900127622338694110789907153071657228215344140343999756347706827736234948441934090530331358692735072569725887478426812003565291723136360603476677861606259536786403646634514424832132132571234713113637225246742821660296298209485217604661478980608642359847097659180327557442094034799158096502015677290565206574974226750565777574964552269544319311049877762122138877572114059106777875831144191376167234284164664127478194892679154915260625872576958234224532561922734580798114649919256955160862422538683523177047265500079107044083193976512537668095572959391638202663283544826081545614440627725208896200976383319670802363673956546421247448381972647347308979282709932284419660341900843905745091442480729574746442151647542945035731286843429207972957614358791015143304124407668261402428049790398570487127121462125285052819680293319468397607196973201243360842555948004169342584840363652423210170576391927196072617166089660111215951574174811235419104507240238989226859479981820086368392113175014094839785386292961186804485250528418760618107535528470996608637586578347895781473880512098958238319458204600792761594152318082454153154629344278213058663986428276568069306183021278101326050740064555084628286447877875819894367387883233763892700938121041687040362482014005226316029175381494265022221366879598714943882748046484251018729978452144044143834235488651759187119263030015929113196388508853132821350270405670430384574484844555444675985905831167483568866174180539609183864700035305174983003098561912570383452993981220116630109308386691858741890550548190684284273582686224342342035171408438953090197636751995716585573522039789064184484063591676723989615320471957593390197286583358114528406216156644937952389421457198408211974007530834542096090665013764268081230893208384146904689319930368473001893201745204086042587845366260402787050059552398437864942951856230714935068388469658988322454180292677995660925392856628617396434487640451482857283432620961552628825531753898331044337742782101371427979348971690460962687103033471070555408693341446986634564804160144500927901838747273821782252355020347997284670784464059617653079509175660013987373801797589113601273790076527464750358315016927510228004260855544033953303752373284860070678123258186505714799788303507184039040819622041871042818699560608939141830366732253908747681779544181925648905673881592613122426470445420211110704669529581594655960993024640035604167064911905373496823960487919216844975769624357429093803715192089038555392651292536610617754170873235848482079126953175088519757184595051277775778784658254425257408741790721776002628464847443508322325598601475013523642928476120605706865254218241171199723782814081401018505815376466906606039824479801068332870638403133534800873681250033896824289382533962145820807670078911795998204091217248117045258375488975109613908041785601172938945966983670614253954958552896941388540135232493121969432304191270274182344838953872181900414199798085679970559432558191538792367334420071078143183965753673267439570143875227183778430544864872749991905997376982140030423963219262115167779790153844192847716572394288336115462907167343179221548840875559813139174024184349866168617545282089051526200213690702341239554606282647774155448997991603081066000580958761514859830669435086889783896985061570330016845898602467202808634878019984542325713945595283767189822900535431185813313838790168643390426789088496416775944769962355208230433664373630015103974025443271447042672162940217442654552182940132450609893781788158973846217227724580472807496885098519240804755584796688739001236811107706413778321636438942416588346343159100154835866630124440049613471641022870294295193875249330525397342560721747307789887874233226423595959393758503050890699829992134838321744065971364477435103347184865771291382693334078224940761522511048712478028874641785049342009090481796991094826654251090741632208086915736630902699871026481258273147747223147665561818365246340080854014048041461790611043412890258579842897226537714778850483798134422355667799738406452534850884044952957165234358501222820740765883825327666998829633539386161100974759885042573837614139901915170196530672072274214780556108844924772442653123080348616770663228255181557521475500104896797671752037406584167249205087394966196797444518359028905876699889139028059382761381566509299964656104536929196823417477400988654955200300792422290744323777590310263572306210930271069704942095326546278269864240637142850358807467466796861613697588200268281793152954504433406176330710593835053991510771709224123390002746940222972756078929504973083582827959090224071318890863220829635074547431083096494961973822121631896862976054362037732273777765493108275814780406025038516600410780939441972591499608374323595119070027038032184593054348651589947225880024242620531245135554632993545586300413526337662426212198134328270826664783624752946560844789800372242938519136576428764209178332868635527768083916370497462970413642468698645027771726881991875636446093325460589155835686936482406842688768470197730020913495325545970089807446593304469569120785335954565065827039283937437192136470851326578781967189867149048551941280541437078627615589077929295871908811369415683311957764246364896152780348439942715202351149397675977046109760295398925376683540902131143674130122431596412559228974378611801469835899635158467555884162071990346843765469047283766822129689544098291786366996394193152859332743565057174786696589115555367825931973965109350623681517453198233545453057681280594054366996985168281190201142216171480930524208862935285758150660774617362788997696973930926852968560133110446871747913799520545667276315844282735604914187080837447554189796821311389630301037852851307348451050844129472341593017340106889752567305913611503877497827970079833180614395962280749384555871239461142747201144176807506132085369899337149000035086826608931569875912540033073663074133265035151298695140347169166477514856909845953827312153998179326900246013569012834993180049915606994368470303528689429857236000295414950719568597859663548931954356531194883940266345293625500820211844091659342385393784931397449503310740356314011240188891339867554298015223037774262284939622915703928955647950059268103492520829434864062670405728419296875846042924412916159755675457085162422734203866849764060677658881315049982031033979090578652721193882406768261973128161052224155615264898270350512597568023806825483438308156441725900981357299894728586598834186088615891266202137994025733131375851044210534887151592200034036374391401800457629959980495238150666792901086444431661860819632946514539844106414152680698663582223263555419000059969014044108622962210733522003504723664051104419428518310327885735255764332817231435698940192282189368678468438839481877273606350151655377470698462108399630580785263561864967435652978170488022609931468809637813716112462301848827426705890835590581340023409017685384614705493606157959616523006376472410311141171110220103552415595360648629616036015744448721241456380550129736499802817019552878955447667765874898979883317988141468598397352077338389783522568915523929276077092235698004225804312875085986422279098043516612712620301104466114038105296389014014256162860908641057012452663904044865981494058010738447994583377256742676774858270480406878030824553141664745555281660416883144984740918501198954723380874851993484121647187621100529210619716468623338793705184078185266961652307439405468355223897210544240130866930673674605525272179927754715203031700348620245765331294426980114219780670713084403602020431576021213743541209660570697313628773697198931223572277257307561318401093758685772741292153662794000192170451110602184972186817229618034483440740041815817452934676694039438747105000861703798348755045806350805517094754734583508489647246128076144238829386149883817760651104358994856517564688591830271487967024766928404694167399757071223277784262665006435188034801757741375860540416632002611904281193129676581428970261125763756918493346564369331439875086690459619903946746632233923697574424799734500795287842429753147840511633914643499436200789501384908895374774794496765952576355096185035251860295324458589404262405570500115421489333938441194917558438411216451391255142753086082058586063960515506906014054189996156692240308135898495369273105689360194943933423018640681940703780453879638168173719552925386151032119090163967688340133826189306531158465040599372707254802294560157828062972305509576998845056102700715240751261034259036529249946346305687028307482391595948774976171806081448495219410727034952163456596470336756760354068972641655557511425969748205595492346074812869199494548310060352948497616007137625373115794613346804922612831462179733533513457295298161578829676507620322248358187640186778722181987330630772369333601134654039085115460354438671109520609014612137443357276259921959523198652174010027692869976860764883055108114058062212777377894222304816059883752385596706263897713315862829108451795340695395535708031617200094217681285346000356073980536161019884171966979944168786765655159047144640854359044487695045113824717106695216222412572764648636496723438374304901553295046826086106596312380750579102666892132545960317991941951557733627099193215769235853944335778483682888696479336715356057919199487709340619381440194184942820683638248004896816958277886993281613040992580200231505062399150411602398142284231589141753392300159511194212630337732875556562481800099811410013931046094008727264110113920449474326408743814603291475293633111043226388746055035096184252518409402884363959127572452617356359789065416129653812687393957422776054351262369116696988814071200188536825271963063882197140423598159545960283682545381785846842017774429119143704740765529673638040413690212671328452821110206380111606627565153573286552711374481351566920828029233732401055528231748623154452305485168628609555139230263367863169160019823490881600944034777426801629466387510840557929407994257971344552940069159782471672818326876334603405721123276565280290557028431221421902301524205179476993010684140716583835165862352679554362549706158928138407579967022468120865881521347720242774650151035640294057004980171992303083381985654929033806500455885635104199154525348537771381470546604781784444211782294820249533951428913526583614210535746930558643248029442923815627346555328225493392777209303727504445250505955192988240749124639701304075483460314536636352700709727334842068871832972899086321107440648159138215219016451924845711249685937130485950789134148900053808639446393395387657742079459638208709375452981098439398019859668205208302567274304008629648972979819272534928431598447911312626158374286220213341907099299370009229445435988644539081847238630738317419813669176781094337757843465311477452831257533663758770470442897879812876166156438072174734381652794422984209097868025344177189220230453463547835277247587373318461730362945582005340722195572325611971783043515824513781132689943550139335086057618703701018826912375576796177987947773275594147477121334862690624364970213382194065684197167310907156362013125906918636701558268374350288791829544201808267376448317315187195201443400576862353324490287787364382968426561731744550683006367066105242301264829548420593914098702256516438309431999515044990505972464985536703231371382455760936237288583215882926579514557022175437272886530294851396182211667445167177981008590125108686259582274802926951002544617159185297873926395872049866891880155291584974821037778571707499413155461089463501796990907317317586105051140240091112023078465227856626582835738571177450972123325149081030331675119377903764408586158298362997251461320428079120896276815999627284158896204997949358732182543907671390488589661509759967094660313948338148339992829272438011002421021660072025089149183354915805496667057325829472515723258848205061962155600324572946265523585496582252262989838316023679422775903279286506961078173468258537736166576204583838668368800899929813729443210811905244261434324298801159521699902290709699514117239110780145751700845819008974827860580243892579412635198442677183746582681120237746156799474414195701070618523741680057275970827373263717408131282210142863417700469457941181005219451990310793920091841363544017750154504459453801296794919910428307648435369923383421396585671888689586448603910926909826114340732852928584598365644197708265554666020120050979046294661548600160551056299760940830580045839525041172498939808159322083657922051248563384509602226818869416827567814892776683578926306105395718969788539438186086725191304936228381225502767915424961303853756011179894105833808696181664593988036106773503657573222399756766936142432904638746508134856255645340424169586172321005768308929306235282348739493777182804125762543346666118764690367185579078349100922085478494425512905798457561344297044200567362067460485041139112524081966427298089116159480840066867371035486344989744298796083377566173115979477787768433622877843113542870816172707567407957009347214039695872510352144234315364686312776268268054946180868620196478358280202842342073164042565285506401727288875755893985265106021679066923761395690632029555476749816794679881559192954776601397739137776597074968516500005322032510505184564996921366659660744505439625692972885646547219140847943778477227519595655339742554448216155105660610634161276162256572173487703385020687742395064857153743113013743397784174967768038422561217657929968804873483566035984877140671847840651597266005931534899218459042011312422219315816926911976897487987187943869377336541026915122983242610500888504664731842903114092225990469809414190646166739742579929402493039189959969534508483755348080298707926568025185208590756135708379902288978679713356662097866863187509004308338388834272201756465868751712142668306781162074346698411914620805819847410991759420425344481326957616586733975911065195491221085631879191891493282947479554816658708382215902264113188575113933611066094175436926632020429607927827638236048720741149171045868508021145239481140042291388886834893458953575524148091279970088894149291747317944161438951105994007771726707527445590277637552797754783439983366571197814168448069825534066606252495878090909477979176073039513330556148351411759994557590552390447029034782527676936022664574743332251632235539666167143689803626391810805082615763854302117434101210145861684752906893183688206238768349478767384623824690623859185930669207702616867306941829801727273950557115646415099612785267437873184737970099615515923883676748692721794004399363908352824558210415920050264016909537835077715978381850999682348158847287571031693187183124017367151041663494640945242258309063307782572202764946243535642633932004186604097265739212348081943212854826648904597389210180735266999266357258144322662931870485248703061217128305854461838172018825809053518463879748538419072924771636208772415921897662378718878598686433269153997593982291857115120802419099676266763955782183311590179630148107219434569815353584063608707868661029890491987728663737776004221239560141537794177025222478843942730465099488353155130699402035093545707227806273817626680440443999254908705090271524412227064083201188202949192618325628257364876558750428664635576839242423634632138128239838869686231296548646938882528814679824110377634342876944818295009773872612039876288715480222793535711132867281878461223144744673703517441701566034268346521926640254212772026514913289893457256418466486601233927094016791918326594774316842510431216490877406606892309365143078912356765735189760538833072578858546980788501791427623414056085049842939656046321915801337211181791062062387047363932572872329400570728467945988772225531755110417953897608405409328109031681122029930132606300561141089236090199607830964224268917225857625654074596815977337256952697419021780357093277357256992227631777853716847141027696242896449410867450381513957219399197316666381151064745292773478279149490285793058312979372736267052963696634752448854258517314629904439644857056725812550952286283120309861704369510886559182386579526286955117960665960773680673819344706899664741473366911455087272274529947180018727813475070275109613566289423705290665057643375110610096847256014692179736384983143598352830005375392930533798639935851935987245776859465827842727579676047872722089359681594594287903173518634251866557689185679545271161898891566733626611484582465602655906985246175720892560948624060288178701122270797643518999348990367795268909716941333009376221930636108205823872533917994325143900387639132558454374466136544144249342309613664615967573333196829050830389714788160801766893591214320206898619395270550581272983868075838201529552062820676199399324569252912486537911524025067818334321230593607659889720305673243936518726638565692134133597047091811970428778055644112858133682021125114426473825238181277228586870549492303837180790394374803036522983168216752923345256333829134158901092151867645311454532532017982130318468235876255789379616437534296041429791037657261574867245378163101909104778488172835335119354882379251395375608761722690249331737162610675121689442521032609369074619938349094442230685212837334081021244578880631900270576630934631180679687560705140338827784948277950568509952006542158405569623716919884800757057062838835577996349780340043448773161884505720255231891922392589079238317197346825348593718664787533503630073592460347092100262791522415330674454167053542430860567847941398504028205913293675632924539181333780039608479642983569297362164856059151344884919632100105393587931329835278077056640966515401050631324943025460936380039259522948567194272271983655869580256701616192886993712179534156600767004526253623885346855960004671802152187160282267006875546049495453231134210526227247775310505759800694343701492851067806223456842157995548563623618069733530160292925964821557077295322794127528391858860770664867847702710690977128784813964897555757481649753349959671662771244235525057773648568305709049229668579462734419599619906474988296864855597233453589595711644246298727227430187684064262019395964497057873256973435033588592187016341145978763262395914220923163306731993680821632161441794944482319509289352741434006756505480653885135374708568794692454569290531023096653803162837758695982223161813669530167465783049580251348654981421315875739148672435922223199876652924578954548330235375169728124842269039903927717979992777728659557997412773802741595279546137237813352696224478457118843671134018625480458805073397352739103102650294667136115513073010960271364620558574196672252043611955003183178063218348607954921636625385215816756717132703422263245163558274512804967770784715835499224465960621613089372478760353714806597495825206672845296166795871873607725442983063269625663417810411949497182811505255039664339699567548868725129054981312720628077526633281588178155177596192732536762602755859455489963020555207774707005385261625588226807591469380907366783241729742941297293823423360960255247470580609927580266197250285766976099585789020111739385698105165640076287005364409658026363693590990906083615183952123717517649684851895124635771703600515469742875602729368433545947559813799289883536347331050153376088932630213054178315723251269940648321281504625285519448770113298585526776501585620647439347504989531526191574016540199668309544856854801341958686915424848339806447906953782295685579985443025846589742961557204877145861561449142227323364017070225997179614827428312057567670867412581240871430287555501695250023768516876884180854832814487508242421623790749718937742681435221658969467003357575513739428483083403962611892696591068747390978597008525737091307544188416953947436499611973660881236499763337243655475917327652682523004481684500059141123992914048928537922565459897890679212555732242530447845668269581522351940776768805870195508089341004640510149409152527811719223842742492604132779296969222300503678338082557022077304073962644622289970572834161556543987215190753334514552126160123068523070661756065589317406627334308327688247062235587904337389210146991058782252246440016120345078367287063053909672449911591822045724563881498427892539485943544429349399965096243693079145138208076959733994735384870513549450847255458721900534634156256850337177357491667355782613394779699917166120415825808612579430171585855084510662684658462377388907311775217315979934009960393095619049883658938032263170308296810115478690520149260980427928946207819042641993931769008494948609067658114298543678531002398856258656981131520512220362398025395315141319269790468841228863954893651178124144431662706941036031233054916392144008239500404978367363386203287081603784292591405350272120953257137730676023175993955897232026996753072251367600109128279686107514860570943378571816114419275323902529778092433437265022596439499226642650685603383736260465817253198000754329106795617153136993638168587750476644834562143136444584458479104611476563589988568125716427242499281329189975621463364738110534086281867344844267996954778470951287231057451820278382578486328792711521333548679014607868612430530080128092428835675218339743590454813407312839227975893062018322650752073181455484375357894727118856304560118011545960120254844051097124846603190064144247523221249195776594566141035659777089965743308971972897802268441148210499895000365836561320281083713103184123286160968278281844679820649478113908678553393375567567404634397598837529547779728884856624435632123195273801443524526114554249592559051069677778003395113155029025768805702133650178288208628090026103059329832812413012190342506042126662448979235377664235143704585946058188396148909459684385191453741134924204344775159617326886119994030137503701854303558901706140077632672687666870304814051557334204467418411109555443278817942901731728186322188539195141148090343093556014859291505040682583230606459295718803269474969043655672157738280915022296580797803728429067159382491848906315637931093705695264039112479689164541554275144584247359860185843598916088941198886803648953411743459160577499509277008131419269429902226599518867281182456215554583390784629980103349141693954625133074025509436226355378794431936627750536845692139845765804642757556128861854470310086025806693894399020514764147033919317486005279272748062447127203120712152348983839282964387238112683970806047740985860774832350710688731998614449522922324083641802349909048402079764565857796285066458674381176738104619021161238871376310772697686681861004342532189103553596282406397398764838943503061204179932718814788030045274986240793204768051058831591577549441000163144020533141041235246663681449605867359837542208913228161825899213785056054669485722962973389838397259944570196504397615376449367236248475470654035414748455768553734694094352442254471083784251517967719143363086307537795005648305107295044204850530118259286599907993083343090940360024465333492461846629181385270472727112991336418258616423501456578371717198397919804583819461450397606839831578476133133125244003157430571357695666445134936845375770425834909049000419625920919525313752936032523578516178556327373019720960750067564602552048134199334003651755329466147594441525931145742092242850404569631145083955538874296465972444977993773906137469935577856194776563652496030602046687402567311654912550926539691108975028072595688987943370486204906830784792780742934764639431508761237209294783678923640545331227963701706744900726460331893592599018586089741875462697717034199768947840283846835282037372110930059574988065855870989364381723595498209878497160484612407898159456488175076062313544437042576814523893855718033976629525888262679586559030372730057546378237689133498075504714506922242590156553999844027558873154075238599672419772718401372292547372794438583320290102028706022870612573534334922628299383941697451358282901456444053065113283467000557130118906155413801086575162554537376154119081659223023121870175698636975436154906516161991408616627214761267437459374257483692052736097663879223737254571743432281909543255798503659924922758050738465345649507091490313326191470626109553411276608354091071779689542590773377667781470775033237571168894434354171713641092680223835331355703574672590048557781884946541775676844104768912022617810317907137302259419079836753885009244194147427817256736845917124248145155140398234875469790338576163154546031945162456865221109318621172132505553153670954432684168754059822701870891080437170471646196087919798958869734425690007207127839488420921535218592896459057887343208384695125402709215794097243041766900765339742558174651537228376538446926239506099124838748370085976900884269990520921926894149794709382501928821330586354064122446701716634051448022778494448538033780877374611148255889412275187526975982598612403394119723022266611170816632904074782079372656999256635048163729253528173200244375592878904565557789992003779264441947706799264009015711040383040992652986686000426384744579578887850534173942065920226977380589798501992495795943743686784990834513618786424704074285477059420476346483313023365188685023335890357631252707102085154143908794509133072100575529599113550692960855650530108156117571282251510210184810599412719483839400103614202132538502770384534455404132539039732476850051653060749364633935059844426222215950922129382010952408467246764941037534876093898271445223507447697840084821238076230458752319156564374285616846965842128263068087347141259241518557218749919991212413585537831308210324520501607077583328948538995346716093965629210422249867583142920877316574876937198321609261775161021047500592923669374436621207887298768759722252440017564618321831868342999394804033518649335207946264071766612164583182950528742782440717325250152425829449412560639211156340097179766418422936547355127520701253800438204027731704398656178412889843981663817536404001081475453035554476890073636075590178529060973621594251497824214199132699334384970177260810051691854366454853369758039521734221753193057996197075680719255090364109731796105935353238286315010192292236675459976890009446174658971986878131247772729409089083726435848528318783543276168515761211207722627179135299835449279169103993311861914824441847830625147647430126421753226539382549719743642585252050910290579018584644072212924967623235815359379473055314201528263458771831542252642434731027122614770144087079426004922545152591957224866111937541246287658416211810311081807923064549978216478513074254274056966092174868014022335972913230547226215930269004379037779108725229353790430218558425454446327170989276510012905641546574742796449550892762071289399041068516071328611445315548545796792493406913798486839153052873323006126774820328910236206022052840423413644553501337435798259128200766489905506119909833856383999385981201102527730015910323490231859291718039686340673605718109396834305342876468080104362859149177281786219912244531044574121224182594119849917188369267935533341628370784394497478492721091189123625546297814171215544023822860757399588381340557299258131346167946842517291988011176745679247750427589221238154704500412368050672663155801672345339776631879652614359392628673138503310324660870462866257455478024139925450123926682492714308344698958496451111707077467014949574078878363465905729302956155587132232679067495548348984905789264231140320144707816098073143853565541037782736596976602490706426858372901090881872540796770427369223676661263279322415167583849121526874297728713873067497166012311033237206323296360921839560804717797343920464895476318812377814895391719070117316233237094645774617637846432924335697454241950406330369828748708757906656272731584387266735843040742178890476437697525478063993069481957056993545561861362977552956733398042183796714255837937173007687284034811366018050265484699438282363857152280974009733905677347037148142616939542582967593489314750534563342836164883839384688129166599198534692809090896273000145436039184103849548239830889781001291104968426305177982275611258346163174025649217768336184370682577897606447898768183321229740602466270034361292604437231793262910670085318247618998695178730399453619599298207460715895937753537712124295832174013441862213768278642409848511092645594329219265355160481197385591319433017878562237065219887309843745868067055853569144274293508018412261583239102104788372964350463981925227110985133888069813150305128035958577264791108656847962101061228231001383937823021213353383663897473653801040943020121908658246929067413782047904111064482536195011316282028661717317902891768435343896231480205183542870243237054853862341059666479930729026888867613208628450675259670940015903493635929787197344180284692556914339673197831278838609787480801574871233113684192058406897940905401763208314380613013968331010105625346811169112951639927439950704320233241529146488512714112090993426052712873465363355998239222060350011389273506758074727842938471648572043405252193366201645747992750549372560711596791179946446639779742841844586305426368779029667852701770245581797334386702662247005456378848922230594856826728649986297110553200503781227432428883629597225959422897094399083245623372058489778873838553960502372544634273966836243924327756792398609181638414900418400190332768977447634564638494760355258729006759048376145831225584261606004755765663399756833183776029716909953000925359996286749204850820886377580053737500050621381557245854222743110156567455879723843147886117997946180849906301479388991028156944890193369515318548011841672362462219812668130769498115595215913940503144747692418542353645332334828896147127696565928354218638395974572936050542534795694141320169306876989346840630341096756940163465674880647709710288250204794772012152003120946888469170168018335599186337300537010300903973432662381650073461491532458831019933941032666907197537964302295100759650218046181159600739825760911940132279065962216408516004011029113112031435278197624196652195933642642964338539726881307805730797363314123304028849586575329611833131237677705736851850707709344323243792682054308635828277655428089854225520028890695235493687839929136190444074334118297215490497983470027824567285182497179344405002994757469641720529082396064758851046861080328667219928445274245694085102469480042257676515456422655247087767892254489842414682324082356333228069322036088584124260927980216601972183398788774985571664075522766333028806239325716397054665817883020528998587843821084908913277311288912309731761460235148877552505771077726079599427719549718662269806200196780201051494466894306655998608621766201090233710283503960705762506342330199047399528556414088822364029331541814203842955678705256831143117764664439490680863516148389206237090928349287773240851115081345768293733871865673512799919185811515566246469808338132920662792459052390789345098348304587148282236760886256530884043013313686037247184370951707772589998230029512864714521484489701996537221441993430208848446977770707704923970483149204795159582679908206765846235526979795791699059580504573352207808166474458500089121422239037590604766059099347879680169333134808663797958119718674961308281402961628196389466051890964371659436304797321776761048351897048443496268776765756108467916553942609933059850558157813455233023223430124424208671526234569515107042427545775002035128935441782410818777292366747810600378542289140448173816227559397685260241433050628963828804973684196962642054712572798827405462483338932912909394745874711957258866591234408831842413060682979931871470238036302490005586494715204484381006840103306863066227281218569587362097644805679320475195915013902781386201038634731192011059769585320885803841809778130804950541812518611914368533736075077419303160653547603741124438733010226196550624633933288340455577683967208701334693903629435949419353225627794570275898088972278747084964375943143706419170006967777342749690828579029174325120880984536788629301426469657256572870551779667871076011512209708083240671924391409661294777437866525810488360406462478153309857992527504981740155374225352519078091093629577227054261352992131409731671056931035885770349535860051307927189412368745969897509701451086973575784435450237874963485414133804000108127945606393342695476852921924542284443008862433015850414828549222237868582192193468087988158322300726297736488080250460016314764952331040354065933757335601666436262561469708894151338030250853671406940319650304791558850206141303054005430852611598345932938149369173485410006690833394987910803276608674379307869804242486981284866778436481637871726381175189706827133064869777676929173711691959481227008300988615175966077508497411972494805573391186109127016913202407712877432690038362257853917105892566560903928915904212789852946322806874492224629363461324298947323226171261106692281463544421785353735854592806166953365476940477040166194288746988627334333992461204133596991553306986617436089752091671022395776046313050227173920859278998211487985108348020930277966566642069548569482864643363597839492707212782508403887740093146877428360669921239977973969086344798608672670708602568122224550301339580837332505268147083678971503895654458593994721482910346974978748280312740861665258737437187602407699474316793075466763526801241360531919557376881281158634543309275217005562135110623894543280130116848027990042388542919556812073573744432525939738371272904016216608382967820501474055918518876868066069149597909950107649595783442736687943734456504810783067592749871150203022085445251230004608464072595983930711714920898246090017750955020920236311568986166868655335107211531583737323539330885500866381991806581413140215819247480714587218063689261431577924931884167357552481098577251006574179355978488755764062729172542658438746992217212371321473790909047427695048985228364958151471459476699134249855951515846759134024929582401503785587072798893196017553975185957471044776120168654688476588406273911942202314796407221094039802572425807671631316464233184746718310025361529742706814206488717578566842656993970342860748164716370746498843018206516080913101493232234353927971158661241933124178289003827609637804291258264586615219880653671334080077087904840262760611691261384626798227304419629610293405949275465650734961293844969738627500086384912761171961989832713354516560516738236610522279988292138171904067744903126774142727874513092429250237818354890390132172074831171173596368261203912205882251710344214711587451025011245174553615275189807245661457504639941030118276653553979540478249900373567464857659760993978720592701802261916131951531105670136464995501241622015393973736480637890962195073755576172343492710185537681975568020759290379075172054407744755482063156992344844769018123526650719419063375237527575864108386193915409047870143086207248660068828048075417691137039484965920445331085947669343061964435809390264652824544333105199146309761772657101643733855246535303292022262554729021381757885779870022129780207102367359685101375324699767446471390267955730709095375935783508403872830057025828007620034020655811092259636082836682942994627668140035457187517781921652862218913092113641021688415795268189074347938744318417540888894982330784810317290901419092897930994921028489470021284034651217356602750853153432733008751304227175160527146906003367518118304970070271084818621146205269939024258961285087229604684564459389549713327235641504390297440729572033414796476177860642101891823416916535933303288691007768750961356752867444008575644090510702582264348404644577557051359076859413329339358250597323221052427014645739973575181584117670931516233527950307556413662575082560048050131447856460349095703864053408509748187085630582983904998003426031296421510610930878396232993505384694043094707767158106993274546621154478798353495920154412962529101003841845835111887422511797782093963696433413957352895230012253648907977691394503588623111050673157524946761656353730779942342866842645537048645142198764384290821636845149065473092921059353379454615445548815821972570276482295457909944015941487277628223208830889953519256948233765277715622229349699459246189641128901204490837333124513627682199554333764673358896157492335083322327027790543347930963791886598899505232020979044288228471895226004235338052326922356381235018935111734648334880282489579098926682459153181583764098349739187130532998968631975054408319853362076626337068924958125416773707215084847038640372884432831548095738217462187669165693292447832944540174521444111354172317815853720335475869378983814720377580595358445537530809874172336481541147291749786425547426630794253253029681510971746610823616462295632235425490467086689997185719067329036104926074521382030272675356881488434402024549354224265977277010049151080565941234447650896579821864490774049499071774467441131027417665510100071804627596941061284253322578592277053686892962669757269011527102962709740304875964900687458178348395524851724177953062545636777973859635125694814292544988625707328250397454508044829430968758058189197202660250682133321065010252296902722980297354691741831350691559843413065665790109259996631409958369378361085774342360602097789311775283078698648516398452100623154482409149481964186354025241482872569059954373073704457625574755996023376775478715537439452916371720486020340238951950426517604658706319550235131962742528852552033624816766862567989126722136190593276282970368483892007909049917688877391665852858136710077269008049007753675994191096904753783752677799450086842369249188143637835693851379380429669639913827798770631835247676616259040127865849748302153549634647148645291016121967084590723677205010720571929717994495591848687370962704266692347527137871380720871166408003855766464259036731764012236099239390664295913763473844551944003539172624596282205798817839031362193623830036827244834098797245460360745280615249061020757115172179427748351791403461747621889625833492152033990858874227706629195693453159706853327761772729041025653857176981202905634868189689400909526183677209109373137576770681143813951181080810664492610258027143387579275405592648494195124288791979280432373278338817908711661477085811511510963868511438049735841004855649711820989661260221977764288285424405875599185837066797052597137931089267115413197349445502412555985719679397980363373275593431198484239029473432392537793895565796277341262519022210326958403216418977322772998637840338013016113086249170359086720386668967414628263037694617176108723078939749967085067423439284367904623366596057345582709323664281873729120481059197193564445363998800531757871256840561432605174785823750539209212545580686371678639643656620244258201679961391200541840754690495063854489629904993758733762964877262164845571242295633939174622620785515921671769975155967403236571340701546119270598657704864822461332733547242087899933086750862145699737261550694741438424293982067703774054535587611353913425411417189621670463628191669379967942324534288712973280536846347876743613339144734870432951754488061072231773227950046778536489588464215587341450117739340547169819707230353713796409442142253590137958036744161777272849308085690954631320707208142590972538800540190779542114070965536080511662303809416028639708481508959882410307560172184559771593529853707873621816468979536669649922058948018736731169955705285302017824394796254794679974763407465682506291069772371690203254377461697293197000788090531574590688099353481791173490460802172429519594443232625620139728802024673313461728307456266248249735912221494867081764552532615689455419485121380450424080980775975555156629110603652436326263400786354725469641035367475179873870398155914371141272549373274430214942933253426673296023612288647247066104452719574453263155918041545352318488813067547645832763076716841221860694501091535542932402826677666107257382160812598475758335929780583506153525421295945978321431346567818422779909309808920051358967703191995638468531327128577661459121953299569833259978332736762704076657907542761443492894862853842027336823549022204582800175244922396284226600108201426965754342598788446384651535728962592802959186161878576064821917469072392660728062196703629783088473163992143463173767491478592892282053977716024021032022580200836520339482758345718943809879208318387651692144346616526335565379850325771932968851336686501183019063576449229586856304182596223449180549475720414862993914149849552275873039010269435594409206358938842318492727061040103751309457780522776068783228255160676342486792810563043734538241554039872221591777656072668142731390355072310141232575979744771858145318997973263354393034148323162205512646135651232693265378248751133213116510858314330058946388621332280114285830651400734362519938618019819942129917236346171638992669347144859029501892879838211614617658330421249168323376889357291789646253018700076140936906457014439507677806109856435115475022439516704025185044011831129833753364928958353757951387637004044081839469504379662466089108721967889637895590542607111536875778993326131134579437456900661696607946824562228521883748227341969340085862630592199040466696046724291532817751284271537940518080397356949171501023487763975372256732669571491682672548541530454209051122222160806324588504358146378734879411892537211850410587567628981252627870948982095093745735702662770900825303146725910103316527213430195547609361591789807390042481690970064256482815825507767246304215761225656503170401950816898281102915609139337810925632186625675845391502695411237038008176275608125904859690267100958428727299088438844735148969166477245946086304177136084020563179588824731619731574674404362814865098781316345121407424135394533350708016482684803648784974096386439425529529756916007363123376272533842783640585138919226490229122932538475277217964580006435970054709453803398780034565611494515936776087364451516679158368601614376892888004965988204857191971583844425193340130164397917734436762962735829724905467348896271192644010433000700166198980903784395383029223239842092301227024794996411482484376021549602773236444984766948718377900388908657714698501787265626724022501493571119303777214883436913335731446154343715908993832376634697430111835810814670074924855447711223547344906500721184570579115850994264147359470008536917763793144540790486326800488220514283835139206199026244992250654068104394602108059631059654549784214465188769418743486756216213208181527939970821352145819930725360127161423068164383980335713977265047515094929079867220573612771748833501192854536117295217331112907100253094209912451357966617912713979498381704287528895604142126514270799734526165223832161523634252202491308684083020960606904695265672382102234426233277276274153090713433912401174419140836715364742072062560862479438433032633335876786168133014852361755647126985095328096117392408527856812276712799138508214793399686541994360798618843020459981307162032376817399299815336535239611476123338443611285885106778427201669761609562564221782217849977837003892810467964286746585247075632782607148373170076115723576466216405640104187429041629791413038549973403569185291844144201201800980779218858071406964696533138447598910821597869694926547771067659399330676103185287825832842437033770678955742424291365841018632413563488168711955226687820123615197336521417641044361797087704272890990069098588702996321964882954667181017188847731416616511604432968886498148360477800148007775166236460207035756112580379053344296748207256987858855553170715837485971424135484606414515905847867176076757923314894599382225974517946273392344401607254926909302366352245354144806354918166618747972429165604564236224304364285758514837225144493241166865557361983547780629237776745212316445193498132296744340671786922072310901126350417406750321399621973266739012933943735350260987824266689222646369793019511516289476287223827529771702293703056871088934892802388350404286448807981156887261418367881004543590018707169864907833204822122880297299411987845770039426343109027438396880562247608670487004808671247435563954534819759945811484904173293640777817748397849023084386187551933779644803802525138617649163388245238798167910175763488421300946593268223703040047328437840125836036158698281560723784367897072805917378068421703590673327377969736153097838829902421923959747625485796218293381636566831915104768375686861767709035196163146381125729914602025072071348962173449762102055117431440732023954922205805586846682381899507565157479963637119372070059588929912433293701989291430219569418217612784606952547908229829334420326286956788731335165522878793929476057142127123878425314351159599473639871937038901672211321344291760508101664889274091738498262155019827322795758812991674902384202922295541905524882716757943174526689786855211340394935368725641451238153416681398087741232989582741376593139545598857826326732922027843093517336419095836975993517663355128556457276814703690364324788965171536853584673490951643380841256781511638749460314444429966663148506023653939626301859627730819563819206305002242119579245166695929572930419909709501162904309840378484021146607079153914124871787711208468318080361183971025544386431457316804454317111780918785316671488894692732349905381847769657976821727886981190625749343477850670562673493828607028410478593123668283859522113505431758027659110087391552985510449285453981404190244587154154825768484973951471393495122656304001666802839471647933043415998577525947481817567965845171519111299218432361070089617829911899307639827574294439052173043925289682445709271671323765396669646205185082124969018984582042226258927195191148741583567748408839440805852505018208578351109588580118784633003070186804436584726477926385046035593343543656033307331058695800767429222789660213955925243200434224497894129226089304310889146247306011113594883671768347700686620761340920094434628923299705281754613773220340363348993506079996312401510246425354190069131309687845707072070726055113102303271091035718370921153890941784809240955814855249192772211216000823544547946660953915168266697494684519247347466215116889983622989348637925800559392749415019866860194886376319424889658434151888325586603477568166099910109220670911129032387518796038393494821435143867496802890153382917695885105581428307001794462625018464268256965500021363980161778050471915038416006561274729357839043506088223478759536764345034187071615135289947131635140595802331093964455070637834640780022822232948668975384071854461904695672346846624805235348078144057185632823609870241443347732455781457940790673396064997757652809109455818480988023620607595971879348746696288779676487405575626505801214924055009473872708489474488911201806580462238288634459625434971341955126875449059864857840394730350432463582933096740044044551990368684475392668629003289207956738871209564010995954538361061332624221641409087565810652099814932566440006723516153896397608338019606121171509841401380920884631043248188359375294130219974087021872655061346612934858639755267293992297242930339571899487403535457928536260888805832938452103189916839756260110092547959093950701261884430210248150955754027291215028721796343939220929396587544447045147252134519109421822470512395891014917992329359460023650486253682556265947883839462385200406015317463734146161833632753312889354792482182281687397050009715494551667693044072245656493771571434768892330397175456622804029846216189678532820478102500247709313231099163419975653093806457912790507302942913067389794950096437098482858784564704840262335666325615669363247399355081546850291533396445014351560201588508797245498176498037401498417630865943961135374520016812016817710441152105392205198040040056629102673871056686370896948312547310334807835402649993439182740234950709146028158946554586437280218419744931670287710213523614939767844085279495287405735975450538439694312336742875872644435776629395806547666302829145011668792353785655147539358247724681333848472692320641394509618283448039385810440590070048864308645680845620143748820362393509222473249772869631283064119310728592347165412164409030436272073142628098817321233018617061959605249626970024658674231927360863486169366775699944881764535011168888246184530758896710959754163503936487340730019330327441952052239297364582940589275541368741531748263587707853598630828158311415622409834690836864704212500547888452932009424629885010048191482306518890067916630284183572180086630183579546010198102120033644930835984644716517476995288436871027154784244166293665115943510895831203225412047920271982519233070231313830520706517986284577202642521994534934725579815760383944749002165395597412866590735131707339928443851400082331267583134501456684924575168917157813389154274919250863974763962511903234932474833965117644337692142758072741615069187519983597055375182550027357258999385240910274845149434014620936534498037797143685075817234209124944407380404519864920897842202432423458376788328766300906303399125725379154753635980952083979895179665207589230312654759756729334479039861640392181050149759620045110885977633249695006070120665684589642631470089838453004572139319667881491348735506305527413480491535468122504924161338155757990775294631964398330130891747520959590663175584192642222863903235770758653544162456475020224811508110276212872669846375999774485925683248838741027046196331750618682473878995740652108139519440176543109957407095956403782367372023688714069483063590723047875262878054947282760479010592875398026388548701493754403614742444614977293796810173640038181250812509389328638500246752959426068450651622755864871253868024633793883514432025235087184797300240608241108789545957570383124747359951546774672338222404599633913073359351609355111857107909663154875688999726668848028818510578245488330139044621052586184588064525666793869470779367516572021182069888101916620820751824760887982632453091502930522109268354997685618934073287036574657526399597899432288530975826060246956864586079369573313652371414675429190103197214276561911616131045664326004882843666035562989590757137337949966853262308851502208012338534730622856274498881041809236718521563937741337394808485473258529338753132525803348491681011418344106035822817543935542987491183430462396089974176546862908866709705656789153853824210052223786967644259703541725657652098758641840202351061348854393463924420707139033206014516096101980433034065347691241363511381333497461906327031314092516450962434427324779163440066075507973168822694290701791281996857697692167400904967467910904030983291231455800769746177456180803984919929572896949123157691286399050171239181512945730255586133119196818938370615375580703501341816984213858336351697718172341686306933246206418774896267920396733509508831707632661869977300319296117613722713114179998049534201618291009342829569775997076690645757221448383811509635124367870945631864022386395690651488826772394732168148418073089011213714109372073304968376166692436908066085202789393547569905101386182373856606801976323872668298098197484034313180768288469998741433280909048302540764266477303395434628741796016973506872995938896939489248366635591471006769562116589026508565663392784065293248914341214408294909580566681042511257192231733758640351900447464077646102910944041107744978248632201843205115509370287042629428179120327496480015561980255602884111902239972435767375476117204836453176969529317224320495724940182036248856781281865831329697538681819190872689121585046668260751574380826908625894682758286927276403524226439110020656831265812691420648841602808715012824780662533291169189927680303992295229114843635057979431926840566267780147951351171700547541374975806455097624315594937095691673783055958746357867051158991805225783731240992706821057839654396641453786727393459043582669560752892152656253378960376079455054929845421298006677838091967802092975896779669332064776051237118520578251398904073497650340821088369551318903274772974330686545787033218492142462312370350349085272530540334643095184927595103458910523739106253528186495640202022864178197168182251893906743285481200426006993249642496714843090401582858124913512172280411797355789443817588328879959698773022500680407277074190753539339977668551443922961884424953544086003482051823857382733512210617353371463549279452046512440878513371463752680505286673253235760199816076311338618801906806474426167523947078006724500531101270227168451786397535997307075871982385598503818087103088459124217668171890639245566820519360570650533967550686591176589651828351870151384378964405070514976384979911944115136449285796389373188683574562974474288152352259378095482236904817943816412784488124917020055358083672673252870520775581473171055080014307235058970005599327059695106406148776432470490274437280872267165313100920034602493261400097999363450464485144618405141928353993920613386926067225542079546214020313629667676445003057610576770967739996805559855453655803476625037586663825292017834974593977981504423210069984651007771990065833236004221011269771229956652467126666712473922477226893349560701203480188633888599635739567226051075708932023069896810093053798268165807072019193098749164483295697736828855486880178632696415382672902783500555927275852325129014449448762478076274083979579391833579595603093601651771842680122981866901276754043697106464858976100261099415625430730808452436683868300351693952271630255452663126084873593142063176167978079203496469368569535267633602497722493855179086005961021668493228045625839399446426274333267350507863595133220583334389086569558321675296239236368710389718406867037778507418707162882657767415331213134530591556814180465965403089529467466378440790903327993455134403369450090497140134783900979389043908395179231928498220021717026015854000636984517334055278337204079049108275018422508976389634633838537547273479093149365677396454806388046274896395487559399126064391041464309280407253022022078354060049119355576228237366923157441395150896472473479801540506425892336073953864041488575233065015577631849660895714604148440736354916094952283615713585787079939753692426718405987227745354317256371032596129132316355410493031993371639842627274814514241719920626328038253868320541483518148125088466184924517287475289721410255228832017961048502403707620446598498726705637753860335634711643187328733912367042374583452912787350382606299324398239465395038240624966074552859430580332087643806932207197268201978435965369373229132303361354660105235202026536783607981379459240189353428759146624424705194588868423194905540836440195884527674210777448885541763984274923482638617432521121278830697309925510060019311331315791613444002117356592941620890531214327599460974368972984750861656772775911659516178401655360307383215492352321747348939958954408602914759703823909849929608494682813738497011114638713394702274770119279892864214323485887924625930882437874350814098985496634562901870756415493830095391103994845742171480253683981294244970797625316330207890450594570438084018461423619467846397368676875982059133340648469347964199829869477453403564106307507251254856406543171563149510767225999248152493638520782102902256667103878946947951378368665532813543140177767951280352028185209119241479753830863293524577342847633415026030528362415195613670919633869733772375404118051538974884770741642121361232147874421864568939981984990978235701033902411250541934983453746385441054849267763575100775910433340545736077228977477012603602108404201611528571024601423116443206573976201571418192675845751735167432668348802705490607567351499909215175277761753084056491041700131462732110840265748327332599498067864852270268493078640530191900192510523829137625678998169312426268398975162327410875473862536493571173625904501240256662456533359520975949444062695037003422370966760903062240963280196195762751158143576646044894192821791577568357094711434004251746138416361645470479439500826462185185603209890246438238653268913960148640517256642071127899581963578105710341523439775550136186168878460041206502145916110090838184481769154857889516776241947119394267791771171137925349186652926297022048746526059280001597864730249399257600732867920205969238816666488322951071535952635348437869663852890373670736058298045035220675756210338912724599003535907491813256537841710296122170366599089574115283271444558017326290203323332369997691173593797879940379086447340017504509577347146942006704084260177627679927260077079031505051113006080439877374727186803392253554321509834474007955236668754700852312835674434902455354288548150367265729674891268507061268952569525681050048826669343530854885821941505902575065307092573951101780409049301851867536286175374034853440856263591561394472421663855020935296335438681066483389082503326672287052209401286497962994739395863181306319352693653326197420072577443446440176210370221154890936775030068187743796849315393302336728433940831544676968409248533157119528559644038945598322855263104994944035172755363494301723475221159312955766116970870237442713276096510288686197432114829930958690586280502997118633982098234988553946306890852577467538458795167806820836778465202907413115256167268226900120485277041891093806835122628027496674836917479271527550567683694801305667900554454199113890625334222936121819106141972077293928957825832864766817909363151875116817817006991605637127622941683447016933592943472927827847460789400851294488398805436646038569747399967681247331233678677341333623527310648443213122632109505685589142850040461274479045949867306139754254516488358083063808081162462515509094788100730396631075425231401606539638187114242750784589910360611441391950889858173359736933829179070834739421049649390600027043185234500031256285191330165866410052865723085409088072238555686966463388892423185768854179947846575793666479957381826541304906961982857393208129308837066004560340488422192990162192446069472890643797742755567115105478857909342525948573098996461245510442060537038603280636226289238887144485024113483668496996033992530565104109441662490560782879330228881842333476864087441805595033321878795277554219510077602776374772637925257189318194144620518156607526695033083931945727736389204630242201057987797461799178071705532858168363384831704276444104602399749653736305982239231132135398476768242977538830742166034314838189187786722267248584730691632452251478999367821670833724807347726385878125039631668223795965576163253261262949239923172484625424785203153761304329856424243325005393101808129620782910171353765128573898228888979951838436795898581098237586708606217038170777635081622367979455790303224867146624106469362254491645405553699825729567123934607836655277384270854899550025453218671207957215642826169015486165149999654407548594771591506186728725460685140453014479759662092794813932991328545229550095718199385755997674337511068291265887893865515874298696428916025572463071923243764952422450858539990581047534686450936540359272456196178205730913986923608941471134367190922765061148327650143573025556318794585517708706342437196571852558424811711363610748972522506340263932117983679084304529254302745511921695846299632915575625869146779558856186173751818259216491661466168783540567769689945848860310217815071579260194969540187125072437402225009514636075918728307045282509124875274388005185994201071523827388477851629687544403567406263118658366273856341200851632543014277927159517978716520137537215831353206952822003945611713490003462991089320204701899285279399216611989763193364516653813783618555711883137538744277808615165190228533966045357934145368227412013784028579917222111438511917990726924951094593211048465060263261070136147300931029442037434477785774990778986219685780147910800531901818007507218654625667581475327654641203860822016292853722521556123264198410729083489281700752186816497798283932392934660717730508170747917294079781737719219411421886708329792012455829545339794764417254468526984327888918212210397852063740220135369193111528180189948055250752012324164457000379516593420452252334410835433479907367585001266626311295117334187926812058916668280365758197155969695065409484541400972656690033826227898419105955291487557532703073870276267195060164078014037809248395177528242666145044818530306025013098266500076163122937390818534615837134412868789529138263722888550938958089463706979771684121463757787369816507377377716797121082442713166148409026835111413497533294469256421128838775771284964291453984834916072174117967768497066518460567815039055756612933160331270913006249151533417117413448313862924612991837695704483009452016845950861866593985972484759570911670256841572708533058736630222847543139741575287943834681016987541237269992477182723826079409888966260188539511839644407913713753595791606076023077404493044964774458060902874210880009558585479003524455550014850804266292422289552067680344715503538369745992232384285687918064409972554162213980850643741518167354270599838826530136267213232391078325599937793987679612808017085137662681027609734105291689346761698824269334573588882367001499428595492262162914452873477483682576670629288491617264101973862600525335915704102812171327818144201395263830574379209685087348447304064480967193283828129900569370270304069215678279054610154413745744301236424518717270085739554701581351449227182227895396262143015873378588067442623679547217812202560477895908695570551359201975346595522698184228373177531196050026227564117819567809901453993233295872950494516905200292101561166428430092788896576707242042796489763158387887760069800813222859522180624320557272571323967826523787614932025955083358442388709829652018714983504857009279876450986420643045758464237990341379566764053822813372377240974890952393247171885061156584350721695090615292835259711776026501971672970036234790535297166905312631828021034549984603269837617230566388729134418852807471863544191317186561784781820104783782153378787741918776130429216094431430067173649460419164782384293740106913811867696648876840891473259471143292070998488018813354449061781845489993998227423912173012225284600781357605723872549653825206784565645356500956813262450178337767672893947831346487716149055850650330264302752806047501176263320935662734501578356292985229937898227006948771193181871792631380897176700306510514489416350793736102769789649568811109427279733190128559161274013894275346670626394668279089426152370109777441321313874160175443038226193576831309007569779870807404299190967527242809930651437474503180615553435193474144437531114910569710030348879927063803185303924212862669110207551381319322340361919745115134524737891686847403485112680267613261476223480464676029730213625282458322647675611974858865047228931912563890691874813609206408232091695743241922084703978798800339143878298496047515736899773240832257760535922394435262510991798330508158219395542746549342354427883562325438428022236355236659145710272247578567955685711599172106584633158800607718857526993251112213527423502016607185528755043706100787720386294435093360508424059150138567303062156516523268752807957699843914134586219172920410995367522115510659164064385259160471796457045352722565220381010674605744424455806566377348183126056780920719484946224521426000965710485872618717546696347153863901802014395337104701594777097634397713604498107933082822552316205941653894811790006135322049228979938496216429920121204993650864274636529713011978491725960669776250994879310150785475408325893992454431505235951305459437402592908559215371734031947802503855408941685880553007827348533174763827038860344606861974383513043925626819967468574109920953711861012574779228683320809778680757262784589831482992044479811170375875560532225742740964078412063120476665687631294338515179310323104747170749201966024562829352483387466851083416869414045016408148787087168804332148712524521682340872659157019132236511695794002964414676021438822286215225112550911697007067625918068437619268185029917787499712804654875472465274151374350329355556098096302168709223096252355454197000142062094189377366790994646029537992739770933685262119743022475116014126866569767482511887805953632607123044134777747462423682387989207350049966279898656335621795276673927871587484080582472350965062399641433806290756061018791575478052666871724136685574034261287825674217722359070743749289987587205429429845565342191453066905723437634484645328083384327081709392326933461913535188208087077569765334737679113381194004389464183148052337369733642876886691887595431533939906310160399411477116052212028846117684652726087457440021051916090247512809038389708102500103525608780542128417872046798251974694393435545393320605948474431949999737483583629006223427781411823236203623996685776122514998845710254299016720739844740627427921562268001653377174204874050941884323676822605478508628324054079858560239543322399289293966144049905709074367409003764718057495684295113265784433221478876923010831456287562449842686102003469938564135579698107979075504345968495996440151962176150406878802896245790987389916387650630140060970499919381006394643054402299120414637790881457410975250083169915129571081120591349224566671394320831984262021480453298311599871827028272680265331907546328309898845707263686850957810653256904443727410882965281411357441029839063697557922325584545344258888157772146389923442162721207943621508128603976003694421231004899658764462837623462814884470310696099341823334408589648319215408947284848180860192337181924156754277663644075289430694248975527821261506739872241682845487767085785070637470934313117661034111194789475396243616852437721202189808603274366134582945339407044363853430859244877423102682064977284641689206841587254451090772098873971443524147365772492558530804502736428840562453544949265174940699890293322837750468002020153864456171424901424324116687532803683413698963246927309004496088210017894923395570828318347847767578887159995031561069222856852981178590530255458113846958186709499680610487994189795541081531155975606128479463202702091991117968455249150175508225980008833922930489634539715762951681314404786957764911018053124178370981264148264215511065037689287463172892710780035603630494552756858835568954548552815983147165824617152044213022572152900432892360081847475230957101160675438267956704013059886001907036439008505911415218065721940073553126776784755199742371112616632561106339851575367823864977239053459099821425959076174755106814797647704561740664194786147801743195239220046507906946965111242015931070217613101426636186649815806656639567174242731734907344188467063274177485873418215896178880424894457292357976900976719339200666442516601236895403026626024912143002054692842741981925708544230313259993160127221715525321271587594653289281635375149539010205524281298031061430706917657829462932481739491609407470970105595405269982666230702145957225530356798464136764451357138039452312368829142070079240968601022480470020624553590445251894697064694391507964300569971141121087357364994258350531943187970525513581528693776802977661098368766638169952488940430135275545007707684535841596123116737510585912274981239901754643922341528937505007462402795016195770747205862662610840256633969828441218526144023275330918366505736852148527192894691893337724281143751551983211835077371665037752219717717614640290598723750016405889556187876347668614084058659648319496337629379628648856910238946384496705400933994190596242175288043416863321085729065841324420593801295032099802066474191004095610534149154720323589576164442409557612992481693554425348438052834337498296748673013384036017541950794250892170322176541151503745836155490007104934282001459243453388107748167750199696309477356112232269033054339732643291783821782383409734276965331718331349413820695387236936268802846237002940118645287335688737594383974682635725267457954238232353632735685857057710995398209899082383079277508081275305714280266926872517563229664899542331459110512325613050938306635953966534651407270345275133358936539825847419564939812282750900469379311598264423166640926439982173356527608905792352340064660019106046784342282744195923488461369526515644223914735304323584091784592331948465889816406118984383020054108336052736439888538879713766266685131866667549312573841603080745998060037630021661968085826970751637723711428939255441244090932051703024811457100259757343948428036700793427640415035136422781355206548610182974651480400838929071183268492035435012604230645714297247051704532543386898735277146714137063619836301744826535298709915423079717922965068533024984963338583431234215561656884972693049125515390768342315142038568005790832124378796137231706740134768601271679433028165049261045641728280376834207864529334788558133011960211758547645971979231973303332231027221252485693145299719852498943800797603839050151626926572687751195343718482011890455464412989827523405831551580279714666297410777115521235922916727876619952859998150542380857436177614940802736765868200681726079308997039896720335116608652032001948023455929121366966720660859778660787047913543421615531659156915971967911233655216978870787668275052243769261731918140432111549427749880895982458385698507972617718383307588591423139642726508011884956262618224243513677413088633954770468013967461352724575462896824531826225547945228889114697870824201850747585727302325029199591448241376708074770319547309521025845656157846483345437352715219638706170548984706093091259143436988935541202272116382753525487704459675172441497132149795974343174489679437353112913653289522340348648723420894868399048695008618382920577880015042756504057438313493298062863414576306169259862409636066897425948230129476046770184897862507253847745993975451659660707100485019777142809701688867340045257509804723915567149234048182998773866026023328169132225732405664557553404875937918640868675036801772417628257574921064152473121139289318670310284067670349981224188668847831527484809839915986990788927596576151301653433796367833752899646971839132421076853062112520868528863210056424271263352720911254137548777171189997678834469402727715814528859273103037304947404592896515515912270350321560248097106634973549343355221764425613977422235605701170315141342530198979863467368095841755012095342564482480331044909768755666964960584452827403994306804019991775507489239092247776491968948178914047415551171803078541561589724124407034116779131389636739216017185783123598001589015928959795492040269687932926024921227128065731100967377660238795239150934103663389059559931076234617065329364042688646814537418746302050855315116803625439193222952806772829334718511480937244830367978839952768421917126003407497579473270302540280124249413536548632966904903005880728363209633292929367418293586203205643255133214035664388772787774918830826984662889375126922529597011316741065900591460147791117862364966974851338001982214520486848690931595070503153316769553832244711813518224681926451351151836606066480115914496872250691563310246290888102825565642729499585515310418302197150368859322279258671324879599007467208578179390427645232166239330820338325584491824451794094449838095554149486464534306113495892685617867313903190985083696353869547223760557746092007843436971437133808401412678138920899483693268413587618427432753052594948830201483118012749962249180847217632051299106206020775745139575494293498298338882784503039526886151120037308469989445492514352031281029588258017694188215239016997923155001385208280774020851001648922396895300749718385257036525740628357212868091225343355704994060421862129873184279409325195369237630170520763314984511514655856156329227870185629056185668385372398169708482841290511274134417360335461956521576399854708762401891570465206950509755007723066314823575530312929528073047370648105243481382637418429117239082657888702733945303479577116688466557787417686220557922268215390575513720923276861354839876611307151683346396007507971189015152005853873429926754483542511452572521812229451014314365644549872461802705703508234973682059897458941912673740479815607538741570792179655023517662996117694600590823334152653748355467835950415632774344633415198984656230024728639325025794488270026696611012692305959631835386321839383688961842951925600826401170757012236381583850578562523239012881038403706462971292371505546249173323060744207492585526728359223158318507050387801839287495321327355456267723950793679719958496005461691950379792776247952643175894146550300068868189724985014339080338838876278798819509111963306618938481433305641301514546777196580327301054860500039002639690103155565720246199585309024415084706995907956561277423730925201960892461327591890144292679306109249921589304713126877555427651223185878284294469462338321310708190660825964011544408022962077843224320312847715449908058843336139504380572850679669802381391720998247900261579983095879281477613492436656384610083293634671905838779672560731260572602381654968323113545119628150130799128724200934475039056288654844682527465566745057720736108629672185241211485885269745567592533486423483698114357636677882354027403415925774386099769227710696783057446281959226181079354168220120166910324929077645848161084721170903202501661904901791214822792102088531812004185784846413044441004745867789260809981687353246468960010857413032252162804368913673432872863232551682913479454762571073688435701737068662176523206791946069587261099855836865684971284875215818931551861199153719341525112043708850739434924096722680992230025781132393021245389474490639404975722803384437150573846357241255669355498069200928943887618347414533943992254978692710175788838657692587634570915713491946916416180058863192874610511510342692514047525082527946986110748208362931299481454377010741451298182928701250311573575586035533963393781488809195160936688609576996989992298632399351709889725835374785514441243898790607062123570565143727787076698307228701073491546971219403018346859152560866226934760215005557130562320253528372306225881674663756641555581552079059289896380284477035314959116791175291122351202352292465839951955389328220025452674377317346393506279635470063771962951791086771743988376013245411441047430615995019668797646246453311941943061988027118384315638224930697376482083742797656376966567556959300971421100709223333366660893294095176693434134622947277470534405533254628447435970675500273707676666092765000741072493780152523902678500050591855946568414313787906834325641076835671665460407555587278711126781730051095750436670804961956907030558277069266087161511743564746843516444736696649808716653549026406183203693525144296816811438625576364669798614344275293050496194166742404993411380237675168966999163988865029877054194995475008130469169518719538049915230325875049439696126968382696146328396259198661240564390852721892325400307350262346079228425104846540139595060641903557887651087724963292020511045061356154666425182680528372784032814141325250558112972893486470426661936509494905495099615584816638525042730225272850557640672240056792325761383909415974221410294775550155481619330290354196338326806250050411541698824495712056235489016486945938526589791744073365972585040001477900574043714473681852419475694500301529138022933193809130154489310484736559506868836473043182016022338459210553052895517039856561946704551942540932932533481372138268844038814476267919601989774411995587883352026332923375421745438502102565382232678649423028744007329006737325923004719205656314649363665660035568248328805600701388520784585062182247482208923403111862961019938096474940875049214165438626661605414675995735267356695388736867481971860302152459038256033434224531187856377745271982857618996030976880536842481052965585926859249883436685401774800306058624839222318029684025743406054473745013921815465531634245072722973130278489961029273734583972705222876850431934011109686688119509201199423883807045722140703979384325467502724950463656963251996410739202778805824823350810249731898525231860236785021963813950763006375115289783161899940128875308202872146311135470830356139494981752766869714021210561698773110910970077191473536408849054849413001233796698848097567307152137794738068709684553289287049940312508330797479914246524467057514719464816031378171773739770342378502161124262413897461250216416723861097396928673452778866990256845665330093577492687124846728916338846863330923985900920452388749242857621627299718811884935990804722889118421459311078076690786935963460070609054807434613839606767036688909989382418673118892171981873681721656754914386036392303724606246537721443971077398864735111307342363658594925396641161309849388603713059720537780214630275074940661277129974020372840313621774231931981390344494736148280269061012769982579546604923936334823100616622221653985042393277852984695413183602693797218810380489838824490888377067411717261322995972078823017199800046245348979191953241030936095637405972961016813301873966703418060056259318401167341601249757538199824557114178833990742528812301286290076261901816627592976996515534459016138686026326643303167710888174931974245390522583572351075653836930701138406384218590478704504778760881885984503719819768435385788112135952685915467535968239189604895827014179832479463325211170467774364453168620433812866825515721507794681138610368891827407187210276610812937342205850465927622217919177983139099556143548630525845893157416795734282702050364520416397021339722097869051974310834511564783578713296176986637418264457861998878089452610370254845002455895908894353778371464937601605568586832039585002320610400112565438036253503034696755185423276316900128435487824730537479131855486427605753867311618813661649236569598887236767787590884216396368825175005105120620885246495900634514123805044994404734838299217230939696342476641416355624628683835203417062297604352447058381144413370225353286570309718596167938216941815952095251760684450203978359306209916846023323346025236311702189160920209300846068813035975366545370997806197549479679798332342394519875196930295584598511883745656407751860052442227374587186786789456522316863297934966728100774203923472468656559467375464117816980959935694946153550421081157209158006812221955882123450791827389127457014078145737753251376085057862193292405598308523716423671822787136305708823482965496269574867360608153670408797549510385663231747834518623814846701032128377572275791464666304856382726348759254307948613892945579225003451887019424321101827259835158099448904384110335911485163666747709743786212527688583465720657410524821861320101832323324099902048767450453680853592458861732356117015727990423431485463071131817203095301439612714269585560698914073010910979545158253334903878983969091270844243892897070424177550694033169053634053396331825541218292768067993070037489185654431515370535211957227132763205900047301303062405862508063374954080208047199108204233587238445832135652208305446543237977531083732282624518682326361575214788828004515025984469665628695647615576510200911706722688401164612530148719505916341227742991212588217192110707407077201708701295144117068072539742250864542695040377390255422071193554009885656355523929777016720066149695437593465839405587844136232099478331275039510998607938517652916199836712322136177435742535873829000375676266382028748112460929726336221092688101821817554261395026424957639175950546551432192127431462338042553575095052063934096817994489109553915656457617305323009771605246256269226005065949572276135054580790831419925947888300446336304547595871680228746316929379669438538953063900828042941275177542091122930529056148021821730560532956298764206180648625052827856523788501218063787753864473296418084231250644668240338783816291507693848113868663875864129908180122167476865855651918961832094186622297479921310620361758857974197815752475694851975831172537305613059013090494505087106500284957711536630208468154512332792510312621766674103059048230146481662763841187603887183044056824534712744675785776406581084771249862562992287162083707135013995485879140083561890029300942626660592638126040263669049617201421335920530695304017834697853113717292578995557479341343794422903078426482958428488680724285598810561174201014700282049545795452336921207273796760005522752720845345533097260350339574840334391790730490873054554918756133749556974821756882387314839897420772473732713996930732179641236700529295376667139430105254559181782701047168995516325560360486921962832538689468065205044456165195972544552140190327288284179166569018334673299639076923887491351286402376371549783316490078430933932941423741088355127296379079067431204873045886086547407820798077253088870322051153115946095746420362063973270612320335648910095531930596639724008947678184977457418253759760281708846457465416619268395491542753299380546337198842903511312024861272672501763040372698543141594039192691031979459287219525215426237795759089727183742198561364747861139141700311829123584746505613423344087705517776445538177423835640004382625478927058283537072676627248607502104137855145775452416590744298844930246013627176671257211371758976315318025927362701385463628530191370437718932700407430549935769720516735054420968328547209997351318960453027385835493318229359935656759100051052566228386076584531842549451836742223974348524704632809359799064730714547705206854190619219243155129198920931807499803924983281024509580799552219707921586370623886849039466153415590175219365293406646840831368796757314884743251270425757168370419025766601948535411390034587191282828610372729166227857875364132056142195783315849537627187923663787129204861366558485412068695610154548575652507709586096311881038078964231427274016669414211293059048263102515687126590303719982787517663460065850721145335083626287067712574686164603805331951715829533274095624791305014400317047575452476419664557345662474358122825116128945959354245533315462094385352483502000775720508909555187147351189129206689560682775536056127417261321731892532609692344238444577785525105604291099879624797925681043154126848568773622901577864972194784695879008719169812134403216001290864825523679862715611088823033279260783864747119590443843563996854945049208123690078734684464858549486677696574398607183754241978943592726748339383292281809078307837558254062101451363705191736832086781855950127206050217459104671357309343167946626045209702727283851651397460718708268420727443011004574162093817952013137115422766292956864068920014504598134039850433133529986892054509768090991375293353020505348248623679160589207513271432366611088995166212295381955875916509578302911133199341222194062348970733156909019062682508555311181623414440209299914012401203851969458293328134381188333399685544560153602907187911585721540588034057962263106101889742580140364177475798013050935330822319749363772141585829188873921659926899012220898469894600218984316951991881058562231760113147994877530789938589072848507635600312213685193853202480176986946209745828366615972715701437422180883545252857004515667660336873439849144921509872776926073558834140912910417423905266126768704079481940325012488413807349316540508663028351481189639016201656747176547534115544076434633644237668850265492258745310695781731609146862018174543486954800466538540754651254469961487150553545478562469082731648618124311269012609381005681383839139898913228145040527785093838472649926136029882846054065358416069324791857628811911818177873342789353488797238200810455248256216022485913449686913974257913909478198868838989324836652545698212812981970630518902224088748176213357936146259300131820444571041971251443210768245408359179280226309785728488577490355879589327797193703364031246407697889460362956111218960027230725911842373876421244319541686163205044920728872144688046947227829803716474391004733868517761416109245576929958279461286311027763687770609248405577309651300122971180191914314101022173894223350660184230063741577237102635914091517607108665705976357014849144061355731653125928893468171996861281441352994355479220013228801106994810394008546907433956346581495741248701776583630400139076181881848857269215511794869018462674538427304005334949977122898699664941058216823524012331552645518286238408018950436896858072276194416751145148203177462029098290439645640553501207144365760436652718760208789577924754546212065958901522899332442826287089698327339686884995180737186345440806622573408104236310279304482539331390491916026061435110637154998346461258932092005940858783719520676997998979066794711204100058318545705308939953974761925540965187569871544324869252166166860675693223934787829062036526597020534788592442452347531563034926348825509813639834674276551203858202295343621598950024327131504545122073535863494706128112727251608998810789340434478490395319968923065883558413603179851834865032175075716653526933107368006888012143517859882209270562973538854791670553305160903932839997473488593565170850687987967176693507386816999177870367429242528274168483908790808482941279402046085652142039399104530009323309478391462577551560737005217702566255043324713690925830773469665354302837937579926769065367043144412122791259303039802502821755648159002533839846740830954080387337369278178463722640977987997129220971410660777076062328952241243215810711226250993914315057055846860469641060664122503604261874207930983548753965084589643473967259158423914215981374291121008050654879431571806549664309423583159504210000739168798710332881441274505102379382520243632047297284086814633241259331558214707550163454129396094870416941438454244842505962119412055848225218047443366197058063968599931711384819148315051336904559919155786900101918988047816745828496309273105188565586765454274647734134554421113391595161717781258222077620894628655604663730178891803135338410940709251605142863591738551162779075282948282744051359600170549143793588050110625541819292544383118466267279626205678006325128786866723413208879115138588897693224824578176269732575658893679538871358046501666283906816646036133532082857388362461324724615929931866524354946166723224053347590835834441630288548419169800696950172897419368718995123768027299448958898345324388855781436964916918950760791777572416687868307949263812241163064286637521980445180134141454789302217942576640035228134720610755428109740439550971374564360296360659503650398302479541745559573390625608773364641346391075600313473325098788337768913307335451536460681642132352569923632418820883298249596577244195634672466799870756504295178712087662386806104757233484856746171421024530562252040135160980762025240114997004609468252860922387316725678069492609868994003204772541017762210388398395245820948150980731833119696580439224213528133400589966288338275711580779289619939522405488367441396166046008831950230967577341034906260561851470576293732405363119217506246870134430924210937398414445488224025153352817067769180931201921365581725152354264010228358440327873798346802277974857296843974943991651126098687316634956451526668337836998318231034000941938637413408405690857677941762357689958460578308654628433907322224774096618334047330432827468519806327760892089716607825211892926425066169558412629264984751113631391153972450783019625343804029074346951152025259298402826212538309945951042774364979846057166515033518423057328763466274620166024257685706093455041479574931316445974477276078531552509904911269965437823287480135315790740940396488748388332406858526985683995483868623561263045325849373519248849140120323017906866949594561377804514079954380586401623125888948129709914683655384024498474293712485266281016790084900003644442159793401922193962523385045737702167148281856914157861691948955169581809352329745063896614216820056411375915903572478858932117267271010018428516401802661196125039416263399752787594122530904985032353995653673733300062234031027771900194068992161488714636073664788178797348991402246175342107845688302768038104239964449728788121560517439707963578030865098726299042979686514835476076059423594320818741195902089831991612970566412813714172947901477781953024035382762727637646186133290316428427611682635238467409666086881225757057231026513181221037517122071566828942282099270647638774488981334893783182661116970550067893135137352845613003952925011562428283857769905581366319307534130305730528251502817492211584349336888347832700752668666532994489951213754464877216667222777594709577565721026625152751809592691558964433829099005776416807104736942652753890992656681986593791952200256773230950142443121616135081682238270940468030611647754516212286612575383931923777143266312169961528545286421823043585837082978348378219171725726683793208365855806924544377817335107741118725038393955432996007516104996357690468652121201718292709147470967420352337828974458302376007085698131289438884064373093017880726394939187999194371225034102823738245848760860631581470421171073132528877169048458376921879692260604194234625666969243416039071917665567327054902460214583927278756815842594189604296365145322029556697452024011779845425340346269306924831109203751037271396189748994528615764809578433100918486627303487814446405860352473997494888592330272708646351042025663523109585758315339410054942484854441840583913783739891020954026127122882572395733557611841754256669175424511855909187847135553523225163007620091819144496569971238819619253007308417585594147559392384822472520584757823417625273845911687458262710030143519388631104533437705277319384184767386163599722699448080997031009162533239560774882969208332183986241535094509197159246234502517494186625792285855732016961657583758844472721209517232341505414731339687980106407815454711746205007078293959993331235141058344542146974969658978315604785498241390446146688423788643964779766774747130405289698466280801552203012868337004846135004409482225715556147203850839746661013960132185052931961085919020148064743639826321081161559268081604233685955812573483324859328859735800566231250599344566365743845789515305795884915701888075947302521360959993652324856015416617242216758048545571014471631771939689811424966311080983907781951774517504856743393465900497287551268173389528623685160689013771522075932880129355898991637635666636084724215352452466575933585171667780737637781249830497334981329400582669384584870451350530223434291974027724877818705721528981551577010355765473068117257781794266273367095916497974665591253872009432259291890916595270088266855771606503809152963757831539380325096056981556894958190382891766616901698689693241560149322683473176088179957204382574551407384140917336158489311258326550699297910569257777744141415056933300453850730464526172488122680421785395376745872563187852783295744484409992121244903997177429548676608094129166521602567474221422971858080505785428502285705374395610871688648003779056649763007266165667070968525027155955005675839547627689937021615154515992117556654918161497012895635037682574865691540737625298795015341553874063548037216173409765329712000924378514299255072077277995995382413072701970174563128351352686214961558057266840405338113391892597825952560420772940593591336162853583217012728935152204662964078093933678213135490585616240312985574929511446301677190373592467276048082612322795218437857561148905173026729430020529820306772260826057708782573123473402773078440341471316733575132891812307557069868392899566269992400965248564197464816984835946417557627977637837010186684362672749383680737320731503026255667675097318477985449715555545852612489415124857135019879733633611377527266088986511184735246145550506386022879571202645740556578880050680552502108698007398154763728604610805884623857997050751784938182285815427633136305461158793054652742855034701896070243911557510190990390399598600770587162594830790682742267454756770457441589637881607296565210281288324103580071450320900370784420334911198641276874663988359455094388382003698978116029055832282583313651984618955532374945858048013078519808554337372403018329370902697605182599902791827832858963710321903173542011206721205132381280767883635863751758417895758460428541858322123343400298584378812298324971251416616160572991531678057430382838788692263419514402581514275182410961306446511967250205583757554657022791752437919640145102628269001895631404044444838650521957743220619591904479809189450726851255104369176584494980949891627974253292749327331235132256417582209594330060025094052160361373375179125220164760308887694433462993758136369372515872447475287476314649706850919710764459168885879132446186511147454416935462426335030876858818513320372120419044924493969240046467747139056482289768317524747157079587668770717319312690308684564920548924005737745998193476037536743294487276680321874842444424206630338468107770703051353116935719356909701202831049232378637478850373785456392960624224854146869015657925859224117205597842330651833243426872174478952874025078030123474807147426650631077036409935135230066781661296870097392105171285126964426899530066286148082446026901814703505073906748974327671104370985331940613142844037268400266072175458830960755023647576042438549390493273431295716686059987734260570732584347925589787943587477997337673952296938663985653155157529178901345823662711203453486562499516129079102545749464312992261645933956126125476374654588558690225927650273561327717115588870683380005071196476852675732797430634022093384714857733027348694677713506967774643136021814786205426039652844141354740427093422811045339853146917295298080062828965714357686667703136704057614807375905660100213499417262643993696433903223434935458316748805275179828258545343283894010895708970865467331788311907906507913468266138221754222042039154734895665681676962842856940322656529660492861944790688416490351030860099970504133594161034791342994348215237247323888172036486759667470540333130073286726441092345559500436994996310783806717925809883082867833698922289541051597579119337322514765475121471969608184744601163171048680631230268036601239925807639375090378866175236807182669571967300195397220507650688324433591787572170496107557830485912714253242698868439710595827216438370747617694727078535674971312149295467733503534119265359664169089277011994099778318977756719831222877686485119460425023785377307810833454396480497886006913879339094080244651092347896569774985270322450630710492690568311360704640044418228442334470419054349329034959360491348267290995680678938374003263677736943241406157198348217391852215433419415748824172702451060867962961815994160109459420092944804853846540569546168898779229008768918658352948916472774729937595418535961044406019424743476013467333756572964916604577127421269312995324901925853527630675125240375130660544145323534803837837937750757196730764110095118522190041608279116440382047021904420203199158312177401141115286816799068496265375278424059269915237693854096441225741047230243673216822687558209725668448714617709605295710528058120397409721359470579222291074770581448121417039009279885119932942729757850724129586428120438898650029943345532791384196650894492378147965521675397363046090059125641352555884716585086423397472096237165117913510175659324408437512546630594631280789486999251325613151043790073166107985429607061890397368835023407257163777382416615020192320148470017848645265211461311057831422191745698909536886470026369762773492071712626383484245556175322326198052121122285220447847397320543266567204136203979651639186611682866054549877159804579933784286004207808423049603687565532618242808534334901069568108920831121837637819482480460860393538866474094021439957357985758769576080951172733195550978971339464231917477629071920823434608975781500559304365398358505401071753931509745294728371850819018304481323188717474377264731759884425738565398727384396275008161268471334140516328391348630442713070861171800480323401131848911617581777859873360027261857054036125755557977542141290482690142325502036168415528924300144871585894319258682995148936926986589718969247229555061184689799038108444969353586459912818004382661278863812894851521168070348901301528539149178771665412370808430051019640586530715946264791467983821847537516915080684580345101592394796609591791138767374731605706710245251522259456311462452807688402026061384733365228696021828972408919804386842283172049544580733700647939860622957780820621476702802833407545454139147500746423635477696093654469859806887465307745618832722273153880112078853836381085703758226339618543704243249964698331867214296598467590860170838818772870376992433513987883283277428194911057884212968829913979560249371924708932476375785300811301691718024479801843577024904867705097024923867986019852730321828372712341478802940154566970663667085714708474795311030361203604674605676429004984351127735043530982092440909706268902727011957297461875767716716549147770527788948997552162527583598551794467352645286173274715879786821857170299916983265589117407232998950984777635360745242636190379118335987240880508593709365794867200822342946108838022281977567278223542338426121519811601946226722240179343510968562795829488006576086145981155434243567388374236161653171674268314938220948058015779553432856805313469306434070051540428121529165452411111151955548457031111911704958249074413916236031057150065161385227013264920623027639371543391550485234755626669643539162400458352957369146794375412078736377690109890726717824963991579729491013311244035705171625972036015604335313609015720291429080052376262480370550907555628983377249779323188801350977458149348608834800973257024169186110475838859598082268604535178370197884817607007693928156443133213766501858186572023401732858513623343093329531825764349636276273914034728404992561935947862790789526264788083807936909170534788475085766926245574583770131357498148949277908955616136533370130183424162656634480807305424932552354868869755407338445296370128555091004239060195350936271627321712970570749764923598465284338430441985026219505769676304454099996143298351731239300843185275029451624249142474643056752497357824064601336543827389319660627947213768038951978595873021621437642567177870391237331195225193451088616888018695617845233477402256140340477310842076723353994159562916885416588780333199455259974472575953140163294957413658086363494833092084673322445616758968661268967324403532095095874035265872737938854218128145895284567284424388848550012007899776972024531207044954830929014766921400481167773690019044371717529811040747997338548571082964790891159825117321060517325506583263027689346029359120298549874044977893203585038502502780051358141676491418676655224393696083207460536941820325393844152903600024876208610506270538151106115360441466401740961440880689652016161307455530045243472889643006942322165074595943832768293058375174590618070609573836876720502920058905539499330815680431807953238913627319399071485628518553735449819588382691590055492778641574130623437008005554172241299091799683129570413920056809318327980546013637662532736007821105009308767372954418798193201196295293099531518212718910487903499443744321447827397753705841262658431069910504299560017915753907088624239445941920185425986474248524969874087639055887389177199852063306642469750239943271438765504699940279033268081954110128104810733858190757136847756036941663099646146643157124983901980728628966660871635221719334529050827587940626479519886440606516859521792014875063493380390515488501676895135761448350469430920935814824619988920100348511009301251179103368959839152387240348330842163200583587237901053705395742400979427351246622710043051743335845476503732495956863863645796094863067275180340965994103316945961820677239353881071928330246666376937909828525724588795638450690360881647378216715220665596960783322365750294838430672819950390089473181378769105927795829221468317201597000349416453769519126278979443110172168805299801611861557584246555876823299613184393958286374042299717509405217865978587985046624922037673270411279750463250860415181289236115710603793175099889138826868394275866438480566188341307072036959011317785825484869987973758351104702117384699430959412927040439942764627371282033162994396755270772017161675443116924173618152995285105046983879906513020151788317106038597887772959415597583220810581041228624918793551440182062521452679628625952503919889781717100147603837222293953255261833027921482991930976160100721490972226853346315900973299122297689089635052001348449782502023201655487653144077800808041915068381963368964847133654510278502510524091324407014910370843391601956939791422672606227150910166688328272165978811513253585610007091907455089747396701925409744789544410816060635850387258314349026843166918131625254912851192093284948564005793141815805206754859845854809516589509876700194722468779086400426415137220050837431651641353754176174924743335410995846028553855880776883184636374264285304288428451411735648170005026475313640204053004288340785036422418895577778031337507569034292685313582989019932254417713490027517939931656023767902784212927372542314368469604929472106810745690362470614635500888755297897229816044670650390586366035965164098970798720842458356123831085387353308198071212967099249328229208889872975554684684764795343538879209759781539890586197357245293469951388116064196260496123961243914596624964973574680087004517214193024143243321562602876713327195674431687375267087227234016375463087409048533510513746188232415542629841577139278060302193423667940242071170024645912858255240396885712865725517979896282175229515146374117824984078787365860518260255018324268635840830500928030558763859977753087954557329900780290595122823535696763957527217670943006769517718359120550587262473423489103432342184072099630254527726092034904135607573489392752360160674436299421555948813826367847250135854908671796599619799505393748245918724004236428663943540624094597211592802501953722972639833005320862450519111727724678123050483837970085562390657420635867378509314320859760987767884737124725475518873059619568310234137889174376658058918972059648977211082495800684215007035455614224408597120489744965565163743680792867443240706848781948424177595732840008045363755754685260508246120532863134545123707965672344391310348097831118490857206770412425733887656668999393011101989407779000208288839237755062248197957276855491912120137437171444101821886120050605141856793445647143483071729024870107749267561877910123719747579427474327019184048132735588368248574663841275092882366906814785847611142170321368769581668778517008295923672610999062617741735573381665391389104554209907815363570119470794678806713424066149447559488686065336562230807526399238150034102716946838147276213734225469274766670643185594904131947299676828085986917176224297164541414512647715886671049764359706447472699034000287876391491595159252398231081469852340851192102088877311369218936139618348022245493796166813846106649731134395110073524821429928482027943114745898110656354248680754140151395436297893992013234417297913800223920831281509585210050818047773188426298177680510983141384509498913282380100986850004065431597274771513412620752638755350448073415519309148859615633844563704115268108463369619143763824340592409336985541933668182676467009270553517613354438255222293419638400944043317171814061743307070076481163681638819328097443902136789803581516011360879935869316311903171673397000356082869330930392535080053637455555892248603949654121182769061369931195454361352266323619919970645305827482645079554108156971642675729805621714283530547629081791129547512830564335899715941557843529018387413327648915872123905590531351956440065029161803231836153837345626619828118936722355382467457618090307950387150289440672670574420755422177935473396098474217049943399196375389509272442553672743761947125652655111990784128613581318801028150636528006709063444819926246218110832350584445619373093015866892420764307367305402338783057850172626480423183987130720283141430820010894005461375485188172413093923441169211180347613092640964701141518450603687174885372277105490242942149218648684534495075214424880585990588313539222336668100243548544906790846989635822495978562702821827482068639122051607015101491260955676227335816190693287056854529530486372354858206128237850662419968144629893850157827484653124612372857370327799629648041534036094611251809598962770926854835689830136379671772442646273785903074513750404825228403345887082961282212220840441463285835631355973017267929370749920177332176531482406813242164573756727811512133128989600298999978605439527174852058087665823727114654754081086809447173343062045313376142388477889429231657780958632252377026695206721325891583440747906545978976043791143503213438087777389694943283734198752009018551111070928717544355946160274580094999297271393840202935245687915782057319789338352835325649359855011109862807967157618417664920922348957080771172581745722432746069332459387963217093866526873792776258547273474048890574283496163431696947998178397523498067659465701524084097626292989136241310091561127151816725368286801527824873221721797116925619884106354043168345908218651240408484108680280368363207603571108556134228640990262123168101380611112897586881073366607410808017714708234063967698124964204900526190617431884804356165767355126622580614777563483364089760650929798725925789339817854101420219593539225739594442189172557951411621111856699620381433843710913808571727266067547672425061734626268933695517239116390724351956417175807184292001752592929629897321966139167914311667316380545415017088098534834868935741865252915969923328961137333595264397462582437652105884547352853614537453205696068868784211692768395348678562450614099117918612823898403290509892138053427666917680628819176479357688309545303235587439990183113240093306326350601107473337826505058511186713598860572629310020331906222530592828368474557731856302882319380363048399827260713973527028505448552579361665944154158430159091361491180596559786068490624078644750825368207172796503959450602052344952119017505859278741289640834140476501156539200282468268742792982010583184767923714772879855432376105029602796787095885369037062381421536938759907252567696466843468904018103419763210849800208544164920557167159104179418688792016643900572382252389581674439030663902902645408978118824292010323153364592928187987102852389753035888033423201454787368764435479899121830607597910036643529161059905640878206953509288216999808757245728137058052407256145810232738859795896676620982555016070579269705990334071451635965877705039076754270377612941698351929103163648968704288891456931701225611316744792069502565716024358736363656447140712692384978427071793488242269466333799845735751227307105402990412002513668342698929631506876139892052071351253059204147166780079732490046091867746878917692948010103667405940362255691086259741294053155674292332783173516031760225178100992329508325346359726225573012649307900175390383861085707255589431305719211156167593073742761171687342843794569639680272352176933317359396590418805085910871098837536293461297012523264302991201696572805450907054586256041045295036765547872079634014108955269415927195750713034758488295833719696374382791283748267013149043179362734335744487717567486596767732317452835856897086617229950572668572682540334546634975406597202305607680843828527197227009911485436202779647775034533047093064141101265538094940972765522851118871493660113134561174018148830281576201391046747939459825659029708685895962613733157357443373405024944004471609111329540405944677509904818522969936581381279291251756552629259585798811131903545816666437000793221975045401813893145550096576061156161162214223699837056415674427974048566913670260913600857784471815936473588703656245567148049671776133967780640966092608717115021085720533063040597279443562356916012012148340377536294554163983426451383703611901169919604494301528983595049236174603340665742215772979341221608760970412635740726772141335284654860007107009491570781695589365234211914953834073585081516994934112044943358219945455220119953249460756663355786520616113831544707642683069359609295764267147026972030103610374428859660062014669149225708676288095837300229828840605674585796393281206287681765042809343338852364544907255597141855099600643018196006699145583417984759684269421360283148863928318870809844878497040498531358226230369596653461568182651112238392987905571793399059561584436946972011687461595948203745724647697567745411722921251309631934503566760466635078022134904718128173293732692151516926272964147210775516403005818389502370395386668544823001778459241698350272359089427463223358843829968652891217933866839664251473029651205824839808624171634835863292346812271403273800838055299125459514139394344755367712639137151909572117507998656374820857291525340837547585533880482320673333929601227836507493489405561915915346640065395367410425059994577438266469167014165829577032902002998540731664595511682004353160016531818593320632870316998525444912225640082897107074953016381633277148695901626908182604827871099318782699197621195507793880060262000222999616249732042535886898329292510255297594848898024628863386001732602881647088727925332514670652836907148297787881993906244080720624907559043385066477865812154312228952698841228664243699306792859186321208022392990843774754955355755796611190966727189610902429035424818064941466399842347394630555349249155980786219411509160214704399986753637137801537032085790239701117416096684076690190135743001286345540607658769755138805703456171686479101389002381808923710977446613238769751831476364245563037008752030082017277656703334978334591836501926595054633864662814881725478758239648782758339756429065279363995585037715617148140779992800323071658157360608913574757352884638397145896145029983730765609650983876655758886348846995600363255930311195162694938999130303106989369675930545896856854080801466664341160232830200807996996054612932892692284934916639646343892893943602547067027444462263162093240642972190058684622770475542878256689073551332644446740229553996103009948987494767855424013882986780990499109715881765093099476630894456995036422880150503066294177020438950023181358792106811055574371889526106075694304140216825906197336869567045531553568933774903139715719177056948137828718825860341542223185507422416206865740001620695940977959778422880437906349630290242370416713233321067488221714980675260066217625163132606273633345260419350875754715503155452946347206552360962633169561337665115444256585606957674620967527417505699005350930391533093462046082543326564499363440078653588929433479084002655024011559250268977389297906434076532704695889478665615196587229207023366599516445275952764669036398397445461942829152644608302994012873718439011791775330551116690075672113816444597645171273516539271170165900491114672926854650574622366910859372077599022524323518838228096267247906230133833405794866103586437521092230366132698786584867738443374425222999910329625491572757737242989397766853343921388003025793628487857739423131399130743402764482046801353807129118328850597927056460087851540757882019277968809731337864121029298623776443974485896293640669594779758778951644830053275939070613775536997823778097167891574366562860208862411499523810946234816359162929794578852769981624527222545600548926098157719570553083969070438719161421690111207122378448496957593954263395104306785963541522855813719828983501153262510444672322277341768013318139672438147950930873141491616491018118839113519336697012095385459100912822034513481741739559285291883037327886689271110925484313819566310967223075372299629348410974556913897684012295337356475002472265585405543893899162342937409321436152008158566049523915383593536274292508535417142128562252622156173380261938080434877401748020354180735405519935257799361506854405555202307842392576446407150094900375476500239253350598504540969543848793352188205334875213748529423225906519748682310869868093017276091195661649987969835367941115803750274824800412410897029100421541445284311091905466702403979137616894441753277058635694314266693633270353287839556201095883597190186996724458402093748543966077376085766580137943771414150821666906979660312769885532296690844069813296905818194153544474228887489064777603182354384752297453243563406600600926966268083485013217922433274848860265696331033382394598418564645823793014163711209888838457908752202489525347488629237602551932691498425319824027971280909532977345502888181383449715467335759697005023089019688645562635099545252860977442088087910289379935359767309244317328779344906905101498810955597342935112128160360128976905458907365396868340381037466578467248657197218050330720324014602888565906320539659275244259032082383739934085969023584718739741331024214530908560722240931234571983657352998529942282923019139025380711139490702116605927997406871439967367440707646547516042512733311572366814895877571169554065611134930384678953627488285461080502435155995943362802055243421916445549321601883703744555676541529496286870062827592031684628120442642623182529568334855882103675031463675639563124296791149484792342748188575456755612860667901423818140801418051163848403874827363686974499675854523205223007467454058041725438477086424510734994746999984728134025492020551617145849356237667352466383606821875924892473054958296027207064920453669832950557454853803122535213445354183081542334550712939857242335105921019420256570960999448904643216052136023875080186123142261595219903712332858276545143010513292445278649185640681568089033952250415704860837764301057890831379435499665645761249222785073921975968610600365993534153107571097184826357048794100421264338724547982249275138383132601559459660168312428469883342210572216632978672821668571285719753781783538605035597110422182043356294370680887788410502453893399426486502617660475610830297295322601545497494356899746104101311862860590867009844576761631381206158183600205068322378231735192255190373883472796943206922838472159842752230961201979084150882332156953212993377810395522733092087366186258153780996432337039371841419521235436180146688616509596978646762686452779030314918900873748055713437483475827201550771973383928926929864333034456343135310099047773917960760733051451595430258207498903150537769125871041073495757478895823517312716412808860354990815646433551051396926005126258653308369628811190802076835010032095265506235532695810561016908938440722146475785683390698661872765479554117443558569903210419172883700100016299184085395545276292604483090226434328540211561714105945496616971475285005769625518296306373796987031643971216546966014445243776380990104841389185141444366487417782231593695287778248517132361561501625874840985488242419371239313216969789684299230217486501837959453534066562500469392703466150348188236432505114331112383938105537884684738151143807226136546570896024707801996904565440065707513398152733296650367966270232092488095927679126520322074301251910986733501300783117986410384663807476147091433908607069485218521915704720795184759242829091275932587986305388744448921704890507160969084305411290860111373256078044933754636534186532839201516196847461812896035589070749671668631414652137878444557481349509484488714763161644823698830623527724751628166802016692208503270791109226483507257334706279331433614762817514281932720353422422368670670495896791193476781700645910918136878549312487455645005791861942202541875682977519573701612240441518786580125031840735443435177217624367844584399724718127821622729965954873352081198963397811499755005960099581258773551994954047604736175249340939671717479288244805228192462901252129250312754760689468973261584093022533266284693617576468468734109621518941395687026007147213172065898568910095913823103719933406525723598334728907308147089863645897434516825047479629405107029488150834974042801623124235784907605720512383007113754351883383809477925520430392513559220492050647335050855788921232634016887488230726286666609276270939982557640577892824220255851887235484078475673894247244600533968231857634374281518195434287599552088646163287220756405282341848311472710492967165199561744952785213567701614170822562707330774973714577388557601796489113721837498461058398731540209521966817777337910904066022380809299509345778224849943037416154063469637713015633498143482802824692002778688016652464675092257036727298254279162911048501041713464724433934108511967539222062629636230446477287515555173094506001969734543056005285111639327821636134430698277136138769625166608555046371540677272982425387885624961185186181628598017346843339318987904141579494949257271382522822213859749024634082791156007484314689126004080367053166182223390634789697929999471209078798252621933326382256091583890435846606663937150546935841766945909325256239968120758504335262860167148998103654015217712960112629416679536565958796140555923206758896271370224896005854918329430465959361221990508148874873719159977633444614005688475120471780801501295978655389999668703481249697458871003945468926267399090988707524085443364174762232439509899218915341499372373923072347728574396180923369857812486368571708474419414320338027546871033807284243485577377449516752569442014811165899389621929486975472709609687215952644967647245259807225960047388892233906346869843553370924934941199442687496370167915285432467280617631630838605677861006553541881727083727203524026441777453088471797660722377235601348635308876500754336236771270516517618520654168405236975162126118315051915813537188897398125211456428069423718348248440058149159169788940678290917010122834317190759002910495516421568272246795086763414312093560602872940931859626808264162651641208949136358094935998267254864302757767436406326844170810632484972495306609327322589745625708002093565410204348364531182744923784104922793301050948801134239961010517522138893960194534609803563338849864185601274662980878481545219775697555856571820436626422851226274613675273736570745105050243978556705748743061561839098259425623279149408733220916284955606648337010650073453808956753353769361632051868785886109565203974969561331547614254555166203561886854015622734152595408060608481260643943882599604563679473548187402349477062668087087935982853102482410284697084091545834217309629588123658481641653348398930585670977376000602245435372876846623527031512115764107795030953149307283947167381128527977033891138595136746460733775470481435430633930299218685448897203156906040305509539975001920621589824087358596523311922013621149149005112926749335462747201545484429188906501976657792427281450379238108729731307396808976073671745560296436916263478113042212570907108160771738957283291661178839302609111683053412343865808129651044537446632223062001938300825470300726934115547130639715242618099435903988554546843200023549536239404463623992610660505260646271589346772027411504877683696841319987359782034148651524297374130627299161394769339172608940039219069112401472792005612122617034066841559720811054202716213702319290212902737628810607599167319071851137912336335400668062963900008232058837728385892535137450089909060155242006519489960745897526397178346323109089815661170070898933091157596355917154032418607518077539600195119520729455779729021997255852867439336429738693423865179224802541123072844265837541000996555126087908904452309589529003074940219285659330555203175061895907718151185431089293645241464792452136494508581565884129502717824476566920632834312305639190527187381279158900893329987516038262409947993474968502653707421835514734758731950505653140292884197423147605571732817126891205537758930492018542850932273863888950183436522271191758546575844344099333210698082244829841745996363167729321078696406497840607207571030168075529255366932115110756562541702186827573697332495678426713545728856213370309631028262225085308290188636946022539122172027249662295070803207434164154854311960722979284526653447736744510907334528633206732724807957047175624613211501854071536284650505734681990737010118649454147175431716132519376279811225591204146398499218240300780686946165849820017950657322198488025084234032367105295509859410312166877990333300161119353675046003382104075755309527071407416784921563431701922775156388532198070924609969591235774082747012707446531816711127686975772602753210436601237876735500585873970839755053364756052098395967933446554774793559449578380923215366592028328128704933064006954646705523431608976699353509222735383804006810478973949581858853338386141915857607215814546230583024096066739066223749761648611809904199169889172871118339432719348879680253368346194955078073359274111819420403426157462735052337372167913037267084663310356805508609596527674063107526818770389625929191693201443812965540686966489438152740218634961783467137599174594984054344549271249838202347098214712422735138832312120161331388688279309086926922779993408976517733100660153237823026385378860674798122897016711199722679317306107236024282130435153145548804743902501138727268459334056245251854636992139954091580655857267767415904251788968562796451949352501980994693131933371290194192850709404708706976205281871052221388890998080934236025744380395307283924101392445546281320511727431974660827931430724319889323005003815217539958702414082976396040858814424317328021319766555650183679923695844097192874914374693210282142360854462417421336856518494136803295158543385319536080060518074138195380523366874669238954782906759616725718408451388569338750208264079462467508368244755701472723605700364278597434990959105580890954813039518892169203551388484660314001984220710935085821613553615430100589732421758514498810400384955477049998823321119737689153018368979861252849934843413575921818805186332820786999639998777683596278954669861167913381470267676331591215740996796305169182321343323231954988366316112897013397038320278365441902502626334171607188203289699622130953116724647705415335013969729883112208351314975497702439787273981048781258736775307587514274231529869817992287077987410825941741556058489707999026630933800055448121499393273295289687736233545051726872249490148504274247638749755629240343153948807429213233254112228103897131745961422668903291864063015225250092347535417521197528589376169341533507199557493990023044718731415860164088005120253332836132676637234736577026336832411656408439763514283342842594118166032761430095110475227985908801270781371481111599248535270425688106077105891061346057985550378661318346133348933879608158372429338268624941555031938148440756686381034766778292498955822486397847721970042391570648634560398639795525602271125161051418389328189461231363754680902847760916925126124760193761164821935551023469483171237845148268180571363564871137105352267416161138871651571392819986924639408767858041101364941179584581269473353096810794573785263796217778226956015253087928671068515330555497798837001999847502121437123432883817237198573371162805931291572080639841212979268361407104626875629997794852252741337288345609704219124370027598742263640956034279057096509787418526595085219146664623604355734754688374333242856764137813286291733021237337188840831008231527016147451202756750050000892029983648176706607686994100624232510156934108950152318854358748312655420881314884125046009048380769949704473666400809086327732072938521133012176121007175356005636342678562118150560048919745315555216679754805192919430444744993966313422094967418544643632065351655048372281834321248592925817638933886885838972782653250622312622396583697762701987806302010036931986210391863040194043184166487716455493536829719095798625950684867332681237884566608031718742654638077410205790345179447943996575606648499272177468988663336570379399650990753287090390984036929154254032510442119810231728383440722749848831316919774178503380131934692333496537483163303873288033184080008654515012891705455454737341422632080634689970065144741345685417092476170756543752439282591048374254427319435487969106032151017684687850432209087976535416815554215303973935216167125055927302099740292679605243623182059682839807934694761480884049659229508397785338907476907271458788910146984754273213172790722294620679155066108437022499263468501029584206717039358544335152711727979853867565722090774961216926300039942886825582877216012581335092622237851994081392369483437248000793910193214740661349213372819963629104708786056209599937748320357472441205882486093764940807712062220107256447038833310929565742032015250081436446617129548655335266651098220039282415953486735125934227397648050770281606630424340300826898126829330663362220342524364592379415054364162543886443351883107771907445074955756127853461855556620762270149711261588563236245729690955893248861173392236544945128206493102280510223828254039486029640468518252170041499695999070515063986715949908715402506544016524319379651838888920785678346240963777332337890693018693088750586115401496732894780512508824002511639866050453660699044322267399876097538475278661520630681803981892620321091573662051530287207772755136703311290402533869826743137816202906471708792651206799818263652720109833433627596471661672205075558338148686434060041390258834002373089959998597022715315075134225555687940800073550343665446626015588567943422519869563897764727843594765942524631662382622901333449775709272787406055927602489402070385685270068979479169894302311664209453414076306930266201886976531127624474178732552481064194727982474149302198284104472137373266586241221581414793027670071876416303844677000082501432366091924622169894777716108676874932088419727656410895490461397999673462670646829985744277670965679417276680266243234734734658380908304661827878084172737651294858710398562182435133681047538758100252348372926635709124308733047492613670145501683000261774309133174005046877737532803257171722019624211030431325056957992268661876296361628694480745302164754076776537868580334299479508382848152371090848934115462665447612431560807935508553475336698847199865994064593200782961381884625307097227953112529030959634066863321428601486463237932615024498625669194551798941852442042928524063548917515835434006684408698328357437052053828564051055327689073726691664179565943097343467383473909190410067231721024142298480440726078139467932191345888115712810786605232147157326551563266627595106489768689279978257308282582610807445585676785001547894620101925844222967630863368301809773846455823045975311273663846807282588504243809724673409685449067598622069781150652093685082003056259209750514721674100800860770860882377310825720889109442858328141854254266628574830762619488585331563322441699145388713722667869899791848763608063349483931418111302331953897157012010478166579212680610134669017421904854535579833692051925092975806695019160319079916963395852324719191884994984062332317066698144070732700877130753527532613871556910097293488568161160441235199982108152702707917995946954109272621891147250333124015966138247456883059028226057338579527810966117376294482150652345769087953230548840996224448938924456342633609939759885831971505853990264051229974969571717061606929002678666610878127168425899056923169912570075217966804600356632130351040624208791793363074734757507483440366673976755381096057506287847076119449853269259553617172785022519527260392730505290574426923905583768816417429147661234038532361214310104811839721139963787245820019607902720282120936036486326723821137413237012192958587218226239939393170772204521821718273933872380258614149736428539464902156999342978007634957730463871730955860440217126766801173299206925795324927060854888163524533950721952201015263230519443151654958791093613570586459960735326020990808542838761676592632470639828727416115956938488980309028086568206938791327298344661381223316753179891034270790574943935859071938769810941564122663489167175702964343964038705650099007291673747676312072485138804715993533616939300955711982976008513199211955317473297403438054660968591654707031068030055865252612502814623224002413773014454780208273827494116091339756695628902760938604183465283659131004348954440591772810632289351062438434344425351278880645438645285915646505121943537687228407119489436963329336335118851261597642094347037564710899487758106586872985894173454607656692162716321592533242911463258871012011033614855738583958937616192384664728719933584373101445085382053366533933247941396137647866087646143270108557312683227309230334766623301257122065038613797387023764439633794891959927408702014945589772981844384307541698322358707818784393454480204042222646346516345181402112467069174710362749012943166293732078795816821837089951315161931180617387413379885139407340247408707045235491719528332175384823481853474891543694834698773760978234986156057247318457137720848812922896335863555889830540453811992678743223400954496906380820220944510914975918493688841680513081705461055477913854098006862894521881767120435062890152750626472023710319782145887091537967323067318692847513212312290625330691886656551304749514642820344510464185385818398663070028839122203567068014136350064609900252688058189644062264059946115727698031364190320138254752025535882133970882075519895112628682365841051706693162607932444841097827069987552848629662499992385449323043201395228945061804070833163671652204249098317054922314688001131666640253733142817596900868900103210781937085304001066131156785624171262927893752311833851141051087366588726201754554247084904660819581054975738268992117050043196887420151696375986392573215603781657557049677277941298899020430641602329105201474389030433946227443195138731226193864022650517146370484176246923777039978987344093055669194757371760341612078387749393517765243311402148404776859350889120652199492144744643587954676813781381200777883005705494358364554965223579216083360716528573147714493036998349172888170566984512887760420117329244034679090004371051080865503664036156842794869335383340187883082646449908602688576281971355072039010714689499727139121468370169946081723930371624740472735328622474913096140593779775293405516334222678719056755146866904228445653298791907600115733149766177916214616035196323461150650791949455774830007767967513882652780347632151745056252279185311374085102388558471156988740563051754416325240729299533249250430066537270994000507444336665510520410056299886548951987899834626254606404468158712102331962901361882031241073907395063405853020435442639040827291698037890097272665525595295858016148221883523682852354653892927513755122301045931014330486268779721598941100529163733694185622778905616527101292004915283911520730430054988782038471278022657258056537602937123328745391582301711967850825513563412650965220957257710351731341594012937017326201524491428084398980933605581540503607383249277526005520565374946198815510547221071890795358648628611320938568031868366567265356111184113573281214664629332330045414780899609657420059574162855512306222735929360473955682044817732476828953942727245871224122057261301366919869373228313106668558099531721305497508812228995828209116597649364361920263679984194498161654611722826200331067308421438080261709063719107421439042760812759424436607669239088570565668645640389855081611899837178042520801714540812452662230133257254331482438445221666906523625430059645712924181319835456742713967062855180972826597000669701317432339119708029584883112795278396437843816539540537748010287416821035220706036210939864619929422074910672658298556408012361101567196968061020434806429795561736574575418784483680215345251494436371768095412780260059309272663415641381275984743214169257209806493955891987572023368851995311142586573974306473924669535118113966437237951931469012615761031532419753984713959279873228648874370907549220067742732811786045071112634336474124141864579161792592579342645833838064658747701563782537890518904292640211763406948664737370174221428176374082500111402384788653444720159259474964568853239511908185008817654220491119546457364197194214224744299098153719507502665197221916128328712456834247669740673726051772933165704848638514195015806685628659886447700276807895357325581445105625555275360441924474708847803116340473736321470788853737252398020375305721241452513510718452707591664094605393420488508295701544031817504191195199766773194089341255552780771289826116550716729868624328205496276192531024790412969164698689037552830942928719889009256101047488764537805584514314688281146588260211261779176981312280261318720578938316027737273266333942407122686975514232342853574153498323248914092453324883646214730433615551993028696786645683177838183993569272118947926624399702510811593827145783704986688540275083933028125177190504530670798080026121203748665142760913856475281814050753845027186477437818065407111593999063690076517003554479748602110205761710618199842810555794040533024604331071651828419057617713779533214999500764441035527490645436322762534607109807010708613617288502453904423580191221350265546835925815939620770296031744218238794042937345840488558553337345286465454666065951088551637547601173003020365623595330211164807410123648066658311236107992101114558293435896207061557215477594677580488710397591910621994527826965772819625114205022242738870077108415920108577101077333289621567600994102231829173922548092408171284844718152166834535211521716425861738277623513274651796382148831988224869603190924675315093082293540573791196403379013998901611222261835342692185805698494001113765053099483848927450747622482136454592920994455154644280860713662354656295892422716612349763537083040579381479486933168940637395079118731893896904420895175508843632043581384189832173233769797876673706360528442016544842408737030569590174714551527387412203387202502115425495360664910221269402349308261185087306382539489194245841369106894859838664917893167486089998530265844323649666427270849567905571306798331296750925915637282238375140887372289553917616264997646222281656340071844024407894268404129608118289979529580824242913721495801615789272069112038728013654760698501337425051706816540241093675546532479907096870488778896693757173030224137638888938732450072091936735004682319965375779279487273139939005888685531086985242068173692389470146904103964301835370694712256660328116096934717541353268071404454786855933590399079585106080934396730533362681557044474003188492614426202168762804281403560099191985670506838879671103901638269722804058887349412060754520168052770978566872258275719375821167526594087134098292660770396425183254836990603459432581348548128823619060696653359118258639962816811897317387528127672689421248967536190847392341244555216146987908989903830645187357251001377715231595400413908969465231808756245884865378801808508881849170314499676711140162384665075116663551842756279017682806089543588967078154175823134621301906093068354507402923611282620913974656298746410199193339284567358408850975885399133157950388808477653570104816835553024658332117887208717870854909816130753390723145453656637103471071679477613464282507928496844230221803300036308913127805870777831015800402712000569070627257823578704367738037251830245622034714740458747815242885871618734623463656431682361513024629756660648005201956325983245958184443035040030961166193391442034793252148222002251585796834318246528344692926419747043935662124019396586828364219389817787345864729507158595145448686475479097564016205887423081396141109556853170057972598359861425423489767029847208212419744263953887669525160598294047916236280826751936727851284932885895933615923617554761981828815616561450244589569067607186129317581007180469070656008359529244902734445781409229223935427991102092308505031992050675110802538618137273194953772622305960801029677316212391031502562688435956297803157228503148451834156693805230933929838924078615327562387692279234534024290271243183872452214280286702851252765614082392992289207203512519194241342476499087721221142700916482145422486834688725913583895096458134269214866069253469536228559544863158783879772170768168744642823793384322512143062685709365766148149829458489033935665821071376776561572257259551828326828365742727834268732119571044384898454605872848801882270062123451842577891277554424291796863968775698583746187576232467397491708349596049292974890915100634419730896858014869799938441921567962046874128278624645977895426343171356086695669836646843791100894591452344490759931239182759904118972926010799165470768015781268956510065273048868535502015804578840960037291804408224031944128139605931374379238229311254657308540306935787122583647535113704743297791485237483009912420708651939412355944249505181194369908661181749748177240516246760814900845780128477564304219363306377224097765416210352387720529563609538481932762279253898905921416160030261018014549467743771784405315819110551553624204802029300441698785252542709520443892438390121742372726372656704737971287717622683120857000478277614871615466016680135507653365711664612664914640852350703715027544836337883039134344165842914926703464885215311953291162486848579579258968252439965248290808224621018531612122354319994896757166856551543689030471525759349792124779363864876070464370191900135395616577651827047204493895419961900594228846139451009494763335748476446998083790992991394492070480591142879906964498106446051768707362574136924858127803381944492956589769907745900556806334035341950781144177003226881805717755584560345116031930864291378147348052881484188490874478775083661891553301672596833181707471470215094594918895851401185522241299063735951221292227312768512247144655926025709377900536768766635115466677663815343649667829278632230143188922746380450660073651124329786698138547741182937014012464580256283013035107469900134040831109984733074758127671538047893687651539464326991284427831685543239661852288811655136657570974730937988450484976744546627415158614146594496714384651970131526766223110252093648809992142147463298239937534375099855821810811115897109628608967333588222779582919615464263603307034947587836999812055659846290119782138437911971255597057058559956914032382847601433294857176662141401493632363931597823185703706229611003922662812916803435266683181452114849460246338312982277346102350166543615153290286226681584285094517706058311293218675744577893948821098735629726032875766307446205521149713134280707905960714001391319441569476836234563386801182544458595716069599861149012356380870664226550467241066784063591999514326931230454285916316475770538956900935420767093834087057936990405369956406560637587628224013202838207662794099462626342004670450810234875489298483050804487576974910564746965569239027339271319993627278042300490822865213834530449076966942237862044020251301104452542613872683629795954074156161969916106402811457336524137278035482306578447041608157934932356014527041497704570680908724905627326980122206142042214879809375305837238102003239486024110368499846910808876923231347817507867956119855295950393591175120974416155486236905376273688169277772925517149991367749768052038124820980011688597355065947565240264910306305165153622081297598477082784814016466616022811079231159553900049284366151960135762911000525427593248569063364576811213985233166320162979415738636458059986116653196977977048708430558952756585520445721869473505653225811757917472007665203852221464230704464696150758525448980536258457946823188440011306031904489764492825965202452103490964855483921653201517493465886053830001003725232056400225582218183608417646399953098930005835565451336116122238599826301009756472316983171312042553851450842642569402098144528416312836814678282592542622976520259230133385705030046825023349085605286331987305201829629031664665614310308384268384945912362342345758664600921078041956700423823758225791415176073675319230342667558975904930111639653782454217500011575806265291938747151191673356075567051372189105749359251225380021319609133290555782457443606116595268050563494534724048194740403007822244506804336910280928227234333666580719045185832186302813989967910001384093777898154861722256266375378337043656069840166149100586214673504661416216398983826254373559898149000934176569904904859326855018795412637014579777058000633317498752856329153909447121886662237868265151608720713379167549411293363978878762954566606631229718498388972085518420146954284877257634159463727426058008566979555726702290980663786260269885850345320914820978193003762482564493437520583653473533683651732863540851810969497589939826463693288205034408004449526443787432534734023743834043121779112495810980477320493431497465055893275565039841425130736712613784820875519280271619663785607970892728842421163173229263847458274394781685243309480296089837306315132180431725205042936327020093745137962226376208204081488061733255298771242143068799818376967050503678163607294975993060828249677393113236575837226784765710563568757705083923582599086134724265031789820746201172035317569137607562664419676264442155339920229927604669895130092130154773000183323081731090210683401806665667076925455179013838474844003673761217551738666161213520367715927823542434292315935862297109519132157327137433807501325057762156187197288596612358212125789219123391560289111100334443513552732029940854042558907386956235912799820186680929333856492632632619592635283026043936874277978158921347519216423030181889662264882183702794082809384324852500403169270514823505744572398090656973501705358611720684446928957187188017896652125707730718847863000205630392575458773058564605265937061118245733022887379598507652074128545561006896190426681928407665221892003612193766291207639741400977548256134944101303062786219361720916412732617593928206190333501762778737221796906055234430789172528150926587217132736270868637144502228351148921249565158031359833675786261194143325294924238946859853884880719591491797449699683472939953576528674646557365552677895317768804382265848809152094737571606512223627517544986223054677100027491667047468140488350899258944642644263046504988342921295647209319583528670668481472923853180945228257662496886151992841395999427276134515870881417327925787031568670683771427957414438161353336328131430727782536024168818794941268990251228782737857951490703149753844709433731907109986537866844594607849185663245637592541182055078285962968970855511624827703969935074711956718613533528009106970153305090210519217152050452162437280617645832003503855488835890715391449569903969614891904000089956039294034367913342696243467787573016431884221167706217823527712427559899848450354722923593918227414879410591027317069971591970867728752334318842974926839824077801515368769723664702948783694709596329311857820339471472613965096486526864846007667007800133090428177214677900584168424828658075431124808990423964855253442560115299039563276854845640833900801836229388573289937205785809064929441176446889143481124705378915985482636577634479442496799023326876663099736486248283458798871301668242503590719319338571684603100877765286958786917705684097837745680160733454738088800720966355017582777348040738971633394952033042315745252815799213426051239694925959233207022042933257995324008978361525227122583002306692934866829032401251902299386719304624860005941627302840725979510553404563958208785603895879195101147789252435782190341514290007239371794525123820841586165974053007933556024240816363017765262124212235481119437427634750579078902058478052833068471339477783727550097469064129074400504903208471793650370175736162397229451287145945036459657145091761828431811988016713979287572637024016013144460550200366032883202927376127074523997211246638863301106050931502264964345749411418908160963278498602405201900563305462990385166715462817949920831897670182687507121861558367233244945782765560932414613968317346384283101578035279540844273593783485753805295263596686843838572429806084606461430300585715350361149755165695445479856577122676729872469974352052639403024083460619338901463388479293245126979799130405331057456906169156541250767244066399597450041778225405700033654617187324178565475770654816458713630517519359901677773534615915184936865506025960979309272575127921503440893623307597026720125816151149799836871014176324584215248953389803496799391094289380946669000068213892394335650471938562987958305833962887752815083057352055984943602364912855599538237664599967481603076477932615220685023018996392986320525576235120982439534791884676510133665737054548828947983027459201239265090856634590992550003297868525502022584506942547654592212686183247492002318768749081041474945260649746590552049812216228032570150603668626572547025755921844206159670495326712866162855406280223227901497662078622885874072254594667463608853130342826700096866177076653868918838958254522821846904493732780045957128772765556897264417939457899861151474655946826230602564513735635556756885474292221557355143252848137033295333428996560160116795619059377049796717901376143123537588423673234967949402944554438429579569308828208823871115355324839544815272370740705793000628085569575796694167164048858817940719103857188870606596308709562439439780154366045774683950393504999842376480833995121132337281604685247322051617220935905133002125011661698287874502136245931129908646338651410463118961006530523631592809276490869308188274643914925092328524690697037270005172964107979285355278961799262666518647289922702347638498895225692312308327222180570983055178921249054348213512227059819192024867767165362287837359537851118121015456221786988522124914968832720346963227655930563381859396681041232709616655168477877350458700047436344737870430535110800404989798540552954596702170430081417804352496127999781300303044252378302926367211525717466772054922524016823220022274441577669614323121339336893142773954774641009427526905612143072970308176233339641700473787211422409847474187055536081831809414385514890831282647402741649638830823462960371661464700934787943834038357544893019627957596673588361176234223308951262852291424641808980832053181153478437979063270887136956564445068892526962320067980670135223144748463436589986265155289105667859561559981861802466876165230031148860452503621845106467387637162011657856553062360392771753069561793256709190474028059208405225217008101396932463029244287005326650910872838592649345394371172374444719676788981612388805631487974541986918015760068197233869856680812026808396397785637478674639274930224634726776193180816407063091293828509022757886748502788246721755515078994375098157617491747397007230975593633028962541679045357237215828005002953994225308670312581130417020877497344499797083999792349435550791380317145612180828102732884554107997090083914420915783190074726048877061218101019527580485986638703546580390585213482202024225005746886190915875931440255915129961590266399091492802964274188212648052931770472463540685763803547733758568641080760316653555090053790570694216938807582880173254811244098442858777622716623693756430057140861167588104691424173867879510951741495727600164857457588185556026304650776732632295061075259112454575544515709810755270518744778412455366715694719227583433961138641944330504804572070805626543685087688825247259319795180314611596864477053938488199118064936948853676244185594370474526824989056106767612217439135792563525410894643488474344877888456539057820985841042912188094523247834129662362555264749149475043384680470179880158183780747771062253844631852072015902686511141240597396593193934954815805430056225916601484907847263603749435583702138448467939251588087262895596459592266678635415611604499429867759536823067216473773451468750545211088033744614398206863522624201444211361317737844911201705801002254451664293917650245321941071661825927087615606443423101650022674961616370552318858887834000232917307740686315044382422626036237620366928484130506867400548069499538917479595461280061489012004795315283790374132452009628563678376060921570527994554060691893718482031841477369482050025303771056992675028015182009409735604035492490447816869387322812412484705161442609095517861469933257505270779178736372506647346091095800743401973035291589910058209608071342456631763769105293502703699470700345357227490838521142727290759326079239661173796503392146069919726193271731592491490773340586037736694689421192669381603296462881863493789303361464558838818921437019057038014913223557840872763462136230131783618686192054737556501615519846318143958106256458238735921371564539969234961177071573152798933743496564254536161574397862264300780985716871663375837591335227583399251010677728226932828498450740707858629338672461382448919801713572608695034817780074001344606642058478688993083104179885239467996577620236631788493064206392643793605050938800107749245726210234661209617992639985132985919425105715793654991403681362609016654513990067103152581821707491632417912664266578896810074263288965811136680577195100133327880845085015219346671031375895600961318911482578861794932238403678370719741775511374012370455715432421518163395983752070371263183994676950903446411074986362213410337687351396832307603550658333483361794147431632116580805226445898881031139971558926151213671707276699714414441180775182454051123674494785426366680857002065833744370157974370114675350207233557722969551308253198553237015204320546371995450507825053113177203537158474675278893012262967623830408350492824320307688952016052716101525590100900549606972160843575121230880219159096663155088130808336828433817489569771654382805131519878315863784299281450182816756789938976235242082472449334329208375293006333970755159639351453775528124918457208099380375305958035874535168136559595187833091562483087913134812646017738326875332818562495515576392822862925958501237522069067442053843818590641559142170972464804667254975393319966570385265379523745730986690573100639569200593086264939759828299874882327468362895159253100749269036804129934925159874019524939405424968834271435494936903794852302278032733138072552676561619993475312014623786320064088680523079016069462687576035611647137572604660732974201634369724838904482986535804894371992209522101352677327742408747961876021673651420821542883956916320317538279977169774474989743723046577053444458444527199293732097090358283207906297791459467465126161521403269995157923439182065923435061338898891262364270295791963284374803621730549368188970540920008570637422295398231367056495981264733464569454341734261845971748223993589023741554143121611835837926257574142310935523250509510011614879691642276358492558460090741966465987926398135549321166410809268437993423992666791414842561718249955115790254739942707787762067553091457924931084603965814890893532233864418158544401115127656166379311767608186112816960840279262166686409628470966882837441778741001465496109513675695100183056736109178571245883106087189480104433245860672249051426605167153593525246678194852478251645539124827173952127271828466085844863010505226191600014097470771820397292059779238197990413481802589966727877138973541119145545494308382930928005309443224007369729167863852020401496388833940713830448751200295459534463840226080967785075156705699837780343938765220585241797121259684395453200334349327957199710940912028010629304752717453746335700360536688314520573273062093873774710832258778045782313948575541637198049696299051531586602266344705743547598722006511779094302122950695146841095592889913341955145142526463686246716802598395547176327331716971947624936592270211401064525104476747417128002602347159367819228004278805205753553861032849153261573619666384968333799282612996417704673852308322493092683345684785781031172319213419888541001223338560850040635932862771231690856167149555063671649424482739567664860302666688319971022109254241131008618307020986177797140278462609671853503017455329075999770553739565830124502563704874960079936761820498075306085078796965265305812701429409640817026056606699861701752469618199127871352832454796603989345002575909523630552160993173500963337060969454748764906303368440690638564771375372273100725071745281866592172750078334433206616707179658960283580311154645052866214947829611495933624974382134694334580516137908413723717543405083533875126896837463170297603455977819355204778408653708361132031733819961854584966721374652871131233971490084891122947074376871914327423635236565207696952491094833370739284200120908658748257254616176846684957934819768853696031862227717215695945732962061828181737854472012455659014269776658686614156717735272820428777771625522486200160295291330001993430377090207870266339711288809515546266100303180857175325373099636854041957965046368519147767576993630661457899820867439219541526333947287303738459693136992729920818728486900899404037816566617823038411686346852375198050361393920541678792431634130957612628972346782891115095856957540830266875529086626433440379344559800320896931255837408845005369115877156129721113431153332696709430017891598824321472747268898882332837835495622145347992506706054748841829869953239843670935258952058533611312201223065540967723867747790120691340635016609506575204109524606560060909898912986819436376152066142598075811362634567091664700480503843567279957118556479900331092755230722928079398870051730411280977406341110619031170555070414511782607901560307539260960457144744092888150487988094386179799904317141785017342225084938569308767250640625015098597394516398511626471383869391476989650667019906475259266502717864611100653058704545629660943768792825151367242959462922824525834115955545240137977700876833168775394601542173163301910921598599659178172730223266705959883632308837912428052120002487234960177359064433299448141051219400140490302582196058228396676179457992630120228598672946784466306645977069913561564180795105392848746018455030475301181732145496276187693062357204436958330399904422780518407830731781389532193307078194268559394112206757661611302037708492321833869759474724790773523574958838520315560903270999335207812353969608868431353577064373721192328622043789899331869454703517810552992077351663809950258907463136418781184781196866791751113099075837069001682408664020109390387454918627937849283134221319333371402042439824959937998404759393621358810287085078539516450081373853867943649326378662284260985783772257001491266205570821560205811688675278163888459189074937091918219213229082669299862120133673101662172787476410083471104207780567455749791712187707486305009975664879892729608071927285230250263644596844771808457122195198858766279904156564906671846536078353196173935678008202617039189466674358384851800126665712257478191227730269165973301745334728783790940742330202225538186697298176719986563966508801045599461119978200364875316763962711806095156604032662743914423588407408815663088894153516306964616786521409883718621556197450017713247088481827221417286417831420884010124200355071430749468181455631609693189456395742789009647258788781424305708909815903589516840582354205246402299798381636455863209027958159976404790311869263607625071302227227823081592717777692198888296405120730564269183387414795011202520345791326756369660615783686935905812553968125909057356307363349599008391109003074537423915609906779928217080732577979330542039193340482686057799755135164057968789068094138776583796259149546652558502471457396601739335161714951892718750851206432637904733950678192670182448710800334828330317406524642648182599368930889850071236416086578077217072200086100320023886781563682371885297826839726342290754892517454835710956632865841500082530879940739281161254133872758686461322899868333789958062836124345057200379101612385973233680007083102843693042639981489900579181239174858951287082395687355816459646519843823261393404996786823771073087702044286711242415866910636938183142436634623745880462256730930386069738089915855476871526263092547112862456159324276914490049295022762680311509348933234402039448284946555620989733282454621340608262062562377821066794913081326999172889518282094702002995064865335887530912126266368001697617380513475690323797772132904117893026696939879017531200561549350358210823877054757570648244393885126165641345235103313834185587973289081588210862153594341160542957898459654514694492270604559994684516144025313343121902310694127304270686486570685536422202155085894427802919400400552231318044962766501377627848180731198159640409526199176215576756442601624880965087705719814345773439647349961775007817467215197378129772902797155979674462593591963165473207522111707175615791894069654994972099842348756386853325932696286115786195849671468642903282048738580461684149057350617005271757943274359303378498780331516767909414384975113640410723497031558750877741816513911024226670577155997197514585088661733350365932841146830163991375510187338983043103142330207324081970682381966260530040953625882824523479019652372778653892352635610699511670912070290553389064354656376825538964520242752704130398840859341325251207800152458835061180071995846341041268513029368484277717599168404994655671376674373341868657154694121750159697068993451294627821061126939152675776622482984315945229940903310802086434084830679458857033785602426422311361191209584075486702120911515329643928208856349887670869647052819425932358738032413473056256626134394564504515486265619831001352328686536108398468282636190631483683951574251749802838194674682895052318747455335456987008700846361817596177326125731674936479486038939483138708219536963523704922120298657907346926835940883926105048417857466323596186488755128782479672705341118023174830296414889196483558951739837839721604651901088149402522832545048834340415891544284983037990460904003003330324588285398191666009014934159913794775113360347681330399838902532597526595900509246168609699104245204232380438659763519320220200844726954467327637808906511642323212848423855707760259463187848880303195240428944826346468931659989861101422776830620561258317403174123084894743649997213556967069099012152360466326826989994123853465951218251212778925977773061892689952054529860989986814039855161735649352877853996837273673073209372289981654757466646969219997662824335099071455886363102834661750699102005725599945466144360873688115885694100106282379514437455112524584288503976364196277289077899993109630511600988518957178794540750512600406737050123858961333255375206752957338004341531381600582363160361482319755625483692892458320099550026560415885917778232917989030667778201425010647254895957603277018530202886618711366208084363355727400016502612638061360804220074964258058620534265254173665628400582199553838789776958002806444070057550302393959493338009368827086372757341267955028009150592697342936913531613864878086155514398720900561603117576194461447495218459626835617685674388764536001186502087582988557074797605611132380497736970873935046762091439831730758132010467431203175791004697059254693558962323414668627187639260260122234789403612563938977205583127166277771191413907759263410059822419109436061231633503879376935232372461736662926597174261643037885713972453061610701487666106956221107641464809255755388917095060114663498665028191823820689920381781268102406929336479217227966564174643437649850490962360966775791406344910242627401054403883800033512710402149927234830299998788233004640793147962777209914182567616524899498029708528700243104821434824775506441249682992791694308459290201971815968437100874558960453406121311935367063194867726918975110827415609606499798671133656462862843048965578527017002975444134425447509131546348179664939438073099306700057957437026286508212060360296544048365883400121925588530113774038370716484313585392032466190051496275078764411115820636130612078634092150043255653068944167443596042343388990454801921222189312939571599956785220716374205165457761389271239419012828202925056168241392208882689721953734825758886699393188425536314790720136437534614554390210546281933297202169814313192893426925497312697555165544821459410325931241301579913791225938814252642316023121397967645085776641812781711923508488678539960364995274730375489021932457117279313042191303640782151201439953743636798679526165871994839076557819271995190750162981865212336014864924793735382805627395159403226423912129394431939882829093206418463789306682392223870118159741500848055840384389378196582933494211175755441420289816105192581551907660167855021401759384965534520947745328101932116595739645188913498075014659494365584001305737724016147472265981307692869943428937135100840880092508758100831467764691962032627825027133237634621493090689688295939479625813474448808947873128949187727075788843100519842998306907320029000449482827787271297379903095678076555209809066410451440008199906594634241940186737976169634817873969919388812875352649909385746664216166264084433885294674824290571605104009949008381080490388205962116239536520029682782572172004180679566003217844439584966526036028899122500288404188738454661543380057418828372607174390940961760982724815510179881144481986589557175940226346471187539686793881502238371232816532978934159295855038029391926919868124726773552611068550792515610604099109174641953644987640853759755058227995168701420987558639013421218393303708583612936440189822312940696555456460332054206885463455083374069504711916733773070861140894670142202533708457265215000979750264987360256475364042995497645192284599365857912318526506203675734397276282028877343937475103508526510264914165032971561131308256400797330383183416151999233767870289990995157972628156964982098945650302950105226288982125445691528330705159889923533661877503336728566530056298147141592256655722072235001765772543689757749468060391610042207181030632802706004450945433581983853829854081533037226786299683349176485240770249444051353462554874448956947048243585659322766918760594798171984497235482984298178869681331328327986923228608823050905333620876034604945873659886832188789049513385883692332492563709988148529029521167087830431619448967871075129550219393331627090901010618525050263147914266045621964168095199304071761129931426686017447447744514313609264992852970810376013510799761776049946456658825346434755071641049430809520979180685316179968091478973054158449341748523821109117664526306608339386619805312526738383652941349758569246791391934691185477975794827398180921130653201459139030714079022365363313562879499094674083551739634496003566544489820644989273707783515407764509601591412791149127879432574012414250010349729954910595080417264822727477744916959861911779015763398041511789621004197939581944810063263092671388219933024018738790817338733988609192201064416893599667794242125787567283432425475937171882569215042828311595688189900864736996552436781991902914398402509534698065164090771530827424627463710936289923955621667845398942732982919516377591832194038900921785352504811414197470108152188848353230685412100308459230116978692479550167078356050642403124667523411279921074807972360523293812661967023907532595099154991093826525239358841013585971267499174741104738791970759613052098231621490401345702925467473636945306842805445358777798363673873493193349964745556614780792112844508057910907077708035241067410777857515116768630524128010699365746844892475638377234180880262045947826572643103973398074918997268913434662245528145435905167745947505579626026454387977744677993274678292241558232491811730234585696851100128752498990988677119952136467861317117341491961027863219472922041804009536036653208397446511930912665109279056808162216895927612771687575983185553739724694476046124859302510938563006450671069249159368815157200786471993866691311363721827654247384699160084805459090148866986189183411676099469974193393576456532993501915705760684137424688715529183466859123136076049859252359464743333644558613466124705929449293727327450198574655515515871216743029239850879783307534510505617526689347369016519629904454659699877835536159002990758919957931146591456297212524837843150636573255482277491765909494619268640549255827852965960198461703615361247154315889274500300751597759909485480974627784522211363204519595088253706993625152790989177420955432285297921225671207794127035192119369701887294374012987499645892775601052213412915504760755539991805896519478454114679825466490258998618859994665141745940772927293976349292204393845056398524098422979211895882399206198360211022960230130320362409022629479360715567111335108744618896024038185908632767228603671874765852232144700846759812144970700740976405474078687547043879152612434975939602073665749101801703381082900841925445461880971836259321563766922673385304075759063405670519593790360364148300578380787860059991057581851231978162413808401937269431271810217283818377279224565704996862460527596499577796645823700798115954097527259363092237856333826093259932099593452809134908469073757640203882267158576465994739599906471376472822877958666365650411985757516980936228944071880468776941927603672363932574062556952936613797422612949425729254628153044314251412251072757096625655027418594423798774280479621512894361006711263146324928940307809925164966483584543815776177985485894469913695632758155607419779280881930354558596993941441182964192983167733840643852626548814645025414648174569698535585656923136413517608060884327260848350570782999147133272270036363002247871433076708188705484207604656006611407091914182863796139354511388865335934321582808982805615294947933530594565740643443225672768816146304763846016841723066373656840526933173240332716884744015243008071106526345092003174570260554317137216937914701762431931100161142410202084173465499824186932622955966958525900972749384820398757292616261084754681157598516458001726295582513702682786615220095057151143574323818406218008832900773703743494591830868099360852334488584608020052649834665536763766857601987675945427540154471504063199762840753039720150532335044742581519835902151372302439163217496073056800502244992678234034791089205267809675718869939241478269832292290192800918887409104085764760923581270126207979118248311422878697790309650640728869989396319387304468514433064716669944275203807911729386224302952823344517872206894416695070890577359487587406785784185022639154952779886053309638047770956852287897121379667990132701642242382029196177578218920192288826687326126799332852392267711575174320987258945362702775359255834487858463371273597699750549275139235504036996535067898904384972318071468601262113744177521942044011829775772959250560953300602800031552995125220652290945645740965589526404151010629022635001663563919380090623124152254768953655585728097991292090946154256363194309140728006998093595498012871954671296590346309775209465228431976541162345523618529225735818098411293751326596348286278208792581887682922397215322435852693463475657869853527197850218533953115705698349756507123090892829576158090426952534924060737930976154484933548197575290067973059431825211469893672351444038334975004421829183887201762471925339496204419611403910454226194806577060665595851402663750934554468538229567134383360681219686231215447456355884986042223750722618618649186614840343573691575375117618306426425639193550288754371728497552532374272883075202661563917925140619755700924242191377355361032102408567391749293889830763147370452730838623731928811156440393441179582479527089761157265377883796428355722776477887460695617747306558166202081881062180294474190159273051714564562161298746433080093174457991721704230946331378883983949489020457166488302447526667443773248229397093005655594318271217804178387255310362228886024139852009383257572475236471767810221305161576007448796553473191269991550800271748828359207013461452229721911273835255288416117466234705509096994584352259024118508442353432386936988903106480384432799098993314774165356460349888865971495498558911356202901382666899784817836689243951326031170199168215752031067590443839691735395911926841227504951063156666407653225214718690161888708534684255711497941811692523090374309760937657696573309305909680768096244915601216431663601681401631081291287228536680634884912202457339885500178250822496781208059506349293650349022371785638015109938604963846297942670523439179042008282442770210283739114730679877413475166118230764254922965666677851326073625010403923744875426413342394091244801603307264065042945333292971579628124335669440017810917676283370211975930784279656719708805755591317911243263553395056120878040789878936709892740621186473853274155032000591254573541047288909513935383790569021512888182222392416993073186212644310297102614579309867491249070259270314144089605818707806123424562570291932379208827257174680026610185859572113466995018026309683925486098340965493796436899451569515211891234879495023590906717205675661958989830090858812085752097822299118710677246557312681866925818545025800954968006729611533532557813180031813482024892289452315014878093505841895514295205388984141828293059116443885537205634545296602689335543707557244568420922286530560497964443928875934757467716096070134786950429962278164342870372774874991390322244335968935490448802764208740550176594133702942494030092047464802495053405545564846193123572177398460294086672585720391267444127026059485122508775938241815368726059643504214471568852563560824077216301326512348202254833907665891921168217227066017233383857094223875257150290325921146715288954778934611859045445875529867027110799582187922040504906490739798924219062044993612788544077221649595829066839539621153709666740049031738347598256281175235839422313603937075903875457656442397953450914574090715404216882304708885797529124610191987756319670134031623277499623947729371687103819905856870370548075354423903343338220437231067975435135689471648694764930660642027513200315093143749245996107499446000041895925206103694626514156849838717745917346157517217788661260582352867102426510062383369037913052979727673059938768625287409886359930410770205453676213087313892577158400532329184482899934727732828602011828972766991224043577962271801647008815126605367067764047792503403152782975819513081869833468433593383234297518996303008050485582749273856741355888345245466770860097435008390104563129640490097941558910272036158014917436409296488187433919343228275382689463954716538649724932568033911107472532331555721860255674528856405660130854997189622203244866291847256896967111643515649927964554286593951789183482811683052628600625164355696987254578757340643003267298380513373765342533777567677777790390592262680479144387652171865231050960576718250287177435517189300041824275242981785658344871652790312765945687827072821878468247690891835242941295183061839451678201938267597923190500148458441646165680189883288968938396521012903556214675819784223336498365006580996224733871141211209675177991412293407400572547857000068361087451895835406652842272461188039402400157671971392489108661876299163206490698400660367350454019651064494769872332378931699382015097006547211020849994017648435046555753397047618063043485946062508300376194371387776080564201227087725533934494389485630026561592550946761519317919804386067199624628970122699155230893489602690361836311661174885833966946781603439880030866720591300104979416284440901875361539711221402476591489412695048034888440691818319660928277835958999802065622617354210914324248763791641102369281795486210137880318326229462472770713671620087973093057396455861004013196775177518022309048371976559068685948665940114728099187601904441804322985131001214601707299763827856992985494976710297212829538347929700460404009199042158236924642006061950135174628835575351593512978664988304860404920922469801535180663479880957786390637138032674387302923774007317851004119364942072764751842971591917277030847121397915163769590607023342818398859858334922043600890410813674750418701725323966915707895392294517912064936844656309793194886586456084955143187708046734741500310274789339376998832159861112258480585421290600033234616834082480895729607987709836017153226519909686335111618970872969814186581019597300600705865222808708904059660134758098690082444496182268241888173652682159213436430469452885704987841843629130390242077237498012691880022221032470567041395482415466382540435217209147288239069235169575379899704173083612137855070936411638889813042063648051318212318602310429607741418058358394060390027490311949061096246406102987295265795419161776940674891730370801821401673568425687299542804240567497564717236968579404925016419007524812129962754327256304781254433685538842100876848459389404580187619467384977368515953513834985624558927444038505515995962905265827180722626432771203339730137886923880360362053839590625218119968295583577521225128673928231758208808149812097626793942788954792555050708482700025328707844254211794987229748008921682039113732186569154336267221932599284609479536059070807174042082660198570062917610559838668345212628354970176605748014292112497658510711329901750559962691294885169345765745823158403470438527386068601285376609124702084406558748226472783401996313167944411946880215178258112944280450166118729616967939982668041064872745158520995063875623908931278904919734557472676389684432329836777824554845716177608737549966080621482236157414814359660212310247016619730788334604178032732008019362112377291422007680919359387742803735302139562294671489450604840122743616168945795293575898339760414174435237960522270095093289226228611184442795371946020603200150132785762389067122596519862370784839070758702905883817272103359545788944354439115964894699640767045030943211958537431821942234769704763445416642236278396533684922677175290576781903545500977781965975890536149500169359886651506288628850391817774420600664804583969710726400963658006212644478072574252694081510995440443710783657402220397432082481606024801808087088915668897719566124258955368655971471287462081951168258395186335049703708096061880429640857640785927841635363291149396569786145284706756811371077582297057334668263442079620128977295809958530219954331441883865538161050339921042642080313260769849052535814043670644004154296124478431647098805416607681079425368016583955887408037385514889036756317347442364181684281911404477971088876381082531857936022235491112516130411951479165850224577615323055301495084058869319503342429822669954764007642067525725166934258756741003014296273144053304546280282562065411498812952898412999738577638714272659156516357727400663445543233321869495870404442438821113541137641297691861601705077391912366937151680081108139141589574962457189060404550919264021403438095599497296202629905575790494035110274593200996996246108627444272917754135805950761266659258196462633778494106928032518670503455066262446232614299564726685849454035884236929208242597230450007273732411834599419561766023094164738199592381616569852416984570442171295602853184474777055320033427733473292701680107951275568606478096369388834030088296832805233246332955745588658526940904615713548762222916580587256262175242241879889663660447101210038888300805160936367871078850371014013748340604549146264465633388939904154590148987686270353263102958922815125999148031300808548647299438555983024444769180252453068474545094899320530833822092439322013895813570025737838544688724645889373938933752436622425780347775232241744056269038162327483704990680126853094243263295702289810705056775161878772872589589320988122119724994012280867314638493805192442382148059192968411415673854407569772309162735589396752918457594098886814009235058518451422889137901438667306640161662183390093244779996402643308783110699900415438327127402104189300877958288655364008965991668200052122922095132012523728021101103369674013548549480503516524443153155786917049411039341788140096407975410312313144911071371923831381678775403377360162423229819896150052010277787850135633105290152808350333650825921744269824420647326039676514502345647300986660038603667775683706287685583057359661736187286552869222580214830791745397831023960188214232902899877988292852105766626017779286446588241091230451147020178812537274050054134819365630660919707466051350388597771733499683598284311958548749924130665676173575817862080830374853039781235821961182618887900842517009323340979703061291344484869704564242301343412736693969139977892265225787564590309455730991224528326585223969431407046561348074594702218429133475698943980966122348433286034981428657727944883507693293586508725854292420680838261115072511091586508670465759671759625758805510446297642341037626661047406172214645750136089456170302360694967373288690469110387394859147591603493326101368828267847712621768513240301564119187390755967931329780791407410061707566149120328766467059724660817144766510564443931935813972436017862223551603955385279558686966946098317581594078538904353998937306332125708977936229309515117362064616331401371056287338463046644855373436442765702252527983935447630946581015272852832894463501503139166328890921085399417493559184945420871414611289502239793880980233366209046891618400988195455621399355155056920325565228812355836410667614190537562181405687852479777970113351459375710907978334558934340403206793992659626096236639010761379051595054192271851764636555412590828990909903510957324785745660667654012650660500531723627879465813898079238647900418280849201098290485144961446376074116670450135857196752218022596307508192677377577026057294965283616601541041096178005833228104589423228482678697802732527457256037528138592218820612962788537018376970684561675334352985650286492321689064772557586386048581168910320570971157887912610811601103867358100862713101468684556057371347849196702817118724609452267528538673426871253893973555514133083737370825986993645779208982992126902916899152542748943107561474263538406226617421623125980110271521974639951386949261385715949796159703127559089967288369796641903894618832196324278981160955660274652107982677173826750882011632649012224444232344026715495125690629723915873750207719688544314834976589012790621212456426599903103082241392164738575414874089393785798949979661410708839835222359911211595252306798247640954239311334912621775182746558397290658403041234851556775041292605174248075256329585131428171874597768298369033544686345305303372735079269719177905321237780614604645980703787007470769458015462718992872931424167556574476342310994535152437048418304537358631851777866886352362778587818870142277487675662708051409287297854016418229238993670130607052669794639357864703733621034597708719232132502506999311892162550886016389537103987451143049861624328967994325395251395142637539963641177006429246938951909130225666770674609948371557677005395282946522012559358101490414841554466353368286481444416241412985756118136147770033812859127626739251785894538339216497517012083026438970605714166695983515640814128869001902512341176133910563589933659330604941389436711293959407692553015384433989590808963472804468187864818205084330543690075047564397919661866931246213758357697642885082600216608974246519321364330970724708325043393321862542713843950429095371122449950678989746795149587389249602748552825513687749012584817581594709857975371056813129761582512730206035941407439538567406188012729599159903971139048135770117803286128559694645872639689442177361649038935579182298053084485058020620257184193801348143153894848836507257987381451416844153921674196135984671909900969988552771024964917726458857813881807786799834143095429782240254457355989394376274759700321359499930877934708771797052268308938823065655539324681211662954740823729283367020975584718469387533238825040516059297059361431721475959756749646321053150553610161185418662851621393825551157645084069598962331072493570569327557314046338599676626102435579625939064070744360835428474952401233232830053737659902897294888062581444437429892189535802551518418857611246424432016842084522275879250189781812259562026935094863390254550907433117113706030851731326933783323378019044828013457612515674585933116990588652226793797643089060744858385988925671628158777085176944956220260248648852832756976223801705479096268334714838035743493573952501715635882697605457111037173991398143790881703655194309801556962498611463326185224037773100314109712661383646346122624640043482609895575157462893235868201416180611511535160637207057174908258638628765433685577184843440720387750792686261340463384015251902570605165618237115385532007226034876510984608889125851780605318023110219173785833249645058941913646168850021330557173229427722817829624516718122748544039476562944226949071831441491026435894484091523837277961091259530795003816182941474207423921582402183098340351877315298537652093139547830486842017988393497193474495209055156080804249257958985743328138718132103482622978350840047025912877608019246538697780601435585502155333344402989898714426940552748885543709332877607070897698780789289024800007310865301552899724214208681269217657137899012490903333850101611301480175602009545559678003392861858497497981914223350812838603608525724492733187146368700061105337869478701147937365383245921579353028783357161256575432266906930374002640202645300429263766808165777335354031701238470778584766630878474324356325590103122805115298410027029455861532003961784974929304923776496658400625746733161410099424580095365339467537918932580236223932976013799645398325884904867227043803079168693351105230995324565152165660087330336014956450797016984978096593302738568482786176816422596502402688372983937060994407439445004552023698751108909321309338801288200710176982431151622448540528906156594058894504628629516204199496742592078895657173287773732994705168969879202375059540169013619080968570800755856159729580463235304296797095472140366662600527512654055505428235575855604465868381120774686945243549419069997661073634225168030138102939314034478491665787130483628640307965832215059166898465152015059222092880228063421044277083396268701936706842407173542634897578600807195212763164248006273128351042199799223800964850020425608449771226750075719526747251496819420532099277741243303769174345581021760109456768397856503726036390653019062286682121726735387553154590148216320764305020013122589080716825765228444261049945603222101556926610568054869247972801553706929910019368942727859168858267759303047509921486380440109886224169239891559187033385131353466400393009051319561979718588129141697403737121459360742471447676556149542502197553802428886850263005043039842930713050943605890098235058446674773438869845497973283144238514061578412359317061573127230505967170961511328221300599448499494867737259516743748686500698748572655443080734400419114772244511174135318060769074068877219069546945003842683072477260932025782487282476152328168533085313807626179377095998552735685505144510498562462029057975713375831864759371337888672976711159618572829258500044819504116289535725005983957763078375797746566326521174192407093298743068597937756757101387425481910116678752225236857925756932735232048709450992978469393108153170234881924727780370466475472106446155056664951912260652106191742258613170733846086950774244597358534784311076910358551089535286383602333652965678786226370393599743248426945102509483658371609059590546743349363185555924170970259975662145269578286182515873704857802476417770895958715301199107948752055509038029546466601177634415470288731905676475648903723607705114241474779231888375503279899606458708338667685698631567261774866940242601348455021694148934494781916772569669852280834747490058222332845011246578267248373096879836195448787586690175975713281002647214023780572298029622379592551831904291510769080121248859676748980345287698687623771361294246971582875722934636585181661687929846581571967551905862139028626355428634269889385066443773988231457250417278697000859809754585806705879683851493996574572117016145242125609901194931100136746311985309921721748238692911432799704025082124316944097838896129520299965284118853845784379549424748847531992742005103113966034227333511638993586640598137420875081169550735008772384201629507573318220977859924636077878000157314096750826336070942514756539247306227040393325538148842147763253820241353888204120407199131167168137396128393220939112456004759430144018549104611288654725184750742003589488114638493216942217867815669377785099141634001398166309300916150977061780657396519451950042490878074320209452822850978172399385436077409927697023091262047178164724556668836978027844855790689914680378997830015133284311230507639805404610421838321077879588646623707009486758461992358626987142648744591138596571253371986692119933256242742174256053224299954538539088169124649164718105696113684390513535040197464529745297100770350358019458256411524563964943516832120730615771655476960848714333733840013266983031683265578931101762645606850134508216915613832690359584141802907028547743350844545889992667749731389821830375118644796974913863794362529939197460966903225486220554316756946826194976592890216245238266468630084849676378483822226085411651592160430713070675000320883125442438094455091178095397317580807068508504774723438242164102555131729669112946001630802277759247049375174556718276057873262272646925185499135801743429100828488655365218591368084443444646307396007974350119433967184692180960681996370742321751092405716885675298020875704709102857303533198440565201658503500040420402589798341956445049303442410368453274875661976484666632233121106055179028401183309623764697117291817818064150199552801686704943018028410554747026230879648823927777886149019518383911341268039939423989427963702004980207273995650542464796142115534058305139838950908610647378268109725129642632017972857470289924418778154539757460084409919350188554264781553869409476062547233882864539084891292380676347478595094700686657152743176118567405164690636891913077991558293290855758011486404681461518685994938975621502033519565467976939322994817763553701960732106197381991250369260324163147599554542497740911595210770148127988735387208342919387700944826950795133314029785020907971282528494584939546334516587648060445181523809089224623833692607210573772855809661689560439561056257561610398156752888505231554069282930062645004766622475966445399742276508773361408430534169873276442754656780570728709058654669955565775146454720942775829914105257819490339234810299435744706599396400335087578465865679559594727413279982339593152337100915211718092183837461518413868295343359087162051148092972371571652432471683201255593613028864487357157380861520092015647509162777616626550668000231961691566617122389447960939233146637224410242797096631807725453240070660323636583962844075748322878248745505934665627600082915156279811966066172308795855599476738421715932161749385553568781005938571379686033766860384495204896759339798081555156958665125113922112053660104478865210166260647731826129533369846794326853650019481619497849746419823376719763357395223002964154807231604771196771380765105747442827038988542803235308818238305672185444676321666999455406180415667447944890830448099465950866055029693912597161912147799127261674613898830618211591511684513871813989533438713837074279472210810615452123074379733402375530151406649947311760580593275795388157232273614401274336641706448781248122850084667732469386818886999430110682485259406004291790804437391012451181077388512246332271093086521387683387252552696629855459815273926285703628073138075175388091610648372013172311573033383616299874724824217209270575644015419925530439256716761301684292532282204377360774754215590054296716112327566122322612797662708459392203475690670884078242416030471130578902084007066155525680964227554918027717075892710060276471545480745276872953876622422152769202451943858516764975704942737456170793005457075978333281041191841986962078111417572593986411451876466291831746852757987515127025867457299442507705738197545561046486459549396310470301170163468841207994189634904309625538955334900552326898417341649112617053072988515248175050903117557510416553229728954308473831143751088293259527462003153472739693965791791028426069949842386787324558290138299670043424623885818160379153237164234971440086173656305506804057173147524541725892421066022571535199945524896963154082642009340566764251082247569788568145262140434889965175651785969807969861221402885361233012219358540247580631043426692223328878344129847134639713841727595505579009336008983381275717171598404598689716419738082779614383473139053800668130756220161370960221559804363338817067972209077620478349156136795845300919379017575672331639362740942282578036139065809368995844829511045682950828256471433403730494420226389795885709533310281188069574107720321679187059143243501981494326573076976214016778539450524409990945236147968765522723584379541326886165241339927449383056405957337739758511907886948560775828739088762015488851357669762673341410559142807520811016712402516774921713068927201107555254362199401231068859355634381979767555581926609918352113963687529561860966508091779185880792942914075882828656443420059579096696057157157555214948375622527002293726899091266611725140387073596934552732423478338283323716777378552976974398858916153721023545300931879613342284764396263619622201176075395546683366087567219016492089316680761746764683495210028577336717196211199378880289409705558673527356844426813444475955742196108017603451228708426720513238306885003510325729703628491350504273649867686252159607613032666174513933181158981570356831944774157137589447324193693450935700203565353220604593923452306375257817650777969152141276584287484234687634608548859692826664002473376818030438935472990717081090096392007943107958041139405670941295071763733101077588998595862225008234499386997272564440736378765712615788922571129209142603396903664049282463190680244670786872633613268053571282359077960046867848450188948283807553441530594407315678913408586050575997661036919113103817426788534628882623811993246603509295861788787796073976805827990701306705032348752973583603295333658852995264117351914029370759617269210215724320869126444810837026971179826037331940251192810907781191043515718520388609096193629708230036865939358760991306167159240565705924003503750970169258367011986278413783199692710654056247714600691394471994625530798923021473222565120275666188550493635490288923186179260458595472302669064292887800123509625606198414024610656854803185553023379405025964544555822686859472838206934764402077884743652326988972079344338309596169194444485601427008709240155716792933628467387334171164467011087263725179326934762237119417212093708405939909972354118004255801352663919870193301011052749738421124642695243377739545148337636693092913824968055636777657054667123621399849480984054067585446043275798221725296365485752203461865370050461243820949839856905058451657703993034759038946296682286789053057265729015137038090720160892425607934594151512910637994536313762150661888649232603279768234724574575510447318397765565632469655698777135103316091492122585501625756618697784444450793813685354000364500150583529135491620320144918662749493616969509601185174479346334197856229336601032855306569376504294073780956376782786890663450275748327090521703228437527217228435293398256093561427682098872358101540776403478909600669656495894078510835138141732953190146690953201753532854506142723844095457695717671186865643928174852064075373116195761500722478401413895094811675646690271236091214356155995852147212453081233310788878770264342877154990598634197938091830553837213271940127433205507408127977100334414023935401598749301085003783662591100383069419414859220058182968934837973531409997585743590788461106120273529149584441050589122857269086673303713659707423702379452263383204873678575287962463939512493182366896218011623325424024934390754127924692953490127011027488262139828562850074706207629071546273847265972820236983057365274217196247631933570167835823806340014865875798691079647561167426675140143151844848390909779036355834140029289426212939731751166799270287808144614396967896419641462621517771042915944020668378715296043800718641788613048123915188175522431870759181930955541431603986853371448809581343217467909741097870952999490383678016499364062916600035652139748772785343250979116141267604366039748956724886138551249784477337998536348903343478533112760146716363003256108253990609805319364404747237383410469531044708189791860231302833961749886634728074035076451115192849461426286659362081622720760430095491275315312040259340323218898353944380293563618127188093404827624487967482845675480774030172866606310298487469441726851947500442205048904475808288566793108818685201807865881514328768663950309409541320816542410403336299532519061390497602309929789824006475181603803591331286770132941825411265397432431196412778219825842905636359395871096067888885102090599801925640293320570834685006296563759369173503671962978719942834388570497688529795136275155070021684461073903711910932052524446363101368766941467636375663295969495997298504184336762460772889259879142066207500385050906771825323150384040324882756097486478477951046384126368659340538844001101880290662537696392628350578053574757787511621779540657222640985484061884051821862013840615620190537837130523813532006782800035665060933863482332964671505256335131884730081454537534186180753641232601052847035611715988312847448658929323102676863573972471784752400709169569165945226550775638655165357978198305189877254976602314516128848299917959210734922820372794894118088442522583763357740408675541071755901236435094727850149518173582671442730148546902087152681169007968565501952308518497587010922378244915240689600973729290873171172524693976693848146238565006245092081117825100610055755108464507979913702922512514682207531108497819723264157125357583301619757749080266035970972428357873820785026504073280891957353602809568466819756030865500016864842754601952184019733270889243034419686182475298299607805080266589933187695761582566316537920309333931004484841694950095745750662712991375087205632794893591838314233508773191266590494249109460418919533870776243041235186315215290229883769523762016559885427351829201212136359037089083745740033376990171764736205267159937615465239941896471355290451973936822358328108934182420483541902009879960694913345053050045169427627119186311468546305673482125231089593484487130743360228056680489886946347643306581052646393939030731220201071654932342185923460466235543968712547065207491523629105304735995113701324362964049577607685208447482997817950940866785885763837428991284458017236781351133206257370946579308323506437788531289229814254905319703041981970690787803396068923429739326865440292198571937908762740368729812065745940448283723073225288137318940264793850801976877562702382557076062880280237631548730703730304533914007945670757562616926002167485099599163141125617046872525214324750002595485133874457772315748679605971413396144125004492065307930440343576995576803212944494760706935558589315569295570743050597815243845292684630476100242174823154207666315499238499581890294911768513170927063412059389764515980458486576979538524413453762769692833354934640842259792163698922022078987204253752859284572003806898132013684098289581308790617178055193581188916676048395759744032622364567252044526016489028847631006464998196473703256375303135147541606193977345009461692053260131109300253373638300331656436154566647797918097717648977971709781566501419098113061850180402345708844690531022176707710055038697230696781841076305401722446644323662196649683641794691617678473835346090498879010234177235052905322962946196858097236737050910201664811022779158991344490372775509743680283894749580780154353766387726562362009659587259558512038034936261471022702918200585771332977074266426862648139932921642521264552527960391221105208908066297434135733101595553957127688356091867509604362213553269526305898408767323723660899527629823676567984536452896848468721046495030266294365238552989239806739219775698737161128651865295546248380743165492088069765697644980246542757865499909306986536881758976847526201726470871215111693162076335646312647332565568342625767675147416495212600702304942248629478606326403576740384344419391976020150336114567052466898792750186423478854872072406231054147960864254931879652117159453553783489226853354676581917895465145724349794628792975767825760435143335227002867733013801488723698930201723890969915839016877392421702319035668202019457409282934230123970343997896051783845564512605072599404272972152932096152026468175306835983724192385543047031010399912144662410493364967193030467520451866023199388337177971367829914321518483811407976264071739766064169752113651841424540776942821361736680158449017318998593773450759320377210964781216569782638985063426632124419648376429217727888246317788381314193869990882461695252454970970053515955277508110957017740432761014077465629547546823635793034572199216988658114858231190064038968545727928165953857703847279628556144770006734496034600257566379693618693875102349297209651148020474092941833273060170227921259797009725873173302638816341086255594914915775530276666969829310866204393142217886498099049581152153286145649742850569027979022521975466847988367377389308115982496476498838391780863264094945449868192883579624004513207625495292905256530133986437561200029135516561155008346999563082323050963240327601701654949149006358192874641513183691354857185768526850692654440084577931966927050962079288748541582422169307110602465778349467983778761511459347949212551569791088489685323657513508410646215112971131013845472406760071982290736477974438939477361469907744243512490687115710958043333075679172679196767930680591541379646486872461303191747098970339224088653299896546776655722231600134394572886641852741969337796660096667469834099320256854450313830563233642167997540798310554691916662768817203519302883566025900437781232867545225104755852813618998674940566576454630855157736404704599653005432872847549345349590801251521475685251436701001440889082483396329945098968022263038635172612179972759480101336958979770171917429926078536384507588310336963263035405698568662175129910743551049273593582540569049463131182770959152680363870876859880043651337765864782687071080336801592907730951613459121921420567491501454678282234035916329925105598483437040520682774983516466137648803695596315130831230084199425623466322409709207376749565788661396923880867750691443383654895130604516646126455535331570515758013479203841885065099048652248716803002434855300226564765094872014097724372679885561109165017621756503930423079835786711386702663800481685231044395699039500730474242985931292756916664940936447063880292974082734605216049070308965715180013159973485415308280933188881808259947968983730366597600491953247287315115379021763795399064038986175972854900735985366348238762199819166696817737879450544214873905373099846864407009925726245669169783591235066214663003217303754227823444700527589270241457889015793151046461250723658123143909278686512745028400362557381867644698378090008320471853538934479947509426560633281083900561437067669653478281451596905631203324237413782397350636048128098921537447758481286735585938569333758328324324621569161635697840623772552468363569933568931486845023908378378551139314835637142639055607400270750611545296252299743404772746372091415126510328543739061798435686017268451997487862975420971409782429510028524031017421297660248896879046878490726780265179841428149722885766654182125228989357748707517454828017130768390392714371429017974758968625671130810129547338540177580053223033058378826790704707710703691783519455815442579607312032359736374419612695110356240211388861989454197098840252547364865978859062930373387186265454573361780355666112774299332334810303666086106934409443235539753125086785522889086592673223506005606427086760639674577998798665223398214318117990454775781155407789672449701581879306710526313244152309027542480254289542258558757216564278512097069570212251361529918054606375543636325711588187103796121405877251229096210169820480421906345662886098708928612111046055718866527822941472076869538417848584052708772105951581710673394008665633792909418351489551672609235908302887094272137088394442069234358375820429643101374388430131015192540201573569194927385580170232125494249337321614965892230007472757053621605280049487859781951157221946163033348737069175248866350298728988520923175325594137844706895994893271145176581196575143740177348218584008811702014836167292097652569473734114152198438957887562115546743663292307343925258621603740903030585206345623620224978629917975777325301130535989067394128303010004236495013641208031033820128060707943968601581867685360197122366141257378791197659006467290530326813553312104948617435679926008349779045075145062488961053366965722271983777933908259690570850097034623350291341162951177024976398274841072538823032285343520536559678577993763201390620671573724551001974638587869353684295508534146129864237478847811573320457148484677254852976923549012997616528419840063461609702987294174272249464900435262334807773527748700431367772662579728360272784639377919655396866701327621569473320393589890411537111716146854264202469718268636816191825099641050363401989348838909686340945486344707348287605633596951867567564294227529835143636634052771551271793490765207014888034610225352663950523658968445421524515335701557276592277293149756250380461701435876915900667994065619347725435208461917769508606661149234233047298234887029199296419663947150161377520185844472040274877560969201028686445516167806978231288747224941928786426238123949374565823808353505898960020696649244543053252347545125691997670394824606497992946192405952122936631618192994927394208842141240403256360103985092105999512918677418624477332692836801856401016625972459527888313732968758877100329806612771078627663270488899836210762510987064883806746061330776012218202366010336058524695241028677879376127944898851482678756352749758802186426329239169760861733481783315695181947834709542358854297354446738776725434909113138332869760840212137887258031126960105963758773897376354837800241128902939976717964157632849855539306187281377768608838026857357383807281456545927206590506733173079476792693288988283579581556652003717251710475367919849562442310465305048124049000719100144419133831611760037784483520523740697651322725720463008928867974287043122875189269413067588866640118267368327270613442685332162757443173592826765783897096066595925114892655710651118685300625206163186694800326599471332431723949517169905850661468135037715503931553587788550229239718436739277556282330235681378591166832158362048029928628675204491988642854536827690228156818730636123442031033611052941201584792895641178121352047386667859364796531537939498300338458526203879245712133786141875114855115415160716694880740649709714982932242573573814340927398033517402298231802640617714455258626061204402360522327739374939818556155943973639836306542432089715481449235320306791178244054176731807185858184950963688319885393284291242387256537881993879368543954009628693520045393987673196964673476705208591723308456920620446886419195664363571290243485696847134536064848861921684303860632046728419601208622978544979318511784655774239691984824820586961380050315847352605233298168178903404827799833868799763894086137194930179307455165391595281840632040533181423244231769930309306633118062528264836065564079913502631403899510917452339139615802971873475458048496962580032967175032533411130608979234346948582408059501591723322908304649390019471081349847146663065512539765031708413990106688396524044258348003731753646358906129431269711953617657745242898686684694921018169860341981531619070538346311937870568110104634348658477229002481187950497219170319144797593541823234395632704972695396943129450378102006969422007869252734405093763616643073173320687403816333172732903228475191850800960633012897087692759112402922795404534213005885739962364508882322616435932404270879695009885495143667545812497874316448658634221726247888997207255491031907420327396101500028232097537791279285137840730241645235442612378296324800945393963461412938300695673195801458356810168343495081572973264118860723255173667317320789315090190601844154102135416237517884754116827129574005808927696924048076185427203096084811982456689244456470093223633581484037235592058975264670355819507304577569843106579297311543925741162873933152432343592983787192358654579897513340554919201419335716331595129667399828612689597329656258971151537450129666714866593078426188790735710782002904099945487729367610144705378548683587610012773098878347324915058229929985345064646726604132819761912995687829955153527082481530164096170160031345888150957964989400935208653151868164218682706289829416142346092289930261611940278904010173280855743565155569560718398891366567698195180204056594454343138662515601804867436449789112509665122575611026771117177462300035483683209972928727552144385163799555122772362989736448807164096064899085550782091746619516533367780868053089421607735339393148571406922509376568290283603503495819717620802047410021305315996280497126619440975629358214735578339184479678795230635799210919422226271122209016771068168739257049076120404169750521331294571396225798441617766681082956507409261094176931202632341381861993326887139840090835458452044249579418898684890932642496055178602548025680248950811353990504514395538985583757999243206138562734763180281692084262509250021369554786053548869907916962839775969736438146757713300492345264031492049179743885021977990395711865038075974177790357018890294894050017221720277564957819640084808926068835673210573473329763796505513249961482600164199889074024567555731002062206694706665147810606754813493065277018388847851773542083072332054835627051331437399570682033662108641860035031973918515828488856488686709028450198139778857830906952724155711357137248450105760369537670590702268248365250790766376236198019899650907304779440484964407952401957950021673544348458544393805829941266450763479555120913648781668945011323895461466415199126475675855927273139683487681913056076890984408635049347371666575875239478251162110385050629375511744394361015709856639245313085278522494042453479124501723832187304233437381534230658707011315607447983510464979420768207899510411289614807126569318323893226836206260282998366287408933431614649782163125197753591004291309044164973364812261194684331147742913562987714763610111992666763539540722602710223607456002420207283027319986883749533999686278015571167975172512580858477072556222593415128618932116835028412759012124469842462770229140756212054851085738286330159036636429693622427591957888140419369686095669551012473448779401084384328978214303814378910638819441558369598268796404855097871973527350290108522427539861139219587744532216415918823345568757201849093336822946130934451023919805178998962827075666753782539883152685270760428940693604736808495788040860455255146735135607420913854560409930869744649761734441694305327085543326174178324075808590119441863660863171431502379662674112640295091140717491643193998438152376496473644489491340957045590213194554271543447118589302743065488294715193258494025293802689100907567192776437588266052879726298503986341931372817761371127282113852882024099579574119328538098725323518033007867979190313574116345360221268131304763809781778293827832345368131436422448471711061620792733313078757211196806355867851278538249419562300015068709795313004447905055745136344748737841358689405984816175058678838433733527144144661908745617443946156510091925086118135620954920931421939597247190234005267370946839853971098723800396588231124987737233879996441565919077325913880288733361033097002199694340286823118487533485005352001009590375595073890515412230203008731575760756457098714386798802958527788721792032315387294412298859062969016108212745543440373332606291687443558091980865966187196795531297749037832614557376750016520062373157483802698669857875194663375669441552259383502157618942554155991033327720174033748959708210739910311804917132554996757863128537158385801285411871320622712631909767564838568194629154625885952199504642618406858637058013766589597114549718799052590843205656577934935456300245144955427605786726689280712103176542018174013487678281045725363519589069645553393821146353293404770739061202086293032639489058626216148736362917669564542360512033195090203095187033854785849869710599472646041820589070534755161007650763054645431382023727878356570832342167258678542881919549969487422837597629398254234080757330735683893847248015858893184363943890320370086597628574816644799434549138996321216476197551141250662317755265374721272810110582773938169068610656880569158375202185173079752837313987873012915802995726455301208174616474002212388693721468419048705639307036553165156468182182790125772459223276988530819613213250828178881030015288223262116929842761625303158704387852922491783834738183205114973468361041903457072440034618992849511592620369424301076984862741588100464332872802231997031723954269010875692775766697913016282753159052049156109438646956333290076237482557296826107256199257406867494106849136565869913300200760824118005136302856164328377470625314228174305902929336128477502230690503263160245252941365837128803097637546874954485699601023983898004017662711101768462294889541153447622281715334360102565263901211263623803837468729399120710853829810925806780859419947028435757306031332005363873315739560959685262945509436327346520858619080338088463966394488079949808560437835907623601013168192308132065382655388134630659461355787290979469253434515704436850475481855690680720634697983105461403149556829195420009681980830314402896041757204573705390342699279412754498818783920656485449066635878253290297514393330050599596737289162453822523006848341498862375464472801582978879491340813796372517959666765318370735240077605996607788490092819064328698436541713683520901480379511038294547856766855003391753908217834277089653884117318082016391202689758987143974983870212416694611312711276771675006687967284596797120046937199399839231057970770145509722713034384236328417563326678789628239352763451741085849230229986397639411016081750336731584267536036493151046937597255903829832902896813366759671309979473225930100497717015647760500001302396970376944883598416900863823519236920039353134067183161526992870658265779192860949278927905928723599896646154808935929274718171853681291992529118387000640459975110952691341419768241629515727859158599501065939711926993184384668798514824833440467354802113031587633242926973370028120239775235862475842150736320389911445971891222425290398009985363505044661055598451268121743404010442034092991744887410241679356012325636478642594108183122422630760937530603258988904765133450783876104523005833574452438100959692671470154890374913679365136529546585089305432633546052207239888162988374643218173686475790452794519235588853535318453431106575641034864553636110386603619869378016819552477135545167930780787590294592688373741469125646972192563036924722268816584264225003827295808243920282317306130220729883449196681141000062087893401923058670743141753145664993204907984430647283550277270018541120402398777152174971963465377623724803033022882182677453338039507158973571073744802770043390371054800077931036688104234557397027795373965580102215349785818193481486285316253142830351141453722243692532773005047492857642291290134702793348918780741420519955670572618838854659685656439922335270125402860552594256622397966855859974839950842472687070759076629751723697751649002246632683721861200662966440453413963543739649792870510820086618451185823098947346271514849578455822283224357267387910616405783471546248062080503715139372558466361621935046220118644423018994466087246993945465409423282397063171192892519216731781243450308129213028825417665675539575849943667348057189707744185880347682678241619509156685349290446714595497112700965972216457395100700817464018089708842539419822532535664953327719450228153514833595688542309020865455430827108193880225054587377129923905802926183447262514792046078689690320062319273073072637670787473193462159003192554390629268148977741618171545110607230310572001441973748184038154223854962081763330401873887222134683032598390290328238087965445039408145700574865149623997483109289083044587241840375312644359650470821458595531619182215140590915608140158682410686934777007844747769496247003992649394797118851053150874924292520439133574298814689882361422906869852981878602902939811233546704171160042096377722324913039005530191369052981770142173285353400451708395168892643483089765468326964659300663859077085202841651920561140196861947323672876805524069380213672334832398324681739887432756762318009458018080059604955669246172820516156901807905573802908630625344091358639869791844088626820903335878265299098130402887416683473360788032445351027015661309869964753144739364291745227772095884099142810404971911944424188382626826463368121551679549657713028139597519068595081174828104318028569041973747844902849391334554635663332433906891322083411981539739109284257256296984160592448777704524175853995128992874127066837344506224013816651090710221323933059534831213222399328816756841937708412573581418305912278542195143051080356303376306672549287865635784312379525551163439504485662925751657067073639266664009079436794056070800388058565236608951776126814261291073084244489133021556899481689066780867836964126668183506811391641930759010942344115964155178146891409201543967946768767212902547747903557631343583602956786708387171083130888061813626584933089827843652849711574639009709870190943744456798588723653634747794046998093889909200835799928230987145549848344889061658686891360598908365234469722417165961622450928854476476349918580302324455839700689445202869174169479408284105198828414365341766699636695868845664269754913017206624881101321197405213583662886641686179279878703926314544485688678120503666827143155940416087273193721172199000374697950169826740095701802277586919312931564194124773924389612718250577427770103474275559062665834493121382194185873291532423776781825663061927953375671494796092733175712663193972259284856147278307717237056354200634683807687667611864067261519415823870522029219408879738660948015857741960307406872513623561213460552827228929728035861333346278546425942076240640529706881538905383694431188059825411590006741229969011008601790816565781922111768692839901243347417413475197893817311998281460680235578232205585762365558662794299581731199574388112740139201541419470505849443136601571086073226905375752043023950665836561316464185973906148144002118162740039481736897338746071001950926048586284826727974009042716679959291518015369934543584442301579183910099796472927586815180133599254541899365392061755687591779000735862957789895337084279407952984096677204460818811450787440059952596198911943288349561194921181122779696495493692116482289369352953140593143101413978177562175368931916611542057250343003166603987508148613702626708662765084690958773544360867917312074538725831548213957277024583693665871640786055757102697225927146450124630494237836919468295122314359000793007011724052405267040191463199859017649899776959476383967958111725936581021387820618439114729654712869417773227129266532103391273995645729157501093264718484273550509199971411642884714863781438594966389062255410276361700965074529630178319686901158917882475658994624845562724249615838676975048885965290385176588942607303777783268370151806903034794252231852482811072998328808654204133303044804604890247094427709716824567710648567368980207842218329885651046881765928191714779133876027249817175984123705988081019455153348668456448277235279566594213277781501108810945013201979018503246741600067165446359385505168400261576022130638679351943181126576683579768796033097618205502995206523040300589832650754083375457685048026268908543093720460632023915714601811198804866942219066714943132089371316482085072354366943472593177655087502133247749628535682327297868219030578557917655683463664404454903973184380259092717960984427681164810940252998982986603519962642139220097251255719176008992080093296773616999003685014964672890948981771278636325956404821665223840813140264042232169813068254318008551632702355948466375227836100378305113648696430299471773510503498409047555759486549244468703840480839269931368676142063900355166246589912936011357665363737166509478158325188179256242397966098078959473324095422115328118076306310033436989298187906259614387478773281014413169306061948782296984516474636202569462352949835166342808739496379478928421272435016273568241633945702107421211309067341228746847542462710117049524978791964286372156775576018328135311450049799121820891697476745711439129833017912129062899161252945043351467737821930858400661128900348095620884792239742207023780103586143414525309943079645078513126018508006916579762428955743055078748021085524282300967331246506976349013122657406683195268313012342197317341762707015303933348100044560301818378784110368518512737085748090927044530126329374668520449499501398603222962748391720045830331043399168672866393127309655945632689995695753081532670892926806985802823893300299828106768187967684291486860189701174186102870077547161189866465199619932413312222490189761179304608784050379217830425569844839640163749135037939437556840156450302785765158997990697021633590852202129199630447703932831519310308310879030354818709489481200994647844452159812010505751066164164765061364598347679380405510570404170799286569092884798718337792789611855501524671546807552702334834746834012036434489623960457029979005835600637829134797642617526106767386986844711899383671959571539123863193656039837347955145133341095003675833177305063730114209017254040399278767490284795365747119204106796963644946183214640097901179567268694301152789965523928523052181645001861152613330424646905051016727723769485188895659183708133908580613949417781941846938503319573258718591253292981001776263309265984938107693913032547892803257380806717954450566887055419577375438876716403396993145224840641921706315512854197899957068937840511889020329481303432720039760279622285683764503652017240161338189615380275056787204119478312770575371911217746510270961068982586858242285257252386422908616757496466201548439002072806796490852947056836412298894310709350339707349304424428652899105851396545083379897746499455754491462621641053222997776543087671066492450814684981949985681262670706585024479994840547483674647492006938895780134144899202689040066333473551102592018454163113813754985665767220921812137374993679691520269628453544736890953704947594206680918628783840579745517855033496561123458395277085459253630396635986265270769295325283196990863618306815680463248998781209699487934652498656286599103205839915383416100326436946128827377343365287938859646417112865120287616227822557246451818770099801749971117305953192259595085209510921566695875293948927390597895497975608953433710553418710801391973982230745056044710130762627472422417782824719968438469371552868683598941511253223224278129413718240854956998319690601489578004680094625560089652025908514315956134528127561146947875079047399203124224376373830227156038440273857285848546027435538200572436539665745756195706941969051335985433862862618911234840636104132936125027039626068212004859824318946402748773006846279353431795943178975491833776305397830953660612849173843829931073622926995521000807963548279549275220267204357893541651949562626920048239334067437073855402449501905138317020602478682909673487157182518599149136341587463864015760051556954724259261962064661569981351215649034024702233017571838055896518555560809290790760876736064749494482211576525405989169791586797779210525666235195370720916116952863926252411867997652364304583178610348784847835698655389875739429511960667928656462913108119878498007469294252804229057174988125575049352078055640907355436413675578646184241018614553563282692463911868147577899682301313305520323627358330956350344867946331623637246640121523663258028685844177024535866598895436144479198931498771735402171540365760530698458071776741350123626288565657632413269787268389605096136049231159611887863573644656775564241104871527167506444587443450735269730157442069156324379545568860721666785903426563821414168284499981393704207622808438965015452269601079207571565840319766668661877892285953760596152496469998818117543883463051347683739351793116882591637962837671354444911426213867504040922389456770628616096055915038530520217000423381668617911402245935350096737210180397821708777131883759587961622059662218128326291755318073180040663206237457526085822988897696940582273483171851613804118160263900481359810934540257805325647261331989017119279328130692063742037379205223377919459200306903950623677440638634737337389470680793472217657185027649768007378105783275494171211890287460434316798080961905285504536493668658835797640479613449789002456778260664797812266806722578403869297615645014244998500697726981207896720469370597061166237751264664551897913110973924397850595018314033518110028756186352315286380909152032060205481342379299921903299409516032061649777773744042268469652457214784180082003391779019215730430017714202946082233068550065173649148812180168255009449796253044414882700845405369894787832498506345652303392152108517534027847249033374900789092245419191296764261924815134033530371342512878565585947129495719987440855056635551816108182680471022008571712271096927049811326512016664727641784440609945963014175880989382205820567904104442205089181199587996267027676305322836891009434257571963707437064572913521652541206349321120321307005134047568480188243526333339524189235728072232282498967334900970514972038292025063285492115840674130784891516496114089492331117078525529882422948240279190095900206358882927343494525702324173136820297025995853780370939920068317526874101048737723083896942077102944789142831698994913915684678083729497204224725953307896826798137887497432286698985711036248433338525093205886393048495585192850607662639246476513303424750635519450788082792543638294017570931157181682377311392951612227144396182549708801461321530378435562764743385977144668594257727379577339513752260638555613536718470805859790723376430861729481997472969776649905211264440240590441737823174546999734408811292047386308814336413823447890761689840758313464988124636989025204350150792993864628030496294500877282488063277168267741459950820108931054882712120484497640097760521418250973001611372646011199714205130425276850845876090575205242860155677040151224306982056063446771665753926733233587994123489043908202814008222520496033535362500261033674565366950548000930665197918950747070592944922555380745634578329145087503459449388313852698767796065722540929560812658252224500206091011730477007970078102968409610044145647385632597142652324559374081191875591527709902590162419863082334394694174953783633451302631553979828063930795203989378591518278021039712529654461217051294754480370874020974742164877493961823944711782427665143317442947735000497999710778744718797984855230300370953544900504143045678883369838880896255707522190729798470315270062719381694465273995290827109062422584897537429470804968325440310437219949318574641386742018116720885397675017160604174096928828156373626695644602403600476164294353000272680522284044527554171440359085433282423557125839166763113958878074459167230107638516089471182690261567082563283395490631861647111428470408140381113948857268513251931370079203936413697073745453428095630578990983982382355083973880987040672807539248212126928120662220055156566873867975244224497790683196374465196494059810914203537423787599886817921571115885508987474296025032022030435349058607424599023740765680023482552158354081564321573170032021417738000369556880602872683149344791732144966188801348144866511567634402692466501337197975477722003638649029561624786476119900160824867670681216403184579608918766172639249189296812508145982925034278553727896549457185619369165443884347566845593907995020285764913343976560171568236685504846541199496736012777267530705092914358372717653505434617820186559568918618640106101204210904997872557682032083601305878493340501575615833604188901165770410881108830171127227370873113021429764040524652978586083831103501439839035144009515471352954815923168340794003492931767450227277973308476603040932625131721053897991238716882778713826975696648302264846783967923223667913250993753270045125588014581102731179801647220063199207544318469066045438532763724081428526537232883908256762684462794253660378065769121738251957921096368287532840729568822454648497609148385381763436369559232244547181165767085344329567783858505768628553333613426929966714658338684985905922926060334780806459790065157528098596963604401127394826076031825812041170470384223742294807500005317674900629757572089255684187742156623210708391731137816474446098506964118687201877025489088665272642976439260970940708565769810964193789027568928962736507399651004213163459628114019548676094474871943537707040141648212092557121776604683660385217231535137578797898938697019608783484044575278305286917386681914126301836928504042527255774343204941338723106559372528660975772883523097344385995355203306018975555973525230778182109698281902480760127914729039228835366115104093148298954810348049434390564452006364133634491077227495131816807855620016676398806588768577925602757241028996565567877412263780057869674653672077430203766849490202330034356446360307726311828420380543685287322320958357164412651687823719690981592847195997708489447953795756836664482070829521056534388214551209959231480699444550436992322653796123513376053293245945257679198053703143659655522737532893293529770504487349596608109306326646487217771621373881615072804601938825878596306138862090472959338479619566197748704063084696758449402964051165749262638210684976763064573311573454336430854492971111221475601861948808812586823142235538931399449694415328274164881475914319759428458005382357289048559690150439766855581380209445426853058994642598562398974296123046602866659569009971539728254982989869442897226790415104321974816149247330641650423389844811038921956261679308476960469816876096028963198893316983588179518293828567566968974289140529185147459317410152017500963079203044602607521450451387824363965226337168986239636493619345219329205738088893532745100753976077856622865081900128674440924228389320390911302785471855188780111401094763042493013805019576954716809077137255414118442707593951621353412101111693432133341604549302812705735815112749484536308485874257099655483903119218724240971974611944081698126457027528063651597958793280262058604329275439058473709177207227147876323267969607578716911581685850776113276308116114960954705573146901325563373630703675196711669879980833435551595186327701970172330131047784254594994784646227979728348660075732607021389403599713025381232390723506888684545759506459306017058428565538820655279221075927193703017167840301748729484543935561596754922829105084747930942865708858594601833035620542859143483177402552483529688546684305954419584640763443750466190045623118714814582961473438775953024679835678409562387586647819094877635747807516534358584396506613669835791178067998498522516404891749058238381483339850049455736071215184679292622699257984151466960953397808043060198508452295036617375758897920360616799889657312774370716794822028848144214347461405924007210785242278594431548682036915273963651108710998112160325907095765658462249427395855327575406716741571921158096264485538761575720107541904915524379604540772771107222157827940487652191040186914241155143671662964777250323416691777526432815767219787589385234417938419839676777766932680390151113830477125658201975098510441291339663051076115682857065412259491148494785435436736161499874380608801075499660927130830325764731731243976227195534515384479887734124581020848500721480713310984910839830314903972232892847469678081341722213114070600961431992436857529462630352018775011924822826326178075398374548022528804172064131593142557417458923817143676826298831983140601152980875996689177357947921575243354061890623285353198354071576548932333589890684119756198994592631078856658165616392456338529587147752621832724537979337075498389706701075927750571892419614307784123823173533392626459006322291324843097500893480354284072692267722949919105218154687876311380564074265414724257077259955185925331272583787036447078275409897667040357226112793457227773084257395516630622915410541498121418022566858075512464932609495383961034011342342128028790563651067084308640697432125313349657297147956658884918139323181981344275394478397209158184429180344492665855532761091952869054459087793278391049489742022575800902478828195363471357506078556985281325979544056230654534890256180654238414569907471189412858359356514321172535811777232637070346936235219908585244558313013048300345283084619002098815520608775731161051169676094778785356802137862756877356767926048368924482614484903020413639344406258665806605620395282733565783889680136635589192366911853967052460257836178169613127776772698465665170210067840967695180131306331145908668749142649545635951991916481006049462219753617212680396526775598701098434184528628988995248278179028012570612890400584353198046692836546714724879413687455861502168994748933122685451429526612185011422862543190885828281701493629873603215924061801115575501503628466410126990163646921127115861171349369964059525548386153327845532963810268828351143569913940556505468650923180500942878935146353331716609259142924716169943498622793224841180908923258692314761030257760470961661804629808155767539393021830283133170548315637298513881604941633982494895024427000427692806487997249539518324352798655685865408289256418818170664355235589929335428978007628271377200289354581313443819228802243634052175489680036985302454504455324652523490313655567353011314466802486387454711924112974338796430868757699118324068180150678271322837494525324435119992077923688436860655897917171287476864430705509000964499951952708910233032984598649133054243208962899134040421505551798214322626426306477677220432125428368052234310422270457129747473837278424052611999065543972220083335965236869679822950134137611679402938770981865278540535991500007502002599349999764299275502927878629579645034795812183323780330606775829547654416859837888939554941668244547038238337372514719022311366724012381869538573783438243244496013662704893625180760481740567271553412061065025052552527092819274061519433719673058056777917640057354509277162275338397077983478041561552447481765178082496398240952547335723529790881738548902417454683488242818386185704109061403437796498479801332867890886258891256475118245757285440679321358305701403835157031296604933793221805236030081289163794537895152800091053724060082525409555097993222188777053585647335102936184191214153976745189115014130498332472176505800974978203185627801820900053958926671946110918041851807301070064448847936476062800283338800692168908847868247654752748548976955399820505801733168505932936235101873298967394954010888284754500639562412619077281635088916444010275193878679950114246468456522301062152051442048392545686291048252859833447925768681666473442468593269944632556145571026823262325749759261911532678819623647384008918133231473261984438959679391262082894982174066112333995672143753402510097761285602995757849927981681129847308396373098863947032907564910348394071195557905813075220296834506345591110109234233486503164716537093388759056969843285940628186245090336679973650913790253170366553962393159378557293884740219197039663019299508669358020478455975349424975124259737779477154958133380600469815090041565762470495097665009508315396408529223917751337350857387515050906184562349974732442964442162926751857975168036292298792744986235023925529807453944632264833184776308123579711485846036062358405623440037924925882616207489559607004625925715336608056627784857344072653628842871236816530191524685098614408266997967524941434226671678949107686826232234190839863081416082878241032436136670067859182787287507489614184955563439616897707652669486810003734783067872729349468690260063407626636082504284526764271400765713686589738149193394802428702603044892432931482800937710980085527201436913787112810693751846335415541973235327205152573271652366611857895842000246741478554701275065210944756385330293906561151782084462236540484942952777443046845694041359850765446718426028279215396665409249096383652453558908726776172127129379860734271947684410837953461158859329132080174170529732526364366119435645185770807167241095912271970009590940973613000788309386768412309148253870827929986119434314019718347656656092634749339626288217254505502272870911446081026611382016138223835260369870530603028974081426781549930724173470793243826263108109983088987258029777486065616940239877829337833446441642304270868321282994885772117045528085655480035263109330983383519586322665612583223427240269324790575702628067756880800909712668936269778450775055086005235482456650011321814020577568498183848483244826831044276146285445953794382096481859547217766016777338028942991976268755740262198425617187815381258581786477123708417527144004485013880590126700926990608235822001664408739141211704201772198340206185868203896738475673427829839676134374265338778485363730257488163963665758028642742798423753364048852139510945040676588913506332948219419669700038024729447960576939225369251552722355911085328665135781220540023048701771434082301319412853931775880094771097288960537757142469511384778495685358039039178171329315499311794218799858743111799643199699486817178555567940134087812531523570770636961779882338662060329781363430997774945589167531556786622233593218215614729286979911416689828039550434746247746975707156662870908117078905421219920557290323108869684935913533433382071330786934299233388073738763452222168291636609389717811597564755104746338115764922686495007349928418211713001679509062001458023415440146563322540783209778949334687382572518347345102387545632269814097718194572890952776795926463852409989947648587914439294467551754095029213594919510765036118100432479269255556701931910901054479667715463651906281398104388179705401231073014484908603883367350886158097219974355929740223215789822002125541614667287905995621064642031567383577166345033206671136553632692690337782444452972952544358066890673659438423903549259745984322778220526424719191047272090620672020129627434373879124908518078377793460522744877178935578219982129465728909984255626816240772413904618957341098694143833798357249998086674257469242386335497636295203982018523309862314475911236731149041709844878528493140079981624968944702175087063655557729377818047495351298906941530007618109354755742041946994245102549775369378188309621508108546020125536688145666873357621013785288001034699765957114718022539110141566837402796464208227428032611588321473454992827839785443409932654972995272374424059614840695337199744181035046401962445053295344426995914075387626754310685900424756630955480205159682628946061010030422071837984418573842030692154863450756051912893905488483824492565163136635875236549775589497816869043511248349773045973975691747304115811570558974945949854497735991371392208400228318050562693522746575708231751947412225998443604427911803658218805786502485253668726430392312862313039007795572264420175995041446816497371846461628927340728147300789086636416470730057753626728521714242341659885072619653512749433816132056179097249306321408421827200004052733896550714353745945293355007060209248423985591963084393119695708604094406187884219429584525956432233913846673635304425847572128555375930158331670674619631904422785614620992870755218549179737781931776211261822905662081811776203431748204386010760934661851088336737820547178620126610693638566887870504756763340288333271945140313225146310276452005187488243746331200763086870506875364389190907134096445741279990329645735528266607058623739112633172235068662989727050442673020016737041307858008729123381851257789380281118671575058671231507286821343373053219665568190807212537298598622090803138597391728697639655164310695353351976910731711926273410482270840319106843140589495141860729271040165392713984990039320585980284735847674343506305667235458713195694434199395547388645565978954713340561105230115464392203046141649775895770103790453011528827916474994317116409506982861551466772396980667422790680979283256110335960478595767276387433802373651150055687978573838438530034692104949980040785492207615180116097942510694807686128516182218749181736087893612456207626723548537002692819586397287251098209772115564866585495043511550932003947259148447844416119027004106335364044202531676315666410032712089462961405475509731340736572367548641897488494834659645620760351200050544295643757940696623859954778897038722890608967759834532417809218751824528627340474705492579505629873886261875643348430035089719461808784715308224229425170476322786745997123679030747301162421682768772335395915791504448286877935715703748807949715339416972801506005682954815394790159603487715277324218505139734392777782573708433672554388918221210519256872059209882843427248698732848092249149979015593262826595129755794822881100259562750792688739780426185131389578039825252762185076433208631878724399220803195057439315414668502760187750732384659183027422426415065960544725506137220278031025736386840386013989752960801635716390495241940132932970126041579460874580436350824792042404726975972269807010491621241336291574937483970268847337432473045377675157013724876861310648298551720744770715620953597828032894736308439480523955024437456378631952097328466084817494814491764126431132238048967889419636490556720679317285185303214717693429276157410473551796831262655888741545054911119426650902295618470028235697014249983976955581049358120840700076476973318699083937187110869814248698608428829827053283171933909879956897484322811771218789190667388192523238880336997112132687977202809001243256406278610617293244993581918879546516973940083177608748276729968249682847527442526103590628141100073540239402538174113311260732357437990438745485907086913279264405202964018806627878707336849897435798175648280085048200281269102178189363807592830785093015370749390078967946588561561129027248426689676753945243862715716301612444882462215796168461276741135146678722011039946600997752140445993849530196975071425210843686009910099603107244668101486704770904674658905549297686080712966257171015477480153530632848949658354420076148341128411528054508272272702527204828769315124531481192006257310613852986323596245531379762431750853387385356119075237165057759993135488325353638253175420749501475511472929359567573566026815494345683880109918745154535569020724813500660937730824046148966213768703471801180422921892112620996504006350020591626205613177751243448310702200605692170480819919528148141416582411600373615457714787758833496242709674104085342666346481732145564794820258603629469505392054518007220495386525227699820526005667938067911249406478096533383363152874073606370280161178873689125207322782255977402326265959917484015170032073763804977506465564049793488300479254853378191026546302973272044906272316279886989831340745779261730830944539712789303607640102024333950556695814339349059787565601806974966688142393351613551598668145889656643639676527776161857113763606154458368281371897636083416825218576271484128925358164739056893269230707825290941275325706006680637915512240679339257553497945065986549258878371119788259767674262173276250279557518630019678757375088005829120668629273443692912942304358502497584182760409820367618018496643387474367902500442752396752289892218314837481801517743096483755375914313495885114471744807884673056140687769737710378325836006923419261151066785215352163047384313925676275639270254749009812763349875555942185269586316978232670871287811341203980693145742363717163285605586716099034085126405358883945879881513048492687886256583148077324098289630458109325486858709591694282146446550497279056060702175521303420173087311079568279119665608167253803070261792838561753900791475631989768775050772642981927330355752150379068718001289861762474012769900861632979294450978429275155542775604135432224639956243888821093796956351830483385525202958018749037626770796038020276418702014735353023676333786063855301887832310409811274170267675103877964031106024714304211032737035538357407986473717565204272607545231992811707522310637859251128532360706920459515175670708250504099922432371379956581480122866942101848122703369623540148084187479686417992038243949488211855006042559729535099256439153351273126635060539317965566730764330480686747163581310677488298043412675820138223849111535404889191346111444334931677451184442756031097632841608641343144236512333983972684037960286525595249637036903803081276152628886420462982756482596636046373853547596535348077728551858021900523062864347814399269800731468898369327438386254586556288621128948090650322416440487621196404595613105045235351225534508929255703925356158901746867942261797675345520970890605394316704927050506747921067767268267290931930738296334959456432509970827198969697865338903554674743704114569384964975105791104984634278479987711176699294235648004698489270888753949882341936249884497002172403795489484070123281298895702264770492587541701761444483688851278744678764332880054962800259795388949197293019952621025234678733926433768893222339866684150907927499080945942038418931933244151677957352990747212981878814272663602351464400333971717976677416814176392294025542080410254437878147191401091368051412668347639236792624008165771087584414939670251839299705047653868734109567059215305610949305245181774219555843637903194464871662817715824560795302331175443670152617574507202327319490969875581088881937385893996439774496017561979918328435906973370155220602458575495938238116726319753265165282637490303112435417824618292755045874629841373492330255206891533232732795824802027664601949506031319441791603706485805685270444961634705189716479808043039991642977394479595153344496072733519511475317451326829179140452102684077334141037203957101924285754020519013602709205337856259744698287978462410642658096462138010772292968760291920170671256065420240597347351470356289803359884294438400983453155280760563441736804811727900237399631261119457539623418414682176844753360128128050969041903253408676787875763856247780396304966725455720980017561853607787759939083044217218352126425165217463632483585966295599740939768172026821564598499935960003348575252897174854870627046683890000297064359085626974972392053127397478630284086053897998576198636809592027759343411773931876405578491645214916518881484514189600996641249835343346285156302279898264345093018995745802509073403352775305514206721520378189286761152120551908017937517995609689044976430460826107021789580717487963920125748311806891297122540643269138448164855860987099559273482435018534402085919775871093021928845763658297598244073983227766024521570878084766676790580070148883480194310284261772069995384548963518278111043604358215755534812901090422154697571317575432103252521127063316034617128394748585206585620810997383039816021111024057106555835792839413235921087424043184929025472954389364618977230196719737441488334865752490728273498188024522865825025512115855198476024375766752434905976773404476875093017691100947126232331070185720877459157403205394426817328774433500803976662145988472686062618853936927087576682481474880408875485450065894734735526793509726605738145240441562045507656345305886696814708247422086411261995493297399070971182226454542758046749345473781611860805559871264796922351927551887906479783973286238597294990731192977257043128008450248630456368189765952757239589816073108579730274785355710427367879596983076475476990693282618576903628958562414027895899085006348596586074462614704486460461048776736642681998223957481633642167607288003243154678857503642738272896180956910512791227142405024411380851525627340930496447509012223044296013235795155927051702187884386336301338808333419467527191206452812419488246924706901894795293458017572508934897988888558288847268803189913146112551762825589156357639946271431807718274312332071803278828092061930884240208389707432924524393985839834700582281450003068419342875616288029899345842236399646747718472253052734969118412957306758641212705763626442166267176253131172077684805217108889341409107335552738990868341336671574213273785642965513495152301320346592654499589852883532212961506816388857612847440325263235506434675212247815732010144982424782515940098111447271556929926461609836343489686863637149585599508823744125563027053921593792401684404651301483786516151605278441398214720122958253841059806444797544192603659760662787768297951348266126139287747097707367880196642056854367448592088136288327886763405095432372134995234132059078861534479167456542782130011943266007373182745991806908059978312469774149881434327943462048160705377176855018031564437368258047685130490741993108857489884128447598723749178893199167886437176200056949918834061749523837779422433042060107678104543061716270414901803835640831038362723940943267217893078722603507211707500695733065957518287387798764926151847151762643553406736888059377516356896248584245488233400131229843989132606949684560595455890544497941928501245583171872927941175102703277959577206379803358503169349915343991482014096781232622456149831854173917207192638262010319057644548218991761608447679021733846604178538698688111174529629605310341643969844291629822803813349399908538993630445661427695192560321536347572780489723585348078545919407836049946608546714753036034471222829159077172935409948820132335293364459094412725341153941754385419654006199656546344272776414530358925277894722631395537830411004846376781769605438023035065109345827883556713221761153007929093951798216465831924133998056490422922355492432947594431727414473537009146930468829042824150369348012999871116422670215309797802813353651522056870445764132710493539526946000390676161693021070006617134983449003332437081062454998802560927148722209773269076174423389288290481118503881203045104122115068356078564714724371721617536343208355317389695377087469439556153493333554804862913405101973199257080325907410796346199468104081406148470618350043301489814367831000557124516671253740686096772880777766196063261195498324203394733763887047818104302008257164245409380861927804448876901947528374760181204563850076689222297189091356003951007279269599002333885476432999151233099724297015264181007294722743852564677376588554088715598363566042575924550221256388861289358106881410437366654015680906003586175715786247000554460080915135800004177072420223624245075397758940914070268500656982304753636071902847934311430793642670308208733877773210317283464240382634185243276424760183941631694863081929148665936190814382961690765299193781420660525154683261538858070488640036730705549278782469898124947834419233481692688460809688092119845250139668389279794312405824046734112397568285411129059730053170660528342676255120711846977439293202050353587623684181274641781417486936443809735643320815394040360658949852245353196510468250680020123560348861761999158118516233745302305566976668908220873805075926837136044083877376316207573369606211798474623882257927690546897770416035364137677576162624190430818066073471904549626681706158638440990450970475701094345508651454670917272818820007996666995739357857920672639385751310683143865531083691141272294911552699104352829685259334103404436724497557843262836844805107896183244483910797485607591001648660115295671983002338828212079512288439199252072962696234654350849015749402687641600239502418838357415457453868634933001738055389242729885581144285042493742278449237647678503704522416026359251370176593130647751770677337235924600694943495322945013868080917003997134689888861904389059139965364268230626826379240732530553067703642004210338170228141213587739775813156078344250942179030566679019873474773377224496151244891084692550580483581209230200914075758793466416517154500285405062799771003059733729686453814384255376348731471105522212912191293940591297365956223005694111559041988335880570326705962583679724910777323446640203075142278570735178298868822095751602768397285944278184587334737001610053270092810026450558078561018275040552216177343994271633307181006171214572028108705918702444515833712954533350573594903176254885928321465681859622689571742528419942556657876238440442890057454694661496971333345177332613227715607928933673728170475300451701269710190682983865907793301650468715867194352699121265729752008551737261167342924007955002658302094561283535557915234866911063567726419872084936044890870070889417448691840374486999853878814063682593930589983492636017212531878521398056732411500024312701078573142087940386938074321770042890570880862847988018950496513810920365471383418986050369362884896263469291371924193981035550015331869887052517080267589743342499471036754707223089981399506102966770242306601296266394594235572224775912209312465629842947431513856964375016042525443438761791719331283980009650477765190599890600376092610173441938785163289034865439971332126162977017030710928801978280386958873607717757054792365276964166783065874621846957581968438718275525795350908258175557097888766507748052578811924667730320177158213319556837546787890239433725395522406400668227544055246933617026125812590695202222687311631108668195180867847532837539734494675791137909896026765216264073346097585419334220011417608431121715076729541796528607333268501314947226459969856296635880125504675458051942369613100082562305402491648506006265638638327774027882916991421906902971191962803837152531439372367240464640926944648154488958501948490572318945321969137315472656074515553624361732905377610975598164959977021051497266086136669200971088868513177292470649405906072843598579125297400566314733666649122804190669043090775900588629849435943351377828171587813031380291093275886397157976676096817470995741233469497280511752114634154247473619009427262008633055993880767217317806393770067171002913035144084780820894979003059780735000384973232043433351838160488814405095253993026109579438784632781055105183800470868584765359850753162983359445057320881464924209571773479373396737947413860429864136227088028226222390269428350204198293038262577918268290392223676460952900143435088032194959844158697212864686181898065751454070163911963585041988899669138631164578877679837770592582231209485833216260404584073693610273245272849900716602834225652819097359669592309240366461785027286276507818851893609899349575775098669840751632592521246533239198564256954993638719685218028860682091633899869886897546188387236991135376485273668794018244305867705106189174247152347444891795348353581603130386965632037807397328515499512572855747685210719462726131784451989920289360855879522498701100721582311865198769467823038072332111613869728114371773405345733424368267545303499950623086995323454578900709645132631633859544279094950853804511368431646354258085373369692885837085433633157991383568421137918556369101337757265192542478145680182395360338376496393811075878724205388203464739875740372465765207824939996685179529811992066726440545492922407029107779463208796850412597030960968283281080469787513188701654104963571362677970363469612317716737936559408671159323574800601427244665976851661625412698824170137000167532665046686114009663263445636588578336855760213514349416056637653172003138260247913115889452913179152349468772917973806316530333362482989656764070922136033416223217877480378508150541588783479801534058107929791153312562561562819259746976110465736974536152399444501508816650982843587249374600068131027935967907094247843724478050931724727391487000866630613963835622067101642871673746968423999756911818934250812300766516980821808310527412028680704085597444503975459823437395262406381085840895868537581066809588117449996704207389243493344638790396008362718891180448397366211886658853508648938851749837981589261927062106094786903560185086681601287479268035608896637153601356156425935697333251547505428285807220501739194833155253362420988722519872957400716166543875820227725812038674919282170460617983713447242214503718162944006810610239215344173987078745325751122540462948949517032546684076411395801506826073231257512208793786839859175736564856525123971665908856478418507016959616273059904869037290454667516111107214916752786237788403881120133196638433507063638041648940473514238423248889770077628246557930066036307705443845572338536871006200783618448164013116881957784209197442437277056875894797134299589086211456364687819035382952751307415005619907157073333468540376094375277610649871725640204030611392647514656039238909308234202787378673530168096885613225003948935630321290126109986752439897009220246224337619400781201574631390279337249860202267623299161893604882512318653980829134206347065446214212313548501348803832508728565267478891186514296611707308426061594937723788668655314692248512176625132505637510960985125230361122916536619179320662796181329295267133166640035723346899273106875426152553754257607861246499803520288096055674615077685528038698664374190852201795969028582931314203132259328450904998087253911663602902946885802430791025102190826405532074235283318893594898740666482157535983095756152004324524361896532029517804687305102926837440695054827268930523790228772049414216488164210065643118009980618130534249631381655333093437220020600551325940415935019788407921985525498504538143716914452793381170008992312203607101843646174446915855878936243106901638200046755708515415596642338782968608358693945462561074803633289793555397605369185465412611822147534168233032648070258846682897253259614832841959348545564505734352018613016054837161279726947602332679182563487802393415084287410220992970440180405545393185251128440109959767847770271686377046067576762358914729577524967359618543773652370892853918202332998704080977859362259523176961459160814026166207224294195689207080122791069154017993650569533952323281407564622732771104535705211114439031589009153428928289500867963610966823334399858148186131717660409171601813404156538097653485818210464739321655071098702854846321971130147484594628157518782214556282967718911619400730373837532148246641973361438545126054975950328213374713341614414352293323975396847190832055494476450962362680373171258221190787386230190454523129087330779940373550107771090479002833590510136719089532496892900241680019711009246283982697249881674013998508715461856414537592073316114482764777812611513281234417080815720917900572384663215675151552014149961884849505594988889919335887260918094980064853161275199328761338464491924821776380591078804755423417845647719045941222836262121040192743533191650812249900629201112809536629002682066122756427841651161031881344038000982584340806388744198789621892378216833817529662132290177215646590792612761706463928671984349546180976221217536615662596431646799350482332994779816264206668199843614531836473055073214189386896220602176509183686753327560255196687005319062225094412434677074094472711260147052982681240829305955121663773652267346899162149560543574800848872706290637810580100057653628783422046911763081550970000392423081813144644642755957504990029250769747697275469701902700667575699953352957733169963436130000203488389221007208032587495657082579669335351146449051271918057753978360980207387876656971140568865308292719834134091899178745799949857318491973597862971688987932375145907487843382725474002485444559986070412931650721232126910132059601321909343400197871297293105708428488159265686329957010665641375661514553174415174955168834243295494612508235475534580593536338679609081275058575841540119715153359939886991631079564974865949887667103208873521937333776928604913415922825761635428484695883686395590889611535925348876408425635330902807888411578461430127225454024890034497722903498637269172662881096653976975370240276376062879673047166488624184668330884815525481626938934862539830589944288045034211563511121400848577129169441838640985194096944414629066996831898145661558803383378152185733564470522651328080614138976374221417029713407347302541158598121663197582875808981366983345812995585257138403281160995281284694722761871997902438697299338965214213136900511178885441861806602272433943603828164440377553256645281016113172729854083270049032787522462804424367352385337409610871738060273082659041938943771622177279451902319032492073856234872188001055012832110524938084262161806868970422126288995259492785955822029425008880879498570687105482715402369049976022211390200943245540175031882595083092861582689280825080919002191754386686211719294105368510981311752251470896942081740961126962882123220536419729178158621447885537945000517853415698003879007453261597535604878083796004862072962001673907287813158267160495627079226454348664329965462093581458160608464344803303741540748072604046663060179078414321476567420678390583006649737974039586702639547243416801295057484758072089808592894024481751424985478043594932866070388091333721448210893446562890623289176080083693105966379219401841941161329515617959376207078949880551008259202641666382261655362733748293291602122891951145574771493836107689660615526537143399664687429810131143972763826577212030143002711625163389850828230803304199912887791934782973705477050834769288825024153931482862249020691343524658645193807753333457845537148948698518122627197038962868253225001817174930794520577775076501882652523189969472888322377878176099780773028615729069829025511397289778038713959293033824390959015626602188434086830938165367032906791747318957233879139053275480042213657627616644155211059431972266897320373978406359890409516114454616814798681892835533318513204209786129939586023908103407466717092536676710312030562515481715441099873050381204980628294996395726439185996836824847479137025888266431183080813062306639834643230097826449957432009505945684815122220359861271086380153964971195306096819758887614309428251009726721523315480278035658341326560354093393079903037376414532263183832543688759766831573760041494810119570247985542728901004296791643377327264003054244945700271481852631898186225214736875150877691529068684369610267671857138782137339277689434096252163645962359274528645572011123350189592614858506638774693075909343806777363917613761028994118834559523654692422498661395502276513786701419041487567025082534531921383545806683121846967422379560123951290865900861848514793170344990553827149677235929798652135327372639978197305061286711272970633965098123365159800835122960695024707270986586301799140259420812964576446384299915059010616746565914738370641141517110880207739083769694921420847072004006582812317560007845021324883647901664079937562475155249371843214604909446324213269985314558284042114246651406565918986931444372525867392266524142010281649544215153425934175307813329304580404476064416093383398025354924584271881233437785211744085700948894409755487758763297287145439702722092537708324268122829501707481767347941423254834738799533135540519488883488267413393849069729078210044563251999433437078350410371553188217530008345831920508324875441514958217941400723684372079542285576374889076636924993685930938493086961578665456063320404173864885054186404118017274981267840460244351109022413407134834631113401559298812098570267313432318016136982554078051441621029553421259196411726077185596837077636425220460720884229096750688611300228935393371223112792857590243714768395102734380572212642661439590610735042666833084896384107832006923376008912657487196280374644466764710905166199753037245867371614748727774564755008232113692073713761824675618156011358078388114173553890362887356388305181191935176769378446463849127415374774818973904832380270444121677178374916654078930455469392163262055403058127190339271285498234082310440048288631162349549508783021120085995602576694630671925101653485404664610282347049382002837192416272426842955333155635088598220377268097200442388631135658157294479943234738081118496139061109300767259486729246353704841053887706390314719221916895696212692267546790359554956221915601469806441243774420189820685208595840798059890995063601524390871638837024221670853770513666429192729002651091383294747514678910991676249500353507674762198005107469500143429734463695600698472280755737982347075908795980048912315091812274256286399050809480317996445078663099353827707838897933705543925009304484081516162734699334298284285042512138897986011058506131387708167574710508957648236033411045178080884911107075185892811926678141129683025333212097513933838098239991773351276358696434929257009863437210619654484408322094252715333089132118626899313958690891590286791872137917443606511906788504171703325512553103681219314006267206669119643705820922384239156392603808059984696160611589488751685641327651626943169035122209889706818465056966069027900524268938564398594169164311733831917220723975883672134097454987104947802735056584508322848813061483605755402763229839855990575443238903571322269658384477909398113104810118183919724318245976797133212310492968294183183771638379800363850535088004889318201847855592065543412310512819879058391824534290757229912835803750417461714804851665854509585713555452193372321993580259857345595935082965466601037039205435084299117866843894902555604294206506418786768887523569226633905845805991006541634631183152220058416291229120421173127728727981629620678091431140345048035376066031168378600402279089138431420309437253154977271974219589598207093558936587305091151428952797889561751500029455881095162675088954065327997470955521213576285519277259407896714273384928192704752530314279082596555793848362866911878964731848182436650291068510977669272116922366472837712265895845586484292205577815831950126157792263221071743107685675680263361330615695589681543745287807381734898196273564185981007471341129362658591792464702369307604389034430080423747258718856146550962441186623719283886968280423611332060114176337586629170185089217689848548749717713844693814120512378508056954441860088429257052083736043615019430900247894937608079739870600496016177330649860258518204696848732761358328768603030796925699184753774963433537330998923996207695283385791744805266809937836386611452518024211874283016796081186178894318100212784679355769639329648867117932237987414326854296322362399298715901302184067799063754041705716808594863336046363533177803735066516223460289883216321715906929243981903774207351987893725983303548680498522609659047967648377675891605157023832952545893177337594423482275373988093838793379380164023412663760005195376817278846065807689180176915924029262485789494557520128116501841193209704758189712506166030296481074670696389847503809967371596036113686711630089360608516075195256374580775410849369032700343278580812473320918375447764569471770630200389829926409975834948880698829709929653444176605111123269684685919253412598369914719489269163074030983490851598030622301464835786509639939626014728210001101008316350104025670710068484296897617948351220447498971563016737418849270997261167109635234689418693406658087073100002342195707560288863106242290282909641277101472829074604966810096578073768783242658626197649039237045916681011606757129736686908760550317489414114222995480806091140713184346810323052223078068922127424180556138911598737499742916205030110184687023343455460554736983662692793497449834158899109068030758536997052761878721988131535615811235046803169874701020474600859473322477231012228045436193701479679320601567436567238380243199058408730777759196931177837560599403926336963797539237867424162624353024362764644370185018278667122431191595121596461942026750964306629731929332977287053918465783230864626052307693989323969216693708646504901156913679912455712921774275729247585154072892745154294259400167544243843725340332739988782359246482526325693194681640454176024706726245771229163474972588463117987593356687206482806357831043234413908579446193785933923963121927307924308637582627115060467380391878757739851951342007840216038899425193559574015769826015121101213357127046413450050621690821656025194226898603893532254890849962891899142169879632582158143610381564194103479248797908265299450997126485373333178918710483305032645115320629718888508075077928922491038663222493290619858683592662912022211806750583831951392447345082683625420062915037556635579495984464397947446605032668405759504180941381856983141062629604916248060359686711490994031446301557184282747079525244007921179753345871485360415308307150004963117829703077919931172993106776309413404898035765098568985420447069463616534726229418700293151265579801289549136012471414963309974729001053323124215383635532281292850646742550787519998711530001840379519898338563406012584432081248655805513240935600407346748358296266633037849818267083932804786877432722326079013734473169469601897028981933628687657004802429073997553687817903502429349725345019283535083594613829171432980855609045520062944116718846624630960406577843758474636217399179216155813236324071852881076148713764165851556061391905737273034686879141886912988651653350842703120154610092964888354882623784455251366726468253238295839686382760342451780399390177365753528391127705455234246716663911631623222024264317697968494727389866280835553965772494224768706435384322293317605340024428217510608485242593920139979217624668766957657248595070490865188899295363418146855877796451022306806396924987495996388926100220306372785788942297260036778935522006978303954367769477183062828510879684379064809477619455056893891742452743129507097065036774621233558804872123007245883436611878193264915965494449550703935079422787414354609985873355455197335003898482118018064112669833086611558693352064092264777338908900346710776292211245721987589007201608601163813889035175483013476582443539643570878750929336661946218746419695017067647431579624245253129265855863197384269947204123613613056409920079167360457717340037281634435474470493133121088949288317055604505882793773254742222774454022609778950228291880924650690106433470309374529320422037700690950860812857735632176217771043203366292377244436189289318860438830627924410428994673154409306657883360483375097366247076809468824426408333902439874786575831378330814709458038627502264109552200449391036255625457586257771111211395773321884813859716970983198934766831052563791416827501080488186325951925039311767928362314502116574303822044486274875425182462108078610876963289148991003612805560081784366769954055613782756675048747588255201656128615867862644892903422764190772592375413392442000580231948979902988061239846075037262578717034415753679212720743842996599707850843115430917818054416547898950837814983923837433400731346701238606095879154264741595441217325305559449495623572863522508315800695908389801966796088879943993568089682323469258254210765890221370073267375337101858542457269184639238192224908382941799887583709289535654027342546763385341609688614706056050632070138557326175996282229945329484266150196244259984695383341742354420890939538924007341005365192507909756893917342004472318214547229502088057597214332684567803874899216827334767475534776814672421088359491394770665939983854667601815183247945114438733751859246910319514870648730303260892220548604295970929510484253076376789485736133398334157062692351152192618766197465979340929203621128857558959274727932682167738368236744227111102989199472495782512580806019546612678675047456789947770979653459547428683467330521191257825225503319647922111898624969586324910363067027799757798628103658398449133143879832792883457008485541675274855250535676796415889845067645296935169957800825858430584672071829457578835419313749677191121258792975945906237033026792421822163265071254539752408930753666858846839246244590780318486343100630847404995582248071890628151323331765577592709482583618985045265184464683531334063742621404364951417819078661404610788551339972972140925295234277303277852025142228847049507873601819265161829513673024873502391240746181209898674930306568189467448616311889463085284148940200140925334990286955075880769315937460408858565457098170191961301656266867187654873489375240901031372535818193566496487212291576553772013272426088685359672435341871349865961913521089163717916474323181114096661383512265981598371769931648425946031139617222622511745399996330845306272406878218921680333159458187035921695627117077194418320365461769546547223562084531922570235491003975589594178232732240278986721538924946475921101236441024609629355310528179981945850029128975432742512947637088954013691108123661654532989376990614380558168873196459401123240993400234028529618590790189256306617300568953139801971880391049879157102979086733937310953523173331722552870912993091790909985778996394125069780642397495222935332120550777853290734088846400396863449591660589184830734347646006873459226720643250831429967727178273641557371937768274803719177483786411016914303315829859612728370150622781154993870045371408527417579258195074377137614571523984800339142929083593392551064783729142185503817580717791026139829180616255974254165490179941476625415700121672509706665890231293242937750406070480064886264211812490817237182543893380714667302754570809964321534031902206060285052381452480093718659622364936885397041054448050255419066936565190139969895568973235193556933538702543403945919290047754160292031549939197787895022072476469290549731943219312082046832023828382597397114245132751725844854294816428274494352370822352152763310606279679928416234309057685586018490578794744091000269295294337046707238287502118712986682605080779036375809527824243262200667384530258825333096717441764957807175302967205736559781857367891948455172831941713408892969679101025141581269371029612185964296297380968790716573455878672069526173544680984001494396862118217891625731901391001034445276825101483908135142527901218541200689221804787329874290733763167859734087012859194653033037679137199126911626614129943653523349594361999449576018369818181374511612036308535569332666339345407756776678681157545035718581977964346354375207918242800410081969415886870427227218123211779426708012446091363739048527440393783134432538721663703793101386274479893610204963955189064318788294394832369998213620850928850032600913783240843217301288311498556154814418579234321004537405116147187271100185235036291327956762630226971635782562770987959718166893053418146648060272811421935903278320179135910570558535323243560653741382076824521908189768919832452270285654487906723343577189547704903067639712526518935291754913413741265581843116714513432991075978981023713767407374766028478192612785625130255919042180426347879313522557517138952987203558786560387436158295242008931369201397080432883689439841889558518472058480673685784436940263770473545314323907796008794453491529295634093314611442550343142910380743066207101152074264625878508474982287514579424110562630399212004387086045253322039474933559085799098219090516276877315157444124914326361414836100947527803424941321267762972993236660981991404595238594036185434640408857081792845034895780495643791786278911994323338159269372432621583858237450579695639327917107336848082503308010555827126271172064713089341862007505122362981770385295019459403268827621340748196198852290578103996571976650525514512568565748126701515446325825498427245508886782811747667577889427918631149177841253613200729273777646912058498676994791576351717832121011694990194465114662335562565912407973449790701281854631682060513746930666676373626679219088411518411323408358634429633277927378950377766173935343237806420558896952844798980953695831481356242900233150897737821792037089730010297176080989336658995701028192088274215053100467624160101402612748114768070656546397855830194734091396177929912408291274155274308900195806642574605138290041280348323119232621205300181806102369138196022371372009251722097410504784812133643891065719733240785248490551653347538297791502311152253517775307210956980592404295999229613145579463092477851234660875333058635869504625472977756285053237465493675725788980072648597490219926188074611914653171093034962381645474186416344548400291085275606700428160251807624760256450999824728213032687122000164159525595873105006956219390951457103861230510062511600291939282564436870803737589335637040323764689746266904292069707332790684754501513089457987619205198119547981629057475979004138622834149824083325763086134986809112188047161877838823256921619781397220083472853799357854116558231186574479941132956193038513638383551254581424716906184074574464311722391984971850319761746160729764864654651084011904598741462713588715769550548729180771675138372950354897753356325989127725095652265788290056046371965751544556467300208941450058245632877877169289509716657195736759052001756989092605394463292370452434605069950537636580425873513662331573403508978722047566080302394342414324833655779457577367259221953575262573815138437897574541566085960914119281999770029343261899839432199031783952022141534520554158288280521220816779076865828618198723043723608874494592345056391872277716101565101775706954893725823976641625835848308155955774359175941245761366140066638982536773050274472176279987233199113112282977703305034576910103179461238650093430289121054916446385203796317660558247933684418667527941184593727695081885785507128093986012299857550121837143878350254967464758983813779955235748787243504665593597610857634716909123856598499167397756401017717429173337659588153088653625481986093883352175334868296192474623677697976625336735368987731456481358663864411070915303386355778486423870582285595419805968012914295697591004391330993710778488140901849532704752704933871241246879564933885510618112028543654225257491114855887658884645276520426599763752192072222219664421946848037546674976563373198633833332755670204682314066932978275630642726913542454972420980157690348060905342238172242064273409879710227836105009542896027936355591728033042288181975450965644140000066159243801028925241735914767314005829590590161647776640596855213410078718736187049985369350850501871968052451107309971076740347361751464028892288851750653929025483402187602094354603527516844306416930331254147883172756528111501815124215222218725582362699452955535359495902516108427977989177925732738634674107649912024405032958841375267565971836097422281963936037491450239976330180663020396315681609234146683408389818055528968345745893926737842608108584290116598835681897532606690015831658916815623527559796766271934488041907892702788798623515691809036774259623542075300292148686258899889250594859051512475727466668986574509539145269054316697558645466759855197508440429311485770969143363314743493385755947880159059681631107229555874296755561551037282133792303178349281221507863572950550226080679207213234451868625791194488197157943601685617187611744917803061450290900678492986526359103802828349102090023623877200874837017377572365175321767156943480523863633905225858567844371018633596423212377286758695106806431004748179354728038948305988769542569334178690478904241985405752296397740492220494502276308594312188344674642806865412189854820832812028971748630088778666362858894232493690411694007588007938493113249501673395081918944664433489004963067625020659729380931151939695538871399669486518155446010580581108442270421352723723349414207324766993198222569341534194335235663123996120245576371285264115845230234755576753556381010893312804614084219880879875523287706643138452360311761461529629389482980135884548354962160587078051118322139553046875695487082918150321558192103974723109596010462729277844764515437070106621335697502641012221071753452963437139662234790328898540762616915211855437774623519717106489874868512603253093517519722393566652577438324490724286941648663030106658521665663158352567472021400192185048854105969040179348696346643340117641481035143021544009333981554500887788936496169607761948402689077904012468793257270794692881330983611680000426374323109573920157524613395191643982637427010120957724256270234107030685733645459692298205330740427948812504575468816668914818831010401899856783374680818787134978467817739403737736807332316556012574883290780940218150429232004686913609295395340453001133764481097660353968597522621294619352442101535152912724189410042549953468762448844200449874217552380939130052596869693622500384606836939899200646551139247325713562020266392899251335934361551387158933600036948673131787960499913189232299138517728279864462258312065806443544410363640644300128905990848726461468141049248341449838949035958710431737999023379557646085259140131055149869829161826220291155527536843937555556517505216525881318723918632428983749548324150740392781960060422343950491321471627714620585604058804800592060148826438676329789846177811902820066937648067406322185591376320315234991444017054229269626539667507652398207114288404439356477590097010137974827589701393402014513905557000771864954382152760515644617982531961012349639388939572993651767225499512922028798841206637321953614857210741687248713352123323138967425383394009124865609918363722530152969569735589003881659681299834695135767935885503225811113855564470433703117739503793797702822181101931559808770735928964611087682939280958377561705731797774291468742899362767334652306789809590662282580769693025619523093257530956445449945780211967273174807363523964818129857693021404281930427336300860458510927625889932194904041432992374667846142021561350791956995665892347430098156197421105479732712828572099344966679269422540725305249667671492545099296619662221500486537975360734104323878591296750686183179624727857098187712461796859888799712916786218981231649947857575362074177129924835952083733442666695416984563060487046562994283154592992640284550778519378361945473015054683997573486913650796939806586395194877220888988342688802820335076242652134275975837530014391995678510387667546715896008438061245819919020861905918214957401248094595099330218457625795940125911169025905382614881437489181122878747553992716051183970683917086997872507360165368432394648131523742967258024412034156272826188340982628437470417054336433872871090837391466480419786811693302718258683030794464343558440954693988195469985932405087128894486437319396841269382566315526565779155170821357543429939734688656805545153669063792255154010570550090290205415178168759525859987470584276171632151859524851502097865751633785901283175402935546238951164224330110645823874988617112607166619188744461152684045770116556558273758532577876881276790060793046180035516564863122497944762168854269050286570439987588641367870381953601216259040943417977353778576999326286430149875251880948511927559242739144851140911964306350577862141562956230684744621907804628730985359998264483729987212912772449379673995554164696952280971906103650168849839792244004612897944782793062588414414868624109596208886197964202785209807156431815892032178003964554754249822269213773287784806592093545562776372362488483143423633881698220560126900702944489409900921941862293740709001831548660883143268016869904713362879026742266416878336251560042475545756258090978941848755394092690001717976353940059326496379835637578580564546840005645897909730029814607388984952531702258373390225775339044031090549004944825795942786187531332528799396634802605071212682396614937577699167602399128547113111811270328882707555746099966036387216433342088689186577741096316291776989855769290050134393136283150482886841184239307363206859743845781472767818629581259266269411498984604633950385566362616831901204678557255796752498279214700166241059926103625861202828342663001547945767048258992931710445921811608216760946354062650706880272751143185289354777816745696852660579456750034297648980755530905022759138907904944552616030477429484046430572344468915734476754163234022516007721269493685320839679829054861387807097086558009832773525518424928361381796856060180990202971735806568371363325677238342323879788615044225904453433437050423325662307708652823150586562154792790835558335779189745111777995202893255504715047509208201612085479032552406015579303467693229033901140301847713252916498340178665140882234139025316935844035273151015278892196669955492194403444667269568605448958335767002039067303076212199367796455679698810763470427207506240254727872743858464389302924036087203547785709238210442070769622872730942152706198939520733137871047085468102296064176457449764974799545890129640278377056609483136294319584248403988048385370375964738432992138241482860453932135269308485620685504157407077647519983706131636740827779597242142399765387731129258172830223926000711798727201206346932808463097119979760285985382971451318153070702695238547853073511491639059617247207809849632011571405261469025241448235387187824164662516268237998158035954467520822004406958364764269927221521346283318474346771240834376180380220420849559864072484536190065231079194901239658300470958431051608840800246693524829468233062402673276560362339112050069513714358582938357975585140012136780207175798305890947688689363920502906323522859863801741098892809975520732207428648908757194413045906358362701296669538476047491903288564918220236213258984322391264235398074806492733394401920516798533003651784754806463384127066090049818399709725775653471511574983363259974806121572348946427795809885025668186936731978168303854262554953831793105858700128175835326077886834297981639559764771499022324853675954291797077743745229500478277438483760277390693960775314584742963562460102126579059241982901428308353950573596604796958705354021300814260496484147736395636920125183770304179540492958958003793623518708484742202587750182507023846432243451156454304170461911920030597824406720747902852107880882528276467333985103044888102266090695928429384539051357077852563451103420513488472581813876928518373181792576225997245239794043575964674540834906647698273102930337158731091757297365767253572569193989687594570273862776897456743418095646211499458057080923099954814158186236664005051071189339647143739715792631486278997930154680400517980240215281763698749833447705483999606560320065373745083031990831599327620929480227889170820277408922292653062769749979808141676329900346763056127466813943882038677594998394389600126934258934253133326727620929612817158462035007275093223316701092505404202570855689781365238820502996754023917340291685651741910627478645757818154340010458383350810914400444775097721743563180210417366215838186581086257017419993976241608711936212945423123291824337390520070936000311144088198438048965338828963971202804550446800198673845576361512075836338564060313221036939271682911178727816869910341133357980661393146580591613513971887370285340142842063827627411391698080343112445753232793004614610088541726736944921563487442824952651559596133379915112973587741256862908332390549392078059179094995025411715340992574242546520478098627318829030247648320714337336704300044648764765137247832819040095251680953701021220261015512477183100069625112738796475089194243630983074674410466365217391747081163576496003910778667396899143637993288635003126087423821243153773237864801914367539209802051071826422632889065936802727021347791022151704746533167268542643889269850817622758431347562403037131582287089720260028668783123928896256460129667694782001904377499089035458477671801249583879290840020941949000871389496998476541015716155328044506752295955991746447030037464941232025631595368612267843606239917837426867501190763567082175548803746012451293536674865386173245429854161379118259212867393631031552785267027465450200870016458880069700950937917996281122398547258758296958874172550100993085202352115443885670137309345919720212253187066402085856228564044994917421372029439126903928815433345447647099159761023044297500654276222359600336026906674022210835850079144842857564825145481679791434234201538747134362581586815287888317339263661105625185340645369342473760525850235477218115820866537506298053304424080835203625352678719823675463928938066704698753539089293478860833010496570152094313701172594610651547164350025206657561276793902572882684094404516595189093925339043684068381661840950745839128382822644036338232556403247687497415797833325407328694674334939129646124732736618248467417943024831664424293384191390309560960076374364663070555517490002392328134290414930783930500797123655096548091160936176474538163455679608747231609913859779141050280868627889524026043460423312342319131608461152286902405137782958905611610445246437496068397610244851549618615529632101726882148035813103580530022080426879158199814442583555511160304302306725962441613366377623417094789107418879141345917301449399894141176008456050023943132100980720603495424292914442564413398050943637966832278279249864123667313059987072618629647589746676965052263142141948141631840052529866835878580863940663370872898146336551669751268868548377149864926278923753595359402472347243686772792780067598984340776369008232468724976980208857383612126487527066950721498720679209900670979947487285527767322360962818158612490907871636081992699396666074110895512300387047473424047873106629898308559557166197619295444691157876092334861144797136779200202162580762502850878685309193436555985984666227433452458444725999021994968637812566837176694468296379687047793348739343480044001955514653932028316891416580837024350829336565284351386265231351843236259107580169341888438895034822672990828392734672151842583259766146198954384618562133717849411906956419216135017944708350538086975989690401090675776039542261223394385246780893530042506692818524198799549661155942342022701695915631494231775714217309468551669817323542966148656770060579704384054559010092318549381190910347231732968317186127754213275878098251812365352279124568349220828982308769393082850367403214655519369553272413186649861410557125740583976364964897513846695623307463404221664565666403690906703975264330957071008445914276583940159927734612983254998830211620027883689723141926283059260709833516695273988856629231820452818646725320512929490556268058599405217523797181308935415295149032919177390051968137790075827283289420358213552320317897447628677683309631794496080099168636265635336114622559280886024615755447092660965983805651172972452619444139083109203773962201619214768092265417816344507576003325848377097243078522402039155897208819384064265113902805230687188908417173872802923778656034737068517167464343715442800966484495430020717086150267688768206440072308257247357527599312809762361008011769774171498523259680362896677610709336278777344010656588143702650094873048654316554905500670797876131741428175120368381405190216716596916935902784870509496819197831464641659975013726436129734524837784397741267118295539143467068890592967865904432703236301771941141689322917538487165089766453843847072778807480087839899754171756223493359190322830242525295478154461141947174558310776158910268992558248524705679465429545103717775314169113188999898173637787447399337241986949066299182052185241956316711439989033222425124910456838757882073915489725578345828160991190447637604542954167858967991740263139219815149357973887506329598882495680182356678821374525806777916121900461932845342702845041913233264554120278861206518520871082603915520082282858689355411134729210633243021176334206892035742461395205917926516512245344967163819689701552213515062786819717156214278276949697037568143227041909509707659839744083094815411858807595469972634614811026122663701027651761198785132840100333102134231499404788814140039861064783420842119335153240440951130984339167992211503091721666877856275042772259799120602922449526736444892548280274152197481689004904877474634677691268944447025723146908927238599834075121704408144674213653015566476960654538814776130087725988318398109120176480175029153792446191079884460346344627422011209109655624903157859818906439365059492650639393244227850698098656775183241744855899221111708162591377184437805017649495906702275855155571214548644050381135811110622306422122292822111906800646244200903822025292966172821427567026791173024435124677679936107765027603780369605829876133715858605830272602885698037687589010026651046571606427733950006895078539111817875520564652181043190969513603038571333492936327400928980170774640900601070620222566639741409532421874219719454099554117504154916416231162251241671989323386642218330391783685693021049526345198504890536408907157191363316365568129535401799138592305547491662638284961227048291562133517914204584717841413403718926324115713302330891806583681685691335839163882548051222300661750105971104292025633553070256055223099623899661345973969291379896505791569883241254791700403375905402138883749949425406467439006587536664589162060341715372232498491818111645910154986083643689403641174129779286343980647272702978655020528186806413881636125365905328189606362677061155590355444618889024698699877681643980667756952597028147352052320396532432942385337962828197965658556336337971464830914346030377774827685815143048253516016155762148143513323855497021060026441954756288474539011800149986109420228453826236937850560564534067302686223647176744570664938286081584079361242744994155496232612376381034617238668603060122604110203628252238498274604674246960678585647542476576963834872365972286501504981331299974775477775200790930360182785459492560459417919833144562586677677218115805089811292291433193726969879805771680078995425625406376890676881131800100444298937830989007275253438085496517832621401021316209192837829564703521958177295244145600046787397421044962305995944295829534890721956946340382819074453548193074464878383823285313336346998683186273182343790660068871056962570188603355622546169365407038457162849263947117649829814368086997456872660380441649496228747787579663633228180652193658455959422911778521418160924083257405084737616683749503412436197259334520245258623529176300686263978861099120864170063825319544277530443020449693042969879379933513116976694913767233304347966331810853940869897523958277469633145423624174497405527291814154352836250874771309326467403300654771152927626543326267238528486172307192445961230648061115447767170322421016182143174335816869780565017594222202843675372416519950763506051283984618215911625716196661339003946884282100396170409239118951890122144026306636071557345319319046685191722825423968425384772210381900096215682984190131811409747784368561641016796618117837907760496588704552923474008751141604031243883922688674135344265095569496782935346712739428485237463944144270427884892349588872031194618111467948595310249324910642456673325715907715625774349796608504737558802964104774267083273360166481281411234115390477675649856339157374473869696936234513227923417472970804602225849671887565512567952432412248440862994084137517465302717076225846974091445553553286862045325285494110961803805193151009270530654528915476596214336696248772764725565232291788988929432158682942839497978307213228465979523915704020120903980357991437086537525812660409905605406878322118397231122027221386283778210597957219351315038329925642875194685932888775867618261374653508918261193466006823619435853117562070214570167594936753317333083566509166272324527439400653784632219858437504346333028469240510777968455990985019629595209480950972799372952575802692039441620891415288273371866327769189774532364941086202859129372548424416780059621101309767184699341456254024024491138508170109867547013612214128982515858340984107909996645579255367662085918538799766662219433979121428905885714814801578174860748162426930371641895725569001557440602119201072700597892477643194984214890595340317247423760163408515925610974886383488818358392852177372555459354565041369097576483906614130114191526420497583592247249629882674412714375072098161909825904277125070632004826992656422146488053261055467874132407573878100273454516810957865351498474921623718921597214109894196261745797209521466261507612245198538299807396905378162026785796019635948278699172935979348128165768535108551374120268204070399211814240861898983959249928027197147854202282759548109992318192714121827600694111062878822620417283762794776397312862909111926350787754905310851040471458747160281782587926379154524797238031073816852939320570640946972500882609587963188776109906810085255798098464200395851567074855903672472798951325280055602063883469667533611386671904391672874415071646675876547949526063675716474034424914001654899972460879242845752434817850942354443100829773192519661989356377022602311287334431176623746980586664114875523866833726609375490640551867383885046972347560747517311443994546770158027010002253605824966435399674004865021069956064734709067533914898491778133642776236084314236666410429158597260420833609318932978177741280728758659621840466118869445926635018334240509077798669304423399994414470981827900603138917005134010990627792327339980735622223131939000852127339865284596798780989900724532754413846449413319590239297343946717313100865036956846763431296609443175663166258533360877829162373755134268598903682647346233372674455955099541667007974143671991966866390044692258532771151149283424496603585000347586466345281962698576274130003804003424618853706901056605557323618875753283896339112220204973620415099268987044209920878764138965298018216044217022704153107961855613939930206513052162318863971508517199737578038653266844104738183590838704372059289251010423963488741556794507097321456029686794503812963901243160117413738477270884415074960218184853439861052563757922950655116400123341023932463327242951242209428294213006543273386007962833290935035097103500061837543268011158045736769323042936637874072486269397009320361549032745480087047531324900472450540024507777109451202853821203406287043976122382554623399318881878980101124129296522047331121282209671422458923268142571845078676115350081745363377141248852196140492819633507042837791824932461028258615339228207977681243728106823141331940970961126053835323755477946455183228300624107299498925755229848226137065683733433685451167906054206916832408511037370357080290882389884203458146225180408206260075663533327534855379623798117559311263284527318663060845655377206080101183610237283321792951028088179007983111105328945457980745505275766022909424528619436894575206527451273621405476811976761950457244934488065177704176173674341998929223881812486118723835402344225012228847444543720323679215824375909742094060303885700701494368341187028915772957483105687905065882267904670240843832707255023829224011963103709744934198190656412226698705954070325808157969459576407594764289316137714252902683634357098944858813914894440154989575164531760622202517129926566039801135375787270218469943657150080368302865714092256881574597358358952418508832231618055383664210546420524255725225702057061525861430806921082492746083169354593416449623622715489963524127017415417244128760455742548584614679010971711421765793330649331816828479549480492858106174165583785285298449915656792531360991818965225551826727168268023042218168446984792043938857110539157323407927451282522118433755753897943623045506046275151767026646853165626985402337994257303623606479377237814531941715979595041964123798618629413077443871846595422095858046070137060495259641395454932507256263385065759814952226538567098173753677101747602979707745259958226250337285707945727250347764935046414675624915398008354436850753621334124953165522775278382497201228093232287855974499179406113756029392799732218412854134694630805716232456587853459471431117975978223559891413548689790776311751987739485097666006569788431954326425035644831867680572621827460422199193111834846248604876975044449510491199993360017172226610128331758454339762321036503835502468485338599401688558667868583954936684160239565087892343941242526114908238966681022819646262693560824770586938655477934056563356289669850961131797588200820246795244624760756818142050560752528738017347697750929978622164149395724161836753190675302785783571260550514456154336375382025575628647235389940578906831172656837992573949904239131252346579990006084673394422242511900228036418434294667623833258651119261562978958109812990258553718554528699830784456801598514476806853742270627818866730946680130040377629635424463567191351852715818547823494619829279123747991047367178705407788725801984150319893401514304504471181160430293004284622581288016147321352024530503458158417444659131183452307161388495006459085949793356678625762163329206568710929337039058381938234388901634886932894742890817248136082916050053943853080817695369132661082355957421727138641994315518141533724575685605976869446566299533041314202321461125665717281852333975650562109443241495786623357186384469228632391084338119190685943706265630834151382829033337006643268126202282811105741318761919882391845340406089058213800732354540099174313554220323585381825421926186170202038754443971006404818590220665924649791841382109035805845035423062168744098809947834030198382327502232449529068404042274382400556618966422549133186027315821466885022106828300308627479071610563664944050515678767067020160515594584112195557146523868635132630068026244733654697181053044330303798714622183117815203577096626060734713265637810879786613483928966512049135078059330091358042838519683666948868398552498104536678878504613868013687554017212145491344392317978206344034313497200070551366767924493583685076661855097746358450372949209765108159330629808642994271936748340654699665581601692753741012718981475576840930638091121917959412500135716315751598951881468085493270516812190199770605126076937549126098025292602907917236186122745859275095041515310992853204501668094261868349708912495740678301195519684646781959855647779541105893583055723133736540003088017770770505651357063767969909110236339376489435648226661345424298630330284168780513528536477885884211595832408969628884702745972124124919050688977705446827087978624126144217949836553481268268698710691950146982235380102037743385739100053157756165527563119485404719033854846509545471560659463925370997611156039740428657114391656840543771374924248333522889452189767771064035531763474958743213881780692998767259479847725117095228023302810805186352906935602201645686258145321060004862777365253192048128560226339412296901480519751755495082851655668495183376373443868970903928667934879217028238400231467487338656166225211651296706390716370247124912987900502279348974419478472232299563577734063997816557291059334804854999481929879055165794980064423473342115718041336184702358839263468885506925370575574798421507123639946938165485972583865222083942947858077351253221208647585811492476705175831347082481971815568681036340706474313443067733941523177642077199057080019963473115599675171478355006324533294791810163870442018365374501033903925641503033008257650242237425378940154253945991038440714806862898458302697649190821623283046258490766912612603108471702217263771095592145305065246888900831514931831810891930315012009466516579914144397823938271301984677159292095725653825824654882634773795648881123372697918411015807667499095422886164900297529880631582793808671224516713403195268083358814018704293522395661065682069512543530590948044245834575856114331318985709292421671519632140073961818435324605598791901833612665797253040356145322529890268369899551753781808680486237275857173862708524034673339579698419060919185077138579880634313971957817661679711543066107920459210015156814988715340777082899288450122439321520650369262465756417329229609082692903595791197590446313522835295164175104036760653965388193782022937615440300757871052239076508127792159567038490408615653524850371595733832278500159088706619915695265363978887404874902331157507309946611761213380642615365530341280327701895568584257834970874530653743004936363022606077828029391591598803017901360790407315952921358109225773065873746994186598474225872482655481593762916380396719204848575905052312393286693115481253415268781104446511698355570618286635636733868671808188699805881676119026002471193716601529034829808522108419631768197568692709320768797074946689157880244570488962839866715859319162720467685558378510592330550726433497686651897026268479811943666803953245572929228627607290101216047353997019452318071732582735028377094612627812664631539812957701148808652164665371412756053618677918854227632751262170121494693894647243928214335943189341379345457788062475633457196192658103689621281243821635051301197933064272908667651907404177622311059663927504043366525891141373691606118521293483705103611760803208997140826194007118054010642536219787686486886566619792408672036116314189984909199836768168502009828529352171152463888572931187328666878902823562224816735831039614608539994743759708510165920790144115758785710051571719808917391741709753723144793060277099971034565976722373909033779818040174694591045597547488630197180941887296545701862134689258531605102044800711176995336047852455820063736830370832152933054435874352074563331110850165943147808767806104079336710339482894423853426146544254752991488522051342850812031764027673955221575370974712070812209235198532218979796329681915512008732647255927776835490924214482143551103107927840072397807661459678105841228183220669271389129677428804554725601312484282501352928500989565693101977638031292568641892126251800160470701143867143896617009336739444614102763145017108887860538905709677922404083514570604549266558998341771474035449158939563876411180251228778180702525322349693782273541084647124509887464567931912987778308707681436774888912871963098604207066185583835631070539169567823398563941952291420526730422015272949010986858041036735339881246887955108728999147681500725012331792135141018535706068058575021329254818925277218481593869652355025203725714469768121422952960642748746075105083124836586707598753412322299328933388796076648905499418423840054126011637689177527965647658929083643756797899227307827766485446688004425765464230954439346861219655324100257260177446634783105484544614170391673093900865549512531327361247864404038712446149228974241585084311664186960979460618040196564440020522532381432391668750473122137945424121293302825123422487485306707764574026496102008671507378132339490439201736548648282190754980474318559503215047536615263683270566412077780645048629501049192510248891663932512769071572147532141263615201844175540032682272241632311320974849115661253232531251663548099334391119972322483606230577775873083307373564903179120486775527691475310133161489930741491017219754980982675821041250936354479639536354702055792985292821325116988465350562949138272720702300355319700146337146573644031330356763769025129346034675724232641744898744658531865865815333633643377664310487980887051967859544510713197940754813656749184599222115866419988886897862742406422817228978135377290355996467129932387853841433827931823488692501404062997945442778718817762089340149166120870966049053737997694575248129176491733566824060660029135428373543530557165293942929564801701783314689231654666324573532728356528307644144559648978375405181458713452695239730732255220898470906479125765695462020142623167203713941066710035990541027460115442920576585772986625193097766008241221846427200539049735792854191324564128143169454150375533246128153684305977215946818493512693729102342673605933580951329200999540684251327523242642932267257107313761010345294869982671122605647623374918013965736252722141392789547089276301222852499123471731782022930780551233865236951600930830204764823762238289645364094290763155073935649349052957992021804306917811758196589499877932368010598316007643708087127262023783570416373718507518295832014110638725518394843312449666359208063737362068633429152186028590888557616747904368807676703428048347464006300500276613175438579956109535142287258465707072363874957365496010404679151019144347014612900904837125161405467862057411098845975089050003101222636087965211074876835151046887494389357679992842328268366965683926385497180986351064161739635738487383653819046294495595949363365804247523326729973632005250748638665827776257517560512749088510030512132657367268733870896358059906382977068937432184894139065830670132813392895768660437663320314830263692065507936288991289745474681446378401366539068520285566321871138543264824782888924484998956373984315198685572653106076114791584473055697202100465372175995372604208586578547043768622909118909367243681393707313736354330873879201122852799799715112386212333848018153901980016763521568312962466190634129636074729299886016120123618073609756656459711025407817897454765583227411296812491560368994502029244028972003681426567908653426044628828694491618442868072467712650728724484778147861238675364806249642254211806470079180884588898843054842626591733264858812083389653049898539015723415759574934179857231659440547848928765533074480949302738913014199540343437289019591354836692438988210362848836595748184591266883294334513852687092013014278505628766358227613411634538423484583091989982582577619233430903294121820613354297590668757820672946130201490653754456469345380485472196488977390320682610235211939997590247927933100988864140634571500003400757824466023744930305607215537182804297853539836653781530279918324628751137125151820058788918975001906610724588821420884972608081558720644478822600497786340450111083835133982354349047503990126544993347497633468892604941148263889562773248941801165828616873997981542363634214454356915739293500892601883912040657165428865233959573301757912736930650149972630860833631624021138083787034345855515321273812391947106020329879445595192339280202507443689384604662565504176063855106597851708153464216456793112461367719373450008359061977462526054013779733331963758827915336975031540249855563863507140432029958133250848630033511093853899547236217834203287915106019338525697859013069695469870927999511219886860464868961293052712199049851225635028777930445123339693759910148175459988838898697704676371627326892263699581420205906981160120012671840268858256404206187276756749071794892761146491634706776952123679414004954651486379065266091472137542050297781782249774005914544451066421677476886355526708512955197013062825862889762486185653580312458009811397938082850405492940817516692729741802425101163454714683872426682251206951369035381132788976725082151577470872277898870356709303355800723688406566933242526437545749489435651150404804105483399380796552137628056231328337154489643303303997577043074404437674343644399972929998620361231080513046977571632144966296821940353542391439994458454023484127077807355358125448517541491563163783935234254782171173698695362166423573119497652716099288184972948492071796387499620910955728324881490636026005918178947573068528646372061586836365939414773485181346497241707626111545206505589932934021570943230758406488155782739659073530723027701163053928595815080006055862591470697017305669571874111564606440660649320348040646305171215097092282501969666885457643007376185912760961093836108445163516955292872599637169935289903996828505354782785506150643715554210694365542518981376214974011153373717985305701157474353497495593686062888355587689228411914279597719242941759801056831508714406347638687564174168569254014221423786834144539088280318604545125470462105145211075539396129756722957114050400776038797500128242524295988911615261220374499034942431894518401471113519189746045529148590048817432433914984131786900074470889518269986063826286540537720718052231716903525932032311110274506785532243544233322842028774920780627906581203430627822979885022498792777373053218996145386010732073815583663077513378063546353802394561179763979246526194675112524891804653072052588625823346626797423809315718484965256652860393544660174887155654874435184809650768856882998842569198087767403040284736281693803216512869296260269926759044668397593209196912299098855485032677103022808527892779512828585317371588224931691839670947913886191752447766943896265807708626405944963739668807548268199499989067139978640339892217175960184688388374083529948245125948731858223238543867009302049172816707563052507459203795400127499801031572146279428728676290694177238791222844421713785152511067443703510213640489577841190705594226473566701873185920609772677947767177406485050364951019423255241708968365602196406271097132472052033777119035007958980783570818154799288556977141045951065359866853555674801449316553701112121134566604668434112278211321157256303545476012047034961472513767650931883176954707019008059895781428862035418540445064111964092012638575703163087323439296417079340347661259052129670265959729901722649518143149674445450570692420777152310527128619063682128717970667901322776913038033136209124673517513186232718535273859289270227258257151294687935830458384861147744115366961784345820793594057679082508005144856407081732013661476920848595588945608414624806708463970856922011202698149753031899699104910788568520000578823701801985478947272018091178814703455712933827517638509748419278525884103657241395627902284712780256490900504829811500169154836331476348767606544888251972569446229262202993486278848357634211336375285487331435119373601412304966332437223814340545490718515349480780120829648660561583040741616766505670722221621020708574529928781281516677699155611623052067083247970558285834670048966340337463928289615137955996935050697366199603359997997247751054248323768023019981591876561239825352112362745270264718056038427714249128283243697127444894088921248516597253127866732139683026696466484386417720926406689804693174839995540361409252352201733180298405558368058141887635718258348259996511595304931828678296703735222430460780851750501080589901559464606827015216648189417876446877681884472942936010638758326547808660188077376050211790294717034286038477619624360020230088444501616353408005221931681107874186872546644240998471173588728374695846468649481753361197748123218789829558520972909878280165525349028186863488517063071612165011032315963476198215537032861349233015429400344974824182564723524728918551009122509126692551367780678268876784956658928129496541098477107295964065916844459124426867836771768472693600202184414891410829525274882980314320779164705875685397498586213806990321800362128151436602774681367479297200461685253524133457710254945279276840054767665036012133547233473439372036521733050728724598707292435530330718257520661824213032945197134503474288461768265564340636092182814663440911587907455535217188741037836485105382245203245206482408343106082971170234071418453534627375879346270682014300752295228800457260173247120114697445227877982493922809715210616045572140545441029250244611921059764715568246654380232855912392279475123459486748786736264548731592450560236626892919127669220473525347132495196228123371356176809028613969202242292494591115551761189727072530251422122053801596067497913247677536941981269179548712716666790765614253793884397743195729438968452718470537589346544201390098919624857741240422151197286504947978800718709034195293997488362082280250723321532126345280668444535653329959742290999967912585978596008228301985360521882950040390995453422643740423172280064835512669889347394985747780296759860533614396997024647006700400518637157220774601395171770749331576016839399559824211944648285823380504630841038198795209791828964710275626435896473394044014869873197497799819024928764431700328237754241337292755276705686779460017848522581132784085369877553863556863781059924261816108634373688677520586009028651603467078971581989564340271263225920901884653929688092371353312369719407558504530838494728393785805002579522480759310222284226544054633757997267572208913701850492221794982879141352052881529377113572192567957290750368058417413747597156628788771748010910194855199174774014211962616910143655406182272934839362585192365949477420409079075758094519065098670671952014871157391565581521025423052659012001390229649907686586705073450458652450306754296948286146360776642553155035085408230183766915903205658260444395199092771879808444425662940784923674009591965693070431682900207140250143283392701971883808353923119401510245774485147811662309002671871378008327813167812854864702097964363641911079092214051298457996665972707393370874996993896629490154278991281277212842155538952313314958832747615737480144357207199727142260398065191551640296657829608954047340334197162666942271595975920707014681258159931014004400974317667893532854362353438983077664592259881266647977739430895146073328775700798571417008668389587746732439324631896452428570114250366177553602509633135548926662485179203353208790716769894628577412374895656886967157400365867632249450221287298260454993871032261986481681921823846178170942709685619073781457460939537894074507575910026552929877655376304433243599122593484753322738094518815711299056387033357020509207566988124466800882582776371458286453547339865914025593899691805340316926244311725200173456220574833581842974604935434843676647256646038342098886213314745504844745379891238245048136272041595458375519746714681465428637632002720404982417372443955196546816491658162803019429986326092367032975527535835360697773184089560338649304196152546883378905583200043476606777646935339600505153823341295591636505073778471837701976788548958012196667384339421316145227665041661146427859782556255441614062053129269695553381157553655160533771856630670147721399800982215396772698335176544126928040655137087621920771738425489515823839059070371034758929328280743014149891055838777473215816385700583349969668892603714061727834512989958460854247015591905912872549860711153579755824668556514896365705244880348990103364933402150188477177036008692697469625737357822851477828917109608876834615400895373342663396035784841864252339993568226223639324731362111803214593233605394413166016779342869455877098530666238834179998111169857514085531675920597793449721308341688344563499939318095198809600183552120096136618783668063522811717391320867866653364641126023555551718168511311074045418955511004970845457890907765869964786689169035158895882773209915245157491269417382352421550298430344025074245302730856498972648326597005815666891554248769028623408799342383980488953599626018107759686140682065413101910064976921977782623902296434268409753978629862057772437740692515763305395066128326387542898856631322012598538890135708658094850373059401936800476148349578082356052396880752686702502313930328362093739893956591170571747014394609355508575203688974252010781601634479669596223585408881754015140143556072405802392674592423003155782918056818817751928404228629829153906967371790845752532489069014021397693812826651162432814872331932963877575954838959077019362363017442634791730363012704045867771284738677247517791759069893900335547024269365181784215892739687026134608409035629237507116775325078365651106819096889929136646641288685960226509115304164424687425083184997426067330739564502598792479318136650762947786539420651072050413999596988428034802052258176265043989246778769300621217393075185452985683371572738416775473416716410869569899191767345665525952459715081793442032668937330688919930510646080927880161571629641962571920067336923420400932516371470364332940832399451387682681279013971103114351548556017577513173697812516927072146222641699974178813578719923746880034023957369384935537576804265779321551524153988981299318532304602850791478884995709210748351419974364843705019943046280560552441331952015559143993232076581845826560038151376905670474723749891349925260895043124243540116175623715148354999934797830076134569120591841090262356367370934065798059916710965233347037667094577976487121908105184676165568539528372436094962194836652213237201564117369663851417209497856532453035074026143783305353057681423973732970853121894445755248396664765095877231916460253991432036169488413139366102291196759394969105776881425363333187874484156879481765968006136301487963838532376703293653815310248312236592679020391376450306270059143687839056360078095834684843494201483481820151604711910566655565403024484419952439778669848385731360010545855568415134411007319799244451683812262689948460563810288240264330556080180153477825417864796277815184960060683071714002315260880420669189275654170706661457846808136294074434569543181587328137768113323953641760030139041811851145936623900337543525552660630920858177297136779901366456125166862230770817779139131934931440483772193766838079536016339547091258463818902169734961994814135396846631181501796697083570984003779882282262636545072692559162607402357697656248489273043387998410656463076614800233395499054663038127662153143543172650759858775883750109690481981198586817319958117462738907522271901594960814978020741280640447617162515182112277183993035477772279420315271912216513028999538599085605615447590886209545037017228439671140421869410352553316975739499886263689037131150442081284033906755818722573392995786717800497170404487948094054579580914311073770088494012344753393145546806892395994348443530748099183021000180039640372944405338561198063098166983201028574348209227348567347290323294703295884724908274994652632368711013780087799757010112802551862927138105982376830383767102739343872909347247431835387913902687914507224843343701284499371879415716940971893187863747182872191833889136666538556993894274976948204849449203456110509788011039607855719268526319792262573203017387924365307158259357642836062998287167664239715129520707803518730367386360776982975266621161484344244700826790885675165546515933379091979646879678293574241002177783874167393811615613243938815120590680904656907343869695368902434544801206443503632725095258034763360761981291705598243202584435244604180531266771521233275711076222831267430400423925166705927812530627454809353869065648202705303336236967484096833875466857941869129803095624645887455049289215481621486607496892329001911050606175132173053854304212586358836527729395944782012568936409222653668224726684273289744307027313989853807694873407593596037754598454488979857710969495161721981737449527158901830061077046128357525775377856024080337867444779734657173584396301407332431349350150753177446208384893655489403527596585963403778529729642145938323470800822306220924302584866603012404867050300270708397233021482996642524740945214427441698685512022633742173345312779611295794178913269525421974329491926226140163488930150027618316613944241876320344499751937899106130211154155682394535641952431412084471874072572014137833140805289414575340816490489617044006129583949936187704764285362524859301331683592734652357856810840789899600161876342712574100808512944518226987315288695273621510376937805304406845794743934185472592424360012467686183299419830183124374001582669289964113442728406010049239863938669138285833874195260063802788433859873560497382021014374955539680003647611264688378692436753980600301537453863805276829948638419906310168754072208691701930618361796193500790895245289446880135069579942529341759205899417094734439184499324561855056440203555304433128615425983460107508017428914643539953083688472244943220393188736199047365916653860033728682212812127034209727476892322066407967309176545469230004281069500671573752448262053547684819490392117087978788977909651975660318738480649725458079365860330695006263256120728603977701198029736775208188827554493826227151632496046799216994981897228196105975211446506159984102593524316890557415338763050094066549707988039889597978761026435937997344466115092563242721181250952424310020125455235491693491941556185455766506853407036067463793201978395073624758928260026135423497068578544656683310986909445900406444922578939294506103162701856090205626599550158012996907177747912952324450203744568928343457792919668992703022166393322506724453178785489987330275589659157866030998769236654297841306741950831573880232993581017936220672954021259268029352879628901755501795864392221264180588068620220150104612617592045339966637269408893062658616524277034201202649040375462534385561572064006659833837329986124852988721128985467827076023812558550900535790557197885065944038321064169657690161037193538542684663612798074201835969496949468059971013066946179995775863067983006761348175310076095446531038310939145450104591649335468123692185836663187772045654030384053982207412603843728435307577193399355594339285020045156753601766478463730552318002850907407762705708999487610777429153217812692186640174634502803816596731687572741225164949963697794189608697878548453331075694756225174826411362608087987916337549751661098207669278481697975534078897177888618138849657656109416091899436080173495156362286513575243076387067251318727809059905160357757919552983127035227744250174941168874861587936181264708963790620514467516452483272452098770490692963226225395372667490110925874288461950064121557932094304332408344324677276831166622138192297538678171629640339503384360195509488785704636674084004788636016846928854120074984798741238510046488293001244420765177289690561126125361611343290088109316893674416004805689088812401269710167234146368677257603847017177935011139836878901057387210567774089572090737375145204801515998599491974094223238069936077366273442343014946378025490079963306752717490030573684381836195675070954174375972317071850775221803062575730068390445021895777686948623231820360256018479257096762600760270948767934083351269817290186069801786658693155365802212879424027477829295660943409557101827994842819306964327852672701197494018259089660439249080467348057691320095092390349148364997527805108544278807532462130755426539237454438489091833234959184251035534106500158712438624570006919853418236923339518838839399432072211787755693388075389874011001437357356593062291330120634568466589307620073942593185451430730843195627615770767631917476011947903945337861869055675289635913048598557230110480074545713238528102516846112397963024661124637977069449672012318079245767241173000906119681416906076564622760586929837754038942411575033243871277281288399654991160216097525617201397633662720981358307324136385582295858463393054733571472283606374833379087774317260876459800591753576186807666227129248900951007715597221863475886117227685154740809151210423185774320974808162079596975118227087294699934236812617777696884650505550402438633754709656502572520603090609131493624021002590335486515133061221489341978422624317994859214453200143416562371829880031584482449131485200078804741510800661399152915250254937075664910685868845310633219619614924251287828824164362463122573929759840053748153486588958825924278365002782589352354833340449383062051880447936099201698693841572671775902035783649881372530409976774806920307998265911691977537255439039175216872617961669189440420112406982674549131860733324443226509219190855913594845242520714067844946219769294726103708195521678288681703316870849758401472492451385707443055191669385798439701197483593795393871887369366325154326767030135484453447860577575672448633617354354428562310797334511839960846743116541241862085827095910976012858088104744219118094470518231294747347847761675170828671948417470625444683321457469035814795358768690973625657223066515649577708853100199375592451274815300432089587687150832433932653508432085866376444018616714783934573302188653816860008620688260148190378157086599022961071916427492231670228995458472791257669358914579639032733743695054848378149415216089192986067507652104753989711598797418271681397849458674779971594857990926303414910599102552559360569397688210676276331682123619796813330502271284416708897635505697406150815837073880037288405244203519415038658451729709886431453447116258327713580353746329056754997450738205811966481094748797185118592643490135539568047227782995371659114237171342664125351486259771024034612373643787729855241968696605263027702995764314259651072386523255438725222287829250673088324074264141016821194549912797352375261621807966293161448728075177870237395742728708148377605156480682006263156639008202725946925932883752986539261095947057597638240223504350504236674556854700138329714888600546313350096113083122728937064304460787735917297173370716119407512720057672315139450375307643231786146098910826343485263226834899527332899534739255129817617822664875511477600996935060816199260479387329494183412352569447274049428253723757108467800681577877655942217590844442942534811507316303108715041673333046380978984140018072033169506225668307098394165019516882212800181499246312261600788782835332016300888716787316131733847039588336166001502370081379788391870086443510466063209802622401545445580197599389931353910734530631543799465696359009611958311283594060342633028180877709075391690579586140933237244446612738663475633389936814940791757019586059369695762875190391451410041088358028680204763151476300483607068896919766936221011889581426068934742802176625367091769180285109516277294585083835727065243960473557318299105402616676785652696034016732198025248523353193700291265124033188787544666326316448072314412024094039243532659782880765833605251938145583860532945207453118880888928029678354960617164910298923528492819230419801022248662853276805379349112762930395271831084204480577602204242398595301705388129778816768050769007180727578541293713937938611533190373273878157941231952790889152775329442278917662271503607600007436749772468361880644471266964425441342595270157398215271261509234940458751657956905274119157418441721274678045205260515128489051183703721927782764131174823605893176367871449047492361393925755320252620374820873417269237494255995380448657543591557009080476241571012327204284075948678399217469391866714314121025663088916452474586296274669785734843942546263570549909847109763991358327038231613429067069144759729446255891711106941568277099213785541098627563352592465478013011990447631680131828883578334427409617611704521382352147726779985209354333255309179036790450233050457645436905281785706989186596281227495265004323295488808530642798902336250006341143821299636397225568363733419232769662159038358924846806456028640863616766882965908768836333402933157300337619145037908010228182257297556344703844723107343560098807707035643062462784302063235341695836448117566413306664388389438664315743841337543486229999641307502757882785906028728870652576299692412039032167129810568502888818313400691584402556454569511828379731281688815908234381411208916000476871369776086121351167808230942424786808923908674340695484466841143921935079120105540595225321432684996607945333968168488258584648897446904036958994302672213211285612614645892404794036057629191082740321606167699964966533749454435286951890870842877802059302466939829300192262357969636069938929191319349790670697520084101017913374467037414727024753107698715816841842636382620064035099604804793935516873382520868364290666082791904156547810423611728905600942021430487718415746830719101120990104725009420819364456423068220331695919280573530348882088473483793637496557974744894813581888708336980905905098685073215370782806490429500900152659890384337976359160192977454162114234488616749389334936446769482376756220331424716987422865715010253172661996024979890850696222147468689716304092172298613621681260571087531071018605310486682375056156712641839392966301657380886844613676708278990509696582842052464843925557326262120096886900622288069357155645730029052468408902707115525431544325600328684369438506662921640270359769808481341649906034744780144150098219071433257142994815945460619374979395056751043545849833613533961323512838835754045052663342101335952133371237221375717464640865056987131975640847897732644792447958325279750102527494557018504906841905461982307944213540656589448747170730237531099777920654980335481480093043165596480131388222848195293377816826611881019408810218983252638895912466262251455879520862325387857420963588494612898741940700955063022920937209539420274776939343203009693800765854259375099476157371716844216967882079410962590053001450260220032874109971117746578030503530664714888459036881536460955480369270408958318431567582157525446118923180858926077885985235450386797106653033975248579787733775271595733655255760827731896524829297504618430092917290502585894953141713396303642630926767325881378561789827387053484754027101975666993916042320280955655193921559408554852178439493841600931507745812167424260223196197834177589688502281221411662860472391676026200967201258654639806812830013424427219426374887452395649925521895956868196416354178721977464464470939735767794109919895289628177269975631022541599273749749827336120583988915209571309526694137905740954237899118447721670274373453628295829240135043015939956580542604376864599997498009840756487280057757010630083391705806947427116510872242304581218029852527183811541029069718229970791207133155178426412026073696259422306740404628954746990346522424404229712513204153600017590824442550776593921970726846212111032286445023685708995598418728498337313452245004262059281922749822624590870748210322169732200675052386738620974160821059909683725776472468959150194298893468541225437865168058832899013652864609849169009572963218432132827233898666196296804958705547762444091889948819461337112597627968187172796095566469654088904343977681907569839070301130575074705227769348200304311558212857038825209671080667068225421389602284122349176815066992085056591913700169112535356845427040646787224783741791710633960094970342991167426816572994837658463497326265601270727414483578095457784496964863263930196924827530612182144755499142117797728245594045724291410324731956081595264093051344371599077293330663107636493956829111319226838167056385603713387051171224863956304530280955136044551048328619050892971475639506395132426859647898149827597223470057990824175204743819260201420792887422294006275313762277231515442695487997074928224989465179094850639376981257769925583458179415576127516534356867033416630531868334594321678117148384952964188277177643390981778380561604758867017583893422684611689153648875855739375703725168933461314242852097817113240265330404736321463627017471444198855072694551514517539296075271811785036956786961176767068388999776616671136553668880975185751149902679335688160013382785414896412045855072886570511169385828002338392565174505747377980738942698982102863125008952174206923205091159807456131364919430621078610309915638567073500596794393268740978154642248571341728874981819716709701815896177759194249206097009942582897800104825691309635197835904603444221272190106615424515202482073604207152389932819019102603765344781405097497474901921121534021393256921384113820987935993354976120301962701600066155019072031994024149556156487253617510926747966858941122963030454598270957193486254158744623442720246201180461032067500627776431111010316113915506581909385060870850912000700998007534493600994827313452390414045047113641387802435347404161057915577967853302070261188338747398025296181281757459614472815026132545488968077638540194826808007696576968940974495782172227591953003112941813521525693343287295579127414858774769068098541999212938033051234086758951557409047908166173591469001712138362985224427988634237010382048158574481274900943715155899876834686729330787712417231334020393265035569299102108580665465045695047505784895258702539944063225816521889706005012861229370287407670241437998673111029286854466508274281624123300512212349845004752723900756795833223967936574878604496052964753403801160807700476576057084902835009052047958593723522363509189478351907106826249185517529694031724967673999027682972020702606486927462047657503894968377195800322115004462558375577193767119793073710112805539908009111773691072854620026737425102857649752988189505303474320269516908057318891027622505504284688047187578700287480737494542544977229178527505384078476538184166266439938353591375362917336395330735252862988318222082139702261384776354309683233160440518793626534109469320143908773720726618343208801836794156526209753957441025637252571132636689189845614932388337164172132665258700333341604226427446246766725575785349476730263488641135735699745245129616653327873445709121552940541568345997539207967346835558172920880683892489585634876309023173753418683229942546639306997844898856389133382747338291540390248427883647186611546163524209452494772580070102652527684410685921413240366427701121985029157056848153375550434014810147442342762603826915721704471158529395095786974075810455847526635104515733546851758728059197501005809718546040348248050921424266952301466386952789710081639031213044740691670094306958093549950843722609847208526890920908254466183904217792348923301421221039296303685206387079965777218373139527550753626003033105146356417507521400836626495414311001093056563942495520277208801349698605101368051439845398749332880890951389376398791602944235217530482048512861511363725368535451390957123332131164186046719636819121874585877422591343276401515159640080903409041747117935961363327921139979994644895110994813113792644583402899668112983960624798163446901007714745764640554913392908098549195906918539367684097885743166915795987542684828807815264995524572267931874809049411424343315519160948614850985071411775645819680394479387493342047335044460208941983130038318752240334574034085750620714234477160000573036409492952554686329096399276351649223941295410861058585979122025918985398735338080699073776359205588595267302216918697819378230838542654808653286676312237669207848578913293301208974715686706200211829151785732832532378217524917668977160249188140961525006232562575996430673199274112383819989437584264846756052874293748935352330988126856392551905135268817653337077716042397192564651487191153841198573851059547666091933400793102857883973580584527454048173175896679560261719186496522685223434502986301015123992780998410281540125095711238606464157127092082495353193558147713059186223163701758539142775460805940744291825630498311143430749929311703427502542105187580190142962797230017067733225131460238074954338751173359318951912737258080128342426066891305306301592016810111169437012777675056642189879179580877573856849225051991163614966846278551601068086818089217848088224330431340035723651771522458987272256307720075049802432046466970537652435676432255146916334405614642070332520304410950065905206765979526206640343997445970717059967815124868088127011998125785461598861825967260825589090315372015371700231645059140495758182478366695720691259813775283214335887344002790541064304341993678198291789765914321793716087421873718848812331435005993963863026868393662047912975372011679975823548828769984389352165605650301098800324598399112392257992121605804696570908566629241003054477751354068145948607078353101218247824157556555652873716446939464160373510162281240984813281733700965435468695261511121267171590829176595071046418163176593651147325199135434164217696209228767626409850454142138762534767135024366468865950992545482044807554038238343471996475221120395752839434336460162746932731458899508138238218788250425880914243199030252015958299938528322080801798657512408512410888259017341866782260670667606667704687330607733198008029311596856185037926396202136136469911391454812204805954315759044521466511291246371369887727238112354480767669277416709238355089437379546687402218720427773679636394538964993594998869811691684916970844485546988414106475738227481941807639337843893273244358504340531114661151420061032459609843319675340900392461688356426589654304850920820585332485249744716051122621613025937269398892918603891811200753115585991273305256591917957016636419435336996099781883586940226402645944252093588964424271331835341419218039975750823026191765211554590427784530040192336089313313093147283449758113743433265534485629264597552897314023382241728759699945889326087823667130776457580071202369495064943514354072620036359222728917829075925942952198033282884507421096111463145398775022478874866758607044774129784348248561853029359388810627420752865441819288561437003234863926344004140031230119104209098389495763096983963196516085749488431994271635355170161412073617804323291145446610677483199924862139314953295023968461833940424997431466307138206482727568423466147247732235696852248891570042838013463634057315378265899398545549352210019369384202720086954084879247864867216621947960334539938994314773615273543717237606319110945009605370831017296636565582935469063989558586159885375686076016460273587545648330694896257516126688563031553595002511401690645339600567619713064019201077908565940561645799108998060987048187305706545632471479208524683497266186870916592376852622060585923298538867556821100500896935975485610585267430857608590065657287992214073525088684361239938458207944879836726590050332587600173684559339887425617734518361253043722314173694864083484486276628504573086720351357839667919313332432004976885989953701061730374435065322363258935082431632579640742609914483926003077980544563878971775313912190838523194197197468866755566711982434612220334276852680626146958885552505104150272242861289236103036078186599714060521802739895654904885302196779574158053991814181391643114857099673833318021775058843994890282643017305695477384762763242304509296270600247106952202433312077795533613775115290048501008879049752891842632575926856327529412436408850322377078220696059791790758283615980144538286829354043289015575274311863484599881284698082897240612517372649634969188388825145681551737226781796554676276854547275055661901473679114395625786098670189665741810075103419378295146543205591881358617035299455818481593948158174935937450412041569091173432431547580826626421349900294865357479524161331677189105650413834779188443748063592238891535833710443331394537620038970994262271167396898532726247781006572476167344321368279861341158959248167398387583158830172285925569318098377934457601726985747344132893197353876834720761051414183044768196924089566888238855083638798455100063807474162360005444217783930809582592898417407839681743726696074342962988264537000154354524805792597816250806354622336034176629251793354753532176401037848968031751104035731745547549745055980820200314652891882127158088000083983145790011515088542882745436566957735198411723300891129607877035579746016626233173895144230062527083716308445546117364949800459029734883381075944972307411234423335843870398349061182140089566060633434765484481944076818890574153288509820966491626213604211829722251355353923245423252545476270989099480509794037662259273323304238154786731343695786345939506248636232543724400814836210571088219512233614992499930400044173500005901463734230565607453012554556989019975075232530949851958711389721468201140654131778264076650261709508854259061700793690999030100492413220033851693436011961669219366676308763757577311577328086195591618305014801465710398949210580437227691342171232613978899448480037302578787984086421823282716235387382472433628197659087502964238470852705879384275634050235547343537480932699369919345337512563794969140410605166199223339250589468719328312706190068435427153964847837032127956835485065581098702417801207628677919012423959684355600294175211609523744021258764373120032283925820785715238483028140664406249483099658869017249094142993007291881546509027619707916900349449082823055487125391765531840192092638770596417171779364578986306242578422748790374291094937154355972299928526104077389350619012540276409052434774387822115332894832986741510107698311769022863565582807263780798670394213457798932389363388082870920746573675421739327557640158660666762070550996912389614186122487540419551472186813361141525835947247925378537998027033294305729084419501077437283210996692928525201755891418217510359046527685450807089898537697626643439233043400358228064613573973355706916980441484425170452043683793644930665103749326538032217824732478881761184470827602800394993576401451947867543713575886549019628494205729670842391853998816942394295574837417611504393329514685845684303675550177527086575095605730690655139967438216138706330419327538228820919787528882352689308619279136680654764545907433330636294148199360748299478938952921890988390257480583513026565325510176598536155709248077889272859562671069503263472668753910976561084934560601066031735860999510682952546845265221622654745684562360637355464720392548788252133432839544090208486135160726918675245409127986344743501364285111620541007285701717087615028005957228416457740683888152689622463888086677697044036858116968694482345183923923084890852087730618705679789959378152069653231634940325261698426603336264008956329866743327267100873479888857539255036517773275255058395796062644006487451862004152272748687347664037937301175155848122108072733029101641925140959252823592693539313898136138342664815274245432363080286562932958687933857519982834547924162135524093694794790060694344994949259352649282185244395488810732581812313038672584283498499499264770036452047714581532088261849118670030535882340718116252385102126619479296194217607962357763793089266529986331660550481231748067212547704048746891179847342156477220788779123983490936107997115901820194367561331839186891309381596866644428309982245631887557881118420561131643372643807806753689410355715441289520197319368003379346010979474419635817723442060363044049476844408989501851371996056776444333566940281757887036755715937754476124735537818188850946333372615689787270643342229904032702127854544008577834024649275046173273166934371088533185289686771550918872504340469088150600490780191668904415042164802968842881524761205867991376265354140889683337129815228710071918034274179621388064026665236526416209210895033367572785541872641160083238403918363838874881662203878324646347137907098055936351990875851685511848811142807679044826808297800256150840106745871602758362718406525555565882158896011400283239226843051930582930489810530224065748855330095434599008283983994634850835516843228457039804037682364940406722565936356673581272423971066002688184738484888512058856032207051922190201524207278316078024180560597603686618130721645963049952376757034927679751820773846300800107084269885799845445865277111416004825945909410487884644087868750662972002445436970119552877460418943849253132305123542108989394107951074437203348306847724234331978783726172667932940400291332649738697995517505707104931447410392516447309387226696236436144895888906327327655332466021360537916898953206917575373311161245929661995567072905369460625808288308553149260986443704468085254760885837176421080098226445970853387008736834425342187120427691521155778331892814436165314429056636310706569927801301645958103351443987880787758089341541796196145212517496570707528503303671112927697082150796179578112959339963359730999559274070168022021648251094203649826644798462657699405169084866914042267897200863218531938036012640929976548022577958200943532409137954125292095327630927480673843863333416953683648693403995341208784928622333472992387376134059760138468842750225275569042859119157838832714335848998837683849793956946252232075503438695145499566206089535057513783806785640274937014599524766933205517619895886256572291039669720454900159696286718100169207084293668027922463836122283880293005351150158533305987813906615645408254697806364608698662854594597210991445409392675167783009956836563315791580415869084118760482283347057110749392703881778804946048059203730500609132639013111550824776735378358467111621105411338204304032372333730467222892696888045437535019309474738433432718624292537838889480158529002245533441097696812843352049755059228317732925659472482738572589249907076809588253155905106613866674671312573604029105351228849738361891844892548165976223071000144837555380034465616529856385152405811531786447695400543744342478173881944135662523617452268053606964030798763652464637311909904250089735581484092303292502293668590801087699427542040300309823546807737617569190222302254408960825729259234062733141549245628755199414726329600007083210371792107996727932945446264060019898275007278613808858296144855671679183448524757023894840900282252446087070264578230784542065388680848406484433864595029831759907566474620940265793490413174676933817014399607923204628782069030813254280745741040568536747429876425351220491000139085019417667493501868021450278859468894042289544117494719947079218374363997847894452159085143263533733007142988415816315215716694840523302958963404698364579817828079339173110839380138506033051925606654961546341230354112341263500927735438736363236444752197043013399206316105939780631114713998590276453945912952525043059044164495404640279793384325244817764819334811066205121999743349134242668658471314767591107620576826896552061779144558049667139971210710921918952008974536736848991768048843744790731489830888358305969865471464525783574437335836638853576422706250877658690660664866233664633491939027782009854965363616133530667092475466069290643837293489213770906467987612759270217602288998922638996610401209666125218688784241354376013568689077853400292081195070296518758061577630244506056982826197925725708776963593807208875419685853808299014302627228249058982157752229877734117784869672974142719047775804178883040975155008039406272579803413799098946648433475224947635907810772349783622803730180149106470600991369782956724804159758129678725700813871779187565526213751187766299699654845573376789081176693224013159703289428410105397495712676524210773592203837699103060940411074919830970140193254285665856811300064250632706270288854941585067213018434395750843586596694984521628950925498937334492072488697713220522724853853076198097064317859826771031008244145751796111641048638047296751938931335933805896102942461110159759426053476456326848494974438792412527653121065322836477396305373466530745824224692750227339892242166459477084619025035755639911393429077465202940041326180042885849251774931379149099926826710023454803606208190872295392959328920348679978194493314993455489322685770688553561854285789701459558577310624675201473059200445509859700766972172992559685054146776217778610623682093027601189136358251720386794355741449632487354368491899811121225943473896818639386673706841029194896491307996459012192214925838616086406152166380583770074973860871355677479670202648816663713857250521639839318881912815362266692077697176107988054321544848517096707692464832018961623770919214596106996056398570736696251535292532559383466359427123301597207172863996013332057781812431658367948723438058660175354011137172345507340728379989865274306358779596831135361049405053168742177133584721043244755486553028479178328133430430913076855889147965888863545299723080179264912001022348317423029741263403546654331668715384251294627892484200002004337621305223086954323818788643035287971524661667209042493709414543509011780117293956474529368594208027926508775454687349793094545648618169388218809375847208061625818647742449405867109323408747454726729922479381221896416654584597021523362194591321252372839519382282480977789382690909589467601093401058634309229484264909087666930705430276358044261276001934461713331846247295133733198771842920736891327595837560431543315578032732000868080808345586483880528217614398825672396038885348103251691825156409509140478893598419166024851873492212388136912241018301591529799322138547642246644008886391886987301929796256462837792825690854877568658863561804988428497232162955283258654313351430879926845535373869758654308841335939715466710925920637918625743040249269986388872263563836463198992614120637929006308085833667180167126517664108803789226750936088947465602223133449376958672582461782853624719417150955418725152061167534076925672759450722306007274963842870133648668809339732119683688125633798101891018970988178048599895208322857593115549527911351146949044244420182460173506079446661609574971452339263476307167703820115153855469195504373379811572481790772450125000739252290703790169827201585188454340342026035372206515491410099304660228298842233373735518816991327773612162341305975257715586697385637563570046013164920632952539109749484445175014147056857675768845976489862420210244371362497851575759391455430102672513848420178612268785270884245655386250713240828117354442193852428166647596801688791386170289321929155573353868766593837818637026369857694429040444247114220154284889995235460259237174232348655445968720755050704315740221199660930233574940447832058225764754287601598955480409065323806314157165266234202195693916248287559625692231095844873110798583039646673173982464589352213428795051039581807425291370933425808849770062802765010743959958683723889582590965102980008531130073627637446519803228974511101796792196730462371797836845297688356928003150335098153196600280377349407066626878389683472467364776250581031390503360188944268039632184377066348079479078279988186833642449965700498716747266505518677598748431322182388402061414641398611138231597096063352315794390348728378576103671975370859338378839829171722826790919947959357921110621617254174029432521639633694414677796967729319561714674852854497533164322986269811753314250823447653564121640276614632200119816286383291579711959646724047514658465803978377887997970164239409409501623357125122378945106452840493638293382881218668832462179754135309358597923780429295417796244809642037171494904298175875516041434297353383364768120134107409486030104051945346445418286200130822007831673103825236385979454998325125787309637586360969947075440948274279062118461950838060449642463412168509463214863437612475264339692455361348111752554325053208349236353267644229098964220943697824766009145752487808561775175846669601486010962529411149387413855274231423723168347391753335131389486878229210640930093633940568156291788632416032359996421881166910319706857960406364077003289003358572209163804504790880754387141814903344107568015142045616798192220757665410161943793945378657544180782837343331253805250599696344723832956006336284543453559665033564308281651477604406619599819442792926150014431364166046586699649269114274550646769348277576101768035886229846126401133171808378163966547778207231566295874959022326782937609815518310643276140901442788899159645630790083942862406018681115004669853179321659409472296200498029531717051126094003994074184672879301869780944330975265033574055019336136342688479279297155721867356483638302725122797607601915444383345339619492531630925860928651218747018845112731507979133064774343688871899725356967301664647134738935239565269104922692800458563077074464337275401200706505108886229330556212232613717329824460653242553455021950714421008287129359915800933465543777714266220945054600785681133550026649126564257136970767962652836655391436517687273380959590642564910212997219464199028746109984702419475842336133297088447324946641463518449619539419347048197023008166589658871404596611958296063194647731824167020309038859473388617421503513683861418722899579776631426484630744585640285305163445736749102390066586589490880402491414736648835406267855411675249564889211752080090730441051844118599493301798457420138286562281875783916177905225935214350471598942710490088160197965503470293522845059680002304115502122305858736576868696254728085910534289888227766361935250830051294202592942624534388084007549725353051346655674121918222580486468326916070945870069978770910340363756419814902365317331770411917736530213368874267957746251043140446579233994995793478559598385093250490898432924495894385881848884089596525959719458403046321652539384760456002190044460674696103118511324040810272082139312733922183294786612048785637100850290541811921247488689688367190671681737777703869078431820444694320069891434619613810402268956932542646889512775119889982212275950112550925542322800401069103364309209210728027653742188421477087762735260809760034453446843190170595249765663330924617475551254383539338682217266006544702148370600389395440497763579623198155523098764908367803851155562987631741522602787741138416886146002766849479964032131231351344972567970326018334973222759540468068324558564639861682922500919869845859703941045385524940471096598558806605604345552303328249349678176636086703593521418308188199886887817970897854558146635253829319202480752733571390148461604919924155285397856362914650493387619071163454880296198255179284433335813028191206243398833077604273356586974622901559011101436511630093718993713498340738123575985383487493329974448445896871028793689862916239142352062946251912766851414082466959055545215457474742246659434600901004292231809163709588896866085157999910158114896837128197829287300647343010859940925677358375274656071493692463015219596477423734260822341684889321380098839988841216698159698887808963746774972123526773487559382054362343804229394566236271732989209690598137141096282236453333284749360520657815295249175383006472306478520408635393879819952666741446704928494934444179469656349178174465830411207806769897131699007285085758792687449525378665645903680258783799693021123170694048379604987459890112434987950096999299575518238345623232142039174426958479467930956572969135890497319158331258967593724290844402702415080240706908228791071871106020188322652598821098486537046807287483852891327445904494965178171862108850553452127236889049481790107962689780697419701971961899136781400714391421225337922513458296143076008118457866746375309710347970060553546220413282705582404728086451535123394620123698575495037521121459690426090258672864438843411765040757348400751331847161824306595758777492480921710870069952466206538052759147073574374835912429996744241901471142857034753241672034743727581883770913430339945842397407359913295455109555113099925825552599329923746906283531681724909723476539886209275469695151596859594110714615747104921428919255386751966473036258016991966524987808249757280634935335302944151158146107372725219876905299550501672834556020372158902723664767969980304581477246884256217156720463818599438483716918405664699812385329473832807619101252856394025601827210607359789772217452808032398153010805892003788905333755677050187115339999081106141238410293511878253314137741440089244134085887511266998810007866136825276540267068913512285238731467550117045962786928712170339170261756903153819168037154127112606849345462822961024077185108711341170924890703898404361877283311758723431647601066913949938197662231980359085219438338606944499237666607128435505980478540946337162245486353817527017544157710971244287449578704289971026076600457032267501915652577703147580804473628229442237234510254692271719999841575641695292249137250302099802078831977484056281540236949567203191485424417177302517903615563940334435719084938810242066278529808250437998679765163137992828767945587378875799541741756934265352160886033111898719923297908721202251297769623858956255084167008145208402493926235591779100117479809384324893918102707104411657353616365151133308593096438543934849846526961228172486110706890710375419853437088107640178114128404696020183197733083524526924083309983484935008811513320812428074612982860039339852547638462041288856374905490012613673748418133869128569203855857536439909059187635308327049807719268809347501929179834123176406240484713879966651508214377076234450645493785880561546032007895698590376885974587594455462727553736482755400143411981319005445856684062796782301930491380808105632148510195082823910672544823028136670284525719820131518605939024307024869578104745292916060629910778405382565592701318858708201196288007894201194875497899708904276581732227668617843507324911713761716854695815969995243054405202877838398702380452989454409925337557988398219713640744883656484496330081106262855819630581287889044793698652482882432793189250956115809787249026439750218668317270653543722904726929506712236790193202401535960043587559187362890521723832097360120265675424878839236950879982567547384538084548875093822538852946132328169461371509305063042210028969752022621605421521252678277874542696481613630007450647576888766468224869670961459434297288971697381194232857066911646035426148737956805455090835886354429668024426969750921250072773372535855253126802272112601130489726319900856223218215766728990263459888964941691438111698180933802550738424034014986453406892928649662748939920533951082118455404654204479093667025175727347298423140044969560817112642631378946852104399497356902985287673568509308284151077841485607567397496526258241157179861911922518624596456366786752417853412315902030470503838258737644771540040913794530462813171271857308744861800505197724939163161823513951973009786086800010551321928697501450518985162501311826174395248474452531435761419518460482747373091575701410099188630036161418833132882783707416450231444545963924665537953028404210416104002667811522703391714886062928015718937160713473933181881913324873707900238989601966157024689043649385463892335635909589617706304328218386847676871599707295278821069717751465358161059493340796690078184909770404407282815308460079514262684586783660300654696800078478741551711616812296347148803206630168169502894896992904140614958298393523496665996875084563231425675009740340373962793725313693933207329089543854736576040400485628762197015214404344867515454172547500057238607870542199417996226324053276702772472977245231183606438065835591917338337021976007223561729520455585914901126512475886662796770985270995264893644663555009526503812026334376005866580240340458000628528394277699710587431130645440241149382141812247696902586973017603602660693471745912772079680636552457598031775682263511811326039572727848712632068235348120262364361753775172990746582669757218619586568871235571268184590390678800387152680626276450005423279945857014581515840933361541054421886125833600862086796402503220915390759401973818256283841225446245371325909542580715012182290864083439963505173846574927751781682643611131463397847162164032841535911821211183892087367283095509932162670573874583863925601868795146089491699763290464239594648305521806320055641434299756724281238344085107726277741729658027313379575991930351111905748225051295188764949716156169282407873329855114833809558768994567480528812400018930305029776496396376981972324289939170296407809431881925807027316986239137191981950952408904460564447466691039909234955814831265645840785221954211311874395647737833308536714386652703898617689925343598267495315552114742050406786117811327513626715213412823005780131433597424501846722442779832038634185670718670586456681884532217886011316543748627234178474244941912404869374012395511578658245863969470963284140100991544027481309842329143282208818921645687294100573586878212311179146693956368867264291144212510983600937603220386546815819758179735252741884672666933670671507180613842500427522538880876136776154934613547135875921981116212920421745713891313890325765469157325761028202592381034279156768537230620197421758704660996662278296982501438740897923501306702420330559382433631960104901040463159224870159644234296573777396147540311044734027235570093359495469925168666251420766572184108418203450375329275828878286953770825242228143949369279844713131825630324080359677863900503121969749860326034871970348647341809707962002299426960802377581471962090134604882950979048607819945564404160230461551581667539781819617918444998469162709288882819060595855801790624259590261997233543761286542664941493418106179376221226341515468877999879577399850161174031946181935324697393188684008256181476191234586460578216458757224445897611775757067502006871008406035437784211959279079547229119515040698878619365418742990971707172114402528203398384047425770039993922605430898048734682117185813830566289805126017848643900408331652510227507924253802714326143975750961975376643757198276430667130325528031897433555500500084659366948161562867571719450986506252642536222421944004865328930854215056277948167940782259230934237152964591460258798818700290897014743561947496307410060640943850499491354378422145945984064156341251341898833791218153029754441975186193627030863725300282601835492221386123428848096922208306412389654328110325378482660874544395492109925196679163194335790807653023725464498174175808498904692949393017961808947366697442863184417769428295565875194474372854455896742973330538165631563136155314829847525187055662285107570458008227834788242770560677316303384276204184884086060187164406963881863454476604308055666442856845311717158766842255429895351097905958958485041218363893857862498537675265143148176170184524739276662208901343063552753852771527900072239464216496578220028372532585018720940727999077936449404519674673858784185644113513817287412646481658791993130345866688380306792720286002794942038893644510608424484105121404880602601437019933050804931816342709570495649636548718457378581558545843100865161199252770145755275874845351411957242070932622710260973929741704011066788614938168479780200008427757601199432008553617796076820904657249770253158028073542789672458746525771834265815544567477089540767177052681689349256296127855628871638848676373195372391495108096876847052395871491208969264115488963653454369850040767722317418413367853308487765273724377976537402946419872163782991725718039298796044644139735447507817759497188837187873308007656260454456879687017050679867855846061575134963965001149024957875270693875713721837835606290121109876621680330143932251188585093138996786224090438210432594496068168403610855396740358617867564530505054136313632313564192522156752918935753310543671496952692852065854905378167662132222375732912084086070116909451952796762825166092553791570510252525525333010218061906753540298167699033131927935231240883414355286170549868103670690977675169988950241639034050609435245511255840400909136713471907323058956686986224317385742175077145097960801194752356453445351888556787778698751374450042733477591959499724451425880084737088058696877515056190797909095710764601564659825186214644597736121574387156918412539465191387055083096151950110510462123206297429099562677659937693602249840649870799938165770729164444826797093246713237355505634059911893611467677809742462917297642374785743623033452672554024333002537365359482641310747064775792747369813048637714309741513323486894695179319494711173761912203628988594008579694116442327888700183470111573253490808595214433893207125969738500577302758157218683097021767974617383185594613100838490750790658479154422538001560095137263595349575331808979701708120635834042125808144720858480854875645249773085163757289133357466470620716503906586441151081974211549596139360877929421695168616684530391731117358092959090269892304283645912887258975470719330658939219830644538974757173063515523913430489610217153150301349539975468129171446410152915765087704964316374443575687610401493756929533444310096870010742494026491794494236213620465914900326313701342644245038693879476147532012467218028773913974719251201687599065818448701821467683118183091596631518469088869861196335832574257079187690479700458779563235299503860506648042274796596190797694594539517914574813695677801345503093178502630287871158962483624704966228922441256924896023267038574869595167767555600452332027322839911158140722396628484082692803993649105191726650194487564800987898578188097582802509135469590631860389150515337669703397417911377709800920684972407573302650862617804201370737887455741768425827942803936117254224651925369373172368891108523764685729775817603119073492985434191812425041661302929048838791522759869657667830848396075083133546031608469088875564177424472371460914427233793456757940422956945781849255514847077448564029700793997516010685990473057688540330720120946963585361855853167096937122491476314955818913388044637732749170326228964554573338545173364654816770476600643051551038117630820346477514449128744140178846522951152960308317633084883026380522310971475369273144794355085332832050966682877760300418817913258442892781483150976010196683572089899932414921149203368690079857298809247784522014505258342016141955978561902918180530595217536110213330269739692239665259876146730013608907535550576424126326193469716763417401792382946792944677471107500931371068551220314935713242492331293107869025477229609688092104213835366787250512442265317197577053063408253163389625217288261575352311950492032557836941286263336309408391211102982874982185432700308767985250980994416396855501015828259740415661858826740175654327517298760115234262487911845548403841914596995508915961550333933048603580710324276386685585564590528117059364415341179880870982066864223854498809353816489918822586613792658039430444674116084712357755945129025103777934858409883172213447424677193827298506685932437221657345527809544140011475191961329098187705588093803254072496731277567716433982752155436654518651974739890378463480083187821895647492271905622773885256704709617899446290158550632303810233420286013336068898305069814817945819347018044586236608791924202815901117991034834440612627624298560203247192498950246076646924219554926293022093528350066084049588860726760641223501085434985461059217470764738041465870618657183295888261216478658026618603344294265039742838509474619178727027556244490995708964430947009197654709969602771596130142177103556508377797826340204021650809502872480016531156461966754065214684564961200411423200579089197367521043671336896606272106649986340229239566147786380216776089898581240370541258476378874690539036841896222798271976580093350227257687120626836849376875658833130715697738427980964426024751311221081318076300244226723401538780561584707229372075485377813812827180275422621274515987247429543659420415539940802444671415763164662724806546176928144067568410659628950841844110120728545989586877626402390358856088280500815916317147283412883395816290345533683089705271696577965852775408699506266836548232340100285903253154100654500522299107894199934099370086113739733174591511308664184977298981254794025165060925308756130110047551193944210516042854622883307506456225619180260993539809525322567346505182445530772277057607759238419821005020045048686491208603371561819810532064028529983271446718586973755930913840337362184132297279616523473356762573993486684553095261456503893944023118494579924547781449435491881274193189279044054920773617117203867424876869255117294900449656223862604971539288106327106768219360849458672778962004949381977959967401972851506248663399773337649411643656661224942488791621710557535860801017229979379425762540834171800163541392241135203547923083464233789084126340540555840811957448884977463266043509103370199879478403599339615374114415788193924436288076934885102313326029347448428350754634940009103499148161023463400786110709429886583190224716620724828619830085774631132012824308721250757131986961936940065723265195357944920869717202677892335702601181871185614486589152893104085956698818102604996548301481781352574506020400434494085214008565928628600050941884471285186460674670719456138298288448632620585025528501720855266053464032739223279701548388869698656346508086896672705097208634501950130920729572733339289316540456017438862422139711825718594945552944641405934272834239822299371166104421255358607462514753175116434005122018203236482439324634852621165330363808282366789497673793407105849953962113512661800757201472603476099253642949527753748823152107593524621265463016024750856300403887029498919161344518340471759459546775311467709882072216586818627575186045576012177961477880384987811720894397355307106108786503908785361849222605538497783590150406575190766079435448879913189249075601911437759330795583567668609278403878026344474136634477680246329432243112448189040384456767962660779978376121112125465658348419471545350346145798677980093834689623224960683666172384460400075198000920930234245925242440631753211858784557974874164710938375221963758132702494769041675336657680463414537501246558759843645060329568661762246421120561740102357528186878685924660987017530116527291043284218883703505248299962789836488462547099110047152662519744785194474866612062597700357268906413069127738246867243518584137533735086601540393787313341042051772837437662309846810630785450286130732265252798958070047721117445473993641255614061289339365263258132796344483401029237965577022139826223338153393395521844651049549952211433370229944530719422496246309947104522027352122066725833167298456117216251960955764614852935686417112464267512522543027941818291060506729364754957434027055982548515388535466601177621685598849952121353970518751845456093442943279047618569128405086909431427392145576333734113465224708562279237513433076273647993607879940140599793587343538209630938606562443655774424725053737238349309191951710003807027198016882958276830180043674960434673531095287905877940750047206399388686650844923017633331744482788743792093934291031663402643268937074056045372046655474421826953481116942460434354539901165632673906517536522457380710055887441293266389295289147245798461075284330681988150199298199130397616544368367728738107021091173952175356631921837295593113949993914320090076997925083352517439648095555888434244544005275082364190170637093152318789706531087200897175712537778372699623321468715375773447738221109989094728214012615526976457851366558994520972634010438242087723862931745976777019449851251882411076262044190359581239038316272487462687239623045030310509007068602759459485740909833540983951958666057164551938068995006832890943232525850405084074600884277000579755812155500948847342199197771885979584647376016305479204747919667236418024603073698426234788899930258714284463341857460443001768740287163078830698605871000966177296734450830695989984191226379743351783837304643927786796022057050015424111893056468594576271827844749124405955016098443872123400976068885914493924200534194212771702152145947980225416790664529269226373142019806717613271362651787515741526117796802830276003498076270457804632903686294945887417747243490964977509638758181971997898855593551552591803097322952229585182809739670980370566939571172496607084919223819959379434642062122442753555725685396560381398322985549528599736283481372073633783458216232417357209481098831203111623419593886215180931078565351830332732882077815376489037476623328829956825979980362774996206916464316035479862724532908631472006101781187906237641130560700765520793557071135745748174471502736235974087842530412837330371902331796167440466374622384147651286848982659631620496057092694657412034587255773179153536588692881167667268312529585496182924393615704478094419078443249400911328438333839439896523146378542914322854123824661752511180166129455313510229839553665358294987858607194484421292677669464188587006327233541320838743714290455769720264850529069389422904150561102999109641009897355803377574862187271390728517348717256954227644118201794870606555467878452398065789070974652476951830299186030479660696924000114955999225426186500117947432319888729325430721467628207144413250441137706305964954746723244474073750429998427598754973696646461091434421943426920936761437870113069917788749866540967122269275604864390528731705835217020491829315329609039917602619046952283577050427563035012054963312585786965136418356449740425303924263424313334858770975636092243866864369845686106115048329512586145451035341832765096564016084866879369398161801400628003356746367074870718760461230851753810296251222149554501395055731033575504097667204288455383903909907618098722751269669532653608194304196585804405657502828202628358264401721686564076561939007855444495493236884685864318262816722040374393637634233822308166308399823674423563124265386097284637698886720817534393382141644312935105755054482570403488751355709060811454437099091861822093786600363068441033981418323802901370529401970485142504279335127591108821739325367539906361648761126166181649145334877829267656500627474447809066744141134340960209498715447604613720457935653306194342234652932880515547009296946937131006270397476195513362392900343036634254923874731637691779667363296088211833016965186946754225019639977596626077392889843750301095315327821396734455484576538267090339871617944264935266521033624120641739806582432741886619693556669759473951062125779067038955400150964942749178125722250266837419730651644698769757840924165955039569572250667317281402987162810631259367994156433630627392453018981567175512155394785257302946184828913876821635774161199760169385533525460633765106937554200775834909469875057999080412142096627915987457996530292737771981019983105317727617241593090984393371047668648719370789429239006237488965037339834507485425882496977730195711812107483112293834002355751691896289570360949473329990534021346399699417917653588402626445584008647625867810195925942295214631429483715927639847717862343192669444821558875093088587556239770410457059162288885556418293057238088441901078366423543505492625120777315052376420488736268070299310153342787709390580721444539285000193532130373906472833060842263270514992613105789333551959296341890443554351991575314211491507512163554915333226853393315019154592079450309218836917307591883247610341870251801639016398080897693335027562384657916612436681323722280099752206748846584635570966443279498447027206027368199744015390226286086256094124787759339843668993504672507743109337355402858597862409752053801258489279683273417033378417087485794993744434398395964522644596140258659557540888909695925258717080963407062318194164772865221759570722142351827091789036686885957415051629132459219622250804388791021886862383306632444825001733578223590444083994501499186069669774219783517573713871988368146295885645679941119366150724793134352706252132357700905662109216730328588985400114150584219165837799517178519482001915496737698845445689477368842586055549265755713256913842518586284710255925105646190041125646983582126963884082027884993572925590054446408110580473807285438476563042737483567134711487647121521568989269080992003397599635288943572578385206477532797075711917414407393370983756452070903276709183012210369785536173117739965975819977361666176095678699241646486245642999428395882093786483238140717558154653918257047674709739850321787340515625122877541649832994743883113700297341466679855698798288707615930985217981260505720537865656026119334972940090757040072516979164617328832964960279935519818863644906335923041619692098366970940857157736719934992878347609671258871104503835487245549111730158588679192275317096646172130673638423233021266072054122437802550703251517431465747943036999255895184690159558796989677150924667541229782970970155200528705099322028301413676414881785742505643536015603477084307292973569294457993406266432066369986326891625202271811483989823200889021700340846724469848040641732434588163618711334114816237333383246175147030810915488887556041150765725156357507867084159164988848835714984318539434288885136343574346068718586858793958864749661840466057879956296129419837654097711100878544060234003881426878474077369667569742438501284620886186232076997937654020287709562296391776170653744372210766078896899645018383518408944698706871391371691185228928695463954425823245256975856382545754690880380530249844635044138124459253251834770414294715364434047921765753064973283235379086956324018992443577746524196510732830976587630284386843395135903583138269819838352331453787484247971371939379811336730755788707872163010774759525514596921142956396125862269920781513589696237953256603542984814894484397255498585782852972573596611935365673750931996752201030146911553809693212710483321329739963904915943595544287559712606550572237591858014735043298823945146171127180943302126244020518506056501651944270425862112468214622495418085983948161622733532638655737853494848908824771027049029709241396011335381494515289669950654101259699984443890026709694785266780671773813664374878586612423666493834171235169573046223727334570985321542487902473981588844589733827370716032174122968022448414836361115556575864109270928963755192232008919270620803413103960653956683600990993871306003276938109787386800066499273358424842522397762077387033765039909621830179507181685691647082917599535673236030286109859063707888538704612022862383572192785552493779014668381859375073442815215377295985749533459351396301277333955123764511902128054083022415456780261183196918178967952833295204374622333991042824640213266300988947117003035101763381444375503873589742800604962570515604854957596988067871065948468555007416568932821552707811564678687517808585857406759069568375153676689705130717215122288549254935653154972504215471505548173515269896468877048194325832269150680223086729001096780665633739351688773827747879522652292996912192568622903045728105573700938747929305923193623697052405746971441723151983676004115702924429196126326713332317507270634750629516088365807132226714775734521886051790153484523877442277485368899077086004513960588502259160262449230252811141390292559544618472698178483652678172832064551258872850062298873767422284671559469040731265625514876076535855073775829102970679374813677085399912683421251791171218625347975820812625989305646364962124242954753103376312731831823639372853580266209697550688506684298005616969576511748236390842938244969974117119362098747630968336011932598564483649727054567315566654694304101036300440422098761256213851887952437989012450906070228083764013674284084334661450424997082437967597232056599575370757074097453398288812907614524871977488175887347101274272898897202646384675437365855022229425313879754172582242430821740732806148302211325738748369477361448521723893935343815908736463512514654983197278716208152821926151112061830479580609248668062987682105689264268913603418163922042217581109268955977260636540141953100387392359583088106170827450979924804882639884914352447790627236322616126423323383583825984488597359139196197895136754338245267373192492938132057040406186316114326650040673955845558423174065942901966023692600877612224274727073733367894004200173088283347760931525290949547593329887422974096707284667929007198357656847518811844024339361536178222028525870752693242753643376169039393322164906329661110771247407895692455362401815798273187911914139596583421300486283178433599405514428446730941066541931566132367158110635923913876261136534969647157278606128882475596233774402154906864631733210651422078613029250457401739888385698277110376271311992863822435383385202619934020761259913638666246586363566514105715567817609280168702240673200295411681091315329107327294673720150329947960363549669281715959200057995109075670735714025729211062270850917118235017163856037973871174984402368077279684567553149809498087241121238575167905711492070518418975665569639979691056777833355849876204086354133463744089970376687637223152585792067825928441946655744815340619051132071823478886542108890788393096975817853986812874935590278177817021027065092823770089968894401429722119779313946699343022422797578871516147505707033489878601355021558075113567256809397041351588658065807294517769459632127843451368651021718734465128697250230379977400653745672395612222285473823539754201651452489052871353923380417206383860126601005422791663549024958940405204870165218111607263612707297984303818245243625903507210694512294654493896478573854743431855681840596420500841602868805052198508595835746750518148759356651427994816599407922633178795637454573208874738039380222717898123412763225493571989525136577324836989286651361720930692165057344078326660902967441152117769254230999481429602958404911496273653065444865220395833427262185026584960377994390150778408503880784418502766552990460112595798501599531043393036419173810626669988504049692241057294228701490626373959376478645087312347347509246793929462914726105626502789991373751666548215294565329010910592844277306257649367685874878977344030332586935324009096028380904854710830934366673466545862474379102889051440781390500039669903178792367970180271008877387527631620287500968278014687138207020266583771249795114591038291810196763953610371518279404359581768872551209173242059323512328077657313283011589049625138237529211347533305388639604743048465869058098925534856072062256708163181956906399200265239072027930090018271343052717486809449782678186193013738751476371742506223932064856148637808226203919521087663307930226527838214810151255496454287362209777922727012554950125324778214378260826569433870046842614497889009749363730353577522688090755065030237842156363851114017308427038220627026151452440692675439367663144431176804442818100800194609098850593491931602968782395310380759630090931282471089999310038900855027834928901245361603457262479407497829747924734105144826022649284549390608737637720268482692702694506461980899213816495971241330361423730797837866891071894048819008189347704196872676561167972399065829220652110091592201941126069563497651148409238289551357941731899876454469728098751626328018628078163942892692065033937615036806746861244455592983646566516745957341556976388138789115710344688857089255149194048739296199203076705433359992887837106424981481668292911388790173613212982572938092574574373036520889569243211370866007249671686825641834768940522925824110710724779317759910579893581642555224277860596362191976690407366423503517829833173890846546009114968019762100486651534705251687539114326660941679257409569897903138031689504970518524027911085892760870800855158518769019125610961796124464280692145032207133853208146146831401748807589427491045552611334976305663955804387697685874200961711871242568063239460457424318450111171522485803801771370344634459835011219921017972830619706979425286810767475004547319974755832279860051946989257377298092853657961433164700511681141924597396674474052138277754501454302163571491724255053893614589643586268518352574380299792194638933397729234952731117388087549456264680626073666271141600194201068337672288325273251335010052880525796069515817824208985637102100930424925851738718947676654537142085876376604184564055860989897764172162503448507222222104128996714759307160963523062544452599555002122329449556633877205723088224222710204869029044720941627229148898214712652061925283630822974444069988781980741127068078453039674295597540228364813446260059560834615302969636007781704452869472622185876073514583512715399991917412407843861393601871789506512152505735386624319412767698430354465142603217334207546621784856461474463015581899446810611225822289370055980343210350525134808943312751119922979422297343994114340751209093759725879646750117621549238229791702306938371762026670411679415682394120746426681937831433355283567257938089048543547469631368914123183825293086659871595270257067743536923167776769922059166268370913276984969851831846001449423390525325576658689343355178173898950264132452451256620443321183468976769774219124928464587177810513063704440110714757171158435685175038728124222619149104516955532034432721604870930845804116952975552902746818982384648604248480175140767473334693951164579125305052470838396922236700405076726261579097994994121649950470871747881357739736665665289933930215074668434740847947834204623107317883396187811197505631197619948091870873649459389016589638135743554180007828875355758972840616024756877034718651266419391693140265736379036232201277533611447767827621738076064151299689059559223644242660116672243245019921784658286233090301594562517910074870120985137355864883776123546713926265067143382708960123386910718412750716548550441698981573265740639807976898771507367962655167870952058925578692054819961204323876371942624471530558957415821451943080853390366828829341897859882848469837483856591462200129323745778475538727705876723766215181060181733548172516267480582094098168396669853638036967395384074585148316793450852290524582992266151836715625480793812633294091938138988660861981572565836410582055135710578238756849224776114085827912675892971819672974878688858648258915825714866101170020828044902777821532737995002224557191240383725906733526682931351530881491165083363685099050867364831958211652099707189701772313595933449245317779708953997764870541419796749807546064192367921851444865143157208970253277901725908220183018716526674306794291794862596210203777996460256761244733381538830149649606649180323920663150876381281867282549509192561675593770786237824632356444452357208928733360544727723727530939840720747097592376791821274662832387315900079941913630531944400292856470658401980878421782946752600646362216392133760940183325587179215694127620337174887918298758280000637145994809040416842230380195416540203166484602410183472014160598341427500356884547042465450761178047554917236926217419799513815830747975552982357607300212786415924256834065844181462301096755706746049312356221358440091421467022899281085532361868821594668063527233099513141811865986517854438321103543917631499104352047882922304255065359703427999847905729167147194846852277078376603087596972277106012910360536614965755524874808735676617076413284017586544871975062974707246162376167355022034351790672156551602639436459719222658245872993821317749719414816091647706019057425063533287046566468201639447064980252752168171535929104538185396598748542907384575866036095071586385858553215756986273358876587707020110741510080258380034298392521970545432685899805967290628077914801393683279499453179346507943024106411564655772779508590173426667563581851199124673807548670681237351109170307597907653788736372602420819291524391944682779149787474925191391307661339411649568484374827539955017554744496437680639903543477419634681544218365434516468848184268886630696397335520452088842680936557465218369766860197003394881849965459682944117114487265631192101915102113633533312100828852907613847550923693629368483062886341714561932242453936043155451386549043362281773741935656788123858894223523456800722155717263650792146270615646560018483124801338291894810340012746872243700858566894689561571771099361399676743976954048223202872046433801665376639468901149950251478353794617338041530360175140464116588638338292329354104689668502432333137565301529108671574893432652894688414015401485710173418962569974488402603620519907297604060606413933878397769867725691617701088250453403347238535361431488391891629604743052936920037349872283273029117072554864057464364970115143967935289047567516537843345389372281456276834789854793322599192262393236655440949245279533930814477727713589933143418772658581477973137420198228919136395712246611002385218690113067242349665695842218604260333465850355392758831405109490774163561867249623099390513091103019377944697268112225534967413113178420730412101589792769849142398438650425008309350606064182488439877380756605138161892746206147515520208660376141095501519123145365224899118164091761244875193332538252242921433237033960028710487447853869613873455626299809613183866815087982476520097452507540042792655153586077090090003064104195525591111527943381221091100534159197453064388355103193657513894968212191874745441774660162440989731837829128598027438632928073774533262569828741151524743062015127351819103388305119639715436531915996362543531022261553438444325822980802577219672907711724213779377457690252489669169204840741146000582930145703821821029045811390890846465297946905290446701178436524690159870022976331631157760869638036163299870377681240494546942091789650438620841021951244095415497381945804377853364874005978350585480638641712193159178463311310343245940629638556772209581442103398702910033428620451443572625561420767793980616301990494585162191063563913804185682063610922246896468236833220147107136413352105376651638005923761616246320205599617086547996803982851349239255437034316741913175513613600034476428147237409421187190032071718618163635695683941848869004592831607703538038378417989549546728440734888807967919806589583170673379929720468015142387514067730715137860613690343808336209453373152579551964654127005093523468577182348045200162564357320543222704323750010460087087006309803341022736445711963525682053203579030605853642883067092929061721266224172365128899245287006542793666588822915203563185468522796010870995375663665257975967573858414130819407754943613716327874447082563428494064314691726006371394144403501926133711448702368666668828378379965497011938450517823981512342267403338809080908233533055525159620430165920571132567143536909068111993592554253308067268670221620269172376201829787935648313427881248138901991676463884832015858619741811551263716480735244530380119862219797724496819047213526334634285125987500194854461500512974625585927241178222177074880572943326224319617001907578401024370856789477333686296211159824154381140402222817625444480558995538409434989263499586025586289055521451551801151752822481975509068287492462315534045979416600011689799607269743386907102138235743356365309048714799725011728818059796665663365812499392185748743760233267540415839868695172765763353985051228340186133853961042564573019253416164809477759258947048107048714195416872618451595928847236263508917416997597610039892674902726956409470747481782330532287728612136168009881139477676683298161289733515928498522186911649107715521207522977175844857992900816697232714617160195615776023098145077346202049185969045217213880502673895390007475226870389044457996932429968208069299763276077585686873885507983273672237079590719845381975154912614809756799800975875597662249879779109388945198610502817033300766933488101326073721989012365467925047478545519531515206125630640111114011846279043888157267788022911104988010506609093929425979268925207051750668217857705389619106834370331820143094853910394810278384951543651398544662397804707170296338458339734241877890452608419886124756494348819847056968528970911569971657391145938813824192027439900709689494495080762638059102676846245036520097885290929048543322265614042718032996949392088610760668706004768630178415356257186670425243401595035637478961769020393212741442243446248729560627752749648163038392902612804220113274190435681531170616921734897573541917515486961911388864829018459587427001953294506007779190427355011385459968121430731449560278807016914181128924017739756533575328316977715540182660602468233381888696528359702183394558871187404386681877100367410749303018571343033641814289627979367330584802185937922141683050534153796174331844404231520334477852914926659885933262560000344184212060236586371014753398959869577799080825999499327096629045119355389438325462860496780366465068193521323750265125496454484341429330307236601127792434230922933814278544293027001537213156590562002497685268961403996797383392382266642256653855842165114584021137912670211985704849932678320590156071365845768498465157247077466638393414027131416349919465547156892439429619906281139386630745121646038646324726264843824187249930371842466993778959203516442761772799679166374175435775536266974847267539848904379512313728981420089865460459860965813528634636110023398106181557558237151022851738800847103534040855529833948602529813580246479030916251119030336916611111386012246494645015871261431503402405327884089388526680734297228646850326270411212824026127091957878889838151559927760785294236896361796315728546249624539832688785967172007587552411800024577294899803824306450705213790272059369769628412422191065144193133267979012990399107554378260563291017384615908187237229727989598585078360468303997164968951029253272272395880655508680905967106440859297228023060730255976648448181347617032874405194881930349249819903917169096638557107533176959665016351085281411859958220774604144634735804517546763904741174924602951372454404262010710026565682492441778605458407870260781438086370537054923428014663152073609956692227916950511743163504575448706431757968086858787126304783978632741178919260923130995864714869124439242978553633009875696221301803484626067122804510127615441591712928929295544442270692864497522960305697292143993143794739766744870714051377987122970819932261588435703296502047397420932235850073618595079197565005383728008334485207314493463370036968286786178836656330159865060500620232173819865915779215977823405485529558335081329290365662267888216527244278188730799084087952798386964768601339204499813592696788700193364016374877240644209965908202995870989581697288575012565178660022052867400704599322430268300095464392621573854708631797823413799662383538227078184926512236295505050317601304396370783088425159124518943597013188148807094451849224700822841945525223385473093239282068144795287989875017837895486919188205508075300463803426238958915816210314782968305253551496893859088804643475359273627500442064704821889147725899979517837216380491853159278276969501504960459041477930900199890378361174510249977177409953851367440471944297153889923429659758331197660468899481196821105173644130917601984970892623228542927760987166233595879986043698976930505262890409721817600171771957327988276956587088310835971848158198323411723388687932027196985484093578675618415035343286585095954340036341027107414613741851344652618917508040105760460701480601031851505137986969650782660855535989021652661495472938366508584761427913286555953797093878969552065975156821898633308259693944069810407993072958450167496974298092757527619511032933766300686554852379086215546290544945470701343959625493051537095774739085285292503210193814934447623989711926536059051219911736517520873507564335792242864334336436093360348708859978170026085525830805073694890665838255983580509585195575290056961116544289827205861780554600004940271847683317164087185466374665648196020159789768755847337118861377927805410211626013002068687513437758510647847359121582168549211852307515618415352773843694303363545946385531841779104421514108569452147915419886535353747189846333232232600806823095403911945225168300442973532249953445268459938822537505883492000949317072526221443096023516718494775181523520759809068185264051936956888693967254289174381148158666679210884396046530363806784299764829188586742596512483285606338618218769282908285905799673931713371290812914388512080479697833687897812675995082579999266236836026958688019093312171284235377081045562533572593619879980205337309113385229521578401093746356499664734321096181154337117799174023134330351764766565976772063519982051293831173365769332725684659154191877447623387542600884993205250679168697837212281522470612277367320334464924663312631001934857114947634760542837101101960281834672442113865823141764552992863751230811365205119487415901829225025655697320145372467618167547232151654205594051687937401301429282640762851442494439089144777381370089766432810559269839785033634139997187734222337504882396531380238470766184791330782599334245398518675861679338102315452008891225638650363176520286108672080675973411734891193656950818759885505056026699938427228686445190925291237454048563561402525857761370007558925421897390754705926335359360100458327556167776595312611388976813840017609838318650271870845405513442057208050802842667640367312231727108207951396801141199740733948641690973148549454309615956298218862606625125017810000772648531375937201220173103648128161082943110375514676070992836026346369157299858468324729923909060168669472369472152192801071670850565673123934520549291228329709684910841529182328426793455815461121322079955845507967227120301206467922483164573855316033062835650339170783064425706930618522889702880497752061991894996431770124286136810953880076030939440411710381199640285519847662599621449106595524781422887218704701068363489373521715205500924200792130239610891793386918309171096063263250337979393820914413084137944562835345927927474509224021996140228269372933618050340234046566563383868445490104176793424866107184789722602666586430226769416787002496004455319820739919873642833019950058925841167119666099997838249941010416827591155120214358092918491605705176506002497250048757878484357200536262246149600332406489688521894903332989774694392621685089041557518600035827083794470177487300852374532540155416698752245957133594819828013411309452135687579990750498398956294344251507574964761999762788063791640059950474273025744114793055430965812147354828703343295557363126721535055889096870133378913785321291446685710430589578554459037896223062611086152310512360855681611151815383144945209643935873798055900896395705477721375892573512080628625363076642897714903364150728417916605185996005616831169302563522582017050932177840711014124902177812206315250108453921314757722063580695302450023486724730001141868551120178066957867997222928698424795864009706580234866205736442731006977180048780804390820053729920655685686086036444640598804883696817515675993351206802808248790038729284009023785677213965081952872649263715491047794453851644099639550807953997883851411586773818657047399615551307234616308621215433718364604913377134230743205060281414718621489135016006319558041332617577234573881261101988623623109711029703383573202370749338089341989351602116410634815181646452976734010347526569782681117410666894873038896068038075902229080481209617543170701186719898817619821680635056125568424580422849210164730955807266842870119784685020701543416499907394194057846307243766075900126593793497868923872624359436789647186115045312194799917300071188648426183993556392364836034627026444506377750630649519187607427468315170862153940107772043697594489892083064355374511489790490335848973969713746836803900272669453426660273185002838217892312080728716075524240525035824894610858400950934191260340931782431416984255600088869696380820668553008333802710887884502235304462901772443524908504889421352237557446639353657738378618182119437283922439664615804764382076827253146012382068041385307782324260903556173943344292067847141017686084562746782439709346105240098329419857262101598956056953624894274331552498681221848345092046318141977900471309158114485116318621557904827064127285095739783374446444203627031125367199055366095756360548405168595310031315516756596924289486620935154248031432024593838027496924570175739274740869651587736256580477915966794742135752813959718258190285315128084639899439557508763834406728658688154473091138132397877389858699317238772324088426984130950413512687438991855101464720752970125217291689710531203505046055368077864054152915340300475098223002296323586365201105939452463666691652675002603302108414588166904378822362312337203218733540490601903585858238719325215254136919362462772896256237988882291562198770453411732202310369701655969699650277892745824759851905058988973945307129061781533511812170933382704678644238947268988944265941136896380429099529607420853736503440518365513968149554630539442848082989245270359287287322120876124318775950328400233085782854320905543217446234716140023431099070619720599938591694191762029225126123485544366259737894817643348171460342688800030319411040179569284565989221864668853824076500509788171671993818645298801906314547125635961771796996533524188110658629247000978671624578238330787470239112544681262416503130652751037948244672918450318706068162675797486736097746205546484383567505821142331702335287007826554348568913245740967154172170382531644674347419472899041176094544708795918250096999331411714311801158927534957550337489008716751068667634254262384470935320145465967197546552961383833076353382200004739890945213264384555976183367122470775664660275713873517473635271934744736779065565584076605546051416033947684552243460567114329874160039315246666545598036162612912479503358998325525608585611216025220238771173949450210972922569177954964735491774194869851872885732690622002394052738899897103883979689183891597680264122944258425299009813174649038993013250159617328205220484260722907529484415810976314366441077956405670231980202669893457324690448875485444542056014795452223216714706560311476336492796183141219665113616474215915377661953729300667172149872190662616775760545579208800167123467087659361897381099052222867273430733723638827009400667157358751413494102485690950178151863314141663435020031850093564979696592761087638387070150414955457062159457939702551227235756393244835000652614064968697768044985014374165170304987345425046838229150400573941719640355420585976096753681569189007727660353535599383295883264623150945680094130529670941265629362544650232550152628250540545078265175863730466301241408270116148237764645174184218640985881923906601443014058153838482709055516324777628130495283740838543206431028084505706759436708873341215694630150955655355923622029009558867273986303604455811221874914519190528813902110016787970603936296178112563641982769446626133399125275341692367507682629575653205192548377484434697803629369311630610494659698985412847605988820737237729479190480295542875701854275068409439429871721807821281533958250948746916887239212552347585960770456474907520626003738856129200103311342833630219721878514193436139038215160737344312960518220809180537099868777782401375855765058126948324075130182234591661068881657312512352060164719985904665013521139529160018628052820203021382233519540043918335745375166647368499176654415230023363529385770846612885801520426160105042757973627073070451491255105592988657957332432913358755099475961837295134765373398593477669662084554557814214875257388526806687871579297017340102406444058423552484349002722939651088488035612768601723099448606872971078375648477376342404824488484555438436845746828994928244566842224742705997072465846218067092181202219610869678170073807134814083349898401743318195181950616138354169057372875278997807463992806322173629537512623540338465758672196379118751310844971546662316974170425728750149316579741399925616994195016329936182214113743456063523272328875127397978551381926397570555523965405362633340031734171136674565348368522481945460045742264503183912578675899121215690503173937448156080011263652661335281360143576680426980742773890861101837442171204812753331087629952973072240487441397310023774453793609674308775332173096937929260763680466744727622882136133645169388760581001179360969277046052544820628157166139741572719211138143275427550889610614051800142712606300952854637464104015817633483040670241759557111654516573676257369627782260400983168484300487447131589797904143769974155453191238310593461945050289110294572673070016958079668321022047943919713151172723690907284515183357317248944724186256441707614883319408350234171040172588557190363438659490013959942629078320267114019587193106196985051920998562289731828050563818380957967676624644161131108244135993322545519923254979925127433515000382777467244365804707262346542246613567052434061401510828254774799235974552557186163880164597064844840697089581200884364149707777692512773805072422246594498602314003983791119219800614824392247841094947332750864880860243914012324496132150111462909391300978419742233973820828852374693334638266007673535623239497263435955726975934641475937497201529225145828629885462305681972151443706274337295740854797919745080474108237530246849423028886263613966321701816368907210591447065432078369134912622422972530887956085988616802411193408785408744422595117614216628534933387147678240847693699507030309850272454676861619608221784650225150673648988447102676664873660563403235418848175819543514748228320403737583956945315474501508162784863109221561065883623268531130166363126591747761395884089978129920947997728659462855370390798618615866025526019556948979935718672919542180918633005045410106359518150160727628655694652883907708968956029905967635353942536136171459986535583282050861239721230229262551842589922844636116087935356623274116096049992833975391884396733639005805838049015797097530541577078482370856670496791490885949153395452367882201445504856990977315834081319756312939193490912089498689523293116874109056009943838046660450623747021990161833624372536489841350169376903291586260791813010358850443343397219722415343700416344352292207807837068767509275575680111576326800688498394019245424497072338753632482599055509358030911644234491724503832249924020738992350966079045931636158131665823927437304194942964609003022690078620833210554434911197878787681337261102209862905857379853797956574186334776740424425894119887408956068487037706468963718359174898785046842791248723587432964557216757022792467408724157760517098751037354008297821430009467995026921562062516136690614608552207174209626785956509617676330152613125576261260211515094634788791918803771520706826290294374694301594552392177074462920049842577090298578404986714104229058549332247748086663243121130616853772105380785289250688878459117364426818177950497082438761757460262046180383920954978663873676304977210736243254793799252410012916490907910975907298255286254753485254964387961876540382927393274071897796144290509954863856051818176102858649442178277644924753704179630101546251144937397845174139130806829635484817687957471437023545468949132020470039411462417640826138604444664796739590088824080385655746979641021479295613834909010565241320199854911230839775438371095663778356555881474165504549889505450617210735636742306776004458231187216363737478975688449116543204840688753266013643808672413505485561648950239239289241700996716640953668489581957400694277709560822778328523559282417840906708865169007840325471381256772087532720572493911993021600126407306408918278174860614900725295902694144109222620864210434602596929385853749678998688699331201131055767549344952769993938850047051640300892810761683104446165588143642667051974108716853972656494747837936992111491386848547027333570978670477445637112294336098842502199901293335841622358146526988697592485673589853644568272547339363590535849284329499333456417294810270694327942354103964707444331395550380265822845249200157336571815575557211684327163606539551988417941547240840473455047833744256152151403205125651633297681474650085650421884664071582134624626511828151209799709477784597647887221845818135636460133054792186440667443958931741375305788005866344842447027270938176825703734952500086593822106584150567173819167943140272651452490852124477629571733015573282552500861739266507203625583930063830785841214009745850439031679874102870630347625966437765479952712265436799727271357520526823717086602879139255116455528222059651816205113388063224165235178439182438308290225220111154217967007121067433706315665765369968746780478517230718415321844306474053781078072350231589280397088980113599698824279358475997622512663444991983130462121690852897674679478573198702387584202151195868677131006760136902066909120275198724916759947282354377997635764707340024794937803673947013953201761501152527064931489309678124143802251805424743169375230238293505896287453617524955131440007594084744333764144777756440173189189217933562483761408195674923736156140768287906328675789221628219791232873265580864043391783207956032845312598634478889219843723165491440669835421201071442684090062572384666188923806944807603232002714958429099020959714674435723121265998082102824947056560358951282379645294318689782146170831938217696507985038739179218697853751921139959686740981520247026611385568285645096656343661813517925535545875446358315556104001325412351036716187179864213559032870929744336501260308203648681785871718367534345322105963621205870548339895745168790231561887171067977931561643288608956498737844529110952688831848624771614958245850358190758154503945096687605884926671206076698350906321905454773024713822995404235188915021032431462117497999104272215082770663776404031203192990610309135865141884282293827244941212412170275205773966896651067539780955962347959623441232631442020571915652070644944616633350453952045215377857889148597353171289950975693380359545724132902694311387571673339819714742785319964578424666097733167088654702565578911842653032596185623214666313562617460759095989043573013461508876646476834369913062193159619522317361579202820523697534587324963753714153809198298972672604623609321931341265183449329525312071023742087893397437010726180460865971789158135028158692956799248491406028943943043729751673610629491889374612254874781351762332941437302020737316434969217688827024389481757921558829710390262590976777230140201934166252532256858889669015104365467521185913907681953364814344117671395976965336586479501164418678332756713764809906949044878037891263133277739580010644672530605305126198479632091034066507186725945690265618829614178160185326360721547536694483603442279913569116251922221056248352412980213769303560860836804778659554723584149786337196219490837116165808728241032845033826648241316770011295790421275461142099195224169088932661427543181360221316984153321856626445248659814756045546157201974013318479518858926141389897253097663676085180118607769165082732227019427265102695057415303157131125101492202686138040690507463626551073932296099427812379529357986404097024930115290360883110422282481179299880150001691589808928642209221073470600822392292319009881628654036551883377789638999358912152758504916839177727913270858208009510325777221699365655074589819425909204291247351046159988841404511154999960315918120862417665212112451946435069259425387415234698722588798701899623271886576265167057974745480719331566637244370323188056731161373287712387812682235376749715025731565498007772277357204175227058097826235551644451022345185003651593155559969290782932724000229119851994458581225918207183804497237663700712092693523828606467545444470856393955717871335003626629198991758293564038067704037123205091076303880335779149291358191099056289630623045223685377420306337959750983243499279372095747596895864453746635858545500439421728862691469593870660003039126068682084817424089459967528316594657771133146620960192932399514389091471741540807662505100639726671721955745236381731353296393569471366874763153485992949317608761531368916538513011222510743855110650522764141721522844126094376778539962224564736254518355897587471738963911554354932304926535689212988709666488718060899711416526044328702212635809141825086801726510719629544747590704018967599867535819776593037930152907537132589826682470733695649182253837441840743802727683994587134544435197736483200981427359894055744841243464202081467211766107868199765358647170964826934256306304373972673708169876388585102491728873358499379005430598119717641848683261904378535443280325017597431822306853164459187751564933659469438573265687596956671740799871508708327212023476371948198156443008422950979677877894746252106000947646933685670010575683511705565264706381946430848187336935830163848812149798246117371464196307081277131715283088876703605346304539106692027237164613799009370283298549173451560030997368268883678590186223274358632522920869090015228905558771180685286842209792016306759096720518845510884332069077401068361100310581555385676227087868440487654779526738517557461403647663660502240323928973035375677017937559906448873784024434668017980873020097408891793119067621523417318680243561995705808342832076838961897559387120756344298816146575091587273308748991133533725190317849361367272673833585362045475016496362782466514125784420063718172549295472742862783099872524459869306208904789914703113458650435578889715916623351361408382533766453459260366205795793044152143461535281799652451657259968102074724002840742538756132676887607693483699658483947540684313192993562972265445962421453709727822893008446521253985065830596767407779481868531436597626956498770615158105936902715857406891782129902658610559307114130992353294565156111471218315859439544631242090214473549042102701201546003429103105964658331688066730814659834443626392202190051789252164308526289201932889272313150661385507892858673082447886592806834061766553290902937075598664037157040692365923601148681561170357791669334515572026286275858401868267298846230568758906737147449041504809515772495493258955844509510139612698615845922583156052999836984185423015043129347415648268624784307336092757602356149404894220449416269523589213898180687996768313229656343219230802268794615964160793851688520078543396780339389132792541552104655478718422977642545020855231394786867575658796935871350407948367777904623198983917049814435517457627044579808847018973179365569394654348236910393703613307592128651750010760743400646894328988239603466327778167167843534937174704516804393268489211899728511471583592366062931342849239878051017056801857916879926621933053026036149023289047039777259294537822216513460506955692592790023983329786210401353204565531498405567671287643483815446295621912332945292496659896172508617990585062045623685807232694457790499595509210483532349108860790168761350850326871916286923168906390458041991932712198437022737343852023426170359777308826058630799588235514457122369929064468973258769011185508427008196990290664324238002629031944085685225049575562446835918674584465403395549822622160876956715784391136472455171108820830036653847097669477160586167135446537701859103489464222434056333558918282837278062690875699941164236903315847810836584831364626477897960507480816534711488168338534883813730969152244809658273892811522686270723302242998444833411542267946564566911662973815572294462035478878325027378589351733033262406381525301644013550853289444067203792513780346785106668321232640011991675052440781659143834222402878711738890837135414580463273619108312074989906676972031498460199455949578359036246429906703847452410745701984700157028106883659271571502471488117051853184163372655971308073943592576391496443522253527504765994928391405076616166516558881683822546568576167248176467259896347784020980782882753076348273363424493610437505936763788724465053590310267089383504075609934985031603693284644312874375388853338793262520042184844259856087694534584642145237315319006039396897953450688420961668102383973371451802962662077785158992264899180092566256027549762567878879514813176872513272293655376842314017130414226446111852453393228033295328758605062444497655425240046261989524285123071844043385338305954072977199926143843609687445297875620106324286749324273563292179046574333732982397498021312999464267619871766642422846871147412891672858303592845420997393206402878545847264494991137711822159759273793711538179050233200560492995062635813642437064269420595201813496216467489856509749416855402347065176243561115270876910811702516147981526614579106835665750754157737078439683422664482407689161137956991117479474917715118138853720041287657507740556729338678967744940044795947682919211034739126749376406985892200508333707075107314113372229459188841416344805996710379138492250320156385071552104323712058737056115802054173903986869750094458874863026400465633500934523184356369637922384284051396640687225033784930971586803945328325372656358824545508650726980912623462323175280081985245602202963279937599352758543616683115040655868975755308930151903534115734634035445156602371589860450051865037487335090246431345437243439948882411139758055814454625508560386516064042706822908502636974701492772518260132047523198467247020091395054531624047947467572992558774260618904724788680185610116032085099297146381228126197401707706381584856716892422032346650245764799853246400614352837260479396366083344359130059525406015604523758401493155648090907384924027464568130760918737528028707222730760908949199113854350420866250939804101255026507244258095215477643129444501210599219379451371371809779898413234234409995497333160572986213145123299040564218848454920547155794352529854906595820214890240106533117348269217224950334307889229060882704578202823104551680820550884825597495567532650854277478708184092526436230351125732004072148841832159759907885836412921475954354469448595398573230362610289361290962873755592374838278001934688794015537920619241740690198914588972560959101060956124140442268275947459826969413477162768209160132507909047258725515765893102914980538687261233766568642331800445245956617456718048584493098199622594761956883162560973671870396701193704502875358639026377213450271568261068160673114266066235627364135627299504492987787999675453157226879330762606706732318683083466090123682436409592994965676140458214270384006719212680453924901860741794790485797134769401349971961062874253888105642696606975216587758817760120787473477971660314511455973413811752501090308511163886432747367778968078389576353007983250363489314137188709150628045102456818824402410451785591987812725358662800970640459090730833997504596183187853532060258738023368276391203374213607302910570486412035449759793508332281152183435331876360171879015525945709852337549188137193119465420107288396176078367449974361674762304863662226223528742519103557369539830948185996603268781732585441438928949870713208043323330704670506382458896367679071096833573481303470421941633432988310843158749418256438265621158898923396606131031187316658702559371745297283798760005138860794081231233684192282022013233491291365323246543918605143717365426236511113734470006855925693468024475028492872511600150035787647734256072123063938033711191981404513909130749298091073843118124135507507668847995678918038630668631834859499055126329264696821126780414767855771941087388611367770866289835733348091633675498640895877984413223407192705957402921107117480977634480260265699356158717156983392223794530150985057392420998005679405070318823444385462941603482506150282970432934400887912457014904713482182248772528307570603975896053704905758063255028427787664026832360103369007028340678815589191257508857368394126304983053356156495813219047306466053905551952315763100073685230591847616662683899150400962224587705727121748901485239121786082767287640221927243526316948423125949184470335056745484065894228070021987106368022850238227054079542317314349830015603911915838922026586634542646247836109201660949721863515980067613387873167490480663683151759965378819840584853264264861206935173791395351368309080607457447367008710933956477194097444294437640954313586543354591471708867910405740424927588054731854702726392587129318602630597118999903630994055726971652214724587650383916271515939607359779171887719299014835569985582059645261510662794512082847149081706853014816963450237832755013266651924715483681338326773286586882208099425104050055287072118567790548298675810873492027115483408339561750280515166402592347519492808328696663541745363482603050470829208326126973650704120998702754250048929510255878498077748028192705852401148373619560378245505964459795634315740013111417396342140116075557102426548884181362160232149997431289887420142980212572563283158420778910277891961836185784734792843769204071292992001840202901676171388416771452230375263814020773265995266318023589846826001652105120741471908187140178648745009987168091052348593003556455322624144289031732920918638418329403871661437854062528743301722039886262090743852686557132907079380254334554048348910214201640871238610556384490448819978337583492461536245576658249353555901712118181996837244309620643997568344054054512233104666033772370876792065490935104262176481037012715880579564470535882341325589750869953906141077672578837882738581567452184108165669714975674150079643428863839685063367075041643708501555800395681400725358765542199407834150751272489241683728739892898171168500945083609659493187907419858858359955948407532595707174581805945412529444692616839304762081027747755172468657265601998497871788376800110478976889701924392375431176808856800232054497388870601853882439484788565309877472708277843934338718049371036948484647323851633844071451704531232818382618731039201284173037730374357211460507358287345930809704170522443926117909752942477551022301265554014038683230654198184915082751645754294476708710303638236049413137604256665736455505727820012215648197723643663748705948733685912856270949780414921986433912085484834147273085348002787489463609926515800193314246043041540187787552659934004853262022247539835218491772670568843790919981705885370870592927376562468774187090018922403166465680962809719526039154826715785550170222445720135555039590109277886166583732462826204880685999832386399088753004551838605501484740894369491466711527504416778106914783192564924267580173936747209035944586328197683214123697458970503077344141967142182694725528814471864450346783660900413156645188675224421360666802152972654623124675558267506187942688181038070868190311838024875143592333919612020841144563965728916831537740984382517634924164537466455929328513783426557072038164118390279295083409956784484306960178224776332686641721999210515960831138645256970685831511586749702879996802702113369731713950706905930992697808274422478640719366349802219261894936452892091223214286769946524928713598063469751254754466724588646653980827116757524393965707364681425413931271071778763453577116303919629853962261133496800869749247522790914161872026794510571509446309425391721299844513328206100046023261865609856131163822096333154609711245666458192182506632240044964723195272609669586822591746856636307183644112347285967390861191113448275537552537033729843527928510067646829874492497511566461842358806170140298477335193825643011400798736705059060031153105959524467707777302853892276233425751674745509562460134442892891489972866441630480884727998288328243505570536931154438664829225203171060270858982828238139342954418958518799988282838453697424097186992198585770537410779034314648127422421554517143758757671415713357561085998425559000664796014675104176608301140797011829093770528512778410296457293089511511857823719719971121701404801637778100162676592520758408298054823246096020629068990859906603497989109080526695476266499362613631025103166611001445208364675848574839568823982539423534004627746045167537645558581824686867442044002471890607887645483817106668095342036900615737027046855383874778523265114681778456129707802325617746024248250246585334556475497557720288498088757662574174127315126600833653102248864070514130961300879356096288422278841490025904479402271834892210069464988430206889809014620148783244432774318525989499642249954843189363104858228462247789885696497957554298658956133334316786275612297785640526848554232400302988643601286600537370676619240066101658458677689625913117220307301849584621107360609029861474978966069321398875102294402248119270569068543088693303420665308279022903410065910657228757476052064679982761069302281343057937074014357286400659821660199281902985804650109225474460333730600552445154719604633282749589030512177416520965484151496111336731217418925968074547199898350771896467397392074127883475304439544355422173117937755948017985388299675642078368515054719829884212359749267011751556602643828862247576630635413624590738191878657919579569236428708463253931498980633865406926534829221660684975717609313947806293301955395739880864273134753714999061278608262783690932410954195215113516883011401268056889147754212251035562355544792058634224304737702251787951380014446192774727487000234344857962730530582236923823074580608643949193177663298003388251139316456327579178103866362250620624246327542714833083515292502466738616384901664121511374368922605816009453898585081944973394576645510527100517073210070121323727755921930545541989517079034181680283174034622014408267978640818782311700654602930152321813229769019550097969533041992057956363693834376689362828273779693296599803074298340936760358546735704761388653444117726247672757311386498023495133606186881388969500513723569542116794497092615848001751345033899353055160866598364622339836904423760626812821249401785970305391858742600217155747285036215500523913568667933135052566354864651669154900501647123253615792203004244314596038583623739005408137279502203901606675370441725188555564674101310239053406016455435231133114148620854599316144247709031645394238113836306438128947511631545340609286316150153243380423377021105581233788335761652623812771273956195793471667038847033280915342215423579990043895574388244726196537841207521026103569437455962194849813471158544082856108583714980282759055484363698044616547126546855997273303279670345472688687445908650199109686906146825269865088467722461467242559706479833832846449251748555903342400313842072695062535465848315329200253555102051032900271125531969356825364615407448549391127180481124065145193762832068432658983748020556208799834437780589234741748138871426033715012361088710347658263117862465901171295830200940911200701081662752010862719095787457722899980945134161411063384853532651554876624787296101187330966282682504424641483465056015833327179334001966385933548612617548081154812183743134164924936838473658823744962309934765137438767019397323359723415792794946049848909676317423334487626399310942404909567586671538140431985938795754718893514496186904581440597007240052608861441190846300665880945825692216212922063299459954131324083601804915787641569473841761060568721709107923704359470188746469882695712456871199280726268476909482257881915357627430748668675495634276508424105308080824059830437586046442631174538656863037761047999004723588460481818071525741921668307919543267907523288257060345385654811727039602456193325165260958272648728951989097614260946501040098670203081945551204985156556195180583017231223568738889695386424593213205576107599638051581709521584584860302010477132503996467142184878530663121573173409238368222314937886574881556711357680419341585228272265217069159475069314473415420584851592507895428062784408120406302246457467763293735448142490612332360338359216632770086148696814997931205828160319015079474342129611644027971603785334953413284655142639684328254860681238940137483117044799101785628296433684294611320119591694220320567922454852863016967479009686295527642388546716128676106649341092061098988659051511211774084946090678177888751883508196737349912133872843947762275734690647822356539565659709289602225146129018896519765452426656233358117828744735933899376953558889550751350509771944398786764507570790118297998500194968037271561924511779318377499334124770365526729430514893946349436544250412354199795669065170677459407686750925311678164048141155223143493067633874654744058829590902167295829526303892268683004392606998010362397997350056650687204243262705257265311740447514757792526721263727134724233456156826311027751968503853246808057177329431866687508717746390230523678384586906658089477446477063958432730825551302037803889283247461503785228830100749931451768197911810628343936152473936628004469881110066463735466464643992219014220236000270923594270242823490860710915585644067294057619044730797788013778420454399255030294475779677920981961860689934691008260940075479088470760326095332902704332456428024347193076490351415620871903200940052225863550086174704831226607713083460603521283093111299308186920484465038087533896490368924206800703566944573123101260199433489724839513034138774275169239370080448819583401930443277338421558631962063274203584161536129539067987087891364463128019271758373622339992472544001939291239682204231295545297637456243976483456706644041528314861373787235565728061471312318290121549976230421618919266114634894130337539924058716916257911018924016278001353621448388108904716399994607131655218458040307029883581395992441983044216279204882965760861486468270906348957584828822271653173587764748723826240659801273830478256860925860220580896943231061711050017973709557121052971496414044866275528231649266134884741413201434285578093784034751813402934833133370581471442740053855207369827585169368944475023119372070428014425594873400307529607218002822455016312601237374312051778034781305016244036354511205199881093972572091798884735093465816724060487769524417416549143608862630152252185647887416387456364569472882229007714041226878833086963786131833721417271725353480790578321061283000526139382882240775350790347392268608758170293579681999356789522466049284824722230890253571166815211172368002669870524846309334575170585753074021954121854217619037541612770934023077520814978927728344689062299036465951596126631809291741392834544350359827177974965951334585909200231910903738085675264916048318870355596240654075240121410312836295114918254596759431990643443166324026621652988671915510362596756625312314481630355231789189521252365240083036314596298621742656375798420542361269717183883093140488641679081706164190449233929034154706127097116647135630937931889996793284661638097155568572617703341846159279639985678856209860741076225867710585471404766989070959816031370348776948223821731115099846981922668051704618219663557200215373870700346293016033143159876143824764760184137102501804974044781694960437616609494622359502919825726774892100934710097978470597393194099137148111164229358106653793048918776846527224062938718731059709928803298527048523485582725992908466653165974136947754411042879336353749515146446305219788337053283785806873251084379981388847438552300671721715526892154070018209645959469563192458459857828054376676635501911315913005064984174467367178794396319051282264234984974756135502623114856374747808933375869742551765615364649760676690167216456067487328401614341487155837321685545019956611064294263393323993392767504751156288295939832373500265666445481288856859603374656363127808915441497361067791074405936093134350667578626660483684425746613940826710315931260528732950306620204696443959444268504978903102553916637970217139113534887374709311002488756147061591842830332585445963660892355845352433565415441780581123449053819513517869837805129126395388424413666029040868090084641427463212364109599009736398723590019537643631885928817483980886930644539857596071107084006200910177049479090550669652597809081060187055502921725307002850162396539162382907375008736665549286988494560533276755041608381310751464921402385328849980520496864875205391952788469173055523317156158114763715782923280313908807957411455365325323768952772271338724178223500059356922472821972415428330984482111399463117174307158419240617558921306467279619634121199461464918017386946655077404165869730779646190796235552604622823253577402564119970030070398430318635251500937738945925064829801958469666998521069724220482019788246567283682462516735774325187795520786236512773527188438775327537305787500336111100971708074321121507720155675647469733574366012527490012977622923220893228874882343202561623433892120559699469434055136460152879310439621327509943888973385353362180912742377354953805708444918367814505875489311761263002735282910243516656905144258535371298662271452693373079482948008278480418628513245861119919552633005515844505653874244218881717019609008517407016703249803064311326202501971289606852929241472971643833959358521931986353755741638657759022265014757726006944876726360462849589425668109287591637447101364277850355581335932702287284068023781303435932338463845128441100632516729768244855291360035095309822862192508810799435326814181182973513417307423818047342428560602695496197469665064985962649226826031241531198139509666111484039917052834862246471464959195907367258748045227502556651701376084276096260394015773852351736722549859459011469837198859538973367118308939893296438383057141908148023586434161228654453230693599501406616291236556222059640510815897833716176955392864791447219478434509439892807477408116035340894053995582957085860124292946316139080037862599794037543888668346866553672158305727341830522363336601968793434813557849969086248176796008654511310046512444425659683124366605411249312591031801985427317602978594075046374080702318033789087473860701272129126360112931628016227900119731178696474127060743871266597806907316456846786922956071700636562139133791714854921715697265279848661890879167076225545939795988980266779995040374833870975712637662156250315462223381050097404846082049131823469681669730404400598145304424608265806235353913201309426339159142681479861776987084903120325077395457079733854680399507988264001229115418750871735534489964127733846585316613359404179438181850497150093459644415932041575070139464910733888301084144665172463301073927682508870869599148891339661088018933803423899277060206652505477804543106507408116546791970166445685421779577774795280839431365511786708136466882255343588437155552990468428297143181123480108695569978832677398114282283485555376174280043578135547808752536675666605365497004971766884617396295347224729925716587466065753339881947225724960955755702986945422514584469554193184324789289128939157050330318262052890365074155653861516766879289609023355012386696110534274859573033728125107718209669604469502752702368176245052258396085429249968847046539640138326134502329404271784179081867790783049149615883005928117318910321503126140008927306589174815616867935531331601829150079711600676373417658465967075803579073826967508262525627365834743526426979853825232215074994755218249877097305181845811689181694318851368445593427005215742580725575465994587997791646928121441103497435649529815837622297568930526685818429926676112757769599673844859671605866895601007651265041619661231255646460470024471796294912299544076763859191308940483700498566170226478369652006276547675122888637498448300857874792484460819771016860035435033784331617390795699219597674077712188932506863594668782407511674121028871857644975567716610860815241591865310127639356720377673389403738122501038374648487262034120034579974200614517538823291683850668881157699809246090385264117241611327836478518348423541635748855803058635759548668598835537398745002213396999691503075662650010726242816196256849755589696232164186027940451991138909676197306759343797623321426100187107473953280568835358809907179575607315227596819516312046155233792368626459354506617688215114495319064685333004994288615420138226573511835542671451524211268016214456985604330796668710112010157705334864005370363442841734739117273893543718562233154107197168551870688801256543511199010114608487692061584976904152729397836672041269747035662524820477908561573921782601008085799631326557068315526097817426527513853944358874557025527291500344442510337428665380689977637425333862193494830940774054877836141532275256611876457320541799275796732251360600549437767188712965567528779677868846599602630168631804055416909818538142558667447006919592812878650371863268196554250296045416134290129883269949325504655276600521525424881228123779533726781786423250341306988630431381223673015406369107412066631816633770645654333351696896965527092161366931799635319099033497661094426106443580924156970926544114403969232903490468575264805810816516275765439308538959474899462343191064591620753633502766351346100851124812104479931892564617364651654737137141128179807752813404305676729753025189354785683826559584043795174486437704284062132525556744347341954796674259607787935703734244505565993802018099475982449249836520442532908464076839264917189540853008676885655520255534216357435298146727414105783259763701147500029017582513641194117815914894009365491599316188878792581358235077143022235016011250721901289600386257060493590338678785510049715870657277505193464417973792527920732717432048342065423108436082103716303566811289861764597602814426896200860346317253895953075849323015069766493338812751196988047527482695926515714715684425599814307055397278828602587444475565407194080988726146791511276477418381992453332344136040471415572881195806196795575003462545477552464449247274757091167916525516310955745097543728735380802791608387094665654805742557345069676792139773056465306217996435352455668066895901378817941237625989540740797335977889770510249981562976108116463155820323019050511536781813143520879691882903204783959081648331455452957509438564635474159481854317824461649139834146456510848395121099806706420667184044114869818575240343370478932963165006771621675699707847986050293397562472440095023442072892049582722368405516567405512818030183540805752620120670591214421366881764138149574388981275905030756035302583706724620533109408323756978609513752103853477194729792472829116959146911508368720045163395728147212104794547933013349811026994105941419854220407127001744126906541256192693149548660331620668968963794421523266006928956515491147682986886242894901357469723308848923982172756449204266961723799688509586207405193148517445059260853078311595102318213585555742080146155766714700137538716862847988116774817650377238982697669233945072619277904314870231645117950889963256439351800579506642312528968242814812355188017299840669427022870125322420243577341668027758895005472778554194316371022004750587189266607470506360726620311539080992466689884954774739641004770690151088361162557197179040781569897331691581676834352066412635324020638073138342817653345202028650203491262590898288746377620702253068285323616695995275074194468318692136538320148953737941744634831069132934239965543757874077282425554988603078548860722047906442199209730779026190304449943748388689590946418451846345143146418396279299107171929119728463831296078471605941821294609843628575735461249641986567116683420838469438680062179406389897963544060367213221686958633608425690065509892384242686489203306811752882757982650361711719514719175146307210143958655087377857846717629588372311624605539013804871775067505595828799365801730792874218625976127594704834725533003867078074805229735524489484057468874628039278388125699873877178024783253058392849138699425327816342096648453322617073105263143916758538374219464196459614035362249715347137534643914042794910484092521764507977143782522870236461579729132230681716168821119100705742505520391119103481937759695647969608709582941031060774363690557719355791395358793820500321638697071068259866532629321877034538749936729023831813834059737045223086364427246709641390927994221255907996881242793078698859600260489682091299300336606079021853202473049142180288015228440597802681011850989683163665374595817600766118882800603390256097192196136603548968549659479394219838782936973612122023896198617137404322364204792796137534388955086627269542087518515147336957371567632724113291505050939703633099429909491298288359827289133216664111539349042934757899382614979402000631527578910744772216506572923027662221495985348251653375791854567577139130676307862577325637121680184083483045759609680429067589496351181824875730623708864627776120469236996130418373600342747819797553971053694358848358312986237638196822862684782449018480755647747116000608831269236143071458693206981355065125007791230715925349207039269709621155027256874427907077037379264297881901805583600697395083331788412766655147517421725506733636240003211190449223539857703954233318250528235449087189349059991298954659646165363255022124377772069563154661561584459397299280922123577671308148821910607844922683077501209975260662776532690077244636420551113773457782463835033966703728779340295944380068163131237110094280428250057695608220306736560538506595272244989058605104517786145446871498092783398005433662145490423515484679705074134068141626854057315363573725001199600508142391736219943999237554744891298826065215614395722104381262204496760277335201400218182247123069143652467934817101628012157386704078009770504412594574210950109210712772488258311356811557140486354950508590204619900105603944566625063270200471111085860145211116356532262960662063437717099004036364304627735104402550462920732344502402681153219913732196846882787858594391003025390686467736920864476769362572540825383747655864809986041030885545908514778664644373418853092132438297857114910896530424959957068294656427673509555509240930085616464462503524522706764088512498079153224528631828422403193541790448367777239571601278648545731483063771308431298944226078264042808877238101334457087882417938567538068212438947360348462245273128454491553576883226607651035866275370213412220106744341429346308508096507259301655500634112651933615591509444059806505596945660956364175888115321969235899477808975873651372587194884554678300690122158227181871125567753630054132487919564510673859127620222280470553614390427329339830323160300260056061785499399736189633750309907319514843449457209294200559636360443905258298442962178168528676441210130440003165868143850534708558909970429644125108660753861028155126852721530808292930155316485686232481662028905597486446254046044990397335774975262220009354512467179431240855743636520769794469317488699750933042623943689489562679951424768565387823377308826122504915659364408215452565645617660435059687122277033524172121718704706200543934054553767819208160275133436531281782403114121937592157607057296183621972766655113070414866872109713157857372891002514186008064906492025014974334928514711641703240337728402836505676555167049545016042578538850110391068665674417712399621938775810769848998171642431077879719524145525580535282901816023451710277163026265745499132677692838381159603178023372423082696422317015732614901606810253880373873774377475495642384886794220593041977883225208271765182591433942244713371534862687810818617742398034608825757668961561423534756190691487322443219035070171515394050642365058258041915880314328328928637679704303390293243739011969874954853369170834178020772043560594739743250122592300851265864946643193920940484155738711074769918784501196897269699312463100556016902945423300278446111079466064293017317869507016683304089300360590767925633079508474065538829298849538754700665357060203712052285821731872847371240880740251854912231043384953608724201772282985043973812358542032784076590381367688316681559082572747791677857282853669716812209405098218770984318244663397245252869618266440656058941722191536909268806139939055077483782911919162651971071126142065099026931476325779643068894692165443341134450092892648915611703684774418864329947696313776080589928422299591242919245019512701179607886505040956625264769638222226662442211807375386288088357898022901347321458328518925575658062966855651272871803957413625963518548462549626161043052629842281385554742003483225627826571181870692436627870791238521135375295826509566132780925551169607605734667193688492625857860440472215421983352383549896507303109623083659683268429061698504934446126271684206583191180434400633762682026618779029916393221807475280528939059715388571314426226656140206411618471217643338674461044716090097328713229834171262488802825580530306658203858677003369305466440961998645007430846632830691462070851756548399938291274042938952724572030700292568279414307530972405303318878883345677977886570977540469793873230294835850304679844179983425391753539966073001571886519078402220797964052044218578781843671084998932736675297486451678924310125042386279489107429575000679348465892525955655226644214221123126532006131244876762479629858896525679317823316203330687038176792528811993561451315012098101461424382246032925705538198123055648169009319480365114414223031568972861135548654036516757012739678130276475591196951983986874175219397598468914047457544160598703283773118081436934848885838140512534035013488629053089686038606799309839444213388576299965442695672533950593190904087894404291200779322071788675875187558006303427458937274652905053589543957471822264831759780790739787327727664102788828342896384705088637249134452213142147528996125754755817299742083999749356985517890016765655334191509273208855241273138427372957338864163961930019097058424786753526915865276971032256041524307307023979619611216271070273172881425296156489031205210047461650024687935518964609855245275241932383210251058965523328805568353474990056532667894060216050568419174617840417181406092967931284801924103525824758558906694046172852249339611235249256776438158190166733050423173886795286309241701343347182747716696596064536059815068857072472320513107744067280817271676679938694825987699358247404899932333493290108586450185519009173774801805216383656495670172598321550267878333380450302097313429459266868500627208128984614345982980730640224277687271203103648974619876679296566168269367759034944981421068632454253725574762833588685633393082119915721233814322438970309018162713865941251459503225147679065497038791227102978441537628300125534645344472136354109221952758043534083360889300128328153013329174838966845938564365300281471689530656998263943415291322021501847306632575317895148887653274818162567049292846038387088100802733694320648833248724506171069871345399608093696998777247861273426136974819063087098658698335655450101125245686533566900484422055573624354901512958807345524134523762376474538030250441331388493389400382190245931984231077222838581095664706132990210140404725163916299143780392232338459961427294940864015814678440009108941145051921357381080198583768649527851359717522969270786146868830593293156455132572554396969374882950940184599590521345039916984132600842868626658700244181938667865318754199131453305671711480679838219307391890078644248410519016379949525691914887407073819945852536434871397673071821194136780807250933789800836960464789225763305331911426678506767711965182975851401332472841428671621889976299969873794951212422429038679623985647694881702216345940827014796951091094713685935351215493126784086202745692023081262901245289493261567053582895921858302719521481933240621258299063996769686914500155750151175666372257519351558928135490018277293428295541924788190741715637495944015767740826051040645790579754886879194675416926003072717474098659572761765688977762602010688976965734598746436619605905246117853429299689171937570182903434395317123708273746732585816811693097605670886733053248165300536489510082445745037096448375784477859074150392907900890187763633215753617932374205682784988083914968443216362815103622390767694582821980884421649493180731849564423571652590200183426246884117317820292315702841249253525042687227916157777553079236934380324179913012917330854402920463414606637664495020262363263682908338733604704104981243733484628437344047170467112522448763484124220646097076648712842420334496136149527669875375266077056675839911322469618998282744424413232190099016448158138018501504449268476009563858448400184430667474933821884059164139871745872360816280121134597925338378098105568433277846370377667327484771742065631926052702624582772428706993509656181995574709006966606114004378804219096501207394766394662594158159147929231769823937208284271049985888677898924781539302798026532220506505239587988995470130870312559527327650776958959000480869720160775462199094807637086820457783799323815957935630407232621427034040128067563956127992224008300730322625652376118255139048644613205331404874679049317065015318018912188908211514818575443241988005740657438574302039207215238180084051970073770395793730529018977713692768686421420158417223358565070683063443385328940092885440581948161697498261831454791309158308741049272936995508514179935318458070595304957823825447514968526742839145378725043809321401436463854062548817869440002068131212463971574938022051897813716243003805304567420278501503413553165516806303973910839490259155023721845320858271897575594666323505322232519836373544336041037057011230262886235520734690340185293967462541058527662509536050819386357140195160573863548642443074926339468708012471573519611251660762055143657895737090337166688975358837973322608511677219570095785692330759536837492503366311423007614938581661060689210450324426173129127966426434724113046606696095733134145505305789481484092108377871107999152127725975031953245978884357942657288902775831099492896564515142536681363140003164712151589041127957418859750096541478283958150748810221817641860444116886273196906477170742004971350045929590046848583087966605569949015551639446652036509277426853721041239578072026643792459010342967835469550607647400715958489337119747867104462544981184261861332246457146024857201238748221337070489778469403896531062021764769288053399872494866089066896661822178227686462048980335042341886587839370561647284438236945978852177564717988579058206940512996164780040932676253016901255206151129186565302116982671858818299657469533357275188245155910118402450229273956225719381466134172583994974936138918698605707458439499704360170497996424787223742205653462833762463635886321777045182972374498782590431240979788369907657116714204098191576998100907845405742574218303929560310948404576764410793715646341296144144121334008959395994279095495610179760313524141280577236370364962665049017561711958925180341454314134127308705119080596663300680275809249834828201862502990258025669929073985915661784930677379254527712650820603812055479154935648064448907203185414969292949763415025902914646254281427241053368812463127959993468307017911428272840608494481736805437719981539205105264433965605851805586839699775943197655442703148229116157985654612546192518467625107364510093684415214251640541017105345783118483210132355807558229019769254195858402474906625142578139865827964158371753129095241978724672298421062139214170531193793237699534494669941152016050668963587655963924726372406503560948712189964165836751381899122562139721559799274911145771459416599892373542127884852820761822950449432391149377188400303566524626651992426602530917761083318220145025169631654279036978701214339650250431067386215080519385718239659673275691487376721047423913094596505882819418993643873140384616081998877027281552471690887227227536498818641974184209618884406800369018867805402241042213888198718321699339870414563486699158997037326734128683216400511381174887587001948098897703386464135225317379763826950355000867767914000028126401730539057730307651193585430106617125439260641261151928691742046096857204423108482535696184581036525905239682826231796626621486794919523791495521748596268476804052176099511433514113079039257792667101772042341982034327194089372612905235450124920175957749604019136070985101225314362828410581253686051075675679143853200365784093229701192121087942273566803570516372121556126904379999216847964399833233116434092544578272224652183316036804012572684681201674662096897171986368390925170215063776652999176694875291056068449046216904935905935557077972421659050309323737062377543570455340884073038136007501864674284666381076097075138780880951768030602235987081993687843477322015437203482454293235039264580461649528168416845226444475574920209261421706117560650552049066497275101395063212483951887111679214083925783892716695843527640106662310911196951755028155334593611263096718405250652663652528619347160269166782707913934489148382563645941580541019741135401892581725723113173781645809177251793588930502133697997652131373812672759331464867608305026971753054648328846854492451806964214480372158208251651334262933951688258204347819283761750090642758521604798929217650404885919520820535076866913928428681188447239827022375915026958672414344833969437773248332913258722874328803997805343171481894531779490400500869846822364137684297767569978743750063791908195827104604772922815226701645146388078499075816034155550669524109613778665376062436914045920621251489281914665512475038688361245153711172798073175529614780151312342773189154987463752148615062487969045932106488139571565876112682855359194073852402174131553624377795520594832446080753707340115885281219833589953264502303789965710431122936842636651559306476970408447328637980656119577176132754298728112783404156810116950894371073611722617655772179012408029966887680141835601416018729897183460553151404275223385742977362876589519044351890226590857739689687922926933123329816863462636548801115537073757574621882662107936716711477130251417778038479850823991952068184332246388918529177560047511662333863486987520952090990975149944652944860779402541131692450187554046380314896259373249880517342775346688099809987011719110099651581141980395086997171861772539642322492106428022595883680193935714412218289148269869917408765420329359512538448415709380695661547098620656661935043212923932018650477215401131209828158234457580888901217087122618560825211789122784409114927908430192708715766191412740311259734774054930054408224992843319675288833793487079013803467647207926794426203719639926243283021483882126372908849641944104505932479675199168894764843717384047516752403751922832158893867438643398216452188194313832217352565277776678059903263550824557935505511585792255497866702579094255140498386562407023041390999587043935525295599164307393557597291298485068129627497561253319746016469885424191500814296932982010185544736643640223408438216371211423904794835417028415206214673919170803667572199733793329810804823470827305141636792250738133075945127861628187713849135580533300552959313111631599821389160791844996577239552020739830288881453601737500661373319758271286891887326816764704719355319645063753840353337321062040097717260111298721509018230944852259373877458547821549162408064332433333368958030059504997568414388927518887900587198259261945641105067365222928285605640826406585314495898977206467579059003940356216782741204191298539140725044352636584287095368455439201855844313799382006649351694909038042666426846577428929046582794533307414580496275009775906264399802434384921155432718803918752200806216041296531583636315209003393638938645332024219279108050886035111716817978549784656660816278621156156980875911700557575507301638259305954750399209225359165606963420177114362568269634212236406688605306906125840287294307071991679028653781239879752193622234413835732225694920333282359950722416602292426256256267032091813505671448125580686115240560649984505275408983703478978169932502810055034514479649618653359930945637510467072034154486110512153090192830592949719861979785373407596461283080546524223721185797322950802295372222254225362117243780501302748891268180230796336716122058424284626417335251336866402951204287802503949822277522640479049902385617750262703372995325536742073715666015519531061851123875992832400646054110019655584073822955461282974631102811338497097824388876143422223290939992160872914525020493702041775417972286019457118849331518421075780495612398493169966332936207991833916127804845267490203268693340906566079740089054234594231688108209819302051891631858465440878392013828213107889363692899518358341485071630227412945652682769913926601743892695051670879276567538272472336667801489086127570574870608151609655890750536231604648425879762506533919085704382992984465530581927186183897625364065316805052094322609840134668897371597746094769072571685333372322822726519800507580528134464519976755607793432194987589252834348781765545391239730492869652124671643300500260597425379682711799412184331842001064042015768986619174422038204153406521834189309467735680438218110375269173792983049339598554686752083853165011554545768206105009751854497822827205644155805438521855408074326412412822034506162844205899071852482280750322172488382563390643848585975108168837245958579077323124545142992818755001633565476787110411919734464955254626591639788324296281450714946037037584297888291270595716698940694169372103163111934186593482481899062634191544531957508236671305425201550682354901370205808487752941484259574098329044375972138106920202504562137812143752695189172860288920398987368889171848644621660837158902218688040715236150951582655395314755691245921327661354533844715530533826665370798913316548169864269062628724592505480210377028481480399491894292714855283374331021758325643431267196080815268006305673492190005039972530566815384969871455617047906644619273831874853801722812855267889009369142428836628585426671967945954477104533015610845738110492786481773389588538707332234473413912763692211668321628412442829501512646915777754620877919725624903895804367031026665221044399963921703699412547739545047655482143456921654983045200908473191917401800479689508408544980986683715908542785802829317102102517172442611066157976914848341165869607628851877071045071984893025696769311104499170978290484763489809575023477490305110804750311509733790809935094793318544198607113800107023182446634140896306334114935509523126850483918263190738938857029526498055121860478539193420473683255386130294274380783638987601924515198613022951053617644317973404517105635264526311882948315295088654587311586671649490779388721821407781394456625920979726721652863867927128935102832071637875389380976521897947122613896341878702075868034359639343426156173728837788615854168417701934750339091786518079864932809665878423485556681744041173097746075747549282618377639677697460490400950401447007323804643161289356798926795878981299292985013488771197967917626658839004551405925826155726879764500839044483984852157407427890285409049758084905563507027769534006801922454993107985493764607538678961372025263135053130868897400897936947108672422805355665135434873384360935119476427463504699282967657268628885930967339047607161685680281273255361004702431005811981439611217862957175186984937598637481647330009953407880226818650929185111992267766489451972664686966773096755517230901733798967049383737828250412681581852732376141779746507676430000129792911788585160341430199979253748598607211783045620251762507681680325690181997512704055895363922331120805365014721037700968099554270976843936736337787243481772230897244740424689517246540909741349443632947879768973845077791835693779077717723259911499625060267840679369024949484648926171895465501683201812881392323485975828743101183309774151651801028940230595224124938500821608778139862299807793503817778102755125542413323409878276695221774406065793047592350517109195226413226343503833921740362626072333395368678909785365221503274928415304594351602124449421768096833628522786513271400353320999550045759621431099523108651519002459722502649609776925102311897102606854979368575511721376525964731998552033238169941265298167854514009259038973984151811869877464935726942594801227971705551565292982119709691941674969896185763780387124854160374004273754331882257292290909091866357592630565458994136400341585661101069793184965608847462985242231505903900019980377496939940724582803186041324275711214739939352062430745948972568854410066472635752479553842631481113585102698257490099734573963405102947333734473249411433355940751721714152998982842034391056309289094402696058926213799513622987897534552435787642895210478706637429205528230874338532477902217078555621554383173854166118280237444381403530478805453383941176290988135842188129556374141630767224132909775414087012866227388900620860018739878576668672804406554867130886458641884243649017155599058140838782604065644510371694120048247588414847035701509865242536885897184823262383824480219237553477487647185071113979993909223561559946911270055703157167524403190163971397804437577637470000051716331701453725469908973750521898611536120208127050193715947922062522123476336055840315726695434036715626001468169930919202844397139439426308144330690333772707208697200613979488311054619320628433512904624094590018342512616947677863281311059561909621188347671459433102344176226359373299000609655214991275811456056390111174225780506595876537228950620977127957413410132049940071539306056306050249683995535499198100541267310533160490396259887173790971161750372450387513869235994348624742578222372228173076232786986743606210172109989297759851049446835514266770704096675373119387539707908451929334553385267980499286541985481323562718735423288780299881757492933025880852354556934884073986888199603049324352699528917856394551141590768338597124178841324880443069223444829890256381562429422171072354626154613774141601276097351970677310074297068999944599607203504263237603460990203583020350940680841997369666985763237756165828539466781492497095881115596328851601359057960089263473287767276373166401035472906253603124342889178915882699185935313085473643796368832727217287766383444752076076481169121644454915106208367271850938096039606849137562925814507296872253280230757484735073553953469152803019316749418191310610784332231919887047353276145821524764063598801486267107410884459413805796601401865466472133044502623661433772719369744542297313480637747196580072274971859257143133698352515482238587594648848054641629766217653531740797011627308600922734578814360306462506971656004581269711959980769874975114052127387707403263044989879435945890957622217669057420700493768044994254701395595536038235503752974692300059385035217740774269218966013527633433108015845806634314375151972657472738282498379024243111948673349586477158326874225677698091471818837071749573484044570046949591557302730495754740773181215190270601677680729691705909404130713612740701292135246965083404262828268006976840972670547652707640801483338651636868198076890004345603849239489913428586766443324795623032300051142655572525113710661301622844113980677118927716239829821976044009730831696644893949854886285423411433910808313884703146073196306301915729036717539873544902256082198653978842345261799456728362936815000531529009940764793629742214069459317511586893486861751649068826134825453441342184667758785307054233068502423173723109180509133298997542358901870861538631722698454117539518611613808485314002105076672984895713133035921146587240553095960256235642976887747537231786427695921843504775058446740511265035100323865970916529571859163917315751446480700210600324632053661457662498250645213154350675512942731851377699468674523061351683324802846593596063810131922116810154105373274768950833315680663056379066243767337835086697547994410776756112470537227909390730477944941152597310771553238534868756762180281967737976108160819464815053434825112107917082674283241722734003683690450330546604073193669590426261632277058974706707227677603172196152138593754033637515791314417113015929833009047473853505447070205029672250923694554462558759565282644954856194168597434888722472845127461552162964374648181347087205042741955412218782439080459782533296119264783160572315643809242373657623466957743276158607001378102985032018277214969776240597830416914163080881668836512591718689051049851396585102516784242420967395301946365690519594382551156593038495015201964291535330459930286734249355674422403740839209289122680056765235834169666998058061878641780466327445730193156171643554499681076921423714160565784504576797578038735501273993218356494716739394572601655003853591161147170915419572816805818210360811781433991940286502020813123367637447182309347099003973168992747787807158861507880007542588522824732880766550230212865437589947848581564063597818144448582989933820095224195243945717230866676755846604794840304274878213504479711287813444316480718014174965483127678872088274556336815281634477886590718852670628721677760759533586487669990224524920552119611264824518616348516882225441307203970294426811499917518934609765125372439181571485899521261706952638141785215987906703030342601250928878823528734125013490493077158555556221363832291397676515761953498524104141542297896298874024824091384076621128770571466834508002059791723707828403914850009801966012325363060521020153973355401923683710025984271366759615098669208741576370322290770332024524040393064488507296134177480449474495085301271520807500961583676587109284087893724248808787063704064368509364300773293511441507736382317250502638021562465079893426171394048039834613201482778536017907617025695913780359913188651906126524986088523476942200170901990954295844382895244418749223346392287195838781175851896137839536505707991791146170956751319644793008511990085055869041213589499221845335216343343800489522122482683844550117670316010546254811639561896282054309585256783209791514323358569846899670540851480721969024690344058362129077676476541035605600015922952027140346456650069682506645318203264881292080318168943408930930612265449077326651934085478188002317227378150765998513939937237593008971416880953189365837751180910182755024869987464627665072227363743517242610844314916615383243559113255966057804774514722867605126366902425532694001456060684411701145699778411089101179882267550660992554166863676549112460506763640563514815445818847433468940162901848935752220863367845079728520768221017796273670827148568886939080475044041167290841846155828244235727531611273475678566005872714501532461239585147540343709402262155219444075054284361909891695141023516403601427822713852682699579644885629109350841019525256664112435789683530345089297575098178905240221023802529992848519482069698849678707106176211238180588267513083453514628034408984194370631772965122280066298076365040139993598453287705468700675718007732663445367621916090614975784106341988060210028223485673735702943984650280234689657736068293590804810195655837599834375472093853211255937253170822617134368165610760161384986755519943052788749484809258767578541172724397208081370178386629423275670140355643784908272298016998872215184158434015318730846328247223245161017688793694373192003756207240121815143153811621034630686719783462640815781192984946898266380371012353631872362681900190484384846927185151645558377724893424991034069478838463446839610139575534533481326792320078759882317455978923180055968050624818061063863899439778198283016169994164193644971271676296843789132714465257255291904729624439028019293393627144094429871358402971459446200459035719778220147464302646012817836689632853333169304836463399281450775526227568284617475761020406251126601268855945790377143642436112981806399514026629524521434279598835364157683995035203925027686220603116496861399326607374692257256002893803046718130284846149020705096039254256119187220918154837317484839575244210956505713106008953843252992026461736805046471654518248833205674267615843988647286024170369065439807780114737719261772409792768611428210915983175467115273559072256551788683692822441574083137280876268065212188893716645342914659831206463853641610698979964322176553007585830234620910746736520070875006462356790035299776373576545918456711526408155760013546726666651897608364302176396031096240746339906161208664044513344689420620696254931105997195809846574785055723521242803942129519485258255086261438527736006507678588264381670775117146183077940857715930894220543008608047154961888490510437137415620870408136985314391568254058112107764405187800231659269183701053814474295645548521007725877387024379852675338112652531319389744400749805574159924814775371622666592341051565536162242269363176240539247750017508642176409979956537159310013289054214728416940828645370159909462801051496650050445973464585626538102944708361039616526633915849381890497764138393341172904288830276477472034272506530088948778541335993875624109183197360200599742163720074111120908436198093509627757740521933421360769698183812949941435960717026592452534789797210696854535247483585144311418340744145282830209324014967056077348807193278142867524921324355056779408449906539809342930462456953702087234745025364348075870048071704130964115811523456509090438132348112904506130706192666802288857782436870350085688574737808512271115612552550548534276576914960426652175143486844835708107106996237043174095713934897429147243293499396992222506526434731867250167082264244175394816769579810543993930998318077877961816184288400094893963225812906421384081865232628253986143690570243144749439753510918542220877384158464939390208360053574124910003876299926719972595647222576974816488872888152849720171882882589318815891355317093766401873847055028259847818012355147561553347841632742600572007371310651035200432835486127046166286460234781743463621254490871148422703629036497507841687777325614619357919180116193878131268654193221942782620666723585752789234010496651633198375816040657576968570994044202530857741807060871435514281177493879604112792780779113148166185114364375919499154691374169841548828325413209390518044831053126530828813789441955121886449958279362394869105915630329301145322977430117399523511090639223404785489779426225660862288170973508825828518693265132212244174180537710426864593838266755771189775877493046801051930250870318421441894537540804125635305681508497119527897762336271160253325082266699411484144198972334075475412427997418561604353199707359487238403154734875363102086441469309531061809346686459316352559809833627145900061614285943232159208622129998934008351839888532654586090883663774221463908042264755754556932526216324228784111723670608756469109511654428078451623543675277922704875457474096232402399175694627049815208366749180634963932725978857329765545234707089375198366954486825356025017091152464499338147940439031826431771816839808907615775405297441362907818914735303669184541884775765202035243957493307475818157033644256498946759280234260029512882254349789487152514011398897625021940072245940744129753883504703570198074116243820283027831723725656629466813704617646048994465090592487312378930831416716521268536043464220636457655413240596019268013112725744724421269531254857525360256788814089366445985719576276056491090507178110233816342670865806683753128256415854371763243847317222455415432922560063925048166077602721061795416653797198416993222734865814224675215028367892878379241260248681131086354272035732740045735277602204539037044217933348038240667172779285143062322853109055102761030311387297262042831075197994964892144480830986100061217859298498283725217091965564129832962833113330964194234387204105455769640863318336967196949313853344301730703990365625346697281883553078044430890315592422856736542084417098045437601930256411556775037646601380023810067323246619056498387508039861470191852077426714339653581949884847273539891006366951671261882532954095696257973409424094364650064994168151492615828357485493885356044443591889341521432787578976444923860002847979665084557651300223679718603825880611664391226707295056603506625367789459657140579476889085738236869348621081156070976956532837152973440061816278423103445972209221138616035811944338471503320658801451067441257402500837219700128579398849254931047360197104097773075698254696834152554276113314742866441223147746653674267714041457134679560548958744596713189853634388053021265261001433197285215890966303573431155089622160456584729625122883651741103125521781916165423249109541054575386520774229783113094074667969922875139539866022687283950531250279969802897447328054233947058353866752344768835450945641073617389037043181546222373793683360901339753671794415056813805813098501412393695244228448445023334051453685360948102900408603446555718725008174426484251119778720519988034382858194975049556139480190112556197353907953477011629447012495044852458755354058686479533012711297348986651679555605655218777891781601372627510163772206835788731949948834792338790007174044622272443925212788654158049730915465227565039713099009354316737062678020834028422373649076195483411492709183657233405609645539475386827240809481760163152269660643534900414745608343576296785567272706079375406372816586402706386952412791836887778496103218768835994379291774016183218984673629958509122825677805131782012310104248636929109392109089414281078511026831535859027267148334213317242444167806556512358093039798118791445408048436055327061420448842062448069254769269190948350877933898001291400106300672381455584806290762284344554222487091689393399579457353914561031201503324464664535861346603657095110263172471244623443416474592768640850531118050143156286094397797155416788121022375708260830044731424538869644780663583278154788464500861018083049187594319998485400864554082987100638720568779633205351707020034897025878925205448046583128714617719220502045636896307839715703124930956472424530410505926514895419233649620001974009654146458081395822926445719862418634332966683261541928154452120718604724242596620649151140677293071176539017443981308709063421232523694584184513706119237630549833646357647767387990775545810221705183929176056996370924359544868439293010418664513487961718020858523895297009677657168384375701778498782363018437426461526974254089517078407200415696100562392415116659779988317705505318042269942520102860010162010793758857278164014753281225169320515843655551750958619902396857077576196848292851791933427115818657873413933585990244800429946677316340179700910392861727548062977957852564817927862748704413493648450605591057101220392296647047757084937448502580693410233164151737259344954304178730864736336078104767734301960137863597420278811630483724650706161278267643807875947322775266922481573808781471756488107288881162555652220731939247484610193914102717317123666444601981573897226875372810766020220390319324694978269790061696421242165094152719674127634038811263860867464378695303475480723121982983667115053525865708397237643324885140634074960399197075862840988322136538820253888822671418043673876028244288339388535223856278935613731805122237283054894837010154736779458511485426951398946130699524896667783720053691012692676146060640216653051822567669824630485099546981115587932229991306862858975387379115581172022452966719348493855894419953066121829585134912187195061041661731690843149693912753356215924912895473800005378264370482158155658453005670243397854884803048816066292828225178545963611088245341851345025382328807896502896633848790788733154909129623899092856063343897365400922413310994751117325581882199397350864455073609932406721424988192520264063916373497759546807533651514790634040498748425802431926636248798381323192743283260806827984596492275276565045238335439490323940987078317784780531978200176971206949851798622329708842129174151200576809625532320482490531231032387780696214504497509980000305926717797994911682709916891955375750681805571910908828126720773420323433210772858328006845006290739975793022233128095340276860713720558978064144972786312158522208009262028393392573383558271285908964937338025632376087726112284590068552554468092337427262716844792150041825015057108435227042487273962451405474459455621561401899063339654379590012872283695549690093610112290523203653803731335384072846492541424232722648280473707407588474481189036530786696969767666814441695451405066615931909537950639636752906733444212228622975811158632980234306594862579937990256185202039246744198572343363176377927389193236882775720251872078642940367369672498758523882421782868163723080012582698349174733371993501257169117255721863779963611443026255543365159878253329713013243573836051278372593385725318586688717498095785324861205483549877291956705403938805845130261562845853339366780286155600606190968618196210450076488822201059893892961742659600654574340162376794986936388021577800289602449767047500073415727442046758739330836973225400548451976623789453934707967415378287185958865432414396011224505045980927598141936786628777939084669984106010544770629888490079535620086001414667193820916309999690714171432742481112304435313834475525187764577682458384773129278131225769861980656820836951934160416509158227757572448994657836074745940601380779664628437872667550700316651907591876789588731222657320431961007282163266871034348521576144262707056734532682295595964190506248719866437804804266759766585483461981296407287011695815474870306512057833644758921424672894524775428243464674469157074378894106854393947289429088879445929736816811989097299673213259030902381857869888765531665466765404153458992189651685290036508157886937999673620175691944113541060987467007022118680091004330115683191697233501955477302594884531827047706236174782342557669455370689636278631313426387327924997287711103803201519366909000303803598046099209746418367867669703576613039858785552446390813564296895911611205053047489559999136471297363858225436265376000292641021891038078523515557856080726013486271230771870092170410669106511183227253362797178379235832898249315234744136045213224115477498802624459570073309668483646299204024023352588841698305138706473143981409948688187590974059798812048146921037932671844727646842372597153683800988555847174536277946230303929182991053912548183145224664606787723096062490894970759404700141124996575964495023482624228393283111238407514185563456589365634876065086604905333677196028134870401164075255347876347323928763217946287788198366637389951450126152953767060234347180134283537348374533836175834629172163420380563001532240928326957045014147687220716224750496447033613888414740581201989532864155954517062864374319495762500453234612349258762825750738846792838404722109365656710987172534858765424169764209137668707933219035404957614057601592246287250839596958147963712122476745292859899952580999073236703203324782371338352451605224903810518732874265146555801796051316791293556572390080293532677548206991051925640063399880553107287288947139095528955029711618584085309152318732196396050406985687668521847913098048804605565780714249248149140410455881986982367108821664806873993056793499034865935656587588586170357706499288214808274706362850470431424869159914989839345856142771005454696978764479540818969850818264734090061025828182185184569482793514132590381283635664409262892025577399685499608420499069129660644243801189956046007765554236706028020321722241935577616696060466254610278177158263057614112721157604527868584504257539206781291729416667770689480293964978810014194860378843314296859371627957554447728431053230007053687404757970905084983743228627223032310068247742572068293625048052120415291780063058411396733960895360230326579478115250451063412823588776656313135820821291124350601847882982403440715209535827299858873421792663754986515062777009236063191882445578886273426273262582837288884251788788389624182144808946185491653390950254296167923796428216347718153101323568222747694540638686838832204660123631932175244308544902178464245641806315859772062412459894003566171902984950164184245088970807609638469830583268874750783150831639374522077723178869478969973839010933008561521137046415491174138114489117052430790425208210715169422331297394547799453920363069143649979210036423563686882936222828841854867615297917305717087587566127798185165990411445778535353145859982968451885712773887202448817258236680666742382747010094904014592131157431324862322335631734879044966212204887189898419111305423000446432537525113381129219544655841747916357111673850917322700987569218857719491656060680412726169498780920904009641428615403727325975845289973628391922471050912141821889088325522765844471769959796832009510245644588421055311989306147273890575916970737743244055292155172106245386490265459158073024245825811788484111441264510076766079223327338996864126433188164438165618266120375318667474137272132867347571066887653416285782048180959064320240492656394285370205684047442819976402050868464382173831699655905146178006850364254718209810062346083258030983678729368196528419245081648081996572264290877116650079903660148894221865271918594100409285181161640180315121896062251525953601176350343068691217331327983377320670669442788652005800110603376388738528190726214071289496715213503308918338890345088706808153085521199850322512608054878251075791634200530398556261678753339869375674378078067002723508248933503169289121903219314429381862822543665468971335861386102308677541157489103476982766870176486336414713475186449521694005492307860150482749088290031821702182545914331243715920969667103515201204220395153962722318402103224737868709805773156732728265894689499900847952178998779725098713660891261923509725874273188013028132343573121755405984378361134919814366774057477082220361836020944252433892787729595719750341760358641036315952119717457324284546353055465728156855478961097381005812106770055142414607197266805105773152139729603012586990776326133633336295642546012549043407297213299111245648555434569470722810423879109038255481364429124351603196242223226641896570856282500808640973680074490570860676920212177266032285758568824572356207685994711304374098651765092977537001409375212153826596107774175078414565868823391749534222471527119069489079330198172614399527274936881649333066214573249012607657478382155249525353581749219239901967727171398324703488681244861519111713377272935769788792139908251621664373538719178555337184626850361500461699993455305801127813347989276433474583651121049224692730263554141727099014512161775633487120174342099057099724656312985306507576112912743780627674612346167023566272486125277555479505940203237819399398558066561208027680960450509843665370197662456206750570312897374746609379149221279373520153282711079415165330333019444482329414341546209510649059208456658806423047673269975668682535101276377201981192579106294648875266001729872357304032411076982240767980288935517461680664741387775597991652116343533274931794213503197436133770604480202040921717679538071628207181296525631292425406814851318129162661230212029112099549797885989508792109926683828992007659541509526119332640800656324297022744929732331823260780944274783241672249419048797403596565443336260623390924874855857389402956095709413913787912031586149394468289556497254541420375350704850346552264509033433070574124559569079436288429400955205197549928027300597510712325096430774499150594956850938928295511838052048059537410397526499808431429253861538410677526011427669804626138489489351568774599747879881046062666258506479957889058505709147051424628162853974046907993564479388681338924077187942612395228155016065445898553782852251486020102990547793791669191668786821328410220165655451373645241842802967087449160917779952987918420905058829222271518550869108469455412013706883780418794489218728740335262842112716374785781659733441182527349506799037701892584664403894209652295065441322130516712860248957595260971151180560500144678571982839718733921582137502346516850181787600587723071338721622046911675764560290649386139465888119685516910451581829344733440721219755854171211832089956728880070643819689177188842967879179559758973149436638746609728729024473947933696451474575052785773247035287532436654564353558173980599695501149771435742124924037080422051648384662319954603102947030476319140877109614019616520647094059839622232640414686021521328056606039854340496789680611276615900655204132586161758075145319997006411284157410049370114315116525746405322149550250642942483172621748612123378561894329178842152198347755470616513375015794228486982387424231271803258232252994959414294204456828650676200496887437666034504000763101496049868136770115088273188788595979413100769674814232464917237517885640849977658613394659688351028203977515347958180615644083044503617616213974471413261022334301155257797580889559759894669549017178846647035515992871160343692176548490684468399341173002671654132792250571271112494505526320142607630464740802935069259784201009496913731149471381848288821556466442681806037082695543978414498779195751154810020458596431819569805898347215456407230279728449733024165345387933793976091262591153328116655196516129607722326891762382024330078431588848581868236294473846612170508087628124819169180814866839763132344168783513071611576287889763886285477147555377180854090273839078987679878147606582329762355196874423643555646408539145612390743410239484397057609159306757102149931638515091776744127756486028683652225456794782311622618263419506223540631187649607478209525560219003169182804109774730152663254965884582595636073899195697882740883433365239023374507006925756155703368791417350559260927007724618497102617067361754826032224588657451264632140264198908182607558845064007728031278868050447570527522960606201704743676028690637211092578866851412019370209742324315287672963967179056608193243005212897241925348112755327299791453171404765429607718155475600923081926715140892240514555472493249815194345053588607266001767030157478176365397677570645284734945679948489094113765671069610990219649549139029065716870597181893749618817573140147620144243223737679391901830019538879356436699702539622125265928217785350991879417946148329592409764778459288672528481016713393280927091100548467205208648687235976567253961846251173336652728848733371032919390080738920266008178656417337494184560528511780844321297327350679847520096155195614460041011956857157251208513362016647277245985947828879229464795834242253554131716170242607176675771754060701533186403430796750759197155291278595453355638895713220775603127852322018531914528397862940134474761405829631772426069038461261551704519863980664780917344406745995646796756614475065327938835308314359337795502302717977019890927236264529759489888610167348766919898939846357315600014238979719695555925371708799962576395387876845664409746756742056997491398151780126805202423914709208829976897809033009035453381599958632510362292987363144105077889034785282381538457310627049379249020712922255200409417556743446795152153803898486879345964642479746954966963449509652764752092308436292232650589685336531459134272512129590941533716133459669236119313897480043251850468422975669541868699437343226402446979638484593731118853395597049334833071364606975978246666378686967461076032429277486847882608601341743976668086260389805355329043783329927463184175693954890110515402999565368516803968571467968423885784595794787202092149748056575808371988415002937176515771107097324898153998222563229052654117651912444592303679960655628539166301959732064819378625387228151312886762450087166832715126007915905198327205166376090531817378365618433616362439809946882296527085620630715882609276077190227879005876835572168024832006869911767998078550581960913016053922510046394619088281535537386531828802955775594776381933691034062594279186202734096465140198719148932479383170419113256716746587432476706578662328233664330335466678338013033482192687915927984616144664405267296607079221333019566296610582349657755489192039592199282818327475632546372503934190813224089150774118107273031223755385749629940612441061256281334183837922304136231082918403651731861131359801974008614033336573052914777095964182216021299104333670179698580996273992669849632728861905437590708010513344003624540920397194005106027554768678675152828019493869746134806228727953967644830947628285930078493922333717887404810519914896103366841839682473325600593646659040922038001305460151638550993205544077170974864584306006420963178174872904084670977778833660130709440455155051651740656543396147118050939158204954909051882396922904471777316829464573973948806474588857087960945616723495734015583213629131616955671619752928034049727883651707457516491709780417406742182652836625165779522304412105322311176301065461255153677770906451208535854922982434042771409512452013767233825838580658870264418391766273950565506645108495657817655127849480095964514929612853147948021644690093048570067479433110208765204525866740002145584750496627901832580422293340680896580997933357709412824101872285264675212424951731872581431921173393647722956905955664941019497776242768443141332287334725975626135702074321742839981714999483239611626828066760628088993486872131199731200600843720325271615280598707643168803198032814521050557031575885214379898283071367022390170442517737334432508738690148052585862216739192939503178187123411686476168416736634539880683983233110809738341385735109764086628127861127413805166705398228199923249271366466408414980277518451439134658539536298504428997475389820689560116650253108511481133908827897991063513465121260074683113572253774425302297277542233302948803981475906653436694557806043103149964328341554991296265520039559921264277643868200562692061334677695449804068533108132884876936525428978449596050681572765803949236194570041701768749670571932468775558883733334703833696694239772172777577964663060475380602261349711313953026624437416278191054500540144471115067120348904742222821861298588429741260946367314846430624546456737328714929877316919059526901497176289325144744808268998714551320398143714700821023271669367124017425500707554292890611845910333978762385964717659642725790290768174440506493085550119909314869312545672207771648845714851608641625001539429824126628389263541103257090598212486581642973475948843398253602418658632267615691268059972190327657701878642084519443321168682326527502617566948521807422090416753554156511819225358211162618597151942857128435455046093712381535763628766604096332903840305973703860617344196971791639407508099030833272494900037598740496913739739237644879328764196948407241662344297276039041838173960927013625301234630170238269176197780381629227909396259340104793918557462409555021707963494684740230681939946428986212948279449716372408957459424916434297603194463413270258290516874873707750105707747366869490421985960931384100574289250631930826322889267759413191114471392628878831231897250763435822306061706906871558231877909287535758053590848250029149008795890274128518801640985992188232987733272521843706860330701344608436865122535938794650009059604101032733281752005797573812571020414271941638181280460755210775453053820047839481750691058856002367510898518279953493647190706228635814288981672934731604979218569778838429218671524533126056321524277618197685940258157777063584720165465705235877686897751213663357805760498932187468177206689508200167341799030843575073176151292835784423041144612816567512265015507058483393003997706683129544372886794387614237760679888164856108317766042575415716660438295973560740436278358564744071335626620651728951755599774378498683077165000866264484247143504409982393202815223430601884684813214501872598280047386907752247212420113204649698839929260921862932973916129930035418312797274611847803646045135456986947872544180722665493896845326896220258715919274088537096122572763313539049227387758120924630860426895976687265710716222342625416658900288272040474520852895792863653917066808942795476150417627071618515492214508454927329911984861501915046606055372816993429744998439064879926722545503187347756999785146239289204629833487775564927149093890126260320755337605757312534012983707970278979282737029768691257944990806609495172675744781767203096236993189654434445375659902797556125820234940284505158447711750238287678423621772632729815977221375796222931045548866615898408802176035833920732278583187072898999843004861331469689586500543601367497269882556024161728073566240318387784374794800861637386141797322144612578247603597744455274229806812488642205099092919087609377074015280041424161834817268103232955211415572310377701186334415816707896018485187035006709195024919781865865552157301978078208506395907777129115477778088239825144817356868904378594111431977916576437625120945111565652638033399670963362571918429204130092926652130653736525514309064397893576943845936841950631293197771920547731155224033639671174943653958139234860590461090880292197885301269836245812096901525990819469869308242556768956633345298770354767087387860687787453307586590171791198672598688791753528160988223348136199761956518970814996489980480310028612611405728411627003442183368039879009292357315083970670939402410055510260998244317043970366173341642976022030820819524724595399854357643340942393085345956619002650103512933163839894268831109118753083577012053103063598283603318922966683344836755589161059218103808824294233393698184759197419086574054906236122502858086749060221358728381716936427952953826478169163968388060478896870075862663677519885919402579581929230665732018154216126322086319338720453194156598894524075319638342061806771186021470057197853575874771154699435459729768141850806184364181320470083316831867662569863297996349710148913747022018351532592607014796874740275749256279637764629455075002542029296676507420634061515315129502957041746025136058818243207464251068895617216506691610887135064904372076238849719399129391089264769883283154088208012803190421896334026748758807768131364702461346870616319371418432752523775578661421776376766111556548323370269130253556084241613994803627916164252237729987188194221551854888797876254233620086687970389345881590336519791961742642659493992850339931602660237490984229869654733918955345114996027985290138027151414846993557134858087656135122301949607609788695943319605439577579979252884121628831030113134799522095186006564713273123333375407584855465205222037094689411497636051774160605017441692423069077684657918710129678810919705068707488615272855644119750325145451894096598820338837833230329992842097225462697396484584652326897742620885326319511895879868447018303016999439562240822413874093647036533844882775925985715987988411027818987095822470620996985847265091566590542436725245538841469350457914012327680561825700349737450832397980521987983755773220923439012327628879217464443376819429964878108721929739290425500360369620234105763979330721942870123429336142675448527452015949802247911107745044627403969764513668098973811641138972767905560790396280226469730592653838218685413401524347659656517570792555235988248346975940870060284774519486835221464484288130253207479454479377634751764142231017524771856524303950158432019310790909717933640476762524640898517882668776935386925060792221696348295412323422694826316773607035615138588253720024044225368712369485810544474144991059333437736336001850709694506040455377588084332679381527022275723221672213134861703369961006356420160889061803925551562695717534228975926715528770439412920053259515223669181502923484571071610825879998706304568733424715455841022037172201862897719258389801180373788175414645964567778466302448501928536590980047916045303257633779838378862587581277263407415106048599836861625974828529754267524096016077573045658543524220170950726710331028548102689606520609731207113096511003599611145922602160150520615842241914487404579229444634477693732364403420937531767210229052623793413818853930714358031904306111075695182741416846055408082564088827961823081662176685354590076803846344028741766790045341187602379292030739670653610752202846964162766066172923421883095942852457236557408716808178695611733658265381708006909861161431194644028066454426832613168074684329011038864761791514273706729194804955547009355077881978648018708387664561103092685913973573969154774974909139932973064730947109806252817841410647212663932574118019916063456199780989861298037970974466263982709569731147608710395207019959023297714169622009203160296298319125412907676492705692923340760540927971332145487738515196536362537171622305259568526389703752272765770094207998765420067494829242451459263739357124549899961222694303509168554873483151347217857605916290206880103397298142286048154718868719478519489933978025120739097649214572132610138561085339868212434427028197082425846640827782645761697535956306369698517928580896372973348457169094023012593728710535336465290288089911344927490033688490653665406569694283303170065628938003740104106865744020505645534829756293736181577407194712387684801907183241683788862152109242003718482611483345118342600324753393611662107200129218499535317288143743135660180174138585216178429956351684899024950173463038339147125357006161236524146652416007224748370382910902890369857856002506519617835397004292767859330332346734822094882971118923375211687745230038322130561091707898825734032805821960828897735465421373396116296887673935024683301619273523461311336674758307176995746040294764391425199330202435798436288126195930651586419486795843469915201167444921663538254857273011420618398120444412496098919539090130510910566861971665999197394885611783243782986950482999851629404255722854723479973181971966546778537650889514576469553887400866392938486531765045272044487890307644773061114262238105950412264887483564816083380265771835978159605511458496832076139269999740457313153344554464018078685241926715097044318228754741434657353242415720812927660421627106680564692690315762605081964321019952855457085498180123604098929719103459950804315531586185345096164168247619352157142106366493612712842956435521862096253850183385353637504482612680439232308910016566925180509498035176071596290261629439277448560522148931260152408456761116078079053407245866689934895021200145451887774623025285976397739567745038017599600052265684577232363830853210823664637584870522302989141608593144996580377524384400209949462806760984445841555226452350064516818619445236096087332537730278598531282640672410710545942680350231394935385705002015566492093579025173399199437355787237950713343415667358697468904302766022393797460948264419047329774952244136109948069239141059170363314451258844452705896587987968336109957768006765452684438669853074482113735045187946704250876760295109378679838074497005247307991228596048150816701133615817120710986015833320956688404448668005330268781156934435194650755216782433744456404743404989807179430605120373641765660321475120002102563624871397964845463978687094334546906211042468317813167347721146762866607865114074699241913023179455886355787750163890252199535475027115771956922657873977971048316035498040629555561698289233437885569447757978392699671064221740042307602360306955899929923978484469099939948938462629562360323002552101781970330574214010625439079895711902018163105096626152710905924898487919489288391415919347694040113939860442274626344034607066501196399637147023987747754414524346518131158760396163226685526117148852353359331623205987132235317125924871748877645611851701563031657636325578716664333579454042898016045806464700688894504345695681102294682315919961211101404053366306272088549395083468357945209585218169247107895508454514330884946092519933000662535183599099086753097336611366124093210385215857589461022960299264517203464408513975853850115609964612813367887599287756150167816469937520630216944100652274638237121118626695553719377315041642615477805480058795293361779919663577659477637957386512578906297585674774371876022261757429935757674136695440346907228462841075655647268519780747922831471859279543637248131376816736392761872842844790169703326799068675749347903161899593449742398544431465887582030803680677064256691810044756477289128134668315411692357882976480147232703088593031349181871456147359144541384936946665579203994921867613374159234398826680932760006106502656429361330482293600843991700748553088919905214309172689149157537572041430101861416168309534934960935729554645108287538855282231867195811142269772693189133624853461434123775729962289327469296907872456948007457774094782435608350652008250308311027933347417192302491062885462979616180914651772106672514493401291216848850224276053379029797235492751719536599748186524959493677540614109786454285251088029807631802776223636596931581639235423488740079493060978488133357179637530091800120779160775611999973083870375471791494228251730076278795896877616428977288668170445121168641377811319345217736862688751712504235585414755505852414874422615736285615965369718738784881192063600006179961252628048938100184052837593473089572251488068760975619846816986852234402887300555201707272471928529424549664879334020424795832150424324012361308794986164336006251516261687548287270255858476431816132517413038431363910841862742621552166218684094284175844641246740722149860690687489619252848452516184626226703579037381884116691802159591523578800085714414001775627799040848940765781827645086987473113781284806318873432712506397836081468001617953098881653114282882829901148341385407439568965125973869401142687308336772487513884560157750921938858574257252736676545484495042874207121341184034067622664680463885451458566270707901719298961281451273073865606354454214790602918280514669050755993537896759525387901074129055060847285153835428687483903242276415437647792947050762406787386331305723967761391228172464918903474814406656224153734260260799921442396713210427841380644977852101149824340498200797430828177542430230761095100990084232025077367307580351190436911749648298393550263564671791110363863554736965138447918580549587488447160565706085907454251837300334001505958691291507405727425310501816470819691463466039135836283359156485773135585710190278715215048750387848436178941471039923101675867698913060383558373222429127403190698876788446126435645894481919782578202879940223114251146241587450310912323226403947789122317288180107957650408951826390704635659084472864102290719334792988227576034370778387220470032986327123021101237415573557610874862845147620109581681673791065711233200498235837452152282761497764673076930053105128187570903633357798107781287529568521259687244388992994504629248079523302943726555112176028205886843229548843110438191842952799985616789197224437543400282193609820534067483472114011127580649413627965280239291704106880998081931878740759256560957844138608246732684944144506859984831055813444381193112341444368616677345450991178174568855245111513942649130884621769588429094369389937942123845225400814262459747035571235339015597121274133772868306017421086757599926546450009228659618643465944669475072055462635867330617409630722968632890539288347274141095505972023254364540667842842988516767093749085173280008405542199692230459328605779830779844573822625009675361845743097401381959745530208205545622328019026535136195949476770444476148230103102313591632717785530860966014782620988979044086395518940504766113150404128240288428020900403815731767960550525360796505797720066877248081354622038244751116418411873618916953923110927425718499515594169165707848511129938006940874427722025131260304082073633706169433437017150446782275540614967611001227634577322520384606361253195567338798925472687847074921096815888372607824692493781841557378214333615235465345255304948357418505132647533776697729973148843683153813837308021577083223198716206645938405485263852017897548292770258967725433414564267004713931678837808451741359638901940861377730002112305466418542144388292961699203343528138993977019142729594564302797234295095927091223961204600368584275233005712226593856717910704969209374880353969355567355186726730403694977141981572361548843724518736572987453974968042473042487706336526027172709347508150258869137431120021212667083169636688742836754642545366006109208310101000932167310922257796244809565285225197534077205505685253446769798843392689400666446561670923197742183793163084968958942766180502575483108418635143870697850871744836416217584427172232681523151403948634529723135986950825603850826155996859121922598692125834474814726582322055636455798062487475837994735771566908058919614796546092422283235812114032680436365427242027283091380694427840929780965632491571255397529749577162375944653228539493265808537806349056373862982917235519256799185766231692451816582757519511245060167591930817573846574917537426745024440291764568294531951115695069634028769759616935608386846816959127222937499456817247482889299328911642013707765490895527080988326866790516801707353899948578499009875943386186333479276940204545078592025846660024636838019805618831063396311030902121625002704455509411353629533491217707059584546914554684693896527343770485676880058965633586909526842377950429099402827529466512140489419302365689795565983475837879658540075780270009185582352340510964372494497291935318947558139372068959131126898382377634534231117166150575837963916348053615185747307392310032384321901051657292742819667208908092415959604530940584144958836801887207135955154179182599102384388885718712158954106591054798031615578295354155891448630461574183135885649298627231402922579943526078083435901908188580163822542161839993435085794770617950651205619872438295111581255603176714724442594914873589486484197821886938465161572307743491131394535907442893063632150769161813266140988682916670390830603899618156095419687868091869437751895676310354631739782455012337810279746751800492931596819294358195033819777583473812888693438923722555904601901910215128692407112367260772061155548028025673968473271875978417134360928304269010335709042877201714944447375379673901579620796845899562071195283556400760207525218760102787729967583711798549418264342719669710585157656241178064886207746844827059710543118441546234977417761734970227162122364601853365556049147828547629499113255361001739727717625785405452190886131280555754607532769928472229734131209385532541945292150118647135814738649610660885733307437229671807465397031898399367968963905013151990846170202410055655334781673783960107066577537376366241366956829977170718686393776987889662347151717943396440420939341652740946555282304297721439743631029901857049572904295708274126693966251818815764370429095780232381017654158189377857073991157515912567461506898321738367765408217822235559947074122764148485409769091570732294673970699667047611881285459909384418781221403199319507165669571738710098864262687672219886260165016895967612845418241317443746855194469840289804601565557317145034252529009322565767496163289029632137356215059573890348969433939019454487557826796351192012565362134099855605113362935755911245598505217341483488854952618718119116485118036586436300755179988704371258936719362811922756437117514251967979560537249864205394878639666366972017302898696612290727759093483046050867277776346536844920229798432750871664766581709439994828839915105052598252838084887193220598997325653772821356662687858712446773827179279767463978350622907251806135393852809736487788721887088135182045274588612015614944672064889954907989842278061464100570470814038875698624208970922907514131504105815922780548647014067419260936969878667103261324597394340156033293581246255087262872960581662126387718934819921470348794260775874450962609623012469300543451770798517247833171477884839943219152038659090879460012617354042172755582180915416375033823127679620951282927907606000488555378309475291480139326759020562517382859640547495968449926024543497095974831177342838203250651609637829924338227960654859105713344996970183493000038973926913801737964304078264531973215815641535615836602899653200298298709718580925018097538720355730884181437667759395493141137056293341071270035992743186674043200746517232549875606138684045834842617342212386197435441876041930874477874875276540647129278667565656236898397755297847258330487640015959793494247701825974306112288522760502609604672018036472717775086776451037607471105384150274798773118131083779597827449182057717063663510816023875624867408673429651040522266984751795846868155601415578806457234580631219355389396216734531188160951269224882082618992488755380785570390775444809245074657222917064670523346471705023584548420196413510768114893044566568784576366717346812081931881456705678116450540623164204126682107756727182479404819770415243140955081136063138832354246992800413454750069064196813911142542965360259672649549605884580041571856862186709481342304718963820863818204065420042374529879245586999120667462055997662078266260114362288414211354359344499129616403320890698734008827055975477187761513232733797455046668465237104565476253478343127965146820947386249848248450711304360685106120811343170016433940917277923409030694327443015105866006795755451813290253662281998838005851803331216275455929940823416251596794447732207193885645877381548830692431535408661018272957869555619983397229053460138188783282846546533205498746343635658429794276425899496438010590089035064675857553758629993801605485441265517338687758117419574490290153801521715848410679965558644156949318638071991599537591293023766294382654594840055405630163125617777223967013451277691227670888202967408656174993127996213432515556967984250497273417926966803420427675833962424690954159493394454559536335119161886779095536377781256039947493817545234775346644819724779878160407530516894489055620832469195456231085841769251523550894322958371015677017019257912355576354201447066476778122423688412284529840522923540698948222453291002182734913704205858659328475027330153397378793057201017741409011794871566315540318715775680144378806133778785019240532873964604969613361813397763045398557540781961962412942275477225841920989257242704998303559563642309644059234482879752077347534396757963146598590246958764760966731776847239162286022320827789999157881772960881966000783038192831642099443011982389975064856862479461095798795723821575676473072299157358536491804812335210346121049641170074434252690279818311555634261595166683940858256794674835943303047923719740280174436127710575870693870214506964843961005221187219307421926880929834718489300861077650201037352949522713244598912205774904505296409544440419012724228386089889293966637154259935439871811173547145265212947303354067813998245525316541702740015093184490194076218602256858104093514152422571152982634902201177758445568402617882663514615034046777522238750661288822592821180079486634019550492088377170316274411109699902770368682363125509675043155771931613085817314310927284897303116986870241700139980716636790122090933141168783873077253500881689711383334121675221007321074419253368777056473893636583555495217404613771435151473453763498963812540387806076627190192220917334860887616407543032846412308499781832198550561492865607695792105156228884129031949081272500484954864795495203397269181589819019904813522882955622516962620926532246425033992670745944626892896070374055612094926568341352697115452098595607435978444617522694536128046216408249335940089408377408804592595325420698518457881041198257524646782175833398139732370218798262723808755416017799201764120235849046307110825462873105742845423852861125819045333407339865752573423628229954479715968543938612307191342890393125568411585116170367238997110774553251888805875715941903039418728938307635338977519767634488378921168600129091837121070057644740707876591546776523510890495022644028845023878388630176126392672726547394922723064163429886985883316430451017443061188161332179255874011272595455640725216124688509595297319041846214320320617788186113626620508053332964080240325708198067563502402555028098837593890190074575815042626874972343203982787179405812293650173486875418076000481426113547992241636060763261526414461028201620129320089667395218829319067560389757190713939355279699293442094392301140606714826058887529956611731969710741790845791205871637348905728664494020992598087706957486904065639764342247951118541388200310565758007609976545477159181664370307831835310195865507921578938498129890565231967922178592904857096210013300644825424620902309739003297658710609903208986843960216183510860872852899725693373604295446630296367598961898855853744629975509189510379768215244136258282855987841215064726683366998314267063615065354235987856776052484863564021732300376325714066377402896342766852305685039533567127913145328578211665198657549901018126463705778982184095202933376223698677836574145543282442732764100117904603744050783030962038721631871560268683562077338657306449079560636096989800301676628486951099439242505192439244865681202317078629800173696565361530123858629405550190973745004647966254176727797191703620044073618488490774379455947244404744476286823912586682037279833601545116336791566062798461506063940633116395990374206058447410509520926619524418762080188620754561737412767216498449646123216190384920591269449724683638096612327500055404064819053896557480470051534335082595076486082597845242199484531820065114789240798826532135651626529093480864085492140150605418080402258476695072394822128665178028199221095010384150340203538372604225354723265684896372800231781830190304611163163180627967383666819189929089212730294667252362111568770117213236851796581127134860411252618312649857823837988968912523855767809279523364329305969591139942673708679649836193031220929511300251145248435672557810474785950136297136264476214069708666212632732859340479039557430143440867790931433570972808181099990269948912056546100492779508968675214612959367602584738897803550582981270604515816737681156921282852063407946424760297886027735786381819203390200410653562869865856173690712478966729507410987931407358203503806562550667199740548088685310421366100853383759310584592581930391828335082555481870585788107513014900685278758138613998681281743103124153415775795025791133723868267902227550373824452618912981120512985550043371492996887097896928195667586358859627946105107700648970512521812681072860455091269593392706192721756957939035566741375689272338683270447792317067600857317338814741080873044458724074281629225731575542827728096039871147991967664806623260208649593791452109791810973831577292370546855927788896353739375823989432509063859834474903251557106148230037306821827914313378684402013701550349374557167894618694595981329410781242486256317283949963125653920758409273301866041730102167411125320922891994179422263322323756184784232897043022472388532685195603397269707852877166136340007409517076252928160718037811944144954450979806133480976915311867630669347243734645592245993266526268947642094414062467631757541498766235721315996287026184500971520243355137020669038192463968350935289612379914758294072313088509735014550821429337466921515888458269431780924482784006317400138437582926246259938408336385057650735610723825649770786362905776076424438132291511589099480215810053934560225886477708555147186873322921260691278988869965036374398934148962148867811322976035467070905856019761271041528566400998797950512466682196314078101763049890318154657845572912417164620455536482067586092950789255505924759715902491729279615257246775978599139721826755418143474663236589805139855413580437815745501106257225685226897294295164698835651550611440623803337479342088551391596383105912771546070962294447953742175094611514267895993118547257132319774683319909371512262045348420581825191739151376626815544712852684479613426066714424764832857985671909178899910076164998791746455672404275795139024030030100553209645192189652213934820273862436783905560562403412159093749406956336241512345888198193902272107892401172396929212034081107938557109574896138842693562288045161298987694510795259054249336313751562375749433203022406445199818335437322443219664460621230715446586507164373133270479789188599614312284634645212001716605280108400911894925790829508774945478795457906016838189484511176449817868257703437006589752004729584312966547710120909204013996376239164283668647883450156429313446117643323220116799285479753101998412472360042191054293999025661654114264710480084789051300411304250259979336746876567559289983499186462903400723258932459695040991463053121623067378194887343402401780086253339021568405115579873163221374572170418761930393219385678715077576663609711969309224588315681514517660692015550931672310660833622012460316031668202251426813925852462012781041958419495136353432256981796292179035788595412537166446901290038784858987094174661326376701875057967779702644164656602750316038875264045229295177529965076047384284641015847639871487681064143777252852157469122729324628445943269620610815618701462493824994374348791843690291592216539374678678423919297052020692565810823354286618065681648638409890362685027545837625765643912989360899192321478660289676314299151507945112175542284298607418180348549762297975262780771618711022906276344319310773761931975453757064648991751442061435024112476669659135686668163593049155915036798487521677576244079018500503138503702497742610564809878858847663443129529251304138736145670114909883785029421954684859696555446709357420829017611152442621809647056489609156446182217941763218821862702082649710747388998615194308565183626350623459084882277064701176075620987173051589013652796557321856005965853454055616988745672199417108088931523200192744887525305641935150160401263499111638381092096953961344119418911107318122188256066228715664330918366721548279551734063333795912272575735499991037630587367947595658734926522570906997520132227035314781097795237764160458205953401678579065039522156751911536753914812794308069083492915114914167678183124719929111697041924857438141720547714694166754568382413575413170321333991002647084074176285265352261427598766526981835735823855802129807112620765671183189507664420793839964454811976378990139894536292694835166685163133595447723890062972122321881000564186215242117501208609741920806744638552420790586155806711514136609897340503432720245698897272898753776749335235134901552015932498415217651070845220655024149503460388019380462037208203616551092227331010341687597080316323135199854409145211515762211931664922424336043182296583241615487076935637267541877566416420475543191269120243573296220099858242661451379295515502205462680135953502239997240511675561979272464878173166484957720677982067353374696855624624348890497933938375039006228630478003824126663703250146784296569280561328774434474838248362706184354416061762376068624023098400914154540722121156354594387009504460687857396521007411846152112654211728653344410303892736502795426515995600339512971204010432192288006035641722391290894738999380922872458298708672831401804004132027124276012729444700272174081657014521864227554103126651559207904930100984471722230418934059030242833754473859747814735239955644526896279964914633535209739906810583739584157788983870401039464565591405405615476558111375076662589143084716303499887405008506126673248829809788967965194416146804454917553806980148267459768324735521152501079373140755641557935047771120362177683935347606955458596935863078649499263564640961687882201152621727540083377782925166574747574160168220171746185777938167467571213893769794937737999382688063602340581486766955119749480652249979398330020211137557752919656823562296621794475556431045395237615759126247850551198065787253412149447649568398156427156553615750264892494321930962416191101630514786708759836003147728753384339239147918081669291134625097448437848441716620967072506206685395073615219269552710113836537615707660296385062793996954593713332237190665132110911853048419608333237027095271405999906460797239537898184079332308772443105726247167925888091410635042629783740905204190993330162946857530241954932398064538272078059526045108772324222561827742239233712634431405275707843311368772736676295231565658644842858334368101749849117123525434709537800952581886515182338120840430404344034475205414919066192270629171594346506345915038586338624051648365817109696709747734725015221990790608371472602036773547321041153958460119492871773462109109198132566109872419184864871556418883010321188959957028857355779716646672202996308531624519783503499982164163113143527699372287494923938770026625772218053037996636899226374208016609413314059079653531926287136536592556158429560094116675065508715270135684704777521169163916795874029760742880357306776281623365648030891892999293954706164139031076935597250051736272023170321312091398514383675219480241574779012774596827285102788668033383023798846129047339589915549735719190935242686466285709256312621184736342116200028233124481746948866161690610154646074134094741296614900282357142561326343758520885005204654916193870085165041645153878743078776137238840984458108226496503474241015153204815516191337789377632827076162768680417073226916676155553810993430654522878290698166243797049493047668249242458481844437163487733729808537984654456500531230269291062247936482225574647085795803547505323660338350439261885376130123906736052354312860731726641725576742258849564559592151724462083750234560414121521325054068086571663631566956688836053811407144038607418383080894879386666129546837448540584705925560587517486120094268616683339236069428321781524488853989342017798135588151627548624366047854602241296052488191272336081688092362333159811453277949403969874469616336047433683001392783556491582537676612616380011974886055948802481289933344079936983477696010861517512415224676210544938506679689287629987722412884942061706085542659289846882329193213422679959420048359833491272417792641049469791624397081292526859515593556264159275503106727883816883998071755778665634836778580909262720928176127333574605758839763665925356226498684295886977277260986639399587943052361025973745953148882051703955132413820925780983696872080955653299450098483606336837536307864562283113994725263653356177415199429364410578952102390458071921440028233892105346785509004187117730328110798317343159795274145811101929343069714893217392155365977495426172041064570715495956699446890803701501470168071867504398244143613794814457110555709502396598509427016987550771645184903638571770528603678337380577236223391225097009188324895297318201364067451700188213100249983516653381636910241181838352879269672931258085655073413154060923671852968615711332797176010742570268796992870200968379905352553581062731082722486544951290545987923956160052833579810544459445536754693199592240612721315222039326627574840083765391470078989671022018738977953900490325120011275745981943851119088622050431035995603094508591486974397444772399435612261789948677813855110881120895511099693342397834610110007638100835693541850354651415631972537583735414932126795936905575683996999381087299802327131060568164899191447851590950769601205481049378074894092902085388969293867344113428298932199894664608167133528349724691495418813669439025338226053352703546414176020149445603617773292471299408787150915036501124512111381767954296606235203724549241919001252422125360000433089547040771584356108725292394011202206876305190982270123053460449360980104927702981210849468067070674256085052609269825091422089318953946177105434317732431606523843204121891944415137711106410291931810619933856614057234195071128239760176906434606858372510519917420601530130899764125755730203011615564368476237776248712805639227240900267091086342435618335263351659076934852852104054297876487295748397522952227517179330485544888579032760301666129627713622020074926691920407662610715720283105104933005461341454792753635302576689781144707491913653975373164462221724437156780420049609984878029091213024943940350572028415869535497939290534640832419686329497614987641819239407470418087252404410567322691404482549562810874868801818233955248609238269474095054725624078260354297935263983987784851256359398036097493165890397823509126822790929476177352150392484275658230749492047940028934945425598631912421870515617589891464217808044725443158866141476423458314238183557122081275296461067288422882627695713901712823088263750079904043059480228872855342589920722482338172881251281572481176423609187760071155348141356415447484668132413574983074444960395667092200669246222773075109863930145589164517573681256998977657017857485867024850320999179398344657462490128180762247139568047250203028244706980189980132291477014189339103675154541158148381964410912301939701502120052507514388568560051450634832056920760941316680195963430623685079618669830909114867250950135307542426087709323265107304576868883448175995810308434339529551095223085643062012355420012975473506482759692112238640445432744983569089027608504279982795447681346639190478857737874754229525036123378103649412284755139570865567537217495038970720945571352636037403564585465906130493064616914164917333881686119070796320796612811312727939836559856440185401897307509521047618640670723016279048179609682839355331888799785724596711435304829880982934993460684169404989957093701894637390471372699943733767968386240399600178495129067337719481620646456885292138652454844827869426548865511513825993076973287751514845209030199618538634856946662864926451605468644207098134979149103567657354895953775648817377870015416336331678221019709781370992537447893472979633483099780928873511399553549760334640892256817833067266091285880000610152543464117134408537946580802962419193050844333558693318556923738251539643859473346987843404672119093501953683566225677263676978380054073584036805366504112701319200038248702863948902216361224419351925768454540198572234841552110005492504714916180501347690531210269537012623407437312274713996715893297764706875605496633890816118403105020944866318342555991951682215917428827759986101679720326986798743547700500317470265045564554153139979288042266377700446443512163463785063835355301532947761428920928729138906353170660170356178547072117308248467486773857513675903687218806807911968478332999700983221317945946353086986972177450434011159393663402756394590679612570909777828591372380025295465017769693559671946736751612544676320570375764031659033227138542168371349703491701224086026576161255872917279322040068345000255835277870547251373530470241948747955418934611807209506496531083647626767568941673926452954145034739416623533954109474528587655800816930346359843686626752634980719894678808498142419125772728737075327333059602268706007986491639066459424694115114652636925336582044055532892554809545805970940638864591225832242056022693491249284853942213420156627720861781043899581453448534229767122670224362230273025134022884470606299279018741010832087399495425262692698611368974944658751732962545115821518596241275469894384429725988405895267612413173280471825455529633688292773681769266829438655892128524218441220415120723887261461472769654244385259067145251571815785065179574665312240793770723401526564730589213166945744642992440373668514400687011405442890297593624422866672622428462319935939913935363917743553160350769981187246601047868468618693179704846789465123991539901320698597722825785418374256832951454768229686783944786432946838407958990705759262259675930245672645945845686968714858798781840709161314272609472199742587723910670977213118078828157107471546805784289438179811807358426387576617264750115230738084834853429869167296896064768344706719188059674000079150594853194874436382798800720157795172895138553125242310304358460771579290538665679058586949783648729397844831453352824150030607470681809410685315438081222311378229411798263708243277033208206696838840320976988751474916994925258076755551920565747508811901353708446155571641842980984005420687977772892181478503107364875500820009943301113924171224311347363634893182970594948238984460772097849263252058026421828999350883401514400379047254437396259028765495886490580477667072648141325460507893694324657265692050222728786226878651440500174594767070185308392481707262593659161712086710045398283736305603467451188059024286171548333954933609801057860144622952571860404676643523341779078601009628311216466022444123343906308667517118054455775432716495179751852662274545599906144937691295454735393649322465575655190380817184395177172384361037035793640244268350229095135854665653361519481094349910594077414601003521454710795182210496362964321835521082094912859718273973339195463554127025090979131806867777428061466683650476325132314003139051511881241916403840021614404027793507303907482183442825591779795634123092715667722104807759109892078491249566604496224790190992994608415834311752165626182332284365916148587399229529734700018787500548157982253293639080226772746326552776804330961234523756134228351511169489821528912583842689356212318877299251298406560258276041727163862513208325412387759809786161865446583025712364129602426693397139554814082218329903795314204927545758297586200953924614739762990227771333045973428971012643118618011700367862511747854538690428819915435858489332592768759072495309632191383368397933746352475331174827046260909716127548441563644279418877708726990737078092583258228317590218888747615584131141456332657615034120568207210047974226517639151504870849956442314127280727352924352121779923032542494666444556598643519227907109685827576343098371370601230682196183235215357212844851741398458860063208997671185721469214878182644823292204850346023955176393656572323176066997490905364103171026343826408180858735546374858433987033405059859993390739161587608250621860880705651524894214515822734559670800301617095429781714876451571572759494148157065876619270349141789364508840845062034368197486734378504051677624478503477650952526449999743488578097314768339476615944445221563437791816129690870914001835758658552754816981089754871969614689762271341983748335389211706518650788404945180861542794193257326346095441333566318840262984718891313247489221524471557327076770109290473432972907702756819017310540904608367418791740200557156934438642241839995766845341993998609741521880324431062823706596247104125053833382962085601169045126607470640953654181404015369343973294674710406117713690407189839040903282174970572921019870553024257964893881282623321162609254569146976317286361590603423342079855990872408236620696888516933445889529223718663997517665044189957021636582403203419973192288141343267260498495701059180504484409811075866011612507158739980545075423555591488898636098122296599292532361402244818508804860318998669894889158290434964811152085376900866936158770776290417013084178774663160713183416001623030547587300229080755023745348023269568181086313777300640541007100645895364689841708771914845823701899093070854118084084369284101729234233667659793953137276649987185627049897597896699841369823330464874707209565781503307276131765860968963527044270018563143197014591318690727073184896554718099929678675396158751615880867208162637818923424544036229877911472392468235680763359213158022860998396796622593670626566353133810642826672269778403960744674692510009730119906859735118303872994275532010698577749989602975460508595836493273764047761509021041788449081189970135772908721257661990457720244986119310169181825537899324267763146617431340910069037372561437132535343872978755389129316948343487960046885488901561729118087186575269933987000897211249044770825727082272819102282070530546056075230889411684560005702383178657348938928910782910675027408652408437329967606396881344457730041532578732735563803259903580869567213294036394840765347600515436404463867993250027695057189631630648607438272192290728181998450468935185587138379643343773939106707699881111761563691052841120013449092631618206452377228376804744670206055232170515462080526666490808498902854145041289642529278071907903995371328742268510655400844602879781850604873353383411129016103588452697371750802139127291726293210236947663963052094797415193103882930593062400018713585685885616882837712830233833138545919938684593415027403031051283273355564114829586571445167118128358151588040028407029688761427473669825221936915464320021026462301702943020894189791377716427605124077800116951051900657490052566928852567021275400027642200558131292128743476863556492672319849212751407323823996136446661401312322512429905153634394636737731881656890686273905345429341702902135937519330914005961594049829546726038349033576743711014161770013699599828182503921955782115761629924194410630811106952389108796055485245001926470827091170822583778115919190081536645462042478911606871166288341741078079361232983465774187351049947292622516527356218538847468772549656952360842865827348844659894448790934107649548174019034962080716618380099210689480459287893259870043163770882653679550857350478783820124280506993599428559949572650464301837077059053317802022614242818562011852161721271015053445116086068335411899518049175660586139619305887613767544803481401770968366658275415237053671664639405490843998499797462076497646913423498183766731902932752822283490737902564714559264053894721868788849915179101090954348756789099308908049281953106439782203624908149236723744017788695066020606398938804621182487386696433031577548161247166669288715974062767222974971124827388197782523163495312377797822456452934386496093463577996722754436130662233547046532633527262786559505181161841822924175855612239406490829032467533388723552872901326645940327666625898421351876735098259950445399078970621480876945525565131408673516741149748222220537227459938789356892960077388838178173259789613518454894967490454092592305208428595437009302009735516945454012721939631864889041256682746594956590920873954630238719240379247325490682877446344236800268923709266074088212716678017810695968776788257392455356644073700732136908514260050373165109333494029088087055693865896296178581081404444981797905373500082004380212107985740039433570350917604220941271646005342531340010318537955001549102577852087263799229523276148867068241050750917449468533173589520251441531423896607649434662183532666255230071449672981381375609202212808200008845491551652355573083337928368521732641763232633264576748755103959879538786302621031742524540111362522237457661995239526947832532092786547959989845632658838945237054642257065436031974129338021772311535914245135966758583039843722655686504745899239983105291447508158462388828696726247149291486519263765161291891383187689703067371480008731133108283014294193982474005717127146467682921904410134784947112252736771827644062788504944347507403265676707033030246126165407904636020870124689315500957868180969339999906529830341617479281544277716966443651871652757414019617573821153608418412744788114779336121329818019602860521274899371543723481592481604308886235449585251602373164752224270787020513616731596024110870307338039228780017961655661176070744469362996490492851444803538867380242830375865687408777602684241300733882106652855433680892535008607551942166777080897650447564665030696220916246524714989054278907225138175628018431157277393156289678460029445511970953422400803046613302436919421093288456082130497482586908610140646418252084871841746102635078504703658956676960902021413517077452768864554749393233983121976865177694674975484868310931756869500435987854539771371135585499085062880570991336757473801635469308102502014263986165139661263755138185576602048472902731340165631757576353497365063880319013355979443093506354922198777381773273342272003891491916437118203922958125660728976075958417261985584504130453094625469230960681553070205341355944512668816732013612698306573914413037395481142906895262776984745804797844302426801659849556854066296681767529362658216863610457722693186475747748648023096903705975233180715472116925318323826088145846539272082431218236952854796292303598900058198568204501638546431023949807708250424222807623131496596943246802823982642997303182531384171856968787094992572102624214352862316766328614541667845402027471627582669664973479314828183942619401751455361642407542789155899426394557708403314165863671817033599777323457627227225630743510972359968378727576727092747151176115842120578336913294812449671357418959182937354935923710275781181486258668113091439589270750747744722528623459530923784111389226724185035063610670467197689598887564111629945816277468883655908827112111552935607530230714642778041303430568577933715051694477215952869537378348942628419070441843922681807117035723802243189530289987773184636258128282207945317068889166281168000273198982324395389279662739498717489214323930573774295374590979097566189936631944953104612050030752781020808734830208295651358965841891802923072562923996244826741377599068771494299887118191277151675242087692854842298616534297090925807404233620502962593703767283537314714080726937865197773882178006174752109283081432683332538884641265875022394565562963329243266085710589948533808723187679336375487260907515348094810615015347212367399741568686674964404023554203723723474901953146810999851948124870385554131577776827883749396297788264365492502303203829575792179985452325625020149608250827740615201451860060183761887422028003339091405435214753479317802037686665915164945579504928293586531987062491854840128670461530197745338589704534395299258496035621789174144461968769185448832958699072321500807790150363732285779073800797030704949762359916513705128900489998182277943716785234038021409113016728856200888714520878666719236549165668480664731782348895946692578738559970955845016873408594823007095633990947942405864930390666585876736196118220806120458581812000645472719936335054312906600144435722806288087069233632044136387937679999459771440059875783165296461837450930864336666016258556123462982471839382841622580143702019069041918822254744638260881911835034691603705888116072568680910198119183707913776969980693597449848721382623380838786168493762413797864060319329024174258081224569731998513210725461835501800005167557214662566063718286423044490153234609940965619056077406720610020997486959083750559537262817300456236941280991166254512556318917123552533091972014694990524815561472294357351121432974723133948177224301926219354358960563847246549176958099102815145006176777872707912592977774765969481974879907676876607078244048550652343676212413156317950398566697219722246062250411623653882643501641875195561693840711125964366776423666861206544788425062207038890052163796148834550100740185362116688632091358568016055395632662110610832898570092141844746794026647544245553277881805667398380929897384121224886609425282957767046353766280755210571834016715058752236823989443725484373797682489995392984004497742176124578162051713020046725108638183007692482356096570830221027371027524997346339868995917317024907545065001327180924348349270493724518961271026123522892509586610527961654076742038098265821890378181644471842666829988217318853946538151413902170023299437163073528057819250637171474756755904551023738372501102624137388120332537558661261340027360246970594473522823070308086927062880776056079757694761499710361635067585897107185590831354240909441964651588870528111832560112128149837144375427457119182224969544559781431574248853230426444130790974329037404212288478090782108497966021702509496153141812410636911861551163547118793970794701859928781259627795708795073256641947988552084431524669415685196145335971782284155215012861690215410055567304160586608195353973981173446848486655558110434725316246681245154063430102545901557846166966996543247658792491818279772513841275120150550990688462653851405320912508011577144993011949934715191884299839079066387792013496741536779075892650504459168559222342653498373196940176650462395665563292006012423305273181583406793844005061651559339180496475413667217849289504448218675356480394230271200915122622499930046338529117911146648772603066137418794320815877081773278900950885115873737297383504918544325441525112373382353016296926723771984661617354891483169549625600318740372739860955126192112942456839489439506825815266286364772300650277386823674055258424926682029803701247605966414553146236133055642112793173580807540841578286233688433726119150017413123643794194566594153649556933929709630434966389490763926606719591387725067809110588463927211608262949133131218565473731399943300384284714433793788198383729998010545531898981444242627817639768330718118301756681890104428695963885263273948432171938273411282487883658928288773588057292449245555164439806203771911225893431212325188453152291021217532662594744462822360682620638037462275703960282925379851524299726849937255662680272665407836531857208713612134421140263456024603260759791264217972373329912068849178335317597787173753510542431462595762089123991140636549837946062946149540213315438945336155863414589558363059908439908627594856158682511576226838441891215471373126466949584938992675448059306768240947569009851691898069662784790329101043675799178290490123924550055060383273415138482429146019226565362903560664915662426137353344740322623612239069812835654763677682710286866521352310967780509175609184537154326823810237065347628902856673716420263599139196343011985315889707652446641213512801465230890965322892327171074791844160717926411144426339908842976378700013422125321370125183507464686077284321829170278984650240494017185575819722412199073716580879206592246819085763588220767106165277989946947295930040237418780824252900791462971942734997655220339545938071817887058987836384075599602723493667294602552419230773329253296485145073889891448191418000720543340970888303354789018988948620096244548663393941429806437683613442189086246896657277457977800804648358589732304891922018163469720167536599883441871968137641068441544984028579527553825507421288347571201082389706982708916687563168113739504941840216018068161095895337977287516652161144143468228119077458536130888895389344906869734907668639628677162072889148647817951474266816610104666656947740414127329883946936506511327132438049344255104989459196770753875026940924754673793277655257349151515595790474383643324706606194233886657533602445066176396185750753364474070544208597365833933188001533945001096919185419010944785553501731122420124176165514583013791065229678573048371544236133213521367916483210684978794078435099587035622442308707297139812520837084138613658939985647833455996434602478527475623709533122636047840338429397168705541747775625714710269053224926492360115128497909877477622323973374834594474980048883805315898816520066357107412735753929088845520356701677968556673402076382781945951134375931184880283848096643106574962569093002215359874463541555992499723715903727951968895354732404234722852340059159693703749617364774189904146122083163035720809014091134263066084381334329565568935556805158627426539965222091492020895960615295118993681276349997027006631486208441443635946087337653336582546030064630055589462810884843188361435448358536721755673171309019047997139337026027210357748382951829881026995329105839063691409281174386963794803138352735605860368271775312008287870934697248444060284096102691198142218588433110247460167211814782262557881275962039196926749015378023749180532256290846363432847333930039392068599972461159311419235825140433133499352064625775948525876719395979016024356120968616086242099162560310069690537353671455196911756944154884610685352802310930444759475198101119667908785256791020984378377753446326271590908650267750226779176953030139042560000576914366378487894347210433500812850343062743812243577820398881341399289832807326080581626495956261946753774732853003811762242794850708549109327432178480639826738531897880243808207472153777285814392479795523751088428773277860792847255589045071410513724275068314459699040741706227713829911805872260524065396848467093478353517340064309500265243886364559833903674295661438246245449028218492032721131885418815291865506786190049990830846910364932217966615341494344958698644028886684895537500981329067132366735905046674085727490042218890600461791070712512538495272587407458840611756093203576676865631487308957076125066022494684735797961728362264142162528152471242348565182807609245189821324138673970425887321211803832975843670835637859655404280651666071250052282836592811526817358295490624586587588577211745439592339247607267902575845876597391329809314686499971187001644964105958054332925649779973337620938827084277249614122461840949183629293378356469638085033459139215065377875635187818354627648245178489268027170331548244931354884465282045025163191917223607155382338352523159198226529954624654950896776274387300363676292747121045941868112123471768021187478105536500553780772530178456201628781434193905842988126627719623148887130202964074691759004243396386666053885892189455737930843800482971104406197390631980766757721870355450784339777625274771332879130183257639513659864506256243551665705693107916720935973904036333932539232997736444607019486844473778655036694410882749665172821578465572962931929664085349628770290381758200806468483655112389308872216522721431129363117945926832102485300253170347118641570546189521165954938373110895310905085146663544848686081051294428679384672518803259902059770771676069182313203405974951139617440345152779247349511698420541435711433547971053884815251484772797859535200914322524411391774988830839042756028452119016464139367881692821368215211553442404293729916277209923799290149464259108148207871112164984241976565654118975397973328950455416197031575778582949060486343783215681672695476760180658154039911017712406545819243077616168301504984610153720388027029801212866547083897424778495180652178833253183340439421412770067734107440662963081348637461980493195138885150054613579561999176951718909719288342270288213122318714784796976246678676407065630028407086291036902061981867554711747302812498272117931854347037908453670869062261330840180561947106003731646486078577158672074485943921139084072019815645497722688187178265927678707849869610307942104210355444010939635362798978899220040558382243684693071677752439159859514189412824184885754003245877995764470682413830448514812727445779310051745542756008088864361469525586430220252224748086007775693083726512912606651957063642664040847603932647801246951044752862265313373934581545052224009974288465333790234436387356794567955043317879320234211097554777849621466458011792214545104336318067736264706405369610905338703846999163519709050580133704173622574972006519759615406086923742475222834678288281795209936477759815327051225207908901187023005348035843734338914797811299407984384251488966423907839185557316438714306969018691389910596042567234822637011084260223486190939587824410708473497248253687574297239271397198758964276949951141940522730354315464464573491527937035469931026185601833324984569164560504437872543726847808313909041131385983095381523937309856512092954849552963666740174533058538953847286659780139937573598064446142245526264013565488741552492236808189503205310436997783408187871827728031164776900960854154513692820755133203322321770109136968125834381664510321535357018744522211402136131968087462378049672684999530748857803879116828182376064333092414547258152142561085450610840484312812485584110558837158345501989004189796761162788047344122928836928477803294176217242705741848997857564838652122141401905909251569089412607333930181151499031155286498333612487238733324754070172320895025048257285713606084186513389721394795913700705574223389446068230152728939951211841559515125671522718638034572331086473344723962477907916839178277551475096626689576973773339184024059010270578963508143081773771845003017807437576810319055780588635007494158204230876427686148075233445453044282188452536386991725381081625213728494069612110592743209449185271327993466740830964001494366064395047979564826748892783336984556254919612207881810093480578505358574214979646465983241375099430744210271784216230767850652619446014025908506248368657058323196104804537292303068245547011673174420238662906845483048798482787826444402366437768251686340072258129584905091062771758509003618182070748801607708361993230490776866543416317258724294469890623207318011471862554506028072593811593773043571894529121918686624019411688281347599648711082787509466455409101233348829823695549396610437743946268713341653856479832402443647968661948011926550134084894998023561873879724835026364002381030035165811398005073835593584098627102251085310035753345394766333869644073654121280429500631301601206809534108665082137389074327997131975373193159787663783391693741802289034272426585646538631916476499712176502508138164530880851804498138116798815958174783548569841848066678907743702330258120066135645245538940871504532640200776298969000538473622358386518372515930653713167202037473975737793681456664642730892047150322621759301335614867877498832523034474908949120470723878110467589988549034379505119140438855407218972815073886028429423859726469045487902659550753734121826998931343348301866138730196431963231872429220216986018750634461095622421526461477890292326159821332909168091395341389938930287973436111993694704648997685912040742937236382443828125645786357818219646711232066552164354046748606343019238330303067671196796548883157558762664500862204951972194382962249036650738696407497789594327937361590072494589572879047982119355151940465217013533332003334647603200416846218689698709865655971705422091208517742609799407861806725199969746414454981985859629090998082101872477719336742080048529489712199423230550199947942602380496133757229652336022291240877897413506047234585703794159118617025692438454240681297238569619515633234523742806693543819652984605380183666802475218885418098619817213001556810502786667748514798661707669093095741246213732302335716367462725772572417515689917314713022275504569652197348026652076096733577515011863847887076130161437173611858628432051026501583543554829558160426302545330542271544698912377432712890952675399653990945393710532898741877969302813880976135295301837859228318861023079905483112684326120519577255284565543348895795051026279065054808881727390670335855966168055567684006652349969875373918644895841249140243768329645006611973690542336648342931779249243008357739948799216317250415917156743682898790254160060132346765686585027479359132502519261805471832298346077777267954453571887748197651888505109740298615516241042964795923106752889222922715344848477616260008006623184453302015098559072815717700836502212504082406130926812196200208858675969548331485181950163121282515792349568757257476547526858660453604535155268874665451671545432248867901875251794761763960464621510940708806663582205068246916781252653741746454875292386686960560326070051787156943092147492482322181635287674328196801927397802589528047981112923056798881394478779560067237915516632595535512505309893404381489300945920098380177652221427888631479456714363820937786936531259951650784511057956719117076535691699921898209467598460379136937306053275422667164937882529405194519542804812601371156366177380033862829929805796177582292641584638466531957710105758341620033312777468089144048546303058515260524535183246783742965501445693565002741757374603034578671043783965145279906542086010575285359949190732229463699880662834486428782859794564001188983888763201992042200072813712928757768305387073074927325715144628949686672300341125110398253799613243205410403364930712148902974238999409378488360903682252347991638327912818701794696565340655399867354977376404882340272862039639496872092192831454080870180278097220725886560468337929998667418727590037822172698201809834919683885895528597291025858048562402515191044380876810550953975388082357156034629874474716569778095144279334346544039875393535217724851839981436051605547606158057416069334705281305052639541330774167742871070349149308592655865282889962118285257796442878080851076217213796865314000938627098149206513323384461628202988374075340902138022896694242720262666412248927894712554821428303940887596297819455231337813275564030241610169004739914199716903801249273613940771474163534837624445559381492108500467921919096380791075011837815238546298886784268604362680992681931704859387908157449113521293717935364689453351824620264297226892376252384976830761616744383879287074770101553274585234720702150315436221923241141268087286129775430781466682046272136754431525719873072046941498312850811153114598046035346865466150195547981622184182647446687007789588420308101636222595938372928054158896874062187021548246012436166463427330652636671810564210020441357660974025762912431174381182122185706804558877348787795511273486307367052684874448811882497204520883741891458482020554992571515722002984181944025416461367359973194051891140039029259488360605805341999895910759698644907631237123368420425902443013364250910403765710380874166724670534113075802053135550418800586731303455013786236175178289837273240229061901321150089536444571510963297128452789212139864763149672216433183845888761925348031908882574132404621837797505557691279457170202861253816974789782844975273697568089415622514833951436716040276293811736964917715741882778464707714494669023828529445744872496902772830631125605269544274864400478093308087857531300837275934288870538352889287394370253003888214770779496854263643667239123096268251165243268520720696695405907551757426659386461368396822810878958476540053185972222149646422619204028090490469549516480462275495982122811592666835600853409728583595780961777912818231445834684154967864811478269129645314033063020917325616225947054031758457499102672530663377072478661354131702403136629668736367783093680952939057655046033585637833637010774783799955745990995650346718257671965375917361119756230031708345171248721695213426269512106598921761166238196208339363717215684204628049686527763732285264089070880004911298075209610851761276339526023134860277333879071738387672446656885523479991451332841713053518314030061731936013713413409671500576810558446980980533761398333655879590821290232939511690894276318121490476780669912902773749771489132846509411025515519611413089525090363564164724626677105762038924672679056070176211147914584791938742616882922767152022160069986125953837683493946485623767036528518897244690403996206114494495811846241068964143304476738038497312072254210542548395829766032702402437486918804823109911175161116328269285953394145910202424040716245868584653589708354308079624068291615717990719401068734041894024203342499189033201901919279015966963448951803895965168505376776097545664662899844881728917475005168241902297930333613955324353317159752899824917812796531906539662057810359179809560290450328312814830800235638271964401286079201039327780376424910004912146647342919924669248064105545939134416919054299600143299299615754105849650682455865629785352264113271499307327363156701906365771343794633525986312509276351407165043695780516374992579333613649138637662037438664256319880263581136879132412566935570456738793890813067468328903786898909458824756938797692392181250722021592646470273952377510533541627019247505601032784401806296001288124124889546801192242759346014419248357786513770364443774878900684502707877043509051313971252137590881028464189482296622017860508559413651908959874363921026922036362983731068042998971928422262823033248358532086261272589560153872561595590749682127822429457853445290393814578228706463984219600319943685963137072288184139660687993281466729336550709998400700434579534531409403386593374424668204295455646920004556025668564989240155926737422812500543162998948160876697313330692478442403532085013861753281787374426298137116502287220103253438137411939256235203966133662566074199241961816468271094488543112450656904501268830659738408361283094352123086249627565262211691075955131128763895668009399892040331404272421672596678588652810608135390151860658200962473515314392384302489527262295259302742208769608947112346971161400323254717976255548906361685541192506556975717166294510019899031814651736009636652484501026324160774276997132524912206030656913013689701108998669745875212825951284214408868256972786972346302071840519219297593036168032179378927388268665035382452163343329365693548509460390255563944799354273531226037590850229341072673490315127841608350874629405999147545076560339601319311118724264725832424242094101350077778519173037684825646225329451075094532123447617811261622491683533533896255504278990177966245289409893537441736625459816406515955521735103210389705844304823118763790243520393719447299952145693817651445452664433402946844043374296355933964048428575471869821930964586352595664223487399647359120854112155906044006928423304769052021598441475002968330010371881123219281014434096404044029172337729551833502462623619110113506820595079491962437508408364481838025505863006930561053775477575037783745978984196456850482385368491024942764253315953795041597527715712047246217311947021504148242805450528393793972225923296993895488105878365077833464510702490134977509289938335324978396810840859272097420177183801062936576880032869945982966925518389067311018799321772056560561776505152096244124194239526060878504426213113284895681129570164849986135800624012216548935625707322856548365035262133834725152634068681002192787425379631117717316250112997890550037228087473761590242347410360012866942788357813021114632455125697040415609311079374334096287417968290506653916767864986208037807067250261483344441960549863537309563337186311491633198621224767564038019585086909750824636628881709402007589654442057902198286674696550983484280183330213872901080879746123859984189139615782858766000255244012858678142240673804887369731283105244748457498652951359396282880788326314716204059672213410455494971722629121504335773604249008333210414518598296550997719522809756357434711418006882246634100528276590099063723396549390272052699428834380595602520691466581805630853656943094360664371863692625993046829496355678950929514184349473648916294391727647331753975605285098784907799280845289808175316853265393754211772438393970910041568980169786210595630626525553199247630096631588303462695964125744956368705489567516604926448336765756222118484764067777306575742077326639719042960835913995579153176553157332599331558972843997522305313729792556652250294992301076312249254448896180202845164833477583879441495957754437319847197737344853222352304729773521563700373416002339204549280618233598974045799098587529879764606242758949196875984386309922117260860544106982604928574762977724246799578752087850576624145592282461485624532768069679958820256240351737421367181969531270210451561172387955326882678769440415777889348130362643766789854324054966421702504815400708256703527819498460334353671480003939955421408596494940896073403653993658038189350984664505205114776497206741862239665607245531443740295778271109097933228307747816902458878769767652482298373695615191853407222294765236523611703031316225462615369352409925435227506416057220848403316527399422898197843891610876251151075886949212122901575680296064341681238103632585723070800256184938246555618049041110882770841808103128209641667775065296920696282843765854328044097492242765466590879236455540517192501475893796113246485123924999478544926156224251234737753442334245260632522466523694468074753286636533587953114161250311597286059179212271406086966332307266589658753882540650630301659907153176492608877811298551473770143006391833793534467939599701051456139265477928441803625821377306950075671758657268081880760554368788812390670991864888144015399021869588184815765524554512734509233968430248187888569863603605103638223857375243934467817268393141995885610574235113981542180486079938339133676293788341423716218554539701311766172369527679369241074541511428304235345433640878260203986922632371205733472666381978417794751312647157137621992821284098738354477928032463802229493493393948288246376301377179402569250168690792240500823798250225758986193619498585801025372226970784232312808606282301675183374323764255493681519854685203433724014042367064022674541822678970529544416426566809433674538041432963765259520138701505954313338115140448355525959082268208791329077976616979167158323556921265200754986514167969440529191685359017573306643595975459112705593062461472021203132959826844855753262016299171431397628707067553332521452313839941222991657267657580592307807672844397490903310513309454896629297861029198108721924378133078868431467270083584197270181200842641556953142840428944561334244636894947114825875566961509884844256355105080775241446922095327934804622931602675952574530143994613437651670846156403244849084883165505356151766177018161575166627269594717567122456179387174896799114544438870322312661924355043916495109579983419791963938069153460133927286199464192303021966583282365844105586094436848056439896762194149399302535297008152017863124249381742519728466995543923688216563993378801106861459432366816756651955308710584909552120378868810812078367886599908178121472084725198755728792714894364614538656251356606332968926305946397265773979126703069071313418922981559270901708008506902179991156848110971994361953927816512041481607576554627811055495227582196588629323072225950845890427104855061960994734695485437201588388899162179908138178115881403122504338451198457850794202317695841992953737642166162667320301325850947975526610876702918838008649143944346619804065585574482176544786451563612338232229454497652456768834169486885871308048453185292019753293357392539835906556290073116896472721443717189883129487265234221890007639626121468577101340639491915644007881648590342679506579164450518712046935036259899209455909127699404482244959953586924047658575867056332622470839126651712116870803971028672800045024581530383739142795397134924749426574322812481361143610566939098126309027556520787447826959558303088604549135542053247916923443865159938530798634896111875320981559455004510742059044615863903505898294093699291406308107571442752582068444793361370715510106013504893546945332044236053186227532860409577988470493492851473164493309543301882155817280555464887719733670008385190963993640388803107570456498299944071607449402915026566839606864178259996663251908239107680971286988225487162971058760025920875682504640298654476162748531093806270900776100959030578668584502317108337845801103882160076154841215789365530849709971466094037158136968614701702523763449256746222591490630431445011647347404498929623130492446812545517562502973920576937770707019307202584808444906159043208557755786646937574812967028801192312813668794529782665366159783328495756725158676220832388900291937455520792833456835805995398340166088740408277440553086565394517415910751970089754534315913949028426577242411916204384024366380390830964834433234347199817920609806895267163379888293583407474620450141067164839194124139479121644477395409251919377283002603679840118110288371849499402240418500921182929733578396938117974548616451456450228259247972450820343251061857134152615547434241157873308012619556766496686567151879884558680162692342378219038399304630552610802255357629018459717372213332486052651987453254438997938599528903846890163969859269437767931138921744249830727651288205286128048495816974637375745466636379415307004905854736844593737254201745947874948780818344347409957620916114540991171604209737998375643880930502422783862494394874280530055638307179337846590549462008381405734942294079043495760289096989897047014379080487948547083735444461029815056449694641072951407275835811833661555340101934503701178914453589942427153342872467825604734284396526953319772291724037189963549024047147398414726404724929748530195642624095001387481522109752211038214507402980295594510118478862245888465651979680479902247134348354113322833429583880016968410535373692630896737342639975620768425908267565563603418047307181593460080840703271419539736878779553667449059249438975558606330196987436157065015347331610600264345445490193153711709511262026297047441763841124328372553678807282508892519467715605443874219574641478575522329165767719328690507843979450267067923233668520982961841515303970877142896674664673081005772347096355426768347971333382385736158493617629328638268153056534982515343678487390730652215911564113944709179734294802463085445647272777602708885179792892602901551523743881503865469995065122193471036024756302193976774917519822958448216960620383258013328591890990997976816908581732093468125173340902099306009021303792675947623700722817996072325462790419077900298515718672653695173711655428362156151729301506600750687015917021091706610204885283896763228934309693329287861535114968507092620399532492659409086663511798793464345236886164264010290877251482726696744256787575467518435877736050857506533951290060916594537590217413153726340474721121510575741876187351835115425385475691985376026575003558174275346094500618686422797958483631160885654674324169136914403272529111379146826525204863322187754204682147292221178794672475211057745206496506357750246170658220723089681180797387222181694457811314644314707099094357001620784801581031121538269256259326385386905917202289118861418606040792602282905175665025402654213437158129146812251899327006513175384286376819100852965490266455810827349104206165793157920453539954520285163347253799886559591971502043348751783048668314516622386410339589759697639703788728864034019174953422759991556684996268213153669859260762259337191844382328151688720267140118876093479765412996675282796683321300430617044399556470437648564668617813073161498590508855511952217574014916390648270438331151340548664004149512073012946794835593537568873052702848053320952142944045487518214837040276019879170788512700968206208167479394579359829743243864493739760361509403874101814579119643469134588747459185181952579254963173092334697915662237515346196150770902286208414724278389441509561509581794543257544119543687551475786864682386310358647259948892362166597855063069244704836499071578335603339044459048286524970739225432458248268140220863598909676632138135951277133138639325080777885062940624754017162426535500579117548487220898366739927218378748882029481114723064363301512106906969754506056400268371811071786774013108390571117260476926224067131674081093732015522920002134450301134349308403749300653196132634445208349949917045470837410475459907557235457348741940609205995771831103429958350099258747847622823941506547803718989446844361534029575262897960950931016440318219915597723062388629422239907984744796115977771069390386297427730715362504531806368676125640240503870065161965797690347192866869216785888413314435154778443386211922134026232558648441832566660808030902759161979824531728187872969488506599215535972457362749344998515825516854852565339199122690886611845172469142070163022793405938140304566788390840727458639500934507820611913198321929125944235117760817062170923211010877354519259894594142459498732846314168645851183233161261804029435004738961152972623162042271888303228267475443749516431567380278435442017864048624999797650199931746485884191629466142177526926997640987899484629607987898532328305304748322269355166315915410192839697924264922431620500911554453286931870329286483989121324231811431931387277703717069229113598962369776166486766309893655024823683109440987951211988909706944932158103250668675680107771130043663479651878350088989531360054321741870441393944356056224695050354321173593346201449534739902577993895332097516919254970472650915375837514785609647960568841771572636317145709019148788376911317747250582680424288301598827973438272414333553566915743592207126425192542817986755462391097304102062779243375716241719858093021627588725927284521161693122843316001051535817036429370597908063564494332797004454270291259190759512226091514721883455541887731737308160666069861042319259949990686489178746757709643534524908499923543621986909192850658810802653131960226642674036297428291009043545917476539003977649274265572031191530754356122121453836642490106419992240566155194889019079728132278448317558153231349178016099824617468412641879642727032606055043529559378043957152557923132673350835183037574698127565751614462959336986708304877117344856514479048816092917103483512881117771031748593433248812935731669187303319896736762462577095295787720082717420645105973158251394794819257087732323402705741741162326932343333344056173315233775814062768479766424763604078225599122274100234495828402789675649220786004038498230797470218392894640284694793708767128161719930478827842299474004222216921744719945515884314397468372283318316538521537016592043841942400578395038318082570126286952477984033766514001335685355033339912580825436281900850450439116585998201195488611635665150761141405234501871557667444208486843264065781804620952518912672408782354805790007296103783826288310563829771247299559260828389259463215941189801705586930682525783609072322311164243305331524193899734914417478976132007417738534053382189738258895879190469103692613222692965590685334138544113924458331888515163039807938283550890163672381094040549941790261792966462192263139169598357514215723266236646009977102746330904612583720397029443996911226707404973868920121269116132510063760496302397753472936582165136896214084392276280447998939818433308527542491138876830908964907565619289072922905318118814691908260052060047332972387597927406998307683255302241792939779682040654055967711531837475037513060819562598995906798509634752495247390044189693768474370716402869278534686963170948791385647320848830800838584060457731328353385457714474809628335350336617341405278258319848178499914823543958894431650871728614856077414804195993065256258604030063394991842005744411923784480724768019485821469948857234123298320099717351639751547057872829861588570194752400389785659794763896733911448269585715183358812956647950214388091731148610972695697873148021185795525767752907408801047345294261207801600269550977759578696836825892652593530369584561964449279449837237803307500388148211608151609530418206527058832074872619180833337986561246146955868995733248960780022576454857087802609782421333046122831284222172055522009500120180556639333968522327391357941049724880068214921206328554699359243729193838730813181094020587020246373788008120933897640714904441733126265537885767230106325963626210954951800775111691571690134649040594913234737107031466426079420406465972572024493467886604771926631422869271860621112460805118398489762520103159971390868006429625373886518925890651515322052485225783974650391251780738194326891639108987428359293943198672341390448150793230757186765513837006702146891867678914383699705203025086488067258775458657182639202825669535631811441071330427280062260644904720985969082902494553856854654403943620368548249521554831337614830847969017195550907944500710110835078053483795517836725018837710658126588992851448254517223269570458779026253444651954797546519535553134691200062881630191163480546564642939927857756762775885680108531948935013606980317730176612479547999211295989057237888699327942608277285685108881291411666528204716828498607014361256838212482916181941563010615212204379567132863944497572231222337454024220014354933585367707496048937252887209806569197384764506883352477674454008335746622534385422052770054019448931078070567547961934603308670213259336978237392952962947577142634613925285219382197512150696339545845623675371765770482499980076570771364627701313964064370372531461956156141447613409767993309803305580787776491157804309973598684636630692236066507826794349377547392028602373986868758532946205887368884098340585108513182493348220620084879575587347891269749242735557948405677225656444020717137397967512923426786598270795381115733065013828361092856756393596389212276544095508271026604002443223334285137057598468842720610338143319516685054434649681218201845276380427374786274348374404321084783069935421723781491801273040075132051336589897382273817607481260213062224638419791610998896233301291541435124159101819147524039863757984854119493440976218795793895405299387023931571882841230590309985602030097979934852281566304424740857127413079148935612611452932422430649065068330124124565923823458730599620313543365105328152321814251868201345445197384263161332888293471201828218763351493608938263455371182909690061470339968466810436930911524149147765374167783834702757667822314848722343405512912937265099501713620873532256647168096068571398158457749440684570552507899169262400935793405654090024777623165722502902653584475139799666661564516363013917278567569449467931769240000195788490889981871052363736460785803609939027484993780557669277464046245306452371452585746270626983417254249392934995055395978535383877862942664437951637302338722682280453192252219865126695665375799404370976734850381575001965353975883449944938244572138722752173822880411711529323660506930902455621422878544947212714911487074304829963556123256908701820991640359938036409055777535500010755136354371763253842356934538675019198226236320610950058654793440315281030293129754513624933999221061438146528622537935331039780601893715321167265760763879068913284882730466166861581141446982852957028507097555168277975427514890195408527250536256197505115136474332538672708039364282866998029303294613548817474754009936111874810960524977635471450319346409231155501756452032090002554096314061298244640382265958152444520081787993937594994069526053460540390510303305555472325424869164031646090498748208982922517005393800136850500979172739418055444550768609370468641817867382155599521978415691618621359881412548321101299684132107237710811969103356837251263685204633823663083448406589532140252827455671674599612277522728101871379848844707773825597411951313662970478289234172637895547790564233489860856282736144303955990092853742655998934175851727803430744003707170036288355697365356341034339835772436063704207676524276721932520745069202539304863958615534076262622791694302343506029550944067933672854982874024756468962434550782954845613213790528548699269200011303111596442866143390980687913797959996909811202613808273853882663364128648300646338746149657597428594566884490684322199709504914626768293726944648539992620616942873954380808210933796455606756347351312879300666517804039904817729671346974732544343391512123452654787811011669163315015327553625057486884196718361531737207949790113823825522648793755849299292467213228993898513541390080036205102404622362333451015563102529594092456365106014950588256609901401908917746747234823919817284166520848724065634639328957184926876394602319390662376513653226640288801765265196501142045160702962972222130917140479544845219944318436773639738071084714073568642754857071611152736870332173294405623633878088859771089589867956761689162025264032475974434768381250112653034613663604241440952605464663842748116977523462509420065490489312587955012274104442968632309185573931580010418447874649132756517281584915821011849685611036868505577066688841468575902481189797021173954132994861949328825835502587447624875554987449912129938119522484798292453839841608484661714491796631444638959279252462419870161628477985160440895552934900737403650592038596697852507862678886057327037776402565557088722021826922808575479702158946374111266312189984672896077275818994522996655615923021935959083227175421817022902472429651899901591889741925548868041499399743097295243833274146234814183151993512190460240605192131125828861275094452210524987940636710849982907530342610964898424357302678676945501226368330255663201075077545937432996254704378978544558188635227286163303088417276805974205851228761693795506627236933955214439341694885186662151864841269212573816670842413075631848791674249107745527373645850785312155490021361739591248083845475924908777957385928725974115625902215843547655958046041380543496930323892801527111265392305418952749116802346289663290667022882830112944927469933487303954524623480085586633027704474487298229741992915443071951547913937073752249381413533397470941295242955372338904505936828171528109077658827978706212824653392965889587337013126254293526493910409309175900982817829416690722065177610472472000464785289726963089632214480167743617101211275018765801625907220088383172813812395649249539525459109159349385710621291551770149775872548275271334043247472403092245402587627996703240560566226550301223962630027055063587739437414596027741196467974343318360004624561198630438921581394634366416306713025868794913898855676318179455012059251044902398985811158049082854728936190555204660428464990145555238909311546505393131677206878463808735696428098162754560986544748197944483411832537931446496788818843139041229421233844290971525042955130063351205807081537290530049419753123696757647237137634279094274604018913046431014248831582453890975677737245984253149838004344564366358824586646174953121412750312210335767241133575760587734247067625940973812396091669939765008043316640723425189156343838136844976021455489057125499191518808615510848036876399643690264438588644995360715957023918633290881389426214245251465781832467262049918768110412605635338588620894176537598401766826616590074338882092183076784826482568709712883018688432900025332671782629329597314379713546034980162448096022925512407658637065445988510269251393545628515780887894791376084535307116714708264109930202905971151073729997768113942250550195933402732120177842446315283720726663178159329948864899298661535388215709472438409712823305811139697888912527007665060557733123386798622842957639719869367774822462998424476776537999601078316188921043423679750251717445268051558496146427774069605066636974720524695824334385985452373756719558162457669161080239080885601264934875090648185380157173025609877536867239831920866875423946006609661360952986383438315368258712489676593213639959548369110928591089487948411448462800825532102841307667364151678870241944762118771865844249120027899449208444136693200943588110123723905736225970153689417681976814846155718841224340295717438073826781590818913547185467560372675035540448948372409462940113128549916806796570957891186280412614447589208187594569591261909536796253907095132178016903021795919619250984670014820932358936075303476126781915701518236567438636992341471811073845671306158879796101451145853296983823551921418657152355579621837221450092538426206429530710003373466373500554073499880889514767943792362476358873313905633859724481993138506625610865356507194537938055015875990990764093365279594412428494279831521600783822287865117975967404174216412240646796842683204316868651147033337918873938933314405367973024348182513620914558953315241991233452724058387134910979409397367932943259886099367705619693255685953814068022587832379832421323810348616211692451502860171826995428933319133823696480300569534538601953406421950585545361520995395498665794022981355565584580483395182094183106382789424545053684768645338959659389591867441876351871655406289413083199531224683994816748834016750939661688392258563053643422087375206610790215667805031023330469754797830952251508817674607737173610689093875955917506212267164953820637176514425131910561722497320669960015282171360564214154207659866729291336823312973222965536284040550699114206064441903535899641084315306466643487597517575772474603259350030900586967559100831589695729266848584072076877046794972159624441448521703485592118755174448684304410410517135495082572873336827518554777991013816248929273078622616024611874009830055699312453582480790243984371544411772574274789945912446398124501386707279958824305913515913946936549220829780989596238512865601288165472033699316872298803146891291338352848314217074453226078519559151168975927055802949147963961847459018934874087220768876959735224715465430871668539043760364028210527682672486182859935971762802568427367921330238243421651868126569725447968706423759340917068856475355187381923055917954566018929923185441755031130163369747695889021491357978854447351306810827958812577460960195090852134082821414998877724399842364157732096485501435283079270193814359300547283675408184396829404189044705313272099801500333366366554292545176532485510484832868495898558460097898075056398421739778389142073750494635046834185362087572169706454116590535276164344036487538256482672279929797259514574716490228557708452667688919834655320789388120920593221405264519332401083584741880815888247553597183477446646098601057937261541650228201603236580874176159664970780768862095537247361623947176699377066818803918627504233620388555534437034291992228495519686816268142981444150001234893753816174280935644610856642288888947901243010876799382980824876615263778415884558305639139046919482453037001914128885191056718047647749960577732015480687179621224992041118998833864473528060220809459556673868076213954778606527859771348418416135667429205709898692927376095453439947981944073836777808071966655186480877468858725618290598698376087902673547706443983669821016082736367485624625530234651645280842827582450841626062630399970681269822727939883113252863934862750531671225916556068166265264661757270329935564296062219893180622450179042174015068118559362763493957809463411936139640195823652302748224527667110866969241614965807415666406593051372688100008053874386318844822364867655811793557862454548594256924812170704491472522827413758426599591763628181019295270297038253197770557969276665507493931990070732348167195698246880457766483634325879382499809754038387592203395838154307823002814489497444694529417542638566754951474414260880210655103501231445024598358091125425233225319253505852362056758117982716986951901184269969153705850005388599408433675548646818017283532816062996687376617745713757019232876320155586706443385562583899626178690157080115715221680458146900363902539017045389438707079648169040716036673968616483200473866532334980462611678991804577560626472689403808046681109179151708018889373689620104936240124461769664852547364659624448350746956150749583028566496019090186946672855448100812557346963605074725947119904387804615647093587606074386976370606148998020689547184322128981105109053786611010678841730537226827214467769900347942435391566665502468937411818502985557319264063467478938609215393100287440571531077245400420267214574044792585227192359354937657035084991030581727734695746430259006685594255780510441096589261823489751604618966399334131216054744742792844121431109825404041521495689893018858239525026341097205040845852411664144656740009741368002577114892794091651412930796566523128473254121872857570234939587785072349917661730229440309174264566912040418489871205476078832603725419668741295069200677540426853007451174501963637152549387764077148044846169472051164955646353985745087513449310848727263677318894721010863404092869661743896836210953652909117882387887744254141084887686377308380802867591209133956586766302906263897376173370636393231786488668646843893783037588958025769341485993883671555520891645425068730797597100167467136673745936504286290595263771436315467580237184170013638444174362500826158467924808848554162651271454357201103115415619939535235990125137677486668185045437401398231698462893396777480046850768984883813886676783658399504132749187824363980556414297816124336594587763723835744905263968716735934798056324376605447188102128463638548831917966212678836889632247873629979350016713157669332846481112228294098122652125116509966575636086250913716159962018343097041085822601156155569592356197345231553789751899836662095510354668410443443684907326865741692152911751219365875732097082734943143613667125145637031998929408889636420628128314073942270516181231764842533370135429469431766066679292918693874171642081083907085265208720694368866625816666087535570274359202697086079534270733053415627508614578521166789627439308964897165644500460850393062559193196733568099493864013964502213278824352770370140286377471899711339157948757013654955524326711691063527620619714192188842268866297625576124652167919644336276099290940119716040236741816943101392650896169360031194904208005332540980718495246159487418063821260275889187995777517373099574828751435618060694280430187897258153996446790357441030962263565417041553421767209630612130482304459403471166128041348258092724799392343358885492986326034718468528291128950455164834251400119613177506608010562048466836964476136431969868180502860007822894180466497913616106631817422914966074849307899542833754204760711714594372615175844807446337059331206563367370251313611710981956170630830658598276133182158330374820983215149854200902392842749436724483466576505799636008592677144495738548969232342055447799298554146844893184437722720822655210576530886306915062430049556000330566976887050299056668158727795955621845316420065112887704298237354366107371396299137246819777927122855784143605954959526616980122013221271079604230977783800806673470394879247015177321454589283472512465205371189817266168861898514593407175098860963304212511365457540192975590119553384086296069364709011830110782085930463535936157655119534519914518654391735334184836975286972068000074219791703057022646258478615602324814319322442328382137449997645565439759893911256706616659541766876522487724995335992973197268543211039059927782250332820443639510131116085871315333218426592767932494131853652583619562166226347751751356620633132126543949568744111607342569052109850817435447782572452851534424985374237140910508556553425786358113198155692616023898207211879285834958145558329964210808264718045840971971702795055140262415462303867269908729059459798382226902012676648251438602606178396031758607207993429531972087994660868084721088829095605272971791986966893401066001782130018901844656559278650776746934334540632739116601935409225052590520277496879464355062816783232108170766393405429480848421939224307964546714207988272142852357378276713514101710203972198721576753946431321823758042043846852259039641247516950409804404288763534875489677635793137200732534389500023851588502583586211458279570281652092412896601557969947071056992239049136227799494852182574628655857911127342320472674184551874028906016642409627127794180962991565539613653851958651289495593190319970800898247962568793528700062129838806333377438947783916215921247124173002215913748872577430566508584020507359358376883767933906806786219514823413978171935322396562478954065296921035031167893486868267548290053196109249614911121572386815013428207036234945702656328043525352350976548184022038894008517159842272648976973574131624782291823308909121638094790383545602841677998584337333574289413378255260943215291232313139424741034131368489902414320118468070576218545657826614048471410941620119832766086504575907016352499553086727817742811422627546289030790499688658148483099801277359548695862971904942607365964628011636698464001649489323702708786456653229786246047677467992109200536289464396707805651896932185067613474449034506472659566148541561725807858767962927118019811831283743057698433541087231592370247637591114633427988881837201871265399011042399185112965974767115026076216600856645018862855705188302258856666944893802128487631856024459633981956432255861424290556146628694383076541097494648015643894284677411275941912818142893190883124093534792953017935874888269948831634957951675427637093392483699370254835353503183711091135773855656296333558384345076477515381608398021724346837641010614868645962705124830789534252776093079221678097200724357854962136257853216684502938966888667860217536639596906423651907383818278044169863108959681493007579453739894622032212581247625003657846889577086347861624655777291733601965032366560506653219539691450192152459355086890930609489961585584043483693901166217131843541616988999071085959943634013925589686592429586776845779344527358235632440823938305825040087190289618341654757799216386596092654233417206886060206978154638694636868231187274302300861814123174240916457128639347646372673349366250896522872024591441281968173230797958538326151679543779944978658658778076681353347667675528839561594078570495064560719039167793176294996845762264753223326479958157570949781999796459892287595614474289410302773539028171233608364263154407697625720512108670885209920572994196644084383503008973657826969725770917907599291028873934807123733287828349429852543612319585121985342335526500621412978675805009563546419523265486376167447433700222785197864744246532778237113200877976422637765983995132920830236148831795259776180016856321240254045103395213195111705802760420414242112752611024162957916445117473852158036766128729833473656036960554415547336235075884211743781627986415345672164592891907008887132258484932835071396381510341775992515333384605194697311218051825034385350706279382296473505761711085946445487823777653677307645212984128136974040257707073868214126587785965803507627938827788880478122134244120793671147675541939654366936437552698368054396609291765542505001509941996835521916727836268314342664446505828707318760633679989589144805895045840519274514498831973130739865906086549980980191973395821778699006037515911975101486470749986700746579648978296517677478509725171089712363112684649710975771203639783930893429976212403506081614278384537292888440769273063037133704747163721356887073751332437248730854605602895548268692412873253785379724805263182058918845235735906795070660437962489365516742100556390420369909195291590173581902360659260265811538173421010705084829001587685582671559232957180676328175005623347778790844045364197886144733855860503169903273463435335347719712241721135818110246504772237861644008224203715179329000157565512781942838641288559673325607576980113241070056369968491915616658722852570721024765217865984062832672460470253836004928696687278852126722760063488129843663835760780844197713360888583270120683697034768308886607297110689107329123745538998823934478384212950536742638169136321419339837288083283080650402851547735714638461648213672318287573375639034396114565446913636260910412483626610103931286745090362334260950101229701850741338064245915059829872757393954530291991371913173806416158352999049300146183086198388462240781026378507679651126694649311657745832976515817128761422137370193278501915416617199574629192107179235912348464181519859219826245822863172761128022308605887779434389504646476228871209339342439774727330868304786460424864746829843115140430638321471217058427800933443311645083240442081543755172509543245960527904140037653970004393994299976846332208628385920091322207647735500812359313546389822673716550027751552076284701132186156038584659863659384255620538586555905060696114382817900471050724456646886073132978953474789028593389816326651672711530451027274810658510682199167460158561555251981621592963862637824469421938563961208535473581762595046184130918522981302531091898156642496735034188961919304052218118626596849809483159027312842541498434786642021694154574691315940997261077881783821305682821647586691757097747062883472513514915890936063088863011432037773262673334373723245132231482991341639662183564104022700526778481328559840765024215946635502642812192414248607380703765815272086491631550419116638081999195309291517377748859881367532784268323397942272765182010174532450217718933928954262231022796026360340094504544171576224877837628124790000465974245598912447398406190431311013648790916777941098248244027804565965727266212564665722245490966926267844230387584571528558991508624847529834487161568026010693731523746595343778632726470885483421889067607624626380663325281272890617035301416950661169728055917233004064870805738277129463562584540079889731069553016155815382472200416238763359354685024998030635258196068965529451575026786701198040682324705853004638268488538617015137132272545137363418396115118463623297931194236768091154727120756485992031730332859857414295079264602406804182990033261517726278756793129800180069204245244233546776174583565386059150172637098318643687323663746601843150421457293186763370659173295251185046580739341028741271370170372520702759332638964758920396207623469486951679054429976596981170354077072754780945567477888435882801722306326266382295751474705425356289624684286250381783765837963810085434727102859788217425020724047017854692376807369101556859591494290121480059865433828326542646106534841132169419190189242822043627042533270219518125247332582329255352546616495662392982212060996986729069931734337103870795898021404228181927697003522639088377672718494900219806742279110458641628284963441714673984140750837259891230656440308539890597340970432689268080139799076867010169943925051000814532478775646002408595356292454758024423759455454508382820134701544069976412905094342121943903348517018616614813943503507900616411927549564344294137724561761012570056001426386245432475260812425248431114557347874576407485755206917610406730991054709228846001630370421905273000778091425900367338472475222944612648950290013205756386719579986490415861149260189194542047233694316729817950898564163833518066394703200777975910272481826756828033516035454050426358707648938439052679108576735812265334032077268471238112854645649095515188152692810334874093787512889822623011410913869187061727509140888213114156436612755854837741522752256400757632679761914689741538000049238193198783883632479346390876244743305315703158511139264002185108807250355195423548227142522614918791436523995046359011697110582414416533579792296110282619560316453259533727797239007330983208945464151726415640524642733447509735418455255017276010623700574375109875102136878859484462412974777986360941367816437289219661327982339582532712719233192532917302563398734593408954923197156317143006772196039773370321514216297620646750650021119793794065855472863844822312750895359108511722993610723862167247453181351475847068422342231581167840938503561463783144160937032262692032995267630423191344687057000407082880161885681587245891021044160522567010763428372774185350769003006782527079040686284832204033849673364093101938094964690862083174653286241562223428906170696640031945404012223610475438239979912587060082069346271013444234050235794171181041228069682909815280061528933530504304499596337387684902785821657699027218735993985729776351891887824179137755804832670044534344116344504676782714275356799311498117548402943786169875409576215645864553347423998421977315753850405404974322354874241120533210148738917608905130975656264678451971203058895750778381220859852620252819358578048309814743188155236354614820057305008097956529953401922405261680940771650402268445232770286504426067273923954969579417922180957423690834442996627128518284183042631871652528707949774788210147717371580495440448265564426745021212251254715965589986635328987874089832897035153791233826237721806781221683072506665757935439958227595324166110087352645525856196112458911561043557895710820119009398524610144239410618633002643110475843072552169723926011912504501585957411191369130858435710715916596343992661186907135295377958948695185345823802531131191852004696647726907002789008765379696524656567352388677795979356114698905883798762631157143895775308966254252413900623306549505807162570746607476864029110519490164440179618408689559994831395595568803665981639134292462722174758240147973773848517710798355295125705059622256095899009827881249400444746860725950002792464394477815654628697251118080748422401113113663324433464077641254563034227487495169765336754689417278272855807399085765590569681744856161048949144321147661096680093373596329752137133207735881117432963932310867535059484174504004172854908552204624888506300962469114088675132971020641509871701087693534396818319270203108495778549971071572587598613185971825204784716606320005150648283298831263615667644694555599648338914998167978015627580279993314093094312710226157038348494357517804212687369430797530308487403992048115246808522156908611733365205085140849593485936527123187327528012499508246052792733843033337274409757037338255326614418942130800925935244347395894007836275296971108670589924564516163427403431364798553886948629616906986586800562535264752855836006876663196966611420016287763722012834222166204247651675002923888041884735837254963938290829583205848317255801498146391206008909518651877402033883162307904511406828670317589706581089401808377288811907474179007758692369797284284178121379885423661899170400244636726414526565406892106797320573793161136831103580432536972518606659357830455820842547533350041401309469371635994981793092567842305965136187234251129103228844407980101189152378083223275522245232922728555641065886779567370596358437792398036760447191517405003308964664745231554717607435617837356050273243505679458901038590428845981620087771349898283244203329570857757825593236218163277368610144275100098482662301718355323770706575380765289746956340391408868452344595325144943658723844865583114289516326777771533772630898971542410270189463891727597072259092832479354206911152559990785336537102024403041292737768195042541224800760050473661394005223547454936917977825759301923042056173323699699523987299717025530807904814458445373308823105921982517719076349436592414688303370712957981137477551105601902348699805709024330840107336828680038984863781961180102779125578736072425475217841251500499406748608822645565418975539456750805718451304706172728771584275172864634565926198205509326602015837065832514086957363544565341626773989224399544599100876677390164263617403932198156915907525458651395113552441182719462265123327851010285805805221455577629410624316192097816417208124380294938851468596216956081914649582580097269206975648750050077035143714143303282518498640327944412925638722842480140574833614197639937313224865672579671599466697448420532473700583236336374589272408623257688824752486557043728031174448135117931073911214907488050972529574604676971628828897449809345877859182681791454525004257930309436385339594214277829479170610341096279664837654860304305378652751874388054128447224830371344567786790842590643441701962596483063667059664605180323795189530493104256312558074405489246927458056112367326179684976225094593515673017677906732442959179592031582685266963799416691212781954621722382892739127621772260970301559723216716532965748893777086977020520119215743504222250001108361918890827786077124889726077663425425526828533624184005207203050642301707118195822487905838921826963772496387523793904648644039773817587057940941444161922912680719842841238484236771258706152570128243825163428220327813031650753929479934517681245488615390417327221610579937596700484168842374263619760517756989087334449417880205315861343148138418358288709932479966340082976510091074165057258843128566196912376384848919007751363349774877934451265978959109430269930747756072325346639188913560730315470528993143197356434415487716856128931762574657349314867695641946430536920136774796364480498343857220084328568726229582343017378144444013330415810270564670805792868549152394076837085357247319317440704781890238075786905263404393770976188250202070465654562390304753305349103429639837287875347995295660433463297863678184731566738419335659982354979974361484086856534073706553874206463178875987030075537901260708257340065831697302555734986681761387306513098463942050709980901935205103588913283113993142467327422168877303782927964964239653201050061635886688692141446230265946209324200798059956527816035020750787076843103856002341366340370354746201329298519449406578818872918715809870333193384905055028814549593758765024536556959522310656416852472938985496485184820398837607380985700210309725321494896257415819217616287186791236042226992315951117623608915820318829084723841466235044423075691779214622914309420659546685941212125228592001711851892224355888204921688649002300833058927045129611215004429841885743437701985084734702727218588040710411462267980445925091812120250627557354659275107442757723696931257612596767144848548983371897019769478522293120403646375945512185314813213497365509513044571310971869490809316774245788434400145476791959580644932308391003629675925426862641835022786974489287171831500482149176918907102124485352621055924756707593568394275618516662183253007434715543489918974614790105590414948241032690974615668862130920018352521796443395829938740399885959498649890861799418841501660045695690347038141910588662877322224112577381228609872939449698165897727411627438582862452414481529306887696016964118702331439474702679563403038241051324566292860130760433976742186473785535854046863854453053380987567199747366635802013670971572027977019930442543623336393778103744323641812279030045582887997938261718132689183817178175555496494486824781696276245039639014281434705986309683216822038062564173234696042004502430900427670264120865151647080146926343428705958478307230364818288595667665091534923592819589022655002987978544530316402750087665263441087420319083692881029634274309790509020352307704836207188444461507729251626928719617094974367195996951035519642095139718436990582307178075782771952952314388131658662084232063360635619415097861107793954728638071125020392095904094220084467092643520424954936714707822529774431693605002713248025358414650644252790733745186159510095005598307591870321147322581464444643343054793974913590293864661687581927305861557471425537758126919715261781835922564071593887616826863421109033930219840474938198090731500084406627882401626829601457867958993937082583317907390822445654179761783270461571200244040776638453519447544777274985744670446133727545366061828410249392471213331312495501076318297713717507643519908287582339268013672485963540076397662000293567219541782622983286059248602761194461192519310553662743080768184098391251823101354325356107576911884832803978369881638426232698464828543547872266144901561984659590939720797426275103325409501211706384993056709997107476743171664226088831402480856662940112211930121974404534792717798877233847972439401230069807044156564017263345642873017267981498283910436326380336708203290376782221020296939563369729857399858045751767438863866747044087676535383932697663800496936707944375071780777775948236153247653746966176272358325695653366514470296320090166708024865041700110292080782608023793368114870746424813955153978748034291125051192324704073608909135910586667256149219927688413605091520546230418753053500779330553501275706124661325035715091273768810425687570270570100555826304859670505221540800289558448547484181334665383409421588963270152389450055000223467231503538040515098120049238239820104578289435138758445105615268893230827370276568425366162677204563371472756072499726617149699514911371471299792160907590568206907175319285057827472753913198710424651668085733292206691264734500226032204145857561568040444728435276530619162148833051811409519136126201454792937369954243325273921509181145989810546261180366809001020004051024124803135808817219295696044048422595776522125657415747398097898878720139537380544750869801753866854299802086633849917165579778765734204907648691393381014228789224198047753482355068884557885265587105140052874702482102311023620412826810179545645496197209880304780387818827413909690331800279076494636664987816968817848662057175154365318972370636596356418412616262011660574716306251605727362224014206696015754411190164160720063386974118524758024825324312498372927974179832260812639088158058430418408395446788769106952890267852821342207156388334836466414160612718235547193715456587811373898842149817406544487075779855062948367592200527123457486931224049027776973043239798429101603397719545190051465864548918106157617326681542042411845911652806288825873470261761756670099101940412771952142504024086053979765877402366436661388106528151617401790250645993132465073142632032619968762344736682682594440322244434261999917907466595469783673593454162720639464398601360211735569909379160579106385650721271297362987126048853049879758255938162341738445912553119443226922669587523640829939407127304611061699126216561102355124609257463291471516945989160656265039962597069048436781421771856657551186272655586266253987113774862458481487951288432937053468633083722122845542131824715971008758546073541999132837505459025315545621922582093663242164075265513013205723230689617836968484528595812677785626902519891226794634171498307332694882275755529229850347021195006959091950573800564839380192395582208177151573909736718160355164013205850412786087442025285134269360397149676967330619797380178033839904812906351969697816969635413653806439784771830043708014361115285225268888144603927623490379511124600812597907304970072116858632366587659817226516315355104452200732258141123372852351008635007307809632752179182192478180232325567624877737319252669806941071784092880324343413134821646901348074795149428132976394851217635147676713880354917640932334153400333186219739496091418272447038315563782353324994240692616926279775375354253400898289442078555706083939099613569611437628665628986129999397205257497071276572946977414758396060161531996819819944053616818653384510589926818632236999459685726483323268397747333416075888278031940227988635930868823880635808080010606438586836598802950278063564780084352161610030136393621424440887842986372740520836268440843404854982489181505412691269800683323813754150459701299095293652878457868921158715412608523203730440032612770833084363457194542355171470949843732913552548142050617334279369628156206169971669405077405519954892264071685212714912339447788227946229139217089009044208890154113343425150248858054558623708283302632655185901586348221061638231391515153102660495290780566308317875550122435369426962363657986296774387039748591798651335233106647077943908916947237018883360042714627495584195359248920259089537027028906384362427045695275168085280329764208036542131124757360584253443428229085774600661800537428582142230000346757818030890163347113776874794412616926871782128739403162954537472722356120038403875517864578446854325196673326360691304178086911874386208031095317776387100482341567162055054127129828449374350574123372800985395517469733262086989706054826621229313498957080116163150298792312762810083912006047061147979989847227969641905155233629377544911899392682469109658916018487939037523620508574958589940863544812754038009985094490174204667106490165482271954171292630768936159857384477657120526375401728200482783822010354314662705722035751536582909060065436942165062153228661908776618435727918216004666573146035033701274988205154066656726444192536774733027103026742422661339689495210106044437759181229027204159153924988317333223468087918798377554955853563671206520606981391388954120968913218315981389280870294678861409537346047681085157819685196014248851404978046113613628103687506425731226318332338880357522054676509184291445802826908404015291350963041014008616180969200768818409801993959383498569634002768841354198325361004317699818572150912630697069996125027554273448592898999446217925842366310604542783951303185473185421738372719882163407321705294106335481293261841675421357396467724646922861170185960295187134543881479010337695438894828256398174434501921058918310943015677308242086915605228381470942325094313360588569183412378796125596678033200234862125845055303805391667609521314737438408049226876474632319805537363357763665673568866929928940966748845445698445859569671422684486323681236696088872988692586894627335254292731606049848400071610601278039916701834923379664186744401328847407995767763698148904805398847796154453133400881637549960088942061222116196011843174868082343652388416509267190918486157820803497934500512410589817633915248045595533413584346187390099359987721931946593217756430336911271086872499491793868624669828876430467789630899641615480783261109618999756699486265482126692008799138558787080085069673795159046228320730255650270538467350935151965381720767458475551810819346135150899653450744960094932352667061579314595394591607452455474366584892553547923881824958555073851747594146754760859731879315045739788670585571755275927359506107359127351321014368826810906300656092441698200231913481598437107521288765287240490941887568305527657776150482181543485340362387132268136801825546076447335162428111188110388294514787161835086741961777327131783455896956153656651230510223633531635603114146655776793915777190973270233991506705774347300061094413978810994310742719193230191681260263317072834661280362044601720879861174263058249388051616221620779427076482192706255141785377644048524506931496055254448110482069937467176469360322237540473876026068420556466750531218512614274158603403836661581365950403459691896093961741566789546955532556625315797316423533624315386819125993806910422086223665375992653930947825653165361370490826869684508150676535325520365239327399486185455026200979404464137315252774507005807082948071605198099013258375538061601391613625844512990606831575141211487946446789730780219654723486527302690652910039307974227402000058445785829078324633046419644097110597144622355213054115183001008493514020348790254325232895229664852803362719583452679298831178786570583781803045497599552829440817353665296942082306456594740037759359021442934813365632617162948934209672586528986448026717520194251040933419864330245056398255842794142779214746398308608602012713997835465502511474361833111220241375325532888338175985481251826064959135340181472912574275502760362239103834922793588051235744254497485232089596530556961520276772146550612189163719832659461749589308707053146621471703415308016856877547206153654732894648799721664841311977239074822534131193873359711392528820783845435301056339137816750988453969929921989006612943381557197146710092633505455094325710569304843714345060702009197314236196537067087434656581779960729634391567551998293754368871901373207621214672292590085328117471370596691628240721845088594378738949024447016498336195387517739629084394024534867034729042115894889224649151043053388697499427572828198398711318276417362117678509924479544334673447850184410089531956791134155303247929885460236887643749140760601569067716324786778761109667177918694960975894371354226647412831926266803029876333474301178826419632952123296377435568666970710947068680188739142199006321989435807618158731664491538548435642074247424937597896760305723645922526418844133529450066628891217569999684292010621393136746053802924645342934202633034661294188662169070302274293418648161136162667405486202755782706326452959966751043864791156838001149801682245862694659914967432428163731510718946430182082430701631267389797658345683434239590330592339438951339891159708259908419947724246320987986407120431203570993938248333480388286685670224255210680472141450283836490515673440079189825323470705227097519250202353212939595544718168387916646532741375313090059600149045166142787577388819947242560898258735120539254204507049133043775180250642899437798986705552997491969931814632810743251708230627480936086130050638410198381315730097970159526173439037043575450306554137897359498776290556441606335157724111399008979601201510556916129850274014591910278839673875850653030057048564033792048825106532167145846531953440790225109413366492205790108008481204275753661778165221141463005302316989544193301591798535496726147056874636431137997066002066779677717705583590208711452533519222937238835342785705422519958504165429524778735509107759332463684131820488239730217676266718791457316482795410394299043056153828068074632131463244561991961543366200478658663951371425144589020422686831039337070017189932843994656269925663578877076673591512919273512736163644662108268580592409551397155782154823449788769129677000377978571119372316277257834901173056139815285211931778343902868951083806658007603833552422806161315547506422895967694902214816866189419352533348801353886944678734026966049572714095249771056623136482741897128959766373388520177240026833050883698752022900838643519757012025004688863409960943067797405254670104607748379859648054734939541845266185780622458995896067766871973213485602785077823046173070940348258648868698621600976398792029288523321311776249475338760923190297848945359695057675060819436845575340168297314811630506586768256242104358098673857834229488089683630429064512907043853889382642062843645705073589931887686303541358175760389147390840269022860056969057884156198834969385962997578494538864572169304189871226575507434348891014264263388935126481871684956693957602049210738942612259413440813763391764471012457637493114251936181336610731574663150342317516463971236240722127930891031868927731007360300575851844812208802643513083653239250404922926072205391078719794688280094050807093539142470984424476365503133291960812992293215429379805374961342417009175650715725575738483170572143104894709283089815267279718064155846291556575849638727491513971922948524745042475167434096694645684019015133773105339325068584440190615809956678207090833075240521056966096909668496639666458193976377013709606236637899999620831211575624466639515746938902344270023792951503060828656087174902785232188774754364008434838579662942373383911958622471122420403107089079460001197935341452594023411707078923371225078778626324004937892564679854031463729004269459287542363061845023812950327453665193688369823957481803875954935985417922586725807893405031984528889535397481592050339808834415586587998314726424894605983931073474045703413515137198397505945058362545254764011160193745746568953062440200257473115937338718695866407100722764953588305239335790628143581602256468872539977913919225267037002850783001900017184846906986704274009906744973881105410823956196849273340359084333245192276811226837731621730064226878648264996523834475288578791300378688004701453127653828078767192266924638230726962400530149504716110869286025711160049879481136086596991309789658169698391851324990557090898245612836046566238598579360140990168068612155175788555725193918517499463844020517254461492522550942951854143810311236314961766450116292926813026019128494294210042793793914302321435189821633650862061909211485897108091485880816080276350458076937967327574997816828427954558494943910413253463241101751798227333202090875298092390996814236929201662292700502925280567243541881293208599811243507846606994066329410076562260499701189363140193689762338672594645058902651052905920973434227984386177324954316999810805389604747764196781828569288268623263037695653373163479045180570799554656434012604737114588398719871521317996535793858499052995168425742521012922509746799086010138301815272674471892555341908734541066680773484648829356234962985663787403935607507038923190320453572063016015208280852619256000264855532347890016445540011104065856180293819093942799169200253785445129011656548836625191977125519415850646098824079394095929807189970046746010429034146120251243862033703721453255495692497885097622693748312867906693156851596803593016923637501494089276118105983537120151663628180470216310620598656367133523526621673626485981638760402150403024127787189482445612384932255896355407764908022941405621917285300919036599112677355804355474557197269922985972849685275344174881948757545249379724713971806980336032130267014359927564585147519649705600658028891999730235151313203662314048656193699719191890257472591680530294832274459208926610349607035713986583823333213728057999443008571152333930458988490723784738478510116569758985088213556498406595393846770410816632188081702631596569325109287081595749585946324893863566963709008859860147285579556169781153204073241508312786062728546658807495529272250088044204195529028701580059219555163425146674581535348760857332513617709816010636931194921014205029880559796412076822458098575626603869295475624091544561435005794174885637068893844355085121601903983129655273940839946777370889419327065240107928939157555958128713718218669207607363185962405239750167952174624753561593276504398823738447069176307446191428217977576673947469043628946109598793600890262655418337858406330732948060422155789228528833822041723729253712043727377387413072386960013435637842946887101164463905602016259266299110302872006209389538470263345870986086226712060819335203220909761513208284841712991620077540139276325109070092050888995655502487378353348198180455843369315618841703673286176878982764277656184646336867871260431872565226415382432400306198312351450707747059602492459257622258811593095269183474987701802300734811756695711840191866801593709698900803546778013782273563719140054452284143123870487274277555716054022629645402559127607818816913207510804581547118293101621941239765159948075882036155387465964045008106623759037368509489398762537311314362129092896566048354337462985986971102159514551128010850971833614572651559199579491097709433953963387557906203914636012482023043826392043465633428266515220423087070516758089713725761091550009547749192137019797923277409303404126510066531974310984072624477904049075871730461562625081881856248892181339524613604640482706289148778460240039991859562590636586475982790470841088519811782773573648167947780501748106119703995812135979242877230830151481294752945486989722670300000080731011650225292273700077272046940783807377633907014026353079459807977131884603651477002235580559046093545965035568277401276472864627567302255638895250098030624032645809925487684947406594997425757684086724053611687428082249834137280045457857565195614182662010120709162378092868737978537619793993155628146278818493944697905117307042060763383314871322722739330452830095179881719682701149086615479134871113556278097788233827380198869290788967491686744477934160953676634021765644039141261942848761402552891602213427410594787363593164781847698411603025544989128872693662916048955159485234543757029114562850235926014286538967301827207497782553225077608935512134007866268463199691545012463962825839512803463193842754425104118179312680189361439127775293774416310914669515782214485998715700843815983707195423555622599759520516306962053908840379199371914471512979474719357064062584193667081663047647693890704555584026431770546441252829120254815703830055443266836785941409567257177875316829494276059420141792297183661583219697339294649828325660065304182253693621996967062780763522143685126645343278784367175466814588457986098160822294262035787833220818851025078250355440795563158685278417716248866085884578451870520169338132530946840892315046546824732925275505974926977280589503025056654496254938884231443244872247008072165948553949996258345159201191478058963569153937209066395544482514978105393344654198226098196472375881412819890919285882093485450030984071929614328029128840899328240501617748845954574280304166183281157089807156938179755051410398800468216682251378439895885199397309027590131268918593394586597287227598370637773402709295295228100288382704057871843350598175475293843435777759803883040801195363592566422424160388183521847424351675221635680157010143095429153173183188263109297868161249190540144637745219071991757528215684229349230977492165828096959103507598393842388558330941033120926864592083607840470195085867092060627311430187398753389867793270669724315925173866652361683348014333252901759243696746126597045137596184744043157489579349872863308965133195620047910403529711791281841024655236714299906623542813477229692127346397863918358709760623277832783826328687991220836202780542702843133498944984091478192645667325609217971453012508448945825158389819922123070242417879798841751171474933932661493960916745302500040239541470474497901240596163641658124142533010342822747689067801157741167906098386232369332388499772636303475852137817643324926867905592355080793069889503221244181151393575091484133774309344478411824979699871458322901534285784369062143832104612387924080664303965522335542379357486290751068026478645186306632784740781439985954325113759906995786746904027146930911820865548868866721432941546443383573504227110034589645895461643497874952028629141345336185474718788382527275706245899581382491698313187351853460210681624236789457011555504546194979130014728540801740974345332063010064093668513283057291150593630550795185287075916009499145617810332359232761393024311257069607162195374100437950445865604023362196473714957463610694183780800095336662871938998773897560111518374833676134097405558909539134569678352677134675297247567521108506201135989209857375376058226539549037941341955884452836366667218074091708572584246973598434398871293651331658768616180648746996004657515116684166029255934441436155619904426801536926969202906368924145024701875643364279777508102899626658504904837297240602826439643433819195370876850720712123177209923645383497563177346958791264609207369168966273116301966066963456223864133774354605037981857439116250908377441795008194873071875348917441368277509909518654513956716683231905154303171674424540486105239623607563116242048305087619454862674254351333914728089315457393901223585349463870378685807971044418886437296248381441156926332010983489996106327762397837985440455333822551941476988360751213765027260441242439428192487167351843087213678455453289582314424606647455745545622089642349801129956666422194092993427341649279959754824616094156708383341977539214202335067537561886076249305960648280848140601660963259482095953626608603021019506485978681044823497368218247387758045520400649803262226672643147817079566203527565691314885002123622748805751289761569323394028846352449029614085734299506761951374948325519607377140924146352237626630359962625358498066409241423090477034370882191063491547205457560321569889738786732080042590676814034998108258678217270341921382218684896831725028291340327383924799171019877803362599085107552711832707711279938582993255133339370610855051708963646130387449085335312694644546983628482550664876985731278379725800455563304831002953325777151636762717113416255830894181577402889170970283849488905448709239919444756307325592453013997157412108343304787939731092808171367570648502920875457601715308536361719353503530496085226342309729367075279285200604517738818077758418622278602829333238047686407227878003359033655379858959815657071391993571109721097439099358237100279914445352616610621891466133110717956981165797367155526175947087625902612013782187540432509598458556206910065775354028510238484178686473412126585603553354465112434950636989396387653699761746441635725825599100287464640005335511715098065280198172824422748847093046434718313923172822880147942534162229154729243196388854480947406662505876831592045668617195071413848398883583909031041467178095751028553381422461643405275174697103069015918262960572739198609144488164940172371923798931549701744047778590366364857640613021301087008213586010075109688276197875916674201749287203965291340262993378242323534019649634714748828568064152379735004186726448627436396951332519488503766228645018683263743385089511415192628967074448989301747311453662984512755652803078168784840305527560425036076175518404274324257823622191095930218880940784189474168415406200676905353920467280227980312849418930465804528006780272108906073835570798673176099525526882774857459332691757924450056213361975167351709388139216025929380805487732573823687465554718467903527399865995152255400245237968336774131168669544842810189548093282855146416995047905000817280394516078433622937948595049975423441447053847580210693896120639264495490738765450620512349224539713335016306849243050419111513723029695955654324215560232147240828927465434551956941335386242148323229069184097025342818482385587667549968007702965685959643937274558515600505565025888037978588397933602030111452778812081061699479775703501629823088508595913899193660647843009423429806912459201726549475713427490586954181809624387233450286795040951034957662179453907781227147312270545345012168146997603635015965043388408393290944181192153248657219426562548281573612965436027584812430788979980956418659060382760537046674203253285079380949300758536106749291843309133382347886404510821875997744589947271760049331450954604477295144937718658949988813762665302683705572386596757776112398139103701479790983770548072159411202153198564598860482282742219716983990150511985607997101674992994375528651065145589803612689134213559005429400089319404929289901294760375148009948025625329291968155118192882064129246436249257771891175695445614284073201756003015247474585121809515799935392331895953697495888484127967754563004854763385311476325084035077595121263785178116113520186783461014580821543649705205336150467251568596733645022041091903616549711718581978023073340426628733478394894918784222444536223039558657659476817709058752685888935918143647229732088400506943010117147746656041806373789419946411676248268239942937019787996854756172238356725629821360044108209458191369708200845845543165730750737215173147671293526617353620316927532290234999130965425965457384789803197173490879150091526590655387129675283933137833116068864714548914093197279436072381340720019451017782217010827504395980240083536770635910794595541070949744237401217075911867988356592947821535632266399211259248350098398607913245183028301695451468734503373137410491980070881505471703869447710078111651363879694047492628080858681086788798139884617013285770271650165332014661780491421393374931265211163325146438913532793390606813283769214527759285813544300256962577869164014171825691572738352406984175517428140282119743882450121173438138786026978678540037268622434977618277156246146403332341831893530870184165352900130941156806182389563498158864897559430550228335526345388189511986824245528786688825986763905397676302894708792007411658322651329987060710276760704400500740854152198701635283271229469644875549549733985784568911860342134897286188390631511556031280536536466568814830765902976753340664851166910145978450331929099809355075255944954976835829602164581305069187294783043565309771248486133551703582654733026268026597540820093813988766157247722479363888279969568680207242147205983838323820275795559085101303215398236676802790077272270161952269303235108189056846186317843426591676874907085605515928527002958484961433579715611771950953871260543606276756677952383209381844092565784498661191841598517421561120604225373597012776901859958958455511871515445026263884888657514460356253910210999573236203975202643598651169264394976038093626615954110313534828573295098740584330555254349463799203666820009531097014422705732285296777891944468341847055356725488764942327673166558065998799395004902955832483954183048591653353867238413345067204713892119606135030997655763326470667608229762800584719768368743949414153915098653552760993102169844126987950449986517581576387209276704713110372701243823799437989346374053969562742870249706935602008090110375403472429371818987061641991718378189258477990444782377333987073769608518823515157519126924774310767946364791563486537125183913209372136575937954963672689192065154658253380803318448560419810195400468670181475945655698801134668650548572145010999345836714513191849655309925535055598159494716945453605014307924396280821029294458066098452479795613211525091581898508806663432676480099992498890922263684293879973220092491206503170040377865378613845554797184880067981595099261330922199567647541315260522527904813434175374157627124446851670629680202099771520043519618522630759603698164267559066027714791451821575436302059307105968786796276769825672648997565264125079313728976624505284921526783975770847903146293949885980284081908656805984521636089249589247778733796241136225144020666807015296946668864197743004224149123245150554035057806888957197844742795298484147484582502610524282336797596828251806559068499990588709261825198177769175594762324868902794845172061180071385584772501979182267583197344805935374749561547661540107793894995570832967582356956333128141238356935044148094768011947460185560343258193701859726274570657614509930694829600086609773523712485404286683197345738166160737559278513279561437978595977328571441932423281144955134630454341609661305582718284889406868091387769068050303027041874248958706457976220897831719333819713889843009167669023873684031666288769188595268756790164686979241775610243677802617136332346607091030216807024440867495614320610698854874740398499931202047085200018231609027056497507833465193421551140924979800245547868415263613802829669493790241462822692066394575051050276987146033545652617730515679164208285510502209429254009642813532121289229526316061844373314578460336885087809168618896298852742471874474574950488016850313923684245400472087293069236331048975878529311168097451711304322259972184566701377142665697262519845620128621702560352189106146396027018463607258834790380947708807481246300895081115720413918644825442399738989164619179783130804248711576722500735018343866094365341280317912614924042094561982796011781293205683065234332423979903138796846129683260676313060343984957241741709756816598739146689611994073873540241301954647735264128122698098863308818041596456880846470912427638014927291025919012139000018255881518300452211763008204237343325166652307717790705796596723018239592980870822767498748181004607762376939726598142069186221190923689846251241424483811009903302845425164270451062522131881246043801573167270319619132278058259406947138107394534345568409085053428917479770641509533198289143564343895403636142861459180190746067789703015091779082171655433040531300693597867010980511172910226176303049935283947388047237717598216829877805047143929263653646438426396088687966094783848967052861926162045974945561237005982659502024491573737842980003709362050724487064154298709233248673924664294913987890707915409391554175876661743400914187227495617447043115198984668530530515660189433212483530837205122251920330855645871767269393416067149425526475245111475926703469175413565276899244195322825404072752314188183603163044137995813816599026197878950147274517513698156615030261838338912078069854984481276428957797945551483296481432657873604246595278436543218671203683416035151125635151057363372868990131128934459225294575357721800582885563886571059625603877652545833879952397231891297034332554456167810045179636552846586280168898006336021633384721473482497981664736621323551739356124809130751306803619975716243878070484490759581841115990342916589533345536318614015949321268078635887704976714324065825277672425773389312817981848551574689800099635552658649416022824415325418575444345610570030291704090008753093486782841610632900660782332699038020796687571421503695397971543854081378666374314830080449526691034108216415291779732894142585562971420263222494043958571678442334736561326539552288349370034591136220984489787661434481764257439405885587624943413297705269696900192571884404463567267963240511860718621646963591559571178036135217655069356846616830776229710262803268738549743613806587523066936914201866949253173960935377261369303477514104624822065855615867141203505387244350822883361643586149140559433751534426334074736559061499054470074043581849816065105243617405162491257166161036218352886468475336285441342936766120217342650527445423045280307258188807368258128880403017153179749386795102207249051494575459578412772199242532407893518498497238348648435907077763556683882018185819524943935856560631736896161017487936552747176491488896250246667505325409414233220278400410000654704417125808656566001496387829995237537819749234940340285293876773075954282605621009317926184408534437184980686415926654371300869492498144453754847221996025334032846062582890738017744881095690800902440577572771802778637950900335473870373672349227587827239914759668051410240074555739476553300727933028475353793560407216524487626941695363859096950530439852713360586461950664788653704017851011614645892218659071421534040484557251266896573309212050397306334458721716728423366461997461482646810967645524460757690775539147716421539936717336404572416020790814082039960952085927543360850903347506057726103150935327410257896305380040969018366757280444248666424478909613193863956306969258539450621491708373736764695596822369759637738306664199887493766727480715168781128605905404561689641088213424081656912989018374135288249328981366070851792929399098168222910190051319557461787267193359269132796532027274656894046645339946138085381566348270946953825958748625467878028791753125158328674850833749694903517948348058549363677674027229462473238511923778548285926206329438350901565460676107992503026367854201992460185069439008525048798280136892973337653216647197326958706690247666743571276312608996966517086020256668737831620094542059296397645260904359931135532572052170846123758078479307690090110342780379131986161330060635378452546032467285096879679184344731638299200679226423800346558761305579007403222546660403378653006013144400346890110983020740075427675119705725679418269618434285503292934000415776098846201729497215470050306086601182949930212482850770583909687918938248271487792096555594458240320540827400000484890876802115020471169649812424913480511503379448652974327897138576628929837561125251391217176029914377114347696594181736416037170891686575596717620336958936967191040904569747370006624909079229034958139573711620408256449555777256721756213595552591322762469798128782161661617230812989958560396365594265258528704898016413406991307081702409081187300357453017949551548029917995988479045413943140760702722778757422827404545512716712660118646579833914186680762963613781563891293515561880485630866047562626751030570562144400034143187712031307848909048941283370935575211373120679746959410203168358552391302613142792632610811584584908614134609454351635456960923073988301457483888368143617265601760925501513214283182214700111578346859866914854682944150598261521772736383582624940853730607682284741784225441290015396480033756698459062057038790527099852268034299260574202537038455894807463299309267865481065269741555462958394956388343888409141374294328630682941114440966082697627574225169592437544803741839214732480688971268683577293114157101411250906012556909965069274889352485838297916932094628878574462911827229164216098493589837290183929471474126232417132630887348402814505720546937867402617281277260595131500093518006463133523432079291426892890630523497262099631903907449487018150893470240716349926882135010238351664770397624197676528028163753757399779492201076039397187033887320113234863355539610650458005084795099129805976717453299831866087155167376057005865347945351664742921477940353211181283101066745528997700690908122364913968656208962205971457978236180408680164923496565902475789020377966417244972167280400968136468300226972604542370383147391000816455788872389828870167222326949725035773595404036476045502058972981211285139020479279686718696839334431185259207021359973999814732340591754995877064097221487211613162945620817280714289986363991891440624727159221082416057888639010654287659251306611580594685684975864337393448175394381890183159693955005480241752479930870674282292461152956499985774452396274495593842818825977004181556451944394250028873624222679032225547595541870532623219323763786960109113553991345944261652451062427505537502637401094810262622105784673197669883874310507426089830609851486199309785905205357758801089648852530868475319245709013037344480304083649163493170068924887450844348826871021997012997835283145254517542895370164125520583686640133935300389335096630090354767599511256391752416866096906454475125326152112279915636257046724249285127830060012975729517032397910490765160372704513845696982534432670448677398908646211241961553820448621127859793247195176521461126883221639150232954198797906022815244527254056539432047397184197312838830364230474021786338226971703818908657775130089294733674563522627076090758891018980467170222672061676117571639652949783928594759781475460041166126065709103590709868160890849446901854133529498562714932499664728661284486384846803925014522294467594758002582146507719488620369409313834049795957827977774844467661642557970434169600776141805588653024659322539753605799121857357862828851057620445624381588568931796136964074072850111618663388326340275245371187480475165027139897707158709975508708561256319838523965473330010369498764888048316978382233865657074012446891288700807067764485727644028771049775382726645170290711216102718664055100270348144271882903125799641267695189454800906975843399477319458517773705368297780214578528615150526259861278225138609469798284459893015397129064088396378064238787888441290242476412789285119936328043977847331912048740132068649941793337247747217875256839773089680712637836611139338625963912138846044014941129384778542838882908019330902869959041181979686361338871442945013304770906211275876990961109473668251913157103484448682160910460988995093565432466711433760768110438591083763817315245339102930619586530655243312140080374187847862515102443197949840063474042732508554503607776385377255163467228333055632397383151856888340946118950572686269128229375749498207632372834642062404821661148950210635031477963563585216011290612237583476374124995101751544100387887850694574007700748887102040993305777527827706533997459481163935052314787415432579998214123895145875034900816028507969111038278528960357454754790245448027415398653983562510368177407271704698018219020865085000086499148660624023719962944259523622224932276791600055374700095766194865572330589965821724964510287492917575682421271322855800065587158079989812706290094480665388515821376097538843921376965056321767585437970125600988232553539514849095193525169690177361853294032790419814925212885879823532933415370512501138281963764019929583309841026127913131754970066048350672607733717027893493683044562335849929024937585113366580725771367836668263176631303932552010154342841221979229538990221263109627475522203215255341980853862947827197263902480080707489604626586601339117786672406415116493248496607850175151207803059397461818136604084193611735846598864389309298994668404099614178312798092928961855815040400067695861974980105113676533253866304723202973042960010587823202774505282277184225751758758374006916016999578491221006253756945198654836262273670152311662824379214631089681349036388952636712643983655453626777049745996815914289181528175306074721361153372388079190440229612827295900173279386802358123153639951533732519754286632608692258335429761191921005688238877729305085224707949531032594063079841271535598670718560840128284790272495196041486900871067390642035510099883708693492156355389748975128716965725324011669404732562009451169293986709957535563064314246885069775791506857950304449643742151600907176342941824546010471694326718904849173633442266486370972892627049667424854836694309402026923648729443266715557523167762571463305621606296137035277275336026562868719904684843798817013719798259260819232738037739887411315089636756665316645114380439059179778924877757321192223920441821075819749135918774433005499897854967710220766042643918621880398199738569478351234693564560293254781014063648173328831922794089455362123623588166925199029720662265864343364673960351150709033192187268665341280232018148057591116117872820626186453612295842786681455610762799937304929868313944064721813451896849077832129176848451301204350582881597356042989650718030138831605215816261391471246636800969704406403962446527137226174502183970583257157675666093032608599871077784359012424326625639143373222086570738991411452709429583510286940405859936873888235725367017179231747098382846444793180911704754293619181751836009499121760808207788662052454278267019815869022300509410103622632708989405865220664770965793714223821851773008285141234992605512747617898650068018717286652674688822963782963213699394433490574398862080262188935085806505640011284637810089002435093123805932629717562766154333357454267772728217508937593507397137344116430047691979158355015806813529558532462773149782458845119649155429783960383304225800683936134592404849503462314911200447331700745109021848534756672664265572781343257433398270528721595070942745845601937170723188159382324082786908153446415700537192268025549908422361518745501727777664354394448536154851172083501504207373137985659107180793001049594359002581966486075991904531905852057151450382009189171304932715473687476962884705215629242823779862541515089345039134718162646031233879514728425456144383881737628412682919441696759591219098162482829101461545703902454256893416240646195532712930155057987470156110152816047819388258146903253578701530907521438748478175476482730204891042400422455519415013445665904617382889105751059378875236900000925564009490337685115823811865945380511133852878046047354893700705156257235848438417594553982446579174074710998462574575388896492768325269291459247662600261458429571864403699459609105754046284715800352430700514370327058961635040924112972642801881602331669911602307134500089438758989562737406160118292032506308860646667097829475336397872334446508233764061510465268591709629112695372604518267197157050824691520350021801948935675287230664164380859164071047475629826199203096373919854699317111328506616840596392740393022966186247901777363969095952219198066383110062389392773112244522105623356277432806834935970132952490349000288319383518397896636708564998934422231679108111968761279171897951123016363578191553037037469336873113760948807235241340957899567506318422343717945265255200812417921889891327486068125232893927115095925432113286768477955256997311051874303045794021156870604387795903854785264375616199062965649501955161912395334570252147029495395662867805202175779635864823556206219758641514792719194615404188351114468876060864187516049381366066409294003581455238412669072591715583517817996461217761155862477115196481865752031670525312568713938210106048086562948240628495132502305231822006932740197466984041569235749931167468795729498725834222752709129991124390682433944557729283299273718099247418528511983163835164450992236192670777045117471130540178550779350102808106994696349588725516333738711553910993432732004972054241533260825453585945599344605780650309782318118434642617177869984400545286866037767513602724588677169687936977803808136473689071805382338747768959105996338107144044697608445232854429150566167546524430601425139196914396774531288199949903305197428239557404542536097967288235034481704502248050873310177462385884490253578218064533010827617584261050521520842296719829157907127454705411810695601746694940846450481050220938530480761461363549574977855743889555099663460473916197656084227130372665966283928876257864451240975437796049937705457562865839662941032358067042704601306727332482238732576103863274223406340398352364007648070502223276476664670668432136187906972033532926657157923608918313357992422652501352334423942622177340252716839335434426240591577850263014335455983178892650635789602360065159283546059791510275241028907750702216178658327781968139551565304033868859975459442980251681354555525759472299812744181778916671479522365476781407608726502179529722412461305921606633448616146600921823023918081486584252823077713457920039436653050906744054554652852183381225232476206796907861613040567184321432108096453804450209267168624182367412072955877412651156747270316303306998585023933184888652341995050136634435163563032493721683016270824903809245691050405391126897991642402805367042507931962350547642409021533954113197687357136926455888082659084934463169677342806520322913755928722491555855489671526412615598209099967234173949823709969503347748646265943480296927886149935140534191035147262784831572434576588397416862093730909044300455652366384114296862237697414189823978831943984255932857225672288173785096655581072411393351034754024861181561266850779393310446146615947294106629080328716486472401190341235077649503028990836835714799014657591590865518425937365606933242925951148223438302676267150581637842132736580961236025650297332980854897471408543228936357510422135635025838446360721824369838219207525938619780275433030483311183214434355514724359026785988878011471797318373508367368803530614060423578903271053418014083762408236319379814746135987085702679651805495712121725974975186882498450717310389260146148690426973024794669740647471253125048129976569375106388509148829716043009755035844667975461936210536803539471865785773539705658224243790729445457481994935551441002097762958885720913419855712969518915053742494690983327525062568348446916490867181348804589801468870279232105225046548459027367831866578981610046646296948290766120671297328394850807252611936096806646675693360080919282412300426541940370910972471705304923780482937745767376472495977238087533875552261346643626870710344427858563664160366304440427769866958483568972773946254311517665819166564060354065564009583350761409279357021972317920390162696115881601432452719827936427679437350686304182285165600554629091887277025464954874472753987136454905395290139614669530217573764549542607198768790905943537369708904563797756458706446294865809300167652785604052644936464744887589072901565839315316449698933638698311783044387836496472384213517713229485957709593338547753606624608055156745492062408652804337022845434780951324009737456742075984661006533391226144574395482114491239702762198279017999079021477278459129976816081289604369013326678101545839560423802419869647564166089352831344732622019112045501855225334271639603806752896594991971648628051395921933294037002723672483488562416820482280158298378180451133201659983055675619635833832743848740302220985393031103264332775887306737578828091417018452747066827999579027381131464563615656012737051045407986731473971395293080362973706353926732965853414135685216811896646725375753114881025004289975254349495879289279288482462270256572310464039055069583616143435350996824240589416717360613839438605420100085825763996599810843289638914820231210226528595009393000700487214346469607988998252994501890504534975958090798409988457803055674539250298046140062638226306714780704745341399628968090770931012251038673715727497170507581854858838160254660804085466962415243285032155025089655361025969222340599448737086242869149872571312221652151494493164023865297463294099642322083358108473253240808031401427133372802108995018622573299231273710591303306125479110281457714381637262215877595946711416347076414149038863772040618424747695432470866673541793455934900004404354226746821428139653698204470782248496969460117224004560913907272589645685576186537426083334617121613173794157789673842822094054623921601985148986242775656174531438879399145669431597664947012033144156230618888958655854476883936672066175863713001254511881376946080920542957993213854529074957356178425938833793990992007806229086403064228664646746496411362637047287821394384761978858873642535716690743751473703925966876661523250330241799633598912254618821652680509267240628535481559501420963457921653773585536295554562153066507072651121590220092896546327481204553635023163019638059602726172825541741555142806368659192937332036428477844377054826366995972320157520465131708418058174121007551991339852657225942666936345080558834471033607417711456596246387537012693382655017567847228862934186036780328544087951781644585679862538340190892936139366593509411749424342573964025334050858504508613356937128339340604357415903375743730240393387928881640109626320589190664173844725589967121378246225475273694053571568231037381477421617058021725485832273428168819852119780873029191763857233867002357059192550744037598232999285226740512883939059103380253536951820938203644407611247254670463832958537568015966468964531851515394615197889545546932142475781007706378202473752081462551548605434783849789165672820487224839658301525504750811277165242916354846767699169655191154388521873488482395701886080940855841885005361271922063604032444918378322297858463248148543125981622173217299105183512417752050735917060548497778335051022955872596644849868785948773897439415870474579871164613342201732884702490078561156006738396320593983080819052569743886177778704703026526535388008660401336298594571609318046146670952786274983466951946072177721479249728067139415557994921002262311002303007491564662041809759858072318323871986168611338433128840801897145486840960911065393570470185528190867152383612980939417133317489479328238204152489873598394798028921585762324121074199107727006089847044795696067447524373056021458518833259829897999267831135894293224119214501327337616265080744005973634484445376274252813418107427473267940592488429231464589144984191425884118359957581934451533488762517165611026486138550265823913549847152975330651778404731683898309930638008651256241656137140034711706602602193044565482109583441952396949232130955742271616972362554560413522823414919344505851459900211270654413589468042134666766888806952829163145181349575001814184251769707835011705769691670384948705802529476521919434862745383267278035545058395290076681181757259563767589488078174084970198270632517168921145775407818909490528992057457516755349977598643679563224233366395347954288715626964109677090501763547015823250308506051289299323242938399851458996504756906608088258660497062400205686096484566805932308725824435197431330616684316469012485369334583848742616115767804360177692400633321647638561853265231299403615755058604003961035114002461454025608551073024578717186208897250327314222881029044975945381509909570115805378130280688724911201662924796977477673502608405100135582033841332269004354213715472258414144283146474578001071711865525858506854788086514273522322759631713770238053575743031943033578569962650928314943310669316004752727695393896785975556435520817676611071939845891059706384480770457926130950726062686075684339202488060353754893512846438305257099002174907604582271056057672049243169702595770673010386833902375934005015771906900512088837435353951238358802819443728999374657139503042802528966096081365158193368899801195865613136986306392759496773139871452661458077260988702471381545015864562356333133324661133520105828015115388070338094178903337302946210976983906725031170849706188450155122240075091790539669406559679223201740062996777407157299747857623423414896319163325253402060622606578458679760570808341155442298747214617347701119931184227771117399702476992732295837025583390165745141772859818884254915431523996553046361126548438344921565697753962349317859069770185837410326554859039246926459032418046205980572106920342014096634668094683919468081633503135645142303374105029815308875518133944933774201013005368131918745339554152942863890279744641008732838643707897012860120725886677286828048396330853318565243565580337891957847735608199309680672459148181684275106933685459699692888185192603733092465273462852724169810652057749975706727417285712579802657923185935290712641627101380243915402794354455606548286109264467397066421410850232206586507547430024774661181192266423944448167302417948685789575510212416329846489054681531802279115944760185721416588514300577124355875323409239695479912989312996379775780277460739720097550451147419284647589663072830791415509515344801748473143439136765338589258561245779660317794189031515591675020864590343907575624432239280521615969917973581748774371775367415133859428096572772728740407850367191040218532421991578719420100807122064397931956935178570562798376884822924609997978598550749201446728421230236157747409510418188095083626016526202591145184207952351511682990014948142525375776387621947101864649718049432683401477688115308742371823475234485118842373685833270614809786867049341546781773704436721231154589899955229333519054231237437788017060002022798625886441497291846388409046799531926601114106736087310703444190723816959774604541904827608712556282830032929056834099917160532520383861053643351330588070218684293136949933957464136179076095275214748250637379059508868942810447871003255954942156515189284283479180284006010727629807182148071137485290299861626690153129781246515433380367351692699132517768535084711862907040602764000302103452824629847854981133256394951758435598588976002115339389401636350843392243946511400824290815058944207086190579228148427477020580839372184176319447935927378310554937514586800054949279285379008163652559799998410932546156519211769981790917742695693479657304019007396294553249766925115296813902935375664740646823807614384959001115187413371107519059506959587302932188252744711713111495630013371657379805977380086210384800733643465268783066359025772791514662228925817783601266625366718333769230554166433080468758784229176420944416249108976896779533925148535390053100730430710256918829523628925500056302038583110599186822007333131412050101543439658476333151752434837993848005166535755528839197722514704887611159236825909875969352197686014787502844334843870083707219957286406957044989391604991231055163285921354552694436151586453261793065568798952654187582130283472464746405675406038190732412936382599121715546738312997579393496763217845872007735663321160576945756767465695864191104015225247994474614201688445851645248791131494396327891907580674115681638118405116447404715788659242400007040978705814748278916386130879407978782333096065299445329736079387218000168154560822888093596126412243951599006819801185715384407225427467020622329710450348859481368476781293613018468234853520033872621184224004913940930131725998119802527661548670336436249982520232915598546697631292193051002982964194635459669412461537000041771701909647298841268238605534768221902867095159606335776063362132273334563131745081824826935069539308356061074546800524549331786324837487958052215179841860620326667310534770798170973717481726792115328617880488007138966299239501968062291806828651337155821419164854668629287023813533562399992460134290392850280054879307293596416450914076748496108753168755056053554979769038997630776457555802121326580604718772455725845329213344816007273496421764026346446246486401209071098178037050100795778210947485250367431353237688207956814018811826777210271489273019919142466623371899059987115797513692843887941352133490571620056185272534035684548451320556350054220666943734114438323867710722658375858005251804553301177934642481950878872410454544118868317424525617197464937618466579187750493451008070687749152307355862766294978043963022323063228466522718897051272621062639654264601830557149344421270732359788438718645859821707039336111068191607093477532555877231230385028457686534604760527897090351707084434587836515260517024156843440586386042907956462052088617533145894892728242165237124888307949614564918517819462138153984320177486569947447961743453120468123870034525197032510269627342977881149536712410687331613864386302716807760683973094500116416136640317163293373613505444111613676473941637986349444362339779904050346286466162135063006317957318163248334528786671101386542893483919601985690657272154728704440334231294723633796001246012769751892807220826265165158238806977404160453772520848894006914459269099678871803191452606581598807266535137567489614168581422757122856500951121312563605851128731090870455817966258215120009380067194722114248775007262941643087515470579379040184406797548402184040389050580376250239690192444875345197886278728097654541340410675429284321376426304607448393399235648816575160733910936878223969620435695864455067515437439674302952077098177015064679834038148163822055420372914581195176718309288470466105286707894742678028496006618028975511145461563743021178945737723203689808065957772748677599782526788714031239548688853361832775220124372877601489655254846939514725169866705914941914171955276202638901699288630643201502014818678510633164932852188880246085230387773844034832080835798457247270536975553939642879539932900525372352260556516079989961348612735141208549728710440043426317884547631016817350181293623509420609654369203242022177054099132725191732764162854526986486431617745912421349272134229062656938172629884624945296355212324463393173970937849581950342611385076246069455825886108532010663785021899490421408457939870981703130628767659407831646802046005488330748423767938907962348943161574342573600885836316173039822049406807860975278187407733975371155769123560575130743251085032886191319665376508659934810543542475334195525073422387105688847264544041311353516752999805322485448831090521660407384067607825851650215967347807143280929763081121790952054707430882507293789881486318403112743603925887466273097320735599905169086415754423859055138251709157698245725807490224386273623872513713925933901321534912861891488443553348004429263966746962634167957439700016738242272813722586017730568006130960908375485397307871868454321871619945514755368723475113616786264074150641756328489134096580937201783554196766879106081743386995034845193236181068113301360595454171863019982834088224973777216659123968505352784293681360542858564360664411407293239873696459396468176396721880605394422160923253979612054875624409307720901845179211497370689180026970200167701768279358012986364235754664930023958822141191444490373342882073052803393966134322475736118969702242390207550869863686282158320063099439837390899681333047285995105294930426306431236497256747717261896699337720317523581617288572686603084407352794963721113460503330853005652098908074963353168157475212876136673050964720904847188288864470069307046128612420684604911592127845270177393571633903353531035602956287829766710678984987314615100817036590537393588963335641118430843049965572405902513823253231764532655777686149265013274227883652196557131088064775924121734476845621412742033916429762210444470568636524356525632911404508966586199359866469114832178600818971016285616812581564865212490538471832657529226184458428958240831812649279682935829956045406798348916105765610297524105777258530091515139279824118939618343764359658182751515766700936060600654486172417264110126047728403092055386306571561800387700741359846475900732199359193120108147237884771251661029602917142914645011205924511650410659156452130881965152525270501520392427616034381599300423269132903017953106973326296642336274125125940733202174078576451848081883926619497620249136212828038064277882092458611758258822715185352988677740626151575924241067983213773742989153279175707256136837807046519966161913419046355843249000319130643805505781212763226851757198344137787685096105699551591920673746842683145661927543755010341693064811434621496057182957951535043913416273164509421428907933346992776408841466192587288075193709284532617739751016293919451497334606605279346408393051532467780643573785350532650102400441509105784711558757723900810990276080685019438984580893469852703476408852029650572326498534808643118516719195059249718452741938650051021990217037331252310360051683002722745262611031050409000998555166254188751792197610073884438241751330028815497754136403184367652351687503629223774556192850398686625581068036743310578327813804512544273235513572983238473477769321253227826031092439507595487939126251350856587353229224974165393892631594078626746393070883645196237675574316846014197489142152586461934792960654075646136143985765752142078147615059665432349541225755297474772394348548102652925842634682314411259085761360161932321023304955024677742540388855198536409065343539000173992198346243898327578997649283534608353257571135977939044072924729499767569307235602948377432717228838251350967158230160675558378962177918326729694873213465598089753162639665272618001171691144584299244125406412584487019080672795627458905412033092908800350303229833069700698283513046988666976025189305200688484880427013413844390077749298566898909979093990472984900044296748687382348888622257823200835618425284352053720414598850784708956603532274954322201173959844772836192010221624188956818036091353324693996566421974557919623912125315101833481599360305655455623867206833561506122038124551003121114320452955772406798587701676844496925092457994190601677325238408169322154811616953618103185722380239238673077198561095687583991597694013764711092228253621000792054048042228831255981326385838093985706986335237054488130277767490962387954295588528314916532947649780482027264795063641982037142813271102744792552175651153680074161786901595583287425795252307489598399027455425284921082451221376648643935450787023872283659104090673933104786691537946106780031067307774812153338299222080537591971544294417135878144747139740424658106504494663774859706811294240908341422245952291047832882598180405679280594607264064827633539935627182323031085039978124193023541094883346986019049707414250758091561032027864665102303132441618716269676717288702476880856986111814834199901215199159680475523165882740638156601241688714862465535166785118218390983776049998383435968942206344690442677273835793782635215055488780316550268141656184641514225562724087479081469864159389827529523384919455021735805506902017568089415660564180290898577248745993140606557243600139317067863907812773018128608546987673534470844313964695317623006689464302750953507654547608260446023128892879488296630469062203450651091219270639630890962558658762103250731347322078961021185333875845019676043671939549653735676955229813356847301369379840613604166006771965349966659141615260732785443260181755060203631013386363587212722516635576741931016530999658338623057654322521710547353671890801466185444499302846148208180462070783538327603594299183238863275144555337012578798331947257365442390916913541739702029931167937589885454709996757008866650415694577318093530245089547341516564518171669114873601157232505935279541474464826868178193083435411451924695543354197922872797820634334829665095156929844191121825841974411542145984684221624998335403839796069835125599061882661886563727128581685672015328309867125855778038208127886526078683360265780508798988141722469345128896169491747493485811375143636652498431965087666433451559169141236724867346996786365921362935087273061406951251476613283161571720908961171852807143700263432500341996722630048051862946374804783364634602798818583090667341307682375781483403363178156906533386176870771408189827678322043168473180422541754127545291609816719084263640287199630924993788694628675275770988645241365127019585698744362125928121038884887161497059667975549990742807794548624424813458720805123557511212033989996313732291188193716013847278138683977261042846148846259899607314595712870216689963839073493491520372503857159891084055572155842799957935917456345054274087371742217166223257931420967117922480396716756889404641469374753656443770252148338664647478955532013531105793111516794513612989054395390883325835450121507178391215074373243276643314215527771697456707314294914498558212181596702731552345326898901606968864684842255983963732673001305697144846857234434155352556448760545811330512610712937912353848469044728979615953465163902917444515190512491831203372790420167813803916654243343487008165703762108141649779864862742280318093883794933555225302720987640200448175311931556062843328605132018680266048526483083763720083936699128528126098270467340138502105256367311715459495672088379313573807907500928635064313371833155657647173309017384054860099613598024453772092130642979607573217911773515901267477248521610659455647193784255264384488836274373153672913280527482215698499897921371985149238542398826854688862520720294499487240274171960489514548607751639575294622956036615575188211129819644579366484212626113232951361921663905894600378756416119693551724845418802823677087579579220202148875681778017159540158036486448090636504313347468975059547929568136360019823746287380304255004173016396728515787796168002989638580517504370327421409639616648933474289112175010927594599188711701739015010881050706495999241759435291288633994593091072974446188617319906705599153728958467661448102710919397083118381974328584683794068940400055133385273785955007923651409698257431300217924417490748143808047590865571128745795543745513653976908092905744755540534493059135921764268831054326266032825960731625651689656135310206032631973794046819821141766824759399692550053792456332837098007350956941154659202699053310482318451595286133131180851116480753864328218878188763687733630973170054285074516482951446917416035272659829936398684928026046630983071122226969991300604228442033098500467321359598444348854069517162976711244550910893436827832938585204785706051768431567336871346218218582270712576238405064634959924511273908517353677951275527053700939769819970325598874689565615045061639154689830714562793591224175067868132894520134768303198189945054574789314948948497480991641781644089358155788778595913046027567131077340480601806603538855677532766797274262354731176399853384617908541351000328942396721749411199243829328903080771452234521393728004412868930600900828702797709310672663949523487714919839921048695843207448308551580675851338474476148114648129687310475648863113472030127725429109661002285169148557590890441208239045369480767645387611366736917841981166694015420132419357670942019028663663061459562147486873181811973937320588846792210860441612313210952478094916062466539666575138563426439955555449551114737764731303867915845046406863665534762408254935239742002946759504969805951856665066176175966683747131999201883488252194680853550692838863720027264522618328843709539214157400560795757365462267258589025638086258786309275875863768421754349113012970648232728310657075260388495009756973705088844257811506181599148811827640726972290771827271342029179612843302610275310740446178578598884852471843926218309587184920103894565254373076775995230105067982180007231209395567611300078164239648670915888976988291757369410240493382494547701332619099553839443974330090796367196212177468164462537910758712055014951347920281762883694004577553445441758249017199420894258478052351883888922607528141793538230945385305436323797797149287198353381497065333554786920431380758219326373389617772354679981302438939809752326036353438375139970770599759611430375905581676719652709205885144259486555807384025368200976431211950400204798790618694425019499008191408727809810848134407314671058651580505242117845198446945545393202279517572420999982368350845190584735459636927089471085129342712666709147115953430420085021103090296094645459345936337324384846591521798032052336938162320423694606455164085200722950798144486417151166629495519779025164529811409333049069780689640889691975674606711203001517499055251606102742140877984644990142745862209003793509190126697738800105809464572630446226805422657079117995512785785862621118812847233770894769843816704406315321312591590837549055151093083945161441897911891671135918274314410680882495743771214232674571839753054918649361398150670970382847025576870354981732872139294863646057306550751564603037027765220969111011775152781968146520784197249242941586861697571382489940229688023712625331336219526393556834379624434446650910223955972339232537300262621452560970740907111378774219539305424018824991062093773169756123735882908643158228342219431087439944094422226277652224771206543559556852435516809486391317533932067474281069540451263441674190628421432929202692897343331366140498449161677991793283591103675791731247303018112546637121378126586617624346719556351529715192984481390004067954331903327278894898217516271967378710841776434818208706316939294379531595068706910526163961587383265515607094410220919217265988898830727955398833297095666046750574858837824323027802059875177079462395690358124839038178567690279462734779561960615040096695400326846723059585934351139420689264197802162072536044116449380636084094866810498379440752846038989290112574230513373044584281381178278681013888352389939812904519559535877650556385311128436798177382257414170167701256786588955643809691865565286733582377814789503619193532115349192821122947603870100527704871770688560320382184560939292242243942100631618018784410500340463811281591363260153532087400991412315436369497330595951989005847884504044270575593385953817941991288106592454933244230511128166019450080241013341704096930977917427124393553616434343003923969552080045628476493412639188503531176383000793422116633063247855844799314089909633965468516275576009313213298973775656438702327916429117728325177292466152491641685102050736945894169561245376723794527912423893845485416637845847279177871388308560488338074195513544373490610373018331127441139150183597406309255558482209423103017730118191849800363839733249112522200448382836101431013649824955548628352561503178464168960172206963390743952731688943972330691718557616862575519196821624310531376215759101639661824584261775117248567400255161282015681531195276570347545855459302129664420261932887462834119758873781028175301249365182242964998174869713622827175306553029293461199270867383419101635105210340854376894194247823084743080427977475690176557551105330884033248965193833239931809747573037403659357792963698741057879135879645905086637924904486334064136612262032300670555799370171117796720635744949819072617284510886494128332062070157787176756245504270437751802767563770047775304547832996372907574082382013011811774012237391722594102850515525612210780288620863987369047490474453760731969591959810912581248347505975873030222570066481411742940271687176117678498859021673959037044691274354301484552221875572939952015095772682137067139671954151727033302626338119666744415141367642514719260608355785067571691990090565638977078831794222966280807258756559485857832653212893369874013900579369655100894989548915847962801278833197848576432457776067889949594420060924918015831148923217579268553873046389517477794472632898074736509835481585022495968723004971161148875838648778420323874768790721120457546083442656112138330252709711498725346409295581417913453642296959795132659577137602599647703585011540462620441171917319237000585298547543670614991926125599510572256872369484688277643025923845761667026778560341692467308139261682538806124282975518078725952622412839988389404218887240517942222582658111961387815230436984283976058098593604622800736717969419618269762822693825531153996229109688486519951014842989542022212909951492491197869235331207461619906926325799377119229431336090518546826141410283437234990028225962654025527382542151755251717944507568260369446513714668603815334099350844882379252004733897129394356513560997550410423603571530953091535989978973329430973783563621520227314166561006534093205840174174127082751287808324492841114284630002543004289285847574127751574843398201596825879382049795241663314570335645490116512111192517148314408199068601144987801865635151171277399940822754517515130255972414242958923579825231924655599907411204324181544736727047571655030517767331528865872651965170502052273660003806272128389311329733908209998399839319522010568889802452545564513183768268471799355338296527205962474770297391118138911350277614739739555931056296350756005993303291568978657045673674588147893440759355322905422099806998371626427473628756449224391447510471530726518070082442602501516772569381692702931515530621113225378087640005225534308338446267934072503126185351250637597004319803301325590308836467377365089590404013029469276038126256439487478955680177698754119143479708427140132482041342488281223415839999079364117033147994265257997153633554320303328443779579014441713132465465051613517988024181630544790226251797187528095085496581666175493454664281347467405562026354670328832875410526893905017314097187793146205037146660503490110677308658715372350051969550345265992582652310221550236730466817930133701958569298476469139767706993447338249675590214745031582962403681437754569501182574622188681252731562689871294323502055171557194971022933681600399282486604446632669022167899824159754826963838259933615168998158916207183516940979769992006558282628786098815507063566814371039738305479450973510962464284399036239714438775917677836306443530095286257847063027494385137533357483849389731945625092395855396050483954342738730400775954860562171050495888865306074325733211184631817187594482973475855935961284657457328396812259885529164632107572827008470231120976782239531280143374360102479934821088118726749428263275818879831464531497705293073828304393077910889690983985425677443483843310056730335480425551427216691700614920039265010030063052528621284423014853184993582148637024424085383588252783232634640552944785157819863798314704016030228899681802928402832894167551961997357437317162182931911027433801055308589056976099009926913728777341478551691565989064286650672838048191519454671730129968511920960503336854938383259031817762623038979561811205662663343585790676232689622831253552881033905535953357463213867781524755483096378336076939494678109770939992770141768150744218391699156008022390080815087471242828017997763345417596560659605074801561836823085712265813810326789796940158705524340378443879850665897740820907252451441931569149978345043179173665276758952363326814834535953407946479472723379676228829658600943605151905263069851378203265680786869142272096150722673497490812002359075802456244532133730952666990468161164189145965960169631360464018609726748044962042749522885550056605147770025816421205485106547367604025246362982030723840109903681574661568402790795503439566467667739575331610124176066524858362852855269302812463270740768963167666893243591628827892066006502344167650476340546380334082014494901229709078386164920463858064129333444430229468838556271290047155457709326688708935515915255166011629618563374051134578769411033122084023126216057239047770632922612893747266198182229888922804047047107700469467094714152738326041944778969043131865947414980264053469958254227360215953148577351585588885302606345637915325403141141011557967140899778786001462408654313967688614321070478922885263666140613266654284044917141753657297476048630293052970477087402750344882713799294276661456655474461751051049944243715147609562318138998039713792601470114281632520114707409547584653976957217495151230169492158199460536704777988583863471572543563271295387221501179354548960524623856909672018871694846966895173889762590302964134747288981854002228966345380626363150736286225952004508275663680108592311215647187265708937653021247741786557288711882281867932293335946510371333159708993431098158328435090146112803074920588463205990061928108176588218031229070732479582728052113022292392888865629623270275887321481898008752815566546615140107403896686865509824730798438945116020237595833478240486840070397474913948877604592115226416561232297783684831435001159700714096967876406913933810178762596128303849412617533947542661725753098609517302570324308874622168787200442000128701359050026697040569307424805669553764312815416818847570618979328927997183130139925845716069689757006440977858235122157212855892074495592309448846708209364086531219247400886364758504342663712483926379432228755454885596076686352092238606289600311750740170010178365880031792540360714381364336950056897702727714969655938980377724997134330634556527358097968071436273121620396599455291706702547155859588972232439905639987028265221548416780197968145548384823877139028675691610881083299663903754487754651854733672203303477275939411558990534723096042960210877172963712969647414019588711417062654488214775231696483655603492304084057330546065003832083203564795184728014282582671152536682804950278170081745654115791411765994833566754495405104895056931453726261974690047244533862524697059033710291834521611977665354334213962417307232971964843790447823164161291718753039058811454338155183941522590445388002186635398899109498748838287299126828861134709151957084098241257412648812198685194239407591838669720717765901864748138294118285559438081990066059602284488474044526535518952943781007745670674034255519101571356098510237090228382127009469749652920938277654262754191539034233387252214155869463822295880886823790517179420144332598078383265089726377886656028132072028119447220720662181323043151927566291125234424505215390614351307069673280749413665912355702715041876108475443253130255990373366635135271269772351212143684867134740698522706715663756339706234762337251190135914802259362872968159920333337043442797888064751533524438018540685073383811228523325572719891079267659872565319035900466045290728272885558223690918929674255934086924673846810239289693638152361683487401716062938593670189055942535891337171534832414711694331240267061184176902708246654729248941769763798326173056672673833373845285603984734995563259161984986575441268873239469676553846728818895096865620720785140412408681864028830846377090369603178390017516669906922068166480762998750546695165808187838686164207402194557203491322192340790584679034242601006220369697161734322459543314856618102701852288109899811388935516399418146744473917888807337542856709769430899460111353138372972122971569026217790404201865105547112487165699600008317335414442972211099839342559419117266164581537114477612049819758535214664521989388361025992404714176067991613229812899753652824605004800834214460216825812407683304600007700527209629642705910851059762568903408269362245603706879364288941565154779445519616359973452470068971528332089861263885112927887217772083467172211935463225836109543130643981847189059645659825899840724852784831092214716607746574382567800509428151886813351383811265505217264909336819652226385280918134228769551963992795371497987593494859550408719111603484189773832876181786296723043564631536911844937615999418604775148509692415226663021698269790459821542018697094310076312500804982788344058917241358625318721083081378452739930254189939212213007125857693244373153181706919593886937549015000876699308978500883074452550826742788622707174599783618363607770506246474548601650931502115468053989508205588004951813302644202534655246863640780344955794994231658757825010610178714721683885198637785384456895875113306530885109138775686328877139654782613295255754102228233433125523596141124753433598087282298156115536184000643952338279030225934038677099636061622829530773630817435492743807914526315995612027064846473243578176681305240486720210141635587363725436616036068362162346636926887192449888320293310387374505439344869612099241856105226725134741416675433300370321390675619916171804960843979328688706167956379977402004259126856038272989432356496556554541701891793421283460646040543420838272557780790453458854861086725032414027019219609022867496171155734730754817884300807514287315207142041786732953200518608859830307755185478689460108301117195526300450372231804297503908620154800375633526931200142462575009990868488713487545263445897835318676066730969524050464826581046401956585379190954461828244539675005506532123553046594084951871808078199120040111242181788869225240178732447905080121832818468764732457175248146680236905012050772708478278787110803387350074236889085441612319342309730640977208930965644549192301511418463062431799545396700946349828894401208067452439599240467274983646299390633891195545315918910505080365800356594754646055857768338875171069303990271142353341414350778632988227978783076235801702346216521998832972088523010278639148305212379873001104372495320724731587347683606364835436352518371967130338890233799168747568346142093274452803387794817112597519559711060182248544890696828875857244810527255016503463993523613101855017521089912768246451315239177611035242851153464805393234052571794881320085321191458797995462148071202664840678463200802488228114209230799707807094594457406912154231311560303803886670224483202270788334984817987527903106976126366726591135443716379459033912684079192123232802738983783982406139369827368320737008597087117106720933119516108767800788199338737975661497440389035623190090103314915920201983678792331503395219332683242308018412201315936807763925913549422234268299803100238968991032112010763537728047650873370191088822409390561920573747655720118535405810597401351664678629489960621308050305463108508748493664812818093236759241645229976327197382895743572921069742853463675923163293754281764384126532982657492371476498675008697819138663800491256119010707876550532103233409421364125203938279788319682813456755585961237654832837164387468878260506053657237322317182719363774267346901360117136730970399787862128234900582664769383654780229020789442560207905421025255470303196758301506006642697100988247743210824138684384643328558658605688201875295550046639276939132082026348867959406744569617151732891391777073566986971834084286996639942429826049842720741847915167258898788225590168073878332791696144617681739915574704587470479891924736806544295202926553269683794091577000446364439044562888800735445746283319367560385895673060480120733991370401355723802065158517877183346042574110956466479505695694619680621167863521349761647602776484683722764609475020311651130493448883423285953262797606746471644591628579680453289911687471012931947330276598412259616396079952831975206285402210147542243344674365698870204772193687893901137304868292430141407040961250186407877554675836235939227611166289560477866511511644248997004559273168209130680056994673392938015068519481715713925170353659528218552363438801382061661862502521348058091744579148919999057285058849433857407215431426204627365943873530995261703099752812713295076530397448338213272569269896734926012889146696513097451920328686593533740167273661741842799199694716893487232788014167505060127459131778956461752891906173044830161496509275145114337746620705319850223704148032865499884739899652562980983047837591774942585990245327585084708900183072347765825183359356430155061186710429381855239997331848397835759660928344200090879673332053744646019184536644897751770610937198238667250587783391098483733091665436497879478654233935961759177190886148680003865594349011744745698134963879945523611883358811311279685774116924538615802168107101504357250905485050139170880008929449607241599488089335671301580844227826961283835330706335958592201612545298391201857054667053866120955596214960302581016411165047306256383950776430690131889765651031019587355468711062552020671347546815283824991254181784588963652844874944002715923851957142050189040161679157420826745823425006045729479346347240102420073783828805914754957687988683278592935759785916416454938717870377574927569531570089602855222273421805404204859710236912125953591872602617583103829798379850099585939361335059749101445007745145811813859425456509377853741155280247449007069478918300958647966429847314384317093751646486559107656217083786227274236554086370290796963763672508866630107337605000067654008079839585961805189901567359913595913282684302875503343233137462267365894391069734385549000602112956404033992806381168682660368090813263161333051853883887523227071600559309318519397839910226968164112404699908972979525192950925102075292289367025651056849226333499813311524904290959755739149300282144698388360140958371696963306087757195505908823349991722821596929507533677158254270327177717914213883287126344019165890720356023417961225137470952271433818970586055000873399566312427698513461503629566934428398637544324523168645503973358360940186103097902524642830995012252281855785619625953937845920439798245837983176192687141946773567809774031597848967658816478102538590328411600801573513953249159649527346697579424454710859423785795747817735234745106325966337743127127734217421745171199987651495669255546383739118364119133658227528419131530656984072325039684967032212517533404769535272820719479381895730776769061343402771441975044893721612323403746673827631269240004061112060584046043904573931855924128176115795262852322425037535627257269163715869715639011700755618061156822813233721987364581683200593175165971009227816429667195729131533715194532770983591844844214476425894477535639471132112304371468294596921915672191869719066364952987314045709278537610392676628895777743693076974020312139761894169741537117828208641026804995595856009968743847964595013794119505974018850360953396969138619499149254213726510025690213276583738972046667230158076355522838985127586967324837273339299116469002907562283674747122035642555085314521713799857490187452533270418288127362600365809979626667832192643671772759114801124392872754663109814603305955518295503724864818946824752793789773294342815887350671916968410205637419361466831230144587860510295773782895039801114871726193800548434142782083582893867601591188188329795308458047585431168347389276743773862614080725384062615537258971300915096030534631504121072233823040299645128155600156878594218112203302789790429201098538322714235614388261687966766304369967936286928875944059804009186746159013319077841698119786924738345294097722490188939739305773357870466586892207262264758925871452808904300970494320341904776075402763579446502983483693908574210339924921664369492154042178800448621219627688167286784440236409824730548709042769687573944343626561046987317542546087554374887556579850387345700416666519698524143192773070728361801759753337912536057624797990139964263181207800817493582973299211701696166227533586173908656025911786002246182100560035578027649692578548858553148568177837499559757267361533688857527337565105955184520390474435997168844518969178347688184492700091056790198669384543294525357795957590310517418142467533067989670384118318423694815896948092051170675522049269835236342428803662432817821622980203947945770613775035340585952655032566482738061726336433865306902909790608108221090505054173758110642289846656622460285214389972650396424697581367944453466695383895565950358086430255412871706114168453766584349924789439429064477438506892433891232301316167102568751253079833154146258163898245415223265521789809981397840202682388429065150821326415650023097884532504998235502888015030968885214588589558386000841573838484341766341775605832269367140338826677655509079243485595597390617416085249804287397224489693899543813260695003990651450322864592873859913131799513510945382578005083395465759608170984027605782767561526924754027816742037580422314228374841567696806017763763935054852234072394521662244241336558698673496887911279606909369556451762589135041659118779959261436766398451457937538023627313393532683576697417459807331699841297577684143909496558751770792851522026296893742925863320316403802567986228184640637892847210783417383648882621052918290677807788420155259435958016189455211153994055446673533716851258898938108851647444851247093709368434212380116254311543459971111198794122290440071894969262452074829613429177226018409987810079658920698688202154086206855512452117023936882138244886422161865460449559067911042557291935066522148860238765065422624917147001904914093279326534283504705316128562134298738828264802628047082431564633460503274793060516267995370269498802932272582707081162754053437231738198908842408403348041761720843964905807572337413904411184652751525525484527119537531565186870805536928613579791740256589874394487521953975666795241022807617406076424273980667365832649832216347210039355757412091880050064795844090929588956380674371086180037583408705934865327895225718314669565179226122748269477353042529631454191767776607033366284931414373549378997428738432466335517387339275577083621620182540315323048832302848793147659203539763998786368696197371303603155281037743606875262976084438046799270283544804364752978081273301434174366199787840954400737673547139671066834794815296461703648950229728853382276819733603561878111847154556646085206991243390403179721994723752380796191076827100464708617965033965196121963482412245858029494733915104812536553516917248974238442694625068847585985251264352332410356372015212163282277593600306532210312580020235562957866800467944915942871628222913304805136376832893573063331397885638546594890432038173411732283377664773689141867846490632738476601376668486015151695111196364605885254940295116838413820325541081940054277316678544981762715190037989284100091036614835820758284722018522821081011294546426580288962085846619343161925361452266407719295425446168649473945399994048078057809444889682405725221343270498942767965766619693492536668349232036610525996216945243469417478744628924709512540225657875593591030534004610210923269704568968985337164661047284064284917304523836793526508007304164592427627833088207667846179624681827505879854370801032723613922026223917631888258987351031250321324648290605062522353558603894881949720683695879017511803366671322855160986264502221918328455384362451548017859677435799478899698458272545990292350122130598345786887559878303230348853237023624381900189940019946853871808217498272517212286923030781285616382486488193215637324844366402982515662846543800969286095076298673085079303157982386696034324420706553252301312959989732796216416286555133072343485374754028177314344907710145088357495088013379199404380815051685332784436041686321589873003405193745653644753390563938539069342181820968938007421196470379738076070628993793946489511392339166051997917390786744055338949200381946384315107056126941104796749492505107545373551207548291435574035152533994765806804485829150656743169373546141338898852535122468032694459301001589797866113101700104619469349674309468118189532005340236035048212202773980329055853354156521565714636901595600625168892850276625524708452361286238940565650525832893347694983754830692204629935468198878608619754497091727810435286606017384961426581802291028872911540301099035124691576701724336940920301745321999585201189386448595396643856226198655932089911275719782059451468800324535120893853928199058710552349754674788738485492239221742490108447263904117116919980302668147374538177128950388474299391238161256406307810408015402187936742493429911987443266064535241011612466601484459469707548479901323626779345333507703508017886001755685538000878599670829327778377925641112816654280449313795069379806524809789371409779675426592559194077853790119798770804345735880314953472831560268053934392650515683148938432355429091089644967912676622290798528703359557249762716670577789767938932287147014993343686411047683692809696550897643312268135699259896535404794939355688801388559546554040555582932275492320956752895006280893395921045851564451763440259878276512292062125493758895138119722654396427271913492972266287920411068328612275399880117060836791839516907834537054884104543258281285974541718956645293036430761367977616259097566396128367839167097105738341732891630950091198853760600805585719449701768526110128447462811513655910901550247421941880657436583367929779435671533507968765393689676928258948242263586410503392724001686650331760386324693857415957957863803514380683308659740425386189291593111928412743785251774503331371825036148697930480289754409550346266191143199192079519500826574011700888933403154050283399582112671945726176883036039207773028563403011404805037491747133275287050446432371299829777725301588871294003478294867516694238060044825514977581877270148771415699817991811202228666421713537973676100923552824616756212775821367309660637506750756830971931223125828570558042268877366370124305042400545414633008840155700798014537311405457684633377880246052613058476559362199542003562855250478154055255673674665503016117159899146739919327967045269406618346023181147976312605569078071903851392276410475169026115126052591149651750768964755261285441090294760403804266001386387789908957648913832603343402619511611477706532428038013508089025723958368492017262748080631226526770436826326505506420708296065697139773506375619700654489114557814994034223608364371847186765090546392422631268039505760359181011224412334706909788383312610464091633832058584937296062798350457138313214140191367309951013515827120733281721679499413341048600527844697671127027419673871946215270041737540932092208239269229161234068580933141441047453602655007030688324882956153108566042186511973097966558847622314681741499207653906886295029565303876065926556044671969671383907299022008868706983418711734860842144831137285526320530147991252444695915896090738407032586461020755439007725918932862536421874401446264303245416472827434464757122857577567785544046989658078858828038048625077484063193538174867633853136325745607283414385450751500895652473875456744954027144169915859695845584971252856515802976668025427728979441661129744708734202278718934229988263959371719762754922941652957988192890517204248551734938796818493045239943109418292094457460256995792247786488841263644370833475206160548629065002189417235350394121757036854628213891719168107674578365761885671909721415918589400427870018037361369093249099528748571517454355031292826255744544748206392488848863747985784466716492438819945097456076357871541385079134352730586164933229882631479396536836273285420748197542177507373275878487736784549667937317498343611426394878142691001599079682913445598458725653073668596471768006228089382272269472309324937045792876039308395849099243714031927433498239906500579781884756176073803310448612062301253067827710895520674687371726861555596259047057556614398636940323256814710171291487655034406770776264705899927955463289930178436447974480272889636999533897282444039348677304905332002760694981708853690199788705429434445744206397877986246771411680715783575992852594440984569954801156854216317518880278528043285015978825650135479980509309764732206794982086004179660348071566024446285609768835952857265169969703982655721504916873981574711539537193016500143599596075254942466891478854524903409902666379867148750374245136614010044732633993478383286953757734735861354628532624139332338332266794579544121464396587419320987618604875825169336734101758343886756096976728239418316715781618776642558762063439127135081095559910573535247884056658242942427921817480739372211616761509731519186879598404985988444680434561039038891285130617881193541988259011209619556652383941145258828818898354516933366859338306679783301962660409330372809537433515710344916669017733477165100778515622941113151898431545146917636443676153106863698099451327427534534408750593517098218407438250098593194406187110946319535234709067475535223567161119269602857685542315505689751500711102549949686506651094123006105023781232534884585400126931546566470222263254547572078460087397584682990036495497776898351031319544011966360260382150565957476712774940799283455317143080555713968210094561190205828148737970970626933322100208552609335805633742392324497144509416765673506862241390508001842211091327634185647889865895174202311419152524945932677708259331624656780993690299925352895758462054639089372099538903109516259553974602081918197988443949544226822632395178171912664663036589371915370823513976694807537556778111136115078092172903795294610915456010998433299059837151362189504195815003973562511160139994375629637526068715880775135296126307266505891211943832743449884457186124915176840761024871634932959016011961710419360451518410258265726778803998357331665729082118826041463459557029277662260446105142638917410529513857870650907735443933035232962889970213088936962698720815091500539599299959882409739914493052108175393530651728028169474384035654010030200158306968461237237954607603527566217408103020679454790835750473895135119162348730453204775192834305394112445112613343663788010138689276409861871405275844934825699375388470152726741357246475980073587662000592723777757717472781106823957650605813542737747060558668526456791580596851574279798342354520709352511294711053227824248703986051265698728009933082646300795790997205433515522868580772078483496485638021912816777519788882320329362984119584691265149188197490189508118158024433311831292220639235733812797706135058965223947200386241748578472918119254843366129033790346725132527737482621756820943611524633361925234789206826994653802482432076775980053837304350119975181640032096136377047733391118493923500460633043244370411191033343041478617467023918537596469907450419244982649852931449206013270933777067151100996626603435607218114392477358475868487648715445296974825870072456810739559814913533257423037683680876802497835521910320367483075268616303709416942207947569204379045235254478162397251131951946167506015240772517880462649650380617248256370721843718736378131436699953990639296599695322300657332358341421213265363230549370547265835441349017096138928920959988335969078434713993326674389273759115529230676701844497685735891351956296193646138036723334575773372387135644540670670351359693882879848666083788280241718819214121228506733048103072434313754096288250894588387049243516797118343120725839281706987076102875847848411295574391729906785421137707423792551516859040536766062996243304568005023589969165830882064382173969080743410412111671335572804930713049705345464318947690676279858288655373370873688723942209137951205969994517901766614201725869519967966249897499285254980478692584793946647845577228785800546950714900778369019825613154154273828649773502469665589069848680273942011377316962579156536364012087029983272397422006922937273974404764411065787405565740029342515785776245696210984640489078627417911508881662259073071970244723067351130628705055500612730021764154292622445484661580191366247300038192804622553224181790228749484220632717386142889752055598073062951474189822240657946356965163918502252024499519399431168867969945192255090052910424897280881414765990330453033680091834466200189857659367816113859096914190478514732802080987873808240698749848473386689106526818602395176128994557957541302092010326370813924812551736741572119962781971436133681239795863667494280360613587925567986641465920336546025890655193696715826459003634296506771005401290344934200936027692162940583636144758453392136009969255664752948730097336928048086779139595922707492762872108410799163498329923340842504339549822491114050056196863036932798545805166516270202486248617783060400050564682423459610630963937458111018736555926267281489866677800551648577060423574017497794861505696631468186186297768157912483034968564792198837258192251143712188626047220081255268521347166899262211449818849079857720162258073656445697984614710000009476963084875429257000207840295027177393638031558758615976263654153452127994840531949363454132585791439525948254736745376474126676446614935406464443654184595014233770906915151081370602943355468494600319886860031725495890109990640153760872207752002183796381453355530563323252798347102957134749111772928909509183682760234337472423828336029128593025832088680207886403203062086469027779488366756953093746654917039524866728077435450118822433721925783952588378149787251609391775937776566761338347323099134588957208477284541390176898493869261336292396630143328217850805090819545448765690488561161452891644555134260931020096376565560771644048123336616253558231615625036273148082862796021857314303171143622865402751175181048300767115002036443211542791634205529992058076464973113389969089361370139459461390733703648792934835855029248745433358609653835987405499720690622002408691040789849314366921345393584204802267385928906488414868511966285241080176499477296638917185636716091890014337114233749563869411645034284872981506746763031691575458003078282150653403708292337502433856226186915525778973368200420069240211056272671134296906067678242600842043208526666123437084677858074481158861566605507421903248028496932294502455565950099770529374534536265313449121095712684708703068634504799828836011536536736043358414204738443403053840547966179873537451439814315781161585701954981852431387518389295740448029989678518160475920233230027807589192380737040802599861651236803612684842274124910523771790170954420235887295482869807882697821186858112957210028394536559411196909157880411239775333112133749591625397298522817516487791541560256260480955684733661748281916286843144870797057404098063994427140583155351174629055282568105110888691323253612273765957677916300586623682620323057696747711323257696853646712485551874754863704381679818908345969992639457113787012033883279640283273197140860717057010369763355866518860797638463177099094333373032247327446976877335642416552999793196947779011202415679492669925170916029699415136220630908220087955165324549190654456224215685398795116263147133135978619390449880148645497119848517807899696179328623320705710589665929540563770529057501227317067237931845790850018061717482425354029280759020436967500456479087072434276129680181369954340031356980194001281383360172788696190920284416645711171431008241273977710468410452286353787322604564388877635606901254099298615352713957019855132316879898199529073094876466003555535710763162956890777665096409887268925266628299045062092575028918766148302779569514150728583989409954618389700476313648709093964168826755270451327780696456248472554597829388918423161932808260637005013735367788605511621147401623838752608088465206288521431119282026388916559739842326964354247770848398111885669410011843863432875321974072976062497426146312935301130413069340983251241853160605947386911036730898138968586525382970632319123743630464685199243361798364614984622831080637477219863237474688134976126864946907628868092727282622329164536968800987181218002914233274084753058917326999714500853600961173090011862024379130000314722860172733413422175305428791282598849147049327885610250087754982632437452381369619867529709214421051529875889634458154639878402927642102098535188922137721568045082664226166889262008164786126160361316076389713012558207612199092892935654412675865894395584680652091600070835396901976996660274676084655302030122992692861029507606656138851309570238311183331561763824092349623314972420799734433424799092817294909207963498718921570203398298674008869562902134773480193490676321627131312998384687337881593176945695506952930066021453811707552362736784939753483057983981201508498986144173595042317171722383416353165069462674510932635258768540076239018745953742840485546946009741807240355257942552959786225893892943542318733076866903441554902901399324512180322692872537373312067861981917634793910907442917108220196232051643972937042715339447363747038723717616625547380428569154427019781559640113083619294667827268933512655938578721296476317813421461079162679363327808555476054759413431220675031592725311860680548184676265114664669106194805916758291037015119884379736888775443661063027555780155740185491319854941791914737094964833004200999107018488437471391048157868309672015486155988619995326311346716770376708105535329929888237175862199465105167861467676129817570286913673488138622411697310164574305429323312957462420612816912289471987657656302138862840508453471968584176873989321239579281667961194463309701409152437490268435526098367368754547332655625121838618755458358584711651106899843169974482085067213689999430099775964356933386316726920578400705654567696613838390789348823744650682424477536899215489357165531241509283976511768621727320334653257455467673641176294923558039045044070145220917420781971024307844771081090159413026258588998896711785271218501312784780718599546499166043416050715412294224301275989218457106035461641715055297023209620258373388986054738927331006042689867258809656566931740032545783113305129684689860870232533850898092297837780801815355549543983877832871081239982915666981092602519455679703862227050522530127969916299140784485794433705406922069697519716056857173107814257570489715138458051583413530614569742171517907830385432814257258854953049716052291346874131137121594907425929193431359768062571193076590951631870230018603438463089763037443696579388997177520657176972639183231520934268674601324579107954107389089519570256683414496888219794003827752718700972829999742847444861326992689247325597424327213638355582070966538165779815229598298178998266220086197973076092771260832526218483541068094720891471350552038590420450046640729406209893979100840687360316295174695387990373591644772452834568767762766137510529715594609835765484368143458724731816871056324599481324725756210440094616702959019620968441521410002228087894507079445784849171724217393852794145392942378813832848326554044207066902854555341016677641205731873019940374916016591101734972359981836881492164794579302688162014732436333897438988610696821521902510160417667488848409117107362525479288812422296974932533783100768962107755569163131516458363219021571299576890834674217843895507775066175388108314511333916759530837579383080292562576051420349350500968568190442779733950513000680139819585313044438277748842861746724545394263674524358939820647503893338500613101941184302039552642500063648023341611793247019226457998976831915605730403651271092533464541673085488519332530099270562405741011663483868341798593955911185611257378362181783383840172690321631378502636502768032582601550446100191777439087461092672570706363175361989746811151583754990481309635251704991414640225667139736902705752207570773068823783484469436040218316443426093870901027632536329921065629677020294496616215783148340017128824223570347020753139457555098355505934374842125449975494795227724160346355762259674901885069138190018310187502683255320544640899842405038687617713331359844204000103685719276212795810258384837920702118330615689676455085073976936793249298530443194164252387980613045919637555799679756930029624935571973420055943988808662144910548956916233014779613847221572512175963489758273839113042851300280294328762577779214416656788511202527603203396062376013425631418937897474662828343309101229541989702248048163396464717824469682799961070669268971742298248751066507177924391016313727011298508049778594546690370771574186935623560497752584267125366024546411977725059863493701996218076064135073082020250576449709172027825187821444191514757551641174037248894219567020627282718195982100788723786232696113391401610045202275269900496716379189846170883271550034356312546115773587225348635247069616888025002342042563820327323908023345775476239632177836345987901634003487450768311916601369314772173407170361143338582020556963021174158243730723498676425111156777846031331246220256884758228395149955036632760602071964301709774331942874450033415323124110041432445797357360546223056902879384181973932248658703529433916650698690137141116353984326761970655986650372361602564628713467459248107734244800061832521112441094375986081212547088762436491196731553338376358046107422668025114696120460895540888623212929615877459548941016997964955751360730694911686457223696447028357548044606129877852311678945870720741669746012052251975371322870906230580934672531907578884209038853918142007591578683507037045769987692852773130873745378354353071886974816295749582131601778142934938391022128388298116195826173640837376131904642572379032810045194831975959308277234914164939870867138612534277096424581540871123766209470892881569000866569313496609817204275311499685593438220441445135432449307645671124749697845991642280337991399707105911663208691849004021473265113564083378828436908281161774767790438222842276470792468051899875871625474683162701314319023824350869273238296518380432157990069381476038950651594453194718770632562506248288573072287178394674983584255315663624700980217848088751955346454266841337762228588009685040296006328698495196005999086969631111391128587003619301539816244712476072517433290068790512512835722459862186843599724878828587939106380899877801065575465752987362958349119409546179136687658577364727560509316366061359804778449512518702389285719526104349988464522555748268902554201953592339335280779668531477592793088156521531733730108633328845454785322878828756722708658078644939835606715334794845921700238047088189107905454425789717278044478758695970822244012994167169252853496457029138760877382786253455960577372361961618723784084887336033082804419763959056339441715945021501492873142429620363086555634700173287875185633314494950245326368634932237341098529969787226499540987464420806032227845085667796083500468855843320327915429401748212092834006053855600989128859051871805637022520562893565652928259036546652331139022179283378997802308137300519481045908827332380136755467086592434864775155346495331436146322000689686799617980358817671503720694366016810682378066123551226059746852559646006195655884715276946217403155303641708502286548563018858193637431532588225677195804850496038432695548580831950303314005560341879632119457478181553139058492917225213770689861017594514867254517604449451626403799773911959229145868111538330312864927475174955851395856752200533293149392045082777353793013047144828991304172000179175426423047612216938379650247036515396412061480863900910148456437926009225363323523945638194177577519188513106127567418668954864571272003762157020353137299180608464568885674868295794208951237277823246480454877483790618347357202569924782984349553092011472577940213685417348412345061963133179910146261396304322727203664707361329834231714483068138932575748820574146675258647106943183260188635686973184043002149316342657555018613960111719922883064650080207316611251754604923513980811944203276027004466847999041185212620334420926894827020246619750869657211697020073976725101905874693755216148541142774954513621424017093410980569887516921026530732462781989925048964540139897121715363540730208355544494241452729581078541906635784438173218043370344601973116974570418595125740622950071840356867612493362827576791039708039053405744946031240704821843194181908011708692493331605703096821899530552765906435750592486552863490665768864524664886365999963674619939844499487868756879998467402417452364830111230262594927141912273754349363858116480310415191900233441745789184905376442014421163706755833042040395711729844051206233226848039243402246317151736965533006999022875651683915635132036956580846383063563984500024260747458799019920980234091583127996888725440241703183141662390608905900389160446078129958132827852595254474115898615421223808019750464981485763425156928967998733755382357767047362241528852447170484572892896690848268786708043661329765266830953168850910316876279417824474936693239313716741052081123338610230395020109098873176985801476974006888083321348110451620991794977171291489731902755350892314093189814995824609372310972603558775336750116472175511047960424960022929188371958344544006977009189599077801292274216029183610898492367821854983097020221350040660538536763721016317981721075794965734763241794755811425359179653543236058922883767252130991671505877192783863209622326246648059889111670987730156824099173081480846818041276377065590624115874678133716377947269769208134990773733959772841831748092443226095284722522307402807635607952109555791206619923094920411612727137815127661718077878210180430062196308452443205597566118855594227081959694028169743261085216296283445898747617187881747785158651047866916103593109971897940022912919068697766759034578952543108593029027271972790699121310486723836216203007118827854112727050572962478038697951585851206149723538933047172024992842021191092869123949319618613481501508651639176556810909397815934028182603811704718691472444986273714463550592164754661232974004892092925171817739664668665646259359010205111426816873217727579159058896525894538656256148764938674957648430849065267180816556537867701270820998122072755099270295556167377670310958645230075375963621879820560390107919692367438703309613559519922292532506140992944089017620792047633390585575057623663226408515340884975969029296847953451495459638987866804754649942003950533632467595621499999351214870117482825096359242185672897145630732825374262514904260107109263771978204060881709344584190369908354750748306002536210395095563724908493779688912061811262973274623249305728861591071554849038436089866003589074443022277928372369913987220044295512413628849968845050255612384134499311689935974702819003275116769280556861658348935046144491275570053061643902567997598073373980126179615328802829226450816449291744745017567186729603483445658675136922705471727756839296567018802279048132859976441275331585317474211725165423324651624594000832423665863287983978584658645963275811589265082664820296062741086161264760046838480607378525641414323146986658941758512089818516279517870309171502803347874831713306855921282020784764377875786347016863585739091069714443249332584965924141013164007520305193822256379669271549953455151618287758972212418861412555692515998540476076318164339828412199226391678486221716088461074628674787737258105176703059050325669750177184594176710354484574448043174696649770072883864979079603237697928876462981722612267822399692688938571621500433750585654493394728191316031721003963444151159042050362180246998652624921462427014397455834226227169381413677182293023297338050871328930141685072623336383701177736801221823375062944600453990923610848449032793400921656138567220262298113880667430100467837413701806601328164140117217774978260083080342947331599174826006086425150359430283978082142516355379543877339389988433015188554517997219070232611871321619889742429266629252696803029525695381087532367368503774576264757692450899970159820319980397535684636269825984972062691578371545544224835936352144527823113434530622345403363724383276392726381536161671864810726191465872124955286656809526202527119167921641606949886593790692902817816809245209532065756720459605448065090833868846474681845667318347849786816039680411208791198230440024907431011452592958575902053220169428336486764633547494965208971306067432799879233816678463675160714391501454057819452277644313199525328612854291401878166080151814573572440470289469710927851670445094845049769825231109905723096539423146513752617721289997799124849215079913280160999949127596688260735627762074908973658484451342163496639988731262614307584209666196584774524960085704956425860942849308949805754979784461977325276604881795269692502599495394674237557809819838026879938695125724488919555610012808795116085574492071125281953295085324134390434319207331312627288562444858786110225310546965399524908326533480142581472773330250536630126595024036516644441504032566199201961077506821099354002073998523610197758171781661950049466497585832845700110808229081717471411170931668418893804756146357939664929255217116783087169200488359190800965650770912432754763154390912154409693464192933282966044682212802969198735438831792071626440119362607991310151717636984167238953664747697534146067837397554301213864471586177434101273203780130122098952305083323342667591236167981699246725581122181005220371882529896649940801718973377397002695896136327872896311879053975077626070362231406912277916241721027971169603087065245022980493659680158014257348122968707049186062616402424513699791859788730137959238771693381491699834981458974095625090015157359639043832866038312143678292510434035233855704274913739261101788701361072430118126456065046395265181978078605073690982124049827494127220719886630921341494087500006680866325610977310699409799576422891831783918005241531717846276615819959462507182161882571242887259246511596428637863813289041264778867523382010269552607288959615520029884109897359458571322488677791717144426219299852923595173175164882497256066660354202519124610666827618435916650713600286663073182704741138952842445097907069536956358199631279795348138276919809487815567999531301524039060845755576502777680755277118464791971495890774035528189866804849735388343170571821342387905450151932000065435770649266181430266049233001222416865952052068474776701132521846898552926006068330383182262865606498048219602345962993898650529115040921193413962719787760769427555045387719315536917727250032520741446604735521214228322349822709229837684152008827626100354657187077287637709431530761384625170727807828965139572025622484046322073352142683418134206212806968784123445145833089858835145047568757166183208577724100306505476917920339079720020748187287713880573359859194933678889496065765777298203476225118439575576118835449368774943204051794915521586270143574541319054073326328537774094741688574633422639873758950612488043481463672506436821049829938754810957668537992544723679373374579950117180991271590994584629164303279550683507302799536331761824852699804185433827583996395459980129148023575753652404449047385542128294437651405498108146212991171013949672340703306354683812010897572807994571607277848596340748908398148886470774649585643545558625723787229190961034030487871724921500928810304373598369409333865186759139229706819137496437108448834262029605184309133363755183438786948095737854672470988566410050633928331723303144546220999679278815477885491509409174646137399520418748720734359125350114301609383154162264606566103739889298393420120838462461643913524986754172491573386211460417578561265930569913728098112720011196419607827256096298753764907277203553817285539875850889977789271470475887016943528121734041254013172131369731026877308550324508346914202630769901625028302772271937336749612317429260828618379676293342725174360407898490904254182961897758830500210363218913387392477755070265284015941151083586949686477223176078357113233360578054619892570744635474278619284099577280757039653405389711448500564418818628402741871895061572653789691554687547012395757630963664199220148832406678635995975199435492227813796577682237920101793362991066136426306313862796999240960473089664241233359332008456131631325897332022023516085553640950784127861755216283830732759846659073154250396933976324356991970738853536618304507005063981048985792142417967504169760011173077590533473192960333897007687605393752686765890783430013811503380488492009599017595242037593307629663096989046605727300220153410943008014171039146034087459822788179884296642500471834228741016943320003522863805562000709855390809826761085070586245131734977457007421048312078139226128909191956459406930428171265544596250575409997811199318004609541800952023818985445575352281769648806956777059930679377735418254279735392745367599727200647295932418713194545884913479451197992408544118041139629201846184640316014718942094866439789210447235653580269016000594034710580611549056891930965486425057400893161508848732040235194509821235577161135254405169707967661066230782528392626971778085364452936827287863746356064260072968649965007597819464931205706747064425537828229867569429504344962802742454535571200768959849549398573431412405638909204429734396719396456229527271802178768204112608645226432282666336163961059001637635178778848774990934571802542414982869261045417669670983590215965242195519819117492170228404103409974138199830477015446441760663172620383737343172967619892830928873249768994120539405722711271307963969510458563959846498839639780518672642534523577522261534512030959791270875780900582730875688416464172191335081196633887457867469357291520744137924301407565954656567529553517133472011595795079288646028844016205746427816399828375392869314575917719145906114847935491346603652905442318901708225828622720350335932552444397119298789314560187686629538915148620411470587797537571988033263574056359720046023729264641531295872083097757229414424552511903952804332418056124512230217325756483943853733244682081163392545521430001477450260723000596015452655297032114722280133655860764156444537111136119901397266990263955016957764303246773571922530886854973855123618656001334684973145229782426051764406024781716117623639860278429894907638884395877717888343656365789801461964346902788347072556019178959682481703098119651387006449042093801205113922834381960651604038370490224221694576981172832938157057475329559991002057656786355208608242891966264133312289053468248385603486783406814463875551186514661054377694709225148938860772721965780623006262123992428831737109250147945579195439147156176718839628222574559267282593631828993926837395004036217296213515655515399055491701219074811888053225323926558049436985844408936646113497930345225179471085126246714250195209129719865398826810798398265490970911165966206529471565450184619883748732646223926002555195839828018419214683462266208546758293585239081164948540788140357845873017850329872352508993327489503482270591062138179474909658053254993565804477915282411695007887558304212758146418670708574052251638460970328331830974402798637106673572295553324557247979816677732594788534195479168863838822152454891523434081209726354599160278126042951163113045150594658371297414368168391547164858386659422209204753000255725881875636685327996905977212836740381095432758221460164803613545592429836650277052200310502080556295055757949616440976021866000027321595911233178868523512458102211431525071052188486827713359999698998257169174302979469554634921323714713471073966663693267522071584173284330753547203326393319505434544053356483105933636513928366620368582082543619935249571691114170362644582823335382373524272398537808129317575114944455215417109193858084004602260567909999967087404251260831742665502101120240567926607750378244733927127432587736408255834794114409300406090096202424932992659319864495817205076958796651836438050381007832138888281935817100627127322901565217582973010272392317625932115818358975738559482407663300262634006539627050513723918401594056734562474145844988064463648491096957058517831170050822473454085872078079052672715660340630109210661776229022874175006276044149650468831950930151357453839208320294914812472035316361810092036268713895712283919568341700167052553730198297741088647986603449560493372086267451835024009157431318787572351155272640361620542668774473567328289442798392263069035954154888852825649348041830769838035362656532181915547483694820287313965014981331936179821915244533577222554074794975155634250717323318855653688055854672327728517743332471991876900637418581007730902970084436458805388554001341253672396738759675911768929695630543617645294613636354991848993053421131708402365718318809858181529876318141886109037685570418157629877297461532056151398198650358651045307957197318753118722751465954591007743495299613936237109113910036431533877106644349129738349284962449735469760241910586262173417493496180869997873888181042015331481335558199893624510823124824238089288422837237192442151957094358344059610349218458404780583551382109707491972169649658602355175849243943915147629046030024634025081389178136382424255249019875086467283337709813580696616621232367413977288790774939350451184146119872531416377910840731646172787939619558758858176635101112722543161165670751851838882009539750667196010759120927089267622380624080306474193051965950140778289767197094950447741066226801494717691962027001146526625579232109803954591296090931864880327815184729177153964858355389989348946015004648835729948430551381075945302023630107869697736482973358510232016091141307965159717345023663476042167355012671552242176536418785211253258737937347305690894957766751838401632685442876762326038780150647875018074428898250282028205471655133481644515821060233151916644503770940760560558173895718860939593192750231831926815280055822897593746772458332594186857959860254018824814025659227945381691795362800305547228681256317804167078062581876698207444330406905190383716811833311570088950234636577809164414575420248827389088872293394943430363209678108560109299533243091177281252737739419529480191650684026381074789624259509071743323915717349185276548104880365009239348867957757585928435006599362337653490500628029353736261737708776330957752202576471432842046367931007214228453440417292058225117189485525487803231700908902911954916303110836161526788638175620276594545195240829773747383160313155055137531416811629103661610083172997909698402160294953629052894758757512030765363313231165166195514640238423035041675359251882653342607546376472391590018673561341360732448845453301611388448126522227990251798543708127150742859429538332644422230102846703268473547137057449286401197896357410917451077324435325039623122683281329919771339633092529620118712244173356420824016731675809819413060660487907454306822232807951507217447214041582121792384640803796011178386628182160803253683098028796210295489105143373683666507033668996818975829185524650099618129551439570546134983614043123950765022794044008759486557608896217919054857154218238012457811746080745207472466312271301914664555561532885551565948531646388331667606126142070755633696589113427863936324141179697245868096431477820940677676582749984966280285612964318505886136456773091816837278040637983749491709546901267874293745659931294835344202944436328970643781530192083912697882174472533363972522550961131512528287817652282159394965988223855241625061133562955177121589508221441500712389816959518651006745672183127172234070754722045643247769023700293858279970710230078635244361370540066035470903535239691023245102461103037286976326819097120913604014286067491023360667159617108957458478769106776606686114513856690528605622448232308160267943477111843365699529907570071302652066283360985885688908826694810477891725184427945453326563091786959394111212409250831694312367263574323985483625280311341714032099118948274645048958404035419683232479745396352596955259208948760412701895876464065076517832392297913349421146232623154301495172805542183001400375861844292086627669792204367933420828289591981233119979225631374875828016839624273565328128261680340592345613433417854858231601004570765156298301680657407692712290427026005265882492046574469158101689196754940757611276124608078620228973906426834514870755546636904614948355957145364424321523990471915435085824325752962392061954831759239400464949012986583423188830563580326502313461417813790980590185370504302421922137065013946980339999546805368737536067706081347928686212138823709782729127814484764966462833297716810193237393422722987811756189817957349400147613443334084875572799213172073614114620276558791228149874381346270717356705043486179831750765498280347052882064052929408645043036524995113460849120005758348481958496017354755845062703420658806325988914652430792163436421620262084821379333571865302534667757031168872445401143236990521040650699991038479334616179123678400521383869846625675125145906765783123765090819927180354163739524792303401962436314901208723869412868316429969907165063851832780436053556973991711979166314373524582675392516448253473803732694061955659976311881367921602392912634145471555571832142141828324189436861385144794088842428103159412140016283772711553373864562355034650965182041939687902880657739687866572771261753074057266127479679474638773359871010212093174379171265143032491850264113937376660784317710848847660060412607057008673552455594230350828714640538279166772314677471453189879674875906816720157151595941701731260490100950263494825587574429436191016706436444939046700268379872155779328401949491036489902190505472762479887430423501360688768504525771850107716408468902404990672379413452213104408152125518804348576741563692117754814062778465339913256681052411557030983466613076440647783982839167849914198414648940512165422521420178129440625431625828806035903339290800624631964528397251593604626070945226310346130527868968672228295577714780297754435786803869576084810152382150780704412380867911922071812828832048637111438887798095537177070516391073858325561194830636559855360108784879180850666244849838343881445317065472610563193225196631660889815139657622405256228710209175855281614482216267449152105419838539724908970284900762177342273670729209891514547980514133024542316299692242446028277513340663737503991811668814209709877581368698272475907479725396020336628893000744367298667090068854391466315878633026888113275127762240234312299103580991806948710813650225381116878115804948443355223582544358437007528496119829525692559379577903818128287513883986588710269831421814986839308580075277640272032376106301313330872994876238995116861296238249482320365275847290806930738855921994437570427958102963911941759326594688152160561110457395296601285677081434051231504489810697986438632042492118441943623386875759126744084914331786128364501999857751618936092559590071819572617444527783414830115479893434334922052152705052560346430841093794676764091967130373451283898442475950064836706463696040976269762712441433695791193100393559819824634755752488079173868519017576988711237602857013128637562083469704824747215532265357222731452239926841582660795853388459428377810443096245681783936378436207559638556783108853444374301562247511055474453141251413667221118249414587589705723999478119729841152719037813319638148106798739577530490525834135750624144871006655531923429874147697649745042526047289113399296971302879046505081690123716427255789871944731245577745191776116830103308493028234239917374950104517856514077403275474945055729742283899281522230234728820542151435652501356668072726716605652074606274601117335838891643247152714021033850076926084883359856074374961224958629727933018149260449849763360513069548049071601003016787904816952005062264582919357299646699848870069873223036396707006839363618386711640163677547206271616806960070830088014863658275705664642720954498241040217607206970730822266847613634100663634213867477104297880844941967319581035527115224072579435169467569536410061475112040301830275961524979950275415840542151298391291190951546887875733792603012681493181341638043222858311934978922248145586842356172682903312439157640574905573702349515480912746851267910646860693065678714739415080457377212032933535450786804662030545061233931391502564570693614384339192763611292313119454578155402328763082717830143278321653410321202284917050201163671872891061557676052308088362805753063389065494341386578120505140170831934254117476432521806386286491882326977987344099673067487333321237118354466837894380585301067515600693790128800692464187667596936582763506161523299536923549367579392986119202723377252357656167125749673735414122479932142809445623739436806105937796893754374151754732731025626532774373180739256784944868935725775025803734055912060380181336355644897154038306872861525882441438825016188344209437402298030513454168747623480689950166313433394696093363711150974146746003125876026331695477685739583066579348168202472213745599534468543190233202659011308036374482406193011158931404498849374260837733002628641095309174146837590136860419535720816813828780594213777492205552720103651309514435098193208591829164312546545855733374478848466153382615380462795141282922220209004963468457710359118858869113950362586848979501542046593311901256049190299321852233673565473025482941236040543707979817434293609328497074178116156115287676710307753150761331884889241286667361362004104478208848056138848981372263571149798527519003984845174382293069162984693672599808058099292749232213382071986763320208635116356592104144621799258313423625653236472200080010865207613659484892873185997404815766487923603955987036175410618547835551795909942183787361867585581705239369380064146030313776747604191923298075847316751050426140624608320659906382518053258197896839546519423175309996254089196931034929534317056065682556253449284653122974165967681372227433513894295786758073610595017480102861557560842489649261094238255166026417426699317362565966702036867404673128812700353969602917411253287358908838401350167076520207747291443602303573138599982324580180375843067548563654043224134516708258151184863657456980043381854632224008189268798332126717031982972840093116645147398499941706786123750810039361478519906567833628354513935144730238644952340680147931252769515186044182797159794343819885982558666248350418654979766187041367184627208175280252364218317539538888286096823151156077980505571414989239280491763804460181758200413794242470377065178282054952812605827501323290043733085369458940262086236893340823622714150878501333732823345890581668182008436867926220541765404625770781490144104837524054734775052193185419828859016079856804301795751187226800715832942764551550726712507179639853587188084940351889540227999254835711336734121803679585576048456270456402959651611919970562236710282250667828529913669897450447832004612200399192211869682044326684904763757455960192813941696638356154812543712947564681010215631102100658876382528380491402639810013543757778768159743905461367652310514417541775253228217749153954107448041930012392246694154529539449960934255148928310159609898062979694299300611838547479540145504047982575633107127984274049103901945837117364157632344842746852781800286362368327907970966705044288270067094697996010037687554017815399436818594487032310385366421061715674864404513379155286091097102004462942200725288743872449996396441050122379217812508141229802801183818133888938272907555088056589270134315172137857708687402039088722925554396294498696300810050563771814049877874210342556435945462054690761228637034098062765712880613092825545349994607341257277347361317277212103808973669912337822844179183298564411837850377027384388958041200931236879275944180996354704466122605264786093351542854939637874127761829293582114175270168000368940804155230966732124270775992249602110856060432193922938602511870983463355830880126457535940749259223770471491731777748024661369295549796004318681035894600897175371140896737293469928801450051804840150549612524481798585151657185516698540613658619226894531533423040363137247177831082355966642931569709854538827278730348300259686242743606904323956291018117949555851197549255302772558277037218824618939635366001645103699500541967791296616160004085726864590067722635893871467805077332170760109248247725839208277447492283751789375236671749034041128854523333146396489199267784108260627631980499753882567169844776488734446844199859744888663513689095719068427868818804409176335536949919549233255969287295311267847295297143078795736124721518521913096964477511153801488683975158859175652181557018899988071233434969141310366712292614767869325061811768992199250791788568185839271429811734714487166639699077860616656274239213205106361626088627506298758286240386259163626031860582860777942321285028276249727680991395365611315658922823835206469872473969139056762016459719382035625923384033388898925449982115665031788257431827623394991495377280686156069086122508819309242879562187465786146815748038741625016531894570908785534880170354075390449915315234509195286145998475448616847764206127136185859846969621941011477141619497900204060031341968501822663453661115675015785015597204036164790020382520895890551516763142903648930110900079396636961530564965991020637721083484526421908204385878668757493757081946424912472148017992406534643529165837238048130466254972000238324754063646316014731910856413291810343981503638387371092065575004983926882318213262387007238464041405242753297771806315070268523797249763556651192108200705630600043036584286009209847456876616140482338305581526676681360797860425138408732930679934935747228555647569477549444538668831767511519134259087080380464498450490410886667626234573892823161998320216904927023934269575111208129839313705445601831399652567910014254610410429594911694825222562421834596745199545720221679217255585500643097974903716679208161962889920643960630968901974686313898703144488057652402369904611952958917373409666877877243649611111780850354582008764143061296680044801041947319644828497194982734283110404103950680148733105613179606450213540876497703373630332284111170544936919488196101396676957306297455520004506283817372225842872235155530309606159320248708128038819649252975658949253435981757443775775590232766999968457597228472004635289422318395438411493995135853455401462195893770484212198285620207516571119363387537922997572385087269316224088427820454802775969851425507442243157978070085095712228744353711673962432263905280183340842008952391608877806155515408026399002442273434105261807822775542100020728312803247025808538447100541145710163865163462829217541688460032984259554286496205477324269496869676638860716904046485122032582028577067612495634166144043929640790492110977904182041544656896837324107071723978165181987186265120590270070169870116035439768865415398569040130481799354243421736789729413420171197930152814994361492596928712526409691857084377044830721542861301443985678664118739379889855807277529295748565611002993853700350080069192130958965660653568181775916091161491578200572504743052819358094613699376795820600739290423027844039787343100259987984436048529029460865348788692883394007947262095859449724652351461844105385982070602298010370557593683221715200488499564940202982108925183124317530279221351564665460726795720108849607745709561942199938136259108900743657305756235095437384198561662185592080602852080010167383213361704336268629165640400271469046810482145349058932744240235681188274850713623507300902556630612098059152354431990368555586520240721773222917458543409281505830892060979590833405035039408045330773660893769353406406713914057544723340010651859266080432808200875410478291987693977102799910190318437125483272774237647121457395148272063091884351614486323823690715945293353279277112397722486611238184980701011926304912851669112695541834802725363370832061974844335961898105368435131478926321920807534918927672710798845677311394610400558322383775310064731890868585645962766332208527973682260617421954144965320222782184132060953887749250119379653392951801115976817523457972413279349398911049298947181698936516294850616695237751134379750331042653413070835565913749706516468717979735650384009723333618979822076365100232247036394797565065626562952494085593708353768734801808885738823491156387821337422502467759245410229651244325975979599803623979989130325244302905956112555549231056000680183288417593079222156621245129266957029261187429888237455482599255420085880586297818188530046905105798261477109297507154448924628338771497346029642665508759487174146344058533964105074196858608983134312889308902406260410262766107262335703932963477785690856874391627931209526614290365089000083062704595283993827240926578830161760082031024539687706581924847124651687943368910729254121068137138899125015552598463895658506477107567383055393863959370056837966840364731030967697570958954357590392516355335402968542004786229376636819334717926827963548550412337183573610422024010732707218414723283427674655315445362457992574583072126693895873206537591673391460423913105742626094866647813165518206262030189428481611509588937096562140841639351160815649981970724831723626475704654636305210543346458049046264470837537449684517951283497646453856469910879810707395833054402590051540849233915611886388374149401580139926231355299422884141118611849673464721148162840514962526021610684729849871434580292581116110706900354648623320654894473282721002503394985562574034511800845827606164943895555149548173914836441508621049468769262268223563819632634382959317443696539276486732793690754076389299173590528841896432341852540364083110912292281052797728275628853495622245314972445309981505394627864207209553975489169858476640319589711547806057223672050412308490235895660204687313164796080950717022916114772138109438479061797857666205760498057219637812974864523438543820051194732289629199842148132662220412162074612310567063272597112667036962515995484175303133940910074955642204045465003503061855221533687625895193542411815931053629869105006867460668471952859269868006937831240840787013934876338415779691929002957554955555940791960124978424720634778364564212468797142828060763109090319493631569344132218366166137010914598870371926373187836204638316282465531429577316380803983729205028552946774664118509284802449919976806407676778506371995776014963620089849157711959373490480435800598253193983045874285814738605949134917214199121027479129914429053516320567494658913714662191372755886459686052685442155110998486546835045382910034279482089225804192669346842705458713966759961488447483969015895863515788308669642254137151793459101770127840708808223654984560458650295850293781058383235065923431674606548093195983328540887695949119877028248091556597356928542104758142434935019258726376936632143252593792004109808917368391129812241715703855602624528148932675635397729413298664745758262738664122388133869623673126547497423876122741548339593543229105336015599904739781896099471378137931346360308382823758182181151036216337016177007260629283850596267658884589750010141512316883878559112391306205988547853603489774922140885131823350859984270268477284198706112841319429772142695532526862300183174282251176033771878781100273862446040109397397895163221434572800044143259462678328032625054380690455287850133278053264719263208883432055114617062146473981045836988713594984103885220078117703007143733165560659476480246123825203787081539551477663263180806044457573161367677870504263272040461489862495996071227993016567165068149338452136480873750661983316931079133594335839394366035668533444455528263879107519112478273964814742255214744241701650718685111513627486899386065537367711788574117102338584056504031455936748290958821202471765103629080357985450658846498926851358719740817004235242994114625166029018115125120826679442981022220220288540071650691979900317430695121008397759967187763950110036045493494174807609146047622586100827557983667201935503564061398180589738072076241558535993477147483146699411372083521478501599098612606431477566581139858531058029466719504855564757434791553702437636530804209142022422283778204283523741386504083510210221585905194655303182733203551111969079070191709176631841320023683900407639033023320380919284007775789200024480212422063455344241481691576848076477318764814603481054298501630572276082768180179449181207022534710865737275884248249593332532942659839563595463419608895559184122091562559954340494208456701095066265768116786389288539707429315537133128418813327188044564303537780793549371774483699855583816676959294674071076086756819492213151547910992168112545882346706452526722111999269461762560046975698427874752374687720950286778754400912621254589298685611090445329632344544717831437366188707905610980326019414015692317369224023000386634666389787437300122386062714672104230759463788348905461599167077099411271697132858625294257603361389336873623307244073509244032048719073278386016994415105519228113111637217176942210973821367444222670048754688622198615847509426034814701695950125596047895785986740208909840361618155295744505819815348624907751776869990328185150729902993675435976342606673119335912296096183192423379607976713859450965169010879744232590678085293500848900667855366794409596558339654535636356911507416155245558435269168975451708235671050857003746075678774052135954630658256427975882173544804585739309981242985179580238692991712993588770868300376415894552051905626382418201850186742093970132451636170155700800548484853003074306677364853788520619704005080288702751642586651378550343812110287780595748148820826592068650464844808848019064387593756038182848689712387562058714452574535422932601631516828107520832667184207770418798707244044700453960744249372846972517752578434535085278391165685884226131529690381329470866654755458379128738977430905675756181350346677017690631696251464124274424459430364425040382904012982544966325392024948669439706250134832996899427693338931065037263683939958866727531821638845055936149519405309335623228598680320570213321064781833505005864390793351076323297725611228526107786966699719591126939929373655337646931488014217647254357525571170364224812595596666543420467879755429042076437682314856049931997483899938308715863911186984173551487101019051487621985394451312541547098249498503322655113871613616488505543597481151467983946178837515212568323545937074203504689720171452542239581342781718038552512978873432401831052616273225567095809945976449668591580254591784500878045326607520082397318825324900290963829270115166222597471750070965583494283679642979656704457330570425869843862015209574142981084902237919986821956425235770771609361051373953820522222481223463110849279272823134089505146626888342849520440674220938918243634900721419338965199735330205112498420492659781657819532040432441688290556519070718709163042310569509334535640522622389686202474763748128518919843656920444792901911350411388838317454538200597195295017914796253598330377850996995338881836955317559040876073901805654419162263016562965055797501679636155152919194540005951681260698050039199859284366108291872674673703824609525746067215743340086139582233594531314944117694788567722132902706078775351331970358804934553774782202710357802177536749554548369195052043074492546686658243194289321317227010715386995034128264305988189933507636694422383259281874247248597009008905668189649626230173991798565834736442268371613398787607326458294200884842309155578608373271895760675199647581361492212006882610798242434674095049650073559110919248896714083900486170375454621062906496578341266749107672946879704772588190268981078511210346647319546580950713044620566484428967028229267638567499825349372762282047310119152892561399602171466787903602956041598050322647324585763854261540615855169746089413700553902520999426147552729239462583512985176857852613246813362505715883250006176576491918986831305455406349314059892636491521384030375359890817767943232801303719766769623844917415616009580933355311024738796424880607442384322732747644917221167693890356943537384213947030661138181618551650751983435365501136032856268592531884734688122794404546220881850898692781642322970806357133199925852737088637036196828957571857858388066647571557469361422118871320790762694387503294813053349856307245700478289203107055406532412132660449639848141220523721279984551982661211721056655376946487885385728439047494282808330637930305975053163011772967969870923685855228276862026173192543589410399979057744744941828186717261897532139338247093065050326803007537886589319807143662759551323671834972879720849019836529078057627711641865360738590838881842399815828783142070816656774238725969123834689886153166945092513545052358869235741156967226128050774001122904896514500470522483109698163116796077749286527465254047176091022010582228685350735340590880318103948804155182351859293768437886113368723124876210796555436706905761477044688483516352720596431935310255651870078890164813090484869371187256163216847372695783076171846675983701725961308994202913751298280937833573842113664423198583153723023686909868462496883090996735053891526297015752461008974290976273298254802694001103180871886379255370274033667384819572042405251198064995593022325933869620950493121762146953307417793635223388962732840290979775209820964468458188211829141948846180043869570105467153209357462933889580039426803369866855454758406157674351285052785730150019297999384736682813936027987859796755242917073852613381073922639469037495282087346811416223272647369703914322667820840069149157935842779444018358449237276369260951212840282212504389242769886016497584217946435531971433147816647500861644473635743452897225495902908217608142554169265367297233049826814460377048079720995519468973235556056866739000305814330893364287018161063591942800656557762869983527881107093478952149197702969410952440450001658034913871348677879716064418694943218038314442254731389261302511147463898678205317476751792390945252415060137884529767600927826051935665742978807965392845456515172026871794701984608852296932075392458422918529298699385864409281121368162359202014774301999558365136808180311819584374386838394804733893693584699859062282932707606963628008006941660934618511206586413368696954894676994013494027835798546719234881321239021385934627460823065410237607203142563156980985233032175055332396790335549867658934251405637468696738131626235223083241041639426439454934058001117798267280651906563355144746732789846940289971010293000962546258597722798684336158106966528739795355706656587659640988382654140298368595206445446273318559403740119315699579473902956320070322824218994252423863488460283971190232784138143505878668682771208999827599907567487999264911428258745796384060619502261641996439692503281588524360190968551956341717227076572675593600365597612491308105479652057132775364022247988190254695776101447102079841788287888040103882873656126937354731790034341371698953667897752586779886642996313169558018183135923588865334817260176407961491364594799956366165656082665159138465765021433522220439575489297770238934771529307770494553621626063142195853860216615954483179013329787656036023327539703466881125294555923088541171136795871632013304106001651879654767733792864383034942159135969932878112369095659825459883934354048427132142633265742555179697258521256418865858811704275003760458425556406377089909426753447083678014949457898890250868234055923203060295047434806314909900456834017140482725480046898035498942059635894783820818345825829977305864849304684984869889261965960081737710628424668736959683457952441761677441845456122209233428285791272619371406459408286421740755530387135209322174729107792962101807482325305387038072536417621081884649310532009639363274848341466865907294486794920896264340738448061865705388189597093564137190719467098659950456072824833819476771216431771658706972356254535705940132639605068260147668748887177745994374471700077956367668590704827911631998563348083534109937436935397504707529030202738846403735441121156395151357513407020928032424901861881331958498797899168967677235629820880138083338582343443652950974894841987600359422098586727302695808267088901595386629870281883023504556411751089466996862392245069069804774227951765317859159547464391126401351555913915800814855538049806659805766484719441945229355457272241393394307947969433603433641001674074871949099446511249837278884217114510281522170920820835462727597909096452214762199847510121883486133461114906586432081883622423709318001454951044073569255343932416301415832161830423094482741758323968935729021482428898329099230235666219432052317571710583103528595533889595789077096706445540578881023000072970876796747514188755469369120943277769820417329586877346591148217128000833247922121227272555105467722257656862113706179393325021750507939170041854802255682047883547058999889060521392576677701737274390940343144579872218165450108486458434095031199590558480198159083197512930128733463908653704421857099339168809297540633315997962603372807630178245519155285544338207285161545430816238568225432671389200300569112233095390121437156279878857391960247936685642105710450157378871892619104608198724289778759126568996329626562156969602253647080234141250648847582289414115345419877397149342162728130000012498168504875909244911290638773276609344921825122895059650872542146711132544217798005954528044534824044848674057815357708785539273156351394036923488415494187719013940744102939708083042792041616767377179198694437493218951057270097370276552793497425417505016526965828496430083144136533743744015838592794170138682572816486558535833135549935233697739358416914972185452541173242743447798530865857118286846334855893586650267424818351214334922680728571228188972607190572072914713313974076337758292972098354207420992665825306125265990422492557723524157614200489859520096012981282283468496510282534902605340944494836282140085716773650084233148141653011091058395966954436683622177210426663162302253373954057853003161858970125515357536544527135609596889273741865645920460004691412588822450124189706765627653007349694365811205641841231779268945923888183431622652653754331516962985308728119467745545571091420866232146844933897726630180347442877157039829901232754173579248696373066309395593691978331821091464377010053116590482952635121170897793315035737305516410621770756262521777544467049982620346779953248777545672704053999089474236855682785215385106979329561553595061419020491594556021955876829963384686037987850645548077412755266006828200832731977794748675891692942873655554373382066358338091069589299519370163396164746857753852806822230122272673939299640591679715054135091623964418700668644118903129857561519658416448273429951182856908575081551441126573396564301172188170130848882366987487393059496283212324844697289308959851332045600578370369328567585174821844317891909566454382228608983351750555596715174854312491387476753186607568467805172432220902124537541560068399759764328843780429391148580958961939344669015943313513892335742989469703444919604220707938039599419361440375144826437298965997916488124395520136116754953079517286437108628835135915904555682300558565396909813679073164886916219259851949414380322957057577914288481717309072088167488100505061344697656429858433731623488343984912235709804650507457863204244478209187302593242531286655837843006969754055033901499367513804717743954097417842725182784800339810854784621019036874806108080641936853929146157123386885318194746895574240786484825113331865062670384940670650287163306143860364197193805782904541415289059127490940156077824566304122658782816431947658432744686909455118536403787170912148834313780933835327875721754585207419796029393159593006030416351654493598396655133218388423176792477283188746133844685640235238123206955056005080406927906737837677058016025194138548550337151734413172802179441030014244660562699510045324725450158376923899747460525427831583699622372511978245135272469218900616866808264973972361895960658409753602738247111182260257575382623586669616526227072015382028753887419271939242709548375507733153035921420772869418142198942756194700180359187221284656759392480063648783568296635725123033264460663250854373188040438043747474472508206002715788246402810767876568991739008093695429232666985029564275934701665144175282442467251021449974883758489235356343709819184653050651096898456324974648705536458423996941884281068720585327187149897309390664287694566810692917916506163765088968573303711401996836874726794404300732633490484627431715949193162449706442643075653765688357728740695012944267004898181106087075656966439209268253765770964186623611607834622015167046903168124486577464002413982440544225060041942542046209313106294476681054931779440931428278475714654791623957103060003957430499766442544952210510859269387930491654489418688681232700032632548206579596512696596098541394600185614688880192880046575813154439561751010910952267113548644585457812800907190203503052132487666231184507106348049527019177093077292084701418721779061594167993344655566208525239656385296697714178415821247382310770527039918047219768790602919873274801271035642285949636889490235933852281955212995588865671613672014353845919673384385017493466127487313541938111405190728352043995901347169040943393455623824004568231556145424857418663361992192234392313122587033628750544898585047396929485259858353456654120359688680208462271074794840719011709680900387469658533933299091209082832853944913451500641044984068513889930389175131072191319883871811411728530337760835323241533085026604190382777070548900700989452003626397486254614144664121410810081030184880054220294904739306477589461347672666404069868798670357853634485261761738789533202880513763687115129269309225589792226344159677167846230661783412446741604392988752490829925885875265101475598366673924043115158788821145101780910954336612286998097669847680087328103308253439697066427458519788657217793035766112133075261683068186230040387698223273784504833790391246947560929323788584283887738297218407711826212540511069890079499584725019119917041496580510559685621496447998975622122428947886783753359664519357086036638672337051794362472851614515020757529363954098182610031039671851368883661222005445032205616769750410625829107515685586371364631627360800891553519208532377376004561815477883829961409681675485345831189029768358663457992157242611747787745673169384127650912242363659013184324209034227847899383368245529312399204770019806015386322189448462244199410812846626156605220016492358964732889813089809025773876975333078074659967078423014026103803394483543551891640761395212791405652090379026903152515843678118234981229579819247404324656040905922057233533063984850487602646741877685459343570614382300824877751649592102069007334996024678226734266492371632300888364146140977861501136599698584351613620546717319533957163172649790071091928038972126800552952738911844112454660400540486078742400415485377406702171632125676516748989611638347688452382779745581066555826870382599719398749181489548830848764577983311977285539303222464473427126597976482998807017124601584024362368194658258652170335515342481591301074617181974674483902100026090731536516943472540050694691092435150075850539401218601350962297086043499973421430754099143958894911149164223718113802448501413679435285104420472013584099672103033195772555726557943019443172457793307396095192980071006537949984013426224491971361296431667080172310295866503881633258215380399085873500395641451112839179584054799915335262285688199955252617930333963886011993745518757610116306632585490621142316441802278809280338623574488301655329599977725175047153487445907844497695251304155491409175245656827228266336035675332047650764078690356129685289122203642335768968220989644452427575200030359222606680929378347410143022696621185181855199659721313122292264669352255862290169063298722378917497980885982611907528874515634385748203887292611437249827165816488981746379686575908192514511259969136493456558630932353925992839785997214055640514411274555801383421141442668961776370694886246428007465132549045081755091168456228590947218951309007115001301584525775767249364548130499504726527214889900020474783722119047842243911964558341195487981221215066702229398132535035590122009933554776851436443744497098349989923109027060894469989078358779836018739579622656137857583609206040163135964329065711704667550148728037806114279679996602951182320065094041927562028648471893948475927697169417014285303881480120073551751411632813463549553305119487504486322675118734598990549943379555172447114871640133901451062724956662463666591356016247591827618046913657886855328769493888075532460423629015217700116199222564203453710935849080378236798473577299609418642462596737363313968028836170922324877765173962400786157698969213142800853018166925380316190815352980921363514335545245268277285284059666252641670666783760638648147735206469938299740393857572155212152660048870951733427363638278313427512129212726013293186282892727529498367758080616333378729034742249655466734552202687208329179923330008857015935414132276739894432012856840955070657482084970458365848605283272514095077863246453662584732654644684135020105851061205396754480794984890296461719574576998784920968541109488667159420427183662009078956282203826042717901099839118633213815595355651244288366923654455736365437927428211668428604344207077327362105535918498775488332958439691633479541164443548709431926159101992675539900173094193324354694465020316610092463627946194515307022342994598115727462553125335612626988076553173772585937099292209953578768083509520969402464575188354311845638312188807753579527419338875600899128083039067495946816500804367803307466688981047772300339435145668473278962235945992410772332821399037144795939594992415888138649721792415455305508950836271556504498660085832610341632654712776680714286887884099009042581952515473648490296736242429595610883392876204439941873678361847471572111346660785679045024096990251575341265904538388076065173183787660889874271363804988603433042900443238829700774739499183267378367015229604696505269081767469491763763121568789619225977057537460122777638236899738790798308839443490279159442058610806582203420581661800798980532852596693582530826674457542323867873096827732268631450866586017312887494734391102150889847479420243476187969615474688404046809395268270887733285168782995166888743850643928522993976465732482626116332592805031291603687713925747601668002064990272482652752353554920754787168967420853944865912699539084157076488079326173414863785323012580616657219433782254041776042110231391814285393321465447514253827959048824543221197565060786250365518135597740907744213293971818438821213270409180809056155006990352314040913992740526616367853986720064507587314622202494438011059402499880978494523910978013476480778170870911473190569646795848760706859261366870572987974157324614876416317430043584066203364824236959804848874925537039013679436687367099891132479307299719593563444939043329458134731075590521702572123871921933524888911706500880719520314928298183174125288982467166930233413776093904816147833727924541718789370560484872146440568332080729670714470938429066101837430842933175557955027428323917700458830419649358936561100814673686210705849717930616992869114055688501468977059496358763101197786702047721062998325601211017618827881016569317249793985480056839245271045264970600948071565584152168611930673210578888943961414451412544310615638033300196493708396637807974503342888828684834313727632296851733661686670137379186330451819685632920576085272500217706564005455989600237603670954231030117899141908422235438967298167384354082028009230583734389243760534926093345937930212440791214458569043633205415937509652669712267160179492727078947020744270813951128016856176918731625770423411783260429255247231146561054113275546962378957165838063179884996965743528991192212196648846765556204135092025724950868878201932933939848358208347471249981896836121149780609790380701201021827626014792332079775413899701669125236148404702533503833776324266155507928957816577662832724587633402911225801621454252462146214313776559897844968228910238302493777751783020269917575908899463803963755384733007286834505227987734323144123629259355369570250990572907000547144091569196510223010190671578030115843787129380948714560433060882875594548371362452459110442541009221275356214479005582917151587223838961704824154205121441602722540105441552807430693085886021819614705764570287287453017972220802936282129222287380516234406805579030658899841966381605614505877335422816193027457592535841362350690465577364451339171344797348471993409322476120063247409131442955788768657711840842429121902356824603761329541559109906323986084311099703169075206542570807568267903325369711584274387126755826749091575757721103335520567979001524284785157748148123142775956217737072852967494391938350869085515704783684607777653995547540456316058660287806981897402564796967171728949977003106766393846569987878553743521914528180442931980445004805791841522415306127586020777208490344826466051124933863473122265701202915405118585482913397799574752347582212814087278633820166044727862671801064104035239235222056266769365078128993030359908278330741442128579179179219733430369217204234150935532143807438738664589277762996452891953287394720798553326367367310775868788732180155555066377769314793238741131746713169293204115141108588802961447328674688693496860166893534490656598549785745015883146815750142570084436570693302025977984290232357130861168050365302718229641075279891500820039052702691923296865007421926889645556926097563096907607873167430273097041409448636891053301019750661406702184533639916082285698047444947575529056357971183734969092896485692269254077513549195795929906646350176027920992267284289938232191640009142153838495335087105776036870971902515552838057305417089146754464872571456132279183471415545407328967066120629999957976108621202644989825033012461653007311439124971320454632451791570487878619253920610002105293094559969339522710999763582010979643930773861294442834174511163855972147948719619130663462632091221398827813297223204060841505107160530832744459113292142664700012791285594105006178514705185986073510208971849691703857022539311591598128150291851655219439255803484173926791311884096809188114756928750989456243364943959651625728116365595092130947800943523425641324240420581764790579591919486933991278474817706823134742834935286695726482578245496940324759715239559564131655408990324017613681910569139502065166995688949151172947178921094053101361952796917977578680327487513925861508638594342645135620583213739354009552257963632712555563356866130547256636732307030170799665128199342989122678656207203468118360195977108082604652762347458166073083116990172199840618968983386340517653062713307142262800150265611484770931626079460609469484954878065179450860687258188624875631154799264903695793672910503190032907350048834136911756116051165127397992594464544097595512304163672117679659149420627524897225800221331670003917556440826368006456597884102343118875115247720399108267261530228818947630678421309013278470203914840454682750358981645039831264221800356394434342577356163603692772143661610039048540800193993760785850168883295026978743498534343288364300984507894963225915908324359358892374365902958821577917304645814521374478960819430077350570797293341488614316231414145131910220879294451600090254011727385001513195682911512455412166332980011416621944869092182700928031123564609716921910528707465399099818096498628981864893728504201858302834640123087833293650908209000641472555508359605147383949194469072094526204858420926986759579702746901879538300641506414590278495452914198669517293034052771117475504613280749258083696677210152020910421085762501342539458257239907840005226912507435629615865321933157001270851123881785607954895439048980958509502295601670959351051685017847863545986052726791413813493651032265027000672859101732011965222565010515306394796867402965715294331103800616492295456506344754223685420366145919148408828429608802004145707434474162333090233524520816507800589579969232708989974458208634414528570120799684334987403009364640229824008524399878491205981014617286752512844828017935143774809837293798568498747145073741873619405814835907150069003552511649624771232466173695288054058527206185474319598362243973950934180035450471391890563554867235781185948334750484800963414140285061558819886093426297389894310485019240067093240946675512159231595469942767752252531710952770415476998978841817101075206165839187823643081362179729004637575785122509462639449351179519664350744634772268846288400267605318092348402284467455922387222913571906340450405771112975473051825658509747735720130036908863044692175308108376480553127549036680316630896777529000332337306542026417554721043532543399587917532654727028226656140743106348575881292093998330858787901732285603802782495742977686631981455774280321180620401696845383519248325282986878811108413566791614519921167295439969534802656171266002914046873946799915008741690760920537485987640438670720433344545957688028445268325166723458148944771388315141341762581675414300307709607281892742767912905890991426866510697823353741845431096535501006609564457707369966571912967205287753340522125397987127516534591428359585091109009810579959070279626193904157112077283540702632377790410479659204937746428834438368911923740895352408603466126925719903958391815514034573636704438625127219928573362868130975153605321325912736272650826036936722514897740572629499041900330739875487802460465034165515930175030969786097979566419289525550524095894568966767817391180640308122949564461196508941129837304353604999386808096174671755667834128678526666075857287267949969895179897531804039753233328949540147792884746414281220919435907881345673325695912958686810528717086393134779032407431835945455903391001496554818920025197761869464005202539351724004939416234191601186781329415843453830199265323803396623894566367017123287373593785845927274717956503353616707243530573683288831169204548078413371326757718810440130039541575291614603060576750931994072472412480557526471229463001894386987519483044703866866759847284942036805934133601576677575059606841878251160540546633742084269413077343367651160130556890954372143228678820752027946993278141220659463911308905196134787529751767906017817289865252995678356193190068811559375921450143500511083293112550440005314559615446474202467322199147320302850940011014652577125820047893146812582199366701652524056574722980456056383848658603066989323937020098719484736904088449910800501965062648407635531756449126088089422652537994034849430426660299082244148915319336468451308574803847719237916685644215842376282865122730118207647777609489913253344668208429187145284365546007790703338237552618059109496547018820030167144785094632523000786248244599635367164239134611307890089081990423461123827931399202290388505467673613447462443111569112148770551846431820493405915019988768079987739636696135104717138680204217022864728328131266440568387412537642496011870240244962901061997431248211695878158944297073895488801201810416664843174274169403178276085519682894488512779378773819253312790027598750795154663200937038123871479123142743314788585300050133572921938990205820138771321203024192563572679516142135925261873084601169299019874921646347150439605140397576404426601424045757447404535257897866216490590972306435681171279654165158248935509297915666655774207046890221000151605320168865594345008079837425235611310525683828180213076669585520667798969250931963129304901179697859640327191752618422929471794930980925304491281377658361733877853287196624038207419381922105045396946772252174215400796744811156420957391553542858627645624489007883676372820718806081715339451717163933720137458743244030133150453655890399751875498546603258890362676766201298318038407740785362350003635303385359192295503020177739335191977899032808540349919778852743571622179120368838260205790006790452433495822969535003603204169601450764641070724196495866131566777260753979154886959294788222576790865346974995615683920654294525266577010044237744103062002127451389277746059777956300054976777936463734377792965770983557791445923112818781603445919314689831880949268751541263889434188912005652183629912496183312948870727273164442369671973049347775533167076846006335962543278955985841977808568404014455607870816693454009699603541762086099269797206818639061579353845437193412333499125357614314841997198401629920270655194896357950581559366225406668680741677730594496441219856315046594054558061580303927851441634526653608174459817474657580813531985033732655337784094223302246515182184070269917214185470050450358180489551633889882708931771952683108460701492271296472761227327243811939260053967773185946710216281980499692976362278403579436157851220685043542565581431876618750681458451203181795602470414473839935400224083805057837959385784348749911910298101669791308963609605870036383403133399292496711981462481804876902485753983137308036019656222776804537214668080032314108038629476031992038389259829136715576391447429538040656611211204298749449955171608646476624467688672004734825983946743926496935456395431831307979773654636908801225734231967606394008009584269142635413715599370054503297383625553808478799223597087377276919807031600241518427170730476490458739733350672967115562526790561897550663039030455658214669706041678876944505159530656115947759327676119949588107259481805687763224993144553080183458913665401521718343781711628059378929646087610981144279194377907627692844362341134231528839846834622549532370612871470951003102519910866577345642731201339671192014346180855777512710933621868766255148806061807160922043848126335160997815482912111816100536174150448575668069534544067292136534508346712566538208329258779150261446439870483494306372326557140633480312115334824977478115638968734814555194849471399156509172079231259753110181513563671788131593806469518602048646476445003504173513054354635216202942548546257093154111556415215909687499661203144459159007988034877307419975119788446671814655483982272126565166470278305778275280356444394201373183607439518208642397538027690345867690546318315882308069911474782355003977878878853059042606702607349496030686270732311048587276694230013872453478183607102665404257921148991176734171982297841426610749005227156708930024132153790634550994435192045817943433960218390641807205456119090440886998417987910572590080582309716750697205311220851075144054912639961638588048227773685181332122697702957908770450920415315932296333008676134838788350928776323532780394047667547987703204240066511441772841115194014735078462604520075139565935765967270459392318990709175225828961474894636708349688776687277249751898184240684933909134371833961536586028186329311368529302849543654437335930293865278986119777090066578525737954318173849236565464210655522022328650400710781967608437872677533312964853568767522879228409780791902661257624831904566999115763589743184178139231473997268907376321703366457619632101144808980283413307745155201995667790993061702367536912606871509618451242983480650974337007199199828038994795370752959470926649275757392862804499780186761066377621418660417392349548607071009773285930676191746062057866725461550052760849089652325338646720563327032856421359504573347479392871383712784977200436557022284964563056571321031053336100096992072485796977568559975578238491479016105997338387605840524364308399865850660588201452944926930366029079880913492461789801282529643012241760116310825516574518237626930325518482227352016894207278106647211427481745418795245379246001249346319077157970719588529420384418405180967492246940442474907756720497497977146260621175547517813063605999369224001761760000404437822779990479325112627120905776634453344719745499567173205016085906270737986674919860825319852979565298768889011313326052868220625319872252547803958638187975932945537000166354563470457580242031271359937062253422507535680852205733932957003416247806087524058418739048225678232094278824777491963060854343734733367477648290826680793637721618596193261486661987181141504084638500695692604712940682657046080390107689899812563359547853232432653661784028105976764425742467619158229130831128680571128065133143201249152668093439093564868071819467726612073300673903082837516240005256780544957302456067104218592095719396296418620593461936114969951781321583746636414083930175349792414486335808878446005282161745828912496723410329980706082021077610083543765445394939712796463943841679174833600656701446042672622482481179931917480922509868389891652988264239385722158277646575010979213325268610824758446241856809485511352613202391101941911397540192863355859349171912783211382395746134225014646660316161514127211680571502801059505633527393318830311147924072814068185335419369952941822857747507531316571715993382316013855312358726623546088084696756568612434680870217705156222547455774660563391779865071459585867493358079252252171420809314765639450315072968009481372822855035321216018795003798505330795060533486006316675606405338881574196596172441841251625715735321111785920479598588295148032348731054305467566234116782510215610461804657443062131533950215335211178479801768909335582359436484597377837376504622541321335372042235237217096185829766768435810906406969851370031517833551209062105915284225863848956701337874989779208319481322940971324332972903034506994114407582081547149148127375014217369702986238936862584975505620994779913913738207713008889584333188607048684196385445290739590955262013127167232175225514722593806697764463097923049772691890750887887189516977717184896505286808498337172263110816485830416013847660779669143524877779862845482025028344802200575139592412768365100721940589420088921307331233719673986059372417587018827777108561408645444064312439858991458656734677105881842472809601250835959620243243380697759142258774142143068889502838592366902238069166412017165600067434378255560011006945259680543902629822743379775026030592344318803178678868444987341147007539099322603795104427804763619941858153952759528757823857748412250512279470630807965953542150850541207021088864309911085081403487259071094940145653200590889554611579150440410713923544733231607065418901002207566447523014374427255988825832713217967991268077563528176578543044089001611351040289295109883941378125734480929220061948682997539625157212711727085227998720546041433565883408277107654348313853314717684474935997275304711237237016793495892395632190744178153991342466147251423763333237699790059287721196606883178753877121676296676053531006890694264821990235081861138865204688856063922677230125233451917350368249008250644011502978566854656905332488303564501682649170121377746659895401890655393237529870939937267351224541864484688649284645101853210561223883229441693881711614871660326510453734834178847800232901300205162167529961470747391783608069860185760356824682833208698790044072494822785920802810778734378399867234499826961958889223110591978224289107413527486105467087076379258737825903984789764646277933538605956366023181290636081885862937946162593882448231313211307810746915944083976227362547214130815821524307304234168260337081238495311721492400759138947450754627971906837334082854072596669102478927896917424083023043877703057689745601564660708038210315735280167952089751605108758910062217748824558114149699817306772046209275078874269111316556232168589516025580671793431884171403847288905889296391406751442482784968184912257510883611318177885118440850885629438215275809662801038194814527585192597865163034949804601095506478447774907767629949531208161605163135819564591448305966405354773420488297489436069090574565721994431901102229427422544272473895967642610247311026808814757217270706581712366597175896089928950691139659024752997011043725205414190474178466441851283887728207692644863876042340331764479143214116297314736379335005398467339666334927566491180669635796865183511108532833651916687815697163849929691303540268099877623247690886300883336866315815890418016543654728956827964034050713354125761376744641138314086366490020814136098644743949608758566199825564985661442657654513615180285905284640892087634424905934948060994686522798692595705190685930095185168622533996403115124729982263210414112669595400147824958264199090869492477071293726176143861989222803872963906120799593135275857003910799099872999200438760904936988706807358722474902968308995073857091977055397300025873246978283272895318068875365371320050813903365473135976803359181850871481772899844027734753411033921208291032770858251072257344068143739153432017044666380826419818937246270326342877093668007547074431970821640287098480672319250699749007123461072905365878702160696757219968072843556823396687980437540639418656663896147063773120555066565421386825373636446565800723810209535762769915092036586152214554766617096768848785242073544292321174321187940201540526548245923596679569495733462272620575131202799319988604413962092448286475331122156838207628782691825927084794764312096289390372667634240788771894845403187040198266885620780217532946701574739277122104685318637127499977715503004358133974514617640021952911423300032390024412773550286982409800501694903743250689139682690176872509029301736143079279915961147996485558070839408436981824291856431177179362342734380142561531512158105996396105073612435456835396565597534123319076588935569010259460821773592029621405602929231564685465403084616653234745038209840301655977240326768728863404808467160368924377349012369529411302381708204388223480213449492184177866143710111943545522680967154993394307768869460286702789957737931520102020956706545225221300097358895180355300865025224340300223457651838305158200026279129335468039141235386117638790836946586252553178864992519827230589139735411191313611167840375226142210762522334988050655406183416667547885127065198317478985634961441992385169062459228298788721113842681085341851061287644182589841379058091466135777418763018951372729551903602725781660685863189201117805033449482680412375888654357734290806656308356760975144548361207083549924427022360459091749071758931085878106309131226836870594732349400456958271238198971212997217321061609117068710027335533595091027000715349885418049684620469373223411991435365433546530975009363877749751740358489152033632510419659550168735805774334928435662068190463800303081842446624324532955963261299789608052081960049427652335323900057743795351759279184200313925659330676503506551726271797806383778465612211471740893277501526323517482492695234565962438285746298379457671607786930458444454574817524330071716117550202833234098648252947081185463673708572860277198695801767758076820248220869671321847924549383396772804199919594889133992514588304819697126129725532817215568269479487585387668526045163922768578675258782359067855869017783051422075765483416193012217149270693611758652526412115816575605648601378521408600917723640057399633598687719765124339290910990992503093287952280712144688445519606006953674381430943546085818767431346529407143122854958840577976019945307628374276280823311727527306941326690006913505610535309066857198493055328392106168219633241134324135520078439068363450401365967629757801025204918578407858507172967378850964642438682011256447362234035786531183111223227393254273702917893599570866738189109816061920802200106006221774627562889046172104666620866232869829125974969322421263216252783872898519235161250982329502017289112318341359830585122912183149136125602059723162403880162328847006827300127678353010121431620228788574303018206302408751793762147522239058330395438272781748713008618657342325206724914837964768541871535604277357269995519557276519700176442991320597373935411209498353383652382887192410300049881244290350918574049964560531435044755344729415422112855023085573979718456235010582628963042279786813336835178379381878236536735848689576315581937741530088781899467293743445057791837064380304403726487873691411307361291385435934523913696900016653745197153320324025675431714764073628712775077500851324065241448711300139789238487553361593454247088075666697661451049337730693870979912915858129913316576984477801841934270487973107142494201962125240120387677317562382279759612670976281966942572995565980397402573347119763081726022043433275124466358570945054346702847674874606175552733454296926296104275313166315341972114734421734079877393646050339715964579668228716938980971765401317833741276038674058301414242048990282987211217716073983032300426757898251890667623592937661454817650916553893303049502501454322018201595665746154212734537241399081688429944079592958940565335071815331124794979513505471224632287474058420808670283473775436906347399503656848413865214245004024788945026065296631457268780866092527213388036389496039848895923601325903668316702254605442909115953269466658743555032307556334473831375801950300883886060627650084920033037872142711888029919750957855630308716158795317769504355339880296553630181132325996552808245711268104413275260247282801669527067976282922198349233395653646413908818580621429263764958153648114758149060813609847130003999904466996019562335026899967091154108502072556603063563607084572171987897927222449585935230208195778419910508453759778514572673625460205270070121648846573223308114019698274378819110567579710096912780056590581815489328856498911445931807398749851615421009631952993414923019757428176831485901361592363901152709267731153249894112395145001835632675168978523353474585067354139395723710738577596162720964432579924429863871363276271378023848147381527562410483149570328168130567852480906492257800061785179526877540343652112877835550720939184298129842302014247861716406223490791125945887898312505296775077640877285918379287757165201393917217812851242571795403805751408552159443869634369836786616861670463104457517477891163474039615744057859701885562328280237387579849208202636686639772147572793410535920438526199637651141225287433025002625569160377568992167746030558792216214868533885709188193101736639805315357133131165261069098212779436655891738841949409185742403170127785194756503941665586509466454213040498127005790893993165647088892056303502995573264991261299371578174502879303524572044273082447167121118074200344320525730582014194259948347122138543898964602622172050175556965015382914721431415386528177002222750676658417123779195185112684233174974117622316558755523731961595521113394206184359813763832150923743517809131665176070907714852803374325544834960883024149737847702712133582066144610249388093578717314319918600167352321270216617902467191104447446882419927780169593475957110300989335825063002819985508626794971677177901339340497374799185265861066269137556104580161047754273391050039714601364943525826276825335005914402906100936337697694608006774840187592540655302094255755827123407733253801704272947691895350182408886852680221425486339757616284259624320905279521688811079062529721578863495418261697967541440329985641811061489474951351520431745014152461458847292106059663150084605657889388297232012308669397852842487721376813892931503629564851909291980827123083131496439819383437880201893533026227201559097469376408088246908018536733133151221892446555949371547059170812792379345961110384973690013242547534245908861548032414114345753296736355049751489763858537134709268757964621916896572631400443890395215759841546157146593223824059469242301782026130687720648869534454737676028147783841303676347864015077042652601439050344914926542247208687332521883324016468384873786122146778628319024680355204697870137548517283711674653577540225266847417976797416792291431246630763084744339319574029481396178267939690548949383370689124922838828187816172801990763062889776533107020046091594085774075385510947640306802830668434319363175030067329945797302684420670153461032398943909970258752410561659767444809304677250655170304314908053840301629798626956278187594293289458478583990492419461140717215835445680111394812321883456982808062098332666035007854546219289343018656382944782603601851849407595055624724273011244533799654390619474696159556931426500563488563749551685824470627494619811343651140798068505120733360690642386066126057518616382196440342912960545917829211108459813469865326710089328796606651481240889441095623102825060972651285648394944583175270277529986970590823686108404319830310260385753083475351807631350611318754481137808756927315669646809751110716376062411985161462755395249799744418396219859939835829462889165342002382451789985162424450659769360398807367586057415749441661568515246536215192264293597068255637802389253741791454589765529528649149263523702627771138786955903272820647031124064114920490050666834492039603950687592549822132128254603620515808763609806514927603435982400165574339078230042558852378054628572340841641252326295616559924439206894338809100613245491374349123331825776279073857130179295609557474939755599110454206097248275264525408753578951886936503643768627022740889240840583308148432773922810062680988775650600917467571270338155986106380093513880368642343363335966034889289420664224789072020992280649236845653988212385646542880915543705690064715335696980113573042225724252633433631806603519026620082151835108984900202991856274370857655438920378249077849820740478836366406828007533991009314390427140397995903265285481816034646200972136538747590420378216375489912041244314465247536946984023830427324955308209019535184137516763924364667211280429463802308131130368176747920340811832846641667021949386654124220300165615147049099509564104008257861619379245472314178038732441971457814851128841522512972100315220762151579553261844302570770642899824925164575645381871423933832636092732431141421185887359554953641982080438978790063101536012196596779338663549787462234574021996290968460589711917265366370594257247207937745451450650859220609231491768089890577154997478752235820829151895667711136263992868760770183051734046618255135331526733754573007415319168865505729189206467769045564175309814316671520938579497003136952657803026349161991129652056530609750185708737911867985752309637128261563253895116591454101111623144745934326449554119306605742667045393664313869101489724090138754098390096088511733562862633409266409114024545982581384797208459942050917956330282122739113165983453881342451950918989780514431933464817360644524710807678287498698504511156900380627789142783964476785663490153699436284603765839675271535967404898342802150846944120989587305316963515289796659538917414777191387482875743981568612770497096767978806028426140732828993809088810613435820054224032266936220875389518384978875447186695008626926507283529851664592489355338912821007714631212296523838431849633408407347594745130628643126953701426449897505954486349581180701041326509462331778054970579528066238057933289666651954719318080889578102772671949712312728135888649334482733934345315980358784555944387779280656100377482282362298951314492708050892307785390496858262667034102433399096117202579986464742786773565842280610994471298255942872394223006000534218196131440056579940989215205339527580944665790059662484364101395831468512149189150966439220364553825323265874159367102778072582418472007971779532852904934611626246952760345626659077017020409892693186035511622556351918659578397591700477445275618236742899764762062288063630336162238047245436318897526749388439197883961221302733504669251531119695488646588077418910132792002225556574375571050520389671075461050234319490891291146552535864473273325831959850765768740004673598615000730619712622320756757769444154158466874050598962813277339661624453041116005173974158092461694408291464808401513312658715911725607226845126006983515820424608879547208058552002368439646880640017823470581902668873141899677532880159254525553695901838450335232985176299775167980347321783050031139087863394079736289214890732173854717553759822205046156869590211048382952342183337574162986756801098525772141467148739237524444949748687219834939429110885788224521584688089989516062480404852577548534797954965525004942453509778917258670526063955340301475784957141427936305957114567009100259573396187404852703334599555381490234667064178439189676174616377338813007402206758540817806078128011203461708777357891535034026799659975870038479608141393023247452644774410682241333632552274954309442653323738863303935272879213813752993349720539081966793771814082830909278610605847630963788619504762728635118856015337089597438515979075444439276645827001767884485988665372928877613945698169155148927116578126385869241386246890192123118570653254131313508777783697269409072580949734347256176619843347495435282892478103453458101505856039001539455879823040422366225667677185999326157256564243293502900520180957293689491232019190117042932242266909609839805996730634147945335419240647932367486925642013830426952080406715491285502774231519032094704021566877702038270738810283352356462036064561142767307255898421471686744212965787930546551649892648327283716918019197790992350008761551637866295149852144536763388070068338251911946566322042152941653190208569315390442064787637947731816820609359834020728987419005077294360823772749819502999624387259430579836305260936845486487118507445038441475312678619974171073923134441194795587725866588105348114958866225379449624420866086399062711463417446190505791380877868862219906626118366531198670631575717567025813347590195552432804537580353752453301365544643472377853752493462940112042743143378973742549011720511898496704902403478731469096244602065651184997575405904066166092010627640410119762793222892547592355751366982009798413509144111893199684333510194825930366595960898311952545717651974829117696920100793489013225520531504913926480752278363936168036813978511352393369164628850800247747082955632006683210414470071705487729117527945089751037754098996898644948838072787226350095733264729847550154826548348870326567192686961138261261809157123197146534796714332305123646075679023751289287600613326399242374322752514305648963833769284472494439518626256639303260925324218811710103521906467317042627751178771129301591648328153375933344649951697297843228810252530559520398036885400095116433556068749101916211540771422991833425126959835879590658061020648245282536477827042257073515261834429671248843028407728457796967292500437698085361023851998111748973878742156795199028270980832202429334765217451047695666751025878038691371008801913765685930469355211717099128050409105880621032521542427105110928220913131907405101205687571085086294549396556951647004579160217455228163661506795990058728163521926699593526051957468138377295087542303451651619706214258555152525132269360569111781992067444681145573719622860796855847504358251382781390302535590395046433165592551061950394706883416888718836254037451256780669428829672132920003374087303460397776406531552940032311925929065358267819401002000394472732870600295847433927273048176507284169293968782989301275961101211744341941526456028121423994588288408318616842723813115684558398787109486826752648833081528090598143534520710731514107976579317015131724387808578011410750836698171254919841973133886524431877999167768261397647293180769483469619752465222394922908916875646052591540698199089581996816446243511578632326719404690763833753213601857746439776415596126242752057151296976397594689097092030777918710356220392403361831704662518343940090750058449210886247325961478151191112871115980285796279573324600406925817888925974414525663753465593240229118325943336177524007851720037471531831253977611367326815747589889697091085144966184619141187078647305553799592423113889803004196891926552304703363906501960347396102787231403166953419668198630828210388475787070880226148982982312895019582540765612763532586721867854491606215971540169078105634621166427809668506894344083960806681930373241579800515833945216766145837328444596140340644702380446787955766560995598403694397798732922561362206583959282660570045556581980345077102222447727919979390529301060730237313737150139798345804756901856484242176323670677178778424738931966627027692760575725683570711307221891035099321783779650551141481513618380503004236242286586104288799183021310029347211806783428990681348207481063900129886277692366502318650429765017868148598380473796408654133320166016676699361739793059326346704980899422644600691566324750122815797418670822225383812161612268487360201806609658662132616116457047311702025277575043966311343853905329594583341046021037096164605416902979738140417396078432233328166465466202882030845679922427628615138388139013748596293163039071242290540090601255690007284714056909582488712508646055264099032925099976735597879986450475158011684864883799569177086871799527485394709811804127328779395999903327075380792344925627623585793857154177656097699742787033427454755856972344075641308074151337756400547375867793593980450055449363853502681537247700384313184206442940870451839550494971928736741066039687449839649270258420675051326372037128371634684313519117024136693666786488419015512213038321166358132827244674558047015125586904947917498525759622511947085577200642845105213049691758086055419223257780356538884299608484323381600978594106160669068495602886220243348456856691822766754018965704016763494340847866035554061487557556670865598557289213121251396481937580079368106672888231715392601071531030834031526636244616105308351340664584278921681444541034262836265535154749550797283810809688358113015147026169670267427385213138360871022226347949736337479313125094941182535069784313529703514825788513174539383143551811438711427672690720343020056258296666571110068278106297474276999786803311630820167752331819294412940190805112938917453930963965558484237840662020336047895133069889174418978325428633613579463072594215201249305433253062585202127594692329247478191756550065822919292767564690192933003876263618382890231094203816702334302483971173744542991308068413429516735774971176297944316281529089145062193553688802065884277443629273925228952585348826615211351985666985170793428704928522421923916654108638813402320775233179046125729276808100299174181829686196348433712707833280696291692978049042940700602842243995398364222599599861143943424753477751803691881207531340605195802854647996865580105696473989972741307624857097232431707657081822984727784707540880409884496171978838995461955219598139606318180821002935371762581882461522164792660520845630512969046181128509523082421835990074101446433440301158786780739697602226428834375602618715350496193168948452494172922788840661896430837163371253559828983577714364998586971607314737338405849579277179522941197337110900927890692402725425043163357568925818774257641881825169331210211695166903383205236249032407462981962452518589993652579422893709466587313743291118875708853814676519672974573395786862841126580774264155674778372443999445463158950665973982781054816007794767108683692527557532851642457258107005874775756380121130891122168407319222781013346003041296613003398701093231329112823248934059512277382073299064729161638387042755409359676466573547431972041703050641917689450181311960152807629918774421384443788276429019905023004741381968915390665251456103901671418609164706134709173235048042706770910780835996787063206203983190510044659910484911611076317864241803424345643828041524690630605219630148059388636972164165959326017519584187043837703635354943642725415026978946149334134503334743275131873032852728275568141244936743997072601853509672314455178967981503062007932049756195278857216237096569767598880084510555246627903296643060890782658526773725122953332496123490109038540070004596293839359715314721905771176539535493735509228777395694076413046453838585591196357935288005454589018529587728643670026902594905041223921092147674877065822069510433375348827606297153833654576934178140794084031454169715941319100704452276840312691604708714838326451423844736851498973848105246629556970019795615385386987723359144471439817060384686023481338894055493987897470696393418228964085322182285749643777755985583832362986869204154532441557101172119332288048022596317752768543422436596833884446760899285060187708547557489148293168764087098976311500906632493795215345926829212465714707478946108025454181346660254331463664161721473874444781122528093517803789505623655422467901562785037572413199083332849643534024344680503734817195997069794437696368266423863433417637341860351145921744123486200710570113002037342897484853850361194253226787700776317278779111168818549067912272449160704877817588226037391649084362942129039687373317487709581302819196543472450053759608126599832510653567200128436794177077956518259861046890749158062912447366507925051596728241732505891995009415578577392110703260200725323786936818619589545253766300609585440227218868203951213926655305136184460677250417230550300561588647042646464987167351632123596926417422368567338487282051052818581284577944399762804877356422030787122839583815413515944195836262761282770295682945024593023702422160017886722016061283134579343393027026563156854565195184899048639830483260296340273203395053167419268938544456852797401295637029367860124884209201772332872233646994188399429218325465124449073892540109061381397763768769530795224996128596408463114620950370614154690003776378938596087456278936424615300307705197151346111755480894317674336396333067628509478365708309859085703886631940143512899125591158261512751832888582752830348437070770889273828028628134255840790303945724961067309394734513133721872758159197943125305968530125304876485504044898461540090970539425788019291979226719925116943494050029523169107522399228833257553380141611438944609641981182967007981067453570659536624812098929644734029493940793279288958900195560462764375798961680872748584494203243885439838502248915974046606903037044266741844939537507957787706071866326327799787125836183948910905836445232916019528130654026612546991709706566428977055266818172406965650048512873748476904618226474986999298124959521490354021756732111132174721239914870548348382971404639444040549901842375208910244843721809631872916539837916390957774552453286423089229670679951100282799755841661972995227463281084318616078953216165834858832471166577295170909399051510700576025744959381640396209680518235234125463957511854528811102174870139101537552881133973729092734100747250377073964296259885377791478505274912563541680302879540480594689181612272531335642779062055420943797818920032514313560364345158720153533225309039642976126988589630131537575536857629923803645509615711152427427492104737992613373300923942707963211345405343646645051160420187595976828414163671869888936221551260664324668466887972040832651420244135205831269141080041813729145976633950512184985955513805740605576969210280334195534556359271454394988804001823025330505911833262955977167728961172568995288493888866365711798721644915120345567349114877936295129544348048024449150798449525802653757914506055810162451489290572664618340561265739182957400446327682036246880519092094948018659092712035346424051855930081016347360130428894375670912261270803105993729202278973401007956571451480636059221007827755778501616814891896745608611474901755072533573218364448738430527708315714986460912867776638463476109731290453548394912338525034197635748387326022294738019044365807820531091067616263256695948117135114723032122494309499593548632707812498822326096327655673926351601642314256327280598022488408130800803754625045078772558018924665193420266692433803589107675066331155639953961571506232594078728991808339415271741136587097540738642989984837798282122034719229729819002089614444336545313775374573998200223323904637455094140348088030253793342963120936539266756631172901202947780583016669308293236179070455482782120181286843195941809958484810083697271257182385961249546724941531166708543031561066526065932087109983063810197502259747118731314690653378227663680641958978140502976168784456196504200919078178811589980008316881638722370766944330851221128462276773580772571847944018908362760739686112782858594821868147211500466560130250676882789897627338182403727730368683903412555123030833824646463934431175537232992276844458507298894893181569747155839298959535376179115296894517699388351764695117905409526076406237233847599621305344000551400063037495929061103527122067328811125336438261146681514977870671680858120253489334227306900189280346147210496381069855127322676613161783266715863614747197893970515243578003205174116085286367657821384090160105448157000302130758272487440277573650810586303791099829672007277661190600328847066449191210969728586738119162502714978983952857096863773078537616939094523018631727116880215291913542502452662273753732620839260641330708233974259792020505120747876614757122356638377953315281521781534085125901941764962743028722887509243196941589552407641622373300688199314750113275762065376950340830841079044341847270293988610243840342466281378415612240665790548989611080250239984264940445172585742420721068066768599330679436467221738886103479932546957555938628637073466808130267062676524324218596720811390479597809261943182750719185294577429443225977332227625874691129780389920858306148832811796575502544066368233109837054121814542341766107007736457001645341675501765051572334205845439899011087743180632886049539725353834851633756653385944718112365987761900347202578667398504581853984300584511283700227213977339782865866289200510018567367399330118141017464089284535611852013279737849634522285021011219728811231443765615122443895255574724262724284813533117668560246481403339125598336641626950479300039286599079257173245242924233215327650823818084673793236561340678942392787927215707121777402961750804807350364382005473602916704486178646383682037125319379369592961604130801067715549518017326620616142744942984057975472418813138953077817358649218895977698709716166656922559003630127323148209270522488643922174993673066394809421597997736097449012603742246948994997443339829234818429750255699778898010978422393406403171571860192309709397700847910116646926147934103579797079916215237142489636141117308558886744424779767403572842658119923305260904068074521421892108251432505839282299704708183717023534131980292329478163547034827095896299662993632825655727423120657064350493348280587217494156039027058154295327398427042764426686479391339525389337178173790617076935700027622562587640965075126732215072947862099141246318312562663406674982466395808467123222376843080555667030719547145952190891581065528821352242570731913923284104466504293194627258258751830824797373923296750239408235234767034560203912026871343734974261587430757121607808958500965178296523699903139974695872720542377755289911071929396508326361344836313684670808883877197308930435323276796659474014462006112436691224889747852355848498596370828252641384333685565736662104799955896127478875473822567338458559757051120716557787659383603908729035220047625605847663293296852785966328157654828760052910436988268114303728103227421620115115480798973726589739968341389152599714896246138467797434372637356089393953489806668348043493242680290696830864634369291477554039230971490349725357479021912742441220278396732046347926617891139239377365669635527559536636910282046846774125670960233935611760837209376366097015710990862619243717893923924496207061962995583258448140960008108416827756632036282191351855174911757920238490798329275594910249399861826539846077644191511923667457437524059706454760440200227299285037555301059304267647839831857110041255217056159320652736192654848294922468079812247797239757880607368705733821028799180728317052080926538076071560999558470245366039735059200499867289409294845376430061381102524971700297119710398375791134871388490664366129045896229034463173513162490701994716226047229444339755504388262943921684746728309780968068139939483522358565121109041333783067902872111216688911812049441464541215159624863594645344480832775365452084255592635003026957868026804707914076375072246118057573792445589552753891907832101953268153973204407722772417353914677562903106826615898477857492442774848031113515454097577637511724598227337131460658480031481207213608986633573365209619763159015700897379611339599625952342529813208126418791376662877709664915217514356634593077188925209845597919863060481994211168032348345752885589076405441356632620859970240328020083076993640491233809432259562673081782609407296669581771524771116256264789784439422365000418489711735496891178978896282032052227587372121457628080115344022962310509636174500912136138354501005231973644859505347938773014106908756103792218911819322171400976887127694164647600624623817858865306892594229465640112607591353397252049277712668604124737035786015234805677981767745082598272271597164653685538783747379047889384041709728976051952339740104244460807849977451933389535812127445672807215727242845061418862965801128005053224196291005483087061681625881675996609689289154444324476212067696076604601661513584081909873862767943497757965921096889324504506949579677222666145817434372144975503177912364972570822886238236236163522165426252133920983937196029077850111001670151502744816107031213209027837585123140544506470712445321084508677125417099036843190017272691688586536254492651257400191237511428930518736342416364391896812704477949954466505643521525564468538515433528448118450414270663027068470726491205917649392817861981576070221671949132539134801516139260734399970542504717750033833071824757299119439276766404999867852118837215055157505325575199458072614061984727439281340269617979999964933359011071443612398239801055653205625948303941909164262223826712487593353535702947019144262524417118869605488590921918565035941720805412654194726075087986376848193266846595501048182537792883519202125792220712886248105275627346908776777225738090416566442613679778516464583611486449355782163839637042455607148235843887386334734174268675477848510637316505222417726268149316552898306098688208719244166187582057440221921729057787099159553922633977112483581881938955520036466027361296193939058710399935747249086052348365388551655503838391360001558827204822279349790748747808151383790504895274608463875519557175755579364230748836116168240688758126148343743347826539426138479434914214782433668981933781206030995227591080495231254073128707840510862725494084239117060673527302264872551572581089208928943867636812116860336224998897758612274179415516752435774470440193858071050625753759511714862692292336801852004359858028908993042608050104527703274871153469885316122315886934828162313083467691693178353117304508438478519452958243774432099451697634994214329734600664600546200967168616653358164382436460321261770830683939494306787901172454498005577626968794287230883352847248839810558781469567926955163990291615956552744801236119405105181517158541691345774192560218814141152108716550229446036152688467433727038547316917544924875204325672031777717506092575385725710551190925087861552037456941968846496323810374847638526706565978659839331583925351231383185471154714931367907699718680850851623838201014529054459275992833384387590725506600476431366676779315405178868192133591426105372386898593341733765846722520917323512232710415816024593036422918565708175194739644159277599994359469089367907527734239037492688647911700318900505799370667536982439691584170141019669538416928507260496123884694457533666047122165139857494073138949835359611876459705537005800423571404654006559174978351806804689606800932401918156387313389699855222554539270771621494156426283671172461995716070448718481645067281404424368095415874445813365124215607008773897519288867457997827042399401945952594315561787646202539528507011847441402980400142131335065363445877505295389308310863814683759166997126119519726616307538436014120780123256990081154112066258530314628954092714430819195368045340905409855382136842351926729411625775165644542750919844986224961278398079497119975650660124842815879103660213533275111073987078437225524465983404217428901838130927019349440243205883146892015843373561382843403792088940856920001779823704589631367041824656202799819293753414502586933547689088472870153052731992950973021328819791518625081462672993130130991273980062503763391821601595065906577312197140786134122017094410974441614387455141778100853651895659557303976234885902726177903955358395589586093624353280771096594970567518900750407827436996731976164325384481610683292302375300175062153322918030526445494630409923615783281457612998743030540014120217307313628378804848319088922050454220601361277984071564784362523950097384096635369936427898574521603114654940569442224532137333458012727992089094897606961690045470900779135398975647248729274948144854724383225399124887220235770779611683712605225029281125828298453703099101145968906556757427653724740222543583131481178184420546282892545903094736406749630805857644195312674092999220188990071222357079503494772357437673701808194668437266406897439540580397053781379633937062894559612121720775972387847657008574907694522406120138878732734256004215153242965977493165369001232572084009209988491287577837079550054174408573505183247668589782988930534552042534380661162166488568693092671242512603234193682520110152866630701462836241659318102187768154104801451070676793060003200057013000469954885763781950093861904586423599691951474730534658314493505044696782674186537328963060184013207734429463483495087865026044224666977642460811135206707331224193954169585894211400081648322936435837382080173824542066106425622401201413402879485580059744249382372125879346386186727525116323745151470128817179482282687827068196220928188273892120391569390806881809084985221225848427143579079971999150822410921978965213011830249358186855196151128888946580090820605293058613273246957420751436079354052197642698440965579584012851156979242246213860681466892096265037770607026370818347491464015398443250767214365890651434127394403879860087485495884730764829170112317257621392603400543615858514024619303403299434688487598981662421747032341903895414164121175924071030364729062920028301351132770142393504111461062946038389824373816349675621631464585784161003217686808725033046203551134693620103849562125819125556265884795352978477261605429267972289604776000179092953517983491848506581254439453861915934545829029752013931710760670952847145843364818496868120027133723228768386838904817999577906577383234796428277568322012484788160820013108933552654495541398864274263075875472898518620603376480459048290049363475019065749233264767815048670811032741039332415401131338889674447587297799859455269805871820974008508140965334827368294996884216907702983647686063467821568346934903147717099314567934670660151187038894522505903865827908497756090744294116754903668158878816396062571978696988748437989984770568103792085316594780698252390467284257815336213187737374940811777866438367310946728793100659761662591312273365607711569253371185089824485808536366829589036305498269369777105881944063610447607920074323164648169745381445539457762696752983600793927978391122853279884119112709778041413716239608322551889530095180504875438805440662132444665093371344482542040328427434195150865683741806894957633754868402138173995929604664310000152668011166060812589645301379365929807228464682492658404951208600195887247091852120352725629056939537472103887785192750117389450813744873629659044677352734406323309774277726418172910233118844186690172046199829176515942662473496643466313689215422353307949074406604847707894626841949289220638906313379376708738985675796421157603743100848692198601104528249056683390557944492966185471460105540112375193721896043183784846817735651194420162671375960303217443202613704661888257497321976311858165608984943639786599284409269571758575534107817490719952318722629521559046443615343312175656396538760826485234883549576768236578641337791253818325100658397418850843370930912990612295762035786410169470016657104405995003248618312222781010784355462698031011717891296550897760612089351561339083477432642248915249689432813668872330934495748028553962683290572316612826480792286367497716369754335718446363201973115792813907460008870273431857375825169631974749468487184499870562238696351506266706014319113128317661865688564121792905391134999997845467736898116418844589995217545741805117961980472214868832075515460675233815564639529543879677831855090643094782867805099394959008156978847956354114441701445030934388178147211249474753178780927024835169712824238516091522940698974095607410890383473774780019897247021825483660678980729292328346876774757933734199620857854545470290421437751064423494089096887855452271592993907336276889572745355545131566613197334462688482285840438149701181567678443727064055657000646073209277458876084244516592681950495150306286510655562465479741601769364988138014494779830121573493666561490913259337215986952422254839937497139224959070227992027229728532479845752264933208033591430795600696318291524023243403028765267937878264973224055246357697722729989687970493401006160709095633568872046097987899711972423308519252488383249973964799733124473771765474523507955574755870634124313841121865191358048800785432270634016206731593593267192522874256852537831691282920126483298631695374892999288562861961082826772065363556955910156850342288152370787202173899790629528938796142036818859260823468884349409040189203896673099577116833159084909715256859416585684745751773486653473654218416415858665792709666980441545903159700428896594483592370114746845087746531305119589484041142148765205486446999930092799943602482254939143028187204210698999183693302867760095435130968090534244370776744475034484820129579845251119051060029324161033870383963249468041298289863555725773403205615595286362433684798865226147279259413302999719625934595238945133294737540144506453572645725826682510524808661715925254715845721530354139685923756115450434443703269724246308401973503138052151685407796242000050971278199233464409728344482689521656480919529342823661674971898209655882597323743422136453026900491768914134962622454335634421637948363023225843906715404797872058033840973397020967461909109552446604234912827634922248224635750221525111520244865068069387383484897071933260415743264245750029326749192221465750495521456795654822094696203801678298505316160254193275337612761764167923127603553503148163814663835251321603655359971801919956845523027355820345329490213569495506526552039586949583836552934428483607362278355018865699997437029126917040434128409917853756394506762471504600540580162892741771510953442785132761634976317367943253590187180896949817480265735083473860813238970405159077763216189497621023424936650819734049102972522851383411174169056453080578377197223441304819574304334603010702507146448642698353476253557405091838396795432280609651010994006582934965501973823810588388324609749690895729980980110311553044547608333032947746935873267214692810554967061894889975510133039563475491474876191749183132404484988768519573287186716285903350575483666181737171098848136753693194047014344609549920057997410025461703161016081227133639362127336669154980124175944530826373880167639017958461204473028667409029651717975280404416368692037504766592912799497973534547905056060298774519969893784101755609367686654186395717337919248693902847919782359511727951490775220391688831605119362441898708676163187131914292055108365032012470466685891749289322530725097176013526158388635098281809168176425184730726728834473276463312977728947388660393898591135573963202417124544545094899689145408140192253715729661827645864567711037923374516263779738973849814715876206816802771877897559955687786233407448088288536674952100997553541839601584230778545677732996638808658423528659062228097954815948184382679177052609900786340181138450542835806381219824066757666166586674272178648858829210418169513102531175041957635149254326452772714047716765739697760191524045073550696369343513092305351997708712904143937434275181321268416120026859477864989563593251509853786769475107542228931176520099008117705504948496130947432108289766695218199357001199343357868926467794406789716600680978554199049920797097703605642528522333510986219688500259573481025915104517196543565930024570600880350102877622923519904010182549602214486946867659916080930664865985703172723238467788072707637730011978444430199579419191762253792191851928260534494016607286508466807424976735353423199483194394981546806010378669516372088821985655162413492923963336939765980044733672717007648950620509155984804081905185530543605384904115030573354642471170757340853298840374747292354467462202082443723363666428997340600094586995502573748731051924481129094015581771530998003660367299251092542190228905682383015576248658583613639084122621486911052184421823810798723609307667121345646793347544680499511270665417530934889593415487978877288632228650295191452481519347211388031671817645465291845800374439961934223742284686855579649941069265657778616383731054540965872701849768022306756847866887805197960930362727096408143962441072715801948957221547826721372270607265847391338733237356652691832967618156000979239600477635153120436504158549319813103696953377442424012719538090679950361881814410602559503225313852921332564371384827495364252842608478607385012457200872538955250364575847663097413872205911240368553699134400762106058732694545804468725857390019263958432662695521945417974065295685412268736641324702481906207678014778527598217798482616167923628934304183631407444121844719687831869529228477892459541870448843898054289328225969191598000045880840371546141995650173502179492989248200268868903870836584653030413397252033113480410584985321245616215495155537049163976238838317642002482310176905324463364090015778990210388255716455940057454937945943655525225307305765684670617864402522748166974964016318669751374389178487277098481752396119201744391130558959066215012808292024844478218899014269151130394679399203935698350488389290538794630845354275619011782784043709211147897528735830625563331418158629629803115657092320996783189540619301400842921876605600183895932704631749673451216036623900648292525922952315984756611700968239917904455335618054013028818104892076102108914489344175121969161778259556745735570372636939275652987797393115973807888219599319400467367727329315347597488881011573985781745124130120404041696811508930289078630540943768497108201598436024293107750921657250998820712744562271618094310098359544163412082415197880254707089677939452185675093413103597565744756673637380459215311726693791437478699589505653691823394203006659813841048657875429927198519756288440495784028294087441318427098630181732802460493397981450807685507816329629848542283694572798654789326247199310467732837545596841705049029583318773808163563634394092429036303695281668072922789950966532249671371992890776415430263210533001261176513058868530241524769181417558990812102247754182898123151733461433189564912673893991937120613573267259935285081266072084298022342753407305883717935253738685504357274548362506835437103207660494781500461742143481804047637931457809846056812190085441257791659119527952596153076366117079165842591374838765172911998611753570499298299031114599055719061523151778448212912177858729962435422345835084142866567984912962337468612618441961541546939808808159703168290897464212644438167061465979571849689166576963292708899431185019781422131118866532562248326531695756704587147404940329299469067607161754261781543200286999420193354624998213505192959840166145525686928147359464705987489387097691015515400296372927261402035074234363899807363709616039217387680466535587820958787563921295920407132453547081415909319359277199884794762818873975309500512240123300698364203167924809893499490755513342662720073790371071301803664504198950178579756620766574885564070532837681085546047622008959079593542111171972024844154784793405655774254107776638983999486389344489732941018400435106338488925476098250616722460642304988596799123324444137595274541564973428916733358169431734071538552568826512670190567487545872477796560199839479528066907011117016415210857301066370541674752721627552873545797777547892323134971968786028466051710290029134082465834410571604238717511600480416022218438492537660861627817957824921197987483861914393303403155199814358583017723138558345982500791198339969192195945440859204428004698701678426851502724125964135410759775592556562026512179610572284768512542434484601852089713382286252370382505531982458012424224978463565555286163832457588198090866157005857648633988029951542652018800795945659934497999179149240442790004183526643439164595168780493326849862274300217702138839532567654121118508321239745303253128434690568453591243796824504874834877062911565830162649688368550721293171790255728495973140938160180647758418587432915041238933392617876903256196921512711986514376425003167065560254908811481622299682941421525057828823789834857885320267420519332681239779386658350069280565589132916189182694777349718371906451085147657993525367729140823700977743480574161073927055173259541156632997857474878136549657082931545516214972928249095375410862689854701191288473466862763882455310919061123461705067567997164697067944392345331822738281233555217178922152070261306401568252140257748695518786156663228139540221457879355832480514069566062349018447006331952797132942900753285220426622058568124844425735742613864137598408955753785386179707023385952456377847331410665051668453005683775046847491871007648769228483191250499772425485881628029082481004271389186437262854950085955263369546419889539914418338544091000378263007475953110876418630097744917355729427345356414675176794137337580110398787464654303900240800768665714963688018137885847152748088879283558838122705311298609464151809786530810904688471483025316243465420522601823711375592855350953974936806945570426893139259106021681247960390320708697074088276551485642493477657116000845280726018437357600261584947916109382489965949362803905322406443721889634946525791975804295031940650011156290685321110859765790560555161269016725674868883604679513960425711915733699731419122412719513819724539058023686423779135071304678613076609635974505532468507785588902511461369750912444534681121975882471998060918359915217281529515192199318107028811847738854411267598118521352128738693229963112001855671649361365861930304160018086670443112234872588918351503077561818640525948616957777843494983806760739309775111621435917819172304418889869758017391208248914848811088263694491268868226351120264981413284371911642520672182468099608318262129142146139583684824789864150949850679120527557380245960370906794248649647989569851182563868106865829689034006676279056914304516251885996244605166131827749731829810733422064716009218086706024137288604653979901663034593862860563959372305804639501395167115275811074973664081746323654025671441442544590176184704351064770522430360177233176355153309184066035705735526776211143857338830271338357249823255123621222615447814753159699130424124681867208385254329647874707714184734703718022291829449879214471032688089511469659382144347163802749824445369195371201181906910933383036034743120758027312590187787752556104866334662212658162589423885462297203881565214175961178978907747968142671895101698016240334150317273133275120061804301965606103115192164988958992680291870660613860393411514443961977650947397016084234177438277033239480043519426261912219041723008356199413545594505956714237209510819933896918505799711244496534939274693736200382022383446881370452746771925071744579785156869792623162327208030330253638651793028630850924683146537239243541001089420221058747527444984275675760103847483514568640918791258026610269405122276071948977518837938693128957604634761727940614514942298946257026852541414319513223636085211557536121237210712772702878495267293844354867202785152240039313279054460893837837037824441424469062529617561242194670649129353167857631480503791948103039657127089020638591942943388817616328705976600665858822704482692958327089033385973936595728328859933492763141148957653813521144882067352754078320709311269707584965440529828778134586469822835793430137205257468528750335206775880430123553114525111845446472402295700788720803415736575458360428568646722086997301573224022571916951698839421594133435281047599575044308782424969615354599076726628584520578704447122849081124782264582653956961899899373666171554166110105657173655075928185824140925243404626925442131344963460090526941004480428372553665862029181450588963765187834711415586893703621885337401486081021947556917498483748273141873479599686984255479289155201289864680052853032570118276449909450379641968069557928894220978654054084058739117874548190729348449832092022434813276003115610292544861390341210676640211690154720588328534590579140042330659595242187024394498739598939813927372846187937375270964817086158215134200502277526088789902451220457870633623538696776582503951267969468083137323202979020327728151742123638787324620778149611760017492489273664089354749197752086853324686137878471068987374906665511655377365420998746047156589830519948622005736399551953696710514813666730095905949450212781374385568070687276625042047767103857451363113702276115775959127019083432390381435715625054490132763171105298496564212691791457397590731459423681632748333384224471043355127599865349058732762089510812781731974104291408748214823363463175837155617650479976361595434609228276677461781248521656847039728414665654406421903948932891831092473271487949348327636368306310172750034845004655799157138376130591859789221543929682273336250357293161426043426647248014426840219830817989814369426597854876737779998552294393390393275704338130904162379784133766359217668124271481687173101292515319907777652675946616172526751655104018098188284336335419909555954046670947439332550421636583299373065610802820116238606263261632472080336015127326802875087553958005866612591821957447017977866563414342338594215498273595641476581426399507779069427937364473829663023758187796922203078309914632345620458149442630791656320300358483298679234722624661140620059470317335086170533960605220741399140166636633700416368001339907612179187894667254902347874322735493797768243813386940433691056935645419378758254128131648702101541930592262611445629194528000335301464982830396396156169381248399208499300436117846748737364916085576000331840095343330518925282402557297878633015525315399517733170285561712466462363816998046165839835888635617628670154958039624045304045700550464368065946601127094800421623396749290866699416133238360504171786184077835606864258094536887755076655567693452138600580844312631837248010103387169435429075123762050266741224073325293971657429110490123355930232688290395976830392072526305623599338560628066716479202834341290658468339719022346075533796113005755909243736042826517244284031504209655796238108735108632373494549147137386474593852340468997196830225739980371665904231733034981711806399929258202920153784304123899009575879147807999566848078295176623478491031083831340500184843905709792121220768257218402877934318383645697870698137382328783833108484331640322314071361319867945409947444569770853208141385395583706349626000454719213094196281207446418622852091096318364033335721460116016940033619036076151606052037508136662493265465209765597926544826870905174138247485554584041132122827062827217993864251413620808919189166074245807493340619583884439300782178091210176959982775917871004517393651574156497919234205686036295569565840950953389693500959074401593684084301688873651025603009733725695870135276094260311884166591119968987690348826730594326214620811183345541389697908026690401828679068394144766395665749794880443975993464460036772055240893513583291319299149073615442603055846656914186683975530574052243307016375644619018951956791729893048237748078327132527216456057430570337679446294786573055428924586683054038694366487704769611991993644332419598279014284320646881457506836675983466739438029705807660442870883610042056984676568377523231867076604911566765026623044803122371066925448023539929439766009348179424767413388689854280186142204195326088213512363836279448199449784341800910953587694254821382548896029096779783724013323560832127741975769881465961290318787172674464570298923703594473041731534751961118319928367179559656302467101399925237037086045095871015015402432154939195132402918301705406126109622266750937471476309282067811561310692404174969439734651341263909970359906272132156758507690452957596956378640681036948143802137317371420373986397216298667791534749495706281007413231889190417318378603938027885788329708085817068768023153764573002472447719470238968753116609548620228168130958519211675369540860912022953227767324157819890090089594420260663790286637876927846615013143295563976091356634488147281165108035709319933594404467473068424882281921152106584394934270495791882006688667893020466086028661636110545964187924134719772463405590514697188819671436167384916549949183821110079339974713044187850127254376819545337782645978001072411864024885074111845983827414740731360243675071278952834015687138685552745150747487461019080899974979472400072631086753426203277030593925206192197634223627469015354081068636414999281627892736328685987325102969373096505549421624174278343776027926796407395990204127341141577832754985946120804733810807714663727340647520945793348974765644252233950710759346643687676258880176387545805810911655316444439272089132508461238082869807059164021289198199702508850578372914948347983279857227144582531320061400942588814837404476210653704095321024371805019462263039956863492357134327618845840275620645603332822137210461888169147146465433682266824742110903055182712830471988772128976525540861671225782203893488819171388196821166564628915544901174309302533397722148871685790181908991545381071173122633034395715052656666277072540632752263087411626941691528836737740255225768864251206378746917894376742748778799032570922187334229526955307706508328123814948765944673210965126579547921337399277691830656037726809529664030531235520544607705577015663216378981931040077265467511136461611735011642747060740084245886818808916024968529283652209396603034790608231629270431906155661428592044078453298872043641048279375435866466189256793023807801162734957111869095843564789783931478452392976800158637040174448711239188279608035438047495781252843829717156922883235259229103264631425811872633936349627983324540062810815048223850813174863312251870497175180678785880338178921956953437223033293112077236673495881055025885514665954908588563158624189504407667618359957743038123000394925794442626720897260906918401378255766956851306602886034765775656823234547753175987038301812580084966771838292483439662993650643792557700924151988566525639774199002104529176517181060155677090760838438175968503568310828952355151380514851469482408838247913209187000965607650301109168374947417346318560399364778658756531276197370116444890213763405080691965240844608711271487586036267030707920559244014807112197613682857366831319050758765091680079494929770838288643280393554941544455383607155676619361366107803760643935162639090403423964370151050292325826713994984786017824672816196812818117345457509801695607297855710255865292125035769302590695648830538414586731475804924948910484187060329247757420520000045068797842302660802386982542903005927317538938975275058893492642030793720536578875603469728049697021493038397223503030476862469731592191662283463786513823659420893488980774462758686789629581068923451795419907754092793108259135633240028682259001687471423269844310631829560705894415588135334994022543258909029913774693424197858968249114578413374381622472762155785373894706224716257407042953730081762896132026469444755030116179667111471411081341785332394865847044503908456297437187325705282899873246341295948328512772532495248855488646623331537195975089378364894276796862033163701066521531954573506699647308433346903391494487353089079894339316592421773067130187824906261804409342104842767432276161552789000840868874953797197477482341923012049088851913339799347907677358343488596748315088804864216720538674003212302037250913253722980489625126392419547322096210646399696783235703148894851848027192395859762945642844192418409049297115911959522503696942594322608927476276155774616537573748328189565032455650411430613036877275711630277349001770954884208861013709995460011190401874546686658122373509520562610958025357575874886539658641270638536868348863300860598450398113598296433479233128590294268400529069475273289580803466169064544145166663030779399105553137308588096435101545279596069321775466087650458092828932869106682908917735831220128415752452556009237142610951057737178319172156573346650982046838189023853800816451718766671782266214573137599166076458429191307483707830775807254295625415922987190239639678379918968234336820720708498579794274057241393794956316364427365071780223078247343001767551175802304072669602263629222363476823409328402561831887496417315408661306240883781056062473836573501201322551021000380965625854853468050735330756147942871378531106498200478402370389858922515974082674531990211227836607673015938908370399855300681955138078281334709294987172930861549095131884857112998341330833165223319578814490896966954740493715111913800951485901786987959839191525506535556501653738346685915157935384484185490585543438852445340659570182568549024083617040500349146508504016233151328309963100803122590194880690266587336863495283381870655977727552440905810588335261392706675948638606543502119006046655495564449034082151953750157535889956316581672783381012273475372003471874781502245562963324576641822714027240636441496751689654456315286195033704901448846051522490083075010441083562020388617973238888368717854885970450807246468500954515824038505508363023500589394184113506482558808691078287332049333120035439084157359927564462268478716905332298835397089202773157122530702419310203085971326335670215806163531614260951520407171161863831908139509670513626615273328129162511924546900659385307434502590969345338594291961295902366258411860261022983907087688759497223844976698751617757868091632117564221786808293542301632118224189205609290773868903849027244769880385132270716969229555372375039003286813428161672794739362338471241345301274075637497468174215954745260667038882915118582181095467181436182679977889675432967932605449693957701478022679040712908079911869357060497629666877121891570930628158346050637476718147543247788451578473413444132146891970398676228075029211865246584183521914387390427999639979250676148426483688315213345906914307294937669221957676249610199288427939015479154492213590791640532361024518969104704646898145018048516513650992035888435432050429115989793541106938743924515420124345364416591527214790105757957453140466968987934359400416497195001785993636706773485402931723909507598166188847984080961261548870773373567227676938889224134112542305976473343061659139049404136922667830289669729909175559355388985866432407599374268294124009447282961120620047979388375195252381720782806892339564621695680241612184020498308691190832405174036867434675071952906924401967530095761554989939784915897166562056397214321224982440173938563177535112516849043655374349701966392450655752064545795566705696366357942014285401271625332365241017991459412526008125983700444123027803227821935255633323645116609542065150159069669422830185640571160923116265114086079439864046355794928128736593059770234238813706967273984042117410618753867981163803822603062226106214039567188083566714778802929788969057037324444382174281597135892776082738229761443619293700157108931164266923027914193770878177817692775063631399963881554790828783094058008353807132419202130334116797268569433057645641456588379578590517387526187451849570104233352706842680541905331104718431101486672871756381166086397761414390623022045057190875595979293974597182459975630239804121713231183712987721579077482031738748784745578995578706600639817859614427480022355614453803903050613068764877994387406616215114187830013740520432955674792518139801254341576420077952519809510261350253243880877409241847279069254771263520378205826979966735776106474746685278233255103819900081540700081371578155475198452763228772001234859109282790418024465120010602558251882074135230056342401011380031010537056226892303058328803597443245004260332056572301039373873448635243908088807625852705449867367032036816073768114120613173572987551920074755962437416598048040536603385553140122140477227346193142032840685589361308029398055087720365735836864942824981744972944477249308770061137417842199320529827546716815494352046317218857727177981866686762574081783347464960365537943554516108542319635781776794239595660857679374988964160556656176353413854357030234509484833068466974273854815737543365950671068371984387109114975866094371632332241516181892255920996237134019032417828158169443580699818563481941429887516167255014633963269353243611118623464873772991750250658199690704989166928033490943431124775468990319200089351784169913971620066835489775792908058389733250954489642092745463850891571229132393062435506935491873130805754055097428619052946021503270873161028195085567610629650936570530949767789837336041678759003499765751705446103823641056973996616530858214307797640732717556688928029121138926943677389719461051519708689562281871692144674763183461932845502077801024621475746518606021275286816883582577105272264730080857064552589420398609992599911219551746895440073354920790752624726656278123537432615076797189998529939713009430625449400424869079693958156963452973650075609788421204392871831070642999713661425152678049835542378034860985809470260897120722660996351998813864645954326660799982855050595502460306535266052797023416434722405048395092878817453869100184185408106441665094066459740370673595766222207548734842607571088172843406156082093151893499339862138355590308325246661307184059868142054500822550718705150136836923728334404857027186029394461592156903759194876171630179294694877453255891547023996575020785124697393205449368192122226157053598926703266165516357601934275882745293330512671342003883307592804205891519375551685149435605942499846999787537653311041026300363329666892784635333709960451604302204166150075792801788758391820239681111267784104827279002383225112447756374272304293750261760105195025748225608560690447086756992616202450743864034259076601479133514984170340717574994397189714892695600426646208960268554699899890779740065292509658537909448689709883709356698056269652284122959573027269774838795224286558843436658904119743921380985132223642442631903244376568762463821811733022550924322650767047417899018536259078605605052169359435778920505557370531738326267330892880859652662524274862934749794112805274731211250753508404622992774414774861481973468624828475751844129974523323378513925370763427617882174663712268666202616306372686274187892193473267498362768333310540088680106457157482204448095980130091273257953107548130735937435927709267767088509876399559659867413595066038511185298873201333808652897780757000570852651143439544880743319095189883453969307041395354921562192112195034755726459111762889786419356635351252632911955334174886048048600200953818627050509284110223387509482529592278952681861920761428525047892315023562111443169385906954438204399543551248236308987335574237731294928611285524391015122521859098985145634445393154709793017336518336215805931832614788034935591507304799677901525774738745170783380136105163546752585180484123788527432415710748616825181777854696005229171019474160404752402022491156021331866898117146918070042812617756197318593595280072193211180618307860740025709192224932542767188969593969902625899832156995060734515925777454058360962456238640942732022904321386909401164479085163400537348884822519640214773216155918934161774369674061754900130694032359563034701427230221077699172951419271704432262491719401970023614321813260697183201220084472915711649353838494418468070951009173212704383989875631213693970348560464588288272194111095653089343005186544784263860960386147137572558248837441276879057787616184053416922835611979163891945997393445496485300410008766094887059963821204924400714370184293774123839524288306331249628541255683419740732586211672901160256965840390484010444151287493976132376533126877728501266737580116279576986850617159611043701150652416708580404532810558537973707751216516463809144516758016198942320888172108889808632219560096989894047170466869227187414843654455216107996328606351149558964648197850424597083364773128883108102997516887665512818465630494524037270884226493027224720535977188208966183325125358597725755226368744987812355993822397495002892992694498668266415549342773543667430645723244313396125018738927185228092334989489469663189380707902997273757912299056830469089433421002510107531997300500936081375884800951432009321613456952716948382641218724180279065447636842296480985511459359857862428593291783515826558594046326397901034108209365348695969801569970116372546126824976896249305669270729596179849838255767697231481283510608885205033548070061651721935659216440104247847176851042943242996990671864480695078234088474689551550220003005240271188656430768453404239862624762454787092874456595857660147775270708439137301813139902544261391143376488717798313931826392134139947434484455454193181136956908482006141444786140571566712211544727573760101325098728578231360899666746436498609151732550035216935898380987084554552571237134548272715126400788976528843423095287792457430756909738806582320486070928539205486548374216476204818079131088710877920113291061201848389702774473916272427742960949774259342130371755015270758222772234526675267270953566766451217061830126212011446881722072686672296018326544545388760936375011056247490462719414892935030666419445687501668886331692990557855338244359639195282505082393697062236795389479313297250608013798561322172893817497689224710112841512766728771716410372747236368779551535859744629772716767156628659051430516418045213830446372555696330505575478225926327350989891978095946071014028205431426268127243144232645303576147587950556202080134296944749324381533887230620180683641672241471253633016167536374632638959512824776574891132176279727705808242330904659265389537697200839976446473489751952982767469514435326912173399789592688971429733772595597811471732936518258760986901839598926780209138127705977330650727061466565723716348474496450607017964225532688497188217076311213625094361168673227515262952283550031615453293514970035111882135852277236848973525477261442147472716603172807603477506488055116011014189802309228214337891009104933218747089404009122197010818044546870151403236662719286091384782948192241833896900956343204402989585675639632687994784449930979234727419759812674299432718995979087022396990483380267160900926537180126871140356578636134209526220947026403275832713530760223725307656132968264664292020893648383071608702071570461330053555062822048443608848045231448132668551377907382827607893889701823808697090900573023821018625318474587730126245383688738975432966466099571996929683542558169935159966366931830257628926137609198360809566099982991051213575538234527013870220156181076227489011403417146370732309283509749061396888364337789443902595126733397599242237366266087945153003861094723165878317330038056921426019621681410472647228099971132268482004981275823490167328843072595509713875431202656662567620201977594470739604535843626970024256508047055412929223681431352947407561580256420379213992137214561598478673785335857030276326769704474079367850137878487736745598618054533673120208890140461084155853818605554140009389536222105083728579694756160431217446968448862148601514976435291799337407168141824968154933895224387935179562406541834881553525115761676298746636102459412827784742423914160435432503857160613616105672526718272202321546904215634443116349482775557456485363229403836588026399400413002716783074880705890954874979215290362416849788945842646398528933248800401626598636036904212681052419910040291551103506904305238289385829889898107804078619265469612315573722578813538211029244210813270063779671876916956370700158565628376513350860748403784926195640275650502933105624846586713626420474541385194621580689966389974346406576293841965479354956079734368630806023666926258971147040112598603172546179084308624770134032036777751890431586030936237063148649813714539258879582303145780098258742523084948428931795238850952669155847260964814027239677217690423240204061166131113316648644584028541810449595544657335550420986001970377515157070738127520634216832270375390306090723736180860154643774137373671070296092829863884128964846530422662056762754784047395727742742679092733537991536342687651057598932929570861419332324005008242915941490208659766433699760540524563460458850676829088425897360081547372273527048776974734907874777975036811423287720420342686152361458191773997909045160622541490194379987263926082311646279901151641457563501810261703877455339157726913584896313687434046653914354445561833373292590049395449077472388782388272928931433373794418147558497493757749849323623045606086628153142586391998576889128200112771966778886348381434097603878090938215458585839891345138980442791026840819572900193588839323634441178990118544637684279141711666038155162680754304563363757738844066713086199218386051742260229541632519693443011973357505718401759753625399637885425747028939886249277563246606188396408455617975933674337609156202321607879886939278847198872797181235769492258481965151270254917581165232164260574222550435878625596713542233948748638690379899008199192197416587487609567217542887223005387946700818520018128339907518419761642485288357627127344251324870068355450713341758764605254627191472573701033982858799962171291826077938241610596234819622300374150764084273155563128162232454268263029920779816852333277262435791436340199130846606256930261197871945778391065526541983852384397348125974610958646540801659663203305450459444306890182663465439037737493614783961568793195129048136112980141464813663539791720686364140018016276132079052338174770609348057904363477858750009642385751964631617482400444064256701534133040434063332007729525031171557682480091681756224296349764157938124067883894520577697092739531259957901724070553877908319227958042853333388967126807294567528473184345757972494431687275408209752887073672123096912326552715252024313996779247011605928963938187405585074624051082427814491888225247379201488604328078237016842135912097879743895285454919017840964128934368946557032145226541675414086076605385883528526049469469488247482114109617389159972594312390461805533548204141511127981226976065485484238873661744197375856993552122752620823040098357578189810487944303907085350979706620534007658423861599512654054277383057640792746066913848608344632122131304838074262357616097243268455592220273767724100388882611063400156093361238566183877460042259099791396477102245834881883111170233844638100790620534707897448441311159160714046624644142178560464468126516991538514904450758951021221709460800960717245275733561829278688875239647325905741386975433044574693843875265066964950248061122658544338178854521909103566737211309494176546792967520128824175537168862734940216818687657806091165202671878283581795629529503986702947262629759957795674002428384949238565445455755659893534842205076001731469134203652605757784850325397741042822689660263841180825429126311759022446890840187493302811025114016371608312464795108160041235467073019184589624071428730907656879133228912789022894686227903730155960233853911295436592436514997141380164193884768996027858455268292503183513704732846327919137461309121839817301933503559033167612400743964912326661665932492346166733018579185787285362587927703077376368403058888671806806903284816999975410214240961187395416093551947049529021964504325511396148038014259432027420589647035869203246682086972937630764981677942421738596051764865288085699805466480151065214959419211964185791508430250101810139746994603570188596008564966472656705758517152689946414004421529932554854358355679278259584695478940783575392702741863751361333734604381655745785606440985140684993812176929333678783995906766325720602262700558485103684261755571797523888853434077501875990113447234604265821395452447596730534319174955021491961357275236633404199658881945111369238275656818104747326388021516914498520355536169656737361016677592917576506705317121130751153245878248661083200949220727138332406673903951554534834706898684654786169909281380404602221457740009962259998813750081106881881419080402319716306500678693430422997380978068940442190380830722512721102471675065623730432672673032176107704296833221856167097715300808516147891600307097271390441145046771560936482707777204412600122208495624629985280090335883593826398653983960548545206095803581176643452133757340039882566905324215277715551561142857504378551165299491314690406332066114978472011834697223126242645389415068659589904723658448240140886200471641350934293398432135250122467253693191592560556774383129482827987639065540895153401394887219297440289666234499539276116882460820143621746698949205718052379491619176584459842175903787790916866100515678324071781188949418590065990219467808697412672099821348077603949846874459291959043838622435437881506886081172774966397431155421922808640387641570883172993870557206453369904365499493290683570520979878751883366836594560318333212314544247029356149436557367893305459836546153483919318602664960468873317512491772500690387100052695864320766129470203358875427955253103397315953850917175339561901253868055765305046229225952274577315471089566743797374420821857558886226568481483278980733529947365260278127534119750758451301411312414796245054858077552554559485056907529439026299171821054318472753353132524348968477389378621155765888391217396498254644332548785402151346995142152950800298807498312303303346589727285949809147050253354073337999732341495485438594020045949050030866507057402488612761985555370540787702911379811007870813158150077320504667648761289314611020831217988656258061945896995087742520612627126659792193261536096458037554089665470780451921886521686835725955810498052933050771887410133940183553828669877542468660975028544347975881827433003611394174116508735900778567064290332428976259973482818494836403076582367997994179242918418528503140498796813682149894286029562560864997487986216724682882504907973120173867877642494055000642920346288108578107292640138391911991245388172493023080235553560334408715803525702967266756176773079818271960355209187494008613576602152062297237464409792776876200646001694571690864840876615092889278992673064848819560095327754982888230473551969858924114656882352024595793960562067322167893201205718484234571914931766663278502455849846266939164055902648120038430663344385201577484120776180004938632392537325965589962903512988887072745905996812648660647344522307858532808264936837618583145985588024305148409970704126821710600885051102160368317919012909852256827472858100952563118129373273861880701309485045469733269834467792779642969673181088270669053037247914704174761628050194497878873652730695556817693085186254903809512453629626439306295024841755960567588061456030265123837668378944733745213020642490038028901461071201169829173918447377872532614539382954536155319462214020539522128655870558190671941690392257777203138049839197850758887576768033648244308688938989084797384379013995944908030300161723804663065840833165765771732781549618761220728045349541415018863395888582611900011288565765717607132902671904235581596728098859233015182883980217790978941988318579116086003541515041745674355702116964882434249261120357103052861120956454207664556160035232408193392336780151618949774560802485645313951044104854006585766220200245767602016650064665179968514417283008721220782902786186421403069752657269661575604487449753170782904724593174733579459755748579023499563933857512649740125385095574813057840973708687241013008057240870897831635612257511942303920268465082601936774078930781322422705929111970445227443618995355667506150494744873638757832724765301003519863396751626981684845352963709205027146459642786441256916237742893856525997371093061945176340691288116296431269745614114768213211355939199500824417508574451674894153247634935008048864233102873934858898176319956052606485071935511420191208559773755440941626785701740925784508450540015465025638829350802657006554548747161025940376219680920370994728269928848972518974673124191097279198508098175923726753579053658831747181466990071208524905897920822691383110740615372026373440169739887325384112178985639910710460846339760393162099288902042231303250154917036514227772220848576742769142362130997573331082017651346935678220246116832475594507397380492901424336198720963142846773340638108339522598804768860040901747686440284994976631829081009618175284239489693018781609789670467509441316503757068711731547205673675714232325966708914386405499375709108810741584172007383764743160612532290408399264181455176624139767781971389042517817187697617680295359363196584910774177751058703094936557610998760913579739537648488943166314835584257894861961291810655287820838403063450419783916767925653179991098881371784960541222775942713579179496352237192386271944636381113817733805244297547245123350232117835003460361714479074581684645189765288257326124274219285866246189865632593702972456074064017965444234146801782981247187050808596408715954151833816832054905084543240960477862911023713275267060365122995256830166126579189414655559164393598515643568209953106497441166632792586916602592679242349783390338142925958723457616226872246287300457266668687258314572415362086818321628504462223671990935269356967790807365332549009817892842425157503992720643830570659454377593250380584981627679561173002911402862236151511799169347971356219962994370540040206960090717111483058138730033781540764497275841850594433884756593313525037320071528001100381494309416325101739016848441573147349932229523615346510192433147236081306366799202469050259589054823091721696024743605292835461871865157877709885929380923141783380813583328450628222441671539238978939388832533361301119475252447899573710302163660140746591301163596463048325433527923379470120115087602532820437955502562857422922518047082799817794893653767498267089609722257138801849925155608770121250046230146808826621435603639603961481482729040363128026807862948240327422935709439022441734971387607746035509619166964039775412907115539260052848023594325400943371418565976961673563729923106138573669291405437614917757419132412796554787721023402964675085882572522391992310693940945380611470506285436593092274545093819149666914824001071474072564769474186283222050979849475422172943459854540803122780564458017137181460235492674095316495478828999170654668394326685117601347155426606540084036543625945433254740519041153267296588656813778454178452807968623777855301284609549941407434694659977118062506253988553415967240592588206496900440787437957658082999951241439914510631590410983463475368643970554821450428737115272703575328161980668934644210731847300735225271146509609306310750177778659183981059136298682012043936576993730356690528578786365416046880601595043872553952763453750883165912332202808425761079626555824386463969281200166777911251004706197413818117030654688204822298772138880723272181610213822407287935136148526411464346828397357734051499269545003416972042859226702129291241870741486171940685820435470279812252646535001494100189414036250261782272247648718546539853401765334178632365295390172803745190166545139266587074720327913989193776395942043577337632605770130163735099257685985214643207736175971146134298533240079235370468573590653330045433065882633885014975507226571893619790352705046351227896217113921310840422842911300966815289501069471583253294473913237908480118218681601685472479017840151159463537835955911174424617603307652261436428672834400292141080446507803240752847914835379871962448538964219232234843700181664549653944106839367751768148745348255336903547631830460110328505286918086677837305743730640348059468187818319841911186472705004751435081707416532081055679300042309499521666721883497352812860838111844111116650816970226135243556724866357806854541230749549638344463164751623101628453671246131975764196956430549959439315186721019139428886131252624553974868403663934735633816116322087870659997835389095209306026332944398438580503967513594297276443487845396872387572330974368650864283229675374473454250463862138424672953948682493935092143958760438744288772308054721676312157407493807343453114233615531311798164358872708166481805758773364159809909579327136293053972406564495870127230844993886553368183513319028588763674945591474306572401856687572197354926651908413260112276128490278383068916492929334426657322769159904192791496362591732431135178976674941054619077711951150431369566480662498107073375839174908329285097064813525684565842057846507546069544045294849913866720440735071278656180728387567370921398918166490824568706958804425006802746278341186925882288613397562598273443989461966085616891864837680440298111551918823555767114419937710015701863191144420357169839252834326055980341738723946477576401681052019908659364902388146356528962035868758561591686152823713560808327270399380024070766286638602670270789498801331645938748483940156682323507714143182728888905404241188574784477039022623439642926784141961354154554582836572737170449246205272970539672527160007312042669747329425339294181135373256799321508041628402661005696870364546905076347566069130754505914779067158028967223257297981068673627616982776799250821243862690931049870659428982358103205259562021016416946938470666138409239589781299888750884848572619309982772781277441417338409539580524967376149543076847547262725440396901962203161504231688349223511094822054698727803154366623954255652464060927351085111130389761611550393076129416137175008907449486253548405570077032756496442638210563703103773552095117564713617449895793472169025546947736789731236876697105390752917861207222765131114797486121005438758850532845605111605098753350240801230491821738934454793225106719525486451753929167233797410920354735232089649363126430054482099442763648596514413596192998825337085648963133608631938563025821319515189751910769250086007830568514184541459013279677556598690970323170333104340572968262069277922407952633549189040837692741190936353689630186314422174412691940733394219444204381661717551272119546179979063219967587716931098275466263695316417705757783083766149022976563387956628554251455407180429243456169159012122586038011515862425763380883073929716697088900801176217550990565035232379317487071827440937682610677810406906287546406069114695331621583954210357864361718579443567610975739271939340122276756549805530557889881167510526621660688095911974027755163650337582035553336780340572817344960735826888858805974736660991521890456624597347003814661298372150060111807794591212845264176366019690863378097968159269685109108888458078082766106091881334304920071435378310460268462824635656493172057011187556185704871611338854552220846449613071443349974997548926376092790597030574645132332681026449657135045929270374559483179449509607168025225351967148308070120051680901659692782668360367006686929240953722635866155103101530321887069143901235967134501672127709062663990191449379716964346279613919358605404874383850882432381329689604822419735418037379684610778336401425751847446739391301643104276404378364582992574635007122830833794668419134588146467974354814371993094246825040068260967988339934391081410470538818668189787160638590809309746592309030258849119982103004791370082154668473145724477061025022500647192571128313577475226504897560622655270021303485150031753390438539932093786131037776990540524092047596453448386381856442333199527177080924600401170965820399935781122953424782547558005328364799093087994985749269583028917557062516052258901538436053683715637738369354097495205964669323510940416021641763362320085042090232458925109572371741896714727366978691182740887343847362888603790059305973212392720505877090586781678741080182099779650141000839848591925401667655046076590172015879018930216321463377247477470629364269040146648255186306790592330126228429718226840313532716573772622641857134717730055256346257419674627351250997777205764694735699500705057505126647507889856989746079380724600769191311641677511457218155216115212860314568279639895359281072081451925670673380336359706592475666243072058650876272955729548609580911570393996402140767491064788345455043999295357098529204933499167532333471627128903100350262547647412583178302204963357314449980073000670173244023169449785569388383437885338190518833592963598501683861562026678338324183161503792494038859418599402189330486079261105586447018167045477092746593019094027190186783495817526488641964266235487508096407592949807873313595850211406528647896371082367674758904129642083739641475906505832366649170179744374442575462501356212638037105402397423786367181567487767960022609958984597058811208058761213809355935573538117891856436795035970171790189264230278955189525805305651778782957232137341256187638843478365752647402297304505490815374285137043676753633211294441857469189945269675936252559433834864470282305051694942268448765380283670936399743334171209563659109383862811650663428641416488476320586494170873005236733575541622287288604500424037245074238831632292344918935696028724232825810839166364071793527150004748135034031022749783493977137045059962395091653130670668294765986329932691218279522071177869175573646040446368920890069942862115676749941116266517981573696765754000021490989100936005708516124904349642785564598671175884597966848234506274483230747573189875421405925608746311728355769004352901683293476082492980522973194915320335724747420339885834313627115414941395305219137998636104547849707934096316069218402128496821259488847572362080142180516387394835222715787734193571112201041782789147980507219755976413432600822195244580939432993236048984412182386763152676856498510086057934537462494074279871145116298562089345254893204022204047611488634846127204388031588264180138940503030153374618715933416333725744270609756566216216312951142737232509561392849549769398552985782718700416898960716806284250932046346052458735177745401933804981649932066638340479779040597586475981395896108269103952580630982240935671822903373296513356986993164741171526433810109580802712705478349769258648682892869751993546870177459735369470301734186340976851095040270839029086509676504481375082288491023640430888315424799191236911665316721497426202981089541441336728030874765878436977370818345985495125613287962875620030291845447521219815127193644211322297889881274090470840272307996177744777763110527156302042803324188775155035187178625203066940310270703594113688603682991932141883453016372240605067026651343807599685295802416703617213382738682763070343676947701492257066439666155750216904044754124185594634025636332534595450909430964070746962726207691309845624660704824361919093432438705122142937512077582878230674687399344605287249808852318305626647007777676706581576178671091780111593987907624161493276902357833300727841181023058427675418285915031352559661040447225884765752104454603532518880276068883595695564592888151892918093820835810198462089263329712470921200908658671911654706213951063069817648266637320118950906769858596695212085679388432679130641217435983327159477228078344864501652515969636384304906187054029130614712483608492230863940555784915776653626126542696954997830139774689428170058080337434741408347100295283032228018692794775651346595415007146776119558780557923398993171745385860463359170146102594474417513412327770610056283952915802315340050372403996583199221891462580107294168695477156790527400149811330358421632879852647483597526972237817194553943702837421410560913899661113888792248946117379807625576245922670484947650022011330746296353581855556061449083662326313237542095066730673394476370295898878732036212068497269245342020387810222324499461982094055165681188241305374621652624415345190336372778278874725966703100273653193916377346965097865172690864048562300598960074944401604834365026650998752834562339256463858854516297158593648922742067426400536334789184766543015093062178834984209085170771998702051004206844728663779801047067056891736965229927220951491461662812086576661183706231997154924698246984574605820390880769390483475134772456171477774794339118271668862013746247129595217811942418269593913452591111485461821401454972168241423291459392190235528331139497284938053458257860162090107949080559286561054087863271912120560098974826167454224831923850876414534806596155918876772484597434491960791857588709929407742473980516496683284962993862379406108613310700364298399949226198646999020428367482282132383937717180686868708401028580821033120017706403418719910840220778920649036444065972799595761982098316043837157516768653310624662696252464251716133785304944589978121926484558194293177261639806729296495466132887947658175237756174147080598340740650442217396840899654716199867213097517454945046205680003412153131117915059265922313934337178069062290586079808726880270185445730130885339514450156985887953256752058473599110381628236366310468910930762783149193525497626626382897695308668366204994123244944581032144687897479704032718024483254222027765333606252016942879344407537331277409667277304274205342136831256426688164746372761438001422838615963597532388307418603009142670145210054392564719601953041785324931717619182940542323712674315113445176023803836244532044574507293386893683697609220723366459525637482291619592509075675199932752951505587618053407961488775159159137368390428045188768110677962809469029308052325752217535455762010314242772280950631734555132245180033108397759244471287504860649542417081257322811221361818440120562778966059195188511853897589975556715863375794780883035355468116906492895450252135096723502587106858541264567082134984692032512874180166318103765705868952303283056879601553079593962121227180459248833152319801537571295604881817454391027704449471020066433545456989248004678049270036801701442040371399014325106017353039555125068713350353414704046609112690920363430673817081076540690538137605965073407788470108469339750059845666404774301295590897158458203430511616489426152835999818094401413422073736124077309108305615607860296496703365592139087697678231875251549749803212458585981226376305578950333456373582540121712465016530620733373812882018608707195145027126210823590789145904156099636369759565350580354839044565831459775017912511820406691610747281561884914140888655702418171349122925440965772961119748923506098675316626984300100320849125912122812770178531028057524811163321011062537279004205602174174732002095626409492201112751179023700220409662309953913372336077688811794542759090624761125089806995925350723393819334336225632184531620315361330383816748152656016783858478655182109021677787354145185804502122993260445749403037186024783207330766786881462904080934287882689860474347049077767595920071860544691035837313584952207660689040043882108146452142499689573266026808515811318131400997052502809437295472509188530278450059727267334450470426873712991637681645362226906319571522365945687433983081396242993061570566196086786267260862814852912581566124577993587162491587490561733811524354327029573180747385214597737222281340752707875086215550423072043283770015370465765185684368261765901373630805790850902210973320006609876711615666601123128346094002807207375903652335564835082279670649528683261623712729107144031919287595987640397494949459679594067064857301018789699676427077154810604902148323472312204896753895350045323924301879052409124326069468294543237837690041687652146511962587182775099593050326872482836148495335781762728929952007799518357850506608282559825714658790588856936108218084305924799867573422390317515104450909997384754279527284819760852955036731893189758604580988055192198977501451258768606305450896682233526274432600702807784158719742491378502917291577071119286643660573214737188874333100472803163496915752933649685875474521281159302968579614078050030941117133409434445660834559456585524536291624150839737925531678544076212800598909594220426870937559363360637907352429586247273409179370594117532428819999130166458881605683733097175141069294810566947881463691287056451868379484048955480231993465210123140063650537707859971822208509516520685833728674117990902309771098990642312556401815992096757578154623244447932205108596081447950653805767245725224076528856207344467988734235732149603653957184149494370386394227617673830622014497108176858820531997063596304144523501915577227599208647727954625925726537892795153069566489470970029563271816125244663283871153604005823374246941086296214578098362047632213640501266907448570487760504369564489540144409194926644514137608118305734340817476898236352793133217648153612282699404328855117765662918344480711064659760857208025655434065134211505975733027895366595694695376938825597750569444879433924680517161971919478632628227413997553461962879251991703187812043296723834843819744694334999829980498877810703152782086246920326435680739123783612938654617219052417386434001653904324784734271161378289472407957965150696255214532954975972103495620080639734370286879944430770089359077911891631657148221975111352918849622728231937124703453669895030999804440800787950953180236465771927036936314183226692833930089712095105543195562040651080524879628216962377382547420345335800017713718984007042894757470484134842171084214436211318409023725781948797092530286648323707860114075472936882180113711240917598303225272366411077951051141108757888852598668738135826553920810521003363325566937474305694684192243264176457992059708538283445447288265902470060628315415443296029536007185205211292735560656079845412380543424577585765287569085172799230047953903071350619500850332438784006169888472590416243302169554596908389635272713596395463490202527066142133807416032467585159242151305415880045415361580267924028223070579167997418368551922320178193886564236836542531621918114966590153546017471587504916350192551576192667758357011435478774700166608901216436703819795856003290369105885455932781248502747549834479781589816621507079851204559767981513908023478467940358869422814868961303747773647492497864827528739791206086510905344019375380399264432594161228219699952985458353191132700583218067332628980368574055501476632032208880254273783052529083547399491069719945443842626463257211471160236848882923968553583774377113078350362835581098155267952399709324695295380530370693120240383264846317122624236214878293257606506360304266384610619951991201181544058353058223443525747396645857467157197811693166164125202829978108120730965142194763123183659401923732722543999030849548106441348703696242970195012887145563717846388635412248527463913101283832832867599171775163384117571126410868484712404600616143434145693959663069250894138328691603094505943066394127316365704973032456066990311506868493856987041932181662483406320191577075770409370608212696945728541979316656226429347136900664464104039316848504723503808942209198684508206212962703764514090523240934413760796459228046518196472351332025959007986719901115091169080910997784201969199219787970579805086531541443839973987468693139695273649914055438115715107680522840599307157248434721160772847460751491955472188112760585019279146858580091393949311273036184600982942980511326763419897878236447670870930044584892169937647085608492466983501264890891150713861116891418183712535522783047800606559506855464572927528531287364621393211570352970344192117820571914994438022861749923777531693166735464380404754463157017873089909669988254186699693506257056924860429901615960207959998065361387336503058344100241213963099311462563682164222229585012749136424308661946835750672314814807209166032963384289099496830090254048688168205197790464468888185880572494578369145839166326588083349847379527053118568580226011508373732824575811576833179433031558159620083353859167262164165530479692265806704748820446573825242133816135896370015112465918069512259330395036859978413757405418457511653411269406810650777799497070501926845014177591972713267507527023069096020809912045615731035121442015396770911100677550405344476602169644857796273765498998798813738653011057382673255336958742105126495338852921185159533035698388951286069133188497759552498404490964943643428920231731348611374780690780523223376414071787692326688559223824896610054598967258149220336589471877775784979882327927270771517629716829952627621672050580691063987609790146919503654333339790626590154700441559072305681788758470052090900616495976516730617951929479660305928567660364716589976685803198299539709953566692935427327713996979984609732172648003358982831620483784634957299920457826952828630766986620626913936669906714871582629347840406830172198737654095825275478998034545418067195748693067408289796070461500245652891768427011654512911796730371840160436510757129887977648393272908119846057884215642861599404186452780380484264498408875367729165472643647585653043075775844162031119868498695249362906332387044393147705849358410755121206357614694665934521379453948411045275620469660827701365362799358894676970759815150260719190920683503581101920583426332710272768051896705707249635112128845739908035187118458794511869219540484196533126032795965491358501693873501317265718055855923081959452520984541704665517986737119862616664868744975404098619882953818353289338828073567529873541878986768439586512277973912791746597846930426826743876711271687533992445140667847532826003218986954164157958160344395517568999753437613918376802075208610376339720723310237080575105380292689769938100843657741820282750686053477803586461275198722272189844636890499880540638480537350280643014437503353636881599323067541053992326573760954492193428618003930448098043352331295134510574860165680990257991869739680006064684056320344098349674317459411650369731822729439335294906223153820151964843638520897099702041273205142023014241947241552796024530370087613676101186754988926937727311899423171528856467386128317310444935685212669966756567377548320734758969358631084573535466302895062970578011475240249325900890791041910679342766675391851708600389578564249811463075984296643750203011818898777623621094408396382926475240944584816323796637557428366906504856638829577786050712983253850548962907419994829451673180907614953509052782238939309979453956935684090072858205694331906559626422508234155513297998947524160438049073971734609949200842199046522020955402323616903557236717195487582061433763123234001091924007561656611514928300221097947624204481334658007438890540785134925794731878089481934376581406159694277679402631205900311965966722563724138599379786447075429628902423175220984405658947254733482049415299867913746546803164002509702452439861890251983746772203003769328877178578730766923796129732976156590605214816649234630110676101950584599450007386367056452096068770466986948168059284812693370690728361541608447073072612788969642292352507937579274424282941983828198230878301786989551944972101917992999212973558001583897199266621416322468666423957636557865429085058789340590422802813748265366461030965152149500694515700330427312831607893586958393555381093185499511561251491053953196261039474097146730161384422395901444199400534121022968917629571552104042932548227200431155922769080903393187188409817780974504593941554653669970901516796821904219939466454227586620273017288286729043262693522327685320846552482149724359771962360901809502163676557769139830905892872968609890426464030389191933193621454870612194527990935530720964373246400086980417453192119605041434935727573991622245543740193369614517405770029125384542265998626389909644019532721478606423086090915961144457549517913863650795599091758896527119152361512946638170638310266350672697925866817016854457282605292825657201319530860510308066333078513135356888365219205453873872620992792000906992717888584688710960141972909318684377953682481282788476212268061357720671999474026533264852313601594834492805646448366848710821218621415275556609957612599064052680082959914286447307302921796201562963807368184610910123695557441172198104105284165893014559417303714442736157061048297008741283585035388087800876454648331797509136114265161282153505251478768253707421470438604119118671910066523614181233428326493235108665829744142894670287162157129117508747840839668629258398435311174124170865825910127802406356499576274475937872403758607059529623189287873039794808242731807615158131363087005960606018709305543506848967772148728711932331060569112809592133899002190657480036732162963290331324688609904468678219290691130659845907723798096658364468005401635835874928957362314976239245525339879966008208751168049553167158419768173341360190008047989242719056821971621316448945459801211507182921247517081706044524956566923737402167384942110870314581423101964175529578776015162370160057648253326504289099554358137187570471852440012193479195479417468013478311175072403097393753213846265516371981331433970331577782272860315397863947142467406512574057850050221406395214227015539433736174865814933898771965345967132275285754679035402657304205930763179720536350028003148058063560817469745072212468288048921290211890189935390055459730134186077513503764050323396301474509969280905078966339648762518698442031448169158772577805489138032527233009127405121293096402761270749249982426165622561769881713834388721180009877191618149902355484758072874943867454847592887325951861197467473253637126248316535274707053753667773691368080658247335454800258466401307941334998529755991337586086885040298678319463415889805795345816088815204856061055789749136935765286102005497031169949741433420343768460789167384373344280646238027924864839419614442904171968547409154287841078264664775974236962644588306352301201651997384391493930086298546849627377674529922824628083058409940823085041618463430240155344637025752102169970433619710095716974778904066569250465688394157721032606166167315258592810272960669561781507680455909391404872957225506534930989509768331905052360735079105264959247425087955238220757468224238325061296929317802752382445213587388870142644842479868813481409972338562164918208631896197041366551262535997508581611046088114169439046016526179918338699334065709467773920818077664686998014994718348139559881118690258087230787109002372219667206788408692248949578182325030022430131357360583217145686625085575224893318020067492493525936087697809042065446322903231784132101349161030992654105556030733003768286000105803269712383952404616375692620254644647811083816007961032051367612286196743245329378349742237671589498886970894545392884090335859720033693500437051784380827062518720043874769896663787903711019043991676006108553903061924006781676690820259315127734159801208688646973315875918577153946544461766979010655739957065228523864460744674428966293246206396939374980095766390731239187304922205507376689315738577598586582003152004227467719453894381828565190264514589566255385216447996702613459230987891473853333845163518743016995935579731495317958051124954934031153289977750067105621933810054090246940413309247962853925822091634626779035603148631247757041536475406010167039867359433895254643301721698979991592566201173743040618376870380291569690791879304659766309127543015606258511131137869966119220003899457438189396934629383920299222598298837198157971618302893007691195121227381010377059550982000662953029983993702281696895827377296685889532800853133673463460943485327486845719691887456935897695679828899259970119995284336541573796087158986669375426273347512619418535683788032784145249620147257257848509917339210595155206312325575212390901882622007938005673866811323526740140497608653860184421575361407489736841480024209892192705470798889056763011334941356907373836425783381860277695924672957914137123987952168671004943461497056114251059165846721530597186207539294796128065407593865963801093171877465781941390777976800844328266315470229437202534973816421439372002378032105381606252127336673410365208376421238018226509244364941542840193582688896887839704334339423570693176513599646237263786523860504782132644118597460036596973490621420339672051878914606598621635944679338827273291169786119200123646400784119057844921501071107665304917017837330658446054676583137070396916081322609988378290657470931159208067697877446071361352973069323625181174942056240140028032055489477379829184061197472367558080608373061065909178414676161485484590437788384057537845144057966252886336407433591038037194389675309285548411154656449704512447628373904350170893421591043828104960925436313745557423711036555114862628903997101422349336680615849029813804395248547600198345090966553300456977462881068100311487565313060500469510236117650218668510032000669912495934455888327803886217512453267088399847728945645406374152679404867191679660830145295655449818880196826983129957051631544322744953637795788635263388816488317828801120199685724126928911165647662764894924533811873812601491506638360325172733558004582001035883729020479883800590951134208870350386536284534665777254898839627333596676158631035201417894582112949256991581742667187916923760960013178209034934125918350246699669208848845769548407515666975964150984032376998950866672060521115880900804864993606335791846293376154892126182238614479302446587831255336383506778184775381899382065921632333206767863289002919743717076458918565417496173273599245297884309921965044664281049439411627241209216292315151184885849139216613072423763121332490744379719216553992205173997233580337665144677153179959691701219942049948445356900316417460463673396385402797466637279696523005938573738712491764020030819758504026935143043664393296676007610432442852601995372920242912195988470913301107912316996543615071358590655835568057564433556063335724154394312215611626765985190944477175429613505446130275396778416580989825037230906546445048082737994170748414297786569527202907433058168829069753511251037486663609570250858816009329991318293139906746503333096180222172826596837382703036913218617684652586923920632609077578052664302615458249954143180275112069061910010838680680846000454031579548634985054702339530539376359444181288920214897373460958646844231890598977878486056161715340189435868391263686344062326965235110101301222746840492349077905629885810354692203798449779949694635569287485584059850486664859730948321748334193224203476410424632436007551019611084894954820710265068611078165966803990717117876420255015286752548777640516773084841651060426855203719230061891608772107394277387348124041730550967333311553956171509784220023276048161604998613714961585532327198082381361151278901369898594490409749981352281196379992926145733492293071963364186615959634768198113544232880170153353057111215794854645164541266318114643366259385698989075037657412982983013004779578677720511941310563735189102619313000516293321801152261615174378543781756953369484448921608919667974258725830506790975075984615731676919207525969039044917063565768607979804829314354136933507639699723752908972349038636542670853535402990228607561372337536899334729892631358571663663010540111151894956043135913764602792598874992382573105556942783576094988843635277825458340599922044360475021775778475639590748606642409378576869313818108744944418030200733803555987225056746416621816389179592396191666407602995026145497499639272017441283358395176795697031052775484733015032074667715720372895176279226187924673255121869703300060396755907551697523580099691501416142993033955019430022316569556701065676034324306608192144237628307726783183119048715339379391510530214742712714576991784454042649015884385321629032266633828345259068974610050376032946119419276609620239789991227686795538496297539927856388840030325613811963199931869061334255844472495093768870635352689763648551379096843843387657570525813520893739417201091410198856467532324192741046040787239408424484795571852404427741074798562106062881622633041225309330399217306093981220328271032792399606004951890210411274036460059375597636529028306118266982816727798022511745500407525725138833668069941589833983755026318613554449892023197966950703331101228794071290055321818376287560876676008133047270211898498452578894816838409917259943077491040981924054623197641574937876113609545618926029198917244342116356392881185787530951840620065838456307607035350069770545245260769564096057553420613835790425790249947909074778702294003129743806128400810310595883981534168109014692044685750265247019055880272196404050748465306152390483408335888348702036806666999299215280413396282183732787166465364881617148716752580279038746814089138036224945286345146721095849908239962600099288851901575845087810896186613879782299355601724719832189400095588591852570790354329555100286636430070890466437585332189985135058384443228547285036852018567118752670097616701799732164273847438714306884061972106988306548896503446077138452383707087271754694887529214289713993672220760996145619564441874566257253277609735127513601599650343146731448958307172507503150664613491109398982865910741312407387003822797401705161127637720999622478770227498305076438762437015350375847342413224650097056235529085322634463675486187960020784680398843149525412920742681916932041600281950328031391861658254265001398395348420363799485495857051844348069559349722369063698943006465288647309087599261261280994317272613262277512950907545547882384948929310822357338684338131403436485158542591114713153843319987934309753356808406900112426675282757979643255723828592414129091556047101634954132712221344340916286490375306006113970973933611820126567217613295459415975781125967739699070908766933051305790328721614049190503498675837175471961959433697484160691029666371833529741803251803426148159613668915248088205055597319094952343340534035006094425838948246929760249592836882116281085859837823605116162683906343702989000661396143669315067358547247082052167805876688473562451455306477885693152930891927686874008815963329248841947983997381008496144769818202908599344828947115205084651652616945257314768564382185041213843999763574040883576568782912750574104340894036820286054254778518004597259953162133190632875968001469411569100607448137739296444399780544864280305764082566128362264245224608791741402543822355181508556041294278399173342994353106937024339998748219637133619178765549767111470662219168156839527193995474015551607870766333612071860167436982946226012150424611969271510443635748539718095543281255786353444039367192993556233476418121257274976647149412781650543744805124795807474621644274132706601999661667213831552577642968792851788233326404909630159129175252806726455034384281561928207798359236555791332473904600557721651326853422816789879502173470655252651902594819119236761732936669852930330252609627704817720296134410162635490793350316513109955740389043141009549916269578088420018439943765689141645900434192439168989732656904966009685124912407325696007770945217815307209437321547424125996986645433325418383286611558425202509385017901927741860794499058172184331052420868599335558795010306803147356297470984681649986909247114684239682412353205600277819086346003506272395813704078777763872679568663627624433009365851322394854407088189880609808619594025971093990644633325177952711469445766876136988037592509678535696016986436098514451449074706721631996636297987135375067729467122552203411011761139558023473784726258713882289819391816822564666652424477198938958235412619994590049940081132143656802976218464704401127723985220172790753756718525796526417644313636870861576910861645398251863764393512588502630676568528066795188760949349809812542061255587977351365376400026599564252443332087374351683854049846885399169716457318208355427495888967835491059589709820874394675008301772862961619797186159788046940544801812984284298298553532379316895654429755337421498411598951587171406146305126968035596335492656918631041610069037281208145273663600909146458762809244223515282884284636240826195427397395351294248740344785703107894664258852550068635155230776582959368358626960074721344886544449498015676681929646610284618541157643697336874782639235954661192683121359161506320121845275193940307146516270293375746755635224579807533426174678083150383838468195103493172798862601506075097519530225286528608094573815101537611359325262810793700621257914328676834116144430385295131712722577725753280357862262561184321705702809484387757199107367049342321530957507052335069616712688546118523328395850171175532524504138523056901549396698475355865655583851086086487583252969222144321515434433651347461097325312840461698626468188143055772467258234785378041877571955420835073794849224454235732240801509569793948932218694803759257897160276187288956699508525234021785061885655992663636770459911897340262638676910666078519243347890850759937490882138638056463012013614949566322313077496987499544625706315072188755942207200908833611230265457862926351911704634588806231066798641337379978977259628085908664836250670236915779146910849472858338832677938442592570108009337192426330643053699504027091453294904620293736070887762647670154869059472135186322767018088150734710071345274466792775691134475314013999925533947966297794708354022011187160527163394228752301286015374983571497774579416512135380205656008240043952321622143019413681267840905764840538623167844697582839145286097917823749115126735602057791231587785537081009594018130865346931392928475763443135475359651501471089837906244125760099448026318742836503155458898177218768002111613437564090162454855892496495598343990997596534524989538114236687314736878493474258875206367516203892871491863723711505060116397571514557353165948378351383841766530932127680524344717879051728461441338137213405926773132196220602144080942556584090933464247556749402148850097869286745385251495247980838294725812868361928927072529391948156712946101803395915466849846055840799772084351357893627262894636404184871870055761131214033262930179138357169631423088111919880357687177191811382031205160905684909953112458075990508614968464192896384620309071398546524763364457420587384959522926209058387986636314586684146135126230488177946437824882519090859346766022066860912796859728485464451534543736706662301622938265700286719254198381555262157877511820916856212446907769055351068015313140976567353329898461146318803453666448320813770774764452135532539405031879092670398377978954582709261856956476704309388932830638609082487332013692738140864232942530550432370337324381569022532568249410423129423050254441876326643594149796206153313590865778011211201139173908552037748620247630138725126745606595105275115387905244243049999371295552087740235954310146833762149481800109650611305896982372988752013873943442335813910988507190348368304812568608881350612278516909590080307782789647334578314130408480389184079644771890868185281002798013783472464452245039962525226972643255252696873395432869936432174314971248494332808110892624347176932706561894569903826667048543180949823819681325295998359531254320079301703920392181962594592121998768265794180573799534298973997209479664973366878011746923644449711441756319427252739344769142442609523769195941227155884598046430721826037465042159305160108428797400547965332110146061561284132963135890760617111310432735026988286977123779128408237743802186263163292204262068783706271457666272846190542767135828075907513833531779239705794182256197287860352084340467290207952338842061172492159714343631817630718268027702305982171340327238144101130338993587499968426313251911028651497215648806468143487914487198567130664165642355332628164980845014183948768052525820378353266726020329013311306512530060670551706310209499646040692073052237895829083294843997398678323906286529189259187290994212745775052321617524528172778845588947874488792950724533230296579427604701003144937702203454615853679427500633717676904359497897873029350511850379958908158219883329558849022728436180780746688469456101685060849542635981768410964755076452878603784553095828715577200913747268259665218217622447229614270857849803233777134575518458264546462389089174640541524005417138926315877494905780329903716481362485850393530254068161426481586767015235157299928736201990171855159402015184818579919545895281608914511665620744714849703598677458237348080387934916672459401878080506025743290549495794618872204876637520997032821589740575317207279845777793590755510611187394996786910931585335731975012314567392053283524143899063359921157812735309462568759868962594256976881802358498687406219750413856231728886361326721982390514626942193295989577005804567705122450674198555196346453786884991353009879201020656164210703978730904649377498232911471658377810528849108938846512680161920992484294673995999729882360447178781777696926729640181433236140629035225758385812778600488903170615218453134954132358354736025552205589355389445620218397277452788937386185350176270194661185175571970532361020982449955001034951254632434196246642897948031353247597392128197579858957568904970361545852210219462405810739376821434584883994357009174248734561842805093183199191375070700678325716486190977726472775574818575981569857954683323382530989253550849300791071932279157306986697102822290440399732550946309199002881818823006642491385642292761347834738170453776511098463717951946387602197227340675528808771948081707849308489421194369840705258286162863860530246959157692123526688304823831482610857578410613147429858796118197126149010081693339658053728271595938923932742765588268992210309983972361345416909105051149559752949463887531210649093597538898718662307658987850477240420678993276931847119602720645678724280919081614751146080577184228206867419444090396674379275900073092127916520079245488859939229212910316870269072461130734362966885355978896442621985211387251867350480315409556112271405752752596376831819822273667898391051604677029860197285271570906959327610589878920298040857885093673853049608939101608742472124770978428546492447622992466819516119911432645722551593109619425686166206723628851084532159835267707519982783940245926358952301159478916973399640130473380276814538752402353962351539510319856373438605343725128039592367363135711936808158933700389403690102719574147939675542291756248042635182893717220364410910457423073527545028938680387822060604467897195715709938989244831858448807377694202668940846505881396348908822941047097420880914060598911761628823807307216133285618630953461620987577917495313927222898884674394040314485773568061578295544154157563919877389540102305657023802407032015532682734441882971587821546323283357694693210634724736830850908692000680930711335794507319752671063740169450214005856854003700681028097332937223307560432946529966972942316797751552984355520266477580074020453940225438303072617897441481317314240580886775305268957022993129682105834617350556516917212326730829446901991059571649469062433185555815092735056708985677416115779879375132462423698772885293244676489580370584482047261831448279532896741223637108094525134791113489098775546858596620885095206425062890969573327596921214029022549892249751867727769130377250374152206925539268027232831046446298332679733294917172320716559749597974363519526674589883244214020959803430583118444725000899468975427656455090633206058936591669715829449485057714411772595823761869811398691613340349529141278523622866456514429040396968008731525576149699463188480773020745544699684599599280208571671147317746563240537073664366049809074210777154984846433047227977987804909585769836477011218594176337061367748205596124243600416791549292834711253840616003270314159911440038105446589730635974478572008306596030538357237515013750227473292075791691916825716470190099548079480226416253464037276151973735239327866789166090935940905457570393931482503674551599439979961627042512402577825644731848857812083772660810306889924900469010606170058514051099982111075190461328023079915796360329554469679735532458509326469351769276318803610264995891093393659961549035256279656846230891192920367408063054595709359419965738660846714175010781546471554410343107196791284469264646704662108655218341065131015698128038547452020678718879665656866877548447630622830178531630547623189641835904434428939491578348257737199165755651164254673264185219193378912401841558963345186592601336677756911939260942953147031127090408477481124666114086969927755470107221142580805455671482581633021391029852341224427632375145392167360852249655790080971869181245079108799603346149572112845026443028213590282801250646068218823379468050776287438104958762710723049194417681062482105848591701161004044975766590481076926355611488274316314006241456784580061931909466590754008423160849536815425527316828316243690426780499000901470896007440137269864332331691800235967699703749304276172585043898941940227370533114057674659809270034156583238040804291393437379436004059665628756060553073349574992705877573311202731206748609384679830996002789850558084217670949389423575335105037629869801649852598802715611418584345297027300901512054475045565169411329457004756982993388179957146609272942709518191315361391102477565000539538648722466449502365383217387173629392079803257988728320762472983455460258514180356344301809238213606836383244618175550333275668060757869561391354332559463347499650283858362545733373492703110145482530297537918042980714823285581279803425142893457287906887452738097351372161719087431661096887333833525503942849135707938365121994930193117809472653384141783414473949258150513703022635353202342711206008014861075722606098321465276688683354295849765751863125486441392648947202416330068653360517925837624158260851553875322610124692900978475996614807941768018014437286056909145695933274011351767381082639230119455252077895969078758375750596233961894544303587589983454720867732059911666118047823468262588190443433141606783650188790607247200994019275923370690140316900679747913972184226457281911259526044181328370537230236402047774208423832939848498396990013525238934909706668177079583005936953164196217671796069739288487110714169042191739557112084606352809396059824435424817845687373380401871436428431489377123076944843157197621515784051992403102824211372574028998064391185145876310648537964859899569739986082808672198775833424837743094076642753874399615720186916494722889646403038137643306893737884780506170469299467219342688535303973955321049960780817845480317947310191077562777266833956626479980726279794703645490767333581907637095316917576759533932528885786520574995900473411390723629789185197772299454389595746435590495811033986681505726455331781596015580388088178489768284892591716726002004313497212342702952934869618857448225178007860470882037534820944210298989061298026161573176797438085631236906366318689336035525691192596570389766344553979317330668452702798438126198201990360765358957643528413699830201655522011931467294958759611960459322709283530092165378945210063874521656644944407288039002155653283752121016087395336073688440060873019389070738620681737221337995423737573405628723939688418628075443239657524886507751263305425335768094668641202500935324605894502205056963945009561274331811431833178404269711484911769485099550884946230422173894666055250908117337476601826801529545722656558963855102209599219748036074746867267391664941470345059624679641375822308956705030638829194047683262237450429350408503089846484345573216925620164205029790170848232180146127962172046715442454180735033496958992705822124773432198842792144023033414340517744456556276692708939412866258179942691732529596782549956397151730001558772123265427616429010807797361472803393835722823122556122745854765100792413793241905927094111725779548812115820361841710163106911519718230910712125178948888982168842512009967032230147492459081086114392677885270129500204623127827180509346336948073475759572907527810750886995333433632297869071912476214553265571970635432083104640999973018722563783259169177734715125484659060492955716345166372293116502478306880362824959975133302199066315192244836800300712552706724696639102466453268789881319004594735724166507594904143971495282843533504316509639073032475297080594857997553755986847326274091371084778296949928829464421638914174850472025646921472481303052315119095987114578964139449846544573345506374773752590236696334538582235538912009684612242848084976909409039498073934538933499925428128366616378887513467218214798196457527052151241200347766243900556345019909994972889421403319739978047661042400320596043822795454785741892578206106577008286787492563709946636917298599549789530597497946045201769192379438443710677850346753064236057708922940817596413923574592076575180188770953286127398929391802177298303203014699004046568911655088770457522214438494241711638266579798383361900576772716641508952725838096515413193633280001930884149079151250237636468925188727943268325095362922399343413726308620772928277061424915070343698202412727648017340049381295164737138093476575659824231851510323616107837805773443337663517562046931868602583801140806397618669890287961555369190158872572499758830337253134513847611728211683570136709426026126977988298333144236784850613930827589777487587917514825141693233464396134737493889561510004822537606120314443128578236588973327317686873542180819447428898062830315072788693893401782064129027919367700293962812201575878163296147318414447352253281743286874149956058924708291134969022934034966083716955520587831181545644067016062642476689286129862125476496119036487615436519988837312375631669271547498464270799975048650603002013723416979321982878689509278991122418411860340367929596824248399352291390352772564913183034557935113672265880507532039802235586965835238387166878308997047974192361571180124845204672559989961392228161416801562907240736925430428627459114239462720971777254640838299057007073905482721382102181179261887980606368976248763378910663514964306900790217494312260104455743307655029488190971692648009725379289249338465904271334872903848806139526277012397664218608630369019538896855438504775049687487326948657729944312618987286930182656704561787587495798261024268894134656970500966113985883042870927378046093787650233322463712331945257381223600636353521918252315273889328812832455802608413199126288944892637286033741784184837547130402812699059313032581107249584735280993663405437360963499783230909819281156605319561926543018842413696857997842109799496569740643992807443157450615533083761013237027336830150313434235908493641061068323897491222741167472559579150873604263628407359879671113428336279402185985275781312552897910350762781019746989638806839669936699402868136019181104166286489517517169507609147646998964289087451349490816618189622481142624095832464137975750177234379285044125500798717379659986447326977434037100584348675571348914082413885467584969551632137400118065164462330141089707115238920239883435316243305550660849066805782351547022541109378882212492675333633714814222283322381323974806027719673725674630202832265583953021807227592835377210711581056246725516495841675702743155221415239872855566187383809786114744485180310290578615552427602125612704694346282091915062301809332249136304255921039530718638486339348859472177414996878805831481591502898448304450262708376200344290624617101169804443958280960486341620140512952887757075864282888518230786838788044051560916771227000947207383280293254607383826861262411699022877041816919617887896523186312016340418515971757587787781920161893900765983144667215386925928406905959734715722379674896748427193549983189531408797190649830915088885276814133627689517953685900662738186197992807590846269818896784148986077813303400967464323780553627097072156262345985440468546868140137417295254081096654249404336618788097187224148072733387901068557533811547772493546595195110772833013132945172676514519236216855365077990662173026271417723755745423989286833071404576413704651314566663615008755299886020120136898458812612937762593254159684775019927499535384838862166624397906180555654015363867440677070214609258405973999143686474507332229125651599796693734778933584992429585501071900131738533441959598557147371900079612397784244395251255301649170301114312913405599789829289578168941062691140185627946838198636617013005807510713360251397444133667605328300029301133275680456019280381260220194666819155781737527429019001842605354614702353119878466815369382491687887907375384308335218468871557362677467368262967524534167749629076600473695669237007227169401860181919195545334429466461069816957915483581545907081821992951420946770816753107679876770721690763202864684498255401981002582320945622447098051567639322682574599928160486307729844927054512076730941838633530329890247230724763772492116208135126387737173412201618642904595384027669527935515133492035447437146985085546675979914271792695638312946682801641768732601149770173593926632523516497458309223357797770971776003261513260715946700848403909289416827704522627666010115884739694308437050561493205810929021079179635265984991452420886479031146869486703281951495025560561154437678791391615295294912595536182306387516875928986212232698367668080891763392070507088569469959060605100340310303223377702769302044844396838849616651704921341318401065354531570346777892730947879814539071940515306934646716710882326399585634482740977495557526515424795918225545823716295491211546973338205731673038387368631879916012517661994592487242093681233169706882724368708014909902421347959192139029132049609474763103919581086750546381301817440967984320879548042385957002525052103773339981802358425029443478667631096031753344765902491574176985232282251370937045172199078262478159341356643208503290319628129880118291981011860664508984310111453150283553376132985912043573706528482768126153854552375651206793099575220325495671663108094948197836769843808291551941696605257757459308637116806486845907630007887487591362080298761762644341655141544662181075260372324563001535986154339152200389832580523419023111867738703754498067171386283785731161060227762808675625679061597209297603845507246522395706345546421817022747968953915056578525358533000554025761969478333903873307213320057708787501155741104579827680667582433808767298152987173511340210267981578775997392304285751141908243428239294829625273528125774423933059057187157780798735134829897134214845872079816819653059330376930871862155630415483413545797196979137784872006146766995496728237336856786250447112144690024620755004587269337993588112138229854737669020651982555398511489180641709521313347456610023585997763525871122169687805273368903232922796941031089496916123195597542613074135461726286085700599769128069138098977751072108744458541813199429566575478673988927705360398131119595565288627982159988225266491279283581992639402563105268289138008464798361349177986173975499309737230940235758099790457903602897524987680275034174507519201538471936502680583064162364888318000082377820450116903017749542521310675675305461482762583675102198432096017427838407706814117124421223797828920047375773685550688325328159418042085989850192340560027470208246747506680489076900780226796687430263476139685497822889267599521832625469165328561379683231290847670404092209450552939561896391172237128930681607058876218423376870690254243046102021383024652178752553543479814298144797237504776347949147077450358994241527139290081816676156840928857546272287735437063766697165529409496459603265854548657690417247165271736859363260457037841233257540654343631384707473215008922388144647365911040173655846370253095444791008816562824374378687382168956855818432567848603125485858089157249371752031887602338736802500870459926867494945713044195250608575946102420091943873883142796711725445666922580044944761637870339014262033708320903987582941843953617573570930289767604972300186790888174505636771298159036405384436745618557775088123659394528574574008842087876573781974912717583308417294272000758776674289816005174431961107692764406185852767521019173436317658200414902239763951949579289063908937253838544811404278712853231197716397115812836593496765838217913244052866686747723343135523794194878707202378773141551613401261809752149389878304345702435274036726041424148147804390634138401779290588274885265778688642029229384051499534322757945011917151220352895789657641807428473960537073760255152295584467460080249711583693094897356002666073947927638497699865584887136032969440702723472367897556417881416669477599313224184421411897932835385212391539940627037301980868088584323212228286218983723049102133007486651845692117021734294464638225682575476447522837841360566092622462773455409341213145633929653608584041564571885781352384820872800883682113386550938411139063075256709199691542863691302039709191050112992266705224874303764323883408198312083886455136462432751570550573361360888799178824941531866011637758215012015852709764869119801845612343039970800572767778689177648834892095382308309551265242554049977238980274624476338460938971262656667853407920197543732075955824850693072173215451887857672254671796977946214563776634092622827658920255516953422521849014631521184598114155996289292766740004265094366448389140690385548372993241878033594011809280552189458751358372838387477109675323098619791493437748444994067506309441745058658415683103141318065365528498970237426933170950435863627117801450104876051442700370789047402573098681954107908586741521522393350953260742595016368933164639624198968315923577801472967206225797750137384593482620608960988320222804373758411466651147373713524714715748987114743544077913785570245133763446374155305547884523216955757996977930124697351431121803372017147638285640266589379967752964131662610422875818165479122345580915927336957018565803247869382116998613725996739843749922414580386401949372023625100492978935378372501613892275219974937118244967261092119586936569392273154925279400896501635270989353370433416294936864056325798829526291586841752318894107727690726549680931103803495610815223390947982804465116711635554189510171473410177359195468547710160458936856076414009455456310842976622649973984292589575627090404654466699021370724915509680600110756469821935600287124970607070695372930422886462576235363455313447257530498389065660808227364218481206872136355686757070562572652546541998370520659324521256733028679940595419687325440706889865738450781682069838728882599344612353883656191052572962774095731020933557461901022790269132178430083680048929538786000170062256915223044387457346475883826378505770963074305920398695265970436648062778611019669155000450077581861573954253394858099666750885819277649147856886115337458137642947420875265335614602092931794255945867253194419107133719512237585581558245075017294331888589277068598391842782763420015036706271020143175478305486170493748941292656134036485220151398134468862201266125860152602235984493827893722008780580829881689717052440829791903160283540045263681940765676219977811374683140953809025293530078008525680514144153168143568456241761573794899654467520704903981432831874277317623106166622437336978523429999270975981588327420874276541612318000518748592271343040488800243007752760187733491139383052344221316948066250758078050839775856741170473406190888701978280460698271628191393500386720930917980353712521550925212413469322416885813752891082423651357515135602274495785279308696508497933746451203039289180197641231452192100853410339402562760028450651224583676002330131307769820650214550364191942960302628586030246349094675614351662598576566733905048721572112479485747396038623945628428260637622407110471604518745933400285174656558099329262684787070234001916335019926235307257163476090624428408124488776447358622167086214229251050317543223375280994830870766165030703973693127545615255840973313730748217036122346575237076577646266380147861644611557917543692832913728151715713522089774211807151048343135611404666501416604719517776856430193604901676423286127998967819215899390225093355197433540286076398074731456630582788597404766590861734792412166757382043868425779641789204223222991415272588889169012129287120445149569223016999821304903941715276198914440900236046423414585831614401011442571397610634089141276632738527046396665106027781814679441484467612779770156155239280366121609168902185042195850570682761828383810243909658449355095930509398788571778319460921052749266246630374990556032383841685078666219573893589816208543281627392988892257602428052775972882675857288844142562594073105353127832597118905898334502740048877080305304224617164651239731374552509265244552256228772787343313931955563461728061889002002671962681307711240845217551806229845056219503878345247440677737985913246539071937101176279235052980025326157669532120649756227307540697767441014030493009011549942205837990066016017314759624286812448983964537987737695185705838708651117842401513358682087676642548363884633245100476592671573125633843502934254845775935530606447679986804090674536301285587561932950616611137971121138027525260347773979832524917164773498411675207779594522217847634335281042406031657298393914698696720341094844382499251535201746630265938965948103822707899677861495491491678897314169525608850732707228393143483257920651630062693255887206195160841652178717414336253080378203652320761222735258668677883749729354137633737720076431219558171970129577602380441040121516368709887914348675492687987833174521698266709078811628343687174475107935812047389561428606552467680852783666426856929182553964450460601395158527261131691958305161127109274526203759833706017302476004493506356809849574936815380940784384231356651825001656952499170989842708778938704489080349202945385897730144924518510383628925100424292230334849270782978252787206546282759815944737865936124920627169836905259116780917235508344782629828874940581221032193907899613059526077420244313823970804581475870163197431811804708158235819555865615813106092139363850933951342021801011410305642425560828452584910233626638808062894517105433509904085208678511681306751675848398652487179361195606389761195815511307344377941543942091766736721936658766585009304528696442833244582306963546720378311789169978750949981566280231503695951810313197164270035715701677322683497598332913783822734905675826063124391555542901921105808469359328763678995904139441016771610582484047758956031684953904515960681111494212984583772274610961992147410039902966080072740419618295573732488886402418125066090222750649199067044141522346988527804581631175601932883883329166257565185003176887244227440616820883458704344330645412648362621434801993048884667542232174421282864079301654400831225067201399521190856393247823075682908998346735365688274060253866462162542408819645903260574848455377389487234864097591626329034541097372943953684881387407861050758174785767139705642579594855391844698187744171625320028750862281430078904610262639883734641255887519869213288904593588884985296915120639300701207427561306601117108516296945770741016641185828052572295969730944357093402918224428342060570432276113261212234543581697049381360591272499722763252185223137960700922627963240674261668172968354478125320834255006296125321682607418779748519818504790092011182249148482704804095067708128338928118809211827000248117316562720181525612266195458279806316669360334331510505318126357460998569523961447780484740375284158140439293184061174425004409520294516022213640762683994191093375528720378909844353620273582912140699422398469573534913623581590453796672451837502066416714808049196592366734222142485566275847117734075401738192993584100747698438508986997923160059228918173231501021275705682489516977022235656880032267005815554483454150832743552860186829382309075653363279097023012148192168794060368290080394607634565783158691407670898695167975047412388681829288882766984379208444092540520944203091194000701866406535652225280182477441890320051788996593288073403991120127236429284381993267180285534889135376356962161993802515216250883450748444804783467986774181785192595031703401556883195768370332219895489814722012191225920687369276178887537577950884986583438472156559374458573269999319895404026920317411405368569150212456215502934046834798581366234392006598303659650581565743890787803237124948275460165312030980053587692618831037461500580927311438648993969099132341287755009522062011563726103516029042601177610924612500408601224535038670941954005250752017950644537828307151953326155839766628450274734834540564608562635090917852045271045688834943879684946116382795882295694028375848765093465213849252979140955335138589758349833540496271504502838160473540528261579925038962019102109388080161460257109645809077729241277531709172257728456709663065474349400198829531923071995440367027472836905134058652499849489353820252726138728414826093885852955953756656887667143876032898995771973732886938554031461991185795862114125251386410718038738858200674811111803710938717627585943510505125507698388971999800308242328070072230964518170389729325549217999782209559435173354340944360707458268353015277370116350645677517240261279797369403535634759659545301235392402372832173675860426530465600441584379348961756094569741005214468981786837330193125791842441042872741385299883674030644040918305109440012306372063322492237016828617703806170440478958031086322612270030928479363834561392604588687331666269818094632189987098548127747159066238441794166557497326884639289325552282542414978551546881355836298879181496944991216807232790430142596386223636168064150312253136883633965861095415353423723067589268729623379805543881370494248629086360512637394129732958983968276641338571609716432823836491889457735253625792254288294895513355899271604306930213256861874289733267743590101193693596438477993645524296951715739019585060585761292499712318828752629404470000436450524326143233921842792839984394828358133862511164969038756548090853166604516890670922676734422873007670267532480152298631423458225033229344074673542808044434019474433998757569975549936131930444902386407794072512220600706333275160829198974076433858717277984828603448559877133162902884062861022106672289825659713361131254145771300901798229770732656404880152790242278363874252172691750156753064968010088384172399527190532778329243065139671495759780545292392760145083458235624092972878065694238447631441378791825003503887545509298628761890466441309745432178491868835800394452029352906514012934346794426797784042415861103867576318923090047967531961818546963275210279026008262910737513606798632403716070153981727507065984230392524905378361737806366158538019754036167407421547487943842073199992504333955329633099037126033808317478045326447019720746335852461850440333812566464837145519857143314210612512549313104712540829610685013408935601645410297000110016316160801404265686444313907833800628238735739857246281784181261179211451042207756042314170871935729955266189893999094782063518888097265973886023739906054887746740595687462273664138371653864311197441210284468080053165906863049996072801927121618212583811921456139742396335563295856968255913386581205332718749322615617751280222151300590210298614843716664333980545961061064171718817766728291174096973139485013587284591443494734178188204974808749648377139050585552292839924366860708310957136827515264504703575541843812951080141661344647028770332232043153258370827256520213587104337789876927686345329717768132046360199017181511126952049829502711157184966034887794861338426216009339214577097959172621092177275335885686425525370994455280575539726596023898086883417476916485088490289839095500125181877417050403307378077449020186980237183422322897948055008264053636615429924983289587282666957910821502764739444343456172343199069123176478988711896305669834004657651356094389575385845364939916456662173484595698701183569342249640987273002649278363930805584734962646753809231222108351387247840248380340624654968504699476860195185926599059386070978579524854841695788332125765722399059567542874584634591208188651751727389893872956174561428312494232446586698676248221252490171528896008703002282048116301736953838813089831782873480985197918231985492811375537588767045337022749108402256649855714314025867137491091145644936710210489794672125596461035316801547038659566989187609299093447009187402360040319474714387487391156382365794850812829975799569519959530262497653136603575958389879129979925268399903355505754768548618886937283836425989392881524538771604435070392232987031605374099728038314570491316296491808745703820245059666005099027183987216927107366045232490840423935185079009978501770991362189343419737387593248669393863773073116766593744161620729877678282151684046997624621073107223943672196234980458060907341473513734798640904951060181156738802777292467501625102196719725997597349440057833023345046018468801296584456304455342188107816554070017406051014697273995984351570884290145761554248161203230159718889039694389632260806787672416138063210741560745565223756871419802020577565949079186179872949532192266954206707458186182431388364122213347277194278694865640123844970936605869760951854908018543952716556920720570867767171334438234510783201793012766406210046924389661195565005924202412877925184905859792544553880586408235293135888844394824190089222579650729252126122427549058619114990211695286099015853510142242590834187420999342196759446544179968373676472834673335496326675698106656432180385775125612510940203232026729926195856207432668150335660984987432866460468187681129425580767258784184690332984958624007830341421196366425154140282984912676187293755269104482427962171390595036139894975039529231507971225791223766106045379509517689009901554438037746668369522100683754604503020613331569070443701725404978345889963540864858559137627014870995047137398139211340420107090231116335789724194399613097927556735647083610342427359531333271245967597077956955225141623824125326111540416753782904489961872707472296519300338750783642413036513090879762020932136615961040007060942725087192421719978774568235441156598054698453969507139616365243253711394438513124271731307098290293935717816189225906343490265667094364700718352792227418733883812036334007587680788207948830149352599996996287785936710561128930148686200871596276639761046695374458994655502066905656486880810905860277767031502369805797347378184017122411450327889754858476186787239702330164313643475968787956054122901340244483411381506127906196206167253032450163916689560819792908989308897803139056050167593080903443701397681052582717645710038520108667808267483820835213406467602616487699440450137854748203271577867451906751993769601288804863056690913789125261132189285024258335660738283729739714668524012474813687938043530832619089581057109000822894833105990451374576001386922405129207828798552663157476971298976406083070712271752423445250011259285649084470153940362508902345747630140891488609986604203443600410461756151642584542303578510301454935459916359651415691798944541146305196285463704509486155841344080610167280024535514353065088816208333720067644538734333376852484966156062567051214623313869743957295755648360429318351146358228049061426928973073799051612831947130932435250702808304677850370762526617151096752348300768523140185569738704736473527854196187472821556264524804689717028589599393074244986337214482935463271308679563874060040466415911600752587305940169362941386636456170919738592586078672359462860231101252266462845792770833844633894911473511607672153597101283957549014984830140417834137339390924076785550842864676392819422690527195218769998235014077797921822607207707502845591200341667451778675247332779003617405281298035829478127142632855248447724015494246608686325955780514695354817313720139921695959281961086451377096544583103733272781575968910396739958784607725170766178201911340778253609365914846893842998641449847372883618660524018804526685586491482494513791617862707505790249040576416189635883932374614824129078894065902797593965349625151632934055687118562523315053261850271595350358068859611375265572048517712123807385289912406806381652938095195893700320502517894722839759572750646855900713250414502614750854380974845020008634665873716580496662035986191020103339141384980422050199682792217419648499211758779797737815092591637013787787404769237684087266060100693361348004655595805947977772161298557580190576457635288144025454020946172508829706442594545261021061966063613245925218129008117274077690395681327407995135778482055950876695559973777875910561877735902661856320629403563408775239024460526400672291394439243558972348410843388459263376425572299087611134398902545338380437076244378672573057631174870322818691095077269889953242861669755471808465664426685893019224157778317306559761382842211004480657739650544923850313369675742857598633177083703092192222105226638116086301871857913200882298554673681219617629495473777753895249245115914202187810794714827318037990907475024410539710510735171544072595142689674007833088485002802872761377592932387207130298372369652429936384155308177909783885967768589504746433130668923972252359998254989368928746092806754599655112085442713447793511129505913663824066025162971407317575242922919587432477220300622309886290786059402545842959906551914395644717185261528838734782689706063292863408866372067343027704047302851496724642667404693374427409073579894766194984434381292536662689728194475022119326490434872053204694344414566628077965919566036296969909486721384430263920765114482623486179877374299920261259334738577755172596358195055598103163877244879022494466281816097515545545737179938107393867047292682716150926142362715565030232620341047985546224300523913192538857342418007858533619182276260582080128777706704185058630311211284752620614659781786453001085238184893562851432324629773204739399070423752485764403762512539374191094037193919018652062875938800050006168521647529150612904907247176513908694383518187774083110474573177592277624926179911646319573804413477603279716312620214233124968563319893990006470951925604615307783398386766138576547076221903981684346911017748184609838139019351078094624560962502691006278171100705255371012327803813249114967625179777704261866909405151051852453278862024564711663033197317141041357321886230025739530118741524505593881005475471275282115402158045086493131211713177049675729513240844982516904541092603773748012743918617682593918186828312521718659060897560601236625776795637780229152665978756639522592586006083263983569987624034724643982891337214808665819448669496062080737004954681091304214128794434146490127771069616332302060648504325470075508337742822107654171409255380456844060779292495149692425880864156464113559312992572715537716371208371558016527742650870162435209131498743532022814512145688235717663947568423729474237033172253569924396134162679898090393655323004750916892671710610369876012390050030906291829824804337570163844196302872710148794482476959710176288419781132583555146800141222978301914476023609080371876261909128994646052172094596242285666603198790570463289440891532655736806432324233419607113560622916510934381657117403153252375883096207438560054624060949720888653464326571935012483004303724079027218660963106949192305001111246579121990833363614729485697322792267025624407930508390370587889467861971460588947128014453732409507659154610745989966842325992155586314986249994288084062157215486862560082897609841245832826466065127096244300626823993471410401642211001071152309401207109433736872185517146712277106654939382637780833842519419466071366040978379350696326221387800957175225439876239069191418152132949546736871210358507286215486854422678199616171540443370274346614036881910166716412680674045938651535820805617245139480836735640989880478708221033178175533182106424290879633048173397425448318733326198263161912853117512953606513106855125842256135960502978408572416591947583591899230393438351971696216618128869347396177454465483002265001165471401834259085494943656093642075806009276464508099758201111218217454553121389616844401051810155372899026274989792024472142261183692233526669076742246845955321473225425252776642667947558711175732387028278941749295995734782781599483053731673178702472918701572489293172905571236764782346578083835401282317096052770677436890515129558207958798277387624565494248626206369580991928202372703228730548678906846483603751491053841695266226315106956416527902499326240381555176504538672408943391707721201449811121903783519491795931411047606945632725697464130649046336550414851280162424034867458335579912927505297034847342878990417803194425100822976723901160930427076580310146001423217761299308389083084211909283352399284450094906468355260977968943339733482631317919429127253026410020847800117501164800339713581700784017349636161521346155415386417090788158540376556639725512882592051484428560191600169084430144358238786737349245535137163861664139426204200938114001337376318551024534057227872817592895130720240859453843271051287417362197074392791921744911393482317377652591293390735785792724399930123163444950919793680887466238531376835866611918598785992776520409337549694350450765466084704686287507849015914304604782061928248672586041629861900968719344056676845480845773466963487721694608191349224097960808765147793781783939512580498489872107932989498999336955240075479840573602543712404341673704070372624484476075513905862511173910528618563993902985542104529899255435463221619644877402112362393816764841794104046110772885458538074431779533571458312112396711230630963933442447629075197847370306780116908499924589733493450589874989370975423786036711902374862906394126332587711157574588857717717875865081736183840053287183472386475973531291207135000709315213077215860860483353909794274769170718995922522222554536872072284784921408193445330501717659732366138497776165232197619448952780104442391519656249622193346969013525711522346665481702013102746889775538683600369595273787762647106809962484787155396512440206299586399700097003888886396162265561230858727905639015221226053860207099416419650126418416365121242122265937244649432620809398282518260784283938263689509812658247006886686808661897811425009684211939347828621732869452297163555339576861276899719071866806013794815675837188804819008913517529267831789764127816628087283967565051424444444226421639370526482708502498498828107303377548489508490038093506751427089539657084613154201291065625519291084070690863660160240003059765394514811900701469350433273695592192211913412103093673289721189033136687347318596678459065953244303147850230048133334168956436389914558967413476187611833874584531268462620552135291682764626546449727151598390649605405195727838599027501723383264087883987454011686420451953994869840641507560097262585132122410357122999597498441806779444067398092028788469633350158814242585675077850321052619271040550893450832233180678709654934854098718178268183599286733399453090416104805930406540555210992509591342344037121887874119084712933960287371646029221651904955270850076920194206486192927145544863430704656013771316078138245247033357770718766818335062619583619797997692546083000545501060700806833881554600868908052140689263070608648503856760197098075119494532180200939671048324588390579971171834170043261860583775250918670910520640346984618297782625468738824509940095213156410209338102523065058651517700171988893207099289440916125244083223129369277375658598281366098126875117099763842717803972004446449674136097625680622848907801874208801256523653099416571593577429194710022193724945700915925305446131671572077245266150338740860771058716880179659854369851106655057091760204972898706763223434782374809543681449619205676019145273867536607525096594585669605288977951156003518378583760514429819516855358737599137585865178047381845374879403014309459059033853798460924637399352846670551886712525962332574620045816291977307955444838365837595412698938714865805366987166410421548917995542531771570001163194028005296274084888945088436301460264483902938421021441527476556277716290476158750203457069753500787226513906394824947864246678896409743596348329209314061244703343227226837943056255856726890862684024432697763601519106071012313124761586503920089377803951741039098791043666096125254260404847677558066443573880281971503426164124731016800271732658042399934775354491321920851560483156611288850926599266147580200156970293747343564677940398219791452886798650999361473712259069533365945154269661200803021071146934045169751722041301238569601519450095355821684925125375884912725152248926506145317053213603011997278958398596520473696074941666104052938629985270377948217160235582905772758010728933294033511987095629717898597050632716765985627654341030324439460273511314391379650663262097853688041177562734478159537937596248515977314820608123959555751212107286648124305682039753121305279995893719394030710284232464108024168980053345767867441862012784107473558711168335133364464857245735577222479554777742399607122666662404683787163340333206432575381903636183954221849642836051794112444535720395554769808274895195936333837913705564912951993013770754168785102665732392594523646948462822414520137395791081380958523491552400886393422164573002631511248969556304705474292826753908200350534734224989231438441573707078674870635446009886718947255443885240339287939852484529740394308659712361576324822136211083637319130764825252057367098684953878432559384208069250835896902854311833031399177590088205757704299779669818810731087497769481075536425086839504138758074954154126633623305357886286768154104649826423305557704451264639175614897263443986834196754179857543025592328093067007720020396574905375644609401596534569438449463947053602712419399400642379178720643950693091072309379014682730535650966794807055578269398383393121766750356938028124037253058528294974552684468775831577152543738474258916790323069647455552638558823275280418882884909823626520750213172145801421395018895060324232414857142162586916544187633384706212747316602588842202438848403558754578516849936849255124693396072769486991793897809220484066595359026569158086841310799024531412546785064552552489041395919140206903711930835552443984126283583936432516346264261230431661390802250944551107734719007852160332607254674086067165576101962634585897773757577406045399341300791700243533889431024882224913485565283747001675612884679520779596126061191520846046564819863403238178990942751206202499207303710748017737773770436880626889240488883427856162010189764313733959386173613436557060593882184298163042983730863651600569803835596146854211544838116381332890801566178458673205571561090843470123395890227538936101747862706636829075949573113482141304031311264756317992257625687769688488307305745445534342505970988434191827234528558933671618361679776807770696689723385542671697997509426054954768218969051471259160647768098219494624537958071771363215998345490316367925166424481697925793266715476027129910161939074257625006055932979241340164329989386239731345956107617523619222311518024138620989249031080610337677274469970330147949384556976966878755184206953433359498088750629322422834192547387727833534499258201499503037012495271616499536761061891798300031847811541786760715726400242366301265789361007791626939532691562987620986660879595974998262870242476148735846941419494534264974765951092605159366095223820243539849088364003184642526873872834691045405535503831688630976480309579583882449570301175257784156281551909515075933537789461323102474714467586777430236001680505688553403296217304915515965683961964719670623162773977987347773952356543395752922970424486114256443039642443139526709027936550383263863299745321296509427027626632482254871018774238975190302856642463382273261779331584715364267884429032154777818415397137278312408041800873460726413028816832916535676003008699991872055706963615338425131708479548737869207082108444046223761624820918827157074116716227663521975526283901084423546903745273950594079553922764290112812681195729540082975094573069420176895097820039518962754515716079235238722773724335045833360355073910392697515273009408923592240347664039910296482000647497956208264027831262288034355353581447392854584931174115008572818982707280109683762254447033623265332400320507547990178737812876858152936949167506626668416362119307168488460323038549231255426948299703396206894597940057019308921084050280310947964386994929178034598420111718345169972887535049236030967217779523563890517179013961430032749491412039152702162568470773520747928278925633431449752621917036033078485751010613675020521262961318403332301752091616308063352133496042428233793716790225828980283249822934566398142896312293213413420615440752621114500270501717193305534109384225469753476755560732641443840308769195040681016310716306963276965268669533701453005392141773539486985707796319478488554475174487006005013179308785714637502369622574073541777453996233069049906788780544193183204709657177881219175033588140149432291220624105964720184115461002119837589013598018526213052599914494927942706663386938070887211045458270271166669518717731307732659634676939368073835908427304121547079782513982323878663444212350259368314097871924129365292310975858601669897456023755136372022344364942451726547941056419759607100788908745622001659226668338850123593485611836514433451518993906185660665218208078010247717363715174898620009299662588506764647166528507784654107912728796010556809031778167350468366563054764657511327256976190100485888130599483460899548533671607165989203725540097921816494558898229369066068266755127701908384348659638262600104989437684782051713291595792981797176228015680263894801092022634382866549187383543513192219914784673630137289699660918645117009789966268391547056270285160640039298137825880014416910693545621827489317602266407883144266652188047080887600268711428537094894098724516976282631384696796027275789339133858448167849730797973606902617402550149439563706641365681355203482126198639533025209392309342454915231374671477424667924443455273541203228694873260897106557388109623111865310359297885983013138833631741724671168863351584358457241075635713771556147627840007095386560648405408968509521674096487352997333134974358271219416443566302763528072144458387527507529951415722615195718371527159837467406017725051025324853474213757605841949679404300842172147663148661679165798406556796112587974492113769922759169899372873313333617614786237817470993265032485913525365475758522187326635378464146767780523078689641849759733389209666045806294327592172135542812742355252303434985513494062197843881540678631179513612414067494800816081369742133776229415175214795008198478868740825117575365611981970833975466542343117575022251222344615869824019486147636488937214570088706512894515507358620283478956404803717264651406266356342234599815004679084078958975851664918422307483199632826534489168747495092191403199294818031038648331241725296014734955387476239511002299743060441979542608085596294397248568573138779086817695216272825959467405556618617145265233677820342705255780453176252925512136137234661246595021562942912308701563378743970676922054555653766470030385801504207138378629674813699003224497147960010002140868628920509773095653030849939108235072042844684102967150771756792194852236327517931391747047119164410986361777734751577565428896241565062856889269654891717121216075585042665134361003114182370564688110156528703642706780745884453872770877028631195917633650608265348284935932941948688999841888883428979865156288209855091302699294231483203229772998655998890060758619063864030777233562514449469481728980293881239760501236707580406248831060328865741852120790634949605478325878254448336501616514623140083587823324810689107792275402243610338713611845349005564741034163681984520008215758508659677965925506317623492198032236832417220209938559540015261439591276020729777365448018014155459347092646841271345639090278752318234224720059460344260617407085006363000401014581636566490045661739137568511117389010932257394263162850546405478827890490307813275974688534293125820299297846452933471238867953442946343353201216030638688734486864816555383396298730026468845068634200658151491557276972382191156967481634661904622958295484653318166032500580913471556993411756583936045766732024516678350751694184315744773862587122106965942634010898430695255267312307794596483896343447122029925091497286311762257074987446060225878800489180542394292346112607829846064000421541956003796108029419575576352349296479645202001735825992312707297030961944151681703796376432527446240254412686233463863465300779376029823411530269334851131940193307542272650622061803179830525637311194580497257547453240775107510496153375113449372757821163801428855484655878472715671000702691744482676858669533446231197952883294208164362762713350999308242970958900593225102888530960541417415793223550290380353358840706197443386335095183442354706878713528529974444639789951422874644315143166026160922886173183696271989097344446990408588567452666765207562612323901958305466315433210233023768042449656281010639079890388650481039598720030378645619878026866563048050750242086005818109663694473928335152918180990113021869179730552076581727353757903134876085963125985011976117679593738445031354965087071042696905290484264451173290918075290037363159572352221118397641121003990311790913649597085637486532772763585026525847586806503021947386937461751217066676978416768531615797385859791205567024087112877003587817710793481575007996817724693344344316690481057213967130019308121056955724328303943529245271555090759055547198345535178399216903374127102317818343268195641148953143297948954694071617990549490821849490249365361115005253129950072797265080253484356333685586623813097469018221153367815141865904833703480695281953843251664256020147923041741013542273339867126234835917888065705376592893140717706652163394671087797168381069382480303871250750712338258212018044324278961464664921543690761557808673840525455490271755502285208593630273313196742653299014916923727138919725219422421587172843746422701677172651688207353293985388935868123103982814051968771523532593118678451889694192061431615963483249149981010696168333040995826555432562022933219138124701518638566109997932733654648995686808571310712558414225091349054230124932335817064021325556504477992803459424060834722928248241581726492788405052138895688875646216020191512770057936135296401948543310530716786339319350357790110668816506806781027920529198335299525198862455402373218530809870081428458702767907044606279010974171562375042678437082620626161001247990388311051602400223956922038203893847919793788919439885431632642556074578825724794148215459958416206895401726361859826137474668356215399583349249580726191302034810148130183211252194958560810338969672197665468572180860037551008052989423470062683484377965356876300219844601364103548829544563347111754581297132758770611812496357715405338512287790771560787148980581351878197791394786043942226320028362355987137392098813091539097732071123777783050866329591198201695209823298754046027376622160677040839151268046042390381714217420800607246330080744726953022187002133771658121774369929662544286972218422404638066760281830187984691120947068795440490987659416293619406416449292231491803881026260821667064309443424629980794070933740220171830959635917911664087934663134327013070827674078391691936152336458846262950706664348977245106608999302719175706325830198694047406600941795943865524803378065296132139434231726348639947021193377208201084993204270912572829943155577186460440661422229250588764182249351421105181528822427746840702245125377444105719793394753182429157101940366945009844536686800125785496321019576700651574406935450293975559618324913729287135259984618336304746013770009179632176367194332240272831645080342727007744504199271533455655894415109171403285827029808877539558622072166549905033024240436043692438932931922655219765022907592952619277673800348354617698751011589778740653702805579627427267477727880451551683411648244671361756367141286483248582898867229534593940172204992898600764759348399308115465462033587610032470351998349078468782784152313915089327381479008597251148529485265459332693768847901616847874248490506506214781641645372000969927166132388960858087843785356277525286030375607295216304780643757541700578979870279675251709065798628087556055489450511789515874830320633925289519129858477643055618290949831043750014723817248247354874415802828303836793574238865703240165801826113003448101653890384136401988986120123828019049811436484190209151959319100076405302839857212376263750898249310157001622065180784471511072210464271504143857107002072815574277766153393294348804483744635458271942755198566375182220736348668966033349427135271920374884738767986377790780380543855309953346614876947427781521210867837623936191437226380736629468835586782340196134535446292751911504433148074359238408758502037618571221680419658490060176850671541864977800579846917292221199397150896849577724077312543533091692857908181234469221264947406874447123517081816778101478375733790650981998169012756830969621549608285292735928012391776040855391041403390597238413362284927811276979858408734445449151465366823876891590802616776612794565377291119554142284626107641963477029704200641966687784174771657226701375817414409896926532945390478944392852738359270827706201326248924921112520238443888229238549394261358889976483984373051805191483305489466979584464171002767091840757518363751940907601245434536848453385125773871197524316147055315152450088655343289604797272678056115466072440104275931190303133560291344878626727239062395268616868380036636878889063199488114275729259051963467102112795182253054245286083170600913805093260316112981766305949076281092041093132772296353787502276810996268554631546357478759763489754236069310781088608628289415075547898306098073816539466931640857363415646361024715309251512610954725407923784024066679219793273439581110963970240017115709374395967698246735916579705378548855555611979550700254126654714715999241251440880983613344179544607140611220450717067561322329819921605319099785836972366665755890759535135549366411112334575309177934725745238559383917692417928508411115993166332307059740321071218701090934168810631874815692135170457043087005349004469724619841674282983159024131499579325210919225250433295024052667421999481068444920275280353625044220746812594618841873276359711525262574052544935812708591203591948491988289429482989822771534462338947308712961118799374179419716644642777408394309123521754654020978883187917778041353843199077762298815953788643278737485916195699840316925770420260477442434569730988085717581852016349019142443977920917439626569472280634782129268682151953206775997046298359099677816150823657996169955453052795255390991399742495021289774434039796786088748653682484944060861990004318098825800803267696596974596101617634157190032490041142520130776729193783997320820131899812722786791174721906827977403058525756921464543404317702801588428132511769434704678397625349303994235132363447820248026454788806665882502171134310843411465611383791483199260986177377828164178283769742487266354658622881610554280939923027112837873760204361776324704670177352727831383339168693969983493532452580522658066669448747697394799912911259033879259192627602784213220060451512109457444170444142157613040879329068615786060235636895084929079928801014647853513420714567217497569749625891250779319064945559012039287563473435111568993245850496208734952351777354868039143475682983221187364337082341090078650846406608594402494700188745110465860565939797463624937829600385943330360854525547744721768751976243375639317011849124420222288157504399335962530152166099712262351895646191515323147458912281812521297922009840001854558964690590384881794008937984889940857617052759174136216417559298293535758761017273011378627154066731367864980203724395846410356748240266304021884006251114561357990561303397070457127299448881862846345697452330768063260531979842748555746681366318856493993252948504188259578657369084463510269704323636938570700579416515971528521205524209994942993518988018966278321156398465411065918214125346943576086757939885099109969623078469475151639551483521636911027183823366927777539570401735858826315603034840848278763837829305679363494458251565576860086847315262515434977339204416181408751164612105677719526776493678715460037064276646996715032852324390347455462769063741032146674494582903790941099461931549114661052273932684712668061028487995979322831777215632548522115208809905574320031721670435738569177620947383882555111994480511224162351622197080177129592678469160506336789397096433312117735800916768744662672015352922400687048043448020983244946705228260333534244433010042030888390954468355074780053371113487027271088976572071882313016245857822041663359377933167330782133593023817842318045345994655166393884583834634247273628879491994543095975277675812231942545586091313209567791737590378674962625528778115949220295661291833669184403367390660795793018748091376027988416654042970475333053951909636235416172495283254296692025096060151024207737491780242208802976955847649891195658170032745135930436945578555172802548310369934420850448410695910144030601115170511748860451214444797712701664185838609411198696161541016090426642271217453920677937890832056444445014103020428641441093152227369456080272993852189627836402893215800934486145049800760557234723390665146181386440428990949444767658095863701138487301125809561906830337843597724509810540468075085209141968961983494118783974512286058384461583053025117243372169795791264096320845467881770766590674136498577121643992062569847650106964984179206699405114149432969679211938352388740868246857792979883927866930036392633021942864712928573875053912159973780665996932229290577327371569714314190219931693859161083122900049657136611495261567080404182102488468809977909157758723609348023488425376785354562489458334751335046636279245465484859163538207338469606465452402079775768812569711985891971191494373274981622088363921666539926491586324210978364500489392945459821308040538784282543150547779733198391561701626138731189342923736496837513450263905822294750669434751335628878554787591909491828361877507304936042609752495504565581113230424006788408022528667708397934526686624193618317478864336572996632576016563257756288562576477672298079214540916224664516887185117432957525203460361426193204564886703774672820650361765344207102100771134419290313941487981328782541733962170274152432509385178155780500574998748512978687911068801945079146793719183345301253340772789295116400521496020058328490113544531005545276644589778958559002513882713500226576299900488956774728729378174705459316010012670452126857575401331232207456861550503078135529700455306509204002328528464935964047404512844205079095848517913920605323818202349565280999075196037687165032476527545208504951874374783605806790312314963744949332055519891286255242846124258533919843076187131558515454196609018223105910764906492316914876835555276851625466986384638280397901599931857243086610159506971773715514513431335858581111073264388890208771541221702279943216321998924658842877455318493270664649640302642821258737964008446705756739936896305507759567050007983464278783318864133533831197524703890462412212577003575035700389429791567834041854688952493197472541265577457308546467284041948119715495659644297701770330600599548403442027493145152211236820757620217493780238211142149528308366170314590225502320883320635824296379206078454203671667693686061199836871596797768719533041524473252770377059187937339688218066187534474449365379308290524566922755094052017171443034190540542288427016404280498028546015279922729426970886440568360158317403033527845069128842231077660371795177023865178066537266137835624699622272990075091672897097816864377003802170233887587482618515756143838196338234611050859137093206355292333401059608679190464341374972916706860220842610081662562645863282641678299766448848781483635126279445920398956722700589530208496173335010070646812549267198553145406325027444047455040444633332979152430522713021347579513548776934734659213266021084454159631838897869954850576164502512786523060856475040737537009698367444366186401381027524969914018104561449019766268210794793200829169121241595348865635724493544036331261327842715837587770220974234359728966797819662411626031108763955593917167891748950957363096064960310468042295583931198193133265975090860788289806553322758941954363105006703238629870753741946079935782542305997773350373016238144950326583257138111539500939516074797324534683686951491116362887362321104804224431861878664631865957266724545258669726972022678683459036158354427713060676726145389275181526147429762371283104118794677136734699358015665841570058151885842766156677026825742515853735511428567859683343668408681637843097163128246379785095596000714832830859595784705124847040389436235068880748072315797392559029957739540127749747138826506622696235671964309707026497535752326636813380139616622188283777669785720685601050646881989754456388057592196017944410179814287289860076101697647195519435081598046213578175462022844998070967376272314147053778594380233931867385537783388581905102487364507748314628911776140276200690406047350365920965084413284458356770718755356703121746829450947111526100348156708428931863918033499303463846403857143624044514276550795207655506187445222746579984396187465221541284421396530708320212989914903054385330046745959895127846574783608691107859267389759303268364946410212001338585127086769444582761827167718053470495145394103921358527337016978140580622965251095869996048363103256366206122334874163459986120197200032804284796400259794921268466614769161784498226146573018325334283019897348095356444951168471446857228725736912882744092397154672576812110819923266983540977434755719430824356447378315609736737341611460104732291537280849851808874861121834211095204400638528864413987663409052611077850466341591145647106249628643850221752690721468892109558217050044228492283046556706115820799047421035818498512768115624158190644843370067173608257075412167183919047982247333107779435014534332836221053177869632867663096302627867814178110716627415476689067125540646468359486803066750360548238479840082839586557026726474405100962099252066310677403338440689124110073248375492813584240987980228191245241109456748763358031451295359923739549476085163920132608350557306419984462126117774654509044991568355008965528400906140803077932323694922573318338316187306517203980766427367341046683567312790823240451082857602796053842893333359338426853924326008879468067958254780860987519134075861939579090355921149855150037129422516662863460997400739731941305331160444273512784430874166888976928140800480921788005381483040432250041162760177037408378412562885778299050330636990265888216946665402809765619302475987487923932966848230064078451063031980843587084117621491565344392753679435918274697355234815965797374019805165129081534899140570320802583532998125032813749780781124041032982651008968044655428869173491833064469940889168829690058652967428399250860461359274794500493147000748787722258661116692586547778776507345736276741174790197675086868168228582815659753191711550386187357420044150133472094991035166562935350084659147051632626585070740436628846539180749899970960417332027428516132346378409188160189042423158917843414572963839063127149834773868702145276103350358175857790275457458970535718384543278063965281414035333683431473296928007052774569906064557836114895516539951680275530493342736773959801346349217210948133695600022598665232787324477611436064580889398834654130978516408115187608331722041906012843651843096264398652994605848902788470253582830070866322842539225056297661073716108999199685394908392153816389928917055637415520255739227378836031908213562498255331170338924265090805001280555245587184316605442810364485517636646768473322863788834810350556984319569553792403971557739433424408125402314001700799560425008200364786970436805118747206043637123900420652803832720983676256478822801370544047162638430215185574465074933751561552133434354971507735328169646699861705863709935635081686801389945810499778173466780286918591372175524477011291211598198809372512101738315976008239989874922686817351136545405536081736227136898381434919042315660391090538220945043301281407468834576171774353746858581273757654666439940699957404659834740881647804871726249551985688251417812537521704056577401254094821211536196989336616457223972316574266922604748289919166702316692816379318627039638650843173558259598015089786122484760030679235039913953704731986355181089606884870701334072432129647022126483092711195029191713516030117619741580299854215436876047855669821791052473687044216775058212446818347853380858446549517423457222198673083396744189229975623265596649646239339129939880425624052082335764562199354283856672344623930495027275919338571918694286784398597576510626699977057197026604247183060485403741022140395778931401433094702574073894064215999168199559997820202989126641732147699290052014441571748544590844192279211776445606473326327456968358544158728168507580360885822612133883510941746702587906570669344677757629686063296763334893190841713192575264193578628492743824245233473824276410103804075304514460232482270685265660807561185538960416851999416651482189127767944005396257105013298647073486712042569569512876863842875525184550828915269259774496414485102481223690404090635339099101063076478923521136248944068463432514892383654306173482424419575827293696547114691473135150593098255923970042896571153442351423895110448012007946242283636263173934334149054519877613682867662628500897435851371661267379114670148746058841137941825944680398313765709216314344041822713057181725048501905762839659379221768813164894307266824320551092307988312809484662180568731159992690510782290403863773637005991894719162847817396655241729766398990856012848643458471989463451822419162770058895067305407831890717123240609299150423535733629404160796658569011873826152834830506973141920777708484848726770635470715926966785294272298931969132622516780316966704227360720142691015515943313120885594317931670541020072951298370874911492303277018423013858953012913170651965782972105349729853469298568190895596890646283480653668247861716875738927112143667920896231862328969780987916045018807945864420883192086358648769536766435245651923650596233392000242300031554087620061920966066333421993928906453894880208129965334576915883944939080402612066030648580425279062879139095002025693933270619950351132834363831604534798666865467553403194594860988972520593836153205194296323775372320468627769237442473915879998208774659889420190256827527243659197922143563162312133796094092954110337277149799669784978608409721245308096683946039783197243036153066552526622363922817413312797893579413342118446701521303111947659870099205946661023891244459971628848709613632457390719985880902013243908551671148432952367216528973354703000501518752298288735658862589759301128416117690906082154161945514819457637740902317529146247952595070965179124789343834680735123671829846308319688352933356831827595643154547364688887948665055029966468473530274259823805412329686855868763392766804904737040838616161766298082752103472618593500232252722857349771975467208282091659392994838961415492727276121266843284023499820395924533295822167113857900504329037262721987186715897072867948724792917841968185812679996131434860839060202898275722220769096075056348534918137843354186662526351163879557889624752246757953977416323111701406349163679632205218800186261314863426258259190682460661020257694210860263006940646382273269648115156002459096993115853346809834967675350896306472727223615793738480190883746583233873710559148631045786723261289386110776358987364519185915693016351419108434216752432103842166398617115438107423993767341351693973203895765010429687717917582959564553984389806609964173170059555495101299782549310824085594974917057375032424556960173946181309405390855523464896046007680741315611190303442105990563705582878993546395425864499915958167493333327402234416857163397207139986365303891766646599795058290121248402199618040847304574996571181110775359936454394183302304249695910982104142279644898995203056700023134584156314736647116968843499503086094761531080010294611538092142240517597004213834424816517913912733387557378722534193655753984753685773754772780052030949538152846453813043052985840269703085529159864626419478980761565611932820161350990372058358651185639637638990429186253228748205386122487186175868027309066244286055086021882983291789098316910536623090745057312458713782653861625793740621130257806811982514848364410330322444642553852953803820457253333083002496891633032083494864252068725463732683192444029175692670802409801757676294682470502358264515436839612973765952316514685994369967080380339814697550735217788532930227445412216912380600027979564367953942567120569140312900827183499122810391134278887400640395353358521021665213070654976761916581332361597089001235049331831388311046474091914519653679561161904418586013733951581371463853281530680572371766052326424544529832757786799106537689634967251770232776258390458634667765592817605209125014474680489622831253428240284653188320214789140637086569997520676309471160063463562504357289253795629224228765309139383882467759282347279493076497448111129120630603891407951849958655021035443293501250807962934720193405193367806491303435102483649611120837508584100360511829158484549865856080966914388836423174053471197256267395275981325981623599237315198739221133295609127541993714014761851496488247072790426958839964718342640336441297741283702117134575736078215272019552674594465767235719763094406450700846684279178171398748861291699966711794586480797933697897200354457883727733599397195237740741043578043168819735154890367095681256973924817801628050801123324107673469680887392108031239810090674992286604593029845317768032738847542512194005990271674284022183999270930266933686005634562668853632522526586857510935449202265876595609031410576111049550226121591489519774438045602574728610912513046375487112392821753380458188959624397338169435639231541669846128247310582098856670157320558671472497126775833010097341227299074379261094352356634685751721063272262862430340825771761791476089130306398933031762023967258625496856646585300996360785964845073579408319282307986350932906673192605597114962337813771954017456698520575633179610038640875981450049221612663730423095229719044132368793452363554407018844900182429272579236504031869193147977503363991064010733487353092893737190335250127008207487238392857167771912260465196089180333696084632542695568562741841721786254512773442685206703493318178022933791811726636426487793939208960419342820609681908939489416319248839758319573783488796396933626324560836949888229090265620221732273722530548766909126671092891799585439958013325436001237842943925021598407484071023708850208355079798911335215364224531256428318589749963145301684864942917918531630398635900166680981930563906797243895590024276163469666616512292800857343815117661495732225586030291809247523779811155997227692191472526990284449101365391184496475430728257777556513899753135644964328380027648918324967013663834490905854104409295847118185284664516264876681640297972489901112284562730190467098509289934460318464993845626802728561898688995002078363586888805279374858739431647935078057433900409657252109020697204612138861996529810915492080547100563080180200356990092880675608094746328663857336895168851371859798471708562689550123152115723037508459933458067950095544680508401184457333538465194550236365424191313007525929010526656855442515193238408942172080578311761226660741284194585557255206565704132959029816930600304562987114771240233710734867380025148531821673941701146967178639173757682135221578396545860432915080760594990662641750376336586019967442882081681379039189822047146913413436676623509020936592583569756907307378394140582496062196615574938804939854901740356553916952917603599207831657126648552643828603043304756808369450290198229020637801357755738030512541982771602857362093949288841810684168490579027120807660830402790047390681032365309531870942727141253461982472362778895402833940118961141643951608183764483162354878331515038632242430319152808677657066166515532733884715697641031018094343147181066768051174791917177284178628882026172860394882579297395288448477555466371509613000897765836786545428018908080162581245500411139915514996957962410756270038621112064038751742094299813319382319513584501854166012726688106105238696241800853601734776015373361906348061831955042535875256963494706319274951318513318413738793018101355123325511003977984061527888595410225176281564830951876071333693910062656413114812409230018758877133871110128591578166049121478507565142200154738398655638731816847600408588344513023858677696608579464691256280115064255468083825047220950531735485946485213504649060456211759045499677126847621745067552378032009390990580503173305201714115587469542389788521106766066536801048206073575271319231835467502614726264116005001035987534366835576740334543015263326355838425781046194559597114519181768763737111984537022458952579085373667762787162931955929478516470854203968472862370186616784325293274263038400412246425856690864411809202949009430601939679574614350086909938564971501889480991580432449960727030571685986504526581334768615416141217132951515909487913353690708654246522651461048861573390284156983306187729189174488519031590747233631117453715744024586530592745431148820870138173672945996052934980468895459964283715607946214164569866473639606829664245816691548197687320012476948363254882168818536284252435469436769990872229636631433345279116169871341244994959866017012321646663582892693909411920749273885538739309816825260586128097529090632309668761170491121711064043048121283926907175841553739223086616012221340801555536760724549576952397455195463941020788293783524873462178411436508577902130793098738595530982960251430357445728119845289812102423752423312385989981078880604993907652126717119013203103889696606924252905536219820849080894381027856310137193168575288258725745298837029782391078566769906118036855138828879048391994815451427934635732950148604899432209175429309714429763163035021453860434348994046431100145158695441677993268827789195078751541964356519020092926254114572944371010542670145090610968045376685271653760478615109835496583901996610104802463231278875423381947587156806395636904162257997332100732057740273298032164512103577123860331239340956045621846077866791186122447015905049475221863017371280048538056982551969092644547930554601469903397874991713810656548245945787781678324363239072595395504141138327419274512853360778586778057229780941918865750712899765972844583858922350887316495955722300895051534573012239500840408847238089287303252182863959740089011484330965990439199445007870554305293790048231408513867713239984949664395351460164485583863479895664021413481535048596773678341685340640188505691172448105170017790876976265471007967165097905485843781468276228424948079851701929842913150857296559488729942762194957300791419973215745376664025256370258150329034009121668806457213102548213163650032256641989278819441364532894131677147106699231602474622137679160218969825518373970839046694461467936015096176069992293669574711645267511296280279734464684504403582338759769875338965997874782611340647241750938095294315172885770314755475584733273450784680180317075070263506373220916356566375292885015555911321141582268175922911505683292650897393907918210357139089490806046347773275040685557777775834308752497267507370614966310122993813183861336548522075779664664476861589907791385392946545497080238788127660497534482379026332514527214412070489373500224369185088459972009458726653239471870541668111711178411524631510753469807554294676272551176057582138112053520587619413906336771143988312749343276035641511853426702933299901618224508636155704798110580672189434611328687235574698873303190006710521337225919455827741707117955274910318404865833174627865625951890184794472576675226295844820691452563214892189504662084268995528066836083699518087751993972698334664789096076453801563270725825857677894212552374925025245432317609813845789478146031688321475140934722883965010737661373308162715918678351507361822761082135499471591102371398921746635609570578333954015648481850795017408495716962128727488096696924373826385562704996771689082080614846549788409069214499621258580346610213281642710894851613640959179464217251491621352422497891859498792388849230337166641501604749658111723251601165005667406703643061562344119387430233042082440954233116025895835603303881560912119611882935448788372403788104174762160743853114760069672600720358997225149570772744837654226117867238279256645950621037885692210406118969836337191144579896486847787853515583334204416268858029052336232411089082248146424522191414379914348884690122082260989376242122493649554454033684479990284824273003606722749613270402966426988526172072988637634384055358558062688791885778841534946867561056890786914348310709819269381146787305738802823888961763051098191127435123654020042096991119231853253198797408999910192293273359095040243087223230605199373385429962926257363917369191596263849261237990087976491353542775620455546347759875798088993999438258018091116016683394652544352004992791765791279941102669303500575174549345971595343835682882809965046343130014017911119764044251464849868743361953487748417857238208319865112189675653708330060731605068279244092808550582094229749537456978308657236260802432588218078864127521302875213687863126324075423752970578593731856298814844869216634531988700597924345658616608083010589810139135066785122586604979073906757515280418135626590359683929905685599486430512761172229082080000003406055300441985776902298570221621375812730043280196253281287755213805984103974087179753011070642095269158344355862930963427231800100103927957740090159580689675824454506084462298109891774166324286963761467726516514678340993806831555501181488928535979165705283774079244245430120131707885449885511052594267690993922576182314913788799352212609247952282980426449490215228970867396674055438049623512146781507549635037962680949969834082062037781897810916568409175606822926164106973109689960373921585681325226951128181157881847566185684255895563281296951412189567172685994756876923523624504941991429719067913606791653897973640259711892864628533015421913470436699804475463796926302600857952702542419907787581451026091831477735773204525947939518349107901758873452179141637546634459728966996448215860688511755296309708647589960497699518207392931101311547119103892927929790968899266310532951748928571787238945066117278016694302440074716891694024453519889846507486929128862047060959402436846414831816959137080121960386086240186688071140777872079134515827863450226959076428932953440273774862136972126412601867805811296676442892936028666559736564973109665057447634806360016834168978481041402505924845194990217048978281272688646925814440090701489161959891879850911540214555354450429207331752536974560637390743113383906203234855070500561298670413592925192969975435030666005880036806001886306831592780220610698454139876015106263226545436788831203299043779151522541634524720958377257741882096921675022467139383054059941380492622073722975494608886780493621575101868524628657571612236941712218376854833016841753462740274478315663638238890804942827077967782697744297329080573244265477701930621093281599377978758482814521396427331234965980230178678943914005932781682194452172899360533848063533429673805906767503447553364473382048287737901058725812885172038242405277663376551523468647561430090425281083606916513899352772239548702086396737687439915702780111240863342392441671839013571834722235607738431356563591376118953634751321013923948200355543134094559067104666104239728372618457871573999768499155634333314985898012913130341460639980296298957645675579193752319261345221309904277506825167475511728193339101867378869676470335134903105502824851977969641924486245314880643960432629903373577336877430068599200697129227441114205867999558479142468712457131636206535112627806661447866283804897475066686359530519207255542334699826503003743798651993628069047977841256463744782856425591432188091146505903683840998757035823893245380000267430618793534935256744062723082520448648914462752969493513089500926735608323302849977311687628770601601612116471079716137726211697486682053818731043297452306694301818040313957484365970081445599240719926291577697940864094140916339328216437692029437848871522790749283214083737112898695281490003149196631156067201731414541414515093066084662714160788828583256134080040347224057008933549002109692537496287319953007152349505145520708940033651500045729449024791765386346934769039319375181040963991714711989863423427575520442551533721577712801701313072045391478837110771496290142823390613832319112584350063286725761338659393981109658164814999480603108825407893740447765812001752413414551400043860277737379197826537435776939084878564806540355011163967494440970070429757184654023491275298177124270070818679396548465206379487906314419922041790451114474186794006914113559788314554225319457969092778106859641247152130986568740148964649915225211472532392249803688544213843050429148024213347798119360736083301115867904809986697570763811596310713349091394064876674354184407824780906786968140553095421759329296200312576110747879710457731748374621729705173537897848311869236453253171082624655951276279731215859178658451544273586200370463003457507302312073628634325081805401526981863765122115231698519476909017733723875131931121252804882298246003778874821123878342565750894337983624690694239132396018937175957947805390926615362420806662368825196640291656167351824017292124375044096187397681783908196661721352062859281533357617332469821770736855774269065879372430914521642297202097639492521829992300215361163405448022853566378966257775011172531691361250926642915297565375547487287155792931147361411773483918981215427847694109429303740132095794894191783641182492845888051020637805191730174058867014264131509988711144857889491357357891795836485624300370826765556743689110590350323445342990809089751040822466223120619658578121454805492759544246252659965988901925252465358712929871009384927707294914485899114633320417935522971842429315672657568464693137038965760946144674014219185006951671127016110489232270273919741034209844755723740207178513243452901613460941831513159590880917053870669194552475571715751319042171443050892525502859101917022881267115088662902990965524531941715852249655000698569843912547386885419047926116515724181059821822274782192980661005001137056433295181669855010665237124072841456860991889093323687499923067173405437393535029999768563872681029295642529609379693744100519783013656287772652985478647779453166856267628618105182400202597113381802158018001881744128267235972807786321496292620845249745245847608724032993453581374913948524108182118402201184992136291767764933560739580038521044148160108369269091941063972527301350779289749838187168604685294476013261518793316564820500642054144832477160015489187061354183714491439075934434808037041137095637288331848786502422646917260800521827821186842460838089401017388767164419402489800885339575843984445238426383798012039663581531572526554489293286864584720010367055537261799213093705920196202144199224860528454089223883606933038108637854581915958438536819538975949116515735173597710872731109570204882966364872134362986455904563769088278500612477734959931328582756218664270347888597964170022151801034592566120626534610125233139154686521974093890202570791987607075906538010283861527595967577072664576404343090676817119961829516240685358390879137866275751983082609730824680053779088651965889374398649614517481662621856052099271905143596804257043212787169436696042881724433697571357883246260459945149232226541365009011812747409746736159115461214736877703235349499078230175512191898984118902085494310231654665337768676186520058356080457205580020026961702477392577967903810330659540110301704130369249200258968772293615432639762209613657242872900445863560853445101736689062069378025325353946548644153159634228167600654367387437650058031499961366165028216244999774261251235826372303948755047005641014461410143940230733776735794719089554663021457160361983125356782259888102306074670187296921862264811951378535260437135457196721574029682166642872024725247293552385476350387346444890927622167179723498106456501456313406539166363451806780424148207344735498602412756569660713756431924149370245094927720452602977614653006009031909302945915304000048449365328138529546701384252709783951981417379067498155361538910262276625353279677599297909326876141080812108346415915787646518678872465912055275952718036497346688881825288529396408086701207190072648235129897887463617977635103704175505039601777156196254701528618161816532313383711134035353423935310830292851974489855423641896162481673070672617825260248741572574564098593959322418644338484251249245114275982215893293888909563377061267736447367640604530357620727904790529025444454043727242900048466655111811946587572932196599061924941254311891140158775098862691466169573643121039230709173996018360568676325418175807338762427149739918085404768109800393433994821411120130740090290954857699801785262378222526024266131006101761167333476166623922492855357090479913170390781000107927989095586490260714443971112461731075756770364385990263534368564159879707532120334506538221782757146065861032463575434285315714759592840498308079735541028151884849115413882457138660167367796891228013127066731907935052701545528299509163400906887466473236027101760668855980387375002159467668569675690000920984348776337664801461683737082967157656835379416791627486221083519933578623933198997850911197609079240232471658175697313588102326809539845890060429174007734971979182976141482581817480058066389208845744049557111814299662536141790914611772517102324131149076124600296904525539612183310909761134554720813544058215424940116810364473698173198818917288509377204458205688853392910770702576991098465919233560192068605470474178461473651713002452077827485043044259355069135957420902183054351217995001547276202458902525962014133702550675803447441857182810387346303424870884988751689156220829459314849261845145611598596244562914185350565839685382645353202116781533751875301075154811287815303445348260528171540846206670557908679462931294609633232240263760740101130819463378229640805212029756595814188077124695064045871374487962840211377712613555626780650623455966586295081145786673893456071049342422239601999605494366772862366337334672405637429762234255869931204401539620817358532526179282242847541881395624565653318687252741634134761461746092183230733368646509016491681723037040722763003553962033622319852890815594422207064564131396074423056006992035157916889443958391651325646896629190783164647453978497084833246785501098157951881817144243948221139774964275072117727177800870423810449605311157154110883624888170594727142553652550966602992774973325192292707906113708371939733285601363665475656744619497237775842455360770638240122918478528439660343008599428956070093069041371324087325698966298076172012021319960403683109438745532176803620510762611560970814256699172477809215694184206790546483570859974002148665622659727265301738499131930293641560330781771207663844647039567822954076802186116470789584784894050928580996249230644653849192766487589932942735885527992463024957921443301273378491308457778401636812269283744812070667028653711333339527489648891684497222605304554421521605217069591367369687999051064049199744283990566408277509415538840888675323188777091382471599779845489438942156859262541613006775185097594304996201918117788198380407933467340246303157021339438067723254710091236450504211439988211217783175744044181254877029451700178516631242196280194869716362360579826584263706682454709035981813338045683934629518474765136437717890923488379898357237667494633458293511513583106782456962547326587432488402496805963126227703026775256558164690758824053745338376752545189209162349665021382360460672730206015076696782177833607882985769856402681291624787836327413113871611806310774460508935508060535306418385134764763698530556383996753661255819461290520700646483969555191700689211309650681465525814720074589215959362136885407754214235171348996359906434555375202380639788133983370381472271532255399104538976773663362862654924848430312675477605495650276092425354243779559691797142896469056051028630064705102045229792897962687324631211817786284018173418016520443994947634242343925731655740762386207666568869710407306709557990066719524793247897770279104135801661793639728463853548677849792524564323112823738440005561788359622839567639069442265053088294992660815465187479340667251493310119583941858346574804376748980837541230170837117893844047401550420641638910008774996965801084594816763930816779015540487068848996641258792162260458275238143367098865603224692482789418520061353502239408149312399936596678795840277428877160525698642458214445239079182400286607243744974129513615611019654542040383477157395556774359781864411637193878729435047166560808297249292733286970675743000596477793727303376825466759306571537443689870238635023211318326779312802285157222982345785723664864640408667461238666683213767174626862179934892517539127138721303354492216025375848451342721202890654815013674197639807452486169316182236980488561564130044253402015020539543256529005365340752907034192679996410212363462373274269033016837472511596156405380764984344443139235528638621418071668026285842184254342831092598914567555563135416468994347471662256352534179781661513396711822351503220031957490719129150266731582536462970289339818076852619572938417964450514195261752726178798364978781245128471324999491481555638589827193055281284246939490408187415776698542543638548508146534558048013999273455278146094812528083882797478308694837163171690461097450943877331913390772991100409285068307986158042283085272849375954602803336881523396163424309927046481195999375911488588415741720175282956219648738506930626290201778608551152455006432932785233445609197983717795417989709355602640855483156910087455135488466675624801317500406289419803883359537539758007379122813091075159355310668222147196177370225256520098671659001663173620292366223975209790075164114438217352046810823172665198876511675071271600638573009822709921721275610747576702376163809879726124868773014417083929501004802593235907622296528990132838567483639404727289770034230876104129903025113235413289880441622700762453356640842925777902474770944013249653229336529134985103147465177605181193022799404371520210882936014745284836931381014588629955408187583472457232681305153454272205470655425881743609794975104993079776480595126663939459848576034652102319746979145469559620254159487393910652640093604693115247364190285991785667235067281034071886191201816111214942008536252981122613956658313881196054218676037016238686181018691551058836220279934292077601860438027057318469116367261958078123088165083505308378757337966874739913731116894479189235537078799341316895828617192698424703173495923199472471940658932012455194097379088484088685855831401013651092096306268344334456217755141651150998357687269873456744327273605508305465137034552514608090863860567835418541923387965989419977055565805251639278506529274142109360251683992749192496113683297248654599245552817465568083910736433576848578833817255058752335811270281109043821752281992571611917021435011036384371994406972848066995380794273356350877213946526854750012928997447229480766351480126426085943429831431009669892729002261843608938223030992491424222745777673021175979927038461198907404107304545049263642777341161027708508370580442468983746433813867446409125685766329438853900162032139343117134182838616278608273496560738200832123029745357098269230044518561058070098120954933102149568283122178392721133101456385321665264910617502884914924975537381200725359943665440300426272670583380326802377202318866370750195975753466976498404726443960646844783092838506061841289199492926001476994760516852904578148687980340972938626404288609703069001151085349083733034028777883401153813691487888172524414896100866463077356392355254032176427117635809336920907442662189177871559597431353097121164746253797346737475176717981160073667062369758798105332009480748098894612803423655340842807499982740751002177414926203292647155263311854889793566736778969549017434234373793498529382567668323251406909253490792769909544378147042719934184746284343877297734328473109618349891490342871844012783917842564050756646061058655300181080625993961792238748442157856767743913329663507906480164697641448185731744305484984359384232935230384333589415331928821872051118351656531961182725515605188592264447261629722889766983924032631014325634191064637938557461073365746167982196017225525995658531791187133684064698472190927309341171143631250395326793615377923458979275156037316849258881954678555689389520352351427813278159608682635938453124891510180121348770241483241919274832829851635828061997469801532430670976393370159457978113467255727814132202222609721430278303777140484769903980149924937114265835178250079835920145059406267398170775712741398916035282063310807546198247675541899147474614236747287628366002020239882608015361041866467239088136682838694614985481349602854632091026935272402879719932997575723414311532370443685101065381787877397487118464105330325940189080848892103132382278326546802056397941422477414530429822545599815398563899250758733314418163422324443725762126795840299471849809056743102832883860767569051167830163190932226737842613445631260154745505802415265509072736241811933857115637432853219801065681496481287467414665011458378715041498654395726899165949553666511196971236516114477225840419311302316178249001970681612153429454278850826338881226321996445732696898064660571980753479954612904935875650065408577419522406395114933130715804699695261069013435901694229238034212506452081828966732926265129217203037368879965473522282556051156524442810409763578816826885584750048295979478837727059524678192098646384310454152198817216719768628310972852028776709789507897572418585608346981955281162593884968095388534605316086633672129070102554769677529108392574865010954965253531862133859638802682742093518155112634986187479556795356692451726383143673001172000377949946344684922474107902271767988027679224168574172210753144884484605714977950498270681305700911572809013226992747443495910494410767238758162618275163122394316004622307638153548621055165305323032330916053490086774655282683606873300093990543649548754696018828460514084343910847028000917118648545185693929071841500504254970763313028836996104793169758992804158917701296565569450911020641884950019236035056372794609814846612831358459368258628491520294039388434675649917801534504663545057589461366971579942491507085135821273784054612553997101018542503728918747620239729134753336891010906349133185111129693837924118986479311000363251879942580668650041683151233805881417351123137939616131151734441167926183018946975970698060710434806474506073064692472920471039595136779294480171458696388271811019373341459110003257076932550701635252362384478883372506287838213561881095208347271139731691509813684905411813018113079343407796589363549318279452522027195499452790542693023291434246991237591515875094550147301841953368591013078116369942356370478470485042371968553668122557150634086136097933351799861641223940837576231000392569955671517094132735661401897973084597736488686140562792025681947305096308970094795539025519692634280140084656222793708577697257909635144746773177714603385107341571828966001322600528576186153990369444818273011253456423286239005396264933699921743065457352020189654471327766462941145935128852749479007714919592662479684348980237062451013017511821543862927160534864743371368252326621215964038772446005989108550033673823209037004055085651125750872421855122681092647444215259151324813620913842182776864591017473864313380353458446047101022822976969923359039047937959038949591445558375332730873526827271662385414242872206652131342529994941999478445290385092803579562685905577782922785173836469153821623043455224474002591855675347020785302306505288255946239042364943756696744826531207640548496913465659728483358221880231059225979013995612778313860364882965882077020283130249593634682376760308934178860324362987837097591561857895066494859773452439564271014009426724991474822672043811557897814345249810613495903808232099736505936981947585602028608696869646820791855254869229343449518460282263352134590159008807267294364243469438421623400603824912172985143872664370441830612750217428087059088294834342429690920918314342260285687656691437178252777840809449250468623613686861822579355484461224044009810737635422770538753761778339378176649365163285046805254651106678153954865962589783510281500870600946186625746457326265795358548793254615618953333029290975367694877280201884713669592183853139789239040167922227923598170865815690448726206402543235488868883533092995492072659164871193004524478762122723042999728775321735177659088775520813808798325273137909630269496411486503540849306803286421626204755930855055441255218168795561340735245276060214285979020055731094907406293289829749829089615410264580434020669181422078301699045951161538087353216024106373148785036278658157047838680415146627255211664490971562608553931099761151776477395919015236468168360824302070482262318196415280169163974837972635638134406141455315289285266620437634014062617040461313659734356026155354966108891053701961627529438529142502620789643595408239008708484157816725470294739842518120021990541849840853843818248185750898619501501612230006756023063815419382932696556868749928274995122445562273812181835613064126122143841832483051296210200498277266993777962109117013137047102807766989688678636104280014491290797043653911168302450280680146839676142432913554465685085524514581983333286601371878480496791853279132264210451270367502779864555000221180375385171863885292332745888270009554480042040755700426230192834809710133369793523275376029285771188020094696367628084669074780983439019109581884897022742477463978742850122383637017105419901287236598584381325686006803041303897564904365499465248673422485634424600395770167265929413440690695564742267163181531569354836062363884705426408839425157967351866258408815714987014964802023378142006842553679561954167525078568037380234225291694263501464218726482780182964034557247738200711477232625506046136513641517791162053081605386987830282743875682591721810537255858233585637960017483702508729435938188350664570589308501491970662371679342476799506380992316496342754992127156777732644384604026019645984328463772235258608304012292690097588478832058230374468520388921623405850604664184958692997126558075789971092514753380202832594138336194143456080841261794938761315922592596120577732468383940000243027039705252204602776344643028166585004035780537685621750549610823290267680004551394263752622226439953656259721093099033812491723420512978487776666839845346178817303137738666284664644866053844955919305995610831999158034546049106060520404408340204660209814671098524549097288186521389722751526614667817811038120472089864959184126011167975293748909382290864615625177286073641747926280066031440285167357909896663103482607692261215943828878463022548676234132987880976597393970950275119459071892728199024286075201287998339982090661419158546098925862338713671672119859783951035990551016598292125459220697807181883493770825866429418483278494284277934515817799214344113436604971999929594882442680720720954778087244102350726468021863891040004484360500023835910997495840761008594214276037589993704074325349361582642595063242879948083977265531280265490268210539477908098647512174979072300125966483681045238524895025642186646232953063356601403315018651229099226117316757793103624438212895324904552739565398708035399605517580336191129394264245775755970600486501312624238082925915075069566185704519563311069719405111636625683047678487054066796185522692092107485364669737907562987987893008122734904021648032947853832881619485973477058106898984802441712201947008568192846834524114282807402348766902664559569340959610371933798353947440455943401656861890382600976749758048865110934726983152226903015002249836609816501919838436220230010311911140206974596247979453849671264749608935376271383743226904596591052135179348527934560521907936601900800870699041632410613468392610981310751669737772827917017553175924478271870808077032939103080620378293269718024802513419659202067357900171878806502753102110633528951073296812221252162543015593256014532114565508028458691878767768756686259187214873663001822132520760774290081841795071258203260421691688678601527174008017304745124425584555615599247511959923123839074594693522387217814640295351005310949912687775810178786069831378182871214100901473288899882004478888428147034357754920298339359445135474991577412003173289415656213363137856290857588029152026740546538055860769800944709015853923971341414941856540692027427537792371019008814712885067377994971139168175925162431612557920644243262019254092500857934043171425468521380875574401240719292813030390398789470968591938312067308009246785476418981423642233360852857369006225951460449014498712851406047656208970359738367183946640908607664004108990216572067859173329673169221234598674369466503889398860442728822793142473302443994921891100183869202687646540905128646495967990467098163155348401022085398312690405922496753628859210480974743689729351942926775200755458857312749382175356390123013831338105840592482337678044799367658094294126193168284135512665898903426506022179110418884337895751023082325879843686595259930111141867613407752874861994074343861833281025222407426415868165882262346791599495288311108880794320607424975489819645179817148506833954727385781540856269131659116256102846311046329030357155744133404157697449908354722088206895628884603871159408216765975930117291537813926221748816323427918727890801738695489736801204446299659074390341377377465881233188112091397999780802955767602291292157934085067990788258429778873482567728166500154617883999708630631673438558103289555934447760346028125599351054065335633536543236374779643500564803449571274661515090774463505750251577216723723911091062936809859309592561539941107608977314884197482066923353050902913411670406127533998829295791299083076940641643600932129767337954726440383387902589126862902684760509647761860721350204678777978285821907235811507120582053599816386402630333248884629988775288656756413213590359811607922141629345204833491177178892764555216852619093875501937407015494507931263524277788943915660842319957452988454962336245920988758049900147412908482675800469760830155934466147357812248745239739603093983559821099772824552914941005597319614330399234499197074060321940442278458136755876060680323383437129413405366825040644250805079886633359658553007009436009972044550585295208530023660311421722861738811210855161082784980335587794800479256148796614499946740773415421197281271338378455767745987604407715241338899741872241863929837955658497895612397471997815816957874698194650008749228838764226272679978771148914430348907629004354383457834286804180838527709386851050211499765565769643148147373635911178186757263878251124524345717150341006040019353577638085493481602769122799426705281774920293061890018309868101086356098767979585311889653179109753590851244486108704977705136204288305644282088597245505252408171011375116503819503198997700068891995439599877290052669191004083729569310551591067685394855653706957971267573727585217694831127395564905470454520598836989627226699056664762621278724630282100194597531026161603753217351326112877057309147393284810325532676208100529653731880499685028636365863835813824508865824562332313537698749305889833242927128281648806646695369352427199940091701755258431424665643065649853145419215862080075343690957618379713007129085901416281398230585907017312385531558275464750992679813188740020127396841369451054320830741357804865091915865941233105899279604634826437998439408679122084606377432074312567926409932641000696856454989861541847934905319001655138965767467332884817313238365796407154133189899680281853500377661285296222252064838068761477474044545735120632132365664840122719684075552902215730894704344144848073510858231139608171299575602623203100540010613607208908456073217982539693118679470944350085831283845893376696185559380604230231012782094348238884480556679579823889662860216064683326790034615091720663228707945445147116024882863588939979077164765645319763688052950197567371914722943344181650017889213929725846032309201396329027438338909153482411792960387180667154657998431002872432688931667493835269746935578119444217996788384418524227146520159980658855803243986295992200528613662014657629925730545309859038648443156898600532874024791356746155342169357328601314147955943357438062656928269823845289990046736104185141342814177495644689221072196362104023915959663603314067883560299952962602741378687486637617903099947870656071575623578374362508839631262017199500087369674496593843566427553479205374371578836640101439257655593873614940910479412039599461491078599280998586606158770117806005014675526675690008523017846886000952941503069437062678244103856514855952915350669657937662217190464414968924953390005320400940703612757563330932062235121185039090478325166059700395738924253400331862936096899316569671283055670620952467480410117739921868699750477172920768574101650782691496332305845137851131970861586116521064411528941892885674446179281465446601103649617683109594120277110032883013752065307685350799747077185424371552309275430563657850823793196573869179919779284798305744100174331007948477497021635096185958819079428674935924339290072244435668402471109475094341390614617372126495893175834714980486806974398619158076524095133118826805123479182972678212981235106139136696399817780173153682120430446574350400192900893678439060624085003790610695539550291690629149261817046875997343796456156840397801040289325194418849913541953417113638983295181586238958131642190545214919675548406744690643252639661987266376448850759658278649277610100067943839019358827909866500592310560504849924959348739544793723855403689139121488148275587106711667394019318373442778840169295122241874991380212964383790461344101126536031357246405942334393203638942066966137884503438963402839632382219480849922442391874793887894789748801811045044714247705648112768494609779169937847432999336013750941780760616034661041651363058250253437355910325374239015072316578168771580583212196056917880708290599208970948635845174819686098127284150603542292432050847354542303502436769994639933145464980917504193501233151231433161309785324121069096956697407007765212622324070977876786663570585149558141846961020414204798826233946728399142501019905472825392178392577701805695758731404297670372774337894910072456202285126051062393833152497147644518814004330579252667130199167363581269495954476726261195898430767820820168277530564343681911873877478557329066854965579529513823654558803837983386212302560975935231916250776151064852487992104220183057845494307887240720067820373793305533219751138372401036925725407600873939914165284960109809673143894622519934812337515750465346240782599892633486768041938221596547984134509785740688675007013114036149246170817634286486541704245039245797791569350327222538592465487017236089911658217338666059643532481065418320757448299420653532768565772302512121215599612406313308404656204721385280348636990290706702166858654101384831683144379682881315613529386308900187636887571047758224972246054728264924420790028565059313030636435921422261152981246703735935052965119433539046900410743300667977131477336693289315380270799302330580535922011763333888165631791513754956424492569116094010848761848207234983188871561939461010671101827766331060265840849531827596027233659986514792720486270367782142766296984937574317305705030205433974051629634023387947142947164680802853860339382295094594658758923822638204105777001773881580198901551572502190241353270201294254476773474460135352762016883447317322175649395073241559773545308425261265069360833056407339701647860509592627232592597669570135721515199139882282833658229883672633547256690419887086222118042319303227583009781297773848540445306615844612765867363770333038377356338591930514891470076553894909533489747684791848445565545464632888007075103713174078860411799443812415293134115978977683058642183062253822680954398588901445293100644297835819630350828520403780041884704110593426545702385903296905102137000818517100006628110107725729068967209415448935811368333155974194621063773938340534724640438564957811623102730860730297224044149097992816021327163931542117284966177778564801876634262033891878395639610232296702320158890072970257579931714449328090940783744587639487087151358021151273615747972066961259433776338789053026997833539836442253094793117657793358630636735776872482800075298993767859662623312512155046477009961809506439192484678981813897201182709390503599366765483812496750999027363988823501783516816727610380244696859962178613177009901842101091168971666943213688798591282834789361573809607221200055866916713134983871794081018936961879421872081822466630837542725286205963146039233262083833042828071617048749584898090699474640319709627106494585927771467340838764613623785195046559917781188374172221866704277249940980321008119442241761488590810356193476512411635521496789446316739467507150234293160477042573232167697505962846229273233906146303049498982258709728224495909233304451516159089647324175480508796623779626401470387178284546025102099563364851359541000547419332192064064647667355479125969119029820928033187211223473380094256183732974645261923543034359342926721390088803280554103667256323363961274202394773044184434090286792028220858742010847492628960308504645345340485008932582025410271233533338061457273872499994539146122390256191650637100091334619831809775918480104023770788498996466386062133853209980222123812934640135750714931782191315969321557049409744097199598916790450277183856069294803174501910885253788237077096111230159793033012694932949218308003143751966461976652036352651587534877406786001877084593199057806052759647324844752748154418992618878654044202714452152257517777303675339728073038700483467331385957521606007245494887854519425896234052186178098548149289406045071979550154730082528603787159914538442612759939787272013992347309255290036139811920206271888146397266725963860548285888091602870152331178779861387371914346519343918820674175692539006128044278772909420775517302184194025506019444070352534884507291426957130114088908062754987588069530387853309442322807591332062594350076103293343450577170634070088554996504369408946810644701435262089593882382713141719128913274781093311820135841417827273301783257912683020063113676014411939624451907894216469315087922484834952108288895489839233617147439793345906227289367242616706076801832790450519942617991845184770841814341018590431580227810988758950049733184951348442137321790875908562259355458511989599619645410054030626788659341162872634358101277549185480325572566320680667752129067789211586112018657299400597623811256985979096689451151480954867937148259256245980822884759441101016049318298869362919328203934648042229764904232376353815191116614906182005856505046981590450519992491440947826830458863283612638139582224877714035567107280482914727740635023054778889380435252206583607808614062392369364533174822325053521216732695236856065235707497519715947713871161492189733378660822990355053448028665072238128808549238594169003078168197845069738415182441154417174680353845516457516938895911130581939024249828856872120997678872226195228589238772229718052533525429914658189503924864796606957879087483086832011943057924533028836449960293964406641461205967624008139975620645368793365185470421093138600713807213438909050540955426387550133924883600739985309441404723659663647838129424529779965807725829506023807533988880516644103189364987803718675200339069728529286378014195081075099015738951964756309354138481211687054515313609245415660361212645997738882555861032783054947410408445585894726328869809084133870294592898184904392707439739694144059480900509468497780402859027549060269286480322815830768457310435320627076161139791432939810666462317270001024040577272613961211474512241002015594182933421316108913834764016425312375240431287997883988894860551199160968780201459759702843243617783229606749582249879786672674939146891634544973445870292578567876724348692015478052889326467627929418789658295039526620870885408335324618611435731304143813475217231671974592582525030215076257567551152390124750102145929757991876712708324964421466506243903918868915773774873291686828553485157699677501139956326188790619828976030547251835357755158943125113303822070152197245344459857657857119157362368831339489382705958279531161810879271631371754990859075145007736715067371442637805925388404264102392665975913804059069092600504290903358881652828396972006607193669706060007276667673237299349325165098931033130503561631514028171254945471538048685200432856347617417432590421280833267693330864810219058465949859970074456477550921113925493971664040959236058126534736962432128990629506267795021515414645839732934230387881970785549698502920006443442230419859614242235450660831282661679329162167640003366797863802154817863991365569443998132105857004467991442821465762862108261669319425664709347537123489136075601727704934531460629217322071041690134377570128068935433227970893340455273698945422829308428365633808818973928683035075463433574354523054499027801189192420190422228738533565829360046229001905687947704755202868725645150060126001247241059165085342998858131571581361627412292413059358843038252067969079967403083527829761922848455083053140434085507008371834732921603578402010538905375798073141552694349667499218918925102870050115663070408352958517683658149275164951483689306093204467100302560265938274090529564074735992782430297469627218905788090207596028895176517587869184102109419355802452558028301659106328359251471369674318591438797258119476773768939307441428622458083095292684672165985336107722860458479170333946558425683290668611124618832386599866949568760880418852632363723325132394720026543327382009452589481249387341683284382071109887606451309281342715909165625636825633313936042964848080151162342397702073036867389144442660387997435037195222728122369794877640456595099276671011379993139172150453228672695852526998041789361786665472960401914246571225470599176916345924455572742553315395470558594882386588579221301718408039142092495883229724581462625942189702929357492839475503542621198302084350769347975244748233465481931820630294006857268527222235580690153043719510815959960141923928647006233386592231132102703585706854943054653426880435633912418468937735894243675888556169885200755533196450973789049222114899425199243893416356803821103485100393972634015298167516885107781555405796749535032832726363577161407880173397920277291026705111180789985674948280057345733462285093818472935351255540136306235550376594720054692467085119122149680072435822383342287243570053939539969359647319679580555466284007702973393139785483511731764503714801439273250553235535309555450122935556230909063885005030424691598506562424410672110290765275437180302927128607008975342830385058182741720995254355729789515427449974594150624683991457406751088887520847980709657315407799613605793809593563613537173486768840394076357974456806462959489130022306036659703685313917158250319155857118672130666538961779898836531923367393702066673310604708198553520436128720975039302440697717172371407653044968996787690364400906752014953433639403740605223697950660301949587000594450475072945550186166696979223405469946319929612549704790279441190959613509243835528866374727011255484768948461367702529540163667869866763849780744899640442731993466937458667379882881854049298495494941030747423124483778451093619192746180854020386626382596451650634758573429857798095422209689513358904933979647639755147711616771188306832897313522217678004462789877718139285183613482387054655488695509183369524330390156653908163807513865558715585205540838641513616316106074446932450801595127564445095201969003546726527343374032247209721505672746294836968706022213037275754661699689736112322226362945473516963408318444554679681678363709008403465850288007966408835444134887121198512733363074444868628775751373837197223242028051983885661568561753284610172730688346107989518344787682432652143362695352869210143567591015792033875850130528433437866118010057536598387885671470728648581356682881143063146304717817710379681328502015413580755156407791807755039478232724662842287552694066464860360923307926267132215438902625267460424426769688019293593803187948392094257070615619246921390700017197997725644375483409340268495727416150482250816328621668441526224717206098587407029721838382913273634780920566436752457694316552102212287885376850247926421395412451699705519343279311277010416403329452045529539380147372345553638776137570389096329815443560917552150725399219094491259023278095494624717145140605754873066538644236824777403224693250969724124527670533305738949385153001317019340568073005730303195888897497127772511853837680630223971296544333359214774969221366105475476566585963059258014971292516937664257575882684694252233815089284995298695892310917945829807156129326406872104486302585243005088546201622816403718442283057498777286642346311401299673395650289678292385462229727589858389103808337118598382207957120555546274145391629372854684384181301341698931825613977850535268506412926589238172111291162587241348098136880223920986639334405488071315125828893825612196165144394416001416217178679195507137237199111418867370517772024386264030092033390174519549929291561224901542668703989380749438598707393501062486351286488139981724358819428324531998957551255351274781763282170335801187445753107445000803457828485443209411035926391797651280513574155409155125921440614623038850331387955541393089554068607650896115865447064182119730990821952543106897050443813614547240642778334361608906193995655181755032624155150691960640148458394482674698089046498158639726165315740199965329389997315247553472741767837225826474226465056585942142028506733708326918722194687536136832181811055004348872475566153997539568172753178390303452355467841467878821918377605999065558175246920595678347399704089810298346347147554506149249940664208487004918104527821563378528957778362489478104880571385026405552017109703987954392274896822168581235145107022346795754496399653908583470087408045349252465611118944199815821368821856333605989993793286479732434839855964157967517841134344919295301556745063396802572761627166867114025910216244742918504971243731692898800569267625066621906359022893932410371054857346143332616581732966494199984046728912922680717209337445489154989247284318973399321424404288536054055867543014765848982048032531011432573727518293518325348719838659965816732471312727818980557320773740757753038947178967632078722523561754081999733342144524029250256922623129099312322279556598085576075202791824285258310898577704813164912115910854475438879767089749490456680626578370323527591552023751611466188108799640096134768514512682503984866337588034174588571239736665954829404826285394757534320593348302590276349559485620425911036458195875775359992421416947005991843883514797609073049287847296180545828116692118936319814641223044379510511043034940388456666706381170359506723831709915056027015152581584198069623795799180780387718656431204840034637127372690186639893297958000033365497062506782228191377735376709357702934840195162846295391044634273981163055197409451453961059333567724396293022025775671276210233623771377289647761496342971940237713790980442974289953808427037771508965157569973110480935538362946311872561951598093131549057797496626516767812083255556594869957825224472562173453331597093123556427249481753584577209756694350048046006262100385682357153293430354767482218915002564397115579857364180885440065618471989406697393244113990995293988364907119301089003246882912050076922189155869863470068679099023423055730655049863159697353620299108449353318996715081797711797287078181870224887856672749834185233567205480591622530546267196568812806434398182221893313881141243767568754641200603452161524285394864922495195541025969577685157056491862276738679015559916723435584772409669788933092934466924954000182600486067455195989015408518439302394585973944263764882600937577446853257108082887163571659155938287833141403863280236520446710921934593333117255194113552582894596205446560506998652748469488524417426029761317237297011634369783343360705752890206747398836722886517609710059465696755258684019268055812919001881365006631378125305857316793584729392056477531989890502050220133179982120366027969650212094649752598477888082421687160611145291168487680321597684873976675908603344260282030165397289995424397602223581384924116349023798541709944534704942192127910400423359849574635255551599111321084208060494954660025493754393469588453282850991881340066798097727098612787056590853035283020678004956643679792569812052295674003765529123427102431640308602256649238310291019684899473587579538825638078183960253512972058791226894986948982188051708947121900036875374540207734157819436846834082842429829514748842106340931911466170603884489116223390902877062890051824944424002787355943022947085170498313736212427106638022972076889432009578976254165206391411355191662619761188530614962109589870189060228028352774042598195633127424859937292523318649915260601923814957713147321341439692470212836903924783730437922792537000676500613978026729251974600757767104996320836209923539284908889359600037974592099555277582050248282638122775553798150187029187037483709468034013578875816830784606284217779969534888237578763411199741997385636655273016760068383379420908846565510969668511914229341254429373617059244566855551506534205442463814301660535031918185198839717104768031714529355440111331122116466540675685727345966351415188158826104805344548758331709004441285822695645503127296384524721633654900473161588815106300969677605426393064446756227068220996743464393484528022584415950302226108887172893892761071592945589428300194213502931981195532545267565060847706616138081425270832206051090148922275985322613869386032433630848573484943183745814268610726275697122013938849297594816543953863627666266675407608528094520924512558292523345012342448573458119849420198573551438359293431095971154392621265453062042897605524515576591742796792402515034826774343901657098373008558620491967262697376296087123510039300831958035455645794054048694576690082864898431412855184909629612736436528258774363559165085297286592313332232883905450713661988483775612662712327384101371233986387593486713601887776915391799845156552510978499611422388011100577595000361216070687423606481493491447805649373606774099405231767729270901974097929642697470391802204658138523360194949730997967759976551013305345605701953381158136004471180490241971895666251811582797722906909167228990620882237867547414514580910736398819076120283099861910755975092686647340515004650708267855458166419430530165224356297104201730708109166885598184179928614926250202866178189786532361466723363060920974325654822739214468822402882139104232029477082020034740493066963448984756735979992560115800037787967024840863520171696711201296433845592764406131655736913908735527948018660697154891341976780924974993166247251877325999239958098776035495023231414840432712995221692048052080593731687986142589853146919893422802282730303032299452164115905444625470067005989658788723318338690092873134058471002827189623882699915113689798395915398252279363856253480837715181221892958350313059347722818081741457177124673639205941223670510092145245498544095474407727230384691287075314325438175999025021127961437253058819722057233814017648436278126796118919906565121633449359085509430190021027407130705657250500581485253975944328455818421293834207243919491531618356520263462597375525808450387688823549751992743631956600798548207388025796002609007513472987469870856800927478307438428211037588300319495284648550727031297886050445646715869546500681934740527189714928446642693416972975021679033597437690578211304713654014676813356854906021032248381633536259234541837254966430708704747366453920122625137234566779606272811550936483020570507259875289749547341706722807125572526479713043438794890328450858882770883805325338695814232251146254172442467190984931866387859020124645866976593472760653876610754963382874289060707099469541808212552496561283424144618449953333445482768689325428913854657692906155954139283239237883037220367826394869554137647670626674280308646444800384136588295145956654604326635047785370906801925013162156362118431402215026298723891310211616420990500812595242324439741273220331436953857929525818749432974640420189896445003704893459118720693796441476158077484688888685218843721903782344826711754413692153986822472063469238116051237203668229675992066516428570756659684120403449585329647262321505673394500800062088448635248397409281351945253239197004254099068123105161965564683388578858811203519551462747411027627352826107841234916204341454074678935794510341467483123772188158033262241243013926914580497303842913798221933747782357938530531010912434586027652020441139748584224780033566901159169158107569951587778433730179445679510437620081275876751321725715817326456471305025243095235710233267294900023043025244142608280219453018552263765611151756794351411326173017873898568418990676625314077992711658216585363445715957172081409938519134533004820405187355698523041558131649581094562852233980027588778205896482251729359234996700482970180877583890927583235152886478418772072500036776562685534611902026110763642513691814524792127680283050985108841672668886348098026442548282134006648965730935555911813209514412867491400250723174419590204130366512146005473148014739003430446450055317776352774506148158154407507942935675883314653544932107411952448399930298110647343120710907855308675349272151450747510726971654138181672065477418675108240937302584105497487916517148938573370849900017779429632664699641545177520490327820990311243180166865184111243046277808346474642781437188085299821750635538175600113851935406533205902008730192660144832684993389473601677031369250711415780811534201246452229302529884213213283689530118955350507034561681722364546660873097691959098448286286828382650068221149292449751154856356024820549547974847069631933242368755607630525013014928485870964208182330642685186816525044833186509276413591385055570048305574679086098992935535771019716917028017914988405291333336528878869531573604263496021589638168151063861361095703290161925677011364850648583595121890735632595507004551381649050850294567202799092303833290446622001962343592328431590599107154101964197760257116335780308626157570895874323514447219937946660629985387365275962254515990927180597255697486737630065190751560909802612236991061168095731411039688799760828011790858186374618041916961491499004966344417375980287683105666112328697862083568328428641411627886654524634122282306330933488730421765821165951932189586234563718462951237167866397485871677198770630043218115054052510697549667671903744995319902107721136834806629510818701116758668322427635596194180868984015438042383184904781888588067567703205799121828342030189805685047965856061234203837318561488629171706744342971396665745630264670467836402702062437609112344323480149681879398876726280741429002547976192560241944691598878619195222756721793867534909641708827717427448965284928867048888290758968289959346242865719831555180515541887425851397634652003153413516358075384165783697524935349224557737465290760899943727484032009519764684301954287352916014595267613220478129360801658370789683872373562187366872555520033747114181687574787919045953042272548668646386035209218211752780658533185460722304563612012470063168893523424791298750132115426188668471198180579686889936325586106160919690888871807750197263581931662852276830913899903058941724875800223110117781014531282801012985797272800549335183083552218167014230939812945553522493655239670595977750430441408219086447534353226423440265926746368335663305603641717829148073405361195552436342091458645863521087731597681970658018852822506159015565412985331667248998471551201964827043757176062518788955125045231664971274792404529019397858960633052002624969969082814190693172324989612731982195048498323679862662498990033027642268829918311631293291711151639739620348405252399260263304070245604726489020082969871622570891851919439687533453422369269811444469028609019799821264043055487513765089284598020433488082409410172471514794709849959785096718802903187998292516241588875200157838476825438051535386760652058215778980005012417867646790854980801338817267686665243845162866707744695893236393077854640540069797239218700520410231951561244997041113188258947454761207327543801090638225741460268694920514214610382876867658773989505468433781306972271472716139181674800826263131286578122730416905371441657006264810007282454703605470307996037296673254818278325585453855324781974217660473618425494222563806323011362935348968223550064331609160709016971549304830760879286477157357075029200377379000922977811323941643234860290353201449510535830212531425238674669754185362672678050643401038740046140199129696856637446463078260324539722076688009203799954544691074245834206347993643932589374032964499608430326613889665353755940854657371330986438112992063091966944456080077233885807089115727886128529650074169856274325681352760875171456254711860083086271685081816598180734230242982133540588133975225058901711079259055670016791493125952603033139319476772300095394971141944482592051701187243793538841974375849662970742161726207412570009311843473306313125550924909468708358919969563250681941412117910068893512286516786535924215127534856831734560974393517815654417249178200863823259102458060824577571206541936353531150267200320570947893015548192813557954492445204165209991479831204169215924675825765323328726431197763279056635619967020367823214423459646995860561534375428438686992243606899133935818853986025466338814203173523732398535133653894811932841892703856707292373137918620740029097009869288705246686718598318859872857559658679322060471860386108943471560345854759678781986179860258123673778795233976459164956558225001397375642069912625218869251111841996235170966232128190025959959575162033939883609097976710466093617935379168966783638515948220101375223283264388478190955558391995310360824654944063700491772504102271097780387303703057908943991042584227115951446382943349693271526867188365827121207905581710310879360729902089429260126851093917074317848878476810514833315752376931445398475501984147046259197492307075723797068346465981137215529887790989852284084459710847696494701804015062376350478895172359867059633394829020660493101542878169866090402239317715786476787093659078829140791232298046798321783816923493375430456434552000168904114092933541815279983552491763206974241567137343382462383384104834728128778901460245285617699296516565388111297960262664559935955373137069994452106591298789627913735594409716524721191175442692901036671711036562542991574039333218148283271092880175731541268371112157821867609512111097991699607283701018528770762644347592420311803069599116433190489750861331302543822965304019414022033817508567094166830349013106309510542856119821742302453215565045515162507148894047917105863052694405977864361447019837988039020044301646626367605121680814148700836842801165644138303124506033727872083658137613251795625702615580190430003000785037738458040462591087598880839589542317237815627750185731753621446778816541781321774658479725456875412037618338521371847576854057557302234904273999389923589343033343847245523766141715873512606714814541109384213588448471283956300854456914971408722765808622634208467280696664110231246208404712261433499112054817363774211870581167710351331045633645300733242642927986978486213890634026075370199143039644344680005913421686514648723628702027868943750113302945506587192143570488241247303304269663134868138643238187489199675533038316016816900913106785887138890695635237805747685702852975879076886189415664040377806279399127431959257421532384971657974304349635971165299164554553086114888574718078506000755413539119377232363908024473820291291752883988434301658381764162710464063066091474937971121805604327273544382804563284137020509029487849270112814116369527488153793114999139995363590536237108522603802183362289119058643950876936282019104769284842168297011044778253178798739854656652526582658168608684371514217034599341346877533576972161334487379152785430760159567470668896569097946808779686402497177187996656452583991373438470493847101296957034867159288858150038544862139927089232258428076421530909957943458171184383571141601846558043049230096340975729064994502055229779294660482558622569949375573123792762745306633608577615693017983584287612830952434454232801360594851477316579251938148078549885079994717810177164757377266312291038033186645373019150329676986221372340121898254363350827324585837249009709168796139207631504724176914644872487499148913536561231905905142130075957684430172993693938870092685922226466946760253769190917529004875807052127380909799534378405469970419669087550197584801926477321510817391244963383591110649136330661157172231393512723484412165591584430417550789579698447392958225193118387746824606242048282343073377899532032914383862641927063247854740377277773068139341575933807928534372194041297630417679626079617737799199992998188302049890208654562485329821351529826649813402133950675824109273409961299347490245200736060256634183992654652105035087626331714355502586358065259074266931003388466585217574449610023749490755940382722981330736843354084635795362129903152617739982256832686351040531690374327694187948760662779494399527685440036405167715125306895591282701846378346858665374237738045620341822758729630464190943471697596826924562729182451595606513755403605057405194098275307799107248522984747151203108077070707818570305442574460607754432608150776572939149924642860106059786762892596195480564809461038177507357715400760557896846350980031992682275480225446388887972115696959392645641391423557788591897854570126446176226502154363436209307597704908022086787702909479981385948918874151649259223262725902955135347801714449677072283415225040491994684122872251719336847816178740691526442494065509100209379178965599359876291090701441724601875869869527944720501771013571144085954633487270989933758525835669554542599033234149211164457920127260653327126439170272329666468963437758611647732118117090558311464310775523494932356000865846847342470659152430449083852974156923529188070723112427389736619064715979473320677330396759212407950062369940654255507237533134701377138048565179387393947533296181392142484358991793782487972529352878286727261143163244097080995290124927976101363260530098436290881558992910957728329330769712764674391568638399980104076204783146294959111507480845004367006315451840579556283199229441747479453819617386265334451549636774809774358517140167471338705993133818037412037604387571802521872608212858527246357588832818406720529846175375530280260784045826213251538206213789983826807643842110487860554723721814010200445421528257663568941301364475112872144845232707308686606514225008416968263193317743305749768812912591000651863427109137616354258711767644748745618252108249763318858183424324884388875812244144123560546716098518692873839071652932863447730469439747614675170028705260666526346092937663599575502606204701812889570587806913364344089873682649993978920966044327194335208839525988206671158506198768971374719725367101584338935231219081223006738270784247558245437375691896734513242207466453716132564823705118905205410377746457650621686306681684415500133766257403135073536211512543839018530545718436366968647361951637832369798006856389533758491197544700526787316495827618081688611489041722068623411590739567816764212298524415416447026468647106635926753007417990604637206057944317855407893802543151068175018227841343160739815634392529748909769609262336539802248462388473998102632764812412516788395207876514391543633240753429816437704452860719490643955459015674333673349496755137804609505901507030460484355218761373636117603487640630797404217809983319818811032126120659354185028023319086277985708828043128060422128549585571940111782755586140286652028501168471250298089461348798425657153950681341363853337071144967384864923327190937951265270201024922725621089487401035670697721116254766770058829710815628867564217390989472424519215648172042874477706416444676358178574387302866986282741259461056843823464180112740111455391110547780774906996381867251972265392354422962163058057499471764475789620677752386253994616404917121974715748353875189366849313681515964906497725558623082024972118150444747756580585784495307378300563525109377774484709773708855357533440239376508643243169610781067544400942101878974443771425214256608241132985926335824945896418953928440388619461720933091374082556730912636364009351777081162906863309597752950186034814594392960857236088693815960733640043549149099767869954951401030700775654985835827474252690579959661299183631695052783905196525047518252542502652704214988826739198020097869604747371063769549883177097559589602780026790745967752670341553548924340942994025449148878363148445266249147677420493371276420448893726641010933749876434142995735936252827603481532778051849726837453833599161730039553964368898137789209341264422298812817278959294654052955830151314627390390601126701270129361013735714637864871803520569976340342540626186448668456461239917058039631435110658316229665746463959366309253934748269954903627742312943016290909826943895842363574138272826640905162376709468242075452919884354781980683814068116152866025386093305307146059844266509826002945673464795643432354382941107237895608227693252336502094391850579332652851080030819976640650299571628905866535270666867423532034164962309339616121363245176572819217848766302959586669974568223460081661884074385510761146158443585216160290907454675876771093776377441148566869378580300696978402649850075317774226904536036135395181084483780846036111751549351515965609469969799224078085794869236494986506675050521621084039400761164998625090619746123610623897416631956801226162246094177256073453915315850381260637734846197368634297663085639192152397200495247167896445336713785965878752172629618337487114665063559348628920723731670960904426652514076791510726086894611981572926189299517533501513696693304661788160255501787624705953429731090379338849616456798987965887296067263117876072547532735456302315674379846536801509701241153212252795424780549848649755161109259057762233518736898307086064504291672307906211597411844432952812435801421897391356430037717784038572948841474772709465377402657233268862536531846172888977790908837036468078610762216155073379896549865529996487759892287030423988434475887319926467902634491820591574706686625493930821560465816309106540071873468026029413438001894119679135370213945822365061510608657539179817903829944737963300799475832209102204528442818305891970576898192442500891015628320808520893053958186431351998448576545313322792918577274366554757504142731847030678813703286670349731614084907430930556899411685255615584342029814620822060104788989525584081616826467291852590869943253779794731216203878469531545140735701977942491609764129989863344309614020615381700187054135637122874791689991129938396628961806008925154312480287070474830478697638239636256737308315796383005129821261007570099957921682269553943007457962428258580736572657983367881237749330439975168873606634297572303635549119731473809845391425728342693374570820918110057609481019913303796932100545746881696184556201357038058017146976754750530639484081952412828702305765028740775693219790062961926807796107893130283636920663105014953899723441890184526811045473048058005931470638727003528262229263621931645372370542807947186405740304430934279014312894663720228594300591165907524093068210249262223907168406337401780315715939628157097906594242760402594946784080978393238837852353648400929507378286547609384423419332823107103463156456465732617296951353861206128201129859982531828659850710178262633083234445262015237413669409137606212662598458528314462000169292905135067733012311131911723954534310810364357895400308680279072533074430553253607461324308193553024913700893172890647880664033372994294588980723269961987326641177824226202507604179593430181040800616139319969171559352034764314903990108072298496946888280708996795043361429935839023729959132637554581275136420277560102571472146331482130583827717320351828248265642705341053028322840135875707789059348999800829640645612562900111387196675404238655612749089211479542567072994900683757708574318178789177205147805175084335460298485281961541139728389252419714425729589031927814224898430600023870952901928438316686674760804867482102232058513828580184421254431051013831815603102615654139984148126035061764021185482636407175619339739514908637579456306874772721385057505595921613126948918045908800209691271154730293716256209779302228885903714390081930397132796495021393806211714586898549501474506242264090384980455987061455009052136003421085853198339001019730718432069779299390244005477609757155872189252370829452147822966678644869483734261901199067803270056182934503263806760929801610935710394383548546969402563411996151310712432407236219254968697129739364158572597948395223089723257864108715730875602798655850832638379160816328627055414000239870602113801407624432983988114647593316377416690600838920518373426343978871592139470115302911932820781148722920336553620423419658008972329119823806413446866070287505145406925006992448858458328837729181914316132740860437600028926559960009322503136092948962010672912627711818605938008218371845049776612367443921650553843209275947865381861610199174812194975596107357178328541549451697390022527927126857580009027426111831214701863303006287371648556866856542029725366733044481809622708411834182574945594804836000464400002483932889669342149068646656519196134647752039997911873991088651490486469270195306135215800939963801507612957443091169843864261255685158946528023472409190164876702311047148114443937697741455871386489572652903087098044055413046709534558775753424690637542443063252579727405424019168798507921928317688694831168662825285835352063328304381430326416213917993463754203172805478742324728854214173384150727274491155690397161974445881989408988388086015752308637804720791883544071023197906623154341328687474347204410067020435747135773782934958831100815846713589919681460179239004547771826810208438471951841008046393065727019157292732667517960378910328467199840683638904467226791378533200519977893389265444340303362864764088667997701869383227498423990570109658740281542981527439398059643283626019765954753982324794453488031712857562823444139610545958669064134577848676579692077237007701371638348972421704263256433693825264962155969631268132716472044968106804267177256511613801298437593896902611941139374203654213504367189295084308808665752344549328112811357643299651273098679963769395921698482564449510778771138419836391559616971418386029350121399127956908644572204584708879225651684305068752883296622847371556395372285443520593232890075413169345550753422648692780414876704141234499206031354435489276213320473106277733399656225968163848159162452046875083086597566141623124666002845938149775437462556086418982767461268681512822720492896281813808484673136649932386594160895123752117123393722913059971477643144149312659679579014322362643047221006165933076084762328824519155532196566339851832679797493566929724277715379265913336274782690601429275762987018747761170623862582721765409992709192022049877368224249794883876868481094806788639486599319309170003119218179086130231715394135081238029013876214639657723966209585080711240254857111268190303104461820836814927434476975885043829762869059962333759592953406009581223664583526508970915479997636603905588727414126234119246258399834151795005588551906267262776676090008561754698524197678749505459177975394122000692997460370944503265900829488015249192428540157152310732724012255697153201517973654454877679304965279844585727454985168310429249434346645484506129283542444367351337991169690267444768464905016210113921372845078534481910526130572731061207785128988536660566792551509069176326475287035941057344163273012525483771999853373420637067262080479046562407359623914910810616238938303068572862847274646751856547175497538561052581707291906470725427971128707721727478720266653509344601034205768090176909797551926857154288346548193283485614023540648129381367775483725572991239752094456739558804121039389473977306608204672383848658764248765283190460242584594474643358201775217562674979074254826410924942579128659357794919338993295512243273053152919459183742061142830052872984121348097288653586311096720340830970128379111638511656457738235661989557198826246303459444893430975116555408195579613964026539727135210579456754992870930558280276792159221187796791338049750362812084706121707127949480177261443666103840193928078097482930136246004071404096946852483811769434149658569018038636699710747966265225914371099407151711116624287363443709634509254392776333392700111365900323042322909631333471250256013012220825791172676787352364183832721365787245384780863090322479071774380650569050109884868292390549142761710130812087922632798102092345073494784725125269222974651274535615842208422546859221149582480454325975439050962940262316031990348419320602746972201968396330555741065286631725892343231234515320511995143322029570049775056877440868237791535302387007444959795841117152436259036871820242060340858529301244960891628570655307479170686813537163036844076838260762231892024995880202556207985194347684021628489478735107113865136096240853030997558638824885476077612242969986697028766574851385364364758764641238685227410012546890436694662909562938880835619983452181478294693725187637634922983327800465487620962135435005436936159653853961092017802267353675019860207593250794090832657584818801123186642875433291434854888476061117312572281055694180277610402074174555058737831619076034251381269197049495283120132115541097284810370314268489230149588310321240371866304826530871620937958850200749312320980952346723433474467033026299660060851781871827002084922955282373200001762396287790389907816016648833491585970090994355102749650809658782139721878722265943500178174973146396483394377999053529801697542636093702340334814504416152463726622803574604264541833040427083355542944216638301276483270249568817643195192914091569291307445521591509640723986772527985214301105338874489706101756340542052582084136331442920708232486281514914167579343130918612422210838002469729840016574294522507078425335206294917442374479707131564639097036256543756585505469195910568165552845349133146510425759452574306354008013011780817286731972564066954705810827704906058283777246948723017629545400928684175162276527105456867495205604659789505098039127937721404795029107773960793142518140197650105069856064666687339572093278116591451250182717198589645279033135879201534438700631618553225611872127608237142258760971751929972506520376212125622911837374492728614685756968630957567593244762541935115483588409145982429067093025678736185588198245795140168978516806247916853705644021828919412665569453587424272008561274320956587828374941326773829586352633135401364931257770214079068371743601265959815674569083263148435744662579401377854852382508447271479073290956700851703855961417644604696360125167664127800466346954947358073624833247770988101511722343558002817343848324455362864516552346067967049744969206057897862886179878922746553369342961369362732300560622353820143703872901796000378167093470194161844124641150868307155222974497453959257635082325093483292370024750234892905946129281882799769522216050005090957993088430425214448596494451422482400078588348654150548590027618121036058423984789460003247951340847450458847966263995543331047821097206130116599529199844954014134415182937276133141527210627769208862776610702715494079033765879741349069361567682854559709780244614799018841495001331385606148859599880522961869315013757685334022492254589724991587619883367798439491959218196630917344196660488949303431218170021845862206897873301100568122920402467956950704809021228656810414779877000941989511145505199748327897371045892780097249261554738621527435374335279787390293733059214668566960717835992341240086839703080142042090064213191554654701468838570927694066641971595815153585548298928339404588561476892271608487053356942163285463937557330485742902826414531408697385923989367336048259951815136096214307347381088194704135865994063550269461269403026452539385003233128621523275659313251178337779751687032253923107846551530805887776756028285149025342857528118499609887702674803319596720239259541260451714495481710653377497343073941710594020008953585173588246003610912126409450402846901424697241943225931201419302672376459604041821143881016838536797670176368196498577377608013417731282744232956299131830642529069340152014469127242938435910536606491276124330526933381724865494683857306302539249155846918926499968028266826320403442312188136013099225303622240957857878780986592597420738970165699146989686423709941972217579011812883875741621206096408652946527909428774443749630740610770242879153467296211259768854254742606767475191778165951487396161949388928223894173855099724114135466660653448288917488328848008395440288504523830352305856124594118701564103109688702867117180228139292391972222741756165124899112933879242002374476097168743785045509705446188792071637767297821230836125498941702349960645582940375007392358532277444486280305683902657466878122610517059343805064004083952712438822141948060480900234544687648388146627450050955527190652187525892789048392025025326440551770996385215630378539582152474786578308883100984299559720432862291410096228737115567874126046802403144584873312603147071575893111369473086177468866403046726784425508855603781400074718678358459461216427425550832503838030513819343640696529968002500733598073659235175089119550614677790567161951010963362588384489940232740128403797799106423825718604972294638439862306540468172525987043826098354812138551597550753268460286288522785202641914696915001844375713125168392338042633428803594592296985016185127761129165883594013352074687997752399963719083602863566852110897095772315119209960010163604992012388312895529319413899488832302431275851645600086497541450596210931079359266833618148247330328596647548788700643488012046154542639540151187520270733748303118945898715054231159758735960007536868718119905073996151179919045482837724540419205088087898147900455822962336713042106754412448950159307670302180003708191565218660732711350000057928607358810306357047444320989029794361110660069285862177100697420711574219624634377861192356043078995163349809926811581500782297395729051009238298885515795936639964974989018331347700746034647684091997328932903497475548780772816821082133948181556807234960017185091713645165011731860092763021860382491208332469450215154510703048523151018308037687587824630106078317983387743229147678336948122073259961242580053597039071674265714495975126154107582608891825596382368457416043032534524458741200783311686356765368066837688367031255854395304285578829624824990978207280438774972467908046709584129478752449757602819633666385488257998791667243739994572034917063369554291163593179704371466760334470069831492956604323741968013734235196585122889383579952296348197506762209787922016612770429375136094186328611919464936577731223769147576275265066893190736900101008086680645903335904754619306821229260898807751695028507609504475780460325915620308118372885261571926370149899755772053818113178759128650223682919332695493667508679423998193497983675163211374306466081077477690610940690092987544898686153300460489805839702764754934679300192916676913397635660255168978783405482077537469479381584761774571070276685806142310053904113190795596603264925954475090323524555967959462300532590653718203351013902422925580697929812877103619531795899249309222775896548623011195807231996204980899375926230256981654168123439346751999171983458971196596615003842426854274584070757112526637791473325720258981480480074810548294313479510115741174335216022393693001978921838691915811472057153702333335421524626309019309773464933280485721942800899620099269353807941276852926540299386141263752145225454137134012702391593904123694277568304587128295048446121014697883164238323077085445726360131904230655079520166639039875590650609798546320604609725127796162688728828198702764744551093148545643637759465984203168702809596951027220700055230982607213577395256774624359650930114020784454203607636844899319200100220244773517678222348271426091671831527677228057957299282786091231676255922309563739542279654786110603870152825668557796858952451387531609307622538726689956979143724959058281319753698036264441339809081792145900830076479368659702540054906941435104637265617572751247856764233993475752917922691516728824499453241269392685518543894469372634817249420136309583852307719776709774227156340644782238406785583132756498637205941458195926319017572173639600435001807256463318117489412856034850298585688438886238613782990400299608118222327220858830669111070942861065639643001539532083774256134024266776117417189975107436425836565389851095682775413425524939104168297208965445761963069688076136015747910069229793930671513522560442763951358644104885031492832932413191482607886507043866365307399434511988658070632151258044560397937564228305529148010545238783901048783034098737280586172688191022150409913298582988852245695051257345120597991339619333019590827958422955379936878391727536870063127375750255680089710616187195528650061458069907753000502041962079704940502174098197606854144185323445204561546733580587281879787540226467702579691523955159600742863023182957012468904091828422332099090177716055835739353449230309126693473119768868590087256312199819246251238020686426818942683665728756367705344899645960916924008174633623862907572927871990329138679617124339482976311852604604507370693095864176309804033334079873702563547422076326010849559173014153370803739541815540166391111213301089647756091724558646888265273939897705338199095345891434560118581824136487728872072607101690275624059005689478108656562488192813034464920219625985514169465318596024703535907733684208273336897319210775691451290330500963666747123419573096466807262116054428849140075352773120738409768650420806440801477041561280567614154217238331423915073715757887053547074677316316727738559358280418315598875411341854795123780016451316122626145904611956572169015738203638788023167294194583446981713061723370232249169375432046848400352575031937826113144776752462802201011024839757425690672668464633065526265195489592349263502996127215610485922700302585351262824570336192863311012465387743770897424142018368816360359230500675455400184836797788650605706940107247354682309482947899368263378644825196321931932449911969794323245214593579668280125301108771427440675321870474665762678731961612047922035112262170256006413697137630193813066025406804625459627473672874356349637082059828172971465773333234706943871549839752409830171307432740935566882490120873797731187564359061163235048294069504440258821631476469032185328717247758121241368202058547680345901024940406600634385488942169152979203998698487890372365880502623656440625264359410535582122791345578207025162132413533822481116602234660013660094635955575537849486129086530503312925534913997449519443862400041881519142063705672473799935456968654259254227320765977588360221892918427206347641597291396320292312999881739485036440679554655958029386548334183913977212466820085338555788276259694602942362295377156714208226981756410789447407259110529383610354648444103802142680173032318337113501323954664560839859702657163042758405577104592980310964908459509834945343105645410432204177934037059067613312010042498811197026505148060908043145489700571403573899926487071300995467459124720315268934571094694491959758037579928303202363785955696392560485716339437869955192018544671771775014201158262153032659996814198540722088909529486948821264879297430948638501283405500002871538570068874601558492929605354721726653991038949376439341079874713981909770067873585917012286960239284279091447097705879624911253015463900188273635789190035008087730460334017783480094580724347793247809327968771600094540132331127181486124363621150559226962231711936004393361755201847102708180963057970745359085672805684277881329653625817205790232678729199756797310249468926863291662649129163648474260442953527099515326428935348637007673222936976823482019254977199919551045726665859836013312366608642190278513682367970127248131711642319949523508633155289428747921185571647316480921035234457745650713383206020881789100736221628462605707923952991022424132983480477310645691562039789350493932872218747375673762035876612397168582141082432160168172351747448837605125996960138515946145601654828987554398841246975873933877202013511027396792248952811776724403950156955151046357420531869001852400893345450417341109063778589008289141824497429689997959461874570524684223124044949399405933475105562491708553785718134094303396482357548122583241010802538884719094737243791179167399144447409208745455700156225912839156792464151789981515188398659044620665780127176225526844992462736879829736414358287606614010494741742302223888843797249124231067339770044693252006500323795089732640554554064717087374035886714549269499056124768212031978071620927416985900026347895137838751850460811273765053550144548002821237190246393052352646338003855148708924735937193147392038544539424732719396766682998898394770369204581378939586049375387343181256905429950357526225859376439192768587704767989707091021438422799995907357499428288986524329907961686175569433624357972333402619879507531600859790333561762239729039857385178831025794390188693325162899139524637741469136865293938620909766534094234600392851346571235812844831012180266845221736409558722568345559079366526474155010162363491246728686973263472594341493162950867654978560020269210301571245630555212236733654399050889604334935380113350382663523707003916893044239652810281376713210054726342557632236457188914267092953386865500470341862140300230060743488258400743754100355370114503281239172038583239223711642507140355815511404500460199861478916096253519683636603546698325397309872796645227522796662198839725527833622450656495355670824647284551171402418229752173154456345196135547550262590875246363112458704522027486256387657565485607971665441872196391605406093138444650883547071527574924362409787688814369497883730228570007134634777512616139180969323758846214042105624302995515518811986525928428399400919022688286053704806803374436835925519868951673744368091763504062932734077263044248600137312478787249672506852444474335235149881155892371895337195291776849507687625282478613822168788888408668799976954819162586119766793565590688902201974897235999350119802684365268997431823689071429955455271008344469589330675445757706458260946443493491369102170524392906848217804603297860082936463974841626332529686177431152753927370676275037883597043457054312129536126766385743613213407379620055101067189497512896652339639712246478291028194596188190466554435643165913814028592612185540953524405248993405548097404610164548958119206985893983947043221672321376348890039541586973909430071390289300175633301436162773955092712148412781772434215900919022841966848409116962388335547697640485884015763655766055212252850960275487210883716270902825984238822804847880218723804546435012377872611520469488984465650463865199331096112985457276758196009295438130233867106288521786648313728275438450872217364919085495691419663143535852893496740774327901838024868888522762770897524032688078542409290750515022119734717364429292975787019065778804645132220348025718404161766162177950431294204764385004507994752688493123176675783349366045549202335865212150742081448519384543998853975734083655904900295834460884171547059427524991022787563161070179894209061489269713588053428667065060359807581939867263695290002322834709708842063978752613107879008769041111435150288161853774279426755424575149519735735276150825511645719201095644873925034464968056033222875417945959716358275173626673977955916703052430463772152219742985887706464576652768650105761523048479465363998021546182438333449219418280098583065297824167222584169952139108698799037691944763967151060377252508235848449032535542783860073895061566476826010541889490346436262205494534661694832249496603550903831293775736584169079520550777034433234280013777695496582815591711420097296634743972435284061271947726764584677038840922581220777927628430339683253349468117643372215450446965432405099862947870560934610982940725515187546225678046022358560721388893452847864636659291443938771957311770439959270365603660008665694595666761195823836059724210471115251857527548035811386742015283080971522197739078389324392099174133219583486502619452096794776768361156374550279449781614366964708717825314190627520655126030286374909666061390570590492060848937143309386374758329015299173580385873901126415302695980683463009754163314004157367147014514973201493957288360962207502599346067146168377671344356508851981312495454103007729303839144628665166144666407280501352888461355288190707607088958488803011568169157240093390892494087810906301455541802729905092584776909675169261103792113227057978475724725413987120532290924325605049770075636194480425576052776900023973242101640821307317490505180317756194178546212961871267000031057317748693533482698118887445148726186590543438296706672873735215187931927139647536264151781565466974705610767291787432722738747427668450650660111531620239396110735517044257794193545226525019533183156244114880220982295214581454199186236359645839100325355280538651723292661107211211155406708489087610807225507919753664092841241342002899147977597496899838196288746841971940226118291925695021219737595098792713649451517152736303015106949188839008202388058599638690043076019612883247261195784467208103390997358904251696918658654704562068747330734642984863068401510965041215089055443599535483248181039872327161262462317841418846049938735935846043390183425281609852274448492540567378023994427621602429086526719394737738977587431249111450275533710655233737233259127425747329289850995205271788261297649324088557009853559686068414978415857760907589915867277025216873374146270378174339019341174802069642303799519378427686650551468388966883115011204619114794957992782386981153692102871253761834634677217301291308769739237574059965444573167215632206729081612056724114807631002936959977884792220826122659628078651802570895245351867153883639893072517053754638053290894100655179732970742566362948314365933662132635141619541658480286063937933062420712862879641477560830680864511756312764319624070323031512055086870163327737398332443585063574563963174001530619367571970750179303375527079419464093452909251394351273007020272713137033826577988632211980165590528100320568343387185347404269803903377007110315079818735542206211223918579574270110220216219256314548420474915853974263200835795468649568249289917825066909664314199626529559008048050236520299081262816144600821835345707499383978646698241195789107881849248364726681001644034656346290417367253954097304270178614580598462029541624757678400108877035063459810198383023651925206967397636221130819718504876005641594494837175640734030680683137641096664984500617124960974848922768408909920969840777427955149510950627487223737400622677447429220294793943754673460739282030150937511247006356170320515731712736539171272989048037720749521259030649007145179395517668870474186530290507918539456548380352549791358373285044634089178797546421321003496285963467514109718103577563243895709719301174261930933903105641546164657459611402449227795463863465219289659220289350406010113354354120098816931119854381603977052600372524623022039614643355643134321174148294203722727968755447342647884741911108124837231266694168792753604707943121289308999720716571482068999021673077905926356995773132607707632387530036544712791501776880322384368459479761756004336697511935247904616462643460229037142143186940597061560977943907582832712410999747152982217342388954663683436057652129559264939953217000432151281635953551529049167410997022465273573676246559878834070093610836238809798258534582022050603296939009037874823902187823679384466184121019201408976260423238170715801143565727117689753477622477435011779999489495356988148574770252617692044995470028254265706484813720175721598381116887907028897892065990988306700769631387322339986517483799799325122161322429683344568809155340638291678324073187032823378653768028205568623362194676037751002666722916206082993730476430642859528746808796029396712859727861591301930122873155707760226194977497320906428771096080495857804954916399370831614535877849128287159266482224287791356029388773820310956977113227577602721258121523051882653581384214859508723753683531558625423243947886743738728774496033194678693274685730960894815613549195936398552897367105862290735695624620053073360687420682515492246823279567230876202582170356033732427660617102886942915634481231919257263160832987607116177588848845269004239692793346184389146422103421914701493300474675788359690588909299825825989290843423226992116732744481130921930780127406851575287333966405260763758554904891541317220603580366950929461122460603622382465168429998484071105920157649661382438665660565162146640317753116090989515389197658760213316839520779093600106475200625385509164104420433973785491223780887843104532816622077670535219630885800594326894835904694007900072842237631562087966724619223924514969437278239184839069178172929717732146659004852963697830599315730861877223400876423561985039237326367901413676095057244711689136638761236906905717216074656209959509715003378704677854180318260063311443724176287653718510442465467419694497247045753832131847954415058266529164997416382457087869381456146479926939091170385081787134526171917898526026902102502271639350919474329505414838109164454866239988383621963418484116510351343987366485101000829442952862160593714979902814487134513458902976949374994169731620035929326465901975056019167190671605394150197147495901277567874801475578488627538921626180383936100071133081069322881441891764117664160256270419973862942051080757607582437941389006116751131234948090038621528345333092206808992601736661944013033764991632384440958946700819036204427009083454416132160078065272094281080315045184980798081185025959974243725472530426109588216002135692566257482379636194979273381501744735768682969664450926513285226901810866422158087776171759988333120502430159116017913985473106722773596378627180529674554729765877702573084242135817764940800743837815561251429433660486336199872312177907126307426713059555716123701789344141904893070424853233749289299744618546552565437062289027745868819639048902381422361665233592552806633471084693425704152655725580656676061218174684145418743921994789243728950029544667058796361453762380646479383182706585266456687607966126011015194769532907924700187619136229983687380743040757206878714211246015432828208368405877873130384245576469816981450006820374709802144909438455161946725753121598797417060410034861208111157589363914284267297217246171411050856178131090267058908074339257311668888691641623560232828143257373086747012283672497631736451631642132174209798353287107044985324804646565730518399892341318646580605655328546104720675766030843235928288663876251285903823057141404184411917536876724053255954329391445820498997862598453293088808516444607301423096417753776129682488252629295648518682339856098196127294576410602390889370460302305568278926524013099873716135963045677124425898051496980070088772039299498075083250614386005194336084040470953050515062761246932085530948997902855367298167702106609133936855202538807915685862907424172140524367916288642469573691996251211571311426517657455622990581739440373260454875192042562476780246638921901237524563928126237529497222662692630629091078372244775777907238140543486418706857753383946240202430877941869537178358302434901907110375514645616074605212733942238757591242411639272647864252116719993850357640007237784816053043988457946254065724708805898562670535355789981058060700629046995289832417672271266931861154417964715438232716571902656339431199435449393471007730549912671618389035299468615055294984690224278652979679887168363619122078810008439065799062521382570178978051087304846468416762331126020311165986106863488793489205934088591199586136044537174428026153520657783839202983994860143738859014558577609278303961315342370913899497549943590669361690673400035158987636044133494486103287495491482544934026883457028824609077189485140076341686767913711868627408647123425629921940506883012912782197663526816374710327051406756179102665708898513061415180228692764563330933779329361841335550332330210063173153636228252384790120045563803071790991205685454560945319622741692326509982753937347613181767471186295179732319814388779486181486977391232909982773732957768294983430455783181867081583923479650540696630166834589882055199315928919953432624600533915500468940646823117552678183702298550423900243349314471883169178544450218967192521567546857009978373723711951739066062772271397554918603661665847488134915303880083657003033241762412773128931993261117291760692587310467009982804427632539802768593686409706381596486602598025832383596824273185793044999846499705074577121126076495360419092655889365711182445964759944041729144113668255376465110835995526961702296241056738690810045502097228083501337746351451826431425741863496523061239531215212717709737137994466547619925697544118533582404799359295593416161577780761901604142955761124647033746250547692428887031196336650979456128969806043054472713464906606622691007624121946666816538832684986511034454897122246083781030884280856362080206381524757017232676622917688511104331415831221073010212567678915216574172090216611943585936878962873734252221808786021673009868564810107831579294329210187122808668001816534834963249976790748768789512918132974239261687258842717813104223974608959589737704403022127906071733850083841644851374976619414928377381317233687346399200009374675136438610853735978765398880917672934604965632516162534467364215769940556688929812763353218349637383044422061873241979851062841643820501532998364353663880158033760582277150984376415564444809087760581523602433127240901759431612176604698601552153350027419368084838952485910616500886186553932415606472740548851248794161601314654039100967773083290802759580938347630896161156662405626651534666388557833368849428125219389966579841497201089386432944200766968508036922833299102024331814478577409715423265646776613097220163477263857315646279366805470954011818154341522352314841116952683523302626363996341339856493707764642667085269513992994807542286903928011980061321686574928307757588037126880764888740782127614180188853109898502044969723679416775291423607672650861854105082575458048731316255030639528616876982127617094577406005658909397792944259648564406539315356540365838860320790171610850785410955246342140855714907626591979341909729243465035912086693639655513292551826206565863766032631125355224796830152628897217350500836360104846775396982533684863047456425136378434797245858232497521340781798097002864248010255862053422899553396315498020796214818114555729332737306453110196269094511919502332718352991628691319814124746675082371456137733745801050540173956170855120965456564330449165011011835717863453695046236862707302875133895610760248879363182246572383824475608916691085998092898542075492171133698639410225087124285296797151366138442842096757666865954494495621847523993943554705724403009213763744940178784834404565073311188760736926955273806303246027606538768975772636322221683495056613149683229951916797835804990939727863192592895893919379328580709792991245280549661754697904110507104966069848050582334064028875752105555251980464272243790834008535494644090307051796523059737336860653499209159158738956252966457119817259881374254276815135324999114162379407855508962473292279031724400307759113383574832192990701155381200529385953183551793272678364935716113267461695236431689893941709653126452189392128183325196128004314462846854030056683781095316183823819483636120240012549002913019590150204275781182081766570369876655180475391548401021811551985345815669064105597252401042699672101566878692691962943050594622570793549497350916389004534178177723482517185872129251185615012188291214733325025101605271476036625907954216171992279313066953798263324301061399020284871930535598272604349766825639318164173225942738384953296244080338759837898699586888616013903243309654243726654276849901667551196357299738046975069319084810629615969393795798727396180160244286513627854325245029027836608081445273328232151092768149808920125367674547318931209396915823109390687206437242053526383676970597366576438313195502652226284840381064498131326280132607690536918492906969877874568842399885021017644537923707431001062393787962798083592156670326480936362980448480498528702730604507980932550139168825756631593243730825323292546567993049533052198089710923522621599617383530699288414502793327600765426977736253989253310469562963149784472681905769550836471340723715043871167363965378818006959355062608005114890056611044940656893843519901087141290119032306687586235062089889692939625003019722221914535660339689048565950883721651216740197781854982635522841592541224822774388049556641531653181715614610807982529206563130231993803659357182939229568810269674802126440946354328312103722758611595491591219714616102461920555741201733393594789916294438850550579570822723033999839816141751736214770605094989169792738821616175936033092030133943551517424182853818687135244466568134867498065174120506046386267486611474681381949931431502412258699315909760879477337561362630139384721744720672688497141648594137309621193873721564909873944412145925780417716939627185062411505660859716676875560761845792730196013400901856762435102199323444345446707571788822649471526725722087294890615246497534681375612948604643978763911833412067723392154443228202577465825751431431130706271719170701355326771154037966822662037892842890354512768276625742179527976770095883605176677111503745535254305650268834338037833047035143721181235509526889076557189655702188662900268613344560676896223400324342804598550840237032052167814668229223443226472558763240594395515148187328954506578235235400847242656334456036023867112471889080157584495246633353328708594631285801530146852191203402045777233832099129642430479633930019138360201793561431530365809245126325121262963798883572652403560543684647200774471573514541120279190261044250566103572413667125699257955397830898893990376721645319450870503243607024524604866336284946967150039021217884882339349782176368480007189270030517763278939908202299583373268724906346352895899492996158273164257865003523535374429803066799562544245501944555967868947863664891075078554878225689704710168235109720460912130165980635755745164489393739441988408896419380731111139682806721898089094337208575545424027857873543370349844066301795133544768500211159323262095646827519525226689885947211088493926423579595486435922912130480154047848488679088314950395006264382682932306659318790672422522683349329046606926729990398986395455378483028463747632679050240583301415396534393968169607400849389227787437412458637519679286100538104153118263293615486221274124011052217126023558360992848629809831704217766045758874748655261056953815058818084835625405243160636964751405567106555594995021254955298193438842303703468427243106786928576408489447489311525473182505708409389455612490116814218566630045471866329809958273791959960783904376939677159063149759087705452318469782673760108749212642134909367945740182878280585180216785479835436246263022586909824057500464189704145914772127900982867038821764397977606693548596965870211453862337855688396520987899640821958884551441515994526014783917126047563983788356597991630253164185429060848601798951831555228003620783211202855093027873804514647002388279286760117039117924053772670084061434272419889601315308877794299597477886593281917263973370961868018643736334587612578497374582070534603961020457446414092295152363577924772306338659647809680319642729240950599253153371707905425347495892900044323895658668228016412611576306344485319022169635472736015864046693937670826738370547868759972717988817460680851392701243837830514246006183952943604930171295482091618895960998485875717778840063338518046688230175058551158658341437389042469220605515105515210956342439210134180818916210266924662337732883404159982176093348598359759347902548988738249584374714231557621444854577820887775078365047230730138936944413159459918746480351955901874477577427937635449687570877511627670489705253730638370291204605886901778182824186366782090255212267271784673811373430909779423528617774211523394755390750245262682289992654091994227433650591684643169442700881244120069927231905549944299096571087780653487480702723241130763539917671502905022650648381677881650076180855247680084305575812049858356548523157287540191488010178532479449889138581566891953243444569777883343427583631992958796775668703529197996398070779562528248591753455716255268631313359011137115817884429653573577928672820992922707278069968375427834996641665698270362419227555015318926612012280735175201889147610282786070816403189453814817233678262890574939950119010583593892642352297632413167541654573852809598410385467352414844531846396220424996030041226637220695300520972127766149562116479482506207756644193820258686822110435313221562361188587174856049892574522850149277442814306852698068317633159941373903198906955880949880361731571358732927216028692028993261855727554837186489067356937476276441271136036183582708897259958351911309629617545100614118136521866861011998491226776601080665039679355092144338691865042850428454320960785722826797949123798331410705715638807013858697435896368348813976993417300344008289312531641332796022687816744507996382328869455238173923766024277367971833672739812053909042356629700307716569693499461971876418539327560511570643814093648541299415105907206104176630548107313940671449135617546588051414800762600078406502303472481111526208987098756493931595799941979262392286619973864049370587974527661934002939602937134926129641841178308408452887397837388287078271483845551720447611217858652028055917621008124619007416015445260049129580523820844910244860531938244138806994209627609684812911183738460736673370628179429877395465840892701509443801543437652274796917516392987791946040951749737011287160767964060402347328549066925913156091388390206993429644272713836008331044623705822157078116467725122489654428619104698420803405735366862452932871459688217236518954039664273189442703377000080392050499790134445757885478657722489960631118618057085491351243315608186180065948700083553663075525930633434099983963661256151660421291885288285605693391712819645230614329190158293680192301424433722059166152443222135975531019485951048507133975284307469182349738796460558106396991266179993933535579967553982407590427618125284963555534560773315527612533072393922442813978126058119100198433474653946738578285714920063033902714120774058656674124509700557783686754379684547515020515934108707002134913120972163180643392804617900177766617946314801961358967724499716903344858843817373587292021115477746301532344307819881842712317853493792004866259593165148741993780445117947098428999717135283223374060697419537513012807578662898362742145950752144481711460033684412810295791047001183226887001968409164509276976275796550231405381500145528485496788677970932879338347839676681082678045801063081605078301343196724293415748221336091793737944356357781655795228006511933199139191995178358584895207758299928705038424179729461702854173931606283678900390359826948144136949653627929136642907357799642591951454591866100284600079146698646945638081866522890863908683254067880384225929605278622847777621506099066209635586433046280207060668605238637107000090125578652442126462137886921199492284775465845834656181487504729812998920106125119435448825138758259333463748828599981772582879811163527834259439301179395633022778066221572831593633162038418888127022421826446351183652078314695280869187366645514918995294803519251291653078028306650093492925358485566536617270148217632021889192383186302681150557266898696662070891782156532480781217198238955444471156487691301025143571846153968993950141654573174015141996239603394974482548297802728357739921938600274061992332813177944909794781559094164135871367431950515165073453408525097703267385489885682990361626471472785485212477410559836026476716349205519428569834037542032950964295236474286562494672528142730715547378702205178737976542961583221489787265557471047439781858925828443774642466807980328210217817701927852357848719974313518048543026709248740464001283689987646541488329247535735897406382839117924419245123352606723260413484436822022291715175523384238640995289243329283278510004281314456923040526225820985584193388923672944358993948435595173642345474863135376329147322492098100901525980145372522533940203079644525004991965242727613364936620985277416700377498164151353571907449085821828850852421949252569190101172595293354024299519536693922579816361875098093921803475203891331836493369220181187281272621970619421187485501016342068946962244709117009205171690924031914537166434535334740294986515327092920867838568297610348059246214538368384945657132340220767283478296274380420549911041261872335384272688712240454598933965038777398014826302645670018987905132348103938113551281323297865376486001241992387939247512658699285888112403102460775363921847098103481895974097100941746835414344692758917561997929613337925283400678919562649284229317982763163713911039593259433849664886320709817763104865775084343676772395344806622484553503133555935488985316038099658024217912454274563291375048777781631713336014798411551281068794557569247751584583511911170699269605345349814129384394969653293900034007307770136177465639550853886236729317578591800026731791241738807397246906369296791231980308391328395701340289933968730624634125348401189975843930628062310185504813952039600812648614670951487973932171062502977904495846258752234985343403553226927650714161804113826835734184249364957282140357044949253534345492747521251124054986341701905316304948240130462450453633984960126321608256183302934586074394970874758942141335861609102486762168782452539268025109486431819192457070851262966314896583074078994820533435716784579020422329839674453740755723711816158045219693448491818141701478193495753111761465335454420288659794934756578157939017356884611016423425163938879570482035621053792988879492112338668831670013733579017280559419753928490098413757048147484774673327307528657152581927389280442707885897150040143579352364827714227401022012141950430243856548650677498080583118998724355896932847119545296252176379424260005407301277715558492120199412388969707225644731280981403403592041382712174568513358823561298361759453883304633468900567034831768463476318944803690358195742399085958136064530649644932827950680769124604062927862641225562464266467211081795685330233400384252453500853357895542577067593986530263812140603192783898407284191676476352067041960157205013205730947082710569794174113361973590240944505324363435717688755256453587261562381152341142174869970835647054856740683078379367435811613520311940733418409218764517494370264077589759236095018858168561387250482479055760223762276067591284104705699424558557934118257567705033272418841505383134873314128415629709819665401283802757317103842489969176255367604174129769391974026667167189356328154049006108598777869283722238038425726542437283058058854794780791429699790720070158682452805865298824565061300886483499675318473277105492629051090662851681164140963773559517987947737785693764370615779226830813909037416170106011981700746669083342380196297151556872587456881446735788353678070647849173785447749683185133914243355402854560900501257034523541269401690569730470911803693152901069541096757639545514147074008689843983629737747348740646782107724716709265694230525042821538058424598121887295955584493907841207921480227271630656933817572991026838459363046986645205318012281566083181088678963988684724614482018868422570119686934249783327997782879942511241667097110216963058777609558495613192037443615944910246594177160343622648603426100506965367738616972181430026017633853571397379448598131132379585700428719724248434572573200790267554185182487003291050636669605903290312241978458363936803555416450129062159966952262246612446614901576716014454534544962657660008932481118284032043697119785044932717308603815033511517364277360528245338133946652640839120675578149794685174949295581588115597728515634711086761896366190580776168494629981932967030122117330960367039468459582526278779415805647909708969607125668190920242276988161398645690578720582402455918764493889016404456439308469828978366976340714473689007011131362439329650278092633585261438289237618009503649937865517042606546629008575440857447149945954361700962593116403822507596696204702976874554629726559756431079717856764225400296276271149426797545917925867921180580510775462942999811668829300499045612589877774226686133348447857047424661264691069337603896369368011168014593119046356201261736885697860083415242014990679392317349270927565749724481994661055459996547894847736073326200485553803093958377327111737090767405485426979746343627415750671249583834089709620960583272673645543887797415458019791832044281147432826530477825534345392147469092971913849344392259042167908413385017774400686685081527443118183265237599913084413200895609064625824370242205746368908368812118686931173650256428198604720260266914747516822655599428850300018123541177321286885470379460397108225129016372636194021977315406669621487352918669948569521413113049171189703668589587937970477469064864849126832902870540133674755304932085369867901032539288248328477665199154714987036458478989289876929345379408930054915868887901735585682712743016769788349504491394484172709528874138231547590330931050169034195963363911107681656753312584615872947395152537936077878047107355595839280992559047723374017087613443357321071583381794256598457261932651146087526068651896939074128250817572332778878920802548336007050049672815382337129631230714424226585695064410741403479642171375354112060117750047479353332721368656834196911476544356198928892085088984497927378270478487753971802380865670865588452962992138020365165347115331474749542732994205354326166676378018107929848816905600018623687200059838755901243608893049326101207817868942354726759401139410005627874075899414526893100469031211036102661681398150457494026705690519850460821334498266271704139352505294375075625209602982572644586718339579994012600722192250210414503192109381948769230553694695551763848005356222232684705183716626653698854301716785227426938431679265687814081308576390613247024873224333993463927409809950887766220789523293800343774956836704457795605297240663645720759221328562425093699076566939956299418136057496967831966291971904941002062714268321033160692399089288788441565651963488576426916471202638410933507325018581753726747581601551097457262693394415722973414284683546601720285367891088981529967322020626203581510210049188316405236327241730916741149221722834076190196562509313668066564533183205139719691764388207082234481307172395268395743168479685651399756045747457801307660575589212519135145827479522410674200632118758428927975976917079775037988848230452437264565530464933098131082202988561523687885024729946304627185527740379424088728029999644761714002752556786878276118583027465917688842826363515001985072557525146662550583355423792767076723007751000941297278991489568746479962786605286158858996940078286738586185033861165017118909760835156365403907404414072156679065447776299429998429055825512500224329102081587182291399335436316646420877031471044530063411884195163654375498930313974336067669912817810144832447743204758463979324468293981427513096722636591283147496218912471700185721184180786375985134545428657904179119085933229747400258547098500125636291983608768125221007928714196322525567894394688071708289073062108777142522744786063473899930128925888939910564242355914672131245300882646837282189938215364691227275857361813466490959936487408547207130648006724626556209266657276385783189879742112214257955811547837822605535028682995750741755328853052450398403346648762875151742233533675628429259623837656594422639631040710888693567919260079867119989141372880628852819782484630126225329094049810792615286313375428608855496913529418995381105344011094781580878753881231632968927789922657770352153517648852238959046817898213702118372014009035476400617698072201039061008055540652872115247848004740068076441479083042765847811558692625159181255048822409469714124070825281766150340210163552263096094373269538346131235850285618611818822695492239100679052065176459061678600623786358091973068941776569792638321389488229764147909048768172588787346217248219165421277330616506937587648858171378089646009513152219185706345281090768205984717742953253054416838677283717503938160174522145502355242886003246772801367629260804335829767209793261819413129004722853423629368548245518263650505272611597710603559893862391785531178017754299364799641770306841144530852869061634173549931377811366825476193391609803262088496047698796139039341780370212031264147887275760944213768405305290973057460890502468868694434163333728825044799257414073234680992219888132844944207069034666248710010574150144303496115444618101358391188677050805221462508844097302593976426378276499507794258705937154168868330021557255591851999597393289812466005031441936491947012213108043187939353382067627117437583348771898899031256670935193453580292158531767449775964373077271304604604998180992629089447765214514212520227295727473782156746216465624032677443954738022440171679387316109412496388281177256632863205773071723429806129291981028295713071754004796838062836900055058883942459325361755174877110947613856118268529563645088739107363112893843506634571412727642977463058300511073472652417334850768550460768916351074728588839826861045908062208514221553116939371387110612736176305927619178461508404515166254301007691470792474144473767688627996036403580328677717929466613662090396594414022034157473698095532052127762826452561830767969037038378583351299821428173288924838112712634295355287026214396221048479089138582231484140288697628842154517325327582306504763024581448314298320508597081097801449517069381858693495831052957003465682752630663423247123374416855062696585288472071509198402321363518315457962482157967086116528383960348626628479851819571106365261727828564985679857361246653003835211039037703895192080373631802767976972798752451284732454951957691572919910949405157121322331070648405156616069768771199183488517259608453306558513067294746717018299592149803221976071090416920494275102543430116699638600399228469395304071377599347266301373717783086297670485672236434310094812636456523007471565732800142670610596476711222328332255508644025541446635129179619877024945703803994848163662110534978316642169472892907423940612181367356414664257342339804601802444669704886916348797633143985331977366884526123701679527850693086857286941066603640345303039986874659179258500032948618130281412269608190439722180624488326274303671532039014968586422820068651832114208739988080917467317936338659065043017479861758392765259530496352914428109140478901479521239722006778372103479896898763064299865100442659919819741814687433521909853301087902279095038437167178718421724775291278816094489770168292824275989260532105876495965015491072746727531694852029096114541070853126181755682453217712965790943898485379914011908189396350110745398389370556806061275083569488523449521650015847751608283606494603748084277316691610356271661614765782254413394229517588576169453958057916293017416145436321010800849868739472561219517910177349959969367039347101415590065817703675125675040620815405465766477290668715283157193195443408385354885616831003402240401638855968854038837391129030182681922124272157930635072027941010139375683468302268575814748766002433530375396558464768796728637104482985118330049932408959981075279366093359115987920763701705767849934933330683458866366486167241232735336501037755905493013338108543711141868690848721098159077094618075108108271146965917394421517559540461409794888201253352924260054790464001907923064490045025617170838028160942848703722464523518347815567999971586231832228854247023137889784565568615983385508867605586791599348609432737289299548211075727732820267449835895104975554369012562562434457028748700202974936345594698779457373436993812401433883897596590810577876329223010928117319220564232077982790047374371566971690547798991962393563081807939866620187151532581868737542352752013188823823692542636042724242377291522548953279454449701713539794210556974104538511846437852832210927767629822272330788098000134543036326071280046081010553702611356386333978850373174438381887831350995513238367208565021791713786786043093828025758347845653570709758853568731198443706104446728171917114215385507176315037447064135402507817922769737944197854687623848535023023019373225127483859571286546029475137825600692674195322963023376270104303590203196888081897251340775935956205626506961147656643313726566742598076653891331691340702243607960338634702300523135447739680124053148600137138924042923459352423994550698319008154431929043095279837632519882742063862757473508790136152893850479960593322104605470730762815321180968641962519307241940090871965005967321371401067216850287003165144824057459765395665091415109057923699360613886991369440478570991678316444923689236430226516523794566216720838010619735892507425864396759036014001330217081767136152858487443926423914132193359726367171291914786334880296688580223350358870914166373431259214099471448981563137682275574511340277104911590266414389493456097301541515057920309895518650726591268715554059418272806037478724327846654908578486774167908593811741442773862877916960597205677476908630213431647717949572377834882072308757593228327921346303703628702455938791493462300226738465736164975000580448079347455465543328318640303311903822951541497613115911864263227524344331652381676629576130572339313930913966847011714721628500068028173884073681771179043155076592425301783590650122453949430345426767612385035108211315816148776086049484373167928209755564661650626078585274348374822085818421039104235939824928117366300997032435492582530342772807966880621230619877359470474531142565591002704682638450001879050017941616540747251014685555981241624764652521608349661720976234752753111970086596139808660159294092135207551911456623597750550238592705732363995926326179292952885785650488302825607591674521329930699537384715824728508806140580828699224378623164846388284190736121947396992905532034937191312354582669324356126923898873231518066701564521073662750400930274836864142145085858429390306208488417413499974728922646483084308891696066678739079854805302594884908654283749453684839450156979025801868508176651278402031307931462073224110602990765719478941508487543929091559475896284347900620166523778237142141751082133543825948225175011898177889601517703745984573985052186812778627390412301002120134526464053490846869335369179285032318481521739485994634815707235108902170384783397811391246017614331054738389400623850107541638799863879044092830698480092559301182596201403001643129147582287834405061101099212701996251863672365871418856279370390341402746485822106149012939495464051751856057927687407431019986379557128335971349632465648647642387410073835378891805578969517371954176153852995137420591810291571599448157903533116604246119183091549532501586159642936069459824681174145704400903179246202730800388012833759641529611383164299472623421333319288422101258414412499039790415469457716375664859875027526060416702165164458903517446672458273996462282811711005222931404716719962822532585120174208709607937140181615276132913915587176367704668176048101345141705298094077338269911598966708867888106487024360803628594145162745345650714179356967285126502400207511944559494364202249769118807033413704760802984020948900715437777641497653562212052231117478952076188752239286557085675570771261299663211446464502625753951497462774639121278362824879173210866301563041631552244367901666122743218654802404880244519545489591303526560998689299415685350874806228714425915753934614270156760814559259691851270011534851078779983811342750908311749365025717713526397790779505496747168791017994929149665851590910878923616717245534478683854013365213900567116386609112731095261738376754553258055854424668959236979006730508807629867452273020875124233505543245377144705243511846020281101087408636282316677550765058994248860554420048980306347184374002395650705441649617012632758028011897170050787250199197014005426143839086511693471181118110688052978227414950192216961156027859180334866289570899371759144490954910538541598441895162124038177337441008805458961641661732581032698618865281148747411601019668934895346532106193076026297980696570438444054613733642245314029662964259870066163830345793816003055776232908771780706226560859020669801692208343364921751261835246256585369875232587178315859643550917738755719808568007568905247277419450467240162892664359245234728302232387609494653658692016620822599705821071497396622864827752774976538590057001816842686731145470029275578468770535889007536125991662882554409944505592884818174602751729829235331800252949358595081351806529491833800234037321923107530417240939296511329315917220523992950128497657797597155745860484030662664116656515250601165210986380872482408271727328877958622408105902960627612084858946309824011159477970138918963134412927691001509210273240121845247620582612224705936745657493335006510317321739338531473289312708670035813212471388843239563395902951351566847824180986879965094483645952520872304175753032501446564577812185241972799247218751710962549914675762451185752366421613804924819912945486215990789353408033509354607409152799258986382525751132447796923456508158903035325060392615079395427261248085558486787190870531056554070516999529016522027877207372974350685597060937143799055340988393793041280426998607983060496859757284613645975038513692276571695067940917359776041974860348199899283745627404401159861654788993754228666121513508636240255128159419941431356077490896469378760934490251118544296814513384918832299139836748686278311871156486864042019868196172504650222611455657222969923442943791510718035349885200453441421492954777494291715078502874472146786620796724252334779601741081567024432968843762633122329300619004437815958566209286407605462782217184208869436797565173879171132442130439606714379904535993255964217000044510776809932381569733053681978279227979016385749465650300805467405112520926370731541886518668637937725934378852048171890871419368864459503362185211120857758603830146025979976556367292965550240945413786471430204197975506470284203596191726546729351856639918975357675125441672157701072688774254755833225833214507487536869891169714560303358407016215172841077856781656077494129259971484357307931183961888505337665567810076587089574515609838602336884075645108547460956439364493766814878133156409293764420300861516999576452197830032144356045841238292537898909323140690527470579207893246775954415025503516399981148431125254229571809473761614429215697923741019112134345102889283053032463995158231324289458577290814171872365193311221799153588731698755190305853142526315977124977555293957297562368429984852797481436890985038017680382209511046365893426511472296492431847612088571164026492836115127595848606672130573314582396814923669556018939340577795169436031252795033911567074295048951017310909847511590248895355060625954259650500601756938779248648204550809144066671765366341971317635487749096348097106818077634354493475161439775443798716678073412218464489618875410869424180873351324030842017979314331474833403708943058433251083935227078104634325035823627448056095958194447818047525636536952599084583907306822268126940881538148295625165058098343618232354821179847069037935669390723696455035678106305819577623030509352612458497106552601989946080704094294207503103199974255941587459364890943099252042657687478214586414213355055993967381037664560516938615417290021759906384800165178083615951928017528034489062635846841852925041129306637250255094968824676124487824445773711307264315004174784089372297296006194560456786168595166546981065226854207809945503395161300319622889665885016138301713236168556625078617485037245540516463230926016344937589509548161690095326109435244823753267198690541189488215793100810469924894054139509523889652134779076056285384574184789163896416082775842025340024565755196854792975787715851777916644168225142362879329102099795291692718357857683010005412498166795593636033351478361394227691881196960578687147755872824621203303280641567741091139065068262810883636410812549072012805389185261571929475866017169629406612332896005293100262103156990790460574018598101100486877496241600462519600160851266700091754042811798210749468515168127792264347528237737417760021390293101967748776201614775279515643309951561833336990367594707410298877463711392532971960592744854465937766789352072067326140909582610276722145894786164086863470860110985577952739130658512381120149268320885934762503726828831305115487970973380463069582300855870790843760950634701768221163457996411765155630951138979228408032859858222032537121551111434098042075141604785350022115509472389438357592908526276993607531061823082436683395357183803769621868143789808762243487907668187313916695209943336872079064333547473466573869494574260025988140983601873842736369118470797638807857199754747262466850672845923603324095937874710816264582872699362491217210166619356468554703365218429952793810181517725423277728410321610195054298578732757713016749084742190747090794967238007947033306132757421453611568640630040930056910000923252968461534822319165731506155924852159541850341349732074244877913848919421193525309201020676509911121426398962560469762252482289811815819448038100049844694504398335603282084910458379585762363968407161436078100732902173963433527876353911065669127658647530025715109578180547364626152837501768444774122246254830857930905643396458269385885465834420485238197757276518626365843095538620339113707477926839589154593572516869781578936118272093432779720319365993854966859275135954490469134284588176406782516339168697633237651989004855688522659308913558894299710931271953054980697611403704714538045358744382774666570155019620125709060703197690781428021389421257666192733461279174202410438070461957702926556516541231840095338661588897289370238190269543124532262646011621175281391083607471220747567263859894451975338756533700107698490339111078455225377896395479464611400971345997600207640259834505722867794660159532644398233910907747622466521857929169405638064155935065059410734235860455416829633451057476345904397041717514527785236247222088594290097121642244635027503411265265247506425040333678096389327834875585713160700206582678974517875592998890006611332425310997501017551377695222940713668151627247067013031727050398944235442243515401936198661445314249162614233641859508978283759452677696865345057606014629905478537515754050751127142635150677681282079358154556501662719640737807796056823464947324428560809193565007047898756429832727763721293644627475593033846756767273379747050501598290143865325869501771991255611731407077084955201527320973871826045734637853564820180162232241066987778577733038121436891878242392424322510980782928780076823638499802559389870008986487109364858495847340246981040012710699638559211484687237292930931661622645260990515223144343373526049191598482691770307291270922116403967619773239622031005974805862192684178534867915975791110232820957367523930096312638769451000651109482765264128347220364226052182406169943068658857010578615145639662962848773914100000449504001009006416669736049688853143820469903884206784118091699459780227714338985505655572664749058555826361590880492646903435286521552267287495584722866525369769602674209735934004541310086970709142409337548004726474623078763505587763046806767326272913840738866572939205284644253941905239561141508177589216153800707717086657623685439403153717606886289763952084705112450205907009357113070100243870656269807467082820498426287155975795672016272247130490736828005106828224053150970651905544249665559258931564604665384570067514842323596660067426673963227180214870432225100496909537257228197512924560875541247101790159908276272301607251327551759409159738018832902252830304912615220569140203303185852249330816982518346962442858800058411630962436287144585882120476142391981123854527290896883752009416472795243322208318524309258354446468350035026149065836246054330426503740609419774051283620008642566652032417066263456032010063349912650778401378492704732817903618926434443951017181271602300234138891850386520582827960667753736710713533898614217740772580936750088967101362861238420907808071098380986144022567193361573864918988950215811730054233706892877147907241629386125476322974233934682181742505345441471406655650851742629088633042167090621743435302889407576104855629944140610799214126011490746479297466974828283492979434672075783604346385631846525016480183119381540237205029373205512325949777600717842030914232861967116348738665146593035253260088954943619183896642163526745646094533683593646459836445755990875371515545666976410288843287547731137485400165649492779398108831951376888545759300871449905798900038526284979007283702672639610302419914185542519888132439118304731232860242479004025931657807289239340222038457139251595062801532015963048203427927968613457108573725347127448195337756699101598636904497072574202176126692241693396737369415758761561327680551363119564149098773776388025650909393727749500840022266567012673731804126540119773001223714821095938126216344435029159732743585939446362130340064127273452378402658039226735686244493075599376173205448140553514683871758941958656663008443650418064554902153659299349639240495139034177416426089590542793373990177339093420131411324139096258680862444440398657883791448763088889178386618071232875129843745358880578653992766473081338496513689255398135626659558958885739725386162304683597958798169990282824683767507801657427787811620851215275666906182920403286037234557921829337955652967519880271203758000604828631343468809598779630898911185728661001696590751285660896708109003105788355576134683257694964874759657775783194697791162113988003690684528108556881308995167690573759229966509138493021174052504076419258832830507023571645265206424068193496940933837394647141788804674768002789710119926676772520801712530462531936518626643668253599586870951361227269932631266190247880727271191063057090844152873638195550591306253924621314109694314870248862385505441979600177192444684453985629915687694586045448402585626079331802800271861824272613627152029985598521969929696412954711691149642249187796547146555959151050946226402800534918901514879406360302537095407909168414774891076650190902230087583675706897977613540662466819613420891013928946387397690311019871929574554834100081806069945898246799101906019561527797898803828680073243008582722111146515823840484379188932308940646295213110084240627212132503595899522754250977743721361365710484222235437017851239784633481167922131931260884540907193014716178533187308810691449095120527495974361489476149810530495977001012303989948980564904123996953656764034527877468893403966211226829667795231804830283601565335140338509215266383966333040072214478804177442326647934730310885597196724492403977731488666425344594205455653786304579540206315025718221661264653856839819567029412931377969923158068075380083231333704890107187996195215355031586554038663791672893496941337307198790312089930612367872893494982866616713033525677353733063106223045034310930328856336298856478243561549593558848404427776116794863034005925900958163764509839107828817323686803037961427334809770031783474271425881665044015337328111691078832315036945955285714752409847564171675793668217031438001668162867467447483136336022561943882474302387952155484246622493222168118756878050467442937734269700596991560455901072866812207360231151842751632979965865829817544503127914710934188257214819469989290057314784762514855092491220217340215779298841064038671512216463245962152994648955415493742570596544841149861896061725312138511514025616795965486060404090190506484074746703577951071436015964127512005830269027179675522292270601106089818192150509595582680546977577304737581940092778007691125750796997104496428613000187113762664803385859387526942079863966533986267391583601828820668666764341266314701724078236575995211684791032199931422214738610899239034270475100458206568306653953910142591485671964919949216169171183710185345691691689741419200499965059502389619406127784639865192053719457350303843830858137731776524441293976608034776345935670410849674232208396958462506062144674034405281921818775472360519479397669570486156825456251043079756716594117290018476557460236820568767821601439108488875967691974655944598140371062617403819208072854797292245344890883436946955663995503505434060720998830680978949757679886939043611453122047320208427568860822222284076358562642451620237759282498725235247309281054965468930546914370861907619921831619958857377939037083776257474986240285690837982938043446673440732513854090121000933083637527910043821408590786729604179193422492903024655274746881422905844382345935300707076382085018453696797703750659909495931459950874264246393924039559924216891106756413621429745624534048306409657423522520351703854495519270182963137095077066461416983527559909794370491278624368456471562775866972678180988771805814503687038583584450988857179529981639043090304414616483962533960274837362851497118278588694899379604448813924870608500069667907446698043226369341519817882611884440033271736493580715529345485533552667217589386839863688729644700112685256730693489430116586398543317822237089675108073317451434267353151686869117277481446260789283562406163433340474904315873771253897986636152363353100723296017162899674358188948511290338590509953877254508694039609470456434638314722622989369458918912970391062489399162909690697611484636190104361111727484226399781816657162240193927344085083016429729668782630378110622434675795509529118676307192602137701886978731092732024031012696761090649741382202644903988749904769278786523426069980881190468129403741402044692663656432882166665577221421417774006545871353196937368705982594870485434800515365048288692799704736523118782573715240607247824709726680282939096480834512922778357377852258272186697056115361754697132498204704191523129080284606338531809790911152019344515466031668937372833304691146938847489471804688060589342593593332870351036232627257035957719767692929667572995921453673321809544384078052223672420722133757273623044133090107978185808433833670407339071825846870167880695596581343556153591768721879990699903252173903386878514255751073826100669307453567986633779773728971254797496552027665747399206148681440394254144015272000365618607421559274862831331378076337858399712761984895800811516041613446657758913058891202671223822363492494381814758986694106539842072776028916402811063144516119233611414400718721351117660733133273212237827894950801795022225333190622147030102242154311962050714135674826827335271485027187773771888907559969151388582642325785904846669739609934677934171983204703759352329625664761091635141982410906313851016754178936940396456854546136356075320669960676756160305889522283324509763194300274000160867309015418919022268984586794804020772989421067132001754942812674177375052055144217414957683920995518925163108058891653487767736818927588042749175015644922535490040716524388664159361700415535102491064926356534136656010913399523968525179442689653347337535626211258016904907491331176357870174184991428476588950283578541584828073161135473451184617802887947513100396652173581734566310708048795161172029880006820688512629341092537348204661126467988865010885237133086458317781361773549713769850889347345269524857475762630089791285654153272779768670338721288569002360742562212865912449938903284852446605155837090508720790079965901768647582512795711284648243027690056834120204228040405418515343205174672025379089508386487634176697278507392405419489283005761282707275413763220152772883707180412988886596652362711475028252811063014469854647139722590213309087888891878383760186578939264322597785874415206328094759893237512078358618382491869610081782953105887952379800070691351143982839446404645734523265234039216650716863474713821782384403708095977504842346073723191002352117650763030570312432187169094408021833449884408849115431708658632136230741867164307023941268761264286543174674207034830890859934432781425364237552002482795741046149281467610552200776883959602441332608483429616288057529939673139919033033413831415576136421000921651357932787755729929808410751724213271283891840944434796800883442148189309705227089607530724372054918113281668373236674450629086826421198671849267684723391556501714156755751137348575423217188152060500190640050422307030762771816517513328439358286959252358769346172113538825171290784712464940118492828754953392788444785192227211081815385478001321330031925459224940331104698577677820070406156550844271568343490406187841232793827898847257606213544716297035819242362203624508974425149093996702306265717495870432053722943095606335594912748634482458405432612928939410842018346027919949475448739546504346373099781829308045596903411704467222932684548174850096012848250176508182089189635092725893410372908848693695231136547878882673002407920164326367652516427624299719014883020720426858067607464490458129555158913088118405215361668142246501549576817640497076339318711859559971800933656623739237080038883730912569995443560321826444843304919649156238776844961184555323471915670599073796588044577740640555759797129984359529646722308889292540881660011270785061511754060163688743674588966370281624178182621369166430739461208743747738625370398224025649746887546258849471343032798754888091648797757647496175793319339386688045396360928135711940090692994444274761494729559223476962735234238715849463582642521900938565299156263155233873614942790343722175768337371337436673797037386998925524493269901775875092513818819297584080487315663181156433244186675463828169495223752138578600352035112404008821222167285082965136108821423717069145508802838205804981406458564910519887089731240123798708918628657074768587282900969451999360531678602260591299919277924216489772927424782691747524139352657746725119634191497640623005033072191492182961013124387599837595945409415570336826363794381568513077229126462896105422162160539118480618093967950186776432072200880157635315634952499667478008675815236683290094625681000737376034978168020261746197849570010836548713806460769513031440455120711966387411053315095010439102895927169690160414449381446461141600636134985792243793691384226397792406111024506739967483994736009026989065908204136207118840922627296247713477084779604174275418498573656048427758494100309108782118073023160290386952397313922977914016476592621972434535521537059081124980492490985330668282012707896953559774934878944384524137980979374257702944745974439739242491962689506330133887443174165638841411514078213058005640984459127668303424338423601672246447556763643132957087206159565451580311190295354785049104762103380810260235927964088512524828562935331692792650316995276859635094535529451762877873510915339146861915317736524445402779242224185865081718239900520685145354304910379999918095435438606291679451781167971978446338680830047409308286249842946691595471443397670594275725105969235475765772440077298370553686232408473433255565726531732103275686243514864551045122895050478393245561740861529901239626980819976978596427313455665125405829743409958981019053952150897509572366958179826426373607503918069863170475902618132887694634119039236860800619039151306326702146116430136624656366160672341507866890950068506276973084640563504280999546270096985549113880351122299695944210130849386093849956937309495051137894452957089762463127763869482576440311506730172799654390685834498380085785434058549769031150298206919785606043018380113821692184390243149351567206657597736069424917468244060101139535210637000815071195261051491549035927777656046018595289878728777132990039290971212381689524082010630428480083930939553209328877479297870253135342063426324182042978062064365960272610089527813241473624332523685358032984793677035974098553823052750164542366117696458607814506952356398297959308357931614059753212793103322208424041387970529022318522012087848383731071357848560968599274783607796400350003946815719717626917745548961267590990274665057708525117148219276845356231124265636128606265537572116021445691054234691142798168199587091009872999475832562144150347343302044899212077530820209730165210331582626448919798505027295494851438052157996244601132063071576551018560683330472709998932672288901239194349289486115770023064181892586405137261550810078874434490148011828314101041739812529890204590870632588294513810866833042984648463906748260484647261414098294461943745213655236250852847052418913600667196863716579505127825505460426918292143014087658374476258000831938866446855227734572192889432023593006409903757988728519404141510806076911965441731788169343205397643260759825305849892111839444554107210382390482252800520146957235681921443923526098063645941845773707121609345268810793184684051794869077638183964504889618796378647695788032184843538017526591847951846897146257238106595710619431585085868675160794764262989171372764173092991488532296128083174151606888319113307004450013578774490239601270141176780697262056503372403324799549435955457019801551857645390802937141508644352589383467876604446505999242096479527485200841106015373224748905772779980267508757013701311724459724094685647350793614016781512546806939797148382631226533065602680179145526981106092197852467888724627037114103488674569062468051282211854407920706820133752683226303873172253326493194270911927098676358851083479267412347639448242793420524947202598898688336873207678667657003428827671871407369449008730571965308648583477691242034202165824060124149397583383802745000239299915583905604322303729686714718183758033766178303618121147832931287884647532702380294521774845935442246106341694598237979662676398857144037816141272946473757786800653979121636163142439281570862241443622793093803307633301171211942805606801052473398884286886437952414266022226448618250811977884248252955957351798397656218659720818707495787870388350722586301075558774436082607520233904969882460291864938478438524347374959726819863890299266353294621787538463694493900520852823796778124123692938877812190449063481134230477605018317196095107327638998467055263890109457973775906877191576151692557274678832765234682532630861277317157834373563303573233663468198865127757153101945565510957364783965764756466258732396426917598458565041599820351945172016039786869243018027596680648121746099047697280826505730013743261983333354950162158925133808493797562203484238906013872981466674810834874580680773750925906783933496641746279646920696944294455001675113933367863146281706245909184218044986290679146824503388834655762359187637944478751258571751250413624297576559951077698565018271602779858349719736644018564099719094329247235195416669605411753218361175297334234196971026174690066791076607964895264475852607828693992618252031417835034950520879370336972258807979673498382225400407425010635937647515315616620230077124088474493632735867017351796611242451029538238331015504744610625462535353722576948687971211455104315687801384730445930974059988535895657850513294731635169316940725194273761034458719420473202730934677507251108496294219337677529619239100602162937336815450030504765673142561751847214279869987623738921992998274822376955328288940098577334121822531234499549616164041753362391924933863102933489075302543006171015446109661060223079226318829338931416188448431965881326813905524160405305881120025129004943463011020228682114978325999705638208597982733842463243163245437609620267998249778303563153324532046369048752405031666216013295107530647582126051886341842942832609115748173313129847715201788103581413314173521754452424696886939807651581132303973503925659692322184086331463201763553044341296777954614145910161282526451290591676442557766794210170458395182673666720263784432046558252633080625157610365637732972327885892680992122126861679161823189349585676644954578072871627915145851105912718689410826610435449223220909090548365174110529159031370190500128897922247373896447079985095363422588683230383921600783760607637106955287388208358368809541001331765546846326501750812495060910596061170385820333878045093305362452398121318606494559637278760212774610084939952208008645261927494600336539922417177843323756805748144019562106463313858843306879156984332672026636417827630302645453433055538322806776907220926390892527351233944560019186762481529179810797844835203532719246058440280225386513173057634183945783022226411514849195358961423020178565346084131922827217557169758976189035950760455678837021385362155348224539836944109798740436044504575323695786011978670668626247694762889105017980457459626007157296444547251849119223489202629789516037575110913542024181481767769761305912412933810819044026307705845238276508523953955857833375066933892023018205090473948858655189748647277906929670138845097691773475029920175308647235574089888410468563096898682626277153765890877089301389837905158245820422233576270242250163896141633909728441519930508728162969576040911343399768093449223704589486984390440018542865219392921390202050147440338461193228772980666609397620257389799173898274593190650543828344290025948482105016978720031104288983208776335538196402647377255890274351513812266123576397228362742559618980756673551522763429559247474596444484591067662216428642692528261892682502505919135054725512437805497830789612108171243254930363256684744318328471843988478476987995906209569662850889083377478680189562766838928628391272485288481024326294825310513032027328890536502502363525481502226848731419526874818809803268605890568960433056222087409815450375038779754238377516684400178175199452345751400202643267042398780399191521757291324085150119770847392103374538708227958067393165749984277345474558055882228743976702811935001249489176932882417500465034780079794948411942454849167953298623396504902352529147551076567398148840058330416092991209149440967010891437791116625049538440695150878523747229444348504512390506246646519222272422274427890915360535017110883764690561782969946464805041794918222641088997126670206828122547774131308894299626414639177224228659729286114058783040749742332475087899873198726728896981109522015041858132880773028767690263090208201349211585334971574325761765307913009450980485251795973139005187744281649123460853475646337134236459397620166186589490630555084511359728703718838748122901891965847679796792973291353073176642038157907161196614037734774820031613754878542322452589204148481527839801796232630475048752487712340015072134508137928700585697456615820248410684354277756506496276174612203635244143357094193377939652196168662667185359118387077667295429633938627180709135610802811271495657590286906399460268767498489334438028191459356319971530124219713298453534988949762796190362783177872724421855311160573417739174652227845161858598162140072371929492660214038207149958640488367791980968388084586688937000493421941205857981130124548466921831527026333666100395949033995459105774080870679561781650212100627251902755655986484853079698409849899144714895828023381773458644886530856907492039903881721163160103054397015886136223182194325119284363160149036142912195956077532487824888073517551492042663745098504008286380903814347592997586367887982236511840012171213461973469965322001337834084931113221935224349118910671016201294163488585895893958743377599951520673836545373898295577110798367128673288804159033357392371872539909339828024459913113160006018861465528894140200529549447950286347254301416596757535659764328990881797097969178018651933879399695521157802723169860621848551816964144181837854701305852944421623577962680409322801976086096577523522352401666151224563825509838121042806010263426184820799259138726215245232375431569380028187538942335072102794488505165902754557652614861377094575019778286943780678198285768352158748241445040539052794392285598296739733706531615438268385867540619836791991467845374315356367749251421842383054692554381698741794679817800426350379353660899682425773542841027642595115880466217979730290291813253417975276132879930139361350962869066024072375149340825192942790158145443041825331212751681840407358785478780173235510300212462387251261468883018637924708718782514125033499544757526044277996196532431030421735068243204457078497370868227384703646125326135734381728700012436296327467432191920850555737725727272048432134031187383675918262820664199785081538139916899778070248050623363247494617747786586550081393020065396494459495839342801991659997364319748183872328997275329971824486630450111580459116816385460584006626578613199189822999135910571761360559220029040187657096944743924373308651879770800814101731463553929773536702184357297849857503396155586288007179474776911408035606010384441734993864676482669184656856104600882068072269779051795853561294577919417401893872140133827486234322632002662637687930625212480278981265929522863184999656384537405747669260887705488411917421457963852252083856620888638728482379417313091407889516474230603794893762613974226981143793076463038458479343538644395016906899701205704117582432102703864977684336473189332721101068036011835447955315939583041169547687402536959746116305410517001279005117253276840610357130262052349275783316154481726007403311002064819887513220187266434168692787313444092664155568915323046465472301033202892173210159804160918891687157494556146762760925082888541843519536626174051510000028385298565963171661120770218604916507101992663821944244256452208066766944814443081987282625543482137211482759359431289765863264963495839813402113591656432805815539323076835613956241503134434572257894310648236645368886823280237308528732016597934077342768111712620389102423321852821923125442875379813716476873277347363030706751185355158099699608166353400180576181047677821890638069437797271208575228888892775243871059004364772680632877360390358646576220527977119722095164151413752851979136810756992778912824084856190375209596500765180976806361003217766703847802103894470222109421479740087113980253715293190739399286071170088585708409370840392516490455646044015412849730407869437757775277752442697869737366496227363951193446177222843752248715014573200478140867100043048547319582477594925395610910678955500041775269729442359541284802337088149163024414045722205292914453789419374287666034691541630501179707020678861184535584603581721382864638320025763339545673977273923338956230295316294749614119996754166938511011334978121422764592529128537517914233151193878071309908528459864433773399328811319903179746678567036220881787805817548810060619827524663035372390794687901681207236453196958789676130151867927797965090770535384883643315311752834620556856402476500060796212959911948383587118294660968098220354440979239889559791227256038860147726027206213689950632311138453951756020102600807620545059987013106076724196423029181302580647463550880716172254785551951810986063724641827442679499976790995366486246090077964706567753995709128564053343615709097561991234744491790715439501761967151284953086682330113312855578014887473145848865144304743434443436988452075594935060743944459656563639105328709373975950273011315989215998812450925248777989617470261458498792085017820881216037915125953882318603107275232341809081043072607162906376801363502373146535239727642889419941181190124862806237528220011028910462929840526935578715999423307518494814495439561174461229584642816613110551799248410812572911398081975728752723689474247200465137455727217031214599671940862066549181864558444499040613760399094172923010476310050256804429262805788816350408774180432980552063818662471943590055282435172815384336321979760591126507570797438016505343947196948650064967229026502500181856369425612473668137172081420838737533917323546216942320888667045469438852467624057253792561132273071341564776621511570035529226439428178024544450444244078024077354500495714360595391511371097244595421200510272180282085124088263838041380154830866755681553009020787104956368836698483053951151424783591706215444152522175904480819922312446255291826004377077555409952385164475584462467278836945657055390015251406460402850658108365885759757907617204947407278653913848323718534883959926609228745163284383270243605407939669353291695007361683235333153347537265520245121439258238004678145003457164539689914561300018887966561455125515303164627420450379064756846934130546397079952110631752372790869857866513868221205259444964889600938299438936458831760143859854654927100882473340742849697394868579770140998240888190434622783366540902269179144624850430518230948504436984280093729544854763079710840954645396782434248875809408198991901986575041872418273021975694003364466682391597643428984142356730199329814528804097943172771834803109201149756343420393497834341245661768850032728841623493435562028166697526847325222963689851964595257342820524181420507027780067481570434760307969885830503475054608351601710632350418828613791758444430731868420133349114327063018951546107516467296889799045004845826240330952987227242049921611624354762187303908352681864723952284480209692536141582336479627699923105026888277410975341359961853775728797339887874169667256154988184130651306499310439459724615372054895822997619361011662252863711512160652472877557306464488074813095752172269630568380775082045975691736506424408400491278517155925286474418752912419804219764297888796906875256151065711623540777448407389435625441720020186235183898972648604058480086074334610740394408988890718458575079524183822395433089756478872682948775225330210584422369091211581606578842478142369926997393776602547242463858131215165918993256754273090222548814826327506390705167051306550117538752867686331710257206961999580377639799128719418167229503621707938257546990877473566766927912138659013596483813786651896281326629551535984643726922050381502561727566329281006755797576981799567095777123906993093949979455953085515803956568686913662051325187060479272676618874012421060049801010017372573510286104759950293920115803590083080688424472016677891012608800729943307289167877433017711987291312297708018099919615677677919460222244461083555122866184933400194085067327877460673076262661787941185159194663592203656858933289261270888061706785946969418778693663646981677113650718993239564992095800328764026352889446118259266803445147406611196685758046285451024640843592761636444070432549706578723570347434135439966063475511831309700363906979423236365385224390010268372979585438394767810512711164444599661980063768346212123853105611395947374106940446620137774990342486402957646889169016834757279705289385946883154453169679982795146522724728988165818667386468314516305517334239226694574181874699580356756273117202735102398421164594382869840217572175919317082022089376918502071332602724391143620381712351677726594889079402026459313558027970346447813884469395121528006387633781806646120607707225578008605608944784768812475936608220970499584347711888975206333017293248334774856259832918920727263600947140713275531288598224692260336588957756855536239942930375735659801498455686439667951230721760431010405719981016204157044440547764452914502471778677167335815524296587039435486066905859343807662877940239204708063031352443400129084255330323386133246763764083443834882004741818690188796483753060396756103684728235227526702647459415277175266337443771149810852821459281808097983612378228786446410952647772120244690830258541658138402514086548522055618456571100166427697003419545948514642633302062386529234567218298755094485159318620727712397362393151997896068923805163893658994717108642947834994968648467816644747884728014141515244987996509585749743239822882001720651600525775763822969734381237803366105017283468781871834935095770916330011311876646258200772368818777581592521980489172537255550196903670706209900746679924473787703642332844103754963277891459231028636257334232796669156518175816243014587582716476758510463771644776469506816421692868420419529705281447201740313125419003849393488586007578793643947495573633171590292437347895056636832224300859507768338552913308298767794504925722274587032747621698104629505131200599587816138825143177129853214791336095712287624778070888537672610904038051902653575529407696365205079165528336517069012676380190206884919275763403609766811178897239714435656256577715468596582733026162016506679668171990075519470765545059950257325100174222502483934968222533908576489032632135101793449075125260492422709675811660847130077863520118924263827796031725101364558796086297624425704003427568419021515029037306535717545851793526897434774817999229314102384221809693989863964484109852534749820178346648847605130811703207045039436415230927110211624761942241225615985534352347075840329518172427085316458277383818648300539586967382450218716954218228479414210449755880319478461629322704524370641448349743027166080300368916268316821541079490694963958837597147938647003381442551490867311774076293771753285443442428043739734388429448399449068878788101818624871503268037519640950246063636962838548583670531500218603326574345759845787264214597858404563736299148878349123066463994082117480316547277446462834281995652326479634161104940275698099514700928807910984000412153717276271165022529785660338967485479489065310414408243266782724854004342837709880215069503066442193088977087314798565420381855542742067768563158565388441644617594550793513988165763111162479878816365313857303540190300053935513182826408493533940355311371239053769165223902066776528839319283068817606162873294376265299027925264843990482406900842738716364695277764260669574201455903864083853537238416698642198116403107124816532951333308859395634176929601436284828275580853393231337043361136264129747601485683806548381648409201122950894796296449993449707527244756805100274006482216936934473327726262972568112475857396266424943603104983166998061151029319756770254872815515485444897723886916634580216367801182243084616950135703611496483039395018152761494265627995071692768396780841475827394549527520031617246199253690762112288326594990533189793427129735282092649246242084917052625870708118616657512313685058495483672556485807733004522923001249386604167128385286841195294429308095894091690829369825256851786771616500171543007078285909944356312351893100216115304303928564428443979939118378904767072187504380860197811266548308548722898565258741468092378417297071253820411917979967789642179759247086164196209455262609164849647287037143773117771296474527371532454007129424069127657424799761779497205426035908036051502151684390027339973155469560537625264544187225283894875584226666713056267158775819261780501042058206750655554685915784583656051707276319848895228751288984323164446734388714783198585296780119037167094859529802692637203051301337543840356482810841526423330263269308433047975253441641229406946801816348523516454565656747393755305889470425713857692024629621820305484122840635754487101235001255134834866516819535642148039869931648716903602358382562285064362096034488244924534977760197145380244388905176336663426304938022424448198762805884740252880067076827795755741521904665851088366214540590169351490652892063446688800440488546289812980824263646722674430154232699475859698017584153207006738022212338998972179965590853548490332840623147708196794048760424052303408370150682422925242380784058622949579522557949858922608509009779235230568114268717392229779167763117199168802772145363085597903562889891971659449683814983297073902276810955399378703113563919154180207350864504562267921665411185078922854829433725456759119458778799209981737696939490422083677903259733928406677934680258568101784556235914714062717524675642981624845035735088971959784729795043604680543451456782641592969318961484378244532891801896400245739475343702969543516783428737576143936689949798195623524824277194977881776478121068052382088914533792660512696546574146764735607532578872338491408199440257097019143819431376733937873226631694140930141009831117813860813289373913230937981619133407240514732313456796597572689649755547910514245331219413333727785717693385298560008616188829393229320574978523037306418082388424479802003902789643354003659135574592274789664344957635016308181051007212084176346086089264107265699407451568827082234361594531998982787491549152007319581660092678637065345914927879099313400886080602756818999842271207446772269139673112436512127603894272133358234148845777639398166578676526751059191002612110770104980972435925367136699123870517031242422845704873688093749168921976110420318355777101968247101239792432764797377719904505477177440689782436964059918872787572794157078055448225680833494818162006417323340585986808056710997827235809510857810007499160449089685418100385430066460539633135383388897994307077780345693010648400802884190811963099084193918698563342151115787174621205463301928273616892573878159825637332704668194882768336290483548760256900609535275218742943333727150588071123157700293198593232942792900213544277624893433292311110951467726521765353330586963402785896811377793073961958064500416614606759781799110345055077694228362470790768316845411457686881571040687327930233182599735196373442967963649816240206474482195065353148610044583556686352445020124635621943859862102870324642212781398729744544902158480690730707146326199739103391329632715079430132871582033343658957529959475515479128885640801186896253638882256414398854795143089191289381122996762035238412673845595644426211765945579758711553053546479832526394474142552591407048760402815541284928026370870090988848506734050195414131544517584950937545331296680855756445272581347136326484322240371783093498991636035347008810395321525371975125175639713879502839454455217256266678140630534389023723300160052019336589512599603651526106985921342803641963999848499820818650675379861117370980870831335018801918251046804285764300876357020304523964484233757037282664350973112108839977746075559879069311327070177794357730066195781066801375170385182205899888484614880530326141750487039799211510753377104097704872419308737946917318203286430911560854317207150637181280223281465273545939937694724302389101768282934398309787990913450519122510926797255189371630052191599556241696848640627871665342461269638941826794276755990343366174517324405619431561303091882112482919370498281906232148509594904201443763735441629896078038398825548575189826793266167999725167938207476661203871287949526020815636379742310290878428027255792938230895474683057039713800044325395867463446250551745978847268876298583680096265113606501620259839716972198521850528350067405892235630830105072355315135957510604668607737909197516131854155494654471624317012798099279826288896538843323566165428199473375273994108174750994645180319535243346624640161191976158691647513587876769656691495334359913070596366273413850548444601240329282681445310901071658955452686467174386622352568458877858199046184715765468332268752321942923547075825643983760328138050152891685719323245759593032038562544444498424515320613749466926686976137705133791658603339297653316798761033841154853241682840560693898628566545481335927463981478503234226716514474489830779591604750261379152272116457330429733764497592557862773664359033256381309503423664903343978088873344508763014879372292192678280599694846853507277400309726028750668582621893236524930321237382329954332509733811308148027077429614792791075229704063594022189281929222278406577800044117187102881905908497350210282666613018934862849725350727521088675082321831956412982318712996284117285675998831292695708130807999076241285031588923237493890659860809630523568418611220124058295393510177512826032091370323422014761297922869229115976999349919908265140834878829847439614698674942197336507377205204760453099362053348177427912102260938858443725568695968048327666999883400540978225259911779868790436270017113753306396852029915128500195277584032794768644518609522649933580107721455497738422060300525231992697788914501745866663298026364774005128910668083561406901275894152080749625985300809178998565853521229190625763396071272440664906059329014249430155406788049241268333222672374943929641739559064977786200997022188281386952343369463364970849424032691832208418343998646300399356949560264366134792039682358583353752085860324936779186179033533677815293825865899616460588226394539047833322206482536144366627963862100387944289338656901680914723609012023813457489017431716143934932717585940128445183207417276440866951680905719893140440282998132268713820279840355589539970860336321327770673170192328965727626081700867546376355715507755145251045775443904488272528191381152892920507065104872261877994402150987218181145285802762554662686238797969589670228296203241954718178798575100808370391100900676614383884913840418134688956112536971942248194975582740531746575054790175426111702618391415404008877936068705760317276616101217747534722206845861323910209199071282692085571728707937022540857425406285527377396678518744575735572690951657704000266909839803280409828305154464018428856559992359164618711655249904985098305185068102251898507645041619412710360045855509038565732346152267463725773965051044311575152321075841537161494860555174404871048556984545503514733186166221084224170279786501199930244826672831477317911972228898028481101617536668216010129744013946658148533215221043079642818570676862931448938186537587626178201356843506495276198146303170670094021967893853224763117530095553453148931863878397259897017919064843614605528781273697817025827984966723697703128805500805051163594551672215568337885673442362422006844272515581903971640731166591536953598562811754159534222424249861708158949027430505272261524205666738097771699564576025481776220580693427784622492522848109207096762103435210502377582070166978526945209361054467870798822401109742411735134648457747665134754910805205763594562086994785660952990346630596863144592983917175342855460583410415788977577396808190659712244825702030835567902237006439350386870257294662503904058423781835841839569425515347044208813627864676979716505880566249730172700832352310240076217093464684732433736771197680119002615250701888996989783282449097499378100993973864696854550559739877226014048488420822475572058149066382975884097842197710428076881073758856045044526915261658439710766735553527394689623240550492294443884803756046892201776373261935046125943233099961759073353323521008323901052228476284116969503635092134389578307529075711428207462025346645896765261333133448392178806855111659112184725078172418073501360283148308010024701695720711015965908589614279600380229626545817341822859025666821754609993615931530714118597849051419995963551872849782517987284869449444033871428623588817299530775841915560636811738638503661047059180217733969975055689410150910704631839298355061077413069573486423584006930044494417639212378666470396210473603034189012252650382145776707841124026599364611874472493812173225260111619171427934818881658139378435183623569287782974043441605717376363722348840290241788766896511405172150842890250993652286007211906427289439718339394898656809038098145168005819362127263795274128183408503943873291236944901878107554557429767614069746270963827369974196133161220601187573994294453986451314611854624110219742254478173324477965967670092204432772773914391752950151500119635805568509541078390780369216680932060343128883453595211933240946559081277212000916413269557752530284017909660820344017656712136085412004392120899585972575978663704073864075401553366966399373974515838879454430054543463890710416134206207968854728385557986372701576918875473056911954466268352760376998671496035460681469917301881860311567893551493334529296101293401688348223723313696862656074518442677633774583783698746994272393816952880575174567363755030733268192289769427667008204288093107524300563068913889023872375956213980275367855598376342419140177054130534386410238279382570081860358869380142911691252398747101114088954561304326011398466921941287148759633792915845340809765154280086904254923481035609202883441943469372989061375186547640706968807086103195541794628173670622025200867266151118136121158147093211345487424618100219121612432942257576847316987637112673475717314988992497823671365225083492584884826250891143785952186874966289484930350464061966911683275159936655430444552012356389200551449703677271056189327048722726045266391524518108547008570373745581364300888681858801704986124699455797076338200315330683308569408624397100924012011384252110779362842185211751858639033879421996310408577260190182816355133471066307348755655003341394623081905534919713858438875166985653504913995982805663776640047241994244640200676049820932894748774176234603762915440643048799097983432420063007594330730361426826127932470752438210785085977949883484469397455600517001205031197067729243318681366584384779553824690967744180620694616361528062670283046696498344697475317967295592658110237243586254088062078309575563728076215913947206117611733316593012044895743298829535853436379458364186363951846045135071402648517846609540021024682185140918503985878451625093994730586858066899167415783813936719245317633636133253166202809158105586299598939051873086506344503681324199267626639065072008685215713011028869833648385507740859694984383924385620476547289100624430181570161499432786811497201142133871741891598086822701752559710244161596641276510136115515996004049840911802177724507395828550325088531585794261498495320554382001585326806690604128740643011391379252954867707397273566608867674499424881887952594223428781273426912519553918620716753246529328978248318533616275171246625332522092678488858085344105316477487917720291890159880089530799789489968493705832380022824634892564149174105020067147980295193150334598264898864813774030811462201323740457285800228363377966374342953555195395964750027168558760871387012714365999362512405038071468485263737398282066679031600092245948995926730550974635428583528354253000356897468621167992354301740470876489067205692925865502687276518476747873138243394860095393488598442065346873318527701944895605796569807130599097707936854985560122168666193654661867523956482652042088206100928413767143525161610503807800491991197403417335029115412159888435339297148426603199532463792450412489957170190168781304766343937135573466614007477768120736568963358899324296446662093341247698998464231314086942817136295436817825939505891720751453357541535776309273073057450656589865924233958930530887167451570778537905617428266228706163350378998700962786941345263219545016444445635883789321843829242175558304030956690219386319676612866764883176329774041748144645619364732892257993788574430793450925538414839750432697990400820248431781169557424788315630744265083887376538005401645024398330466997680550285433132505905748940678253751555952559047353249486005646064798527977449775288947639981929166312883897792984848949420384896585751621898367310709159906730175990295842867969816996494161449788557209151900162630698866086034670515820625116996213681134199105220349618602571819014360355100661854967511831891489058860909863633063369218444854173103198415081252528325810682385585697819671729592430514547838869771664410567144989548920745730201409624969797425121040362376824437797068428164518967168250915089638435717248504986630972247512810454458524215464059594928966127495830138560963254349949335346710564763238793366251226763488052449264736441740015105058073841359490745605590171998716263872016983716577576150608081711266297585382625632794098487098130057948217642318288599941071704265563004091344225998634056322979389392267469609136939324046087681123562660624250664379581661662659675259635313835721923064062627028496129155893789524377151739795437182425331087416978007445627613137808839206013317890290956108104680414191850275277869610226935830341965172529614757365644565816897780275333672871796901518000976112865612029927959683481350980242224346773706796183247055112986084496021568172367726560497499292654994226229303723047209812844971131934194832491796398724411811500273324733772349154706316242866489831560401797871878616685072906081710272562856852646612832252517548231539899886523754980663752247311384399489945907218576040853625052589575021270255572482790098476709653598712025760857891799401182544428608183697305590118238206951136756272356562271455393173858642516525591858043552674545371326090156308677353319505861043926296452506110827902313342272972300522916004580208027990080767623253749613516032753300023066923654994348776308767229961119740882545586402668186926731119975959583041767181951786369431014061600625584172045083159726633568236661447843545224776471365190151148345053831193974504192294936807964425874982307670665047923109089159146490886089965299425180180391339904838079411048708303981561727343032066744082359131229793734577861459969101741469683741486476219535907581763457200791047873182257184076141978372532618577182265962550203960230705219205851824646145408322163044453159090678883601019911925977097876707481304300062225869542765438988799155234280585709684011179227823925124042889226014941895795192554718857316048630885350185728051235759775551873865212687100727809499884700735871695824845820815125999496418687077530451082361247002765104433152072531222497135203881688906606909844533469433572565377057624896592650338834223579951513439835871734789853453229416050125886752801902061593143848798340009961916033998457411750209693605809805320369653498077820054328827502114740071880048872612084496931004431700726246316382194186574003362989195210370433642915313024359062915071398215499120608654582919378367150201591715286540038726244731449585026651271806706170389768860602187815893617466150826233436087264636084399710767066602920473891294509619467156160195349252014922735400962301937186890618475441477087018962676696363659484690596854869983224349720400625024905200358847426703489516768800603116370466926962806151502744682185910984930265266241171962917824386957362191431697555520498269751825683371616483774194890935850074736449511536811229194475769603453482508996483022938940953329167218264029735697675051984235289742673864163366405040111339034201357825667038020868538577301902467101994583996770261222803677813513386223273746680972204156170234148289633728501301402253704447220959680369398899056853586140108882271407551188476034202656097581569722192239672570277954033606136572879509516984783227887862789372261606041204188016549761467512041328976417386830770604337552335531203826782017796950206967855589256810106322779021657112769127720094618090715991564151553085381510075357666034537147856443497893804861737526354207846355150331168050186789514303984258852888771823062441471905843087773996331189148868343757712344849425082876561504574145332470888191274978526950609794364305425737714897484990338700521985969786422405508178345520097984659596772257489467995785626902607663886143224940467413258867086051935320080371354535562534285101688336055032620261528474045576411775761896064469543494288790853237038317056948190100739270408031688387687919145024114942359964069146981413669279363920187940671961075121184360784406741908340641000113611890717569787612455237133177270721662811734120425008566285986214712375569102465935391391960374269770954045055353308846122587088790184232947174994991979588757092253643425015795591763451426765752603946017007006635981593445232028831550611330209510211584543896588569147305815536910893757697882975989329189618954863362271112229017962281423122589242764298961018646690397646047013980320087843243828929990135181427874930074826070457236926550822424279090068031696570685490209237038122707860939242986257356857494905008906030317100390627901894320312414666799537342981097066116633626177792002236303252600219988330402520956507592833114337400963114356801658928728620167233434775489515244191841267133661489977586554162186730955308930297478858437966187844423662987672402586133381117671014429289208299058233118195907212140858732177362848543468469496810844553017178715541064659561545010885611455513518967328594600801083552110543305227733889302909133179722925920513887931703935590564938724474256438052010143640826498120922600938816953382959176487422392701140461556459834997273455071587991480107207909475296949646560162464281606717390759527113919028664527267930345145043023975574753071300734723129760488807374676621148773278736350963252942822546690696534249150529243524115794019033249402411367543408920231873177393906877888220497135531778387598984732462749417711556303741987908834932181791847972112358278974735463797741140891835297662631257814706854661308445603932997024475599378998260090977473562608472118160782395498000108701815448908188298032087412681313212086366879422674838251625666914933684060622683941933642399753155373968766902534629467660108885764066121527960151275773046357244574058991784793335467296335184075864641815878473182924588325768155530285565305942538072147328129195055810526149578330323419103799064436836240459896388372016115490002090880019449282700438526028804590715053400175919269480948330225440098834219942703567393578636740729226097934615912018886173029963105736838671481363824239763909372566399448390475670845535036952053738295494932602840246751423140945155817847096222935677935459085824822647704152435424670843407791527755812092742308149990844482621428441230140340878768097425981397904887328078931190054257732665927685957619844902442324826077412340351823875855535822578386263223115103560310626311801522533621673539808911775384590515382874495151287388536827510776456318701481814734421043121815512072160852256729803656577611547537595343828254839724442430512024927389379105666730562554437319140464288727968943584789418459311005166274624822131189516551566390286282359431628361575137535761639305051455527280990021642719539933355950542147442201877064776542205946940387335792259257801376175970699836680746462297554994747378384891803323369802088172404904426608103220346577593125793601597062004850637009803854100200317999676739380382194387032900015349173930726005372847834766288096795942628408519572429417543682926066326769083723084376693567992763441694938742191968820282367954854494560283685488554636700021967765638736907588965941737771452889395157078017157376698710134438757759560441677721169844728093069099823711907419191493757283470485903726883071730099238556764565069573129909346134289780295769560291930081930277740478836340012027273196296478556014417323620530924388898081095719286689225306376139458579904056222063543760151896604025145344588219789273672934150366465152594000023102060877165403508224790248472099973398784191875241740734170703231132435744949526160314779475133213053867926663951157715057775594088845238176071713838952960600393457525905235886283289925892653054197579487300819107496490604541776691780390161656495539284178212661761930987693439388571632249217314074517993063591982044250591323979885778615716512342990664862238810860598874980063432394199637745181358661090183955852221356938123236719425975512069715148784623814762766095275437698044659166775285163498244980794059027158893378067693634352698494512681085241400015562520590611089576061015622606127412167715110307160997683442085355862765397159680797311915039645380180150469652498374994562110138896097224679333295305642627412286908881604927674516185721327982038061806044265923843376587324914206263571317365676575713214713872148616712558887160468397522176469730854172100725964839533958502490044175463983119927265834464919591501791128962700492783171729062030529169448684848090240587217216434332671989637599270096283748106885041955153707755751176270211423727414493562387320836268787664379747589549175902138299976022405038872918298947817520959398542417300180035725220889366070114620265836962691530078752484279674921785954403947697327087127723481759445057141286543145538782986952683911626612565564920188501170056180504354866385393589531183059845555121744537134544428953827945887734460591568277524467347174021286854758371650020736189947835120938738086872575544390553661436711450346768884546300071636922831311739632064456907118672833614939616992394244682328631141641250023017303928844643287965681028279108719100852528096914150786451123534070114537776949727081184410675610116004129558800582583695371812052954080794291947354974276471710010561352323830077910785928214295953221598858732343209121408962574547243401455552827470154194425571191385644929766745210372801019768642628394599073570445886433439082267330967253626238020530224100818062145732536893586478799591280098802490973097016585909318289045481013990178048600591697235377281871781165669852516815387463397691886406835432266905104276419669661489292141423651854207749895389900759632723803899037918329020441186971995965904023351493102711118325114778006776818608689922926296710629113898031303941015018655051902691641451587857822929901741646295466964753858293762250671943972721408082384406964123681676431012882700824368984340442008656864811141485331968942750425799733251245937261707510219333360811529653772001922775310275280758896106110381442949525398325070099702227363459273878414183142969109133396301745416990827134195504564225977449433344058569270911474227089237006476111233270883625392463274380087534298752141099632475081603714273598565331062007027768479473412226223980636868626044041984371907902388760698011735279922346319948905589361683015782111734098804343827539995210926239937979453394680183505103475726551943445698767133107153980337746251350060082725532967337324601546138342062201206860521380056676444581132162207493210868722931318822537445262389158832781414744082547606692467004357183153783092251314113625968008976997724014095096581841613625090406645813896712533101485923830623578492284479448992645422351233978082484621849182804419908482905433037402477049360882759926590018863258018688765997414869366176290718075556484351668114458688990653751454032404250870848969819142489030387440300152664023111121134729566007793792428101604244219376800104501437805327907775037155213649710477543746681122348756753270019925135446244191333077001432433386917868926794560146047300935872895806470296494952934064249449621845689781912059939023886314371979121402671520282216874915630840751770731915238773826208246178014061845749316139324337093752738404245034294164981615540709403166888332917373561347910968771325205238205656834102795800332054785335340992760912185472062119466150197556616479249685723629852880284255239058009575619315779664450802702797465633293526910273064743419844565616836221103000404494952758604638915112483089305909244212950451401351528327548910662227088787790439048578224274985725513034148823078526285771429481455947897256303155542396913939372636946017867836296469231161410931473665530353593085660483774930922321232789920969440852275320389850747170257103974505856486502139188514827540064481666250508467501498477502901974445060830947912713110837805594912173651094859717521494462558789391224550985753652765116397642387911610782330772436043108497790709665989060269423140851504747551185918096554184781237157354055155078945247915865855954079679252300895005828214235934104559769820110021401888077312914774691200141830683108228927920862379340402737387648414456799169841574814674017492724223848745407487156573143805569078138755651763507389299060494454394793648765248797419903425140730637823838506355401447753978566959777655508308411784328059668374173638565098951182194122341429244904352007578803409234469413747189891578276843875145368741737152372016995354082998604670540556781707673582987531596207773436672765660271771983515368850207943640551934803306178097915079235579679442851817175431075963251372730787142043260342492928610556425076023651202402684721721476380911340015646708945390982376598985780637145253875646035013997264692716971669600056690335106239847291836810739449317134349755355634900869048081685875728268277527651094939088459043478809380861095561285939458491039382566916214753298020372155898112132675808488689858713322732787611954902853838634159314796699035796244830361532795665477086920866130876699394412457349681786913671024120404569852916973633369025217311349318169075434269590228126301165542028032918769949300395888954749814680059207090648140107344103384831548903895972531999936238209857981527501039350554836105048864927732037545540887476968146356810938054611076446898354875761393379443828484510248332421859555573494261437280991090259467411128002374500783984348836555792973087512864147959776875956965212388410301818690096846603160711936933787997813093822211635049966975971373598780992058263512102760263648249773358649066321817710585855333077706702671462630310056384877763951344180109200905805040380263525219237125425610244026426476527102268132590058117088581214372366924300964875050033267439359960796448211982842967537958036436724822262850661974060144824655441547036170869042742892533448857617082442973573893935122726241431842480305136076220326574316803928286339254923303096401647836259001846450228974989316113873144627318675410852985797505976220225412467657587142949995974970079943963179559619990605816327508159633348299764894933776444881554788994425889031950258360372082593388928978217389016143171690686344535912460799250642306064777935755934379115642393499680054936310589169522594019129339728121443666388272357168820315208439966867518677632996512510385228870642287869874554736811904092481069111250035701619579897460093456951851939598105159232191255283497312745587993919252373071225430427288005473695605477490391797981070478832183007214001369610211012344150820960765698249829315963241381886380507942902239085220617129899873508082574168118903182512250422487102048966727204540923454832316056138343173601963002536309923446892643479105146956613080170363567655354382642139584796960672791345941177529595040946634600657522593626137050520961258639904642316041328935550305192816462633460482148215713006019444328734207889453636046431312780505321970539779492903353262769197142670335132729953349260920132505949166632281656445183309086921058511414016874924261425119873747077027549919160833364669862792278395127667454893988792254462006155767343679927069385826810241046667882461066644410915800141533572794195475931104797240295745893245004852855214761495329573290063172119812902511066327593087788501854319765068122038784543353944216405687973445357651772498222970272700553205223125108582193603733955080158074634597431358945675187554498219256549519359687807402427044766925031553786541576847646176186389868707486616754630203406622919773517545719414089953517942255712170727056286645712614937468462353469742922945785738309105684602803699226899921893337924590314178463858558223662256667588014927525667588702983436329241740991756487366708595990094333311071860702394083743013074579380594170653287297548876567085144320148382794273796723383743146817318748064650135595646040838754147298159973709072605138302578549646831254264638237126936845758321382863917512808979714370337710373331607905609595905533943014469025975480494794124967072226953348659542370910127424772421120796509221106571759645797542021145825730903165546366081833664951566207830647811469044803101379964363305524156633789147356512401567899263807205860242459664314241863003282535237083202295678918258211856274751477541493871965797978984565151384437813214775882950941459563465820340900960653750159591080425744073682350847223639684550897237927589781243461697085085885873016817338618105896737863736393304776074659805001325689471401701466610367219795377893530929169380866039205800436038757510940512794288476497745716816718895867483793468578485659361965966011585186559280235622810116276147069314586706048901216348080281853201874565340711498872644534841660568089672954147617428677900256079889478700939751909855706605167044838736505422431609158584711109432281724379777893171289088548040596210475267681344734797299908418424343175039451391924358796727781635169550216401352539073537066602398698603042922228529931430142992944513506594348944756149681037851720084518869207385162682035392235183696814390378617911629439436209401472664308343348341693644498352034866169918346207288910775424583260713395804224044866971048511854149412854131979502061077665059009188578971996898185488252732949274505293077885136424705340134361840463822083022378110060597384807285517852135403741816512137658063994001928622967034638354126249603608847220630200564602299229342287290114988609032423598052762760065651112727362036215248314188155370947840268611550033744977348057993821885784209786661640165884478190769682353103900120665140713182258017465603083115565476693851474031583257255706088620206710247951318212852895447592879480005711524768009348747031991466257577699441885498501706001302601308870722337581627601558213460300454207982901187726964678023037713421393157043595050088422252207262324348545891106675296666885572078098042570845826587480330529274425483876682054534710729408752775152560874602162667541935972629267389152735197417521809151420823158824810354041544872762246672261914586771922472633477737660978562976008360767176196277230649613421049178594409007672469111009316720146354176385813495568089742547180773930363624982496958377573232791377109597223098043115553340014557679654378853862882851285603512815587471006314618620607189209925924425789882215844922008145939430657246930099879629257173807938276186310201411875611774294513025985422518876855566389605336999480573521487467783596066255740994780539593558061111932200808981401372427229437935320539976334401945305693370212291216676285802489425348590976699199055231845242668635571459954845158445696719943443100793070087683137600979818930783383923569273873792996140948281204389258925054039999627103609938251123329077857515542388240795076656064966881493482889494316767969052460989408359443216466014440378242734812851625091797619955349549845175753911971088835388325170814502658807400460371417918531624110813784080953763956082776740996572243020920071835456446312490873983181348690114243722187469063369960848319494315270200857672866808896267758515665409165079777211721274445123354818773909248084085109847628165368585256925226882645888698150466911606130285651384919918515007371397079101480509548009559555501945115778822593375070062475236826614912909631491679010434756294453187096152354867753857957367154403836821698702921859468389115590608644780402442921430727732475327469821450487533077402865429802264352992029342787223899545140954688606461299086689378267492945276898879832509906476375591199392754712199719038206360393645759432871770076256592364782460805210693500128490901329953405340098369199212937870494704623222488958605630212856738153159903582589924525600338026386363263562988263235221235717616181625642653935610896715906959486613364794511098998107524209885813759778286602786716051167596498323905976531029209737860767346042524856487385465302986102443372313531441325563845917736521833672741090131923602705391700208512019753730708673256478011193784288869715589817337656290302514338074799616162057872928960981981199271732887581622394187594604457052106632981592389231750965633650141070175412682650964383356009777582302595905394010807672704591638369327840905392715904740842263257140382512805553531963595437565267039843252454389367074959982181768716665620429458847303988098045880128286134914711165604325862397379877895330495940380502644954652499631399105258038997111697361318366077329566334126853771968171023970302509338440023304773226893645902860096787779231878421492181464199952142782407434740610467535820441997873635010916314198486024033317195340350390274042668058093683812447134207262436136542210711238495301744508503355917266449906856101010426449922866228742224756881162768524443953063092909739342921087524011991861025251086805718721947011744610787893002264225535231445661908208381322833498452460525579231080842158467893191158730274583780450302249202148466219665964661912762423091524989590619793680945657955882092300108878768442854105222336035445997926170644672444202486589257069659719725262902070414949831238507786434288784153558597060188715605446045746778734741691870614515077523744878888885035651932713131460830314752665860650755811894072264822273107407244535342903483106193958471857969259028731074463480129997581973211305689032678237292111893752984424799191210467067901841754706438637688668422015686288688727306333085345675900332456198720823318031848288567989280526289733511560867183288783287617683203163704203402854649041192141964564993148419318883012937311372888812904408660662425535136455723595018894918927171376090288985512879876907325041929812726385443449759427853682749227021860613987551515617753401818522677136548180195302092478957038426041154993848615107323412908987911728366410965152453523828990939026372417898331563618315139298879895200007199538086729572933327067990078543454824940711595624085668854667132100306786411517132171606802249795891286959344494954747416812497010330770114484664719866156409323182700125471245305637210890412076508361358571592277237719362659868638733636524209455751101062183804047218851784378856108069160454983816557554265188000565068833209326952082339271787070278032244750701186487483626353336994204865769640188900108788244431647706714544936828813201945646739332758939635189210911555690545893258777370768889189099462735466275926134119725515027338549524421724153642720910361472047385048378235065727428439599517022662762816301042675476347724100581106503546256892823088629664182236001489964897539884011774854884615000392004803524098959474688339714319400758946735858922111038443053306166013350203811632600615388458134652415873352734252487897715153960089023159709803343101145356521058611058312464791549329851707252759174060464229307062685974532201488277749857936871071694148813324743908733101239392081320107404488121322843492630358027349923813312081037615228851727076566304711210459362869851598352343668349638016084835327882466374239129353147828618799048269126581350455471813321876012072677267243051642114029980174602806733847166625670685119564922420743263814504027950798246350594949224278444874547692103447345458899649706384135411997126368158817412697303940958629246033976471694230668767652723730970745360508818524597474351426193662613476884439605662839815832684860365492869971035427597927222399154300117134024917021572405836949038606995005137641511198137400067939133597515443526128150256946555500185616027166464536151492252325125172297932148807762598066748940326390917641198290083478121520170898039666486428759708263477889472594053169511177900559320043151809426811618144671878788781021009249314229221005396151507224297661325890756214374056555714443802376149249721653109234162826726880209390130465512567481266859754670599711522609438815819093390939337513823151766173242888253131681429601198177475781887259226828658758894039523136237736011329595500861773870356464325588921151813111528952365966607887879899772083870832249208303524544595414347805638773253035919478288314506322009394567647059325110775764599422050627183319736243875911401188757041763672473871758896485895471702521831652633883710211132032003861939108353535640599178094372980825411931182304928517571124943803081069450290353016219376074806148011539961217791508999454475485894804832459739295263887385540691459931591935558557724309851150756279070679123207145993137687548877947987112818726124438366472668007017365545159022843505458738995742717059383661934814992058696582340387564063365333831935596432392479982508769238223925345908462146518785317261094467012664193558008324557707169373029837798711384003560881579403228553208594002036311235771989140230693024674129305462888000900390803903625613084544419767989698631928648361948129995686155145908929683196148896327123755190958840854815014008934348087295880176689240957642561969048662872938749165077176712342723970029078234135525982958850103784777842565610663258717273877318818149205151651032775302795066405806495116040456902361647625617229029312960063057750123987931484736860767816877179820970420741952443003207009823882630034550193033465061364700425518037122799429748290417905460389634674648072777466338538832151434930471294500427803325658789390772426002426277063794757456756133454393010000911821435272956879434150623467370970477790909268500803489216658902769874872576878179201942322313409784853603968842196107386607506654836531236149990131016218842663060776756695016531765358096717285863528885584303499761357709720765921317494302025005243012627985988667179285828245301169432447909819456679107395940480426163062274586608522276323008979827338862623333564088714020025710799177194283266540286481858140349755076863417608109610775726277660663651171647551804866666779738658996616698635807983239233821590007334327908897229164499015547396461852898351083214566291671318722904701352980230654719426277947893004957521400222155383976853790701805973807200409865822852942174711984833254844675523658136723211841846440688664030450396452303192574753912699397489778827459868547281186431302651657503739985981689346235914950124955943132791104364255175280573490795776803170266160250579123166623317208190946725577164380663132919666342206889572379742918224618779436420267091116556806811994381531181386494937574892985075115938315108293579672710308421847555545826551020741974824465374402914639041494370633528705385932348317571835186273280908761438023366995991058905116653798664513035064618898054108752092246554253385418032846373390423069707503511227952315941512806644051468102814019335674135702325393971455047580731411365321050300019770834134178743242759012547142838565932744121724749336335918601542266639975623553140192810033455045984141983347437171437500301271320262999869754819502012027759816931947243980634568261026451870865395654963508258125313443751697335712175403979017572385921352339518315953979343005097620629390707123997710498020476765654371978652534921958631717055838394122855610443248294659659435982207840348172652915473483686060880102957138046921167134679025128793110572581678725065921620066661541360085121096108521585208110351871351741662989713641380257532425438610907018409928408217159571287737168815174691848065658385377484487936071849163405153290683648445360235487140402220887742242897511224800543515937689456526837839401373839767897612300397932854417976829720721156703644695363079101728944108053046178682208352489164884202463672294957209948667537552790270744045463755499205457528048366988884444396828068112276297043938315847860243135512504919053518485729730326364620910111136745798548298596895758793692700608711425760688026713240485014236646879420591116569217731225890659138212507021229642733414179069011890750493308849691104045764311154095487929828535084205209646788886148710021560163945795069131945889113210807971073273760801762992473514112957047196381787080637266035139541566773535882984864491774522048291780875565768890232777794505168383793473573438414661255053674093836757331900797891365577404616949852995868144220387318916556735552455645252081149660043671986508049893837627471646786441803755314678007721066444732485201125382861786065111646064301009033406063461504237082327294021411968175484037622896632040315109151889956950333903579925390723175802868842109760774822074956147186822697500195283964679773296604730242968987903881178791061305505358549149699162749834240349844814568124599365063809177754917275326889341562066368355120684778231611820398947935525720512573307011596879996010346480018716517833743800565914121709590757223136720562450233554544405129497178110880449994114531661432562220489716556647660639451168350665626970792668087899434432699020687769264036555215599123148192200304859353954543667995353868350067141150145047309307752440967338908456734356532410764549252470700027557681661814932370827370346620708105617094663199129730107727052983086556811406020513813397782365438210067352554765040060506471672955441751820449458886936645238080280785748663589327034786841553947322791493158982907067072787955476458010233634697146427209517817146515231657503395707497984158440973608582795198535608586711699089782907295923662905149923059764611430861538682196735198061132774035433242410914415540574311745027014659944189607335337382905138969748130472198089287065962065757218911305412375799506995185233297522046215236151127993133519611531723607673935765393225991400006836139103119867287623128356083918304097803808135214377876737093414081249764117273258948062080302419627914291541329804524768007128918216670852635758113643165165163417148677323295389769727601449715674720188711331705809239560363831540849853242661938336592458803666094837997709005999640264093202906540416437637404621682437812237899476221290978271838486915094057543183566249238411511031475809266547399235044000630055116916713778131022671084488255912511786626964448555353741216362393428825033275375908240399571712368736264856729158225224255118389105267992176021700221293425429977928372481651222176174106882653444510035319351107704447846499620477317852219051488065285091746342776885513105989047287428868325985274615107123076961888549291466214249427839109159341758895508589808906809578049977469893856986706612163133853080538653049801901167953816400769613308698535502392174182659393229451385717231571903722724253400991979632751971315467653646911223455391049405494015913795450286113199432053748850618724670324120648007097311761154960702843575962878265884075213758168325542905834134669561005405610570410720699746499942808397407376578209785261267798316675568375334189248562950961343667935441624038393944221552198159800295257954086215613594557649389152237188147065367215801413751245615031718150231245339263813339980161096217814725136914699161726273412513058125783122732429343892063668417640173578059472641819789464584673651462343319006663562950947652081766161140621839601195286789941831686438895916900780646374636357521068949526706920939425207710388601051207314788392810640964474220934920996220948089641491965493387337379736265829625755086960236875454242165656644006692296774504309014381059056876112099328378300948864959871714865390554628895643120903696873646857111093046858580666103226222833862968002067950090923345298387092225964927776287370761995477530142754537464159604948624532969137033311237166872633796561239106252747007511233323168659461318890455111540945787021544700437904578072574348937097221971307440106589460057149126449940610465044877365096562282655837474422438045173060925064638250555835693437984004721352325541189014512805828742935473562072375853160416522595688243995748063333529356826271739235764402420949326901729588595738611302344085171560080543586864189821684306884495317416906280603232901860304294271210604142667927088962313600052964236788825334600627243407103669125289959397185938100421560531293672566675059471189150991606345803092481579844927103314726346499825134226576594984626078147965687394330483419430972731735209556988826620560380457356307917382244870259855374945574966057144627408082058594039064127882008036995844172126400689082972661307864547678668284677322132491883235236390533242427612059416564589232154898483194833307283638275464122046189405695032125265770803048370957355773851504638389366417068858508758167238114008601188212622003576082855131673818697844033507273567187780098225305210403292992740420389081744155275635113225536193060379236359688332180047978288688741103883902264538894727193925287034271733024911965529355145246491973550156134968780719198467382272572144176148707019610130628652375963553743623805107194074687590055602807916338734970768629622118385416071642525856335593772152827728046945357345500245209185833379301704130798732182157075535174995734979812638011193449644911827773159234852648690370103647057374366474272926783928599002381266649775771794988446993737846178629308248334453811020726225105188549729031993448015051152192265354557627924715555194748795976472611272618336461500424184572842062340625797081536307470340706555856661068868889834682414747302488827667357377289313773204905976912327040286867952472751892061764720596682201078113540895031464952922606968370990485827528518597332718206683437066472396857773971469642999022102678245083872305854988539049657933943880409673873862682294259821289314622414464892433813691583343747861772097025272642447300412533284872562553401648488374077248635519695499518918180634545100542297342033401009475789890039804595123173182078130950773489258690033439282936696382669046031216235876265592095414874751895033421977951128381126810143598330965452038104054398253002789655345760285595889616907290628021087076895996820189990839413288883073106435062176424313786611568349650963316184616489212657855061420041537055589857254779419557399753582610532320094000321171562049014880427534325485024389058207554468560524891191190544864527822034452054470274190683457273107137670622958428386097812800571353385943550661314072209703712359037232354886962868892782693902345914603324819738373223402454478823806295713936605120666926926605982329941612300219377006072470946156678659767371947988952177691507490459368130441007304663829134740215261438213938773560217282086435063350555387661181991399382999211449810183641240291879756323578293189192201483056131019509181486388620497899601505686900667822093459050218969862143405425619481283379538594118614010011654140845778814702926295670631561347806417414809309327064378907384980949573684364142538902122369385005525391318432888834214063105404311397686899130034143611999420156743846921561824866537539484227923723395347492672173236382976486358235182407169310523418847933908105037384912213962544937471592324768640862312831865100868837296670427948980919419966360046012530683182709487905979139882821609848507757990745854009354102755751106411535502778912702410513995556104558759326495560076788606400623118541756804002366936726309977998132697644269742834777846413171279833596781585631191040059462855598901956042822155742140390115865295013867753533531777529644689881319683831444575936801404512014420770251040870874622341990045130428810404074021590383420220526909553411614196630479762961584420991685534398116813759303687264472212728606565290159138373359433603054079840698044799112563109572182920076894971173490649262460898917242392678248264279768624566680765842330665126694307005541028067738595530032852348685359256135280306684389544564396081452434340430495967275972611285795079705181135080451049038995926275327388655891032064212290389940379082877322039579120905142317740518469828405566894815099884761968930024988830677414807506802024137257669421210431108744981921659399097791404912552756005685782375310970554999125635365094597456751277991722730075358947375643103016715453649450240637527077093871141975123732978136105610998809194160879894793157247431453860192798636773534736487873428582504562881489929005917704843377177660003286374756888419064898621774792610771424773251731892302372491754342838671193766279511679303754025965413354346853203058097607087329199381835334758226627923274602303981764718962153924643065971282038251438441988098566828337805981274213324033360416852221013812772619496355206063331267608724626686256135212030612099240868368354524807752135146651589207437654578253376661131948090134144596919879023118926203110990874734327120007415333169402358185749652790757329748407811809030594126409974886724450341275425835322185823534289764286116419432980011906313980121132969573700659237056615054877019939309313066691849482226944992661270012287428118382103362288337669622087525951754176383487001134199876160594516967176236319545594053760595954164741173621793721100815130413583539275551489013311102090501925127695003335781677172815339251354543403041142299737157373901443412170831294518590937618234066080145265230500268664643945971700613505016556775227177797662007315665205626910639393995731425670182061944184806401397580844967746324629619861311525759416082019844346171652557231196515706221727852323915290504875513060007708451331160148895111546104901243654097954204749763505574395576274167248308497209173332633813143233169212209178340634829863952479435599047048350906108447805343674308597038045498947777999702756038207691314742555968370438677297648881085860206218440297804774016353052813509912891673446881332839023618974095742206986761657466507186162401752649928458574137534525456922343116507227424879410361071576838261379111155120420088260463448685412933348510355666620173525788459908131370500603830438669219846063858183754270238469914167826754469154693256044709967214904220174561441087928129795794520742988918742526693447777529082735249730770235570019148862205807318131310624327773285979833440834531856203012090041502360875628180890432850388443382585318131816977891019914989627409152678376932149758871763206776064554164067495935037396463013210936835408913830452205916021920489057261431220361486240214250929277999724678537174138285618075842676375697716778144372692333847995815362124140444327890336016964752944250055941861205440483350696306669727811721206214570258635619016122143490003997043329125325494263115776824727358686199112878315196759719117289775430751728608626776383606817812138603116069276498319173804472744731885594026117988537975053799712425219133293614981731835914970944604149752592910668142345712300548578143612737991935625087444401405254515409833818831294343786012881106713886083045797049719337709462082035387451745538158676909431166265372597941933799412504003844605767927564791544640202598972213912930371042621475014826538741063579462468043630739550144943413958520908838038677096084368225939565721187190653890043410996531541178238035268981648305973970354617960104686406921907032164596838161315429300248885748744809351857587538017820139552761324165444500443683226640811227848160788313067526406617312652411468187165485133679513431497146433752644472770182287490322236957650070065025782372221086126678074288885499295892316925779100213327127845426079692111378997630779083661860950850360906657089187855491934938058317539732797203815342571379769507510332708233631228458027179497349563119124834788021265176356210389277617915203148631908425209626453426577943780174944334000213881311470027766718934069217814124967510055751694501437720401971068025487588608483426190831370455194414903793436633689058616961337418232507617084194742833369824571595353863775476704014964569687101919120131173335685603827774977832153793358615132231972203699149814140470026859447100682285601241194789978155220408394926520026056712312905778230694385021032361551842777430211583176958023149982097475425158631780132473039821806521343048327386022678496107153563950078959967281625908510506975690466831043376989703917075665523783463078149598345642905154097829951117400021954855097984575466457684225741278916153842576498973415877531511517068288748163945416855171081384780292392968384676877233393430474738432574105605416691680382399112802167055461194263619590838071816542916393675172036264421748603651727193855028027921046732177974979508880720760149149477388699557062548934771958075323274297432184449193671660102267027085255457221787541555042331095937450197010146839446584519781297267039223446262672023779465895821241657515956349144676538013049590160346252645734626346875361914352313628267011758423775956179632440390421724098204097277012879559838133467722224612936389174309545236688092206969965999189891031714829547096369233772239054684428147738440606949643491872594028691819356691625647400097856777362789735928191428264668999437455875682232495027587474416291978109699446057530022871801882436923305916629588891037784700604434526003608879581004690441519465593973137073894564059449551811758940458532280660024606859768162404582334883156664327844245813520094234210933112982127615439347565203527014366947813114450169792460854500128377525612367336259143629459779793987475754968065162333802032279608943158880807873683058849755123064796691392624311843371303269827731900618518518643660861344602187960058167713947160054931525253847841414137466233548468588126310714718619922360921352243365684022482146951671819581418858920136658806893788791855778572188221801709925483616225177695785113933130714732814023273548895546602297582358492727979377833759133605714158191461070503424206131642565199398994081446062077399541435331345806605945771660117404998797855782869091538446462851257125847771185343218178390954071665961987281532194757658110550384756784833225646693549684015049221584986486289620820129883337858284893657568574068559134023263391358451515244639110767433174145734996316910393944199386273518036515633850879885083464641110848905545064359666009142151815998307276856352784458321087384231271023781569318111418548874199180739881466321916455135139976804582092132816250750982983928992222312129166493111163809178992269128302423625970174688285516655002179459231748955364427971083661763719947308413209669471683289824232452316718376696129117752558839613295549059218188381703384549366277977619514696939435832378853940516445172538718872646387238975004679714837360538261937489170099964782101558029025770668118667799536786893019219749982585369308148676932472359434592919276780348773433605758258890060121342450771053423298265323576089611857180514225196774989663370437352047934088614584497078559827717236437232645037209176062353989941521185460996372002331651787397155915421410243534842832944069412878905923799850915335739668460170040079997945438847041728136310538541030327183475335902111626814278890526583328437803886415521427601878020645181258499492220205199670385854449214842516730394525580342766810289065253077862223445984416721118706130956753163435963263592591143000409042761009118239625640178311081488209564501782053303394686393631450225084084019056290467105250151272162836709408285502537550161518281235571980763062776591005948723153340170477308570326540853819683948512645421439933580611923582291635405655576957035462778618419689972869084904412580964223222645200683401990051753977132113932963281301933295326454788359419440996232460090756842476927623685181634554248001526585060705178623639988491625902837965814614518441445247096054371898153280869283554397683650734588607048015114428122157976732040388149883814296831426251432090406747321038110757002272259973622265460109072423332385474612790472662168008941010196218713939207143083244335768466367249163660026325612698901741426216571091919290195614329930003325021540065140631272272630955630626199029970711047834386886715060770120161948103223927776387223053652472306006999714733874884528773905046203323243130868787091950223301469602278689321829196652695317227034153579063415842000529683850174351983062315669653287924449364529365223281925348248048638353307320314408525065731995201252672321431969093818981713673224880816662415356625192315691210253954199430351860242384792651673598286056252996059963533835670842368257754385635988679683399696540208787180671229974172823388013214457767232327334469962069392331725846995226392162574780942416446049771642142190012366535446180170270768138315733865734602602857344938845707148926514319539614970244282463903278418017658888329605624745819952354539190326740335493653298648060682793786655000708604769285362558586024792663941129624266986877875574107900696469318682288001275967341837406177494136071402369646873585046387620687408575463871450111022827600211130874965249312820474180238987272854872107165029237135893007938550544083066250098735812152940346514913814656625670804655474496248087861043466746118785696867024772264390111003008578046999384534456970163617783783688247151460524676952808645100400684587648132046681041423011926254679068867443780723610282792503459190617782843378531696777302119736980257586920843503531897822884662052620301105290142051530785986450197723718959984640093877024840919052436400591949446217405828766937990840300141543119587722438688941839045574054011845290889170283748117406655422333238750778016538983525104813557530508061993564106842507766760760105082318003807892796689314614012240391432680606650305740207493754370557909911802567103188000946135246657130039131741062225235438327778105904966217206028535954614792032119427987909213398668869975885425596470206082296773098540458910130500644180529151803062866198824917788767057476556768280830694812338593208702748939810612270682495253594253540578179359406839406036586893081801100308617012390263013156910014989029231538940015968660587554785419610068367204067774640537823331344778386796703537529952552670445711215189087212170641564446660918166602870084552362768312690615069111686062615407917647763479977611768765770339847498740948432867408494599128089161430104912938807087283677812730427080485143357843555265500133384300837115597901584986758509724908411507024162769509618147104341767570144638009681420712211844869925600827172635675170930159794940443819864955236875329933492997413525860404266527513624228806494694523826438225162994076144970300759990245534731873595830410354894802824473820085406944636359841539306510486141666555300412381900619651501210125493981189137407231689566794233377540520763438823339611671785031933078598121655086350181142123157880641475778316952771923089163138761500882005703320803312078178418201203840998273624719069569397067958891642717659326649694128692966205837226088268792511314678801438942066061507124027007521212930000621132254090424013735893789194387549162138793336255629124590711583267020370641741539495135591043971612564418743368188384072177279853547407032863547001300244072123682413143548735532152087649775773817578304187914635949684340009621920400610640480926685994121913486074163049766600760495226324434528500790281224638517998758706294857475309686891519602214802313778829807724585923061263514373113824361141377748211090480474695876970206762952980380149647769352725456992484020043178950592573802691262899132060889350491250360211014798648515934424645640052215644799497660861219475592605387461267224416325817423408546526804275239913473087004979967056730037435778801947787226401933986960715188334071300039261840585759112556299370523239062169405284603547108557508793144915198937015866673325919861725847849098835072548036650344822521735582786073020298833079929320135361020988756520200240146471615826031247675920482867668246762717512109475228905589203941206514151734810888763308465844383703787031823103557549384013837159604577378002636134085060033843797235544648520948775447805695922648762182956466116163374415232091301552210102476232467742990259978372940161913838727498872092117833156857280290083465493691912882805693998611982419686123841508790908054650352703756666022064451360772164354361969344703979883481918206424532328216551478042068813025793373325626884382241135943441019749509728857186008486647865193265981505669335459413528951598022029370149135004155584176982133758212789960651056802819914389923625963546247614233303040701666679306019086734920605045891109646534560337531340710757385271245957152208037689767746414560477789648720831101265459599316184619105377247233688346960077710293983009486041283698454942215774882540742361332739926851042213181416993621921655127235069684647629368416372328831135611643904743056129298040756389753268635598025068359317562235611722204601421637794143284657497493829161763614863380761293221427661381819758395576942265471228213705589962200104000324290556233847949769259844336743772005252492226068578824896888468876899190653361989861797719483206460512038961664569382891085928649345224205974611525360954012048891893101503655844401802160082571271445039381195871652461476960243758339760753726658181088795731582100827677923846743735251667784599012022216216900884124403867487842019022426816595481355295065557695416992763712425378833081153451276866448148553646552046572536057567779727919068566051576854403036055123586213816968170621405206647484574765703478519931325285450349252389654790398505068883981240266972606071390035298099415576000064804435994856873562523974544989679497336948599213655529809841089549859224295782784163571269138517681388670225690002653409154497939793757442259455858312832533814524051946987430977156735060946284539419499473582541035686583364694424289005018599722566975724843104293186467992653515093042398048842586915668994261320624284625537235089635790583214321431853445612982677557102013926022770503523554035990553345975818104922878245422325116252162772108393165908182947284071378169437469257734122671749666586230429055242907424419559210620309139744273451726194437264905455418425249510080721060870645632509674423523095724034618154925362588867737636698214653797820695768997353678233537715026103490550968684428384217297927046788207002360661983566520803197956524714855855199110187770602509706564413840175241721834487878384766485438611243465218338961508081423901396033999317489462049665178916385342901864293981038830632869708800204854750234897734677905044032295716064329104979681723654852403603941089532172033967894276928237780322041250066330657105342371935402953617000447006788641485484582912671167447799746540534803546190383605127666586784342373420845863996607109993062200696051354820664719967667827963972097542638554799023793295691203540335880413578297048159385330010253766615384876578771341623714599596393593865426606670261174512497352064196516253408711080636540980505900364286878007198724160552052167124683436761409987796233238421785271151683901679206698318650195557438481695111101362530274431232283142976099758596564377629648163074084919410608317900037193939882421718197366670193489227970660224173076488595917618193455192934452049860826626229050566877733943745215549811799688388912861098362476922090199454427200738112425058320445585097281521951467183798178445193785673851699045853305871474260146895624550369465370589230934139505461505078806149077678894172584580440754144537993913280530485447875395185153742295841050785274143367999558435471840905839146377248787107232646442908327851301957064331422364241570946241059042495001067084863180425024102215142316674176468772545722802592410291645467063102277537773620055392544319495391779553183132446799843959142363839519930182590930860003386982191202734605475777770239286693894631822073476062855398865139117871721670287257294991341413368443503332123127253111303273333222189404296053301934733485316385126986480729123271771099604477229948802946168432566758825815788820020829698658711240154105360028708787428041081665829655451028277152818799725609784786083588750499750196727402232432390093079318718912506164464020878425172444640688014731011952231680950506825685248304568684417404436171372810382777227871878671248809167078349259385082064685331698416286215844996962546438754144864143657484181730176503400317598112731177249053485357776768501449839138662364642364739243882995985610651593104101927080941664950139900736014187749259899579702420892800418979500494680826910917293860583080862273710420362160322287990306913332057889831732679052913682280167324771945715000432963000565140246473111496380848658298149841182109810728863954388582256371477501309902796528351612410603281486796183636274688355121357294400829797979003605465768304005681462031954142729178799319818726832656795941482555139967295212803470382391194732954422588585761026479706012010097696932678071543309620809499780354517290983143385950527309464674095953596172254747849851209796958881549845726366510372692622166621274926171803876113312291015006538091449935512364646344008070382866339793211243169506331837359960508768950356674412286782236343250380779756537916233221501974989768510669455247196090953797509727473816219560665882107151207087506503398494012395672025361097668748174977760348180669932962649783821522611936809452640341590348750491841854817823940810712950485343553070629820950898255795908768401421460819185053053995118446060004554905776794847382225905754884215850542204356454144513624125359003873361847445476190604289239611264861518608474917797906863979503939410736720344311882955809681419738464289078297497050813581568014623430351911879775988230638743479580288024525228704851996965587191074742905813875027792546286319474146225002167878672766614792376228910137100972706026564951782016074971334342399570146827613631492790083414235432214614243035793555446524873240231095139417194049292178774254638706783028706117099618786471785412673888208912742230951594705613814213409943566205564767915751229564512405172871162720521698430981168357393030002241795025053511425028786964404161770308331385868576420086400341127982653585269624190011114971476601711193131179501188225505684988077325898130548583229223962408857178897133272575626257468920631662035313642173582205574056101184543922725967114924813526432889121896319484293381211039782287144710416345110248650655997895568481551995715857011848219669444722727733986103098615043283460601620875640105425131617540799104940848087045852679066618082731862467195234915511133612667896760380918503086813421700442538438338888951955940760246440248538794968651654896790571901706985053068229000392724180283721535938329075755858314920328199597211016554221323039474919911260552714493175457986665913836740765549915607633721293970369309934045401537823124027448436192213710246871602597798187855126862557918007245492414728222450153012009909415324083659506251579999903219700645628300014991106963246715607235740424494250026748180961013494826064914305535060121306028706522791870055229151388297293320193963228418780307369739904012949583977647994284975028491878234507362172404392243501597053903904450370061376329467409742365677888736134499843238895807621993996123572326855152460578869698092953127240279383010248414528568368030368507449946606592359032031960755375989450583186062937179878518313879306270868003791895018338926538451148896272368731682218712151301986546424505419018517190813640704329077782946797053278537996291003429124370967044507899845040653007020713543215320642902840172642938954988678206041969235650024556235149737763048101046238017749062729406645609986063908253447437633449570870180149107870963434450437275922448424213078442579520610132929053180564815405548105884316311742326034152228090383089434748199696103424631694406681214327210166466000578675316559337445560612220676625641097131200731584074581543957319664424493656589881582076960142405539980013209086545224288735143983439459719352186619542798295520259920658992292522539736725146953105238854213634063230431193460316408520947950421117909558786532285490131900198821508692724710350224894456392288243305279590569792650191527067597548025596325734290039257944280136895919032591139554732736102141927807325348486972531045953796549537589865193910048393134438763368128003386077196995826913188595663141165608887502119931894187264595727015526327856961089180091709352057356568813017210189426054716680261592163660456685970290499300549186370782800049478397461852314351980369836180904517802209567202249625861566449114761715348367077761862629567504335915129834405129413050695324153448773393849256119979255349426457065080150594616394601055564565907167882847922331898763031457658371071094965208942629005727953060520444987849975680811524287023855381463282212675541086320785553965881416595106733438006658880655945143999274209770664500794368189038218557799736929713922041948751722934001680251354144357815417449352134776782986576359390726701203851430438876656665862964533007077389343248450442271136945642715977010051829648845810081599632064797901431346865792866933665347346840032167942191190796294329819380997143129669375040642393641980270081170410662590150212465488144790955137681767969870282600603900902507305366747303855769614598001495092113408563290109824643584145903805284862632396639232241497461003985378902022495440312530583263757642582905847285407161328309794474410957843873048430996002032595658101457197957183355240884541309336955528938403831922034766051714408990199381228508774303942531408136393435472391031515735053795893763668060902851413143848289829078619694677797746310738904776928068594272527603771961136629510505832388431979524309972909049080332041971203267274439992085956812319912896403893737204492495292113341165184123817894839805806691285520999097757347583288491993702777386279434871757014714310008442851430143555875952376661027590589158444584511789894698208506563591356517278452167182894956735835450328041599569454127679068155034464007270034591675216071226130171804503629217542251785822839958561194768776082020560926422675088764536742777297630616193419772916662664168708793122594158514960186344905833565461868312069492108135189492564578375270396913334028470579249249154792455319852321678186130763663413177022448826637039703518834975461585826207102245250546553616901433326846506203962121413940279039357305391269685570323966290932204443814087001591457621959493725896396232315235415347815699110291848040320284880827887922584784385539472768800258498020200998063344307696639618855483870868330198521229178790057949708817831998057021071409115359047023420116735061619617377088815955425958100494747171907233622941435794817117435285023615544399127805673968448677298319338713755430094703548303866599301034035781656395647714805616748861372683200537009564377737130301136847654975364188779584438776960157498430310393325597822952587389258595621222153066574904771573730893714868209846291673825950043160689537018773922989528621384686106551413592432716626998330563850894883108458712627157104106223703587847106173661166943285874259468139277624205257825757758651398189182820472048302425413393612973925576653751642740649933458146713215189278783121271483983669835734819381280137639208809472641885238047309746940773049738734340664875453954321806034228081463874422457795480710514330319549096583704274209783452055414713131112734205614310409750497774412853870422648397845814208945054324202433075659762219194867151595640405198994008826256565668434881367869762028131924365620390403172743177422292969892451490209075578764651816546853048867207731847885317420055441157746927547345700464352682749199439358045663432938392300572818881321206354587659404469607864124341644683482276125014535943316535889149329305998908028485517854325918083718908898604173280466277700934614829941680471119151195834311456296539746439276215777479259064587690508258871245256450633889427477746924136548749405421548874580100122689644810351812043905410213057825282718311298146420831275372723580652355625916436078846830752366050960670962007256825895135724798948496710211297873760277478759133918709021365874292790215433371453148714943809339496965229228350164967627920934192276131966872885060817063263268058418193071864178004578511224626458890302224803527638671407108518697475744249497883567383689479215530635541020189214542726462460415456921517203612833554724704739000830545198523570938591365698130557364998018460377092928977989994627211241318807236166255744931627327659255973166330922424313140582363510228531040644707072692386006520029838781491032579400473377407770820387097100591677702742154150420932480244839557952843404662478926447444574600250640631717513303198925660199928256562584341453941691981922460756294078366747028199232425040286384583203561140166017716051941089457595685502378732499738034054030435519065600151464005011958165395127883393779438368774382458371589674104972531414423346052109948042607464031378675784345837317889532947532732712485285446691904035673063469931851944568843185170292158001457967659686263073149635591080013799010631316311617930462652554787999553715260423776505197485430279806600208197903507667821885313298086273349295023230819236350046062688878911621981669922660752934154116698375007497325400715183225445516730141784571651969784226339736201460165070715205854229579454284781364020139985567621892790826720346303982185293615711178363147416151674464995412201824379800928756443187811140478726884735508105923363756611150447018278900236253227466117897217214474883805061704829758440385643849514382662761502431335199476766688202728910322875883814911385013917589646767140615476159155701043912326939258108018156062697121154871128673654235121372527940966798346376382107339443669574288814802719830631772218402439445253961976855240078413121928265180679993141729003228451374667572734111316580375140366565706404367076382069432263920048224143744894515167351015848690538074529082033106092303780520192185982788531130716360790376764285159365523245487120752816300778925767423641976780883635198869355782258784717219306563225042994568147601622255926548528208079631907391831459700675989640571242747049495946955261958345984938345836154077071697036610935979567828742646952438212266800485045594327280004817804239673772959980312383159495562408811697626465123869560485620114225728164094444407675057168448164251445697328484954708491661606081024120265447993956487104098839318789088967693516602823577060387855080587113709206041348386239743253823206882962851529465689014655043496044718841974389006147189686700273798209688041160229236143686655753016769705453722779444900833082704065203959774604801086656221319289671735763340099989221717334633857033038714489639373163705789450283699712269045030491825874248229569220538767174874983261776042795509910813299030528787809919200316306712735322004389680996879930512577702353152589750954943320698207599028240392082947365238465125246271696544906868116024308354569285886737709895795774840981955467350597117318190388418637990339841049477777645925958256477910414134480735275532578238103764618193453014142460908394143035463791829510826565792875657232771504726868326051895523483853605694882821558649308564735053277842523620330687826990265908427118301181686006705678802348970319035620380262756186246485560936138785664966853731745371926137435878504337880144318826442146750823382437335350035682863906682215837542966358031841320854097732871784542899924752178630618468422361995795604642495295416942946824881565012099647945252272054280467933211738962985266998156999114233906827537982230373380203567557845865043863049520069494021753130085469165244165133854521599221381822819525884174898789471078010327986537193840294707960943442077465020517488671718418311202174152088387019563974909507605589296912284535210983599116676577105134577260641406177903854097121760286043217183248410723464738255354959501360876677979057945424547024383154279733739620767549024794315358398610665536676209371027290368255693362792098724000500060635909507057299140211105475297485641358332176136402508665070986559184830138902456216878520591395036547661608511424271020929469561756187160326937470758115838206934094478865219109916593000478114662131558210642821409220028853508467346807440106297044884990069693864697201802949431683661564553354557925066953263672982759058054911878332665138989615664590707841382707732748281477128807941875772983218843932144952470097849784752366509088318308710462157936788080343656678478539206117236453368892859128944209377862850859904128934594221540653395280726113140614382993594351301024273885080630609275834056194976337174375235511724524679994588921271790409616356985665665109348321401289983874047046240556843443941283055830920681247402567286772763964045337167766588883128598015392505844410455043234313103669532381600105920154451684339086507926297909783895350161261775857970473544752373546360132927756793259976466305351201343149856887913166219667576441229561482599803948630971439559941911876150523944548879563980288579247897867802949520174182959233487675829905780231383568484213864008579128150547420325222395328784050586603163461059732368327048238760493955309360506774474903083273674784179499122644157891617104003025713379611939675639345789695952266838276369623376615431508106760963024911204516377288558995836073198298921337270743827748678243420652408550048583197986906689470243008650978777965787116037304796780755253192426591610034228349707689128118315760618738370488571788495748356819952168041797689447871219597651181543856556728284223628509868135183850557196989176556546586188120418036020082354701642168609611526498934486887899124104123947013415965780784847877176972314482319562016388058113034639998488293675298775341392767063881301940756479632886227963380178482440767979990478285436918607521906426159434072169831729601121202921134970788907947685097842243469425506627915405704211279459661547707706623161015770585734322452319245348975659369716334472783071811141258283323059877751591704764883386850841078729122985907642428505611807354296287253171961900877601394693096768780129206807339980495284745439982064027190198615321552415401759650299831095029084103627158689955906267675172963543294972076953979021095142931912424230201537918780552810725871121068422323402896342257600197059530019020881521293986814768236739641291007468639475860780773897891352676787007924240420214796264988712178914735652821372922202813412088932870601613543831721111977182583955768127440769730872540484121246376451862247455472221504250869435934477665364221977928550954421807766379741996423633942952592693557916318327396146448052318295825478572924199289459659561198775337782369878759789975667146925368839061033155353376408203158605496087631117541395952525475988507433811919397073711068195783236703888357731558454706014851286800341343310889006461075091076809649485792485245178114383901695379419073207152770833302054101385780839743157294757399778973877440550710621836454357571258933279943287767982572601496302056291562130096248254061995327376429090095487599522439102344529613855903295697268336216220503411440171892900264777674817088643536451930799511789032301254281659009501067985404117874636820305316702613430229335611246110708096721891890439964755740581003376398334157461422593253175465147252928737202163315363896268446426364379717748515357407577057047839901173074032168323897592992503145311260936535136272722358011328110892669256260465380270892624647791594655877537531695499511439792189860996525354302034787532568574041648114258271269146219789932878997542281539584223472766170531756549162935475573185126618617985968022128248428805033289380087899226524661681458994660866058906747235084117574658728472300507646720233202611898260851827265820974950085943654218637823504945376422708076912948570832249001705336504497127182857532675488729698746486885982776658391298359469667124126193908952435912760553489424779687058286113196789060587055148960701282305210666049691101152721031489549467686799564187428285540088660984303344227664412289647799242801065817804474251093847426931506001597449699926223882625271391326812258242587972749061192025919663007851023443629192424053200604947401628382965170802236818724180979941351082686088595272376389085387833170550441320985805658348717321605725819579499208254244049422140720780413041609127670239005736221829719119294182035286640359302455565692026431799152907852465835364641237839065454896880211185123898276384149820389599269891844167364211464462655610967490017666951418183142771371404430790581820898033505702347015879643641309817795512577768092377546908939252124598806819338490736008844197279599777627359389188875107728482062274163001400050143439514201251113174534273856437269963010664526979931848294327985081885709335034882577470639561501990971477241739860678149916939784420637663002983563962733706415617855395990139551719660742320763869725304358460299818971703125540666052732246831122507881426906248559183893059595119078435682281059233575312560226046631223464507471211574130505684061333662422550162507744737744143767469404480914195415323334385952901266273612529502637835683211675001057682807608176579922871031776271976636987538498480114079296641925596810445808960575292827532327587590494692789124741277919635177874797440107965602840170571259827247664207258718683662440553152122928699011143578744969945135109253223661526692399239890669284544192419100164128662125275547834215130801184654412543959215788513731515001352048485599187528096407985623193604302965502997205968479645989117919110099671942974759804752370673304935890035465354720355830995160519976178659229315894801268379451591388524151975075574896883564739689742938992101239636010285194863288285315919657865491037971696194935617793784316970921879709114526625271799902616220773885064841704767061214243224733573923389415698624337751876999525115828320282535402776317124837454314555676396334418285618729217358005890089369856649026932032666463304639033603274422397280870625894486052888294756694521984356186372167900493458169199328428523527156344349189796877200799097151364453173853981418915937639756420098907494396677863329275514264846417505758205489818182496722039651551582075475203285150724540423571183657207169441793889382886453700331082851180070486906635860491040306270722461969998580625866882886511391642072945499761120550236770648205047561228294680823159553290598247735174352864181891973778491704715702451160404891877713492896815900868304305196585066024195937817936169650904836649881445675523140696967713562676489042924339074625845800404718094719071093099653907757137220630600446673496510708616604753578866643028267474159088950918995784046852104500595072740801446376754838343161079311014694809956786998356222434493940568114897229363468948262085241998356012362272372958296438487665260408407127862795204324278114172502006026535477893068337397758152477606943610936682073056381875773186287312299538346601858312352877932309122561322636016875610374926579882369306583155644095493562010749426518718014514008807002046286346555931550268597145607159028022907450421877674254713494499948919064272149968630698018246846808782083773438348033822852442250711102090565956354126570395369993685669236890137053415162782869347671424227202167175284889622614416674177926811474071848236132105945445325811947783094353691429791916006275137105968999281307033542325429002691193840690406510904677770856794617259523693264492779050203233016694182528061641463794287909229938797804048354518113075101455023205892845908944893323705759607233796705582125617971082314957312408867266933105569705309686632045941563727189412495040077519964597748102677122263667132448280185691788650442333542531323350641808313323203825800555482927885013759530371246356875767105740348631113508587587085604139352524160959198776920195065484784074894514981314808214541458075880098759661088655767830335487685211432444040071146255145760462730228749387384958231454375440018793467165618603787123892904289823033657107290929710490043729619832988743056742487774888577948846975272025562337160488490499924729712792213976510334241928347873393673955879051598948446863346894979116822079508998896613015468544048268702872389820934966518640181111807452098191700377702050483872604051201873644924615633963642177257702295317012337097189518810339055628977952665784953218084725159861195831211023709605032044627731432473141712455653600235211013597339213168879300968266038795406665016327445801165937900763489697085636595271926646397177224302687785555064383935319633572928356196963219435572219097824041621241944568238544851652641277085273519759565321156512045807323198993939643583732269468217920441457889331388059774077241040372205617388527232333270984968246010744966755274556296523212703929590205340432255998765439253080766204284086383832319962716742156257615332030778978987952724143160319540050397023623358217814569027972051190291744746001274843430881363704916383480727169178354363505944710140866178374095538244558566550950344214785187227531523485158158830252294583481515637625096435710929412277915492725986251095453931553706207658638968264386077483594594699942353552611739584423847442200398473860350841144093046731464327254858254632013479804359184941127925757345601170764019234055215553682328639506306874557755031802819684639211928084339936750703866647699868424247973467693028347132247987115375349552272267017701234828755814433791020645810594581693477360901510451976606544083596452984191444792368158311000046744895492296489179430708925038063834557758007892889808183386020662876656412639269778110706737383893095908338025577567159336800949892359065927337702122640484547196447234282351268331718766045585414276644741064337890184144726348995802891675761061868956992815271471933736233645232646505974254652453945978213108574361417932879056462883390042258765925064846445090035629437194933244274163932049796504732251459751594115204509962427236441499740582993963470214137070798098452320330454515011346151943459119968840869516824120968371131560439520259707881091521577572488209585792421006920433919460350509365497365846124882226860377085586096004799090719846996710119939477181254699536009613647139473427447926427088234748889721626502570657938383565954952149037578516036504234570376205746978712615982729641240169137762707289408127138286182311263128479389770468678040645987979782467106003920933740450388927976125839664214484617236930446083060440565235438676288331873664265377965326328100176081823112549374395249134504111541133376217099308458914856222400254837727522206584056031766082360863114390472596778616467665238121109528447995591927755109680374480106670014891696860858480692573075124695458022879775493398260640516856295327514240693924776392854592975740741773965987820869123500781359953946568972851736368528128019502869986328215952173595158827135599022087507074928373245895721380576519103203454436812298323728086344909365260460149015215397205659598777249793906973093839006606885622690756217527561011686877392097134486795344255301093102259483672166678658391939485432159563864618792836767326804382259942690047764260021909624674678220993070657059603119881506398951818407508932594332522741375613276409027268725946608512946379674945862709988723020045953938719237801214316862894114751301801257668437187706855023293649240655500521521205170269125394071850681799613345288450859937492050714676149033869490520413256870282942587113957782395343861582010447183896501486531596000230109178881391700584108667463369703383739276864518417125852451707837087539152159781440382196657995069953424671697118765473329268619751200446274375974415465496787965467076066510122356357291685460484779146641519463364888288377755832599175019020431713978739010822949657077289350281933309683350693024572899123033319239217588692679664637095108302652032670735577134655601276383965178782438408048686066641902148460398446764696589332173852384869320082618790933020009459123153702310150855260463814895778707566506797673237086251334307465028426264520451115098152000527102658455549380001621551795524447781772435984207866105749437413639058764954893431884157459371337603742136422737131086937259478116217657837639994705969295878832532831890181723370996784551160012828492956449903653477004663974997424376081990793346651703345060964116399001837520962731679333570585962551630119234860234921951366337050289961452737653007870152906531772140026790479736703150482128235198946327601122689520476717064609262780648081323942469247657345847872494948732387969235956213332349273047743004163439595832228924289686847990220340398841078345563492511840282802374154541541010160227866215697507628405577326551600999805497618174805868754127275517860931779283072083759293794831777354527100588608838300458180349660213706335753011959067585414440015925670685503562401688361298809729688449840728416641377250874092391934617988637430093064236926301550056992604217620759249118638900702859039326938229163165493745002102467574050258479118222813932303535522237234632059828076937800421255583698701539791141047658904019206284006972765883796223584900708577245092270665738037415088599710338750118392575913955244461359690857862540878744095151088461711715344798574554846323762892521710035273362110506807700879581323363916025413835945283673874647960596174695571899297335250629691014622946611398761992297783316377035803117823298105809636973070419274700089391740429464061209133463866037011168703518657390352220564330481651040418451737567127161330205677089266607759454744849550802514339777353970287710423297265145270818219591830803692467765170973136523104914281133948430437738441348685289620624109382710540842235120600234804468485009013912837560082870652529102300031477473623988696435777702169594158874634100288743548357783307137031934463725452013016651054024454991814562735585671824523503609904638429816243224387636269027405097253523032753340375336836606494099254090747545549593703796216338521191863939674913929381957895826579055859283972227699416961628802719091625965645638494011165275054587030539470431669762871214446607870892935697944479450537309427799061400110689769722753670362566501936977146708350201480802901918413692794355284078120688821284386626184200610263762915425040358554283826628391552329976739242965450745327942809090582183341378712542525521476556248643581556129268786771224050927661801900491883324976487124473070458157940928121593286807367883527800708312029989939006198762203102880837137399675259510028118279509750136052347472092158355397113600942226136330424660847402292243299223579155446365577512401724694385658741535234316376817518517172021238007954295714033507864083568041332016593594465702656793567649067613010162070283481950689649726159141649119846662952393634747150160549510349393971132481818369808640266290187781981171719689120204435715708710384981911846131547031458474342087737024169435075746945064096666778343851778516019236819846017161997611626696410366911644389238740727215122174646618497054923875701090570761891072051341729416173396658140759987981995758150016170900168585903248800399397984435501312500427026754416264252934701787749348561947705725663339604441283070059526881901952564958622903829828211296005798659220346310279560860873372724925298136911485185653430388674686109846657729946233725801906268121712069190620114032578473447029756500559001796096104692555947262957686328890748111124984845674824130550378959973819927631125908321930275739293955636933688715623971484963539616907676526745176841785672803670841051450090538811597900826881529202521341068580351357863791642845540208947161484272527977619835410474130014102769595691257429736963578923367945819796779001329364285072851872514878232534907211038232817669689729544707476091789355094035026705815088375469891683732500778355922879414236349159137555184242854507252842887106672105216224338497042216755608360250679683056333166911768832153913977698356688201439623019655833398530768792030482840737253989524801902885451023037585243503787167506660053235534422270860311218566368832157627399388506085353274853056875899363274140053992802932532723447399121677773732648609636013678760744945104274385493768008136153780306776604352832862470793400346835743905885207930585455676218389350975430558902030232114716996780760971319061915175393712643379989722091309767896353506511608042592243791240545189960578616802569011944880251404559910678115181665320158638635500380967977452175458652378710542366181079987764724795176979219899013378005601820715554557971176536077947820394483849245543079079305294833207266366599543716587590322445173051621015147728624026439711274754095414781255709995190881772685988411982325089803484698428346996278072838341168759660047586182441652881364476505409927853933923910268254435412266824770908346905436149474522116749997404005170033202351727735652383969193877747200653748788106212632643080924799555027343666011493781082221634131786000115800527532639283271992802451636397937497781884497630369929807626770309301925263985234238223535468494748197668561063157799629315472363160323178527643382874901788938717158648518636914675163856356120369235079878935466386805542341158894090140880135258316104871194502614967883844157892597116435316701684065455950358859683435458545193071342419888670104186179834573759146982056949787285382952020862082433000346282397696225582227105701277516224778022790418278461794936732212468717036592126648343707150609120895596046847568779216229767354007873737267852136987909069791882697543711835076841663971927628106264746329198892526898692988020050779406703151736573577020111467418081340687461502028805926166196375545075325781501951167754425995643383324948014349550438884423291615785174269970753438008442957279928264240105060350448757431604371396473304334096454888208174333491168416250621662696634636814597975524699719091308752683563792391499272098851386491773146193499265619657547827086451904283925059829723866482869793682793995391709118099550214087644224991966036891201325981312800100704570428171506866335690782260842785057738926868343273206575148007542515623940682409066014819140473107325584895657425762847408131523408967258095943518705412692566862180115794950107851079966639223322453283984272960314322492936341088722206018363339692844400073191600965270527044094573331441117330304053657668109605831077016537795439082610396284946040280410226951216997521988364071984960100469518131990062322236152361163368300411495276050317115384884805235623105057485188409725619185253719113885598689469941939641992436432383698044933681062850389651285018214246448427000901073700855292135639319683681228687698497437860612592566680237375371349879354060970235055294065617502091229193598774465472246493790253469630220103775803287900618005545874786362438193545909373056445158398325271575011319493328116516356328227950182310720189456373624016736444059234634062008616982159256357126538099178370680709116109461854255722327246759745897387907249754455433977285181488085002434846073796619938733040644929987344753202640007956585030440157111534123175082627093572285449595894988281989994393597985590629695730378284179947707545685530580107463091264421121261049850223195363764027554858679455627507818630231204940793416502242665225862106741924614105612149828596517103762493845343595258578055003930250090812670595424885439057015283854762836277906103228740474568420607482292249503836667579000637902086295250603225388823798331626679745592629353274886995844400630425653529460476061041075105530832656756833504235981763287638203699325155694435940079040403847414727221173434176027148818804874801113610154106719779866422980676267154404805955443601550385578860174071909623344471616118476096850273827190607623190997008931812527225344561202290384920972152753695762465886251259627619090388240188273805973246886474494498325190794838070042890857775139031659925626788305008299570979897365528624389058724167189889309230492250205429158026687678846957400652588241360055390675698781155712816739100116612245308074512328351843377902702549559547430190358723522322146485968785075613970827677490350221001233463385610326362833931165386846345598708970591626536211196331443731444982457708365542433903532057509867454225089227725791292865977794314860971915042701613823084684801096563729473127562132871926502533602518441075729175888570544467278645036965062413234221394863524516690517683454538022710021110025499856336364263913655427710174235898777673771725770997837147280567858903882891185809204520982146910810547851871747906539332672290846062952166404082874246231569304705883609273863950498874149135692943506440981496902864257383557792732796138016155277153540906729710470476036670764153273185228043301645600838375927275056935901410426089355292186606529379970011396063999235356816819154535757790977728856992536461635913732020574357752642328918558483347744616228695048222824481905607876265167470884081203814630124855946735407602422692773517366523084590934634353125473748314130553732888713499196136367715948994481932966303165443824083730957793114544812406110127238256334320960637025616156779989629837349249801267074847424719812480376230969276902588944578451677155346594161235850639327219489682409624893191342363603609907969047406657455903114888608228374147537085282299910206848337071040081668171787777952176594861291055831965009582282970736127345207534914984952443782527697776635193507873345106859839922045533526264969366690961589295654775579413370600491794386714449565507582001361588179899373748415032739332004975537233279501425604902884155620580426355878261774446069321309073388955757538535440057945608340861670580883025511906148805159347756128490611247941173179698845164692126477144415328024495113855461458414729823207225401233910964039890739276919044469676762077344994718159652457879140968182656631028712102874661594139692498182114622807013849250240555196406074274175605084430658817203095436559509361982439703281034004830220669510113367999873870312029374245988226665047427492988450359352406258301781837679129688432943362557467976455732669328560763433465580636474999783300737909476699895702744750606473194795486509642200850070047980404377999981883279458814302396863048880317711773225694689914141190232746496728814726481754631202507227250868032704564668126776806041008185991324770549662565886609486366477351076513063063787166547045532241126288482409446645991925014970032417349312004694396177863960406641451498383359215001203598967086112877965900385784590037863704308003545415973581627872217626602015791770886273505747488336193773797374289038626304485569832598435165328159674571959302227773215252008577931159259825525040496341248289534249920627405096395123146185830733896779124978021812896096882625679774853959594957185109668839174995515653379072759011293514097094789914910349536902480022622552783038971496515627558325541049762666766746047764224824631937751145530189592172520773718281387641006640116984813738235349760900712684778890062044805686091570135599606039321762702875087856844172355952357205136547180018978929456318023686777053842896787211721972694865272931631019822907390717864598424880945484628567643780705509197574883291546489644750684724937330256741659328713908913427101712355426680790582699386462505321686630940848599609052565205963077177954901312913811766992664478736045348872020633786168299776436051750935165179278205217422816442088033976818056244190459292955664449522225969758089490042001896478075737684184888696025912252828546106600423099155560847137867762144509263585173193549432144428751697859642067792374936886571641394226367427481924836074887221816953764532619683079828702998173753635819954317247167556101809090846127203203570544961576112847985513962830909387435774527625422746374907007727871142337275884654605836225466900423541124873041121469802323243209707503114034686732488573572422668882731203924932604155294622009966164067157468471332454935106431622248012438125078395061450275711673318214933896502878182850503032434479679080487998946730176674417639651503694191210136716319854973373100793732872054271198680706569763693616633955054261441427393890604471375929534087596990003146500657730510074389951219083977996585035208756716857862427664497130438473628270075368500823534173328834862091370901689424548442803180542092942235968048951614642735419942119097380530958977312866433719609144662401949106046875932750327202249684512555863623451986341432803936784327597637363996188174889980652353012351543394936570988650627474480117381546052983024146821228200818328035067458252186416609089717693705134348914027028400273755071082938690225077090577332313859070649601778064378544925697815215000273740865802475210620938666687716447338320280840007493828233471330144110355927973485435629671369343343006278352069019390810935327144083922950497785438481090392132655501752743505807183384332951101367439665509625104806279377706523740427324514766474715480903578078382957832994432101674961092756270642676914885338821271071219573976747794064447841513000976446138354677795607299982874135311084509490421174192687975971890868899930416857411813809105830777373422890479550656853816357585783768923620587034007134571772939163456211819457409603932279300120840931118530373663093020829149965757594907808807331250357813530521187235343506743776940190072904123494411339616104279762414619107913390090173134809595345598716967944620376437585947740273150621471883674509328500833331625759984908747851136594129640126888483277955389193312280341959577026436380112894397103640192153218542851913291384253909048366108005909663457051872451035071873612079975574975197373565432577937892437188039690668695552339521859134237561813438430492847528384079441499721794743956203585999373900422884534708342161149706325661985074925967543016836791927389408696820296579867918064030208088445406025574214929664702493340523604928759332829117462779738938363657379782547454184049475132908993862748431897013102201757832250100155314950227164083757402569642239695822370825886849892752938308883362655658369004052991551680454689145105216816076690520665773504307953719852850852525413811924741529631112748347646425846563141550494468144411302576376277671913488206183900220931781922780889250687014589856404133819917741322416457522067929614549852840393021927838288817980684139497178808548210757596887400484821203710740002593426658544101253424679350891669092227653775093152542548175902584461856596296723768518353238060153961105406527157836901566290453659375498317216230192582134176410211167060118575711227032291323676254683704329765324682134626522759635753715561692686924819204085524602436641838654535764927689331380331725934633124564042798191954594395633864214576141347706491404420773408751100174484999229408146614766031617837489647466650544066615831125983612361276400284095625911845784817316142459421821919010801984860646111993058395474143413747453740534353539129601759853900344253338022390429691083392754872468220759806140442555271603978804113965331600716316241391545779695586387479530907571666446737048104865095337050576835372557954158622574133702252066175552086918935294342293234231286276611712559879482488003541933474166407639603797949789733079464671846465592644684253279477453646904771966758754743626563170420943207649686866536033795003625112769921481724414020748743603903984931036511713007321640415298584520173202097937662306185186473041175227350700434892075107502199602947479733004167586423865843847511246998936608105135091491898637259595650752775534027349526814646102442448099504680916210993756893650869749063070398973021747460144403621407736957071574055068190405243977837650261700997832857320082166514738640983057098916267767976179993879916640894256156130455970531310177894065799622746316734780318968197708745540244431404176478953755344145757382491099778204092488961255649018716108861187401751852440579422875772838556420966860524499112289855155176156154119579034733275090013248251337346865561041221245923043842791049071389656533319779602055232852872117902884541381799243017132258248324824650004059672203012798980642530971169691742993788460717570995902322236719382447441903956535093455676295762119910634732307168886264911319497240880152620143382867466751793620769703678455939428609890181154170592824737115469238176812634575596008545537318243537361971790595838943069658697316290980073471015159902439039879021146101409241037377221694600122221985192934739200670636288112074994664052247428172605184979618257364012394677954842363068492411604264627752973682748119257338048301700721780688191313066350677316372265134254888375311281170971961356887298104655606195843297367921284654560739722606638456726133069121968851961142213900539639814366940373540056377106111199881414519736398574555947891291457058129715949933085129086403823768402961952231068871829488136926243728303272033106650872555125016291593849241401091740716192181290147055694555614879607558098506567853659107957722057746585684003182354739741394830455032184211325791656562208357176616626125313127551782150541304878076115887262465598882723280068936019997731099149010322206731791874144449453618470987947693914583599134503706003792772990074455766787196281891777789996664998341530142362931014731522987564870029199144324904835918468901430746122712966010397205268617264399110574392575998577404123835366435011600638903471906628502723011233325244221271341212026735187962635713832797691126118807392014641992882456875677191397721699632698782343815305403846213450651251111777183384090802363478518129812688093668488658958070824379879406944528608658584329956654641085666486001051124524384775410586649460176128412177640466516510733614863740715948342087971554007913366703407611177358982517817231162103993711532135050065029564346691441772327000774850223053199523810401754626023222111125742041400041459474085308318518318927793395692881625240288454683199594549782562378267237946675675506898239527144797783504102713598089984223964451789527263631031211410079237887151009486119155412325204829818594347340577072645965835602347427445853414584410415209547981907586870327101368198090600095602520177797516532739121160393765034485105301500604197060705885069346811429142796192246089289052828115575652828132143614119398474452299092585356669676586954041551492014437378613036384443264517435512077912200680430378020559528794106632483528570373655293660070553262630403899629632991068140618136190105070925727934794744797087176128071767457131051677205561933482135659402728261515202587925473389869484611534227558964033404725102613022644031476475140864494994029183735674937975214540884783896121675965718916535660719649462900031084784756561097903602110745623522277117849042542942594281591788947904356334907909910032038622536149931157276231877520055988417998122798977556778056394711846256550463094490834059338843599005036323723178535152711343850705418465516220188040987207234586277146404359189210860574549323576792015003901610254308554654295480106917110024524743125153325904144294934746185560892580016916411934160883282113065220614092219409557520618286074451578511561926176445953021350464826234175698538437783250908996075046666626756686366586458844765346171895115094219420181142881571080698931895450974822927967546332710839393189943360097803987453482909744160171401633753568602469983856133195873457823906841725081653541927929019470498409169338774924903616058819751924665166676211420196174553114059176129259065633359750616149409068807081859702614394323778903018945024260657319651527240323567636558552274929859883727473661712941166896354752610790671807026751110031727034907484678692718956954716232091652400099340320528067641241688138946144650630081070511969199736551095815836076440574960366392778127749682777655590816276604626017201876412006342473100410533557128558581956929786718927495226904308251275769103418998904721631424091238141276992342020798116191894859628472381413621793220681108644835973141011110447198740521840755811945055367372010139326936994125057394643077089122880523631196897930718032292048473135461285610844893340349895971021647253159629217277067507285185902287399575975661797442743324341270660017988756506349725534502481810440990796009550196450026449979264328402713727125349848132570827645164314935167979871536749740944564805986854524650559738335031581864079566431093839692596039364554331554733680998874339132547140164696524136560144624221109037887196566155121663904787838327373688225731239325478177146992715317965469438017923019415101409243545590787736651532863968492853432598570878519742837002009752530959114573613497646622776457485210415909334086874513378878385241470217800766460363242019050790844920416008951088791721651506456619399402558496407411360527950249788722172112482758216840191556449251583688672555402087948925400240195481273655336130265143120267624653072933431079968125090339951092730326810091340382347082937097182272984615164110293286982147675155739978264950554238358324215163648062925491001558728341008859336047307289514436039600744763034699161635935009139634347036129135053809209245446426946551812983098613643479167578785101005414059418551718758146859644534931582726682704905043868429962141734791386671762148422849295166288882097393389729565067435234491841399568055498526498983679773324687755917482185569146823009421574324409885957407652393751403853507962431826524551150667698608026458841083852576742968207886814008323561294922948955494647816423912911814038505838325659871612799951969511549168262394417923759061957939423927767615544611531480428713297348662029819386986117303796333216525235507809747223951457582486964351741532992784667202295372073769086257455591204142467052595453510559694642305743573404704999113667621257949466155550397919953512392166022420120811289142413524260244814718263253700039318521971436547359530575613346545000336046205484746967531351006719982104032791715855706164428130399795006056887773024510379862508818995807977684190742272577399782305150474443261696991608175027275111950506923287036803152443875979948915652361080808316320908123749823264297533434077723849291746443369146552174747239987088572286322719213871653087743423564213851585586425308287273199386912219002327425571030768380075299851446893418706012890679567570815957007346576178251195616803863012182542178656780961069957577268541550346261344648423150927499037986270787744312540761525655540297703883868159168427810942142580630748448216974858177138668321563575506100796332627886653945817131550099896096500513669978166010467159143330480966438131591952254240362596612054245015024527461160017330696267836278685600538024799477860694824692926680781198972194914711945798133616532967976643201504274305294985655469606034625159708687918388476197942659350302434724158070877233779759365418447232607519604819098422010816893138982319801715001106144297227570624915537231747697197280666829268298990177353571542965799695300994684641444452306804442812146867707485067808961717920581786645328578625129450151739467499829472906259969851373731555421592646865043180039702465822490099927923910962507508755301710250818081149580462224078540553892999829689576882181295150345722448979876569257196521357939999676545154577181735565118089824012801216870066760255076285638828143760636677023016314357201436060767581233510313416538487650500076044501706553845473937246068217782037041770959997741946254976640177098734046337419891823051703839642404514404300104342415879608724934411096943669534572700201930251311222337949498691717285178255423715683183701183505245692451552719769390347382878850398171797682701530535079943211960749460586450800947249135378685608260501039774646906281623316765279321272961836277817023302518473014119727014513339454052962244136576383427913183502149249599146378265978462911339333822866092493662573067454222284757968615846747054356661426661241536915542470770966233302719947033700707068283380940732625044873398815460399967950447961444445644637736317668720061580868578146730137453532595088052003773766587019374846541712645432312704218002449895866020627454459762790720341975558880684973389585475014004488045048949276726136028893436081418367043719216305424665909128691658179719126089016851846108345385525971363206140013754869553290501825357916968506944758391151543073885851859099823958016301772998263045069430990631191959160546762232109352667878935618868539897611603653068968618305048342927595942115907333977940225651723874080337821966846887837834888227841635998253870641198359639754214416772145866105876998003647902013268195318472536242862625978990380412466468827336477017647094409495736790012922063018838123632971866939393848856272802712673211082920777932756801064750937206265267595947982322333155360114830253491810467162406949633536267495193477117139930590777133119348165220889862150773317481257670375716083098858170668315022864424072446689371023651137560926094508625380209642933376380410156997800192961831381788442473243494624381492491073526707080962373907769530825849937616342292877407316775062530761656029324418379359741606201230089207428475391885749410749037987654673370049137390630068298934838118713301468968535352574670819998750016857569016401072810902165331231552229754114750076023670433695829613321914917783547255863719543078430283739857168401010213624699786494575515657234282780672581543609818815320288450245326133292486861830423764449946585124853066953445303494447435153725110111227867318178807824555820380696191729731967394311117730156532721824501436705744229767967699524257212391048965200325760562487983824486346465758004863893296659758009450427472455069137573377366191141192498784614338340483032856965845168576713225995723837327476650846669638746585317197814768742606899559927037915442590601437845467714270904975377394382935927759760989775733906976305153395713614374793187610653068158151593741600390383498895245803236255944024129670993555592238043841876595638430930674916467809026842354085362106321933052065717674123717441029026988702715070705832257681377302594280832935649300054822980141418614572918069847949321330380809169640571363019028490964933889398558175304865361394259539506945298532219408050453006731572672912824075307953714881120761974954432999758111488297506235816864867448542939170368736350695727719644753138906795589329739944985583172752402348794047982110028374569211912065049861066767629555039819941555519881044282395092367294769102610431575864861723677305953312545113087028313747348139819802566885614260974343242996158314863595126164055643478765874291535786911069481246051124712113122370724584185453796683382362134891419442866877133090111487110704429160261635572516743159049848407169412188680847083813845757928397338133717156408334910137574184844116522065192407923346143366116679089030352965001363935214524618204815387668997636489398628282147184628144345823112391128035174784352110488008392623045562534531337704931313068396968426647467761113350597248999846617861430173855948192540961221498658443085505887823821510425194532447772189694906377078153686007974109007696616026580024792857562565692604223053409579350573921967535359430970940627549792395067694267337301621185363296529859779685938287266040203914450251749205233220665907425092147770119004307797941244937360490770937470181798044091148308069849069319563988341973711626544405958568391406179996575247068945472852558165584985880724907233812591125764295688470625117928068721870601129926518599931606262404418974680062408819352963970119830293976960949685565183613113235637606995307898901927877246080932208110626506485578436580971238038434758199437580914289654165871954261404987899841057834566514704715141644613065693608985462917096784654380362439768309960055461810671465066447703538833043186358660131096451778880208802389592752807681917491850882078363377647099685488698691265350262055186322358359169785384360694183128276926083020912587288000643917445009922365259189824421247037121348785242442438592051446591571321644186803221453150061187837213483900400467224151450227410493858448437208726640044749501470154913514373583956823213832361956783144222479033181697632949436622504855642842492540304970528221695358753315541654238497908555240131618205400035241288780308261941069793173636607383219104927975905561987061181745064454120321843669385923871050127955715803959921018279770464421600584145818764684731645516222432873729339242234204708148711607586809195771302327202887014506039057933358210231606164779518401904281537021009133636128560297187824349158709110193667642831937235021404968311948356549269639916195311727445011638995316124640279177840390140220852121221699716653108056590093920247744367716086778086127224634623325476067289010693530792277446135134019907642600451267899441594111535593038865461681971149219962737282579402980563214542486946239808042835148186623748858483690657255042737050555156630387929529491292344961094276852191030742029340530821712256110400802304713116177446429385414249866029645969430972847068990595571358960103136989169871148896292657192147624919418445943877675055967673724091648982310191168646090413127256402198797644355363881651288148697444203896895769716760578087694224761798981122447989757334945640066183729889287972965129464949868217859902435778283395223655738729857752481699615976212796665130968605436282486561039684163638583763531990743280886878746940025490285969924453826366409939501466774092611943050599359245912145346541279365226521553030200129917488802044655418063148891789189322072814712683566877533079375565647473578156318452025787091467029637334633810532750698544816018740666570006820461817448529993252303375036964750086808936691353401959107696167614652459351468388852802407114861565308508507812730554931251087510236162241438831143093476920130104939768531884044072164739731790827949776678553518301894521967886517020365549500506706010871934571046449671894911553662817765627138298372226825873071790957586891745398148138220552816093691452976073315991752671926332107341125684948200948090178889645145542748771000769367050185327691025140691989723110007645063243872181874173958152784256533827523522049481160331027316085473390428518526778760541315559733247495733350334222576646651342457222055655636067904051346726421345047826969195657371298907475292151371032664509717605412102574625494247962532028940029138946364688162978407847560402851054860474179911328099523819586074414030233547086960710780004366281232998829225818037599839453951454972339882563872768386437158944839899074476892678593184136736594084469488220231228246993280905212464856626528459603768561104684185982339148200702232264997339935858182791035416348980545911643728502079875900627798380786860695642237950355778388273919604645865878979433258239714702306003153585097038661489106162765191981242874826409380069830887997129617307092960924231383252389201197319375244793717061808603149137845237312223365537955063093342348244210366153703835402762316545359999167398549809130046562471222095607746004063061167263761407049561167663181600177367941672887179010144682298781231460318959283701299044598547307829802873915273576956612858767825777128580532494596206157572887590126659716067994280632188619989834506051681907086647642183122271909314095017964150751361128244862622707503668568851390269678517563854690289105568620484527239615792382066583968633459240266725436290437664791909752325084569344663032555350583637523166898977831078296200333415545070893788864744239482892009711382231425287493940457090373211131541595276816482872060327294671193440828725008006851391011181910259087361102446245961102319565602809564935438417104734795706673742818795220588943255556193244920613903586005145292921588286402645131431132306400137405298709145436415301154432210160972789365032681232413763788003731192897942109257114950345589903160711296122354908539651294835639376120632406791139240265917718252858637357692959036021686616596381847582893448683607320779937087148423701979193604432765367538082561679517035153156798184534941426639802613030454714865554931793879041674019127672527025314593102968515195286793565337712653991318987015909562754344824431974867756480753947260927408286375230598750512431303280539780338548569703359094962583084890637829570166524271175091292837555035137293060978929781643436588563784943365426538974707803957408149324524715350965490995015089404792876078560711797729872166945640937045970504564266677918854490849137777841966830900118470402441447229113131526110719794737563335041436359209093752049177160192910545262251883682204117517914620066299121226780087758903667737233675180313319828644885045488082664385866010243825398801846824722698937741734525420404061434730155724674064454677840654496798860693837426231003759079235974237868312735947638667611931416384708663278950347884818709050726509723772370812586736873328012833543457271538501389131527123393142514940280628744575402988086617366386547043666425460320185732861675446413534032632588632689664449273289973988303664475347268661526959766747438213972219831589290560668743025238737700380583757396349416970631641266434104328778325791998779033042194547128647123768382184528766788252982792705344001439952298542377873615181770353639443512334360258405530664232253350789883031895524428825233438876491928741802483033986413162157211807342124222818881167093955308107936765619812708215470139359990345805987831150436711218777089745932087089153373270575286971846395712417548826512304092448646321097130067504615446050871010325047441700464255212684526100803358897706652121869400690670578552175019314931642057587521685511458449232461429560975087405974718908553857000492150276691657819588826198380901156560557666537552497823476069053067490818707997411141199019443820279842929896167499974152970018597235634942009576509340115099245006166767713970026178792656803367430448192207207256632463662698345924285164646361402625680372075926208932115566219198969066643017849947861678199774411521512330898347542254814305666581926889058321264831158771243989976510788602746902616893328134816304602163656689388918555669033455485274900844476265579481097829920707717139992092432928649612969219221515004158231789739659887609040572943233477091941615829516086872780798448973101743416530488724831910690882395634042215684878522986981032348638614606755098398632133539391221723174609778860362337363388187654569775444973403811201066299565887809247208689142733308078588404118576762981986859931333739291059017117560395191304725885412068469887257580207263882932538287274869013782151584659733154220418756081129675202731637761414917235092267877027421783040896685261484636258290375084622851171685252870806346760554531833574877615229951966294565317303964380168051135422453034943278983716306143250765938460784207493293504042882689936046914640079800468359041972916787074480049985143823090514925673735486261138710739141812961126236304777629565095287404520828461803174529651097253125148067962263612291277012153291974500645147377263104951034495674471539035731875716959887117824305648843395924236643737344213317949545832306395786004436700846693063785485488480551182361807401524068578239149232841317277752688270217760491255669438408263476873288959878924172071251090923993412136941301043464062444893521582188183415323241413359336970612121495450188052494747066741089649591078093982809488801707937157414139889318894344901850064293301240052391303003715836950313725821815997568490625721540674429876569182761930537350877474417049100995282113958733957971719402803730785832000922456376467802299802519935655314025017341567699898616027068131524553266372459123166361056301116538092003767215416423274354551562910079187335029370276950721009687822908134500025124162979851277006276107802636233503494262700356332448561030264439618547069245712850799835899681410660174925424032906557602735821882322281787944556286360457969390622621230732578129274870841198315627654978030359266184720468523618105792410224460839064141449507728989511724828507889428053103087630516437348654989865486682016225492498727781097097372741226821162072960898540959668841387750604435750894059320378013081129446143688530489916844156673674740403803335587780206141375913965800198359948646315666983154386290768347054920407490474101564837187598997866452197842984832165858932275726862152745958926479536792353411238421858336596719390224371778800387920892136669605210913150598337181619293906336576331152691436630140990075256637555644000546351286579344253474196035666000656123602578004996864043307024290813655402757598390594638475584443611981381884236616554983398790833849930273123525617109014395531621548626455097765793756467516488689537476561148046862097994209980299599000986382106143449004393727971593585118298649106712723269840782048547621204238385483515282315292897109869229385435979077583193846195335903315625714257793051179181377777083144168844070131793778872302844179335110228487318678253044523723569006191756638166558168835295042648893118007638243496939058737700553658736463781794820871233343345482191192302445791084944545843569088984692725256041055325558881252999601525821187650966186979224475134548945349843885942922998705115759577145448992278972481605896627900389620894170456384430409102499324511349931912022414150155191646975359109815107186896093316182737868421935953787938855242259909768758734973530535795012537946194473303188712466076047689387604925779804451447142542979578832991011639284467047212759683214667072879197774552469220914333386324195602491474788909517299148061901430198378940444867168374290447218939187644241404376617843964837544561836466732662726476305718502802230855532605043387961375572774129811801706980393331421262576799271261238499687731666412000780556393454607367328092695486607794287955888000898052802313085147370909164919772466035649152440528191442146976196789213011300970590381246324811577749334393493522937955445024379113210311985742685072821170880194047654887184507039860674764826686861965830403193589351299904061525835465783056661748385683518931377908410963039143801563150909686032560293918892571603626986525575843462299790617933598341406344432188401244841911062202673056942934689147057596562833413779759293922049707904018370067899085887282897045531717194242649379193922503922781995350586446508878199540744239661169839195423178928215712690237971447706918977188829652015225443003624552669691890017256341644874946636326599633224578488092894897626386287290769079684124543446458138972689080433494554134647614734389642251391115048624572455034980476877872200396530837296466178183588486313514792895582518316088720075173998420675918933658655223991212006776897603360434050369730422249836559388963637042692794229342663686301922474423440203280238867635237376266279597452431649997667627788575576508735999284770475448831384834490565168884214338236670790775659239674761438282347596897810794361000693241646513898090436315844690321758672271901022041002662077496805741920483265490327608344760174097255815062235743627382751515993357771565503996874602538425252620226145047011191470444478633808587674715958962367789655553376574873831064958543151977841074912551032927186895706864644923377013077113309971758969186651583235025481063860711618748600803471740370598067376679655973971721677908179565724649765166503001830091458120878502442835827773813516089896339784651702263693726057606143076250033991717971139678132877306941775610204467399133790753729210932950959989372991784066294124945016754114828546700539679672165893643789298805572026122926354008790290646425695794242145126957064100984957659200559004753588401022833357411549146797679548004687363297920704726260624920659437367990460885286802524102738023747008439811187189887070995277800981573258453635896596450546372640478731081321945379403421184614614237560671300352804750404988452603531788043727755783361026811318742585454968315110572407353226495773458279353348299783599426410146098319965434380297996349269183446471262428716991661198320233318852450816494600656325909116914200461209317178234818289338564297447726258371823635979249502846223231948757885991972168158197814319411837825268182867389902599528352357733968154593187648788088899750673101030742902581883280305810574778303515839325448960580298766741665093963869159406045453252014191650812442097845593096783223912359713496293499231741827018408562491842987566193487186966552152424965147027744573257254085462219166811042594832263818200698038523506981603353207152331622806177116667789231390400830860477170435357786595589970098755702910835631252311432355019512061342584812325138172390990033885434599364351107568106075430378320628431145498157122049768977556361964947983724853830955001981851212583448309402362547720869304224264060348616799462868133778538982686804363773549302573924378897056308951567473347218468326229724193613147303431159478711443056784675922875494712828166832571436437712152754222779801200612248082065401381245383957232568482004466239328008409652710328235821120009215633830740178424377879607446039588262869553037687683425646838902003947048327225003196148984106481637042613451588499362095896470394025136179777641312635307679730795353376166458248949756528133390912839168916735611979351834381691151474413424765404852774843625076785628131400448004967954318567945157238197437699238695057147943242073822459129369632291285709785192209608402948940102762972471356351655951067185171397705784794882235644728892881990644754804687464107838066857575966825599115524100071426194620508100641160878385532424591837929283583591823242764154214553947682714592397320707126043005856261116073452474707729447808602174139966567742891147039284404012023226642999322207677375387230502439835564647407769965756768620350449736006232170789211358419567422885162047502201567739473642170177605273572396301334276530459326314565270479577082470867617505677020542293196359965483438876189299950057843007213827258023501995732097202418975657952205972372403807102209461865288265071035054515404995353917734212456738701963587970094696072158347851091245849000605585940287569949421050757706619328537783276415160580562825008976127396393350619261680411460770562615269588205619690149817938283650772911120946545413409186044752216094362263359044547165440741591162366913516241647284655425432164131387828476179186610460613859544965001116486266519788305852347182772600241809746070195267093345372859066627153135710736194131841473972723027147057520960463067303891277039548280976531890091389991637295960144520502895866037744217397898082686566672887404888416615326084534089439129167659456913005304437198974028402081922570926737991501638537621061196456547175245978156330034264012788756482347383818745584763053786171285386484884415002586534799801209220448793317956539313197505820742766923201236458980742352822405676964433210224102170652449669354094479710937311141256677829168840727270121440945380783860492282336400102018115755696575922169588673419781203680434849808733432424917037902829926683544700952525280171464076772923766630144427589131047434193355383908583861781068777168830146260403938151388178552007942983415005306598118686422873434077421934954480481542953534890119619411730397174950710162184529323656298830546680484943014052693383162304456416841241601778577763945243324717974025428732895912944155091091295956811311719720263705078591648899442540173530325014430424194351156444342892747739158271902507610312682720288940363977892467387489036474520052537436300498968398991945450751897821427235060227656644553491439787848589150659359976534579843049850581532637882730404341558275389192428878286700987003906827367439320638231980073699982143845241267840543611618267801040222880668232239471592561282637363030157449686189031382074299251120893522199639698926882504899131627606989799474168733506454522711272903471019772281715410683150769969365693070318444946364809747272609622843464672783822421286314732290998242112934648263859236032390316774184801360071104268882609570264561143743638294074453248051307390162422403225117606793769744480059662012477892535741805330859807797805852026476465757271374789392192450463418544637308825253497814298963517891280286273799126166873194632768841503458811107589389756787646347128863495317474073803516510440742877235778218619056290234616606555713475530569442269762904567505160082267852259002694818971742049330970471645923175267814216894311275480031286616483870148525081359370719025922422969327079889317991457092938556339436154928071433018359691117811139988026720930125243503531082693839942139135171936837713526753872018786724301276754200306640318650401247232829054713506504479813284309627467930264246839913752801033708133678186983303418593572293014508126923248375042742642524563837851366699801245998282311768323810603314451728883084800281454335202731217858361256328345574723496143508343229858891711822779526843706476067866105294089640317859130532808422152091331644157765230471182512256654308975621266940635279855706829451134399920845516608029585826289334936459633665573324855826607898123746333252813607010553100576014986744158017200049101419363355455939371316065122440495861564713199572022675886851409178702628512607699295878461960254563376900867065524869956614889350106725452442186397587287243471619137894798251039012072813362676013100122765302379922879882700982610901516345317956600762401730999477662308451748976905854966701823149283790521572517740313254780055735173674694538261535640115452843528464373931663344287327345301669973514898400037095618365222091240181596090222624641639819978531565218582922978501970760818352140055792287847770998729655879508832171998014165209322628983088528478580858390774674513251374666321112603517302391703504398376367789905576382705937911262086876318754495059196732662624315928888273735465267358217217668021163464188535126733771484161698393854763322028193189073240941172678705477723860553330604626551612782478429345858700804488532573540497767094127587758813969482694075688536765335484949577908156037565888164077266002485345861475302363181448820671748489022796125096540086314252351428613349649973111191393117939880882609865673699526758934080845533004196390529160959040219547064731504011699835724095641337793038711738296076449589601815523377000326727257509856539105983606004303288437700641112745821237134405477862556890247207854742373326152809843558006154735828382307054935705931138796557216730342687016190984856894663744475855538964081298021350039304847297135332351488985915965900058339235029319840847203579236154379886119196567844925892603058021176215208929885015967443101787975790531559282596722134044256257319070963816115145132728370759639193602177892204765593275144307275512626736442675823483771451537747405311724790904510271555536089838607760906087448237188119978715858440967202941103813808245389457165720771085349941652893586671231899044495856774936779926336171529954692199604648957307211714710448256798045288962662011889176587631000871061889116484976757779285638257231668684161435342773423437710071113608673641725686063634908231973289319289962096314970858454446472026437061139487971477297647964785634683313306431249897268764280046549481439172106409248408282041428409524979857251757486686924121448223657114122485229110919351343592966918449457789665534574651780241900842508637368569646238590005353116191375183864730645120863363077864020648070862682784590974758501617782375530709147722628553594014697521403744129501153819091426236417997221765751741328463443008561551996955775285170207697212423411811074401093707083884318230229913854504473729120929138955120199446643559825581702196876940600913706085868989603250006527592619512755398817268685339091023678936967227484793364812504010044942457278358369754887463165895644236531469977621235187737296590935105178798597851742885885056307749377153664893521875500024060721884311231854279336283058829758353519247636611290819209589294940217223249291652690772319212245399073745894005353970080779981569997160973664003309289839031171913459407489276685744096146502573416314406852598650654676548824791102853730490233097399877179403989858733661498997762942102103576138409359254631205973690868502891850248923094810353570329317698360172919372460879226283385548151400148712369977715886847407385462092354163611095402749082118285279134872521686877462772856601548545821460333902998798867909061741871246980859290237773641201167528645744195217836361119677868920451068853565057521703137668229970705798240865631272253912601305088463788135245559074595547509193346946125219382131295256250411715393960018582383541759587977310821446932765111866064367682805559784887916337160132214279917352633724549371886596449249703873830416649961133904795866799017689893092267245300237927434603782072749902495450015665623067041067941312924206932750514665838536096862124912190715264443603484782591427847195327241918275532087563501138296081527061810219533149585689713294727563274034972388123830753571960390996255667536362214055059805089527843199346660243993902255861331772676591997149054328795605793357177659177057737699520092135022319874070106367779305653705185443610332070780394878727830868294582216041254289970272684720982979504013942710437189859553014079020305064826350867351503551669484392492695322421541352723617937785611282741099006682914548606852310140993221225374447749303612364321200011367242850943020525997374309252480284983132703413485426102587407643455789842559751527297941165705254956037680721414586741666936927227163414082517619142431028959508090093584737454875552177400563612520852920039270611255648265126886671517908791062927699238271003651039235841934975844034586237619374201603826222065331845166973563724938805465816839532463409972928282237236721565426837908438279067065643777513504141824470251545642278914550980198019531481193750823177619146719724454868728790085474198548183055665979015380026979341650694433514655697375713172328888626822117627135237807231228582245803938556880974171134851755543925960998331319859540387082116696939981367773830065921957331964535624192100549296198455889365191145738331852999147409148803918476213934814669773213049011091923657904374743730713895179542799272058841185258508664498834050038288179852923165750576667547652510513969706825212566060138100798738483669535642143354379034280307529407567998545079736459444040795829524852948001496269538318131657203485431278711306319055750871177737156348042977374683617713222653839284089967434205293357513190382471645462141349394210334650501219446024221828799162027637154908312708956508154978136803100136509155056747309216532708263441348499204060881103490534513428465368907500119554779907302044214188437641223153065158239558648793131121453031251730052824210778881166771921438923102857909918414023363563463439253311046841472704135341757665441142977214844530385076894614454870972718804169767076963890792521347404818602973793753675179821352924394162300019439716675462443830793259174854902753029984778690721954205002115619588626362281784641657934649205209953789452876713742424241978663269025502486082213377740733987622359896752931392310457068778584032435715685798465689705143415968468931312638226138038237325635960020646575235809635357314673007551649491224673513681391307866656573353273860094241163275115652936204412801248894378547831389013523032226364688459771925616402732835096492972117878568870471056309360971271402263612525176885770506928620448049322052566201531738153030084678656907239680818257849786619856052584520952866488960954079272131764782623718791494036838718783228021908001135449199183890291545635454112243277128893756968842039718386745636530074120910231911397505570100559356011565542689197522710675281733078925003364309180011131336402764147519486944138261222565846172533040425271890707732883411069254957499829505128316417886120553365145521031818759288174367921895849912313371592285828735855828564251281715724792683834663567491666290479910458346252553788282699680252798267808257850906613629397634960706061829844353265215287729404144950009679402602867246449033882287121246590013586339571265747925622434198833029538295965336847039433596866491175529382942790530152401873704439354438536527201206447934260973198543943085884687629585099825704267059032246580920979105927984241016796733445828040091685442413058915433336726041042100593650221811895734095720838437363947042522706252879556031320694355294966154144021680563504022475413890091066699508273941197571502960961355044102678858123845665459183300411533969627724465484203058429410382610598161672666847281821727041252844678683192184805281625553650570367748904542594522241242576125613460187789251610806677848903475252660396835055459369526402700064831634749355228453495474504544672147053266005605542443969386061879371739210850385194609013231357167846422555542802001190095667914709050586557883460784508657783262498414284434622205525695094037267002249115761967720581106468044794324187795932028247999981743172500249139432000798920660598212047207947285784731137096257755479489301295483878808086998481268129744912596253327357777833823999171655408888683218583099067094257194311821900448784426142166793488268642046982191107404923565967071160696223337321929178436494165374500040449873166958408863429409148069453195216265265157224682832819826112433575418634189676510375543617728556851994158456492988984892861216271051828206438380174457766078894876320800886491162664517184977508860431381569250174404930428851451721343556828956764880831868722485383563528196807466869156195433847329967400679256277786526869579155684881588425366658415592512073680244805054300188362546926238229421559895318468329900834403162363689359737276717204426294023895114990131700864002431859428898306193214048714878271115397167443349577487160679236631686522419361977498849723337556987716106866906365927599220774859457314544719741852227160852911916256367214979405496338324783212183275301665737172417165348226297901090779791624184773950878783227629254323259521594037566751454806323871437701341398937824543175824216889567441175658900760092852278913340600872034064265332130704917285326311707459393239303767469479179787062203934871812749613748050189633144418825709671430740545282345525483474897489749401553168788217983783387137736096304563600451135491375862457916648899764166520616202609457153515828938237818389530878513886992159924057471095803933147037074418594132588689219347411228600291835013363945061854037939322821187270973546147424789195456513864702893062432429635425665893814577370895881358954934568748240636740850021938890646715590826659150251928746935353175412227710992532410450771847822620484305737464409733143822189222298669687509172410386349924967267467474997424761941996007175930924451803167401154772229577772462388125222926549758256231675105321244791647062682321568703124716978158395004925470075848216957980614240537261895334833725168910910066648000763871843185917389613021860361615341609755858547100507201183871022891475151648932062540260127216114538145904219476761340951893396422495743117545860699619549184999830933263099210260671372601716358174715599537429708683329739563351934103481169222309942821292411771070525092885063581768475603419155504794429520192352388726584880369094071066785666923860553473791235972607744101707801192625927515349137741892935851720159016556456349045627201724391625973822383123870663614030528689057286492322351557254846814299077166673011058298499285313900749782396661654590319329774225205566680841559781768493938501552164896156258294181133196393429613920879411665046873286981515044498054668041150316660228925871824300266899971616650207561389415780560188011192871210007049379712863801314686850709344370027127237316074532797295535205679240824696214427847994553148680393261797887357404991802030937707907596321149882068687795448097671331069624067708832918971319898287735286173209594922175536421339096822245133219205487944517744257652873261541693918078066647800417778473035089453574932650258784584447615633745410032699744217156417063029343601498728368754407166102198475716139584950669712834327278014746469302182690887307197006761194233279382224001442926281866711216835822750926262421279409483506887315905750555527227167489778826266624697731533292003294470976612790077538701695768480424425748249881009722719975983598717689212628802640283613058094914117515688929517317015269922873911878091546758990894686060089683683545504593837475069258718090677014303026020717249973060830038911431861557881912620931824427911642482681938549054356984990428250790579760709877828956192808777782390364561777220086103124376234230455663315245950702270515202457654057343958800976617280335323105100320380569218779209741200230628361373479051611887910254388383323941634920266637603682839554031605247595164533752069128420198937318397637711585059798338166685410502275270613218687934034724547488612106842592855553004111581305849794649639134976312719544391477469342679334826076129995898798403936455243289548129612596234012617579526989003857275471141310945161889105168923121791515937345362633331939441651235437972297197921735564456216882476033501582560917638129324592294326097685053896209429211551347038648681909656708465254653652433044632410975409140670461913249297125600211272115471369264326669479770703728998403045805005886773395947494846733105747166439253414500643289994884932423721098813569100093106507157330255870845684898875407740724763231766124125934967764320353741010915076833419462702549039813004794844701104953719148682228422229452434681982174178805836692048041361235826870533272719395764944060073778709541805176619758337772553039069098893740527904730668833407788126148704860013503000308153236296652717339643967068982241702566238862369206724736666263853906657097635591887029100625419713922104902431722003045818942830938258976114676757365905219224831907012899229723632519112012222211624652156823703461567017487437784587674748078874495971586662233145170893294840990158952975131639167873595166235534030705473375553321202360032485978263256852177604079501932794999829629669782993017832088295187988732728242510766057095383709781629898161375390697874986548085887235604911413540362977407206308998774080103961876665990242044215320623368891917886282488283776117308851602374697300198373323617264862757024421574445895217438912400080472005062459479684104348382526315834514856438127250094555974025597712497998322563796658672047612268911034487963794729521050886409118430220398103253412381183380085738948467517548406316691415635471136976669581919263956887328035214419586800141812910837774028081975227197239080948784020160696618638003541373230592706809328247102573419923169951081500439916326719060016371487941265065218846757157382797851578755133096490778043588131637385170596126760184723556282957685734781636911533109663064923630003659883625945920553939597340715951907713900592571431907470775511141257766044684317304653120377853708831159624775850948884675876283092606256491714040667192095221873635292794568836408506150265859898082670692392348561680344642718805227391256811377064785712035452014807754681500254510084696228355366801516310640026691757966271790976990627327672772865041396208116129331547974910638733457267735283253724732234746916251774356422990472484575867330025743306237877714640483517677417919880586488300053474296970791631569702315984354175393479824879596708630085190642112382288671168169090548977434849443864095824734629951734262039668731670449253116192545917344994936273750988072385541514169764364176592605761106726704249422359364195892182775666865301011190804456429653625755556112635123757312424768059898184145997196763022165012653657608204694039619447708518840334995666932234334680927943996993341943032049174732484997190721913739447490962848347025327977707640708688950891207473633878247833099243098898196536788058785014109318943377238653333492818736565928292806487479490443305970777348530576746178806054267962884050614246476585798688123652262439706613058124083842706378646120524759547103386664453391309673179317851055356853416478904722835082113321492228163333714418766471691386570802678808547544890289567713971756134879593768041329973870488016346052867622267529256971247727106130250641494463573411902564400729313637281109544060177232076856266759592927436098022061204226683991075078937959659590758012505342730013208792426409266826955790622181345120306516319495483731206354023484130776848741269937766207055690525882548972547744091662452648025784576004951476529970780383814354898957375426180650841372238460524636009661320213408519862944335777351821953550158685266305390456262461102996295641366089404908675352666302682531432878291991490069119094022192632976427849569640189825780813125113247970419618591519071955324891966964506990166025634097322596064031952743621590299845629235838300268664876264429533604165631531834835105166458352467262872067983905812480379852135861132921210177051042710419779793623536235766967628172331404367919761347777568461388598128150817435703864318732577187505320575499734422317248201109280749410897913682283199426663267685787794779641580906534588231530951764164281416247158276046516920221674094017056166437536272905311931425280858806092695160942431575936578335098714838278434586497824181720496786919962924863734554106784863692134644734175412583852069705700251159767954807451284442112759976763832828035330880090692616918326874855074574358000881316107748759621406459995516944936630543197089009663212957430579236036613323234202268854286061634096034900568817574356389909967961864568270498367812211323714371641824444108577838669992660820570106693323403541847155565489387947857669220293960551128057256851091617115370830811246357944249338072774050229174140529309235411814338647657417157695117283459679331898508128210732610271019958265420782533881621800856630782944430633611409455124578262634910861081985300344089480071197504479096533504976288128616825446207271240709667539124458892952521174936879118862469030545427494914688364337276627549338762172945437685347581070225263441353870731830770418810291743464910954845783867865672685760282478888256149515749851296057861723818257460019184679877388413269677357959842894493970306619238763124552287915971228046115587202808156440341638087291356944369622440211428383634050786940310506061960076227626743473501301233624080261789555691530668784521957600794751975923513984388916115285928503480517678528446467581477091817443031841874913763994818105303575203684231857987223904499413735586614743416712012329500985782860265509569013462023106119061834215843001669030529916502860363292509195224694522887110085653671568267841663908301811715808176533463127204394840182892595992143122789118100450587829360022505361190516165855886534520803562212105605564612653311060094827443110413865400142634696307828251511025638401480680447505862883497010183998037820507920801819107784697159786207669537731150144017576649482967495293530734293674037970476508992470659223901253323249150639016621642625669487097442630929527319493886703757415603529723687626960692791577132155941898736912134182551762856054665159133351807330650751023606065416725210639809150688054528667436544551172119934921440525291403779532602670120679938209258126654161239471976905099383271668567287757102577669933517015327093379175542697115739823324691924936799572436048357658720064492685853298747769979187738718783212241195146722063838712164761543257439611028042127702167267744590954149016618615361856685725686255094605533977327360643977386844331974714720372133628464778753681640014532286251064999918790365221414936681376625887324377565613429625526362231260645020738467400620126257003515673038372308480155004656793552926476514045446922698243040537294078841059381630461260882002031988608718225503988083427014301089429680347385812284616949540032939545550480966804591791513711387121221817503012681718712841353482358137524707769298399008213768831452421620288290818358395159355877708963188126084554332723971671564017900624478538793405781933899253093468374504129956539103017019288860107037713994737909281043500879937073994514007699471523759834889416245147558297982711848623828681768585077484203732202137219753213500773649482828352711473500369975580286311893900504208315625900643334805591139496602354985280619425688120421721549694740384363849440347573282069194378745593989859639628921814294488912677665733622461457206687271385962349339571315397431398268658341425794127848619763198615843979398848738907450366435106410734590213183943759756617337551895817183237213557123399704799265553328156237696730133661489454616270357429216445034213632817691256279420983903377833045367445498334048860185853103873957613859548909920960541952795191995834332758193512730002530991930706357313164121756889392265269087964655938569848174264688819613383642481313094504883076409620213556881603604458556883554810625981814664641681283410691009660390540318138742566036802632013047864706312163075700576198500610812333414277824661801313939351307678201166827077222621064620462124765692552899632436697829226095696409328537494824288352807998378477811329325152631538250985851592396151307396091116533006746834071219585613303902444779926662371042191002240468886020369839449162316879960819821429831109792242818340079871360404064544957817652343334363912980397298533256386454485950950722637748437799976017617012326703711830396482115622783152629887757958944276838596553031774527694746287271490117546590037258403707372434485552360761240564012595667430599950361784033666328396160055468922698671659701903021019520498523789918858728669676319451620903458957954524182614299719380797742268268274558554216601011730989085304151053953519638757731031896157243978400077916593311561923753613173515297339392763418285163156653897577939866729026356819879594118023359439026833319271535619648513545223571806098480631138429896132646346740717367066027849550817013795751363519324419153395027553134937102610098907570548329762661955394687947302842573986007615821115553636155415015923433422872539920236213350177156886536220863707278732987343304646344931407240604970136675602271587051636668836618454924617466834878829651436849841027210266133459156154731481547014839446470417424358824643917005845155871754394263437829938341690308438341545303049581035487768864545882241170455747243340862052410881548007655018815047702397968449146466649547136366224620883414642435198129174649410997399953956056263397429290157164820660224530514114757746840938823111461130863852364562677796239296093096858321817379030958792980088235107935323845597769541937561942663335389666774359555424153140355333430194079454818912603777403553882984437003326152054303221772249010535355683625357750895228919593239172379018987746488261174868408917566797390563812398342370322537585641197962909532567989272224463484986167275817029567909458605906617618725123750730627192469637230918399029203565985581248203215383587241900730271247876280407719236180383822535425167056149472289682644975137036827940860219874261548828990443969084018046406674131290146802709836578069534942184498915002192871205703565447111617137319852616023102200670610240738382235407363828654737737654579723701996551955681320045305102221086382504281407870825681154821299307971084719467662024506348137747789180734578157223481616221694013227173002587122991124105196389657304972271974632910532547919605134958659977117548197044815767394829736185818218006019883535662857966421597159631887417520936069803306436169499853958984492945491919122063997407005442690372564190524853254824926354724476112016348075754472620638614633254193490084318330422822728678151129049335732124636358581738051114158009311589220082192643377846867825437721353122139203375259666640365359177990313434340674339723618156693133402267515647587882237232674329001638595233859124890034588873072536335446886078586728730450650999121469554494107593669519545537221379084623318573929090529801766059467500400913620322113962158596384674884929034661533247897040351095570937889365090965017993036786616389047706863582261991034614941697522964452616242925443548506148044167039266556641488465525841556146440332624445211912318155930836319484429821005271345361501954959141132995094204559245669566629704417465678836710302941967723455741309893162322711985134135910673517820836284055949907813775652927116224668016468768578072892218633446609104060778509916510370797424079973004334398870914637860800575185739513121261711001379584050529415963381016720795608247023421120920117515879041188192628924885186954509353041310976167148953904807933021370995355291189503939306685309423007038169233930662372710146733489549713090896352696708550939453788016782765408304539987749662714872664024106514017249171156983128947696915126649433597706931940101371580960298119165294524622708462780860699948507802107133697959966997463945149860681509728084633051434693741527322613052506908998958930156738287262613992880528153711514229714833991768332674911618507008904199707815678968939097146181793524315655483240055640118641956332665506218679027271609769755962370962689605023849792283308011280644698646285774477296716910107129209703786084659507629821061531367393194425956110977492980557565990148086395471328775539461342916877240428652903024532637233185747578912649684915369956123232729455633112355268483936947817379066647690783248908030412445102292400332661381313534596975428117261701611688249444624948370935851506980054339193441961401118066189783956601224428460540554277690480454883451695376597599971107963641301149082678512601064605058594950938974541218044947712038847869126111564902812960935214704245513082892005306589838591659750408272825666472340309051435625233575223938718661922139943094987668411294361349558540358111051640263846940835511789951183724036665740852784404466731963653242979004428125082127937207272252826629460508877130911869160538789915505636129180971321642214439393302187456169884745644791043584030557639693854293742580565146020012641893857147046070176569642093850863572364720117354518526552785874057823263677190638354423696897741789963375565718459164725106985827969951803922295769060420299043504145093288762762240047174180343258591386047104165869622211391848584674717950155419409979792609324657989579062460896714976211660429902964862478100025953092882019436998202867235282160086663236140381627841112887500406337122104430169586073744394093725209068109896094637384257837415686336834039002777212877945991507041156705315704195006561289468655953090426632706607251920822806953172674482108768890496210386947957062313694577744075831154648651795157252178413852029397098200270314111649456059573332346801020643531040221113207256552489699094690476941449333078498948111468806451587992626443841099977531103177698042075163673273931179689078357221448418037431522522661877998729120420555641274577093639943015352447918345572770496125132560012195984334882037157629559494023971675576895011354138143602223226354127984885350514191842859175370234851868314081432039629597262623026487103931099261009841460380133359086914665725651280375134221674403530123706588271710944050245272857271049381110329083179709529981468715545552458653395834299698045738448863422808159460154699036881097065268669198501116044660493752722271138209166527403406984557998380446523922984757899569892782690458801639818294709228133916525077944094428693095257983374046822504055415193028349688918670692196415731498114470709419798289454960366058889006594549679468372553864701040230492220111661627837414673152382312604480621679038742072649618325570525312401876822242241084260327907669582467950129685867204949728342737620140581424065038616994032633464493543883881931758798749379505050892300420519015323747621922725096400937696062356677798948655513232058235016336572324545870840519692772310078242913386006088118552237339583060586658805078222036441866122167385660675721227766284907194564330324895526105963795357113280636790274372105362725381209508636574887913812844430568999502437843453686165928377428748220395025548214010117084057727588589508957893424195424052704658071919269434014882420639601876128649682261488193684284020748231692398237609324789938811012045901689671080466289731142372547910174008928381858627286838609714878525306479848706458454773191011012640919697770548993607841438995404198552140831683710028796903676043767591329609940001280841618985344474793910080885060535289259203100297540212464679268422528936059953454879064614764900596006700503170551014413225169532964000808694746248642946168394024575799893736648063400872568332623259519183792606333464930339793528450579857671905450029008825142974282918207588943983645693300583869492243718901298518591446085675475635362487383711070788706943872572458703527527054643220755080698408342973001872820583000064314313765142700414835114224341090897224430978421469192059068260273403059606019069911397135562295729953525662347744773913156263214732139601746420881009493719361666807725595155702102930609549618992157452056320988679681887225160652528310945942465695680052611943841733153866435775435973552283843028566644298314460467683379533260952251012177070754422498142462087643592384854672160661552185485635567728267127679184741101991484217867596652042353567552463823195906889405159124178225739227614627831631642493108066584345491871856456775560307779386019826401213738011759843360251268255615645178638292210425311382937127497300122963760744472595377529785494491989906075241480953256923766408121331523022499560321779825874570369161720699439391067033941043713485072691383267155304829723040680294444365174264652568454470910321903659093636907383772797153586384841537366699052593317454459439742630158207279208804606955653751099861665199388500424003093839319084627281222567931104627864047445468055194421827963306656743794088158057710231917892958502591044438681696698811604723774387458064297050733683935710023242820880153307129223626535318240721945710336490647838329522330986392901039581598040685126792257763964258342391783987268666262977980826413104087907062131608212049884112042566270172257997105886751728985153113283082561199200961884274229355244551372741135198283394503642936448205339608042599292773472710251976026869835571444721080588067152544678010315571622190224256051221466853682235742135880164566309416018225293382764334162934033760336851260184600283547324035419452981254033551248313925125425158569367420030243480813635039836990636164018981093573474223685401860234139518725471532830259198277936139261764991515740391974167706672434513376654844245739849262974700163860956832363231520826102320796993387401488496701737671694520282535728668917183152109421554874113910036746905934758320955977657458980726205008673416956981645484169113355983597496920404654079278079289577910359603135152775614122916561694206146958912437312503431649166494289531673166749630281599250253748139103294812126017835166395843073954711468982417894416822057034447641604769300118495956148157395416444715207020919989820812678901187228899708026478615399225051530110586035139187815842255770367983507861887451856452008151133367223931354140941371222524427431546582063394657620243259175375454701576323653021473078120154682152848540413958727473390737214390244454723113999271313173002171701723416045651733344331005721262125368954786163854871969548150815735560870432414657411460488614396384374524564418810859110502988494318144615291097448242511044874300190671076933919103780876329518200656235700028508375538230988813686297468801288048716610880342860909602025929190310875045927499868885370556468455070406321777213715063569461973168204464328295632443841626708592413475375754097001081012069659395621006901960567148664034583609453775119839299209061325906105712395310380351585126327065227144868880791765737627849222658401917430442774828908963903472044967578245919665270732839018019356345099091431361714624308412998022144846576074042395541834113753088654162904824480997655451124322939143160527986115780653744024379474928729827785215674483787810892285863630533798159157996696042035076250742543914791666005343987829291839409909660458665900245579066026437144501240108597749378311592540565603831880276496850446956951124836815404040555335978356080607750974811775679247110022604965894077689609968019903245984735443096109351724318646585506404928749979433671289780040771701965232830722670452173118722671946224672811241081476942610670841650934305081215676780396270965561994742576632829002077273482223625331819931871258030692989528972383689753379297449051646396840636382594159803463607049109125447270313855125885130611254252041762299227580673577810411631717022522131703621167857416337499644967915084289140311183538620106666591949611876014709520996072979480103783130463672528047246666297973246590165178425166151321876052505521422635151186439858416694611465184583227307531124916567357558562319613297365234901551282135093307228590958419674918285853751111641702596047114567616483512716124929541352130671373915406242780804351680125035725670828218527869877682330021733458380516981097469381643992875150770485134594808816219105970714570621796003042262219079894788668985225565522556759673323027684272611448525361492510140042337875462567282276701107072907489645802359206774859513556794542185205558392349816205607196460999061556927007924682000607374259860486380149426458878588066149865321600490335036073051901291343855246811210240119562364344667899009512163297528331632218105604686028548724183234748989524978961320024905309238862666753121254140697567006405426129629886113678847239541726504019966417917643314128020979032635975560751170567185666051118192533219966319259808028147803018614744992629101296422137107998934230875810235914819751085210433869809393838647033943517952614704705428182993339087376427545604476656315313619679797975048848722796350225252040395203605895443423205428013100539647394821437733387327841444700829687818145820288128307783184354888156983628288564367226963674509487928031532916522325471599853549690743881166932773987942849428319425079845233256621406144461913169740183295839096212979453145599283477580228534041109653704770622858192193491011169961384977439666579953094676050557428393469006153305752764266690702068326763840613703317245240931916207978978954066100625003598629733810712518027964275654407262690245455148660502917334573680588561527966559296826010331415075676435117981665056851206999489731856756898708676471890498111267009132564089443670511557122980141081066199866360939574759619072838721272725893494193644144348653974864462538693936846956244351188597181582439885069123088479560845701369138365926984862347613379229150311276236014875306736183579972691474813328337757312808306019499347494538996966721346245102064175018341568298492691607118440241352880553599962711501606037292777204784387718212236941883388586068252862974732700300539594304545765265317947318701819281405624669279498015870854545936211386987188000388233703346251137532540927057416131710659711819682998926015462572546033941714444804665572365316061500195781441229648096483596027411503777239351555057864817991131512984948703899455516627222281097784931082313422009878987487235332107737733291444677826435674419564107459636118914409762388842471522347138369886662879979688300095977631157680167650261836798683893420625001794929971882729233013916080099859489323886292717698251777711974374074517341282857150058572944710175267953765870845046203714219644252278761239282280755364759922563423577599947488149287021726874272756682250807596617347436719374001870255049829676591432791457239654449483360317869031452191447420712089603823292074180862161574741130358434202550501675246968286508040106912999449428736769610829628142132275178379480307549344914954051044679409782223786804283351796745264372771006448861257751968392928537244917221022431500990066556864891205937568045528273931902360170281568090840560612737091433623544101427287408714358255041445574446034193621398236041130534501296456445631380048778663709775354546097320090715509601716351935020933404655039040978659802676307640159392901633311158829025944937739813186700975558410675972510079527249266725874510495298805250135068753002184601266868707780665581783247624777372406040702645545267776561779871403452245558704613566229755099968506918950649988888444221105229584268683668162945894904670961928254129667262809567669954432557280559866964873443709080913991783533209045900814125412634035202264785282272389181763534972263614965188759725907486689442890746378667695163121390654511252697082082281642785046005135862364004973785798261165800440551731798535659770214576631286754511071682942284298243446051910597875179104289499156436493114927190158504776635271048122351198760082526352598477695055217664736947717658612919138393171299909520871736712341068236674764441077807895230217583435414779846159581874659869452607069884197996896899025587319276405132583326574859353559521620792917886805829817417136042472803796400797272772372748846739718132806005672783421670094306929034020968630063491670130384568277839009320848143365313500760515678478932944736043767687121945294209233479522125165132986611216941818812782149128244697668578571289925938260419021943234018398034625669090693876798902930667297089779238268534836840948268239707615031889012331826044973936450265579865331552891245689200180093471930226115070825095928622596872018980710217328491858817316263917381456389598919430210693144582189595698634881172675458190416634659512175710759528299631882090287199581869078887073775976754103892356563791341558748395086192126322825649180674712934043503721549852092210471813398772825249730389921177228720309896707800955052292738979626987542526846753603117688927071050576110705907530554075490407073436370861049381523755373660877150472951310896265140225808482313707009122229822396400080113076219208896900490107886735237893790491220431148418453654528799618601187198797800046322949710737125234791585094380376366099408239700174595574182166597309017418579000037962597262780222283651757368229477533115662452444789763597417287649169017212624804018505822735408821860506265724835391451236565269134151073459793432519613024439832437614157296626312612248049461606685080789930480821420877294935683090452370306916881931638642603274191525387823987616624095688925757047515429308116529670350498695366544466815003952277435398809095599785350444678478585692740263536124623930248754797563623543067103219507029068632149175314670757919906961693028391752302080175855116406609906073407195218062049067106005156247530061169340702254599606671278426753477834646274629268729349667038691970705529494049856130489554002972309457042345265861721411494466561951386693561286203699136684782709953386866806151915427738846973844943422693974533506404093253119607195438184095781292650752538944775761748291711554078381956702467201562623401970782410758040742426975674084183792054826897486113541192242236650709192877381121798681075491464894664875699279462811089161854445593679010134027207000617621713399971839130460855022526732180721939633902716156736799131480004309392782484695277233402627366029352776693754683075755494654448752970056386013767097447851866323146187317630607018079291439694962356396116033031308984461345288460662653167965034364749524341016639634321691654882376045338411718755303508108138950534900338133689662282143605928256246357164565926555285162329412698456725957841220031798846366417472812673879329282698666174303455695435708332255624201579652303843907749524639480827107336342184135500087060768393136788346323946738799831668135390656779755929467432395516650862277995216902680453715417361464189511496974189816520618094601267755055303430269456116837221133599999615709958719032567996812603128048851640953975802441055445542396016480900319166844344352959287509552819181639766217519498732791015619321562775902007853873132025660381228949013287279431913332358808571505494511190876333621926505095743540213823771752204626815554926573659351297749360622310404169311465792199572162420947606076487299989655218172398620583439676319852906640447211415976303292614201556719952222035031810728260982565887941066063884526232531793919868534651343773084463959024479298087054512410816641664246686015267452956305569156004969049049964551116318391233145038791678819913558067328045249398177454400454077932978289375901620225661205026249692669320049947003932240634932639167200495413167716265136898068757635648660481954092322767375624187644318918106871139394990124895003363190172725365501619499411116638192370631580244370282664147434449504440652073735658422349386255468183127645279692228219024128613366038023106963108441795912899574796475542645691138906435857270793141942687085375565577432822157490310503018051052813053041804964564292050973624534244908565591099150526249045202916190285712153352333329184441970077965100819977600528490228154045772954780206881666035941549255897646519150529907370010093107571962821272156356653139104297925555234286802037868597499551606544836566084116542046767083444469824826362380707420855578470090311200961853763518183966300337379952212575856134649853849299376560910316122563711670981645722991154940984641102794450866531908967316558007069047307381701322150251460054143539627790642645123982826110452500951804812358972143303548769570699573216148396311248261895003556801036578800125909594789427503497732313690270038487787927123280126989565426984032605413103518744496358554038037787354455346410849631036465677011545798739487871615713787719199848595010996732250633176352075012874060193200229532311423817043663146560360390680102580264812001052168815271830854593138233458748888970827502437072217644695289756670841777102062987424282414799936907613438208786141538260576863263309447519133679129421263210152411698022082995292629210284090186047436978545321092995044300435311754870220527282297838627378325923386837568034335209108040047231767938549081146861181385471948344704284141594999098210866278240224667193350673251117992659494553404665355733941373825929063208606771717006141460351965432634844973329403586078717993010911196493118914433530538886785289846053688876371084915488560753462330810684152344350751824232364779454517123736986041187135882064395869301779243506450558495463493814025038500619774090108578978876546447036192241374008847848216094776253804510582277822171644284586633880696337992671251670807210312155398616710475767491955302543082789459059439302925195116646710251129090193432605299208039198178952950908336678514091189436931291090693910299312449270659088667343449649618992841704746779000591249607514576068254575527775369018923288636216952198853659503179017799896566981858662979227603713991751545935052170103419030727815270109278234640356592368398524121229234170851321087687185216241032480336615301327521995167085548561792800510843614726019498262058482641365388573610906579935233598464254603782219051102745703988612267699163447055438524154293298026634922691103839836783163503570082185434405316274455852801679220845361000440791300347821403028467438975073618249037972000436619810371943218073429657468463522668543482470554554989382773705385010391765497714811455331362022709932932594453080736762697062145452100821088849292703664818141694942349625957855681869611448456903620964280844110393232432693669119485830285610661607514581995887055799026078150473200954108651507760259380220074297494669478444154102687516777143408669035118639692924386734602556352934312192878522300994707076234690212661858584962171535411406886821197110943122146509071140474095084582074932208981712058235208214042515079880307929738890668381467786087268397049046916139815573165935688082898666067484964733199534000158479682992110916671115689391504049285942564956651776611585551828244601134707875390373563565422165152712699702335018697297561119207619323916809914340026054062300253770896009636818411887945985575647145519608897192067115845985273758113843962215628248847013173156677976106464360106570431514782734949342630814393337894205521996946129167948696405561882756529919863777697199473083623922454188325720013395376338547022953966807515177097477854360197226747987845964095299309938670507541981522577296017048288395136450795917439106731300430896903753459203668143204273932544275701600378805698507635963581612288313939775695478378426625353302621400254537902732059101009063951600253375867054763696546919440908305739771026532161044921679693021308164235090537591426097779208484089016614082896786176489873061301071469279247178663303743678369992379614763135928751254301500713252557247257493484954154291803355465029507185036266552999616689339605119907228595912532125962097703655310566093059655731924958741488993724368324744407953088258864817774941984684066287389782536083668552888988727655920091885850092703739253555480094949737121595295758986040175721838419761760394517289595466454815977841228122985119225167352004943451646017867461058691621674185964472986905616927109113448315720304495480517875415227503002281299287631644488020880804926324548332930822754159293969652086988990818626994355892797742791008265840364626961919887051971485726517206425062815990758001301365523269916296218544506466227705378294440692945456779340383069387788912851672232489072709322629795702282082104160952638992999857661282152665662768323080938570350682509395124487612962504417334614772213250221093057785888480441009083242591799367782773283777076048226401975813938575684099183171611468525164508786861074999870781685901408927440990919958989408665777652470395635781205395698878082262559688251837586746668014949597802023466609298390386314994740807147804106453297123788369141212201308604836377914309514774522059770667069569753443610884070532516888397584781599388639952607263826696924990400902115532002191553986365100030353876877651304112788966981787001098642673719222554299661795305592786312878350016039076755839530722830683693644732903212902534469334702661079790918993600742227830722067094395318221948618101722658395531728288289082832205216356172960548763501914871938484243270955240634060296501246057312066676816150072258851063309611377449740877311969623668316543394546927072582582950697035082772216433068782897605028639800178181750869769549290405157822643454787607531867607038267717467973583038844034002802005948288997036022548550973169270891500174824178990295513048030732488643567041523651046606031692129361945192225207274419928589958179806635361878540662564187480695856169328885478890292441350361150203655537634810832421637990438395137767673216721710841398847004957198009709396710962731466670721380333006615691619354329552443635505544771667320388416306678110013344683668703458099552787385444307828320008705904061780950677642689677487621037475036131232177377238744829098524977329172487344282330545103416345672882177588525210489613144625978891568767684712418621842749281994472434928535800464802836254180881251144057566139928811523734967684545022361370473663079586171055465607851260485431085124325594159893458568473310602780855199968446366750101498649766739535555807868499354771648313950676164512002090293138536246597691690778912340824029142497168770086286395940367327187105426756157088783449880618156268059215842501768184442672996933787214726851496354944473403238661143822688883222693717698012057091184577125969336059779699494203818334094887341429102144416193745456350693419386152182333172833568683381533853658105632744568944345606387079267212123644261364855157026602815173108885703617340448289393563801817361330078399599478756547456527436803594710144854738983225343233187396566514219140091315224751558861231811730437480805170653752158388653544875169959520841842230917672239780875358829276296205681398711213458835875350961640556082318313689318637597935854021933005164997116838464239148711644013516008587599451328357848481520413676148537978966848730560936437231683940286379758482443648601155226674401846253141007161490996592761238957843667782602897029174170058081696521597550558641660975126198626491163818823406405299052713879472171839440851256865043406149465158435112110488185945972062495065038932779575924634012370612187167210434001865591274610643784357841100162010151086472621959894457125240500053988772748020442685197958090396593094699862479869892481206271851242688139749865274538378536847729185700821263199353733105205151256907508173432174293578528062571379350975726936508043768869053268617964147624093891446543693787612617369725787938191647547396071256793850478390409803313360234197565092125649807405297787570158524340180507876353896947537287159554380778570626432597667508953767944359972807923771559652622884950016649275944624023677745818556777283616143357302085544450854151948400809260059408106277167343511363851167818951369129371575157646886422060102495728074941109563610494487959876395278940699145776967404993757453983003324855913372832422412198562237280135533633138107281554771258814085649811497977875099921718749388748944792821400125148640697577544430353511844425452869906647256649399306320207481741297602594402568651480448217887834524155137847232008382988132581671184811160632967952513677765090454660618816386521969781009910584892732941998081618784422487628570346783025834460851792660646037171708970390466446807801299173928626998186561618607345149010476097996055482325784187955881520665816301745287223606653187837459441796575346588280863860525209866123258219662116967219848280472336304747455969872789418030462567611779542866927653319645589929186696352536372159106654485776047827015537740654927706896063800541506210563490549349379139774764146982061269953682276855595830844107464312579171161234810026194780612146119439010691786286698359499397852579916313501732299930359005408248146259131925385683726712537963019062226008700590616276733863115113660314892875324934225574805513164509419185074530460395833076639591648985405044407541475936369764725067383279309311748792947125467924813874907383925720635012224763851925835107216260543862506990129540349226792914545285095287511140528115964409565253057441093551079856804616139497071262857851609794500752020699535715368594863300564724366132914454626799241160307152427850131607065759844998607510225320861382006714157424203644550871757592234712177683451929606952873950703333108150358848569862983211549229611992921100342834516722174783145016311133387141561000073185677059116270107459428519437087861277837127400725731580334549612365090058681619848902986828780262732721305159703979601157162703928033739216740500615856519868983800974332646710245489452771107114838666136377588222743714478104772849249297813408366116919749385881494884277322744482743576860588370234800107318078117587270140696481746403673848410353969893749212012456445011969495545271020770773610955795703953637033710034750689072020613662335400459173971800916755217540672825641301438185821396748045610304912159072040741168750126493677904013390703631669047980743538893945787511063923741816756972180824257464132957172367956941023991225082810961360046906097872305720342330667296649349143235267731736444334843236202633634367057333028514097728346028805181371491833112149068399050952098961928804929670856862746788282736651749415067338918590125092533637958038192260036290451726435253900149463546439046058810143605906336903774986060778750538981085114260934597272653371712420389775160229900509681397077888583532784439140928658623045289130793324189757552546901286158928874814130064127550280312116406452874753659127992096752081972447903287151547978907029093255122459349477945651108772299633809049191321668287908043165186996999802124484245179884037474033432603664050257758137906125541565562881606874613345858852037772870738688567814017314410821961199809524645883414882361031086700446259979148466562704006818446893770224080559660627374685569972619694985645835103886720891057479503254778896653319406157525616314566429050433332723316329356719028646608284986512369646185779408708620017425682279592172536802141100290227158845274820169374284149030912404213795207991379963042128783554918466837834990204938484059348621939641704160782179952222360532456319075113531900622767218577163140995395652343662767515137510614082881508646270263655761328615188081718798903848762694782056865590571469483666761217429778300182837249816708982784640254216595726399061942234701775661781485534460354403034206099307176036522958551607159872988461404918865110602035409407507622119036046804888869151087031514651639162477495750568893429417710354839522342394259312840688344591906133952649776901653434918454961551868664114650237812507929281781695049987357806997562368317936631759444060529681124226425911417187155573889812110120180938869614803442397143485199546240932829549262274497088933704256742974587677305066139567871153402097266826535066856496358553882231143895425196126122205567682444116921699860042003431885043559078284248986321609556838315654283720192072496035542502363715175506315119631618131645838174494700825243211310346545966925922658575524814971738773110729941557017810079716004150902229265263101053901113830005241375226531406015236841089416535942438788615007181380766230742160041242095321694916025740385461039411869083432032503076470749094766953940993611708958719007963248322325924204011964492222242092652457345794841813485741821009303178644069979520225344790860300240848056054971188214709717630893417215518348310210723005237047905218154717813259295345984934563699219993689355274710634926362022506698368890393863240044481114254149671837089476599800096751465499864783173411628293230945565795133429358346239815286571367227688441594274692657433137678502444804106736023785588578977373397959209387105540021904051316054496139052264822278420870767816960421518718483704432337457533698435559495738638822248224652166023639241269661362638238855944568484087230652204639476490442920515533165508665243359571476726068323863941366531034933101950771811566518448308080189362221657018315073907020092234376098162740564031665771498165548019449414028689484909810402145985021037169280288815929873300091287370996594732572271320771013000285278428087663332777248313560852643301265019623416576120681284248294915918171234391645985477928922509359943612390905124409607241898670049683732303830999949263079241907710198224748390810381189100026600133018158546191928084736658428943168651368176347145342616972163748578952125410568594356728655892624727127938079162586081982858679548420419920362703476514324904942243467810946552040659686230851645003417219632057116015553237725535137374968651459510048466046484019262090010925674993048481732839104421403134132952290544299892839800653112934562356439582766876327310899202842859711883152467955138828279710851911419836802024934695791252979577391584805583055983235216305226252972801253086883733294787229409321030080485494923833263057333170853606341905811863965722406993262453831007648415201123317307337492922215930062406267660347904132922018365368200372524144780452815287321467601019992478387383714559619965417783116737209755975247278722262992034050729673098949023500396617817254823740517358462339764896132240710344846695595235588066756316038466240975699133389353310881720360379175191326092515374995049374179155907261605392535601261930784095314488334404808731929525657589417012576833236495140641463624981341139531027767857850567804216034689564573978173758605899561261468210870001668612585542702083112217305786272235889568703731874831597532273331156972679671366150989225185435311885802064054388870131933708861969450889343838047837797367539493792060706336077461194544749716467213457803647357264529944388030247554028072642947063474610456163306421544445869846873669058360291450662052954107121335287721701325085498275409745753962178584294024099229828615936587624557746971684918809607616161772445183918301499082191808271992441729926512382589428037088513941246599051223223946154983451963097209468808269789179493820591784764557357672958259360409637363898877474937097171718602049178643074172666263647359756843604605849238045283166537281784117510581230634136891617519761735270843981977564192459129013873516667350310076634824950713462624257763620700536117010535302280806238682118284326010815981845194988792364409938877044549590032350583238512864587065234308762568921008683222214968293489118542123477785070329131970470396180854857681526624093979545606216058702701971283742299007601331336572202125377992895742429493048684038474484434612923307478099467653980290163446164228362279447308727616428468066423541038003002033684013449134971498037172362928829412226690286535276871275347122232380643305866001781838743465055181653169931784521259463877323919728397442874964353561328566726225866362012985648137546211880305431856922376222689118189046445578125467152443457942007617348042178068000340477582066233362337224333554731784675273977231749923171509154910074786991902172360599529353679174266920147962670147249653792267919537165467436334585095966809181925365715005466664291635998075891403062530032661595167690619881773830169533539097954510422096069030685986202574351787084787534650548858861067701689801031852968968218740559821697666748533268220387065335859590564569273886117433077733295904803598828573669865662568622636404600237789456218360728328289028450105450762879638514217032705190776082579805016561678858740174415334651968453638017365949311160608161196392935654954528265982880947272403565581832063610075684767843082157773959798117699202442271202695163479483166262016656142459549959067834231040123797829993198516448572467068205594615169350670131650765942846987748150017927911570786586634899484591238941245510227134990429225016870258140266209246428412584759541584077150711558408241509467988999623794171331907454792176128222730837366612547441744111856788588032191996577014719347025450244073171825984091570974746773838955216217941471393983421900686270620147791433079469556593923319256633541754344197375343985136366523835120162569862816100957561148211780517257867368126877253622738574590526994559651944062311669218504535614074675464985817048985575555364331061105375641974611586233388270521682924198889447545363751703186168387772305113455962832841470326680930575949341141970731777519166534760186565482104326997640991709786259393849455119866233948045621211897533040084565555909498315949648162133276156600967325474406478143981071916974417830588679908524674808276172636661823639910517090983390876902949643102797130911968571993754784136383121403313842406655222551461082713776771501540681043144361403625343298542922415585780009964916696682467145123198066564465816622939399959776854119823336523808155465747093353484517218726242608174915282320232458719628182901769501436025507166437180148853991826926446371013644631338668287844273848505033101587144026421927247046887927434741443858878207374830803690384292063137344461306541739302063644566453685325599230071715191646693846917048824921869441632695765424470199738893058771899112857472576650242879876086085189229574012653027742114740643899029233712960363996600681234311596439464921533884222800931903569015044704680170555081061488828641425418458357736723435321760017535382598607077468933347710042476074952810356855357711140089153337526056269410341621316913960735146378665601841250888767451382827640764623949611792881131392629562705000368791457100866692069612069145853297118529412434253930983651615020594132094412748794604461448021600030277435689496266647046562134412329406450774692948955807431026639236068066540640100496697750820911889852876020468770987579837565878419529294547139891937966919372990991096997445161685812403397528960952969382341352215808723197054754023850198590686179691682395657375278721315571844434321651190405037177247838858493912975987603749251588208297732184978821963825129641510466582391944325258924087131729008171045800882554538994756040038123843567343008089082954441306924356732245313643869676706791935111711238403080940272009696609089622230432288660522602404817139230299347965129707456283750240828846796779163775639761994655367783676836393131023876391711309908672244106813235617189312349575446844444736611214127548650202034814704699909968890902934257992080996359131843143390388075163534816038139841359865755197769161417342870688476157031218708710510134581561411841370090822584255253324928960544155159176325207696057733983775669450848223845441920024920577459842067170648126705816282509573501954432656669138313578973228642497488899398399829073481368693099749852871438414662286613574931118914939609542670854366361463583534382452982246091402516131107092431792479986219845681188580936738752915834385778092237344542752125444971257636290048714009386957673490004150645416635096146019314913121642137037784285322074532081360822969156279329393649887864738368907953709668751492256917352930007857566741661323485880204050546714387260992051868122935951276601876332111916587383687611715205801402972755838195869667725809618700256402249684112478756258187696696775287091298572108628552504395579317860214467036367667048247013139482955037073015919547915603623471859687969952014430064567077892974093286083108751817827314069650346418574529484731041869331258192043949138484880689243404146857768527946953324708274903324298242695121190695724147491929876018510450845676588942538221961474074282684137898870193466855779800684228638190186804523179750424234480834468949637681785224419278493069241252715961938939096561076352097283463407140501154432260519201569996079446723946209332743802987123955053618582346535581889335635366524518115794923680052363366420311192517295310154832869328527270221033862933254265110115012917014979826749218354321003539421777409905384579365497709629251280793642665491842312036445398347263860063323709196486234458150288424139147487125928990376659806913409861606253542661938627414657979611392240972693379834593096736758906144351363668004550232432993505901979018184555280502800939036065313632641027488755003580748648349034632388374609430467204341798394614697384275374635866536100583578386081122809774919118098820740111821150848196907084593607878681925906258012363369847768519800514948178156306797149328707159665000571578726596491318655892675143881319274812673662296557098168442349815959722853675177887279382576018628936338950304857797612092788501711720606489189714016683989209905189873344460734425234139371957281686952956932146040275415239448227877931832346236747315889515323240610150880313325657874342376243169441653282506618546374529956817350554614770209367309693040097982291317871769434685375002008119764756812231782035954082197018413920203240245283494662688166219495526562151980018435153581438027375409399259301134754004522017463001025182879012477450051639994534330845402676588159177568631884022604633205731900789124253666576724899460745241841757727583018637380529972059816971599270037458246037854613549372886151457490325645777760081515269740168152476397248455344231795346131966969357172218020514776147066906148681019972905844826570877090032615981181897145311037578326575758749397276072150244791542079526954612594486504009477696930336597615464306092827100102173733632802916087269138588390526950417912179301887589780943178680359328703227720731962550840074143572907634607145245998147208823297968174314662594686824010106552954994640105433565336786309214806638861382583987171570049499476379412168478170890415128188163713941560350121970046553589402036522211965273934637564917426562768065247013278826456984224125443973480847640807595637390109787361798083480285952681748367972312247641874057935367644595901595989326111022754919710266540708170899215141277907877910401680577157448005016513953405910940387737431175871598750243269861127219018648679258864615779697568262191779354917190887820519026328536919378870941036838401025410363529818242672611597624938698397826042393851971044238923673065683007321703766695660063298850981047425337487888406784179330345536674330979143105928486238020721880328731158996302231955142477650449752861403465127675971862666642084292361625192955252630556551928499437281475706252357923848628086787763829645840637009291603499459415731200142454896925250308777846872362777673522694588144671229846072608770156487428500118044194587568495916919292627603251937501481536231574764708229942258412824197635107610081229112824810317767596143671335295403785068594488005749070356739536954768745338113029939387941579583434785077532806550600649605675089445232921403464108584892432955883854538738390181869974086593238324449928184544012869964721300922261588633188146698451975085572607116873150734845309272635194966715275733093430554788591239065369754747293228274631492833205566505880163286340852130296042692746094386945581871636763373441148534601154146362199511513876112675431551895662990493788016312550232514838269097432097383772943255039935053308837747901708950574818019016467197747354066078298837792250534886784860619201121981101872712071814755304243422898960735827940911201778930438721198499000491599478072085618167509359856390084684807095764420717687010490170459822851943415801927900899430115011477134218537457318014905942444743668913579634025628456063032417239567598379779789744615930300295492878570971503196854227201311956914798659593062008337761199512267783112026687351781052709699732458435071564498202569652225430793633528533039065872162509732758487609844000294370691075165948032515377420335578757910298476654332361443207863304506275857001830994745067801675305840713521402795775989493461258614326052332369002996870470930380433136445530824040492087567749987874588895466924282820812254780963153419281569166974388990114608446677522012483165738532897040069971966035534950758831697766164060877696390816822038564452481960989575457816056664991097344063782901343293345883436247350989395037953684508820909159902167710085695399940721944003572068817019457477655188935418885924363413293843980845584005321961027350743733762907288262952141008230501466065468635319726050088914485522723140542054206580362810805160550741689378728166069203584170006168152143946843679114647655236007131783515803863546800474454028327363621552612250329246028939372704767223849781542948343499708289708723492211781121860241662223778962698879404548649941261882756703606572943506222505884741143909099593633323670397746983858054764735140714458257395034698460972051569256403844258341282336440963813905233714309704784462728872201341963524186956701516101411312957495080936806386268082370941032969541178859003584581115593218956407708140049765477387608410999799905714384249794821045056317382647413667646142554150504483348018357908620584597794772657135120807817768697005291833935315832095798178953689134531481213615766858034210232662137813354604044426419738065658465515421472803766703108080087011055922103037935365371235823218710132262219904947726597569707165217528243454651825796012481008623940042183273474751125765279101165643731643918627856038646182369363342222936967052520131682387651947596794016106001539041989635878950814959992644769147342233543275375587679938918140381295712666728761989624920411790991203768297484566191243149768863749045326904436139578775888661228365865433776315415349168095159143263322308811852100450493990807520401450446641351198513479528694463889837046337599180517620107108528020015265657809903536613407222141280866054642905705038857007340212725460672055507767002143985065884624479591615951908755236461040528145713584821474558378012612480242693097627363044967199589704646701235266290209741594840467038389426272265049700416783780175567588544414071637345563947830072328760490864668826423428790754128802243122934124479761464335482479097598112390263996619964380931887539807006650590164953578268552672972061360459396307164851385587023016746877211347949341464326113598883033908755528645724884822797327572180593263258421208873925544176007257907560142133456561533696234145153566446073098088262529843594297947490561711728251916324606233695544633517608545122329529103649663745783825291160989943385206958912838309978096879462640044199361099178040925719673017352933569595752451939820935190967125224609439183994244667062536609199351009587941833086947515905515023938616236861978104503110294279248807245813556520909620516301831597319248577423822365219694758344596200087293803185685420677263607782684400184422282981835056185178256061200063131272263860542382826844712047776350983280828183293344860112818082356625563488132985212017632465084280552066769388062241320919349752977481486269294742937934150491112165601045491345556400787058587059942932011262940061138094395954560782782525280264645850079881635575696992005689007948307047158342621236488255414661735103975754634288390010739204386830214349238028260849532660614491749796890908741575506878307214839579915938881015324322080799906697402181111613273318773773616095502588677370708148339772705846836158375338929662347116363776361491667678431883292530734892300534614457857840588201351385735541549683946860906494542893049420366298046810926708874993346063659951195671682380269396917547172137984061504153507447989315554885732961987790337862686737671779014777181449503146716021819441996470067212127812561659466428194363259842056256971691051800670437853937336219369468162815327408010603989936521119853145807873521410533455050463942939954576479495559915700634387542674707745073631112626907216864994201386390502061034560956462061969551667423229711917619228340040810926306564431489500317318974313257048702580031030870960481683179905947172362736658628751087812417231810164788888121407225576274983337998484721533438201476568437790380090358264742162739989824351690928419941694491081411129906314883053958325125985471925003033648875278014554963319190430145292157368182382369624872934145459186097877853925206890882539636558338726274906317639911930160796058760396498659428453736162522736385271733962676598980075496092743470542257354536159539910190361795966480753956338027447299339640754512767230398132703308585856021828404291145620843590500509270459304940209369474590699709025532849939288411783065347807237565132239249597880473614978940325278914381023770003450745554475879315002147086558505067421930253699673920102078296801910197424598238434259127158880753180923758254442666798685796447988483507477860814074609646675185390250192882272068256593233818641327028226541670912991127341803148635738233241484385680144553393978654682802898547947105134328972096312074287868891242482958138655686678226920596671132136225980075931001175173427285605612005554160741976755818736838678795095407119999248860275971612548491891296456185341763316888471160798738923798534310345663995303639358118938187376507550034913949688785441961513364955077844624603964511413323066885975896944655586172391768586774384932220771711664902869547743994296811838337363436853821007322758259037335411771059595018378521394960612286448606086121077889343314347633600478150964601885154854605675480616904094247558844680854097067156158175436792256840507175401266333460931082316921070602845363421038921554121242476201276725441955315662642991505893862465355154820148423587889069844759730835131601213473044115375472479158809648546896959655411527304582656806512889827576417599985717698642426707878439083243908955978940206598376797188112388942014026621295607687073662803976708142615218214284661666586709754628290184637203705141315639790794039983998769424458310662147966002827609893150416609652218098024875219986399046855539766829671606563875387640388339791267988194789372473503011787391925410685016951792430446982826943123586292216681529083104684707842578856186820593259880677706384634706087506522459763929293849088110869353034974616383639542290297169193972918519904818587465709123620595903170395756399988069075649774311669371511987020178705663672418909530234542737307432335687708857649230143058070966574551882257296867412828844871326552952516928567598213495757453295320937426858751974118741270143102800980771217475240909850804898157261200464149546189746312235949378170009194139488981328365172304235750287211959396664753999231513266212696556929276145297846610679187962599036148313141544470382457752436770489737937277247582053785753436302659469184066268449960267267489088384713210706501884943059416360268229763867503094166050161223909126533282650732791792412086522096855012146141492897935759285785919791543360926584194380524480644429686850462537879245018655170984300963235508515782721051368661646349031272304654259557620695944941760539963762349508525519923692673702682025689872256857295216443165523572081410244704106933744846647004909402209142839721616954433829069898769883405092894354996329598984246423639138182763397394701689218636831718050969011269429140198581629167906229926226419935423791686623054461949311237391743291006774313843023392861018071449041872035280890976152937190074813472553158691055978413371331045167166318969415555796267817238892901017898884372889130318554875719707198359823030623245007104956085826263971351882380833339026402181128565245557294548794613574882001350316881990734629328966878579737536252634382380732577238220349390839036816319759085885192213021400879414970406366195845741851896080617938152476300143833785169730958805655669103856939449702641280957646221323153600851068821540952315622826595028199184265625303914168296206634294357171445439618597781798942184065957293094560534976428112665200571495204984718877283591326358899586350679421653045702445713108973146516549104134868215842558671242550336186642032051904189943434774216293635948451112324842501541016237715852010559116754443987057173508319513415176796233781179772075930493108176451170404515997860839086883265580749391520911821329533036218442994046171946641123780394665055689963374120556576894781584132915825104667497541056505765581429086080422763896667589594443564794911745573458462683225038086135133292273608823801442788510012561208043624762290403855404284518263526065661685312241430778113360332710493722140319632900603351869753322224660749651471364992147147261989800720987673172309328786487294162339874587054011732909717380876212968419790415451350434356177138701984635393213596228991182290828204707306213139654621545144754333824053003050962025552688075225184995836756684382586973320838825860756942119052347788770478749830495928465124459936539125131352252557537913561088007566144585278574890795204884783581945094995200178651925297431362233412512189476313818913708955804095212220086329634417334388408307979458933704501656927613542015111540901133407574329797063637032407515024702690934276124076050853502867948733559028858360163062139310433308219529436055674391173521485886321615273889493099191532454674681115876903962218885165755269484939855253131670793274667296727688794731166124729052409365782544062089183101846898309462131653360425863607684600565423177528449253662375559503118300462821380573741153124369871616339632904236021535988984546683300318886603341202668695671240810346366756665834960595649234800364758265134021101742339551847216889031940408298045173744308275686573218774840845892352771367371808971508302819522684508032982749615546672238318849734324455165098427125361554203711018477516134723162248782103635417161367300350115698902131413134750559728970267777392271206101010144465637120405700346272157659651017540425661639576347037713071255877359934805318536881707797731608065167349402311730074201629731850126769995312827026361422438565747841225454893977097110771965256235199936249445344500952852523789406205196848062785278910536764374985004728973581078837090271304442247116101794901043763825547921784332607752055131031387963090058204964981731483447950823346384210294105053253312075526173679154485492755185743461384296772410943537637240669474515498314780982279775141450260015491035747665952654588093914681127868053161141491977551007519031355877624144818218886637884598565572942786443756275207109069381779650520494250940223464147817405383540483292710599931981802300404764230132713535938859584129288119127844929150199972114117488404937395395035728569721567585934939061264668379804860918360566382882962067370480129860096158393940009149115245644986507372872037058221900725367874992583888937170227505595559659755346876582779295021565039720097121201169370345864140282929073135969359741074776611453740984604779120386861843760407900472347610930655542167684237664102553264522679717294300091641551939918686071824659305371287452142890326519025150783786925930543870621595565604098661995140851333812154402732625128743294084519205481991127623796205712996421844638110519889979307110064856968623482411284489562287329619910293803105861202332376705119873829907004056724885386923343048156883399208270142018839122998455656123656921708722268547540381639615984631422433941637117313293841490348574517293959551059893713786872427141939001301589913963059346917360380053423174199055748955230227107768534840887304954119053170667331641784903106342457432680942861492928333284207104677032080615248768334272730210539009308586356408036892861350362154295549475947195749167727471236173476538561511762321663613301939164524807799240324405570258106097530134367121672604045294282934514759999336040456532118294718560239547887686076459976006851523144241958341672706305108804808354218014302736107668082871433553142922747276663137030128977698465367543240378050452374688825665109826897492291982594057225959665760784147982963505775963191481324980736016816678341992960525623633487582509190516577203294833376790282184766329060691376032447749508541721266583665648170076318513632793896193224278961103646563150127314382454334994143822031302895101593726627741188085545341070855079392703433540079433110273456371715024051802260941691964250472020314568533614694180967320042322924672021924122308785176124825972617396545988744431506570528460636286149509511453964335345747402942503344522086147840039220406313405244067904917986007222779872655161999078744841719769621865324175132536420933324529081422982075232162122243099880128406209368625457365537686836919312633978017249060992683315803916376229882967264440534160537347149279432188741131415117519031186655982673334318380712756292318434727251268110006170442520844673095896115674827530322894747883266981725179721902276473976037699782232646645660400874584017190750759261888392186799908936850668434852130335841943664131952074759995489903968937976894514607986478352483793082163701205976330907868409759657950822139927018397944301734583959628465084320106626187824177352017178129560376031205541911374223524900488733317097516088358644334202778666247428128388881627090591072781556842126479224523034397031048105208285631477183933738848317203356395382598872750334453813776859222163321647608231572626397520762339903477051019795146935029318688643260580125391555029819988706093740463409367793739186879538460340033199181500845264403416124025506070563426384161167016138123032236604731027678598169360739032149777875262174954789993351195277151797990811199887182671953451725625173737853845639079155468387600058615003694122012015117550586270243477286861414767190195454496242668094791894801588709865231284974265230206061909307751493442986225849806212427246883445141110914607241730984145140351666773237529661097711480328598913119266435389585332444838189075418290712706454422334780154972562979153106050583666387224566396266986099135812451060157994790240809119505364215082202756925284683873093451172764888786379482235507950355192569065055982544564072958563806056212407010865253672107607021077907501860760279748292917533289169776481707591181026218948278978860998780052237122430974210726364588763340581024492614236243355948734306600305403231242614671980128093272485577215876400708121213699031581669525076436502248890312084257105090570334124532474599779943302874275556484040448135135261857164460930451336995153029389023789714551149078238343215925308225337100406938695981276464291782846053468781154547974737873744716999551467617276309670911830230912173773071948101432096210339344218316187453376898623019172480100367987552800404728853310275823981294838507351216273819969962527643849185257737315711417136586710847730348225080224038086675238202409697108539012121950065354428245485071820903101833030928216014335227891442753847529289407465293795037142337629899075417690026262788556127081521520201412344136134128486253693226375834173311611868965817414721810367888818896856252105603850451879865569219376147275766303197637534833791034814790441651614912525452083593052037852825120498998404984298773942875382816078867962692970214132618967044012917062147204544508470946754790911951339651892272117430580950091829817095557940030449760704316930631868496821519355939561420664713137609865499221946616796055653627576894272817819825788879202131858738286687095408891620537799848665311849257436892496726504932052693231742313644049458496880123080054806074614652403258296538891672178509679006757171175100818138275294205161506278594366782612437064964851838122413029009769308756393443182647078467425495733316000841277447707416909171699297993211111759278163689082566868925597201859374071863072839090821087965961629611072041106915178824146444957665561870291754330503177626852547915791816921551450727068649446704938869027276001575313437138860807182222023329623838054141872139566730391941398041992908301719913639366133324021781859636501980452286325492707672287051985397825862425620308080465459823043364203618627240056055625492133785811473574028496854182436900278876424780331683813072759919976392679596984833557227649327423351766703106517481857754909414969822727070248981707237702320530893351365628143698234241679270884817694919215468907106848203790498107196200326205464454182853412322444357083562780128727880362258770662186043139171345904010668234874198902418131443667763058949728020814675967997267318090007248075808457987525332881398757426545296679958126457827864490645535343379082968051912188653898718180613013671024898017941158875988093715597732262361419247336051894282533291147725619043899083049380857263211765826158350956172314809543926377757818310895658492526831425702228604904715284381881989192296169652919120638407577824747265064707517955150023807419810711546546919613173269476554450007324710961470602902377650034735711128946731089693489698664830077515190455631883756861708437769248532959111963062247137557286396058742669001235760770981505415744354834830572128268914580590610210259540069677141301258482800977060909705035079016255388326651091799818139494435807924417246226177962689549487684163462422697825029827828936271630467073341455873644733861327024542266197041004536035267779421030294115636771568129469056342683117137184220007518041371715796990340077028212781881452120164229199262842761520807996296442588212439097674323593285041803286843592463709198863805718914821239609098978774844876414690944254819941746496574619484005408276729640245279074500851473402064403925604020412867326634273893735786300515237260964277139810655141568583241313542900465958392721279161348867523895918587158202643302059615057416224128898029140808637077430688306829458922507078535720710872545222819255149349933261352941256619546456412008129703253638503997583612322952647578868102979636229388932961706252781815674840406664002597298568451976002379078233435854871392817806798770649221988442258857704804516075040223306771059275742225332346016935294080918422921465426258491488838186329005547448445124292757704689276667771922475377160970472575471007251443506025358622665712312026086121748650458618425278630640356940811743576566304973413834208938453082086601202481459606688249348260138549988816571519032061259213634700943656240634794678771712065227030991232173689533584391923121174221898525396424554009653768390535162854201656743337525178213500491608436799534855724840944225784397452668436050041578794490036553408315178457010306882220794222611757590026808011467438915066107693061568719092200193876127813220936212788074056644650193715699385642798188099715379330599854386743872239395981691950877460886795829697449136808999676420487814043635608690670751980676268145218043916686527099033623334418405684423689405247370658072270050631396068853358764537947042024459623125416178801412683020610295453616861653905411243023596277194535605166647114236021258435038603616080700420818218549367424811691095908089081878361482338973874404564466398216181511886034142261763619389143955913703621483869602847072067196191443824249246167124640245623222598371892808235233683200665821668373467690702208781313769349882552820523345262910357833298269044328866725651011555061824821028688593800003748985008455198943184664847203004418086184601067152921406456883980848930381850628611490941043274793847200287882004063326858391231247462765476411887620024007423877717641915770287692939865925698567939390228889214339300027887602232317941913793525039862137097143996592082157273996298880479347251465388327481645955641365423046846909717751718172841622185863006357152691393394132137720788048586095777658268484925686522246363849414541527576716579747950077808955759952355635072053604021031374962402214594322588837476588667401532826200783188108583098336401494541414268568963582475922926094007572291945914629851836864137198572659217869371666519011407746610481884934344157591184093250326625864552471118497317940257168772747945803813406052618772192012560282445049184872169944583454124876471638810374896425065463145194765765072921292755892112673606314095807809485269690365461477968619725401983948734041561525352127293783345053085814316899736867259253636249131104641836373090364521832041396534129372686118570375256503222646240206878281241180961529787780936277692513773926367271022310679460008285889390437043131697105722618618596486165113418671054877213741135000333120911245248861382700604218771711790155905943888459085237376796383648174048855940086341529301999371591819112840681222574916682646045398430611016298938016226346006816409646289490100516635539215951996879526467927991071193140224594917774284563838800284376168581616140263741337409694331458822770609573632372627783810534065436342357652386132743688363126594362021841876901244603558574604382423476895946597838045113608866898594515155713796663712617271419354170818690528970414787497861259002623639478493140045190949352104499081394887526650425649419009027398180982877761286450332436616822814633709805183585655423119701903530760977282307104712552176264301617359262557166581209506534756500928297987408905175762677106103234878206829030231099156993426831978325505149792219887170749460611503904529287683137321379898664415516284621026823982552710971569817328248018724326607773731487323195926889458202301896112129752396983997161851576673216464645009386522979925632378610143790661046207133043872427837608344726804498993282271304760717136962987982671822589477599478576156442101569692010869398113170468669182239442852452424607302504373877326925094269545395996711861554390020483893713176222196698110854231664712618522841465607795492172374326304329546913909052316681047148095198256567116927021455057837316955372827090405496220789573631260783762246191445932013429332424368268893925574984501752375404536990538448287970602822758266071742681395953479377179649460860983156488679639839691257996246151271958120658228725171488497424030277143927369952133437220992693039324378342176379176420466367942277455448099183367748332975413088601652847405029516189858804105720274264014377523876452865785365312299384421208572888235457854789639311301615286028537876320007405265193764775328602067034608980473782017170445560203283149160815388943902712778142999153963157023337737683435189466718185571803049255771970625982247562871149766046642459558787583639722244338589514646167089719545403051177651169633046608658166181254117254339348305902135292705210397907433749312990298081574334555038193107431451204068230027699494650780728026843348479546206075415218363816645812591730555757995411062128455301597182256394322313792164609879965942252048859267026760288852684210661693995372988948317547986941851251776304673157132071704028167705306088922663102327398712840298148220737052874758191064139305912837488635363704835572846635703024334211142584267279221032780113323626118679851593216348082795603427570280700860486328017868094674772309174844237643128574923398699504594159238592693343010759031720308796477123813430529273153163751539259795131055337930320648394910874633770833064730884249521281476700763026079584244926693409444576761933773923953285232901957711515874055881261054668445381081655258813380868508592772305224640942151106388494245202708700939603835395659437417675626188782202967425358291768360142174261838219569266375289445836264559131802549331646863144291940934306393054643483645832419006918570336162539841909822567772049141352232431627582897541948311712111407175008547143665982483001981126206081445840052628504621124877904860631150095644959184845187087933520141432619892933089840078991690541246367652608242215362667554188012806386119088090240844021549305104784362060622739168645146346785065633401049041387915925319898739906745062254371167020008046362076080846819796942509815555738260667085026334753792426617739844701251377354303995169075378245342912507372524462573423686688788168366731053222333269369625094399434071425955720983533181546756097231630857697166842061736474888360942278351472643727421451712213601225051865693811246895299369362769512889167144151604650002911993490196226550264871464380044036566342730453975721873074030633254096626939842153187204200171178001807057463121989143830368295714432622415511696053025342891172100625806307341738692252623904012229083596910988035452833385828546928227659369282821287734419612113143648487221516784465409764396778559079714987178337428820136342989070662732746328741437921011415510583653149834270861841980874884529251179641375479594152074884652926174572394077536349093868864592623959395701774491659275430631030570620944025581011293663979957322710737362924075239591097446885201579284408510821452831915352095134801469853655730371755157305846136604375580565862163592168614191443471007669537802748234333317393562139830740746107062816150276639127734877834508875809119975802657669782281071740853462902167330139336601896323991183952148434127186133652443372758747053617121176569252785080901482517506168720422680417750058652479181882650486806041350142569920037812559576202150942125832069432736916271130090809356097364779690296736713243634593583801374575384995323958938014893892298461280494854332299468796434604004452076091645199542405080012955987941385324520670421547188840780142002128337792793409784503799819126187702230356093937830097574000410370028454894148215757632971968668695320862122090732547518981085087719899833132383291965666228613808352079625736003250405387639693916955948168823577488687744483018579337305435331165927357367130671625858322120910604193972926288273702909811869467630200771340222342831225515726547536585584798944394103069153090391665750958768844310486896380164349400819829000929154902751027732205751406303630922534914904635129930969117063233512779819422465332069342378016207129492523037719708551473355080403447591532871808725430565047308891003248485668283609522172273354366850120581251363177285817514368552667086086236684089275113080303900877712126072972902281418739584402859098102493769666924149807299973219418343207530006761362328248149524712857118239316124575712981730869308895667061053988060001696013910496511565925841691518328714312504023479342597191395489146755158698290073421964005435946445261533656745630308125550905593180757467446123527094120529013269322484571306879426862254192880254295926397177948508474974525876680404211790274896694400475971870514655335094125269407110066172193536417437884215589011265089221867872337091893657760398144513594583494591549328118038214457413107199433423000386421227968921021784598699553547358523392820321210844254648928556502274640570575738626046846678836775980922224387031490061451192854288018104430277792568960052978229523424938078274438281810392192571822853945180432847497051897133493495716623486280175103027583770584413983922489045719936198142010990976211527942790673426885791264657780644699729806379386108972209272422861325809185782389315901607892940798917806889954791121703986280756165844472966144718823481018295122013351811612123448835995931229531622420516897882233040936614802502876031515052724810539975492668545878054794753282014431621842148507582243885438209370642059287643007816007353008554904871259008999056101439053738638286158453839769311919279369679151897619591394968937772710427097152382397217320166026961497481863766371148778238938258270249856869983784940438019968374724516231850361442518318094421727897952735217013285703092232702743675243283497861186098754760738622366700777518955856057006006519831349773664448516843366203006103443111777109897642400307944611707582682933473533865881195162186997944001793966193330846982066792100052281287054765666571598646011912439412202651440307832906920849542203330460978827828488759232923934449113627136271403051297892854537557979600591635192335572946185891004069861738879569876249526055675371442439127886937181315578410700796158100559892435129758103738953784139985440999463956707522494401360500176171951736390713222100647517067751929082015245592550384290972596562985169191019892867746235246015158474565744018570820111283213121527415573288524635373887944927344021038785790362319263335948423079290274129790361009629327876337442506985743449968715648100630029261384024260557519754851142885265007549899023471094086265319760016791629231059109766173682858391539075930684090761400215072773740882963156459158842216494999907551239789058846775174428059809755759149363847451493355362452669516161954890481690547349927749527301541606783220321475523095342019391288230119683361195545767763772094427649211970189900832465143727654425682510003104616882010308891138241232561597825059813348858539159067404355017382021930410712009348590788360112150598187217820426113611574686614336755730226955624391236892366592368813403338570435454100256758917141964768400923907149845034100449460165348093122525706879447388994164622278955972335508429024546130575575378559919832893374953155238141420057725845017845384711201355684614550268475567369232852157770378832377524409444847907910322318316224516366577334045656231602763889382766289938716776066957683759942167939960355009400765800541440800743526790769900437754218827389666057221964987552769659059906637985491515127339599463988475284517539128825106748042307309284115613674659153073828578622135026322295313252249928923644301952877212267244170174902759057330813270466374282570187034971927974444246119623218312434987195445956235702742553401085564605840902769365783418813691400348748644593329004927840251388908399653860715374146271994118840801960698657538184150843533239752405333707786232307187168237368979866614077213001658908597445704803607070914160568447080976867864180153657704321382332794359723490928222114135477635882529564190001536890719622699247559550558170616901999092447260397003642377087935946333068121939520776379098103156280983653418434213900768969271564654803410978505064786835022739275896952934838961364595171199090581206457976187019270987153664044613601748130735347623147422210584600861404324752937725286567291396350143300605136763326220860196910697525215022082944330083701155921236034782631690090535787678942294628378161382297934062285144229567919179028452211981768903570998196626465658920489172779197449442467573211698811576713942118451937770399868376658173450066333547863984321078707863236789219239739060738122617895101193801302533203444239266230717368023828602832455437751043779141552402683463841284306233868658341622363283542241889228024993165673980873242449428431688455409171824513775075975188135721957534005993593841593032576252794720533760579890372406085907368803005547521206581667736974025357279821460981078741198776783613431061503618179056767577763845427197419288156126433842338056291412200841086547335786509319299119979742414389780939248022364037056195385668730297587107525585439449024458542097961859751103129978146806949361465875800616249386354087201985731438135571189911862793084966575892219268224046855347933733552187662520014759786995858744399628035366033264625087345683419908761811537954850649585303397755120000581369626249451766297791103452640089502106620563124270649383041945147026932866425813238516516056399764936433146429123929117331160084544843193837263636703017501214839504807148833968638907666035956288021492606789630496409130792207075302297814237366479335781247453200035821655491171235968006004492540796826946839890303841195662820793551966515289655179005466125996669155291913353611105812067329700648021150895556727512272544893297858181058435908395857255840600098725861452463072369101780184138947537349651195372138469114316298077197419981602400912855980797934779604971524556539365994953682698726912943412124031774967222380883942785134563123744633915257956179018012371593128271306512418139278112775731072901915278341924512784879979197699964891853588617019164364104096546293282749942376346628124562801330386618900322099501465160901545500528774247701191551628746841543304254927662598105545186007155059630591750180248807582498533861225725868361829312872564223717600412015732371259691896887474529105015283533999706903949735621785250275183101314147308890655558218864078236707200346507612375872964347007292780707962520303821447619385864773442342836313483873490811235831519874675465548199140622650784176369274273239028896478964349440212633166340477737184888065635570109933437553167313540255526741877012049873230783878766811378317174594468875504849507828098254200583245355192318259935055056413421085103029109564231075613360200134009809542027549137278806624005115837009065651399643871536678846754822439736303442881419086642727838639355264439862605235923205751201503527572336617654740998162057825272680228391427731245291735924534099828509222346930688059130882316873672964714524972650981420339646747310325596563073662846870561303801007393079516140321791022078357960104331893364172287798158623401158103632911866038219895776012016202292051464941062126303385438035892616380601120115278083426977517255256112365317658131393837177084928355771168243966148546761300402187385479885069003215002214220901483897521238891943340684564468385402972118283970280032147250555600386389198180520683093944525938001078924279268662328777182318143743895532726770916012052094004438345748565665836711584653552860986313587451081378530709495058509187056735264240477465598069628457289209728791157096202939709750378795196860751542998641378743368244478237297264067472060406463931673723156018163444404739797412685059557529081905796231331896690584738388252045264981691798899054500964138658514658420991367570951641410047510496619475469698034814561359346296791845641750482946938498755428388360187729969170892247071588269685005363709994757010448310248059703890041145567837847399948989756522056759535053322850355126497862563266725113810265856237077770238146500554410642711621652112739929663035093581841928435066229566032258920645164868191070660363694411336470866252698788709727645347113812730785919777476613838566412253168839716561679749931759583959074934148053783949074835427765043846949129332838098313475875472707511006811251133620318667050087793169358953526034095112613916241559973914502223120555910172227736835692820503925920432196409399221591984399257923297637129945245515610491672744308380854927025208598419530033628508372598828960684572564828035527489960111842093948757033376532864930708944297972642254280872842183547739506687550353726431200580033039296988818982500335428937515421697416002836662920804695573019260057750157506900788748051680070285411396425736622872079555241917983284196341807715405730060735377750411116908695406589228050568564176435006614581617669848650883902275178643006338076019094619529488599746958874665855658009316141811751059799894612663285091972937049726046275913590770390885441352619377080568843104771927054464778567591086239536126637913824201529022049013005653483322022978543619613746347264787747567527641800690055388463520897779144946581271387283644129811451739782270812700916905100288328339269884000948907247451216728374170742237643533329613746672574270094849393966164129630518471259904672211415272966659062482216859458323156912358082399629097886508414092136072873641182636688175787385313924474462403074107147481784541504192613395766564564416884443085757829258897140024946006269497346075930990779398642129405490435436852441552409322056028134542224578613821486900251946201374878222010111917806829961035605451965675293402910907797002894214372392733568358624120669658470738780024433209703225845575474298687698083016672689761260582071498298590572148649238368813901482869220382385197405092869743282605400664941069871323495295933808755399064912586011441736557652314361830404217195754133777180331925602852921000687179230295271909388705859445282572864398196960606587803297519256113999051872897715120001844626788922746454997400294393656460468545341776517427715411236074971388442528540246305248055596414006756584571984822032294701648053346079317130163465173653080846807772788253384616299363125172064004406581681970951172297904301957823552787494181069833653712404821327228032779112273909656862267447648121392437195407983548279620669610726785677055882164283920744192117590760658597534222159593325836166006353601764815665958464330143003707218188434347060360209375948344740781783575657418258025070219654150945853717878072960368020813075733736621785808094230304031904773735615796111661484226511461441948040235429670722423368168730543502644272115373012797652832733173591049639022731339484726256134237839646438511010541909033013989961966963976612217121195913485253212496820684818957796290201409131800583310531415776722794259574443455563336094104225827896422335656450752822811814030581557683247244772345488028165789543846683767326280420407110578721040340883171545762038555038101772321975393418225310361148186871251696052131410235024254908157884094912662951942804362196215093595461590489502749395996680272210365420837789819847648853315240985299326686391840398939065849703490149531794811365968398945057689845791980311634752829446107816071910024219239854532261743979519853333579093893616941317384310077646850185191404712937871211652316896782829865866878858851397219812748176744268565310815374011654211432959103594470603229428258880182279687747049655045521385920394498728668166657909321423651105591468130157927850098160349683200810184378284025858694395213163142824748838672390384799299529994805567760399832504221898864142039949744637541651782835869760612746356570757036678839758400743698144781468191594505902488621953373305875602112416960415172510225504067137760476352513108543432367747013142757998565969349908084371595384386580219896930089213936605233748609985547830825884959899078521170615208357485602683581044416406349107622382836479952969451738452980281988884903037471518258126240223357207598932096963260394280144298610017449912157130422603669243044877501908988874083452568449801251370569663717463870333578862734553063807482703695885517206253802334791182343610886887399866506629094763770726698470627793300628711358675949623852360727560784652387975129027417725413251659170556374434373568336848111534955144155732218864523458428473150219281552701289943487615898743412773075047061947030030407350635175669068072833690984902130331514491157516771365107138228561857285907402780488539376466488792472624470044391303226316108947461623422840227247459413157459075773118981593925319983339051931919094545764682812653047173898904423498460705436445997480964073118125958718381886920180134271687872200538271264443944290438667059783780633330375348019455967660871298372651154363198464811521581352768520272527884974249902632744577731766957458771270590667437030881355160609041772757470633193553723456461185739829593034307474523712896209144225908969796647202967742805033696717867735018548670258181163746007662373563381513146193416836676445399353359553770452047162296060065816524802978393127357550483413826813231146496392814230706383954412282512511924839753743361301074501241284077368068712884069251715972350457225921485761585579403193437076053367188403441580001828100697688136742538178735340190046955101508607760295386688312725032081039884211502656096656236044050048930672970976846511712815568119091421741091518936655709647626151524419108609749944498547189969646569880217470890537648951120684960817232448908495767613451934593644308700775090817446572407944483839925504037116279920365843254239198934611615916289981319934611476049319443193175565570558786952101409690788259395340070365370831939499920629800434998665669153347399777478943902073723016204678963851264548587785910581836100698143580689775572454921008272251069429985584253221114163320403620681478624291096221523250052413636587524228362729071303810303433525369141379367609729601769117083497407703072806793049255392235181093984440121977814752740704197835709712768868911449265523652668495493294650035974871219557437484396092595411575684824044600464975930626927979075522602724791722684227145482485715312014082729438099989905897945275007510339406574631590376069011944291666943455444331081732153113664143401375758209267230609751154958136014673695559839924121026062130122708452538128521889936319318125184356994813000302283670334363355089705038413324037332055999532737145304005603439282395082570478988853971945075999690494555426018398972432179388772091508465948403174620721635845451870342216700663209496405404642047746178901634545963094598792550156253975683771306227561657590043392653647150332037697849499818207937793985050209684886954310553904879973117310731743794557528071200155205755703760695715598898949974054087021031635116098681394453091633447976452589240229225201586004794723221133377557906695620078713053273297077162004353131488430975571122621236610464834464234090665922284755027508495342158620714416892520584717455206722872457167571569930695228612453205295211668051104473072016588571446344369807278126875423785110379806411802483424431450470158594399887214424124869245960590242655537435792727192872598899057434881963238968325686769717335956325830917052663997684952097599902378055933503631610247068909962667254269299863461492815647292014102830270800062749290726534196363714193637575026265833699953647831534824255987067187310748425264959405848277874994419610940826003625295858300260628773500239342986852055004758987636870819596670506619537388306636740624289827796061287592656329311741870532747707245187364922058632514653694942080084864684266860943978496996920174479113619059460705687721762505452801649795184179497881771421967621236904474288162608852383267176854024620936849410910874742856511765965297552063734551350491615408567588220019750446987154397315186723456224280073501248543293293301228809858831050212144678213895582691500354626997028982986051945962577306693583366548662511400433307167734318613865771305157695383041798787172931384243601736664578797908782516427665273421580580767986762655981460049857768489135889195404128869447465381813538440777191091972002681850568313380118910285607691644457216748911827882751280905867025142004310888887840657855465192821924472503119845467702423615300102234934263599352779264287579436994993312564130970487855427724577429656980055422857758740325359734819580108731776480994279701720822934766081340821054560554547982666266324079641279227929556914375044216045794819740309954387150786762692681084679404601204867173587234691631531994022336765540722226399189927938192316813484106161068396912108207793766389412037495422304020183358296951257841695410506082546390937894602454205346144230768958320625779702966697623179732119038091313779483933389172329114642230316110884331582098146859632474541795806751379838659383234792807457267224423408534544442193340933245935107257331149341748186042107603168578389902654344464336447402177947320411366359109964790203391526072062308993300530095173529709616002031411202173362400541840284726223400940844713942753059159141256273900615802537783680366445315499230160108350147711742813683451764223297619761994190742519717571133501035817548385078449659773093781466977015444902068800880668977240578827365005509026253567909752167090558946265943845065693547121062017385235272414242347806636928343374792338357505382826016785542175458373411520863524318406563188312156086760024349857562751088385639761259132944863009492336162414580008176783961767196032441184982797447365879041880933202083103741010090716779641199944291583642089190022077967711963480233898685151030350927192492110238280754545926459671440665523013606703431733820868866130432583875827026410779489291446693738664564975796740093383574106177016709052014945947302416461043101918995952790001622236601526126585391807811143670283303205530080166458600954213151277916686682003620076264987717381200775003299648536434494730764944733113781723273822938804486380886743775043683759288161063282607285853074088718168264948221719066635966094197377494053809356300291257958675926629359674971636572746940954340208040122425716276928829553069383962680767004230586183085929075692720499876091139059293986168566782627676738105873839009486973925210120094419762587824854611951285372327939520372668741136367190113467969996908648978260944712514233430527170744235042200495337209922073233361363980083733795429044152288338500579558434191490168890056220236618262569303337565566312776874359215456665113458048548725950812076667952876774289497492587683008249880800002842713904146334015663082754437121231870554492265053230662866464427246960949725273417290977501160346485418175522331745561983603374093289288139612088989496406587172959494319649625095839544863476239468259942508234944013706447919507351785442530673776457569308080475717081284481688491555316833710542095857971788002314233071350628630543992634572197863776004734997363563815004439523460396370805023238952621753955400581190089378094673537254245539091075349781653282455115944592202416674885493651275489192581502992059563530423690834887549789598531343855597104551296301156500839332003029176721525454760055822630373109348798772687156337612021871760630874896917672379467816369174594013793662999305348459293751476870309107249704581632206755835332523672372879996773148654399287500608394128409272269340762951956313956463142442312791182921997044769484342455879725520607754285413650838834432334439055288109353622454302680850092645441312225463759014848320085795524073663275699390316594056591617500617121024752159490792489513011730511622590508674234413924673310372407050392674428435908593759730883502722729968392777505187765621057643798346830971073587237826802471885414252999829486988015652380930669065080251979901737030761948832328892105030855675779810521850868603214899285865591580296571296700862491303001915952651488434358664222802870349799229271524669686759872559483783761727213070179565538516562884984522089400417258513447639383595310746164230024328230995546042892903384397308946073438511572194488237070970603259427451741688198928026433707531781188954435383921189181204472376207432720320795191332420003008216311166777604478886165819050213355069130452529332197867967865684006402513358448973252736281352295403525343503047094180377688132707647943379930812369784458591053425119402467062016617765670080493601772846587714948645688271949760192060360572570193455520273528597426457860570642120865624960586183551050456187348750916860025987976590385461408955038803995750820432316482826211512339365881429351143290787004498270888511160263236840385946843464353501255845428216145596924792127365744274683882129878112895008069666114547676312534972555788453067327488735381981885483767870190913233648739648146358857565684834489466761473337330275597088396631256599944599700595539333504778637142037802402790836986326350599471549984037245361409947252878549593754803189176760556382313503964636467090405920862644213347191880783712428029469473920814930439282219389172844283303310316170892960732225073471141363269095353159997376511200806740714540681220948714462726278643920614214120788748177621097164981833949710578992057681280483817689949864634317685906784304769910320613401984302766233177338672437267893245125175541552322346503956546966497426042554572252574747748491880085621636146676196874652812851157851056816215753894514369210814076293641456688586919810038335949419088138955440145996645627652654012329056493259934638471209218932624181467218414213753816107065708552208039238926255900045739582708892607107036521024049878460468520640005497110597981194407412977898783656378109942871848274293196386670131149875336517511083613485462855088335036739744093061835521158421498281232870234630661738416702908782372351720791668547553094769171056948016432374292661118710714564972056800968312846547527725569533623444783545815532540886354249669265212353959356796150727958981606606546245940029938859888330849128396837194158593672037391951353265618539269316376078633640310630977404182622681140275209874929835400192218711336166488538216095175080930294977820263079255119982281893126980528451552182740293745130056986357406999258588169213391963107467663285153887916125096486043109059320811218022596122585113272153006053543908112010458779911806952236458198026432363822266164815916624734483970792746788221727154353711034429422883353427504991923065245440791297514944899885896006608001837193561342392510222726437584699576771281366103483158443813131807838397280168478260879271121159644130914103361796309050701608843706645403837408944596920827815280978067456365995686077072807020050293166386710409503940283238736338809060354769953727703370020277335326017496506830523624443035863241178270391684717002360314431584169910877647685773195438938936403515424318004369286148319074876046851087510144057837877037192613214257506417392880091041285369254988488146219186998450058057870848858031273726413180880248680543622034361064485701303354486995190794534820457674208663649680555602773339601111708632551867033213393187513955438076120020656858012811008453744132990453995998288257682680517649604267994387780998107148553549351903740362965392005371899524046412681995103504276346198813184312506001410577649960281161419166540471016310647973901008605873806287615255792327660119927885752287180447041505622713322522864003714797456099194640199220361803027626036961772443082824744098557375162623304769563087807887627465460326162593696139214133713616185825311780055201898383662012307348571694570086722139901283934236610293796564748064062477127559937536733014134301290679690942731958354167733763402653892697283851531338213180201518247357254606831622349623272209452359555601017601444177276848447664801332884862191620098795674304106775142626861010880206906636769656015816636954000362002574098346213546179482288793224323396465768859217288100770724168739614470588855941472047926793496766304374060323500600429127243064664466151919723774732976302711163187535580138042668536499203410393867343401066637158494766653443738726315242787404902064473984206176206378263226425911814229647900446332916951235786142513695810668833518959996648637661766875769068941032033198079546516969208591188393346050633691020031979098194236502229646246872149095175633639201614519298738089553753389807403945232556209394182486147509399693985248408388678896405327477896918376407882006227579530738624608161186000070247218122555522521112910022404839161451068136141520052899109129273015176641248448017015434701523166905376474202372646102497715355270076647529548000020828061199901921354718656978287859054741919723539827167726965919748215612579065355881791192551013856213961238737172163736937025230913187073060532855538321219639714231988260194164051236876586029041117008400638992223890301215944603777140889318605908017549191036024583357754150533445074091286381982987968628452188154476447186335166458930442298218667139525651748294834588618529401423920084326214301042299633838380589933421030970966457458089966653624694192729123121053679995400651877185362435780697445383352183710415150302172500427249694727290474369701656664795304624533605700655778134956261793569897473351906765062903404289117660708771940621112355825437030263908624785726364812242645801418874915670645685693813057197346770528268640137185834187520783837129496325930355534490255588305407726103349216039799553821257562428227362882028880673015620752615563477295767665033520206965892279073193156656071015127469398438432024600478940997908004731509438176182432773318579831135078084939921501627082428977022811874092644199392823361144775084406256742688685324050963441530271771537217427908289586477921303268997946393078873113718856215271525238431262612438424044761819456109772341534839190864362527882387693299124616091303770361789014866610730006359722821504956996125412754116027758214821802402020678704168990408009380237575953093397848207853364625916268225176480469626295207706834849560786787058804146944943269780350669164850825185612623798672439713687682861927430457311785332081848819801581344659980261977918913626732285461634801117143676258975223267516181424885192929805579832309689103829633799494495808897487488054610605176659233779384428845428408575271660391369811151560467805503520992793978971717813668077501135852494475885676970614405615166893337134161261006602807117685554071449787671449785583668379033741295837580853310056559963514328173935912004282899511134522733068248288663422014442704111253497211921414332831779960654035825687409729395031873143324393152882412698911031770978970977005214644734180635513268656105741761355160190574367264386873011159492992924916742472513254310513738866016199687768114511024990469610672768638710252565984285134787096809059544987518755159480462699381212335665491813784607427431482699423802747291315840818491877191412222718207046388970139097013816797785626285328846452192123384320661603204037348255623573057828220481926276593922683643472509268173304224331816576737633800298216927258764227234840137693431581541849933456154517512846972555126593429342263587319851037318848363343763855613941150020520927918895194836831427867588807124184878518290150686421887468185727516636420200071474263890439250824802632449526235812619833495004339806579569850548787415740176843431470646104423839907248257841181401099301286058683212678524294157689589162033224898562598427665695812615902318316646823202834745984837377737404490739888101332948763894822329346759336063622067102333504236950868242021544773518892288847601915531237875736230815511298269868343195761747704553738450607737862469511181939638348527212440433522073591063283768310038034250290523348897764516999016678347306984193999197565067767323497898591847345672294021817826045779593320854184830336712496705030980301210025117525918949554140471342785021659607414638723955176567944130262244294356636708467190483122779052775254025300188273586549751540366834182948889131204263326433890153827916436261365700920358084586837375636488184971667194184743727743393829978221711347534458993516037313253102268618083406310613664758952445961284446722356756262459939746700778701721612218599130632300680578550679437632893859087927426549806257942316427426350664437362939988297203981008167603127174692970549869686226279784342306910597158734542617451572524132116494006973744881322364141124424784570139338972183385242658497360026189833851670238909167426648172967819734753698976001450740728753441616030315703697327302700079414804565773520610575923991371563705434974547831539595169396534851853873417307174230550556598063644171514566529232269543146520695799875929813887777082177396704128890061418052912541644710404259290843439099877223528967915200108590825998285238168948777684943764324557032625666157836158534189071941734179241956834887496592243614379127203507038896600229194662075337257686110535703895762112386101389955754022936632056225762770890212476826757304840006014898704654565383207205637453724344942973222106794171406818254215047115091289204494969810749947435832983223630811950490035119028317314918288816667180016275306949571436854462491642639085791494399009757856718030979822592499102905530987325762701243473496318784662922401771615894681283059960273233513259329078551824704767676579513658643639588797670472425536977545171494879026306702843537276973420317249996100108636458278574876076316169669493101980515647939483040339547388226347101831199986765074945146958809169364544785637325474923295670367644619399680087514085636125332882723853784577477242988036175320714505253627769772627498132471254310919910557149578150137212334775912163573090153853686658178435157266128635022292182012306435276216560489077814743546830372805514635402425981458837139946975261417108150988076589508132881723668746977898449888940871770429676134092855206007240450104177966653601221702077918632039080942124574459294099852065025064273889253860928614401166249277926933190326538894977811428883217274210301594510615429560894187924718815065745422306176284089961951387984934410125812267040637443108151714520893577937004430894728246007744701960246956453790826945945545633474079700101870125452947968945062201180980995366410044776041056476154745953786431707026869400034230030624813564893595670048625850260539012507684466134437989537532281209557187111731456054026965066544260374049397627332694407649742265946721744900223911413048675722668111554907851342399662038229948275236187889658136360034302310575485098079583446640929330241986108569184703477008279290919384364695027711939116583284064163498272273177881693169322338717633211021795425192925717744379521019251564409953873330651232343596851894805740211388343945873688163041023671337975206208670637390013373614118254392079934557907463064688561974945451909637611199046625731897147780882276716182700696521405510924889260799415669559987572951861962609373649376870835141935614551585912122761970161284938451347100698191804160383519250828441588768986376785493558445264129791714050766753810268586601862532404618340837229232185427711446655797363335769271885398337741248514313603959631867869353390665677738196104824587614861180509311101166338676365317045918104212461767741310862374526899153511198810913609238390108384650168895241137072189405954557023673306921387886344457057388896898888737709113195186030022145591639747037319436859896178499620998032435944245107729217919295146972112346747272154596534555312598461934287100541241990030259335340563895039089364196340158280754308758547853294958585881523838169815195128046137242684460644471114276659297674530785686553227700855453005749212944755982240545058878345195724735115779484233440540963526315641286619537948215992872997523382133217878956149756999543424472956719276489569085759048234643435582557904371769362396654779745201930547083445893131997522369632898165561939610980244357509955333842050314755052993065426717528381778541759096499028039711703257679146900596111210088698363240392658168303209780635735087393585585669204184429991295166393841415625559598271093347282925359005050272263732137607863769210396886239265031824037269022439098801648136748038355839268983658055097675890096678851517744462525575730967220977414859574922076661937038167645282493070082925724661884381016125565552728010625457541291136548878677962459338924261950735727426541973432010457525840088707470323088840882472297187891449204534394188816928476481592187344610397221757282410977478581140365269559139322659793318028965651273415722778757543888227347495005936538881005047472377707632864166866763506063491243815348702038102978347366076574988072020818410175798578510259409042913342628389053423351665914693719567519235918740041088443331540498798814501345351960018602522990750656809460293957614744412255203322032157160421978387301695606592294881233653102366123524566027564521630199019072116715421879192736628108418456505858306706518509057965150094548690305971795201062156915422321861549731998831274847672030640079414041229874059098031282618597829580279386542214548079712862670184519179176719625358278046790499984957484326838372414226415233921904436311504928219168994470021505761370495459258745906011823404011169155584856231783668454137736897150913936671499680958918019005482158048190609483293639396754042674952143354156580184509773375293922761274376938018070020768263681573810295880484025470037572147394260816558464933452706087617565705789003788496096264164058212701682962792289189292945249342686783045291844518632228826514065505299301963060941569130870557379863783520755402247543533920304758296807337554614278209784535503044160313971142158514729840359614215305318944289811714644639373220728150283419275163095772469308791113592884162034036713501292935091935029463051218589044963027315504239608193665466727050431366057625648112161273675696384511798936932810901146406944084114956996217769421100958122910988663545534024019255509548432673327740708334991970187837012017106012651340989062145498307641403113452380068573476035686340688850131188420970220139303702701644693389578557237235702913717261213267940846045504932128774901020420581577439162335130727102564568480615220579932070125536216456621568047155166640394139619863318899961473982814781077379981046645284485385606355249217379456479882711237883745369647198492366557789798760822427308016479801508482826833359088483372196546368334202891416093367124219295636737954439795604978987445729675812965193361958113258495214322180843310732256729315061235304079040561329425829527591925172484517369340709810489075686001640025435864808135547876724154400373345114215701651593799702650128888614769296817121459302537768590457191458444164270459639163705717519643883355735628048501516149962873606077853017142071081880267770319804638403392669869504024330002184399474284444514045532901539650814781930562097640570979185411669893592490494733508600788658689178011468808855961979419260045058471113805265969044269872647557604481614824821451359367619993216180799644458475126375425183021203375006760296794309495567521156447286731617673173930598817507296757781327446407067148619081292454619818597833061044205630811448686631370901943345104731432048597318000688713465589064306457840945383486125341819136620215718430582915184433584366730568621517359588913532028533867817326776982815064396857602761677447040964212852581166055119925762109069505351290356515874602966356301532570168793267289738848700740095444780386372706032110600083830535102974080202408006258273391821136928008481459398660587548821764181673758135364953322677566280130296425289517405704799420662074692845281738253510647763848905461157851565276962785435656673692385613747074911587578667723455730505484528913328556085840470580715595123904796610769602045670673669773770006259573424233426962594559782687938942991957412766733005553018840406010857334423554693226056698986633909500320277269140517842702463961057187027044005997171781511231009648687778302839870264383925456240512461430134568590711341489781927850587833317845486403859640283958121156070635384347598489122303674074524513540465307121818486835412403987392403349327064295630589357088130963358596739911580578299665626966731594642316215793862349096681803597537426978278485568894439227529258097289811182336249588515039032781100250799440068753153580588042416900861475326620363359175334143651233511275006535275912335336541336376756401978434307432248878965449533499106865507863055070798320402253910114609333658438923683975782130815790710997899051660035463298621962205437559248666935956002562018384213130997551409999893789499524314598472159413673679132256755046840946375144003287048964761731811190762570972037727832277835517205115178583000335040614332575782390776845472722428988895618893280350151458818038171008259942786003304721300099573826183334772948790742184594964217174260028266602675653391980585863049725996195068830688370427620043533462155614406219347006800729312169468090342286814081801443293518488743515226844471435152352075694218125674630068034456791549859612932020827594989800692966289585995647899962410324022496532194322072549722692770818256974467349065355706859978160606530726351089402367924741570707102247047767215910821550778934740906751427787699200807853591985704884477869689985759278211312583565993203216959698540323729495251389013015616010446440225203414786203284530187348383476891850452001414398843094147969241486480640511150506637972088285689236795689848712719231876303259585734822794052097652847644492678281010149086030444138050392560160540591451066209568486103282595153512455840585120598921706539734441714154980750558311575122968854375886400040549534799595004300592105601802037812156948903982967131712270650619726822165828339879991206013982312157114067230653640635877453359022746882121730779132445749683629647337355214768376520364703177890312515438124719058851300105897788814461171524225903736643008748876687651116293007912698898014194206709775948024756384265003217599607105627655322769509229983239074543907524614048967188052684359070980966640530796438159690533195134710820171129445503977878905874028701481081371313375794610932982101849730765423077659200209298809205295027009624139031537005696346247687053937126850022724022300723942825474663185916960313641411895990097756890659778733439635373360278121547727295023237469795837811463319639121094803681369818442890010212142895018868123547700039249071985536989634500080890199652214440755968101174413785857873643158088796031404706236264004234073348658446476099438496663923373911213071084276224106925109521588135169100836197093899878005545987188635424183493680402134687779362052105928631358171333777272624493928717287934878686213280553318623872164985604227749514698783511567245554691777850239016217005329280851574679305013649763430810954177613929271721103056178235436538116427003430540707111677330744034302828472004584752329512014412695313074888036814295038086576841357375258856086180104017007794963453106407516601027655245807768386208622294206613711920837800221016700223077421880132013781927835469338874150129274115514219359701921344656438507066723831268115538263008338792850432595542096168137381594339448717413185311864605155299349062692280100417099241442680863876185425196796627728862132748050964475818824311907641797728067669889699319232495169406647640414799110389307575439400914915766621540430829987243857917488377878600661280945906088015862196279908315875377481366589670215582795072661811385882978404770872122659204266309253487097783460943298754552607848550308710777421905734238953636809496256543032276492661172342235102665680570378835750196940575514112372693299773845715449602879163002741090509428907402318021705956293862181138031235051127091325036081460194481828450287339166377811349002021861891030473130763284524017539667798867439389165317939969776286142945117172947708069096389676273492086265593795062074085074545400493342795887393090432898880474944430621109870764541049987945568557701684392416037828529090903979534548589705743908700787988955679784726669970485658200605507483491939877496730899885776677139949746502799966708443191685614699819811106492340680779627946728877707682104838178611102390922005548433386864056322295164544358602007107495779695553082932775684028171908726979591124213533758176064757654536810714534529083573224700566706711440925237792908658497932500032189003891572605514049886321739780575369978910061779230294226393016490594119392195813020717250638296788889091712389228895444664468091319428681488359636546622719183466535228044106007878102739105503044928953507522895801700088163022083043322823307436616534688138527940255799301611169079481880164025763360644131627960265295864698752926279094991720639484355473542302546590988857020906812659590713568398127552175734931144847657303783072757055083594734237448962256683380559287117930380356141000269219996106480731901525987500337135355330832417430112179978000600108873480394038410759408435460026249514420419759041824285774440172430111626138432023592995127002275352499310325422344673412865153577203672234705098181631106428286795744127580426950661236149456360014767006396501915311547274687579958279754214417324215678943902507584524381587332494909828956764378354314914178048886061259954130763672271349228434340355473122641775573160057377862948398998636645078777880312116509401732938164194627404897787588508801745587838554860849353247700874094990677089275333666851839702190397876876387682076636871889025726962398302248445283461150202716753338571102168367869577346347159207485968922543749918141999033610031674578050440340392980431741823390988654372723980922804469534062555231352335490060748217217122328650818119732990831247369385939157705218735981314491055826395886246317808374303689329790472939845331174451650323619307199868420319618810926090040550279622483132477331310122293141940943523032347687332485076590523131776051126567879820941201249382961327312038768766244268787160971547145923595134795031951503407003117865641620592195076553229978965551488135853358589895413234289762947002638934825237953341588713999120482623650598282519290237967486376165081137294494562847767369667578175423829538214552160753403893910687351744660827626053276119576810735836377024758521100056699235153917138781102296552802060822699936168465213348644683587677651683882585230475317541090043262151243726027343787830894128028821579234658321570049780413406184950015389973498146607783842069996710585193857690439046457117084662584563364763089970317644598781920561811181104620531021723785333310215384198671276123102436416149748787342936511086247033529327418822685555835919584934857446740703108077085069925295472755868158131557870666162079750569444305501723712186011477450302366640208853481440047604287258292207447358969889559605109305021456047717708666427053852417380159469834770709373320339018023133912978331819108007352292262266785178319015259128132278824931038380255599405540793541943157905282452404249015154141918031746245708494921184257898148706606186105749444507306837513258508985024091467338422291788869190165535774888240098206880881761972260109910407608992138959079727926799169505133318997538304112685799401851057694225942296810751232731265396634243532197435797257347046357474824633675304177794292087971832535322367731485009146307687021853128548240409332050598588120201131544667762623163781179634498822544422517600680583181530535135648174959187159640603250380986408021845875610388198301333222994617418317448824276476123137678641096189511987807175870760675308142263743830657460707338868039836674118298136393608729217912294816422394919117593767456895637329458769441341551888923946709585109928430673975634162989748562214849229162520258716823262728735282892845162123333258728637805253530381994333213606895321160640233525554989010879484844335611555564953630020277748383247551179502624165728840242910272491752520955439512274159687375410612937019400092908151009472395637545334585656392730734406623395922391132323872024944909164012625963943027274463096477831300632398174355560455533181775177173204815535782792769551046417125127335641314328844205981565941395204368282881984998065064431470247570030890748462800762815625479518213347269066933061364790009252527402392144552209276763058501705242723470268857305391249111966270615122179139846945268894696950114964350419923974102326270752793130687869942764972034509996948019751047899466734608725178354465042599222660158268915645737198500746417900429498039710202190092447475123451948086921907145381542245365477013669286911794233091047725803024601046204522619860494034856529621109634688531357143134910801711406627332677101224541418266910578626266666755597225656397368746611256637166753378513086424056522070084985902125077197048505012558477087248342135352922458994456455342329089938875138968444767641485163643646826694333173789218480425659965206073269842934080820684210016178755539592998996643938573231735148227947191245816928622043476737211818618489807456288694577891288427081907102218392840768150557093052091984160721419829918219715532470710492331674985699884471582115309574827511801544504134717330223792309468965066645939044408637318593867850021121555315375525827756872638848841827540682254607477681589926264191746251378662982272735073629462512082274743343060881732714994097117584785808147446898269189239077423133720790548594733416663002139828273875528664361631413120336043457356502366802524717406844873525726523306987067585885752303168764696004681318688457018190306436778815727231483551000608344989350020743191124065619906412147515891472463603657868797055158730629462598141045262723674774027751715981581455607803788840418287019913657141257764710792653306324296169493504792210777947362736740374869573162367028413605184005751948558178434300726997764467715778658949943962888603000340514872460421687250834709905689317212786287918636312768154238828853800320061265334605058579948470012179638555187708723861341420634249995283305610927675702140719723989806965721231814221780550608527328802152173958785320722782050577254335166661165214465640281242374847341380533678483844270449642166446550096087115571611685312784988484945279273750855811301572526364238865094620749278346606900029162999136200672033374534938521339262072827193899083699706602805323039942394036915329729818716774567657052136055723867802789842498265017586838117134698913971420226314489325423688654412389187067355174609766689328180106946262256235569081878723057212047656868168834345778024281978365897245999664016366449995612719778478866940529742661828077859535956636954415452266967886908158944164093872438249498212778764110264845751336280617096800703263949536371730377154877833373073621747976001683095910847178677577681735453190515724376098208079254252824291072903561176998199683247546968276644188185585450593280521602372400587754331614988452642629891724678235411519003616359370783808080845116022347563542028198687871526168652639754597405000038847326255741466374090818482048290815202256656297194634772998281706964569362574288237356701391097078768017128134808820528827410914803973407534866521934318514015512561194435198211391751408846581004327255040419030842714541133356842816365839718947463059076864230482590714573854532904541323599329349852338587579668064397571337072735814247667795061401219826070578929152474696679362051557652950271625145019783361748083788931349422300763216125771180436454654687556731193070886977391551037343383231850629930902593796110671793333585668559970353623564857261153876430401242510580877383347470887386567366368762778641870107697664362516478363565774918169208939929499419261176418138628352156390482677649935573350021650667530533991561965080595704939992047431389893297515790508250031626642416141757033521053609008031399117944498925033058488510247783615049499108050908512271010670311983423214524333873602325268979116342796247918957583234553557521530643127671999882146087128320511753515692804163280334770291341812125048699361809159556222387406368096162541561846441640914887314800647189560722756612778028907113325696150707832666292455123835068823388552267038216113741310194790692412652222366854820187746854449230613622269958252427109072095276513630771525467000637027598451301049183794354901927098790624298469596561151476653589416722226418406804224396882811887939682600603181094165942485826640033204937652608932668243394493518980715037555047061812525842564759612897320574398402895311277945807390017317636304766494385770168970711018924101582372929262461996272148136700117412845802443748972896174631981500692934056912713126868401166071294321317892523311383365709963776941794435972843958987281620088615362931699034666338240841091546275155651288686478155066554116278395829917273185267681199487169052674970032977708332778862837661181230707830491148673201390430097885051057777503304423981173256396638052157427029111617451691127762541489859271993971071413057017389066831313580931125366593395012606038634740761261148565652650025545078903034572423162696738431358597770086834595750468783747834706936094470755816414610713184552748716963745436345410753509752811452954391547496532524691954040294931290073208730653645103535019475272429455980672517368246791351136622507011103548782638519869801587555489961116707395047160976810256878036805102257814240552951884009795651854714217735097131923270870613603976469220294061561321401339491355449731019312086918497791248069820948164936973704663918621202654149037393222335190331140746304561574527665512397351380365058998358357720589575306277644453358683849033991835969195932951768588629129815591497201708573154605745636395531133193707987557771800893650330471365504712328561864852455612131280783434851577609225705255153548500074225223875372493908693686438440732788876647764759631460075167203509389672402058806123093874144563344670351410672693715623150021392884792194318201179434852722962043961016233126444198006883522031372366188768064253982263824884010722407033531373992725105935463456038470581461581267447698321117511809286384029170451192270057072469007686304225809032222653496647082664908600495509253973359018868117260241593696759773007591394476537552215907649096023244192534906534999755790855416941842781792762427287635116909695892657885832115183878905252878807599449868168748206514683267864006807701771114125507907521552042646362872143681237728869452873740502554600835547153077191641687068400054941865366763322267871835017200366675745611899666771345587597071553622628954916819116461223795513935896080792773758061387414152396317834002260793038172474738053700835253457326414819681154822034834465714329815383977827994996195009154835465005039433738100482681322743081774324225134996475750106925049420632694257330862225304385814737527363887486607936176836245599331221152440817914671562942115056643104747851030277096976898624084170556342585014445755803136534243137619479224379063517655754056978656969227560571453542156900836778986398976589787057870594978757661257131946692910946776805199302409101623637030722385809237353921932811311866553733123703307730839636001466541360467528695285902321970702827534891805494188585462502986594524835674095692135608583720663761146317056274298579596016113232696864090496872512024162761243243471082580388765148929445803166405503518164940477842063490530434543194958682020019528859863861966213405695345654833917203038905241222643196642704841313975739203789869437459333752572114754967904539346544881651011976413287953426453861188821741273985058851329318623729273589423862488223543080975739879408751005081320153925516290658886633610592103789130540050701475654541875059057480356956845766892357608455847449787402858765740514535619212405691553801380740877268261257421808286394087774991884693031163507449359468198955444262438373616832546816334568868673797413441975545043059302768988059602660266068904816088572306929819449420609434047785693474671107617524838175076344084382397492578906656839404164309016033725772477247201966400130840356266946967714892205430039055670795478695670996474594443001012224496153864609030872110687881388558610021474017169284791307012574221571336899087436866460697317784219621236235782355769322730138865661182640448905037923038782794052320043352236090550135621156606596228371748168609393552304660571205557686766173491167611736225904874763211437042436271398796557975636644663739168977466487898475658020960394363400951540304233591999120731968682907477915230977535916472155673353905883521597275403457558422311819006753422392779492536560282832747640735956844981348130806234873267415233951335440459157038569058349757168998414523268489042908186092701835324663929523583101850283387886648634955933097272992809446381001285021434968693839372853786029899514281638321023143480680761107000383325664568275079936689655127979360198619725871371608319421253159846504733362188480478895222280981634157121566094099176991866618363567265348121274822647390977600143456344587509867450990011303107542249631262211804220300999416891179205310675470207899789368314193826568561216082664383835105037252753554752325918080460703661890791073939345541834644210132366511277816319966118727552605652479431607952422040949307246519594366747230626629707749652565290614843356251439516588835170190116065387571907818937881676936708502612844774154937342832081479868847857438507594480438223457726811782887098749601254720813164497812437236135838805284037785883665489816465725402297015277210059260632724305269147384359175398396728240355326072483081632319153621681253481769505133371268342189533037903043061007546142182184446452301454500261716344956531199911883820834149561164653474113161627568076916085785619573319920516139033839715633704385141204498806135679717709620562218539438749118144989235117890259475363238220046384083584887496140351113080649998987116419932294666761827484095362205578036573840706693554219677877309850011672807313777816895666320781856367038406541582286194090009294503252663148273044128712039341313703217702240264701943062989549202986922091839237179870606149123608287976993418137546817031139411270520269487418956362729496717968069661411752131452266387795698003286034576381770406237377970793332699055549255705088101025037354845620867698022387082580418974208757772738353664866009878809050628724844693426312996183145658282356517241579179661937215977611659884547761033064165472653595995675078848230116906657600313562495936758816883972027839052009222813013053999770278884189677366776255836510080556912937741991159048010941190716134860732080142827366054944968147979038586848543511625771528873811173277854880875516676698494646000159429615948671106241841410021398682668678843322008058403252248686828617739386006091895627013053102119593781428094367869900615191156966114953995012654883116151580378593121766135259205819525244742396718477395316497958262313155682672165071582348378919934771025247963198671424400036468496343418476817854887394421048387626199745524389410483046939073909887685982189752994957647957958604564733812982209975748953903674020148249890968512610085058180415679185482292810986929536214078510749304497949319687294129969229416644222318654303604722706699004105330841878074187185047210296209407934889493115928994091394436402999307669198042684269035427600375095015118614430439943740864479370107874335107446722049510144206952427735977276147976308675488302011825068582237859193065396457800094547500689765306248298669583539686142455798217116840559586484182532396084277973943095601408075311674042667403095755420380837785604399867649974350781072111333439902169471591329356220487655536881983415207136847761738308329121326853557036609598915750635830614597483367763701207183879233168450782448188703707114893500136486413054602696218963394292828067501534602578626328993364907097536818236521666860571925281279138354745008643230009130519605179384910737563452886140766705159150565660052874693969314559430290345823425040416784240288469246732511123775175542719695375772387239154816470993797448085944185787290097676457078580203176155022637821236792712709381309975987211479284529623809153703618501828970497623782122129564472508416603307996891490548402424664673664277495632392752938476972697939653423627942609454241634684049601389585756250987605300724496724716537424406039547353508963912126803171675206113290251871448894847099727203385631512677060440281034242872321084275568256936089603297026186782121152479776594381523678296615040194210585259099990946603623058788065029232540588530168040076302794142257203426992175122590601494801482232694707971914409088410854426643142992301169228471594117452178532163492424552640990672312124184464840720311070494537824145995340662027651633558686283369701275845686129570654531775936652031913750657655841506375301035658012374725262570737376126050587164751981626715016777030926868491502651982447391890032740293828132058160688510827466551312651597195059616539919994430834119912122889853473367348268285891031889774316995992134506969352572318947553292373670437094735675358627368292440468899303502213865113592398621192524395835499810826646220068041995416343688104397340730708819706180034107908612085817635130423583742466869984611685424477952094036873991625713633127194398083521152940624613885832244039250638106069171361791490998644573345550539029023280676400669562473571932431117334817604363058091505340239304234617252783414175241008438609234158476461200505598017903808217051715294026547081969219130287586590417448065911271279488262295630874675852594557074930170274232201946954452009471098348481059710084785177454349681770560194948952785687084968971822786909815715400823765286498071081163903039668700384950408349862322247482869649106637050630014047178145588849996040687802019329574909706224210335787380514777276386306274832716427309400422589964733230277469241885656699037319743397090898523633576016071054879656208665250946789300607340520805547922177288087075434481319674810884322879778343665530805902694135764435289662323986021791214280841596300234327231857960649561210781958983491786318224572338621758108127033915626914184524928147938265446256694640347092226669982605165255111322310757295703321315883198948038245452034765867689461629024388462295617419808705944702981479588627416543034489467474719251579064448476534823826416410421823996443487803585960987107164455752526804666615864191948340392250461086118256738583387662428440839663398904393893433341827441057133061541664951292964355138605412140440059505907586015663791073910352996758567398468288956005699482723360923966066787456847262369166595482582569615441965758653778853141178843391036724963577697590790956625166776473898729662760979878180911679195621279153038554746877469410334791068523485266621113710634746764674492414358105940664941254740898210028522368460812584393548639277560463006890167167918443589105279146428054562099525797056749283502411067246270953151960542535122584053746197537341894289580853089913470479707092221860390775936174786484809683951616515167507252201189668663637187379617501265875957367344925502058203211198730520544344057481105827351128170236669967811387788366738309268692364408895370169559433820152473192987393897648620861944593975619162437057872810509172614183469564336332441616154462045307509361989972362441324022206733131100299233293145871405907885675462107393894649301958655001546242014169693679547966477106803955083033271951534121009633410236466225890862501629532017431371570786288749358942701904747613112737585255867493561269540622139203791166118380534479813738233442311671400463647310352526845870334411563948687049662698890641412242555458664983026389313107793182851633357396751159774530015235515268397675035771647913802985085556895459457420596089375709522189047865644308641426502213450837409453167187256370473942694293423504073805169284020322199778131491798718593198601983454810649899269398913352136718436623364975062228887286506122420414111112873769376855657088098723313102811235720080571568809105293604603198529017643302715323045489154908154438349953182887167354609421996998464140064305471088033598293804122616036841803663383916640948317886602504814369038137705231469344520813801744476940394222157729837992149212794255978262042036743365237436147542005613326694189722077827408291115773115876390925524896729019951165599338183063865194910859470460007935828312128407507348982703336492350721714585783908284541425231420660840167742086684013085593409841955232028232344319230447744781219485947561320672265943562484896435750916143118879995723445383304458436896142393273191272653215780878092528868589058593395131735648316427037425747534811637535019691001079002526733677950924908533772228324694781732576930818850004295298385777412137677564137079119882937685675705975698892268705295966818493550238012827928068266173704375233818680848100074990206218474366167012051144625809898922708053539975604035625973404716662076357349796800656442465168717512850861913944482016121812843012304432630782890629982142360570129794874078247582731436908870670771802558974393412871077373294073341292272531685826667910554462929149847868079988792328101045833838146835479780025376851624377674459815525719382206618879695224944813659385416942332930788649883143653603684840284702213018401663057056453135109449400752343568861053762981993974198062509955221125786939064308695700998059195087639453784767856221475120075947296680236811893045678673651964114030348590458916332513136448990747635335851666344498358966896978857871905575532251389197367050827002023557206027431328210951094202719978244852603673330468035894624967456653605946718259626872390545296825432641073115153699375258215846257882142300719464652161109582020254343690506507799976008721687505340880718336926216186722941991322676462077383143821042513946451990751002402271715359522527529977720508013720435279901725002922241435654469878666973110823882308883373334019009348164794460956615918169517530322724035573890159631196088350684964966601495843218668162580786655289984115127709856210156811199679710508418867284633884237261958430412412626999021531201744585983082642695669312397881922642834479119987322416048960794416376309035307649985989978268032733829689419466032423772778910676717106840022938670350973812968867775479379470182764276949270382618899566887433496937263662367792016221014186663639212971221715087138447754097591623778288990589507147218525351958870291730488028123335004375116843522104621693331178986359923312910847003029351820955856886787402288182258008258717635394775118969055482419849887571689381355092386337450734340559598911169797007562241297306632533539952535570609290179557548858461802612007255670024360164090709086095651324323261763587055659934594587545852516164473138625659413925051073402466319778306625632221520717731176665633397387417453293069962027606758879257265079266833900945487341982352234260010231881736830019062637840023768858871117322762334488285025816060920028057787646309421592577058170356215884473526061448972704403775110620033320715565930974122587047087045452492214539852572763287786266350814160889206768794925250983901722708700870443738859772207591569782967052001362196581668952172238614939847114350674857213172715318614487611212885689068928028437086943309841286084097844040389279030559865435220774427046640417440128801026801663211506733612539822288124931779907276626943034109029639653334477905731929342649717779457762813500295733049640644314271908875252267320918226007554500490734168556613093257232824450546497588736920157378952587850086440133209710685745625621305086639672014999655051808555545818741095352517363015329438791605234812753111833825048589225813832579945140457125054723024077652591443192507932438487550917641034602810727410174092970363860078046302224214573432816755897681138119678155100882804533745348848504698917798974004434770191655775100104088594446131743689969229428681101187059115231561069531856505108426877053565266051506640854495554286633725178056467199645437785370975954663206538955735113585272994185059557099302871083539207240341429157430985917175942105774164976088747938163865118504635972990464428505892815160772915327668075025693851839548615473274523101186450640277890623033711938664332303986832883755781017521768894816583954761375231670396543920077010130342218106075382005489471310356326253134229444166781716389889993483056102664056639690892242042924131486218687581196921360872688042036238735966509543184667714327700698083853041737636077999615253692385530878527379866303218267024771864337050269137053621351593283964600607219789569000085530150710160722196320705313437364125801945610285961190663609315805150794137351321577969009248257343644393576575125829959613029947423059992656179567694841511077781247570114524115210013803421045468728921686357475237280430682526796011891361366664548160226976212982491158367168216975420426418650157675079493090913538678839517528578966433174231653794080758188409586936006437523257407878663072261935255127725576960567923861802086933007086114352199785230217421553341368558886429342369050725797371836635973159182223341725340997838360471372008288505361434825386515021390733945554066083955723939979012912027023219908074514899816450484041842376698461360366198435123391936990157754707770191945854716413494082412456758607193119142894985738310670613765393030267904405225388734282668918599177473961842374839554492359766017210259607042954945020643940038427327601683631066318307006013867480728709192752152858017570317131045504454876527652118913821310026446610920743775160404800590734925985890702179940333238157696569850430081833835222688525439628795468277132425662842392831381824087069755459336515432164761363041291154103551327836860733756310026287103848256164472793099547372035155918928783552112630533002589691258363956774028534682567058212053307506265925992580252420638395064189363822007342794051438398763418587687894478038108849856682558513955929862982558133437064282561739436030361934415512515277315715468015364751599133442460416439428966790815860409774737003073365161702582513473246978250006651259795746112951290953576382813350211461360282615539484485085408399641543003108574022023268771425709397198201273337483117693702724847862128809903486112767681184554810100739111213289833129830727139823005992390851402133248962135735462879404980904542850230723186928293554187952373359960800974008318760135394744556028934677386073902089212591234475362386391988186423300015970910719848863539385157096686782852620867864381821993801606909787413364266773333571272992871088122544363338023411593591444102310502523012619690103532114054159548802484764790393032499956689454410202642539322157864955350241004444226924365064459230825695818207944166172054753511309329357474161779988724181090524173694816976158490930826873438511718437929016718859363972240305941714388966579633546237354337219127877187649456882203198332534793760835871210737377830252004954897068860450012833012729867272016359926877018085008520674984585187799868826167565692425569548107594330548731018215289171774010143438907935854919386291548209324003967114741509154362983105189523679422981415751518179895935042162692095842860695371456460050867294698437821146541060059026920466748245983213192158750953450335426469248985431157090943738423967410250252641249939576925662452773778484764865466395310539983189790687074419110514436266957011166702259285292644134673183174076424147344133991226207760964547242350949907840545024824130884882970629873363916815957759912419202666984415485893986638424769080303959745371984700508731922641550394900648775187062178325524524818192663096858168527996345743454820471111108523397597838342768417743139293371711924732480770423768620235474330246925118278143314816934884956853585184961034201432937247980142317702807273240269919095232124743732061370590812794389941522633095890355694218792655938617915002241628964221446469313384587779184836472287657908400166304764517247745183009627975614246898384441742191946898548753493879681051880594619804350455980159380780791370014408231680945952336253834310101854621458704342808613338635536758440785565181782197176775466000345363260241431561718950302213460413552463189370746168099569776543213951001886387723685101176024346988248541919780736477326743951106344422185821573975317512628233095441196548297358433735436156053545874199359641480121005362471065453764107313936487880883203418572496369471609669158668228706155673489937495019933721286559279965877909472902023265608242126810632925011872221372977068725372893099149324567049254124872228872732445973171062417559013256233052847959512978152235003927102572912668167149501762525104810616177040918009617243132825721389479141871549268299742221667536681341172790106763440533563260800782674240218336970145501578579743079630883219542394212864690313709375174619175393049137949726292210560330257251915844585505737970111383892166326558972568810827084463652898919215777261386664085365093523994194688151597052210270306707110888327829790226261815215154271365934626963374367095300653744117714675322325291519620932764008765951190506961543005615106633731388660023418018994177125167708332559813640346778361641892932996720490752890497839571245206222549333122315717461603083384374784680102267359438120667135728536356917799977508719138478588690703001779023238340087880587825927674707843455119007018389952634685269699571372551052845193170052710508963878365458632633180555287379939888341572343871986944478814396723254848770107857156375453401034842998875115363626573227993964742839783771470155687854340660141538264015836013461769809907130315211298920337310205187940617121748560364933879011090879063160222596255202055438849797473303841622244261975387058327698259775651542465350212379905872543026715238237975777361533498035180261534672281050905227861123530689485764173896583867047132994602554638166783513882800990608912137737067472397112833771699002346706402450468066295104703374768593128321305285594702442945582995837262059242861417919114741626057205047473813325023306355581364779120235777346501322453557024228901552651397356399193530627930322465182000937563024044197954071939960926669429861154285390770798828467407337314972907263756679088858219573087708039154693521069542494022112334119759399432495542655934101739305123168743287951742697601926161408402431666804146674783428909777225631085077103257352029597367951340463620825526389710963637986081226807763611923405441682386487906804901580280785914971542865875821588407401636061583996231550917905077542227763006652699248193239213337465478672713829913231762479241277944695580549161925283304945710266676237355857846058342702417623736435051845635946423498658571742893416570071225462331833675148304597685758769140731000398053999794422941301752441553868262799793075583621640894953260749165662755252682230209521513720305756407105112051256566103400054650137549288752131779492454940120509784693543163275709974433997669815112930489126580495120286317813580006206543844834112518920206129261146906757073890495902425386101293865776304086543626143958562695827470671167839433650781611048852769689814759719933110270119659699140358145874810468545200663219442956328552600029644869518697735251617316445392871172408877539619547161707385451949770373389137151747127770787057670033416835111582810574549277897626941755628194091563575453235658438634823326455051673142097189972117683315806919192640406925339280308570788327196177364648041804048773107791917302012092085678506118037260566040766050680735301188262305234757058329249659246908999488283776058296853260199119678590457124553314632712173939323541026602978121898146791002252386689387927251158102121166433687307857857768899218411511632729753521252725335813993706064444799202946268956232653736610021247905072793701610265708633126085894770027029422607251997368051243730047572132762186418707520083606715762439860755539597546689531275079432896676503118838680452113778442418959145631513583003426556223284150517936578814270493303262228163506893382399800597390316372033511805217706027352901852805072894821434036112920115170042367393266619150785550842163868272102592152725849454032719132385140127355817821178607100670059057097352043683446636260480768615904291921526787479608578632092303587967428525383319788016453293621644236419435416401392224256767620559304442974068192753408565161871101551446301504146899674007002838709515750992496198424896579939713602829161643739406834089092357478252868038407078852973014428726478966998523294716831471678921670293244021254055859938441003708982753929170117889527550197571729007036435389469412178767125061622526928885681060703643237988783121561616322803432552279558074380382250563481597691743904449634499773716939653645746385370969715151696882133753884519903066441953240543782549435733697607594871256893177672217362080886747569455242802844199761105478937613118676510625495827790754891652056143445851897678109783796296471339670976978712560277227417980391464031318428800224394939423247773257756362660062675833688549650048657255697556583420642565493813133018286593155310384754606020449571381388297729641610890479221464254567142319545676549799118744805133092308284643738163690804814343795498689406835257249302849814225443045803221765077577401883419701482391870366402977962788753535226684858941571726413880565027738908177938815166370777050031736116634963569926991279675567947515254028854434736437829121765939479079466126539170534658431048053274297363882110362802671383953197731517138163617224090866102155580480215226865323647734020005839988975473731330583889482072595126635045866323957146595817031999032433288812249719455408446015934020903337906566764500759394241420798125994947038767469772437577900264751869497963482753327793795920598443897209433550880879951814478834830877480037939922237850019649134610172042742562760033980171334933655093098916278798680087077358287449195987385454048114273042598732699589737609247851624727530391088722836374753529981465954436799305275788557128874299619623893678567389254788697158462982620417973585587886358891962415210898297245579753512554121028479993866890859545088658307876082409688909405506873723059820528005595524594310606890325990858423713280782905237756634276259011446102352309671495670269644427226214290984472377826754748160281689560270791261022892903699104493309161393711049588590642796602284917046567189895114949866436038890420582242978899140827051197498995464892851662949449650945968471084577076352861909877789267689976007855280000226349917770127502517014146860721884353940152201934004273382850956663004592215861834050374454668971811698082573518765825109196535114592472259846308257561624493880644976726558905996173238715076337084940602036971519607857594672703205619521860400179508618254041479301589393271388158374700444973638315360161909485906595955333142081106444560041755901447589668703200675260320533954666142188134327213609930729053629726220719918217589527347178319272946265893127838829469792234450739735504151603272826631946741515385327581858074938609254165823814472015983648419489733798831594031046783218676585332916206206686019603125126623926414549410136147888812160863950154707265419271952076549147560011018294150035859760906481559393185486292926855792609327314109586604340953030162692142534607649027389992879501814714261672818964820244747667202442246854468277432699442695198177511296163358963061591881776048073235997727499666807258155598174274644745249028344402411263472826632759733244002929095600894062257815904868632437105654862418575893615611334518096225469772870757229030606687134298338366308681663770473229336514187280685714138794353565571155493948088795847256875959496283351290965117184365682089647541593338017466979330093929357141530778234500068346028038405796663183023371263054802234270021858372979860762987036094167176434332891553139647402235113811468540615608125885740977704258482173828799679087013903931324409304620591104392877356210060849547936121718785524878311783905654567988144297582267609595437622836052421221887078274621571309670156305724854651515313676933655126219500850226756975926516254522218587918449151505756551653027209137547131193881477146434373225496457179875927039296920179564712488726882299703646524829945603227103015112964553640410201078079516057742985471569602996447474977891108548687320832763771423838497498676311673982034401470202276853986430515613765692618533453671941938429586334806691418226372515911710772668373255940130163810362694055698580017988091424216165516205628128933317077455422753476885380788475317838263505839079676164638739518566702938348524854632901358685271719502575666464696212266122681037208751671423612561065339897332290743070497174637408824634874858970896462546652547710210205747716188786005571342768093022687310115565566158806581056754180716217437672889353242104677293483542774665950328954199387181068038078180369823525668303046175826294495382975287188365462498648135686915373419118116717782699832768434076688639443525554403789681710462437424271347283148750136052774523402319193633902504432050214603568101602598391870363982030112179786706522926275823882558267529294918401280835238406468066643333666883194408389372512164635887592546006818628628842344915387241589843760885051461400614515881974171190746367846588281192462609217222275267414471428271277347661428035801688619166834132075128114662916788064153379835450876945584077329733756983929000141588473475919863820907094860379910395155833829663311618110853828935365760095338379350988108950229399831726073437730107684134945441666891509507260434348060610358892741681138364147629840551875862311546253003742556063033121304610715386066305765281268924518654637301332649726780198203304704631862456823393944357886314868249557282107295890554404836015938837746901559225412678070374460949026425204485232464525253739769088009379050929642041104710660028884399958147401327771581108033231617759379333208638917192317010684852532275677421930160642083708257383435073402302831791251727346667200297009592697665778503268918776285035599718751529006220853653938855944812806360582877287345247512117272289118734993821432748895740611890829323342079566275070262133587431637767579570520007687554865191172333593298315147448112640397289529529617533534481133830643586299733311273548163437667261142089667388085721669539952837140649978819683789178370398891443144001515904951103645932640174995423344592641342903462443753647593434092326301646257481556478019448844955499696169242378797129112704315374601373393718220064210375836352113887740755241131697622957810695163413357185292642392714834162619050748239656233753271108839964521505590631743541132530219023187774319734984546980944755079278349061013311265865817889156317111183951491586732146467002747222302362951188123637978326883718802898881570059668737260963460128787928322694578248327398983623248180334333820776948983786062727188803413145591742773292358003045145441859168271047374505209498850107645640492756037456420917241243089447392554215414780411646490556260054112760081205071097851717867121892210137643633777510984706085313392003108528087558446856858232519445371254566877271482604763469154740208473760019773301996631614679205085239327358856418887602141400818516395645056724691168588764357306996246776640632760638591647105128235698181045228005145537591899668792820553430294763736087512512626893592334554923982132813392929987857740246871297545732654168601489810909527907266937346152375099881370436317580817884482983219713333361301432789897662992483330706815424021494263616708769308600053858188654481005057702436516003322087591299114019133433757113363881917199173795193145991237358350855842454870816247692468912888718612136323766558410162452656499770967122041435304562268666994171270393407638470924400592834616526300421056205180891876180267200706165657609584151235607477117603517890772830236253567388435086677687890891122346858357945747510803058848227155005510566691245709084944645744814486235447042722328915240723706170964110510072059533839303066250968307593074754185890825795048629749280634009542946899079856578191608685303782369715831168680489762413367527017773839564943036444770289372311949458634533847570805519859101778235073150660642791979750692925625989221863467120852539221291892969809240554059709025283292806984446380577919730622228828244417340425635372578631371954808873507947421768219885374956762541273309538197709742586247676764466999142510713412336714109035545330039517166144735279417410786661122529061859540423222040865419211851918528444906784143100975839414307338156339606258473094272537718408065396087910749950368101716410108842623038471051726086206483761428681284452036811217222465497256933268549606145868036216463577642273161651064370807230750535515680719727992547441667247506284887169761388920313044812066975640189306215668014322804993556301834474494645866722150696794708676595003673385198300303702861156679289239355835185127459318281265554478489894661983614200119675118541583690955625748887119502033380104741815054987420064790240317275429620854738222413636030188078432460374701322521362259460226194703934832558043709012566995591243976106938675466788289400606180539216971756573234200451332105486541265344098809716264045187516063949772169505804524243123439261801336730723835141733640934766295619615412545032802346105182092463725556114192183503047029875353121590098637322176818746489859064102144660905309247480591462692135443995172364276523673413693804372717482251818811073377609172041566313099968462304640050457254207550107508828358823367856286042385287026775960661278176192628964557793958377081905070082831817780995741334911061921938469642252571552217574334174095024314432045811299136995302693813878804985722004589396840873874714542530415941397793259913923417275439717703776925400363894996755562615909443434641062405257767775407801281303674239005175011907181322229506276446438530525479965318393540410764408568222797063278461557112592710656495646614445336926316953640298755617246546067241546768068248038061982778996500126246109720918146868351910975292823171163149284515342919358941889438034401422651763080058866906984531887443095312408361641975090207020643011039736052457776375887688025218915813347811570261848781630184294076758659371160986042396541006740695831796764448798872020361064976965070981383649587900193218570202619838738587429991731640616293338183410042274331610327294396944919758454414241615957284626560091216344637664560762911510040863967511689916275614785586284030414630165165842415768028759304311457751819288938930341680034235171444822958063359711913341925547527490560694776127635135011917030471172220255073267330657899095546197312091607740102376615399321229286284685216705314783009420603199441511413123705597647116034163778056564051985191183235550206682581558512612491870813880998788270573086708571005646237800557669756304004043673927088946651055085653427479204393022754199723209160982690960646971101338348864493070041936292213648554241673034755558700843570889753315891506257490094027163068745316890295469252518853314116145275965664689221111419552701366896664529237110660907229496698514716983851308971540427342321103810142595057891584473017773764254275673608499997577688926708038848265619890253243609940251447240238059042779424078933378676529541733599861169400035587223222931701708909337051917335930556858276273154205593415664136709544872932248322692984667402914545586913867680922809454573800359428194593200311102271393328962718741124312065977759007718382834429519099267672939578746679343686254345926957307714862241027615160627478885691642024838240722411347065549252624487311880034932770202535143599866399582781142614993613356787245723152112328128965354716032811171813360012198806877455079119619754595381323261092225726421063515350937339485424324803702112845030219839804275728427970029220188650153580249588657951137678608107776038045274808595229738673350430335080218495271429569014144899447018630113607755825298553831496217309594065111910518312170829555511181621680350899143993564109355361503357272120326183927964287732137548496399544114897796335258991714851012761892788614966232667342640098080737147910615205451672494775057032214958311953618301545427529758820376462777283257165799295642866797843177011296786879620741505393502299065014948648876345078553500748112801765464394784476118447205875438543884371511846546810436388694455373272687754047708449766462274590014252607765912978569144336788658700183905441375626612355568489796588283930384187400996276228405267053284668160679903015454085815626745638245547861783832127845486479512279683876173380889461419030135352606002332576926556270348427866736369195979232312469480034624158982812481935075396379008761213418624070976844298681174567594838580092480268432463783442508752249967917398637060240354520425792970390814466732982450101258535332711905876825519858429139863453983441071485102264322081084292820956117597723155936109319643045642420802717703370166082047905608462152241426209402798662291075840881083053170805638818573454736697766473227513701826875944521248806041625112647953308644215161292198845304777636640007844214258597268581624170531004405563495524081669858393947683134901093519489292812479318731113708728224320438619969861493826032053740207985416337175653569101090642738616705787296264892229764915283409096895333612138327279758991114541218448207866391412563011228533746118323279628130307584404470448335608048734441819621700261093947434723278314616608719212055753565917406653163514436732778855519459595423085965989591897551092955051994421207835322466192759520618372799726259893099810571080179684891690922677726979256434868838601647133304466927551044627091066639680037561355053401052243016248770335592586998354836671791660579215462019979309541920013844652072795724813991764654438605636460648149415829354562060497408794528317104927351777834647979679762016967105149117713283261244099010023157290803333903288576339615948472802227805717023754976447807462816289059191341692118984731147488656909785238474555902968611442991595476596197013027025383139387841338333146423591480777113288235769045372509305231864508799097397841267792437310722972298130709111311999673225681110150767595536329289427071440724791005659700399753137882450472619553442694146463186140071418137652341908204421029627084012057027886726095089315442249734552621781542229369498209095059902813643908989953892627349445917161462930392899441791007290017356372821338487996242628230471884612457077545722377350401396147742208245533223465876787882262305077781914356591892767887609396779521849559269039710300367635564515261016782194135792323425277976996710642737893194293744122187312140976374829814078484794293949565470632263942524491874178129920071062820010630876453081419463763673203349776822337822190693427033853504157269506790747758218239118377313295682839163472022113784773145425854744402359675719986958202548341729698764883323934043880280209030341544641720682903923589578557287331435251993894020616045065447578829348272040056960766388490666931504481036098316480797190589215280682758146881949382277907035902313153844122825546460128106027149359777689127315897370551782853432142074643712909464972552082582418525764817413939675972083733727377141822493873476208430057315347450515655649295752376783400608690145640431282351292766548994539150648721834419294413092988326420734478105706539194453410429691559809669202992722905580184645836867478433943039240676437476793990510082117578568362082602397178871545098295766036161287247667854478563766170021463932454193124898534968453923278272402425609604564453484159628917270930055965986397494903431010922570130897133779117688042249700826487012197189049012992248185477890950458825511694953239506434687555306781010228551123033681251180341751105334717287976566414538863693771114522399981012297409240172844560770418199566293233005636581176414853027145591898469883710344179982467717977834641389844346511931941302482885409409891758474749281020009857031503299007501671847261157810013332309101184409662135933315421517948994025021114036832191381838913797742404521430612685464593162629509629614813254096879586296311189952662434287073540586026213333190942836045941778213624890519347886031045680623542763753306176838561950560270234491803061312214317280285917463768572598885492058722709451077694166989656649956305652056087068828911044103647110038937133748303064316534192907426757968604422578497322390020302734588170391626996461265275585255507511830440702484519379830505224149358974661292545506244792134564411519932836864962328630470585589366970170086469116444803734067630167056960614464086664417284896331435425170755840108036417446387966805815964844724684107804479580978190461686969497774107896233848402853417414990543369266763454656752697819870657774736619439602801566759436845361282016190078268497049771943557893194627812398696881145146510691553697753445024907418200535588883711084491694383835428176899843597802431861692390647218452767135856582500423302181484182316607915983710198719697448394291158405583456073228630094267768915419018861611058790490955235051952463365378594763671351950007852700461371752908852705438389177322357225306704462420022316539867357755419777432119937512019774425502604735060716950695783608818444949573856817175905351802135192579384692123544131338483032845678115783658788756825669000144147719157816183889459589367435404941942510082982722399400787878749935426369554990891813481780030371225628246281736479913092992436652391695023912497483773496532458377047336443785170147807156474889023082862958874858172904882796799295895317585641182273716024056717444378759219320798677763395060838917064505801724917898067124077494914362017672774447387528341849573792931269644987980840283322952666220569026340440846747278129177596174002510011184271142450580603042327922968264815607395295328307144642136042434781175498413054302086214260523309432554708800818647039710498073730668805014486392144258104485197703406725555579079251387188590729093687271901014584057529226399082960882311054272207607840185164671203029160816191387097167399811972580623567605239131832917873925015896544801079782821099406788674890584198693082717765903200887899808763880455264267326795882547460587793750949026758548388403186142575285265036953854559172781124847424617925907523675941027812395285309031619726596152509852391808608340030755049545522848243053975741058835853755356025586805543278126078010511604849790520928117603326130666933326671977304320210592217705111664825361411353726010981235193302559765264855774710507422597922495653400634719772402715397308536518090407255494502460334212193419632783254088841770625323515189372130043932163683244435485379780613692307672385715340638791959043115770101826960962774156909363014737800758783287808453026113028317229828687719346589766473940106366994864819831086254041129685225431659975673218534996140093237773893996290857220566593135585379615227310079883879111527085589060326494689273741140047515803608345984654480040340061620673934145839657443268599630476113471267894931265870586709688986095950970165096324418209778403229107843341558044166797078060547225379790199597354400798278781514002365647170092034207793008419259895026382577977795120206862791213235790976500542704683570028604955257996163330921075512476479547656592013038179300136862211314665658712887267748905799744419878493930650002069595929698871737863509889451196223731458564086330347457789496041331081629238368375536977828423862212390185819897922980418649471637162904269227557734637580729983848122794902475110587802928551920140026374426087487044073727605009470170478505057783728492820386109669568801095887758071773612530830048759933895866994696197085627223947829386852097922290203304230294503702384725376504957224435533071935677085139191825278240183862749804611938023098768089532885801248447965661174502165496371274360189502888240222369650756733958563190151956515346341277993812424043738453368025025056828933004361787071959601804876892671903844469377490482167227401453482829616805540706333486576505964463517840845590376719126183995651816835048502193843103161685115787324161374986012586671344944410622192422392458652811057960157431116697482443053924244965028203842646096613236372576942895760743262923268554659004247799537104878113984288359403856367411034910478112859889673364138237282876348236488128905455341531204508591384713936990716587178705983843828314395988306409482087174485187074497126417229089925822268617582652806999147607314579841988302435059145151291767086606594976448302536547316309198307804824916745221258756565713685612734578709764110265345256850439583330580480541495980184927121327097790881185855623788656352985546497353484380768995022030484633905557404211458921617509676935685923900710904694044195330957175339230611769688801817579045812269170650064038762340709860537589290677297351419183203574316771911189349622875230015039439505592330065628485996706298065086770553097196143815289684444755118436730773606234930525409614483075176250398964206691007699440489452269323734704956381436865455531879302956227152771488339343084982715949176391225805029936900340167609182982169751394037386504841650299974476793839490053938763150305626347318439894389837910743823160173488904691184180931428525455165340225579499569539601467960655093365555572768394766447579360318284573871066485525700016648696080430916784321670237871432531384124149009950414988553159130435452919824142600994129558455494230814054725813835998935748742555836360358465451781099003575498466405066089534112848601826069900769538769940085730119659868012388189168121346563146570220398671766694294826747229636678429025794357875684210943793220540104933592423199827301623308541461667259881628580146258331014152464290099787844532066307054018961146488712833637634178234218418232007402333483336886567234892967189055872103144907121062185516839332236864665873446373075640360896746911875062990589306193354908912684590101328488212330654377518811145533265533669108766712920435847278588675978128460857882761114767988011536701782149622176834205471792116861652400773179801493170575656950759924097142521906116514789172487942984965052600308436076084571287559568087057749533421057897317824054598575381297855190823536750655297780592845392151368328937827550048438632020409841044601532301932392534074038310624907016568794506142943908472357016701872679876211717612813487998288258812905933407512522079494874910184855996425088957113921796490131168407536310715757723354781878309998098757399275136940789137394733116963839382312846786706009877356352594345973530043837325225180154609815902951283710280966783397070101992846731557090096160902989093033916653718814322051506288063443176517419636833509340694159958286095555107816968569962806217581620984361572544813474471205142650658028007390072076701743300455169678805328279971845737055164219899484926226386622347582251283588226049216199722346282530153674153143170799342351071428866979466930056161220708721050235018173896656224929111572300842714840050700361719432654869382160320633985369151672962321518058902291282170283964295880940809345150535334041491148444469045963271889209198158859974132064428069506476476573851447341676806845944300639540896016454862367570916576375546923784313383852574498991473515762803084610049771431285685777449909343304976872875010859226530555879797375675563324023684504236768918925619692272217821325300281569897962673835200292253843088502799509046843743915618868924574381019346655615972984409824449321361519073921667811155337194799319966964923807766152758760700649468653215890166738998797188218195889202798486346773275382700295451343982588436216046599627498243995611959017528376672206954663180207019226375032579377549605043918772064545172692464079283951596515523563427475119392682685236577910835054596390320680510242986635248076161738067763397427965450873740314745181622093545551397659887218720756211787747902622752606470507392204935682822548577626546693930058449919711846947172444147849720818673453246916789648738561415719112709361652751353453014276738616450260386803768673622917669329934624643323722999422351525818209358036311778609122284624294545193452600385424312611235713131897011001328750770385734883239612500233080300943736872386505624739000178426180230610063658593281233731519988241931210913251938199677979242804637592121014656299056476613904165420331471733012346736478669604822820213605413013049213439821374123606025833056211233487320521943516909786257287456864410424847959016450523575583585082768707784692594460120417140881315091454356884145711270985925994483007548564782369992103959973448923930402700980917731087178835292342803575970172335917067375491474025384785574976020507523652451301639447027483878253670149204408417859950572809762216897988095168939951402175057511935968299999731782853463726720627848009275935804903101970009707420797854601295645714073694847394291105025118538216433838459895804964361345145198754686962495484171336854763930170026892357845721558247165919839723301405452604248788581246300135018218982683478804841203157711404399160610011223329961365124801044111282840796574584993168043250908559284508769439442189741580075046556376836473595434444793097607866969582691726157913246663161668450806340757764671116752741279956602859142460852954070772753950989923291462745607275009083154785603284485710410288485370857477470369316243048461649987931122459368823969617127575865355645083447247676711875599617746437848377995253035195712142279419142192568042668426850767855415193445953742536161373695270768605942821301307833982046182300953991770490281376313880058761556723787019160917018395200712536106936157976899571988826000332350114445893776772623206619908194752192934106335190009942397282608249965567027856787056492462710499707747303812698748208033047927039389272841134506665534250169166432617192360394263710784498299872629000332173594519915893351703422150529959314064260936579334789171764791788762232216549208947593965369599903761448738573973372161840946924531279490454926710101795891740449476888080118390957749108665708992161161616567863693861896068074212132991053393087584296021856793168933380507713585911670617100867362835023338134436550166333286965283925423037595594084088014404639913622061202573351222224295651657518395426383861563252562087682636516994670852992341171510709037317308331909534157702128447455144923292861970304191324252298981326635911896202641896863236168148112904338706334427016685408918682423666186361077416463079188735593727533326700028316119208161715242477075989539336656940364933540914436852320320769504146770688483328387638244883140043123049098206327534434394341097367389223269788947531739371803345209013727949207937908045970729238369611533978384914528136546520305359413363704930173539207272007357754626071513928121668078029980443829757303691936149406380759575060863848135232475887333841818160260836939967183612746565455308535975828261702590530798464927551774643522881015755757572210314658987006334487727346751057000731974200621589918016136271874385486278232548051516234400253209361869793999759942274320233899891870994492865351731675013245272866940086880962761019005461355131252321793662238887756391360464973865200383329812152374061015441946008747704103744798485324566474758544420438776892091011898012946678723788103605419009015477609088245230779013328034126456059651300981651845173373754249043442883809838706652724733738793332175936449174161306624261455865651454180753777804432751458077683391430311032012805646078963758265978431104143571928319549083458404121994225423199291853516719686832880129692127083284974988333864459538718715426966133217160071004976329794014570084030033761372428420764083526473160583856462838992866153022446664811005932864293750833941380957492166335909901624378948995274405960349228180944941330772223273998882823489957835691756518085032533272423791018674461335444469301017845570627192663388125695420856873575730045255683733213722789467446521077978362166442182955395483705252153302560908959217698720537673786361141721549898666748138556617875911268873001493525971292641479099951651791374578236354793946606731702922932672088721000024292670514295164989551404677339220524289876750775147256017174733881097326060289554422936519982494898310190953206020646687987494303873828795920171395304130389247486976012426116429102079952115711571425517456561110241044029837528168702905275629649357766379613488248341691899400726103756277779412093956136403378962027439041958058472843136325386554214983260737913571258498875117301438021651546677474163999136778265693209532185844417765384500527329134570581355336304266939208874904334444707653404150003774200508479351265739284845802493758768272664732437190219949987716713320465749885861133924481138214859549800881165703007712259650100445053846326806505724637453989067814032458862403867309745269054759122815461086386432611047567939097559286387101541511264056934893938760657848990424383070418810696884188510536941041975926842895308768774321328950768389249166386884812589506266476028383194584499867935230788319855176834258393340134375064903646393682876959409354800605976103032677116181116205832278527110038287040338152839952843308687172882510267416766671300453344554273528933154771739116922661206864636311805555203887576329054005474401110071459723963992634445273218518609076609139245039480433313221477980392361472722225734878455134506416324204063313318863873452012683342978314647692431779101302336849818163877230561795450393486543058355767030843145428665411692474117863100281975800040699861373621839245668458247100497517614680309293728637659705158499456394890668179605534415526871649404303432568618982603718317090500473377870982729987253237200542618940660893190543251746353533760745173993959846406141754465797283250358632191479170263462411316870444820409813572838024450345447725552378417443123561764194138118085862846609075354361943133776017809783716047024034961418504529676130155145086425679956886974674079324518049583246201883599578290253675229826232322749508683604344819193335175078196344460497710058249106785899685989450028029115779513451661146342084168479260407094677567556674868675461013781476717844793638084622297819039253387080859659676845329155692054074517567513061228033397202624106059337966906109289851897240932752316383392708080859588015997485679967198560085545983753544513251363001193475832042214073399126814158487426199692671098225120170306938658335852099007950388642614663137261229204995605974231175145524016925433834770335035670691717855988524755431852640186770027094341338601829686034091050920325252264113124545602897342828632194522820116145993153833716622391540349602744504613118795001055517713952293770077689838108234408627770863624267068412143577958394776005921959209663761673673619115005438490352455471402067720207168818107252531035514544636660120067199606210480556136922748423181118614756083734092421656611656754310171287145469928977331114058841766347972018318652546047127154343822252781440736309993304283323226249453966733918803103494640017449607710788587747086811292729245007908348075958009011642633110121238426249372474162002802179991394194811123313421056079285562943028783053446840806785890727869147942170656789002191181323915018994429557026087836185324098283156127900116862593154828031842277516538846897863582027561382419489951516492743038230884437346028262976385491441719926957590183953149070137480263706678151191300245266463721856005008958513945106842599712736464515490624025900883772190280935213276002880703927918530265431426655387012812343094268998413585366968892716845190355338808525055273453819222219240050416640975174555511815964045763482312225593890974162530598205027585989287259024367004121525692135510646668382918704801964801466656636799761590422660146972339841629877921534621223580106518011458224587687299718966867410413168261733208012129459682986246072938425146541527744529573750295726309889691593174398633047279783276003805472005085522617105617780405395374203567582829970175462926708547326593487698029913632885013102160620778778270904411197648334604365870620001231023892177163360521499635044418308730368360576450584941863132951571228061003547844572500870544320946330958222165627602917194718846002267921612511000304319563955920405779332100764975883999793424778363438039380627223710175906792078327010051033489189048877783072294714241186936725874479400703335022296493710847234905784689340690546975408878452782803758322635432319984073987848476314842754649478801268118126385850325692374251904334798106121746001858942867215782002253116036217682784209554092246706543713443533814030024375915279054195257279567695248794052422887787421742613579343459385519615409582758379820163777825745325163614869196496846198338432379187991756524633289233704129488031936989914695930206667577053379128680637894816924059524322109625648313200452835134047936261575472615215917630696489455117556513985030013452280231842072210138685300262081780198632230051294404465958714252090404312160491551839289040505388697157068464933661112335057906009754721398916607228555154289015729236719853223078888728011881323859237190721294304651765832424681408758434914754884208854479103128574479268269121026002521415787464972044783456946711811612983891662578116521798154731991219238224775809082574458954566020527702970592117942622483142627747406037245920495258564225753410315793212340052142082806290501041617006653291819410734235255274449493165953087470531763551416042214484288133181532076049794103903618792341606847272494340932763002025123189576097188666552676664533158184130324743433237579300692099277206429783853976477244598232395055412357731503611011649345026275354556310435739706121526943193513284368371299799080315010421933132288972088655041581009456522096195735196346259083375789036868876369630290475199574706756478500334463453678316438528752249107451390453926633833107623138224863057747869005870400838499297581598365226753013538470621577108038659252947561321858805050384846999877831022829368779532085587760662345857460478868714701770343604025358540777260803343764908058070288082715879487449415126932683429573549155130035613040957369449714791033687545164086017246733305834277993821232878841077597656446067869100816404432324593680087808245127519745461789947040311380374912034574523836750217583595735678920243964417431930921456675869671371972938186799427643282949374176649235225565672661853021768599488594216628698950963636889020626448491295036996179159019185242053771504681822875409610796258994912024282985683081510856472432180465058881870674377658081954522488086891908244643710733108885649121897689017995818908572094150770238227220399632487573498200814166882205102533048970763013432574060990936110397518938584128275592778851200854664418468416168460164802148155153948666868953284515672075930515704573034522620876976065179408121893528610977581023627623036781773667058619728593962105742580384226552984627452021239178285612901935599432194156227108012476101710610834061683177429785305748511150576577496458919379630104868154444224388542169457158487596973721539398910159864721746774082432203803363402321330281290478664893941909620074772872383846728213277062328789619371011274028724957993946319152535995006839431219687963129626497545328030627518786398851040904456873336923900989415825197978584793442968551323176221191000979501496109298995962055627798283492709129099869425629284261968575687601726087191836885933428133509742920431455249269504904141511384389812242611337846896306526017857490536215485068250488381832558667518931586253430787263373609689062441571247141118657359624934868032003778670790698598404440701478829857271715771171413574197206689719892153460311599644558102736902977644001096764401047330743425981627117564117558161384009032238817146731830879879805951922745759128600372449388158106777906828821260004517002199625357154968296942346445076135360406707423937276120436562917355441366643036272663435496669714195692135543199526747175491119110310113224738717247594157651945166398077106411831809371158484800646810619721090993674720752104644465717458881161549900854023498090134430803851399426611026283164193828131221213133303810389149457277191601812975967159847114809870543801602968410042278496961974844682865159088917743630297131202366141719276252432668141192502269079623144625521637232408341440295776121341373750408440374605172898555484234684914552909367722523574102310024412829990484027097263883094641202161902051275632342972014576637174931221485830048846189384729132775939995993036724009323920568725303340679261896868996191882881545514721607815091493582965859902540591142461024937435071204080081323916237887109599628495431383808489266522976125811715521803864024237712895099617677433783429707706474158668884164008441779982428290890863432161945651179471769592000283882129809828243712729033774064309915413878728678439586010565080463587157847797287859971739046356738378440131638630926873993081591349324216652096393166763060283336717326157615183639375690427173948122000045748263166615139948965177574156613628269513525781168242876916024453682632957221943442167613003536506848378917322087508655815394238420335648632351406396038578260544348870037461683962489931046009120733539607891591308705623603203921310396454548031772043902794560764472870207660113122941156195067176936380233910952419288178314065121614373088101790021355596313192307524358901414509094601819803285914655449163107316348699957735552001287618169471241059380537533716286098858025465940113919635786322276227455248407363609795389408416704743804444888942600045198063210124168500266343425335821515467870103570152968221859879432575684420173665622546361177983664696558924918691756640801768874712229997544473560603235179264027251923364847578332706780743579071157513879725178611628518414984057559616875879263203572837576800679125070412859685814705542622515518791619582677362686015661915370758795891967459921507897926180162559439577895998641564466310976611164631322942846706577133206157896370980401724312863371633903771285608539139745287848165124468463510430986878022740164288893609726254442847766817196103174596125059072645136024978905616211657045662893382281492327155889885706255191095486513293395236014936822391546093752126147059094870397882768918819387617496136169870017738944508546807604131153207433406861576436064080950141464205894594124607389636809329841501633410291705756650225118255421515677941880733749842467267358743097928092791260936617199352484886890936048157352615612196122266355878586289725715395671258840487291557878830260107129403268384030180041160117166873609376545318068048707029350934573696925155311246612347632723260952584634625226593474008348536914298243155749273378497470575449194565299419856344921058287877166994679249277380492581433757951280215246962471677817067833662228127172227592486017129036313952692381250780798381424349483935004966318179719067402508325349889683416816739484787797098689764428402212685913058425978667703222736673582887703608980007739184845988264740402691699552718377283641701258509657927048753772782324048851681408112347087668677518502205311770407638867304688733481260142247797648577602564001203136717495478803386225490424956655883012474639868409016895244927057816038785496351260057224976620689407375996439874849618741038892126865347337357127383066576762482624515930498362697411166554943390644183871024697038432580930565396758240149952162426549721705752782988116222137081766244468889246648260255077609848595998682550893733171301389493204532594351355176279945772559299035575937147722231215829276735230259913841760780411917725997128814812927417679406280278248596151779194785548719494940301931937135333142621207013872138038014417537954717437220995353477948137271026477955284848289204246078855285268497025225506556995219947952362581318080334220639269020513617644579618794769743031444255696544136993894051670055681580317937257533509159058213358378920080611578946722759097490109705079252941941868128719305626928267169468191796209317620247956546995611111843391847649124156550576148522318557180097675112878719406306948384041246494631832321263944277840817294980815460179029382252675336936138513181557412771789876290751747831366511316376268960417059276001853992665939372066469778081327816825229475638071222388139430721396937266543307487689708209267150780114196476228430974817297081687170126477590534480236792608871536656966264609091044965203699820897725493928266200604774423979935893861506174236745037679592361843988234695165743567872549798252058468153762995419175299184296075009742519775013954038238846900157055398761608601561466865695154530347149627184453387997729540941699545632506841020424409010731531119637378781522568989346684609553982245710593304043272371226776380887790161360759837359677769157638122598851481409867425493222481284776464032083182958973978369849669095060125265924240657992779960598294981389548964742185721302989135720175498732017989822237617922155715135326670840486033189936196780467732421167562431396189597461814627678739839096152526123647567637076432859056854086424485893456403194888635771458649719621653678159364972077953766691605868904881896969846850553544308825424346748551388228259019788038847576620324301095039450374350608006227680161256505215277703884750653195591413114963435913614155708940045073990932790590240061362683084811825910547640858610695564431875017452098141903391112677977136758096464418017751888492021417478398208718459953937962924036490254461083546329478065199824042860962158558047237364032638962716605941528175177245004608311560062224306998411909215226052954915746224800460088403057104911935257995217470492255881700923933387378702296263091966966433587274642266601439477202121553047703061914658878366956403726466562932486552080507246964387229509775620983364790887070597455120355097524058607385611834506936983412989696641945625836350187558881091065287816501909652387767293543645130939171226800189342952351852600712326878102585346407194674037092850110634548538132038289896509570484669194158072402860287645335044658482856377826456608427878830254410566001891239570620982586199635239429891338402998273611419773731325809439076681319940596176322760285218491295587993574225053466136639134066178905775580107526981461616086334883099186359558765673213944198095196649335346803009777367341388886673953871766088203363887646037523226713596940724367965763003917420100662517525925475478726863643749224612932296740550907153500070808594330099865657767016866492917197658641762767604957493800372929263979149330100891924558974631795653425341591634486841785970817325614750498700919040725264452538078779357652548154613298615731141248573246976886125519565006483350709883571693010800477699444990042364430765313710182396473955292197389220306089979348221525668082354989648634661156558105527006259226280396188463050040856183902296167462533775896769956933624712400146075086690250021019456977668101841688390385174039265738927443352503401973159529763151856978416602452822838360858953788791587994776377144046102065787666463204991914022421852178841222837320059704948173763941580126762051163520003331060902059483149661386012068110659386011539486245223990344813212269273308345737696110597859382562278140125488175249014870786477213628280545474000665245596183804435565717556260231793165034052765627702031392516452834618060346301021560902382318227834775936143489569410731441515220895179963793409483999041407254348053864344104627369087254915821891867826142123469266640372975460524237198271682396854922180530478394721798763601133548852849539074924474586486301773228374799094932997944004757824722638977387060021605875280761044350119290499758225104157183273401232132444173147150517065302174927793419329180604065317983025983241600943965525065493836963318300880121287091313671276770792638767962791080461811274969513754219704054222258673971677589259697078568723193045218025726108340130794909734068499706012560186807445898730180427519816110457651163594160360191104446348439401070429818075390379977502678512323418173936174995773791092584473752083158224958998071031101803971354936841487664239540682721281041864756393012862184538470251880977557471151047745031001326619900946313910730038086530914415583702640907178121650656278845122852621496730923370853866717293736626526848167652954434166555423743076023283699733162256049519554616362437965044375056222484118459555250796743131842466602355864222647907545527469217563884804887894449092964835120864269363265879527401452324319944000046285465053520485878433918631743820539169039056153550589132497462909733967506738146886716522151933267717409076100732511292607166963536398569525996804427274255490112648811935714051058335004863424099220117015343815224871471588308981497229647629730093675753636942754176019173943895287180998874085473789429508873560924406478381417970672395080800011079224129825566246125568974406738990234424828078058090986716667401442429742385040857111760947355566103821648998426755460179049088773909288064232506360501665729327425004787590683398542500091117113468250973326284157805907415987222102788042139800687181824406324840487753285823852846191187983808364017645491715030359740164526390806222152169224641653724893608268762840351448580106449827370418480932830208017881048000472282890441946198414167435182837509971331151493342242171581059151543691758626938070549881389971592752725771542769485509761123274523764641815064058758979481179355542758984714146793081437065059317896874294552691227001415558571911964585645647144250778222765919627268657690859898827678075575883583808323127275999434099707233036576301954481312104683130996128779070537352513332761917228374209558763246311079953232758545239946772781526614868212069886826523852707017313386020826659023135796601053836952706546646522331996530532852361364733959855902440842066024123175885623299333250800092571825154206830499420771781125516011859123845777935293273791589413700168044941254526457621407542352773120287981175302939520673870693594327997958414152838579216795880154635419986807639007277343919356855380100444984333112474475769679928492028796316576123624355757866937519382393570830571032680819735681417325196363061514852358032575410901608835768726240334106636806024829236370680341502644941624322971965565153646937308214649418387209102136125254470460747309357802867250908530070579400386282439442396664903954116226645778695555774861235385544030459717162101689286112930477988209050146682668614992597573140533442718865027126633462710824081404318815638103246623961443420129232301178169581351651309361054320488097530939408935177550977246033450907127468996282038105304114895226503137115428147606335653922683585787819326175489154929387283761524124858239430183821973430697138778391896548290552588649312593295156380186550017115439668776592212308164326344250924853452549776327801939069065638802815288091569062687108305788683751122039957902900454652136427154834649411146492814507487201548799791733576659687729482388453104808266126248239354186387699621952710219270927976502651617325444702656710299308047031665819484743670377546915478702098804012821020899523370891651701892853869135746222633812321970375121308770759754553618149362140273629385754935855683220958970768872806347204773711338761637969152480960482752016194294158547918414040606516475304095108691747653926077821012835375465307546366162831936380010567571409693506671243686565867372495796104116251413694696757235119099636220905777359735057630657234489182781914323447890080885851124910913222123401235549447931904661741365493111174255894927136220726852484203271975805456899724633755321369581547325695040037974104476627737191291806515823161818746618793535356188342168713972505255811092728359136401634836785733420831520824560203560440442061196705516835622549330909273740877462194398726570248823567514501147079906643434555840651613642710778301569123716567369507791475478264861752719336732039403679351774323685427171866151740501817493150800944023275885503301551587504890163050617451419321464149332943940830984943308103072713099593319346555145968202386703157241529634930440579012277196395069518975480807682035254700994281478882283536175540462337129386016981983926640052530986382472642826225445291272002508147728347082611920546190623653106474772226204041764965781697024948746151155768976699488372123136563021125422268577264222890155694806178320930603662007580523270349157323419327530045967059014813489830712746101153271856990060288507546937933017148650944227322866375342217213336297227150762379020012609442793312748050701308714220138997568829368679825727163621435913995658473344607861440106379338352194572711034014264751498894423053451334927727367525131078056962685395234764863627608058272260571702265667956255023445482829009133055150756521465494643352470707628320137856992730440534936886403301396260614088461787472451874134867597589262738026335325744085001409352775137030526249209893557467506655359211806547038960695653946676252827317349879406120939758825351531478478555137552160904474595714248611485977107791646627019832732775716263839477581076783737595596714075151642170052368934095093315298200436740803691319366852662625524499959905334396794584680721292619112573806871964868002016326763081446835484148981792312959175708222482534788475511491694477148535603015717606716479017818961303124629008483108080964746773938541821298215621834535833544051235531284557617460184212830948361492164715943600814458262033457506891296745792248884936874684040041144138484653201500133086565003744209705940429494321188222709447648832439375194659979416552566279421440019023830087549413524275232588681826054414796031680880703485764918953095120704383586185073454398019701334176796045569233797548933011256332211488021544970146844791200239979470852711301860403910053039062232371983311680001563153602235141471083418969803478130150962258583018965718873037198641908830706856818017928801712453190626153810707038907814503116890583682610557175786595592704637564463782840307060650983913518313938336882998749163678209297962949006984170706042349241343499493544813449426774923204392564818602828531042156326599904820047019396005192267198191395659425157951199840403210060402621821625925808846545273677352506989394937258443815867180991882420998413448472839296880863178238458467722979071711677270250489855484657418817164207189139461059070997928933790448486667431849298277992331413661186888508700062249202690242056884056539941480673985818809113488288408706237571581236658856485133401418468913328726261599096390856603296855035730079696102752407819760540129846004248294110024470477765119363410372603536842747249983599983332427814366827988500070447295028104026751762127392854605740395686802658410468882750661278238808725767121611883602287816853932094057981332725402695545202753351061219640382183138688878104671249596544523605834894493426794655407389797015915799202407906619831317613379957895337225693633308879129720382135821859274359052682204499504954759525472202324192323256626751217946188150269930157405124490056399345278118530527344197563911755348059386494583491476758699808623057495067822367654889462229595980612792747505563099857633704271587976070861667419553208686013656156258741514366926877626442610673884507440231561292466163716146509561008726300847460874474201871706257697511150636963214932147895311134064864608612208775352607651507386796569375826865805270029203493204109241925406559664279739995741958360367564659845125432341954274479000632447577605035839573708132920340738105672621795011118209406817286493004394667910625211974815132480467413834613450133353084466687163822646177233699744829622725490610630125874021142837442148963725375787634943757269816179771595466132840157463249480730309641462814300210877140827841685576591940693625413801438275333387628970433417577372339182709951167320910472777451127626147885709713124115912147270021642467634654513627450836962299915836387063967317895391892927311190486029844960983269383615333929259007667130972107152483482385677701556935684454081579218064596972390333232419091976270189531380647149311803379985638532119909288965258617590352822896375481603675320354138948492049785419103440577209466982329025262100256425235444191381354315013823563420069666294583321615564985503628148324354278923883763243968472263149552725325773761042932842164177304595104575016406680782567420797941515668042307917474798301305735825712296422941645103153495586160642523990814943887408774009334809064991997758864647144503790902258608917345256265362744033750118332161106942759242616938572236559828901073976355511506151641923464146777204853373494744886611952022745272866279346951799927203637993340535915052674838186267567015061575187453661019426039951463068883703398930851766644630497602848739636947044186746469930195839311235880024578615574134669012390013288334921541911446803032204909755843376671638289378364233955387343746955239209871042159791305180935577928437946343471159551148011249549222269430163802632924523642496294320667424307805295797086083424534111607980670129626708122088348210066198913433929831864742952487325183621041109471814471072554359540838373021445193179872737302734646152664940895199343766792627356313889655885000849561282561897381485484061366812616668152924454975182051098175512164249015661552267649730118833820416184975726431760517795045703696935494850792746488686865663434667217742475253565387803300775765374716338631666992426254833429177812741861447210236006756231264497004083674345123677667822032417649611444982710715452072489515592677644340018195285345898440067513074616745102489671178553566114957273502576742844286537251705460578879900881434835672783106687670075141649687108738184547651971491996184114148530015234133231432965870681692823506687505020345481861886164372406021511094910363230019388704958778115566749603396270304755297271616754296220775431768600350092879264671682192230277742669570031179927158593759037315714960850866489187083756106702176505255295017073914237720456419494630978260935599641380073688839839404508106866198062372724690829182711770805645465831088322148529868704567817135492702183607649063543566885259135281437471979543837048134047722477216755527458515668063485528183488675462449919252021639408798453483065861207460132915007175237333209517853224839687920471284431803728162953971059322991580543936987015001997553915316335429646087252993250955697619248905850562001471829509307374253722839237138817903588720287672114554507136078759638308280700164896151936780697259305945087321143311857502855547375368860162218332683783442771644184988793712040011443939268135565331087443809043091753806771670258942641215848040185725096801698759890887405757722381743872805016071736771690169674295005426277415278624180189617676153077622543292604407563056303195031275464444640072375825233352603731256088568689104321820328176271686745832384120993678430564896994768788754657356864800527309219520802753364878526167850026325918857458391498726506316736864278442692691585682120171530312770284470538526006226656384824748583939469720932249638603107880062965024766821527230683027187603605858488675141911279072659150635929055337880991657621355630633924564404303706534908940653797134258187501497410873005103016731911392444949143965006700782125118643684822003356617634999139085419549025043510424841436180161252584400482665358644165523996689148030175043245355751701457040632625922485315750474288248286567899011682031484894100626737985201986024217323770068213285019364224313424066176082864329966471475874208281507988829008930939878244665360909961886725550499740172737670062783525715091459165298153671294584379505140843325260948383083163418342069192894860653149696761776111405184563385628581938811864404510874683872203790727088441661932714470486744476165328220805585496543621570550692465263311821088902558776353669336366705228506449967697021178203814609844473033297942965461810813497406429609830071421053333051011907740230811254450462278629269456948303673276202478103205628336319123284580696249898642753568623092651546061202939779650059390652577484783376961697870720871481016016336828765547925133070286888733627327484177520204024700196119610591589992411385157440232109008242858419594288097353577754960990502357854842992135537530236281728779312661951569639897615339105512509240582134334447787560153108867521168312945041188378364967171573004941512628781278065666578803613541452419898811812495381247548092364826614730222161562524300884897201777850671366648633489194198176495751665624403369389436729330379237637090065421428519960046604584845567598174582803172560425535974639823352460911114366957533296592556205455430859107872881641108588571706898201332244978178018988956267338427233168191057769739973315057950089370511040733734013916717982804224516048326434246791599968784944835080694759502938821408884800605918981704243250828940000992812000344399643924825714251288331298470078966595583852329439202705795060410190629977406519659012444799529251197419119349466143650190886726958264252193410749343970141903480238613237513687467420532403852469611275582805784363372218917220271736311998569101053772064532634699092512231691930630134746506123707516204377243727974814553351938200144307941812963231830381427731245989922659801986485697015711100545181299081769664767614190786888898143312000292761849194496703024078888851439672444598192165993909555992390810222998489094511904799251927714135537257600227691652992238070613467199465930137344695272981866979731530702582347323628763758945092011419885480387141067328952554998970119889686014259680838422013095927811666541940280678758366612460103097395908037909766437725988606035461151628308530229040921746767451555916528798640683379371683291720031008671864179038032031256385999045302760584218185765201567966024884883185526726297974174270667697659891836252477249725714303088180143386900415000648002176612391435681198890618343163897720257918166076662054678426161728788990656971411628109420597007710864088513834449344053123930066122026635605882028249295789273360104847531104534571488292532696673969382483124255969305957136242902738138421568839460072074005098435483036894709044380906177623580599667707584819168513451209280361913452382157904318169386365537756636038290649384737826973637817949431520656438211338087472965281774274226570758754797597204094622136158985029982008738481975745200652384852535815563609008681309127000344830956323020929135296543108535267999324335669370356377871256429239535160123502672461502975790736093961094282839166505513053608693189235138103952530828987228780256297812056764269533873686665613932626622192796130089440101170534504972204132931969442686859654548155437474794205827301024110271444652207032461337457053467122389965905354750913002334047584484623265978666278215972088693956891100376068928084160521358790375132919686366050889047011451643131530940979428615304655144913433497312846202298468989746444963112163642444308843793501395970451994004144363060027135002859253781505247730315577362574021339123708393742162927382512255428964159305891604019504526357214445505284000708064426306530563512790728463873598538620534487094457850724790853662077311352869598137187157547909846003800469279897813337396091126173322514608607349260020603546028669406314779387654477330747087843924497996709381733826788857395458864886531654334798376292792695827368459770179973665039035963755708181328983081120036239379247765398051123539567960183470174533823561255453861342749850496095643391503922846752664860429806798996374845583838828277841764477753416067695500290627252464998263685164841431971847825419587897959087425776838062326487358490694667665708462529233671644778256843082583208886999917057102615847675268453797860837287216285726896462414777930065085436066148858762740323404271811757863868677154196963010807271913571184292944296503298693566793896666547971399681893645908211673106069326557810962128559972371354984154037701361728688628593707810465594673774597473989445602298997680704403521179139137333868773433115010148430245623203202271859938485270413208810554120839812303084840939612751942792706840650885040509827961916819849520771731098411443505500140878138168183457586037895454739537795103894234275656188526308885119595376350220475782954320104700987576436864294752331034985002706212851691547080150492304405512903196083525750359643729445570991545410432389228717081328743725349635784708187987373674373516624667209596765534950504580334735633827755701674739412670198316071350643691330078700450954162730666823637720094785743253128973819931823989984725315012666816670300138683661064400813337813964520407794056738710554246132970368311425230236245756638279714029280350195328554980525186749715932700052452969355937055883030230550474881243416258825470828658133187916379985188950463342415041962709945161777329267178535155949549322806466997147185975466910316049117921475208932841173544076740353845571636241492648987248054371327114507471761286123276417244348595648494536444562798919884858337759025990788321686646582086101767232450928297760149701012021130528092398012017382389650174767702663922675290156434510729460999249784144862395669886676949864152092150401288498332671117861821523432734253404046964679155255461979294431859580820473175097470587154892341919556515202685771961218219514845918709274750707561997061942572672770422169806892702698610893572526003060415927771434894186846393840766876945317674913908808920275815792921749837502653377410582268281222863518673238252071797797945008286191427744694309170212918066297136202375444333625465816494992051857824151010212019742065115182498755353128274647449688865947137785533951314431403261856581343196892051626383284582798103833878551137741948794400322415255674029054403565092139987010822799108831054833311977245401099196861492939059438329327782514812963015805086279910115584308017038448983626372354789252451231180131910026275010510178216047616892501120841997399124029097926114646780060672314701414809207440983252632341893239316578973750470881420392885980680317459155464667236476925093138082239256630477762309942730167003704536771002119144739717248732859905422003724593130325821208783412819096621708921591742304739649980389793389419479537728674877091350847781670534445170302229496213364009826381811167745425403524825168085361467524627374546616219357471824442633865437007208872863454921746821816140729451260094456942690292079467512638225894336604503770832018224269939028225465356472040281884789741814819295332496931906413459678944668840114519114259135628159160282229483462117646252551687392336391544295295939294706759024622303166575198307891565319289998467065864380828800523396901117490517719278627734250809986479672304621757495738554022225444297518153086218156472171968293642896065445750602593143790121963886023203306672550183738746229910996269953993137303834085205513080500776337228188423438061807784745858832981227126253290207203194730899537160586699184166292770814535866495222014037792688309876794844310092806561853392173251421566634006105412037879447123541536975752867123771169841008079527208863531991821146398847567263553686432475940881748636532254975205931980904587137907269411860726504876576959367101097804016085202079581668581387172481571816018506656978049086074009076175993933170877302256640919462199424637134803089571226073065465587174178703548804201122381609902941993940299455479071751802334758005113035704874811457763839210999342697690642603741647007158243871207632229280726992796677679696669607221137549508778200838672658961382313871690783086675568168975305924197879493128005670924501769388589375321648403491609136681030910107439282008564927204617626871719933369229557469187828617543620706237495723123873245177481539013383688996729205592762183526142709719572629095751863846364872504870000461159010239896796581043533923888127819691873966281604902741886735473438315173823684405292819707097966374508426012746417441904686783016029339648093042558919993935389817825347126801735687872088553827368680425852523015983004156035735288701158880601365178159586182356361566622468660377346168468700367511315680851745215845692627127036227134202972725156418181704683965446808943547237631680873257786201722648659406318706457189348049594983829964540151992913188694786504506709874828103929548424254045921661644734311747439332007487338003679937817003767321176790751870028462046111281163840608622388817145331715733021274856022645035076028436352114015434708612735264726673982081431016769083666471631098961865643672583584883757451427980703017797287473779860090060969204422167559810380252904818154201363103508510767506898447643463287981379599858016281536941048187352858526790673270609193668802587142802822685426965291031963565516352404184262361748871212989592566750753820567501295473497149671181337894035528195590788148450010276388280938955899612260089048394294300914819137793247692242607524999408628656350196636443783607167007879648808026570671422565293180845102142202600671330321471225441966956531875421793914192177202044797238502593067602061182842042429682523447945992177974041270096405485904825108146669733665299335203211061076047109250908549478263856080839559751575562888664608802690274582494134361933441171950137372119623760570894376326837464026983040635882389338463043047550525940939729830146057789060105807265396680989262041954152432992569952843648960340839648655169969884806413565742223540588743092199382024504522770095972617243604308839728190807034867897447282628072554209643804794039757606771102439350877883519082595354359821285340420285698507603981707497996018174971707809874609297315994486611530302838479991915915355018671105705028920961445146768227682840917398918475942648058014391420652238186775381839347907825639916699392252677379327034534521487598193959287183262839544982214250904409041427145805028344455547705892800751501846264481708297743183176811500825516332403122786457446389403708182227145740758834370685000464640976150897118356502439504285547411045001787643471731530001087093517926693589864569734258802544843143827195819454096603471652497892819399637917469544288341030565515314351626951833424863302977924127934415856518096869087094776841414852106216742908932941570964402520023675874558141540631879945084539891348433274381478173413141104975044770005096574274127855385140911198151602052243343958851649786569382990154354538681957783469523427756333247139075439701645352434643103053574997646201630193288765197062908675543204527262738844169484240977923539915372158650631572754081764788652615161601582058372467603088004925101217612133535707738872505790144282620508542417423473315219992342032189923047846924570804215293481312182372740200089840857485258490197433134820634575356906277732499470073849802534385892024127595764312431856892918700228992269220952961365287888879175711406304925356912543407078477073321484235005387427447645999281640451890309850159333431299765759376630297522391682759964133200216038126566307121498199513652365936862095395333635455026158947746237269988491343630872679947427694675878209440805682693833949441829337045883801802675706989242598414497260907054165371588199629552767504399125673628889407826461937971174942273787395459557153482808018542971484691213163580161606899191839665216971840401232834900018611907104021835573043312631604463726982438097103097008803576758617849504529770244802057008705843334955443762084228940300265273196407838568374993225745146814983575198404388863511471850647498219227412835872183957685156483957981794292837187404169805919569313625624955178279101724446041998371514300604603929848494037646724937566803407847330315902278124308681775489377375411386488616994810853018690716066810741886353712290160583862316605730570532820310317490188209282132888933096524718096189019176310451633693820816144865457200627255041778085976705352329229162307561963172860702507498899152192012449748141037524288402299269403676385827789802678477793096442600424613213575408399442356119198481394352658706610774088362065509172315570995802859168818635238171031951970903738071129656403022860163921057016396680225767941084178758210298049022647258472626092811581962396075675137832033347701926554561166257260835141617557762915193611309394833932046191573996223067192666426250726145580183487543188087207986246513510058565175557071768415266893693388922337461706784940533398668550089792612268039971877902878569830422033374853894464541175386159574203109881899558011149723446981183500901131417795692846683910938770649138577642164538667098308122301998843954069647458211449226318967890583479933635711720069548216956360465361024825971341715593534918720266780134045836581207515929357915702831339416992216027127637564443450073204734258892610610094019011122738402019750368166403503237946749490030014441728830759303750383094772888950917956455358945589983595376812764065502484959399849128786695870458234148069013631425630960179349397254432626090491760637707869347051551842468874177768675847647405298152332513565902729672491729559273826416952090887422277286462789226486037459496696182507645186764444404682329794133131408009422790232541172664106701064921320176480018494979208994220259837192292547635926966704093104501399227377884660391583041766034712999531051725630645143749065977012796214827112371180676697474725936330454784560724592683852511514628520591570426702467512327736948742567330190365541163468719510849306325520739164325476517374724332733435710850256884445384920356342232035753831248268589119929823932822344465773376525646483120935628866887088556280787518974905067588116172520750126012081367893158345470374255943297641468694041930607522943255528444700542163612568444325983790191805318548298990561498596689799252096321598316635194206627062072537596796018668373802445350429617503021691164809736660914666113834642822879869507946775232321914390506349801939285956434131899460859000805201242088649075827259962973870336927080435288452635075222838981908087435446482186278655754396585383840647941238269744086813937896310234979358200946646287677273316136739341233064786262941470795002068415675582460249787183608375389178389905475426193911207047369235125552014128342758232124837406886883966174961712152748110003370304689216450475725131225216676758410792178550184422933621002788240833490342088984285207459969284097405177598887409447475393970523909809953425199296870959548871952388109869199940509843061286145963212641913187031836033520385239613160483925642269576250349998129505732008110364451821427706558383912745117813144637365321768518489338920221991571767932435808542282996609240222881159205062097639305291284907064160481869392198501184579819823312187215521745249342131377435785600885483148843405504755832127341735028419051506864208667541218175973533582145116042318367509910049629755222371246086995695415151347065798811480187061247303756833544737391147477994007471338355032342276025690708785892504726877197217327185275326939628011426163952322114661641033039974007884731933896311482956133039896785263483727025628561654626047897271257732436605570220797826449388222239514533962613637769632013282650330130157693945462431986592728666461177698442641848004509986372963484615124493312282551710354544072817375261024634930341668444784624490865199256116710885851194324022953497764399010105932798144702000311211125894237452409841092799507279511087517159240840889176232747627818797938549867335802978889042227237275788018164150115599034306636850118547322673202646695908210205529322060573944482820746837361296898468249580212426059485232420749859949108815342291551361635706293220034034426176019228029282252613109557735433158343910517632838212693371285736903511928646653363147218590812100472278615090470361605440265727415577862906910695492399084661310333614081358472254049499639677023615035175798626211928829097960671283869554969309114984462175102428122907259452400836126143495206758689353692307757677092382038948058683791622577807419063790326284763795919049051057228263759338482885930432268567837230855787436861516507241730993158448576223034485885149328409593173865078074468205224031180683536804115859512643798387671521440139389112264335499435159681144762325035036155733292529826800153080004353836938936505037767329374984679150347900838919838350844124847586982885441797531734010836589750699526287314719361435858230430025125338896445737179960413032261639302187787402953370152363980832605385793396594700918710090791867656124201337803147139760596189875740360622074061871996461360752586867529375355973651185533323764348683618356091950527792744627769335566409125797027685777007950399759351661606628166840822826871054146368024827271355034854126900972177846567547890529323203706937525310434605861353089220345197300708857444542079833647459616419234711224242112309554416217244583654904687377763852151610161458138239231069003596028937156362607819799422967400012473379303729488518172680701579087821233599391040785605368008103186073480978226158465324231344288264447517658485540325579845026240919385228551240579129468497510966475289351602242911499817527977073762817648793160817548958452503807900420303526540233742035976426433499783792925025415778103247258800484221393036890788423497736935041998815597849429839828420717163362127975792685012735743009387296485944091476387085023393374006278850244433163602698418325785992771030831858533072776001405241209399923005635567160003890762462107842633180809266730094178482437713855341580705283423127941459688271704444221686528146719744767654802272692982482849581100987733391867764396776986146046238587207565599319483069135234487285573721941916877754343212991369697143539884500068537174041019919108947670659783513636321380555478113166955001616711620766339149185058802067822342523636453485775837217764747024989957452894890728286528722008663664105663951580825670821427478800164856972189918762532392321014593484327649767937702851631676424848552360402496345850967517234782427511424788845939543148253687045020539371170218357222357752891431811394413983149878687741066720939903375672832765953822080288779898154204356097744579471625407208930323443666141645590800648334073193266785206652357150090750006955932468606927582401291290314531419363246028896863958804829616593045453248834598087095221728324798635700718717107823542913389160222833260470588385372168060065619404007378993772741267371835427897700811019160575986461459145042482781738104888925248680133478223294969050303701169801026783282330310809006938891547471934102438840604931898879720301661750532997869629795277246682926366598291379596699333528289290986626073989970692076324238191499070522159473391808921493225498960495889985475380180010750100673105689480873600273717060615371887361236889915016043910930854741408874580059690294790167532917468130642051075431734168746504390968322477478093754165627353582771158155136799413696973472637554729147608896154847654557427160482859264928001655425279484577310299777832737764233990001538636801434476494075830526272200128999351506870193689939763973834114903043994126488584196293899585041305649997077622193674481968867897396006380482015601483342986031088000124005404597442362152752577945022225701909372633193274265860605399659995997269253917666020455436599567992138142708817788284120478256753505286014039424167412253105282302602065958773115630873195245524138289686026311592432437149875385704189543126572845207367675124423941782384176733117967517966090542394842877216595498133847242668585768641067903363754855583820347688606643674094660333886472952012526850084802563186051250050476066480598960009796557182363826949281834313479898919182846568906406933470748276856559924372942532949685328810590577006364307994790691757052713999384295288874948469755120346638725149178544168731069502650652239275131551867327230209011932012950982008847045426300807142346030863381367772923850057023180520287391193794172934183924064938434666488210323444900334219347120785807992523314186855338537188550148213533914718278713145523640897932921215510043513941645833898961236764449474169749160720150657384709373200432290946641001474709299576723903161158939276205353730920140682644348004491905074853439496457411270492439338069840918790271372095570674796903838137406617481491891532753030631787676426185821313672591362822553082708343699825632368952963105617773321650225958971693841322785270148765580362063712475365983631014778011801111705507471530868923323093668660257373986293673244656880241161928759985027813169530252202689260443257487088328298496685676060246161674870020787139848721869410517535625735577396783698082760940360845081376691407493773387008120546580327192181965233375260121434631076549668886101202824990752400572894578303058172413705390647687442111538506115028473079620063243347064926394937239407974893867797287747430819753426173272605155386678630926964027450925543916868721387223111454810559581523701528847082425830872906724527530095317241199615896025262080942550079368388773011219732191248013841133662787258923480029762753155182044997219061167221965286024012685928427741652825401814889511412071626647679546989203927609462750573721914290620633461451747961860944373024526065572532488547554393223806211501660866914972176169022746750262732441175709719833411291243092687958326916951075154490495742976960615784507185114166716011900841164171573710402559487372820645984050672774917170391802155073001155508518053966742539489255373280321350012691958123826836622136824286228912414888622479144880810837952322832115992818405051411098739301397742881116101149279413013236187121649451712203846559721439934877727623865587192205831736493523954424205325308953188412080250670187932971446659741909451124275077556185246926088266651376593578777919398299668926679791718110544345248752410837869665205505534746195711957991947314337005851958050132775670354616152173753271482803678315995047304787847941617532991186187278167351894359905650274227496444409695569904245487854264348251263221710470234508980584659574677386702418364273277754873570600616451855169289243090137430566055326452301100438970938339982703667046706591255955003014350852447732453135901457570862566761869378940771861704036936021386133722292255934627518758220353671950976512880736891965946968934880754017735485483567067182231672442222951385436744391197259118224637064994182806899529093035864344821014218426187833568275823719311442753419715864087541528593421734711525153197826656930591373245435373576266323493024771419608461992271645150880606555701976726634719425705609168594221400332896847931884425561138041257277119405678304155063021504504128872333437028726531554843430501586182474947169026704775851022154917426904784957131148899398422391880943410550002508308497677010473603643479625725782443926109270766825135355620976671362245394813689867399963217388433381070070182453499792718113054345059456342622052248656573634426538505883802707182741757870367155193475523600490133157204342428490720515057042747677066795825062134341905394108549241744674646501687092680547046877471835271932781416698337808369982636017152898565398174711578190921959166978472062543181761626779637508555751632352525891402056001824427649815347579029242156728042894724783189880940198206234635617442613497227125052967196450438086271159482564905362074760435825722285821920486143745779553100544137320610284362842174085019441409112966709335146425718383939270616633196509928082762208715012973961311036187536433042921464412500133819528110859083448795835868018807296276220083436394715500009207564202910630509449745697713505650926638954711200881042855198878042273060491066505353009140222623135822149661303850953037160313723435988592177026966729511672364987133327060514250568488420542902156097466025179882928250631376341621432939584975489073036542085697755563781382614840919638471024974868185076400485474650806497903457946667099400749863596919625300572017791656777849671182259474348253681743991862398651113467023149415788870351829477771027401548160347456991830638549717756190774631155331603276284201637666341197199160658932377639409808634313782486833903976028207832283243506572281996786860067812023202160300033454406600392335975408426815469374073017096652595792678894306574679310938360902168796064307796860629126143013741578102859581756378862544034560379951871450185750726134604640722692140943989013936775635210635643429192777791865929249094612098668182642069018818090784904825822635389038329013699689674142972339994167866733804301988947073515177984487822404395947930947292154065495008207322370667481923204948949500501077536120788230806042469398236788144188907250718152584385354017740081831277666049522659743394420264032077130653865358017935394459345666222816635076727720422367837886958305028183064306307878715724348318376003581087191787658029382281371144756856738331656041958719446926417566108002459006461540678487094682065023003180213229926084323998981624079466181699699181924550316846275064589279512920446079990335344434813920228490077555740990468764211896220714899379717369218075432330181614812249791473930434847671989689216738651185027115513365074962937496170290860590495991617072157748728826453745094051833748166730509800301103940393795232593403889623431780343357320199149708495499093268616893607710892035324604549814760640669265307936522578283691642113231169961639807708631441529505870345591032380143501939651093800664919343277560556864626296482046483611364173677622555032092892276587846523282549814622483350011763339888788891201105281104572147079509397754725524873754382356997965551672397038767420367839300668235507750300192706437247486980011386075482448632181259265669314204270392908003124026533834122108094315880270669209860925135161344292130901991361304032252287576147905250362118514459135238031372491913230517675088981555001579325906727006515319306816861405588523693264863479037354355334893811764630862196051165795834749289686032581182755990669769467781666370558420809369854883747909944075788245126760177384500489728061904209299993552670591384784702274995219838260774456348272622078538172738934298908855056006126388100054039008591861825826267941702242329751395179170604931918249308897105370094120499502792316048741844906878275545437514021526511506711591731358540549863694973702357968763047998509056245905807863171388539246776235030498393274065455145486495069371301606892972266271864626174996154295153528976120184209249956162868763386185013960393208714466788261074794727902032523700329621686059460062494942750232866332632804911448815975835848534886181021450974987408331995663560795285263610842561871882035275080528929650984025523493352984702785860988468260093777923293991513446749250334950410168866249085422568874423850166162018044262771007526156471211574797424168618181731131735628418526940597250606328486072190005013646444144116914432160049549261520268254525439540528882308848843051600838320527486463064841334691927430570835820728424595487647881371395306292449744649547125543222335273152263893757800651039616174797564791548334105651776700994454011840390300560687968090575969582618628708135871826700703843741708822671605392812715360681985845684328702162220325223823870305088497950885962933433080307284164653138807055023258732964974305616606642413475322591030818921275383745083786329804142147487720511349398767889583018335082448621409554571017472983920365151790657748461953888838740940914767804526296816676342096376960133827574865650791986692076233491799160684653820703381874012500106978944767913014339652793172545782399700882803736732578357616097316791275543832471455972730375293671582432470453735422317955444128482065440466535353508555385051427095299678466919467830817610575744129843705657566621954980642486532151910983310792214426139577543893036821223474428865276373535817800845904756153419049738972637855574524021243043444203260783730919550583644793275037990899407903076962510972210902620647721265736448110693104357107251450765289499611354846927158314170820378967769222645052728755237885566770899844270509887287000936452923830819164350771017030739824992021237229744983896296394207204203607254815736695077700888203865760726383885077433358997669565860236391801470241414724955455633966384018336922854525647776325142439738801349236787842510126361432886823920830601151254034727934049520169902438099702102005183804739697718199491313066679591828163859694899561324874679057924273627440151067388564230279554671106943020316315971985270711620703120990511652207669110717781091465418750118910629862438345770852755015653867097700434726471474538717204013842899763362281060525705807223909258913710682203163342125024830935989765024428331433025308431287221711927339417774516532543250082171922451840468464135783027025118122558769329472873088174485959282368078709709044642444642649061928903615515175535569708629941437364129578522499997190120455624530983762438558557175908245957445583091555791500425994796756244974723953615084983796887145429862969702435482772746608115838108379145615753594530357810672896720167426006246306875800890809465243844260309309716148997731487872391502349807191277354658756510420239597936018360298816538394550018289881676173138731540205545269413553301630810084519341603872115702343316351207712745110042151273939476507657834140287090183484286739429538595436750812828380091599729501050110001928636797106528347174600756765644344421039713919310430480059233260422772381599291612662701223267114105187425125212681805943245447917425883032392186670264568117043059916688906512741001534386026143721046681411218404741332291751143115992508485099022978743277177053988166005722514426404921299336805494144693163105498333194212512978671710929716134010889342441903789288401257486639372316968033091296984935070258108643352203960182538432306935662534602767907722742539474096140846640748394782683658431382767381774631215747463250184346353814687262242655953239175688720018038217482334641749343041702606973750381042588635000792922864364835939559356335672946484271127411055976700627543390639268785201330765702160721910935095516153892929889256678583241330077802027282512646861192109297575266342992839091732632100824104881660010367949891682617015239575855518376835912215498496898376662849902271036982547311884444897154949881874994359502819527103611533324355680929650016813019651941346730145277622431835056476372453521101919650172966725284504012247072950826517972645411262430154225076363519396598181360854758838393453853174403024099243594058390042918415650363912753035625349343743535361672318070717156836923974947349447635617767603186678555007965099963856399327310306120923094489255508576957688862381402594612641570417311903561763420363622149493560643252510770278313234001069892809269111021725549769853237042321835374894428245872894481817007419632740535727740873804946932278778415859394174185758280488321599977130283898618801794307352960441336951150963570893128968211546428578931102669092092947839898611203834100661752164272733038808226767871187842278130887760476594465746185983391462340519363261268242985162576857559145622186377668108899008924052594669459654363108833334069710620997297709065503271688630468703270405715692282024207245976036248470127067215073575674086642535434340912548518711646098159710762705839646732526893742619028957211303430533041025351413212217146228131668981510070755801698388623874212913855562510548984442397222127132552207459113634964403748636362702940194828811055676234952035161010824973189385775437682963055175080356649874652795424046351648026518675480612211515991309430762738029995655424784965199895423891132271488476155026767223926262971051723229124230758920764144040633222343960938901779727602177283660782497427449143829177029183756776725428330097491270682919708977101418166701995831998520091059968745425639398556783799595894769188997993935245308981299847181274965722828215792148976383498891196074449138616663202610050526955206009004341569606644194169207522490212348346831734865442283152444415834468559662508665170755162189871926667466266687633437513187636759149330568669220818708214561757256895371110533510886167171573004371845256230649887098093364412727860410619580173544831002248577380918328604101134826268250005957747950829040448047226417159457796420408415503974744975710683320992408543835047771377718290868097396281223483856308401186404318487574128607803829646202854723627990552460552216023679031260294433766985993700631023556871839517063083730062078878146769913471641813887920743833589954655534542703796951505966992465582988519675205845369325300490759702979999979604825238364728299831703344687873597422089192744911149444549736438054305542536909871826786145936774860808731196968650418262617624167724133995049438859512731176463899115753025989318770462308094736660701757883302896544450602045591447046389903245968453981603299406471870432583249973957120803008264188112090565963323542843234555088240804357997246461277597395946455167620195632210685184051755291392792099990634660888825824339194597635409678097610706363412185631198796014061995673014189982567497583985901593610453144465875641830448727628251203307732761528843782121230781156773995557558770712067627541580085187241973291379433132443602896281097595837939179575185180163581065552820402269761527284944072688345299694690872932028970646715857441187019465659341486742579319633444527084240442072600719058706431259046481849956811543456515424363024867717316231754558094719844580836675208646481583871022864234053087619789332251940955568520167406644601122168356414693865597872311872636651459868946313175941542001102255323940634400715230556252818425529647372188754224383518731341280498426306130570897946352428205692763352386860545003913075206525523381839469236106854488439678178615865715371779893979419925754573965620435726480486847363551227789738270867777685950103120406790674219197084152204617055785563605411304025296345274400798310087332427884420662344371087208326630873625127743579833901671817828665110812689249568389648974451736737328513237147481523341932488529301283504207036985511728500989720774134097792213421776718762928108768005995735464314003917718868652285364298604613126641850031892848343764438677001440973350891363470489485034979517347197572313894187888724421831214998411593439441645729615891978011496877825033421706406264258606039415870866007071804868598393706058573800461995845924476462123149425272965559733663194968779790623513734636040216666001598893859039664986640751623308152808989849714247516787513220645518319554415751309653468329926578055388562599050124183327414546253529168340625033400083074074244672073043309839734894794757294921624007834613303382319122531040779016224849490073649817911593345528311136701035137312653079050143729855110387062558807533823877219341039146170251032657089410405241879637975687638986416252805605882654217187986052431557387683634914006853556494629638770532257185186552310485176726509303034948790157905926176789209036865119423387424549682135673155266053694906881997939684172786881726169961146367261312898405225717313313814226820737278223075541199989997084540685998473166477102757845785356908261447733402983039146051387847134786408178995162017160560779626882231235372170103567585396222156034080513116242652409840163527249119396016141592888091755686109671091854096653453151300941265146391250094685693355285829493968471324950347332200373943760692146397776893522541639939216000039018511934219227419204663021389588374933811826692314223752924742768084598812870767789678145826436149400791609980569537858094838680886676490214373529546225087144568951963612999671124730005529037615776599092528569726819100157062061482626544760369905858337308604988134677748754619349393538093467028733966596607566332124141138394297023108850053746697130540672469222385868522123832916113629894794769835417971481679257632362574502915248676977071132454635933614037501089027738809397386438021460647346589160386434769006199941663028419755431858204209302050410245911766894104221419929189236894936560348347561328579878949379688760157334872800763532343108704919764218075641678922868251974731425994742894303700051287649894148663374161857795068738929905731015133930206691647468469144509808486063942049997299430675320390786604150679015928100412701205643560436507957182585124424024255039714304295242148194725928931643174487672412534804862972101134305943662933031398124044403387329142582096131202764273910513186884663806308432916067820183944757681532651469053646686777669137798028370643052558444949676384514178295000166843138778501474183122505790121990646635386250919751756690323514981847516983881740337184319940200438932457189350389056248401009802296338442667266285989106119788485445833636442752335010987392676097459545607043546929438451528045995548796520519388798533031299334209176400106563997385755649737663137475179185739034227812196075416626510206549273214974029007328192292337744343468249925217175410666382464103862964417752498063737126971343123752872804454172921430488771848291483013067928253159553336057030557403357503096855397231052393572625674293682568548757922720653065382856113721333033635917653488231516857150311706324226462182002852637287700266305076532452030423369881285461402135826435078747971013454110054085304940935425553444754611804467767330930877172493365132254609453916483415738920716558241550361148751325155031288436144465533128807877355691551065136983369415293331914720739614319656996403796968811592511005375705971256438640918375567038237185253590457234837853536578647531380651776102469262725904497844089579880048211723799339292320985349226629449821112554966058760537349255219884768746969306852631683362343787744887818436083388888084619523596056236747977158830334429979368244572399316086988632282692449706249662424117650806141106607322012185492388500853462285338825501259564982141310027028692841698015393967806599400714800003639236906296528049379874294601922855397762212853061374290338036945990761728054025721953111112425088106760903541486805959169066976283052055647273069835023039380879049142520445168662464292046488471501850281796491680911797318214441753353606409365323780652950550765720916673646006202242281453952050212858352032417397839290967250777947247757352928837648386245486963324871424860552628001048528823429124048466317754987752292307928379699154305433878633240384555078508096964517072811020748055105247409098080355977452489184506914744126627235898715668234819985545083662970214407198251199571473249225713324274202335356401774296806943665585097100305452685347905881103626433002390724863676049213363110361845351192731985915331210173654195679726164023467989196200029447959802147755666724796268747408165860396642895625526178319958367341175038615622595388673957115774698578945721957124339591325818055730433192435857523969251736000870669803284593747952456396714707539431487657488890734307699010662820916536635522334639210111043971864715475008309688291689027042346106189033641545199598939929029730814167146833666810747946808776458860137618232246850654402142635707313980544728677478858032954452927175616150473019326224214531725389302387626086204819759426227690704604412807125949437914953596667114028145447215572759704681509894836311280273002979630367509824214324828979777800653058042799313957108267272331850401933372667409653952563146022035832868329412687445215773223586252368017917638280621556927925555810230451396540779959958035668521785320758125232295219418791267074791767292806484007266430477556119072202546884224116370144549136780162007587864260927485423438398357459754725151290748782248504177093033826536796682971650369439528460348472187529460352923602908526054241827317224809631129354992171274932953111451174341637132397237311459653346938107041514273288529255489716393709282036578576097414049983296119752430989488617154351551678493560970329546088654399136449107598463499627365660823151263565071226688646472802537512263020326885839715550809322357174672036273387030806526357073956075048540838515441767309748152816789057661230029139744785723959808207641171480743490876085712565125478730015652097647571278844793737371245051535456762486968021451318364117594799276619271299249124280076572116133289342874046277905246926749522106930687401994242843020027712131199468870716249415582049563226536638034203679619144470757579855510922064872081620020623093940120269018860095692044008362819419667546021882808127166978837931887045096670846624861998711125257693472177208058645119587537266910508676839091043749550532880324587497806092744384947016002015929977900027879051297223441417255601344687369617795235419661492112106132950116583718548514405726345747806421896308188449372770662261625497760971848422260153717137901292921231027025888806634663310534747933484994302192289575685890326059689051484870067608172759309518158031128048020786692299600015788843729015485216067322474661808568241508291567208239731890077420112628717809535827454115481255821005816491443355885583900591897388133103786405314013544783780688354250718083611703481515028945688350987728646986336558483469285780135114494261804059093171659494942885947196523282477876717271283870255737581281398458517915176532709261804954657835560286223693482106307950915405269215107376953423836997386224085563168626111918710438459218954658998393740656727865733847121804580450856675568616373657205152456770352185110996874798107202795789006713621004816282140267078988730745389981077455641326160929467545251246620538351995071156161413732846873023272963045134122909180300106252762349468552871687331253889325046808667644443187212424376429996004620366263864530219433881621707339681389510230416758447760765575413009995202195358559178813763250776792761828540183141833604190861554611772069573665994822430714224188399258277462569842710667267619440511702851866209427419783585548066818108615723839256633009915548099902846158982781687160802683445512703790975537087251463318052737933985238414820188076427818564772611472542947074598987399541916942441460833032676988423955841751695897945330189892451526304122489389640549323843676274789882045171727583803398460993831392305992674711429406362148696523781792253298152573858205518852746806589347390146539966093189723836363458923675114167024771364765077434418307199176780674293396405334268260402306096826531661257059365564855705006537870395758817295328602781089096836992759213996657154766931599421157461337117866477385986890100573156722183289383875988607561077296539564711787802012166297141503048260959478443535301339582365717833232060910227756618007922870449775250557645218930832939466306710884595345439211370199624443529984086390573432073440278871167588083291036653087026019265740921287248303082976535909218984739829841996035226600545692502488639873199198471440740490225263966851011493839253281995366012498163569749790244299580800125882041796037766815640593990701122477274591166149067901266655316395344089685479837504146556859842661587219078850698081322821736525832624074143899109645580793648913225454972354953816908064062868317543436969441710816131583521531383849410119742692180331472522500793176455017524464998245626793410782810690173724321595631688307659461684768320293140321014837197222804415856995993010140106783047111687418753512369552971428147004975555073168678007066762576743761439504570990496185088292690512246642580161003256281418372730124262803033336092919726240563830332764916079160019121968853275306807850347716400156493571162065050931292980246000220500771077972806534417407935473436766324431125508841388706842131984251220797137326171427900894760922452439226300130387387762282420772596468946817140869801130996568628365172796537291240026576928442506229537225274426749503935869690767717493947307519864955553863922938458025548636677661185884646906511692891106510478286397684559697107366306510997055794318185659385038769450401523061866407780378054275598434757731465966969200681462191579903678691880064293462273901241106092737440593523613063013583365699451362652884123470329500911503971672843269316320489444012383273848557831943492109007457163608820566037651210120568901275843567703887366187077624331715933240557337461197146633176083834943993107115220530509978142735893441797688142597107819058896071121077255243513214194186075228998067602005409732789826396257473244050926065184692890564122223665632462417005559971216029778426509594785562702195840079328223612942422095755428513803396837871948531350830084990116711563001343088876091619503622829383296756041661997655988004499897941586518939090870726590775883837631299563498818137725429315125104602706236696486954805608331263763676640852924578695664646472942621079920839892644710500122282609343538658474049063433937736246152486042326573527543524995276778209516918042109636074104362071337746963140496294881705755351513194942822299233021482645399672207668136979261558079632509935575038360060673272615537322571364150567107348437649003576121525061392544331694271965252722205630678609430222818939931918631532434678649797958851937694318293921492318744425061976369594437435791425213666126532485661000126064251584494779131090648358513349315307676760781620579049304066159729984752037474145809158829592239776997626529667578261157116677575273900076859823810052476597390816254104689139831413428491603753331469665626926658105842515111085418963370706596180790986666586185225926409951529024969273677316380487236228122345828865461663460445611920213678622225209141537943678094047749292284046848918314527880490354426769788866925567389668896489643381080240401005709915254443539007887195657434593482586700455665883829433981875206568644204860870921334820420996175987969698365725570897829144234524709192334418546894657318081485808395401714616770118073652133675294621644354479779815499795419520587352048892646504056682392162665521150467539864901783745144811025668105332955675832907405942392286211885840655657240030114474568415611068704761041398148276707664395343424460956900944252423396520762999135861941392537781884321516174113886625785398214500191478603539819485643395551396521409902844082055296138391177037256531929582018342377874454491303012769697658579936106232076785702983960872418108297928072913833635513950506530374032631247448990668322141134793680330256301916758351013715935443405431840264115694577785851171593515378312454835938613343777133249492244660641129470401256416404521986279320002117778666786895720726933241055823450762426765938722459743715515615403556398760307530746330687738503054797371902101244931493682584244276618548456582651641336959413716547819414240568532488711577204424073300295384177533496782376445673394723261022174533737866623226954467556465615320597119002024054913874775371778867232542735514352292905767041055197476646551628411243584670476649187500253584170634358345024169483142708735347216908384035612762301393892165287728269139153422061312586330098861448050819599489220531974526062902620839858229297973416611100503943841927770062500103627374088329154307987773213640202367994870069876934320259873821833880598973166907328767980613534074409542523775581580319844832353036082631933314830226798150456766521093625723487377794810685707601514461071531414213749083682279235212632564341960210164954556979587454757344120950049777447155751823903087372165941980256057849143951492196660809626102036293375574308893875997408063387103149238516484648182123223976776428087861655952895345028617541388696376373594220106052797594436708067256451698897266567146854465662841441669439807356358071237897618115338804918956048666784495344856962250798709240785173852011381630200760087735560210465010823536321531098975417570097228223283743718770744714189684668535018719130294917882476616150015364066930854990288543742790745874515954945741230369074988805884549238191267189088338216117694418621730052829967335834216933559976725245394064329924793077477227421579055813933947801384753225655435830788336530534817292218894316916804099506496681211865790141046487972308135530771191177200344741592141464329128973542534996353300122181840553954670190514731537227227659990497127331878021112578774231468531475932411148296709780575162757725826908898313998593236361811041969376891723268698628507670470940322005063112031141844489389994059584723416424181495977266405343156588733893554895484480239993348339542954455904780097808996252591190507528002686449545157561856437316251765714074870166010103942066049859446578311405111410825658962740627952912202283743796537459159768427548742696946941144355510530969913944136044972120028161993334081830421173773169262871346937383244368605245848132510756250129342216341651402669473490570524526116167288320178276371181876422946197451875728649653689386183165760567457025226058363542932710526690137688555299047114142334588910012048995204097141281432439489143038773822884544169964602386108942019174188328975927115965523890490964549015183923692335739080925421839185181549876859179533108559442689441011308107075322382208103481086782935430089086205338575690732695467730568694892442955906887995578984773387606119874038504433281383799432790387961452193475788183718836008920330802010516985523760627832782014487204581082922748709236407234921492633855264713569693178821148916691494251456826249765547338709285002138123385817812354304368726012274490654255905539353711810342978779363666692694324340022969592461147376557212982913613275012094864277814503983494228744532325075840316834447351790413870300457365601060996357066969286223670389633469445999419147091272923911917465136313021116988123581314446446471729707548626615975163698861060725163778235386678699729109763581048279622997888222354943596955990256260815849173166551731960908513470370925523122824163676943034259575069084969664348385052992552096923641322162201652370984525449906427559518913717080562850708541466811486788846266596260725450821123333658791971772768958559550858869731672172255478841638424836761181799267361333025889935927691631723301814667453390374973141823456950221329085848658074263722271684970587218433287771056507915142985223130265038264691487023521533518925328321116451715702689557688550699299448184775955654494743628437798608130309051043872663645434587897226383540146117128106581626658841898234461244811790351006119190953536093245735082936116675028875494143174535683853217239488551312889459638541621888399887079522033976001865560606255393987256184317855387255840781675738403798596583459753092843142392362238471559679418843044709561158045239778285000325715416880082416849458371289744698635922815734358585019939642218105369499224676568421521681546303926658068800118196554512432683383690978854422201057806935681413465243555032327662190173884838575815396431929809097447234895645077278653500570435785661982171120115615266292211832775366600672058797579059178835344580600385016732728311330740365455947853742596413087873862026380457585939811359258090224282788986257566548866927093936856626264169918905450938851291318386602633666710877543455434441206925701356391760193693431849593233828157907611870543458927966560326220997330339508645556726379737650269440573408847524464165968966403425616558743661317985615684040773065824061892704694164158279118726960603321166589146812138772776774439202475547574379619981702546642948967874541657191545970088923497013722924624844313730905634009806692818646632604078320244431939344324399701733657698951545625925791008431228705280528893492661902816808540008723672614554225657059187096808748602449005173738354781270824678405583480352419005282591824068829812224542554366559077015244595803870802644337040746359097911530706928974711391239769267486753113439349810611859976335699623680237869612390118041935720765906230165539619131610185303108779861742189697573438806093993796719116097524596851744806934455719779796147519645851080256702518191110236336642842926763174060329217989026404697370572931678455778550884288687052596923094986444113179924390672545562955195603738326991416378793796452195850198591460497877251386858705035386733588561279076390121418275006824215536426087526955340779196917636604537945370945618873516261166591899420119545058327274049751340917076501106741833461504392769949074025036206483027815205820913948326700364332081473529310964894916363607782889451340529679230867973645078697722394510789961562884198099316961757536972329850097516671098111195470046538247008387876639483323622321622011885015638023040873578198267822532612995929009675602100576446651250979246805124619043894984688572958474970452799048686008087273214331466344442174000454079527668983679782957511601286816861482734605201001240439827950729085731065697697032506080792659614038553190615953930154580229066301064816288785796131280813404883743881868790177040529954558724633336812007681331112029404800810182178482654974774975576740987196203589307761751932043729365045186514615323493445588165696733452013841583039436320475280025051615833075601654052229122075715275105763348935678864535771103956626638882872059654013648475594836159720879978631047237900501522383519374431023534007043450826041436356800691093556554618253536702959728104119460867480953262091998845204491188735017172617228987804510135128039016982248547786595183256251317146347144465913181798462413662925849326042953467444408217511370682307037500655544241909494679285886821777152853325044831842477286638146244596251916449929554627543730095918713076207942741418683171230376217176481665460984922872356165726042806001288070669442200892767178574152994610176092785438194492785692875979140732698899038545634981281318924220277868131757788149890523327222609341319120343294134635373685368507726335261793284220862670448196273013809024275072162574179142530205930194117899500654155054131696754788431795383825401678742715947044865104569789857271661644681521313437264268390402420844795821969902628693966152949741412793962940299517850460489344444975328368164543902680888224542156991099839068864111467084834302106762599740597437285559272798843992923940675227573311150097070139459934200710870407862354532993097380993204304058085528903771469923801900422648598165289140808044347181662166445995893272112151465483896522602061178140571032915968168257999076741640131056743662243049008442223097050806063917765129357013872254503618512017164748399969125878859681304685261784619617753967430976900967071172303654207997663315949997390008688430104590195838826620893116363775885964063416282724951988485965335787411306408391893532964021280330586488814265634341372177075903826666013934581449922148732761125239099098546691472079349598954690755502892464467719288953211813488909000689241449149487131540482272326113055311563625918306686476199153360813443513512179333154047867031534445344870591429953763326770274498286762405462878199941112871778897583947724863132997766945211390917801713373502126652679658503427043121812432735198473583358150717532313594414315209159206337152743639890773772926721316004964649158810159925321283480986263017398048380422225023683368405111678089180543677947535791680314857130137565806788187354336170435868316431411964433900620117411245586152608683329525069222797869402445815606793165423871414737622195574240189451265578103069363452174860441274502675129089909237326022361089648687740019282095203993103733163496012581628898582993377676352579760073281382370457791754852994155803914091106861772617248253116918706437845992046299316291012934490469618083818705686885445583329204316912002912143749768306395191352513074071068764467049038707770516202561683566461464571486754831638620905498694651248921062418995512561985571687766178421457294638530620457592298805246897388615611492619886478398281125806450280558463726656862336542658436744487860209773678588041692471976900846994352875279935502440484380314693723212557490236443323741173486868627000038776460321900588347213202251185127769215026274249071036539670710824200979674201959395978035161547290197252719285437572019804371339982254364233905203584815976959711325692621190116763251991218595622779211336782185208406608031438118831461678713505696031997822400077166471971335282457029416732349298890802272058165544295446089779413684190142591044850801654348101891527616056670941837274183275940084151480432376024185870108962112370486990730646902717883828033090479138173539671212881457104552988508519217625152123917093114864883106526295515017002951062756315513922497822666466199331197949106515547245395067276343364509140469078591324177074273933296958617605922090320851038377082467224373347191528645074575727994709464067790302788398893364053934804272877478846812717808547678493489325186182062164013537224219225518518981486388374443002544053054006990732783267884405002506581079965217652373193544149239163428185946371387409744104041971151229591144789436187256054272506166905286070501018174558051494958854918151871072599262671132708086416834868030523863622042442402334619039739901694509462870775218233561619762704019046912061906687082989162362199842977446538842660768119118469323187886027013961486566918110186288844457179958592914290447522115484346742760284651573558338525966946526649341345855411714126545476401732510083597932449640297718897749039316028779213336680981740850781293096758295762270207443785036256153033176738809330565507201239101438633973291858258311323339801038728404228980285612861998322363015311846809471764148801512089027737438670652225523702919126525377160685789532226822680336529848683674681297061202198817984547504485875179085513596829491310918255357856515743567976696943707947235403631232422913653745238610955881917774723380434032231019618835633779853126628545267590784987558180109742983892923731703605767589769479248048780055818190474256081198493870189907165459522711698213622355947038530567950622709168791993465992942599592270782085484523029451727357949855520794638412951181392407404161899750994838115543652228317271590508771715586615279433109688081504062011180875256653147230911395635699864930119481861833364886374922989512831957509182734264590494706149126630272379979464027505284671859310272995700923435846025705471396880817907551568062373115718525953005967102542295392515300562345469277014781149679992189900159833943114878670202064365423361259072398605006118877516913890340376878483626604302082140687485662255643859365693336925072734325861374970692437922898331526683670548618549515187692734741876182714002351811570795868606944917970809345418921849818715797908519666864065444795146714512000274152081700806119170783607365591140059732702426760970806848832872255204495448872589852518616615986771984467341930898640503596215466661624011667758174264407815005028834117312267836189741184871451242344797655331736862869657441253053161726112460596712786354349479555310326105289970976093661597554898336971728945086343222927092326310230906783671545022769859151899513161006308100374865849128675936563052104479727723585274716718498112851388936059116005776601318084673566632033907591595203337120088655530435599370907817231452986957085540926464456097240219092997416555570240943194727858011935288375402420874048612650540727901598393062082508845155940554968496548095193155419316947113968863843079025645406712307143341239969319406990106191818586950350584576566162674084916914791026186555722530614766946472923780194865262899045792635408848935833977972966017781805618722489622778396806373443895923191487938726678049037237690837917743572705955460864049879315622037922995788959679531863579324442995662874281888107334964475956263136439259850731242603442947601238579182267214347652716842138931680548155894464649857429078820260988042845199868040748005895664155954729132112856438925113272608322713947458236810550491152575276842989263693800659949222510751943639305128292625078366371094170782532557916049045911674715921626079357078708881027528965757866278328934798376672339928683919623041946426400902365894699852267893141032957110543524225772044304864325983608685342296317780579473869275359650426696872292371307631214113113155648979926120635894354348854026762155436025579724941182239744021570845176564018041887531026809715484572906966235261287258766771910822769752376430056875475533972760297982690354701640706914050174729843355269464471574089314060736475420461023185144206366968672711467612723887945662879187826721836992147274939027599320439756971156075469333420346364653026652001238717589776614023854255656981437919301928033289935536671926469340712485813565399057986262075089816040128091110488963629001036431906783164700645579429375296938230358012128059061856052566914673573963459112863195042600339474924440093486162822852656767360332585770929738561883351298073963373690002698527738083295131347353922982710936308225076294680984590655508801333207658555292406528413986566136513170344057177764684861411509634260719306583256607280589971194647423601652260818795767788041117632449523496438775673752349513326474656146371838542766784096170795396659024221575310764277745051007560370476650752214969591265615800450447445929535303724860186447938129293244995629449785999313106850203358844036555072283417963746716439434586553771520097156654802101029745837098876682194190064997581708821700969442856798863826095843377804254357112334100691533816919241241616733570416369349508535895330989398147646968243909057740683839668960516011669754749963905022854321327640797430962507735970447040204823544110265591187126348899792888696138549884707870220640471864348240346854900233452491311525399376711901248859396319940808783929425619718960021212763269838662502416339965657646305827073520270277666397982078782088006674464835338392450509420235181677236014449709136517638300647839820684792169564854379156045831169016689565057193576453611810336790524161881688034098709617451217377611763247021761315680721211590447424534265125091830031762981642546608241568473317746239743268688079409918967338113007203616940761025152251951755983745928149349137729145938743845236765973058052629884315468398155891281224568059624212378181486997562060955852604735187273327370661647328744014716954698021999596070071859014175552016258535174181709820778207302827296407647510807061057678361055396019619774929304808295230353204649171878659001964293890301428292430571820778667438116084600574002459778018999448147456513865308179958640558886059544657840005239617592834040113927572471307495426265615289955078998819371720347492876365590830606878356901314281116001301753343973566722002686955180443351085680413430544957377370501592641547893512527861402807000807261664851068812761229322220594947538886750628627469138398634814140441009580302305281726994030889682456151932633234349445653968167715965142767192155659515207819413802986938170124403532170625984249888288196293238749303235976542166433727165431947528819725754140178874306323237505090440716173900467452752429751731577198057255253657957608966990835637213052300100863518934339899471753936721569670879470287541509625299596078453339540577412606817647385353742150403372978250000148913065215883385766266688303475320292953831569887373735945676426831602984347930734046624731529655886918541807457764090964517992140177887996333218204698720570586844041643751710886908456720003304596009510212214958613110594605194958655995492149125514043820092764601518531388098850823071119371747520590866284351499111837153310618381019989485556169910076566173858442874503114109248691660359839062195704372276219751674796508574728494626222576191345721223784092361262504570419714878333499196304563549568064675046724322080104250962522477235625395319807488470027074175875772096195454422945413293931807368740142273237737676022313124131633430841174155215273151760295210383904144057536672872589432546382044776735875261650572634297134461016215570758309358228896820398365160453278624508327982178066551121902246589019070447878987396229639187607320421992072878292108603817948739925358818604017289700939777744838363150145915788405918766533984917839384771677884899019882782345871628992112435352842600000167575177611329182623642987869247268028960181883721183078032236576105176847013612328347053714943284376635316193629323169412605940403091051170265204344508737649038711254916592359710170548787154195313899046610023092414827200157168422150166452822444572753302935752391276088218922998203893963365784863514661599563747296753090672903073296390295444519274782719653991206387140923732987201478718951029135668843647935318147102268560377583410941517385938125250317457495917722553079365286250738583043488120691919962010981915329540380051603623654042575886355075110510960498064774275810576798054678626125497047990811061984018617080239243799718929951325153563473807726366881106278447710528276020989128421418267344341235145350721263623334082965224765472359677225602953742856251221000643802245958405748540898802918609296790124974025315229292869848239089170434579251506390050358365057036176466139705854070805676976425887044679825948376301595526494116401469613632862991060729862134109225768123339328555427498914144855726828206195619642696001833080120528613267525583388961662673215807015802178635145118661898959494671881135154632189280008182698042658818698989800535851755822590850371896725819066209624234262513118900444886732886500085573302969610723904282656848327355009100972009976841769119921238251286567945283269883852062556753014494653883106758085484130547571861644907344214991035979844254597772491817158085331203464099869719804334257368012435710366010206832449218795553196176370805649113749527927080232606203424736533662937435652077198377796169083805251175877994570280798919838705830321503157089938661305657540226847280774822122149779214891257618607590045647203193829963749522728067788519372074496539378867751117861696024958380643111180308686089000325954086288007941883434853312366923623089110365595650508674172642357569681956605581193050784977098139279975203709397033738070303669786858503975006026003601701108972042993917214870426636308001225752918968947638886985773897053829926619112490073995816790359022487473054686284115766423281128393136056868683680540127110349782740421180739312933832030297604990954316083314253126894009441900559087904654045078179132086819173470803972175706873703088522528979845730030957961833180475987618555633338521473463173452417398928454525951435832673396687228019915361092177532652146754335308770663036800858118518466058043346327813274069359287546660952062204494435460279786998957480129638910542593102876146924567450208274427430707717399239079775759018525752102827569943318537442010849544908128333340979033715699680700692986741574052418420424221709868393265897382286624708459608404560286511418166187411006673221094061278361234845996064687289356917207790879090464025880717467365092280618325017760714037008339647485158258885031542163960387662929817869259386478518974924071575193919375133245825926437363058416313484670272784342735205145937514889425550822965203059638489810168081907578107628419230619720482489277550691682914066828029582925280142404520096869992215887720356443935711071303503876952092815291906150638932598665723869545686176307623275372430156683197565253596632809133100855910115489691687174151263978248913155866472785765758998451224721913802628279298816095593144592943707448053009830223819523880347755271266577639857886790374068271600300957164803132149965219474355728106603436620120072274615206231984017033768506445714678486674247408121547555319005352066057482736466346077682316610873414458801243724056149520189624642375497307536732652408201546798773278793505640261589142373408839118449525889236639133636228847822621933650855411215954173207032720678143843982891099742448735400328231755065825251944078532218224452891359482067561932924482201378393557696754016351678925070384041000154093247286726394436599853346935737866575394582064265045266033854549732690019954180533303017422912324415676023516346238322475066034665127170628220512904031680401873784699841012045573098954116750890962442543258889093165486559176708599367064838927926256750897223489847735340549973554529161005057731510688912511074065160706207979011194698224279105813684428050682744574758140008068842083574596389464784267653391446855740583347045016705209909716787001148529807595267186985078047105008404194182034236164803324529571560160040403144382488337398725625788800427031714235276059133059021911784381796202425446558087380932691570675842795253763815281092253769837939324984739986036380715976485354567891221954360012152997763612177090168403922499874720348996744954761369165959521448586075252897954079800553002787557505951418560914955472161937890132327732833848913728639186052342463584877444644251259330202430028072574830067168041952002033266747256815864781156975492767423178096503711714369752234369131677158813914757715002870929945896867683006766479728714325886234397998193549620567959626351184123585529021394403185585692695464569678589258394897043210583598060167358501488537456493593435707917420110305235887223667292652074297214930273290102192415021156826529934806412393388728942453086559135884366126580636559905074296044484981887734133994921423179726490409637285250207515400469779611560130285169364966218571248665386785610592395891277517135574687295345010311680101867590769878321483968730843594528791161186291036289197483354028494706336003581836255533205717011783310641142937565615312834340661721319507322716863993621946286685266442800589591257440057985912625771932265213214058258369067949025239006356125818786247021946149766959197103567538593478930746774047678167932231159481364517196636318627858301984216483247920772780196604346095079894348738911267492194798363527931279222755375556896106979355680334448775466759185977502613697978956651197727790416012448946142140540340031176474351764952255020725289399681353427454875465240709212121426705209022197661387726798694071215224249385641306629172536973520053363925052566560085870214130644572475514921328743165123558600493316886091904710523366135947824525753953261048180160187998259567433807240500175770234329648792666175884283884903667912363839865561124244356239835993645511580128696345784398316854387554686337584581722592083789214175959964002629543883916989139736740678610165844331012789539999872853056569557163018291969971780071808276700812125170671168945299310963865674760010410662272580935839028005785507962178767173408962303287222332158363737544747943027061642676331623571562642615692377980520296327641844998763437689609090704109835888799948078691898161174249635783745342539648877352587662832394006743134458432886823576431264826591314378315795536728133179022761663101523226689519434435347467581907248144281439689662522655585995195785791037922796538528394703785237437247895287111297493785447614903020439078440227208149840570931138693378601536331392320279513519926668278835574194242705850366777348142436775357344117578248882691380898231860419986188852708185715200946147506286498282554874463006822039267810006056988868978736682757847001910068853616937451490608777094897870277073499071083845092241528936608405783446229261526133688233191267789532886501358053302455345141847290158614674617293822434444013360768621162028185903587447556103574067260102262360565978030109204952668495702495755614363355082691818446825934011709136158831094033961807401268514161208338045104071746669465847211869762279769785451621858882453234221312336343380824068741318714863866396275538602536923673345100592483325015861677041982628561568267503404698400017787365350799886658877399331121891588133003777130675965133601737238547538854830552047303284813419902259331056422427426884332454252181107176120366988948152344673442330547875674272342876638383227822684583217359616725464228181229790614936602532112075212435096517955778878058635448788769226986916330142809287254540277423584663001683815172816283646407288093858746240422276457509192095001998622436745595942295400513264573659069348033695255008202185591391676445727538697533561257819955488039683346533538482824201684969196108488168401098873116910970698821562520828810147147031444643734872594306450461085467782054841065521621098069150372655601933478857392785374452359826221787486429042062212059584248957298949456767606815275552785112146769225408160808205477759748376482158537765944170735791743414437682502536367914523731623384618966064189047654652651995769596385102899401767930730650545941934379112310834965597689138961469847693421981211344121109990876841795533077192220075108671119612464411822626285428437094302263182245690215985079867351985962100881270243251906564971705849343886456924422160699878297932541290729130862994124306327286396476525887666656680377636045920102058183615693679144946368933151830493494486251016023555817179627407283513702040193142886323160956371320836522528656910284367435742212292248454898282862098433741260589919256380777028380747840712721309206211381448465670862442961054894200187353595730448972708909032986577602799593554941852196024090239003988358226557556286259675328538111843989846749813306227003408568349887433091241441351201769462723515760346570411438692166419598462799665715976149675899157566282285424365965609878540578478446181466284127191006558353617950479328498874414207348389824000717574063993706133162936954917420669046765214733424672868623718541910835124462201768600848430630202532529991566792242121462486029576105407130116804463380691225597387331614260224380492717220500086664800869685618318242101824239433460102651884768448725712080019342608161023798511845691875925442678234559836778556806368225249135651882001114902602387272901413666670047883251137925641176664029516600370674481827839808270057525059311520759747399282192492464794776780711761934313534772554487995657325713219735251905365976790038968353848949328967331570431681522073172498625332830728058257963504212751015050314556015004704160836856638741793193592674373073842093651686374069128671032113549658302596068237871086479358836352927038841553243056948046688754887237822326833236696730887712927915771030390382183520936786356915427018147345330373182957521405759768558365778823890858369990686456141150175925092487158643469834856838021437257303716744744591163668406275143616380063186603917856557453802425468412374507029080992258317094888605912611020436467529191236531493152249646418942556343891138533252146643079872437679937579518265208647159206651680169907821082741369341850622988899667628206107857517753375724693305727740058533003957459169829405471667508092058135205027049752795332757064797891764799718874477637146389084766109969841042895370075134479356559905749998077822205615355362258138292017703080826762930322631949750864199341229303662391587534262451106089622510841651243973492146481894884898643973797963721248083111180379538143682816822912274350832655292935991517455585159985658442366326692122054724699062353679529918911953529883525421635942842277327183069357280400358070349474817192040793987172025741402695065531080507577128560105756582883541270312918904063259578097195988298712092783110949853331702403109433197551050617736828106750365110311658551501275872082780607329020595359802153777026066528966226218045826472350340530359620587016668614464908404626585562896417199961216206428752441820422363862608052016693603390127793834154298710214017285919446233424914315072290437752090250091955738032103907413652298970132331044636501068738286831046913025853893755726032025374076413985866562764913195820647868963672484650034660181440645633536700795667274048508854597517277566323165822851801472756886914071106238684275184133688208253158917462605060747893164198166722911116166250542288171976116985008282718556705709065833376762557666652024570509601151231732883386153340139362591539904315554757041935345629799495505461492885467752486328942940042925328384373299509964460845959930229588193087799045571832453348539700825271365726691889037051442336014267074732214851143461909833188780898903853989439141046964964114252975702238190375922167114085211447857499802393235221145450864601251001267590804636160982442356765596927329565527701594173612906352104084043781565051288287310572509257148957374390699639107444027088420141454628625664421551783026989767544870427880656157440988880749182946744769222067688249224003252268545456492351862173011970618385359892785968429572539961415584126780157282855929518950058541917311458395741031498266926917790256428180543838671139878418015366904792980233918640462945839248065571701843005604793803475061912773376532143706667424220239954740350269008291960525843445272898733985374657355823124966304150915408311470781719848975549422266695397396915224730537337800880402923742024467624405511918408009728617243167430792749307237935023446656260355496065122725590644728059468319689941253759889055262302625925096377713588830324028025323074193457838182007555227015454660475455274563525413981409731194207918111119155164052470562240174455974120189448639532100206796793143560889130437275115365496716979648903677523541048454922764206865037512697241126136406834930774558140027769657399674135960017793710608161598692453874188090890355918220219997247850361552262732931494629983021764016347084956039281896829629825144041079731494064441493263145467920969564206061738124952816809199186133791961551253958952558376867469375616773500700640430156826225742593822492806635944396913449485428483386694248127723994207017485590362724016802234221320660645537901426432208946927602895130268759833942821032620153104190239587375820486042087779469177138716624000961829295515752943295321094863618186165814199660449388072493376130418220915659434866033666308936584233178492127263138999191793511170881185747722096036646768211074896420471520596211752387919626166140815722647355720552396396485491819467114257826876735869353059335419147092139398084546672296080838990446121266303628836289609004453343338013662943382990324351776628190800629265875661164479038093659057241509823900632170581294205076713702152155669856871043317324533677565011340770147320196355490378980318052813874922524861191686291739264966424981877445851396707928855105222241361186522428527481089583783446719061109042382257534381377700455842401546325849775756524491874372384893709437094452546361202579954082396009948194147075947071096346252664703535584771514933156123221684942555130812189289765862282266446992445669726324343004718184151592230867791499866593299976204192481441817270367543102816769321258612100049623904464047016781673318360674454816637484948263998115691789745114040757935092233574616637759584861852824968351497696671024394618875040166036847841875731290424419548225729460002997099294672860260020489956396983511191979038624668335250298278676729811338986445597234806011201169576390010733616350278092930298044274451314382962032992030693470320168507132062991655752912687982967670494670414498458105777746750109891227880785562223414834110796388149852696835293066862187534356870543819879045713317798389913814632453166133733636540931621804980347352008116151773880176163523570104626617214627051582295967423793278767582917467408129740790839905668793798647469081550017327031143828670267766195998380246141929381987594261046547364963079412784830047711517608097641082448978094509460079370169456274568665289988473382537293631110342798112012261905108229384743995005523665119289869749210399576810651039045996627046389327349966854076352765222285696374355704835515804032191263804490991973701932711115439742021397689746614934740519620496580177782342526600779850175410788611404832274306242715744211758131567041840419413319991389362830754230275236857296854037645091424364670066630044998061889834474483606930900887645146207986838033811406625796052187465019350759066226589908819586628681178419401538635271566579575029170922730809362295618800181274270330074342053618529982065203392679177763331044053506295517694535451522086063476551197293562511432993156389609620206944703667915298037417803629263136116626189906576005448298390809381154441057188239670576917690340406196644092020408723585285867112190138923977026162401154452876817499881388224297565722488393321731643501281221016924759093222530822807769199794301798581197256530150152064769558590639542370575904805447252803620012418330882112043024746622464278358654213611951791483407898344550776833616701420088162085877242319907802110651405473803483923462482695115552894323577767270131126591684950295350202806490928041389011220818105056055542672796463909798046241690152877448935480988574460532312103254237502378103397820625484450144560621925267523295021652842110922950003774645527297274027042558267966472109861264411047954855151467975016629897146045921754717017544739491306013186082656227941189554756675949625558253915146964940608004366217068094437261921340499186148328709253051123294602641700949270978924720990116824860998454311539125756809203739402465944832990004784888557042253523094318330324269120432367127969692222041036818375438256474226552025134471897710470384909997026661479737158974365572989666664964595617962005827549370409181598229125079432028176555218287929065213406595172633691040164582700659135886605432361156768029571376246077450770380665822201594050532563682457882872748473032998525776186876494798170259872744204741108668024083340208292661204604592667201245440637553487004053326621772289694674269654898183794559574268145403790016188367781477726237333611191251022907593527687102903352345428909940236940416309984881697697020850902609562830103759564266272336335871125251676933793166898490256020996945255672501673599151975180758608647928595232346583280858810890525460583932022287121182843833952871711037994289664956853731453087431056186156791351889593984052601737116311544179879569073791624092922345700901605508135008025078025613106549505529296568757375486267229599945906056196702279307764807250263296374298346920293875662986253289839343642501559762555278525539871479257316662309195992096525433016221123921853921302613012069697697168632914384719556649484156227411702599996553431405111468500041560110116565642302555147768601680408982379819913703818274974708202405595637369692964800749480462632383432062525282857858757256791075168111799073197869903667338387597100187110249555550796548451443310049959655311058647994797467618162213530931816010566324910331503365696328584834217801773237936683450713804866291924737481223974367763609231597725566596307022048424130524844442070449343270018604364991510759634267240406459455926492565653288014220244692863966880541552297752617270337865192402708744944650284016910135892480643293834592434930117389731929139165108329058224989657698605987124790215139677854704567680164429796537444950890178001803652637182023688309311177197645303679124804284386045629581642792378495916808772394647079070830070343541577311942009011666725360105873773942071239489407117409077087771248478391708500428332795006786041650471607804414459068272705472010307873602069689583978210618133157116265125125020957758660676263599558326332306910278904622560622221411437948954944131612810073489407936220049735961528282716147833267325683308744256888694301268709979435779482810815891316907568234917689374419999978710403464742098113195017960657082216635108078592210413713132768663742020752581872551872737535935480895272018249217044283906562256723432319006592019179733967277754456025849374528465967701319520994375921946619445127139365022002013684925370324459782719984977191363504144262189179837331517753070118656864174064724224506850547578977512984460154519457300283401132326975902656883636625017789853947242495468551356945948615101976966712603518213687556044146677054284522411366029444944092978609662498945453038382829866232294874939670569743063419380496025798430482334739311010409797770483138087269819821704587556911027837865318595714649880041976110881947265131675231564252860977360523971096191692264906340543340913985614088803500803697124693186545498552263120942732494031092912908912499896078771116844762580782543987160505253758891444744803442061665352373585209538871733133320647991729018995934667224725478660823049999705321546899528014725430797400375956175041470726125658082720804993439545798233269030967665363281023341417137808917515548349022044228650751521606194255902109306514687740106822574532371809790973617995518965994739249740999593044631339648699947754277680234522732350418065118878667041142911148003118026706321313336402188114090862626655310170509089712255931295675021469152444275619387678466396313875283632031515020551264838082178977689215731981459927157705252799729721157335782277667983774960553720087732000987125273898875658042745909847279967015674864874780983845478547445484086087597579304169987719160910726637669044718828933797904724415689105993600852833693794186754325283400140373511927840969088982928701283482386681987689827660266646218812770145787196390893073425445610059274440146137368868090013113571323900318690618975246392392810659738276284090917490133854064247241723052993190039815122977815659794972962921010414185559983372955227397398278802962637120286082395668808542690952623328407835208363339447700174393436634219997633110923253582501430819315465593187505436616517600275134850018647003835869150386009997255232029801568770454055034999384799964014139088658536127414741055304839200163855186506790974347259742102354329728761552009187047759433436180738936909985226677808347421003852184867196996389842968510648726208065516587160492964280320670779607839178497138338374905601117536468137700676934972449724126755670664938852426017916189778341466599704613543363724505240802364439868950955529768084325758105915853737449902346377824168127767556774590007556673064889035049990684877890086832965968639864538615187658053489031168182349086961979679902254182720915753646577451581402222749421283216058134352531649070475731512064133444211051882371743390578273332348171628110711154216801807604464480890852368414931210347584134682334670514734977126791207444164467616881584674248176271581761232667369560429699752530439990452942115854888336539670121486405200491605617926633051883189181242543455010886692023717680368770116344741668308245266460582128830483825628701078581729382329396557872218089761836080304153968623628521476188045688953590143149439809574916004765271733633734003045452493928638734618101874799051024063418497751196654498926514089670247813488261860183316902183288979776452264381569994221383110328194803378274847853729244815107477494935734712345307198435360668754816526238957676293966132400381770842512115747136613240316734801369179373355793361325461066159616399994451412661033807652285572992878851660659331718548622982574636069992869411836115191423428916186260714827190005253265863632987098781156143983414606169267852207513683369404970192103549318725728891700459974239944687814120166048129588951306889666468393641631925496606601936161969085431207795664548699850159642675719392951195702528091882129860960827766049368768029228230456244964284095171095920830438365410916042151763120241378001023834337320130496370304332886880087712398347266218944636762727164337706654070820832225754574965473945862512050755464692315377859085304130335164207148006536543354459358778753085745550042526544191965024657030476287417872132476433232446726456502821107718599572271057362620938856506293710397469726864453580905664967003468953718428537097423685536643465662951668917208622507090681079560753886345929524618094170320815261567828571169054504381190025773669760143251085983593587630482784634494399260515892890486378466520422574820700928723329824436593997324504884284409299309250273540891720859636870439347506204896874030816051823604391129361381716216377754546382236118035855098262280387613196310798988886846920218362961805235940894569487396886958168272827924313778052239359742552576721429682525146137458769946577017619626421384237062714347553730565457850154301974888475958254372504953153937738234540438772336732052471306369675285521525973744810805467556912258375597966557016086149392271506514229941713826885068710123402583940832731633997848842630268066062226500605599199202527672667654286078061179402135749471920425320271376310535004623932436828291867309128091593535552032285370197569670699056532050990472350900592975325866083114644242027135647714011981032778928032372551923928941452802101577450862385926521593328800521517865145173514974147840800813122716099813115346288754304071200288907768979573453292174407213726770223553136535185446531389379473726417921990115100217500499081605338186718478296628794141350086481823589609126285336121209834161966817381476494331805127502655572165883951647562779736472168045916863792617648099700071228115212160410396562737423753899695256157723464146428709468982230540778711619289902597994459099593047762847436199060488502784940596390424097854179300824123876823950270567446936563400481304313330011332311068645522731127152694065501026319206065127641612276986277491159701585135015763566580097293217799590517452673859866312717439118061445640788110492222668449272203380366332600731464589969968920249763796942575512420575660205573667653095400164526564348202438230951412847813599936386108490351671977852096516957970799188952065458193220550643552156810869730296025820848552461632584551309304728910076454790422041261238188233016867850166991688717514445737913182531699898149242829314672001908757196420882803014610815176941412684608465734922476279763536546496938389102673358714741864463507499851418861312522211621782746942562098953766359687316887301014418381570619073642475530957851418114561708035635325026846965534443638608575302487481521267802029267797617410735056634590670635135208584161532895574320017961842609534166878263413032583353159832684658165009274827341663805700820155931126775754476944999877886735919574584673938060193116411836982016451274627651430299762820400253907005671935205147061037834612572217502836775582806121794914625192941459772937269710084918264735317630426282434825598475429322557350413544464840759792605249637925323132498816289406404563649900393873225013767997902378549612344669454560424862262607348655351985886305928541337216311566442393485143099062940144008085166540108516759555626881183196394548844136340133386109184512731470235940411903950184598644435913455600441041595974243602768930485005448804330477510934088897795487874416641152469677753110341128645231397723253881182473640582187984687208550040346929086990992922250282054103617792239221941563137927345814087066923122594358788902642813666358485345396222364234900916396208404899839657023763059460943580412263785901726186612299692943695767810303265508992051546151317362902073774422590738563077064908169196667320788010561631102431537035968556059210808267377775917081780496237349082021681926207983949797203467456702644187467745509665283222228843471873041501325226648312897067133968737857389499745945206902853268581830129473590457075016494050265859896411075624972891341946090721461964254959006850304638763723810032151604827533216874049830275415707816341845947927431828328494514949117081341820339665606822176026340022243801568996067007479973978041469288672112998399819431565273624848108476620421502553349748693113496467581587890201981594170155715687866256443539891718845938879708056899335545093053755747199864897209606177646326229048847269235625685247167893754908856939882385614156764064715231471482129198579056586697466236460408723695423034266320278892470293202883722527300356187660706930072874279203177511523839809547295061832923902135808226958467918079610181890663298491216549178099790187706159150706253168290315744877175288100282709809706861748862202042848956775638102977983499527521829087472103674536329670379315676623224978894864338905964771346132005681703313349723183652896355402439226108058399235365265020622333210602895642883258274369129139772621993036934310570876997819070184324617067062357749936229100400979760010270746339063644549711816633280228508640206233935921816473127763344171777826245477469799438858159862566117554647745404319954141876230880074708771578311393824337422407340963336284289298302154005761718818574745374975648096642652357350587165655900700815032331509775476822725261578658711591696876234653481638567515144527856983467920468051793860704751884865033267977144886726380305461769905816823981941104640282028652526475219727407583939139572090174411569047634356185342174278955440788533493692766672879638315974299942396651108695173424077612220758222333192156081994747127817662862887618335867178267153967950086133065785187326169649635075671852339727321042655122915982279796385515773629880457601118694961761139839260082789666536563294718578557358552986297018617071105243374581092530417052448576111291234284484131563897251069414070385571496369726622475061784472031245541644931487152667300004803628555844389815569098225053190181181653045167766590275865631540271095490077415190782761856441381554995973983131047139154809125118292695987216674517362840304403909988790418787182238305005822796777636065106691406339008674538706813077354052705755423841630719644547185480044368379184278900877379650315315679312647714376775000578449035619468786043054679409259129326226048205807891784839715061385098564770251489150481159225373104606065251090818685293148966132747512482204097141960300808184422345574556703767231165278137777973517296934526650855447446625341205894508466385380843088644373375889877665527841373054268421312369992006333440823139254479476839694939093737648483358903526762316983689462560974244483396676037140174546726355686323177605557417508280027569680833747866449595739918515263362993027208117790199102081548744548615387589800086276025956443963045381947469859217594381066996835227356491157307014838387237994463998428551792887187568539758633384869196741305405266371563414983936773091849098099605687026392981309585650620759385286076712702045924693403616904278667354190131073557975879431132962653212793479294607896377153396753361186180452338901865641246645243585786447177629707500043500899000482177552383726132917022641875898186666197269694690295622162253519077727040230694307009165621329987258778941153846474030608126227331600988746442322830642833506378918349990472696455975621173872765548726664990138423340922216749217484391218281110136722626769948523729316233848162325830813840350394377451128118482242239859871795890703470336839422711892194026273785837842211480894382195746506032876660863326627350540494492894048566369693534097839467969516892336569239633930901220642400820377219051896414948992954870609868155683821074459669075645918629901259249673020873490513778535639905545682042562589587025707246040739928648188701739098336160809048346834019519689198686993067914340742699233567226348790826664135520481004185654537088847689265081458018201612147748437047187276249262184123186193861025404412480818816696808457957766982222716050230561464567721445608128399685413610215536575346734405684180359281293191589823057599499295982514449145490337624289763288780518632747102186938291800518985396845318853133692036199667308840268458710204505806699736654494519637562641719492783963621368635673666608737006869618654010466360840068220883418182065295242022796130670306299252864090137797915296953512893107464064081471073230744977335814872193767168478488502676007709610087200791712059359026302430336957640087334925231339000256261009806873175367019670243234105580089262744339432332340628718560857144987554780723165474068117891092267683928105085499347867957848670685706040042528710093766836326936761142189203120746728161572441868883727618617176457476554452020208046933714639055714648247107152351878325401365994864845177342209485711807714898932929983136236175851496490679037030479171889963607862784046109627824650720601915384842360726180076509017042521770252416547521341598237526195996587810229637033284601622691330223964247185039535755187130845213023508011743236158769641412051664884242556773714736342035113852384907136853603025712502116420027060378036461475039343464133569873642962191904327915987704378726624983771550435547926019532025427476851176000629193506419503930765861751274239135929742309699055089769778610845898792776351113851867004714385940816458311763843882903851430726755147945023539244195470657570077128884880422089446450770539810150341160418061994977569222337981189738810706947323908985797384604687395920903024010636999466500621267303402199508531285853205932155048374323108089161239544198700555497277893459260494516080361234024726218668806393505200375637480762507534047237597471927182762041717218308467844082275933967173012673085165035738279665013344289747623244336858140653965447572354654680583095639376049168632728940674211717432761228012691924499516897280961635174958254094756719307160016641898034678514407415937957971638580813958486589865602017265768591135698315502216685789572749442233809367970953944499956131721947753430966726455152450456821649864857923009943676971081439076981527401618915964510879505866785403643844908704649884056938303278888159396058103329634273568311565150333661107992328794323090822107892121090984042651591428725667654989385150292792743679855670989663293806126094779389222416245799660516024532098944784815629450752914953785193271219776674081236087167772271833019440049057608206811256962984553150201932627233228551964469199642665767386669005720721019961403760952459368257855038491088866846011033446290552710349812783653015114297561313631475085754052849350352683803335268482206111831370385257248281831402532065373213503392041374393128739067057824751467311360963240408053468906070063428781686371711533705758208779692564066377811271517768038714379364707482349355086630872920627613384021942687710420285527582911881496138779092247598722920494848100402585998889490602806759113384341474540530316648011864666212980021801098297452033980486592816257262369915588687420048002142647801994627636632255768020627326978196546146865820511818489080877321669935309985025307322841181152032610500141493056546019820770959256626382297875764677114092739787888830269845316022094956088306367530682587401342293753266211087661742393770469016609206465197658290585485617926140995156063042767542910905329996702841656110310935945545093204576301244035208175371232662281126522053844468130539463231526150575975896213589454888037288844483697888930966868263933134036221444400717075517718084617927284146920470992351065122665606491549132339411634413193031969697922366229972966854214218612025993893889880092685896280451785827222719266400223697344018294335418003281357984562869904264798523741379368939393767645076682648724038918079084614801671143009535011994347911793577120580145558649758199962691984907594648358960298456620189108213086508626926269220410713810618066904195595148011448103077500399613676730446598233031259495682861510935450216989684326999672886004236508509775841835388414326189620025347060540930577300347132635150214208711242005099236111438186320067178748283128636547481068973208115685129630022377658469800879017580485461944727571673057848529073745459299211095350597106108605569310084760632282790426228325935247090703928019904754306193946427413544535183435928806030483076755032093698408572121179738919953407711922668397287440386797691040102697472560395314984581867874625423812874175975650631828329818293675019048271180253808359922754615889772010891625179422307959592945650823041519900039218503219365509332598222912208294126006719726839254375207202464917794471544235566224066433513895550313412685458490676871340148060362753482207024878057690054270480336544470719089196428377676528248803150888249979939360085775225081475498037793016706269960902472422727245572358359663061249795947967855447281988341288007398884472549785141801669322525471637589776287053340487662391494016327838834690312693478767300234119317193549337439786229332462546967066490095148503140123824995131300365069472106895529853674115583993430524258394549625308357971612158854305255679349242717974231230378804188000605323655827486239856925473441863584804640694958821064360965955404701934609554999556820620834841058842063938641700246429929689427704914166245658009190344999523863502698400729380021386729771542575278618761667603667568346033310150108977290636779888245939467477595606819370459233490647960161411837609516742728969775009904796148129200464347105981242434202592597379039197311566870512045931148516690663090582022267464482773949860987464102054010142946768871070524768205755886953542954361806614495093121203331494002798599910169090478445849771037985325875656102493841732709155138249098824783200384125596590836496951554952593490178769285506145650605745059370175595917847109401681858250504363984285249886313802121730538228531910102756170162762191397583288264420648116648822452336652953311060866786435088008193127647275006455492407110247887367766924285523699839879669199699237006884461277908244717367181562865207947472271800395795712460333288061493747198510167526742593739596122762511501954826464136255123832935647517213148828722929499319617002694499081080212723831869193374723131082494613081464586666680859259834079211176572976319198757178321659071914600759265190264335990015003019722629328357870744170836691790701159234413940647798167370391673308253713529242828305412437451328436962396123386840450504272502396836291515391015116283340948045365117649421434053291250378179804973806644681574410159720366618673805469876251999045747299698632689868256509259634086577341103810306364473652871031785243532946049911007284342642942970235749419938670039879559432895100452058894849287306375271311303126606618462661133654661302188251605658792395067454941719906531835652164546144583699919101267059542427670467559519438774952865919609796716140188111238660497414948953255530413414129573590221415778395429725572828023132180990985109814542175438169773025156116262281335315825315999144104046833819479101023713241997013255548367342668636046427702304347258652042755874349125999397955117128630254773393964392796109305721141602466832466689042181597430630370061439473554384875353151778215305211830021603578714165593500815521041805527109408168560113404403336965825087747782554070364404674835261846216101122167627879507296268262669694569857945148795079243094500890407792726348568193887684790580988758994210261071817821750377688627743540378289935987167976913419482768811799699754253895788753400417728156707546080955263007399961015424007553478631343352782851819168150212952669921562047261466190815642961833571969223443520200604222318753767891573375109116426394167890581360851333805774085771862538911307195526315797955981875565719668436582136394096806665621958979617498254566362550719949235780936922792371239577441634204192663539430413677419089698669441428191424076578499759162841261167589362566360713804732256645884771190720967016455957267733935788393897232166301844908589639803213186057318205531937535607986451372440468830774894667150823596638305196051511652047362296483219447772204162123530137218105979427765393068609740052855369155853257749545412243919279941414565662317690609443958455220581871571705814937053204911226067386429078276236892212108490200547413169034020130128678027809748041027302124780827397752937056357321374717049274076655309389456758132363785623486142862944092857523253196240497676011801139504953588087627105069572989375952823835427557945760061471820925552733053051563439415782879760846820015312575076101838276758755781709431458465376994035302761638313442856858757625296430939853894227081059011160991099061931006192756626684240148015655940390750571367774636242879421430111612395357228456999223743224896902954272806957214211810945195997608760490520080999799391613887714915833866116350396993189030086770803559181216954311203267243620217277098557480440197574652293294011705137443489324011359526801087546416102078277447459772754612844593560528210469707395662541975948005604456229576838466421656981060353246270610296070282290690222173965870220589306512199187497303332053030225003857262082903445276448980977456541195397329980306911617462801572046593231467129714001347891750692409979951670415409751810015028891343193674899755290904532192261162943033188670049754194346276542767700449413659707799380570598980527479204317564490282636807198322314009454223833911023303760589756101120732304429735750113100367319168827727599043888547931372272382829918768156318696660195309154868150606781629678384659926177520595269063751250843008379892365373219921292119333998265158318163896161944541931983817082635773196935614895754892718903657201966650675674360929793332314398917175105340579927665488003312513937820591990287578678356663124683989056620008169099646481180055480770798204088191292551699055698173730553509792419871030375197577644002396760777286756222936739148567702627671326716145135270731702624346391272148162777244317588668004728907982934430909444374498353721459604799666409261343160576399636219350098230536513838392064222540067650336991864710409379816149863384468615427931262822192420456765781710180351934633409467975397348800041411001723518683182979216161668215133196012597606935399416062860696792695094981007230894971547715146517589181923884865692386958754874210913903772955561058713423761004644756377283409213769716865826162269969840696043378747349699799994333288022547307940262294413786036590710441035875026223314326661200865681744568251831102771992889281211586974552696062192665020216878194477902783287406992498496756482774284638465069916086771006200640813436548921506286771819415037721283452592258987454565629821038824878708239560195896946425424725991474661569821718828207822789115686632787449205778338051787881965149250415039543068287717111623049599097720910431684908027430604472893637358492427421205724207291333802980365126893416088288341059612283290800855800062588285474169040682436781177863836369578165260628842549890352889297460263221283382143306310868296664879571473202182984338830935378072443377496297926719548549441680743844376008127865639496808705394122005255797660462811177082288985910732151591763271056969158242015533190986185777688261096738359757193906698586072593159811426485562666885800365723815696525490418560210950638646283209493340435259849909886573521900050100924763130043227706611364972801001726717705273403705449869479085867534159989814834437266004266349998382349806275367477055137120334135729569858995209080996886763659735792581769180054341181485132047464042373327051859079839371874855538085366029643215667676139558389905716843587442119469321236870063665356126722982928657672487684839927904035325144135952371937748642437467929483654108095670314711907548071338321018993557542035947051230953754147875346431089064904054139356845194987382755094543413434029442952252463426722041808356479527079489342028452444281828854709761431050116650591813393602108027970170724187723631705735722666064379338734687695445698027516914065215705934068891947386667001379363761553059814425598737160648822951796859073188424105920454704838563641898392842134083357481342274207216811601255173026150402255006383710148232796111664669053300833267227544723027168272938541818643399689307674394172945769925797355792054292527953425892046622596851419790223741021733409652731895606773315847599024129181942123365215046323389900377155343485938176795420689397874100586299500021025321941556016125158003303366764491891350795754844395811073866461516419296867858690722274260431609567170190451268304102339587082420224330484807476097459000014026907847084068095016994648019557349690854721424878492512586277141426685272448940400773324920082136212716408418733092858403262542941370611317142144656705558244235248985526747808686548586713397759136735822141352505143710696038762774318170930592597859182004512905854384126372032530393048904187385708670177467203315253866077452048779505047869637941222215834236687318361856660698873392937814278705010828743686811475424832025392921021880337377602375596961534916667141854005918611901948801206577424862553897706326902283191361103063383077845496657028537789375012271606255955834842356610548788579750415089347870617556253918568711731747285532295136193274404429243510960403091780193805127406650014732965681430964492028405681316952670347031837409795224609837743507063208582937828920447859755485207317195955547201497208003268113459341676467937943346620696713186623892834517898841357566028372850536930835396129916560362263620497051632813932017272196557662652900103328916017404171872329423878069703931917715592498920391066100940505539430800785856148136406010624239283482108477388518113372315360056076880731064649923000211834420850065048481809294476618603965313432845548330411128805663517232428436700280369103716614061227472232828275708550007080014829548856543935014153015367303654200969231760797854749190998240524340192710571208392577386648183703676602943315309011052572836867282248720597654745378899365420071207905736111247608838838415637826321179035951512670212242859493621198132302177504463101667006693091621322196626800801282755109032527712577209861461003837798772877668760363761238487116694271549679259378360502516627230766885502737285273657201485414775721614683832293246967018457525964033969531789958234868096026891589593270483180583027944700730753094418650211159704206239965972712697378099513676332025556120824872876186852053782092605832952719707217238795089944960036810606815057358522943098901593179401301158755001524163391470132056719837959842639117410565643541168475903608286704914648311075985934169159725737457773912431952700758622670042915277337883335432617493978718011796340976203086166398577946678883894915672780513485449074643132696089475703462389341214954268268722101050115349077749913863119156556581186022601712146466260699545546513914709113726826763882811860051439680573620272869995710500397923212718798659274631040450169099584866434409992597145169984419163130676833571233157380821443201639963179732249109472461423013172780648390743463462013494265481789484221728311794463734749214655642504500084766701303367702347822144789329005437020676999171463724195015124568141811202818911059504440472271624048553898382516382450431780963222745228874324043894210357593513199318324823807698025099967606586799899962176466205703792696169855600476028947257809878578542916577999958573364006970056338641705409612529592644108767115864130445023150525193764575870804246679955318249249527811601663448337366741226333639910821646478212403015933110379404544578587805593449712082718909587504291883135728298696205602349092564088231575899107273235895007495487453399710703437610046861610437016504177887045806956312031098755227952283175754233553406597382578945282297423598244139616678104474412878404491467862214543975920186060837930750414229732638641338984549578710700898277710606564527785886071216731540000285639801731587764884493391273710016278192590774768511442359107540327356299707597051467562544618270038861761262172176181197470589423548809857413845283667078729544850948280295645947109762961606268159020090259859930624744412580238738901319433048004354429341224865541579863222513384845710441571953466724360645995830957974666777686643543127143105799915194889601909317873745506736207620877044030640960992378901091150601024539336031574341515284414921753734982008188985135320551299428252328015402805649821846222557325169112055686972158381262215280732291581137036776971640512686615189907319828774224416700727733265270605115478667989259433187807645608629579400060077967097094439675591167470504416271648626882681088068030574092545542995157231877087636762033129847416965871036913705231152918739361475152653382282853068522826556228104245669716012560924147265657254686199011642978223896350406440549392927186695246138088307278023401930804850812417158965020813609690195422653870954470197332193539943187138139617587583994389022213272538786296837679214811002362932801184980720439546882075127332054347710883690865284535078884733309050483408568370953842271337606506637923038053793596132729870084428520705886390299256805797399516774908704915967890672860503417039330176078807346715891870917890317201293786051646921506963199434900168791352625765230587532270027202341374167478371589265916753568258531084084901744034684978581254449575686636066383217778216392365004573596147890680460142962376349278813203365321170330322205375408803480001352186352226425806179353922144936992833496527407747869308288232444089159421176234028033451264158640542112951557251517538511687219220273351970812239235397125706166119877822139778636995973741956910148025535467021800782563711721508998124355013601868112068345243807783193739996024619098316301182511996379546084821241311733144784436822397597034011125635149798977827968195458173960902666764302353498822794816807740776130038631526853482835899857587486374447867867170056177868691969375131834671258580485641278229992632713934620617991945652291308513865105690239664118084394719816911762381273279857670122019756780901016512392139530069431529187614347788892482444404338315289506247820282018216474543652051234100997449279954837758597873565855380193270133783094455900753951688261786106654083296419779731868771563417963233318447019469212886814377210134304380899432325638087098686680722554681032813167519627253016883632743972787064360973983635396116852872796054069245609541741627347864186159256104275926457447078757948927842047128652502073299793941965075656425952717761334630817805104232101030209112573897829526879768626701863359447873054348694394127511256506847199890301161709552709445496585004059972911654085365114897137648245300197341398334775496193403722824632129678485031794584980956695383112374706972814678112951719815076457547372510153611990891902818620550495573581392126793122614443208881058960032846932490454294544501517486753294467971793863911269783727889507359451554442822455690993244430708327258511500681149414878515588783501232050948032994091595257252064702243848303679523783209585335220528479252340645433298541661704699980114592510410875135730942719933033400714752150723493418876459726158542597966678256292302635448830486479359058690431726164534993847916315302160316436668637578779790988770547716430370521396587808832737691108328846195277247527495002545030825407151778640697518761352611708013217865690191752017814733558156279860449114377065571626923948148380861126140532933107272269219332002252113265836051548263760568306822118490798882143227810724164086932066776845720137696088911322733835115820056890953975795707861899646024806650966886653315307433058255249791518903043644879459440461170360719116669317908960571841111396063908828886811271492659289690168994633434584801957311577689485234962045132171987453221766273248255873098911177944818028364085359894476082502779249012584199196589887844981371561696263333538005258412675672613341715872129411146432778206199152075643271899410839545358245711574631727944579892626115289693410804376375585958127652860784472984664445385822843855599606391412213324893219834243369831206076989083287018336675012951100493975555753319427220436173175806714599218123341156616297822109997248893928573056630039994638152007833687498792219232725984631623070816637068840788635153665864090563935545888813930459304335222888234525516740040276318388340053085598501017090527787238617996318005648408435060812571542369876010914731812098531109344205729795846015181168419867952261613540045840113534765914022588073724828787728928122350075305390855584325259811588528860585142572035955082128838450173594962916067112086932023086305103711470601777265780819010519059422220950697031073736297863729385494987323491718944819260782109729788188718946545127872626203993601540072123785344943807343594635599337588641323493028660051361691920124475210937111151013668442909488779679217635374877187080785139050106349084896807491663588753485508027683739937284936981240090391741618786766754178834503448776064380734477118593549358813591404428601428238224495491070638010979783991461633506370153898481499057027672129514005348297845159045846398970923690492709977554018662575708512281491604624998049150467685765246582842565825948141943670100126473550433201872348616118763079404279920494293524665860064715673907487858464655751975467345928632306647024314060634488040884942633587627302725761833503481730866946337522405692430049426353711814801761569839180568569058529567649404390366657571549742313228120584622238167387797375972040067538059443589624822747715089846470615518391244009550661312981134851198584626686439913867095896946403200958354184367865607214096538353010711004297731979665193166091663032304767209519543828373856748847596859380536740460900345294065357285638529731140363985961728410428077211511779079196043874529931769318191040737751449417180513514130842699184331122738609480327489735835564820789983007009611385585191046975526337724033098947945721901693073380651085191223574571827171121854661595907351261446200916115570201481231973288440625335856233914473762453344157872551240206162384611538903306040495634854444289329181067384943191176453208023032527536579954595153218195930975399934944676697369479604402374487012880619818359616051010220520643142691697471328719964330549955511551748827920069119260702359314405229272271966184781301601282832404355445867771427883103373329790721261008584486721825800884463524700617438325687954974872294649902405319199155194941480063477044939983893592097372610802092788816565895126167998936677276080273104650616428739874063311254284070471208795983431010902060467803725179026880507585641106763725249529325910252757292045048512659597576301465211976577990518407445032405351193008430524714110419293136202373847214690023684684629118665012426714736296435442671040270104474413700371181853776209700522582037754810060865766412424440025579690984491044102368917725257009335371833066420729169837193679323673909814665762528334734658372959022141212663631007100504507061362654824562191778808947724004842505468833117302885040418278565091391744649923092233570519560378240484703691130833392227386277833060049041543790929827217709340382432331709908513378536047707109326912725865162204836190862457900214567622446364763680965060275423372845542098483351390131283240266770079461685228748535573091110272761749113962855385217192144936707385736735185198337989563409191614205816694159912360324346766033777213798717989098817559645924982162208229898821636392554220429155936948612993797092040525842469677562750359287005162728708824514213153187091871978794353448068787571455367163587665137512832627147092034254413163000967625105199868707321858773146262494910214391956011662308934104413253101320470977614945700592719841263159449958997960368588991902091039703907490537658119222697633589613810058933271141900596135981737095485107284918809700206878254898108961229604837545185888469634976620737365716702551172638200093751850263918634590219540210394546143365546459237719985447009607771722920330688809782669775641523597715577600776430491510339028964563849439481629744714392435337713016963689070482020259218781494328977065868515574599675873505514262704744208271630039020377622607228207716243222547994671922647486446991746855780986567462491385483573776257740702771003026521621228419750204894201212117822825655678604322848988880014710550673645588795405007189171136009255556059155765438592974399981666173109136954439585156211400138621783294195583625637446880077694903685819109702525718452771711011930107146816734108427282922535224211683358451813833518652979353201535406479630921290558172582568723194425887986558526363457573988558427433529443981499427716564877088626492132608182802946302333949359305881824414528715292745759403599833789525237186171395478536150981849356787786638774580236140285247370239845386906791332265863092715152401227922694257967557710842243436852902756501414074931280798888967284567026815407307958483620306184582178506346234899217473071950230265557545512449317829809987947063039640540251242726632762060141961432548065737155987556263507677329699256023138269330567836249673215776325445630656403335224691676485850628841281305623633381154309370647318865246282942994526327528396534163343537261526210636960176116911576171990117317588244363106602545143789773395873607030082390315591431823965753097213732466860289921695154416683386472452092333604280293495794141475430889052474303880150237425071275674335894486888465846833043390812593652055461811822056023619276128240902501456404283804910579761925332577213532914679949259123831649398522490742230393408862674616532834326625691604653367826869357966254278950065009411930838383819540188184891939932321844663327330400492631366366463193099312586399629668984900073387959033542797383398288447396095699704230651724604588551661648963848838594708930901768260164447647802545532419029909937997107053515390923565025778282783215963877286424119663198743352288588870237544616650066465956152351672194726016676421154960034478271835115584919607889565051107057116105797615411876696615137543648172296240627205244359419518300471607204277390194337147524524277506496925697089502272135444260909541809867057589044800889828907418151848482635112519118402799025107445852243086913359721518030850375203084537361471817350509428103374575284403110063019036497240314068435930545609821244028271005688480452367416518335526569492559461645141572246480687800515220045650088018996161694899701644614215476443606411525165598759414877196675537166103866392300357019291736849368058651970419669124849983955767558851029653533744457892327107737324790808285178668143272236085638690804382616776690763899856423756151004632060473555949802525494982688432367352528668320101098111133600300632530653922510174863014707377289060765296448775158825154606571729000251817671104015689933952414048512506552202623429377005110989449907348286269257405734573336439586869086365220180165857790994761832855147038629624368944437187110068372375846879212962489722253151207710723524285367587164971049003323613193125344980368254711678395980006536596660054436117980109663972439523592588994934604830743196474429669934981379439684607375871978615861263267229771784919730016462796935373458732371351183001697786870436211274192149403736709392677696352674112268958729624733464447975460081971987565437961889465256324125630457608560158927254133550112607974262650530562052632971756753795453907064775860612397094964938989739083099102748017048608498950336472764207235933534444623376188280406891948713262678169502359246517786977013231040285702389351970860598296255627638245509719587070086141832969495616428529866810718046487834246206769972672529912104419725646473219168124543173525813084830673172355068532015941405301232515514763546097188845835439178912354974070650770457608463334826329376157772136933001394428204777150796708270462967612936387141381580620635597247586442786438933447563916888592824813873085201767503278796481295931151313388007362127651816227949156210570397068526579406384824416038472205069240170510557936303746906899592764390451513648670334661189485972137009065357661702615071229388856883526225378202050052094842754650112855115589499690526486479318237557148424231222031840254747874963204802440665565557971118463920836792301077297144170646402341220156167184813119439727932451873653533302031695747278811000555541436016811243717879454751084783980927980797814217013075186236783993051399186093588982057086928614064550577815882822406257018837961623469692793823440170743294176548724507734674364615397244003968268650267484581755452330822398488813569310621638477332039091662938826842043301063584274240228927693216280482329696237737062233293666209872042300913736017833443084962976795476179580093778121056736392988819147668061398372564962667707085029883287885456593038123168530016602037075685527043010750504085658195328252701784422793449982379811507633665747850186384349285232871229319531235705982830674889125274451741834409864287228946082654057516414064291148451417624628185539079828123524597563791179549684210646060249630293802718515974602116481123178719180695631015274945439855356482786463496252458310270964552985288695796442524214455523364367880440041753726777001422606297549711712712564934793271586269523740237380966180582175887264484565976135603415737269180821664229858073833731866289955376465583501638469623852900468027505002733833748601786213049092141271063412742400002464432619281568045475437239696208627956664924953540819010053816736342161925667892091176398481933378157396847125535216983610576005139969354912948569848478847997212002509182154980414663056215485981296770948181943604775992618939970695655256188609788194711681525521892217398584556117956282721398043689533518473717526572770129015555840448048668208678037648888559110105643351797455063081072320881217746150459258952515212173735318504322397282634913122148259467580244242397919779156782226845254933330202720445567365186951337000655330462182668740560777176082843647935812615401182331611526964513532198540958654872053905737679831468479236634443656111609153719547389599694477025365605970892011158415528442398405171567142525894044962566738987873045040626981083592357989436698417390866363824060574924815043300813029052510542944612832007320188440866312933516905268273957313955275024280247886447899346558285396793013502191745244923093775696252609085986271781454077149261888754551737415022714453440009722907253814489402892391265288634279541056088725008280065805821838014244367846522004537758140617291371329173686524021856353201852046945368683414362903586278748957663568448835694074861376769503240992289147491827816896010113240448906549949618080936998595740712848561771162938804751414657420961352330787643588282565485627001945523384917582624300097234695127498945349459825734866510972494229373642193934296447538464802199440996347311885725999460915618122059712562466797099252484305585226525384905539308007162710287917046075428631847518978806844605417403913651278400878954109443180613416076574684777636145172691511755171542160992163084559771257045136962204648451801092295211861110339582100511816761108153710694913583954574395481948225593016814124202867110906516285651245260279190782873081702930957530769267206907812161944235211794386910818448679083910195212876253980933432858496175401677975299151163597189300717199348590834143415839599442903255022448776230574841307063191713549487330008100106248243093693192771668541587518989845563797008930375699102308628233635706536460542115740986105422652400479430581738380314824423975185520278997864159202177120195124154536104308818717532436865762218139761039474334306845495186299289838380964405637493898463702541578889588178119935361486652598942444657615402654407656047549210498943296111048114082650860469306015883554274801337440727652024302025706963387862905207387505342018479367172775179267218557717515292279753287326704324385640874050928630512199235763092640681852183496442236794828296439185654101824557587676186486380417474877024325978962386523680191937227038142638551791958573559457213577530000580453464691681857925145170242942514654267014779107660255434512303169306277509924691907037111535505827760417811482480499534757163846604302383932295198361603606629888478764856754405076211565588585702656628986975510602113197389981432024285241812567133559929755600678531171978505633585830418141693552470771973009078738224127190933260305164865480596941700349688853535247375794301977319034954015413916172593678557108819039784744983472542541947157457860009750358212195905444129398119542703358372500609771028016548634890695567673186087059896333054666630252682671855831210105745078905453650328266961556524494966776096449615309021628596987233689749917668107381077293897961492919215709177630127111516392218141524416342578024286439180930452350328819700530515878954751862257724424630469983896130711084877488650677190608108139828225914408960485417955876605248634035648295508350417131625886373281413527901844851365763926505362946313234267249167737447676365281371513453445335345259493523546395493757524158200913024089544030821706327236829274001952917396252831299444960840087747888150707616458813117772757553205278113607833943527663672269125971687826142635996783902825582698173997628863424216382104119812504771409951202083804845883924523025013555891992257818002095238969333632099474944407807538055410447896223019941522363587082892005155084427453279412024849162198070095457022101819822107382032969459026463538884774797257968915209176245579236976051841900192810676807162392075813727941826332891081374728307048648152196497571673587899923620140080111351257049138361894400320515168142875415624755768384154679851116001899745423178448778475261255368840761656916040100870117947777914665147364141244247442174441047569227972848283293263057658299617148878363187378928483440352705020856752392209041506038785638894939900487145435780184572771970306055407690672891503371894304337730179656148892925205682184049462682996785104259978379597668645647717843945398012428112962641585578875914193895965780620951700087730977501504315957862249483864052816820050227992661447655824306001000280376296252016159387314184893233877313660490715882857048223777673586752294653863891907538388506950322548940941042076060935347651280052900008330446330005234101603668625780101335798304879701117373722530697141317626970776462992092890717492387487394499748243844909921054854996514461892935913690518559815708160487379020882843905379780443181404268169398593803733532107119718667965616279940519689026477446918053658357535573967724709213856714095011886458399085067738299947192351179962000439497320310083824432804424327576987095484963553313127802879793582423042838778040093314860073471736400750288057554651525302872251500746768214993396110414154456175072126004780089137233781203369583124369679495334032859809809611477531007554883464565948433644180596322940329741263881713505025991182588796119822105543497624919587045847620198793512765959902301601548075151735609074371878994085535759528724780584394300774300880247137051617206585148073174687415078398906340385298074782734458887856581406234544161907331381918503556670509764941698334091781993482098436763037857059350943084419971028259933892185359984521753135610620875997854614222793187022972826220013904344242463362868373608373947020101517207009694930067631275269480923754645186102660179440856959392511788910217111203406448511046507073029515394427531053725903342121074267699999318899313188555477379938924834071860718886241064647134454991077417269329563553788622480406839143401879090751224775942633700623152867893039693538973773832542596357772611372785654780746842957642235289379865011023801273059406915751569135693908744523557242317105701318466314594844554499203029151771693642670719551036187679090843697506998254040619062519430502574722233171022377697705699529831655404063532651119987622496725496836882912013535096423744566476478044678393709326076830973998217460288571713650811028412223690606005723569658798162858164613377504169730221017772847103779952966229767088208316479054233142060215744725609241590226645934478246764125174751376937482697805989401229402949134717652339635837401890342888972966979040084503562507483996603310543799704072149651100281371586351734700849528653451565644429384966610285704004069633329966339586124741238460809917589384613770085552098889284594683901136022058083714884575797229567110887777768565912298341120459213129796833655655194929628325208193181703462565613879696453956073224224944366661127812048040743155209557164481471453461580756550982974243052155815305683966106515073948806924801007514033111757852226303255308518501603315961236215472255439289886305449069123071936136475352447514696855910998658815863734729128923605713382603531245786987001427545252379932833915009851917073455702161294066194351955152977173821438498209751189882259782925579585598313514285654410724003635525330244448499283381777109997908762126904734742168745781527951207329829751141488883348146617179982536547009550523793003645231047658283802996305394975811777080055761547381426403513331644942203007714442588186753702517285429442948354716376836785692950741346251325505705041922418323039676833648090526282660706921338887127979915540010099852345228038130496005131315699055617482516839287094225526349807448443753793391454861239461864916388081916865786640294012087538858836933654535339023807476176974617029118837822013870617878308290793354498756364643172719321195393496059132558963281437835319467238981612479701684786274357897943761117085654014337103333019151195558807288928067101409821578433952349024532434509491900375102580629222186684521362955831824605889310213157597868059089823250612358694957950086835920375310284188473166175957164687807538902976146324763882323563919609797432570614688977464017277995808734634815129198795211546822560979222980103067277278251629609836312115602556119673646713537673836959563520509622902399165785024076793295352322432547792916022201530414437514138751020215104631371396869892381116038815520390013473638970102138577746359964491912032151653463528122936520102678510694985038909841900738743302682853780307731144898553309689104395435708101646821347634173123249871636411453331152811180462087321672474306725742833245320325653400351977229930818434461364020240665122664258568266088229904304332554359969051933056422605550263378426795160533068238274289407985066132658942695052588742624050118771863807110753238957837446097073413566857949048187960685675158921814604334453981054245313040060479367240595704090399070152230067393179532019679643764322855670354543591484058801519918267466022397039699507224494417177041674815439187277658713704067347294138794839452829429706221892339120095126828488149359397817073234371555078814488652814127756252645161657949435013676078291231872591486333773524667648576397744813470738462417152343740622097377278390330609585775809916516717964958606594768692709324571133574146213786447701987687850477993948204204459352599988006796037225537137672031213601785502240929852442212019878024691297270326116144014315663374018553753349085168380136090263457244533582611681811334091869600929278255747888707540625012490332653899585497853543581098201770611650629401201717205723816674806451882913604650028263796179651916831002577887415264419200873516346645902459929072760232554568925199371162702767146036733192766035948753581146810079455214872286811377583928087789114569656594012185071715832776093363195930731201634679570209527192231290655256291976878494745594111698899502197451782298520633984962682088148100437537842975621632173122950381478542011533132214940827196640769543557563141503234297941977355322434176133259466157384569388228842486429960947177624461765701197197330374355681139348130612665593509197260752523170095251608626022967456391404201060487328320159026559136770293898623880557107610390937461397544635709917935103304330594270682238964497959467218564079360912042181821533507376309011013363886685721019780650740225749632658421847844864966852775320432813958844361889967470426538462994088789124999981256999679357593979429045753182845646490924629310036426886250031144425913413861936584939756741296275983627433316035948640217024782354374625505198832447366024962967163074520061016659869444841325135040223119329134542337785760223654466888977987244233076315401181495962552775086908476236578118314288672737717954753051120681519840316723382711227069858662256115467691721674101249343558602907572097634844677623926117041398965927915363229437212843808031209874608937139460993941371067466571904630583810292192185610821414062821519158044105102587122868422112283577623323215481503367209488151969640296437508724167517965887057933460806346892728940426794320991479778635798998119633669408602570668153310185820155171292096168119180340095974428041916688992313767646645211073639233542334112625164731912658149314826990277024717196914320660994549426236047832432209267313486482020450797269545565721291063494959198912008938006761361928855971723943265185210569498239067715058145057671163413703590920455429949923751806406210150057268365567643792258045411541175306747754011871641756928838707955011806284889863472590329712938178267756484330129701114996627751036844172220437959264653650482422838042462716492124114317410039240683362722574301582819615042929936001245846368101237079723298967927149754028780185501999418784127652799204239791200532115648255174039402178936059162696272847652892852558797320407051155860469937599806645932435265931038708641394506579597385703995179188114621031828770818109703874894801763749377019260165167156342172271792807380631741454450994072836559753719978472385327988591879011959516330360801799944064317695255638864057530429579215043117293229331297821513977913271113120798349765530086821426643800278216120056414460257734384330513955146983419106792191408897983900933031674519083587086193266611692185032445853701465760488418487042477550238639410122939171648972315467104514360554996305424979915077752356978949335770887294672615862920482223250778858510926062212604686420110760294119132289386864487785158171200386940556968123499128654042194804425946078313343723148949928426959158608571628332286597084862032678852043598341968039968779403767006959079216865398445229923142460799188023712401697685862729996921863866990771690269766139755598792495749220215573598848777597155156418325891335364595547720860199112984895852248658934119440269189953476152314892361358502044598622689678337356218001044450714497854425832065145258597900573217057236611690896256034042486441083538501036843553870989482672581386236414923259628306996470331027846713908417273702678013432642013533529298984181475842191410285293842879324790698945514679890194695841096366176059355642888709227009134611039432861307799318446656504722460810387817028950869876362023381282402143912991520107495198254337772491966554548104422718664194287549770465260451699207888369908263691277929600387455087131551055966654066140127904322194690445335044908259695941192214511657586933865021010893835899161096005266729467455565263029683186136488714757634214127669021228377901823868080449808690372295907485317433174659304408929757252946535453872685205864554194915345990505625622683530353260808286805606057830450742514866415706083703849036805257801235659574254012032592254481812582414443384533016394645529210685726231159209440975642389246278681373975715824508002270055910523631404972403432224762967610548427233221819807377768534291556768772510422396580827826421678142167412227954500540685791303131179754253300683933819503428589961358210107765848381981989666228670179800620196715220050499347869244188541859015834437801144897553276811343835749019210921328975644473131917143688126793625494632341319461860813832937683192552514432284526781227238443653396648865305828717535434298774240802463777592582420482531173418234673389293761671021861222917221472683874101687369153606331064429441633119226267665190850899180934584003019900037955521225769577523630186271199224885668262840469927412220752937932202357587665157315458039726047934726016544115785898867846495169549856271819005397043273277809109289281116490821048518377946081906382203999648203566514324916758578455961142579847226537943589972378065811429835767471206574662841492425161796468750108384701507052626519796155215669914210252326475686155940043497415521655528825713369056665445989325339484896620800043021765720100224998304075868072659079223366120379903874002063535685347825767827650960074876572238087115166594079245840760275983547595611808874568975845144606675376320144559625127338870646950836752557133965015730463658495929130827664133982329112211720082876604732919383435172703269662611014419267082432191125210524808656429910309477444751568683378587093528233580239426876107302107486088018331116979089488795563618824998270346141770506403535897770748400339221311416703476595873550474371579309342888886060504932667969352800816965669239110657717260114150014530093204779555785465245227557075301565855136277163661399167014394913320262958001277927468141683682876130190490311594873265362216397232720073795682281935410044190087068463665259935583323254584430525573782747484943410223005325805468955893308899775168990855665308636469073722878655324117957103435828737721172299381647676463358014251513717740504206129008294617112083818113129595335581181283176442271644712516052484028690156652230615556146355461919797818919402907794563699791839212837577190608941472749513448552226448158166049409122618796442384164373631618251832499517641458927089240897654992860601883519216120683858511851450295813994307042640332945371850945456402843152124873026825711743769932377892017986817520134979409914227424200869068541331497197493189819887973879239420555000885465427339732149290312238280541235243716260100242731212358545825612921477755760228189238611690658699366887881935062048264604691097980799439781089678552251276448185611446738532700845594544013224937368864791905434075544637455565784584774592631115590464845302892920864786310849727439350708773558717000442455988408507842526815048037245972015093478752557389164954851016232849761533533271065675378368449411972044294908443098049329053687123942346440178092068010413020976722309539235105735780837021686214749000109256552929861156530326372579587920610282637145514263136423940928847250177391883217849114731457709937610485608329186865599146036094666161980563683751303988895026034628988557680918722419923110198939484108116422053491774157698909501041029526269848935572089140084327663289237067124985086573149407230279847105557323948703895379114527607311528293224060046569153780990899528403143467575965770949216835404064367024968740264074121572394320680524680358783544838599748217220668297536750603433666870335600417363148808647812632226062681712730954680616598100137078937267924125274147160223326035377668402744505420559326657981959368720181927977731134664459342972317597956266716339751198254337624058071190262497006071330475093696438280710568140442921534701928948338857005349544708010773401096456938924461439930989431777720130789326018738594451439851618844772502403017730646921027701460852065687851491241002288953549571123540038716770020819970989621022030553204517963270091501102432998767888271764624257986721006663591141259458280143969790025817026270581768617313452670416025573791733951036848953818617318289864957475273006252280700032397436132536051568458836052568967028808520591518814066536903191320955422544504512936646670832055345474578238987054208335731305415752733239616202575377861927875439287976986542013328457209465478605619509770891723220096796334747255940131477827408498229433582168031528983479344167428970770783887775818359154748509205869551410217363246680932826203083847300422352251519685228006017500776446600188892357360426994005633259290206013368129668159167318943849893442754632923938449927957028192698092764162809704924638746786328064915862793534349406379137921827857648622363097831577612052419418177287357955527485145174921939078296129555554102735339939695461890015437907596872382080016046589335252562408975252923469776919500578513136311671280535997942457731917329329347904880277438356190159964244803807271205112613247411424197518029083709192134980875295852227412775639804217517106108809239483159699748101852690044886477618990442712813330552767537779914942814999257392727140006193207154766984156388991050953153698247451969858003392444675868555128653823926139703718531858192404375983432095502287157350620393940309897913720589711730291855433268474476475811608799639844923953549375440934031145533842654447675297037556034781762396106490611344501302325011613095440117363292750128412539401657634209845969213497402532052407174911762558293944988511399934460631116904002625581834975388512082680499960354080240674243984480427513546898643121619399046988452158677354796012414831327870654425702680906356439294840357584896568934420824140417249451564311181694217575915717941908746641970081758904517105482130682562616423116514469416601940820856502947103442316553769209530552941603403680774421291039931440713815804255343423607312004033257215013928120007918153682355415089484055512931612668855612434335252326038187355505070551568776762974975636186755816399495124437420228780856788991609951682134652664280710125185002895824755925968815451416487659401967105139223554143966586044933225595988659899770964299835384306671980020125150188405925891936683353364385667220526537571197908727596067972987441683029970203770014786445256855774924568206346210333781758631434062006330284666284777545112023758091434268778194002236440227813458009575137495880582583606550750114725297728103806190914609682082793431606167815773907389038668652153554235914521100612805716808579454227628989851769832642668535361350918086494993763973979768227783504813449054147890417141736274860960999648194421375881108374932540302616251113617636376133597247258640874065714584516260179280687725445677873125534195698768276384410678047651918418022745241863243360685083173942660896459636590376079755603416183990410558951498471869439457527055694247444601299333514506802598305357928494795355215177124392098481018599134315168918441487883672240382424450168325070448621471365176144408135079744627624443068572194020971462424063338543034065382953708209778372763917963108806738694653884432768488471660025431346132145669839659494867106712959961825557156685888909566233635532707458839430851329443526778987845550948800104465073832845370176708459589078296608750998449608782524225664927300384873617405072579234235380188743673280530509670046651762661800284671633516894287857788502511615168123058146220753314152489939815528328324345273194589884769987836536712112946181703710771075701169400667070451975844745577198617432691900134184742786209187469517727449717023395093671430516014791888470669455150197153243223384531926832538790912153124575230205738616299708839183589997630696636728010920081015368646497404894176920978602817965382684625328110195699939603238802668505106957577787888217959742132496463872706990364877769801120637118546150365102034577037596213354960140812698633865191277194735325955013890592384954697957096352271480674217187398563964943562350397294553757330307943930768792237312738329838071875206625313062308738680224368044130853690953766011927408040612250616172614493524228590372374741207372864711376992299292646903901213268230219189119543656450559754116892558049024348109071590702021099570209043759618286381126032222105600354437287801598762219144755325413139727893101422745582136615188950034385488981606613522104466102250036440812751061672054747370061138649914410945900513018287010688656594258611428584314014709753415531193338142110635359279625752691251305094430282294199747003666092684873658151990009330624595966458879869759989642833632109099509524289547722323908202979376608601411971955482476557749787503838175958422716154571012803505084151392179780777753360049383240475582153373287118825692239832070368305177419654124526563785958086100518603062249283198047557994931475705672331916331710871584353237064201058141134794467372761637601181652945263165750750793965752961662798055555937532946300177531139132011539840103092807010936221412227217378851839130336041995896646460256393435250413260940669866861415732387106445142447318566559255493554712647227095480415223081950600952981291154047786723495471431876643852783953386320792082267430731662453954149329555710433013904182211110206989919341632508996663187590274206126180663100975422900317317650104861260795829752249982376000135805023275628619216905267020653884963274672587434781403508280344494360297933790056782679821179356121540004425092752262162654623080708286549962050487618613518150023987067666982656661110980344846870786678546955327061226003213829983916797045140775170869336970388764861547225310744408196036430662949114887419883195033338478880608913498019661749868228850640166604982926237704462665812040338072264170485224462762701981378044464103827448902594971717872875255097758917146254052196275603905962588081859975900326674798388752998181802595352762735481620663010902454764246333604731252533692035681660082697512227354106622613921003584149244731694934869145062315446375285904423066632184506279728490223525224282813712407529251921097726786915342176219539597275306862063204245141310230120812259445898755045070269185395008518701615272843049404631447652088019739875327973907619208300036502761214994636427116193408299432688995200568430599248577834188858800719827572032387095362036949053172377453467500057616879849825632550650668106147358037783589696575520255038307654534222821604900391484163703675855925419886013584232547811882488208842781557554624244743768096941943486911421704948726097339416687519073949559528750106365221325159970893685987265819958463611781839017626518016129609983165270929667297488861802357983092049970183461494721129182277096804337616033358203108218506120686486763019514898766780785963585496958241779654909531910998166776682343304042260362673260054401673899310274838733181661476463473740433608342511605975271737842123895712924227341097615673195417989392041604046096232923902307854877900883001785474251800859104693174080954548517254726600381320833086101163273417032186944575773309270871313455838578402657366745765434439858915682759424405685115415254563861421437783926768657552800474991720904941189984476073347825127909680890932433762335256917872018281618025530098080464617322296059879561045616596391291426768812995057286714894903419625355121285377334105737893184606271680157784624368633512862361158486323803159912126562266718851717818490709371124594471421742620394220764055821959130361994444033272044153162587050457911794479853968724548148393729882908258100385191580651455484079261914973470121643431660290754999892288508416272843041351755701102492459433154656698147542237932132572957258901030527894825013900044640987681449856358465180023727935157240166512460446415703314319637347383197447880884763322503206702431779088343934591710531763475278661600876797869755592586285026684145632783351997479742637935596801216367611600211199726215500188934304314624161232188793571882694150838156445899553284755872362966836946533923817705516858470094872328939774926070625049655529066265131708638738019130420086027751086259302553260811551290580811228437475884385191686199408621928348243318391393291380056938942748197330502780713113033206168453110596551249382782289907027846459748945299630137607903002606388071605094051026674160264954986409392410699435599348271102518812833240830474625342517055683923667933003562059135878933462565589502334085392568288964874215324472286663606950193571408139072323818273782844560765169701224324819329037327562387790572808158703053355184619793997301108198841567694228270581211987566565880507943508986262481287278936488154132112780809784083900182485208542277183951652082946568784423368381117047934493962041085372145850204051175707021441482695499994928260354854557598137083607307104313853808113588174987972477399324305918481366082731527610592622896191517035926598210656151826456030636352899744636427037232039369452953531527765278535803993775643002087005960233558904394304266913678809626100514636574336183034910888428100471309254200755409388521460811084673974768363519207885995226285092426899902505054249879034318645405999313671874609372864881196082671736582717326535905822682206697605616935654457678934383609684667803775444043651490600562835971271798132259339063088638915565573378706395129922617048912872312735072506322320869178965050838394669312295998039889566604985368496784536220521204846726662107767411210923685440521224266545173285796331550923364154593919204353220136335979601458931867343312681907156378534051378777378513924204127409581118789285554445101520685451428145024190087655613687625091001448984130136122198700507488791631092132601394945237396405045952000135873001682251415567494169084577563665032505099210035410642783057986162996903105301102509265042558967229015502172122767000383333547381740715201228184479919840144699053087806377949922459853736323894192566023636619813564832852538381043651826227454155315893209440901517349301933755459704410794631690514783426951326357004218875244159299012484493560252647851287119669817227418252071010166204896197858578822437793647647815379179301640746958653397666157594255421793002351276709153718211527328949869930648286991452454027152611440874337199205972196196740531678144390402992358592765717404382794222309564419637166824373526211987103235985294895922470277143864971186449822294697089199316244646467099384027030769311603165117206414445352082195635601135239819657974719963322549249333949835679657311727280367131331925931619235209388082708489119958747829244257139814264022493081673172785527311014193097136635145639058458757552362065437979585571719232078054574945372327302267461366787358468851649685121696058738270988479437147672313953760480880682190120602851851766437994980740611586517577062908850781800924520854671898372634097567508641739175097041868295985208984623850054160864096732089400948396944064604920264059969581353071794358745564585677362356651949447470353482946711331143104882444850771071587987406333046964261024813277963429446278527288795114579945891630483503286031585411630626088496697084169913366357166044345387036613353562691612858122452066031111584488341295183162927035996734601645627873513261870987618899190095497939779607196311798376472612776394763311759994019353445184074343156021722723571844776299260274398751285277494559771682551625982890491417124178805666424018190189428007432199998772480277778986891302799930185976458210761262105049742481022741881892846268909692936388667131872104332773820433208178263633269499989826483278168927725355372340643402962646319492769626273630775532288277472457846709959454193592315446551147129295320177923151250660933798976518496684921407405776794627909651838817473077694859166329429093111805185531789210761645614182462091575240943833115722859541920884953878167515801323406010426502205631617372472177240184683774038697565944827654669265370636373778082057666937781232563351248234922126423228794203625187479434752476310800585622875541274372481697630132158318778753338285397121859757747230366616477707629118747988285011522197334915467999869067841616402409774138291391063324120002570090856294650894667556153685744359794205991542889107681923691776707809885458237407009039552866410957579315570858802415203891051553187518363151776062805617180096294488462252025339918969768546451881640837560355623088826944573857727412738416793026660871533238797661784357096865183338645643754503064627260094988284563653674141363132802980946310426821319576711684567369655882290446078297293353497706892101344732950188614695836731269768866214206263329020496486978717886693398121761157712900690844452728641794577813254391963175956579404873889255599128211588883336978714699035110022567792072665213818892270428635785971834385738087262117470362415371796174356515981912985784553701116382575592357748014691512896455543728767503076187140494567985626079521421861329429617723423531121419734266121992363363537462399016584500810289166521780974733759016543599268483906609281294686335260551089049142511539474676800774143133602352322451236485950042663350787595170780723208089737404803770309589891536358287857283725636711208023200374912604917413175796282317299888510981675803138764464967144424004472398557669129243703609323450995641713232935125745624348075860670815439782476063165532920986993401438995380335689036949746369080523022708864798499505366994671749089837090840512677115952775421070859005789742163379654203706693151608668164083235647506676021248888182907038599093545871340152726361635322080710193589944313487273175392586252446780427286873861009493117572521983265815325377355879211438270863034272819640188960593313928197182443622531397694097588720401226107798717903117468646481681594505842231728581324586555016037763148472156977904978956478263379178715116642764704486464518969794897347968665666909258895050529107661289393895878095293268152466385558064985862278896982653551898701231620349804752467473423413002554654209529162875559410184763904572564677365841363237683839390216056844147078052264713310583923845225894407019026973048630818649491653016581732370840401120868118022413313910205137443840901214422656967418798734682547786629970452186954215284361017195753144491895472526896074695068145384554201211900379519228661367280445646685470805300163797185793808567331488208059252083474744511479553760549324418516511119092178919282730383045813420677525303011303605497399235961048449863457102560911416118896967212586937783188594515336122796395170504836841109635886186308113580890929340165883113527367147223925268565103762668938001140445782015003841082864761073529591167466873006315531147392837728890451213932128956067606052101095450450162658809513639915632843557498768698381009626377141122471669132310319524595703135001943289628052463480299030548415629214499211700048944280925293852678580855444154041438111484172582067430174578967016348515287458433236019054886299291669002479907340005151213543789370239859067459793408612987530804416230295925389986598891340471853461671036633557862809987078074795149842095463895464869141767048842414528834502326644133595126494951489347253631098651756241535491815191080283253076112448482261779154619905041551940370059206698994885363837420568502067498802928582195950519069571346234132680966078710221640774078705592309936641363416758895531141643568629422075394982239709712424672793035064966958198034149465223711150317120867393775825858061814985978357790716124618192902262209842120577669763235652938782793618537758208857176794927180878117099597860195681511186438057600140611966035977291746499163726611067582053263889563078618182408272109364227204524845378966607733386237933060951720057004252912084045957798700815158427384415794423462577352938626028918469380295314136253270154071846832127514989413770958936082339851113260236975041892900671359467756990988099603004073576912777187368024314798708020325905336276936044669611370438129806537670796795547566007958695099232066763814163921129946296732238904661149357511352989986790952260560331462933975954916934326302705605645638704850685276942786455032793357572374411211164201512915968620303746577299565060943391034700945038735398218121839012423628140301087740569619222518170280126863590377906411081982971163354800167705501473134755633713649068629310526871237498974246091245000270083418291411497291944334885826996448646337346669261218014774528650888698626588112026973467380697051108365366442162482223303739696111362615527856334148620010273788069004148261816330355317652923751132029181761049052659136231806259349036079051034523263701274468049259660591643916913364558177553848578145738599740482840783531423131521935012874085344104387597963422330752776015211696221634193057245608739105857889983911469740689733623680831446734877362413199499030975657462767216682091868459475546658267427169286134444840660309152238339032088911372212646853786395586479212945967432640979833165564372543776286149154043823783140340815597497637620385346727064908504598502310572816378502945968799284380850820082322350628094885013016404092785748689687026647476212354546150806396158403902083074027010696750801293707062246932089493637177581560374889376364889086190431079774645586874523493274316215939308575446304161432739724178500291936329143946810829450547880713883027516741686476682708976175987725107200588398988470804838009221840031938826307269020171713411577706770609294361040641579572020626502179315975854693710367779750804400151347605628598458751155066629162772488500176131153669084685112286010226136217894506347242319008568800923712240207480861379724534019539840798496855880673901469926034099191164744036772492051519204020693793200447055087681311213324600572681909671343854564109229127671112809134903682031322010364125145733759099197014784118234313159663451593100881551655786699281802129782049156249499777059596169105334064404423789735458997591909179289757795257145976114917877926194254797402476511859057873586357254739974579567471438486498722485439941870230160914646228281647357912819908846272524689395072287246192034974238521983629129337513861159402786242179317711411332172558587320191261413119793353534817904999949433342113167045994451420315009922784551408935331643237194584500851671609028934700276567514865890875641328889451483972317202689538180531742005470153908384109561757763073537865379777853383465852448633825745681212261124869418942305236390994464225455710342942642450874715805118060276398842143560851601487473966677101543896502044077482187595716249118934553042776701187395441613404328446006060526427121792594198608838229174197155654972398485948027566685880879885651573904553382598756317915610125204521825571263152155026558830067953652768093262369192680399979124119620688096473637637796841345783223358134875861028920457528349611915068105106403453331071512834241931699860741718850114778160941797775543804661262599914849738551961350887016859718590750349433865114881779248902311025155188553390708839500055056690952589394585374073665465810090818694043297838117771104030601579915878633016723971552718820611855002687985336194321202243612695679067548653046273880770513595947858574379895033159197715503455258902270610353420235637083878519514727502056314053034302897466887130331302284680458737444840869494836778223103177442034022695002293992883803889650538762732943190302813490023707869458214666283353022450541403755795620217255248854406550235254571194006957637380373760180107954550808140019813999221139626650486613702897897419536469392477094831812273429354682888699877923125610283750952335261816823421151151886059944830631074323693634608304247435133293292999162232106917481995168091235515700144545351825646020434359648794632302585264470812877562026457335168187110707778709203644281483575032354791361403858072324155061189719440431592886574783158687700050171901739028702098233712721976707805404355882714950813619845114286335591822573974731411188869696197733660982726465637869466421140643079119956262962528625519473166921409525395951426850487980434502435945002453217822677643063946126647902694828242165436669385611613811478174105253889692196936233512858530335694959691587514084749485415166776581890202328215155398280237973301853258458648439281440036742254264971577888623391296287085818644633656228589347790678586012249553108325987164576621310912925739815563505739028317144846822192939040767984885240009845774913002953953161826265138237119090689002447805182903481626124505638675657092853210975949603277123871005291409425958546550536014201494582280619153871443419695383831673142484952888707332248377258644096093162920872316060450968046075023663278665171433480670350848113740365138771378857293302845786984150523594851171722486918747915038888136596306665839699582598837652596253362934904970906253135544105475954013255989806450386048897240881879813278650080199399146601996043473634976205629897888854073817601113548814302524360368320551056570268726763625160270477713745539441073725978379080244085280730282817596821870353764630352124191101007046185003249876179352771740720675350829528521516434514263434122032115989439437755587141816113562609527037413045090284590012037388311778726397191971766626708558604439261945785525712886502289068908754384574792832191015888764107847514887584286340257009987781785470584229869407797769421071792694620294852818627705281444538014304227409387556673725235457978588047596943669427749044956321821651693967664088748102295629334947989779184762047793173123242134344322411737626520781110179360176396536879127747380320513326372303766004759641056727764907052138358480275778551998218193474469239995861143366618094327880022978812188374204078177744901222577250945807322425822640198638789078523285277539918397559502446147347330832382496632877531353110461793671633569551362568507324565819462441088984399368614640741943010514258576282678207201450981749887659400478161565839279683327006300474378356445294310171631449358949375126332130822784278010542319029673275257645347287966135918655234078193142704865779978193567632064459679205919817718976176205110602587946959657381450281054397305623398814600719430841299742663389511337165231486792934713714221102443096227817298039917200246721393378872363319019456590229685965189217818289250370384821923518503485951975284124181366810653672715627221420725935353624316676196626767437782085759268202075687698298325301713821386629850216517799537136452762192434010268937333622662140920764968926098576873424806897746569584285503381510131349983837927484960191398336704824382475859660588879249245042100198016403758684409912643052765755448915969047498665371683177733215156604533191592966817631122013034299296253789738566092532877108720879408506894007773869316583097439062100575539042729114374384988491047455637726056950976238953618595195030585571684617260915741186593484703934171732072800759221973536643175804462599088373041703868242300716495269791149393162678764657537858607407466190173036672146179746056753197243330277165458301572411355742454519108382160979997892795512306990548150763058967091697653848447450244919486637650727218919192843659516701572769758558976931952803903605593926240300229249720592217363778342753247031768297624589306331775680979880921751277444744977145657626535125294310754012901417022220860877868502604250864524787869193389861744759761957595719603783032247247971230815766100198167402458883614865324703324712952791721756364265820371042185433774554809539146116811949921591898873786952196071868865124774438138802047894799459014154875165654234913544454802732919296923283901571630380214492536107505041613407346536698633848776421764524488189187972045624793648312309919407029222512956794564131426437272436706721123500315128644589475360696914918863743149511475704594332868863080401525754996680052471926821268818956589214966917137258324409731972176266341924413978828425927897849991162761917163114603814147424631246850366592028691838518646540960224094819918845483069142944976425554343923568809429488733679975717762330987700345157711515223420167670749812131239612149743949757901352706396026902756633047092706129711642452403713840577992736651136334279210608984417342488177956502950081253571562478095955370897103363104420091893177427353481294432392488190450185308204505288369139111340296220922605267384319001720810345719313852841132880435202352685374260845889439894115084084942614552704742539346597111689117402869056486589156915606323093987917748124081985178660635759015680541780542097844642440904305388962471116832593090232422973589866332006765954582426415093424354149888356681822508644876669195926137034386479584230219045495758977280283391626505635026822565195070314915015616623846153496395893405682768567922820236959602366704007199277774574678099272789497043185432776203506368634316758451631141309417936621279317828385531810058646762475102210029108803538558302833381057477831510506900939387291095007619241425936075397326926674012674581479403120909278274783282155442108241177406836993472468731400314407732699556685112814760526821041603438070053096816435969673044612594341127796964597392133268293398169342143736696102188889715932608497849441564703658531968012800755937604850003927558460250144320126352612496260775823732588280608289630214006486755429864658202245567484473999201793301623133656829506935842416785283800063467658688881109966967727371256846958243010135445804964058540576377022394510320883523270825580619021149720596980892276042142450883256128238523850001723047465205962520925148717182058627897414546320126968289862724166952223435627941545066487880765787899961331217391842293171270581543958434873513125369458073021435147178098724098270448865103296821127128841839740197430104875029620755407346517162205387508942132757066925576265797758741897314924118222507048642701297480464870015880710110522279359160035610287499949452634800194415882192085748003306199320879234104897631549074896784037775538353621697062141463484183549208620557682507695597398640621809418378096416364783465691096277959653499880531831963075572140033007396959397107643236972343432585843406096423511639988332912702551297893055677779364762226702246430249327219379159457441157528311725199299616632718928383397731738119015853423918386689920074155633178049029681091004665748648288584809425023655716307040950939577968822308014092070298146926695097760212544444851781833007416382551769407712915336213733978911916568600080127654589553763626261348052983053563449218148870108938365031602114835818928624888493907244229602278604832253078226302890439379397625696706444353636248950626938864107494385134281006394462828780431154809855695403850351409968160931076488481291892377230510573659755775651478638841937551291562400258511716949191614213346760321528798960455141602541981511903238932930946256024911704546124302759986432620061396287213731287898316839448709137620373975058695441095241097847740376603701513592399666397843669444003525094395071117628838460895088165143871587139810919130768200980748699222511992190718701989598218852638824829593077183188206549066674087046692712487222504827157720540634887055595825003832846870990912507289513414022708423957892553395303863469428736486887931712131457528355730195688020949201374872015566267432425626052853729197930578791887308472147410470369127476902362144604199868893287807387851309487989597120075547690905163159662073733094332344820376011190482008742069072873916767151044678856542204657565505764041811020400848459478092273699023660478444631260295194426937583307485795973674677446350399000828296007552968807413537765731029291040057113900424005266741840072664906483713105583830999106774372127526219320094754845580050272621312056797356413413684714659118370701608082622765269096256798232909047471235300988640247612476628399949949040230488945203301810713636025751098743280080923639437401136267453518206634762663027577556702089025613133182479274243497578328717048529341558152387810763017402236644620992729219025283117033588560235210183594202632869487139669830764745621916286284486246947600916554860038450710500540520163271544867813343389679970591905591304859406942999472648240672176758665411384784947430628190825156144249490354188343148097023073500623736316558946597722925780357041342370872667492355467612331273491120439131114591021181537529627347500499030119977375834892538398871683349006667403808570486932150666083322797565781596332098690036729294671781042015808584641094228837135785940620277441805364036789312201656526086618804467592587486477206061809082401399658335285332827631857075486940118964664544826366949018568962848378431065977847332446556241610309604557945408588530543401886393015338660582635988087724841161813977774645196584829795956896538221987232308865391443404911397298187409758140131643408965100913867371716295626438531428824323549531662298140641561096047473811892343957473941620914706435061860467229519727487528753569401843439430742803899637041241712679685648254558385015219422080163929079471777532154474045285678233725797507822824281067231515414533503812237207770124653260887203437007226022311740069600419541061433603698915480329490452336885227605009012556465287614357481113642385387899213369213989960739187774995922882660583296693720469273869766375651420986692136718740981361444651452481794732338762491510572005446411306722776764673425582466679202089082563550963610052841893306180921217141124175891013940586446990904523296402804321266018649052653334348339695624116978855240081032691402490446801061264431611531533733710962766082664511195329450276071120663499228082421161775619571252137168574554478635269334660587331894298898531706023682167407893970450507014702328368884432429278936302919435388202401880984705400848710408423131844906671774810663243938507816307004202752064724892680338221561694566993481073722949661898356528558542884811414212404583594522591224010301771322275648062696485123795955132907895856697344799983636778997993866730150126340034267645286441654159562875201779313869340791968524694799403903816529477663251028224195884440422805486748158234754161667657518147774194281021338095196239702478324562277669968898459479566909368274402712775103922253266694128234771119146558955129751407381451191133603562958604560179676942581324400011754202851475821923851306545898238937950620221812298931080336794491876477388014166960029195631244915651187140020315281738933052473580149013091471022023025847024879673727584565551432836628230854892343680364683977929174575980383110388262004022229984587836484661461482492547410034476151560781075882506231827429649662709439848306598897292890929732979302365948995253581391958199733170655833176544422084555099572722955409702836994868639338609860704210978298475024576683458079117865975776270257162398696052870595683717858770964318018749887108222171948009359068497655779363598780933741862239377882474832144098844062304818940021350206590490443326541799840464702769613781867319792666436495517651394607902704156039437679789041757911236741570330164837121002999482732310708685107999479171459415189118495404709034169901377147469812101051097442177962568734693398313545708457570006292628714178422406730497875554335257453721458026312916383592892061957535035520461640928850077188225767522175610951763449798612830400190116303137641218849122946596434031536961754104699799808663010383826571623780404941347589926478433684157179918689241016150061719103168751434396304420930515702410098732961222752700275798203840535171839680807159229495152160892876466349729820789292479377549926683477209084125988111018725472659433787785615450986568154695836333323779774033301704467290542238488675900376869473609907350432753224402480767510332688798871583333974178688670775003213269385080445256058873451154762359205503602274162144481821138129499191462509747400549839614102945681320501276000759523825423031624064440260957104315645988208019071229528555402026928706271906903134592420762946756697479030162539362929985799040804838871088397143739086201492598167191026235186730514712753096524575251642434975153580012747728703145559224841035394379916295240948000609794538757223298848968666422756293032910896012490296910077022306142413165747884253837843795852821700071980084725911868560380334692496559909555891901716903089357122524446518295342769737537154255995571378428969132040551368413087086963790396761113124171472370344890365230110223623726867265951068870728711671905499649941328763105491326083332531648592602576551612993767830108335507700070342293376062663479599939683790810106101300262622104477623942393765411628083145677224710173168427431399338026881538334581765523715205625981546512233567049725222265085362407707542316245734853769672493787695428305532392622594428501033516225203264250917644588584033823601913035749989779098522828716193503614479140150399474639280352353756110884873562218310950727813277805874274326132752787310356329131365297804555403004774656568587413156430895181245216904775916462734650462813460889245707493084869936703988540575600506348383444071767771683557473940322239787681119593875424948749355884584678771261309080225996245581770302668701179754655619382689612473351612223998922369835634099011684592067052332631967146265078320424309832970960293561084239583557652191102355579162303815056131631277922916189065646957786435552594885136391512045104591378830435109198002439783003319314190062502993176393294848802278741679164842898592378299953211732167200862589032498462232173791491142514479796503193576773927394244899559998995750425345881186084845831491022735319586055883568105925526420148217611924611525547011181184624551803104788879612974494696014890486527216162008190942698930227784371922227228205868422482054352575899233248282696966805573584105299189748127592543137754827254791415642828806664087262450659850958512390871338440142797917619580859480616611414252665620750101921975868761474860609331171375797260920992463912005129043380969265459245032414528902393048542008769339173704840955881631699781300161778162987416343543824643402316961183770867330961794110189515118755329542982051732736059951019344904893608567876383399637973941859662984862181055516674998019172265834405149441380572851346517375007209786707813896739289714207085951258685039591654790289881873971896498945628698549983392990395931241515126734633192969210086969774917493417336406173857468035391708815850107663985625088779261472995784827807180684899534505972566214386020291034812269629899439249376766249807824002727310662613839636068587439655893337518251447581619634371900892061786326043834070617304594367098334604124933289199200626326054663510210451702455755037285090406028839248451097888864657399675495791902216363629829353281755148661722048955885679174989284663436821076888890064528935481198364341413033628333133592734565231629711318627952056066744732253196851140510259678009225808719632652651598544171461278689358794460667081079190602116927986867595579838088685552569160217504647350747916367928220400047602950219392711933200269083394444211368642685125561437454653282610442437607231788447810723465777397284130505695947303892253196805375087184418825359375518816350980147043716334048275827739125016824799674759492061210996028532256295091563009013292175944260382554401635483531884708200112645723905323383938350547616593152354092035799299642284243300716449497542919891095016416393198449170405843059383812075688529779157232532582311683507545783092509670802718774123130349820736184079207083694589029156597463917439645227070210629464783755523768250495933876283965922694967002398145578301634754759199928438970804929919917689192072654001086849090767758311554737303213865790731725723692486860709100353574656221678661392535988560546086740669722832945736241162243039538755008214222243827891884808481462492054461794727296353018167563567575910476987317721610441802142564076289874506183693089819796586387814643394896692328249460144103786354856625798032180116356551912788337458364129928267358494781718309572599111316916148267434702033863343747172509594439315773895345327780806619319786812377864205866609331754580988679039097651979104751260814482672117583756977184426203740602163955691785876743955648273350148126214839115799901212205041103474335846301551552550595500922191401908428199705409220333443693811146762098717000155118868611289020418275232890683144013087431285972568790125812619807122932162732058632988296171089403680910658336694362561537096733778144356568925330831799474328861655181272418608667823738098222573346567609595635798681177962923870725864436094284481497533990476773146162381083263284572807101385682656081426549048085547455193197505096028113370419377822281584700898498339938287453749218387021963672917981741572729773634853666153053258379747739075925808073470193476637635649089604844643116784847525534823548457265407564155628921612914462049795434283237014303488091438050892538418949954974720110028317072734732885677656957285329390416837598139972702103639845006922548188038037189506978292107922686554649041027873278787146741071685368800372591504065313033323733352006149882116589841150527686319649655826452871979317591038317639503387921022151142214800658515703430980271710666823724586367409887715673841465667305435122997852849029319882983989831814634514738145691873346305294187892524827293951191437744930281286761059307222365342455564591336765984090623049199859934822335001103229193226965623606622901455965939790621841380146537004906688147512674503768159083298545540311601126830940435883894381337777549486490697105283633564081423749713868425222549823990910288170537442671621146188810614962685644420606547428869989778535679732664503275218015310269924094085642206036322620059697326353467531386866149259216024132486817730513809677881919371954889142700390155785350147898196173283797419406292924842588065135782611533050682848940947799432942332933044919024706287272751072090906774002508027380808283660178039959844094262958766290067932346921517874893024158465629861649550230404205071262837159886307562737163479405638849286228328166754019261692671335469218626327929567482388275246263058339575622983895936587276410612775892429876150018292238809886999197348098081013844277583522430756588419550949969216314994864650103760447399187379973875797326467193991499385292543459597988807376078824246438658586278771952378100552794601835065708612730535051673555781138086208722323401110706601591085754262070835814011593249528619326153849845534856356369985401849496027682277668314251763872057944554000730892299724564283788960918200507574999673905505293390501775356631761107352620613564404718011937848466379795923845976065466877820031148794520859356516254116229127426459112893600926539480033491420732932033327459018772905139114381232876696624312289201044197344574213561931971983432420786681176726404833778685809360748514927912719204021642134528601917553045657733942487186094009397628607116791009015851928261246404238207338987966718254428496085789826140466439527401771818935176365046388451158156913704733784107661650617411103426159480632735307703117533613266237434692408508582187004039703941152116216407815625470627871355467642574889943328569877172255108129170810843945834402571899079245921576348252686527599335625623500337852305196689963537370306959420428511472422228297459822365267388502517559057028776364377316487873401869251725737509731582158763943225820051359808025298279451823985139340497619109022959799158964149718623330072711105187851626471770496863621542486764514273068255381561285115083770960485990671579797988818154156016818167200475851065960860232714032831918471701751835354273187857690632864517109821536339245293510182268495331833009710352001951782256612039948024173282911568592812298210776314411167561177173790457644573415312985435681701300975912244024992718413660593723075668282274386614334734824252912999034890123775648703342996388853787728632030922611283050877853248541914858354019007466161107926847083866510187254735040002735245257526607715543574840067883679750217689117266952654491353328702102423989156216116977110967862975951848912279979856855235701462906384544593637948659933640468932169541832540913816366818558059705491739162683110178600872781859703843363842149427894854979789322375315504494193993890358903794469995361522735125169617424061656207722643034921897753553512998790467747544464437676124789140178433347132525596051980637711058080832376233271154682702516143604288235441210197917426693094089397426343352127846318112042971542598116561384457670436503202904284711130467614934661389181722966869180735518784051549272066160226451002045120232466675083204121993296757094682809870857877375346759064598384594825666946687213999773615395055830103081962661617973767945723013338572670728112074559334471838939018965312585094969974301722864431239176117315047179875567830916829173861244096859757398861689131675586215916066511784376776082003036569881574416949494276999645258998641098332673079428576599046001440758610474682970925780859008280534163873221554324204068750232824516536107419657663574891855296620622172415687204037024763242895248360125914979713355123685549102318574994527783684595055191853728016646675773816529079725590868092899996286546527946024660707328153298348997774666088444327519061075918074841479075114980006060907538150618406123805973815119854424475441327410927926490285214653021190647551660359275244841898479395595902401365338455672926550531431602215222752455637448778710028860858339582369112323482679142043674687274316796571127002792548872721633717267419013453131407165243037284778331077048141078857739123765603234374354916115981989342113321576865619471868725970782549772622552535330516705263011422218491232539641819215024195979153618785701892156627965414528151763312902237001302872753697041152117584407723534354534386412652063802302000590352517697093822882252104606070043650486165834081611183553298599146003651231326689376975086878741272207542898202285948047266430682748931277978698812343124527298040265162333965556776227886882544315217488228485649272759150280340968453693736942910342625120121865286266297003801601307006552529913967440491627587329619601126026452401834160139065401883567945023218977940113562237390910627732350774325046930537426630100426818987819833098747674425697353509461802402562784281301381158353873035122086002297704009700316859641410564111300469059609645251661844603190798921954898552269009022378630488215124273849930431524374086223000916201306440612107117214068932924850248873996692875398890849118740852077717672912907679186064530213431576989780252351439417807670520349494970388403523231067021831393283213414019669208955818221945689719340662433700176892015164194451951473785773022491473307774499214084729619810868519284704795674891390106653371958587620956204968501433002362760721652567944563851109458867978890498817072436070798233669132884626988553859201070364051531756839987611555302343399925719017481203489957753556606863361961322596490485305516622861238065790248630414756858903781452847854741361333486232734870012565675137681162136222999505625418551035740816946176277824101958208012867751571539548505245437468729778940424877802031317429981531758807263117393036614779876989444274918911964601794475412637424412616653448606868647185451768216110783564246411702752586204000122936570107967189127549866956049956643450803336834108328808420735416027998400809935879191831314689061793278540054083582698219003387937379199251800087270866955493840269442889946798477533061934287017733780799345203390184428501080130382659056330720259046209949286195503882330592334862992689631192313771880163383519890272633175820538352328903570004418870656561035100943801040206874946016488797904672937970485293771964198207136469019672111762011228508232361199265272761862268441767260496507555474449976976777398484602080703741269934188513743873436589163299516569640763401812014024131472528481562616178209380467275858807300263782515188210371206576553156345921821061975358090641894332639689418118204951197100633857613308113537796783970933798685718726675691105697384984721181526255471745525234586215742616925538735050600042516325235986517355806052125439263865721344495039409554817886079346227651664256173726928285913736319801899783051542518027536762796237077267839828266060408069303644707333741434620904494404595033360556550269961050711183001309192993426560071150011510888496234192244413369564237418747586421458224731352128553865858515249731333286218075995852831273254633242507163121805231273284182229148288612328077854632708308128882435419147665817200626224677160312574050206734005287496464128184868822993264534735500199369293309997047451377148200192787174529030079050795564238427435623158524324898778709585468755938807653143567184928549238639945567186233877011246814137549019298941919823047734862616287652062920420481247176045433597722345988894936066396794238934027899449926023214975187684254464323673469581769210641544823133346941156382460830360281457702741950854396839586228588856654535606997504274804074040365559004497469200454596167077464688871410314287355966690010847680103655933750430333994392763244602231108231483649661197029832597505273177957492538873355212901333253890184930161892135120751795670591669317738024236459902446125563134643482419609601506538261940767224056710840875300254375673478582081350103275947338574511089506951169470386737801798514314891617925340202277983936055760773639947193714966071773573715530679880145452323255616582527651219642863254798142185183467182754019197302554024289313424428382124813231991138756783257925857515200225039270408468778060873707799278894801684863782152053302085474218414777759360172402497039728548824999525325623333302423173088574796861156042025619529431763794911688592893207108429902980264719710386781821545559268500253852740087630858703405408665575038695296441809061557114810183169158846920482824532717310434545603544706217222347012727817305168071413833976348023991332341373078557664120766958824153160475555661652047552189971942797314423489927619661527575103391407251653131508919858275139576520632495565492221506508743384009907897052707792656798428990991069246292139963005041595405706237771454513136338022682828961133152811536253772829581241611600711324651120261886581258747355843982114296459735004434398781721652778675382861419243810918407488752005673200617443989607258741540586048512028233528618187219299159080395326928628379001066401154846208760358141223727670380255200361877981449321018576755070031061410524408264927543050289788189290165064855737627099304037741161994829839796225430158339280042807289407403423343392386798232093912414239333190857754096634159489338418665603456860657296158605787213010574117013457591903108504749869669272347870255533584638200817442228845651721681882940561076457940176379607383330854783430338515605213304252930497908941703271724716293220918919249958426678113580517443630148090340142561717172679011510836632516658133394189744835436881553341590522512595993346332425724857060170115792895434811407699163901976399875534402616506998063824409926813910886760579723264428520715793032713939169599823367592932982365615035457697185339473528073267290114099394200078153039068936131939554761015485705066854502926270639006350017919199865805646466918704033946459131707883140414212547797780259063260069877784212983325282581247903567674759455317697084469785312476144911337447678234873934746435898784559559333297425489673891282979910530656183329524825501484614728839331389950325606734344642730754540782291339038743179793905969627980061643181012074663245292200039260250546901074480502278841159022684033191578112447411879203373988825498008883442811405035433180075337681442921996728314350753275433058117112906251706894853136027145773250881859622493806225565747840289801000568019665287592220932208992463273834182818905905292370255012375164570491784804661434699091475419174434180829398526991680063560908412613370713771027861107764957518506225454993114792340899227963920474791747892883020380702075950991484435028467420890949045987106243856563545992451308315749925129306172246127262395880248510986403197209258728408671357581539836912503240399332332577009612066667842506463857484588509638028961477617630668159237626869000432750096226246723089760537116746696725727454630927411104202075541931169167093724597898885379879000632959329521785870337453426211085692711554791091396167041841607308315885809247858779482783655466703926229642584589068178054318726373831742328092631435054907313228881992726840337828679872727160249419730108364960388501882447155127901129862281293205692934315913399900596564622285605421195080768402955226199386748134761498303591516431685971408702538972442278285939075700748600234078472092979410950007162684569703569773751886262508964045272888681709918530638317176251959909285871860960419420404992345830559786389376104447818312571711450391125759934195182675999415666624860766509023664040662153290534768475302013941441300038085937254635777383887233000827090529887312496455575007161686374021501844908622909201816664282228798644386052627890455966612236501117700152810584721371395940662520444266568479314849421918651435176924400028617850474423903825117234822868357947250366545035862238131225713190874935706833614512379603882138686072175674470970152799077343273773127161677816881390892771317642275438414272623981166320593360902562505068269549202592982038070742226618768596847179836510533065269709075500404014935390066513753828086312922126043909134837702970944379802168321360811291430881503853292508572025288607983190260097098705055485801258433648436099717263243946700543431252996668093023766434986617259127416588199525478062243989102938274550728586095800366859666946979888575437668657839080682155880146245078165115564377775926497298690175322016731769966567367709785658800739810911016333988287286228251699777380168204381241623809355282162610424876626334733964491411635227089793222727459415732612710042891332651660162568633172803468816732464175473798879321554745719943456108448551375580333872994520014538992373388576241351494203052168158365296951095193593159830463884229401571851558692217037793934078607030457089791492953378120279541079078625990798531754145129907124092189338301309139353606154647050634743530091921938674101031903455107089330993071177669442332929498384792555368008330357174068470939882520587590259407009940694931607987112317311372351797790619268394985594508696034855167975970441656887788620121463424876397032556237541220298105756546387668760871528423536808055643463395407707611849903934958210537804121206353721651354469519163098705942095862319793245078282283731600703792602673751125579386018723543198196929798216849955343406605398339547052033000996009172264051789378818665011246170255815467419700964832534671656238196484228453227820873207487399457743821113217782469136539267265210301414163748726710764898027835245430718813360720135832038326258520221746224513296935370069463852050981400178480566718129736442820778753862288099446613352093873067688297045391662017171989349145640127080828596104898639563378856343971585612687792218997547480772873352448312745052342348594676232413364023022620093643488127659225269545404804964061744552961677207079694807312718489446792717762130639236682860941748874828390223008656986839699339848869725682300020529558828241632492446954764122274759629370864639646052941582141154537435439439016617430704008633817540139329940063520500693378419331932464931729673365636962538005470678460387761645435533797809604693297901084945161413405578316893601507883706088281360259464474382580544969795212674691699417265359196425379644569255288271747715560480018856315260903241934381511591782531767939474061320341459174606272156822529869904503275883284221003702509199146374480561203762738123280581578912148784762689063049472715960032024138145047298495734597250572668706817101133532934692062157567931761038840608068083517586464631833767430534739014458126311963747779090061404748285265573493426397270437559442696843404146750268555134533278855278751756103876595981805601167156045199475409214333042572369338214787524066356866164030790604998017142445695644527282849946241860832623326742008546200228261596661240772668021386112225687877938038374498599559028029950576476886338144493706685946000841322848466418075923185158492134627157547156699542920390296275524086394919225370797486190907956996505170726717311578161428172074718893600085976026341539750107069618103692028348272671728677680154377104958755354472128746480510340830032850918098311794210162011640693079401180493169760623482443368788272703578565932883095359093408312860233760342418413599276548259009003145416406853262398407853926886394344650869652279918880858722852085681240873983625552320960714132431193609261412082684519519399203845387111361399248279498628317201487189223105079055472129536119697380426879980760378099797756540835611319151479049614894103923070671940643833020041464911636631820855515055952797794910380499805819364680508332314600276707820309752317874431708951926067844107885646069275435982275693690973203287855011626361665018373358619772801246042159740726200019720376591731377665198730359117689659379128865278436089108260392138508626466479486536960468237865931323156553607841977026679918130225414264650124462146039920224271397548446753389585785769074961901460988053477753025245261020409788413457583650166192347323352932295386122775875064917660961207468387226572244034494504394632129144367062025019446285782269623959291469318029210761114427350339643327444633638339565172298716877800847702476989899992015806660511922456767417224415074701867563628216768718617373188172111245232814179706986516766630682272484086196952776933274205819877592018100527372915109771896651574393094033348252192091561906894578175048139345482521581152907778285543092698194985550050957416329511386276368565070805877570305010931920819564729958048742197669126143392183036322201209369557385939764428103728482958606617835640119498949125142305555997224877404155850643771842494061416137662050045625887827783248594647019467538195986510557770582650137769457346460134458936216947014509137439648024962026012357449796218542076639878575721728065354373303259055829894048799249750505249054873231554981734149205354677869248970941159058398288014467520993069291949015662072969911884638566944084544578808256267468647298322407317964024467078555329713322382345658808088126206083121309734101095132003499210752080928155877270789392936483184243182409039456238844421443180003464321788594911650361171014832598029284100388204662637675394029914093807991692429874860517347443132218503066420525190700659387251672789143411339110795057919161811618800705679314302953137477203112883005285206762178410640174876010782694153401121151539658765482782938183163228599100545210911349033649986246693355323937442659312197884352511111283186399764442784314300286375262499151791351024629429511104277652249015187625901641544403459839357546395679556224584573587972002634247022129946374003352448685417013236514268386037429103685028200761340553275255461760419336138439104674757086051554956815689059270537881918647591626562297639450047651973845723572234151825651709522806880704400704866887545980612381191962595970445349596987727959781932882119805030598937976990429321780474752445819856612657244074407836927320246513050456331465683140870013186731415845829696458316927938990123029984697596080923972826475104643557571142088184443568181608359727596841163038524905507257683950100740778960753364644560131334928853133939083286772937920028289858143714953533223757035231286944229855047614848084242438609462276999023934491955518042797668044780420190462264477047366917893804250982085163657613505504515352824616212754256390446062913757609318951592021407080485077984173883095473709509567356019254062698453476652705152385240174520006096712782600812506114596948996964978893639888875966976273504578357050549425102320216013541398961400548402136304211284095614768623832927922266022317157914442587175690484604721644605241035084353195313795499910682271209020192063709228391016951588709542501003118459210103289423225065481566967324016995977447431544250191918585330349632380636957236486523817764831623489222707528037027041722888374915858692813927936188684014946288928408935359350159734625837714106146295366305349813402860842641963574574555901811392654085755629510040910510420215124404089490264912982736926758357494135668524913578320200654365862259073521743820000082850647107799974995557412488300762318367894198012874746650481217868825188918015658982317152747654651539276023340941629870275726797102978368436978142728557882341502623717418515108931899074757127867244423249894577764268566430095253937484920263734575911756578375095057483566543146639309160583983838071673126281449214336811299162176577775833622142072875900546959869142529347424053840366723610827753698321321101273711428861117550642933750056150815323348328230987501435328204065430151697607488364483067458309911720392939156565869945193128826766091582168856419358647050863317543821026846339021497005394011598248045027630353195855056884747652523434278936871130861138207580086326775397095526129751296719573153356789302247468394085175814165881163786719052871615279188652371651001306728531416948453290279361745045227560246516649300764855245394895934960511315712040891023120230131867094787891881945205785312639222011731901244765073699775511198131332073791617798315930095200395729640576676919335423006961184968453718771810899276202712680965792850562960808162046527373903481103636711541156717577211575515821857273556236703781154861315083344620024002452938935927455193805806259142641468535355941924575041974217433014128440085285101423002210800730544867137784347845570426387593714930450212771013943926996510008199530051359661355627340116019933830907057840168616790263761069108678595951860615310530128953083061152917982123852393493452311987767454248443285004986876948751708141865068913194135618071513771327281958478019128120647148005867323200203638530929118654173765000809314260031101539749123569563214481415734745969080059315872508079699822437550221913671172041101849927090525113068222604462678989496301341875172943449529638086384795321594621250769999872818458676402804077207125204284574363995772042248296077181971745555591902407104492541948832563527905792969231409878932977530785411580487163084036027798058246197183902539535420532864563479463191509261839643172806501325746754603418955999051333086467844991073314578998098478267321565383618068155322961929403104748314672818422776479727808096052086111731737318719969004412272927662583044543946177972751567766924410368877394103691844507131187518094704028179458680846980659109818069791058742367621877975030088317697686801605871800969451160011312833045100716458693412515645933491864773003678585689157647052675240075125260165968307069563855226207718332221301394293999462123654742020560342139121801527725838971012968713964044124952400910624225219725708258243552028577333458107879752040470870033619793149054859956766299461136683981477953682562514059345688018188245482305017457517708375287885195083253251852363927890021633974850086671390999596692990371240125424674829785068026033878842782397256838404263424640799881604401632892427237085464482757472114330136633661094482782868844958514779755702202426771519627536298782728117380919978727595702052734242569490478841340447332715248486013898629977404412528821480304473418639877995176130453555780660218318024081100611278649300278144725632971676244314071523683652013708383600743161787205123597547642813368342498635410958170830874839624295240236745187974259719137859558880399136720539249661759285573137930552588063463562151038268487583998293336368563152722195180480810029420328778169178075624196669974909029827811354501365675718921840553810713645516897640752441535068167577036476480465912950721111339545756614600171341924957404285922760783965117886744545500109835601524667907301899748621539958522922554583377113928205633277912922024487877231937146229499613848268646797200083555723088212016760489591366272298014475614332395794456653170919508001356862028974607601684187271468411081638680332416874042012997199862324556439273821483307891785692084594778222648932235580299725750169486538133138043682223110443339117660555601070554464219637820524939465895280576253040976271639945429714227522689255424695353019537519765083597110161679385327629906687580410059766463644601185165990796695960627116624337695281317086853579563147096469398192372685579124056082933502245649375187814805315750243073113532235731879406139420210107939052721389900471359883503523725982405574189437012985301239650048147424299168176740222506030897029509830363533294227641890355043155195520845845259968355302970281839720524033572694603903474989725132951440036384325708913987324227500782469138648177166412354194384925347353856400792161029370570828158172969002441907438852368014344160435588515531986971354902391778807077352516913342528110608189093819696828428334875292966571934794980589001640984038697821863289623149453507365013074771063105630650536714696312840392708400264832777229682429854074940647579058837880491537180062284569218213053013712882886986304355101727677217799081597436396889736774943568077171472068583494248280290193933787002090178496047525717724431080992299115927656917627006207857018153098449710266896492888733512699397099315060734503067522010999338489374170759928823901062320995996819579593857457649534247886967514037885770474706527403197730343331632307274350228174422401133196716173163232858716250732360057909730137487012227214189084626824689363031449167335071917768917024406168529666486859730598395037727767071588509328993976155288087113009916029760227279286667526314613349216987707004848562462180840491146333525508024267144143537609972661353034319777434949135331465024110030899217943211637228933473765740129313259553757378266308835972365093887851818585797019034761041791871081951147282767983618977675321661790015791241391414790156181385083744984558745280480583708023830295185731332650276590767209646740230607074349275717089078093408962950207948607986596715784001714124293801501710741965585496781564417117351867237651805207508367048119797680192662882257512192325812639350927343933841980203159287968211919621947278174002747646447205979010035172246041336522860842290203771995861235308584823367059404627119976065423162004702386527124697489362571317854488616055585304934052921349225337307038726060724575244190669155946801695065858960487557116213975368244535528754278506638253907098748502290647641482930066500058720896202793595592255892122409122215454798857159156972736089626969487116302038348797307322647791521234097028251784140281932411604300541672012119905260507497794091561052580116036337178367899632410382129238467556955511968048259460030413454163271565400334793566211362491623202150981929740326747620259065076710431713513294097974174501441374202273518008336566122688569415781720058028983590677780340919690738317934458337645330555125182868440361728205877586081792299640247202655511071007861609762237544545482082748415207942135569246126860182294231131172902379010152725518494747490792756579207517742855792208922255995709114716120205901073808784793892549120878713570639095968102739859614790700766264840840375325074888761453489909384492314107113886804489381870827522975028975279026016561722955011428721637054673373207451293056775362791484808961189685532821437760694116055250080643110932485854164657165435628851045308357790021631985512055679759852220441685080016901651207601768790401472682485215319551588805218979523174938046498692733097508096949661700480479437034752388829710758847702990306934452269650909058674459739666357083517121076149427095189710571921642640274676425662394060279274362225685159274481115361656111812021401265342952765370176431084252885096387306551946006110343834292990839832495539108347584083549964613862807385546454167709865236762580011731345209886127388520995207114620362468666756535428822457786967136229476235651020460193320677755867922324121957026315698695264908226495562112535641755506703176647928055308465453918551511055722062560286855690646764251723399528483592076977664152725345015971578939237711671467190029212302709631563805532265848936052309652327156058595828205430335992553836210514956899867480211240177984613284974178871205698824404669182395517323717052318400267321087045269294551148251042428021694600041113301660308750787032213300354520374401137103707848185434592040838161425783697798176132081728755206418520479817142305287947873590943263478877648542170669052885002923417054910061065806484925527916742875184163712176853504880298346664214685790783333920292061764828334350049099215357067147532167278858126809048665232118941680020084328136555819514623873144632721363322227113300491259140495881207140252462056387245813845343054842609081387048145365283445540664485599608841063151449013959553122545870865476297540355996587507355393564432409858258668183629838341926844442311951867478793656377606523067442890723031674377606883404912917979824173089510955284626240347747549357813041481557795472472306634886736402568089581409485012223967460068213234957187639300412594969943378906267345070277637615402686273349877658829137653228974348581460767903394761368448201050500332629252688046598065066187638749011767477042555326761792903572833077594558981607910962945872412348883915356815281917114681695867076279393581524567603780482576673009610224506913872510601164158625317631443502768322250728890370369440416205500633988715104199768139478857056411787336926624543044204690633268158542999224165469500951668100325013822715881217321691831366644784345488477317645848045782448683106494171364554346425285661230029277458591877708457871258412977951030262177183800044339732342124254305010053584987418953236469259934211362451408318446813517151468829179536107612809233485104445311559341056205917402245094803168178331195612929091930931236254717507540569784627667063640578558803210223583315572782712192058609912958117456237542223777664638251965695366561226827346847681164279035192950827888327423029966317586697591653135219201086579941667592153147099763008929752939221840236256106178014597901058642002891694771281431329237749793624134779688677023215095877570649304142873018379365083282041356783978542864217621625129680907052222236943267532429783189851773865830390987600370184313688647328534064441496569732252002420972787998333167792992182047368314596596200990450611189591963576999463953534511410717717283082525112492632759581715649514304956890514272234231690144122754653806962118309890070844275894782412946583412919688468667018843278682115344710693092874461041625105773128658496054580769604469279539818417208524950264168452998187527212603913749742972418061940014896413889954428930555318393103753190205986229675927116290905560600676233554560561676538880969384006114588362338486678137097812252742945381463857542647167549046844694545465049704630788786681320058908320045140187502331315508278810714051117722561450070250311456157002972669859218663550138829811901353888135998411129897931734487093725498189453383113058709279767376698896293037747182689698252355027021309239525732682113683310844797169889265737082320749814597682775368020435346969571451972563982979027462194003239924930580965959718648801347687386357157890714425029543226710191775488182359399855041216883333057318937997562445827771690357725144066349297881457539901428223830407722870699869435112516146974720973872144604584806124005652264372401245573925115146460192719259541928028665458280820579739931024854297248818879330872324563206755564250433403512343144594961413258942107827323008847443870517331023543677046061123768416156777430973853021738460342213509073402970292193215251314904632852397627520798025981201222281771070310430345286131564049133888782548491263254997565831521983641171140310376656596958195929956067567908442440298489558048463420189822241521297327922230881179553237693372592825182655785486632767424125217413423610198922570135515222196545773307096326085715757300185262449339353173313252580292617978240808096289916789972714241450710938195164502368394251296071161468076647667082768949906327841725652234863912055288465502732834480113044722355342676725989973114270299982424425221912343905818343345906015642680847116876520394351319794888353419131111994772796423217729321608743227412135135907532434098842134252723437383401343261702229353346461796992057359008504410575458597968315510962716736473156538623298523860154904203551473172673988761405316023175462802559748011668776178940116024677242927712648078057534744574352786065294971205402864635216727405909317172905460247998839240766802623166084231029955056066785775247075969889530242419802624748244104941357057454838052029915088677394365529688958435129363691428643389546432632206141976056946250088950540896738044005971882996325300274385285075317027168086696537909856106644096852568127593083609535192158109068335761081683308829647870976912309370312106992700325162679995744685259470659935277735388499627057249983151324943609603169907892669956710394967377882704977184170535804781778058056004942141471694939970272960422901966593195007530406657346785313385871187754481513961007909331862461133042144665946638069435627025732826307621352241678812391178012870350443479896077188397510288829707099380325543276857874698779292136769665513854658452822043484150602563441164880658114430104621474470651070811569073660665032588891258624189841545150566834145923926393193689261513298305004066020992825211883685136824892320672911716719104531311645786553786905867638329911025519597798206898738087965192275172997441267174078800947694513389538055581590354676591885193639522673617753800940296423294875187684975780390131094450470037226112176195259577455868307398240886186415073696795860642867426365943295109782741624541009881856574603136924471875892788634053166431290045164968155436440421978906669150386230447982051376820723714821479430293706921375150477860183705455933453865697862056756668719172113920750379984402985380401566392758682826794949299515681027934081504741792205809434755262219029818124608865336257013469694139856526235528411720181670627153352215453621348627534201274435507172175909261026009093923856349406601356793979575892048425541158060391231858334055112163731339664897691772192263161989478066289672740474644762564659945451354898908434887794953040749023357688050987759918414101363136173057292046042596521953737896464327285316163671463619894117114739534751389795389477369553212892313505438963776859385344165870106766771972339908070366099836471616507091582668075706746709681872348362751138739314079403147806841750112580632940570477682913282110444214055950136186465661735870309034553366903826967620779133616561916837223458558723287721199195211454654265049159726005483720494144653103760819618539555806716154201843501585315382641256585011205551904390956587622732093876211071068746931548043679948995748894972739297693922894491004381668611326981230390349210243656855460452624071641829078373995434314569104112132827009016822197467921360362747583136536409722406275023146496737420955956732445711636880310043518173517762288857857186099155508246143373319881920554561341330605713135988625813824163337196685258864218075589475536633558412939752462810151786960995770516098403405575685799515709028087652148524845600149831371232187601522391865322219291924002667700598258371510838233853960664054094975696060621593295315316073641484989510547499715980485980454496153501087887017304588102342028888440516830834027684172961387890617287680983759776447772286112000298083217017697819470795155084834116188518270644850298141439082134582255185742309744638804580030711647562505703828562846626179875991501957720573793635490165355307708682426191515339751654918718331761157076708377579788291974426377372335754064243054797368531538292462075438475592476083428790213242951123098707202532477138529719942836258953241285758759556210411403108662327979605172323905779829434405349347369123340173434282872130276166968997703320210645199989272607280781516617743563663196914521580340898853619236973738360563978211487183491651513990849464172966920567092883074515347596556241030353656946232103726730124737041124257169182786418540964230565975605605222525611567356753042043869050386576766272135721253441976087257305357705662683179763887061049292998986855265694302842664008200709248066257627326352970028046294253673364211316788296021439081126860282764635050798984669480653812922887913441376824957047226394555499640620607215281115468381728593350995525574538334209336973079293183908573893096675205659348655710026914588054100925288257966623156250152186199080254502541497972088433912092695484448105651711967579147754854362644674166565220037813345072812410298601702401219852639781683722869993322420201202889450615584006909635950253920801433876699113897419604906268882678127840038496508833883878793152519752020160673402596837971375874161664744077109503902365601591092807802320839185723778875074808811642274425707186877535405249143227357562542696287454833531475821099071279897710092024460330557091421851142431357177575907144509628941358278106425452172541407649583401581089548047939265526204482036205849117895719482260353775080888451055579974840498338626287575904465096688467797180435945837667211453665579363422929231962812203473251080872921841014938758964820399343643217825322566071014882226280040000150138102980971084163472773978483946240115444705637555048590375234186932482791224652705425378277555338117574974131299958896691158740103068544857524258536190472519708465136978403899127162434418721939121014885067392598727147780618395540030482152008057140630540968603521249982155647780183317279351232149381088619505404295622739758888855771332923499789957656226278922037236876215808591952069165003092782643647785235779806198127200786514702576212555135087801252566124307721561984313409191683292098988800965204984457289675922871746309049585090283753992277687047633890941309486015985432110764201254283516340892072506490803375560571760982430227977410396950109656374213904647353917684906345119967829163994131379295558354506723170478342612489116337554942590736303572508897358410725162622709473284020177520354228309125925762130248587747334780663149103379709361318971277305251152026405632482169552996975763727615563707500669323773780045732574318965050154513409619287569618425924237158529931814709212949164377349662383965217887292581955476627952242503437499874659173183215131708198993097140389880783175981879636306431235964187611103530247270759728129878309915696391075150814816119963787351172073274008351930839255047112267551634607342326948501484869102097180072890560343068878101482900559987029238861567875980359196678135301720218593562660857868582510432949766209781259623850077323615496860668715463769602233453581857280692362743328462150910074148726937922688229694276590087174361596031638156195288079512998650550711329571842235796122681371149540696884236551270013814418459149572111798655635995934926144916863953582585956961147958257326164957425264980489136408854422079340713090478936813768230229445334312530908784651562302537358832641201725353307807490280177844439007206527232486825414650783714158376159714295268751243548912512969987806308633987862990293231287709436767884928323138225830310715223257354691368970517209952583744925049176220561192616265816216925927063040160132344685853564766193638788018357950631356177469991909805638324662084937972028412370308534262934868809960335191293415510393727553443444855114514093120425063768603595046348560888188413875961550757336302871014863392633722131985050821771619295240825841758840072982382245025537891812839772973857894899976159114070725735881492179587489145357357489475408564583316407398273168281816609535011943813190513911019659449643258231141687720549092923803229142662526076997832794174474937360579878037015945524029931520663920120299383797516762172409918123850763517493076780397072868107990634892168235472707106024639198098476800138801842867836529979055328335437540619407695002671410840454478901248784429819043858502314068155343544411952927734251001091932528523598452241532351638579780256622989761723278845992932437582600083447220998299483366274855691739609100324404373293800706409681206770918517654129906937301570061159720274285395771552892276550456899513048401058153550333941868738163251579644587394387509720206746053171922002511290398653769520007483737464964063828960234976456942007810444070907983483529724971666864165583851094301291898348258625221883269960021876836653664725691010037040895913972095426978739384471366687082611242074254762808892716362504950297886970554861414722826288714323963300487483765188464276163434995757035301907930196654177549037755632253813336319219430154662604435365120905580481577562095630903313271513879685741076992656745017873525883985987421596584613740476507997135647645987218596740040861723246269968088199339105791737274388922614152260833759063529992083067606281830090601948746348241673568657825926521361102018897594140011283713737366292738687504506641054706626279978376623109244310230581275734608584926265730921056813622309501061110864470142558787866074657894700224676909320425059184557382734287643901892244975001438370424151642762393210897618715242686024864468633110743712935565803762044961904077258675621253156875168027318944113099692822294647682036559852986026606615905388303413203227235584025046769292429873933053936285315168620088738685102739282117175912096056256244986116056255928110455996187452508570199720215522708829501785611577181571221243996332811107392919741627823416407681414264420051891738930197620398807152571032079540960107475743862144758374558330265300818030414495536052451963843612717737435451658344962353265306022478407867697747110825254318565351923090060891820908205005082978508069594035799021808502146985745926017292656341488426871062004049887216701634598013101313873094830986899288941526590723799484200676017887019904414994720290203869546876615455737107213074586995309167159410935034028239446809947481545182518589091443328930963283479776648152510508381055088731314614104247280564276679380858790690837176511607735346989359648059438686928860055699469097743328426174034558675604283500646067260570857613614842091341242325099656296004873023566345560442224519022591259737106115550604360936010507004713591369902519827898631380353135211132426499949724348612017508654417540673688345550339703411015272140727854440378254475836091368399133478395463719379859368214109730015980652665772314897448732602891359782436227571106908330114136939234779004561007984950847314383876015669573260251299867871621023296038974586726044606550888165679605257586229630303950599901657301160272542622213458047216138989998227880495650745104029626080498519421976387547963931057573210689008509629802301099923507499334658035539713574448073338100136445504608735963680318353996615402471861098397294603644863695980583443860279995015687807070051347751859983917212307360703232701825948024356608894935056184512276518558658733496714544926365603604105758105439363625431585017157648883951809645265556943567162029820285916364081322212174600513175793773682717588086953542982947041120288847453400395861314812779239456514015115311067956836315134045575312989090571728829131676702541512150490168560656533530391655469328404088735531787005408552548104186339880669909322482784382524125833831860536700803555780226543114661560720552489548489807112702047507764287494750237505474099080385746203512961095236372894719393237905292588634992402496794161334737759280533875092591939451826847838115965079788218929097987074504695207066806546278928375035456417336149200899528461249549883348031480136052147330369667937153385090440211377095871816781095197346388095101716039081858996631800113696538947221468686297722227354715103160720219733904190182144988935719875425658325658328518776508967619651831464414686899345322832340538483261105409127266467503780738988112126328385617469781681008141682240943275257252759649332705716097282270302856980194829036379724965773088760840029666196883491362972618267617201201704209065545548617022287942304198680894397192166655291797428205387683604062673562880368262337919716879612943508069127228924219538747748635312762102414188566113018322535772216725962084285118873717049380885149600769278311527465688966837741296267099940108754307779350467004982860277854758942465509157395194033417072034017490410556194477253542327821038476508218677814629128216037718452385002701302242302543647763592179670646973081801274493734009106759715821680785205134250609732296610152305541019449312086468143778129395103009541517090481397496006544958067199491953917681085552668609562215009087732280921026474003443089318138321998979269226370967743513508529337590544051953329873589697112219458246875081807157772577107678825777690708425456589282236579092860504227746592472213186829322629370762407968130799257250685808667749225717389739001535249436168004407098995191873991365262326187408422976234423453088525803931611793001683110486947367360375062757951289605385298934951570402981472938469860174961118897467797568279000764601128931298291093113729202993830171469252779083555665073724430337349755865769994572845726976100086796363754009648419980739149280560075074186200638281773713083885271494878951467940892702468038167674264362491625013211968854352407439141313628308337987561550896868985457962979573538423657873857258247216190087982417016333949939313293294783647470676649342529353135577496728415103415937955553990601293528911744537908276816352246718098989694755472884915403047103321892672906541929536076695757950533999608958447890473657372641182314366924713625945752218374813718425063616895571816724602572381959969715566767768547593776607625081035322715775156646246920030849982565605864244238822549116898840331800742753332144091020106992370228296569119018363205404621192994856177660823086643315148790826784967755939146288097844091578845888193785677039069590193746613676249437340466261857647250557466434358269114863759811821814272100521798127579237091071374943087960141761703332420462121413221572478142490330813826662736610023175764783708535065389171358851755052038619490908451248654406257105213772843293371188414840061629759631124412844749624096080071892872783112994761169165880005002332968372660970414404792437422009018020563463967049744710855323668492940057343514147069053746107552010421132584031063950324103986336029578705122238376078092987026569625181757425997165793786461263906629077399873006971361517546367437576966156035289709589570598584940102146105544041503149478080290836995158525336355357266824193407020690475057868629078571372230288821965962764937758888138472830044690212795899097981105592542381244831451726710960312961231656085040779536491064129553960927969301484974860667100056278132966249813645058601557130281715251772440487822665299040365898864880519909527181832198116729077577523231999987251131678128146480563711746818972932419739128797630476041635512078017127433346685698019712199147917726364089073911609332121152017846646608529709785917687445310457826316837710251150362915127438763857852950832185123472019255374656662967385242495017133983993120780448125172012991543701249390319212554589115414601363899503884901260092645207394513719471919249682500655762085539679181419198864891185679096974021451913975870245526593109758030941047904522640383124427405629961275118283849642329409334645076609817137859952854265951285018468351464545726379231965245421866008600964552366392644363999487851545346746801813432728080765017585658921599385993252814067306372481609683430490165303629719833044935726946202469847675444207012052058192389046549196343129386470434815883566863189670980039136136851830499575030456834016767577015515252837726336870548383126452225864986637520005670668562432758055116369063836249963845157959175357372277063736989277263995758605953262860455105517629013634297282718598794420304575381928442130418077911507253123745480549935133765585717133643379592796812190625171187020044970739023535433297058856458834430666927984341238476652064680343575350047950860795837815765137381701652593850463151418674525915526073186418448010320835168578442476983064545677575921328598680137867336434656812048765044075264713647905164575174224182774813314078869211837129088800299726649673436830565954186820042598198725118923429878288365706617182560905879799717278773885059331840950030716780724391306707678393382792813533936314291946718206739857279295009507610791100350483762433264113233475622377420836032629612464679223959881585330804533706095061776427143331210286338915940339958489183151278460765927425480049777982268592760747132769618179546069811599070432411008944627162768444381015852003662820215149463626550046512996802719691302949572860621140884384911494638775302352566219741664218954969833304211584306479843425008887497763389555077402274726199658629280696645030250282572687694699992181181393243513387073878027461962668439917485361654863724160398546836643538438272857968001568831305059749105712707530262708581687109343617628501681091019653771197531105964864558893708549485748462173363542827560537683539992353657899536727376449312164901929790328105330444778681384179124750239401306905953314381146816420624340416431613827999118527735200822702295152514832062782705405628239057652632693245203216643720696719620215091356214560472793389514761296336913395455665656029192119137796864477340172275523657064521503826764898236886534492105270474264750720411900902243867283362805445264768321517412242609970484284303197350974980189271547905024794060903868188321967615406975175446493250583227266284969779910333500707053755416721083810103453983999674658153200205706032026443426073139902494500669929849252739606251030346654317395264008054911371662920194937367065797319421295867210562855165370064859486399258714851942986001207619154910176539818489040991892483320440282151142376133200070545466257632341916863297145601672340084815931189618936456922084645123528301248249473398149484755243494571470739358369357397662542254096112546960744226650781126022670878364623851249148002338233050792251061936438328298326112418022954187308892965558556709922765765812360280030585845350493524219197455997682911994322336639263105061694288285554410668355908857121725305458492983147111081320203947802970181132899015901849877739930706198937983519230298216369433220675826864740826654040164541604838774819589055252613939741528670677805099790816828977738360662201597231662532118735505265097217833573659480634539376114111251193509966902122011286514109787680931601171664477549783883143901807039351118094704419176493888753346097647972648245094653095864132527047456399749606606186014373256646257524873569476186935612953522253614361185538516925531188327856499209183404927389155461333175959338326149433504006626057702608710144950315847639916827114135973839771537940103587404436611981930808239330003264679841823948128778614755829760480823603348209038801331162334050977706315040589890115888174047392341617229945247573100413943186426476982404523631467630352060810065448671762151087067374305547763842954085891925211098368326157989567981022285181589852153344059620364649958538182047120273059016474053710731805629710795380727645711375275343803204363575173788480922581888474643714921530702187190282292131850497620120807525595339295449141229680542528829156921533276408346125774562396446123570059026588794276220783766514846954620833849751989831507930838170577149429790498380124743727457660119022360403561836530495840736796332554008103366691950846562207641835123847836434968907562698102894271131085018521445278632760595673347018653889787518922804083326410891453909975554115685021010681245406318404264880852674537289876144386898782123734869010370159573616381516880035096120626267348330833454346128560476832772681588448663032520606919045186502096951784096899414599896604450969307868462811973352770130311163024262331695552786208189241026419154259180309557733183598318145236432063127907529098475532724673045570811235456604536578155695508569484012382142495925377799376598517940793844159352847366819094190445173356407737579984017429385585509212161766087737946783274818947277170885540869911217091385612061448251020017922175237430224542306536419354719332304083009082016999149591874317464713638307225583251555188137736997654856936648175115981148840896731344310947019693667408321582106066453324195915343629575972636574263431707838499892701520541028845419911436241765718106204549903935641249177222986634767687203493682214418878128081819408558259103949791442963577322873131675618219434892109321355402965068041588647509124785067969680712341854440860564747666259381997017631257328552693558278662442846192347410421635043861931705310637139486266978643067325970623829409166849463149738447895933835289984658492484011646005037259422721922326208003127081329014194935844185941283449234687994006635611824724087421736359800285563258638220625593196387951892654000862924310959292927720255278146111136278958332203943985149702877270503295884966978936941009317753316663838715345052532076404525387849962066780387283258135978516819476139776376805430810114074029528309456157132224540243682486286815870648057647899760453436808043735824565917068607824003269107227969818579622851705768262877887127555818180227473077221700397586508055342021117798133929956842137294678503505057542517423504974258164922117821949834895870804277411496625887667000566240758357438006526909706044476968864409825697877497990125887918689302329821154318369960098532257639590536499146574863101342364833849615724460653185247338990013233045042702656161939799482441580265729820084834761888645827872631771203380007617083940913734281346232117354694253093307042221744294227597464223401117979455431874677214963941927281436853508956459531538061209358261163014040988667375732101252483053976900523930192975258569499862402450740195721282306980854758939427259059516160040456307819507009986311549096809577102375797671522020701046877430173500216314282401152421888977941896688249650510066945708860130686737330634453361993073617721351600590159831553319549464238546046344185473215896981976453380549842964569889704225595145624165889792493783429598179665953422589483772084339801938268343873646316710669600252031732268736200410882065370505624850729364570174826742760230166378297763393976486279549268741960406884801837250885892601352569326537473759804224794740054063803504497570138832131657883263975819787337674463626889427514533339753256002706002634568773655902697583597483311122809126644555007559475429034243177865558331478816394563240187963579128556411978741584494139541868330631784256562679675250611750059925143029544272642459060888647082554270349964808510717469833983602463547846160912299273706654147274301462740659193139681657237767087812229034552429524979163974850812671178070415458239128376081362184036715786656533712463578200247385584288399149281021417786397156512760784318733025541056052516107889166829977952818735777278819272798429195400547447327538318914116642617974445473117737637465628278745754191928324913111248686610026928212285049992063747869439881612835077910721039896679389937070294295197124784229373274203015701531096844528861544474341925152991209367422408302580516611425336578990213391765346214715764305164361106929328186910912205151714041026478615910178354395245844833734346035522128782589063370810949576845340355497785803651013023967133877706088627614219053678311589837632922394455212217098612170188401858543319696965996129549065076183353561993187838718129960220497173186602740452327742029226724445600200705512290277768635049337632198704681093118027379700292034118137871371952562764405615725326286603919655216459495817430967140426153707651443107360188563305032376184676077529474732492188041846600634599298896897730826492893051902437723497657205860105738304700279520213368130702625842318986670466046376874421435300741188861221002188312012218390497135540841866696121329881038557653470346434725796050360077590646457129799311669373425584228232734448620042679507013762664788554682077616810572909266930979189121956517179971162095784342565900289248314304794142858257008433006300313895077161923312001209534649600292714684174656643358955502464752723865784993722009150042159826570991725863399668744515389004227906664782333487237195300421451576132970446418864152184484378950689790046605127109082111969183243925477846202047768150896011633308226807327289073033271631919494277056774117665445436862531140002333008728000112949416438274291680462716841279164022557682820255689807724366944298903459577203747423023179231641097275789299449588075630216198889520630598464567684620737346406815727413304449219038240476750316334152702097709753370822657019373512134984192232020071450555361897540987286001830543544222228844502757669631284196158982005347178082720215615268246557345640392516306189829749174693575368270436603324417114889610452458682954301680639204655388168780093255125752536897111923946508986714222887673850157155245375197235728525366314796268282302192570725763821665292383976551582358336229784985309060796245527152977396578953969860494460497802021122675868279345330733520857730409617438916842855632272483556106601145956058710907037452760511122935596450466680608390933563598706820231948942064989793330854719549928601378749821449830776952009371908833790016034571659478606694716104938055086422847112756917009779642844965676148544682572668256281918693887279830134416154112168536886027014806227033986451571752273261534696002882565524605036359808615691656783762179815327058663065243723666679661017271021416466102417966286123385925484206152255353933251038279249097711322207793625255715902477747197314788959694541896100264197383493752570856085686696272106186449550949316782914787559666854022300345494296078884337012779425730645397285810351048893784896682832871355130984648863539902190313068256486926949036300794964290370922957201883100569291607573111241625216563742143520000861031848465141492703076242579467469421528035638498524403899088409604856170276400143869371899878997513278604905640491473755493412678949341594006721278286681290086275871301073683884657155988747140556659680979039112475034653530272137038436538156223764046455205175688589445537791485167485299818648666235491887613637757126533467365098223999756046777338396035114508830639191524742653241717431181740827530019862246093096356065392326158545739339190530859953317017410973775320970930100049346996799292900383717511351719884767975898445433436257720758149735692472510950866555862504269722418019919625492504838571789556255730892920332167406036009588893269159829346074414203087815599836044988729130319672617258215770897073483502479175900083506509402428192006984044740292908443774356640456862036224073974708384239888622693055107271991671003121447608781924773490047115460769438046885550106779439821553683137128045375996788312639222151223113591038753180143503274612362780205147638405245673703975298987856821323734895028391390013176059858135742869025931344183501940890350559881771001936544460502907426519909839124924170612647463818077293495802798666060100884837573558846564926258463408802577515549833017864016980797861728748463062712943437436572243385342741375745887555330254319632763127720639361746819249272004570183131368792841965727455187980091925045820494235658891319489274444802906059649393310309515749656086036953034537920251577573684613090179576172088269272409644781394634268926007940757026054928208657108120818761089157128504804638135287886612799449286252436510364250512685096068130170203063541883246869145850817212776806193722738305011679855501875692447386517494069506891373348755383098351980357597741568208597821617553731745625541516193689546383296151748449276009685047790215004832337979307224073859983138549803424808876782944247218407393142054289528736233145408529292542927909988959250590834552256095455292590603031615268269570120529790264934899596963119853753339481555268125383484974498429316921265690513291267126146996608078229610181951491267796978261165660446453433087280135664716633318521037852212824665570657157572785350919656348628462545842463556655664574530014711937677032375674517318267256195096333617026158393290473453782567439653827827559723526928682159206666023785142602394340744554340256745926740339494421004756544821780708330242138081480895210838192586848603297204068165307285739068714956119469489120672493547792608559957762111148755780615637687706153189982732640271487736056692029084598762593614440352480300192346422115066428194644676491804225045009154988156921446622717999589487362002692733522193549260492229540113529899633978324602396708385193320599868820984486191422092054123007125309104283439782383834998505731404015031730613823025989499687106848966673243224019675349224077141634841687583162856465441914201492197130714502901351401609536798080628430142676379398410987724130533280960630028501328622451124679364027741691241750858009123307178311900549042332202643925413043537303094856892154094445781955988242812376342959395473654292539029605953402734603961093847830505132750462805163130715821160500584155240077752373650082881032155167912116320316326840658599835917583855570437692310520382078784117599798686634504422919183891558451098300501160708456850752560967362732826732573105419792726884642446052971278846462169480063878919656820224464688383739171418786940878995322046137833303137129137804115201637270698851431596937436785735113485611002981356034129022356434461843251321303251382960266439968831850092958215634571858217061981363728180703017944125836946881064241466047069372470166747724708850454016468364915060043686507012622501043862438568704464437389227001684464553821842142507088404667482046095782697001810422634312317536234438456714671524628866915776916348953262828576676622941449393551572119772997031014894916100412848209582926403616605179473874282460250370236926774563062039054324854602095390812928743921761735538112365904616540952616866187179204065272202236272999877770130898241916531723158438822306533923408922528247939626968742059715672943275760997595000239373838664536233571361940924919674206254823491956160104206274603520446982190336114529286743511162464421559127603654686602192694346429425936271009861221465783067306642018501885265632592761575385761985262178709393164021910383349809479295217122866094065346195131509833319718052374120880785414832218213044249229338361713946153157969703549594021761744078173972347983168961663210195173198337656514090628526516474919109967097596939980209031466850132846114872905457212311019382845289711615245181076936032958868371997226323306834202993000564205857658506528226018041446045862262890981091327128769188425876105302564985078358157714651472181016725770040325349276667045530800139527259992183984419006679244639852337665644621388912943289434443434622775236733707535803058590218678874099665415982243651737778652127916825358899096500800233248760063123266946184079606157077845909694970578773646021839126217787700139602469496070247401837322203882088234361676858927730870947349778396789251105555427381804537033379861223517535482507866236694984431922990283981756840374912580445409762410855798734459761968303996794601477455577464142621130903296369333193877119293250151222644736725372551038402051702991379741712012934420004693107054288229037132535941735869862491245510720921988044826455723214778926981671446808840150462970336222661752428154913377634880410402382625313963687633563736789599141864008311237298607743416765992392839415427627879459761604751364855358132116257709850006653379721933813611581562504415215216689922226058377570498576911709644565696668435890520429916952782026887237924397646935402308381116352886404849307135542007327791824012542711849619069489971728152043253962650482969173590844568479812982725698672235967458040947927696348911734250102139481790758453580041683289494715917747192522811183384029094523170643988527049676017652824184678200783460944705112399436454021797223127399632819964068835475869205347572934080617825752672048667145222719658737530922289823029217304133048051473123941662758642579004925396716889115905362191934661207448744246573603965868790543895120574480440519088895493968286368067599757391431569910201671503528663831708776304921772804889643850051945651097558688003113857272172543057894471796087160260832012311719167529693470834004493076116819433551216252973270577846514892360561373245973356711136124895141362833671368647983149635278992208517427079421546148984762907542958718966849084400786328843930327874961841795400813566075803426364116003660649283700659022064485183363116003627696663994222293592171758575065089172923660150442944050290316322796948972168345577803449883334647991402598383661296119709183368282543622083056773656295451770110743450548218828770224418981840964391648726083183627398411158770256699527758397230948653957068431902425043290198998093907885523169155665231442750317933727448749928683980717132372311982137647302953110172060114415783604151272715592578573452860089914754612349512141935414192130282419773515480819711065291492681871558262836716395045422894812510341197995806210214979527384400358321342238001991387273589296384736828104513829363607216337651705619420259604059715184057523597539663617431287805354419095603840795468887864185691123394938250581772421072829088657027875826597679802384754755706863256969470135297025617759189727770034362277010406762148158842804127023657553994923703457268785054489782948558697376613901436419224901935074681388573056014804928495505480362545202452248258884131632937445214218526288825919482465812808803832362800561798023768502501600399099189586840905868202905842630470697832341158958911620182188171561187239850321550092554804771733542083310199497659362215581012902684583821585747529033904564616633934172482380890072451773986035407558816484583675055031091452756114784011767015397126961668161178937998139954521497147489155411485897811221838053048054819604670178622001052101388510373483111172885702762747336240762080192797123517148827215039151170168619768884189916670037005813859799218588758634381935976545831041289164159174900231122711272142643698173636619865131372052127730177348779209342304769761730961704692359069544904054202113983998504521508415202689914044946420874573964085187467854708917512305217258634938943932626369318462136503703015810452459944089942241649200493958595087061551462938912392052826419353858878377634634996119997010395009719926708695394932625092889432746135832759504554462699846695314065245258441505126253149263902512089927118175681873840676919185388330682566113057364232020537288674229266051068510861656127751045142175787713420438314359158961730015742388499586427782830780607363826313486353852681714631166641235988025744365622977970046652044341241404775708510908647322625992965217391290837436706433899401754703166103632961629246735062292602359346687382692513988591984864637122533997090956658766213279653044227976018933066486491530201289700160736930794269496555214521442547719555598107371326049021383640078882843018973576124001285462794110631935601181931903026311893239029808524400728543071988082436929195376840023669715544917474231159406045395673942138458666286115078445389753980263872730231225113890927247169935903127529843232281223847875568996749183899746818275676865144489266278698435562454645782912468576021754304011745430810058386423581528833624506259854938245198652266572849405569515308835255770155769589857323951411690543100073719446331060742590494787928403292435714387514348370945126752314415086582052250150802051163315078940261440022885682724239531414235472550217382047786106474048035895413755026227528955283191601316511302513456781271749456660606034462914694605022020989097837319699149465692292499628229801153656928883585914955244274686724811104495227415998939147841015180568290986125704135042025690329175660201363386163109457466920927325742493715211042841503603696058777307171531872191057790314355709863138894342486383938977826596818507649048526423919081328340474236547672955535433810658837173978381169315854547045650220564406596733130280706160885194219618015640843633718104201802668577244847063821623261827477110501195897074416133275496577176042008514774294330117580597052275407501000659698509255311500042304017596823450349442931900344048200983460622060610627071804341217549262300375492825268230513532804476174293434821876476946889329040718240688473919049948769702641909993712339994865887745981508326472458609795190219638826620986734695975984634360879115754779575235253133460637455407603573592805838600522509419441716089609690915543946493265396969649170379888072100304638310300195246362188931303843463900603186343349121405206801840605676105429244119678008759142133010329792798799170217069990386421134116843463187078915162070716929733395729693209622391438558481765153021820877026839660212212120475228058243504855734171896832531012252744021082005206594785374831538460056156408541901822304729676293036696266450876889676448664939627689966930856153044627538782674858616815697206734744905791129271180418792908123874419340510340654723781457670519024358377480167809352161080932505676897591469259626450339041939382863432230858048129451118164217656060138638651105223790105976415578329223808511472411667495311945200396794716687444113923276499841469493555661549128775174320129879592127359127053056537131110257914172287826015792165096836270184176729936744217632614483672577382973132762903759631311970561496350567401597192413324032196367788659621256361246298550286240924094470106709436234506075318847683873424005136982215161132530938346785807018129330286529818893998478253613143319052486231932049966544720330467965690796093571901577845366545945359519606757635741064738667504895750106911249528668278116454309321672668007485596956567677001594927777598950887863164639522788527335531502211246919174587140980018290718422541580037113023056328111643231189872181414505223257545249378219569059197195378275589466195172029335398022603719987036608862787907311838824150234738659939933012776586961211534042184364127870582317927055848973395376442659321830323111497116831188529896097520174377132699691561187765110518346525383040720719211497772664379861245014743322563489168105941214788400541122530835635189079525733037867748555359240459219482251951793870373972207519708247385983458926292090512706908259896884177559022490753985893971144542658632941149206435694332380814946238153537470289801403854550167675135933510596994891061446978501913547783428036460974710073352741692831393331692461892168998735150611854374164611882652238381242879301791448001188081511502204859211074572142629974676214183869452322877376271577654020429615584250551353424043355980380264921650753846543500197603553002339809189893918386091886888813906258697609571848515048416325020617531068339196146164790146050350155807725009540321503368949928401971554626982772459202032057615779064644057940632782046930215217112385418347061326617435964291786265522175272335157457698744761941840092573652533920412633857804745411670193401687450647970131565518447824146410531020453750783863400344086458617294624275420321839300767803527188882172117744648598308325887554670775939113191551954817670026885525286592419729405601919983511871916159011059508691691978381648240418197289140212862209672746679499548489569207665994220254979813682668186686387344434209326943967835164449888459050240658237051619711090445162860971986140130370266819084328122557971498375935048073635194134197297602627858370996882833786893182603549029678287979559053837001527756587926345297736414744753028554945902515138494366651626622525250197774342336611469450587573781797127396938676466023497475532814325665875593257057616463901482415853400569385362478674923432082447801336535362606992668681926383352745680895259249625367194358264275400048541377291136548216915616716120226378664209962001926390739818274565574689745830496958083778114168855560243189104807623829017868666538488299633585448008320542502114660867228575738924897059375192406242256254058375486698718515477818291202186524978038020862624075426782819643240972631997598754814083134920001734186653099145860011936498730361677383882641889622139001926035982495660282317412300014872650914823736778586823530376087011834480804648765326687399170458473972818920421945385956664668229526908416898507869873269634916745205308335341538575250506938165977377108456903301712726792665544554271014306089177609775727902820795118538238444534774491156740621205576711489331373151094961763139789887552687643099868711924005887557799589020237468836711931309173985923927461266395038037885405986856031146898441769240248146581602283898767890872870331852483153376133673671206083040363708376160905840038258893636771680973724465488332045716450061313046504901010295648548086939778002226002277126596915958135813903626978284057691473480283019993970586946793382938108414130306826797147680486037365588281745383009632749739222889919842686683757945452002264491338710038671485219302179146160958538913462829869193625283107821661310528502847703760596140754267623095631221253673459640751486309165310393983624983920345422647601968680167830470080741081813269932329038204082355951415388083308703741567815276618641610296596378253180071796529138722239850844445682719728779252425984055481459835500582511678481314942862937039133258920796794778764946225240772493331698916416380337046440580953470423686749577084896728089184486777393781807142927408643356365892611810677706108027358281282024201987144350034491368570464998243906148357022542660867588919377757103775285202137403555112261381491669879400130228837920512884407721353589227938635949630206006358655637517518009120255833533887668612345338133627912154032489974812026504183338393295924382622306410932761561814801763303199505044994060522632544030582351841045997931234049948405077567267399223510296799623077695816341870840255142031362197085570720343865315300888232554817700980996321047586444222889207222590302438498248240187703563299042532331454368772451500543980287373899046936769957516513406022281731442343746817783386657040779136095138494065803396321019043358125272022639029617712661025742463564325746012530022854496025610375335323502525916535606007803488075114080979748342957763071839060505214005585026245173472351493433269338924143559714419431486832002736953915294473306194216036405601102137974526309077195427703331805649260392507607220406119069299482974127783570577422279780147949217625438460229672208936710674911650053658294316983640061537322529603383320442074686817941223888267479426311347436746504230431149816825092083041016502300390084957048863891378461555951847638832061761293155485205735667860226748450259104064700703329343740117140377723213848070279004328525772860397430738964284734727000814222269161877708332486934945899944480787027871170849181509801282810721668536183527493509219377616129431714708291289326083126828231923388609633113834632478553035487857362114875116928102462573407200283504489634269092445612326003667042296573593608345516654802642530045261293340037574915631056517468829991758929975233724529769108434708726641539514858999258931296889717141566295475778271868284455897786734866881106323187582140007438950296173042105438637435036235621730938042083518955565956955816787712448806253639649743877866572673149848074168663483859275232190200225992160877964927781511433453971206318374967807969378925897903973286894732838007466790851388323768747959337958857452347674035763597489666393645068528278440571230459668270498753594138903237597693514278725757096899446469863451096405424683947792027776096816274587124712440300786622922888398327550124480335512945292551343271657689889161651940925806657486290539816949602618483913321995592514207823381717037735733167152679471096601318019763469754683347209494266252386859182217581472471527504624273231696209703223037719970482677237663935108023194395241439524532494572401227437423130336723276949487128004457009467709082071326609200653486841928713436023350246262221740046487562773060055338035844033061891840205961690222066507923161903347872293618133250163279930340877467228024423254348153914500031213208507313312163042980050644331699039021749946688101626974977506908561788276037175027129952412485038676007266115024402136700116194089279377902744298617261231963880637476412448117037777526127109162501330166372782752909924909241857507305063328950898014822764252143702145282051767344327611832804031442280679784519764124426522298457249237540953208132085987895979625577355405676734111235385248601055783997238173515609838654619641937201191393395669311651809818510892755470453223469320294882054890131958387366703715919466287023930942987755570147823266212194559215629833905667219144647763087420897679564286297380117960171280866586922270450607229689419821551359466145375745888756550087373293820110393217985768705394522641647771411699056231646314976962790931369694162143228756783274108356031742423290581575400864684458331744418620180414553322443084370826018195461090112361627251124703041094670603525883761420826670534287760834557343876134468378781264263178063517434600090426186064580802365205812639008548040701386209949598397896056123005834079211987685543781085858964867190866917521603449201284554371488401066898410467528624003619591731752920621122586021195714947813691084027493808867213099354328663335502073609452961724663206378413308550033774342987414882738800929844559280115962513057956159777383205353116589356307695684569951221876976153375461704126281209928188602908637954116512121557001163261341235692691046213658433232044275975121424821264656727854240455416620663053567912123536594326478572692425059859516623474623273546594974546513736167703745255767499275403041856723485335808666395357799420575753046269815436741251538011785819526923906603913412577808516595766865927377508315705392264590901286113894517700370585699232939214257807641077387802738085794100263469151868974564581739384586105557586298592474609359769583996297327045924360222865374474807663809249908628665286513940491669425318309042486455722591366822883584019063622602527475307008097766183625491021698459196841064340737662855589634640717736639960854162747966736215472193214157217642107035586531872404800480787552240328371341081716594097792767250234683314227319562708693287918460210728274524133050234397485975032192007370209021639362038845960186750980015796219502806384116774549876887933264117726194092081339212599773299106521652744879979507244995584610967027289843159518219893617387407787617808476051056463405252124404000364324167941373252740603012352106790944939609066849732805920185757765821625819479640439882498771195926707555531824431712999353330578060669883918700826657046009180304192702286226897064339085443070003099507658052607079729738170759063367018052463924263574272694817631871600926036989583583797213538548104752202120853705781549287829411853713794034763066626512645174585771466098058919607480359884789897412549567320310494238374273596178081893374536499773666431582356443034088643731934053731936538811177107958732309261438262168080294949891911303701456940450107620634909533621011131884472116759781787116141086806078924721336576348410340231317065699481485697191705499821307611481384878443988987639199866723772606249171281126706069686875225342951129633733230208051194192674737101586653850270350574750016865846247099172026544303222123529349498231068909089640631725387950461079196894673309307646052328494832475680949643532298965934379006093658916202305634963048858538234324904372715773281642028752807325736346452762038276634474641337825266540404453918969255426590441974081626292582342181169147864360989869888957379813830406434664219279021590954381316996252794348936562773599528896447556579993738776046512978129277833115406644994409322347359400646790512277745426476964931319391083648762400495386495345331732976292758542579836653273516104834061554851294266692066287736818309305908779105729160714685722097115713364535750510973913959597704410250314179570284865292997328053542923801708599603635871840241619302494535167484239214494179684643985096720158995876655846342790186760112530578921573940925266459552696061979476362407502811770872202235763585294638310651716669119902951802431170073379914323085900823691883958184044339267063619238087637554483617718177305189829772580773337772515046654182185391702883910877506692171420708367094348459210155813841713035927815565849379805164029464411190935385587279197742786918303987530501916529658059556466322888989319095918165764285097913488599748781467971727949889803319394377198223009470830442525537980187860938714172144193835887601029079256716557631919349245185644827390381926841292707627780629627079842086075313220056619068764194562758226322537302686091453647826435361116683270172870666944948070337676416783230479262456843113509888098575357123563405443070938241386246532432914332292084562137529293977434067712051140946174642360393238320171547190426933738898858914643572194425041890631469801576103707264408873230033635068492055144510641295171047957844309558956046280880995312463845615492517987864477153303544218728663491380722074624564220277375362500604138042327890507425882798620282001415187335334515585815101979292844276695059235372141144419054154020865218720460935745082271835541212543767750713604458426933928172637285399434215078569657315601267226930251363912573765398340987798904910104010124455982102265648342731499970209104696005760798412850052924152490156537888159743075126558937390240297023864972590092517626704388462032377723387178035545399468750756982658541694407656833301618896387358319755879655056920045252122217254042918218519279270047055548901999163233500024386454056182268085916491094502016781963002701359663916845547283507390804290541461226244502835374424254666050141362956140794163299349804490637864568396624791423501828100881251198948942668898402772594567666728253187786421776169998595573176045124455725246721779402392902741080973460891587028633651465633262415498882535399781929277392474799901645991892422349650099579876504568444968348598433782555227607317129734454193060588679058217659418054175715620480230369839003650930488906787822278360075558753772277273279436926950049569153141750724467544034607647164912902974052277443719703782372964736551099292440535905114226461552648337856220996018369604018284949082360793448245112690469420229415020808108084799797033028675167628559429703367065318946670842137940009515015437448821574601101404753427560454064550493981365111043141613153042079691568976787498214997551601418589617515051449285202743367655473239321880604788567864995111931266445121179543114768439742517017164514572288383977109335143043936828915610651737035664862123188718864391256657615338214876790484819959446895472638270981320427848086297033117679104895992539237321071460240502143402101113712198578385891038293805071843994680243290577841811616422989143778630619602536877269115891141773142652878930605159019853826148246972956928595933696820221245835357377650350326212288727130675750469496122130586322085878174020816248929607581385389930091672296045735854181769977807848225967586099774495875539731278257009434330697666730000583687328835149739105510644598104670654121354777736927466821688615641164140864141693549439515932111120739423715406584333387166983268655446005586162868752967590626692013945977544378223993456080125304429549378367415691054019903435127366602642762638701104699076159439123626197062748454878447004081980897370860405965526837287242431339091293854602906846111722593692525171677333663945049740051523928602468085017657087076927856336285839887085198895075815437069347704824861282830429880528146317921801291789153061212418601289930655123329750720438675448727561408586376137042970273587664110920128235501416207311620633548364694920113132267056614730553256025856332485105010334805811906581499389211588589857012958316517945820560104127938880165538970603864293099921325293626303943284513671459715096735642169440468324516427689567815833452275272595592861683824965023326324722933554577932580676079943997777530324462543915369469125115854131521507796833287489977227808351798601727041758479098236690998695686835326171022937933698019380712675854728932811358530924487126512201253975990776030497803408716100863911153131325689610381361707835053647719088487547653350555288357157963582294889950745282610641929546606243280138212608192559908746299032269458068074503529485683479116257062013635024467937466774253099260024073484034392134827642749430173292586861565979768728726282477341658218437101173531023650498681104442553434136222304152883130708016668565640137345887637173418887445795493973388446892820454082592153708654060954168052822124058203700184541767067905882497707951333409172889901629074299047056682561191955304464370946769653875811773264790675074120712050139040958009587541927885154266366967607115965924129805308095081029622803755593223081417404917510780204587377606887271344201622195949382483930541747749570049656976738833945419416118183129031961447092785668001067996740985845867196114989931079277651172251853832602046552279570189437435206770678060887329303666014263192320670622910451989452564000519419211670355025531051568214553635518039780138127197385036392265754548050502540437878072306486746899998316565821112821676023931167999089462089155706256296844824438737676294913160239143728796193326250930537962243154069265815814651926206135959079724519985262074416550746013938496121258864843425325498481912771090743200164975553110993420785679535233435950316554633502389778515364017505144457804936798282430132675299361805447863255820983346146772900851719680181458217629378925144472760896080716893061524498695309378465334196640824263929333909980496859064275627521340736090121646403745676917118132209047989336028554467024468163622856528663760794118343340926225246276424534138779346627196510617561326019768764083188860259408642331216170432881430741410609260215675771329371059098348942606225873692138678021382495402185689318189468921481050142491348010073457194550721889831947238697234195346237233815472412763398786644699466448285882167223750633813954886533255451961059300280393704530293915005961472259806133778588556737969219281736335615447576999814715191279250041931370353089159595071311802702243720392378342488526556541248281986130383910539297821853433916391071737761766063735025529086949690756799016535933167167471245984668790195428464305095923435970547825930568258020931232637524112329701521913422246074513185196618764999247152284949737955348195524741320825768435026241741853125034785283954339927110053493705014611963310751852582666952468549479320783469656712930309041287610836105441339281481665147642800405455943131586982456125023692987091918971177896665945413268478490324852217051915209904941026204443716352508123869299694263695606130423611021277846033731229395379078648230234658058211901503837177211987575514548201395999153800038100760500363032686278184485770729987539382948737031296269327793228031039927217091656824712528774519802106372802135580421334116877846603884201305677287814332171793718207980633493048601627425420579653092962891527423926546918756018152726919962253438177442306078873055619084272032349616037631214469278305513724008230684116319213911266939765080183901217845703384935546143563514930254060279968809659803485909258461536762118825952440237252866648076701503472657031164763110928833333852087650418335330433850848833391179407496071671137845932653857882503949350510701426356488638768479127993988791570479692014059085291594030614532851261548638220932398990327842319494677518833680290048631924949525540317827302743705399126870003803601739624821747472095208255859420156841212187722951511984845883977825132573035227298938317690153676876437227092859596007383994146658727153338501773234302004166265927112218402578736034066450266765800231735698837837636036546257800585745116780995306224753261308035418869196206125186025930658018701588306049362130942992555282608478465136167495882906040186432064946511674720982392203722336477718055287638754498013153407990023889502596619783012408196102640601214854996697982471351041767098226806087514913050355727832858000895480593033094820365718605593942006990345871913405545677644090001480031680008070794083959766119799126100250523922603133072059206498677797050995657177285082095190501220351534050456951293191335457547006575654867020094907737896850568379970929358177904001840349189547158715454227969251019841961348742242879932805967566947486174728547913129038239735756448537342064631619592580151072412764907451911151492230058703489232153313736207855508162866452650072797124616859683794114014640107045875108467698875065022940314782228598692618515772103559245586518604359857814332517871270141226672316090355401594356314582554612494539020916929303200431669179428475821109658186458230675047100010473602553771237461117640971578207670035390558661946217636313803236553436866158105748285527256784302051452972048395606997686762972969509257391427935068883116696379680174915431282850596649860979515198320098677041084687023767301798074619259215428373513652500797996449198461748871010530387009509897208422544813516717494288132545338308215061036039265115591678200471454317607863028884138656296876491514050449761212152229120844555924787527272566864056883395320390831844562897968455296210533582445858591265572549756905907209585281367291121038082353251064823159680806719841000722751392118127416466054512807920680346541370537165124918623495846848480401385805569663961503479795541172706282991922299211585882177785182711235744506648351299018373160413382645089013877019616399595338704436702899666402305014535589751165700427079598088186447877412595716430208334737210695631038374795671885405456050590322115581874385861349568607684961685828438986906858322141315306634143529441964511248338176093330733750927512009596500630785014406790255776048215441955339364066670476068676350178036412456664026508584247103875711781948745904779543570960933446138293586761560814929979326647729970180433206620389380764206092609626870533989568085576742670382876062913811541650469723292886898285742310597053813858475826567940967229915118628770537105573667797590630506493454162984262694641983953149883008795184791899656268948018022555695815652247794654141017737515798587262584623715526351848714946178726342379020826952427986878094417750487919030112005929087024662893585114950796275078901068263969498515412903905650617291899011786074803717663566789818438596485776898516643649049405985475970926867467359690043495057119143771701537251300070826340372555241632626594403750238322983603587525005118104974459295266736113166981413649082159368188969641501189957010451972475667492959034022486874156175614040301238951825387491702807803682091193598551251933148173658496812819317667842188527010566569063985891264591961884185067423135400870872192540561711760390903237046772712796390765694142924946569027884549985896291253167804436325447950905289860174163790069500907196616382934268077520854855760410827747659058021640056152741101040995746600667511088643853528955253912684371832284872598941532139995735289866412536294775249783787680701943511542835033801934788282294815095265453602218161911545597570778435356740644215675227045258860817803905532775459102484045294363926189213199959321107214448263920062011811528055725367474164859612813098843633693448854711978791540906215010612894812774046536381048195734807502524824161136877574577895409417509627811494477942102671811677604710865267972007817771561966410187483969276406012434435014913922899302195133180457316786357827749080132245149222913579690347799103925035156583796332282654537175670469528568387420032323067262878414073293135177558926114464042289598084239829977386467138039191311160467669315706025086354313988207144640452875553037809101259831094148569635119196287940878541822534939564120594023238765754373028111554305374528177114644881449103095870068000868692570187618208501330370004393210885620683737984856532101536204414998561223156545054395760975572656066440073875630797679083918150291746542092918886727652665490984417203252156795733957597637914935651664324798456313418675478360043278127134911574084386291256133450089486460131916130662748461206286551485447176902528103513531534070065833439239345314842585672689955343766999085695533293733922846148249729246876573114676777452988694815358832178365400742512596330671680588647032321431834910209579585129167647436424301693273795737583196449966245124992278258541597395526926900020351259661457929333941615813322970320553640705379868867874462229100129562627722932805138240373796077897330008856417521801105608578393682525044195938458065216897994274908626911378214163726200804844592795935367462019511512449605665866279649914531334247283021536165479796652291764927563989385310947744107584725221466634241936504686570246199072026914479972655821354531540939361279041407238409716458424448043937590882877589628068303188267956371308246944536671690672657113582314129259481521729274201554438478945533294271415917551926172250369620560559283536924966960495023428391187896355461681302023377674629463941801861592152318802727905066306686387388180544565511093606984644970784129724538855944746234279085663974955263008750846474387890648076193449884978275886795295233808972133346448403630835435814524591264640323795928449366005292009590206624602364493613779773019190352399753496155611839717842811475460297793845181168495399748717683342309770943178386915079955279356576564398401939917579446122868722408593019188270779091463456974793570676271006258801988241049024010226321008787478723670672186545727607739567650714729750491347034635194912887480329212515145797306431299102990152070892781411088817207047759720577489767858824217563331932508403506762595287633544119156801089970947806133090975849444796126157323459614377888535616101290970110512743110380362731637458437825561781093743739647324964467580609526250451286089631806171311476960499561562657593449341091789074108730744260686877256749240904844034155291844016554561785095197499133740687976716206722488166675921200240301985213243603458989797148456211096958232860125418751302567450712420514232124056973001066140346804815278555133210332636478766341185313977476868391259264254872191237439391576949829034615387500174489066645186063421305514995071836736126042077136830196286018617334469883987071220942088262480808795006615827530192100037957700967069784391131030568608192622747642146524872492755956766843864756852094396979379133394526604308164200755759518295301701065898552564321042194105889053038027532678639247857423707356824901792862394814809495343579910459088135456656829677509022595622352183313436733171908488653347519842462574034681317959110929445802060110209983403961534135233412352978745681455222541028196049423715751487077217771314706357580445002012743454376827378271569593737213006281278544452757617024027245546960535830151215570384831866257782490054003917214896732879233414367179468445745403848700116803816793811377998895841453702692064937026723262343823455686458678436866062979472621506297406813975922907707735015685801443734391715027729137399433082797255714833344758096937740160099904221290721196087688799223306826651752704757720284249133457778116011038373531807556396018366590488194488697526544878137683146104701633331535421784932967799184433827178121934375498306507873819352587869493257276383367757006248917983320559137110827906997228099761132550233491028223186023216940887438438759789484147666750892677326188771280925551970475516104042047548303441135399549932830140551476073264218861915369112707223941903073423974966672972434491963550957482609511829815380536115223997139508778448414457487107840374994442482060867145286594289686928833985583277448567070612137623420398947628723810092504283999349622359779867185834764783778955025025428080979734462052596595189018552038858910791774465524067831521586003507218195521671361488416929841546039354252971758440256563888499591162484947372683548667146296093250306383935820681070096737529939000728323631449637377357932125019579848919606997095177199434326941171886211274255245215099817997272415595371066995867146801150928911442921598974180457550513338639618084033909425608218426104376314173378628639204593056135678176037611173874405107400855073044358323999728539698749589293682760076982421278350403566010344985643159608252929554287250456690131309829406059043501477574365147469067899882986385402331498521398639251588289755563498478922854281166249380743530258507237429081869915773888357841383640409522241281543776106166566090369641672098053222641957513061010806775479796528345163561065546517729667453562794231917333304359852307272027711308489953196518968706100276254424775925991132035557877190006464195737699691655965570844561435096340487079796240746637110260342277250002745675065795573752643079258739864170425270071580351775329029464884474621215039891939105274131726447242785911590705870379445170920168566803679195373461080687562137133800899018710686123775739453859843939022748225826653946308340473285660484076800750276719778870452033313530716329723679738094788672423944908803161286986355099846802832262202044306209195780324870913155405428308633080154054539475734135115254057844332417142098297906724486194208268039008911235735245698121726865371361890578907472582013944758690066889654645840144117767329473596168206008848081735581727657137297911985913267566030776997933787829605782234488503250532228945542660295675808176532905466186698181450235645963333291654657947320414059145595095755517144571610733419111808300666518452388912136689017022128606186298380107652598073316712262121638416303115529816299531861924393922031287589367555198336690641374093187317177743548169969810638546949898968678904591166502794400668617797214366808218680395346201380691960094804779733757951729724499138157908694785732359024878101031335516556352678550384027147570474447454683426243580117381258035367320156199115588373899831601855450904334426960815360123113874028609980087282303523421126895153220176650942888774579683641811708586545764059311429984725654908790090659083506532117255746482989929648842101629226564248940893034731032666463932040858735269766264564846630984595038632210847649387798456041502037034154164513488363141659267054931598311021782142952453972021235624277498504725921946291270740026935890192245250066871296318419665939148868752961771603070079947323015934559864515541777870994858315396830834512679118796542151418712577558391011730598390201786604908287057948222104482699369704797112084577633688419406236333474463903105060384147968615230433460010336525916538032462280850879873382749058434919917968548342933621276393388612487397690609930823296071840216755873509547368360343571331985256990024328992670105247752127113495226811837314170652318419005455986882622487511169636099837852463835169644842294008690629456542115475200467990498213180158823141654564696031263564363698746780580758897596700280574972723247640096894579509721208326029083233895619869792902575023542265314295682960087775657924274969355268351554216386726672765446795546580998799531004245005950487458828384747165081526783639157418469923018118097341055886692019820137854068139192109490514405407368495377381843908995460292509644203319298627165536062813879899389604184533792641117995471572068469829438443095189741271677345501665745260289676910884717483003275426702115457414599729383558091470355010813418320637147576250718624965423980302411207286393356058227570518648378726953587391311787087013590361189832918144827535385214526905930505034585304432969445293704815180809026222862354721446311322190962300442781215966238898026712854965748524805074394726288717945988977067768900152078223885768012323340537329073250085913054726053178490650797381794982605133522706796374383623466668800428796263396107743961546011089034610031398260168947569704584313181234832327158963760802510092948492141581706687655883673804364528266564310461280955363900648884005585935328234682195697063583678738932015171910341699191953402980195108820437595004713208524682947110556541858039904818537816866757290482732938993531395749629328701937140607290946052041911141498883174542186715795172319930546200893693514919385975919324730677403621346959675163496538554904762217411833779843511550027241827472950541878030484199669354275100412070549369012245144031236213146594861887129834696360616484663141011993729569868212523585883005643567774395310358660744952481892766144887055081628090165640967316704647239793235572933445685311198277941283675707219395376514308156220764184232316367557899987696825940527323005359580947372313287687126013938083820978489117687189504726042555322773094382871501757194578563106955407900835005832371624123407763575336117091587019868737799948666396394504474110858960084910600798994927341755580128723740051271246701451436614033135575972321577145484228056045800531234796225197638043778690441220973975364074295490568446070220737959039570869453162075333746122937824920260893879928539108852824284630140736432495924978764217899759253700304005393733285264817666846586975867073774169902428781104489309951893724194239990031457175305926408124112139298474262338173096280052933677598426057324950632828701870413551433313218360060830316480668822760620998521553002387050037027438352573636257167796771584948346873093408193732477999815249754656510585309091033704427601025978347481158558887465459973461872623148435223426147342681986637474569455904234262832999438829108647588033766770828984275871233407302515212441545789159828585050860828123451007431095699066767091781336357496247988738571079318077417134333757507945849889417582891427556229064292904391017773994593989131087185210840659234558946265456339938881432330341752089787088780371638689183825612017414049599257580777238441482252176824680260106552831434080039778347080090614272504437623905168008853410790654485132718323124162298172930737731787683033730206808467161294370755390450876682222103938159637644431711332670878183912050090781849477353070519731770870022427876889925678886075924812243111330795137906865911633758666284069568048309516845188853359589235402368210863953246460177561113205905293253915628040264616379562352087913897545054761758172124499884965491040894133808884592063822084216735238141906800512295935601033692406354049865881715366730162496080189351690421311559584600658509030403050482456513400617522002468331694706767218917772850338484762470601027637932120395110132747213626616684501472040177787858924270463193920540251286816506914440237088454951640948798948115427300071833655822581302614549416634825842578464437737263379014957794601279670625789503262237890731193186976943481897216149454026068571594157219590952563732096856450072533722209924761208707863252242515901203905230334023548237521262525112322401401722724435672522064579540408750195159255625476634071070739540319400754811742516338382046251434294174538135930507666257916662189396529447667023641481063438230290361216015684803783036075571856113176809951595839443999586502514310407366806943905369997083404898088969677854122929368420747311562374468684798390981205398149497149911384459667374056176914821770879753758545346260205101230961694658705234902467449516152324301019719583251328464926682826694224822896110763147268324861480720821127196195211283049345325804950734307481914128370749372990429791642205679677202725966314812093307563125015163065338291281263691972470140206383471584439806255527076116211863093968545420897885745737457826557422434687173480627952388675029505497092453117349904082589127206925871036036807905992080079795159382691692356189728834470152332218959546078508608930416811843170959607477975745796917338296822875155662434063039018268168839968428302770413408777176682800561997756256515189543957759411299917737390061293854036159428645448369206340408375022120330248153070313630267918629013770104055662688358937566363048974678971979330596912210924248055605232432940523327182321227264284321759437914810825024024789294680435034445294840857031710538300319050111866533586644082816361657413890044048085574326871433679931228211159108872484584558737241827919025220843166722969544657907739203533180065974511246703475798415762827771223254307861458675207721110873029781024304344413092866164374698358015995999824861971764661308520259271563466934780043103790738746768016440713683371751096266643977097012218334096512155128282092246134948199637934142217354026807271635219294483452132361593893185875562190322576111020469623146694391024421280004979408479728717887048801080917208757933278763076846593994160077582545029819444344592920976451001709123171014677990883432359793984422368793065431151065398532722739091687048269036960862769600559281120027122801264649382206907905362973994554356650999895831279518293570472459003426738150706120724220292224679382453115502160762055148022610365115800281095988046355664202038524224687621309814250793662031579994848010793658404468377421749355662934587507352610319997149893527682123477211129630613768198338024314028622190669548827753806393145190249069582513476641980798471077843656684306972076253697357661375485997875631754006913702001803024070096380100347996277272757135296100067514357720228061102475726051168587035883245970936503463805087373933285596868120629437188673618736188608869467823555153172206974002095036651556241656434174195594605590475623132358711613541181346631249108180427017590711795961376320260305380987001834154925271577292267259230183214060120210147638777604827816276411106106346886616139841145270827523523251012574962153770656778682100232813771848137309661236466538684716963652425605586718721937493938778954755226150463437619568419818560512315335467377196225393649157484260364249323440783318273661490051302830591698990603925458982652996498102411313033015599665798734193261578723012022055054422879869280108010596546175814944557782555295154871600867660418961670540884446110291154619128170935851369911353196786401314858277752336845868063278740438214891698799203900442756961097675237338484589461778508320774507683879493088994733443673483257202072290442347354397993367525570549229588750235765642290357457909048489262354304940456736198073119652539040975420288779109974185351054391438401937549109350198447145964167057819870779687617429116082617963919121234930443979891200855952855351384629198968302093946266571083673597903378370514285842042675862467623579213266437765807953211888929321590596897499193424469815902348267149380514253497135160919745656156883585364975588460915477691537797481853567208271560859139828952228095683131817477142571965363243797577558979190313274772919518099283195076487923131894302317055224202016486563476383791099253893674501355998608036242696056951299110200779406521380813328021440111084414924823659332460642195255689160041259769994864029439231292325062012259411483735565678162760713308475634146150527082845078355814794120202756188358700420848748323507606664898854509732618719808085544153538669755347573253822516363510085094324574408453034046252983558889125835054883798469879232319776985279696475919964294197218774857811585426511081474559010643050844778674977480642855036077890599228243281796357610156197995042395228347868988922068827338779947181754522394587087295193064151906061351751396925647031154473951257666192797160482558600155719867652959982661964082593834895236693312841930887851769343812461193730493261558886527740588481886085418758103998957835433414469053014904070924344019180911648340737442319514268800376734540277364161768145122239008210335438723512497800704494515728044188156518887790785476596629090389182607909717138505687030860206639933438488497739101450090369897789474815685214674691925814178976287204699890074556909113902536205895707043116892860626722490035872121812701694121735984347554365688064263172482018852943711294480695292078120891523282402097275152852325713642868101772877475684990208460661079857738482906391883234235230011040429096101978749844690522381285338821517877071697757338511915472359720753538253093813309136397940479410250639156772397634439490361322659412302494798308784265591166865007140122083301508186935578617341767699949541124842129583964349262966416564119300933613260120546752865455314610499072742881960055940382249572790446937630044210554596667271345723298541222484491449024134269922539655196981767426103807231602325602133861204572549438454858893532567120478316182542543348674377464123740983387168700443435727757790499129815600839620056391072351684337959165076281360278167906111723066260990221437473045886456323059774178392375373188603606068386717896393275087303650820947841753814314342253541594495541542910888358593400772198493600066914386554934392073793477242358065264477550323989587763756657420805026252125354993768247831752145759106474553877217316883030534106616244964441660597426304719761914028813803326951752797754662046071148155371613301393288332085684285416220524319395388204069751621382973571208245336178633726426950194359500673906043037506712443903236826673219180713442415369739388826113735645717647115382997971240212931267129673978483369903508020391191332605245437083809064961434834952975312425031374784147504799744829960675946288271748193031905632395503210478713161394007994232548678134693462971327054539241784973051745087021446326370219182472704436348069176660435545580817967945167850135220672653660511524333312823680400995451622749043755866594426077142190973818030261505346261331744850238864006245769232289136926204900593068654094609793508842840440391103653690487144322842319782122677359186498556400534442460169892326554818739786161700766080945615372345154674822145897006530741864919157227763025246602558879398011286434159408393553144547948903704313442477853232399416440620305584251366664560692310624206922922043789205963371973791073358587048951532479748927970561728209082146072683172978627368184313206758153637204869172921500552761326485747432383167346376694544010065573919570250570461718501360775277652954709741078463568020604034775171755424736308846378250754577303128981978514941888520822438188779106597567891931963332431031754230557993129540703162688539721645811189830334785221925970606521848106121361185949199589102404152595908289196852559117489653176114305898477176724247007605408275633192339841797430016301116537994345865994458236743104190060634694732232825721230305612266404613940881752519974241902128330796112951846804798115044944791158358802854021812781801198325271992310324109027936630371213332466078594720870036157240079949376899445410574116322581585988240524996252905099426071256360745641650084161214672021369012045294114238826624110758041727807555561783023612405547667441227989798777264086060697973895736432871120375524524508003650599716161767781230182851527293361434511208445899160914276097619942796266280013349705010405125953150697879381613651607901180178471245413228196073359325918070264924627229920291934371744690832296241706456168632050973040691954330147613940610429355602088125019890317666737973134241364907549828325030161310257497965140936064558634497183330308550316580188548761784827617563739008986614959620884520724984126137419572433219408503228681917373600831555058614267010131693545265853521630745586754696452518655543301108716570459547260039386115014760291945421449400173907868151082129387085051463359761741008622874336313532070951139286933165161537983740207291668563371858398240182577050943363642632598213595278093739092340646784470675963371695582964302637955524991307046916197156167584534295054707339704851046766755121953857240868157953014331649272168626059307746638733705988073295724685936343237590506613380980455391592184908633690038290307916746807451402476769711595956210659526784330990073304676774698402284457123606659135577926133637319746517620997646318233082206675274953910891485393072416115125253072410698494963060089944751574774418055262308641186790846321164660421862348985862075882771017871539496024732327476680287921674963752298878854380503472112508842421717567229633110436968503929976941649100827851990732919859917941347319051874586316098406311404165272981126961340893863828149287432819636162934270391800403241445220261875319127384904560555792468506760255886768995718265385274357804272503693933831733122086444541102770619105464831383156773698856518997551056608676977311805649486428391252251058081082060678538190499967512078563496179467331814929052463562415744795988612313700526379938761757879166553871429311097343532527204816777207488989280047875333829082273394265012341773573082267940430652848061072357741527298780587239594850144152363246159049560592735994704454239344080719363739936135453508153966568789634256138277384324176826090364764681716820083125870499296734024191731459982002929951264992129878111705356077874646268250146436413437312557204755392588013942086742302715288733303506495457254246274393040168355073746188020284545248864406313280420211111258283258800803474158424170465947014364169095572104660004438566012401613256949100354605320651346470264520598854112391450315905696224516141555765965215775148846188302281296950851499558703827691795406895729594113947428530588530500209722851931971128341918807255447910143033456848051075325469730802579086056296178611933786677561769835574445225282619721276484871768076130259489358136750689256543479661507500543762884530280183729241809949842614028932343082224333251319227672693194836539111954340793156272674523072215551766552919687976868716036353788969301816343466014867074440323180203491514962758379472904754853693842738102572536741661221395104610776411913827557194971403533760810276976997489501653964882852634280303638129818124987879508702078569008588197092501432023028725703345041206465048313132090269268345502236081745168021765513591021802899048511399805566520929363665173813084029510465031811124338720472712638034191977475109871569486103721153107422318021549766340507322893930044536117562695758587470478886996455437922992049977273285741409282187049846705975340968282936462124265534231419254183768041533217241026095227777583844890939469310090244051679921865384302530599276682460575506442315598782405726810923247319438314288126903616884256637441420695957362070035851593548158575082382444466555717844395064758794979810844699533779250408857052775327671029483348457150864288011117963776585886126288832232417004322775844422502309525629141221216528121427748048292543730808144302150186428924607601178008296927921734866437524340319964336742116114985674838205499465785506853598792413427113719834871735209923810866484580981596999999869157816977860357162763810380838415481285242085064749138179352825252128660145438525610654790009713125438152933355791952467698407670730949975073829966942170225345207750075196400103343191927360283675920297790204749181668066190299790166961091497389135861782509686570609064776002833603427306076049956465825630358461560036289040164790396181125600627805330232341866250028811794781471067991930048055702645531370305285543353775634616582010693096484254918360100575048498847964072881477203399680003459738602596689352348765230697719985027125833615986005859208580241841171988134881080725728945160677159096550517236835343404866953659528796465941823843157759851356881188445727893683038276959938866576657070822354884784749430146522656377034024293433087532978176662196154741637737162188910216829221261741778331516974389331711228767982076906611549680633726671559976004485303368650902980919764792336370567015060912838167699092845235535910327747617657957326504717975313752356374427991778748493344987393428748275621290756000748335837144663138338871218364823472231622553139267716937333620098963910287613472704277310509022295356290039829831864983857966161873663392134547830050046465319001801508411820177662441324572785188705110276566746125853872953986002363590448250875856548480277417521758483203812709157909420653209686376852661737960631321983151801013271999594492535761797690699946372685318138862166358130790994471170008141493887069545367533263937820151170672341348827439945168380241304353739405172936419948624943029073209703962404023612310755433855605046672337658122896972750069702921690898181945432029492432464927372058026138878387731284823686011596433974222826549509619621609221627001673912740996883479537266513409271214406402503912304009800272543452884176784067018956549921980822923856325556976480582577474100775946206371359249709654756850744345788001179702748206052436190711347447630764008076882993662099578135785730042994716492844347801019975242462884013144712294754340025814713385036289647879107066255701062061175025788579983740476606805433623186995431628971751003221961686499924606336898641105816050246640302732059561166736416317629364300513844390970019191093758632117836859271227874766012905365006511680185750790155278229775427458957672138627650889120085754445605865312294445667579074372275121933801241717226739519354523568673510260673867725191535013619813479257230052715790282119451668154217404234148480401150373389407485613789200129629307512756112708938319517338841919993329031064340045152628583460219586577929087251018039548565156905640447925533740355869367695740132461494529179148106398465479149291609679617948953078414522440540115984488147943707897868571979622698447969231546828626374504891181683603520653283601681529930061858575008279112074334015939805789445151191051942416351607526106641822815461375436493619268426348797634126709585279137521941132484126342034690583472480877077968928292088719837822338351284518944073577974886554088470732490919429650013269425624446711316901278112784646146531681888030010183825468697219493053648683400723681885579882310100633117294701692310975593278677264598454847514632126118823504855413634248950077200550593103624173523318052099182157598120904204425408728112039995038016891566245240310374313199253119023743435406620134166207379567794599709151771783248558389456862529328043581060247675352091797345238565354952461597181150427241169542219965318908806559797336197796951219678213082286573951043971789661673499076965686926942916764059809879584826089947833828062911258018692908962000854685228545444942997860895753059147272391305922783704523475903617972169479947291196357283382089619672507978910620114370881452865354915705758075303918533658580094280288998136462485180454446285894943565215709055106213850170620738679287672375894924136137956155287170727148453603870652497421598144597458525934401978211013722412629908166972593148153863627495969359264559736422824914369148885330975097904208933831300881583624256863058250397547739221757268823551480966702228228519131462709310522069849081149695264073799053953536203961948413975346201172610356214874830684213505715951254797245648747862999645394687585374345745381726650299352130822797447547649497810900935611178063783147742799931637194783934332611833671873236666796568073017199179863293690698117239714806575729192029108410476421679116034775000714550956567229541294224047591901173882126361253204638834604843379049211974746627013844473169971659969006268412279427933509460945007185225975557507175237449894443143473318610992762029038602030093547910820859588585839404157889814198313716874389288161786270309990959624085143239204355635879085750551101138593118668942575002443260180756811422772356931788491924045375813080153229566213986416601319617707260215199189337489884299440535070205871871251658994117093881593313445328670856020147115943027466391445727733485538924455144208908447681506084736310316671015666959715543488048134671972202262693802308184769659705827916091919316040844014452398919766795794713220952254750583959539670448704449591833268071877294010212617323517020875759148384054890134156588323239908455229907400185226183974370356436503768828729441537871877534358636822948967295439661184460340028903112051621174286026395704900706515938595246907989994196190962997984600871870129892991151369084776571183260027300401665780661887726776724562320175918336921087572862433067315875717735397283588747921223890389992617747398192223720056816571192872859876458589618700608923580520812649701826018901544687934940674801051119731044955306356857680029486256174427244942176560772971354802270411123963598559283070109514042419628514148747454133205362004275348117878090996363151760798488848570684440316830994249946531328157489726086282229713393130431978282629156408506193381207545225108016088653280049370041139091735223279676364884558066248519754328088883815645972717237851374761666247491933203929196351564176764620060642955047749442823340521814103344369538466906401229545040729383289759484889803270222903381634698855804720517407557273972489845341486775776308557055334519771328249302361883079317232024075784973034823541012996593159191808584214741239048648962832031146253885035557489395429571829356003171361697415746974048534569729557014447832653953996044602646630081241571643770200425211952652202556127897684595111290848482853510391863329563598358638820402442948040704597495837203379092227850765764497197718447421542832953570231653591695268095222787329438422738910597179475975407721759163949603958031604930665857315895325141157516482236108315910969961588327286415304627506628534666208077525681759561267746420865630486993530090704487315156967290484024674912575656549156042950046672267137551901901353624114662869233429450147645028947519260152921598762317558675043946924752909636396330919188167576296040695438366669061049339274040877709497384499766979299793786092501406071555774766318394851621170603656544144220169461756949345721819248098922094809594178198573242391145107397372072770403598171925231427136809349836249037833788633941691215925246101086283102021401811325152248097460519189564742453902124681204195630213020921096386744433533826671343999399811074464438877399647326022164269293049280965113326265189517294374149192885275565647822373297522761481568623002973678038352450025466342061299726296631446571658852364944107590948210728126117167419630948167005060278232527724478067762993817345833811397102710225761748505384710060965166153540956459705282141490166005053606680855803915956611323867866098161552634998511343578852247284554997912299427621651867576505852172848983077663534405955617382475202449713646346324232589166171914330393916114280323314248276767597878670240765978865763604805409285610620184354554551103266526291714211416459938025225622833969728508340391123983325370194457024367647582613725192508983341985371490733758724085838733203384222342519838587361916253806114835281437451488748096301678402393545573403307746673567763296695709947269191242946351428964246656799065499070679791375644050643175590851873849512867019118498850088858530324119293265390458021985353925129286830638108193706045480589645696089778620157693296841710791532212470257973646927361358244044588197608976396537847332696155184908605575205434331364578461250298881817582242503450665515733634135895392082201288377848587757402256284652448805701948593097695382640436592890036332168732786272574223358203471085614559617763691370554537987489578974182675700035280414736859984910789716219359296405931756676850990558035958848849438731633771303737005315177443034744320645757631612450316454792077979806340229238366665785954233714126339393219944921617277551926318817974817166459796954540719109453184309811352897553719425446449022753326246005140442289004080003153495570733158820742735406988216713915459362766395355735501922477534832838398690458983329306316308674183256843961073223934040981640925663516108927328498408470151341050441241902544060668357904321353639682637323850261766837625382475661490827018062475807612768362180708313626424443630697164939346944699967838615755159496720981333970203150401496197903946715200797234645449051940457645263421146118277934049837525944202890046740344931096133501687444840110979038410469403615327407392978561105334702009097652726233778845561654142674971625223916939362513369531305832518420312110117866768725133107220262403650046788172807820254547360769873601711576294247174332626429032172466635725245686044965032999304734296095039433387539833718238062519636688970586701475293254995007868039565118154466036649071296714827129219282523024362638364885311154464923273687470559548729826845296612284182434597518229417696526540178999184909982224004302686491947694884925679425985068918479917242627368914217766959694840368386982786281520803648530098520619632606390885738779360804207117213205214575877020293689702138633246484020389572624629076052055579802167151579457207516521503341019961829816040902784184887386266982984238379697627763798230075510832205782059001510499722598124047589079280213405515574271240226118504696471771589377508930448393077385568287723235818247691203353741275868855296203144092633777807374447407520716701108854927698379117861529030375155335118451306046930295021348636252432006545069670391506993773620425774631283541330814949883245918085854628869351413572645935630014348271778993816614962997831233514610986623102392584457396475599275520442744253309575699280280234471579631001872228098789130669433386024415842421783024548019135724352125817327100299935380300905591470515278432302440157070967613378271580538489396514143995236551546045388261801983618251832462318041101590647646488873550146903706493249459284347608767926766073676413933057585550758940339612026370962860822316890285711924831995822013903301675617327609550183533808158988325100965798147091377706442368306565026637667539436593073255187476648184828051533681224915213743065823919790340179950851637175021781526486655349073398995513910345744555236195182759339351243222428521541259659349310070228892614897522862055365145351487346554156141834132201597076411454521862250055176214850940359818211538811466406891142912016202794076010857465100791912779511848100031983668069739437497511231000029436480001175212796981012834350408228851954303354423402638699530699880852270307672134241117381296557841830820439408442978733566540917673581028341290053187053342482049902539741919924733572660397812017489222900307936988960266742820766370040762594429131610280519362912341761130171660536629349123695739164110797868242615018715469828018123048489328335606028439594943816373936360734924625635054709875075946176873650718884529297498359410534248041436527549974497849078589536249963733287546583897617319155751194814231662659671283851143241170932842682409346642775782755023279706296970023012520369387705825639952797215774397682471397123143435294878535233637794722801489345001208016397442117201657925647256443706648829113691697306867922370079628970167333562522833595305034873175843254248253482437005644583608903727114929611764100260255539617058262582781734227030015179214628797170730599480974794860259882763243250034994533657879260304657373601705172387790287645096621556274172079437044449473701358912729506907660535072817533663524776522598840406392620736566563388387858555760374801943497332771279774049880039976641764927478384539470690046305189758694821313078186393501077942056440596045780794572820767659962268207136739963117336144033119972201183732771552535024086702090966852848787786584633350885405660595179379046181602492993131414848138137435728215240307841460626037563507899830188422684472972387948051991390004876555631958505862081071889389471075496240020676965363857542094783449808625876198534837506712400888648609214188678705410491932294970723910945251895383540173496484368808892494335009891493818480564184185219485843144044883279678464623111325581718373053233425902526674888403898021993082682821630379978023761186665117630382168710185844705388454006409127329479131070325653944680260711108694763199744179482469915828807215658762093436866765599604083223099779982002441679594344257479058440341621766170350001465717648582531052136505500972718578700876107342616203591719280016812955795575268906574221902770714330234075680171933750440939552290286530476194388604204379438244377588860356556352689261703769556694017889906828267439164912807066406108738220749341318080921890465550774549449726632612073691330943110043706848862138687637216716110390945485927322466337447977697396518798093280403549285842319276619621595239849967188174835835169741718758125997182398148578276106035312558039347319796790705880352163451101111851809501884884562531280281805808221452482672395771284250069208060196675808757840381987058895949673499655740274773205477144217114277756369119499117316294644958659539850103219267410991586972575077540130831401842906624333842516840895824534019098331385873729020954828221525309118224681695190618428260224842734609280775322696955403544303905651558189745232914920451965383297171067131635557096408503863421432214334201479197916949185332900749959776556001621669408561520131866990045257776057742358990596390765013270457072960833539161522744771631493295357031968826208417478332241522031081740355612761817535696752806649958273986220119887816041120686020841122229222708092940884504007178219646961830630052028353311494468447700398238193183936097009207313604109189081507129285811950276532095237145592582561118119085186818980098261045539461418963925277934907730171069508258890175178352185201874906794120802657524627549847045456381073076328757759074400628061441457201725893151224789793854648920862354071133894593398475922504006851113378136024316689078749183610211388467574592849758818997244942905562532576680514765488858181522145835361818586365389823319127175895358124197817748192497100056395271334952587281561760489185006464992264586893145613481289246835914174928664723284869068529246787744969077121112334632456890559019608295499815413281352205623608801737088371618511747985420297355924652087577182902014069451305143324193902685991001135731071340576375379766162270350613050987589858897481649511698748032143180707045568789292006094608656688076142471160878773688298006820908437417297700446900655154195562626521865610412097920073676143188688655268539682101948676060272372951123620213474992826343303656582677466382964188612055125406165532609347061834942727141201525669223940259677994295160662126666195099114298178340485557401228546479052538998211537252874042070891648286234537156369408413572859385875110893750605984635370258890577732809172076434360639912310717424917883065164931503393807974004743594005170458306022209202820950991632567753168874071013126036727875783580318718100970937050351477386777688639534736580792352140031988044246809342939221176761295439169693935164967094955562819241801644442377020850026770646884421271241267571734014095575568738522395165505436342783337622760638932531986933884686372574590961303843761504455323632869409089304052797240936002038192401664770976884118452702939752473505284501712408896015424620087022179906586555770702918602402957799915897941170187393184450908628264624730736740536666938905574208682292650484457117557248443979117719284319348105794979869514507731316921854744736022261819473055717986812839540424460206444461875778613319574832322626767202901606832149337193220084237926687128998024048987791718180188815983691915309819847275490809831651481880985884875840178211030655467212162741951929994986321285662739408994886900094446435647286166117879022491992500330380198734052326005967158683468550549445722382328696509003518900361177279004998456536111144803967444430506685603695325669931482492240084608867201146729619776547594677335994804066885790380248148650912290926006111906476856015617425001320434740683798304714033851093569234371856830533201445924773514674128970270951902352831571613890585194554400684551658313948183783461231855643633806162460711081878266587017930981275332907887018956735069564606271976088966266951433964292765061215300711557939602470828887119911047630190105932322640146687081906747847054160617979174460856344660918257623106199596173948568129179875743164787261506109168469156824511159248102891127672726709155098428598054825953641565696097520086911338343675928969248195273897483801987761938937340648783060494355918412087924655972190912979921653145059105956541417166103634960393699805033020064884380495965133343611720744052734647120429551921702460971511955733999410546751402928049449763830587156516102832192527066472230450021968069332883069455233482815567400681799232809109129797252296179558511448660908189404921344522718402751978110167693427115933264144533782287178793092449395163840154929877616005168721119851843164164621502875145671075452229080268746733491923454485756978590656559740432760101111525317590846035796763164447249867891652029684011142116179526001391265055959892258984921323396788802243470873625401619709946001786229247199649865246811126761005307426546363152438874408888110035940613955271338149368262969446106045151326428140295172132068411097544464359575348204869663701042065959201191235257352551011277040542992768977176099198506971952681482690290394785863942447600370501499237332239871938363666294409891253496771912792167366718717804232726448252434669243079981467117019795813922497420189716950324739101016001426760987533003802484652277995216666881238119561277604533690035083938617636737056954457105634970807939516617347722727080148205753909891644684864018863477169191130330565603660283616963219476625276771764860428254591607818768476207601467457628608820041728098343948993093427534432617246784555816458277757759668538324218930385810316754911091644822678356242059257995816461700029229342455113159390311023302586687237457348282463424269083005576661131023863457542668095415497748947490830283526289890797247089315050512898118704288018190223283082462015541986064829460919697543679250978528078002543332029190691970059042809483058409062910565602995140494359754113954742684619545806427072002555238618727427658112968560494412943956999522046377920540987867011195071648412335429481714248352996910738083415659416989573054121444215843510568588914870033038225640361942222564583416299154301456088584721561463730450992547582367235245088340631200358380082535504175692882922528115064360168713122285468868950791639725709161418985767317648960914586725704888102954111009960295086490600856558823814415889691067337949451583849384645004448649323699799523590413482123770142265915320131145023165248326916014283178512056764860005755515077001327638047006413525210080048144330352436817117512347219615616371610160598650570348818120922262111557866219289269380403576494142083072158087554626940775575207811722369976280459894866545427826699909963238713023318314923187726629331365221651249947777072672576798928680371416406242467328228052401222968164902137019739656690568801013161585079308388669154053184410918230196727951456399835558655685385618584004626918868658212567826801229178893529907866457092103245788314737706597905248110963597251108636188729312367165758261811682844511876414605506850791620930924838334173452494967955995095972923870610849617311592151700521485895498721234600981296510875896639093138732939986929389435157395930507241533985557090761987667381321462351693492097760513794502656777857085846045075124499333443018347934477207908947264869864834417510407729145175870302587530815578720921151550757010300052812705524659170080375935565073984968952879103374980475904322649423208921764156521274800496788694664137369491897477464077252168755247505714468252584125006677191070700503393169649210060587993743315939047214084111603838146494496526414378529653283982248992726129125242513381923959717963657803039745048000830192441748221367332509859982990413780985651120711164084781827813307669355854659403311956418980176402957992138777279028824499061695905595325955843530991610165802434609844980503687517691794574504265462820296422095723281227330372223359993819825285609340281788176921055371659122713198689446221544919678401482630487254037642256786323929470783703430172367647010370344674766555018463476599904845433144489811401431790362560761115245386530276728949889848045841473607286049826176960744104743696635808534480033631138181399219106007523094209090266381187087121409397514185104796950611974408006428445680845956463305278780840747883144719016973690800247960655821023247643840237883409033917205168542763147003860575648493066578930859352608124166918690358788687101715868329374189318637055624180436304117199807656516501507875352133079125081413080948685884496071286445844608885822214246873117836234734638189642500153208443758495375101394269552179918990057165741032008810971413787470043683086727157161259278975984498615373180060837223191628002064418724975667215517968701400743032777180041880224918569680955896485267304280803533847636747210102139748511916124037815093705995543404037724064183301432340017443418270262472995018699405272754527211994839391704067262257899442726852962159398860548999768817787919159688012435777715591620743726284887859410061088895629145777987065517252651392814119642230145965564872553250223566917293299818306147059615214281709176096813559009979517409804698081041775983877254706333569925329796448434092570683509933558696907958512779817373913526583029720709589452656436942950182089646012421907399140420163865622909132910700455741424525279683891374320911856025215943735174702486453567291787865563120816686804165681079396113866072518030864356636284885564168476320282645140482741314665732325211383845233057717549571756115245877846693815057787882387415235329999910409277090880304487154343709976383026961796880143065470421590825080722010906360887053723266270677692340992535715220225709050987185382152432256894625727826017985506102093229316552188854004332813233052100871165529874630262993353195034440555272083559077800400683803795778094520995510427936301452179918835021988000277370875625005654389837823914992167229669868928964951456655281401347022129350937655323559005064835541219438864853899721238509886095038990080281804434527939311212977836550691884993819847324484323155551281283502106799768700684508387892208754987584505421245497290547979021021467896907682938449884058481941534932579229354917904814503432572576828185746257844517201834274004319285209434914217483171098189448935026900478637860886760457251660407857081751669654990669570697364003249956710877877171743133463741513703213524113846838384056119560781165661656650576852117926134189445960147259530382587930298973109331641295506404262165402628114889891301106374640853938881855978136253345031277260309846793948020248333820006692780374278842928064260244414953012442157088170146945554217823818629608739567841287492670697428152534699326961323018345908892732074561407965282478571324161256065279113647387611609569086953115176254229094676756762469281440047352122533582266018673071781246762838948066602579068260855541766189738365442652896914078939732405779837793572155771554814496262960723740445140980954328572642779787933876249516207882171848705203177160620732304324127019775695553495168922801853033679361880868223621909917459973532128740312764411085518763272691792787206601559157326366472178190669036013107729685877154780984002250888858675219301638944299087210210977785931163498239015594339306579846631554593168231278899269626643321383592689595838086386620296522239944011253331536224836992672575351304152232751906531816842816238594612510042373165710174645533897298078132142445062161914604834501463006640126474054620423027466703879756898211852105884726965019014331883366650082922831613710773433137794958048448080426111633388924017051340421013498698499648760194580614622683089661180031779827488498346595878622594414566979533605537191506475582473112601753708174055816509415723907842194910473501300265799278978027885458299008538189957239137519725170402393025758036866803975201410496205559389798318501009248035063692729861817816437360149768573835222487379027415156186228366956233943548822311449729139108959407191873022926509275949312800909478205169868960021899396524823206821005202676055855445424278703259280176694778668883814178726650551944777567473258719363417939270200538512023391826009933583576196619681058152544443006057688335175053415022137038750042211686348555627183859420742205980455375410453413254520962979401166729929848561126310635973969793103571429384457775510191644087215302227291788468696040282123751330618784235644556114008578538794792204192355738208309803524485356061904664160755280481520191137442966281207513724163209202059315204414042712120179288314964698708052794081619482107237259087479065284361405292143065406560687865857437768759845882147417012061376507712034467306400199673729680295992905971515854492545462845509996123777398988969917355988879744613437005475005772855583934585411423153042368519751940175026040890341676664546002604193177215689365256912858697314903529220409910538173500348649858664151049849596645071829233070715957396265943491058725834798427919648626975680944543291613058227070321143224106435951074110948210514060194105939813386655902451323339782164946070813389923879281787692392213481453716964427082235793628443752948527078171935238164514410503515530730369614956775044792958114256076937564629945588785315417650844237336365688112374266210959118820924837483631554643495012972426832730924547253456347236109000011029593664415438051075782070664095808775888701613230929353891999857369761097508403555094764992190850772461658594646613525613262864613803870533726666884645502105716689135112392711882074016962370421441874224188744642953693691619399890604118156853328234514707800632316938937630842850114738488698778332245298733414846038033557630901743317565634068726455079250902209267489457546885603406590814546909929291892565594719533347424549575585669650690995325504771825983665196223362079092952507279208590899401652889218181252337258869569194007165054367939032717067434928652785241922581375923621046292501701566367404807866168998828097902213956037762866723653413754032937301754987073438282946400156395597700545075045576572873879788826003866296405177181026662200528585685286834405580314599248348162614432571048408598015764732763902816210270082066919408969337721868355821368054458024632494719762954964731736117801155310831953893796555449453939604629958731006626664604721547809954084084236897461184292580111643561937148531574665363587257580839280879370037883223783568388533410736305245663541306222968699003327089978919551847333177800566839074022366726063147943841010005133581699235941835121359485516148950414917504365184243196138544084107069406891550127557785510608163100326210724397502327181867778261896624391657428628137891295551739623202995029177804877157150067044749987926605205115665341776712794341130738096687029167974661988338670427762253674108565194749045372242158263120201834437882877277985103931834406664939200355548504851158527006748792350474326593019522528040531660889953317104845432404623372544169710339854837743256947499308953234820164391598739258498427114153824484899817611908523024305061960464756447463909317503208020789606055782088729707824153361954981452943250029803015443964628891457001497079170643808461178500675798755895276050166018358663309321300329774957533961148359494037222508898669242057962811730651441606786316478807851350487597956092385970797299845402202744550660543169971694905229801710326549245999197543730927011056826772167072383173013118837408579029202503063673380010770192609267538525441209778560306291388908556047894569539217682886255937288629005024628532034589911112909970834170203346900579710379066885835245703506526214076497264978038001790652183767218596750875264391499701424821346196143089259527443846241978746165795106331837623969474164934700679042128126597476315575663105413413868083100811719452355496293787298255513868360981061285219934643669309276936819439606770410161998676143365223175137808891917742594978051633840923738107376348894342618797336961400148435689232111753125081455152968914486842913198906626931373684177335825904084913543123476121248002115499413944187120906759507432047689711283650651004424459894396856983939456120231321854094540584863346257633399435910567990125765227951921449499701982013462902407791933364933011616136115774062858518750998317184972017007960009183639492140498582047986673370759252730063593694646138872188356121153695742258177204448439803698516256460081103475333438785099944073434515588086827431394134627920587215408520881142112247197987717894865193409164377698105387206380583788292259214462619273409331169874772090330973936317911696271600646719306544813693215384272736988729971520093346984961264789196399768402979276072358071843336342229982121447316727920416273076610136517076400999802111092788923968078644172546044722200661180423547374902785728026227666631467742325503337148349807471549737249781557067785213642058781851468334042512835181349248837120576465825058024705459244757513103445866649482846158844732403092845654983133914079246497579112312612284813727592202263789535217645182062816969501129874876382576909308025211722953332339549074269765683990203561854238276000949112774625310919605162715902531441693054186102474813017290652288341355220872245622493097910479906599096853369370545458193629157537811667675009886857245655395814590917726715097540529010135342835093183465372103823782020906386427174535330705050152737100017387763916011475156808029958435129410791024063749338796737871504541370243634513147681229518941068660196984483244198145452939511225924859147622969372758039298677975567084051949992430075010505908451325197907891592641130979594755191748447065146241745311327658538319283538981924102415857460875706610302519147838335640516613448041997843483861304728887625139202696331119285572933695943540699161787252911733152266791553353709405573250154731628347402287568904021171223628053203612363468335396435301958175931846286672893426818048328044406442832671076094885081333503469199289681799697788715370079751620169547478203493451828139781028638512800885909413028143488962168737748875955244975658594374478215363826550298698057157772604724270769536004659691409480152987928059158116427790054504972059217789467013673567613407380180749283942718588347824641478176620203059020438808532784652160075531485203062572202622771801953648198612385886213257393453607556237155879768840126858235432272288767973079693668964080265518524416871071006998285080741843371934341166548394699127036299010819058086781599625402866786908046505870072588286911312672382348409973659772497552504663005935269728572103546522505593171187558237922529924627231103715991003788970343364398741254730840597918190084592200382404959783057932138124921722994134713941402038395079310135983475237264598432475729907795135237057912958286401106349778364826021012823200736794530030086832411452643341374688177076972413560594902893639287753821309542755513673037397069085902355595799753385648905234065500657495504864202868697945719196476591907870407454375402798030653095123005747236860899388697733184050106240251155155568854201422332991951457581012512010465325566521131076497941297648220016936668849465996445010178958988686117249224094821696164623108548891637540616279596980102220550941906629142105564631895765913777449690675350611962972869868127247917793248306066789823442660847862818233542064679201978333151261563082780174879570376310116849860393474038389358224881233300014942550189741969298849641642923851748179964599630000402522702344079436424460372801270879763386337663930595733843654126953306024521492193880664381582599811190707777394471996600043089419541715326775361718557146702743784666061468104322945029604369729301676787329208017439800026610777107705670307835702514064286800656511294921210166549451082412500075097377358259385483496396143807685793554626743965842600715790790315434064891456097298662266861710961989037266964109245034406771444255017701663582018223368650442948716339187992873824614699755781403363543502630702567988356788343623465246183807078448103977074673096509314193204990517416967068341518472897615595501384457855546861938451768082009269493593108816021765740408666386157311805152108752913931575409103390712007832550661416095064179508366522227439098706676533202375197825634856126544314520928492502068582278663082350830594204374498730564386437083091588263984217049461099347044631464422102858359012588441455088038036736242958011564112069805858762246967200280989147742474599033106061216403175942276623583286535215100369718788319747313067741805146806367683413072083979406349096816426738022942321144941280338606481656967356915209268046984046444110086815944937657207593222678889508209219509738777413868287823000784562692002354785247886657894994544222022892395840777340545957089151947592800718066887709724072017968402055226029425693345535582913269323937057477419033191215801105212664534385444566585222378368614226928445474864711037934541679684477930673374287455579746855982503319623774748508010820582905090868421905627695887864411769437325999695709637085352982494869424192929959633555928324942123247860606249975458598181992502727094286961095411558041350458667738504241565618729717445661089265749352709500895341142382180842888297222315959674254541096605431236347072295079983556493691682872394368557336803105450313397403761123848620175089830049719522087580410888359924106773062372770252554565817235901369026714475753533503057354900182987697321451658088141193924332812346309620859829506071826676041626157092932153662591500109846513371980113585019916899397260522838034581834460713683449022590621781245619099137802806221559541389947540874574388410144003769153455561341219525595763862182580187481753893011652349476220781118552056983614441680312194102161086742088295412129923324386346864553834516602005648085556903249309899828921244784544879670744513138136569474100202991675371328296907117034998977980408869000276518144740461109601398462178454495827375891060407760848602578919437050561069057905899456336534940220539382299789428603475090866565520598913437864336774372166823980146379482336396983174202208621531441623332069543743159981719567171493336022515218235527121112557389103810277933350425485414096263482361560312204117993252706043503109596941972342216470491034977873008387716819807233334423615953487897805942792676136192769215098408671722692583625524005006528060059287414855430716028086087519033534029812564372456177398286268490515016861762125682755171224394651172586813361469472503665032171937724065303554623872412883597667469119872019519476178290653380077648054626983046466318360301492942188792917530860552869413455001747711560701812097793357850139398245799138198650653252946122578930664494236910689259022163567026527588350733077843682246249414484123140555018166057186736884905785124420141936010076685173506894322621363375470959596953112976676585782949869300544725646960029841669110003009955890129907971960767073081894868365629482742883023813466398733303237426155880133276749244051732614893760806180304755516464583183009832845132537565378278744920164790616935475478242794474110380711684458430733668954413828775547198244586763656829206937365445156988496927647942508815915534225362617202643649166281685578916694331827316273102614133401662246857834043172088021344617733119227407193502030063851209976309358480503635129499782653419835267040605553281988942245624886691475449945335365611969619320088197716548611344531308555557888346782016387077369935347979211216109967099272468098588070892853006632315269555734999412847353240386762290531960073467130283230732973753462216119131353795450143291913947226988562433156923593297143886281324901170350696045324404777481114330964337087107271220809135835020044216856306549235118108174606420114644649776166093150988406037711478789668599259712188968809165282482605278129166818495572318500485697849356548134161062347621673703038067195171806743134002320908013276160838536660019126005948630571282713342483643082447151340073269970962722949415984622781233535240346299179663402713967991893618438610282197976441531041071511697363121363699821696107344584706418274450574314526448114358880120689727641159771139399561412753087912266123129909178398890655561417557761233839568854921246561359896719374643000481875933671836048994407697336984077192679058331555125093879126489131605793970451589533021475082890570141901822872271344333759431803055975730427121790274739782181433586018099470352172113238851027201680846588234893488833463218552592324622176580740997626997912336972819861629793430821973460668627114183183764965805294881744109967867717534197140127734324026998900315798806471670237004721178901026415069746999845574590367674472295900955485736420755389022651020774682065405735876564319654217610315100330866189135859182423693799677792010248574336041356393911435238234054210038255616078529683903273173021094639647819573498875013202129793770710409144446606002375493135784968695464310513746798173357342541048183998801264287208926465227149571332754514406922165960811352983316240523090044533741792592085232748936713719241869185340126821605580755176165627026826302613185715853097039224873021084476258415317813581680639830832713064191661429173088969689187744483383118014307356732236568426550527477722438008879408676009019129786683842937322851849547075980948071307949057184682121198014626599671445872193436459536902685370047360083224507870524292650976754511168286470045427552690195327785507109487338573537745586336946645175993743720691963932690984539572778715574842815209003893768410841336879972580320999844661165537571664458369902870641212451671126322093444547583808942881876611284971913060844618186471100037444661284338526552333140129894711647755740294366308806160082051366095878828910501995643719636968912919458189118232793569783182817397327879768840929838456200999500229274679235456772058126311718795371762645033928280395619513441632621257127946283978173516956506862563723674825539380476044186843193410204393159197103187119915366883285491130718122843480438043861016474570227010323170307169754604151092102816601431885237747443978724748637925905948880918563018139543049639055029982174851172758553650657008656637361459422043320251134613610954867317459424785357100263780550005904722736717708599149719906869843571962830330020578548373694393690776096375942120443729588614475551820583635667487991276142189638279256773558296296793722324126559740629822499547012081407448674702984146105954907928549773150069986179949582000365630000854660231105189365155658590525119302292099331505523199399773303596468927698591384600958967721659776586846628637916651723123830383402235225067312052968612501890695029924534685711588093839494297695070612912818295363168781367365295577470856245243544382716650460775209058398893378738792388419675008470286374169085522932800648455388240161440060355943128177096400978903437138533030663518489059589556370295239807330695244722775278000542171812089600060843609449125385169731695931747668017924043957474074723216472179057140480818825066918647361625819391663158389555132202938369326030371974692773403031756910029175193599069747596705190017943929543882587281806105575584310529859004429148624647946386373218422397569399846133072985403570381515573380847162587357319632457405909573217077576438909912025947544254250395903220594341260204254871619194339046941815390345617072038808144396938275215048460604704350897542339910889905171897735223304892507949267818400866225405105233424720978277592205534821561540914143953998064807510153726354081227902943876274151946356707867308668921628562960097931460476140361017716414225948425170988563251433217225908635954624919070549051870290197582644991233036684285814335396101795329891224426937468942143592032315358658606368939600881718027892444655462743248368579791707019551704249099940398694008583928079554270039391651904037700883581175983296695338998844169869157028296979824016832610867416216072668945656794660968677203964079817954667937031093766400896157815596813977468619853491868480057424109966687588848471272606190960930834901080503109097108883113552493188079587262872340752293765713017212252061577120500675861550204507533772904240950009371661803763904373557640879076340132040019313661074525371531457620890362351826715942438833301477072306087337717606406994174425564636298157120568315875361478141795009687047836010736965044440086199244091992858499369518746796671264423529016240052984569383748035340267835002419804520592164733515590540206022194399418417793214210872354584663025891376523568560961195419481156542969047374698193115581791956485009892876809956329345623837858802482893242759292407618258671302904061666050799733856809993631521279635073380787561900495148780599935786249805084238968456637180230309419583043787167859828045249680502468890369148641958535092823902975811149716878419592634614774772383137543681657384238425118107008071906996574440645047493091878383659112916256902866903224853674482592398563355256708316969062166335983607464666998625769204215431398873356641433414060325595119391200843045586095114266940037894615012513469777196522514652961692153456083421892715783605104655129106109367940173980998556750349112161678476870672905025179703428748260424543154715898855834816727424872549899594582362345225988540094153462004492385989256212664211781377619235589730378659281119161443587680027273400918321673282090446956035932265056044851621736914495187126821903864390030597627659437423559641491571937535266164752862199409684729889540896215607496685217210359371553351731288055317376263378435231218288279619801825396404059766981897364548739971975787274813603848757911310124009892806743772896731296661770517771397228896291351593862397227830965876578480026227106543660796513340716550088167255634277703317534064835641687532267210763650580362019261791811501428430064448508636661186456199003591394342278395879835582935411159913743616262436229494096760231269640326880179802274991249574646332849084603959367273115592036467377238972400050686077790359081790843139391360517164728845274660488580361933075310288317072966615939998743637751040746558191706495081937297225248546019917718682996082170090262458885272275853385365821596530950769175684037356947888929697299201615412924782463849468580908547695705367454051083569073712151271257130695901434328015904340494071951079204652439776167270978292968970967174872975737356801130022782866463177368957949310808403947760464522950111053701505102454138833779607933702461516244755087301946755691156175837697292423767838516292739753501527543549598540757963756595004687904927401649187803535776595842726656796593788461294415394157900559456009331467459847007810630544765105874707665342426278819489768072570865547211269096340984816034328732057916514110390384095774064682877335742302157458359860600781451971026387685929205398893029625103178147665138060062173239238761700217078845587948783192025800355280878045194932379156753214198786185702487295541896888953404767555944167761807857202614155278568725301671258552930129220140437956037522513148850795141981214133134318274702221825113445964941716291723862498936829537115679157621291315909722789968785813716404430842103210814148656109662830082770052312699464422150912572220472858903629440390861992965378123493458636483651253904532025821563153097865028516110884805137692648345644200455802870928452221271244158251363319124655710566400241565160744312468499072179225621839390285479545577537573978328270264022607769772991563685945340110390422425770410098277248446063982995469192319356705420953952993709480197375585379371167664365511425554787079345669445674700220405006743126365188895626666569201811392651299808493359031919765367979567821821782447214310365153729890385721549960106118817369124808880057387232968217762048696632613816888452014506387817757856896060118657666715713660712966408811003780258631948525809168709877074788406726995636686875066742436023422705060280235823616647044914578155331475173162734010737714296324330341650534586118525347121366599928469556501293831806043006032942749652633421485206597872513012074004000667885081018992369673418054541706306004960413137249347819643403980820616422675738823751352379984838667155027127926788082079767606764360598774219645483516431340869533803001238397643952152985858862744507699362931918393286976227132657106585328387411759923292261977058335824868459607420726749819005306605289978605725969313108442868884111353230061578961675743515274869420988779223549592908506800396241927309031253046764327654447454284779346950392629625265515826751832749667402134691760084767749445444902912323996764268197750674237631978686970591467024106318919038743633242402132809692934283076607899028732477953829332945814995412926268710905628097070079294809091215628985480620266533833784746563565395359592552082541707361541449148732748698491810244540916810325427083389128248653499387819461801447086250868926698948396177777760867503834333296321345544390121075987927296026195046782466746275277947917363209105759622955035197194728515932200780345744659780692631209272983817745138449028860769789017105434438292600125448291579380748539316434275725314782708611587520625219079436157989819188833126414218042962677702084374244855396485182155961837964159053910797198475648623520947758077189231239729493871598859879773784870221838745679692145825084895051599403994678301337877290298463185321084818399003098929355054517941826582787667462743855745808158797085515149613409013075951464348839451152086207265810184746073182942925430476488647720164293313214624204635100670045156830591404046116743634197672548973134516311309122908062595287130495244940202161191223382432316217629881682935738817703511109385123625411227658702140509570282691894165769214346905349626973650083068309229891174905046334176208202594231711624818869909970063581264968906967075103424358237835676688445849936578995382193527040023275295644170224860479031880190568837465245014427120993815116931519242441928592948715922699950034643500911711490917820268867683669201624960712690934343743100980655170626045869183156724802891758250169359157326924648245699503420936876416607640556296438435112746990900069361476576576718843549517448237060881444611539014342735892508715660157378525736302594761345940249598808296799007832019416157154559278199980785841723655160764668345123270616148212429287565702157034170220423305809974101583446150660757745722822788663706489126792042196763526000664210986821509605405853543718430494524976685838671459686751288824479996390158241721760747066883464591718511672153777828775422772823896058269119312031513362721813128508594558333826539781558005423532045000824644807445432541570541262222301519779691529507463565980622816783705694800616036019604880583819847223828563215684257457388484660327940690559712192918338143164723908376422184259565416765356220662690114755650131216801379671160032603534102770966855074988775743391035130405401939992910660716214501247917659871362864367682892503060440988588778015461469202074190942638913441145834288956564122642122559000424474608632082698137481683184075345089647432192864874143532048264180721262723998072689052930285355992702408518350686791455160816062934142613335765804144177667841641058060315893383405853889226092463140299868313182829173580766007598155331085960846154142601978855894881802667904943116358726226921498533066184997792008958033046863087998947899959797043041040120882160549328148945455826697046087512157198970214701106238652105101853534781374529065552673614823264859180447013184404979178440782446937324902263566831566501266893531381659676015049111947035054051022915620532861142683973226161184066107712341986951687247523284884290771037666625386564128488698078200154000857412097695252728017692951722832210009225994824546674568339723049788187920387167454449903898625485595599223116655231304396359175981494790448423233304812270488040528909150396067799950403845988324737671688637740488708008479625825003472256740371057396583935448568259040044784069113466944704054474732967629668449696513561465223021146823755864487920770975702685363766537039980736985176031304537058947500388770858811530696999393594877365680896925812281313708706140836525297233612553298764142627898787369811319581007197231310557935836880911227517107402411813354221835120765041012529460246018903508492650764924417333802202162430252273607778755540192256922912247648545406133399611281149487765181780872739700418267607521845182471019851844489692451941181288205970304606039681551263492518544462840183012069267646296916804158163183087200543400368369954856248943769146480318851567596336127244171061404752629980899219545829609330191858329378309571363529867395303691738113896159833750902572358030661357059899756616135023751947567364803131296268880062219350904771283969891280375481825187980131342235894593610844609487851879006042452776973600196977849467932228384315515437118771328023484086513060602657962606376134690467744332610388347166462840458219886340927670198917084198768707761601829596570378503167490715049490486310554546901095626827022661704052779378805946348536721745735130719050475108080527659900707860158615076509830953450710396328462868953922605459913025936103126735964493154850375151411824478166327955889308043086886452112481588121716584271678647319344287327720710135066954240890084337074109153787034591184240965934890197186546339803359386490214681586578743125367129774099788239002728193044671355064499784995787796479923433223633533548273318466395692063628268414548345832230502873260292921799665495983032730001475273404068156856350199155989409359743264508817544201186276111176925330076446854986766411382636580048653134978054483582588539493085854348896272296086543579751806284236113008301623420811076203521453900529264175161802503175030417844739474174518005026356573757510212007597482763328488703642283412141228086473101611396301037472316959158156565457678667994229511322348628659653982008793116717890972614434691681544959108524763084543176789701718653211463388726912832059953385238007997944951214345648281291796614744265819120269756059813646814532407310498505609099649583366967282737558884205568982720672216813927939640811006127597946500874619395961948195134555881401086505020089368690143548466688795038618683552880641837314000208791491704098387709673891878153111216907325403819871020490411014493185377293495313517140562693641400541499335367577537833525454646154728857459575463310117077356092156594001458621133885573044863974020018214557310108247225576996471581348749783971679174398866936395664037608378807723425626437422494677779647080103544969332355471433998943260925361193101901679964393844240584942303591655413218414821835627688055682732046682550615102978100048833170399981511186187634636396303736185212858099018207547439789134296256226851126508692689099262598344881260537027660743345493180181518072160227941843870682375894419057194146969013893442392546921398733459790020551017878077704079049975143485877669711376834219312872914482340102648683967765491929257281508090396162719770399288440008055556212037135081484331616930784367351526445185718424498532599852714050725523510210655661738734573108396949723044595264454524884045789713796293103340233543355801254656480558075573615958303364242560218303032628948714564655255239576922976167702997582323603999872295171132393741431984749021108254735596541492725264885890161578946497369562060334742015995494569450077790356804929801584786679985071558005587346289852071851542040491859814186188000752648127801077069801895532540723003775709778939267000938169837892331928615458090928679236953931692334671941802570612631254708102229825412574423407677844223167086632386747074342054181391187488857551357155855725915725686381538654994937329930749256018216706337351604451795992829009974700736876754963957388788942646691182066282956817278431562199050454624836336572122955735950436141228021060593202346330902076176666117989093797983191030453854165848981823637424401108864856580877070718631950842826631332002028097232486431309102995064583337362937339973962854156058857310648539738904662965951520946369320130151736558544501996934171552568377209553334340099934348157962758836522128066783313312920398628985130662042280728776021293849616503568507377566214927495246338153290112193676208318603211281819807167047283722996155340889358473971015429662101889235306116289198658083934675144549278896674326652986779219673295769211101817333428794627816568207202145110421536729274146796063012476105803934032905365748196132394109870933492000927449614448551997635988758875696251647118129555327182443311625002893584862729045951354204650583601750543751956397466284843790218715426103967641820802432837350037865158518664213802892530296831541225616871648631479010113132886659205458042043573718020533011493530286479943623950571722037099679237583119581603245983862277627727414185639330212859438807221034535773343836266467940238563658668235244123575317529295063571577633836099151398635631936233255291493314754640504347922941845117399163435043930642587514013809579385007147219637718247040620471726934830926991236252003263069551329212413665613539787979790368417243787261485675567898326648549143541019399893533343873861127332798207327236979791503959627506945624337841080028750541226053688274705685526970490767200612687671813170438046060819457766862148928136863643286873649276192159179822052534475842363840143409929680815274622881192731386027370576933416537922253307758547291635631479133454099981808931753476856407557859585912672250343974178887773874739975425725477179332726228172611412686675709698285053713217433942869745275396830671569826183191090272261148953268871089258404145306480882286993697043251071904113046509251423229724629348772684941409454600614328370989284136368166783210277454440179628553610900233996646336163626838582141615092195590004148513727173854302219791619962555349218180432168241591389009966098608735579754948895598257824434247752044044216172514881006211264074975961670598143882988728788644624041527327471653287803425622355089121830515750689565878862939390958286651369793709495274355899029283701929165798955061354423944287133264172464790290455009273210849115535304481540939211032381509920779134208023162734228464982483309439613179285055769275882017595467681339563949494480934777677561163231145164588519370560411048709426923694661505483360691651599287543517908308133074928426806806167114754070581258901638675445742741290596091154027093350980435400715607394183031567447847562163588358414312799551513100436892342507467640478787109479809879553694978024111075809041508872359724397235927019723417301598173390069675003057445094521171001107846618875306123770118133539293645134299613891821220088987612166110368636503904956810369253405561517013021013558714402427401353947738226031709790808633681543993459837575732840338455017283725485412329622935933353250450135909820952400925392460287496419536464346020192807044170846891542023905912111255576209239822180976191729632376796576987328569061352899586839682901821850239981745723496985619583351113344095292029291231670763581718769075561017399944622325537163575586738269088684134208723617156980157992982799049375287617190241076699042887683456528535127054371496414883589205862273002142548448537379553618592898143691633108659565326503803687481372874186059333453392289034341616087139053443891860240350335564992822801065498393399926702077292990326880106924058041529490231176481026640146079829826993356869062945772466834571393273512132399078133801271481764998940683814495168292036766756937275607448103494492283607226802205882253983707760509022277536570507550737210345174009999595225689134164751257020211667519551605948770094401690511176992295038161625356420154323219103104163966295904732762007255212268705697425434016608946218485381331519930959830535753344010545292039856513669566149998470970303098331990247981376990198616412583115623406353506678341552357009460405332395383403043767714775174338515822681989332019253470787111516500979019050991559007886339374270770220894843919476382764720019776936111017246128794350280654069846013635162253098853649512782047039788279461082764729101864968781470771904187234270076063742174101554193540373691380256675550628516860101667622201323066193955653777634898424043066511642620275958335905088572534735682563523410110420452273606785566330922984108338274078033832608816419532582076049376397100665299733882442843005192385980895508941293643398205037683652757484103663836609663846797100166088449855323835390572008208090078408871215552754127135195492024669850439137006961795996392543397790564908142019437326912510145987932543191474679191266461099537261552885542251414605950033875827437703643714522649236615833613886570917872979567287128275581021973044671629768849078970830478113078473431057355545085394148765476961201357714565448280615245622808396033134256953693269236989540564083379253778309145803340499994035768785450421312606032213688358805575099513872658749823041073498334917048052378426651195719005761963492664774198849720973217594821806471231223402320769459764812332598526019974297010781431909913063386298437007078181099150006521799263081079235574815996800668633245272042833529365586712282546078857122366420477141700630933962706581199704465848992159868899238094327592762603117669294548040878564744636242385513360501640921476400549125071195145840861529001185313271156103042619648517765761579033227563235528354211211272453571471940695824558462694011404390890848943858136091124773462327994386108140409979717137556553602268929328510867251066361679340736776661426650704725369443304904344069741392848252496312151583466927547398426360723437890942622229875915604900764890372527453136371481671989731619609368294464801386933744342693679839312168561963821722913128914603725109040511176149699705440541661498412956479375138463912273209125139920889186009072764504163866091613137021838142806589835282425786022659632522851863234289712850711147747443422420638927533377017982867271721701240493346915008016699837102773896138843289926843817718999601780943575545113768250887214587424900907853526564915137076183252070789546213924771740202773027803059131407565045044556775957290793855275196973074737910123876699388090147829383963180930837085743145081580184361192395599476972822400132857308613792023968259129936199158340518931259649409802747652772180665759755270000910048057710874398319992552636753188119037975869465152681630634616104636105942836359315440937200101631761172943605470654817222884731455963706938988983701598369905076574153780661204649728803800259820595479293823773185142185628542261185959859023137677250388389783231601291791843922016036226253420692118787872441594693837782073859266128058286719986534510180158133764876689850082110150836406757069489696099427225409976884020100852537076600320710319709438817190201512665778838375171744680468113853957108635532942724319879216975446516728816808602579031376169985163343447216223427050195177469570549077048999593182265196419099587192146453773624783904013346340909942068661123946243499054052765266613997813415355037765180949506204687123751775164347759109478723958258524139504316250550081173487054945579165109603840880356570429451634680669641729549445497930345987214822301081463444218816824383383704549119390333563814579051877436609258785257127505280031969972238386855509004375637416771864308236437160542948621161492554207557640763641646993816733049529075457756895435592411204244385465823087815360872181084729378337420855296874669565706549365815712639703343874644297646781264664222618445764699427312552069867397869497598263537562318007835637568698792521022347446769777205265137533915446121934347052692679399807113086534791368625062035393607200139606321102030190037204025266266106877697691688474800246444952645734242183037138108870800015234811370758429465602393390117218516185642807386487834718304164869105483046582866480697278897037921514080568215712216652901537882983217603073895694032080903805117268369060937792245549801008023481183449733182206707369443868146680557318486215069524869290888997760212707213334750043447289224523449753056160421273993783754068154629762294793582329335045443701790701342946656858322781044822848141021132720144403595857603721766773932266744755658236472216845419344878763770771046447881768976935488506544511694793368241441539223830786583689356564410971180437680212724760726101774586331682533009239191873936581395921634363170281818867060636619904983220316702418495309965341885342138877934587788458607765056843450970575914329152654025462438988003268017629486453901086007336711324531444939261949935157493872839726305310234959857261445824008368070801455304457029955552105192589145967255768268811358622289645498833158819195033969073048820773575324221534659325724401022829645648068479533770654347348389255239617663734143343077056522068583481915553996510916614671505058780484404571642143698760050926432434933056560801326958593372169477640132801439564228086664600764912668710060402240886858814902886193457290313194981184001123958380157658036375000366401137400721451705758017998281367438656427691669914554748051942108382481410642933061366702929763794846449929606068609502149526716712861583509688915339058006179403718370944457007023991385052933229903106832140380801184024699716012634257044771226733255303016933044288766725351356462333052898697753190147313643343503862162556792488414424342760436604261256254503837216560384066155268563536390281765587777086999529923039531212956508931533168749828907939457549071562318902465123090362094949115771152722262963101329573187572321301980536051752120321459579024196894828455250047947149411454575130379968095953630843888402560980349913912384018785711199154945857119217155869197502282365263592788865513621961045391765146675944180457364933694655547324281892337050028285861768744214349587055682462959915346865056143759569131863284970129449152958088124964761674250832896524938791011123500844479426539275103385881577474334001273030088256659273656379368170719925052307575899387931805898961361291180193116966596508344537994008016028108619250190714770341874841204009285536765695928339110080245967493213103128216714829642355165728406222894494370178393505753060987096329463036971945804728870035181076544669787524636856107159330227406450742254620020333248774670629157873197054008044346483255221667353675122741882671917468986556944352074038455787306240450143510146159667962502057650614638793352610299738068462521056121565811408167895371272918107251176078024771272291065156394683988574285452766646157978811111588652699063474620405160937858043466691267678411404719477831171859626484110281871154767757622162398852760571399587137923196614214368024875777139713657906349945689072423546662040020839750841761930582764944728392744498734297797044634430023649503772872581824118820789601961002112928773045683040857774945172803276611718208027696771478223632261868720722143255975301273493738203331891621785500568129045019538886687396671183963639553512816762572698138405195338180823245823635545396869908582773745887077321771850358588807344032612971627600796791494820435258855667157728299461399655252673392957533963834006324592406556028244411585562375751540381313070174535351620532197147391629006692929818468098924777848913840019467251071855526278615936756908760696780095746186808750334968696204747214303390124246401995645969702385437038308570593820837814261480751669568050916094071245135302693395902646825354346054931192422623983287641589189363346665826762513367497281887851804113266268647432926257938263964199948633861430276414955692524355271717966111258942830760929710751277739102727628106242954148678233556659435717527957827138105928180591676230874089257412991433637078535482623471695293481707028682651865748040252072023556892668349032608337124246317127714592396115694031664593094165956719425966826649014923076838261865923729450381458123411884123826294513105360710648315775395932462690731084065006784018389874003859958092932542786922874484951627456250877282766922631482653606059735257500487032920957407582249292150772495918295062888037525521874341512383523429884918853817503922373197821636629756892625314787646707209579230833640700661245081174742925557496791324549649160870183119363449464551429726688575679060123328583081509171770756529290775217934070404087922407836298308307154785720112516332899239484547783190026283744905758292627956566402642961340602233265674783903381276069556381706751550297262057929796229851405286553467807988922291661376028968078327522630484086647028487806210738436241879022178521158708953669233256945575089724510193835243249793566600392748118064473660972941404732767244595643676619960324717600406234952735857946376984509000466061170125293574138474672175300517705560931823522777132909934756620756334557517637037907693226022928399392248944531912305921082235944436613637705536888303956875454688488282119513719501542001786743951659118460425090360259036913905230790376878819237485074605946022347556741574791338766196312722228950378202759245010740309100923537054588581540475361406224253690390836937117402469679823127469697829081895042458979116181761785002906350159500632409856968444978979132944713404016526189311746294995128615930836749035044456700757890327948349225609223159798799082639754193077909328448865328335987989199882700819182721321549797550710474717768182442931627670320006876350583893938301431665991550713342940218738871178919580751202949099034106922751715650609443959782953077390175575825910441849337412601073883188540806188084192794332774203587033615518247838182939815109340027231484933262309713340187995805753703820193372099777113400263553397687346056974935094368162923469049851654197709119717601230512511732339941259000286431220462740819793961330678528237599821238370223890531975028872839312702734258772069060621058256034235292380331193261907049172970600111554143370183924559186307767037659517199600986525962756047816127591257056504577070101682364249541121069674408898377120706080948733448796155660736253544694993438895439896610718142863525032113173484267036762287108070150095822063428974309491986296820655585247941406055947012652731289785370146440025805928262046655062878732757620287226383161493674735000087543936055440092980449919565221247816251730824483926824558517207877011745606803677416288779434549668150826162325322080820005055590152627939784188833653189434780396690338756274962404587534644773065428346651769777068161212532531922750927739203664096310052901549302479499278208492332385254631013698221891683906685749299211349741732357984736387636274932024711946880083088850366220125000015378108499050425061961563957100209920421219013895762760888694740741803587105460340870525032905022977121452241403906999208419687788193092976452432488322854270439074478009414431713504112688218011091789353730744879782957383708445171813596249776980199841035639084551491260468799480167419989119223305209920176772254991594220939139630232004096596014410025996501025131316535804072373587742815840806222148306645173301497407803415701927760502032822193363105701109695755336528223993719242170973058472463728387780218253875157958821533696632684831313292284740175799813879567838214010097551513454622022533899876458740821271348822681203826347879933066994889621035516169830598620494827956254758755673301399954366461461471718637839040817491690462552297958480622536285911232301032790801225913010434609947264107170622153128743744324374308866526535142774608927052856464434319603420016178933657644141228218600886059012704498799814992453912999858142386493495687324793203664260228898799759388712703117809063315243111986405939561136991882624913631880268265264587026341212581869158869589394867157497017217458710331836093243479494436881167084321659850427597048984266215029789272578439699222785634391096895238784326678994009122768665222520601242936986379853708654330212934158169016642028805447996054997367243478116890457422031909622177207081449925491838317844512978043563228758500483827597161061856830258021901636220353003423005866196669952593895716106833432613877343700758107751323134839390071473227876884597320558119564739713713102086261100634934878594487001423025317699520457034940319096732682805486148104330805738494520018681307578354254315460725847824278538579163760876017283517340460045293555354869176795272872232019430929478996286449619374584524976943597246685946137078650481504199068764261899198979393521459494308679841143117822904726656064271041133561421548554725462584106328727263540685704659958379730969376406041926467378577471385384943162798668813511566607725138484378186505236046554415431304203530984535383961010423684925513999131887453375188667855562379080642378241301799813950820894397773214801390550081169365954448180745240299038298891372191410518199589783410290900844144839067116894347868435599745362145060006492556958077302978168569627788230793247856529816849803912361845625865615031240396851724701992541003737797589167543390949904919116443537954357567406774461125189074924377657070424342806468298853370751116580839074686353942982953089490520117901055172345763312855954400031780693061929627411394180208047014520339011356749884617435453352254434132924339010141044454860109068626938267805791088737364617661714148108975017870745769698417287277984420681353336583047281118762347482276331469452670224045947990098815248398759237932698899249976844415697914030843325198652664363289963550900491601803515156808390814599725984600957119823828689020812361312107985492288888531685434579442089174078312399200670529860428484144632105603278455603163107194675672994251962574710107179863308243902292970822686654778656503583365648080105352861221554071221032131255110203546142819234655550676907182451154140634815367352316987355976059514120151224576965154495997027734696668605229704809301234847369794640914417749991623073367873196056805365897492032087256754270964725200579528821759257819697085319529395121948160656584517931202109735946120691579750489539491423066982452271032653483659300671566855462533420878892645511433222368517650507021535727011321255126772707512471878161023661563769793869479612225993851611764224991725938459198850274965013069683102688377896917921535249644865833622578019378761486116740800255930790020810978894140745031733380331598261988951269282483738410619151973488369190638900334832485519044917910425235466941026185490449044482749517342997550432029888758501373328303733831947866761154789219205635040960353710964053087289393243521623781648296013870000023294151274644744847010848599596041508902714010141043951754576954788018201837290224609591398461272378799113886931209558698518023411960632578945642229723553546459981393187394691897114992563668162889782283497946156627335091581744630884104631889945535366959385194737906903449712368730569637992711754284510472590679046508822572477435137273174130814321622512078372450886662220294533722366850876229992951939704765236792900042298988237712468071974952734024990598758086311853413841141025997324952223481116736689121429809094772451757608476773140321533213975050257680350805796309946796524233920780507270018486668449774147053606837288350298897394953022145370670035256707141743168632045267532776531903341415595819663938850816724000270415254021393473589573156384071889933491974292327085363505096295791780281918156386009825180370389513262003596396129356116790164819282894826015877007826921220037308432546769854107210958084338771775775849793528224227198035786055355003102827259683238241039461835609762088404324036947617985938283884302169123760665934224150347034642392739109883326655300579989049821625761400387767549644840219987678784555918662675283114443028491106960422786723545385286683050383909303555944854838906764827473105977649263729180729296078322374891486265068694448544246500261206585321199306731048661484486889903472519288196177975908868810136780463801561620178319061400690180937831691059191333185982638613038314489254658588061095287127091033066452528409985538862256455007709458848277173154589269029190588517260476157311221330313089204238628542469088760583442583223755153561393085050211938959384187951956735778226346587537394649027798049073235637117741468046362232060971858971805178178401840765591714553273371773399338346955998315081101104859249435561151193750994612868592943853471891587675367857529551695945821895817666326438613565869696654194140431068822460064664859864675805504393957786374372212638491302696512474926006758636205797272042713065187810379370877907959137619969283409359809308117521032711017573668482893487370928286981312045855518877025871051378514129223297438563296426297708016511229452395580411492741238103713684576467972405471776733472330446675946907895648222762446939296447152487028793295775409234446215312835431819143212244628578105494883511704691690972825003278955729518134464859249476666658024238741268518714458242640546265367187679708031663305037296493357657727137778843025217987623365704089813554429561187407022098831353776317611672329676565662012502972010264899804441756241105537997467677935359039943475167608855813092673181066326021145255559400403280798659311448689380676665369434571973023084373517721357471693215710008682902751167458001846327391196055357446856139941597276921284702798031344567725776526592112184622593930260729418188576869716368765581645298075619061143054966170356193529194235558200527878371993555254313530002427248346724971672526802283230199609659519112686261206588820545130434546085866015262477760237531490964127336739954827047157029201437393242663474613680435340983956872951928174570049965882449748543541321981766648670180323112377419875138609259850999449716485936086761162652558810160969107795562085785343591379005367129885951782650809661585039850614919702454512724770219201337785174840410408904268192444628970573835397055494572869697114038763853685089464875571263489582806440554548575438883433622337805743847007442071410409950170924138085388847819160971494233295522612405921687801924873750844427664857082987340441462256706178407111813451381172755203312404049105323530376067827591890265531378221910714873774259290557977721794817484306521149823591136576789133876089847327218351190043010627843322707595436727162681750455282663030266063698401176037549939003045836264554164128625513986803226774968003075567728820654729336324829084047972837754471677377222022861502333550771810323399184933834458654588517554692873091211097510947386268274428697590556224337082690848635339872538975085428505331963727094967262832025977764592539781055934783348982378407992293018500338999744107058336928601003692685649286826029808538026997049253395161069270552915211710063117705982337446463795024088893596250118993148190120505385123289042091579183355191735570508474152687959788011615998466190304843609883300864805481390535298453051537830466328625542256174556413973460547696647417758918517276351931779116654022791275220586109166745381178168969382527324472174144033626353593545920850805288603547958988482833616204564939067404570214212099021376778467436249462970747687410720651278914004448656408938270098267014481711534219411585625192025180298104720033510421036862914270720857752277608211488288518424168520208072672215138754734640700492577694060667254253431532227774977046397910462903493840838179331034833573005415800833136007227028829092262042108992290171717592941515308018718985890188454671847789957206094191367531167908552231014243660007453073549548051731854759479057127774016280488283801671140754028032683329295067533050617273612494697005070395135667068918937977157519610039680880157383140070684181235213357618200611281259788517226156878051652884378093670553537504239397588925201490306685715701226658373448017516476790973377177150113922736476318734289175499961172176311253093264801139286734246925841346485272702557735511545818308952184791184478505465442567392258906737680360337889621877223705472612690203486046753323289418202001020829167901453738341744330030593451559890268975397055095270169166295825569017123813967741103991912532863714480563967066784061218045690443194173284180086803653772421117745786398698047737000027009840142823390761219657669692632971454694778146967937094942950024196262911854051933409664461030714492510127828686199243938041764591730354569273315296398453849912115209058095654737808899950445638170035741006481074126299715034357408190416390206067034002343221238700318018091058968163133055060276579807788369209983094217189527922429882431443771164392624756710299368600971382279930836016822106739621220652034485466329691147120866867994150299008717123847054265533459272481720666039221842401477704348859121270771355661581746502832465677124825131156876819424338113808115402067138352482351188589462166173372475799221175273039448599252751112266864650972705859368677718157885449251230048693415445706976448054274980808450076481647077539416536908672804094981729729931393183162509101910107412385403636851248530006715114524070082424846266567874316869553343142010318144431939754585864465848081071249207256022059368064813756002502518475843683323308782283911999075454161596075018672712999592790381434132729192670837073442165588856712006686952995102612315296624347612236873553611025498624917453262895750887865398731207305013226954634541412327870692155320900146199158825946629955691560355554277818502216448762589091198984228959554973674498839889733706320393473062577173812896165493598650394993903450086899964914810066332142983439823463922246467466200941724188978724673628313386869838355659264813768059621334895918798178500645284952013559802085762827389831492460460559706672404309169597827935637692720490534341033184625925568476080908393091575039957800679830884279332967389562835421645038818707326202335264170868610953165830874302282067723099853424356606991277424409053900858032304592231332734629339621653263695243432994632456099574696018764203879341724170229627074952147612338641301846923513432365331356541796379537000454386935224905436088884595366275045195456043083306904011183838682744325333818047608075551169755497892126482752535974826896291602862103620677762683009651339749679822704360187216345959721628269614064099471217646827585261557090761622610774635468384384385839694425473035414683113233206801817186305079357417141959788035479130095348857825082830826446254600346355011851951049561351528213446361167139352334922425209955963488265456926810413872316348928282213997068420453110132729591446809283504073664384947640746698696840613169233632575971790531765665654166380311708198293020637928282549531357504157008121672793693796371899436560968052831023120467461400129738630297294676361841566609497745049364791747342063563258147742296922738591912915569052027606751242351856995995527559885532209316024279368494992843948120383098127683556753365349097363866613393571808870970416801804453167612140254223322828875924876404991856666709000144098386761693070540035998280729625593599647136129743587788732196182289965441111058545663134558979908065441792001662258501669845525698291278341096203359040656806630793383684169070579334223357007004211605265617712257544575545127911057451168459947139313564705960290627164982560995227011595559304425412930567318167156503877977700571487991015074690652335458186349770882969265702963587462603209519821888410301766686171971119135317745414489171843261384153027804389300454358862378902632021796382596178180774142128310790348946108568787840639413154439863454034704648898293081609869266900067117145287864559448443601428297601224661758004348644777787387306535934455915791860315126662359575127960979693556860412803173125727268316033577484581117404978960304059794748119047210961960474665042170884473357702082825752247629820698581653802851105240398992014482893844661555971817793727457652253648459868824240811062234144118788795678667384354680771327061793680192586762639866383683032029114684695232698192173071584436044430539401630092583679436022425944629171647295523179877716343261225862703843049483731450751825632606851641181601710757903329043088712760623032667784152581867913178932711469116102843491168614982854761874375017644616175409305988843809286327985314716001539597557006980300544605366167733768168256687082086085376980945186077997268830211423558525913233931574183664861273519190487096584230169494333485892491659564411677224416453356626878810989478670372265831679720564563769503042731329676036927906436863521112531281347237333601381012814359978356924339888177800095690550338390354640999331676076653426706174076913759511828032039781991572590533362875509565384838823619677045291223994135001677011205032328590819163186270986381023145042967438917449024795117506943813790777921594481854115647593910460173868147917170076595890218338472215171713130425479380487780244704280376460648508559195182493907769139364050787120272922743935067843100727224385772507544332684822697560734769845220511898199846004584877161678604445705170253571277412565483732842746207670086131922766315260351329674844013199238141047549314760400268107185350166674671360747798129807549689664116932745985402873866132854729141979486906080055515233465395980123828941875234083858806446304322022358530560749387830818650399413135901995606565188551628121466161408511115058864566952704680353719384591940853142492876754578456948188004993244266489102432859378039934177109052844728754027504310695409563022610695047463161469610446939278512903442950223968247676920086742529926336113263011636201703772704207583270371561992513207552277384131582531329020651071083172720421164654436919884667565353542869780757933988435786762818336973645563308779858464471773850477777566050515639640417271270634665810303732512415566568782575305846538893057310442681723826704089100552478241452812249926051393051693816031998430544512775558005557485401987208083016501341888337980958846566200968994733910625500379359459225967177216132793279844862395169342393892403221218045230781202552895687520608890556019426205397982543290503882854647320544534663759954328580556371717925050413107185195476221831408851071448176684349699337168810852615577914395431174879478304618389149488323213196621378970869644916282299041590605305197539560458665687094810111598520228242772582325060325313932327637254541570460347794952564042275831066062174701288754507000525257934114396205644052636235144494714042087934947116393928957894098291116330112214227793629042498415706274980643586527228331341816822033973927731931011159084445840271392817459565636379216329319411280406990662562502696231364451387687609177031404837784075081896974242139180052601772317842177207605266102970153664601824923039901578167136846871358808839416448080412380597255588949058076770696957892589791092078386517231899536699280007541967147174233461604480643533080593008348656682862947836040264526156365961303631299411925739404956938115487502425016919206961818584173143465801256965008707411334010459753762305050032135090458899980967014013245790409382309309062733103728910732089552513226540267778421561676281572917287015735982774828199253650557899232619701131040831641782112451662469931439808111134600282028966525272904088896623850433189979642960950225241033720900482207219068382353865089171606908343637352849589793494590820956846096296482649528803683870074009434521893136728787805392350159597726365316503475468241959916530664013258915090037748719623383907242555539805858222893572453716847904531999723183975328597442091363211675024273344233104493408407490162412638866696396790689472083065181141444343248698814795852484531744353792172426395888221551343511422461516901531519909804547552178592781216401451107160000490923027255273395155659071222995060296369993602502740161951729962849764897950481791530730652091755559665772400472490898084505895472203808597030766454580571892522658847818328758306363196577860208846437473698922998480809018788945734168703076480370467447081016924979320789692718184386928798247630412998726671440750187904528241757951453047717315912849444823055520333203298547433345589994108120593939377515962745030836980425095775167694905586567927754656981161333685637406353020198952428977369541586643831407969578828147361899686023606382538067706008367041499251977662846112638596913867773424880765161930780555290130544474707898646277447184022844178727893963696772658447051398372702760761945498693407100835330417583722870855909158794042858054902610124399284034169006112441136103907119857849921680573970108009239919548894264018470981521396528645182488655863396427869316222015574140652838668175478782397127115537660247746604066134526750419741612056132292630656378224108794918187525948796689439262853700113673175759081379340948076756125797573838235547345646209689997286263729882901893142790015864292487572445295320867967181525514161266976217191851317556234195315169744205331798449105923631224769648206044665725259853127531827509450906351496559946523461726073515057468755744699026418472728227093717827331854183277246485980894179205328999658510362276865766525274406227047081858377303197762012570285991690373019969855640237328446806424498032065104224578628970442453883763437194962697071968979068041197492548512989947245154844731194671634918818182762409554276611419855843158042048803004326820208108041978196887467871410204682411427949735697246888194520124934556429396748918260459654928445008258299342576469973180086663872701624351873405289707641040434970014779010846937393737988084474149999216291553227440161277409421623005702936815945920242454771815041674618043108409996870472241314573809987969384335373982174657675321542708949506673749540915872466240021493141303413061588624311393990782965520118232560818776541052021292068653142395212898341563271717013578928365830581117391621177937645855093718298474761066383748563377705463090205696606942641885993915955856145660119523774065649854089665322813520130107516012096547746539850264291140681554780962824175689860866592725352598490187645029488917444557144971110509152636135720266625562658410706391694542355889926358499682077650160311709064379163835758188801710900526947363050803498560938439366299171088143403944950761610343975766677292223299103397757354370849268678377179170899245564065789667767758164502072276864950903586754395398441144786016563545419770823425955572316388892256304257148821496497997280845018057811963299345644168856016963496729082653185607830954527322621759158411852487939597733936322338966438830326116056008966397868810929990068855560761175566318241137117550415154218390113314622317165689278582330564179478398914569710025545826277185550569370689532574979198822920981169027355710514266891741396108323147481125090412227505760702463363905482890702856872079246608215979847287394972936927007700921819055038741944038310547652800685645230458488379878208594933460641877379605436576914637870365136150514081076722093839586545794923909499909097663023577343519603531172065643949999550936210555741436153602737122222317085946757370321424273637732416684841896867448929270649149259957036431652539834372417538076797598094298362281746829223962342339185162305889079863919205621721355875132124457111371019597959121672241615374804480082494900585923817633333801222709019157295163721793436578323507660007344513538868935816736691728532110193582166462064274039587360010190733668454691827007164654358674419520776087563424896679190535367908419895430229783654371825844669995076793433518437787390174360696726148365518413177274389084647145831559075990337831094722147455522745273557158619908408005710164861331997179464939059481881754061490933791927350412925370778211226281543704340137572362699906673481831645508103084448873628515461280026643600925395427659867400911378895817716726853449840216926542936310636175057776442056484457722143639486239405819561501799221179883758733570137316889861280147378196093740832899203120371825870994717566756657794846866120803898829074163150599773683082741378247812231854660220157642911873053141458120481420237167703613504992870772609371621872948730869752115679858256141276606721263200057135424929246124696691729460707971091131521859410257928557314453921181872589016142317137309401298576453569010718209756460323193080659407453072155550922535187862195914664564693689890610484298645320006450905337900338956184939647313421712808875516486880603035905512199873690377144947041355102221007201306455860917773300670454566772713962694759309227334301070106018149195388827749552668072721546003525390746830528181369169843324800713167231138238814329917228592874578881209989431729132358407518573274398504585423560213793422017699311265802124938381955782170394790128008894399372962645667228349677309364587069259905634113883234842601062169654373844943539642157567433883663587448313411139085450941513176065910782397445452189291645366256618534605245601817189424544622707954857594369563804931933099690494446745107004157105036067855250257696638975190138985181949885523744174071345753960700898958615652206869556065388155693830450198732078133632725760732172586414534192999310156612740173456811793221754326474697615927008056885433269551270289628891100072112072256832149248254224688038493199506597441200676663253713881606962744701788581499495914578679285453705025884287558788073967465356805633455201474165054083091719709418855782281308782090881985732764043713244469013280405757787713051945365988705499315384161409698697087469373104106418348594106450349183858094446688117248575699196489466587097707652466838892859781778180997504558688582789534414244407980849532896559162937469479071301906936210760821980588993246565889130547519094761331066019837816162164763024601602862175216866279265392714236438962444464330920814295098690921029967374177439398635190655293751607818570885514195760862436017748042858555465545226366433224438181904455974230152549643135862276582999033812361807672378984439148558393516911380448633036024177385015069160093155143042542001413770126816393705139023211498155948936908957221086912347002525313269787734517293117463100672021069544206433273240531626261905702153716270310393761247070861631313136438766805286063587069757691275703812479302888629889234911386193542503847715793217759113735376110874602595220854309541123397673332825042338290191285967225965692749068353316410999421175864895625548177242698152513682227556813315683526735960419393011290847168452928727630224946748929403299063338105792053931781831016900759806862484169846753334347374998160242985027705807786697177722093806340538192427745284945879921243921969594004610934916847490323342773351294324542161387803555021956697648322923262393564691217023067709603020125573134853775807227565795552061257553698871596796176803572463006820953492393209923215819601776940358440176544592856815348302125745627643118183267052960013498175227493225982466282539210209054297236283216450569624702342840414706957987427306825232984074298244298448143660641349623700675384472106544661461977591796725463080905935241956894245195357949193063296716664299296854164969743437847943192754111410882720664821728241101022465453145097772981769275998623683231142488315231323205297468733835922790131583237545579463891219796245538241841146476092866838130225087416777041262063858803625395333635706482218141731223032758082754701280972137008013910912086271269609651408551636975995875274509977160852776095071320815339544584344844893617577796500521345498812172972099017703934753751209499850874986788998843493024991890773499627732885589550865023227233689947210665779464765559916453540555149291683273206666312763865985823385870493341388681837966030766774443570736357058037763928366540140680420533359296234176363409154510414815750377895096744039268589016000975420212955063490846144012387730408298778731190920030950554314508559903477516075369190767151560841756185943080759127469534563654179407330474922163897105022648644547943965645231604245756202619654881832401595413092550466246146851771559498369447709522050054203088954924199681754372078374383003229972280664855341169741996376931283736548257054680496745198008813954381356321514711203306679866950740025825243463157178130723444284239094157441850119494466757441174384141774718197930891015304289921861909815202256387216178240848117402354589215656219704589504468215229970537228759242889293902899182726039261322528135155100103090311107751443200855112409726997226598706857222488214467374276253651490151470172320095850206459598376581429854667629432709739799129913893930752938243278139524431790221323863024070666687517153208054048306150313209936757470517673964543563166026487307329333721240608342860175639416015991490961607392806658772104060368403796679105420667597722282548650891295623813168422440147645216392099704620075878893442477240650072613536400392244032991121001915910981427434241648170234100312478686694767991046097358431442651053477249405763486286376065645441452983240636624211649439231496475914768100272498509050391757733477264097752513749965462250663505862770878918111684164796297285259431345334113253416617908426968459011602452649596185417746075615215568051930296972134712558810832426164342092250968164972936859671560888057075912169536003642825022607817633031357290371768391391453403784505818389729893804813531623780257043472911142417939702218879765229564175487231700757096897817630176856501753619342377962228898919255548931163355754129734850957475186868958762375166765351986735287557050311713102911841275381598228012338286064561747479264239038830656090172926712755427079948472017307979716279422583105784478145878247175527721774250485521395377151503378125533941706029901666968172575522610618106351837676586542972944744073068814897039722986957469033660733021836497618463589571260714540637592615601507150376538427767052038559057589375470103051187571750089386963590990793724027024610301442984655673194893667876530683461567418608200042651442176652506025237539931945716406617313445102060235814486924344618013540961548797938125836067535523447468355707594879635248144413329681672763346028783109142764065827869176354999921642103025192069906965892039743780967169488068684173577901854923501791562472201497909754426577078286091562552486594291465703561990376570899781594026547808198601037610111510815061434549844801511320601372037187658991239835642434772304960412710567001311312146439634773021885408382523220394915874763745361831746745939456840692069233793717480469208910125408618094468821957207491304091234984896344781619392137642030849030014682071406986119118262025221353188764234461799692444597534599416978038001686973888152956525943903420693296109343231397709548878886796701243829337575614022660611629955040995749216171390153510011275821587479627914566387057580830324055020070837766958988772209152468507493475237631350248733370068483309038831825623731709932258631152014709903206352452293048952091407086072235382546631168085480313969820233754848835782362003811872863140380275144303040424884109258632490137327835836318759539341340598584851937845714421463586480745174568884487374352720748892862335308060151696874132454848819774562985958896681726101822388293691024026963523683570696836841446562440683677540684439525147533287774129455945218370548898460222371242239705124498785580193131925634780678168619184938052263005058992473444280917585647908916528971854994297575785182752511730778951809872168751383271299525953814031744244138878694318357381592456845542145685033187353315546773053924205226080305604296915050164062298489953844758446227763248570255328023933467917100381237302767574193615377404083777486439437732196540534911964417048162903471815626219315383161224603434411095880816778359553436224937768150479032353705312533571215965799599491242027252787878866623140127107756632365519610225227886034602159504023992798193812044114740589831865458202571273069591820064645968260261337769860521925756429521929243619550906834116201093322108191131710038705261239657218684770857652557067380565429026263224939198888431735892211862349971079720590061070590807231493946397055222348564473079012135885739463830890646903919511921531522893086591535271634297122438563093373500557996299125479147566934210613569696371494089627845836987818122600903921447550531805053200708754779372453684722758896623646500693858343911116627582982103559860803425006397393134248215673105994663007370952034013252975890106466595704290846132664735590175397309343743809405637879292286230746803717606821154706890193348279738574474393747678448003547262550753634379438121469760548508296811010051703358032027717757336647843920103149730898766904784965690759443603807208241401896597879810502797746931183181137729842746274328429486444838651487967998337237208479950048240774663287344475926585187903479805922527918040120766617420152684294047401869288049001409637148529830154646507453331799895166119975431561824839126949941107881450894100722937266061913083667110895101258025067194253619486545314229740427108918171685517857482443050269542790259081815026544590861537910622864344016598906476070931551488742112702057589057760632044168935603116843222680603391227876944369488703674919700171146128220280041236274894803335914573990031218174386029372095630950190446482215492870426588233863963622073948965011916046011667669370972349752788419642527424809979198721385366449347250281509661747099826747727632305765206465782393008779174024457067019348058782057549963824758175395081301171769817554205124086036285966804512205867191036067896702644981617194505117294094549504707759272092171547149061441412700442148274398454316890062759725750324843994062504265820810985480523844803963498333147754559275430437748669802638439103979519116310558474547877499068710220984238438801035520014308688915034925753927445583877929698597804413815656924505039043954626590046474350971789788706154365284752574831813471556083571281095473500444673414907217962379684990753661819284273028578126364659784248624328937295871113770820958238584444797548688985604386073665710461006836020176999003065468865261275488280051555032387669614601779631214488357218252027549669198456966386804281419680614524001903560810506277110234414769717954285177184457401393791682582019884795680143863797298268441336504168421945661685918187979945946445290892913024298237079580351963072123378278687413951282602635325500837060538234463659583205620167283935424073606738823686294041008154943269681652584582810854298050774998914219176066477431068881145981722874595012865086109927235624708174865141319348149366644534213887803151837591352535302994959037537712756406595569079463137133936242864352936098790544243843335930801138684933706808552507772501500454776295643995258089552747547376076332468252326005735732248744251535519790985133941067590472955723078741994328625987676804671762922211155738775003050250717337141673475314986146483576518371474928646930880927786797570288787736253073673304695747804033541577978312978040996578196360414533091840430806817573754358618769784724357159437189607420140137170909993115696476502487012217070768672417981922817607960519202128863204417010135078977370083783733475751623429077838145850026897639171113465159464389383001195258660894556355285133330668738793249942551497323677462042887557624754842093800444871237822234065188376284237454933005542748645326286338843817050107260594709791298021492409395862646665005082994765532512342306729339981551085963615809255140601757878777736331840663213357230986154933444497582016792687968092655268244484891638899283994689101662342777259716315137500809808002322824092113245169778532733830645388466383093665302684757228053846579008043432079905175668431991272865157382635911902279878326833745954833162321126004447378204108174855037914669192948497662337027325562381830902168377877415419583289365373559788816407609545173864672955907126073062725515612009338705063515179961146955615551978071394623705039845436466954895684581775893227884148647777784274932190540891937979618361830005079003879327826430959919278685534865481433950024028579181627507032756832783233850474860277962496354893642188783442379868886782714791975357423851276230594273583658573381473225816806456772847785487025723298644091785792218282927005986522600432964786593856361739454099974952115437750290481677020996002563129382167779862931049176502249078955631760436944235388183321102538995823861618909925969239424530522072229262524469616838070588088696582702850441884082566628610566923111204647792333889626365866802343707866875272286770760931347944445023510138081816786071911553421897176201048043429151354127558682485031352538611719978726763552294248245221684698299821743878334358154310156623497923343877011383769946747336854456110027632639914563289529271336493048870107858667242314281495504830339064126824628464826877844368988789883223435206709187272840673195789535255700019587154220962364057041105772579841364275948078144145584333832440058135666605545034135833378251321581077700043249736370272133625067013256028575232846261034180562018408721012810511242298862482670033855081350489194177576775052732280116249188046493387818392707034567252086191289712870429323004359214570850698865312345255385343959051665283460403127225235881305471702076788683631717496349296132460103244479685802064917692258197156027407957325635200898675452202728063765429640254024236351623582342974674931904255864444328039139096409686047732209951830377859847500106330372016528816578546712415662263311393591926639752306706909923559333103363196984404462982336843849896550815495812405483341811805848988371971426415031577629775455358322830715282930114728057822878191779743567846961518435870735567292705150484972316820119333011348389098965760890431400486487805197010391753317232087071699464113838817165977021031750501101611258007493970023683159892645891815110663574998075918512256851704107179448663693019889000528326269473860404771445492091657147451924080407158262691111225629957652474427452179833237444273679622211362441053842696063295029251763815410397434603174313270732061947537043397020032695399521621265942611890700053646896498811786224171469214814012704054992854640937181052584521085746009202569876281951803447125447047701808925467351764127721949258810018189062613545341465627237444161573270869845345923863501001685003713435139731237659613431934969714567921534372076389841728897083857641407082744873769273026470136154017481351721157117084356938809109090492141116648771987194553856390463692930529136131951766426763362781918572570052951037149854088987139145330062668053583344972667656488523933530205608804701766777098689757493425812974791119476695478897377112559040557794527445360223061331832580434429182792620355502483620689770631201714058772489623532938289674673830265860797611903777682392056881142182389948548419515997967138011954130497962471181804798164097165256881355698933340945241356247920336305025482151277410125205822909930499597695506026215098345782358098385437862513568951128843783901365151758046474753915089273098686451478911343696992362893861789769972625883123887547412006448992095637552972009118261438004825516439944692350110733128076728662140083385835979185500122970867220028733850312750234576826941477897087555184992560015817779609102117585389545354228461673139281708285854387221049132952838767841668540530980057322353468619611224419600204722500971310677182722598162894846361504413182430504507990506824551985736075056057148817968450997638039398822228366497647315241537501699468938044549081378306642079742601019705924679781294739522940952111782717849772809319597818368525556979102660189693070778948282650752642117251397114814859925604749942340951698271371338322812147288631836005043972813418976367111892444775226153930723252375161134526652522620969307627592211634535060946872655098311542734142249206725974368750633499771266046991045568365210098399866326163275071699403641988442342515041942538822183364467019677056785555945941071677164297397847455846237404148143480072857105055016339805233664344558018231489839246828013604935058812023224731994010123808676324580510954511020552703111501272264374043521040323622514416783835708567012024783035469097485567325866426630511596292020473633959326531218892506822203623156374738474832925159031278819168603901280610975696951911706727873425658086718480222863865801783658731849338546948317147380956368453308837902729133761764689019169641937291108879870949917118069663869319267726714331441969304082182658703462968144978937379228718246507581073269148058262085427795216573006612831554102498758545004923786711507309706474549611299206607347260256975332117801195010602211529487086699522501964915404927504767954700249640521537047548812935059607357950664516007472337535925460487040836220220669066561216694745716763781091070557363897769578303820193155501076665358134071499963524046901292867854652316218887089083477730512476424719252196114733888217900690529505943673587615587294996973631638996446902040242129593619607126981864428224742550265025258898480895307407808161480835945473027525641005720740806886990823629986096617524440359030117543862920190768051134370219632771229079255600053754148441240341040707401689009827254383254930850976401066954982773590921857513587863864123132860476637450778076195156171340430790086068276802981866853592974603044319229340973303740969514792860033415163883380025596577829543820269837501212956456944649077912707427157432038516559139158864593323536181790031387666763415220484602143605708622560303546985257760721792070078606840081545628903152109319627493615628577989267592769396893315903117099165233928397397703919626876231513587678642661121789353720976178072905353967715416104381106313454047336524758985122415802097293892995327811439846974189119908777705898129408690387121179214814306940226871109713981779650690483729284734343946317442674353702391560882799880738792225562566188734497775117389115692563976486422780124522669872820592402514964735636914297318894400658976764390875742725854128214774293924573368091643484789311587230589144619678538199472438088774884520724543315456847462851281690372073076318767828945905593017748935065545513502612088492198194907441923356746284401301254305826761351684970151402645092920851230372132572907219545596061345094524996476729422179936511533952558442411791575955543337534081337566711120558685324654178921368887175276830612155625661684750114253633826556084184910662200696742341903727265296145465237509188909471051197749097350228464347113291237611985781047229395275851941118251999988171655908586223795537135146437576543872802690716174502200977341088024375515961804109020698353595646704025502452851419743664438964643052777982646068444199345527372522093957392476296373087772817539798553510689786778072037975638544209385442741361794688737098456800124154480118603884673485344911889211545735635712272005202583613633859535092053563172236693044307932340452576601866246204738803731818740063519651412046877254701125216419705734655683183087834205155618142882235052156411863935827367242816132444837355201561983794339421219324458579794520612153933332297000419241654164398334300206530315086312077588440211950535851604140003770081903828554019340932403830142467838615395730757296411947069151696174669402004897462943457969140723375611596981331673024379905266755642876218281109083503488335447522242162430990120027600408756028908077247250725531970612825402689466703217719463963291237977589973409971458724103403915114184927071532244564547943550907775215717500065115647130724112764285009282775793864015684364004816014969124582533075763077151528885876379036279700264416183035858271532395951765663328366667751045652003578949395860962328692793820191775123546315802061794052752119262392397202631944535427728015600277162046870220733996643115968622703842023253409104494458596487223715036199832751100366732990790674195247440788286054698153271545471480232190527238179556647915223090162880850541876742315177198584847973316504018634276989494493690860912817078634094676541150557136250494481344180684885092251921719532399679500927833384675031564188278863638646188500437557144983558479105400797763020440278717173303448967335323083918700758147593517691100160536254502464008509555919496751378055541895283377793762244772451177049728191908040858475156571674235934718066731113102177197261090562029420526646980696773647773980518421222366634554509520794245265947819823558817595789758831202765106600083467768684465630923408176390880941677984976410787702271806003846604897934687668920753147420114201327286453019320781449057351984983993944041326775305863079858813240023056218645349694621105756829856921293774251716345090211370663620343584094860470452899011164078287419340677504014883563677780327605121812378735383353167356872125783120582965090765743141992956504948535353334850226550797978816919933083627745725052739739154310912416761802966863181339377468849592000844185380410852944707174620458209846134264013782016374562989593782382844976852279946422401716052609978774383404493441494653791207512006964197169362935036540884425192974763299992182696206675447942209567608997838011940354848731106097915185035586256855582066788051541273213561509277298229303252063123936534480257480154663042530764970384506443231503468664473602406723055535957545541981758075232311583688779532239577097506470325392541712181983061268369161964808716272107817432522636451983085322202396362658248927844617677370459177694251943438193079898833588208423900570932614346206606531896422885577867649239649738106524708593118614204244507358825990865716068218169658024975624418874379147133670943818017092771458289544949804520347732567402127448392115107596664126277075631619145030199519467509066695074414282932031253088524040285564330794761951301868599401847683638501064349761558261684615540438691188033407031104922596713762572891441464706038140595734702458569859570431516622986837625221286447969147527497130578540775473898740474326511995370507105627648549967992819306294899897851371005750341318885765946877635353685288752967381536493673631614517642305498263489132761770060210625187917447082395164360117076688072021053371035288713028627902912968768220878721198269970281227621947174041324408799515387407301649093598304165282583375747259613970067121025510266757409289809054090538832783526417375175806515105188386393656817520849276152225981488066983904133189066525558805513929244281327469741098428776789999917395190328537318467013870708464288295200534011941393660697432256833175608618110958820753840449287544098234115643839639600285733847940193155733105616754816234273510919359530341392572766631016158983366026762008730210196794784719372692905758795022903964911804853676545798247780319143802812058526323977090558403507997369648508019359603406539619829916118325552634398104999255257841964482644064485810637471632488904148252701422407760924061241514560811850061099692275221859726343257861317577370500267905817218784745401482815851281439026948536543522653274147153949507947077457389755496942924911793514800863792765729159573558056385920646849904331195221361585858931912746139360163596489251547087024576311093816949389475920588490092416497249168079868811940670915568097512366731378754465939335390143200665947893053419912942221105541612629607846820545225552844816774869758616506902399716501268251160102687301098327435131693650282004200964505788507252822740949110831496974577184596387378971360198616517803913687689897654916666919427154826375500944302589815499239736963017768160010372322256853475844744590616370595163656500535083663790118927776910591847864332317895094594344624262854943838995404609311922668671820939662176122664011648190000573196470202634417301385910121838176881521328506968996866859706535254481230323404753338449259926958690821729676822366762011047510663970287010310874237469405890936732534713357549735170240501038632349667670141144100759080524235127943699955678497705112876541565248094318980369182573748499063576862264222463356621192714201996322314770097716478948693257112929935599931949946108080660605773584594798461205083723264503469793590146475490875302982457219065051190276731469833034533904776533268292388938424387546766953362540756254462708752121562525094449455810600675776323653828169972124235149996976986765938426215889535633166475153405465535631315331281628941153095685392525931545231319517782750555039660971358749702463684966976946860400500943471883814906728404868766420447563217951567416493692269156908486032462338252689664802650840495925441418485647588555016398174908758306178808067842816906041322672646954612709756494523799141391170801292232777624588852757578331682831634553831047084646410695744261740081401202234207285904683155362475431213549184133190779186097750805006802396562409767361347985666670869564464281167250225527878820351211804979963255431197825120139386488140818691890091115221317205415608480658177429901272081794990669544266465527824272123064407648072351616631217695642385885551255109162431971175961454434060402996258736241426575568180557913224102853560250343484436747874003563007997428796069218865273014433654988259957218198193494786471174296467384517679710119939016227432067222734332749804569477637003175368757927488070865554892056746892389190140737892224450727172653206731037976203610647053406015081718965270139638371557518814636550907670934117640433966837248725684353523216420635548148973490591575089333388952835979398331749416593218957553362480795962551970387578802419345746905308591032159032433388429278443895377976131896730341907065949426795909416417208622315677905975935932063103355904994985665021920738807924854349193888037833799597856149519588732484800880479066937895277557284895394142125055566268328860311210970400513865426916687231935622961713191103692498711276653095134847065059028684364619235699477629208638847745134832964234433394763154641292526800858898068195695594164648029375385234427833564630938632339723423352499196189376432586866895984755597443629568243619454679770364658200480482670231752053092884770271042382296831175478057885977256679061427630343690128995416660477496437399913249316152866981665228504761062062060132483706765564795517258204573251786223713598013858134341480886703727981900111204224848992263422058594486852908536854069034684034536974437258682865796346501559157841062994971667511264566493350196713201018302747178089971715745814619479231064053923368618842438615653759845825507926673369027657364895552115346806912190936227007874849385985303531165234958181849280577467896647249999912284783897322127506038088347756609792806292808304374132352068912939687985953427986585708914092279320061695637533698768225696817696161521178357174497842927303889951405260867998986988191483385195793987216637648321359793250732277880808297268114663739813721225279451982848796475331517639547827036482810662633012738164535208215009783853417118453966905230541900088570491738194539367544598589046076374430360436266142294637102578470436217412841364306273028417271420849844678804725422816778231459471006352419430558557111825331855625384432633029861218718448758676670940485879735952217579427411613211088092365958179939119421587408622979970546116947381841610228305710260423069271189724026673544634178112341640789387563190233096649862159482835230852749509735346359217013437809588791518163022958468502637973714579123291780324432696785130012390193026582240846946409982029874420458263415317583763412173975810236223472046471265507896439032760917384205656736783677425092192319148109807259406951720592447411236088862905702495181696904214589311966022062815969909504734536625723730843142040054175845619171688117572182980807447801711873372417255339384471044242651313351369748244028880473724847703872861095653821415177547923619857168570858474204807925779490588645211703964203860312606747385171550227927432230434051743712686923625489499043463574677039037843934119662093239106339791187337166653812463941969606580187958449727253841367169577673547403365437895151152369453794983383982848230380149828256645586058710971022253051272840250774930374049410736495868632606944113233555046275102676465067311200816008731872692442146810761853792102879081412106112387519338005465621571053204169157906331271271672388839196652213366823986832858828331468361090119702644478527839630010692975316653698911376892686645608535190171762004802250138757611743568305231932901244352193660816138487391077546322974668926015950060572222051166668264349571168188669184834680224099549151788598206595592071290751565024586574118086511245274127149725405898352957019574041710043963233851722012184492187851287917229625366469523982590318584989176147403304111631655248419156792008982805894940353076850158226350577610788724634079828558021582604775694655206826021258401287866279627044458989934433364419595349721126077065253000387954044622515082571392384909359780925052803360999293764324567172804705357739675525935145840881265031247675061183952251603246106926923633788639188164475322537181044717837972640075301303548601678396960810271080137259936057133810868620472311488264523574792626992591063500876088706576096935167238120227864975529118944625165362519729391623072576891104203507304133750660241410347550283156367533560061303186079841956179699531188348029785450619120991191309525949773706243302961512577152136870150986133786418683111688081966217339992151264737759552115485695603170567564416240989792957861242809670110359485769669082486183018409506932243311634109414517825604751568506724012874290794133962121849091865514784512056591831031396149908462695740345925409058802451043854942526191256189455985957783988413963892506154328237133562053910715538180795917266189565927161339073623201635750245794830171390903528609164384851931424708461941791252252908918424749708977352923674787322643408357728205781917319696664640206728765352201711039465226092947298432907395886898105735931743091533698894034781810890144261108313901723211748337408607140785530964288727660890905513680564816780598769599911637832697560826626209480513985580841104342990058906824018264714805834548358116362121788922113690493522494558216746895624958165682002746127324280366204136423550227284168089952541949906862771112984492242409457364486201697225143491549110319215371645797810164434450658967488310901898364463768260208226509767354554428662154905842169594353387920862315840525585031302913154179168611966247904880558987935637933664992534020618839703529349118463683600063577375689544377169292287720504465448813610470348680147069226194152218364566615397840888791043472613995183812513833468098684369177407376334902865673458433069810160767426504412503612062128152206699482886598194063726271416248375021001930255148097161329596175818926473332042570283596346221105293223956308215790412878384002187214061176301058242035163226296161696505715991030133578350804497762363367503181546198790360987766270895883377387926600930705691797907058080366647565240579391816886846593477289072485871005751521361189956687843233203861011644661724691817875630100996578018207131358526942670811328350033397152088431757448897325670315594631805142037706391025158543023884399532199760782653146792750641774820209309498527805866201672747695116898931853316742369516936431830205112884466488451016036355212809526471306140113432337973852868317359428453905791282552436504628430338482407632985686988917231757611818155741456084403919845571507779129160829369334789330945193140627961219257629015849420193121618570095025569846702902826922834109640748109724705930900240712985711656550306323714050231406464392481211481488970524457799152395827520408140976860228296154296391810628845472069430124632395070130619977107129960345522140883389337020164054009288879150660022401589304338524335810320714711910836356420528634568350754378886296287675537745367711999279842136189565881675590369435844177313771417485311768412559821974460943232382277765411712890423253374732393747015937840089480356232497868983384581579468163042718496513774842138500961715191290437244960198293784945499210684696626492531813168935052392563161755385631632531683926281431316999035017910713835356565531627187944889313485033115973096860441688626016245986104802398428729598314928543893462826311178790490239397332061829448600800760567973931539216524314742133174769588159788565967576267621644689827767400142242138323449073550080728753858478847744427171569472857968710697854289593712191485732828670448966524941553812465344340337996316597921926440816347858980296324395426435049083944561650525968572163271679606403848680668573112689615513179861581591081654758977570029099131548217867090851450031191563302004049596370702348122217228191870070801471200663843112210155760777467305910689018246884012767410429048220315881242995938838191873982219809965581107806106896887751249788015297200705160126220059110330075728897193187330822380612803790576251488666982622162968078453688469075705815749850911104282125212792629153523262446758345672405713026425246825451525647295431764106628190439976516196817593542970898630084255291746020688894638621947763224499377296573252089927991694917797827284405785539181360170897106147810770825246399030268059082957678609988649994586708665710795745420011378819371108615000453094670173650402617566941142624018971009288512483491109556653451959405298597544485970772729783806197205013498516513378525774670841461815573841417470944046719291780517199227511554198128295534590040207447953296425940344141260567615344634681102925672486251799526194088558800289973324382967985884097471736839097909731152570560757341243258306368689807799147374798753251709942067104002078459687353310490298352586047425504155750202508191368952327100779408400893743185130006595550181753090379450661423351800110363187986189914463896940771776321655508773554600376347548225711546760139178944366169827019157708526631133288299612144422442818566247183977842007250377036147707232771625601061255301589649698261017136359768518515493691346187308170540316857345178498704997554120041899955106699698483606919432158679200342116149135879538695330209566894684678276301666294679210032203620239058437408555151712000136598255497386665872808897814575422155331470669449686560015321563980359221870214462816530876312302935633237117577322214597021220945654344859249648451419161538863710560503791462833803703009484549868764813033343492278232642992813097313751386359759848581667991010646296378919429967418654327471996310485037228795527270844646490474034482751547964730715903145080554869763396183175915346539043340880131979957280895345671497932208890814271340478715728605661269223831481755071057657180824691865362791789424212204464013139181300678958237258773006173227036349832101558974682696448511312431770882434892495629365406771809774266988213770287987181319393978865288826981320267285382429930697752211210191792647371569430773969699681539625220821951555591940996090637438507853525852368322352442399319860228084641937195720019630462868487811913402537307343674680566787567811360582447821932160966205248855083022521029932138158777571520233442250278066868025744672175118602647886498179148922229632186331924252990566998005104788003522142452748833792179762011306053086276037903162059622569336343575766825108992229071631750859923573887155599075059604230002551977991863214499643417640749919394458544675856434213484595530108834973661172798238623157687069673347618911398589321225479365419603555844300583894554145212641646353975979588908150612305716598559924122973481987736293178696155803891304364767049753792808838816694139265810371183127795086930777605230131965646278767965517269129042972902718908946578186677852726464460424491439515407773087173703125403835200059378136813581105075362812533066799693541820875384917494624538748921059363558634428961056102445332216491096762323149308222966448393354045628826388889957467955942792325724389642829739311917656811509124433790930629116244686256784359725006726993506213925269788719530358342099939435540516957026596076210944729359475152470357969885036380855279737589260769495281980029211279814154363800506223532985281763919282865877925703182147644890175237277719198232150932696672081604360681278647233436985663116683489657141808131321000345386003119762520535818761247588383194693222366080422040364700296207203945407843104380339062526120638556479421618273409843330466110459698491976013668535034165066534600571499509693872357499719932611444617829965008463491091280201419327908736300630502808487453381695782015638031967204257261962587424130082610737707903370444923869170261237559382680655144219323821219555381637131077755891387984859648768930118071974968371721230321255922603026359145574586048919681032076166824084244461763647776189035607324083564349329431650157376490143122534118607352689520218921428771653902617508591508937857728710551460200709357234127510227240454751923194447875547871073978079009585585306698204506312144423385166236696227004705126561118996873800260001619133941133435689098053068369210449747701642725652469357779733743186595580744016889173449457277094455941624690859640867480105585945482292771199464551828292894453474400884772973100062752354656395717009858791700187562245113273316784411894820682528416448514521341253691372053818703544656372737869469242621198492172291746424869677868997467240723454377138439402816010387272756479468815497210304061330311412070507696990598699033199208104666877061430970528736027310821576954508467013288346148642872758078750145009714774956331597428005493314061520003173162950694682028240128108643572129575090498989796289611160236779398738358834291903917926527458580275605342180606794574768631174173967371827098057028549918136550228529425525078007130781636041472253782514178363328747295030828944124138963527890153303740091376117444934083917395471325255469621747633943030328067641645114254374286409052426866706337947913837343846717868737665084191682036555185419214666547148129551659134715650461410067317065073240989376915310591108855261996129849194033928973718624187883040071511925522505299435628600384343144728427661694178078235101345920902299661446210769038211070818166383993376469457701122570214622673355441280096359248488274935825906208197195394185549330759151895306893427084333344425312425467403801703999571268770185522496908243537765687837484863633920531379085374241748187863098154185156104468684952784201968275149362068363064746011308365423636969830493465715769692995445830218108866715545551871400395714533985279539308830958479292182638074997699167214650687530680339689424721495729894391871336233405939018698901602784090674647527446056408035841293841584052860861937805976931636494446121218094493472116460522484582460278318608094424340619626144194635866938176879084677711506846288769341560640531392378691592004223163236139837318030784793893565428084737859659819575263435250404470877723027573241516714733761239330161120196751749317468616079069981303206693628140477386068308665098056479791655294346848360487143536854760854848422649938140602715723795031115010207122846403276171762336894085821138552687453772441581654435862759335186227581077475750430461407154937080282291218543971045320757494924698152979754509224277483471534773054798011160706622349561512071757758657977718748385576765873551393384470382319937922425933739548094462582148346879545854343272158200147156252187276532038444521125694417742430348668008857543022792533014994692599272765328586307142182259318155398258630248450811781776870232340140422810073824052815884777604309889611838699515617449525478556722036342081554924415256392125086423029114183810244474926243481410609257013902419961377190479522172027239802420042120612082509721265757657826921294278225815348246490153681791849877892822485901821005964504524972731762565022655914897093294131886420475688580288871637547230104408310759380938898482079370716159419021151347913629137757056256154537232991874890709762935958928971251137797121451475305353830216501877950447516519419752468955669042368320450121854779076444732569667530893919689047556283637758953085266123626348478626217430772973708901184089358983024344986092712868644135182797564189012166140931486097331840938809719080455553369479624626485456550130544341999432074153781700868227040765821157332330987175471118390419249678069977402044518203212655722281000837259119609044075882478359846200218116240392939102105176074316126202776874248451188119883200466765658700900352889129238807451229260971804607688125642955765268525290904370607452468922887719697270637204906356254669229851796773757560948094551809362836353794088461408424138439993529783581119254148429893664928410712030595165408282828252047585771622057377420289890171708236753395940217614447008335469307867463317471967205849029393246052199604714391406368582912652911501950966245154799568355168655328159572113253942917204133535602166840857674831356972999792946461558286287085666508275785937850780294424637539545409657726647495779021000572049089349947472574488661784295351830680297728607444269665361331152981069087291916924288825388981242104379523104097657222815452099782392725955685176509842440413216323656894633517170349401242409302362546534402338615954486950796345242173824966177434268646695510563759853708862649565018756148472828135531318851518976138869402552864839473735495853044632242295151510761802667981660273992724833492727002737871982529213238073391570265954283743159240141063095449163942228390525336052612689182494356959906497212475242020278305307786064113642228316528533563670014562381010854904181021002429495073540561228385443772646843145346300540571095462821568428214150446447132366863810422962942608458353506961676443853783906132596850795341219547640376268850561197619160875971753538114348847155345783105143986771078393231662553506150134062124191474078059517997752331611479689325430519477221291774563846712014039835397179063060763856300545305555215693967724107050165068746542411155534806866178634672026633366544702095738852585289387549312949079367008454691587902567062416481159441076335609723929509987841647858364322890151692604071598090068031611253828343378367669325026976721676687502505054825072067382040879751398645292696257718885055265892338690616085510669806798795284798096253233081245428527650253228354712868582477387714756661482733718832834499092253159311193185296563598618207697554486907804175482067708714420436775435609475679449341670239848928431476270035438856128878998865429492911557786973012530424370677573927306073811137488780829249112642413986086346381896626468173909086240623338125003149330296962934169668772299918490616154320987866681892295751232826672639201038959045911275704538266845932713069881651747216435194044154718664871495882269724413481335194143924495154738683279613223424052113683533612895134756182659572967488041280625689816394227569604324105270078089869867315743966666870756419166904268020155551596702847466200866421967308179626860139394024332509167039238497758190486619352811176289101327106053581147783456753159091282709488619295241712487180045660920089478914118452327231809360266945538768684293566963023335300671772081507559171594290888779220616671563495024412117152315231854312642508075131864480329175504695776512443669437281439437377332608808690397806258200648348203243636127421882270768154201019634182247853761843315354279138403828153162323644261432786043371469535740846698084972822088870303398865750267602861517728068769986165039888124061057771437691771679636031365202097728373873900317333478240560667131293941910890604479375255315474975314624085308204016762366195190947139130860116088590265338018009973079711470132179617767197164195623792619972801680562168071851054896155229386860522474081466243778171418415973018394772431323431347130762934532345289649631748547882333845074635349870652133240615379920846533611372805389162289702622148353517095041212442380309855184174584619242544140865234138097039695168588966702111395323089443794460743153447030749578790615754314769374980113183229860091518164463407883074984639012244641261409374374989897327953229914693893785892284822889792644004919138495596843101931920081646908576983378766422358248427674061191800068759792183746611081097836933526535765860764128797470800833877262047032104323879014478252856700683837753074718281538896111932692208113748743830722688064212711246468527155149431635929565258415989901619148691271894573647253400515694946544001570570358977991005040525743345879512223037982396025643330559502655239979609559324066419021096724873141048865476118564840835506224801528069240050964334589002036275252022390942866968788177277137390529952080964561551119059527092440705737240336442600783928820873958210186744017579667060386500706535622215589232211322213139175134979720680001083658170498417129509239107855581842761056814815483356180550770684811579873990920842266250092992190268315420473919856161442395008541832164488891939554080420533341973701390161230369656589089175981330204754859894662972946781884389160622650673378425637346756270824981479697183157301986746892290688434263106288545761741462109573548313763229785223860340810448815263238477668980883285642603662559447919433413247202227388516803686869182434039559131916746257746676180441088024474749067135472108815896627272624095533076406649823502609936337430517724270053268259081106894886492628322506699342971521275062464035901953685949331745815808309303644779135252707624917270451291728181052293356128972208300518093835531488018923040848817864346175373505468336696648103380815969638536384811166804118117277372453209692673636306294500021633692220327850567000118536388937117118799260622020823564997418368788321532689514850692981663857668642785200405620411973366492952149692050152794896206430044802822341555438895310685023111332609457917861268471364746647786243162279165014848940343513570736871209232726526563039908506709127387910348596493071455398559375064064788037426492599555053386012110059744673564774222856400711675626073501740589890601299144538420754746887513564213187532426403212882730233569826457810549637048412501607781128966938734191818036237507780492025973268381372715264473092755178832726514728363684119753307233313520536243059361792905113181983868272708920674720276725152090988686166843240809896759001171074419954361310585105133278765058393644018803745915641329073348093004586904052006043628776569599086565650606623016690131217794358266328204493332640745062851437010872526761664416725382911523017277191963116643906729129162068394082802683432589811654278467057049834448623169115063480962874674830746837684040692163697221685599594538619326042537811634689353599449006834006391020614839671158088705114969456114027161376524192140639883550797220409621862154171015996042808926774353554602209215339572092097708076943839687810353117107651290220440975920548900316293480047703105133901203421375350626525130377387315671307193560832303503461427244904493680487949567033245744775378903881245014354449734605016809106459164324568554599789097021045843089497636926648133134097018170553326429845773508036950753486767093392909097320346371113944254043584326616132611460612424087237611385812723721910767054170876508098709948914365764262858646473364783830850680738344249783357027874513869535329393174172089844466929644884142905980380331814088829053815372081172305495525995001280441521022048933935180226799101983159621622796045446046313349562877270978904500201830488163888228818968970558216040058115973164414060403279158800939112283901836265968449844537244075180773980629272492486770171220372294849595295195687689436638577146800826172529717100641828563114832649663324080975085037577548771643609714877899452712873179064235115582683089919615343874826405570093439801931327054692987862418807458824381251072891386976736004596440000290609753562092676250479761780520487203090411634301768446789847182346036511879780302332138043076959514980880329965265503393552728297529984853069484703209209557185552467967584920038220627429923208935194372131675606223029129115155714233290786990274858965431218832598326032977316120331220999357598686045865730147219482046142610224136228316148373489552558493693050667175624507634137378801594601363647095139800612519712771683205003176641872711378361893294755554218699012695767830205633463491508629069722258688926226339158660791670977472443085164045754496895915589779224772076422241932436999541914450432193252370449541161204346315200619426119769954839483365354369864189972687138927528824518277030082393964436804767859894774727023569321797468310538009523904418189845026212933393309727414704360544930034708573938438771244591648020721832909985089606954513179122702304952737823835644979334568537167312767719587718927184989735136593605790989064653495802836752823739162097328734757139044810494199367933367633040988180043870215907366727546173663706685321452511596489089310349856628111784952341925216971256278856498728688062737012498370007905878717571268503296922573497251211796773451443494286788789056974474540593583616779761341198531281771588441461347536918184521722257061718391379073783628152344057028309971910858254129997057994728964055404481750623200785184247914059336185964694475351101352808747408103737376790255390818715245296195620503995328759327869917862497973853436230592826342288081591558542785667824231060352353099419197627960512192205399901949986890021245572523098207176176817822723094861687016045045629636974485080443541984683254324974358914349603841705145064197194301352806189807154191549861895388964280420194474347002606076971431181030193848097947554024789691194874576197971685458247512244627998110272511696454657814088244698767299892151171589315275785978840684706373531443587287559766969967988007017445411427852280305038834084807276501250877703529419473407806895961956133272882780418569221169138324965622359375854975195343776645910513236865092112131306583607627033872463761083174909536187942779960837887207707218532553591842129390407766734903283249409617430693515334939568435613283002989569637494624315295330556793451209732358260670564309829182166153469438831070931379502202745873838881200714765725047915070937774727280962344412863541284095047598311982510623886501701366939080372756048958518235312418223953606221306077334189223623546646811372518170014456773915188186215781584025808281163861943090869076629993412535376854530340492179824490566334353544075087689331017875665944578170477535603809457912967632315276331890462497351853970292917461828877042852556406338058293771841155916049081951198150050832745630260626022367087176421810005808906658102980378596416635755377994488557544544929467561557872676782304504167980682371626132298297917984122160500496213012794398157211786257916162176509495495909626877453641257526114677132045064211359317307804812626719535131507998401132292584651627423187616075050462830018303155129968302180150354072004925602797499050531777881749073947776617289363581996724196633479121169671338289102952046237428592023973290422744635008064830566636818215861829622680067542823579361720544441950068738007181160790917776996347673979232819437200064090643302513416768052724046994745537183244328985565342964428769682103025955049105105116477347199764442529317415030584350204288757227513460562240898876196527530031908591651666506533735861996170141114094258939694107427231563692600893787625602287021578238795810619499984372642667881576523557557568039418356157506640599692144349031479377721608527815298093212200516618983759453194941579235779936216023673068800118244173762997768006627058530032054371249919461526801404884906329560566862375525350243812097890877203325111874714881876745165700543502625117280089418488211850949343892532897099459315644719138567757489145846843440075621138149466819835625076498323279764418600863344380930891076328148778498290192218311286622327640005415085538524738966103110417550447368819808087759741838339069609082399607871343936942939007463986253639486416791833795813992497462561100747887186119346672531128503651233549706320426443683844056892391046451525495787421263058483109012374997448574673634613464572887721808201354972167182142074312172226545297650846634600833961515335141434282339703730516269909573409947167764900691224759599753591617977401667519177446976579568583670263150146334652350236115679586522799535432482051994214071577655604016537759289850411665099628782929111332031343747908058017860414728279504421186786761971154407062665162527897206640220429076532030580208545629951926871771362899340645162267248764641925932163450699914576714030535131986465988941818236143281349602135565611123836597758615233847697206225097692851078310245859937678734544961197845267934143940418449125999871089381932759069524914843360737198443325456904544862140837228941396347878109191442552841945304439380751461238632271204577040598883461190831502801448432537554326760823371914012622962323078646990531769576880022754488382416944287094056310149889732181688940292437050498898924146434630455155105563922125800746083446294425925133519702598091151927382294690467750097904234854989526749106884854551819672926030582096052775132664272173784262015930287283932688034588034028222071154639523025976778628959298254002134954553161572106262281043252024366997061160155790422434876946150813205352995733067407616448289939378804139445136280449036764293604774809266031761578936447548061151526920717667930935744158433309747564996652360389771470671351150111853329433876761435351695287000136920246480940800550779117707660013256769328666924554596409217235529260729961229344721895061443754752519878998963888031318058285847826795251445732498255779877749900894655254175222513151498265333207690389555489414783933428998526375541909962680992244390432537838465525217342808021594445815302214698632739647735809986948414308461773031140894036109267438544182372206735344071291873886662266239877879332337012448720262684928827564981445240356707644138257863525763532850520961386348210042572560664418506990852736343522180221345261083825608680199330821297180302115290292253790082340509737957404170569421948826587859344923982849956583041741541401273970342111125405453574203267573534720936959029402418085281727767742024766933565813764602319109570385933562636909667447948961080952742058063347954904988784140804020211140077931311548133599626681316913281502196075748342037997707865169803656622528908514544780339200484836959960590055605814488606486953313572688049108073586294252236407132410543552361331245498513295044673696641412019176424883401586918036835732343998521640520698680479251896038748428088743926308960728677707385910739427542784526228421920360965286035337571888867771997685641039834881394405985252737315712627963874927325146216352438520443557428564061148738552873340257871769687027242449073787997350731336418125868000189139628604433544142915500796428770781906527046888053645361440407581560226081881504842184731444617917921019418425144199809186198823729164621712180773276647533142230383915543098380162267018777937194485447033533351839012588030763495293976885141308672513969745183537974762302795157080694790043406720615560454657911405721095136027847122032388912420533838234354042529964761677582309247882271186681628775287719051532889658631526848587930077389049732272315617162375030609813857824581667355981204628405983001032080335633358908924267000432105012401519660107007920858024234020124033077167428113104106848549109757604456215224158515152835705258351963209605548022079566362551751514618931486678643017885376641137934392249880526615420495073887799975650982297055640688591705126057271810035609915947886081269176742006512134876140780755575624838703769727059213551596639742867342045233868194263692378677958440256181980121896816773473784338577955664346749864153336976678301409301616056714521417307985980081930785606492279693058549836137415771533177323901236372000014473785012520360752154289174081283296338380781722210317435216066427444308088180968911928827954470223595851105337754014219770095608540878274341080969112697963821198114817586684279949794571564242536630319258606016746904666772964907946832271216117289339549119318660351225697976674031336513134185813307537444792836807388562563335606409343450083201200334960526771942177479563322994822931224075741497204126617629361176949757020993021499732415460587174462474380043597004751873581328982051345213290988615288185124809430617864119778534483637269435270007416607145888733834285428558179310013527735946780563151507214498175809416212725807840833208667499350134591504615269908067424123901973333069526715733823541546541521449453073783781186381637319130576435591125565623025234258306194837651837190876603355440209102570816717775392552431631814948998862661518033211103318899369702634917123253479086304826836370329782295597395301462118668720171077305645594275391609795804871869150567047831722975518856330339344213519710079968708682127133102265507340603082735036986875089378557781755934225577947232842378206850991163625611291115234608988830237749546477641749111074080610827857325839316451092335980937250665050002399288151536995228411243393449258586332145642779525781835510852679892221136869944079158850467869136118096770838135626334628629043359191051889085775430216142692376939016668639326211506579603078699899501057313105054900782713138373827104717357890558157854970718745543216950040964154436841470662223173508634656894489065579335043152072618654394360207622809702172308276826394870978310451889099416732506097383000700800972402225042193553980822470911789806600117342909297364265979818727443204230187498764652032838418517721090160935649004916035142970538451046555822861799480041038970556161365342462111301870439405216468539481293950073434837561105222360997021981398528665290059556702640489820192993392335593479446559975215773297684341507374368583051691386110655308154947215714918782102311998872614968055828419098877567577965307078489167571459242404259643743695489275640448472990793353630850678093295279051720545267514353970877585966701423003886340333264858676865452830255096795748459901366935095690024419838705891288259199466950621553509762968062198409999787874548796807948293272222566024337409631596929705165538749527911907444304672870869552222389684155886510754597291660738808983767605927904974918334768942124678324787231082387392312051771154821681635890933484636502164898878000113642252346440911545179692681987202408102537585062465483792675526893838664500280030316313925684880402402748599089186240371773632176020897448924742303706974800492925188011534260799486575275943076804951668536460777471116241891392712944232055560166308852689885374852004928292820189461292709267389867080498772891078537189857941383090515869896566555995607011304393971750383848798831326889606934015689151524428141348229192853855675099422683417578054295100867626676225084164074947019447441257684384196456698916819515936253201199133032101242467873286268536300854722744046665257324536312850752916876346259097724392091434602611228134231845246726748773025081655421798787530206228826927394229407811228375853122237820152458870298633906052077871509266862221376944889857588075633510395227427967405659058311218436553182336706261817570817948719665784735425345045729160975679019096477558308974052287952570277789031149651088122568927870646738538904909882399444418198358557135884693157789854592701159851483860763084119025568788927650182767036448468096356595088567309252960767266441762989469038011709543213171439994590528355234034109727060888293372336437093499637977578805879139013673293482048758522929741580505231576296590341740279992721639151694131797038143300295932588080551114385601544079168056873889007079446176666197081685989607455773180588246704301906330697262213672667747739593949990775199628552502962078930792432215037769600144903620577499380965672349990529000628674786397368490869357709742203894949441826442277723622633603969409348746658614103739124598054984303862233867608573680824447176616269216902005162191046802174644950558119138694077015510379798473070771776014430553510010570576527079470515325767822766579277857011320706213288126114724182379111471842276299594712125279609733915581754979195439435034480755805910595082524613397743566203763925979441492362085645926934721126418760910148718968695060559684681667758001762048899196385638478382732813899320578338131181046561192103633011062870757212690452830593627926920942132453458356145612972030978678645960417285179890956691541343227315253927173966095549294941884672420492871850555144264463305855304674864923179297764624678822751605147316786971239312992497625853146792362417441730607149178319011430006819570549566443054613107617153517447503728906118746800695747906431214180833115322846019430372134460566424048588817748210636221622143507469748971688654266687831491109644403735980745273860563389863970570760734353632023723146687810938717372896103273376887383570749961594434960789344673278443809640304951307632261661399979307988144395996295753247407399698841043737713590169282636080412413999905896951398510767773377887784349607365002918418254768094291977712725445753583670182548327041581708094635954340665509692343109699098276105079570511730158977727334030274041541624310258037632865108997341231969763035170803897081580430353475159478347659606147386782616827825591681305049683358092836440520017378309254264135767089528604568372523720761915874498747678686712372634795854222876062809972975842088855026712827385540020621937030744561786299166017770134439316939605066183414845265695357116842194149159235957881305161384071659060395753100616839370310459756449405043597682299770585211185643095011004067886344036486890965027433875162864739090096920166000058343328746370141959273190872570541182156250126099128823392452456131115654239440886787868252144411892926107085996625970807938851447333456074287445467937971528640271371712912239558459378302962578354489262712825632968078744166673166047578926121340809077139695633645775357945582180260832829879508820432470832746096845473379600158602238778074397927759470802749483646755426439105467513304852337193777282793773555058168457060331622084181241276853597374381092100644287658179351040095886655509589520517460586095170381859656666233495839826927669710570302436582065631670937750635334997775241146944906586579323208276339700237624105716979516377302853049913856974598338582822384403357459591871575374463641814668392779556082334421023049390455391608706219290009531412678487744622232522896955602767788184071914164388088320528980567340768907678483580890498001017759744553050765841576859738945762375961552726923554718635819940840378612109978098416206736022851254580825782736940205274437620906011200382210492106709383856229658771521983916006686740674588448031744441050303438311982164596617561761538695210603728030829640333483685235160455062373163545214922101517438943400325593202196905006461747544350584559506816437096845664448111386855559230557856969410190468654133775473409798928423718553232291183898468773009707912014952629786936720027433885342444004364537442886692511144449550321502263069173788351740954203794134311381322158554560116295214734296759345049455104853164200573931511329598970166857346992399262977618189003100028934528724286025548023315791683416139531522020456767493184416300819931771437506478237348057276622650968196231940198284067286095191749350317862273043857012092727579476618028942730189916694285784500482740720086199040924415733378955912674861722334114366268227045105655962367834484028474698782788205563338125275804755802943628799218710520443781772946569522921229558607771037572610988663395258045100160434690085488491820603993877618590395693297082450458702926444915746996716940658331908083809818763980224135529332676288970409974538516162984024572443384512882714059239523605625961827064926442492654915249686819851736317095758955597921054860947088478536123441870202889729765340497362384503360585225226513450650682734501976280086012747001810459901031691327470869441039799231087667574036550363837509912778405364115066361332439773188718269007562885174678122729997753002786838947136806946287875662956955552620607137557896919055934754549925701338921830177676595398492670801631984905126816876838854035638351359985206235612422498550902339849291845667695095920239845655265114870259914466747360295556404268656054333367879974411830224922576032467853317323200600555095991567195123198387947907329004484673110448104206177436993801854187870766638167643815955279466721293870078774268700796893560910471505436790112510062441899759814363319612208531764271686195866729330554643631152680700159109726751467514967213907525720198527774891113940272662201759880097009253256445715585727814199777940977048668852099261353350785128736146306688974550999027909064115605423013311354955146119323506159213310075639167378026316535265026586068335740287992364494869368924881238865715211130432988622781109557586155873074239938906187147479243493047044221204399730685894543863660177386692974191358415032362901051446423981956606750730666245624550248033419678314991729137240774519527983770184230429445211736796215797082450055469208870515973366552641338224655686899434428989194955373847069608895849684385540057929635083026460533292530537655104484269682569765209132752619077004972614602294902721403583233569156169399911896097840267944020250351829643847012035739954177950262597792765340106691281723071351550809362935755001099110998507011331183865039514363520274185585243728939732263071560695741786120285717244269513934079501104684212576512307141881951714263954104760099547322025285094690772997972251259132251337315801189842625598062836007778191601657723826361985091399084392375019623312020127912630243678942690164879234717448859902851099330547000503862237605554134149423579215988842427958287852041582691880756755640033712458750323193039444929081205794118418066273905821656017654467037614092787601183512216801167485347217282347960199624584019297329060610026217957868207464579005681799560690218864669861208063852801469887016477903320488309718542373339819539035921532850262034612915985939106090745363272903132276606773816874033032911948257748303713281030298266685121912069441731413712978783233356551657427557437602843155050362738618009726426753468530790590449292865927697507781784193162159931114181418376297784730243501686850511224133550449517164182987997538672037329970690643035566670634876986280348256582524648022572275065141153836380662778569033271957082392684358966165374173521341220645277754133846856458896984532019545151551893231871729218020133387497239647097900414218464750789106813619648055450600688203932800950294090266486323173240394904552273883641970685934365668260743615182853189042693749526776930276279131127763697164976320112566390656905377891668795414945042369639355101498674433066769674761634360158637367000261834438086725637216843675668858658105391447260048404000306666348599924211438488615397090600595431551107815899712577492079242138259053645587929425084133641041589117988219073948377359913391532570412250014386933687502766583491644521326512818426247970442593729505145618957331320293078434054346788585085766724381449178616349237617525189484924020899371127675444895978178882179395701083435188479681465529847347908834608996214174628767805828062744476576920869582133046516662087457083879299493320209596465883660504943081321761384488849299445493483779967403047784116562552805857627698290771885997078392391322287557673131556069190458506006681684351039206153282017790559791371214487328531012081890121760784559447719392391711394549445521922337161056336090712594031684159136310747981298515975705441867328015467854922920629761428560976992592665158485061789992005460830821072978604161258490042905691855654854648444114657382761530407683397150984810919578935514421902392069351355432457814109562859356186873525144856195131685486258418153830160229894187027973840180518457843609896151667808480221170998998873200761094848036526250874735435330300389524006547934291677728706244264454561699595720251446855876985657204096472217030081635640480045189792850584459453848668067553096388064492734563119746134987071961131913499003859661736993758103048329843460066361130536166383246663615332218000416930104556017478394489620908680371689252663114961552826837154396685485684702078349050313526764572986451018287007253121098295224789310194617696322067837733948503041193928659509863956994055669899627376661008619306046409623986484852060675055945967333764369902735972138898284527128532061619871271496304810436119526763721264669374937849480480350235006411796566362585502612711438561783645452666262212477372722117901226026372297538908805428071590591967498157135932996571518597995920836654079594464373966712002656046080987316460639702053137149885863109720148160496595826836163988307490353462907277868677379839378183848611589712110399209903626255258724413619644204808808275459858583528894720776196620208384352418672194715606915393313987494223453442435726778427057917096771009736829438202873498050221451000565094512760075063772870075897620662054436379415605017873133087890341287111778415926000017232460850410274524595167311123387001039102282502434561733354782869902605086776552114182837041823982566466176436213127734382707045889191322678986044711459021679770331093663379415258479038404581272663496851229503829193452489020180282707641122375160169271005688715730464758873595430890626073729308611669773920548640276538731345821272423975702103103892935913901502975380190537663890971204383564828497282845495079649935519974247832017644742006179638777691057529813178143405272524026708860785679145621695266772902325820659432966291745134262025164868825359099099094685939604322275749897084478722965039486176422522928316784375531590120870863301371014966726668574445557317429608060309240575808016513602722117073631398983907972711515469195958296430685201189990478496376815492228490964842042892752412169904553806301133152985945260474259089070641172217542708668950190465188791303426478742331579445625278905258201439215864747243146896297012387059004872508877036620097627027857658559589601925130255323638834599459489166370711161194112277137135118240617034191868548188107831245021369028500838876442682713890136262319185356208197281397303581971803434483052263810168275360451073829088065804902112760918462447189734740824497316376387575305669275126094899316073442079225239645550526338946704602917036919653573651092250020921402895890905555345495076386445059583432168574148118486378504539706853711338984910780455222583908418776449346945767790237242148810474599998940756165794713874408676143531788764934250967835133742793514533031768101967075968367439269541578576815280314425205653365720006688056507548461996935522891282604611606811452331461128242120525134063361763723668655474446802392654628228630480988779424301728496829879962859703323304690722744323907457593453044554088043656331104104184256764363031576437082166811237745420017158009934558342219282715761765050834896939781806970683623997795648346094635211467690966471415698782359110990008958714786531775409950562099422010301990063659185219396560789295483613759024635155051303214349801748107790625566276747341513596270313894034671771807903084003371888950525271496055334143167707170191888461093272692451056989155512543090484690066498868334489020882516549165961046729083388454050678956757204914134179690219248312056323967741457128186732413952683134422747916824057469602941635593354680048872913667251021108736254823091311608866061450135434622076205995737985604535257230218642202316924603537498939385441042302929978991544182458096775315457090638694526633145945783477862555937785396742003279478686359857590007110583246673831022310380912366037885651524488921249041882587469257261142313528894453367790151084036770219090918913444572925037733304968559692438126570165300454134749390929856396981532729059389373698153144092222219327839287733529439947213825610344033906765541546326533828433807895646266618018684727116093042670546702642521237905927181172696026292267379847750047160350077422287680104513219137139779769901307872837791849021850144565415718216652317173590468958244890806013086557851243039376582163342886325075791349337823129267984194228735453971712981052524717202733169627659865962925413085561391400066873496663834887235335733375815608299009847294225270534967317210325860983840289357657059312644357260387423821526367141831591953067472683057636257391202762860099389217967457940696629770236809590505530643617686554885636853243517977044680210012717650421140617404332705048114294729677189417660534452090599824626947101348194792031892659442109548053191634984378302693968011370449525659569889072644950986000012548199706201190741225717605471377170399952472463574073014458648532204833242263667889260458690940291155320935625219843421529340988261033349021763106999834899051905603497460184031309612257026652387363902836680739637344145564405379269537597955153192406473660092122032959304540922105981690278797174069908819227703116471863927812673642492845323239485275421527262975663856535289882133658145968545306385617444083395975670544718577906652209284664133682542162468735796027344030842974817180031477892621614917577295106745199450214169148096731150399800023597979373825822307558246043044119986707980117557719203633506202315000192035736355889871894560230431899509516149780706867196596375167390034871141879160492666707888561327536455996682099571664443898287359432808692981222186070948247608952902984240845010324808084893594367818112530409488840043931873044770962433492495631272802105511243252742732856182231840771479977867105434837955739396480567297400686215116964480795852376754574599035009896745322268251487696342529125273793854728603035689251185532894626982530968128470912558901798230797278901161452628725381283976671309886560393477935851453940934987032792746241563446146567480392785900763204888172617626841969266799342802391642962720392605011423144175329589415450665596669657736319468150385180247260763460012053534511972912687879931959496046833196447330275332595389494162641692090566357493247404745372037648593616581405514948836308353554076182566727274578881464856290620401127257154362034252768975141276196023476611686954981332945455275848039064127597183145993396322767854120906886969502959914384009489642387224255881028117839069532759703162643082881514921415779710194801757709759308627851917195175045094816236910938727245567684399751248554481006121576441610712667899115357992407058109586901834464263978388689068642334622092765020389429803493598040559083808949459997032272902517040888510007198040216144899432750603202800271704139383917564002274234723797876896847062612004818510767147213263530412613636866504372436969873279415815602815674440584259821464346419877742829979157011434372869302187558758155896420813674127589060853499797338970438765072382217426053896724795372029923714094359557997892409398981330959404229008801959468711598668171951197553705356651817874100539521134925386113986851551918319911141387237076760553790118563125061391938832778778418143218706395229392972782840359194697433608011714835179482495159717016057818883367843574574226349638062904367765586364185339525721442415743536687826267358729893845361601858771985665466523270259547196400734479157977607452919533761030434350411121533877780633643390380247033503190820566296580063806526510159201360903202264005027935779164985844256434905045373978610662051949148481780200766393397096622755096471292889486441235907266131934581170367259201404902343881824280199167970114491825960420918637549067905266204832503934373781998538389881343041404445929940075208177483679883961823789810335449804941980778337168448634491694070351705259452799322104057190911415908884162813996355287825673381075302649541847306804203738513916107773400936733189580184216695372318634059367605295157662370303248667253241216829183349256654305234650787899420407795111703869341181707928707736921367057913378991645313151905274991656629562454435485784160188072100311365156827352616888127562960659809635526331268678807852008980832213581767089753478916607275996040306521862982540344150599970528477940792545167996558024284007085502046403326181462255753542798096430911401703480888259067622312615811331120837584348288770198322878555782554568942708850216496052823740421685692449233104264084729755241074872976913474823155448681298624737745439379768015439476185534810821871529888041407225541159890684351767595418332707030736492791386234936664074677651740021558862228953713484103259088269650692558984640936473935736967499935051775911524742022282500714515944221005908961367663996420999478321754325229056618964886407959065021839513365318544130028393928591636368476663557628987268004854704775035964217944722278890121141365840636302536118728670693628686674457270704486736996719520227914179756423809187763394127747635788289406481095601358126421650276288484531702457041799764911294260727721018989286042930623516109769183648946303523745363659483050173296102470903237269684789389448496124715139736534685882027416585069883885323446959820455959421333050669800522914348012441088025541668666208110863271917855833178009882652242619424286291901965728931667814281177040807593854433964554873602761275194275551029785575158740417980302364163996870230202554122427491210657142844911693214855012718319036606431732888248510857948367250243654705109893574627935842031510393117746874830301291698838136677712623845914105423031632105422768692449091489484529397382004640191439420602755504074433300496422534394143980292585010403322067534061677330849411255974168084105975269687468105633055001279122315130894229856918862345183434982456624003489417332228234960556800807340564828680553006210048273622152474785380778785107913806602117436964297480348209825978156267777090811102563021694449163875911459789179294834715608550036219013368359668730747016124435095601177445560715148666054825152815818084246765284586079381857398456444128732088675701562393144026960364774501564718850841575184667079327215683532106577616962577212116901355581708411331593327862599697916883858031889869966201671553082017550329508742862804073942446858180345095277905417698178798808509624465255736871672278451456086936770996054130556474360308751059453717532242040135332113629283855991122043163257510061858122929250274559012343566623429785669015525585043510719791001431994350159761705395741164609857719105828934647756297672827624857288740193751267350045383066829203703661929595570726224703572515279765583377881684608848396558214295320943014237304274302905440109248263774579642247834944814379914085124833288395246719389728165380994764985710485545550318830077164649568152947803765028731282805903343060313394877619725014301083188297379899364132160638325612010315400985769666869425837009596804437661777693980989742804141494697080563198609747852503857106672438466252032592415126670383116716715231807897313024956188633192786985340506980835201161262009655988030892292397593948860451004885134868306234003416856533044440953242751172228429478251002435465282680405377314682047402628390178491352673883969777932233192596138197722473051763824906865579466047924384073096710172450706327880701703220189073743586894175252305694547471512451984148018437236614356231779753756062643650325224432583477905974789342040603947052570833699607019634417314559755630093334055049761136432498175671341559381019360543488437443142040066956143528209737832912709926440510644645687743976183476469923218955551303959929144794697043247967720840379605443695219103296238755517208204026865561762445410964255822334029859997756131999565665614211667682830564076060304731048437086921693988366305111205800823110734815916690397736781625366028501211927148479916130079428196145178723033012506284122653206945842568542971421575594335944648534940285121385904394264111186105411661817552514972944625904084775044613531917429783845199882581285281025312411056322300529229084373505061557644741889473882247673849151643736733937630619519692358626831327290991011124989598372831276960317798444539130694825422816531758177930073387121114819692684728855128387611664306115509898336226572938132197614344949228147531910881586220750334788144273291625135972927630514023203005411885764507398150049716671502502471427660370439488527258208918202047074777500586780514752499941882464428339258630063257901342778349986145975553237346571173273956895107956663473558969554023439625589720102353062872437252830228246352387621603872014935569850306940246703568140192015819616231332616444558462790376892066579741079026918791335439262067408728458398559921035317092324842782977803409678358076770601983023383847941192626527856966486077802189707481220497399670711886017736931929115626241815559999136152045565251626834853492904888300974604878873618530917405598927669369488830031724761861276648555765854568241599758832368170620197059522205572685765716790551702126726752689099854371002836305075418538729029457215215712373014993423516433169352408227079675130369091475715594239878422069723936898040411502534249921256320754062910199555440159739465666752866771290332277797637896266062422938781199433919410256242492704097371360459762024043704930640821965351057055972378225857365983490147707746487901439624643478667834759174354903391943847336187582289382252568887963258343296703300990307030330404875174800693222751102467081537610286480849127102021528193969319383760702295807007398489706330607395250934534875251675879441130196721735829913245566299792049806980132426957509924212203396976251802545539128444892899982784048239483957666119752225627564250247566654613640516513164352182961792403829692564496254091905706716161444379203380393234263573164218867025642194747917966911724095629640134779198076578235407271998109563113782839528384516794262624482752441622370639876376746527285355998923001761192659265051088643629172037286249903236741515070289781716627254851868624036884284231068917696548278058931447012363813860222676594905371248786696514593521923044724736805491066522067135815769915372920772998301088596525074297094785655616964776162237960978510092991272968769841817863155456438167358039718982299956759677545779244020302104152408705173730060342094888021455057214456211456265801931716574721891930293610246010927080399069078648043838920904621070567440705880538759821299531525143896691440529721927110149170349698317259649359135151396851365744859894771467451264745476964861845601089547108289228427540237021825390618911084575575747774944547620578044016457341385427563085383982825691937326736357250458734368407431953060800077631271119036117677644986833588755074329018700473731326137828101014491363748751557111619515563627429557339618931289495972229064546661087086787743332462933879674021859008812229374014211707873623610712005751552387878244810071664332978690726473843497845056409860671616622260231702314084161749868497519464218894544376647830930440499725958862228662723697443531270821023782453452918575747010687224188240671375221128785539546041230618019901669824038964260929657604151392141133966957301918237294799648892637559962517584251007029646658236406338175182809325491578224555829914661302251539946820029037127533708806565883796025151210420802251449488067058324848231617458368793002614405646805100654595659988398556644829042623397945694507086789752341788670362840616200334944150957508928550317573850502752086739620737917887784944500574468139709943945094801220994022441630254051668524649848128859173498274667276479534752611970153175095504982305010961533277317229841343739597315965947826750404348614022939040330644455522891140874926287287492123534201101144104614339955911055297785418751370499193571324151878578558331323694372347239072753124440771022984288028426412447412368227136615061136415494871790405412927286183150826168346675635065951572250433158085066908432095160586748871932151001186474249252603462364353197122277727772281721707347681363109370757110431581904483454082857021319366069684647131308182196093000711484137195113069232433422724895298853793509556365336950277578913368411933540778394326217099924233749616120796635790227003468960510580788006669596724748701208487630074271433200682662680447422962937501236721649813833370100200971246663241687450443169539933849175960764902212955036928174013170548862339774007401118368585464679357771003819787433327283736418550823081527250125417568576352148504144254180742719974001114561119238979727271765983177996880786646355725368856064399676170046765074718797708157592445792908800119156171893581532001285296682659663939240442423722959791298552417944958520298941991125703001616399992134936924233045606876300959506681878255744876712115742969737418554741630434402536550235654407857197326579320189747846873963711345373199763823941441180531358505026502589836311856213652496423708489684835357614202766414383138272055006917790523631209105118650331400875905919213376126799214853411967905110677172543967967217744564736617377115844892749026837614231078571669462068046495275806039243509780886466733019292463579249440601454254324452136692173606952029477219918165854586666563291426561775474698934149709105039836369785540027857277401731061546492892312359400888427837278928535005647751293611253121661501745285129145359898526172086908831506724224220082903573262081068309580895435107381946530831787054216663064481649637466351549339092315816212804195640534929041327340627841545541401034342234684569934077509107099440277260559578344930074483272482107347027926140034297440300502985364266926201378104106479510350422194178505337014265411662554148581373098440166765022382502315285821888075009141291354009563400191272964530882653488550784883122457306195253720881158641839186762182656534548538893963242298544163717536020602433202808968956610720739528532829094765530443203817022913281425676060446971506640638225966844768378787111481788751734214602661125662559799805882301436122727916045276809505628941347766968563222736501109440388419332053616515710861449564677776103277226053214801134111998738870345570067892586811982036783785186610840287755983542470566451595796072801152218402588958677090050206880232711504053213106424770847899997076286745879037693912171338388152119441689389521672251005482567705082300788394644190730104693627411938799921912536466291469584029904948815588307989524030362974401693486010428113606269725725689805106492435991616342344944650552837002995465926823521643603469339907615467515999414627310419503805612371648502896632712727461563104103296474308536632372468648196478743293625820526526799858007376770538657980043980150661257526482916542285490635003605803855791038581741683498145300722998921811749422303798785483362342102270504591705307298445154762893158140027351896218218833156508036630311186377031238679680260885405740372773865999739965249376261720020974034681575783406164405492298348919084982660611836592849980867077462025775474751814144162862043839614120245622585129477009384491826302439626328481838294248536674825492623124343947483753812469223562672698301024007653406967813183910414941966880810143260071101744784411305157971014352654540497433434898946288356114663112187394573381266019230284193609595504646250651816343179539627981730959963579608738269133163188949916342843471493119224297425730052146821086765114655831782225229481916071756501666086842632604345570109532501693373101033818256420886469049053025107945467338944969213429301584516381020894297102950480838817026114466532792509934006632367219063434444830625806627358422268637519005557602999776045193239169878134313892441582002097378981583270047715739281873697242791721934070639442471809580339277134196154530894331358145760353040500114509895608703380009962345800309328423323334930341958110317098838582156329847118486789063105724485994065794073899556980992521555888022082708128036155850549612288882143666199142666062444877828751723223088375048663289341484574914879443826418232192430932420858020641486238068108334029960865880488065550926834473726306803123512901172778336821449566269209807271179060666875002785754463884269468778514196299835415058204459859185491451921808502404710537673685760611179183204470436341184587285697836102602323518411737127717973450656502791683734308443593165916061994908076513639366440263584142255490951896253378599087197345466748864726729795323898706887557948619323435283585332080295484014602598039228050428102369863608409449386601414606435014983694211060630281214541555325895859465817500642667424947652663307267073215853920148890524193271199016063132168145804986474644764034996854021121189837821605503397067085986142944395458626068947835948791795994623880231944667777933094416074121114229559582143479364147395711062706134430555622425099016756668134841380462519081096841677286933439575818531732692658471998707625900541536932357456007548815031320784778606329599830719856603588028758507610142237786413575147270268494135506967034523385741275108578158437677463469497115815272773557830699341134791214629829741385733908700222030681469823793315936834961557311940301937807065371442103406950266942287689975987810833416578825586527246416797072455948853947887617630425765138514107859622482131235890876968247172068641056097721838539585014074124421362113597737622338077944169154606520403385544776752995327191852933769313234137643057596723290243482757924434885835420453262334076276984903064954498639334025218962770126147342204220210456810367810881542361886616889260735073853686436289227215858660534436421262295458477519637771332445352887789312666648040477794958189546973183596653051352321183161954353122722118423906281869032410227744313254956142437037185275182827802790360011964836295474111626940274249898826688591813249833248808617245162757824665274670001763271909763557117451545133078795988863216543820716362304324222109877269258513875764015659795291819526679832869149078374358291704818738995285152022552665435765303821452028324453315840556279819453061055339055606078869608283915766226875308587573767095513585368769934218086516527424423291199274910128537652721973113454392428147914091458712363748853428038379975727498370990508755021114069022023355447977601182452529218411951049356312811932394157356738023559195077641106190303931220202321044231283403423281095910473482084630107129113174748798419042137277969773803473971026361955634058817918414771374720097852947445108689601005603960604642561078995995391228375977503564117419797829303317764148428095116115750839161976865621831223674590968628409560496768686520204337507124082616772992569275814974836590447029777405335008168511732144691244798265520422079973597181261382253026349682821851252627005090113548889708883393042721780694777421741361634515733086038369660193388259965067108898431961428860240633935665392687923328061737803279643682304185112435756145902992130848009564531554672881377302578866795519113624389019826236273056207295688408814480089676461603489746342254818699612630961848740495670871234079899329457535133302215889924930064887014120781214255960483452855174884095765488151498345109954575898936879654144493717667284675937029522528032239219157722859442968941591967543398372223124532932457513484791938662233979272202924488986354510497922732081863559892195494505895075875864140805044156722144802587088927939726019857781262315263572577684773842048962216244337597214590664729665213639796305038815597465183170593350239946749443608079970023045552127643796021626781960686866488495612829788238545898948110302201789357110284435825314003708825554944500647274362367682087614650378707471535186868035223753078099113246957576521125495823985837634441476784452234769168156984824120237338388868637812938833454107621593004857036279124803941294878681200397302168132012489883130788375335776306535835485963640830231106332314086673222155765355445643867261603999832018284572167273833780327366002433145416143740534586501576511463535532403129766680608560916054240717565369180142060617405997891866477877375708032496162965197448384872453130523595366092597781981849680155397238881120392913437797471877035199490949867520670397870431130514244530869342753977630763041502612864031679395638173540098747039558939149695495783107097537604803368435340687833419020869491246420963115372414219579752759252384128318590046220334886033639287366945552728740516570683105784580510267524922415037235652796922854720266177112176751306611450855709074917394202160270580692364610856799725564020095904535343981225559556398411025390610946977747268993099190669619477059906189483055321554044464059984964964081596204862696720543994619234800725321515103500826146493191969765580393753089469099867350137661071730166912685112820481771325406627900455436068863860652851559518891032903186578603713639589261381131596702858245030829691309148435252012381125336995240125384385417329711808548215483215641278182399858378532063907803424948666138240377310701924888389478671764655967209594289195865384645016251378620329338483373815688784761811100946204075159892742739169260941610058908185905391451640663420333325283986150196318303715712172034766424711995501006648979132777673266172418223282988890686232373601006079067466771669897066773785632343570712039864243919663891305377118356350913140025403340037914078574872596523854515982057922188099762526246925885087141302996928749589882808931179116354854845082080505536625276057772435101513817412719088134694710258892723280650329549337183187915666862153611424117260203236658544101530719865564625657855048951755142549709116906948736811653617528200010083128687536298924780962270192494099495362242134302050099708754058146456227835385115371088575826657338982884985811796894205223295046028337525424180984409315481505532645290804641061282417387128435012457794729165524004068907590117941839632593604887537329166260720886868779789888504370380306034836925041108194217130366369664746841434264850039212922603364193395265781967541606939721972140283376859132443271026984898190675086525893858069810857226301460312992892150586453129403044574819772977697354908406651112600332573100202596140644041662201532233155063916430521494502804603778842600329585325316464067168143920863033250999281441688403564807986037731384208571669639720172678501752589006820638546280665168448307859862297354840226054472003329053792050092461031689004249475316609186065131235332721858059056434333441092478503539738964886947268708093194784415506298011656998291946991942378041218019098937966705346128084544360709631732507564851965148263311134113257089408355782149507506626837123768092060978729705980423011295006361352651671569094720139274497762893362266186043557301752998755458062137836018596115084389108001805639807955518779330677267339326172736267190328746277592534269463851468767172543090722571840467632589370024090028942914756451836157910429354551275347562633899309414263977026929925592123426195902294789028530878414482700236237486865845912569071985809203454004929018793665899150195364498207086465365449497132420817021995262826494227985559170572368597460148850439602381667011821207116461361539519779036367616224191544175416573417462753185315875233756026682378037003416127028559705989200989188079715985042967920654685279381223111792270089333950806955340324264887137745443308214436958826636321936426126006753109315832868480446891618663002725294001033004500447478087406530193775492892490616294047338769584860915873348502793948812331098749150654584026545301219767667877636631649911188336679551577928393363414424879921288384891486177953461421277609070330459902979726281546641289524972761702341594226770286818267597645757828926357261770314140168454104857539285767986626779048629671675764659949990557076787955676225838131123231764775204611902260281985801876004848294517083544345881328790723077663105659942843010026449995741471756919285493286124965378382469494387216755756385076709144639458343146493506999356808441363104203391532569534598457590077035765754506960565931246796865504295647562482223801325012879915048685472445291071517306841292738700713473854130063262769181055702860410643196111508968447584737131845914757939512596427282274873946616234138147468783731814059385605282669979426150070336785197888425946326350291488371282643804273436851472321080344789243240896908518152000027217740939640481039604903605412307910091296871715749899037369418766378197057217332033645460904990654359774968275264047189961227508015929658262881578443056212344710520711565344458439875260095024768841450030040017291719739642136786986598719441557396128369828187936461828749351443870952666405948250553692089756539018906902512970354159493303153788197797881523955545953851739700087971021240758410759604098916955562171554773654496612691428699142476457735987607051864266847631788307178271336042440153724536527758606488838219803173244431477414174729922456854746077919881054280512110074661666246514859439404839018918585715110921824090720803070914755114858778585700514903410071141093849415933778679365142033552322903831600786575893475335735072756362255432512048935863328838739680468694056116488531863139418766186310386724995032216938264336407451946322708951508681123257473796166300621982260457827639954201739729857605707152235851770576653594425670876080252454451525485660420328999941056692857915216231858371655515141831877031114270355458371649272862895956123517845081720794315903329528668431378501921913353160241834480499271639997243369186109062788556348068191845253596042106401711654064481761064318732392138098872998758298470430981624520924619048350461120517275867894080697931091681249723936244268602555530305181986366404444954953388582127624701333004733267896699014126442115248682109870689831273308508685947549724627384060287721152679693034389389098476525328078129465570371510816796461232186726649645237957015039977999965204760532195479928113174486548820374025197938278019193709969048048821052605795908690980441942453749055066846614764957473635339137765314422494353286679766748917240261634803725186990500092386213535442591303103709180413889182772564249567381270784075797881777848709084621727479738540430210602500505956016377102460524282033109440805485733556127670275649322505695234909087355252319865501639748878136180310029449000967353972504934855573511133254802776467388437205920967238661328378616123800403154240526173684728052830151299711866593905622689638817061980068956082882908526487240413356986748570900942616591448219585451117175626222739944845156611358412083381615330365605919601224093016836682762172483732083974965934649245642339475417409288406480376386566081147561722620045854619200060443795959579961734055200315489971601343211396249108677323116768421297248948835736072239453263247873361026357896195331581597142389778078965920243934707740467478393110174458889467735455452929431170760505545893020943875935255695552698722862885692925738978714733793912441911502530587656733784638684384779419722823968620365985294730446602819215612174749221632808661928492297643444407312708211528979405031119764491961481418573156694076241448145127523128082680683900303572129859136889819157632881912795280904226333910804514430931289077703183049265828919379358864066594122360163856138304841936413060396394615057127648054209641509777822941703639366845761555142543975325087266022629616655333860643011391951022624730308790852149752694053929035928010580976334180735071057752660874113265384727654873832771733291047796067547926829258467824480123644209407850991153186113686705032299007923832590585175315053349509858891436789451088793958238977838141947958786182362832933232378568139172974299162376539484678820296970597157656482636756798371022104017863124264117209701898660304702323127211236212476800031247491145163131235186285642064365516893069440747730205853907623110821145029117416579678834752871217401308229811339604359747139588165592834793040953546434220450067651224392559492132959417870336213507626612839918079163029016847524263487233172183092872341754944943648050180666535432928900127071661214806958809467323512553965509438129466223439116635950048928238570516086884979484327946648037482674809683544853025132542123702654315256443079067169493518325277445333421421279176087425893461828710954184523387936372567629776666590012904432360655926152223749403580655899685617350129853276625021934754394887917652046674152520678679335976407281598885441423490140614745274701624366642261115741050002193912849089586998396501022821681744265593743233909742351073200576859296836860251449370105321715572220561774985578049763806945019728132265886774132949679610663869331527680957507101869284543655491281484876212313839233188498688949139318168270774010221300991843980329837117221595450514875010254541002755503251820004714690329675350109834433675885529441837288738274345021588697622828816599388957532094238757238095266320119386340906291304939702231938865141420400335186770738117940431529741888766968330955602930779339010531883489257989823267658234149777088193669976955193553996733248430722985140119887278395948455275982237158368416156647403969014544149832322305034382130247374609453106104371419810208272409808344478168239379519513054201314864318128843716347149904151246317292600464361044844968585031251732664389004606243158796826930129933130178288255806820510806317830680840301583878990240908940834949810719756202222007415768880015695733085046498241569199360675588084621585173510021129207074775657705142610777297489843579665221145260109063595284473975614108656464254217730146793646619759462301866859671073573683875889923141156573559455468185903705598896082678576250621558022790626241788003208398099637970766470582964037737467226739623696464824756367851833505348763999651608093206975370365659360031607036071528339835613874333422948019983201234568847052522033518831970987959933162970669365272022096863716868730454869730255187707995204674415603020639757752520860594956887607568003157931418413488008828995086588260388385915140077773701973527541769724328947154528899873237604669897452465195159050689669601650033483133972497529727302944237040277327271377770606463442944318363116696564058829364656673328044963519577060744095600694754627743881410049841475932013022476924399978589937669220477961459555359767151541848460522590383053703456355314304655269276972845360372608532709715081175669352083292123652296605796295535810673918646553624855996574612195217985828777344550085710738253233300133221430074423913401601530637880949583315968173322147945465695133063161708325528973381135030616462137744598734130373797466454238543195682306606063461091426213966675410262380139945684799054378918987268427898699111999869584086023364068953633087127054621912139275853576765370929103986243909778458449546416875671097243286942573757317607524168906691317692260274761401284830618717312061058418255280718790235297531023456018859440000615827951824073164884983924133540255309099294195507317110314406481358440598121022745115686013145852107533350443119322133256469633807383374474227472177800910215528497099679949318049802008243674607448495028421386001004358473584846269714440730717181530401090981605188141092568613651819187610718061702720727205158016496960456419236062111979265716551515809649464174345417695393635650252760886380125262606315014947387269280850823253786236900717242451597732852251706617717222783878033779047309187490764534588395467398406738204426245076009307017423984425644055894994203052916495641017156883530485504020527195493172468553885180180427983461749879059860946859515159424839722462692408809475661210220324018966122769176141406254972920853548136751766143773335988199183777121461898225973352054599868440292760000719149669472831608008479558717117777989414994490241313612592021444932745575868537363990105277243498921782808906575698073023689119225016482912817681522571669865110048746223642979809728185712303899718183291560397279692580293311948726326141572965047856701142325812230345068767582558676977418824199462651908588089786193675709055181946919606208538403828417353862490632524703805977326152132418357623310779543607369978017601950829082491891104242821238351130838423734357292852522442130334347214015783882118425952125722750338705213427448167505397959701785118025708819818080818267405047906831838471988319946328957041554687113108386195130464405538722449210811390237371209431533067872911638772999362058332104119548377656678221156564467394869723218619274428849153266250271897494695636568810122535773211480861421568672912962216138238634512540352484318053003255191602409873614430702703556659536968318124187354865857523523537696402357365622426573818675188122339471692113022447808881747755956094627398840866088739488576036730758031399641829370270970175106489646085122344123251740679164634288508678523420108023992934563956589489672914064831859165228011751179433576365247142267918203201561415296440991254787059263676027028742904458773129254898463866283022428433800239551276984454375743670512071030247217327874605657251071087058968787336074240105345396976581959842002677284091816486851772988078042167595243335126472206028634023139597641404745425937774647058649543778424384305074649258663017256917371544521061657752702586159615283365610164320815938844362225398099322487597977389090176477374802871082488812084754156950672347570816716724892725121512115127603245392361275216695218881463107448249419092889314687150459986549202081939857285763695613761224836151187532382875276169626036801759431474079927792912953194844173264660230152186990945544474163999888378766806741901302417900947846491533164818345751423374910195286678059144472626442047931121161647363105955505355443438334663948459766406096720945827340967736780072905670280063362520526698532135649572295012006806947762421845196656922213486217426132305327693878602208299510350321252169309257334236139516071259463685923772472610701508386883639241875683365779909229395775421608490798569532095231430208088713118681843145743308742981053517436247192030300224213688642918052996514245982607064183776586058778297276653813397825462394531895109774773304404495398352250134312461838012971401225049519115961320360423601714539035754506549331981507573682478911368338649281819309869543705005976689748781378773806072339219649377406493132512702992518976217665425261820519521059726821351290805724496577066270859237147407960010016516283982942221967709938575536097821475212450633901560317616332348465306611688845489954377806208779290580815935418889743895449915318824263460753242683619477028009671209585564504929019781050786637841457298518222422009283727322858414851679272537400608094346378997736741248964140243254704381110250841932457068382164347754290817588219045232950738234342739117513515827269600621869854097107126288003901705972227937481477410155979948872299231267972882798132198568939060676892949680523720858225759146983230875218263818319087781881132854379814162537937689326660271831751704361391307798877957045758901819251033149893922127472941273606334126262129679745777838387386885915542728592502674367204473266673837327991181445143723113527058577882772742278894543635205609130185846494931730674658432565368082626388179556451982168219492219806406267213426671103578682244404159089300984871239025915714662809847614801024252537632795307360253595438983004228673836938856064988980219230882246197903526547101082141549108631255776837900344733899814013528944505297514077463894820323399834570536630600880469606716981075051122073732375075668617831107917593374752671518736094028837536673320368569526196157716113806745517129039930056236318391998210364277100549429917738844713639196546575493056001621111457556302995055629319220722387661663068753114570836217293340143552508666263732481337265546672584973554529553705944721653469091158909931452583530200267792864620624322652918879666298586874814080379598825898832035299645292639203506562314110847605571537872334595709241013406792725622526019559993186314764877710386667046407040601869329909428315560010219993567459969195780356672438384714875980396762026773902848387907543613627273396400737480900317069394801929481207792287085375069500087029196924453745733668512131003818120359204534008758112045552647116384459427037614639486160376368379996627915244196626931670789015845406794906137819858796206005019450553006042510176624400490751195730594809075351350091092990704915824673142123658440410351952469850756477796176259194280099303114514953422809837136910680971523924018413938909334362488138185073669597848706290298433972863915649605176447049692314119382522335480965611116804652860686189451101194578599629155373733132124306671352612225821660955329590260357958935002293744953662742056802834771119279164285998630382106370822832332968738891379894637190495534250959614378992549507784420155622909302369515573731113548576974340064215482213196833428129944014763131042618065126564250745013462643682961861868843152996051070816939146844166684679380260087458704199936243179652144897693348928771355056214113777282008672476821456723493428872903071573301534048397855056959232242377527279642146295748248866043871893494628358511153189427315576742121913596165608540278786286112085130869198824173546584874771511254907810279032299646971230946681137093282400581003341764755400654255855887460100342060192948712609338778747018367656389189105492703334811874833503625042758153998681543875051166807603205340729418648861426345518964524376205599018984359023431329010641529225867006624371348479241832661886646640230348088712666092449198231169687528826545888724326313462867772080737990625329305844082654399644827340359123148357705241284467933402417139179148528752338622112902282535159825291273327168977557699217470272898053681783718176801475244657668832608182854909757607746917378155543721480312056274200343218211340939822584920880271312581761165831665287401486671164195709764750207934796471017006588463344300323628212112969616365381274282234411352418898763399066625614935738711539408434720887994220860222253356851706658505467860421891137111363156810659522151051704808831222368947996035494815191921575951046270174331834119213199836704546051897431366202532775176123464703951831236045530789650846754137966210356054457344489147502691234656669058475745411915502150702797286800745235087209603442992103247488210318599699787362531066910432934670295959412755087766289438765808636661234909758055031386100261437181075349043198192925708429616614418919503143674646129062991889003951256050111993531866596310422796127682010079591826439902695707013941706175111327073493204949619930342841929006424598020900430772806262403345458231619468439554384154440512898497525725420407204528642667364953345039924717854607689178125379432867041260389655867749456915842331833508799318086384032856374655674820897724735073845772698190557581091082409359250689697327460598900633913805197742720259208701475431195370868292263753829827697000521189658276477126906295785913648965070571612063361923678216023745152013874535250881429172964458586120501403059919089221767448157890546675738181595132444714357184304520356344683239564725742827231999914113404588124928391683740319729321606101066098546992929506711523761219593749461359860042749895747493236391227982529719169643056816046596133185735466524922682051567609121225131158794469827808625867064218402805116588127221982341888122636403543709836221069280283706023100926368625408885974117803227568786083473967391373181798804221242065341400273475154727245116634697192770046626322233614531861426483516463295915358976601410815099120833444407147467877165090554138421791143812759921062309776862409402018990673015976890106554782898177709204020652331045032107768116015386328553691536629707217980342818611879880073744702851817199366500224481264932970704145781330625500092964324412720901783223618388560642261773002026768269869483905596432535015949856971664617041648810922473330961239224685168410486009601659812457805282713842464952069333611794156916943515715997513060434591375766555137578817634398801625650908814170499513721816558867641951972258819309407763292565107026809637619574995540353813477984972842840144451952684718188692563203860395831597732356862246992653341061039768616471850104600202951303288513539700884253370128976761203890054989113007194382962278480070176084561965655390339349416056466793825291277016786180795539137540115181959610392394608427284595761191986955138261390266017707220037705375122263028569769329499171500175099458521297468905617905916504272387858502523937447279359706475821988510004407901311772481100328907010850034313463156257118732941087523876632300899881082952478444171121119274048863774064802696722435291142352913307199915925544335704163368783568724601801499802904685746063567841417480859775828500041683726382821230456622999328584908031676345525986862518853445415441278797558472813579270498290917052065489670901085858747924820298523710995924550641217342834734219522188142742854797389702036842454665639954823127856934313943443708523402698682603383819570384895913623162246270129813090442899898580517469225049135411083601724400152608469515032484918972542860263751385626740598372095763824887473793371201736493551508602369100696338926484420038625906638338929785895428032929396000045198326280905435960624562216425559263394651380981117618085426547007636169929854168968708529580966529580783547670665067561803453787249540791609130600068267276825353709076941065471412019762868349708516728036603928501564581633807865187521146613479831084929168295287233275357120197257480111770000977314725824798942348657233773215821951276571280278235108074105569335123907646249828058677658798279103989267297919657847825449825094651483274947419130158853014910521259727954880832682538374695675191501460755668612869341678110599602877998942052536719305321570551934710592503834804806683593210142582641013670582720892250067473508374127269594975468478907684038131317809158680654508784879478276320929493179190082288480592215056704368348245465016437024915791122785975626251355431013694517460698487276560103968384096740953923842833349951558250701616619636525673568922899488474607992676738197280068870589642855030727259732596469994843547484894179362615762947072539956690876172291298855923214796993977206328591620082358143133833407390391154614852247304815044007928760582681661785252601736942892361979138355817453788012472212481517270223982758857524676813685614960120472956632593767925043837832359245889481144176018525347802265797496290031864283314041435655580997086826272295011392076619006484430321006727298598353757382495695598242788623177284794472988226179317663040722715079507202555000817841645178337293144747623156527894759755051340481152290453756876369038224171064223668830548924990381723943272216931487655090639336107387395203969307174396567540774016514140768267519723730303944345958665675216836096149191359586131183928320643646401442638000907333764183254894949704071895601789742639636241952619031210250765155814849631247678857831727800240099918850629363795364062972107929987903274853604001218826192694008517788717952049286576573599657119622993084614042592673307320892992787601339359467292313889451924672228419929331570945487173454455975839450308765214084267886668314247386699000793285035362461598563302579852153205647405922865304171918352486651225764611182565291392729929230687839748884018646644096235956265626011180443706759728817305544449595354076915977918669256761207390404139869248657044205754004817924655040009098039813055759239535700416015720515119012407948804915439979541167438835147874493581872013240346082967231883875774943506708285616319602104912236212642919695379924562009144594612890854896775257402011363469368896679153299503944414145654883673885993898413817445359011501323829501503741151260616144886491729405124213523399115595313976123326156290499508954519691548153592699232738954070348324378984792493098411790993089165806101402153289851119807632837476439234109379821003931677871511948861491545970602388606619957030601559372002817482216543935746118503924362092209761260134290671575360921744477518758975230031784607896313003005993264979679011947918120351897474948392982337777516877375219366518724808958140563907243545248572006244256318004902049637187638005467387516923994848876019112214017959461699324769611938706900997858262541061136977311841679028036236641116576312239383032399768734579304173633289141605356632477195563473811067624443565080295685177495298845288242387510421114445297410241494605859724878688332683396474958333658104260822470367398086692697146099950080284313369667718904652692532922984102924208442524115165986858225853666762455080720595053085305953108491152588082819974114695435053895829860327785910812836037836203997920773272446635752870956505625254527610337350147782246659371671221733242216569114899927285989182942960657002205551480571710703912921435655652386376191046488111864078611685704109263573379708027655420034906932301094544961549086032550613566532288702054960647921007936714837117943334066068323878249193460187389547171755256777402122293559584375244094719497782207307350665758647913604170876606488062080124415897886638511899939212203464870783169215612412237883650939183548479072713962851806283224206558267585093174077398208565872729329148906613328804058506451524830704169152795629704730338825473864416491678214309923222005045140572333468088828659193978941393235364914742848372924824111509322229813049928190072916832879760464115241932086549681050480158778625969033986617656692341948308128136650879313541137460274945311395683904286764210086637921822513779501711431071544144931338146721220240582969109511626098693748615981618411935148203052916304413853503618952437833706186503091896880582712603367364694321775080093084710364838335329110100856935375102155598959440484750714849315907776162869628782691545388872883781694843732865056239301395929472241550534899222679908273091239371482379624460011392585128090462603249408467387106764955867400875312050673252706340760874617804127160538199807216108221761912699472216078367129742166660598760287160815956379552440163885194249821840811914089223732220969568367822967013033612644532652343628183489994765241908917254123680357584499738112847900636727409995945345587961750168827270526861116821305419438143529239749481788186810687961161250029525028343377660020015080612243726637383840840869162951422100555630875343834967008228121930543414659815981320414026275369408917145158781680502046650243440877506498966191568371517315317590170525838763630857349544719914334353743844452558031964623312141468231145717817742130242681986085323228329025790977744304000255910557771546259494944968448864074185127426233361610705973895166524163368397243337741549341146763743835534693144324920750790821228350417402228126690116371408789482762118128140786960544000388568160369940744935540090575837108725327059175879966708962527543977204709475684276698882779306237032955017578377910758137106380034898912589504165569115030780787734364373654169467903078503860829496165994968706565133316309396222414727960771427644792738753977708671670090774194960820856966694720192827371166862517069168346590699264505714623836371575674727521943960710469849709151619082810781846598952215513513077785645909778228049634654903529122912925179347536052879192827499333570519428086459816313961978906327504712903571696164913083642136930078409966020306611346294337299549135297489525283977117178124359013785789527428274822872110001071494459951012867415894483789485120629951031409382516924378836557170554949414804436518290186657572321386691524368171905475552196790012532297704289004815854418232683662941712082561226159587603244613135525275629593319924429839462461027041065483489720050448522606125587271484722339179016523551091869848317148348897686393136453943792831324952360225349004623842728214360491919036853922347672347132421999590327160887746312638563210261533490683537577172990094932240507016591131214402929939276897527262418889571246351040039904426729605075859481556244540633958935565427859532454497145300371745690872976645529367360192634098882155029016751892421395877626700007703146503437544598487644551736559026828965440690349520709540708826644445235977836346570710360213108538843799452225604349406600397881279090658446382897745872194963158181418815891702610452950453989780003812061281760122773702490909741177504446174198493682690544444306985643853640374965228459290570777840629926678282024391665105130734804878767908836188873853209780480176545800759165490209556156105797420932492729232759562784336537902166983942492511488001802438534944816502048242716506397395844030271963819650765471644121311164501910115491736335407890036904680266144981876003567981979011520476859544807386688417524257775657836482709043678764020775629198773179799034078518257546231062154586465578657795135031037099772597812101112301507454219729957460695828513328920037165919115013356984842283672735693866201028126740481658032458942983387366784509356725354798544132944721746906669910943710938488749341547482933351841035092493728421630975880314167020738659352661043310954100952181046150132941654003099760829277888203673248145114914672803457736923969520634007238041243546771047750330415818113281728676844982293645450245587739722519181690738455908123173914180478475387186626113200570041042668910107460087974669233724720796769903539214253016267585058540534232920106252803663563680127242332813825822917478649870927534283483640162212395964931496951483686842435368748222156570978486492166943187861489509712372643120060582552570667336496623397820702883997507981980254431232348458711376453416155259264645131201973862935412503962731476727996689635347524795560484164517458380562661045190552233293145361687386145193628711043350605815543313495767305379766231681751968869854545921073342019272750762013309456226178096004697791616676066210207324185274497242077410744245133283957293751653853723334551551101968888918578343227970662854827366682945099714250228916449246476572929202151734952491700538793433205704084244077776374638437944690591440236539796575307668246852371569992542038289355972582048706062429907169780504019476480979500193311768781969691747951023640803140740061894749385641478525219758642451793977128633727350515065169974599083196600308637518982760349391984643412941131026433154177333385965978579509160758484389073608572146202486848628402607873713471463514590444931642589096912158144849489384936729815123143906510924174122710128208442386920479930664455910401183976789008265447471321419248517249144222732956826390660101433175210326904412507864955472072476501659387828752651681762143604148001158759902583116162035948647630734352723875882135421875829311358485857961848762221586306388704991966729715450891031623592962573204229257800268188361815858109242703341695189215998938339197531046727049332272237449795353906591506282892257831412045339940307578035927751115329793836347784550953844968329496622353060180077460844081099452934363178508458728003700825806312763806623111544730538526251186840550365009679727899563299436508265116183933937478330868744380783474368605451583571470339078297246345770242142874340309622319832924692265398782447749834968202234399419097152560417688209404961391904597956864983669067211776386796487331092443070722777269419835948077442904326237713705091955868666529756702968584042722104327692274502951335120567896559643071118890812518855580861973831900797025374712877086399969795162530338976939379180050078389642144492662924087280090611207883729883050474912963522300797183060138920432181437515766606255047008038790939641025180888468872496760294537909267633727868413026098987532032443090579315142575845346274495027775587592296203326969448749698446399286203023757677103712312034515569494248749041567106649531992949177145789084831837926386130960038248344503241546017982831044427650368639964133261726644210785394486312841652185388847158334693651849395423261532555898068814320744876938403415627116779357491653603828367033289063124581716334251278085004840493874276173390112369239471526088617180347627110683698559987277568729227632272089911104818558265138524663127712547955126174301635388426437049317469636438097610448250513728049844062478323181785702750039541714936999138087066800373484410345379515191005700942295426838652145314993869489498480137438664410541327740480835800520389659067434802013245153277314049853403355947806295887896414831325050759913058076174234044379358924778883333584869790809950865602222214341117087535582871852043225394929545659708952752887697294567073263446187447719543327389846557328936948424851189576493958090714112331715612604780823579074301018189026917020747148409461614187459872326475096219885716872238789414211570807543899049257118720874143739860582311284401585302262885062129978755297782025104695440437800175477330312439636031921478466458852307985770829796747067157810578896336677196901603665601372312962512819985895382301856541110567246532936344912547891452497574317169433240649968231571245527834995781583989028603095766878049690947255518913579204666542380688909318034286576114989489156752280571365653142513656819396774708685288611764642855525165186564508452386956127580857065061228624735185670394369782260220213478868738859140762184086058286450117239341259461875542003903941448896637335760087840543627748765407861918753123958245884843491586133304167304419726636099417340866583133625907106911502859043338770871178960330363551733268377057549354227186179899409384674852370224731998302462916110951654395150200691326074921234444944791228343270762144130625815603566583137947653776478003975225446913868722310326444223988198412967152635055797755806241565903474615862337364111875420416599736535941849034375031709076652327393437692173229148167171972157937732535650233753298945870744137121103725626728580711310245583409203674559704122837831937207986409558565788292286858117742313747739446061207623671324541528024008726866871906103252844892680621216289903364898541698699564965949160426279301724352361297908093049471014274035328966652776816701289920439920594494823244072073441030517391194840809466784684542971945962669325119665234120706531063834836770927789209556239282015335196601237333113906145813854975310566659671081927413195246811814471218078539616643993901746345686349533783597879409866728361034595763740919340080815145612093888072443801859983043648204031418008658592087781651954721955090352228656921104124725812027175882701000304818239224325547882075675837590437232903774854534537027577536703662740362642756322688916617501023707755407333602489492488258619576202896264298241103354593779520410638823572751727521936235503163433626827464577462688676144627685015854941820938203739489134810142199569494063782032280824934640810707718945134662973789894729255477434480880863990393351611625451209907546570778628716194016345734448375411013511776098227675462406460885500546022690800844298967723573395900242369309439552218294752481605923572529015164709450099955271671198417210727210883517772642420162398623482842981728746533126183319152804189559051406217895648179818014729616123740721187388239276092919036708784725056056027131640428953375770134577714636907837501223231792640275942743196592884141319174047934516951921500827025617327891214488428645896694351012034603043432744087711846959774976373007000593993393685140390097027352099977061450440713028070342918558105223950265322423271120704048009806301857679568230137876858017122600973377938606033907714294536193621850712671445964716118663406084974100470340579844851095336126467755375073134481526890923485124326378799074106030955342824032842985852591325954094819574253677691478550596540565824195019422477365443967740431433833337546367360441214967710385787657311575838569366931655855954764487552432917618796132738345276714946666646228787522529618021635210895537086280972760529256693658908159624302952173899270884478259705964086394008818624666255373142652765014945831898132475154303412077650286523647360705720356240933593906756075262472963360788125457099531051982963759189842110677242802913267977293948733791675927725809832881416979285839925785753703414816768674857309658152853059640206253837813909619445390706554510137539958207896668760041966534456564051102487471196587244570868841107900505484902100501383851412924182718014869327318975801652383852475097798782838762273424114605320387361947702098327436899241674330484666077307654663634868123430705985774453150939885036335647779762951557253430930072567365419136339548996247669837379608638291950359015105682396427347255978071118058658197927524986878774368225204397536179378189499571485815761782630019529022750552717742183388637661667740871080067551330281724795040099456894989054975991841064271918645584715331870138469565282158331368656323809712843473398278818844662447953431932681853633353799075831290612278055654277957089138072152696581607861874159618018716373467939584556301459969021838667664268869349606693465366667399639423936706606796587452708519306708076054578075796907347185412920724542818408795262468273321710163670448007935144453224287138166455067973204729894422844807515629918821949825749239500656791867835719314414909300544437928732421334314487459780265472963969732645226500467013552078980827060451791967099150420607155662936256264870989266102109784996181415357970027531073811145035046063777088634247241352039453014004196341846152535618757380563283627385236132371187569641960277884335556408151462682282964296368027333562337743520766013763886117408161085431909275137248435661616940520163190921196832240788081198303271297408442417235515056639809078532281805729167272671097123897800866710240776686660942318451987698774884807265300046072969316940606399015032036987914833809116332490055197463382551998657735861572654530901990121141892578393004581126541016026825838215157284630911180345134489434743992771226071180317930370599133451066191355714077381470079449617003463992579795725307206010229856602857838645752223488466479755093891039048723022810252907244340592348663327539026937886043096604279404671487908099351421896832135197245301641527325959528422046806112816611450942732335613798307590991031510911283745084386841041904753416408331344422837595134962735931480435496523681656388286098767859489851266667873424684019771534669183618521264048176808471365450811364112192139878230903360920418948523356228962482636505134997727693208949125155733426915131483868598487713853744297952091922468323875681828163537226678727790205491214078394315496376929852537238657717220484371597584442312381669615604739320798110275572417696107636398135028048522150932962922499046068315380040128187212806125776279226736765747378187927238622072447569142363747336147416528022585091511202317837634454328165152159026450526321684326245293882303758305708667760158439603882616165280002328010717379860172035738183531394682224753765890379015511376118513551257877788793888424840263757830839525620341297851302869037914444292502571697486064475593486375998466284689177726332256465044967050452270992636428968037583621337108241530676449090417596355922622565869158981362117782268195746194864392365082812596445313785422326517621868154800083786658931936869820785312681365567488271666428545869980605275735135159237038620797267505621920267125644235928177009872600854983553688891951249939620447362812884791074752661120874088049178368670557918768630566312585295068531319058311682775065011637748087034933139922760399637910631668326011408209807343072534194051228957878945292098256804045533664150659277399492216929039264868294816104367818997219528648914116332880732593753053698415197826126802436991982370838845513784220929035529485227415974694826080712936732771262434926399393631776090242393972468336368848216087886254497982158183902274081461062978585869623071487111457168012797835749050550546659906002436362263187062714939345592560090753623265648357349465641698091740491642463582630957436214293736780885442337586886961362630598909287165763492788415366541816490598879803120262484976181012595057593897061111458426109664486220544962673866787635519891418852461469095285694407741189101972298409106876276005886782055660801549480529435889745984521393084704245068289662212358266817659996102350104622019564294123882462325074305039844729348727098788782739577180539007652526381772488574495004576942940450873079485342531522224423370530800783236307365290901769622675118630669836320717790978381640202658674546762349331688862340120051939567638247267560956269514534706402115958746514012356735540727984036053094883251990728755062389128708429427855794941129784236480854562079722627347524637127454622097341038942320877578538337930074125980816604121175435722894920250518151004047553078941522082190443528596481629787766931976160310883456536559910042019628593322300111982432405581294906968229918269849100930012544450930345136916793653855705129891335591036148048217330898473458090579211757085387216625875904928983268644720894704170182919494266664453226914028719782619433391219179200753400105238171054596541155656632417515782964462063420207876239072292124796295891389542606531783466376721471425935959638068031722987887136148977600189316792686932057250176032669881292966061822033515789727585520552165356045205133814967910165446225815819396584251070264003762513160501389937685913400435245298658417985495661837698275134869623683645559434733581014154419082584930962009064824298328820208696408920388243955129826095058331627686071026798855212525585456478308282402659679255237640527275420421188881623917644609630047122746881755395361219205329348684691253609525004333019199507457428389345471687858757368427992717349092927723766105543823146421680713705407268772308590830744177773523135314249905808626597505919456617184143432357302561609888400195324142460989572628887763903185084130062140187583292409620372949805587219925756307550838457114516701717695808553257109716573074248034190143364944933564897640882771064199567107930274287744568743345487530290262318610911992141326190349348785104762654141119858718508535656079693395992452308752150645037883901739956509979336964214670740586253233016113522539201988452239699840040689807257615627606522723830950781438556144216050120932250189025155412986960426416911035537811088906653949524721476792528269537586508505749080883978261269331252092516397555243471045661764407603242152188845609527411043144219529189221692394057582849526715288304124615603380767332667806055621189123507760019006382626182787077330547021451496621094156823520801674792408516399154815519169020472725826658708624219156011637080449577144062449574128603748444826551407536965829373826904684969117641654530937972062645777344524604703602081715729741264129978742912413618819282104599525759693425147835651785333261973510229213452284110804803438025678460247657646463491260297475859903019797051694992230938698443720747256218764029396888128268480122277473072120178939611611327110322264181221781080584648438156659299523487905887580675387971788603049699529402115789566554957385962632586220089722765901963008537605668681881612125747557751516964041633377041354839769873896603017596563444954671498275189864342332156442201712545292630367441078423314541882715635113825765922649313889497955940210071676383126852361805215307536413367590812879039185852683321031572350567134293323289368199332047674874050797462336129229446321217992092916740595595015277103477255821116059766943741245749426932975286004757670573185037855109107899753006946466292792440409648484182963652513868515415449036180611285969193206085173981189405442736987628537671918387385136685563440332416788958207071938127579997358706840914798955565277056133395987931562990098263309732141501745292650289096488765692982504477609091659586327986646557524282782904808288918534745703252262836260744838607694771766114923207847099420226352906404224894640424307307115856406833821308686173785437669343750834864308376056270550620976224000959272847596356886618817332886961200482285927079201141526159081560402747721782469250323237839300994255800523365056109709737885924724933761664929785707627552387067710535576154943187762352028805013874529692292491452931920803258013098094040014062927880309008038210442647333242356768638354243345370584351529572546191690482177461258659668899421616281405526147280936699290414850533937577491044187342019514458506550277228846791633868165553138042909123422726486655865243683629498039286278966937063612581002916426022109369529124985415381117073889113671890134947051578932276510271710667447202646155029286391123248064457657517879339317865230479322500255815620625608160200721335220189830089795978261287996299953279686529934794288977872074237571489627875981645704075215171300085319361531663366415807485323773493871864010659133993152984612170156104818873587070999838757845609813242106310354186119035825713133832668268152788680792420120263558404302122910174746077458034525723308860446037137188448041614422580922474611959604866569966984506919319458048387792302498719735968624261626249682399996208787402834799241341544861513775068959867801599773076731368033621835036913406685512234529053495016112114976131178709694683175967397769104684919481743007982496567864861401438549998155528504777851547678109411855677568299044374669275926623714527624788425628267836341746877874469653309252040097828349781391489804065309711925463920076025987471401526023720941720772028213914199120692860476392534325243168303221376025388892484188543260482709914914643712254395843820555345648101352507822183332495591718583175527221052250290591599964747984200152698734575390641838639886087317620049312958903922228126740456306448349070947580110936989476350469808484393730823428418104174200970550042819064148299914158678083489682717589698835327461221772080003039919297053557543421928059460523962627041269962741070568046654691213844655899008817039336427250344303902131594161600918887587940765227816415020527841066521528185062207010172082834296473705505850589461801789221905589796211079873724358579827317784036925494567388069543975007398905002041410877105452219743892149283226216816599625195735108780257216869723115880372674267892074140782960088428708122348974714858287170735597251541441765846874059995128605530716472378372002471902203105810977425048099074142941205030928000497713848608061587179054394440933891462407345458475746307528606307439704256907575037420695792422242765290002104309484513651545630550030983933221896731295583101181803836346036811938140130715447001944624860359064215727375547635412785186705756688744850780426633194523833706617500428056331337461773144614642173503548205459055531747613479731613091491793059294435138746052315309342385203493519309690381827058774630547069996819033466178796647605458043316017055966133013303022068574909861391345724095255006704175052058600700697233382005372280892777568147418880964941857974703012496261363021461001161346876547590118387561818211979751215020321738878668260392322258776202060119764583673509258434202144110790362673101011500372325215022989632714453792712495320545826404437895972312324193639313740515581532202412595558918045541201735582181891407898002317913505383065657826579202105380724717615710303832772870093965764870818280416778815658930000642143580522702659646056413402116914982278984140801471084149582076633502512780295489664701575189418543776723279602685430120428814322824059219573408567517332008169322064083456375338256596573239125697522611242494115297240131084832530371340607229892441041508074354777637403419171247360968585686619237683960796025531904416431794765651210787978083786381110195229695758499109175433351687160525145520023539369024599028066145741530270076691198408648156624531704887315934343635482974608520947350823472130642444947386048122250186929647854750606731700338207448765700219640357528177661876219932112487886808797223305892085035339725260498459483908278829969991074475410297506968313184287850553140967267905282136823307256475822450456000073295002162617081796704439744439551304081039350434298664636199402441605840540070593326025671789632426919522499147018751620233369601751208166655231777265047253073094871670900084327664291166760385764608612530622355320823038924040352783284855238191023300882902223130822094272890767995616424527332824383072366660637048905778079808666085119906537230560073970859087324519266406309941217465263019902808227565216579933671103039198666852131926297306854927836620618872598766617748612383486713089683321987067093300714875385142527042360219380502440383617442984425407477013795114002485306050579769225975355734111579493882748453156006518523172266294903770470750592245496947755558782161731176680004607523514112738276048320423703921947038947976454301382908022621696113400939717179952682072171534267877179249577972375466795749396610120942879233401803250767581375598149302469883522897642278400488995466150069625639463071132614404936959530051475880986162200783278396571710275611080835068814949985155376096041204430329625472234243069042941449121240777301860787683178316863919467630968511097210496543445385050732621390159815545551940041776698825279280058822678980207571751392352160779530060051503833425086279554583046321846949997227973474158146397132015512453235566569806204336091061105664935793186277662592433044838812821986722571097413779418981647095981555741269096093283492550466601187510776539661218335818028393913433022374595957942499175212381771673580060440989428973944992325368959252852399089745925254191774569152729660425375676890759825678863855048905908022474721370624446322910150400780173504017122632557724947609187343117933217896558571287152669859188740205710314214277004434244882190981604124270868427445718893066871246248610135998123427754653928811909601868065742830317970850719781883613953915465557227182688700356460616522985671644843075196690628746569692669605519522397196227014581661860489605154517336878172714947450498996214401491187076589579659894264165756440341280946440180528388792647233526437088403718182376543449251594329977682548345280653129719406798002251578133014516677584069184426924502502157750033919585376568131424048262810287183845005898855783909521059874798439083858977446590246015109646177278553040473075671419884937848001256715660688805695995184210069924181178825557284044934013625585113424794073763082511148666205493183656877226715248567784855904585304590024666389353167502171223290777776456341573287166314280892744259255613419531256194213178636800832324533050923454083112695545427014346725708037299273754783658995602399847637439088853489589246086017121083357183722160710861113961272404844714418931039210699878728947303322069896549868754890067948030833723918659181039277695710802271025531999071670276593330228815196177846571671948343347885025950053604040678425620934486829041903732013537464605033082768384501607442881198191817709229417107865648954852188647484102505306410816403689604364760132565376827151909983536192526879321364594493091195686510810694556667630835198296513113799105853540204011476924392023314380086519615693315312759568780771355545551852093638063084081730257541864513875912890649906770608326330809735343120268177993208007714282148805372114885031451332365329003341684463925262194260808455763812699678148371088000803822855216113677753754605680958954132818758596106373702167789719417667975818706766328283195200313179438470361027624779636516025539528533102864483324112039049761510705387068001462234028913973156444930513120986023053831116274446556246374214533260738113091376525870026873104167474494577075413187997510125433202409456577770730286257001220631532171970927912414758628311289994321809134736362954411644991003510334068029029642291705519803109850654054538183412987315934596991536057777255333292888124785894769165640047450856553667166594406636987548925567438300998397246552378105208645184294168147535691805830638483677442548140379731570562933345680088872076866708779884846869172777502401496007091615736476859228953666703623548908099466688014871932308805721844233000286796112674000033898761969880280052269136682961802312516133305867702073745086127796513185851075667570234006835966098351910656821201778113070998122819787917125186178643885918022207152304613959285290261399900708801589394399066751083213869956181453274952941916451146475106202538503441579178342129263243738997749790430881086640936690602593983684601048900571934484542598596027472982348820896477303720859672882540174402454830483211907600728984149090140866623450149604856027439717350374418986355439618090672952424967699543405102001105655268731122621881037627753443381891186407816320886733103700483949113034360799004363232687822388312376962237311487705953679619408866427559852735492214324494381764898233194713861607149816023248923887293887482169226761287724102611037931065087449770752320501503849834087704596228602785961425942845506554639195012201448180332666378310377818962481969633593492051930280898295603806380009690233325145595242454934652280160540627927849872496652957198280145177450107285819254773789371924667813546382038695692652748499666538080940840432935720446481634230266343428766519410541798627746980548077473702441405917713079322549378171321422562695877807870068125037112561577502184332532093120654196894642971244068131309026300284034079755565672806743967448020235081708047688763332975807607635096839348441374795339598258798957525913762366441606283531871468471241882998035981845096495049951806424364806372493486649141371554412500358348683325856238266187395224094611739189559788355478649143094993428616719301185105468678716397623944006333808537861820069553835321324725273045655863970945980275518067275304088677495832396201032709934813999633808065704545019909470501109936960353227442713882785609713734627705989151986196372197112284370907548748215614079049408095913302172603850229981477394256674108784500542110852603280409423760257971970440075638856541448462165294737570604956391448936971124462874735195380489250292586454835540600986427452188554145978374113467936049324442051098834937260444901078427227629076943159368227775023392097518042237858136039189196783218587188399599779433774650640993448821263257154199642967009719977061231120397157688320250504091886189398359867402817158455599419599756092170254512495350757521578010439318687014127018235455932247090579705395580822465530275980768805985101136404365068637234134203496012182924715960497186618650108893576748045781421482044169930530066293552693239075614733434804996657048385620152949002557902081725784661122122453980041836304130582536640003686406652253141977545946966735157912911929739033724577706074775685839590546353775238537614734820805101243604655143971584921173303993198271896019581152436914904772732905083854174587028574356127636751762256509520751008930988009372949721651144307188578229571803704671581839487801843146915307117898462020050040410932796117677199190363034146338379802717284416918944258819407342196243829519866736954289789473585553475854064675204369118928427947299424823703901283252907809005054968520660730305203323043631671345970328005557274268003988034417487860365440486427637743733899842989619255293049619234180675696770347857226752024917709955041190706662394792517354504131800951883486969797243243026855624077274193047924364022334372521460299889006866071501223899513543285015328760664842395851186945281606271343928543969314252592749577175491537714378093414531937404088403345372956021606122607228432451946098250029279748805924888786770400684554175968969932993263298925296494325443125674392419154213812742943007717717954721306587111443882627208421378426525296178854385250074816819264561489761054030628558116157506000079735648919882664782105244973627244396676414716017118824644831057365696310475148209648140794192227925638143080228140182810877917848169385376327377712695872887906872330305390401025865515362857967286289009159354679716074892899168135491794943711719517451902450917467382225237680729676139000175552583134383112859077247084445453153443902575264663435031799785235946708422020406694088085843053115974456652198140278009511770086858364673867535253006412383391513771760113052547473738786684054890019817312233730134335060338985878551233510951554898744757506889873278467779436035888092490578189052148962360219146930497277992624901224231879733404966652461320024820715697514171116954945841321956426170541569564400792354798422114912800042493188393253139407498177198196872199382891633038860976600040044500665197059564781077196076187500734636989675911054763720129376149852568824254225507238972346951003313773639091269355729706797525276543020527655066679122440506605308554651952607653751665511665063013021389733148296692356073630538119864821529581351019194891482693404594325294276175219489951303153208213165523161240349395396277186656048552161634050269735859647929197418916623777125964439705573726705519199738787048807083245379053748416416685024121389671019925099702371919011186608239052309798502813045920467792460531038756232740712233815494748572928742784432389271711361433924659053635752377580714515818398933610866794386139993128347006708310412605793763126347490391000045324939174034985649288641037948732874141818997372240632239966036124436445951625761770439044672703841002325748720129819306657490954651255799529383331402269834460814062667452076331753607005836437282646453362751773966620170542297992545870837225296293351315604255346753249898677352384859942502135673958529718946017008228938043176250831109955098432165927597357498328819397118552630247308113967872924815838230003643169825909646871407244961804544837465490224658213601810354114556427918395661772191206142888182684959707305864126631088905693673382519768294114490576584129127987822519714232618447937374280046131192227656353479325702632335503360073751234687130758968005753015267014422560443142028188690295796077419772591517950356107414459355172018322624853084994375358419672247768932151292812428776432523705118131210970603604298973683609413467311584342744238087099370905808104186744143235769140720896544303457765622140650974259200690124732444259283885350015232049303271698543939433053156718995206544099869820493212276286136677210668117203858821403564797874614659718480631520192486501205478009762468640223488783207631005060671708813252214500418970140465444561243981905617982544667832459060460652023511737697114832921810783654610386653554733282524681238926540070180046774879271532530220981717924198083910357968237230657963083897068470261722298976060168660389261786750754178200787133709041331610485606517296833124637064699341908291758399842632139062781696743150352917924768231507511199378687678246921536906570304806858117307839060561202526126517050483416372975074791118681150586997674313652740712104794000314785606083777982375591585546055165023893506916700255736903307778166794686880097835849850812175661890911594035800174766119920337516134450746965890755686154541189855973704442196274591990177630096727256206277060177643631918485914872399084524714944372994614843237438926288492974634659735430471931946982525625901794362757918715114549546661961868529076985838565655671457610260335880420844344424019296576679128095129043735611292136829151073923491652141680669456976677585079410125808328118159406114483030266601257395614332818220515488103400740246294430640224665156814714654356105019754606089920915079287931030769808251301126489156845537194847457570945934036641283845903823864015838418797740642349444661077221611946117914512319861922581651946383871396810041435157020366253731562421532013565084006494535014579209496294212196408449496141365180469576566754125376303035112695254176740282302277189284797437001108798685536276893413586163053951828860429020825137819819359524836491409367477891831866011643576443232616935788247994828826338181338370097713455233357536179945877538665912604816940021449402942776000736221610223465331785849316656319241095685461888923588720108929938566178937304244448253478772398138962453798233564833884789156254647567910962623535487173658437180550435979707840785522440039770176456929354255333592490301673224235938358589888288698153624354077442297344185552563821654804971860150794063535906060996791858971007445348775666859250974656685858672934454280506648257774490803623527084606596371234379449673071878952366920769822866753659983527347008470295173170306754624560769524592682914766995613683413832593341785597953801472293580686115914559318905625121534883123029851853960103949602021506602479588083220495504847434678354296160625648377929049379936689967905944549347429059597305983153395057787811109670670361499039953043660363752207654797159612141751232568402200916118212808186581326130278429923301993507632577785632384810460217546593825166092397318649284089628915734610406813400024373836227368723969080751808857876317949205315505913374828429704472389249408934161140357925461018811132338167993825074324244123424314833795783990927478674772254845499590938389898229753960858840413079714308488083822901553033581192679621461615462247217614273061029196008762389349998495356743910409439608720933997123356127155108895756381594264065509945034458550289930826203100198002956159349001986408539601622943769102464606926582884340660995323829729095045699252521075961385539632912680991509151303947867816740265999566350033018015771708568928057515443096113992672931002972987249469900350907317006737908156517112402564258330714339194824819061668384443285628061583206128634866972829714768060631229950998860450449588239799437894719599729299762120462712004918615677014077131352086147114097443277576786007833896045570280868233729575030915053406140526669710236242408001717783650617474991784941271605707363380605347596132935732338951663836717615118197180134692066611681152389122690651484625936778598810816086564039070539489195738528971381100416672402996348051695643759031482536667771478981712737894664174333690960427010629137040078183570353571743409711912368775725809973182011725043571462368468367652714697554846296215318491714244468540243837784087450477786846971229776933790509443479491480872468492242467728383372868924203924376058872390721782203379472040933619684970419703072588850430846948462316442551881195162885082364341036527680199988544319340507768589515453233613631721595582505394628421406955289497654554625643749737795139384619189961048881180475899851262079728873389729089689000677147130728286053746315801883129742574996065382793234070023524156310457714411636260474517668738945534341951949640006368993930673539537467887461265920705103797487719775082869801980764886707860940220081552609915244200734821958479777895681987257515110720901220143693564156259860440622253771849041926170549295173367838736819829802804483748976614482607280959909768494694730933615195485318187712579614034912863410528366209321729591865842605663053063031503096857417247401253148449277763262996846032585607792557328518546532725397446934425974694418655881047464004826440219636606974852688780514291215799079431554993326727702931181991238282169396601635543563925301273418627091034020496202816950683218775985118491881716453231409667341720911247182705088794134664422897549008596618079877080362136927761679056711573049298273388414078619245400781619890040709042658838634614729298459872279609844194608780083440492629619495787291743541352927317006232611128005388617772295115852443269353822810909998823771679729090662014410470186393983303483262238341935070499794288525978691802446535828408228676667094196503786228261125905385361598144341475868490597019483459849299917787118473551669343083694954197614944454448430747711806728842075843075871055491142436764998854999299295027462853843646852967026787762473235209268740669535140832001019421329530171268756350222969813442025467957396952308526895365848234369737748575630978214317323021911507954810744829589586880104017717872121041832887070715151586720478611554005550456957850850329287737567293508187686158208290471773131963982288423274604406980670868450654958472647874587995494767111371060434496098393135219654334401621294087005130395257638302960887867115882412452347020051373187160012825667745812488792545885767546468241047276855985187268507333849538003584674607219541996619939727950876525552508477369667284334558019700713664608483653227564711280211647324587462582322795708104403738602963362388366843706073556147834532408231927360517780067291263238174556879047049792101032507695759677429109302589891986477683456132328454231838742430156330509781257053469037158532557262133497180232564859899341103460846200902429296731350531389605744622028621640218830335978906609355140822857055434049420256953641774113974912242633493683435776648755066399416570252867717756648246364279958668308187205389765076234805642733590860561937696740305455994586943235613893029658772370835694171001746864409580163494996559172458782339707016230940804028980826051662901179266994746256305245064844943246824183745355786583104401677844352571823989799730492933152846563104437197727992965621624370636952245681109349426514994613604173592108326508591223255527568702471894228850878394030136986486168234243603938003831323193138628723771012985781078261536968329295421498251649120975765871108046074723092091694792138483638192073520091269448502496900032126451371285690640399596066857071672271898639592627921790219242806736316149314027341513194701355735185991903177790396899000836565296631883581373231084828194535681885182799816651900503917433181695381636018070280275104175190086356160991670124820355595006720309471805614692443767072759973979281935401664966481563068119700894194583213863965068461355985351687587025956178255466976763881378372283734295699991439585809981318649981258683027645053300980399406475416933495431977643625471013382529408391563499614934686900712712216820205167770404975288532806713753209947180430229038712969880350994022191487941183114449855045433860993901519891657207058252871328800060473735786135288946582210359719326261406538273053410986389483213970128538885247661565183407360209724107016201592982653500092796496574209162842393920073941189341106108115624563264791785570755190519200627606878112579211664860897013371402667203172482472549385171895067176160906464119418885242787385244355921825487455877050814072550472449918032657625631143942092088824107282093067585347348372330900816175735930311002803310658252765774866302616450614824800966233377124418504520533545656016597378656420842175827785195743338372767774446855186646306791076048580414399465284273233816374555919640156464144787183966267945569374639333773193857877113085338838933999731979285262428508173973589430362889261556776542131752548548407557688701526127223328525045951766110843243747778115419649094194221296983813355312220221697961844599671126457839834248496479704109943395777871403194363730329679946754947491536591830754660638388337800170596207954237489275153466870391682247724011500058910606574139907495774347708244119677394216854940620739543527680828559067693353907049240699199252408108669422873986011423175682455518299414126070793210947601793548630329584063247141349469624407127045480558565677269920157467413892283535447304171258331606284856791774993451112004912192866150199885655367169971268744603509269112139960008366612914005153683205477027714502342124438381902505169279730674109213679191300203427123902176677964700063915285924469616147307597851898721384320885131913905735554675262548127225343819992542942172035712101048325767861701988591518591131777380548456445363160240093519841202193888492531009734098079228180751238249715838932944309684000921618722699077419870340930392273928178848324291600811909087433156441958121779116155540353303004411062678083366396323037212834165341060982991823192373512823749105312033866588780223269838981654635178390792397338900615856576222826381047367424207768529810210786587766261745773499667743994606013687642437559070462551326731611869092553426479554204702295851997920639272557459310869649210358092980369536167551134552288753902490971540651150443104491346566800831679224249160427159244367239061640924008876274731014973712302759891711791771711474202262812538270343241058581136183478960505199767065099689263722604567234131099873742409113940636948660266106598932960816459995389697216495477723045920587705705342335065320072898648242528307270515174989750164768473782037329061293087246830152209131705984095112441296145852102296459199395882295396669711480357178369428692641560548860552259815383610108514720124839348097617380798739731520119612414846064772443736449894615547257487285717041768221531441278525377251319295738510309327337141021227902313424998614791844371163279877541342593357071687415274379531236461995359017178227118172196164849054513545051584729551553782343871095876397620333193729365404927150936998104023086487713954248217245848518795589270816768015659500418166948772919893872930734582735246390982655207689363340742857664690410796977032056885847011250013682326361057772522542849363628388704319263981485035243469619115298475782786502597345901311995651420513667431875306128001478318289679890552301155534942950130957730055674926433178790988316480452822427977840200315062994525500467123840409604524791900222901275357485736764158927881213971710608456937283297675181567692955026690803118390384265951147211578655682741862114128557491748432698614801861386248921292261968755639882376640975895048457574194366123373966838991839116057683937127609323907626281514548647091730941425190323171844575258972076762034650546073933901738868791575823437846387328139471982650862663508881760917274597928973716610553370627005748069152763593839311115379554877570993153980941529378804344752116139153201720634777467624629311213647355109459090256202099603101816055664219364712942665583266994559835967609455102470829985528712001606193394588128752698851607186500654849913931991756557877595826125677610157787234250497534731596051349862359166675997958726253049289171430842833938115283870988066082833057383172259597557204023621239747836598647220775882533642747082130423420481780105336482180231825594879534343593702002789892917533478485114772531029908579745424071515925968455382929707581438318804190676731944655924673511155730185307250138455531074134289641855172788795166936191595614876558921617610146742025372568213877916660029873109449990756155491372946321238608542633056310111279492996147555787060034238113510288446626250247395469448629453198029501212996598089495258709088293264079793007361463844275362655341989352752194351281110208009728985101410410385005637468188250103004875499415253026951626751309870070465291667992388516050301952659142674369858368618254569743165709537637183036503841828132858773022284353413774560185727166664579504150199594117974983865545088671727090016791221644091850087793569958762485849095165001555876109772710326117023152581036294136567205965582948616893638937871706225214777663195219446685355288661969369954354383087796146682798714303191857238155671312713004854675520415407657714501027344619458055424187166573091447590065120983500410139995163306111442715583019948044467140752030853021167197050679286173726851588042810486455068263761110332016177198874372804806910671673340809837303038123818501325259957820000066590044423130085810737114039258490634136437567946547463980416722565847741413516618326947731055636163896149645462359204867306893935120228494180554078455891129840424484241936525802742063692229139522030796380767091691007718113904006710462500635040441671963555052058982666445248493018404557805746541524612784192661910717785761117478377861943979923302278559903462615266715389508810535739859802468546835136914908177263012070116252290409479419325902103627833256945591726768610521282615751683802301143424651204318840131681651771733439878264975596746545026858512176591073717180313832356487903438420724704834989171848772425682824701919966390489373648539619340865246340193698857587700430692044325234311775743398611182971759079385984409704297626444483231068318183530856399249038256361034185673970577895805541024529335551339318150544061340644755532053853318332195836380396906816913131238983231099049310327016388572962296543176103854037567081529442782400075714944092122816513575624754950738989391562152766946713286171131470169631956673861744537349846499286553636456298312762775330578856766875073565538284454482714729498983115514946001482783734418605477523768900416190301027157501526223617695341683416665943416973465991522707270563420274026559060284920244675886264405791064715216490968709173410968251568144147586716398511106778333563076564075237901302748938839076158144100268821655161094241364736903852831028922992090344611343115327696080321428641885102752668601484064183120284753196646824811276891521623730755742811426154955542665737243244012205144398716415738456342503582505400277124005761295538786982743795699554686379758787012463660683814210650046383642506982326606434392293241434994780256714830355742236317362504925405588767230667576781487310596485695918038677588811206789675918276483296912589230720193532801414026532996075559740964716834268624344825772700776904973664215378473637030520936954644043686428504346175649292505267402855445139704592792197111852748520723503156315442456671758771871253273261824252009284525745182866155648917982641682577870778254841898813259563514523845762253394082360139327824034362082790948289261982668749769652246439985557289849461697312097512174482178894662596224122620994682160628442603495393652990994402226281276503863884036814069525244736928823363414943695990035983454805012680352558016526746436013580895342489618657551375268377585444749510723826320885688291518473578176328097185512515593561659537614466328248786361410979793924140588777961401635759222980827472387100537149466525791461684100904802928265116432558744577084938454261278314396332161172739812183906385014371746213029707126158333545063737273105397797274403896899343767196274914261897067382620179512907682855961347829950935447376044694641497800947946564979381865912312082408044933135727003508257419466975386445207237426740973679873798753036266861478763745742881435468460598654983982305350897927728299666117399504944527860631066822344289133014260653585361561196669173216361032390970726055425153097043526325852482253753125677764790222598308619239473742510687462690263353561690476841400592599285817477808214139669697032201309375645074557792127445939997238258205503103341942841775795054379922383315721338127515853169008498282604484906898612242576159851372428354537645389004328007174929857537898476497119740815602925550773824108675961152178715854278623901970281033615721550846914092642776131851162515778438833859631065470456341657925660426717799252205799538258305519791996530650911277831068118018192872509604915327413527914976154852343169721454534633928884181031483550888250493402886644508357866136129685827836565730354153050298780703943131880692612148176733787846239064164724136681030068380526260683023609162704487079686016699634882565213929670671693081513223368514144484327226532316994101712178565290578848751847722387943112444516965208238593266363240082124861900026137997111074077016262167900856795593565208777467035916535870024326824028571376202864042231675301474913044262105998206772001784852941535083272468126861861037394388308610872859684225984276676288289566495341078980348834610797327690674901133552353481190119798475538014084557583102458147187590715790116414316790948718407977380333163488299267813709294874974968904759632058338320519678383450628057623988315103784920390718248000462532616826008824544778937605748559353107730888864557655210303398046186715792116335226113402158143500801843798484818718468674284568860913347727723540721321730776533199698165758905330672891870910747785673790732279693686636127569369586749180915960468731393636141954680051535076265369955494682029478093033738730200264636044290871105172396464213136003570427306908469969006244390857014781278060022706063876712326275936853754556528944912203359458068555513106788572709949856733952550894952553588524703799378174089451685026326436119996418999226727681045159247397403132781165477903137704796044005296376215299881264497676139380266069899436482433849839965423264392716527286240472667955164301791495262184674221058705251073676651198531257928058120956264518292407797697676885251232243513490316335270527698945827538075249108487098494493549085419033579023657324532122910304914875986226461442968227261410792191171742547251698676516679666176663322910969499368590050552319931619717375773490629652595792039954808561275661026478359430961947440315179848875270481894344983463613747837274644488098483034935155834265754862005672013003135195991368376742652124331868477668682257808176123026064449451032683339663687873983109853191071637573011693868583346394481436999200842896730451889262959058638902560048074014664244900459393530931840942160858796897787567577674044868955803071845995573941807327245800723742699314026371747128423636160198391293961351566081466496420965084264674428184747007942798655953617814212906448218245934295082413593184301120895350505158447464540700776043288502194722891940523262022929000074620717380319879374061242983329596290896961629167191426807246154730725002407925762637038042187474892028118931538138544251720658425772445162974135988495221922551707684611024645823559979983353808896663822918594958943102171052786308135398733725008433722317965090756605288676705412416928860159998939408227098339339948004503373284916603492036156368315165035413942271362947405772193302721676634259799687246589329315667486415555634129171602128591485004379622567959556189477841271039168515205623506835242913917808219621288475562703636526371581628330746214888816232641843467448841938467683708147890777066090733598344120792359001299585835801934494225742180746330666785703260044937597123116647297170366578533322509588877381230865017131584188741804063931366743437746744576772360599492745145690937573238872330646207256744998002896059289157235728937953324385769337139218087894977067002516000200128544632931211175194043907404546248540938478705631399363089228276052625062861245424292786603198199890630196933961098515034505743548866812892658671458962098697457650626844845812359109899036916104363913175130553449810876754917677798632445921536943808976953860157674194648397148821868997792252452644303759142885304529525779428557072503808408008821036097419579716763058920494166413792200172454894002184862633677425684369203370434891649441348321839044069876900424862324463656150701651094939172449318057352959759786290432217380100458899278897122765386945977332413149516543168516892138686494375048029050720032367085552787109627634593017710397789698015081115002575002165186169554552999783568957543966974593495925406148349467074199427637293809552819902976854060045658285007427546365240972471702875111065995435239483820696385985199599280658149039469617011635273342931770454907121037155647454072168228228268308250190830633438010898559114711037825368910826717279152470734738449905854818956354947634855563764112799081851745014378882898725610841187841805402893553128555585284945423324889108316329062871584391819835460920321048983226966493795907006615762782756252906274535246504070631314099917702293718222416577838414348316547408797148074230413256335098451893482740767459561350759904894819323503418290212860142444790699350132033656217495779666546152374673029789421601246261441291819532293179365738702766726952377871702608484216857909339311983809044184230971683742736144800123330198958864561190806013569650926501164344209630082828426086795671332223690669217716788663479478707022226716594428679713420851325397488479594380546890933736840506249241062191001198649592838321327646049925579247098484623519216695409662873546508106819497715853807806211255238045226513439497133372579278880899245599124977134296435829810916201996412268638894434810421428908289378975971364365975139592053827625857268693174012015184785451955386332246497365210840494818897025221029170860886839341908494189764272593236755303078626231951338408615254739633277475960013186897511226205573789687743414635558993202764441662400096895715740774834588860221499110160863685860443643639228493860657615461718664510630927794600953071152430144602525714499159893269982138297050852305370835672089233297178973727666006648766616260762404132298233631400624438240503232581260438457519140848221085069921443189684232210689035114388771055639167484422314665339105886746622312230743839530573909707113377572236068075476027360441426860916518262419646969317063403261691389544539674124554864873400511151408190871837553784966171560747511084517984661852598922830474281605246704676510598063939589697955494728262556360307824429217351604769544304506490497487330358040630357848864009255322601682565867251842321295466854759226187540604839600421311556120953460437571868516792323572920830773876160968826399137878508243617459226490262410849413890880962429485018989259924433340836891625573873475441403346563965647475501542611909049369474354014166796773626716990875847278581217840734698671147334075314905996808607278404586057371161200880972933537849959808032624671492100955412777897058278664343296973197428086339021415728292306585712109708118060463033257720450062165165426665345833609042508674725004475759210338809547431382252134712789153963137013916739492869613980921746267437700525506347972623004307368824879691009115813660450062228765328419401670741849222946182126755524609757873426260736822731709727004289623226566938959440001709826431876332238703080184426867806289051431943033811537341504756153044905836299326183170825032407479754866497710442216202903521205372624968126901835707091724315335415983847704956204296097737004554925521009113422396669695691552163459780345325895393434583010892284499396010342135936121790022425705993480042805045080959697965066320204379620454857938215816953748790128053165730635920315017919390826014004592839517310414813881964425873360102719137463941158787889416211351487555697496780898167205778851441067038497093196627065760857608249622812337871976807333326133401782785449711493274650137533612027105602797998905336624402816070460976675765549728715904683046872947277529795798270068511881165346719472686002415819625351804413462851712712678867739994226469000750931773644739309299096486307038496134169602142282865206663410628341592674485320412065799089150887066238152767530406866282991885876201257317945021327289646290360565846295274998093643862202594426257534301956616685399237258300468253516590970150636521916954475046350941375854089590598018603264117278732900254056034752653549469247403996302954055722639892191771470558955259588360903375680895714844623118225613447826060039484302388491965395770145124407201211664959796045437368812734549458991022093101532416418259552306418942303913305650428973274140039783884902620448034109599840146809360581486708965463445111722427206974186349908634053671514180494784240035446423776371300257092984258868413322244196556673331966786867002385943950977605139598667741851024753227857431968648838749845735732529205550130950359731861857445459291789209876780869471097071028131144569825080082363694543047127872565644621842249694124463369159774999613372203810154270343778235748024788583297844124973300150963254038424177653419711807237452741802766539308962688168854964300740620965146390668471191099236823237403922938248196983410588644815226441864981035102653570683418810034624237750331000722222470371902703362003735720714131481124759713052198283033940404918169065758599502119529541962386923042027710749711913675454752007210866582909701509504116557311291955130461520734855407153153191054877261783597331284120856724527912917783371652547639033129760400324192690887325707909949421721794132702755588964602980696517568896376854842075384177281087789508183683981225828360088039876960783565496245275484099083813682490958871650400574674419676690908844389756230232457807828331066997374898142988162744134144842422077644389707664255472560697904591270316026336192776926448587674430191025738346116041240194031635510304818561488921041828222923553429987707679494050013839939349637084753987262302933052219123375391568687086642719571909863587818483628703900977488814251592298327912270217673966017571403436072070308467290595696247191374076517173694034241519061977050214454758189378183459696359854204156883261864363427574385913479898092031702937156631632903623372011979132649952628494236345723593028628889339346556131832955091375157188762170318365436849693352806342107548483077897522526421081386050078365492990943649852502179989462629626861313773934348538160136701969764250858406169940484327299081335227746625940847217514350478218062651965745396661685352035752514834073133827165370496084222769035935045608370985166047204060001717846013075647036541426548501264951808025083249574257385782026187631417392004855042710766614001623899270399650269389350042945162725253913179380825509463674908416042245012699296389462089678299098266052370734196301204388183161813938665699347559169187034978131970733270019015311203038025429007627489726540981473509356099281584004156364492777697045442282476847357219672279154884477449679950024546247317563175687233320397302776531069849382629759780004463560969071733190613298852480128691914214394541534316818378009329267325303635861910384381813251066504547084002188097557084606425951587388750881034436117673013432010037829737512542472757276438752565386122305141667827213790300472988600500950738022425722386481270709310491858388929590823277536678571995248490401463088956900125591096418244088610269883718652172913110575539975601608471104725188360541558100824218111983193308108892993426030231427916274672815026495500008209822058737180098583018785431612698253702949858473978771769564731657660375191667994422252513947169417886005213497062477790132614504383870657068844294607070580007926983395868869827190396815682485024121266628832307434144273447997298253718332928203185338510044624600281072880190049499728525485073737398404116012742047377572186873569766748840291693265674285108838314293823750795844600964476797348404744393045310233744880814284367221952931854626470535762593630492466720348185341746468960182109381881142803133837807453024718818022333172282953191771881761571648644573239310575971098114012026830079071025471744330249863273344014629252755383375741529045623382465352061192234909187449355644448319368032645205096443336990338189577837534387943118565159771805312043470250552479333722689314656128408818888742311905152107501364143733517814170130656347118527662670501059653406801885909968358952227390162143754912751265336068584636566355417685349073012816571976768227698164053244982794795843442970892181866294904529506790335630561645467819241035008988040257802124703430827868272669372017259135129346774286836982604512686459608393802131466130611926295850214703866190882087571663938664408313774762499606260099694323899345096462787572400253857716876159857040325082754847257669937371923622707502422900732787749141424379999666738417730311262448094408340470916039412608976371876164506503058878956594775250516363905504045127061922834063230368526400802656988165522735011033934665561810859575563686807996815424315138959481612273450908494734395039390727536068828431423916236136127878728662128457598637837406450156848689240165376788062745453053026103877223560076953971255239652025277455585127127164209440221065426247076828840989830838727588393700943209891813673141799555368031409396392394208307682650431356542548862900596909057778029288337000812559288474651770961023330432898396308212409317339745521096474679256582729800350516643377669439231830698754584425113204928479400322481932713234255435162006076125983203376198457302209592802016998768663776102868740590452180153677236833948410398492654253296511381144620932650842599328725856869595469913927153198525648505422203158455295887838939124277258457387210339739407991701631317941378915492037817387595057336551353668887152971696534581043079259522231202596439342692307653122126888263444111748606435668697592822245862962082938942786002304169747128907968025776411161179355685977156334979063993377201485073718760448889794802791535045367520095764700060521408228092013520746053895890041472327520203323340601385113837548645803365302201482975396294732812237392740780986086943053711566489932005784089120836536878559051850744447617604957398401557906505049392793900206948085649752719347029720625311541608360534100745201202492436981342915844244949221664728273994734803216005233162379957629726003464420054738935112193651014785478923307805119050783027276385680010096206779879130842759038206647785977420358179198850771760750500131564050155013491653847452400846263174302785382363688059736419292885023218591699828988477487725355212105255103896679471321432721318428174477395648274343338684869772866939512512563396268297323223692795229484195123365435645374050700665072698930404696011534589965422635011569622074284352609317402397374152220943918324831109948523436619874990533670581350948248954971110649341413551554994107498256650592048127010733825724525105150816226974763505635041244992437703220548999328235845597288195221379584329693500141194752944435568525805389077632554239124928471220205233963012267906285279829396949229065237309270997881532993403383976919139477571948936799184769217032462589872401574931202955661792447356498710228311124972888148842651213365522601536547714045547107445298267284778344254693817503504643523595580108997914881046401894431175168053627273748356937217786822782598101649359601911927478185704887583692051284247152664191165945337083797417519051546890922203382785997049265153907207564959385071310193919794294797180899883933893865148267784301936619115455609211723365916349029030430397940244974825726417048401708903490921770928096736599658804364003790625895259039062272569611812380880000050806528086245857765799788772935643801838505301617855939439193025882681767919007359970649311305493012326817485103458985706862484393139410424472674910222458988157380190361466937458872208474554294346768586206614061278242086267791633595130295666042519044747822326824349109060099292379842618513847507728724277429203337404470015855228250657447453894387498639559535430922370312481460096645572113357563788401858526201608196079735160549666855492603891978331401930643873978205489526935782741442775504809065317617556336363378331723484930185943969390326679444186255154845292794200326062808419546021358228334225019999924763798078392956898476947755658189841752832081008118686505788865654054994965915309639960713871289473250972391459423252280841885104005512043598832687109717945004587710387765152388116163813972939955186031219961552420848977735155429184168423182461273972531971017998338963143175060756857640616771845428044758379687149723809338093339262540111152553766143860981582184565873626516377006454425046976596676620013467863554004958602351937878356500785916317302910182102423928953318256642241024525315618803520404948842228193998025507696275139720430203053095267958524261939708857370099681720475987504362072187928914249370626517833014787117603213426210611143138147140231843578533361758162941325291424236763478696578400704004318548219605507660598566859761991263368738255052258897582108772908051521334613275201573641828665194157788020701235121122962629474625955059808642658694700916380321083028363756065661657047723637822086839177444760850504425839889243570177826704775271235828748642821580722452021613867448612502610778356312639962574954040395329661922988481049009608956597066317841068256963020410776005506443833312972595867871069778219331891828383508479494576398086864316329078802387153900885704705242999459874326060194080235784514195259033510204417417502746377193338752618428568321588672723605173138354960183395370140681353564297091998170895473602702658748730922672378524328904225537331642251210472362802600932696818182250050896403994787571431790257674272223524473367355755955606222154419483739792145040102321403520386091218616799703694844652863537606911810197450577489838780029802984313731858455612419127046867193339900233744285839754035437717214356616278922776164883520074293498738398302329290479699451897531640634150131153255311753203813240876032615425532640803799121416753496368288274828029197674557408839596940248759139785386113826550679034198149036905778566587686872329210930539943187554822556657384731520058208382580110131742601164182999989119272118658421367102380607828479652894340036847960494839181698100678369148803878907548511813780732313855349028594386876071934613658783297556927569199852141861257675408252269357624399692754093748115580748525973861701929249739041877794054179737820756425077648196083565765990689922095961854136476279560052666683722825302389241976427916042452997495043898232698080073450356601683248239151461865694835116191965609163548309799175440272529293883839375446279851339521014567888092619894472082207944658468215879669602206826850512954697744596223241849197733388106844276910906243425330879765651584910754741549856992261624486593547765684616592451004737626837706106609841408628257587924598519017204058790812480299763237322671540159811510178293691359313029049644211041180566684452314606355686625867594063848045677572289750057630975480626959394990014640426006212803587336048569684625403300248726425863666761760075707890032866349901514358951773232901283996102432306202323163403880494163374548262111067961798566095106438046657184732758007610185891336557235054048854479797948239228846546170992747919208746675116299234054789436650219309515386159652385082359919411604521147132575202373562714539331841970190239386180697572436655945885105727841868665388727168749869208703917307514386132042555432009377367251148917773318780844947428659876259623257713490590775725419292117376863485274196585539068355505561430311887512121841790403453986777609027189891386844196204700754258122935028188443200213007895732335557304044775111876003625646421419799498885902318250009027666416502323659948867805053798689700239299486843941698371790594959274636978690851510498380141629859706935360963210530966315893984119493611573229521781643272111979089630969443882031941951465470149303904964895523764984671286342521632560576170810059133613361073444360395782514791961270271839503071725618904597586530231913876733853146100487594346129333546024133816457157799473986838684244950295017107909503388408873468336757285537552183292325437352682151647694916329583856596443097777477033644932603977074655815466562226893399466957414757710536549497857497458587115715973461150095328655944295610921882448659734605318122988261903340231976556728186819192256662080198426905969054890911770026143933666559453106040907485589245091353157267315974092879651025071110315805656838117148843384650971391788321529139343435000007443646700478090740869868684990669518702713264506573757645692443866861163131000743719372806104372382960180195576036752880569233907386026095086787829760262250449348750343271329138156121413233113551481587031000560579451512395925245029438466896047573439075995249677141071243325067065082889279423534496904610197387150638991381806436219310374760325845438627942352569195756694013408498403760362468927611827470832735815445000566673812965534866969072488404239859654713860907789299416140274135476753732787514053838021981335286867054796016811558561060676558211874985996595380371598002600101855885183324324812796954085210040461061252102434105725646859957427293250816968011284940837601389162944778981300089758158096414074373773229620350145159472082304077041180583897312414631708182802488275491415332241355328521955862660194698287987493239954551143758187274270241888101650875210780746254091028551749373936872913764791681428724726965205440529140295010641815582304592388559788026941574058731130242662436703454646618869347873591152200387705357846403068233040198517980839891559921193220832918023546168952425476848661936882389881890419672633405626653244762777229338188532851392919613905080479155174246865782780484507755380009081657338397597802565263884811137647321811660366311239733887689160383639811971090655822580891113032332592536668170090343004244444554136013654773548517628763529786638889217699608760422284016106569786207204114750554332357171003601118617383107664443891052820671720149985159456358785223012752947307563796460053763293630185820534251940818517738935714582246846111569246255809045829702656092843756010482633834415410469223347393311989137342080923870460814871096156882253471917818151903770989912916017514368685057730098801531467498357218697394642365852315267553917796305603588340430221665155507118411503465113450438845161836718260167567044658288246417293678020576466141601369337502641745285283070485687862404447432965001754258598385239218452196048878122359791521256281270042699810258644067045707981184583043171181981894464170892546274341975121704623028206473520875702524410236367335100715738125288989823686392326992132230583343948319576697672488599040822718235368404594977807497855447177960435289880802390235535343738068191132103920721983873792158005636691916955847482911047448806919179859035973028056633115226172944065285117192305753355687602359147818088072636089631178073876888754709207262444517774892229280694192157298830366789642743732749014741973593013745182729142483251098333970512590447187383295007229819148194350770418077776972415652430382185762004269354137322368890793769387364720205976816558163271750160226420838910753352592336220745014576618037916553522009109019114509004153775567989450342191749530220209157931780176648714510478996177795918604174652517013978764847330683361865280004475865950887774643869287193356905149164877678339410327580696355347173211552284120723480856488839545880443662258920357427961228645312607928536584276185545548524106984359677790978537236297898719886567791611117028510358267369716487975051885129060792856707188315955224474173833739923206030891613594722607550054753347904457621759439609595199829133118027970130097513194632983406934696838924024063077070078336578092267096579319066339960981239887079823561070127611831168286465461431810996129659072125552944726270772950291081819001298582864611243791639528117368335637482198699984387985812805275656078427587575546755141387731053524099409486973430396211044066089332353659181809054127908865294271063887572896924975558575407244279274297598995863894268157514560430679711623026256028245460669613964456972531027016288256801736124932142693111902360758629386783139317794360032824416239894300860355982829642631959634817966604024186214911709166587500133513702795699019507817927530655307046268213567899694468989279989199224706761010008884329890669122869314825035546896320201675650017166876575630331305990181879171306133226156034333699068586565352706006091272304255892223408028876853586001122881560070432415919035102188636529626955214277088123254975708493016719122021703871519967297913992513871166332966258130549280214155017142926337514200355299105682521391188831832588912032348550420391517659645452779544201575148638770615641033687981412904171014088682053692264610224955924286114820571583933264311483106174518881773926565722920194613681467755294800013865778850987615962899020128311988290240437257534534503584494941289941110894392517994874092163358933627598238021582183066352472356519612384279463539548978166065181361120110544701522120591653038555701351727090730517661437907287253605504748194209282893002772289733687862518884894044755990398577535444925239001777532782777590560374647914277536983891828096809777454020160040995411082339729854490923809787091669622959498025164897602928114773019860611118352105551426721760765516057065063200240300538539427799140004327316730206182137182398433990743461916640573864869107171950064408780499219559306078987012282318990859547935718961089439000967889922499619741194421965908819511027234266725638874072299289191346539959586068559367546736722996757954406721023575767905896447836485021965775575160854185101620851991226727050799622298128363784086465652519391615080375012566580175540897243924287321083503215014799633602208477520721046871674656752296404631057744026502011833499053715586435170962088592554421686768098194614190533521383980874200239097026180427884515968651093773782998535826311439949705959136755226201973474540412002166361250989949694526429303823853990233576897613476694132563378665905897867215797647103632242549204766861225365052171396349137816614694491392721272784272921441464444974619011884506435358550842296056266366886384173819390472494430826716714770614828535201980306051410397480078958731529725567672711200280735244113860110105796378464022504044136817665208611658109996369128565253989839073891311509268094617973394477337445965351691980449760242996940264446928978971175751869130349698629627710935375331903982815887072447551087437911064764662702239515185804837268778679016434611106069050697815819173344802706978819853759570507118138057716022712812108531890085588970948401100390227143933668442133526622406861080143749937328050668091617653341689818590707602429886955662991317096835120203073382241743945165200475287598273278056098228179020634713894058137446821471773204955408876328699187506792231676134311544526354607397292908130171001972484567693128901988479809405219609531291438623785018167117461925665702287305705148773295003803135663501477818729530022962907298766410737281701273902109341574823630533114552174926144116225080197029124105813361117366560496990713640082924527047519662170795536286698501409333332607370187216531049250747931665514335408748329220229441829134470750813133142210204487729550137881295998365120943352112288950322998948889708180023247166503740409755450657935662727501262156410591258805880318756013102075918787175012822113872313135489383156047972041068230550855588560340154230847807316114929034151088397008188967907870001015170929991078938517887865505505273768242972440949797657892168548326115638612998478541343023320024243920253023575385269856771170831814654810641693530176750607574878353161187994276787562934133446317693707730841701477721858621886974024303396448287324152115826967745116354441233080364592246302525409077608810731034126088952100120126468336624667240064286894116202946988431001503800335710130366133300252445303615974262484843773355571401767993815218813396065634788005506614251539014785360177757213260852354979164808690197113344649668378757558565938474744493446188385952212646607108834197944139467511050269081059901751768224193146231586202701282871782762283562210234193228443036740096122277747463272898486800088298124882364416393961577879319295331100158221445390449955386295996685244200526824217681040748892716416650530764191097922835441656726212223534118372489089314238207990997989132125845255366553765968449104321175982462188167560511600735199896451605918994868287672105681945554394592036305387047776421902717122989347569327338134377945829900442935487954129445111331116864308933858117738472727213727202335287082119087363021255088735806017329301791345607225543221797894906853548461435558199603494432668443926736414547259820846851910719253802710876022303644643518217745342381866580436375964094901814716297083602810392639322776867153795402955367604909602568641495920396959278609791605278987610862281335737278479241394097788510228878688723143603391726210556156048964448332795787637967528833262967099686544386193821593059177412430046736727426517739117634615821425792182822914495555299946513601777743537727728401952805800258437205915218148046304976685460670062155759465689938561882116140421109126771671102801039244504886696086516556389646262192174966723831881444415126781254588385261084182461794617614067040879996753733180998057359086243491443392385623260127246016220634742481460165227920862845608925754560785967100462134188609103392279631401190819468348616652343107281900644703936987558840208557820659518717904440515839630157678763147503251423799024660828075185410792913104070245396506937307370894662249271918571409836921510649690695087534973011983223575228020603838325961019855169187367599545944806513856612114259697516604905525350461399696968684464775016396391524295636826978198220561030239139141044426419441858207093270585190249906864248694431513668901190869264329463159964303160053461257240741065851472225330562682703471575460719942892824553646560886697508846196946838939595528965939907045325290795189146311636973142151419711869933118507642415580508649184546867025220288347160797294484759435946511343900852900897200737491979466459632304183749281231341072208521799468930993268638330876630275483050343282123131332575074740123024862089526956029899304166547733823735573059640779769961039115883588470885612498449817887251924770155468081510826009965087021764492158137116185545803373270784774031871910466519774058749964673945366736555320496969375169684362158832273451841267169826070653914477166778609427570296050400808342255065597302639554810539898314218567032671252607700979989653293727733236532506663307578394806973356817751108966191716807038674715327017743599490817933906668227589968335196718160904176648763419923298730326912380859201541702230691010361025406403872225759206734875285608883280070945190902501333041226691444270100761231802454670698160488758172176568035502963296807802289982489722215990508313848837993556716367890419522632434083623396009118899693472660922988574872933778819841053905456730371853869182342317747926378712541672351352434776965458599046613850354480918280141439433868720633836510424018458202161222268303576162864634999063461563037151731949243122779821262950366165954907882616279912186205439680781020262166084793789691450017201353189072259253740188502532667630026223702689892948587965035928173619298726580584482806885395030073437450556704299569948110258990023192072771822896394451426737672262732675111349279499445494530548211582725106624411205601084919963399439551950780640243449463999429257933737160413221384306195142993533715915285201795101421143068391547124264567325506214846119974720585023043706161442558916942408133065056820832166669634639519896517515808915130687903266999614149582775407634002727525732466642231451759550331372332571311714177089568106870554912639245054267358042571335032184254949540780032940216166348482176949600414100231203794104358263819617213310056754155376587498802800746436995756701580567128648544335493850474624377682200305585709768801595529736124498251295863630544906091502322104908401444529214234836805170394325208952460663324562250704748852712018132669846258610224760954918170975587820280668874729469353211310435800147292100492286179819720354803883204527630678702651872189103900810954653311815530844100706425612604590593325625484046079965127731000980691455706815950068944999472354264906939056863728684672848124102850412763331938442136930070536702417678263402801087373351492499702694857851861270466205175219474510248577081583299959226251376912873165263335364793896227076633786841479578300549728455928381770653289295599378272432773285668686895681000970112738088923795903136404729735537636477817407815431216032196800117013828493632497095439243239267254572519695711228871435170441212168525839674169575454518443604963875851654407611556325092079617518728720969948108630299713351210094267680610626416283129525440056423108765583055076587442582575370663747946200422536151174556523808757187898296638390332732689335506983073079666799147991875431587889099726930899351285428818035013324432062687802636835733134255176852162738730331582753669035334314504974974666874455733571193596018146707572890520713642802444881636306876230127382752295100833539848500008906727875519908253777044173499839276566186462196782198994157444056089738097598449175502287284283276564498658611933367924115860223875053205448384207475661356998154058417359921614606425621464277601100299905242869122011793193842822818202677667825423846547453969387639463010093171256267607686029954417368833014413482965468077132605042676331964667661732452281542717269740323550172426046680724923911589382793958540279167100186588608793202408871715887108463314223305829997337914303189848448929959743351205133732167118017142400845102077868642059168554203466679477882931074383920995438349763266901882184343707770600820908650145241207643350200261622615796616207217548795772929125676057118749358297081228007389340662508510409059671842348868418697021169107236605492582784102444009421119876357352741072104586327658406072126526600696854906905788908022649427341062380069556119707205881873324673616294420536003819824193253805939703181237905614814972271534865202729032836557511837159548739465637318604026916957097591688186932867021066807526156252327670030183342095625668022920681993909734886060969557934676020184428859394227068722092755978951664332052136265785808649922399731568411443092882292595903137715391413006045307655115053420469378944516910659350729188540872690865295343500159568204366199746740978013383223783861127589512602872344903339912574815708720557749213983957315971572853782487052873396278681292152300306105931714191045552288395359457890382870284202290485825541220967074609064536319908525304440649446279796715971439275041005810230401775451972644125793716774170109604437270866111565257145184579512972667688315627390181183642426439018005176294434363542923673041532841243761234197032144038822718633002858627179295436754553823472788487136250586784321788159649756239489437116870096786438674166070887984122286827972721440601468608459804194591120603607071486026478859343242042283628530230548369525665833676911403191878669469206798864583675967440768738445503140051710079008337135812441531238310067288282616412206322438095598186074961298381336464869042244338456429850567169333655176574087971375405452334004447778983457661977374801789897256698383841259864890954046190530805497211925260178162993663311759457597581475616157970145050285637830308874632125179331715656037065599598757552723864917092294290917389617818498850431671579994924318694823516497676153768122558883898967590775849328131027792805435760280773552138076786739745943673642991682103715134282245066157858862667989051978043847513673507559729879455483709627822878613620996121431579699534909529451429548712206138568746585463753843274022315211499122581321285023892063635183637475349057106749609475504831628730956639697764686506657204847586084365425918379486129038705496232608633903640853787010131247924089729260340946484210281595634237115679643188900649699054000075993353264495904974593463715609560094616577666690775600772111434732142944751189542433112848718200618625519236005879659091800109574197070791477582200101477776560149442694675981445674857658422519946960043569146980354931408929337064010012647413275778609003922954015098637463605843117010280963272663687310399418988754795142874843449385092127741223475611905620033473629528018337472650032313248658159693729659542209409521883409241472807748057656174647601727864108351945794007920600805924856867290139418526386375276995465718628213583584495834099121550913959061270158585841902879165957778310967759877551706658596815810008776555716895796583727138351141514539919243274866833398384851637856582615089520541966943788432791236034037509321880407647170051688713370782166947269609356902682709966340335595522396400067462517838271486765129072326098397313086144648639691202930296862764716998817815559258796443734892533945361373643216989735654055949021359519564410402208055837192720556331660186806416594581347030180106294432837112573984145511644141521038630425563567186264311439377555847227691887348058049045650642841713063856002348507632988476037257866807077024455804463398129500802660863911686816932760258185869504067840194352303503824628078029271455669670396292513396315930276081772766347986983718494859785924049303052842854103559286766577633595047885077380549728069743348739611306455031877993749494898318236302343120406500934551911769148655975265355223695989640695684558148976001169335302283860325250961134533785666921837185916909507699267119944155406444363047726812811717763245013774613433354159097210508924027601989909300918215812098730187552946126363818945104958046748125921549934058401465379480380789196615383990505331901449303605634598544467882872018991025258976845055326406540187905883835681467797758184175563721268279403474330187150149034874613754687208995945655880337542514545742049615554652146197987053320070802290231289714965363885789854510313923742297135476058221036660765205202584321507015544379017286615601958467803441103575210333727697839359698244992768542270872894895039134699747170131178433585036481081901467631168164535497121352300072832113114942912984209559905875283470601893941695701962887952024556024243227013724586889379239425432187912548235550932582998169255273256795913626072445979061735562076365152080635109656463558516296410092018876996554543685538546809217340705120810664968227589691128888378050935726561744795888531535836465708746954716780052431201313556797216093910784151581401890426833120542735961999873067909045791380259221444005516659993881643440327021662842384625688589967285689753054105995385700173722609690348061873510314008751188423403418203028889082376659415009805018393112909446319732187015339010411795728843572414469157550596480549436959376328127325866872583902437019058087054183948176983070609117267399272749104408111246911339591708690642506073115241089262762970776559452354223359232239480403065186879458696744182931544341940842606830405489149882610794695515536193951947586125958348531243989588069269858391615472026372405796374576019476924728408251309051001308750717861393306400909236271237772337310412979890863039978572391900180634896445935949951102509204525290543267417226136268358410706240621663593777181644831128792124424589663368590761533130885752853357531213111243788073696401602195522069977023653998403075009231741205486626510620458840639200952345676110223345407423780213496541965964095522761956062620874169390278396577948756563702990138186382555792361172717032683135724001086831837410265253254752718864385939889714207513891990174991366482814533492141975600276665970554561674407157098956030314195383188286747711641280270721156428435915955195892088730863993041459950708376133544352146268591273791770151983841162476516438909340255393751522893446163685058908258981374243155852301766007319655985005109858399731525868642751710731867807897688444362675035974677402977450714121970549552754687115823107726196773162083604299292469006129651668218012845460344785772307145279423817118308555122508296395372490427134583665980239717944607512023980964908299238642215888525739780539943451499156410615201718292585096506152673640372290509738131768893985387181429065204072198471993426719202819881740772534313978777935095448700072130771956333653530737442317050840064869407240011623499173189116421025585633784628131144078828392072611895054402215533415218083400186332416836012710313964085853113617247867024252171238550537579167992080192681333102205331250973691541396862430372429455589882046770749903152043504033959010590547576526263843549577508820424132271771098730044730681443186885981245082356110607448175631992824783102329281716036205775205840483465328506913693814773546938595358994196150377344633625416533750316624295733291602829333572677242274310220018469885639351327837365019739566146334091435425687781907945071536020883084374823908155566756142861099024338097911825237815125475586094189502285067226596431927846828164328393102256778452895688673362912817168560030306854190336987292043697913375773116536922335315300641760623476385271911925865432309986155684852630684589844751838806305557195215833775356382697975898747355179039873357574998792172455135769180752673923812961001946999157942919628704186791989341127077233474572713705224150327857629167741979192181123778838245529001945131990278633188569568982475824593575465569041401297466165877593843382693812460891657121878529453596312247234989679742391516741552243632100461083018950719694656318594815963821407241767798420262372433689115734316597808553942000664295006140968219863878678977415260214673533092226101702792763351048067400787014928010784612300354208014399132737121999635473474266175827086506646360030511004820451338749227991088312224219517729781035267119992656474903811985655869944818139903148121159993856605361435709337224259642199933034142498265556956292690361370140828280316664005804851871757655352663994425288470922316685146076196024249093900258674895747486869384947560338885988485979063814079757133248984301085384413079049306838620663073365317334014369414584204838171690623852046224378576180049838410267914208872998955011499821210502229176949201588763051760942303675513406798562163699254276164119783283150787983213350530883213217732446868708477749953062567003615068026832884607601938603586974194554889246003045027143656150783626116291810260574904081017206620910422057735355399732827553284136537860703139608057792369675535921706564879288428331897215849907965635470475515769556027595521060314158855076759165600447655328053462075894543165422315341187128656105070716326613128540730521738306497236950671631090396001017740428171252456860732694860584246127463124005920276991696628901454958002361802816400242814149659039419274181366007220415046102943009728060665442422730287260769287467370083011122368032114181835261634149737397786030189917240589184244562155973893186265593061879586959902258750737444037143751320552279530113585994357020702422641670093381415745081824705965399132848837645407592883491879225394548996681535376877568735219782204930211194609146174227501463632218725488013727411704989577126073306749543357511059969506356228471396896401131819538027753623766593645756695989978475374845945357892875168090501671870980582842721035452146168893280060393557929704502043495828502761203870974570399633978818738363632825269941624838723995866188596349947910641656330683796111325892853178541226477602075164294917908309446898851993223650418953095353462878868033196282780476898311293020536886865078253967934695816186900876788378737915287548048600356899487974685368445295395885194911451923090673685557078166821475730203739233116790360044303728774850672648623378651245118097580112477442236556898922682496293515847566255342154514932144154675211039173292015930569892293337232464443571330786549787804425911445653532590865169219054129178096338449079836388281644013972226212599441060754550461543317155804649597515429113731632893402665969141079958617035957080367763715298363228732036583732963840218051039989546899539813412245728662587531504775929482286323848148063290117275652900523250768721198546021873979306560311506342981180254723876498521480575726974841629525461405239432997190659022064017568640493680072476227913952323883285233743395848783573623939618385369726366513141305009617470149128488561125651833046279524238069056514095611354326154221122994983914934330996650519780061089183285629797570073814079449531268381811648235189505610409406092753951780997330143469820231781381955776759078150173067925958753779707372586236322471674354788962477463523670921649385938900348372627172466499595095202418740841136380940530767070407149657642248853501426432979067426022180368650291917515024230209514405779330259669057033123342104432796014719455395946717375499440456868733240139261452363364556329837705280789739462970882613062733118500589806984668240394914620392378766931157825193189580049633755627278163076543904704496801196921782663439467083941210771675692169874499879983009176283832180677194281813114137087390558083145158394648248612469472297551566398696731701848109992761419718934383703732679816854657144469332073806774549236680384594973253958507646702234937774122353325495486113161762582166408896876694178142066131500925609356596558601150749674722137953736577670992686502730126136034677666912524540734647376751534989897244681520047031835315843380985251606800858859159271342051020323634234794796813666683887777884956648161302108467550388934261903280885890913435710057672108020039985912431927951600010432026638040506922385049418627339052620756804371932741647136005659866887404456473849528603028405436526520325049273472356531358248901557088188689370247158238019985326369614759285201924630502602624184995205375418206888809629958521280719760372612945194943026379788985290902308540578986082965114053568880413482156814839973534500762694645135043693513782111556270532485690680089968199924740718442154908061308367244718964682633379620282868652636381933999948793547819356090364361292575916639810063684285357279028490778462136702716543327967991646548371768123287708120870484064369324585214006715517824405240150742475491714481786130876503631179562398754868076617358680860101766801059781892464288326045340785330494611811449897616937135684200693601475690392380035750796528636213186357710627017464728681640662412396992633085233572770444032638905382905063148491338347722281757468393287436985531671773249495548731722958235396699742178676032703636274798775489103175329015946091336805521448680722839776826196812184123025596813906142419036453000767436910753337675421827621511189659671848470867486367692317011816208504260262323045845126629782135195479782883765764491900504366562759980991119599562233647436997450464191197299220603869380619591034921822278083736337336051636896505174674243298428457828730948647715865632566213929318074466994166423686724263267469912084528075987226093529821378821462589216705118640746315145441593372517812180998061001845768666848515153829563223076082256294076871501899805454403238741681354963600084231331788852226519888395150183903526116123615837072139445010016167922916702588323520977988648017684468597097415901901772788946108678148935408677880790974994237755209608071197052448822382489778935494282617036035582069740149033165071159601268318639593057323746011162935350096915011860983224749280006564028454133146170235665802402215229823768246562762473887400250753520912162824922432570562056198152323955782516402759880980930778127772596422372666138504622363415790937505569260734436123394425379416536655647827373975406099260550412949206255561796249534385300054790319033637216532743672722675851062658505580628056101586818011749142839740174143370891628060953568744202876025660698212979564905378829892275557524103782093324075547841354409492952246164240999357488481145552736640589917892083477240091251539143549891483096623790490595895682308852533765439452853533337054034759811861239833031780091748965206916644052705194544226739006058145329071956369983641221145873189343928202859013659436890693762596646611856563157666261002454417446691062317941111358601912040341143912439307206866702139114569930919084422760794929633331914036898538046649505495695574267390526365906658947958723771973196378621038458605183901946359402567390284996648403526127726925788532850828389923311614722308970137548600271781359834679892981879206372669518428005161836873462255362918339453306599394160360566925008301629504242405625927825314192767574713808968148135223614516149390845468524209147287983738274914589906453849880676301551078378795999699457083867654442514303499712422826619901576758953934216252079708881365023104749551333471699209327484354163250399756346634882434850745317167448084975751470659657452989150495477737034921395245867490363706103912109311120474198569770014536025855588915908336314122682462173171913981448989088512135970027173862889721777352570914399930973428754215486323731478429834602050578378136041571344014944460375880316555338578814387634940025549615115235780995274599076073671972270373885210843783659457112427245268941531843722028726398466638671317145360513694970854412576077131562704642820402909245840097388336509376720035724536371588807868472137418641392993933446840723407249544678376124129764474331444663397910362418198077246559355144326196570715706108796850009247356879937594130354961665352537108822648524020361497694112666235542669017388950488130797977430323459564752199959854777588481469683710080204781154306615139970436332069330468759155084366613789831664876841493192206667164312041859588726121481757838222189518946752425638444496025541724581323917974395162467237618731603358082934501134977908611827790420981667304257135343696722908816635075781277839631908781661603942494881724467723287597721180466285552757525689130039151170023776372179667751306354917809711533822394865178205425085451225121825968259064795936876011503406772574820578280576664536632197393212053095890297829158809080417490712511287383915535020097063282787637065051628785398362732789376856587217824671725557354262191306320851515433525564118212594181889046517860896733844784190155163836910241908470211788009575694104322433034772604862564190468979815724816085823675417891499648506277100598469737736530908654676689432537157101681479237553602193519396691706704830907840145865920697212184469458118972469398441453065784097032016300941551941485211847140112202947660460241542524530114437974056338191555824178530548140405573794140401354908626683032390697281422994238635847628022777275647911370086707200813243072177777873036906095380247687064856079962091974661088859668033515905300170923388785015939077957658886364010939251791023537530353872812171303060765706252472373605636164039296865698668087908798865508404249193915280792490292890933717779006217714603258247897778564140401564984123307808069150892544224425820344056877653496673706745253565154301423672970745265439957193351347581132009033379090537077662998224381055751612730844024963392282185013128819730073680378913197610805566774724899539307464998508337572550508187846476626013736582834146557884307418617521648763239851583291146887039902145301049277550888167513185516738714151491359203398998023361123094114416210964787739361073850368628001781692766353949030810844756664555450182269281104395407924689847150613716460484680254634628871129491100976054781247899968466595284348793013266799270272506299561719182570817792513263415736618502703292326944849978347958236157127653444133135009188544370682353063163940388444616472239642652048257262261167238510287636639775741942124175703253320047714360832975150049529034035094223712265784916527076369249416043441200853886692163026300786042279548489989118062967666601655022900194852575277007124740113925347618305242403417657096258190609887814953089918446448728334110638796752468048777149413230243978533266090559043434701418776608287652717080697123375398473897674348656575588658965912699574156963748645679046308653307484125217134539978886484150220395645122061979944593463911669841757818060501658274494023358144302200793597052422996742713224097427129573886360083870005296342552238943417949421189953513615797110292081736181116475076763755522085094686877213453258233201886528081033834078937834938077162793931191877174397293341370952984846596947844605852189163295870636566246086251795828428109198438512385827388392331650376588064743104247338480814599278547282347381387544195483737693327199250671791381418602581288068976187598254683224820860742951660365021443937917720648938145866630417690676570787113054057256764476151644944021046352877825737999222438786788624459345156345490371906321652480624099039183748495457730032381716227320479383177792021711076327813693953281812622944786250889230069903384775810844562606546854015062582028430973345293198132789264441275910762784310837032128667011660867522672784227279037207102919891513606165469439431089876277928444343177556283876473941800430071485087173213242994357402683987556568615858886195533475307492184552535154226784378856107808096252850189610729981714905112773362894540250632461935050210564925937286787096623347580362402667675373898903149608279485012122325875007949541143847951206710228799014543954368178356954480610181893811864999600526377825562508716711838343512263915936447515854981240901146873841668209110756498917667152304948752495254198060248830244028015685817504836404894819693316275298164877932636210295037246547003296611069301779112555286820712789873106717798912303834058145311859288982559393489683054188026887816211108686506575706071116804669691632861846549715422975543191791311619191637266108738451283997889061804776626705397102176191246169874422466982479234315008278895537153967790982400009570724567283553519311673196210152686411901412299513802969511697838552516889410153903906191114524976566731063075800371483583421092484744271277179573759504168254119013806881166781479697018185531149986777586040996039004059097533699866456363420859708559179224462748781514980949326394925175466555355979378113057616622085397376299448729301897977378537753108778299868440573153962111674939786096095000833927755417273675632603016689887019872245462589723045575490310642899365883991645289857824585363185223368925559489249099575737956187355870238815685389828466499248485024901302806597781867207022583965392508952014519016591510978160271215550119512177112950264676721082834424454171799423964488769085153222208733516166571868835952116852945690006030523865932796455291256770105948670480856174891086870837454422110567082187674424741685217633811522745496413983006753453550557912495521071501183862312079497544468214170481314994690356390013413515085846402095343458237139662675306155773611370285592121164656450852345047558137548470116064109797901123376614712669490760949300156791835633927254865875644865615357518365446053867235606760037837765444608356516416703578762348943823973654068921222237170372260762042189962179484036447307172098649210313704080330852200312023655903188507834975161762404480999956709303412212025604583121747752625399034029565762461718965515235507771967888634398883935806848670138566922784796542797922890688583274941914085475943165717209450156784844190666096235976370670345357511748689269742208082166003048818881610020844745267304307677052121203289585900697045943892333146650823315197129643887845889242693307828540663814753244420861894280952879651048994986602069164623872765557110236233292754864540957609142947962589316809510092364835621133372852633820400781390885582482703823260989079820547953292806539336847583591937661190114482021412994742698766859880219935656610888329249029747339668453587338330442439807693750212083341841115179810521860769422802671083968314796176765050172579546010335893755624400062588874657469432018415915487416325667917573184642599010393041539727424751480275699092699490854334666385631162359659477247834552858094253145512655679451542038100923957179389195211660372784197461429516902926660824648754114007573677138525394676002707914061021777442697939730443079485362279843356573690017019385681308456626758084478720017862792764963978201115174764615353857920866587740261410271858012401084617573839155372443262764714050015784030696204384108069185228350210942947180529765510829659060043739355818315209254323377885939653918921814274336743750771528705610890784276080683357151123864545826004784973961448152685107133150645887958902326671229003099475116799363968427981700786291490089787523260250258687937621512889019792127159362463904174727174486479508554967485231940353943563084829203459915333997058701190680338744190500516920806944862520137903197824841065751856830504762494697816474545711210144256561265514213583912532668060520719927389226138052136032294782564979434078253602764610649999991683460212590431846536027206393594598886232403366014923496321625959088540290652968164932603292220702205711697333816680655387169473496087827711296964976190549801368179528620940572262405606621154737292735403187089582504038506076484448347780560628496266328368621514352883836825067954195543881770772060510142390464986321490892698971147637479362050992070983107087064677522096459766059860664120051466581675289823829885196438163870837301792984653919925263675477483363890694567330049040823812826456570653358780951513683162429889642746375801758555001673825838316582527488169884164060390215095322673658962132766376158082255094531037978612297167989779169558552194692065081613350572469644266690206344170927419542144913698983561171497925447062702409345864845067190126870668692301288764021391296064186863345304968412183800252688784407602103543612897335128294661088012342063642308382444232171575358237525450066533479791570965328168778490157783825092126963083347535169603399738756043843150799972243483128382160634256353834089604639664481365784456080098706003709344450443321710262113000565240358867278344834661654337328643172759741840819702074118020051963037794446249967570800759321312326191008717357339241286840862859104706259357215580824592745202999328197222224375232525052343916716612908499627389314113654216062067345024807344022446093893513527413037911348169803614874963243698995519855395453312594568410112017394644952237180239731879700147809545718753237064962503618424370465949583059252694895931974896581047715542852451539211126911842603517819042799985590171167555424940269158712023746131551630647282330031858843968098112460093302230656585883771498097226392884773482887717731848261041435390891317082419021583081470139125304012954243924526370883383716891352894543431702421662640811492946455969051440992063241735367876785835712094571576506628209239787958213582542727389946481417021902407443514298689527948187281768618541991218246460696930917163625994560874505082839025950188448833826611138781263904434831642224925621720531713273998695132677981846117541828767677166288392674216945357154623946736857157846093643409714287066260831437455135209706421081376653774156286927042549396577400101471972052118859149972067973417394369726663886003664124757177015624970676781664855746341731359918461572430195747778654502097483402439540023679127385960961023871544128930486718381898075384280391319254134098468766012659153394651248205566455686118980302444349203891262242366075344214105249020800976827590715337420328914107589009783668990634658976648429540412434341997637285582062868169459912908457559903839438783281890478327993888689350791732288287528264142658521233456967385829973558842660171014961873027167135636073447132261222798945597930962795610076751310323054511667530053086474152704090561338701981371556292882685251981496704642026254735935574630096888865510605110295434398283806191185403216758997651722074338279330282596497920307909280305364311554188350069566092358786655355491030562794548895838015804253276828171026588646501199961470979306191202159847349092731056175469983043351165747859923362990675774625974255293013590511906064648868838339202300333214648104542921996429123744747009316484307054456657861192933846902800390695678826323373009696948838476517189277828138827485940784183895774384492812060009115115230604982990371681644369977077747373094481672410537444353017483659032271633276030332288764865748197758948404863975486655945438625894836278175912650332946105294029797683549117344356662847699485233714208173353677235940190420087968008278901631413374317072491890776991841456506501515668527709751708915637479803127470101003787126978493429452832252732090618383455443065823378330085454987662915223246047043740597516194825849041460207902571141575132597278130579189212657942945182114630764493188267208104775421131276054179166667027861721286531489436552913031899337791946831200389056378261058605334412097978810516749025483894228835095519117814441225231809633029402874398147166469306950870328000483059555211562204473752723509501457535490726372715157572435980882168164181451817099182231163660439899951910055721987935525052755259622993023732450429386812054072431050406975782999714343899794170863389000495484872987859416678365613934394187216045508432784434108817488099963774589352379298248497541690138566523645529246438063651922226071132055309382718526522266843404651678243345572989678692855463379524122944882627683997505329084949857709730858868042217610322769886105863243585264123090087091771603470211814244418006003274059948612107191238490691029665896389502450063448889133431946085892252956328467354429871552638312577970636029408220840958974381025977429545896979397533271604899232158968076171020258262541156380054446600639650926330879304346464774313509899154579757413555288264510384927026920710250161468073798070163459331559789136179812057180189627329627616655161114641219228891698625135207252815251367508195801581162879447010116070035402364105524475391246885843523051577821864063046849262234116493386962518496564805674377367374029264973722528138744515314531960294366985222449182115114848826460875636012489607409435798121246995999619748097518173535295461589446204414719872481176463163864442869065310252888573057994329830003946686809951888129626568686697617693196466931510066058181865959036077221994740643238560064698640648122955812457647829733926721353310932295873152290832681379476252988014783638744795611303253265501140600411466033577418655590778676363198153302381318855720001258566346241999530310734895542928628013119860590917880110655841875020365832394560327280830013723611206607800072891854652995542150404566848049788818998642391843370049873180034198526056235833767120571628060994099517024572708014450091519103997831354438892701044757495520504808616146699054806670193251172307711154392246274180942759940316588424933825416611698098659259601291110402295690612874893392268474460242112206213391350048712691110464248869468937912306708105239767045543722676199073244332663018631905482104308644641723598565226885726473653367478362619946077571318987277570217148167376019362531453827576154875556108578659349026622849318615906563480537213745677293682362356616827685500514525379418189961627383104716740111708939930416307395544705698903204446982227048120874332935973057819270810169116420118201392973902294508197140327050337720578535148873405634375066360413873265792906885046375507960764644414078476349047288306566637279027308132462896900531988043047496976640949945105220105956884521851051709342385447173360859670651862904982909235113015167847274642755430096970822607533328330198383666704793310327664406830958229717407898823245384960644934895257426227896914406704360634142485260110861109676470062473605799217997979668441789762128292929417881442260419287423919743630893649599715102963595889212841603047369671715705466590687829906017104966039203612126358961064863862380182040829465794110338607026088832366070940505120461913348943160270071135490981152863701801048351028232489814929262329382868057231725957313022335730075209912332006865303842102496224676826279959875226467087330367222061175553605968708477948109839967483539133833615888382409877499049581287290678117087710404220225697156576412188565038792771823287043732578852770953012502411657770882915413872878877474703624485113614366600476978096475377248434311310489542212162179314855773072853290934017682178066239429541373089307817436711457361129276056634808021708973477046203683890952732569039717821447094925999218044560794248562842497994499740706975002793387483529138895391715876109679943185740394396592762484672336938460042260659026498874387424019367063942274067517267487980571806650135309333380173570860101334531768380721427102145687763204658202259728556955789175147844551608609883768642613531617360326369321847316837752812370620506111612943224806595751378693828458327997464792077461511236203642418017312545528520662891355658235928801417832811429785326282597044927626278630623849160800517931766681840681387788909160385781152382647036461607898034858064393783300039359437319079572331205996579753869081027860010628168197823253473267339066039645190309896932405253647124255112136989866116486276696141943636186173198810815671204974490270130084695172757108782670097776540080335429870160541169117919348503962288863813511257164907189662599956114172601559519580940082837412052804948876826932666935975586586180873942934809559226658645348071304960002202591892291839962655358398230353928827514248603715607084777308392780706584407295255103694996162081382045776091766562222400047166959053457375286148878723373000273720578684864128833362665822748351946341100957148067257875634131675590519780645309418173503352020688959608792210181252403978974467719666662912426540560313218340022066751531919315875927322474311979760155779482868739320435811535038463833111653595164928775724357636584853472578689846517541467064043433542267592086461103496056074556663515055841684616402873988729094057478543116743351385041784551258433688758995915920746035573885968483518213170725442540615088135743240810664087290268913936737427797485967370212510248556038878077409680143329291203514925042579753494773578908152304922852536371488870382122763983969119869274280121600640477717110443706284531677770087159675563116131402668357000249274704962251236700950111283823394990131423005259988924383712940052448341104014214701398230905659658964718679678272507853670794480619847345637910540608851727132510491223878218163013938604285129890728875332769984259184459439765943124952042737399440168133949891018812309460382935606608415968232067566563489697358057612444341921894173925844030120544297283101059478158279449957778370168365440949109552378664698360154175374804486912725617063286314806748019657767750827141828232997274777813922017011101033857543701088521084553136106577664557419324426746959151941224188346649242042279703803616236887201200743831813967361861463972980159412046246594317041519301817064377163812282645989120072533163391097169661987595095106569796677373155708609161937429323152922064059840016729968964395845276377008206326898073239983967897040951082907723271353145588196038352084019311727496203614086538721065571475090662005295477610536900576602194582861753053174944022929703159719482045365740730453014324517462061389152574633069949411593503966962803552498943113720879159193938571921019922326773297546059585548349329171969220896371661565612550115204491333385115776073745661297453989280706693146697248467930842074102173281558800643933188631909000101197893520360391514123099057988453071922400049673127723434576030672263293461941098351063371564008053657015448559221355303040242151156062123441570559524937668654701288605734397129437886552282880738154950537678674597321021979926522688341252159715552847543600342652454514855388960195252305019492342803372957553591143724017701928189505904741047495547921807251489710147774278784155999354789531993729980837537305875428848282836416133737642784374342717389993642121637083919891549200227826225380869791262037878455703109089706297329516359324776082604908309618754807933823841027817026769116962150913196643067937890955730003342298278132387931279142635205371435955756274098903657187161521846428034764704052758817914169344506875874145167416592990497339596171016628644773185433107935940762874845367003787501583851842419703208316452310471408507587662235356972539400860197722704604397769124792997840076596160237219832840413633249443728564604391786002803923007630849509364876306985607772788288059897623031359874106101808562550255301141897643809183951960981336031505538089361187934543954573662445224295081518318688016653291331796788011485455692231630891212293253369697098143668545731493856347315562273342224979003865159625601831406722620875410873822705765466176115382681742090445060480707316716764952345558901314540245718536724106317710046505145487922460989014944624858232586747002849813176295420359062871004126217052701506936959107973861351555141605581433987052163840144899073553691872999579636561344136857688658297258652739705428518904169030758913301657060532209611384088470374060450434700943311543359786434930656204648064954074770495625405581514682854859993208772633922945091069691608365395670735267413697327667491458769400074327675255718987478172203570465639900184885498459133306868729632256797128399393418953159041242588992614423877485666560373419920790603428168049868892894567222742190829667804170864086898701081208213022183917565539788182484667296445630205552303106486905560723046205740274719734701212119256297706654738266223547367541282948653467439292090878320025517829086039847329506276193769570756333669009532856892066843990998404329794636350217923981154719324147615487396463435464214831793429352338994659942699484225393375190266717129634848901415551317621645070589792687660040387297420377970974471608397598618922525184926584018424199714811903122763956973012967062627769789732062059164304202091181348679050143827794637811749594303210949683102820480626316640679375241838013522539725100822501608084324052738787579517924896982041218651784781370886585265225985270942973524806373511334144635790782185034729111352764906709435597184126129532110787700704414592539888357052109132792320105721040979209764673638051599298172245902910342391039190104493948712463569490877743423910420363114929411374840964750804244311026276197207253301565224136190783297079658630525597975657480985081421890933583295725087512427116092834876654047122661395727323142618367246238628005035057333425683129486971737472217666104083984853036634003163562416276176821940941352206982308225430918790169752019798600673831312644691493066911540456629038783871098796178266000075321715315237883211688110024550056197896826294647171575323903529277953392324053615160081277906060396274712022883968826202979175658188855667880713197000023830516630074325527018778963121822613922860522766152991738882650339836556368092571420414929032152793056484392054103273288183581098305161046031760845005786059453680190629608454050666485505045356793346650683648897953818189109648370035316156072140267979537015247309385217166031447325181835396549430088392036560498964222324973488850731599579796502905277591729184725924014503627893834860787019413204348312544768489497993495327837135829359660092099829642587599541874065290180521055789189794543405113518488659138622899865266117345094534996265769944850301685518422129034522588010318393935857827525812285729313661382464201655299422808119201740135883661354507698170663246478564487939003140986419955840869831434886815664711983830849188078101037526954919889085810295812576629747828876270054727981884827409996010591105238028923535671658539597957768657255659356057479034759793254400495992363880269243018066370271209149426859223968513849077795986053703756124781167174727557118473736559241743865849791277572509766718634686105607548889934031394902826027014023824169813589339121723410099820776796395239546493793112893101925691885271723758788696709035812896875901393292448887862280111554812154644854885386426792743870815402805022321534419492997932021537570940161668643661008058574632211227766467191378887170362804841674764344702642274632782661845751382884256812675485294241178302915620779621337727558268790661264181484411633099341764221050154922176628612997073464794154156344571985091462659687000186884713022246853676642928235945754678698585579413096509582351064976371139389262557691551008954640077896555740437280324952528396307998252844431329085664795211645368371925163595880070774504725946610606493672027872126968221862866869314965584369255034830370248633963064567095770829948386775700821304552647775514105902981028392660851796185499138137279518000397134876834511931796498307289230998052029945245118773320381098196538968440054159830584898824773730384848412349300784329561933681380816758652299867347366579420430829986344708324603104560447141577030624262119362936200152914668898280938931289281457473373817126879313856079044936996533706897169057275074106337791910195583362892598749717692071539446088495252105942778032344783828400523915134958276007527416851108704699720221198277270363722457893121644472471126089834647181462693634780475204780513721846723001558457822316478448071174307117689875662348716306392947590314715147273255685866029003288951830183253407732698001363797057429678442047320278310614818103433487080301579414761959700856590324453922426187180871606115396503583152759445769551787172298651078690962955721374062994573496028010907717343274403889795924196059124239077658732677527030153881466783973631501096192977074832843737853964862306750286947664411054176261594196231721566118397375678075471965612435802464724700901185675862938156064902464910433110194280981390653673596218408737477441402703939801408994619206578288181472219357027670237473900556603568854069107111031298016030158644952800655994151197657658322578548940221124492135746300000369893704060049884979059399642703906957750896585635695873249081385027352247658455130953605568536945470178658405404635193251014307060852646770546367689372667356543729265072502170565853763817486888760803580160237429682554522745364170883957227053557806590253910869736052324530334506695258035068376685896834112368155159348864546308607958825584992394295127079244661524306567119550042013092653290332937201299823956450406330348926464765489320319691236810593589579654420541652881474665419739797172817266819619222848270725618544520034362060056002618925341511084706854705746019119838410979185387494896218437778636810142431822682845808303783427448547594384148897591388179888075371930542697555609463617010633827419148260802816848365407580343079431785566199398133091108698176937956201707467573683154600283736597719155645028816016170207148212271698321696441465371877666522956700801760291612129330100871823903210885586467317302360349578053142806275488009731763786630008619871337060284945079535279213259987408916871678628646051187636846644808602976021934621769894203725723182512920420634575714647369998404742417992564080187830280506490222709030947894895656844133692060850033854304199444117561283595914206765254175101512962235800707763063440715526694247831252065315515955615802256668270081905007876888179720438508790947753273686692591624085014566682268955553455541939373985690125238985294498720304999281725538442692732670317025683676619947263937005487541458784864663852174907519284733853003919648097676274427067333468956663306304600221703218564223064327240833691176933126671611452985825080644642675978705353192916996087574600673216990755225166770081955786364978462467528032435464807649872759560841814362956213350682810337523791580974367504629252205445627345156638798578916986010832624236203160474398326710367076853516378322625101878451503177635100666682539685436360232630852216851530500902576329847632030780470912586651020292006516016407546751518852105062681570383860389186106328445678039756665498674025584377933816693702519937349850650870159781779039745355178108558530044832054669657080414640844384718736370316594055644379790311208947744460509162186248173675195170308232317590008070146201843709515779408104797472449610637017403802581079257859296206720591045746806860161378929314171703351126670289426276294356356389433261626268434681196502554646889008668653079430827077924063422695377597612487930745598632380280902631591555929767603196819522715647309704265486917304119190844549859608482249005814108409068914197649781385576932697026852123462711289870213828758093281411500843225714884701713239981806852933231523106069782923577777399144216052166726049138289960428370579646318825975341989021305094398374282916285111248566075170267488984709289353682606549320474598988111392204461646203058482574621459258482321622866591943946986773580833179036178562487522898989712076786374730700758781813116889876537050982006808724000821433623755861873237032258374696406279003750170101518990531835226175081919699423734111840130810376369458461231373888592981406139798865754780110852733262198090915411069017900891015637176699831034286352673396814489446725487172140617343825655932410317447709005196406348120738398192204170851522404364410377536924823867668560851381654397931301090963087940872680701952147917590212084053651864073945605559880554364308792716598298373958901589777794078892797643627529103726800056587510390269544483163277603466263770868457422267851673078494077437459170633195523810281377438269898775267575572570732502007350359923546619047199424401806569161823769191087778288428954618306353886414416256920956680754484099312406232839311710209847578172065503034472605090069251298330401337650810002074494342656742591838217243437045330984124414964252599989065255123923224055394557061112544183292718156139141046471538126971893451835490363608337700835204275485946072459550135295454579915052579403319996882213650272413678933928883528668200566468944946500789761069675331300559337274301981621740333558618208251945139762958272296509144104478797617151345327788367267325821574835765538599038515332099543208877619280774977814868622114002374795711651797044925856657658060950791374737037543342007090583252731551123663472481531025549638616239028415298469035147273794905236454690239087506338910228017658301295503940996348418340762632097490008455653619853670944985805026883583626658398255729089435934414753125387925775146748536592825152617610162032042009680591601771005497626414937561468860056038242934968905153509777699316313021497434996566988017327517025316784591579935900666036113260377736461839542491088560523679074987080886671193887007031779284505112871038279529686106470460434867711682863463918583491046720374937767767888844601060645703593005604315696492391951897032883640083016883750887831429687348582082665984921708295113654803791451863116913059604243251308010825829983537513647576394300466793753802056831566389479024437180577957731376876489918256250047747447202405630416867437163493053518210685056931555318913002779453276070580348668650644032885911998300773282086752456187868988133130913647341288472650668486507384671464887358076790608257339486211660537293101978724194061667823751821812664361707333193920280535222663306391968861840837837650384555294381328394154057014257721455765002225563613715628494410843745659280089691835519776747944607588405910509306036171277196063014014375282277541825285402464203022744069189705017518060460198769123783671525688497696105061880614141489621682248773025461043001969227095732454498953485685803322707245882968625843935918721143733651724369251768194250109587739571437179258865655772679225521566984411022692568046145912827584666217492694049881963963635503749344204209507844495725178575673679881165341302113344178103237977643806152177584277572905569765529594359819143915606011543981085650332832121282723847725429716492350469953942423990737135528921494513828831499314857182913315918410427147503232883944968765428513085363516313793826980842860905495325158010988312613023022985277064807061767625053347989920424953345229866058887783136267987919204676833066743107113629274652420417361829000611996057262803465058877316842522248905177532494204374146993655636052793618051059731188955991992630418435811561089774816066298423202912525825292422726795317406276059220604605108072577427810236446781165082910540903340993918374689408347141234910284340756050969395893015932256116848084154202278440199889080019155552979641314887464495170646781015460077830358447166266486157851322907806722788884480143963768227886653712318096765387665124004580030253725444973377422263714194495785248192799056219743172726920802821042033637111755163886326282719715182457768331887699044476291149481006004482057083321478400204857662598647194835001014917064913482614175790082761681875280147718386655101510247385616578159239783124330100463197826764562976922986502900657625137837800654119359773562407685590284562338041034230894260494011434124907598487058045657922009259017897530682809801854346232497413666856626384880102956486556892505942662493605249187170436849942183629522838076988288335828067547095353671609184293807283633688303084519179112057677830693976146227345363482131494599754831896045909253884374101691924835167592901574608252268267165338959164167050880780332438367241696332081670984259882940196935027640827166355940427857506659097115013403932097178784941597823289686695654445839923800309408099372035928328952695538142541339074787327191568060463129881936715140003935849142325246536354646234842695364113022821701949407070597814848772366387535087179054817642721593132866624983943436709483727594248705916719242006980361170407652705248241473579054309348983411577288517789895167944645950533753106829247086384560801449358450720783357693181921571125195966793244017956258721642579838179942308545496925015264997647567710324324565182947119361724597892873842089073063006714871030609330153375355825915041395684269937486941657252088072649793486819920945884989056922080307850314915153585958163366860927311631309182233514271379079001293348369359816650703768626980982674965756333909698098591858311173737749683080236943956890414621222370436244312624579939442057695085224371565320788566775042405192440376290498802570645132863321681302083891360430249247153789924913177516433252373811256249104305729460070579199898576059572700885326909000910389158257887111375259160048001371434739594211130784484596254780489556386476973793405090075666751310740533673286960693966810830350611394378234618670809318539186894926592549056920072965261487628175853134724865017417296811501282936942247927430242309724912498307070588259406485147005397860695916852651466898125446193680244922216970577169251041723202293651595319555094526646709987151531633937016520184128065534788812528358568259372506769469213704191920624969288479297140420654398651084595925854560138762808354808703303991787051635883137351775547528511520841765696469428437168963785107817101508201120264948792535386258548011028275254543353895736892270809719576660131589318265799801676765540702423129220402324264861846451032977949184208519307608645697217406560868600026560977364104232985203097235420749003321927250862249059624627171761469372128766734112068736466164454050151314872217839032667667390130314513649224710806209560644893649529625599809640927865205496418525287415591446555465009572489512859205558823531070922089141058624933486053524114263988564132264289904280055771560123148147242561575377324818992209139866146252752528205215955910349792319557677806488385183411417997666242546875107041458667055118957506598477623642448371348863301795862500947048023156817442153920851587389900609631371837091748312995183484249264618288528942305156095338328255462360514096814769033215094240457578377981664788823532139985215172294763401356578210840819084004449814801574360158050340451834458160312058263308035239080228145706612574182176301437476057824814101618110957587507272501088112505581699277662872870035953622135300652470807567691981340904606443079350817279404486404556564956235794336519766626778436987738828171182691594436346766504124191236392028130970331651474111132675365813716392611056149705351137916695169345722315493281559060870415209914781680524872596725415181107679976526546718547606762548713987284699474612036838430049989898375956411071663262584628881044589923726435250431045606389207428982211163482878893298969123403202782910002965608248671222562515959455086267347871190339268330039990185325522327639449650594106511066546749017512952359861375827368528467857365328675735470179384356388676341417840751017141243214915123944134692902057342494517232482517549351263968316925160004556684929893780939697788469785546670699898850711622403625730660021407991571776118349353217551507046698917184084912984747950012945671849227493976309249752212738377595151081671772532265116073399159775353963042992150494966204181766136330232289091707539512580866763158558326949319121087654153923173625812223461689910850485335927482561976327726540679036859208884289246238752472444466553590564493706653341742800043496200897036790093838111722464580163841077354128213694377724132281322074750699698497634769560054884826820780830254748048044040696317558970319199618070257030247742491175582292815318249222788305557984117167278064627750274262239668147814592563491435350485748231743214594584981064292022230461760732315718994880299104295292007574254703181332773176332953945503773209875726308416934763667176346202992423509911635391149171016186890061720037126057344517864095652275061091712581409864867481255902606539008175283040379334379720850848417504526996208880670245266445506607405910048671265770030742480997477389561688375672270182896871812884119019016726095018385357995013242392081152924022149487403234101765072679997448030621563719544504441576748997124421852368012614024541944848460653303190374565299483666132848979782922761215202194269850543250910095953616917378133614788287853025698378795275983642995784897816594815978095171982506325715400605517977541072391520919966902653623673555799761829142693004875353428056715985914918393676721488542790788929420335429357691593226057985599982430308349404337381768435908605341165053367325696648999844861131777853921262738729447762587480720907623438938927595212781611060154760713971071941104709012441410663213875474429286779787266103157149252108283015567592628998025778266902397261722033662934983119180029805768274222845492025952488106455843825722465959710819199592587062822405344923927341320140292959183084557276573749326134799121632306618547718097459240260534116882666620340556923524678271597479575185680142518353118507841298986137177970803131578946622088997579116151861695525389195261520135477124886124543541551181817822978490145531703871365168601729206995766358881656823592345135125400121048037655696514304041190733263504230866615864233863404215291144133512046974555103605731451584095454351171145582723907116136789582672487003573337093818329255915188219786131739223995868252668535567632383272839839499829959075205757965312361640281422081125914998491606631558266158751487922197658481075651496594006912739132706171211241993120339621410995568780083335569323288467519937494445842185227400188960045048425982955514460432573268825327428969476197773072817614270396541282292262180608649587434182323787156377980348622382874842163217566301105654316607490994965877381799467742004468277095338583278013839744833178644363416220252610783819767310438440287601458764517656732253198514319275482714781731302062396339448948184157399777485294373978262910530075724918517990102957297364767345200852809817222303541776591651527689814601463610290856011895172717491584007509559357468672562100459346253154059730299947454253337371975035097227943605602383521470565059966053613701526882053414473805542943721422434994801485258943668209407765093625327442921633294760885601456128163720009951616225294395994142351705369042450785803230451940766512576488927074959503235570167566078576096929064121571452451090549313243170535333444348039301110303893127536910087928784433429402355181420082092143371948354687416835433030075067738777092798168364929644622372312460939057333322688645480752273038927715911228803463897451725623430808358845299442758466642515101969466673758739221169175452279415082312433594831455900666886743236881131985971417864249399209918164731571455907607515640907985645676587209517466635879998616463577255692211109479832587741698312370510401812925795943223401134932022116390666343595460456830476272458984755066507702626828887937100309181304754743434473503856953301744439608037385735822512962254255519373560829149651110576926454077867951199522224344951126729951119305287589056359063074227252323544671472356739662683542612387719472400069220371503628633284550355238600273865006568801986562631969373635678699279097081860673363242940764935293521666891745763115818203612839414888451967427762923404947031053255391819882376432008766430208183227904244496536445227255887199204513396832981354260856127502788363146991836841841169757502760647422810980875324150127374191676264533290665666156945526731278918922203013540670235232906766577890289890096629235691245706254700881328872928010548006282097215233756782400632281607266442873625117431158421553764846625075708840840676271487129581208911149775814746999789901411329097634916777999722044059351654008655431351927134740467510012253537114152792484161144063405258640047522566297942479897652736864609442490152759896951531984497105365372236163718399607384483373318351301221565441884724252941819634769793010422210251090778335909246783938415853648509745817796242519780146735135091257974502075317050140545140542120252678633469006683539251920113270097897915798010290983810576972586416646565605228931063766551297684906815099064648143757590339184075272510913448759762331547809507234040634341131120645901330437221116037030803068977988979830144470828839240011210210183908276620835424093543070697897900986539892164140116567711239609671025226418159116324556190395620836267181904059825369970739068980711397845917938013064295297577707631654047183528914849095030462870993688588729698996514662981038820629753463053094808215603977972223310881323629553712827867601142164793509221767393888846845500670628980134845347261404515549393215936525825559590194064168904352613907698735144921807038200392494000033976580956839021762942511771343537189944144109780802066311977762661200342933249374785046121341275993246865704978215717886429362036677245975888225521358691902978998317328622987810388753829930205649961085077638624862649953531341077405970336961258541623062552291672936869962130019359113280059951873753843569471640660080692544334671615874599012577407006507805373660058812145584543918320719087472370957351038100113724093033816253585076301427712137606296521397710326577501112353555977323353542283153292992484372531777999178100315911186355543460034587264394379267396883424961870139092185753661286093403971380965480485857092219381256472795332157391694390649215434386242241866672848963178301486159006549124853909798509359643806989349699323934184315541209702939633024926015976684896546251835713706532695077904708787791152968166366750504770345057680582563112985295117614650504700952848854602505675388062804928514489362721287438676259130468353848632741714978740507133457500115238541326219003997447667386277981378937455681219732674270204743850967884088235261056533667685298897907078930930609889231244714291352290765608566466740891321107815607691663477968416112668728187549038415432006944611322292162586580907209257717115498962821677608431773364663540521718639862324510551767254924797277062740971947927943382143760236862424586865441009271690140627515454346326713232774912830742396397815956834772721534798087851604388741853551309950933783441691656805256726339028192616249518615775996327143239224807434339977096716084827047990412528865944838216775318583353683873131433025720994866988657118895824609586615573313293974843399883565851365665833896270305268246098781490156533041019956539741643995254314649469244884019199190910810995311406815947844024250443731739355219659780079847926193011437176582498393524557855317712187905547243372740202849225092314779414007051945387557201982372315705355398158553671465131138524419869967224695871738386556985073152626847838143060815124851409843590978482259446839125217007559500648619701086485278502323297623895354914773000199709358220035842917650479971936500457166633549935207059409033645421616014277445833145217451369862642041701846682872278413694096943838059220682688434831466169044954028120506834367194502431668914712787845410468096480238902682985344907619630554077697013838807970070272836927731919579333390946800542282112437493020386104652931142625192666528853175502175600244969876510771883555548792621971889598394927771685711912586677688748003810335037775888230949432826186175741933378097138116295771988776561140186598802966413121190887465475369921269857690061490255449054191632592118086630872173181091654699479725683771467916298277128713085694555418180132019814801228769911201945614015087960156382715467619030018463610046523784041822857807544847734704939814147873969909023905419736701134134987255989310909265940648605492701266120791919654997196513374647793317918061732513032350019343545423782123637124051489999866183174252253355565513618683588617418205057035720173130561457176020756404880928537189160811276762279533911449134433632063378694487002827328806758528222797448698911924006197643874008437073591819207541184257267671708212580880867169903860184841676620484618650925155027763646749609885683991636187516493266887819907308268458622579520520055869614498989281197076044927802335627240029228576479629233399231271653822798520030614417991414097939230169858377998153420265151026110927101485056481903809339735780070179910153063791842087773998867563569492403603580624695642400296606215315996912025262733849454267736689048973281391832168432468243874020268263603261653379741637429760882360005057004534526494662060857401404224843064823594796007032899894937878429546018367993070450814332737575782849214687940191830631138559435110909114749409914319640732136976256321634138427590654760676121235032414307482176178229022377998614166081785209799428038045958974788804062571067304254854213289501657025409140018845175871258972810895455324851981031009572473217534917670774810851651071865313454825957050837219295576431551819126570543608934219807586298927485168936447556846307628469638627878951107546587404116427376541034859779028775038763363130241480764453177867823166885697913207838770853752411319792686797167818914336892743707084950490655135995393773371665128508118198905011975027454802224829710877656188873304932153765633506649306182398285401457895357477030344835413566090381938338408824847847653811852777970337475265985125588500969822503247069546032228278071607100008319185861836107686984303217850631763542416888554375594239961083012566950905358596918179933793215863715960126365745515997046260490710457416199397985692237276094028309118775818065050367984978303189004723024321868768396512182435985025164898675028397619023066607257918060573699994767149096427416705213758899084216800658006573785427209774806158723168808452935536761170310407369177191928855187461265759628203347114900927572220582393398516748232250557131417755055041515791551015289384779310733685293261690820251254048819202382069316350353076540050821312982116582004721475808179916723158130987129378477689577179670525682247035533756904640855899165327804343480152205852059668896440164849010072840786550177038848599728492122444813995728014432102434862696748664069697594861940591326993480630481716396573078999452216692704131534928010370624302426081222955804787790762247492219793489282834623149235509730053095612742968090668438462729463955187029606376711058479191686763754766793561966555855040696202805065222686901269781787166420728535497832157409995303155397776704953663687080273140789288372512342829541709576476644634158082858996939261055836314854499937945839536862282107270177555181555122003043781543301828969652088174438670062706280534059815893809528207541330741935294888621879349478421509695343748702242576501632204376408052797529348115880502396454761235195872968105410005930936428675701177241645790276952948948207348845199994610211434084642171601996570030976340309711961675730151912740484391670374920412679111386202883564095709304055623285820796232917847784563627999635074102773645646849315912992736091982929580027313218572172911962564828202540074711027356583715771087591103587600384621609959129191516955851102421717883176552030940228032915664094139163187303478287082981816699095842313149835703199567392716473712543437586118494293931453545872637042902508685311897482753818517436817673771058361018421506578600820797511879627621515080636231618184396320761823274699952605888120921242575918092067828261261252090914563676944732524021020064175447277698291933926319380752400352242493211485337739321148088775029825339307223421265859469392010395882171516526505724299727503657580345929018818796115640446123372561734631663889627350514950955053104898354253202468860762133086545056909469235234615619670692335892527325121313778345665457233193144209130333696116733644921003619011489333508618877750136651296750635486322652878903060504814441287926956027792424142490643741492211458509151090753536711005984216250179911265467967348295669659615495196225340249643682441002449588589383905421694620943948485333414064967259500251417212387399392932136249921492542371303067168367541275739484529778715594932157622344681307374826132987683893637539394216051404727063710977334863608206459352488447656037313152159263222522996428023269388752127811700963474998071254948382029512267466377216610579703017812448116719201844718221331270439745792878133077307343627283525548948862544346026543700890269541948890534929009363199331034582603366276123020527212952107249642395484064420415418970596158196120660649989878920348199561444342327559807615617496694114645087625523633595451283431623870880606918884487502832805671459595519047314090879197270535829657629651139608695791205002302670465929017758889245390593499753055224117942502114576888097466162808833867164693695114411046322538090762675665262594633680005165481537585589119996420607116652149038719108267828564451725634447778815810975683930372847578756916431095951586240129964611032973284251549677704050199507379497172932654690322580240996949838837779832642359046232505427866456340766897457694795363959972077437824415299448112973986411721133377725511705940258135469719304634077555860217276974310051790310863642522347110710875283606113130172650357507121200863698724719286211690044620838673094582674054859404822088157276579730713240257963352084875086266100378544115123198552478371084861574149520233620471689309909529179016396820614028717599903347168302102938466129799370380008713312080989727748868333447013070317405112333970039123108648516055871690250884775244690700801498290216039187555731971932723555548793490356917153355980113868180597749346408486821696344994427016261719965729523787190307126123504857911454168808776119586133821562110092339514516531235970475331729225160580304012653734124728167010595209202593502155519400566207694305880025078199294868991809109778664878524510509178114472143166875081900471538207565052922400715753902505866565176456916850580830672851764850214205250744208034218078232846789621320004961175714286099767586022134347987172554141999848227393511058403010836220462097550082802158154923654711952952195528342032458640551099463405600378520155749151407053863628444045385353626655487378951340154987708102604314111761609366633867737161808003089554732289498393570043119786504228984801564787824862304591005639981468238741170484736069641052809519815049092952360609412673205798012315514819834678679088851541520094276208862638448578668665384721652589541558175680085100908197359377493444944489205811731661561555251205163850796941343153737240565621930772076506458977514606748945126283087359833346365756015302767567099991125169530263504755540903160906257473290489482852187774982824625700939906826690220548196795858744319614906161728607287179158595685727625183924584283121288586705259172758603184710917161093650163110101190738048691188705544776714746875653198187980069805595279680567207546239309504773255392615335913642581748251188942921430550928040148649273363614173607044765435781681073720223360423070402809121806213832871470066714354095248090581683667213971392626371293859084618689602261457002442358057201349588227472322443721038155772188799989040778820070071031752302331039462334254853947972166569827721368793787932727201873236081801840663135069300176293425609324116980923983211425150820107278890932527193921446612625648465340841631095309477178232352655385398088559786306339047056863294266179876937369758631697869885870248422368002803389674734252841000201416908525288279308514613616566569327669086634481561397930237701513782239622679272917647319027784718972080482971759998794432687804419052305081298097857323542012662366149366795788088158101370032555367876031486464240909321102469652714745696941034274191246814187324871562714328155665771246620952919421264892329157195298541398939489112816983136596873756687000441412735176004489595743729682810876440754983526535644781908216356683250316479326081440596192681898653682347604421056498527591436978736809471471479389545893648616654067722909206509952524701992387397636124430743859037372365842549050981350086270144968060889125395872970636788209862229292999498855151529714145085075455117982730272488146362746865963266107469137634152204855005667447714595983992525309622992905682757377644811363121575644838787679854850180279371805610859793831540483636005262760096804343968111427870429947748704064968195564188118596709052855807560082033911236629397473397621722310989351014829836824883063871227312789904653615910164192675873344438698737197860626943636136662221614959985069620178837154428196686946850133703789919306251153289908778278993369814152909984009618917260050594005667293050512376956585726146718990175833690225285019968123168479129576162716661765708707504013665136929954331569857270972322120251774161633175841807512519812341350754562251893797700599859836388948573964575704076541390409460270437051836269804855516140729022568553488020282565709850206369737862227914260111141576023196289480334062315504302343233434399013924284564704663761292496433136134112613457295446302263830727863934055244117208244468634461431905250698626773606580199726067535048837667619104132833492851121331788983148411967452676880754833638458845180468483383726592130895048595583245453447454945651376994455177877440619920655548759144895831451523795524664948436215799251626761687667305611975123180695747841222985348355989494351943474168316874825621783327293678859675159967980787050805288696943715090304531499168161046874042722744930042935948498343979858277875379152293203274227107684535342437689677214445721956874500863478177796056153437735535268038627715802640624333194252754693761922188195095076978693405198412595356356826712300041377424090412057268179778170860511866031649903250856397726176378432597297523125502928501833885804621439788440516155578420054761337248012445043952753344135175603784222947798160962743324458494689675340561791355454766398735034003592848038037041460385652170371770461025740186765131084255701422685281033213727268044129589447554982214906778505600665176233834996310793799728008270883240010072996210689623091360172197524039809456304490817327773152918125693994019973458686624878789689959748177387236997579818282041861021835542791072492311486191091093850851061259443975403716016588288259042721487006838509124741055296082977448607097552379533135776874089518765783593533113776748346725696844317046513402383937275230109923620907821706431144175140764712444166516848748706342620315371673583922842122229758723402134944440526015094901789281301451667317826580938815769737832295142880755019373298136447244285061775926359201218535666981112908502838595970092441991660014170593184575676680465678730029450562788717266236948535297515586848172469874056890404910075519281669253905470242987665443572720681731563808128715533286533094892338088180524802301967015692709213795058906807612887255235190830096900857339454470949822475464547784998011796222852112865494956405561874367148002345188226188660555082414623133579022514302082874177653688484768966104947462874107154917040353301077467755657221501933450091712244368534177084978797262974845827200848461685464275112971282792882210605261459539770322372024966167549018849036455122605318662158275269889296443491534900999146650462551449004540497839360960036446966061070307638259474576467718854453430218460592293396066633014416585268012731504259888711200699859522571800980232139197775827289218677949016075338432497969666506598801115753786219657225371313292445641351757909511646347082310663492026417330508191847227056822456748351645720808760784467878301502056881241992182679543156262601879337182250983856955335901729119034138190948322678738681966867439468190803272796736544117936134863481782193605615509491706173424088423327613369660909040807721230712233270954445367234890936517736923844330041323904304280669999724367286599290399571489951066935531637495868088741461004857580885957425347456657359447015194085940979812856513941710096192737085372118002243557771712217665852578313701191273566151143172449715328516027884598477726428804782343303605145855416665836775715372629462734745060942779043785664265331491350222447701255987408147205660059771799503542166224718913166136468440177694864084396655569023907805064806513682044071604019437863356489560063141044177576305348597486577069972195294701418697200205655697515551573302016554930997201091150084388513231874020232178875639340250429279337193541670148100097932963439774012290903239966547871611066803955436390413493521775232479732420459431901890422110379416033316023074834638838406276815403512224880995560002072592014963212742299609213847820599473557821915340997554265330660077130558238595388547422025025033270499669470214007291995927891509478544895140924459140831837528570919226624712979872637755066558479982463398906922045822383939091684171040800848897941671643431859238931433037490781142815395145928537337969436992934779576366941443477589406572262987785440028865960298339670049497860862129776557237597468292405295684786382121813370796450886246858921946709198995658639163764990310688498633922144906004786926425573273758943788016663138318409579719106801486248818402064857824146082037388559841598150338315674017934453045166275693690598461287068407423750624392671370691361982915589649421578576597349328988635217121481132628859729772240939178403490266131678333818922985006178376757673153351791554616850217921051454584456188670945754076552976491120868648807971561212185850447852465612916609166455556311101307394404707105625129102123234426344740072787226936220480935219110637602316843691830295003891250319777200064497275597769620387637758566955419805507726833453643323344902957850026134744585975703119946354503602943263652991365192239335761725702953919477079713515825672448620742205218498569222798596338225687045815247440151641734931963492986616554599846713997869382012887209501626894440017951837457185477631251788949243978533143951876221354877155583363983110096866331570949314649600330594755798317685230617089522764582377325851645951849889583156836811874655699779942876090515664311120071945384801572036577713722878092842632255233406168356568039082410758456129292384534263667740597709864128121828301047330587115179648103397966303393164185107086106988487255340448322680303116982057819329189827920970405168529897838218630374728197332327530682260931627358169396023461185642228225563069253854848755790988999576070367508161127899022276963419596148272198674767134348928482742589905191033165476333845127288645114455038023969725212702644740583086355983220496799381195162020127916537256736918719797541094875856774323476728320919895094576515872041029896822058912627444124071246830155757322360000284942338266592441897183610414894709190912817487274872421720467955575916747778576438816498342024972442211201248622932753604868038120838819316171804355623199903021574449277880954025099111289537609855202843990449832697186574251952977225173496266497584036408804464572262445807713732338044192447782372706170205777722940865301852349113203315032000533894684705335364795382682110616363294544946494707969943200688354860641114082628504155609006299716198951646748215947481760232282023585406641608245802295797849102198499559712203958316661089288326136778288922703650329676848924999250204334554428555796311669263991287088327995514626413785372485920421492091796136152232496044282418001764259359333191211535923075218189110477639217397548138733354006773061225337150089206891221252725166567929012042779902682597562796929309495344739199359941327720447503592332907036177682298116726880784061681109512741523880698300706401440263791954455695203332308461847565217434147859529981983156237008650309521182519226664904386400485924884656837073933501560620298626559913874171946168962203121493164258607210656984743732278857283887607652613545353282298385585746737135010839497332599214786506442583446539726286140745136865891067879438069994163214701880224071977037051224866228801315606797615891870073083379044782248892891631085877938250844856228027725706691768584530232303167454610135282701040289616903251166023310814194143870670787302309429325007125935704512945072631101275813730093241923273045688595092482992598746230586547181333963479534563122548475541209815843124842645496834967823975883598246124390616065890564370542423113005278428010740745135385040086624167827385818770316015175306830525012368936097897485978808223854885826093426934821829002076291436001109856459738026097706672361809849475172597977329103682467923397893987692307807619872074492452425394915185491838303631703377479227665890397313475374373403011444474046681454747640012890637979292563111707173596770326836582234874625600497512844317926409033815238232969251430576589550084108671850294707258063688026300785510441684909491811783180389916307127109046207898210125170604642280112422415549903587935828808665494496140227477941550975563346015186358264283119094835907731747138553055468614223057897737466527149791780680405935826987284599886878716674772343020019410276306932496649597798296025629955280746915256657467312192501855277972125593674837426609307989860758830637078023652096393790787965147296206347745125177520219778603051535017279417323065250942361757710894458527113830614713964025396915667597264145372492685374990377032459188027247629158834981413130015411686975025387126288012421646946778528265853681612393295549355681585432266600322690031319773279481289192032817998205026019388452076166127827631455626478725143012036369636533959920793532181387576836579818057309636626308738765754983549431920509047276398943909012653756808436268880607892791434244189394728732814222405277169479486862406535020020084175984271331692361514467961780531731364387638548306273610840713617369832254245141213031401619806645492663532071837528902978778511596821727749312107372007205428824010234413574108457958324799615857975950658520982903185753213155922571807722481699747659020600122028132820751394758901743585058861222042761448851742536602451772403742463843825709219281283676325967425319395972140914705373235548833241758250214481158974317871214531795888237355564744756869676446112538402433676515478868614561386875551891870823533858179281847398205504089430412614306505991659051640167235803445566355296243371354654123525416480102660188564925220372205161648283091015037988794087794484232466714705580921630716572588368152326531357963409332964192082001706766264340043929325909416453649222777982386522655705121678224144000285141791255854417492719479701925935563365839047803978467356008111366793480775059151608975570226713278240878970181054448323347761425488439581447094158541269149106078891493701863382238166353313307632107028871293618719410799398434566324859813421996960712051442233506145137360962856322627226875002482935649143095342374666540993113617160676539799904709959825926407745926875154033466886448427635605995984333810817334446477284048463350563455696305953940512165400668929387991333851843532398002855295462641059838181473268359149240187821222456573363402922620465691344399097578442069856715924538470217925805913037722524054812290813141646529612291550475562411373394325027491791890732275820343992682832243702908350629730942877544964263746764498352858041601483117738569930601521647850443320062557832809088687555536078019080838628588516452611496112318444590788909514077426688350833781420285661544421747740130688845772490297785388079612085581191917535071853902344836984812134665432710671666478751820213706416992739678436669118790234608217965920565948049621283377524218130252220703454587544114928978352226679408291618864619050483347326382562919252837653196852334885546020387893890980546883361866772090985133729249482892123474186345670445744469759762562983030930169589193905684074814156397979249341137064682834558695047270669585604402929633459508113811586105044945283055554289109909495436049176066832321272404960942343978812817336965506307426968051317251707887500901087469047529271516890665412927008014730364740817582103019690247415005115835343309344991417206263980704401626561689957463883034945474890123157185702429030446611783307409808444325861691303282226957674378786725758141042398769293867215950576087449140602358261740859251356855850624132101283129142106804053822681917277344333947096144980162355140304419236822932433952762487199923130270675817831331645077552557668404941103678777511313511227144310801261189589107805638205958764279198836389722565443174027558891014344141566748465977608944409108044348096417906227717415798027293884983203052761655556592185349971903995986015490840891562738304323378953115100598217912008068604574246221874695140069494800040954836157367187898944575465091848690969056366111353158901240237551421941967975274263484997731428223462763099685348662574403588638502323765636714512729179327857652897492686591319117178195349673872840772017536115665961915431842566693114997278380973989232309348454916839612929097181470184092731695787459754534634615292601953369301982797842926548985855632434345324311438865432554041649330091379889461130861729117519920521264551599736361256451050924392491639436474462445041388757937531236584470286166563731756561240815269898882835225097240040044436246334782546816216864411394213414368825007712672792145458350605963668488083176879194211335662254409486013196495733440151075425267607844103696983875089896768049588776303302875065996018471899594136600831518700951043084978197781909623523558159922327159502762782973481676453806867672645650732810341194579876805302506360012949889263362963790639461379465172047717119766293771293945045613805482878728166742256234476455833878091595038764854860188559264891998676637980547989499586000861033505275518382476528168713396430477577884241629021169140143874695882264193857820185216267833161401216774609455188542402705754389423049507321160869866005667149089003628810521851070601210728855610799986730013646737696928572091088143372857721760106598135865213909262846429886869389857322648295815891138994575407813256880768312395389284158107751173779009158427327639330698955900158597003305722973029260441154358464882485471509710141831324983730952775160254875396131459047034464598178072104935233853647739173782705760894484197935313752923015543168974493700327981104095967287917347307592801700251704372685553381683797083735950847342542202647547349983919182160220031094957558662950722030119942710573931508827713519562854704557978922857886367238842218056085740607523146897248268842929274215267568405450983772469093368808475740207535643605069106798426779943116648532834760332273562079083529180781728440430874550290011400239971485829165341923771248653642880284465205928498765584954382180793535576792953080040906132478901877062999091785432100409403261434468001321716133395964252479493881176604586192376885483463183864510488596509125020916576959376687813437283705399438790413920174448872400211757535993628466353790300511504256263431905117790958407807706305524501718594670377444912693189561488908350602815399898670021725180553154273872144202530700153189581134837959860861167726482836315950507877761559376058047014233961651493336168664281425202145201361944262188646663396328023948579100683891124354103661183479445406619944428471194262042914380973798828165247674475695556877286324336171910642874511904041535997992626095037081818430015823608773321251108569576636444030472694521241987880032209908730020846226607037481593016136901055745220614147731307454965164781434306243032963680060595165702672546151193497448871989651928259526501571256784516115950795693471219297192457686231306311421679843078542197082230002858702904356092860700587498183498836064321004711411699403458409003496595510304037605122640415275752530040666531457111042840254997273286140188510892507958511985157791689192481509003071547472032181046358522034792862863221660729261978233304903655573436587572366887942704136428405498206965277463524337881938976466988836380172154461321177392326220810639493920590211940184917785387340040384053689188829633068529076421222037506061551776611710915303209140787807763107552642610213699634737612697616603965356674776476760550359970997930076555312587434198699837835215821580905990354384687323662350593886674407953944737771052797532591819755083115181594684951091231860093335039392928863084257979048996649218973677156093572538690319704306654738365774725485392260388062608563275140493473854480188621722564349771974778029560244542323466451313766362410215651062852854543086368677634626230252323288823674791008109530854350341859943477052342360754331110961258901956605666439551918769270409279258965952000544453975392486847982039100157690007829334965239126185346014362268688597756454634381668640399653766487689847974931169034427549283319355283172430251036327516940717603455805342753125770289688677278252223862714573128480193172057256383126338186380276220605852733812288637610411338189898708802423846712620379724915444128314378483446862489367517649900457555924608470805767247490471720889564216808612369270014787750060598426345777187717175934753256310447079059919751753208278231981822970278825367835049104094152572613326068529917653603815405888451044915795214341403646953052119521667832227893339918003942479855395868931158800778385350234451496597328747024545900932190582691669599720303207023833643040165184155441981445658465838585366696443325630424105975689637694644463292950305705873915725353243279373103625879750121495924208814977625220747239878258039051121160605712462255718737813162284013839395825743204747328356155542524216272895074881939539366558223532641874641025060923536477937198984145695555775053011530076316622834523788936909075397821215035076871064828765230518878261275529622199445317523569380949390467713267805700206533833484821126199097873089343629967862727041273356383647350235753272407479746625216587851757341413052884866203235585950114374752949354396645915181283665165675777992740970295216982330827958097497932627262506595782478832360272830957652252022617532833643182830556366866050288596609464704095440561012200881908487787231381774354203639035143021370187819296860820623108929305696222994775617198236648355663192162010242623205861906631105061620191669496781510134405031079098440841525871602337896504568017026646781204788524175629409233193090457783629662730567343764285741918417815993885020089292627021049525086590520787208146814725314234153907063730048226289121590556044186440254522930948206122144033878398906351291778523270952433431168909684117408605574671405842768092966110542154223404315972570944338565560249535530045953948113985787938535542708016305981996555153472787679885585824731911912874311152914569159766085513135261429455523239525671992217942577204249232580994768837367522657677423203479798680130473379485397961146623587859222967005781327832800572634717912963727783440668277642178482372705180216840810252125262727538127769224122441671765983173658182895089121535780828493346538926109105819845526025288416060810047159528310019182340488522855089091511940487492035812613173292798747139431707583135875997629505005194586158978709213359340401159886670569723275280405773687117923646727467529127933317205263093651009801270951189046020551578827856635759815169079756432246180515974685564360756688644601135744200319622232605692138648051137193727489720192481831376098240873986432622564227413737398707124775481664904123682641600784901630125949742729121296991281139850755202997094077102806665652418360066934959234064680572947055889396345719556791266884676515138054614234295238540597510382734170987665771831079792799891911578890291615936310800342834477698807218966409588278738903717502600055241611200576759779628814510060895047155124667809204928146692163148783041539100673440196187482250263133045584109236862357113405674920597277779387932083632206329068189859476798076519726724790422502899360540218827051647010218697876685417481139158713383480801550005176458187366294370560207564575760315202251078266566092953877923730758541875336961487330326509616645560778577338461020799705914501651527243963826534693044077906681228817033105945409770538734999149407314765726948416655561974914182957108304316513138671999417830018811976864002918855363964330033863964707412732688317853097032973638097739861877662334017481702926914117655839496669660310778040328726985125433583620720852535222912809980273617606921762838200951059012624252818859137082187409851672649380734855325872538840454676626479953457174756579455810330038154501005689235300413126452471663834650477152066441179972823599081859855855706184928316094726702399962015422183064012652900012558472222806078271597875555438909376580825567194285392289964402812122738447385671760570863048237710911401218496305761965864161759675503511943727252086871403410654761645079819902220275865421336140205937327671216882708900677283673620362331094398336856261637907425828242476180061675807150772379231462776475367181252615706919602157752076231136028714762475975265944308821239169268798840704686707284749712656283889168578351414520833876998277055135082315262234494950563145131143906381962454946011214731998974836680286352089121155153137258099693310335074711321263409249905826101357070573802343793939976136863114729145578379580358502509965485800013737271695739849387940411658592217211357542317783064173798124495903891361564127971612442839748072909795871700223603947726537041153499776709083131296839260214418123424574229770668585551790339344102845450123176330850933736857099938114606398402776619930438146585602390047160370271933384104614414726103459913965357425810025694959131295652537136978629048827795161427712478080162573396926651498792279402109034742634319925046410492758635812529289962713670295375324843836275163675544577919661177742306579095531608842460485082651757675799907452289649439435642241191345249403186570552758488539738279778881849622521327955069852160250694933805559434034272325988988126506621325460798919069944149753377264716779181332054268205602761280492008464526570628786990878651151767821829556392977738410278027769303883281429669891697022325346934232786694936996854397915826966476839540776371609102303039858268848083445197994076423240240836685508440124518835301314419398633705261254352138455039113383055275242182450794961109571035729251200922901564749334063875943159562707877966435116261888077512894334335082138784434032253112511742960428629269922448621380352952997306936299364690621721250189357724857448034091447555615946945017158500271839451855548683301469031330281872461620315188882558096584505523850895715092250351284201956922611992612351188220583292660932881425915043193209549648698223333552016928907820486106053767904997483247200854794382414937679587683613508641408650220383570827479553748147761288927771456422258582213255124675326869828302420540546356362606445811902373327596082488336058812851744624127259857147804716808254566612027931842858303681674480473717273170088229821150332765567299265279940171344794188675406077901870589346089111213970241743900308355333763137005145913849681801465810662470354742157784004550650967398062435420145673125408672921101044278357722849417022906575427180697500581951746028947671353548003467356253841101853177926601451085442052095800242370155888250503120941121089921410508963985116941328539649974355237209576890710125529508932804647621679877605310538449917603404820475221117327041201464103761736568989084773650157315935576921198070042393362950378140871043040003119200903854505531189496898915001105021607024287998669786843344871281621754015027270360698022147681316718493276577770926205043232050333027203593095893698202775116774746225375545743137541940732646886919147208208385312794582743848729442840866678877365277754924535373218178022889944124965804257989343142178614076645209197459952296973081479479628378480767423411357056072584780900606316052713450982921748436167581307032458219696770128900095266948501921483074610063402686823817010221793277579717265550555505858090356738259011301599205569022482164140457214485295322918985461576785825028038657553042166006888688579647090256397635275772014639754499160480461911166620645648674480114074399763325641050206413191712043104180198982249265773203476983240742378756789775996862527853142494148422579842887874458111816102997401023641240068800321351871270595776968771577889618441709787461721877499008045389739892745270834367051422390339947322147452613957743500699526356845344025282084966813764144825059769131334612856752039158679819430368397485523870853901465886343830854718806940606077493219002499075719963024049013452727047450249135469828334632419773725345985911077551733504124355262633660540708998984067942488370464113372770532590638603159628692362496873357997653046378415837958292418887660715431379180465956186589103886380604156252198137875703438439527335610332574572844136479977660340317868858392140766305592406829247993937556353838877542969896292426553319380164555833139761964909250596043935390714959135401795364513128828910757554041782900677149030602492641725013137918140204116970458433133229851573925355812844248262386530080725563762414647608787870823857477020970073151822395939628264016261133919325789595031455326327873311138207832451813447691228929466235504270537257909190282481225819156865383677314291166224557876891201557183612663396692002161132940719441430355360172401692764225204367787403417886404095243964059702824160583212576027937275036339306000512571529303176067667115174666294699258222371690405392505701612564588762565414444869804291265383964833705671849930798148301544165811138034468260165740891692428921119898082024651633241757718066401234302299789419658358309872082080714401867604471647716018241759964493523869871534771944305596034507325732698388602203167238466130251953050301830528244165660554887248546588324312213357145609016660069449644142872555160804152004130685366518053861871951145002836125586386997960187787337317874798770212866781986488955703555505399794765719393192766017717599078347394610045182130777549704350017907768368344000848631782362205632593739929180980044043673320635856111988475738094966452744184895415012833286573680983491473021028702101944808170353549289553759319089845792619788373444621340214860322843245610910267414472192134098055171859130627023921563495499476194392096127146940260055656266046093734178398539828654353299095811485214204478603893649753835169550873877531144997234289431474990668002886638228557805825427125437598510386225131577598472622705836003727460937179609455600943983453066616174830746540533643597576904732911323822187007191137645963318626328523566294637302612963272065197736079315676301671403427104871247590781064723793047277483613075465183047427788345272059513130834553782050061233312605829483566582128339670660194007329795437716267809192352349571839954382742593301560972065584087833014719110729081270291714148873607606754664429770021563487645790475441749686139214154539423178174334378463236834188674050274649448044175540185176411959235216948479989954942169937601149042043709070054077565818512200405550767171179115625832246397112921207521319384583300183790763681565351859833464943314193542143309290150986370244197863687626045222848062824609472793028671043851395597873450545164018844941992398901746276234805225061598922836027133589533035295629547246506837790338190410075694723031182651481196539528676328452147156120867002018535018035512192636735791919671098737582153595014934522646244130635057631924242166836982615455055296705785930739960996468163086004492210708720650501085319186464526533829030838784361093474806130900992648967247809519808480890025926213108696474800276469692377769725093142280212572616991787951109974658553842088037831078342063557456787222217605050954773548117020539522805057958646904307573854643651487181366468377665361802635318867346987793609228816744301361430248163670775146329613908306702152347522621757944157660778577084941453008610945074408657733174275289094898030273891658000275988782968285123801949003795162341786768339049126104297460409155684292986450188388312055348259511648470588738579446681782692707521628020038873427337509652537138078007566709908510058943429711474833372073205980702491043478808733600257526329546858239586435485497852038658270746533382185691442955235702118311018720678506194666915628995133085767683608709409560954502481274697245782291158056488770922454508720920558390399994225612362841566016798291807396644172270079976284682010657724711435972613938798783350512498669936169526650897339687736464304636493646148883110763878980043237867735161870986845045099866127129052457723014860061444963453666716681315909286915668843538827345802473805740382187786606704507413073857426859664102233750497935621146552448406006102178294500679481330954285607578429334931374315770251400972387809458604255452085440502969142227077840480409907060428613993756413527414623400835646885900296239217874072349894738921647898915245947705411160136511123089070303341718455296789064052975234266554638705136501775498285830457891865571719181392387787209058256293641500756910776829551008234213699721856488602176859080022617473868439062060005418901062244577586021571784939074129445311062054172232285516407526109242537319722791926568693672186679123784450977515976980653678276682873023550668427836525031376308386385156848375351455463454197101081537929703843174481239039148980498304646876845268831967871713222725800889955501061982817926531003397254013346192647268279069031396037689882662368787272220949933529182044688267497946216274095577863779149185658197902705298009583712528264206045517598596179775837098808590840264328880328441324064864640870558231056229291671099467745632136989990823619443111510211840557311414600777791634540779094798655103735619430730210983046254108008398167554792240853755098026749599863179609588788744947236352624632470059712170042127197320991214302669198417468181322810458075870533379765895570238329845639411652701994878405414993118157185951738221582432987970992982529306472107101283619905556585855464156675011186022867038312065317747817364130080454793175022919310931849061336826512791748529350984864212950436669457500092192598726475081883800604988459105604860714145432034408795206084623770230002114714548504965317152450916327933774599285068726030617837346577106418825333633132887226763570655659044673659095280591694764001020408099302371211904273650847058213740095895447630674219508355452239292794548921994327194936263956046612805874685532001095402545240162364581996660806107702919140469322895013632480431734042038761098599997338684493298629277785753610959035874937719972670077626149952257116552755111552484487624177620752609812040160147953840571531000401025375361320728882900340360293198560857135936238184079922716126069026875147975858102791436273943915552494771616360804756747501375431448416782609684182228673179508576411599795418922243397184546090455745672644116651439272887102439088340036106572727372068773341118604447585248024362619606397956376226592745572274539795119936388134360966574022295941232730826540329637360160447820928486012291373139316359653802233196952426903465100254398211957261924980559978193162789300709325466216352024818017910295102286708152281508254916949040115094732388749254920075020904522804191330670444424694198960626669111428841935814781896476824741302211311833945303874875865320160964466574562056966673698199109217976669373921355539835255542154498115851246001736894055667589181617887504845164516690468058278410166468094566448502541773033679921001718229484136310511733312045847404563880354956068470286638611181199290835971819696741476872287347761089804751614519191178281371922882797410973175365960662362117969341318725564178117203849250990428857625166689803691746339767858000787147356927921441270738944764702404438461673136758410974514663194406042153390317384245844068921448559960830369995074665995729791562260152615054728465667803314099966332361024870179843449876322872806316773461098973387310954993865063289537784517249932144033220096885419037085828212634880673579393784556403812647926420782018120875591066813366481429615121506541025371750337291210699107571239092788387033435029469936206149631315032748840261453917139350158130252494241761993016099594513889701489645247936987514408375397487553780192799792074014494183499532732249606317047680696961912255677427716614693948419853682337081508593086516130349199354516329809618686592689117316107855134487001615600103753888694662244279796294312656131308617396315213277366985091323745591578900679132918653489219520956217516550440416236240099223067965824894642411023823500209808420299687519775262434064051431979371362516422826110456448540023668629887497651684055557113765122535208542270760730016772331119100224800246558374655868799624635399103319241026673074731009618467909253729515495231701128617966841955707245954935033479256056470827765039037783851535022213607048324731670012701676917826090456438502492181177728955433753478614606158619476596104331403697936772242209284259054243047950443194102582973242100081731240320721394074111158421227353779830360600283584800027688097392700541783127108154967604927120121975301232670260088572449214396496892873521350002455787247713185255545580092967444081943115827832851995403196787295062538010791101850877972970268526382646369961529939829675265268312208643874788362192544796533054899078136126156033998235006199396490515833468051891342429202625196660734363602141528241090419497223034709906372206016895804332838890185034356687825343268687341881109089175814974226042161141674252448654179548589958356804350584251197444030459239210214165842457801621015619195767943499393731746985611828514692180539302248732498833973047917721318078109953685332012484402221513490823835483417914815874829776292166362746186720135484629351119561656818808426008541375360197732162636127468598345990067292527566748251362766268934945872875416123139029731695415184774457495209833000544522059696556100989566096921839065959139245782898542807074461222014731772008086981391912811270473547020225294300234982113984510516875680625669659871821363067873621630864200525360468268844076435488991675683199083379216568413581780927294653243426835569571575448810009396420965787672804338285617328775209042573965972095823134754892801284213216062218464680376807009629107855039095223352283448646763034397039373733807772150665384354248761738389338494918887064288090834498287101316979537890801490941114537955301509236463412741167314774995380953887000416594348097692207756136569397513407988024667688351924213655948636621684706843713785707982264476487589364281497264850989921072182653715937408287984345126783877243022948720580959824663333818946786283454501833501097032499981161922691768505373390896273810242979310257074291694480922682425350728746056950779617837262487575465722115718408970299430290596749406293497354263288116556887184624611797415301473330833019352419674242235058075136613894610941917774266378437289128836492893359482659376465353319434255011973348238362471476108161407398312271817683994608681355155776495843155091585292840393785992210557060145048165555091617553780933440390328159483386142807748373223940237697830449784915093875980899504436417125576980833688183317219197050332881301265707901257100217130450569220432464144051004793691862255321003636515219718911305837139146988079787754698779781957706125889655981322428837470306605057889807810795164563638647488499000920773148719980528957599738386684835034933100359590065092603750920978219855987624827238171985392941537120642966774899814270283194570738624393348159317127627816367976378286454365211983274039163505092692562659856788448147412510171528711508965216516861167557220556860741874101252067267856001068363504911865790225041262125353947367707413939887057464781667422426883397365136917654328378342331501463258668091684234787236738391931689295184068161366796892141872875838806493260281415931616583173425724562004240122563055543739876985586101842716197519417820371750629226379825338129220285217295092062193665617062706835239260416607177766422065714440519305904979322649348829039264360209390882141621941305642568967708263403475600631343282362958977438825278177336249486325624645202926413756245080540565103784773437668897444082450154182059281923671738347154024824259166055636371765855462899110054256061114901512910011301288213493439790254404656060192280838189140444446968479387405179635978820309048850338085393035471884785738390531338685923174099831236033126460574424049421121762355347302394470037006457928116709872192041975908418503349615824199336568182502944966527450758261245731879162028804805905720164500714351838313933404610622054187191398091045727485386605591176727995184564896311254327886734478050015071423669004987630197243771192295395908056600274792062140300430853371828639025324847938347099653123651080793466999203410180001733923962014043685872879900189401318739694122021341750873620904592499163072264564335770013531475260086260138585266455356533308358992548332356362919374213985927768603882152275410548840681731795855043547177165643220049840669085020672404884271389442160469046626004115432229624576483205445508198240600177870427677155234270236310255787965981866007372072259338648413200966534384029968854996581425746545978995999759068330183112367468983308854480417904676866469840054857965318223232893736540010250672870560536995480297071578235788235877920377263724859046987110868093530359062837107745844803306087565495961392399321722650647923113609974330292034954630512361275716719570761853788179238137189344418576671798967448417903185996405059468165517610085513034688193202651222850702008929851293715123267092304120125709535852103181495988833236015703482430258510831296758203035547402525494996608228388838669337311433216339859902193435310812681195127968063933458499503851725747059045509220178722978332974218911634226647962496531636046955467960517123677918515727497353964335199842497976080598671202268899902425400640546663600764777438158607669580787122320175215858302180310131778714766568099254852299994960149330421071045499853421836673983780556740408235953007774818424778347109513010614072600905137424240959922683686454206100104091891210038538133649373801922928967724039388989108950925407920217766377714322620004225551704455677244117281511059010182268270468853419836113995385170051601239482596865394135752351462424830010172962034006372382552902174375040255712465615981289485251495906774453858026931399419786375384119255892353189682722218680040625882828586134009988599831539812239248474084881597580561479460963994967192923593811747891897643229119254196723640319662697358970502739555181419339895903159426951975157617806462085231075470947223892974872174685127777552940550565279554466713740008675071312412041025627217709040184777150861865598292881112841916266134963114075233687340293605225676616254100230996766773273444246900832097093632005560006126360208120049029839795438317054701436998048727323606626795177242271422221527905878810227738384388252933507492039772296570530524978465181096148745405549728501296417473554879149067402181177996142405636513106406884171747489677660927382707406997620104434862359193376530586680031496377194354804877133132632308997817013382078849662506734695149583580403112032966229577079576988987961497443995599901896184813777022884107752066398445322899762156248748218803668287778519630266550629219314060478133734075328984317309437960468386716147465288637459832502743453820935717226688428389226867689028798249772380225211783739379648744454346654787021893181849607232825580271592085505831139791709139479648251054391054478309007874871195458886190174426856098042657930904284696043429956918225864648811167846379814853463323447988492628715749328437967160490613042780372514253319359967549760131608216145065689041032742911959908653264559452157661188117975217332118520256885077764199948447801641605382526183614549646177491103046268978585627171919778495770850947455176328359387813369865666635216088130717255925802716476677225860132875102599775528454287289695760211127330461989145839644831231831904506734741632666851389967905338273090018964394586906280290408549074296768211438202079706729257393348482477502767988607451100280966992281194785217956839817662879408239302897970298392095323802858818227561887050808153729801398641115469425958972414974374937030296724222697196297792270312861159481766109876176077791939514149465235657361821325455290074349037778699056319154034654891073357658705871227252563280044610834679242527995264593506859680393414565352113592528724285108125097273668448344851873707757796444631851595948197675949020786074731806111144688954647217567520004900919045576215352001841240840330035548861757524260438208857241947315657044519364756566706981450430776085030275997206254889828694683011185508363380133347784104565976125631483055375678018427532900320675098110551597703698629875621979514511040904495166257327307919002247467660021416498409245141430135727399960884696217479125012988745362655634862213820352552032495617564036966488289135844249037396446169508652598678647225168847114763003418861709932891926884553241129770296530155341505526510734185706713388335298214846651945456267064668594381517558648161958453541198812152915305116363278094954230040936690806577516036015078073691641494636429738149044534063405560000201008433512127642181871040678486675159121857032386277241655241077892171293336487006114520486370429449185107876836608744657368438904795021713532231771509196694791528748350409426085736202015990797167914108360490637278726873862654112213076333887804707404262590636127073474225847750529268189484540697193078128686086873251678456304051766451770743588457231923057345318973500232247618292735948506963311220218189102396207797168074147055936661910804606715410509233301633847131682569039145717244627469071397517712409456633936265133320993483975705505014163089771411882148208550550156170428434694718505277528228005043868860108643223766014927666805379263565245107558345344304138794232780273192039206362148771749837386752998601926069992661365329603676270731982108676729145337013489426808777857984438458776459310546574043924985278605250730354832537839543738705996419611936922546725064041166029402783967307263441252407332379323060751291014322962101562993406683662488427390871468050662217538054343736055020781292364532655220532733633884636186783853074972331750214453522187870495250834921935175887284705885595162220372583002916589824629522151539160051546411141014886984871850099833102202439351181090160943238361450582380642394923940796754530675167012955317413931791907079668242428705684863596989716545510510495704463649600226720480117793161510725424423004429306857481127503997362432716122484522335656981612302832426257369668307652619926192852603479154786870637765346367907230644758560219075265755728557240728823411202620705406856773676364620712396680234891088839086864571707264101111727126420143246002128652778343872041975934837307936969480384468563511379295140783948704469687539364691269903844664399047251985973034548808372197717599907968155641671516762168612454883139015208571002757908081681905673665579366806697390304127690928828151585212133047275228751078301024930975191843678592996279669473217739813797982673024574211956365913637283570784585645359568783010486987768396627100405124380627563855724948134196064052117064948026921375801579360970766321405080413450280416220903880617801509964431413949043616609916121406341397356200163902688304789882643466457529805443607032215630812966860052610385014530911152080473460379237985090734536284574845719661656203111587759060590447197862469809830671218325039301726253584622385867901203661282031683711186794167425037935056768557965055849027330024292596440226235640315361587936152301070776689024889994268145381733336249690611028680981230985383172698347813522925358961313005713909049763167872547736205474380482230668138804593570465592678934754345994042618355933908795518185208705602342062721654940265826964992521088651858647937795957084683334733319372794823232260712471460239414956017863529246806643285115693283331343896048263293835278096091291034273676199051004979423788929166148258232155922412981570952669298791553582587454058236483871893574693114034705966967124963685340630424134366515694287147045442197746361258374868794354225039680436449958928264816872436841741530202006374736318139624255892681788557894826076942719169622284497868734451446692477259379850805258704249578315288368312551722269170944343547684817832515612468667769825812156390899761014623154678927005882620715423142661135252963654494388943452221883635408605227449691227111168250567794978531336581801144146698567780362061392847570693513438160795225093464907404904630287922459242153581125659436898229096884997341603787401184627140196164093679701434244017613836159000675609825120428289331492943111669094146528045112779505777731709246099609423837103613651285404990716198851167566836622008427536499560730088856851077139284879105083298888441040913856060885260902566414178965982972748178199373753381284799430253735856414605554668656752040358032697724637866174820101346968542287789600680998804537484089911241408042007899616346979486321146986838813671235531266901081462452730070657524504678342516261728228266600571516600885634779661489694554819599654337040506774615654802090813552799987997868856771838607479500866040981001694077931402369515876952984043217884969145730052483133875833548321158427812150496139272834029481753150447555269776123472318244238986425458299137921252791075907617563499799990502195043393774969701720159039218417031014580116323319381314509820807983292371113168775887510579317309307575751779078314305830985702936286866884211225325346972879571907465318394666371021675481606396024132388617597499195561981335701532360524053576635522835166202791959949643886883487052723961046301929706328894633641223138386942745818669155684378526696743228687351698453782300032712067850606922193722629597859139120649600365928114825535542812822028073643093486796040052720763231721848863989450169887324102949980822041864297390083976486896565145626099111422809455314006573677266906820677810972565726237448203222493494506683530475250372215691514602398559694418799629407987069724693627725827742289996961417858758805035097545654668956912207372298592679461242286187745613116273950368761630486213246947127674154573994225155834217638691275546405691187018922314217303322306806656027547921621698143568067040876800810702978528240753834528582995012192514225388585510590788464555410474292055775649504594605858582630990121717415296683756187134121781765369110850722408025808976216926911494386257573852160064171421939084462183198774080747994690647221975286814184707877098431329821367231610642661317945041203456300682054417067083016018062752671180057806316411675876158371261483470740996717338777202552548105923795308811314619950264424498272180697553884829627690788670169393114316889254100780851428524439065245340436207883803110693424797566854675052847984764260461581225759795897442478991241878024336807085065967190871501238042522462335072095653485831974511696498302722686838124475919457689805304389499515032096640609582166299553767646337658418602237455916919455952158098114254657271916237915429662052923612356201415200036477261521457077002947718596595749561898595054653651505313601356822048967931560842467867219755519856582633312485952955519264233700166747199670476954803846126401457677710341858362824796082809059323932711299604825354778396302863676988215723080544419119719458279061877832961869684203684538488880076964886057467384197914039950061999106599371098706338621850954325909532331283860764364924390691869428338547015990873141970837245283975375548810730753921623532245636764831849306876712613899446364952277349310614188568604160290921006737158996725787556984676507388826888550675336132626800520338519555602429457668620282711987852125318433358322664103480375517290767921354073401232747467537905924149672105172126648371051760990780896551464499371135425762956795535917769252539552765760576780546100049796595955179705098485812033747182135408132481176718484662516933113509720850525311704831703207066139638032922872736345576884609981177413784414247693275980201140113974216793419554415940453354024913717444600130372147605309246447570561935009750581040560430255467269047799385577751574862783989945705351095478575515830797814085318575957424175763601946156664305801411867798911419158740253505248536534487607099857032730909854676384606800668253871725149843266785658014904188510715513687825719926051411806891211882820578581571983465163550503839983078785964515682685952169658957498950229398041327224321112339153406923564715746227156667875888571764014781750681480829332738078305919971270274425484557596730648477573601718953547555796450624856607526030202701782701860199122156361506110115294665058468882627780644516430406859144748063254722781409937593755921704246337188216699890494694869041721211362322564276401527777813572529836819329099880519582519626958695993309877672668565818882954536542382803107489652650574789674707469464116985505490846389484901916635284510933583522569082921716213360699294151285101547088926851242875872477028578738484217331848115385500345879020337268630294951715880685815782981756967498371220316193781503995650200635828772764858502450741240425204527150575535240594353316845859168003155385804439992894840068364172993183831796908111343195004608664301265749708104259465870586822772785951517597507761412259574560318300465041593734263959871961390652922644310458149375127358700635806534860015753274279172423710402214672581526167388429283414686688940378482297880127544295193547080041031766905823252287258958333732941335209979824319746789454251665898184039895233693012061026401223037449051532767885346468149133553443625744448053317317551088365312174178605123976890132608062699739792066260548924268978165580481018830443955990184091870651624418385867485528169409472601492187563245230551369583904998370460377750426397771705985332398719714773762948766653448147493104562915286262591168479777538654827685392570810431703156664315279798192969677546630407518379989636477470742128769367963311950028690681330550597072975793383664858019554168444347975627297146398870713124200664727195864492393705628695483045725321682567319574281466531638737183695881800295213587301995474404245935362834387319373546522386645881044602621665339093367719721279141956115961165482428978646333200552088103390731739621218714548967520073309959975489984834711340370236005679711126808687936368714781519377467224857067432541246669027507831826779088902562008098825343447563861097285425762129641772781405372738728914957024798539425675233200834291785193795782762660082616466419030548312063866829429853712855607181003646832602308781694187848550521041497581218765011434500878609012999900079461609929389897914302048554345988879796297888738808125160331786515192114541355188063972713624812330512542368116050782408197369902321858951080931872478513136131038416414656646700307493178191144546505428342042295463314344371632856520544481269699265164695299811528336109808527922581355063386035922082070586784127542401902884601194836101228044959736983790986436257739702902021465603163314135599950898876009743564085333273322887358728779216921179861095640487196404556466268672052141913266525881832273355940804371954952109555549754104989319486305964289966436440655109556883844071859713692968346186743172420922732393683525961168981449200700162046527937671119373633459664195824000324730488332977593010567574809484083224618129343690053904708201362750036966689606161460009590830675202925598328073484804171579971525595487785300112625009832017379976173922756383178826891146547631177769266734227425180114715843959976343547671164498205736515513827193464731820771311620536009735256731230196107328539271261207172268656695080648208870367217655131838630506278168862590302844343964984510636713050364503238213410264269328678791546324250755688274471574617687908180902323707755140446148335362858160669280639458036802704128893976665392625718751219935371328244565412808113932008729694484930153412096865152005619044466578345290577605534855552468359285492443665459787830514797680869095999568983123819222804324256695948200495322075112975873360411072847091091902227979707437523352160707883566112433909378521413676575770467823518860882367675323024953170674227599865546863736408443838995629668531614159610341003110970807177765462864122642745934784149033609401297907150806958796217078378103473415432120143336440335945122735524412517795615934456565780618999975488223080335308459333804399475507004614066397015038637313984705472324851350640936888013097091141047154271450851607983248380833076200001785300179628344601499653931727160789051697195053378817534680117466549906332648394965372452512146630991772624302451253810952563289585627690843102937957222652310980047090129935674549296318860314369515547742040301023003010547219714801242120531545830110671412784195924981257120181799379535894451385427855429662342054399033123822982008033040774583120933495235363046762349801666410698947118129879071325844106911786873077802117891416678864769616986371802062353428576348478122715654422333473234913293068718229075000608674967587519378378120802216616202442556640468637524674476899504325755479261222186064031636176761253548137294715314848079427742576480740305103586127629624039790665691825266841883019478457695414921222831001745630354465850845691846992070520942963914236786578234139565661678755329194638892239031997526601913975817459660521197121758147117291608665937739053788466215600714623033542807594335276136925318962896694448459748840387487129730723554584591209138698789589528777675306162032271857634764021081021837940415846756053038155169001372704637859340930125290447251575007379310435539750057193526088430968888970537413984184164031301458651930022101540768375347338898211827745800084911669999822217599181021645439201712469923181410414653402355280337307267708542324714655816001043948676760150835626589309118853438840549124717653593793730481074973820315695048541969966139008158145542389962767395943544056849505597226663214321891722102929388880042096329850574554167828349749551471040028466000310983591327401943841141469339849513746991154009278491196430832434159953284975038507205031617318152807025215601121150795115247644398126204868715330409755245112366757427412535077645404422122399728964436368110587523452801564556604111644064978988721160116836817694616654793610839138014796440069021472252221056496774145632718958926675122137473084862549340963902865458157592049340362478982850240115589878754168371154226768328943583967249724100259924248623102966355936989612642140534566312393273770164037698016102577171676257289833879017727474828845805884431337400910740958528667686800406268165187034038033801171095760248086492813127974916507673677242164293269851130207754184809973699189424215357575720647638824867774096890929219205923691396067848429985316178152482573518782884100375643300262702643861726363774077613207959436711905790304471479213531461715761988824318445660006201246266833021747950712383835230410513652304390527170363357990557284937899959428267346054151555566232111574847991503663259227228002591061477744538362067856878207945360547118928939070174720366563304693647874309732161752130677765715043912536725828797005424945103858470596186456300308183188361496464728146981008052924661589848774192816835607356013515512538003563083172964316668627991916630780865259408380746745105957702757404099391328744307706254792335047435435963367135316677776940023737906694476877770687040895393465593507815775619633563273608621309996413047814980353908665894050067125115828476103316505776453448291817271912705378871276635636194576731368171125451494801523185652620862762666277715690654243042232496284995540143839576905709586368000203981040878061343084682084884245028275865140653257817904003030442751553895561518224479546207397992832558458305534480134097850312660008034980281344444575096914855767531529417598693957310385662681965242535885585454392240302516133094752770631498763245047645877907111628776692263073627575669860509818737965399339364963112991103641574002777289066949402350983582516448394903754025858218926097815284085026084363597902482877938962038164738370183962871704699056883354198143448685061175653289466347918192108080455274817864824553247988949672274326912040716278764937529541663173160848943225700156433019249040243679238969196549965337727258239839764489811713999064032330030160633712372335717850404137353486678285140562379961982038117678938194565929899178329676679633056936457872842157481305254681935688339294993956949125212353372552406584629030407513664590012700645649276798960678852692395231294469645232364643316986345384420212227004735256774883512479114089497008538450426399409730079568278376021074407616760644675941160544298563204118496762952930044331395833898089934503438606111152641008331758075551240347138401065997992525916496984258552517144737267137502139677743104434194312872548804286658056116595317636968814313101216190252295861726026558198453043240129478547422560279299149675560167503124627832058252769611844747994996600498104490297263389161355868109340887349327850885355461181228596564358405196364570381522384415611095473734732135518139151871296348453732434523029154932151728477124638689051650140980316615620097685809532394217636862579876142209874813479759336710124338947401647836326341805667247583733294397457308513722828016097897763143964570906570712221712955647968279161434722009314161289270384161446056131469266630214302000153509605894570366670701814063878076610124982948170740097090708796521005146061054575000478130504578625308420546517575391405278595828083601123156735354850900899900520606408772151226185983390064444928668881178628910883797225980792786877635463134133087521043310354437651845594970373999752153988401481972695861026511218194609590028670711829754488333803140654384238421590225109260120380887037936327402212230305282481047693734305377987697129323292689675837658724405693409518280292830409855798491868264675824947946825144666488068577458191205627102791488138556185879869210972808238673901509559405772183619718958172616572242069813773175812513775808144749984904027354563098589846547005333050945678848353618685619779720022162404834965649086489108645866202284786939993717348630521003386116684412902811775778460669182635124753737846438949462780170222746219795678586125250698684373028125580057856707002920867415662885596120249919205400049901584662420960827081568304720121804394297633942398630153695121168196155513083051755157481889734678116189009281873337995473569946420588142127836697206947190669068574878269869599176978382293158030782277651367130449523060679902671428541149261786879736175833537869292003354713186231766821300065069282945299605407829281941522386580017537343256489829269475550056530592547963517300484158655826996354540233569320539062893724811064191444097572598184510414589260982132097421674966253851721401177279508160713232877873193322398303652972217636463062085536197661082452726824956882460689620013706728608907408109224725843465816885146878630382538672385301148288490793132581755308595590072297635364835782872672786690765614756484632535739424224258023135247720062283513460800322203370646604188561283340226433776755087568820856884294808081651106239346290766120318960306755406076311162728835933965450751473370726630283652319242963251627195771229269359817670273023778171021940405882101194377018939687209785461721452237948346285759980689643731105518125986225064442922706025643093628970923889149430278792616652929177020591296473000300575607771712974989197384174027389808194908999921966774382784963573588928797760862423438076505110119166590460965972773584251181610797741837362577375673509771056342386817749369791577638796421897661856293706470749818032348417465315534428985447479261160134085246422852717313962813020223026354119813053480656625784213164467056080849836902182614733639040209978797705868482482923485377863922128620185724751086141595388482254512614147229357077066598529561375358356160650280821566326319554848770600478110251598785260720216185773894938875207170731639488275568376105658906101367633652628479062801646616447190148309097157055599640907916284700037656264257488354279363635018468645216622924163430710954232007227840281899286579508605406743132777792726284397557259379943377227204350504425294678160254923663223054575813906438011373691714813298165158610612816372738278406612791843778991123045986510057870643314052409310826788763390485691208564724860684345426633653468290176872866911301878779330334912019017349984894333554397629146081797061186921813599562441673367602865732140648421298442327691260661685788414319766089448206206175320805403036941870248213471038360933714171414355155765129254690139056364927041383478702608603519142923593745172542469927626903305873157860932235912380318005837504809480105149821816992841454215213637384666614626170366067756838843799295423556966980934711418539005259517447897309190293147062919404523793044559655661549909856568435620055191907033089247506133121314493033774959417330061735289103930773966440269821378804468176514043707374746020932775741465650907802559758700135936337658024225222532478861468131586131320495958282990433100964588895226510332638948411272843085327627255311679544551086540347913823149486054972137846555280489383452514899231420328107956836613506538160779513720344536020331299186543455294897861163573862310535186900692311412258792339986994349324494047719028418397940928436687163977462915561481515429374320646048606561320298597966754387965425827059828091341458662715466033972708951200324371878012510301186391563769879950934303964542250752915008726848484380825570350778241991914380216493453044413884088241559486885168201070582500489529250257519037210136333087530828892741666811691244925454355645059238444049489710838730744008016379580804131624116495902471505340754924577915498175691850756898542603021826942641625114704859243836631146644558836458459435348421548781147145756245515519643868252169305398158469560840335818448149018698261623232802410460841777152408973966803896898060749498229028624251750601748414488998744922153437166324095417310368240507040118776537419342903839099552313779134725438743659278809608410631279901020889638482675661919530109525745423814496254721700789068269551544360507472048788080464193350344116163855621209902818777113428773616202797863454738035499541931903510759015468444152249988275098169175106737370518825234438695762988146260041945737436359173498271615450726018707964956739983784928464434797894745739647329347771819860486142604007234831538222727911862993901254604123107198355900312588313187343531012885346618777690819313760870423970953110209524411638633497863580028587523135230762893694588590349279450283397829006202245867168999858480977405001520542027218915653221567628564188853987672109398024362770301745756158967383012499789466656984863232951349426296658072377670654653266637705934406725902044926914329218454443366926932082022048932804454316529268986571533286447024084204041428478861248659781035564872176512689837326028343593069240332949664339194107691857884533199546154249840314294899574928095024016856777058857485709920327535225289496923961872545071146858657297864460756096716495739055161844961657504457035167245609738649575654915799117043852345517360014006634528271013013395331720635432899137371245509996082862727187779454337644560338929196125140930168818724857365160069794651376025400971782850318410559843095123115058614366718918866979456213018481763210514041979915700511823712647794226672699887508256269611923334543528220863426809929955472386389864020142638995181414895292793769016338044144962886309828013852010246551502762754424685293272800479098310999942759220654274648145539181739381021554829123885427223674727767634509297132481424696197964982216241285364072894750372667117704939270076438297478209663608850885698560781185813587157117868293315641167980365420866114630815463279377286261915626410591572151048275845336953642131572383350227675352426753620716057159338294145538911691360970789659020150946253603921357297079698514244673684629841798664254204467649089762005725187926299018506722629427522797204839981399394943461175596598705467798867745512908758815431000603833774192296066750026942529821174624032792697279219500781932276966951916487518966873269510626939489172617578012868306281543886263461981931989585716387969002775292413416169700823939487373249647137049598120459921230319388528971424709776453104483776179652672615407865808515448963660265826137501082416343658653792644030299976258518073617587929860695828395650911988858678877025340845993763000132516466754550242799978724969715321647840126958341162256928144352342017934754546733636076861094528808394723312869096841530036116123208841753953718385314741413221333818848409374169718409522167104448484510468697906599187377756133763363980075166156693136866117784675752246286601412956595729671024611937052495778058546376125920387257017587480606638798111065116562622468683093583494042376204643909181788451487991585506211209641447292427958608398906405913360234454745436637805479312773664252146285950847518718084252918415932065812053836192858399808329638399808883301852894264094735572417192114161520300445894652527061594458494864980117762306620026686317349288731236411680718825012926459279373439032132266250348406048385615872680099095635593774349722459464900373615464216515916844474647829473101013853789025225517240944495567078847277458389613889482939409660520346157317778228279882759686435152492249667143044972829091110833139560331585820030640899297062174215561435975481561287490843729767735631973011554567532944541792879442045781619921510551729053546926696946264200302895653608308965599634725520734883901344788057161261132963626366412439861970323807314390307931797159836595927141914652976368200139786962576888068568692635361430538382634074051859238707030293647536505261361475913611768070999829916155991141277911863747515249657672994963673793034279684283814769555333283275899104439375054131548712349952326327027089914998912290228324473492362973661831331995975034272288146541458904680493254012484289662939534100632264448104478170007590268097655853249675404380405625341697710737871465768560656958830173690552367718070696390142312799447956106540828770078589287200741631967413709892742501767190558556413202541906630339195264335440804627378173499668836959748976748601020296007363281856387150082928872249652626023600765804386179419086159856050950294206175241602628701249763930085848660090068899939655202727078429946538918326728236379971105788760421675063343940002130061291311282643379660550430345352041385956875747692420180204167140593181814462169407871134923474908407857326309895834448580437193252379479522325198657134525997447072152573278485642259101830618935312780364929944280676745460877943597498594568857897661054718621109837284009242081229291626537180232921032924139160679272624126412743951063120320070082976544921229275268412504423433358841162976530827958620779928552330976724985183076050333684426118927121469195336006161976851314196365113478744738080014270154002446503349707060432002838855021425363870074930192721769605799752291539202971554598738247638672894805666891342565531859499201368918522956271242232090824727325992219299113041460347879595908463294233575857466791259903167317672660181383835409467677926180071770702242141833025145068026293996936371239443369215102422744938835532487418310826744855966609638876113000996529979515023851697338250065778195599541558046394691882911135075591791820651523688115884428980523496586640359450562003712877925553669207156657819104237670035828837935462011514735978577973176590737755712529461812319745434357488570877569015163523301122259377180068399543936215044622706116837585584482604216027591308678187518735889338588473490241763607374744152258677671572438863571566562918585240981756945117925133479664057844837267522930453921558681311426265624156342782874865055853916738554302873232079686402808287960599783098800154720283296401524067519988649266208687808914418490854282350876051081505021768427738194301338373588951186442162365072231228885658670569284272667553917306801602591008018633558466404452667274455188889566622680547648716090259286199097531451363817994032606066261967925270284789087085066244606390240190253268417980017227274733522779412009565866905329624608467225945087620031363942968071956732058372808341138246871065507557562986348756433473367373377346249876768671600782628999902132165469947233794643254759791299396789791120780725225644970704261310886571663190095593121087082788757619996476370343658625698172557135379280441535047926722196251080119233538528596333330734623302563317980854424904740472659030896442169920395044241474819990019170986391408671773898304476911324693556746859494093383104008481949160683906849420264682709702571270331280332316863443098430353251663123285365948462990873582241752767016105555532911205828859014070052801715647945201692552139831686380121532393084872541427823875827949039001215833929401323121117210375015614858326046084143030188419436916967635207517575506750274057027444772498614032284763156027432732933453838469537629302836279381664481874821575447038969981791986193372047183923803098565285490687372784538889442772383469954041111112031461225448131630206996643126239026268321769034409911496977818371763995549525067999586750856073662273726960037905526101444467152436092718460252450680450817685011643254389058614628871911029501547298630942698837491245124995591893788108704114301772131324475204351684264288784673560772166472249902733258168993141338736966653423137233704239943863521818765137893674305535164570726345343585317865369538675588611946670968886130981306944931058969328741911781586183537113929762661098389287055910810515367319847474260043279824441999429349534973344802964359225291623655087222589952236867779656365135443198816218881663331898964250612526621326660140925994961278765328445022782911741949412096707090557712147559461803325418299763220191476405426140713483350838584801856262641865731231933164234129503893656002502504619149682943945898454129859054307087121025772394906424466761856406125404283376380010743835184108673008992089901288057660866619090654687178034566101568620118221789973613675005379389783655260366222309934647479684452128439755118634899269195854782783735462038663721902788261519878450970819441493061177427968952624131858304475416175302227226709941577729053754178752348984423462846167127169523161125818449538969940195821594116850768410327091399294792172791026923463291615030516575298839715183807849734919543695415883802409101960903842780363940100461719350764855393366169799778326652567725791997180076044421729107783989273928535995241312849849986884828035589043791850149799307429661419112065273979683608288036803342858559210610857039613337429309793989986750339231095911643265006438856335174797848457588172215351742145422396266811643636098758490429625673053006003635306002565445319619305329208740660276998963406109069624061839079089810351199709609083404786849640617019271880932221885653649367799725971855938952542449839862661337847768879127563211221042137613893352696608547705848178354090218992932269101080138358106859961977936956373714619998435925750121202505278918234409366952104136298891489169303946128004118399815396922331970203865331877252005926091016076381068946151618320040905267293093915868133322900615842504519648745160243666913572080859531072866488635830501672035060680674817891628886550434858763645321407668415856773435918684025835514990398400591365795980966799668418662790742609458521659211757124509211412065404163376101684952967562881079658896062794947943679418740921041635867061064702477478798769586385159994224350301426774206216060521326192150466530690202313170902256777008685490488419650208221892196159023615493235649911535118024613827613503417452516317897078491752403009860259525345927688286895671429556501883648944758666881157592291538747703363412017795757854185264271544844197821931461819642515143748877449644665707325172539490745540211556087037126044704750495321203065402130781663857641293602588193551919651350145706586311805053866656871539408376769216269497918533692403843802714719333472990867898071059391881681353142576761937538409551485083120304368146960092330798039585893379881488070127824594622338968635693633795130674394590397662407387578638982940569564636250551255535652539805193563216547357013417447270849630795539940273158891202401541438020754747054170448297793813877212544028546771929313142262822556627343558579142542684822294893392339083062848112801706838123577323139666880853301134676254353540671139964930768784576752426548743015775207169090027663203761892167119426012969079748064374503508459074617993012809878379556494700208492813933676179449775958133647607717799536710372701009792580858985927702363960266649126842316092408427861683033239465412955242230714434094181090367177282035536218253265677225043746597374210610916726190417061176634630810993032069676928975298386172818520919957101754452163508315782407969564635196034268776764108153066543956322728997566978901085648957772755176506420652286599368993333784532085400618902321712271453684011900646146474312667949361262636845282593114905836234344043450210984856772331243598888566485207924106701261445068022180077585288853732564720795870852446538586213933096877607925244256518343832701553682482111773298521990507495070523655161108426421072137329472380767383004139985045890126889284610877058749653149708248614472649797080245274189863205453887644560520057887787658715976102915178098661374880046310017082282112681307541809738686882343688301632738625262935846823581537387728743917104142616458366284857881147780892377523003140097120409985527444971576522604976956310756086734017694477602833693741375905496237844832804007287483932711501535947907754858641280389358371310419448250108666506245414520196027236412919980186736489474854824045466652975679766492340916505730237170184058814174861399116566225294107840154391725488238309564532963230988826210119964546226404166549292678416641087730787445599132898441838092490003685545512327942287172486780916802159926462622196397763254626853697290051472890399019149727365297971514419878096400807577474104038649400921589349397573168774192433068729258741857710789154486495055492598066244566591874442434279599288106207028728553047623228530424397742186386119175241518396083948094902196475141288853143032073851516603022393725155432326941993368921970082128840285854344561035756919975046215868219148680103947894042033006856265560454200781689397534823818977499875960920481257836212308834271147874002981082949023496049984554255897424720388264261961560892174219172224247133155111928315353603798239640902024002257868308004909992572939307750855635043820877783570034465691735132551395223400289847664142303828786452743193883815630125283521170251314715100812570463093428178484413390277095254778170329439551989932786092331645286145511796476200189439660962688226911881473131825100364438550815073193907680098034359011356258702900465526266679112857630442863388742610081188814267340480809542255917143655365155745956353848951395477240038192867957123439587238261109636599197749939151673270611169992788654883630153049158894669087880574166019545898802575911887887046046798012709688771486028324434127018209232400772713520554102609602720637409165322529442230154069744249432589913667774159909868549546098347583194240624345278902473964668161181359932595608192848621896311852464781695795448244222000464906854977848616278888841724810868765531576002325416320516049237244195531876511928698375074907476450828889735885611705410198607228733496677485682883459975379196351647620727038407428722197575206420153012510499755087738534692068210126049113043630014857776558633193286976156755233150756511467220950833919301720342274586688476427278363658868552132804638467025168886824423396972056428371702411513129432531139807162471082901599936994355434530568896004379409954365308996539225491980050534614940996293928351252153885420019065220572453178994904642085441074758124784751241632239870621565992378984998615136982483980508196717929448416638628539148555008021337210947137768673754583925567019540456570576781343652214018918911080944821910650920635150535033973453402150434207830807781793684234014491757951208300348509174112144145767328184164255979141374480551650488446456741537538896671660904579511539894003260727869215285836974268680455503052687718750318710497895383227672734897541740753023480946137999073871106123125733554354438976988597689243643169596815866639399314154624595203048220147652432523856516895474623876686070909603621816526777178948689035749089468455042339908321917959536478756541318745139341661903779291979048966007688872370411509212270518565031773633714349592862769457274161726370094290730052444527084215913982127537104159069159404898003633473093896958546502140205413743661502435988351176447640796295565294281688917368829861190146256804126868941545194506442316696250570080818155960004654518204466117446930666568350493384360113060084430908402853295636019988256178221888863978930169024944355468889698522421148978009977419069922774213452998244993382198579058994144169562876630195550892713826908779177774200621097716430277178479831379108083732456938379319890417340972765570131277313980242747423549976843062754519098565125533087939538343248819433180543066301601682631378080275336503532768037174284712549736544920623613650134293261687740466706213042889934942376356614036877819317968332248777482673437567303130974871121527643168453190376737409551475091587546794200175266026375291601721638673154605097710878016812249317503075002844847876486822081775651918999168113104313479979484776823684190831713910879588596273026404325676600989109555403327190463638622685844639783125440823845317092055033351698475387841002805692354042795160328361604062199538724977106154918179918968665182465603344705990977375156148503397719788988720392025719205857741659185334557909007980865737512301347938206253074563217948064699132278355351532555144259809482188064044036159426480175471830035509037393622828611440387838243511400052999116939034989096576445348888197018899618023928398238241123094973461101265428889884270187237945595837929450784420795906410905310113065314147279906361817509993112636263045589450654260201956272357491733683322430326712064401725254337785705727793141604285567082748092821312226617616624494056072315983498730990143518226400584979200192477280425906348020165797141200036461052391043027395729913767175733384896020127727426482180024330767027369718211734989999111998711468078250955997045032252534790724968407156200296524168053928336096382357351600237028393695579572175591139179984435050047016768678370910495544839203838644849349562798586021657563834962671624128963376946107081186078513560174982765801261661416576333730941158046976329951029000063210411501227481713604260960391229314587621841311902672882144876569048952901122520572747498821545197083874013186165244635369350455505915095602148479150960174424234541067869351188353179016722961462647770004955351840093635794006751319396864850769517153798142046572033865862812569709062388671552915884819415497374116175579816862749572722719326270544769316394627817071899527929876271631011566621304840272428547165235126721827440138793722870023847045518304235128654177461264527058382414822548302481579451069018936127302444934562885589182041006841372224909956228855396418527740650054359994599038925127570416791268503227250047149322732721190413126949808405169798043153975671519664563043288432537071498285098794294384553109217752374154078946066537454123984903946546249618239669697626442772025788711365618338704619199031156193886852891187589421380100676607377405844710163284523230348571716330301245952392978340107453697823253421137207383604732728493579076550038591609130335191161280569305693559425430991138589612539387697151669266326121228497378397779950605529671377253088373341377515783739580839285266389381833898589533993664953606173758931720707161270909118833717012758920965085924928672679301701690777052457146908340046670063250968558939198718069653584553098219666589975000193878209366701033378221027656643829315259466886721973248337939862755129239363273343923396450478847917591801683574893822188826309414586508975154236485984249661228689443706210200541847016576033899141077983937656783390905396780661110607950872602323103262121104847187427482151542480252393895778283414846935162456981164035716299266276166928556590859954328295582923216324863548361977036055938888644701760913537722770658660840946804356874607847069871811431745436834921367796999777757399719554838832834732260487581457505823366527218782294280729533300901575166078907262351047611205352924432806197017578965908837555240003330604942865274603008856174782429715822193488826720259773071269731123997851084553466011520474815061503720693257608963174033162486887652468900540452244213512747653501828583101773078980338184816993875180579602365260399874210213082046936784903241572732695810101357465453798976801477419611175093251372359945220364775218696409094598631266794699316323152329744478460223390872824039153206121441437109323088996318571267190926528192749096995460567913450838755921979825459607233808535365707251290648469892789620015611675836494821420147063185895543499253411993473287033245765246916204437386512323768677741076996264156766963485148559731050767254141987110084940640314482586931327093984519370220451352718915832229315269446596081860448434391753801501769274557939402281549379580588756516185257714090181936400132718634355652530316046144667708114078833790658274745335766097271680105695938950383078192580185230139629880030270781238964517293414297899117573201211214463064545604681308221410576215893827741436676433728086705646455224212946746738995439813811797636638037752875063321769773927450710381068140247048305295844489019529541530643433409976876004624465846702273062187941341775910902847941785451935591540097063437276321684411171331239338812071416558675453054795456020250397787425507238206461726715809951531243241246443375495705051797264340359037127868951777600204277418780324681320703026235081867218737881891116904590868414561452438627130874476686740974817953151256027823293176663904908739096619391295420207540139752219269139497692280771897700861103246493309924431959482419448284856517595830208742112088888659613233951468911042829224571912419341942999004790772210845083852179009386286957036313308948588435593844085481701067183405856961211101773639450271265965359183843127232200942899043928614074032633049815734047957221154616833699720280945270137358672175219834522119657845998340993183926289480594646874038896757159369611375074433481529353757284040082738278725007878794724301635092799941945468201008122154860212240494058578805852060102529848116423439304712055381689029978296581012084585405777611110492154904912210989301020864481527071815050888291975460245898346551794937135560995955950699290174189747086255728685472294639624558554368321276650530305645722689564700446500636052319397262700432535464839894574857784411374136607476003910268513240411584265664199603138509354203870404651865724019296844995887931370074202431232789685031746624085346174101257077067377193519998089790307677555069909630401985233249737082431718151192445258632811666097376743600824198998768662756587513660608004795054539436132181706969965281928727870293408960788731344435565092145109909939493085838401576922646928399067172160414700675646474960968164762216469846611926266074952504316763292063127227025132955702407150927641167522956601845666974582158262490910926085796127240911695543836902794661321714397534227362747268920897378746198412038850089160202106533047139421807732043866278044528070350447131865747124672021184411861232150377786254267742239276649867916915401287140692243913659751787538112456334165866153384983495349428840277098841635355003442278936677620578816489640377361228608778985691564575420057343420468919296772452586001328019650009819899444785485552703488865480910008333147824732895233831345169363989021360456271372119625926571074249451324025854838790057007026139583729373685530464382371979542484882828705343476592961582330555085267434010756244145586184818436820471179531167257731760648410006480406003615227570269317880892465874984193404326284188362378019964422098634642977104802246858525217284320379477719380468293676567815863327631007094778949661734863492690061327707526156144658983858485959636957998322941626335152834002917531929059474831994677871675891404154147822379220869894436208406456780308006062336712995663728112487163278213209414365112854647046747745585017604570386020420852377871892996099079599347206105305012783581208315121224674843864279735677189497566604471920157014418755003507157247134547526759231990426653124024310315914319912298918759556367313316210750775331087263648053502353414016103701603336006630912864049603210105290004735860118298775894535357485424702713871665298435065048978076159884630175661348096610566503581878827687003705463753129995508232131036517566236698529090722283785400986512442515630430819473424713769932687602257952115552578692668797874926996889390744791011872401474235197218696589545795741406769978566172993558215914141095821214565716884792268531844725356522052931546379641551447442262542171904700848818206466501767343312185439353954054353125715238159072903365894668963542896827181483229660384244369644057412979286782377762765480145187780583469634550307092839443361896384084250395935107516652325740575332073763071871347860918299051811610581779157667209519018358763306691155656207404461237396543470639254540533778511495477425847742484925677902216107444587286061390998379621806583463326693921821774169229507725931447652358487562353275258016838219962402011062108587054567724381288091313769249662942819461634710709947029577026172937037578147092175343794200993759573188206813579952990301129052640868771096932987496093750770748431636949060818665332103430785083229617865503946778456643902889981274144249704618501607636112870212796179478071266219757288919568432689180607800442846336508502126429727151501115299129333335065969061977448892013086673595492123434510551828829609377080111748268169493074356797746819630389209320341190306250310982645887436141745168782844113956493410762985650455113932781527583605647225800197415240120741112479518568617352394064947408096881197119061572592648709342002309871093978350326897620076408728088620292933717473291248229364599446564683566420072029872337963054314388615956041157450126086000025726957146631056711500057448143177155400788296843698351210279901356704249255420127326358842310693182695644910501353227065337784092884470445667800430619914150823668462218159733483922750535305948192947986848624740802877384569044813059042833055949459359760260252507457184881429612569298660603514462829613653098292065060989437849726172402170350959970341622771948848761213554288472710216223281635640190973395479001396444573076255607441294322054460244586740076768780727600757686007304403895798224993445179563898755410769297350130721912583826558044282210926244190976858602978779604154258967003088832894679724164339556468507949157663388938943914183558418784624294356152552316397422437150518926720501033989182950289503610961394470951537173751843902523179748670529855636165183741857256720284529122703502063718193505399857630999292955011927178558602597639934949061259449620793549895001083836423251897937100300601003440360787298660998895709319074829454901892473809836948521770686818289897518442169966958471006217839192280224004276198560513132687031477923491744307339173254984421081685272623314670123614312695777189498566885770271953606951148556074651297203532027632092569139288750972886110134102209998294728092073071610082610080249175001763093118629549249072046740683430883373792482209660159497968875621522201361034043424654358193411191787382242685629951647306732664963278776579702144979707167873287500236846615315373014381934279876639890184877006914219845119401470434980873923220599259703779013513716295199605625966442348300695504712207322236086665561224896246644999820700344033290058666004256591286062532841372558738225805437075377867942305962643044119013662213483347602664119075090333518197779391287898221424395467539959237550509963531383232854875096514530165650454261267565542225066117040298872642544699204290121616737883676971633463791001417878079986715824760805499538810653987338601016323168838297883933389277019046679795886119654389153198243795731274239114364026379257923436304945464189528875408209802700735457759418702372171122542032426296560787699382524163571186387088027924556589051420032474521856640903638179048511564682885059680803416071103319614864934521435726074104932905614952758377046446961589377075499515131205047785819661962705262016959787296001212676346010598275529215867848190823523249550075095852420484531568476670990737808250143059758139478240884727635094318821836495744047116357001077371780129266833834382074942969477141264770058877075393832987288014857681987706674862004515196161670968565802992527845906772349339607607478195211777897357792518994442394891779712034022333293759530704021211050718061270629686459665402538657942013425343435027812054813973809268085309416220490243051618842242050540539565361720484292043280751226003013179234329627649511715508594418186343947912134715524997438605160637294377426913577394271734889703139439951154532839916398788273907095573011931032472495164111286633663777454838061826391311287962998806444303358085475611182298472776624086860417941471760430165762807383835503456193178531007575888588799749049877796411910483121049550026618109215696922080918949804287226554462113833154898680579799809571996486668911271342973765935332335689904567049478869940042583110470431985188118530934559866530276841816961402586834868242228340162822348930261591150643343667230192172866754118159441555470725719936461402987316351253913787065655148894321221633374594989744020691931968631894722594154011095673693672342626626394894665376498915411428543994991554135780976669231373294741964417076190318152088638040723891003322151798189770477203438382821260322953800727341985934904682751802310004775175341785926100946231459024069766355172866331115456808146862759432245119254000347668261370554236779625038359999749513027677668353258356836067667164892939690395195488129819353856636206498825152610190916066830895363460862528583909381541320570971431051383144999357070132503922073660641515969981647367628088141461867174965695019623822760271814008120582902870335583939439996953305262312073638593014819097089893343047845626964503452816979169365854807439186778724965836192196883466112674884604463520447262543331025375086408355742371177233672945485216282196321863518834348382905709466474815730757686658123862194729924762019966604322685632806763281723281310305504211324168385830242720381978357348089778912185744991751246899144585203287877041527761806694097173691852635530267564240587604264980099513220886942053029104294957098550480134503000192063713715640931711914890355896714532671869807916720130656847082808396948682182969044473211472697443257747404115254291242679249909622541561227818230810426435001690602547830326402750633074052147581103313843819783289418148352996775652491768766178739371666485826872453113651376074575537370500079102734824920809980529533947284369564253739153849513022652815473132093651129965966109976592427682606402260632077965015494238115970894416869090031995394862403286199838460958543736201938662557303458070755144643666628800839199067955558515054775677401437608026362912632966887411866552949169788040574919106218166098299474232851907275750674158644284896905564095901101139312856399029247640612844314190269503862093712499136947373037639249485608588210433415844134155522872814575743394604151413028490474472868007417343963228837160398356193189448878774041227927462241993647385910198155429753891028991024740352641413439514446378787359146986472758043153714719899777603066408949358099389997617806757112060080649429641478772378071245231612321227658170200586723424835217001802155264272248724941604363763981447788227398234859319528227542739491395424354294087559280566352789441803344376746070555176214837016766537223360798954436770292567456790979102723372534963393723609784269125326286279325976595529094645636351288643651327037782041365562686462127106095170200841699687304025321528933322400361223927367122071340215819348305158547288939513302143778554300010000574044745228491025467681811550658376850684265415014261595752679555742486908640579096594897929425124718710783070973076831096098746502150662597775094578308976362224390898447664884973074529676060593016052848237509979712044298133967971817589236296618154540892922850717389280322944421249847864790209643797255908839709627617878113394039151642238149004467681619889431506032147018430116393393777208974385599790830224172853695619705262620923375158046048207462879324840900541186580080409814796246236692233253549154550069688240213606335644611565014390352372277935372082057800100254974294762244379767408428115375076021140894736804925613957339961397581682452524852895526872682647536066023514709105486058800222183202353087482878846974351397437106957287682290529810521255683584155487996550191945738505208635448211124071593955792056860348014762227590377988780846363051331821453231110806871480888175151431197455800096565146743708451030818241982646068035493966368123494007839148394146031609442947756699282445506276402283290095902051052178066058087711091256722537620444923841116458635334381651599300453721799941463816296117033882226352117439422073054933232988961413763996977825280426806408243442418956533702778732845392228982137010089747674458936472918846223397571965463809919530710221914748675649643544093470159223735288703558490622276400219081132826377618428258692501181817796060119568121782069661924606454518684322071071971873252868695906211532663465158159796155813155124228543080370085690831284866430294572019938271437479641135638897561275388045902115334252447463169677670866673367283752636467813470552278434369258573232227802152540809787276765560097298003994831401358014983920460354537077493000108034223905424888978113240270839326264210969107261734961801745761603683033739994138086923715196794098900038661463690196700803517941237887353498280241826346799388690930575834674215238856407884409842836207934545370356015752386426505196724036338715544488055479328232277773170356590703301157661343309712890928049661493751546527173485228523513622287782245166350280125120817598585878752089942588959969234561443220419110562889960645113618609258483419621699057009191771934505417283759735812733127155733213393523039680493152782429715083267889600110108104834433389822469794565801440326042202767543204150718137345869523337641698109895018638381450940544203323599486414057855854022111314868217095823750605989557071741984311512342064235989978565514822096680594370467705976873754382279751709319126117897067914863744384404581871568453530808987355431791277888943695280454382244297150281295942993043144942461335190913297443076369990300683151648512017618186509248414627525262875044279179098894474142569179279992778202314034318923643182076388734046208987442248097869656731432447777459059943756376949699028569309788916509757540589841201371079747487162417909976962307520597102114860898672235814121494101276212722804014598887548543626887042208534958036962061366325934436670482650179806866363253729642277908844791865182494821178324349582977571782992114906354200039362043796804201560256701154034236453112979736511129198530235335632830071095983366367561314518101990298214605724489038529691752910584704402734428357745400747901960732134899079602379837688023048287755946239510935296025108320154508749448243379096969417757997244876534481615964794358766141699878471627473485652775734201561740476867499640912174495720282561132970746180414579149181758083131189271093089602846013819785935134768015243691411966638104848049889573414090943290236340394576929033552710178351279425108349352664343080648567188892967515292283175204499105239795409622377816399066778680147141450739604387555083714855475985487952660985800901898632967049707789862151151113458531385777796335425108128854808242620434283145616993785912500434060055928323313413776486420402792001179370657946831700291642117628853130377334888171986110584727331007107970165022909720489597894214716599030661377851973977702560208108952809979833841496754180277208697609551742306535590432306665367606973398391135750343736034608046960991988520518740352930134064366617919459161878527052854284590037930405483444448508098930401270845592472278246195823677977600976888549766326057518585889495537306205142229544080511163070373503520211728707877129244411650486566504209583429189098359334434769309993226332920562772622273184941946564728938415046919649815904845591469708653365739870546403082868681243382278057925012237060137218162017792114598816020838550436175416218962946293485291721810445911542485859542673452163161506240239190588449913166845493190984494118153435614616719014081312615360426424724915102315889054783676729815934214766248022326122127833211337083974971786820919948774156548851597582031615101431973896322898622562017301004545614275687552935093045366017752592041533433071110823075422344618613865697805250992206680117476140856687116276435396002326450156182927768426158102110496459813318292690039839952406899389503470273856967522589621657846002045542467769985498570061890050732441499187793157528223783376087181570162815636509124526994255729568107182176887981057856899064439971590817797225522676542962949691843056610989737564803712717791180218784941960076857102148966695883998498604184922380344648192454871229699268956860272890678186300051968307633822035104172906095281352529886919891366503298581949533114313204955251156727674845107180805343805414456619394147012009346420402120967867260348394796378534971071869358148698090008920305584383975486264380305880984884851457684162688204789948289752747577381441546330154069521271000434070390840517225658069237019970232383527816669250650236181540521617611146228147148206569949683788561277067397123966656790461917355595215703267655805518614495989106943811248052329878617966964619061778382802158428023096371420821010544879939645866451855285175776658408053260412770669694138558151555480997907753140823026940176609368022704550427677099072935527548293710414978117130301332455819636383696365881868251781821332368958450176960047130531477456305909935321252245136001168480786812406560518776939882592443993427906942586080169496931542750095940155779239866739962735630062831448876240108117195184004886769798806039334686071287031388486112375297053750881533343481447040504633121835048537640806730998698663733412486524530663004146749725866804702001177692013624198743379295396061363671073873507328260254642012271405791583091638772582301481495766146461843158793142986747771080660441590888442477722972698497218778900987793478926079206820399510193619153050231303874293334878911959025093539212481845097287755619849535336268724207663736060449141458739860426978652318453628950003228844712431826692652088125266806446089398126501612222031871415445501352146368447598830647454302379242444448239455093009424902439099408682408362400093332299340040355636997528860185943935143121598058866323577530943210716962860962096381208154268705343888360227133695038914190056899147724182949141327978152677842827077658413403198616963582135364078649224264776284009029897670662310752642812883742553343746673582616538828267328348303656182560782135799544155978795729318369246433769528487365690751894680694606940500378744596268305285988890105963304608517703109753819853933487162382832651134646388620726906690194916583275073694506525220838876678959933458327576260523178061384983947241724557414282776753542351126699888961572281556348739480596551029674212083300184772170930922915797448572217443809645066567713700202381667070507261580071640864131706610994977670049255689572821669808942748368352263434046287018984539982156774688482518518476742606643330954810478258949630658898647504548659200234349449086975398095970148647861336065744336432833526649558564056198955319646262146380378107322238951423629828902400520096284094327715173469288805544184949849698864374420810330528138528140700484402984567821205671610916459663941239903387676183405642659080430025998039843206204644682887192715535197244643923413322575762458521142961053107254064555163452987994920532192684027720212927930417121411767429969543898785202532313291779212600363647535644147623564073750521407362943360480780521195096669214509654466639059286836584905677024763802124966138158754800457120974085790696079241303671203238704227192832329134791918040176216354570015762630485097426925996962235662050371314660447424081740330565917123878457350172549475780802356582692842212306350879792476911040512264682470160799460136501394578642802613855528933893247960251371869776553123894567932957252313822076514141033418327996631268264151688395011305614832346813446223048714129868303823997801450878632249278421621237980629646911080833436959606238153197546610547877894494354828040849359136353929794935019004074111608082422331459349738415713753709628331487980181326224086936479456411406898765552065395321897152085903429630115910844683117608367005143048165696234747265422078625300578980401716375087398457653332676135600480728659590855101136200690915005153564446895189302405646427415868552333637681357891464074069763284777702944452787664667794132233462711605025435324819799404938805697006642804870690690351002418973942875921321251178929196536428674522917945425015166348356348858578552230575859846942792178504770637563686212384385581976285649030259521582502209156759131614295624081486634826081604084388913211456636564690217272715336670013548264913081879501800793811682022627109505086023963695240268173820031223951852277684014571230957291820484983324686898238921876346623302127947671606797920323704270771360983677881614569245209979994469435711694072135098814771807643772681280986222957292045748730474142410143370524131223896375349429010630807225887229630890042513755693448276063044695860020322655164508257241110309444229119411844787616508840034580931893589133536739754823597401577041212742854074656813764602973912028453826090620419309408676461890691927126498890930920179610281447661765857431734547602041836239030647050782918812978657113042307105633322752762756759756871831808738908113975987981665632062525829321985016872012985655873958021635535691885491838563395705975828698765665283317585372685482826056716164043717376842734693130018680035481683827952515170217917592437130892096520294626804438222613298335549448882999721618047104321494893672328577311240718481553577230275070412552709214444823927659185324442169877728873176619351822217200275604884819931350652266564358496257694397542709662860794022735567370206482870803245480098725760461451350778251031572834003952717793796360043741361427340842109934061655327789258809387427469348745178894916382959105091234092526051287972190501799126166403808232610318590604181245408154383248742847078980533338471718623692504377669093149108982867180905125191000530076707940633884859019418990335335970855020765536913824348766308580590137986899592691711716776890100557648898413231452266594971177551501521252118614456766030664611611592795116431099797882364674079097509271914088377648889606929407870664867314169293632398929587835440626676401404583857918920368611085528365984707275053399262534177467921062020890563709179340986418808234769594311946869273505194489563206363250230690366436718762829116206531522512316392419671174770949560017304125007229518400972783904166311665548055525359441970268564422977859793615725760495435713773076099111608869940273341292933134025995590922680588572738352578799626144357257261846370478520146852666889683175222767495057853510360824629048541471567389185559176038845473551467637751624235686244159373050130970678069279270025015112877305694244497303482881889978320396266932291634234086035860150883776166392961281985772202744551529371257192048331357172273229107371581328789357785747330801681342025935295473700786767474618739754390260374651190862743128931245942061211119897033417841162154287489601894062550852700504108195311331670541460664261062234434562905300687763536331401054031744669162819311282098019349577978303135259076169316268739079479152576049772759356984789490454195603688325745977998024694121790706619801567992493743142587430612358492594992854139925200138885078437512856337491902349680979301628677170390585003619314323611528171079842453981278502796267553127317640004887469273872635765189903559985943417800001803328496929484815937039283905588893343923699438735896984042959694806737266381596403744302236210802444314377934059856831643156494288248247962311598341897864837917054010805000463489473824970993105887249098585740226546732323894288127780385365577331542544189719896997178126282118024052916073466946762103781539869752108392359435031055877294436121278695249408893423377509017598262455993205881583695678157032902658540468469136258424168969166235743688826082291802326046541081563713919581503615167688900071858559400117302215211471161306354174305473520819386150308285536764861372390627214868654674669355713083704519764953332259992853826852856878436840630547054400054717810192350169970543405996716850077189267338169247052806436511890317215261820820830173417550583979878405674463183539828931196446711947690646155435932266551239107713043103641482544296987771351672106140183068693157100608234440079708187102274257242757337880355990637080700306161313052798744053618787503429374846223003949277255744800209549125275868194779095641190368677306802133559194674968039182438332533377126982280769228327057802145942246229647827685559317233062966183048874865942449831503307855546526431567141276037014719043130086936592582968300311120274022867216532905525912171873903381240289639876838803604973541493384995121756169988612011416596298646377294393520454882943143082512075230336756234722373079736435399307038320702851280932862118940299770744203625168970274317030550126394299929944864666569265141127939795475877033851759929803059394685801275444522345061443199335724651435055977682282080520306559860233671433275444542933522918688524401069869298414341128785348265200422424113884861521054789454835277989851055166914252124947966543196685969833240797324204639309254808493202332406641321433088694378413308166591437705221214766350871544046574178478082733995647813579305404748093687069932421053482412758912709425898872632317075905418080192951159297907025535335100964092185188928446741299249628322608592556113649174957399574977576218581498685493197801770284775146981142730578760898541046449467555983464285820671936899226178948193339221083802849797446181948815173439316697186297249494113684632700254935738335103464778137921724863934312479979678465833191033423976526610174403596862959195878055720418645973544829163913330754944993977694596242351080156407592778519833740114989291891350271457802442786026186917700717595329487038715850218731036491170737452108762249752771301629717956733369634644391198719465394254421390785013506309569230314164868503891640629614798057069269124236575752103593868990104890151318344653723780824217604658175807996903473513046829611533485859072211525796512217168160446549853537272099480538323501246891007250056746454390072189379992336291890204698434474511636897138548287537522596829830695829727345625613663752686097125153948280707886008882550576496456300431929534295052444231168566105709387441487832779323080093326620668831039442602800326091102629280061746235589667623988468968225664205047497515853535715548002290053649351676043671090603948758767211837636510719601715226203018884314238394493819758702700954005444811645150986149532394975250636920651124425827857935305918322311179746077418359612630606424258946440287354982227304902649969325175950246992915414194109701139981908406081655525701985500718901538113300535710906738950057354014845875537813969155971345502592471856306292866475746728512624730971438823566637492313274455078722849150044490510162658028224792204052158108659915509190721240453131832004041381816488765401570759238470602400989056437800757691543200230134077173375343892992746241090725097545466738283830219044593227146735013067339014638695820036404797106794408165093856645587982228558516501415642659688694998252702711008130330628391894414232562323614181010870300062485156261982839629174095989787641535297155948003139746788400402785807231925406819813429865660878380166917119523588677223440321807228581715240813041042653971444279136555304712404190143915675770004439364091686968699685035735487945467765598660969829489050831230794879141779798653367761405261318943949823154579731342145689002740278982812635432029811563129549221726352661647005094091135004385482975309039104200602371976897438830829957717373825111999154304346125275920647899704782414481253215922014607331818489987241002568128741028699299992222256107900864155119644737228755282643111183411970068999958264718421694699272273260471173947670216679947612414145749357546214844900166486681635187578093867521813775888901143610196299586562536388545780415434511539911394711739159748347994220662038934820228045138680884972403082893795003312888461041274148152205003893740349892006824362540487484212905244386956185099145691872317736820707004151530204377888866985424483010757973768055198733512666550188879042909486276597946455485957211896569302178864548153176388435478297531300955180072457339536941073997143957105798757396194815066293446223550432574669869048501253016267112095205626757171172426295061623442937906944540357186780245920733134195096025289405668551018547404597956996514369958392709058578329524259680082257849783132582712909895097855475715160770820476554769068624677935601364685050955076647969991455163637121662060641349990282193394915502882487400541833562381636320578582886734637293137226898395843592708238363708587819403010186505298513756996079122947963788202133454828283919252868876433209329979571149856479303575081418237386606003437098850042824450028899938280896878630421521782295307404683061342385864361553574157030341671800134866496883259113086368418091130795607452948930594966492877045493675999028839487514108792838972292628100959253590559010364529643633431019278184068719006769899400985539409698656361297720969749618794190222169639387176310288143908578601972835886327632912312584704830534058663362362797890679240002575403388305736658804201335478334845670595778406448700002844792149483662717470640432448345577404912866176145872800598490567615282844249630026975873569280515950509153596645791974121050509918454770905834128679367646477323885664606252047671693332237193809080441842276317085382242163792602381794357117195581385459446108695553671541921703487414638690518193502185167323207718085145231092091907441388247694563819413816385529563206002242546215248458040566705429403091256672076401437769190549244890519447624038426520370559305093388881174663799880119502612629207588974299130666887059082845030260669673452197293909211411588971007378066688235845221175716487217882263013506469504081940119344693061095089043585334641319112435151633154121502019649208952538341660783926426690547662281803625741858441799873643183084945805227617663383942540460062054078483304346158040370966392927615274143824763840928036684903618970165328216886598135289372756624927429065478322667032352492240399440350553135321355786664639081581282816445154968454750099335117769207440860041057153181568842699931848933390109968706094080847935739395457285322957835732506964841335588669950633396111665943560935509579791075850924073725777579799605910801617134074898811848280031593468401686257593398590178682952597353359165064466181425234179973882167534387389337224220324914398594984674542557506417769829939976511123202089174007716332020669739930283336379712695221173158200499014009021403241385192816046292667526910766763228955517033577678951994637607094498021259886255664624511733764498290703793474085700602770392548661965849627250201926562846741866594966613715565583920170731661414806550095094625447965570535646654188339674763451825112604273688584838840586654188977149942737326047195028621198871874634581281890462729013764480125652567728865543509399076723692802875243825395598941847866959619387914152067040402328080819647482219399549808225301834157073934915065680097989770706227866204212012526507615686440959044986943236861833935219323767239019170371300637085831807700835588752155386476853293407826106158510041068305696076191956244314104251270391391610810457404020624268116767283755286523126716028079415714367329902192550754288177040132680744735009958982783841223239467276578444451207322049083331595676148191917756897201590234969346836743667714551524845119548500869432518084962855201709702799303579320184075129812977492892679840831933324196332289971011196195013762465697907623460222179101220716259135423510226114601433482637861260824140237145584367259719562867991816722024610880431281989530429091843388299672015976467119706124648375037864218852827694652906603972827913425675211432951820366653750734393250574819932650310558374214765953225216403992344094861831958720724467765158101153394456465988585149180246678820228522758669769427313480303198901712590423456487884440388604453310191660789314524074412100447590194430759938858872281804549936032625372310246815735092700807637294523116285310963971628090870931796447170524574494332621020844566154418921677930735398861450457862918939322158164775144519670087577373267978887081794177598347260960828942835771589236764637966524101177964544918259806804223032993786431592144096395919875585617645136007277255760921693377899877762987170470048888594915198332422119545818637878574662411777660104147442886223555668056650626266637969514315632429763325697309235193253704112837404745022859430431534502628574126153725911388853720813776307261721522497375529164044935925666182987724891451130744647372471446120840227802892981030839100368979741174629382510127038383917691396509748722880395534417082636548963100266162012699537825265813764725014801696647036465482330735089217942289868682861687496495347970656207158318294435717849294611654546161028243087864536861182159434929738642887352928480867384101409158091524182154558975123908758721815358848927054524755512121369332118364860927936091268178213092273714084964823766100048511920030608438356248844423757517205862421112894129602917292083742804566652445796980763592370118551961213756873450277828244889277566467821089841809647055901981628613554534994562718872257602916783443176944592284005325290502557628114331496084132941525673012684138328154563209596382320965150507391642354527032416360516109065823774125080169516033405222416374794092454596855671764225213643710155213426177949021416213606982134243615066644920905763876817780797525810605830555501331465850158538389548726981643099275919825507025810789395967652892805112851337513290651494812581120184349229981247093826517012091467621163589325692086784799238881059991451425452933393688312804691545747484108602848018561397461543282147915407272918021098824000408598522441636693287097355191440997252657112750196091553330262386298682822667942244567536621509736757152806457261669130187622215641344579801694768498476773048906495355925911036955986198716845435236674074451512914253280510435508232024461421072103077486174474489272993658582825333509074088702452150282530408155615738108974801395157274194439580105604062713101462794798270000207220799944504557131373817458158577597098635372124247545485052924075617246756051569683381455661322483090448477239611103937175720593707313865448397678589822602845079986105386013569496198869165862828574017451624228144618320081335037463386653143808505886159581758814124428208918416182734437819550942791796120731909650592050731233210494666627134841278908240878381228779490861570481392613003668517817648721313619832024835714135818923887296603942043238839776314282702058524030638522862687906772645005971618565745592520222099973610236215929000995465509221434198468588868373892551833915046385058429581151664628253366329560004435067945241700932154173590022961796624299968839209078864721533141178321666898451039994469706371212013816098654575145552136030875009727870362713851934069147222979414292663165422965719644071026516076419355160926914401248952890992156875345557550165032006291383568639963444475216192978314923475590953750050515145494619715583576787168196224934820077464428952725054189181084841935515442565945731080509130096337630850547154831199028351523881256692232518445758473549432498497028203798093146688535407794944415923320422744536372357137017844524186808625334503799122854249207450366966729228800187139910819917812519882510814533663139245931320553047045363952141994478259421231721030022484417669955212123892765379552454604457809490624872844374270963136694485037681684585270433307149053814159406070157132321257819716052218106053476954170999573604131838274474287605968250559460316183611846276681250179525020340678585302437436860503074532883350136885218625453972399837152515999770425324009311113267084419834616638876448215749580732824999834499440594158490335790818341443369857886167729435925231517386880021918437691159669225155162630124139445934470115551164269138603517335092252291748907545589482068441177603358984899542361361691115071804072866521349788096920866913482181039876223262001787031608206455452334680717392901233330832823745710144815829312324378394837085748505213861127242642087079604939777857718336892353911696129585421263483786028138927831230371587297188556492630388411094968905534041263762964355553756362144360155474060044116530778939539370065034229701203272914547152227337683205581552211641704157414799437510305587078909815702921298411691762800356818476382033908020379844221329546926206362345991151045950855775968501097608244904195573220893225157998523275523179019998940884772672548513297978609396814893968839356787290020663476787357772095305799103433985596999266092174843479995412262907416378898496115066701302102528273801417765261131106494820809151472569217927608958613077988511736371274705910974806418094443036009398422537379801135557587584021469310378795623892386723030214642834495333177759253294544627703318816753130576253429309467174577136173097233595171521641579022717569795446650209377786285731878321927943905081447058523384361401946321295224566287220596612446777787992093703854465006193027928345937536209826548053155752034230189862920332237483110286109880246216499877323056815220623019449024388471550390121689988152534810198425820094229377881476414830379879769193655005656961654201511069559537961134402845538872248354034765961722115976679823304213156199851664083094739787900865570582361893205932305151387126710984210452132939438545982148340668075175858065951744880442107628347738955454694241011812892861071768304642056057798130010046453946984202744488813903283341261179695062919257179507463687974639153564424192016215941857122410808562114893444899624751586409888912628979244799312402403672565249702348422598189868080776553033733962362410058157981247073043345224927464927410512086528518923400653616425423393378401393018499687022851444000805038668571746405558963697590942731676604605506086919255444116477739516313171223776010258994335231058862582624067528448565725530529746686616602124224567087396368702659164169841634389462902354274145150006445271558330043522966791320173474257140972106393604717064421930979640726681995231306162647255278208959430746673170571731309923260609900373234311402720098785058578561020819319459821754072139993351611747177704048169847165168417748901086114631848264824481238017581238200177346611743840043022267467272897211088388309103051780638093649261328111489191404032926485850842881246621486688643572033231738684344597100350540721405796241407778084215210061033197917552603666192684717703804457403557449725603294326425275354756457962651055738740491794298847372650965197196389134726545879334504854753736326867200282725449422234224264146690347174368744215130111557931909098333976319239512738357734731101138947223344618309110102536769819183563939917860641924383695845348783795394677418699803235027108716944613010150592543303870883911480052560378104880923208913639486854496492415325366806562549563751115864770932695704241679777863591382385511631479866622053140652133888191688354937815639151440178869643141018294644645005096739051857940835575318500120851349676343492521676101697183785536818792281965916446724936208310608089759566308711691935312236272953878682722853218193424821815909571057532709840893432470808648471549355147961193246229385821048560547230577041127116896657229006163365575710720733096240656411384363417651038768658427020426267197604801551420009132481756703585509954647816032787601337372016053947711036235413860194401660626861198946780171239141898998694084668681036557076069332118319246554016439366136551420140149541943688437409827441538621469708317470612368599124323561868069757009651154421831530122657687126481477706855919171680553908946914462649641244348856861723509571967170865135251176062556574851370859508806656693952436068265712178681580715308428220140469929495251848582616970774887357039378182091119681794611729511207480971683824640410886334609993738871156857889326829250711118951696866249330859306751850433006965872437237889686544205558817981582278904177755269415182824615446479493616169261916792951831759022615557301215207713707051818761335698508290585519092219304949002211003248857169318593436187766198599081555918645821536308065376410517943339943032761300382226906939702023188608917013822869339485663192363440590285408470518462504412596252343601143343899862411154378393431018124793939861393903786930036212876882617312960876546472687995946159851915367534758286799111634949981610440544877084025398619320218536925311362918659588132024000563624126245138021016155465696961263189664754495300495006169595451916670143678388387316066021891526888578364855898115945375334501731068837668582204097731837283691382528916660479704992167899380438505626148863054197196645971440941154467688215072895674420953539616928673347070034741408609020630827512211508723313858785002782491941873881528380373154477807404051137952553762565566079787018069783260758634643572471925807986901701627006978956761985137054816541986261816652336185612495331564594256347459849964912741864791535889344256407555020517942836276884765892060948186159306531511199620989393006090359005526818879274957124559067745053266804372065079534219888973070226984363078558377042154289056789560671572563477698324776761530239394339395443934146383322064861791221794508588232714459956894080477017494278791139373030937041560129547466365378561477243495371716597042139752687841516032508753908665216008642858577522159304276265614798203538522442199854173305967769035250452473278939220697650794997828730014298271815667329675623955093218561362658888861522874786281473974797831991532233055285038539619166391968990088104143092845532686919570060189449369638214084448143369062076198348092300729548595714436139926202636325820057854559051385363868105301715879309612044502670925273850910988147653019391708670763182795317325183250136813193796931749276867871338616778116104855359215772130666379755214816724405524041006544149165758781068089467150485327952662695126171291051194953520632398248459615035784742724179992940143014242976278049571442101285417678632126134808096485482502310803472769090419006396697036410412827891500161759712211011906582818639988451572614152165138720149839492247355618706788859139679302722550380279989780294577713277187851355206202668799822165785069564894035032565674444792112850559923605492348479554807789274234318216078811436108956701706684949694556598079308231241985154027120737576449460510293944615641163721105914508153769213747563319699560161297975023041394792037910441804181567150476807375402259633531460675307722108537686813197565377134475195003370290553542449256531200686840721793413080656917434061300314647232514424945828322575783749223391852680853277222776944103224702011759794862556296698925919743890457275339929563815071207364884761024635075792305980873607304677485654901729481304814878818326068795826401426677449290305801570297105171694402178529659786802067650129900503090107327435481140550687755776499042327252294839165655166720397744374736055904983974681898536152805168402442676583917948167513102433843756456635631700890982571332950050674187311173189740612577049370560135232553556368188262160995606855208808632889631358683638080658819629779063943826313518660532896200261194731352858100632341015386095249457228873348675493422055679175558631062617172231843785123775592577031784200845360847624821567259581601775128869454519729749238307043646150213698511398303870097400202235302339836418183344035383984489462556983316771445108171360113156073038944949891000667703473489911770355319924083144742628826576839459967298984757382830246214543134216393709967125750942458639302916645168972522654899843545118805481399318354306273644978186022248844287178698928022025873591077562367628230363455553245792014702165551251245357015750220811979289034614715737432180993857651552030281992681820260051652707534668848999326328725339425949777841438816788135486406894784201204187138480338918534562795053204597280786495813798284153594559857427802947289237931149160444005235082206663145290197600155615893095954022846829699789652580628859051348833034947823530702661137035393722965618961483102351254807449684516601645090077730796319740426344625270747630402263944634344171318580951791978893407036945805587357547024200852361238323054841962366926325303233456062290801214517760286197169910267675806661657367268710211777459585435189492952633939287262656621559397994025600591731517762989850741427642531068284773893126122461500484248312697142756265238948905743224583734278583244012066529279560833032434910120451725503892469748190562559054065198122732802758046839487084387409916236564333104668728250195983940364620165672134232436882734661175239991908854247391493679983286595066713121611084814013223844219329075034497014993167512030012729291499951553071017333044579687969103440859583551080132897661516265188454223193149704545605005594497747730792420286070179984944512747964499481251750223893818514524819612703514571682193496368213029547086198222322964366660354857199039744276466355271925739030140448866548500860481347911375386779998566772938795670075300197312852343799594121479694038279892073831601361285601992357075415528134984773476441669076093431043453311730113803144992679598285694380451123895562408300125352802601805397834989667080880750581552548189535023945129915412288271159013330980724622712660427733343319668396785953310109863929150889381365603644859895375274775731034912729065248382789464062991490135616199072924156567649781171740732911773181990197097843442901339820705650769555728471052622452295369429760845211312841131338420933757502529166473930225130413861775726836550956883783186020803836200667115278801371962248795493538956566896245235419891885744566569994652072527645569038619150612359664852195110397643136825369000955459724626045727743218748814408185967916316716494160231036150727410162051115679470850114382100661284234688955317222521696058724262425101422697255159996074747864584513189605036932374445744732550754589267023470831028497955269420366402966428317510336849526264855061017683479332531718898996536257541448389211333717829608134639818274692937897054986763137589883397315637340732923720151520130783141009435088234705151133777925497778324563336866253990804145282821463068918060035301402231313334563314052535396634067675892590813459991627257419345909719990576239379319411748763672551520363682287071378647909828490240438254135471195734519921632721157065046230404642312633743896245804595576992895714523711741931122091976680336604918481883617041741292063149548882983524796841072413495558093565790571357452339213693755911848164672527978791597451091717516229974972447144585802845333840318288671341635848388355313782657337835095140138757379024460856735448104797426624102541352505605352878273333075965090062710833559355964223829981240134023375813093840579995749243479728718638614242455690019962568241201364969643377458165624821025027471573803620603678044270403737803985118838280221654041799967868241559497014336095082210232836903264959894759724129356387404907488125215286313320652340056840445281392571572924988303859674666653734890387371781436984758691784125542019156933797343440430959013068103109669579831696467021704044923664118095174793761260194350081532547475037171953400953857804754684736558736905961710494507116744847752011551497354618707766484020246289209651314834896444992924473462048201084838125302385497868541267779921719121230776419440015458672715353864871901511138338487340044471891735106105990474780627239354761592921947380591004892352416281645218339128589734524927932891822979676637495178183488216205014496332096021879681147347160475521979754673529753230493440958009522571927463252676116356503223310081162860138373734183018847187818239746082973471458908141770552681021391931177443175649200623696683048133652411617072375044888757313445727869632283012422389418588409781601470199035633373772980476407010437347743370684370810840908056627443847258592823753188203546700230880768685247094493849179945393481311941333159225602277728374831270965204170157572886894067312333582813872726353543334832308326499544428621463697641034160632996627516210507246647983761434703165739295979157035909530942037208231363469253335907303452252835043749701391491080409290877107111912633388435414977704914262325786017006083790636970869443311853213348370942640921995044870010613955517319215298990485296236471553076631242914738005151417123992961441867044316971771726231850597541730776409062876808138961844347199678742505647601271220942242216278939671821541375451620784681146712770733916679152154870626145568511068555983954222393422917381624353489143038872110419058135837538678750997312402540482398043256564168908975081388538025206299365192424093555094630466697879690602724186685682000696370667032958350735217931839955409623361572410375922312172561627184347601335692281570311669013812179229961833896037200096990891552357187257282072623591079624406951754984790446612256344364013677015176376554968762676152201456521012216719300971288138861767561847773442415047551357650698765019741417469469095027625950180972177871298136124340339619849297175306136740696911164670392494209118562618942158553206872419318974166980138609575991889938553379114256001029736739633184248111095693091686725088875144618730115583290082158200181690159014455468227730550353966510909653461057583606313445227520172777479430089786448626799552224813304282032524954103502246983902527739636784300320202819225325017224895919507698440817574149096300067129671227842812598773783045242328786297200389378836315599633528249874191108380152767496980589100968883031985256918039416089771912039401061391275078557245810427790652092885809095223016099977916388268513762804543461490586959797888153597306174435077502483273302812432749976271080147426806608057342786554920701107552264751525158827671398215505587193220220233990210031992945284868333456660892860537957781211788908119224009010749892785511753283495030148756518014995640699198423470482717545434523988884281574457824294776655184147388599943071644646075899181161659816612298269056425551442824405370114782860685110511745887785022120568240139497051542903293350000729639596032488894630327265801900452710775839539622415776276457359542895549848259466596732155259992667829225515248483101649873628726515567735986917181720537532244124047980430035271851829643632187996667080107655788255171724159307054577627519002846531132332355696045065669302700810527562580496400719475611856521578951580706363173095500968044777910535080675850069545177775300791679015072057656821391493061308482745196256104188822253911012801454305234857836982248556571193786130051656408416185922390871207097345004648713351946852582274591538203570928423293698229260520103239557194471404960277797152601948579457496345480607827249322249107472491970993746928912326587705428155678282636712540734066294148276763502358007427105936077983501745031745893311831124246283953724367203280886337736830068179893988944881228008654365592152324291519084512993991281928283243712007622416986032432353125479391413392131572659148942021716449306054629303796373882775804906665759170837248278714587211803745436644839812902625889443850789163807912226633829558155553952485450684550962953423592932519035649923618346307184566130673175226927913356539360930827791667797277861632268894058459568278566449466857580067962756341880362953008853186529556617787339778052081526431537390261067912767976240490370959216085555203931162619541550244575323004868584516333215014665962880551308159064355226567225570790236238959343230141415169382900316714772997780970971443374669994776006738051140108974666361930504893517544271984965112599907412549280880395008658470783390115127170640507320999299584286182698372643857219292937908343481058314773975056216262091205365233879678102404468063765701904784986398168803894282623595351430280779766612625493217618047160114497494140776760055785127788790170922670521267968762151220649167338389598000132577206590833768841020006589672339606467005868267498601194786224172115030452778080046430321119404369987910165886309617136859054545544980789757339854049310800204165627784835183151100239104907154710237728027342389733674051152222838955694976090585888056330329893074892808330137806759139202294560636920580694950418451872861922817960043280814258114385394737311178964372307128679506351169682916492514363920301438788539816350056563727491537570549859116457499998910233978900807292668136523357855963925637460057176457874807260401014905626141754621628078278547691017157767820997693286425815168357683606274968409960871940405356058317518641423473004744339526689738600042396813329130293187190140316999688633642186659328247226840796878039387293714568047642620642473961850856398728537034162525848892599771332017332490170290642586694969137982230189290464077280126915639438391063846867771352862773176850779996649048299689487626058005236157247399917009714266603199266735902093264453840539545280241168068043168685846892336416757380684317585208810222760332030382109160025044529553157192767736512202727114672977307460621095556233743441716634329498806304313975030970330676001502482680555796549827581314819571275088622500673215698370410174610023918095818092378286554324324972039787425857519010821224041527832768472193705657945901106270226803075352687699118999811956365672178351026720463643683758191648733118321446695038786413468323309922787570097682770793577313787444365714788183445833176072808390017540700040501980368318672594062018383532398355346511550685193519412020438102881764547138696972784431213741444974304153521717557438213367251887702009727062390519874238100784804225635145747548171220218156065112161199560240190833149860716762220282651796439990673447253822387514292230999455837065350162248703950542160748735045136807889353880699997752567758801248332991385199358629756166260015884501843866585234991789760107766708601695020434766203217227032121402549368500110275456795162059992243977320745541562764877463481095320236514503729042409805500408805315363834511303951557766039072483930958459975150990017567924249455309562201710412156762252583213857046188232525703022070416709982686887155475691208122575396236954447982463739562222119789311660911145948203149463057286586464638852711918313278198535159803342900058362967836742298831078172954545276270572212462725174760378554736843399575874235865670226133902594917135639943814923678007382278743605942049674065119253066899178975696337130703034558779820741927036464050066195516686412746078623105869914771555083819897533356943702754048474924230345862174446898955268204920128501613239815097720311667606164266455603107343785278641445342307818838902014028409014850820678377241326665182730508516135383787011716917823309659587695824693664548427541853619239490154528256229120796588250527938186471447809077188889515369783454187788715231206319756964013470772838176001664909801024671278177231119508306546313427216913285848402364818086540321083115971581612743017394707443083762290070953704311866455372121594327914723392324051306905712425232155791638063888077669173479743289277058474417378720188562227272617607561670304702543647547866034653969649251802030719115139873605067552376285473020683490090497117559463080428418202550008966468593211823055412199994690835113926645407290734618379860720602797834882951400519254520393449253380787905680653281314772694075656456346296990568622526527719761926520852279965050320833489498246314969094544470146039471113222370989804899288471276252391601085970561158486288703621152853262893313170157904416570779367582204357900393596919342966144616506668593214998613640735804618642020234774231592933772012748048900912657515119432822862009994653538676067275558197480152318081005982290398766476325083125549436100986734468276173885911748433353647599608210894541362033935541118194362690691330092919432166139914641185996738603421586440747970872525639892555976087625433137978465998596904328236463928356040462021249185400491351211257129595480982181230664557986461453309132377548718270772890525307996271491213307836055513993346868957251089437319673009586871498781197592635026796440237561370623467542175489404372644789712439462402503602601719635804668007424834602193359011826427079019427412582509835664463331939716998234104100061665201268000678563777685946292247650963973710152121232165453800986561522563160877840066826203861735076656102112534454456396221111659232611787884205959150888259161847504438162503597258320971627722161992881749401677829944016115511482144959550602517972122307283449876293596584219406529519564216445561460005616174058193881853017213029026249725826102738757250327643597059500227206500986128116885442702016707011603338020469839337356990213867711744601840773203154607555703797002962409441994925254017940734935618775773347423119387016084126200831809580514802184275060919573557612209542551661699492915989993010198585971271947637208548238592490523638966978259166340265962964427403321547768527085861523978257394830714155989674849251870403367630275971183926549814578721216406385750655911955224893403196124441182633827512615601674316319366609737869682030201121012719555707876318203252137740721840850266597376152011772757957528684368054126961871989766886368086461917571378953953869688389681953278504683743786377981812556860241384991080231013877800442701322933570224338687801339371022782771846048970960119511410097222434363951724265850426082725059579290890938892555652043818919245972739145673614190276708666505354219089928165926284490997293672549357820105301932431332227846380129768057547637898104680478913508700075876610603251778599206306065315923934586593026153010494879748912557887655916680375990127462470736344997178297936395549699662217410144943882537858504183569584674114524392892211570608625121431589219239894277489098307516461088673729023773591012232970335265986060502113893097966087418450785275540133013157800749568468637039692724396866044513870182693421237314700315590298488309078355327620893227378595140017848051295607894350381822484142158790422453750304864746892459122185188740312081486286677432151550313209044735704298168648017877325340787280314129802085576921281549234940057475467569895596158852383813775879435911938155506196027259985086842963169514790252518602463544241488586137726802301929293972385265720342951857996704622183626523431106769776906917921209387517598764160879501120523290697581258537117732397329384186504512397900278701088459455824715466266089052054234677435243702456514084053484814468068957212832781637701145592878460467999523511097388983167943124718661654933982540231594442817584212544813953820909649444076174138521085569829894594231329619485035293780789276069868036275276266181294263516751491720065838591569691630158573689617523515702865055697499003835630644068323347951131893818828461688637892060148975883667542224028534765180469831907971463717573675399556368387856328335099835098900776795806103981807158112784669035920923679698274945941319144912692578904072676276897113498430799733391797787699231260989290449581393214001481335191310080000425039125229760351914331574933383060507750202404183487755276770051475235756227860836624717657058978056535550422126262584911167672551675321337673117364433166892040638476412974622986231240370060293328086637813454051445030300880226640707885477050216138937175158250980962416708828000193439783107889733242843255130325141935111282381999999541227463125025908291494263421948256809825073406272818043325371524664565197852219091212461413973434820804694569457283260136965038891749172894082518259417790967966242635612219908248017600563519369502830371880749718233351293316733731462447845151910056915340411237723929881438705148049836811536226797160224449341014302841765689638209601996925918068094257655388447616280152629912070998157575375377860900198730494958384931021123660584536757585971220007319166516083705776116563721856168727313636998616581131514687281399014543080156129238809214940013895515637087735794264986384957625768841450081384812365686509545501331650124219691175162160278379598201875554617376958793278422667032340486998450394970321242672393820198325570108222407862586432600163228217790514434452337847230523741030624054824923607138085759487040946453511280685685207980163965175252342672053979766357204880848598124758108765457917096241688152832183626567798786111571661075690605127555457458844678835783324148414375411232894862762352603269099224737001865732272514234011435044447384151137593814738376126970836889906029658548514914395470744422863212287050759499654734832614421996078329867888635175555899012752091245652861500151654452338153585317469738666545731499951510377214292317052349890045127620118976043703578534896169987984632082548749101962458155257451434264002051536544539718188547829419250631220106252199309384851452347666731027650636694456780083391279678906000258811920712953924545174931610328713754934718507922321229238133478756881610513157247862212660877121362317174710164798156753602511297552701940692029439995965112329355223017589556852221281459337943912599533896492024388217358785135160884930205240016558547294023349241392247460849893462759504204588184672965660862455888267420060589156320629068263022411106715358329662599888715922010732170594286181889151487377323554880593335008915288544377974631893041739554311773626653845125622472095737363547360545690256129012160775270239741756146239969165571673734313761055247236304426867270639387718183332715636641865120957001486283630999556695895548305173347351437311080792111036152013441049247619390617259021442079671383020532335079166173583328970287789408454921029413415740094566372108887525312049473675655224761574762606092394618108880254072866109794155854865342240246315305187091461301074223890563979973172746355463386795695156379216900616954015551345761299395784317069521955667714878022603566312038413775599726928963327839285482484467094198831840151107957248288603237767293426890184262605236998448757223776298822610463485565644302661900500271140301203621813324184067616004740799548367021350647329550978835815620052054467443544774824708096512586392560813263540140782379100719321916956463570865874238716125945620838149505010656609586668349001515422923706640036138297242308374882165815507897139704251794668565120277459130662310197087581592958151290939141103306778935620813866162365834165371000196669815210874808895067444533598931694556455414780726150788345605097644001607913124499759365644054640534146439211463892569206467805730599374327549923758749898081288905181673360256324191404544951746742437708149932803516067751062269632780260842827590678305497723312164666408646028248217927291339622733343938345702950071759717245915989965149140126478929356995699372437812649315833882522049921862525722499012837801774259365678028554742782930421956347579682203344964953533627953868010799371901678355887290272905574603510429747842285464217060351433647447519288500725227450014398622446079428405661706231881153261521503088810903740386404570566648012988308715628751030330374041958842027768731989619656265604910339352792972683462622768273814973585245485733073392108731995959498665506470127973200884703981925068717241317639348384357620331361983502782315772579723961453777465609196379914300634252444189478449685630369918742080411306714275508660569873559243066494505064255726114470486478743175844271294414171219808417975062485620664217917557740029394220885310966704666783663145266100331666025141113247262379083990805992306909762418116772069389410155876236076091589486953484593670031906871263540556501450229056699353052379181367277229424582117556265524516685240945513727629041571018179123202146863662287012194021718909425451612325873916510641130061672165440287988671099637107982745338082237464933999093509071753054445380198552830462802387635980180215057551319827982586744242906692228028412442575540691769064030594901632926006456218560321587857322121558125310593386184364164147959002404866679474341822522428793357260948251810649558527475714612903203480063448714272516388467668830475957519328830217370342541490900848196249222657502372518725060302091037648113636120117480443062147979114358738800719575061675484209485282192796183814906995490957706111048471902778715078423297756448973540336666438223729803711102316176753754904714814878112615438916486227321337443454053812465401040315400489484750934230764079179270480210834474871531944169668085241552347789263469730272221405902364777408587703957750639814144482164620407413343822883688087324158823052112314154063553569725957948445205094971269923762071772103800876679418405869592394194300033525882144134399122477523907401592655367898883156182961182563196531227314276541931671788848239869136545802541674281938219020794187073058971276523409355097413135237257102770678924767174710405172446714155455791104754009043702408014336961669484855308968114209724824365260641985402043908683453509077886004082494173570215745120189666958995725078574910335643052145753033596029729944615998817719377142351742422111621203042423221356042430704488340472472175204190127944876358283801155753195091336199611274139457810491265385698679311298862332098325352628712851759502638883877831925835576302277521707763771688594449023158480744743199184748016935399018819411821148342951655017699027851536361864779724394814842154636512329601944172653920431130566872675410973519005462794078720557370261816325683954631391212715976113295130440313335423509969156660437296062157957093965372873301540102105905747057070126097834021242173754944351286691556533299559598136826849031144121493236447747904099855272203942241752736161987907365751821157853147363534277738139249538285080937388234678419938354072647569326101736365259759709637769528121289592579780245424772792988205613886622926171100581159814222613647059154928392546121561674982991286474967462166299160766304400626607582259783171018951375832229643060051740472326747120236153851472507927953674401113689353670600427272972147567532846014834087789571480043471340808072759364671114682497431901036814527219961502656639067441260208722068226796193701640497755440531285174945536904301076371063192317788892005692994976415761666425100002092129102337684372483645191133901258350197019940839905500199574860299391660767071094383039907503306387778164869326476299472988375618290998038717526256770425586512395047553931436209007704334001751508869828882146123148815343376714949592112569146679477574431772387432845195041551714668085068773819464318261742389026454279897042983117594552255746217256496354157763721150167200439837072183993139852495216740250402801031147252449331218937497517987925618147204320731156075192808305919586699604863856101444026778953322259496808732095433236560590560211886767858478825931302178661528769142377847867903504259257111914264925908232626929024994967905122675428415246714180686290709474274125280229524135699359373367402744655621899856096621534998404471883156046421414742241430546997856946669739116004896379070400322656909963411231731038820357174871358576987751534305457937692919715279189816770335000995568546944850062833252561534860071831798699684365057060406059852257294754981584541505840004403833816923802975831243603201795403833038020889708065477775840088875056204427515931050982166076852521602553163329783425511134632724497104109759094831672843109131555229184631912567165715756066308293352764877057833135556015720867009578842787307503981077540978852016365791206978722196176381875240019887202325621969488842249103685491117224526115265021624349344973768947588437550444253950006914492435866528528734870837541472315214608342189179490656934644623049403908072887120360664624961295284645957000923895620043573197709730432976769661179850776643646639731602590306504397789915568809521593238302741384904821011195340293324391890200115434979288995604302534960333426380347267185542670337659745790922370299102020027154460745635287430355449824219611692746942683781303070647354309287105363456590944351356354272018102282957384798048528008648630888229235914340569609548806387033792920239502396447437845410905807122743108451660108073806323606181348431831733045278245049309621069118759653427219761579118555036471699208562144797884710537890256740244121585940099140051060957297059413502665560290660845853737700461292739174874231392035937595755216157690295598635364775070278120216001114287433358293337066971511568240404079223772860261486339160097900137695721706878684542102496255286770813168388287662535551395390697483610562109557534539205269247515035926579739383852528260233988804649678044995912266299852689340935989818621161092086778270833313315952304820143568435526813046822255993292933387714118100838865264987802650862792571310407505651456730570960448440130302158555834547868939620928773823411379735047764858991404410627465327401850612981632284148070284808963233215516971490359546580071820283629150492125516390384531243480635683569832584036673977407838946252943320462408298879301105833279633956738690487265775136974107944417301332435048495567651104626800206262985656815437660166497519751934107390632533533521644133887077774053108557981135753489699888639529486392885000337487660894502590034525621845134058769818645605674669179782937273911352219673363918257959910037615751127071965280740472401283700101553842823439929989946702254911340353671888952474677305796967104028345011473073598645071019836139310284233405030236354402167036381192225482683699291921765919842922694979743692643624478934392040749678998839034964603740386035179896437132274802051637127124031735637124663699779481234807690407399195719389261708237503859073425592700341228974696660521004494404326250253419971710167884776697123166388110652854959877651123779305869699974791104459365660582684069246059852610415425454965925676409017365809067157582680010263369864638429251606790981971260204439495960321250570440868038415545420476336700860092572995384555732658092055019162562909449340450663875269197801230284418958522982558883393057076098111034503917170574161233414532414114812280894056674470761151079916190080726929473446201618357244559492227428635592208595217581838013165969700277084239667844212500676669307207309919644015878729957176671350127320372781154865399979236078947546044552693936146632155397730508110474288337691249122413170497762613984584363501639677554630436164916585260865679081790041512967791120273711615642650369343046413814121683986402765758535614923457339804354250909552085989888930870311258084092974976114828603957784849339637841143307607123308274833141669088021126579833821288478585298879776623793894983024136868006219045338601047151264673878375005462480908457798458211007671359311757489149568741872405375182069390763154167761893791112200897483289567118640539822331871330048188979061138635652776751450290992467775505513975111985031257702752309896998298135323462782365973790632935342168774210159357489818781578054699052615919504379105703663711868666435919803122314615290722501940739632561042531499859522974644897678784805983336344155422586584899654668357088050650915297555471337890339540504851380287403667714981611908595874267570208498409418350190173439851903460382929545916305444019330768121780476281113731121181367517825621557916503394656779546622803512038230924025476624740481981395881894902617143337770569849369482252180647449577583358046660241474392180674221193200058745096448174507044379545561081327375844478618058496627849246075081645186120762110808642155587762057346708425871184395869431858939890246847566942697062170742685001912878206136225872881275379975686900124718853348004852590022098278882002648691683751337069778786817789095182196121125577404064396077183691050735708375604822586122093730990313500543308306409322848856708192331785408012386642839696585395369350791084830628209357697633015207588797185545479718084131676132156500757309602217296934195423730230811949215879033607344835356077512787672857610702211148328486242630596890813484939362795237194933904949817406979825489234342887664930518163352869062083761841328395124296868107361826438310147742443149023708922767472595432699906631689534499277504294294935607297490795862966958988474428899603097408132710462569301611284105482628446670543050444080488635199741779455394314803576760720947652566393431388410528388455006145650826540382239940634398141184436260563431047339803720282857161342732015567089613200456164916725166002132087785952935673214446874369651856063397323659819128748726018775942227365612614750348195414109785365049424984342285479016396645061288041565438005524235761560769916761256212576315983350949908322467139262520672491286978837562305413719998349138567574948698782481191629315722913281662115949129057890192992028730287877592890196456647905885624693311020283790335999215764284374939046954327709892365048504566635814030446281601573850638735652455506958603214911795447828411518277271197666063649196157050204493893737186325278343603489855706979013249776362473780462328717341493072645204757558019871304738659495249862009709066042208596974074945027965328337436608315342012155878441076743819495550712614227527201840953004265392359333286152034704247935721620172507716811568948467397668921223568140976675239221945146936892129931101135685860134470060087708434621126801900128047703094920503965070264550981751965408382316875421929832179473220643696179024109100204139061216041052576641967959194644085743603353974693899661183768841302595953892703250899580942186180493559812505756603340682997606736057783333366091674438981012043659372592695037757854237157762000851301017171140459367683098660119650703830390854204293990050670466215166011011509908631340131124757185908568690437586915610732738284792079322021727916556277016668372651386533014361108575343603246419318106537272124707888742830714469316782743919431923825452419190596074374499917846534289168472443455780607766434906885760150483402516794991624998682830147600947967703677020152085054643203982065102889262059680351884807191194099849312709808591549840314911249717042102860594552728214515514019820353914220761742551500654557909894951777241416787195682816638434840905024673018932470354324927855945425784729592060627907742690700215316061477374642356362620215266077459862542082676876678447109021990187866773064295747010598598943391735638341015677500120808608883096147928051229177249404043171797436018509023061374035937397795633813141175453269838817996217585065194903503821659556927179249281473755478118902792489972332618218208845101465555636162671337786580168528697832760780559848942194147677010723609755422592847563700061811502583893380672751239303270199600650129903099597543385021499575243544456164921433905407722519785046611852132707174600651100575375625983968996731443272160704702099442725146797374753233798049651245920025642344370705349047315675156581136998499120430525497925118919492108268701186321710439181205241244566393647054964810704883939504134858949665858438929587301500998166517150800902212634658216314158757220266969762140224002461994053044007671181796291302069427639660669823333393635549109611911339290389542246697166693320707513692495947676892740351261407784894399765786211056250982270787632089468827184843087322845097690645825690826758455062976438039501280440114759075416471367861234545924609412569956341570820422250465869908288036894636217361467974777958360547071280782633329675879762915099393551514781698073219831386752469137974299519936190683687031425459450113966289436621962129950986328251231681303120157219527863101637170166709469697919479663542497250719560568092887228255865247977828842720860028914398437715214131113968607123030531923583755530433793752670077960616610207216094467643619730529457211589348537092492001308031508693769242999786863137844589098214806769431631089807254851603077512149211084581300973894543591600406117067119376178526267744991784518057011733960472804570936889662147064449382067185697732833925750314984500673549580798019424748907832904271505439411207186227338546555984570252523587538626373472071466289246477273704216077959714990285778187738785370112420777563112177955767954984198150473707288330332861008579513018415508356782067327631672681737689680656858439295123944127989380101620329775924090988845122567096735289067664349320543036467145075789411372985305532310868036133724340745238188425561043317353690600133629799284644947151783844177253327179998661634065454137026972474017819552949046629618359606389089471675381291156158811838009230602582858499192196597251514307800114183997085415812155483878082762738636326452163626566734036897234394978330565801864557361947154414595699222227803040903761632726167513096600071950516599994011978745657504458848227706888112949874413200409655411890558197001133057258519333443380857553128552784238678109846042693851105376642568369118295989178903306451643485412601443115922938722325932812744923206563374573770176966206023504262061899914953035951268101085759261844500845862294757826925513600981771758477244784482584354908078749855027396087779355512823414449840316854915192952961148986577875647409242684896518176558221810723076522029346606421462063929104293710655014642382599597538445359497103975715415131169823960856745220596038998170627869041646797997425958431124762618752074468070762737013967315070190043959059691260990208937130567184287956931585306838388332960428482254578247498777957131291759220679928849314605765432825427686736017194869705328775090358112815559491840260951345103522825221204697400984584974795374540266204235497232410354255206442867354435011357761445231627738899479563089315653186700874255208105430646270949807213607788449114519413448396830455226948922665871591317286467453535437698506904126360596463841955118308555957460365652514935483652905304327412072131618943238535565876175224844877620416553312757758887530656594950198290317129508027584435065477965553452282741136099294676135513528051345784765192454450781509381209492832823092532045796232859602316989585986689591079079375570318643280116567713538039027564058279662364906228808253118185037002783051358699990755524787469896682220368614468785366912145137159790315884060445298695427492892909537213026101426293543355539580468590084790542550503257998435861552617616461340364332478072572026404298539431703400029005296224854163098681536944917209221374907379508158581660044496304873730079112113463020898910303911286438150049093792950028984780636289619662330978697194618043742214836233676760229845264751777642591653088017546640351394359792073515267432469660890096396217949483988093220295755986062353532004696414207957375276691510173531452522577920969067893613508952703402948826763970179739061345019731554660566183532431303200260799944551914140838142505937800184956260929462521188244150116438057335566708206640356044024641788960993834633008908181462359511442949266482956486390479013080404813851454246030256607057054259335981834946281345417530779338836292857279185535186696889164436109881949658597297595464455927474473889292864716690757984560830272535936319241510094209920460166314789525495453727306751876735146987955459434450448261555612937396628590331995508908121108896576829709657206166510263534049928371066246908462503107217864763583589668108365502615666215597767519918631830446608803732295700369553155183519156356522280176943589674376225480469614951024681379547371050339337316926081665315292522803529607795794548034682810253993305269552053080887652476775434262589325536163219282378986598775146433105237966616356910230193286579824851859450162677814129974587673876119649881270939008234420253522281984633575210981202355204640529347377930203328340460949773774860449755856934746911682550045555115945901669367777024691067525232231672394325455237503904672014492796242394595726031248997698095710954348192708096475816373060445896419441318997752800416630750114660996987454455968681975564452810615324347414984853342027751056859534799013732325235304807514761078553786903647581841701823515131664953424128840878044008508685417192325135899038032853562251182118041270892022543676318293356336789845172602820077086359849922067186524281723782176652365981928406685643445017783674092641986568657096889151693722057099335277275121414000348060618410825197816517770857750714802828777768505387072965990706591895792222915162807585092106308938561866628842633063040873019978509096169587571141822585134661870504648495397775781410733661148093596355020980482537554508804658708284872126545706642831160264828920933307146842996288408191565631404400866411722156944925734239319972908843578982442800422738784178706504496194855594503227059298283686455215192920095994002097891346465088812309543028578979704372124463094871783437625220452480916064494820066661196083692174742423562988748169113015838517035022328893284226702155578685230223469897584704275461529018349619345782476743544888786060810648029636468390121568207559699026272779146297983462803838744218910601048727031700851068046265284974917396205289882652270493377130293134039073706215968147909800508013285568107097331724490944003614947618756015962855750983442879854845368499861500095789726119735662576044878778244473764034521431536807817906758563372552601026792063977956415228639918584357142143626907608162807802645617064217273261559958801168648871396355044005873619855406190461723941817162699320432944419423524205335227488267314944049588338484693460343280654181560602520946721852014751374325526447501527773350824843920716596953351177312242231344583937713754513220777393999296158986345177290159050162877288402489555353847266369903053114233029494742070262194872361439676140975046374993365122842481306720090219921044728500144861582954442319951636318630964348258752060853698160990032043382082650426773774331744306264336559093476762549635308529425031321969622289882052508101171199089456908548350672689529872258871577672123404712084524296563472651398701352307472114443285797336160646242768631316842247788951385416819993782947238982253135261856967865761724850179485398951201678057544420713058102235204014791053861526310594422049035804691106506442518382846939439324510779976247866786415660417593420958925006009262570838461874183603153163977392592621449681368623714361468774731068117816094543359768076762497519472507555790624277787065188395022683624830901501404806465322943616975416767068424004994798862299902256592541286067264297447449619068655681016943627518652098397278883729544800072208201290290035517334494208158755531423946033583214839884676006897131610829327320441496353440447192827922958577436041705481634494725775666711681235855704466229937923240685394072087144712070934647263992128901566310657492523059610139414242210092724763851673025196307711238080403830789961185408362447354518529114929298232138946289283978623215177512898425771385190330130091888788979300597612154120756188601095710750234079417369181602522871727223681656408128147715216947430649489066114070126689882547028637713819866630631321323039803985151271061982569306726559626547654698028024693919015353310644876495732564430939042424381444582397286552389212819962896258425567860560244381126521739109490231858392596314292584769691525562508570414235935796658484123961399147428868790431957932618393896757089660795538075981705285206006017241477935769671666098538712389640033942467185876108590360666341504322606195355960633528574394473579905485334356806177866086290858457041305614042549867050891160348426167382678728065637189281282133750215168343798279371086474349528494108876526266325970620361473420496509514616255805461099770719710866466285619370811880005263859270203485334262722036998271785847862393615469542075975485638360094293958014459482636558015498464813380448782880893016307416515498767334953632482514164065996435833426134030063788144866272739416267608997634971912598999938209416417947451833478885043338880116567516869048350372033797924779268985728766393988323813548143867552183214036094468880783370782886585331683942506020865259431970411431556777863283915686302814740947217004824921841497724154907344948740887605008364620303139426362663569032101745961406329960005744401238777489811485811322652523274414651063034502735836479445812233645120635233456850382356975441079938323848673023221413480307646204021343607761388210926658761908461810213417443124882369020648461905730668998123058347891917651049219751518541248183459261945506850798525012857664297511844412409086678912548058729709001729359671301465850486638351506554806859165396944885463128142051421204961472513065235430411361773824221388541398637897051443884509950680791892140418738949767266301368355823832023595369964001731515545597036255756239780430506299487146336164666417076041850292107460662460656479970279035257891741312871078811199546996708683558803379613131705548522439686750354417575701058218036426296785191601974443644579649845598317649096195642518928493736583693865861031014494699943459813273561308047434287805842697480154157289835621878426414386880320142445463147549349393942154431517387763123140659560899394956440283267727714413177173192156406017016220788065271644222937406127559759994476898544010012957810269358232600659120177592214136166515480753362927740061498011772728745210772825277080388815028554840691790414524041693711839056381244399635454347739294788841157623198694315898710035541564528137710114733705508007168396225257138718711742179917765390091782586230792949572658842315374178496673666005251743892304386271652855953339475412492753358180935328071483352646523572625808145547428199718395792295546979415371527136851330523705896363909311889431627792624403149677576847065090637840262898574789322729492060351881869956337875026520481530399607902088583652181089442910001765411225249226520772644034613182231633149450660492099177551766714275197594447050675477800372029474262370551337093323190025626623921105480183711448376396091187843079386775323672902109931950052273797813027945970439963622959051838233859120962979990098649449369458793286662702024625180715376212741934511340272098003007844537282425475102987951028311521937601135830467895051218433489345911967407374192181464751229945995849631174671016022340585861718581115618302757844482541847535598507964822885067404504072327836906586697963353897995094587464045621419472931709188133022621366110651827566654732869378154832322059944968994813298994568067748893974443182169567689098599660285009019471522463567446739418178077705960932767776431218861747797725352092020918429614184838995420660137692884956080064918030806692326283818492772329444782736782255093541533289000086421963320588279170543235334967199017838416170264571008578415725688834642680252171316628570764907737093412449781731460886733655074003872112051937991544054588663742175319189926294539722992480862204408031246410567458437735844195296002384994240137857372866147538605842956993114955464145520348966576748240888067521696009015181281228394748575358832898440896269894004137040257985150692437433424170968163140275612633363104180141129249705806954022680987139687101222239432983421720387177153958240207571164706483096430669408677778533550559340648443904997879732411790413932877481274856996042842608606966831456071741161668539956379715229296897941783031700112218383525531861168647244566858166326091382253418374531590989040080329256364660181126589021755462735429277223676082514665251474051243694405167282402578673341510708162370246286244682209221593569645463617784219697572700845454142300508765515817896721724741670744642544707419001135685146572432453099347346630858592037804317281999417138328898655881218193255599704234694890357124993650226171034057749293093630420788852861603501941388926459947123863326654947023709236203925180470832371365658407708698485888300964924404653323200672579993296323700685575480969928119584644173620917324407503234410207915791022676731387907144911414861364603236600454869978657626733983827699224405530458375142791101986583087868077635382841223769595526617733168676709568209409966982876679137901012507014256415498643018531166668703129007477633609962986460061482074965048293855826687133886941103190183138904168530761454660832391592426522451414506399230305468732664098342116856538919591736894232543684644324389812837044339559341070831876348317087361774704677067580039465700444186527742340671910878439049191974172496950531604280021158472408747837810821085029470139756363708766333347413216491165743490909537341598640896550588736269166166905724337819660907346464745766223702529905987998236642351107549336311747581934485287003356471214881223322783440003936104731404171094468365365608496015891319353779451129543034445823651883057132472931199751527055844971466888986235918048753129325631044998761420575929212069440110083906083152590207976473474943260088638101520579822378445859866252969253591013636621746848911413570497822366383104864668595414752075786495187880078617137334392279396713424964936133514090981201595851098718309311522268510874015565757200182262970429704248197091972582749398699754273383787930577612823281720426165396557436798021938003246207206173562962396487651196899533544304805966912460110187570837386492375332899312253513546882526333236291218050411461515386338025857851539134988643982723883840252530504316898606611403425171170154676506063161147745419915357256223504762679475494220179557317565354296497686812319441831256043187709188094292469380822278733732440882144475276420674076823800483864624276927863707008071140788131209521003232749556575451416596548192672080705944427814824311833750578452284082812696126434487446271411212642448083409554685645303818733975631618801639845885901051738098621871179458948263713294872893560031826698546325860480438065053506732311990304631696706170465345229464784617247039188421742388658135380198878068150315242063278543700566899592331885778716273334494482852016110613298696028832621380314755526496647917744328347842373269136978267880612340968422909260218779388236279309215593505847113496003866783149036061769298816153672700738618886094021517976067429783808661795772866702555313644379928410980045938907661927242438773798090690566442190256526351188535258519606609806572685188330578088754955315464551562355454653074180545999436600017309740767185706009307231397350491190065155382086676615685687729022450310358673564642867412158531291564379425662370697268665883241401657364493619242393794025555001842826667768553204368281297351130312772713005004939742109877121178561543559188908074653156952251927529434687338026248109395111176500696889607433338310032142097572261738214136596339659124495837378072600511882446966133385044748712565196629256704489761493190663423895315681720898306477921002208228929192847674028243226418729498359924715732215802374393938773618693603055281963160497374470258095568542762037590302640476534086549793983017354058650225180010334634165293588594934148392308941657626079213714688533613767375529929626490224124595371609749299797199213663659593375215409517274823749994484983339960916447634522725341657581673822601616644529936555933045572795715668248867062752940358555536517521227131259297323831161584805885058160731873766534813782325142747001355248839804295022265040961626014369561166395219988339742021164342490724524730955008103875924589878783408427939459273707845599953102507431574737104061569862520274820883538531232513792574608894633174456496230256725035842376459043408715147609251140329895092434634023512374569566937882434869828211625868264504230755607238620087159408762278767754751145583838483178029896415206852197597193395464872748184969542805646884210118619640345720562825972601472041411673752237448230544084941632694636295324356604112642117493558671691805069341641992906325738796035014647991224676424456497373420301417147903498716266349062109284585280692252115539067859078518349117787116073262973619415687504142323993540096823848333582366185650585012334316978446796652696882464931800635538364518660916663220509783817249397442432345693258603131969653687880862416394318704798538378519062858485371659079762313148038733738011917464992330257580762661027682094675067755002055852779326758282530274594347192282350290925516883891008436666443052108572075905542554357906010556271906539511469176112680312078552811848591050195590703346261656200511238441002667662256905410240338094400599021967400593320283989742499761762501670515935568208462902147059239412796058674832311877295231818702089975772952059826910108808130280472928823210851579378601357853925602501741259866062979415796958362581050446785442774745854415388926582837499710078688811425695107744629083904293104763187487967505285354698512995637025531589423756426439418598799249739694781095100686645901640578748670133636374808483688929360567409813914659628465549674065760434424287313269493483220187257555493856322427848587862868576248965940312283011648412164997314760798620932060698643026631416829599860883081387372420259146384946282888702681630372848027013068017251573878473303082001056471860145025002121200909084327820204293821132607547340932757338189151550995891987664395888215253003772692477507842594874906591161627905942124331032500853143872215839861073032617085563817771451241536081841565310852818182792370451771438325088359076250339910555344732152837102540414361240364163829793399677358634451026873832261597899455367110446136718535255885125101838375793291083742537153146915542743402897516032338134168019522967048281399222421280800322123885532828262557896986510797193476610430463385138177415350778741685465680444967302590396699191757038169857055850689680217071647864389171216529946855800310081217088303681720018535922826279009828843257018008968150307797909619733344477246962185692126304156431551875016218406574318232161858220361360550358577834840133114984476382134815532912630921303059122923032037083790919440397241412782847714063347811677892376722762564296294647800851025407175855679513466772292091092315147598023086977896803438447044631714158378682167187801653756322482062238251862604608819500722294071667504260160435857979020624005824011847890584563631497432598751883537949638402791185164408514421553459241279034986119429929057830894237176817676146392921784193305274233206067869792538279731613755074910046810540477706677791247457777210585889018815992437169962857414031936896968077130509457600447111204661181856283570938188734487462664664149571270744795341041989738356680639006689667128721408476945013120363942536469549563061223663271713787617917492370549743363291234676645838789441224791142286757693425899232125538438811364898586380811899053908794801526338587022250421317431472543547405168586744506021947821076548506916245731823711543154277858845838284363915645474435400747372921451042185402322523634493750867461655938958681108213032432795626748912399119447827556495384949010866280094024210890116811224227347443858637016327756933302914498433899419905042474369452468395473172642488730544162991615849062232774116810381020486179665037968797071147626722738716730409506038598880561215175990257965370293837369865006222182561650418500801510507328690912279158544746210682378227095688028662391766231357490560355836208802837507455488993261234330909436093858468140315923583401155882244817041116385887371316998882750669405271481515322951915683088237759239426541998594471677123122394362355199328781809961173440697635192821014856060671962156236007548382456864603933505335972008474657087097318726806009179737514669718388442579760041483510867429123335525611709910999861305465449444216447972736082958962856538384910687831449561643213460142542563275196938110423802227152924868625280384221704066868493580920845053867179684657743543152598140520959063609601250741402822817979015851644493654721459281053947902837712448860406302626509552766439446605544942166952062874395031179890431281417153769859751610432561490235060480915583706062807841408383197085739142341818528875967684583283441290521013946710518954086222255359767031107844119187662757200764212374601765890504941540166265865467356692453394628434862664172497273551238850421506388373212241634203749270317201091341535533255674213764350383955634210351623519766389259139152042567066701428600301475459032093879582170010522238537579136373766082505195191363701085380360728901771526850784892554269569026103102190367549975340551143099266779128770272986198661157813737616729715396970878965151277763054181305979037983503483499333608348359857563154660790156064632961431598277153981337017140634740250849703609682777073010466743532051915931492203086570620314058541808032280133502672489645223593192306541373856483112572908449787861459931257539063341590132146962301489357592352248696239247827279135254837931692919242815073547588395913099980981842493092939592676652653829539926954624466730044918061771240774312351659366244057382654790770604690946323701918374724510323527268677348866510221834121806452504405631391106574401204988789690268283324926146402664248946053908276431047900093943993300523228528491035361014963954058503439085113753117712263237109911489546390096622467042901788512621329840606195334652544186993558479710613231040235703031425911085082081687689508602046946942277790730436024730111609519280031264269841848161285171093786627562177133877982449448241530708311116235199314368858356902281497066163444100647942732371689342769086803541961340630896215458837315177904573832430261790432260562598560808987632457473874402272606936058962175947034008273232355732923436887370970595622377121970688207517335469062207820695114918434464363268786537790614246686217424187463721381848410327416030147599025086018885912728490724331765774918610214137040028069727409115643433693193844748911609008238818814522208215974403832224502352758544291342803902783227131813479360924863924337078790885325155501294324931609120818910346097913964897557818640442514953260101321826651520332477109924986390379081441300094948095341956643908713424628793167471182011717377667328042564450844877216043866597120446082432569544576123386786060958895304238578153048326212989081705924131211737989177335119577420120304021544281250811934535095638836733597953246984675265500060831138057905615032779871370404260573537118043840490237747175552459223970672340925250687256843339485917600749653337004908182097213947114253674996499439940823772780114179045458631707554768055411293186336436046461464309205696181095824507874800026287440479614530583884112435741879107837603752308840732521710365500819517082509771240607498922838865185163672139513742900625155778678527903926133643116038954425271810563378908766946176693030028775230099641983037172515510259685171437137168427548016709288748284047203853935525642106649286649183967764360035640065435554287682319891657545243788117167894982429285812805659562912353800381361985466500683012237448577015129254566982370369037787941700253376503805972575553227117911117525855882437887442038554538941292807328621664823917950280370308972043652998692854158840129472935671585190760027353986009669961696439423917080240056258059501637766608272470794285118085185936138874881654068169786700798030743381641532320411427251062013075220828766686931505518273858931981686112646383387497780008856203065219918078970664319075323366328978724691187919531617977030725644477220541053490167150495987036870226408518181627031291037929537536237532254125291792525380460701157481386022496033230807720333739836816108556077972204332784500218852108116233053135236896404209920142952168315520118133275978392369299948388344078948542079006016782459744945989071889165477051782366125539451404569007987087320026263709947435259058479749416256518680527682907902944100577355360708611016195047937631823857266023454681423533225209839420750598889360023290084394118410695384808279891472232634273235027359656401403027227617200675943040701009180510520964959526756628155784498324343062789519700458102005110673974906915404892894748312027527238470099038043822362841407088793724434839915489201839606546233894220407896797893832990587300748625479097396109093294604360786902126542149154711816131784175779924026762733778447489572845400505503371898761861203183723616131181630429414854635670480102077407927297705234296292121654810302555879636434393705140887611227787264106521430957878782439253296264826611253947060509429946843952841406353450735361072166946572889901308884050444309464188199285738407770444484962533926590279247589436929872850956183515614981528323203686525722076109575881404658313613625617338135966468852858925639058382100825504196822975375792185190957094760889778164320740305887534771495609920604331033625399412609016437318438723051363113592341086299290675153589496775794729052737375338635189161349951705100663268128656968704298326460521649936977923384339178126063207961498758811498793675612192970714680020814592117881446832851196248004340286619242112949830245989961812000561878499392382120093599075174130785147562616279859610959049013482605880604233972648123250266123017687218171484234509917661014163588932182882853713065331649948250284090564241056036291679122373598551863112701228898129218360487014049941854533897892068621436077665708210099429948461982462085754823503475189349499530862690995055749145627582745804454553783831158119589471109601363869710634522799157435500128485037208719586057350843669361661128642032293481267724659251860299843644883476825722540096593598852850496306900185315253774488246888611228197776115584459937836787902101000738021251191226496860878633589907169917277679877781029554975623195214210250905717172111587818940841683817776262594810329405360753534400403458389257222317804867751780280280600023054640814286015113612768285898331816130818927228615116228972173276800443116791511581401952076398676260956338259041369894245650043356180338413994575855018595835154636467692110365142029305741462495714057571854647195201844464715368766541302741404731433822460272576548877784033385474283816590548236946729940636511277849264542023988615458226824134724026594860262560853328080593233631603358745249476464500427119655730955606275452786468355072120262488031692903869607628572449351992555026588142469875264016785110913479352616622434280701693731139101868938541525534253905641699442378435688808472767033291931795583871894140169306420179718806675028421170212265592632679965636744095433818950653707023167436012743949150719725104210566351863126291425791112580056919552765701673190470892203278798724019963794684610148426290723191756214991365919301408055107607900359285284807423115144115716519277378361140310183202204589423064564065170209025380069948537412966189128154230638354430946074885582436067784607723390647827426692379994490284637869600808826663378249591909004323455648406155057959171355262833624173018559923131869686657016575207041577506253672079326277319692450559403060098390073162120632474704579943523531260108489672046941420799592390741686140144555059274263941767244983914156372621146406444049590587458843818218515416197346271932070856230874103281595248535054049801588308642510478600037556924844242541046346525452155999273999637085071948880078677385240363211799955600896194057364149517865548172583307152500448523096983125544303151835149457418399969544353917209948377793830084238813522886046726824446486792387404509563735870289269993365835521478477800848561739589776188859002412974076804243630668955915765829442927980032414228539278604797715822875254340914580375445542516274677733703054355469318153107117929263072316202488045805575686598509369602695837608688790122247681171059112197598589758437523362864964166201647469600379761166270836257104837100908426450218218569965640813239220137644163087808401179836376335278729761809935855142774109486367232720022363822114695771239644670501196084400090488234534153515811003380518822508103602841619090849501014488950967574196631227202476850831086281104306553514727827028491139702463063955162306492127516622027874652908286744116365465784229915988874446879649866892892644907942117105323715718516227195059849268868182609311289000578761539965765088775167663506870291097225566218977246197546958381796513123008560177537334267474975554890381004395847736029483847340156038964319979388683314012276910302237565396691528630676130533895727574870235627884780356196408634555113383786112242190865184519036382235916200300790201654345937576540871698426897644066763751064138961195737984871639677216118193232574542336078454809882872780753930442252239389463898360210226420056911091101569241274920123484860379130017124688216243520942859980201879426129267181532628641680955369722070873035813832242306109445139282896670390895000917371887735919121648485812019576144760965145635508425811777159539472202756912340216986365986903405488233810892151006618205343929484803624446385615433052144609805513821825199132934707753110963467839812765250354873258035143007897704952165271365812452288930276284031409420954662148122890581098245870817611802157739730445548257242352529077531598660446687228635787504703618466440019390324962779673155133531536069040548934654522131437697599544218523310315232673429548317155077549729983044055675020927374692840657233677108803223236102869846863852082377579754137402601955798458837331542463226683375441792341898782772741259590490500569370202685350308356722967916911353501982852765957083496445798157971317467766288338841059589281645971329532201630362195081217032788816883821655760542820592702537038268556476182394811136149716467569689452410551668797240340442299691589583772030272001974700710157327827680717446073274467209116690385378178468040720647195745526755824177859398619952705781399626951752570749683619072569925792632393328533201942968544647428111188463949239603191334837983395886056580345634222346860645791110091314913114800034877478171135748056820599589916024241843026164500585771494226331008091191650613933293493865016486409569095852215443332645169085007900253358215705746207643150174215884576338024347648298872555468867337087467676576422077239455537205110113415451064371987662424556661890017688140829066151810611430258909330733269305224605835060323592046011960858353317233749051798199074848418050346456884432468048107289931680722481708323005570894418716375147844485894230702657697435901209977807431558451311081712432368428142887956529214972155917558700127786219344745648187948671407526928802452177412322111286925402474018264636570580698535594537367988024093637641267450045461904867232957513239165515279850161037082020878046166361267437642611428105700892356904107242366737402310477305577919414726875336429509569730172785405035743936062974371204897936774303507586296904339552332799412112204602259947857960616921299006428455591871392515401344262280277474522760430504417716871050366262342190522790684913076548388394558377924796120317497993000922011620895185518836045799463802101809785259959812319809844885055641998944512933318362720981518881327044716211341983677066960754497161331854860723978966485878122313181223786789178183922800881637945062849495987416998078182975816944092238795573471687494102090751351312464763800400858204971591926538622462447632992754158793208675515530851467076848526905191431252482356103654309279797027442135391693887018053187563917043640868193199379518868086792621051910164197475539055736351551822755776552206191027292868015757885663916978494322566753252314378053196352561072623790403030648365233323349241225187481087833449655311555632373864531568474338918764886294759383478346025802871660354486787489537529248532004339044815422527248472229959366127077642926855115501353801577144042188267855583310779361190416071514779371167839667623902720904873093811510550111847973221945720989825636128885904497251054669094432221291443110047781181644731237666671431481542824387550742759675547580024560496912354364438055425202886296025677231860503262325089611084477605134431792112598741735557516455667757476792334645078527329240410635586614921780784412882629698000230187675850865745743805263337604568297662834494871476113011800880708352511401353639847221625207006506864876050828412294710823080528459705152817582228403066993576332639078216068069986502938614012759947616146943461040550387881336314340378852990572548671176535533930115770537246537678208150935411252664748129140982020420114731719572734641621205679259081527108464563675937378050478873992928071341277870005962135953525848799576723189262373984342162548190325947875589159432016314932785853398707160244500792530804584769356947378432591503881819015210531935344774115814328538519820678930883324296817776742688655221827968588380095003755906365090943786829100540955016076263862704625333577506454228672517724113700972413127465575478756259650919797980403594751508931750035919174380069258132975594102690560779746059273902963895784698282436905748700798460468371065653536149994588513253915486923339451964411221185184642796005299373320235019966547114631429142959061233529653207528512602581600604143453743713961000584409408397064372295240827780098690988784136934214280823889622231521586141148169987247224386174308355041720272771436056877167100310599560685878450333833776631021719679500871458345554188497019775197976065970165781286177100502907700825633818680644030658147732709822470947475092640841218626926276525125133186783104722350214598567598330672120254748851032678063629203727427827708768651964938037979922157643521811135424271525166786135667037749027136325961619348607670385203823756688675366841416979637676744473271857678502292744202605979663563908011976447812899357536423652343469391481037632326737960963450449087829484969862669450912436285389923347178594203272253515978693732183283648867842862881712075930197045328100756692770946162024745849832577098473688305715125700790690778265523760238249305566076953664860045216916169700095248349274901569761304372709516287443993170646697578898609723444654020018352534776532689364761581291461992211718566225431283566144925906791959729093027795007351521216594515205615931964107669849673585557047169154650609620078950614376733863418047918894625358521055273995999984511966750705240408837669848704683899732519898924749770542631317706495984383489130947083814200916274844255150694722150613860657271225035480441547890996096963158912205609843288943860504197139627927557962245982426994633563008235525496010205321791891064792677977481376095509096015058739826856411919430037376433892060703351761421347367920894655158886590374823845889981743265291003616310440281275280480766095370665946894096368621354317071017150256656414916286567634603405261357865956273747584638148391970416873276927963865511729803529869532763837000601882837372909353078008815350550235677487121437742794879348275346429497965179557904634421963540993037812656725980127126312495369726796508279150596222914380624553138263755402824074834058351309047508540545734975311939451796393770637613865872165233642119844249715764905808305940356073399594087184025551856576716140826415434307960675607404498670403187570944172449925078953715228374346097398557148852623618575010974428318975820353390432076155685932233043130665623135920003715141905439480045468332035400948484404087817301531153494319782270988633935217282526153690896330702123621487807015621613275884085569044159187689110289776445048120205322155397661191289872252360667063763831291508145363214532717937076753511024948198028133502245915242585873636549363714507851152944924542001343840222079014947447800841647344889058593042793797818589764365588163554000841911158964892720782883291167193121609059001604442852665460941699177689678789857746045190555609956310377484226699380516523816127686432707382685880712239292362979795426273693419196183715973974634348923038278377316941039022545407742519187467113835747837069356059533396276636179996174416052912950573738851835942600612502786746491805710441652772702159568119862790933368668200186808754508042731914006045077131007406015141174540388886872004901028289386327598179148648357580690988266538917438126556229855520860507082428701879978797436655266062005289922659905797333740345231218032654252670512413215847093854539352629617918483742970680313796354685293986636856806335701487222402177473633230363824999530638325762800825911360425274598939648920117788754960819054007036342923056053976797635419599541149808475585185682835696391696394159501870284121267857363006413463415355142091852033447244756633538445558257539421654010499284557847076345923604977061244955472747909495899789691658052837842453756145000692667450595181482748124236444685364077235177219668938353148217635915993353580065315569005443661794161934643353596826610495040144156010873598816084236245301488039178156804324818956153009517674633898378950855521061207296493459674422485834738898358654235887224764841249861197142249531410751067056235018577683972983476778922549184031373266732425130702852426315707772796772280924783485817619365051021048391711544862655943734752816754371102006024251928773276918827378865420363986099219525089173120545434749232420740544092619946422774767947693445470332688531094825261406549458287758309853065198896107951415248459371422961647289516083942261946017037426935395103965388218181865555962906984511524458495604044884953729685299127681228205887723067786344258849910310021226547890215872500890465603379717980417681139286558213226955875252935387548809672525112495109114660208482123971902131613355925747244537192848218242038025800326870149072512835083764292471430455713870689853894304297036731228028858367703835853035470089312793820418759584655818867518613804058155658200584633374859290669908565255208248308045011297445528120967736557738767403983411575734088314275544571732507589422147042074371780360822181213174663213898073862912120212567100722776549865818998427982888653677989196175800707447635830841377633515310718416105479928521550330290334280998411413563472433110097384170232516685902185673770087649440074685590631684863085425383458946719085144372381458086985224387452371955233916864989815631965910164237203442913520875867852800881504075924924067760704847030049832313902705375110500012722396799171087616334857437260187365586306578436820058284748867483603263365754697812671140805642658278695008411452401050552929039602344212117697489414619492178026461664414305415819543629402105874773650183026951012699946997041154905446390310932940910622328390385177300752177045558059711367257803996078635140745513889382894707379711750778998960075868456434540844814878272886869639434066622859692014463720957282659808136793227215427458558872009023205756485823057571326396376223333240639836820908670876084820496676631111715287540488817285370886445330651228865946700649549044731132691729947795332999902400469539105472310421776371340010127604455670634575456267619380123055787333732647675825417180672994248851373806931540366669445821530586936209806790848353302106245379488625312880483165692084856609897389918301318681766245034858745257022582582764444855898122487010470374002622064014880140643500992784684666678728267135383662675750090823068147191961143943097912044433235953688235350067720443686448852952327967007251480347208381941212146803143694371744011869383643042214222996156448545984941091921193862940364572426099605846262379378216649927039170059886951536800789568589677903422632763356037236594725646522098216905916917275711096511859398148628243230632293039589967781827485808590653836883884239713789239704411238853127228602147675667470004057055444841639947436672674948914798659531452487436662978608481963688681458886949620345087096444615435558053522946415196405593209296764946840301637428546209378540631932564810230537747283204373947722524040092755389914324436639767688748551674054670574489006537776910854720224736297057338775309640893393463324668474174120272154178619558691673408656676833799565189412401524556271125000206540432486023463023848809616018005874897264789489771889064128901227674442942177590518056341809610124746294762242843328548235568722557006447564996347390385260081713526110349645166179838029111220841983524564840539431626987174869425459795529912808699922928926427886649788737464074523814123991658385547738866609059641987939373969750261671043941356668949753929544705948648616347474007433998310107086382958777174601136014463281121135707222016451588802621320179096285512325721902649454814228122443410891683924908418048589144614056580356611857745617351633715151870234806670871877375654076108837607841368862530353389809894721275258772147617562843692048487755062880526401288764796665058000467622964600757837809426676027154662363308564734185675245892717654172740709130981355588676910040517725363239180247207586941786107904939564810257367577685010363300999888810261648030656255863715670792440145562227207828534004468082112729242613316135226011339920640722953271021708357895178237029421683265330257681616545538372717738241613929492809118177124030460843658992544420155973535844555794907196473664891964258405541901197189337820136151637763765809545819809245896430632883434061144419590881728170446314723113480220540524174050429377688131296933443094193729055159067612815067905372922371902630541958275566090954481055143653194719026459022538365359433787150546881266381709695978227391231680275667086849976164927617921338090257892293687096461500010192132269757273842288725935412756027110482405487047942278525764730414341712962334436621263335260625596290592222921973820793489036299914513363617427307689865049961529090546332818725482516241366476489163749297093207648143207819589092500113395899510102014798240997023584253236058014253836526911138912037034304211558165374018836090471756689743517270701221729296961598778154596201519257412230045182610287107751709677172185705853480092320883760572996209003039685003721614171813460707374608181044532685605110215537802137975580300615366585337873389134347371800531148502482712912685830445169398631610806894514714814512581703325883946710921152879585318637564812991341088251407322991766672285797737850795786750638125882550459938560600992393885078560035944123767237246753857206070288509549505820670686066223475186442818205843359899805662014077470337492421286377305277936667150453098295600000252989645150602026046605297629392191882044475563667448298266468323614614334741216612093978987182926136370528415359169341746943572187141755064534215885696748103946806093081694774879963228023688303186884042271533408966175906776502757248491847181273742670801750070723339186177359527153199566087716679779997282049906643733856477777660740714472354501553099692043096281666329349496666967025440483926727875185746050075890046799988993207355795847236742715922697940173830420044916902411710686077442064215343709031363928304250534424794367727818891349000665177497933509598868008731005671874733638819626819321177347091391885564517617377621523026435334039318284098886840467198154878746334795402625734662213440349373926862505486929364302203014888075667037926556025168118520268980051131838647562948770907250086210892301788288007982451334737279546232298824569031309660496352679957510211502216064291641947108415702671768443092461720275921269942228601974723271316925822614123199889755912179167131100812853668090381026893367592444906301659432633951043779816675486504059590258584481951222598627354567129673123098014942971015428120445081082867377991267018080962008731794547723305691266133832726141551133197248993666271522252274628165038355705818301175203782459410439835202388739302701462256937794617737376108051243634459398123902270575577052780472347169664871124757778450577594190703575281317185715412037896116215975764188043797419903674235673193155858284996850202339561786794961662642815139411178165843015452596044803413002258419306388756870699568326935678173255325707610900451604370120271647550961686745017364030617328206828295860717501363907040334696918410813279676718453526126216587600855026194736205509845905550671749377522089529109284394276881828206650090364944490271124856377957646893706416303026073661176639554879804571022679517236702027661711713926205112454948243533466618234687072597818285073001063573653512049267875459451660077473712118302335040465171570251097271499443680446096962874019855864148092795290337791728330753048976456898883534729497746275616170460390083293167942578081695889725698515858610228660189960130010269570015444312724647334886835704898611959796202181771135354127614234895219234315510689296608417834227557614197486981754294955652846511619674768168179254590159566363638485841607647110943264543344891984714192785163279012285618500568751246461193605319052641290527586860999448966584554688402316192598511296020848302500515928711946936780317781379472501797646120812370835861045942580147481947911343980416781983044731282330443637186701673514674563667541570260974250338792374409529368107010095295527747029860480420472456669989651551439836203369737866756658164186272687053302910494364741452071618978520439137438345718949535482348287261543531213841535940068891125407913351028893020883638860912576280624580224454548752842493569044488503308226734126796374136065097359363509994745505742251984909356592720859368193544643611618761636130744072390680863386381228509559099929766637967325907545689708584019060205359635527653997208378683785784222474123161910265910027571546214126070040300777810348045319949450136815028060626622201444817429316488387692766451923808520620430305252395786669954560408889999304396648764262672834059581542514161237676235041076484289568763343217394062121223693757167259748497301606982445862374605661775118023929706493078860983544538204118823579428676210935791147702822370927629293046629133806555709196653275218981731503538311300224288496861765040028303090096341227689345458948181425385657400288029288117421041328700941914778039856291157897333845447406723337474421217139949151468587733884371775061436975049021419520161435803402416359081255004177164871017060350787542341439918769085502529092358127161786710211690698533659382981781752260111569158350359889067575296134655119645022942968466487125369067076965742325304615971429763820923083857823404460611028286152800097571630381765974259563247329963471997438567303546112542773286162104636691300495925614856474193036681033793270810350955481298819376874715338200036903619921967157942414241503463421166287185279902881169463094525142005953730381818258873092050830718954815386788048875491012122033099112577659627530088389008794223807506018326209054404997649999541774528561801680099102974123496285932976359943055886593137122613583971669303104828505569454950143689991508792833653487823595557669488348409638130852431261275098840392213015013697268103182941014700926605719185449807798295465485558104310412483056198150726561291008655273760260722315765532365894769871024702108621118365682314392267853527747148397320746309749609867668339311563902418930358035782902756812353948044483790904026945224409363356660827710321430569907441150338292163546280913795278156881882118163910453533883048009591406041906995382022845444714068668398232708450061202269162089501805620916555843848414816640113731788279670599539623913360153705208201101951750893439166011535173311901070269140245523672707298585941162411498662564523676334729355706623251606914858532611335756438671236205671771410524794520390807893696972888650209214261042448634612715034166672728196387805185931913656318558847463113536214828209850122650159030660738145209595207662798570242040353973679990260290564852543223846132938410784956504513689936383127902815082300476365804338051439921637878615074709836938863330920837134773196512984419842435336480862187007977553771034337819384309189956419168916514125985462561579396779717664030190349263237659015603694010836602019502557157709771397168668672442687590555239815033950785330597200505146098092123006402803506615281899261767968221703427611757389757097987435400795117675158664155193645775222119121755069361294649141874761838615034543371914959289652280925959387066028913569226662053559509870731567148539506195326725826316273365005965103732178670854731419674409016452785334743789978723811663332916884373289286930825158507041951860374663411239507355895188086301377521718023115511571870325453046251229454957760221827980759811679230000237948122005698456333593567712975037716055848226295911416639479768011747218620470756977997478625734762941941162255474334044663534769789904756464859576220589248002932476824598317667694249558888702996567077462285278802378656793753457116413842418713540433786029918490939926459766418489605441050637207381265376464876737387822491030141620813448352646465835692036366434153734767874364819010267177063641547374500400552274939519757299815201629278007583016366992745237012290583328775309901993259911428318430168551958429755573240570623994367144847727190368968161689651978259366459378058173031683082825419800304065508105616504306284505087382758482560346524187675023356489575852592521665899377412398694633115016938296401104617058407244818872883972335457688087217085606812364039697583503427752958646358912725699947243675198167198152276775991588135611008942372154232955301435623038257242112997791071658468230720530635598284191614854356261134569834218781794785940347059660785535244113469532788419704021251381320400611803468493247648398024933363156307694361048278134104776787093297600980404829024799080478935162304815830939115621448563514888358134902597360759169016217988861313702169258946472851837511684592425556929856199560180808172913421349132467483006758600645869995938695245746151794273528465462531123264679238941147542752586216071657825079216271882041476770500511443568336775513590765845835567147050533264508025410763755135659272424944215418465916069456481007367524318238591486705706030488102743767340267005606229645736036678235452893059972117769952105731925224772719806239479052499863781316894781761439386232580917100134778111430925479863692580217953869275445358090374761353244955717619067564280499931394620470517073105321762956609333339068817887171251392147827877653243879148380032309017476587343819947029538863268112631123169020244240060905269439043412522511147288277525901755431102444306408878398668036747250035657851543673858096929026436176619486942908860930944066934382040972015649356722466983755874846637301831196797896112894905832796695858809793069782464700973379806111130858338701048588135430984682485251013522817950812604171426459395440204579085592305104801197572638408992976837613738886959097773162455531185582603915751063813420556108080353399086440156366574349443914747699644749288644670269777245890030102671874808473139351786482520574873549900714836579869401822650482137985118807416326058391233281436299955537381055734911281460358581786889610815210031835637088184099092533184337302031221384227926846730667843560213773641093901605232281284647437663667572974566859791269135249700456922628287558412431047490990162241137078247473813147209346973556472707742632563133609040416443259498006894138840155827554485990689415693160911450680590962313545984730015709287113235257393193560400224605720734923089173447044249108801472889502596840240363899671572014627660259404572047147474782460672302820174850602972713769914064969100741382548427924995185841209013267445139778664713101430713278833790931404105519730108481037221460013399299152970258062257299735609116820221243074331703664675235419777574016813091422852214450836748803050809436403714404448572797381195486133010093082451040949097563246897292835070213761357004548384362128894220358690522013808133317897887215646406334028231972171057804667224443268669598785702387301586806271293318562347514972446225496072715818536411959122447736219829205079658293571929068854332147082961429036358561278490251151777482357845531431193137388798874887458894793995056853946744782024331724839766430896987754011617108894019426412528840318878205243417437039191254655000014050732854157379520212991389652413992031108086844463686585323264440905278275556827391502723699391403195429001216563769325764811529017694066788868107625881338178433974293169852603055331352330582575043890630771222774238665478173789336788555261886348357347158286634373190419352527193368170825582939275169120245652123352780471189865251836958008115252298182758116353151507376909634575400332946493544915565080260602502047961283562017101776528300535153187373147976729051470513081586614493842000008679194792601603550768865068627509379512080855062493257354392116485156008401682479292014810025139600391767810312431090848956236807556963896723570606066269795624361910658407872339287519148125871606664562706896344508853903732350129331940859719619128270577243961394752655786554517181029762307468070602769486972277692681722306582652296103758932376545436917767084261729850312788142391807922224864015827149048851778773645938921144123851860799380115363155184037977719730944522509618192150387651776355863020642768430150457090092643332131640032385756417758227726370788020619081826743988824927622395974650937748876085293931303836891134900595530069499785404721055602270077198485613743195908539076665683703095300802398571129267577038764814214348184630757177909793962592308825692330690883223695443025747847380597192208667636635038492720619997356724850449423738016060757674331432935607651614266557014131765175756846488655514473886411611080304270385743722464896978062572057674623659213210529149227107306297895405020561628508174625529746099743056915680145828634908611457546870350907157398654912375806217277396946950314676379398804790596586783828353410600664729031633992835798690596110606409002178887056048006024366623648544484795494253101526672846928180608019070053389005871902622051130455998422127516983047719172518530509381997234669787321400943906361675024904238513947594988011011155417151084503637835871001130246588185888564167120354941807394546255524303359351173352204215832022080585885792055242444686750198807998457971630046890677507453046331992383077584073001095328211612496522178755092110527736622753088045954547756739668939644033405057812960355118430111042545448183038072861783002519028825933245998373221338055733024072065662809503585161649796018298255731217852183325159141107047794069450744996814041083328860751556751859167619947034004288098614745114953690937773673429729487004854160711351315279008148603419836955003310724109350271107838011146086951026751872636589802659067585147041028046576846958901220551681018285081124437274626308066788914231166548022414946245037246521417455196133578518999390214344873853090911651636410971321527335243638134437573963350884750171795244679557358790341952058481455978935342949723661148207963829771857979830012652410097808981295646759703342005022552823010621225081835511207566637256716164009002955240101934387504427250319421555632644136906217940655355984501902184488902987889598376179637065134846228447809400922545294618156830853860981742782885386208633943556946279697856712014634579491332825776355532938335933846280654918927012827755678549473095945297401587315062282269891658329900755394011425423497766923706453256919343820566520866426996548034529180736331789890010927433568940592673922742398911297601061602913294108228219934592123038710241724241926431515274137118168213709550162254126119218897601181591714319086716948925006076007432931651936330141789016542108963220258415710297814117669670698944583417348718178842658741884041191475548219724077749443366269380588168095603012446424892465885816273978423407081797978120921973787626828751384687278025137472226201421841774031345306148502144013501533191696000765396495914861625355306896572190552666060991142780540644284327563922405942621135175976128699499057909503733914748099032110422095659520835656363444553900397513665563260504387134824722100782485994429080628733808568042733352326618814444157394230298898621911017422034151676434148278054365189663610156164661165742536097669287067894342394692561177202645307421334323856357958827879655558557819355210567567247916104639209783150139985471152205146839763224451373328448293455093315111636796722580376985254877295669891534391562279878730925072232925358147385949479203727025117246913905466552729015749830184800161404911009223222416073913050073384797832038743752461946002966965028102641126723693658900843658258506116581531409421757912149659069674890390534324238853160890901831992988142653742365400703474759924178025322490003153156342157108184849240827031752859960397100856897393904747681274850709193424320334038280432955457442554051660663598490321226256858705725132943655604286350326473746791815367255133249277455799092767901460641804970625720021005030116212950700194004159760331596975062434293672177393880434855893992794997514614122190049823965314711380208891362133426231917730389031574201759242833797369227722266792023491118842456062820828657283024219024841050036152053814395924457809940310239637141476526469403644250738771966961858352571664310231743302819523868915893143025800814754317417223650798097670876819455120483269000675228747290112132684802939806368545243490552960943781490662931149527189015167014491256745349224981462276023070484805760821823919342406074346202828689355217624866255728775073613151344531906772455441829086213684740133794538164560084987267805614824358721112709267171440214827194045950832478045768620385562462538421233524188096136797988689190214041482030754175887190422063603260421175079271286752184124838975187084119786423760461130834763481950680012181916177869809955407077029652796945173114592454272556011498977103832499304387928238962881045395476107213600639597128503055391071213166112280247473073622079399238280284695758360504774122478977401146460041329078208017430281978843625747061887501421446153324922021175286549622232603292698388220567407086389012573485175645114439926026788931490684611853725644109343948528166508620559572205318167858204368285071376243374051620517252837146713306326392727591061237507781166261713660836175438858205984135473328811936061785859857710960525099502264162475487102133534537289180560799923341093443868205157476590317517584602370645125855455819175324797309977863256839286666783116567449524342030146388388775016636463299377329519749154571075873571511404182095345409067819919580251903926723087890197438928075275441319984734476213567306337097298770432369324982442696358305687477474298360543661448352903390090845070474514436246858728454978307632600999034458217661285495638502457500240643303278475443852525081681220893533099385385216563363127403314046354461883694928001796482649930409778309136468854949988086425712742658810748901695290172762706275580457812332265651399898790732487429022817170305921335625441148909149552196287049630484079917697209188840144520550324308848595056331276031619875027009996780070808943804978550221885148015628138940823119910040860895951050832765724383758954258331423674472624146928152242772891767558962849095840036230723942093147074472677803388938975738970756504797947529144410082404808179670468439288623774577883564951918239508763706734993529232474458612690175798184955452941968940606217367398864085352581767482213917444319554637436291010484068842166367228914136992720235059509698888074113247980663899912570130147693908904192688361781781005258867711271803252233281751704994839344344035606486445349272272831315863842239490007415702111733747251452371988030017890870253242770235296226412826712945351847505166371585562774201586818279216714614216784938990361375568953235672167498473105044053165592722900060232749928314673529522159454841229981192271498749568102758787996942834108652430642368044762444423222053367678531625782700801163027805505333104336036569112920117668585033600052658634536880713803288781293741867400840410411124959898236234026145063207415898404618349089598045184875415598668931285710903569509631886172614564747716132685898837799275321645731062395433173790204979652640223704767296620403177958263142834783688130125292128196877076833917636004406967730860703888716354541603459093405731667410707596101044313945407285654461935901046467203207566955911898881698495493340488528959590214437231333592382032828456585559474573153306319708901857342828357441197600668601176487606933610520825276803005586166186162640752487835507296440858083879651474600129831745460990929023366828408415440206399469738649220797238888585130204250234819858379198271474440659859308233759185873098575764527902712069808050104701588258966552322887901929906325791997763339131520317693101423630563543188524304443786635932617468256322647828168483076397813109338175032416423032107711892139417329553484261684101409076089105386038686957864001403522753434416261817211518239819127975954901848492719970150209713007692997242760386711166123147820872498873289769286546838151495747838070869931405773573897904755989570845441246688930546305177667189750865220710091981689171306818279806945969679715040434290721703428939551644611901434480279716213746322659642146638869877903404172245799218604899822700227267491585819746404068766649136571170394616198831616701499346725809026074557544769650857834476130969191053878263993891186573188000489170467864687069820811032620705199828468061088327336387255465455453858327170682680177544172127180413985673251314031687315776850457119511237899679681571489655659868087554791714141450992393945834327841729657768809313622965374144394279138314904965735723061090835041900015945564319874933537951624608989194319784454756494985490717236969882014174206096742824539925237336619873651418717346696061223414087396938952668709165148743592474274451315529931802118289820306810507850145956977105812986627688833959612281244182041884932189568216030383770412584621961801629615788507539176676236019525860274621207248121806730129113579246597891488598670827844045843650280794130451645586621371987721695220705089405324621075412879337117805619746824054792446156760050872147058841480828083295947748952115850121677319127004253043551731750579865604719256427025599081847574801227598655337402914286121059521496877639574217080123266484857320545786776671132860863917646842259955917302544883601111377647458267575094130328977351930213592591293713558904689763247087730559311133897661314578145269052595016255142142541079008944591466720780659447713694617419942107396393611793192265863503456958454225399865780408391468208408481125651037425121690220791134187155356106661327736160878019657388178117992796106565965480835718928935608462666491876367403731696501052547894182156618412583326048723504206387778276105356879265666990623292528385561002299584321303059392937370341393600518594510200933002059577396995331283729627107244012136407877404606911722956439535176861145222738676621549761612196267544016497880100958097988566483976169553134044345206989454569345343264035087650509335197232265216130974790513184046756729057859908186763936076388420540553466649523622149525563514391513567813586286821517870079660729228691540065755321116640439477846779787700930858865536010275773385291948191775550838796353784003758119072020046113591164700527269288207978560126029999006270042731457589297560776650396891102820387628850927204248646698839770754474008811707046181107769609334820307335250191711082790772556579916787618236829890011767759448626955451301652371510964228048544999524732153704617750015541661363248238788260474175678464851704765702783849622617090025020949153192021515326521883583241438663983570740643661528411569726777587074476066420867378162329967185788546116832845254661496203758496787880571620285937203060677551785169899583667931864424315081302152455304974198445572463777197045672646078844043256866970048630642032801357197077409223988347674418980297738610513758563759500573442765708735099286590558312243577274076809362690436399455420281567529393311660678347553055240484894326138554144076121616508835572390304100747638077932883436384514859300847267401647201788115167872724641016126155240339607575601391502259441589550949436870590130753189481596614232449694815533784840987104310745407381427212435597652765683941796105486917418566387197458446196107666047245030603789909930884153920107383618567610921193401384958344232795189618872050774365107412890511316722954046391663801171602492891972980292054801770780370971353817236909281465987061310995795278054463750959431843060261692071698536315042132104682011312123815211503135723685719037571914330541299361622436723259463568760226975333816908567950475119306401316319518551289651114523611434811123670026962793291566852161340509611473351148805558160022296853706588881932975475804709741461692764175897616024031670606847641802691595903574723427858568723928345368341180670955609719496314312568423654850566400473642941417355177145084232052232890635074503491199230978827655096764548417087483221776627249062785760894680666009904834279455371841030614299476606482134896403114490896127170069537470409296591918445754323660725236816828301734763480054876390249823062553653848599363936379897995971361853867541635643098093103632850537517654046576681102202399915571343779480675161630354189849552246640356755668589039310647910926408761119211058183461297785393718875883408907634919714563698696755683199736509988465456477958886012742752968244716791393638224085613822413076463075582090104316938315598808441736218273534318660402985629780914325537536958738746359135905243563240063465732505669480937180752894274934831575342662397852912752437527514609656610928195527156074182262993077503788638178528701992063744332404033800438469822750251972366616495933700075051736870269720217006348409016218213457696953614308673062430174402756915906411998765969442902874837669127629731645602205716250149797854312813278470200515787246067983476630958554472494092097013286114145683288077318127602146918017226890527198908556382933218737459386295488315168853523955218639484621496144123675824149550193734220819838634415524367881542304482255285325787995075686901165541577364393893303070620012681067804048196177407491811688881566055885202120616434724618162701045182936607168358168457126257594199434891966278041832158365298801961600483677424835993948395700959113067305205157989890195789464919385807599254353329163155374096578509115907528904771798703301529748693879511994590986177490641515453425354282727050213069821428959748912153028979752700533673364591946766172552537121715456211787636497733549488974214883018467683054334972609934066777279878267707340712152583911766916373809310824334382671879692114964809122280743414948873306494957088950604666973518222337214723303745916629388404401865709556423522290544595323780095308693200081339535356205881284564743312252723313664194054858081017063264585106364815460060081285854932214360468702926171880514937797694323078075718448065932630806553106202430036825354626513176350701807966513206760707466700207215471508083451025045663527446869839333326370315437130323378925820117981611443927933501168618865072007839745838924673066308083866930586909902393868342832880987211671044206668607933989490623547146346935556722127935183458486000470134185089504273473185820722792075190945164448104639879739811481750168629180528553375810053080753270577123180754047825290904849694059834872875914204150885912370176440856203558752121489912282681508481723564743213510556831120398521927675067062461003778348487269221629816868985087313087881009723726216704154390520647035181517744774785199088719779657676437895776293301927220984052400686219570749347890853013377926907292303034411455487252875972156318012484488861569967037246073168639723254758267151292938208739688236448878613405927529572047942784768569747430013246211294396594967951995936810128108321034884695562513110895159981947769704338757744427956836754164793008011382258227422247229117169603502764812092511167608661247103663698670980023145037430959437822982607945387197746854907778737121742646618258176232789005943984179281316083946588656813960573446690555557415479142383197077405475477069697034525249755542601462581444585363760791016084880271073263606148770138367637498604746578547577653411697122244875008696273752869923095842809962242309982507363298621029766693806050161536910821133851781795458831774577138847304432372690704491498966588587991908674577048658428348045532815892585996998398122402644304889044428307931364856661934344433458035552105503657794416842709914479989766788636855684200418216983596095847564216378845114706694406620278324444156782898167302120007078263740579527195363563350774175024995154503877803101786186799192967647259528610547025550393048979688383106600799086272781093936783590015621568633549547772932645309987156094456712488347893465151952840256913139577687311408108152229049719617988627432795007351769476184261115885402520100727205639212409420280624465279765572934003891392269109328386556439515126147075073207053055922493144209674527236551103352844841673229268199279964347398626489245994898906639387976232544562728165226087531652828224109438785213805728762181510780610175933010382091147590567635334795075620909153733039313691499292214148312582798090346955174595561873918000130325219525084531808209905266060068345510371269185004130028183178338928387372959336357522642379723339042849250664840409247687548802673229051344890181967792333449787389030573873757837014461745894875563036500744335206386396807779042878979905581856282661288449314875059449140497165331743743303349426741726604256213297017628511167747464102682999018484911576664557055904421831573294474398740804773013529945058221578620713693834086785380036735141971292328804162722299904408352971695770396204610290224034143772145847936375440696791643945477195399932411287427127175471025036536917388660571463649124436763475970497981728190194232842027885180182764438602192384952804947581854534782115682893147390086542242884007294618795577809358089333222342638799148462641761047602466423127338256053988588680056838376254518360281693542823101497833220152176880247514977135870211344433656143603964238631120063945576528912169172516859056959061866510121156846725898503276664660129836950683221567385103618286542034120842033785804272235491990474855227856993620852799726514813279285160139574273205905509716523366172237964774343437432795223407781195058466908589551217338027092530117566267605563491209270780396537958780950164347333220491452704147600541051758910763756546106456769102360156657114097004358866589600951192107772932435951997296922934604577549983040961552335624632049194219166040197530700127366131378968169270427194888856271200145727850009274092256963430921095376872200861627056469136034545444368780328675032690554068267927482808157104761669366016493604531313973249310916257046607311630020408001935273991683468997802114707434548610923849163832050072874706474069072555926387614860876142903516196552584522566570294447707778032635708424682332652867293734532960719634622047574531146582983588598540407780155762150167769707336269299721701014327963965095561219208637540968860607531392553892499096375899105828075623330777496489767435282830794756033808880381917136332055937683461276638705706240534578531277733617764857834725009547342055039735559568945818958382665197850778278894582161764268145211488434298913448870202226902606673672906580271904939041169567361040068257160921529088717107187731518442609557510816156886462703633430733727663511639963001749345636024797157598954969765083556307995172186503167550863905893551632053003142807051056987494614219364466046509933347558179770812771678190571310804705784032516643964153002397240977530566433928153451566204441903685995743143235129640064362298723234535291209420462417532809090257325536473591231167308482745999835593434092590570889039181573985894689319177275936326458246191134981157430198526230180444681956235001120078589775303329741525295196905288327388684837789778792680718323566859607780039439095588943979035568461046816986117786341023847645382696842060752482733881938471607402612282361075398270306884461010802304465485570135464319908206026399719821270274907042648979366748044681173900094629036760743403515266611718034062835528158515155432025364624435522514188570230138271670133092402144070397859936421414499266883502635001323097276105458264268918305780413824243177508620099071305583099550346255158562798409359491821061746132118100496116246522789112481089055468381795089789139729502797324556400076950112072843884201090768888685506803903017381495083907277399521603943502601420239419986520473550389929743141541333338237176220622308135635925784720810075314561790995947414947603690036763562750844694173226228706103437668058885954160270430690380612742146391284805145866014377506060873705996207130689686986944404969171129255869169853712801024691517493047661736037270107725240985938589469989969345689806509300815049090436822610764002961509298934675626453189547703151642688907000599301308377871115447021703705685976938379262292874215856017006935206422190309242961604556440358372029078109633325893199627168301688468644447720445389816140349942405200377586043478993062840440709858994068520869135698946726289602267006611514514695867452340312173573160944366724969807861679231760079074247441477914168817475495960443531924378168536510896624381797775837478516573803226401173397557677838159155152058255881122418255316319895863413726524270336746355179802870908154540024877377125493288537276102690705945500365518423002305325338678641339286560585524900386857543051435865882109277293497434274068699599847476288684844058663151979259032638431907941211155687290943048224407550566933462254009469305764242372032572058325794453092038718364484233397093841668732759931959363029872354945087961014400276298107586778993538881332414338345422812922829038008865554055645853625790066883701640785002088915045019914099064042726815155422545030495681033861161361284689489252202592561592722286295173866858640087898997842212932072642558091271752917918071744221212022314202097748649841664868611482413542115356864054579013626453802414945400271863327562448111774485070290602697157597533256679275491070239081294943929552291082291327583911915635891901077609358090956501218575753851168360660821079413633248381632308172081905974333488746156473148610248597796792469544335030667134457985512141053676553854592695128539347121673219095273847633535970799894628124075171092810572440449850931456897723047250649752335158670968716399076901888240813901226460753182805222415794235337918016315784081793437524576634839400246504903812354652305703329612264573138947738833081763207148304252069576779192409723534447730543366208809532492033177365445515670009993396725309995044662446564645181778144491025590695276336702822483904616226834216319461270112232182542629538009269626601854738324304166559804979453114750882701977375862174251324654767761337476398440842823423904181730497331149362702517955338174102561136205563483506260807334077228139736417829563628658591027397516918341009588287664544442331593315436422346319225111493732773193018284322614442693448453422181824706791164225025043475961180805847225348649686250807435163924856012540238543364947231628227212467497598750871439543194285612829342311136486118401521088223342309879187674242892218204766390459024827692811112708364760931347486604573800449909611728344655047938788338801645116836126632494059634624402419095304758487628364381141102859653822743334623932125962561675593447350308300684850956586414198813088344935172868275300528870986815135693477144025113711974169928745873466570940017794453960363556134501649722876013447532101308495066802880985084683941428633949906237730904867074765193074906137200224301601848573217583526590855428111326943492549326440977644104721054402711575804607220594482749467522122903921061368933604885431598506070781713829987217182773745992800529909913486947632564494469572839239426956108212228574186621942567747813673696898210269799267429214765843630136355439799172132363605941448657714454641314298152803305193318611158265853469252097440357513735917077586883882883154631328093544736021573283609763056222952433797457992374373637137196565723865282991186224629732893936904517500691397210859044437358653044735568852267295678741919625146333278336338938767184370485504475216392352678442521431734595641010952793024518340116941236170166120232074315613496910908907128076340469427580338548368119156231645809529004521056370177747608112202102189792304625251633901669056516291515987275818997673664713800984351802092231829282997771318248889171925810834382346993230100073155320251150324731830390117883468862149271369307411377239544555628251242843326685669718522876316959196705169416392062519174680620617559169950592336729416237454578979459091905967467732510649331059224950970600666770261653388949262208016332443079508795116389816485771433025352900668849393041559033872784447597700345101527676739557160131344243033839068056723490564219703905064805436133386317223867773806123996909860210716573797093185270492539072370127466163496081725745514386222046583208904536445652017756654740740050516396576374736592405373830753136522680537186603922759257918270514738205143227226797168902714291808812629782179662439229771444234042947174641710804190905270912946604141120143889739094157673962394598774308791844164497204968398363582369583672092521187511283073110153120215060127447226097684329286258023494457750976232919613945356851243372112970330138906803835612520055467316609598275539937959718751571212790363861944749166305954037274746661148335028025288301605224811487888211547572726210236862450436924611709234442904513546194578495791564587901361523436161430601294333039586742247927830794898974246025756545485199938848830209716039176767251335009799194654886960049032875620744634655281463238697956718135376436263701591091462396726270481068340450825211002140268571334957236770630475340740805903192088771961391405891348545140452703208573422643600795499524633362136740803795524528400298344954767854402538694430597939859551420751972003331621601090280246284280779083878048435195259387431545397418913464626342368366421010550141783269300947888658580724221517891845103008315481939961969855305711144753719928608510180209461708397548503419160044517124250867552106266066839649500955936584915313651338069486377500294555360370704123221268462106045788215657004112422996658111933219290040959631970492860989414957533948343221214151911105365904914685845050886188133364587888983210480919679575732832685416062751910953326998384190266874450760754422935139390755266900306896436792730888038213950248097072134597732468739988739036833716512172499758558229166667756765876991357848144861865410370979214216705018557116154698498385738131365181926837626877652356592812476550218027139107447850867410355158121385767142300470078551720718410673854145471198221475620204388144159397218260264569027786846055512681968865154652757854539730178219188453078938807921651118101515724487880914758374205051796330470765619027709320542257090368403216073806061694451046966800002033355113974121041478229415296104516767521525773871723129172035394521955456539175049221764882657354160972690463833608438812938663297076343252047947576439239077881909582022330737211766666642652397813135814996944551276977642353553518437353904240290332143947983248991885937204013084375367521629647184651096918704750626574270302021109620072329740908919824659161832339290713995689835665412647783452621050822527314650663637265126838685585134697152043754001445687090434508118027938865914908971587826006137090509566174887842284477631671403001871924025139158454032570210409916406815013835104224118498544339221319356910972961607846639987037673648642520959656709535719978814053182106953436278139576747296869783728447138464694987202226578559421401912834675079894147689976454879719918317578712450343287079266771264572103588114054688791910074300953619907795639293457340500158219236561625459349057767404669824700835642578905642814430485720561235623251337703275638391636027348286875574930610160578463231473078804990698991812439851830733672929782000720045440994078833247386167815725005315266224404681127377802271485893187485107787509814112394056674778060747067327544989244827181321375660083573926744694815253757783942341012687689030829149734657761647991118998954508424942087234804871876004528123850900311335736140141118744272834781797235260835970582272228978474393736459794398256582397683905313168972883184471525903843133366503892770540947424825830808796952902320227441827627721657094632761553020140493076631134168743106085108767408559104429787363301803828197875077978326797665762501209874042021299335211260116515997853284752693326647634623794652993366337325029811777526852215492981575523146999869429471448963520088369320464307965450096542362794417051996087700487129875167855270378026981417952379439172891859235688167932652933513954016934676069951005514318298250944945788248915764185261001605577081484574704099096009058677705087149368968646653586092451935944268792417506988021291366185324167731948120732869557695660928780580913120136719569637451501700578102738556399923655355012436676479384911432830232362316642649306684151011193374562409137581610834382672401976857171654167878034857877808307086733025044492334384837309127243986684587164464402445589685307059252608696997707350114461294921417868476005837593519090624208994106158171272840122634982461587179476379635125747088419461541204377442405545947528817818975858371254072072926917014825243600541111514336854241944157422466387304867479973483700017427370434928195873660444034808603425220460471081263048099925918826579253453912803217449038025717342448620895960735094995680642808531817175898964817709795318469618368993096837138553464096499098037295437213369367389911957979598846843817663002639309928249273930459746653312998930626512420794415989625728214122296431020516937437928867768620944389883456782734431735285930290711458052756864171831503101789984103087867421560750987159759099002126006178869124019108902201586077748209827898976057982361674477724787152669152007786378590308672908330812455860007194760911198137127545448974695867434216950582398526336126576584051367130786963849523067733545597898148099496157547084827077311642992097502622135054858062588165265354699333690054251191784229048105906854167520368100983447503343568647706613105187968586605572224146044545872519248185891795279665120658247281720382846937091422987918294982574433077590209005033510060125879050574823603021844628488629300152293249247135986767891089195922525574067164040685964652925043913863196836116239829675970327989768110762218911845115259794411507562178730874743531082371281767728894162471961920070868951910833956165107435708457979235610453960817088441569608530737750748846805534690254189295661396561234096284205787512169460844234371420524723575700410018328100381353116360086448273940357198481323862575394808118738650715340432796955665442364738594057514732075452779419895852754227038123737002086834684411321441915698887775855696876018910477522455259390097789454825872074468252488747552635267485268403750995008337998667671387077469457937449255559044094215413338806409838973263029560221906729923677175584014193654811904485290371536755027754677881461555863878615035289191892423641450108799911724646961607682723666657833895198956579546363481482054920592951106416094687289479777527340763797964551796162300278557486081356592232354162737736258221305870247380187767347001781495193456001178057468001371014599962885187119332741398019848661450352881820064849616562055223191594157674228966690859541484957031962256640359795060962248034486478167677692229235609788028673676207551561116606691649804310749897362903227161712379407903705043048771278948085267346427258464025585351525306303581128227749359327712674029229223122386620600360689849605865227499316922833537567831834933730799868575403675796519325700133127332920367165517771311275027441260535539797495322656746971029422664012720540742455704777052771989294709893579324347726241163029260755112513669308560471172452740071529550879623335313499717238444085046664114419135391755968052498559307084513831492519491004859885613288057029409347811242247230817123611506127410790252722497330707222929437026921171440845357208663261138934609195387116642222274930690994005413703086742419081698159070647662416196162230291797473441972077900155068990596759988917503022723673667952824471345264789847412811604573231479309221688859224442530682469384042926853583730405314428261943066731856589189986634372171695934932507953346766278416487085452146711840926169388812920554458228400106456695070317727540532353928509039834134308164225001198995310301800843415211693369738650785331474491339981199416017422229807321946092389415308990877450612602034075393756232429259993454574982744286902941997227244874733556267931187498326016599462654770662480257923987218640658533955092073264636902155501128867128500682653952239281119570217608195048911713423320913356772822338723036731220180625636206897638699241583016148395517821483948621889586151849414786572554968382965857481796112620755263209587019447936728196916939457431762595255150586197112139008731867023316351026116522404008891351904409613081158012592942979239087147541847814286436490129891545068731210042089474990437651428388917895962663318588080758864856866745598803798719303169139681771310803544241067202442753433443394725071580941719585701707984520988340596007909359277608395139532862927561575378559389286955823715479923184992247011073991793852657047272228620827022968585290226798333269865980752934351828296208023581251995913369209948157447510998469869012365229120341267291974488401620254505323138386560905222267563559994971981992701904724316655230850458402153472640077941158652240587680841300011390289211155296735316361040864067682170782064372037987237918864902764695684201945089955962063648242136560130216572221070400343091688628573813284935532734742389275853414514624154983061952809267956486865773442578693675545953857128565439762638332151257550371921854376700567163285261264513570863402270734651430886458374906306153834829545655929318677728426848399861271898261041770969083507635694431454155891426576543176424075057298909856104103520057335978280100231396489403282628102053767990940535020553071913462953452810554457203868011720392069081482376217550175969513780310743017956264487056096514304862204882640831957075834955092866411262617886744160625295939116820164627091947677316546919738620054093211755668697303677653652796089493359616009754031504313183513925609017889680909712551285970726953850690081655607254822286206836292249734654671636090338052308929873958150881654326859483633312673087167177118416349396529254922070102458612319685102862258450885404676624874194712155982617509999490098454235092533289764349790776354213578165696719703156158292910087790838590335993857570539181758646511319159559288172408292823995892559001463534144648463510454840792997288466832356985797341576289992238954001831822186777428729120094245363549419878902258932422951951695357940799941489401768099942774944156580740750228114531690603332206011829593097479195719427090158475732747166648028151586293237270876497810990255075513332460030146291797497771717621900334982892399192921743982489789987392050957223050526398936772008144832430770391567912285792355123141165843952884968331787260491164579969388418937087088557454110945447406331628873269881086582624318095939365750495411646705221405113474101597978477219822546314018876032900596966259856233519268543203276403221083341905624857632428192320622242794309131775625794625660927628316239944098284154219273130776958055843190198837243246650456129241252555508979337822548339019150449295873182579846432559804383313134988651886501701945492283599735822491481471013908741489604863862477122469707597252455871006285253383622798146060394598213415343878824095055776807419019760146437263612615840526237988478272253417743163657098070527931116001682796752856073102700386728773434735538679974490248256504391737413689667916940273499939231762135031191413027609475221263178362206347834854466849777729474534988445545134398935326027935888779156338489583962300535919334127279591278479217054728710474368799106161761363411483669383493775281851484726953665556490919218476473886387190479081052865819879766211445971744000646681414364032081253846809756912620669421897631523891343688881416142170498670944940599785344530995617727273688797932863707246319940084286959118787604260547572049967653053873049089687101848850134100840994642583526945874644670538821399054061715354522931904045988248013908513684422757530962095566676528671851310654087929802346075772535786816142288871751055414608033547443330333975292495968411770798416096360459061963949148296818522502950978764442287203968793050201713618616246837481580428067594482286813215543762871935404170660381894373091855043503196138056256121077326761120508704688506532802129267233652532584686224891350795210181895141317072130655779358360009547587553338122845552417956583587047786629675694181983595498959198272403938231798295622830294439874042382435281056089699251864505441428845225566771106527319446548644603670114074404574658267325059751798007653020663207553575191913791334125198854977387202567384757361969991895560147477992080585969279169130478664817003775765544278458186816590175867226675759759223262444120524882172258906899152380860268936777900131678880683602154317743015618528876747780574695590865206104783869054506478430020116102910052366524597397974650429922786127449845252512292588107961465085640761609172931817919863116254376343059534201762794786557430798581422610202841593722087778247639739384999103432897835156604359653955118209933254788495005487042797775932965373631686735679913366143899560530366075865647793552389733265524415376441094276490270832257143154803953611286115860485782457120375091855579548184151832064304560828117775473619061692892479908641086384090497621788526567271212219315236214995712611247804778757090192572038423030963750195151909605598526985569260451421019040169382301802616212782325857860615730837204984196181448014739346204475263456342702931847389862757386741879308506949966362234790660112299878783243314245346100535409240182695109389643373868524659976943661107625044993033420718597601092794356930700280820871797634275618932982770886954493290352632092130894014317638997929324137280918203155417993053365475659766777976171314798413180068435838984286733265113317863582016018605648963872387417309426043714189528882644595626066150267371724176267254837312987249559266173322643415812802100350315195670227211410840093552663850780968775393076642739429004145333940716988382846255775990514069942507221424293758797114808025375902841854947206703530439779107164458078680489534365995803286503920452965384677727289673011189346754118949725321268891422175831458125482648283108290759478962737920534842220488014433835216647070621667083551361313102565095500418439556211710090547164811105130099421413036882488658842363239614862834683440398133843326956668889511732183602009062840341988714340219010101543304604778880802777350345027338814695557741558679520936886125803366096913394281158900946078526141339021336432552063444063756818959815912260530741552829348180735536483289938951473575881127346485570031898731879033898941781212440685276484516365471201142606219322428964627432485914365602937212481970431728167879583858168499811276732032778388469259477349553794653025799648878985029720257969887312945690753450388582614883421086160350003852902028169175008469646618038673084515127906929940864537437943712964965511881111583602310482018243549555490994296417911544571777523675679908420196760472965689113213730201488080675292834847016952939947830152637237704673285982595569052600187059895017057370037138730690237040683022989420570701681727297234582069492937410428376939425340911362514953546348194499343663179970960942348097320336049762250962212447049843425326474886756600514786635226028172422900316362885204476620932956240304256205063741093188013653547231332113782429762117141562585007223190499012944805995273659731110596669032270036125607685460959463843431511061537823637632716627977337462113581641499162282878426576147082484330530825245826596524258889106492934892994800704699381930760096096147389066124946391112455182404906723197439199368922280354190746102398017612970990306332363645496710529298488938093666800760469449179152729431732607916718022197656154007995350859191171954356679098973473912161979743896019515046117661010594382115322176705076299635561108568993692715939578547980214528916489777641114009131041138562960630225999563502562696834229864498541680129067313054477455006520187222155693840146217181519901368224381540126089322875699630706131391441138048489871425341960141102082883173828733501194690326666732139192187786639603307216776653713057282087633706986131045523607534248232634218209880267533871169997007264643214852766445983796924899997199577237227926242132833161941923470829334900020229421528659092698595469124497092026660918575291520446287570073285313371948960480349382315172643482376808662474633474524537242626003147136092679013161776056667051782537653739443749167193867308225334920726900756803629600631326008873067551973183423689455998772258908203163484966376468046529517779164959198037636144769705696071833477219196224814473506377008303485339933222483823802401048839787231608631661528751532001399639330372849304399748130067194818725075513146070747889811926093333308524523858995160907708441982717612345353425056401157126228017640785820045008875201576760413787485623042367090623937268555784915596772692453473980933923724914418603387496320733298826536876559195658171132214190733922181213690026570491037440180209678444116223979364987714455974861251942082840812865844018078433428632458381731809574836222392089003544553988227531572901825009176047067450817424079181126253099373646816230348488934008680323286021237601499895870835194766317329675013317779807477470608072967634428518979846388058802482171844151463063782766699992936485080533325659835435500610772750781527514735829827889084339825764702346464961760284103966908948057429686555814395837231622807125854059511903796361637098507717100392155055126123970977815849768970289670164910079132583127412918929606250275688767230725554203689751266742218702478550021426883085293497377369559194388867561896830448806502645144793949155304844302654123002168020235907678302849718472511417855547314365537480731335826684971413167076887823792790740326222867006715197145212204162443262356246314843403054241678137657610198154152430978158437556837537633335029331651591370577016127366395893813749542208337418338760347356014896653528132533995364138420952212450026424778388598182506193957191928017665870893278621327379263285674127174045990527561461619896935163344188693022521101539981743766549211779585134343550621337697903767617170836199341329571907788365676128806138066131789783412112561339158041386116603480182138969190643497376470979439948867426890573000357955841470981584848696808146191587075727817463737535775414309143552553274358489025497090966804243038312439603499422627670642698187155793954380002800078726638914904286011434811728216463920121938824251536151083033689093186617527949639885902133529139480443091243875661195915191263594994463017987825894865347883391868322502650046093848069527201491991966288807222361206302683063886891010440864196736530176918375943602590563789729421038406485281675077971661496214329530685982772221725613412959333360528146111579036361947203585246687797660390693785588630173046181135896359253235337695740946550978397181522538189553861807693165763741674662306018099715716853587666127502276233426915220294123852216226248881675539719051766128138822155972109559917441750502307559110955487640307275306576782720530139995263771614808258516934471427749524937407527926674302145945724960103614672999450070202004279475770060060285119820346391490257733678457378249048438843089336917802392609652142436704732056775033832736908570416987218166981089749153111772634571837996980985117913748882112641990521497253041607526920291179342796829035603053255004570076095796675859520738986689331511077149903930702747449703248300458812563936379354418801334307480623015686462664981729939368003026690571660267588306281639085041421535588145156089192762541615818447765846969199462274679176469076942235069592205124375377282617651510755913056557807235992556340875352012164944656303176077228445477084665759739009120820177638396152318868431928725154806280998329359859602574368135179980912192753743054662239035117364916454662960553630901786416482356635477969361683198909622728938683249026754931527128225891569703637849120087970579021398828242807464208638645782448227589603256455423237206764864860035686699335349357443130458788897722010799872779921485210065994910859322937434216479591135713987489392640537219523349999276148061342982524992554424393057959822731461559520859490611402936464722006772584054935901968462798648282900770296608368422058731640581213317054549443998870797045616204088433247510153415775020900034647760165429327774154071032230377317491809166614022650451140798934974181675973610992528469244014285359369569147570113565693708279015128817822096568698841848919126557897521446543917439358790548473012038716833067483403204781794189154159310516800090737152590500172889379435666307827295726387829207698323554319755571814356967727464349747359188559980612113819309773337794630714812548369860100003900093879573224141726744072239785472005171445452480376500953562455646711214855472260412439115429225773897310066324239820181675156424238026059415573027519555496541875503652202191516678529046267762611237835830442676473250919162957279652047680853061860031710655256428524730626392354626428732424609488908758192144905798824152203411392754004854732519681163575146717471966660011973921932066815201800728414624248217147100897301596009651791320106205360032571935186120760136876576147258859584829268038153331336308531030489464170910108656475114392956874245722698778138823753047261840979551050842421332151054971602745904438947864554483541207756072196230853715539766974092856474381167357628488768413827670014657999544127875934949459459571943333795602528809847832217906613210692341110032756348570339108556823687396806356639385532499001677171919168060946294883143466034374471607350519124818532966983333580263326770249732216026722148558895212020019965253578915777702991747308109532483869638887664065954616099641468031658954535908108910625352719425542784927895944676326888901746674512395445938178900682370279851290620978578828768508583981168445290834717905698580177165230683511463224812496494101801215866015326784385796510213348615821808898716854678189514796900381391140011014224465314623976560295426286679813940100264994645867573649921109328767653629351921793479732470466277731018145664544324158816960117351681896055754593947597896321396735224691013162297975082758162955663716654912447702309131496657850320556314383362344730632486352762506599692598385272699311021408043108044206100896647563653169928352621378787976380035367564438642404115598656331423942258121904323060169816523049916948211844321557192012909399574145622526145773515878425787461865901523164984036937099176635017613320524205666379185223267569499618248276331912488785393962664460470360005650656613158952223712279003846026126840990337126073500312894201225347365512543140827759950778787425847369129841681914756918361978096127816341745505886616965597414858564034597225050749210357181172654249870318447932818384256149894024520100433901666350435034788421274653161910270561649457533638171151575731199658505036163477508090172369646824989702388187306943847358603125638585681771359371258569766147750934945269107166162559669087575499500226761023497704583886322142866346224844346905417803756981986484663213590489150377326542155131672806945960548317856591751769325936682639924184563995547627976066292357307799433273994598252205498970660215222357253010716361416859800231173905749793578776260585112662721654744626036238001274965226687264410836982701777059290685770059552637025644650883638177228647000144951302758131397805499954417177929673888415472243605635132906851005901276887084587594416418740042961685881652664927746951944114427170907011920934065071535063327029269575162658963677234240817679550628332107466962451513315515584303213562640844859875503448984205208098722517758142982868931468440838469181133625379297213848477101885362957934503114972253472170442746552566890041453264332831508901578312779569900568345996010043300808502489794240051516452935559813123177023722436576726813783186434137447469028895461158366752502324129476796514164873611138219026134980811261522679878662702705969335705614928059130255433643782497303634033112207454204644279523090402641078391858790531185268516942738156720097409552079730604044262998297919638012849720117278759931683878759316786077886060398355221691983806373875183193291567617987562586073137627545406659060220121596765441818778710208847460358527914949489258679245412473400492117110220928633304529517392885648312894107759425531162532689590298937150575122265272127565163586194052637791453020026378481800353578454285902203038643616117138412648747261276902944017438724795640987611801332817865550044985400198997317139050294809172942377418901944376531775553704241955557464225594773209445982608149429466146700724864766150946104824504581900356008483433039830452366992890819343082042694824166129548614327074809107334082989968771880713392728520532848874404212377173372313973996357973091002299154483617320287135616116274241327886619812029335625448757543424615618626653764341302635720864344112522130425394930910545331827443598049061893642498644888061505267853577934414384948174792190844687566920122720477374054799211192900859317966672016133271532865976730235086492802277550478569113243478478585118802061637177043247380120748898820663319357866725543435561339552004870624082528246341660780619993822853886257549264414100365660413314641315344744539836948035130050213905650457602454076003782601982647522659198196709659614916640190371539779542540424753395704749313495079608897177962954215172701463754433270939406646178079349244586405195744398971887585140205735501785564142763258171128588142928581299019480991976533973227652634900491815248038860852045525894817513368324008737624178242608923551049204468499557794704443902238820502756277470085707472230827576629210699419632377730272419739051141699995835896981763547686210284875097599949834791407927927158699830727803184039645419747484251416566401954695650603564182387535448264785707542657363013903474096218052057403975622497501421206041545113337149751702716605229907138941260191624516829770460648489230478153726192262479735094223258882367858965794675474634572349713570100532499739329819387089065544123284240526083235907920907093184141784557219222930280789274564989594840069437299180573943122723015238325637833801503212422211358972014075533584160262490863047755890026610307281451773029092625220157320647176086103833889499150322715429630223331836593031663290052384066768587832414686998183452065270712207099839163935858939694598951314552740459969581353849092775646874505232238105159808137749117430352836178509203610797533884419116664610053470358484876859405266999946796739097116534414475108617056943026419382404600627450233033190762393677170339212505984101662455432925532746450796123820007165996574480739915573347051487511550883828868335862257295442370624645210513683933692369274997972114949553664339350599027416072943497536386346277117251167230273658262229151462034907340379743069097728788955686928308184332569286465521100724201432839240527969823613227432089306237400813872820958728602156211815361270816900943397814988244128125232040444457048730595369650577108439268003357934643311779810575535553634517346125053455888638685355851404362293542143046402264849139112001901705386429771930623268137884615015721087097117805718313959395941135787980624068725459466400528382106096721884136742024293358657781764338851924796834814610304474588065899692268514639950541725936079842124843286253080988964900718223362457972876032949909788588418476762073227025651184354849025278103128966988160798468816668477400131634962469808315623350678126776047788093886410955647740563266614690088388666085772354063697651142842159572748566314381732503438661654026406337551267377033747464709414252578903967930234451568260917374864200132450354485184408349351174285915476382384301928310951159111342672882835290834737860579106061218939442197849545230982549332569190948838865658021024199953057462920603525440036763448047706244701521769562600293177228536955945651342312638794917584607720812053964897279276932695451459451503607658956483154936660930689897549182600077954653358531128471921783467457496250918286674788632429613849624044071714369377635869441309773628680042743622666804568777192852571541655055664618912877808887752477408194128375864712217170684384556635251248610422052618535058488955349794416407145139296542477507353731962926506541106717192911254279380146654784972649128217261696336453161834729850766113254533871293404509348745579580185203344071388184091336449012108037007528188469575993376007261069662624388888345685034496761790305268379827442698208301698979577629082991193349729853856727567214435263691239434116435843444541021405266197615312028493450953034703898496228904095984831129736879735815727992163591649079303599004795064382164227651721385103415720637382508363474114554750352584216908082130365378161184424007942297753282099638513610429103725806022352452396816278498824054287135951340444482996221313343881605017596767151242580920048988201608163269975944007649452770189760655627062668441506325507751690610008771839875903426547055147259671215260908044319089636590624236251882627751702236830463454065034306449140358204703110442996106613054764660723612651247573229459405004210883428884693782225292100019213200225083621237195546700565497984275367045196399065830034874041494720267596187690866968451667416895866885348524214484443462246690008202492915407691611004406674777947258099429900058044020736831237692084271867406547596036620305325529271718478983101515953058529690214390632975392516095592006721688740932700864461295033825312007046602375545792721305091887284946700493229720473605821046878467899753306626902258460035487161093844837353756204015014680303870161764968939888854450386743473086948729073594109124362884477948234889570406665513456064912108335761240296065042820066664423983682262932132821866107400658319812343553719912579016515360176090130407309959079533862982758416279801956195056963540854467756708445194343212445357788994973519350069202776171100120230571929941325331715350922647724026666673834783552868030026208573846505700695776033509283721815204147913316575617910180486687833171891248317419865022751344792032432458586190730491292589119715554376861119114113512437612833249888035456992938845288720330182695016187027666633203511919068826740662189325743759890320078206245304486671151937667045039523781216161514776065473740439227567059157654999597638911936748438853338017467399134826607320064412955927389198211708996778226424968334116101959424197113102905992983828749369070237004875302156191618249484851797796364475232306181426280096065379380391610396449046595640195617027114741130858795520768626975506431173058352823924041886394819788591673494316272364075922945872205231405607128594502047485072943603325110047326272621219654867431371160054554341438083713515842592191678697017951233234593356373244980904449065029612073377734584209920920641187868588347627130738242507301416285615531643689686122442306475870267141040060770769082639227316603597266324107016912498461119274586276217384805948079857680449138065743418365373073838643540423183033722642334477671879764231365129647787701739699223777851073156476056835738689579400937565601205605484619094494481811307628546572912966320191785959459885955071273506525627679013506927493381082017536141950201491513164835188333521645950534145357502816064996364397485106140709738254506789235756034286440312299060871760521481705318313478436302610839258542825694727804919742187360890729964778098653260768339026197739103998828735852170098763721328052851772873987858390423952993931111864373157181103459394506465445756563787899085801269385482716244943323678010250120558222873641579383475888580452402975303910058563209733207848156852309029795030398420766649211670345957695152042992428053510779637496895035441933224148743374912882278149092834227081607625858432290730646003393432772311577467257143154035989780307792574678039064907932777629248453091509874523873532021139345403439288141309243532571375179000185349018983828356211519315230578396475881809638805475028435677007457753888192544983502968606083168677274033601134958599751157574232330068799785528969711031437366050260909563187787672155013699013078910548277930267620038930310572277346723939861362198469058706368930521583915036671036348858591940347523671987351981334653243805957241754449160415926189091200116309054052930599833889307242896446916465034664715435720716545004389343942276235073624218806392942057273067482742311927580336964413560121890814039230130574105064429486068217069656999167388879987160656485826042705891192115682372693661555466114689955930922903815932701805677399720350199291314890487095477473312938506241608396373762606469421640964708497178945549513751247486557240238769104251062750476365201187580019849721847414802257947180692178423906586942179460649624891889989307316229828554046246644086933210843243506821463576735606749345348580922324598119029642353675424280729955802603664951893730965615437405776882575323931550998302414265037547081498237191125792620530542166733840139426066227822219488214620344339097374893817130511860844805054925969309122504740170524711137861829481237455407385018120964716811475894474281671766209759915856339031811280586329107929773323841901170656922575066417751821483018487468968417518931944963358189480323660526634314984324392452067248156878190103234084429010140435330682131429341615402443638449199948511952098568747225827691129404616325433619685235149616618356579752356671326125361650480064717357510053840594297197808656811992362536792228471840437442464773454540739137484829295589074586227983313713052517996827131396922053775848266754333496189195377520843385755733110094314083232336714053161192623859299963008706179945984679477510609321499939213437422617807947069954463978754082509000518282491397808736244854833501360510463603278757497865070816490548427673517219211996359519207678249639378519669376002663979173637355897505510459992180340865123585019282225148476300745765527709752697838543569659575231640253902219697522757944438194815460314442533382002932133802702013352569009439856500205545598533157473190506105146554037934943811842447138351114872519950441133324145848659056581312845929915932661815990082276388431289005810186187664020490081999121718542080592088161076658697763838250049919209518207182278258092880081233434019968841633819977325676659688449036267433976594816425137056202430288502571487897391397368118026817376933077039868122402112055020280699732834805696385029487917409358727925113458571353149823069314667710300673464530697259656700448307192979822751599811283460965358385428481264915549142372414620177411975236044079046381096069405823307670111556141494491537581392298107745975455468102417588210407031362261362593115725312522981611060468181789943717938677142120634418120455169582168961385937653690026478392696123693633671647527673625087176548131887464947562196418514886982854386859511955555081129489435838041116363637487377774457417729381993297961807126361872444363626871255908008924047843521237049627513154773780151628406255538360903779716465491606704722774577401373483809734351784123042683402708225023412901272306575639302334904241655337807484511127896433540304065880553194385273184781790469036518559311583199753482503449918152109807591085644413202313168265516362483433710308958025071164160348747262606768276441220440164303114897361696159517891845352272225554652464890324352914919138624204886789671843316276215455946799348551935836348113785140168585695441137913042820823968468360535001213537155372775887459909281881790215012398356812670183431448951649372156023742352614415103130792729588740079522850619962987912612018272564025396803165242580604720562733612794046612066289182844821403833915054365324448761603439080903776442033457577196312478398365439494191166631795278061464249582817940357795925205801936903842712644243959589867880925991752444923158795561526950082024023616022951568573822386331969194464826510355405175244412695013233233671133598381922061320928808273771241806868799560148525279408793426904940186111668624496422071851087981092043133203122835387266922311243300632486119256958202871353236178437081857686469377690393242541600471377999109838345839840245143808235900060641679796919481185534118390226521515202471358858352017905366829684305120115100298684670054938753379911003017609180322212852343443316205347084385165928233206773105489521371105078341208477911935056672829813271976623179489512897314408425758576779546055502018580968491891993783539571434794258999062681823982960936235044448507992468767256359183865090723065918653440343213060752080059046928194357060171741405689639700244074170466287387881370314471586694730835910356232501353167365435163883394028834908721503025994721164609458983681826478193967816283312582283095260925509645967187976733431641007294953052094534666066620421218771240564430830383858834885660103542401475845238765059431515780379166410778156850659097330921082235564098676415770152045521238105729323922681140517289059647055115027278263256579711506279287856056542474141942850036151371192787868302736421973520647520819727056683187313609472461702373996756890744472615596771796771339656290753572016569542865094263285297633676790880494107998381654646778175672821968577997594263625281906418395348245629148888699113823028201647232918828930301096193656781117351783992779698267155209737521926559061445274589911880971919741670768410666314432909119621035917912359280702700373779978902287302914153668008412748640220910135697988150571506154154465110904775539350014472715654959985921532102930768658742356344011632285127157488118915695939977659713949475903108805176341396557356021337503871591121295439447902394195962241838182621641950862217575099321177303268763179365355699044458222210219213740577789559380100682465234284256893434114364091848144465305826638969049944536893786813838644570738271193437365948398522226636009984862640821194965598210677861714526270230054190830941520503806329741791504726926536976481503706818970661022260229670617971396861514614783895895567579035823435432708574157073096669605440658342038322003828193900093338163166142052232279330265694455017267272811175375026669407060528867788914427983358406761691062847449337093372022465882495387748352698207025386269542838923661956674377309941113404027698284675471472268755365080893350360362634595537085280837912373951868029219817906122484919183531690989489047484360399240773829079752005225423551619660143814422608585106502710691730056730775866900663363099063734187443416262461777786303522103024333073112942110153919882760086981683327252767117449911222307149544313034209696382394602459933293598070085992553425937276922065876116791580553784209605126283416127415386855620214097064521315224955314009094717083680870080440766890933746139596183324593212979622767427539850206094921444490691208891177502456454665425842904586500885713182561259270467765572731664644919782761814948654842347065695082368781644935071094264729944660287798940528612168477122203355033472056492235602909466165813206194577576745715990667362113770794583540742558457919985220452139300375883527158976777456668702518052277393366693478464403529210230451938266305941169546126118772772861680820784808883873690627080915474997995652565191788795540775653306569112958363060787046379132115983234282276216778600342479335199495471627552893503860547063840992332865027676036728632838985348474291704542319363990821178261994556650691152757414808129065732306449136645554314457543919288908839426366739679036005924936807444341820746510882989218014800337838248205464260998301404067551614835900367283568270040546816091427050906101871985962753683561006950612875980488289052247421089186116983250402735660491301940909858308821045446190762532257655419514785670957474051005976920630434283808406100362965167774655053450974281092367757696159705089523166058271043871219001774068277627988950119537702783521308822543065883644926042998955544917089400654701297813686090331923974142860772526046142755555253424156903093857157755686561512223532185249533681047214876130132320523825437624981410479611861167969691176708783339875826629615398129965721346619699700137037129432575403745272093975909054370662699216554668194431617712957573109423751662905132805044463251001837363639999569279053082069345329073935108831352664124232640371122851146990356522448181418019175432530213579610495878959311747315126554063084921517041088714572735387432296198794984540329978683002541595117582523669954447603813249926184580550061937514979112766545660734492425918516701497202148842645811130285752004540546313104396063319824157879468893177910523737991131722565772089200816815019969378216523447948374455699034314404988393366192235916103665496909068816871912539854260230354337804808881493205009091971653403507407244482353127961717821452127750921491542023168629140734870457397108213606643447842100579198432540218743042151188235268341444113745370404685671052850825117134490304917713512067812013174501231218677795995330712284870071776666023510965709685054504953951003434797348031618616512664954254999463587853077028416390474096214363151930037772731638665327176760058150151715584463063964354144269247937891183785021264769141880031369190262776988055798205445844982359156625249052294856316314640129121519640049455315025915226115902007758530692795656254280353382863946050572816600954256616323979954289994540637035361600427086397111030184781998278912733208649477441485869535647458685434161739381653597173451288387143634931821140054959606538867149350934496732762966722892941074899079702843698145525422160486789467388090454217230327230732608094993939208573692575566182149452851191903737714727236210725459473780134862006949354078021285553513851939847933026697686669051537554996028730054099478100031609897934471068047941716125461990192385459056941717454347228545009657698363905493519429444027624637141590756476782688381231248619732664103054757039143280026885728921921087107181848601136856212076949910393577085830915113412628755958596628042041319179070778380257290219151971529109915336364451431108840423277560230810352704044677700765370953277668319189641077580104994455145663005598036217815856185777172237157008683443843087904562583815278950503834739623324940452779688675473202018886913207383449955294175748236663346316892004868794296685785768830654985065172621662972470905912264292917672789837231606833033854653386751568734843553746941064326520218395015005182154153780111717812374664956494894571625361113362827816084208787284250685653752276048260954616479370777020353004193334975961278313658359064507639691707173647374588520699574048234026046073247129005168812146662592322861477656462072735096953259561157077124443984930546305308328050523351749331871179095962673834375875534778468062754633063702915406750636584772232504409883863086108075586024384457872063141396604463231888167793281118728864323047127056069048820362829044204967284997899460276384816545691699847270100419126328561203418952037248085077331100947749394191301982871905758218488032318737348022467595984263389058513345930515706002622961183017462468469276549411389725124299710825695485744976621757366151058937210793609195143795087118683140421468247066325280559854355168193608415658924339617020517601082815417288832723643993313674328338247206945676512077085083919366556796944857144438500554799998317721721494749093752006305377744830957345446896604306055260749590442396386003459015604368147026116026627458989040505731134982155391707652915832303526272335433814878979333387508003060492828914409006765769096557646482903502447419452542117186328241158428621580317926274678972381486235563899076242567773868131014600334239707174048598466941206742996747174248696253514638871301284569041609600493394487397501024117835746759351393059407687793117032865504252209981247710899050002820028906068614024890695692858540259942748530494435954630975611069287929579420582275119512420443540056903892769779148448267848165119091074968241657160074735042355237796156180866697525913500813542036095573050829750766865090246256156828288969610311513981181975384845224796201821210225583390617472395532233011315402506428934871399187178536821796689466925895649455077196795775995846421649754637360004506489063187043183718518625950712603622474074199452121139595870388824552383077857727063854381231993317523819547011614256407236784480770765519948475142526919484516559294445127798658804301625809541229215645356866479810335868111638022563210360496609131886048998319664307013207662533340335884569152255281629441843288649502787102155033161671178276642566450088805655783296368129815145019769416465981359036805864833948176988651540410292378989079227843367325109176356850761491874824701408548860094035806466651032845789430817253993831628708582325256142176838600808057878075742668967911151119110950166763442404431470430377703514025734492223095275169631969817964493707019433470388212212138934620206181211294409223271288512737126427087813623750279270186325275475110303601408849804920653152372041491303996302211130300894199221816305793064779199521116434072939571421954276043619568410602296549799294061696356197652362089452608697601955600003120101563810250111866875171022509736609441089887030363343012516895491925325515677700983574347724885404958974274524768699638433844373928140228120316111666298292158074095605886972624362983292869987330401942147895586895975266134388485298806265411246654391276903410455570317720273262825700098577996936374546530974845615478616321407804897083045223352683524720691785388532376911832139670541072995792339586636457765089665376516621465159240090617696812776034423966871252342031714707623926326525096832452750858196289945115727518703920010106535179559085098356730859497048211224796448660844492881437727271911713850615845185463245486113261017388062355506602394074346148036039849780088600190939354611417238346768779549250675752373421919810364970259080436534466132698322600327199410995301669312175630542810282706847018426939311976642987944327482419719545618080448394505419446849486882820224190198856206599211809738154085111078597792906031775547800115652550542146202874827073385618095390666953712705142958176540403053427329779917632861579732822634337310320105608058350038445428239375725729721704837534142197943962942977667120923453896777356557008196755895973872416094640430883133986233123606460254678008711760172195317321063803416467493087808476737695991603106099669864853807661259108550719531112855987257694650312185160206471127876814063853936849317619832932170296682055655760844115016428875329880960304490897873490212841232028390857841350097602907740153247020267189190517136154259791336047820322154408034455453167922632785678325159035986143334055278881637857082787959015350820438837474045991804479511571514883634131078298015565634534137826936645839550361114829211687789814453685376158733599340394060578148407119728853476178299908127653461797709071564073622067889251072020671229233265707021190389605734088601315873251917897828881065980906786044827857510469704650293573953422261705782958562188665233908201454531361916095464844706191446397423029566628710765941485591974416596034622653745720952158570420954998863429829795134496154700677188097459687730430520742071756593807062861375181977156351023158610460175498655481644605399063769948589638476819811280710239780475845259524643708509633614723256001494579763489516998489158072720032912159169766425597136412238436071703880347342171246772970047134766611405827476160191127101710239643278969729810720484024714573169884986949213378838900050598473355492887230046398231260925599662802903130158568334926923163225791697514366508421860638514774164205789408087478908403561319550184657628261152895994613939313719512851900722598059081050631460808846883006536481513419494750155400260012047280467156117492242414456183215576842229139493750080400913354918337887507599846735255888963668909290427734002289771903418090239670920917406876644452049372183705653884583622305975628788741355917935689178699710786476283298953536704130028286434886665951013417343149478118235242412934248054002615002311440169220724857652980558803615306339902898945306711858149668185610973720109616506448504045668913038186090424946273004031315869384031302199573494963015002066022345272046045529046971732064672764286090612212084907574486891276803368246895616404763839978203371953216042861665072023789748179111898555514123961513951814823238544611823623422753369665626864521294161705851479069131640700809799162024700269987162541045546996489066493998954245731942171551210207931752888690350275341212608768165803767689942841168381909016217376415729285448989380771152040912689349164394623503589432081381600328299624372960350671773609040545399608732715023224872393491674870731116824421078677210537987413103076206296227455839936031313309418571836016576732836612598267455223917521265156403405903838028017242789354995423351831032046807738938212895760805214762905176265034057087713810837811838004016618683427465084771638595292870274002101512324521714203366666007338785171456705196599913330599204387550874713409079398566417422681441815304200630493044146050475630663094198963606453704753543433242441850125420048587612835389090889504425379358263655722851250069824964366833661377699828937525579263354319813922929476998660973696512123363231427922713172269569548637793008723847120869619165293130685593250607296432182540886867528291827148148957883328691977413766315651796633506134489261967067216018596510893252639720929977263394336281808618821482983230535026070766161841920592627386664379116832987458177238611285541820136852819860103546149152324646535269951137765856072199475872668953462171133616896207272209178021777392095784718634514678306861987819540337439048851717764270158115614246683534304414281389465212186843793161999404915423505727214544115336063668576764548675109014243751412630261429084443149744282578653718764816150060639401887993251066990279903492084770269806059081430258947289320794299428767906605565519950076679506359057717070821585113033947714446073267010918089024370454210624957091436129866336163662424500811640811888751056350190902183725361112396080306925480388585153296135191760308071941816792420669693132446828626976264653266203828425420725565027015978235638841328110528127206655484364358568574211754000284065984930731153023234231005964380813676314268714961909805372111487259850477602859576048737725595291309874866600986606301248722757666868610935148395166299609615264437871457742271282070762473817837233752219555737784651761915496663398806184897043048331334381145958510909380102894598485172964834513090909432824509039996973166264460459379737232208827850294940621220135173991374773221931361364480168368198140217007041206799899945617869152739069381861429374852052979222654339716193779223707263904821791570435702421067014838699169063251119058834994909391261168571316013550699059795717602769377043279366268267874691525791855312443620809616651202700028450252101259273715330450906526224576490515761068555120314036941465493233568808278993017059267000321047921886758929698068582283371673094365787344218553837253421171028747409718773365974813550335695483355368481140294213922987390356752794163323618609243551195019729913037087614084428903690600679909849482510084470601263780688789160601423070126671635018221005063308325568036309832386539755120161270732901594924821092554699415728803847149280388602857356139131306032717963872570647374169050385528973591859354091793309149103783212117337470960047577118009523576933081001695245854447457393291915320110592304174812815518801526463646306700644408375314617906081962870801732713518234520730192322772872450401734841488450745608541178379782879687534567813397537722018303808484986729828005056893465355012427796612060920276807611520130603354492264196551675178028569742551844795963983355009698714354151638087340905651867753346236227577169871482829454728548576352263806191202471104861087595168826829685065675131415925757669481320167864635962387905034522581589111359969266861708462670375794771335632236449623632041338608584430235276966466035501085872644620226173235942382655278694573684261482708633647501188283841992522026163901801510351334937444033818855492992721380837420388773449091640484323562724695454349549428322928614456660546031973761598244234831389879966518147438142616556962857411546132647506852468518014777567405155210656475637231682713258892654629693236645376623209129105170272195942272423453390484067484781774357097220498692996445988132541658750965529816513040018271165396800433914426466024357433139493924625105794620393376368484079708027104153265233495645439795902971714811675224040741317340014398202901462110296547162229642306265337824230381434009361995836599323756009393859729462718166147949897638924857330533125735770667574091771765487229735676544482265046683364067613684672826859297411252989815802930432103205726887213305100524030661171345520807609045638445421095527066163267331561281202597522409098188556970062533844091951396482651653057709845482411718201670971431262899478755424397100139491681768742668666039815454295640013294095482480849125218733638402295291240341725179530678791776083531873387336299911650872006562702152009684766588535721136659681369891057920979652417428414658701054690209431841293957988742276990709089438300013659282092261238351968687770305538112689920037038492926189659737258942133503215476582919042970469877561526016973792804260669281343812478608986060742594656392668644645751022035596216622667653373101909288595165631473854571276383063225515093843659663453234511334078922512979496993556244171419499827123167897147704516457373658835926514676076613000521721453280702973854849551282094531149382900198659699932311751420198609257150808959856210429251045441467315643782488901613123234007856732863968796295670999565543979918989779889399854708385261509857620867039468066239951719206861663386396380858224751772152912650186906887655859365842855466670955940481657550346694955627681448984840379162412531643531980246347329820216109760005188688784480396628881737611317033413657829621577949365286149610942144729739666933069188730838371841396074430878932687990783201856573400000710634613528352115160724989816327537857426230521857022961511468767870835254913472864483094996329544521334294133474189669698831676117107011786055662378562899011310669426724985737261463873206578662634682562653258036677693313289182244116615275995931208768933804006520971065629976979174597408275593234842533373782290205681145288392627233887007267821455640641444668595911133610170301088495383589334056654998920973811617852001616090339459515356574748379587945359475362092041148478588148725405119468229878263441052663385481737737255864878044297912170432698328562556187345593444733986666652869560210812190560891189582017531254092168879240017386736344755596470171683336296802736107552835883263659519707723656468372617602949088133062271318667870364019654285377777268845799086895104675090947909779204867499050472831004943684254661624592167038816299631992578227671648215567831836563004077539296240280979052385152614860535475066179366578366615350293378494797986984243057465009671684438814964840305124626096306847494608559442021493476603427028212112553675335266520861480935182699902366870039962500287498044117204203552831841485334790252207462060435634199066595084097528720224565149954172392589062722289419199523252210941145419656732037619273969740121986540886849050742650291572965617412938182741671684809331061922584863457583978503550540206316489658989590224795755273764530167903305284455279915364630122556042789410483979363179096904983500050610926200488457118853055700688889962625563309615736325402569999488261498963480335203869177457173169609696218382153241322086073323536846529513676361049831320483593712828812320160215604076407833007016370147113525396291454625515170024840803715175744041802053137368620994268854560481265696658920661679249358330949271350536220219478253051439143107751841269273678761428930922302356629307726748052824178766778812900843747987021649112963483673508022119133259618800886196877303670358138177669094867488227561740942702968750206443666900583717232461980213284605158276712107723513174905600928539863637993846510770204177170283596155109849413778410981977451767211864013787079470502469786485972570319726350437145619599253175845048203070820855233156729968108733398324974997855965959806761516203307712223274267352895036548110601660387333895882237889418047592937447085023272044108384393768169228478942416985198791982133277300050671163891989636888104689643136024654060237735336417679461907562098247102317447003843792048497014722597313288589797793377019294041638419477379906626874325613805828182911253583353770402183546103029227386011632280112584613696426289154640560320009051224264309943020222740704377542712994601435472498584490480370933726444253425568521698795269675301532817530493320273717965063419177303578099147273394991380094569191966239763235903427283820240877874161120490756072070844831385621633345255113294989421632971562314280030772187137956141026497007036975589362788901834079883121935498015212780654410169332526980992577206374954686118661629130652002856465485972747602147790844436143628069784991067923804473705821197143049274530423323056737313888704526327843901486122676609976822374828236758418778898114598826844378848439273976435625557294159458962673315533449391646280177063700364553345056547857921944408176011392136583594019165774167781308109426881315963826028175939537648787688027103332200659952939259591236039550699407790090490827295090407662707833213112853404818710139179740005055906064753598876296336235857017953435189702936968433127699406287248907538557270532777531659205059629725822863040029489120130631792780264854505379494748585986368504808735222436751107401526591244818077910969808981913115064537840804000120013261873244404027521032109342192809128124435205400913603652696105951982860449247134014924164211811770925069863035804175590821387462047075294383262551671511719764099320051312640336450142912569895727477412546311460873095854628848988845745191190216205800020710217084441417424250420176010046885856266230964210084699599459314661461030086289631446817478527563995937727708596652413937365376624062722972771447499519293878867997038443743091617314132253122296002206891469061028544246277867432727644045806081490087369640816575146987644841460607741663465869062051308657127044727940266081709653260905116696219247415029995072700936396106068177756222406781908237327162408521693837474841476597236225910494940117408239811635906895593543000160765057002251340398429875781595371089746489502850766524857002515764868284669121549215449612422332810736973885913855899181237939805608222289917150319395472918770392100624425046625435139291511888075841089300658485490409890857623379477210891837540901889696614031476022139397763507674444210392199539968034337246807289832786756284283958999651449705118856795909383393196563457453606317677425503030836749675951488803773436290499665665769191356749527655804701909813638276898984547364889465390648717909807824210051927662349507439785058912512911049427072295339839305282970130549490153165751306159994251051219665097610460102355578599686635496508396579044697671869723580263362178198170969746412317047703727927384920851385196779240071329315660325387221537565440942550184240488990232292788863805605197348853667218597890606933725461155438156998951081225830207497708938008584071939339296457989788069000293890593464489062417560228565406924549778214891769086950635298769801283816501387616354403995976896185540037848062539018756177313671923234792523114482020399767579824016028758072991118746703075697874725934411623941216210275425384320040167924602880492246625272523282889452324860254259532086637197771287254524663246003291723223204569777124939357521649903481322803641868420721588764790278704185320881105903786988901639900043729893808725864977797755107894394370266151251499911804842700136758564288349830062380483345918052810648585054722821667452452174849456351147488730025410501221014999275736215672657548044029096259752184185376148332194852918415745333152167422877056412549053778988137129754452624525579305135101189094643355747170966957296669239214107415771620058073826512947004785481561597025315221962152415331165547861189828682430749245636737976965016033976840626818257489482067212821049539300644424769859971785727184252602204199953624081176396340234251149264554520019454783736020348296525151966861170867723646879977901324864869848623835730438550704625801505006338722490896293903206516592994686146958327528496805489602663183472544110920179531837131845778376699909264711547259802579122225230551177126478984946498630131087984402341201557636743433137369312699159756725843087074632951777434190916573096133269046615254843323854821417995430866688240769160392800361513291911799561273322556575542132611827903334486517532894043731808687659816900928638830399846265399538797236188542362751862020912973957307478858142849017998306916464000029739515741642145311860211284377644208621989790520030508014341586228309897903335806896033726306075673958638246519114154701411412425655948004712453112593783675068700500019402251967806193000617425161849904162786786746797771339060593844777794512589608273972036322003907588415421958026211313334317175020081639032736564605614100694560995671987137248609377499734678622163017907640156002349483455058925199546520852022956819839486928150708695494553735349957492309714177981479380019665105735078678127976789864749305331739280338077555853882044475878361168416313545247568438222543357574538724511744674209974147991525620820558944105852069080442391541553605195635945206432281764584742530097214800196699385873355702512121447376918394361600727433836821695473881612536842998867135710638405705959700941143436805918052507363502164730365199182192548364085206726996057350498692080707728464985650029813483226028179139541846618486290033610271762952311654627752646878667752556416374133239451364599434890637974369167464041250929773156585749466781408685683406906356873744284041842630167312390601064708929665451151763940235463333862769310247593960045287869170755296850293171297899242575559291671266585771113001067966547102620441416592100910859439930104556781508914355051450702171761942647071765833248674928263613346820357279958604686977392799408639583544130134000905900242172101319044753017049619325052052855441857388824029642486951513732886729550401027326386773186668516830388955495349039871609280440821190743348787690030560998100477236803258560252493763054054462096852199688565971241168481607460328740708189864496911501520119564511976211212350033914088322237227357058474433462313934363431641981875951629782247294433961002842649699245920140566916223617583937315552548652480629626459830373072142253356215899482005619879756661964029386498944414449623626886005095102445318018313741595835896264762202255563189414921477845477450855633212869888368918789904927983198797753718382713326029176251415178885942261518784400104453148483806275333978728501534351857804288111842175268590494015622404699548551493494057419272328915599474158207768432095254850604290867616481984013214008550598235498174241902397338946526213836358920746460924717025945598859987688604829300249968055088308234971172685417908034247514938176509766328901031132442680145816210525757800831901957661259228889818970389733154188641483589757396746922340325901672506572034003783937706549836472305424372976145245427086931095478839421049896077257289972155156518225734748269262461523613643873272255091252553015727472806578529306561628280337919060907873703414079384303491317953986889789115746787968339197288271581036868083437195042300608857593261377950966529798825566540902295239167297533162742552250285135717329953614786750916050187439980391051518660240677116457041170979373160236650114395191495466402827785040766435247356717031433655341736292892871550203743949676329382728580358272865549751450489873928393912740858527871982869340708178212167751321586220478727895906182930477200375452236197860003915231927051880469321939175700637621181275615302542562276274214470346068039031927354589808063330519791150715132691003255555220927325607477950869525355959456272342302742032977705512025743160195784315821232658980518747744957252751396406293606770473474101769362650230886844062964657293444235266006458222655722862579167519400523183365546664336403421681124343976273478571814437410814769703729235630268188469812680871005259656943382863488168995244780748496587305568027995282023385254939266098927886552157861638210036125547235709151027746810192849242532498434691435792038280371777706703864686912698154182758336754083628129212006939182271870985926686461529889143259462704738172186207323374994424883611693147692960596766894144996818458300950051837276034763685129117685811704512735881024401768556155437931746921801346749707140154877463789017968638216004939561233779195202573626422610897660512830206566953021878801169636237915976955055521385416542192165710352271537694360774821208781427393387972587745278868760574374608863898246219046208297687454740457166197782597920807379560618635936856622820029267756866517990637651263533928314942616934437937446586981152550812890127194570234444737748367684897623858467933272197088105213255973637510951440992352429153029909989491574073146909670717219832538083435472352926281734822618859421131148876131382470160856012766804667474705412763104776018114045519938215125877450330333640387999545470659021230222115702442914636682058040383554250014993084517722807842318937817029606697076968752589197475854179058759430242866202797281144441141073163635560053288572610774995399139892070615549332570016449313359807052596883786836469704189037063865337815445836699003180489194958057115163374070707954393876798224360126985502956103160328304917889710591533495681676142922524850705816135090084926423583589625587675826239195509157684629911334173045375871636693996938524624496929342253114123640411536455043960856690610842384688929897491670112887787498361703753339673592670905900256472600079531602686012764689908269250241443457070848806694068952500222193118863646921890331253584570993887664664162773431169164202097296188458394201255258305037744622883085802309062607712263946929355148217577041463177257821666004334578646592498614245922811511365916401050055416101550742751803241709468128216264307522626249950665632312117798363959599870111339416115228835031449245936605005653573452177659878032225197988848764496521932839509693816133281098536726560954296628797986359479719825084705587486008728373202507789487079136016528838480230968571641493235901476917824150757528508739674604409123184594936562678081900545727667765591329724649567466043770088867814343601240340401077669435985445677244719270366931591203060722567373942787076999986150602358800865102661449282962845527176298789609708036665711193304145516878639629081181933221008893229284011512684892019517296900045119140215719859949061623833133403614315105193592994083300120491142815272253129618834285600593915501756417012508795609078040402939188764290138893032800326062241265260094360788923597552725050052475170152964740370620601654739608797527453462881231082699428460171820896518464827684114128037799515557256644114929234135298287347995434125524012896445245074595266021229450348326390034587077468173204924298151198907042490806322562056825728039853667933751094278511652314282435738965115910633079074023321491101517717062575591686464651421364179732233190590225201325796379943678531041659444570540833216684707220849077539806797187713883682488249148709076842515404188412723191666659626580551051589624973511527381780133483991281274087338564818430404483476082262993295655234341735894417639209705619641645392022286325090335681112687533784534097539165725226487678242238931863056735957980056571287171979392517731947593540833274850937327894151981645096683034164849544606850785161960089572440498081494319675742306365292991976443873963004033092785869277789379154632611664065122536147619257929312879419954814146640875278191585909331789298257046621013732258116179895815446386701724192259958899745449112551430654191857098453134932774540098547397320137427371852169881623818628165915106722514158245436238276677628262237735691326625099634418909059391514177791582518375720295622960415568156646246626250379314629508661027803961686965733465737996549537735674496168627356892559571614807349646713571491789968595071126810887632523497781556464947577104348508127957891528305774092895717306764345221992476099601628495344158615996729200831212623683222232576476336429027424912074169582003454396797574107765478807667213273171401478277777872226106893254127867573518224728548052034743901784094699145515577456804088189190888618953864577497466329166110853984615240067809317284789612759254582307229802906614272947153240256419329629947297251909003935520770005378806786908484945144071766377218990814224893399123227705818395897026482989576301484386172590416847888817971540923707284819849249712427073816334660410167822185898198787334814499460188772787935519503312148219155423405857638134341132428864734498664977179907173632718512950280402372213468714346568533759627119367081073180210590015674172656027794495938560353327093999167519307533152452388118710214571908919054826510612176788362540976398191299963771828668769175487292732253333900360774445260217209156452627115812358146661468941397016003152267309300940306528956558098972490729373043647089426974493003615035234148283559115553938696512097414494582564123773019893073356167181272144913309877446681020829670364155671785698052674705552633926160832070652369863246063394791883654895593249916362326728129126102869560027124073118234502531000287141068433099937865650614735036718881568412081156305201433870466922625279900199888944834839214878710299482322102472229818040414021865540473014015972308953143035919614492903657763783401071090405516066651582057723250362835692551411565881655760249487514714870354200865396305792568779081662858523699648421452089487677195702739006394837983861810727912749388270795994014971667570208714238255218340261573408939886629406131299714882446801894478500750718806584218834968183600748262123298980585507855922735432457069761189372066915150766525621348409910388037922351209543530033654598697693152756383433551275763686971120785317741593582206060742044370160868975627769228744149220490393983854541373174758767255566857807466993655915777269436891201074175410139575653130495454570876696092714515279111475692102861034240382619305336407768058916678705498064737060703138004607310546589711356144533538217494763164270860098346052164711186750171666526975293484427445393815418497367957750034329591267850461145301330835204987146899326204783426715843806367923261780316157464911293373674617131362528689376760856037333399962943163387551799347738483509256083989010784331252459968577179763363574886397151597765013885635812305183461142338774439173238450926063940637287149237251355649614459330286667115288200096953938355808586771842044816439810289840433978392656082442172371993415424106793786312093316234433630913500331360540293103448333283320509461275685883432124128414946978469436048823964637798339655156554322255830608294718907206661901101970915053680657942257388628212839920940649517370414333992716833950554279138778474535906668275346629684992577958586634381269604631413887097792310295983312830229080761979134434674588161427041810301575336601065133251475475218439107674268834090141779391868063754198547012457427556576212490161982716583127611203909193155190190161094578483100440609869845886827339450952740280513476715073260034778442937698648909683105041079545570516793244070510210997150854460245204440246369669015131902421466103055669522787271825985876893202812967955424951863197606667050328849264269934626022478295855530851765704505264493643045541752374698734810499285680000224402436558262699144366717851447374663827197059951332560164574534949852539287039649283500788370452395361390632592345079711407603546331034112809946785122913550867752904571176511944724879602820600553397771130849449710695957619543146103280088240824821492494934726232966221061384083807294435521376910583930358688969950349961954934421592553768572023286256052285337846387710669387237654174915043516215355661365653267060008875517818212990971079742565430279090081735337028276623053445783922822150617627876117317901425936329248667947690532828233949273670513375782293722180153775779648289368634029365781470457313212271510594394170614168469648129172559903812242901826778596106345880877060026678324781342015551740796870880969902777523069827113655229911594051867144080451579645765677032518245191036048425145074315714320364578076511525202333942491026540720322550849579923705507117767637504748078574563775001208837765880926464490371617478602584618218281363694021503489362526580902581554378482648561537290720425820799852572466858512784178139152104915501928398415094675683799378709843029761448412661506515012759786570744267929924963853350373673579917482611643845761625724324377886378231804314931639079783175143130645087505031182688930420615889328203833636281213277822070510739067167011277110101126670590944198069788816840776789436693922029765477885056562503855647163628360531426143351581342051406225397011016749197751650457929711409540977294217871808217731957563474393924171255780864188888143706146372594429649337835461454887553202938526723748859284797983254523358636726278848151892908454067027267198749585871862634800004708346802704236550117004213977012051550133250036793033230168206535997034505655375586418687052243849707770995286046236456633153189826229426843804692584771110522895304553273319347248378496863571411604817852913983757567570528137416717229677621161055207995405224529865784974121333408148403710110463491668856199790403536828740019298185259956674936312759164352659049944809929920374287229276338726847096432371945402795317530537134397264058295171576778268812769113808912464158332592344241674448802600485822632448867618207475142596423701271088189505923098097404786316076668985419802497060446773718972588283672979849620481926547551295377925152729947009452036347504500698458804084744159876347823718424533161942875599549728597255027607717682096848487359606000457918640277595618171931868553669783142020904374231757577656392111566180046988862180898835522990621220183734169902839033882724084983221402027188699671012003663269909361538471450971768473085840182287965704484087484719271866478411685916829591110213209626724844015566463988533182888069112224562196409378416459757682687350988380563522284143989140913429706425138718078541869324215306234384159255000205896038999107500589006586734505078316224486729882601875080749282940516360996194550389258634295442476179212494569253003869514920505200777205750221135633756948806497364488054614279800807573903779186745198916833066372862077022185570543991066710982222985453334830482173083698987133108534774543596493244094517161745143960879380831478090314716240036940437699492796116508811441687000518152106913221714260550946166754574515655691150185694255146420471869592648622761182934321518533440681198698526642665645048310340086451449664075097055367629867194044439520736980532822683649305210139333103651568846326570003778167394248309692517790595704088059100278520044150101507132519082650908628718072180400700937911196524053265944061455224580906188194450005751148565021004768283166226008839625496515566825873424653085770218698447462104437824671010765079122530648821529296403166272465930869181816569561866232514210499023110558866652416852349891238225532342405761361855125413459336040300879228380031652663123794372482545545622613406075744937026149201917659826455570444073521527758694073332191147605280857278349213240828432212307629032071458713720859859836835254468850030654199836377666513136359464862429198895332977927904365792370926992680712629669790468728461446276578253720059994291136848189836109281707395320676863588377076742057168093876321530812488745881937658571637098587705517128421073138073376578814492142483587697718199608713608041763088729524025829276632434228035287341051870426825854033471172460715269498715974835273633213021941055063404442262086550028578934951156689861201633756315390407651107208685511923240118596207747999685322172073341994030540506809862333892759181107586237455094820909427489936160982126693790778729770352013235272614112871955417112653159596324108677295997822987613530171600282810044781625089423738472699733456335929483588138095631645441424311705445945935685727989624004196118983937191213727652944240505309584708466710041920000771869635407246222934265734863552644754609311957679195261483696515039915396996193219789307857363658230334654232402365918061926210661908340237768971574132661333515259598244327042877842092946839679307360493435275017194078204709431055533593327128772490760195926401496905465851705490323251434129157100480890923225954275387386803130380013110598927764557626235364531098812669118917627815123052032844324090591860082347290442778255244727981517997664503843864723287970183500443627979355927616621461896917071638238033779282433213241485596961669451893865427477338901123962964045423632321687065272191085620291986838753675759543309432948363933341732497775210352769891022164943973549132958491908510174421078953699470964540034622964676345745129304699700898525841409243906492842065872307182645354112361458072508465477486023494629516478391688316186068823567375288810793886019095580792627041081375116349141955760207754348321399574583921195938971755229712538462829023737075229376361207510465547203003420645491498420290228240436103579699774139879993031420007454243944823866553130435771165582057652831309482617178217567806745883762861849613993175798262848752637090489735854361371775052490829042370960307489691844757132317553236097574303253115832194445526468655680470080926917257657456501965368738494001749031059678322052506705160489499914650330802986014030182236086664175129870418435091731124125060769027140786733479972998396337938962763256000301769785177698772981326897037941295138789511163812439663944194291716125711051020477897280262840676918274930636148915484037644050302000078759653986545731997506720746787449517352712954649366552218357972272578812574873063874489881402881389165449038950231102407860028873797051527243761147954776590378427868023779050223210366544431074383836002861215804140084735175258694612813087896196814688009750669918281454765363691497945644462854083456000200197068244683095717585157944269397229591624530183952519992102096968680768854659852465283394274569026951421020317515260190329181477599461483771436099814172052016702767852962482564004389547857525191043034615768973565891789575403370614165864452406448292027480681668245365540340742294523369495366964715092994417244669651430497380800313818537365009540547945247041271930888694109695936287181256947904470389704133283797814958751866851895806505711802757301835173852827571885869549366356504206130983381039759757247243837544660621322474001834539723406879327056332746511044559349713083961435313897407633469108093710278829395958909315731774449782794477260722082344987374373158026709204472801970497679646941754079927794198504415978068626592431639794832129936021506957094141552997791580216487783416065666912699256209678807520476067633514658069095274343318523859467808189913182253466069245360020951225269204727838628064338375615915637814831587978370084013346413733648651564930204798397706965173564678114804452305300662383640961802531209695912897097245890270449032940745664891982431484414000027744830506674965888240680191729891562688232991751809993104269460505890677957862950723453904429805508068845434676192000285899555473390699514193951088580028824081196274590921535129560017898718728012192497048521280436317790726684882209549379155734195125686959310754259559606425443949005938178709817042364358554973878364871843940486796629094273389546860252358797836474190360904699118761202040203199917903842173544827443794916168506558195497260886994626914994446493331333242202116119576380627605550643726025424047860106346820302371022958965373981664209924258061588312003201032383715916520955997315498674254244003696140605859993745095444256325117993868573639704395581629311390680381950257081567212926265191284949029086103092326461349768726685312259005792057456353937162748213223536285349456251467194131655232652762250161193304473868772237107791518700491997896340746205587346610432514547175774482131919534938599147674270297597688193103587414704496177527380472787375010980513789415497312565997861144502818065938086444372884274847254224756617283108611601691866102997970153462690438631341678973383519427867073156436868903366394597506303892811567081638389307499519463699283750163723133827462565525427212354698650281742049355336102176018593093951488041264849848157306773937971298384315756050617742314973885130115957290018331321550119310488946068671514005527817912084737988670838419027764535474403359504174694591682332556405953716157905440142908570700490512301535145288585206537509084669773428006317993194621745551690351741721610814500174086642621704865879174771519531602102560958250180359972657593149528468310111300731094955234547851307134077302710089978104493499117807626844717978559361325565815795773788446186471766277359433497272717348892895020245707983454091256226291692151986516744033124458909517539297941117839950783745931265904850178199302603375450915545372204374822723371281620230126053664245670049283415401980496714516503482164873467459963096839198753809175181945367499261041418758994478107007087625092793920878075872568243380137529261437594298324724901920431787869075934294205784319310140487729044804898028325624766913858671244219063703435983733498321912710009635382660095306112605202340547424669495537674191187593153801264327742514250156938212034634499707727557979431134750645372971501798906610387332231955974017235099380778420338159747900784584062758102995599477632691024391434958514855209496506806948774469292238508857237505995588969516262817446642979047903653316359196504702706763725618926144379970908638398846255130922044946690727053405494589795510381141471526828682899890699956138799864338020373455392431179516157086727428305647549660092905405824411383028983319242600881836644696850403548309408068377683373710990234073344214810229341202895577669458312942526189351174135092201021913100326419343207978368023117580043061938552605155919519531280252595780042271560203715149383995040953772118811394059655836031150195480284369013293928497351207733660318229948203182125251808839409213379535123059674828408047621271581246471883849636314334885488551968630123850064211419583719524361497910213764416384390348857889404067762755036882498027035191347696010339677209930478793438081876043310469052474554434967402427854564182344961125940397153129150355406078650090226354400860263781755876640560702239080782900234588238141978866636060579305076445606783089648822336668897757958444053648162482692706258619121753005630775647447942823843136031844640353811836666503352843477790517866774379920266788377881046709964828216981198352825413565734911406902170205111300731890748159269605210810976237727118127283076443603401951614573149129165736092054169325747071929058762446180811913190982226940391053311630169265761637729095452139328400232792509719038691094696672647358946385852940977943759367773718870538374443058018177134270989789935190514762655802775297252585873441001032226758411707593889308739288637899290749630859985393043510536656313991988256263224322897336790497441730216277908082867248206505483536088054962433623399082105955346510566979992847763769190564608005769341495292040753513777618653157649691255739160888876015193466030429625014599542158493436027408659160987257358144408029720381666570209034887120900293596517648413562933671266235745304791450599026127575771050944739606737483797395849349161508467828004696124128267191065595097439182528998889045249403242564330487506864153383207939866735153848515533105695003159595479798399743303355423105953581920912328478191767790138791329063583523111127807146375596245510504726409444182013750369966476837397388492102389950385765874251033956409958282458284011937480498148665437641298459731245424549491236470475502834687384494601798750300990160893462957339569854187244335283725353460775767580931543512268182495172932464062955413185340856732910091240326448905461549480143605761516358156121460879919249888784354964133403450471612461855896313722002273873458862437814859556169853135405474709480691483448805143583016294605432516100640486911179490835124861702589781278107123877525308931229391323914675806585996691309964048048083355155878095844123648354395191021206248602891674695077621204281116058058959557961491503078575747763434009224864574374542721767837332793981325585610315261718112092159339410617662758133639118158656303650304738795002280741308592249294136761115066290518580183528453463292214137898841592440832031154122346423523478155818699779570887375881801339983290777292092547826110760045087715053124785050136121072631439154778744731717621762735816298372189556637357992452784988746669433653856660498532355107923054904905611173188718878057641918459253635945288858400365793920151692393663474565337484701210680684850875823191624378678773273678761131766129796477027674426618833528720926617862853301295357733723054736750290086448173874405126900119529404757315771855341189843493514436570536061777514606006922796535151288942838653958096110255300388128773941798701070932870500771021453941438345538462861966511435452139077279015659248750935648921673893622344159229728121107872836698621685766192323814731365454496802243584182075897398147073133392517133041138902719511689656927678603887327589458345938014318307777895851763958462462663075843889012714027455805746706538876280232592581229349000022743331452455072435871914638498994026739407921855843008644331004595485694627165462420864859375687015476257972423821412739896638709179185388730679480772933815415130688537215376409944000673450122399102724318662997640363994059307768121136687343649242640215764144617673715981680271593427273666154541953379013904088252963487529712922344335259218829432583784988913941003877145758800328945199270339278374357754791725605233990123875319049436059173099219128623923258362805466452750747042731038819674344702885976398989647115364094013024142843014770611101159906709445738727275575596893117688734524416784000023686799749657964041978682436898220632840779235426113685495688623254657853721994858738733911843159260235567858706433668723588029170581414857032911132725364714032508394171662556557965702732629027686276889015585702757392985652284749100848375559746525588096804667545840938796640193463004879499731093589348826542374750395449436618650138517602763095080291401077627430478246533950748051592829678072496483155385691079039061389480333821288358078788053483643299758667943860506017903462255295264279982990451753758323879642698920063840940117415466693403514741155602110848072611763529243024840941751725731524245400077959349738786799944330501195436851324258736804175589366963152211258862274358159015853725552551381049626178087754764766352642539268053396020858790213859271015227000013933622166685154881578711058227194750817348623734434157623499163292005475953797713321084759205092868458182195107500815466350034284911843159918813307765675366573531468878990988413035322385866478311398789912683638270958861811717347967705443558926326937087430718968520492631004845753132859576566956762740055465928242273535686946739767251268259709020679120865416183791162501482968439329514453324712310064535197690653583086429408703191105279570078471888584358205051974151704777243873937813789416535421194217164259278153125753427800002334929037394831704560103821935610373623189454632216985810998090579457811294962151028835018981495975011249867562419728134892963315678538588942114871424013870727848517022266628236937215152915649225372654571317318524865558561422222297198031990410649879763720689856958313430500512841095290944717717739186189905474536022436029566835858824256297439032215391747418958287082648212334910016129734518975784669973185816011648499050432680069922831589856770762637203220039123022262501555254667036678017849341935706960594846252777666305300315017614109347354092272925998902974884325652165327667928968346967046598141735775456938901320450727357032645440090120319802178063665822019996125981216494861295033973579625149079241603339344464836756023054624613148484122395364641986083776262134771522283236957993798863434198711395116690924780001013494801628288040094455167660604183595982633784246320564804025148288644021366951994197673392883074993896525474717342940517517964276923224535487971127176714431117667401396208491423983129814311511514210825148666233638810039007393971066300538637165984808189896466855766346411705073540992590263465481941509612292907020117779308544660356803871449135707788273377741927653049736364810786851000991983687339932151407542611204946776259445782478553037984741860502976538927612501226156241815530099122871807683643626184250763739295828514791989382911267669297802077070870426743570861731596385081974996417758409074430197082532964871448172768337571542745397528115168827578568260245113536500496622252568527243239079977466555500867251358466153969511260039109000191590329408318672949194535352225636349601550331677168494427341108085344025356967108452979087110165054575978134751508668391133156914620972110414832572494589087658153263006294872868224299682125537163368960265704964124798461140932279852466540325452093582719059694484655143856465095942361309934545590290928679981079400360899196889250108130809241890095736976010714610889712537441784437727014818732468014672760440280853976962924361830186052091189457876627393309282982959265395786023449724632852646822766520910921760014017688216430801136487208636976488921120956149862827206186175099183559243561516760737229193676299318729121259518429090890949646545805118967268932737323905752410655671364582117933835395076318673561741173804612086647983021589888351677469018484375081474584417176799720077918353357754246662863892747890157002564292517135186192190366156266146423414835102264282897346162728127154446446006659014396807961815423632427958816586342336896121584344017684768733384784202542344231546163436163421427851975345729172711886072620700774541190200008285592976176350928825330684100075644548440592467677705902094350257657617006372666875641569714775865113216844695416746772268585898361682427367058123421768810196504441108143627203777910508293593424392611347002826848743920238275183650029482178745725504864938771355263102455137483625734729874202750797936471216516421035174933240081840293193575892539367824480266389489422001238321393174686110932629037038484604585296967486354026953727821229346239465728868623339360168413366986270234486095325966844140378808910876073581709036260159284077056094362582394198565823820614947525993712423370466322304549133891995654842222353150730880065854791374635420537981742358532695450351262468677682704231563622625777140736970256819421130409178023990549880409460597925951995196537471836096996386491633706260594425323888997257010269417035793983981927001292418285021464375195694973945629609314893181043422000418626046625598463859611716633148510522842463483007990499524128433319023413626367715097339433815313824929629942466673741025688876285769819522401443537661715436968450219290660934954815668734083425767278268467802838063464433216092965481918408667559600079921842517672318905380739715605019684033691120404233619402891773539480725987797707761564880062243843594563774507706435719331999146009765097195394934204073655487357029416457755963613582519230740372132707035679659851099698149076516050813740612725796619073432356657429211834421233539557687491384059721829399802146068561592144753760768217987520169718708600196908268496502946291341844563073403561820028025306628428044259982517439663751719403232770188473542252375354746987800324018693839566463119836388332064251562698684954499750888677065030869517648937262008541082146127040666657641620974738053017825791940200968422620885565055471033369747538239982595520268523608310562034802776396832249035814356255794914696085459773791911619546074706960082836379476839356432930547573787430629626888909963095833314130656774500647894331636823946297710926414436449112410630927847941336294834119675928909534910075345816085432256114969660410149094245370326212657671318572934211407486235155838839348645607061469369520639883690686269226360357068044396351249258760367217397841853152730777959297551140771680844225217653716364993039111894774729345945399105265134424390432997790661411825692663777418006916955576795427520514475425614213108532782591514721565078971146499360892532505397887693975452283623617616271513532675157215773584999931473602042245811510718898315834216948115451702366724294134514905666319071342685425891438963570356814870429598716302080549107788202937192702255203605205854693957121642847964311133769683677275194160471157151633007850388369843092424827650219344937603454727599765305558642300793688558722099503914276340559299345808627356012765857989882779918613313457574654909992894539441958841886300451395038192342262879354836272523163895023511031181114262939908734225064928265080679319306385885052057932417533046862698862309738469335574509261739659582854095903271408951117120809602809458358147257400313278103153011573404776027142538764258248364747256064042739982800092386819984184499634353169729324100583359216219409450825194151974051969172178724050199241225840994764919534273943555141266486863010407373738579563650795900095033319874210786512053155413873329986076959157775413539612918624265795173317801405288307614539184697745473444116514590310981951169080495888412233490663003263678112060332676207403348227319104325669340365728248823784381939430837346100158474778601169641137254253772381765009444492197146113001801585631749733424333026477599172498359342811284333915602386677218554685220616794338455093998567805282431258309531461990522390917729728573570098179337999444075612249418339270265328879523867885678804191248544489678867961919679440652772450850435990889322905402589964456808141593714819298740443302012753951370299693144943914092575177894546361299841053413557292390035496011925973027588880025126853676468031205967651834766045637112981969292525472674511005163471329974481877686833331693692896644449100065881752465085374404626059829683532498465713312702686152820584724380234142192143738006869587604412742269114989527614540813323952066503031376315743993339862221627479588863805702274630771585841804722443309313268257489643083624979755187877733279057659090788716471887868311779860144520890567333751329147210933538059871888267833400382906996953715507368930240882620884092639608369754386415709799430054789976476204944305599714186089746563602779967693953982546328644796154944258148904441657848514916011732816583850530846669434559617635080257813811966456504120288646188156588857534832374962069222667376848175845717393012056535332091401746862581076866626100334800235894087791958953534029781189936835076045934970598876296375651376245132934651016934218790096927733680627019529278720914302465355825013295854132461693191325872866936279258780712313504849991408781532530887185225783481697136608581182519520451802661327669887136663750639710049267774352786458737318747872261394616215244964222413469431446228900606833982767258075705450891512070233632445580294036170812968326768053504753199041914312595285398878444742382475470652699725611920654207730762149466422878378166541472259572272787466429198682496232764141961603332955675301464107880600665883954817211063093653717365792012795645777170144144823444819011308049363071224421321655086959400606400274637868256950758627682627933410529529231570978880963360668958687810608827505378386456351870422829124041031744826349964027686621103885312907472870158554780824275712384383529439573384424340425555849810826478645093957336704508349311745435058738403869273151353001402316438905999141294666839981620333670696348062967788208836362282223350502154899055558929822768886287688196274918673106617677787108509482437794928740650169676078933863456721789658350808354681369337756265115373838399325773381189722982802882606937213851583547908101414546761293327322630327139328303414494598327334271989946784244018518558734440088009826356428853166207829838024989427543832791177027675041040408542005177979658193367748396723293022465022143027463212407734982587124757196709296903434701328837624363888235800592294907494446489445592595569847820744077504777909025025366049525253750968738288700366182533375292679538498488672200768161744836636753598139164543160892151499406975614741328938563258847398435337412453585951618922657152138216044156493815457645133230139493651875459512701883554290324326126092307647126251289935087264716984254606608234640299155352537996526343037984415658937489820767167159390285844222845097000417968185636426997548719728082003851130611078026074849439443170576816599635888688129406267271862676482661690858077936097414947866966959112955804112265741542860993949094387187519692650082471131014087444961856807330189745765316141611338437435940780680157915611731337885422594943063756282936251077145480168508917900014343548304157925470730626343705034876743508353407618831761615382784460805480155514486007759216544634070603956336144608255788474641143369975396752589936027757995397001180881896254015096772724498641929097329503392159430987801016883243998929337115961049274709240689757819260391511532555689032969698521533205274563672017343178079416026166217418507439894027683006457423562141327914321718082694202502592521077678989316345549043970973599831671520436673136665440696978752303806878671655333222562246727807291555332729148025015115893634712542643502349265829046659501436437729858062176359629607733096107267422766675779481514072750694225872641006541257812830879181757077115534772160084421342090168087829799288961922541084581962041866038972230120254025964177044283865428958625198240704673633530210980924104928652000078385683605438858062384438679507321199923357294501352331003524031114542150388561323777084799981459640891829491909189997165368027529823481967307683894009442221340934405056508380736924524745604114148090936053227211567241351171646710949595882630109568987214969045800650355479429732874469551604165761801412299113226304884522867660305211288133683017206307513944857967712270915583156479051570813210157941919026570941609790639972864310247578011946467496853300404775244567717461566707476686708566324662483197444339445222394922708095635980436388443020812335390705669329305383062497013030472104104859511158636943798935205550326426763966030857252973938290159194640286674758411762519203260096073645494128247667062950492324265852048575081154553370092760838274322171559526418640956280109128031075906018251995424496180057234844321889930810132778927555443202423091939430845075499151705908527512605399062141993757708314381892861907698590753622726274930529157361118965571119774660730170439528010394987082816530764638154883889054599007622787758321027660954905224560448350962168332091238675755899816126365935223620473238248236869391797524543493128425276542384667371363482057969364301058516307417792600364314661020079247774344447547391373286948575890475853740650350899368513992906713238206008333342282871040462540112628631540806842303256907208074832998643056097755333731348449081660326121670286326038838689032151117844537482194252045121591026624672098869240659432143420553208330985699820074444086694083579715938322022384296574741784984995028617076209632788070476966066371090392336563184487885767869392457510323734855273990491045166316384853815791233995068111181639108531920564892932602740979098235638769039409649296374475277648044955757271077559583943318201666076909703619021979969383918887139599218776463115996152057375923761756454290477280880013029652768406823114224155544329879838100783002969268621189361115612608299425547584333977327729280140063251004216609301568921044064121674455380955500204736609513904546049216990354474577110813059746742295261039072092590815767120528601457636070039246259060796617075703090078058675239901394475403692808609190344111113366886879012455439771497815855416190822194831108612037598463099942884687024626046630392130728053177565925178105623735488258828508223770030408009861135536088448605323595124715621960421013401294584925254133739488521471131037561358974460367637058547274756709379060736463488474179383671039820283529164208002388644298552154654163468542681776703229977967332771978632313636238936099029064995872770943137203843133193771306608788950053470860566202353152102127262259691534249063965294681863897715372877101541402148042366317645815440910462946677691207481078933378586912823558195320604943035701561634517097233773570124641774031466316560409223989206787919914910323429768770543543421093505835272996519067331650579927361254372565782609207802365678058668770742302398571845819813360533082450831254298197063685697528769750811144984550366200499902754036292227514234094404950840347321397680328942800966179377979781626929262362721912829549594588829027124349724143895989199015429772958855697022604579932835154601074671429320883782187471143741972857323378201515102603155176415706564042104297057997107849743312570303814417381312103972287644780697969977421873884891687888484664252031386462437167678348534768851818337031193169631340745553136629857967171665662933149179872434752929314237493396043508058378364398863927592252516278498662636111460001534095932859267749540811311249666031057859602221880153732362927646243521436880530887850576091882308652358237727956588495736915863302761762159384984015387879680932637210552424553115719373246210216022611397007274376415591552658089296367824114082744577056281375057435515797590676678210759981428555728687420895358152673204889535854780073667706701196809348848398942124925687264381316185480107306860745014793177834949789253748372674192302028485320460862013003717252431814879833411816568204534199697791542526308433069666484466794500123946898805366064697481261282733038678310527788552423363777433108793066706886935601491701551683270141884804039785680561987711906351531353881764389191602049730442784962510913153768937028146306606741305450038984310690247907210483553158728679014286605545462046618881917036314364105724848230349145309638228282800964393819838246418806332239633471445853131727057154138933412599989406379624307581790091541776327316383381052214243697422773004593198394013445970674866949890488203851524075497525386287577821679899428350909545375388636416272554670246985618097822158280968642586926481263587494509504548256975155396480805028197421276836465135321941748624745676703794820532361205473973936063089412419090574189432274105274138017385208187119134278186121394233693946694195471149366369185104629848818154395047144242405658121654735376814554635456172742548719422880302095862102199769904918321901005299765957217699264161071863688564464641694346990022353777884862618502464627855943255581422164738097795323013762744212802842777381129178093865960475109071341519336696104075938944578317362164850156680261273243842487908251467289469574706257096053595447221015816464754374029323853399101674003804589500760616985253884477437710408074295403485379503046556419037152700945471696027628546011897085094887008983723330254981201857591340524208152684906356891630303132001229781618057777053602795610754145996540051731621763596566691703296254210832139439346279948308915402687497546761465509297038908975262313269355496490133805778656728516496267445461222999960622427147262782949880069607577637159081720982738147136254926919665965587603716545859254306353191866897596472176784456298522120815226563579434353675347520139080670896784466141550068353693078943958272863446549377182744737371199265441029588520353818357391845818010119556067618799892148155877213332481879196499349210377357864118329809885202143042082297606861969853214914894222165292337549218338979122594817479563530283912014279455343208163041509705263840728667625288568718942138195760488787611970476353221644254737867525435586671878733422704847708731648003718843283013960248471946672665985706880011331467441458870384900746126102545018604092273432812542927484960120412562700353426162153700733382399387032156545856858263545796447654533360380162580444377826374234012374279442491435270287244246010179811662694718964554889104397145709115421244951130088137252185817203749012821461468464640656763199854731952206174132202040695759092394839799424012678702367345511664100308606972794187537150515751078486697398607126074010423810872063656261986944573911915375167126222640043685706732793786235740089466713785485248710474589070463849597858617586160022299831688843661607458542819972846514359756235895589423919240722362799717869491690916080138811605389105194357182500670602904470610826344231415650707971392923874135386831653684186585810496294131617964982953323071585432665911945711372000465693280741665840042160072192987373246918998917736051353797013245399587667891470055054595037652793765985128149164062481205313498682657134133655898041143523782616910745768195648665800666480062178486988105441467998820681340079217374827384817084007463769227341419000741075889375579366588806358236310167835528281614497050426181378270081490689931392094262912784225652001162832847814514201217687586940699448830387095648027850760141804217248236496225879358184373527789161012806133710708883656426554698701005791987983267418289977977441180505804773873676951068968785807083588047333974187854781108107088480252111323691924372278398440440451350991525201268161045914972269400062213767181469358782458410588891600490413168019550524806347886390513267823728887691901147528043452223442861570749736905198922611090304936258721982554261311592449933712592904573331722759965891911603361764323422584801846692076590899831841175424905828426782300635343069748556646955654709081548330354882472814564111197642916537925345613227984799634196173576635315928044475547458965027999147898109460159707542012663771377358701254277431419967955570279952488595110517869726471930727259696422533943016340283398614075663611010008694739524036619841655943088661429035922784256136104231584016126925683044622159023621978633762759117653286119305867102670036402270198550854747486045345891792813354494425948084722148325071134730253001898594530890067168761954927982108898033456597360674434943632328216912383963386431944495869220756973187302451271288322542007165042592967128413939564268495511587784286543828334597633856965953271833219415115932483293674002366010894287938125338856001772047093736750425517232485263970957687927420149478843179287846742377140339316870532225485856615765623654156991851236820331904290605373825079565394004396052911848607140424947676889467594441485989890541178031056941091618785611633414330939575902769440415962561607324781300152683189181123353746294483397906522406726665633421786381132399124995816126012076371125258600068706638974094788551014771113053985219104576480339392921826083777919285149877315461605675311077892491600339129578590331735613320807818856579719129226958918908413062566455033781286344296339266078147478154063675743100240110448892625904457156689491549823349582193688013019637288281488502374641699781452513662662767923703142959013915400681062382685093863610433991715253415659970436589931789222601523188511642128472996303081314879788945390985972810716710945593698711411071342053635100432050308146237295757563245019952958979330690783270223084750004509205039857050700395041443134636253776380467907313569008209281623334451245162529749144205941569894352683806948636189570548878485819976462587692282017947651708869213532310231310971264724104829977084563922077870398495181742080683889376143522838336154410345156602709004061386627352846163980614178086426984479775124606060598206548205558448271704415998832545930683383024435696737533231558570666680794977287803789417096851362991464988597437603343926435038970281374620695322336805924146646013047176283910579298921396879747669835723118527985541390881486311615026140528525489537666337093903563946998605328475699388965908785691580425917171760924209377297950799480961329388730654776990192879365753818698030907094094155732316171371904241172181109491614672490538894479627468345961160467785747850302544088207119160859300913831130659849939221462395286083683297385980849125536398393955756839033007006694981763654315938303336265543432639927254305959108807014928903477153764872930693276750950230103516677071539812122345568980181906015392723399102519074288528176334974397300506225277537989295746343416535927192301363857976968900510840320937737506355075898264678968908507262217298783962020025181528491960605583561183105274076102895274350905204736377610435550522517648268882638049981287009404998957527968699573807499664097152184223008777058482542014953556951025702672976256778580499375747730018585835277764669815261466002324167955254253156100841098207257038695857499356777746572272892697876540790998453685311403586555805810571743556681988318973215524726673337720842376229735312038532779192588707319745069895276833011118653528553914471388549976179912146005250378684059396271795517975122025124252663387734179578661083944504485049252327020865654341327686270994542973300658949034670195173313545769690174627313679674679298514812342644515042223535087514877088173298050735251158638997902752446470982792903919184160415981187082247848935226951773039964228418108607923430820289525882924323630584539837514544574836290111460475677369120327842462847103892578229112291372617542901757376150244207354549035918243816652143932181164393163785196808036030648027148546145551787666000922397929480028870149176887033768467845811630592987061009700526217483421235352447076984647572761151347342204563256814007487469580375724472384677873511101505379666323158378870958938271452741580499938373685886817886454299244158707573617290959791812131566007461795496099346883324415476118550218613511191722942851049455807240892513813774544860296954479619475024205794830031121568622912467449329437729108551128246311757499120353906590329936370826222441185744965747675699450681316894013921635907961634355252107420015997887901867303102174093466399531585100451426548562867404813226369277328528447525397150278491499169460817859376847099961293848833255116763456449616902487449712265906942976577027121439294179308131267118808891624992993319302484934883567279996071454496812063668109380337260411135890224890334372821739379644445624056511048192196523651127701026661910602899460912609814944430452975774222962731950337185615031545016311551703757703676352478122660594660459032085305387665081857370522523799224236995041015515309015843960197701889473182839415936316919313079559791848327360411966879320516106926365885643901015969617237270604632018592209963314000496340395053503445845901488522952312648999963377191202428670936798340667532154268777362924569846431886085665152327206817995715234277790502375341916167806267305204880937542460089950962680708763673762605103528469194354599751938192814765353444894408157545338113369525299488978813757332608860238121941969586452971217458602002749083270664389435928551592810946897188038918513094794808317004201427073201251764834447153747848178874042944235353637236571593627563893975835339135384021022243067869455447001364750109251457805579982672960554093899688613375723642350421973618385418148585426160723738819886359007384982482545796419611943981105809627650999806069223686699373134912236295958580744407476393355905756292618293868644696465133398682826615426443105809820587154714608491205928637916549585860533223260701574550190495403247845769027309235764707123999779374248687321488381414215786879384549031182297357003036418602017722892327643551435012859818874480762272343244031090671092575913199866501885602280843177876720479942199341083422964863206316643923234316448124186358005784002280986502658109700613763267608478998005158626159278971070668041934921764496226612558695513580073007344608105104482398911645951925515457447717237291049399347511051638680862543869211000207707146384673637115944348105449734260418135349231909146080151985793868689122852811565761214310528142184749394545775526882592055550624137075007064338378287062558180540784093013294386403011068177317352608930976767047478748218991360040439364913592789017129735274639732712864530970479688352455711886706258153519889100126924889678722613630962659290601860285320194263686772097158188178353153975051065938715092269077717444170797011408493277809884837283399523490092959131042218534478899255409983722059336857896258216813280458490072232878652251341608093928961946642783556357107109107073236213436140909091954575195987134865246291500367093148856704083640697908473874531767384841434672867314692540038404703359428015736800896826314780394382499240284986087787586744296611046868030284628237770696601888813972415621476892625439174724895595969668707978014773831823478853962876213519029758364512458636536500649642825638911079934312918304005798405150267949162833188588513914302971542593670226886722468003003347528651484175249977928557886763672092168101207983373073302833079682863049654448923481440253665861940597648935950110001850762258441228414839187702695990733073473964597438881567368079134858693441001218383174787153635984678959763761635050087786331801722735760111277548417615446747814600211093435171297808364452873250564673115819136735902946904430209320470882874522533716474837624400189777162794729896472125485549066269565141881598821610027931462417623609255851275615325623918266334593955263682252211134550400150080720687251885203307450485467349614162651329145859793716689150208595672916603943275511868148836093977853774388821452770772153210530594231208060355568210726489395156555852943753994733423275828450312745146150951719523772429807922894960228756358375821576680814704645597168650743667848603430762655210465341246443948617448902187541747917193414088470659282058825253082063801102244589360113737812130678355206197759898738878685464819683749501964012334023101872169292733189008721566769658821823144766298150183912991157900506085678347104343427323596868440004052671965335567928096646827862824675752560685857057810234628742038591842281261078670497213120201763026006918668070722993712258161847539618766152417665201354349883009068058072679888345509040265057643480474285394312883666299633829474089964536034152880129690295703402411356874903735766181233904966757355103054458246692264770251622743752855008893169657422049221415559426904655594397771311800707294735066570920379925717998254179960595553407182703925318677266649075760301316939132291324055748020309340947242138286684292130726958392494522639060535198952336880156370695440763266424207602483035083151626396900628417269222714793738690306210664455124505971599046635122647910090161187326290326700762279745631847822183195797002746127910383165499242955892513518505306748201925158146052999744683756429318205427448392449951052103455085658545849563080138316317937287508784742581476146579596190435139849782837607726384928926044463748565946913668497124368502077467456589468523988958643441354551483986126926959982035787004643832899355275754196950298112313791703942379681322179094583549689701726246414308586201510472316051863724654003744580135982293509787971171046200294471389541377606260218119716700443452861743050471614867335724212824950715428068445634616070504647874106071136421035375986339509010783910648240004355069047062857013488270609554492060282881655360673874359283926176787685436118408524564892749754655820491620922620609302661214089768003122111623086406839828456755952364291767751168979662976948476186683478510008895907003053347465222360513666250743408954306059062811273173245724465340198735277358638403880381135179687745601818479023240789975065673815297943808823652627931701188208289414207388340335565561289229126241396344876930193763690465357675298318275691758581034810125846486270559391123280506476363040511020980796399372761941209633497019719131859482226619248620592256739539057425008082314988890857517035311108369040691346688633296893388783761338801858948946309345491926734356030432114406741897072561942237420731941058600993191667002946176918568111217824030506241961160583288217274414825937212374333153813653105131616156092038290280740231128193412660277649859148681784086355202308411947903236088940346304672586706339100005209211608717780281234389628885037060626997483393710543028211715767653773192804054109857144516542254516573038764779903346479393731515418582126671148375536983257040135138532326475932492170150123830791398625080096070838304613911155584185251823836580927530563764672200379525418221873481655972879162672883646083225571315490047976511508835156968850164118487092478497087796435037910334136967401235692536880454607725494043830619131932119878328955751471737048567493015195887005561007950275456869843146315429466226470259511752184147924772044726650502024990218042353849775222711924191830822315167693542245841527687961377859766839841683272477156866280202383411007055315131459363611588853728953459917653184910504865148107079245016223447464247973586360562777059954097661006946941423652544184376011158841620424347849153497311432357923463189930049698662208312723186165621126492166691092395399354253170748099965990823781298287484845948657336191329337072226587704593425721515806972996897497546195797182219526300453939588418577856566173046370855342001442524383106355616356877919565825229420684230258822433247802569175991773421444870965561376992007583336788394589999847286686869073485476865137442489451192674882841640162385973048808986425991293728025801613487892914295333547473049333375307162871026372635822904079322197529405672828404074566598306842379048336189141455328890071855809810429347291969749088366830055547435013393892482197552934282045938685258709355139006485333794112462824601139409139223783450071730690427781087484994161626156693329756799088133823447420687241153000069802352450616979770487708064945536780205816219317316119994148068829544106051890446890136520508857938149997744957215543230861736528835985513318884733200020900822726713230579154970711389077536554768916248302140737145763078323072134384792594150829033300065819481853245402536609940577097688512541642986670266862105736956621723056083286759634270856959050716394032971082166927668586408223360096292487858249533544583727144457564911225601019565577704511710614453035202826920897915864653759264905287468465127705340594772240105797509165226005999905226706186818452712740718541226038901442804496450492468804113645103344520460664826674381399828013100498050971758836401622234692791337936197594166167206633499467488159858729291197760175381821700924706109730158928500656344691121228077744476966404367751712051065872799937126200655370687953856883260078845967404453132517152313462594728047036442530514245939847350417123679584686640692189586368504628309803219460124716683574783577598412713798996008467998220607636044672512573326888926057961841235035700850358579925364964540036151727266023565735240158698779609424826195226376371893515860597892519805207716752007638233272221411586406760507181420972380441439026118122138130044087169767789442214590995553247777500373816828734917883167743813377770439191171107853993893411673557669901263860288224254228391620667686925897527347631789761646617350226493674062836911189522538425642080821357320384375125383950016061586868839000530477255141766114924073654601114058035875889358059871243828735572938639106715535293717059876582880434602922939784554153028709982363549121651308694653827086211819250076914453887606139853862585622621142932116312638015282815306774872918271979299135602744173300559029978208359816017821584902729115076184140874227053304792730799987978670818446956413205892682225430815467534006117199962993150045888765625723051269494242390479419411524519823557543521754789808216755759223453407158081323660360634161274654695296131137730726522732229200856562601887379528204823832869196529113010010892309017940091617702689514839643572103014337873529499320071396358972732567466029362459788604053498901216831040493659727261320265422524929251445354911993150846495453979987931017372590060432280283625212246451584313527547126577809358502639129945214643608145361072641623975235674283742903164791533804871647873697033819584546249973721479477624470399587898894766694566040585490377799315498884720942750569791524310178926638048840906993890881187494127888866511609217096495990008486091094009657402216209809424205251626884986311575938468587679674467149709108183848067990919959350469797096871650972331590427693097979392203753944142705635743266035777834388483917015587055433396477113806331807805260318408850594243183978034702026250243390833061026444365447128645096291892707338776003993811307107403712968446675905034232273418939142953171174013955751246526407687448580463686528206471796540604721387159841212243536101869350810132547306651812453956282506193039962335250661501114136796791509085687715097866613670811951003271166771154239268493966912054754229588945462061623082999941341125824278326302228099532967437944501880497104544984212240554271176813007141564715049147128665276631447397199849444251439380884163516516059397704025329085157087309105204250202698222363774487310885826778718172576267865778944208093897337699378754542323939081157116173064876926021154537697452432999896448063003371106183833293345432162823428273582207417794864426409618844055574257751437728379201895130782402498036583914819335426362879347182062870880367568965441726261264650474479250859055443652306101171205957313972483285355037326200685710874110618299771912275710862300786969126244608773891662960211495164119396337195356558185715872782645024018513622862679028616544087861044376626674957059486193328199256187141789793970406712048822730876357546588853064041555964586519349937236637674741585587198330520979492193168100256424377010976132740357357922655766317208446934822175426606447417069372118062954432141790090125517393045246703099908167219910493732751424253457640028466402129083233984800117068808371579661032730017461769567481208347367548710405775582973557019159036206827032622501237526507934442940161345109839883259067962886373695819191672372442834175365206712927513386777271819421157918314262054098887719203848003846395629362445125563326982386022793620967802298312658605512184166585682564898516878311784652919125382415514366675356581740270894146873391721229620245800469808223117639864196557525124304836059039808861135006435652755322012430106452034305921929168243119797229954254199555319128277974318614119611377514164641412846904094752119634783241973727777920383513635804010792773409124472388764116168563687433422189800220068569338790666977838213576575939290477532680174713395493543146122520317118617813625524867431803426305384041111185426031132735130474463268497586132160650707434785737355640011076713423182097363375131318738930876548052512259549191525371820132423499988554118867422729296807963558811189616542857723652180888889927064369712999218643035737886587949094046234039338481852810941218005605725847971802234184114799350593384150534568163064151255575724613770021872122899926684950156352406433676329855554267583523161584066384324779565850654292042814906155498868941774066231014517307169735275822075046210414622215773271702890638367013196500789909847171570917475721541103737931747807538158161824357735158250710628314403759227105995756150879238234523172967477373843864960872511904227721439033504684429758220663729226383721309018471235534388890490566978374843514050333532951036798899077225139830542690696781187023789556648780202793326908971765662675434365466149987359463880587789897822544129306782718369012020526040622295058196464985308210121368202679425920634165629879768259160311362107582287762918735341513176788350255322221499234664422811944235425402598116059126022516209020947995888811156233477513256021676953183733732278628923327349124780533530564882727829375200449952301792446296584346496428757267129199928480024141821616968747346072116142637957997098739480634353623220493531290460791164186979423711150755621221624568652499889609605955942150642281576101928492727556961310850915762505170730968941132114526505293171775095923349091967951911888618868138688581771122714487191261546424338397697924671129916494310718301849943765912700069335322083990070956048622673917987183272377402637652674954970953347228140876962505091898225696831703883153203492082943245486093097375931022140773756964875987665799519965946083463161841551533594171586974719799781667765428898741404211845400726958317078508655256549836043153345838526509881561129723549344271385863365688038226934142949542314813445710615185884184700228111167469735624093138486107641152473948805396423205972416869405484498320654100705694676861233216236621510678099713400576426457731301982471548308574919648334341808145766266550108630264045992225022941618896743119763148614938186059124908847525443239737554195578061575231249138358516772705768740582972166393080247451482238426808536941834586473815065205202769023445802158848075941647713126897958303164579244483552335531139869566939733780958404569933057896143285655736142492144230103644860702399727262538917505026686261747467295600882059947744730718439816498562101234669746680508512970753656230429506290107706935273539527950983233842503479997138490540091610228376546360356497041945945568892552779531170328701437513505949172168395161012751019029059789654460971817151789052410834975752048894046605131072980182407088002923370903309080683197958299685423765940224066059039488998265127369244592321741114993811342815500426728716203410754173490516126855621838573588065850629719067816803924930641674630845203042633986933867463732973611756062547390678960369183375596994305745724076308111069359151642388585640886813626365343783316315377416528925742680918596072432736576637972591518608091596040771343092585581490563339549350419225274354970216290928279109633815286400106139944644144594385699223651920197560256079074586617921742448015612073890493532318881088740538630572128071772783584972328788435795905524896617746405934874587168971050898089907402188967176824629616196423201617387356558125669199116037038464894462053383433409499323149942015303517300294693699727052727744178375635980331153386467973362752038677359920624212492360320830851492720391987234776785177302804589021700303961983134646409493043017773782259459576716839368491960774019829991278167867396345141561664337579657908299464161749631061256061646010769526583113117030787739892155306452141927349262875647260382695419821908012122709563966563507063516675850720998131475025399799135628255963169519685939677300889965961706197166484610967912174945950855096520822153942325602283236502600223269053058547893043163024235511146579105785702000699065567130579534904918304146698918546098746727666009199965875160468151815294327414191754037419127934114827279467811964708335196015167933743131315683298550001721533689947132289600211218465207269092261283076315518087823628632361101118698505895022264890445314166191318757562518047137807306875239779738719053703190366629757709238533415746118689705731793315698877187456535065682692891401964243355768532242530050433276863725728865522564707480367727093460284450164069254643131251150141655934993825034144175193997491301751010836417662560511872034618593337507931128898019652709780936897608593573684691476774887488409530597509079910688823605495653406657467541713437901081563551211500399036099022219007169539718839003917941023567273461258862197064957031181082284172604209122359695165548878288861460337468791675935581847363231758794775144371073705198046909370593772714930598766621724470791402735390186663295967704368991640556382165069032406262872009741009655889683004048505543773026747370941422638487017566168423456389645165869383548760155651818390484578445923654785712641171178422112853933519517761634516558928667519639439875400124917809315324194448464149258761054019532240709186665803182606280470053077581414631749021378302078580655729223431642633969304280183999734336445149571765978959129662483246329987898966936344656539899365619172471356799824579580793165018370232046081661870283675756625405427418030641077547101945529332567519678617142931040632935874743350494853401945524109530136592634823407768325845060945175809341898770918005959441535168378586713852441856106870438749654174164791405841084114770549430557836741377728280397145536376450084837886429925945190358206749013989015508745991430037525802245053885454532372756416105591768116492538136372780601382572327356666172207698220297260337689590627060108090123669365345036920604190293539862579988471345612763510137310806170800672034055534841678125842469376073987855234074383457271236289904814989580241788349119655771538416574232450452543481635870850381685122323796131134897338083578903593136154645708948097669434313146373268194803144803483325806587578628490170579056667157385205727537173317738735019544866144206523393874672548800726454132449822330731600529476870334186178437177943580576782172235383758172719631836120616029171595167748319021530384536904214786571703930279369498559740630714083971531109198486288359500584063865476300956264764491798276829987453152223217073127384070919875673219910094493421361220514107157334249632595755543791262428014267756956657100817233632968584502466299068181241755242830196860542735923845190708762390444676116820962129834773394496379672353191426877619201336123613728279806066128384699159502889308529316354580929930941832579559491000924783900594213972946128201663288109328538435345526083626165801355416328999029463672185413566330660624651683468249759308919845992922036928555628740216809898507333488493050316911403236756182797009871656431038573629837314748434947948726417805429267290942888179790267574675912682958171195928380454879138010135997899480536546691291297897210808814517487109897320836082534663141364103580194641479622015826905183345689167321531872727641342011165694535010667582719633011105796881918244538462007484208153725409886477746163465877665429006209238558451698725932481357393528604146934023459655949409310191694000670350892313438860329063444845957198417433818019856121542122180427062406517470461023500931884158108718708029450990908410288275472208568745220662538735355776412235256070561296153801294232769978387702746866231873885822749005287474566591655403903866402169462568482839508354799656013155003176629873865079252751333196325711648012605218636146350407529382442585090804246205668776436065330452463798151460081015570124527013060600392510892327320732824027857410567318051003144397135027978351454983562229399562427755424422292242970594989871592723132235338460277690811682823781546622299842612611725114042046574296518987373500145639391766327546331341243164197830638638870202501942033205676172779953195238202194211520183893343487780411873337810304345191367811344322451886174224228309709095134558871333396789269904867537178852931751426526306432277025872906358060375394379786385339459812901133763609065308678133692938273758106442283712766536006990335859752042473458744726803164977166540308001114588348887266531517726244381811249073591477439679416594559427225430511507420966810333795804608981511262864040118379939791980697153521427177587829686516481594668507505061585482880026831680612511012825954499049254912256758409387617664083920707300210283073261395103274840216552111549212225177666065338125706399943922566422932973821099904807194581042047803688449974292536744644734546386556079319086989556468452177857409479882443713211441175250628588056556480490919599883576740405848744774516374507386310954677591468244644612648654796514054997594932980168236597679215157293252424565871082064460984673324288146439104043633426788006662055948025297464846476823188872623200139289297224968827779854688352701396181020267932164046505355161585409967925756853958642278812283759542002962202692311724427437471579540638597938771243690679052354458253597751458166783257912533119852025588601061896131855368791904055195788719236686889987292009524104047869327913454307640652903850234036699615262151373707709040925030954292999135669207572345872497450523308727245625350238697605810544683502485852986764499429291695173792330780264909800455466555312552336879147866460647383875798009240027159615073145660745958046982732336305357817483513319124389445462205852595099966752917374736949126342922052228498293521403632421235561433140378867987014935601790163191991888917579580188783294672520475498359097771565690163630394025463001845368494881284486394450939263681292373121327486273492837649529759642086053410653903723075641082349260037788355994042343555737278005742175483425044966205352013864370511261095857141894831154937366080752713252410179081438577324207003831879711154044552117872249276782462978705283552514955685841875351972607340276740832347172475288929386660255309083793052111171194321345895403311835229080217954320740261533045963038889222776844086423260131042519718579711053194381453693751240661465299627049300490624596380208198849120216941972323944986047453112214452323586540599951978858270730188196971011418787555427785071394722436426257102849450101373786946047306884720236053567220830308667708478333802962601147163430841899602638896147411076178471730114397749210108932879189992354805980020989180040749701446312942545786060963995354602286138176081808408370244719473258032048362539646041393993059887346207996286738210364656365557768486275590659382842890352509006808313009130149253070047244300489363444152648181367817540851814921658452401546505407715720221433027337222703999996334224186902827328786246765211144991579133293296558142825667051764896491878762164578538396855680895939503156449200166095301236700661126961648505634265091611116131061000247049115799495865308851700689453398225000420844573908035033712379233870701880649852172273636633797644826471838234757639905703194978705837995717646289481324594374418755279057660578123335389053670652388800022143861779436745031806359730248759973120508227743731789854063017882867055238242112285744427099528323914173459259497855899246714267205503552274196814301392375003836499327084316043452114621089211183734373958912020538193370242243261249617575947116926387609773906128080145487691108195374562238737678914454737758766968356288663973896756563961284371395984775254142340682941736931860417326822010068068501472278814388834472686435888976453732852657302410060379450449045349433424246846629698918516017003795130335220966053750041786961646697539674151436378729740776147392141344042238457157224311419940306564599373661442313146431925950327715108175814737360387924166572142548498117613297571022206118572328784259086542730431040189240322085841049984157046056953579119899020918044369931034060596322218225200518210026567519245442684529448182605289251460694621812596938993824963196406143798480863745097873465714515184287416483017541636731521913012900373606522660044147140328913859797030691853935213975065253997003626124965349233687553072749923242617606522326578516922939111269951575255905594988454779354491306462530387849990406093079536324493677890122181203180968886852322669171231877159535777700058857094143681740351038400995759189527924739827882459064647166075891214181002601127477977878056857143877826738457484904110879813966990104876195160907692223872716109336135479318892578190908213235403706855432287426864511993502764400879575080856527448763645515567711969112846526499501186341802904960964150155941380056183935956907226457276244785644538821352688852843676565293377532799007599472681152103114906618440619094639114161278300193259758697303277166597025826615645763975112967034563488104232685769932150935814078508495471788859794573046121194951612694996478889719494529714059310208105503420144086730262921488082368910022792237424445351042565007279741421316450927848468188232527316604162653046263807058834639895273285583954076657693226878295108599601608580516361401250409460880493325240290415054156789553254721275667262499120717617151368645827693018720542463574650093421134997126332767567428637945515933710610214168507862895136586571003301702039669941102992248089606898164132668354435170165914520855769380251680796360051412521486441854413929838627675927117949088001365076597605825281239445271802730205342680941853846392720849324156891027131193557691437660616570723063378890191465194627372279994283981047998788669054340711086651883425544471400504714654489072103145273481329552074820381924140269443820777974281819740622099308089069620292034748249551508266106228143624197205386485669965678377007532817250894097323556682480864375991238057660016780719183776964321565908929621984451518947295802882513474517295959975424891191938511525314998810850794785262744683758842875085357827238817464881085319759338846676100262367407632292992721948883994152066401646704021828220738341343411065524995929537894189950324580178508688696422226715094128430533598762706970700240338195281125360272349457344215695261546577008197923731070977929871963204221057652171576683611756062930591107345491622286776813860214042697327744644097360364279378400935032414842566695423008226215732831937437867850008713085530588663367326297707790034657963126023642674948813832928546443345406677777243788684701297963726667582929985877930303455998724634943822861664597962537754775630959743016587254522653989295408560775511835099714586543311554449196709307528562666374204489101625431251696157091846965828916090580093815385963339279506275186704648292638506027747781447496038339657483871128596777563875728024106495334057549983542320159941331778275199192641631086479209189521609180740408598238830022366948826548863065345156990264466198441468382477219551037703912357639065441719337938916038448064124690118686141470099918184872391323665432891886367223333663516316519445696135098806982676504536767212392808585914854492711068865893935286243566851479518194476393419631861469544058387499385911006307581915860542155091279148198696905613166826354223421837556824343481009568445575602722380485590315845782748613106342584247625028372089918401540913063291750803139690367865545928710124761219947817634411310176460673386956797956796757581255395041698720985930561305821706713478810603163101640833974273762283246274705436045405819534734506025215193289176928869597583799866601169781068888790392200657223427573985188390186769573937043356374002838403605377728788641780253290794088538469352427626917229250924081740898318510725343862427898199648157617327545773273414741422344511122692466076557481941106746311923976512127154475468936506562688738982521845181911960448031946489540306532822311702647604282261484909273532643969805440983643344793507106941664829917720612712174180354279460927061573901968228219112825401922830440898665366179859800547395137108711792134873161809403008481189311346105096797777832400320347664112545775335135435650062654250347026458299794691311084964391125428050865647657680959900392728238504872907085075912188072946911378894360045685798189460950486936941042311995721854638125919099690891931347543772344610628697077347430623033637660004459183503311852893814964389560531833039081304736304972896417796458819639820142168501855538763699439289112788312487861369415022380875166348609305413542699215402599612232575820671107942937523970601692658986242549216677458544627003909214463486508152871793788689592743365470643014639579508712034483257068862966798178706327533393468556819163674198891072557670002157277459104418428584143866394831281960220190893714160565415140669012591260999921846431891182390161065324034388336350779946814470806928750816863709323977726563387936931190482031906870537671753859546191091587958954110837272089309110627434502049356746799712236801453805189089706626598026385444421683222253722212488529273202331154860779704709236299831849777877863001682469452335563308242141369977233210723277688784652273107041379767024951447246659395416937903927718741809438961573518552454872023568798336230738304337768242594681735985851934751888435418836930367008072111331540972241920927787690629453621786153150757519004394965569941096796282817679921402322567925320026029409720879579241855931648709716516772647535592907012720995837674605181863995654745716857127260945922863511273628551844400317780548318230294693204168676810080026902138606373453979618213003199268527458079764325249996277194107422996060758138654273849170953032306982765071473434226385645240339994761061234061716696470634218713471906985424889791515150196444688559095233532202791517589196904294181633769121860844755008437827009290765828706067752882070481730305996869878009287682699132651156695757500401299124351625961566141308952075401654113642334957805011746542951070002697258986173563552913179400591945015618642122034241621201158228791543596692025880218355085235156387863208630199653154907094858855346036948609585253771886677782623327488259319850775370804640255705830537102668059033866755473196061951514608031693789713650432520402729090642720315760725996553184447317200723830890472546095960229166716017961561242997795359225245966414353697694583910547251783678312361327988534328481020407048583570264714855150054466982377170768343937973432893405395515319879053288048071887979632043414900839526099676376468655124743887139290875352713324970014243729599044227881702037552989835538565932513974364817679734303789081440079583782024363566229831078805504028262216578015599880970175412271900796030129031635627196446048938976489042468662700798484615085988971770064835279857626301445181721261303687679437945073778535542866133948827024831421101697684341050992817016155920579353484949886775662116351181952809120850132535143812871449473993628684745165264600774036023983006743479323060960620883020937264884711099769288739428718134560124409148651385542529299391332353088371543775720720174999784685986094076339455383468453672765848888883887621175840047857552527120554532095735229173978375902831223701004379868958069410716468636094004019944431820004186464973109299692328781172869696384872841750265403359772054949748471337782326424311718609100522026526441266181132914680478023537599525579051058753004791220947812272988256968156042510563222260498071110349205739449079752336854347522666409266473997456290536130886114257009961173431974500832529073952375098994316526531685317834167990597107177489858272369073136493622484139229936431618903784053081110960787783701270632464186728164141669889559385348777623762020164573981809411609317470405622515636180627648111344335475932150554438601541753682169888945358077709477425261651407058333475335255009494647382940661768656951812771283732624640547830557566156420943434906501287585246080641134675382039068338258141364614097247514330923021159261156546958337551647089973672657501404446622898116529701031663807161922535163904973085631077519345654473570738884023190188843185750762727796325928884569976454207571320747357528855281108048030421514535273194795597903706939632048278304319770971648147922210557401144602335712871172096039723282141309609231030197621015448656506740941316343336137795230296338816833370589337396844433862907481603514838141728909763485848042280095498148972780289642080983457293903581316958277526916619109831463210590192504338079618813175523852729832581202228231541327830427184114017741214108369575740488950207798385911829284743091484806168159562017597919594253140568234953924698694486802977612504153233016695825068811724307775684347936498586458200873623355585705813644492558931139822699765560885274260439717529659378382172071230229451400893411141200074386560998146189873924079201709188737561414760259610839067892180651777773968553596089726859580251583784092936548785551202486160893173308413494111706061217347256363059681411830966996369479512639432387864979236006507966971165439631929226451861654816980812698300589577993065221977456365913229934935208970693776264592548921651220266151665452229880583827242819140750686914003683737537039765344167530893706475353186328850668655948828131241020660617230369032351933925917322447723399575689211072407392425923814579645426150948828912388272434732825378804900009742989475301469197891623458886747145429080055520441039542533837196165491799234278216617420831966136202994971178118540819841578924705926948222943857601647505785446072011298791073409272084873148571684798929542888033545238183864496076798761446286840759753897925219296499320229976335116209272263376592975899006340903715030285850074305703568055733323098652212996652483725923630943540302201275385096660589590350422635654226953645572516622065470194308665205352652835951385867914865368570439141780122974125269295105135743403068756972836548307653456816050170689415675350432847779174964811293612114339092783745714998562286627325370654641213187498053683244040358075649588567891589968516283181312457165457449954840402972947952169501229475567312336043740359367425557891457837312140135790935837900243121839688566712499277802883147744624365830037940159636280407755536383068888681640969503827808661170398899354557311152660718973234109520828428433449461681572333836374504400270883741391170536679274794715425871888417097507056620293460174928718564944285333222387278085486110993146079117873545646162469287618133451946851375636795978508072428065014467761336408553066946248464537689126422596245879265359094883836799076318621605415814211449169268521773549371495469059626991320037204021566988757419086998808376632082876088177949143937513876093387962338063195972401050136171130680449447030190222785500705978939122612721370198878691032107225744587312659487446501161515523864668889564557153097910736769039237755556220779767146925858178404572144265152419773178066268359530418966529811204376631915239801140474821538893237190949987076254561714055568017492442910620621870076040476962563757045016801154192094401461501556561656808076192259062014219714805583228713540520360843762303023951914514454644237181169029520567549923384071478979243040659671246340471277643901666513898917292514927772470841065509309249764378344414710647512431272216256966192622975869163394254541988701655711026633496400754572390643568557124525747775001473237662832535943715686495614985066500787556089112499297483798716711528592049899645426517107656217355086847357300832777736541264934613963978313766788540225868278792783911532728481595565181088300669434973101764154088635101875844533860907822473192163103367065291417906777700730283086445243232183992144651043494080817394452620361369241660648806737371077211772135116068487955817370546921634537138436881431679963077121409474388680203998180701955345574480266045715446740767470965159618177814804353120343169609690262462073715604622397845779795368570950322722394563739378377626377501520289214930389743742138960195762772418398684591915367037560814365119601224136931939060283488548748493696618337288302313350063744621530219315151866763072500693209382328369857485411891255125774451270315843205287626922691386341316049485506121845987892682704540824448628573218144460687551545150216616233579546640896834683695454331456702026958374945080671798157228410490517285131990220649312943338701220464542104732568799372805073981173051079273133347949712636395360038091199202540324536693751527871560249870161758688640401767730456500783359585496138397033472196880676043316108456162032976909181759832386267224748746786939474419756463211362237576087569577551398085114652924875984536288701992935744118994361010726449188044013579547885170490948246448484668831850305733909262222873795624695517583238528613551839008355561412232267496784727466531033488789864763692522036838315865268791106980510480131823441684632740155525121722241222709013367969714606158965017666936209770049612942586165557755469591056742817348297309714007547388213026489808811094039896155648074256809158268034633008768478075233658758022963600516002534012336374842057925400877682894248868763380416018610559465290443686460030010326501605067901023665449796038699325438105535088970038508601898983562662223463593049223811294113370016622894047109545460425560077015871986992870647254367875305938222481629373056247434344346301929388817186557876923058407795396310995765847836717385801732361713378542615693806616090081031577215518852163939904958183760183926349046534329278554068379692013511357952956417879211597530082574109917374576616400630982201944738117708709971381928721842213869675888183188249556642453210327923329897210093540212218716769728065638147849811891569336274723238165923604221144179456229255610551514554056532129588368050118131714838266922207907231649303425594597788843797687526547601904178504002993439568216487398273673204201434371061811746730351717707760187204619068003297192040627824173489210536222260323397823549451918640126690092468243268086803116399449062916851431467070958247375856384879813610735391154668011811707526643597956585324127132560917913592559343823271812093163805768663221238174901582073112187534883862842072182443090196050864492263134924729915231208485184744295079058142848704032678606806378472100622575342989378624354687284966926148770575848659596192611971927657661652145548013508923158033124530410790699539655621278587517667811988037760068191168729959890015798509700008112698401499021210092079388512459103776071473739644380659592699591387874379840199207921309913637282223971594134264134734414104826730265691365433544700941289708534592600508111969213735720126107923349250861131672635909789186112913706136370912517543209662108291153356873491801103718302914952631358682651155897948711791886895911943211849025170058742391060435502540144881639514304085121295463811070183142887519526957368787711898593904190350948860226412240697982247859507577393190983955009840051234504861885137501808164859552033425972875906756529379885943730638049866679895803417134372227622271566778100814643220217680286906430411450884365614098779857722765168833619766445390660942500716554044996562929519089042550304414005261321841109238153850923057790046288837589468676623602689245851248595968189340414202341468022588520259547873436243985236743619762575365943716327883132604229666802106943914748157484879238925476082705135057037025766929515913321843797000584238242720356956767273839827212235924548123688093867307896870591332482439529948829370861398827290628758392498731121327743401767951533143559501207513130237774744397307534375024387080131033652347607373538078106326802248294675027856833231602679536117123796143542522530498530409341875975825068577568617854012312139647807369076993849037888505509643610456649460164600146317023124945316413789875816917783150926083193061205477640019000600941381561574635035772203936299382415662408201089619351857792475992106317723078943733337711074392774381398221947372074010444980806145209868796886013616370947022983368312974378001206077447333114208691608924322955579724602379962038192844551481226152266621273347338573947654521046206253208282869747450337573893112621297821697797558153882964894246036212468943563220874222349000693699300742693428746117963342378916831601283745034934085519099969198514019697954682917777799518171934918672731558905807706896150186019735082178398683471214981265412400955984990851053211982341325460153283165774765959208072760370660030919729558072027652982261198260797627221484207033107121807736182031238129340234318470101419346030707523397106712167872546563627205836386284033361684543361123744332221815021382833316768822096410597016558236284858055098128988623012081746580599954605186892775147338266574445772206557966769899533006149051964949011770339320385490752859728505519012709440721414017745397702278214421238789180432581728959335689399460119224562980994804716478144049218464150284820037067363714526958730820141814982244218773860774739117889050858405026865776072578834243416926250905532698553732755293002645505515825811101342920748172554574041516465719348938685688005720218604955117478284307997985003210634142038509958672178036545470623289627862209199600822797620087229745538671176706873298875458628086008421726191918691452243549831990917190141564832994002336955584642019565268117691366507158050272707191157296264731721694316919642015993803725182896542180991000612439215651254009254206942758480628884727256008267795463597309299825594820632799004988483537631161674178919843537565509791941000937361713612188630055159021208145431336576814781691072959456067057563344580493588008775969620775036645159777348752571191449510012305837412179474882673680676567141550621640041708335188707651741360339368798235098825978257614192962161060585197425095868920530179079710385264610666626605857025923433994087515923315399052833369539848017054005298959795258737548134791532677200625526471693819948695464652180686614230643564885331631903258023096392207200727493706288637351774772589191400436384951699937082468279862546429090066370031951751818870967300993182115858382512429197544326628632971832574835058594410419348009769267825842036732856504546235183050444359211648834303512333606262682219311995465419282162789458288292079175356777596319850174193861874985516994366813235688726365085297036337927871475403276341200464046902376045781862478499606541876131399763465197924714789700793068702521766389352244743024651031535055124101383114726213048557850910192854348946928986032049575061713094425969755622755974584377283859550035083791595244445745198245750491101086417608967641459242936269604463948617284893619752350018951037146338387631329419356438518433170141606912167468253311737973628579457677939540774024657334978996489557959765612779809098509475888083753675200873445288563932881383597227018415369170585947878638036070941207511070337645785772842783851146070980687795727365792566911159840500545074690515017308491307815114477540300466229325745894589665971910586041122500762322265283566539769444303463052058409215937851357481152817283829489349839030931439116927370545093759665596264957536587223805591122845869523925493144296794148388941360517303217218229335576535452503891813350107146862336541067135913319779380113279957472945635225813336428078441778188387756349745500143739886282430215774356817308657087249164777462350063326548174226101031695698505726050632869326715006462134427089002519929403474809719789121758977652589606626727879562993117866603818854334277003848547635929434442475229781244361111512791179472944123459827659565514163312403528540490494949282383088733316538002586636035071941158931312307228626002308377577256329208038111741412420362691335216808401317424544337559920113634018923229433617121507328642695431503578827834440594424815477700535942481229509891162665423537494932802977148299483199730349177104952783828699469287818978118325651656580035556238625274653427271215396384246073161532216813126515324249791820648222116472789990719738317130621549498619265644042355651832201597167862008084205527346205634948825202896768156216471736824318182060160156678116887133817261613275884674047889153397146865806031301429796328327297040075319063273885809250009822603199708872616916144438083627910485640457658767323931090188680875626680214388968401841977133209077699485618826290092903409106853109478659103524704517092367020591148967012131411692516712247653826249119952032211486352352759594468477269707327470392735695893761988904286348372585183955929065343834262918822852289571089570789369303942223098274231853603463592771157633107111065017505613258960926743151407771396356542492253239843491871646977428608463863980480052032453345150495849043857132080638581506107662231842675347299895908585434475287649691585806626513650351379157711647814242753303886843047067201940886387559355070419063644671067533261152848774315902735183815812130556290695116079869345175989874747284707326326407948853580103594710474997116400134971574293838434199796342648886311800970081358633278731165971900615398481733468787533087247442106687487629180225958032230567781764733622365824299848228021328318882343792028470956485746081908904150529868679359047778548586299427252323076563094534969624748101779452379988580844181613077891805199608803448151092280995118083969365026712923984108646097382698431301323911961007168840450396792399239602108497117755969283041084917103228607546834587248069744612380038861253096224296623965566510292024000644790578100373338467461163584791437532416903437892693357552896811428066087606760594664500337156336012149240495004390832309951531881094359547562531663750213560039114079411056384493468595125751679931896245515935737487094818392240821657139597603457135273424212578349559859101234909546819447753484773688310584770809727831184877637545452856106599086544187554499959154131835057884589446853246804235862546263548705118410183024041124195198772313000396946493655615284791823494854168554586272264728926693952637002503566688182893746104804618904687272050962148539592486658356851566548534223246695500104456105672162320060546794906708568658298745980346296351551114643429836036395622499921660662719655511606384157461625559976436692464588735885747148367392457101168298694347362927244392169757016907617014016635468522840188015256449296003728485887203940382577748565231499604105732381971090558270587096412079915357301022034102711518064960288908606243487278403902078672357192237880887597828095800514594183573654646764934266337905117706955424091177473239850126979315736636777866234864173351988402814450408746498756044680408666167964837950860241489043804796551542930427783156207141139258261838705724634563413523932680231434332514639589346305747394793044546719175826446863137285874925909566074985753030206423036379590247299270831946095164190334558369427889646534492182263366728855554181102935571699043166390180950698922730609523705831194781257638967984485578108959481551594575959334823165364032812813151647498799818608859296419183764026430092171588404645083072776972141221943068921557288403253312686872376108052855645349917890681510859258397400411318521058746830188236546129369740475951675486999540634579128359007810451952433476670193072643800019878136450254569353754902871213023245678354483222589993669726905153831786983958815192044983173065501083068850797723120390885646955427996875275597071596805277387962558690304161073077436166903381311142815986234228673410127018370336555369466736011665394645913732277877315744871654226627037515259459862615624867547237321178440442263267185451809126615942306053807348971288681440454574232211269490523292351235788087026090675459514352076394031902174202485004506113187628417648168091721228965470190204811449271876792959112829537758691866344124823418060982463390818144330612324613864161395546048413063152921733188774653013896291830074543123821592858985655246418890234212410821029388866605550369865370533906475531588770534417795998830746929311758592782980782292995462876936861728560009136902055120930223945794071784536384660837699427430846567938331398314710307049727774513358506529126726854926596277831629679348780820669376938160680039936086607430677421959057133001313992646115646035844518788667209720658755449475199175553626324069263813839689243287197245691557667196244714255144623698525077911357733131874732678423573070645985859878572562522547992948216923810522235300164778167309537695794289934308667777380697743512063379545857864293062513747381967754627929026459850022111678445774118644873603918009139850940223753052825387622446164210911387814984026371534031597213210910064918675726800069150423802006811404140241476043902601217856319789432059925311734100333477233280042825488008687082647257915917580549106347218071339015484517955808240747929446403800518256734687992060424490892703025885908211397386721586639345414012358457727059364321907785039001235833162199027020900255823129865894275148381745835551386180395957584993136556050844671784788935964337003297511472341827941328587288890571790411621995453676109158974172326480214423837718892407163414366163336107494348512241282794083477390409825685424279431563654603734953365573223281896587838048446190703130549669280376384765024932949542507453864203467674000640439207699195621424313982520228681845887366177310912720168049030818495675240272839858700159171823316916527731463493006365995083707510447632660743870295282968041349083203310098609289513305893308151350090562442725961007658769528576050507235028617744365487448808039624790524892145839136625108593485867196428625012558656794739406373590839980875723254019932927376676645198357915212427130305888025908322805892187928277019381218854556834094595339518193438077583118390168633052447816942203523645458048659776930387649969054922437854812934859375988395289850302397424798070204169301066109520671094174534472975519671809795725376434867517142881922059315754822712436860201315151657747700078321422999670528425394608371095831642876792210171710756015029768358319831528590695715171297711059516626566047950395877058914093729615377568534327888450269033388480671951486797761689930976117250325594334447004873073111601237799892254597406692004723661648784721138965212439944546631407873409021606783083305177200763250177709501548502622209361250067637361126180360016303078795881487611735480816452089673416863101479980367849215554820165702982197162512590330482140188593453256506817492230130672786593985697735785345041884308586374520522841770884961988543979056817733710877303671149545651641931545963303181748613516077532168106783377735272019687963461599349367725313404636974060568249116230435690325210495795025348690834258128303946635320025040704317069451830510249720207131932379149806767407209400053366819440217850392266653435577889469038360037947197436769095775994806580894397103186826489961849390326101888451652022320706107292237883655383204026334034524136227850301884845617449116100931478119136306624417178256418875144842843774307754800353052777402701752315321415521547393587656442992625417844909085911343683472161251236774166832706243667296373895687724842685459707673945756592809567833288927858535915008453795657324412579137904678101713750360622238045069557678405703337041232304890058088044916778051745883866992701440032388127021252860784511141036635092141728830413936715664603186034558325771556134236286915156612871753414682550795573067480966531029891945697833896841974649807865915477626206422859296463883954882448910049206273097602216849972479465095510183184167522820575654609261591203866139338563244851347687089335619185134354429484849716375916774184989661896151330181576805858134020832557166789049628614012234481410944043063098981661539739468266528651708739439259990076463618577650720738165778636503147603240535786548127713786196312699480957945186818316727876305769627784589888571938260242295942012825989587721821518584046670033482010198553188909780116953242746071280078045144341119776291922792954732516887406466479245582594261017034527506789333638723748139214258959442782824903258204071350165515946999495195533702932697399081661422621255948287793960167212231866100151515980478784839881047251555935536313322764469804777558019925860808021438221594072181318864521106751116406019441632492651643285927378663150644145449769312589431512277445626329818026533021462438904957676223990594604782400728017370398567103141790785483149229308212076915914364885086857532598469204807892870782956325776921806410462464306752828810578928311070301353937339776009853903300775980835821645316496366622749407380059996446908619157719257562319805703423082640232871690443742210856761386090407671260160194486756382993267183011296427687612127300899039781977679066181037824461169329508112491680455363133762628421098897879004607727264173363520716245243603885227046774243180424290417886465305858342169544834497191536393279840062618548559428615094927918472128798725863835831384021568017547130778253852271105178383082571711131198721686956363953126825277201211827783517593750690079861547965177616062328070637727479780632847082761694939672146197742119475358693895918106610672210691378112802406098267003595980906755674179409037063603424550240284729492649208315176819412758849033383887309588360209641864741527733456866136904066488287443775612498754014330103785455595796283936199206528784739608691234446477844887633928999577163793783997485064326446480153579685375475811277180235766809847036981861697556316219841338898431006813532459970384719816080978800131668829706695449286153376241462093737950937858356196530670763376629327409508722341927427181884325899530610806355700917351333359616310264268331321141703592755690888055541091767599931971627959539155848252824539686828164338774940009390145619792125391546417353685039891219689647156860734880748263899023717494853369651455849157197463114371179808619843426850374798859543350612437436409072973979837929586194146282743748160300980033982270324221321395191493537459324324716623679052105874665655893863186272970712307945781992909865820565244492573906937973094170088493559810469985089412137183998913972542358786562763354517635062752608915005366145498067602398162211593328804180435328180109447782763683324236907638098382227337695225861495710681531970322014664481451174205754355262541927157857790934999198879812456030056113891756413904805740657620625367142853573804959966110489624197885682986893847625543276091514058101297435867293475366384309416557341997182570075368177715119653749050275974925292818293917411180593744477613478799042940267539704755977910936469781358362985278096840555826297336025694771361526003880753050962740571259061206262894893971905619934758470279931656911692768977334442204575877050775721390325154577700138748346411475027893291770952000411141635117224816722370894772922015186601763790262366494151998459253189853782559173455032607667309493606196100071753855707604929700239517632423509216321682403102588437306922821736104471480858456383822852104804774562754532713383450350301455130324373822149720804288200607581938925975748734620849826406344190312714109879982920253611601128268242959422637464681104420001909415211544494021088927445239134664234501999131304864296375852481320820301716224867240229449153854867423747068062522875847068431815729502532575279475321570323523407996742157269738198845589290900690798408112413864413509170239501810773445842261506281118126905958483437782568843735364434876243385052098007946252421953703392353824330961353253354259394139499735501543165602199730079992229440665920171379266093124427056485599020759510583321755749153916842693788543728973004935956489025936859025067448156308236254950656858643810001013180575362620240250420183677312134985507006472819191085564655979248273709015422236840006936780210681016152161592508634569930745455001870010222502099414960480745920151753348772350099148432758588078122339547875517231533850864235846887849021490433473396050023626418579579474993922918270380751132481949761765729246068959954470319228417707990978046470405555787911368572632651012786267913806636174821455883725627023633053121681366816156912964403628290970019284181687425092736355611200414293522315253497435608207039155223712830740088575754583940430434221573861413559662988652532820118154967199956038950121444261045652040352998449718114919687367400334747075952126482461583864839660251702270440266143008680114881755014359721730882212667556035029105510341776146876882840648629458355636509138426558030345340797287361721826282317953827342425058253664952790835426500779337644170689000870262810685620790042067546230454214677562061243326503840775187934907144453820945615234563062301482085487477185654233705929610779663165585679095297766365304394341258676739199136760685441412765283316894322922761596436262841951235269923205697834344095903526123059095733787673903787877929553905028727620852061284067181784092989451792887831887244468009863406598811968373493198095609286887483605650210865473441698005024674203734799182882155784589460523617960765249958815319303488812250312263838540979904474090448565832872163490976876050620048841683731030008409069963222768625696440081151834253752464530584507615381302771122093759951859463511536920047114533323060656742185606956316684920461911238549888309497216848919391968907806531142869824406128361478543667395316158656356574549953287315439819485358373322293824940072211964849817661891326725765575413443579225120230342365398451967466570238525550826461175891535583388868206796869305115905642748771251739143584786385191070353498271085666376596243553282785940671575455845346915379926126752294348376022767992461094491637937629631496276162263234801237545369945408632042403979645917869186959161043614290853854752300927036377692960949201085884422068148826225078094158321535207520149512349783039794024353009042691374685809487744814478747721867558189808502729021023565042587552557085564638838006930434542920034427420237399788660453919720826822100086621272037826008227959998942577686707070265656067437690845480049904526048498132908838087058263423402099805535862389657280045755257401646933218654934097811121374884987916581461332679342702760136322159924708751763857142368442727968472258329875903639563138955568380929544653419191129240995495061460551621186930217404998267478326140893008206531848361975042160318513151695610477496940080891600127667030331354635376826526323853937841974374067772563340278516206821281960037456831853771387252371175428623197699966970430717370660099621569794315015612460764605670100766594020277152818276841070873791574546506268222417096225914827280187405188297080170660521349248436876015811113941131363720379380723669798682764742316730757724216365783679488214656464636443381385376157700251845909826381397751182056856690238645873539398529609785872682651691308139499291413706924167605978466660249735211068641795749563702129665136998897046490306447417596888766750508443559340540329515153371605945672616682240607106604114450626554560578724518362300980397111347283368837870696829703755207552742484115250156047903586036224394048484017541715651267903198979825595252925232465831266878036234143086734784282910877940393068268785756089705786816301485981582139154485904937293097845166091495470099036852209732527454483904779276544851548077929427423829179093686781677399399536274596968617046980793330902209729657282107927163078952750541877774568224799524512096417630249218411548545273291444767495959258200837464063039466233066391218375819660694320934612568683399678511861419010283426047569009835244598689166916452493862420349705548679747874459465602053405908848421289444303912737170415032035714423092346806842919848150236925232193899111029782842553032938533919034352947385097816036940573711424203038311584072939295387012420436629615111818012070185420183727106975727761956411346970313269231435873927516661498302268125267413608833620987405520022781395422195014422100558105924577428747373117967610500431773318248952861287266249381375115200363021316982596229509250321906753735584145647706366082701459167228973400087031783146609050951807920226474968125478911450062913429522584821935002350981456192526012843332185199701308684804824658797794179313913434486290139144644981677520130324823868371011225866599480763204304850825264494943667809203985389715903447145431066979463134054440002036269514708175916478737553396869626061599716470819743566636208604247941159921222565005378665229792580524115581574629677153481820387420908511874658685355013632142332243283186402419361592604679861820053701051073661246660349683580222687477595021730805022137203445646829048062992555314657874679114349990453027554907220151187498169502131134794006114330066739432877094679985679241636034348754875411790339339760045647797379483152414074046498563328885054854480517974984926660311731904217837855322436995132938356889420783032379877058547497779785424420765387630220400529120764930272785856177697891894064025858483648089482869677948174178868538709008178385952427067995837109972659138695012826747308723638807896906954860157144731772393365349019911145655518560335804695353911879106638959147750800564112573416619330475972640263397052058515472278960739399649018982867174742549820168240447156051338319033030414437811236500220765499074625365254080440897244500723095995024373711651694572428328596243053342268384732527542530425492595054703263720092877313347204251038008869794958726856268735805396617708468935129317935078197415838357018690180285464630625803452039565350870620078878642424151067348535936549851584609175890716593827857569045243271563486205377195494555251580530990314276996005641817920432611406878700091390356504552210428382639015228344586421327062323467325397535047677806091320612025832076867475491884031644857492974893456322297798141229536955810312587776564252844115233670880044863863294326306291503487795579998349656402712252277148642993202804516019898547605020006480755719429975306075711189116437624440212615734054262651447552461496808593134605098550723749652368181666076436694711251342806890411191888907185678756442104346264355124210332834495437955928357612892826333119289136401115539249556905598561749078982755983927256880616210957190420707467581332200369091561252802291816557067156961023795243479355756959914192227580537217674665796119252296905987277395714385451259522690510623786659461830578003497148384603831221773372479262511865423684192932122110698771490006886340854624556828969551750588469220808876564796184495405311770932826863064743308436287809873994634355638724428317390262579036052172308069970993608892506870173378349278048938947410211647962976288383002845272216875998629901962605800909114156654347516367464259661111596660282847717823823263420203410013751799475820945723924598390205208003269148665412367489473947392538750869985298562322815483152234610565292484165319155900245018981702236094747150133279430136274914180987451547831499294537319033502901190181846114268338761129715684322989228278789244887449622339117940783402190227679122326416137981165104353299229675970964426394285234236166143153193508486801731094917185479020285906321489573755530499422889146041856359676692069100152015801284761746821620420103659886753603317852079785277688583775457399053129981124914653035969554078584745534759984650806658185674918153735774691749042003766618419567011927596530730184112617099015368641393397905836312935774154448679772932698302852654654088746701866476634784063043735135372778015441730392312239018218120899152732850867690105074426520854034370167848635043413686601243960845426473403694537610847913976860898180686859073695431727546944318493261754303854798115838244793326330429665604407454038845312795304407807710418721244695068171637988580663381711025111834548487403047241368709520935507763251752684084545335207133014341295645420810358338674386695075015061692920078623702929696929133653001589932898036351515917322497451236326798656693790108999810402811152052536734680196001719016930875641845408365676465652197837098940108129244926327144760169438906270475313889367761938471983310184246987804759871381532044400955074633038567222377379699185153472667561741101363505009461261036701033401234240273893933932165562755615866208170719174088801305648808434078403678674162142317884094343722925045795240688811663795127698312994098270210616655266756007664178885314257163014591128276815920386563176758588276692771034845809286631597774231458359892742849874975235393797258556181177921297689255497154317098709596099366901759031683261005481432469710516992457894867821873602428998057798628483820339395550619043984214056402835868054371751013844484460232271158450818008055409699735743776139692115771868920824009692529594241202666858747850415857517858583711747258750568085425243941342127468429991015481799191102235542093118795843322640265092237832839285286274552397134815482174948018659963334349196323188498851683195725780869740661044985457958645844040535777000521500239437731715342966582283322899482572271999276591206651727676707195140450364807629173389535128819146499415095119526947506598815533640740314332834767681570282918800495524306858842060062331092043343006941141119179874653862666996894521200030984828375908489464697996012262462341893042965419131316927625242887692582281417711120859473273058707149292806529521054277548155377054421878049690643522575523952772929584200370261042223254641643560939732475663796430605873313077591899771631701051374601955463196675588781690600334362711773938210976537509381139242596716741766719075054901336325736391227771159664002313037264355804331296561627809519557096481833957114097446522624521940778254762804475307724580749471718038974506861135134462029885116684844914258081592255417143850873818228661732244489752914422228349290117870048447972394177392829411130750607608512129339603663383419954667349001274583101545552609942437094568917320673109967317628179232410152240595746956598250467890221697554542233596845380442460729612758651198779877098761475860284803046905029088520586757376040621180633028155585684666665843110781755975454716397429762781058416829054393431020899487002243020448207842733442871813381255596891857261672478907880052034283032017724562339899392083929564600696470200251405623551229554759085293431382743314288707572798096748016138824301680890804702291684551837853793973385268104796892419335227110252432837133148491397070469325852146405541596864890863432153273387405961594274276138229669786537715289014243630757320282169319182943675714942639341120088844354654436920863794931439522322886150321760967042626484179461721439987190961201786905757263993963743044136155707814548265335857404423429973145284698190041697038057986594912308139977182571606283345076564486301526456833478640432468915872384698362089245239049110808181590882368267704969735253464339233902315434675585906456597134544075265482110322162849106964683420033023662635466763700246302472666034096060497866486172824394450423604416816084868106651939496577324746325590220076057026932047550336536033189111776555727828852120169385633236517612445064999165250658967359892514178295602426943202171282130625797406419937017428800827804549693418733678613985615412521987919820378957252140189626014827189464467449463461759900715991120824250368231435022477762718081466106384300472699270922345656042070132042528574121081250076979065958982247475107954473908395862639925890567104347611898527159854987562204648582431600401500623175065023917091952572608085014448351017223925268570785023512051958248495559582049150563689727658646766599033873286520891405445300490778121138167596881385818330361621863531690535316820876723008053269754287813321389926950337744170972937780053397400810316662717268129667774134070221170357220790142752297572090137144801872205465380828072864253450295742922332235499498565438222059999368506446668642556574021903352033165564215182005629636766967562619213142235405669846026750129898002575123528939953415325606945129613933482819572512863893523854927797071181702859653171291902718964523938834280155946390871315629089122752480646569448655740237255570412894457543250527512535612053001749536104369023433295684070543742841171013710703701931145343512060917391353606404563095118379964490480891265008845609203625140517780826959471907838360831647245722221349597390085474870266449226531028364253744146465138451325246866648187439665620304717178812279539684599707440095210451291273803257009859439717572465426332482388803119096156965794576091998679901707858813469675937793058671858944935531170403907976992297317236406384918356040994448280198553378389597738567465585397950095699693333339680033181267378986787446559597278190246352893709309324189932949758769251126958924347277566708763947577350213142698326015482835648432624924309683983956367124541422504608024495677396577876334080175923494341220787943982894950219049979759055582898360743438104609186670970849652732806194641899847542480933357402338655768626795612257827712816836451329695338099747774882007107525952151183381232918806921471707395833896811621472245499522348629747733682949476266793129927167730660391215591903071814642213899731239008695919307806969894622880769240266530378633333129097505257767701708088544540669275131279371142200721393286139895228077905554455130986622921832295848356277632288292453404418784569579127658851924485823731305908805000590783436739793996176144537583948737436570395086570462783485142406897720672979370368939138349878744475294560800707003026746595072300015378226037068476760250756207340661894855927218912839391060775941355693469012656265511693940668949928794050700754801498868320507245962890343541120994006513819501213682042013897729568676297952977521758933425061869089586833190789162644498660755852409870200823002413480328107193272304175608519909060495011557841279970027816213609657024166204237417238718331640532598483909811664264920544519530594211753559675360849357689950958023910880424569870235841697043314274760326324973132712344511657959844226501405734384596863918893440749421473964796155131850751853512691352288474530403514546103664095647942317804725314740473885283755758611236803762783278373516981109972602225911901702264653907772689820772360830897034539933605711473514134710583352534483530291450867633049651794997171596719344883586875230822851632905085391726394553857283957376828026209604206467068849267185948772885798874946629014428408126762521839004612215492941934996597323954565796157404882954535684560632513634475273112029764404381950170487344409159341067161322685842541086737532236148779184727357141182073745435859080193846437595526250264569812402855192746053630232517311818699952562155418026834060237125522058691058829074810217876767351537149611252320179863200439632772131772984148978455852630154019771330245134068465147020933722247865155549786411015738948420923178487360622687859998619217469847980946688538358927849245781205392233390019771287884330804725916896519460568253249700716374288324926146487770501009328976907869549251126547123597548158061168925599105087759787473781529541102427915589278059734598569416320683635007242945029832895589973279567084312086789817000252599732689037883652990402176956487662442962666220947684660463042493787526022399725444274266030724323743765733068494869251956560424223923164237286457641965295257156991012665001463910149097284792459653172320986658015065976921505903643919516801195838543598729412434293561473297377986721839943864907061868012509866648987747062541264345459786690312801223320676180085620652750265258643417543102029602744023360916726245788967401001114832833166003786148282739114999857127809567511681915229285151639607452840211172566134689106130258304652520797752535706758655863311833019196951674522438131394845577181252747970064248325935137147008738765572241174959488739004787258564444646152619904641458684638745677939467439749132505011202739191000047811452133072616531205581578871972333234686192713921381667967811815473324492186243234881674328216017547607572718502055959923276160947457161091446214387141275164479566097655901855010763750738031426078399742764557510933375899827571293035305083201573452080664024986824932151415207587527914454814993827800996302375097385852310699317539808594132992644675113624710669903156309421247929237225076984243332218342284987115083475256218716184368973811054762115557476666850487220647879567515024604450088240556417619345408019111825830014530557596182678591452844441089676003124303664539578717152392505594473709719753726038036286461370080740367518607961636534239162771207939047089988310553669508786292529973481316023123199759511603974602925715278545823308071292109599117823512308918869506449557321535289849422345521237621847921364585598435206517854502185816204107585455382424552139211267366087088440226821169461062928446734758474807719407772730056364533266967860916640361214277916852118481062391003725735012188016118307023113337591782740236634287862616606127154793201998694175218041252558712234111010061032446795026389866874923916306233631275278951440746781188536995858771182558732247746936929309018163611811241720827909804641808661611437575588468889142216521957883808443872061971842426847361943011525997427806575265507420694345533215712834062437928196031766833775299387950815203896160592718003008335057983727191258911559487728574175587162666074731836193713500949106972292393033740722122543804824557520146105990689413602156504982366870347804166113986934533505746369196365086953306528659116688044971178722480733929851576255687849534884135147278384609157603920068942444430570987383929110513139594880848049339793169822024330242332256722547662199037334007436675660868705125638782221056129542023742201268893488752140466285394806252990648554153502311893836979247536206570464054286822615457993872704273083003974860650919865900110403062860520112405464834184636552755662564814495230426424981489371181612388550448959874032715434552300409121710786539535479264754327095291211759877372245850843957439043493354842737841787807972033157354467281607997499376893173002484817093182045020076051766537220709742068314159230697835285222899557299199039819121650800427833205630502664654199743100785417429480178268587646875366277981440205948937623403825177023458368745816528857826384213111577511503480142032753611219106895717607911766679572134340425639395262631048978206299621163342521006494295674819536175061953137961148093210295437772159634961361054128924725297898184691521578638999753998243823006744381405197382156965241152703425540871979902680050098845496160828136683535243464474725302370904116811011896506628769413514480290577312507815564946709688248232189164895407513645610666067484395541101263640213045775618934982406144739435038429123075811001485495162466449559827559354297435349758860406414216760241448211664257777476035719684876237649791341407943815623819065056617418194141455432134725040985906299240817880402140475664904724094019440365414010970111919355882045531313027419935097225358796705450794658136785973533887884973778542576641906455993656752039761037888113049270881451245387618924450340543551895693804479601825246342115271249775364421623828968845881065470446605097341679578641634899292489119481628276491492818785396176104145096649694676196702939070968873123692514206127767166062324753981403369655644396050463159223100188452325176114743261359818268031968091027871166366933686205282781304668591407210002075619839328113917519593731103327309558451535888377769236953919400873384994000573095547757338100618822884826784603676779404753553864309461795388993767726542743593238005992078719057676003853893113514833170459671656248261656160039958602934025748375065097631324227773020067340230128873358879046061469059431919107860119869699035312924564430364216495241913641889213929131044190376942151647015045541525675233289548366814475858454718049941631811977007277582476871259845232878736594051177971874219202335008070242405897744959798082271127271515309174197965246184190954828727437219013114914677350992226193074739620699725512635471852800408070080023702045831858729957866167062956187486597996230478405681241022199336105138177874253192242758916119214201976492717632576136898067388126893498477091581823123915014352876285945939364868307057537600293567009455142002129434696599072593372390760510717331025647822342153167957840459509539386280287919167934638562348702592922847432294655288074139764032475267275546823406458831835462512400800545715203833899690870096298251872286171372102035199769783000840324061168559918833687138342649709366644500910359080526951901819246731116425581333971485216717880000208785855040907741514817610545526185542233223565739013872590451360141940859677888518002076276472561448748277181468140984147307320449929127938895870451253764838840346811255909528000821193337354815435101074435732900235745103559755679609331722394260649484987778538091198125002861190228581347842150967790982523538277535865381914837440157331796253063982232986985506234470793787174107010690641139986785577486089301526824299512596872741212850540006125501533626597876897027426930807643251376265514142278560670337054615095037932261778923802957420053873255540617138984939028934576045597100816904694831639384032591613577125052707935677748848430116547351489955614263090425904804026317324243115872180562972447221603852069013091050553374620562509566727705925758612913807781159736600599597023270880641305607117977920261688941669741613000660008599065840142387763999127049797477284940822361476372762274381802968379036058452288529755352380965572351018973222228303636954687746286061340738791971267087342698321088777473032145509256563919566295702145193230598804021837173404356223811108866596275338829170787971586212617390480058843990678152135616543002381705907412095118647194941232645753644699827557448772443860698317865351216057307114397132585298267026564086800855361929387279120417882141259119758369777841282075912695858833470407715638518636109284465077606348496194954657168352534533969092155784243004490264262195527346963762333597493591835824840157177827377590997213012278853450545007976987657032665356758332098833601508168337420120211444547713875737132762618014455829175979045437675365491567840255969007965813970924914678736655757203888122966295719234945961465824784888257358320768810375543034004760490300722388059537562133784817917789966514471658459598694776050784200248189642846978810165953336108021313760950280797511892610217058319367059572681528999738422095036775454211289979808470113413554439562348510476457622448158016878284824445160471000088517659756085090402236108212450302361455987561304303824446482500146314595875173833686381925194012711477559307673979052928731713798203706040263437838755705532630756807197860657414639380733287055693014018638619147517620867293957066100439773840833421700749666694863493632301296276868863343432817085043750032981044563382096893713099827372271248400660532890358260214247935631527687549084385333917399437425303606035652343036223048549962431922707025449480932608015720757041235606943466132283164464665938116184515101404435634119932642665029331061499860142258928744612403505325287833524272577204837102744376806039562234084410977209081373088107774707326721230929403736281990000419400358321365558789255833021463897473254023022389282538627483631656408171475510463986103460622434909870269753526695720693906334547740434867812361433748473870697062911507307273980942904944248412072725433329009884972215780996591301386378734363364782361062757073448097087710360945305637608053043802431239046012310143686984216842560690109759890028511724848264220273960171614695420102546958098944123651580296580462356730034444646531815365422418218891681478423507057552066239673263406254121137158810787543310269904913183522452065392940128789212947452156313628158001978579120058719952894153675512036878625111197226509040669896975003626510314853541888523100894097076876417345736126796237771392437849020359538074264332099322648443529617765792668833944704470700176018406988752288742888890768095728985501827335360062554930419987190071511797549206955889047304500392535859726248195023940718214068748806724496950023586165233808192262612938279436101975718559134026127475411570356598883412976965796093837279424673596738202902272088036013700120963443376618099772054835214874959074588377217996019104018740404569312844994874903792246169993405661039758287282374361252938461339927216623439112481014501637853662657915353607171298407153767965202674344067411581601193882502096624634802443037016968884616177106553869427546007564366951322929164299075865998399333440891443932869879517244500534180484474169151060313953996256482496051369193949326959152683527617411194948697289558043122677780667788383139759836116989155403037931859107311026274493218741129821023791196642402200131406741250835604668472863195203666281055026122730577956442230098186391244982977651574495413287585832697948399596659079501092822568513445050819038986057553382017997450349140024415946094917738021909985790801008730060280840694837020407043301776778740787964041674376278593267954230560533427445342338397273123138560335670914886170632571241780937946822940500144422151381461115401029561559665392496216323226758427921172215788324586706066507220124417345002939328119921253025009195654173499116953298217473218342869227690710492053787605531384895008263609793101930914151372473484987200017266764855268245848050749848082529498524983141071029296410724896297710244989352321138914429610322759893463143100706303386063049128416945551224809737406440309977549174242491027801110300578949378010243537519725886491551191858168117782896188520213571689201582732749011173512236235098269832742628017403176121790200042355453324071609918077945159875857129723850796640862632685290225504154656408087587185988922521274581058892733440228899710160886071287895337840101176353250382106476849643529289594552005483074816175604552527794338863858517875401932379715761852737615106147723067753991386376729099955955912810265017691282114748921181486395960254197950834848613520331309261312853411012718868440015439205046084291041288241430709157491888543556670550678557634623443060226550698874170879727591796910676863181486942107007303479361803654622315996801813154528847717175788017885152831984373358231510681377049109368007716126186227094689442688144557599273151083287680204119723585403262927840026147518190475007681838854837324241833109410968231063860390617641805762194566442976753084084296970056620101629204244747508420761240488511612857190806641010546775799278766731083744408483990812637248439785760585179329358429958987250635406776374161959406622175837183457770141424055230156185854007301984554206721660898412388762628427345371455729450562087265753975547560229173658956416928868050948129191108292383248061883150672431668655429731017388474116551281095278061070598602322629216209544244560360170327987979876348352819912594396288325417764052414984935329008873088816654055029759104610197859894566918397636911117602651694648268028626527216735709682032377974364295488077387050301489790432120447136368899318594157232680589984311237290341173813951139475581007570880398760012531321359498401343470460424042503664838757116101963202874934362685332015945550037675836307671483931151424794494601714290033094018069130225703698168020394315457751648776522374770983524725269874258458110075184874210616155056461617596365753873450132697367863367732136066697412188501471874838401260690041520630574993599858707178559059942593489492156150152908191523310657625254840628872319343521821221303902784725817005594934079202073532331214053996490307161271860890908985252658524473337661789474749915102926293256791656425247847357481928483185442292041247038351074839539735104457676149123504756488831597983589040192801681533857330651535120578170849791188952498859730175685122974202119856266169841335190872500370215469592267149654819133670341855292838375297835920530671736456219336445134024241954714250611821832884663254668442043285028164565700442918202036218320335651720755858257997031334359056793866665900129625971818165476062166348101441003766147662578589703122195758917142383691950279338690753770318700108834276326377235685658766811949934469382135541205306567194428509953517380847123617470381942577864865804233930211117239589819119624886479283027761983751574207471000179212239334720424177019154495450733696017285655004148469593523139100170782952932917028982768513129925290193935698438119745355602300731438460818448837409211403525374756471920744444782160792922258836734185807162329609316256728682327773938733629998161167106950131145691146904324466707961172833376881859343783701228093244374401255341610905773841040581482713019367718066002135880801763054667893219215739352820375022423581735655183367175595056155205620795103182295317222228145599348895180284296471866038603567245865869285269542492951746669354533779074279946651284487316608057259529460556849637871347286157780624915506234043134106693348565092847758547483116283078720945584030657999896719949254626671378812982493534835820438994432963278417854079187516342812988654910821313958725527670940016011900329021500141945145327767990595882795184068237354565221605682491237290211468578301057174188282553888733156729466245992017245548808899184606760332956148275998664352284803507552186111647913828850262455425039109368878938550861534910729566699450650446805393798652174210250276572152710155365845626069114961054787029557675653623521533213016496403307229109100527723290902888114668721231112207033643303926121389817190888781370434224072882464780915119194145439123159633193486610854434884815036664813699415624791998612761810383001787433932631201093822212957795974533252923005769263960832536723843269408256451393876723293450531143741447134251910618611998292184619642491260985782323674638324308364991016357398748218574169886569850321864367605545186768913064417719533904254609107402603069934710496607101000481081122797665463877311660574139635973930048304746642884515473125912714073181014578984969567060260100909902209673200850117268805885931883139316710957906621585126393396184141604728543999717669698288097035019873721499889859943578389045874821693140966069535106946533183732072637842177086612160454231310418917965688993310963269693597455922946551707274911520342552104597144013347863744868051283390684582330795466335945844957829736605256978049776417122235741656156045183281385104983179989595766050129154885717771310032822540327994780016119067805079227311545784116957787761944659343249996348185250282827900735760212388091034308504899270313477766029233280383433287216164464785522078679274621647321942988614346466235809126435153346724143611128794301134126839004758426437367022188367496104933239561290022387005347700496920947967618094460245523272958663389564410262425935758483500711195966896817608327970044231503610067592316873566929265851886762077863189187648714597414940834089306289184381671131825212994330450396242317259959777518775446891997378791395701993583796615694388902011208873208955494875723738809728871120003711412999621192944584183582053540379059564021256303725666827512609390653543371142471897746292334240851343042093032780143917091059023469561875404064120268505597258072544299016008142475822336757011481974873666950231552250955911628148483821038043243553156346420934266584130373422532500504136938378672375524214010415742238603352925731922101219454007558571345339620505003007501619295494423303319375901785118291049562402000156556557533099341524429836839262277313809325040620406132743598203145867054171366966182645502710456973044171219463053495951348525514287423582729491307939826469017615260848861276526725009392469111678636410678428359686274659256595027653560206692870566577441838016785434634703412708519578349067752984278298362947304293996281084022717017054894985839408620217237241969278998331486532764451894639359339978145689316690156251496679504006015222381344428088497467984782532202073401250869182345026030028487244801444253765657655384800124096154314228303046445972318647897963680862610822219033662625165916360361728736159882598688797643030183502008116592821571131681469414688867468025350265628251698863010913716445838476590742713988381014195821299746317502509972816722185493762742291976139830717541279446082616023637199045601253403298286873373939731459217341050897326671919761166089441032346663871729881209742720741780551848149226208328821567158736488087320099059745929031910913141967949079325968036436511098119386448296584559712058042402529403280551165551149656620672428925734381817054725147253065616939582438448175090105041770641061495512749617478870544763651612428479943290485134909559368502747121501448314537277584521699702991742568511371586217572080412914538677240626768639905088112100331518770490905916479845097255747642872318185049855132403108615863399771212617934542152249709303944011675168362754812675509560948764237781031176806209887828801622034054061738961336390057351040805661653612484399796866389275598415913052436875492171243904598983681637869087414649080122712332425095624329616798192602258936979004191307939315874641947394717162557549298539351379064387209869388545702086662560992506624833753019115317774900663285997132523218846224300074007239833468557104058916542686573235823025642125940435743077475928360932994222904788980847736208353116401504787476608719324998008200981485017091704683542819389858608357906920972409910896715449197914514523919500644626413012934115729505142353079941673127830249203084869536202840485013239544482534553456654445012742546686714856007093692007832269949325971100638745991784399171587931920562943093682239723088347856411871296150900367720584308952844354781637156243172447940691102400527050203638844503722078235065660996453660632130558277991562940950844976511730537520108950362628821615546460358005675315696056347991292811886553428123081794440247949841917110988975634606899700364952828730285714330357986204328943701474811537364016650536458894178696486055246876135098845098242773915120164569885342239721410061370083968332578285398923813027118548424806442722668557967235570388736320500891442017333994002636535144518960532926110671070977856643252072720755262512976178147011490687054564568465445837807041899987250412078770025498677599123886143063420262882642347378533703412520277685708735469163177383493962986465184745598126970536344778367520203469343121593439126585985254842026551027008277631328871320467904216428389673526062192582175554528761182004114039537908922345762875312962351730247275365079517982455366255857848136640404589566347007590055189444540453134616090905316583943154574981365197437128510014711022660875340157982608778470977477586392386540875247341532557695029824895136776684094595423214236508464566543758070879034602204533732442567302812484761755006937910345710656215694302908623068964947052921698355125342782045125018358645677239693715318064284242931909360209148693391562181297888443049714228337027864642324415885885284969899300911055550585586650045945599156794725302428463221417598827441298950425738680677231710585659027567267386952117619260578347724479247585484432669543680482785605428790486433130395371083413935354747471499883031693701184795385909782419193772753197415256122508463798950005239377149150109051297453385746722934214458845143636962164747461693715282501979776970485760904202557087797492459892990257818393034591759113331418739961557403160203043632480793748273194269894521081421375730813534184337043371021454054834262548217732931182899976912208141908903381883324326531791311055322289839067977395917424290756112707094536890352035068820585557276807830705657564882734976333084903689385920557561864000686224273656427323247711414211706520652166803944904318230223825435763186290111147926527147350125273772091252257355903505542506536757397959552905242716751330949117797453733174014379301584528449713556558559537066997626984634816263137189103227856646879815205375021626178425224668681729173646466393865229647779233098118792002354189575797047249879055849577143892596931383034079196665471579232361813518569478223671308508812597465829791310196756239982386729362345499082444664431436206013896467633360089217216710060916178857144314681099878512168887178726369495577846074502756153423088273354191449676730718559576315065212051882459764515241119876047566296796679018103623786082799605132003769742354606959960737571822276313454526812226432603199577062147146137991735450314968825588470894808340754556621436171029353933690431404901017711279641862966813480887215113235406311255214870233776475238437260478071807878977127297096015893723971176917825705741254116449964649960427030267818695013497009958159511702428835225889794973876776855912595987018973125233254444249938157218532738204139543321168066554666677273315517671975304893214992877291416917448931904677157091461591286589012798026815972401928071031567872965031554789749536465266612593531723727511084526395281071270501394309466928576918941096053696737625426658962686571788151058557789584184913217336887855120590175408972690521957905988826832106706111537993437448443857294861642104006409422858434174391302835832940523677074014310320581093629502458038904201506367038818124359818542416084877354098485449277304816439736737911250956549394184549962545973322346008897776639787990214094904028168830045151031706678742853974274654692342372549227016247089771627706207961414433779876332583965148984534314842327362291865522953010169477811765024609035821132165559505876950866714858464134593272125125172523675150358204903722071348982962028047728662193002874051135296850607045599289777759712670994731814426710234298186905182737135854931832940044110864620874437295469999429674663740910377852496438302431574818601651710903552034032969555244399589534062827784425334643759977172971099679528742385435807180054646812957112551141122428589420293436759656121927261061380643969161389673539604783436388700971035417820397130534864471310920290514849606423654731115986054595293279276030563486305378230192768870523273300399958943700371301544885224770523613851581127312942962491351078535169031891385611654178525630150163173718055083098754913408116230317429161004792046834897197682671160003357537810016290780963465770092279247414731842195036626852000313202534450575743051727207491513587564201873371292806016696245453951615973897312109587960651216254623052297010525218247985245723965227393601989148056545166624050680546716096548869802783321822721019426294410453339678590384606577604414068446409554108127858148891530126570617991096139133524267381901603471012293874664525778336360403506232137649270803594806734624912360963377426798808830438765945337670827533234752734311518778165179938283516916923597897443220230521159458858112146363784560168852664672588784610886006234409499979487245620088139025228428969791461526677816007298458885402124790275509693942419786476971658646658811016208785348094974167213157694265982233414946227750812859732640247947492156842088511181866208669181821994298177604074064260707210567924485596793510240357786960283431471244587228207889815349315941083697819122471589856620921403055460413230586309516700750232253653050448322477756221831194021389193404887038667544959116931531754434851775278756389882134477838055643383907394649593348081751278962095236593758258521732896437593948028446437141062287704840431051327983354009544450121108370103166730990140698640053008314504282706642517730186661827743036763072204988174474274690585837186596834646525656550421298994837492607426566442582926460732339132459136343914580207635370967009666537696751620322191306282098989861947882132861532285221943681496878658899982018446661196143068255714288025821394614610717264406693781539212315023048353721531561226333862199137657515895947514749336945763136963667167872889518622946316142174460178669165651400400515193430951467544044030410077778936165571414018283903471669537383278081310146270924407048196239978102807424807728722824669876692530984385906725324465547888208484797205783678453745568057675319215924379324153309456493947989375055309287819165073564873918617611129194043707511983191380536133514589981646776859791326180797164055390913054377179966184354621955548151668677217503608391910941892858794052681791376806361850784630596797734453879143704197580782902597446677565884458507407040697479971953937730824218994983962044262977087086814407249153414575830311878281752346061908558632739831877047861294889469536492328482513135977724541968857583975774604846273504999265953793879635934681661368389898361853753571078993286819924171350339976530562184315963720147911853273173006448617795999566379026099686223502280711992691301919019353392733494402849257095165228033951330512208452289740961083465925110858506897720186787388966483732762450863142989661804470803393226431093412031643126403620999898406308529212121072095181116372466355802613939150328474740078862680012283409333397746204290648506028153805603474705031092653387262903447404548712004616180130322853542994292605755102771392876128289782782289949559098571506827164699601024714470697733187698560848997453005892326284999154797520476660704916414152970415352758984608535445296712732714958339188822414062658346272831201738671242363090307768604651373071060430138194030304361449184662963105512767475582639237919747220153437265455779930252309397581581190669649527529689671950393255310949215179208089481224900479368915741337380650486549728378328943496014405088548003402688360177888368939602992943591440121912431565026847569242675290176039515839441618449659205184156708093929498806372341400196724561261979876426496361571562979226139442760660101234889555798807180463313395320155863418837743154880920850475706305026586982692298214906781189507217218463309728991743806406766083810024427346421968283874988039559289741089184240154785421538225409447732823784265447153527316014907270141413809142739435218484798780318214070125488220790221138499978825342585912401598385506064368615541476513955689888419195256121693960285318005084007364671740780928014123674306015954638121630150317092010946164033270514884460853966139765632151378835877994301739046520441210965849047302385450250964747438869709178764062666793113230695893830587609699621029136383382677828724252854259673287814642465641258405092145429550763613302839123077529307216901116992962320091477633670068375577627770783391724212318058038493058714917480333301010833919442673571605515522610929135507424139003336687036806135371562982557225262439710765900445627479438937388787294030584517772427318968756514291404458124774182281755564141492557975724440545488038103131014978900805942986031360347773822397647911107556135800521332017516589952196339255415894524537846060478639677424661537807954836030777817835831731277027796225812003723561929420898957051388137264813979185993589647862212485783024347441218198597877000700167806542287854496055876968276859742145614102723056131289282230673781050644153150758958278080871795354386490748813773882993790668297944603013130179006761455319754346825574983389679146612505104807118958141671836189110109018890996096170518300883524526110717327502500326552457533790715876629749943826134358211521049580053694037933561383551817137625979058796029545358000332330069623556687953970656663794429242066232126056363028510291747416022791998827116230538221083922266197131559747762512058252808972567467296771164890270169030651547120138701162229422532768213350645745288544811508782640231409217129967756217337929335922471644743808780046785904380039170352529221337042559542166041963178283062341386288477165090980485712880501976525256930400428037489301869546364979447921788497649502069181466641578036619789101933565478020498695891614789846506377726336903352980550642926412796573073235528899566536950939906420846385621641349019159243869992590133586270639428325874298922272521912122745972795493894347687726865562536220176078196450055042089629432739167443865976525174638970172299502569289013782296956503451296657557114834210411779830999070021131096283722706086949385193475410558089343296716949308946890004992709865846167583998628537107455466901520600275033701749318195742234679335456977992140187569430112737552997437654313117500582047224493906672182494225664095190926724392465894653727783990007202680763077423125938873039497562768759960670238363966409054586760000984964116449344338757207766603372107389814471025742174769574694982703877786353530248752500534269899303494057223923771069849060245390516236645415026881663049688939450365152669824626102689846622827863308548909624583017152448581351691877792285651679608441415526765817079542054148563281461582337296672483848161227528802000349797054433028035289811623483672052485642996045769398343905616826614788898568236870626979091419066301755865911013495084827823155304253040693948358160912095364341535343056071825762385126636361504078333898164960712180534552544200675027757852327207513707833215270271645738867768528788165689045809141846706745531490661381357491468287845947460780446998594115973937977826411333611413366496276132571597299451284687860285156231884547715947820411318934733317276596989038187200322598672373606033410785422332729683874512582033942391660888857509530229238692908267866278580752390281141948902213917927208460468680469602734857842417919168753561986812659201445832543750612049636274800305493713688856866835537020746801138196073688707595602650930874488713168230842362949032479932213465306134181017062725900720008909421217978697891766333278874723926079290189564531801544474644679567574532142273024822324192251138283917749168746015529781837751829127404326803031027933192101684759161202117645091652625509023289468414615267272130371280282274221493915325236055578073986040376272743161905943360907780444392446876582675911077911871377224268582434711586896772563772892785358880085477685799890044565316696228013524424398526772654993047693920696822070019968952319720306908155430273651045903232880607401315422386985877207933302931301534086083225834939366766868963928797035178470741894666490459020680833492325588065010418036091723314090827028178705441462916312633761740633750655630562741846801231705153648848329981669728011975171119871212495406991540527588847616636623998986487381737018616110451755376710990359773118927087594864151842897708755447081668934601817164174391236911404568378591927679482953025230198443921903681491527686456005013003581554406263935460034862512582612415953939012318754660950162848330548932262030733908821164539410512245525336932763011024918033942200821165206668672464855637436908120093328284551440881610061479507129090118909591223633424419843565617049960593732362757633780315576828872194566611467292491069800497456758766860718681828320480203823921748328756485960370964859072190278554055580686446279133998924986976828138930667058683504029154291252937413689296958294326622890641159989567108589964240898904274757185940630608820624004215656307071982463373491320358214041811311806706778959231835369888118187770436566092219786391145269183363794867353386404948406390296673851798999081022671933907380776929018332126731128875205871082308744333843489102006126732247845881704864772597078398024336685291804632048362108064181995179908347788231970058567538159357350215866331837996838434583632445379541309712194321617069499233098050079055180674458276634491921170589230316750356576948826441963795294324992030112772439866403248350285178061552740612255845348003238722674863836919537533723331645920806932727257495455662388347498231586435776105246343583361428226104251723674271703136058643937233853799667211220545581664309740603523464388724215883577065510378852629103375130942706021289142318514133132734556871087394810441215830227744758984278923240575934564137041027096659034193824006535098867778777815200008678558464863942525204311411829532993954608508422757710678984642249314033523692163739146599185674277228483043102704546670677222375083769568473844578285532838775262286001051216799658541383966881997904375749332759860801182471123345105875062357766461950731507151757332395103985664883683901865410625235001207637530883095500769974821716550464482087286237157049677889183264976591973597177412833634308418952948488191283968614455062506714861408307043238574189369577450252485206666426383777789309312489810470845138540346753106752462948733920409390722504597751415641823366516576903927549078945500637720881918301622436261010243686401126815774142942052930509947822310755518958123138985659852684540167932457759998014270218001333080186371729017859176993792168970727776183098034368920268649942335972707367094237141534378058737556121699509336047991870543043030611641220011870042639249404125387321396054678754303579601663940757199799763911516406936612156954895645577539051995010093792196662473152108965724165017645963981590743022279822972724934502376443779425083178367077639270834467925535010863853509559008329467082953248110348078559750100277597817911536502655270175098076780791059019751578360279243299948960421429924500208439623031690005864639246962529204098760470465791969994375772288866720779749464191177806713949900416690857747719181640473254713699777182910961940095075009068427419216212639874181960847103778823980748775430262323276926904057544758949292776800610288570954435147555987691475675233055316105965511106419648356748612735758112363265465905914046820717663056788340745512438401518252362171242946631493794980635908613567895262220004535888451635054354330141445499261354977068017992677966906192623343030277752421063869582060829439419662801849369558609573917357821748661769106187370724344098684825200993707116115294371512863361042685657676762882557673415481752379489763278061806828961665078531050326670330590929799518148567933943679595261713236318194396444816828864426630070704760816926978156062212941466732184619816991845651597167811024536465697311542496908536300546653734700126033046739273220057529407751020934393804077452307753768633415227528717135954469586009024856564051327379422701789953300797512586995651767372914283191770717353064978421078680173369746873790785724460371280980935305629125919476511547789847937583329812722557946248461092987879942143135379866874869246787124409091697480477178478918415068318904295828962826988117610542686785635776996941514853348324493157003217798240054340967484556069982290099162525587367178872770064920731891173318925914664509692136476490686081338279576396908532421573519722657247961073964176543423913012827891253048830337656994306231637730986170889367830040392697970315309509130463075926945815047895221712512727363503712933611403211074981399538205314838025362610333822742121740784821521036065766312888401315261261750725639420379952604762947107390271220649057121726233441224131639986859275950669415884458446266181241638228943092024831434306043419085923344380375881911614699164090126503495380479798489217149312883578371898005602876191737152942401890608033754589895739058319714699173622062697992634573964927881706200387995389918455591085121343353793887532559677812191395434176337460132528793767796773149115672646464008564468004385037920832122810084622261436424211778343062305494760337889437785851317181728753867279160360865312361223609867044877912936571612922699150823980848402279705962277252374935068146890407686419837676555212142802737352456252037517041092110584154175868474457849130225770372690892270380764725351936845496436882335988298729994418689861658110923544119452463427316019251231329069951522380887130274886153584926293104208422014169022622745678990998313107313842487855971950077702345023680940909462341496369273892132064734517630463410347287232789923304739627988331836806755142978818369014866466784950163019903517724019953053264886956028451317757381252881921860066541922969552852169154443088528655336408204428070343527483231489996614247073716143357345866863585188238867413320872575322566282704695512802481939390617249844212586506097625809020950696519391118779938098408406743491328515295971252166136001285423646894387223963723380013432638611524452071209116665701796522660033833689423767297891292598093142133941474321363216090519357224684615624340458180916227136330937761412984709075838476546290922872174600010594673655659100612690362029763459575220064752502872916297610876253585772545840851294920455404092542953201320261787809229667964003367487742245858450422888730100763773455148245014789580677033341071995308581032802749139460470655383587423095078869458141176474069571743849634942127788179113978860514766220925731872134095583820690323164571151021237062194812462323548724135079360360582734444881832196948293380075350671809731418052187324866015810179693504014552011641712506381243332412556342978491843464805286485668055700846060115051330684243681802505484180734230993328692973879792972072449299920011028871068388949427656134831417058714724369548048793222691878314821545534025220068304000389655820669866947259068714505327536062068036037042943673112718336749590498958105083608958047030863410145666075954218971663546270231295381791097774191177136207449305337976783830941997683067431040798342243750057192695854704465840919090329532421162222560052344903549307143872312199131138542349041605959303704858918804841948362593398095553888324277903537973540414265893093997416875569804767251934058828376081879355474583147102958180293050157426201121796906148011015622268856904270342786297240940375550710313403356667949801143039294543399129985339381263867772045242494652317557029982741151444676312976229622934243599525612547024788160652909577884990699480217907441611139544883080354300517646699018045875942741402698066472588574243678491254999256504706615580023407293827816745990727529671964000487077150851390420128403225420872936240345567877860855428349952125227739330155996440194255241550614662351919884901816844805390948090559537191122225267859837053986924476238697090081733789328284056738220711403788485699340679845143324484359258298724755135458920775271401279488725567173879802274563365736806796912894002212648775494293986756585022056692604679405685459847165519375322237597704650790613424244085228017152699185778919478717539871249856302848257356195875964277931104095322016506358751006228615544638071399244838003094447049069948131377432838797136442140709857096004936798783401190294005885703710544974728680795153323910844662362910364614462417908680352635088877863836171479911095211881283643373409081920257367436174656750291219769223447425271474195069978921946006226172315600217510831206886154040621910778431850309959148615998270036170040416344028876314436989305184238753184249868976684400871454933654762692271172349431443284187409851353366773577979316447029099589297116557111737624235602747938823661614545174502452751815054086388643933552784246798231869880674090501182540094487593764351061574473187405595722746745337917509220697129841477624708358737365553292628891240426766298783553671593970296757358337628646526476172302744904171397068046849547813712286825105341290774616553850196224584665391529875038505622355808827385061274189610506494695966238815567234957353689137622746640255036564376802797251812597561203076326811499703701854543963991543186529997768869092680814408940527686277784412849408555201930478153767595829346955073047641570426316008955268231639480946082865891499926304042802204209623003213203613864266265796655427251469698007070882461532282867564333976955178644196930118134505626013796240848619628232589017926502797251936678532618193499681938319512435374674413607744541286915021103466929874104621146351357596112165330785363668960984067688948874843808440523375087136357323118285870696569494511178193602021789833957994603606054577248893565681021663781457219555777335919823900332048697240038786931556786583686822338842907177637106894548924165195097659578855918229630630466975097149703012637473033287752912303912343861657377852361158160990661770905477762265724124258945396476851254905334679287030981022357848995318124507090888410228946085133932136785863633021638564969088467314840614023499641630677189393668618712144977931142440131657972642548810680794923090829648649322619452089013797701126718215800334678172502534297664138657954254401174998561255560209191962388945142735988032456439376391632485624604802695131488672271429656923312810513628043292236475848696424813415673695487032868898855642099578627017336029409595632831762972280757376198504149758432660878642820861148194537205746371538694682242537304397137355210263663729612604818682914865946582196152426269541834183245112878959689793195815604775936439160462322647781368646241979954015337925688349575775188145411158971659243942282089875240750536374418558495693890915260572854180777287274236629566782627149417437838185311325207183277726445883703949675909188127364952031138601429101557372539544520942222272835063996491029800837896660659795520065139072078465858279315050488039190643546284582087647293707986180757530932196115155815449534044222715849844451546556258565490483815891984053378400806461386702193898997022350223615821899534053788045056496870692813769450919947127674597625243078503025850046135620292383994374862509354878870801481346259943838463882163353365045311677961905133664288802486905506076649839293959748361084624139198024332643678086222760917759919187219617530374964493927913054662744674983157449199764960664509821669072394803505577946493631757678755226896055172295041050699815420515446951926319523818362337558901201874841532754156734671463838749414601533407749494423521124480319447479739798588831556745844958913842164944314399696150859460289469841013852741128510403740284843671232795692053055734603327029498631306628877602575182865449666872743638622386474089016988314256350310761011904462158201061655156545278984477652663602714100449810054779490801052800668094861022404555376915004767570911220307832727646860715210107498547457849297155733760180580328913702979247026266325570624521861245697378160121033651913841534060834290133303374545106262140645284463976505144958595532504524087793126663569701978010523831431561613007752579242007617180897683943920852602197688195835450446498765363288276370102159157843093992060417266719212059832753793054767804819335180302623886355482852763672354134733599791721175061253873909434595000393809741730949978021962897083411055222091207552655423975292698443766375234095244218689342379948974775652093722540720402820331452587386129851187299996880489256581078471457791252523603310725595609073169203293277780060807543234926088096622388811571548344050490707521651601913793176951065154561894819721363747725804843307737926407429530955996083245907022458737088322666873773810327482760402982413681916912131749348516783888779044817098179707189109626827301822164654326751696119664749602969706388388852983289467670927898221028724409999867124518938505766060101976386597036775043498654640551478964654702068062983710086539075502860112669359670446291068339325962383835284119469641485277372980352139799762887583652992129109079367512449929369017497405908912347288977023265420427884882064709771840948472906252126162363343964531844180973814414652359420953353995757953199204123878661172061024230406518472679829467928537950528228868828625098739268345753761476205407422628086806721344436796109086024836847687951785970195221752000399602113025434010049158981388162624061554076672914619191354120086936137051973659801082881780367310329968240093892557192374609630208569934616833262860475380209820590926711017015929166689959160406040512880041195991241034642515741384516041853714665727426974942039024359609413764727012005597635753467472264653202292298456862933094976504133415093311320809549024446535737224468568445767050214481961908476781824949824826107951327065409335194863064231138901249455060968387331756931934433245094331849201431349749873611292524894692224930470435215403028708741919063785190299820436531355755644519147416625176796158997422124113101536543591686898483060701588918267948978567823257406444798779128757071066854319471158848381121563880689362359740821177725992474403337313470592060086362730469616210757670959944824624004267782887234770076478084774838195083279895363581063002919462932934448469624339706450931111117867071031225496417086837490004802497878332606325300699844159444417585771422015383371604470418733502163055164992256446100444671590120054433578092388745830804903255173900787468693513084811531493479377627474853773009256863196351515264127046898560374340534745819855819006035789347699404454088529421914538289787305753275012720129497599055922208732621930776025382380629387959547048152376425089840453631023581213629989843807800146496660325886287205783930112714351164572167205243733822117972384239061769731455665963764547922377941872837352917756192978350957378380778385147068491220498677631870596670166994154544715082479895610509290571768760272548085692582660107290284002109453867124989747826740932771427511214040803951686444342147364547072774649646305757883770473125719610786252262256248347066225451598886756524915029951016483605023881089707087307624430053936493437253801150625081406170001091824008641785115381969564526870040739740099572628515653687843416716081544103268900689424062208453743602124142157629323055397194914711277647578863985964734827895010836296749901546071560882366439762851306763936807942714035680775741214084904946437877459846036816528025513459178603308711558249324495382036444985181292310804620884857671658366683734666631988781970025635357421060612677027455179423606892598538279757343135648885413454984503597275118938170302761986100042146226990461395688690794409875845183667221127332934507762181271392832830899468375806607071545843758229532299864273964086589391902953632635772769727286235615516554891687011389646418862435785244547887633527568212011672954897574557495652471498994895066460664855556615420161021314537273542356736896451847017930965210608625698938749805976998615946139659779078345714882562779504266097002640068979960198292131985555017782356066811254559029218260019998244984871499840888162630722614420832089877965358673748255860373522094489095937146338510884102988277328232423112201764875360535553409880851596249387844067203006599297847639538108943163290787322594979701283563896586600414256591426286495024472842916751749230422456120230961896890864910473601733592529676239451871754223883896221454625342805460089657378244128321999149005177212313338522647331426786723635407028574458833724422490546779263274210493465532778204963686274131498132644968574696572946346246471650243447166541605237429928678636594884208073266864142200938011882402013589445762465651014290439360057611267112048482504674603065601491736390102486053372338320692048151634832863586046914764726219817733121890658222338066663276319137738139821229236580973249214760844652824135539426244320677298060316954838587054163633535227205192852151919191279673460495218640934978248993751584509194170275663691981092590421389182161873592954988396044071329080491047835781413697690701487958135656252148310775210752351906811293261415957058003266285245476868372974547419767988605025489181934393205043154948045586903087786260009005503729957546428464236160705542617012120725907679910022822747220634875080290553576131271595812454856065482226574779013035040897146492177643334521287861719925612813670622956885593508901947832896642524851744585222627975727754329216851746205707379273257679238638403254137309224406735588050743522884031055025286324320471220658829016113170329558880964097223482030438625063015909953989250009363940779752063219642904855945541448643293942097374576263011713996559100575762668870445838311349641113103226422698553443585933391791549106797754315362065204821041784390052457991244691421413648241230416936520465755368826966669195421863267708921894716802971355232206573596248889600379734714167466716964163548553067580706958593814567176518312831733778561496851637587012910567454793854637939425536883430270868398085621386087347715831563906037399907134305077811025265267019399796971040974416380179534380099934265267799595789699610635291261541980724482338052037496939155713855851182460106783851900474986375519167693376511692318086760632166747184647295745666642356259790042854168646277227922147429350353965784607462992365131310455452713550512901704423616072773530010244394624984844497148487673654328498924432078391696490912177659763673325960214766325741281327814450696812948276191689255479472275683203109613781357642140498368297987760856639801129511063753928205317811630482840902381631966092082915673349307272031999652397898930871557640194061162718754367977167914644374496351596384934982621634965091996494280287861966976528301366306169956637946742688112691444179702343574499700858445529029725746538483248194381777358425166127140563349408825205430259724889141117427480287649712900221740312705809228898635326378261615867866323469391045588674133309836960799743859796711541132302648152903534338965834873061953611010970063167718261235540450238610539012884796479114960821966562087603405687149819317968461769874393607765486369374058255264170377502849632214632368602393673905324410638607334740266592425745088047884258793732567071958919643431421950288461447437353385288527490626863877001200350617205437100166088381209369318404545271708247845583944702437515182407228463463234392293857889046923219316946276046115398040553277615434925170004916106581157308223327375821870545606724096044340949029762297939793556163381468599257280054716027809618762175339419091429547937989831033401917592408604922300227619831226880179518276942807677467046199650151760521000126962755640665301190721465925328141341831499188564518618637122238845288930164879999293804896532656557889135736658222197576091193940803362599531169397212808895803335591718616867400147753664373956822912040788528588160314604307470875215409825361356439494611157869973141851309814054956887287237698086493508715950130446620564798891636870853923149634153206153642363830478693974971769423916850408913724085758543956039019297714777041768911566767959461816866366759870219775075217194506424099220823864692710352883350838178362967335895761002730632606054206138512249510348092668965535087931561909816634826666180215996235978774209323716779073490823065805253548641964555765110761170306188151979190752239897207429267234302269736511982447613533780691283355185385716278423761251410825512696230080647973076285960099092256624600333500285055035024832601165749185918818763354306353003931682773589119564957910290646791761514125000592085707610852773656219749780306753833636261438754552669993068604627519280134622077621586045710602237406363226479393036553763268169112591141612706737820341732095688213686307589442191209269650732766138634610139597148698653562498879799818432914494901789371151628631859838901847295788504240923786635579596609749273599157785305904506388570955544337813432678012703065667055839388898758913127976992520847108429032348291681720375830388341243894939695694141565604761589395111017495903887879968872986484373712623058141170874059315913887421384189182792938897611933250663866888493955354281626274197491194766865395421337611881341995088127715758335417925810826866333419999888835060603975741449849415709464079495946390791554927854356982128352245845527769689056699585623112799831434892809957151014003053873139196228075367070042972045392127783996665976306818888950672665700258848625542188959678704435328097497742047572607345325212303070540571978511941704835194861326732880469398991830402371540430612448842812817229570048927564178908040920107066237693396869496831916083628528432617341843494131658632813376151078087322404712360771781038885142687478250349217016767725889351335277732855713862792136534314817361486994651754166135101689247784556017245012168734573668673854793490426593902533991940777506192377422137091112228200399834384050294069257148489543923117211200851920085896669243505149981816286601478707669785754123335488745864538300423832889666974002840282137235416134063697277958433087859635267671672366618469104681078232382838435367315196964586857725145053199457702910091206612374387113767134336404829195765890936214787672570058041346186415743199500016987154519324153860340655679814355784900445530172631238123988067981113247084044387393745935128525118907104820589185673650635954813439547081823108805506008343004271693901804791243122635214262282154265759085402656722805728135199715866783755072866215527147447706139949697988754688059097636663161300944409881877174343299033367316062501789388699924796426476416103366624122459587272920791184408868854060016788093339905817514622894580449966637171248090900620766354412951037646311434896366393885968716609652505763577821226488220894921250851917038475238461683775779293549893608370300677656196189962869926292128607826627620673485222307666606688114008626261600742782752360536131682816043063324619356978843016045904410381385759679443137961477653431223968880656688191977981492911200566745306754586401937937213606359488611448809955936200737377759369086368218898186904583133088029334326526549674012075019868587566973955964672182125598570131409574013955187531066059516681209020874491676650498246467859048759952881163462660857687558225662636507001440782484236454695173330922339600078574491193887133237788162348930840784454238188778214744120023033025964953425546812258873651940349863760272370486604419240402666565292226113041372775409894580454379520500834083203412016072871311722734193966193220798871617985893620540852712984904825896548821475368796801501652462519515536728031356204305498241444113100113127378669256857370441324254567434205716220899516793006702558765553949578558803971201321820494472295050555443669722050563156121156241955638406081096965678313344745057656519289704826096912008660479124510476740850994812736749481400179514949732233408327923311409775241632008246962838533845958016503355264290336603846663643170454348665396766282248957932802951095626734600398615501976721013339456412347955029149461605471369106130562438513650047770418933973753053400265391757927461068639367605165109620459190419967294268505528324979632394294385292869260612852026838285498218374890676002760934671725824585617456213327966897103610735389227448011344889264177068144638426531962354198957468473974635973869359330690203957363920375899792907918463599027657662727961210630899010286955228063328396767428225824416716750784193158748608988271706654768459483601176842717378548837410907350801597361727649527401298512944098324794667597830658675932292741892859492438796139596769923458803775287886347457144591082330203315529997385673060948445665279880637812204191068383656791260951598312834492873181966989060751057895864187381801906115742823721056513766127241810666995062437207720450716078487627737886154709892440527954390550387355514113288933972629885073381926772652572099660024440265810587636454426901953420718888539938710152532900273077739673725965759162001788173688050050750179172006635963224681767081320940260826270048992993198878383261671826995315157283618975624649451801741783504070797863887204415420860194999625314359048288591603774469630958619435531878124413939008736499063188771179139819335683711314584008992582445367367321437964652080420549587646084780874193267444093070644833006745633778769918167514969062874728488087991949886365509771844034628788494937522713814966015424111792044198478231029367385200027679543453008404329597867516300216099864479499231051951139901271454559374064514855018281591355040025272760803689700120648291354410396701935200466530992330142525158580307073273606078618610317504100153537372266577036388131449843769419962346760126603977725828291091206353531868647585514446349935307025773775698694566021121844639887261648038104148713951264962103361083895235100654918758191561695279157805320814716405999848586643336491034621186680740214455665416196508015338639822215962610145043656793626375918992792470160910726436644948790061946586605315183794948813111285893259841450001183570519877616554022326447532135847245764225428935023228849232639581127805286734588373723156376092835706738022342077020144158793899747655616135977977039618063521466785326843290637925786853230411960472457505067143351554095094569678938033005756800285474712079322404702562912085275543199705179731484801698432442882697164668960467251184560052388680349436432823570138294139283354682098997262050993326503297481493098661065515205961668167967167308688145700090937160301224176568120314947485687699091197527494182258841571616856500820176228829397341929507415779182214440340163275657070081397181784375466914149325869091712224195471973198707966363085070110630144169969345163375391736992716061166053272241436525942355496525104290639613099132704097751890554276227970439505552986221035016950191216281589466068543524261725552182268987197739469118872723169120415617435349657355871822607392318097161204757684890538935781521451674839541342729919391716287572604014602780362237767961605760265672562054319658529015623428564917349394081708632054812375614363210924289982072653819369807056985992795726018597627429515562983602732556826848032135233306972202670730753757520125241267364786139231083415333016619309109506390532559894931936921803996260293925394013963119888200303946339793244904670573094795266042333006600607210211195288408451313408393035856700277860346326815371113891500221543886318054355067704503680185453200842486281346988513190285303494778038538045038665822590211809067278720528453046961697535793653191732782197845337016626311066673350871148277422756367182389188301082263936328204123326969867153492201767866735859641325320137594780508990105949946450943778295942406323632476615430679186795405712845288214728152897653013914338869178183686434825109134000952248773693922572188202634152436820729614604709185530755896787177908392316823829447322550757627044520996122712851835545584649832237951198891525631999512486638083950408978091868938033539532691553874989749589895224815009932670348466685088319093003919569824049587280968040632146420975527876962048061840128998493844474542366504258040496432951276439015318037526066921157285275189642458549137025328568385625084794538408686909970236911923941039371277715560137578645934113478601526765271474595991268191842923467408317585844453317156207836686561789433671571274107995778805408744596711241614478695398174143319700838385509496786997506035323425425461006741646461130178480623008986136353033621076326421773906434652670393717442275323747655298540584543143368692654597913290376264243768641207071243850026893773851189241011093642603365983950077807666197660575199489493084771269873057600028310108068084506467472060345692602743843246919732450856837416411404599411648941974920307928574142736344037125631745099852916477686473562642275333667441464962351447352507010182139056759698157583135584408492558847455805660596017572000228553436128796147150990399680315990742935638190962381521282573604044712175554889034086943247188776624639181975030290050420461020347010559159701068433986106395200774765529349703790080169829822302456483432202529436046204144774166326797559857918789639943332136812288956331104020387161237078659113539962082654913914688912077058976598529737687804572777407743201333892251056347873814143847375610201255265873934244194095326057031073064567124917374933289479847557581736627944135522813931242745863395740217772184448550427122185080723342423387443441105132016451431042451348441681678825205324017591042330716519615270761733199103805937881408251540398838853769809388915461086660837668379275892150518068953520400513635535381867152743492630798713984952515942844446217151329050884820289332843978169434451004869355668338046838865182311180774774216070992078129976749204338592945203499453640988358106251196843515345876318066949447353110122455162171031986894932712549391863294937774247223539476181304444051929919085321578331520199577922734737224662469655094622392136877283345960138899600465719038093420625605030100515946529129479652271602380959690821522926584498754301517556549176790328565412182233375480860395496940379721705022499641080692606853016085526268362650333435042356504086579783303054104839115161511633540430963010912358792688592762991972803201819930720785892940693789970910293584878384276616274787372030035331769740616069637443651361671668487457135109621624707563364044879279126474223992539333073697390733690792692056361957279049938594356238196794179727348357117764083948428721110989667270369108989235371372301993089907085008324991276203430478631434291530308662558695380978319146688719658880229476796078846110427866493492301756270073719696975081805902100421606281983345041027672574777480482852004390492587806118742891607272003546303266095252869769754293286601421448946400233216377586055573328133320293583478884139046235670662715386333599432033643390459542059001362703001464126572071681195031701481990662550110185822798012879983041485695425361782530889417901467355554836727291378445992982646330795036472454232910927939396387967573136092853316257579625594546924646274126493709910391405202330979054449411784051040045435108313487492913329961851517242857548804023527032312871422210409147059670885391288655789834941234787442819929330489590333684266170364428414348048169919809092418314235186506512069082921100459449503568705973387107346064149266935060526739777423176228869703064068172276930180351566432839376952622483719158331948868565100998792222002337360384053879657992047937383255011685222042915623147502973914134716496117300996175805080485450876982730110376908204254861461160990906420798947145580807384628412642478462641821725188041877146819596144155443640766670292235852237404417515077244228773633087347246791132375801925028069151409036680757352865532376696230480743715776069410729751414569541120830778598629775461898217463050371725593120056925344379873883436388121031238726429228903202887765059356467681369567214701780297330736633087732228617968930757093797010144101712154380777265563737315781182860770893866415121665475490045116853847242644956335731709993966611741166914304737725869428141069802362227147784452783037518505842450688943763060952795539161906123905450838828306455797280539086914290878548666549762469652153310949758467078653404475289504561987251673546697254501007841052805307944741053822936826170133778334879389414021751927251264116150632801506515741450960928298085990752051732155751058216289575546620106996761398529060253357650652497403274870428254118044813813761452514314088793592554689768877272936495101583758295581529969956407313772043929007628805052532653865313979770981676626630131204248171201578520568052337370150028393593704403072625551522490808009832972755169347595619875634602615284485834450942398006100283328953815450702960492771968673292782049255870564474633559387038006464556956439287608695960354611781981460871375902159005342560922638813444060862128689014366444349977413857247498979849448623007834160154784882576761776687175799994026229248130287454887781061974703361712135703734518195646101775914039003067008453337006680262064503847828164600200979825551095850266890342923765192775269750605490480296354686404307360126979391404113925490540319570852915570357851916511127640998350534065174691893414903249158812375532455789233931410372040779496963381962134465349355911443351331598045372723559985106257394053715861725171358854383642100904811971535932257849669508793707916710452973794223170929998706315834561582401386931690790438791761000946916770948808700634238721630254540779967271616857967427801308691545516380757677315142723159060644709710271049450776837848776326340316176645314515855352720469224107458321766658103181298891985924019202212454984392472984213426881028833152900141094791918880024356383400086037837746827145676674038494880014375198902159901141766458732909741461719158575909848255232076988306963380981369197504674634133816807224294058505208365470803170685402953890000253995443068289063072351719352327701473968966217646835382300427610460890479714333495114876682304090290885664369823739800874450112681751419898070323827240020506745524479316622024408312052168822479995975218940616959012778791714426706868600095226258239628343131468717625195223101126857327939873140243181223244542157727609439897956279457653828292241784134112143923195512577827927010241828990719758403904762487977785006991281612701041472347026908677082463299445059226083406800719608278857343754667551954789048946591977340694255635851501944794316720657716297210486889035377767866097844744628052636093903226576910582155906076228910731943716851124849380676694036853857943861348102676682081331574015554001608916187425185150820101131690434463015631341214620758909449806011196064203560745309223765504767908638134597375480392768339776723537985603858274257922653334677344808220628951724212463907151674236266079423669187733986567705390510349734057122637206126096661923928608821304816056658720398902684468758184761510514921796125586629417766871200666678343181416050920185816399802723814646650973483442178263907076693987035130545875912689480276021147518783762342136031355717661219004716737474345668989164054691335114429782871368160981744673485054852638445109314012882647408944479665596458199695113244164654579625961147167210498285759743156580348844405326590496930415992992905537210476803386179329992983838677263240992550764165084699047989313921390320784355312014767789765504363994616545593242092508187310701970361316998311953402638632459980965609581644118886904047627185117650016677247093909247154211226169479250601752380589732802128868422220735519457848985862994410830038365069144573701416140278489995118533223288943748934790164712296089679599222016530556823674531331625359532079022084391351530568986591834104814654043387754475138526838081262749616916208520108475955018457066246657961496091283956312537379164778966287369420989702712814929899144979298412683438949434978882244175098272535411325591688251897418710311901947329114135733616474953484376131879957858328504503859016402566956067969886923125788767783875266622866991653215078801678875976501577395610905812036837800647052667797259232877667725303518930871380935416359152164077142367749767724195023676201526378964997250964193807132149022529548504945765265554712763078570764265722601636900830307664668750189547800326069492746192393721232349401352330477509040646914228568407928279013204717639549434530350739932537093570896817371183731454829663321392013800561226772043826270555487037603158046075219768118591518809319190392068693048254701867888839384877394073406386153670023003893642306253570704915178796654169254863928556494378016615547859251709960677934838330435593428816431471603316921268408220628272913326035447876531606576291956509788891675207259978172036566373527345812384620660790954510894627768523918578075419715964538280747674214725682833750429607005557458795170383556697417462887353894841323881111799010453908284242452007193369589763452663706189968254386749263596686448078326884478790752747809153380594124534133796311473698821580592895874728425697458973610981457353128699167771012678529271613371043878836223454670185108139135701902573389192857164449583884605593589904680339266518580408076054011327346396725675767059038916307654927775206810248482722929899751405248377906782878207097349914030020513626133181247375614407554569212020633816510961985521737079528107235291734654311378559305118805276992192513610353469153449013608370875609163264230928767550778897260303772318006927690933585320205136848274408827378443666518174838726584245292117249669573625949646644052322459162016394972764345159143753705600014817953585842845825930368024712146480507018085162046686948420114920961522508444798560255803037832265482710331024156329183803202359802673461249927761825037110550714964531593171179569811382753593116233670926175899678932437695742908220221307480094960852516980684749031214703186197829004572320396189865751780553268628491797769829344441889487299852651494174059489815187429683611808763526676581391601203335892939130523640045387131901838626616344701262043931646149315182811712098054618656831534346523398020556636799111443110924793025586448177140838857203402499843226904984845332498917020632736142365198997895529746180173718748179236506625955166552562458003047242364717570896592867993721187065348829409252471525545998564235945228336082935364768830365263672382354891124613903230467424513127400207556894512351810114684265117599898910064092586282449631822413467685307939831570086096028088711188732262584228211511817785076606365890065365848488635037813185566057091904588743645509080410230466934973340183377224261778417661548595267137661701793148698366094289206738551799331453605820847484440824473451829131843124616164317305992489397845438384802506455145047158107709646068505089313379617365557041302739574343320056944074919511033909395599450480645358625530365388641272000826606958897822759182500587381093873478418802111601795850850179712524404124854452460866779119657770183366931716444553569877120746553559618884603903011747872859703190167466416673393122633440290780037295670127888234765774281220301945912043819928953540119662672648375791594918595129239277097518462268624753098586969815105415598101351838728116461675106350394446249121316949216757989500455677225592737894302268492849882343752789189992164813338950266757388576666005952075752348005941913757098598088641134141468568301296740834374659339865099129415604431402055963636772733877845860009709163374253225268582544952600346266035957601912314784588277833646372728754753226818100458252217125480218039453754706305343453096519869227601898484612018894618237791776729635271844965833932573712357169958246991688402551155908360633845894875535780254429769954636020357045624052393328058724818276711220288135038973743700886466934465875067684025782675027099442476648028265658913672888430203268367428960584463117704070613622583988869686345330632910022210161581843923298666320327999792715415269873945575263450081836777904667480155996334539561170834361956332221417412352205257076874970935126480831847231325138926652880619076016546002633170143032244108898400935785296847949383714196191687697336069331614801708281195027965459156462182391943021543050263672822011047975928436490733756401599382532050845493464222472819128053200673337951489376230933109579801146227945423190434802659207706697033022941172312579502183243560272440240976554240609172328194770818284461252995825206444627523628126751644966062008639481866780963243622764841503750378046781020157426748743534482338711546786131873892777691531023324432994738190937839933348238102717203510767922939823721782714008067249327682190485459535688243757369399812311393869718063147430733259759947021551530066759038981079210801268582712763680227194537302977669892371010373780531521916322252337549179813070653366763588875924035525599766627920110704070144276033393800669010562360145524547326444565551283328730986400554932648580038619135487890126882918940466726709922640139157541543819832029549056549852667090235552082009060769410835775174573161097751931691248521154955508484550788879113897475986053610964605522845702074489078709256110414988672706426859295359947149977740832364968211635435385027551418282408838545399809058571335234134322408315056366463295588924701741267229942548969376556898195498020372012219330349678417472143156152406765674205420556772413365545061483302008998433751364508350244997955101794176963974305840108892848902546531829302054968310934704589924583111317748835390929169811799397428955844845198547311928497368709379818319087071410006710111977081713856413034747574483824481649481591609920408408632758025813898280570356040727611153050795516081821018776035558849502860991049020845610081045658837206608132455671889502963690639043742286714673390826632179276666932048541504204759529726202388909329027979951286041493063791312557284063243249506249001241035853533385320994302704592636619936323981474200000610936080371862672428625466287560727275533497032567504524493996266620851229894085068659818069859826040631841434256475064676722331966039650107717871848730193667063238359755934157602353897126139053647691699696479907051484379241519862684604003497242412880862478133493604510642164337105986325307519461776972561380050818465513321855564875744107974197675896178814429813551325522987333920355934905015738633326692454806917658227668612674145619950341198008309484349488358565046503911858081584206426319417269127451269645639462377702037577172174339938621737516547775174426736508643286988842582779540949332838990731646610162070774414550286186173051181544857897295325352865023748826774572130075018472410757966486990016501511954895902675565659804266113926987081572087785172010694181370611217586582316200129261033848690313434201706513415284680676176812881877047369948264386030485473882135988876357186547974272451132134256345733489957822694986842317220981665082252110782737239014920742035966038470558202360314583696667690802699099604982631763377624568071311545849864948648439777086077694363989882801574784814818878395877678805911342128970616609818136712959273443608949137603330444822424726552077833005772291412351608989106842090912117550873567698427953090023645191997647209946210305880493857290244521720822400701453412166421176155278901520266960771053741338352301871080219744335186860916018930171896397777507752605465419324608582940275077177685035895548258994100172563326072787559578034733342880691861314985915941696736552578502641835988394759946052557605359770064629426797833077922974497356120993026677912516016678660976604184766365848724900947443471846268462678571397490067711297990777866383061650288284129107463875573861462289320585976936284865786047929297920260412546195653279617547625586141702513096597184609152857543541468004942450046870212186892450368400549021327915997002162238663578172276876014160508011545730851410946583558972742618333975922717108018610296981576495229214297729400367016244291708710233944400686323498778185420953338867178817309595641803497409907456214377182890429620354009685038326432082159461077358385056563572395947130351573945578636847431456270448331278324449064929467299527680365135557275230740117780695764173929031290380051500077966989197759895790620615542042686451857143327912972248989853057452036690428711928784675563854614874108718558033740991010382494450446923761346749175848879012867379644873080417168191474435008278000854858993985601006560418465427067646987529507883285852741556282534776619508648479654065875952249847607107807674282444641257223073262470068264816317027260502620746395523673913443058972341852957937484183297688038450992250285802340692352229828155603918103326004168527821285836170087536484300391446208527750972833917669035434056800995414216220090829236546088936737953304442887297607006943773708375499299455650035998346004224337914779646138209262677390376773841916939888460691408450037691736993219551109449664330219101246628476581041704826397262474621949676639939911275718737162009939677197615444213433324500390983342592410816787032241601833836687063240088787636746713557247475139604124382034343610008188604252772440451211960959772626742849373867087923453877494870686051487032132522433091237252625096215928349622180693551276731182239990385146640111032595042557541583077036423957861345297928414361383573619305550210770735241313532913299540899238843281813475189560902871000415486629548603911522618469545962061043926345718900035674394019181079595925744186309824042094845979762718384105085424338367115633815458812887164793351155598349966672089746678357425432390853601897065031370975737588863847391263879564956798291410766005324007602014443497902082567470460104122452605104536375887007752735349200377484705403306067031509187118204253219330455863717051171502795895996174225161382589914728079688638110462977995133515209808119187509156044606042053956239278507142646421309676314785870988572754860760467357335101736854105508542629666303260495431280476599715734547970792557226745847950777790357838200128840788489276532982025831616219962324785288335916259090629317696933981923461838362515915009074595268950023336188575040249104003647466421439365329323760197838121561086244243317164741202639282882733005240566884829971021626292192309006346789947171096681377249251524042136188465136049948210937153175515529921497186045596151324469785437702172103645219322037158565678104806669022481767263702471250895497237511100401162257441804342347715973883863672955260814450397501013193652622289800200695550344981157548382239306207775459244306272423448882174750589209147904725100522084371664806121773278906005272268968084730864483545790081351421491593985662987967998738917179213765552107161720549155016667601043432394249011697814147704798397806702412999169541924929158998190305534696400302175822723743358074301553028869455226493517004051650529747780975671214504404492904361754765147563172627032682456566385844549034518131208068331141584845392525530297738536488657420636696875219031617837149053683971268472982215280066845550470171932534397234170651812118159133669246621630657030032441652321600804144890042703084201049534616656550606670299718285429996302957064305851128264010373666075660577527430944682845287806978826206623847060833661874270810488933868020567104669657912345397014730226045344224841861532701867884726884436574450976810407418011252454851513562694454511459602764367702643786728068677258786517520269136120417722218193132654480831780196960005835090551717138625142889544630867777771902512580270674555735282300941424912801260762187713438813490596649404654412947238962653851945453796207828899114686495950578786206225041724330770389960321088451473754467994463722199598873098472296068760197541399104159868110710282992900483282763505393778712172251198298988612933185694737213459679016553068593956658324242359025851505321786080754938429295099155594792295994820721102171405254370964209445501865688291335131812943751083636562121168920710619213557543031598935966859608058300266930136043172687602687258984371177289913373003651781049477388955806127849489694379619086812540658313053283426404258269151810531078368035302179219555602699736476389198236890371500082031852489324420593445246819979593343417782237366104301480024660322916313134308036936179892698489356998932520815649041236467573558525964245681802251696989228802888805880750296465746754743710727951554825322388379992062656132049556410800433687388799802853933804686262133902425448370984978504185519736900071244272318631555636599415227300473327453528098795894434638213057604635153402723722502002210752384020747174350150669450332248092642451278099439468110183561700690800385566243299893992083937724809268620010971599709330196319840694835872275077555599347547502498282973391714326914851257982619360463447807849918861294724876222674875218172576831254907510332010889560157820108856017131297315082357339300733542369775371323259656837741817523758355598479708357748773707630351214880384654953837558402473981436152709620879915518827620804482223903410106487440186800981648466199636236370242032380046808859421530754353886608755224982842556305368325079140889806788965084105868651245341564456689805964239980952270851717268316021603546889557749418042201962744759441417566717618695611882007396874924764455848652621459361393069376413643175273077405605969473995570454807451274224741613710534474294450980351644511967637338521433564214864294637562475889669191048229416108473089940100742337537886438629573891852178193578455677124597069517957713611688993325406395677219173944989151089341417582679930180912662331226086970795586894062853522045447442197086645925457532291087235455939151603219869950361651214511079075615030097367089844069206680181182765459871058495544439714623457668302290782608707433920053031179453994528138716144435771844713462730768265298588282502038301807445356037709157806554092099271168661066718069425412255617598083982911279354299642951342718465370503198687019814398420793442016934811544679259236270384295306424634961372256324846571489175939545466573011879868881658168565197625870709209734394497925362980684204938976818540511185928683255419671665794383442141324901081402373076753249333901029361310464981058569432066863090629101446748960696019465559243609041709984569223240535717428475460943426978490124592306289198466577862107035947485669769524230046087756564184472363943741087272399345662294385399446624447526859138855709512115287300684173199832276885747182227614888359376368347247237661558410340652507734808565470124648957015102574129436598216652108434156150579097885602937757937042196494657586348885593616464583987255750569658884284618933380475280361595169135189317922629366769603490035068389478311293586882546114811728604577241653955795371424711440585165331231743986543638654429911953984504869820906106456376348224381746393185905364818612632061721190987948073299817343701091058342147581802752245183121967949008448752376331832966488660958772273175347283300924529994067185569050940945694114606429301908558867935576824521640824231407732591625408121424720158606402668743120459406964302865425606034743341454904989497432945609639428301710656635602272164488988546990159158444718896299381459231588408618656908596708492405691685128026255710627242443579245589899161642240948645483851926856910799036623921266946524207749331667917075598855041847119184693131116524103973058523000314966068304871334620176658166032738689869872430735018978979725402949145007635713534809312235680356662538489549834096637098520731287306975705552283864616006878305976364062127964250570864930789370999346564707187740763777292036442797263955377338557349469248552434575109298272947954825343739023377168207459442968538577594805661911134496828144356294093667056571514455000008529545736571054997702225620228292797792628912295984677998841131842744655112254778022044106356027295614501916275228629377386115369072528639390275393283936414636306815401116599534188562963149382306407705781868912676188197321166187232485123537501157676367211428141272939534281825784648841037256251628373626782078048817536256544209313908018658723462485898721122869733669423277232110223982053954905074243527241180758724541453387077824924068529948380654185644279930032737486388737493292806835731029626709976485976617736653505373522718732334704972747859799152409647959349917228833668572081792871410810365760343854888217475481481886664080427844022367453898814055528467679069989582881566112942010587871922909023828450358056311948479387822265745654705764849031121035746451096274427286510687791101370754631731167554401588625708227514629797618251911458644601154780661912993924070416373332960575379893245756951312378844958084725556956933933426168266113384043720456688663878592796672577994117791213843569126158374752222511070601775273341193973376248054236369984516442242344343592697278760893746678639993270158789497635970956854120748174860615906861327873016803677205020769942257230082031639374570278619423698048910826267561751525679331471776134422861098703157130268470493806607774010580807471581370202385471740675924756464826272693542904504893936502322024974719067264656719071928472647350373777145188501000819348306999624676039394957890993850128349817527174793501097742469125166810351105225829785664195685650891499594023525230391461514787273370951699185559904097996403039657797491587102559710192166596909859890798976433851607810092413644112226481869797919116331689049049738712850905682528237868563686004156375619982002160245752432007571891603461896428957085999715065603095054893657758455441568086842452389390528940573211037929333687087909205879573399585216739344497398909902195402762024272539756566921447712925383423059272677811892511532894672673468286492368132064517227357288325433420645696867863914626900820275364376575920889793356001863865478266844597271090880197411734786060813609075197450014469532583352149906174794551241467640194820316865625178638856906227551512703521060920694377842938886899005429918955727984020088986681284656145028661728100681929724259592382739632895019023311225382342119183935267523549509054320887402390326635095247637091594825380548962537536512735168358293627503720516415871008830510232873612254663975523647698336865294717169088802727313601603368977558829715675113729054705239860971350084796492242081574450020363563928585396233288191207608729055397170460297483286188341833732212772047221396208560335016724178199502321903984827177157801272226239244980677779094029183848082464817481165944356642426464340685650335712671041195814558232266752057853637778867282199863604836801477468656844103013309101981902735183200771233424458613223442004291510878883770696447684727141589199418552843464191994128745141860037334054036714984590605725926636067019673106788036072531371075656825060099183345437591450668005602221958287725180041254742465803833656085675509712974391099121196989965974951799418189075082705641841463060146549934474672609015209234618854485886592152418499200568144468056579021841238944222613712248746625067906194977818065362702580245249688742407506131734955074768689025789664799201593182869947978971798233343649752280232992458803238458623662524274869946889372982037419303570299348086458861561104141790414223699220363652211731332308270267795832816647698391518716340398306863959305020052587828503108838011695416253848846177565803123957985083660063488446546074185071726523504824600968438788229602379612223355315093772390463229905075488959575251015329674648345057429680142509050155582125665214682806763297083614171331983130634259012240785606716280188455731336550212594075576594803838839489380307926304668898472598383682670506634996135687858346023806039922384632969571726307539842949082356828328368700004145365702203840413589615046648557219359990634037548430721510886861531961510057903036100534128809540348138922695662729490968973855601829919016874149052089852016251505984418582404949195687286630592753889954373578636494986388406825110935560008016714677245238481875195215101623830225910113423715427927655288901084433324255571767764633214372286089635608924388154830175459469833068531369056158689994796230805897412100822488982081996230189167001330044503748044871456576691682674133261210467592579838851271928578055138557897546232359224549439343223544652344069799770080773150388950188140005520497901254291049294668009014018305885392834038311275266794064697618328998830486484954448797772535474298875058309308197959921745660124610891795338281737222826344228397055815839155073890253920835138218952808480344326706391742050229528503503800979566510967764450679448379343778520184307738392974781986448482549670348055508054996580931754307832069508983546453408334753197495965490979203073698212048594318139526123761105714184695599124184897493183376704843828649574734700554223144740954936087944589495933750463362713490262307370423452390217765328992268756795863235292650771471093969575468303849571726272612771092244296130269834323388172789033026237547913482580558632913672337050306551624417786294719317483806266041826113492130746726472099311346189360465711029462946109130327651330624570009658561009894757446434409089462937717338070554863242474865927248714301791229938593556602745747400927854211244515273534600646656402692514352011717806213044927573174196908491215951149752223538629646037417680425836965824898421218879907136353912436704748577067497427585232347135387280076236274650073085022640254709653616918301054543677352026811150093930602973114464819276243334789277667723414488541161786539398422670201450885017719609122341804037486361316813661415578372973485561868772100451421624043751878059983271388348034604991227587402697151659918289472633134963451701675498556463823105784044786115680518036377337843145204956321695152577085905837952548094682291044076618428625662182785313109096488227243232603826922375741648642843835703273039776574870192670658864299268518484802056927248411191627439311526184436010129146572796044021332262988126574969633977704870075787428577156033482992630733267861416064748023380054033674441157298391320508619426882795177219493267141361821269596850519342626878367426216250583677262285492488452609154931092026552729047892851594561643250050135204820402382757971072879543305901094125962711272606037558295265356106493388342600911422195448575899546040551742601698280387642421734240298605425274957925938996913797642975434657753276071085019830068648811802602282131949393502247027403658239947228589008201374491160574243378630352957455106577843140897688801305713802091764604473939290098000812147394419541379039250001068615447517963320929976473888904938512393516969291554875920955993129075807010373807001999658075224226807234942021358239800384043252835154004325546534977059841183699733303480299766051016921950651358094380906168046783152744804626484615628118573589601590418418723928934425637337704641261951801471810504102057068371603989748922680275058520406858081863410705436784017697473662233256017664088779373739020870715454654594374244160437438082006286487367217740336396240723715017280795092979841960285739330687870227898603984882840035964640738074117590449844633173524527370984271772349005423239070916876072269100804045136458719051839650362135929909731729689962653993349948667564405147953377336051132765857613506334452364210384588723311755948572422387136946370568361873855436097790437087119028530374633450488734268560999112374571012216295718957184794133135185951278600652472183341862676541788420525757417326454229154194114752673926017880533043045620141529705980212940798808932041847479854783968002512402334528488307414296202242353810679492406736679244500285251578848492807892993869738686211580857951574938693764937574406854679114646922477815362621415120081085193042281292795632750888628424386912992649912347079539835546797013136085209470405012668698592543401305301308099198156491313622263301364010063204699120329619251482514870029784770696134368384037809019586819683759461991912141767983705369739726225363513153620720655455692343319890381025794229056082897900797283614483783449592760436298521493746622800794649625300840256221663501441291096847468629005104319993324702998009612316292130192283482151000754529171865685582074130330534486291212505174613262814123331154160965519676997682310056113671865095754275679750763737092464584111584826754719295802709287646891007530148546352044021305006499459574403879774507222054229169073438301682669918985918743517256855825317878250438100207394640783706454983870106815748046694089371558568995714963164514725935356596293285198634296267850309251476426171799799259619701859068584226240072856548962962487235913648390441428369258841779883045787051417946544730998889930923398300977354140031078996443341266559553398023374932305565267536231048006769758988156080431885969649395983294289667278691273862412674214602775737650140880983708016082640189377629823462421786733228807479398089007589840878923206860115216818727449384435589275656674958034992437434079942374885446773424724483343777680293738142791524103513074356578398942610023620980759413408179993700603041407543101002323303464011311831678637441484855055515654136786424947360919767981411665704099853511185017078838210051209345304527122749830754952583572412184044824732282246231794182001026671592387739141107096528800371922370888239586915463633017639268251780016181835605198115767696109543029445752481352782828537701037492504035495743170816495362654893246891771047988121053804968325228889913588195419703942417821369832915596646701915881695778768747369551639721702084823594517028772165143443811682639912170939212496677651151124041809366824083997600594874174021967525430739500709502429325915880758474444439424760570852011853395981614233095083096257948652210196642895368571623572886313083267500671306890231345943785729336294327812986371743770793946353498809047611930578163019687926875890169413260113776217286274784707958207887692539455673668247938227091124138880439762200183929496005821447098645566607004161537917379724285993453668491548807083242043827677559041193529085778355717143038684944223415592003630624025016989276682626307660220517244055726958191254165501537068442079929279727074348472611914980383506164304902718866575033852503470615003526673935180361892206491587313336395410293431761412584701927640317005355871251006861064874954035598459093784635056735290012622921913280277553692999364058906414973795155956504872189034799693964355625882380871103995494218767406719265309570349852114288292950633519436837390350360561032724122350668890034579251073280641020775900134849122530808125768028352943768279927607418379047728817276252986583463192155827304546495721684346878464350890925366237966835881621644065286271752264056992135933853208949351014151218401824319561951387324016566123400755811691489139660454283894981449740933640280032625567221075416036936676047931442968188396543261074615950096262443174207998596585342317012235363912243232809947017355227685031087673147438179963793681512832925530946626606605599966522320711059016886676921394142973324724837531174518849152019429195752069243341286639363524979606130354744811390359235676516654098113262830269841518173614829025750208621016175610738021265251184494565578644651283352502082761600751661299339578515834781741419381022806975145444608428862612627684565487261143414570721967835107471352270330073929758040865850746802004525471231171326842566040673385191154044827400601841783615432040511463296947872133010085195462576669279073343099111556487581108026729377549805101231902263433065339922523837275867527309622176901812704402670688869666174853323698211582525213872818155141254368285420401966188899865282153269921647345743227869616208652518909026762610806880654023194050794355337782661363468709462880567972666791409528034884162503636629293808275903808891869335544979131292998984127476622130451984480486033639862971671824602439377601598061516140312767111687129360415735067891921280305474677450153411191093960164310927677976014931280386184395334291742735784314381272192876459853709761503608602593274906882788323996857650192956603452080052567247214812251094512094797418385807674797466859150483824180366617759506627024336315796653487691659823539774805380979023603241055296389565526108613618267644799149187581332779722884160330421300216813255780855729378522111763273248932215595463513166062398652277981263059509307466165142937974819271138307008771062545768587887514080142691643590084638659522981209229498646239514510182319792540899625596818993716508661280788545248661406725347858359155314566670159668093033472889620991596596193612311130569099064643333660109819690597119602541248424087960569214138621657269039151290528121815580878375310036960406536197252991182108765663592371592175710739584915008093434277317114245919691645767488544180927928050184951847708888929282943834597418290524761589178214786244068612690186692221149864955825621341098218249068417953150938875791878532093825521373609398285466580614236014489492181237517374567115464602302708484495918525325056821939592200734956169100945847758333835355634227555153439619657923685808476369083134437369833630573947551274976058437892263640937655920114977123010010620956161932504623679771969612578685799077411459961929319398645975645361383020838970756155784659585295749410711253183109781377495594843429074683134944461418302546565611545315672166468599064304098053413879126209714834415530534251078455494592039055141025156207562442502807938638537640877646594577473982402598094549747132943988959437481206918159203168528083201425944898525329525341695249216763602437860537901779289917485635846557326026685399526238374211836875320846634513965265284932606399422219445762267335614234254088284832314856642145969506042843546854527407981001618178620412006656561294839518501153767109462767319749998344897701080180365765480000369377185754256561316317186826653492785819816435943932862613918727041475424338618888986258508836992118197268785511491876254115281044855900353780058733659029369265251025520996234989105334969830915952819594645679640676080457165151564263029776799629673322389031181375204780137058811207391039172334046109910105111216831195267097513534128792468752974745532599142211082103430668249922094644233507779790139073965260185161537465450508736845613986350460086032754206025376049554461026557923296551249140989731354041127300124119247652552146595637379056938325751317232513047461358522810021900381879368759082335433651878909070221839178008890472398461715267649583333009555087797101748017197046341295384878064943614984349182054269896920125095636643749595747522775493130686756590890215165921708171971332258772230236274992779756713597419633579771813116971876589537260629036841784674269937974268504094202247632874985031312209619832393651529831501157540355855629551551801578118069096068642644654364356470574373364370799053792760038924982497757238699387373014052901507951772964147894226728275757050830468830613355814633824999435624710637224329051004636576130313401857895178608839861235255048680579560540786229437251798060420448044989803238374223303558197273356918910308091628103747834877670838901845026283874312526031455569275930425618271124509565675818794671203559195906797644720146790098184768488620299053037897875753396323939533436259777085933494993405191443631938907768243701951929316072847645408803472917457870444364850281176108262270726707193843304110614450412747278462509377799654889743892390149994902688146876138266095836039940761866197013600522356654288191671179131685946526913437278059670769667630770034956184774288380757664597319459049827636444828316360359804291354629482080435003347026347585240491952523158576357089200660252553080513057342479719160457262942675102104538312135817293912785729383416900447983024881385383287189361606130883717705065269947223268721094254432854761603632760629449631955610549964447025030126373216951564555912582955836723325625955047459558695859496538199433315913633348084748996382595862692190273567919301809806386024759751728512406656196960504010246882478932548878620408644160851210043386952745372464939055745854750421649077930813678113166867028630315531979465679304719658672693570604214246948038640454120880305353536221755956367319573455259392178734695903745131411122568179185656992647404272617709048933189258973001947279710687723873603946572188040921963537368760597457679655068378451542107580231865142782132985723903032418528784092969798711297367986436531387317724005449037843982035488603915835719879001844742092971999984563410104580491668951658607814615258809879509611081241604011154029944124727479636250426485077790157081190395418790005221730568915880638717475961012402534414763124762068389382505042244466610495518913138365736618187648823994258272286563306455242316841180327632734128671650683476284251175686934305547183418920575085164813750008368531212937535225008536776030873628065741750239052738174362140135654982707823097234017016304013556367036241738229523599081153974104121534512881298939512455084001704561654080618054240064564233302609078962584712705366099203469145478010243835463893895063689409849161270429852486241105536948415124201980537027669107970674133684034789381031148116491007554554984164157616866030344791195478291682520948370990900009870366399465064205286009923073903598543424307043354750764742865771693446485810077395191506289704271217063910260928196029491296387619306013250584833777078946315637425088257368832558919215545214592641221081193935127160947832974630642648903519481232234171177290855888632762809596644817230033209435008555481121152627613292643594274708768336501792734390101656347530518351589190763493250433304596706498390542842367474114582388007980477832705990382678962065413045308483412523969511251848477776296435603991353658194522200234649024696674926208526125775172604201948035102091532912323204840207722215018944796184025021657396227848913993337646776416115390164874561718895497690965846395235621110246107567063582152501183234685485033993060255744737322706265220372590870486060188427300907755957618221041345341622313503677963718532789424761414260440444751737514240550686061211722007504884270641550003036210277522325043747617306980683526323450977918493977365702175730557516056624509312428596949372283791975730150826854952886007342077054586462931271010585560623614206670864415340902174942175526582639878904678506404472331280757771433751391428599274089443023440462344319624886559169098004056993102560037861535153938850985596729175847306389197673672781427542299410979303239719340362992117897439339719936003135593858058362377070919781406727140822347286543524039969672217235811699176442728736150897309898901860891326716933298103092435974481908049385586531583014393294364650510555280538442666057586897650897997090073449456769229645142969587052992105754410557383252020478215640534153379537595676404045157013879082354944859134218210031614950579028435343677158785124746557711441792672653438423760470297080920273790915120306095880702509091227686210942539428266591421690368401584660946391430287278261156929741620573093769383692986676771897228438804382304183876658065047138381582661582171640390835742798455592262629695624083541363545076089746884662876061163927113195969118086783406638903830347759477485991615318633383078011216124019628095109192483902979647785632190602049395090205213479214566042067348740771148046655072638484382354967531674532515096723394730693656470454569959148845917816243105420044992567810831694012157491491114438243265696198622935524461371302242845507866882610864591430862887483873551578275316721668354540039714750555676687330309263011759644420449944869626052444787826715994391691297625196818225258909411103376272105963452866027595563228999172101810471400797970873991508326984452321327291808539304716138254902252405041326162377596246794826862664237463664781772831141663009200698781518731857393101079519302282552174956421038731118217543182873706919209817680776185020256457407919649334138820592646217012306910935919062469416936463975583159218066334941683090675305457196281507904809264179136356601654605762953793111000907258288676869712499858921783690673404127861877537307826003336995290831621128566626235949536678210733418510284843895550446474287658343354945987662110163003144846187554425516300876495128191755857981379900641243204725383982740904940499911261974057772813145334083224471664957958361401661246456486130646374770573496052479060116074765207443095210383357570315305545948516892936688939256709184259713336302361931971800410068534552086002359800529342389886904711817207400810346904077607772631476131650336390898421556148828191630279723655461857896052133040557139926249997550254261592495766512444827079054405432914454863317589885058765396841715932213616645380762511324896941645403495391819135573083971192763392584172676736016153391932147256311751905824129670590475991869246693008603257040089011352958906289237011812003631856198581564784202462195426928646242708120933747756285653253596576730958928508983948467651886891680630817113645963938124248242332536701161315199895193072319800840301942894052732711813961682110726460206310091501195607184347861047792178284570332487262237633999774475390651857902770830688948046233677239759954462046412903190705107397302155257157167025946199533779945071622556108942591894994379033714278934612253906219514911478260739536266401801111749902292275426943078759328961870613416364708311353476121693518114210497499489349864866840709124485739490086449794308492331906344009944437733525196967019763828756103586203925173091638269381331755854346382960078671180325289202553168001181127946226696688851954489011391553797253343281248774888255953824703796549578498856069802780551034672177142452716023254614913715631770673160884207943357590965754423157481981534480312015237409398001278553885105286066994675796664231649408940313148942675603283834021380095528404715858471011081135090954445646256452851520862296012180800012853708141094724685305293719336506600622237543821269955302326305923278613559138201865179155510648154933607078589416534848713051290456099603242768375365770383316775400996124514311525420413713942522834532619840664726422005316643042970702547407333414832845704078889704284420086319312955415912552760631341815764180128930268357810316362957974725229302984170503488543571638099057801941054134761623481843814490605860079630612882840926987825646028794393973983901428143638789476748586111710502993202627364593523185812113359982307711538011893213996685652572091455930358879934035709819312660534556398224303302549952940715597175922778282657740015962480814818113789772470509337169646926347479244184026402989652925256415735071109230462171370318477825869262603694056418418912618312077527260736575734851174783390692124299785409475290887512841187296502388223717391963493097096172892170597882298964910463365853456272258863552313924143407483197331540070547040969477578384598326735020620575098132273549611940981770886892181354612740277456051589319400408514717357035934397116033222740196198762451055693324438700315612440692764843004372391986878117751609702746736089539484424484830805139449658729396262576000219546392613002370485030800106913448218955889723025577369821342692738855995074438628982610684270099722757843870325070559840830417164017085104376636488629624855840229354196713743798331488595513049578375490786894404487206613419034292462094282315804588630695665726981795260036000104237586298966784346508032706461479373810470846822085872066248998146019220648367182779519036680552745189927573919053689024754463371391630963061012912577440704028419568028124499933638774025753021037277966481586078181144579720309660086702208696326219487171405753301999059137284980747173012198636924806092980225433428877550796656539941212385451535203242208906576861993093964498321309955895958487244510032386582935053969080180336624214939680223505640980711306891525449226143603373458083783273876250871656061381355652351078137229856018109225426555160700695256615781485988044991198697514423139234396204198199338761663277583109741746357996931491050134141611942040142804224995937890862390676692195314186952229471066915922158043320260626635830563009472761042865882229115111855487577185957906320548470872632953369873002674694819382958821692951090046342841729404897962824358507859916479007026413051488995501709097817532232603038952324114401732614509747560839216960797837994641205198657684514750634047137917915702949307361248680991928757639511821571434944729195014159668152458821780990577013891177661167111818785361404634576816661521627710278863629557758359052191363295311354789920227546467648707540602627404951984737734970442625273694611455480496175560490254054090611120124428390240952569267351449371376843852089838524089339044241411289386038387877006805385885328475845478482032605183699089721044761370204905377654355684328540877438088310287880390324127527811498984617744539664925721462674989722682398516698751730108447301946303859735361579129380388136349608271903673347714625265733449910013494931842975051111735446465989118510487222751001094488992731004164846806265568228501646878607995298881534744277841389616236834779134424345946531527505945491651385976971322313536285561521549213886437142845569419203957810836734391454614654693966400550201765552219384368703754125904497660423189119948184067756860900823481670053824746962328932186966848009515831185626405822424473875040710724242677237247188751207052229038449467537084431212212457053742335777882124900019240361019433637453697627528294930684442133197191448899423427750821313517798046673931110710878492883855051351515265446036868427612066645230099949980899212979834093674824873104364379162807090467998390005649620033602884189931420807427327293534542630479977095271468163293013449595219651520470638666499632055806842898599399070161784364598336529589063560245080032815072845608033841200276210294318475079701635358212488051620749206475882479229933463876774177652049416305414161888475314548617928771183395824194929407542571966524704132757535300628829241914722036158918344169071183327411419096557662257488920916248873571518125065988287235389030753316630057232647805867383085926546410246170306082439131659990106199505838030126317871720039068776364996044554997148160984633935808253426741076496158943815714006624860917617575604602450252780308956805039621022946802007946821384902280531878498906164122976162424035085721381043164671066452458498829482367153169336208079426932789086051586983069708328142254003932438047212685617774460790500034128962381285951607562158494681587694413620454290452543075672746715678261081906707659900465830569411309440082799875056620541763174785753490804280862400412249117973358942275303336656364217434056562976206458876955429763911640886100634187421360308061765344271146737563875966329925365003015749623881540985545825413641776354843909201560127024345836799283557128084777907913711649237960428095044752394254607208119174055440560389149346268136613471428092068254863110024205747959748943388272812581332544951311727530776026826628516447896300116453102139436805041541457221290484624280330374522538360628781178258163130496945241421115473195614840987261137700314895891940047889132369665650252562727580782279690705330158961028758359524276332858479986034763855315396699999872870299053331707675996370893608443314922352068761141329599121013332012249353371143775650298985179573365070237506485330964562000394977859194030515040498693485676714488134178107682767138523817701001100325516663337459359999538198532835159765615725287658677331962718496833195984282684845200974416515927610490116954830567184269548345373048939416745775013280420869494375636236412504851556397760149772449823481212322415663106048727499701552884306019833099765773120835020043214563773952489365967301593758700475226052588449295126178209050377636146753224267438439570684131791093275327923284179830658612107997630291283975585223987720582386303158952010629403134551937329771327049370921465087179163249426461929308912690048322678476731374498351858001475040319613680506228835476442402097220790534601677760343378671400539874617898297134416356412151944830357795256542601169668330407749948554986721556588601155308238643665699523297018170272678739916747267142330587765436037761763068244694098175102321333048756872213173852513719920030397582843996554533603168208687375434440587334362348639997655014479755706537476517619964361529578825232949921750628249035067705377568361257789259378000881139691009272140783854853861849950021464554234320907725810715358183994058024768785853638751023407420293094649386427348554387420908484902249537354931192685524650859582937508479059303836859052526974833383777325663767699833868060277445480933894897874629526685576063203092757026442809476302119428526938555460495409156845861769879869865051988448202123051201388354270770531583837791929390220887467998481031737865542406115595546378748489027046280753736629858464368925590658891335769576882037245707210344871403617428768255550426616780893297315208645718896795341660455048257308733927798976658592901231430161706832083427998169087569134303400793340310483027361815102119006860648733888042912556013698012481261451702481792575382989481836021367089310470155920411668328217714504136333200600615569137331756593165249115096011319929745469065812170686342686354427213619740728528269524458628559714729057342112468224605142574102981472616809917025234315331443500937340075967240061458897138330163067346151165364190091978015732402110732336922634574544658835626920855755007336344739058810543427267766346328346393626252900131790588966300614976585672915236720300428990006928080808372282173265290570803354438101193344517956007318149254383075087587409495281727780783761958139246644370508805880468583504757211615467383653142984616687112128690539193457307531973640633069891731323195161530332041299280246604643719094878988902677784731613237468895746760638701978337328255334211956691627327841321364978162296375656376837154780224014124114025770643481600339619295617271326581369055551893700241167867192909540119155470856698077497948230076851759241270450262300102694673413206205544949716178681715668635675336981133449665283182717797983488653494385768724076905132410241044153005342430426323008369124198132797506132833364374477634926262319392084547975276460506084919901249151196231801140814456409017354994254553743497490716057246599332388045656066162770286454258198071303606285402562665964636608089255196528030509797990721626994480756199848380407174745891056949310028666692381895155273051096112966634617572390021704235897055815774907982569795943638413010289331685031774307549716728019830584744922269240243132388541205319758092236211267160598633029399550371937911056456968933712482286426002316370690019544524500745372924983373062005680777456094827101554324877055855451841581902828412403749571682647325356751652605393368513482938449523226025933071097941841244093963451265774674153339411721745798909240922214992085857308499894650948857146806963443192013578463926471576859932382947348410377607702717149880867983384108754288253217283997424869456086262932522029480592305818994507667761257490169594228312127407968610557451311335804948784178278051970846549953009515614301951174348918100004449127714352478181247646022986267785559079490071359046507347039249208327438799279631683501291411043134033446814323508303988128474085180260781573793022805661378883295308559305939277380414466556006098569023072661553077422951021925629932763575243085255154884333934709379544447101008315015287196487959892533943797868523481145546727522434232818291707560549418161259752716431446229398705681149118559112201106659173734639807864475372682641027754164227836590806114139396263702016331296780075870072831024938508619106004476361830604572877732051438017693357840728261200462047029558496310274070386141627764935892703962300015707926768533328058489291770430666917316737688942831264126239896429116785549541272195394032305806531741632054619017967684548669357763144636857242996377592766893153273196131571416719160347230412051111266035342960331092180274705820772996368240963489589687610273440652352964710176823694829019831022008897484501360667443518365349207959202582568905928852969404270025523332667302515295585431697106938657476128772435785123638017370107415920159456524883307192615673364483654639940026342804952528055163844320827072919502677718671491284064332418393359252672552925004320326651901129518617096649278648637591208198867873572762200666153014261758911931795932300979061499269608757234791307261378256102904413969710870048890723052108876430286936190331189020689137159784379727864349253878172493792059939059741168477068618138480326898408114546585224127251899246086679581476667218944212237336725957176675506625745158209011488136431327685120567231884980164542624356180056468356655348597635013676570967743396124372809656338464410128772643683819587611171948116061111382864001430064027060715995817421988761503414477632273759855464873138660617816439533930025195271189646847051307172206561855656242878638438626701436666681258143029341795635373334013261382992223378573813438543660624438545196987244278350221799204752440519607944129857830548191105102685666084107344676639895627589444654904818332188148538426854523559598314392563316782602751706227627936794374679442621267852270930771491713993112804282601876150123861942038713775940871060139937347825209136236020937187481015185035971046182567939436541324882890045085741329251900068724571081146810436474529549576614248838585479032719775651539748627333087305677256034187778817214264695396474023245764707736897529090791961793778203267246705175404881514352717526892644946609664782228845615408741764203025835113536319835030566882625710021819048097324795635269626304563194206377815144450913345582450853965979619619822446552701971937395495604970791932826600161098692127002062330392634364989594455224902501286041415459175003116732825749162507007148811063150713268519456558199292025510016895915484923308529012827074325373684129095021146958721638139509943299312671524895153365544947223183067573546069683917031148761844878164402977285202940843634471326859384639144764820502740793015636075135232723325448765247053335529750062092003446818976446382111798627800596462663287901014117899192485217068083260366160191693505214705875092948777405383030894218354544417077427013539994444098710071708020134827452286738945045162750558876259949417726004689352870624507406789340424151319983319120157123844618584874865854000720604236431363189230137427122288228208799244767424202233149736967344297070200407181391679361698348752963727781683681596585778578397101798965694590941269948326945768096700198509760946870154460863325839938703512477152418133611679250780652390536897592412698490978838475303761216153946316047868797524335261120398296074506287640441741722930842940693594495692109690599233058282616786767171553353434993781820263284107492576539058900700036262127977527249001481578381899803480367425126957387959198595062163388969059870738683860591690731620754852973114608544629404761214978837671045914856870341126158624865645453329681547776544840182065154645697849104790500397073010071600882503992623250925469213796601999305217654188534415101431802832539517184896106107050234978877580679840645956738116428894863007052534204276430075368231499940696070141695249200195678144784971041366459269614948030338796480043509007970731349339072104875152521405096344028250154145351005537944533173773755501978179453668621445944824714416078222747626090590180363866547463522521757532472615171641030239718451747208997491789483999450325976299431762832767559088003910900041478875115026067776498028433797168052672221252576245243667100688466208448184134673383725196288673537209779110644275638789645616921979379638628278328808179341126969707089099406223618220587507440828723756951751248381650191811933216606352184069083970424001942034515927853484498951614112478199207435133587178848532630836390142578865823449562700248490230851297069981186882444147694999189251447654264752068967233521834054827991191510054099973915144682682808795149485065389914479883870955576079763170304906651565546932517532602495446461839161904607442741961135864556710188737775646406201765291008537429321171103336413197320570690952743316707374760483916364804810386211059079560016135303609701510807758671794450131412048567170162152815013666695469342381119454160341858538368416334761672028903291920145620171135626340722008134925160984253635322473381556488080074007886341447992922335001407440257424253199623479030225462681166626469965092320567034718218516498838692360281833266445146818075919636768203833085228648058140181774092934096823944180318187590440382131648972787346258603810302309054341997088748457344355829508921793310929861826619864812626556727338262624141519824080620167504601081543593635677185879136295870021589152125010285182330551766417004738431719084682502617360907991810358776416489181161517007073262586419836065757833961922524487767959360447065863598521730578825616945202502597656117729847742220740484485881892753897087793784914372403790742146081098547483691257081022913539720339039616101502318655400588756647830733492307043526476040842145936691403978791800322211821998337743312263576970983020054126023383712689288788983291279599181667887446231815169682768969148921325637419277243836784443210922174905171566225228569941868141593306062694752384349143405305627763773739350985514405103779349773520673971183386864418189450752263760898329470337454841349630124924778469308845758274339655479888274050037271990194830292295693271656047404290935267768670061608508650334874618197654908036065756087824469476151995174840648725429075411855252895456748642070586107751488775113343995172006439094443826395782058487663370529397926439388839353779810033989880432618303622246764421658166599255344112487591997463837037765761441994943688380943201067062964105824945045715019421980842471698957583977713363398915094732192149272782512337627592149891520327699386804661728938634992808473554567316629321351439301928746826048692554184006134235805919437936394271463758381612538278735059114804807554767515791017933809464353519339657187159566745028126400844704952390278709172699201694198035137811945444138811666869392296087438968072118016614267529767894598767155946133933817756426434003015701796510211285905562868474602811780326386172985111216052494415590332040123861340898785583127141968876613118260907557238555262837455241867633876344260849500668762519744350284550667195863808443268704299623077719537535016197670042612629172069517779162390198644631410095419942783298563212893041905120001948662881938954591464345752307756239852871846251553858414956849506295209365208613584508286249416423770005049001808120623544240538444037916780740649818387689094804412478521413371215509007786695736124551750957281998948475738370593803729347670577322585879550448436593574880840420406528440207099778819621287166597797926306220630712478386901779370785776236116209748688572149182672850977147185654457123600922197999430813322167756758776216843907592110387913775814986390083550271443905947497898994275211230738433664799506958472849423474683919581597856290483599429087486991887498613284508448367819298153096601342031659562544826200822203349521164832704737973182676941006198350053141285149995139178597900887029060603136735207191514298934412740963135405703074200278890345578219110711220884488515937629222455199694691697927559027441173699841558170255860504548842801489372231040991754241220613466082055409125645911896457615052256073233904122519602365404772198277316988290366422819859858303631151029442776313205021763616288558907048119401037935512746189146381674227871098001304257642212859036518227153300435845899010011255037976560947236836797190350520336932266203650797185323782472335190984403549948997002626665216606388298973848027403342669620318391210273388762445367531488147342978807459790487902497250703240303567729376355925953788080283268318788738815243394564119893830281831581670014541129263914365940370225480637711518579261663627527591429623066053595245976565641742341664912278289191434446935769075737778365183558997001221890573920090887827647329763245852979738917232617359532981227068472317649815346614788578838711306768895190194936146528510555271081109138257941894600630837856339363938784394605475849747311022668364206899360525451890919230496700784755110396741711803182303031939937457440384135797140826786862490132876383765110427589210757695863285240307127015629790854041241645830871909821187354695482565614238798247648859273844838139659050980217104843080554896872370545780780391324695519396559447350786347677274915198648325863030763997386111238494937787574226143633560471560026802348073235574350071869428278999586280763078676297920815945604701861363287225720108297476650684579963657264066427688603731701669661234110907558880532249332669481331103813061435291275583654707617725065251686585904369944571423504221419114147351262083736975890060133995400017721562050124778803997307836961060484665617754528505354668519682168629950543548465777164615895334106026683942737316237462426089348201957497653171924206126494424510493916162934281082337577358523751020811772104232490447003556432268985484783590438212931884634126571337928595518525399748130717286308952673726948145774630694859880857515523264199176265123756734135521191379501164353224513300757606616431767306736416775893834968504713002007334410711101624054045851098169815378088038922519417929968033874534621986128674647674192543181518659511585979597136337432055054690779367798136740998157315281033867249626019230308999586081440540020602458147667906104226749321681648309929473026968729307436256303964559533370128102488254433140335844307158151270913636111017967321932358044387488077971130673916467876186713890196463749803063351254857123711308714957600123363179125842517638582026709960115295413734185421207028488878609962455153550142103814375188241201587896399371941972576946283972366469302397150602106733080031389763343170615658389535146350166186605616472614181251712975787632100466800358050030030734528279229119102249481047761892752060466622348857694593213122421025880399481414141476693090992838451275907904610727015243087569835347624309917408157986157546393884573391082464149056740405870378976086583537466269014773598827257308705448153708182783374559626376032496660649887974117017239954139985438381267837915366075710456081220818569166401547003517067946168764742763349267832247418914788406166335505746030956976067984140081010663464033589556530186171386239656920064301569470125172491978852827374425653285114567896616128213956507949013750671855755938087239957686217491586231319907332438504298147846556080331216635064050246788563726882551970477679745994186459439778086627737678349601389695869085175689636678932108213032014875853090035760461446141407471385396844825990731577530033684851677939516679567559477195694543272798145727519624380972466794869882564399788901660621146621191806730610068098453591142879934680277626770859210887745112926828588602690602743925371088590214355033432141783756629584438911098803188277222442647365497899842356789939696551179671967419318122029657312841335690992384031987843769674323556957215039827339892778270660350696328470756489506223245151970518119752250619477224480881812746531116807395396670023223232307757943646538129727877904542261622360587530536540031354707877277127659622475754131200762194406664388694427848904732801549899164423887077534389974047075333023973416634719833428799749104248166863996717563773594883390709083834912621008074030964713978274621473791816519925311228626447136507572643800693629250858131836489201647427097545924189876227836320948503732230724970263272781594165898142704456975332551298886780287394145506535352135903641753193981136388428855062223859478295184605284762258133987474393354903092802080121481231067713484530153174473025773594467698208229467549870047663666546194233710458128601121955669500500554388727284807398568450933475863732100040067840095525977859933417548378048616757548567772920917434065816692561146342036403127155287037178827036469156509090756645502001234397639644428529944702146422299537944406678099660896568557627048279433212705012347208252179876431161661396803648560186309960854915141026450285458095536484584638378676667141451693424984394212732152357681637143435411651564531646801174266788018956555200742111409681817514371927702542402468033084470750018538364671959587376277904535247588335334698467644951166073046443354684726119447549540148371209231061746265702911512294395319299768742958177949137296102462321441444566808740355203180968048025567720944155420787853509087038274876398531323204242333960007610828408970375103582717518722958845412858355891329537253505710124910098418511291040756117726170519555025377079420013704836920730588641659549297825074551261021622552913357390207681074139881283817739157863174275092759742217568102518966381281668100372474422865344588609059345943937504999084342040895461256829772527538911992765969060424719473380317392979751226520706996601662667741132582157828771742971307802938541549485303903444763365074239786406831775611378029260670301070356371069019961388407588648631279217941405424213046216242747401048996435051674274433700364418654075372130753530710609063665721436795743075039535247611991151685467928584116971175501976375235194495162941774741588420938463280190292425938446495337801414703800529731707281027449110619669198465450039331946687397477147687812019509146288560473728795773958933391661227588831285572889491556587583275152228698637490751986031761033606988491099339852297743781282045953305322832607606516917924078472643996580786502334196678549352262028445039278981870593850336775287085004821832764437464957689267774185891658555524398952596815578018327961802362876581311697690080557967090919848683202030413668331015890339334822881868991254782117496259015796918515130900769335997631221411366038329417683515223530078969985903817765688285254409684470363298358645748296628635527829944843137533222653304887498526056062340588922284134063063991847534981965628350905119071430795786691675777962017255740042688806347164532597805326722538156047880013838626795326288724411494263548316488720576032907036079173987911143378647553875185016033445786236081839324857520906026732829405665277830439847979517804758580997589526561847256865220336124644197663934321851386732522105394907454565892528520977627906009737705856624539839513889567420413771367506068057715136197430951886858277640176080088469751193749018128240922204185570241746925028406894765092989738262226682078603615661126340849025533300568883969791443468548204517464907933106111116433993503034689845884946827264524683853870719419021062279540418468869819278488081345182187830528218822316942449869024927319698382443101031011376298848529956621665046468033400705645202920227382067446166310110968403940972068700389437041487699571996784003661849267276966827136335991768535611778671269490040529514034370908040960756187716465718169003347974464988799452530903830310170616500316177817204342201826400790092041439639120883776078971246307376706207654941333298981484681202714214635206378308264580935427318283675982642124186308008642720738355487702579449225095312552905680153343433809815744848339925494546658233148653860427916792473249429980562972696149072079158352241109096058168563823663324386816359241028413162878738726925084380711122029611646390687167036523349651311679332843053687133935414250256565699810050851824875248399924249699435515669178346110553654265690023384719859763006178261310871455860451099930460046429505165987223850627589929451938960548722337448074764432470699569751906534076516690337678316961440836537097645141128431927693124194867210154456924620973345538037698750880805224661607438323954090379013063399200581768920880269982766327071140595378703194337742360407333895664746533632488914942264365969924023838968063854446503651828410901760651494132167551925578078667980007822859299562399411726298839692729703495768714511280912975022670183079245394715993088466851487197112693372055367143465092598954791027729702359449862756908451651426351530053945719241461578033234869529348952367649728906543226099562663833077339549222288948966088923383583229817725511476075828851787082768555464392507859464002817638426539934287212747548573118958769427394888354828139941726896548057936719023915395065742422556644390686981021314200229434273838377870957945793012241626081915302655944354187121981612753934538592524537321158454310179617912915790789589380578384370948854372390138195561528091766139184832077177423825691045616960844258209246398076765140256833592322643166862670855009604201392202238142607953625043069863277376183191763532568810591126766914373799304467791007225860353955334178308417123582823655693157045253304850932027912472307284952767434520754569137614626319021619092774039927430599226702100689191556528294363930394924180375524372638814798613932463881802883423912387384844920876310829253174367492636882476753369585826575040251804065059205812914002033384691840377495729428700768404857974481407144217576190118666362290786408518811309676247153219227064812957676363713683888616526286837874765382502181703560852678158482155718305259500661067605715454679425660921646254805612241472925803373032588202521854232541111543788646681189528266825845491261454341448552605355858072251957880680002890675041157478325190875492263564126782902382250894529066102439169513769276011419876294326461046372747127891859364946868217231303437749820153948110879673491293122566329815686694413493218624158815604017546366404859489540406787132337147240789068572608684789309611310586767385430237246423239987368349657290958208199000861972654653193329182925066031912628973488695929432342206495958794452731211659075964456333922588832903878126245146683593012388249653759266076074589441253077850185473493048488557589326797746562675964854770288382261634281647051668344181967005624278477376593399578063345902668212928954098791924281030999957685349487326771175329064267645665834139061859878783998285730155442507251235909075862245046110333196484141763420787262966909728356528186527779718223833275238482816156043672447564651919537174350232760707051447969801300604186509324794108246326975113985279446584714686555488797515828682954549121932683867445715827914470452622729725423738019351647857514671280925403597642179726036425461475741575683642025479459944168681779492271689512309898158431375784069791455777394220418730213314535592384661811282056506145182633940026312102575174066798371391824809128103502448359845893848434711675287033170048714144879390174630845218834812961619621007675814234733143666066225364551948237039585464575760497317998113685015263839374267226550338062741027439272147843050949052088923372760345065510993930109626532606985785000546515191341372159552515961397679269554317931944657075691288867936421872701130971088126028529837227774841290518177529030803823303932048078219054093549687155916681188507725324222835820063127226952316686096950020374286960515136337163991322246379543220654980293697530637831602259041030591041426676854559482260861145068556680472946574986435007597545013378187026533745009555256508641777710150232469185364599962552304825537709514982717048747162236904658308075796661763452665198766360811143216404786585111468967931772662239032005869875941395966327159941273071733169945946205595176202689503334797264111709700098742936323709711569077516386634682320604475363263356317216753916402551427265634247011285713032142468343612763368145291807939876141868520643276149294097783177146090688663072654239895183689455168046149932683136592272477327252809147840939593488049196067948956994560536628690687304849897099785853175638111493517893357856514113618183631155049237961030631410003283993683553953828887043586607169633095798010172410649547911284024573344413275898173321329120594095369689850635893757652444829323019155692207446536191248600390723395039705314239864156435618498441316309848050157564508801379800498272864198139451807388950315037968918156238710148618483357057948819964975214553930016509188015928375666642149523947973420792981065253722053115176607557165691941315672802307727819488799987157740680282055356460069139349995567652031656830706156360560987863037395208023228098271137553885765494127170971144920965759813078377457267377876009847096204298019616327338404358183014570471969057289841577166987334130462639777844066714252255213240685821131942932285965677317388389391896295664463774513562633975677863818100071760086174624212561936660416701628957857545375403307247029326817212871799899682846670390803475979860436324061025811386161736936198621331578937975510284291273451089370303136578267795024981316052428941276949789342922973054263109149048175989214937606065610268483763357245863169436140205739764099319935078414978420727614255535317649680949369785269128225039209965684275359792934915464983561337588303130710486914153136166902559105529971008229824296614502613072961662540323164937220296461370842101188363660174473156047194625360055470231808194725283750501763381945621825024979629761186410554377554684465689380932704863589956867346851017308572262562339607615221362876630153653856057479922064164878659098498017126253088585750101601443655414482554155237643819891856963762459338929886435319618447316546737976213538736749599843471351235310993994277702264143774501099015443448355165654788405702615517824943101704532219755459777990462896296992943798390345905567901761229319328392210802906560353241881342861079591603523470361104190742484515654021217472726095527952610995834697116658040595074426727637553940941479348861078143045412146257053377944773463198828960405080071589826863221181546988585118497728939717299695767095568383416961684706705231513394595208067497061457337362797760829546205367418246151137967066594965549051453444681817942470905336198640496389530180994287999111444241119414671880575799971451399230481950962035996070944787440469535372414953087594820457942545227568474690124881899663516746475421995063095877408255876607498755616460412266605656511545820320479339062377093258537339895907165966978824212405343054315095967003516280035956523659383020835369098801073684761351500918805654020737951944376615014784203243100355436300795636025296068420202806633005513390431577112912133536737907655866919566327982690090908278656516003253563508335122011706300422260768194227465461980529270603262539747704603076668752861955651035537379948670862519105918288322378388216808619178042215194263645256837202774844300519648353307623136591633847657601885136705569265793910840090885724002401779752710488557787941923727746590455836320353333046586026833117050351233245162415602504567883378100218712653640798968291434275572388329298620351428907781207171826692586807941308380088240232127047610336764107707788002380902627281695387688781758345023002966091787574220746174632302704135580453631366501622710699469948241329540323074843462793916004518712203160849715034142301390981366106023156354478774775401477587177711989509846147471334591107567403560986694750120812634355528566232689596182640533729029296496122760447686622877874151437335111316225933614052315320299190280035814651178573384327916242313533424753377066889114582973040046199432023871998544840047184417455014050661260477484229464192156592064361176238585280315248765773372121852559744954576889218695479727717723408115989479081770076436720667702323879046365321409949482454689688168896355574196480956970762530725433412551344734066341662667235987103240257604046003070698322724306572130838869625700011018092680311576773671337420988952106673059063163972172752480255709727031191389942721794063375309771621923675634686873985811355788435270856757771448545794195961937976281997194869573173767879698546902589077084756254965488652888339351774093835073852670638999569781252760911269255907919558751981712409029089135675726107543055245253309397887484889747642765748544430537707145425428380854378535677061868773436487798172493576627665163193555263521281903613310989788012121846639630078773684849712426905359831740316498769559959389283033410141722294295636582308493189390030389658770707332108556147870922232396058255216429713953572249719392379916796348528364291092179383776556417032252039554357054300427101428526322769901365219647668409996213536767496899333160624250452826414046704017374589574552794960095617229252491324425926249064544873228791756675084439570731917800910764295055802358511114577746193641532124726863935532874151102661478424563820989190924469066231708037677453487593597860956458281374327899696924923570037836934046313955927152830584626949312050076407307214868388786190946197594778741801874809516177640072141354964613036941813810461375875089149411714966255163824014956565302463183601027745893675818101923627885345807228944127648895384743372834426283312244577956172399577889144088650302647447924794223331561274770316347544343925834274483183873184613528930111131997654494035071054666919013713799293167007290739377764559666075197087644909698711544754110393520906875291875889612480518359364343747560177219594294861239141677644747423270664344218593334031971289622277340931630356139496092661824855533275600922598928760427751829497380671831011410505373439816941124536318148250343505030041431171502413592331104319013818816409866398202052887577926124590478502846137633583465472246139674483371615681918682974295400906508251115736658247607518015122670694482576779755852676589196747500775319190403816416780878462199748534171984575281783374737697828733259216507244512189084301816008379399471239193275805139185895671545513841103121555086660308500760567601284278289890282649528983657905755972091190480919977292100098060819000061078922809914889886137593671092142850921028567405234147648490813684363974036615934787044021155037933826398600566407670614081118247633994831826067292072667853001175045727325623987169833272893249869017717780314973886078916970202922669844496273999877339057046857927272368341129833581205808614447654928962246177879013939963635516539126050394323570721322679896024784752758346886087935421365644063063977132333950625397600840957337997408769777016657098476152186000130749254065131264691776427815781498846332375931861055459415653617324303089436034795969082977732156613896440310164098335397705029038699624735789079307926770142125819513119667244399056392476537047990844922938315079259258283819525002355315023144042613752917011714687579142111935266803423492269397600641254101191956851303694465282673760472232635030309694289067986925301076373171558045383726523452179695325876116300880882499801857105741041072794912067463685495697776031556557900937231009097636933085643472706008577561957676662857649757850946879635501739755692779529823386496646707465414694316458250757768767632013790275552577557266650156190432482434621291295559904570106878664848942031458388728143797132309777707382237655262387175627589807074762311783048904138100360343332820402051917106651065788381574955631418076159437666914585291031205027881215952733339004854167200629215877484563959480040769180227408462321022582351589751363272363563328436515929891017903342104228330518396111459753086557151645320236702812374687532063993221588376469269491364251919019144062941891479698735096461790983480375239377659954879066296294930746664381916405715820513248265899062289345110895209100991261269342004169682937018685530733446918699455037311632550753378760260830896572345334391575713473611705416167265421135152651762542180735378276381553155494928679937948377954119550942523909381868879300403818266379573156794605850667763724783233195497422001757014110150222117270126114279015134359756142630918309421770511010703478344415895613709848325977223698809485133968589530075342870941325729043787099825193101624667368001126918697370610975119415780481701953235197924023601555725910665737461368183542208103317036620845574670242872122080136545615422284480039894976306555012454938716444571404666717883476164096422516794643207116971546642591650280726601108027006118477039118224750193188778878325730402855441943082353459656158329901691004569244170897116931828946303292740029963970582542540108620603623660561478996465992476879338533297628065547129800335877195978343715312067230486071859831380425308034877816662133985433296170430939451211184671351216231089884051849893319939221584797586546576055793211510996478421908516699370081931930788513396621965606466528565385479168043797235246671789554867437118778231268189293195921993940558788874293243967914456462283367746571229888273924913858741797935861057688866677735024360053239415524487946002492188634870399116781323487554236163114932393013243993741172312186328512916400736422819998939146326326489703818362519677740914020287305483666584985189692563758891509680101501116965198115523701297661695171592917942681924314244290959002001488982775549875408488749397194918816214863222399733402328295818404255610461566684558994398194818937179864026944959295769186507337564964564674654329681372465669224019261852916375479863606625752436330652880336510417344874772314149832620388409213332508191289791329085032611243304861545075850425131972578406656837324497641201325114502700915130337077003095210090702641210730848884001766767204988820144414056573910801223453490310551806460605955442370005297378537071906537727196825374592420188032895364951504239942064331406443059695394138730595505794555917897957137290350844192625482057111962608565980874455332170507556467626264980969795863217555991648869800797944583609887846966470414819111748596546821982307437993144704122981479718162581012861502125852678402797591381552619711862777368672603431611834604577734353104351765279968951572779666967804252575719324718013916545215004346539409014666264453917583560619586969932235108062824315925603823658676228066367567047786209034735877503072029444599836732254420376595571390887634556946748801269645369267834672024545079464294640260536450678608027027781474470335404809086294445950195859205268027212479618303556993427850827123376914446090590741600654892426708318914158901434309149243550694080503111813075994879735502171435596356657347192127295510630415169193905775753620115975502621335300816444343684016569170601189846996315828635249858183414531381085716655437612384933051790221407794799485974115578687368553586989123036310987775771708199411170885535272392283217310428752458436808834738719726123402569262392800013732623435245175839132958439084984650349941602443570064106207907532188558703983075967062185565456616437922545205347030381166512171551580646519358555750726164531583989803095991182757141271131284440521544056783173335027726771573331326934565803619727006614479272823192358121126989085235403793758095679279379795954397359711914527403277192736077772982178757321260174788155919268668531597258638587322386248958669676922047498754624049378651017822422596740522248729144539209280788426610622173569375822183827854425706649301677596798994557995043323687992153354685003075641480956773497612405042029159028274262534006743437698848863865781932953240517215242883002256255900184539806679661342560593589348364618726079869758790521970057944911750595697945867816786574736604429914118514722646585663416540755158937344350374563461178049014486330086997798511307799982305348310670322656014003051871296118225355129920225415369661777883819554477816489106275073682562833691193867853491038404039939541590341406644746780855620782692750634647654855605839325499353150902659573179998793922071136592031046226848074229751099860362363536216892967788515158279857138599577807295958154018984410867723163042059344733250269748105425943255572087220354509249602341003000712069742794838841543777111355042554425934660868554798992293183490275669112484182767155694795295613429344472765185410774186173448958880329937635968260766410168777235637345044729106731002900028509135734756366549154614031798886592297445286679840561692543325337188680715997725465262398670514398967563476029105158716141389285238989567473078349792219859655420182913490939514475096302583968253971233760667752664967546748989704085403476205777767676140149160969546533834584821259669673934175629797466662986193042535415667712673413288750777173426658887640395982497226038814994906027153070839821338523539337787813048237456352303875707798236811589552157434866279888945740683083670930036557377464349681174407606862463769820137529096821815649604045062007842366758979933391544086167787106885563083563198793960681428452854189361761877693435096302612699752999432654719951766522922517889072132692266990074778658905606315793988428100333993664244270212863589224567388056943493563966057835556557932953820021782532985797426739992164871697405292757619787615987625179890134634034918854389007276088498441921127729176429555083662464226093771447599383297614140936436589388476573465519210107670278542473175551624760136930573629697842061720991089472462530736907573981114013578804691460272237371337596515051870715637089227768201727965768811388367000343661868411930011595594049103033597193111724488166241270761314247480930378270569300689829357274514929243442345354243510125079505533402423464129010693000860339151415469635927230088178128849122190145142405709515226317676323272703492310279141345890140609711894869497142885576797249236526038800404003726749488164089659228101646612622339143630473815588378256097966553430891577345721483191639714256696897317294523236999141096257386957810382729409442216715198323818663033272933434694397490353457566645477477071550735716045866710250134445167878886567657728576378747571913323965020638071084850482117765506427910165098294877862004802735926229398381874984185983607657759959604679301209659457910312410421023769015791900356664024385415019859200956449057242913573334320779340729407272605200906481920148759101435622133486019739178289354337521011828547428824727788554632970487430040613839849350619589479182244626877518139127570526698897309825817049149570162839008655780201896611591798943167906974701094939835628424171163356705472048766477376008824472288195827165969012432239930577827586850505343709866678272423275981679544824586806287761636248066353238432001459952748130438610706408494986355735965653766798791451132846995716272788939357225540282092049527831821208624576381080369441114894309950390178281220901195457873549690659520409624222582863580193084330860480529110083548929266829401528335276514492766398881377264557436692544477414484668109935488336195377363416713506670843956009743066026802303687256570782492941686691326158717374431787842229153827892229056552333669045856610717487114446366883515656892007247595393385444665643238814773313861847416289888554396753277719990641983881822485436243259586620267852926702493005826986180264452407257854041331677923437422167990976578824131994377867533423597512444538119291636067138280247782418962250957862962926715066417502906690066994757006423404487672698253392847413391097366255430580467334225060911131351341929959670260143306724212026945317859664408056735658121262131944078271642864260610237022345228139975527393539873789489392996720083810128887209208736079359598432066490342073551676527365955794733709019708776926680800869935282188776349009619840840764391764880297692591173589751860597988027777008922424438485880003800221226762133818416312513805532551122223496541006466161405665061364364298101145572666729230140378428412603991548227208853313112137442817483737875964565809187342006597570918170710955129251984342069331788670003119414571880924505066670492298854468174723361011922546056704566087952114823034962576498228159734522918655656306210155168136564396660400754441563377209073987021548051624459818031346813779878425373636536688217551378674653112319163410182644002465658325248415101124889392984533146294425024157039610800176410441244035011147991909586442925825027202663058385644417595045668819560615500166805665120138161854216041571608342180865097673199446710590969467182752410018084880340492863360724447667474373093155233505575944587870959922002326592449876402152807895038944135576648104885563491378211769131392704018112765474211124536367075418267253851674790220167167240527647096698275747033076825690042457087562354424119586151694608106610848740377772489130824899741690678331938548176623163322632603437783324749822017728443399452400073842634170866431426945455513943660293853368290162325549599132374092666006650054569129497928895037638959168675983551771755139674535103808999585902659715884328104928827514376333740423054517969055103803619031691943055929849091302669103370449747667409927656386109815302761495820288626613285793738500351943615189041544508888932549857246681784786725891336561184875392359178996263917867656622911215850847452894184222341575926283271046856372029907861444588442896583329397687594034980383243805149457450728389422164263957363775251149110592129919148541432488313781656617929246859292172586157956150594918741032856714326397895341457700986606271090244002451136911640548510657854667414388080822157047512623835498642041721988870548104147480391669706442323518326233918820700023560741698248696904095696044766529680439374934227950894421202356258436427338538284668941577793523197697621372999173640779837519113881574185938825483362025844449445793333280113208641820743677546962645120252076801563101480118860633859181346848851462075364403825760480884863545548897266843523216815124912526620069573649343938336252872824736349630774684996985983724501844522195765491234069536060740584885202526738854092874618638349297886356883487060648226990428440470042667315046986644176156984884697403596537868326787963628415549520250484310607595738755740593835873107469876061850719737043703300014555770294191107486985884197102655064333243256077366603693008011381876184601842204896141549313219114491185002240555019801956580636450223968761413298355438172982149051248561905886371402526638834692052433281372470690919741141040259320250117143019655725838989032952522725931465069188291365573271416676632912829886814102969020090915547361299646568428536957924705611225748957325815162785359581255289432176834027106442329733457442232489583097660105825446438915641053817520803569143812481604760018280125535836378597892506907782381266825239160638236688924766552479778581998945097561875791009850751706904105715206280184320538261281039885793059178702472227361710461987379429837180891453996461453910121647277566195673321260125463680729918426294877785211862008439591936505589756112794587639666172338518296375055523311654385634625156301574250266272399906071741080519836228884658262866302361824511301460729831166956481969839104065392716787042466420075363841548951444306169932794303457708828970574618251161701407383451612054930543579788514637195413429006568425718098058675378858421955588323085152574472001481101701303081626661560068469900621234238928038843645590652423286694693470943993250766402950457307460776162228440082558812041724437208736590610937360846677830882330529465428709394020043382410292185860282425721074752619017119858494252515293774878140432024944126410153942092536212979983983531739726279192174884553838358418010994908689429503444338891424332909604828246601896735115595371504837289380713684370536648090614287159252257610772161751259734212555870072334225280714254506804190519811271708918479269273161832216261702201465548668141315439992015826759292462260031456279306495646435654713231637359012296651194787266575400289562972405776562792838277680879237547707160372697857181999083351980148592860958988723124862396916204619337313543558685535959168795780621746080767129080545998586099781173976696063597369702835102199154267368013000394528046301074340369569288340558430653450943984551225715651887945869984114603733873462115255310639813929483054562992807437577152019835482380337054475697151505394513142759288216299758993235719250754762507515329907547129608996497082088088067218998144558005771388827496374527376757167026068968229542118421377519807320098711726111988345924450508892536845385477656188840184292749039757739722978171953707126598487076491864524261727593069886675262097963509190122185026267909473585977892245460876175633991107075665239031030292324715288781918663406360611045066948323557764917313456620135369209253801371699295092288120776712961536512697602581773668424587078996648193256284613195310749862004169200321468951730904702287772434986863616099534859161006836600317200636043208342661710956770791035593384895898780425653688111497913667319442277983619835807385340283279850382577061612976936449418039836627053999062538068988114813633999200548410038172848993366585087760504919524080658680185366145994178541168932201339602112212337629045087967103984537982615766474948124314086783822726312194615848370262309638094503168037809151370085127904650240350186335008067742109623739997736371812065402789623578663050268664283225321212676246124281262041239272282875262501772812874044274997749928919565588933303198833245969672821111494233311013831887710679668883972139851428469021422749689828504624347188913278614170805068056701056239836650189584189420225263895298350786044969392564587212756923628941982636023913766004396329313733639900381814928749940937629914756811401868354190517870337115888269182134643282271154111195025509080176611766925624504962041757023118022620920362479914044826726166031736085260723048184831510212395223250615884524268952524106788823223095520656307955627593065892756611369095263895152650906651288061906726205706639561787790036620159472549422154494637791239205579012114430133676179576938331752632139055050563653806500760862036783356080720862736816040925349188310358415568947630662125812071829776186082453969330393869577412479728587211242442577763882952032612833659321057660820080074190701546468581564583037107837167585850617907794431356717797066479901308099657448404725840553378218616808394073470997130481896478010719345294881090788253524934587004989990358426974590841879347939996009356550241053931296625875665969709528526796447521125057184857047451358101375622355943819342409505613641287187028681127697500019737990683861355661278438662172578658290799579070795667288457543067370316321383570937753060473293435304665102944707687883046925472705077255721681753033314338980427468223964837564840145977038198494677072117799076157267430141958761751634399944289813423475431729362952747777921225314238906579594244295460297575925190693059443139119184741651179754216547478451884923489419782701942574957742342080014936103508548241416832804048593138234183658885420206320544808372140328981422892390152151507667064207851362932345146248364185360940294400286177235332221618310067462171013059897418073914146371149005749960475373409276413243478943981729300909722923846312709249025583155418283058531805773114712927819622086195121700638790012547480370786531080901816373641817801197045684559025274468656341329732244470932131341995068215638553207352195780630975098721318385510050647600196855196728832678370773070360064322253782153012082636221782451939405702533574561693407077220667023530969936233967174427144828285884451612843937908255416651154593542985594069542574519541463307994583271229251189159220358077813437372363593994725906646016056013234323285542455928945860064729566817445690113134804418633698386013254495507257274305230782528749713835804374175031953954376329717391725195978289689057562872902446672947689815900438588996084973124888000531540432545979992266895798340230251752801657798839473445761896144816098879572232070085994238475028964376140660894638408756476610593045012390261198356077902383411496591085283798603138534729282533856279538617508208584839778930935316324326764058479834275063846548317225440946207840288823668727357789121825037030611411979665276614715254805105095602228469320246826246652164247556873392528559705291337709966767735082479523573634014213934974064134315660239278227127346145453516278956514191244070500131388810877601956160374759855323140873265623504030064185170654215204479743175676595735224912615426227481975535866165870100946300337947123247013100016011544714290279487349106766512248602682496231858157746747140861258333428802670716058246532741978080905095830914803825611114238692665133208799800574172900241333112804338569625503995856332306446636788758813756687378798848604001549889848196334807880464251917326158454796099896774800638749326930511785062298591144085727040878296052530367863769596479653232889256436258042518952517342557279892875379690420167687239059140667679857336307445609582759746458419953027350560869344276441476091961240631913604134518519740949914559043327900249957347781215819076756682297970245036742836845992891367157986414034473214222308645619091710683854699829056660544694598687786693773093121215394132782940869081788582262367082307863629954079645187704991123154068109168123291331480541945266616442464731172588588437270058608573519615399469655308903031116502974661468481019537669135873761871029536329726427657568182010028697751922118565727816207912184935594050801266970126250234857234385598833324993613261219441170388466340242272901901259341084891528524829502282655529011762392516796765867104979533372740390336017990198822442608282216344823069482110363946512318096040685520099181213170662489160138379510385443920387065898271822912493468195111195468631272036367108489900857950013289205495084033499893804603541018744509219346258538906702036540055245211996356949544527089001473210130832917629926365739230399486019350231685141131820892765351979631521406057251999227671569062815745221140276397806961562505956639791141567068383260715999882757636753267753996468545473153359336072978312135556573930581094387980497738586742505908487356201828855789784309832705788995493662587121065996394873891684361946180052228669052762419043652870927747237949572455569028760241627412496217911467343436422260557806255347101677300613950942278143664988293147689904716833121604436489974444430959020396404816791803492550739777787369329848695612251624636347490272419952515810235247127725215651986866148593550767666711175628450579815763323328745609345901601300205143136027437111757096361871210701178241825617439498773588316626907653640501869096140350884077310676048778793744171828468197904588442239865853532580758554427606077269958387931267879286705034016399881431164245850245438404690187531657891189691835263823278029906668927539601466508012413373766708775015279987326677328617275464331438860299105236915051628367834628180883362727219464379785962131379463427033295187633769630340145656653332856094839037666395559644366633931188985517412821885710196113237265651468364246939655376732597885047904986185317574145809601774626059189021943489214975251086632342177047718598515814922925987448350544599520004960655715347714937714072825549818737420535890816630232189863524149982631306551574778412042969922670888277045777352116013449858444891301193763624764870920675297491044480398137798790094646248793911350339070057081326649248980233959142070778187217239390816119650966689432576314855883082109126345367106500449453924660453682627649315101240016310035759587868964584297693254869894766174856391038233407213862619813624605306332948761209611273649939386810700256989793088960375234490768568080301632298498558138235048145427163284851965400638973032452444628795127947525291114028780431439287197575032143850798712510047770688285378090433085050236691172698570215674573771182890025624772188981644578958208256933331442003201346443607745193457069787468685395940217470614247391198721152960951523345773747916063124711347053871876168694573052253400031558984164033557418929708326907140348233572354408158063688878465634948325119463520886715514346785301286266287375202977936830315374573569244487980693761959299016052978389598386852238763096056152355610191447866893323743853930074632501427507843616589452248603700468221772024451180674451627464627244213662961169656832389928381994864571851263087138800724278511256215180446239482833719498422885372692961649228708735240700014325733252748119546866408040971738699970560564690905408400789776450785962984277251746568149477633317122289605399828577164971735108510770234338387149932166254785213679309055830667244815815498907695492515619773336760974001690446556462076319009230807218548552777724500367718619674411081020470102259167080383319259970933941526143555394359616968964557568375874426471981975967660029658270632605283173227350665848674226827795633242082699683242211008895683673640153294544452065000926204369916282266943106649306504598380236402735753920868659413923920298875907335506360993246677448767489185768553701441534628686496785809290629163626187458865057429062834842166643774967052889283352715745769508442903632059720312137065667239244350095255541757020709687335218087253921304294491850717580926939950927077187906198501111882191758725860410904879630357595209535512694447355031103637919030749325163893731550223683375122617490661432735869535260983227675897941431354649219118071819655779321390058838307127627454927415639618849728783600753093764352229845067200718579982489246534900151837627423280885253598955128117468759218532119223540400476072134110851785263333101873394673793035933996827497490879292359040434912504865751806876914260497417695862168307976182337670222134461845651828858555633408853587197200171559629877271332056647158676323949597740205130950657623292267700159835822798942765825602201753401799926862386265050304881697673658106005046820455271803754980203205105378741924450589645912014438197523568127978082480052551382849024449414360906407158742880086833245138920405536889179102027128339229952736068555272843492045659711427107034121940704666467244906864993221080987429742318657027875182916765113386133583357400494570689080040320943162382128510208308363870616553636732085133614272097501926635278422632085991389923944891176299560114922867355590902068880668896310364382494464440183094770973154486708965207133625668087983159862460577855440034137353843511167994925491565919187389950777580489459257386560487114908441158613559425487140865733690772632448005698415031802175483136993792037194155997993892009546786729997203742549491842699642625568361363245738292529557249598368738591029660203243023970844012033639044503712863342108440448691522353537842002435166727056522802912868583427780524031314538532563026480384913568477129643169818252719239543030750907783252692907188688625983470660338336072302329075019688125952930043256520575423939004638934831930679406296344828091960255135239629089358420071961051233769458701025461965888649381323375866468425038010970359397060149564766425793822755854713196042823690677459106309230941673941723323788673272176187465494710112091387061114463820798034990429998892883293709366143449535073320075676892556058136590125281425955153308299013730169670166426109796525798389835219645011799562682880492998126842498256760173556794076139890494377115891341771311316522617064671296396931325073431945182526293768722786395750397045369821797699172255392027542915234064803845806095363775668180767285802244159274851382967047470766813028529801902277767453619282793913488992266303083571226640646011574408998966379238956220947211532645389295777007944292907234742960529813974402583407273512286749881530565981503863408012847963329723723377405492201940881320921378809917056419710322319485208872180249655714428447056700728488658984937435061594755517825153776815250563374085482506681974899737400304174301194761856051334630066447469466117344804348264813452552367271649892538716058962466254812405077813244208395475561865944129985026818041660312977537430268384489215124325283150001365494474280468810585052443001707418453267429166408121616068722698986969352970789635707732926971947433246445542009125446682951954749185120225152129552006857291145460120828288484035284256236072795543955895300327546336291264450379311414068198320811494968761704982694216771301865930504842385458227111083830052279054588765328546740164268773114152035256723419854769563657257512926518096481789382309981058942164173874096039949712705966739420377719697156274596683457957918020344484925888843146509447680485922254411388859546185681357043068124523995877823463523879584025818337275070323100812269446904652446728928391714631048546288083859136374511939830770560295473880767916996324615713772071608596278557523288180394561834003960823111874253997759207885747592915116407705360361941579349297691132638192432348647080466223146190420962872677892922002472614181304658495963374745727431070305815216313780277499080787488833780878535116570022279676197437941959259904421395640657078501873265850997059552391312183689218311205084352986145039667457730513615582175896088956845233625808448922774783784494745693627872957970415725023148265144568336992575077775858467205233748148005278965455303057775657911819785949564869040664454994776755880438097429104328765346674758911837296854428427637813797098962559522943299447857173883602392643707131804639049101964081439637325493613671580456999670737071627684545292855819186609204758632168526347290172845344014267092673541739959631873883929450414615632250675465864067038195935810883463590163234577755398785225599796715434956081426397939473647186210707434986517043246800124982230884016078105142847812207825656740807869993214503534475710277904843163213606929771943633479209979761500056788077369434640815745451647106584620371943427549638319328026083953106719224548218896685970457800605960205074382654268311010724326458987150676638483853714258438918252737379672108653887938168572820976185101097891382710475117740050652864557966317525817677650246880436298863900695261330083016017667011759521925286508569572737533682483374917885907867460647065495879567112903757677674762386928056161337657636403337730214263926487533602143768787676161660981112848429310961223720602337579414499112590059324807925057867891243841468928569411220357013901942517569877199397005641295591936352549441098460851958469483359306969456521326114038682464844704760210147893659061889046666252675674903431135355233026227327955657173397270673611709935762168853973142179362649560997454010562312808698287922639886047526297049562443420753159223489821436072599590034040093040491041454070206072318164521809019912208702958923621181960610941605958844569874171757781568187211559235109815281712733903398747863247061458021015456467326204358545749542746051466053692864601625452845138525332620920145655685266555953074644009295441879452771753553134246577154516600929047542903581955806023734558769921146875679733699991202901647102121702830731350271536363717098440349384467936588631871410295567008175149722283099852881324602415152903551504253875924918444754346484499469639782248251739440815672722867932372188160936710091489441122760633557612755284823573828423960703703140449858949187576405487599048333742396173228857817974140845087145988019677685605688360726166938931577508087252973749592589952991743493174408159593555901889794936462109615888925207375741066137772411435762442170205870143596433006420819966985166795615481212036690624671209262630359251734835352431968962708899243571615687448735792389881366885956476514640696246340618554803912331339110272336405340776692954924936480431906728578151026910297108244636109605567300374721027268452317217676579442209927702559794824959973334609709854002320600491273595241020532399815159657271001993261191183436936582377332917575324028317146982229375426238772670000226581155873784734543647145838924260876389071840104073228057451136314577134324865459834060494632127824957621187145062329807677359635970991183796498310186380884874202380164667256630525566863352730917459231606466133190510542811990970181867069029109766029537114614476989658195595878309693413294329596062999024021896095908893159272714717804404609143582118675903290642805480454102316629313643228474236973410575640367817901043380818367838818353517259247456175315351515504735885929834530174929551926957366732266750042120274138347853504943994984671065488844208021440059170332891521978655991034575158802052676650540382332822693979849576955440521182512778523356786374367888961806803715557991485063708922796739656444453708508638892644881049166531834922195507295327193670622280346874018997083080468319920972306500544959909532544829692414441225784748117177064226458186823292479872107710273496749596129326270866425997058007710112630398133770313170413920582951077334701844762889293625221649970016410609323293320220828413065220971302469503005150573986266807792698990063512367503332947911334899185588456870272275079449330929232230251095483176791490559339987371808474918063338571454968566184056118152324573423455276322864263587435263531102141669324894884081059787559826370839673712584859531415796759678877082035285164903047460096232093555288877061584791926664132932448609021641374268904627843251178660356741647225946242314954949894405180071840023266806657255537027804884446286553645767676506944479823746296966151363608007130611733482210246232132787622369417657934230513215321482075229811685669971430782704335656790638660093274479668509708673258023933013956386117549557779757249768734645957696363190200723906023107574664938863027806136555008581486474957666871946143387200388817385107558114827729277111352701225100181281312331719654619274330368593851550040686561079247295713210442128069687326329025722307044774896076468613781617232270999345817525892057660506266663986867134216663392306349590404491719007606878262444688806345112250231866337639906509264328052753927721088935086093631781391433550393229490307874625140526375142745835159730461343705695774236977603698638597312678506917698600365164834432956845549751985753797915455538194045860400458145961225334435986277967209230570615110146357885266771137158035559173216068822075598347237417707904752592869253993330817283832020012086620614320583011121953299056652357225475432693259062052315500941925553712591325610676818147826053030209758485708792402812004184366681977671383792941570494015474001194763245277990230869520342599924505578134002578697716016398250013428575211194528366089754116637024594411109209790888226795809847029473111376914934364315102035210791379581020222959921997791465808576187709797077944328859916263509747476267811922018887150840487916873778135960898929348010937421167187889506154178466703969618803055712117267998266338359086353155307261836133306180431311429941295215158126757391960501188107253376729011406968515383434168433537812660936469149127841995659021625700651769865226778312171835008119920343728756962196214646744467323729196250292090337652615548062504246687002764757061712066172519408331768079933954294211964459959949455063937629272394785342544252033632328392112789557370669686918475473095689936093939559604441322229324604124285466765802838109059905106161428843451623014874700389869314955852812352117092529966396771584178727795386187049008808514901942518743609671392182097363424901628619123691865778443409450515210673260206928895416416812235405340010958910132552697497996030840562241344053918119764548427531932695220483538161756559272207305380307170600906442281622637055033359713480812486908513471070309173252650187199178168571829310913410996155578545461956564331636716982528408857969291027062958592787642028517232671472893039274900792058109490232186336458343910662198942373078651122235071252361776774222295251140350008303379310160139239067022142713527796300564833184932806655465491882170066251760595961897774603029178786302245939140799503380327775185314587365908914963487507283768882896529549475513054378185627347165988260687028601905016650627451716455813313296033808547150962935275920873254147013632463170068247251385053975471015669582417922548268056535412342080871001287576400541825381615973977135512146665430712465940929546922698775095500100904520159283361171697384944913383295696375374818859132940553248961926855496252215233535292556946747447780831716500789439024759274994693031170459777936030133052763943592123758892413146130104853839573771236869917951584394733115917254916584682586825831240375891249417510869809615761545022340392082159512738153671911656038218752413682330325572586666397568560904514665165695748875468671479289828609401654512971264435613265233429913347602825274724557997994885177603052865353098774529761653560437601381685249992151488942303445436793523788984998496484965484996714835635937773330319083624918692193572226787067226063017309561889674680126306625473281708301896324998562911606661475841712784146630515780744633011644873680715885068123356977652810154899111967821322885912536873627621853856338244479317751001720125789037276412526228242520081181707655987700997191537111095005126761536942179772132524353688927918391486667189313850907146357263528681268306061968678346214370627063640192502966601173176522937278643663339885247081495119879501485880073078798875548301254357535998643375992177157431610881695331729267055303206096483809067690353806893911402192104855478635524743523036948820995907886700538204966536734342418574718253220513922752421609105567244530404779943205592552727543328117140013505098565934074956546691622494137120297391128595542277242091054678291923582683772993765100608508001850428959044881317847856701312945256382071335637700248353127182383267409937829287210907804220596040391443176950346228932306813786962635037670152629474782988038893081529864132369383956268214292697515454729169588023540609807393340080661230978096501022271593369451853173234376673787664106873117077641961488935799422003827615854591925907894019717683428380669509246216400917206283502248557808754752599164577714109735897239355730294578522303966611170234026585726272010036230902096064911135242934556510529944588158315933105760076251859611488577399838288110460532232598726631674909607820778579276541076325745536211923634380841039572476867609022642350300303058990769854310725878903154605003961171095547305107577217094209145136941578401783248654484135882676930650835667715479630955492631847037325716779365062017654327436724446624893723700994696391102570371837556692207359683963769480655867402192998127822742908911878258553347111967334603590753411552039756932846887729980487500033732250752096418221743851451249013766214887189102598433991113321299173619362170975443744622326570912643807704169220009091063012362292739275186048559709120874163969002484512183462838867893544323146539923287352065645289357218980310599431100695963291111762154894598932541055111644462320394609986110863611814642930221122787617525357365098844027677654544556065911124487348149503253321577422997377146306929199666841237924073692338337842603218480244276796109266444776981474785396367247085636433468747232505803571802809893974709331962162926107024841184592168680733855904924428423294604249168465129351263391557698269951431709404375171527077550787780499272469518343010137153430119476924217179967208114480576254949947076548414173467686069393109213145649152295775193710459327053523509706122281896332511942702992021878074738262217975022927686218514086106169353270957375557062927101828964555328345672033745240352356898414299519996053133096491937554401436863584694009667421438725810875237102318087126006207069745658311224994906341676462151823912862964283976798453462836684364705986735481904082022264771833738168908109341765191284075770157613685348969195780222866660348189247549780846878067584993501327224890174351878081039880391381803668521391538331841124648968819857290061497822664271649120430065427212924708924420106542315604896449013696710687345770576552207675483724843243261245885390396349041945475270181052868853497207204482719735122255394661820584173659088360849799285249727316610046289914363775750766163046736204740553113770551870328336176612683053607303108777451269131703841775672969365791108801492433705954976522971279058132081041986048554058427762092403276146075443558001803483803659010974365398796735853872891034776621631472156934428972133500474117721667619026866462933944886221367091990903367327826306608337364668389832645419053666431812132253450548129608418771043474584129181469452367605108892918088294880218859544867849630970034571617197426807054358185008502096317713289981528599868076592738416756119699899045600521315684167430220232021588611998287716091193249900273948348691802963668234078834312350667815506214297869721319324759183151767490890252629376880806885257885376384873870641246722390994528670268156707341382679849764932298785075861129980810287887199634656810859666888502345142375136383684976409864004471960126406503723626006008689047969601663146140365180780890285424975390114213912334294693666056690104979369368156113809292444064404336716442104591499933013559131825660948385122948401374130585661367626840122424382793364807195815902069034886930218433990662233766759954253927324323863448458447166132340707057775169588582974237817540909491109734021372131513413086642342295692238814674477036363052565546162864337651594674251366607806019447266385131765276672227054262396577663803229223860467733888849674902502436035961359860358211247844898227339209210998365530837888012831364645500802302979750860593329431100125071764533350350939716646401414949248410158895081990964084762411321227816209596931320707922852064591338921561434530770758042415466448719002492982015776878027902137650809663970558974933220479814606260401357786155907108221848482754205698158627129508845718463763152646534047069264691063246013795828500039803414314236561457645287934362995195748129089806393999346768345325694426141349791163775842216462443455473959966728173115847586900156994752504662290998573406847308417194488036201722653369142660575965137502948889810908783935100728358058841157479684571296119069824528420972316341322131356043067750581154294223768473080933049511542851993397311773817778453869570894686116040146387861719218588474346880267560092855192970792797029527977574097781465581716836702417266071516677306706534058227589403558500325255498958706981827981716641062703943401830501442389684159725730315612874413791254369925882408957947328210097412393916553123707808651768289494856531016432305673973408677644394827317099798646167661799116243781409989822010193869793042925400391608494557493410485633880211282361343727047983825321222383070299213129507158173482023236833706118516439072425383638157089807922519893413302487630479301508840568348860000391377467231432592624608456885764515658163684957260347038036705236725418613115335430878788646885263053901604454707169863588990417224074499443421340744718230588797281455625167680816977712099746668674889273597994123946618133689385642004275543335164186432326252776509630256471275523587806606211258354952090299274974933149390849308990553123945570859855464817967565383778260925570047448484695642479539545904144878158317404727165036356027171625949212504425307138140139326918405742047940296420668651201077277250841018848381495184947018899567744226437632788295068474925143574061161445937112414759250854580408870774872212188432982462131723325185842595974288228376651986904823217779345635145502426345852667197343990289499699002206582878099457218552521635366487093739575753059623097144598107203067436732421124431283244837023644010674240401330297300766634724042370465110476682638174633388105032592812771116350739624020660968017236139692118048488361968315575359171749859589210542813556961988706204510222937071163627030772391939645173084698969858950022671341176777534914905760078669560689577241573693065181536767009623954937323101641747160541187743888575263727056878037179580594268437812428122343922014068472302729120442531960131343002575915843808654490290760614435053613418624475509639694390331029891301262000250720560235019922655305303132512158845459164895243988713419674013720213634548498879303635225335137538824650193098350233009849427893158544180708955683937435412666161952950057468133522355543606544096156216217656122091476225663330789481055740177107506750687558183463943560339910716985048558055400495367711909328266205236543188372586516127532876357709909474638526032514068004884170627801564100193237441167159580172578936129639750689781686475901639868265445817638769978833736285576867367727725687577210157069845114999162195768479746745979248936971920845882481449408668069929481068893719937661467308336839112108879691816094700950538041102293782361094663352765380128989719881123352282257750579382865665896894387850483100787264676161317033416397726134679589947891699932050932306869736994347245355384538134693011888684691107583489315088323463519046342502957067140213981378928602288480299205300399648547776810299555630299507261373979859127309886402679476196027446558871735829543908335182216413372342210616894728715083711848380551061478727106207337820895227901108051515358688462590398950119068212398096342687281752921051761911362617930728013289983027857164813154355012741609301292843869808363625110112440309424608364539582602533941184283758831439882807739561311962492470519129760345111092969879249983075656646028994185615061591443658487688851458100178876863992587019521284515776283728906607085999871184606851117156606552565809356681007739662352610241005711127888274183483849401256235801723584248242640139136306695033158681495275190650716827217414293111019589464184004330844168335405352166992570572856043333135695723931319765318621703879215349571599642029300176695935337828117799205817950744262631469726977591158895233955638833049020351538224753498715025910794601074418238819440051786681742732131743481397741863695426531326811396473884613853256747090612470529029284600583777391086627099112912798435928274204059338087703102407934680099774769438581286309737526858534399086834929118970431078121988110636109895885842211457416321349348836566126841482383401679699821192958132897082443228094229840758793125018165280968412284216136381544134089942487457823496996927131069601738066086552956129824620615099652959825901405648167346866419478414001255591419979560637334103445746837231609812846306121709283977871178517852904812010759766700021623694734018510470624395910357912570093842348723892631685306365907691053304439042998248746140481000824227316445874012999468886551964302681938687566220477608217965476448543764069521303213703869159457928255234976952026175879210919083378186351004892949088103877823557550897915226226729385296702736676699165703750499048317912743152301374439516924492623741788428801022515632646607026627444557760414631113955303876641578414837907874465748041560098837704994750750898885030168925901871701571457659319212625258312248468785624165160849769839879765038964048715285418219732244965960790027465241481287734776112283996089657021788918164970511727058580018489884291727186308018311841405818777963187634207641461685248567546666384246786124339320149848727657210077843094969814827334353960970100564339117517279043178797378531042590577434698881058652832237113690775834020211211564739060922858221559485417018735663278731009904675314001371860081362615756125614939779106067521741640530281565900065680239866202001250514252699858388544354468971053029265023828549318680718307804439892097950582832707958635914326551527202096735374894215759313425146944343471664139447052763130778758528092626894278318535415261475233715532856098599752117820879026270249642237001446923948588959623216798329537045795575269749533603304695487513020044448442662948617627173703435140092326972383800338693608820187525617567494554673469759766228969940402999890369413593543098919420671055813078756773945527453879810958832023358930074860267214750305358511276012598710002631047453231433407517804156502018999860043188848590338944043641116120422684063258366138587409821037445081161962768846362427473330990055999944281191170535792451810015072340842279634420441582608133010417297167026488290706421218760520845712322034773420286454169922301830064971042347957897926901167208328792756910060092947152329866293458373516012220945454472578419625960981851177755116079170961467992092554226296540181924403872357575390415942630090197451094336955320938953710447926773867789784866039579665684999619807132775420897477373008775839735632663403623594387446503312304660378289563834214659426481143425057760911725110706621680244424975364739544379802164136936041582916579986834677492359228241394032640159219875113612100825333724379509557141968966647905016966752841987548973327797137001251568973365220174880959646657877275353012193996908458683822662081964854997791867385736048977820604067550590329596742961741645037513140247696270454190020742709952025200069378126817034016122661923361656762953321863341670885071848616033158888834265272776599503960835931059121534626636142615502129950698561369641233865988681076365421327761310913943253606376825952527363641552556653511788775923196805403270055424731097681792488346451672108312516403895650673776828777309690316198228383048615193957124406486821406444915088044872838526289143641245033615214641804466487003457102480983124090259708707024018971046049834148666443195035799680884123511186601844048426574614309657631270901084994374892966741218965129008369935007842400713258369117908663517431441532658699807504069565899722872382653578422867431452289615683095723623683380526408113504406022152390160483005560353517303146167888617711155285041176046502672148699002641898742782195254381722662850105012225493339289286161494658146618046519915200835153628050158182572842741604983770801321497382224761390409028927311188624249579686356420170508858655636131709275524831194013329111833166596122440127060366486808686489270440419617019975305289859304616558058142957784174504159400824940172062312415348671862871527553393264780918669040812510762377599286476227984409936516034246198348612472056534899652818068246418788120405979149640002397515014738109436961288424676118325194923768630091596611800633716955081270535207485978580876080097690722886378406724586716672306183909526432588171858877577080779213762988679499378773331583726123327826530485948988826198877955194591324720419993255432954420594924853106334094998382693380159320577047878874203011397937610232532138589155685281305769674144492566238334566467413768593263998393675258929262454019901072476899938476964976824706868916705663876502183197699129910455930498069548845398335153719600608763658968453775138349223784289411635074185005046162162044864657671316183733712315703888432496964982377742925765192259964480594232151369637187481892186357888068903388840393671183862895421335987689007833783140860079720028167830481959071967097560557302934894689596271951869214429315891462089358073165766125755433841451003638867995973832059135135609746065601250031257305365672524366612449446484867258111299008384058190760767989792696985821503631969311058005784480072309823743016554797098412725624925683660529011058997319700211788034009169489741110522834083759053453281467195337126164347750815255881434616806212824097540069650338060873589679158270525384116308906494600604900132987583514542638488433596068701928635131225894952389552831629029354376067185930621238153107823342985478442906735712964207881735239638903486085147943812825120859211010597837906797234783289833452304543073084929645612146142763371414853166242594489006564278131451579133012751871100370547102910712391591882423253919199037975466051226374269493649789460141742348663298632778686908857619082261407832068270641648041778730860091619747168748138358278206938936834220335548727203791107702482079635030302085545609078006535293124495853401502500540629369929134683868080361049401386781199827537532194791215246686708105087884372064888392907964731495477042968913269377080553489022012353121957561321901459212919013442712741594226467627329634605444563275610122788394845041621224395467535396340525250522717095246291305726659524601010489173806568661413824457497630535538967336900816528782403154872793960461459573387082268619142268905998263145963164363934512709088177686964230193262844366202226219093205916021682610068109876258868933492502335860936436824269241396906238761844003614251445023724514773948010901208194347849528892686421444263500113647471434598894419277424240846009212882748278023779441401294860538071891800827148828121019597288650223812230924372881179931384197348485448749919154536286040810910787973573078406505698976159609229836850671581609758687486668255888723491493946463972971187440743199182945436609264523010741323556831532438864117676085411215320175485166802204218261765961373116311445734872409503679951423577674598776319373244846358749453773576003640527525983833007947434628918812549834920412158089145804066122696738332140649963555492126479148945868978590910097764599162956570541137616009659538585944499937580058990702280596033791863434728300623723601306487811006016317281438962114044835279693261579472536752902711751356310286682423998696146888680314813642027192552949131526364390128694629412822138681363934741724670895499147080832880749906435568014395342210331427930493639975491570003112336815667168534387100650438403914832578468789333817337556748583165180528752266673497368690230046258644592883108826189433038009203451136427294276311156907404224008884985732342140911795126523676713789813309931793309653357243858353188580743018634159487314524143542478540910619875713041962094498125266482050074078937892706402961635535876614514528986231773589664827889332379377104996460102702879987608173921410692410366283095475931957291477942414521265511271848771521777584757398641614934425406217100385842916065611300273033017896426919831932459373504770948968913142526262420150143442832917509862687681189507103769194141218062078402402801641653909263274777128232335078227015524304672817400265293594373891469346716958778446247628509506125201816332287964213765363436764434229122318756480217044912420591817984303466163827206185473030177814418519714471861278247349431282884526651246088357663998599379220196863882537737174526203230316323101679377239240889996834026628218744742546256600841586352023439183205548933268646512623859779395986111384158288438365724650125494352819486989777631709010283056291010181381250423431671326836669406929271857916001908835345223221483460977212535209534729275491309407046542019692039552718400637487911678139870531219090469467423037468639974907210799705277594051585560289457280351944348465146829993360899127097178099905656238265864416664470144088182939049814411264908272525073390602440690593070543779835764440673791144281692133351607678221378935128312594680570598869286515904625551145928585487480310757862018103458182385787621929111833522553958465803590363689867047806900941088953786406985838744945381727848410549743200411816986351167398535847785108462993502332505506036495032082200974493105880582520006693104437855463694032887007818748432128851046085648374805571566774552404112478494544207110059443821693946609745861240897933566336053530549036493297596069537563235807209780069362123158303894096840866489612060518726449864829131468992362302458778720631731756349573385479130247829456732309372990063769147432504615739052539140545006248501494990095060727970223017768962533799871031358357891917006852208562369504448126420269175371297941445858404483982946764654639777487452395678059161384597548163823189422732563240402825822039750602957989549833097611381662327884884711048222460414728601365112779700346013100480888843124386006785448982137655075803027726942243655753838632674008776592348076401606061246094189152352391284860685981192489678674420808499521706808390803598766495577159162551689333757021020735500768677963289723830880769699162798938387535928931451226991240414428089565292330652788918233963792202759981671556190321155500685785939812478456601203639258115069537332438513536905788446998412003515432804600480667977553583893929924685388485195106974175707439123607367449953964925202130407668517293093622832324045529251341601167496895899136341994673367970095523740193984355985171372006506110520959852350897548806809475612425589301483244715302466538052363870396787367657583019465753422714994680447631374719415783207160822427895083189360619507584235115449382329943245825564160804079471677948346743984652274651736110168733813303887462172746303360545269371143152365804817872041296869779209751920034602270412311726180550842042365676914038588389787013582848184754207165225914591469685673754924587287493397445055516581756416526657700641817957486098384021533289297188504056476198914517418492557773246370155417888730315405997785564130811780279697187867356734187219318861750727353592583612155113664967326178071272425066896751685608569832895326191924822124116706880930404728044181864394813908113141672990782697659924794367672914446740276050615469634721786923428999408827623208994826473813433496013295599888635390996599899628779216856390137578623127567342382946464000360061367491757368687916109075594901600490665193116695728744339481592755680015714790912921629202338852146778480907419595725051728556779133579847746611760666860099224567325102364660864187725583382752764151517013080225438874023092030111825839468864389091083659030336980148705440323238373974247013992633636508705228571397279985423400151001795008153369316979237595985652836241740992064729539439873667834432307412206470012689613989383280142304425237637258238885280743969468485063527707721063389603442398756088118112925813873968597607647671547554249676237192522177240541757308928459892189866634716054587276666926609125176161955746543707871042095516210806538955910940082788021955126132219751002700041220112299582398207125279779038943173745157212599057301587762003584405723473919978446901477052724952677215311364933136250289114357432407304032445799017097556094956978250105644732602169299752437474496565669713636340494996191773599001042660611917221439798118238670423462797652311056014561450036916106115787999831222002235480337367290547792164198666414610991357905857886330087185187948070341138120545167649151862289251940675815421518144071066996626466546939575318735684786565823073864493621552510264188694810371677003661140172626414359109865843008504628289346258107439025522846111627440968267978058113466813142227552263179646629348496575902759251502241375693676610909148944172449606289916902982056418623630365044292935291308464667747209896108079445270430071910185069018042552856622008047161286504650045184016663160129424363709308416383998529271741437714451738357694123073238933446555085086846342951673379633962898184252808139601017164711628772689294458865821110050038750497397959058960410820369410647242507895337722580474065137863027358868437150577527473097876334207459727540270283966928351300118050078096114032972551104831595496810934710750744133828468265022942491543279825769750157543136604810961706392389239108360674061445494734655058225110207414105322577338160793964263257806711363184856099628676588891289302398667803083885223477767350615688094451977080667759895103560507376547741405903794491649934804007329797537882511421372451061817240236733088019634212224901613512480965374883237204211646959513327681163332396877841643712671008074675081945005786907926736222531824461161183791232309286695194121215292006136332192257103488398687129384833502054552356221225649472867708799667547498569975766239604790429352420534658025457560339320840762152836735149575520567866030577199294264718713217905710076569814492107536507632566008807527744058434995783832279777438699548889164749095291381643235764244188841455887838222770973656065267429697628896148090305303392046246090504653777349761521010749815917861210368022602176626962979093557266726026623013073418250061303526365623446685497986690240584468181794220105845267416666535408549801883514463116435839777678383849880189157184873372557855750370368778907088746506654928060705994688331409154464234148998668983600328658501634232883662382806657804909223673081008806395452827012218653655811639780600536502105652254755698339225305853590223966431744053515337834036198214202189950546768662658807299778688492428419397508955635476192193299555353604579592267725490772360726140954356460099766193478693983811649316321280156171355061988554279387592747035155717837400722851842956972277217503721007836622653402760773149693116828000525800833019679358689265544360904574766826503999707448284108603379220541340453511463534781592566928773683053065791983874061826621936376209441803160554004741988811952983030269093919718167198605041169058050059939872194458404890826312272898603771595352543910383392354823241610954312127380884786398035144554022649354411506817637073124256263406449193937389172187933794311843848663842536131614926673853979358245975032302830960162077077938638941980277218085760316182545419451180482941961388769729778174986892174701922815070017166137093412720224813985910818438417476526887409719995967310951214939163663211596464405776799573231324166696516211452334971978360187983905655765504271475914007788852226313166340720958284406971025912595616793870047434945527289871180940832768710725284896599131089112746619405443330715490246219479700216983536060156685149129158841547586633166971103823975684076098564368766035993639300666076423443990012860766017772363559013272253255107290482617037515977771130745452163114094444377710709983802296431021142638365698536767133946365504729184359406491900017849817077741737247264013381723460559964427866716783368138004425982199889700631564762286170233057719208064268526612732397968384948343594717969147425543661710467804233691130948378932231747275662372853194807823857381503367924683711420086939579326758366101624210034101857497638810593282992377971905570100735339924329050740841910579826705389275376380544879058011030095351534999909990046572957080834106829521619872539160097158104707135596369460438628171906566592607114195154493988330036159854022199122771210435972618926352777069883357318394837461255074792401979471708214912997997181109692213037255252518001386403984349432620725903834986289879535116414419454396734250282038784649466623195779190589256541260016997212911104470316491492477340106610027771170068426248898488531987141339094363176320607874467156475874578529873145572382158665702587126952182608343586372166181795385823768119724494003297576407648039325333974246132319407384170672894936996580590053165355839806292419266210752105297662712507776782551692190796553758919297371420913330863374918391571862720143397038754011797033748448027582321320613075889140922801289644366576815788795140331967689022220146469289416247599540027773173731660781020570951372374411856992152154284826396832633594776068514917996052944230973231926942784711323812640350427454242968803941576586418090765625847813821236165003919808444948449779463498822516389032093217564112654256838070685561380412984406932073853303400847643607181806089461559140537046920802226680676103323786427308127342719265999347994160068035545473998172121932397956989027711992239116563516818773864619435845485210219944411407779638385741147945393012382419782431580710491536258866394536743425647366741357846870671283304629256318999419034922904189759774346426540857505438262632243728191056980985373459550070313771660234396538276848786732205625582764266431041068175604563815804416786021525275125928710987584129077224216917176034940695792618718037221575120911105851038494272495315317609894148296148451810433537822859271223631245815059800250046685378693926517608094935110370169069081290897701424159844834031515945636855990333348955704533751116915306250715074470162724804679295295646711774337768858974161020986067743688663357487076037118409429908609740210182048524435990838029942813911016900859077929435265099821878289301433528514027760979810458921014532071837768581491293671319096899615094668509188415722277271165748858695214922086362004754844111430126683088706424693631186781032238925284339642833740286489867956393981633368514364496613512994534052507590499892115546177048484731438810172601968496721685595035272039977166134675078834200317671318110412936097344602560396024182430005819000567789093207344542732758744894015701574911952769131252267281962421822047086038450900595536977757971100463618756239097633058545313915998641665972064300305393975065249871201842769069001457324884344396726230818420590463445442757852661416711056540992923916616605697261792599894625967933413533642331893255286380178233145375935254281394903316724384016225402569282338400588170521103901077237950745142010439737867827259517532131476196618369648700576340732340517729334234478807396095809451002500991406984119091123203450649596936990367613369959218445039084552551164986024230473684351610715734930652702871412333405027373319347549949134231537768951201689412896626026504166420030436921902203113048145035063216260700456835506960333038624800655547558204098921925189363716289614350718945663958888047424533806498500096598726805580802858959284204681378641731673288089603882060907442802053237240985729626031951877054780430489289091732722909335320223589015417600912923958977584734916197803383878566472806115129581427917390987839285218411974832349000156496473911698485722336479448486652170654110695107421530414189598420666677471253522949270710266233076879439589220478835197784475953345794773893882661542279635955110173041482947974624540231057791814151123203123171273677233612454654742524525307057619448421105660110227112442644575482798915001527386123292280246069724374252487837373537226401964449019579035894278880046757408686758640695562279908451046435233240012998875520935916278355374662844356351475122154099921238208991857250732839095386730398075913945929790663666008238356882728229633862102498074693281418361866110396107433518161201314446711592699594332790897317212398890743417785580580671250959942561028648839484069786601880000976819039954222740030850505691422961039889126904314672743755962971775353309065430572531865077563201156380767628260288483808092344190524890011406331694506553040627505987027527046793539272734085050585553221220475351164045947378217487150652219993245446590187802422674737254586628753290153795133987024539690443657838391623427915729985377117333476438953013094635215439455041195789681399445004570271755159858355077113425466780001615284843802010331544164206393013765581279860075908459666773764524507688861250594678775421459249712847182859385490194736852246837269319003732855800747174872747869980915039941875668098055680797340118818858657214774816306234327250895537611738676473803661647852464454363805268714889100543200600247243391953421188020617046650240041383830980061678830361676957603846044701656176931351836869305799923344467595843521575843219013230164501629308083350626756862919940743711054954751811025652077169999619239756961299333269337913271616388137051287201739899065646367370942682596688829528214823436128400548041463032121214585660212458389562492953352479092604828907248787958654207636969066092516082642366998024304757579777264124586644599493279960147877237393731054062778839021103922154627440823323181950909662785613293729510914966917472610206701115903051930120044976491013988279149594841616271667212768202160761485301166107278678429514328688982404804447687681136590463618264719409912833747034058652367601633664034978815438055914906401058278294549483706076702609569208544066756894389899513117413999459508830163295100954037399794572201628574881059053225235251686346712385766157890149296343147118889360872734032489497195277845983922626536572835948011276832824727739810311596021729786860113734695112764574450545960192605985414385352808407431947348406347975195288136703168684698192347751755134515336045357263985900417688313121919898440869657586352514064875085031252546892351967223192254562519267847697672312709720632138229511136724223864652785593265342999956883002779184840570549053223360219148711471466994268966194825870692361616525790834808737946578405424310911373024679870897070380940799445696933329358288801922305627229724825923866470926744534114557416789264239611103530884771537823884354378156440385586254171834268977027961625353045953237886946507369558941183033388504227636054966567375473936541505219161908095012427109570095104906195283686308840284397647903669559669288127723685117498410966913576990938404586308334135778410904467153446582423113528797556335177929721573816456153249283239873308580141460166599751489084074762187386049931425487924202596529156983485242077810010022120794574165788799766606104291852663375916718176335304936576108471039873002192762820260081684276591918560691701485994563100195510189809487152855330218530301324891098033058444427365289366807270217659183812496927904389626968598492598980510888621495893763102362757196884601265535631615563787711444163693421923662617859226666417934956748157370328591889395448060908523091086748560732420847921719504386577315096267156169218058013548150805685595688585728445741764995868533323591448295543403368787959538982634192287559909520527452517269651035553524160107108407622790466393366919502516866718723921491733700678561567446269310827696929893832968071023925802598923991230784456957917419340832905902284458007938557053718949367847499363187229491054077991736213338904647133386725836710510892333073699696633284976900517148921564310950381569288195115529396274047406750359617881371310064025024653387654132465421646626732907204885375060135600832756970676755918977440626841095919034525133899002691665178393889709588390747197652587543969041499225582642724638240633701748997115936794126233508882146932812182503547730644734294763856012830897905082460488722358443423277906046551074011967693906427974437365342384436152712597685761863928251540139666046559260580526574842014337501702730960031542106800864874486439770046487423988869218809255357995434099866121616674383778421584970261337602491247369740957920027053633649982973093007100736618841167023950022444438309382355258546394289970227962478458101269428954693984637393784716411089950730822362463285222230593298385650451179719960069352400709306583204803939248249622282125216055263217290468191133293794819830777170804501452053046064815328012751615653305712593042525004263651699813294629127040482667224885754361847321011595641896999010532215525983761334718170978192827982624129086861692183766387736804633721423595389679907586716859597126177487729501031850893865694773060286483383921266747523948568340646660240951660035972227561687948322097683861195810678298725894257494762338289581071171709748077937561788135417051384361425147274152524809092893508477061403442352538297411380202630940930705494456517896586841481721384545479594351895016505761350996756856911937178254338191001833398442249410168517361094482724585032408868116316075265212316416369580206712983589382100256203719718186544763418423031176491288081447976474703322755966853105717911941684703917821170750659189525240405731301033161849235848997038610902140183916926170560617726568715278889309955285034486637825350776840083331394633204669855426431389025604827367475366917261079538845885808504467615657841759292749610499506927038971877914310862152119702318862015881981918176406835948960638716312702001921199523232649180684613795017875405446131079865595549056352253019056185566969147077431495297989790528292027381714811519080775941206326327172498994227154425830355238946619595579072005332340890957841981324125408097835337972444901571568604856806973784961247051758217554924827278806863636046424472291548905282723607969761742707251582343082132715879885571736554582701783679654255088342189364897984517281929052437472313498768286851543660928232773629869764590613857402878762014782174736802989475808186130126736440348981548007373890025166123345570982977179430590115817005045617991001419888537027246419214595913577997110847299238378853708057555488584458291747416032944945813602114268323443713113528803863466068256074402667957319809529684612638259522763055337859834942301897110230625145464746510038536044754267736634296890389609005013569323020864605127504563928363638806233970469899120329286714037379011386644796950408719396289349210864383879339338914730058894235490148164479017807049444219162208535578165032277911643236399266127410449711919438826197496871006333481904965033046296053009009004766522640038203049561858063252495227817349155809652493487822493032207138691257990825052487916825742500886671194407957211744843077221739183645848455746121574471476067480344218064132585021998390387926464890578640417845730327366056633976060122077020126408576629489346763794988092774390460060690576896556244535124479187195090253825148750901501374411245474041534071218736296143877944143129078272831067417197203245399133082572284206529088333727574681909918282136234946078796191339453292182736456067239502035577196889882692144842640597517365359886086648345897870349010272946149786884425535939816873265316468480792909095509738541176939863804734684373155049456122327696817397424979440918881899748483782786946374113124005554923790365324945132052943714144257789330606138265832419730023127386056053728104494911232785506112211311185831587989963600802698179680464846750682104280556810636899069376812706335692055916921715151564376918686924958361675564646187028385291505166066987745487974443681121860351132213541369085890555129120004447999066652793658556390948662668602171408866365566662404450418839911282474962405651035004264260478847852379199162934249583775335047099044193718993861235506401099213880151439633975297954937016984953133841441422586686138486768108641859892640163760549692917486123795544066767466034447878510947445519005323798100411087041969190936278437314764031680595468321885882215517796606372645482954119913912821915030467683377656343345699613334052295250625216791910807126514096329932267498833047532764241867101541193844728763570675110799285115760417632732931277222072063335663325950590064164901082640734993789234371167111172109714150981106449199289785545357763496927208227598661984956001243806175340218508797521427761891501129263608092296730969536438124045730943281046941401431068707226008835927180892917073987815681886640130936065253789640270499478743278052319629800746415891366468311062559665263065552675504735912175264737027524764169733222521845212264834977742467497521463752505641182569318852673744238980775659338893586212058475892725028231052055681260168327414754953983339904832864040406588740080457864107106139459601622584608118384186802332959308810067478894772856575627766789580407345030308341623939407964089589581049918970627025248739740072371161159983936545731803469010643804000064870208321295245971567844926199683457112953674720608746978503657039921118823057152544855034232000754976651383428363194857204106449215025155279866684556656655816814880823294867574647235820848621839577102758042863729531796494935890943072593081377625920001385915108142979553107243482997509727551157440761784350849240090911167049894974236536790933811127436008002761362613063643016308855705927661292129743902979973393346948682469008136419890416641689775077663291385233315853070288084123447613545402155869676447330768012529393350443971270377992052511490471307898538963768055820202579080611280002647996471022636370715913540470875395252517424215427578708621876830802892350351025558867780902234203611415948514386425080947545937923521997932247941565414659817447745956178248287925477118866538985974053889861903288550251921232645754066012590178817112499424911639489435853761013246153860410563271646517145188951053990978194909818683827797189717383500855049196602290418262113329099422092196193099255004991265371252768809347958594920180070364572218758603080983970952079843906859249093690889602354561056815833359959452219422776503489250655883126618294468069540972428227192965407624521338089895437232186227542537003124806140229143873948633201083905151960647074826461505849675660470100135016086817152410520256673735200979713841381567280260124876785754023508708349000964294342839083036166737440814616001222224230346278293668288231772360278843317680619565573131804854000150863781259582512463302996204982448483234686800394924841951114992843129679390589168072918210920525844823867298318822754852936154275050951536305058916656249385012941158670581700961200531989047820732965311139455905468623403522242107691210690162273701503086141040407674842353139288027273413812476068922960768375602656348189584018106160058937263473711477557340013736544916306081772757879387598761786591032480180455073435171769232984532875875254183394767437532292218910448150567352754322506208577894384373841441107477986494372483157666596598961811591518352440689602824105617680143218882913456923999863281626470757198580523241135854789949804752729620713554866038666503137518465059269231168888168493347408193698280860216721612213534916174242236598182143887956772341156897178595750448762159824761659716266510501525689427790190057983588328553932843710695263710913574977849811620465595778234449755164213837745682410599621949791093461841038272690114852039056377398553624258871846897302549612599117039704266638965037870721698544607699983268404938993391216125556001876141886204658632322407090968624245587797289692344779057036970865145208116272703398157239688562137073007331649788634901279188582437157210002299336459537515677982608008546336290315485728875925720385051875666132268486897607611725047740656793144071689747988831575229251762691695765376016350316350851045894925968517255708237844083436693621146306097886485738566640937742492967502305419213842271535480554167229990157394461694669047375241177951076926028355386435605238645823983373371908877185358541393408187376197142360468030653416519622481844649073838069978373191749472791247189480920944074757210606814783020314601521221641005839938617628526055162053038330857027620287228897793022913408087376950286620867069947580641486095734620954376389678795384212062949692356444904101350742274491939961382054410449189195080032864601246991799778646285759289951958361714593268639795687099711485868063023270812175868759874324236263227243070739204706372952510136383684171826811539670284440338749397741266317753778045241771720999622141490680961449366272216797026122693571599784304980002557156565681318341940194008682362417300378434596077205238914398697097531699929816500275692696750744667975857569447170568534014735542167187756998946070757333787713909405538507843334951030908913929428629351701371825702701127736749110935995347102823259610446881376032677062405326969111330846677750559606126599789232278616987296766504802910712588163005317272305197858721478840555194042003820702376619951698114473258199837780190924239651617152048779541441322628300592584644704035968248248635861068709758741912130158007934557943287580444492833050516229941681472661895574337152319039522785140035636577800173456126389804815196382320898720568785859318370977214921257105448900952569010545030310475233151307654884924668002789671160343954990374290641252770830833265264372402603073373416195873072217920047693060861512259411319792649462503863483870703999370695405180572663424684664511293721073457381808823811559076419386853217124485349072202681982624116231795513666377865345843428394624270657852656114991768478864656810003782257168599981636407089352370196026768662440029833195634138357364299314012032516296864507502632162143157287581572075685201933792122122844619109174497771488296033277880289805372627812122820502066920245602327582201587129829861895089371414740698254015215198468178094820647085887308270239649310954320266083487181164776205236840145607035386763516122625300614747930663737531067533934588624775530804030077317369829570582366319461502089893360618206758793834666072401751376216211425975274464620666489291126282841874229748761833855747275633504082229146973952984828694741029998878769573004517949550605045485011489607947289038000176469821690096891203103564832929299524243787364966065581995669921786844441968589773363764016015499167004926931853496331377789293816820827916186469129325007342905869828606639220885012811777313117959382091831332365651869976033877215910638052964954599064690304839957964379569537387263200866122658091861574036495228876129487993459704941645418646165873989975836716975608921044167076088069066981726295539272424836762382624415818573075399872727927091513327543520389299327417986338252579619291386830527824640079405431674746236835765732938980473289109567442724684130477332446291962134116888312623407273972936964327611934403052638085595366674377265066869095817878169018342101007627876180655321768606605546906095760419043050747126727144354253409826462670150218689849597802122163011894516224188098322938489452491466921484302793273707574164073062549995087358602078466137187275339176083679132039559207926763193993063475662368003188709170017702508376838855209731293120642768339962555082405183793274409206439611872697438088646604929432354649160682701627331128118409449386570992802818378654201919903381667605959089563459027495643684795249275124153250080050492844421897689464136963047663359741940118366417813224322565523629642762911630439728074056340052846974852327871596745833002428095768654154590324752045616735515695519398367903591378715812153512319410560803509281400730550563727310245912833829054718191687096057373983755402309569166742018805063741397870821241621664358615594025266694314723498851903314836687008395733930551712498274356954074855024107266066229485255190609166301238904974007499929655396916132771809344015348319188173125162722901444778726536076950346350959241544848673582230921325130189520763470057004397175747972126656712247064725443398691195459661243496156719716410328384027107776593506823351398904706482239177616469852121838799160529979923480394536673691129401626361768286406845523160737128424241806067786793460808497849912858334264322069059551401107750125950957260345274849404053638154934152707046266863941142697961787160036986893099930415819388137885894562960639192709888477579502491652609462293019737952906878256144620055159209286513376479068755221111947671277400821089443223309468890524986461538466015890541827570642823094735704728510056160597183280492665936671839103755535820044455787205878033446747857179459271757370340220144162658593032194265530830354889674695891799419973813017099529469577495221337627248823868720038016495659691876666301748839970337346569343340806698660774730016384806984830006145046166089892626929886551082950484666734997530929333669119751758756365426404903817147062457340571728048790946033371142445049553919481225465967339772334357348046299983912130232973665908004169357017420761319626774271698804603723956734461072408205180848821555682079306528055736903642902101575567742019883349360008508365382592470178239867525190041031439294080550111871006157935798916594088964667664180172279755694524300188670448342861940035857429005209697485811417055565864425462157199876832414290396671528799731272505066481345321777255596239370701501130983345144699791841785812986190464390291515820389540036800399583866805381436021527748699800579807182377136816409528595205869048422301171594859109467776674540764837848579022990965937662561129973939184984217986404626070127678525085989154298645926283331310972458057314142834471531755327743943334002076256262009443589220247637224832062513829669845031876275599223627284592719107858581464802690721724101592717171593632206917526187381694108079042333206681840261086751245446520354127263948542448739090700669356028911088163834074305868463322512407785232517517122853505902252456204152812410347825293261606675588145146006253015155091726806015179470518124991106724980817326123709625687295627352857250538907483994270442181592067742335578051776179753856023755061862186723865390447225582386599763154907785047780176904107033189785949949785178463702193445742125222605835125101191803340443122089802703732765177524359432327885791571772688246414381414003430173411506387274585611238606437985844412506767538518810915698434799755010486799620951668594396138661328686895092665892798411632365552048171401592196686595904120455562996680270378203516098213063054784301693269028686074535305369908559398693147857216564961534178229882395092264659702636750313681010376493929387501249322565008386218821520164894003168012493265525118151449839497449200034930589934291633224001494740957433932166978266702895834775767547310026336177796307432380338580125416869258206539584994481590303476686350487488381256839515880741648092632034990173801478477286364671419597653522861717056491700909916012363084136997362066964130006384633510761685751909071427078166726072402190603767300387254396907240024801457095474533293501580768130665719850704714149184215933062802904131905314763338914951088702461212451289153510389571703747609078621377799812769374392963658751419874575531455132036588755044273567573807281443225612985413163256603572033110802964122234504125375598025699541301214669494744186419926709308908970541538446978684432977969451543173060126541584418530936223320784628121801723462006794109419922977653499323876525295459083538962714757906542328436796066845547312858541325301210542689329292618136354389243383926156224048845354920292481308960232647084228656684032729114267906268655568853757880101431692533138746621050176627212104848647032670287273690528508926081521583787161863330532580797865854437961645137848874468987522017854160553120129067436554019164531708332972267084375530332763446066604950256032377123177162754643547127763246837213172906742471194182386728548873399628261313057998534091420144522990696245336873991610274830886911962456943233704594086721373512426270494793668235745996372395193868100892875548652730211325298127305949647121546210675824417434521146608607443393921768246775471569199265245744309322190207027211942258278495354149770664003574961944671041248520381741092358340419545740949572080086960504732927831187862188394424366450247784088864008391588495969472049678092999190525827491657157553910336995027713923817386619284624461648584525484590597398706357222454890231895967788120597583664255475412035458265466383987660479290577763421665963001971087147612654168984823253505016984422951567751740712176312429977181874876416048885083670064011322908793378135401638827504853088787874107317109709570139752730171756964148436666658249210510082426489010727405826758944222779474066861905849874937427550320412435794136001442513616139552139691332247252312275659803538272085920720309896990757175680052838848377641246575872592486247288883914964549003458699934972527317113846762076406604283910713504692978087553524814098434646544300295176201170070795496633312918007769154005028542753700350051645632511530737658833829096310586405225049588898713901665393600636613005387197706706013454795893255301920648071584033074404779693291246302050444326599410585971751788807337153091161375727103087451859945088839833748528751298531680071261860790166219925532035279042206866364432536396003374476010840921805303552756605069854937537752863943505773473473927428655922317260501322137893186276537685433213812831357453496085789468897464401524092148139887137063581938877273914827984649815357663328521748084687579135053530783388710514947398852995937159841242716605535491609504991367342933135116297001025887771570885167460323950863273012543926086068782976980381370116136705843371341438231736943979951418867379427764748407991164479530650826700697005870224966490762544119558975382579107830748653725212932895976176021767564628745624163140129294417507068955426332451851977003228161668344106049548763488727759958531223208997279477836068942692084794994201413154930735861500988903870867350919749049011862093051139906047013362121975467552928419608976246623980073435778431774785113106505728587957208272922515835933541065568060050562054079367742151459385331338590349832718017521408386534422926569152622689147780540996728233175335695068797162216135256389100140016756732073140798113180459450706280056293578390822384071100650275048691519529281186443759403699739249300300637260571577631775002063789278276005750541761628729254481050965629472546296487000249385114212119399770295106830516248750495228151504680987614167845639860963176413272990221622979105957410132068795871744647457370769848047208155415847395887692241249524138820611357173950240963783562639251280751756359894960559299081349145298772487677964362569663123191110858191224057474021240417761122574539863725274401036215056160261503246939099528014708935940094637022251284048944926861719285579375279155579536191540632177707807869184977571344550133546309077610820494491559976948723672054543556502790480219141182254001064299203610464449599213001697377632377184457572917453591943275112099650527437206825028118328207407909601261263357240406102679621116778554743125222948892465109023625901195477826891993483635657378535948353685266187338974262001369915731817517156683614777172617435133601940620777209050976095873944226373951619128264729761613891886451834291644331640621076726615263849778809738280952815578052200590858093617423192322513668572192339872539404059182264319126827173947815533823671791656736510478511689045568432267148932450084284655518205167502468308065523521909496589953728079034462355680413637117924897795491886512638722070443769190846470219749697242926614204225890547301295689746602000672441543043345649059007058914060686778156450372987068708525969283428913003847655385380697511937959874467228767559955737704509618137977788317819080037267062839231631899970461912956038146199633634532540204004436873597373219444558324345851774034565623593387056326920006014052945976730633532373212040914966696080059489866638164882288211035390832572221699726911193982830581390420450782719519455306748978384410519434040789858220877957165345852827708361697844357829502368102266868376978784242575583506382963342577325826226021507960455324472205949419851155810852845688153632124095122324996833565641233592862112497436856061339143516657511341196634983909665788537377406445370095646297483975773703277099641166498495627676171637024825693718333110491672885987221435196051650289464967190831909682705257842080435342575082482252036669415812676598822829123969629558634954021111699387542083531345055793008212286775821364912083824249104777801452016975888359620286411628575756051142778451334862636208814872519843923583107767280834168404870866249303589979738994614234161877403833257155603453891877227296370364879167040657353281936139390672120791290353680139475556477910385792857727371177294275211843527800190641262706159561716344001466807299316775750989161241760146048339785148854960161730770629408242714012914357159548459890869713475186589524877616081976655626364267266101398490904235288278334296705742008427973615780315631518926921295154621886465492787043404936432748835654573127421813945333488610360132335378080673641406708612420737957463015636722924691558932064313617005519466734565986097783419981511958474376125173936228429656692507293847821358973485397238891429116352371964566287678301397607051148694964439023423868594247896575439654893463116850355243711181675165492889762264665729374429824586584378801753740045983185381166191894557192229351574234290156678615818788315404015872771768249479789274789641025904091206436578162488679762785201571295882532464965430155609256324401227107920829257917785773308312175128282783140283418291269993296923998754364314330606201045937698768296669240382713720497537899287879413264674006186212030415879902409469185914205758488111496799049211519418683053815394590735634197853100536775325700324053022406633983450807017791528227076034265148885479530388500107940472981765583920613577433802076470737296288016495113441366996494478546230622410918869684985180191382987636888422952002723483876769764450962233100997575919969730331818410941595906244840846593871533060885827996615895030751132724504593549983754291943186510421068675191863297214729143577887994844413572702636498798292765651159348266146422659731246376751894646622925117554659808713805546058607838692482264676340180298280454945047949845131586229976415687966649060743343186412096626706236596989155291584530429515574280750042238213597730080962516344468247573265374055861761955578720788948769518469555314885102436137839580134593281770170730754828307951620300741046628533548372435198034605406876941969156042776282404758322871073112739151106517464761529259520468150385117063316267447004493529258938454333383136693285224905759522095951276334961764702073168502485839985985808294550200745281603505374937643886146696982334504142474547841487514397915327429157846124699805820066003655768731885791324676906211589061145376517957818357093883679927019839596562241945238719441737383375409284584556665385929835285847656565100460639787074481908124929274079284513401704929106931103393734094977833234225646782994819305638426675494967941389231384948513488052742351597559764123278204581165126683074305547979307294867818732545084881206418318332162432162530906078862547692388550685166031145182184002532831168815014468201076310214218153157366409365593959367296348767657531509330739710354200415679771347126829220006270600511181998898232652134621279867199287045466078568257548809568488701438523274702202643852379081902667071808768724525827014702342329907725545742843026187023836207218108748442815284056575773008450777905972538862221128609411652971909458790404106073582965615350813402755070922432073730983809471173509900515977893187346207567004590268040482380486512980535651614440810272847454482524749492426553843770365216444929407876996832703826042874113298599823447496191382127896641001073214293768027937075714618567414441187932238198903144916997529546530895076715028218131032083472171655564373425846300237280845603596292403066855398878388806565070892542527266903244815665163313179683168735657832859096858330090655697921656737814345320851119538161660919958518353292093214353040010312105315123131851806354603705321807234742503918527342270679573482124130628367673047747404718748669395446586998563692108629534189842116654211229018995703815184161238532136015323575222469435436913499945338640726542570119913591185736885132982131425983593062303136901717804584197110222253933009923803478507106627493892177798289810533464485609146926577961145541215869632118389083191735671723353469112776786519426788454535069012106779835254959127758517018533240378678107082630979328277898169798233162422840745842391895959910940495877366054931505460044820379339848444233609124768965128787771238282862039280522279193748081733611839074899620052576232644396066655604279708293085689558709025883850372415772761802340889434892186193240927121038970883112311038356327268620666200834364040308876997896786771398040198977568360069467261712174974074877018850159813594950442666499651030732434707951363101110451166596577900233821052330154065931870855379809639790339453555436660996963521358950169240794303335419683439836244435753124031912990785184512324583702589707622293226421078907075213726501127885793366149061033779741012715749779332541378985978304159592178823201157984502147408583439901918399856589117012976290971783414302662121766232279027623481555637269527127673776403110740492858887049900468477662711247132428595499387896932954770378088732256521620547161380758446266442803092452320555182121578277645404297671198139146658338670140096304757540282433606203816812854840065591968306098029891966271922552156573746489012694777422900552548620856191869065494940814066169731612495836275652970562048888684110264806996196648417936666050422440812598461948494870865638183407127939529397871560901676836793618833883001579310477179932954269012072118865017004848776803652291555543778425996545772005540833592962189983206766434224319890752292231691865885537497660311199921873127013777293665746098600659749183619252396594323688955604112070852699979838965860052681162404338754502370096095544757459309831817390204741390794129263556128953597023629282569105389978429588116163489071728095024934947456930828767565667418414157008180895374965824622947515264714966236029090091831419506243642642831357340412776973046322284118736588468271536630221774177662558038223999464042414659911234191137598769701550205842226678778568501685007759536846989474371889340345564972588126256527063678404935641686906588162794392199202814570835436410078541167096623674701602633421139826895375773510160737440463958474158988318416810732188071560612673521556088302198687639728075498490864615532579308033905786555847719001536959740915402704962407761301652365203295126222754762345891607396334512774151560444629133413440054943236266633191971733865922184573592085631998710031628937370414805067962064897894298748138680238284435530954538797526796142024898108763293003182148800860367962142157838718530686406515619331641234767654858325527500767496644946938853568660590415757845190807269345938100539055736997848150762498711674607476693686303752427708780411100440933957857165216257256365470993944984527060930278258902223658204794707344393364422994393123729548775428716584276659380895263928447279908818279223681062422318219405750343834315539139131279057740348773848003416355402153445956966440911728950039746077999662194165569336537653122201025072137320136538396927559169178823725169550928528386050284474054812292772161514285347223326811632663585369782250998778195320409969653031114197312389825163902859723364629711416859694825207448775518288079049606660925874799637414670427090273083293849803751636849251208766473091686303108452268585467308617824054053776836701977964769485158436656212746086667212863574408689831546452371438336035376196304983231492053835857314623600553690997366649027733733211309290956145709161045295190318882251698644011007998036597866927799452605829243670815075876360542806196414328370270607612831090277238160286162701063526583936821701139900650580750444788504459309325442729913503843554771001800760825195050848529489527291786312773655833003192959768820303801024497105478586345906255873633533339390593996151927584267516412785093324925728422919514736725714037433302268434218892344058909123496946993981822356172565609632843712629458734969022322383104408470794135684847815360938758354848911315076462251646660174456576789961179805170152375434588471235375132682757979243950243080247720348212897549560336488098362233263423272389358390644069743038850097720384669246929082013018799988097381105897035430907411010428879015775948943289193789128943229914795669467638643862003359785609395880447577032400043981019347744749933885291862367913885462451411285240727189223022141989250460989231877568339154571410777580256580771093675796385426516349998448849107650013342444572427538039408939768447337987625867895947928425879951350459337430483091362403099980201685281102355992967217328673958953919259323976472456200769189126590073547524059530029342217736336743801401536569312365036075689906419035792085039089411639129886121684486029335371891258614136422697294080967204685004136709649743733234386276203285893764313606837798706950984218215553099972673145873425948376025477129743972176771263041749867454670633077547120871905467346294334567827430285512718697174374560916231881732903876776741675684963714676470950737262951823760705655571843137056982712771745626460834184365453095331286047549779266489157708114017271069509124056692118577113145552200385139883340060340281908020827541508535210056624621151328441673215139833633037738750991031550767437136998549662595841052866145814084773148122434913303587494540413952333781083236899412887104857820383819250804753079133527086425824334902632110375785431809379595562834936495903114933154061022443499123369805173063823424750127001332094628463682457429773918808942965856746851652340703529364634959913151347827077875151812234688562636812095320892550965782109881280378319655559750272138522119307824291556349731956717563120424644286076115782050032892850162140540886915276285820525134923098075802210070656662328030156660010282813257413407405113142750677352108926863776371303558673509860169630397725401443006342801270855499779931820622244092145918882473045256099726877429400961409924115557195765837469672726900943866007739804178671489957610365131733459636260837269018625960064362167824490073505260551671881579755935670480691567042754803689139814377457480488008459746082928459905599975330120871762191998189447473654562245673868456665118309458172379981960706001783110572979167284238530454955308188160952616679529766781952303688408064970302693139261722102015773600814284616034679347439942510416448670912590259435495218797875582591823564568742513897664316833678230472073301520190549911531313855289386046588976403305868329762165305859412825309382651083200697593528633582539080616817895397254136701690200679444224031912589566667451638608418699892723460897663447486344163623297481836154806428103898056401431522033021661531127474531007223814386786273338877063320787557735126304436632567055568530737947006614634114104586962250769635940997698190135239150071096712646195923357533090410839519054658788408731701943187515856485087211145644902638106565108970799273012523486016421056743571711494138645731034597904694761979080287418703631777245122131116376015990562774077884168710748708707666214432766523256859614705353185435148944344009289718323578411523294768202541695792737509435689724546277058542197723505063293996573277808857433891635569234822156207241049957633111636572289308213613866362839521145524129282819935062644108459155527436607749852677505861151895452636123821361129319933651062848559836320691874583332702295192956790022055995735508674444262211563082660855650942627793855750662088699633392372144293485062224776599155698167946637798946669018482922562543498562058344655271776972914857543792005658843811541707232017380958791807568639858917382360781814820789742815191185429842538998842184564883134200835725398997967626859473592751875187771834006262406077900081966649801265239856714965042803208657822589702827497671652878416419355828887232988707069374083237724637722115577954546117677825705410070873817716581677678874760396349476431424187509303683561884539017796135470637985577223928331932392113610546051422571583120134130058231488561386479273317802226471534630430279181345712633584359719480699946138378487651868685469880090216649241158949574508196593862054734329320155883993683240655669971614198702149686421381513300681755596421172292204077249393464631320472261791165452242395390271885769341402098953523985911381846666439417864858925666470315287584906531381341038331126510813744919443161608227762113640708966491739763514842329853311591385655856033737420245629468944267860098850721222676516016240262245668726496068065034305376389834480444949301148354662830867499684299229839239680156567456538327121016750289119243372143429355410161544119654363821221963677502724640926866418799532724537754870573385627664147626631107039129567235316979807812244319347184755592523362842912482585369328929890906370872216691543061361258587765069798321059178043716512841432339910535132632218936134319124444474960421370872492482322024020783280967058916511482657698212009520178205996054151989118758685731639247942623261331717489006254544389904954260326225580581669801178636115216861969575141636378157326367631719391585817166736471123916068805243428158508432193936830955368773865684763701041054594254455957575555053420610767747181328117116166467141111505872928089300636453649569657924925926828681731537952404226516197508821224904948831249433706812856897803419156065212438788638695098936073317602085892207335028598848272891035771807450319440186465620231306093216710715082310142286789601824032603191378330906647611872950576880653228479712445910376196904371957613749396302822856991984567413142207549113307616699691029185752456173378612429210875159116823667103608746714688640660676276388992802292556132133499091500483447782888537204306215500988740270091394177997559415115518978846205060603959981080900930756145218766405560973741291383958066305813839846070130598829387885340672019172170341599989263927897387947161140483235277567626953467368918818358113914429735010557816985503730237659153139497583762618227440036836252724336436184449667885828256178762591789718535191717749371030125559015648344163471829980853913712768194405669431816407169942598216951468267940209363426479256863703817245643157856340400482612982102373868467884441433018086358420896152835977289707418340724124380448377041391465860128213998325891280535132333125023073047753984005342363007117436601804959543612250498809188615008541400322344006227003712813576162074622693812689689372944194133349772404331548042739600587553821686074122582497240091009207507314673744407974525973354455006008423415230560141673293818026266134305043858924492906518952046461025637970102108642091009123374081502519534099704029401052933353464911761183366556129142974236318260427676280645389639666531292918797792874332916225373891262289947071083739419682105748514254195532996521061033928123258027555498136746871427943402865314812425751212814293952311819023754922649289110212238118910239467422877796803842193907743244053173089758026234129060075513750896536987126350913720524113360082979695868287343048256834251376513542268264405136661865184229134607884724044733123769691285609106716074972227888209747676111683853444999384134195785534310926702297991002813280980453899324067274121799500439219684785583805148111444126154179302192053654901909378582858312079561505139889734336795001838537974652447714161001727921132257533710242098197207952038036375768126268433343788468701351233703651085398115938533002618002839658760370478421643943336956767217103211124550202476785087774786929804799075379630522604831541845871031218481502863270531277037156945852193034237875401229596414464138755855228977975812175767320949908045036549357621564031157509363335228691856633841699432932006861252172678772353954461021852372386022892187034137362167515371236646822929160415958271190357190420397681416374369381886226527970973274398443673630704958229850496167921272622834763516478946272902727863233648402911173417191935489821539384743713688425477209897285518934548310948548287370101442564128191290897363839601133205977867360922022003713830236843819935483936727504267148696067869312582084130346890918570485457201845976388264485696106403570065899664586959348247426169799400851376913669661192366231418255375605371343568042290801944381392275455078015493893448021864394161118570706645957595203980409499176686339094176618619669692695846375465344423620710898034518681032292102185115577028617808833449164087635745622295309007880008271600355357185938690481102394274930904724992859600696644640278892148174651742786646128191714236225223623942611857968427361299280125820892671592722877036289450202434349489092941708129635969783527713148669353575764133223580984647674464676642536988490716442220494654811301489358713754627758814618498318673356504354961781239340282103804705481989903378188232389963990589488344232419795016029701252791421853005765175161127255471396451714098560799746443946764520670106476844587973239501844706313021107579331889352244537338149353756757462776568252817491907707877247513547386653128055115466538804347079685180294510340322010835943947968131096145229094408768613524374502393349492318966722162549581660061883624958936892533735070938608729964154759222576728046766449004863183016700063975685604951353431342428650735347891727123253778326635859350202106467271486359521397657602334378948616346613755930691090418888167722154547051862800083070862821279048338986981768685624169686900432739830487891846116369832046639646511856956393219686323852748115123428614499620530491836113410148917733497198165134164420645940062093563988761591229285329912397215599090088412938623385972920532975353609275658282161471657628156782858697174208074896087050462621540639916792788219694247574418037798826356753506160891031218716899415307832609211057663716824244139605611659879372733997660766467869608272275368839106415803353136295059543695771277683792622420069585650327025863055838805797109073036327629893415755850392049381573233465697989071956896959822131003385335474791519883796350069580920701658740823689578556154332382770579815235265535382779760528864362453559862472239503850836611696728342145544003903039215874121708340990192724723053454894437760370011571859904462534886574233501165254170528512690958448158004369724296844499447106443803550788656848760179285205076571510695105722554592419574557833070235351414321911577828195114738373804800026422185499521258145841937936175471743964467941991974789546005050493207193323153809042371401648215358354617590416146212900846175708934865570538178686701909062842264073756724225363842125232958277320486121588254033942058151671521280523942750891233740514254379827264526105377370656071205577433378492368667685691343940473383297672098270823278630435219894891726021611849477346697583110971289419234663575258759787881753068359833946187190144647044822580734258310017134530279892537185383741155369080758507406543164531996369199133969443991520731652488513039229378380197244353951498748015082367639118924217261631632875627428991202961014774436808255316955361196701011475427347081829939180842302562671550823847105391156739768129758363170901561443849124784654103458452117795034987952384704187428105329997468254771013208149175049155993888980922478068152940550410451431707636746205031990503962790551573531906424413951971150197867176815241767945665477799050979623229107900115795972626621287670231577048699158918532200666535429131021948936437622374614641676409640576552157182824261978081543892132161869876231164700696055612557263746432433230072169565897796594834660825988495220557498616206277568767043861414105709149782319988908847487689655204920853511140708992694097605546700537686460190710692380484616084070194768266835856842164589620390228236267547344711824903157292441108297788084591059461553789907239322710494469453344258349564132812506379373361144278488188980087982487519421731291180153992562647834938647474808578384958494074205001841030876121044845623319431963209338507533752057771951178263870661250590484688877638851707003247118759123743620776668086284307855211190857686662393921494475567168148711410288611792282246237427638779846074870460677019441646257525430753966776798793583352818588706654574165710551635902385176230127624755369586969971711586655374044711054173792905363987506405566314036193863834994239562444140490545026038237365725234175223643264707891701684732761282312217875261660722660397580897697900958834676510560525887053339445920315067693366837876416506641136702594091086040757720552335379551524660725627467349785573280472277249937753843560437270261040885978500808728473282854069801264816431727515260879416699666874051189969285114232795480641440468544396547807980066511584343395674273798887020039094245837581535447125308094817678945660296846710319595695729290151904542761673392415898524063253476578428389587706882909807167934575586080456611737916058753550623359508188034626200208372305243260942667533877260937817624312302395735732513934839623382212682071034603462116400597926966736970246992440012274736115796234208109640627781856698520699329881609346406182532861280157682216274504490369581117422343230406038449187407631060750645391338470830126230656448188724468965148687181567584466253633172071002120914953452616054149169957013724219266040073669221756262219808201370863403575401487673097596756551499755304845849918258044354176938656943614159865732154621636496707335344899101588317952138328338447019449329723818181189037874976534038011240806404829216685000787679273037833597716517698999410878658624458826039877081582511097057964525935721583711081022109203604617803244007047435328577106920708989500678325570075619087978322573641942703977396921992869841267470884159215740816747512277877008454586875493936741695799486586137421136551562341559932747028288888216922754556797368665463590438440095866121926411806420050721144075057750390780897069562585814989118311385089227606801223972729578996651260670701937331030988893397387058963965909102356264184256280319714212465792684842416242461499081218740966678330885449776937266141057664789886327038829844993365522743924541138721482835199703493636312297612737280523724289912649841761816416251245391516780085798148851608319024181802188701342278837576286348331938123914413786997547206696680334574320824995299144976391876292676121543055016016841450421652248569612250797013132035889738676742400982821502828976453731381472197071310361897557614739863311861642727345794163175371460998173773547864709717452890561930564451910122549689156700255161178091249770122773003129800077491576570881864261094883238210423733688359961739234537609251829719520536028099100495085581712158899857050828671969328575300454826413828186560812495571588253764593354912044698596590349178816761122409055417642802767121661982461819719457484240170948782101183274913478565574399352788645394241318759375396673798309561699517130556835347996290429544668688786381989295350946767791646774176303188049507411636650576016890357671507052406336729584151189829707907075045491562871656759739705712941079151543958850315067079917381172287173876935718032789832385726057442125729623550726583242059980114535537460869871884573474247430104686606241702210545862075649213085603214035265730453721243886142695806392636938706845688716653198826313064582064473700393152736660288960800678840063941453016875124917994756067047928364939109237123103476941551363692025575397368959769317152311473795610559617685684005924323256389264095279247266105467268310116096512706601777849939318389150177958026753207581179849937411493481632570053374988809455274348812969917858253112330973086119866699578435264301320417957538511851608820871517459269955398726607416337057002654191305444112823451214017530811186699056368347546923639316376960770477948023136462164497197294444077674317723753887064092837630696710668474859393230768448533351852039942735591969376483230447764525819213856182658536664216305582036195017239209950827751022358172307765498937804769427373755869848279683549695567483687966561438527241518544690876788899093310997473937404381845419717314498496591388313950451644401334914515872695598505096336832020608850583926785576121432551150636573647590667299820305037938837014621121387616008358083586701922680508637217351038180422919444896031127383327199256464469333669940325501979627372835399481002209070516129778669722605881720317700686240970827657518822409219330774316862531220315739935013623128438184070225595745712692724105595001120153631073350689998727450508522873569535166010171093293553231118135994885128589884747263743034610946342390650415110900437781775448057179042103195858742981051061739997582425063521003404295893645752268512352846502963993649816930343834790141003210368988507740307060267279653140114919847995355957364981146877065490544562195762508662226799080288122971868042014502324752954995276131992904286902711626354977665153007301854853023629104087329871661932064717353426166017235346100845512017000111884802402752437547144444743345739596330380044373922312741447022020165229925162911659606506679465182256710018392900813737714028461271186665788324372142585753606322811548932438215426559177127890007153797720882133235748132104172078865921530261451064129681538107195151544377232245973113093207582386464666510277727545219846084151489165887181713914220150135403688533590261213148028849383682382979136476052157960896540878388914850082528361756435954790870760345631543297853996076625489423806793289962132229689960154330731403744214614974501692104226760335146894670737066023557657653059874854474286314202979683845071538958163994192188832550099713241495935164696967294135923180078121195928354465587694769217652953119847799458086984398321654627182091995688949899408327608464247984912980597375139346238553916364808400045499868872331432381749762513597723726037236619495956844658166490939714841490546062035450336075240859523886582832014528916144413306512258588234699773278735580468115022666343962903581178029572615189132187131751420515881093385593539769879562655773384445779174563795948755478069770886143014449617741694375498334105604135267895610680713204696936173429069188549369419946251243697072818830111869191390268234974646064834910701887755912013894708348167156141270065282910003937862161495715340807161757061954392828493989791973575342959293987400345705748753256680643456318521723027862973272234250661322569223268788160064983701760989005974612607263220655214428134920733026203644114286944569108056014361639532309112937057633017399042789995539548870642163191085159681061603181417588484283268916487501275321145684936584391521038219060768033829341147462662045293836322892447323392610103657802184053926704842563949508545792251167278475820039765875621080507293403494966278901436625799311547180134855410694135529233748637839554338346120287350105949372306060180365973602245313113005808389348093313261114183039984971871874577527829011181217340759138786408113149603236217266342367395925398100870912981930730009523188078661871070486398350200621316253046377383205202270182736603202114346402572526133027556890333550919740210516367568148760743915696497627106793676598139988694265006047624978163346158969734572928810358238492369139428971193203560955446063652965947036677826303286912095108138661947218865457272382752512553926181530977539108641243750374804121260759994597649393179374505188541012859287295503311297386166258832252765698070033287055782146372518421027388955464723379932480348947968056769821424792177127887152877281971544051069542565573529877648307407044159696360965823164673793435455690047752804673903115614873929855024055879868518853310637937642332146249381745188395347348256505098584621154900739281401775110294391800449980980434498241484631888763939463948346403717300574539943769347462902396448786349623272298199217925782487762054641737768917367060744406378660542113582302482779215847617698711617785143640086519394267443546121063429860779834819712388715190249240657620333177215069883605130985968491274203833193829193490740049540962347966771525836436347479997963382687910807895451943028833436364661741134067144083191821488154642456165888253663322066146641447068129449674872553001785342218912702586994565442131643292358977135294910134631380434556057107920723482035742732820316848867869283151506852580945152809051595782489141309958255687470806030129087785273035526493380210435493593880301917758262515338301525944464377707943648607573730167206399168061791144387567936441905865600347484684118648331602647134493159608997697567932857863159055541468179178718071020340245337580884073098605623465289307487164103514606390082189942121671330061252055558818393435397365882913240545762249577134111952116306982941690245123783557010414672075148293507306945699094561143301235939048463083291360255719491128165864227996569100859029668843840135318753013189935122874900959162047891170517763565387851476333013336991532724542701286459783287416705551075892149663992192192374848473536300576685027894631508526579567946860513756223306208162801870766854131028513187002204374321406016643259112108008493448999663503110841692300831154214873346321740728387083048262752991896067735821655998209663820315322095072408123565544118371261334649808849602501416665076937479700257225022912593256461147468015847361692004248414415090718068430077932365382945372233791797050138357329407095647325357997866561791615790599414250414374253522369233625627966369578131321769272120599963061525055545544361537654938298756230030549438611697267111698603538269304058082349542093159609482958865222942203276707671947359522188066012351044034757184409845786520606802577993700663226753720213174461723981845955930374963874952552421397348145040800715404546948549502595888817806146637498886736589553870178560296456286557069988217145818449624965430244763526549039312359733240359491974760034082025568846745062145344807647972595095568528829464400949044219865053099549944537261793338708222068666608125066826466974257764800439603492930577493305490760296102641139422728002045004957216122887019139313694354716940338581971728975566625720418731829066024638953617738156862493784278728704771049624800499374559388177545992576846893506646438321656147649272908778516728515516023684212699323170192017066278819103750216103254661448770243254554325625794177556439851491281526875101398890810535379386783475055808911981661357983228157171127981704722874529344473098345709205922675450608199939242848145937527583928076621123387078639073591068309624436566034038678214681896859518633143498719761006601178767157818478427428717230612859486541785023015249449099537856707346829116430845602048083301259255428821785832022863849243404122223128006299724642577038959622436779332556959945441192961226344341109998147082137753020076711197731356433821792113110608969221419550656180731898582370528540315799274318205523804763141697694202428945699388181184723743171588284155629949379276072394070909413124021513950425362402739226260533211663554013935449492516168600141884431283547771707647824439966331956157447627514795962238266002758259290157126709915716361122235705445901805874881336308422267394133113402566982627454337698281063603491923525103471795517295146806410379064962846554680327458859488908275025122697954977854169766643317482718718728137397512315434397591449735236989030246887872225200331050848268494500525159608585127268097530398186815476579420065354042867564039973579755616256097281565447301616889099922687894321593490955384672489389363175497541796433483100061425333612512962337300433549323078918704390153454684809219170904923524293016043645066728803530559024892529640442757216628244705441170168418583687378200313806490276051563228804469989870881222219708944661681523151578502718111609843005237650587946480915559353163167695508889370232956203887522528167362620853270268613725129238869330955833966929636978494536646792484446853875831444640144433362420306973200605339391284374551927710044225860809647389234690379418188225876841680550470154771550696954437148014952863347385292369938684212938953190352660638980668719972513952761085321147845716223089762365724867076155976194516106037781845694303535654456845135982956496983881359166556749898382626445531145569374482150455879142219374435650062888225407996817198577944693391271242851084168432963426150736790554159732655118348728361215484593940596152166660903823430403458183945906126416928826075744948086367518401430776900887854202543993978752662048781451862668804293362980643239035046148497052288901630335505860751860429970798618742039922211507163872931104771682257580120968367159029259529053419993695827801752153440449367230602110211732872992045705423013355474146516403945437313698289479288383520648548114729363054712797316274575290941318548926739682766831387393768968609886474115511080636465931898355792024860285519559833811368587347147719404426082038622048362574565959376762289402203638734737020736272216303818675000016166497078078150524865262366462716518062847732724563060605477961370138469218150449590803849371076921468963508174919771078768486701499406940976248204244154971156123607525656257682328489264906616631447790281780912854257617735538412939061915146474552734976058094709959770081868697053851519531149776240148360140908779540931428769986452230632100508893197564860334515439291209835622660976959487308660444288560049941267811615426149608756989468178081536965087501241877233102982218292482215455377320013377438094680137842555995510770876456475153974765997106606404577710957551456089330109301105545482877820343570011489701588489252932442967763647195133066394646067643757163785957266761652473129413790500049739867072126694406401201403293613284885636691926158627388987013394608295120964658058942322364745992229172378275431573370101608417751074888870158743474011862558139648034154582052222670647756358956975514096698770425825441526252828127784237722491725376977870050880452149662408776803909607034445211215863635700880599183312012462419075039140078591741410723040443891740832599810425683671823439780304101848487779219808280231960603845842560319982848858083727686812396788140897518469908522064935293280612434062478341972956767810944932087735287182615868712536341282608909775977442124295577009846491511094458178881625683706609304984487388517090584259669636202050577704126694210190219753970924968201646277864894738402801029426622962482394349438787312147767376894500559189265486552042683752812711008920281390367240936507929580329127112575913476000612339232630786429948934643259400089328759142765578781005040066203715804209629791977335191101380228035582668924477122275401599017666437705846183651234528485136637550323473180884239731182476469328061676925988480080225385767731169740610572769527985240010729218050708132084319007313177646299526689882855412617014963403950362970810201228507114048583411484207786836476915250570494569916883128563990047894445013051888512640126006496334892305835358405141468042673874543971949497404192717005871003853910716122605348389830902137055960284817673074755368316446354101264661148963034491378417022023321947289218017160243635589854615532048107648727202656078808564402553500151223429404682266778348133572131961722741064335089620696644405745420793338611939758417947639790448277567609709422267317520103404237192626540139571128413810003782629796528037434113163872659772860241753214656091692937180619932948795052943185771878754377914597483443110284295748091988247609991265570749405917955688480599637194336132759914833085362437006219146364833926978660283656886240440997389491056038689584266820074357808970448382070236465462804088225381420019873351996192593919379046742947313353958252829052070253667528544424792864719982229155546259539636929501374170243444850760008342464911929548423784376606732575425084892349314592188005244546611349754516480319017600182246630314403783284475489296893688504719196597668081868102528275210785089958016002508188197879154972658272419236474094550247241492034950175001246147136013777198263042937830467590570675175049403243836778023982063136448800484891893613124280240635593109682799913382846883129178056899905218450769045894746870698664786919145004180102944370678062874823195010626797280063299046797961296808373823311094491621830751122026358113534391538365514875685728599352283137612338450906229706679899564571726166129191929714828078232725107673712787358533572736530618598440292099260730893877587199359066063517933251364412079160871505975331558917645992570395043383809584993821098129271114399745755299945564626945060598382078998630236896006748282122829236912621910483711561013440738362389329116323932171971789314988866130867876194199030479764962692104331010080196490918126094032835385044204506985091921693593812332598722395081807644137233340820610799919467443792736559683229927194551371072778600249518495687478318582079800152732152997328824676358354411730483942586843949115922050626819918302091755167126829132480800093537645648576501014504816169835854372184854101973389618098800248258885901970851746787451233013939962317971864892242268317013608196159998467050855368910863944753709427515851301681238556891290627798785404672395346010167093428165896549275600145338540390872054787873293201054865769702302503289219402419518636196185691265751022180744175813805551063210809595631371868777889805691873542215572251675890899463587300190919783973643068407383707154703793432857281396674531767174433093949240595572927006176605011265471859453291470795343815338226850980602256151397657766468838119932703721267126733077644293106049429723970274142457747062130012763501807691825839299894150338325442535034372479230019083573344221022138198525497598621335808409823892538500654416389602699461645352645749062179634524660338961569395283775542584711746120384168494002129180701845132169669931692249875799146948420775740573994515134985641918331750897758329216355812731151300279861767820349747914660702500095452836354518426168114226244831841411644325408228232234822493085438515441993327580878722721279489263383215780390667287882481232440012610487432104597300629161122876781835900268690643444857635370525366365338755242582465399564483520653634038158758951026517747295143063784323435183312401354223627650054013785148310292699870226140914433320171707231879310333681402089836829945437112578518791302837931462287770044649830865865963344979204875972426387763183809918851653718837230832823860446080925437299270552126653938597262911420160340286993995898388436639404000000006486864040747651973231342978298764254116615471845630359715532048557541031614044422735805776752148069272103891084607052988358904166495322862598125223600034759701138619002220259983815718401749701813882967382859424293153826524859645015072102697106418370753574912596728699328264886889727761930284445835531946201907735974096653129402445849329379280993063164409967928537301387714931748993430214801721520666308587250338910759080063973766044956171521474047604962403895141754198482175298236591515519222028278921449644352292492753565762149015393542326833335738327519500641425353406169675345835688986908407477593946888240066491076822032577413033957524189641918047858367941877171918674230865413631439638772448217691465099607336204583060366190016070487492927114618555114272542808873241254473418002373341743686328972132701642971103524001717209267622137241692086656319372614244712428852345581114872312237799191270643883911970988858636216724315468421831104328748151703687307198699425935511909872491033353520845661950730630233033726825433417118633232346099077354818589901741837763086971254718917946670532121535613683644812370036128683830763312390405132454731192456801461905699035012505084717147125923855330886693558141752297596750496837440864036598987558223816869246564865592834263618835499002878881180395097244823570756800342129448675057480067604996068279222814930403287925258676978920617710145850728195243427821913757913804994176155437794671426250421706599105136857480518299864968086566747718902277081685744740032625003338489258329106453214502501036466281717093182263592147755511689958022408081682647782518170363834731189361832082583615435912200946688738674945260480337421122649979232067517031986954686700698571795401966462216210909858908909581086496041698543850376310916025315107248933790476569027136970580878625301824301172862624292443652763950733829468766034797851413603589883846688650392897891867938670720663279875943892391077054961697468689689441835994344414330846382500376014363051274239625808925142354019729722094169416790061925811134608475948052930245020553014521512618037037258279707557569600799646371000315711978426718129473723811824645580300407761550737447847480328291119362683355876164784673531858174207675570812091719849718297315939264065801020870908376031743790703915139929297874337687748681513172718782443283876609009862172793752842234057853615840076143289873690635467312951469305918917809751897511667918886747304739031360519965439205292775644533425879436931119589574493727368845503581270721769351904645351476951016718843414887467101303542660481243413077700000257157816804135371115879762986923714633963105249353893554140591069937146632795072115278399854075634474077820610411742790825015362927849781954894898638938595468602998977911859601634816214370303009332719297681688520728452077260678713140193189090441220433381495432078685415990173591828952673329584241190111326361287904304238529770562040253532402009691736868946390502962303172809333600100474744175481083615101414774715502081454419424701634000765622690162788427761473805471687020094486102143072715501439534385740069760131111708588376658422941306969230808817563478074824176844424012480084618676480271812773878295785216533414931919189781342402770446999451176781371668239272135827898546424450990813258428788931839521021220706749365426277995903339236792635619047354488200030511920369922466673758482400629388405947872679275586246307297154050531827994762342440353108043130160236289890176237713847572240518054307966580153524415274609908689780384231075284762203737227103226907843729303712964912242129519920285629439686827171831285623263052315849247711098105061265162957442798093636928858906080862367440592663819029682563358799514925243424228494580157709117320973448105281154411792226093693052900163733098711575771875542463446283114529419986874686521784483776876205796624298223623583941689563731442904340136696084295763902468288182458359887369224112584497440079320199369321681886360716179203821456197818335869332683115782834767441182488064292210933991738933308280527011931429428830779497796169524739384259795923590280699367010354334794487234524108204242892620728372866948332862724380394230884619805850184339036545219118203162598536417710781012993973281467755579830366348277557929830763342827405351636228060936476864649676045209864184788459829342694298162469490350489850682451501404649400938925306763349229167161273617637091434963978742209299567920867981713291656310425794923085119709715573658285501047213019722990851831866816170902439943845715294866202088045212895932097309343685897251339634001112268087804425692883797870354858783623825860383286976326245645050160847591621399148773727344748225475169090120004472191568411868293738145200487600559352062186192254145032101357260238811503679356813976737945679073893637653490186732805108739674481445472999255239665181641885004105894167920606679718915822963372194499176120878246060199155366728080305601699806256681013747380272874604020489557645685930312112658597841600073522551994011842063363401050795487869663030451007826193589568170958092546900925603048379497923039788648393474210606656543603252662205721086601208548380145865146412612455723747404272090335656774558509632425116746968069238746660820031869776055087949001103902077073977693002069332747291464371024538918358534161598983707353635076317082029350472660048634301252339713250249354224014327338873272981526567787522471395671308395503324033120247570745279830266056202853319741043927264568977902811817510243138525479325174394354139899435324500134425312047709441763270013814574981270717703489596199392170284253408643838977029144650051856927211117995099920739282249848436887135152941273867967132984524915649946491738926088941775181081266873260999004188993519766131217067656718005326300250605292819294584235221813604611331742845948851885409728278484393361016125192754527651321648465244503332488643424127366953573425177792774200017289312721348114606649584314377358473998272803923991822698404386928941740927426250696239973273853219909635088318666592594154534212962558675437112186866880321812438489473486300348316698288166946800800714317902060487783240923752255787580053860938286236410275545899309623703267607526335656433733145760246136302762525429323906054977210886627542131050950976822855824638785001903122519623680167556066348568811390683032250644158068819146912496480971069100975979538802918512736556623722217671279996499248411053144311609389013794405278588346389349465300374022843968539674653141601244444735987480696399159923991877023085811741774126318849460328995450683978540124865770747942719952851107151284436534259512997681868970349224196505056943795157650721542267621849174069851649684412673096491139734124633135900995749175182941916007768387824580917685786987293237280020522804534445597030291685531350669441138393170625599704885810628114003005542316371929781310835166705105119504797286491354677103256502011825664013958428103760723450775940555516600944171665155614239422505911518901611508553127276336348419789132012046591353534610818624921752124952162899132556969768046162286273378130492868467045079256020594654370559695102746324949951951208531647960640389232520007279961800233189975295375913026824051807803216239749478093524676629960944642962096389608063164790720445198551679722210188702018739589093326390947927974457444110055246502899186132111626477026710719343385315549445099812608376363106338639050146541020144095252839732359905473095257311326180464321908376131743282249508874876248385367909263884667077287122917098397012859031927074014245770800083355641619919567889530250204174735146797701602697096803901645080090713586340253713446118591917470087353825294032726174847981382596617819305162894071297400300898044925948744671265997001871394706577622580947614164642743248621148419332572931512859063195991743889687702451896224147689345353042013585029199926892351089515534011171235852939853495107477959030157950807539851851406973598497345734799627809171150324830432608362355475135889519732832341831852022997577044973208583896030308927229502638189029646032310969101135988817513219933084218523871912831109302179744649142968366469675218192870838371343461701398890682109916061768569585923243189332037417464895531513290977887732724538575502496026595250216984585208027105973902102532838846563706795527336288527592980801485020860990044817794189299798190213023557303948624718280422487283196767218433913366868983279262056814572962139255093806063236045312861079897920243518239818177556868617178813675111367171469348507644886453696097065342162371493531855721359869187361838755704583262144746159952585395566748599215602443760195583513447043075693655024375452795712963708763476526815797691775940157311230415870443340569165264424390218388684575619083345272606595201753856283295494367545413762138928815510201976948966228088409921193746454952562248929347812796171665723474931540048891339704655767383290824258036564668184170681177240311262507490089639401111775526879593619085465853299296864395176371924245539931042903324872504648171588483793765426984075758461557329791733636394236653298716463517180188639394479653091079951770198298678273310384364913486060218927343866801743253826311746143589914368162209824274454141123332118934285141228789293919347903917825500638426081133366129132989786160610798169667167388051968650418250740364512657851883336787917979461876153209422674004461459718990464977608290075237836851690257291378429831219357891126666662184891733122611624138160690255538564492645910242899996137359596964060812470213868554623147205791711844114350692127947723155655769982211442558005095852597786725279005405527410488323548773312991804928028479238511206884205955738996313768063022060041046741171614280387599799985804106395069916299757614853514629676385055270731336090228944472891089706745950612134962090067151903045465220665581125926109808110272822158313410717995132299525504807161839449891529962187563861233445680352739010844667271515286162817523418607614806149181245796574727802222598584469356362746612227581740579321149506515042234214229190672304996061349672120763142277806165240237786999001618204415002006611859997076612285665632725482855318123583801791737122920156605511358740016484549819354319366320673059691934430517043297809457048514093383888438954241237156122294371319217669534926076963176011234678244733567910435782689569680436831867148993354287958480125468787096789201282441582446253151115857019000806758496269185278874086070865484052012906375063172516071424301548960462408449498699514785425347350785909099788232042421830304368886857364388708104719669436802198395927629964406251364080461803679912301972571374326035112139961517331004460208851339227849615514073676599472690719689574425053118978209032146814940421745735298239570562581877081769589496165695343835871285291728737752764482034153933103254123450185318363362492886605036403141923481259908706492788225177017845944431814924831799472163307612334509405485555775470967162218182871577451653942495402641106823736343065503190663828566031676923969322941792698270409654151819374377419828744831250046266962907017257113327644286433823432788796340768355531012648582191284527676205958336168587093334391521207319822539086507050148116126642457028023701511926658266217980067486067735760519395774593964553474415843090007972984835779185248517274917121193846287825319494949784054317504300589588613078299146054682340169864761830538530094857163472087738073934265716028385679653624051149530049078218176663645188146776545749635610605178661354244184951426693075695720376224987582320693231890811957964437638339559928813710664424640382217902725977820895837096958442307132521990849796307822102216950650802140230978273411302762497680124420451066475617601071798663387314389219539501194950579363319889543116031712472415611147661251614232084116223450779769864624821315677058307014321338180857596719064976827785034358100820069482390396630586045676173875495561147711457945871311503567985945199561709548695738611686981544080830528901640173061455700759722992329437684726626010800583780611102343142816050842407303577837994009861145714806140541581267075962095689840747787274701595277007608924496045454658083540225338746258274371654720489247712292049357485591265292488352761624507008390509340773010389728173076612372788646210211380192586272622954805787785024248726526710385273596198452841408709961232952099135514711956626684574919133144282753853152532105516887258794305666366780272648288592999144199106536300189264880156845735060043959169480538132402865756789258513612396646474701137925536357339609959315909995644754965213819300429127678861422355285467911589713879102741661862147580338265821082617565633435540061477804647825024154160262093014891081563436651642230889463784272381214674579231609021703121036813680524346438036410382071265575925444270290806298273961223506642247044258213753084053721354721626656831334203109727220603851096329714745216007511811708007581666946218694276911438541862364422327237852806012367240940524097561367951930239848664102693366253292687225409061052623116732830054411640266648158216896530125128170674290361987651379484787272583425518873918376721527478128208965448427243239898621769376557911125439508950858964321698597912941017879582140140406929269376956152016920023589255508854175832422854710641467529464626452432966469444076806068787141142184789812243236537901505443852513317277885129422287891709195494215940835922272954439246350454121779984443178337324651246311128386288037892828498390741567834817587215941621469359713140451904340396471533715421560544531299376386370348241056441342097678853517392376629754976751544598071915983182502263662846414425697890812965860226023882747268876931580735956065303624519743701439816078230728862036391184109443530835599275060019623204936514975196142154768113966165696815203153214523411886199631661869412701725866542719831916350761570967998917228300569143150906192390028304316501607615611751289783224748358633664946275099153560059611175762956774049385444692935854850351411423649762076478702431208163228630289238305774578143163334770670472411291166763615692157127966629253971856641883020726003800725134014482263530301235177718891763719210287392164731980729664650398139496035142231877707423636013118934347610010968492520055176204121819590987636303109363371848371008047547201678743257242697462657564996229974718137671206271341105038920092312282158892688703381229331177643325318130210248345968371281997294259397220922750834698744070628866287214815281891893721822682162242533365915054986827823271622868222842549593214845181698148663144872134594665566256191041158238637936877490755093775001247198554253146213352469848306341441330301097276655813360807482433697239583545686146544010829607227135938070218532502803380569923521986683037499434948770807819863771391161590801482906342585698840638389951753452721366197364106165550577941652123693145312373822798744259763219440059827076279996311472732338433272296072550320409509214825302170640594724001111025589178157162452316626644124796102681969170740130707868604039003853517472304116931230832668364443343033961397471769018037053633957408700182211785384991818766005459593947214998796711058842309073363871907610038095036261479220094251272127537076520595467449468948844246601877820535229772568305354488401402911337231155663322414600333558079418728087814217045097525404216551040720353928281030490980693291400922882747879329945996195627654104374270291824661920781651397469305160687388530830484573547331873562326507602631295323375333128210616898438496097929860810033195990920238824716800952217694384450618611991261703535205540672524589588285331842049521751201718335451894794778299206163995471401172025202260642159402080290906828416713857486252406673040706032656715589370144630272348216185347647392066845285348314378119109374277604759747369425218691858136901060955808842987580828229668560654331369466510896283384929894598644619079985380648271867483904153864874721488545481427905652899243415656864902599377027178231064619077454535609511014469349626969213333361046134644802142669336349949866606305179340337402526564387760205615662669348700462324443492841839478813495706239198957514031878509609405381657475424115979999661735964214281377698799262365913414196587557610640823911425741783474693298629062608032692481463268142589010495330078627025078928974005492945442227092911336014538124898145757157006653164982850041442669500234273516292456407231422042519492578948607041361768379951283677234938016280642603835999477611523517980234227256217240465167539292041349765081567348287944653945024655525440654809774454287675503190716217996797872197130928880236537783305060362554060082950510344788236648396291010984517560054452254930681379058075639810478220226906520260222864574651053121084250346261061534343828782237073983592532088287093691307362471846463515039772716634352360957316506906274004787812746678577516484445910657006558574175410423206092521070133579329092107844207985020759178294141898340146505473997338308756006760677159492872494360989504852326897885775852109599970005394168011267586289015896023565093259353159432123662223282782962496486790318545252942769537911692832349437249831969388941663995761315737941022181359701694653879915610750726901086421221907868940902196482171146491879110444659278570195006869871361696992405743871879208671493664571619298377432291699916737906598635067909416140471134903554359142351950409722263618345701043458369693390439481543233119291243203296101972498629662684605020804544270327319434887780656423977213265210890174818456579021746403730254323146699314024892502134947873671691227993851646518691803964335733440176528998670498964947758750659764110260162481702122059767628474143585032000558227135168429507852479940330217816392058998234018644214668927428321913060948305521055065880413627015127617439806284523114435126916546112775436728447565444178826679763360529707164702033417283133301011989330132910289638118688196955307680039536357075760500621090337557436295207819543343806359207801401780672784967238569372888800906259752183381764704971100215375049801212830239378904845717990097702512737745494241792206167832473770993072515459042819862226680036376829574158151339397533520857017336532647133716670699256189509532836724652831222856602670372515049746094007506484867941849932307502403788460901705748142428994508622027096066757894206416949985751738963876660267380610236404707714855824033509832058867221273645516388791433218027947382800429555486759454205444176242806105771758480470857961920907464462513131789963472061358190742748030209676247704096111452027939450642331137255529114995399442095309747343537481352771062253443470564851843938793119725259165676721787583174339552601913615858628265698663113758247159762820498241805970292051493265637039239120365172033423483376760885851158696014708357304799900608917846836218368552082310844065626536997173756394838728631001172951315772864143223892625782916627005772957931530941919829468915857296507822545601114438982434956503784393907512969766823153488584073244041304686744743985629329110002332921053872606724882829765014041413414936805263635663639587217642340855946389160935858340020240504777219923579039659982862935164895570298859991637272286458408162011933286757055581062696247560993910741853130515467111573091367755042153078998157704629634194805378197756307894449454612332696817234417347175929616872079881497804762077417552113219832977873922818095862974655656622815208555403551591740991316312690902058369158979844131838923463087761879159423269130405484504518744478640362777126827217912946654418539615918352421197848161887451521218953853882148990676799153008406097293165102917461794991038893018085420876617826335694475329193128161111983718683949982744833559489763208672803747000180071884342222976923599481219434888000526143857483531630491784188609554792628805978479672870365761603301011312646453592084185760571287407257727465327526472104243654799414349208799985003753175855365407682222349514281427956025730134188912886339438501655677806100862002698401812325275700889266896794259936936933340590874256681842157915891978960419683567588848193959404836181201679690105576324474596814192022434534678110176123608071578475240438733537268651502865689890609724432474332190255045356283812202009064871955314565052544206444363672338657944527758958523410568003511885981157003746233840051692153778462435197586317034510604964364188825457791870819165542140567869796915944910874034678237266090014286738011274004814159605868672771156027446560853897864616724457266698286602477240954779719942339311875566222342709677360542586831201213084867983777090584291507469687597642528194500219913690094399274847164726494660963915752673779608775265635208086147378408542855367294611522199293253195020568814306534624400724842842982575928359766748160529198275515692194622268382881090385749618034789333722572647267606891429287049591030036655627245294465917888076359935063413294882007335724090759403034092627590294415720776364901947432317069375237039797905807812071808028779890565180901620549435220926597995524673857681563575976070612337542718880365221899398627985166849383210621419255647869727626452505629930388204928286093222059371750172722181509754864696307214918075202141283691509472922649985484708186580372266776373892268349611892074708667732840145697294112106235562506161946239099432522915815886189328580261824934114592793708953031216874827657362160101468149169017944619233856516347174995602875277444465408378083891529251024212437799650801546872883337118779161291070032100215292251362314140312933701920121486881322357079110146653830676566357447795697697356044364328720385087841404123866665507839943050677577184153242874110932618527327519852606550433855086033993993593680287046784357508647833282870845082391446981214184216882913118310348763485099702409408461212687535639608834844750047290344500218193779250530904007138652022499203317598495453829364480721284324897387185207495729063366868609143897845663490114126592399832540344181292347016133160482854837886893030528967397460230523563051771225667612756958831948424615544552891658300002680077272277818439440382563259210667531279577399352390621924900782635804727237394071872231094939428355869135147346638713009732124833242795401041084077154823612634290063156340209035658122692290230294294996649953027671950218303662037195818153449993049452217192825809318880793111456568631610174283396233193925940726210338372653117843570149204730685422138862609137679585770049846759612490901769961977074510599847969935686446784110299787988108840474299586000296446406093999949586666706353016250301204995680928147655507081594851716243393128970323806785847960616974140615076689626497780732922075999625897379846565445140979237246307711147888815171673876767495754244835098195505732507855710958993823342634034345009183252770317981042900685926387223767992685253048115349962351804910173541544882726779690186679561997841383463520145451693192385400386967339324408854939225748194208802237728800856767432987920605383294811835020437599510404951626350920118588920942571247583376291981695488753897987520365714534857920508177387449783214104538318636743633616408957017951709673013725812814027772745799852701071156031859611008417626849345516667267481521564758606332521916802423420590016474226903082781115953377781376343431310684627830190242910509812732844726423920491679872066507733979842519514022420996078585810288922152465665359336349036907758499533151554758639210993202061103813862855507715071622085389221976447235119114106265307505287516387072016917696474841555878408795124028818934495024183110030369813592231295172372730610881069222108838787490082592761206813195285532067121425668625498319349329518438091887239417923816464130872446149624149643557031668142221910635335997632868065512315996582243938794966804261478513439549280799533717098473048306525709522731613727821187600530556355119752742496489595801471091328572409512241136805182031356761088205186698336462071772284605934565869672373592679072763493010607028107040297612167712698256334773074678654922174568991976898724325307144221020441615734328550075639351362135367087598925268104391159390920592048944594870909238423866992087915171056224756766381105401419013660902117618572489723082658106821255505798915048373472584550183705191339906719862519888395477434812454327220071836647143446919363051773334388337863490219535597907278732276753159421569248218136533916364100971161742609718264780778263054035377961630944512802797846440895005916458823295762142236651519232408104245621085979066237137152936728539687594530997660839939586670488640732821720115082657700690622680419162187117135198028042784921884821515020537232685348528391116965756397054384584662628210290706578998574955798514981617560514322264521580141351262101456686554851243102635514724369450993083939231618645293180012340791617213603901840262235109661054766007289579405282627580212417268509438048771393200741951890251346779899180725591175240615911410093573178581066789568370071989003927636621425439350601933451584077320412146676461218164214872877416009582527615447328306722500855353845063323987651919987563590882072507562820380195112337224185811970300361286302891087983733185528894682338097410917806042175137034170026610648400874704459740255308126129238192739560758307983398183572412996825245514367368358731111319953302850137566028731426731808232473155344739495426665721907870639276659001234785551198539191125748116838065569842419311096569298740049229395534068228159743206896598696646787613547257151175467739628211272877254764826883422343048080495682766398381865353497258334880260171163929156804067244296000354041070603817089047293691307651744660181242001752216555970491497776744915207799288088168026105742516637636281320391323883256092477999776153248150147875335853540769447196471562212727819092901961609996554805976907095677031257854129424240124079227417692228282421543822586697919952548958680435088514892280069989010431722615381965677581752621964760728871912980051903011765297371511990830442218760467043296673670231321852968790653276198353030072316049989636034745359972821665213855331247398475702767346250006197192072211245251368227734040183573119296921464919898309358876017813138652612802652717962968187688524652391009694886947521631985450583701732709478781898178876073185695801448405465736219433253513948860819546660051751410221123809708248576462602220110318549618026356081399097958034472482183583082810618684081739213248408990384300167519890661363725419740563863898014007005347935639211124535199255677526798331279217794670193212828332836617249080104688692372115315172856559049778530484051412886232125303388772746428590351630315673483634076733636052689963741839657371099216917056172218173915183872923959319700353946023648058769439127010008767085791086133421453644661961295793084209990072044448395468276849821907028433836802438175922383492741042553421383835492404910997251314898690172841802754818666349274777701581748555537765614324590587951218397855454229613791564580437103057085009695299212987878148938201175945162014745700383941221105619490514053482283168944962538754292277706712066655045198659089468884871156139655789128404727268703199082145914290015308430289489602314895317252445834147604337127728487574478783893995322500229280788254419397660250965951823471156735425757952080847785837255042451165059730088240769218930894824067257410760792514987741964147197329133334468802081322266896902049728007333270139588759224485571712798589596037127288655760128677105196108701085009667565084827071300768640896664774682507392329319114693545353867855581093951525065712899839224714729695231213058448186673550651576528076013309068848518842348969984425972722367408832225394924133258384344937716868594447102894841219632428588868796851771189703076794368011853742398092039591825441686035694446742999314050087272579714341994250187269068084725406596542505610034651891736989622238385824842129473795329028007487628259850807962175012101906992700522894892453398041401773525090219510406657097954674105522946521964939640136362246843042939032280474805202064513979144866298882667810575837061547945648745894734020256086313956795943423824807054428684759350079921270516329078221171934034159919789021107836449705420678501589014154424684390621255143387041552800278881410308974397704081751296467507494810311500913173335326311920080479797896535797643118996841935261756485049141096198648653372215717982978485868237260247762637088384611841055390413798912354149424864141712646254052584436470263780903035274030579086096955291412651336716175549859416144082101209114737636368918478529047736048208308157536078654352220045823144365194141346291181552411985792614496139389023731753785429189332081930017540920345614980573953856413821592083741071517174105931249040870133170452181901365399144409315952980709963904233834441863560216989477124519895453137617205386544011076230308312846070076227227446363900637381392550970679502698933425302358607811884352930549325291152252235470409151296628351297195421133941000926791209660035328462991380829464496885825809696861059191347294103735538257644135444787702949162046779157975116213197908246111843470353341802228627811030936932015947547150122762892317663793541291357139033644361405455992652326389878979807738166657950006600684952544598822454205850784307848395003827534545363017222218259041342760678154008720959338020667414403154687862369314993422243253781668687868932130043843177242183648911793724700233664111536605488426051257386659998374110160484702118874775615298966412461234516025607404077706382991231885676093234321545222872639006595326924896214450447082279953417877683194734001966000558962975634873993507462143384404250361593065607471642763861713911023983922275217092008451197010186760576695439723218910895895702727794960032245409374234683681369629375671504384391744315401377054500704972490943373608892509710553517635592955391859235928651533275005951202732302746208275376118539869643459887551180787982722028858487087184558198142537421207384432452113906895849107131407262734857285692209728520598182927085092131181858010903214406727805665347797581866295656500821135316071034488786205382677203276935667438027449476451718862966098286204530434806652880318920711469782580355815017915270755894924206640339079498319061034212657205452178436260358839160337664668339251474224986692813973175642319415028147221425367379261711491509007798297304047953223415040837319945173005228061739082797726048686139202656547098711179588176804311088193219036321257985581982098152218306196504630025882559287766647220814188070717674484727520930564962374327404530925469495974908096877246054975265710560974431746362460728632300767785112388840493177599939468954834541857214399545982217657309271325036810658714597006635335640646864746867539733658027748075628711167280673694040927732865501850396126316403205986360068026872747724918764091307714839757167814156516635244412985655948485670022324166737680705866552249010825467491940409233798884094103852143914696063178654778464428511362737787070694973532195441158957857720548813702160206414828539874122546370783599037493421334838440746229418457080456031206972942656613851628502347007661380467562194798714026582549179703784526944638462469369851700070619042291155986568845499744541948891041664315925568174281757074613460541686898108630899232225607015963894236293686283495035387824394407697060149370138788046200679475211984117910489251134560014284476128098178693616166596004009276521822587521426213817218339730272915346208692856063979264585536987630215932827446331435173905692280741828920489764824176264830729499303064165210148581558951499483262510533184170049926429838141631048274263915239338225133545921638355179452101094846142836661530103006844582934736706943060908286893993248895452814730770204861135236405030323504034558986224223299865784474061974387881966377067798465884091437764767459593299958157227033349141505122566265271567947467620146869532370050193700504498185720943243176042958991390879906316570396885786714907310183350736114151613831698157110001884844338278411015490230606627202455649658226596211349763748538066924280252697779428816909468492223034155471366650641853876111355710927491059922574923469619214822592237527707833195851625293259748463415332010368590455363621584156623683762782941813129307319766449335475277649652868969840489809194590235073411309705079130372708738617213640802014608310290865865281242834608744429470116798402327474708564127710183086396682703358972867545222066821187761869550260800311838902159003775442530574066807351623892848295643435443117836420756677298400834979487421693254887528492467923800022302300504823414256423675448142916497408036229278504690682445416575429301002655495874463701502185843884428510079817905719891244413188348865856477002743733252396519573044345843794540611390288281355492524783316391795766282240739090991456677652778969833348369813148836308998919255413628767253979621584442826531773559372426654296011593600486957067499842818544476508719528336956702418261808225076401834263868752223346512282213668348998778952554578704052414603577096454320927821103380245971132104112045465015868288758823253024174083799918749733393434618534787402948176561532466677879693623754837498646172782326446103109452418481196707047904052839594410148225741707829418764394810012401307055947344690804679177320302002353700334469681604467719433334808856862752384590291401761505712044847291532528633906449447310297219101219718987232563685990676450617581765495737921872073604922251322817569498978876241647456792660350060458120466168806706944403274762562993047618700484903417980964259402116827838227849823087346735931967179365058887000529101143585209597007777301233240449469595905811822352858104261493105420553957937050784661074400991709836183642312292260425141193844909652088167088799444880270685553668165872835163481264901954365685467094823151452222376049919640050779983772406626995429165171647166544144113786302303777358013609410558106958481005087773108015404692036247724244428472563566729062202025271938670233974284389489165170909791077839004193945515077354477893633883677439506462317033739309394914873985610216349927002062128602713305501748390767677225853587873759848503743278810483766586827569955383252545319090380038588465531103500141037773298998616477607327040325878070603113302784957188400696643293933636158321433720763265232736600252745205944803312999256214072119110274893538388975504628644518294763904418683861204327250909903849394183400400917245800781848701306651354858308415985162698800452507611550995738436480070280980417391599596895650411200543783745244137321271248167644910482694121586014227974082113950945359254504741964005981344721563175799465380815146962215367706546523407938569956362913902395843305164802094188453835972313731586027842163779224331858406678572039156583038382661556252594991749272549904513135044725472571665497042377495858185774887435528758281262684070393518040856457847811215652307004171852263665330957867882115308311447679209140374125078774959611273532928171627549511369500109392686264131372114278555692353306988991981013242496639092483872212045984794310259401649560135592874307916781200263609541905165919580443375543436285128832697531366218440848047759203422989983429942971764133869009534230185143434850303116024860071581025416374447367699010599032581095254259834090641154423924187486319185203863984509041346161842266460750936337316816230817860057587373320417042738514028200332553136362493576737332377052300259350039209057367691761842335393689487968234910779956174646761552665098448379360752257998733830666946848475279033701833281950523867841112583462696155577916936633225241854766104384885766079602204420301270912111056004150946718175184217858587523934010485100701206489810378380748862667939207367029836503830584849392547494187647962707707841060536771189038657913808448018651037953605293949840514556959817528015371962162445110057300576397639198811644774872090975023760982555626158350824240530603769227722242493245523119966717701802669936429063356191915256247934260756589425515890140658228857829540805836100232588234062718852455713203516211987773017182169285656696411427514137286871817470386517129029663905617418269484293783697860181494440184886729628804962693562834775364085629610484402449437271661600825669510806166518237485366530732161891166091661524826094137529395709722203494412838243760645965246511734597222201024372799939756053078337584423523626004658337383384082591174171225881153034024394487005238687149909008574770970699788339998046419374980890215082680211930534080570858375862397274410065280426094345584970637464686136331338251561406242597442500093973066527164556605008936499713113982426262526405640653017797282876452731803899785868322324597445626681024233339625999680750718098386804798399985096524934693871417518494207792470994830443768092246201085496697646789640335696138232686354871815045916483552894947560790676517740706515878645757139530230219388449113062347127656339032377249712530183638945491590361653889271796880826973914298882453395227464412446803497743989896330398250187198672966315619211832419103023686109716470469031666320596141152435116910624369207291435983113062741782266483768101827867187462871432944424722777714338252915488308260018891918604144027634388213093481641207325607380920396947521628378516631990790060581399765905945623406875617168611979455507450082247027557187740151077847933354937621020870159820412842308666325985246792937989681701212630459259918635872600450828350153899789668981465513086396304636894111798682776414010288822784571408279223885545412760855745616965621782861755072870008514944777537613804000170681299559446406031952312346471237831448473658404286867098594029672570111797448354740631115130092987993328207830167347122575691977278237275238389291246717970926084543378954835324974676541609905433884573150164712217987614103547659506176960976884189587153413219810452982783004428770396423609303189342277932792465686173303073260060360305947075741592288686023467134154318434190652582851167917657217593502641768555825142130710816734856035546385395643110659564216335458557260529640261238615605180838365241984904842015775848694160529660489507234523419937867386969038441483366008055385182175150040026254824532407795932846349248901292864926001795379094010799862307404422136869036708757137355153005641788589303582577285285280977839324855228216296764608371307229110060668087570691520034565668943310950094034953292563339569784394254649320518998698932956008394287741717085928041395911581497156477487130884356986902628162980160580680877743581947414493122286525719734108976612973412771126151113367222066080171180041163883531543857133062674533551478692335312128428571699370629626683654406053724990075221405183997067562684863676481030635335264299729068790226845725904354792020398144422620758199071370259734042143673254223083289258278398008272145592636745672258635487048494128463161685741011428413290648430151320792445286539202795726166344051361071300321208490579338691259664197262343324551203061978991463124692809701411706428593219900739685560718174129661497260859933026975836792902704669556673004789951520439612378713200152656547920758208792623657641244308365618439418944806087510264398908664203720687580864866723016417533922592964579782727238229872607292052980573362766140881099260525725087903104471149764303744633625410653243029203386934269023253700397675998734697686897623149268391075171550930875962951565791696672661395704971529623588730500935900755424387086327809150781638297358659101497756461940626448375221837756037381374306712059388467833629557252142782342434971585462221925430444577915262492284076979390746302376739139740502720895567601692762797741785960940725549696765716387402180500955059697006226755433224131957949593523626901659057714511562881726847040680110491864566642088081110939464811252884439881543236149695362634518037482011516254141664439518790056374838777403894173671678499926918291167695321263539348911265034488544653040750231985174905873170582727093341299362128305254963454030031478019610908407709825873367840037707533523066923106868326433059493019862426591321521321959722644628740615587063117669874118041937282653535859820393219283095899188719291976678852430603198961120178706178645317983408811300299639768984104721687052599728501724022094117771704745202286341244693151334470214434873379538593472026902160700774082959227607523711200750623717454902436245047549829970486734627175747804731371393674716933346059535253496058181479381685447684752418645672189773695591784684196255470182017961835273832156033298399639901087280609471549009968822814801024485504703774089429567426044424935643809143417700889510091999433561536874199689426205663270357931510028011058831904273399456628427122262485046135744054715804347131046697106527441086034333295407130596748715826605137229355078817369979645144513800062635050640233617161053474320476794611438587768324760734608356952976282881154385081700171767491776408632253564123041293154939216135257740764275249697931940988589277940678049062528805142313069117224017983535564832158260864056182140873277617897306764695258266138284489698195687943168640941262133315076407127899611936786356024753006958258923736612002968300375104019891714082498347246139130271143894677746473146550442251105626261826346309587492568306822591871998098623241341305236281026672567123937836776556626018776328374847417792860990552463948188971087391018709925267998555352868882806847921162320601661073309112408289950407666992177858745656711586461350967420709646432540597519834710251744914177809227127443013163553841191176984468941762642658204611875262319208097126477237603426459468002471739444058302859231578157112862511743377132103287266696437772498144487748624986632067034981233846030102113718638273108831354068018493897438989037674741271232227278192281906407626123580244661626353291250489489716381005059134247666337576000340551151225214244552646653575060408671244041860772934682400199484877805731319334265929110019538758444463426193792460093821561422940461348127552676622683167130329163565157396486579128358788749749139529902115617200529283040645920614715868660353163230457269650503886950999177869514456359894695064147291826080748960708414257336704942674504541780063679163019247123518586321571334325479997321724824738371228075296661457014450707303151931945845616973163191429849031433121414745375151061198165535939419190527123026852242289612908001350741965180364650753276468730923917561458242942313062547110704883565485218114848171905376031051976254659483430740642964262247273555641094396572394766366255230742376345096812004777507172829105719419488691518542678391706353135069534397425975195200846220446885401809218819861737227567672579400344255276007160490324889463448655827730790962174068708061723220793824026634009430464940814135146330752087993327562702955172796854209539483281754339507292726447349890436287561912227927072371070623104178376584779341220640740735336429738939553482621763762968996632612466342425290114281936061167383867282768264659038214242735827443389630004869026062181451546804971000993730620567168241523327251780416709216109406635362219180530366513252937232977033936907073356026578591339899873713701134178043654547065917224506966283618593699690152758115087279012947869632078153082905089564442678009708700695145785682743475583684920044491369533298647238821891800345081028940843648698257230272434164691029146427861972130004128916103637919058470377035686197490534460201190982651896813129911436316873378028589834366009816167478226289890680817294474986731512603415408148727224995457227242896022034165456288825208747134809981834315936100717240163126395496965810513350520382088228235163790413872560298376071518402094110092082115512269237050404758745004610079111278449297957223581517148726805812778169185391729543068705021534743989373000873302337607228456294887287908543313386100932566156235728198929624165552139436004790415467211600482944960455146668062585932838973219269441465751010478533517556067266233397916050767551655719096362181636414963481616852534645433218842157832234242674570064811838906607023512501292692541777316785118042034395036677691064484735716052691152539349778499687645500419670016775791583363778666005455818377040620020208906322478808280472212946468656782281123421421207698434929127269773040079321750658473890107698019747688146492560063999681762997605275522619601199205542140899260599335510114945117493598358250777115630594305205161690258259331404051224944859494369113833071329460314873340819981235125301043595541477802750888892734092983826636204872404068563973544881045610092394246000934251740297242864727377695686745821763152367993112462356629845233343394154096312705911187502331330005191003122806298177378441748600923708626194289560581606132316039988535979627975501839383447010746234804735976584707501949912203740350508037764338863953250160240243897659647183395188496277218746174788885527825267700778283862687403012362725674767144178313827812612290591584938153896912053938339247079749550127407597394190935275400177606369568120806321604440910622294880754121433758772060258911277999474742450763604809893545938978492703332526779293580778145611512917509801876304620449196291839334230415679390891021264737250583072040055586135873637738285271467694437184138952413856530385523369570358640982223567283412740557415842917962386250976852085855861595009707412950461690118528822989867936171786863746641046477228428620767101281149538599680361959766682740009728420400534200856683239024024161060663907491484974315824951111785965522706099367826535330156092555198907871590475483929042867801346240743785011858276879196916863477211139436176798742366349266862058726621977130411191114307948215523452376965504641198576014397543293286749709865858689794682374047905409388709906739652576054626971689446111890771962276621270787509461174965462913906854007974656038850334142539142264373417610582216371128729457076757411027655965124848163391864247098607764513034202383780314117623477644805108895197755541290247206005377020847162930673944777385079147141628141721865331987397365262991441900736456628750812680548399373737078076517489001635420836773127128200174482353587112520188960233616870389463549569122242085792051242351635644041417347242287919613481298144062965359087966704712239822155188707618703534452023011485565337000944196089739371489503790015889266623807862153287169832332299856800189050660464408484148359716152515519327073603954179388389571485909329601519275020896055101423277729307241886655511735703496034937485456397797158728404289736548969307309288376689314140782562811751818075933819400911087693076951278063976082220562559651952168389840377945336323785725165591169091148673073832375020354113429843923754198796177173462776153136424129475941025733668690689188561959451863059916746017179001265320734478712280541100184617406188957431825703494050443678263016750688953640565432350209681861259496494972624210402369962172129279413052195309170265901698008328082381124709748079107790585865086907469372609546919438355738728678543036293318557790789752225207788453156517175119043980954839223232839360886171547942505152332424182448130281344643520546479743237783315795704667016560186563292574417587483113871904079989162215452705165832489865010276146126735062814144095052759694221638944403730115269032834169222180975673471926504145112054650937609108823399841849912492417861437741121550343607668879067054248291985306314225735724471507888326028021544676167669657075574834058463441145917333010216730768108124231433551932981769518434238179789378292852165482557255002362302544557735424462461488075687861874947097473149578242373350871937794727405864579642644905959951316881072115725296031051154642775164154836897379686112497077186064299024058318021853450772643348912765122045509903769999623976159401292919325417853538197267106200951224847183036814446356143737659218106355178622040504631887915224344954289209939868635221034213872443988752774039417959979737306814069942100651397143038733317391859272510291896887302738400656570406002050645752650046919206584102284994556928345421423833737303013722731228096648865515145940571861703723410244830150082479826740583338974670711582899072779318863052460421847365805204712136324122215327079684865246020037722367741454533771438691474084539397875479744132672406493644508794269531957500269660079148913864330076168718639926594916972109558986620586127789953166224701253403354598711277048126542360772408832862012949235273870580348542145491423670862255975643944745128595646837740103977881712416029693705776142885646849255826177465270625602823349383287477145744550981473129829461369206891201367644727740549990598006732550940730275242673178764157051890498408291037229329824356251214727018744597237328163421323636009309098725296222012265008235424098246098650400141940946130456998782988724053445245872429370549837808936030080989676762990383633147026082712869597627821115610167197844344121195858242263932913702424316917082855341039528860842527621371159081352622215897835924769298106921839873580790616440892511615724755647396631328366178419501413052430383423389321437098677185878578936879654962573005098385206854226586588470629568580798523834801981565492428700421245357852431273628260815185995753377724925139262655571578992683409963356792772743117188111686935837186837336905065128908186216821819090265127874288949701150764524356057827372399670491635706577697906714596250465751049382129403897197598440045119644724000312707024869343328963565758589012951802789510678108340799641259287560280713883235518982370994309812957922530332686404382072817799170529048197189867203077818426029702258180315085778844863989039002710318357987302824312337444681874832246040580014923764607271248482939780084334065186581449635957727027610084599695255997203972103387937453248191930760755806027060059020575363514811903805028432475076765761599282403144353617597107162449734311613196109483873132998352630679016107262481951854060616041672124630066548865221694720295690213762761693307683963314996677013928582531737650627759405479315800196854969354665187232895124974836703401870910474868058749216455022703601570340538958419208734084017554008506811273883684066619927949348376944515649156113461219058024998235359483747409871804591961929644654344533981760257024737163190315445540384647847535557693031370678621400200502337649293969835220629453114135774412118631039819791304698629196832359254023716314563853669533901882322969820484690127637689750716943716095951239016523468633777496185092109793149319507146200531800368407094049809692933320661241251608603969434703567573128610682846195926991300558427536606062027284330948512469638863217540287160243667849047813847533252537110266998226402679468420871263121396936168951724569578230790902109138354718323504838633135165016599984001707692510638848037688396013763666477244028796006506241275176777275293393366860479792108615157015918941329420796224247660763688911740738523681281015267288858218010666823338684247237770491848030584419736382402467735440979154654924262226272993427522203281566245502634397577594537612809569511944561025679759599116886854869316031344749233599805462452444337298576545938020403659914941046173142767101226500027584105675851259103948659065970524313744637360013807300899817330776985520381798920243713996256641207430897830795294237621995699056452822235995770005799619286739626857207293565522939092649364825616867261792028931397344848120502811116735062912445481644746723341524204811681482903225000557715400043365335853819924080473050246096413322077374967278095353678627612042430977940470112364712563930262322325605948338936047852415488571611528595282230122165635412678164444154155068797523597602522199127073083957206500298672350584523769808655507901651520867604486820622500924216190662883457739094223947703622197663016990424117956143337309916423849844061519348100469673311745777597226329261336088599727911421233706961642609207191672475542877156648505108481935363319132717183920332290813533754209841954702918567278447355769822480744927707788864331814442726879880888726394681941211476106947693722688927970332832516574223986511583556569375343439895484455866730733281020095370516029375846599397866402400482088557946896437738235884230544778339158069320616411035487957614099135225308189131727619797768990068663559119699822536992061867187474560051435657172540281004453712393609115505368949357759686001468644292742655358222568536627507920372219049982831994944974795119094378148588018456194692397146191272263287750163465549346175828439049267198253282993244486604513543315717742694312687202707690719447721349443801683090625267321336032824213593055826353087797359530549117299825341433991473380755993304406796633587781246048129309797839963337802894989948696503389938527467092106999801633512543158518218990949018194749870960414075937795883094411881738180902101333203461041253360669295415742227932568688598758942012260009443927817071226124861394875384476062150655551826801929337403053665837268212354373823396895842681768375011027174289552006998860842729028856701394998452640255692115646861507132364316140389233830394389917572163514242532855597583490428947972518865647641614077181075204831471987694433039757526493284964862839850743107390947320523558475677508066916247271427051990062902514364365601750830947427784073249483868918580143515083207737838487933668473859111483191682709441977725579824238608963795089472110644890191598695861692212954552459469990578556457608102778078161674419195159795390589457833620453877400096931855674284088126789393577836891197922440478589161979163414987986429551362525357809319800955832144039858443551635461246770662163047393933989588124301008037417959481176502064108201654760378832518968090669293418957819956202872016338899427845920574458658535422064456100836401354808333789017908815184532349692452037875784079746534148993075563822045086429796857601033023310101380436251788111335848220101345801727119251861334778467272798392111415042982967117767020612125694007671283488411682444705517380334230140777856710635446511534261694540425721409744206030139806314472753056668243408415907689263616910222729731278629403327308841615318110022959657874348474862569423939973041857050330678201551813763130000646470887160158463837095463835584620719348081874418445633047890943285933024561338865699193542315699823120991919070134179567301873192448367188811389808994320401388022037341335796744230536419814773814582752816871313365943671880535361058619460375032374277928168682907253560004490530271233557851973120383140740043177750897297087501472820135358598642385682528054203217341871441364298397456539239438816974608128797540034996141687922818257633934238060324001148750570202580637071320900370791733497784056777032996208598751094117046619063991267876576462984360312680299184427765692757568639763631965189617984233105460095420110613716619729564605090325994280611240082154598907782612736855099936591631873945961891970675221339628572007161774037208711801249729901414624998590659731568770939146131524808310131005223089046180083981625229774325410928368188112751710875617306234712266513457241071185281452081338590220892610578309876777513584086521852803533763282824397582902509020011621912970902309773870736276819425121397989878051646275786303377188733842307976528039743755162772905441141866841406893934991912429065990851998931279237324818278777934963387917522699062592070622505161881382867431233376120178418959923948336943948806259863600336151761925891586582093134851682798071020526750256229189487019387107444049663055328138298641162780227800566925097305376306415785600370334393483417765749292999681638179976338811563438036643377673161537109306177201960285386565017000311479050019732499212048042752043732611428453989135623951963818228860781679848516597469479742957875938748894193565967055225067565501189292067071757712905687345495705458338063830564283068025688437478581882318024035707182493402198845788389543285535070071361450787308971364590167345454558883247819981005316581813512951145044171285877542088923175151845720333072611917150685532066736511302305350276099162182979269542226948220430263496776805042277817595540260551569759347489477280083717094479772882842162255753779896988598055706567399587746681635256741923316119085777959050441670894809351270761545114610216582199950421499021914934619336383153911243574257572367188129968863988893148164918950516204879791795476149794971401500967645726498588941119778256103428930663884856743907946088948820962813152422781078510657228553572614883359551614790180377173759169001488424004908029696582259477796007746430289205523983370237280791001676764118364507136726904592729461250261791425247700964380185508992541803734307077151776058342431510517307269892890271776396389296027673504369415677975469012486631069329608387740943551454833655233655047027683715524524989775001311474308193320606232524177910467422978757748564749962977848278648230924026233030516285095676091194556632171297065103736115753971694380573049570316164558928315863297243892542366554464416453975086338391202820748790320978136257210198293462481216697678205227421093355567327889084153663447402118920946210326916262773169942165480751763104990918676319964806192568747193382852764419693420246901100936991391348566608558772201214579570270089933230110085090284269489158168592294423927476389381528130433757509640583378065627391789350722488948733312953107567398262163010302104334690549265573224188026239771174159310041418422358448322892987012328748967249590864499875390151984422273975635388950824703963303906757092483719505609716363065651173070145298583096523978228634758305685340042640481962849997070043952061130328488060285655221339989477407577013983410763686810796084857520141815557121725807976106077676016987461485813789719397638710683696541506543689136113678621001130053375215264887664873059511276024114960157616718765694948364317977477655583714066603026329501321393571705743153568104862789250014512719248268624917628787322421176972763220151175536436129902837098728576431137051099617432866945850805971205649584497208841826849802894506423036446381357623935022597898602160624933339585691992907557826517277040795273029874744073953648757908959885238597470002658532611283182655192023357237667831604526352455751834106580726762283429900337814182416082117495871912516783620309389404067384019356615355864562460131098035703142934559409992404297372533735660674563677224494014645857086048714900442012433384596123289390165853446422272523405306502997516916912053639940153664534961997572278247493927544100036879434282739670616647309865241070276973941862297205898907305943221103567943800960712762909754587383143698503648936160747430613420728527526370198798544091968634117011881158682042146291573947529047176224957475524247386808599882679812819640423517351944373398188091593986884571205570683531665876671554603509965221709356499128987358160776260402056228299775267614700336854854587629569181663547545937569210311291414918829671793205062776258425513747982504433867139983678389666757113821987068963018497269959519958497168495110205293171180099301076935399753789469050429622562480885734491109933323166475812961021476014007462090182355090904075795413488085663284948511211472568017408024172626923367287389676277701285349663362350222656744311876970968629218256944364331408913116574514117620949903579265987119981568087912285319989229282261918032561148396419479165217089636174479212171711239329470982011218347328377878553006309392450688352131788425203743243553265786746288787855076680965919485883493978302926578142152501792267071417546017645562993417906075172457453414288724258902437679717789782860362201868629229768400870147177125943646172482938916256076444029724395957229281523715195171101684914997971616846626721458036405784379198513907827374999578956868575328746809619774678996265269270253449659036550279194101083228541840923892256858728817775575852501278824947450280131761720185441776558660736666384517004847068086536361492610741828283937499805059045761923614869110259659595927725753153098509360712064874469788447894047527047519897535445608995492817999681578909407339658595507863809852870295199842014700591759857290238504341121694884270044254016237441498991609464811268291217953148437364355898360101917896405587539679582218737540009729752964323932368146540244838878631043160899623102758449782649853476838488101155053703086233042340086664187052556606093811459344440241216095898364801023465952412332884099278111637398145398196221979112120267003789490019100642316811025698199739417118714257796161256411355534350453824554316148453069132510493070647986029932524337868343761975567896925513695738966675416864373329683081366436187270106595960174329507994253885225282813555718603234548539827039769899221351910802162322120265826894203456208790192452016617852694622499778708372629152851511647683862236298386399039072894165891655835747779140003522110219560504003036532435648356143232197436511537329965814758213337329981830724504080093345606833982572179277268369942295285233348996051058962446846024925240895653346118083926758944112611564706498280833162483046148695087851051869521631598748393082896918333803274481974959448860105352212138292571744763279633286543814341020028325789403548377917317180338943652134361524061951900154006817123065318871176041889431599868569637791150311568370783523145758925533363260775223317385806241799535139786841996863717486444155462404538224180572769444331459976476898048697059805436259123824651419588809861350392942401243918794960608954108051071291934949045167427657959317579390439490470888623597487803613005869607703381462598524338801494196912426520701039076137209776052341144763209742477785016453454390627281306156079840091312465232065227588501329504442605276488952424228381270431590864618170864607922476103414226402007366702733126921673368805798588487814746654503401840071957570818010261354979687737261284107766469194416158581330088876510090316265806425360716567053901532285780353000730860993752185538299229909537205439504992757079576550733400158627599576383835604127447954940696671772911062880620752944162949988666754255335711397182025095064313724990963790821774290969011278665970950910693751112809312266161202817895017299131707227775811017951482695858035989670606696989924694823278255575488011460929456123090563677994323207000331552031195448897371737078490645787528126136442513410828535728942552880760829343744756542028878942219283746045270773571270788954642361179669473083420620138933279120991495655193795723497384403763346514418532400081509841381991666153134830659057470567708791102672024891692948632783213158157368811947729688450008928046978180570994732729929766922057341690572600941882228039959310723199586333794669441126911414213555698511851305356293510322701738106350858458530391388860146551344959842149116199028674191067430270248500261016423995270867292961849848801296000551938173080632066266462611045310853304002112981356804457738764081112443882061382248252653908578195310592836142798297228517992640484368620691323152319794097998443181201541565042631119941703380269324273455886205977025190940702735560137400494419285963402595834871751667873317708488775864172058543633343359305541245790953298972242098212386378126909198871966311131431008201632997270288511081411222130861281554653026965915367244924407017353491499174278845777022774544530827938216655862260713544892674447805514377335148740246535209140888289280940189391382379008268962898309943282482607551757267819867355796209274611810336711286075720578289528230777102661874517548237358777196444300282707070368305756111934356096338889237872890900186623925636969585761794188179022377400563351238693782997648704049290040913204129375389055526685411906164578221606536896686849209937916052080810562340239518370642559328479930546543797222261054335493107155822063993732008222051249840782353405720088829507651524171563565627551611815963424822993207672708373402389540497116744361971493529275584456030560026929409995309543063559203364849337226259143007026067731040498223824549491697397441105965472803158552176464885702954031858707442854519589863079524462755194988969964960408497826106730091467118957228530617641444838430972893380588766568536740225353639467445847226559738287864272037032553596071894376651864942880953396966455461530897204295884760396208101664036361829622245684140259859833666988952583783421584883499106839370231463726105365576470582978096712336914148946664619180213667461688098603885282708542641624017786298696333497889735891999478604365158354341449495427208998339963893500923727922909964596382251930320878002503565038093108148756032749434004309505779767938016155228143762195807367785538733972624080943779334715868853204419209475833765029782151008130160881999133339490565374222000604186030407750403863281460029250173318189448581199676535105645759067084609679214966823717912265188914637089717069438493984033604871345830745739623663239246081624325260080807930003193537327867494441939596387993251678651407723642461911990768223798322756709979843957958045687612440725190043637733556185770172170546293699831459469120080714268643110999427104822897963761116951712898197232432247219658338337682037094561818425778841197068435519596691694199597523879722637778385311223383991487183259901477287096007272088723249479340759417025679692029206210825718900040795189560937598541731915473644014101365151412662427105848479294280500300791746799938581132348981739809402348020400485131312565457544320607672164656801088474755565164139769310583274710622541025405547365787225629148649911349593884628667699798551988056084480685770604011025262511866562403300779558645296532349735262991794989713475377369347257392511783750145799905902661291238727887818573951128840690024933396787397876556570296739032877323209821282806923006852620840626298154894235542659968863911525303840724200395106756696258500074369444772241119095027810575005546277685364014953874512885801627135141614514880252684407639133319985831751877427165017760438927094547512572845355919445161485888019495047988056108332800622343030396742364880076593339236054130516302038648897842191176995008776846727154992100836948372069507424402916580333345970278766814129694473099752335608336923298435453413816517413518596309820066834414516987417631264504302669104704474612701028487459192297363908771557768134340803917529763753946861795002967995010151358605624667420122462959560623324514793259539639932245813685018930386385212980652701304917041511934506197135751540788837364156728298192171344705386961602168380837732573814461533723390304717702445450925432824716399241216829866946537451508847504959680548993526229071781599472518595586342562126289919533009728835076508305114667779492741479627100291348050270122370148750720414751366086192751731587349026984448980842293334952760908740693666228754464570470229289319264814133704131739367566662380316145581231995541564940804435115490789456820156313626969976619439046640594864009607100644842741726446545031563931659086979935359916491932508192500045269432658646899412823232661252367040240269406210513934790270403404229493688569819185758314008418423283413531948592459867374674452446845287295826518300875809081017536108927503695196272763894107884274070144162038075240674058483777426647117716900783337809114962896836658034211721364353462796834014302548226651294814992493765160391390409587621741903974793727838836566711162474071622103483393595685272568911539379473784286539195079196386116139444634336250070946328200143067401366178023824880823223515039369654682621771436900081701548290432529836404030496184439568543116431230117271719229796714324383503215537063325849368351024485776145778171368609450890594882294969781788280855326353976415604817601747431133598348026049246014866628099488496837868570312762171976562707552024976373606561531113173762439431099309738980704333406860439361127739449851345213472317276716246391719061989932023696361196723454776014885978800168877984571272985310476022939852256515132958788856866406798312988410863419229182118836139616756338871392948286372799091564077866571351335951754454778264585851895352385003556353746087623992784328613151760912144631625009280747082966285153600013399377695750303352981449804467608441061080971118780221168779057271486208373433702057875109155639014721868562972412947340136935407400244964901348758571569235039987241987330455113082067938304548841298967794511934778712563636405041182339042087034537613010621752762120131215861462251989948314644188067396932694076520463333115577394094016918552060301471124180467641105344891582859144430138308996973144570577693770989604165580266623438966406400044400836494619757624057679557495956895287109955342240884429412024364285421970171213413466469179155016103822086525518482458579460626128429819869218807642393665897824729273931234038582063238419120457417291386244788891912920523377940376534154860212641193246877924301285475249743442615806629424050179206279670423483858840826523474307039854081027420485350768751374933113077022100783317655494754305480981932200616718195493201469206951390557382070297686488715882375485784112323099133791401414104655740808668673838027887804755709083284081973972331721114887170363786462812114783772398921071069547265011552633495458560855095717551867679061854597779386791230123947410483098007535992898961233040210608095649616187622244356703226843685784252847696836504701134211108008775028160620343964975740941053738418330345861730190803320378223738803574595676165258387979492864281533662006087271179509579559879042006090527717993978696328239150473187397714697223290285029595432281501634394715482227402218038382850936667153740250533419539303411420370902375214788630757137438086390000536004864804968690505937262613011398275287171070624938893549204197177055090883276906927894405542467258824723688004262370087364587859374645770291679964760973091271188265706035314526568508940149652159249308613109472884205157692459510218047676479285439472695038636207543859227031321113485472732467968006416877244941094713995079432459407043659443303762702361905990115890164195193398119280749613232723444909313839514338872911676811249158728668589105022696917083873476583974172866398902473549839890442773260139058442148536747125063687158582207460728525394938202347385983330313151514570913701278464880374507194846648043622116972901355106338089644135051770242059242240883590033888885549357308870856009384671884395278663681883974407221707780871183527910092945516050088298546736697992255379875223428896662670752828759174025445605966002159757189593144385781046508863267539280470608099756282664003634244131523158731539031438623491985811803071468047568661829580874879106948179315715812540171400016783871991261800698232852554730218064075372760454063512950961356369326812322167654151471850082269631898759766830202581359334773798402905772816493146860895770658873207886084064072517338490591694473096419379824201988962972635100973098168420551530523808457158083439435120821563049744230356057444788412272603367429441937019160209459293447474052682975138530969729209046543087401644806727384625243985110784177742853006291008812251419205726215402906269860796343018101848084349707026506378757009398698736596029488109638833582610629189891662018148887737892806409834974226512012750035861504528027377433591775893318935781358416062829960025986273902227452190162318143455193665605256483341105357299724618436697313590253746416333488541910241292824313707569498722446254570411178999601949540883613881813359999383315305457849353765012241089542030748572835426478832819475916000570226146026496579436287542057600214087442073240085693025132732754674849261881756150395132846722676703021428438113002445557420866799804850031658872275113817072245307124499854156542169188390836760743402494719399992305535621891313462366966510091658074918644304009145499962773602152628904441820265907932052847434020450297675378954908317396827372642325874009329014174138770664895192773310595529817097972326881086125552624315718659020766286367060079191080038794755036346462527730245590782070019262833862745661860513812921280790041439108152141252686199315638813491415362970981277798697342745456367865297393824399453011365870829839028126951869358275744210826212508191441995222632802472173375291460159871241726639374492534651744772165116545162540750626812559072561937137259402111319490919023243772404264659181405233504028962737835124262461757085294445665034414863440711004650303082707506490285385867892504633989379673412358912873940245688143869143677385128050223425525620056309070939938360297834660305237673681065018192930871113067466593122172944547142664962798120427054617680714177693571515040743772249488685076686250740331016671932556659551235830692858835006450532286855663888348246810417500779935800079199423522301927170225750387424989822767058745081325870782269184502796799333605237736198962126440483760391423108085539467966248746666508249326565420883159514182482901140007118617004580336861352754768368397343553629091941520305759286495200186208972570362166163468768358012051104430800112115322328020961132569641240156165399141835490254153359308196268920405871765220895029489110025942265064419359394018388005961444140582994153840021202945662198109971460222937180804894424160675679957212388615769998101162595910127775526146050447610720336087880913107783498378046662278897577248409199193363310305758638017984132893635727539097230224827197418933094149796515644233216762120981915850964748043070770698486153443916097808372758215089577198832458182243398841505590357445357056873608519637803817993753473391267847658971507507525674200786503429122617732482747759090007961306752024307634666396467288354484797199871685264578676158925441898114011800037722987393861134317267049703828071839207966996885670601114664061040628376288051702442852723863335018934947787834853379123095986333762404077465110440500342036550704536874679307609627305103898895573018688270828655678791347809330692448938083127375048367303875548651797825009949341659492229219718092479154576016347844864490039389041569885395116536975458301678895591224192298280568933599107393724364496702022511458105228667840915690007526982529205087236747521320434222476452718440599837947377339205557597375645562078104144246653074833014336519594134441987772623600953539270516915110067935905145362452770129028452036886299925864580660701117842450535219556257610940838871492596580600698791955058600647224452711902894008202454879399358652823076100577339281407870329617769376102490165843914734008996055639783049231412509223444115838018084091803373391308724268157300858893081257664523024098962894529241988554015990924378772700129882037477518611708166755653143816411503504829283355160053816839641978634821679111764990973187364310075501604140372661267580191090709350291671247329043131423641529822259886144351438807126424567450941355356457677276142071823871505793386853334500001417150985710900409330968134996786683336706883545001708232275586755495076581627537970140062313521327869591465611879028720728602457367066431933043477514425869897176531997971258080056909127760617422195106013757524959048433020432834881645942744096391524838132941553976474342140058121240003018458842579069153728959633318561739209716126751727101202933733463598706645481599732414148979809217336232820175838364252268142522851801233591188139341043637102059321965517315819201027794101627712150389506494991910773939507609091938490046935948516964842579911612137490780080158043502492250197218230730371193991749671306690613921211783626777094760664002006836503380292319523033658183044330459161442354124578974940115965088966981422740612314868076024855670007336887209485459847282260196492260575393499922209008360412100618163622154487882645101156696253228671674731008295404320018954024761856592833462944521020396686086239613537231998718793418635346608765672988413851252723591111362081909622821582082671388931659608276470977962979170294224394000454817674692703901912570959652871615957656756650412857850490953161532716470625876101761837241105353805324501249644518007268849034967920689551720464129706711233535163778541938906567918476905436844782439193909928548153327732022044368235704693422690887372058889746233718547059550182157841397768151038242406601447998199490959079423581938093136980186167837596850000101897570972332564108928703601898263138244105448107674125250876951107308460127831655727816777980433432801580165415332469909678492692705806916222518759860766324423713847310950155801007625191110144620785909517741317652189972382924006256420852823078604267910220927396951639044851101904073480227683502652894508617090706572136152465774891080593824883057232148806432307862001990466144694012759061622463376122592382965681422269236622939079682004571318239225998961555938494125452885696379714730423817553732464563728821746496783317364950969603044541997493385951425216863749605658877296828049208537949904031824896208324800440063913275935768120609242418883118446229717806308188135923201182307229705808807375903216231612940389695520120748404092996029516000276277778919947435730752786247112626931179806242188405617276275919132557456530364631020171462942657274897527539553677329365166718913984291376549127949555492393993096823983125544187319015507044340755412627098720927196653992124258949635326825703766073523150471427642750087453706046302147163263189576079795619908598206153786177397105335787207751517908762993543300097542372710417477990560140288287447512404755000350644042896982483259708622872467456795199147446022330811433893646607917816905279004656941782837775760378035991952383162402660695734539142082965428444109701618771777161878394486492966560427093031735159637821903784779188035581414668995718808704771657209591731483497474693276697066364950266342381681393112584114393727696835247604298093818522731834849733606827176508551184302505481296855850210142879096918674852790350993651055536630629141285441467844252800622316817748707731011459240953822359998138224897056557337799818456319245529907897081065145683820398641095495512032603133466566274597791924474890851849668693729038803651099864673472214029941056878653341563705960201235074360232175423074093108904949622661303021150809464772410703238353215884864172808147892271871859651922920009314353789175122159821636661046455942492752183830827147062130538313014268970931125161016995903722282875533340750426603644726844232250595378741732402638480682738893563757468696437983995059567521979346205756070806269440414479652409687756132710053123273435749337160941105139708940039428044814617555241270071476647648520703524257852269062687877276861708715299426818466310229320999702605135096355882177662181557750130145912477414798535076159180684979845734482206667066179596509009113056788642356315869382758500018022416083777310201520914107423262439275738675417632922966168201129768471104067080759769237936076105564672503731893841531327485610480339554340836283456025620444909633753183621061772961794568176886486790463104406421603820384246095344644778166748780479610167183290674637208383574841271230304529328454579512647933503560480918088266767460847498884251578695202525622204459779745417676766684941075729946051230247945937789832693232447564519440674920062816105786574088973344350447305891180076370331471092080112559509440541397007865947048054341828103405627146550807799915582310586563660943319800736280519280877710558557970475456526999761385350079997405601995011766386071333137244351718957709767646276928447138350895661260351265362460801233349526056109992495451301000776608275346272576431640204301589429866510835455145597810613128734418335789465592853351716254973322793447988564975905826923951495242464623904152151051275293534867787745511904396249270027947262838734915013855496650725231202317296111918751607730042998344944514378388134101893804775284880879757040616765632329407324525755444232145583603493561302967365013747888574540638602302127456712294616294458507803640374590944041601795286075584661444191736139711587162013430861309832862356786458827985478614564372008029730454548921184879116829863046665950117698122714476409379688847218939148411611374585417956877701974513624164468176803995087954631878503286866590154715310264366146615321814890724187679522111242961034190470910911812075075097307635528920867446930809267767084256315238130954011074036473948149457495116580035007978420752846910143705727361822281077011627642017936128371534853295171445460906070369404082532932749961067922927852987162348158217331590958564187964298934102077750002957920256492279454083636276956890364826484157882845216441318513713425490746690715849467628623031936396344774007520685744170724605620783658142346192151655279867021371407996254568827470255412804317417643944561769811711778805686876726260072577613502296455347250591231712943154442618402296162037938753440335174131905882937732216344562990130389067600037953615272949033120537878372229694372723043164090404214949545621327254793140509458154526645560059295225306560204941811123579446720478382816044563941741262704604857171302649089612883243470439773077180995028319709381462587583385991886989894758410976397009418384768865610673634306641797097757641198699020808263786879123789972463665456797216122627199209784500327787589953693849965189313379871486857832628278598605578695070722347481843560842593828705030859361475208220082624693326464586324886787738285619565862480871399315017964244810494458284916608180752446510764036848427730292578701749081249709463527018279514452889835982586167369211453200951629360852299469514952703412297793583002207653789080805948530295284101603382397224262582055810267545021779494277068595993268568901732133520327697617618104119990281975180211962170624431514824014854679595876101204844957889767061047887667216222011914194387468782922269012823679834387265446346088535103432919855869533865003638037031086081532347087392908033847217705829365184982359524245158351371062371213600956403076872371595762077855263412144289840770729168948323607609521212255117966649808704366613122763882972668162215774482458811636587987190950202114699332679954596515386654604614263222587112414609919205941334652544101704346412022061414649748427306059322225898301442610048402812079411289586706520680900848116064647945927936448102217600020737944841535956488983183596426250553598849007715808445582325899468510596394515579049361576243081614163562546732517731004351368997149884643451246876701951876308572485070309282205911848053138652665235257050804292714712318092581135836468907820691560356775581677317545872939430107617219544295720573834168933977195147910610817616406919161095431541906124718960991455197796019884735871240607292272306057332395649737331320846585827921417297328317837148753239990784110073206956238829796319035774923017918290751661217693575188275037006827003208308422366339113054695534403731182096050485653954919386343498739359354424463021569314999633499398770651418216863890401914395734351359481489389208540003089746542299943167301670723940207957941585899303008054149867035306883604855117927016558496807942662389226339148459131634062953653121925636055845027138800498014629084344802255470777717256656241956237582383345984399084760373604860659312015689339901868160365823971824148777406144356620556611693866451985120111705266118946732444642259764081431600180284004291287327150564415643256083954908018355411529106995623423076538062549629177235601406095156217578202420233276115389643267612685739633247930968564645470770768134680440629994069142227757733230036614229663188469786781022558018463942623115977026601698160911986620609536206685716885607708489646925946716713945484303449417781266199831177615200886413591008582918079893684861973606600814849039706411908879329444812902012512366380816552489708177461889403958803531330014144764817665871459526584681320136783541526663202998354182427534599138140385090588866318204940984006023020032446083423936313997655094340391903337370464521214203472993762325073232027585214879281999962954584307156065200077944390989733975332541120856553056344502179508009572567724850111610382126954784067950037068185580474531155194686301901389933638990746158951397917982207966444600831462273035127377030590753523050973055054894664396309119012966514423661577750357226610034818365039314954099008552403007365879342330050117209301161573775753526844886726372405475841835081360733795046306667411860536891824478495540431827368832945986736601680473560398551566447734532244835559068801563584041515069972851305689885571368415837111231936601826336751424561977927739471848595140016780359947842848200207798371868849702983406427108793306980328347853685379105340325129789110823778431205720872847398436942657491702880729926968975837063124601352021081441796358223338600939247417801279632014459031067523111198456377998510496019876333448504835916328828897119237935963801555159655942730195200036810339261476244091466657743806825446604291040962640965597657090158284578757734899996820189289875640816442233189174934453938988126626175730904377918418029933350447873870529261614010452344736868060101562856089771971968262296603355493937683827230388881149321731572798573182346887553881910914874385833218497387723259005885323340771345327423598317491101768383537099210300376631906598844090530528978927838352278053876140914566425289870845799389229630053353126509300712485933314961071219871076394126098956183800879432696716893120050645899125468565197025790114892172656241822030140578800248676250919404439162392497051590610196021700265336806995572464337996507707519821193020438486742189938886494281044376388525354210451351083576394625352839952577146611489580191087055082065173434618474896585101060091094981170749671055428732516018107994368669260982853710623117313087166227775768133442011662840819878839892116489943743241691171583400289423550845922269572717975628951528378443480102138860116842060232751418919811422199851630627092244711070101318502529532323513608540522097145156826463936935617260012199883661494223625260931658660575012071852910791169672273849247715503890803150093056479293868848192427445436224592527191130996968892715423059011593949166756020018412546188870890889829355715563419464856386268785426274426988084977958379114963528218117234896719909757961683526164519730195441425868107994795831317856589902732160391305465452043287029768883006224175944970824602691281597735446277307699714710638449103401890633570278591620313497476988921305030957560590462572197176214432693190725796674796812857607921261198608716021372874204422478218508893067680401922263984904052832233797292892805141851943099523979915821916240291343819230677929908638028484124668177387472238397325932454668128976719876802362696651538113506029075658049468221343068754377585523777524943628043529907186108306507243858014256648137405092155664155972913366782833367486831102856409305244584553840086646256680574304557783775143397924987003302979772983814792438317380226858434842176551447881325295466925680429904374594779496063990858234381260835212390457894059033299620790765603296098312618902459403732860659846411262901159507987579309733162160548243907068085524694493765276345773615195621971061068017661305629575371365593131250763457893026243948587127298346633115226835982589376148369565179593073465378474176823082967882824519352081313510259397048730990864424008739582155174412828290316507642020789354390051260826461864782771458462857979755236943513588877470211796790691330428563379061027594823729986333744590167553810899797296319847008242480236344801218934650043091152720232882062787307498326413176737198785283064283864792770329450149675780565409328478153107262850744261075791286612858285856256146662784190609599041006864427375327087253190656784528747949876508086860428385870198787646756814212455859318153864531853529190790250196761748758692956392906257395954200566422313594965437259692274060178770097228849234828677705044355060116329043503776703063415487257154444880444951905865736210561097256050841867913336246599108251331502315697233641684115001867188875778017417691241937061058120936632912417422671555689348259668318915771146220137624934084226703678718646496772590441176718262844124732509590499752397324674209152342143763202200925022775814070111205714905035537731991741032418100138653801860059903645705548970247896407546983920013314695682968844207390035690593585642641505656336265944473990784901111532650653034271578585512122600666177526881134575162083589322905645680254864527569649581208531872732964323071094336119812906816243166020488005831205328959192170138981991215704962733009634041981933414307051829434040002198420943905381956903278912621182861736193569304300222106622837039194610685895163666134290253913493821442092735204817165429527917567191764740139094508411951014925385464941786941946029592058595944834222815962653538959106770420967172317679197533596221785214615107887377022075141143236541656888512389241397752195572948513473268955233116646333304425442632952135906258607823591038026665768179808960670768373959112355804690878874636695617583292708471204749628431603332917501484500436832379635121274615850847547183863383248862317412564189935392317716221922632277437027881181847749947825052670040050917001326737746172505955365548108454149299477281042187066207613494602218367190567907955854120754154163058358561725025205081572643551498603656608052031614407321507752259126924995565334584826722517973350224096667638136462292932149932998017409996033381121620476935638799593401033465795934602880507286676711396869771486609336511100233596921054482698492860882963917368191602294108436189368402891978476392855850562736620723837881741098627438416776772550066240712490663886537163749396850378580370097209990325643062165961178465726984170926570359486398376702728491832573187842525386722293290890391809105585050528060624111833791447766878394429814698723602187736227244843662032779222304225216130632089266504501693990106135817154413706102759141479329132946455221111106124650305620244379085045281867350177603019097131045321984584447728300234920052446955291370954943218029369595001846184175491439730548032542721597945153345601990677499475418256329100234839402873940218934267095426184605451910420344389856095865392131186193046931286518711424203146586898640909052550992584742236537790363077629581725199395630100226018638299295110762198692325364151964081253905451099143177516149622471534127109600015953526518681319851373859009918783021231064307370109665408757074058820620164250075199221013113669161375705481399493496189727220857876564117266895451689811094127940808231594020536724963813633158929575758362846600942731443968791407500759246712908853907728250209570754961370258825399066549538165504742582835614131948946417153594346450964928414122679540060582366390738676442255105634684796930335462049115531563532152155344400814141831826678068959741406590693165110665518662323619864213229006643211544795000590832507991379683279834664614957709134365732397545786149180398647420512025798401307510651083197236480663606003867924307446904332617797864941054377153853847018261786166943187826621200533016894980698048611255745239600676244372750327608747724846705234596211864369072279807882364975972156574040711512810321643641416897382467716970294952727534052280012360992118901402563187573011260850008049884725612067414090286857357328485339605768214097294815259389453207127808326800400161324183276023459801576406038478886211454231638373006493285026529331231438200063977531541985125527624208358569942371147467143199767893873303085502983168363928232337781847760507271098054998334150472249420680085641656445319819165574822639255214844892334682825859915441152884192874455821286698756708374055226262807698101062184935129979833296877802609211774082808054348550982531444733356555328288391707299137380255518912323476957138022193958102917339427649559693244919226059931075725111176628568788689251837277875696741706721411299640750988014983312415979826283763040121079160641816057568090088380262825878843352129275075716203048426770774411543883698545099726265869223629806865876691607317785360912126060473788137883757742973574933047182518553847437737541436006174689030005699605314459284139896926989980326876279483474501940017508837880124125717238960612232526083288608060820399722318406386312779226706763744778033087752545728762521950664672736900691813842349374388678080630184985628160009529853378051168684429093822705552468059423003917932401049540123147544932606748360458934554398435345531276145734530946690558126663031475364692335522277040012114309288817912999960400117613648877387122109365205087672640971701540583355735960415893322036678225899124314904102384852609388394594964644468132607166938748111568599131317735070815497819181848093846720187508337244543521362751699593758035602876844136098132744291481160966932436751863223770274747619355148753334948363905959709424961688745175100468141490609686243249360150972429484120238537628692557540703124637615989537684578902056326086306442476754248611586509150981676987328906513735811203645101774408470908593660017970888905669296214950749975914782474315134833676994913460245686903191534101724265741297877055025597147185113511992317539700834589545894885608709352422700869213729406967420669137726902061480323159627107103396959400523170873747209776708237825482003532954746105053560064199325238591248888206909571104252172434006164842464985647137662910425042322786859568105109969880755859805970275413910471902675344011633700934744207201343942030781011653250599402000654305499004880941542499585591284116743979473341995103050396757856385274143434391400649454410961548961305426281930599509496218927361711627775827656587271241811322436112040746646044515196285115971013143237386034297648036609869776855183883280389277520267448154921600704306335579762574859140216902415226377403807344180780070824702766298876307517870569835464082487566853655682523481446299479139792031692590766590300225213555326465323176094824771388345423134011529130407027528359449865709764734131317059574763477708117223514620204862454525872725158450470166901742431364669521142218765822278426442957080601263465830417574501485747677269771246395312482147707779531014159701941897446647956869609920839857208766833419782098576298667654268731869152945334444683419027952947074817018069360196969964688347845185089568213020274196027858475460647386010831455665688777966892125093703117168383646221189299881536232611649040615306689548112145403661565847110995413733427018784009403116204748285508722560533939959153375485931323601486488788377162163842666168706963271290829081483181931525395415388794291081283420961252526793057566461695145938379469487438424565992194920847088811297742924900128919206589701474886914676934358952115919643662107559563042219097087300648465332792026987283413240230385014547905760525373435733577517605183713230241170575022207428493754534516757537692917283241674505335047189838543516032657157647905679844061585441594473649166360247543625034871393594647353340320651313102709001027741930835681736567393319802560928019867279389267721058655495805040215041825259347756282410770658458757954188662199413517211668108057917265474311099131463623867329734844922641022956267516374039565253164323489777597446411892201728558203194370942638046188597738973003562931227783742715585370662801011045485016150838363037089059842927423129670800620835358046698483503186384338442130701261446112364810064621213666489007261492638763397373406625137924545440501475543196123911613514510998558505480990666912416147634750538214151006731529475075448688206564385180455596870565035960518829042844699875655212838148258156129594220366301435684115021370465092303230769793602843666241401982840274472185351557275877163681502648521146973924167692886733824278974658312213266551937940720225277104188796359314345859084898212342629979204399016247776340840031551334660877140414179717231654794389689922779513733397089092810493273931745648884872061621136077738207119358815023923779143951459422430406096790128670803861917233353032980307509787290635376876809117658820479197858488403670984849888991337083451841273724565177990007832004656565798301597665465021743778374340205804223685755334511518929686751400508024732601961217710589255310865036251338234680889893113210535552564326410998567619520637657430424027694244217852369849696594492098642204071605416694152121749248630551838618943912171571817289267053863004165324519459493427298002865032550261727448987189162208978015390318320388562063968461448438153355408949210343220451593845209505056344483821266689617626738632950985260502698284501725762554285093401533018509730858499132786757376108209151769860832339040353258117938680907433031265214230301254945529723851119339767082222021980440132113031577205346614859603003593511287638519527143543400773761032378758469746084729822020011633745407188153557077984482616499424442832148102828861121970708742421755084031994493460645875964821393957509504461652032318436907487949069625022789012455766986199728059706050491534254987113155119373640156970209330683767365515331464436062330651309862583048243807749177113579721413286523873986835133724363164690535520384892633794552713227439205336390456865375601824606403940447174152981325831109326602850630986147204558419195090279257421236334726545496639534695101691259864502936683576130699269643779573278260360786960871511757502048046513922076430741791334295473182957408534732452700403255351002459688633101339399021103180137578377343344273621114889190411190491748539188440544849721241526364383705677998137143878605787225042185150012827413068228157024476434526902112698744235665440554283132667305820075005930574487268838338946227897501977310150349048463337473311659635554021794798948992362848697475024896973827617737079098138094015531460864639406577788037566499100198684964395959660025853450691656793853755562727616479808940449572474089371627153176654996844155889596536256313409586068907572119689145822966556664467513553780803957560376531422739951950289867836654236126920618551946612785575881470752710303315247275176802810731957371557561687143164494852710785535447324011313344234449029743227140269526728127675606659902410388147399811942255336450794405936182209407945581822436053311819590799216188210043953624816528932424443843464966744169115470736964528966853679655952604505350615806872880968255764911381032790621039654499269810646633108842735578600990409735169139457656137887980935627064887434764169682420449290307905807608648909418418352109650872287228398680543825229774011757825469091245186268624570589058207620810862351062506860330040735930776762133165932515525908705382860980798749002290044501350776982884986713295239255811316505524828649943693779526948107269228489132827212049405199681657580339006798644234559826854271957314548235652422474325992131673926814976194293122677866944864239655450085447989579751717314199445998398557502691965863450335626687537358144161867218562927353930257923421116947148688837689432780126253294716885124721291747845774906196512951089774754539006459077759751655273961184344646843766911187821107488853427354105324175056366317788943002247876575313316875623611726200800817158731936360984110934144254355904958481019411830669010832202815048449408529746567889227072444316907148392198001404805632938988213384042507727271407402383765630588123239482559524122808505024954012462728625828464256542923285369893589075143214287188013894801444120311270016848888738841453892233620424879056487807387948283087841206793244108873085704871759300787674161365572699480856623884427844922152513523304619229921969817054392159301374908697651723704355337976442890276911012817579268070909555429009112674464031125814702876194499925486514280373587989925491493700772069123974600544017440076224429330383942487888327168339530289319525622653315283187545790456347790281955381521149291366883525973973514105019318564566674458395370612907496239956153948924032076067242240740842174545347438226050566656404255798674811844456839179946679152270255930060196472717924160086752849246699829659111580214326776953796644437590332692179810876820517998657234280170228566986621776724479007759488415522890893925735163166927085732102688283432440390069718373087040072843753114780890258297508392224891177534185505166587069267124078086310411896589254027608219202126757582265414038577779032170187230927751551076448963715986958559457787871492533346222586677282716329704054264881672162174046789879898395674406876943883608334447784279293079530134218309026719101143264192403302521463257194648817582596179980703987598751647916679966084365794268489321272747219622942635018423063725819915345918490894557768893908382276008563671483776603779939754456928788766258591624510616080421705906922650744582017652940740436780730243185566768404163980314397327511538781991892307729265709124306600033825598418696262908814088971907202534654483486870883441423716986917891728956128411182797353911995795526218709581776582275057668724518516525597071621431957520838439764532829839591225670405108262205270123733775943132372013109675566533001802182901520557983994011014731225111627455060504386650242736283918202873235380583184558477555015974256674363086617852538935307513802290232807648551079202675502321044460313105215100280751542739364230634262060311697022587878460295518062512161103786422660214372411209090308350887214573590154764029058559915535807361812991074378354008700382434136002202778873260599005927683264525148857347633071201484160073267934399354310199101348657194584500599137864224211884235839691572416896208572023668492583768546761125431921064924501891597830259615807656232386307370428437979959998543210785974879742811051401374866680967409931169794116534861991017386465167554184916586580438311367476542650961138750858652694003303834843796274396997171952944924495623325358342238682309200430152213870585975128290476551836975696585340337128166265220486934149534131565020112627127926640174585162083833826474669339019753879324684559303300799535588560209272473902556826013451038646608901474784239008494299583382126126436235317506594264823311008700856549004437431976423562750591548555239918395752118383961967273828106275385251410248016218119889660436024826607244949240556960618833525279664611726555331027778917368474503058063960313419196460498992373686002012883984844196416116681995523237983625310761612109337957306975453260246354316487495781848414395558706180248238991182868033420306721751853342441466751713827420660195558131196007179381690901246976317770144282055624446891521001335476114852290853495024761017481210287089145728822951728113191129345453676970504217885828047516686935162661905870867402857887444234655229879258938999788777604731185550877709135694308882091386228568019554994094835004657055245684640903082840108834335167731581916598812763221500999992313842841954735837285879658409875776685824461695183727256123309902854838163782086732305623678387289835566365118618082972120684042891282535867730570216902248607657743650498515647649607827709733313299352466876749758199947207341988580849341576711920847271119877499177233400486406379388414243120016227845190464715857520029768238437659824845456920990412156087856823031141472609283491162701621446630256115777252269627459694934187312409986789549332737392750940389705584596495871783904733655263965673697974193246727057520891753041457064795899221877934188590026193097681560521296460441827068415614553875723605232108550836177154269821357317086203486599338921399756782762682036336856369024287985707749544744184169433643982300505238597227576495295891385912219311062508986552020947829719700029204160451106703882529285441400697167199978147724112506450272166606904132490834174347076116675978393101222942225988324487635846176040563089739280472947043431479645054767333686341001788019234987312634390922835266442123499726908164919900000596365530729944893125667812827763547977254060541346616681163388612060703840090357518790741303496356445364614237576490201371108401468903659254400140285109575029523314988599009042047550876090948233691204095039666899184723459179129129301909566532313664610311726538034082314208405241348666671405450810772326597695260361662642362018797078615641114128393247668170814347458967106383107156740132505918787576429457945178842454768351609016473443242110906172797340777763984594606303484685839707692611634917164184265858303003141705632233629585134715995843469400384986849875195546986800499292783434588756796439552797144143607148022724674945532829384111994299696218114052880486660855364408582723285022569530217861567312737948615876475037658159174352255593653795509834065764853849686906041651709422218163778609277992737305877585786812849172876494770593876551944792729015177149534989097326270409909342088303811278693903901625664607828004230411745882004414334463644505300584766566657571653465964828823175224247714752766025159439827759261761435302013519961051578805861549142246189434246666964547704510654753288279096685148591141195921071743305552073217117196473143486014500967006884237100619743108886125679978376823608300056977043186119537519363143188512874968721037212416129498077377985660920606404476815663600811388129539641469528218370091210835684295127066448533813294883952971704965675137337743322945690563153409650657758453371052348667449200741882495503937719035061929710218511400280415364052655570299929372217526950655418662754291642393351805096136526225125535628964730385641636252609982652130858282524979609856228959898146661068604273092235902908961064158337633582219938897742068044600544829901476255331984585369801948832088653761495884518134718511115438839565668434979818234401530326145239953635720438948755431754912139932483052903066379471306805381539594555365261538890909194009335855531688880654493459604648992434307558547451519959683231980110329886764235815261214317419552168006798483029267277915837519784936611471645198122284742229326164042513983069564567057921291414263451094369260760107179652466401832959994465500575637205724241006589544621930180646282829627262825524144449472030336608840307661959329077976945885044701081407371245496835118613595598624903024838040529110407967549785579703369763640163003578064787358631083924909713567736318673295876396488629852364652139382052901856790337211159540365784521720682763416290856993232347788223492795692294870591906619313956300747069595122305611583342484802243569149344672250957372937573110973772887686962528766848654390697554586228170217292118684829327772216544686267439170151917570485154195342229529280543017381775919990322195371323927040571478555141698555684652335210425591402921790743673307211150452041666125283299661130217089331943071688460015996453321709583582491247723886638149459078664071523190645334503328460798758142467984685961729026349169226253839246438854620350860653982415522476155251712964977563721275832570271105576597435912903985893109027026933246818064749179263862730787782429507360775097276360964213940486164919196330902950316721448636038950243256374854654598678836751370326348390810177893869188677145300858120259778390277310709712513445236306658205283829520563955564511465066428067438453126497007622957596897285119408217593186633792162661752933996257469793681851468718910989339071003679525873552792394237867040038944581623466021552243384610708208923395320233571258045094949713914420562968432615746932418439932381257597472436410572063230422424087448478639215706720939767279131074001108453000459865820303494353063996598424838390445251933294570131248710756307951066361700446532123642068651982067941140663117757551765398700435907898661369490963829117111321548377533581706978564435592711441353755799111019442391426219997839537138586754568917936740371992269236628064872978225160659253844813127274141459589687333080268498203181055989299313916424856247079759846405108008177585178228000188776878703528451919379307282782046984053556696382166382494515228926852001390554366745144282517399301117276796185093280516145862995886343638895005746146493750597782533253798773955049769915079455926875173579769689079202771479766677116637349088212249565773876422972392635187175548001858188250412015563663820464253244895930323431161846022700319920376575344849296696053085999719974673058516641917530890782850475528674282889743927442080972352552361579670534427740980562285490954995314439254921849443260268437520582885281033294961215179933941387547824433645565814514370267400548961758725767773411659682845128856752333277683875431802017723471925456737234783951432067758378640819704613280295789076043732281149882430185742834539132652264890984086268166060408824293517406297215490531093418814290502281550869948921759719416488841118307611965280262776684313535889803188442934958451481079886329858110737552022683662842404979807908092615536322285461066161068325532938291682221928156991353151026497177250594515622218810556113888939292515707068953052817436322036021835192684583081797850903624561035324552279496725113926611208711584671367688104893957112086015097114677051516696198670482546301246920341947536056064975951886180348471894843502345592606912957354904617343322393228544737354411498711917583159962010162977297357499239787711492868529010206353083330348693964645765308133002161761525191498282181680252003605054524046154827318272990572714150572284283354298733598806845138850365255285924965930938994256857655399573927212783538240096812336738557843695078859506207960642741933495207889720883274127689918278271486181049517748687285736722235027182715578620575060385753035912651184022058653849513637305300086898877126456636463007168007008526656836543957653586640946961930721114984485400544895431291518728510194004411417985661107176934101742144168639310517505690057948603732709856742284157388795548390678846714594350291344150787377539214406355414109745641056626177668739465145891118563501051414001827178536944211920226424282951672105940271970392627028023474521810842497914134656460299198405619278905456641023699509928609356697220399617806227463192189426636824407441836491024114396383183728012654323893402471328614424222394690145410158938726734109861949261901786366612110984800165667500854859171809309604683324767079454581403429354534624258376572210500035196955348665493985135199580257645976826977539519201140248710714338185592121113622541926765999795019194821687583099291305158450271477854001835704126375157653148906299404901523549867919752738436730908223094393308953967218857661500336678374779804220625566145139593118787045127761866414249689748245368766914813409049614784029882200893965721910904353317281768004483449985397192949380815572170615995356792371196982061478287019772630510079307646107777589265411444935772776249036565558714278102054731622199799838564472053101909969261871188620648075019050274395923627034950148416720139642632388031109696603409987513786047089100977553634440662999628064620391027970967376427293916286964577112069921515781428301284822202062278315685880899529288818411289337033181734474336251624796476540918478330688841221801374316029960844729254687541656557201254339675481172449345130457724457212697733038747704685791084725889221713011008555654155467463247954689687548513368758366551139403237776203130354109292418529101004911849599485046506549482212008747500077250844417101085925653562995155380505179874605812681199483957274253300094469230858401442142987710721454140341260568577006020188811926236599929950425458843289601168350617209541114518596541231748033569117059697709493288014199386133653861679754705197564074439526432427009634002684238056312600012432723214440083655432822359742863307126506165362141453834662928330102819504553027080135388392888353144575331531821589288605423835183879072297470467788202178743074847056520733596140552348821017810028520596670025569640788859378091486390809967870634724993889930929264235070799771366433673046138938232012082895242197365702480535631365727673202514196175617079364300261822855802816659279230573929780422499509339054511315847840030884103380329918514209348263405554558043815786205853102861351022809602821909081314509577588113434329334476775370598532360849957928329287749008927971521945213378163959847479443581493085561335154010805881145082305615955592860885755361487963929058393102045107905719120851122779170799377364938138000801298668554765473977555374847709750934615029218899288645536385529790038374540658173728290061176290928952130684922017953571742123731091938308384103695603084037229724889668512413655010853693202536128840757712330560738698390559932605243095372426610188624088989503466139419487336031193558072397395444532256913214316518086537480059388553995563010513760559158350413051060854446590460776508516029406994854139966225376843850970493623727456346239038817078287058836588327783191621065055614470615228702279361655999729957623188593951829420717934295076924411039641082506480279698201845634108250696962816963411030716146387018975959964899454510267800482499359720641949904377020554260960038270882747408800127314103286083053843353475168782020988485621433433491101128145806508031043535383787103446810944137907056396996726113152739077416429604254267818114153934717982696195125373441215680690164333631867077782703424523443876111572749147488575363245514532587200444820331176984648934908353160595094076700011765143104482727826878759401041205976803428964193942424174305213188804323612572082815540157705280516786491352476628867502605056307003646995615931823311495594089218075636514598705018243743015443657357795900782640239728146935664317043950883902151483203670907954336405633202229454643427097336665463707922642177441571231823215807553663535141404034343471901535055642257533121739794964226117463948508708571165641300444636053872093835865038961567530279214567834140182287759050945903136245629420933281743948206547027207192998138198328077642234529051748605057116468290418962044777675113316171880328730010086587820810325310459344338998270574125950747453180506511009166823404588537342163160297599428005437121587832745267011259687116566915281878176459464425985100315015970247962831370768891008417331327676282801270692005616468536613786831774735032033962318094544068042076352035052076821421907425405521899232771625148079341698454914930915756883363257091357302418660389283194024303365416059619428044983928333373663077978082537656921966602116746266661974542769897961411609549047113934406816836227101271877833687144667707404193509390743015775493844623065359029394679295593320999551215311153878200629638213035162393276373615012046356889217210321235866410127870195574830922222131636751320503636352445724761457914847214278983829284885475489755249607271999525591754846947216711231778168322850771737264127633161302454508567842052038751414822266414420960914718748128705989574730489156808505483891830135829605964685307708480654999186983382442196045579891026374554433842742796386829161181971024154253765850388031431884225322722412191912480682933138080957648549592333091692221059678274615240020417717657554476932612397727746762193280149079199711404489869475453045870037742034168906545338778687578379661081660667556219279028285956581850453497202658516314897160993046474320779247674053788842121453595333713333098312668745274343252826790844246287960756684870196263691574247064226498156822683030110968278993793302782639031502270229762502455285711613223252793987210281639584309896129179959665501134499698281651297979977863021949081175053651737012265796244990220578877766325165458835748669353804704025349872121619263025426111331491312873027563662705057646336146801231817940226836075448350497057418391752348402815955268979480049772406662952938295490160186861285925026725686186279879590595909283053572781695782607452763928726779990801456445637241112659191235556535032091823988270211856220792759635299084798103544431951008083226270456235562688057062597720066585481196012938583915938233500436797035507402919309188447722718773734260620073168653368413405653803336269745427753987560398426665904424003809532599770526256187694468669872329449187721363813231528916418256464463265413049874505321575575936842867675576720381374279379273951426555984371627520424685008359472513813583266449002588046534445964304313980303620057342693174214561111272644811128217176641211025473695828727526149221515031362157323880662889803346612586416048854737959878127875628543429651501249964663083645941733633496799972016696706895425640553682857402053796785150130186572122878929494117901912982578005675689533895838443820826428620891863316543143398474742485204219401727949131611628614019964578625351776031490807652106671176570682244744798386675266397220561991472626109372851998608178438174757065025117716552848549314350683328294381551294568129355760645203820907783316172566683347356782608778943698280215893776941427591472905659471808008557316811839662783962037040061772315559007340414711711368388283603677636013462168621768827024356989443685750646828598886714899061122838422788114160428952450591552267373959815991979138899154309589412722519054336308057507736642791178053741929583682993078586962554629706075439341493112419706066926644126751620973743711866901823683639905318445289138352697789101002683303879861148027840117573344224111839199638965863083114952858091296181369752309082211008781862445585794027061326714681342628728282477209169006956453230380756376380268968269285491645637307168957728760063312767887975261990627918741170618952633149476212276163039275894146867625002934126146319546528067594744215827409675995539899609421057752562992084827725947215446423485421066510263046624289660073579566431951075960512091156241930607694338830049242974465338840088835211339768051505528955929634206358004917110478520084767170999603584885179416133403509610413618269576387072682316772068771832808401933563637576301085128843263784949239586476441324176483042861240856780040876937032427578670302198740627646837692990670092745065858693716794929379971900642758481474021601700885146984014263203674886856280798115250215889685230164091104808159825892085870759128840547579801573582712861163032818237674144469036305929915047761419178990182280162506297330979635486944337659789347826012153317334117857188227546604157893123634829161547760052345769904853538502309067928210109669296910741931885157093606996672473686624077375459613180702877251696514367117156715093012412888236914242203370336805215205222856416112648490489753830414221517801665856451755555888481150855973387719275151410659953237068101936283784106091494501901846365060465833865102918838335481690113194915697111421109205142401293319560933101034685488320414050092735410908896084344986987607611327895126132572305335842986591410311813837844556327623303457414816522850713336496815665677818354435900742919577893436623944080355798346233887664980936223042102709172267303480640509694816379123871430901534593213020210546492003519363491763607652929952730360155805341568438242368165022076704840078640496491336051328872955194185479579153923579311598915295884003097249246344812049756142484861830156205065833512797650822034168487438905133132661699843194109914838839549937264790633616183107616001605076508390380987039533286007980336201425259925642741044533733297346279545565387990203730751362842819076766491320184945854626969211332989691130708248180537103121493955762303440681872032336948701765985849536585427592218408100443246396197306466405882791511678924916657800895467644318187691718875179698821541464439917295809371323300380200344549411279278488685105399683494944843031284116694479659383270430490462138049830985861367086122448650994700908749402823099736681649719862830255449468695815486197925771311834215107310176318188087539308852683985825518180243566750509014661553484950894670099683151455045260674764037878696101557790092031434675183792481022391488095467722697206909119235599489430950459171618039014316588506275163608152762675640163310299305297730117481812385046531826834231977181024560846421912085144702511724680971981088167701187385532798731764002916626934846640236675797265072919824691622275724746556731070398212041458137124635038897973469176747450940640750230869348943531856872956227714407729922467527578452125072547271437799336285134523252166079208356875394368829230368346024175126553959807869108331009011562463127892821051127185562128205754744706437932061379406108492081802115015961517068044973277025463020145194707589426768085305356956156369002678218359832236771814766054059350809385353016577257991631702986341235539380035284833855107664798565313476704857143303035200013033384755894754224845567740009783609201300332998313444282276546642313559156329832596929824239115248610073444422536013815677926356326618887005229448802767854773820158199887580401224778309887118269430553415128674534153907986210312651411988943492559532043865465235237458104356674734097373609614691400007659938478459211238008017651610026408285932396401186464311116509090888111589214989094708660624222438517136482069630937034926981300005786597979442254214974934957649708116234174936582964411221290679726685039640569796979317363044629946600622332640938733825768025235821723272054178698161983859415423828570224867812028633150257359638903184379019681983113737001601480267180723338919522177109220922214576677576191113548799276521331179079992140564126939626725622171262199471635678384261146614323325209081737826400777364231451720514530238060334261917080014046725563347217665047238976595750142756547451347269546417931252082913851499819682205556591099147641856714322451356179217057070030060304219132685055451109647656117028796222339940351909296491332852560604531330021088582682622506595496865090076784338252973038044829036948048502867149856082374544968089900806910675297900926140708742575992033064191141833552814777303023357532960204145099327994045528089338505542862140555389246654058844909191620281429178143322091279122189192125382378452480956765772956257624571546363173728652024503260729534652643914553556845086019593701188678493915972974887418640782298002288174685361648046734435732772530942528543205018456459869450288105997701626490059777491785845441012944883932968285098082709333203538509592096686894267227115621085199483026028616839006795804402678267417001188687101663107168840645513814638648822903690962516225109922534617793118271269112940537834469738704110803967847887605150859556753064212989305274415858034062058494797949122541084960626572853240855726454778595441630474898983045288384296503832427671233771869106258948355776833367082591072979340036770868324979741403406386054888533573363574836623896808019343870060620125028963314227170659593966280863293879861115652086658650372450003115212293407832920329388132925278513520820570595174270899118478470929634239286185591358772404746700193300559322265776424511459283249855231282515024038381302179636067051257611512296218953655138974917155793685110326061217940815636755823263366957953532199262161475817687895943223018346727243059408946462807893348005752127418702203541526780131443282972534807982666554719718045754180302292788729287459244295161679264520902457065946512548336646453799000052138419259217990279048345286343132531994848727795967754966907247424694283019789169840968097017121157752426102894770794625087345794853225437571844530779047209770678471273510337782999236805116560224808220305816971448827598484431960640384599229163755922315773484247972086198484655854129903359419558741599682006278589907463626247239184229619361996371212772836663694703837766938538533125694588957696482928896297707002835599950271786671824080754754873878970605117728116300291973002431373860978157670232023427702222568959010548959956041864041549802498637063270821060566716255312408902104019499014566769858603002166224954428488339388712056158618832822048612559414176076174684068238935786559200642110743641511729413106308070764490249516178837675560876418298602697588500301310199276806184831609922016882339642014982723507211459825206331658726924310128105129512050661185817668803206910834671870161927069883184842594595299642022768205115225683661387676394162451743328089876445018598248668343719169438122485415563267244422659419371483558247351137684048115318026561272028981493719710584864559693864551339785907818004703649739604415107199537874856328878769745172299997195747380628362017881323932375883863493971180097441194032229868951121749310224100526155016477185050939042147851180002151854096794710444942695602813342515840260964196207327091181149575545124582790847805134555741358215404935194608423498645461524816014146038155803664027330818394089556836361191797305371481825710387616011079210712302712078937600093366896471608146392709766473420905064925201628497097109747752540294827968811631148470434985304206388782704427654996080249584774357957213559293016802761697701006971298969287587960092111171353406590167782910031856992131975345412613784930810552030993600483420866957629063480891596746226202061777758612739241973929584948630300209850189302640120222973212378600788068605295401452771749503287507188926899236869004018510804645846823974482138086398331853462158755904926562480806546928225584995058477388578740070235452319890222619531326365621590815262586845330754626587358900192576978413562422620507912935973964380168092498858684069752056926697176682804163444465907648261269353840589783644635453159818400038887473982973298932335901906217923386160203404837717768255014212505257311586318339959092820092062204724116966646471728784500186180174856553425159145897036598374021220942220547420625389207128398003689705356357922995385653635078325841542539536500502274281351823412105944107988668511545457325836989770123727970842036299909872364353391069582036334966551121035623001640634987270790328581121952191789848747591103870747670177577211983627954536486372203374801306231069567168354993903329365525755107646542501617217839899081392502384359026075735417037599966657374412116659688062547128140341262103247206848570724716748555111706754147220160370889446160228592124384765552968549060212122975081077354981955463085119668311330397584800488214241795375734815431423820943569546295923876758379180809027014825474142238305196177734485416521264077679766312297080071649368629758688529587407800339077648766764646530540859951862793033569105109989694293165899923263915716875788561019305875778926740043415031979303463296660411547499171526096484394236406286061571749957160757810381166251955826912731233233543084485323791239912243782363332567550074515461435215779544163717464492700370051490931984459646822855982245112250311528732055751989473786955488266716513280265057613378132209706353118858786735896113350565703073165492916914865552345318572185531518815203619989528237325065429205984674915103882984432023004055689827859127979535642660575457901779098304137749314526574038306801127201630470218761621556327153245218571072002383338646632663908450800899149109485200821616353041367171086882303911134389912698044422830262248877093689015322588599218975887432039326599502736716419858658081329374933012521710567685515872349661916689722100092582822544271953723159814767506836752542992917603045177796760507347336172693937899604402869010926088725486778950901945773355811572138918200126916643122588660173843695658229799456886617811757550179832416988115164007080932645066242476529606427879404525940797811620994505316074499874422724677121551998464784256277317681712294917128610554061520425626377845254779388089091600710495497522512005663237719217225380753288972719723669972627197500589145822688129595210413421995188746202022993053511841374285185224356400096852801073906666046388424625309882163108412556026658743838635333025280117578585303088649339390617651374253305609275155835648620356180382601278393362004880717493683246117644519008819723496310464680308775907523648988454148105800257247010046692417964238851243358445301054132781929497636798563286514448212698643763533210019271722071957719539670599186086552517187628791199275722607666107049537832805992398329157058267879053899464159290020597757870929792296598169534510067673108397208559539999201931202814277002760037173435078608314891312314122380055340221226634359988007997339468993927555377843062426688847495918336495199807450041071276961708552020666734463761239626009366142832062804424057781416681346050061555668278763389220757473763446333737360475665471186390997072532802247966606458963242094593639613946295488792534424275246365464719055263662918071741927354841387643853456858050009900316526319349740666961527058991395673658897911778661091367308802153619800165004477027227318795738012492981232557658457508431791909449060787499119789033941274455294345830412458380722603294873916176498613235007155045175462492875724206382861655539433817355555864380954226893911446457313032252319355704427479024093329769191684258230472376795785790458321109608638791004736877554214173299959557006300763567512939195486096050329877987394198638794626656073443135790132391203418401672139062563480179335545248707419321597168100945685252494691668507752652977763996499678148059920271197542500441622824582380551078359375339681353072821247667255041461403511747042456507375570393116942802344313332936865868308938029825028953882430746378235803616461737921026713906981997380447682085487593028371315747617785998701661376804166571063122082182623734799855508834550694796837943839933026397712573364690882426847586509300645671741354228694860735949410579721951348143667591816082128819238708286436626092587647306176157128291104675368199476165283034838361764054581504917409944566496001224021998443390976992608583674319441469679550114973977605050786962340915331019879126701500895054359768223676156282834764418707436921555393018692486269030986118457749188894846116380087456352594850291899580771379515840321397200065320200602479823748846600870356676418853699436636714887435114976573770036108404364993333292329390678126279727798154120285784582438084753627573968982767057733314910669877184742232193788695712442259513753386801054943799874317500331194878788016638954366165901684831330881307740394616016847623246835767002896778843318795395374825245129163830637505172292445124228024145343472660037578611587336970283307900165697447944189732564731013320164666527681885022417988712851732940147537211922558272725578868606749639291010620213109308040320845483922225954220143266315675022968671036949932257206449583835605619359963501213089653789512248878023692863229969963626837450083695671923355597206214564289345806674789260728900563382199102040435529583837572433219072858727666883463092787864909125297494414734977864402000840763305625880973004497091870014873531728848316458151337937033333629088024747086831051926336862975835288537865364862891195471523927465356124042703180540070241459653993666792514905342005810752846003189780380141768692063124192549180282829578813366065566143943991071849402872953543062419303592690394110524105301485729061082456690244620970003654816995506959132712350229556422521779910579530404831918079334564012623358978463632635760372479052650333926426040102100230114233528276292393207521974183176571901905214556368221701812323500987901082986391467212193037029889022772215357274624484310359321247021228830473061983418746705790619537498060254443100201393258970835882331916877896242345185690200083182146830026024763349503321568909557617221788145493556364403958155733837023389505193843139916285387120957402256210371049062915308859629733063002709620816547475021017721446395417541092573408617283039235474248027120322345335533773577282952758756894268104393619115103539421083532921921960295016877254006472273681558528255702475479726765657221898494509182914324194080890199755458614059532412242094393004127059677657276257579196685026725450143779166507813195431388493866566263919650320497861126266926527744831024333855892812150854809388839323101786636862189067496145947386701063231113047619590987227875611758947603964803451947661743895359052271914415341858516512067838039455747477455669369194566241487766778832433596040304057516024712135967886971706516600359152341582779301564827853313005638016469214529461233591803587567485441793869569195901901795288149925325359545823066294395224151215217101140772446234261974779221353021708831053033185655682956340470465713285984373890708774663135502017815724593284410866839637136638577086566776806061322821087039747843023787443387967434574206219181732715813889738965507993902275232826960462262082960908038850992255717790091288326054539047193168513615743074308657450556700664635303593991135382289456966889347692277551980997168123720200245703424339649371771364773741173675559320259187243683518295749368927642274174445440441831726603303243540319809111426971747827300724946610513473382884578049548096832240605662506567325724262914245529460278276845716850700426627867783295930617619791692886174070999711960356699869646934625687009737198185819908226809257805588174016017691660217550878119336843129101202479711089678528823735793761849238557569110272079595948922974756300224274187640228840282247243281694435564422104055788726285045116161042030111584739794616857508224578918102705721045409769251382199351583618408202673459879267219877444199909889030744701397219143774917348064110906609238651241644662268637616229119871908545143188870577692613094146968703610243328147276468665429419644147297580033976987092888836224814150931947821899193284128086597752915964277497944282721618895301333122588484368816263082389647663696179822269462744961440711463807205438982058707005300806437607957692899076804182304576893537661311720202618392870506170985765578204592309076334878502795292527647007437539708542740133721537381455493402689752108895306272340869747550277729064409760151578721205378295851230606944514011042897114504877008294885218688297886653124351786023615812757456814547615627517433905715280160719667332813469791549903386263765008212140129871637029995866386263378228609418502272223883316858791417758599886784659753998910887082671341046461908920602863811786501991372120669358031705143069895662120865853089912467592890115903672313558401275764213748955842950897624024624714468851112205734460466416419042052892827398207809856439595986933469570148020766875278567010816018762855086593621738023531492933872738036681717639838179551737995753715670463048576727872089658982241723973722343299017276997213870304538036495573543830451423027890773518248711648876493035183783278682560014410593774563825637861124411432441393823809483871824654328172916670232183588909322084841105834789878402407751968830919021301275680530842613963834693846664862479965027845468168485107600413962992664024697999786901287120688015549300030596825722951352540656162230444918930060000495023387806286017782012131018374173479744773855576955929343594233490851156051177211512809805513509187711296090233921346973398454567453081468436274102131265002324923045185939920969369049526335475003900393806313462471321741140777637283681689753780241940325997237006743178785620599661557597923831991288857254491556041479473663396985306113844534077352393847610344147069669136355617172715289229547048084122384591872356389634013874851094015476037435606982242768051174399217694254798235015325695273866017104467628725662789086444238295122329628895895131471462867834050415496182919088688660134308705605936573589826948492644246149149610265726796294333063160040592551412189104288973274319155707021595620999797621133514437596099583577657340444094837144387596668379301076411565879580107961918485870884641038341379798500248661405542742286278545498171275343293111570258410693405153035562692550604041687340278098672134569124802303803913725055664011266373681771812981189680688760640860315416062149775186423252456109734661629450920492130561449224414913652853260263396579531886687118295429198417759357561018553957373568716871141166969583111347992426919786433606695716268638862609793100195536176139402951520071717658260504387874225800434481168183982891450009379519910397002597170306375567053330903477100645451991070211216052338479882331000556460566629742085381094235809564365953587969431417642600109257940924841547149819820928568667657422507811615301041067512133710680371511082875185870058670047018810374033664300656599711206338846194786829649718276769175183857939896537845621172488463538842164198606366594491252672975219661214912616088517316735048810293801453155257052160812359305940705703441399817733532390338729347051663561664382633168263946011167313046042780490948622372107627086863580944386050460442841918452947479806027158181866897169578953658475141176804284323959447414683884180372353815776095451470018255225581043238619175832220339507605582580147987792590117013128717114544946587666389112823776491179180943496146187141742653176161869558240400471500583278324266885566884369169444117158880958056012895444441448498655058670141207065706532133725785902086811915372340785564810539546754196808144384403557812962178245634975779851336022737968998945964079890647910231101408765360543140323956512378316925667882709162990009671722590535727819070779225918251127165113840294057650156176128601361393574885791352969887853078122431595596790587217172745455226941394370817383614797783772834705932390953775509983351858731475457433465575790282563418950850192276227018420700958516810242962725693510193191109286815833772963591223710816326318629005162063762601897594883320043505067277969824815607334139665188029819501475749555472363106747346392917084092085362480748817631562218154341507059490666359483384643078652132077103145361192170300785438647071111040479552550836115415786709135516536897792163428293338761438762380168150359860646141894465412152218781974903564027866506886937564191729487536086522980518677930042809920995950460565984803239298951435584533784184401971716925809309094037985388366864112416617446300578609371883816301146514836287102288962114878355177612315602059024074175966640152478735390807919179799590601627063136700652751276976249088636548141329222932032875094835774081853230002433499790491140959766344116100380913146213177134907434324729635498365039324789260747093342315170771853057807718993920761696684256845103345511442680461371549553213617587135793085877861179292347578018714750104051417380384759705318478223041779669791520153378441565837098831475393362199422808019013690017886121521305934380604074391040592728292583633809313865156102659701791917870895976959786855287603736848913802423655744710367831669744268720232038117908583123171094515163405769014811277642131460516366199168662044322162215222273887587841596581938550095679161517484875244024464854964659190275945104155157217004103755826333370992480816502502160418347616379807511607237992487321017598714933002191316431879720530718492798086506824433667928083866703172741055372753543901824877183233772790162321275583157847124087830930006331965791434597843449296418993576125095219825367308184256251981440588157665112006304656064670730405973142200088225072449369350344835486653037606931669384868387507823213371961149815727497187585178614231506308375281208535265353215505810647004465868248015811355222863036997400199167677391858440390778170853967619688364104453311978281206629357155151783497799122226873042310234096325850634140802259722923010117655207732375271186291127807600344348422765987980660683321270950619192288311371195789980740618512383859535370845992415854239624415542899009856760299620509363547931236989658492086059974367688395810820519243867178269261186083241026205284953295583749818503050559785458924221234321732260316424739781774524358504480664455064688451150656731461827108411615357367345766113018195675940101948889855639762373408373705333460019176309900477614284781977616932807698305849115965809318945664177866578189606427555492064437416369680930780587480903015082043804064659145477089158771406745363759499333801202498173234513301836509423144045975791198283659542683003803238953467404320292496640692050525317014507838295581238498787406842832889505436154564619369158033191081585230178215311412974332004193264168817556682996612389050360124223537390661828605917220274338130048643380799220120011081295744647223717819130485829569609544374782421313272533355683161940185177738011091493906806709746295291392360731584818993597431412708008323748883637678996434236512879002671892070607685708147907498652293894798397852517408787667541094109563081628991580455631692509273133358461268582392847328428358580263486245914283211874916746861932907340884068851651623057911271847065565584642040607158771622422817578490102302894001768796368484074273968182386581129106385626918563025040990970772489248232986634218163743367158994062886004283359968864509003464225283456411125719569205883068351962310337598939250229833133036368821464343794837314765677063777394591543929465538387087243250490749426924522189171144644742175207386104874005784117763102892877380640441229956486113025439488930346921147480916856027795162553596947821717267939703556395106625771271559364352594690272451082803859572184544047967706607379494119399125996843525386564378103677276700581255148197074080224735162634643392416665137021018260709535828571855771968903965365041643539844676392013485934194323347973989296628907424732740957407908438293860597461953475664640584038131804895241866129652482832945405055469392291433083793996098498913394262065336026925799050404151984469255161567577575262151732090877654796658799667905348055147916122945478790021927974787896898760168445043747603400521090903036090127482272519093559849546942687863592737489603031760774089129320292635078200831202429172516701597738040697130109850873988462957790396063071018083222325608542738121398710158375572290289459182631539582232056909450268790320382585122534194255413052072409519058767873516685689141333731082946224577759109409014468007270142591196728633111480346360507708955765440638880986704177850158454033285094761933986011973176181518524792531207902520013701984077550733593158665654385481785408014201591832342897842603828025682393709555055973124156302711813703454214065829089131473296111621333862991189066904440887516992949053258308615311036157985713345989237811582384094091148349516890660920900720964696058878045563571083537756296323905366038199656743445605441449536634784378489586164330719663541632625934820026387611202844868151702771936091753497859524247617661517558299826516513277076698626165794899785094295335205958786439261641849353550628514314741989268268862803625874627156839862839455924801905780001892714073809779351434613717781993244978312692745928322286423662030001377888746978119248281100090806773643207916416872609832041679162518871166109072469216822167349354806198505704810585064448744072023045202817920315376063355462784031339102995910395491772535413878382342374021858388335295757935778231534700639029071165643083752375920318419644429870981100424115155273667831478293578116351388889394772436175855075271580895306610969509651629962458625494349431570302400783879960222489233864979094268763555082277041381535652306163670382015488907610021610713525817410082805936952105982037762708994509200262626069560684582798040682470547312637842305460257263593718437900297985744825800770959449188973368422539791247976388147910814255559287924788997272564830374576184817492172668300590563881576899019630008467958439759061424197215989213253894047221146792546496226207820205281718579964036878359503005505968954008199587021485835112680240981151635019039498483799645789426774011329457165569240462810672181235595817928427782176748751000781767566127962417532099850559615267678065669450378533962340945013299877568027308110609726665225230067678420875407084881025676842208927701090084680152071558552890034331438092786968476916225983825641056621102682097415036763825328768421668256427459830150159690659124378302344148267433938421451900115847206930909973025131605003929339080293765641545169989663501002971038524074176047137331604270358780440838425493820971808809734316428393304246996254310700018076664454405188694016334170872285776580268364112356410833358712305065823743926650725531350404538416116686837219453019040396458230511982208244731199713063769765728683039738312585161933703489666664998361002880496718329403760896563273476333999992750548540744899444313144058287865588429673082853487776084787043703821339157570459259791356257503427856941912784386215153723622552233130835336372458406407857985783178558377843156541613756451319588940226139780210358266056710293702875230059511712167185941959258719450824437092385619196947803689670035355019493194266353694290130276689549823359979776124346561353576843092579130647476716724643169696573927902570444453588952311025070658069504969024414489234852975689840690602329106199570812276710721398067339260131002504291922621842291595119911436114159157962390914622635416513976467746596141965044549026823739714181543236376947713370054879173432696513803989820456964349736656096335657994694656196509395863625275435316892585932964570475591132533100233230564246432215544697307141462619739844338462425559016171963891382266361263214388363258526005332556548161761749123433039696874820176150511821175689595109653516688716239873206669103614935837965431356381233080488404687045473228671427309022405011452309241517649987578246707591286422223166425613294473791647763580893681951934260982400101369566244402045502162965840438602835232540162412953392668239564571241634794032785003356359442177427510834412791074401105756153506815242793165306753489215964666676783135681729553668168892508304997606212266174276720240471871710818971602199527418041410665374344682108798019271785411810067707918652432588641977617974530255128674691446268871507926920558474403498885693937027552135383435748798857159413836587983668336411174913304545064323628346535574420046343370736609694193706694161870755403847089635904981638949527144531276534441741685490455476134587238786090487999330382448948773967608344437163387565571394872585007003851938442654199954453072063287349656962938582391140312917447122023689800228176040441497661808719590686402559765778972678490924606843377784019851302048210230672075426678809871624114331148076730567542318418641819273345976703234885489264626027973275780053724270883945960398211469144641649345631804804964771630294188834890838027983055828562445108459069526304668526209014852352322187755478325467314661238669937785417228834640546663797218766027715222843476925420450450994339702952459221074071490868838594440516579208866030475149465035301953150576466755007280966539771901154896058123690236173332573111519175901520238783045295579182895087404835147529620858474626312062441368636078637992487083891224158704495676984670161961089126766033016721346543966042001824513225278723824169493192884672212535194045607763026727915653935831221451837693704987610473929924920737342656939760694738581993247988973174694601965069487547030547217851720853706700945842170566515307397373140520025887110620695496471638230328170424782918801177627900564429252806929361561037974371917587356265719925160374119673164445739369518275171947810363703953194376558450270718019877184198730486005444190655932469108900039576829784738879396518268362413875457491065977251488244896197938461490909103181127846426256461221324629088250601992250450077290902058026594615639930713362420558753557107562319215497072834231969274470746084350374849512361485414606243201597363549380805173639071146196274085200102970127718446473217777712610755506106078377490357253648383048336260003611981710886402329188024451201037244804488367982563388664271189397460309883998741385719683421707363859365439729474084572748287407830275115198558938755954120481702549431675085126845582566993066656526986552173332966732642215061182958497691670826521258762183412105826233192238172125929820582975569018466562835379641263910961109360923926821190609789005237528339472430927779858753668380096297867832634405256422849612172341131909124598968448171446495373756443499052968443538134495856451248977106631796967725882886500631775252875895336686661954641378656139321210471094624567636973779398220693854862464576586971281966999937684496225447755834551415953830178597659561578861923383088349704782543465495409225649042533256437052887111332836490468830750024917003824366295111541895207878123431354347045558211102127401042750726518314200623279044640132490327902094342388383132007473442862092452972301850920840417193351519382407610881145979748052743443008608477159175601177985927689848431937164257545130810234481288167508596672419460718426023280487094325665197417879723663910891661043054715878948944905686821260032279792219206074986450808162379767905659845299735941182544119875787433836792244110671661735574045208276460383116800497694983654315110201164970560199725950059305006959376161908098426662202873535061510823989143966108259987370636879911388330397933282425225173598893749174622891310556683410657469777914528231836788828450227557544504013267704011260713158475814510829902712614966390532896862572959661333618475443173497071162571152217908427853761061488099039153131102602884111590467629669335602894238849500128521818230969203501187519797660547465827207571076972326650097059336951649311837472437810021898342100497013011454134604083168392783699261583346642354809841507760646288787319120392058276645985227540746801198570975587915404245657348910052013069096152527195954666628197545163794091120974345315443586599628662248032308240762302567811729322576166617857560210057615697994965655594643827888811659446923074404555737557373035147818588560540315016876892427781919521334417705792080599374802110310899813538547984101805769535860401067020134150781526243267729940163680861528074780737005294985959523228129738595846701520662014989870409541745024688211233552812243806021952779175397193878342769040612530965828830323674559527345501048925360577562176614311043878646882248699137858430940300679107767648486216121228596779533519205187369362924755891759508599785588232188583230731031264395176118354677665616347991345755405845683103426833412542047397858189957799757745313813884267325344863451846697197494345873279470934314250793030504406732003153747288562320944665131489321881759819525356129795386782476825089244181857170349876542865935573001612889011551934838413775481303825372681252706393868168486706599448650544207029530062246143506867054320485258207026994805993279821248052409777587046953968812424484460341608260025372829816712570674123714225294607828227752209182479733226952957480298617610020746717653563826952786149066196026383958157135014648270922987483531983600929377182685089198105082407415561101006133338743684458154545492196321875884159968923552452097187140509297006477436931677521078949805878026852810155990740398877399167777768382827608565325933960600126993372350983197801995012912698824183651690142168889056942906228374396926668979748534379636453174569482999262500709075090062405727199428514400730078586107161219360193679247209913238271329344046674091025476285677182106025467920535330873027506421324496920835412133591142521763899213571804720617674526659254425433680368144822517305114660055233002706562713490531519731382125764376105935910281596787131296155216872901895666997920495715097462755987190338688348118313353292248492522871854452777111644652889398763053955196939688338054018514140235150581926816838647510392679345670638095047968641717968800245414405726873180566395242563948624044737837712589428566726310404029925906994809565743163470374201174585421689300423836328781478325460735368834281750706863383616105924063211733674384554220337611122539018175260798535701869207120486312791779505099358100557295418419801874061048856202042836395527584617978841104767395818554593534374986343757932391050734702598171197424711981889657206794439831240275396666923718538183663540405883843233829349808221332969582477448980314042134262755136093158990480416229587513270710577480876383199002067921029739032893788478817558958814380139145972084395644226474311056822358682006232439996834072777467016013932380689231138723902907327685540169025068866575728206355200501139281355590904759286649108222086582951537723485515159825425592961344626027031121390407835086849822531022448934732868874109015157044900595696302710686810346290672212305840653073058526053962691688969014850638216728201737032538450948389360474511044382675149568023041031932146606540946099415071708196638075091118957285995472709851214166822701463147560143593262721314268563170873371955313356588396245527687758507509219037717650788883484934923221908816937619073375238398306112940131796869488463910018175809608177100085071561642023078982051325337634140271849758635108664250891055769917890020461631689787885667287532414577687218916971450438835598083293436442189542971229211548588013966208216097455136753295371610821183390641110743870586991982056873670644624875332602957728984026060579262651819606902845743319401466643561187374734363349731395582287330055073713847253782608967730398829494823442116727426760796063998999434414019991380070728178644028494986228515982715777032931922720222154735727411208258837351938703457251013483942396893604442193168737388300634568073817642739794375707901939259030002383464599062781307092419448526983503968003878454746292728627863576177379933521463874778102641142248354449312532991579853840747590945989560750047922013278996616270938679694907529721451671852297961915293488367495715817522890849023257182406530989006073018082094614967344052216993648264618672932378500070153500246496681374719787286376516251882027597184783576003375287818180655968155922770418139848841296513879789129402977468487650004584930174329776118664978995530566185290907047051587766404044001575560700271058229260309709145011431500981122327426667246617305476099130120771975814497174363919379301866014464333384196302364837106897083991954330941382302485082499557854514854236520752754111670017175087167632801332265829540124553268516515075329512664795901121651715356468411117310844249729850320801756817413869313997767938485730723297346328838384900885460930620012465376769851829990878138743168212751730843354150202204735026873977622144156665921705703891103118207850367394881915336260072068430579084556589483063150509737204208306067566002482758486790217463136408900788123603276485327007438348642845146477992453344484502029484422196108291614411362613066690816892527459201832805977767142582049149249133844102339052029379563838638172620765935978712037368181985672608345763667190865215799940837854460919936004212647648164107093317574265560655653797849030266182991335454075380423926459866225723248279361504548266040122181423049285257604663364612792726840384010721555147384958648757468866379492844443284533241704011933978859888639424410344820882228935856857476125169223322477637272300764682006259708154231497660201517610989502051714278892760214954089802503759858982551768219688477677243142812763434699396437632048523696974520968816757961393519062457659955956751236452869771875929995233354627288271835421384563741049416569105552306646115182222285025265119376735209718794809523830640303129276009446424497176900171476802178474407430174648308091159326404673685389443882913791296887795736927876243855184972710161699683696305736828682424527527370961913461500748355448935651426393627551637629274447147055170449419704796750266272892606883842141403887311299886421002448186202906988029015089372479740999214834363026097447435749573509751093045213085364238429615605380161106357680148044023809087546443102730015962986556479965060762901637470437168743184033155197683437379793897599901613201824660037269992326467392496446366712697777553530158247211856670019947046153660048722647461829903159489650499373738561266672714920054547474709085546355055990641588251756442354522991957647639326316304923055374370412828079431709184418418545718520919765397638353244523209503819121235261603193192388715048211386670133011694292046549560095505754798263581469738687081936305688699165160274237660710102246948336406478359177456155575535220368711156202712905143126816732544708114817259316958626571797444670079365525391781617393904997600989473307600317853520878733459742637274934587729872202059535234077200317903620230170844892066168694646852613892037206965629752804546263948285614424629655956955454596678735286338924922030571493782969822241890027364655249270779790548734890220262468491401763669460102213643883787121049199907087108888263951174610704276479630763912322502564136777709661818515478651199474570590977154594549961480228291561853787067894551949105356109996454482767647708259728463730468467759693185334901099132747598221370046131077534341043514530133653719797547989478338418798417003177053342408729253049355576161331413251444542727834212843564972844237650804624832449890510664250320043969959685504416172331950357690128930356116469682969124713480941145291052886080925883114204013405854306761027760531146882298300842774530323607215958382115289739540792992470081035953400494261645521281756627288789867099087517178372894377219876032840657977052503253129155002729088084792219067860164621755223445522836422140257702548051968892201179195252709294056168051644619849147329406620834963388041730304083803910508102782241841470240995774850979577413714510451883880134617574895279417314470318819924694604174087735342175934233773224155036484667145516461819180660781144090016697576968187668416571653650870440278167571203377076246262975261562249029535898435082060068293718689342770182372893216066544255606732076540950068590381280295466327665175096207151913910362849721360340993370676564040448223749170606411050002664840222989099900397234362997195273712123294005011140082015961148366331239025090360980933910769011204760826914162366319675920669174120571476005473041347773579437056153662139590219690049397741115192909752840601194739994420344073955956665395404873181643572464232009777088880139388288060192102082307044735754062305158648488269546733357220830091118202083433029214045837648197826224704116882199311743677344177723121363380168689120730311489089321273196733570224822174582290061923076962754956412723470126951085815446615380504446445535513394644391776798798137527933411762638058646244844443381382667929578258809698692995012995887025155881732582065148703122303002052993110477655231238222279399327154658417541516062545217236978195414857294459332000054226006312971212558727768155562716493861179318968295371617980255071871430866757843179965788093208610118131987141787976487838689423894559046363456489827598943964734618877596949605907535480847496799714961589370077510263995233385152769909259704462647315141988601378858786527455784271702269888886702873584349632499723717511091651584392785585037436885678379364556528291045764070846420405223408532246325608776722003513095574550738000548195407399744335572328295432239867049068792389263499903250264473483593941684719607653714188074216867647518714050833334049365191843463504762992248424351776629088663847020937631924705299842015409159885526758308522656546526625980243339061535149601776698119640953777753585412206036776585957074832480872455831916288080315278575074847640916665412225308763177364898705558722728408120437538252298397785952375545367524494424113550078156126747383035793654860454282753987632529545363848874839788493076394832593769867112383837039830710632555647660687040183114373295620199055821137066743711644150711872331687949816761320041994186424442118168784555017669559994558745404698679672614665963610137798012922222822964091822139054721083552591826253581538278652545951793830105261831780075539699298077304001876707122446850336122842560348038302881962893792888715185433779389342415892279794861844339010854336531165676203377109025232611795673061529266652876153361747627144515648394166805506792373684070171505915131225242766786631096440446671337200807311146384466938731253366576413781026293514644056156118294388027565092717186698017997420299287969285163751923396235468426080144016808928625721087912359980892405321625179065469057169079369748700177627900937931801409311164916391730376840293074721040747939476904923420281052176290677179919735023448853597641354207888322994114698586257580069915365601399219461593385204753859787716233002054659394288774486323986713977688641395569625388815577684850616355380817845612018194923218327584019936454449257638235085235444990692401794381498202433946496260428427330804954830533636899704938627999616723869597955479702988770899954472943329628275909256756255622088574323255560585581769112279869412238127552058294100160452712516235485426457145385005380965269989712012595120988933869001475841340437850251974064816897114495075243678066150520371199595209063426476334581515329958631986689906002190057869424601709436595394714872895015818227969129409103763020000837420369878027544580680033602957748784664643609503537450387128391767252540678746039376594730504810131598972358822015526971710254041690404410611994040779952954196501686426416259518949579621431351675187104268927921021293020038663868572828308100048117675080679143490411170245601326895611717268688895402386874693336620983731346632138126802660040884855514521509819242958373504562146050346867802089226983929850169575023621419651813108598187933099662541749637403083532352371206240797166938307950167552579437306658155058518821544067181363815239775880898421808717118839659380232820250847072999320261791820056594949375491156201319047592897346689766796848057019290856256555463023190100223910966072265078517792733656677992938332601407508610055717034113471682415129355003804940393656329165680366387864780755463677823415336252695917083555777969246326399981272393600441526170431309886695961374922950210561621386864705684063176793419169351180194768814862552968654929524156552977213315350598887680455403372051285933628815360146185758741908027496293842026322629774183516262554811516655787866504910200439868946555920103294478311409381421567046984334512851556577044468031931273406458222128761262772272236625111998582373257480205327658801749914467018738726906413014161309316591884068212069657094773770556932246095838070784196827535588360975236622195594204323647226845135866330012594915268767918124075669794514072527611228882817706765499248922882235457436890814766632087513893187779324881893459224515142108671081925224038999755073548329950260702470966483079891457079965668306920004529909621769106196833243053045368620551187235841101077153658265982693392389976222324258952565436983601426509130387232026560325373672385946036658557333719916733286508886195039196521317868909168037024115536300782266866215666771518506944171201467659937424175073249228216872370484136936305498820042626770509941830643330250994608245555739680107907644713320739156900345250560470569467637239711729253277967237711670918889010162743864798204683929430133940466574179177525265712199891380044269170948576990817428021933235886753906743019450534345754367779206732275695772259358914312472705960875827026609009602362876466089468313353889471495694239015128520052254721838410947836874896659725274437698047118707429526830508975557532997655946550015062253824597342021303735806408563950087640825184384731987237223336751587264722359165840649021188185028945533515785429151966678365696951151998076785193695122375809231698290776657270111534967112107285781851697960407065768350175656977539278284775953389082132934159563531875678218900464597422961215127877772710551811159117452538777011239792793819284206123009145054083617559894171931226076236664420792065227290027514135987301408491402642465255909614951584746808606554047917065523650207486771332942563065488932250081289989318344372331619576185634571760826223792761783849974580133286165183549996489275608546587115072800747922373723929821945485564001037489911151462950233005418219083841209297829708840168151074927018675480753267727976754096946676414813453456128225591104273093027922492130140876522543872509106166073438828551726552578210014211786504757568908863422563921043200156624267654991187760347945147035647506266571686997818625770744474122906196595738387516675445160992572522416938494439538804159764441094880773635374881311922918870201491685058897502460132994209515763481224378889511694105074380196886406916296034035505286409863844790424308534262105471147077156971804828981012686949504851930757913968125150644682146431111451565465062250242255683392778731400534396248286805755273436314217684857964031766095289144899513714598665613761132037564396309916107691538593026977855055286088763504327703920136739817646744207034902575476933674401039671732554297230197465802363068197839508993574650173363408194983187061895337786471047021777328181722629984201943406869166175637600153814610520778804615860563222110507693190306564451591525018192418479624416409229121405869637949407506943296776189628588342239451010188453884877766688180190392109198753947870852573137832904568999137361541238019075701937318993401856280722728834030230793742525043681580692539709846715217884673841098807337548840093202160943702642232543790195771775215133081134681887503631697633026311392488790549376008141977488465134305957654995176961773278065394252961151079455455078711320065598128829309487084561513224679118753195355951184334217586017339897816152924267228712660686692708834949862520707900381191359110874759498974963930923863793068230698366493706904502098436609805061244995045940786760856216297882173909363255627814580290545294571898633116807440669340931457920342914355663267230312996041772311141585152836257524003269302661856706864689537289548594980360499236889684552608452078622673027410043145863286689005888350567682811439714170590046160050846842810660045396143078984849885249997136937789903987192686693906816449913159535074412509333580044424639537287562075009807887365824550620817853487026006494970901499491117270145614991336884599003808138833884487709602589139687116870618489043041034829053364615516866341109755911595501604454891682906542082106596330211688709695971661864613205178169649791922796120922006677706337736358307655460371425141859839291718178440143491505718434546077628091311520336672702152731356875120120987289600215998262930298843522449101995104582932687204271610031755155151921710237607053115985137306241120808638333655341990206322782813449088368288247278137046056109369236507194597331667846617508651964553868277089365379158054396196701355962859781987715340577221199265551073398469739368748275909559526164030372932182594384062098943815061442811276266396713428382759401474078922863991751197493067880919448431258978373403925998497609978703614850206628613134944364174137596354163455803241014781063872170629481757278141290142894308136949989312339226387806355169987469335685238083106387553667661845146629165884832935727581225460219175407923284712226747283053721057998079086463784496671606369547927114731357113724499895566038686703388399753944883601049232826805901697653317569336686313712470848762935492101404516387685724178873872822588904064254630255817696793352067101659851589268790746452342005206161908962009108813665596295983757789083293031851757992662608985837261765210497141691601147709225646239105581068138084450658095845963941756356863619923823687001252140750465978383609629466933076316609427288380807057218565181436867865325146302159148677276054263132270565399650292849077160639156270300629151431151098346585105120707464203371199378316886397285295726782373923537276515856931587008381536932274915512607730819403097299258186694114450646513812931270280944551307626802852743796866359428586185927473688519461593336577933183515578542577020981345517704682716621748077800935121916556824988657933787191692101594209032086613123023389160829885505426116203650953287559660246966605542978956456391397521099816891193745546398219825461838444799387158298091566892004027571634130085173453613219467848580340865720169369922273011292682586551107598033700406840056663132298984721668079308469409142052156707774227525928021410032530202456991998272792585157245169869121460168843669741510122774577481336987602728498329075555516675536467534450397646955786862556081632577944458683619217938577993000514867017937376695213292749724816031211850485758721554688111443832828369928517384080936950023034718836169028272367374012632486965136270575835200158787430452702830351110334947522835694543573771832034416532594998094858640054044124458437772173031757371657799492972038245048539281093007293202079132931483067955252263511602421348901530424008690202757125509348818799711111944626771829395671449447980546836059945229993314356514023666287751825598001558656815882545130388367915697825434398390217397164230712470928559692100288182489135100083666938005483318070226128527398827092691633473853141559238338767026842081862724448116571691894969299861259933773567757670668068696525895166203948118272167386917683245534840334923366838098755218244727007153672972397884254056395125023987031601247312590657113990912753084612550936611988220173140602063165485717580968563612273487201769107898806302552474033641411734529071187740906385898352387287196500654425910564517312387884068235862702522626390463133479219383925144903991404474397231129794857296219407205567505013286016589931079331494835584548540944974216652153791110911655729813179672488724432299241156596636653623091731825641014569788831959357616255000823269979970404617271290813973756826746196458088496255606134097136926972409513147378964423386641333220411981590401275520772423031027645033534122574870570567765456435531333281692831844992078046961325176191832595485893077096199061504262985423472742745982602433852642946345134471357390341644902826354208557597550485891836599799584190945436668284248936039144099286457638576926463027706610141931680466032210522748190406274486416131692737058910325415954048652587696496123912469298439285062137182483254474787699629387195657477645532298288861760092182735249524672587677943426486329170834772543093569234546768488522032069788109795152306643872991306037583245175931464660838708133571498375155148627302652378195572054595853110636598358257975647157696582504329649800127512463825410539303973401981739452968514103391509893408016921495580947871226658724572975002441183375327992710345063639211832306217135258268980333398784510416460192174882050103663506701988017631146508555137400807657824791533572169389322378855902062370997028802825132503418397331047229599779053485350477882037439627889917582910598596783397019984974183952658796098084174987479805997295166009237050478853640906793659404768697866798852242127461471138377944040882260691515670115776817771042823310486616785334149944376537190825814140474464007414736016046512495690341302358088279145770315953105305643559679294232735652650041850609229234631740104282568549587167407169845235368453082107554251914277077437613202548259348954468920039931220814310750661497477672366583338378078666577545343486320676614655084558954995297133126135072107133496901648552515601083880084857355681806474689171260760184141363335848388437012631336305444015509882853271005108183920869610561965546798703090078641534972186905387895217293666011298069532702005319845405309660352323991790316948321560016753512802538249163429907724301945559471688284797023929888251230951124332329828293982960883735089583375995249813958492012605566446327437487533039886499050358979942685145531808832495258661762601673708821093000357887547127971735351000921889534585413533971705148102411183669093917702418756483539991046599925070587547070447631509019340978262981939460337239372952959354509941445563613105536899643019169764400984448512791693395112105326970997817366611661858040892836277795259781146500802218073555834611081423749041696081408013267270621207843677090554826886918496177878089651235614244265276275159212894798674897141079529110034410386419119932127824788460479888656711252390159743078169568669754456530101231619815428640582418055624365610000627437235949873717088767402944403588495354855188807488962239572089689268027777653986684101131508060576645740696469787969019528404912306708685840831270131752077621898942275093027667227899340849824772725807027763469929717627460988356060977409306346663012885640152066594728563057515455025462150891933579718415870895266342188199269203292391803030334617304515590589860227996309167534932683590512701674598041085786922853338603724924974313129747044598934315633628751156705832646518442659092107840782595843535296690046495122686845873532285141135759047468610735848290007119601778759087277274324940556186157244261445436525078908705867009752651909819280732362747385828012033041234235234972837467922640974862028295417969167168592337125754136152047806205970414823792158415410966053403797251027800219785426168994095396524333391535362030087439562228535696288561726276291428335201000742911803355428666115956097826144806973273056712598048032299331599522526214095560511000367784041848983574982037676050474078929542764737307298058471861806972730483619305498076894056066360100884169422046272842060377018239928794695656961253326646847910682361431583265664667734675633844049140487291642387147849281861360372528306316714399766586161160175817254055012459968596811501100255304139440927474312692364663431252886111072802840041465630728742123315245185760468559033729791067569002580250052676932561974883572534948631199156631983346385713522411874126123089534364943254915958165196166731393520994397371178701033881001906303626762759047348867176973894763040884349887530704355892315322221744148741759513349530137426472750445282742843199546876251353958761781531966324199282576819348131010933417352975337556588755517101564782371184837738306480089988608200973971716159416822210293444066582650964086807029760115032769384349061760245282247149720809487838049792802556303038109159023767884497873251765681907606341016304206137167800810978594084382616054866111848245742816976449206155017284964656699641485023126880183381374528694480491604707736305776882539658147222607422339484350785421204966875669726793772544851268643498066818420549449799340453317206156591037734254554548967022471343993921094329651910162989683272398080230676196980338351997441106803780885847594927909973805623374569953606375666513839424714087663659026946428278082704170825296044550004626374856186484215736265629119137242508659287981189729486507459419518758347382538051931083229861824357839047109884116191737648744423128912998779622254095705248637042336136568143130551256333840364151898912414642308978504529346290182913174389266971761026785152585198482263600954007965432005154078596805393935191331497784650282760030548510659683667184465590933466667662998917115939076753482576951384825676513329909937855782866149064446199411381328795635913679962214465953576301471688124064977825624167825512076701987937188948490768865017633170591147075703043151069696937914675168651648123431473455163153570314077874765953588464791354324408145189225056361496708980731161608620051383521945838112926573899898622135575384481521505032128077637975828870928333962555107158356577700696942602595266063963928494534013200204958334739632257492306252240662693738058153709073539556663421723932420441032265474467039602818836473174014408848388371881353754356382816016656485632645400485431410865794212045210589098824876143557027586471822081137077362021155478228073170416281990944019562696077081422515937157999685954831855404311614965791311511472664202315822664225289984733680401507786426101868978301049044823244107160595960291506631011261935868892297509841234972299678159594850267100853170178211071356955809089540096215624820408941987837060120081543626486740068935118097094623609096269534835324367848290111268453733091524939404874507136525820336470268511291338943037453401995902502247868327390765993913908950908590190559704406648227510119474846504580163098903061776796985575547464480319174944705125242400136921151657959330510047647949693825326550291883067931423455098953799802054880784466408926493091058081648680451141915014230812026790101105719579395955764441869032296898850850939982656753805643834404781623671708217803356862703174715202609916635261311859414077673822648869017814492319833824945943819989469222679790684447224034672471507705404092164151235556500860490359809084994988893510899804280729779618606296096779672041169702023454884200534687036510584616954106298417434402569987630316567027148918954188011196120138769868490648257453576945969969608815656366701489415998772560111011643782809404770930572753916915529079102509273732226324229502102808184347706592131617923255474673011670922758065044029449756369515824125871749359534944031249531027686259749082087347121392202341081500681277733753924086901861066453124394802321181765764159965453070868915034371985926627713352173655090424549963453360329403383998871457918854195485628884362396644017274861040502656082789317037473424131312631144051157362874126536078688401031317906803708036932208519407358369767246518994163798902229709283382538701933958008291575821816626879811315019851697355677495618651285882863077908620258461332385895556277182703394621722208592789809863218495421377773636705879771416955457650862286515151972124127491242898170487521177814837696601223014415094308058794188827855695656682799764640011995728543952906158893457782716797497016063481196650132812571913290427596606887579081746072249920003002455465916970747587717016202599532909778338913806396805018144881848137167089431214896307680343082120963787927483194970078415821147422637130609891414718064691435401328779030684628235351486965765941937171265674966436311621837839337888501011304592171780606032033818547143060873338093863227681204008798241345241308177998687835206140244305781076604886533548301873855116737964661004675466382475477936015753840595637972484196788634720679979641952029419830182573901473917965197354585640915025916855766007786122428063434039680531098012692356939997011678250172442670010243161407500694813128095475413661157230542961135750947719736437197957854490201916996440977468615193815907653259542186977873231763483955498324575104093733029527938388268885002184960086493634702474981451161611306979741782853352770273770320353821637041045443605426164333734112354373587715532589154301745026093291377968388621842187222484315624621251742158892942852835343412696452668570236974036616404277220532048978225937871164110671651006457236589237918607249743179001254034888610997754880378770398174003485522517708621520399783788876048374624266635455851718167188327942708176947423159630437717579278347177947806671750056910516507354062423030517522891939687341206796278292691747423684770144202380740126313144213357794424441445398613374309535826136100670707262947082596892006890233731136164524098172088576309821559340745270448655536981462724002261469947293183744035245600471426144890288078012177075561827033249385645282815524569868058880980607279696791667791946369746699974453720600538607774405865391930381533065074138079918899682823745734275745393616296515784427565057338684277803332643029541627586286884698882250523602692599904115351322335963685120232647990482804388173873846409830380527162772954487858086341024439129624743257715149069525870117089400109583377744425278904577567257667088034261804548050404940388988494849217921403112282252668215950768196370846393275573142543711028008485987963101023823255096858400994082026513597564809356575177087745750782131552324149352628523332510991755876800408217481193693421159311801036590939335785964719922367500884934897560819790177704264205983538929126181180199388062953742010359190309208129339683162583881367233051867070036894232459371399787583362077739507474099856459946043841761247146043876462312558443105350833421776757198416344225025945099697864081277765816050449365690286612466142458404288762437698289555266473969204313970229234870652777151314429166806541933309429709864020751306944312922930385325436667582651975467024895888153624764488924808248433435903732795345945832297961101696632840997765092416454884786734046003201371150650490020509760471677837466686191482481176513282116779676873785814214382218312243125414728491632906906070082876058132258577410388079980808059873550550327819303075866784044829649589020850040139243108506748441893380825072051609823291242388087229222018581626111512288093569575776313982659994538544726163173355559123824960813462695248272822092032016101516595908850732267285208449285858062384107666133999129287989076831613274968838934820382274801577327835708233530653792851838166654769450427012434148375821865647945904164145097283932826820976908477345354388362426560228510300510263550455578815532311346831459319664935137873672065062144404209704256317452971308993281771607579993617187722927747585858493424917413093923136635291881118167282781099763533214886641922667700117337685930562039572812156774077132914890167141949287268363299515399553650619603563717190965115091669303491407903178022872119943481307147964881890940737295474891267738973024210415098107778719677751066069162217770095345732722190646714077011028682576583686503537714035856303106604025840514958572733434674108723937328912588820920484054809281380515956447836594924390942299397041005751042860592663001980160797023889478652589647986972582247981293238085251774854023960046652467651453554240854599948140016486252487068787544117706656531844270805365952614229905683679673199754790501954560466648682184481409322798126377244876429841070473045616242352199888037076954247095923879807718659626303308273838169777700808549858988513848667157805813172159051221473122871411580317136273661474386974145768054055411341444882777778382229289182250620872092764375799847199939727959562924786742342512814914400954734344298452016546554241334814693922849293681314764998618110718280963624967764936470869353800123489226485630014336575196778063390951744873393277720312610383839725619322404886210972646972623039989192983365623767403852861464307621882100467389646232125142288053758259282977478337676492632439360431328880787452400580504654602504490010550515545172794467883329894448357112110083684825571139914431959407734931165520311661026253905172689860464114919701164039926246025827587112194703937375449995824685087750400033909277652141429325270865542116328795199225084870903158787746301982287223748112601052260920246370298320515813376172980376488205765542491577687115054010833534337092290098225266330183194536077503183711169367992160670156278168103263465240826770574403561430502086023637211337498081947033154541317209318471607334085998737638681205406880999783111742197540106727081305997635057583214647095117040530213828730109265061445037528083304495929183346497563185253590838807514934396901261655504942126031381355532356608909388244111153230751960656273489123642700094460636303984892914870592872614773661990418395882421584776442697321918346572676288103505529055527017077819023771181359543265527466126220737581811788417294604196143627107208951369580790880703829112905453354806796591586408021507001418979867373547183882332860833119929847287887930267229427657487540990084813922110071986768162363601300742627370545147318151474481439051841339326064720132088364835509859168468204440677516661279169550363660895551931889750218445812650594387524502546641790523141803763423997622681594746762485722632601968391097847649823230823792667498804586065785834353646063987930412721654398855594368218026729479046049621881061586845288739072989946241393151828310723205675305235367425337711632323688203161481116773852074711820650133128237568903396621237373529185731108947973073261581138902180749605378643109918212859608879328541214524911628071638376752025797398465291304499515298949619731359701037886997739209990670407922758056064662298636517765737797936505066587918349017827699705466801400433299882169341779453991944076267957213658580195042632372506706401680065205610276272059231381111316235045604848438307268630231547267885739886919926712485401216282270374720035513634320820358935971201881316198436155206236670724732383436706769284750303493032860439662066051082052287663857410308127006591624751898848559567083293646002110075023178495153689217968361439474191534989349395886412124199684968377401771676035100603594586772217906819645127799950833963548860202801798944296772904445421366946568685310256152481374814540838919364468686849175924672256535062966676167431047997644976023815313688646914549338844051312827258135709991275294104219270058078413110267087953771707989474444843464967411978421454307511276127712427326168405927250481902107665962346529784832509148789006874781801225464666236400787968417795324569691640232811485910472286076558463259950445333064886230944434096632278750435078975537538237887908152409885358092541104138151584206390463437669576775921273201120178405806303429870287249635690830451277618438532669605361872462599968151757966687622986787162218654426497491520590472708684482688386006035878878268993799442650568874601713667921656473225901935404069160026561990612851208434157316108361489900007100542233208087352852505711576576199505137508033730187291963001066537250823916753969330779812758703814271558452263816581146647713441039878402798136226396090470321621153185283682648775981271583133520523235763823172548116612640161891658112264517974319347648172612061109668453653587873778846388258643594915117723828714500767635263673063655021073045544397471448946664920532364351716632413300055653691807395347629227113809041035181549656412429009876489000012174044619413387858773110585078026401592125596598654850490118931116415734354267993174944237908928751001639917074550038648989759920424279647674315901931628271228192852361693490260073066764849705777875315896244689878751314111253966254402269839291327254212853187741766451295154890174480706898707854439270913579269488637114853128417413630321831582787640487555336905735452996538543250217301867532042021314740554808397363253816661715664189724504883583473064232603310841310739188132510429403883640319582941584917429938241754106385407531156831744157833937973200979987259013886543571694920411458923400724225812309513631319122022934360979413598663011673709429785016222837014771174201307526349133977078504229561873594298907063478226975536528551921201246736874534337546244741252679291414219536013532106845892757753425905430887186203610197421933398518939638439090378898977958045534615220517501528248521098511318363896313390142874246118100807552670410626848398919992673969156582124500786801005312446590192610223544238541329769539912068036498178499646940011195520276279892672763757194223176865163845094673001023755489535175477211543819398135120499375089701732420263184864494096620202521310063290817543183156960849460409623759819322125172320891728111987686420036183437970654240895488121149092980386105896259791820147878538920952609232353762558915969757238772257394979033563041587084806732170175829928988970377782786627329110903937110175421745613567608156483584762457196176208154089791886814727816290737151584169582174153336865199825304317773506366502212272601377362158577328303856234203211467407865857806912588059789623164106481162982197272606937232780550534876204521317937333494228047391188100245481526560694508640498468127332176787674248788492586805790951779553554735449312538249337087653079190123339919872735158349075069274121733239120956106336680366632754083856663081506246434546971182459190524988082109658663238151277255544011707499293024432478968662695967327112281513114708691503038389834527399289457775168997588512017503504959400065485918237691877420058329083930642358053486119476666866730261779106945936082752231069777289335282680405928981657814963177567125587668763670070230672667498618601264090611161750907318018206122561509714181623244556222126996449843675260211760596507941331453785400045989469931533373722953519945785769555987354745364601519247112827104544341379766657609530035622636268488642235712341910702109839991927511268357786634908282345967946310277022132182787582044247101408379751284771344610476032080562083578773782126718595360019133927847130273809318650955793479945613603701936535564597744309630234918133736007495932572782315377352005051871158872231548445577255626836944716997786126760820615787523486746806279974866334426035403663313790506174771734766953716635579167881667902716529300948796796309880608986112787249018829318081110466772858749179820698369348014859811953620556536946560458442419064950555903142255007249071883303730572990621363543153796105665957993384968438448857635138140878506800521192809856823973265510599276972420935515074340946280820447446753450984377293199513294177443704926158672315973721466237902279947841478121587869004896338342445618122341237125768612779225190564676629990106636544211459185899202101276207534851708787123219721269828040045230123162031180579774377895282113549791766993404310144676608242415298761667053057836901084570485462351430201520874590023365977732620586704738513368558902295601639574212110697521440602335448986926745873366763215090388030674737832644539547226685788839940203175230579580897666546464809560887432682095553743531822728274629974316897894956376262496904211962784273337996092869033769822879496722862791163021660933035745703302933678340281975506659424786847347608687690102631557208269007308528208107054717965868919227248642548447956484962988866758914758758250054034315398949192823927217376762166542007383659493823241740291969552258061369892550255334204531537838518764662559032320171598560325017420812350332303407097748476838033490150288711576067952774839700264127237702182201698475095032415346259399568544167112585312909910577242506923917888140867915061987699242205166085444779138280776892603363106982006412093618498411778652577341803003056226209011806331665739759279167390144641952100196766949519652922398840280709974207914001750676523461942558930546910385822976314774348845718328949407916324100943619746167572019093783449284689933260276645763556703448120741917326050391695898143478397346148360946288211846914665159095063860540613617139534030958361020702054099510419007802820975735265526194483569680925409321065071792375447578910133186956678891223321036734511334170141704710191312387089794844981769284675033378177870254681539410831203495645022073046756472505273765904618752998805746217453107799365558846733931525758696521779367021406017920311140346203540452793566069730810028266409978729347983221965895770804522915246600613375434325001188893673656885702593262998507168076359293057388911234651847319877480449052040779048114949487297683943490845806666373032780881810519477242156983242019368574558314012361692451678740383763563733499638287294613142839182245247317150168156455891426259712932064634067846179612360236482921408755665682829431479574876083594640444798626139823021392995799620291936386210929073580156906860920926211970680855603430479352267165337918498757210352868030956133080703463973663772256672856517451869292157001788679638938984712786082222713560978220454828419232487204097067363556871756397076069171728965548059918285876345341310150740940293760218711526677446713491411737561059257292632874491191797141825810234625046668250236646049557202336408766242530411601176956636427826147672179897609670136847008040340145809511214931680094317100657435241597860130536184200089753693721490938841189139537186057601468540998651394149828750146893996238970965597592335892040979833349893102797148624155080123496170971247611584696609911785007107742780923413911264528040764505337764314400402223671667386837197100530422684509468374096908445364901832702165999204563086876731139893470569883037122804235112208632907163479237647519668033122813510310258558540259518767307023546215556329857399870372388842348484809349387837248791927772117687757973271497171361829624038412416554081868063229199121023191850507450420713751975313394119354799743850660480063411277025881093536062723738428958659911646895854834997148818086134210994045027735270131817189132474490795793872939877037856185613177137773651962813201713732400116744696879010113824026808649245591778726054444233999271990209234595316122722396948281268805789685358187514959116102614115714561456149802739791767261070744388337853655492413908114616721055851412352623633018568711864789594011714092259611291131628790589445664014871539805898807061649769659495438843526955938660157643292795841726948995655501137705436488871991113849639345566941790502288704810991781907211694031318159440898533874407126413455172093484588217364611379169033252028171285865920721716961896589142254234160869783955875758767741024720249833384788221600443981656736642014852928349856032035181618629760065465484068884155836940044450945267212927148534913801123506045699995743141648518690868446958153540661387519790944610072079088615074093427373275364144582987031395047239160953551694262811661627873835843810742835906357008639906938334149625909035881296548847180703588786357092876990126679038662609521331710065942553858009461744712383812537910248424245246368948312035858372422871613275179526482021348201185681076806062802890064886887439392145109338816580392553906861850816064008016602696316478497119925446048116360588921748907842805027587964138962492168254022329641686778972075199482848823303711632657223621873259629733398481374474768213393409590477437075301318415105438831024717001823063370584685308756614243873421424838817726051076208615356880035076494524720957326219564046514346950496581841123085988533589657518573837914359689808205340388563321324691593916629296048809166411725478286722419214851299546772021440980061783659023350628876010824643463313313037675591480525718436680249595942624346887628956467172228644046574069211900359406184479848972646395854935721159866449462177173432519616598399296222090739096316509884043419940897853791506216911058095015856419130899686312797982043687457090352766568027322463583310838667366516590426871159726202475049799785026774179762919794985626273579703262284450262683946748563802413396126262742787339678959008677936699913511544588525670971123463814133379029433249970998864841385902807885449918875936353134510637473787079734123800128418509019121385389804055540750791140463836279383260120900019417703672060236643873224312828851007321097740008589214395299696878548479953888062208524962013211966662127120205561530662780965789744275658413842722245879228009311555288137581244356715040025222307486489717701830572628756790345383616010980539636334610158126922442164603078205155173270067308685585006993112090933219054885290349672312815911594974391934928144466996995974177518258341322190687797568866359386531786891729098213813821011862178492094441836612262449887878189277869019223357749574273161687943442848920659480529055530060078176583757655121477618210194084878803694150704843492914851972098577427541016086433340177884698113797260360226957139099244433150611813079072065358640847456887338142848351245511215272535768320861623109433684055414811528450382419060669133892713619607683605022595969963543302720476703501618541130320792430831458825440553487589949765237287632362947338572954747167282677577308524837399322741201552301011054110153749639304594846719428116326487699953660897727007330391325149584061396200663490671116883731978872616711156944597557577369573942766596839198090364962455177135492070970355898652493880265976777312587529907972978414039985104343664331137826296712706429280339657513456971161000543141723454871184412251150443301666135848097547312517235808324039638485942979012413241272533932950397231325719209122357675038325176313378940166024458882967300871856489677861344934760978992140202119462438674451323376548460069229080866751994626021498951921780429337154897339619764805536038445118451697019523243978580576939751477787631760464996911758521623901884191017209329404703045668235176282821133374861155640292214046693163948058099757268792479280728477296395290933538179084665101279495786384449938879237636888859356370762745112856390157317681745464835472335968121159376386895272663819586867449931331482080740220417223877712596928863516970066452868701964454196688855098762770653089372251290646551448280972071085007019416586392970114791931483480119344721527030754326858016359236391494686032723949875582422650150537823023277874020375118091153235895360168782858094152987167242334589591646911928987712946450288482244793627418326935989737345876465888547825545512488787950974494225205468307680759211288500345665140131111053346010017125204243431426369554198220710549655503130737046018161895200694339167794714965297750036164110449153740446806403665225020765636538155563052933244875505358458581586976687350039663622536611756992518152335388168551475150616806608793812015480099840348444198546662224430189669132470299456386995452412240154288922308204598597906368154664540692475007710397986113131994971255147136367095142083730854372994512278440785303304190926655365348700843579389053792685251542723840170368102683325596403148367415809313159877704107598560600709240879459721933440544323236007862898688025522113573140186592658809179093805153579965261896500430601735335101414291337298856144386636416410728822927534868495666472840990256736170726794971696543708086619019521935909847659595805139180499953373879014297633722738395115030759338493963932329535404887596403639124856780276326180703417525691391003648016190618172102534838374915485065884463109229024196211286235474994264256770662665575151192501964028536939331498556685950212028288347362319028807963578595704114103902594083057619343774129101619553758316811940728705485806522730433681298296358918434802626294525142499112694358437995817053876936488972561146420492947746588063216241453488774754212044945043534504732610195389050506560489263270545923530794702940835130180890257195978375583345486534501874197140467694563999334276165474318954544105749488183141284522973991690178478022607033551217715733836346453689204785962181692460950474943862249323875788615591165200151394833488727879761603498443579089422316857315771950634079076510031389003841023936899362370096786767484723602290737884973812807731481751213992081698864273319653528434248448829873547932933387885081170043785286484156601909860248466468718152735762367381472535292479080819919188706578410400290725340034296906955753075982493061277746871358949740694589789178937895990455944780768323629319025371612040621773604827991739266634765951718339913522047786614772740514394253617881871831146952421111558063290346743832548396096420868792329604895669772321047379028290273414794100836867171437918961356475639436812057483865304933194663968039603779626040280507578502741383485624387830193694333776298285843994966421587197567203278554419851241130400260174813646112986497176870953971953966207617494848672600567315349771029553005116629910024346846717123900278748815788523078771380326822505828438894806166881225739350089747007186302308186709194618759448402808463725219405558178701799046374884584745073468211960288501023074855469676705333047378135889437230718288435207635536409756421758122912745379935326694276000638740198987972471551691872876492239471355213058577973086845874811872121841616700905027766523735275256379466978164996608803435439260911653092901227071202505090833729328526688075643834795222415862402478346761279120002555885950140112726542202871119155686428416257821982064443138260711684124267005435531421200839088818068890584879972520388827762900591862414766516577299792117188953257226213896059602830650573421941601153891426099429678246416117177855722947873536645798248605571634054391275574857572785878562706711378899648400215307429931689725319292381906392442480329801748704618955223544957541066279557211481186977037710642572497152421844312224777257450367280169262994064438574332266170398823682643053290072907464353281365402941740139705621199420626804821234927215395717904628279923485538215363657792093330507080233778960943515485075439131432846666056268837219891244482860169679246876003849600726471585605587676052982953487051776739884214057543011954768010642898528759541853719566511731368299844785929204520707162552737005386369102011501346045593730576090249610052726111595728484205251796650838723373258994781745125380331016514479945517265510117311342615042255610059504459285290286655337584575602384164536111366281808511464892194786223247470750605816527638175307378093312769341428008285363079121840597884212939428636555645040551052800374402781526171081574688194052815705281903284331680492224931381469704728211237473431191766879383620839970365476945318179374893816059011786692329688020169651754612646793005555770310045248168441436705594034871874394994353352939571776163211068231582552058652135261061995953292563563806512859622792653867097490915330611782582839834649654131030599100948167993807245683583822666364034723261410049706847809066080977877851117133194168330039324872418395867925996890719104590322386096055563500203111561901679927519872508181343586295560965410739406722627790539402609170003656228451056620263461714641516489461192375162690283523698128126432389974105246905334642768507476183284327506700196448590100882237059887556179443623534425558846033788115173154558436470432228594271667119750593716075482172827516961628588985746396462807153374134725534510848210457349687655679174028074213652799476121248802350301245811865764353214022486399167332466774025278259844021845943983030693925701995123061057873994801631348741254031262081132641379252131387439539759668725765049373453901339887942110005984160360268234418617088668503694331984057033503071129901120606052112933540910749387641043685959163140321064381822457581363409069799941574056000689297625968281211342424333883730954521431466145343518503324434236933284657090121482744492077137121519385220180733455590615411789033352051698289289179665142191880369727877213628079742359450732695614558890547246829866246880255144220327429529256406382966907289551992457646759150048945372139183157498832189193685971303275225728147216037730948772462285851406716097612744217555410491332017601717626783110705815610913035442136086533638975452057687988367263672573238163620113167222931499859058775382102448654171998577103351875527345088673481288856055761641828370082760870906351260859105391047923413569443135565114334183328875227710940758447146491917438948778332297165585314192515245784070376913135592645387327602216498431341226472223077212897662938024365006836128448298629275906106228944294830018103128703623568786690787084921166994869957681775203364721238617372925162332932581069866022365996787543370134271562924383423952653972442014100815102353537129813271529094583411625908757810414512471767852170669665657675002342193684035639589642987543051164198592602297337051038817769388675648895290022917967372901480825633797575065198522053819936249523028953261883027613597670706103521972717337032842613523398159132528286982919690441325614611372424827977314431130448868827258541986309276773507581400641459535971536459837817785993681778772849601379893786046509594666786153361491765800152489279825387058220752754681356365741509848013544570673667100793462360137791801321787530248802554259165672218837252070044374438428552075226888987973304814070628574076821364002883568416049255087012097475396552146200326067330750134585370571246373624285626220112040829629959964019521017521875319510627416620357076599410123114307219400389713965762092623745316206992978035892417472537805517966375838941775847854831325294272799828225797350302816112904540407202261036996038378921560355792731952520005753344621389346027806197355495059601987137530273331015340578460986254843926909989536067128143719443993406671941285799052403423104092109728656401077471344571153553119188992788420997199161985154516301829412325256966016282453966043702051825846902577976076706931409331932216510964086765664985753191739914573340667027624126200266396994341023948531455612466271962384116331884389858605068575400483734866172105504753679115993769430706758747170200940880222006673753888847090864705657154066740754233046662677851596526073407303733690517245033680172146137461049264710530156832199854713672847405270525769602806708570578647147747426120348372785732873343355167302990663914800200360163635241389913358842193970435399757262711177066744467324377296073030262142433730489363159948391354375342196217067750962351896868628421576139213817519393959792010604050943833136591906977452447912620907290870682108324276642868299710364856890570977710801430393421511155602650385211829960313587440324891511514919567800419997326228879850304060742025700299707555056101991349317281613489903500809510543676953810293304744082332398101996351093475133157310508152207696597414129007685115363377792204644650604678977775094868918727615417756295412756581448275946900773933602742908409512784566192802306855662478986481684968635407546625743626586970082395851021387149898480043554224073569661496534878358600338484210438307509867230990402487832568829870624294725838137719880959536931516869607291285910771987068968992419388512201494835738395398505878137898585420467520897731071897588885754435244275517945106293549446754138433058675703711177955612381581372635672089766943250490972617828870959509069082468270926601964925974404750836966736168646325660151736304189647524522314083385132012892142656884113132937046162347614778062840904462415948005057024462461327115791622657935539407447690506418919472791174643434102037664136580445642720098097206663838840299557875568035438371961749228960165725282043525190416022218376549927257732323806599944314983805464704571542038302364793792817543716312237532017414279287437746919636732557567982588999178877707941415301251221837184396083154069194971603079550308032624705822119078349826042976674970840760745432899085443940385065597018078559757156271777221822379452850526438891546551750161721438325589958198812430904929188752051327282743406767228142484745629541299771027293683921973568609754111946396935909911912947469124505826419851727550734374211501160737165513957736909114063397348179006205791903307212387744396090992910910683595823857675832754763834765291538326519800278848964704402036121986755565164678756273415742238274848902211673261834835023141402340760347430914002148749369181908129929983151711000454606548939315374497181980006502642162514828126553918552405572169029937782893963910451749993249476005084260917256062213993903665909422346213071862948994015905176790474021638130109254468008409407273419803689709519520684570706498804367069580803165331922302772814755379626678951316441919954584097777178593683872119658503988044370925192000319633743671220825056873448350158836548721388427078804656790038313514166398258855914824337279733016967368559144877855004458848531733418374747573048138754441452320671430042395638376458340635870858547170393695605641200520767485492624890972611882375954681328482492584807316763511907751548253394636932040900061900229886121733286594698807792242916675950152362599537192976912736846984591167063544426485917831668803050610550606550920574551910228128194476501887867699885738944000935931849897028429238737188180816911491821477128968132448337797943595573453702364817396308624550986381493761685677346807455649809282310916408635674832756512073559911158360863997222267858906672642193551150169710092797169713462890572172339430976329586602961095443881893196713286013638779056869565317295621269463951449381421730251604112321908241804725273376132077339504633907465716867436006232820072598716424192613227661862490964205264917965394755815170677749920946315067515078743346533842287678686902032245914933878369194681408036844099285081577760192384324571255010056820566061355638106792274108437640697929456598578901448387414818030763068523750723292171468858764235365372314352246124913007345258355089151981825589057285854803070213125172887294673652173647861079874327200384496071003136268465587192108419659483312910052352753132861763517471691189038954228588896144819089028256617918601971749560514312028493763124672740469544759355902288026131678486460630248701139664967282339420712358890833216055958941356852913127778622598199365287923730368912749691922825182985714549233222593726492833138143209631935248252581315620515144093397143133257554534387620655916442029671134338752830632342788881791121710312983817198880255022176211469210209660846960461009879775541259002704273230631237448653853315163943865967957868006809269686169231340247322792953876707146579378353718837890551173204069669507364289819998942334409432030092232060031322054577835186965265662459323687807447979305218670185536494706019679269338612344228028402934816005636036181350652358098878143856157138536955795269265148248374883474652478810774038084634010611248835280487863256007659775425660705614724798992350283271086318226796482422743742008732252062609989969521453163794608939449378690376669108273780543111892716044272044008309670733882505099047163536509194862524867499706569665653606337875699147518238438214274991381020265126861278762604264269264203931833758459333301335508068711028884865846144271300286013666263211826076300762568342212658632595525553610166411133027146399286685364016753999086553092427234948307296013068943367229658406405731259970017220887761435345243916067223585108435692695544335905939132182958517096884941705351356936946612439316866527081749917638447407610853923333358694258299109190137368721270804946358114682317872179777898985166717813050220098312045193531890073342770474882385874907076749606287963132282221630555385371663389941392733241767723323517504369512840300474028760671336122976476479043715057089125938374756990259330184539239773425478138530985208474859784634935104620924650772972599931667507819138484710513017254236754148246427357903797597569877775576602560512136683296777470946292249642878474364112958497462130612884475180764702792438369256905832639628681517076977107556870125880402731276458024409334635572078093400324173993398319513681772269762596919153425129358095362679350297672992980753479515927788854850566437176190228462346375727210992197864566432234471071353053097010461459857623632172001411801029222647152154719090132333185477206801390174096207079104073444195840057942415542767538771551584125155306138616009426150030441109487660984456110945896831158271108561175773769992821374761943261719313599379047453668860207371981117436889908528165355834038673829541451714059304948366630611281239407347141369617047809328041845978823742757888716534712609055677883697838856619576815720134036540925484826899937350580267928709271749450956405143702012855782885109947349938004454835341274233308356855462377562090572206631910198058197012058800184523731280341126194746356926360479392231256361466072069025611533426761863045361071765073587543271949387842541633531612285675198557576946606725363776846544216528203819971759227491232649488875520117835110599245976610412898836955386455856582856174510577273000550099353673415256529610881817833431050938646734767384217127985637306250907480535951068782821324432394333395010855481787040100526850570178866744862159528144274512521333626338255732561615003225355143449055605317325391818708540926618418292185275695932229358381978759992923013766241366666779683471215251370904319904114102154247867991336087594501915004262217724012365405692728186797141579312726243835076608603175468053301888088527599347566019708160486532209444301334336815136092746878056176369319615349156540266080748283115326143589971505827224074048237170040996969184466072604386283073085400091149593732155247255195651660498478040186793511637756577887561288881836978754324252672754256031284663243597070263539537617836114435268435443920878296622020875863979473205091571635664950090806460039016537728628750654959413916158188846964642756007106285195820373852239443237718401189210311415542244823402017725902785868310412458636283883185557734610583262848623880954456255198125290274474649634654574612721846977467450514401758377215387853732288436783584235143191988407411088007894222113248704157831219252070900200535075703706308025156161099024179316165825674440602165959948685093182311429921693784344753834192106710225778335756245154713117399901542008991277983273825036291862153819378555761289808713516890147479352160366595672558422860155902155664981433815856054221695814254007573689119339414227746936515775462224937539280928218710498042158819134957599882236971851281610462339419049021746721224942073019927099142472209297087071026449036156165228587416357094706658561110661836658526522464287930307674631191798793525390548554957006328977059553837588298941229316757579359129627246025272467632958002442414150704101600319011518429943811841264127803861934825154492417294088677773970395591554930918057866011804712863621688794808718497826301098090769237476421897183633290791600017537176070533392716645643152539123459167865651899547434724650267959217422643073414918774841510695291257903409483000010641704135721986349612387752956824642423440581138362804438321036832859978406161636032240078982985979261067765088868310526806857132009863185691544007621006598234384965772868809355091223123409862276084583013684102200128816542279301137734812238593728163191952890868644590711617315273897175226170221715507273040445954744775380890855807571307925714450312857340176496814418680504386400244004723931645372227205699314088505498531575207953595340841312180082443141827935285584983266151166708453811917063803819200051090858599873272674301593309250754126383447074731857326692461375490832663784002127759462747609823406429577112447981884748271393944730966328251053792913077236232067712646325542244922595762813619994471386891154177612245211563428264834145495168040948632254669183764095023345598163367418804319307688338830918757901418921931705858552016367230926365929425288490531447365917654224348954089658468564421840984016724959413328463321913006911376448925994674152394480479563927391711100707182886986662130021458795464884153974056208481108467562907352719021447612020018245126338766905767453393048406256169194950966936647551113437386684627472224365542556909874338281738121759086917839488290485877873727112000574379033498455331264446107814897463297397775588358190434585877364024746752803059849082834152828583444092495712815262805917183187001808300109760670023262435732263726707327169419603968795927857089440337778307030298745188347681225044098534346617355428582757680284867091527462054679334242290183467433285180385430591658293699373467106969934426097451256406588285860099294001588006432145238801228343511432174914703270169896291059844800628761579127000824881573918591343104825909449095002007143419617098356292245446333200561440170628352779025489261168102203970452543495278409788629514473839549278565315374981912789533208416965378311981416672924426304765581851436224327018227304098304257987767360196593032023670940485727703940621791405269643123356917915317619174580895320016812159973407003691884779567489262967277401354280537038866896870332982883674956562870054370181646370985618685178378817030294563267532606620782090659878453254250677217289387308606422517730111557412325243455079184438569383068742618913349618039817835935949055800578950630702331386036408394282455861365508965084625337488999261526690035034518146503824812224696907313414321150135461068206427376000682848071049947469100197629883317007389253892904033918675535689145606825267850056445536215807715775128789603464194388819174292033487006451705528341575405686394689546243998684521616137622727922518171280471824641783098492044720485030374641934988270544281753917876083897015846249910386396851099374272266228594400652430090890743914318443964118703661478167763094782804500313309054020199827393183962067374760595514172919388067217107502186709794771054174283535241811013543762079845542229003273160416109249985011246925952711700405785516078945648966441707982694042560363263712732385034129595954352975187689996494404743877272207969832520533804863610681021355426320360377898416591631525144106405701548043364098166213309262218064362234161035474861860625739702218127934178148566922624082688986837057201138572749367576642601996033126453975265980920410182927181665801082049297893055936175991025941446133123047053103507066753474397840192511186206920941989198123916366242176737375421092558240898395715897716728556623676390480732657545194314847508809002068379744209113045453682138110477839703725222976674091692865054861665139526516170534045451697408033989501641341286341347707459108836385773255898433710317289056297130294588595178962147022103474119007662956001341327278757071923276067922674035013984214612889127952168731532677471326357143636278663729497375503550842106547160562701266008177233993747220228383785592092870468793828044730763002069591746254096449864022411227264001583117059812569874315152850811030365466117601618409765539892998885829907718926551258160784487091624279651830759739880843929210617461440207064312157039638008101799902862093454717838968044942628260797527335784847961000759537870173805912217788459384504496419987098492371705037876997627108269500368474321451772547803446063749289441561272243466558254018715484459082115463503457063964657602330807213248883726661116197222098282139750854552983968703589176393531118000121596178630742238480969349311130686588025013813373142151813614712610638422507791601025939061918387694520200261651530239794623146903681328030545806119114041844386887128829850123603742439897128383329671108932884520369480325845989006752221595031920290954735178415238519524185438862530200614179611469307673670768821613877180816045129018449032776006240636151008345716892849399834174203905232691961212176819298489878248171526819692675145079086179085286833575844810928730455477924918910307028738022388721274889113678013817844535863009056209855477396420226360461855113230875782066396682966572494057337617585239979369519006363898953610209562684669388120153790383963108199160021376533073714203540446717268583196753676213149618903732626968694013956734156430054546381560680062212891446395328624258204527811953158544862114645451528995605909633104154909536302541044131275694311606431874737483783483233853905171280245855552771640443261092040231377201534799063796207951315391718985422235587980007379560965304091176882202430438246677169351694578549394567127538069547928215121899722673399538046385411886666431527913567031122306073457665499290634391251567030981667831669487077090092083503104411579613290198458885590482677077473911895370535735781167894478638824686251664659309422131840214843003150629585106309723934047772036303645352922917770257666086411084309026050962207360102369459500997719313144030869610677963510545185383017738396967718983998662924423486887632139474468781928651841779116872444640425359842518989777635853325994487305912387404986541569941393951658156298842276388039375724870676289360236785341129655268612504750510248491124839419703406741223492005750275102397421790278846952591814224644920334872018082176125286465470748154784114252346759060615933108900646339633658014305744592399263776472002826505849887337475019756802515034692815043992741157292519819902159505230923442652543426979742462181899923473575235370232920512638074797471495700341198200173249941121676619144976597186982879775175133982596786909221842646689639178576888346601450767398010705565013211989327648226704252377601271015133508474489923596331204209619498357720086319883617413002287551606623639415789402799421557466698906976788050815567606023816595847822728879502771083541353877564890156001091124882655741023038021621458654724198171860842383645470053651758096655893971996686973029128555959233124563729838517618172111105257204378787228167515125482513898603939382208842871396541407963843678842880663072938032316318028596678295856316877938162194707307339448466437515229104406409048026655396192113719729038281672984224693935238915524849305691192805409912644114130208347085647922848877047534259062479338457092546501630267167052096630885674680031875643213103590460281351517919815952092518359480505691480782875080611558977755714683227578335741939144978656409371639413691180369386350220661895287544991374791788587013282632719125543550448746972433332548689892750369920653728385759516116224327301194878491258987305290737443591437917910889182240349902522514166778864962105856243852428562178813194406900003738417547248318530345858287897892873855937336006591500411033899132962082712367546723173870300552283775769352433277906796508114204218506971147659743370548594339361765501905077572372422497290907704601149014498644567467350823921711072978580882518358076406765627040028977298203452277223764703963925554070099221346395292077399394358463722984407946750496659235624975266650819967722571467978673839807069859383249655266464277182958393789133839237212324127923190086534499157747739097073315863573429186799539154320953952148924061226210831171795279591533289755095491955884336553649344768125416596376259302004855395781171233038632098981600303140953546507053020316433817102200531612470265083064555581478542766856161810640603288422057665530810634205174292440101151098200109780397551385309006903087283422703864032914398902704888480118120728689756581452321103347542758673655505686615102762124524919652538584207522495423968443240394279781070324019422698268327798629953090014249826959454027124203787892899740177956302021839931348893497274015642980927200917411170031084877617445319543357530835429801136991620437144752059704765823110617186666255747853137953614884435757580900617533298848277007566139502929565318334825708986293894323506960382775945738868529528900289034835263999685297638265875361072424513772653541482536116738943854767257920336981455464976426682253390568246799854411530883674139706451211013926922677183614632026192149342630920800289950018744613972553451429616193751063911987244662346764415771605820648022341829329758247832532113992454432642214637525989685924248976047420021474411362266316120825868096800546508111198466708729759192736788680911370025307492697913973634887309029018905045699873309539684740335255964397612668911421842922770878894207026123252560141355563567759607967032956957185068961223976697310161003824940432025887774565654179314714131531774355662260146831794298603351517465849745311403526143542475842805129255057410545525409865373581729202715618819938049901556574830319877878661041548896616942073315946957588064125883208780391405874410092043158368920006865898638146491644695895985535270398905049787859318526059206953463596921359620730049658100324454280103652382161776266222368987662783472518758944942681628606513021913068414673794646786161321442962986325672225753439021211427874536927999628072715621710449587598541578962698919229105597046625726419922358397550630522060229715344449908408439507419391887436344306038619288409218101408738273789663946942756466512054045799242380601700669891389403079415767158407268035913568474818442000387380972620576477376427059979353908151571344963833917874700277515960321263923102100002545953550235972497231883002478647967466203137158268717048393574619448228364525023489920903368266438651154343409692871241898730384869629201818560169858367743056860362950545158595539570710019227692808251119021710122831198654653207286615213747588211848224500155316899423042662283923654475688901238036129608287372235986414450405396326233604736304697776987682506998746180812947327791618657020466755404521364305397290116553037633881286289963137936134690046603095982939697328385195608371576219241960094974653927903815365055297840627975905915590871883115191447996793585205314954719704367240425083468071550126218701537525510113344018416819268274023525162795168096499711063795788696333502567186455073097474760934859901089299109422068655884674368251599626488159657015561099435335456645687192105645572564116465232464976567076986133163569996666685594222442996885769098838660806751121712673090186737082541116161376276882542772192136079481362950983293965301605318895975395608895853369211782258637894481636738071186160478411972097930316349037552119999799366588213003916965682971292026821804123438620873264076495605135971248869387238237308210983193359822886364292653165172197139287948956712933697720034150076964541789323254448036254175092428529357833230190100620903800672695777065775534960106625447721949559243304544973209992782729773158467104921333497154020240313694196656281052152936676077069509828790510901791074585069795308442927070869400678508535880415189958424430849748434160468644758573889664261963053316517537121334235449711927050655534741995146365998416391280470001865133968534343992429774858652852896434761139181839920022114722703761926105492919076804780635125521492758601093880238074301277939227563779859920493504075482932633295977354766864311897878398320645317701597876702851948009136023566539492729979945103976198119434265853266156511622785549912205310356050514802219759120052192937624832006052575572407332837812878048015324319941147224420387719167749831408962754888849604070133272985627233463170458441083922509395033338473104090674236966305191425504816234000167993356700558978218793221994037955185540439644392529767187083903551096656967616114770745404007815154442156967850097201473169638108548031594431802756418521507674118158832336897373770550272023727166852397903776362161870749451361958718713378175477875228491502612949426076955343993174922289354657301294615655309996717650861334231808447310173211125420250352641720997163639688335549080773626499135451615646998113840725753550678576116937158327477192714485493435802334834649300483281208171410043966492287386510589939552170756010580401046486189119316947906371025109839339503194322595655847462302535922866969881243340805050890536745973020471839467346045406811287388500678332477788706176663242937709850735831264232565330185959461452181398846548942870904422155858744012499062220733203823361392422328404146200122161190712824086316955282018407189903752574900055905182161821049495188912813069514349792163170315603826688234691250882009419762919108503770020095025781690137692654573763565544704238430245189287553012243855257524705396285634839515738288421468641996027524749398862881103561438693322282422201013984081341562232924397037973181311163433758447142732646453902114928912120099242581176216045098939890945033151044750783274344153792763658620159405560759483650999723119501401152719686735663656488918015204266314504776903100823252360385721152135339117762847640250343699184652068666484165667980134772046044277578099325679699552367399845810902812142958192264937251721646233530075407538810967873216536318841487774006799627524441022722379552711391439620288754709842202882750075208355965234969031126447000866475243778270373731485350540131729300897734186979745657604223078737638546113329991081061242396013677373711500433927944071812627231156977636936328300339879085989568653580205994233847650683545093150431765106324283935871702830581988556297289743299730881362896731065820336986006187943528267740857461437090181696984984580807786153343184802493464568403874080451258544493114491708326137125022152052198752336429871057924329600032982729765040248080971826356862819039904387517797013001775705742665498912519828987472005019606536200482601025640662557456587055768107725463176913744094899120891975036491110290610036851636710017320154183107237638713705521971447578845754599387728122621205313306281978980537728486651888917942472118816696678381278542380897271843840713925268296137304203765921692594615363787167959422674205126508687625246487917394054082892238948626347674152527286128557320240350774594441346956985890602686940530732939453652676705647729501252690355246761184406684148847832221268583514325343526606103256224513656642835561508023580067435735880380460633984280049865669644537264214788066292464729864044279746385060322559128143196314155679899079085162875255068404059046735191626412233156030949273236006632893067235541302943981684903971431581356686880729837180949835888594504372583883309488296437247867314466682464061473420688807950781515673957843300306390750306887172109426017872210934046154891021052419952702830615123947936917229019223203906836068151491145975412227230419248191299259477500461993347812097638432896251605468262442572333670009176537907401246889687403802813459647445627580799552797404513592850497394409542885417135318303271094239534363590273928935824493131475531149122733050590543863147112612863812912798998759065281637360415146558009330859114121851480846102962775898799060600709996357842658641826950831233573773825086302503573713446113179367616719695533523391569007093721279778096488746523956350620657544435328642768541936017425591407251068627120541861273676000678976394126844999198372849173187315322226869382033329137963349295462653469963987193554268866184333404312086441944125033888730437131126654889850686026283282061513641972082165252063967301054374135754006386834261677841459078644803227010517807949240858814706608048106400919967719693903720808573054196266427658116114007459750541371011923471229323330136906282889744274296958984847694150554995214531720859494928127734014311776639995375942002828160912954796745714490921998241085043536775373730365497090486577055142200934294888035806980764552444395360811297698339460091838345410094255771676755014273160310544442927226329552175024381809079776457706618959173755414994735720334900845825000644607640019054853482637832872245082344235470612001650232190045766832446453987446840696090408860834661070697647812476668606352230088097455217963839449941959008229132526607700503359099529753140303182008661309126545414833792431996989586486208694742514171097938413115932523911325500019125893100632512921312277557472508859103392641764612273339574951150874820359258405356780509575792011146486334028863076865902961690342734735025351326624670628200304289590771075700211484597734323977394074762298618103231731486999786562577509832198795081274236666290698199216896548760234876213369818473557169516122404404287810375719163454627725510128034336122518000238655617972769402339822131268196287096270329290504877753383446647190208298394090772463140794640000014862498645988205055467426528419762460424262214142510430233444356500437554699614277660593062345036735482745199256196563615448217978537825868199161148880229805552034786988592538011487181790369491656091379208415214701547049861766628968093477836467454971385712437483202752187202298074645140588599122944828428685794801393380781782877926206992932209494854317270729302252733712446190941309301592364074309840807666796916043607383496521726085446197377741353857412003149115518066144744664099101449150511745778716044079174883857426056611343304052058980113232789766102822399571401770536167937918585073243673831468645475101123125845318291398817908154982184640522051335665198816289182607905207177686649675323785129392356323560264868645148849545260157428949444686712959716862660179104324499150292145039266983472647415182348689616029387256743343292214907723975318018436801403718392857393920281394464027044186358645454861921710592204191984487584018532832700492549490194663243864306715831810940659701111647340442737762021439540055168311509858520925870120933429259683008366427754610368521326189767396779705985468425593886194937791886813085279995288731762863963271058803779621310475250471601320878948635316833637090394721849501686248836852649129841361839542566329702679184361850290980513951692010785703858997528908985872337907330703249697820802986944816116446455405934083923938660480246532309665751069127557346123803500796250363345997730380223736794485480706908603001064774026054556066887767792116348432714814015288132776854485980833917617427040382922996865950032247323884189900254047786676236071045518024048540112938512088630943139304213705646687167388939820106364787439227073626185276826228682383919169396949062702214172635856567300432644622442510681329834447039015115305001575631140728587711703160128865315503730718505015338441476888450951081354875612825770582693500130919804134879506508491137980440915429619927869451298169044490329425459012452585060679221514714161562987102967604001560406645448094493005611189815988286420493427457364785367559935071868037022128849146938744943249482311211230670559415591310141596290390010699326708914318111621476772227385201727548486521460560210046811882912717651269804865196319600773096223420181689326462666567774181568700896853140419130219700718378282193158198564164579789398949663384992563117362382064501634147583959560055881552041388031471023932942135036656669937124421980812015189565445514886303237044121604612778876239863161624000057548935421420592897737555784421207600980731332275382063270803197805144537006339944352756493302642823545762305345819414473335481584570257339939175384032955598791400752455352267262220678867696033306593578089118969768325385206891322502178675208821012382101011199320891024382501494267569021510158642990661033149685265424704264968798027737395159812923775670627203478345770972777712620833955623982819221686364918786649217148691598454362995197322217974924583341049408678620300283908404171687161202059389577611163285731282788046938513646895161263594394254318745271459033124839111195753325545830413647831543982529420244497454289744428931873968764872800532609910907419580225468705332873947861215843072710336190681509944063297821116036945611056766181049617935146069037647787003820283772733815692708667235993164282366691021712937188835095826500263434090284694931998275424041476886243685478116839089320122004704468073660249840028984251389022579581839581062564167393065207050185851300290138963884360414406470115165162361845537370711788004654888947312318603942909872694278758557470860579812700381857975031315721585118024682850365944894751629155649035239932803043402805776408941425797567883860805074125254766435473335760168547174447300595451662760160024887544703075139127496375419595238329269440813273991279692050350402635656012677356543536335546377471896333447813719251505753919085035967732050427526338833072187120694769635172708981324726551117527128913004844727299074569476120283169314210959283155356448915252757428848086846825303864477176556607227252985462261268770531570160507247725100987720180632805787731374194858472404008155335000773172182931921601376219791321774060256370224476511530169793726284130313964643782939289255917669833311360188523194812102529407341780749116878574083809851639786808426220700006565495259051095122871828509783130487542426767249505838720790244619294187953981127313618884488391042627685597753085121762811316252362649098525733099186759985140063855964428283558221022092043765159546790592567050045137235138832128604149913426664961892640420054047017049997918977429165727540588866699879751284069076918356477583613805708684614116280409224649504024884022861312172638754358997842796156911945403005804316230734701689703480290112603995313326769464256280212287718161636009041851252160882226313555926175083987273921392469287571774030395753536214719917885136716699538088880477347216530022293340621666954019462792983008323470980903632080757570925540708832635009497541764691280425747252103419056170349183902612158799093200283530897546749289409762413540564735580804028735704541003978661232886505637658549679944430809822287292839879915044318908640211416278698300692602599686146882629659261519203051307953194808622947184587311647242561129529681899363152946941026859134789478347618942659859828947809017516553819584644023216020757360285805351635046072173544283798610948666339364883097786127466360233682431451822940781626370004124599700335925011131253183347208956830845869450481362034060868472907302980591939669809546200900037462692548636134498444822756834304831022145315340482322894387742549468237225012170203988977386095548592051603823001228002698728315995523374495397505843290700422071563462917278534755880492620845217198031768107178996931249304882596073350186402974445334351398809298093007435579741977018607749364066289342693033745498660444282755311466332410083974389046451725979626820090017643118422328712334884390607940958731769683042326873147074635779783592640701635498156887153864443537024261674484585472023200645592719508245573839765230928023212590889611964660082611200488473395059684703685930833589779636169190333904690111733605758416442219514102589078859433653891492122607009119703769479828258847424477676021381535122581324763597066747883793047863256763581638037458537545186852791410709359180489425913373986138944026235716982167310304240992325870827658617802888373685597945613001729740956243429049384434025948211945847367127022038303622664452645884009513709392091253929360767942554496816267390211706287949574372284850189088014650717126287800003243517057050612543326964565489225459223707321726457029652699760652186559105141928982498858781450574240965935059973167418725842087033519099848932440172477689728818724063701143875759260261256484584628439014581353629057154900173242270781957369795607594473040463309485053683784061382142891720208316746509092980490336095749228438548099037474372266468989724891022630504142837872230613125435309186868793887141261663820572596665059501516849645391463772488406510857146840350696103159902856032369023469231079327538417381482623874337648838958742624740802771807737078139232308980987967900879353206514550695112935101184110939078347258082955965498047865055296646841870881642467379083302405089172009739128450337507775797087946333941298017235158836954386532573436699875499422130991859999852372821799528659715696379042761565544953926056001074816736644142373754638169730908157013589865514037493350126688140064625626562856861807966765214273217902127887436056101056607343059861141924498722894476793975764412934633811624634407804791720377265277086406323417274404184545029032963045074220038960237899642267919969911250350478141236002204515454709931346414545248818456118638732958005011258588467273144847593315272517346945250114468214558297518458177403774942326851138064162293620418820598923734775199616781420662753899314829235635153457062257101808496637483136789345268116460791807428301493999128653950066408321867854501258689054787972040418876117557998488000514641602527291978268094506888077724503029260149847459835177594662258440199514105214439304084935976156135767904232977206902311741957465609242180599187641147762011390189463079014775782241676742474941861193963264513854562552439084876737825624734030411594593785231693354939994358637900391881155680716630226195452479736564824232191179183586128234713604598877429916998254134176982426854071738965519541085660702100709235260110574918632257802153373535468978467339381200806998815935562203402991454241296571700234804392853462970391028207712210978963085310668897602868461980756415970264732067089390306749753714246986562157922304768261056490349879471054335482484845119122169757203942308518524509403514008599376381289137537009835897452786243217554381880148679740269049810827034713774767684288497878128227661655532576690412771847721799663737097541386541782779442377263208519799361882277071584226597533311940381398190332659060501816695537334954042481593447127252149251430687981704434327029697866306706536634837258444344671602097928898486698003012656784376006941538639171475936805395479979001859248294726326037396182401735449600003818566512163194865088067630525887220044675752294532682411386782921873713812944602824271995006132003464742992497888635831217921268251074355831970604370219950346806603708952560613906412316531868736189455570232496885673498835519302419548345536595442854087757629570546366212837179827438824316963032819758953041869326279758199163577285945629310607544795241536338228664840472042012192324714502465135798083743174090791321689266341603947332369944961868033939806586924068631885170269272743579340803714097946676793375792924914329518245131860952049926166297599594703564574492262503374123052355776797588268700030265939414491254618187980418093954087050379376261576244737404189917557608416235825638501922216778916909626332384119723341505008472837282387365510537441118487562124848573314101285386802716122773263659864965740232343020845397963400286731613414844945288445514160290722475473550139471615211041905104761625628142082060159174570772301850211124053798869571217325862803338561525820865429719125095502559258887931126323621641130158949191502961734166180111671389711274990813260924918377030982920231326427754916581347654295938381406475092712601419711214253418417774687197002841247798015636877676051764386819908035024946144047309610283759506078008459242266832285370182526383914119875224028000314824286937676528171557650117792628234748247711455767554915315613648964972517855651434383593281318523624865150338463382967031134678772508857698123292125528407907199201408786716265183553945459959218429434418076753633593231634395689457317728121116066197223724225805284197694902563060358756081184098019709279919606079996802012962288607330814011635832252330837834340701189215632884057691177719019422746879443197815280716407729930913412620347305000077547710133144573934790307312842762397833958097228478625303189903986212216357673667671234242692951048437723898687084582301175493117602570502143485607587056947786455776570859658496192298528088010588872923230428415459212874137495880147217695680961804473051129563172409068147544267449298044161489118291255974634565140955000304446509340010617581253521618539897243257794297380075233866789627225869710579959352136415421848033459697307758941188273016295039143129452091681947626198106790455592943678470417225460829560296428627774806389212101365648246571179079343634737114249590147543484368848615527711451352907676656076832985514901480173985722033571264296669336692135180532350224689227043494480894570333552394500850131169303976628623744329545312263380683881049223833064320589355568662626081573617611358141100782935276948405950872264273193716602745014361002795167059323752178625105348471541705474874980597731719893637310150182072711842220926555490919914791491315151002791948525038306138676741972742732258308765299547825269114671225989570380988745036937720512698841277119984916595419432262766698927875431117339029585108453093075486410062698628570949814877807585524898724649570459793942813425495431573836976625464419554870714469177919494365617014033817413506375158959660587924852903079632215022841212252448876435220511430562821241897679868501892991138814414236368497105272333249108359095821694337408496498679409039696509078931348269251455394770215624501092003058419976106954431379934903789215372229680636043581916276356306036175523751639289027391032397863217811382651407401649870923753361098047650135403053413049546855764463225617196792189966130906117684289232460704148916726063800868384343296103393207028038390217958004365520897017906455681784537040361496927883420579723460170277093161943896678728328447579786634013734375644658865081913076348822985396706534471117030525940256245828033108212499771862230900261557868127003567830160092698954821888670134692891961907199744699110650728673824114174656506701256963136641799580643217998187406888722129810943706436069634060869040456806007358669788123899502695127934825747648911875919406523686077394692380244937211493226275085905332461715384916441855321548763963778420082921548016753985021295962707679503460461616431569316024024250431568989482439077227791584315801129469837492004647271773890197713188648518056555912125094446616420162438689009000049047023566400145948617466604800047159982233283672477124370143201195213485529264800145323042326068957443348163014352793859364317117662524004227320748088888246758257449863587322502294751160124662865072055439871982758612052566285035774031766029821545553831505225459158782692249164573749358680960657867229028473960150203876949693706983668755494825969217179239166790084788038926534516224267907588667817190694588018710434266926586618911471072535973520633058594736115990480745611529568680558309174370491969329668272903627258397617707497720515070304310937594241899418374270172083620022071907032228909885583746299577330860690868564011349587141929331537321611844230584638498252428605944180066536399288649023836248405336457776518775842149864707859339152233250781791028895437695405735452925210921468857725963705328030178975260474536730013837971443833357289330916077644269945958403941342529129446800438978690061223814051400524764032467625948781329578956673787362601199306621067755198357790113118293121638865063390770785589562108118378291831224666286238163182833355463895562656407222061534076320382597023417419165027246253715039613210660981330218799195383706697053157157697762835666399570204574275300550445116063131186833262019919857428336307459410461608189364303356063593806568818541903479909146604330774952060054599774509510259882730204413004915414528871658867973866456896521533949657619825542633171110627304027456325830523667322013624461166415642333530933232132905592080147022802271956708854164066758453283294442788311765723379580628492292778324780046038115343386393244914310773207790893659520129481003368754508918243322451738803877510080224171471026328877938499021823851734046307748880479711735736985013383414199747559100604234899949454698229017880462282965215375662817148319357184358104456240022435860947174101657504967365776256818574103871728234421282533654673485418909029789277941349068391677810023996244989909049659985460557931604299460749680025843577430601919326832323889220750802169414897848906604262966706166355511938517318109883457549553004418414218781584477973817725581039787413008945474366050193461097115276251800918819331442901583706762652220175554978258077209359597184231654422350369419414821743860339267745457426189551124479524040956533686734586847201671202321280662469984242636745304217496243890298823200686741702691687823237981554827451032129993656284942017021662851497103836941675376347120646784872665976564045871134503984780004765677766459951732887549559190626299592522753686807536563143471733741931703082568924408614556181005866716226098703221828874649523435863606874920557739122932264604185625267454353962431588061297453062637509487440217759658421441003721270703067915960991772016128955994453671938091698785683118948858400088421604548326713814109571850458110533108745502904062729745783002985775948076665598488027836220406694224811993132942677287285898509623971817103051077025690891792959057669734673855388037215350597592161785787776606065404001767725712508175783827394858225297300682083896851600799155446931082612915666661785432799760712590679770969541521527879258319811086255181599440588014310395587878377321665530998393699137468575301155181300417451597805317203029508293629444922536023685535261826154869222012945152166674205553727164329634388823442439864918603957862086760798990509074391096651501560077697165745802952278279602228076887062348245061621155267489401744363273597568423907250272503082985676737298620561740434260861085231957920684657846436057864441146215525476779902754304183763306370561406016487980117695965708166257322046530719358809596291469228710441479338015212445894065476744463310527953749207927440260218129655713210230884543600151619847854983931898364290126487147960877853871336151448697742390168566013409112478292795335596970758191195204879392251084885338863267359775055374800739104880572007197680440108263233911210232594275632132664081843490478635291601993004349876696876852961637879535480524297310341204316515239112902686829952758248274717660447375998799283049143184972558506222956709595662251132301737946570500135478883656677855137674476179700304957656270354991454844496604926448203130921201441070933229674395808112353493048343372539189358242881573007453357811607143613656704415032977113359956543209379241121995995478028188475114447416972898383382733443398494277799586849390076486528193561095973104544551235709204063417886484470075099074591281606578457439112592111031746279540852604965996941786304710113834236319780797299243502798250412416125044073494142294449835073267318346465398514359432079293417084325684517159750414631395096220481382106512523977928471704143955543162214735222913020291407889337592381229319687944058830432455126329578672377721954282901769442213853997990394326772316746323174753895779470235234487812513216770446906247402710491794205147176493929268280838360186911023419595464885829866166758185295399218616176654317828039921821659487660078018379524587903661258959588489751088661979853737057930672858332012976512968203307538162641691088381268099215475484291606626731527504244803348817521216983481014958409554920441469964669385383783970393588131718554724443557348386742725900867350051185884983555718475736870747233315910101089547243374342123994817214803442041166237036837161392194818073574631937677221543081619781718345528421137015776883967159054077535162297327411793982937828677506434306820454765346260730365832491306576992865623700187465948596140864300305655761985558219651810137166754458055219919455536531543201847086594974851616255339658268981109500454506060129654255720766761664359410264465882632723316293550743588589456024422353679423994228686203790388490122177779818703192157651321366909770142269742252299895307178276231101863172930031388119270622247363890617509875065903191367778381756711388097740615635362049082903309153503630080184026494476794868280216708282222428024441851014893554824604453020450852628944629706325514396017487877373622686729665120703275659375507599142225199999221657260814346090729887381536538718532201164313825634126656246661635360781520852897751422900230775108778921091803527546203832351778941229263877816660768972053041661295679390955633021680756324091537066284336618111803541564240189720249133158037156726946162903111579111354279007658638112483297919555778648485681816341047589830588617683556668288752814943119738063055492894910187206680702138450601494168629015734778303123342122433741193463093547382991764182249163328726871200585491558519639924830824507058342025953226454928552109057710387582423825718073884799570507010062644918000401617251440680479567142250311757315206969658110372722799276495698854635427713518351258129828970380158777195622046685244668810866778732842198493733913988759830111035723684603284887138913872962486680258119848241495330437976125319872835784950859449564613912161967393284611787842705208490176874963537634475192400180300119630656640615620265548234236183410531913051975005368200456443488236248611064885334017012784453830893672669391163731185752623787642947624808451438267704456381360641713436012688715880291308508150457093368899859629450360177959154666287034576849999902675634719813224581336124865405956766748068739500152915936026148343239584829262639898505753381388023280379716428063140010922757776529794043903563168897293045317350313884719942412165826079008146661519903540195290032077597631540868903423913733408390737055835814128198916847646305264203921343959790852472822372203327814973541188910976490930127419543091111719957818791128471205355746491257266907928716598303260202933971346857657035993727218273329100727147902972153188791267462011678945280211169866828677398655182608664401340066518447413921655875223054007852732794679182957380115450196762730412275710975682178571105608751590865411053944270899092454450515193537333202484347745681782422478818169926456584133455234569654215648383877651360879137710745210399757660142184385558272515172979401506366096743742422112002314188006175861533733658667446391731669835791688615231849159296502732129813213897043591651725935017093105009266110318905067560717918486174779459113912285138202898956188089466895365962986420649167535086353686424796136655173838351500924873239844559611187374942475310003672892052261711258402790470805798368299244097568979441045411829495607170232917644471159193938027536261791433961921365733340885741609339805242179716105570641960724760496857405799794360740559248842545296274771995812632170498154839165476088532235702503757482544873751047960251515697764267742224973684518111585606615262323302404189453391350293237965697127348107283970925730112444096128004539740176827519446310035434121997485690559216586433682847697205584881014430286217393091065484214407851462214639480300456585564642213925657459391801210583452422909041366240984875826329717466607370373362105480931693083272169413678588166626146700959022160837736704955846608039524533053441587856966369843819570449604003892936905820742646840379764543340368895750073001408089154616929362284354144544058329950573737911565444786225756816472713746972189442415793444676791589766337827144491847847909290877341898501443133407100887811671188335570712298253688611413361963507316377677158653767065773002640900815124599942068213830391662482352662090667898993375779609040795511202810816213556206406307347141977565796477433397847236701139953324094570154489081179185180398070478782567386496504770508025407080753826251057391878703679705202172845764218589286740025919276899055439271539797266601505205231281408851000685524474808418908687219046500381848136120308577793219480263349878145288398471205483539259096872084667869357517044376812410971622527172838898569586481221551459359180196547532865901051989798371052838955541758320709881579941359533910481203268618495432681538897307870811550292685452099014228851221395559378334894156831658355559353325436102162823112945925338972427035129176427813290335582963411274420627380633017110483215077466499847396316897649749142373416988379849559529517067454594252885373316012997177160311866409563918756391553964787173974149003837321906116423926224949582412666496221633535324201915483687452562165967949640641286738048438235780042940668289999805194322745954499464772320658714291311202341109519714427114622885078210916068205922165803545650244718277975895535129220607667066015260604142193548541376762147592805372140018588259865629960597203286284597700432782011965638949505015608660569959701140810342958743092746039479677677675491969079023564635904710964077051628009940384262463982209563369683252549389519689460666390532811224306676588243012927653059375772043269412301757639530636973789237059955361519929794699425084955309520232853452920373794304899322281306127852364195262329518764007778268885159867633877493540242199238464715618058567953312899967060815437786282532149999108493716545262885068330616963929105045189789246882707064144340383486682005569144137210296143362348250640705174691963893132940522240908228218564691353457101056590409244126479898261760420600474536787574977314608742952498324260751834612255189543820995364992196516974113498079897772003163735014850259939549753134332098935241668659264427198930090304023558872993615103705377336655244057480935723183695366653464540301537015603724291154734244649661033427229521537404378229957828104249836754304203552212775115621195722863071053051422945102958015174760652980260956466598980399829293502903918555699560596526231044874171576268410218264358798939597950324644398822698419761283543583916889521239882344636765557356946478913121595858484433124224884686622269612049945894334571908333284243064330564744086285458141734832292439677433966800989558527009641560213550649734362048854130914155919817187421588537818699441469665881050808357044200858746365280903502006735515866314144812260187926855980774918527738008005625749639710027212971525750014181455209106962958688628036216088930471867135458422586640843972138659927521692165578640749538206776088259054767272405918563255641267160989873487150876147510877508497479224572652079266241102785522716699863772755037518423012446399512076366193310953385511701789861336168310736975513645370717644198026806180384574762806700543797558737258043806875299119613707216964817932942463189347970628757151696189603677574256208418853234652602021011775584340094430742517670318318381810181773418637029709075368171486890726503444696024336585452762545051062772629753200084094357184659659449485276269147901400969067112950956412717322634447418983341889086547528490154222794446567188681932342806710089497078917496060657196365306399642940166782559720322049514671758040114384543140401229616229858750135058913429072040249690120727135564551599724028338343384244893217620781925187856176843408403837969514030717677216107118701949846014079672009382204704960043057730626480682090003755563045979671624502067492800700747991924763821947121230141424253126695918185751766076729372464196316558999083741036615490973159648484475985409001939526292822668466122682991474849798540081300688438440624420658904072863368111952410353118671023350154481028024873585150956313279589019097682659498781069860674237949564040509540760042923318170462471594623888279057645530696466542959117709483078038173073378421651928488858132350617609132891049716844659249532016238538863547966160001486540518447809399314289015188758879852431313013691162943891277498216910722617061399710692463368252827784606406574541968161588374785842625669454815600179165963037307316706815642104644318484794132137999562571941358552510877095345530309444412980729024312482153434832175919244618610292004127569508664565727322944610014236618026358882647920439733978366295335992459598572691745982609049245745823976164115816388315426974326793393045277386328017101433550507419619917887330683989346545245295465944763360871404385370492083529440408234146433063505445580958891240910196679451369377229177905152021058733979903918957273638132643118113052408030847804701589059386219054466978240397967717314071878359818189285068278893095166575424188200003892760681618612252035448781543871786573080592719651808832273195533306652664477425490417152935234631208488575764604769294079854625535452998805479016519090123619256912156178088624055186399713668521314279346663226372314453225714792388412614547803711007244516200991052796328294377945233666502402701959389426318956583226562487786677259368038929232969348237834669315687217117776492488450383224417426006744959336774246843782288903625738852747015720259091493840609308423482198906841522818511988279090585268810234720013305272874610443313036623896990011665936101892582239104743425197023693915048958818129839059016428929304067409415304675039101416177896828394829440145872834394003009444699571924132287820967062005248692384628644849246721733407270751176017384317270823715615122003164368200967487969838411414753059496409019024266159294277619565504675048143175808849953347675725132088582486212682105113249446225924270188139652299775663877083977398812696276039053896554117719823745752465949395609647090494000129421487269683573768331923803319203558197367142837193479338948398747874384234777683672650843350893855121524574525846678248392409940823656613778599554191113402100695497329573956152880850237706412742312076343838998290530348933820318448091782977862516727236755025581051476883853704695180903085131904318196002778761588355770814280236733533612657761571715853024118462781301456588122152571842516154769580744259473195688055001406541263650249349301894202708966028742235038768907383969634813621897738881980660797989781391611500331258230679064287981245683957797114631690296938027009704525809047845808356151792237189486083253581528931427509849711258841777316493618970028072099514339171831290457468360808226542597481572113280469960613270199633618113690252593994013451677215803688688895262461632058570835631800417657105241400345918797616744673676859772683637239308319055200148729549223819224760358611627391460749683753351859659502839114359838228948299343886251081328557616097032617632136920636780965419869165292335426822060391673670815395850837375905745277255447014018868949109540126329853097611315373766496923078675470278804936135198370227699919860264294792086910250933802585451485279320973550919329080972089348039104088967973863571096826422136889990743604659708497431143834879103055790849949131782722812611479983792819051362287139461908167205076810561394454428538127163406038672110955835962388087266975874001467730122000317590316280399732135223226806446320021307456655288238461225668405465971739378617390011170514425592568936310548694152516034903101453598972210974434405944649554256070561143150309856790850796722658681705440416616305822650390902194885894304249325483755451027287896415777243547332369013664462099955945941834449476476473726670256291681921461433050417958044552121940073219339460834615764903194200696916197088084138647282140848731632231953202024749679840037703481169575789516217409228842121045738450997951664241341350133551859643797766474427668384382663179134725817929702414710606923023584989780441158459909929965294785393134588463147175657634949098577779656456760750443797496306644259445419838599365339499428028502510434505837138863917253590170453573967849098320260067162753933090280480573325951378405334379258550138787609817718366239448945443416625664826162098527371467916180849154770807921870528424298654264583312182846139909432156318038914905896808141297249686878871029736115634818278186363556363138443291389862674778997095094563295671427659548048423335969699175453513822168783309678720655167269159076030813383569918821306504588255089762673364979564510458107568755866239439734605219101589254993932901925494583892586703977340665361647874624927829075009762265997407958477792707255688558317258515614608723239354443764115127827561992981831268344884553515849284741088771522434553606352877844121783321531757174128445724902170292862437701776528675994936953459157716308402047888164113115221198690316688866000815347226624879558970482241986663462114854572882782900686633732569902560470329719751169842842564146915111837764832203781014269238865880924939097393922560009103097718021583026130000240687648368616299326594213038137408855948812248964637645280866680149472560152730570512895575140360916371297803950711636850831283530845171466436453258967957959955208305626416150531434838946264303554394424677739312869838360870636087703402020068856670050669474543558790229014604127059305494441313926801661321067800137638116607398409075714346398881868435195840440064949137472425158875512562654127140102446702965072599163749368875165702069747667039344507444343297763670362985076289800765531801918044512835696993500192954937233954412893912621648775295011557834886676368379566142694028692466811913156517321994691945558560059943989867998785126886900313560975573241023722425685596953793152584340697328249829416204073294281549342537652591668964878450257932458302271551305666785330826709854196658247725527763925435032574314424077438072040760472480382562061406899241270528037049453975113194599278118231989424521765387647819353146897378683480411810746404167105631893320202269188941109133000181739400727666810307094134822695579698205189886204339726168323385234608219507393924657388556162604909003429503613343817819492044947975629807984549142712398985603943704169001405545330825047802684454681060660731462614391030664166372836920117712933518192136208569116404654579503577702933929045648180120577914940986025783412508135428676927811627064905268246696065078697342955628133469180767427080017561461344257978959452720276140666038982999316993550643420937558195884533650592268002478947162790139780896995387481794404957985260831291403256912274393013009883057964452873570130276327903151114251894846476039305503968970889215851483006518254148782691450703645927721753555834835217651255008239243959548926320729307746914435191400284350824188496007110450162868511066241743162514289275538759187264065522200966508740068851234334875753363164131530687528247577366741466722491899087758279201696781637750478039065785470305729683774298563439887766767534625421288243989932565233163008784109998735668586727936788836415976110475806646534180313045570939689944196952472017495969477233353559989415102378302724313922262169265286035538623077371586767308333155693743160983904615521320348721626245865209673613921529848932849581051570113387429749074007367526004282691390563435079920698373905436949446838374076097208806545667493548989789359240342480846547811106674394557870371552826627663780245144257998306412462533744308517925474847447092178907995295429454544197167914617969878485268475475488579567652272807328343588603141230474473059315076855667765070117173510808043911788638740321482549473175273709872749800407820087342846198669374178484911688884993229505624907637605938184812824960291122244413673784102682990222847392096997640909435665723119775048145857958713127345356230931920968508663953211330854038707483404558632581640304507016243047722922228521186719333704511281279624089247590085481640615932191345502692061788242549455921327239965380025442658744722974228621905684215051358971342811243809600566279646582061169896604671055672698118801126186074761633750011108455239538374289680054901507306295226527531932724970179767433679441211769765255113122184002247764461312533054479771975926027005942627697909292242653410458455116278417437896571787386278993398563159968953503664238867460068892318189036108306961689035445590768778476582139645279034519973078262701204877771986688978833597176206620339996604948998407090022123663877690471817675509857284661882975676029966800307313454535182759944233416582074645119726389596770964387291834217145286891582917165979903526596092718125130012403912547750061265437403620567050996358289248508952341561243993317773719365421176848640147414250530690058070307988237353305532257166957373490307630239296047299134742951857314951668197115418671100583669018857048839841629116228765156459518025460751422279834640069372643257138936316154111882631668611955578527382981656377690043389641513362437276970979677933837607087709629043695378195846242484546458642891022881058036642803415271626503451788375631697064774859711001166195916283740224888296422241034100115767306960826519634123549551629371422126977383857322777792424584260588635111164496201564165144270094557435522557627306068191472578926355533517040386133170661418928438204829104378934656526617117257772036716862996976153687403454928943525464875824445222062904660116192515999800038217027117465961639772497381537086995687123101144207316147984944705334035161142640680721569134680764254440759187493819769170176286091598948481939421022047902694502893236044925516075702788116824840778752366851102593897939337786471321998026503909043863172743356243292124425730660046296841456145645055741469699726852504725848764147366904562925005251125158662985349391690583276948662939791539597371031577218357344166681144775418558646502883664866368113551174925158579271916079555712755746268679800403698954397305625222717833182854966763739980086636653609399180927807489781624283844162322499316480600705915321470941245366287781667237902732725891843712839044272245095802615599601423825668160868433477046313848223864401872824978469066253855229335219145631666830872003479141101837147304653012629057503627350423429250356703436320720645835939211639181938678421496107002329866496610480317155827734552794402841372150979699793254626469990429279468018527924148837411153486414070835030565404761776576737970530059517373066932684168796304431969302525665632387065406190378192979468901120928130560729231758517226395359326921560765357793642829769739623511141642389055872045702577550115253251291676070477014527803402727196604742864412268074303717127808257561562025171089963831428607670968927773406206771325831285885000705271730738507119224018162922756616592223630738448391783534453756998048663442316006585630548580336198889018846808155234663561933682454695422251941216785434669735357043917790091425385554823405666631895189371120040295495540324780901553232301553225401594397704080215552509638284167521019862856946630001117225705314929347127147950717388809850138442471897385142385911395277712050849592640465456290202835242986083355863796816548171548027521792701521816145924711725524898988996223399357599715933882645323049964959594117113115300142331911835223356752855079182251916674215181796500215104740539080507446549044772656594096197862509074166823013613120707212702958749544003691172954091277967285717599049486203837233311601261214218619881428562901785507589228485797001876938766768552166024777867604479092694611649259710825334308415771195442575962355921909520553430738885940365128527433326240420847686288265338532409905998725274391014294994905197675816134606222344897636245521081534205339449075148253470646043957090782407003425290263883244522687740031712495567636699667954674373297077198913243387371139615606189845366825014757237359236577903490424527938313930069243641313158415232536471762770937915538129283168444199377645254952516334103485736665462633346038056387524837662232393932719775364642453988701470079851114220407994237539234904988011603106402590776296882084002112016508195666773737091719513422822402759750041241204662352232650668431614544715724542423654280722213614521497743803963288788025071984513154413472204620521295295282992913893007035607824196949087272061177529638626435960168578215396961526417249876683782857007419871729947733083618402749981082760498598945078887656300467176094198269386210670757563991951300451025974871479356545699576729395175222626408537316194340568017527375849973287889518352647111485107310638809465319376999882589774365386827091728569392526333831776282231093772930984114763094457840305054335603613504419839761745698702477928473892994095504175352512229356367940260800492838610739971909147167970114531680254668047777455293323524793375251538860853318328608277254087007078372140239651083713781907361693346688551448014710703904438168244495111443350034051642802606298002446711871388505680673218178666217661708410490058681251133304965353016469439499677285452690719704092032984796489862580118558621652725103918115086722762709498445022881921405142198265687422703620476088419270761055824759903397550563569269538854596680679709685541482547232769178933266448418532568504962362713705788750536068357032781228846775378317152697505587295667909166921101182356901572470608049955855432214413122809126480360686451151511700052950393296685683172059248680237230111105827282019277375586722697779599725388110021170764007535060691211379913330755337222934467596246085222531035747780618373429605770032636577379483410335846015130565627563799388719642224889914618830304529488176923641640492780975269514489318275775892700569361807015388561824246192010484700790180715863548889186700619383649142696033608931970056592362569352409604946570634317142730614805880733982479059447780939711978698241915031477453500072358856847728898628434748571672511162004202126789211898128006075738605043720634147382212703300633735245535437809688509978482551885311648898118627174627421743868417315167554804998688043610360190838311621215396345081471802379330020111178652704053639003998156580500262226842241861024834910531364864257109350384834556538695068626853905005387088931730589314118489200518051269393956771137883135502105925612897281556158986909564094412778835754460401296459507766778858555033022619644445042919981952882905867286480806252025439464710721073097933978817829336946364192086636695897819480677117354210028495581940924627137545941897389320739545228349628041717142141089335571833747070062820973056425246449982576665299408491433399660393535368355410298267070184390073803698258919341909574787800779629071925854655119153596052710948519296620198924349047484970879361833885574934293200161447744715016259548219691250632318644038771382274411912799075031221552919535466038225778696822915953203428726126588293006326808937197554456187975807672530457446998796097286343933474984069632552812303087019361121280129045595225229846610647702043104182496277227123193509763299162656246912792846189576500935177750812844951314559700166222262338177602522062329729482193771459317428082771514525651369825961284667179563339732005878981067248517885185571877985144675699147855024046741182828744359404626877429572882184183180891723188875091620348214930790729277491938291313189229744507174748153381407205426368573308339144748460117907865669548890484800329668417457485951981095417198619227376364812178116850307329961271035507016262395418629751382595088547622701393679672972445766320439538777141389752935336564381159936663770807096004846059046198005632719215910060274778462853296358035390353209156963699684182146623759108565250707048796278076034707069189450245784959757720827585745795193427487106931307999344226956245855394684138729141497791869197534565727743360796174231101056550301339090559075773657380871384968459366282007955401280253531221813552083746572162483514075480003300309475400446155283383618147391008371494923765719403738366469226293165314313747751302218112707037085460488559805658626136720705277828919337830854564556012455650726628183595406601617694886981448348812179784624546344357426356973528382004187956083962264549611214169253926239558565926471757337179852442012726036767474979992425820958935010774868181703323750277672085270553705996646108668882170788018569494097550848369928906026198845547830662740505272568963964828546115817247067592295763642955486023136791518422907762258495014657366266633381361461681362148288427067927459375923804147602972660505480959424215693363384100132413422843525431201408763754837307086889916960181592653266842576046630780727268974143751747133594379060150812876338240332395386571466800351740726188046351386231662376221855827060774390093858978673631851565628917877816456090251403460109733938026835827540975177686167851180055995903817803030578435450903829536173931282925250633103598488570990217061862146543090422381123866408707509476358456984629587087069415208432576987159107263650390711436025393134828340745573999970181718929530905560037775954191684806939473835579544355860163437743748321038034269486633658371854718194585784852516332714763958450675042004490176064661432821691519309331956791376427869535072150603209165367977755271737855800497597106865584601668572671122853600619836245970870791270495988874826862876368555030631363157887397010890737825627040814160662764668693960834869467916806643614939672496366665522369187626361283212047659251453909324234375736445160854305966007302721505390008732678683701430842370859822094376549082649059815762296183899886674769917750983548613625998682343873473629971771116269369011346851369228315916001792763982808624681361673400008546695103873564429233538816613953425958381157584341011537599047769262719280139309348219154582478912068831569906651907644268126287121012890698826984991480099851547392818999200509435066593342331348161658757986659890847129914479540030546503641077241357822999631652664533177400366974470163213988958073168196360113190120752255110774586512843676625043328289304496392575441011574510174238207946749210701775083339473562763717054921381814648270689325971774580395798830243001847507549023141904693095345613875713447508751233436801828034305287871948768699807606015803371929134451964153006631793746232887294372383026903767942823685434938610129012196786665989906992019213790193356272150692261566582600095726740824811683664684446729027910786683553445263936902564136943002531813198987785131331503764198281319483776457423790943155259081763286664728649223949966214894550174801717439435396866446607778391254689856521849979899252449177804298979626059783407589212754237807354378264525740264596748917125829231995467437926878955479659628959837869779651955095179628737436878905613185208803508516571640916436858420918285736803646498020565737344201192158537100731843637127377022541813328215366094956530019073858325367939431282567080216441522350995734934945166878660480466524543451947432828596512131355349768177612240463314304178447730237940523103188136341364100535808689071999808335131020597974270218882960016961082912373662374137603243326879366693325683625893784132711096337376714740948040713595561578995659026950749539950511723127462464158782399048402458624602288000535278047540038067712050761738159537386824241255110491115793513986739359742457935987152398830052449784974093940528864721674328371754948721804978413267310237366436560495974758412683976485285917841900960455971743819202731637622671585174116332335722630148960885475173305588773918734185459845517039554656596938232709341981841724647521260804860966033690849055766294920939746830289735487839655547164813210338331676691160192636018543688938764740956150912867785468594246710850756560303695514542052710749289689697695158016376791566963339762600916535801385737444712115744681557894005737924734521824572156307124447665444619909474715931605715439674565605799169278043177748433210359633142717888411979759843440558686411799605870794484471132261262710712297877755438988411709695490183654298976312608067513253317302280770602724376613763971620629689701259477280768416281588211926593881511579193058653695897512987586139009037390927212624841623314939923105328276677951032838520285318264902199064287441628107584982978831566646221373359156771454698600061086739998610240385468234597446663717360486452543791340097059020827825755792573121622664168119671051256026165293571813561376779951907412352316695835176778761155298982351876740871274699527537103074707076610468222284622639328418931177653891965746484019068678154031367147611608050903699757749625410664849153495644872068025277815444604115498943596386629524765543355577869641792706772003284050963182889361884642603622699188814112299351547823565733192452799066026396519629524255580179693734931630977606478253286398124931846356864971149224306227747035208289030133459513705976784015193847240611816247764900065163667651966456050637136426870981951320534241750615195101251920635243588779385102799126641148299312256266652509761395872079917338991785047053186675130687539530503381755447403289258425602670992731490570491777685500999429533516455874220172018600117682276429090614341982518054992112632113068947840959477131809083641656754447554358660325990050255005997979535081396644519971966404710350307406106813570483560042165957147325011238933518935661117935797417526546569120079294696795331177012562756244602692425295664973378906690231077269811396383151163822803594460659985764671498824008957108321104257342825995991617608496938396909131306835051306605323397281383958797393752037729147064343606119039449617111955351653201200975996360288812073092088244734952015617326890868435557155207880957011859045311937320226238345160049851146320541659766133095194607787362179347488908462878101875507513092622567327190886259452440747277334394410495022245181839517178545764080433045303780191162191086935344357831468058972782396554464701380411098841815827025771144468050790732380547541765263559615225335983166792875866962824851790251614379802940180942824861131853800134234915153485698782052031173413319054413734498450290017133166283367684440739976963336705873425908613757329932172390385892897494972179967895078705053523682170651624240256622650300632952850070689751214492320137947691579012846246556274089143437548239838059019425522668883232024317571118162877387627478897027026968689477438172262615392652903512235242748312502095456479270598438315752884614356154611924265082277877752439775676140630700649740735758537031362478222799579148281784018236493887298370468213379404531492840774729037373057397266132704407441477054937924671910769031048019735272466609184651721952963281895854062158240229335789736936179418211999184487704323884734194634963641210805980084109093203731850821746571389018901502223071140087732206621926133637325007146761381180660616035408842656629546139996391773960793324266074742039112949529208698027434990091454410952795119882642108294896844515397065450268179860561438414657850506146659551032578441967899117304320758975500977774727732069072191047489736725351751959947247235230349727576069192174239123913073108276255147432561780048601866390755133217807141695891432728340393344004556598322346482203675285516686648514567391452969191581437258776381897646429680993297630211248982748813637677822541611091561003335967222884539420909865198871586427004045410045238263942648957858902922594535437432046333791315599290475455680757785872924570280355942201575872797823401047148300731044157278997333111326169956848835470597499940516603696067096968855194333805823683624768934021508167662704822939050804922647449086298672446506735469610179545202694470364430162791468809162802201480967193987092808467543524877236024166890086227935361421116805768285905002565253874586597672755325792655638265566400353952484126987149670126088835025507454235382451881979772158115368162280523908277507765212612258191950491013915154489330082325013001059012654731061206249125747344691492284798554288691570255513112501825320400176001245553662009518506777062317833089558043795158121992642754884599848020331688405823119935137133691547297675776919186412802984245635963459154714743164495708365590286722926759952009889316398878520472050865573240350717774368504222394057882428114579274264540476188290751854240340242763561053471236770320397610500043214723747569488363276156011791739653919130475318674023122386459029087244936909004297489839625593958593629764806922146144002312806534422621538490465543948129649487486943742129161492255948129794698888961010620756992899593977825594175623304224320715614115871382091640921086620048642850970867732708032225598184512213171987604707565703142031565671059262528845841933618473972033564798541773914319309054791747788821293934765628783805439147669749114828397751244815001475131446739587508221247057159930303979993058753963358896015496634426478443674327639973088237871612277571237092383521578029954959189185357483929301785779115059400977699982631883023602346921836516371136753422752844850342801487761594423770204285670665472089493345302123341721723676919485948901869707717225292822416452096418850489487090964129581640791804759674853141747358264101777412701855110926095646028813518525802924276220560394870612785886829294464729679561251339325778442976960499071868875411375944340099143470177781506716289001066963375230390081929271845174277984995296294158923837471411925698283941633154400096639238980635914405456724762939889331800664838571301804384444583469605538064712127830180730438934432676836363609543723634766144981145800492229809717703959981148837427734486213117328628288598302398241327578360670689024236558950360180176468591943739353076909061445146064308152521102811863821767902122448788975970674580084011417753898334680691930645083604229307777647311479118659244202035143992009808949398779164264162154493110025886247160962535960774212815647086028358331389858163786458147750048543626433446396103686956575756312914423070244257940892621754289195961697861044052857777008817971352057802172635955891622854817206380401802241977465500513456399806346735418251858468578777768119244857620264520307396999062386659108722548360040651769655169855598055189983368939780370963254709967526750675600423891824549408398223117865106383257417052086949026081113352380707610854477045085136686673134534578834307997415772765344800400540604493586795997290267832281681432476704558526202476096414318150325605112614509406196546228489929621863442046591880871286133847858230756723136586838431693228788115981041418939894387189982888287787172411908742203533200999142088424811093339323145391256628186954469764324899945429385120778662575315507238700194787635508435818190597543105243315533712010849698727095343499564906393872408522320125544827663941984605516862762188617603971824075290120433574202671452604179363514373562097042418412320711280736372841383956835217823645463865030799258565083245121368334822028676609944596271807132472288937250016944032097563430680414173076326131013602687414780590250705542121020108969422116536825677562090724842090302181315324643927885216860449835486575738674933365643012728161751892305704022130873332187377874608617395825574040241470958763532574755825375721280486186149121150873806751248379254744473776660608019391308376917351966240914603485073918982551099505801892090139222696735988051617071617430419036040686347898026739132946276666790915534268712280009599222135984083554234273363556259478809861472218952336783572502771987535020411685805504784335470626762604088114644092814796513453050565667997945703314657174606507821624113211466082592403006482152627728922548525479277699399077848055558002442471254628554637399777043598705573749765817101956936243769586747989566169128873687725622269189158402061667133729946291678406072490243868624759839084210420495941271646636959549603478964317415725024557965353957444249547788063448787581918851648072735106929994952621249506438699567944894326741584295615346016310413363624411107460365467599058005307969942313279436140382234120462753353944517584544919128036443644792995756888889763984564934620844586502371861184890663719371392997295277085873782139799027890053115723721019842262807401609684478519600822597650284769024176590364779881088669127465984992466074257547354112218975292505768348975785396521212862348495138085798634095037179978080401180273500078331868056902703291630627377218765080069151037717303204758315417726842633675564342823005766111823634844742244633209741403724187541547035817159263228394870006357918382760044723101449616609729553513169904232870267230943168536960889403790774132165005735723084695628913502713659360854666775248654662310520011121428968894286820055527747036946260450768616330816675449974801618942143919499263612435844780589707294200915042886538083337949757450256314481151490084770681520676427389584300639353636901857258591800888565262863090818176704201890950549812451034305319515896636070226783656302767688088395590644159151898350240333058989759847405881407402577547504131472082046373314528506471130944977498126511430568001982684681749299225551974654586606932092301402761673294642392450908406293406031965180366353898989594799289577012549017662833954013274335966333502596941826186380984490022550147123728788564692550364221689948434981199522628774339248058512181977522190099567739605529672713415903583958058927807604941227409548061778960031835414809259971442691127910170151435205450943607515759366734758231796610642248678221563708439880054566927792131237252418667605408268738953907651080543131208796632805294397063070377504068452359355088803765378233990644314026642348355861384273103544323824175992926837656508559890791604771998835862979818023354973123144234474800903055318990110260942486093961449673820972999257237697093736615322907686999103086585616616870515662590788472969555994936824610239380439814640149188240305223600022912953076609603021614889689584411727566220232755656131015371045852907049016456805260526069690796097409433193209440817057842754389821847450066948347309475382954095702566334328883041871650396368171339816355155192892750426811750705236713590638020796693663976925579992384801233225676996265180832294675821600121584051691329332937700959353432898762123288282122731354072845061263393131140440701039534071277520319318050234402445407899083181802372643825880075574971200027277793819637360754728431582912087030779287904561569874457435550096349885883787522265172925767992403197734187064505523347998603592503937092498995230566111290770888079981462555876692702680010815485838603169440194014317130194977752959401171086796579120612175179693015473717870981097050251265321426608018482458325604281128010303561678735201284273094816318187457835543609399785243613157965306586224793865814651916999396574560180171258840077729020342403939544429103014853407713347616998250878544897316840499249304323481284196945301986508273407202598775651120959438655514128567142320074943034889658934184027036117664404298684189016394148681450186112212628397042239339413859904387275918533673268500131285547897208079669433730298163955303835909584002543142451267236813608810572064451159591630032729319441750115010236756010405434610282986133396841936547306182215701496069084079160997934239204227896427363825206562152852435627259347988311397919647037701489663625435839831623829997867200345389826639614683518217222692255579408505747146083368725425263403307614412792630251796509639795393744483781917670979916674842542818968125180095824999614338265465114317334061310343474004657328055548061610747935879985649218931256555116034685920098087325293220276071452266310931022694852494837770030345106620831464935395060284729206971279470780124222479960207417604344958987083541500044704144485570633866568447154202706039666678233195030334708692481483934062743155019095098820512982004848726233313376516787182998272375254133136827220488209466623354543978400044782831255349707559213721021919188448944447131646113665763690503229263313958469164474138182602104201505062688065194045739586689549101983936454586456462968845458578659936872278287887826857113595576224345031035846189453930493104809829349282486295248173352439245527141643951695261566176656326532666607162293140524130004377576375109339054370401098815377184342671884900906770659766759064388988747218428494281655159992799520735456361169376330889522536630136463384977254595773200452614013606198996024736383583461927865583360459407691915780234201799174976662567905296829942106228239056515327685982892513973379935114726831040492812955991542210281136384126315439329830942876506230659750700184111806030822978353846872925870908844577956244204143077300255297925701110643697679663098027419012737716702091691207110561918430584785736177745429340775019874324775210824200632185735519248269139588164917520356154797789410628880134231699017783669223778096602920030762512827076435900235787513648953849691497702470037229541303581510559662787523462549170786778533754049292528657380303021323355386417507967076139766781686367392852702965694303325464604664797358541417839606298698184829265876346244957612300120361394948963169570817918464303079493337633985723309047860099595603498862622434181338044548739840052734996529166366079357470537252358714559268061007734496785975915948545320496215486040040336194228402431668340433519505813263447279011854977178441068919603691499719506787936582387371171013577977446894775791277991127108685271038847409635557364685384175406652193468283016038711305263364990186513817430098760242080841990559880639144098441206907532917860974626679607333423258596222598156994515937584186861386729883710232686017335158265497702022550621179005033329687174516345797615621540683665341391587919765929574824272800748175993714721550393915132290470945566170067880735374335094450265403438100374987485576422384262251283051601002142991018944325256550661316533539385597569386211328765992697147759357522703917409764833801622808619198522141474232064307950870682109611868477725253377179969635267504549226619118854746472839478284758161831414060696912597803535074279108176246137937963537332669221797126177522834523266862770322083197053085781255780556605341170081425294185822648880918261909748476392243454415687844908933630572258322724866089527582657224295636334250895157169610503304248942155234333165762199116638994626789351123948915300749789389467333764694545633713972998131268816892870695974960871422478342654010872296257017033723846844616023013526318058871838651180097142314879543451772977406648330187001564687903611851334199406902676226977521077726148931228377266419958828612278189288019644432916440610488551535374498826887229230716005559750116537338221221589365320849979344712840701075310858798959674157702901922104087317485623418434314203380947331049242139844335403877190333079070222886999584140480233417073779560304835175653731279713868154790935684547835156533570204143999283536628290015093588193039479049903071222543551100524013364298708766646931677216414652100033962961272234262269820104668012192573301472525541851344339341182250073544240918532170943866687615240995482535492492603595442800110307777530378933598835155672401122391137428550685386741741795580479088146731580726612096210033758347769748839100895379101698040067532012941128006831573445149212484576722630394709629008118638381850462311428998287040715570745680057517267263993808182907581774226088401499718978028780663156300206957882042569678991733455956923224238645292115024527720937079177961815834564478606826001273198321069965180887417196987461064931587278753585037311251525728742150172668233862536012713948182232871179613873047169500745087734171717940977621979821664655003539186190084916177322794912769958379133043569409320769212008689508589429866552296903702788153462040530077871771285102818276702485365517984105687287394761813064546957822583796787092503395908740843399391850945350270902761095235941313355318141500201379735239103851773914567416249320786935442807604371109336358995233532814452858492551001879642387170982102598721607875493281259579319003037860433872158003917030973045569759225154116881375868290225977863787581094227295533940410673050087667071179219436560875920305009706006613369335027022451390080440961226419902376224777746804047840712082397924521390489680252778846151197546889453972679664992774784330372020745299368847140505828137247378886359326642879545968535812358114248594903357788221038046570034669768869149820166180990662974162029081410018617418994494388128952206510096012957472579828791904340737185130279383471022730600665405067923122135918601666242041778906017235577663679445711196487523466171068202605461102444460670051880567037985476959529580799074228595889296169251908289122249635185982135254947544360881933378520279747894446217656835778218067060130165248306452577151524794526888073725188091343249317667299739530029433790905086060412875026471623543183761746485570843747502226582230917458964790724803538865986113281539983056016183303749725458662078868795720283335132187827815596485703882776135374689147431246884833271362121209271145698080602724249313861073961811152901197853292190662466931708758383839592201471271325033259691210576663652098081473583931648617631318457586095249894492402497737713815064923666267166204766256336810697118786209710278389817013586504786927531495376473540814254797076142185880581116139616238124830347003385978491390600248359843333607849102637628975192521139829767255520198389502996946177335186580643269496071183715627484182352228610569410766915294146958489441480277472306246530194747209242771328758469709485732728836723898754466815570338546443189111962226747525172499910905921773793656459878564509288655057528107148565180521789911032642946064280364298008630233912797576417083212748221226386076391390137581025477056423263072775374824284681209704864731310095615278405627233319727264253118273724151678307068681791874772433270260817459219409386794112589969508442628609373721275708200710448660425292759498196369538780076910143777828394944529169836802430423794657366241513306609888970545164402582524935111340247564420907474830982563729131116598406417661474646102595015229119821822003802171233329753641141123166527669221755794108000415633134079239593881449201292364688565573596367332036360939975942628871568259117975483312134712177152974856541338651925973666601402870965670429475840543485401576684687870689822282867451735327361051262819963532478855470781409465148613947802794183458846591526338594460697672675813980849449058464439208202167643857689238502442150968829020388305258624198825817082794040472694211126454296663335317065809407450481506205718068265412176974893714889915455966648964170900443671093094978302118424900535331689782669797656949257824299322347171712597981751454231048503290275837781487494036183128352903524577662557314299489977479756404301248865433056571231713323130893955393651618476458792867807283026638464417802592247586986298424242589860891398971259763443305145693275737019057688976781817236842878068191957709535788923120776225312410620453450332631764859114668243713079749741753598695710013416074028496722440237283621854473875201073038727301255231433787250155274799214042067591833934898454673815973030659638608576194657654096809755889410647731144036671266677372736417333394262823167399566699522862412978145658011120268322236015018102877745911140514346061486887060673808436793250404766757227707625878978428881278635058330114767945606473695132808276080974518471905869863148632452484234438864570810145873835588532268495655672920062695706566530802886584294765920338298331846016627896194238692616281374181347016716668688373148113945340803487625922601383153086798597829204277443217282094366256492020523881190259346937459464940493213618218900178104068299079116211979655073719124192706057832561909198186601975632664407485039213501278236295889801736672664394339373961614725071037595995737875228465276312487183371806764840014614599316833974224549278239700028904777470479170363934974846873552812902994376124263013602884493857245281775973608933264377570292105899511176298956680769384169832100215871102532163400001061744907524405749379417569890928707062219560742000927930105721170131288242912789857143370250930917441789145877147306109814764304407998765786499611551587383442233139898770016238717818297945447546988284847187187469881224728608358669184344877488410318570080399497657599806806231964060471733789345924194410704016199572348110893698620202605443716189705922684119746469980693078230808620837057643954616167329217081398939227980672524433247814557210241012020279257146324586485452961322132463933409643074770833782247583084099841647744973191106747311255507736915696400002088611497487896030815192446666128360739548892708183159786703811202110114964393402826795938680056854481345026681473617649718081960341310183535957116613475791255439632699942923975551574107360738971479637174573218347912964054009942677342987625037142693813651079467969622197471159103359217100266283803470995644112794500622055591350390510875673061022195602600602976682408449163646470371132904114758978466695392614664473064874609395955888450776861919806435025716176741427252207512297959961855295047716688953590402065945429111410331526740715030153958907459072637604729427222580627718062923256631073538255138781381798910913796077139785296789824386955050998775591444324801203150682316320583638340369464703949889933524667614908082268599171794750544564049106491168033428156344844210021242876510730186450749036257906162124041700963790461239915261274037483240606001003862217420328011965611001114177781743833283565986287363834270238600882862606483018491572304162747924825047641841169620704684238639375255470969551692821119623905471525885595265023628964797105988755977726366706746838652216437101620847558294875822138677675369778333612992255573851688514499083914776810077768270443457217415919399327330399047365791535578806029113062980885255154330354519254706481115668948850975158081090976594067150814715125830132499439499355962087545547562907714477480575055123709873531631050047298873038775419396080975290123743968920807509029343655944862378547754228709667434455544289459342579844502953787156302247698919904119732880603904511122654260334252359084176628996905546117268748720016498716623459581212493071652025637470712104922544155262537740057337392758496903569650280519994870438537115684038065090008501533101080072533554270882151567846281542349121927947254241775869907571148700519351859638179320239539246895398777435645682947119360201901320428173732074077612529585190133979453723589491927035745509344533350642726970110484337124450724787762747813534788599441935014875082681906988190841988802453391334049367393252223791021695116857759300717920455489140911745366291638306838397591275609765133617730297592949664512962180710043320515663828177242560389987693417717213494008861359976552435722420843067118240416572258421047018964986564778962331847276516076967693345528577535320390720515729301406814160438300526695817695721992169230406284997929821404097220796153785579503268486218031852587546883319009390439918328567466867655082225470393820864751283186705630148643466983629417462897452210211232659143362559758164954731318728355811703872792811133211611788211104554293647096110514352653783592732069330261992193506179468016596292759448824963508180137310694378562359275872506297436704346704408960935407387205584977782816285127529045811516858743337296218781520153538618082871726005517520797473596169746962281356154474078125956269013005780087254702591580222830208991958025201248803072100577870447256734134777949886788479109495478295016076366820187521934907273331450551098936830594657283311002605610374097640787106975162216172401061027474256773408019715860521076301111686689561369065154642150535114159388630801397280171631775055970375060993188885504024506599816301487025286372838358573770614158036717252729033643701795364429476550956938700307423586133901326046612834279697370277805340826484201288993542843770065839526562440381278493141547258309289691930441247151453458204531349549951647487714666732882001758018488208033809763245449845044719696852145794030513504319057487222789315584330120986469161867774367511026170904434755447315782534094502534091787297698506945467653750248068195234320068300812795924460251446919207392680555310013216402220750444192866876550226273147178507409520078694107173818862727456794381384774964179258520478451072085492388179129907044707971321612812530561925003670320969352072225556874345954276344620617669625643446566792491472666934267633149892512243135410642573052091824829684093815523524174208675353852126200740306955968693609047706148552328150367047331411029996100869137345967408773746734249389807836845040365360093788459214948322449486075616412635412492985712303857717345727239882658667706270080429762867703395065954141474000625361810395157189689827389096089744337533551499823196243799823172825966381359390468011041243514487768179040199988470568170059015983465510328899853921367607646949554584059418604271997590391260928762407563736822053248811934308267453123078503825197183481247763993333736971140377274824878296246647490171403281727864832769358929775954311142542658996310527281425496807881416561294794948608111806071771351480647034339107522107701498399157154523441500436991272834823687567468393037334208029915677955292832824485492363100829902924221602282641191188225439151682878170849642468306578223701266757728179389818310257027387780333157618373768725816855882934503965697894821583107063761620476357316925661533595182418852203061596747224029837939586258059663417275532304847535519283274346194680954752472257497062476983785347660863732860576348787354863980048033976912880553974230603793997608560627261473141294107221323262436464750736171464556272730552766385913905619402029815580560585514533507967942021507042494057539830103303274532031116800102408471306160029229756402328181173936767364361443566006476858867669502558246416009513513415042765265354036336179638652106637793542368430177542327963395957512034218531160466247127210365004633564126029961217508407689959116833203417888906094955547197304169627215623577663392767858257759819009760008916617968886191106595510946568907798518844574835467975803551374081753344187304943249198325570547109255948315137296179070682178306368755903308460423204857416105585251943156060603465638244525273277781379232978825414154119153828681267273974480432093241479020583710482896852167611491432456311903778878961898500203637631937667713130002416115881770838191805842309074184998460255457972756423748273753431157144210969862480711460741651392033020871020657182455609122563888382082690962779125401488071032945362878854018451347832106681708722277497458411004963837304814077370822237453600383209454825611862465979927646084448404789800495097794795386257547541865720770103394336650049706643269301813689376230826945795900015140375829876800323055575631256773969909377638062873602322876147315844276904359047221593074809212241250262886066425431763647778868739499210310993345110535677992984342827482009295610095215041918359749981229856014007539601405403792546704519034423919083913771960006894025470272601215225987858493545284119968240291679709214660564251909844210504297766638289982542460215758270250856166064283978403632625786890235954011966783833264984268129229490366623826619988454555889558634062510806598145972281006534422949191819326035519391297017144079336246585506195541585856553398920083406853463532149375826894469038730104868561203121599537984769588750543002106252124341729618531610037950842459555868365166580001617199927718568470685177576200723809634605519187438446225697425429985617279837558660534673965851714367491755220992058946457618896628752950833451720514135494804554305168553175203433722499145680961487682687995094715363995855370074818469480661546120482249403232547366571155008607146619165112989613047628864242897515116144877997747272750995593020469276276099206615307328689134514283504378245373301560561927430498041975954918815525050345597536530299145645003418519606989388602243375126464031619306416692052810119982805636232687495592405362379390391369739428649943721344393727942484354847010631822030290566531003372108280777363977596289725316643104032867372955094093668318106223152881037022421854959155732034664669968140013794165991542092764303278136646770005439051588271195630928123024948031593289706203459767991215976215436007027483521864817652724321968917634855575745938609340448328799114340650071209481708723037302021596933646310976269706753121999982518189247954693274442954764685367646928579682548619044199193787923726227386418755118536473581158149837393856713282645103522946088634207216290451409724035438612354935988932847134788548393518019916074036969102000520398862829657032024701207710758164081683355559190338752746659381440975951330848505906226064918628512368866411343779082712308068125790293961453140812736055975921456022789721906236819982986571118702242351257510967595595373138475182234874984260671220111854396497365779866096836746169265911927420514092822247822789955622261575608811067758281685995820639455058611777467646882308488031917257283418797209771927120459478622805687552941831402912802129143638286282788574954480383777771539217002457051831375415851840153356699279120471568547419849937216387660459014619356863888378144465110870415358851771691202383798795715383657338312894072048366373409686899133749576570684039752644120708650304877139359951042457638664251126706041296393737896583794103669392737959583757083265709315096983549363063231895587781901162572074617675743561621326644932987831648049974613735015215341927031142434885314070218267380635497151787225001058613507619699645208241057624580359341739424003680251937260020942796713932334768669399582423784744126500798299556970931899495878026926190545162334767451398663468692532728199578387845019137565566330302044719919498099088948203990269471436397573927329161776855466847322448105533499399232317166158319040207920406798599230039577932948780275643836749969341611553143794442691821389055308759780944202211869971143250420098626226760574977771073704606325257094531929738754540324704537022570992537435356803144887930470405075171023488890631223947931523862178886917131275230007221487940174562428823384350618247021189127767384405693187939563445214326681823044382610042988192723109812106892932538391906036424960412068797418789008230640642393200080269732003287540657795487108599002288069099228033094557632068197600403001166810908036946632461663511136141286955654376402107002745536449948649485118432266852979773485707217218675797765965001150832262949938722178988251305019296963186578238372333397174432856194604829635981937363381393084465124415781775336705426766538277995490206653453433786607953329114155967648307589311169136397629038347033702219862134887976509528292656632160665609785786288159207412009777911198009853909189762626826876178042423652924254079568646145353165873023033091498301154840824952158313313424015923142323431778388876519528638692735797337135377994694789250770159564933130257910847316054717309033116167057409757990783135128774126402181277003145488510250198430488992737907612990041886450988353653433533836673965774383776299174755099247080355847140189394595757723285571456883679842160878317956713607844566115418172642604711426687789831940937201975625429696615043562296688025638979648752244692528975456024456600264530701942926965351132647399118690770514168933187671809313237715651748138427116879006450455436660425633026027785052002249021364346118910577342391041713431605252056155433900832150129141519149876827689362877743055288980985712066006971477997190499151619804921243073692282688241983997540233038614879814830925726071537971790479413982595293422468933322537177982615336317791093669466440866694493878897189540877326321107072033152877843951567050150150217879202744514991359566968844801041909496437164546988208160095119109750560243829344281744794897867515175354273622248460290579077837848612601406429269567699114766048342335046151367879663215493235027492351049575174012825738195917959824656154739917585483418892032615688112962095776573108010890604339402345013965174603018445561634735680110901878505834014542163185965231617777303952797868172629737449821047548749703835401745965019339579549676952609852173430220844304500447189774148923790203934546654704431944041908091381742885463691216980238252343425016058692067249232432468765829139015475299498959933353119722639355201534270840301449626544445670855493311692678879364428784837449580483657049850393255605902574481736590879820560717822194026969529217426902464655777595275885676844998420905467896348326664051129766571824112131233331846200488544948311291035184215128224839225840712870470233234206332389298893278317465702774244096285183502317758665400641276721814086626280788746380978369507130993506698167905325318100988127340927937352105748099198116264337421319713727268987853966063484984315319862271739025948979959252038277893610278250537617640181706395407735978679822369478485234482089483944732995043180411770348751005302348846791134440744970687387881071606423083328178969559422581401251317496966633104744132901075821348665569109376155183090868125741104340435444866429817883527894367243669133303294361766120502307202987963859921603259228172686779440227829550931118414085306316486070677295251110209469003133908607054790914927449240383546112927621540614772426684131618096826041400300674023694096740292364855897910947237125165545056325707930077253457708045145534662653353442469216757701627929096291650638841365023669476836999110754929774139670673268431604227441118190243727495566430592494454240701203042223031386274778868657016262223169251717579502777265147917978808535002928588729400293069379308312559087004948928434232694579656027161264671607950032910683068585722847921518092090569651523648542023170123623653104130957401698407902705313489988260315889229430952706245799189206929745774035397509771047507746579461869704001403515583101206603025404397115847854767605790245258570675025261192884194605988971785250552010951837822161514846438685564243049575447233935032123766014634002345402636717495716421569957752846115853293818139077758976019570480475131607977490708010428802148754705093941198092524485345849885044905363666435336325232952134896578326686982197389783520725024300024363545973470623319797912515689760732648445105515531427942571722139882040753522537058160026696440478903401476758551911818691891268575362918939015217988542916482235553898980256135303335402856242393084885472381909395208621226750554620915447998725428062173604910140150056019299150865035940231853722493057535003692309293960392089744319607299472073075085846213890050421234520165718751540125625925792512465268098442749850660884054173934310975198949121264970257241747003515806111930842191522442853029249185562638063297837027317917948394907696544720208902583565884498181265708199865032617224530385179354400431826686522193418931652784120138464718136252652018969221799407783187448105645763296335128976332999812982699306995853216338275899161122667154576757292036744158662487027433963792644904683536430183673755780231441147930962368308660452677761988810279846656278938325519999899917333626894447475454611931974706661709561622053221471114201219551339396055757161546017747746493597976452713027972569553677394499015257377893223991724151860805709281430618032425546989643379996644787430828090433313094821349320665601361207674679855588676847480975670501314257244421493322839300484902668003860503724680252674827344542505396638909719752313728923119212661530296254136644722599856072493560899113062604631147135879385981163577262283450580064786060525502857352650121232973823969265499505800149602510999649133903595917264723885960206087244799870445964743920375701215165982546858538039442105745716371347759887346233289381087195940128893290782452021835988530873540700187943727078643865143936962719648862295683931623792778148820685774631559006797120285022634599963648410717777294338492070655523756008274026771222702721329106871650613746006631472799748242091089055427254291615178450779396813618235287684976687053109888017098170056965519521228110916021639092885440522101760187485430528425510678488506557891665894057898724478541000176163775350001298990755763105254768075375911321513227339207074588945520018961688790776961246562939167747013800374633955780763220450926959565746980889510378039569212346323959702382582417989196474462770727175882486600811910881593611980179667731362854393048192038924954328354415600638903525123210688321695704759390226958794173883798784643466227282380060126894392147598154709031289369609405536179819343112839212850033780116431285420001281984319463319607936397943837048744721916062144888382759751170831377100830286721229081293244492830619630373064334131524274037090260622042808707677820070063315406948515466037528850190198743490692380957644056509638789687086524643066798453456823158607903674508929602098103393209045799320618948519791768859346313091391015939400100028834454042975937763259179410901872843152854119596823130916302058821361005919715865172627972543439633313276371287553246906614594736099362774268550913002106704606422438659424520855263139090620003870969184855670995123950529909046607882919478014569982409940366572684825850264028035659019235753312003333412664947351727752953368702611643200310348720251235470382567086334014073348533475073645446801378801542606581294771734086448129437644811127560010928805367477817393180469984174756351224762503209296405061403950995927896445112809144963910669702613970104168049450391938935074256077184327514433933048084282127473600384012803453672161304037423700779434665953911625937634067601473601170822702483347701057169310561348294304051691536733212991976434390075406753242841725229431739675579796869961438816533662875218109942581281183390856725878007763632428318491482423160764625832849143904784484329854718943190841404038492513705478487376480667069568591863301664297864939659226870663172477153124649485757604749729545737018302088871905608304234105832706598225426586217410839062335982583813112123740801791037706605860249894043504942342539346785663692895478012879229464313711779322110978264485256296200067283641022640962055214488896784609949372367958079310411139241031527793912089753948599504721078705941347455372281811771596881128054291280540569380135921213733923357021692190836277627137069815868335114210816370390840991266444852239460705009960895181633721797218436169874902830419142582187087910739549352894786784231900870016761105213037592351246502618769116099167718596568522294630591201177610307177790446509094753090685486500529687913367183433119275164771154174264737234905082509819054012480730898524123747152234108445908529223011777162911257231761791357514681856533901707944141816162183733838950127689971427602033569320628125130311674701613326991538620523626592825893468875217068684910459776317658561947910353104487754400118690657920549923680015917875779802917185728047723676623209816407086005704349498088541945204069557811912916309801786135269841862902916764401820571571876067907828500918464766140574249825883629132527093490639852071387770112656319924976377083854216419342010883292627016426156315339513273190567937385587320858282691192319369383332116010967539223570661761965917910625689046009592805537801292982116705428800626148096085081457038262715722993338225914731380112221272660062571350594877697422376418608189513044267986840132038794552566269550342905327784569875087516578888076510681137209473095079620264622244756454201192591371106698871855051561336719036501166463028609056991539370539069791117500974372547454842879255589235063960654102107215656328617283434001434228704699713499790849417186631772202410682164683758696065342655311395477031524987097361929898174666023082134512204835167644094316080608664447415855446667533270467659616498255297631988679413130174733431147761023439324675573412089302821513464075565362063886940626719075786529960987480438828985508006156875379771681054031315128811126521530943084255227109331378705839668947825560198681217202660184718737767283576193815011012080286679921748316307003226512855783026066629575841938801318690824256574417878340315775062978596268355263277612962913356490941688045923550029855243706066772848714895196680676456493309032389079622395045381345275634992795468097308089970812540904467796486036171005498149653411649261531004692297768271608633705369635838761809724267527803573600885355688497928534856531106980704949195609591043546150953820285153465923630724439878329850443430574404176012570845285729981338574312701896603348404134698339332085518096375853108969670766654430263260873033156464093115133313268291756685715293636665849149909709579259438291062094160999234513649950558333629268413167255516072771815119933016309073058672028918233333701889279236973911685878373104565395900843886655442220469375320748695970016268395974553525488117274108528141897392394709646358239650389711774541909919603077020841053619323853523487811082516139721426922011655500799278429975013609716400602961302742602200566183877621217514036219101788346143570828749755250473049083236404556420819369292036999751925902999561978889189107749197499345735139265545659967285627677329669972816117864735351037626989344013703152428487380946956200671313016489366685426338233202044213077574573369987139419560227288048613700205770632865231327597787209263751616255076390628350584863033497859104709886392572799165084095795192433574200296811986289105938830963995682627075765384989422045577480025790496302151673488378701275768555020930649016208182658300788313214170346386523688258409075359120115416263466057327968168163923315278081383452444645775122659289426995464413526040224679556644819229153775408235710143253329127771987938509055515158952881494584797853537025659694378963357750647745627321128247770122679234341556827435948120998020173345531204150828979868417539560903322840851979707131417979839423251116538752701917707305256871273788771251105678028394889599606133996668726138814860219163307587399587666287731430191789948921525698805104135569530511145173494363622739098179152333728030004187595520542346030715646849724545711416928203442981004956636306269519567218006785139978233444857469569625465467679368467314926423264088386573101494482279883817769271671040798461914219204488219090729846998270026493012788129383257146381821333133187999617896965765141126478961033323955934115168143642768509612800526979964214032637007167399145068904521766113061439129158844247683577595705129646571267366450428855097806053986432864254193888443148624229900734070432301330470344245854583969997138101121449626414797639670363266146898472235531331919954726422686818963553887018597582575606126532849316918761866301117052169907001456710347881493634223448956279512745821447118547647372834573281864875482538533057525120446864278877524470959029856364913538937135917393036037312155356472618163266514241356640993844569182766704599816853093413974696811475285021581224436989468166233365249940935502835823797052584556505676359673061714266243684855615927107831471998292249252496936471720940492587111054142612894775574059565628343463041117457972919553162336013348692360109124424169281134485391637391189317722877783526689070625389814686151835561063527896383961536863642164643936664811548416690051222889999902069829622743983001070859945324686075862814516956331174852157631080921292773723425563120045882895008622334275214849949453812996354589762194488505347024652295429451059817024348790600900711278460889834321915748719808960131551101846954954970678170332374605397530038530008899860727722961388705033475153167451718972733288518148603551272630958478858027220114283430163890072182395273593480213334103981392788866894475041120232389646122987772092312454230701192029150306734722258283273294796334221461890733248984470016010665534472250439278463967488873031438525666487964213404842386450225470785740592142997456890835509595188334282858523321821961886262983732287821638946299149215697892233507020637492157557510131957807555290754132398468883383160471009200337180853977003649724896935730508113582661524966567747415811157258931108205306067801455697764143928871077257289398738773760600589133151115020783818521193796533842702485862765470912151864030061071835591620659270561870703194724389685889004651878776486346807090016315515326060035643513594175741003272025807700772851994799050509071639987826491328217611463616747027592438249669639388001174789177614652001645620757879598808875568886710488394579496423706949220097470087755727354715038519532538648501174622629884754273503977750591717273513828144794924842961080955680134268377220116215399705341962000980132693626571738502744262684739588475806695321594668018313815643756748071196309098311493454539873433031198048420560424211767905982956664296707664666679120993292403569429792149959431550668143189054808666594792959577201295882760286287292472094043473500335505373876935126322663471765057795836334380293548523301024545610109528998074606317920083382996363163912133577037469171641617954343441323126938960480089198135758895023721066173690144297916574173753978989010722419342378512902793505203551428579879285544799508747808709395352021650026106918205349996483609055085984460961636997180742875263973321523319773362310115128426003121443375659544785059052741117819241520199730916043535112217636975624726872688627155433806222344031623044028507138888965574224528455264326050299883104129168964763185488387762822845125401422290684117025429446568177241366647651544988688595559609672469658786865013445000427477306131294133084497566025568765362873865303727693591388710252854204242460197853690001372865732312193620764346054169489309428565541159429086909397796229082375572527382445110227672308717968450248496939645611188256385242909529312877797265053055156732684919150558188983159065527238527136752770343280713455612208071840196659727133525170787663618547993081088310339783498424318202612984155111225812232686436097287359271847602613184223340129808150331966010154179711683760131248347356287913799874461082629787856925769172707131560510261603065016964762593596169062750536953776484250977059059949582159362185150461987656311543505367402286181868758959548558545789496719494492172332607775572983051421684113922092592332200694316631692295057951655806038808336911529579725484135591263503122749338662019596531465148185496802984625928598067022577259786876096578042042307835332965623382904302928378649189826771463887625378852090314212177783043401694187870194981529899387538176860526191721092250057796044875687057143586494915935997395327929857265296315899649254927451249816326855463665978463371022666021671366885483201167269827003654473227326233891971925158654343177764936790246870961111363067485304516806063872559460195640471468432052987742359106131427955456478109415230472473510148527605485946413338259960032235356594224828375650399449452561522238828410568377056017806801647876482523209753119347681950827329139685011262601332540911209830465857223458291360799208005361396968463543426790429290898784951556668255249658560268491039457459934275349984659906411460977185649344343174723648860227056208054929865105843885979937866174021069393915256879529234967273557125356818939054023396454634065911936236996387748193984278223189580720318999776957204555598837893271654074771972521948013337940512372993582821225341850587777469568957999531999340889248938562264242114263371780880048854902751980603909013074866634610012124832480893138885951007066281568998593819604392033045123925451005432844063175730396645686175874224152039435552125177331490511030432541339042127708874903842226296301176388274462052129349011844240067191961076917383145027053469366753464262804266453235822267488363242536282018602529075568910502624189957715155899284646039575221011428659707687984421531403314728915446935458299308832812467429664526366218127624330778310589396681468002900405466996374660079517884387345402262031921377071820377137315338305869221748282398821393042003721723134382604050345446866079997837480389833144909303142729577970601144306082360749124304274085442395716589986764364185804835936704454515500174254623824598874425355134933795170934646265798647367897275937350967412365630859067353458458224730947606016083291906886771519503774353363793371472271207335951399228714663677489264694165224839606654643537255227466623568044959430013121655537751999765503475116432594090920285434509673032754573057281076709673598542110999530666907419055579073493059322881436295161668289938376937572777049401349998496123832244062699178329337736768759164482802837929151277743393881698079804929264049278399229540412091870768101980813909427156042187652498527180131474171124651375878366608509573741307825284261970186645067225831797941448263480173405755598644428577032091168026921865551620500174478437286809465011413512061198798480237129365642609803936732698929663368832025187035158644510025659409941310472219048103820304290225613602728156928093929328539890695541899849699341460640398952998193986421614320922853830110221147795703385340639224736839368289570099680946819148801787056541182216594787416617773829891055361563230481347968847495766814646044338223315336486474323801986919253921217163175619729381356004507450114239189705912773283207437305012051689106447632998024901344145459449583160539671233788062133093141834244732496603893996721444373650210906337095099221651967927583545270552419013294116917760464188163120862350961048618672922964479006885857769370136756905864024085998653969214654626517994685267369207774909708063728239132871679346070413965962355547246822164784317919748200030817144106472110440873661803721193540583107633043306528609823264733014311678201138142784401188186704379262187008743360882783479720781230290737892392219109195804252813527806213541688784608446913751107455298685636695296777868385036628495718598307129705270292623888764933146144174910604293144102193214174735363644094300570540572187589190561360027075986137711343237184400531052131881662220246345838248171615386091426877579682669895744123981600743185144254420378064635155346749207200773691198992717572466790901067116472057247602222052106599463232198605077074331754937753650893731183815605931122875180062646916473538502616820279232105568758678153905116239916368323018506008666452323666396346350623793812844156199468954449595944485160800500239997153017062826915827583880667317353587225905226186727579625803783619036667867248503108906348470333951993908713369050225793440747051936054138657169927663003790939827218165526943696319465224290535040028877014829677056428599993392203475688196367439988940219200635299322818425788153023702000752813039303907594448132508396431589106951436232177451489338139758351512484845481371629020965375955699364969792752353568083761053851787430151423224382107763801801655997601917597675706780189553075332035078664199610751939278088496714694697158785653190005265778139733931715621641898196208751020206217521019922784200712535843093224409508890261883041119059387958330027226088716703866554655836045915169593267128237239918865796762235102598785479201062247841015093393804512073999802601938767328909489205058433214607720196532743547199084832589107456696896232780981987544985901208261177027036043106639381063106044033769016131295085705913134707478401331870834054888565305576800911332094252245609957696350964193192546741884116228609137525582302352346790894274523529133387780278221687515670948426707500384238711514571012654181955853279191687229457855146528091902360572755292462736493730569834951082124129014541354310413368522353830323173862871318904341573336781922056532278675728036521031682568335298854140928770270705255959076945190091244420772785674338066865618176762582783551842725959308111478765191523960602618199618521989385516146395585293551408539212656878643864280003971365361829642668014870082493151052289033693146150809506495074685379122424494386434528923723233003135305743501845361213997310757636760687224463496113487197613123486390398328294477347646478140871227944066983268548059441075739168016471899293909885769548352238367670958089048933045499201842980913159660959857787484355859901797135829600996599046539768559477780895574528155730486008326344263595424683641982194304406149891564000853126667907762720698346710159103836635546124766671155092844947352552207624572097109241856167488044976651506754805311032887969521223956311424139288012677524633006216088141863295189586115548863263392721535361044154450235919487730954858066483213776698056771022784056280071291556821846091616136046082022205756062650466520239833933432382758404431794694343401531648334996283679436581562517993084343538968254286965089155695250303558485457848553679243191550243504166177769295234611898667448429440155285850533846601837204430777007587967948681045962522086991647617823004423758526614771598509757260141755842394394190109346590166903052348053698002557624985956104547131835358737132478876129772115270331638210029605234314339051216173801705617967886265447332005326871207055383798663862519648984863879749035035612851943900010721503316165260211982573018099545296466535530551328694533030708140561774024290233900304430296193614639965579199058786147274007139586201038322481129166692481235100843891155402397996065762972633064999648507340632175912529257220030185825397485118601744023107697233299379672179585753981226386720696152336815242596878763790463487355042582392950805952536359639710572550770589996128331652012462992204441092116334419542922068092237671530963939754092863677829396432387512705481797599763336863635141099598052270589553301001974560622237495710778798072244803027814756604510678444575742818617952240048908976329850244988757182221563791082402032784010976185891770575742807110659265263802295480327117462880471464268218352238343975547047704821165186979081092033212800738313868339805501965595810232109124420386254152286800712867794031842232167110750416963333088929712613129999046046888435541175077664936217017904870803160064965804302594232767449461394480636011601160526274265294043797365202149340774756508990921003211906828426660182540289309679618449158038967420781101440206747277872232820973265181439463378772480522237119534387331542267072013097921731400298780482962309645881839358130100558498321415742239366077080733384115658463568960046704816823877502175041046062145197931933235092319410980698825057174487052124585494701616103935755084971811733306900943138847372589006434798451927918442974257611290526831448035689144885243086132748764548417288430597308023493355265172666726351971123503162435551072190920265312550221989768408880729133655553216392287802572906517507357552805078139453223201825194493689226609783615917675864136943699123863845492955706719165802033527992908294077452173034595812650264747916392672535705320590461805265300525027854379090729310370014304750465172826666148861965352283443005926859929857385146445939823681968459967655678176935721601583420541059589951987239430656693461073223041430773651593216907181675351955715685764035806513000902732640283447469013356918066157530162045779922249143164659402412396152669757237079937257286549420784775414790025637070952433181728797788484920621590502502329549684468002073181987330017984304056245233663553684287771706570360961353990288987542577137051606971315859273378894894450306437063170233930083202101637177530997174349594327447675100674751334170989313835029331368097761934946921529278624349965940772971441021019505026075511489683227547314834781115090687281900399764647802839357653645519010825703153958960416994957103989569056935751163604164312485363952001550842486351721872955235683060292277795283058777730502073837634690230553473821960706262660238864252975790429640013095988116717448644601088677849583379677681597399552261244633925155365430141707426297182127317017562454845513945478232373525531789299970335116783475420272757498527924781574695731238402396989798903429233570883044646752418029680020739163438879495803020880764731302329834193646356297833379263625678839183828606298057939463811528404235373738374696786082108489830818168449265253598510236644456446435726031068077377122080941391286449206582173099703857600428136649428808459764305991511872940710338399767009783406707476730606549134561625679302921917766526928263061646785988747712208369069826897582813593882764714605489101593984855934165434157887459924558265177125211996541933228062045950744810655290515791587366197258058241007033252005976825628992355026531327562086789439658558059944982996375879034208080112857093821296865057819387351189189307307284837603070406636505083225277609242726203332320961756139882114003692160937557700461402831097446192024387459103720105917696508547694969843642838492903061540160287745647412103721724850192720674394611446387192233585331789013675592479105130409364851599903401166232769265448555234816119087479537516559676544536646578488811810193727792997343676349515092834089404732227646123407530759572378030661388793342645988213597710026488496961806565562980230144948791796584989089334333216180561177976624155352839435205262288042072274706338814508084328616672618040609367987575940795998118340199741239355870578533897309659240806729029113002753908273034783354724167385655161373407273137391018827330277113947683378798585406127401548251906800125473533641511978018788873651319817342498401444174707974410071635798701296109955236728401303108074619219977928525861843958233169596804700815742651849659447493087069108430108933518009629167375304947927140671761631939724152155732276734049529694211840308451319625555589391237095647330061728402863541442865925090851824985322881729016380619717568037419036579086678744875356900215030111133218756979661902978858677484504117738119754991448351161167011498252524394189928136066234827557973478324501030587436034838380439963272321904581171356351592487449231825436325388615454413736342269025775249536648921817337053927552334236401285181933359183643184338440468981841516010171734529553858535737264726731038175495233332400784063639472415410579141842838557568200211644833266314339096752267824443282640390408662403734435560504233172065281599643681289662849388093405333079856022205666879379010973505826209548054808668061278796442834201961964552094701068346352149165430477428430421619600591185830190683347476609308713277609219701520594614455404056619127707410835184584799746299291225705496716957035223434062434649976671755278460942460266107168202933346602321132834684269749360150560859417836007633073974159678743737782365612838091895120341212542455198106244912057881238790270951829673510134165121124909736808930629323111249603211542297334681342334419551926492298178683563302236440228438374782695483096488979466405374903106115168274767610698540893201828790523655985838043403793505476243555476706493984413430604536054787800797884077180237841747917755775800678382307643635036414206719136198330495957785932447603993971181429439561470121360669729392351827130762272180200169944778031643164700217365228746187261116776514976711346188625149919768688273895918777165786238626398544097891289725530384701912692100825818143579302186606893300187746051003040206585553312068391774404540359417189939181181822989419431374315175573999672553255641575498864894216028332889685443816459620080034390565562765142877119069941241544824038599512628222260765822747952914077411254639982609437737180770877987916264129592596214827594134157646849447669928261585600173829316146455178129270717417454226495457278055197095943517604125511846241729597847539729688336699023621436690575705669739624327561980595399271653317345730198008392894308984135669699236020398269841094624961435639635252533242743932841642684171628937627173953768595704172049701027834896700967385363521420038546896348261015507706384324218009562292317509948929406789917529443639848269615306809427966214634134550287820373655750180453686447074364403596463887253198023979896295013256036802816284950927511641149172818990661655482063974485112689339035215718859016329097118419040077166473105798193532940223812658653531114446544429314235347681673331768024456190408168598626787055439562899341673184211619824943505297890399772916923029808101564381108981912270497119385602029519971411223637888771347087100824976679523679649164378356522334392053255813050781894936098780414065945132146028019714340789557436058112326460929219728099251153422259436462940624682787951722923913054885323484226353656915065664083672519033714798918688086041818149490734731460686534984606631207607115444957402090621026868804056070683531972000496825856072878752149799298962346663160982316538668560910938404267836623696670903982784225941312871533710885030807107207380548451557499070023868856290538621637015479822159308613959797132777610391637937759599993352957810959840380271159708466303993245173188624570212501971017624184758292233783780977576674349072156966521546911544713982479995559300503750172904222483894832910600003999943822386399186365977720111203701524630762197643966720105268678764360813203275128529241197402350633183213372197149040559300174160444760875381357725475838833226841637093156279864674811154960760744637897612201718630630881554846765132378809642990401865435310473874873326176666230409860690070702323274158009646417105883677596942712118911341771529257452688678332374775286156853781749757083970391040704876416749428398185062608084507511331707370567212413147566734416323370798740909691642356959313756035245173053026704780354605090831597058330400953607444382123435250994059536348907860802628869608964380784149688086105783837738139418614929047278158055391712747964055430896758989413254301367453031818080064603158684930583200739860137110485492950806468824384814081947383707146402881188146466765922343139984664026508579821733590796587776660805101893611683237725863374677926636164552645968527771267724794387122922771787302836332402926973601720469073674005280406307756086757780368242998182632080807938795186955816504526116841541820432448750836306010853623822421102223600668279159940827917746251121580340225871378762482950178021536425428148808068407980314339902961990827660125832024062297142431903225953759925453534136486790822584132018790472588755261094614228577383258716251639162156176582334059205808692745776955976921621479833322192001109212330516101452814360729352993090935235826723576585484948854202858919684155891154030534730170311561724598552996223748106846625965665050476523671248797209803249895787895950792741888666419329991778808954690655142902726905781909335999016574927039600323758947385526925084829442610796922675103448161097821256373707968667958693367826042929279154016752472120802035732238561868495734261290246233039566315156663308687400721729647460273195718137193256097491333496677032511088076073808801590877028633519402974650086322861373520001835483519826436669937209919067719344455290841489649060975934431487613808456757004473682411870379144408244067696201952820587936347566363397114018505714095022258779594138024205391849761988050015621622538191600150240544098818149265005887730487154328665897785257617812469936025213714124531278295816247127635222744019068991596533340972296086685668467281386721417865465523732802123977225205105839923908093049314737036843324525402898431462096179593304776252347127104718436118523066514782021879069722793675503146976769907367511579909051614910952963727977464567365322668404119129950445220181540639639458014859437386634155617813913615209866223024213801942084265231474663617540563823740251488493317351742604927708502174729976609380185346083382377196899895693323913445978958854540176333688933004016266845926093214554487132202138658339629815896717297924587389770404267216220933762776133272847198777513246142361538815336302781379021508052757833112488877832497587205367991640780272871259965103267754605495004778539554851026465360770784349084282197099329888083823703867630752138716526719133355042236111840465238852102467766631368138548935187898099001116649793548429024939361017952455972862024607209742517183027049292510230300879971405145363633415639413706185541059021814872348378360077408341536736390267742978721549896799980001709307345795082303595869245649406731166328197732650606266392506706758776439623993393260765502605593179724035615560036607841785626413504903046621753241732518081205040464598138984288603014958529926121248660804832987710082881321722942813727363626524769904062836227583910349222565432661990303518619587178598448184265735607290289169532183643587465870818489136203874862787069360126016277498382407692363673434640307114672446910003156147423052301284221101891695260796370372044246551503486055963469716530043141436582345111009724890136002634753336040155224387882239428895219046874291313673738859511809632248466998397165270464224780948483456130889864550490993231596709292800997066241067712439925103248631455196930726996052758551331530138511175885815395762512210513451958716356731709683291528092300840046343466160210642596640460488012549502001648204193591060820445053046551357196280301623210318292735698794948124984719864402123034147211146197165872896148065036847743047101477222396940851186317708096983886098564091902545064162860336137496922454170824325408093248990495953024895946670794456179574959053513875913339053147976376290637753457860834036418497077768471305098128936550640717195601227659328404066485759550962817718112316773475841338745552285569157123946343000830519415640167122383397089515913073781783295353680911044792907326086960030135714704536804400970790119259710814757278271384434546200771038117893386516523782871589322090927024531864980201169758325013132004344474552204771878347682113057423916624958152033871890945832517970650815247994044080072853422977724463557494168819345196065210898444548747808066345756037364460832171274909893559854384219940043917223402993216032673262312747354183750994814168946580658518173802734406045386509872691664149648741538225092556428843298288135756203135060101890881582756876831443053465941888839598136916303037576957167758513711332702304624405471937776024667481113656513809084771732129290933094661064431831929554716475560712409122621104427535227138175141524604761674369373901861408541307669836851856821821813128972436905253380397660010252620604420390856527588620047198384089064463736398346989623584835456964399670609935585253852621797060397231869595355057628546490637399940659067437196341601176156495599407454430633489371511490368273011647345565329573747582408714091308924469445053044555319053979436927154384509589079044108517237348911129927955511840364481814419863866180927101354834613476898819227167864543412057600780436178773794788108491914456224276909365168202775192276661096976823240285254650534797147052014118903002157470727335511093371475346475771726542946604192220139694182335215151298913022595025592918518283404571249254399001569183365367163573046432829065752603874612191976299671582230319599477165080060981036366597677901066977683562532375136222880890192188007361773921028695379451749136196055409149684482954619747978007080519749332353645146657693473266476797587425370989535341323727868064217561446975791137927475946111095317889648586019844116063326777317210375620099924831091136897392983778995599446631164063200281631541472388847333054184011249002892032475166311557153156391735105287564273665411330735143380106274540481978202461580252541930381640723697831275541571902625965301087621271371235361176944483715418625068424638832659291712807063729918642611589497354916131131018353672840663200173632660590319359517763307195852675243453713685465035983485710945838181407106201184565020458156013853129033553304445545839261723634950364120173371679416157021899614397040520895747809762683818205678430640762472843417115054280861740156462226667060630861093473445500546853461547264182269622226658636385448573073393691269859181486610872903237061482572342162688445646959974316950591067559838091162172153795000811714679171035581919861370330310137210942444651452092876231461043316911859781913404939272123019700272780126280478975275914224416119211394409768925918631923168628231286376707500744124065360602445253803106904491593784008100122087792858464038340140746394271151813748998559010382564411763304545007676267179127568088409546059207705761094885849478466022850316726288730937439146793677318085763255630557432201073124214557911255312128127637730771173723524017391887628905698843792194691402745669898706579461283365084811149835790600675752997982820867919104629569219047346199652956804576784316304695062190674802948633718486534586248278193477492114302426075126587401694356100804000591989749394072532585928155897503139263415722443484998804050972801589015899325208827185430798662176713066719473410577680304751965560921772987362569602839217641338831018681700112363644132124437353090548734406036470312914351879100428987704678140648555796429904357060254450210375880634909192782752404493573786029138046434909379818095902208071337267784298913937241301703748447744152407956861340386075429924923756671645228993417895240122454177855408144469611781835580818286971725111348156768021823856651186631835653324901371814757524941706349373359183261047021991911123840714918612731167159482212875217949765080019027813800025050527400563578132213532052856430599995044613117973662714960673379312979080505798196636538293346055028829789014167321531748964077467713087795910428236535701458186979554643310886103064114457049947656881422116830981214877510145065917160995438345005651938926924325206298774199990710426942525452297255922436994582283278449599624557639961803291756883423237023591256230348392045773641021014570196959442750148422304605787861900230223059592134074303610981039904332202451535918572605745537738413165781897433139078367933157085582867446002047077979238537394489530280655918547581134739086078732850710372134452433393924530018065663757012863046016415487670051615587573741308021928478617906267066806819919747904449669826480200548063104706519787652195425654514457698226931286476871121194725884931014750314217562292000965496038364583235153989090823988622754859112933877777284321583667792671257088589614969791088445769911370077536531627047475479471217637783776094350719845863661642233924398821054619750645025383855186541409782460625901168245608809562582728274759810069821454174323936674207813219390173772289086943437658344779440307010925641530563741995126037595073313611645910335100200052902728816516838609533872193211375217382247826026464789518372732010708912616051219085596407229182097284594497109951162730149295093389584643919206404208062270615884378414548456130597571069001838337994143989077201355457793229963027120912937851140575802415058645617992373774399315860833461094295674501250446153786178668850029531091707870703978611619327512237621336290602098009375194465158174053354877437763335217631183762717906477379060648348275489859003584720202534995639630277214711057799626637193387205203558903031511163112419497426252968965637975737385653025303659471385542924733881935067552025803195585598688106655938705604502358510764734665524190013595175475318754706540233058389772992688549475907696213844647648659916098012242114958036752667127947854967329447275981171457648200817339058737072637539374823313799949029026465604796555336353356261291064294646393327376751382530519325629707425161359859768804956004292880828970777143597626885267823172601790130325082406684406987948278598023759915479552432239094562975684848108379183159316448573315795451104754076268983695536778781402522122499444931244179830325891305392390126640668675498860140751429023763203429136678124508355767873303919985558868354015190655843706893834136669589380289933007408227547460202931508382734620870486840989190439045555509266779114812520003060310772335678108012001822811460890684103134979755332112015719540496090796795759757161068852804622298151807679943664868827863306935993536312334606647744563454529777203289388648829702027197806408171361093127765814368718588766485817123586496205580975449194902625747722897835645352692878601494004728951646844457711316629567083557543478691208051748118251012462043534184215488036995039692011757706551157393184591676932776078046358398721855278005519712244601981044909326554889622879594470722359888164649572862286957911469875416540504800325487960741583693136373731263540533306568503452310359319390025939009136039394056697447838533905337700402049103198365292432024124513472524140633541920392059074563592349490630300428251399290695217950519945393536973284036330623293624308727405464687561159481427269218023848574663611691912648049839246539937185703911909119475889832521529162713541695482300991120376604898199308275333142413939261333156493352829329600258118939189734065860147633584430786144876719831606739719964734327463376647454828605580953740517967365229278715273535949702553591189107059091052243486673570542040060293908473457803060362384883221599810671514290481030758018624810014656898790968185960908024597863466976804906414881013443902031240846653157872053642414858374243287689005183651596101439033137384970180799778303416904119930526082031438273943020540141796493754448192525735122181291509100915545947786201720127592336743151807530158385168922704676391412789218667964404719353311444481567106928459220455366438960755684927786999952245701937027963408687737714450435259387391677341876858230111280849715803361538827375659767263046830565321509564085380442731588800963259003871938060671329874046408469908283023407912104060132462389312305570188579263269753839381512591640769945185871478698838554440035313357559232924626874321744679651427732908138046484847526743472927420624016852098132752058997362198448898851004953761678712092987449309868940513275004238248427594662554028065945288321878821533772765588034266454481776837797793247426055136091305771635670373387235574308916892673152481878699975994877304294819304197434462276462001576659290621076342135759283189524067925397518588827234472349129269969505288626925602264314299129695123005727672855645127234206481529925629679560214720086645742969469047036680804994924413355358601578974230121057346243842878561149963284453040143570971141327300943559255130910334376180389458795719543991333673881422703276487160006011182957241781605580229103644378865572393564078096925920822916322498347716119556829888955571512878221953302693532985388167755450077616868636504162249787455429228886263251389523827764124264302260547414983947580241919219126403701624101394432538830398434294826562670552235515531355411919745147639764329232481765730639942333998163251414040405033401980312557033885624947067941831029094535955870356196385629693853573280418911866262875834116161059286494244592144667024250611376967150876878232994324618869312920244512215456321767270997466537209429936881790437054218886755963788349238603397766533278016338744004479272764133124388500283698962314340661255574994134673528779399882073571116479838926012477197060900541142030949405619608032918640472754484145103240523133068664823545487983667152984894628418818800268390389835544628956788044841566309802018642943185334499725200860594618717228303857720912735591367606320573119548909181060569906223140496690543602054112490688543100874502271563647889109370231220895599485036752560285803558917846334076039448560291338977003212111537013625765859512327542568175812714067144214392233163399302601386940494601325259413081334170060097867705857447247871188744147278035929429849079780914349882012867738512383599475699567150868422548096492850908682393641352935247221643935239822852507496243419592262533609227338603712275236189732032485276067452829462397498833161664284262702754006757890241929915621782716996496701762656846344181301760922369562389632479116207912915397758996833458278647087355210144132670743952786886173796574681588266213829255546886378986502725992625782990843747807787800175607038102811319647868074279885751870898523326389164289441022166257938011394196955496827072118499167292598766013860035110790849002547404105426080197385102406843562185442817043115754248716535251239505962138935558572702402965250186587247889951134442740270028742716053346349476685540020782924172991127687679929178414638996189294772008886148609984614331439492508098401607938008783557064231349888009325827129117552478171908625545456085955864765280370501113543149968274904286688462155312569687741485624913813073838042178931789544934896211570688531007020032359439518711073789471346028428607224860937812092498445420843954471765431362997218594162931902779081715140331761044700109839045606357755975586639109491215977723914197915512029900845805332605930841977193865469227139683897193585028185596879911211643904194427976233516973196843582605070218031314632261986627846264451703321777263409740910701303669363693383838300528088487005315670397038738216199774814807902261079363466509476002504195597355754001132983540999324855446217540943240630075209877698192053138029511185101385285160012236271207354359200601311260878480533776780983290599068569358506038330319376861207323114291409999493254315811221511731587735316172289886933658954468508098380190198620532468074499533327477739087859608606547110740470700326494900001617224368981265350540237665745263983186030188648766937164560293113590660078546333068292510199440615824091647282533649705687888838886672443465144243569634705245963319650997116442225176996004004921746103412114681323630210793819036329430282193361167546287705254027165467255959704850220994137219635294769737438078053146706661798800766361514400668372855054152581034302845712946836236168811041094916508869259350608364995491569744315599275463934826916032318803448206750053364445756915244129183415007463744296464005399970804874929385588320298150595089128217230753563547700990753555687761586841802604261215974777287304817183939681173313971860337160304962167756145677674508047600250791795682440666564048810592222943468607377698660497510487659565860656209739918819473150436269729955903723765241963584395904140157549244471966189005516909737813926230732541272596244217261695350371898180267211466078966055285691605656605803573884088399702091037496415724070980297087242342609271529246928161120539600545912329122912541445033792716192648093407617544902283596976004138747545585209140226920699940126504021513535952242127266820067368780260230201456564179279237206703222159594767496318224944784664609271921000679804527132234134580545146830601318068493185754799537784853544247078756049586378819871372472944736218890859584677323535063769905718786500651952846192395578972878777284617035415069722986945729161045178367325575758368480384222141653790713254741669265798111941533637915624865081307917555744315206240462789143926879225170989863917753216319246174076443465625170543206336180847947320627619503124517140565837248580248903000866044436557087076457150949230451958540158468746772696943661479035979466657575546747589680871622799607135758225503352598615980176342933249482098411064763674635331073998871621868133754814089547100755815940537238869360018502985627218941903421287905810948126898201969136607767535829772434895970806753745971041652913328524116945044729312905555330319365581098101164015151782988464560304929530117561607950268728694767912700658028426576025268576974887159491302896828587345889037704959940668936414511023856344230058382773670209262610460019993146847976918543511184508598202703888739151808784801441735972121839226743023240776987442971031928971548046623529379813818507752000609674648983038285541024189745187512886353966052042142625446195685812087118361123419686055864655897701949030619744350703728045678394065409392500517224023758637395382640530579144825697440419363868314547462757632240261438139104684982859106559487712016555423150148636244079611362475157959416127937353041481037955320912329317604964882011608926012566521355754434099206041618837145391174434381514215854780779281498147854408572693220139806672640044780874207255770214346497402679904104208805276582213729008988009685043287422553544234177729097158167748020612368297820934988317426424815487889169124842440131621089757828904768145977686594528407246907178385193121628687288938020882025968346763276723888084742405813536551808103751913286203512892167099109447433349809154944831196828980764950532625137617730352425899121096511574242232058667831196069663066380665970670925530192797094879990491792035668831446937379025952140815261841722636942155959171899965325583626429162566283593430778515065480440835660213681703742893130301315043916373660326181024615396680984818670319587541528624159469329493526096421457161831150765590240761598191165096145198803630001899217455337493222661473863074395023826982210705809511258955576684637434181418399400668065708341839466514755501980644421713359151836553098011414463898796904513297724566941436675954798298152769415222567168120301021287935481588000956686853269955188668976024185283867159429687381332460638312162543663204659677323261377331970808199896741867510666160489837386909963680183703989902870966411924280818794043596690750839455666412882982384484439896476523178352134493698721731200993687092891686207259488838229955025566368279932972654499713421722298327575507178696027828985178768954318740894685476072403353790584381481558726441058020771946524117881434211434306251300504223894409423302462700150550264604999527973289594372086349914522270961614028662877660299934920430572282083908054334294657447015375098882915429275206215151617029669188361591672699876972090785240090469851693879467396230309296900432972693790608399374928104045414063827450891828086042469565092106178458947005416126435458093964803866099145227023595619403697769987694874764352275445742346352856324313248029075727220712717198879162271572943636911170014013053227161450122147240746248495669599863016976530793915125394352461796684362274187904900856244839406453900479298599965562131087708560468397691624287240468601778541063239889727207534203191054018188451719037389209760258983556655752500414597012479995879187619674297093416722250351624962793788795822341980930392125760253191351517822234674529918145802417741840924337962864370630228638651003019972631200014859474586148519496893834630296264716859381327571455873013371486773085195748366599830374521605769257192383326481729796073962630880337575678742023361225439285522327602018691168079970155160612324725544762154396982198551170546593686090146179982430942756068028363177829460515058346302205684804230199920075729714739801653693573899203097298337801663605750058544128871312388343362122723430013159251035944659221445167645356297706409753554998917308742668961161412005398420900871447435182284745916321974667128947031714551909924888317475493286211519572377248493994326498931158996320286879201228764198307822185352190473930241485548747538121136995266380772328607934635743472744247425984560446294674267520577348817605466234072224655833627228080682768851721773664707197843636552483674067432600675171967523792189428953839479905403843092621124994128730133586036375118948276106991783422086709173293182121495495145182125261128612027750791150119614041359100047080103098398104575739239668936610764731632199148794118882528212898266092804374151594193597012698006395880019513963394792504009103084600286570354374626543605690561576108348478585026267026731953789563118077153100517024361513822555392207242457322941374511673236178797573111744400336564044998269991254729361088571504268404253952860599915428412465582786691765062097227303822102843245754369386373085957453383275527299911442264730498303937461120557566245941162292017170737777769579159587390167981060619067708186463578889382536931075137463540017667591707008844928677866246141606203958894082235168340706937037155202656504114417072014950816276811703437614449037252738350872992738862815246414772403078263291446290284174222517166895358050898183564394080438945324477963907319248234594426298466713563416806816518876664235947546595172160388475684143935370415237723971511071709932481923782946075771846716876138018358376121605043808807977684263007339944283877976832739390975417573059003996022374214097256910224359837350208037965956259636974253739809405348544534225940145759002573023686404941001960610764026510401110952329560677513129432202135246752131214656223246000433641112359913421508428753025257883705944681360291660465986962613142460738858993089195716130565284352473159715288022041752703402888692671050319560909409881278615178763192688900550516903357807698405585654486293219087720933810593927724190258991662889867236589505015400845834394531264605148142413913404643489396514850601026193599831008029567013313159415761262340997638088184748343987152562266338574839846216096507400469953726865418908067765933709721846493423975909443453336465274782336662421608315796965708129871402049430356617000598439342410616254393197350340873913803825953333625198068816182950669950982035596553417651959426169266173106562975616109738883404661800174581194626887347478810990424201086182123958238496478949711592081420238583123675462350432023160849504263766342672265341828257702857392122282677977525659988762142936679836425917250903748356745488091901732667494869793490706179044727487356563930722539624041418794942211408878047336192383874326943592339501437257968415824016291220618752933223596692648016653122849825349867816129759205986324791385116116698767072781169495855523043225261360185479041427065581097600460372790255339644122632877888226114242971652366938982109969272480440294087701970094843930943725000883462423733200649890391068221203471703453906385979283787471774367269438621973680921793323014612304537004303488563423536779925465689179433612213605286592897879996203933144283000599082444671261784617974812016932664304401131166451044242121473968360854071732225104147812051449410050644786893853722075109888340702611623646235103283235303681184011365203029657004780091719953499530909224996259311429976606456217967988954791487174337641830880152005303458189687613020270136539140713366602543102539441588653033040037665214824446832241856967490517823452283529828514023996912447866524901615280718132259362956304600991739069395313359901275946723475126962892145687125951667712592503256180992879986567220023435246690098180494590857884692268897225949718306269461765949751944417049592424800951886206145463818224151302880036792206931559133385087352120528368383187467371220849479854877787887005403773018093780091459249113647276510265109577936014338931301726352663816808672379087274161595448568881340535158081326741997882408767915985243585631118899308489344522823108892688335341038179305177346842339258120200076876216926676155871515753377995092550653414749430218252477059127270284753487596803817812574251361002490740152222037894628831933308328636946934741175644540654036992045831140877345282418405890499839672216400646386938567432517962559862566663518312804468889722201549287614081833929157712814848002265571121037698147728278808962748683555110029568765122340356320572092926135082883221189668284848089455931495856141111461906028526164062111946186487624112878805625651930986313221183870658627434026411797253093187841400394024748018461809418048152586848167232575076597255561426067089124202567367113153929426970633033655271450150939459750674998737383401346547323756670913187845412363629527179532291571293439008284683467381305196870624517289788849948611811939963308289679433905991060200741624230644778395306213975838392173171583183125108511642988886047630504875268776393251173209201166275124499748491899976553458930546702960568239884162137974504461015937602607207146872390168746533659908048009964573143032920793783782064741963938926691217219056887850473118735620478128158914250122693965062506687444289614024435463503626305348449251542133592954675331883820603163961477863041561130514528054520455219410800358162088377372024799547936086528330830439474804096686613132372701001819421285646695425697998166982948303000969008505387879963337853715400686944457535868664636046725331360192266451007879520704041422638506321134444505923826231905485951894338633369443833552568769222085044321377200409493027669748321776655501073561429851883762719015594826178415451825077213327551657576917606197585835222958630987795332834717017115988752064112826788945363038222322069507696702769079371154167238656635017419729682617997931425782569631183486812845285385355600016000357945711912051356672958766716410569115249233246820859345641807017249651537574474949242735789437591986755910990529839369960405211334558495187624275819437430666265882494914273056166912454377064277972602391609654775642359907908815747555791785231209486037385605904413999282086778374647551203559890235888518754728966052238367546881798218950559787254342384539450738618742213639411344757534740525679987667764012386782782843742801897721449698320234282732479261909872595811946788250890924485992835768422065676087270042450635262531653181197973910346357289324225146372595643993449157972091132478597008176237426868312481594863753687839653510444360389086594953648261746517273303194609639746553744774730578239550901679838379149262178364869699221310963149313937699657835058042663565402033300348756617145477853008977834721446442964923482286004002660016090242392646218212629216880600996623603884724438695612186372856535280293295633748430358355760457802254542542707054579598944702289977279457893631385655891626091058922523302505080024114693305031483345636999950631787921209697799245502244895149854573979669307799172383643898062316120032609552054974045189383264571206738421200701524883364123396715669360090858572868328067051570122349193972433348322747878469331146053031856723300710819439703858694353134884414054664514148653885916545921685639010151195908181872077595682560802426372149152081064333489016725724796892229281703767483703697212261849393435802107024472130725329545100631275320354123336714333481990369858091629498156757692254811194514911594782914552083838390385687726226463426065888554921275531872927491421149960883801669380660241816023613593581023656426595477002151457989468141843907420246938964805281266687884690334815949258847031163779880209512197683597660716746309483723070397284431696351117332447710440676401397206193817738263005751794386970052951107525201041973632396753734222100538679018579420164277467104737854229729760643583320657072583109826815981895320367476539386925580268661787813749606941299319538996237411593072670388601342399521008510522019739889030895711163094357256642440042075290409609859043444737334568947984828326623825048286313321312028630582482528479504354537640397954528349679057514154392066563482124182614160553152835158438013452624498192399577628369367476391253946943806685177097071148799244379074930267871262388137602332814855205201798293130147559798514478683843936063617724862541409091705914647972574601512254982608855715091868757255365145202982804949582857712942551436977039231958268419815291917458620423839345256992304219601106449254217732381723117327226370571060358182813530464581102428722254603699147917076834377758906034945962657158715976120706815234522493536029290025402996506438359265285296254582923344746090660427012469599722185097111381450195424867412087687979342167336874692027979852133638252306956168986625644495381364841158801311307108331990161239030652540900248012413609986019151108964741137208908250524858902827939743368913419311319511685140728979971578093261414442085010755141052430487325016656842924005332995076377240963684301223374622006671702807691828544960083595176173946532234123915891452409996094886314082262917329380619298975155735679058933652565416086554414232595935896562193980469434528354461923190157488041697705101865425921008555774962466401895062300125748976118695946999814374680503805400902412903230007206866204754703720289869313061238750723300950887354692617546501388555421082897825510403337936941926151017698601857356363808441135728513818978806669550248365565675033427720811623534071652220549828798602499808054209269917722233011267712052907718314063542024144773221133569208055142351827207138331271604943326388550061429798159542507788830562578376849642024815723794119943021727992482303817423302793145705688894534274537077605166785721670327019810425982152747999274517500413438966117534349512646842795112928382619176939688111548439509126070516926108823853450819192086184642602023734504472954098125670929216132648169980475436529649215096611671525797853290209252612562816188055756302580505435446469382143427443671811167085081362964218975194264776110944699857477715051641919629617207595790663264591807747049140658059645699416374459720529679700451002874790053275779222608542337401181004240087552789921692216420014823087880116316109353202927952301793744575966249885265282906317234287357950704381345995164492046358744052894141124898757803696952602179692869131569817406711752204043564351048066370260008558487846636009020868442903099949813850397204162279497258137585912979253052586606364005701755786757629406716815960956533779011633206920052894077857522536220887081281800172045576963896160904586644905091626850896087088718889308031231215673679096896119752536876183538790143088917442949944390451968194363192199238682510763493578036085372511912253503460099284385167481871618942879567253130936146772554747124145775162530314006993735421115605698121074738254309265604123881335309288589444147898755125213891900767810614450376175572027022591246222857772974657629990417087572012154393566081033032871416080045857298784873346355532534379376431308729381241362278723576687448326458591924763062861813242877186085037483085415773172160001179218916815957172258699682108382974844950267614718788794224318618671821232258654665403353035225822406088455942207447685705400791269495851849364681802818781758377755890337146385411921562078930705265301783426179081317550816918721212725591629243783870934958793882213147169720445901633167813543009086573992097387908643254568146388300999157129569732728001947171126687402630052377288547493836093750581249286743003207091412825692046839199760090819157179936561827421711053173346372836027995580631104080711767873104687108729059341598009236240448451646480076689289375151518821245043315549808810925229146482868896802275247531814949152679568472307355778822100701403829786773153082748742256386829064832971632137959462301755475592953516229470400109000363841512247576424797507312340351515759149330623660226927325463219033705014268011042457803932509698480100479710219700879711898682622364871876069029937494431697837141095993251231168832162116538155606243533544739850069555535072998616712445222941447964452565173946498453329208914962035441701526888837218262190796524155047593009487327482020942602411020230527753156482382565826691383726405634589931294209405693397747895354645741828796459060759583445722153766161143963118383063429684874528993053423015798226099742818271840082222748036840618825961240854467232472407152672658002425160537172949404325420979663314348545724944454842487462907453732374508057266558904487599563751789027425597649360506416220558274637437937559132484743828275868620786775887038763478971907027915489588547885426492498264000592787582648210150511301084006287385785872641197160179088695614971543104255542058325724193571118997613864023078777088090461803567700643783726807904644441386229754437533283387941267885086529665677915227196582835889419565418709252953382278593225244632895207042401238978976152007489611800997557263000863393104526682500154746110866210114571982279986993191266084354660402856263437354206951310670047469145302384093055378130950650983834411003829044099509763252501664095401302422213554424214111345500821150079167673878014725063593385893858122312525929721349505192530360108744725666938038805128817718768398990964411835892172301039582369213751653637221903333224208453802660258795890731871579264145377382343100079650875926736027488537380412458303219944952962730298121130610242519629239118886707797351106246334957667435279938731717918069625334893934557368072158724358469868053107491268117057839812843230062187327585912232082049829585333638981627282231123218912305816218084004508363116249669900092241126066499997869906135807176212068289134168951638402085069131028499391326642340878381977814274505837988374580849954317430104678425741894961452325585583989997367309792749913735768167614150975858371499926623464481338152723879182011166156234863918264345585174426931579102934183242363638744864163235184997927670590356599484980914627480660602746605166266340853410997358321010177298317250249685393847890493949180814240585241044151652154307404023499988054361932852047169156305732460798215875083700543307466225474138936438154955537021045634854181109269185923184762195531711510372247318655203470511457076051517928614307215404874816915058318782138732063921528202796762482093557882441417308789405168345090865432714652804027550605899786879831509983824059670022270463000700788345731497966819127117734298847337639163611453679701603167402151394264973439060014305238380762869336908758294610321001181473825723826281586337153927996224070255754609900780185530412759583854840070654596600451277124602892305832525766247006404440423999300920705519848183239180647367382861242581059771965740096620267634921098102823157007393229119023560415910577318600357621483456402535015558734608945179487535769137549091987249348050653932733662634230754721445592077157458361803796108578197791060121062836050716196486619215137532657862669414693810363498860052100116298216126390895788912892203751691782383502521907560798329412897089601181103190114640129272347070026451678334128932795766964687108258813456741687572324512022792040035689777918375049978118186388463572082853456925669553979001716060242250743639068209769555577836623562838497358900054288204356402442242903166880213699926301733399620915829842639034618597688095875652367380812061128890910232694579131677319869591294795885818700260320115226038959144761499204390342911377302051451606713130926905103502426975516150189809710118535785157664711971881310398810561400144156570503813195091524917668544835341078743472825397985612987672056745897609787282588623680742264452401590462580116550430032873309657273815138684854954568551502723510634312836410472873643757326046520654697944738078997456478281739259596189337431149241874653193001793541966407151217907462650890189550716731243021148018407058688952100451551999338257382046532989708229234695274783529397196946501757246103196754673702734631469541274267637215344114520053177183413825491760375917024602707287410980470338668793694421373826913310745364697484446729633063140387637517735658258573212353005659068803995817283016210391453506058447015528736191906367833786376281222420243164075231541794435619140119692491098526381567128458760878909365290049020897243691383638080858909771597154249689455839914807282830859397180148304359473038141559769480590271802953820624028646808099230604235624424205573861968126494589982329018735638114350136207304324500646189171807332965421773997385614035453207785344203113304492770734729506839129634731422783110634485335501037271442432098540896693200146124540953613730723789914158625820490395094086531725081685631329365152938308614023442953182974946841198834563623537248366686586839192244018994443558116056730919701220988983865354827870748027785524261874819182228908080462179711619726260830556941425532652870408332123212184942687624432135610511527278773756535894568590061673650192923112709492798754147076070696370834061940989296960175372332830311438700769656768259414842314172405642251762074899306651938839059552842894730613572877858260869572113331903887656592221524333263901539600649913523890050180083697099397242232054119453911452010613370946058724297860654829926671215547398338628488754274287913700763297478975838906121430822039950938004444513189452333324023533615072279289862400011364238665365083203087902226082961627386218946984979198507917135351873288402087026010635924661688271454712763801036398663137900072689136701386647745877017132638915141108940539422875549094758668315672723269327111203139819279653871747124658586020618432753093310148602607006149130264005386202268409470393320388988492562682527918967328356103467374930811061767317457161530984148540309795694161504498358908425856420883871127874234873149836152920581188826967922389816173134960352075848365943632069345638045081892001374556093716541115244318544614540502549101014215980970971014848052938415364195041527987660117648209021860324835291054590837545267564981355634635114749286865331376979475036783566701316400038583015157342514990956114078897305850882921650108730684451779565815844665464050486447316792710497910428862763184677327705073386860898975556668821194679797910606743140582870515583396877544172985073278059984773797719039377372495195104858057242041815175899917099871534673901944513022519902873714461297287714393383749542519283637726221396778623537731862921248235778200326854060147248883550667998830804633686696944163156567983429915035403132711724839993740762168749851329805354009436738295803926119731351759899891875313987664682688195672775498648985941596623299924772705969656459969823081350081162811023299099962085496085139698526371362201295317302617463070388082564326559240067164011970597327893350813250421768566900180367721774959837206813169194684910450294563521648009108907181757715584394815117373417381597045202720995642361979707111238321512659623541607878311653615376714029055307706075897345617919607242504183493354927529904892231016022320164887142283995424386300247382414533082780834618208738556205911153696850151799761919150431446189171857505261421994140260839302737429791560732419859102769116394281419995791760750787870398291056969538031408269601938914645834182683037778353802545441712853216585042791317124555788917459062737591349713675281323859777160288273900337477520937891189351922682460955124541827423617079207170015836192074225009347352624455005421154356453794824719178928681716515860074535791184483232208204851054876021770817908659034528415824097291700059435284338405636453917021249114037465053674951877147913333399884476075613057916673108078780794526123505363035864394537951584856793218765166998212284468467324304419061215536943319719797369047735348678033689425984615725223869577686925634193888887990534165038462972110731631131598422578942053765118374415335043346221632346663346730660474642319252434832569333045082481195944946953426133358398266035151285069446485697983784104581261682977263041974385861580307666294551252646042702218978348502870968303558225006956492380115002062391331954304493737991973562649103326048155058860333931971189596884585809482099685859356165484358599124207273573848989616712505515250996924859218463882509311330842788385816203423300590980027000484692925480223205384849163264317644565277648089112464481260563470175086157959852382154394346561716645016041559092180916792197414650250888671817810719287302260069995890927570936469158608515667573926006489729563107136981819939413847599953671534383993653551065252274485487952803548337556575547197859138613678062706140453217650805134348565498722282764719918482465350722610653984796705706052613674756673913026819097973380377408155181363913500580104751258128784058160029453912504317818743913593904050135402531476041169521938433162786994209755855536833039864835027360859398989632691172077302309442434629424952867172399289000713554162203628829194231914474992988337851517866308080890055510484551117842726415689886564931488282004547705703395380576339142308141693574583031272968053534668179075514624369606421501170361888608420869657993422895709390372411088921331478433103225017618759438325185709905335935589008010648845227953400637368113183049516258245505670847809440468776180031877552119880522985171550934418161350598190562492987884982535465376580343194943549777426176200880192850565176923766024615896579997188031844136023390912153416748942926378748931627063452836018371437514085815457918376736718313355782588650254361149987497617843744434216278237687975025017027154688195674401642360588969756229366189999979182773559936241489475755525681723493056577941055434187794184486789316931370253729315344149236194290215223964221242880484041631385098060595511545747811169518508386151810172584995505171673231658735735956095920102084908236804862380614335289609490055181625509265940483821343274351273560362692506463095567790987615371438748433679650836632960418296455257340423873314017262592237059457778725831948544746253495853328826138106843151007619965363418816558137932962950340621256475233830312942297125322786233239870763263503519584174323023128223957429476793013422579970861355771975120372910180677490230632199374439081362764711743906790953795114625470716275292700770167222508657573436438356150947733556297639552198047596325776774130487717308203143995825992908569707338301745647635642534314020550535778050392258500980014601962720215297005559693173047799219669457306153260898173708801612988150608080789759734370722772828925137939175068052314575120719113886472582342855788826181148568011251864870507641215875633675397792642254044325328977075676442623141642692160398763936901439621023031365332516687436776785696585870768500167692263800792126635997616651128779137708418997753988026306618533483437086387967722885933077280225067825957485692764830301218460144319993690043538491510070467326883634746681849302865825936374024906724401608201468223025060855656124355429763895213531955686830614564041766028874318532040877622707415463617166824829227172234114961879853945733278127389439414520322624933642335039287469742323026604441773173968672338515305256014432348603008020554667307995670455704941095765448441359446250242131229454923055115711932910896278315298277567017964396428533032650714230743774312345978697596676528724550509952926539101737844630743296339171821964373643336925177782160292760470281750233001310215418363810312762572377224913410786507284344089909096034969639193667575310976558556238822724377835347065432593885540643926037955912067704849932789301941541675124403989875756985933009860760081625975279047918431742087303111965811012597064297665920207514058100374814622218648963180444923658485960213273279140139961771108496545970213370586877210830366702947087267636771134646186673154647482972288046986071652277993327485107690218165126377081405702773407429817268084221428350287035950954066901898348281845916643060933202228839359462560407318866862406672149611053276001271754340871896658729296056074945336318800789649273300612922269957130229052231669371745733564707048124444851890846375938330297381616586646365681767818915224864691378502181033520626633187464227330969787206144429259208446347104312010113422335685430676900487418752138957920028693963399181434313801640461355061789704739798172485671072022578796557253475301746687504993899473207682967101632906784031527580408666086511529341014914105986954380758662639982884687364024759711774318979953120374826304514975437596229159256000522160448728869333316101804449560749160559761219717862515580237111840919868056692015278552519327989944486978942316169148851350274137251568139645486754635186183790105067042812012384626793986899381185424731363819166758507093117045493768872651990043122664948354908481689028687511073633131200523950075532121254298404252448878114730041361819886548903267909327565609061188097067173427414239562462728950346699119390297983688985651393800827323913201432579033244624580682340195866626246812481108163823404886897025326696449243984135624711842846472826271953975191413974680347001895054785545984654618832777060922544423422695027680715119367064269673947778220821504443497859140798029397600928701996183897126345170079026240295151142455826875922137854705613921708060809703691880607714057587551212501656045095352769486668427107781440935187276094006122974899560138392941661672043854089302019001897278852379211991024691110645410311532374655599018952952083898492400564871697026716250137802241947762830309854791872941002945616813210723324747848861508936638094573499740776831516086059427066080161815038206949884708907445075332022095948407643156132990716535648677879081773565079807414046204437331013803325254888941736656674495594083657160903220589719016327508097370488119351907388678316131673092587675450613982723208717923132110460365899800365591132281708082705295077986867624222297559212007971942016487410963315432837519694694865689171545042648822809857489048814101322854567923332529993188860606355868146801924678523808193864501516348115112109941618936546724511200629196559265997045721195651373108408387320823743812918207025726482600564774423937731434700421698541716532061877183929045513385080858202901454824532949756556693270957220949036835402867433621846128236722112949626334816153307774697940012626177343575493557949862701282267882095036808841434960153743415401504988480317984098668626280666573474245673032440953492799273101830057648817321814931035162718971820856595040076507237531892485586335218937616294612716622884010540427578294560215058182978955020393115796962850444889800808599701252904923993875965703741736896799590768200122212743959015784564404344128375449077150556691573251653898351052353955129588931336669927212629324529395343594975313062521379399759589998887479065391522194103168746263978499364491752446440514831848485435770931042347309619261765056704779144846336482396623378205544491171461639612194919018357724460453742154328504017465044514027463414894126090598104678597402537522749537412649206484952114364755689799165349692026624747225021994069340777353723318444491229124638783053224202308083631966351620894103719126297142083314639213279940202437440580108773562784099424537050692180881483739393590226353831287408850161899243728076575358099797854333927105907463306210802131454317268203768717316588847791023241961929546886879220218637956617287529227993684159790969445535981688269817137685289017497841040379490238735699714685435906731149041887553307009438502590241362863191393083465447707403974880461360101090278194106755971320228923976981166659558117973907253477070886255716186638531351137642512804167668400227864096489177259685031163807768430658615729167143729152935948579336368883555343703118411526192279584347026245529464229726583251279203980605907056790944247589190803993214375717493010893315724210926737000186376768617809989425629213512800184908635695870321305607732099276619483917691964318607028876672732798275781289958778705183538936649390783885531739986050385391180221622570088140221448456935028602171501865077082305578940034062088882702085112655283644400988848199750384840987670487815880431312558017500136426617524461577670767525476573723287216707835077887875924096087387771405952843371040911623962129966043181300489697018246075300868756394113870900874165312219783368567725579279379814596291892853999754535590115711205410337190683693076208405966005093283778463122155438474823522246417982395403670295066097916442615455456968466262637924310940105266171640990574888835138902687230378818805890440431399038065721092966648925160027384065270475859014875557366453083749174261333332523670466331163808448378327202016665126050993679966454190541240149644030153089106036566256704364591842118122486017839733255339501975558158920911091011869608581535932795881083285905883772129286565687305058385988300874702972381532686133080236051654905293110553935062631109868962679736779577501314422674135721029341793659425700099447066026178575482616366258651945196640547388703250705522011825541542071850820961365052596635795781868229085665378590915946683743968648005890133879048207877263150771559935605664577717150561861502836615289009163077713378067276962907894121003712853177943930152856693065403589061614757287103501584501847548839175880299828341085923684067528053111372016241580493769101098051185519310790938223965953564921335860365188080358028895798488474141603291902734340901122409026415154731840794735185677541584939574709271650330521303859389926713004389540081213483042650568830175109831156053930696355006202104635550017920198990421276650250693526797553254857183410273129488291929804520557245617164200767868670529106524634924134969650503118080112022753980120280503158719688723248152593793338641326770027331576709831454040465143724244841996682149525173401194690005011830605755681599776498713810928076633628539757635606483478992582435776154000911127532796772563370079706769613335924314434435183136741793727280019269902097072044641945834691484716206726549086458256870067586901779503117170716629443580342743106924389482072542605601049231396107711209015308033481956744230591081005412342849798605548790547093994138664875946710047131445038974527838475414605534609267356935912289398390792065569683323007556474593110115744251565901133078909668454181563496238611448994620407665770034025664930710873342529119411747221235179483951212665869082010366581055975822458862305113557783848245871379666414759958878217764649805932683549516126874784462540237839953009107794671230021827834369244378687698133620726658034567352863244075576239055223786946337261875131039764644343152710597577106810983881279175628047829228178488752083854255258812277761711653949325210229375193846842062876812107812939660468092118611147003199687557170770224292798705364102445083502171945997033622552295806341388783165319801203621656602052873591083159399357332576561664611873025481194042869919898663398124725299187790845845547508453903644986297256352702358514737212334706208952282976684814441068621924279973891333428316619629158639398637471109374270805709900177722016639739400658137671938844899175330439637238364302433932907543666613537731364967957064782986467055039937786477767907708629425100724698712688671377771611270669075725093857371355394598690168823487734908693423302626334717159239122751160641788517042693608588378560140287647622308966056876126640535610437282537667228037689950661152406002662792969137551129838126584452144282949474652873958581620615208316897086061318877601631458493480877177483298624289023090719518470167436603577513823954791498753227838447140507313682469374368105787754259478608942228342092871043333911543881808748843678337024337290370033612078438834186638322713175203723739418607172539594677039794793608624177168543159008085880415649074490692950777218105547123161015002238376145193178766078130095342715291138373907042792435780146727696565823419787756256078032778533614889147362044111271566789265789642381278138350992154212696877284267387108880432961540206811573962084429219370085325396102159499659431757233843758656149485601399538723336360762475079795688687251819498480662731857451941419607534729571946240015509138011036351080101579993412463294750018428099847889502973346311362377077937684363193446010650968037651988505496836067732547837422777663385237065260438534015713386834681180134342412944825085235873332451726872640385841696835216558464001303732610971885322908362857567319823304933907920259818137556946807168327339806526584633888758571596215034083104266400963108052982102604570354988028833621758109976901301273362237037551763297049937512890967422086389383317004925782246058977736194589376255485325158873807988860801681568311224645570099240956276650495313063357398986314411482737030910520689790717781368116979514489547245473648244715364468499820070169673044556939932706255221491070558723284172191219819105558365419327523868464618932897528046830035447008605816295585659987965445995939773768015826207401312890388789610418888329941384268334416584649641289256204651826562539614061393403129223869303857236411601546959940146501031592545236525193604077254332515213676048173790140087619591532043196753868066509439746664881037109513993632328295752067105217698444081391219352694845692494960185798942281573180324217311552110455654842456590984310218386839532884575238633995070697116579363397646281440311042680937224787389794933305364004433900572626043175937880190957777969506793777894248274729657937619845018550736420294648748752134918829223841931348886861518592676151168363415089326322112248115025205466504623457741597778132563587314425793925774115080480087469151414048579260402270901552430653036968509402857192594898794136088323334879780344856050648398523765750886194469144176367739404020317024593008051847664749145578836806127049684472050962015282663487972769269443541107798643645757204261676950252948730098099217888235024185485694305449870686869028162202813166832367641828499264792254606288150069873080231875503284198915795908143126081774200523430396795102024902316802134310494801905667804714874910207916461086277797965619035008915022591830994742804968463147423097403926367592957554592200775850300175378428112473593904857478359952249405002907493172249321638339930668335668574054305845468187710267608018599000092777918788904400423912410011007967487007555113214886037066833106106645347610185292560107938426593679922067756832012940574415557119690689453864316306655257543550414997191962424538326460694729853064965868432243075705692121225764767083455782251829896477433624812093319670410720448567859902644546104994911756049714374012679436223497540584206031169207965377434275605054638525894992990789206705473444176048125120815476497063213544822552877426165425862275841985891516691044785077562058625950672639922143640421500660031334506714079484580682286566679437321143014015742460818179290687482277770133856823937013230987218645191905004553600064543160531463054229752038525040735333382934907786481915088966074051438450561471205070669179585775503740291667177761065269620086137985836387808986991414081117962199844583544197173660410144988709384757026833625984582224485710391638326841389736370723400701538133801596758258537131877368197652016881949576870373748966622671220771690315264134018276326070777579864092915602175133385953488972457291054269699379342996820500016283395199390117532573041700613050500634038904487014877751115264395929230496226621597314969664175376929687514579730486419519863028681205679101248378934673859235849502454692582184115586633222039451254346360846446092253801731347407311895549011710663811365012923700426256567524680853570171773504191744738765754833180762734923894110658949086569078152524063359547595968503864156165268979742705086080211609956209193555601845592847697505319532505442917601865537663738933542858090822388619525751658838462860511143986833467986906872945341420932622718139443359960135318173178595409069483769104727257773399139069434680652108540918221285364747538648868300990624424242513704937339895518926212920507182397492748874794759899446081417917079099405183445511107804450020264197386054533831357325377349244455444513683888892940367902801536979702460934427974939252529233890345014164825690187235507354400331686754911730196431788498780729724481915101499099084030744934734816530933574125952272671738237136761028614491203465658979501132676942489836846831001288952816025539376069434483193373802524478441694897190424466010068818522396233586093312778624861410836192046859471784394092643265574524550796833765620743927400698454260070737108261450713884089936616143583427578258206670709351441788359794801718768782692138426500777059551313605596479316098780896443126142687269090382736569759864286160539539986759544393897054552201737666644713885215346993123880940891585735069644818097981036520122581762254639432928082940913478522646946589102430813932664808844591323752175275434072091503115709396112727765866148878457878565365106663436040114646580754726775838033099471861482177434288817868052352826549169532037478452555278187151558112382085761951947386814613593392759524390743028241019645170685143964447531746896713805152940218714030660263954665749638071195602176565293171388538982011869120373108874981986136037379672031437752087439603178955356317978613522146831973354980242741701601369450415883557081588487621070372990410967512234582383583585042859697594325899147671052599914999713216899065452105699485998636264548523093854974902605149718487779810297228413736680331169624832519033967224264838387821665105141511854432083227636264707407588140539062046562954255757304836484656531835598090667044312763200755995772361927236136296003667229154384753417665730306222877678495057148795223922784188496031598880852951130553004010272341079081585355069384950618774557705473713058486239642185314267148002118354580100319578090854598517364052033132753020486546343693012734295375061070439338807526796368497339591474646741647008096722281959914898644814674378950715711229851640399438112599192585881957979377449603244695274003218471226456230600428933119301310080119851490134503261368630551934377662046790031353079949934808956196645000055407339392768895658921580156216391760138030317887318470920643566865904659398727769325718983175461717495829410705902949124180902090073104269836902142899580475851509663270610256855002099170183992279836206724053200784380248576771422345066780779770170772621256338410595464792203181680141324450476431035010900246433186228985688093708759201522387732458775334854294741907902447199788654945709701261623241515431188756894990827262282989449231903793828532952141568757994161328114594029805519205296458433593874022103997134026155582407459437327626661692098862219918414337748546677507138084543640230633881432788451539293182094831753348395614314181450864290750190073378598807011477218488961397657461397239851101480901693530427821463078606105474653334151202716561479489975801099086885731282138911076819216447714212148783792018847795058610166765566831742285047417284746572456999144568900636562617384689360899899532365993284698278238941107839468898420385924766741109826389437856728810411757917097460262701130977345483530910464663033569099835498724240207260569122404560482021873677546611379939823235288188206608263166576754450247288130682478884118693607599054469057804587707083726455944046493251405863419822044385098087333897221722643320598501924280753247750678406844316268231804799287862461351139296046128065861023908589942303397825753101288320170988819025185883830027307164957153004392367663952094995524749646793854853663489514366397701688571154111072534331130083627799316149059197175269977245646398997567853445086908512459458706785169675557376894544927594095421276132599284974299499921386939334030996560531946644813025598246693750347097401687379435008969722847984258136349824288649381258946982432017099359843664875438067226348386910715232963467742952608716861166204490445358448227365367192988775817547326353493895168926811569010271447293623949335074224054929035272845586834171907027151299871552260046829026360068405168040834483700961740798006485354377543346098376571457178200302934409005865588980035311021155480236307658020120245481275006613282425289012613071491283719694685890403320116257949807554811109204397138111396727874451833589780154947166958334508216549585700477009890021037567563913146472809394363524013663223950897904487696715999306847603977650113916019822527297753534898934215809685132756378220803017068253408469330530252673594225551219494333347556811112352994086515861627094105310859174117969787583321479511452334658124829708539300329508393277475465309800521461817279291332268803031686435357673374424440107287924363003410446177165191581107817123780691607520658189253225532003220917921899726321595209658015440810933278746905954816940446217090834092953206262768638615160156061514510391899847945310497359906814504390162774413962964434954416525235757520534568584069679012323850386237722060174857913644061429941996904781961702181500566287162688064176201785581417936666764718869845259980708149424035332072387301342540613366134496680895253496469257317841373047006499254161209117731958311823696948950122339289165893673671982992901219014727007900346212325166445359881240616462502655132756258425035684869436566425728279723242368058094457009847906847720745515212095649434219636080527796423477552792608020997523245364874121219056920644601551381500514149327827387146323367667172765875571651836681073177769234595622533885756125468200499860498661460838897672204576748369251061378451286950723086851866279314606441368232985586227682448722906467270555930658258946896384854317144184215662566641103664151431734945371116923289792382262984845422371070976694060755942366320242028099314402286374952691397216466956858386127665981224843485608087369565777337187118771424296146450964992238434193838452113581214368617402025232299229978079344045199949076018518637412348007873326800732685579426090510053341926945707769544043019754500159754238624504810416147564627021109838853780828557708468592795283680514691329509304657977337905475994759582444716311691197625953966552741894894331128385610283530418168170279592630942016036040802357003530617132299635203562086569627491197687943081658126874482072673407859727139857329654625153991445737116798741607559455584029469643551483404636084648387694957771450935726537055517173435744342983917129375956083137032935173060206994606019684082715024021932799937887544247104562533661217665882123426812898454181503285194969309361004638411119017467280569197588185167885382384714449577602930199275807075820608365531340572162343525427461971259115609980096628531959023701289150022445453885738096348026172740736680414573372469851853330035126998169815940829145867332213649003399437297039020476826892136379538780294140729111010238123756095310091247544855334824599310945659802273313715906096704268946904634181667699299980450868138582508947969227120816155864945296193644711319828093848165770030540510847655844638604974692054449267794280313242232721446062717951426662857442192931523310713151236705451886188731318926807825462881677440025603611571213353083779371560921281990179060894375160863006980242312843557490731721332671728125361889920713628680211989517849234533823714098820927892997360746666025971889746162510716453352727911452523861703409484594652622862296209635955918884856349192013453291108014948550658504578256808719191005456900384900437911913537514664006067238909028132081652331992038360301737754466317610885649376463127091687512422530518661504683721469844287027147761126575734531494242126511487309919681593244213057357005671926434504631311057103904464992439443307696418341727447036687988824219770267072915726821389576220323549777719795826802619518806253279226035962419113749453614233340632062976543437138344397476171400768694615615301404195514837904314747982316826179962449331463147181534831399650422568861000145932289769010211877979884434869084195895760001967263260585554613186770625106602982688390306876587087721288504203102819026147923954735886694786506066062672216442489861836349041847313773437511765531456004044105056615847837724989714859603243604674181762079854090154514061684937374834467517291177900151942133842202134838234873424176462122131234167500250017453669757139965185603128630626325053062822719940099385394811065810213397679998866564236470203184621710477666005877268655190478331691771076305221557089357418814554631473230722309088819877510950838321623172611612179286857118968480584510645229655094985356429403406059807853155837637129767285323499027047681843339576562827297143448120645112997416604990115946997575681441147826858109883768931814471911118260899210617692445692187755779894812132138530353111371253636133495322489396683633436608979948447103849622396905344521002250952296577205770585390527434800818088101544331333135430216884494010764402314244613520922699501420881652373912444715871931424857107245602735360341133844428862760828710543425617903522109147473032581295792695268473940299244628369825854866308805933032663580122739581925244176811620561884558386895647132154729790465122281782121387798828490156111617810347291010435030897647391845450567730234022730321386121065363292107699875915392499040255206947429751676931728018815560452656687284731738254032788216985444682589943747605925868907066637071387946601844961564255347517081605846968199433580427557623383477466758574335266257653832206329738359082146616400168569057084120740374292522095748366400601557900760526620337401380613289883851406362348468567579233164350662558485018687838030863199476038066282846529136808182906505949615082792513553320525040973974104700657333556875786540882552369117741954231790255218128852230775127261703113773101567142902441748480042031870038949568610832283616978649225766485334711781047937413471161637250493501308289621403035236073282427898253105222542849769240535309774031893687785794687229400760606721737948137448982238183528891117658613552579250928309871978559506711996460121983605325398835555424142448491624330158664601250664535244733069527122170600503853699276298110482660681460792634554963743304716119846050595692240014508028273336334636753644258765789305470076888081755848327509550834124610573296146835238102091670477613010245426302259758995760936473775286947028903440535360537919394741671382772394843323123159808535558398759923328828056013207062549048110037562393717010811439482344373822110579924377720825134141777290893328999799329045921668087010228731505186626944706771649836150264644069334464914363388304326324499527288895521871626477486267239074625713295536844906142422267302930394057814063159217068999911961559106807009092476267162349963281190725445389268063235122408402133210921287002125946755401874426892934131045716303331769862642354045540549823259720669263239803733812221066240951572021996992819010233941019979241813727610225939856472805407042046706120229469409562233390038648011534704535218524942485667316204750229031384783340619565682569019643128203638221466823720649311865464921152774299221922180460275867789099913927389502862308029018019853799538541642630752670873354020381333380018000480067905775014153159508893738171022226061853507358648085542021567538910002851841060689265215433422426322338857750931438414204135253310084528768815174969316637730467416357456101871820381047539157326649897714800028926286017180843351423990328856315631554499183000692635292436351209776476170285655585728856148495712173316757630369819505966025386179319939800208968474124236891599118881478963649468132609641499367189209433685062428985069657550649601070785096399783254942788738674377978856665686347855400602965162963620424161544700066606732500469705000908437316741469792871082750294396000454666878012183398969325546037968619130986425740048654745762714146868053738310760418195682097977555560375093226700910351788113456611038700660709167388945170792930419668457849748772670096315140111575930439578848343024985651245238961792901730877992511804689383991261864180944357197701131339714250606064502586944948444767550475484397402096541734263407604555806200552453253239939289350489600019905469141466312292142724580574299817770244928845845397620274455819358015036013771297350994068482857002366856504230582909242210824411335505321480128309192162951093228965434832891431797344155606446498311947482004561159797794043108325714922089599140724009884253821566670515315981381846857488745159118830320643113783744317956599054069037615000931028906433609950595594816417511256717991130112242657173354475991549451962682482343765457182605457522460256513212879613031948146951096979267881667763174918498983052555009707511505478695436110665358079608396297846781844583346829114215650234756301097824482108711284997249809234110343464050962871106316552374955543779578824908605594964561935003759048817630139376446067043975684769507841720949353164715066393229842944884205687997578519032866676500985755578626127789785159165698057882658909178492096715110436567624535817101057186296882570085748705299463693700607901891613370959756207038691830845345103546428706233551287294794550917067213202039242908266985575980033864031412032880148834581202639620826210746443261904220970987315531837731799577740323641319349396154661181483363775549910935990161510582822480662790420864993982769781070023843903427112929242255925387997388078493293913155100606020304727477584112345036475262025382356605266543843897082237137063857511846872564406143776479899111354097391324477682299666333880065817696527652646396243629493205220678332456121059868895105759709854866187265374258036738194256853713162095784232030432487480509694462677864813817520139337535238433708698778065844772337818786137193528733249308203983845047940456829516591512282246777381209526684146646365982561616347309583499004358612504547335907873438702763752836510620883804974857409382778172660378347836290456826347781668735067825520992470529410601469251214653261160755308154674130673371778706711001222831736329743975521292039386510962007129110812936888738265873985125994261132606443798607756299432061903514206037081169845018131636809876707166575462715919850771149358546364828550422405865662670714846586113880343935298171712010495543196482152995402118522064225744050999036357664266479854369300524127849725271623059054509740363031186347865371217337107930294586495061241606825494411163098377792721220980212153861857148512868439874926178567771298480711734851170743843066417865188719968957101002471998378953057251246085028880631132169873180076035865887910071186187519697338453295854463034833127758037787774736453759004890348717236225277830363083127636363405984640429206765726784384135018028159791337525668054263403017808121269410450360135601144327956094022301923664767153777171123560298003173207592399796954988408266799236983018447535763971975322531574808517047589799501131560364418296369491573308544229334437097515397284092781327945141752732060941605756096763216413776697826074310040028989115380242499472823297961082865610830585399968855071967073594495813578615251781090104856160195921748010204755704817034306604164397833753064763902561563640902094243076846356383889908906321453323813059855119386415188288071513795059088094135324755150960176011654966451151482366586933143245948895141563719701714030418186161494320195975347933402706893815428349908728193444545678693872694977179936702783717345273664993714464847439892615262910171674902520448485663314186651278181455188713103364633934371826560575122980743380128488951304374935359286028534060844582740350990864614617201798645917145231116050152802243983645168776810141262622875868125621627376584448473607704907254632111705891565099286161376897209721422583443719019713539031238577964284862670564791925739028285216286440893198455757451535616719865739488277609451051653021034308465944065132107260650870935505471109620220814540675366301598923719220022226007174603386702103589719384581104974252388312879733428234601621307546390186927925625941844904562406239931429989687262177887284992898790499119485298825847712205963063624470426377188282508830524174451602421060937750252439463771725525263441518751890993936427136240890313318908232977859791949391402826388220777004501841948105878297498288375179698700925181784916940809602759555774487855645942647998265480196836312076076125483997404660728830764665840343650191652569152319546479015029396997491454399542785700369597773405021885756473038645622227315783624610608656744888926801504783420353323555409712321052490606287599305109652999893482947233641485369337049700438516057919364324841494709748972587914714548752091690491271975300794268790365136021649822100989241291251817819104606586191195292035732957868202238890677749585072886245269748913514078338620567874221700741020912236544829665092226523550122171699971510669509637281931901686791830449245236118313446457656090201996997011960512115217996683443636226732764283764479548426573326118831313251229106374057935538062144388060491805496663894643193950876214685597430775528675386142007641275697770835859877187834387386820551307245614510640303293629136476484455284587791383702390688323908271851775820791814227982666875343137219325178613937866635689305139071920515644134320755497526033439356930796433828765961346032804458176051572635975337136540560232074567782458831539556245454972976149438996553342618044751620551270609908047878837872499296774804123621384043287869407855442370051607834428729757626284288843211065063365451016670798713801688457543402969197388509085922223252534626700756570106733956327554199783005690839571515344019872305754452264740228468661825865691413803875847099063898549244650406671707222350275484930476150125892886717203507365010911108613728383631499991414700954055153715283195972017865247759057411751189931953333264478510980744691871764607520198711820999835034853473431205057799015036806410954108979568662161010485507220050482307423124462543472110096317159508546645081580871728516495954230226233960286894319356410472145340037071470114460286214577730439379203879195601395634705232153777064584337782662110691889534542056072199818480941112089870625170620988995002308941875471623268626212652866626164851134989441603378714914384619338454343037829178836822744824290545782946893196497202158481450976873865406973958578223476382711423253775324963041495729060125962268890277467548556112699463849248124886847003680885383301392325606630193339141319670920061962447473603971416457019145409365031279239952524033350967993560010881539456914160203307322976461981401204748133086264764375992759954859821964418934717738355436107716165744301351989456555847816035655141030601295446988422195835226861937988307670575469964418487363723548543764847058312872375503264459882315656562203378642022807370452665249389401763053040245726918683996043790668629492973543877696474074722668561938055837330055209693278662163146731161851896852668296593278643183843275724079192409012013329974973338069773939665011192617142859460304568438285208413871052036366217142941389647603123050127637245007183152261277468038094087079589549400575923093041475794649030303277047247562767747345319837636541427594514249790497359709450468121735688429232915813774619001353947334025665789687197295561189301150418661529139995564806200521824885332770103371128556248363688845515372286651110150468423733030719556697181163827688545423187995146640561923249670153171740523140489271519159573372142635976911222955776794072182733388340575822689229527837528277302524297594727397175394378491447733209305816405114969727365843258516781948231541145363202420391806208474462229870318134792237092316136295992298221726199655904931578211203660447902704751864744003418394015934990816017728839425217899559390246822182606198112305507157136830295271700414924579050508828090802005638240766043610841745214177031084653917339324917395990785977299627185620353203576539507943647630467656834381634741106893349240987401367811762704843697333368226337290487331329254060779932639875208297560471664969438360987652746592450537635757478796088749354600513232592802562036533951909333285914480100804791043313364952522184384149721599496752227321281225347092392846506432352126703986481512377799117251315353300654327272080963737933649393931243169654974162156414471818375937105583757766247812461698419217473698081307338447735999191792513127461839252817506629640990678356206299129975959316493177863799245358954131893983293928426153378201180561910358335386535649215245785980631106077266484622983045397900697275852132383189494047531996378616339734433949155893771599252628274410105188745996610678268276264482692374664631713133486168507999073389005286690757266076810650819023263573492938193131825200532341917701940533231959566889627704372407789310273849420040667925646805477749806290936385184446980374068291110589295695006300130325689557544738413509987528208469615375715260186839578613513591513379418077066711514503185826117463566137372143944292781805544610863563904408670030087922869947921247522738274703635972449435734665585787554403127452617886249841962743986587278627279550591231789062576158336146660611668675370582948373136522061277455279793043964329293130913108488282609669116240086325925524944251997648353324438115465799006886188930870189368990871462655368343988376635391756034044317331552031020452808143504750843105968185383200295768171591267143529108300027704628843947828578421976410953611508138835693432388534940275551016656047755676993718555756599070751523932035975194873786068437753073924044221210294757530543885675435267196682811675131222572502171705697136848278281299354107871666446329235408254144577586789560520405887027489371463224309463141161824599536713780740457288169050677639870993078978926075695715306140085178071594840823801551931740078978877817118976991534506770605760919647706298096431918318936003582761982050121521896302540895270801330840039430612421268144645893740964134029338511148818562899305427544327082975728866453882354200870051476632409698109624799322715582006674216829506253246862227743480621598383405228980066440103289651027026333909814995542606754864681097545674551342749485138748062849590951838962275544299819194085098775036965364815862179041406686155455180668574278144448961314037780975042993209573814544024043324979729094642819290291205368673940141187782137134186317373053743929281804534455244145442394111088525702164733303098995078464412346080618638323469566167955467635165812462503972228550411489935622807440426851217649017288722660531261758871897950669474971990117353073597210899761096294598150605134900012803782516137485386221267644226446410475004816556845074953737662390128043778553513349580079073306400381443376589978944216187270383398926333681598865617813031216254833656343351882979004551310430591100511538475939285229021930254978674599366454698392829199528922340736040646845492633589192420240835213073569700052620823123346278228546042762454165741943133156896558356418829783357708534465560467929885609466996540616493147592534481360778907427987052240701851913887795564032361481957201190045487347772387750884997195353691830290741873846981621340110026980470657730563253451462858458125893375820809226735958746583237130723672522471211456972360957969151783272250537629952463240387263653276145022187993479568571778277043961038509873404167090882042984015726018661003146793357239019560584816836642805753784103482921395230879745255756266804729022168405457541563143043141026354036755030729742238944533995576446181309657889483557357329110363747035485243693868181211371904137210508971824258429325259532401280747111128241370751895136053106248783937490659301506752583351094929656049780362519341242759487912454448537896484034707835206514288164911601768331228099542131670132133009511978207967800819837877413126468290509567843109507160537409505384213346235714188398658094778073704729729072013701323724767371793029710477777991187615232326187360189152051919564877936897793384351834030975966867973289709871379195247340568104037269606058991201087371735504788371228482623112394656553888934030417739262158919020267411501723236995252008165431861037275411807155107070902870555065085684613025590282660092505077954788501318142238224786739518722877990867227489207836629286280404747439115808129970289555284118718871397631191973099830340111115060327734905910012095812127923949038196922656867777387433981449708854774037129891904894714451482390175458537618409184080799590196997608926348250884375932447272111683557935580375903076680593664508375554336841415608346546264197838249655296570797916997508032428088905524689057521662777629301082111133955053378501931202348021618909792604763934832752350069246990000355159898850560223124646841372714032044712326156828952525024540008734495102916844308750727715757314924398530157145336929409581979683722832693027939766218178639294320850532743960122148454079074859684656566606678655813093314832353417408304633608683682897556761740823078033783128159959527867949372482183676399809793091440002547951202693366995451357687606828664723432885113930508434761143867937928938947317623728191988673654229778792361474068990946290841571179264678739023182964082271409313038920981849215910758683765185897035988872415815550384940082362145745384735738913167759122152627035366770956587092453895027150667797688226257820319259124000914903357461279947075268008879733987033808179897828297927126888376964812034146993445803394477355081940760220841658983444129516947592346478992521661271014374555637313705172731967031106919105883649662618847555752157933420702386929139751037720672120701990118990018406205808621617374783874568477354591462497665270000038590327708612025879334935718566276754165627347981987312605738497909974334952837930556370707798897276631364600258540774943146246423343509284126491192755965632926766466210673929854999844098025810851318821441737124072259575722039656878376671960723760419215773798070748023590298010788729686966016038157416018471908839843556156384404721255181530862770266836960712344934847637058684814756478527385722529834077055806155290831418526531048237836082828398787152702343569140185583553402117540620261852559955823713637627482649464033850915046983976827483464120648433600387526272635462515625520217631708828609413795244570497344841339634577697035848378311870236657085220176251527616648255620721778204951174435972007672519753382122234583778945356965327845782057614385256012855305110342754085524799184786680646203851433759600452256063329616251524913513891553413317155158075872424408337583328313538809054962654358510750613413165842406419959125872001700021309712054746763007872879201245175371785920746016733547878399878192451397473420805666734229959393128180048121323816776354605864258681398654693071882244925133340296064436102284249243863939591920368272204892852122088347526532176350770612119115636542617364416067644962407576449670548550571543745049727363466820441109195694092743980456441160951792272537985955176873831055881997278180986269512386276021193714461595908046101654027987211373842415669017464995426394205965741206423222914267927357581499012991773625960774916443250592372641746289145859617757194908027812993349110954594000821387089116917211904496907865683091409510455848880330797309510992348088132174803595861558165794906418115402453990413186759864645690186298441529106627006633255072371680453589899973268253580928199788107096155994901281058681355160561107258995283041249772357101840746720227705323706112977317359966272078266275401563972437981035256461827872674714331819331799698265942055942482267174691783278609664786265802383524525489359023869061375494263703974160783492855674354211049818675964593270184499043739598869709272496610248027527621022609015878881417119749100698533313952650013694481577408669131210887826883213614936791356870119049492161546678543940405444942757895394944484373280688988536377037632129339860944409617534560780233107044597691201568641880318961692152181981836166690989785324624995167235199812889161557177809401258020315726898593714706901303198508252942868971493627523055998263650640382649951820415155045287803336388834919358840130782433500675522585134030858315202119751703704232249876013430142429985947288751977087203911360337654747312670590005196906453915968577268249076316747827039741991105903286467219324127110219437094667658494472050288596492701555160286656775184727885434894352622369145013966143271607828783227904485835123961083863987904870906865369798013355554348231256340254717178392673467006660488524210086814530407779292409239863848322514576095438268485124982048255573442442994993261871096305264639410323299687684539319676624146074470059126075702823777993104062094631463030692165811049177971994555940287246723762157600831464941017501543160786770441814503552079345988187671885916153645503984512045859267592061354262396061909738274316162325629098685029317409022938351013296358311256886035409778401297830131328170272703584545516951878781016049455581429009286742568436000117000661775720221814032176896774746115179205583082770978889712304921916036040136269831978310631157666116602900757344449059097250738977565894166302785539966363312387971661151657255953152008092282222008449981013556931064614548766974764443024919640743277040046915579536007925398170653201396113579510187654301877050095408061362106733204049928874479540388575783516091203872612849627305113418415417437046424405061217686879731665890003768337803031650424623620929074085566798359448046843909078323307055746193983906165704093463462014317287280868582341666353243292800241837103440632134843052704486796437743698061017519240086207134581650582326022625583996466883320408228549811713341256356948274522984164765026081874423727742399890480967503240806070126764627994382464195979385882015917297777821603307482645680708976503873287602917048100675565915297853650255408100085119773679341754565070950775355118790494998752433463594977639492609678371384152742614864580884746819115772585788059388562166834782957490690612995583605691999033272914815420579768367282483494713403342476198524529909545232157947646788059657906856852524333996673572022904236782593860231265868443318327595705373299078221372423395395133727762223255528647760689545956831538609838629822441328138910218259844881755663855338209074910931314383032219748948275300415366621842229592646072729963236856915412127121510656293111192860952352083028356427933285826671480779172527709996912602984227156011194830108170664366023810566824106592155559899251315779432429339212854134681626940424314724170096663937798391821945419416300809747417035698359745909555416858504817523648983775565382523474068905901430492371073853544998293192700267888267316287861181386383260365437400995418066368203997702952987706871808548500510860413387296712771956265335678638739243698352587409211344104586258743523670546393498972571427605100493694396070266506048230874052164616768406987910002600094336691569441464553383430571793293748847726024450653307484467077121930573807014622174445309647655222237709948082741934650920660268838585774656529927839073625795233669448831019081527026256353044939082922471558336270071174106540094967510738123353481448928559069229818358426438384502697914774044086826512435606157184419664802314132636425165004089037387381504675322191571743765060087692914223284725236926715316448871306043348254826571073212545187745404374644416652110231118763485990402228282102411212852178932662875992597050753924038155413992356601729690202992074987279516601658809527129800128263366055679123820244480135492650248293501189744850169953774292965089390382573863735079881806855901184946316381962199680424950481296778369082712436675105093975046040495664058413728698805952037809450239011172956209390737143020727861094507831030770759205997912806499048204441922990935476857311508995469382511337137177089258525985352083005750973524999657003355203602697824922430034776662603003846372597430756438395239524359142790109115161527613925430272418225155397992679342349327171301850585053886744565008677420570208627660872076963856187469630753413518604483840049618929722212840870164288646811576280053592381611486707098694878678409625954892515907529376661914781639835903821379009685543866482447161621370503427626100284315613954444949998649507518698251836945566112007107194455046620624839406481145554791684227995997006436043486387123044497432993473690374071118060725758995081369138429410219173839185045526197009647641264724148781210581209919760919384084145861195726114786298355848724699047082881899007499944395910619154540905630015265742683882034146685585679354039089238084542872730732479959030263979854514140611999830810222945017592180689616216959552563392122336141225953321024047337584764963408481218801713299970744688235185546096070068071250303869104657173586491830055571820328207410251997399799144889939149268884581268913336131899274782986018779408667300264114826601321700446865363334676539907343156989111188063251754451938836696343719090513231876854526404107225971162280981039106204056348738961581496713438017934048536373026126080851768317466052336600355301195804506210274274344091013260874111550989686222295840103053775261546611911682956706447719577397277361598058317582253592075071236027260938106180902353865449327257786446645004861930257037472816713169982972140283429773752991733329378675768320421316427504972999421097893922617458077180511124084793130880793529190711393904036982817131285999675279056679469271046246041121479324676638325729451284606704862002162490719513023924189813871473762603614113294990125740498646133338118870206974705605782649625991280656890369164126817312495395470079093277376337462598890408892908194048707420796539360717543086846313112433977219448429808901641541092687238467611310767390991252661686832210472871822178854016032730075147104543856104817631271645051746943623422552002922865621314183080463992930373911125031051493571809635206965796357416641731270527093816110221377187160240867376192391939756074744663487591466519352785681368912521268154466934735719657948713947517993111174396853340986412141758810339808847683696467138103867945078314723174076543999902477612783483069575767436182581412372057884229219771598936397496775752520504450063576252161531032137986254890091834320638156514530904971256085273187310347402769188778359527505653488517638889815394604581548887575843419647484110509591084764856149123346608218617675024167320328391701876549690252289433457628740200797598497542658414943278726930206373224136029895441556543302084925719438204447143114582286198364812116858543777704738993127066935984936641863929496640743773214671227987217147384660874931825549808089107914915214180036661309291186611430186958242030756204820791490758815464363171437044959199948611688400434768497065461849255187455358287647858869894434288723521296963387858885718149963271336690292316575344647574392514113382795866806344060611058681121893643518230544627766905921648128543278694606384429176375325579131807110026933665103485814619978415675523455806532648442440290002627912094717666001455574873492240345350051891885891327792863094188110280827770757935842190066099195403183890150159143434965275349552595270478407599772390416327921611938336705252356459375821287633100546735070963601957958943455890367704750324651939207148164749761090321459635713123065219341702035858568980900494348736997775986900419568657490555292350638466005323191057194329979336136177841863915846586103783211102612025754481752716433584326229489198106785137905489740952415160036831795600198788842347139477486430117625845430268083611177615683393890048669375299944760476466809177786598032470515995388217430189389500241836751467715441338170993761046655413944052588199547303926615333691314620608429401198524897159342650810947305550980840292274711753176732126574634091616361701809707075134524423820201888825858485548276218749021171012094905674746154476514263147551151118724201603248964303739606057778066665283994533753592020772607515452930697031275848694897753922751213232418547153669938658949341292415290506109995959109943398372757823929349241517964355848015076072651119365355921906349286219935059938680871920104223876312346158633211994265233032943346541038431376581667314362489706214319484213548641593541599437313416083018690445953941951372608581314578566066730703473900554318575188299318506703228934423507589647973100901683243143666948940834079446672534233824348635357013131326282499441314976548644069864127023323550158222595279069889914083238332169936263691987989183671411590820910739919556793422025761969204918601282191253027927392588359413941931035866084951712188981705818761018947916734251990638933949638251414885089535396190618211978003054153092712715110351969100139796541166103552256785805821684410392047753794153644749605000223741604140004113592380134808946329689090188052116399191453276642303416649053517305899745887661141564711169034115019405687625584604002177582605099821896006951851096577759118611782490794010831682709450399108121050091003489279736989800752464054773645290375895640249519534556777816250882297125454026151085567659879222127760382926731131956658759694782825495332835081604444572465214449660841582907288004386732109154914367640074471625356878039642501774299336215687131686356578259043264258396640987971391624034409076803271638558145483314841443136801414534774553111498350468008926097353315426260765220693953252796425126987927272880415629358396532339175216775125560148540423500040009334015957915388946792175395956545141686813585108942319588450381069295060573221352779176968607738020825528084530777946853059269822545283510839438310654343177284087968656479586386816034070424440630912914931926737510922110042852011899329686006182048656390801949268574630584920209514722813125444684367506319171441974861487839332716466057053588958448629259922479450151297144912770697240276430656060920965470734330836154195908570488799631799468497841404689557963244163914152996262702899326248764853548457238435172339576083764280998564517641609746976906608036772075556571324125169679202123437640636989584339053275538078567259421469839556367959030234417247987648165118561023303527843250944135988003681008127191388970712294810096045744232114990271256431331778036058752662096672685006254025117539887762372805769621789357711337172025320600787594124221395516538549525734852507386466183530228910838427575564693634872059286415503877148748958109536085049121741016806500911040881341518249097024779833211446770548617942225393985087255115376743154001314229332821313379884581265227340930271075964917192049890834111107847944502609710437523761186831221211596947452425964566757318052151839398612967817762611559247233044650294615369440531695276957311555624465175814146913995126075226029837384157393809157961161920125354772546334825968177713326436359658167100333591746648182621878556619913677283368519092230384085169934575767026800825332952784233056256701575954065651064421727373121658668877563056249241338211492073796986241600816162159851443793948170411240102776119077822178347392401886487246423166740221541661059494067471442338509033957672382095323534122091651181834419571122331326033197016998266553028049779211893279329194891356788267921652873629220075869380001696385619373450085806783306245145764623092046745766131401498552461492505709972185978265333796857949885959268222573056793346027753179598242055044872185412234461168593195610807761462438827146688718528436204290567521431454440761613480230076966469486116062720238653175138999817384237971594818754707435282699448863662997323415795328116329564816185273438448761944285085848006228842206835729841987034901284642793859490589417385986517590763608149059038870553290096937454046754171758624932947704338674345734214629277256908111251325689964366843971355445224693420044903746855100636792925972444924473217559586585845334685488948072430038290078298950087372901289207919445709826235916078205359064218531177363139400119541844365642304957533194462845464782548838593527347366814652727897627575712990299310304113978292810041904108165907915468919123614928204028830656891458116455694241571227835634351881086463874360863266265113438715532716757365304591577476888092276483989608699358310431497977624283158826462889660458981172665248544507948813493376869244932293941519789586731028386687547841164206579640220131274554554744864538228488551324026704443975251818931972522214141727111645633572105474900688588450277835869272051976440463265766047409018371657516653943133131786478421509326327447895380480118314686749483144813235903576531814174633511457280337451022974861477041730645416936694576931237225077568253755778723610420769522513562566753155703306792435535305629325289138599471193360196690961879069211685194063609086240150344611022633908575894902019271299737375631599280765883469262601906547990291181503974393116864101064321584914181603270296365782548933216032418686235789890288159180309935667276585837017579579468315321875107988529183061597219049529587828516362148899508299296462695837302488350182336292834091729354794776058630805222552471863709908244383889409138824955792606374867602607068996540394031428722814805787987343998680211977269166236584718668821602365076519798748300031066758472950716438970279334874958080348571422226469860713196535435225922702724012359234945068968554663354130949685354937925335735398745847436532650537655615445745962545667985188862797148078432635873695869127911502006143793608019934208977440466312772468280150368458550077327518863061513523505904011257522166511237098205225507810785010766818723310480039448490112231859855116615256594717589442257174539341420889808776351643479776523759003100972220953859229108221188799961867476740785676640557791195970882951545505735426472548210096097431837752109049791760653485978710286003477716092288568024669401869261235388705071034649965373759187969847809793159245725107989355932852900893371822319394829736254176882192551623092592947671054813042037324342079363094803048941635502286577615911894881486568935515003550698663311536859404158729412093705468267104811385018766443548303920444699003161082355736977320658710993904766417522594041735884187348109462286322938451526169436795038142082579553907011972960210275584684818626923363413139080783752304695921584942794909520222180660979278101676608843175153370607774452584836878094999407917744381230465379321074683448321027510060766614440155451955350107799334322205322623930750519003880393424681610318176139674735928820181392591828419802010678724535412630502943122802347873206073846830353265531980758600341951013091836644341636504142940121435208063170120843939847941772092981453451713815620579015474031825569432928685225135379140558262348223813652073122356559245721254242969643652900784742256147789001213417199963000353620042725181935861758472861463086922727936337227439372062285720918171658421507621247940223001049713035457374967157755754382256936478612048455678215921390841844782645166474709926597773429645865081954071399514977511539556526215808328877186519845825777696592010108718551167636314621776577387763449018568582831377850851674487968410079716430032624536562686399889241309104415789338132894720336805550960310876879196609315814815194409355058495368807031968372998194008294499090596718240128942812757400449679006801912925888968894857700060912665731495778724708630512816033518043357927093691100445262422747878309667196303532598937632228907233920244115283220354674944771033227120997404748366792802287686827578361487714877188706282739365659476941528993410336611466815827559736085417201524040684230052275602383812803227706722467329501210433652711919174089946453717918385530441203123549741974694777045728754532441704985560504849766872718382753423560541635633741288221045562508097958050073617921291822583870682766930511998995618193827547445489352595120644439822522274726859753971166987052995706404240139230270594678136171777769978831981340681394383007683197622063976608115321892793532831607122073654122159081515754871590457260457573845479850250491942214798404266853469777948544454605192873558220423459121745715176282300021425117047956837600916505694668222778899291383091405601175549539639860377213641629418345975665444999233596959747461756290105147383942425522240925595757108798176021551253668835707846481111856828147053385338567619565234613557369171485360487322426475964033863726747399889150940973176076851125421129605895176022207145282221505054273690402454893767268752052469545191458465846250072182992404706897275025647561111292199875629431487147268597316418013059713476612202498818258330399255360795898265826276560969217730078774211907593174728387442338302526123976179834889500040079085787627784773641760306271609701217766032218183459320804363202331833475492892886117906305137786187945983089710037649664273928577870488188382046149320916527769811627789959366645556228096907231777971977276338070423060081529095611146369029017408235835948499748311350084101256243608285327034642682179145528519297379132960373490136090237147366325005706704691181534230830441473951219451504896130230249045171752073934596367845983105610337538285939580764394641315680081941577101204016975326129595370482435255537564614288483784527813677238510788015181293441950738592677322830751387927457303345520210077621974688469559034439998062822890868827674543014822558095699847868288883221766886213376032547255792170486612581559854577858219226892852002202450442733975740198241272814000646073845829563788345328769596366214018821311272378711169459077682610546738107861731536029467945343425576762630770925238978754578037940875546741956682057512336442575964499975054998892012003683568312627991015280985232744734903373086331657153067239159141423930903777229035639620344481377786401340063834203213858726166780791857222001426185300993578340265375944112288561797639566303980466907407757021403333870882641045521684910092127449975026057989403390235061281825072898588761722871321277513031451895679450076972781968181894153165096101656633540957031939698526445584598660163729070355922751543409145570129895648306207714341336256955825187072639226441978704654099870009774880792133334451379386217744703655628684371416265710155699701513132481371810377944877568579649729609554359869580520296702626665234696134227253185702483283197584637426888696831057301469413910433123229815095153623308212651548984968107763750655935860513859752108125964298799407656646027338457230102787414365705298176169788606485899970587646634227103778148518743792132398727537412938440268186241593219481510465128108025304202329997819231516243558088155347104930180503463740754977057715929009625939967054044035549303781326898638900572866025454413612283543683388482017805966045850239819536416966064209153194393998572176988945603642454332730102361019013741472054473438907305472210954814212949890310245976206899846180423439425981669462929456624336377654684238989624117772025422006921380901347158435225866879737971989908118573250392955095551708670747460440838269666744659962577054682119211180858468790521111955202674407532027748800890793636327778059734951597611862245778987605077671582320132819279440647022923955547154825757860481355811212922711718462398770142139841225210526714847904660593178214050351252901523305410068658625365317986257475388843938390006908002264853053166073027603503967615003261887972917141239360516003670795001526847407847288381763687082547419170737286103977095419797911554104699656472523117469950668652143937904218949827042159535989241860785092584027708328069665207178262737449688730393977366083261125455586860675019712308755387189621123515567618941787980525258149175608474302562058660475588811765344126479145551831600353387695868413584978039187165835738791583566662318340413190938320820652194470610807194359241969678839587123387790430600110134117645459760863836350607805443128602693865280694505165087186262979490887861679566942329871808141722887818834142049190976807665300250345025340011611776790803269124775473849116632788238794038203994300040431056359197400985096927989943689516686231575408797566769551398409685347907978703057461618488818224503496176836736182825720404335914195137182183077792741124665770346704467215669317898845049965966989491896875148093167976010341918771421775504756835910090396246365002447723876229493272936160283422005873435887065195443830809540558958470008888474092228965534287689788294677019118816679856785913804151246220269289454576915831654304408837744757171518256905665275033121925247694754503650985141992080405750650698248626167965115323961749374197503342224416515079120167969757809124818218730402318972360024923169650419964328000472767178035094650225460765190493743290746465837866521015420280841237020053292687801054133674793056995696842049212299902990093334238446841146601146395462538767517887788158294272946205723664986252867293763039376638674984401274193563202772244595832794039195874080709367080889661530814009133004132961702119841060559634063820000023733904172124869219077060652578789970856570456144251559667035397182752058592159867571194759992216568613400002022858180699511944676329571278376071316421988816461561855613411693410205286801681271344421624913983939024950274230365215502883871536349465252899780463543596780239742238115995389433916456211142947588395706087496079442328708064324002710317697034180065753540619314840777441311658686624930370970546977076149136486626307718876035477571519996351331745577883207611117430393816954976832176414262026414747673940302265403430937462723239163736170138143424415922454565698507729941020403744655906692431426333416327551820462038366856029424319624308916156622670120832170455106673950111185824410677019799900385578778506993739669898956010770873779382182048744042539782942278559565555763837172002548478678321567948298433259728507766544648759845887766416946576530147033456751816127936359107120606736593505709527257046959219117111832084374341223961902159066505911144925082519883708641716512240551010419434460270323316615900575155145149864065921834209676436014885626682325257830792645934784688514586218844838162701403575642672083639053762210007042642167853069567017668276755247617768604705021328245443775931818516036537885776816948203058866447767344803040820588587935210078190948934333063346352493121028917383694412767767412773421423428764014322779868691186384290735731347322407093658232155419004166432423325083395598151643820937155698080816328434091318123182855912067333860112076319934215388168395938206733109620444186767955695091997837392092171414320889229941452914957895237166700134900136797144546648492088638022003562631434550850195651211934695543164293683799785535483934726853621137772209288292905136816833935934644478545068349801265582638230528521377386579765200181257825917009009699504715216122966135889679269246895530952500157745149560275254395613297194433813053291813440668785085718633401806115883399405384841050337475840566603796761833285280686734192240514907454541106307751441279244581664295384548474991727220475053747373790387214824087948788737683158928844020946329724230247156227239718918170188862363138182710064723867973936028710443943296542031313016485451145122967132371967944662887409071106252216756471993842131869024232246354372118911744941941613169052846118935032160226818488184215437867857939626736704534808036560797567668288994088626679820717894921756322949926430095457300206189952159478301043197011323104272165616303543685169531328879601596626091031638576542623911365497912156724958587189329300145518062964636260324532410045588711975113300012607900073614083045035366222092397687716497146385616778642258927883221926192853100846891734954947166627823732087636319959958247109503014906114221043302488495053511025062982624733793963612670135626175679879427181402573670025062774626367486399101442013293518443798239177314506453548522036593524716905655933234755200295349417531273371794552363357720765127313279386937644514226997228497928148958003775972015278932586352979216141202810684128173661455246425572946626964397564516519928494692054136712853251858386405652743157472165813539773330998580721463771622403709932114885143695781196774893363126137796162204906509762802611814362138321883487231120149283302326801631756390814868455835623427921288302119968042722048648541233717603108010288579458232263639711378689612012394958434633392360994392746867432508058511179341934150647497191705764338505972659254204473611450492117349350403940647898481952334980738992905180785416386807977406383716924203273425345962067347454034519215481988107078352230195595115170283821134570928253323087031408523879948005472382798435208412411897275021090605774869566685912667610239324137399267102547625538494156113422405797634769032121455658635188549231721749028496766166476655372398322772483409206126492733323257598197375627845607922147580000353148935891341249939054241079812878201345704042914850503160710140415072368744507277955724156225051206130248741159022960546275879322690778804457204067877594825314462204407679273094355205762934034185701911201508660761286313179276078944936442870824765994847020161698991269751175728877758054438597999647304626991288710053777611103552839773272893236982942561667688643207122084248768997268256899957848485021882340391251281114263246577064411837567159220392329810605421302146182096017144384234335107603237594588303098950645781875050977614229745305826541533167216097568013664355484163152659485537399688129822111674320651598279107167417573730869909051104638417684828294490934985750046780767251170472363150257982070147187796028136752094505039434992066235453133858163300460141391772332654341009843494139903513786006476025414412826578905050049502036302537037768988895229865928567139450238344322451303089334645586607525007049678174853102787246575991064289753935673848457429971212342601057028722021222894401253763425422856556568447057193405892244860023234800543198604115317431179067393644901364124106842034522357141292023099193462558076765313455725663300145319994533742112645279785780425419052535203376192331112416469910600971558386523332882037658722508545394746063945482523348177578707453642204879853924073043295720128307311524547920595576372029968169581360229395461049531234429597347466453385970776684950557217026660269006695750057765394919987565327781280804160641213119204632093090449494602959600104064483064070999337959437588194583892554233916730238991833626776938586785090596216740802901967829589123026737975906476700377514769949281093433766533156424568863887507111081083159889112941155459280836034254193701138606958166145364173262485791560878645551304325856639896621907970467757841094798182922431170364266884744494523181239129212741818331715159885287156775978368497992784002020960606567942697596583920599274658729256196288611260668920104055637952293033951447879631105421225628499477277700426569615298503411499823501412986671428971089555210251966168958860601847325340966513821161276692999378572449427812628212858517564417710143359167977636230765181113141019299743911431694991198092458819058457815370463205584989980181928081851252819876396427969348998607972745118415406448770391259106364186585617089887062175149185185350443663846597587607122664332925813631056757655993767845454148454905901532711562669707551999356971361964795829754817372473143440878540342314117037020994814280663966997145213588995978399784538247308643865404967997780370617699214904045813154145716546123549914843329176302619803173754667332432195518079309642964773454165545246604193526664810151041913573361129849124011941532074279607889857642499039942185407121497218337738620956978297531748303855692434939031503867147190842867791979871765196037300137181349075200434823982996855425718378905448832845773286921195020829609147927308747811190645382052616199935930397789233420932280571008058426754602113085347993977143727575572712912981107087576722275371203577013457925131428722597576663439904129472979140900837414065270327021449633498313729167288020750896731046569493801784787245223010665360940221694496564779111456257085075845893798442048777758084876138158825957820212493902994137670545145370579085993769896389195415225380906665152636213547370177050192737005082432583465459649389926390618625973457623958865025403425324431514941553617089862114523414689587510417383330227843406017173030961948134254178858906158028693146130132535791201206787642203549480152218385989194776333468408494619938488678947078570519606755891616446812557614029921693290435346196456325871453290268428952946429864744983683091922014950325997657861053470572612648417960860277276678121979475772040501225195687004508485450677903139707439853897696567180826766166398810974140577498210445910341133406994033176265667520269051326547693207382071200057089011688150200787919268810074499997031148160877580972081258256988119254834066999195946896332473241611529135374505731874503706882659683022098619525209748895689052403333896590792992754629737827550141928569032656777196344714774869240981399790321377756955399978407865069282796723550216219628811229637394233107080794973181297654382247630127193652577143293088373897565677367175211936022012801784156212658713798277288286221526290888661353420883431875254140053180909215172201966919977042743922078162413887826156977165793389274174834224756051025750108381741640198733240410970330303598019170000504532595728122618040466151646782302167098175709886751573413592092027851113475434037739391556726099915493615497985203653665994750228794823496091310998396537734802329122361100028313838371241962684959204278616459664057728662725294425155270378103426893800549715756278470396183170211265432563578451463542405851368197857242867941748887345654845093863814573267650780115935364279002853139260855446575302727012804063892018537019956311096548212376639339480028371913559786863609786722761850520805452637297764925862709391303455228953269057048702782056162665682917223816047714425429118013584309262729545078991801259953647727494914093986846338983682382326059374131996704786936450066413284087781628902062849362473630845362536515886290628918133400376262519031416042143372765910790749562193397044491458708841681852867658925121314592005400033394988393265451015466574464548157016854979367929260604538122502846328426142906820532561998107247413541585009445450225258166286860053123270977250430615465924003359253917256678016488979333427306084619459767403751481003700849530256498861465464815929555031576123903944106495228691806538574486001465034798108991500268416457320579971587006153265433295332031099362135733781283090067543575776735177310239183902594558144887809743878298062693368292491646440219492872661445250402879800301149165995316263880379263308758588190680687518679274354955121750404585532347247642519373863318774873529609774989489103017173816066346929954657944974344913468868156981655091684109804437331363326183369034256698028201623040375594129236463650262758104574315772044889274413862112527551353856725718014203541209677371604413672189084265932700604693628122425763692036117671350843405012864553768587827789223426930160829954425957874537856662591441549191362479798737959126905527366037919515305716857391933496379477387113858114118370592370702002516729889558430336945561906221492212273628115662525950688430483622562631145774003629613549225725169013342273781151623729995216384566979167659526318305847484733801740756594568909308165177176905955817765009020149276548394292136027806424772512450096357411260472595151815934465625340221848568464692618496735795353205537396134947210756083480012465456377508738953167525602878050053933036516526774880870181775176620985262513309970768490054225444937404914117761631255869892257995359204277274577037890000985644167558488408643196197885045023356890989492241944809313985415734560436162184956031687614737440839314635752729801304301863225393599333725336686062728460797881800904950630668984144787504123121719896951545110263644859075560954886642611273614871311512890844633486076904843516391776226683878113172378728518432914470940021235094324176209025080129512059262980074648996107076414069752265985871980714071973615877368463589014689893592429453184724672288263283446300677954623762004309618555548294695965976816212143771160492643627453772453867703242169508843538600910708940250852340462575251816318781844350517958671762153158948238436427471174285794565787484780987793612896374698058495542066901582382024979904161864681434170976841653186851014588746032048366215894246809756823572628179585966637099764645397007730531330428973418103475654269953176322838269700548476791698900574405218783430429613683827426679953201671552062642644662152785633295767357917753010748095659244059794129424681473073041817870590928842716493702065805985390091035041023505190729820435409462435127345127935787170820108888643617501257456758484518303677216165322409977257739307786809870043158420538356222423762674510485181248943371849792606958064324380069499214541493739026770063559715023045063580855361728332871683615014624313170329765844587538281719649942731726965818797340718987347536382460881803403181008061780906795418641477534509986518195081670060424717517727167780664583648921021800856300194920838313894441324779166694139758837817752204929115212509487898205450158437380350167241264140942915375260005273298374774198331629020005733020053309045029336392177995818576030915669611845980983970740002620407962582201979613703295119512051524492080337820598249025543050436350269661902613610291893061620388191787030060990845555138794691065490297059419675665830078486526130935138185129775606785886264429921836130048020090037079289933975715072667458108748144556670746970473238839474331747086515525068915880933920052048223213968173906710999391482268273406920881822070499139613986454936332815224850987680543502156428106058129659869982827024905847127186827249522875541607246344032677331126265673917687880676209545258718013207651151007866777679808088817817967518069378334056967007160839032314975308205735640931298330001230426981406649096429651838266137461189381383498924187659962110352524529739283645622172825468763175599191097284232836538049545410243756278253197304553452726437925393398526745147126557213072445669906746848711835516381072515044290742140129496054729305587619471151002053143224755208781332219952521044438245066171046340940487120606452262159861716910135891734631132299594342333521856857400629177704365993675791127786820377755054454773756240357277383709726911382401609744213315711215020078515869971310392895930180200566060132208674458690017450319884167609661924751516636556285853433038148379190726652948154295282674008971529652428992658313300711333011509033534430459784767751179695595359882931562057693679952516212183589943328438814793420903938602124292068227248002278461421624905376156234545773019860949681358598184709072878551487757893636790853875890406783186046457860240543270677380103159049898838300057253352323324340192280829164933624605453160984898769613399747149522749044262640313612771808136164920772365280890638723645608562945895740881542599509817342220725220229961605632052546680045314003733775986657442568516264236593854259981476100502808355674413878296896681806214474219941081418673392579733998424021130484112258924153495704058951861913204385719534742660662225767224756000478779744766630247328449530984201341017295534384845548499952693304471851580802702040225422281203204515359630222845203773225414490426859384032626540031182925073297044284029006441460757060295016189826593828602709213688863507571709719989193384398175865165706765053014444607103087551289955083608165562205577013004328463910629610243462299777652628229973604958960251530736589741188085791097791650590618837590460021037491240429610962740137829096093106052628346269266549260832576268884096535369786215021417933701099494641269113787440808155248604044973326419330395288670565525605710285884525627743825596639580290882892049179378916979391986687207040637234330624788704090969883344913859563410843015765612190425847325532408594376352950681144946639623359188838629679710642968537673543915552672774099054516174288627694835153741435974994648222076348517888999047108369645181226630975483894352870416932073989869385978733447433124713553431805003196131904688929803248824752942561566854504013972025496353236648910904664026528240707338115449538278326334390803364290823135559476619482815633418096734827048807008022408215477309522845885902228325875802425271448795598458386725893055149715097068896409010513450545674742566399555495664632052880522883351904843556355943359656830087923203256196051141416485069462234689148542158009380919642169165935042578890923019963115575880248328403774671208936894651056870018592950076199265492312399468860999573666184869819597371921998583137491299166335022504535913862733444314639246546731537335702463894275617658105534930364387282151234092691227333042993179127521070917551703857321237378022429452223327218244421365446168254254749081493582533267010945699876419281611909883098782634067167280028193301035912281374802889934146019476741912359531128992480013086245655486671805147354564832057350882091125850917096543931434393063508873367080231093334746017126327407176048588372534014958331878194341135448030338931699897655854894683702855813422235678186420107396412075977985094480546829538915065101454104914050679340787565109873344934393356717343442912277879605245338454525236578332114023017855455312803864007058063034152694549658419824972739553095685894930072148321844899744077777118249872663059665997667241065071011331343396868910204034176399494414181812535788637698687962134634279068738749890201964862198103216389635446041615664104148029967067818130398902486698275983574222387973535963660284889986158453878863626832145812944758298403429404507348569406579337897426779056659439717619754444315838205069065907655291452769321152030513461428774136928705106023104459283554720338378211391578782457474633010303732261406679764401250436728044441000722320776685407114619503194023471174521149133020527083458152956431117428938241742144180760917114701390375513718804160744495786038808301641232991544867225625560338905549036081409521456480403220806696972778566023677158458707072131305512308761596301083549218834382102219356531297486110875720581060312844223665942254399084068597209385642858815202698493502177390908512241252176893065960223253971540479296432524288046921296025981387767292449846033475003052854640032790271871877251448923042588052347512275120949692403125120546407237151048274338638229981210005796258411935935626302275008574457986196947397474464652236823182198271329281660241419289863273402955733636465039170006155845586309289199960751878699814711382019046547379241438200073863895930939388958801166981433136822493624807752452364296087591956503552092173559395275882352724197875861961326035184107300708927619126412055779601696569943701766906083418164722535695698730271738355042732268819748427931201611003217092566445580904094728749442503105355495957795680401523369042852802198248858816365276367709360116863936721141943169098762715760739980726803738641582239773814571615917141797391878720476030313243094221036525577760278549566733456691417309676283176888787235963663477040962746205805368878757613707568333489324607567397481293434910738862817125735577032814492877499794278723945735281306005349616309665367707411107200132647287629335910664633625569143149005213158422727465596329470408282321006144905859023532931337086182717790389294013478489366437637148862560413654843443380225209106796760581886069008006795723423666589510341510555492620108764943358060805962750300361698895824635955615014347050121587908273109528805301194218113288646337206487163739700931929991433525436065816526309772502616516398773064919461121283193194100284262672238007140258928578939237021776740458312485578045803943117931571281347707741336443135517484674366339287856669806733182297000921698052920626246644880084690322850646502855864593285588606438832005034657039737932711258057626164742667064048803989338803897117990124450737704811217497768479243881613762307532693733778317017850735282334707903224634149671196159451794893830380916916654555291797171852381086272390607318427388856990503069411875904249115615717895345570583165357151493252085733553367561832423520964204315589441223151637015787871142613626874976301705603693335882410160637958335396929521291027182511611412117552331235682732757370260624738429324957496231040260225025520479784677265598634409896455563520912273918461422055212193764904696986405334814968539223704767852416805371744904386293327793038462277740896287466236162861179640431873354362539975807441485450352384266927189135961990496243465896899161342586921780029909666937773613500623408240792801144090916124014104056158506898903461013475792825861534666818139457155944809067125333292186760358082939455655974717297318677369190168335905525338430242739183314131863863077876531716502204869170396330713349861847597959112723533654708269072216936983105100665951217876902032186436757610016984238685115782891948046869150284266901265674091470117459946300781958816598269373028903533163273795311263110379214478792724710927070953535971170818360598751859550983369389810175009277648550987149826897718520032099863817771005140181641235822442269354397534337944722781569319730653027056241635322446911789755022613398160875026795543951853794395917234439606859151540454933772633057385682468931659710735697278803343977340149681065586751179437047324081192652072428643301171278504206693718624769550525548397017249894515946580360240350831702288888000358259586204550359583512979742715416418121321044095686347304496322992075721353207729651684132346498456330899823796785367531649457676324564050105079965216116241814097433058075099865869736758963404136760737801535737893777366686948812734092754116905818056543878445868598131853513630039944488276175123815779153602817984699097318531128116072757131894219230056351163424885018286022976168463253332928976642037077837139555191916995224437999670570900399041334560531227544830488552880826253407625787802690296236036301032555428315349404198221782079338771069655945389546429168293143083850949225945781883996539035624735719259162338503679790358249684228070487726632542145514149704043949578883290639392150342438198281411700089663987082868698231308067680991539700005913603254722844683542956320312519506696395751068972405223646154132081172734488532130408826165457236134680108071614171554922592565251148822909170731099676540462824432127293426816480900520734108224984998799991391433633693598924559900423741201725136301042031068485352386773251681564540148446161260339110878892798706489603973858345994049202384242479276591506008102446216065073748060839050130305057959588695369827933988855783596687232609632668812786892770491006437558810484160409955745359616983451909464998830560899935996271080349853478756778233868117437103425542159445450558593604616310733970191331384921367553342921576189346840287304125057287343278051636630727010516087873607836014523968862473084379747005571856369838619331979063897466803983790475133044370461737329116851516177485700634586467949067274313906484836265953715531846220281701899483518500034935570915475881212185514283026826004931351124594748872592585874020606936646051188815732862427014542707932068875965621221402490213335862080561056476278697317805027968819616887665043419767798796476391389767012410859916407142963998249333435424540937934275811715987835316463639112649482577430180050560317014949734573672480048019532306702854126216863639363041374630592840979579635162987016338581463617453531334125854505512325421763402249574068588453614127500056901698150153275539781944546996446699030618104912239041611357311656704560621453388154824350159963790498126314830842427927768259719543942562384997100428287640981661124987485467728739526811408382654105639578446518752540164839630311067737079834542686156444585301370566061351012927214109972189196798215494029646626724809011508507211695330997179505536608374577331743184104391477805683896767363220628368491536211935088740786102148170482485432943122076179343584990449145461225202231536089170971517114874803537825833540789524091382980402274779778366801920213889470354502828197968127455863640337798508069503436659497315682897742660009190828669489123295586606561689988706425731289195687014720252251272019518040353618059204224235634961457186074634976510043429769502159443136265982553033217912900803817301470715587325693347773409602418854772353750057119251037892339097447816294779688170309778985329144030323211151306458443885387116301407526270398010710499355841854388163724513236493216050739010643983950063661658900995441477944114080695066480989677212803303209588613465273184961916109616634538292545157802741667597307453985662954415255607422054213471720902935468681644374914101339474161741335794369075779461863526062741500968189379116143432336408139172062196097676576026873109749171299246701387836545979001804635762264946723941418466728704808000092290955888390818602776678974361113139332744977351555487994269689815736058506135555953628530968537393882101407884711051911084879190425030762432525186495838390254584956456976301268008404722899147482959832024939487385596212894168399062073628137536312811650873180363408455363538553322239108681627073866614572245322969435161609191039509121048324806699043361853860873342067482271729637663571307848776318624534988611641661761148329460434751223541622773950032129392726425808855185129274010183621922194096277424030667632054636966252942441356873975658623154681254763849530952349701108791585710343861332197143708681630737264313969350941244633791684953759637765098224002609663948558798855926396046659985963959389815447886504864759826254902142835537941611956071730254242566281640100442580821799315754226055230067433780968061696319440601661683647294110016384448372300370679323360321930617429106241450164946202337832697002029766912102147882376289463768645370928945473002990417449013798417226121221849821266691399305105500438614812137395189212032948843559757805869444918157130909643249124354340690034323433381327084963268922623100738228950117344621232304800656106029731642711066248224470677540945824280092966170498607367734562416547196620916317622412529348628496780428478921297166575495711135862356742239523422990973187361334276742777173726439359340574214407894443917701285272041674669096620830311460650012554419185976201703708313416273696257098808550537964128583092139113393086889782531657258647660013246861218311503805048274630040755915647156291806709731752464833634304266776947430971908370395365137457662926493087559950784141813617334914167722466319517083831727996445683570733060203855267175366645851702052673399738398736442359221604334941880352455327365365206299741753274085817627187298148794708548823081980475598848392558362161374809602644597691708846573058200498238298167711711997407208098882937961896539373299811252469694794166260441049394268552410146614800923100402607694693134176294841450955938152516782051018909701549937447275536599214663515018302165818245250069008932766374035879568739490369962583786362511550127205282040207131049383974660976405753730709198349847257713201271482668739097068520276142726960396041661696845634135374677990042545240067482538170758600488230101330764807602643108504977724852498035292054418917885680578534433243849272917708146973124233494207372062804626610411112274353437361345888213740982373859834976900922864710664500596264342470343476977469546449503552444704573329316612636472127299031226152099870229751869798981738055962979078310167733597517124954476027242159652578971950885251254087087573124685620791266565356287340546999507733985281600997172705320698405380532355999251545975540620711120017256841725329280113915068345691144681693090574549272237512909486222993619678016261642835790475888157753981070574717038925512166422004314142071450801193606119991426354895323790660695480019613929122282359944598575895411632756287164110060454688903630631142895819281080387455267212005633341794223495012399874386355065325154328981081718723306197490289719446076508598811949212017848494313129410055985855507070052284478464907366999856000871593071226524107345570219394632872209612177803410611840731312963254386719597230614511493986482913293422036330164016747428622742769381612698972389469956645348745667668436744389553460624340835300449384041340782837685585374602553102368986842141735479883327677318182569036454230906276363161243267695367679851186981276364314791957526070661087443697810020524988212214200621162670927436310837136088845894990556485203830931786154061402160050162898707333280501911167691994969183391239201676498138173990278961048231490486570994172097972779876927857365143007901585110950788543476372941109647617835024601727983009775068476629547401029935370607729465216419964865126553124216345419117525635709262820363962204898831803336547225584979710759809575272040524583320265509028039286094740641135864538347126295441079913203994513791577502172885827668585487765879951600057423086050698207697173119472878192226547249605556814981642134017233970785239594338580284682651412603104525472951287622352659012643791089607989866300438913261421378336635185040203375115818861357420102988109286292974828597389275830221708190382511983736749002414248298456211901345247342107815415216515248475455303927061270949416409037349514129117193145759082009626421890910029407231058042379330090769323454955695810201624942779308932167758907521179174562322891991819413307407843163051765723605136416023978275091757329942436031746875738901523605156007513270842045027055690397207945320539396441652100819112325036528775778408934788809739297841026591606993860948848836494025734489141642529833308710964543899829821274234980333712841879220226715242923623540356132521840403105708986897719442411059490141149131594398231695122563685402172957727252768214773542273294489148287060458000828308572675728402821687528883577663517510356151971121975275332326098349545501854464639446855226987960030646974822034083721173198619227870703602216414461738100316889655590901419368447344454587044059974417873134519446356620382454597270846898077559329805642222358831444788232372736415861551558411127843469512623024326870897267989413641782270217029749604619294042971754551077234740742641934231224743986238401420122099010600485458136435303800887060809856715215185416316882862144382909275858513806030809171221719339142928202035378386779187099441427604561403753922619829617627957044883972107751528356413212878607702045651170752163779962306974102141067008204187016546572022067415385565530106526068123363758356963595536808751261348023716092194960928040625958556532619530932566168571628585685054028165139110650543862008384557954331465667092364470904651902290475759133801079676905707308300480195920613486342596026685721561862402579752702542511827631059486598969599848901801988271474193691169153496773626735435679837394919070945159759803261923651423662485587556412041182179486520540474542543930283507868409488926350666644213609369485674553148243909570594113420386844884017603784203375735651946334016589833469978246544625753673157410571163905939203832945597454557366289178155302207083494384714010107614305937995111376472010343501095941434954588758965302173987026126807331184682437536373013151109241249105390204035143896238726910846275367825866793268195858314020541891595908447832211579950565617407216729078514984720258060993927256762644827051440590051061055921980677003122094317732148511104188371599440097119873769808415564338619041244129902458799425918853066491287780957202799286509078070814337684527895339400869577963773049107038177645734079084220354316215665779709607875230484024770940897975867127854872791732864397526554358009462847482250900676468038333690964297415422995984820158329959381348678068446341860087174873951953990981487124896519753815452782398126358946126421156249628132910273866745187018858352292903673208570067191848474329163775675688538401172062473487870101336139326115387165948551670340427805614495593619128152687910426589624143022866037547132032037899354083873768855723568230322451706868519563313270667174596791175107469613598104029019851645001966258587992906622397561321690599553974804967931455706747183477716681021900976852533780873310138213356073418734676419092190598139377792339665166345040274201848652918861497513726293687666929716973074905783240523745037633915068047031692815050372502966466190956857937148722122209213718947546178011720914269624545260441378099944830097730461270935170946036203002096297912050111947179797752555875352259963523469798894819475734452037106954116287215680099801401594453399605434373518561192093393640193203379975816180401420907846144157091551945377906374576788434554289864656278907860202725913086145521698967341588511628419280248029322240345503438635651632432851358458430455585640135018247689851530215930245917670273170562836686810572978687239197207013072025640618501408958587893770593108279518236170000597720933633875076049232321149947386781959703977474095861155723297836387372267967247058347735249378589564981923739988401350524842241070196476227027866047433586449854317706224042928914833740263606500912500773833262371202291671750664671572051477185109101494605232961193815027012907310062484902132984906252689837402178078524463738193292355166452268623007150177980307771943198936442630430504348121227169448517337941973201557685583166350686784453870649102067701937508679311328862594671596964181330942375987179669626822874002552805842099202683990686262261546761254733892064258760556218100257927399454793805397878157808076967771189834025711492616374321179733164692923695744383136932645657846884547232400997149313206093438146195943689987417116379247528664989133689229275920385796466033599921957091471692169918165173430441920657371898842456493568600627234694843683415097365474040827884179407250390122616643535247497187524897664869515894908530190523930971642233435810227096233332627883938027324270144989152530897009562145726263954803956085620013532248233288041267428301847101500282027658085264518474028683468344352590861423565922860624609893644709604711997622441884220790918836049839263353952554152455918440578185510050705528644077834900855709566564389142678992223331314867145969011687913132445801661728724532162643121901783773468697991661355204554579992330468081619291778709415238955254948211745166220808538682787290637130963219126296599869478986772574612325860714374350301359344315481546747017096975015482472924758978753884133745967272855657874552516934583683004488467215075263851381444440398232539881548346440803030415764802688253936350820309069900419730044743780088701776114621504149588892831920211821046169831720115343400707525980442457331284471861323285474410465500351316342908286507865096457052347023825621171487436109754593753550604932094017351880537727878731345354623648022543813225832217541715531018715699971289824808164910821599353144918550610115205472689987644797457330192992372517568021643622125905640104350263961955514040211551282940673813008350904925957580049586563786749985056150672546248482269731846588220600489828007947348344362594076199838571069302700718274674526034128980911364539762701392921265049226714623782637508503299811192769259040503849472392211230851250533860916939061091132546581690282784117409889361698748344292752873814038029630987594542015374837507820680180148987787583975168533864488634494387195390213262177262210023746058607652419969249552826495156152730000474927033661436679553625517828281884453806094711900488358535618067957699921919165967829556522696016677761438234160148402484011564226056038883150180773446030947880753253476636348309309136231895386798314361343645622476742682899005050641663166094450306691784967486740602088494370826082205634970096732844900914133892417333454416400846510107270276849529127750839615449648481405577902362376417787751862346270542637979532627885168420629038377570808529359247168278035877231967585834320587921185627402305883403781542463632502444314673450314380893979344954886561756897341384206132260568582808922884727594106624748719801758375312821356419839235883169521628626390263570220205276120433752673179622524157795187285660016936856293688579222147184414971893642570223749698325669712176964199497420178689224504862624537262824682926566043864363816593956325888279411728308143699061612748868738386019133360716111961071893262600423292212014019137313033569353028361418821202715190719122784814540301117189356205822524921899029042919824804130418240910350238998679925304907636037335173661969233177906013973141397993259530703889921787972985817341193401556381768089260363278518577481691843627394073699355072979967971898315017314860868536581536170174403122830529502601535349157736611537473704695859781195193924306461105467446611542603711185866226269186554375731866253019374674324852942922334932190837372650905913637162758108292307539336331491993323256746733123095074361454140068924886378488443993006382289278947212018493179507493045544211817654865913825648298563345396922525563574003810221604066213069663662319212521816488008333843918847058100127024747042365302292851787422685277954280874610123264456545571761283737883974712886328135204873243183690760716187584666546500288467343348947897073175246836966798794695231815129270576074171494708828658103574133418192277346429084238627126854742224506316400902335978733324473501398506217989287121441637040298367299513534195208224644711924922659191048477243312578948668123493018136951369293087419809607661383518752296954902405202352318496382183324178601017752931013644399707990872213632903961158141837697591953533145543211185594849260316628946817913495569794571020545975185486976033819214500142125267204859031841898720232974769054309638902146085326029396626421109786085945327061440471582746439186478520494456904572637171375385805578252960511458044638441357357524407675192837382636779965048601958453550940094980038325753150463533136348595561095789653686712479634551084396556166365638137000759065373665070432795332796936783882887820515146836665756920664744040397307142287447395569019502480685711156853047315721572783564376930544454670607133107301965217458065876426363024876635742219756367941069199820011189428828255897977069664833212788683593740277900879005472635769940978740554765136446393088016033963612357818013615418169987301342389662985333014534164568028139074656133697095867180933826025571476365846457584961741494368016417201693367853951464361103003019053540369562902696566255696584930186345648097735483635386481312872966158658097568620545674683076677040877408162744745412668090825435251023700511352169393079930921328426413295911507312108201076146800931998977413328578315238945184787698033046594916613863994021709153076247952805251910396544052106617867220517550750181011769093435704135098123047120818684971410298293183209945074043001727197580736361322265843237543319815802844092808077170586705761615561236629208774668850005513516827086516878467183766260777794539619393136139131518344116630103591834790735447986710645531012328433839255542988687466186063519287666981918465574603797277272803853939959460459303038687409847444680402959461159324573588658254867769545969638206562030884206850975373348804363908893031727420390262974939325451772666423985233459318336031872251030894793322008525155117341532394744339794741874576303567131735265340164624292293800856200289596997673805147080596663999446381122637427539379327242673834064642144380331327373987311213250171389326745142901044308773783555877034645786774302275228558155254792905819838725967854122378860965303278443049307036387796539364738650422894484945312708069425188752352240403347582291066505895159810159502382066803748306620442592321659889949652975809403118746720329689166431796247057802218712864202228770180514838524413290799930281249786263481373130817811149144230518900488043046586248560366809073387658496018668727590871238322934601770751640859543177075750148183744349342293152165458899875349454076611645770777494849366040550357298377845655376820019940774221545477662769957032928446549630935477558036245946237839983065435796869738446784297212093806230761131257356297187777362283310064404847907689602035836273541064682850297158419177903410032976982979941901655112061439915217829589622178604114533173695608712046301793236315185652559901885297920178497920048141938042309538518398262369016650730040897116889057632878788031059600313298238093799532557624006532970429704948040437273374129803019133963132413517499348028523097947520272709186351383443555166818750066015579666025965731296036917735381280571229522173540931794211250615613959477874342381300756569618223922602588642072203638705283475618408645403319873274414795899920566637024480315484660041020503629903316224519802752431382885976900937859889276322697376321163452541275855231727449012299136111415751325950585851681990844593521338439510922592942267734968129133619300622006029705573609995659289414906335919750655115120903966331766146045888613784967718716260853379859352539094507634586363703771628776123862725954062379855204576293376738426502063030341685722800292643058541230609012813080083073206275897194059182593229861119352557715010912313578046482302549255572808589021121572755909709387292599215763767650480802315923201437639276885179869225325857487887902299591931458908173710847011530082861324771360575801102144044432368435276868148301065136563916579084911025951624698535352595594748713866644986509859747779711972041526575123944803667703981902696061089527323700529990642224319531225087933779554135850689487687068846406677912608798051189231255126670938603920364442788500106890082025786480799131124788465281851607997666877232618697264077236263972661941849730781868495806030574139291172071761932864985801044649367150419199094600432895595007933600678880369600377896340006890082396828355391993467751948139498235033475199355492307038140926797980064532091367089596424721575394350452054490015788970034839593223378399962792734741135771758194494196547790157928797629422547424762567604500669776900391951638699602687214549035142828638787614763112794808562390197905016902262900405533082900634237928302856909401914834918007014045336534699425150389526933582004949443566358778732815379452136547915437156876788119429916431041829790884497979669971358267378332291552031471964226979989313702891691285996416120662712065957431812130664328509769903696244905330841265631137744138595304953035308685479255730238846078286749372313893529064449831867948900139885865015078724168744382577262597334451463364119091080838205816926352709378421759074974438122355520633329438005314696116411473766063057666361138327747202626668876532019374455929016714501764783049119616093956750771483649354342406401515828319829530918293675897263387279585525784252177729778448305534749743747139155656591231753950715524199092150859956305584800831921598314481600703822208617415593475230798243529339988453998825426247122116546821827497305603832901302584670848083240209521696521155821706542992178887735893660452264694215561243725088311439933957975122307281215827947525647235788547054139821417228674032177714263602670678053837775356160954955249640164293972913130802022635421415550985563264490498658521305194470798376920264917269388098298724355275726336209992164576456119485672208850847265477464435055246029752889369185338598725890027918911944498092269184134072586672443747585662959186713185774253649629795539980123882532508227297250811994056780397621179988554150392793506304544012021444479890470738773003152667607875616214857274456412263307422609241389394702090606468199185997692015685560043898563345384535976084317601964210490873043689856516436037478685233515004670116132718328388746987642305365500841133927860986137622219161335704758849796533254502481460577103583102718169473783555938360913566796224873536254249927771894761536538707736579641570826199263748621768550352236944238268509937974620305890608895771478006621958490162693576267840756678123135727985921251294615467538430136207603854333230675171555142993247496000657381561931518858660423947183661068948080321066175999467104204639411783602774031975600496568957325049031058363319225735945001272348143975693134447421608584887620166895663605622105180214165230222133255616288876069433194026658995514533254588453391791713199883698664783552747158975274615007172609027709497239271664759876717249193943802584569857440579000210385760133827157289669077288971704125037644726925707490792872543551637057134715559426560886971454824907165039039968802769540398433086925334771252519511907295531897720596767251230668059925253606515323683638443023025225604717231725097746201034396894331077456337503609456454525792539541596203079749874230346952302226136584189787733149607688942758145258589253419540199858544974806958843556119667193254266198476374679371613710359093783243378257872920614103040001523354159026262727674905605665043123673882609930744747595148189323723274405899788346991587463340983932720911398372543336292847401864211603366216353528960787191058122687602007415997986941158546675986513069575950080544941556867750468717761902807420502494316850265931775393591511601410279553066435167506892094317607993314263025572537013353873419206413168214486257604101413217036899132203092107168871854556927624767111264926502826486797629665110586980921406480013416052870383473498854666489049287443205153074275546914812508900529971806383238853125717282966977765861207868825983132124613727445108647062045782286597872873464433614694543159064036269925584582885335512181522674050011652835701106664676498154791100426264114173612996046402313214579503326443713326372461086447123847346796295887735662414399823295236221765529625996173255892439623062776625656712570916365592292247594033289416199883342401251018723351167025242655081289247696969254897311547743885528531786699596776399708719632062404936525491863775009541898128553727542773131448317839976704675150984321844777041263706398645251425031187197207685623369016480161715509297437080648131787443648613526570700049427660519052425134820835368298430018506538005982831314877927839342238217990456550688734634441690197551609908253024740517941452956418588852856884738791211890879667901090282926231472958403889678448577304993261910788437915666708836836440784543635665373992035138352480864995330025141117766442667663102544148371007768912936592130629347122860672142882832534677170364954267197131164895370278173086929308760467056062619738187839996920851418042228650824810252230961928886506031565935582493787815027607573995316417136450778505426270478504783990348757699065795349133958213193843519811735639209273702168025219252716189024344805304106927092029539563527035140853732208169987021768011268465069433784915397635409604105511626318543065302973626364472440342615376967389571093709397590513217552733482552289493621075764636439561126792430217826306095144246852554267251695878592275427512939444287648664350892303247056092520734491754101613692197186276902001659395397347158130390276257686393614475796001092714264188945647525220165263386609700731967126503750324790534193158553636469666885596921188692394757824484643121963097368077581897321390189106698046848319201173733601679533337151799099490831105696680052145323791557815278555906183775632677853078022968504804979429304979444617720381188036009654340960627380569697004604923362448509882577031256236658679585869005192867388711241464917709305953086434515394373212150632780091783620212071020002923287459055993674130028492781355818916999475182145280746696497471738475570138657695565414312074396989235346321689643718655754321196167756672562577476479571837192869498841706299463600203466920429199226177122467281160424930398416677468573515938183536441573756389948809069320569410939678700491963564827937046638935948530606847757373315437543254975545923365920839242209007669125986924014478347216019642007291969395116521337523912153153927000582142518845661211181073264950497431641820740765533668181725859282266561823970377679798854884313397397415461075092411308772854040776739691678661722885359211865905080286937610915990676106879445286900813692496619042908794005918506341028552996783446696131877583461651116025212623237542660984686649690905836779925928027626936812740166437549329859687874931322453793284052667496314504473775285976022717303304204531125511600449049049814043084228305178870756623109618746512752169016066718981442213453578607885931806766786263552328285308903598700799339860879153135360952351212127309932987112571831691946126784863418362611555492557334845692029267018750700969674654836645692781745135258358768819734311055468765544708181847203288157766985699610672262463711008406470868085011455935275285939307991264132089640356387494256920898477002743379359437406758372205572747507250794749062666834035338750435289122762659116386825350048033010604733143318907141979576641024444836512492846488581049799056771332633402304618268167314364403143441231174862701986081566206962013521771009431015056830673685139268322592995576640004828133423226798763545887445325094258791427042334192467767979248651471938872780106490555754712220704096628357284647832188599122744560616681990336096216287017898489746713915854334580817807109656166407465073593823897443994175275612979979564767161718838625733296539359191996127499009233090186288403436259057286889975316927276716278359803951979900773818475987424227719599103742659042836195516163322595980881607767003104826482797291450428147404793455438890882411902117957029065882998367199689197347012008555954560308079263539068114867039874910998840482328600997344206525868627148252263159664339941221181205072241080761793199011391281428697531738579234974198556581112478586495257342376944426932696029794888653634566933888919973402403414108104018412014132897027067046337676050101404233362699397305810173524130009877054123889275902630284707182970983702052155116277145390875089891475488677029076269847806421342020091639841201253831684919286598805114254589955874744973061554239014082554707891589576651237910978365843136814111691664630670068106308251209142918065278693487728154584920452846741196285068601940432015150237654209823279190326908940993166894002853978011946360611699687645561028241849325770499423136094442528356245794602568883741782335983566642190279743847872015146401149902651866446022265461307685303905591133867743207624204054111456896917727866332823008672397021979884943421766710369305930370947512689263706656679327467519253841711626942445649548664493436140119861548502372037024187363269444311707889386716312618361604788850600932958809033328145916722430928698839047344166777399512130462972604682099577481537811208695162170726823946359322152226957284350804211091538930122682974797122951053647761655250257655958825612113708119192376247631851272190758982383364815378781297588539695919341966946569463993307097828318755687103508907905867180023168909307305724322218852074472078543445877502668191926828203162712492880296371338701098873523324280897610024842096678060151767166364624107435176304591179596657589465081498012899296113894071778727696169508830114793428465182840126611041117872868099436044999552065508329636107573373584434587684520128172105996088137733805301762028201628004832055471942142085655123171220679308233652676899266670885853255477254754719106923359710485656722842640984912008152692008777684020209910855707272588475431141766003269892292340199738538030002894951636609674631773034106335611056677904758988522577160983348584550526604045671863281257466374671382604502052943988804141783031171620036984199193924846614876906484867291255473680482851024738621033315009000671940674451904232740756230387715926982256408388106159636712929744651075012592869775768505382590378212263168567179013562764422716890589484783709668136463428555737131525977042070084769695828200366593686285145439087762562239042897549634646686006867597714521121746444328116903173413905832474584126478464330074023094955067314036040926363240246156675098978341988528051927473457689390247723872012569868001642385017595861403672145392965880145039062952799743303865840003768356198513114309368307517554537013724938067100623526707820912085899732815934337299232609577036698866629000493667925541111184287413644373833994669040556047551884290881793159596312112416972568169797102846667189377973585258185746452537464633081899923918500772097095081436565239150209901789266753762365658971945681403791735704879566454663989074689958617317016938817666708822868399758778726169335323740432036421859056038060610409374015416509512130927463773261031416972266535628917684796446734688138791997649356821213073110639552825225453318412382625091476919374663225975996571327233928042189103875161822669486212266361463003696734022989332372215868138949428285560252915703269651066860724666609194704480264390895054156517899030052389902172264548450711635641549617686827532800259116388032694128802570374359470479240978360560042298329525352490368441180079306270335231751503083020547719146537465493692058430169769509740302953437576594731687144623275093130597052151323121935413424580578672760049546581305067975417056324490455690254675520873018839487321676204919825339210330941190133930644173096807793543712105006700252762507265291774446308354907221684655474000105307653782709492640524738609074327899489998554971878942277133985249321962114038863501592532912199907834755280261928837776868120039614886798052328711737114982623950209578090477789214236905871003812379460504034070081771202127452614387300138504645669226315660642768841761287387588163003747524186402064223682611912125306224653166585030010783604693055200974371308860938769183736350541063128289316376011176244880736193547916715925458950776135162178346832108780956287482023738855183959992772406894458042079610672068616914144270845631198281365397579584553059587040231238368441679176059731721577662845113372094744062753758265126081651439986168879719232998900989756823054438668065764256482900270470569843856842994677568884054597829913239880379655165042862599054048112697757239124799241034327229397465990800412636083451627710842051597513266122529625771657912307881366558635289477321264767321046641637922377039318779980380618845401899411548838226073777183710884727457300928457941536655824141937571926516823395201797524929521210534295907016631261775795007812538909898320129083659845307402446669221133352864580368400299845984514938148883381498122529600705867949965252283257698266333325980931565055502231010282049899354375047040420545807745109007480144286608574567900978542192395931535061705682257013530630029299460679698820383008961929501481262618697233849427172263824061296705013322666025371070926368054998756321257239144228572970450271066012118662018183011206229796801882671641085151686721870227863596171194349034575220670892498827871742345480248046168831716974420301761367158165240793766367277693339901849737095322154225821652178212523933990394068840107404135660083360209138635710263140808376818617008819096447133487720966826871693837809153054487884156145934806901269935283444975187225965876289716993699019761434060987545213485040888459615525556400092389328984252327295223848247451226214397287372806698130318109526449851139883352761933555560833252646295346655026414795012550879263549521797924978662582505979177426868395729812381131628766485345764805149132314968425553650108017444476442604674118535948114342208589541952739201142358414514046250043121046376792485197550027556251042540163722535595687415738822380604999246376709248606844660928877288532593845478298179605999779523073326867724009907120710496015066296029973709138619164080349640756726719949730536828101921167453981386475155309484116817047870841046919980857151751614666915662609523093281304808174923344079592065062661444414130777453438498275841816244340675249372430373964950104926375058731417248009941549397519837046102247269862620413533801061988080433098712800493033601366497332567285059643343718906527557120014107476532430563822928908469429382154806996947271645214360200863158262877549628702977110750113391556354432417574757796309438308155414177427608337672420785003288359415859811126821690655351225733074784566711027822582680220478724725799794400406813176027300215576967210020453914049055900231080014818222363680632126217544893148096794371577704087744514010756297423983092826427169362126028430118989972771419410755069708704035105357252778068498391942051974213623397928086255180614508212040411994480535621285525156101102011148398001059284022589844852520912755315673752887309740185547238720735349916264862657292406312112169505638659392607601469447755105200517872851414205924944856075600478334109279037527376839843702325164693991614960827712228790712481217203099780484619803192449732700180006925074580682254597386485873967746658473537758882664479632084645350863713287517739969019045822271379554464727569202651739295253230937114102118610952599112628462008472827658190109195966764995745389025993320538522867481329654432863640707883714626418669207954356553948352792486075428846736967948838548167120486920463023742285959872077191622946874279501228130576912247313520475570054631347956954307727495228806504318076492599429512698325374741034442300371370287600942869781351501302002459297945401641674392662377037210343169900255076848089829848004424287287574641752270767355698685553910548450083712094833497535750577311324748957651435465254497385631949161844766671948349689893229833568421307393600371774543231294806534754532059830826546400456154358161121213276995255530510959457260453773903419300348879460033348854239042283395237690961135443702876233942725954400405794909053589003618660617119656223303001193208661880371724807016947434701310520070905916789036457981145857060530701967900974584370570421609497337622393179628434409711022407530385517672318415293223569687301803451274362310438488300152519704822190741281656614169401065959484330408616752463111309010454297548897363348780123742481007557557125600306534369572969045021303277269181149558793225552997824542788095822632923268151320609698560491797135866691183001314898876946646548259473595146947336075945203817826664918733324597415418842767580078385365324994304897777985579900155594750272286438996275118450054616963568952424266280950984812849972219553343018784017580510777397821545764976749174892696199371820963382220658217977548676364073139991731461640157488191762350901286880797773150282751114548735004346636465848441888246110704108864901568195380783185518638039325026907442330772545406507229621292991348774532432197995289906139974996207807636926590357257013213627515236835121842848419448868133300352529436183136737920921590996290176302440139648749084190274009918041044352742993168039417458403513158679825154936030071202934797049025100701023340929185285743547118628757463614133629917120950445376158223142420953938662260457087573481735445327145358766848930274019282778424777615367526551437543967053304067908491193993042756617918798733394062726921889612646806070155317849196289262198792144770926115491765266772328466260975902693671628827854461124637591040094895989411407585732022956882435255558476878041809588392907352347098907916722085224177429443350583810443723385307178130031865115867060740027308467538877044601305236112217937074891173068987141348375941809394666396960653229601802584173793289813897049114493803125886046763973272766065352355459718109691848327726603719243828071335240256341472646229897558728038151269771286734665582850436620572459091109976012626145464846067765901864129850211378490705359987921491787628782662948447384111991487149801713058509387278334507727924628934951045571303056961086844415264519480613932869683292284987799098375844366170816946146359844626935835064918768201392217404594908207218161766132270072618786870253210198921016018375188025685591439108872831227446056287681398402584084259409922369599547215650304348552064310907534682516192176992645927088135511226522511791242402987047163182294243259427466126189184905463085029089974106358544848332591377681864600250295271975259571228941792892278044754958727696894288406035635661672130629429460877871775768214113493139809372755288536893792995573092781134712097112681708932070915848728880480822927525813775495395590770940795838633033726860799508037389781702256430244788837980742918403978112972246369064366324322080617705704597300054458514458925798830255747700644523036597694924548368210522265639748649258279925778752846460210561804222322364112954606731508175767130270135011595934418067510552951382586119225804251931167555132861694443725664884310778251382188453473867391144415848308238838316106887064007105593529134847517068729040204904145312156991347115060490234484628670291148543132643491153274213863463314644990482930050986313137808683720512717353018052427875563331913361673962752951792309732462580867882942247305943063261904844169559596163690260201697182583072313841395953618334347328947226295450748438801064167314252902438766651508774144340645270935445701278081952027344351018804105092560263459396124700556425380683462596164278075435658947424051916497685868901741560910195551702706432689883903112471116192490488489083594149006190971703399684847024158023019351183120277331027611999837344819854027572698593620160510337911660126148174999900314071164675076558495143448598142110998855393469401880062219959757563668055691389052198541901397111637505350221820306580658732856723336381479277687643498492398655006628307656964208570993247781907135856194326336066730137393938368555874069114798704178676828389820085677315958639913202277150231274350474366292706332259371727436555611496035504570124669594751728199526287256713618129241502533738421107078666189858124138440509341283785233654260373564273946805480198936929734672342201637072995676088511626636754613762990625206073410084469895454135770179650809005219066227949375979927282717399361367024792658576309630000670457707413741584302634790850869356417629260709729564777653686237590611699941117847586458257080266783896572828349431360253428787983837253321833990526317198035671305910205875800115613752394078606437236572163310983898788884847253503074527629621985602688943567862310019468345665452630251499388761592484785618694541603833946665238522299038223609684342652234384352270926446532627554614940282516422595750389436274464042586258144432958817535499998662410886187461476977467986821152209786465841713287789652426302199274318878103707583482259357732610831496000732930692712753935998162434683046154979556231672870886754564644360880690819167671476926678794458117843785649632915728284793008552105418691439149554759682598431437542131227785403919984160753072934724399624380180589891550513433917704680345513579840892626166397868271622254834858902917972649561445658097584544786538325815566559015709650786450495913521117319944907626653377239483025210340811195220259925504443178323028677514427819395956787268861024864735916497106181076186578747389104405221291106122090219670794593107649324791827354795648765642059073036480154732609755259349746184677068707700743589243681872281706083414340070578957450187620145774985866142941383977655899652073353342248379254804145510593398504573203406312782762899039702134639257427498858317488905007118674883487811801776917107857235404210649663103626383742480245138439630056530077135754773362903902756710313939120429444250229305763521229867586919452044318849610525480172334580111690937875729563033226246407573030796717924721180522241433824369054394937429198881079115319568599366025141145903105063981452766069476631354706521440432914122432661935966513167451162926238878647694475597614298838475164816677728977284394040893629991436239935970182616286154538828463248373020385502148572515807106017692097215833670015881342640106878633407569212357063909451206821262999703686861446328000394955121938939473097554224730727760303601320056854983351056882703302416843844366234238120987267962493926863127767137793125563663647118935112493783338747580271929872210462944387662948134032802275950435369298919726174126000378786476599675962880260491127112761141437850962842372729312301580442150310734642651465912754844329656351440851871792855026047852207986037122030113012347421130231412242999396300430791853355090038898990714587466795459537727699849609074053799015888142448800169545080775665759563352515392774943851751758118885773382466154958801310424706681862354664396614076056481789757692834472150746101751721976400365947673181552716459810824071627996977930768914225531458701879047731171511653123965444276713678045427141388343359563998366350122811835288162593228012741739070492155121953337007600766534785747949135340621492991767748758509915131778096385749596875634486126808415690988345214250372478684254179464115311268656352887234447809371631852091266947467372763463060297975970962144116746965178621576475884510753042495515586597572035207944939984457453430321551520670172377663007751592118292396888116255501244831164343827235556672832208887571820658449257570355941959426490077316442065860891901438695234217928545825338700184827158037573852648694207669403623563165364979846768819227253199411602516700778500522314346157612932435465940877371529730870725532465368889683049184830920573610330398762970596849529919945730058744858545339728306438288736892458211026048992136372479346767832870925128652216638830477644783859444626827604516296969773097280630112782746795502431250296170941974519001205058398945683702133412848050641265186927560850085916740575841463650591874453205619864743035268028369900084030395057366504476179723317190331992391832731331472819828534387124388949234886263424518389020187763686545484930383177768745408831498367999479741338255459562565184987815928361547555858852436563705306649568838901952215217390953364802808228843253797044763812946576230477248110771999132465498327663630127530684172144354506704093098655855531191700174604785396391397976107861526410408242588147440968768725321060662552488055535810753445900130620209196178780603999518411089186481294437235714651155129133295646054672561374373151771190311041775617807930447044948934125066278255381443276565613917500169154473950454092918572494370112060246463496359348205490857588476854173247615966548854809633610163920547982813314155754073186514074103819214264374197921904352897719002363943964464289274592338460966621598385639063590844110030266229764158994476077587674481809051535937518349453838939945137722237809237912059520636004523909430635441624961698732432122615278581041221047648447662556526705790016961963658696103062498611233500808510335605090652403851398071538125687638037369165780437070203988747408219108205822882920492372931856253294971354853395670967199748083197086641330917688816854438056308711469911597304032039645448152793391230993055126901977298108043260207098862317345153707388038948246425746820918201380033338680138991910276095831317296171650223378883993493962303004479300272482396173548705217303949220887100113344870266045655507254487353179489008785987254949420301444709275594727289659384224781834072860788988018771596318452079907914702156514423761277280630682356883264691648704124348633060684078734353121506591982324318132180258005414889565357961069818406264447470245535957805296899559657238417006583722719316682096668232357543267106703710523383667233191355365970594520009571701481466144419677470277736112496697492841106830049126892271146581240330661484708129842578589853778694017323957464319041131350726990436069811568333501821090458425177539863189088817457859343326220571848292536451776124717599803843740158639567550963807340622486558242917697827659738985179840841113830191396631398908265198361261320465539913634593739770083395649630711063129651986449522770383782613671753536622239823339549633108010673496456850825910034586299767095263684725196050217197152840780497332839605215211394025808215781703620020783312248727359384331772492215026146809083466780856298780897186470607120992824041530642582544883435368839537470038775211002691462782279394051210726466607576170768733561538561520285549291461646990206978513240589757184843674340666199773923218654284986844897544404395216483385485084656606609305857621922236467499680467188032382122583572390561087695306284003958183369516223144927504227793083231476944316880212675922723074084301121177660919555550959336878164583678779402420433251238107306609998777400603271462786272526184792982508022371734818900816540466812632415244645419527001505153112255881664795607369221312247658475577185199367550454731843659086588942959291989099016329010990455116945952341583201151594773808365872223220411936677554897046101735586071721022746998073356899560194243735911215216550011926977602770660407179760082283654492256725297064487398231307769336999715668490847818289300365368626547617310717039953556558119134897873161724410333637595139791959596048315774698773245605574628322140892775338231099340771637917014560488869524779202944569925147960471069599834358889104643635182620067397467868298310397145103301120997321945416268444309831821149327721621835249008013702219703057181246266830137984119991256784875168560487638130101301537532137037426204404683329059762755674456826242767940321947095820309018586955603428485451061487992005785058417420817010771716819756091499526690676336864182270883576975935488857433644916704229324307881573550091994817553321478749308926706823630033068444115501693861995393829583449725932803946958214424237188810004392129722080862775357311663435743417786728915230605471413426201492116469271867547148996088708660698028893007035280491026884416407026126286659230909561341898436566261826111626306242020720465215586044447823767062719663918340576107210096478317307409751791686661099070146585373352307510069673896893456570370678363210418741994614906641536521538972921378437442097078748094822674150321837079791911038883249652280798908375812633673029765364510450145129236917006120975628712362727165130227240499351601348383134737699497631278651434965519035284851025331890320942778488179349730017671026764390205360459130129578107495499347410517775520315346185063369952801164963880843171574111475795645628457048200906389957677998335256427122338814663346813987987958659267847715853900931054502682197458501012841432708708326017910557297841454585071000343333188674273650828298852567401540486168765249799002129389425402858467058951513284976917219624786857029659124094954451253782900690458990214934020985158688341354769221616368424065004994105184295803931010400145776417426428797959704813292398370020569871637417872809756416677828014461007295711133676279459217432356088102423334294435027700746128554558273541014788813462415718575401883592788784720985998443116704796945571071955631539431972774240581473889282340385196893623721406971654311176388528848872721890319976327819097832239569965542992735171425948518041895230877250479562380786403067969002239780492787118946044461960859369702643563416610614514603834279995443953842046824493402314921646972363671119948618519215302958237482690069469095762368920638751071699799660208657465121869779873614704915287406475927751568703321092834814974698100442872442858673139796250668968773673172854889293097374537307061347045472139302128550828658356241381859982438044478612527347381530633941033878172264687311433795317215973889251909924168249430844455023662069423670537671968071874905423810071504813568060509977562032002475108404956897959466717905315409204945935288375912519958549374500405305636187202076379497712120019536630620715255110549961693623772939828196164030444315504539598522372493479848089157760858938380371878743786770461897257929082171210186129862618801916062169442421435840758081819576349538610719074479675007168835064581375871862446584160311341875116102787758765900727616923331051353271670091892018160658136225193736032880991228960559490631545724729522323711207871329773649480743234475294986699525066289399616077013500448173199014949189343186895149611793314505477610528779396973295084131513714354525259069758633010759999479217194900184714881472164815852615161514684694654122948362572758700034097434594034793112278198778942169032684128591806671819142769582812565538873767645223433003605404033976267705321460445589097394147044335683461843504276320659206013041600980857206459282545828179062442589028763625145603458086654718278741794984808215479852524610423707085607729236018599814044790021915362656969139140755756142034730925036042720505614676972275790716160598152596450840735421392974945576045697086196325775354698384467571442753012419076690063078751038604865719233519558983275249539913340299267866932435326943172236699331333380948897151507573927961434072274604912046619092391812534843108704527729374578244696348439626573855434898324285964931060185648504314804734693605786173949176874306728386825370713329449163769968140215425584944890266370732152083956497963843277229013701012399979698289859519671584290814036104682391277837985702959455582320447582440473322780572455604351893770952002601953181641028163379215294038631032081985706735767524955779052656812744545046855956259539595644437660386615773861980910736460030694222909407395739566329199809443184055531215398310606313165002208879440034679899175522639726374015289927623673606993272649191688478056077331247478461915566258544458483801451524311542303935828542834610715081271781330108260847826277707639390685612640981537036391779830299124238434802459079489519293469223964783860345858198968143814933343040163343554491712650438080181334035883180966448211514347816093605005721866484611584641662786940909263232158438556382084438927737709289361360313846472996105466125766811922684762034698399795799144881762381940588506296946809722415220302021883146703036174305832805918286275779239284992822884636652278362614559575566677066167328994871533194813444208228399804611425123045196342633334655495610967833717191380140349112421627699387597756925591560534746724812239673953361053867415511837516992022200967700983048711859471975990194410857690451216511731164698869538022158206664235365322779726873046406676327194743166574005863130900518885076715261827456141041961308557741558010133479164301629111823062600048630568898358727099024978689981247135003792373233371155389232967258555812861715246342664181805401735354553812148288751970894090348210353143082256786430945978532270510563340727451600679100315141474737869221435529877982300752684056136097366721689425512302566345230628787843460005005123774528562423748063151135513662946872341465420586463878010117923223584412723031200845309183995963041855546088638256279604256017514960754168090273521696534074234649072554169852697135673950529610046472099955181635812861208832578903258683577995612272759409268508577526432238156378807819972426248553462315064274064920090262925365015679132971771771285106735978333311273773692798286655858659181667103069122068712318936523806143733108367004984048795524357723009683241307643816579685522769532568044386438012680829140560767170052945714131216284212994571027693804012395347632863386062125184535176511455163575966292580945562345869570435592848890932295711998215262277341900953733910196223198660771303693377338427172872936666490201292153908024279694224821078967395410301401905310965474392637740717007932530574258392977723658894917917743202496046984638446802207420586519544529140874275928217193012843221289786868571359689088045082865595290227530060821287098234070363212919079513839355918774316189828612236154482782434634994639833322850777658520632541848468162651275933013121835769481609782422095089208330308485319071143485356938599607682826375614115307953833044842121395782386240927809781387121748167756403368987306845691327631723945665835627037278222602067196121982338008823617707443655095439805654398060674715321186106914943502788757679068919648664444747718396802706553048516619300007731933879860361226278359930780797588803581552933777628477829884114237908787311919277321663428585146898601681641219309418273694175693982504559940572482334891849472020078114174204599425271356851514640803931669477290813533277812265625005496177055605124015537114333071623858579462290430818012187046040889742777959209525767948201434654762610860937585413973391302135856228067031543270089111846970783142990695298204873324048047024716933584190750324704473046062842813868694119849135047737945309215863609125596672347164401026586329467041548731489500951891343207934053970528688028135050392248051364866563867884682419482762035908237232549791438009339308069882451418468263253930206518074708913176732604007216424862615062767230846732909415677349759688301730635946045747067890825207032811765517742694681482804530928617283685780445869382781304939921547919087250507656191621433941193621162723306100891973088217429846549902087053922346076306774331329082660888859216304397598768881971156182659764488267187588276092516976889320360579387497144918742360291621560757088202229304032127534326892654771189058014374184767571598750647089123992359648216944547752328454795602048599355309273034829156321823620636902540641396712221395889659187624961335627239809049499618157967105059032282142798089218002174996386099390012421510111459180372035493115907338274868503717720275046691060568412105596805362513770482398591462349033401530464098405190783645558166651481436233357002374996859880608745859265145412606506351415975048491038746565313701614207051047247075801735101874407941296166322340280036314806867167505337695677363746008609876359022740676952996861521411982574564025990701744577718942531858292111624249803195068368900750459366041586841104530889127792031312418749485497780831663551852018908942957265786339967697303665189178224858659681604795929322636207738112797433936426330468521283576850536543919715440692288361704580493460091234750823493145447120133380418292540191731424585635335705371595661186603493568055354757236541357075633813007407683076619728677500914327869455367950830954563387610195784743072295307673507219061739330946070846723044477746244306112164380160718735543371756368046677398863901886676891721173962168786669142237386278746595982317672847901110976046510672446230493503879323781111026404158757273103734767617401564759022252120951980349160009034606650365028627102372360092464942580223211867880081672281502575576100364866172992657975770537921653022712315553370503056127364003526893350465187311082336249013396507151300659029537692306432516653274168857847243018285027806857398822679600041580977097946226573436109794261894785058923571470566975353975766366915862607371256026589131643406305659261606710249523330487969746098852338638322731979478448300964893146771057409030164894698597559345361526026947108519700937454300855715696021456866646459622887768016925669504128085406253996433623312589929974113756159760830052275237580324547158499112174033394865635663757584207677216815961610798636297555079090276416688783499532577829101487596054527694345825903862680121425746846071270145432340699680984090733766989919526451921731810720878125236508788951523115691777578610954710016962224567403064767661519427452746466744190215245880559796482439524369718762625938609874950969218355339448677787819746013323174578033701496865631351300145527252696282644927613658641574143272307038937005549475077614116212133331067358809076428721626287782208103275339231054030693528615536048832321520479504920491453303729076958309127271931594672895705662769304263090801366545078053432872528148963801809198739663303776734358201914308764025494964184912792385622847747218680633199143041585214753928921779003751104103589752788425590670415665293933490914335791194818994485555551116830419092811588323425511592002633184898937534494216345809386351279698470135095869433393213000235465998937779902780381772156798053558974739732589856742543142346776364354157456101192736906403320109006571891402994857117257109982486392818570392999483234691043435010601552088807158187694117900564519615848082439563791762235615018022873499800090229502400674022717544647095303573699952203488362464111819255360224887689520676577996445571556407022758104187961267509612958536646465970546143191492944945410223254633975714077635945933321427827196790753637212389338644826169188199754028103879463464419424410437040388232952728156631619767908036426505937470081585452382522425947127977001674634178228559660481716162933995281282291818470091217375237552729250785373616137937912976536790489327273834661034634672147695569468796520259637167050692932054403450932992365663666516336214560231564649842652234201683752937380700739267044476269711852948328990879625045667369253645774019722805072568745692733237534325560758467496649370003675522663865636987915254316117416105248889829329924951404925133436732703065791940418046919991781790311507480175927677621475924789573106464018924285954840014455484873198279535013669675133042539537861261476580355798626096942678409405012919030747522382472699237123376613180014759047441643850113003272389594429915549470314623251750381955689639917211805458571925526485668566190265703396507855522454918906431955864288217761459130995428895914002339823601023028257788820599847755874916921607559162344424039093182846076695574446919083656649431441171043816560749536797578812951556923864773977140434380096067554157139538575286368606793830707974882089245845602055726827758743158984534692696990689901127675808535750618221295269323165847167892421118441851892206378332689607638918876212757507045742661798293229188355533342244555426080630622055977370580787031447533502092265178756729309645401859414103354506169294982060384190215353154741930405649668239695481010453002321141777896152916516302346093917673853703334137594952460635944491194106045614659466242667413469697625805054710421250965605009267776367027820200044882439228832182533732415617396071607161900023230723632549603050941174112869907286947963127368795037361163221978488594079048851789384701134164752522223641681515767285035455229199191760764995916455933476575563098893008021257457768121131332605386117653382486148248876814902854061914572192599337196035037958148170388212869281452174660803735954822218751340958815566248389415412504021390512596937642597742726618169383500955291937946786762693614787094378314222249121935488411331292598983564928562416184666024913173525267785762797026986059317133646315694364410501432653945500239911896761350476839046665461043753515891797601114402429769224554206866769500753894870899652851694996769192554669872417142978250652241617398418513222852892863364371474448818015268012961064924930469315412300561002813166145663368464347889944568313009353524858964176008632126256453855189807578398901578830284454039339934737034835699038504808555715757064194519665381472313465970322495657715389878128145612106535008132564935846502770422784252959311447174480865626675068221962884484718132311776234289463480586029757026031333966294989679352440475517905640971731975777442607205303039153972489194072088723443728625472806145540760050263362170646206879422323534045752409440703140544680663871046610062090110709899110033122399969148609038336313580204858023656035242956937938020148131569472854898143824250468418333262255308222923683552220906791400626666442134129266057677251766965022889056832049847646065214721733787961643504386073222109740290849575200246806265606220019264673596130189037940271591374010763199937984248056331096926381135197122819612560410605084439862151194929748020654257607366660001923942113217788127754201872045310574680903601129220079011813992699997982460342997797693702305541009491999267996904724385985279650269976664053787580076817269293663874341996447659054680281972374774767272063939729584233027381071154041566954702609937946501635339535552546365052718040032678739671384418474069033251801724825232965730463587843523281285909027131924987487460542173245544390497045901676225833316045376991308254749231254706281503442683763287780497618777861460694501175668011173650821234218952158856636433736008441152017027881729396504326042952163537685278504148102019710635407493445834498292110139679323527817929038150946131387830531389762346652459521223787670675869778571186511376746644526758752994812738795622731122837177549604783384812352891837085786002926492105170054541435439911597837391733222641484815386207063127506128811765492611098028860103803165520432380734117371369180528892997871186962812373706340014060823879080460753960640556173711797811623363194185974413024790829496494942778670685827658834905604259770895578813142428360913105435491013678748576725506797294506002619364716587239337095345919856985277284704091261327711287507662336716665274596415193399113928807317547597280265075177342776110325716378643741634849664566774367565480601306965378939925487286834164595914402283734259782248060628491613182747267753398108862566507280248471987753418482180898401836294229655373123722758851149371413775137042459438559878613894464286457971402683898424098159749469257313638843722931707118867284271531542653557728560513404855129170553649929078983464592164805794043514362501929853523168993242277381271109105955709608618976979329860089666287813187499201272326730191561840800597227899702248856823985933205698161211481230818123659131368558034318819208107473180872316654484264603488419963912259079705626429101748563142690285448153770268450357003299754986979075483842919951108613933569057687271248280320920876118337295788495179770986412557650497562572961668840399580698971024432859232407095120338580205162020748387453880221636294537039593137759521284839125287195466489901019073503109925702567531162682975900380136916849108333957914891715784560471469786216757629746476471256475761361584703544886680545320041928808286407715060126620457490724420213459008021114889149455141220123017825001090385140606930366166724397644457309306820806652403364630859202365985819617477164490933821721137420772835733257174934505421879815576514412744071271748878725299108424572245940407405983097248308594107576596361829187081437961288628085658555730690828933564228260343656739155236813533883650814652448714951924549210964906923033964119321653282257522255302439052818670620186160806971611990457719241636550460340725531557403122850939268699186516813105670874662593176598065391771849916936085164300484835869213310626418861325930362521464873170846144203100814325688726745215384793034208054869053252706464882256157331923306951488700689094781875810194352080151535261308968921118082998803921992622546994204178518978771953005021985091813897636520305577445581313790833722137250854371632986951764160653542816390379350669846178155141203266392787976611050709532262012377693842587826302112332813578570108594285276700718338840218816417803974286265791447458089871233729000259223624618043503431201919017105556716287191177103010260276563862967579938765036985701613040976233699990033226510907694424233729311738869367986677876845459336468962054348759510915262325120341491249993337605048797004859111609696677375600838644181660684536154286046538137541500759354818139615613076136419060444995689547446979096937963833480968841505063784853955675045981388432149218534350273724438063026756664349636126591408732603429716844082584162917013787061658756589717611580689394400106276880510643645345408631325151527878498939721046558156312719648391468008303529869713017605148830441419448129701772936712851515101328853567890389703369001903713472422449301579167433071308956328665945561514173534495542364089811239819771082295075832691518658279375282468734537703577869217481101472131209653157369164044487569611184755833404398669941157993305865686658094698930681088722504410327608971327792320801053896250515281316773552533844899268454460218302846792847090431275520680636806754612746633391671368820652130167854992612188457882116780811208581718972350031632029344716839285361109788873854067092328700257095547946436837206143758253696785161627247783022101159370378450994350591510796644001746093523625343869870350147411804299286559640571677247751551765218489150053229654083740898274298802309554807512303853791988003487204232037208755884634515272075808204019073640841093607227854555797135894900448909047500494224648896338993584630974456452830383098084062595552663480192485163129322363665310278149731326903028843665575756018956243801706793514175175130339145842329121575420976683055078469795955762737019831020354674147398644511202651617966934720247368615075519543268848682248840100345406505683441609556937923125864707662041605608502066468999949308487692908341927608219734797263182152623945539169498614846750813126959372178977808104386543771633790042243431639251062589541059040978986314672137200387393626662377277338757911833976000815226228423078305426258590136102424604812072741629736304033316249536504938774175832655306719486712806721519363200292109158376348751624565790886762018323973218597182240512720810524698541923198353763075007088275500186108357585397734338301394441367379399078559702394885640373079932330615915612646020653791170110980715358275341231772679937325072694224095952907890466339786644110182160019130206733674360487486561185554523897007093932579055025288858638752598346737431248865950281447761447429730932565677714185886737317773546191446509956213771873804478798460916123742171803857150269973424517485575524871572363901385064012975368404913741799634427519505255812210495720437599784997510123261111043710436345528379334432646618664819980228649661586844413455609735972666737233088574772049715843644662932972322535138742669878290805987174400149700187730210451811590455336501516748503633091335085970030922537070430757902390834323015967327600793786049662580623241887928871998587690473509343327729836709598696247427569875633873399262626347664907922113164138930443356264788600545414108141340318648983568898046793910715159011501972598357733750155539067708718941901368276161752192401175527500926419987020639596512466692259058705923915587549609762682790126715408668100635087658904711479643494176304079540278169893318771932570652471648573519991817591763999585686959527738322053652210638287718786979770387582202723417109501764384623143536361816905160956830285561668948657386295738511780032718574919053876265614836446838685273913137436902765848609844059880604441457105694305365257163010043939551035835955133678452745617146396514994453195842016709769259870128254196941230986469971807945911412062403330468450647912986356754105709407631793032355212782237364976620091226065641774468348523899643900297772584147577306157048607235374168506560482204807456613987042937965061554366865992335921666678285207494901254817593077002384258065752078817574118232607836497223742846351693593272986405477528267943542998025832163755920998913931816851428016608801369995059627942391304147721873364095631666436215508033004567621854839814036132132014261117014982545527605946525494673683163598258227811109162055453242379465992642971209782274114091368544214963277311871583066081181183679748555612158272316283431965759937431846603816385520983693845791651980961971388752212224445519237599973622680117517803067366964857982251907191598917095063461961716859709797959463467760663577468299121177980584306090299637495078563917616410303712822775586137562387957124423198005351673752933646225216585276310047637788417131998391667574500726925604129531758563511163955659987887014131435447713295757064802886867600802786740664217436719118888328947543434874141427159647729483591836124284273954380766734993932146419494583220258141054450925791104780774931998288812612327503484134899014607146775742770696253568732725793631015547522007575184491544990166972554852256567754100820458983084445468976305131137636188800464222101828016751950477232117113730451730827584151862655482524539424070667990357734967352267027645921691121923953108146412235894751877865738058587635827492626773242992030067772578348451583766542016833920573286983438937537126380897975506560714655085191692767514769653957051257729152728577037932810482240701687326152540142764960310580051471274679180532403188592034216074494465878610519151498320715561324182413124173906639563721504533834011383710806265120821901474856643255505869134350053935419985436324688155647743905357271839784649319904373914960388436197674228937858482616638896524336742271543018267064711336479031871323867745891047105862283269436223620569707851006075997806344796363803051685082502480257549737757110744086122599353477792115175654658511798190394749960905538693422504071961896541326829592558704413812875296148653309794004058221685751447218058289351837184170370147057036662461978543346593114557547296427367733598273432644999610415769609585033792871311317141155350676737368750790238534078716111931250103206708435996747695228349381213968089929801625507806335469760681986857454494488520393017843944266827603342908675146514888700975480334259119862176921749997860506237242695590709066347383306407485726884808403237145235931540816015436599534195996877426940911529647963080924081443341935032919891945477453552136770797351593067561285155407385320316549504868566685765178935161915154779221448727848272077737128877456169800695516696577719151238651644585493657378674045720786839871387520846876749129372230088354900328736707152252458644414256537649349424763919269486113118443828475610348935594904998383462942695849088980191121421627268727823533561252926283538207095654273987603302730174105825332796044311219761413003539113996278728144418752861343696788306473766662679848300085372596316713012161096495546982342064904614918716587928119837619749165189484705632901837737119894491127802968150782848099911139404386265866247512324930250259105780228361373214778147252129459621931365625284294384017062447414775968173552969358310392715967569572182408113679188066763038963251772459656533002812037757328989618832813943739594614281640387867354982380284027428479884864147828583073592856416885934846783496198131236297778691457200804758286282216528330911137534859840043768482375388317933795931814082833716131032362705896973717430971736556005327797524628968827147395302164963964854196891426648853052676303939601410056701866844153098186905329829201020215395017092338297563882642220354096950413917258338131465168263316463141861159348068641086587366522556618606411243424704241845418447414041701433615215655419198316651962119046404152401893519227975982957795067094275654851644231355822917808285887184719550928583400107320753765709998786528178210058405133553728656346219651099467276655943621201325031708101192224570942991098406205109186799838982207509487025509967639234782474870415418196443202169036930182132078749356856184077812873724763547086713823007369408446686097805300625918894943027897862404777869883316837862863687308627465604151498429561678906216428494137433235238492555272450022682236702091313059722453008721424888178266784272805911174129882931230698076337378814391750801535796348024533416002786666023853098163569249416371908504837239199508769267975100850087856986219044586702642371621638466058673573044375535740839390545038870924059413714260446445376418921724128492445443476686899965457735397863642370226325604904376759310203696751416707905122312710605031895034611074531599478878071138197198739828175276173007190261056436579282966897911564266859725998266457501080942239548473664698662906186760810790232709700980935373496458020300707482626017008392410453662144083117532946288237310917938961646037032264371007666779754702926273434400677360014383774166317471996131331019550095864113818295275244822658501091909416424653379734536579616327447320473830444870520820386543357835063259597251237130845064343419299595804440092189133706792982160879330332550549519102128781458920651719527753908374790567529600910473559056098705971946710447422885719589473519430945236501353407384662476598660793077765599587283255091411778219505769124062531870193246939566512276638769391703007696340719070976886629766546730677064105297722610007835932381564166614387917512987513689666647836105037330878870678230019249470887487770168021837629146613664578402142918225124627886583714879766371499972992319985403527993235188176967915717377214230182716177781511053020930721994427266365265447882727757019267691166799234058879200139476420399013839578650740288460663523653721443973447825117580400239022507588251534329382236550976222421043730930125709305570989020526127243570054658945005975970686898700103858724718411029194515144006526389444246964044565194885836478750907340500550002643621041610092048627664560192183273355373567824348322795716915934098620253399649070764233521244877471444743488903382914559792690826668390499448857663960872194082724982480817916076079508615178986078895257714063409599972345519649299742934541846456077154073372357176388728884418450417673841784122002801890402215272756340551136179480336750442294058753228167099526148719329173106771784138079488268813136942494439649115058465109033064541371170396633197509221098439968823652445516574348985242765687579963203850447289507699358618154701553176732231386612136767057938377488263064208205256690940546530798245895825100251969168638762619201865519459718651683771167502407112771112405878030124576353315923872545144994675662238500017504153951648358270182712519324745587784597329849042247640887601029500391354398625301341133616214301869231468720138489687678796491434807680272094943470379588949545200450713544187522458975643540421731258750577187598823476598908292331895061527199724451573421858862694422093828699225570723892620210810904358004891510885948388780928216011748562271253868164788129898617143728317902376257696435996716342397694700741799131560012752430801114078688891529424571663657224216118652031218685261140500096017135062985943014458287274435907197991678825321148824096139122699556875922108611564779507700203530161672473911581803568344503401959511990151030376576690285681931761515889148754760293487330490467447331358368654564478095173585237911882474702420310311449502877118353926839610172519731968268094433302508066105077418336775876299346528819025057164199962320490025604582088052647480310863671743194194561773737001839338732887592393886238842523250314477442581957508778754270247147651557780197843769326800681256332519221545892618583711877475678829019540333452631380302749822097864086972316957031884644545085121873145968516101809948247629633153000824576082412618428836149520075841018588436957158831727181440357762031710445016836504348436669027054786081646779769749112102476301500059277301154517538396965783259479837774988739313409453151700197138368774275103106197529594869014764225457177834582316931614967782668738081064141860389396061867607760974734547025803998538036712574800949340860974809276750363561174770946059410351052093682641692123475859888651153318572060342311273326483272832326707210644345995927703230041926626611404234112224809659593991544321320248905117440714298039765870185899851364443622800436426787400910860443037662189202969088074655488892050964771884932842759475300180076052842651053984364003616225823771075381196389050837862168170991611297613770525056969818915088118475669404016664653337373362912093800690518014477708746423612058910381128989578029633702063109247668954495496208948380613171871956450371229568605251077275495524231731143511964320967530886233064114618999769003201361564469512219724181158786328875370073612955276262361457637484224577901070734136178983641791453624463945551163004976311805639919813631206148305108370670157052258864743455279301373216412016864458132597954864752055896782365955587291595993623640701002592084475349589200542568638917570199778338212042440308579004522464040374166055139512310861301641591287717001941888673586226048055190996140147603038115832475811329316737409161873864813198448554273403978931617625980040557522708027965474812086892061693030811079526639604122096403200215163321940390160588724907938977490551933669058648510373412360316506603207909157939888387111259558691676134406847039033927583723506369239007683368311836758884818688603939373376602140132115284143522040647134934445687643475642170056650264061715065523731986387100231193309870620193787211316181330049841345144775097445106402307787474671007348810946185125453339611670065747986323106409285221344605994921790290207816861172174575472846299545532021622511605382330182354503883231869791306688915484677454576233982825665623020689928946745928524060212234181491665143200002510062787056509196473407680049950178800569618035854480449368923012850208179476960931740908434002626654670260086582302409380393734770369665199992904262963403446652891452369145702821644047956720591864140060847774105012815592080006047622978751357558575129366654288724373845961065549949359253562953381801538900051300829800473955131220806643287792327435032711495173157647242383482799025389748367580509478935948230244212368327221030782034471673153584131229068885724138156784405668859994358803733308618862185104693186093353000799609193939517998567881237725952761914258220766521961203963013567689143047136694254238235945498164101955929556920839250591781603559971040123818049250145157084575934618249616140573209150213822553069615748485886626403051182569721068801592615945824169239442591944979387095158191588142356272982404941815621366017498967987728037134956620081466693583628617177845147324170074743906852550723724291768596011636136357293085644007832971339054588226207563480983553068651214544225923814780009434050156859517201196520580009129887510727061061425932404101388181108487016222586835981635553933561011858969328874558417190884183597593000882910429776790443190249100781857690765510306964999857487330305728166149089273037623070521370013163944471089106296041631126571986143841110370267145493820088302734032752594608312141771289989246075994585161309610267005731721231383261982577825252470022641833053481490142094309311973514820643833517177032551141324834730935798539041030621732122588456414226352239444420892813824071026410803483316740938839904854021325707104603845052782461409038262339158267812208624113200924850305341601141986750747772714088494397864468663374800543190614032709103110156075811077558734197961894046744675054190240207047070133443292863441288603957810340832302311141042997295405021589164556780381624551384872627387223352090380976960516150852966574120189728328354796638020887292976126893976653268033351272066298119028734440803076149199747297465878951076352646752196279090353132773320466282362648193911969346085684268183479806120844435210463038600791849004621939793504501677135401703922040062654015308552136396265763651089149075058139995922068358357746048827555748519317234099107838636581599234899841400608945374022090438905357819565001175776045482322873955013984043873863713694780579041365436615089989504242185838947796202418077248120266480256593557057349126340441373594585703834572460186634472800984843621388266115128874664237312852496415761633490308877881530477804976294979819251131770956816274754243604420212052727630524172125415123157405452186372010428917110395603458254765984629606839672237887592328112104273725605286371052639997120589277502873491557198963000771917408729219327646556093134147960944779059594784523799036246126062310628643883568041395194185067828009371460245609971018936928126151860943094335682690911371709849454605220071858973481711717298480841004308854846831462735648902003574025204654854950772261788241411411726976480662468006541243253299095357743908231271775767466315158825480971296299773160213239794481542408176311767724491513535791747376685426358482990201003729818394944511276532770536057651030482249222689328270458734133530356580771337844538557823494580643853468204358456934582716504166848247361113154684901431556159415682276397045318826301886925695624141229357108556823588616540742152601928526323887619607300238113795436944211550382141072977953514244438106350705147691157641718341397025930548080752688219979537784654028734034990076138012035461323216890959462065685265025898641957868345475770902100997682936612599796100978654687366395537410014088367530403143098492008875431119110870861328665605495898667659416246635221227745631037360950379784321073216396021558465143733796830052136805586294818688114311010340556460837738199857771609468586160716683073496312278502350878266237090989551672427567610962897965120438477765915309514142614498867062664303177491192377636569272509618889806197749117292986985591769444016938018138927765888364020379988614749441280415317946571407124376783225571298641146680745510774131361297672766484935629892667593595783453456634048978000710323443184875046384367036604460506668204271127467229907891337856494862248661554641665009151495735400624983114550416012294529482114781589892151486749307463146137915949286224305134418825571280231678862584152959411018705670405802192294970279416594151865542779911233716430551011873770264403349437161965850100752501868521065456472221031453105571028300522646497866424225940178145036895861641298894822317959148290613019817064553901157582254714479228736453340694210725738240414107990768396409899966397689890217893024289814733920969684250761035083437612107876745563463246919714043667176395139109950252649213129331888222623588869625899134810061352683998394904584023970288712361863130485568608697963745069800147377199013077039792175269675893783864249274232207761885255109644837124155860497573851662432536351543460298408702290955314687184584125692321117382961814758382281247926244327552033756730913020789389229106908820052837399001939998164551591038632844454185865980527780869567970850101362018092331578549337884689844055889409298482622092714459547536827007384328981900365669768566531331212547002717487006891638026136683149465746135050707240118217496173503120920227398930014779571648349204916755628968958637489338039905353584991883989838570758702043510398976331874476975300171995364142212168184243228400253179615363131569919045173326556156725687781325681560314112783343418464907939967984237185560377430046142183299672078708854073980684892572052269254247772777812115669497111990600731456896930726919284254428275396359593128273455501774525846993445778074574948022833969487398696222886670344812444493932679122773078726292254922013011655938832114185404816210767367647511451903958922212390139926809575648632036870407127581537290304934697203106174664291871032470774572173060071098026449893258744391853676678668406467164434596961344911580494009338021378539941755294349785371341099672458438121674086727823196498052635451090612280901694289063733997216347595018929251153208846590003616250285005421195199261155299228989636583604756895706276925242064723521178425904938509814179294002805267068931551003945135808472179116491819806738884995931839178778952438233225542619987211263404869219826148008446266372416267234512213855542221849127812582631246007806459905614647496571542985742727379430263527689449198115994220394102996472047454010628841955167216996869970835303094950092765439846059862029143426233343882082424934907350671871518153894730474631367462567995463745308591686447923337020458573260939149830681036287214681834627971160874344255688345274020515022130865499077797649234720786212582644708741944951332670469069642231377306794354586735704516911914170888832166908579398893229845595847679823009342791902129828006872995286582921983558970606885601053985987384279799217301561389530205005782083609250526788687938098276036329796088754687705878412227601730450823839446319573208605344350305153709895435678034807908083216989702753673655619754658055375074096687506594506150699268025608665105750866893848639154848623344340498082749134485976090097149103071414518414633809007426095184269411142373264310399258445661664827945134928537475988555881729228592661322231792410279529953939102900745666636235585606953499211856439278266204991797272163537442202873983015916252588488134018685650069176433034990771826004993955357743161370548130739148067002986882736490459290616413093089059493567508478130754335772663339826287970595547434027879564524710526640482278557434321719182532433067391659231057043717588846140457657131661763193729266534073579008609771579732110372024600880566991194839251701219906142799701967967640876427594780048242070810557788185165386269885487656823152866777915226547171658515473702036826684262248846697938122971137725846069431563145414364181960856704271098573380946532503045476747948920159702585596339708405189066512545607721351717105899660353639496656490391781161644173908668710117267670011309999449766058975715521106824985351942988735254405397986241877208148062689460331807177568765318230717622840638583969625416833515872714684118972907092687776111036640214334998964192392564150543461530165346415212804004921402785975729731583388984713055999329061201558146365259550170229954120363563781732317168877605462618091793137470568829528566868309348053189913371700045599227125584266942531576062568921351005403596225269077617747022873918666589765394603184267982276638873208183788367927906186602730804165368250748069649867179897891448475361625704387522610124391441871281447566608245721019762827964668920139886703454082314718831901029805744992882452113264495138377869181705228717202521600015914949470898391394903806061230060006808949835885938310902934909713197622064721443537577564069566883162452804927760828864383988913803288513096698740280155821360972855453789023225379629099500518063226828010786310522462548123618185111462953722365186798978951334144054838482217546002025733959884515873949683251098038536855172880594925950018818577897733026653647597927880400386477427622670913923498104268082490397051596581880223771579740976322077610295433594628937365131974168031890497112243217868252025513934050261918025616001253849795903111645248650703494310626044521997803893423693593138178199636435917663877218476920429653132327480384449137219917057542315826009332266283367847442243606901212570115891390743374507408182268031739586792331088307045458262983393519487905185729614754049049462427566755777758593797611172273402134373651114037100030976218331851483385727831321595791052357703808543372992376671231516509690294224472346953564822012678929212240614254825807203318563459650090576317753027956953652807901458990048906549192474458317032150615962121033100817051976358244162907972701722569864722402487816459360517021178073532582011194130232357974641386222440400967554555870224728353097575891450131887272207171354517796609301651027560473747960233009101116331592104359955961059744179361171364070610066112961205515467030465344363085336633339755314466045304363776143650824752589746392078568034160478353539331156673325124309235785417856267576493857122508141951207942709832852987289337165477578766267769238109691877108005087384808487435126377466890885606432507791438420515410296040038908351977810224223172202424062396989334178292602411721491399111720657102558292129321387785746287367121827631487526641821754505043643612002747174831032720057515290343916949628089137549642169184118034920389569050228446469303067694231207510744853348628158144905884853473911100789377200209321348050677817000196501268584400505671889442262562817565713771234570990571988889625676616972716075340207421734362396970394918914275992874709375825781266708973088641838571704064552454919818876089835344744598376463593147529501493560079780221713311201011124937245830807077198571427021442247352754770797987417347963172047983815782664492128565468962175507159421683368516060157012198021178018695956823001261808851348397988491324258780514777395664506858124543447358662450828952696172365771505243750047069993284575689168705248954281981251161574706657541623106632409497692258465819089886882992368343370168391458586750912662451371353284651010820376168684312683764515993916746033053482448571819231095734583441886469120925626381896980425308841358228302766862564298817804250081517498151899799544398660238177506646970613845975729196665118319547289048329720371471215144066720216152908159996780755984101865266959542451659942451729669526356616332005528005435394778024732327400877888004398383185913239518550320380384665078031149985025471368569520842399712286966361778208621857430783457853405076543514897542591397693921327134065984105142871905838980644972603697176146637807846283257178389776092388181676763956310754526877233407878599962126132306949828015844321882298765574153236519464549695437901498787269275801514780291089931629680225628592007199787345296904085921018139747293778916586926367912864991550101333196980834563187233359402664206268428927614678870463001386564466991775468994807241744442414740948593306377786285596437270629662547955942126378060956108374755379766292898273889951949376967768401221437669408119503499017848075589338805711659621709986179580495213444441402497841677266541513828991520836172060172202783601607333689555560292187320992659234742478003680957985836026713870970115793265917397373692923823844158774657125169118189852688829197538722055540578245032592193483201273511528068388290594460249784356180622855134421760935621074473266089426411490519048358891451455803551738293655247829334990790473914695523063981996629908148504386443518950371479573074175525797101336239043800018102484178168119987635405924358447679236982842806764718387594124287644220412797293316908291233174058496698219130545058666201733955272692725323133329186927662161475420129117502611439421624046166647287164557599021463039016351708809223613732547319539854141578227229604116530360245246385864131616438365870264910554132329569794141005488612501354869454580312031103980088997533504563836768155994549782485545316241354072573003900260653850687739839972695079747364948930657189874795588257291429370036442255284176451551257438342264275195475520048797416748679568435028849784468846691327590227153091711550548935302576837707785740644933495617911216289344108802597340795584044801229232465240213880989040468580543926557866184053453851202736320238957096336586197718828011114795524383345028454466488750570079348551218173545511645782423679212826766980156416211272394363916171931833496691332785805946493250742461558059968407536283798470785367735704750041902807573838375103256848347349881889853581870531448909137647024058952967868706059532700970099127731894844004919696998314957327569508807151523431656917164341802449536783463829028691820888957446975697427301589147702176458489344776838922200053730022485263892761538155923457586527901199519003794129592272599351641629725993308591573202099556202156631609048940236637284702394896451972795598307670839358930663039720629182471540223642376222121009998713804840940288382933863238033300518331338374946124845248563108616660937102743705503376947396943172391735746389650235787394777871942961266480820476236607131278935291679698687470196467173061946894343660629610518337961577423112539340258076116995938696856079390980017972610791328035477067474733262497566910896822020133289588234959579034927659740293051951322697296766999946950745987915955913358657158192691162601484132199003985849330544159828265248862128022648528095402858998909243744856766249716085823511639947190013581871229939094841942849503507140091745346301587125782592132404704943691356583470679905884173716311985506554911864056621720501930549233781243789645216016994083058029953709533232193566224976019607073664181481015429975138625173803222429709438022379194678568448065270233497522950705906247916122637230548893547135055800487284509373562565731328034601610203569799697898419093831370481420264827324346093931469046345265906495546108828427545332264133720905992602852173154632672623082049832145957590107716544549582299141260346457730749378703458167175608580898534885395401967743787106487057290962868254992737493175186099688104609585707793558685423966761917465720867461497567657801873014045216426676452186860460110678160536598228071822195194789983081699561110942282201120670828562663278546591203567100250849055431747344152776777339017917856439285657877912993362990817963738267570164049879666338391038921086596014299952700600113851113784905026011458402042933934796068167512871273763409629399795414294325522114706235752199888830108739541033642918806631757096674471822462654055795525994941498179262721261737408103716403746714240785149852448156303544000290291022869538940896758234778160815610920809780913707618337941431553275547371073160608492224028448620257572164800934016433747322973102267385121349997501141679000487542266528209677268125684382809074199903984370171985325712791202152721120449312492340175110753016563185514605427572189239171383299373799156128319908744248266767626450138945443340663160552308259260738934082859805529685184800830233404893232933446788212434835470680964180867225076237289856513661850769035631891386019627991735498084027860968942612654788905782384064210360332889026139402955784456038936612312579435401633616944692868136133991647529323854072568725525609494457398847736498450264509007069622264108975761277082349442840185983843458641859180911970376986291749634551021756097257838944075020016220313228814911932120311715323586328869327863395785867103946791112584629100932363364817739491948696686495125159345529793132144887432146594840938628179617099388443599620265543550362135830160713327874354903090095309691057739220098401424239183346188612693818874867315333672965223263703210229291805565277663845324883149066532107045137047924152147109672374473105612188251336841794979917456202860522731042091604426286655688493707165179576142616737145164361187966249838589747658679594500300745150159692901666374412126249062928307673939008440390863257929343780023000801604604147016506760880759709712484067483237373746220940123566965677318908949664365052996879974252886474956579262698399543888213354280906762862294787796517785916453731805353699466047406649988762483465062203748282369249358545964721139166959920655204788535275629399771034682772176180480915885140545804325378123442212778134335233655309637210732273052640891965395404196013260191533074051420116195897348288544006433234548306276699906363431147063059816928279518274804016254317172306549991131579976831134896555188933138126089499849006284921326590576241884156022535259778658935601622805499210970492473265413796562755593203272255688999374579547799718512969518030971559495456099435983552490400348287939044216722496211590515911844008831089905595231812891352193681279608376818306573889971893391921811359395527505029623384119727980158095520653090371993395492667297694104637611089887141849379834470346322782826247816672537938125967068356683610448545335656547167329263596610188249950173798793989971583763271571400505188724091216655948432701507449734481988943422043187834263583427065834113287309881374046803932150511015260410161095290427702386611374227778469621053746104728515802789592701971275712543688091152480652783636295240562539152299206216618561231438216391935811870374707785868938094606052215182582336338483928103886662715739927190081093443167139742784632254899113783151528268664459268640296590978522698562133566699791526649131807416307776503909165681707375331973192327953764832360170099294310762456875774311442636006973209481312326935669762660732025311998365053132114308593774925074008483845945426577897128028360070856156253458154212089828717791306426260368567278578662143381738430265840020993374506756869586341250587620411356252980701642796949501232270608307613347429366823156217285366872335347935335709137775956506395284794561699098379901787840317821996131672110392495283159543650480419515825445277067180194649851718685247372955514553577471930674995071737028669458360952352831436333745853245707994826490345201370988487444492630338544434550665381990733145089242443991538298148407656709862749490425579081021591767993699792924832763060731133024184194508864006180356583215034191553274663430846089492350101302272116058968724441168202116254750108348239653540344485497832695651115446010162720015881103961302941716840011306943861550742243496400702140887202300516822770286952484199367196052704366285902820123057603768803743119853607124422269132454201818882576066190793955941162887138600862845624152164785771057741117161571914615546685896820556578198378216699929599446427074464617999899078007714530212964818100978652979564055622023484940755922824251365846734205837101359197150209464472230123766355775839794433746983802713874552147247784048909736687859769108888117696823871511572564943404601072010171452385750848799180978100378118176205325181526252313219365218051652844646128867740135137910142296793504104661045324842386472402012096147736023157530076664328723898992954927649107112667159918171231444579133008560435543068345694762972063057286559811057182316263088369061031636690811968367983598621284077837954091045120744897164365225398099568575397155067676590622856105286484500466141495587745831228267315367301235807317692604146877911324708942929106611855826049834300149487276985729768871000218633823179803008367759459326748447924830580301893611852146509757569170497709515648739450413345516150813287415378917262620671590782791910316740642426954133839278698459467214995656673527318404380936727888109187472445137954431534011139993550795853909679656634106125515011240249075559430236553617837974351655901686446507085991636844564071307306203301810539653009370907024040264311823315051193201300627648877086935877613600960427894468638274574905076787241848497903684442008860379263318017286891104255006702391239389041249036516574525530286792652416219650626815863783904955057540318627709079500949488656707061056018931843152914005789084750368338125205767752190567528316104117601034038572505474376375197091996373264110003127101002508249592533561571701962663963459925901566860733499041985959575803311044101364347366968206839581977425159977065275002132855275945321504587653190492707235943089767953893065107772403479759426141382904317308599586907748523431108321614500348855092541128812249270285863968521222755229404137185943005503727635727167729385963478440328396695576088662009986830272262135050940995570647616113164604356033359805951149326204329618662167431214487039794018127477887125414272951759177179124774402929699344259814788366858858341752520282052099307011620100735680411485557394593487610335139806671203836890812745109532214473413690684011451718605716728843723647332472064989686609299671132349067716428003978133830397167212085456242848269409816874534227283224989853579471054805523564880334918398638763551977664305658784412509272158206667480597720500473941927910176954427830044278519842172684627820672261511629611742716261933785073145714442485741448632073612560636622785634665853415237572346014316363939963818961109287522695641665053179309159910438675512591983909688764212365013546709154477194659601693532646481400974135613236294393663859949104027619120548521829328762164462108758727356049263267081456187711894053967136519867016126320136538798499406897770388177500888063188688195062210186259163894837345638553002253930698795242487818767047929422840524765811522312004202256896088226971319244443281865054227617200625999817569465307427380366931378359326909920170662367199338796955215867455362075750747682741093503760783342872410997183917735779248022352359098894446924714930149435023182354595862227380287003622460990536130408530817906830780096708648407149005196470277657044319814375857237342107882227894597782025021987235745491760006462422347545579803685037172466497304876415106338114794997290125724600607073659677196457324002550051192599297274196725391563118476083044975942448446137340805975347274446171641797696486919895705720121142360045019450495412461787478103723556368799898338274405878675700732927752675452863862594376831994872258032698867154758341904508836804150502233125682054381757361472054971702123035284720776560933057924982671836028653257685963891831607047246904844361616093433649753984360928697836205088242118718291210484212789466036424033315633257152276787331846056665586675987614945447412226489048710742055042115132978440318353408728352373266582670050180042428887218332847153221087769037801496385324702178456047725209436703318742152534117180817491504592469618986915144487904630265699273958176452172163961998684227244647070821512511765672074487323598771934267175952134755503744202066315898132593352795676264479572703659017510156457035153080433230371482285569253769871213903629527289413453298643676479448109885222184398159445670926840198818032303228546649229836912474812490345109973845238373417693310446761987094721975598986505444464309314547679624006200807086888371075564755346444725795155488009885115298707650409202347783912472745536051760897164525433436820002181954929322287123445705838227835522602700118612300002752680682668410710073639101207330038371126540371920537161795396554798337645051632634729694456886839536204347462461679507795203666942081235420158577028871448350084457344653904218430349524559118320967954818754943980739754206750437580745506845799875234145872739344856583806764355271777720406182184660410769516461268042901011276289396076386956423318600031638667697295079013947395521761593687108303446929867803941401910370503704672043095013433644377683997437338357947967139656899043498926106145416043339272606798492073731247038022789496117519549126447359365639225213901674518290898492367923260569339342122485298638989999842939495825003328939458294836523309410073177723299681985574383424463092887175414095873681080759252869135812705227849223092285804559123555424369877285780462027864730023629876793252745043394236519108894923198782446803096436313822577638291719135662269555409557437775255433597306709988941059018107995425178204194308143992131468786395883876762036642697025761279827255993337361119941843929470461302272792185270960046004276675930036402508375874994359341297856419971458868578824042923995033142610299785102192974032555218896970968896564070451615643162432323903688396168224766313152318112274260627267631105009383431067927729727495449735845678147050246976554721801284972460224998155463839804698115482722523046270522026402565133628674236605127819535599722226538995841355330426346890265025899370986864094415326798575092673251576106773531084194379159054473052294637629693186723702248032653551488531266949065560292044919449232311028784984548318827960731048791197543680273712355140380084541296619027181144625227882718764707700608004665480712453668434789502312371929894345706225132686643364330163331636830427618735150738590130276058122782028526144591196252298921133177686300009391585728712068321135470238067268424788101802942956832650581041301194166422931350801409031350118368871861793263151087045999130659990835868253671491634731765671198073112748059559418695731962127607472235581646011569917468560349876175000095096570985522918371695764631867434728478969216004914543332729776396572077012995425119068581349684460604071649813377001476792828423804911713535200371009652682204534480094154983788809765777184993922988048028702815108787745066360197029053207226731291296904322917667760250049958661892436102214566266624838610826666337335526370140118199293087231575595489432585407505931422900830267668868726158094708177326801143823340952247264526926509550241952971006364205246261041652397367183695193052571734163547011941217049773332050490231934896593405754973047137473407905429633607569060862395611487659609769671646688002142066514358480909566210320524134992201798440668402815860914064259555106264034213131501475356060099142065632751733704236374751709481484154243107929861865872481694841449383389798528496086118836671112952502334253430167832812901633288102302247871206585844297121912567316013576389515662466905453570856628568237629991492601363868702825630294394964971782263644882612051609563123163731058026174804549703979589780658311639797576149446309997191371431457517354695418859259552873413344459292042330429555385439840125657001007600300365283286904609231118120284216605331452634445969826788313916374477522226814135859096487631270237777068863251245088161716467096315643752156064930960612594235562487778863030273637494818728729414739713479510944125978020382138369692432486230456996398029177949894571185851567113461899658617152985499130621212688396922087197502413154013216440911569701894559624544012100172594570307157730483677167581766822848994028687359375471977200081538541195481529056426412176092965944200335066357352020953013046899752995829539030489205005455351133244151178085349752051298390812335044714360673074913624667004243845259133014537824510852307158966198722404181540379501427897063775805941433394736716033784565675271482050595636104125399848874002176526116089363808774377263932605742283500900347176795972353542091298965872664078378078564144152433052895246450604492178928558447051215776535185520798137345004873600057125906697742898692319217801010398603477042950010254314203706164245611027066919283180052857339457418545993616923901971709670943069806378840266077969576174986375269914135621530046066875818674270666092303262169219100606499846960247667226926234156270546330492749463878273767728975684568797286330682448092776222094156526707928590240759054642676997094676722771101012040669577184012945231745138264064693559065766966300269745282128738500618197619809489643616246724953231186916316222390376107295894695069462873996691089311604147219899646476569435436039246577311616891836295082576486455994727448447074569216609031792425763659321506545174452778199461598073769747358670387434956590067679452373516584855521809288844268565702020306622272558624883676683217482241537893807122203425109627536493745926751946583676578534417226951226525272334434616703261997067730685604231415268464697721151070930424553501009156556243137577685918355412103163725528363171326838524417273668812425953852937262893302931095658640485563961661898767243976429061757433575083888379293832123796465633127878478142957041450926259844564561005093156941220355547733031897291881220752145971298580605016877834547170647262269406740381192073886914181216316769413074159806156474736837809944821333809338371880032250012852784593490908087298882773997828828479457418809424887580392746869066125052869973128413807206081014578682553161979703475703743293130742380536508741106294162222414812532134626069550785908434927506988898291006259353385974232735387471796326914730594080494368773406189638798862435473915980587145707575484067327072456429513245356680484113017301971649397952240215485847947092719987201483797771487289375978126486156584079299342480157750343300373490925519130334149594381799935893009488444981892125661056218553358034349760584203833878694592717991481252924131814110309286498366799315848803371566635187462718174622373578283502249634559516018045981398507388377819687807305324483784230099910165210879141811003680354554552263864572365450284042692801432095860993025013069969385034419562656670138853027430010551772365120458434900951164697371346848744909492589454239982407650686744725410559754034514262447723720179120863583110870845512738281249712438918310221837338771476182809746844595157882686075059378219724563756122423125366609717827258498540767703796152474376366294665497456163934840376540093611025339204951263054171028961523497116389731246408723178382470154274905777204860672759186502972685591210560430195218606284926827627951425496339979412203890840735723476454603241834560968516949887710447779635871968614263593042370483967808174901090883756842703017872294018553934598664460127355605364830411162940095906616262775806210993635459215438532541172355886096154966374541582583294175874070610723117650905178705065458663319262191909326048971553784987883459169152991082079769763589568294974778962954798570404498690281564046519638705564776633111762080131912208895095275547157638007695485910894326442614330562748585695944224207400911200665540784022605224358131921582031337930107774770368120175337610012441456683761292532341477861314242703584250825790245112307286058117952314081530451708183966213207101630197094133614154499741733050361931119462479798373316629079715089466854732301120706461744999731160263645177815064160618711354445972472161297035220221686485726030309553302935398413438690974310667655472412768746607515385163639134622044988533668642212016799157132293356443995028221223706301433451327043589930675538396209654136944349249533487086080073144568495362818241336551721614174485894407802756678106950964078069392915748563034053831834182259805000869623344215964900803383268989861917096972950019643151670613169383106330367813443248658086903819750560957184217014800400989652527530583743249902262372314030957985243567587263467662265395416066455038192581452758343920444197370808490745988377861468883056087001656479070404070834929985947012368101287299896978211636387127351347444153723000014584427821441082169513111923642094805262859136068819502594601971935532683857233187881681262080863497098809081223134929611827875499291321869204993783156918003965899623783725457837766023019992703582714012398565270628051087710678060313697386813349785545797367114404913409084100933772416146546868505280723339988587451225083406672729717832877632343716306438719929910219799977004278501219035900622876411161111968789999983753192166346809832915822420214427372077877947086222613377380066954635802339463945494731862080927694572038005042853417395209781985677139863198054248884653697640590964953216550558427694533296655039238793540203524315169211501297487990167385037055657418445567973361006766153809535056102277669290445023458424789347712429565605949498949294056925743182747475241125980454199867621576474941263755682023339229551622163769338801375746411494791668271132864058544152108409703976420956754821965300184546341804440063200479440330491766758805488326345139890914551527558291967487151657039799113877350727440208128627827303321328600074243393556498374714779515366356809535149037362682176868644292437464960907211153385995307825567280282835230567361588388602206833216377052300524033227761820917889756989799318076848774594021769486641887251682579286872489927069647999689438752927671019388291077458877165439846207715793625984232849603076892300098142878916843184801471165865139054862747420682208361625132206625238330389946250267830404760294562937527465917564569972952721931770569269371335727139689805411458435825705105390325055833257858218814092770163409813303501000792414536906928429811855134735134359900268574491487100096299476109922095614464143555570765850959546442434499932064776325305301740464755746283567491835325283315045062464560335555793131856470295066554836288309640430574451991681487065338457656434468263220051163989613986773294069603251659828924419826019988893231752068948146604626762587442614483328679081513933800674208558780465794533239669783061436316204914175516645961427646124084722552763344020911851104780985360631666227684937395251003401686698227644864063568168723965274756312540636836088837423283601967244157489371893420568002351993806292525215187398224226590426539275282566334575113175540943703743771128653455173228674789265299386973591554784818233734521885887950404739719495870249493662934922775281985076998189769658416774814815364973623315100965144426096548955850172842317570971471393107346539633754136414841680591925072642574354463247603067312756837579258087781645204508256460676199710788020325803848107435868722025241840438887874195277823780301197385396330282572255823333263769517676287967159140354754656557080067170478395148871921517533834858120866475804500267774623315360927688412506150370628835859298392479612788378777662819011962550836614010262886921250925680461305947348468185983327699503668033914404818202646875222597507830276315550216861726151479754432986075630453332009500282676681026253659333648429110860832414398924099831803221440936144064889990387349003749781984292874339160245767882781193596772145085542890300887771318169167588103466192080414397052669632439530108747153119943127171371723154951257731111056208195611094719364584590483899909374709919824088378858498388301818283872292896535302148683358410694460476174027535253520571070760763297360934896822045856947022804870213952390731068473455525334527429880277142136908815874253989639437841989686245910794814237317066904197692906986425318039342760414667706522028610886539618650871652913669173645622360275645205252740163498948553437534152563421172457217827369418704721501630914104535012467186640316978831870610696177983594664777344234144505746926406815256480968729060640881397570652052294845331595405555740558224288035196415612768336554953391867298139901350127628605439338010213711765108734497465491762877534503220815065235260517428289373625047467220661216545056179166786575632317701047143481683609979555032648578935036718488591804892213866935409563413158760961180444295932478594667328675865121359533191259140251277965768538725155907798600212218586088292956021276935451333164090693977685144021443875880938433604973180598039585908393550730151614240158316446687895248858854996189923890718727021038577003089453250130606074859370732690626896234763648631075321117727624375334678107470391263038459855464318271233482440895869749680315141514134709845686984324717646657159138333815650671548763728320586830320054956890910342333848317261086830447850613201506145986422652784136666942137360532179698945190737007787384960250236791905496189451537621564186395164309556347320850911075076536675666696841160742648357404081761784123143560959152356843527407407284633880717846452313593834354703424407829776266618847208020103703897350565753247827682923041931137585984379208668133285149945343932348670210572175487607912404213498420094813922894869151962235469936875317201506732436596995805016787980026058407109340537284560891625247805183029407822034263785293906992139259862886175524133196281342084199618012847710544036471653129270187862355339780059507229008655531600021448704883893444230555594253036544148114915966082918184660194498441067404812874090334861432661452572307298933687249664789894411988089179966823006613728466923031155784409480046472605426843813842754430290844232157737120037075390566983739688281802790301848236107342143283328674524178103181062600726667491697732502769830977961657493789897258772761001090178296104977986602505675000816684618830926262220341416208246503167641352223407209910987782837890611865295934536357964638122127722440047218724632936251653146643456818901153349145080495194209928109755593147596722667892340850882542110764642950166611377538682381389265487952408743993526328681632025317342812365605560203967138633113715300745958927400554874632966229396360318575578150223936065164444482255432250407856874320620364143657350380047762338476054242151340251910044031963054213798331829625029116662176810063756874706517529302986818073981889444299670782020159737099305901053604887996782777402201169424068344543921137068706042342700463207072390104838166322954362750622416082060040656340848083924552066976289640708397651391314478904550053225671815850872208802835604529895304491907114750458873988001549710830617037667150198464789015475335166419916555793883083569658829842141935229908317932102991879744227229343410178181061717588380364950919060100759435631110061043439154758313233852321696748671624869359570923875678544186564654299691705155391053910665770871402243522685821871501182788658707319571757569696389050007785722139651406120698863840624218798423943690925364058060592097943336641477082638444520597208423474726673973763711501491949527558468633247959601275243314285341081601771683674838449970281777402871499907528737480027170534751812556917015386221110908664722079373422008543761692339836664282779697231466304050155598678252692735669438261627580731129684192467448540091294215302809337837547420316308752063978595355874192218493457702780536185182045188097839269144699728611214538111482994248120266429841512769679277264820682282986133475294409115550380658788177044926018161131551147416688117997191818753156255701252396775481680570450826505456355427558531985668605545309125037079494464163165601175337291159523330772597649335655409728418567869754661004355365079544129653821446470976828439009056785526983904873376347100960495275040645980129800296946117563903531128344867006425166942312929818697571541511226069658738162656921899784601690942638853413533006884200772293293921166993814555327265439945123264062887904197948749493868326162502946066059623077091434289853383257065507199636548760771230464865000799962904804347473471185208747652777819448143796739493505912988704069585507461667002362442513730195719508891999246353404116510241122477148190411114959719625581833020781975729610577391825375795093608509647229502988791435489272275778850372671376807626313791810238681579048173701242526695223019539147038500541196591272952703289204146424416770826814913013368758044407008774221047123567610234628679494619343378586492095437401141819179594074799362402693190746921487060375496990706800605471821510112851127655407941922054228397269474875058126808074678829683848568384023764041567548822080488164564083165423193778284706738335232997287473906060051642311712745312682020198831662783143848057745653402198592277795803018014754881918959573766466635566557556223020363771272404308634522364213117005430791318973405737101826108327907894872463606707914456132094338343391620731030664639246844540600722853943507197410100917765275557870417584505617569642433715055298258437195651293791426178559424775085628639326309204393558591900440987066008663233538434212496383733818368356104378571953807475720369386722774320346761640043682026914813400260031135797616887278885401704036943783979772883641846098780889173121992073665835355107672417816452772396596953485459386003400382780633806504388495775296850075262799948603982782576942716585516374079501695848200569557050994991305607388701192310106598405555302587688702292651980677741513382821488805011319096513172121505803562845983064546453923820056929717889258564757438252465982876170538356320191097380159214428466493775505110918881249379356046739130949069206081142266349410999724279871879958358566702251503291248258918689748768838630413801677872948429246849952522768202203033157929462041817980094451239106090206731256076662833453805949786603282940841164623835744436371296980603305758874448708569418456745586066437511330609199857247468641869897688964885948863111528371395401479258740892100533990775323202685464454195653897449570666168704200840628531925834941310204403439173389388227838359657818007068371055724716124356344735486286413809560948293053877821200476351844488429368625401249279176093179057208201142545269868711690703851869268102712759126777108854946810532274607417021817513661087529769890663149021224697264032924228931132907913576740100920681310276147133890626436952749473392331239231417342466563106507048059270376493282059382148549642992497467079931534970695636264782834953025992789112152891704864559863992257895965533753070088437292155724385661958801176075961356573056576464093360690086218884474010143983617892688741558989557977885744198378967967319004279867488672791442791197733046977309468952670225343489516168348107749309106187832706211501815325212200497660845533219630398020641832055105126519769216232622131966532359586798344531101644171650821580658962272688564006867723741684864006311836412658984822301915310862472874612737384913370875329375935394973971714692984928852268266023407504930975214369975525402431098880776585598437148025074590167947644312986847061395876194150051947604126056993500115650743823253100985042206184275191013759788049540986905142651862655125551502515285130059805265712092634817379883647817472506412867218059579458285236691359167853805904068485595119181120492104458804163695510488430594471792331891528832678991096869346694454272030492836478134726201862848170899061270361572441736350659254106865268132665056625150008989315207774753198243819162310993485739503612963497731141398951512748347694418745083860594765786912259219116992192365025140271846589117030320163865853015199552346249779020074160767479847200173363913205848061475014084038031985982279122622376578430274892929619514281208302524145146489878617141730626504961839986716168354686909958810635646733691249967802341504474360249795597797838796115136952592751914966914769526134354312402509980699084698047003012763173020776868568790620464089043791882578605440039610871711621739792605682961537528088297148996855308719304237889898068218650042774691063467938912189795252794300022775048454552004918630920878029359437684765742511215446961172614488889582862436645942037389240135610290618283347107420095659863477285768401444546448309550631605797901187618291455935207156085172572574681029651283557310845164195547690416506527372982404518467242633380057605758223360505536888965318656494996526753598617910071670088528580927894678541831528498538368605819996930390600486024070533093074181438578287239755404284464296583366358670192353019019817157397091661799321712993424661835543350343681162071713289407374233559291302306188679082357678958192623309830691668145761639934354534984176358010919979918074792635594893316388826483747380892326101571292127319554432973770430634920919856812677643018708669689407963933731030582398867919381043557307282900586293189938812740691070240932600136585004914004583314120880099045669358951559201425045813492693841757028379176410789701627236919077789374702128298207267461898336549902512096454983102452472537259969487040584984817004232163769930822075313127041580817710445394427746291757964708384904747789823197917334692774621767483684662902600263128822600140425727232803465579566972776392020015934466974527571223676239222638379459453887925183239607373045014296561397914734648161409210879053704631901374945501083171551693856070528913990509196004053709501664367162096026681213073361424095547277412114072859412446953838977534390112830301491835366873715628668848848722162703515853530801423400660898128042209396342902980158826188911401902551874438168656724203465868998625374975657673103119053567074233623687840151071360807485707048897661968280363041566010908180415950833778142756207736375606074850660697174397221091575745959334241935252935499642705266237267490087094820564565837615840523805238989907098096786375942258909138911973175916173432164294394827913159208174459572596047974145968401197384724805216898130218545465933417766565940194716502319849082824735278911208304142357690676979113045354156060116176144151874127790134186065583302401917629874542358359969733814041439639543494617987183717244962149982821650204988181901373340107798358517955828598062641451462406963701582129523405856880246589012500721045391098412297710177098740738746169585894765994116662492976989604365507260271240933302999818339300479370637104431932124085068531226045425486310200636567612203032433684452880542805893606436101277449709412208356794898140024758336613816788745418242824881869601694235650854183283095294033850610048796094126851350662769974992565981747640405739733333582247891748966435105852162731585371785419424141923674462077183454092564610999518338721516831015584311043273787750162202496373577492811867530122494861354335954899092361958093551735496024555944572932964313019491237723196827393482294277216346233113611224780561500049553577803363460896299097148006702106156551650941811340537119180779761237333977219354463820336853058864680719626480244996700341166438794519548805415377197558152303045615706861569223406926917505720666983820924373962451302366082326522032693615255652653084535591661498727648046564553026979073622913180967219479282745139150918395965649378753458605142106334192455012692115261694568240094378167289890419271289745841647502667910624154471397242599227336722341609283316897396290564251056779580720667407002698625197044839300201361134739131973838249238166180516739690108615839888775249740410835165130837372976568818741403267207464275864380520768460254005158408986178331303596490717367494481786539544628991603695454554259428207032794526263351819534443666853748378879178888070557790385685772527811939082387969575108937032483041900141515521141363878128631326609183307728549464237289346022081773762115574570625382405738654354300691464001351984961372538742745423428054389513771524846913413840536086348280679416670938228845592061929039720426181404076917861375406844789383444603252579796785357418008956084783146782178853541407658212840696870607004522014410328283842262577403316459960487688055305431020017495440309864881523068644761217244295697422123350088243122656880023330466235042860687867154631201033955781622670755166023135436958992823331057064185091903135624143899457204633668088688762363865669487476271998244373617728469268483897389785533534772888093671916925627261660130787355901424982442507786116607360237589814025934404301713123623893070219528483965256475301457362108832586095535954825412339131169667626365659236534834259389125562944549079304717714481603865310697002571248395861179956893726355953329386646879214460733007454955982636898789210665101606508899561832363386758829643774909154131702817750183564888304985823628730434261738723405041412976819205778607053369594962498659744835722193596089041682180695549958909311158000619484811111681182793662891955091752199190833811473199956512959403311348360285652656059958531497676956154627067091431243269506788851380906579060885339128637525844150778202746245209564153437990346509682044233938419581583287157179279784930705248856155496314112100911708680586128217933745298145429822537503187763079336945655997303543464901692060874048239357531837944914798539480866798367622236777048842058495074547554599752835854468670486525131670166052477234079537447118189548256608232279032842241388238830508064225340610868611905412073621044116148715100434138314332818061323922253386055412513344976763082957857558621966944861543852936893725407716418255347486884703608928945258353087150632432911052649177533478658683062068701941986470548406096993080550352021615769985464050931774408492263403627387362684488106054528857806948216834823894180194870734457970525634549043306922725314508145261762058032367229145966772193348766959127257210977682313541291275616353842721847404195047445659759762195422972378854606934437388642168936144045851936674124380747213456283238794533776362897227459075963287146577258494774865722732092194153955481377219536883315578673329129098566373332281114144629164633915870262265132404106252144269122085937054968212552549606947763176530402577830450374272785122521486366413328668271512032825386152942868279873859911721953647187226755092275023978013400871810499137385759719508125187326268071781287451077989732427317644827788441519081618006709016899027615343539952233475108378118000649136501720441464664061841634452209146018500304925650672673439806954757035484557056324308199442860051942377755147998823542635361790067043627116428870264141937217833880358541012393937097025616313334038583449794219958857991755140617494599083129252777051420771806825186999842115318614065905484370832770248046816448472474079063131699635124280833745244916656038574618831516697045526403765729673945215330903275846688600345333093860294777029887177038332518400115269581138385943178435737305649065604929560168316801765841855004909125842934184235930294533824239078585857666330318239237494111981546705266857054953317747052350445499918312213221371928695227206705876755137557586648529598979061434909057941500774559258563890009531044023081892848136752931960561503253454044878794402571114236299069942778020510122401086572699813184134265555862571737770710720127318053597608409024860077061181441191498229795114552398733683975450378053560794273900745881728912107024284158169070875593143887630840096117203181043292053713488691095722155444749504620214583262157699667806650983627166304622328623394805457586400472272021624576648000050240283148777681672193070998758805344220464568533332173364125208526178958138988305156831473392815217799808263614317455299596982602532392991560289957341756929261610029069491994974518845908073173144580069535716261613228363479656340071244565729655628840801444312355967426102654674909038749528047088597038477925793012786233170692208427219614093914059565346416165812711556836913161943185558969519834451795847539344463233908709207899704621154428713680022131476151358135200003284005344785959336250552301287692322124930564026659365766809325257044037563436313797522643273238511793017604532131791262868822777218459748281009456957975835026554503678965583746647097602469909800146756115554945356251245208345686222750051728039481027759983407821296214165954534068297804850356385572175347674980379244250598562427166599499936095641345631153373792462964659397328155564791343758457276544734178183957628300999166123655321272122035733983047033452479127397329667850678160738986772087781031777218464274950828768647627220163229505193216892432464249817660183058862202685185588364396297851379749607186930427595688731548223345443474821955160251103672817092064019623210810815788114684608907372967705504193310044804362855580533346722704388470564867411677997377571327938256051097989662444208938291792788368164615412822032903442467452761161050469046950494960007183693954495736430299008539773084282492728671303876657895300457171708225073789644381159433921178184506431006559476628167592200304930606682827493171817750964293582365365694937470546200742289687640442857864834127287473789669987973599988617890456745905769787181247395788900251017329037889573489242263842046164339621656312584495098780976858592596400315416943196942607952997204122330187830767918671003358695277076868879137256623457538295679371920899897516237161582132435690891908218142023077915710034796753099351761580647341183318013610512996226329426101808803976455350665755045632465268126358848926455943494077543950726956642386677491759744512367396825133803995721563109045387667728296653375282588354002245417949885543672027584126046922349132774425811545463399830535321811684370599191009825311318251249931452181469256000767363244029006686177906573491371490673587951191320091683531675633578079945826459804815634646832128387399763101489866412797279914935215718290486749633191246561997831752028916608837784167950538529666052536378683057058716691379200659449584500116153517409370849799807681310216800345776407170306390945368241379148323112234480040200622317476986557639587661703283359985991438200633211440415919359747458177266291880944844023497004192527684816741512120226647770737322978754521983567196324256069751551018012184145643942703923421629478283301825716269813214158062442966916813383234826598958420687659952353664131695716355615055857582269017978325832030969607445340089352490291428390993339927852300646041264722083302089609633693376060654418355277274068452799802500143725582468674445929345921730900539613295643148104029279649406866485813170141476846945529520068398028534023947034352022576310710702077550474086457300285724689861131684917993074878539385791163786493287523517287499744051416051394889733955851411168445956161474076422522519290068021962676057820927058890366408810649291236768284091876993116363525646187409546081659964994649488842588617803631321946626271124031532161846599926570130406099785544548905626817675232375493205874185941532620748644159286780608898801100941939824565800900038652830567343045806288485522879556080753758871941243274679194209248389230334767659037729594067433194159952720627041845581489712391243832568163399497731895851818136350971498904001664591906079943005848772129524043844642181134880541424185217370348931985359188422603294906847246757375268167996394831698246657937045593070676209670375352758117579367326554019628806906724171899891896014730915078103077446880099353584697043407224173737297482615427213394209627306377359075804613820478846308044296147708641114197984451908768410362651345981276209167492115027531401053346378594830563504098789398824250819080213169708197767964670380611851487662636283981866478653641238321249050732346382924700967016559528408470636598929132365090906655980745660102680495786094240858517523356490591861307143663755443967008829096711213670681637644621981927811210167342644634174418310767337823031884380517483823790580114454766657696521549579402707988279239406041673621079233088074787469265755817749871937985521104905568963929120773884249368512465015524590784318711616461012718700858093497250561219456354969796671960566864033225129309997155291785028327749373311467227983194412943973693487705869776585743509137080104002584776136165557329055524958711000060377803071824064935829296364673389421714749500549383059191490795000506212751269747995115483889716893742166591247416445479302209022227337127364723608476428022003885555792435814015341926148918397165282462540826359843589885473215183272413000863264193979615021824635314712606306193830925636115241399689878385164876560008312952057597795085376882178956394165741763606496829923909983326317003574703444366957467779587721505129181314838791192448420255548311565258708162655136466133000792603179954308577143049205501940622461690411818137901921235034518872959267236063977155865502928383017429282294464937714673329989657520984874216468313064245198050589516184913301028488029482576146723289795250896048729195132961284864532133521102167607943594658626178891663390726771747718921308778899335656868263330934197348660211792409576649211414838811440936303474861591834779482531522984688483598199652102929391513601111086618983252143551608145590522926361990292219303689122054171215550906366637942911111861179481231767909229392677024081529518576433789941187164689422477518415372650555347753198158245587001648378335736868037317393782360686103055163752410289439930726784641118462781513560819077614026423826841291482344224567524566317084856916594866640928854328771945759744935007497003102005534508285368405101126911052127183567235386267423910613904384839874209789294362039318948276810858663774580078083736152880979006064587161481749644987601164828902588442507224942753469991230433615221007874599296394619903125110268599311950723728532201185922998274908085983251271462816655137483405155020592598165053783468433499576784303449597637619847261725343705538584591225414249290348350424784771066157380306514023584209053875773326776255172484541921264888402706834375654006338163529772554638808432087466792171961612363169999789739514313081818415432286516519003116474150097737362041913785611660044071892276654300398710355869958497854047458094563392321792668977634585529864850080934753697677811048412596568376606280036912611590361950867964695473730625279079888673901907476617555973905329572330776845574796609750661341519225041202263364576365581941195886923694254948481217442203781614066649113250683005761400361150705927613066904841670164973005102911798137909139681191404007088446468514195067365233269702685451823076361305554659013409422250781185280606142842541486796161848987818370492580259573829174433058033363537298162223082881026668103911782724665944117806103520255692200643698166052829999142544617823907904049119749780832485709566928557488955046464068340975478165453111412323292213541523032091478986731175829784700440852143106210044831784162370794661643231578292814690924477334339105520197104443864858481130449609679773752320376594158899341929096993949780922836656207780316989698639150965944631119138608309909709065852597496191960593624376427888411586450266399423863964650297590341734226823126247843384100639098756564277082311959481699168809088665380225555573487322597440395777543455621165429105995399590762638235605632810557057423948222467051533147825782335051441886099118081069461061904017144618361425612943070101083134470742454918848030716485747166893866957971458691123157878849222141854114815345388756534354268935776339517641543973791045092013696112683035266289178772597773060840497620369705994145215770517718006802814906820203181205975013964439997995778042385861756701203814041508511312850866159675045548193623881153818458007156113955134354629562231279034258955061659792028180030113393145265557327048506686424693268201460333954711900919220352281428090038538588850226640326382058187774542988256389111414907359254392161559432744636095181783074781959363300294788491714692362746925847127104393894481858049305576116940140843092349991821165462305958417888639743019816649762017616393370696439432246531837150232560626794717805008840214358904353001079322586663361562254357372167497231534307256944763779719831203643059429731496847495510924304683056979917980331653276929404474007520526683823926494028900107891708400967571424846946507691608725299339464158016752945956518408172819590114050943345730285215906919222986288374426085136992620779731337053695590695383823230432539168082794285726364326767230228259809513920299166141794863181511429665436623435157169467295878302800728978608803130475523176802148745071564039426949373646445200747074695009116205464765817549611896403946493355428970722214217636493088992671695091712081148009705326262517296143801389318338293149994608031478876954606114602554558014525607708888514243741033375641326821005850856358715984304996180222956505076604546555679418198507930655548297838591916476011291440981181807008526539330207023297007113638209087918192531744380032567664184286712299367168062061514797060171665748295027319066073476332460524009485272489607198138580328751202815247127678692374004944185288821493900536511587200949414601026458798488475990510344864826612076885121996058960995315496522374312718154718194444242370385968523392516425498748451294554343784020794126090225015581823503309715305924217632406576142934804634261470297143559977510488734465128646996928498562338015209909140969475288179663906487798658178624820371595961394044051800988943079430099153931746537494650089304375195877602560771975609666493470139186225128449585389486995818818447720104740083798299911997742987453503874312915752466394253247673518492892639398933627248795657047410742440160336728377586048894407332062459118408640064352490371179164710725691383603989115344989449116729663557716224077901944232016108518800331211878369401695780540630889017281279547277989683973954784522485611146429827020243110224912811178556643882426549506106409804804018206806382645424995623947347396387223635407038890377642866169018046689693253946709338410076051745624491973199290230806836326742254865994259504285682327246075495492819889556965260499388177196251934606233158534178624815142107577064305085619274333818117694009496806716351826770683532345881948662513174810084462905931405787512043078499138482567138602682526807143794114860979224719309693187148578738760934185358120733805302526825715647485871292529609280983248925692001360910536053565101188183316937257542535671115440838859444552699160730582328954008775862623111578710458676039899079502757023295573632197007279889549716099259351531009340763147585370441772439805119164898074476506549922414960834928951441335512358050793870818734360238296669965169700469980752769221371890718825699030975627282022802884356090965660341916827908561488586889011699654494353903987475152476923875552935546673939245209512635561250142936767420023638831092544212371444372716429253731906916119079063853383780871143537553773220679290037184803981955058411621574306836618776996424521000580803161225182067737159984757388110253994241560957915028774372961354445585722310491676957048757316674943236038641432913047390451984869685477822355764106839487028191660614921998861795759035715645360557255775707802729286168630076221990572131813453198376057065986105713922737479627417850877098632038306119606873804771787584819936038984827708236596860484991449545283424572849110304184167233832696982840500940800967704487983791528019916005954685308930744233563571960864659830434254626811387045594382950965159379945421587591410585151313574263394918422482183105724031821382602848595498993954544174977784481722196990132797322748483844233950120697034605503564757427794667978426381835052920572945194530762672254982794736338686105632881674940293806875304506840564868615676852497953511515590474809914417175779607778661485237584292667451183223561316780835583711836002801381380440589245569419869115893354243708684822188853905434927975718847830359131145444953441999754113935356128994968301818352209925497846631883052951936765343447320646261849844609738811309842541220418365464899353396705910160712728454811053088115556778266538994672255856660896664325997846570018623261295546658712516257976297706599462763162478117694381865274125286889842593203704962239118809068919158582227257049881286684157377466164738243729762415462714893551974407020171298369622900894556839310979012156776509695669206836176395782417551893585660530173321675803236709270941147231797138073345419140851936586670794585807705319160923837023410896524715100621325076717677614256694209082968500805913589435633369675129958392348187096511011067543603174781476480444769764055034672734842510006732655891445969304922867892919261901602443707066288058305140343062859315757177264283504393808268465690018511691322128717039525110384551669951548060224915051006158680025187548943878224638046534711831741215831500695032157906746734187180722644189560302341187877892789283063928378448875948091389963145174952691768631171041478809715536200895390884588893147750266083178970465573668653692788243025848584245642229918241630152570139588574810671750683299240627158454985876974836040883513949587846132968350991410702535334579899695062060770312873246439925147250047114034380342725301359862450335188792472609414800528233481102345658860538407813282598971794460337693287379931527531724855497554375967602788764863999510945602799843986830096251833224863975990017098778380944761503567556135810167322539179893717944465157522380841004731995864010822882715393385990198399639527790661506438812890102655376626358539788730131834862394662893504143296567509489273782006987223435453852402010028410914062889528682726043418421301806586226727225653922771769184526970450194869993486806690383822716940279928033576635858540855821683280941916709768246476886720055643013088985834342368252445343630273277623007395442361041282208067513587117084081437349113591299305339549707053770254563561695971552865759457883234722040678029849961438927049856273076918556856807509992148458178623101352192134076962431668055508660149687896330272021062336548352490366643647878425393022071928756281453853240915363045687420387267431846255894932247848879628735310163013660039622797425764620706099012746156279205669152445652080394987026238641816117836067801755351385005190205167924251303664141529556300405696306805615128654868193064957801547008301479633914808772983425502521548552590484394523209955383164399592350745357360401837816964507906206376142959353458659778502188432588669679068549247050484447250087467992607129352105340474638845705586857527528654120192340088511471037986211188429509125101873838361205479961038553988561195429453414093856888982448433968245371257924358179085765736336960669496274423276510452259278421424734191398531102688970930605078684301984456114060967329404374173269997149210800251124501385219398177687868891172477245803144020052207698132344550802911449817851570713177880701019437193435277267229897956879041052315422471060885556733305916750062154160250291265232707723148928566861774046543289032550403346114780761172823057932205618269131765227129913235784864972974805079894118902925154165391810279408938440439694449625963158338187730086888898542305920270872351612420241424884265592703759253815527241585338144420034837948339186648413390250765606454566512247715814118025464659570685090866959654521684364290391207466262519970938567536803722339119519128194958038356899127493068128616866038052531902434847110850702874313762154008182025217746146877805521301081812881786636489586906986107824885544711637283725651195179531400930814598027382342430919394359752828354209470151690939365220396068761746147667606097718737900244683371025559741779788310042006337724157869357666317029111194814171663653347703820594068080957891542450271000390862433526932128838485870069032714982864535356466552125772948931498896297069124653774011776048232051972293400120714335867467872522205952197621036368119251678862880430041268849277905004510103531318843556578550518869066498466664656824752305677849297658525219602123557614790259716922037840508888707176347598417817735572483659271688696413873288152195690025438171873941943746843998123221540864232377536544431663853087356512180315400320064180302331811708152367896672058267690518415587986722874601437412256444783830297702954042297043097784901520922037891550504799756069854516796628997642203318676962339327596693165787030257258284977096360567641797611034826044113979802335806164511473364080596894118626181676868491757633983381911912786870288759205765515419862382568198049626845085821346281681382245508461192622913389040860205489766448435036555069099389173028917344861472014601409139307213801202382075608062722885830657370782439931355184483606286069134664408180833427354677721321869998094411066675471229025622554079779080061386176421835619573215690827569215392000818974371947451453897243965750307487634769263091906618176132139218820925408151892582747792917683545630504509795374892328736346781616890942186707499806025993437224814387970282417422199961174501761325508285983721045248720554471038361174599253035612493023716132932970184951610771171875137354920637673659821494205581508146640413487747517177169776758065466383821904970128760864171403611626091563946244228806470516927822948654469827302291791572913986594413054909042307608286225503947703700479649034623137782430059367262512991257423451590515254997567850101444940136346151932939538698607546478241554822301982217427504837172016747364537931820653016945240445854165738141641936790665506367338262971396963697307286105669689147944917898627970903723075745992727719793800565109576016176959908147673180021483920231068147811578874707206787582869950353073236179625649177085721586749559424931421940524519020527075300231862318803690547385410293774123339761246715755392476645916445894750075553736673165978506237722570271809903815048722731166229416465686275463860847408851921016128762043407802258777660367634293206159013541016214705106743998744489772161711544267786789078722270711218669151934947066804339212365524500177464632368652539359030769234677522946748268189847025020591213909945573311335099818575411306964091510029190422061755222915307430941268390923615883789224510636473134101953589879410614027938882868943681366536170518197803322047856130334941236430084721754960702850741632219335726521872338918365740995661865474379500541120360946687314083565434628200673239036140614166554077465363897644190783972530237711927174524807920118357755036901882029939741234270048087360734526448465680827477734909975551287518290573697494178128946396265373276353289220852777062733387767719718796736101427406183146300037008824692207924981035776621851650620526426140487812527631399106048509829268404257161394552053897560341289101720783941194880092200680288327132331907295578438436822013349305816391558470285134124657080933196836792528351400099959105806441301558084773211561459441088785348759661936304921071759207128140069446597493405864022250281267145886096008660765274182182537539572305247824346225124345175553924558440950482028134063713117967019256401971616255483433337367365806701241188986891708796351464683869201619822175682560485502745709729221123713319459173645171028760067064380781530037052315566692039633156808758884130563405643644755312035775236428121130354427813337788240552215714755945703841613253418783464906088691459187922422745249743125507426518019328003064320449296747648498601497319730140177281006413553348312022740661105128218353580764986634082316180263855753805566786123527165633872660039000439588380748452940112000838630081045628331397962530091241451631528716985422960563809836451625789449672327416480419016436592177953965091072229918404016608409656674028572636450332544221915461135509104612936116758349233773890175718305627419476675632471545254122168718361740639199836211375970774025527042085293206879590756159369846128218846999147223909178302314941464230067455823624150253891880761734036459728242678200089600506847235781484529686038322398859338324247750001820159858064328946712191368449130502178570161623874123402836327016136453342926068473765216175777763345425558605728506460858620284800289577271985297466688830544040359881555864341389116202960254223321386027670241883700549455827031996970565665217574583208409383395874983341571858933372885856410100071805063102405543677473096729584981470628497833052960647808138963491017099297970830556541539541803341510986752023240252700163312200434537422397407091319466029750144715898305645038041634263936393622918853322052600980939633477095370218875806490388886539119089273699695644598879574884130240126544945169068600236502690809423670739006419734683469264824319978179390264351460949433853952631997334430037904399372087110987546157943271220286630863042856781614876436048192131351012280645385674795171092383508390502505242949851256688640512918358322523636944739877447916584326482515540532606467703223648265805401857038996713953504467336890450607966172050808124132203785864810265554631790253094039285576671075560151501739924830303987483687978899387819687648697280864716435943740348172822726185674527507615529726415095536750096060863473793786009652527597591098136117972896744919199142296515235402073827637024488304712376939593332526111843630335135924948249505065355734099818123924269712606062054241547654546611482104823643345472144990703364699345567551144089580540573382309345068399145272701589144135093017403935608478876814710804409431154886821210608449869318850826463211272084721784300298946319593019203477380606751931640622905256651408400437117643482997788182325816946951427701998681407029641020172750160583071874269475445563300375325751099693067978015725820022719814737418580569140237540321849902528799167640216769991585318505959140238075237243110239413902174236795553611842415281957994931340813811176933610912851744121078746627908650927740249987162960732167928598597770504791195699932116742802905269568224149822730319954435622006037176517562378550031432310713539760349400701470243414468895861539153669700130547941079602990822058396521655022724868074146458402602702231344016610868315572737565991889582201265723161820444415549135068982636688154525073107925065832794947989446522392861607233858132203321002057898838072808262410451814176499109415148731341709916335971891184838864525359702853584153180181183690716221670923075340722459551098166546447093168618690057780208670181065142191787776459471503457882273782131367966231422786325647570521500886457529511696306054231820208019448895299714679538487318384902035422692380453531587410635429831678002827162689617740036600324290220554553956155235574992988566954078787562250142645687769814022648551077985927084804345817231699652822255230010778056582607670502344936460190213750254757540121432287464146979029486517171513291188064177314284419075055008836228798067698341678554854948396397547384203813848291611359343161321386003964681290283220420216537759054723731142149018957415473125614123661505249565384181593660807151571850239232166864574366948742727134615932841216606822342205895618324438822459303125079828402366790620409239196906352920486166273548431943721019318271002381726515560975883984256408692905450314218245130422983381984423900336784023044918452483868964485388859310487436696708708338283249904067385441200852105887484363649439126072984898788777494647205731998802860839338195863092186396227963549212146986546367098082196662777819811222238548807563688728911074496875489492172856286056390024454650592980443205549610522821845165081877456258291215291860778530648023655025172754860279418706005362837115222543553431288058604758256714139189062548919793284411562431753689817933226580871244559297428172087536028306178792187777979354097588222038012320900383363206574646253781155321726372825677567088881575624603556374215362776138555772227138595293861154304819452905004362996322272934495681356750464591343271322424235647709887992134346840767493297704910686670035791748962546286793478254367693746065180082090563369547567732700608610300599361249943568013612378168430602665865058776827136085564038569830288526625179415662157264390152637870695004681372387881398208046416325806999129780389976606569922319849383697393490040665907599526615474083237049555003784155742748305647668853584552239043819847001318642050210078631153564531135637187911508289686784435108711631601613959411413636375059197946452469598717914492810410578786557030420886386197512153465700548931046319079987830491146913029508240278528830290532914376633277045211031177569619213937903776468079197989097294071008940680741877541895683149156185359296760122264125532840469947812228442096502794144727536501013157363903583799924465496330188458170048546726543651032986454658210694410753618355720215116677603208512933777287189103430906490264732678430555606503530400283499270010144590359433749576469262456537584502519276625759494969778159983133306209792564098130959195454847047146746634198230604944193280399051220887094122725433648549806461671293997368228727796000561836400100732956160258268247989520673425126424487420869098558269564138150329663433044957520509158704652609213575820967939999338271920823151662038766679139723621817866047710058293496456293793318702191973535099243641745438090381298522039744518905948054057303790142848441823037249935662904336651318366780862456563021140527980231835602277153742223814572159787312202913144816219132775666915220386593459474369958920503404994333385063933414886318752672007905077193584658771412072842276077416227529440923420708817627027567654364342635378042369221496374715199634846660167673315247755388965536074792819676281057790456941382803429661829314818458599965172307548411683173018490466451010776247057434272016158453502526875263385376560000292821837412306088249120884957839127686195243882008245202889933137317583705869428412024977666438477957824132295355777728880878940603729349930823610549637993256955446720255643814538971727784440859911105711333783985653117980604963393602557470716834013828139926877999920470123227324494960616075790523300941380047738432199201765834763820012637907395927111061530912414793781055661203704211308378702206920740979458102323607699018905116367197172993952359024349120527551117844574180786065535866818801334117153680339995945959425176284873589764837261394711346888219396434664651386940460760665978412793350010307909224301726955373333535491264904060151785694111408591855602230300951775282754224587659061019714652600546614166150788427321499772174168063799947887870951844710395059140074305546355327042696321461137931447825942371914791042818662298626630874681129546148970609122460909294029949278598627359107783280682279796486180841362293178399540055242310715421179883861506796953795318667143045350734772984909564859224839574137946751815120893250647682462590541863863096539717243269047858621409203683523299576049634961189037116586315397467384967616408699171157910832377124874028412222741262298902692821045573195514669033012227986020311189860546565468538141579685601459531323082013368285458651209002846797002365430439027448497239358382813009164830905233447306635254042329516275468747697564540441075208389661260068721107966435694507813612429209484478114468994077062467035988115794927311347033611712892954802688937075658568972022824192830776194913356621901134945179487398019739596631881622131066090210340385303528671839293686999814675328628983208507323633200905566345183885381509370856101143389512193459454702558431378344205396803584232662116481153837738418070973513996645358356875560709598360958593846712165735096710048725491391178858312594414311584780270107165453528118505003414382188641540895704818729114975803457613435913761913741312411399600110544050772763532995548974494517429839620168028237280933722970913128495514715460258268838796362607104712874914740046360097492596709207787799514621727904258394032949937512836111301795584008161527136987689459624414752453977309693759514314116334185605338629864959775309899219862471157599369245702415010653788722440169996507459228769548406176392341835095949545758386029210569016049982680728450176174226629261455008672575752525761769937685444161027518888523164656285811600288311218718959702614383690350863204719408053166181486573968006356406625790333379564040679712057203279277745915332984771609275292312008218042649575345043838181801869775705984747090911432262827651807278831605939754457713638795743620531130424893692495966165186152892574158084179385646728964484659319992124064940963767338930934108305499122385619556777153023725457863359049281781652583958080810771925217779532704109372770848180865565865369096467865306694952286717537337799915148842954699256477437652059334630164441910298205683745781784323558871359382838624310400822419559859174309062902857264000588623649663329472031699956807888728283944333080636812627278262882590363591630416906089732178850039891937362362029130323121806986106101128992600152774386611190862266670576576514024803129581751751477667450090021063672985568856182649457360307595590539735031882044217709434163631736806609528076569705118681548802767640337642216005878726937308887982646982827048361378202519753562516078005007610966032681420356993694598686564160434179834260566060085471448790366481884285253104459407945600936075061019553526137638609588707143444550820173869223838903030682888929014896415900639731526361869649344498707001768436427561927131969639066037153236546875744884963657919098844993038724156454595847539892248500339726296933833896643335373080690560908978979990155068545806031948146966611120567139382355329052425307312019628613521276819106306380748965949040810340285179263721656830951564252440867014941140702253284289813030639106464168320221016801671718452738659723377614956592538251022572889051738464863981977283598171590886445925021751553355728191695282363995677644729209356738680424641313615187622521361894884986200579484132083010382818727880641519140532110901085244333435242982126501215984085119456074303807108994851987056435989069160048584029815868018153524633834390072945910960564953861369755042256984409953253685056865955584382493487073109475449161775831386576995449453172583799343505111798788479553780774068494200030835492523778863111782838807665618201824472760009295511204186252703203246507242607099764031658354517053427148844185627656386867032427504036364836071619750124924302102302973637187620888152937683480677406834291812039695133099192281074282017558846103703016194106791268287723445692792542894105734920587813407267604560009522366617876037122979025005993065518883434338084010755505117214631679818991261118905331397462664958499273795601832670079894416164597849644372555529346122586944103932892246554602395050611917011465125083538466837958819294146862381996663429650119655372667336827994863236016308114684960150703133336183241314017638720357821418854580975950278775322500104167943422214166730295861838389397105640620398423900439735633716365882281818230644984901426260744493072701444381832219732205518860423133519192467221471234681851180524708295636558468049683979720335827860295439542012979608681120671501037309321476185654184276376359029811319415298213959435006036777732732928408792674395246403148026778503706757175993189815709866615211177188407477436126901622847564156132441636484763443875049635492855829157077061796073606507389268991977051533688200360929803429542562670124611541434033415149908019142963852028244774079140600917450479846507030581690757159484873385655143815165136645355976082094575270921140556219893985128134279847564235072899638758196302479482924656869341569566410354387530336357185749334934936874325605729307150017462725479934792326103213497680759558999825718503340460531846031542315992042861205655455262054016969212130468817358260820227977524581734953888819932452804001197980990716351982844715013326708795930301002573180222881122655510566239498374272378603495384392903761308906663830149516053336548494843419989079998783129883142564810672776504651298986442031971890360862872563110910779890838208004579249261787978327824198308171796218812346716100444646260492053096404328141716376483312466982977954261853484412765342342357283603953618295857697339817029831535858794765368150596188445453120349972050031965169589750613534901839702343392990373059491634067350422355073964781134267065435119693105603051429429997247767989815271284149391739056613576260196933665710237228535576299498630694559103413593925212186338338581260732556775609768880321866879774550435849134739575075412877313152096008610424085737192356472671295448036361014532985612409927938949346655863772717277596429815245515067666910295555516969463806634530162843790438484918765343829009743458166455078270777708542216125262431331652732794720497189122728073366860332125519679047114365001424921685023751651819855996817490726338808379401632127629763882510758667008505736259849078336618755045056884684216337750246564418131687746916482350304118425599361282813319066821543173430066732595699001482157873097665610070330043917530213963932667578684645730803891695236483405987286377925613409263653441816783020883754395407644970004670003543182746016609250626146609855844678452518946317559513584593813827477749875630192507300007646195505561637263087237168557154582971257808902720474741020780818774598643686589802086406872702959526194471790382614872721556676632638715856542561570134683017172059894324745216973038004117727385456470007458491489042333512652997360683569175739664148006020814174864854424404396333341885874419255927041878074407908650372170288373190974310060129943657711784514851361983098096396970003202711576504231918623201049363382571701970795488530640354419192076654034390871850898195201357603136433589891846250260516666233222491989650523905779311624273642312183931826889247321379471797190537869935837718106336588238054267527221195787327906873658967939575986438927126339485518239108156425789729231906735216079162889182810822993426571133923088972283169125108358213260731973105525080597754752235872493173154358399160198134124911990595250683659449894893191539923957068440507977658499865223496211868515777547804853366525088462164846460835848327546376884336532577086882497044726402352493194949607096266703969347925749714202812127744503653487669563088321691458760956199851409527004282370967176369117778613428314700402339939825938902186549889066550160790240907710306653829832776343774071953438180705793040107572788134551170366433138443512496760429616138760070232219244101298690785373142139317316178717588815778237778464247230678933240153866439316315530175442917273916756913343007482234430736818106763797257211048668681779214923540882698298656282362842745713669957765821403561745050901174517692319046579423885143491311754964847960808312587240752758298085077406116760909836410836693746396445740619685085211608050183067604083649249450514274203298738402537872783395059627926943137886652956134610085861141198386779288380054083015066783573241561084046218280181257178498344503478953058750185685427394477574497177919145374327141940325065928228025469335667133684834157802416671433196155374015774063967590140739907748345354153655126072969934593611838322203373832545862022705741667246200598575177280173847637700850823044836217048746221351741494515617462303035222415415819961686305549370937652505893004477428711104497481901973474872296901065300435676981639895341544902276792004431684745351761377307751960978781436346579254450813090700986046420001727603832396139885082562844383407767430434746405305625531560173970799213481576277502183186398351013389364155570748101601822849130046850078202573606669488674649821819693863530778173754728721087233551878629977236828324869156735624853210994342522343905371235489388137459035199853410069513379103145551112552280373800172004813674140689036150152242637188026237737454663405705753732249234506581862695590887979035743850939387805185880195851802024614673982109338331254426636241712208919271409928287939854072815526824516750697466169143043706841103140876639873288130633614840233594082067682499566002501051835218946643012264762550947483837847078771614358900601632786973198448784831710654774176621485775233041546851207463244320301400912697568911857592717688666715799610355571669668006177659706901756199085644878493644420280677233234961593042246191726667602518459872851041145137578038267638381309997371239249350355600295581693742536270772174614973291722688348188005524822663067046658113005890483873180315517871026414067007452926139197715139003975429785891385207276327619854462525338766130125127565390956797574143360886018518928035639595632739891098500942515262062953237190446847970128013778087288061191572458795675425309896351937206080758806486891677638156783199343600102826024376413078910717819891262428205692602272964282120740305079784918497370765166043846404860355867220805711549803663001578677317133044870156418823441939890305608386250224689557491703599782929533137086166479930149405067347619639610562682672689687347411144564315392714830754622693680747698073769297835269819176753902436245648288171522165532357367465351917018435446975461281061375015427644376486515254476368104307073794869061705180148515425479433488638086814084522431003304368193950170976546389784887965511289325147096617716389169765051683991059611110348152601660552936262467659553677262790701708783665675758908407644780331478602218234040808926375295024788931603465197691836232869280559645228637168857200350635376878344014161800210625454807407809465002656898388437533683804592781396918156637674909828275790164143896346100276907667466738111247772223923503057423184736529746264270508478202266919010438818780901422853872486943113325287203678100129826606705158546409907264754264378204742180217922227116475596283099680175742522693524065870830072502874443992860086408471133384229499023332904390426300683392749334025485390304358922094939986366987859924401379413535095171213323002559326122373076282676269637391729250128841652355219127492780015275449998801748472951441730196772190993629288214014741382790021677238323597977759503905577589347695540068919903848755480217932569662220191151391290926820409545289104167608314143601522201720460583696890162682248822203777562531936489915441974971457093516632254158085207983526090470100450817958786536092130896958953772354729499667877846310683395946079361076313620877984290387594448488727182305723851178377456447680678429000848518775762084460439402581481613981467245322358290930499557294515059249971955178898146925411324743932631889874702338468594852513754255984228451149013510490971843004707861392622559197522788079887482262135579453909365976088273693614412182733753932274601751757463016570086089129192828170364579683846382500976337451080836227285147447565578886301715731167422909908262384597087581527614033302760021280947754529861285291563656439997420436912835617791252815438722160232717005540725978118149495592237718451445999608688426776052123523114473661213897209383582955173006511435283320130548987880839585744769028426332743798606693867303370763365029753202334598896841125024216680233524325970494852258692486141209100054097086837911917814095662860420279510903521595246157522389310188045933175029646249912774027986731541916385059253803498952457082266609067872723670549394394803626411433551103987990675238816816944173040011491150449051972338193425570750761021971845777204141775959483297515648220870138784367340626967837282917823942032138032206734371739430651117244894696450998484872170592084910969220979782188754775984168187189768447453818322805109222775345491094265226126096275828505048147735583341322102558267254848448410309007857816856935014548235154093519238515157947950464750968530787414476243904350564145532340537880212941203548556278880112159739953447611378359056112652665427717736089031743969591432169496269868498147902108802807035034818952905489519668035612015501484079922962114784783810150303332256659752478484240160138883676237523746923506557103640973840234370658927893550130559440122348819464496411590746822173065116347612483206962234984581735966148739575305652861563613903291231563148850747744101578029486545504523251735311517607126261790171659835809114421846276673345430765102258624680494988001555587090116330794944512882498909276142201480868031769014618772783359028389530862656631286455847569568396104438997423572759606092970606181050245503272193578302979562672727793259804343987484708225547939021808705890237574285005911841075674852494955715558388379513145569638006928365750649277337885752282245422285559495709046558839610407207519228348810270761404327037512406740384038934011151383173055762873939394881505601135829803844754458073757683401159224611107703108823727557880310577407427647095787785866049987203300249899560143772126872587940410082039650851947131482911918532721824059073460233230641557069235571525980667126887945414177677824505274990400423189620702805635105912695398789818763959877144298282942544906250595992262343922845612167315480167131496675346896505312266727716162934771026464621343667697241385888304133540781751945800232773194279111951101620375026088566094936023834285795987146164117100607427126494097641442940206533816529255348689800599283917465373941245773558411372711628631615432738254235589197593020122853437602294867827110381154761726005960828430696982502530785985915494171061033739966385237052835230355690604490114983779769346733684615484042886125117062651822211605510159374258787813742109909774952501615189297791030350087812353425336243427568474921394216974363680055883509188617248897626850159785402054971278646326224555836491688716510888620608645238441192467367863100071469325356355406879235997613087158036320294709989497175591864757415787618621965539366823412985575403219500602237089303485383130231305293753867600927620039086087390995942726118153135449625149030073677227714341270752319123598690734863925523939749554025925092352669824865501646857837268623346057289501071111337965759422706879800939664441139203488910871844534508838696164420585891971304228286492946055961933488738283666293586931231953170761514433600385114763016538708225378656409539063229140700735706027798557322309568655419592117095998024144582718732892277496242785871618619776026292146712941440267785409750259099496003693551305873459215576842660546780669507638649783951732644228298370955901183054845235553227661595569258416635446437322331719764526089625975003660023807132477705978748922453316001995455882676079427818355399713403355221295112526852528178518496426838012819223261725227909106376120469094228924079302148366686883820773791312138069378400919457478165455610021776613022061706311868170587710164591664741167482954217021389848089227736343185375188958349822204451867329842344416338402851812948854585844869093318507388761133878340788815757444806881015657820925534258394397986267509618241846017169634943861166673347029030978901945508866037388751756462755714654408054135275630633929639321498555613308712761842313303520835281572422213971473368454032296231110496365731412586248271006100870789377826034876070025180340506805997613837544510963107388980930224057400711564553329667643295478588133686515233279992173849268190524479441384788803248164269861880469553988120067857647020832533326510898470382905230730780999730684183107095368600383536474978830583897014108898541868047826950082110732998200970377800426867719873777279134599204923543093449100151139886819283294882036681537072936172388078541711505888849253620093172712838876766879216849003599009118196172065628103308227267351453790908522143973692248577848171357753271585233275068132111808363039634441124930770305200685047748241905502961737960096221276503316451554294118538782355870632837247938396331732465158849108089734142706963613123847750273112210202380697436444603755732932539295239065949815078620313453457865602895807283271575608413223211441475722680772863191402800779756339105545966548690579762709728846054541949903045650840388246995647281857760388668690829631398327718121738911190115328011379018993379593265945241503838718681571440977570880092829549562876652300565028906927415966156292151714712116982500615161866049933099860577827957336635341194185771584208317325985367959587643511096135103208511655849510208120570856175267335574079425346152460353816738826647841712515175415427461813137854969797879983264064225155902365957949210667823860841378785016236989472114620152393913269135754873576659252970324859779820363804340400751660201182036996219056123392376265831744457845600972299667268703786078465721229686097910705560270419555296174197148472709416620923356483156151630420552631218245598891138040861680490721999612808658000675297135887274345043889457082246933594689200906326758210445553244056982590352027364271211387312437418219033788603085133768165036679808441251655514478535725976400467524839072755530301572565209484346023134244567845869876515669099037433663500795308460931369391844690737267727503815105177958697042534994604684795786760686343959449915190464523072735202751804789666423474462727578361128600974483010059952874588507973009677398032539342971339799657740651261346304857157819445142949691190066035347326390870128718038584924261309329756744548596628346842469055804531733300046663164519874252457875389253641961207488021775182715888800413367824422451052237204945052087354418454854251238049012225765936356170370901967346242431074843064645145238234512653022277896271206928563784308113430424488182337421927397716435568280678451172495085376368434321848903063684804408158327366225598000893604098959472327182046932247136388443179319328597946675010071209116729686698821137952526943751840828951392844513744161302990689892862906768436115406263095639079253191972311642450132470654168869550900167954420164101382276803277267616933566509758532411550984259404575308963616167882647926106098669040522786821686824455518343897030399264531634299691444828952126049114420451301055409458423418362503631244217569394233848817015661853191783630091162480566069144987944454685462032669152342164998930138167774839261987386814592491783584867014553351188810398724741499286825700245788216972523600294697850381392488763006560363817249164053629173683353173480192497418821477322006547669290053170832149044211764952288266193773921429761434020918011728896896037792091821705100680781579308254130426574416938382433969064971727295863654641026222539948031839979940026431542031925512023763376198789721120202760869780061802118484663026377972855127807607608306933468233395773589531145268039238472845029878359230396464951388332202069166920578135995264258684110272414488657439647604451795057508545146434013715403781716761664971144668679911907441505352385342401522439182685362389942959652140811288548086907526344237911292539984759627588287866582842023280475997597078812227790947005196351853318945187734255994828584341568495647869831674161993788780375247722053653178081335963084960235354428445768997931687080012829326923092071469370422344557880172269999172122168940935235276872029172533500996288820590424763591936106316149705343688671656720129918227748722564868247327985285640435587338882508746678226765576746613688882168179302435265228599648753812240698431123131560355438670069282900591600168035097694809819979017421908050391025037436977612004143153216355734013023148802138986713867658811101423438843757720741664436543856672497950287251378134879682439539987100230359261435456557711250315571048565140882932143725327933922139855366318364531809871732479319987889204964635630886671246070052552556416580445331255613053016799442271807071127514332090300061815493094118712901681622543360492910766265738421115129955075337776956304216845242982886943050495072170839339780046886426267122431411270128831648451797217456190061131909838597545536972834631867768554892455132452025706605508618612927430648776619671907645017480955792488755375047501701497077974468524786156004492470875118871680010965786035717431500182141539253942282612636633010744862939076548614216233603571496380699448504221343357154527949241652549525236440928942975753557750261744859523491801424610835878504954992573220113492097283440029331492044458971360358079513707668646913292279574455740855570116671504179306276549933065906566446688205078338143723607544019029282096058632676126857360301718875895213895311654576805858381885036281874950450814951401483103265484261258941661533063114716382705133072619238394987366556214933607998483403996265217138274650285036559618145299522568950338890915367353703048602835278565493445580319085641173044565548130124159426013235170088886664149391524065909201581970160591947462155612731189841805312605369838807636231695969403360672292578649604810778445008705970863654385704683837631592634336423624986928676804550826484513513450811740999669436348703888490029634033660652454718220604504133467779515379948877266374368091289438563463338079760245543604566904520051318852274207566857222584498220106606110731368963305862928551311644367567033818922406493871350117895969459365790822639051187179421892327958199146919338705138165137490719178043716773347863321318146329147236653298053084774497429852149587036871351040982131110720602492970148302897557382264455041230973467394380690443570716465907280676241208112807991486234864282283556029554236451113110212797488138519833813296457089166815412876648935195056662112288798448456582572133802868975870546478051172451470924089558650224578500400600548106917934384330851014030578584843893783236890608022497442268993284192372952803880634123201377140189173320522515487524807750700883508669401668988685773089661564838759151172100143544689510743202011521993631444306378009953512833684134785113415702385291196963408862941785193149609185855169213766050396403368645572553571146661060746550507778432395918997506254527281064116780217538901866438080935989353673573983273791129754185349390432806673218985820604415144615651834956682381441719349061180338555064477633946277677119290066796253240615201802058763608841299428791745274832307450713185140800844153705694762862902658593602353359924268154145709666807389352189024569493519453212232803717232848790749870991239106215840193048147546054661114494646849105509707203708162529832572859068177072448767510586327740992397743296361009329414358120011473916148196734019481175428698393348024431487888211331641290953546081302966325943580728224049005331174835536305458057202203107835328182790479573661751805567254862949353758794319068700755882459820181114086776647437877551634174874704164930886504676274887448252838941623842204346072744856725089587184053198046824336262602901792008895951066630856739660727912242519047906562340264989798016804889979448571432596095252863034174426455526245331593749084617270728325989134916018186562116840154540929903165219585193371257196552774082134431370088629653740172856701632340868573278783819032139011620976203735386320069631302255241974036870234568071338910685114230715126690054146330656878898433195657773546206416109324019654623034567742330555881503141433907646414024982905081642712388639729009586528446975335123263411592524356948586304783966291173874898912372226606779110849744448769098288596231070374397867537491524428781702815759605290281954785061931774871026392646709455715727288993778850507283987056307369192817451996362028731288367911291641924087001928571635530522777192986614875066889231490780833561137085423412686288896378133563300965322208357360400393587689897367346244224106176728052338915325303010303896305193951805009345746188376340579343976110752823829523768027429777706921729380597333156070720202246778831044076219353666996894440945094427400084884792163082851156559632031456577349161757101635042628943164579188028473907560175368464980946823455832229662058199660854009994769246827584146856548118874429138357206524405115599629215679131624414471847900034136655742077599811250812131308298981891754667353845017375893094829485909261300674957648785214068496481286648762927958298948885217701180622179767068002478449859002296169864690284693658237137605949867481081785191815948769941098805076270967133751340550171262581378290950796638821050905002688498430606439038976124654264300502725946384521083316845095661441797038948492563694188305758548589480046609602841373168855734345006841086636331944355710807358596654234147460042002177344891032349224535603341441628000210355606745348357512142653661194014326233748478448102601083636426266106128627705305331546622275950415160103625768460142707818692179549424184574120093015614689338139989291163807294085305764343302071333937004507727511576156786142712358342432662342628966774120402759240312262314389700646901744589228029158719592214226534975781080215927844851145799947357715683451325440365198610265791789810194579949128631027124279639316145258922207545200699534485056525350829489134732797738141478991520182834731885844323325285466249743092874944216344650444138246585086208246187805032003330869827982123464010743151020595019193450971634907388441979317467626188727508374321526203336780943776116984509430051159163024411573536832080332551469695701069597755281194740230811871567016794287437421540249175974292311226497620571836439303025159162167635595666952702987952915909473483447513468469431477794143051678851540581804186388869485655474924064430836246262606121612890548063801033400192228147584318094118335869582116654980046104574500319726835636017088368497611020749517608305240115551539191584691911252716559367729259018608351121520281051022403565237749283800547021377189595049620577902049886444076009874279966263264266919145518144620817133974977766791925688694623408389716876993371235417963736749254693977650064938018088673242812852982558411221832823652879912592476818588469616100173304272697830247035523769365498881145378360286258290108064069857460775249724841742207996947107096736149976881089408645271050858275675402671839814292794575275181082327139515070801419465877613868434360462696415014274684901575566129091413964752496078744021164176607624890758541011264081257412237076330887987578244975134785152095449748730774466259586622931073469386564792259449114234336727590079557251258885195263407401948953935476464660763258116015228517234805827430183885326543608146216200618397378542044494801382833605398767557495505347033153839516132545460006712682550568329520714144841225007872030556575175124514430700011699172115335684338398476704859373441729894089658928674715179135530403155484496403191524315863528333695749391496144528650085453881972042025019451355524645295429050276298641261092608141714997201753874086588700240342118164830213134825669746257602390384136641760776131540650887049342327515902062111538228084661533505791199976110893913395447167691922474989523724424409377667948266183882323978530080762069966974135333834450546604228817036395064086069721056753415479548140305976485078076475763036521833245267466195710050821441891310590687015772934309480651577923817708957662250196896894014605087658071564019959216931855628416147822831150231570180963025856629208610092393889526503017497803862867932790665961026717509816433590074635198981040606302658978686291372797378795805370712693357686321058055355464460000506876241842892994445622787230181528296972746841230423916641436238166514109746491871426461790389565745193728996831203800884041701969138089396569875661188624527505274388695874081071036923441260480530108038673558867840404211569222242439599345345322722230190276949619573326242088457531120638078465162544777810669400606465457881347244879410864032670320606005761658086572903596588779867563479922446436731514751498282411143174613640717998964254863538747963961896239142391657534554089353140913817373786922161379820083468044010480867327232523619157802969929759362706522399808842759395296888139990605281765397258333878103561317401006899297520472380937671755688890722429765360163628734391721788818778833897544673973945333787197004068652144470889470676633149048566750437068606985050489018757212202402437524347905711054982933518516092798706704804047211283273835403120090601449338963203629009273190714372537160952427986703229547555566893030346363594984955954983362229925999770930118144108690725556326151099617296492827308604894980623641411302156763743086338020071298302124561348093381230872856613540373742110858356833094828937236274186079892007818294445877762422660613379749410527456271039360047020412076398386636952525608544733253648195967548129554293226868809755797308247378266176242360903285604977128263886548255675690500432035011411197812706330501704688350580767747272400933294722927769327358659094397695616014401266471140378763882008521541063248419026973425436761991741970021118886699067388188100716872741741138499627970589845102542688935083026653689148651702960650369669992751776312633162017018729263703838639873229690303047012376741116892545771529068202678351195485825090982386467036539012257582007049485502293248547284551421683229365294910697590393182941262527474223140157451838332915733924347798571029116586431990230169695188314259292857749488534708022539097548258358878998223728601673204848328564083762254705769898931834902592101047874956774620644451552909342558024963643047756086479805639078717424238772892473645286791413326407422658216356099238383880362787071802346463923653062308056805510050632061583601996387056646805090397573789682661985518684432196625067269162183975136780299910013079339259031109900055674730738264596874683868230679125343166550001160479390026534190485320156803509753969776235984900483897377796655690665606069205155479728259525368946297735862301417788254604208662981644959073782790742908646839112947451510418585551371919630857446197676117815285841367219408445084279236937948796539315073069136760102358798426971047581609027899260077501014874106924879766945713446099629782800165797505103461534325512512871392368050816856319067799653427245063576419724736859255572587900456800109924203648565355140626261572051790612934533882386564500310727467182733636278900519715929516840658959235137692330197946291702625323738005798092426404792288608435792294145556680994937532732410240711828565353078453393836821963073168176804252611375117003109922881461956303839818071497386557032354608808768981860452350894291089808995497429107804363583692643547339891866113762827031973166219544300702667482447157053527458404332260457185270775791810270073852765956344764341257653343511120944249366363283510099724588457795600268397151304331900933036830401906872673355948903078257417605756799629367993246607811915593946063198712052364159313168494485000991494700853226160821606089023882924077880108521298572064223803315518959416203216851690664270134256237825331308914345716820239523793756973174419726749451240856959944151224522681690828236317014674430978731853513548449458294541078425568861984297984642532455066847296893024579370939967467267478961643431528824086172209161730041978191925212114058274076151451623394673270990320331215796915785307649877382370677431517978698843907652118170658034947654593789395462950613081269826304175681056288905819214600225123525053682152469625283096428386350219657821309024712362955531253558721885126127639205611312007696186060399521959629539967629909010937846264222716341332825504036301742949197647605522764645839113137499424282502331951158290169353959396671718646627655842995908960755308472101702838319057589983166858908127604759843034352040097207990663758095333858069956331874964563913783082670250199459331381665239792223307369140181974692241213674347400766301200651150242480516781756330777579904866547839927099730426619531382717194291555946142324418824772686970104849287199109353510578411897563373266183275683183702212608944683329492882849350072315834690018994023882663709783415756849925283692840051425280106318609278980307035432620030051302252154917586088919811331539999165313232109399151306823561658528152756562290704238009775616355269203437634410588722922049739488117406803163555777462521443251745558958276955460610724837222420577043243986780296849100237452358158529295283656887554912601301353936433209669989141210462470095146800059484915537910092016250117350016579830124553463925682122703917163837691732954964503059651786461050352659538105469601451587921238395310264851653308500095166104705476128555014963752142139419007817718532566369812402826003502436438156635514704652944937408806714419845902712325011876421778504549282556613235776268322166120909928845571319825487851812778868662939278214491568525026917931760092479564434005533085704158175624070295006229151423312524220046974554144312977674545369031392600051685117684466858371977355329857841304214983646588322364339375572051046803488154696751834448327746672013987892454625669819316835907056878432806383378007808229224994674215018599170821210694965593879233827794076431484218213828623497769468988416132265606355888122878014823660192773553961310278630919512921721847071863795337803837131742668310816525215336838680781417386031571231054489250766733025560587563574133386375202009274502377762913293102682477579951803613296976370372642921693187160964168658226716232892413693241919786653026327874488999074296627625537285495533704974002878184516609573292562857069888666507881254381589667374709273223216259431653815282850318331485126495481000151092327482167369028787251876190599810631547254052049848261240815742980274750914028053235050226934466592512782133592050693104781772065718398779210676531127337080489058678533179560435401581785640393927586984968640903816000016139533731734697498574180854063579163087766051748491655966325656714292051326389103057685993124439111302131814169676029282537067237460254575026211848078210340057163688390039850674505802196484392400160159768221686078458522241075402062835251410307491140112722091747891508456345222923017965041087276707194482751380923866177448028167407586709694308054952422516656045129917503835430903790802089769843634665693010332290486080862098663944301121337261487455379668279437612657735891410815683942137196927648568475122173262309707347310439636871673984154704156624851218565147069074199839353274723357697256419611646366102172656884073230198818329632766281939844817139273293270123809758401200142172260540927145792653105171406392620873856113030814730736276088124182699801503156905505208328997027962349115540829132350765687568673613595017198987803951772175716074670988876764414502536383917548025389246672684755590901748469210354165142007299990265094120731762353875875795420957815401646149078405599245885264186023091712660171571890367477045394562755399471220192000428641236067364073758785091471642696278067120573643464483449291248813726833406935669547463084483878188198748588819848809963390004151314070233139769605426991280371904786802698044905811613422230940339625650354132907958881292135287282164280830061962879157025496050127600683514587178158307754259831587697516288868129054591796346736537815577888703881144349773963653939796033306407866857116970648409272769483657357671379139093455702145947968335429018262589819685108665092583056288897708837089539490357084041547070091912108861076079100343322341244630884889515798067104591657216514729972310704951303060089414786054243423929988827713478250083614733966292325797147841573364335030506432033128871771738834412035271670290666175008371540990785486856888318226371231968869155750093775586037847362541399688623116308451234463180447555586797236469908970126055475458701257357485016280620530798653788358835484935750975183847303069294831060346400233342737979104049647616371889303499653405588467606003307374179988778393073749349288769868977977662444936560064675141552013715818700227128327926125052570652397582649279665558847446013309431374451888540143762126123986095119259151513047317411792760169641487902259756169386315150150664607833575341011696207823230161463600842486927106059761707446491530883021343810609987281754974820676282418700065608408497506445495433482515269743077601018546303889639336856383105545879327893344853297723483201506232032381816159524419524391236947297421191799046830906729281644848964962481015126468761483921514608799766213281913498606792230198056982291805677517822087627366904962102108378174810769815135907817577981522987620957032956884420842865874265892913787650102062628865822146146149143982799680925436533792099518544795224411897792900110687425890721173641957601676482630728930808726726138366944343935471283359991062769037303390399543703787311525322508748183392383186426265515192496781459063986739240491791280011792408202948799200224294867636723272042408523591499717483765431979285244947936702968944850729624515988295918730629412392463749206388526539687299624743754434799226727156240796840887572755387279802579863278305305807565141974814717068024765010028375655785427766802490983641613987887275880706660782496211183956480876926195989650329319103866692665585801760643883981463419217062440550387318848421952273618507867531046129996238198743392834822709120316692870759472555962073914245625007405379476237396529937225586396191872400265419630020109178170008012823731510954482601206537741487712712924085624437747088424336394913442445349553052977993050363776781891738424973196811101276315505716935938787154980472337464150979445267318783391366147391057715369375902332204524543693952092973312592342506818990368760211219088864919620933726484511544722975170886380627768656350097099291816155049116560460494132841759345806638519110182739802910023775880214087322267141929353049656886300287198225824213348499489009796087986741206287611386882510466177918036263896404497102340263601785303887673763692948574553288037794267841098568461560285023245766494802238547320563935382594934268864298772531836588649267021922188678363115493926628929630040832819236843116782269409990828348326026164337902161246858388757724600053169200327334417223115200883222666093943191100883870905835072257133736038877032314992727163001810242529791513822815523180958652530405735983184922727295017027724885101202162424098539718998804355160506279115988140213265602436636697583705621616566453614606714895528736248607059859576061919429844300516533254342818184344719520782850670062676609553106386786148271626763464418943764442144381142379084503496269509559326828081252219941616420347753430000829940531647423836310014404348611299699936847384004723734348249464927699913000291295973939793468710776320215158722772221924798149455349757193223442303163995122741395286896620756462579082031888403912570564460024878988265473206967939171497553604498877130250752147552174431826591140689960530213571565606676131834516393700952171131321930100232366907413726164805768944960755231226350106849522167732803869295420247359099616399788480756855807922576973086572152827650464346503620718323299514014654349174930808109587381568992760770863539544803787715965024268478165412836388306378794360370123575004694427941764154786419909799907706189935279050665968094345091778758188868657727950300530911085842640186135847925878131057466000516197663905211967354460482293926075722783707509054454040036124855426936008216411067801728472842535586191067045778802889490465804581815551581991637052925834487297121710259303021070995215161777490891889211740340791388441130759058835203317104439274168743701622873013568266899219899773128945736284910210974615209903122943003923272937016290116584463644837789917889922935227369521652508606194972565500820569864140968005568866859748984484151811269017020577286116558998905971764098620348758744208414458740953983607808526178348628506538878707659711208063451683246460263499723512593316083143332180723795519695432853350318423353002445540342783998256850839285844973752585331532406215477273069807752792976421349045492470963557185078363359319409812253112520064888420656322835666023468884708073810209480966464619084181966132861033352148268332052692877935269025387186223383395319058020396991677854915026390758784199362585813340089331102111174457171789659013846033413199474561604379735168888996212568989016522579907518937093457014846719242769754958114949139117902118659098356800243792719104031935747616849419239842720962165269413381266953491051749158490868085725309141388014816352800587607171431107745420418962129594270911333580716447865113318104893037928928651937931012938224294632735316770490455608597083191054751425326625745393204901803829981444001718116019838528281860119375911410522394431672865529322736455019955680095643779990407852993737723571209495012364578875299419167907272833737126034052805084256512911451167640464270678069041564401511068656133129195601151478284515593592045156802247814766825011582797450815492963350537347125205504192960286677674358841194831227320311182506090036984964172560979324805947193375193866288060272355357273485617534797341032292893021101040329404553686234602267268357155807447322098624079712994066802565828174070241101330351250468043827254031940344185853156623886256220059708919663668728469894733989193180852412130904996380146098321762272761093448211956275359205010396312459995964642183891398614957429879930005153371614088278162976925836147627420993518894082588393420887510714483702268674818935487799169257355294249291679362091705039688323931223811462048406485809411900799515612887180474788599294263270851867565483778899136899500001964678054726363076275433001420667526240601016218505141560236707234284948177719123587754305404535485320262720505194312519122675318868627642909673880809325337248769856323412038330713040713063702931443989723964073610824810039178085506316026737061054612653540199043633443950906620495807603996080754800681381556336013122324784216356409844980314816737694763904200020655879404114381219170848814280163253206336422566710706384222535892864407692492823832296842980414437227451840314299773028787483437658709997546976002057428273913541074668597961896543649965591940571718340478391638237348873969711524746367470735321825331551028959007293088061958562150866560676494331277935197041510072367028477508592044406331931578010549717149672534586267778908081019484886274869265060891409941790196921194372366246185301162278660884428805218664814483223836435257538101833865932821420777918145654817747061590429806939194339198815704044997867411858293928275620561613783174046832126931037732296082683051099245773269451833004052279454516638094373444542232724210961086721505409537534953138806817918905844228967568343603511648006405175265473642616675355814353341718168831399258421159953348353740224553171028210673943686244800086222466527491399032706463634411461053667431261597875826360034669850829299563090096106530485025504967731764884878361679826258972478027128314234446422629590115605405608893692957250820332281520712090665100484731855806503912817699789226479179363811928999000276669716538986088462117651680761970079248094154372810513146401537545906876026088426933931546386581934995683383326486654966844015834523836664877106367109113306766393400877739994007359651854348463632692455876534064079376953529385601329442738541365002424461864837933599750303368152710794147670071784142132491048773172205961366358791847822556656027321971105408458855205092351483804717868029311942977780270090995256514218650207357413939240891126730604776887986360273516931728887108874405673088235596037158403062967323092949977987740437467997818333618439523334251747489341137317403335398545029751602276353585960070113831960743328085001391000132463049633688538098958476636740785416510047113483397258182821233908813506530613581205468152400455673308004871459636931389458154916606448560399115297207899043234236717738984297510186043327807436222483575185648973608282498993936456063232976418290023734806864279303486131240836595383822449547485064559745357520938714476017978316983758422394653793893641818215490801711352739342856270619003559190932570049712112564672322877408175906490872335115533068246689523735657293721563901184396763098376460035162136070101601982014378169023200614467566165217627159144763551876532000719678924102495448456323620004284882463391691281182827655625403512578533165960794454804618970896135688656162559490322689405820563128277497795103968354891698601226115560382800658674563149927439888936359891293018721378361376689059624426320651364988346120755324165478798046599124205737622581363010004506579049461519815361402750834664392495759801040944730529362750358627439049087236282298885453223602802726413019683397519567920506787175468258303800209404853955803914079521474785805820371180989614338528194650786923182683912649381919432213698650495273667336495851570791386644570910398409068399895389780730595403093243177771677098224229358730382697470630093886416059411907001411194879337342042117784291087666169713561964348950789806842713748695669089446574659221807466769558218737503910114424316369864265340995504163305819613491431678698394477052226940196458500071130025824657597248298037209695351860387754414712042063657040090907067586662682263768142250424709837742471436455235773453117887971785884018037627387124466024038850808512302816180915953323770002997694850167587473457152720652841171052589179533714892416764948745002543084607770192643675132072415404754300139442973740010560141787566718603639669499070239091992411941475819194587884884815953980250888791829564473171767106874412519595491902776833128627305178936169717363383194851963355046076626112581049143449917883194519204251255825977891124627238533839671041469995625665885440751217738562356898103702259010389646944685382591097673754652160008104704125152098870410922747232981836798130286941223604638035967375805975029784639934743442915763595554787912404185590997186927662122799564786305930082238362731855511050729596465379267247180553370022922671594124172215354582202702188829272677746233586244683002455735698408592261885872684590170461311469133633359713833097320090057263417332107858835385255203960735265561921336453101199589535139787845570579856221799996653105063535074652569652556248767518172520260803091573148384543180320908142623423958834760743087241699963623076107517185513034361968773395678827552777716712338465599187916285554219704260145162873683679606069415329051429903312045952320657670407725468764816502924525650563002106383933833899143594786378948982988523808547975845131080083853251528950360435494367989487483906051084857303702003433684787525775859479521584773091847443287075403273603370008039677327898496076087557819799029099806297698454726974389067774586849417552334819882047791021471203838082585096320442049204072615933851484644979856878347251904659066683786025881504669338037502881512727341674896632574198741597207492207470081014490006265462374671900124937380671842829217015974451024132599758948884422970479812249378942279559389421759036101830668721995364000416594606122660506600878482953254239796780766609210829068509632511310778069465235981602591812785897446548593848950101691298019739291873976930265519655846595505733471118540586019009716457825612826744070505268585022625237838998483147518323871313157645339667548434982767353829255727814584837627246634167168770052916884508129743495467899100712684108507057241090346296558112046330274957346295327481166742678585915508364088783231756840089598302478411459070179455989656047984459753024398149585706109540469737497257757413465856231261318747186470961904983348879419467482757194231003970444991923130449187806027373965037631828930071180108406715504231819268347136401020093351093314891310774469946981126333314925930696915731658022920540076496975317084803814968536585797973223125854535297101094032275222683253535099398876023611284401025516003423215732144760325359867660562611720164663823612328438742908783033286410034165549702699494240862837732318836370845510742979427582276183583389614382142685072564340180187970302484600182127806299301992821553015525912252939431039257119364828716669493967562211141251540970981382382491785131285785271658353192764045171719003959647426625819623538956084767652139761743534354214337439297876081040981586426069883238092169795994247594046592343332130391230489215830030809703628194828437073732668763129887587245678287784579889618338615945556694009179443573362080611580320708190402035574909178273941150108971428390931942344929884108965950973789824879929957510304665318380621869465543664180607534277208742966196518446540508800265507191293895162371169454724839192520057365114617069671158851729304923826207985417228125444323331180471729342297396842794792026901278855669841747760508211837255135531844403310432066747935169867494780914499101520392664396133892139820235417747423235058453307032178553186703724450537970308911566952848650267559360917087726634059887106774193083994012344484072957040666407761516728210798995733958328187905894774696946906069465314139461821181644367600907753149246725203733120529661680088924335714332082395874379706314602991145969409491071987958280938854959880602135490918248076726989942098601165695702560659071230023658710186421834335166843382312652175323840679562465053690767657696154247598543863115840255346668170273393252887134082604669725197136612357216052793844148653507403112941456008022251441230725579106997174029453344256285002974842988653362187787537564946274901159420660850248702218664488366593366428097585037776486187575490252745924937910966490650746140064563668082503231111222664517322358458664840767019103775742402509426686590659483155550112531338582273971604249406899223781552408952315435548159268567712093573197402183352390367621482222649499354031321125517962694806500446476746904595955478412161362108255282055228932593931667638646334147016521889966280182498015302675192211719736041441250365936857154422448114074469258264843127472897014593985881841914912148051257728655795752633814863308965171541517780240365503365884917210652777688152084800502999151036530991959749715984049597922897753540708016504937259916360009361459049953650842669178024323954645635949492324823385157950754044445754903696869506562044686510793133546643646772051122650723954610689167779743353965125529270886338280061056102602734421503707181676544471748853397689286119171524199792760579936017842949724435093758671636195605545213118712330849752092786646107725210088068051944364204266894099389977708354595057840509223733818224163118478332412125732389579265285240108969607131031345760132503526799263814766654257908798413379778362896337690212140424299576968933154349264670778738806864413270831774216086157972106820888874855258149044182485278538959589759451066572560426443693285687081841016220472466518828434597502708925692774170093106970910189241343061753932569675666752646009268575467849757616739980620547993899835268560390554578119411091114459325850726372195091911465405569133633037526160790221438223529071759544471123323295955530145097137183250342257377771126158753525081405428826690872828818079651340430224416775426986233061051139242381111802594556870496569016263075652638342170852790952001539562673164036309422955361238208777793758071938915128392258287419505263595114363622891658427657732853317761186831215492780540543207886184490990151598404051222613260041455207710528165321655946207191534016044163489345963750075209517159163536486964126736130091320281267365143603342551427899427152263196648316645682569450529642989180976164535087456950710578007149494405781154515659091301971541877279236408228727823245284886224566194271660301414690812365146129451007119216058303590944254580441977377579720256394113836314338888220014127772725200891927113947102737616427289604770128505622936414766119545418306116630499843574620076395117488546290688817862471152910347777969544185628741620318389196466482980500409215280920223100651980799134814768344186736172499389474220994659729390865026344929856950103692545865011177502847920902769127313274205098189599660338599916757394001949891481261526249845283598245322665054023268940828985486575918774191421158508596249437786621825262165359084937793115195154886102299169755345493939323226529868102604721319711338827994329887031925287613794949413995882479074609799947156764082200850312882908899866897121178022714859482863909030877640674885157289575375785592629648509415886785324235201778064600771498876774082526527190287807011410787020930096865368474352459535492214558769016545806024339161661456150365881215160621029780389117325410993853969352355642753966120671578435838898201638724683890959236003611330968327728404777921365268645777616443942761871818450977150779179906051707927303193370752581337727615549791153717051458641679735506161202177115684337393898713938040769189613370350695659750750057744687966601012669205512964243389864482839111804916810786974394805319357337997180065797015814348928534990689682412151353788073265290284946159637575105826202773227247633371312230738422045746794124987841512644147904116474662532644212787256102057410851910125311805343094513651328213431498762282866360084539715955079349033155713316200309878018288514854272335904942669932963075039284148694899843824840836921706564042632927748606046461190453771987951792256815191700879955796263527830793101937222313298657669436980595315040435350233658608784448130840472896479972913607240317450963939738182611471757458765942630059760858786503235148649623254448083774265936411470670892034122790044662404932195131528224573547022331358654750787842736289571753292206572663169899403951586938890111032827791999251460490387805562791589441296623638076482442489650116224819115293972541266975782350056117920542251736529644913934716930144365952433810606876466491367940629942221298493991875672393041686293643963249903006241820342399210571100498551465169781008812857425166768616438148974325708770156606901487084793293803668490340809084426791306501179178420019620807433276001036274977044008991060181889481342111586624591730943920947349462731419030491426822116815241580132255838330724852835930961584675138748007028690480301336284933933701785610771904839748940309757485380342533904037156182231403368003448715918135601965653422212362455561511472446099385130234870059812055260124652797701290734227300702990649823616217346274433895257200143693440169893122221921578428552794241165965853194638588240070332468835240112995245027275063454230546652903021284572944777669969762764505114551428727748090500228463576666117690810439742115690359895254561920644810148472331539008077072211822659020680317410399851626598582556485383732907347831928740836370702924715481457988284976342203236996959230158781295879343968885385489473290697831577407423651644725246348408673613430858032095013241430470970860743795413138562465342281171124587268756062944627866179145841938873355581026057101713958501675080739988932553080710758508125530138157127786201770699751807928801479292504721916327425187470816514025111583774272492253639995185300787460264382428864525427779919708973286778840170926659091546766976714140341293339780569989748307680949719277525701945304170132691779963230012835203678114605885414536795904101771945650139329883466104391489009724580933482872145266571449798337052951387812914565364267973928140438827018781066147861956386101725295611682801006331686111035227957055636674219304958145413557276342011053201786697933008934725401078694679412292866159480416402809144127858734655664824436585106470041768428245419681955480981805261464545229945204540585844406283577443150081677083686192598000852315321219516315411016417505105614610111138070805859280140240996376153014223847337388070612005953449132773913872177118896098629276384965996603316138875445535043304851097940028719257423438155581032803852340198203259155947476401341327291530037143409786380490842325389294237830818587978862893650882349237524997034456605520864311622871833967573181417475069442856905768398732376320717457421561618917105058031395052063440304759479517818740013262215156035009575695078494315047147469931487272519426791552143554605760163807167986843679433457396160866222876074211092619787878578594792990527930360283179956386815045691101324261791787870939155618387468912347497522248318930761880881885345157900357423526307175574935541158571142980635296733729920242783838468882719170155715733536101394763320260168525770984353889970899529174593425284580296066824770034019834867361321209052794672522631425446444191146812789785917547065037756657355414769351356916253362211827579855345062613316162146798281724325153874199935130861861362169523578486269763753787526635595263216365536786490838191975115600148678446085391823083478856544075249673129222446469451288425818358207200119934286705348159663866400077898916819376751842425606258628501055077226217869867723591156347771359393029747186163119711301702893537436633964571832049738370922457325693771304665018776450934279293961060874722443357884696180432312260484458380412732820714583027995424559196382572482806631622174226867658325191820655937655587181413083969420600370172254905543522146688770180227372400904483911226200322153274556821699094398908104801044451556266856227028051797246299429143351355906307607111609662555958502512475738641589216481654424509244834920354842771930222984210874614653215534612829033653389586121811687500152042165344374463285177958278374521164816047677456766321829582519232530779419947728748712178803240305795636559104258528447200837891065004545735589380215256347173582899663007125617234503401903325505464709807596766913965303405638155628408058437023312310754171526124406021874674489789984037247530744436990154480609980243159435228247914545747488637896056988521016334309864206242400125315485051812670084154125097958104566693428932260555989465649143783919201707053784838093467030329973907144350160430189628777569717053058134851628865078803542993409300603877748994948317528147352528058033601908995905938352206563483275543446777900940198643170464762978975669869502633491770118562221109954983879975562047876333934255630157296462247165305256259176541070320093874851231323927426907974265404334764371624452203950913547206915155612704227686460907442164509030817122736266617752765319549453679983886733840809248825737910827377003342787671731636598282179652212074834337766936342529768685972915662271185938141217242084725533791651346763764548695083582805841791842641664539745373855459325972738358857234040790946781511122611771589485301456994904195633064113292672026993690165136189589874636366359634207655361896501794790619208364216044239574535731439248664997714426325019502699476578674897145092734670912340286789780892250463914047185943011486379745496277296720759991865648950656972358484072230228375979976260825692271331497457568016106732670758003614715861272405001812856085109055462437342172753975353903632927050379386417111939892779190782421684803782689404148892613389997460769081822112688903526721977219875539585283603328836660029822160549207798780075905280828380703122266142827870298632414158482612349597002405743974268083012834413345161920210295919180542317999635197198065241797885411563304211697771791315342575657342191839007878509413869573128146784851609119678472144255470107007207734815216813755953706642501772409765049721417320270417312163723156490205449149004596012043776769350835111801109758517419873891615004144533176097600427615860027133167074484432083396719664946040291167306077991059464696360876007149406653728809524756849237567593292351529218186402774003968707302987373966573700675502651407677701322631069973157804157250365825764334391622611356922799756463782990792224619741246241598318448837352099301208898797097605633817739845789784159016666502922677192956170307660980612184920282519392747700479896351836002894306114483234996542807315364651990154690531471038070996235907011417852717158075975329759235464653842130965445167785146986403157676886407016780884873751033394012060871465920082219017153387774072015619454965160345861047278867176009738605025796810604069215708919771447512164155381540352321263697203989811525440988469823090092185461093676900078500539255893901573677530616118894907006407600674349917457219443543435546349578802167772888099416376234556887806360204090464457421611759256095339679498382160061627725489115586257145644695797736826101058033848005019273350493618957959483314706043832995427251408703701679705528615879066810356797295145683725818528393951160967848430612283856955318438629100736212559566810250129521859265906014157303695346478968717820937800877568602427811776031455472570783000638486013536002689495234026108216311562023371750131520862551533331119180232223706739559369904841772069001886752045494807002862318764532719810484238773576191162912136989343870530706397545525041382559065018407882111789285918746539364994257786469979677378915661262138062361091712056919956242972267766852024142431416719618045516699145188775859529317739258042954275319128241742927737083392216027842901830383097830231503601612295091605503687972776976077614758078278973966060043406930560657882730202197500356219091629580829379289601530411873613967154820566407067553593981253829160881404877669697255836228761014915486891520365339910146566753641331289408028867312257787883880251595318903202093252541273686158976930631032150603477248710141177292557193066757135840534308951907196246093830431940208827495938814037820836536627324224578353713372836270299544743542553892991341217107276233875004781650016656279377932703407464690872803137249314480682213585701925462640478541316213693529639791459049172538131688029092093168340659984400451704416433753694785580046333108806280334770483959766179241802092666514578087084147348447616852351772456668655092038595832854137127037542644236081695430605627923322636930720923216398092022751436849198094855826977226655470512333744014260791647968777417915825241620588152445801321936320877102459790230352414675772846516905542260585551065125310614980341826270783335867896727624522032230779143602412421785362950665656707906278853247578265157548984537719143432240571945436203385629061477227495509711747365378566110903513877090316708841928893488775130022769365256465958146558771592514202739162062497444997485937254030805157025964744259907341830481115359191983409028952846909196151512674464241061400241038484062498552758164809246280605920795483258455640183965326192544724128354104478665275663375810926400358724491154768859167614992853783568745258691113733151953791694584534133899570867429105306357108349339964139383543796492663166904006833312261792389273110997333878295608665649097927310984839760292935661410696180499874122831489065030841558295007914796033378810625545933587430236269144270473393645471778398899778789122949852905806733765203457421448080732734670175934735504620615548675361086431806788282518282125327833650604197377949459833883972430981317551627705639048910866889497562934588589061745479020516372108150526273943767692651544556307089902918113665889028588241583021020616783766731733132759378024624006243914763582364302176800294906921754685698000060612720421880679842786786676097870611280556705740081892305398014310302842232452831381584513033357446885308734226781037150319762403937697907672670274292494932053798791334108994310176205244122217937175610394643321813510299710244653273968292394627920938295512323557497928614171817701415572216467454962777152461442620942020079536015787502497089067504622395671717186033951144171221123863027467110747874053639580633394398017555272908445364444910861473891202556883143125154998113019998428834356129471877901292315272096804539910042330981096091813889324714022256171572576147198032775146166182387186169615288410260688820958652232287564180507910935166740934297131108607769644296957154591466287364198421775624216422716077958259995415867186286460385343011266179282025883791554771385291928496064521370792112714852073845323893831756098801413236940898457296238777219980295645558373874870563547591217695971904940957280122755021813382548543991976189042710414352763837933143554175740156708377507956126370233096288564471938099432353339174747103681318542803077174686172998548152529832709488645627328422835320832532570772796065605345845771707564790755166941710394417387135794497990453180377784447996727908262956291702218197326145318031452072436022290598117576979264869679649406283288678116548894940589085805944117891618750292385262382596664100417712851683031463973319753619372200379368503848797958551383698384825913993212128544320688073491950800208632644901303857140153622084605132565676411305744381231461076207232634868673580729014727781312125290588694505243597649489122397477919451150589454039726800451115949469409396745232143610947169931243390180318332590453288642530327481334738580792129501375698710261695327787870034484659526468646718816080980420604479691087041439921396096363070473768690135456282824297741499988461684397641495168992161787453996821381432432614500183985979164396770171942955112126807753837866177649363923030936290185298221647094013364925567486970488999688748681553288746625459047064212012925668102391942622340173514237230500516914340230278270564857844396598473154932532476316667932560478993019323648353738375972970676171968166718505239831043915004910197878831716813695695354593856677225014699062942690709479243289686235210076114664809750516217887733454176010072943364627116593630015770021613563620422292608131277346752067140182269567335661510686098588350734584703591868239030789675882315070813463522325755223683337544103564131277929209835682571124692137672861685188146040973558873158030495753505169332810907665259380360799145527562550830181220208816885708268606583781543998615678138395163539136550312573162128062785898221573294303729020282615234492487551848679758854328549285479005059060594274703624180837296714364605980153805295955181697529621882750791768797631993310656950277690662539887618275730012802091308571277745621965698309485830578457404755105336772508273411940231555857148556954835939632781449316619857007210042819579374160761700263484518322269749495735184732827719124293070507291202393068644389248936162645815143407277680538780946245268482720801721403514437611292539154202117213653163505698303539477155910412870549591963839467996507653848716725335864921268111705929100327176813142777496013017527474056262716784895318087775570739496197498832942648642061032115804473011774804928174335538395085070350631675483634225985778536279492099915363683130393338282502212318912492319339628728711235777663183782761388850976210097160337697543909840468377316426882360432797409184780415546538684747182445629638531048097789749405352922850421691250989882352442072610786514567065203444443549045382965090078595878584636524436036462972149768462965715815712281669607400051803959351750005861053437664414648250421756500917320342927622791996240463723114999500704189923336798898208474522044497098025300507115154318550480864959359484368555737063557305341845571513952541896668706879538282136478355168834450575477964483390942914936565152017306862840275283467333800821690317973082191646756062319513596380581091942830520251188082253138587052500868423241059065347716204881770310576966404332928859101161470981350096303649644067415642375076714670669466177404509691369771534685121725682819490149014662241248384744476631305547169907476261680422879727087604196031950813158958694378352644790412795745644556646723010847666797584365347747742217766590756485490642569122579741661826592209635852881609871219370969620625504915750845493539611783378353756143737470340950913050892390447759733857061080268584917370033479604616254733270379195565306570313392824327751166363379610045359887956681998302976024735363737802181663650251352589236656588090317016878317904825151310420908331806801156856238398305495512133070283171898020251026834360222462915115715133104672309766462233867699116735568021924345312754392480019291087733252786210113942103258278877672746314128185559008436171060445891227457175131378702314961573091805464312522719279240157658915597278632355549884715420991838061120824571524175379220771164477283659406603422893087961553496369971786492611247636945236145161993126109486330373289507951399333177915625850419187425817289411571784916591597888676910086028343232974010558776388458389585371880200223864115780322089486408102244641513760568580815428599748654838651141872178404232387902506286812933443092563705899814283175749021075802674551775241911768644828855131758042269358992141399985266112605032518299702915291249138534991836092618221850986891504325124530955873555178486453664084826652098635985080798912294644733873273810239125137933086125336536854140723708437247033914327554267090544043486439914817606196572017925413334272371678750351586599169508275233304483404491698352909801594776204643792650989796618379599692351154068731997194145501125225194786170575695006031300854020448609916054111312960256775957008674636278884776909671416571747659575577110830868464625758867985337560121275091177593424299537707363080766861343644218612625379349060871828240288450601741815305806750803606958433897102199837249135267434247921419940805369129625132420796540750399298510098788856431969269098762895734819774355048485735129506065094339101994448338525906515331545228785021429308283721162299506858917102811182406017937586416218636605496011679375672540364337380004134221897294526310186789297046842536082195643025484652271439930113274078042306454835976197855249119847725535514486475899665677117641098259001035567646083545688437777742460749788711316541833418304574780832233389971038563036392232037906360568896767547239218157015875148445443522230516580388736133410879396223172199083369810355685671087645065166037200824627884021509910906284136881370773243867017305187362820745734602467349318076421409821921068235897493335434317344602257921678343654857551764622289916000079502891679655277605620328993346151265251715858634333002917061171881557213486506956140007773168310861508881453895076204274445517348556764639583743653550000023993073661049351887900940402063057954229632432356527901320604743861908573450137897101484484531460792920522959950925941859602265699144498338605590865734183672524356134353124277950955225839179571707191160109509118633747957824192975981086278568534080557119979624960603590857111829930712178957324960458363933355910813717868329584884645296623524330530564394698478634729728878638570057423478757190800914424994321897908326543963112022844874339624142339785170914792325103950073123784182775196718106096624287945732217394504621250069141769276175976899023597518704482545623850171262960819006430394013828128350860891711993304433647050090224901950695624984196112745925019051016269701645635414245951600692502814578289757382908033350142649837644568743090893591862299985120528545943382843211517175311325540743084204439051963129737942248226364709379879184647822590834057494008146573884640841161188484841906406819048053298464438337798128510218855983084404833104187179140147221648845657700147757200899262661722827348048040931928903913214569250910824756099947341137782873814075320284997307253749906710683614411656605731285786954508118363115585383803243061560237389290812508530017159511142068397778185304442571547859404673069398566349975594423026439340593836084322205212413464635073841727464512575267115917280302460748678693524099459336518917598584820495712956795861118977995416089536014275384592208989001035853916810570178552444005516596334575399367888495733879609786755317645582630982676030571818453107048020288483119832020436090119679991781373799404625464277797541161284035927898344599889577624018708867804420220310016516867651953964066570332747947011335714900684070140999637583934984188396024961891268274038841260789807597424483047512098533557499220971957486006908593704883152075678171954592873783568731275832280670651151960367973657687057693567007813883229145040328146832005835083776598513962244122799580334143614177389931145177699409400980440524490210930310806811691254532384696496552678510543884980868726648693835870288169683311095785751472451573455017806632290458458818732741142932510593237227036385420481325917703359916952029437761199556191015931816213087422070307415176044427143201944019284498505909157351958119863325305269026715737548491922762587409974148347039457137768865122681941950063771903655328010907055214972523715046737300574087707530334750024039742765102289505616288480544968360012099803220884347453088838312451041230674602107883784875750420838404545983772827513721650606674740509441423564041041644795403205531571665231794801003715012737246899147083881064766077239010589147093012520716184606710088927893825181515832108140094597944577814507698266132855931355863991708008702770833000213188620682025456968670743114797001069501483699366828410590170928516997510549904500096879495676850004933481022228224143372280512895722330863658577084620035472287242719676249551654226168953453684444739739488114881398179937318184479747513799538253115008546922940057209307376566858118033550724955646000712402699632625026728513262883727747089482357033488644624541671956281481013032868333254203167889757833522214100738082717670732718639962476789364707904382456622931636686511910822590059723092922973081389051827859253115105342212695664967487782512297332867659735515213421450042910517026947964600004546541526441733313413605713947035173808692931812946218755584957309551177725083525365953539631993487023256377925739791646919717093437417256626493861932774764099574565178802601262920850319501555040834613521518956726691045813175563122815877152779520321391780952636930300687449765020286067433920479882726388479359262838110327162283260861483687693595341272794963598736674853953675022749943019321419225033097589627567514249774745391127147008811798820074723962954950275147376008869441464153746660773502378698486129527427554362341434882925621362065987535614715801309855601362243142366755255968650077049779554555168372410526903939246900568878347618614014787036364401157028958704544486046357526275160849720473820896338860288388694297103053372401715767213978867401663948730310537489668579937105669075118756641310648351846769427864845458588766381374050414340663733463947815811088785771888043075081918102466295612185958898305795808603253489110065300583595981549712614501363576583189843952730386120634888328189499590411651968569782690320399195362432536910630512522376880095099373828440360586431503478950119895324443582411738724342584234794351072498693359292327347853416218532109649303294483598609981058981543875644565730476942640326192268022773249385535500475692752832748997845126062420346026688524424814330725577485130287214035615541227632277400962751191997127851341508873268614470339951045059789561241936243507601303230124562507061858005172971533534857756267043164142720018672576513991706730942285357400206137119656249787891840379686341767774833439484837346336560799388649803194903249299442503365443224508410573835230782444194889830418036587943508931669233772906377908431379329673496727123174139081197558110655274764462148666955680235601227583323244042983759498756669496230139278824685722133039950648353516155924819140034991510095309137422964724921280975446252576949033643465541426872011356239868007270427091837330536981593755350338011206825150161423175757346538898830980846714636990257847720134578323299082061138668202348524300531092800267201059105801104258962373684801782958844344291045913882084277127930133146876772695993670437845499723274185416790033659643954602633036927636337951300507118576460210158738532254613414322979751709036199006510426003153650674692353292500905829849696179578527868979709145945329345446189046644553758987019672128086720389452986479273434709136242491018633745684344091954240975295195524184244954206407458900866406422618034474344102302400874802567986503870597988376772748299777967202085411459725819858146858323666161620447410815176804605552856806093814617785301117770402797290788860170942514378547011022770028508428549539457107570728273564256481953169801459239502176790340521851634703345494883019559013955581552224027322242525822019559746396094255722645487231433769292300880815409777676979466203433466674179661585594408430184819498722166793567202677597539475437807757022173767971472005230385895428175090668781599537851431788767227956498698687775099075624078073861376116265678223809052391915085014003171912884340136157251830194334095137741032980837069563559528908722507083430373970423673312432018386899956534784178330824558441846035297007382028640698900127850505973563878171874987775195799442523563112961246537368527056313390722275170570451230591700105607385845153037522925899803785910515614122226012963536115591655122486202442329580524713725736787056130197874419191494526185701457704107526665467232629597046582256489402006926751974484298982710223980661088621380434920649323282290836520454923654183566893603890409782489202064961361980821683144739957318428036264994816681694797726878878063411510278297324429974597493608112160275050155134184534794760043550927722523422080500977980385346491071911692619159040442149721373135081624798640739657132507976431915468361974780053874719241496159776406947444429847008081089047415500490154711498060166162737191700663773576089456604423139561798170778760425174864335766097769899292977064025272067531814565997266928626908333806257602398321423608205022132034431925406090811516017199566427962777229605865429452284197960207765877209861199988080297305819434876179828331510356992092394618427806419807423685116957525306837426503016286046145157148020096613523003639427392091084200707138532711228372434111994540893638937757060013709897432579081692871113577585009345381850540738232948722336275294837056955772477545593958765164187783457215591704268641694678330399078347199406999800047370596077854594796895924106616303744357721036013400107862190358894399881204231983320154403355336824125952376566518056528011111883476636718540670637167007534448172074575016039793536692206632120150197813866909207233142400691133396777266336502699889648441624960088195357319737621032605525489005769290760540969111377851997148770710358706059150187517040766531073072514004777943269345311739616614189426360733717239174814031299039558546672136380809692480899870200640588058467389661570189703886369024080459143422363353592753338678839982324673652380974738965555938841925622771810012761672284692687906367726295091588908171116989323119255751748332404106933712422570166574219267711743386022220492800733020328769418102287325671807854969915998677098826058187812528616248721984425471742275242084987569208529160166790061490283135313203118385625379861344741225643716362682640948526105767409399151011135879319911149081583844125466256137665179624401174291705940509208482550955137866490271967038791028059052698666194853203059650132805052453163946009724674328213811986921003965586153032578732428434262242143664393843942210827721838489232868824186944906598905527621278498247899781698043159355277458709246037766513230219680853588631355544314915624657910975835096183182880042759882550865783412953359148917699858311575522680191194218981415068133363899167897452922796912049469786577702254411188382890140653528674705656759105222205535615112255039946623922836608101318610901497611580708924045558552832884943131956648808791624345808550561347333681092888947142624816404001803208204386131804418517867586893420712334470456886791098080834110669832061696177474381575722430710374329121555285197187481514319624745807069363950688868120213219111189545512532479439254316429782996046815499590014461409131725085939022634517736938806926301470549481561076790326409558514205954030960610343677915458894354913570981310872076084034402015226572008438312689332506955320153241280018693815621338935095045287014265286643326908977720620467013252853847284907487168845623744419068021670107314888173425486409668860454797634468781233065610899329408897527240359956832724966557535398482054798640768793295634859541138237310757440540749465819387206614409506563482034869309780252698851847528098321971696575405885353822464639767115277220859218393096221092634748550985955035498940725201564932677436659127744734326454538507328977995833452034736886845473168604282070695304437320150252391501318344404034766192158245791247894187708453254154921308760482025256215242052102677629046887938715348956930383814716153372418925866562607661720733836169266313243319466096652467759762896736146337896243298651521710002590720955132479550575750905512361723028983784628821390997342916687737084753790314783040496476181676424605327075044971353034425560981683127198219885779248576642922371997211137137948866592765560014820937268614685162331833173926103379113514340993305613685988924761645803333531119483244841536522988710740821759428907380532520697425460908028653177940466618384748814004760239491635399111657294085748496132099824773921063172419589450590608983371177314286589213557828473580216884019098767914775849841258134950031705444968823632391799266458284477568661059721094186802885566283897303821236166247641789560981219285966966120455573107182837719163876791771163854328126277676965084334025436039818984839003738583178815232688711242937665240588155549861535787952401333355488934553167928353108216324549498454960793608108266378583553340916152659885509383288923722753995496324008120393225425426827621187234428999745733020047437952656813526795125821620664128185231001254522924602645655513852366571654434018438722512999958306060631162575366630745266273570025094674881162019945650413167022606330743892161570654108584852699394578350161358702692840204022285208360485410256818651259542962465327191769653216464291472577062242272036704586981164108636623615595956680993220174462771092408730239994909544242762345466907545618372949675747484303563162750055248086022306445048855431995575895051918420191334631251086329987419719525248363122486348396842084515815627632989218539796642392080818853196404254148666885175007803643490368159239844376440905850240296730649334919819746624312286395358305300511054858303052582959599234285889371456374161837537949003946212544608538418026208198622601588923710897667854443848080428820687903844838540201825302358754071552344071855740517836515660709773374690922370384091935732893538926392549765078460678983394952666099028678345782514859191056689403086589023522317501062786575298151204930533001889606569511148120900186868151906588828861076904987545103453604681337715993587258596397832753547562070028257934615898475519973781327894906620030453876255012124689043751268366414381125725304343570134752076227160637425953102400474537997170120336902426149932089838976710861122762732341700716067089145675016039651180754523709444782213846398282704935380457948000744333847221744030117488040527271885451874321285646596975058953777291139892471760226349793553805999439900702800976133496415058548762414977035297886769967999669581855200655038364259808624960384956327003136140002889540847097529125984035555034004445605930149823689258732348770471846157638933981875667219975042525341024958320599420005232278413384972622590679666272851272107024735622149314342341187003945176939050984698653019701961832391516855564407093084122317364551128361067184082705689142099101555611442059768515669902740051317937688202735656931940607481436206703051381947415285516184113425293018760858638170074817206466547795814849526776976466429489889291182922372101102904176343811926343559649497730842357310045488444332837677352659195970770306909529289567939451606219927958386445780931234987072383797888985046148317677596715382308338243230500054352799892516853056651551019419398107882903661155386244023462551438389931472797713637545679261112300093791650677812234166649096843203179998119689343526708557564397081982525897886173329445519551305527815497072587845734659995155033980390700002415666481876512101815042011408385448060352914474867751179594072166913942954957785960079879025667190785512818181841986404112820462208080235662456711095279539803368277895496109359289946469260621332792747545375443701592710579704688962627272925012012940522175027796973976543152462847588851247652722175491683147046248335984235307958704133369319638484748024479563648978010691438486282080434984407368984729768105099747616035610588219198124749170590641580701662403637936084245997926668477846690234288567722525840247741533643037555570117335885322141074563653802759120205548993600479872630103924122972262744774358509560438944603239320521409661203117995995882138741230760240645313551791027275484111503435962423800961117541762278073901528663586125063959926079116665403179023098133584922586414372478226733137357630517121206810454718456520177500673813389648702659238343737364625724305258090545995813847035314917421027404746216533178796554805590886321469595448497536337081003076072128354629872233055310753568211393367561380085448187160837114658346139542671837405173592834703259594396039776372988292524553815205914883082425557267175911079550730001717043019663781481921242633497733519647287658505211955576909417676682572631817632275590428668993438362929184054482161333451978565012876011437976547919882071096489604842783535186007491771608496072357048436377936529768923643832779815012633090054821578477725902495010799755671566544040061471580160505507467022350054916351647449236829156163797317669687458846867085434992736427168905937099298043093279254841924306826194064983210579782916597880704813891228402322539280858728062685671383653391419565122566577943361091661703836979814870704933014768948845313062052428293832163270123209210721653680541570930351605953457265304559080268302670463970413300950930869905461313327018200470081524456169717357195879609830341034776928339320616730919708447359279904247193864592930532642457251056460066362469860659408164395087382332984770717572596623107330151823401602001721648649809914661781539347895214689445548573165055616245858976098343806311169685054308495182714098048935991222955359339713343691114765042385238592901370200031070553564573079902190896769680101518150078648222699905719588456765260964664799819705397564151881287658833865621697641850084278382457211589025904456356829544990939432963201348402044282463085242319316907899129983365957627319646413271308001918259638852706385170210138884860847936658043596332964732939934405238278548094214757862757688424895576904994607597485042448908241693387554037364505398804939920332346928279538035548045099415758249777589624905706991517050495388624746101087476367200265517026162547100852102861258336617473496629745305617643260296762135290741591152423430208507061367311919916438722832004824133245492649439196173387821001966642511993694334021002370033353764584963837315762809516111236465782942760878613632790336413230043436455862764466579924280534863228607913400107612628814366219329428246813635581115528035675257439872243230393287678148195816499722067349411561939490711739690841070073265350531464402793182261144389848677671941965481426891251989438057347807361435570423089042815482085924422479672058072239872081892698329779136070155600953224584630866290271558278263142043265319831392869061895513943174889866831298085395413163774641940757617791227463003454409183283832923774646608346217632160370204873441215292040940256177844868516080919161340414618773996089472548768526048542412832489183884986171762139300739206766161651135536978872056198085019915514320989045571907281784553130757994528076668657290145262055341205388381086380292604029162470400215239692485322967221273564948644037976770079857368153615272755691260509256516257639882881637868787973040357101001377460441113286983682124638414817348719588980642937071249917740497032959294528041133275547697929568927176571073200621315452012896977805976008783465222750324151555514804048265007174334138150103149996870744203030559568821001235540837891505791410746114836751275306033685646605646944887063765079169858797671773189650478446499667545736584891234875119732975171880881378754503256546329669028114412517391879742828316907348911259350517032935162560537988420123291367671285583133202622943857574666423538079164751473665258005543217610884177727657356817849034245241594000572759668596291562283393864278327783757233080974237510671829775994972065074863055066066501344981035992695396476127194059594237861503281856400142427594612061574798364130731201112793576671640729649239941413968296348674612346418790348861884143628128208868449828991987233989797914670232676720935874243469922874208759114154740071992240747913196784073350018217186270824734280711296677898075515676306883713076594558391979816463146844053168653753892505003260180281858107421224220374223511797535484618200710986424767202762552328982522684807215534517443793869909948086218463303666490969483374799393800953397441796123790217847724091767432788841723504280077857256109137506203125282791298149607894054825312287932364031032607773748911033213679606169809374732076781417445731536864711912490953214732859374210313501695013591117459144377017537198208774744648155865860341416619239090274862150333794271434543968130222008437316563155881166337815367659466785715289243773431234466870563975951675381786350493887193867969349972527667416548072755384401433700705585381487515219731562259777252859742869530904076589470134080707217475772758887945390200929609539364802088764024297944923384203015719152842663701035719220376323467884615845219918139180568745223987065650576283521744680608016959772461526008464106920592803855786970413866550746044194428912091632300432720301226724905995384588040095695782520928118704581486114614385493006613222675834044222157400547593133744930787560732993804148555042955491304838453273443526344571980936532786647724825655019987096322492475699635550756552256085682275778816538418320000871213210689456956317924782859394770366607035324433756844388579293128800391292528008419788995154331286869730209283114862464654854306578299263825751355692113665245463116638749347213473356607206364534772375196033374962454486916423516305016837514462260841891961170011056341323295521303269091333274465261299219009766844738253075425987307619982795769439488599643415583145449210978418940966116694950986933311975824400612210960315833002225669088508909016022983396952040072464701041738248732019882989992900899017810833301437389945464775143563275909221454494189535631380477102385586519107736051827001895150847242399541664896902810613417242988902922312931328985814855759414004690341595681246692986852603054332623757755577415722502114362078013963447880321154584943974376261741909263947438339419932087021956782293122722815505915110291169406927970803453081304761071625992434740272134569024402262473608961241822621251004924624261814693689137643364214516809477648777764245638087904591039278913601127067045111928638425507441939122516695036024132826342965307645873214487444599018059508692256142599365652203811883758334803110632900709182769224919865463531713925321256004478185343698551774110298210121018084166188887042221911157114454012512628868182648915850538734486907789320206930454420113089796186138844611178987125392454569018506096683173510819430068616855058223515735293380660073829383279763871828636045619466265623104685752699409277505212316937454473682379116131497019355312503270295641060101307292802088176196792246910876467425118753839991757579355855627104396114005686511822201498053306473655829726395599125822772396907625999296174442883654224495514259784097775968150867998986451037376982226785520314998806672527510722383706882722458418837246320840882459934737307611695680316029675846300845719121197037961011512175562357644399179946564544292509494130547185012990892237611850180480667921474001982378171468685456444981596845643401269331640033994272061388551157690850752814732529201141998384286339154002610061113506092632670565343797516748407736763477979622394517217770101504372277075710787102040335163271102034116074327779633179982998970660107650947273424339347289912860238439834184567833888651696757542443219411665189722482490680222386962636594712493626311794313281791400940769284060486804890869851565234668799083000062619246819810042554991845742792453977365659756162737133576159104108206975783497163113250054523971660779833337704858456058153099652528273487380488809444698905412631060936223337446318232799488584404955143590432365120230653170061692918256925574505701435120919589806960097309746077297693041675311208225103003518850266547416500662477295772853306681555810740396005019909784217047129803139103200645679558520010662007881403993513790242443620176121939451782617986363620990487329872431428940595037460914808860245564467933631678565528303551111506422339121739339578436009551672084154099261652081080358386843328839407123648142123854012156074906355809258329156852285863383177805718539298361315207463779272528071095234468177697918886824714805477868197469793928014080062352167410422053410298912945804614384483138131575532908046413006558309722744067597898942957294874223786693215963438478571732465224237402307440667986704343919321866585352950362943379964683072632250422208107683465845483263791583357699826176152195472833299000065134995997530149398550848329465428852064476277450342045123848712036344542273288072225384300813032974003349935589297194468085339399811649756400982860817527549074365388009139539447539185693253819813673823376426630003926902877005742526913132306979539010906002285573366943529205945369803360810656927065274724354490780156233185929023341740015653835245343623583190866547443334720554785990543741196216978673638670615440148955101486744093573722061415803124697690277174460760088902668579957692568884328873017121470967724265994656273036562693412782472782893538822201304854417959328668125780193678353270725154075526404349033105029102438682587028265486057106025145506778137852246593763213937840331640231138951280686441404891014173299118394194744789445246640434888416218793506592887459244994682070091933379165852144995485548298030081144555173101437736057525795209175717768456248345426307033726224062142166457760199588615471109619769106489188697058187851720207648565181321332520405814018936450110102773445996593114081779814947908694070742118299751796126049211996820024429538974803159340016874318895017376712389360171472366608377264237180880202214419520921428713452351592100494318164029556664715893882002397874923816291202938214808825423264690944680759903858169867903672353852726011528121469900379171960355004319749575587207366003426298980415751580340041574504204612432913272897959332999509357567048836279492052404579032277019983689735581613598138937249739371374054240912161763158131084143572310510228148475509458332966919347367723112886080713712954973580879764125455906285187439384595220641586539190031780649815473215526686887935263293049927926051304995967491353150718407831027305666502188421716428586364314210694571905731058730348509417497308253181559707983796177691207860120403594946523577702711809398368232595735862481787652365274208835860869160463788510517163427768862250331288402113844272379917860629499088299458177328883441039837681559427559014310591259352649868085465434815498815106667169888301042370703530469331067580542741513929496409758910196037954303886208780267033073132722447149853046014816246555123390688838605448212696423208962674047812625522259261117465388299883370785858551687007596040895074373059050164745278112547582220355116924611534362439015677202505877686232177691591409865442622826058572825642047887627706937725996766845897278479855241965213455153081707224954237093238722416342887643744000194176111308692265461323242461493653354749272082463075242959025382695145255069828848307230399388131407700694889429811571161176030441362495529185051312176776320039395685610839599691572520291138391806899137327104113168926442048210321334186898098749208415922681545356329739639458908955130229858155027897781650895042086349070357213398402576197196471756830328567910750343139183212653128169065780456372191575197498831075612878694162560917523173406442269918504138280290284306843716691247507267386835929273882900506308642740998482396792138068396962749271285924715803564366474049429271609261277644959062750186748063235789043497175644121358775760176281150453513719042388175630173930171565295797630001347969350605675944649535020476753050967755540098715863446127518506936828337777591471366713800770632886806837357598995349605980449607679275085144600965930598178669296504370277553365708643815083034650499320840221971872194275806844065465925298262501534617079890016713267162817764565382458601583221513955587594679772374246413307649278365892182322151114331910433618462305094519103013834188567988889624095184742411797893207184908283170405499885940012096937177886232132377669649189117753853498713667447674263211486062360553798199466588918418333802573818194557935183080797248360510325443176228418780401583259105275682362928552617831237480720255016123538707740163266504974936709346646399567056693944676439964376140052006638154947296650953459793957780905348710244494093045591963462843777136553168666254749887248954533529439943436260952041511503861165011308831751083464531883005735650599071284301125867375381487569992400084787489696016696990135002730842159885862837498139330229817408876394373086667255769306615178646998295541231291796418440407847675126905581688686466222415795347832128790129992309974181543707410539551839827781765005751602656109899939445483368610501197505241073419137308513578651116396610280480882533640126624142123610377167826099793739916386261704662676184528709917158860491884012308336725833971067818458209898913410596763995330138093292657811710501675961573395921481385742341978385030601701712912411061482830517819305624456877545371679025687034920698398040661097226114528346356652550155562071070788221945670012636073713670784900011221692752869174092456182540610585766069048196045965440659655661508697288598832026300234952312212824841451184131773161634368591927984908988851917335977952872853954679084205608444079581680903770400959475744224386841914216713654334104506833743920893514289666793971490221291615232120590701406794267105452205186923806243481968474201547851786249715007682811257108786394235873602287629636121154865397459243567569140512984287146187996405087425076248732160286226322118732100327035571020299653597989572942393620413689071643982827819955802613614896760760119957202072556632975818789140103955809554808948464313560958503031779561631509452121177407474233108751305203131985867625219062236846191832990621073176095860796036865169797100403433688439342951225937943857130398462536583100237052276205981747494602796307114251592626369174520922273674757651880243924572893044520065391538247947312017650523518761519244451665932652378305727652759563834729356893715471004127591528375444882245126357907737323340467882658902390567725060961861703149390894737638897699257002123770842377555877414944266129285855069272512908510114205412266168410463623545445068905921348502925572437009492395269589079424387246462283803739544548433458712038780568218922097056247040428282551362390456646169532274966223470593012584588133374708418210789147337275778637278215520951824974218035385935615359694423074193082050650970998700118224304714117349483028880778043625659875937194688779183282120282593585603058593861160449620137989980980909122859724666791976712625130862420295514763190763533964982177064209341514532806557777314971741913760788503577805567078368099158308502388630373884407576886067331898345706585058963083280174070890507025455291467383566937191647444393186198048470405454752019955693003417241596556612635696617118481235584919972712225879336492605902842469833300339391467703902613058170236401500065847055442925322928395330699176997869570343234835045892740391440809591827867318212233235316880189832621476278379230688448826954895447375779783861883374563960135424249069776445406271067277871179916398626966510708825112420552175277355543454894554852791785648711967744019494110197665900286702533366298997904783153594970519943135316491929021682320483235433621526229338788144384503995756566480780781633816020078467072944829856304284605840332837975785072408119085655889167738061854299508225000664607106976936835711184758298928525376436564703696195675975252365303407162116391491341685633433461924383438481740595462859708504216626872700734852983859556736936021277151592073972652230093307704377048680957241358335530784378712966875627055235836966519877967310227435980157660745428462658507474276960130633103313138996103055802185449790034861144869256242614797485404491792247069720141854335464355188233772032067742373284219543295494261312027244709471479695336618769945904756917906401000352488213652879335081197250551589524490058352733920942868499178732249491446439040454632650540355885464513356928199898051493503632560424755482025139893144234937261893977793191789362147183527811556304783508486784139394165444267580219106104268290297644295135754932711100573405298378683411820780723961435817318370493420301764692950130047047411154880802712708774423365138675578535820897096864923306413924755373863991719506866990332231256112467036531483882461248948645409904894535834246323566661256377354770835236399236095296886003971476232896098144043949788414064626506317883157433795592929873418526130366213906114576050726829748937986338349312990661661596650406354940969727165066870130216748020045452836951611077741550501863807999132828182239807969928907314945455471504082959824542805015809667464522374934314707196792408515465261289162046090546100450290794127246356263399322535720087140857382819160627934439745831315397987400050045669023157013798642051069428306429506969460739128300042189117794959411757446265666093091661613723518634771926270932567035216486376075685421704841114913693764301236023009372531450159227700038147088279190417141462677188618715661577994774817393929916138064372371917297203230478427030030077380204159125331599037369356567510978562537905838959444472445045953656568098922923635636429180039876465759838054506935876795137624951232485171446633326365854346804288817266261355498323352324610956306106275211116146691180399672017531900022806896174854296925123611094332002874157046780685518886141751934507796531159387961703280223288717049272150700705372899996287565470452941981454880968512019991864742524869594754353106847239281987795886413126159713076107401287553094833156122581064871580267028883180936070418849490504346899245188229578278548757023611084288821643524161183998478653189209614857462469001148007326046861023347646912336986798314688575688217988951949052518720682222111040752994945831700801757547471319009462999666726084996476178139126073226803505095747832586442979737872336709310984823790588540857801237789308274262835807085602983682319452062664868409491713882381823593801010506283104652355155890517234989291787075706753046822386614321869170763735545882392040004350217396812313262647469041132672972541290406888973535202413523021632958690233323142423262490749498623734269002066251324511505562279379816419680585055974143973537497598322462695078321382254332119854095686953330147256447192017702233520603261349934659441906845951288921821694063823338801137327101900380978258131896929312422699031423379039526397909034680876669107831494809283917839434805648380374143238047273914752799257707737714408717195819315862553411278405441211217312642837745222695438197481663845153815921695884844673946921489989453143391968982704095544920629218696152961437007975253601931994505913567878475736480001741138919728769076602340959213690990709165099962384020192202643408241668338507293645051347086485356608354361438235742208332060253048270139534084632853968337376733897031139625963091348971345511450871399158346969436438742692159474166335781267550168324695661507968922552615453524050261876010042504726964106332734165179973858393657536905905004484735680904182812894011780111912480224215379500208868985073344922238640749583993425329499736786734018522816845757993459196266458416780357986030657166811377923148464908630403875728988893388799710800393898315804562788684171412936345487897348270067889669650041558183568142374852509384157089531653805252095123948405848329161725551696698722602358747390275444362577323189604362321626715005505169660073110549587624981426926356292865527310997016912055149098321549334915052118353333331543482773396565663032718985679074531272644672572369013744005111742324237644941908743260733335235298024043308517633721124461453141098406892145096875817959403558156956759615752404840771936882455726025561854356846359172275006204632341332306001067204240224016267376580108019711744659435064177894794160675303246588413459762913913142866599940373750228731383146875500940419432847627204937689508952957638153283597976370258162336441934320891191103744729924605239792337481276512376997718379018689001501057036144900472325321587739806435682190864003747599370059514647099733679365941538468276357093781447768218614640240448022244094798749634962400077088536736082768262668130327375184956035582700713906443889533527775591459444094023388327620677135658771150707523993721269333845965398457957308806944990020603137598391155856536392828888179756109948197772197201105810753367462728707729146478682624893075400438416635780251567674452663084385328785601624782560160362537693296243021602331585772347429848672178237760200706435257707047099111994991161222896199413272524625102523317727033820595832930209825322990491562680852134430274953386364106417742822670991417519394467735956484623098897818005812660018684240307960335658404529416513538832529252967023030947140597962054219747329432217129660361001125193176301752269359742648122477285335915891193650740195394158045411123798206201133741948561243109224391028578600956833750702180359405113430042471600033106389056820457647141811626495876715154882256520502283276150825102477229842523301049236969012858895902530089113590460443523361835287036597113629916518825654054375097202816017673812370139289464297154849145179382149674254937888958952719995654221077855630537463841892356596705820776182196732382661377113179558655364591215243909910171122388329450397235984936182686357510133997901689787060877227375372685236822549640438790259797961010298429588050489438679362449150449264590785652184438669182109960416639810458514097199602066395477618476580937179746994778731800857355726808708168113090381027840340710099149963361118173153320202618489364798337328084346523547880999674306255361403137414718684815169680957017141761334925205591136442622982037165215236689522454082922957605724144043759561232709158355500970161681907065313021072335392756491622873771395909441124151540177528759118436073882557961249176273163068047006122456088729649389302293043389936296196106564479263613928479498801055274640591823224879067682524351952944536962937954810797144940822789995582997309070016526783383978787191394049802689220044971590258446770785909004568145252979286061742349872067291994507480247477895049834274232326157255026733756987546063135270107896094840777517976799389171536379625989137476178064514196422668380657702085166421805182349261221632715595760977343481553033513926256246173426460394284948933158169497737811212601506917279272782878773393798575914731869438183206422207354230901270953021213331584726303886007993214279455605636686838581777845693744162303930866123430154239109686430049682496546343127275867115797006100074669077756004031107942821651883905810239952007266380776343222799386709312663321298438460906259982458852667663812603287739047541898412337737048423674530983023961191619989276286822870301119893231498057958146445801301769609382878804810212411262960422924154867900598245832795286395678561415942565692426821538381814321232947507060847108718825916626986243581021617145739812764015621531191469658818509399193538852652402972441183117717602680022066545578028233702997021800591034018788504168831234570934756444664654635879167149331980005028657840750926949000321402641302078614315472827938433793095032782314078885543144770778998459197562870541560295691542677107372886824011978061064360066301859719537208750378609692228037061856180877847604102046141062974468201403213904361169287851255327797404685024565261897112798989009574509671935437168820931979427258695752125240718083139255122613766493822953744404181164968105786289488435864577424788376312977072963021703971025163256507506246430517991163788048141113709167251021500676293638408112247484826051052417223111587482761437662993096854561863103447252769951160109853738642243380077144761494090144770326371836018626098307522423642085699903352388980376321399649129468007186971396110119955485570316869626140199239899719209367806462212466438460216626400765409288184391110020298263343870318944189399215142971365489705592211666385962049793331944303665906215567350531615304934782202244642524774679120016874837594218944127679114782604623094456269893192998224718606428270572620108274914750021258941685060815080323237590187814354610208935392229505951240885452761166127045086709810450942792737310604309070754280936662425164056897493970687652866400322919924499683915865372699933215466022598624320423641386727257736974548140655818273175079135644959388445920899988130235935220105041731276023745684433060021122058851368592841476654811915416029473628847459995336040334127669842178428793137495624348320459862535346236611023183553428842890264039325866898947701365185865714009589128102197903075396926830323645986052332277990436751386949943856946777898439040926115858681323566246009373255055027271634463552391901223363309389965757117531091530781756203313162145740992829245345154501629955525854081354880538035159862663504991108388377137138937990462832645714601716754242700448727980787811288343967929298490285643378525025287097218171992818952268623078295399337823571902353366097715576832284931699189544344315581027852587383896143097579756642118791868700815870863769334069751250135698336874682845572976635512018079386249071579525564835054239605963742146537067639898840960517895195004143213055936034344616510393543742654201870145351900879376741629191715284965628248321614169845787697461685122863568320466276278972160365904550530972854789803720208714797347834829377061348829816772080343591242632806545993703593049519968774286803879244367713307067275946772876401269603006291026706707541296721857460243055201223771206252546534070602560360835043768204333001981468687564348546887531089689806097688520358073219176228408719872620505707084182707400117693071605034162890091250736034579322662971624970912297820541881724335852809036379925054521008036438371522248110888289078255377165960345302141979738646413083389750269897603900649513781685428284710384034970227295972881981862867689775057959516466286164220885923557402297799540664123249630993867170832624598205746823358749985192850941040983916641957876783177329785430418924076251760765922852412870821544865862687339871975638800706290059884903123585426450308491318827622923484690394632907895564235673763079560992160413045116241200013138852916786699458034439780391861297687364263948557474077300793166970541610676304558431411528122697363748967445113020278668418667874324637548833435798194351541628119801357158594802382912432073542268360796832728151319317660285503192811798818830192621931132354784665225036836536854399052302037720939511698168694973225615545369582443581178256098939507471697150962865848599402244426082716610647844839419775592127775006980255437489728405443832755907600814811981357374338891516680424013042003623026529986801784104539217540900819841292199971124075496931834639584919403612959621623745203978574151305258401563021481934233224899676068085065070757120502393456357008778253562941183724118838265157807905540283047889358203864053447165088207657128033824235352570057324902812669703478186029367893380305479856494483156298584968957664378291338220853707730823756590180519365176456587357484647717318754484726981220620170182965973902051095462424564959197782723283904655802618934844992363651836850933761507134031478686572741673156773247454830408748455735780553784646854858302401681105842327117827777440180756519603387437858946242325687232793521225468513128126873647920819930246491899888654239143068040507822430444665494251869734544666735464804064033569902018665031217495585347565531561354856041075213037997957958774069494464834013811834212656123719105394378409135862919276433169060175763232333441672372090769465162068927953233304063272039339966550925549598713793606433305212880187449620221515584617696317015233987234998788647723852968677286707391001010589763904766114900254546314150082869156952437294051499030459012917709803718975423563866794555350679261603377723295573320118033493516669366631026745321782603595299651963755902718659867116798127769284982084664731279155522139130574158765168915863249282571876812873743532286563778263669124027701182767302491533940954334027015920184271488506699738264881686838013285050268638830789924354635980003732268630690339790193016757907336393023992141974929052205243373467357870982043851732632004570165918439644378479975153783754767744317704713379661187451524443758136039315170525169184200323707465375860505710756457357718476161641579051720860683212750100446887590259000261836629151869135304255137716848620408802635140013816311462090550024934462029808509408783732933054298137743581077081945508915515382560871373034719225980783678719110110942929105904518709107616084457222835730054750722061384071934736444111725015170965611180080658029499782623626751300696189137921661926490825881044552972358964499305702475640258241253652048027981316991655769672312478678816046062802347791567032496844953598079956753695705957824026436119020658222584446247037551033313656319501498414140302058257356572868980223952547662902350712322998365372861097041263248288311119063235907342914760327297684791212447890325947056200269218611874820787393230557970971110313158646459298049294185886306825204710357091809396414304176063900048251712613211683207181009600709977626342426277800191682482500685610674319955861856391862691088986575336696482770629510752366641113659384144433159987362001880276036295937758243052943271371542130391581029528755782402011116364208055130848892552106320029095187819763230571163761271821738870548506195803184089882420284200269563928126109557967030508448110644016817900320250984627351469200185569013214032474889803724568828442063305142961942037745497312802451510813420574593235114920824975937536334869913489892590242055778132885766785733905522032984358658626521583143656057046966095560904824814531698790971295190446816727126497906509838655529904889292678709717880786627413904415916834995320289035320484898307298503582578692508965822004968717731184913138991143084099974404844944610268989111326714354008430551160856803444240100170825247041040304833747328369586500932089115963904801081588168342661545261178361934301429339373354831226348851147898964485142882246532430709735266939879392844938137529154023722239068224110384038254977010410770890931113166551479067680428606383738695325484813813319905768682186840808669764543109405250506246664653677053854112462194146098291180989715580811173699152309249630848283839824018517164075496764389267031947523451539115933437374470289205174122454654008851118001366997700829550911267627259008150954561333353079797385986872513462865830562580478641114824896451828418686430111558151642369818565907460060701632588838613779472541827125416320895834419075608456959954160496174920917755851764944852120544305887931265769235650305665760075711312984920794614231662543304540291781419385743219956437646165105113988623250392770909040831333627112016760896538497033250212759757289525180253933496190019560956819730851964329503317298893620564492313699212992584131964356573595005127831689962329221125950958845827349413722855188587078276519257511410578002852811501318813342160475125182719520987474527130218660274330229194142899939925768783984277523959672466790090433859451323941732703778995765075500183967584577748057049944332509933813486033116626836583814298617427820377854883475590225725733881912081575361930513786608001682082443640611612348092600776586722612282044833197439695743733300252693049092839430334825316914433999970071744739485893288332501829311999727294983759108038541512263990715006472183176218123228938516485539720325678866457530553236437546635591430021936364752613631776705783532992446005214073829007463177198317337646287839855466055611437107485800516613371151623013496595044983884133317032677654914794966207466868521383874188454397294596293377789854768619604852622230104837605924109385924979090967139992244033352810644368390742045774259170434200288943793421209579908509097490975713917026361892634900785292659148960561687673167452184323484745603822515975402692702807533889423049925380692993790922268709455946411953050452672318806414596946790204654871643168687123946594021152885721910444783531331011894277284894056739550092778456617284230748904772545896340995937276847936988957037310838095370314550000388688916345021301935276341565988612706027674431936237528119393685857640631171657030904496536906922752249318011169698274967175293482676575414230422554082849306481366747398251554463559418159243439175089374123894345323716009341973936870529015049428263594582821194036667424632377565953157082267936058791046111925956762648997602114323152175102549122798868917571072258092574880776884714575274196947510952616056790075350973666076562793831535041148756334674874942849250234622471777474684501074584470631777289486351796724294326622536018448989723894446375492014591686914160603905174927955362067536163585586437156246196243137025867496478373413246482866225670386516349900394097571971443052000099080251017694495276053707902140064904683161672642232978568279813945359843864127560747624116018910471976611149247155549139351884915876648942385370152785637124907252577286449101482628690793320006132577464929097864557633262039308645125972069741229391963959283537127165265894313446531975432142702993113830892373342835535312628358095994596648748904257818403767242395926574460303766474680642029420275573832484107776820934661860965866756836620788748648990531519898436533681447713127792661524849022995195066621470880517972232144712883847564225226683871005048685614686618265276025248605471989610116751143148338594917536438981754998705044762841824358582072915296674964993908656047773877598819535914262351550116595346396093422777799635080864321997389346382027822844652603596440610824328854939006829902376747817439434031572349710226311265535069868214719951923196534918825353692538732471987410995123319439185269925489385534683168157020977470811625270635476472977843840781730591847457300095667163836515341051664267700923882375426561942088279522763530229779443479200299161197148209587788604035767654761835244362390257767588375224411926214339698715483972162415925756587728443990506345239066497359706795363315149413319983354641220386171522533436324192421192474484896992854287172045840832979578708947189950392166983545112955082806298057474651960830318496194017422649716909939621171337793176694519369951332372765904854223926047375668665515255412139705709262638329257083405445587386739595706390325490160321915591286855575409758835396145593188437242496203590939441769229593202756608807257489127496306124261040541569564670705659471902790402425802415496950767336062275509621304917590746298031870240902963826974423407461006266440415904279366591638518044929087074633099845420748552382737401240236196166361708113966669291145919647632856312917042588152252325853943761358971896223822555625365235941573693461308275906205884573496353497364399849295393533914553115163887766756942412846785149446847332891016070832885034966570241335895164318310728159356285617503483674488280601800124678887621290930492205662008859951438602978144660188664422128532809041209990662262830508046369055646506868712409646300901827685846465186774993793474300672233501867446535428094846579961432544253408810593460651853752775463500713637802109646204979291066183055529695107595068537908075338596662704743770643231052171901592663309156254704388520524237514595433113568082649999666337535935304695762372880814772562777383419358124024504915166478916326715688578094566514017002006220199405087537331890677085735253128433589524396019345148460410857008505394971151850643336763077787698200757592982314789234907581092744396347573580673914960206822895029412087782016889606262506459260840222977488788094764932829300334212513746142680801949585255404475330275141433406003483594408210146038733030323144340713791580398393620202280433677352382908730524460938875594141488163529923010013027072307766091075992314901480094713793477241183895086013243702782365569998327684839321834915814524942543137360123506908519898332642039843127272520881507330131043930454820031857912452596835663465370475228502638422259633027339273218797245965026127759668604881737264127996024655638030207759603719999530457575386998009221196461343554976662182969545643490576206157087819046446069379726643498129972186561393771616040272091593529497724496928797034728099748317998573329487732135565284262160477564493785777442823834525340797786071747254507534128362077555084043315423500362911803401772347477970354249253711048822906184134979906559217824389264679907579595266184405037144395075196109142098689264989609805017121360547582472668321332810685825325363406760068181885544706313815929291067907752177431772992916118688328943940724410019283875467433309570913430590841638074451916218830541134267439174062791006815383291240107560508237646912782438205139108142857962726945101864343021640787807420579966009426637762737251751269696642788769792987284511779746979296071286439727496383077799739863953758596707288700562259833439113139580235602083702386841689057795070294748702925322017501960777225204844707777476558064030458638196063038099669003624308470671610228528191695891310636414957091425936598056985183496960444707064402466788044297339162267426149738249152446469371229978121854661739382931233652487336110049650425956737430078246936989138508856552239457461337702939054039119595895207540995864603716747262645513286760709910927759993666355293436278060797416570465491685751961911688540685707238406256600582459173251098216420126781870118692306508054697167502269178859850694460812775568131138384646112011641054240710625647502593570010979495345530409880003756570006868106605276727164986340728363112107200774362756274684215287787570158052995354146342921045412451109887346456787286707880009079219727669437537442856561223406942840802369941181015889792115538387341978438675154631870143527452139706435546028706328320017301868385474281627211038193385643830293186015503323200449655188315279063209601900852561194089124769623618916589625690125313509143042191126271814326929903876965665051758133328659851082570671190633363153443301670730315817238732748158932221888039804850634495972340340692710409204773017494609209103575287704899657725338403521889949390499864267505260945658146279494033257686077718278522270876676797735101325975545050134752471567600330378881230608184680504227511812535005887664711716598543785958280384881657848899800320611728858041499844204441623490516971793761714869707667720104316252149508856249951850098809855507111098445715838234012238999120156442949328257209207319143182787842073155854344629407580498148213131789000157829908322796293799493167390064295953177876406896440167944519946572967520709432737086054829992448479719161190981461690619490975183714658912412860233751808735270359857618491140483415810585937541011866137623293406999416863309695088893240414171570716054091440025573204465503246325465987579696450920529385962215474473053606889453977844349764652576113250458000027184189704437425112619420750507984043313167971673534359238791368786719678469938803017461903559961744644653254829749114502332833051785583736767988604908582768285035083035305023469638689032951876267928988076152751823107654314163595077371586196508311529375359383395547403795651237781831573123114735009427097445953937050588730327621492005072025179046187420611754201530227382415621727811462080806135539403722424148478165004287296754641552453082346279194942877826041482293258873227722135916522654827349788088247284236067513179601079522245778652526199773122799985187752549282171128566492838551380499400914960061606208216534544063425999712302250941742387850524893639897303170937937675892294703964036953122103540860305578785809622562903241578116315540330038129307319242077806726919750658318166741752805318088465510721721209293335262008754532608563243373218217278935055461183378851119544227574925209169521234418537615674714834277199848639437712119838076437670921103195367723426131056115233969560189276382492892616388915470117360240578352796010356858574205064774705369900552235296168156352710416002101746848333710161561684227977958404419897917662651744004653345354822797316424724683082077232326003083855011280536736851439686400397613369273625720794954641963812669636484007660072413130030554242198962961699774430664180345860704764667477028863322635091825270742847352880083288538100919916402299983418576608634104493418817006368805489186052923842454760314882529138850959360214978792964718017930148099760418455605662576927612280379729454922219709107274127325656054782342931485120557202162484099089616577848278807024116476431163710310113582848452394559156305173695036022811365809723629017116698761730978355781915664116727529347669249457920129841053942726070291632572372810249987920809912987167449863356937235242262269075742388028440027141200512804309347818279231267559369630953729341268853000518087259763393848550900854712333056977116203526083807993866836591586962859313148235692151638636717565361798444649197701044185572783497735347195068250650054589826312956420301912612452135764230135652182212730264889195709348053191642969172466939159283723072688029556440073027060264656893111074472695195556120486364883342298534890013828125441925069275997657444382922277368252675974386645842311397480292810248309197662856571446455026830005783852040543151097317137674957186829152678586735970957418885221227395825968602647231173954733128569611696106962986117896935314424920380124876725602275969241754983312767018333152820732137493893789221606002270112471361524740653475759909307602856994244465787655140766598983963958221770715180165183201461275308540178188940334577848617999927162135395216800338090676300533656174530801876307177239396111787669938574693006434863050002384831169656422884199836656803775208253802884060395762449700946067239046894736841798667076941166121320213159754565126042423361503733370447179434674603431716620364988541123001632303124393982010082907253623344848570979009294464641231431683475902150827095069786330897225371903658057902856418384744866617456148898229753102924973989678693586047482784825710343812571585757908111796602785607885413552203836662931115544699389599247815641468101066037665197824933912415553967910545046865326393821009832034050620959725060868773598544568266535535145160416828191939423047095517061242033434184519504861523855564599932577463082412857287120620326157169759902607053927251665615631269807539574607645653685290990869220414844775856263585559736253685245618513421226184044219565882123371244536152377451914060105995347716205151533566019371980690794367932123085364490096610495017857907832766888446473613639490037102702242357200739057202513965543978795482429164603358617698894697968439662583184813338297184283752120088618653467902904837275402686939243902522245232180720742755312245015077771752674436471247646173505397925828729004338128588095686602886489682537643476681707336552264414682011774416553127617023633990907050855931269817843952525530691278210823111179005365746492773987414033553292931194424421568677158303419147102482562576129609838946268718319225618970119113688558030832255797389032859127746286614695084598621172810851153124580209734925740083125476086694513507177360558364961730864965128459447436221497532714090048215600430579870068167899500680774198554751987102663083724335509654251241330193959589060391857239242556896875697152486908580178870438127889498051168702081949098537241068187814351361679212704009568039553856712566210806307474647901309920845510354023897647810926591572403971340877021549131388914867404377646344967342970369548017109883333602725690588777008809332355187906775101153806801862628902516851921723387565416473156582463515314073357463683752186111207730409076677723178909916168328717826585627701242050384077296252489304702625422629589491893206493557109406107813352438395585046190439836643417308747832598573697413140420578463593132269982698133306581433794380466523712684002644347592955434997258791332762571499216369055753694877228601487515116946858985109853184898139118091687367655458924179636977514145880610478148367207534266513451507052501005467369332236432537549658037326368360380140936042766980170238526660541190192016749085581772454003202946843269641852445728326727736632739766027545005015241142844846469996103330799441365266562039575002034286219660894751391279667541268978071037106355432221064130167874468821639998644982295294296049990616985654984821506933957073765777939194832867920730726032252457000681181224372899820669251215280901954371830860986270671163833127037161139835435753979370125434007161490251810810603549731071382248611086841844768189461816798458467212310195889005362778723538852508402513009581130433233815426893222065354184796182182483732692088661013693825755596827603696845270252937486306045785562273445010560614936857971665908566229084385287073743742949182268126359967732599272785860381900568787490710154939563548552734604135415239754084740526164340058150740559104977426704865010340110034927813852385954049409468071422664815435051655268848714924521384162036001427532180860028973853116969121128703835075509994445841463357011287152700666176939976963396760444263769042340386981172005127124465010987064083457515746661848573665731622918145267869296848277832333782260936984769438696460354672735285866705327397056155400613780858716256008737336945595452833655567793433370397307819784355772605189860300888251087299221131276019987447956303505232090902837798236860205447229584129305619468521867579145873797175493656833030194424165127589022158837632431607692688611092047996919001445624771628983919811496881431349828772523261202596659228298788876432626719836807403957405380167657547621877822160134777193841318146984440685033987160781623749774413528552785567961599710985687411771544252179498483468369427666627024878682729969217949518117384097747799659921652500323476379773025562541451994905397387287513361910203499557118260871955466290228448794566602207978644520839328941670703042651216479322406005846106605055928533242242178913870764392024728640400599841639223363708392977346862863524283131825483935084319922274034336046024741062652539208254146709261969382501788882151441103294282608528545239080052937056636782730500189157318988532175268639015034496408420391917849293222116244670649608833735788229366810119099993316269466455287446933273783693038019318578140343354419307947133621841441082799932938804057339194005966846839083943482666417681401478780593195154176813174434263705848175776484622666115293848461806567061448400550889451987472405079867723594604615367849819437286976753515587778511406854528472354093725976276223134569404054594973917104323932015068797041993279542909637440563094543133630161795831064017499921587365301324471381606823450645850908959929642829496203111354383659268963785819367770583930227890782271156867051849634491240656138560697832642560349079723027155387958238645933811851883051258395182620280186085899170734568969472645220888562164598217375812412033606160758031410767435040852888036807621306633271964442606627069803276003149742277035173016134476945080688730170581303979609478009045225112959296650203874716016096943563134619901457883148030654168068978519927362920943168533960154634957382242086170374972880325427687370168403053145648158819257688893399761881764860308862752546182638928506444951007644049308377082698932023423541730146339278799322595241685336781332130716126672871665214743369663331345378327812411958156548293480532144262023822147944868784025351600150463849762874604759080505122280077698593094460349540157317613648115647486486702072459155736643268270689734650867159555458877740685466701065248361044799660248018553142725634730127184373697000287264286668637945214494531545078002740462177251566211712668074805541562783841635147346299996063203782118993016653501514308987704513446318068704515102818013915721689701079059225749024267770112786141106051174412030026441575892829916366054646831144987235108480850196086952098055076712446858406011187443395660442855858520881171360306690750635704639763030013349973527558493673238768993336038034360851808958801537572599253815236905052950436531322943290546070756532649314296272618196985362200783742576074417143944305638888675891400435139209459427115969692473635305212527899135218764406459522924814112453189895254892248641169861745490572567842061310455058456544123311195688662472802582994148807139222234174050746650226322580772033044154946495450569105376546218245004000615230938411956617592920557023994058840237795760867978687104791129571805993478448376686576566195958728516213584136470767135534042482499954767916440098490405170849376657293320561767416236494805244398501232471739832055321925277690349154793836288179597275940755880293828838107476135457431985454848947515587742056487276600283585433503191457351668204444241462470309216313980373540136960861084820903928882192167296165153154928242315621363512586502651509418498033963342188787381313884532474509125599228816269618816909699004417884463638957434551524323811161602997172924407784713663188473279811970777801872669578973932504541684762551190877950669208477924313460758420211508387873496802642083655096264800409359114380211031924421579811001688034882668065890944145820844076148221521961954611850948982987184104652819625603551042686907488907511036285210588844084738584184657289229351290697845193379024521241011916658821981089820315063773064496981162011315586576112469326144813374986012866866912865495385375624011786082127970923441678587871450502061919540233092638974866760968274023880377752772691751392708220551954518631068075785200434846899806306466259695177875195121363084345653366911115673167019856344655176695717416979127639594179814957063361109796419006145585434873752162542605295123636169880757830496769822214748728157240826451424994546069247520180185753488738242894788519860514593807506220883009578818333231796832040362283248545349397578757732589470180648863093872624284530331586572622371617693295073551886669861300240081839356122202675094135098752975880154379164622800611869206946506588062517508674878222798534053525688051619747747037441181110360162494450171351226259035458005984703249794831522647743236693006602291243367971183093522026746437188592638614563355988783631766762568539339810944479808571207823681127796929043449872150872265081424261506507002036707477066083812325247257776037347244700995775422945662246238960795859854024248872326942259633119992275450217719134796742962622388859598154494245091140558436696402858702125847711870668686058655234148199976482434398006372619895584515145634560164557076152474845061943912875709493521563901591459093393834447434329415230048013372787977142924422406068669496996467972804259992101199353376366896513250895716038408753731758459258239215263812161757828617982374817305624140609314102833576777730683681872202703759785828893531352553078398218636775564854012825161316296913327419344391695621293568126004294111039360169909856306829789689092160544847101892645480431213674558658193536342242387745023532107038777402841791410436194033539452310388120643503166842258815400641573551037347244166928658232401619293546427994616194806923635057179980419588102398131094755331067262293728386069923447109234302060699775497407209928923779304500135642447634112549162855243942053196829838064373444050602094313033276979944180876698613605483281465182073951361012756025825088582707159466128376211200717694526946746282857849971137362678532074784166599167910589409361446422498306291306936500529720582674672411925944470208324126434072867521373810122977936945758427496392069700873911275560872994439156461333718651229324165833733359894242849101181385652029401806751056611373693344271502989996806760734417554849480942700552630684643315859050714697488494876983572406731860328079609798290446132988286834933202140480381597381492162924403642735196050215905837554411868358915713573815599870765866008537078045465510188535412740315520972039616750670772256646126584724080077464509606495065276985630797506828850624300418354964735158661942766556418376656353297647446117350400882748807816287691536685655942902759368578621269683150698750373243007510555919628537275791783491472304675414990517265218680664532685495933468315487146684844188943638959815693854699002356578729558970000903455877806130499646200915047419463325773832297621386092108182519156617175535483722965367057573351315284498442340166835046422473946127238206873633128420694462246790335552930700191478715947421069302423325090262827989507051345930801637629283867721200386179660794913159573381698180605295480416208463809663028547467515083436448933469834944653760095669113782290773289432225987858111443888909134910635959003721638113199224813987992697808200165035840733586340136479971785296587087960643268300657812316678295029168656685813070111627028079631084401994156272554327695858405475254609827107636183704145370436807543296176060507445334729796413429976702975011137135790438558690851310800293330430385968878484327773149687544759655009711221436522391881931524378639296199173919275280899391011665423482979524848967992380124766029332648281089900651625024021902937920730713066608800577845946687093305309537162307422925795744128319013250671163172192743138647406448572318300979471573309661366829588257710965482512255908175147239964771694232836500269375863514875508673241546973673307043498820397114878943219962936435681658130820646030062597673655854078817589451809752108530208194612925539177346570775685502459066576531742487150049997457632989137735766892447739660867230260620113759257766573022616264735191332291523816341682004539375681718490617204296646839797660013542068145213032171510312721108178345701500309924864867170632571654222246342143642268935404949511844084274039580333617926708922644826145717062519158695363547054995469786566358882818283467691859985301055049145533709315976877507409610503200213195811831357835515359045200636103355213795871297156119420337954604265213727799851985235876741605413160837884154357061944727585009035765704414433016334125859461035764328412928470259827494290075148326515596145982988278708752733975191287287498899330277920707733653655522055386810468884056090075588750958844143613899452757322776790709149224915055008811583734516956578128389237300169463381240611247740564997165631888534109709095169445284753313172865096365954923218448056393924765049072168600909894251042386049651805333888493370235033816857013041747922527894320697015030395953850936298831260156473355721790667709757674991758273310234499720770444205235106124060011985443319327953443615740102375692133716296466597300965503979263080209923189257509887260526190448800394127014464284177770910937698618605625490138470219199057299024083352724284236922286808419469880079970126595365914409557754769810631084241691363525423634849378736309933662702191738663069659311760687926557403442247199008072782339898993849968792006741804813331660617205274660625684627614976616584435193679203049195257999942104994933775634116385702149405873057549538318435839485762758108848723706762023026935262389539283474461253829018591661021503807104409046079090180421781932638322217079489440260392419504189954412751802041250015706940512191466315703208211175524113526496593780412724462020119027040488684390594040202637739027886096254695139585449998619731962442341119406429720319616049646010633153067712566204383719921388011733479803459792137394846885139404918950760897482788627309031387310315659417562604702602234353554836429883628638759818691001548784567087189704026119814626823481551932276282831655586983827365581548139588470500715627841922394198717316367204043941602564567255794609926981151997358842212951766436650316275336447362116340455435748723360591491804184427252079903675348204943443420596389030449237957331692575183790637046715979153349111451652201361094135694040012457406953026475466112358336537643838208826413209256788145804117933554987088508128179597383297603945907129607128334291945131733312384017228192448680910063593428776778908710016386644045105642318612552558239331306147807064478151781356789901510901681284721005247859207525630648450367383457803437293066095892447068480383431449120254204677019521413083157739265768749176350372365973459332281157007962128137977988117804906427585178391791701864748374552062793514280871147304950176908903352270987899883079637253035291160595817249123079148652941312650892284018973875647398753501068580966078774127195403841661637392288155604497457679942117763954414575884548267400506849487588200939833761303892994731485400774627476629959990948794900560843328442721750529790224234418639663170374272921673860859348880943647673955021856979692394757475623495913665856800105861915159332889167497473320419487795722329980710750034161665078867626040149439346940855429021787527144161335798665450254529844193315894125998796098805239384511964617533444556963049628895700065133310154668470799858057454531330370404221633521817651453525416950757313923578652076911027941947036533040444917152335229740857049343079877151847754568370704006928869237915963815261423045466508139641150831847732953831430920833823131730773922070219375608041847860912699047484637644601525024301696501982053328318521530370185534283589366194215469989219090240448137207856829585315412758205100683930221710515207699975897563577336022073007257571319893779438978323146402650039265520185001483099070012078073321558865807381581164640715651939353147870643859548988705070797818331875345274613416677829582663604984200627486320519516974739631045003895795060192013317315559000185528509652341086668269949769291432874931026293736979572832414055553673733546431066044592811848095425716865489253625007420644633181271440359253786651690370201523793141557854564648416618223392144744611302896223255414715263787307261521645072301887767568302947416361780625802599363045139717775837009910382965696013511625085793098376383598887364341531255987085193879194089165855805706164178996197181019796480054497849103958985674568434837282283603192968192457419279753854492982408105020904421590818620156331608417533628519868828373758925627733077213273388052898809346950572558174775331484846454763876787883393841956382279321945856889377372179214681075416646503983238720157794739679947901367255021087320865945928615635280411935114894457188814431572770626706147497313325793623271233353123111731622543048777527687629198415493359422728147903742617212234370678891952160023703323937935533446667069336827952226143521013470481320604803963496574379107604172679352225549827423453840196445085279406013382471776152188385884961784213163335649767700009064276971195354021546867694213793963674515710394661847877923651173719535510464972424022673331289828310518926629038913866332745262403973429615566823422779232235704554025826626995339489385290850973745684161389171598117214828662164639579789404794557582239260470549300562333176018604581437496388561989447356000151129277738454045462992602875176335407285010896469586675432424447680498883517771895755396955116552202050472548349937786916299531086349443840170367935340277435161373700546069610187212554212226960569049904967977535532038364398396867357671145313049268018470428224467008993249023129847507158313550814463525203458980028283581514226801569002093691140182727231361641643266207291414477799551773656538003479386869701505054038011299676768972742818654771698879313854044292500999961086000750571008490209364821182583852007148971909939002125899328046865549414684205988345390821936920821998348255729324652988677874749350497266631796764193167256520348486725753961136363572072126810949130098489511299553933666369242440100523710462132388524715314577670159021033527858638888422595921242772668251958587622578487256803017082964117337356046208518419790273791760059179039624562393161248736629886832768906214011797178983693752189047642611386673550833527964595290111339336625018698358329576667375546556540165889308663727511106762525846972951734157512495139908646811333038823470378072003726936924504713714139101002089707698337075346588440237207600866047210591799581094253802718431290168801354802790858815150375453614154697855761223907214780367625511774634876879857166399491631128444936140953734484515435371234765649877197643236155283768329478493243908826599470930646492966989876378604402384771791401020043785938127421865182246627611170156619330378441662507956120508353525815642963898542223646056058412450523401797825902840023385423142420617907374604747189607465830828771036916007083278342820665048110639904368474427918947854270192320678592191892563021145530486104561190968216186241450907633565822275566325835487514442543338266271313335034877775170621154380453013444712940543565877354518532350752337868566445339900881600581824416775854873114783126329159107986266769504878545147704616128261357377879527992292522290828539717061607164743712651491294042509062210662936702470175275507208979096324579582689775420601064846092343909873815618717384455984003556155138964775332986061347632310926360880232804594264499343060949325971333163042433942331966452150178148311914081464687706811936751374517944028118379705350619342267625577202366474328322016957526931591628150126837961740275949931586470775659898338974760765209055668937959297478474104822323671175252599220152236413259353214385221453191564058789384864446056724066414096210754680778132937362228589143474672445172602345696598167296667970182054388001576914981681317219804762927690770534476486513188298593274869022482171711849165492537736542565923196683637848160677445098514125403678590477078320020514772056169408936224785680661924104070929345308098153506695521218744774157981336415861174208046915467658787427912825965878675252191197941073760546408624322624319203456124900416526050725975905708963547675247270156960948920899523546481131858436527696425764887170374557716475889915156177967147011120742742064178842761509715247927252839526648120709097990333745124980584545795370041646810168392282572140097939814234621568515885957916363369973835204048005059013617336621354743157357517907554734420952235207033227260962050629954202256705233906104410390756295296702269994791634785171716496860772523874967214600652986177446393494015527644598179062786706946034235162736448576267909416184860805247032118125463078070763596576161124024699099809683761711764543330156704862670157682650207987356938514864385226592140626850437043289111705390048063970581085338835109072193427437194916644903985013470039238970553239480932662770674809926183778239253514512595339810499976421898817585960897368485686702279461898900641770642941625477972561867240129495205828663736722174104756138967541472827319115567536132055575590355956638460163080094975300569864967054865259718189193801763042560086868773131963319976948409256827896500923817425925166613607130712484982560155833010282464594697446077687671356033594181114102935576076028913964108017388334089467060764056110526464714270665753426077162177316448441214615617114014320155894346705420372410806318583962768560717546865726856354687528410991118479640232700735956990188680203511753831636967777579214193343060336303397000533870497707430082668862890195736867562954791955446714509684734364742623728853843769645507100887531887327610509105412883281726882619444745140073452232783868061539340009449844074030106935686042338918568254892287223332834792919221184963222845538045058095967427206052627481980986952903468362760316042630426400282876777492356231017263780983603435419370435389426505177982151780681955180704075616695435894504046292973900767974578452653871523055849691860335824833052038356933694737612447067616345781019699632115871208456695957449439718107560906613725304955472648554235729515881088087942150340361944638739079389778776632481920548411158488703705738555416436560670841700552283833674588579641425032708218798048343843877598058253936072469784822100931816781072036548363806805467001348458105834889876309256892320349066546248926632783295319944069668115964848259882888801028789630002591295341160899515596232067550360052922341355258321184564808780805933324851915859233283974108018965986734115195456735919387022733838363163426469915975360194224417229091813849147081710966240677324124905963237695085936854597651324641706778860735447479580008757508460418702087321799817067686490589361450971246176601931993792190044228354598620420800789394983899450558481136739712256136636737875158615630009285053126274185659748431719468493469085874255639177373071472150494622173629596920188721738451444490485901120285002622715203487364424014085392221403292448935727924293279053379293557715399124772799462576752033912926777427166578829398830117588066885269708258011414451768008174256791992564425780702512340636714299659831504130198084264624188136194929202949150910864724876398810618652918529958013205073765459841000850733711483587313465874859099278043181361707933065301639936052043417638442101139005642507349109215508682610531344336033017139560465029601885322625354422501925135543281613392725924802645348145796222984857446335120230177491343833399996376562952426058796724958951669782077944222864201423269798922219141090883558728879538347814798149901099390274036399410160334676053841482411245496920481729092535413200377216945757336857295120655599668057074493185343600311025474607374247883386627561125551342335285073161200832003528065772119211472013273097704374838432828987055464841031927741531179189780633484577890568195545435381201393721359409266035492746766142445586375558383307719513466458288516105921998363524233568982943103075752647339402276411288897566547879009345257637142382720931794506466860204763414159622091206864981763891493488026229775181039528542365079779840701862629185609541058642668760570817836830714908753376807822070104172336164956066674113941136722187128045209625502149194479930080109903780603205840334815616045184340504892483428764669178275188856188393142689432401849139798234352557314132684574206955718066452588774536019349723851351531536812936556064934970305131003933629490892815158727637492393710512221840454316448007616527620769930512536198914738753830867349830375131303493661118903430225034086926991480652638068792651197470404231977906925673520936604373506834574575076948959449576848251454438894546390442285067018616448542083646555795834728933257268924371046198092558035098666895504452473955998628938166537350678383600682195035212549198108134808198361184722231925900126151326333520789278614285940316337715836435340070916412805847635844222421522761455847706889111436694081622156530614964793984502787449018167512838639635575914670170635120195293453683939691933846043065349659544252706888814464139581333052965454876087265239664671263262839714036584456434471285970907775501700876292195711306847704717399931721189105584920655828375050716648472457444637035033329647915435430188247744499637865566353220062923370168822579936787803201235353736985233132549831935202299036647662345568681848537052645433260387880795475889948987451900954592273819975529016640180571883806155703167244722712109320392623639450771108358256722559589971739153510531000329860940015164942340296433073686811152490942129656075157113638207597362722838771614997407993268331974592060785197684304543854149418134770115702546217903771332670393378006250853893695700045136327431211067252509962316759453514239841073869888922374138517616282840115584267762259351467230985677454974158024532228695143606155775956774218432412061388209246092454056173713774652603848859082159909689327756014302797829286026756988336658530201204169977169864289407965777429138394761263108688698186021176699964559068311906205916467063701254028720315146677928462726719440453930909066430887246613628369365967646979650586681561718257575568917648986792988676688134488568616404479470883645804773085808323187573673141125721504598021184931443782621271228177123845562383899365837138392776712089374091917464183609023744383334608987212814673959070022651656120194696345443440548114520699544362028355960291633886275360773379038242018246971632375212704243251652061604114365955855541902654525905771812021479920816909969558517191725653531118701436816511369339289055866394794103600991933966168843641673292950058032311004247577773265288980973665892258417203891206414515068844175700477477490348401670188661238586848857451736447454125324212177477321816501234976461688314655532593561937759421238997506553223270280408171203793449141547261332762947676272095418288111251663545280866089479720042835362528292768902714490611067885471057951549090926814909708451787254824552095163026161681179549684465255939250948425183821091198471845092310745515224020919927515273553681992698576860658629116875434264233466593813552504160841796630358277992741351245476463364656816189223348455237659217961838573530677829487410951168569561186292947335619989797227781422270304808636901562788394910237709206667961701990830652407960474711733197355253562192905829429486214204948595494158568744284084525603799645082315691581657231643019532374470178058846880260605444338620045516748260343681017930931644039008243534506671150727863274058319622336984130007766825591290151048323944040264401652527590734321521051212718038176896471529343871579224522257572885374215619452624543683535753683976128061359507471665899184881146846827706121587922647997087990893792450969215435907560783378018541847084251029067089428549662723038429452080568428869067696152297226129688603326754396077806486504571372044073883927660984538785011012069721373371722967504676421197752605138571294852920022380390971927602204789291344915412052145441863545663289735671562551449320994648010684958917978114964756981725587976886484130822952218850490989836494964845243311240168222024084134553665278951329444300085117780370372399680949043166045100782146013542449878480727349288950777752573197538950918971593368121551051013838252244528510571837900442108965443275817349398355006360717085020486122217817325183372856538002947059665656619744713437049775655281221132271328455364840388667638333876723189817408038462058155660993099422394555126423990805252521706471243256036426007952260659809052107702705046833503753019997410150472434689656947956605489266257586643583685705119967363195130850718383613897044115083538188843443489640840872757662903214044113155942069326148488065555919939398232247423514110996307309432524619504919947287904573344874326155344663456423093435914520972128430206640280917499452271152906633599729684943512011987133675984856337241079322435036212458167125741224421606990383843514482369132089793341853101036099466280858144964675639055301096121385904448805918450921875078270359027102631063081967882425424774096709066239576452456866357971826552380897834536481684443401606625224345941174246945123728094956846276936627593244212778048557862483666297105262511303004093086177291910993181288415100791448021753624844185266058203253439489329027980437115502057061557675533775046300439646625879792543074458023780540650084324878515282118342407749694006027323007413826559579824364174458324909317267258600362852112100897174761443688085965345903462097915753322511384430238092007112209356586359782083498246089477483718920853411449376833123295682597083905290134229262767725438432786710036413872252917489322433895931258953984516869748936069193492654096800480218480875730714771094205937472046811104354090502623894171653198761752976961558670980339650049859849327453321333982390560142370365489696923713965348839306443186859261291558090001095783137573696059192185395779959654606275958236617240284500566262229712059139294130263917657936706907061223071517400407130153190965535822025137832555563596039888737618042516570289380890958276839686345417800740120088086322541895983543259392334575135041106492718867475790424149366354081626924721247672326127439707030768231061110355953516712850219352986042011900772806507095047709760902531465940611106350451052372799116851832178765105458854174064152024091614946140866775155681537942541638314720561530530052316335677451757187193238941523956038017995714729915557277889712116877615249689393721798332384291274419452726182025314573953268026985490169399091403069928442309726629994118161963784486434890544321453679657591330457379562140393058276030526593890122105332626422348385638999063036826066347628527989422803723654268213713988866414481642933240097068269944366275167026462328377267397030578553363270065757583662328604944992360486517323229861557628776090715239579910879482858820922299324644953240543723536955218001986071738719712658521929945164124342332629166415066142185917660545663066531921533419879127211353064248890684301157008157538698151989301864961269030957812284122522607094433122835701875824985629555981483196123345278030819296696903373215057453653312137500437275045778714731161131654787587763185549410307678858863817944483953149887857463977663544064091094236119562222044555935447737649174169963138064903576559466707324107384196524271417719224636383436854404837738120492378273261143657277051745535368421937429290319412877830104790498308732933099223551494869395281446858242475020815453362809939416120951551055807511419606338170817684445724773539402903892301696780507563529926276732387290671418726190411851508461474498691771447739073895405400987295047035820008041011513778497233751833222664857922163585871175433696292860247278613908090407732236017177976672129437582836695701730093609904569547465351929396122129887834591040561010813307778618198157309192775637836379430316030250066887984376655714261648755459926223582959451210927835772678890640329165386854326682719258287618018050366686776445844127918653598394482100346744395066204614696230001444318312920788571493768386102205050675486006404059752534796042239769784621091354328576073045458493176170851179637226866727481362526128399775413336494447519445393368189077882051763128970609356424597670390657125622928655830324978432320800975034207073795878499247118244442355018315209781381622000327202860520592413638849326478171715871718674947634746222594995454343324910216954797872711992282804444198639853850027614374844937131064312832624014948997345255361586493791711778805734797529330627137451473235704307670592598157337526257643576539979902775078881850341124143145379968908113780037445204372371606543117666893898487703489916228712811222535662656881255227750690745239676884264940152653032883517414028687519282212125242491009429398217458444434415119811635404154196181170598786862911478563878046322533874554720347919945529904638492748274240888735236853155979577469371825759983238136364360684434744062821710316453709742420721359733440672740939609800956991397752148881311886308053441932438700092745061437627183170487109778681508555097976416701861766319878754812742312218981762982025263287933997510774166524886950893531997703834091634871535490295651431276411295447530521202968563546178997968361582692651240745431976047064177485544142078930950821448996881222201317770026092243153299092916194135291469069170858133766126305610305454230202345994524060608279350955423818080246259863420983246609864291279740640931367736369552073549025721712466532574637209211358645695105860615420156063935885523748618037437180374733334186598998675605595126820695302305200996202353636072637818126307060396811028078146302726633715657564057726372611218280853228452984484879475906977918862105689512902331998271172962288438080776488486301323787499124415718307780096304224929159467361518618298697689459532730928756118064940638479658984882534002901988158677391598407650423060413601463822489423116287054578454325824229546530563467849553653141550174288985553016544580006650286650800063422541593587327930311332654875721754985922755568847722880635952893276148499489113192797842092422330908021270499726115528705700626581881417191382287322998568431555585037879620712383148092120273651716637803689306964302317426243007966610994901278523300484944459564772279733475609783645802297209386922283513634532104371709358660439941852564566446113787733981468060946424900204292881789528822646343517361964476765432595232818130368245230887277792081134776363021007269418923779670750472020707765652014046355515324180387754726379474645502875013863757586097211307311481629728435345069086954746767845325334141154080034410074281677649319994541005540924028637970445063439347619080206308753798838290725961372022574714116692438153492464097192034822564687086829118309566857935156891930553001854299685691139917545076548537224377001690207334720194286762538123447242394648894115305450145207348433241694004212702783030096617568725733151907953296365442845551954699845556546895401309573410912609552276009957265539876456978536743576726167511089692643613738984780419994777891216502902249153325336049358676758383928414427622425848359644634843518010950783099760324654341703693569496296855570005231043796325881499752319240721984514853431837346360672355553532750854184505104989351755387675789655636762320245661429336139233437556917883576007639866341496464054689749252477782835832265548947638315118719596463495431524204419265525018405764603492555397385029400539847306170774358368856832223781594640357647308941944158548618155414787239341809837681270303583812526738626112731972466155803218833434219568350522898042832591978247027309625424431340196591131811854991462901210232365906824370440319959055067314600751969632666094544039495572122606446613616775627977078680359005640488670806500972233318706685996480085558830422908745437383714375923705840182387931274075474781010683118856466881698140021324356279846058285512577387806780616743541918588866007167348687238823675828015376864055349928710080836880039460219921453573267535917766496684479367431115239659226118841147935926699689157990076378088286809126084875304210946845371029550041987447935945549434399990210000160433417984785651048198232446585347971512273633328660292106918263480603924985583500250163757161044817751011156906589459567205645195038627565905638381285666662661314809615254608523049145083553186222563025378779879488139085271448763308085097098078385290738995854236037023612192507577222903947669237938138234988655077648218116534439617821307828499353329119049201803228058271711885008733343065214561030242644427186844412921999649734941042832187286913795012995983438653568021819308524288070834613455493006120229845517022608520891500249634131616018839735531866924619710124414862497332873234287515943751017198915211380045295889783980668984761151589996958526628778330520472693410323827302706163249738701373330706373703302531449012096559150703018472592996063736177703132025767247734833277463033398512939359399946483877592548012060216819595182717923234778275637504964430649360966442230891228218514114765145953923285102128125431723560769088442336349628877421591206323863294393893451324486591378927963994417776550912124025911002674817625910220098477299303139237925045798969657527871885289376690837102645706257081722611806435702744736926708200012656083387263672216168830964306383120810363956836425205686596586364412126655768728406068285912622616488238237856144293565961178095465356006530819991983307721157672829363296621318768891891075574275973993738830268312525940751968805749996258906942187138143620080722768937935222894051444519322748976003669734312909978251927039159761652689479319404903877709219341356388789497737142904329830955586093815697731031520385044246345046514249584880963477969085516668022229062497600361340398151674612080355359386768886025333217545126100866607350940901003485789933482982002337802584996452252691039990720843263479886621004436664454306893932658729739511450891566114332193313817873583317506530886454275802376528330584028233668193732269646642454424597434309524522059725127458029618747199797011163099871510701703702892372810022026131945324205155093737537285799431699228183692366083636500672945847790489984597390651021430206700146681351964939251211918191365052976219136871528795868918522515819372981037942062718572968767809601194568121042016682152226784520839950604039180963760056138243344501684094503147000859813049471670039407433888928479135636934354912508474941151236853609750591886419568877283738773364590583789359628575489984432888402451594381659987332078917765339796367808385680794370052168340235568343930013318217242848050493144382131042998008948413925751253006346226399951292557755524780568713588767651021622999640274619930659502924637403533939735022426067387526419036674328125575319967707243808871979180187576630520688243642232189731161538517108189099255480304850159687724310483327577223241255311569451406413738332915124374530834751082029638714766398259049549242313810059753180963962958247183108239610783891235767290029870271256375481681991835587309455476397040094348615268518578872913006109316726610929552298540336307859880533077252725092726703991334523843028445518871712876269109985713480341670556879737996220678780332935066835914071832515945996977859110336039760162310148666909369492210029317837512408153556954614026529089955754712935386141362014649568111776217840304198833823754870228859472189656316071413838047043279482307517756257185294995150209079576814419500383728853948513649583895451393562501035280869967393315451131562713109076834200965543437110659732237129884970188983746460873595008448124481254526674306269778891645683624822224495047298521007207878176278879949777294427943612871786544722712128770417424330581094366380835091514431979572318318731805138109609438882357825337015428836703685763407425310155101043385407113841177964984296346345859411780628275874209757584358095925030689807199554052514294409127687738145700544540950362038299031055955940744171915381985691318445564839886265314090452322431681030155871481172449319428252159775496676273921480757633218290913245709702487593995485844778936221044305485507959270474262765948816498150825469546083023651004083020605388631782455643562655636067255008745865059191236305789473464138597593074186915034220804038258189957360056730471494611285538920079425507720702495214419944632374080112523049173909001477675322903730299637550093251332782077647568185936269709464310767787006005363506654793558166073226896140857057392114008308661219338074799700495559266989175940248272606954002456192208727391418627016947616951254896944878929094508252487609398454868073048104220694880817718701817513598520104586325392616364866373087358288401330522847911619996988929713991382898726172127131754960465914971978734446371255446256453182589613145436007497302838218746016744408831215042415633082402775194721037929713883167017914510203937853604633013250933713697276742357142994825384857708320621923136212237810526393624719054826672129139785513197328542579103724888150096686673743727988103827353176305300278357999162417912966601158153586971441889369747822358858982232052195366912816729978782312887246501869856682564942428001382443441666375713289766116119218100727562334428666827417001977088577651311434177451516494341691586923449678038938622149460955624621528534602513096202614674988922380368468765497288769192888581147099960784359350154290540230996932008408687930657359189168946081281744525545189737056859978524907554577414863116565772989850069192776893986445012178216784726329805253705933967376081729679450857693048389371422971545936139368368879998578347804281674849445682253596132734757214180049054010635495009551508033047771199869925945995730458056566375371109008369942286882505691747122391414315726258054185813561757147476052757514682615253661471621846140757638168346567678801410808576925165927040359590857196840947333836739333294942601239733567872568383043414196705511348613788044243857861464010940043019397024536082445251942337151597045652532533350183112435533385701608627903213963944654729993148312591907150363093763925564699561453836725417631382091193729805533489456924014147717492872757665228606910089811910643827421272399308158510633764993468920959626972095063503353716571723136459456574643038998467510714494839431886704410343572515082394814499481588042737196517390790336715307596563601019677541122051449761535961607250177132624438031216235060796109171124330618353513893205201691590838464319204270475491001268984444060294347124043267275263648939052059775874151383647001611641297862439758731455749026864663617232045042238979597210765128162511233605707221610613175170122905270060561662015602731859538736070638794811973009511040541985739037134013278898357245666498254917443458560083981548502387196738409177407163214161143565008994987900057290885189195831672126998649933375575546993663931982017586104587563965045635920226555144989020606992550265796030711199256713970005523945256305438320627384960516486064548857465067316224927074745169039377400369364764984682089045375433587778833442060424161629496791866260299095230505441845521832481850637566367655867378663023666760553205681127371556735614243433782723702917772887013566782354024523627939675839832439053429010088333352705274935094246288032936619793760064874856918075415352938610638185543516653764814342304935412503512261062666944945970734988788016085045508427566775238999556962073235559526674187991748221124541004383618067978523392365259625672491899344052561228842085408647917719234291871486718553390424424576279030058457042596633698481124293093972519004858165479113966653789832275054585701076141651853549980618809281537403207502383841487628713127871479105652194595213274861281442231311640280920519119353353335332285899438810931270764565280345054695796774162229733977751705681190002185108245380357963329165393072744883843604069672984030629225574069484999719734648942878042613458677770097432125342232521400407627798088048266914140370487112369244710746606707036389220982349789720645243904680166905463897284511592857113985891429950223227793588439581653940732891462349334021559904675647451799548121587565249425093701538740872588688306799664585214506367706282204324183112974312916318098190951309332264009416597424998995102213589499449338386459034193691391259702058413021483593660382871687977149803507779719071521180689544811068642970880209377224419687905602103490752422555852068160047377154063501453493141147607024478864403622559508764041821801101327203407843850692988028766604869309638914324894671930144689699626378680509264483678499643184935095762534447913238304631242716742003867912023705447191238578922996503601878008108629612202391551587866976574724084938655421423887856071269977401064824059070201248619525034163175752310851228179755337699273701676866048643653617387588624647324485198931023145323445681257101384117414809548309543477881384183383026300631473825295170166381673605928852714873671084714214060490825299922853619990594313467680454582320855680032421948040132836161713026318750424833581087285308907920583608010917618370573417579882553626286794941227155748195553215847701642546307955544870392871364144374679182819194073934075308611652931346878441913897737951506724828072219163391004115167548406539962335060979527065639238868849201583760490376452391996711671067722479246087679300141895156169422659213680461403587984771996724949009419247308633883007572858071170280632809363994296753717919089486827408141747681802720152864973814322156361694000898376959520421805054172424226023263075005698030308633449052206775674389323777427929983140411756357962891521852913566572729256938837688107845054160628553351591650854057121575366026412354312436755154007208449227345305822759624013425199493019101554444725021615728002382602150531421424190501278592754354173515276420970105396477436407876620303310086926131124480940799361788001131162972417774897950573959089480194063108876548653907598101795473614678208645932296066486404908645548739506713059572893629895340780763064946637370181224910333045699594638102761390897029853962286145815981544730679633600370267261093629846060628491868645361135367697654304322880950159568955170745013341708587077652010799574582968847940787982462041694824943757776010091120446324512657925598532606131281355260999347586685496853071283468921808735422944433095704501239014312199987006160516937221252306684572089235301410933854994792837734310011816559116370909571908538892309244036116694179622309567654055674570488975392882589671231458708865362871295578049005701873023375108258759622059171247511074294546699701851100622403230548302577327276681284483855660753993941305854820296200035853490502058709128365819410186754131207458846131645085469717641297481144257398472373519133011456967218184742500578394109162604084202795293711541316378043462013287366106375214538956637659337846614491517839442412593631437696615917957298367901878798352791560241641742143250632771129569757993078557637080434369991392944057701644348940848096793140194428289711694089990791906174706680560375902189951607912224430556474898546976174192435863282870847998338829978594580055363332210178790592495596759201166351477417923094555749734709059038470129682224536473866319095672900485528951936145361145705215955581065955772442736330365921323075514449529583519440342382364135002807622693003045220674757327009418895225227740684157400200749092808584731921257589091870030645373485712287920475081819372980308988928382250109259796793453853527469020349110109089219907227114134397052216413746301630628025242237185012604148870328594469361772516668822838139746545285686693753968291356264088528079864953455083840680812594151355830681267374688078387959028241782243995153318264506488511168216415961210807768563352693387529503495645068088675702025712779676801792541725862541953307365874046417132937614388022134679841546104447020941483890333257531262006777170459197297604094738944051012933223705866252984701721171714614856738041393895691984893294514730870886961291560739258228392565493745509501748142798061433886152801842554206115049083068253466990932153783904367776997604715275629723589166663492754265068466751771292080108785489846734016784553693163447897385428470378587763376498963676902738295422596067078571659882435629443908185708988075071574928785533954461188912861062496097872377087706311433632057277342018595040966711505009431007375118056490700795740582235239870342048851589703971900113508788535120407930919116420928670036386386484341927180391623007596860860266315791346627079538486720520102049859468477800503108910823640761997448144438117402368741829193843107635172124727874107627937468763202096892890240777218252466953402021585233717543812812684111967396928143166379495928005787114087169894689561789065761820935843134717669740142394390689179011388715415036264014619714421222248571522742111080269749394713630220246398865166578887617930257979309634391343795065650805328454321618105808771715415421059470034546086652814877126455764454125379835322365858245115758345934323088893859368160015429824654677778688075687025632431349411878114954394455177917013500791993585419576254708779488618322222435388166723571120823708367114894400983387539140441959288699172841496195376488447375049214727011235713410968321931979151664162790860177525284938675942402280420034156146148180604463885762930052360353687970297671610282465568292109554829212589768798816853416343301450613794850219440595679244098832185637422920367759867190684475046391529528010154379974849296314786378766401719178745465223239872445796154151653142410684911167383459264224720180306037366203614739515051601372037971573614059017549860585108354029908555359646909687889185278789829697997404182869975433123465024197841112244202585342015551587209110297247855909016748438279434437057010686656482798316612547140362828310797015572395948623370098937110675119546957930716579701709339600006237019207898159126355975858170108556164012745634825666828451019030325506913969835869102510439643538685307104142149864372983222929436535676419536759850906082156705307583194697866154250517840534738537440414732618446478003686336254555249503663482535500052518731468053107416227813281795295780350269481710039787917047011543095118677144189884099788890727212999877633114554656280433168545293225585247617758861835437648862585014935490132939903344096733961046991082166180013099363124429056224768451849285888777889741333936673185328794542418022268558133265909052236827752825653790719678509678884307443263290836003684398052335528841895283842270312119231609875013815930326166842897374448618978266874113390382088722842884072692802557949351956127212081763940115720293764355856531445676285737091014961937910588383373173721683257359835628044132497936441878907682386879507250481565656261389109262378874104269725640210820633302900202150000630276634518142566940497380178536675247750196495364468291569117332939289856884909121046698191334709508111962652374443740745839829929925564803923282813869070694238064543967119766881218431649742651460994719680380418201929601304558339484672584010997010096635695378095123361764000949243846990108737958088708880941869091356442654995543559372955866520386204973192255686497461159872594323978051676601973857510338176122049185311656534760921644381152033291797351825898660781676840658826806011247524279742945716990424404282461677683741800847316205282167210138120324899690517691059329130073689269406241393972658716767483659577487936289217479891926552282264287780088767809854596302888342807727772538982676427847042478154526547958874497005307644008585435488516913188235854053322205631130014335237501936526403028977055214047318284038141582413956011883271535086626061727530345237483493270869649577688149408216444052946823994256407000145879425666123803801552490466569073939896030020445079807662570152160285221949127269955161080816295129717655372325135595519934535655955892028555746780178705559693680977068225543669617595029839440872038439317064431167088747827426151294489319781308978888742071208092578236450837652887076299444378307303715186413384499681065471406672860663515567079760537872467336150427444214333938698141371404586498809825254028301795673875309054428717201269618779081349026871199269439253877855387689922669862442263417109691293924490899329531519559043262719008033706991367223682006784637538977760015721527405567828839462475246861734497648687692846769365793775991536744457159770691546668256237119057583568264486529088067422444457135740670375740171442201955954587500254513302236255233073030265898955693680997522494143265376716404401382846709856103594559093818814823911477841579951805279631145184618407269272912779776602182272964020724220550234477066142392524779626866048477479319449493228578566852471312744164661010766138033712204258412953648538819647228115896791510619558039983404959487392103546922313985530285168975426804767837184743098810639320715861585356253644857158038636859372725436459715522691128621735533985713287462512415090703366296376352307297412924200135009239845812611511553152081274492187129733564175401569327746457860071520262748582663081387653642404276934244170541315496534264941597113781417082859127881408135459392573528885801751595545188399808379106502485984763257501414521706693433777165476020996316925501291959008216449947110578186058174646241466374124432692548537162938052971796811250092389396930778769542416325880574438524581642595594106460475704697289862457668342370233368426297799153625411398262001973865739886099746639117200141890140664060034986383600228740823144637842229457093058271307272657568766703050169699003354032650468536788464640530810502298988980763754942837517558407562379201444100280209576429454598488934697873946356729510990452374359261005347604307564810633766058182779703768997659647802683340632111316064820959381554340939486598682937238386165727662142416303804715978501950264534208494780878579243537705671028714438589777989858702759487659342411533504143187542150831550143934822867868006635754098964712672263909983022578360366178870057420538015548821156049618549945950251147702326543111959868588109755273958679459620836786626401705655771753611037376950917307731005234155229756907706816905054948263845554147274036669537585058836634789449359827043672950423487948232243188793640895504228515175949908676661081035057003599552359215518489470706455121008974377789633642410287590122873644836652495033743901553293400770675887782046637537637961247979751604222244802220550492889802445766727413528311436924688973589495721343779717161154027146034221664881976728384087950888213486757853156729106440901422774382595110060349484181796337804022483931778430106146278832208444085234477460979150012589065177048209028326497550977920151448996862659456742116922713115236972443834353811443551469972220208969529603400769367646297488219947539446238962540356262320819505562076283224118742729017966393432812749477807074071658883550574005654793830740526819448166458616220526385404913358652908432626785033077035702470601549467082006041485768492524909605019154161768722274137798480104528176657136212779235486599283324418013815259046479815866644585602558749117950151541000045643672415242561044845581753442951830118763547969463950157874052224230380503434987746751626569503180027687937460915112543586370819716699466485676092060400420989521665406401071084479737724754689626733008910969411534907178025645535119040139079998029622803640352428753066635563327390095210156015144737052526400026737312148423997027477586539337425357572489784483236007758133048797808556441829523397485241095635235832329365696488387899777813958524103943338142760373506208579400976802166924147585019918412193446042226930577508362801925161046750637909249774480089218680450551769355194563235752885181061859666572003262047903009782097222309872446280261755065857875907560585912916688366492707125244314454542111715673734917872767597569476180496592949203126794669445641566565623605955578664910655590275469189326323258660207724323625251296554329315719270114196058979065297819441637864791436146098705850079372169035935490939827512167949703912084170341329248682973193280340505313856787382401933101706178269279475763211394232075051285001679762670168715747660135012495516834290374755423348064561871317613891401776431106331758584860232139597311061135148046119680080164684051842815750145749069611228373711138450518815265943936814129789020703265197897683455292949825930222920153218355119744022409010149769561428737725563355982737525966834612688809040354099323399477876557359366035735312805957804801369129042436213604782029928101865343063491865446298874018445466011801804832346851862730681291236254273895601020092037070067060046334720044609366528692833226055950017471778664987052930320416493857242176217344140193190104290654317435631249313380372272575408623351970953595824393289479072317517327910215103995254669349595799416827517726830389859625158262982590081417245905745510688709010684608636116416167286896863020865879176920707728869729659933664205710716691592569502940995453735108980359101640208842293268795031128874699061647436065799957971378169313418157144918825976438731090365929266438837814545954931097565248599163606176741558345339932816597061592529135031724465147538568858955887893593037942970073728629087831506827352242782330904231440944576976325949282655570799062340254316379143601229347988595894442827419049168231342293239319289544608665033917537353802427590503197058177896008418428048307331450226902660955611350226763330835502828102696043015613208448469636873685766948652850611497220864422111337667513453732965201433343152667532300661359336695668452968419582237352167673051615890066899247956684274392846842531394001832143629620548571794592118927140055113770949839571339054557042350788538133502426728905396661382301749027111009830046500646516919342322366207488474841805054369364472539946775036650332141745812443278243173259328424102729589989511249759829425369417798722017769311948691310755094694773126679681436635996158908526402726733472046793673940812573157205686774614039567431349379347916039625655309807695717084577553465380448124393883941374050137934749658918724428131162019722378069652878672272166380760518343659551456780143382002922844211597085934474753546141619813050264446308862672859956239257496132039887527211397038719447308563242702101969221147424273533868404335327650364302448952038134847629817570287063992559235175109308356837007510411013813715729259548881870455552417463389679332390313203326865904018662065977618338502932207855025282373993459960477704193329853673653620226928082987928232498365166651862618135749717470249085431407740549750452411512731708874431320696130936926839854555468777162848110141428986518392764252758417335289054256516502641827314236532952015240137374780005060441036188809571016311222633480663241037741740467255119011733248448911074195334177654869689692642182528715630740458033268500199301094871320637789909448561837313413103058350867310613275070707758578998395866534403919897763618786390671999727282351592392306860284362117689804711367152826031439856630979788818928812190356938680887601275659762839699957671053479270440267769110867696377715175811653230567313642892029567562195954131254810065159974309403958481841106791177055117880391020751442567648516134104033758850675832827405921851620897814811385396676951864913449011312433750911210724215070941169359506035420910598679799323481109876896769827434273333666304490053658498050327818049370466833936953213130865568028324221192573588175663632844658801732990045798892497037499126420941594556931199905747375937530505425516060477910873389147994912092969929881901187111593144777019166229682248196810248335614714487097646825396619748717825712035527624894612549362446550296400941559758206595324597477033855605748932128648327143679555995318358594649576656540899285217054583913822375229321532654817191953094712670390852754644096186936530934053566647178536745634162539158181691215961057557489796893313318056145365529273691323209458897849333514895703356681341634611817775053448130733355073611883821601659424671503436402533147422389314004844137622035063596012148134640899583989487246770832362007537904279762864987153260170627809700934100533028024184681029363755204687405159326663991994967399349921843637407133966043005043340141480365876242876533756611644183308941039321099285265669291838052375946818474602185032463116306407185161571116457372861920211347162182903545767461492655595604289329316744971676540388565591147690785489559753117702373446957398397233353057416082543577522152273862201492133870273178164899477696515656733883058051679300340174501945322621327940549267778743978866910102942120039338424282845886377839039784436516373466442475583291245593302125274263133518630072120765573252158989229198873328699093777996395922025774388216934641777416865017251597303267464911699547381285180166781731232203579712011216830938864680391712919908576783199725284093327000205367026246279768590395945110550966127252801561217002584519659308409995045397561916543991848972485789934554100095857571934927311866398668152577542767859621976012321206280113549115516985119229332536355672876965482342200659091903494789968210229150930958722317373756421530910129065456109007332002544009623562571191374199347595794095695488453219145871202265629419424124523800468933019292335320530364939342254894238941482816269976177982675293173689482864993266901758377993135618621566233271673414136223430745749013707915365989877680562994125055731474893927149020707470367343512506450457592022009576385723037285042700044742678650129861817092510996821284106289996854167932909355112435847262517078703264934876500869142241353967555337497403012136987831287188897209936054837194646202703212629153085265390668362912664788515842851320866847447021232166863956678807178218998931975865724438431385901953281791185527551453615548339501354905289137075194521915632577491951138714833696676922113695136424491223728848306460202071940380078656647329174217769794069649727759666418058282699953624816683960174790878072105674910182385651436564290067757829606924722545546319280793215297216895534643148399684483348169576864504043212063383737883976876707421618981137422183523200597685657617035979927932611202594589912972583826392023577240310468244915661157623798962023920192069122233651105879788462981611738222532715993958774332481351103820874345022732265783679204787411380049427189573192056289800648753764290071881705969781640861266098701230944195868325624014106095639757802392655264560651167826391061379172363647858043844157929409195124486531805325422409567648343991470212195048831523511528423876855495204606497193050575941112511304237002491142311322592727169560599091888323364323323489384319107405581460705425591938131613353394054954036700103479488589823404649085805194778650758089887517763385215779161099851367649603717963366811010737601279522281643150059706700595319007972563431627785034492667898826459037341777404057789263319509330558559463901684454609246997774145369343071909588465581517256567168624247990781191601781175384531042735775285447663624588691158991805345414365178907161721785884600125658192543296265928905483735365055764157647364007034887824122630253493911735550671280316704637366516533861938206415283972850065464854727382900378341228464627000548873186457657249051714716415891595594990494411387396210036299222685350042876469284425307190675795705124838481029786202431779051029215226142578879515193256106063828004183826601856480253728585471867235525744162595568832282971856407947009459628256769667403101697994908000153979402084394742256736750864365890863181128906056200285496847606047283242647347259918795425530700268113791495792473343872685748733699676317768601798317991289599608338658241234558172369374040141353364313220501881098499331851026212514870331664781045400182948737277530834742512866345720469963437857226314504235958504497399484969718983962594046828740159260993947029256774308995692459069548137288008035523066492983277992066269555315299818428113392299168155254576759066791570718755386936449281196408681033282992580169714382794141887132524864465686277391046434946573681230663470874014940485337788242411817915324942734512493391391573895197733660961934892735343471888144856691149763815694987575327413765464443357181290452745252371369005794878168941319114786666557764421761269413289036799752117585525613239239109339090261676281214518585223271576897682651740298697558240695478240668565167291131312408958527782100993717834093598372367695828286868400813375291794827959841991390148096420008904727497562844406633072903752961360206841997860437321609829781162227488723405111413469876099607746592813768439994367750014904190581165745267693946119351026100845429018313797557960238440554951666601917770449752516170482618765194825183412335928930671450992103794454790262293226176401648500630260516839993822172337202003516177643639194122551203882909294064240288053593556818314995052906715312563016396636856029896334455103737960152508846455104528352586273703754459186634263896690555493008760907670260060366967748843843554526746799354466788804696694721314300164694144588042315545575483923092894352685463036564027919544493994122164351316407152292757228186149241027089506725542404970318698192793846715887219865605805795738469312797735912403540357097667965289454176483432883563908932795665969826380041021184789778328297211891065255881214320702050129629196942992165974004674302153820002011634513909489001419632560588619015359043652434734210003762971260304303849037493399455815800828997066633749048624707601913807782119857522775114898472421431502850203731199773921719428520642871430531709276352482067199080533642554923719729740394125406129012125887398694067862204501345527662204239914718769864106717056113326171298057973786446478047149815085607893899706444815906065652019388119083672924948575399362612140525383822485432949017815198182016014967657232227676841547033636016669312983291287397631140816945826895755155180616402544370646916865184132571847191391259246234616126499045216577355295172052253556152232098718192267651346979414817394183203576738066503308535629298654425024309572679186843401031329591597708960047961287281402543010863709214390358492825968612500206409828292666220679811595088850310669653588178350237129609289933357911395871934165643779198118535029285873514208923479332647159277201836288876934169106735227402882185185591286298383588917437910762828783022828273620204620095609189165053099243285044064164664720767262762411618709649231126477591869335796220279738437454706438659850167164767282539307164101082691847682969496759021834121281766179074445972693212106478221723471152923320814699223464828265136149597031980947351521480333784939226968575215541577591916808743752812226615038803159411809117614496482045155851047272768703013235978662361425526359410657403231433756852876699991532501115104871448675382344031838102704589994237490472099338278150831662622176440275138083508461118794516930082921901714156480514373185168860211009456970051829874848702608693539372973766573696495110840966572398653374227140189963793050508252313701771802942886040712994496487620861497849115625955036145454170193413604193107101132536161775998864798012147639330306842371332365799488717118979709880614770685558876401751048250104068838619830244616157145407308905393939244245198739381619644366007850688032370675918345197423877084089863880374806868334973905729012087189220901383694866928588324906583846017823155344156997020444742868167721686936012031798284683873018341666048340759533042018975438891883478140294290335098103362180508997486249025959591052155126463011071132372523922559436330931708098539852849484753097500441743382794684763954863862798165851377407345957956369014800573768080361201676351982935274831350658431121302185513708383683166835585131204716062353958352658390242032264643998579701269960158965514422310500666618553229159616796706122296406190031193388457925056646930987365442677575054351764768914636775801519925066480220102727425785963502042520284795899843612798275937996804600434293859521565223261721302618269218135293806001203828592243144696845711997929635469894980608812635442279655625931837428423964830035010030383465009517172840627276198774131810558063262134993159141020123236236071666667279403376670372635192913950946647729696968253289886720608384029693183557862105051516528681681097728050726847771006365389474686121726343940971138095603918367481871192998552771878802199746482539049188177845210957562793633250326800885769565723136314914305293876200268497936951597551512899381563530714790630913690362236128083445737422303747147209136278203601571203920416869901610276047951492812302133681327048584241287489208681545144556915926128816207659297520134321332260090086158089288214090319926064338388283251111046055543894860001224669737072407929922517350731065052680117132965612614974314275115952714101267297146723733537436552688693268172460126636554752525945335373547162126016491200428139373999552557626582060903557089232439190892660904585164612742115027611080229343796380448590183982269060172517058995023748468681384129470674330554449326598194218844400052444453995819911539063491636824495621018464821108690669742998270983438252918415291283012503042329036718929086875086201431767788311769662345658021095277219690817724482924301555861871435038760661360292137502791088833749294942223998038866845296612145577264926920580297623946980859802740821438159582730858027635516839612503399776919288952415653677997005804420016414262849896445739042107626440325854426175555745939891944706226133733376814685721544449401575534404029365029277869074316941482180469455261691794288458341407087746558352298477755875696178743681012394651427847013697096451570491599191869657309362563177800346741020974568799852486290273000683784963099633958687779871520289190520641543149753458625600246080403435591518940915747907739968527010390695434269225236468431882705322584276462926047109632938641771151380020203987560639630055270720724665072325514422177322069161901628072311677331659567442353360290961861530621042374317782234201037574901091655409020381824312654673456481423135603419271257778785834460658829796663801166066118801337176484197182989691390276334994615841315409643841162495199251753964416528414253412549600770767710079614138941936183483643068661595875807502742900472628279484270221831353043240477927815224933294418777258370680260718581964524194573808703998612527571580264249962883769539968747949872801115726250104000352559917478671875894572264238428036542318823474931405066318928258740362578468767289998449634332511608471195061799385325111302968513427808698866852655442032266068730789638444182035486193920976847406637262993062991858533312522816423754367850026958490244858443286194620421868101851544535458601565731299121431569532176903181659305574528546943408711444135545205981040523718427100282637203706805437471168503521004642833660627457193825400931098060049402457035156577397500022208163073330629006210001569803647168677950824880783652151155652481705024292997140055822203340675675954679502976161749210589223214436529852654866079333978724245852825364442646946351169055311181959394685666604507866392846057778368294575338137940210977535315695478596730720157234549322845009695983536240985382818186134074374584758732525472168012891006753667767816875947043399482760385014353941942172671753965488345956749881967538803268616896715745991530659376527265063889093856813800360759929628404330041015565069969197992925147321416578288028756393687140983605623232927493451814232323760044190030915594101071516842447674302454573794706222416896448733353446220923950960057377636347609827879203459429045566165271176060601259734202645718258447973433031449494831445909639794740984330682540735055638520447572878453287766721521502337966448210236966385137914871926851134057992523394840065611993345605669960896714589608566013568792275811181653323171030729490928792175510228773896194603179307397474346393553387995283958690190393879518107802650443450880960990210795095839026132728415018324997572349813492731156776235390132471022180806286625307744036338521570217736828026507439578672372451362275926154484148693967605111433447051992860338298068080813818473781661599594998889408169871727983785803213773436391371087244012496596368468819980704963416790773693935771096984955562830453951378795657834878034757651116352808583509091418599777816032079020221975083221696179920399415578559917774965657975161289296796618060042346214719154689462181979761651357942584352784029438906773928992237519571226184053471276509375636171714340023583820834157695781142336438449490569256343709084825463957657390354649334036528574742779209761809821978993397640048269623591793115449280286549247274989493280582551461998459403878984412165776645764858612830647702295171061183938042307532719329258690354456431154260925471290939137415773721548842660234377728702504290148772955716375115149534521329404692208242248942283488594367050341663563387335255325258106953931049128076625925750340678167874489436765978871632829068582298764078155102763322525149012180448599046742817207526909019783511445895891429643998985271908581627202240276578510063124358736644815981311434832081795833885370351547760977213948684688220969377326543238862853364991073230688386508827499546318513184115869202040923952614189409459692168224546765748408944157143653308289507753026136186578816075430762663048819996159003653517343272263334832115339195959794500050624722449513537693399412991238263480590858314946976359377172399880774570878026762954562239361789842628000765039446653555663595917232532504529584029924801129889813320920680072161764814398863838122594243777094064906091024779557716110011484265442410047852831994726748905210382045438532189477271552336345469060522697355236455355673881014296594986452707871504656757541202055021602829989910167608794473273619866444742463669857929191023907409338407977630268325289961962489884967122082456907634421738724173299192225849183608599247514324299011628907428171685742271807890329163557357408666151825300926561102860131806736110211789569033093286549339545278171140106360722537703673930289913773900478478537974835451701941901744764527994434291069366588330762821179593396219637997126545557966296744143125698929529293079960332437025233233204217469895106539253034882885624584406707104538843899054337305013955438303243276337464451053061197571179819280925379550926195796234828511667459982293785933424159869849242385500692810189729862855464662400849598055682421392470048533249733186286673451392156444188097855135264190176152242012397336425524666244707883447176853272443306441149558886594783720326675129527945091035125527885731847150292456377941040851892105442501511951518928169022255459114757015333758583779013880632615004747399881057812380740831543685584570174493964743296880157979641819182106076800595687848414772050686757344057520312097907423228581907384717962385296803844491937124895693437634885232241388525319246215981646208560877674965176056115211130344375756264359479576714752392679082763536539404353866449787133969610899992810484491195041198573598798143576621365807238626628708823138854555008417832084940207057263163648214008883320273430842966694605528289666209807683889358241155648264674937974664896439798458321700259215745009420696144931038470258963861800083412865446326195487803960106215660972432533565378973320985926535652959260616379478964790811045563108433680360249557215161152012755368677271067205481390959141640867658221940780062672923857994487562345807442801139835870891098056572962048270397123640163364393336762584375660911620234054265401312964069256063128758877024482177416698069688575211271295221667298831366025023180870070633610503628529078657765808529384922019891490239677208487563122126979272695225867101298100626923542850877623358053268871760491841060406595426278072747371933601662684049352927813868844656580666001450536061587596736994751168108079107648308377585071040141567768684340119435754193489597051538951245166275523887368879732450732646092609057171178462826693249412722040950413877418103574281497500571900592241233365726478897268037024068205860847647247716123277792123022400393751316311689283522238093811213505057087369935467319594224104274073603339108821492249736292648594175206642363170347040978600876966272595998515095857948182920463296867729466822338903882950955093618937710189085783906821308157090976645091832857824081419140361301459005110494184914919323285689820025924893857395926867445027567596668940970356093820625753466710355682018239870198087701304399876843160386423510952090022747308914681475290404570588453262398115095164794073631533530536575654147651989174862216519802443070966694228119891534031843117760895535001700406534332773475944708927889015063064402119236100906948668027136089014080832587076040477004382755288628770800562080118758057198686543527419793698938880612730724108395682790804566782710683625420895411354234486879890110049501285301437416612945885185613921956592986050110206084496952855222931717634978878050810558957632040173831154014606793400466438423380214994836825157282208405899623060890605088198579132477566501069336648596422986760473430699740777655113221191866914074188225218707321635819602512101901361897534382700322518423459697992570368433027247728563589860307947074231928507787846433469569597436499969199806475890726195157373377791955893017734877742385463460762677780627122323040397407846599659511282006949611692562219023235814767971136976946244320680539575482258875693444986478971643450765471436030057931688337118482367611738724399281359934420828144881406351805709461639532762733023963231863773880744655360452596643007693402436842828966465447471527312671811260442734508924875649834601388639715961726578148334775898286073989393745247962679282741021259850620430025977857322734733108002631441334046965034940185614428669344771662203299977882096858323314097257510901525929088633017198454985418037450069495481007890831311372160016391149047080563765608068126233745625831122572761233939804609346435378290769484522396313673352630268366055752538962339213210300849790170873314063310204824323295849526349688792515397853129172699832427877062059226038654659733915832043600065498281151114502001189574003958180457929927480516315148315275976679992620830118863955368326954482386202663258236336892447728601040388965359724804059683875763116052449907446309223052401641314859557101539845879592734206804356631952429333677581070274119021799758664658769823890540671141498532060415930550328144344255469959723978480397416238416973056759931990985880196956334006864365856335949876297730520251108940843675319506387278170356744998838427103929851206554936636203069046046883104273680736683440034616861838487391220588864947335293814689115779474797154945235532613482850890681758159200728328135114284351365124039204701085984752556344504448518515433660201942620919532723063010353536396449771238743576506123816045213231727403225168169733266678302839919146114363338943403938571866264427052377280124220214212873075289551943313387610898956148723372344121776218765355251491433790820218702257928264354478898586635812659267524031632227382271821035283997772717110099844697288636808096850018756588913054146275056134798191162004260448718646944225676167502287311411830462616788040091048830326380758957293345651718304240942454745366830288301122131965580013829481890667440369280844965087292002714882648696345430674729743875243844161890415895097227844965870157782861505247157335156686738452610936399024491446600182219748935903262493871474088740317555228342389853936205549467299363945116939227100590431092504104131229340663984048955049029167925289541679251640239507339060332674645385898974568894131678146494615049571999034527291059540724840877366636937463880844250676728345907202950446133680700891134962738155549646127969658597517057028207528257423620743363428582506108829890758701363673967503699694983376487375559972695898920747829711527973978370029756407410021588096570344428286149138089314311186225059274912443097591511138229469698817963371174265923377640234964437761403537271904611936496367060012751235039838635252538386268827217730721746055819574950995027425677566868812206714780660946001260708568813949039621194165725765024905429455573565144107456381434324170537934096244611292217582415862020526738696484799850239857627086874976625670987761387163269011211118286530341625925858254885896125082820288568148801788343475412657622314421028087506117001943356544024117078355797190028659556476633121113983812493160303555638649345110580872647185204488468048904114670741212644193808334097381100822444006188198981664442659215929093757840524854015809761246885319522158605226475516992674072103964509896323950269267291209607437170120462700510103735210040677698212973464801382971133630707354238596030555524694667104056644649579371054511534483695157988408895776934708997754091953510682030458904506009695377803335878625171528769024053083281313071415032655558254835051216976555482499340991012504955190852095383758025115238287894903220840991566795161951338410470712195988309396443477945628759610968974492809539982682028804443886270590341611627592143693265520881338495677427063261479382328524994184540661173291295285683774177546497875841396719842033920451613902578526623122888874563210878601371011174439792375283782367916188285552451295024985695087655704445826331175198050249389142798438607422805117537870782272120287886512388306792603068553292858584929456923710165029859424773486118976861206299099758488175043975912819737021647061397685468702817491270752051799804070853843797136867830645639041342741596292472445446828772712909636407415251381932208831047353050428912283184363441146038274719175967136467013695178587829144752479541535536306673945951615248089542394007097228611683217446110070266136684877832875270641365328851452910448457922026279663392184335084531716694406200738094799830614249927808561730089867597937877831754708236193470034091828985381261101840887887985425890878692676471319345664366484378735143877694106781067306540702329945251935952524682607562079451429721643673749909718942758870332571774355943436107537538924614896683421891625324004892138999493847685950401810307866136215609258030294710907692303338953194294211419376898951547357313740106181709870818978254050423891816794713536387345930767478293936874207591964580807867101453588632303565391215902288123569876588262924364757561838240579243559509784829919155646435353528818375416797271436444830151503698124285105478770986965166833880471936761647909929937196505417839933273071663170282813792331766602434277472134527409426984076085934673008992915131186793565794622896276842551931185623452939469454698080704588510197250749838762715492588036179415490581442585985981394430529199268121485309908929091612307491347854184749623804016921867891578425358192999844795308399673739030143098372173906828828525760883824392301950634668025784087521174602797976606649536525702174152409914603861762743910557248914878356408654096069788521260835361324771680910316505214290370387878439947422710159668491535319533890724719831394032295140911899245680683767857696715434685737031733419976178965597701423731057365414747110276124226096589723176945225043132516239795680028219706079910054208191808701697598483174104714916686018312766532334026006352908268562141808303097119592642703910383753991183613610830386886773671058698576670652519550497529502409025555059430884405740347357647058812505382950470353790662150197839155498396405418466958067818501091859838214256793268871366221738210734771043357086275575591334267742391680109939287203871643965905957457536485866898186725259084625738936086552303695482337474073469811536589470771388349448181353236252633285230346259760790207404048762785674210568394789502343535381876508861367048455674442503619860927474596441609917059134357644108351757160904721078766410024768802009408548671844070204030412553483379166710627537045505623432994242267441775561303252514671643194997250810334328236860022042474785559841729031456273945239615188945111437895655634474521691239777744252777695640567023935016338071454912259704700294203504862333407869294273332882904288600762362984065819600939011722470864012533182491457831950816536276719794968772614554617596066331941426498279313859191682319444482403794135965635933718456151278843281412563420639081694954959843769767559521577521148572118743348735006853090949998038747103803234754730292686845053277019273550772778713698650922957085148354569260365802467461264736744115577366828833160072256056618661503343514396492295723808373362340481755793014041724180410597054632357783522158111630143764024559236215947606317658117869808707977670643510618440134409159030404520227752604182363907988227234860950251110782836885426509205737630280487520806072763998135805257203480499393846014087703501134840872225111993786647911889542777700617933984833234441227982814080308710608670453107279714144651589707853425725600361400525436659170705283736438714873992438161319546572905693152268306591338748413639109574927765762987331068371367824842569668332884825523284519332043858752979943677721778358156520730658172453071229528374243052210324072658750689097766606039918206412357592015061205640486055550570231519561276168845734379869018902723739125330435938224122873336230171692241858215176969650898483084181190688774316679349046366855744092352566427689673545561178438816754671812969256176659287295894959419954567195956205342605651994891193053105401281616532407983757051352271232503688906503684543568587594284375010654229186026374556371502749594593107310330006472997929933539398457720948954097930682995667343267412106170406979892051515711278802359203113460012689206561871697546028253480876077646527644563559248190984021721476722057515726790133221345307773133551888483160126866137772742964904133467922549208442149130679202127658564981958895902666929207948838870130082991129878417980004029782948128792506539383700761818550624370322661219480720707800969769063009977249558661746399046099574443795834385601977667114106025521745836316937516829920006788815447384543848267014959169312963225649663284123524433520093098975793465776255444002359045047497723805469120060004783989122564720326149445987051244110145777552464997471008518607108448420335991767377811072748855264827067849290844034233094053999025631859869107420146274486970491186564296075039243242515457642828605111093799913867414936029443278833935165787674279496644563347050875007809237908247777964558368817530101273407762804015713449115171716798488050845428462323852367325448734584930610373461274413857316000663809164571794156474105264914286233899239381149526508241318329149655266189332355760577261963541246597847809806730699163025951923437466251023662454107760124461042336441625463495398735834560594404880591555768359274526645777944346126149767234287984645116820810273413671254869048985340036379069825154285888761824257896343835734341491464517012989936809696542047684670479907523948209932301632486252104687630365973313547376836391259653730976280493560067315335464471338273883937569754752125325362881401737256463150530770617418092205085160781458066744658530809134216957326103893971077506525083249869073785482044035690146207564103379182093256316781710237420545970293231784191148987378738483873457647878340410366116830912584099222101196046763418659170027865481257699519628624165965927811724419496030118245230811652378053379057352571548287644581900333912895908931551473335368870653904841961216356636623536331878873680471057717390728692553100859709403251692860187858927539598468537255318501064404596424640913498516460486864139172862940811632204277619986500646631206074182769499821079181630066271758837373860779954112017510997879967728173839789897875606504521913169774882640468178793357950317486114940753241380845207863332282841709867001272923106593830452374064489661756024097010193686139745602321007533865104652285645851847672212308602501795966004715472686560821025520628320728161594324548663743086314142369558211059587564185345476859070519553255729062717297922426884427968154606022769492096753141956003809394223125694297520503260707529188599862698971232427923464684159931311346285055738655431339606621417605936771306036348238746042655882893236588753723764586479437883822119435147990626014576541289744064918055615252470555911407666228833536568109055250881566632985072130980893440741804729570927722019283765691819447251993806819604771341179627143081573560073752691719918765136465996890263054675768194253464642742316641138243048233493284225225205267316116323478023523302778712761968348749669674625355548683557831047075732838051474205988956455104855676411403738515020150896621657488879256271717087394081873910644591237793325726221863972660992343109108331350714133817536563111158897303149463018391421384478563528723481965618140950898381522712817690244785498201467262459167456115095840402157855652402075611134862863130741318920160872601009040897740277114501999058913924289390737051469417189796130089258657221707147829000385053606860242897781675800983592289222508430031252949227538481599519010663338665770557398549659251100999586752999368742921594207461434013184950245971227999316214904152380493474292995551159430049474469108225123128065182092693859729321160406874502623540601912793523475200812567921589094970698921401534367653821359264292109613456983945624326439205907182186213975161687357696126205572427384880490007391589832594354680842739962098953476047751006213462826721013193301965494717968209293655249132353377422269170265271816220111601662291981887059984152314367490379198396154557958400127629654578388099305128076652019741532760341980707448975898656589610951141163617243998534285394420171150996014709047941124152419868299886109767231953832963271061350711320544926216603213089571754707299062015710658174372593385455768029666942668936341414281209743453890404080259625552108907558116274056408808135264271538273115520014937273363365679768176150619218472014858618720577416396734224213333697551948259301149245182176477227393329272201109106763390074235236907774823873377132690227616261898515202201881952032053547527005857724569004541586929536704093540590323543599932685285950545148977439190711139376055727281825607040471087530952002122643491867375360664832517797269563825546156067159811254675407083011827533208834691036773985735548291051490479922225345713149006915120569353792059124550831101557993180484720112180935511820341792325698829326018177349011177242062749291666033067467375935971159741372915953189437394135816514835309344043336945757818187187400212559912297781292470555352923412179038572458919586457877466777018982897665319463700723000061189930303604220531988704054930540385190477487949781110526898132776420935339866800388323808921258827748140129266097514734634517268760697901433182413237563321542649284387976310768706062224628471921143804523566025433043236430809669234441465976592338502979244547243458445866633059878004762538991271438493715618059187415429327505284853612097959573807232402785343886004394691117753404130665360338803378116352251889382917102211993748077593603906008799499959883186418683750197360756015526975046984968232789420616025214044185226735471289534450673100775881155564012321879367911479821747206843390038111560820332544203055540415648419089795254244281467228420459801010376283091100748145335965530409639382785058664622041761315137121207473023593814074343357857549283264564810879518816132021834804122005973807938581044955585581693732249128681098628272688973226923950025771481694651688645299341222994057838405406107915046209507933335397734415947943191458449046206513909221342464665985784497282355522871848722289793206519307636712627892086174700765357855781061976992011165474156782289448340251523453126885074351305418857166888270657811349186985525872032108804677081009650727386924336506305279463926300749205836269668007472016737088555314370014285482172080059046548733919289411096664034706553241129191791143950661110382395080876483726009693532278904834422636062085970250064067762916997031481037076287144549613507833109190043852723275953981818587079759699704604845452980778094043339996812648133624232539141996970915678611684773852989966572324602728796492193418595438991871625937175988741357995613186727504043302217778487696989985975302075059111956468542046770314915782693152441836602526019075934297194396794387614912099606815755115659332593692744550695250255330846013834206622130753152450996358287671622176074934196130359170735713215528300867736137565343657422242694125847124817617362100626644787589758730601289628330029558128436961567871863960357011383863002576703212358287187496735088616453606456812066554121014635163625824281156489860707128732773947255501425992309564746574620816293405676170360171305790409150163249327543467739666179030174292115564563233609510359036668718851693310646223592078320708098878500108761723196114282714103078675785537351319248090377197989956686551963392904102941367841114760898416238993743294457464749648856885275590767360848563407745732185589121378235746852877894201955779371977129270702759198769231305872763585823800153664164516656235501844279934953993144342189041846948205242316779989741964993869476403169057235329081018678597767640346800702469658322677787824413641939307995473203474071356634883726579219608077640499251721389492414962822544922302520988556539505181427657308908770410858589458862937378760793898549523939081599611451405606021893581899485573380555227951586878284665298894127461037544170245825495112646871605040448895611461899110382221160777124400784263605751638091510811971694837646995488852605842526720487991822554505027766248665621129454054180182874801660889974791987973649933924170872633442864528310024847046604805780674196556601369415809766116941532811306147524901318606270494345488866677285704255151456956744586623400180864707461948529958151558149536723389276319872817827725247356734556892738662859992698899126112427888838301184260937111148360091786826004765242592178082365800251074097113469638935034916838884565283359825371354209469547243856992500611478924104431874386363711556280690837097128373299568549717723659657197540598529261528133610407919988588843702088267792713806341775842773930930351107390228661357535162839794608070251240110590565581631760220644929628450114522616445726063248047229111867489559016331005694773808905421858079204092798684136247838931956329460324642511972290107545912827014789399396138405886062791777733245497876029834740027428454754988474039866466541617076760044972222301424432348241158555701493937735512335231385279084521519175589404603489683591593932222314946486326643497692550392612644607822104283304126457515255385865540675806171331582020145755337129778334336878550908326260039059024221886755050215809567995623252173973363304725976323452301656128139640362202057735906121443565346488693252920815134032062038949796722683355201745528999071643661637018250698822963798938029930214851359108207425444075563037887484967438336357702995755876373215145704904282109686660757038814180185855853763736988969658609571578847546661063614604501126065410630183315843345501571837028878444799667400932347732204065545867971215986692294888863142270803660980843912239015084165745116944950290440732746972531210320125318611195458807376716211232150360803191728528818579238794969341083069827598995778146674506334866324521887705831920019492435132640590549882112928642115701165343863837939718655757540840491300352342630118126534195744285331423162200256877060775208799073101598454532743227624741337969351768792792090081749899235121326604965714549033376306860046346890176556609681745108448595636130817978812594315349329097537139751469624787569556948232804966413531887233164169079301792495368501630738719204726078128608139620089339599589471316022279413322898192634989091432483260319792993414318727591572931835768189418298690116028707461730499591443051747502876261572693413165029835298842162403271470726685171796007469500554740335613431195682732654094415458300640486934820731659806136497366129186002114511647610031548517919854209310709201135646674304637932701990582309710974639029347241128007218410881846715287892407530961780547755306434232191184020708053690883972211768001697739551323205149910966479830690751616725027032157428315139190787425904848015306934191930887590859548552850911694213727145041812043796468825195991284591311991708868307789647977956890143728089931433271299120729234438946822411796397714738074983618449108736095093256684190813472058902579663428046089070839784221207196670247906298387708560388311446713501332466925109597691261527142334472251852223305325575011836085992858684040638863669022492527592262164863763913457415323391866439537220860442006627398712269189883838463858113031437168197285439493674533220175739220281450428688284690388462609567421139476001333884496706696824305393968918826834301942070486262701378212077527354720803989822772596700334344928907551461880908653359837587473902308829838932689286092402234472581415995519506177069298600680993072745328115304440232455937836940930183180951720053035761194472609628105918817261678889223598247156413949282498010642809296485516697613561336323988649437366317883305169424441163064431724558461115240157501624023197429949881511894294975139633649933157124746625127942641038997024277106552941174169453674817790937983742042680524270813813590207866700608439867462468485453976672819891709441669004595120577222099331794418738155119513163458268951882065293895926964657732630849657326011895639808319254222520774694869343930509060738074744682339726742718200518570098394464337634233652156242378380395888697388248400009766256315870232427576078836826922653287748287046621912428215160528097503335881591663658496278641642573685497649114873777854271780429164642708597315854979784511335862977734057485951381384265563962564286426749343182838112542605636974556267137622817102494355066559081525311190610844149942573883057110363492641275038170558915207063513187070563347956788495043193434088333446189449228291150196506409553924227078861725677659881893262924528228961394736192005902357992269123901182879371199885967564265317584634666156585286639971805321092565256154207401017270522549048485259541009742818398583409957265182528675645302066506834716755436486347890911656993167107165124082166968242416294778550529682719689473651594182594399572730251774060467307842638294315053290530495814800204959396155777952835624113408250505392721151427269391060860848905613127161411099624406788559012837989625791119358360224561356660947195520263646504155274439020650953123369450462310591605411417849461471092601586380965755228850308321992889816358439731645126582905245503526989277441546312591517684253476181622886214168223131811562651073895987137565611284455131317798757428339792437979767851383135614552175166072393421791541234696372891889913398542699275035553797253416840023677313925218000175211676951847265265115082105361051524017837348656193844384455978186124394893628590207159354248750872696727568897833031541076637556543660766291723345686722733051105956711477553969821621299909632338469015807852800509371609720690108634703430799293164940789800600092228570639627656766900948921769263857887945348672199913060625825254934749631969904243313164969704445447494910297662132415762272045394443537560385487414594217653596619163376696241658386843593503699246121984768178799592700417612560117480348240763934118470026672614336436560364659124263343632246038638257305552849678507282249587562469819671160000591543674119013647169703796992516926067083905513376140431103953394835829684144865017003169898657253515892858420786669731906473169374145803067865421282413432662021439321447217799425189390918585451484067551289083587345500583872123148606983938852778575796847971607270877652382932016481564083444733329600337057305969645544411812569584257100560010292035736193693643561300018577901555600655949976074733960936980380434118785263220676321752007149894482585373608360547620556778505503917410779193505610893978361666804242391649254585408258183543542484294473597899088264233023741388722894032232377170018027601402986578407421874433695002100602275580555615996660249335240980980677373307619016841816248116009149929033013092683588114996128758889731250491195827007623821276257379233576031739831098493776037661105902583445316469289454783253837852167907608384751391054638055671947727511529131784798451743543649897172153104829959081827416833842299033250463151378633177131693741989652647766533696391815982927600365789356213196030260651120105743093418073114814278947989843447218076975672298799762446997577479783199475441032570743167251355424765056438925437382762657463853174350293996101813933512319540899671683428155443140767542225958036018884559377694174431162791639440396849896990146703708934641287950239406621152966190136426960331164472795604162713977772749345789752086424273250477296974248555065193453864592539409024605926979653971857742259630419050071870252882263432609429532631364239035122971664581099264894824528551493662609130095272295948163124242694773851516563612214758727660632117948111723255809127075443231593310149687108632554281645690363209807480499402317293071408278472670287018890561420248116592644286469240378375333708152147956486167037671677137901228894862244954416639344654643049630144316885595620203991151573215416533969701904211367660102687526462414544451265752283505435830251195767846186521708292499009270422501712288862349051815322362368355940115731138542530814067630286696430857479023623975112317456661415240914373531470904511872434308627884781463881814028547116630683089917794934984128208101162378596471716855048362474654976761114088357413108299194705239049720385219558372216511994320631137345554572006611504986968373619023197596266876578629606370109440896779181225078095774167473742097131509623981359602433581487924295247181899961016892735851528823322136891686336503420841311220638714056330541670275913624109556969579855526166479767200695593452600297593766094978586700651151252632707170006631396432397229576423403936167049724184564538510678111526300267994238773127637317852142329022422067628704681141809533732106156489500871425719010178745299873502694824811782390127346738563538143644029317898431043980648638685761541347604056722765597617622204409565025218630956270280011366951785798443911831903917821315265207813778665509119103987019772224049565196814464968725887611903100709127468028744955224960708494088375258793533407779466520296441592664681470373917917271143318266775443190099416506066470177323485544965628027079471132826885095245006100284486246674420985432377953939775265191827651696133812068360614222818517127380213387403100541969644404223597148581764276232168733010857035759876897334665747788834773150569385838225093099410491168507925193259711819029013098314554023059747794587258357845930341607297513841318188235884836320994438743437755156429160599292566167227866467829827583930314731296609422853462001835123939847133963742598031522350599234574837363602852615002521466714613287522712196898380403935345020584598107752472205502867409958488189999180409245700149992691378444914188045855169444613872620146417683072151314658428906092724272711465938922616365837810418318035208677874727448271038418411844428441646284239936899529104406791378110001787776661593428878458791152795342005737853522708977133625688369051239168186047316702352541888809327664961331263468029181851985994888489161542149018904567915247356154409590199806859188759588614270845660488294921193083277741490795203604700767582772534388939654492710877066796486011668706840524553049039195284216036201858696202535441936642480403318197156608765379196234152781535368520663390728252434110314426020155659067128362743296191982050718359054458606187350036502145533319026066524001448390823821168874731010418341714366721643701841346484706144034314689941429824854758242766471736624510693439489705826818369880175124302613000488746249534712816023157062633371649168488005679016798800309644347419326979944897779354568155651390275349455082825428158897467510439619908712993909150442264880171266952823271070292538370744336473369751132030577354631575158692626853246519136622263333340012349851431822249370568135558414958648844810897239299159675554340514050906848838042730311002240279343697847645650814532352809080939077207120937964058780562155005897881021037129329717922727685926873987890909977824565520907539433286882408889872888876462796070233672705819155988766531917826080746623928129531341624469925936914601266539387511479020795459049135475443028516258051232982141619008564023241942756262344971327583347574930945107442171172477854647012454082076682297959615325139179449027747124243884766675373448380705501734763552192842710901580937354149831682128442240053412393101435936080062661237966612119989270903186771924452777479162676215310089982960058013693224244811206471109050313370270937209099021120850319831430956608276301986565738261511925934329111269705679464169701340149522812466332903773318923322161110158996462004174670985356337026306220351574589796617939667875371068351366899068440736041176810556192133315308357519102459990216240490105767705220165720793592402963067306932344891945472753432263152051108075144547504444627633913193149503198423289507094301213273971659266844813415109105800913628164446591524737013303597135846336033260724352571184090132623398944915720827808826846018112936339842287207589342992340959236296447164282637037513930869003861151784644295772733873544234206788401783896475051226029089694317888331513635962735271731048330457114574623503346564264651097967788601243342674826289102514134471634548284062582632230339702473068552692541289774088836302725231778846722521907532961413927538505389283279689613655871761446436543207158347019459735984820779584436451399224121122399504746821706469840850997885932250799668729364658435441942702563506580220576731627750819396115559769834413523066329602878306913035633243952654827144778408109946348966865608643177553029115219377618178768215504564930641501500496819957705332244858299676307932277466317522817912978092759649060450375118915179703350087574412570938266930036066382487783206944577185443661169330000427636092949070693442689820701909275736037875172386212383150197250675624611523654860852464704291374010842608852118909714007899482588599631512894219531575862149346271952626023619038336377189639276952277509295104841982222835357939210121085305701161261320210283826098071493685571519306635939365763201581428900360320504603540093460408394119366193214746970170616799087916394155094665234955634393170399806674100720540029246491670660434503533990203598554658192293797869992020920489695440833814445965946186890804878735737022982308862148774200015011688120671679601717641347010001622673765753940531527619618202675702856234646910757110377047596849234732765155739365787891483722671371377166890241747587143629393371864501813185126438921446944005268473110921000897279741102427126740018699001703885495489528436094999007035651742638718303280829402607288340735015617879536029331318468290844060268897134630283837896299591776405995622213903399508723542207831132596774011530941701916615145610024775079803748358410426134965842365848811824712691167461904607118836610355782753721692924997992730104391174111080022359139976551907019264265842338275352174845826900815060961207673568742444117633653560589972855437337685512782216216740172184881872863603290806555299011234754541388651919509344738916269725615980144427683989355128199031321201438794222063097824354676719173649713733975404745986287389444847959126273935156737377118875635021691011514259449927156385185209655528511970374881507618174241970522630412056767027221025833701290837712240328085920486131159383820213639370595413623354745974220065083684214936326007536790528736344241663798404071057992801484307744330179133933172367443307030281957910407806600882978008631641651036625534788427726273417320302395131486648568569710107176187385659194204677364701600571721872794308396095259671804858190398774152431964716191337574691438111820563523138400628580287480870688324468542102904371976120087984215285751898232864203683410754489056802990695922612000325283463467592535754452331913609525074060625685410128822605716425847461976296849352139024853932017142566787246440170629531132143483398128265711354685893692252087218689248634680560994617885138785020790492633828932843824173308282381889450674167028270904835349808443559990786080816460654768209150488094847683683693161477915588896548228248805028426847579152996348848322264155478119329709627899544211879852028954424609757298074973923064739652843576929817743747109739160672372311376068673634721597381635344461450169085395949689517159719767121246126085855544473529592971567133160363729731805096526087022474538101508831299251211311491137373781479142570896420139179925096613360706133896090489801171382763464284502544091737860310747155395374369888840497054700848268231619825688567456484783125703328035228276273387138880523659910033243902014389814328944739358351111532271957933547844894288406144857938563818499517561732856716893919318868701816526936554227196134600168537505611112130130182104929101523040110898948253085155193643526409082777813577086366142567862213608348082942262607358557630757540898094003949652209930320272611315594375075464221393245460336315956251437257185884070085463928801783552926655356472468013706483454568863214298911664286330361082116293021408502984555010055929303256641754715643285319588686821701557819860255161864038875835447705110035682857339289170492150057746735984914841148981815800888942255589749002323308487576179874751852272432927320384612982672815597428234433070893710632053804395326038235434839200416164036503611935469982622323648134811521592725748799070473195681673785116325545671971752561521709642316941797998048073138175942189667864615000132028658400979201407504358595542215440068829797324126259398111408451787800738248998250081151113672688531893907321064201185367202021332934538722786474900153043645938408149507286677435856664086793805579327264127427912150427794396884832020351325607018705984593690013586671714028302909791088363004461473062378003850759934706822817929869794714107932543492058815245850862779709152119342850986022445155178084585057611179844292031571172461020854718426276012600048910694863989118813386821025931073534730522721348686519324586066576714599792951720913149823789422262551421292975795634411504752676470639689442916115357241222487487936698973399234676888765962359225516619954588604361977596818009206735638495746029356433781917454291817065061305200682577458956896529188718855562210653142686404499141246562348919701792998780245111320143429511855673299580267446753561777024247208651896953823672395329264527358546151035722197149260256116315371874503589764683284246254232594183726317087801333793994811263440557253843685214923817221435638797563907629108062917442729074406159591443962764955535640474419416936548389038649060045591278400817038322032953138040916351608607005461285463711761233582042600004318803180864495888322711229397667993361821429842276850165861750022010076605128357745540083701493410789286305451650805238986679133615385477753711065419578188725103687212059002866403546595104979041745627451294944989055693113472587165961875671156271465285574689969093393692963083524875069754828262236058829827503481870454917176424889946470747497069033745756316131536159160560304356829813246760009741695393457836838920822423216209512273946459415444054164178196903615774953090242636155065833724541729995875761346581053908227735437858913200000879546692379554643600262177032984647961547852840429826983808624129126119040430380598657518893942145959758885842685742261482956700629074172930913580335662491051836479308881562673832452381197302972047093445622249613692189708710911736258619439814056749962648288720061915881654092177028505582361710855668830777108021061357566885300554233125927095095889372306331920436961460678427991558773872228660795635456803967748621961591814336104845477469566791535689237141002702480557657407986438180800228599296888535162176362235247268467624705508654186036453882401402389456796025202200681777290615554173617987697848429987088859932848154011231913234791310366608618484675280472539352923633998815298716461560986455111239206755412447783013186855708754413598665230512421482149205585220134612492799835238975417023478105277465773025541183800932008862741804959036251154313362415036550831852177381382698853922639432436716218072173954376412944560246181125306789247920756314959239442017793437029955056701753231429798653387919086156949908039577455684048838853597647187744765361254954065382079167821291227820790318129735528668422665410136789639005109238414208813882880767374722787547128232652979550442083575054778280998208164154772646104227706166360755110726328434036406722344820658507324156972661809934074661493596010843678469991288552993215294972448427607486234795976781422532925339835883213124026660849053353198354019845859214284145201175186306511307532920268201975878308521165561973927176506111277556058895265209483264090092736032242609079462158602201256647902896382264524361133955834492881829542460248405073554462825266501889877439343992963827325738165840409614182824156811923192819835329178633547497904512699037195443729111973098184138716517660947845358796114439171783422206278672183217880033460584372895195335480803094218423617427034667544472803441737037057532415027915483825179367361473840303987866277676429644810475008101479114331020146504289404390431381019513498004371382298935674384479491851691875050107366621674558982467026017613974492123122068726846314577822991123631620733240886225974183073743509600495013855101565658564295816011318469861407857871174317707072838527829868658972610586570147041067923396971579356461228673372049688905992823761341074481933950559252768580902710810965225886347339673255767317253134038518940489750283987694871795249718089546673239680956900037108214791230134704964090635745754557097053387477553785920012963535750215904869382648596379907091837420224063200875229768803243983299286401427082906364244391899716381622147055078149986263966264768077244266893165006515631602043727662805895797191751110697598693072073665598221188558517978840928266398553271725530681522811385589689254952039850285632695965471189262669050374278734626805321456722242256179672152401821446022908424386226005283468033128582233004092497944439861591229045904974608277021215626214549501360767510222598406249379441239670115690777603515592887062457876251094897020219358406497419381762757644218916605109574962673333553982334371348871704591200036879017613425065855461306043093027701049203961958076502798091321328551230788699324424948541208354940692398807215654394951703788508313401072107515128513728179876839971482451615391846439526332156322599948154103057349781781973432980380916644255747452153038453940015866317613316629282861677431801938172235895016289406884886458532744086825254694860189638601894160332319426672080586773446104850345878984617564863554830168222706998955613911032284786880924000008387128970037881065143399343095346651386742538427129371103708370470990476796209605023833506535917944331128587391345158632133585381985871643828144291262274421927661266348469439042749257379391691167665185175018531074663347925021871031844769974628370689944689190483603527538147760892596687413953518257188712483730913651598724525114834601527636596096658720593722864117609707762311367485221535553094921714908832561055497945305895386216630547330793361876853316109042810932983172210739273619045946367110168928060123203938347477791851522825736265850369884137350713754237624159537127572808488492322425150085844333848628082887028181086020693653824540639543312691746222854692198053510310176536364544295343581651004559795533582886767315576818841048126728430148216582544012494191903843548721717367343193161862152899696603396777334307577604315500172878555800234816342885908808265053246420572452394351688836039564482181730076256167373281938604996877764253391921936605945940714196164696879630401349848962937865225403196713866592182994465821287647037509559280442468162286139633235954446815730677886161777619213005185993037279668539237930005971803341464599094409996450634007176470538404129402782987258187562624021390944352186257293794569192847033147545249064502280505043695538038084173290116176381709841027929477782786882679268358942941744996935688583401140329018089804050703867420463106899949333133379877159691680735516666633757837385695915758720729698589887715377858626107888350633585801046982289032484997225773857029986891047163171758531693851824436444844527356020772072267797752920176019868005824854768032259913893772850542866276098363344597499244408982370622431485159275298237403762960724169441785141841372755198912129240489781168224661092052252197740483485307718345438520256766264656381994290803995419481913168809076840878555152165080821461154134548571643197701409101326070738464546533613203708117032539675658655854271317320132226372586182295788315207506685707418543311301088806102241820034242501762849916365328007983206779547288495126883491463568768798861061961463931084671792519524574302105672805061438467856392580551739829743669882829959853627347681435489633011711330753941839763654130489569544393776322631060705535289227461911130592808250575803473493832273301776826223949059329328887242754718455993238362616993412999827501760214127422999255385115502718852438085794027754679084667894993389578315088026273979321543335612923176603527036515904213659387497783112951741897038667128764564957540758501070456600309880338452950474386546487907849534704285045213348585065936254022717655157277310021635317550403801147016183416706643162232906837048972380993037128535576350677669763114455236092213376913418037379466392757810132288287158030149449709777453715709746452039481400320829537079192908461019843428030560477540795417658230327404193715324339634797783628985774044505254562622719997264598243128685674300773768205006388623353761009499329288623872212555946289759343589487393049654763107825900976126543852798701063438245216896702821489084897522473423717248464931919560268760108886748584655015035416009501224069079700218337913726074429417804205029744225949317548093301548592200915419793318199944448575138410146007391748811493581209277106141228718778364517148848291944005991316693702841432453397426483954775382487902276097231398710442066476427971488476816056199719756410462854367893996937812452806829711431070322946850670796736504880328035785776181844578354660241437470308721964582208114171916638170094633883352039591490704552881014880109819048393711774018953977253130734488480605200653280354245440659770982787093890830714251104615579379567692396294187389241527518403106439386881643825706133005991383533799281514372210416252652420129897476380969806177473677422389763023257020306896638565486344966172433888169798236733713792851025179421215814745435029603000102705778188004655506283413891097779235570326334156499568528895507092676031396161950375213212088215227335963209525115697167381610233099528613376058542916442572302847590607795649614018984187757773906542962418513051208183844343836065441094166345008682396256923934837477179091581444547349659824772128639820911398276370963291258180623591367977254365170926341288825764070074827922278616354917685762271443010714230881995685053428657821067250317036853332334529866387565917573178513133529288582656601970463831093600774085835326283902686435044578285170308853446196723454499104499622147206530755223359275720922664777102963022853502489917422229071588896406282445934241096306307025082946557097823536169666510645351032072216459809509339120999988495747297115944947187359958360711306186583656142022630106392814935648713153015852613353160605534268906446142580509651769912973427500613226040513478808118124359123347279225277224701564538479255634841615930956453568431139437946421499408505190538143204197412177279590040912284540595616254024094140444039328638472052270082330070740914879825738327779749961433470134585299861377325019700174394764075023792005123232045862035027677407134097471999779846552069844712805447074569651376955117922990320257077847952724431212061560710069311904770419947576861604764497148576483804599040017649267134377881575487841215931934209020037450649047846319382815171295830027155119866567591221729831952415255728186208863759769694796471993195684098209623404329013677137875303962507846918158082458960637087187512855699854465348506751555413086847097842364387166067127085089385646959702874656635545991798560963893606310424795281113653941099815937436912240587442540743335276078034955764364266255065470667428248970389959949047832195497295242739102563892156039052160757576156502859109897295468971939234662335370411860867884834471465847465291009210238115003439035137396076437111300320495300213957378750884819844685267222636721779442607309021684460971886423014251505911574634093894879508419862260854018805973289190531036150781527883726513992083835166182192486735041604644847632282430203593864471502419420980337542668046030522525301536626181270447342399144917729804321083628229787441774128126293439745654526456094364553366347002098597908417138507448161721286212491281253169430284984980026763187581551567913028096163607019774341936618315888975898113978387676897419059682374067327786007215078635103772184049929800097870495852869767961952203619145153640176267182787379370861251905629981317848722485297062285508694388294330709107079594997421433992170777831480092852978890069231609614633108761112960275562140460080033651637274255608087143218416345029716104285476423752038369152295023800192772353853521005569406590096689077932024522150414062409019036891828063873009139882390416379062969776703124744085310376666764210984625282802455527758355815910054055885636122690361792864941452568462114782462991721005735485725843447824937366323166769649154126124119324055094956903262477564657506721966723986379555602022746546543274903181844894849675185625924117843852281318585147847188235820389236329772684419115350875332685756902605942505926744166591586203310144577265916478792240366138754696646349520932613525878365603805127632067133193548594524004847216963795523450130878243830156862813076395338121633971870678153260927352666904128737414374513821004215038115168319410838058655257067344037867619570793198137870992914533590003158084305483524126030333018385683506008436907189969833277005520623419334114233636071492607202946006329784324033402010152876625296497557068083866092875684772665512677528615546178690171402196607741859233367278919087619912249528825497387924838614172649188293503699828494737725799276047266580713600949387492001485622162073993396087916549242886448427497111640339843936854376610206910637033869439683327185625164673798035947659888861225078019537079188329713997105093387472894095669447664097777729039930064648931103498101104049827710369448391316395147208008533832527017251681685584472721803338881886912451610147741979682528838330175604664264127993229184383926147949565202829304649453552097289138092782587447698791820221145887229456088678235775168995922979656756108628220322493214528723850919633381309996768010146135591771185655947085053815043033943990098753733344455276975284557501832428693649916775777248644599374065972842174907317806562028645141226620229705795492857568311295411619747232525450358645249523641290072408325134347666392234374291601737459137969817858381193521914565911156084727087424832057851601222353217183258014627745693787646667906933589207554727626835826633234852867722488955369483098753008494888544237767260182165350615619503626166352263217830412110269772560404256181520624174356499759677685108672249240482426311016553425393211458877371884378559633680567229012416996043400882452941742606142043342020190333115425869327224686065375048982330226221214265514899829622168625397549871636797017534013907277588054174985528245432293312185863628007065813658326351522471073190243084781933277932235956102913116010693474846792033302649041696971834360662414226809839873685496517039949978910440031412755599799860515513682010847855885745662457367333957896032648452603303484888542615717096155735499188246020054589075926839933049271298946151549866776665236078277223032802563825865468801061583092133447482640711002749866857136544404580993987774097129789962854517670512493121975379783314781588204553266248067525768867474623777159376902142787129237210503360407652466347118444044320238689562647091974964089406449967488776831906461094677039538541634595433705956905684946649361328678511579644763920034679924467380424884216656409454321234016901442284568050725301855824437776480905588202155048989739104468602135903278319054800374145371397521848667810003788785378174768010635685596803851723322884856130197931966946976232663821545305118965946041226026494059996742657445595842547702924411340652188686729110746630109528676499341267715202441995026514048168721000430132976639095884877578447847635690406946720617159431508651414159607301733853688668291671742481325600684317237260121381070040675626769761482419268764888472217953181121447437156419124022949101807554316860488774299943379655653047374346536184542435229795251545818631613352279606204691116239278483787525673070201661591038862803442060577963485196714108573394541506878183737501722756222657684065296128994258970749886953607375401005434017925587693667471250780282710151920873878477056826727515299454847729923646536030393042970958208032406142693801459473666223114742007661350373879395468461500429356151275199238608727314964193273227441664605874660951473119412227472308569726459886338135381651994424328678404423128840313885287101824011809562931134716120289450312891736650273574473831627878678647350854554959580750309403462648661710069690106978303116489644448515555937363801337704104169977043751859988714368279797205908995753493149550086155635669022937008864219964179093463725789079381573261084133074940853617895183148577856096965264787998699222870681622334521825319932583387113424902830371044824807110787477082990828270114741191945167877573834206658659599527334264109077790023464960649398338257346826856995939556009841760283982778281086723896685608010125435471530430381632296560432278066064629692025295057127383179522424039122604858611901195295318469326249542863417665652498831455175896156348213856370003612733200365072418375493299296859563486359080673968625903405892583684517059871153294794282252365947130220796118901241800000340669192281588635468060758966065431087003169078299818271053896275045903848263272369946023450659138903153299208342627859911084166614343685208095118943181935048079336864426208682494681657547149982839759327469125479844452147813312597900146338016024153528207081923143188954025961106359233989456882498275976233467377834355082868940641272236909805137706874614420049220318477595248274501107651481283005643350568772470548884161708854319320009041796255667342852230452789485749819740232216602014118987944000037279330056416899805623872225372019192533816254430583418568063876778158212338478008969499383222162453388491578870901067166451522819927415719042737507987599973740947935098081361912324601089877058556642212449484538049164536706643906342538949811124914345589093589788494725833867707661027057224753549461066060500304910378113506724353018822043688941406672593589065960886010638093419922372503595837071102720857053296894724555432123649872471439674006871119290325052505825983796466617495862960367431063689490205099234333830765256591262398005827065426432623593262738216896811447336802759181810185500292512003897227158554439037551139188437903497011306569740875584387439605710714460161949910235798308496610848654629654149062249784642181754773494147440107184694817155060274296103279125743616851638828117655861599057346891000978501139540680723099361484414878365599934954565600006141816093908936170010198437958242731061578638564190682387078220995759351795911301724173925425475820281376194375307886622392856371221973665036672497757070139423214557064535167177211796170560237638907128156190591270168414724396958544242840010958916625696633798477309691891322270707192524100009864586996521051254939513969548468924047082706330011595424987079819005693843346687162905693158963992206902716645376918623507284017193928595624347900610147575779985472436309973823768230495570292107928640766614243357282965007049740992891344598664202751569752830359507224572838613881813735948074682638208259269002673124295506113263091531298040226012266958514870297758142595584614935641573469968336688020591894431588870155074510483913402642143047249105450842703477486608216731004929033411513544324801719259950602826807683899212800022366868905264425714540062825682662290530305026547531801355660662215921522123217523780391852304140748430976242124742428501336382266131959362364741725689767766751575741728875607833226382906210469158842270113839455563769782081209078894662095358769667556542955368677296017715331984384186170729688299048586649415765077753565715029351455350238469961218714247955649301680283863133849366957827844847929741217052908165443698336175161628999814880881128188426447731737679176461079251946172551996573001616421540636691477566244987999999050083958555371272368656071039320443789782704844551541421363200497175687989167966717517363754953535825757086508369447498072428573323297002242880347880733104810735350690924218262045843390014903063400234682846187975175158761249077512329047299094604739237654683391315854465620638453190612142521974245186966116276707533955090336686839878527615177716837607496764308900808347048799075166753844686317327706525575436994986820282666928178941113572479924151998308910968354052199098328478414592969166757133911510677372812699692786829984616784693380865681551336906319272498264722883691701727690982832851822725797104742587753994852919694424762230652202993071503033413962950715348521824707440799501516591451198061984609141471946888626491106078558349789943099956828381519044962616238152704690083071247197625731306994432494607949607484871138683999920471281541057665431089865924442615537833168371377235556847886633985986355677714352667841672045336811470459144144917443877392223096373036969756861361062805089374294325272085273361497760059939727811083689538617618047755429046730033534666915465150244899655261969610744583887325147818647201019240010917956794240948503846536524524950525125877380490122769203057192885792787871872996155489863873524601022462302920613833122363225101234603222025784501947606708154356854444508638567226685225198141271411168154978386582569686108086901605685544832439278733120135776696815237292793263702554187523052541101694726023099696479756828655845839255976040888826009125737598799366404890923455814882143265484069237216924293512501051468151698928249210555383299688263052053503826442536031126381404255815598941909468228761056014335040830423677733564909457646576439631770979505586208918960545472953792170812457464210891052691510887006213886015100653446560338590737792336151727799912651096564664270477475128005418947639748617165870437859770585789514752910235898934898773252301597866888010303073669309309062860930891213082835957936796116698870133598636416106150455063554702859571431273239977484639380767159561691194514713484134144724065838525502807329555733286896124155248640887887485682889774240435942363622454809309465196332004863449426287162448417737075840843314873434511440103346868652978997686415122730731729740835889386290440763999558178849116446868771423481002766523805051751368625133697568053984777559457603829367978008968525742835367009094097094953091580558403528482383203641484824950020441566692267099905231893902653694685912583537256046651906360492300154419714403519706620934243582225592395200151157555741711130700095641488327762925990367451973095486300803527046482235600021821837413843627780836736281421286538536147066357711749050735019532637241721109146048785027640963058104087935365171149635656217679944542057549564398550319083955166730285722274277761036102974298611351558526293583724038800426647764655247137610840796733264718288416527726823720532958405504250008468812533903632262793178367665997800070827881784799417235154281925225359068824115170996851128087050520374551035377603057438169988068691265339195923440043558981233713548671334008852273160056321135546371237000003768362812505124714312970883021527834320399984856434538700362352903647017249667472925939417711191441157072670869785690590402080218217017567545184925397698993640052303155724717874103841111935190680490451968885809934050259778449652660206987107754682120964145910882148498720086219067147675213056843254938441872069769134548741683764799216279514037577195085703235445173212967708194074552452749366004167396452043074229491229370428029239210034401029029087582688711140140906830131785048071023118374818457476952047976932151663841511019413383973956469959538683575137395115731831319787038745237327620117496789662239560138664762163447039205273617679319555078814768810250424295913493821783068347782415398229186643429715263038704265295238915768747932980871943632800613163670937483366307178203175527193279908784374621460322694084529301150008007058512307674802882660674183189939192578260285181531360210634108581825500041395845711243968500304134974428218482627913414263191511293451589189661363006328992127054615656646652381395258184148963310820543980459292844325598093588903445542639311696589236345666285862261568898979488116289503425790537322270041057130207889941266431584715790593700859929382213587560625451503311964046210516413144693195070919291981343468263299446760715124882392370002506730931434783234123826101597893255250171424139562843709578446465113970596433472855282556231880828271101764578431829539196487341846780324554574828647019711784701176102140839103451054662860550701791483278472767099674741276197763475105214073591678040834440555283636949919877388918813679477782453707340413788071708756003491758180789569440744639525142782886420742442961083470689724760709852871324192850243856073187400388115203095402703874723658072598083163992276694918747621797536631386089221290184575897329001804526771755732120404051070387014686984644169576107676342242090248980861587306780717637444096041228798869734198229273784856987710151650759224612120344597080078666987510649160487930593405232533582810654102938787092309986632607714029443581796430639187083621360306954507717636812787518360441884259578356333695828025586179188357031002759947424776585152583371563624097823113258338459359093702087388124155476029578758182159511498390184839819636651750960063976443241318589491160510573689772425635838761464239460245691414355472647472594060296670548416553098322484905724158913342272447149798925332742371522679145804756195679103806511570098590869001843220364752112319441593805423934313824300828266834583536910264591789025844012583932508804459530192119015953452268803852345939847142766505632591845223680602683127183999294800267639444598385300751682293910251454302537657953335820371304919845130564003178206415718252541860123140975423578012333408616522538990280229193783671215245729181301115183517346023955714679129971105323445933576544359871476738411405397497768942547286363864745036841584430435600698562135155254291871632169776824077704537856374588221854740614417011284065224856808177904987286754707847271529830552593983562482436740766587941150059191670432415946858328077749353948963072519703061601547852400949568942973520116310168360358777503374392500076494884154792260413321705497692542995054103976993570676544883845566001323397439337914460791780330501672871539213944737326390967756595478475772881962426682257432363874271421403380963688315504404530760123311733171051525298710222829286152336026700640116868079328927807348765804086602102583654441468767145162322557423233874595250912344478812381404915554354876921339988101302864460402724821289161998418892050672693114881393172377624234837389704737558525911676903348529231550120788033209640330369110492841583168661027248727069975240846049190676433099014698539426896405881942408810844134294946181577740407827350901371635529209303178576623273305738862398366140805035800065621588533884730762016950753941003934789250444321438629101572562604191339869627891563999834596535860477625660357685809968728711008626366557666471269690229052813897125612075056993350279687208216561536838253224429684638669075867367403277323495565223763355249824159238754143004928247228274717363768274811539190566539048786638903448336265098600822152993618804019367285696455402761108375331690937382586211608209888924274942927439010909225853774429370574554661622237321759716531436785035166030131501170481205381058419551302077245279669064837856145287956926639398499445059571015216479424073980752507540153175992470570899601604776156073011856769449253041969923746299083251067982031987142209122524174743261069936384087865526689158324365169391528690887011612336449954786036105438274762064433635923442651853156939028786971448216324288187677002925805245277565798750483498453318658097656637496160522870766508219669340817056506606710800778285866557127509913300989329809400461823821624265123054141856835026110313266141736446028193838417697060850203855018016770264938162818586007016156929938371147008738206027480186188967669884674934856004228001978000965795410924411416303316953221866761291990589825661316356888317276894994723141656217354069805411969760129639726852431923437201602942948052657294094953337044065976162037578393369939493682977183025706722730363641724645337798190043882566235529315132225990399767293375404235209469044266661729694965705288230856405178107835220931495111815181159086880435243803077697378987182069939687380064428495625044639324032238389581665840003560655961462387830399583256289332831621118174647499009702987705622965094463014698939671686958481523243015689816652997738988852052888860421998435650506178738262380924382204569708410271885708522293050068016594828719731542909764515219759188415591053013039826691448454232539285783746814244024083618628446513188514992857470076780834237316074694895729899469610907254231208352169985079412095683440304815037790443773641601607780785405115192570863688246711659787447012960099767282988955712942007071530859322631837919284819882863225576384683443897899346420740872412615314144271315902769179160682493057345646846105880179604854275901009881266994724207665093894408341968956046497692001750849284125477232056091461557419718771230736920770796956319369751471287349402132961472876789703311399407361474466686987522154625341230301178239818467348470108958601549422230532666757405596823022801592902596335857429757777879713327662478835268863151617879316792940635569661201443286013374321251226659704339450681027600858687927367733911084121923998881701967712704816659391074800424818748820707475159769060505945140649127331482057809099131804685866688654470804163339167893020478170508637866115305094965627781955019720669859253286619533242699984406109069398707934558618562535796316557734636429428496795981182004279515621519716806457424493735989316517142562695507824556018379688860115847696889173019947342384751076369430069187591011744061226612754716039389579451882195683470899890574960867924608021792916909576668616511361125350711528412498499877613902589505715636292794882223735937779888036689830244634496269391938564959837243829661786863304852937869868419401881033397049411954013376676239998401396742277424708992005200336322933348094576594970733780016729253227034409725225263524454710199512885479719859424786563566714785611933314624428206689653562598054023798967116698936308648916446621545476249573907173729169352634416203493138257436823126634318953770892137009710316486723772479666485101932970461931120035468142306267966020036055876930408219444913261752088257002595641263538928293186688688734639872775946177508625801124345699804069317360024687854336190648947514444505180350735904276706560621966143658105843591270856359047097169740572257055834966012226208677131269798910301027346070699973805524699959090799610327846884510098857713699061918406979147583841076908728645850150910784615321030336265590061399911712016967026133505780558117546424980270627332268750217774137762852481577236140665198994277276686262630275012823176396012122963107452455360561293732791903439840197604986129671707402337023803183457412765676273985381659851899381627318607166014184211351770039976369169993736535871156391640535336568269198508365436535812227005164765347860682257773036180260192419872782620029274239502784570684171765368378557577924133204133153542716768305503526678563359349817820143580647330588509434853261199613563620263840704751543763083819756696203038748573842546013707026378110726297191644492088638287406903903781123110304664911086066357330773316837388704868683743718260624091591754456853576295700499434488160730290842537946225281826621456359294486354881311692289260545335769381127494206546265355308771555099173054248548624551268305412216516632326037042856885540241332682704329097780653593831195870427496684371752847052478002149178294425085135309086724676009145227876222357768344613049081102997975978891378030525675812853166791565737145077052384723866387267913714407386205559581425621466114067572814324844648715744756227957925265378076624882248657172034059690930979929534342214569467604626986288276262185071892526293805078565160257676444023476134068845450713135945186840196666463723967705915591234097062254051735023314292468005692500500722542561095419388130539307753189774525440419189319307374529777902258817226314496835120986290367138880637026941770147693184870694568417086524760900823379004373269757859585937477384976078070955367780295941685819268707266140081556580251324733520747783452033048336761912487968539431025819065685252117673152959119320794846792808994178129280349652494801469063754406840978458907289645811329802247751967933338676025954232360077081604872882557258660157214239723618071995488195088658025770772443054620990109320263911122072566644800088987438040462967594093249722207715174475407847475766752459646965045357947661056078293275977233852529925264600448638123809593923268634097653162639233876953504126631952609732660178068491293388952936185750793608578181830410704138329615994953000244215545828975685327406798653438674080276968239989586901694204522897203323658523878161751547812078051473600936883560873115176272619873219129461631857928772011640658628795854364250728532917581786263132872647484011912087575332362711296277673483870074274143572698339974142667393786839271449264140064095623787960271810759513749296447750657863568728449353950960647974805676641633568847240285744486842640704830993063863031410025568930288710481453301506488195610347379446781717287100086310399327597684238946118811224688420389580833242974112585171698973213243825972173272391276460966533306924340223561020832106653332527486729605255563911903278835131204722507491850126395443130819518342860893151168374478345810773015774465149511295127290091333167433529480611052537446696644813788520991939312677712926297499739682630895149803549636750917451803244911515126767110804298582163028489831555330887571324708044556686112887633155467273609638588675197359060784839836230195992682692678496988072934631354318743544057396933997943633267855126282386714942934467354414761509029893532407578402692638731607827563176774106686491884610043712448529962426069094820461187179782651309100870361205017121424185863404719196077977804715446949476146129441389135356209377814584250942587297003598679233938795757045509841514924549986889016105223411832373238872584635085911561103506719857740496142218451881045646586774743841850727033609055007117480356932979694133250847419323071340179827574480944567176584294421423281940021957739832915983478104424473948665117809605433666586881725763337032410097661182150093576444807960910555590993682668472021622694046999763018216682096197088913639579812992562281702771507818036443916069993709834513910101443662354359478442123915393553139199665070628597585422761321309064085213687743823182185781488362315522845998860254075231209915352526637731447963697083514347257247617881393243629570205143270381629259157973449692767056624306510796024645297675325253361534658518030391889505573802976312253330350169187128125712958065327963321083228748719841987690147615421170490127569459435429244004454437442082014211159306074980154448693172907134095665602317441096338809384812563163234409476518437879126727271687930609098705507626633535065907338621817051559133095940083416620211443091815243502916364976546454750457143139591530298215545893508794990240280991067752719260546953017293678261314446487161421700325498201625841483496317549074229865054459146060686920968216659311811407019060618114412316893918309504158189759824591761802477356483040290329721077461330091448618108114452052646568873814502600138693130078289080537412676982265378781033257976121675615757406507966967201220460314749313435431265222764316992005722538404174615112305682441354967789403967336397331030857165416157553496270499681244427257327677801555580831087193820308063352587474821100278624390699867339038024036065301158909841840805708918406218445357763587469355677850730784969997494146049224991063135514302792762574990360058697718201552158895286291457116923245691818231025829978421324081010827220349589704767079387896605297201497106043673778385434985765181215735210960567103165354112939782711157743064907532044388235713758763455093029783517466636988932724632202149315096571916067947638409301242792008027308914866157128006776808936442087836077216279672785083305310862599099955525667241767526451793813696562146807879032381449912903595433021804514291948690244085275961090249133798871233555144355695012062757226423905331282818374021554376841082644136994113711675406717548353874654746258443865982174731577852883957306335744667002694177843184118898764451920972662600285055541015257906037534004709841434446616459494632572250286421770498305572419225260312865147121230548353275460647881505592986904637292758962839781907049221154751927325155511962589523394828733935837222305460698357778232654899793874216766335580334389021724516188896009890003707442082789740059368367104358391073994752647165054403940269224213840140087793634187613741602359346854169225614229668487006734351214506047072321671450557810259310599772649864703759543564242322819394143459971370394816450954435460008050678055497652259341044804092373641858394465583070254399006608754027920379386013524908977093718869574916527037960008916816706260499103441359574915047258143081622450848595363943268658397482922238430213139605422448935075457979571255788268652924038960244276384655522092089266391579438211592167867777778602796585326023588166871934327586930697961363383259924376288454200267892762097615043424584808694732168284356278822046843468752416109621011331250356378131301051614822298882319752372019782507681026905385578642064949665734822490607206469734727945139534241220973806270498847055690897905036723682046211144824103723379993435707088618246375218607457716751655918743167788509710307312099786442057998547810712362336256325615666420162058063131974824944309921477315810537391823121969103327852451838801320547619033776863480784854775759889379014600925563599305889060585930543682078132987735685058060217886056789704160533837217351534260105187224062488790054054337721807139138275886578836256699482446424963242931388773748362915702903599005462655827575912603776412675146584310632162022953156365127947903515919930890612291024590480615072404034034181891379779535392225245835974128716612096416510211427053606386015724674812353024249151827204512911973057134436220343956044526140143795551846789821583243714546865246745094992897721251531064174314279006639541187267027088297027663812281571281745066185273946417562656801967577662718433533502426502364297330753977336398271627840901277628536749979210848854652593994049481214489122460064884146672316593243715738884490880897172988393912108232436100110882192290900787791300743885137244400059917102538669512792079875657655204607891907215009061081939149389022373998306279783208401704991106103383336991320360388895483051095708152847494094027250751219356030018959980711212435111154670394676198257052167747767059605313900074290257922393224831791281261419770598574723023143735180132490278895643504528456450678379510410092675356634179545560982729920290536789256091753627526276168429390268270597505221595544272582292706186242778291386820443157902148378049629873497163817179613724301404449369269144693277342602924283403085252691763010117127581209547194670845283450491252024419450663387796223150081649385192610267920456168405764251907400106428422634881299012313246418739259305449127788330446697407753708927715496526070314311969054180160601236407757043621006692059246106060980618717126381978638779657512678884164836927778625642279561167603244621099604688853865768944132993863997459177483043531777179044491193091537800727181722416296680092502916659429863806109827982788829367027730329320854274703995826798652925462825366018702286674486255008789619423199202406935868616612172344147428592807246506456047056074915392709441937783009402414382095273407350298713903486481043819499048884796975120836730799237747609792999172288536278342786615873169958453357931588803663152690657692638683812770406738312208272660289544447302345831599259820866257775762536818271267170489697278254240726677404597898398065235009382473120650698937546763072357822210523083975550900054262492367584571398163150850220306349977312964208571233965466960166871271887728798393648746676434580543536375256893394941277858497402163186892169659779704163225675531822710766887935093358225234233856204972034323882707275584650938899096366906903121666605845762007259648854185708776573336945542817544953660937277685285156985244554242136399227874953703838911523417041420459179046291038291100110378667398201100515275147631445198841613519937708814491968281933038490292885900219071752362409097355368216522630921865068530014596470984751064588065712087558157375167891233040614891952954208898886105833996846941479880261527605995905786093803873540548596535346457966701705351440648847907861651946791401638363406464844214755421546837584884397676921266476330536664041837496527011087540934008410228224268423997035479921244581660009361286796634971858904248845260917728139663197739831380931957431612391901520738190347749699812889910359370137226974294482361822422943754112561775947448266279638723506889251588913887763951595026884439727923800188138750349406616712794735307888280857681550807373895906933465692622321942265141175172835277354771438142524708896076207655081345512012459331182155695651557531841807409655974155512577099315033327471999974150431556080133419050334415612270173067708943981849486114033289624241500059276420767505834434166716091357878956246705952587284850936151128360676583060040793347271920571145270955778636654085653577443844435819578854591551610708377895133514451078268906056381797655097181493123778899540486039233862215294620878599538434039491688830469770716176843553393059943099938662357809821497151975633490075911303824348217104152555482134706304418128515421805037744352022512988970542974525393032201779764484492923710009619498133172927989973106452091223569738797666687332211209147430795516631799985833117986622911455878489408925194211107878017091972220857932678379497361980528807002904938689728740239213705250490572184789646583309142147751855362517772151181910977779954844078391848382887986449119020706344036805108518349192324638070407489132602162255608638239271413387219313370975440757516615933125930659472243149040853475705500461587056779924693243415924456570622519931721737920752804199987691262113465385000566292394310085158417965668794310263112341808036109954037721124536064024870751559783326312005235356113252612109506604097403707488098226916140407022365291040192184366541768022174871551230328939645526475357845162328004760619589295027498032704510701101864876229115673545884409241879250232860163146416357427385881124091026395232226544489577198979572114048197659374291809667833437926614357723110066406278214613939379556403998083751224664798720299714179801086678968480531711584088613089341604057305604108398034254782435121107038442367036759374755074549764163659482522694480935618240642796847678058922537601410499338340446837286355366948773088447803906350045767472438163072234520340568635008296663836861948281206057758518154469667110745032029192614082967710135972203182456032890070764384770172706160333124372112466701082383909826183207656506728137779322137972728509832979671894210707119947810192505165346533156758613398242380098858171653839592500195039143680078363102741880936027240710951256870353379553099541492908910678626432127160358718318944523951372155800224307399257724651040860376505676082455552589451333328523897493581919222897046579693971946195836493183291579035189104459699133195728626810572911421068926656265169380299044583425261077482715891642079514359494905595331305947277911462091369242515398509523867646078278973948703981019454087762834397130646697717593055367193705291526219715971108342977062944695026589714341693303493093501257791501769233383517553939994042709985915518141578269524813966527003419284862148570379525580118321619531203528310409689039325127615523079272927914814016141516865102276009431519395589707052264058416188310777555442745442506995211041042618876376095622603489397977762261868041614059613226247014962895801426272647529582689272245171658723473709632136910277394374080686335390201400810256198998219180023215298647547194342958982042114881570217527838660195855917293420661187722914625622885852626158341299238281497792307130947528219696342936486058384380960663164489117968735929738455009427540518191675439293604204085225163875042553560814060386312877368656872378741095951297688103160326614973909317952371154814600254782828412458329532452859877045498964483984608879618056962862694094525673399896026392003686170024538557507281727692876206483339135715079525429250712330635112904421406062538192009794631477642130074502677285550898832868646923646457918278224251552262247657352402949574136549857570380281623875750957556543687887260916966649957208920445879103820461918917122341816736486761751612237128555603902880822203714720425104802147062145546682856572609932267459766914411597585032523160702128463423403644645245553806753772327882706942869276981238360236835634997161758604742282817568568995314866734119740273510816835888027250044861090617754021443888905292160360344255062668384472725295699691637732162346196950761159836570808874718258042316658021034679836473474711815383413252969251862501998696117979460471051583462553483215750468094628791963982534049317566159703762277329657226648562053339751162210815148434388686592811651424929564306762182290148747723734368937974785682553979111697633946296659233068240328169713980282217395361664756516761406155999766715841780451159406987724419630225526325538699497221594794750259310629455376699214343233508314222197980882071993525128488252455986439429057530785400967150597625523556731494673496227798703912407774829114904437994802622729216871693505181380932997086707912873274843394630099787728223004200912109716608381077968018051944217107088546045743531744824268670568793573640374473378259284668243720784441169530128148660170104754821970339056867273962589325057003968357344737569458415970679875453163255485404718096324137831892539013762391503410247473635402557201057229423835941265306959190428483382196961132799310926473814418645921080341590282857990477191428430841690123147071345173121416248060157777079354925799741467715488592946859249787167942196762004961877571046681480474354210804559300413429660036898816394738233092922129771797281511516048387052272661805734081287580014137925896894778120171136864323641088841676614624510414902663216022561527087238831585840144118317723079345809636072682916027186726349479999480717648031910662873174389409385091936353233015261352790889878270632403252638630797738087652257654552874715225402882172723465527258929575758852635968118604460170752582483916432717740425567967771008962924785721659565488650225361374476327374913408059189560086241959163533127649179991811114276152633374128590059279015047295179410334677262331865970605131434486597144096354195943413336978819151568657027939646109747130553634911247310521802646816195817901801793495437288886211273868742399605064283698854991939403949862202183905455493395008332337648883838050471699313754654344088359029337436236201154251842366929042900771584164104065752504509332947607710435809574248104225290744508133260572862132688591838333032166070272303808483088266724797802139106913353416525511940854617568493275534895338890538492748655211069119190367083978013598397532348962352907424651834878162658536770843246582710136601647084202356837165900057422491119094563918126298474920174609124716615868400334749773005178510723234610033146795222316877965654385286922549945573581637479847003010995093435037815664203591928831169493041831433824892501354046620614061913047945096336511253091036289141834407885214720550310973537051079339335505164152387896582255892623294111542178493699288139657846063531095542356947210715793784918220207193681876237457111525198604463851899500911831962211775007582541600736835965996980054548725675401827456809019832057537531642767970330438822797093485417544800492771039708811479949413125287822447752129191241134068986816456330709041417652720013308110864171105513915857326964492856461298552250558673187611020795596264124607482193704127360585347310852973225522333658454182037655488445172513320071697032032714102579835767300167576514986256062112824589195780508564573139961684411386648716701710857883295480038409017963405801199851479046376858456940426228838848072646682932843792681654264986523387373491970828789586275869263571851939524323849404435015231595319252051768240203163178358136094440344787354502548850300582849731122936050602994270974366990688782333653873622670078453842518389457915317873479625061211658210354439893515192858173968676572455715014354053836123389445324449201158574888933685126013993798004481506979983012439298447046036146262474573881539380620121531695888051465571541137314282067759388498396398420486944377161707233366862237010550893395104759264299356992142154866011280833053713932600845737991139631629578621517959745725532449130280489550080585476752973381400946826081527659254361880856654587217042528712632979262006658967825152694885497145492069407056908102311535632443811441141476010932526029901198586584661744319810908649594617457058644262337627718323232943191998816930412429661209663646477177545654069634484621339770961600644102074982491991080282293505379832330007372294741394408299552717821602813535032636117223871179032100654939377130158463354411265481691175670732516984106241774143702968158419045325663345871796339681524807303802935882309731981559445311076218936004110377958589354063501466375704836224749225417205248606840565900956923498247772084729339708567559100625174344062066794747572412550157746009896703318230671725437615926495902410511298061575044769572578973179829378164652931070959795433688209102807344026512616870937231229861595904816356451099603634119967595180138768980960386032389687408258924169916127319174603604818861657360604711943805825631153885358043584947593257731613043808236802571982710578057562270312339285006802765954426427243814510355558574635720088662249949616518502130792891890550929067829704504243916372225176501668597831678688497875749221687094487526296315456565538948410703105084776273143489733634464194631241969428609610084960204101554347104587056811331164492790395785222675143643064982626578121522004948449600830525403553594170799776954608145812654757497192833471708259051358240839928881374844863791875163326240734270859218769175588706019608866391128595699308577732251111468273765551346262578445181220339640945842836490535277872587063869511344432913328567318722888325927789966972374540915240736882253127185106664532538757344130449731067388542855610665207377304510148712672121072226947125457745498327823542059968414104424928008043328361811062095120466945087060065607194991349661320399832978671304587268090082896327846980490384772875653030404162545653865427196394807990673872231161469059796489569927595878455025593432028221910690631376342348211694039656139927027435855767781923067428273952225494566288422335629058751579779374250667525639196682323052781946967698772842141802847973640332429482607961454851439603014183008341804460954900973756926005374119701403552340991024030373942624275998549450268064656798378405050169961548300973101283788679544261527909130180537401233457623807757589434245821643524375723897817765582463350613209641849928505113899324649093128027812037989209167714449320271224692207064747607965294846831127707722391335416034522722733607491216883801875632287680136637496158497926484791512264275232079076027190244717955020614952546823444190549084342613931951328591752310593836339603901765594187572161306201335846249747865072556508562421160112649493579351700943499838177754598381679078959329617967311877355000642211569105306543941078817230476411240773389010319263304881635312749150701332329741998074318457378608421781460807383615385368819853362515889114211220401083713468172749269624331250977971411908776664427692230469356076173478574081698783703957762270216213725334758569198127841602773565657516644181765063437819712389017008583419282527887922162300598948151538164165249028125356015567173130712646285456087183959877650242403181143425916736912175192211658625113436327464106708811248748853681242410849277225014195586485886166385541152204652521239924481707637117485486645402375653305853146029538644860388204896814471051416213789127919250757518726541915382146521981448155947406188405178060649693081958855776937681339620358795277859268839915254795915569129341080362557280652860062851013329488332606757812388458547854004687336300379810446595600784867467579390042653730761180224200776689062864630710185492735858932663786202957108461334236369260599894037193704840651118812512843612248016942849701612829116776209523714795395084899897001413129935103047418275377863862988208253364954249008804712537286816995280791922056853636865300125961335111327962295854399107817529034592718452562526984098263773408968221435663539371699446341991497117144947040161602521219337583215161096007092936588730960740922485864447469352827739929745445724329141276811395658926311954536971756978474685853251006021926947923223533448712327342289693057331254710184185443667840960604483649189467856076380162772814136321624708791345209014840655776447203054963929459233025125335094356178100175807785891609876831492006896187945673481508251572030191100979097710392724352869428934573845505448272857132209674262141733083469648281652646661615209237252735138705864876641372124528913489965238496982071207654190284115381250724376360602343539170537630828444386546639572950806560827000110341333528837777932326534778452416711957424591210978018133557017448467947267417027336224197820317820748859931264794646128156855956411805837388978391602776456582971845473486510671757359118048411826844464845939678273370864400069864365023450919422950563736776650985838041821173894233098587144988385988103284761924066064661991642419566315471014154530878230828701284943048188189139395751889215617608862197544294231337903127319995145170487627738589538325085922028866574707429890443929763250168427075515539299798983987164305290959957009280699833595387701787515668640164915908361674064934164166416542386356158689388365198738577977590777069498087862785122273170021651405463140158722767408376310993301596385471430643379287754306032456375368492130156072598901866061028755540081916809489168882908809061146420404804293786184401389459139559476736002165698460866411226219181363077503982975214131754874013109460984134949594577406197152220113908138897666877553967869485602549414205481086510989018902625584193270656512898620011065005174042923419376508874843901493726270570632013394806804842008667470651428644880134864305022903725658726274510289224943556670081377144517539562930667106551361824323277406966177555555732391863209255566845714074768304824257351459961206973051579369820894149693857584794096523851152207817509714573742892155856572453764168528812597440295883301301908866020368498761169011549983458856972899076362051436071412997619456626860260471286716787598850422757666182040709761948628534352016526958756735069992094451381897702071526387739310062156010259434332926028367796220552832215504486398865568637162847632336462038652132402419213575665643129592197042143918225838430450963544587044880723112220698079287358032172445961567538592189625221900177460618447963297856006658530253724703649488578623755075827100061971561915711992789430883581778980603431499199267635060426161328565953468077329152169534176728411536380529173029751324306883600166862601220639779826967395960098631290791806137055697657119891310731896535515387147486026814814581415541567246471749200908450835284563118550751615807038059509971749337110574332559602308686811269704627955698078199922136995792791334056096884503259406399505528804702539312299642331718667628116581264613631824589689179703327270225096867066730644337830296432890882848365268975256852773190493405471694574954038688130343750050389351615341209324092712886884767071446145133481208549565745758750316421406954993928799805901014812891309185935072934608038589491063034979356505196355098676782326640027236868832136990150631281733335654573724157517656882179079797205902859948030225029830606609853102310395467599303361493750416235995701258775817156770706641155462625503107744972206885253733247036293288213063528881121388997236198443233225393350953562987736526341556619499030158751975408388142437450142775028996435469579090213960602293959211070832796311445033391864928536841241273029956263440440969126220359190126776639444648425312423092429831732627146630279426621443832577426344952475958986826942911470589608596762663083557698905215195749866156894961797191989529400635114981554443829359576660653696097537523606958387777526772547298894575364531606041890362794435836261831266572134937040636676807862473209092881979072438574628827131638804106645627762097279023490170737566295262024360053982794224128762643595178849895340644132569552660845509275035829790525180740937811447912242757048005044174006482866911105808006868697434836026723160441177431435718870139430564435293687556089086250801414864110035354364312327800470933915687086343644609722281810368309157857523957359418208124672834999603762209407320568440612833038230688454864032035166959725377265090448118440325185492579084078436078918663034930350169051708950173539665302643518804980771817656172223946847078286584852649866232832038063144171943802758144215511194666167107291470510540894888405230592031395869656596346815938865986378231488236273705684748438833452781936223938925134030322526221070062652644443885666771376475099822090576913427629523655064481819005031051794575447114617864512046887159078711535214777051951791437447063657638932607531497124101662276031608127682380454789924445107987383964108321902981908593210112568877851187414507541986306797316830260830346520178090864131939173015411078540420602386096497298871025089046157884781587667108746194747262763406326489769706537714014132593505555189152497463246335854953411471878502823407464517307671474825694223928572855996475401789461629468435442603403144374448850348831673578349697767224189568369108217451963103436333454441605560501714781922446238259545982511137095047149056461863008266601035777474450563215963019612448051379250239281409449056146921695250409608488266371657911004558592340791835125783309107757938547938748687302631565605351213815300093972064660867720688336214899645455783682234708005180224651364367963011425530792309337018322389575189041937127184989893260920226742158365724725155456377887420049479745078145338438849959163938827299272248197958750379493570766644809812672838141298892517093177728519613202944826155532355277401343057345892358459314374378116358042093494523584855074510081192988687745755466288834666532462043124482646622092454185353420300104902430733604260701002663213085518949658494650409402804150890445114436183288734586885347463591565214524938950811133596940576759569720017982363274610736416415507829315120219026957147412138365935552558160445624470057437030788605884964948898881931795912339346496144452867017575472553640053672629949365083731242524244743730659694218938872970159445496610284334633676227612205666025210852309686582703774618031084835149552804180429797027851995480726221291527484614622618501555390519409869619211244420079504048686101712328422060931090553572419458235691930889527376633644154132704599718376152605073932072644341272059253943575476955589154132401854934722783816814816306809031402704364924404984891340366490416427706869960744099769337897763563297047366090440681093668990205499310534068795784761029125321596422261687868702046360290030365110773392440807570256180399447846971616106096327256996488236279837200873080580454654888457756384516679119341924461743892823021360445156134777720890980326153315983469770075414594982300441032702519999010230122097054566139321060529910388178938567914168291575108105052971476575711342781225910912832461882736637838775674948434955935606342545338027342139563140101883330280829183413171534727492376151216622123919131910926690235161299029902924823943174601250680438079786044195001359983411007089857299420100567541455147711306521435347009495846192384313964008249791333250976081165056141477190482934038723603496333818776794680521513339351677349337044866703623260793100226244934611851919745092699913354933286432889020950439751480696207923198063443721228581161643871070824475024711720084632737261682480512446875724522737753246513332172526326787819020251960211831764077854234628630382149911796426994055336969264491156509081376301197608656868273542652886071396119241998570487866194910119521842178953219216484408518186056983919761260885276401679340865325198573229383296000564595229791927145529802807978086054736827942964574785013901274055338649532721441607416622737837539099501789288939718483669490335492302507960187792458087470232532944325302372576832291827292936833412610768132458148221537141375275639113072642500310821123516584070853904710883459530763561960391897236391410820691132606457473324568090687542757001217794729478750376720629759032910529445417179624886045234458518491991115100981109934290719536775358399236821998558428985382603415496914259447889073371265352302283131175771389775664593600824658677012556301461081653265514504726286134986273504637629694092806714428296165157374287753861871503659047781732465096127510909865455485917409482266692826146435816822126304610892766843750831888857263041301067400841566674429822697627945057615737662238916101577574405440375547187092008681590997657234150515246729572129855610797215388720686729725485519252354046060457180333629232285167634035989723065669912812329060216910698551635647204139820694756739793374356171591332488624143743660773863403896456826804939011944972471089329197884122287883748674953815937850623153878780997315919417033267415609679475516821887510365402549348197349793108817244063879089243944160773398602456525123561683073994805849643261929321895039622915629701134723513228049590988002008985196519733075983107258097407095866964254441371265904880665033918386317180922827795692361937291667302933297785233715713474460577667837428429557021283726946716505266153074490024258685348658668161482068996546920212122965505048723967294209315069712339637804754151733980058358533639402815558934438118786068624075896518910833194654352011466120173858800393373429781503385086881289466345684613591004793438875866879389877132733285818598436113302042989990301882316177918093171924824924102921780115906690585557008747015115709523456505147088357186270450306076740065506430085353252704247993737774152377389258969843379697827620234853417250846443103925028415913666523411282948018908844611340162638306072960368171706700869936509052311082579691223751771736828580806266141376555518867812532322172267722534102560706282273139236891652955718587327185796181752239117744439182833656010183512327458687917095279762315667868125100398107194295381588077968829008638469878398696832004307137172017781516074499607171368012110690887262509059663956331450121313006779282520910849323675504635336080075551133716917958120715665609729518344564698036831354096925979033303447097124411326789505841631831625312747973355869001380970771053730219926741773219577698353578218134130873019987251415606598720303850313558829711423938399815470212870005832410790285420080789698839972297247664997240980641860872946016637558401066273666280400920515460962965271632192238308079699657903934497628769125287197602083236827335447497651842997653331988878652525464208373508021663569182698143573435549367483910672540658092332778558363112980046720982049326693488514327780549123989496780529905759679183746366777654348893695263713015366176034400120230788561932810190831393067899427917507723937090852809252000768055374978531986045549475862889952103500524618876725619865887966329853805976768122060946329079874691567735902442822053080405296606338665080099551861406982120844429831222133826092112465252816794041970261389585504806208072634060663728273893477480675217380012726021074754203353671586131425576253988672980746991296422423179395458526753556780704653463728245316755318858665510922170016592834434536112268633062455577396099710826014514107725550691649145030268452748911708647429458697930787245956074985634954395834859943750600501239730068055596661538623836037771385138620324053381486388393309628601444493804658594274283867596898314433406374138199341258566463616531621241484583173193341687924744692846662705606287672211354015173480989132069905314575065560905172531892156656978946336809118676733601375070188186314918443973792454734405426608553188627037749082497325125517533943688436989552935277043663822471738303659803461512209711531378680145744234570041235173461922311722156770552523690915568876889629435436562790672271989151736513776304582082918884028735334186132199963502283879565628543000115871898369210324199068489118345756725973433942950274053140639850547156267779571049960446640881648090794638256612636813562558659211771010221269716032376901083445711763597683194589535616000436383996653454738554575973688611870540065235915446141687152115687833001531110135868792992555499494828011751384209954630981072739372567482697388725596108474524371008811200508480010972404572327346266071115369357718446522436354228214383012149149127186532260228255555969791850893620438152245679083671113563563407589658771562608612937776782168207149849617672409405862761061051374315528143422743020597725639391143779838546949742844831141998970225651046467876885386681811322480739876392109254712829482556080735365200756751458247952942100041131317800772686616742433840737793877546390291822701742795247811995857185152282096665055794604932176949977035718667337028765591842552343325826946369208041404729116202963494231305510415625503556777906209428279243243449381901167271139277457089475941204297035012847125787121912819111970662410348351118690826676039087595261501983012648839685479414135969048751584301764152520670290953327070555263916739787816503888043177697669404241921299703123059732207328212214022869806415653663474235591691402193732063369283465538716363234863884781713063969244618966862706637102857152488691382111280796085196245896769371676996639937817257427680804814713578611908621872290822943646914738912506092785230089093231940682758272016319995965678995257572606035666691148368777428098120903179980721623292517521391153186837736173307902144927506159033151694531486317245394140224220803597792644665305004434709589100017448201086219085319904490829362923748012700978082341477158676941915320135460448414325931858514178616894471345280026361108828194365108686036696944824905339366875825481473142118559507756173549734207510198739126949456768873451269956358574239728931858111607593806282548301943966294409239462866351149951155303712172608405111299164551879897040824014129933571948024980865349676987947393440372962020414201396737902424455765557297286930642420189061265134671680904529457462446990649823694095043743374367705796526823387549994315732160621799543954454709165362250603164985037534683400830856166859754180847120909454415354410725414575095004051441559411977159152245315384181445558607653843041878591885086035363407080108877205485111314850073960352073104389020971494310361284809231785883674881435596917984358283657624483865770958981852512114510773014956105099358057719075760464596824409650320242785395576408561768841152952456315721239226711876345556000496934767605418406918426598490547838077729726903450763368429610408821714402512745595091813019487869140080602197686926739178697345062588200716419915836649271715018650244888100473384127781239963508276136222978835073784304211179210764439347625126930346847176399174286506154879030860931049930938457224119960730851184882914340328089468371258261572461614847814978511735233102942450664822820935595828665201285508174734985650103083500086127165618952110013807428481294498201408443428242551548051938533438281240234503033044289630944431557951605645234842643107323220453713573393440063766165516385183776601696922614290377858735742787823030474331514821681500717672401872061617557209963771774584928805817896134391051751332103214711389751269316362998013145215423361569917531594311115601074129254345667597863386888691466886933490510167031154789414755682817685826948339151104092802089758699168536799635444188487813019090737697951935406596434239569568652691479532797065648983950578465241968603766352660190853937255082654753330206228820754467272925077565139164793176013336789968276209755987014251758316767236699169627674910284897534214524338271144124578594478573681887112882739814202659077148520815025693177292479461113892930071979188170251163298356926920750508052248852375593528330394026953780383743411127257737485615761769558460235978576577915669803680890881150573409213148281262350255149009446394023348768267019921268346230041634497476945787833956498159588451619992456566328102246770486305421675413439899426095566898453593694630609483662198373011823374206432495935534057528078628861633476907670122462413917977622845622739507545640538429212703278944562905871965039759888777831058822676866173215989627150021872358388358765994549925977948541877304575681937162275820885393610064977619591267104291750607598880370612897184461704600963695133996728405096189334590961987316762852071841600551939664889969882113904436741924509492077438556690030902214923175764099444914648412986302312923743475061935514037380921158958434407054877942809817987443069836965847944046194578365099387942123174359456426440834244058103531857818334677943287395043632064515467351961157352097968000072818294849599671174800492643324332126671793293272688005177680016997780486287515719398548298560099447338416677202370933664705036711247270890670514557400754958044644291352079062527880360115537968751277240325651640128019348336638800037316558639863703460663585069985527012553919601397705818376924728539897069894078774998016600919426329634314273475566563014623511240311020315441470441006243613003248042577173581711206959275472473441771701075996830114835508027342155863733452352831378667038305053376299713584530781839196033000610374518608352290191266825956985121960427142766949737743661311802541862859367113141790326844478828607243429916183790745012870994626068064399419088682971038257913295924348837648624355297849990465713857938853193933903758104554747936169406214757062215805642993199663377869603903664932807965272901787131396673668231999880385079636042631193646944275191788233875623226668853548891653412014747487712285943925099115818034367743378305817078081261731409358764934839753571800311200306093621275121336202172399743453458361047982916899763004503027302235616971196541093261499505723905864383588574169982071756860774415314645113673181355867096331256620617986030128139044944983140186816217177871974251752553802435937917107081830968344054613282935233991669028568634127644273188124478448312040831576573604492646462231488486903643945589651175835173963952758681872001291605814834956589527457800970978644571834130314117223608877803804972003677916327960398396217953818996507084850445938899608410321305055805526540314564512954441770383934093097441175452186888394167831580747087151059681106589616091656445723348152566300477430707922945823779108938629573158755760110758853866515637923503862377921704016611659127613679133629079333612579480955282936204660831649797405589568626610226499043219699792202648021704690110443375719113505873546887668023056073351986725604867041610983470855375853761267264520043508419395634310966363821285121184584511231511037191575047007853150658987506598240829517855233862565000944263711569911914423047374262588769961760639452262734323718180754979776417247545378554455654106581932638944023956494602143851657242470150723200537915813976066633744722732572541720241964468980166722458421777383848840049133855962394512101343518199045077103330470666946118586532574460136430572822187201768207412239330139812425979854903238991676015043071521103548293440421537383744370390223348351763727463624045997371705433519462150668115609487250539878945112669440152558971651577409830736983863724843888685071707868378437413088900230459846972387479925414790578488365019398166873534186172368114104100193464232866881316164317021850503839340005047325660406221048748838265787571079084396973361962879279709420108478358251307069908684510114998993066855269546675720869940717213379747952361532948127974148231050755633938135967659330643744842525457551199580298587774599152432457944243760510238278294804005442517707268460667467754359855594436581354729192736097671765205978659679638757282470583387884105956320104539640536532768174463236334624737927541723806526440595693460737337666394384988484081110821632088664190403665788589480288373171086862320768731342276819668004579594773943802304532333833097303088995964444271788280097076130414604957220001160982643002997761898278622798106314525323293422162701829009127632381592047044733875629255204381202037272858189318094532373203759787595193091428852513830771276903494395368267277069929149917688083537772985007768728475885777134709442580448276028573026662508289768674098148472440911516383150473303055089863035826755187166265063715595658890275430458750800146176045849520441426610648637991095590588533438470563525057657986495161436851568816793985202123345503841346287174354079767207921757055125127451945058775408997774867317825218902762898707868965066985403466558402743934533456728239769296166995927498986288826451934501449979993926566662068818852415541278470268686453729964735251318542320277004829240531090738841844280725509083404349887867314187044104351010423175818799248950697244631896438872353844661021442588844506811200798980428051319847192099717808916797752216927355959079449326695223822462803568000483665072442777500999892733174806295339670145444070794680748252712980225406468438018423796365299383940838551542874500284502949430244173501511758333827833413411974039777343658638228178503176065789060927466517452816251615184597659010291680218473814545926445639507230978109622759332690931394313927739758833054806956899306683379597792747619656109705042281088924390269736264675073269307113570962414101318231298945690402753809621700497751336923200616102725596855454441556565172229650121872052598038154373653011801090104102429805215648159217292006679388304214434840614520218980565158962986024637582360684727301958346965749815026087217619655118521541662687698301535605678916286637825772106322999021397360278650405727561539622950774180579813347726266276316592556342012283086261456963183603972011884004325643547743062104043918627705126880433754268212012463917945226111930250584759085231212645350317139412030067031418126579047426679132745649814877605255202940014821874829055047501598517404478165163273899204048821773504448127376339014652320854736021311759003960681694232760221480704995845587098969811691924212312163551952594285011432427300433350244347200155797640219711318718565503499037263966516918941932874260929285482830256726046654949300477753352222717862144243936004505058150173704182372119631292446513820912478378081284663723525570688823096598617179147641082469104165353348121117765001986014374292555235975814050933231197448614051902311480503685822362401154449200337117912153527729385592540236389652912424844478541886763225720599319479890501179609277345925701031370628556522418197993248636420312990485497033236736021853039774659893469020108720385170118509634031242638423387347242911656087189682134694676966161920712897755561248973238051992184564324092187689073707839417776029651705701813335942238411041085584801526106346482269263145832453047319166097209415973874895671420575232968302321103422543834969274853064012924334800835485906476443913838250691403790974843912393830006713051702991725683132335700397607875607617429752664162006642797367534962746492761905153791245698491780731199705944466395648797505483883635529945360803388225741742717930043608956013411145998278899709135273180254603033892354652946381947651375263350135184607669533532127405290961467623092052974227756603928610043644641452084972643023709854959851265340963731438395192687020045567580661408520009453582307856060042329596687572400431735831976883710761534180814044935461738968638320596350588842276919730628610057360998093909920520037248284536878074656658006011841775793637817224317418652827651305557294541487525554701917207233071442137958821841101451257292318773807672460887234689504236220438068250683182842485309275084311074231816251466687786547391875620102660657239725206454213839432174938793401805366211913288559513643626334187558747423137913379451522159233825712174070652284125479620065430278088659380749131918296492278978280296928012548504207180608988424525288721615077418633213907916670891141646462248098702083064579883520468289963437662030646153857564841346010512863953181553254939139126690506114706136847906529864058978963135042135518251146355502303833272451194192644364983194049463060966383727324715206349255605888596401856182050168233945145877617537686299763699657215463512108297557055855547394496489815435309386010358192597163670249977527226118514779795545485768945530147215420141490633884291570965621865959407902651356341019365712187402346006927638753371598241776807929095608255984503090082095568017003752735569939507248666311381941093027541612925649247470223080072577985033273276024547011935080877519636944807569301761639239246574628769174149828952817793641712063822825936652680749295203775047557926802332513778832205875532313285946746645204607523562732206886385897295481296871264550665907132973530680657933169617842991793256515185473650512778337702267109831888906716003360873026282273297120666126503717876340217115651022841646541337986908859589001843126806018123203190187947072126638834960122818998238556032231769424928867706518694978913686621287785765327164937562568185384543070132543052845249915178665743530690584500354236563056089781752281543127713052602839471400121978566150739994571432788258902720617361915835961283821802674348089541080412776624015259492455887684984673894936722779976358661856374706301835560215195554868292386719336443573769919028738505427853643751020113209594907027558325549579902364631933120192748984590793703436852377695045630310109013981954345472638713011271896951088979131771178965451271371075376904610111933926463399855297975298368818488351442159454764530807509227489865484318648928514772507335337982815229780080776685881955937010688127123370164026935760760800576674406247630023313499763339640158092223030324988117397806591267833253540566556790848330869004815039765962581545095269732274065391017275665981562195042748545142782399249562560314153911209434337279065029013032935507961778902782169894026834406541805736815683492039140684889176232051587100038115942172200675135856043613660693143590434776889417493152118665010439540901665020557498577379553863213873937750685117823307492982313229557157467874034106470431528160088498777820357899954549902163683906537038762925776386879637984767770205739885508413018231983969910105542048413699033077992984769466157710144946640962609693224067315414230419254630619874629302241240209223603476297167570127924278726140608677316878770478737944856564324952953852032641168438594035562318790902402709445898620773936585999816347636972292275062741060732181322418468760465256500243946735461607444611422849605946222902048872082813967533597727891248071418760447034828193285215929100983327831045862517088858204569421809047534556677319806041302422606490335429256331892037895487018775795494320672238489621205121225702852821869668847965294577016049350134378714322619485821491515725946533850226654755628657687238048267587869210577725128837406117524917443299906426411951870026756239493787333009410128608940179485348557951941250689440028885947710633385131896768179240748794159454339857156444687768170212481722451460624004102778506849633451746267718466764421795765767484163395877851574089113576474048226380938907196557740828277238966886442379705650560037759061953637201382112867171763335646349806178118573092865732725288083642351048095106041520123902109880793205125203935858613427188099354016444867799243316643468161985650377595025878748844753965871106786097601254342392039134225216471548258836463728616400152569856617774801298878977105989710477959949443317516500425589290220481861870023091554077355817912670666483449946258809837790424124061200231268194986157624418350915925949648333089168771355057389872659404338045524655187343317770172613180658591021524894314311697344042992299223867628641619986430875344983091742776499433249511006853329555054435508456387179206366359775295377658352121643222579597222564442792968285152007148331242848866964603035859768566812734766137362702665504951217729462737537401492357840177440310019436812476759097381546984547702863198203995385786422813059989683836066335645168292219226361676372115065931596748646786134621168316561255008401145913359103720652004408821565290811520993492559174638830151282971716397997793791193271408017077720977326834494828956706419491083649525908734391363944847061382256015548329694359461278787198030671578900131057738182263054180328529458051678192414580547278005767485466827131325197574265326438454514223763090516361477148546436343760716271468697610026019544659214630943665244715409315673813802521655656435796855984536003686629551330385164422451230245982627139298890231109694535044988819990218943963444183434081083124924722767309600454266695143394750240004502918289656049590654988172595889411575688688593137907811966604195821884555861204753766501253554812545908380073042806481617310242110621896536979470386984180712741922392700721629028189846956971108125888966371776444691009210728716643329345408515947584910765778494410890157528759549578227379104530051760400491685506789266515373880620590718788312825659419088430284457319229894933998396532653373839660195104894412614046763840190938979075964196299863031345118795589165989563875654370014818566597283862084057404555271327972933922118598376805007239875221808542658603473887090467997352028009893656643992926007640898596775056060938887731357957524933954717780323424820770443573169175547931171036203441340961270554392194417917435019911632630089976421050906820487511149045088219648530404133032290484198990174916211362935042594402576252350927537085063584202053355897767493440540583496186869481112035886389640816080858342461686445262397132400585655046677096345157625028832579270004885140185763221810577540451613613620859728929069892464047706568554942835366728271138620357508719858864875024868289469074849866888685562289723122969084682647651005903469844844524646046929695152392308968779029539074261743620000950042509029722014296879314386404977064576923559755623872789083382498260676155862683658930077901038507211974476940893464901597629741767233689832185800443359330180544195038854874508578330005221259276575026579856823234372663957890576069878868988043250069132219905093913559328414247736627809027186855573481335765966337636009308460964028374939573381632231363864309365620047790272942722747503311440371759573026869931031307061363226739670616137812870146953873400351836997850941351380537845112709030222464499681099140417763670608129780622881788056868856594349013818508312868905462943592736627096801498975352629391368033692550506545326221123223390091261057916052179413395062342899042234568012007580661593571458605484952596445161913390289233342904587765087835954005258119358770998243722567105817872805470370072992462227289321686445597153346588976416272875363655611551892280907530524722159171945665544716457334962976699128273147618816756803354531353080669562139579034665603316621261780788879807975364343869172898121573959202076517561301683599240170522600255122660812964127608573266346727777508322511728928120416593925223155989094950932351803917138545620933396840182348887493051674104259819584168248707936201313895359195390546691308956039516547155873362116324354953587277966435274456647743929992856842926684135947624843749516401030942057982986909935799093784054051039948421090197332118259631328763051020248335098005834656622798431785716846851555584474574953808882983569782865173306274189747060022577849877148522344515480024637029723701929707943366490647326844911101742819259699985927069939203276712801386365711578627505899222206521502405953604743024044078574025752934166319372581399953787874888606443695294148187078642423628005520884917890833032357369062720967230963437226644821880666805456257006207292754903865234961300862285697907944088890256774891729462254493192670563670112077811160087653406254857377107440267294346111691943953459933079383945238324276920034890740741910167153081272475806569505383466311916872524637765502390692175000138190839426044894219656275834465740968921044202816081585955948663900174395812336615269990711292453162451965951496533339713320340360977734493796360001621291905431236739826408243317681874090457157281938843722155899337302450305611990688373605643606058703856763408172414885342408010342407891766260320151749311753422721872043495320639857594435647593884512096458446308576813811160067971411916882124981163969510298556140824278076343318852626728044517478926034559163242038188946708346499831251171782495912890851949383417009325222386418908262086651324577110497775569512512544027474935584729439923150161242287817337651338562858065461802230528703352702172036506088558431025312965129563994872964851706137362397214992797955188030097773741876321879959492745724152687961222268367731706187696160223094540650326357786926033574782831946622541464608729037888110976987881923753382236653578163024395597155351178633415988399854584779567039869303361508085798864825165134128203056109145096461233122437620742219794922928524282075595592220786440623565108980700190622207232973661330318307221098752955349238818331406614692239510200885475971863055963755193666885538204407562221200002646780843706232237091618340212606884438777417064137448706664574832709371451525603588963548182531364218611878606299267642220943812618645780969989900370675163525211748879588723522662707804153666055484176617636700569632269192806915232780562472546481142584182011524163796394485005605744931564672755018610266903917757464798647432732578785778223535933783610154986634283640955319933421673415229080009522328727457238625694600825491307890698412343328047917266628892776556732261759207269108123065936187599293356824522027361932536774386110614980031824960424880224620823569801568609523097818425263094502417907056800399119943002131477186796454670783385245985187950348344768101624794167477548030106903164381372781439188180312052688593890187679299662097287079527169172405974853631059709196735428036743315505117874426138066568325941944651984897904542715924912253027793437071546205633423623768135315811452452654190278443382661341373140268955659071658006775767559055645697443565130685686009870083366478304452686142019756051335193471672985986732040125322576483683613037425452512746430993305851142713237096800004964717721579805191903226504944987261100903835758020636194253826303913709583989331026776100711894356572901602575258601752570378728117123689427751643908670286177283032839785227443829415407776775359009698227713976902985111460046673552780414078073016409061777350013760084957688098106396751786582510356568764030573654722294516616016793459822691402214668418544650579401853984927746202153611428146188997255753275735724712758821786592813980822207624787014076003925608816885254029234790863434207636726343916176573489768405015780413637004212965913570059372122791260173903764405504298407876293997810999225306154113162195412305488215691872441817723233336400755898030267215801704702256206525751141737559532234291790778571040378042814724029801576004988415594318195680930435422983838847376320189363571716909025276695763193151303344387884503436098115164070849066205849698477930415526576885648182700460146118421371965018946866019274069898980250666423198262499590034657451396735176624099610823928175822794405090962651712627288359265156045897470440509131205609799414074436993575340986788838664781357337859167396851902129444112408618723761284662990816031823866054098642119661112161928574619795600530610429883424542906962949185377003088033164014456401838807975931306918967049561628665503878155897317027604482140173197941497963761995670916621852290184983474590587286347019060413031583145166686825836247852826031971123513645090469246995799541482760033472424666195970640225615403994407035546410971605472026066222773683147040400358673928984255226701175482087525406130994117336001039712740846215780675248918570383745562004148172009432197876198613856916757063088172417258407475475662242416349332939938746567386245896433067310858895697656276088393562458312360483282491807158169918276253357182082522291008380260418835998802483885126289389992784252052142584063927077030761269998569329699888372616949335845081946374003157394526699554292218339724535651494174853040638940453927574177508811894832596204853561741572819832941672832299059786718288295373544242551721552918402064646961696962526635973471696333885901912391195202659627639401455137286741019173693854926578367185115327247321773113031256905143043182448069196067992412343089346593431784922842732728742829393582869006218046945576627788824776231606234085089429891259287627708157403553417529591310969653694057087322156186112074684708069872033032678257554823577767773617389972516857294240880712253098583465756937152276830095564874774840469164732121036941010812841493336074641580957354894214366874358935162031653889892259919672208608117409928743590898574534322008491343844084789643316298537227689613555773477280743582160529104786164682477949840001257121044501333733153100171392879665208823250055188724577689431451551048922883457579773275587011084699675033599954231507139646933014304474025624875787343573901069177012213670587670677540757704304544386531079404257250122652087518934200607480294423790278821886634830231089563970478740634203263763449396420081810792693731971751110413644184862425725277772332379836998488612843155508077898489735411904810748704539816255627042659948038766621626287474171123801892706530099568833848730894429526733880475276745994616736171373995392219163034900530934578685300683056472994820939039766361582070851542720830281076867345640865074741034899974680321303144661882867384110565865482135687597027199815353802438992302704479522153359366344033273369427304552155800341823990484099599848143186497202902019921927131489571009667623579400977626144195452807876626668379625775376897273196035041041417372696217037344481088425723007927439007699199666574760631494233883389570350920023958529975876522200399338471185173446971269511574241194774107331836818998529184645681244016081693182379371407639763126875961958356528382416495251452867068931216222945649618679119770780227602396231381779874825094966636997389257528159717254370246338067337035663090394991389551181372680980724817103722447026674383475899682557874980415316844785927411626328469989428556524044266441697961307988764675276540341278246596857586976026605766646979487757848959492857207039715134443967998686045305729698929577452010847186745392567431151318181900826545900078934745856709623596026141392899170541503585264921389738401792193528243001234249179430869666373743069904060153073199447039386278939544044713013643349372606730262466815754868609324351469885905574914017511034936271483247338826660424859972029611589919360712258238999670714434314048583229788929859136894606377015431709036284210993232679458469896642689270162915569768544746200754570843871843032802858439648489643975376468741541664575765350059435079912851648178557997664860826566749284834475493496075418172305577775510081499855573715171515897289566386576380107120519075722619394122611897002017098981304888099952774475779723919176434921730660052994364238976345916597915667762843918271699717823788714546274230352088138018873919596515954579302851360338496464951499276178988521680782706811736051598659297623249774307273279554392025206901322460045301088517460748251594500843767380565635058495072576827480160586259526886176891193171466407407730605580372863216294337355963813119231164883637942164343572909334392836383186405348679200892850455797904416343954467041982944919349584143242593876627094176215627765184116173900600884003697098464283801521387728939943287235464506355358149182956464621006542610940509411120905702631266431810029182166054334085570826211031333560832817840318324804308364072539925422694140855225597387868526322757305903801056815420194802724945335531566511434984206270250954288056552258809194129737567240982049111456731273948652170667945405378507831684791006698440924448489498395222446591351334699218762732421726238149274586643873058268853227741118743009730830901522789429183239335454576612359949853787747485613129494803110430168932071110462178686496190786668164627999509225068784989652935620609062895663199136350300261837005659246912814205985858598956670586901471375176824820831605802406607796975713575840813619065897902247203202942680147368295411288482173473297382715536304569599438117062796235492434936369689053785528727775474308982958631507873327962805471392597278168134726096569259800259808416234939588217363701691878723019036573132770328249886976873678048888685569002126380054528592194836511952311240843872360558322147258742458668209293728975571470648168186777459377851818430786992798029034026876127097995286155681978805242307620782299279359977861329432457177477151280925663122841906131217317519760737781499495233363264950817258119352638557944762812020692780671445836793073377963519491894297974064568798886442619685287670181147147530496039654690596645297011207275010221635443389498760060615423349044858429249640577776259531578854616212490651879398352263274518543571648963672036994189392897977342722970760438756579532242121181008519225596789914041196573688776194917263801355474766964454323521047875264232708580907706799215151985881682689794815365098140188653232136890070963669256467615063726179687662131905001327632980612849740847862983397933306570600971373466981660752610831452138011000526730809045240067151763268748885851134413181250482741214417924814476673046691468166860399458810870579847149909070635656152600657189916803308109420544177436624834196261365918595198227774628566501070224359419096468389614209862850883667328903978633214549371474370894847509385835121469922530645074735343828554664591926927879593434957952517071374129470554071115879298992530007910853204784616389103111252303307596725712030864083938554026459935694133550732876879796912799746601709139925446432324275533588181387784642171270477102863339771272567961992726821144081591013720015362464650428434532889294425263193885512086781877164348884282918864717136976106361080230886579912917114076902068147454211979642071932390674231336599435628593982675450592366625416274736480346349842169984859361679711468941266576894746885994272895731234924783564746831378085645888000341907044183011791712912596376454755487263793813178972004757824002175124953734909847508011904319551474743585124477102887209829068438908302745463320951839956435811531902001467980867534782912395134292463038001817248759346372209021330388514894372952791989797344106775141969673372138250023577935087712265798203537324558259778212156846773343625554185884964149599030710988232498999249242533946293058536205109230495988297484637401451241565022079909300040376926749875701639085977364239425808304170452722092258016619626306812534444288464855362281504115664276376080003455890013386399237311187594888050063497757667281247919095279704556011719461893127542098138213062413107282100459007616091102267560235462090709476870094269140842868078875322399812330786570272971681081364286949417070178763549299916809319855016819120830339512012118152222141007125245767617887444980124522727056307436178231544926904411170000046675026008041488048308495559574841519865044498883366678598717522923817980941638208125157007935563891326127308431936227748126570125724811919043185569459968831953800471779978884193254237546328884642101652139388493083050783097579275438013137114972006027482818928694254803217612715663851322653461062488536066348476859487312430614843280871660570950820934985587844207200497864274750226614709106643320680587206737572846254089952910280300731981998164711194629875717213818357786856688153166857375504694426450516820948663248508415733243567089390484602585925035884730161920763773027668319063770552909453471893688532460232837341007193532370709525336264210325843360597696686998055426002187478761357015612085627084023088208243219620692653873809855263129456347346416848428820758681382597271661970914325703524033002955173476469768651781300073376076792412620066466907796086394935658077368010660923032318432909927851893689888356911730553604036252041371656927706899420826253696184905861022646104887870252304936082330696946882217711070471107467354451135809351343063594560075679631181890879075608774005455587950773538171796972961523333846399951127896100135727074407728654289952601459227631626990466375164293161463139620050052969968809273745965572040912013615734972123913547491333445370005939647223319856791698903353006816430589768077255084736131131429760262038472748641381600953206556334348828075130058951432585660661507253122381054831225369823629275541792006063853880035582493583197483371237809108998372734499781802702309810012958908945773262209323297488435782849126625608639525665524177735456312627583007566941445985597360253997828137427306887399602875172691956412401260741128111839071468847125703339937675984169903595519138280095635363895721963648178203600207481405755979985836502251855106164344503529194838267369931496528038020560295874097270322058243372229910658426805796170469908508230198669668232449808647289728956111943999263296030527238515141886852650436874832561635797925847308158818319576038506596282791120666292168148851769043281419184163546342898723199561023483033877499317462098015027886061495376106009232035500758694013882519224170093805695005048327019852677279661106450448912524713413883537208755733607690534684199800592279418002545868254103666300339784231808439699315548470953846116167100481382054593248106632836426234919683273138126604027319220438969777521239287283185895368668016167949450296471215701240874126648770624530597457214871880682707908439767828055901370990174490131743604159985582480155793168050251989866793295641615936501414695096346735353137868755162325589649509766038863781091342674460914870640454401001493215277253001882609782357359241176104029639975321565162461988776878093919961822913634812743671904002272132309645361709128826630208361332092573821951323467106387330938930885906956551930338428050266267057890893967809544125899846821006051538786114356979289343052033030122616428152498323569368859732498907274765519788252244660318861860316632952719240247147681749404459591092106665857989548222528394266215075004089811910092711726875575498434591756040609022735962304672669571980774234517895766497877147034961085284383534668019505743529221911342926528812317415994786803276969708838598773524361857400499375009737432453249060778716376581536561526524016286821635432246960334900032134466240746830083906751197426598877400989536764871925793154956986702113777398410634245501609343148778775099525126950593806277423735119727583361058773629308137689575057354128324234117797514232223030476359184489848273132637531931205346369876448661213829324660801764690687634385086976698264573276626052934850269960775686900269773338553684691777275064318109522571012789645376189739234279795626788077680256230941584692690735621294338559734490850523280062134745983105285368337281445658974472726956616805042341034037450051608193539484058177274125713294973805797502629739629966866021278219500983003104017247730147178640595594545001737884657009221950565029414698625182084103736985720992196254498403845885134859930621776600337105863999747087158007316266200872436186946708633195013691381859245679732370395283358132399687177102024758251136431491911558790088872237978876631343327192349634762505047629244191458155805250317600686427249545079156676568169124506460808075584060821941290387871038228354659460516406031295180617048762158943295806857184859033592235611136705885560480397973253118198644995879507898713488453917867597715997067233190206204277585206516206176480025436595181998362120907604429252861533578977536335582875877428925748756640506776503786223085694432992529608857689071911025374134275967858678683039688483638173462121669914355943514383294576621405346979441093454880282459342943459450458647998693494221548344913018782658194743843498807497875607068358665265537252652732499213515068247825869970151012195323398648213738720639670118189018934892921147606515290960322654254267866554650741789939495861982974437286308022289951937353343949196162949066163057611814044432964281730381405044295962521454060786731676314069092797852066385961348842594172903194214270732952372116405310407176241934054281861411276302794977249972093166883626064741630093939365097291508866591352238567473272254821417375708336970129139577048903507575879669269946346795068955052441067992434852051729634167985545717730563564642788810626520509821567009679363796954737723744767901636425586551445061870381197876582504692293240452180862403037150144184085007232797293775970985491427948457240390922700479047165203657835033156281737281124940091496776731696316589992593288889504129211324251701238942186552366042721950905724184866276961735571159213639278784542570499003127233858542604305290707673576094046015016629227546990441338784943952777969663870179095992597952812676897461651799078935386853707788431971800078928290330734599595860923327321329770276320430551122876555879935687770655028925810059262467097169031335564662173649804160212821869255872260487203234085104769203081344246881341990031771015627143408846447945861250270849923132993903634816139898712437498733238676349831572081973127906684572667574404288619502926840956541615814751101741432081270092473396025805902342680438174669954692017152932912974520594642037778983129555441802630724754174635401274330184612420952421792449653888295231576010052674237768160760855907864163378722176519395540472033531784064548126676643693828879714708461730062108564360325060776150113702841715852178494476567064868793757092616604341304971772767170347568847994291090496899076828396334602354786569106188422190605661918575680060715759943112469551234238834765819415436939573868517622303814987462190219527272200456452050605794929691390828344221244003275395134058918320352285710939589709261057481777827473295797399292464654958515949692046665978045186234859993757761179259774067611651114716517559995189465658514963978230468656579117921535725720144906550337136526447009033464034254020950351691844274408644771193248621914049358388396480765209715009662816555350914555643754896012900838758838825180501837011882209671258618760656146889342347647696891004417832398477003363998870941948450150056112420850694748568842019652185085968346721527037504644459675167572073533346278353028785673122806379760372124377721693623700599953755736028515027101921956548587616720576793257012753705707838857026706513980781217733603421081398529214304549411379691518790162391331067277034250312487395820165333738142139556148912765076522968242183922050895162620399961784194160175224000678905568303753272867723034577064848342793276034394115979392549131970868276722751120507571335789046025702817926462858840277250949459184106065568786212288453476517631500654130835344997700186884292931557635245760280756323149530041689216795412166374405232144114585285496772440641424111952501698035757117987251488162273173086153337300077518221106623550752310602307617172134500406341661086585076929633308274046772680956629312192730029336391505711787521147396341891246745479706700074054861022167055631947840044298394299378038496510901362430959059779411471643115465674253477561203694466835301659039804590594848686022545733651582673096159753111499243406748788095868895478647061661687792450987151532552418059181310529113836049229682772284849864101275593643074181371581926130601322779026252269870867599997722357836973622135862687027120651887321487301123963774809736508189221436251025885106039197026588905455346320592234202493939061701378085873355738509361130123745575780509380279903826242542260541721438920927221463129854958692452349190928122976064408473033300807766553217990773276182846006412544416452046645933417486287718757806792395301636927387474465684704919148767666674497401660611752598110646569199904650615765324267901945784253364575548401558903354941925895931110482860801841979597064093005937202858078314444608175244070446833011634406406809024848339398726240641376721367233842056803381004853490594100103565623900199973984043051529729729844571014329485468458124820279807549798012426293333775394365053975030068201837066944115888855427451127018125093229893637281298331983286399465993226213356018038565669955543698611157384279493534844132505545293372726149231663365135259512236062426899276413172553055519869294478497942631319088119639567745602203169101717080276822694135346408458443302901010922340231493527770860424589677693675328670950130106881939033567531956522251289623269121030230111570644278778015232866344343929843240409471365196181195667514846424166269182158614506399034711413353413053815670377571707915734419747295413895259621402987858976940341358881657081357985661615699620924434205817114542995525452503571262322294750546176819370235322425696493355662369528093177888398039516150547676681791733833099863360763970291881356562740428101029286263401915379155940804775400844598744585189632064979975341515797491389162773632044366585539288324584515523303465771694124219832385262344186451839030468732061372694435863551627248929761503884664093689055631248447276641301808781183560024241867168389744984756327300158586436873719205333170164397574800701741668114384056691285232048668776539041487183873503181290020728096309716562792493800539368862762065153609032775088301690738069639037640550439572045062664293489142606198142663652007717591405336670350660491534633657764273046938118340194634243864246195852911753652703747675455061418046417986218209499424719184176459937803463114589845900462149273209798357707764192271638851523597802446490603425274390973525746486635478319339764456414355732380043830591753324867533065894773180279595436975172333900190465019084269609940825036171801322212816476255360672670375577706016474865382235556237756569334379190452153765126426124544390524200661758052557573738396695003758044115758187347615620947088274900036761511773609940849905985310875645600617049776802329546460837237431526683049887164493589983347605918653192357330747431522784835937781644383804868603719429783219654791934855080231858064822831877846624142381486150507985929162496503117871776101899264997825197430274972620260790813591830137722042412965171999845561142915766860418669404886069339096279265829087387636960853157417008571373104432558531566928552546484239905658465577485152097984691333484036702610163430588267300780719583836321255087105958965241165687103274326434224460894413923593174522598026400130479375520867822259427362425072060267735898515353452783672302564186116682247705414716884400586551013802125227142274389844567391816596295067616345610407093231808341126329479124571056525154850074124214878602803510697874062191669044557893182692983414863068336640722535705767333937235040408219200181357126485316591569588413381809555313931867490910068639240800726289326047342717746766336190623604240007010278454632334208264836386710269943742972487598716730543745424019363526550832786700692447845004698432274842709318728566313792523907416602558912944806263237759186131362220329215680199113658586117731840643970622068171579581870159420316949254443916687867971697414590690334933574872259275806374169233047409846356839948084201159940774999322828125274169944729762683044451890109636365856153961532888137092267104928435652527024729605139287554030545881224855544267749418787061985353211557848247919449703612706627111826037846401720403292790842339178464355070685803417050616558850302559405017282870373413082786638251573832883737872477862961636063654849311267150360537527569321290173486299753167552510111827537774988846291389062118169308306927431676918944034107158276338697885868925370943605540268120749177583270541637365383793275165018601565767415918134834931139363252976416172174907391241943396091371422430697839889322567323503265253219449320093599129546817285034387212289661456165973427021864254962549367275152699075379468475964585728738871230997391188654679035862908534769488084358805746221732614081910526821684628292072029651029317360003348120960151152850123753398773746437035258851999840320478148694699579104126105383769666016547395722109258071294734966616714274647931553510755196491129179312618284466744737702216222144421900464244764581494701302106731022984660004960608498955878186549262906405108538338303297544218654437818556254248068287103784213663577586943048037312129059483024283714764652507178203977923866901440607322051158664197302634928512809259940999766893061583952802161044422345173213335969040010189268653633067329257556335099894543299752022946211865007118041947193485576463439232114721948387446858570514434406836155908760044669356969089815273038044014119036889975290092431077158497084655551673639177569406991549080038865302764261555898867541194686336721057846804508439709800367785465784831358542645437540688639876152140806157302176561707452288435487137785783025631944593107203484947346312653856272726763018935981522006678461500782847704470890453378435665150345929406381886125747480475353809457694740374798403919055619443868782054952535290987505619472337018004031864908143724878587969194845845493398733539577535869823889800738895479731009451013841994434260419691283695448047800448759802635145046830341537822874765933672592355834662721757285344427043536688147316866407054784279025721404032314744444446112572076004184906204143283043382580942942087439235263766645777575322686713280050492450829441469606988377768391277584096338498270529245878813491621661282896040037735003310864569775670903192875153414414314390590686570195099902995193643463989870151793302077316204307358981307656991830806764274342333104391853848217561949689078436808611887685014434150212647912331920807120673277538548951451095440415187838755059077721262931093546995946777721101679153843260610430142109126393868600638817850709407081654736583954897899549497574254541649823278811119130015496232879719336662004022803790343258932721129732396631054221053364386900837307924216598100745338621670960691467332233268805968052265174318067598810375217145973519170614803090374809017045170066015876551497607385103697889430047354031579522773196848154133618443139452657866307936461331673111854125707729393068202335805063437130327337067672428625087951751676156424080820520627565296931775253397304430260673172192316922003784006474619261506735564878947469967167914868824864435259214661548231163463555062344368381379838088130684993046245840288112419476987291596060355169300888036005938410747787743530082743161657533968386969280219878985822190974259682675169762902081991801756367596061433110525457286316564315796785480028817613722987292442174792639952063780946398033162493463784742169921713543837803968224589280203102032674980947173762336324018530139531366723761796063164972818379348834333594832245917082020453310260132656509808436776768450729628348041007357592340370931449914415329540736280769131024807981858120223190425700466769710208367856939007024724592512398678792222787987819879163304489031930166301608439629467000551988556603021673755208621654214419998073178092216198361302475468826222151698554366247536413134097076136787599861020790577871293037617686856952415309083833152215967776989354485834023516000365131722634484943608015140243217118525817364619105755690541576344835802788784688973888758117405691712965568040438334144757113320259158206066839396467571562390858678013276205516356368670179627797651874890575678478607309966170199513965758168241070848141282394704783015682735971524972138027053735973126027483511632931469408427636678198279040537791469579050542185255101694071714603660608957935089072007911503996837767959903726168402567386522906606417215220190220229866270918056845477522858146421975860521863822514596817426069170784144633948672622186767765503008362987927412431972277655309618755849661506135846618176527045021026733546900133307988351287348272297459983231011950502344398577840704142584337337898279762446735392244051346951565925842720767775969862027589571220661311240514201021318486779558473356644095451538391539559064621306596668616165324823717901618648088345783600071816434264438978384757150214383930250167897793644483025319791818811012102358293594676986928083773667840533789940093149661434558842391223666342786608004306652359752741326090784260208496273826208461701590862779125619980312869904375666781744968935470004320334094773903692748402439733559605119916251311528282710355938799822561592146028029407684069113565380203635504569536542048555689149340668474549213365608117587150793700703489039105727058485197362495437864242318312381955316574841555470918321886136556505206206965200172280004713526940063964812200210120763091409448549297400444817727606528314288346576301447584998924114119310536874132230598332858241852170350431531869844041343307894519322383417166243552605588406973779156130986109819852524003923326008929387271517753230088591275950390229331270291480037724374962147227815203873256735435531946768287004939430506071111798320595269170146078741684094005530058743343206549183552685133715023160778764826438937674954500615707966710689043429812421200013699436415706124801371715467417123178621626425042576552865443576859295576152360515292208535545713859882228459337110295089293966593218716789622698525264866420479057864195999712124382114721976988196239456922322213887561072068224059023974086123116619359483262389147103133385152485651049220875846491844696961535951341636763355141431145222604078926132726586955589873416169919582330199984729890581764239943103634937920693291987784448590361499525193719697265165623755753940751101837532889140881238389487013970737400016512400352933242868912261068774283857098145917905430236744263656550500059832463885241080814296625912505954971560127810919089080200578589307467469960040435721822711949542262545163335526539089697160289294225202607162489599567305957545833617360493643444060611135254396107841312885331715334417082781194097995002663179494954284144425923990706390436882844582106972283928106681025910971110680066386186224256237532874034888250577929742421825198920341740913108562285051735719655136699766474482441149945514900768592739847442067209166814121153284001551948049378172351537341423667075427379595585458740330283469771119557860160149137264504510865868954840076677407566188162482013855351758617506453902761414658825580783336261422819672039709737697927737880085253013876252863267302517527816012754571511028384013486269458604727048508636586668085333803224563473977076885907976341821586924671921053846576218606885817347926102620290593219320166030119867794856079114790595034298133189067275871887417374656843851084136848291297587224514541216087460972695727991237240782626623342819819350994722910405993491450248216861461649103244962170441821291625468570857340357405878954482994879228847324968860152715014258477398899255781059109318311499466042550284022013802759963733489051445688876979063875842859444170914784043405284645714808648491082151540468620844918429631064527587181995252233284343021049043417941077822434339131301588620166328409432898427625683228157194235738533960008692126209458490892684748311313183000277202652572544691596799563816867963092646584400723294621965612199394419327047925037753153850170887359910921946825780215591258564006178634485404979814641377337826977494132124718189664994433134678413543521874649732714114473740847069744539235671359049243865628058459992936015055339091135799989072701914496348828529842923182334548983458520383698822986727903750149484934336410001642904724279714355650098021651554671031592987552521747878199250813023679273380853616253142635906054790101738296882096771153075130924328121287206942113867642111014917684819328106227967048019752091121384900257921792570776486509009903643834015200942920744676335388680698575277808631172746375723399154611756777425189815837539599123037400413678875977608900231498603037487789406789775294352361390874751598852244492588189259596876713666399522806818555363882509703970415393071792513026333762185570503557352355800402317726039911523647290212775803185675003048091878914352595538532019592276227017128600404525492596222153669973458935798690044589589566405208311917033825802361103684112180581247374772304336353648757063954873346734939063597379060783274415399138586928257484601771164888754232758738937012070315393716859657481528038680002524917603438646592571391735046427289329537938937685729594760246082650846593720593330660399002574070147664074116959079700654840285295684703497882803923807072221558862338853770072945349028349756658924708265683205689230516073968743178736567629352505309093984773036732730297635727667578990480245367332462945154899978998961151242932794917822922984563852867337456845007399486592203136507278381909659626360490174661656422193045192170197851887061676242874068966482355725757074521852402614375369662781179561645767843409517714960323463786741570261336507225034843152475103234685622054477968253869341731014223798644524520410200111612404139542433341124883270729798153884161812307957119834371698031340539452603797186363635865775786103728137829628516553437820096754344873296350915039544746513983904344941570529915272429904463276849367944695456827987681056186754961174511498570254615058510357285811025155389492609372286672576892956469246346197831236844432666770435222093718099858976474865458203526640328380091465572277967032023604161378655083687408106237187889899573016876188705463219683601554370030022324624610516187139043756690336021899575187666902803708984758275124957136465557539984011323819097801537101639597002053869140956947345356825355630552245242621971818570644408863680079781491582746915463648459970579336989715043511136039811373935430275815396778735850206773376610513293303809119751621082137117066522831875193181634103519397289633451431649640756534044273632795188607437672806692318393372564133805943175275693802703412234677750587373231739573682582387309561675459392676852514284032875080105530309210050165288707533841681095581804034953319294888117160054119805648062835396101054359189897892171451154698944913465001420323576150571674870603284650980550521052970566869746628623041600928870063464920057360067477805717990526942362317538208111691369620847072826049964882122428373804878992475308739145576243415321044432359587128566780942162269578860690280887015297819484720970513758663960341492169503354222556309921602637711768533862450064647878892217466710013580277878720063820906715714443242601449631541917397658482351425291464243003159557370309769686853815662852120753440649741027415248824576706558745436027221789825826149426962502102284308822091337045946100727817796580322590116580884491009636800630454189533049341222539509527554426842708783023333525478271626031539291789752654886245070309672049270360747210493130571994531171230089445769540807451697962743453188620170901219336596493793924130562550499782156704126230822982801573815396116078913280615596753873894796088164398391809977260669190531277495435722302943099682005971235483796779387228610666776685849137568940747378830901069213785994128390307514841855123594419563279492134285055651292256654019443097098949285864830924683027094584324808485732396429955989471829029616667298264398380543116284061016757314554087835033986627441291171128714860500220907409853978069335962735377385392190169575030716694439804485664125317951842807874906889287088145952281894559781191201333538252337496050395112945460693303539930050522810712456060178452934895685062009822076687754435198740730164835878854709616856208351067019224662807994269897985754915960426110344151487352382071474450742886767115121192644865536050393534189065496460333007614766722336365031264470411525211288487727044978362594070311962330051466796093206398448484969969596772754938482853438879699011515874940084794544068344842805692042394569892206083731187680395444869083227958491774927158451781361890206977377077084834151085745792460174648034062024686583796907031578321095435809319845890073014823754978405680555013920115038007952426850429312569687722793100231183548738358098039543246671097479242687875380918642624570260990164562453412965601062011473732395761702465319594543411604335156948840383142750596410665034930079448556560214832390563501729007886365877010379316452626732072541438774805971900932158952644169964451899498130554885731434320322822145677174674231259943549722304370223563459346865144451411116453945494878466821204316862107074575327841058286639552647316323931452917043732519091353645988540058605064697211900745256451259558121489978358523169880565621764815524360966932529726879719729257454612670619057351867625932535972594174532858852151905952343065637890912916411992515972808858711163157518782812118798811158924905698731998758790722639324278306331599139475839643399607118990994594803360078079505594711726607477355180812682487567766473343597998798803648543528049209827986177474269194427081896181395057105937319732510047960286988675522770658806353160155097802552926086427480853844021817459579648378418621302951098200037736701813372441549759704907674500071810142490558569260585700723721291660145552201933580706887474569295098454718336675051850380730330796866305403379271452844868847282998114704796652243290390738833341663369523934359098370050464242330453280598265002449402288363786960280528351559624402383732873595486753919800702060443874598230928482298888840013850755547741238674617600893992053500211184082405581260769927211091331547677315841312503464872394082104209810714702902585635202594324277601040075485372330833714888088260238772419575456025256596084084225360680427308481156293379460116010439244025725863810725532700242597921078578453109854208750767567104891639709416432585440767936384673741332677113707779284205324906791561990892672908249653767570815584969944467852373642785834105300763799066506940395068628440295697245595166870181108654853681364633281908497577324993056026945334780366313477573693704329707630962138864650066234886044190340737851087350084378214075927546434361611990030201987058950780553922298069185545234392310545312901989625892747874785362736489954799550297877360419945872094868243298383881763177031224647340553417130357284998824084564768402900303081896183282141790310368394153624903625927805306617948635796531493063269157047447564132059257297045477522997075179107976279971466039031871024964497445741939874907603610977463190335032738262226517517324074897355050381638140751907323297108278682128381318774989056784564968586513420574883133672882212591361205052103381301915796909206468104460185926677740628325671979097594291633406451480148548836265395545921956809002994893212379084085823869882904523710170442443231236807607488362535709614922291008855259395831142328670204922849528888839588170112785962340705342664144597350396261210803136793218917627676478506998138171329414720651018629449197378066518032687724469926979235893196954831451678512383657627588862556859130270099800811738152686117471157649112751353216648488333802516286724824755917183497267767017440777059591247317361860624144703854365595387997106029855054845699177202468306356238555127345512242429226462427863979552816728619737211400249511272372586972850683704714113559714496065629361164850706383687312236981761729520739176752859931045633988749453502492336239854296846278190393460902195331117726342249357351889473959061942662440984434786838722583856106029533229147979843573614459640175929278944278775092324315155857326432322899195309315502805238628390130976158583757608311192487904224227413872372733352323725412815141013613005406513637900936281801419894457822124720963490868068566116481067456564555632348685382666902244135539893171541818897283769448106540951484382422613474297341575393242193117510460273515905527585489124615912656625897425717239835186726919089343880135612069373416648087965624073418291871201595267305013098584612351903862676442159431852496327387048978850100824625864180210046141241441092320751621816454204640513208586066010250612400459513122092977505221958357470967136198804391573328904859882465073160905254721939510287611057032298740044133003190032639424116760676485324175343715771541148796260028633898339058881744904974143127400848457673089974231276039896074224606813907228113126026126033417754325301979649887447145723201656475505435599254931204536045361779631287261873650482359785188572291109568855494405390765571243063108146000187728034122288144884312522615788777731841370493480585733640386275139303532186185389130561290154692024788212509531746746827044081287722930340635200733620285785973976652233575157413075783263860809207126009202716021811810042870317936284866202089819402968047341041959162964251955429875936880919576127817738959256048481551475662807414308654003927413943548381313697161837318109918663552448594466234613181455467651210576808088050089811978567411997860524396395786816597012483876547438214489598231115656196459002596000062473725648739314176007329305669814875852360954996089360347535815256570693222586045048195512146746270746720312692418123132603065536448942967821909848233502067730244670954824842937925605626878163682023219511630775579645169655509816378822447964401901744975866414597925863968449319143838476108335226317104899092217303149914354933174970721665794059844547815107313166945795204159800370515952217221815563673410606475988766168779315885117951821370349622493271423481849765550561617157624345559289538309785728133326438612056329189736609460587341811664150403507951806363697936048082218945278819271189274652240238186126253078604647246066971841845188245623936834839986433962277118032996837339288947119170830153364067620509079594413025340285961329412712226243540995296324128754071478290169054251733307367554267989674884047191944184093043222799251686356722372183397777056841330512993322888563157475095901605836521106459750296216372262593768803572321869110229285702136250271936021210076472596338020884968344330260302056267420881053605979267987986324743764773700977981046213536985068553195579518463516801310736643369279303322236440271087842538715677363922304710174250050325629527260373833786106515596623228911573767738565822809046948276709539327310364161930478998322308855122738984760968409876756482142192669280053752497599181734663316312863785680320991990907905622970214810937032877097268837839334046435251316825693610083286397796238043901695837515973024066080649305388489030946945184142234671683185126097403051195592211618301772711397649093720236526510723557135364149228800899050034623480339688731470429721628861222022267965352094805910865833750310976875780262167340883747357439269287574176293986212039567686731433043554947679515406962023706402964335670859376906457423698959157714931479949196262903724651929477969584334943929080281077343781244937817343129910172967484669896647553633292092428557928806668362576866404702842098966866240235046374980272909690962663215627303552731071965077141410051985461187522297816356645389518205375018671175651526008881285046514749077152528469161184130658969889372756071201285940349503146650468309809911466553799088047398795449703594933913144577228404816197918180898829056776381583496860093597962626148195337694405060013103611990545786465811256068974631350962059078653823677789256490869187887281564123008375141374965424957165768728051277024996192782169376290574427689860933440324405065068558606384520788304461194350946558988553309675455400027014298659778409274926393637457416301836815883769272959132561501200191368757425263067197448731203394590007368298816309009302533558901611315982730848053402791167303082046107420237145684662896481313823390722370436200743475291015000874857877413840708985978569967257991485577482208008286890441051286250341296307928639269182809131101794496640992265612011934849464439130600945569135165072746198969840245831589424747067549492143535875355023728551427713498153823710809119813447494407205174466499533578366206862082764650886302754892198682775096333135550631392312223667778725778466464337175345801293362649103914532367529955740006221711611249841274707578531785352711435141918877420243416302431043273173601679992765105563467623336316934775781109088508477087308271204206614909114400324552999361058193113961403397314769444428798847724360452661444532221771431623972253404981069961149610367689120799125119103901019929976820195702476111142593539976742692313835330368244668782696149311539046333160923639805083593669647342824360598966139850316417765406427801858345702385433839920619905283698314054488083540751179976832404619477081839429668797365607101593815480610598857974148880974845276998071466957007163148171373965914286848649884736930260300834167018625654388038206486173323912796371381335048240160043613645381202802459184492686774385659793592868406289218555384880437002095562777184399337809386120527954245620670559100164672131610030300904919930108708469861615807587888081976587134211554271835731156256042779154196307666692442050962232687410431003037094205606237265995915118066569422411055239436511614834260308462518987191016500863192679064157980788042023774913402807245443630086843198185601242372269136413925548218327872624998488981410437010177430002961091873602471896417935447382618176839394469662089960405792457878635483845746597442496784553406956031727678580054526816932287059229650616007280512058086620075878193536653980927317933275781220350323035893413787445611531675108250708175277917489511435310917844339899272072426075125680305581877538163867290221101629352005816106883180255210498236376286411062592867563137353034816469328328972848959012994345048645318996071119823088748524309166245300328666857207168645126705612279303125203162725558735084948398536711012020782808973413023920853751593041349727486507809864926502263629122351579403681044621625755695971359845645026579431055625621986527695598966905975004306046180227171021699014745572054543002230441861349106908234131829920198976014147779716958644762955890147744720410537685983528166944536008843716172891851993199278205584659873363005540143847228830732260603163935013023017952611192268521188186567591028357399565594789470683324797763227977118417107043675013577700980853889486057243886592721998616351592446952283033702060327201848467080471118761132573240598264435071155409695632196838120107198973526420682523893671733155508893760207334945193672478674041218060446350749884666133198606433304683081082910797020929759057845290694136005353630572458826959455432929797598953109027067442542163192309739808724713297862143480449205723277555641750170340669090191057637442249743790253733430002881975295746430245093627070787073217951982555722595358759622746525222369716733784879220553286020993708358493698688657946927155356961001717538534211737164160143830841529189095381715135458944281200213501313439275103120788681524417048069938573789309400851232387468736751173742590666560851097726253180665257465885274142060020501944533650576190308022688717449831665047297736276545822285796748931518667203666440949835209964133805223809374655912461638442678262727895257655715759466463812772237144609614799469555315594562868809854436511635115292597273511104733779361166770740577540831697188309681733374689071716052457862727400116307047342606127278275477399739235154172464373727715914405567336781570300750007291061706910973470091703488666522238003050857718654653713198424313064736733133342168234082452180837341335876176322687237298098830679773739607227566915981115671870182522414471346807904510994995286527041697616896620773746113062455381701603336917517770675033546053369090134312366867963516773866116201320562778040898393504246935331112296187289188115506540182967418250564594285559820184352642310672987126348940453025309693212824425868627412362391844816967025847128835270036295476571157744502280276613152167814131735968174041668461390648787349649876820434584352777073713867701731609087982437222548907475553723458197480957710287853014525247384113714939263308645985176508782685742525335769191147702971011874800454465476291607567916795536011817855783822752953569032688773235391678509361035743558444419607461565871996762003823724379386907343464693814875232651574174462212847703483252452307859251010248778197186099332321567343681132707327009867081074176671878620441351794962688127263395034696647423216989350341709523614933909135265693560021264475890606025393368561621964899700067291466086364775404962413861263120063438250248185184284829434999920063121988313899227173252698748356585150225999958500978035272671610963482989347569555195960634564075097607103246885891922903339454021440222557097847997671826597071939613422249098057045824516297745980844122393661737390785471034091383508137647247861367982462663037203165923985547991255026922020070432005967750271202796637560894104182200226275536451726226592335693730353749402651090480164055129250108362280048299445686526902734908955874281254299785837559382640509057887507844640457979300159071609193433286333926340493378383876716965401483047360304764589128421605288457166734073171076388814475520848384733474317798515597158994834377752790927757095100000791548832535489666979707577623991579696796136347649184730239110389024428332275353732504223255433402038483490105398227939733738434199445305206589870727914697820151524384175506669162839954199954841949601382180332695899827728446406855855106904200824620201334078871179417824454381159664972441032779592090938048973174887883055197385825546160816773644733788062250838485051466419847415575347969647314985762158823425881922264333167624730101743426131101738701840081450711419556330376492292913464078716416685588694897068128958997142863324528339725109542503340664180293343725943978245863441938255866051361737243341917922612590690448546429421004442848939119170271193111023915532431581920359108164204131796296666234891447984819116463245974498257118713727190981383452879234461355437998710349794354658822549645055930516759069423835099853088223405635836852605814706733996922390123269935327878725627735391892432783440661146999155537117988878886309900640344037727313900975407658077377483237049662838911927385971838404912994868426708769109923961845800039274012170049446787320034590422833726816262148487131276385677824462329657064118495848497674714712331831678970544555888155137564619184167192472237246726859756220871444606151920664967622938274618060078120440749463019776556442602838905354030626734438136761520159353548284348467220965719994388168894219608327206675402930533887850771510867231556862119826267527463686890839683061684736005035200709962702965518789427195208025907454186744374924323472576778405999660395275273959673906302474346255395221136548113788134212511100531833082388776663227744260410747188189383480150607688865506116296786206146103481100634566717075234326581579654632534244001856418181402020860584571210228022720350975347191496332448866667275517874747241901544297057340849705874884866599812876115491522065755653328678437729377481392181291496079018192187427864636908510630724577415565724107311170523115734142274937900376449361418207779982385990201795617151753809552168382308288913962628233832708820849511381678246337261707754421677090732749666554068785145691133120063202660136961302970958569532042552856385378765833701059860153523118933823970576298979761572323010267815272285399521554602390043364307803630477402020625068466680212283865051171557318424801910323929256296490621127798590398694278318573733769826946612676358516116471363579793748620999345421334568073977031634648562879128957956173377595470638031991404972993805221927773822645232439298275408416772770223065272717385360595123265556904352791804774703874046235724329659861988377195531404064125033767607333707006743198903444165982443375127967508443707918400604245707985050073137517578430286269069324331332646285521186796302195519110703375067067571530164332293054555144414556175413323266057477210292225152257637302119541099456686562725453776259377380667567333851712152138176222441425235311504319463803222187649943197391617672181731612045711797023335805235066527931120627144965015671787699792880229204218380091896264794988226099501522259289162199247258719813909076711140891164445422564821275112672981459191866970168067956243765502150364713957373812151117062134113823956864876593698254319282598412042546904042706849495900017159323442092824129308665609579499330666579840603051028788554315221289882354879010995698053083429123631519290130452683747312325500824401110521629214998179258660861709215824527136298380588238915232749407900332860028788558816179355658699461256394858356666362156828672278969852704090689166776076147320350912269502754622605984021481686696081347239433311548412337738074233667706428989230978908903074595772655508727018263433460143650607807384373770060620736973878147431499982218421892142001658597899685964301120449631573430063690427861543084725505655010003227563945734534988518715693590667028236903343937948994513371896054937541324071595430670947428542731605858414851344535148431966882714089329611168079385540461538746432162295196778334389728408566937138226108796049966784265605823461694441338244093762962876790825033083088423448242402855313044770898301851161434409542867020162675763658962575373169775467475773238315967710328987289437784684564379169779491837037200856698875287712383155466066289332584587164082466671560198668011818713871464801982366560050295853344250057989060064992654831661447076284997891278204945102044170983045395482484142091603009098897721833738979179204680586288814022079517767829337944907022781928686845361427624473968251979895913824822635513706192665422480872468831879480637135033739798881315549822105469686472522392510703499564609804918121152927244369398629513962683474450012765990612193984581103933018657842418503170502657733215132696569675723635235312802940438841162720302367328836087113983098316540502485183683272136218546683553179985863269667582828191562265979505729477535702771502517913211211779898781099699487704061066453701756949848531759566944428991808477978239244559261453181739003467018571815680345903343730420318972940248283303966671673004360225222460863481474506370242050097458238051121310187905194411199624830036147331707555308614257497474370986642515175095402287821695064842833973761917160941390411310272750318834434404179709205530719797100476536667605939488325802856929888296819272784331684743491133076607418439455988470150760694909159314040643071315946234657602639431386753344923614065081884429978030074189732372051756111318216204887108845467375550568981319670043166128634244682287224411796212066721601305583782462208206700687809400814413933480245298778825904566526342135342971099675561148238079596844755886041695700250741451693488744628287064537095727378748090924575754040944283151260392426780703322546791809784283727949372503836349501158682377940229088295788511640354911056468586107446436759945138445578915105611733257476676928805023920819540919931069399941020677866377625547219095332183303070228528499337761945237293617868043252129960399055397359865082986564503931675139566986293009572225104317039704548515724332347998216848511362612740721045619397777817810268901146958007036045953123978962842287821411477395557743977836805796820249098272554944231553183534584590340713991801898717406538964345885029745348692573748702473349201586745346069888577176850941351861052034564548322153982284576555725683040366342740922511874044711665140265445057640491514742581340922981375942623329359199167037497503044323046338556677214321132189196499168376591067978664105163330434618768988220339306169882561175851846991123528267966654582660537963113228071278841447624385691912038137658873648556361836459157708120872925232098614716474666803418703841258062907891428492198082659909039363508196372271627867109426995437206406389907294460996731347374321881458437078888936227996282563392916377854615175264255444520727729222094303100357660500049796427851963995149195218302385099766989590246781180004301764247902422218858037031581286848435870440783156581627278392852561491571912622046265770472246405266231508832001396774909276037208173696813222223226771340019736442700574739096550605044296058821999330630680420256312094464899109567486164734940333640674850326515200439018653337228292754626882387939033994124396694863339546240318096623194640787989656827425703741202780786315241173639043506343880751675718129323642807383836479457339236062747684870699480753059847928262991123743352310999089059873324299807924228956529029473128231589563582119050425243610547272127672490123529605476615800201002647370035789517146698788762538930962036621552204357842836134787636239827976767863584018730159009897716683809397151211678224744220659510498654198234425481080875772413083458573296412235820173353125016884184203654943335157818458599861909369199722559556422557664070614871098352732368542285950905331278088754697942985046522772522050309694552167794078997242177893540691979708495106879272258302835007284930393979129552802987755890935142888993411751244727910456826587593221582934014144083863589545566443648926802269862905524776114338926670847643881166278712626572005169147745366894566762083924134574799299531281979282012502377999286555843980848388614667640684163408994344026400369099042744772304223063557221317386402788363784819783119484627300156296114292498868482173120755900235974294773008668675184978456765499634850471608729153462896756234576542692936499782746403369655276473280822534917629769129615233684976465643599760988712117019943621280961276806308325095692130834103608934082765284996311438984595965398608095844286183632483337001147508839898778426810341558690190448640305643681340640766429384612381409484906613147353315133653219945120320580421402992968758391855564833199502326900598771048148098467107279386537340064234750451003737939402501735958474029016134555448422778652298816266668948947487502166803434196041297981726558300790896076174807058356799886308488996763721162950899378841997769829711582214137752483308282880416888881365380077982282713879170902445031561845051327968847473125214814255178122368426369573058350380470291393510726103859491264062155757503400064560862071495940579971714438206550611867785667754010420916327340356629905348475144950765623900169347729916571985895692824200737743378548576660717609648428920998702831516352399238721901924723850526877161736917050113712046974256354297612053420985275119533361875490302343409296842143790750559858510421020853330375366971613520399417973962218974946663031528965575495486160025539167212207012353018315429655694725902922913511849073573239804986113050076955788194723934093980492363474794091552003157768840934436121724913055486899790348401602342621485553620730265051390537538754044110874271212888943444031007740957516830621120189100934102074624421554359779195870413284504729688862241268958293305153101084109119568149934651372729473329332747216532605038537067577984519823141877998542480151404748255013452273856256056899406464965267385621271936223971007072254113175709182917864943263070933203232096904198392555893329436184735515773998520972488698583180634667817620633991275540650725663446046427954025295591724991981055880329338043169986323469932709393792314807870506678496147253167456272028357180201405162982496457432090082713976797950373239779610604420367897750646985026121165965493905089884532588786193161338925122760164361716616677730017710804282220329823032842624419793484646427233770656585838925990825193382387651201676365606593280130878510739835392095481886394466210150066096496142332087684125222449797295921963351009217607854582392972356235541620346497892454590031798436904328340101669699958638475774913273834492417116196773747912156264146523194043304224696273863009843522956315497035921947240793240590398897881490744208381811028201120184386949076416111398061993288379305852886643599647590355785836649764667599547002978581225083571826792485836210865364910483654393815809488041744458241790578180124395511627542782248535306109751953481541455103783808885256394224322831346325766428012828116620306621975995167664600422843772423188909779088877313010531439368485332345135303356399862325706562489455588073489755483486646794120766779492118624680436724251443699870416429347593504125968334765612821616245526456789296221576354867399334741142559391803373639733341302410507056698727199081081151065970862178147340599820888046318276241940465466985505820212991846448599820990580743820722101746282718765104552418511036882531882596683135152396922101965058892746266852182982148291115797639685635067073710760142052483305609647468429443078802838022999018872003954444991413139928107751656159995374688595282709898747449533878597764038255342245994796486304935243494986522600661423741052578358154558132146427559338270287000157033181130840216651783359504168771108541756565479769493021793150924201312999053076973623099734026901154601676887221006168663744254637578156611234884576040895643306829617662807812927017382430016717248620309141484301577152316189821785647165638791616138677161674577072489003838745125637554495483516783659813869352609533373148801436102919284949412310135482242624235628578991720914835072235183238045241130923417626100092731712404276067756914159393638342152859459976729501267858326407719266527253891064643852217001749963355281235503487439979172539609844719924259438447379754968251544333958142385317252646020640362015975853753902057569041565564275480126715365444121808367186374697967848942738586250843340338279577935785616305739626272517373805819770565819406467949056289853017360233620692608250231796946476320092148057086151157478638269408429829196218142865500150771627710630314322768187064548428447517393028512397145559849322926264070560096525000842677123432050014727516774707567897726741847921230079063588835145801256470049621860509068011888356815360859662540757826762271472778897919622401675824735253951862269288166869663936597008514606578174250971984424751947652012578745357489955866268335884482596961578289603057673171808256392159314619222559582454677805790233951956994980873283320415678994659334029895500086218508113711202380026157953303672670961309967895615747467846899967056267616777811051216633772778507928553409521860450433463989485582963652574499043444071003829739882530157582887867607947765129334757893318470684619059603001350189749597050378617060827524263437813315913428777842207263674399723396019796528161445528898440002294005445611606489181584750318655306868445284919457240989120601614879473795903917824212930152593351276264419109018875116265227138421692804639465449339154377298125221913462879209593135046172007524652392645035088911291502282826305885818826662925149765682176786582614374984743965643018831235488796597878539865597519777128591882598018706400619451059860501014673345813160253624049109452728774916387068165842511794668061240334072697670620036767255770005962100438214452491126715688070597530890212256169936836693471222908303224278646374268788908194983028555108319728197773079702065111344941237753782573299355124765284296983445078469433453525877307375453533936739570802730796862018799019693304382217811433853289021930939747745264437861225931269605528019758607486986678200107169672847346494486846372074563770400231225756808969166781614722669044955134459898159734956343387887921012935184898804250011152793187382454046469462112895361998705226642873177804197261260042649846172833838358810396778554361732111966824440650693970558931325767334127788516940679712935397123331263698406086943815455344334736180039852384640324346561202164829593650774034557013436632063008303520696602994991411855011089684580349610031016878676254861658633250953017666584726782074332552071645905760045382019178769748322401838369751644986978205640947829961812141194081356517389147459539421392314096212457323186247809359971089692608107303770857551521853914631360825853794467032893676186870206050623118298312280433382130392784243854011929751948560143016646584863836200116010769661250140147840674111687254046521378904028683605007729018675504838350420499945705558323346001686840790935436678379165418972798342273938760611913473769509550532562350025121602879697709367879952317581877403862170717451933488069077491654499302721824582352055712906360027075947576627308917679312372311542972005893419502176383948488674873735232199312686437275630946939357211906987720555729390453846932833891534822725793772030655941869041587601520737893992279235784202207002575372147121834292699095206409419483979237323094316261576480701442243802345572547828082885105065340731558512052054753058947773295364647829143122370585722747589097891105628570969802660975594715321499305666645029571690629993918917742044050316617517248563630741107061145189158340419749888215898841711609156319987083533035508104941031397335870175892054942466121738226213507612822372398382065251317919799737143311405990262295225618372524567278263536309745845909828268531990309880222509463932505442950433691720592556303991853471892220676883676810312584376531837097195663311476714087530683354293686894036133680020328701180357587403710160078765990724646060176128783779497280901421069999675178488562437828345679004111127376616052215237081507771114228742598855447608408404338490900473153803530528134878042616383701802386324595473927411963584624088700836250420657004216719183491352605492577436103182459567808053306059548698165939173179585304568246776964261054820922152629448833373325241322366921455553696075530950167315260680089772786272601817035786537734567460159044018043416358063279845601966111342432038460826616543610937681911780919167129231909352842290191618066754048036536258751909245229804409467434919859398314958647643052657334071513049107508441883626799884835299758488092114428121742748769606052800123341327152717857033801805473357855019884267123498427256876900629684986184370936071660918982213709559993628902544812685436330107578336965372078056777429686329966096000417605453128649023330354930946323513662187041601139207304894979698877955489338172399933663218021362271139231837668928435144103216786608835434963733613336161558282744177080955970368661261615167216663433751809504360945178466580671561902172229851870940360822547093826254036976410318770241040470357664277261309236208166209050869380329840324629999849894480439422813070963153754609236869038819837326407084405430213247417776971508577154212434843628216192455783308837856500001248608521482131303512715274637871655312497593181563888090553391751857104151930672571979444308628777222535929788800492891188662655050199554774550879146644472361960464422724144889982830356727844474136168760386950667852924540639564790850777398599940373146876672624181398296888931231884589741380671023399717078765017736354327040949430816166962344938841658180666946817117936662941254223871204718406875614064538573936241368714025204507045582869149015745747421057804985030238306728457169806437729323636373743258521530286477290769979603994289465461814999025591470724912206035115531673546748530356978390749710310739151228985459102261347943357030299466079242584205822662373125197879589317836721853409736959785426883548679941320225293625190062976177801728430183657947260762736180243800305574832215825222191350712686619922252877731229156192726444265536361453209266949816154104492558216142326445502178650808873421532475301528216529971889415250053048207090129030599012111800589982086932094327173977799978218737168544254669815710331790834466925490571192275054551759398777000498254694863673769423851864949165497666973119570535965262274587269905587263329502741700065784025028166502603349849376038813456331396860744091572115954240961637371525420103328817123294166968361995417624689562128091401581293643758282975592083833339769260684786679983074317329438694157271696273485822950695712453583985073540643696684444149108618971109446605415535511955243476173500494294138124304813553792843622458936797186896341387152837609842884640633989074251706754803855393697038862918918962070148338435118474874715174439251769648874136765859616719936100780747974218002484687946122056530733012119795171720798871695833659360953014492942562014238668871752959747019129230503542099626039958235846363646320899739821891383343853662567632844933428498862457474928842965008607540421475100598307985607681242534995707699718378826273551613609367627954486439593330249444507221179787436645180255926433986993244997322173931664424259850936690983702794104617698026816325891287499990379297874655964360006269513548241565540152416238421403539113753603529331524019235269222952881441781094964136167410080523914107427604899025336635003878267218144796470532267354626518901443086667616869443353368089442363106259347549308578416759157222870409596226118404766134353478087597000548711397159560241162616326502102030933265547399458616284764653728411704237704955597779339724301012329324109270516279925970348519397095119684810265223069474454123814785780350210312315290083309492627679636690910201116855561467280194764752547891766120400583380195057123577797880549626634590042507083637979034371788701540292344309689910182082279739517984975919230029770435122551085522836132960327456456068291742191710468070276516267347188456232741849593445316499102238215749850456530853407485803400641648187833215876890418565851364806771240998541817807175520193101530352857605569371624000908943249060057479755984217396597173131901044025215238211497864894190445785170200716038656646192646583600697456874404725400033156002665095296330715808896747182658413943355553614669650161109168588790478687857220472040011239637652891932066447359821223625232799530501870575297098567591582627716176058372837697127835705549257484478487708567472125048588104912996236105981456055620188954337357273305145211013946540632687372270137422820895925117043906824023123148775667083946702448707877412310881876701086013193843297729106405972945037714342446070904721850607653463165544519188238482937428798976383249941581253847365548536698743659957580295025298208266315226192785015182528538486503389603379081234483183160977190761213874768261552925463728687248603691640963891881600968978407070928964904542691796911255317026157833892498244973117376819513522520724741493508222364782801082864392236713519513962744923077100897758691682797378088580034545358025991529853649390000779974139628436369958289774424370694644862660967087871137230915797431755453777317670100831208223128824813080454841172237715803491716501586260753898634093246546484870673667629634556888800408036413143469041326845996806112478996438018740737244955305932569068746007207077475893197112684114740750208725173037852732552747382362616860598579206920985376648674497745272970400323479645101371671398768496114452736621242490232303759100112093643016905605275146193727800452184468425420321999303087613472571689368463481802984976777020229970346382544598744172830386089921147295331188431340996383531264084152126463307729412685175028811767345748640479135632534882276153704492750030701552981256370545064293916819862486805396425314541181523978951181504684175796982437794447161509137568440418128353942497295399062187987362335371267658481274965301489954248590768806541514085331057154064302058650151223940966753440954635936509835014251643743820679756518100650738768078624295558417956473991619851424993779077718292187054300338000522725975459803716421170998358789586934321617927617250738786615814684691359594184663354879246372914609497079634424095591440327981171263728780512720795556420167364392882281627752265266071868329136706728752430207732140710621606458958030778445726354607145691506883515320374259111448755054014673040407401486794563774906799730197844698459998648377318213782533322727866252586673923426547185829828857905800101306055101294207495954332798307302929367409344741767188598176627206958754370716301748547076056845016842503265484328145042257466400266449919349903828338875078514877344609001965196694558260237580994634863198793039125915709578475873018572610692685435723104637769670473343982808272850779710009402841198483771597904986570053990522079509924260116096352823249410442662595530341376078431677765258540798112972740350306214831680981474351085009881013168983505881156583554945124455791667725863447504462612151082387007576400198318896961973302423583644648139054613026422393764385635684246834594641692982753985835933710664689315891819769997470282685219351783386794880066717721462171042991832727943575945390401207851419515467528909431966239760211656846924943411025720345786783539617210644767697801779750584789727553193920066892246639123903524957340686989910213250028475718106341615440551620034496413147613030348875997873472302733115627740818943641864124912957751037029702576134193298256519759281529357721380726136157855420610954209249074967922564087397282336721755508975878212056224493710731290528766151680465450186637375498260941836337841376677459684170828881228141250191671945761613874690638670434612802840747826869300014246527156092477913370708696898488411630179088423827755465910063305788255737495304709593890675543600716199250370074490757427655816679751170276613348607733113759864269746536419604740106030667217328371966543627030732808300475230757249228366459092986377283724579441186529444817903958086289788792329368562664810366761793885754719111985707850503014482470190102682236143471081057689631445725093410213063006210355183407679508014453986079459410327004433647840585925694350493220743779561671873726054904225588546799857466313518585256652252505637933218085379246285891234892360914316609339955571884855830448748450844233274275443531659867016377557317913427572321182818725308635118757086858977903636500668280834606645249990549129171690084964238116900708867329326210684372774735021116899740654222452697868596028282651318013585837124922934386158915652242177597028758059916415955711552619485022213683806186876780789941616092009760206928329810648904037719350338349443803741729409600570288858966753511068654830762578515035239754194751086796625502911567959670970704734039660714380961088473183400635072296441840828216768068629038368412512953616618447493576915745952837408721423386512057879169152351419581796816960723751982002476704990321518194034108397762198764951815606562005479471196466615703391286778410789442730335110259913921274521596784267093750118959034968847142272780519988285476879877364337432436011055699849660578318884258980803434027910952831255194625256591175723181588123521218040987375967012901356943229727809859613424661244832682296591984041629405715161952740094259449509813984967980487001621559423634142548306002845162821797864037051631289295475862686859553037060342123670361545029564769527273261321043321401847288851597109619326419724802882835414778165043471975573899732906260293454066405867878723150931150248672326792626529736530108147845752868906016868138854865211487657216241729278947855383567781924108270974861413807604918458903272973582373123991643062655019598499196332166510159668705955390588818604018502403717620764717315185411899800706835164814427843744061584254969995785329239059575383443282689096524538430825301211997371010087058069850018921523165664389335513262448698443339822065949258413722472889416961161380090999855746343099409071191814850775227637197537030555901768358118156332992443831275840922759617054917964454525030658765568209837616141486039016323041023341690493106070707812249060046322906812794184729593813547994807670400364165997233271106848713594117857165089272778268038477567948360151042090349204046505767951760552477295169062868270100799740172706663287765266144092069169047604541370270449214839951263277853070854535742524701639948546312802881169854302124280012153162848225346815905988507242143304112473778294458539137930917111297782954957580033799854629556478280486420117987717745468610306968967387114924970948310639463185169628662543105732107590983183840158156870654641502895655624333384852550630635220647247267112616891019268501015980680644699650378823400955449474888482454636809815308732491901729972154049865290121564980983465120995995498225197021836702470349841660473088847347570130219498235578763759329537547400137442242440478886355597229290960365941813362207786495548345456355440341212694864124386017725710098580152163536848935238713747271261693831464760643524631458106985599691562521169887665412717635698140983350717081606981564551196516883382896335767550567012576061073993485522260122942679051508945655813182002846922594635516618070910570862268420905038668907218751843496110952130847094602274955077039855617645756059689980824716709058673641075914774003749879825246761780059879233058283027126342558175178390435152462829468817852814288237325653863904372777687302390905178163547271290262422916167723750854658010805140221005966059114433965494999663052909298244187068359004163453695732068757420944083519559032630799068638291986538159201192589574844437641966902992314491761142787814011605478173350620752710191975347579900763190263479476562208433039218147159279838937770906746902180648829383155644446447143836138256652180058981270554072207053899503377289128613449611422637492734205197156633808558462013355483604544676942204893661480095933707446250727203664544675878254888778571296701175994194464816114742070730688560237090604390147722156431053739578013766039039129236606349569099858423294315775591143135811276836761387406304023187549393248508191398545687350304905335627761297145782509943826801596333521655097104387125292526897276642457199423307998177541988081603497285095464129890354402539393006682835485207555115384103562871856983526263325965807993786343571870486896622687071900106976051246968210765662449879925596626530225187295889016106851939086782445748551672065381536836488643434331935852325177244950434278618571887949137607238445214791407807181004036048769073654526265623553152139319423870321734200926567606327456098537981672575326929472815002710517528734768691414631898141273574757414299985916913777169421454225320996005794577918891247878385944542704660749783900665793615501298938455347235622311702569755871466523177430681057842579861141066094961278623843702768098985427396347074024173464640733018832496378091861385658917228800003616400313754017528956346700843839106505276397474009779105059064397687397939989425651863673414628327944458145054400820852108540906876656344696865135096308341262406387089777629963304471861838105442668922510548403514637544064246350036902390624460706813940894829341989848464962627602960254059513651939475366448090070971644801178719706550666982652113836504374168320636004359536623647365527087413014213744292004178003221327919562985810607414877770598298119410449615126841254860744052545945893413556486826032568495320173086291431915297909627863785626119776959501004838458096754242785586227627119671760509022250825605067091995352253910836729074165241388826508268354985851308830948579453235245076724081531965056414945260942295049267161393131901482325263199563693498400229975413701525109510268832336476000054253933081463475110576610498343260724409581302991477374659193623481008355757184985193415146857341373401804856280676719437246802768860376873244899394056249741947557738004991810628280427448723641691808520975296467239741156502136895860378858586569104209111305747191758039008602451022778988394735463479627311591492633955937250973281788728080414747768677463098436136171562931121184943049464280763893639556930560412934692258131618591109889135069965045621976015376514152743362125211892088269389221430287319148118447374098008309202273951781845659740906154016952228265989633939311180849029430964519461095359585482545892750674955605572170229049526635556999474331641847000183247015935605669943809635727613095536245711333326965354831008044340884220106907977437423950399576934251497441352472687225728768567061361040447975184089695372593148790500089108000701878588958683535427550349571757435708447419251883436034633751558775120198226816879039121642640090713736484612802949768696100804592861152769955694317310099561759787131925978269167878589535125595235554849368220721744886692985699513134760900046155990303537248618443420085588241925908303265991832986602040253513039404253527798244719861437039365635120332097139897506540346900283626572057127162069427145512610151045540441001683618758526528866798958918571440731379894300195669297137554959194805799388258272576862841736249057992172975854172563564713728197158767265167302087191386179318137136564717313667617121211543835848546009754959032262202919023661283253141008504324805754481414082533660979656283298127639120306293048698767980755405882625868259014084730969380142150365487349060269965400407943002275442709184926599268348303088845391628038673852930568035555690761481976012692576659809973858645739822047607677155374053946381968042602504801264369535442502176521143115533606666203914304533584031984640672562662215613477017101266372785537434745175693445393805020198208056244013033608309567591593450356361439072180343305790655803020810132193477703923822663869041643696692026186129030060012293627233345326730839414563754444081373141874603746833643842129503013470852358020610169214082100398835870767723231113395109051675058805774192751168740875083409875582779168823797077126754499506371876658648348236052063365372142599484031743838591918328623090913705862711988573771777740768256911898517709350722401644772596561711915188127020689815440690125270637678032440849598160432299693348691634795715187524676893927280946637916729430005801046326920414094598902981107562798037642494497906719520352463322686065257506291553292194203751748857378294320824699685282626667782078126315992942053905916945702561391403345095303541231572433045649430600321916350902722999317595246022087538043410276896895963191867331241740665140940099859389641350212110327843080238618140134724111971241709970958954790139745763664609812532967804215626924634533087395252767350211149839739529910507128216588337613988539912302874205163743615784014172984751573965288734219721750151044498093949028633768367853741887344431481258145683088047990674435256086950045900028138109980055895825337633861722141214764997369195188934868808206057714650807448390060960710043570780560899148789257464309154070489160553475053371452745295546475601504978381196091415954793725194483304555903267127705269376142610046509268563141543925947382893362923037905740873594622963584704091611131674935483049405608308064028275153309479924943430584301475614751042703550501332970690749495085584871665917653310401185532439998607715324804351921755431446981843679563243495048818510518849510533184887032293721520415139047393864893171472413220708828285105631430302142106093814089004331148824742382686383686012601392794559382093304509163921901432709293936663628848185314256904552027705367232497432389443356385271017612071837596667451332949964493321672289528352223126561202790362341104905124073077808660101333099163936761795857242440780743110926238008123356860080863600996028496451316465546862051787151405889233988214471560673863081027248903958427270519289949568986874148996998335023624511012305704830476677079239464642422988091528752513167022166198591262364306856428401905065802986909437484158209821664894088866843749660994725364127932974260500152591265371942842551817730119040679156347365840218692791196534412404633461931113931601188010234144213764464884615409806337749864104131378664639970258754966959075850688954301777607323238013615907434229683350581808893155723257404478376953480601030529317566279833075704453395943721798247295763171693695446867293861139555962197593274374813634990609490018109721531848627476647265018877564526396263402631779825066221973964493622171161986608115045456960801496728307657241321754427526542885526754387914621450207190674317092159708659764342473881759202132795888863705654479070218370109723033956995932930970565063415810664883701449459494537643965639464544483685837439352848415496418810383812960925806671751653880255881469093705999937871098930519376036920585400792679479561916556845968064279164622177798412383563280978653167841769216402633619275261926929948063466114852798308320821761447281586925990024065646869814403193717564491923443063969046044923891194706559097339707985949598886878578620791098871889474931326435786004831956328368845822334356084088862524296106031979035486399038434093353676994537544465572581009388178720483885899434293198415079772478803599976650878916012815058916465760868864063789227595952276628297898735550581126906709475128073956515740045626312076471445102912760846625676820062811179764254899798694953582012687929676077166420892995197344900175097871488505195388792672763620297488456892598655417566647974811244955126645102572693955618414973622325867696484982035776971188778108170205629421924475154164576232832332479173651411955996776219082086425433131726347388163689768153573071306748894169836369799082519654973862413783782569556658488825439170241360950287665114433252134733364416790798829347937766252359279901852543694597547160864209630742595782304410680938183153953446464252633943315690177922887807774661804520781350740724872110710483959458162475446261021654408074965222669727321617005739243060367173999231019575077912380787567523594842838380054608581613434431305851659411210125050868150920643297189369233653141043979163708401681217296217071201641325835794448408565080055567082527776671683255441323600636186645707553973040632425759151203311677151208369911041833724735966239296680363885050805340813661988300933107449148050513569959626533877400084384394551967042662781082260460205300216365439656858546118387536342041141333130307971315826508753038234610245576982327457104258914367024518724561187764019302360370530002021782283540885953894271760417959984258003959356623510725563059923199344080073383603498547553715661785362199656039862759240897499452322843116388566289256094603550700835327777466300741022587053663200092957242820171097123533495597152964031660916615925417817743105817765973469240807650998252738494895449981988945085027326416810743134927965622301094105688368711375954780415560428075962780304735066726397840116380556509140540954288442302291792730378301176928363284527932228125489313958598437247601498456925724593726544516650898324997393873403674114175942144606533570733838670091106511152946788972688118059179932162745112850112000629739784795234291972109579537448335276106056946287510457376733471308029998879233927057819029419211843550858345935424557947930807335104863628066325220788877688067525613259092724052580369015765953144689613032061292112758888139183587967790004781784660631186208627365209917908017152607054982220512359673809832593224364685280215327985612214413967437174704201430692277562233702810169285076387140634291120348885253574901764179609819367939012384870002544863851714276998704921037877127197354556539556664510364070139535188890827547405877873396828208381389249877649525003581520960810513505801487333919143591844758478099478213216238477673464814546301287893220429046440350425613007427654807567169693225760701743619103402312616035153402175941073652006424544867300931991692651988510363551675764571077169137920470652272397215003388244902390952510363076490401349814588085503889785695360749472316127825445779592589150466039142622555267946534070412958507728160013820810593566221569571894296026568334090633219925603176654283042767467172549543123023730024597621084194015217112485152748099499085909821341090246800439839350809324451363758203022281826897881490104742797784302572040831493690777056474803211042803910947744976340881847384987313175931232570091657215771965764755414337439035603931812512141988534100619049844012130079138533439788912633992673935954095520187119259821560882118173253366068054853124856207409200787176131684750967777178733808385503575833729751355442627435925061015751231775031342092487124387246844420404831109205587269537566164459925952754787798552926284253445773654798545489679617410764913383767159317755024771455058615640238638689210886187113029338343063305786612671704459182759528238144872351769774547578062620394154568796227342943866493302809073714097966116147124108401532967224606727298805423695019603153630535843389519384055055483776514817947179385971455759453812121157898703754097489022345361653547467335972636340100792975170768338730562962959097643430110068923374532163071390560783254782204841033865856494583857870687664560582333587364283678637058037869632511347228624467798836344184582827193854664266769787930882829530574715588899452365679209866678541362384685467184856048825163312552725719999514139536064999121573814206556885417507389371521125695418519894929400976251693838973769597183806169189028862812061823891523432185662196175945925192716382172548597439438094683414109751681868499515049784906590229467978603934526048507963479086913990451966418933051901467914501868892543605484891863275233103742991029131198471489150725380560008294377642825201903632057236901347472600583201019088643079689882508718677758311044085638519667493695913909297362214713246954986118655842765098333804899305750030271994868532362140771941753461731246978276618113631143417540631250469821342572711683233173467557240364903848714142294437733381396909699154432974337436445755116701767560507698903791088080891056884177199530993830583630641569694005216957519361012857314365429588920148148418131835334504844191146403299754612447175975196775328071583593267162604465252805164002801020526324016758292504376755687248248029774830223017563836161735445473810110503158411482691451894730342830077361199711793053065676298342979670535875728324180112175478738178932289734817558812348632361869838647286102290861207074228430139981435452634337992365333450010563591496015241616086742947807597269219465507786684277793805832598573869581349835255124843546648247211047716968829804181952913425089627397541983454771326932034223527088679277312821626340541835101804645702621612468123558628138291002062617094297120747806413500135555319500176174012416284842577649863137183133292906555267315259267683282290642962991516548840363114467517406966483968977790802580593411742550731040801419503199310230844583444685928810151788859412341255750582873745291607513187345474800019218707967636213960460862917368517683467172004459869988387699291992377463360294038520618174999738944820592692293653505820604860664298543634058093020811400891563568382304800543221794687473902358274133293553877282596138590848773930839426391207193180839576476087037633220642325439290560039153476109199117087622062854275670934544266698532660795499916930909367284336520169594804490961376651986487197994502588679191908336169149872260601412990918500167329281677410532568969265846514294923892768524596786186254848040581969051049808106349713096455865011448480983572708714720666206367586329042942714240410679270404087643873897471684517408778335372733775490399589002888063154960663282132209209110700023761667673744585827694133598116013910597084633762964307122699313928458385925383813768687421444167211477248894009522388123330332684069079719913220287099376892490225304230548282123214986802511014064028210984368956415653600470225503683719120567018059889412488308023251011913894228401858161808325780647728158898172079857574866283314734443880385042966242222477164262191688497916935149008399150177196317636462903881544832429680419071471937203137031804466518144908193266442731763504554671496725435948399247898026584170280631527340040756070465818272566078733210018778335713258552107353984773311082640009862560175252773562819038291295328066536856081196917728680954899519090853414742002570969740672506238387107488802474498096781596299346149800601514405254698402518966918569493534080878617455242094103575312554912809248531952580355271171658154415807974204940374967456151097594928535522755481019475526985158077416172025527775157274331053887877307039810302434165571132834045104074820300660411280396099897760516968847537374056522895632431587669178544513231872871999737665609126088358056624403575344700489755190627408575019223392523533098760094938524471464553655410396367776823816890966493951829971743505202933704193682805872447684098676170368677812526811743932705782597082860311093017140402930466216819993240121472517687497421782377734416608938345836288227898285428692073289755700775119258262926291163653333916146912056399346902663902607287002840530452815103885592769572394221399679731400146451771084429472400318247926679882753991167439268597843238618513226530074159070921094636029342866578109832170796708905952302245999923203468819730218929582563176511122753713785239075907559250196773571192779045520980506222610229461131163895640183269472166058118035718740047622724003876770870645103664265364717635681945988704920052369462055512326155340156828572867494015484946487267187465815083784569158552854295212054712847503330884721532452605797594310655451665076074085823319028391783197380847214732137835499438302058035142824289358369676316143764487195025308276604564894739404917568244076106337968618959821171765836236750586008336632131718099012402677513285204941169465149649370690637001083068576595031805475855066562856943942469091557221462581344227690556425174574220549499743356235107536340186199730555826480892371741363973359539667843913182960144328666877109697146042636708083107539984526075941511623589000507182527241686260686659450176822070777884173438485416059802161019094893285675724726666808775451082937446918648489932753772028719957325241848495381744312830860788439446781313355635247360943683442561220708926923198733335986036387887251746741596789484442626130670364513862476889313622873673999666315402858246302942852461359350753895902035844487101955045062771603732898621070952346826557156026063719353697415338058355795509793238302562932234490337349317134810881551338395430944034264922806699163259978659945113142522159047917257499665191040620796932966406806720329039425078497371977276198994260011769307071507560512957786981488164177566198388370374041631008532374141270995066513703064592143975779348176834479949073645898001054329750718546779354514855486176248457439143174140228377709544374356988807441887735967317566491322305315333799042124256168433239619115340275204730151491424069585517271688231161549294050435088221395261912552914083135994232383438186857633177411628719798211597621699953404063808160410299089172105413497499345551873153976306850643025800180166360600648946572157738553021092938583586145482035399112888373311333291452157188733049340097403213156626241816410997610248954073319088495469916560983400318388602468007014529125710263183297960421100786760916584929669912790943885352044950481753677404343474734568718907709023470141606133771450656142401560053989702992792175315939176042372164404687468594029613451065111056044396602855135888877308310473223263879496600278003341822156897745560234342771493090400771896704901345635921570465999094289497716587917681718432339334194247340395652329170448673079367981061486945303884328590840966868183140281935057384421413697888512128238183728339178186042456949457878614578587124492705658932306643878552366898528378410307936226472166813241980242712463542275261523192325398866523871040540939024754335273878436843472206723854772028775393875213844718270198357400394532671772438256856392553548154009653491118774806865657750763343591649845933678969627169340604413002193234515699473911782012758491675047628625746284517746824408559862941090511327563123559224828418529872916492244413953949859677854259748161189445561425109930939904240504583271272495863283532535348751957005418521388870048204210513837623235500981953576140298557311423759341143630074873309030887294617582031085908182521719893506144506811303010689772978703628823899340650069851473488231717918384506442445116538570475521009734900928034404401929857786783337817150541776693461082001906997791984506499320682921670110543610136273150548430317136318000416138263512410340312300041166635833135093347372833628906932075082076284843002853441456851697116779876038733041552415783966231378624494321693960196198523000347336167106901996253181611594520561256135113097727759520312384071361274225609125733893409778000698763712530909972580444579514606746155171594036157436799096560908580706156283536255883352896403042129263051646860082590676244381284254344679010932299323389789405953357063810254089576588425272842762237540429066615533717739031913328560716684416652729954771075985103918852286197575402644468959181236250456129742605327007148656089640851664466112623218135578831339460001451300802131868657904356580496739721176817729232081310675319699056753807107830458667370310396561950703718764170435517460900829055030206339731639489944293670572841991706937255246428052787310428446508559529558466781048149056398661015223479830647750914300114287210477759000709839334468296546190449757514299751514925138556495913830008747073588563642736463991079862805821353426786438253087093303547530964408204941096406681369668186926520700957789644862242918401144268612425438032688037909102644305617359218915963751843985911735281772521359495739198470063071823940286194159514254733745607529213334359626803754667975840850274080664891218223340250630331982852697095628450628193124301590644638940098180037280699098820691013796149500939679374672769290377514766254195618528901996937674660440151639499063768021113527820761863542509336597289249565425741553181399817421799528890461273152390059450085171624578618803178818914556568535521679767390116351903864336918267722865688254586540633060966307289416917538551154952502490595927515569177773039594501672871330749791999952224327817898091371438949127279826652000235210728193221733917599563643566003338735059967825489446568926113282766557986956439651211575446049921543419810079452070646468926811529965542111442084599548310087473344970921465707025763975450860739437122244950454880382082084157826425749286389171729523053734263880688905998945375993187001419039040849542740784526646389824397716664379448470217887227678048053300352868456431248792129798833508941715102898300722326336580542643358849828948079036143161459002473715776290503217004043257142470366601781349820121298276427986788338732605367135373513243555619942627814362847075553635065781034205881832849684828140583824041569575384142052420781316610898209932981725040878553895000206440507926792225345305894878559732563400296453643407585578760185642278863668480767013417900392766617955212535139484066746840022181624779428292928141767938522526029255346911526019504298294726066584161696986335861695495464255424567710093710875547758081208198438865511639735284410812100644970391098867355225260753432059215670164247876543607362742733207532417577640894819766940068667389627462903804053791135383465476688515308444421423051555575024242255141104910757771193982335334659614054042055948312297789800215742021195943429916201966672024182773329858958556124060727008778446721444666566481425363134261572532955926068376073928169307379957909345341235084904362785656771283072784881113218786966378134475521569222217332815577465358287286227199431983098256633392301958170781371429039272907261165045038579251189839366379598722909684478595267571734743409685666053514395678431309441413898888534175838705998893758601489205425411961222391101313635631708396082121449965840218886523317601343921471660088409557495977683367473339290906584033194785934800377736934014524645412866190963704075930266616424756094370774463546251827234974063449391603687777319620002051951441537423993217488981383470517437577163767262519235113266604123037905928301459327929402688925568342328209021016349893218847248804186079104369191650853359375536227258528065612030076680231820083960159534263172053440128442403487638548519680558506946977952003901675545298671721211466493102708535879771508241993464451547383114398752575332833366375870579819946040319256068353571010239513530199870727256231396729293405523109775324209713877813651305817264235238633904771287222573434884936770119009235921655078810897106120817914928796588823717165005502492095897609544356927148746414289973210667115837189360542418416988112006118306537576854036942042425876532399959179572914077434176299865485788448672313338150412512984956385103280748242627971629330948519865846346339557617070716151126975489480847839486563788842554797796576644363303019887572745535505501882981429102486275835443331631667483016297728607311716008976877755972558717918237477538127671334121384058771132695385643290132753898720802783882167550764441632806000342777508372752439950756242588963136466308258877969776007049969351370547348713536153661003714001438653945251384168391393055671546140897447835141476182268120203404250847395477915938937512259599594038001781051877341660519645905959722136072697850597007152328245684975127682912662172042685078632608070677636064075273795316329871221198911510481583791476728302752530722683879912342610067822769325585416746847129073321677352439214155603554087106840070743456783320259872477767189866872472120110461327478589607284267160856995152352244141993712223679096375581954798385006926087675373530375079143535996393923442458395754481228372853544217045036894333478340364549281171664530828203466297662030216853748739331518843624154903540163170374345162282283281667729411027575504534437723705567292139741516420232383372327599234219826456725127930012416515892707787010419955834691647253777668124176877767123825833100569621349344102293954549085846989181203765391949011981604479954905643278889476213854308858666123587281525016006673036319243911684304693722332667314872525035488577769206361174418976678280482668157773188101156662789415059296116163355543867480893104753061800379993252250488273363856075933473375816270757862224869835390443341299287181702079272313344385047340774253238037489680613093988532291417105719454605867973244343431177790152676165948651673402028552288345386069484906349351126966158647567602914159322019371464338289971323028013128452364025770758068486214435583575516288106332178362555490393180911784635385739681743098297716382084394061698114833867693517884800593849152145471630395002944320465256223369289753815998436224844308715724147411732671639225003226643767479145079102275156794460369897464952188011045325012399661868552970950953350528328196346179640535274262823259977857018734953868515772849713925492324427041378273973534059791082628871633746845911111221787869776163815869318581712706443028396423710917603932040224682478728699890542942782717412723179219676257065896464790832871012820320310552687909242803296045589231964598857108720619537121113316163739892589961502544635184358046599417980236827960574844300500386803588235884678575803941638097326833334988788184729714100156323256623783599153449113289992451369444645564760347570167080094459714910978782982884810716208468698339051255046199514767767320507367152722684682425878790487460673325448812578504869265580547837246032097426682539262311580264415795116054304490432269966245969203424508121358438508065670826629978463564371184004803894192860078514869078404923832311603279842050391186726939447707019146895407937312953916340262993100418553324494425792753543822328881595473277406326307504112801101428627289727766941984788841574402746095195525053611736004168383612389644393738526075458708923200811801433665453945019996762277284892556242665979500891881666386573733192342113726411846409870244414739986262585101892842058204057749041753618778397913509198040519517195701426570320026624596807616852610502707266625722416638862859801562639359722090170478107709546503980803948781378069972420829577698324990818819999745033843295619084381818111336447471155288117686840898528279946495506238786210670960882928946134789789381403801106987066035283969425443068615845856883246426028427314946050006468558532022996913724144383660332646450245500787817237904464556542183714620747892052286114360116610865967012029885705801271657416211697302732805946440121404063739126091769214385541580796523412163518764988749012528066084382586825638201406026188606612913290972776406700320916880402643422158002785248652988728640095588274638945756250464829891852299858856367713875151330432014985173329974705649304457106612821957799726207323094536019571914067453855655639962325093738884607004836841978742032580884497464677959654582958201477442111329255125897944344504964931347542213036931257106534633102970771233873884256706465624202279537994980117225803070376247386348461184621250097419249471132087411313679809287654412614806817741117608383875668509016964676680380273650073466820881816260263699641039615985122070410699080734226861395632001496189451288984158582170047773865647467196724461303307981943441063172618488243090497371779942670542617880976604409466069647551675389572484262660073792726462750767756364997059088962766421353542389239683648073375602144657925336392495062771829391927874153535171044770884455470604444095383464509447305897106005368072809145993166241894905052084077233663409927496967003116663963072633234957452356351729410497407722176489877151495912740675176709787673525956320145733446356022929402601256479634201861858733826663884341684580663169390496973159178441282286924078612381058880309731852055751770941086617062015055921559547351382591163489498751993112361933672053642801221639418756720857568587356806260871700821194316689007371864937699025825135132572361491375051685586475314344772420580551294374256059728583322514108333091476455826073138942338086861338572070367518198055070029652207328124537777831903049189034540075118550699264022757468754771667422731518660036925828022492468604697411771350466762411804248655623046071392975831269091564360490280209438380715937635770093313727490668498150877625783270175370080970679531130486985765643181543120236187477442651082501606969563946044947250684110930992199265561326579454075681169532573302286251256535883959274483154262312092163242104442453340572664504956497403785937327403044919106968231795375337987798442412541361260269644032854712911177945404704072287313393650403008796487897888615794411224529837091146696805885400992621524925945954408121754049867960017317651753185371491726183261971686684423897345809944035672241972629479688465548271342776816957901755867119976548305160811543051205799532668986647127281095881260360421310669826582982157906138857558071495969588595818454059852763088048604138822439000948479043600113880843839822274291186443459624043466384479227221366883161418579716464919270357613993740722281543133413661473130809276721372552991091341476611631001368394467106278265649906911076044308544232204295842192006204212167244383657581709386250997029996615611434277862076466131491775211192327395649039928578979382242264663102352578645183176151567066363784617148993934188577168862956805290043228800878746026175305919914792776503044299873536441323335338560525708360719409269275848477900214043538553770560473884730553744870238992979305573142706248836548205643789667041727163367793696963949711694546556707715325239782210317074224213377485967589830807995061056882607772297488859684778791121953677482893337515218989130137034673391544719218547561105953896695793110355585602424064340848245559406734083712080991947016292705869593568248664893747133764618772079418668733683305004115940195680801098952267812256716713455697538359402893576152426820272063963740799070177523381422855489753656092241961905710602199734792626254223862033674792817407996408659810847865312689311633226612402222002776559636323506649614157319638420114454303411230485516027329511384836664372336348924254041191663107607197056029509729895757090281064232101074056851957644627775377822647753617150064058358938595038857246049349525251599832021050879103855156306171463445250543288042570184466865877521057128683730979024227056975684827719871674671491403877271464757107242857819178743498533935872046146633129161305794050893159381318188097034205368693762927810644104444423856554678127656240694603274734676947855032380267627243632616959404322053566756616588588091094764395922326295777978284116905353972955062272053698616989587967696932181858000494037593709155321877786020348962836458504851828526021398824188176537386263908191293086486462168583771856446234000769984488363765394850378499685058548693987592469949514232860812693542076157220100553287544894643996366577022108452981875631791114779952731754806795833440068497172680435264232606352991241471824403765480421705436811865694313259906597893600067547894565873268662388017303406532747265951256993849878600090386095576588722746262624028869027613140265233311057294426267982034620083851956295254024871155708964039415570614338333461305669577757467957648056918903432201905144596430259627528794374760669727808500079043350307860421226217643053183982255882568347365924709760821910021265801598896421804340342580342685025306242870715865261741342047311383746491726543563426095018985009818719110735818057095874761359270251403058300530340787773431356201843859752525946825891773766832130251773898328110841555152591362902167645898242918808053186957877449623395157152933873429350087263452111391987000450492543575677302592466736304531680526253498482284998853542927363564310542319155889376418685507103613665405004974036092084469523236864259047127600632000492568199304941435984553146924545667839797831870768264982394081368783235922562412401514018271710576489880479275561404114804807963913943367224702537902033117721949685780378056639924080033090142986283848622032365532280785816327890047492949742348426765034148448256788638684009975946177226809070530185718406234064880366494133467615102755590528403799644565412152422497183632301110814723119408547153528316967066756205731531552232909517784597164993629008254372961456696373720511713143174326476383981772257693871585739539320244781910475579013993344101952016091395089217387658159204236977914027570050899997722417732017904228538788570307502530132711469040498323025978893581356013886139915285941916789345647170053038024026008312466105374348498302359904879507124223339506049466618647008141542673966293355827579092513770191340141699927675609782170427182485134802226103073076362739467514673630726891690485522629016844194230970329495939129099144402514130900561459151068126883798223453100810991455544599610420037344820635830916405929563474616706156496110028419615971676976939080979154769302136211233839796242931967732399530942878707118999711239303933358134990464719445856670764377869410295268176577457748280479928568566850604342971327351272440605583206690962866446390594602778434536970378318170577233388630456199838927380491148030837795873928510188337689075270761512371544884778187810030631493705518046145462045500528505334992695362430133567693197783405483923786477482677741548928574871779397795351753097764266331513554400105347397276792395636816232403128121883862702555716856172885722274064941881837627531839207906319424213361240688091301618310985508428253888010341764394863595787744981994839590008893348876552829274914467646595824013704059232020149194423831941655926988787176157192330955388075482957568651299197749926196914888255209038261400671652942683449340023827408378324453722229906138825785947647037198494812930848709828978872840077029008653157339933221711641321792676957424905640301296726879487587640766030966428710215309705836288844204512765416706829325248682331148341694032329005958218133474086623323768351197655085313006534356525920939851634098237447863600810605998335551071858310885968235324626576392347019876279366870256079299867831238076299759278439061236648372025075322538240086250007468198932308282746226252552093661896973688985932902819057904002813213838554109793662636412455588793868224987608185703038295354767832261823530962713666410422127334210329614861201126570370153646049854837831390564764584162579181470519942335329233409185160795533652385431933024994357787778166529993833991229419838081750598235424805871068679022067252866462766198259511784242055041196773705739783356674759010544946590396871945635495753757208487131524196561554373147026825431875204947623398339794179099625318653726856652879916216644782177633810816611705387433087779761942467441315156828825784042897034715279491220025849981997015183805489340725693625428698685652452290923113061692252765432823226787174200989659089949525516177703849322618097496565244952451885928511394879152819304907776577607410679547757148480040667690743073405084369657758624257142743518476832443893518545364159708905849159435509308144541775994399519210588469866362593328626720198178026121935711086199210991781787920490278028118340197459710125160068142181484910882862708562366977095053959144779139294788626491206406774023400492772770794606663465240430913193353229770093126694880137242642103436341156117648428699132471134660745054293037373660436680067043631008964658198642307023222251305350081001942177956805836338476522980817655695734181007711199095651100706311933100688503640404810129631979037737929815359594706498952128959973911260579984767180557530752519116472505949285686664095461512770687841586979442693937044104701130406668456998350846131270875564855415368017773564180493929701167635994982437177406972546992792747436128084923284867860762561669063348138067735662634408351598009597620791224371969625318678647560284702399220135476214709875561824509448475735627422248267600563222371809937901906557496479169408321003196018427505027923994209340682828156097876317201087318242124000925364151647260812092977191875736912664711914324701901518702372977894796611175189113450688037404473280719524723587917494415734508783585038514849063691875594196868216601824631737357804463661140252068034741353833629321709874780080913854384474585030717523478412019065419392015619433065087277249531444746983697972144860955851270316705227557585209851147691937156341001529628451931448467480982789070279914773386512526096276831071073289446081734662184300292563050872978471954857342698606244062098707002059302566315911571829669995308571011300234928516681652660770746775095307075063203572409513471516614665073437366960666901555058477526571253613432744512412505882940353401823366733109658247852243849083269510179557329049980090636518493678305695365203741080560335864018485713994443240040646727979064519506998592319795029858612925540272477173307906462129645448204846396517186742103611254038368014008265356856709951123942458463835105718308667944329596979710128551293922819922273455045985982487515502676107052825371104906060436893551106590043105118566756219318676235472794824549182105717941790677107306940600311772879284896164052911201822908426513946732139987363437963853095994726804922912734306797070800148976522556785382940726412552262109752449551169618550986072847454362363863987545685388357919453125155668019835660210123410756230586215968833217608047923939664625495768052294144341791304298507456789041146065881406343245774554978432015000030621413729508354997333559368842774895316358492249429362813190040182233973900976816854379973320780576590654485145751327422302160751318989881537196033974136031886394472044278721626316566423003355208850433469068270123143824865536960045860697344165482517908894529330860471505014290375509975860473224739465764511654026189743273517690175698323512575684074285169605201309647932483951328445825974045252918100515106022388657891961028501682761956271997171743710155805791531403556998570609155539872573542076676688283972059798513504997753093978904735669962965826670305300245444715330482987943411661306237120512467853017705579812076763169780709827202238196480777351504228733373343415876240355067916550454892030907793709797883398727917543091634224080954432701721774356069784505599016788540919312829397724188615871082867888491193155044867971868640118481320067970117942007615688096607385050851279273822640641002630216866301456109725101153606669218553043187630950178482070289789342393948024395292900363489245945406180381635173396778848888335393006964932662303913002876183507825165907047475078562190421459697617824430943812509277078412644752898113839057591895705932019875932900885011282863966258156662058065804081110209594593255897331895957058526763127846455889844251457317796430109353165666764849565619331477206921889485710495717280313464886642125338537171374392961385818735813191393429713818383757938489840209260219348777868534593184265958469935326696267620882819119083107414988073879955719095618898073794726216903657505196635923873250637529334798446629823739756766082191551325027471005621238500872204403065744221549302338610733756773520263173404403640929164038492380523395939808047256928432997260768744228649166471088606417116807124336857080986932462683251250311138330656903287238005696474311190688923907267372733037799213739837659798875040214400303824830450885767889765779908374519785523104544693642807538189645465226195892483838984832496957538434769663077825910420241311180297224669190145709915759236875906217783958235182456874249060487861809365394901918649577745589790013857684952037016758198707227418853734199607204414792061424659612718564476562820805534887661838381889167034642575703928231666182363127692166108392639190212962442306496799092922800945318472130143956187984471874625036055836110519473035294710526770025574278934473992135209460294492609370239439079397186054317612783623095400381764914755886793199550436172781069322882638836323435611525237469090787407779557661192845352394842523181596848785647455312996259618652728759269505610075773164364666293766580168463975494054752737918664470613712185416772618358022524518090502627047549652459430187883425974198847825068888792538878328632260722187860329648549781975279559652827604666209425842776804125088432193080365483285493955468834972553438565461613806175254092000069942174735417274006151699642525531879760712901522625862141015724106360152604861140318097907780528104256930752986944642541564053024637868658381117153255681345554389186885850134213409556370948002568761777997555847958305491648032532243272520337226470396320197614138197093635768496596212028217310900691348684658607523531055934403855227895784960423590624940174183525111406714658989776622988260902776152122469618253999306998054967066517821956593887935823905238510884943105315467878243510406025592315279257459963004191807190230540836626508800437382726282552510232645138499375497323352481686118008955975401743153970171215656539471829253344417154826070153795951390817241851981166663913879288111268342090902739909763678425891247393460623582419122280965112513872689498259571181059513334606043251074377497193963685105356262167263156022348645568152605967670602062983232262930621588896829844866246272679764086865383308515945697205323645251510996587978463427002634613934663180759881075684124669912511788013070131910830022013534196005156503581309827011654447689719911434562929557019494754852474702008491957410844672172956618818913431644542415554652643891604814143682998889921313493156842652030811606670592787253552022667806947925033883981525436809965972667739721238704758170225718616579402094282420236165191780601610635657439292146002801646203552753697852627045540502087664089573702389402538793410824975799983222792758524412878269152252052441119712182694796085109207675839802604551910656591619510409203864631129871027215404685566318957588318509179039289817896762564218649478316954498010911111935620831427125795698026594371284469503003143785850750616104368011903498939263970957289433547405095425702453786249312013190117624348189503204165176321545138728767906132066013768267266672140841956153665315980814548171095499944820077885244063450860350088606682265226244843418691952457489613680972520588083202364911535025533876925421372698291076912987472064811581213167767951186675426997166666917702302055675296887206953766740255412300179852178214105930542774057387370470727427449629639360494266974929554178511864228529726544333059329049337733596541170828815914159632491331301699919508526160389283948150610504088999059664420713505814891595746437827958277640174769233388973426864597255279628699511729359001600893974260827035187995255326735337343886916598125202890640202037305024533001737948746385018833441365076103406782026238666530046846721803878042285196312481846407637285870123347122201662207957356437235141816274597765231863610730990312762409073861233027531765689054151329381181057603789087242432765792253247347421692797796260057064670283983141259398154981036938410464865911239991906868797177237429419615745533908886636358745595022916993263337532193620960946357360518211074089850551492204660968884492085759620550809120544232629751170645314063649719151734180642403915138054272990271874328141366355807348829664536731734756109663855235559448142863678010536114771702360129741472662280865503840209802762369304009251829041524172618356027691444478288254428011009438022139468305126074842750412788106443743908603359582047015745886839478803047299118659444807576726813701861423363863420876685182421655345578270401581036941897395013288790220682127187130754525668391403671983871316370939354890481898715626112048570900876429278459567825744501876264706495299618571207566759428475088371970163792566547675282738949037871781467644392462231024982108115208376178478867166506533313677617438471564431895176667651016025145840221000692543550049224644687677169717038839153322353759206685390229172503769079907073304940625066559873205890652139941655907544583982814522920242000746860397860998270249566179509077218820060043645442786679328491659682837668013073408883484692665910439218604354086236198441278992664763595163014165582367341179782567676808195852327156314621917558057119738094122564663400200969923509796926266233789454585700917120613935805625321803811410460716181853177132990085131146195511806587097613218598769021253458137937327468724544147020405791742730184200666248583910949891578020178355233079619876690411403711673811788893886829478287500021076264005359062887605444745940982718323753135943774248207278574648427115906905418727585176504670463836263408213471093107455723942341729054962811759856194869613968479696076657981359276514812521028478917505018868271183895601875134652016573862760507279503765631677954015616740163389587036706916647400376258471225047925489577860955196829251851079596574079619254944971703436265817894792779092669895422659543188464557789572860640249460043682983821414199848211459743437662804370499697045965557095670320549456879786611154860674127174740488834332942276706717956520603637190956611800825921353241899874740887906019491064258516538612009810961386069099385997297358041106528572109292683467088335951566382977772929208003527908844698845986836476950937929944795166740502869142820644545754743238315806038101314153708989402498170597040517109127090259722421041105370962416142148296091516024901430560243434774442712900944017042740394945903544739730564016002761301712716686312774805971539469649801208895556466677235163896087691159074716035394666398280682076223700946832206967867743877808614752084274697544012877663840978942424068959021554821624819011815212953088324102762045205762533043893614651334700706677667723597699227521730034525991472568466699253764694547334515259079331851653151111319456221502928201046495073196581822240591268875825179167190597625591723715497595750819377873098584199344415349589322347998407585438621862802752345472270803883943296180253616302744148370343170496101585405643484127816079510312304903223193331607602768947235480330972821948007917116262930058080523300257943885561474323220970302305485641006497675621143224933888777768707096521455603224750675180923325487104431045459137652279233633393215568034013942125762826584626618900550282437822753322643106435926903807068641424910636758698441084646428076975316753173724299589798304753720978583923032761058972400634034107901697622526717079516089488802757442749614242862105603252133963231378209165410625976211522938766850637779179285603484357145163728628005882236540179009534598218089755835022782600812572890988117704848205843181237329171108164731493425262619244612378356317036824959122688725388523517608920369747470196528334107986209208075301053714513600653487831005989030482686109617219855129673877438598928486307199279149779653916027769620921156026909177093995494360312304254830784626714771113030027872423369548792558191661395063659242302620930547453786027071475448289921187549457730479948846035948188166450778665871389555738438849852605484918010779969747979190884661998304039356100196068400974590795625839310705757326182356618480324970213807981455289315825022484386746665081961054750582298027506718940731496848247282548793166036478920578713233365807191058238927041546500688347148925647918680271583074759752648180412280527444151896942357342778207253257903650932833775144788014767424498259159028595596423772482917754905209854736182994589712492086242019824903439877355729411240251289057967733338837636630947556017498251929692330694391405817687240390869695892615331038832558437505943907512083010297455530736122828345831466507777566383308211953025547923704316683170675579554172649328140514787592437849178588177297632436759711787078176879222293522079713792884924580043241205744893254771137317611328289896611332251516218128462769190683286180874553247518419090518320600543888981151554632742830606116081111918687176362229477361482407348519906986249159948853810756829399940908073188747942767401475879059579185322210423399076511583027425087423893672024065497117211436855753629089945358457065659659595897143768119128575340046094404383991284663181293810976781872560077986673222988087726351277918607407421443420029371462883374473806221047003614103193757553504346747422529014632947964069623740842813888490762985705771647372601559233356605836505143790399794285402116224513385343018486687594710868623799112682919660850331334830972669471475839418306280316622926707542528563722008469479108400743951097798399960987631581764710123036946891652269248965345962122121333644251144023513295330301720913381663346423014719498514558144141750183905584629192055457212822692216953703335244052910147143756963431013305521795597143193600208087944475978343608070935593635639064862357093204602518856544697531117842255287357797947319913018923861312215833386481666577593414382916106350048562526745213372309121729732177808138927683840090842585552692013760204328018221899088144016789305892712929948458805037579077448392630771800388849236586276984619422395078636900104917805617422830069910351308492410924302227378638979969292492152535991144117618749505341140204513952612159320216975102765833254904263252227521565723370157634822522248322081232348702351795737404365332902502910303343986451712195588545694293183076883556842362647443624525520113218744547999802712868881571698275787783099452955770853328494761841836005249514513246966890558225597164748330261951872968473965400971984424262113302520435938286456110056654117195601731532769536760548769155906487027341515292633043630737135905728159454855414975304363151465218449234999612985671261939998161820376780332796797977002762239634509389930847397403610030266133850432651170724787089388980487933797866777930691377444278243402456411135788072105244032082443786616395566624867635242845541226430922751659111215654728726963583473903631994851431425084620094191551536561784486672076745871063387169022204597613972074993402525196540441864908487724565782249227772086988122270813190530452329278174032405607977782209164672185895720422846723991741089518540740545765103127392492610248578005355817303807471167123662628264027014355809835590820989201977084687172111325544752894937412391146114404324117275335735081754192981412474223956268254444799626252649464657556903963429605499699875893278962925261406212407982814676626118768817039123150286853162165128129642242635028162660025844438084547500969153957440708912999705457310939747844627488930678141674562960418408073775777687204687356210834205517344650960334672704937609868617856986258823755711534137382752451722568656438283174315760664151800288970759197714826118454737790964516761909134575749503420205088329341106199795170866988324990476392205764735334908328924017800939089234284584477305317358295672730823507368200857520040573265800023300152655195922819740296496725386518270785984473773767569051746301465872705286922445546349716493752797196305336774137398060683642199346988070743680877869187232707427541178164117582290829218925730916207904447683852522051123352871500876698772896469515432157737912102057498443522303477385147549053895780091558142266422668729816643381464661406108467349644541789164182418051121036355479104121356859525810626271633997357800894808937057983432010817474611228915360383257903050359982221712092734868926532488541289732637335897417070582182974533668250312751427148566369327569460165671814665872854062258859661504612468306343149002811366920687667184030429750871313554881479379840982029904322031748491378669783433913363645822915846847783534662220892065205326011169628516345498249154466167912002731898564828800108327589932800007751661228681642767451491147109471274950638700590044263419374710049245686400387524209930869786378792558645977129274645499759227469878613731377988842452999687255577259143698727452671504312224773121807992785154949218244265894928347013716311280629834957599641143835820023114919747781444425142255134349564464610328137427519944682525655070486500462341163076460921712335098205387115496995140404935944885679713684793385834350217595028623244219420607069604095562112646933131747334662460682907580240679355107761913804225398843235993708739950966631297948579635805889340169463932591016319800392656630675789471200002333228660936353150038983203399816954828223433103312998295493880368612145342260890125449675260233974853272124730571450116251193219171011166227357078002878355197967353182154648869881914268777105471369413697752065890993219617685000612224695298660917444651070671312269465510160097739617360320169081579401075540218145313932143712586587087340148964317122898571062399687197452445567667998568226845190596342824147334989001623838280742745099130984008633769311940776683742473699888466031408588887630959570094310524516839584303917252148172653634324842107657394334737543904703005137840057652244041129915716595266098193752762008394100660072462817766942668275252719287519308653969311136557586576574199104197638415975494341007220989733297289179517341889934223443549153017663155253015452945302322433125179180150256482210552723196624638289355346231551846054052688881473233154767502942764951698428673633410202577157639592329643042461479756911742012853341358634289779574952585516608303016901839728284636415016246898547843604088821960051298244229042379398682802524487481723119389768402138227606731471072357955600713666307411775821864471380820795049440132884027009308619929539062921382149414798825255710178710006009587463843851129822703499457985263123045823111496986200069035790864326729035262241662088383216288952509632655184877289441771866133461254091312424411556556306195431825354751972648726597853300980235687139731172117537247006282293308690607945026341126779826643092477341968399080883920378673237390371246386974071941551785786933944622798253715429014253933475100301892495072856370328887447703379985654746152592779167198590579033993998106406891296645124022734265089059060082731769426739120102099212291895845287927144918240754638841099979601424805380124035504932996246869098393610957242660666534431778508787782614753254328294344587933769004695606245484789613403070366468875232914894040569007582058019312245174978918448993713595730601891755011965452441096844445326298613408981854744578311957337938554028356982441196605629570813967216156843046223459174735761929344018467207870500569536176630709996574808230321754560503054737771580653020568481145443522013235900950399240697485272300613705895302384150000183296430435312420576607427919486927039484240568039051254365471872908970269061491597864195439628645516003154109365038547986834044850525739928575694451125510194916565362007136473288530217701362265057284783853664056173534276535622517556928500219605920626960101599480143725139536823868719594860679115978440831787710683827339088944543645925467237063446381856312034699293598567979400133129641505918970866795205388488764343376507709085204807407669677545138999683134365251058264457642935286323958601982665762276481152661920926392598677771010362712468162453888608302405936988133896568425579368271633024259803434935568410554070675232572445341710963673768081489143202338142781414189095362997136350204484762597323468729997777809830538721283761679013136524842242782740764722834318247409508326067321084073712765918307352247725867995379962960668383839975686418219244457543813594395002986378217668862986607565213528685799546730260071653260627774770653306382894091793221820311436920017536040896199543380476815320522124274733014316856483915204832326394655862462519397326625060529488936611077165806555661864068539817674183908183547799160469128041254520158117934797401197736802040165056702182329256955190533929610480884836388292617522134247679891752879136879099330296842668196752208944485321825050798811827784317340852144836999197532352506057297159378480566041385617176830859265471103088161826042988340793283443651055987237094449523852256420177121592882588180908950901279982108513883356265271312303445054085335847523205109225042190183644349340669210992874179498376703950578765758400990095390459880346339650449974253654261961792731098490897853293181577049119738620328764902598675642153730837745642812551638211734633270406795491667752838126534796355526847762976090524211431984481043972968014815386134786209639321480980430637664504659008033498446940515175758077785221490793790839071713177997695837484739108862425983246698066432343895050415806949405694696539971544608174420925785967867363836202226232574799181491440972680773125619500714970126866188050590571701541656982687984044508494848238660489178187684883065570647664346994162595390785973228046863482506721339474294887967295803356372285613199883441195511139683681103061676894580042730020697379049554898954256189989429727758597423134852352952294395154873004439858685487727705762178918063010364092148806273047343856636082681361016401501127759496890237786564880355125295990751674018501229431085407232168154971982212633394332871500888781619638704420822854563174938604823178879734490035860185543612008166000635444615285268005700471885630036670403362159885076260799010627616055048029746023681475605604364564988889464076033930937085479433326100698365294121372548905546419915264978760765958071390355589577262693232649188708116528326864196307856672704240289853478118244226086783662333121322457998606413825516933753657192585463766630313844371211968624953284113444525076819196020638418499335479499712668441904351244919549853408901343564191102521648021649421307829901960661817109702381195631792807722844004173936347612750839493034905758227844459452795574251309645883843131263136860778602276211464131997353604776290038358008906116160079782718872327982176610202756316351730639472282895004259775772726918419730532575015991789017226072895573717098140151310703373591858617780288743911155540884593663020965411796907745108917136241327377681213285064709105726597655329558177302535692140325949948597894389153922687740836660729004788956574701930112627645331418609193524504452982693003833901828548374090507555862146142395221777681167403487858938514045149567296764912944207967882526678461486480804226490645015186512054147662021266383666620825674598528529608877825213120289099299098513566574236323104858193132632835130439595439971416515376072514232573857023160428579189791408687174924191078407133327868338775806324973580125217354139871473331557638713344187249692958714589020364321874394941184755425790734343311317763505968889973004556666109078649199643841808725328731777414464082148337641726608156684808270676493312541048063978394751105013862586440462054824499565193945946892017773816505921487731891970570981625228250161794365413930091731216396002311193712198931122416965693322046618463368937312868363732443488275898376564410892412776044657420998675231878160723787020165797755569579790685807300472581187871477290469971748182019735630418967811641408101499271439382830518226650373110838388969010912560964079601345682815144255854654676861610912114275408857403578429393958703131037821895751901426980511976870629408258029306985497675248389150573129605130585638536729976840027225694682098881467966581784653184493752230915139211258453737952296339223669678823096782203371971284587748070076125372799028377413357843279524287934370007194264039616736804018136841960420506656622791683891871652871832753823610742862308814152333332864336726350567928537296274922697029862745626042388385616662614301410408178483699883959974536196159255923097163703440035874053887866674421707038937181497954487468748442355838960664724485014656630758374025648663523083013845499219127133631107268539308175479898741703927015086758435953439668577130189797929206710535717495589708884019109896235061912107259727574254149937092820531425844916475141498383664480797462921199046723426858160859474245134823618608783906090778083576618454907580196907815250314587705908150070163782420247658374025003449565353030095565346333012637063117277809309128451020491060235089693641105242560947164995660215376590534330535958621825000202698830337792490500474262158621310221587766152147127769202734612683791063030044420261397615275982034385115522743947265675603578737692673548324821538123954910745917329408690297822917002309035309415659485770544980502042710620585483111169880793575281937578131539673534845062139834533176839379247425552226374846319011574243071535486999753038242116237742163215651414464855089047620563223195391557925113842278502477987888064345749113907788740272652958267684815820429869895417960347076893637249551432621927033676947704978635953609583039793447719917095768829241468201294761983034277307601534301174849374355147788800826583766106729855782259911431214800189981506439991990798198014498968579582120263525522152976182063072287339926079788945709514541544240967940711573997156001090249404801339330285660272347423977132795891960314486740082688810172516173310329691061404390339971879654995934664185483149600823425962318560249478049519780520047704042112390472032923206604742151318141609713681819217349873680268949804877938669007764146482516878030486931677607041048536254538193862622490065632046331254406732973857333672716148780728109839237293629209084616031464596033566870999722675024320800465091801822075320922015538900533890656535820002335002238406945771490595630938024032555184610610065065983141032596916873306357724825644961151709586322636766557494561483006763040522940388963642809511636635894899846490686967955324223925479567124481602204707111817831155232211448967960208232103654269829888293260977936991409757633273386456045330139631036092442203819411125096875180250157948267058888990468730891509957422550383499779328678292174252522224952473520209049259574570456781385692907078893442490381170868621451180438594561629607090787722003802665668447052247917759513807491552718908263353929666709059653325642900937096193920170102828136893114410927607130850381854542711667541163942942846327515960305759963073047920149172533677934916357559133401116379060823084635018254098200729039664036649778228539167976469997908988338244323686333422014996782909571595509936593141344481523225731095550190876811838788480824268849950241130182685070418984547382092711771876831317152803805271209624026295479058713574649720354661351211734099054858675354930970712534492881433926846793517587407390284104775934479353203644455653295154652606709889814716334048826563151828192095283229552086722191384310631496825891516122970374123719196152721338899760057850256951425142791033183814803738214299928173910760705992694371302594380532019725974171533686996344413757780944904239285089274923008917685018780141527542952767588061946563541220780074648233170406869711406448225961557558840165995544102230280539470107290241209259606626553566431985292325365505093034127644232439846607852774797550899075932024173666548367901981097750522393054572076668388950673447446118869469666795612770981468670938934207995173347995059468210843603437305045757145790811964199275748571761459880141821326354471390542758664512035941456926750476598012176701682403599400749732336637583890505739114056993416787584549704583364313715199664961105408460132350590749479902422021411630459801534537964241926703262427013519171041219827904413525866823567541622975564991688349989960428033666268283942332371334856253286352254542545950564087508142991016451239506322613328436746746804733114606560175065667714667099440456599028011290907674091589018137075967908003877056661950611493166229114366042256116304096320130722879585603975025127944712822508728095380175796938937736432782804153892659736855390155000739255372107151379229324724143866842480002448862563131062060912737519433739277309303651951843226293988384634063561349490086285047968456338093917790253594674996687286978092137605704827745517248397788897930338096401780258828188365299745255141022097981878222777840226844747728479749566729318213055957866563401590603000338902552119052528267849831248747717840264968615551964370570422213041878189328304158369777215313110881660354859892440794305286242776943498344807547858505461784896552608029928344254673898930182560103159059941818690673265269760291601235597661413155383708856983657514336542991950511430170464966855913517777512439835403540735851633142343176267084918996643698770598392168075662267306490920136216687131150767056270821980769344844037128797110083085921100172198813830629870748355537064492827694244968138350368457999166353689554283673713341399908737540006934482740146179199737878980457678300166214675323182819129146323449446493236690275824111312064243870473625246152467520801685814661078360486122448186838146229889674917678247461891078270124031257042422573133745738731776205665255528217371038828607141988309359087633939537824105850194432263353128332280540700195367823132137619964657450877721247285286736088077672711397040685087438072226376542777289085505720031257442948872417875572649704390074535084121461606951749074525065248374151716392284211662556300560060601304665924555525975752640518959421550265771177347919278175819847125730636389574217410717243117557830303132053144475457362233598232809185181264006526597278003679930972024224637778338102720948420832206347816040673827769703528641108134817956662196292983450427380876230648094979648592319839473425226568296030795608518147006434556659528426213716335882709822404440607398125314483154084888773225504047302134125906501479666322207277738671929732139670274216389253234349010907266271340325482480021532809015760335211444384422961450001685742036822336266505680709684445147948069976816383688287628529554553219827273691755977701916399073372957765748467992759435488442290017873353153368035390412401175202883089646779499078800825339711498960694177308972409805274983342602378799879240993452672812124352062648507837007492110376471136262686563667672220785053190750912190446604569501369880440937364697062935182636726758430538636707604309084455865580740303792946775558007022305945489667203853604401999200011187050658821298777752170687339749842573056987672665585261211446256256049221394887502654313597967172983853761533433667124192701981984981052740148579412378732299554560477769991405506961139246182702465891225041660574629540037344454258488682942775404692210898897934059788504383332547197889581295946215535765487938521543832770260326476645494823761805992488711535608113656803133293473079796295613477599218056637529742845027233561056597725915152639516699003625252469860269720438716754003333352705501275434532271195319158165130927826418718886537648628119058687593028525551566985036834523346584110320889076688266775232341373355145502376715020523898265912365001215503208998114696662753085257618136137978546533915043881689364044453727599606586360702199013543630635097139905896846582918015284258842978380660010514052561563922198402587068414936983179673497097840375152618243587894674779636302800235941899064058423961457963052542417349263621906082498468559201258591082179989398375971735212033489376687548064741785313163026068815034270225854537113762775234341434400802778541284638568422921679717264581350149325216921519989639659418480338284699215244070112843166938254963978549085962840664018139986103301575251740270294669265294039487041909168374934735640845266199992028671042077850587984562862060857603876885381004946296138494482620906537171280643152276691341247740420052239737822745952440724723411429951411348381920576287532313457457025417368378328566295463313680295026120179104310415236859764707884074137286356127074517909780456860328469926155773175393973355217813283603516452742708309976718488778992294635536953524415981938032385979963876828244024455744702106903705562733964524537314604696649157051563405162503870858400542588351884631718361322721958127549945240642251297152560583450313934780975765167180698889366592635748722156138459850306697318156484708483389912094138080609301563097234190719033861340473126314529467362156841306355543968000511405841527554650041472707220345580796791630436975670465669639593697837473962512155979820571143258417358950310736578014971852180591808721967892873004904262142115956179076587183919854817408846192323468510400397418133657987053553853046077396204360167027839754956229100191967032331129065434213580743634314166345080628727327434436454093488891008993124844887278573053020970321243073075270392709479185705203901674432906174177949890854128009257475320186175486712902827026629935574295268693156898667251493145763019218862338404846117938726745464564832853427305349955981841014432940550815857321330467734496003076148919819763125199610912895414179767297289494212487009346712004910153898543097111393366827833537630251955102396476108705935569464923118904994298163324320673978020824092387634554829544510853732555596369120984673930682827634494495521688774580583094910389444782217324347209577505414071774835327349633351485380632370891597303828322061052441562400079880473885609417137170446916830852992527652218108947306409370248919502086319491358847443977598761090647848854451438095626798066009801439526752216476890344435698016242182934023436777998712826999303302863088477694850615140921765737048798348663752907556707732107324798671637118121355641183846406535471960039880136230798815230533732092396112612436090373577601313876048556511400789553614902795382727434829410230699244734020780561893653287395675202466347465716731853524654616916578391716041652491477711225133521676174904786757399801708926902178579676156069533489443911738984802888527850082702064459923388679706005808485431774921729752808951024454225320494047587109623443073401777629783793535107652909409532319321378020566450480954613346882708529564103850958525968190775756934975999963924831143842918162492803948893490398300789932071751880543704023675889633374834375755163205069182833394947719280609025187079697973401052491736196596938231750891413442706035182193772769678026210563943157412389968267967353808197270905861994375995278397224676522256813334739156045981538842766157959785457725878816497816507807766597710345983808381104939780902567896147245156883930994952188381852868843583651720678677353170584327576239165432959066215885632011962755026511735199165039095919144853918440884304443814408219354461548294257647933752303539905788034163257352981837364001591356183311497300983263907822188275111819036550396204807985600976070433271322414882577365092565732907314466827697986789283489915282601247504597629132907774649482720997463290033816738605178133642152524802452097481506653178459625685194984854626551501728076123064472487855559812370177949265137001771626409648043257582096107277894205088279608897813237782276846453798795631914314193759802745572861916144935985269421372409188984604776639959166055929848131535966805043872031156849191513202974500080882805993906821017274490509525541281397118830763562518282692975399886690635544282895696397944938734431827290670038226608166024853903909701334935294165746132444407695593596925478102096464741018913135849613797385109595990109023574507830401832553572448489518986844934008923097630847908228103164570220782620881041356655836306475071797615139992125671308354040993309037803154555783808493631785584830201322158757069039198403490170128641304858915243959802850119362256542272328224126108789755752350024263785447109932511417677471564165921686800408304589722089289547615244847244315143347759170182002866244504256853076279003958311294436681102333696719659363184968039662586236785209323207365420527277652951123170727848101860714173955782526113557283254704488987952044034546972460350418254293904366422952838987639207737807477570179540637451095939538871762811504315886444256928464734906815374806401166864633641477936953965181551511232725872537386966227785468716337795778087068563543160887206157297315710493529101508607732874025211036222831890804922938815395902792194402058235471165049380726702271854789290636196016243108396299429353796395495452611080281695744729870607131565206079233315413616202702362388177515557647270793263393366760471426209205261908025182113846412512544115078749282418395105667464672999644435565808318905575409454008966049895317543301294715876745404154701846040679503851839081378914197562721264196524925962265658975246699954974140928104322719604460904309059088024906138735611022938899493523818484558161124394072470320630636854947984039985948531454956017492865570052385099539052663329981392641073139149203168105327884657452764613025181708603391310238058814590359972380937500936180678949669721424930557588273077583603068239247930213315884506308368634755132670675901705789934550220065242217169129111539848142966500454169976251240686380913813152333455553462781672345441215566395892853327737603433759913008211905723635159538313816984180615059099341295686638433333162784539898054596454652111591075660468496091709087396239466596463449130798598584047893641043369587485591015175695407436157039574465088199878875380693341131358471414090192789510512531680946937489966071778465097792196998469336818037271518690229616595816849064722392607108909173080435332158526106508640775619507122290298968129677081792430277818028813516616941943317082232336599955880022971394993466985761088017254993050476688236399372142866107532850497796004412749627553355526966919989104496921191705397959715392415114194101187555727146986010215169122251507921893036515809803545256781879480053192597728332333052615839063049675649628969338794553580064990453004874734339385323445409215777226335754091105592527113738377944972487713164579382752324629668474952878025731931574716106189104422193891038773285480499809313347700518425439822224154640079616550282582729085783680015690873720102072313802291529354847339183546570622465729480421948017733333743470545503031868981800465713133968547840731970779752659943870849291667217950797815092036181675251572462568917973243315453183477629870890536953022607288506579800701664259037754750642098993162269610757899702427404232621372420041740993025178570265012133428688480716180923407516388745209183811731972432802499172387106802216953197630264468020939473500631233836550998518578675777788703645064463784062535039568232406696895126357518413024272078914473868985194197075824349358404813013800914761140433377786997502084303725363694063941250518349125607440468245886395232923128966314717159982115527103026111303140342489828556869081472250479603458442261614136384219688609196291028720068652513642815185703115030243445324904832905810309860315080505161631373003956442295515538538265677958936216370010620791467251602366379517368011956132023884875155196863201349506934931125772404410807313041316731654193935156357817200683106900166802853015462387725543419098108737144022472791155483801310666963035128617644427679062079813545409679467921893043305997091068484757603888336672054889908475842162541060727166096267247126806996582420798313074429876608275074611310425558071112188002024067486372801938892674425241083071880419559829089263106615383980553921914084400856266754410639135704153692134987819534094002055075642163712974414015463520471531478729114927665863865089720340780834087401722924631327522548658669485314238571507247130750022948867560841868123903052562992305530568954787528214481834527559352379991945827829861934848153032660481826877541808399993872962150043530268940462353447927683143452032065761845955726971414970818063044065783188952098255983371633356739522672337852004245960881779604142434633705582901825058917841636106658739673116206087751661052358922247105931340318991866962056567725681067676408224812877149629730454580546592808162361033946376679818017301966577682465335897887616411028145947798902579144258945901060473695567442715132196136026413300968569805461192238179798467482057636489938339166738167153224416811581357975808071605396840027540190539111181474509753525271663037455637787986737539394542049717722127142762118704855758705596024729181103669576624129769971756283683218834451568130276591917944065142070018349386970955571870050343636639999820821393189641185109554044844924946541127827876238172837026480494123663397314390026633334807266093530952251281947126299536867494230456514258718245859629340965764357203846191237468772247355899972797624295461005312831554309559256165177099989850258346386239922955045658493186145072822391328842266284834033243389243091863207947071216569961943129828825525226421747975834256376983880628764034021181248635819249194830244022709736455145068052475939054325469762072826107653000632374783457461593698981842343899845944473385585251287539181274036943487512684766181647386253076300496231808608238938965429533005555686606043310920380355312706833787999857500521233436476119713730655316668122750304239692723210956193356490047372848173979426466881021269587611231651788107522776517657369447855574325722379987491903280458550768196624661559043222271771945147735839533893790353471204490575574058828693670309742743148917046375053078097406954494238484675015257346943900451718687479512739219586653570277961939230580890878429856459335401938570714111948670378246898897154393733207066106082908186501463067548165258013256762994792178841054799133502862146179550899259931693887972120790989129339288068233643844565605115481601236220992471772354577126723495520361548732164233137315471501403834830478810581530920226828979444526289554431731632066174259233186978744299898770210907380645688634972478002008445450887879117857623913337392698749516675509345477051741480228935017995522139737755012227923594038254960954980768810291472328138686350988040485796156950347883009123449096059431775031656811966685195555411729738177907019611201831869191005209624502307995813926449242934223188883973269724812560186426033021766498218983466416744482358412473968678197779495523370957277613711587939645847685494770880213294728653666606028699376242130722946833921477592856658171998979486664318802023055893552289323284033603873751425984855155857627647051800529640661801683712424391617873235361161394450645356182076385964397929496907868900941440630295018308379079070084402500893330889763642531648118311974566804406493321774749569940114754577872949711672464652761429593514630428930487588090465457645775969690051096641312502177617296285610980391780679772930854589135672905735107440553989587862103328646219268093104590560397281686943597989853567304970626872713747409089100539379511763368306386654914186241845741743457295610026003915487227747702137402957146766272377206720455798585123641316245514114420790400584624212300230459162695478511359296091080602413931026751668329783793720849268437626785698584590438163155183562920929800190714589312272311412999271145535614001005788303299944997950167091653591596745507548868969808902915849783568005597364167720706420979978797518561274651702774907414068163016364149632538155313228552622950165960884824567826493395310785844058143670753056474931247154288655062005519865746332748134226323125142889483396765837216215141422401952350256481504728345994545437650440685075956930605947390067099421130871640849717821145578249447517073264050594628803085971190137954863539806370638696516883582322864770842853539502770018717720746985122756452109807960733632487258342951411816423517346792238178103989377713777130589769102496172802221281498194820783437551704956819920097765080973171069790250700402624287782913949649741677143665513037081161922553488240765644374018229578773944773955377987231158109783621143651014613952553178127159362883238746448732803329395193037990086348708036574031828393103105249227918976678620444423168855570254779977869749109628942517183311753508903440047650959097069522101401141638838004542791590963406622915514357537957722164628135935943661922700872728328992411220560025955355380742703087538856329834659666737294429772652606247066438098487810556893254531789037130732952096584501445131696335271743170446106262031509935221211455818856534346511424942312390547944088103695765468576693384906275907310467017200206886532509612499344113241517809042988027232445827488990842588702287877368787155537228435235991689417254580145529100017172710032808448750952686265825976685095256871060865563622969860336773572324045717508872519443194903849157518551821012897502892653500106463510718164948553599934602020735571734399292401965240333916630410023807152914744006013217007917227302763978038587959527167476079445032031062681000777212614770077493851872887194026528157473639945149806134131272966763418860839109447380688153814365913414609618645491684253151582249327946733652380918565771987860213808460150530124381440066171289505225471264032301428415835527411087292627166661141899195937934146751400494393848725603752404838576483344431558488068357839322513193708140488900496512417273994402553640158980554020872191614517352272414098790921254103710570142013232908935036122523002434299723158516160340790773844767194858789015624314667328646885002888585300673646803387674733256869984443394102707135312870236079946586857034722184026333640309539199878670684157182295204682767787343945072618330677082843755409128232864310532337640018670319425731142685454118400265574197474742902503308723484810612319179212651431242246071770100357373115863094512870399407081524260616442624644950140698981938574459900967722624223214866296169259119762773291825552535101459983183528255414544688972515907674256187753896242119011984733709043463143057814492906464134181231683634913985058940758410063539236492014995457829923488832485386087887034667772069824178319303084965692355470934794586464037446996056022569299809097158278631400058051893284237853499192884884858789795026828026710961770649032457589724850472237525996508283925163771991578001454949035709359649359630317648429929156378656146148119902915697667374628928978075301750500612951723912328513239050623726247282621748849702015000851848744735194472004317225342225782708200984405501969104648190497934695079433933458751263700524736523828395752712414974504341072166896118688167733560843786559956437935588493114659453258353705550625436105846085526964424367673022492616409661975414369071551412002447066148979771021370061393605295954988349370988936973509735686054759775471020403375042618341743661154918373757357210864913174317915128515024735163052552987697150284608453578973790690475976428165567748499947339197313436454660038751838469156251904044656851646039680886714149601750635833612197724974635113957362655694207479398582663847316340257873013958019639983934351978783182490099542137790963767728527308532953551794836891146236270531505922910401106912633400249771967592558928179699682572670560610426858343605337492914864758676217716310964235960810855593261062104281466598899793789163162113515599039827033318760665947847762870333379200647604178974537593687200894045608713935329646995143105726187262179662997465981370990812803927386511174641607302839312296493745068652396468684907243837345103841951327139633243599537325445155051431261049395609960777262886005321499668845033387802651553934836576832669066950264698972961683654101396976309383806648055270851718837457724481686749813654990090143598565324376763470695808802587022714089555180613279169322797341247000073559575730923750970185319781594701883648925831271567918264842018693005431535675538249097770990525901423982258075886132181857643415224230886502267113248363228463750221411305715846708278698892184197239207940265523773029323559750041940049995081772432426476873047384601579821104561682693154797978323159985194330977291314636097809745672573051245376964422749809054539437513184915492866291810760098361071226152026913221681282010229303518185886469764406785290803940183711405694474684952721966021364694889052802455159921270677140103474307044610568551553996088517608634351376675910361477060292945846834265792987159791918838071065984616833202996657972222013108583346101703446090521650248716158152654335696424086943584573385898629829629745912360530248325595011107744100655540292683791143673979146459670760132396606783141378125085649897801013388458136827333410083093158155855027842196808698099865508261139006163468721826051604945462171001522338000878619781472486557071182038092242174619566216090042775889877817796981515454465120084957210771164803395812599487580813088395094515608527105218106919601992037532560914438365325300752906193484494857689131857902670495549347654103512830977841253455573693564262208450726719395161899082180643244147566182042510212844922445614469860116772869808510161473779521798583440533311439558649636502229597689360995383267957440275626120559681800291255816136260487626143878580534864388812976809915554711208749683383012971857608375271217589633334634963364466331323751369484368829006555441047286016176443652049995668998254147584452063006899468081132289633579175304118613209502231076070114090941763653557330745308006803543064342620854156202696581237512425640335396188083152929154172878647665284616358728478600061666485327265597270050159933621635011106054434802259532413612577601817598556777142589512232193243081845030090719141187257894528094010079190763537188400969007515142664681181760570044163075588826335735632280340743267839523740588702341289557633043621520016415762919626062056191257241242279012620089680154706131303845117490677288458535769973217188792828405033620208974090754791725511432672518402657645306246196296539207466988536097181254526691216305183900899906844303535554297256147553719800262208062767076150669532340847955390284530865392452223686444620307656389570428503099471632639030707180986897975223757250647198586402550859050227071124751531774560006119760960421624424797817482238736134426061092617952760641068536533503136432066927250260171607015246213492311833601593981311432609690934612968872307012682508923755778807003477410085612520266304958333746672243229708829147883379663849955089558359871295026598133298342158796311393682105657652450538628287260303660776275915519547425047245720589080921094549292877720605768579932900082285825896260961592849502829774196061519872905433552992298931425868533411816802824117831582910830992304231336495976635495983870440791909659449010459645700370516495440243876107850882303158677080101765500712883656932503533968819293271257670763571423804076287802167462180256784612533979689370187642201653465227021008018126714063987250274614354679487159665944114614658675337207873764272375371523833481438898678752588689293898348487146269847214644875960705315576112960178673147729180336753235443553443882356827260580943743495437295719219918643493122507017066206636966159748809172980244274666952318678050778031890445534582187113418592592944195901506638916185771480706540144846422765983546456346580309743938185987338931485808798300059650306012294885743534924911876718138389987026290964151852793801941843333021974577431783235591323802720757904406291660044985485025710499135441502936504685860598968358130351858279195886453690590560232209724336877516321951018083991112919965182766890287785394015441694035276461708412817269511217509941071210737211251396015349596859628023808612085996973143404655492142757084809121450812955025363891133674843549586112685186763218654724824372999038780888880904464154964209682354539636875299866064526758871188359181431646382184619970041432052954293290516467209741550066224671878292718312686100262694452797348253061226792487627063573574809153852745608601926113790192605430124553738914201816752018063574837852779813615367154024858750871789045876902637574973997916359756809385584860907152749477448083590547753315973349725548722316698529749604057136910811454989624472155287252666658156047719482097028866561111005291445774516840222701374467056407046203196660580213225217817117995932115908214111126908129626305199113863950184386772220115423241071366578168951282841444079311127734896925250940656858512272114444034406164413910122710482225494358464290416105019649910323794469839383412093587942246713221993595692761963375898683368866106672938561401692515959366715272486801197949280518686164951515743697800647721719390078382525597180390080324962746383945688132209667015865059516889460627138676364682855178471703189947954940939024271709315530586776807374889515481094599527031434643610726391658817713442648125484611592429432548609679102370748413555370718539002879233671331844207601096254890359541214812055732770940391541132255240743705373853198663650399279224536688472043668064229897351238027310067671114136508523799809786246029611256502432822898963186797228960412978941786352085816734068017347625420593500850975405621800122496356369071917082570952810086093369485437339819090205550512351948649823944687900789811818914627313104514984484432298096825339844340346203436364629361856123438344182243656344156753482570299736678373255686620260980533029754360409503651414835263916930260486309875064885150713507203154515761694346759519054456146953577917439524691153910084401659861750310728872775540004565262710489935988001608329192284944660756825350907710898690447142324897197594981087506376599576393986691778649195116251861865105419345070177055231542174430002803218453673139500842921233365341828842802323106558182558249364446958741062532919283178725450190849416022125853538195248660163384607385320280357144049683399441415575528942315076501995234041810061732839001082356712460163314598807720901193033629906684558100466347021418881030654718851453912435903904293803815806080809173802751673862288588717436273425732938897673008872240596882868020577796580915561350528042317022128893216484408431528324022841226017096641545092564984341289322115000987880959594571517845522315793194283817618787819065453817911686837223001184014736657051997532793739990458104255536873120979032119535492469836359003956732601158027133990196377996625865452516297301491001657263724338910328218535669677936110617140062966607145559067093332731454459886653169139068941033532989009776467450863891436172022401450028987454208026380963892007826315338743901611508347937742702461113646616024135443805275154841390191243684090512413007132055318683316543603758073508571444420847115523237524822136588621256792606629677422674786698165728556198498177550826464310702864033520816170192095077517402275965824395467150300301573821929044692388134310815874515254449288552290633657944643974458346758622088312583212807629244534788149733767185790909284692762331572575935952133363133013206291465218410389258194617099221407775992310146017323667437149635763221459085819006700517924164175900198005500781965212289839474233393951782753933377281762769932833027943809321196192351226324226161005187979554888159249465401447346532169029111177193841688115301924956677622139764551036793330845297044020883848756663396036310727407457278461598897978739857179613819742905644049053905961809663117680745984161354959933575889991500242877025579857103221005822623440903566618787229340884689817010843165649646829364276632644456959408789151927931406775005216115873478937421849697553594288833586243225321785903360007615493530874375570945553826498202517102802888325869530900343959018784952660409201225857333700462804592466638000874715826264027214063704399731909795654409555484291388635489090406304932093100605388694228346974052868985192346031550103938191185817969707804796493621913652334425527175748122847572801619295642840343450258670321080290750491278706037932074965025429564338604079587041689402993566620429821012424934134694573875854769167627656795378824460468828333853741564539925567658937753810176533115645595429577751287033450219748437310886791347418442274785729072615675636939309884189328275624134512842118867845048808829355497342630758377551951221397656271789954290583258130559053475150352595606812761053524425915757013476784567776933528841589089343177877463381104509247699694368750794369094740229466470206669228020632489237111646311805799372789880861163704725421370590574390496358079821341816906168842217432954233151228701965296629536749730622819163643617376224627856651134628672761587440309014481715484237801664013376339963935558659133423474691052248131136094806480754561530868239274237583984761001339562650637899158275633831911264310044227166624143679337970919758749622660794672382781014232604281747944313506796444089934930130103541691564139707216076358689204291529171562745373364246288441149040197083344366970771900511569105411463611790787788328246373314384556754230153266449598606126405443843879155054063151606665671007463197007514393645462195292194137610623924117218373659248219629442271209343620028083370480955219180028243332188968650393883051038758499131006158666292565830719818115284377357423228173443146397362601522787452382506174381721249161000868515451455689312143452687235882436060599668191894185131626193313869538553191296048587689788952070685238650486965606934791499567774026046250681818223537004932039529836833566888605640966790536253256329424333544581741150100948319764755258003411760009561057985646719250736871479299204303927135747814680856694130932553210038681818242894514213431285239220093796388913093726733055654220124530779566527557025482357306718163454684200341565123848653393902912234038967327945165322559692578582102360591328333840618675718534352414021369079025210840916643727851256687543461416652747613733364195187571721609430386820283520727389901463770597120803316096007058162369171286878904488711878349877559921822964059906280905385760407053070180826095420734156241311810528376685774635790050927570957657189507531753298558432677818543726091922620264887022884653336815468017321976982095984463301414779329282566145485456464424803324823327218611268188064302026808274382591702670006891194059489651367510596436389013881937500465464151495570609075475863905234742140923074817969259189198273224626908356714451899420668406130712418637293898704881275406933592098717303808010415767276832103275485844248350267791420349453580114005890449969032846880954326525945780004081730766387643677696928843924306785873134859786177185777346579635973067196214961194951274700236097210938137171335034860917925386792496457129516129667345829457365201762156978891923975742567204509818765894217348166623133430540736537537967352817152054344701184390639491940845546618037714316271446106174489300314435560038626791197336228460329700125561760280085139019404050009196237648903693673520884741243713270960176609951115974926207441310116019589559169197175865446674166448509581540235324516995773397390288901421925456458370399554700411111510641564712415322496352941082418913565307501090377834829993863220620565502799937269394454315466366653988790269642177315174357914408040544244150927076621973767557984830692483719556159883774049760577630852871165931349261131343553596098480730181186588719308292881512317089836461520010531621783653097045778760637875145948160661408935069041607549870531180359426948307356849709411563029782458120923539438122234433177428776383813928711855361876578777563254674884492228374134981665369707884763478242254682854605190337766590088536155018550947068434241502024703055057742220859608471831322496000113718779427056116598839193556904903496491610117144969644199393359356172093611956678004322030964033713701020443172500201895176558949617219450485637511362597380189977826862508240741248349409242281000870792936076561675626237745911981292090005409240423060665421448899644932444553582728251821363733622168824279759344973125049074570748218301618486028751185111569651549089667291656872406704225942910957757871516208852094637620404386149183852929363211263904461033832325323247705231045053097725215920125987496309473020132824594245238014926603047068641450375486849718507811804381618452486527612670901054879085250625720493559304932881837974091478169916353133648757233797801128492525461816355152455809543248626225678495854007340150903637520347683564050288264860842176390328810980616282103958247776446147819025481452855138929551077268846298071563074860504606522059459282407615658637427046414539761157544587096428889402255266265705453998615761999002654982828898350596262573996494842918017252260336867452912101144712702383511022389542858345256782480522122816689071411228180427173387848594093845380422879145749013302404173980841793172016544562122728606652200351329641094837545674847277356569880492120506640971639967307392392831706068783882315076162743807714735141799809953776755005629752182180531461100077590421744500718606879457169820835664388568326650086624097867247928520626125351286919449508270347556128204850512900859106718977192016427560223803259191929326312968676885003847466096914724297303691460915127832854562646836484956532254360465473517370562930280648474967386348375711970740775325555286752383917615800807051886909166618815240585143171147109275729457398297265474644869624813041420259483065701067292935896833058280060355873345996864404457240477134406375349570483798249103522008581680047900948636513696830482175653607002840729571503208833467136949766429089336030210840692955533752092919222520264443299413410502256015022783785902435363319805029641324778873328409763752256936337456368258953887717496207998527176277689797437876128760835881716319950969505966410605493644585748288550617404640193938704015720400318005707957783672814723387946564242144758948799836990396241915888955699957604490176496678960527696167803720274052873109879282014980716108751564140489483388371298901625114625218265794317336625035101110925837934761787814594155292669874186340012804020811390013425551931859098726333604882198783441381165122006750533198496816383185751131586351445251609138282699139653769797695305637300346735612247704653786421428840260283733034669538135872942768412820603576012139677022369421188839079616330970881097598896078032888191683660017662093462671496231092702019971086216724073758877208850906073832326394244126237962865024297890525738821284932529818815058251347833508410877318920116037041529733825082080072234177881478026992957609610697555204676894787534592898461893058856539669754766442403275590015198678366194591318726987812895478701935916392782196648932056643998110541115425958502885990344704277906445748655028730712448137509856838191155319706550987545954276641413116966468226892243763434619865262194477353537569188291358627123506123823494692461042583357393382105020132936419789052161461502813812945110535953600967558181105049279990738724706597902708381292034235225844017350272146087454591493594685055011343630184252771643624239711731082379909328093598887319435896230144298744263391371313051039058591322478368250693281348426536687375458880675507118235893800993913076793728916570762959394453892607769481638336754262547222060352388589481435596634304502726297745384010786078566191653487016454493873167169168137701353210767411584205709294001746357519756093742148727125295728330037141093920832597315996271425234020604510692159467001523886765514057807094046016633146724730999360665559560539766513061886971479694127757174608042618747008750287339978982811262833858396180513255915794589065587302538482679638917415410969744926990769706185482295014425212707958442507653319179655996938135606726884794018994908226119995916849190951382111114562663463669622096977079609118098694366272809667591719565585435984837620717727903103493981380367095943904464163811803171289840465483377967987113481098532533973782737383175596958315649969457515997304892542127559750224288163427957853433396465260814141737530982758855818022762752270278593602615297919051175446886632004066344244415145162646938641706140515111573373374707900996696394463870872330150695488560892910419125984363375741257499823340385644981709317182159220507317870798742096660926016811424832653362718257928616405406542559368135359936245978172202383563061136957843168859481586852316779219833855561337460910311728994718603439126040126559533742071519907904043279827963995381382891767106995271374405475523953960374985938815034186842081928101634394635438003979795952506359767481082061522766530510940160198922951587154709329349189253746499267179995919465156497936423671728102298632260967373331861986995155679506779453675848232971927994134468144832498804157392578602382757293769629028494342885870478113073163858216834892410972434147207470522044691529785679227399139960915286706346014279389640525987581975836247374256665248363309564866804575224187989995534879782470900168291898519764158752361409130786633002692234635500495744946416826188089762846897278788547294004162216080417594544443906055837601266911540289069608186176697868611781529272052833607752780942269618989016326003130420000285399919213383423074859423171336585310755136676211815819976391210264932311257216503051100222323264771097662701382712179962262414043937804765662098015097073703614939783005323502994244242592290304960532200424530778855978592561658153146752750251152881552876156556375223082815925596543431454961690777283918119063569596264872451752638029216059788854566203529706762802850831338016623623716176806690936483712210459059386594117955764829780748464423041532910788024567746868042919164969984547819630615421829297772345977890245792055558507690921219806405399537299245632819541356040333762317806129965690039894192062112267418299230974077048349667722711873011846415401208102158475348594300904484738642860977243140419963821550987254162198198361958016876915382384834797255702441378012165509012831474309459101234815190686845428663496116580361537920682180610633144301382692200647486683886345686856510093158847855612629634692135637541996064009427397073575304474969758464117276843854910179321423382863577063603931854268714188079860838842734469096699651305541156416591726849177938334180051354418671400331002278147013321755155288841675482289911357398044889516187422109349699098318772739814805125439545985731577850178488975350645042044525637144716031307038067933787325811469615342581033365038184524962387083743000926863975859194786985942199047512391683285824301328300295951264731871497701444103591175908182821813657000340316430583345158974666157418358676182553753158734353483665212709190908610770613661898455129991437447316126822467820129247506661731643043022843842349895420422248124043313216718940269407523580429509634444916649159120489186993566175462691939828321715775420528513295189198758486428465761023906346718983960736148338008279457637181712625226557602493122692119556656121454265076338605804027432069591924903037292152088489900562474802857842195697838351806679862755568242557897094212979677951042631004437354269016653570007830028679732383946401931175054595107946579261374140605149443074919250961979855715102365264195735923263889656826067085252116552840143532482358425021190685665876740571436252768915876659034857295111566298735218567965007232869295051497690811843999673201479389075955412559337752532122775077281287629554093226340670554215762943123215109615950274939683842251230444207681124166403955301690958636296549246796956755299700243656647285701750879873829116344121148889442696468320189367509771226771002079267476898043694785595100694529568682090340991247018821657716442220796534537849701067023770004362600871222477594755691001068173479800569665432194733356303658983022208926900659326097202284737123287869081854671211350820998594651090606298770762307672718905109629221918133802091866316793457013198389122684989853821127497214125473062819144660985391628286963559526680198055032137581434972927226214595223109432645136190006963089554939473581950022620789097851846737407240461910820749270170654080553681149889263963049197570095398916966957245528966868791246179430744672004754503752178758862395750537381609376338035241166896526499609243959623087858002591615276435709296112957472010200799592049812404142373457272488107588687922644646087534266587480336840502639017497614799425130531307888538666204797556413135612664706558945584981581855563661006023691970644753209451981915575365787768842927843653300045909402971381726025339486536288863326476093478584256325505392921754183763744838854479963345902886941597827249400686413445048559600822019517032546424258074751925144615673370146765037390264056152628979340077404925300860939540741089506981117248500858548583342151464037213223638608848714265905436861110646685737494396689744033647831566517411718065940000510224676306107311205190511182279633875064184275957609128281273692797179796719815587864925244206561092053934022650099980078389338033262806705213956217111231917143042180324631778083731618069641926337290018150885986962570008755834045662589421395366900092716622667593428001318533876564760331018434567658785715237965411445951628891433766739389889512372514996205593519519485795505006524193583185360488691780646577549770220292937058758826972865992443861775477686107416704057551488386466184864911812399274773611941050767191269463176419203643692821670749541701586677085574439356562319180799957368733128436751598200156958888653498406329594641958288187087171712195096579729544158602614763765097016686911846163784947364850500387367728091611387699754954602762178288988185840611021692531556049267936979139188069612411838363779076745537075607589417637582693792111610522772682321533530979767398154821058525122560235009938266285891098126839313988588126122117981165436380787603695350712387802905287774592196957919377393668705322625245224085910108390965225216238132490101893494440259552259202056418406971161161669156725926434910185867914920595735803705589866841117561119051397326496340929426543265934497510532032179690481589333535497071565891986654856048945563314925903937518678375371316245849126122942012533420936294517225330411090207105788220290875601305908567172023151287336629529147392375272725198200157265280491253581800283870353904691165377751727625238921041884086767611871155836299771383927729255203419604722188706535381324740493503992269325938355316849171137124642470107936723735338746754505173094091153950283025469746397986087308841371280411837933808654067444584750827834532051619589830021761147285402030229738029282638909883654877472659207836469198552736811533923639519681067735154765145457614108471061493542120835122480833843066460234869335537529128096882101163118100815788808957935716616036015601746436058369771941105278580175764676539509143567512587255913933163759691591653300914114894914902850814458517535808039465754036684709220651446698382705121602243287499130892208977280651708142382413682151120206056806979014428029995623278779572316524464666538091641673762481985105604748560078789089450262905628438726152066845677569007326591675233203062679997725759773209959049522692327212029978111735701838963878768574529706505138747561395281223515767772373325030649842345888972836992246025582515354984339364576945033023814983686183156534277179264522686799348207596570223746726625074666201443072198068134638229851751952825411974258231155460652022870104042708574338454687354918864009584476968546731624231003027425663613089924235821759557638023609742794583158281975370106005039594683136363262193771822463830918467772247619452489858156204873461174867188749134597080771492204844552753436321493293222652207537377594801457343892795456695601981076207211558792884526626306461995829616445449349513060683393593127776176552974815262942434719134522299925960806006822890035315496316018204214446659466833751491191793814776096529235769337454450995988106334571110107574836879022462653910932701117715674501621521008285678292259022596425863119778649023770574887421806203105263075177564879668066871058061595335888720559334835097326923930370809531676058356274212933107367462150775509573121182147857360450484914302124467403220752932950993918248680024452167476146181581509557935372174932032342835730020131350943736428456036366343719929786297104407016702986754674285407778997527147108686701161406432262837097317481996327570283054048015076427131729620324536620051240806575294823320639599243578262317260390336948810385967339221568242034603185845552590022837420747507918860633178681217583170948226539577001556228414755918653026457472093682651722241350660169310451476873978623811899095689893974012966812307414737434172386522238234339489032425895556207910648499764691985237055599684625452475650484284070503902230789361388762308669520846834084086347746962338161608273531736586211191994167137615741122300452756467926148202484043049904553666988607477460467662864866120763998741942678456746261089750492175826286482355313055234469143515467210877216049035146285225735329168427843682662448130187563797043952676187641754891423179407063549076223431589346114748177303441266849221322465963605303671426573423876885426328876404454844555126195153861081954914646303141066852541547675135637783433796387519539267642939900345661838895495866500079641093334266111413073807596705798396925088207331771528533350527889562088074181299844305831672717101429874082200038969355085213402826499600087445932807308318780444622473607246346856835612413401921856740554681497422167546657865951930689848843788729762347568783106475683367770124121246585521916325085633762031602183610312106073197717071452450662490147478274597313501024135118277418504480749453220088748190727014665078486472109458647945519252005138655817409014746638199338824166340244030551343682649134450030143586685291573576855300129153711461065233247089250078387686019618434371056500651616348940331623691496132824355979464982238909764814496211893057971922285123881394110271069692072411414220479998111804548515231389792791175626633822972071265420869450195513552611564189651291482340809772497893851107342224100182269316263256375366521692827557771499572180481108677600468555935669822129372420342743725715203571021903580191248779700693506690144560719261400293955149453375641970205966750256875317720285249717412329410339429682219717073145830818264412085202329360830769943708770443129587113158836364582899218202705729456555230315628939500864357854226774655349444827960998628603020112298912762844000680201604550745592799398937194918471553679585657256278921222344700154443619339425361186385252417236926864723679307004198335811633459759105322970916191507485806447722573188636283847915222996513878292438249526397414119255055510022189786808719336335479204745443551451561934596231605417835337997526126249064551264661235290839545677534788633198997384546222836649319170205511663519499376099568973784432044029952801475631392330001143197097747918805541647530357144826927914651695974779231221779359557115104213214009020913854352034478738833729554374710551500040527642055953956667032269621245212517546757166054333926456993957783872789313627776554600675211464818690258342063788604670437519805279026401188129016008583337025516780489216621750248805635768318106270736420978267218528744021217431160053200979276874882681880142739338036055533615515532793442663901282141816020449231438404005877002840903066354687446650690593569083722936932340557740492479766886545683857717118951857817377707310754631479459944996730719881384878931017721361910060071025859743188329710540715952174115549996441147020173363273571855175585513624774928037260507656285078606624843057950453477598405583538473987217509439435447802337933501794934045786120114207989831487795759523031971810835353294075630916003839846118526170206415216034188617025923043113709843653260243798056058273598843210836501940367213200247499694488723723972075289740455507051655916518276561371808373226870967155067980663395164230976947975198898785781469273324389442590996884423617780548900741176369729662989565768688450567023509757934041357432079893229190483801333737544630558004890725599049052610764208897360112652305293766494816152140753990772503027157303956955413780565148742617129387040836907838093715145486833944231936955600600584285591927766243718728457429784349924722662410585626835233371013404734906417870838600640313710879047542039874606498461126815219166885042964967494727711333347368906937391050338944412431399655634040119195860793207776898725069764935272159026540593031028247205975520988996553089313563252971062779433460911821090267833058608819564813437664312485991273124244362212919625619342945101665528951020784791378806480319122692021183387800387059964927893670440443011037244370377936378527926995775146629478935812616376930648897900412690276610590692209062313555211575155666563283357512108098678245154553238403872306035073521794417317572280188710798106888196616013601740458941372123413444547049485711807044286767086947329366336178300867704653154761947827089624928410582447271669238666574744000281783734816829264217310889275162008203830220535086382089382166124068300274059427476538851570170522098407244374664077190447472125873114979459938153904788844116551595750976156414600090654096628222282538838952594506234098536981539770159780362816131572701629604840055845465257564184354297692853951885531861369316750942503446095862518778167581999433382975069966803214290795229776174048485463498239575393408720589436830988577872500130396668086704619842058795732151250808531983627856388536007810204366303829495383151096405307441367927818561509455957875459745121446841356452168814678565633222336514544593543720889922546554306247746112631996297377256528207401997800676210862872017553509664958740538822806692789518834338854394206891328692973216608647093723970098424057557996148013943649435219659405521696521434330940819747031794911329100664291098694787264829230749035031678788493347958690426070095512624361050441220534514834262166642116137034345532062514879740330374412825517725545470898879895086692802014249552606275087286749420025426338775563499292686241532295457394170218331808841578619194707981893275115353077297024261159350854929389640182454542813381415815766820764834053619520690267688795809591870037706635400956737894477953488550156496992380884650569550991290913535254521592775351805407778592662230128674896931004432886710479074004094476733493391198952238427845384863249082052030915830458566165106262728634259495490906945929706315658066624004083676513521962872905997806243249954386888004998276759174208637323324773453956395782079367024049441055397816100963653510646287424709180229920323653016590010778699270316821037496603776725257101420530964727148046147432036830603358332507769850955378112923355732851441439843154416341188994473499923429792042452109948953721480604593665181077994638570234320762434463816739403268319680530793227786752381423355175241143615316831160243926179173518743628638467315134180132799378617999222070060663868127824565377799740646621414504264899877120052240358328644286066257317619640961937514184169314268578286893995105795185178698384813708483867343416586986945771035675907879136167282117139714728409267382317889574787225628307369752117210765825316782032635415054355617605189879263747024327009709536777237451312460622380195335400525261341587779204458146703953198116268743410619266415684642967844333344631765529279612900054186477336414052927836605502916647473187389500444299597366284462208887941968855368421727181624595800892994615899916536378457835092099093120316356661711015861321216201837502369289274085435644547035411340267573682057787320253522193727896435809666499542412644981879361004688431398716299585057539941066845851277560590152969165055800758230116269537503212722824916599437049738449088811553708674722575516826713981009800413136855383829088773060314664585757217672137730438313539828825185493849946116902151780628797542161829116032935968294156609329822039612019058492033873313072915162867255196823621165010867780456793530564158106488078443340748576855218012498865225778850773746565331752365904209966504695996404087518269930346475796212464217549394891686198676758882326515918354119987457046124610720491735311891989603495366997703892275340897775337811029095528973096780420984550690481759724454655290439826949847250613629081533088149813244949215586845188142750429820883970035109326519175008957911033404441803230138283157814316278359790867587059065551191407290290401579608455114048215625269790413298393769203047774993101911111138972615944566456593783876345198447581206082839585391701672886886447777265319892206953923991280512866359617732610577904162559591172101551293419079825432616116548397934998959970572634789944452027963233282608261518671735532852721338043735916415290803432407419010283956437836678639549898293984541659972101307086884328798661800757288342086403774447094216514287432819158539395690676333690315118623402766792763309498917218671024847259418135022013058972186512934444799919181514542288482807271382925921933329278072340566080539364605842381647509902553727411836140475579940994396602670558431127979432610041886939871025435277552616651363611414031156359538212832557729714836418279129414357144058933492627012635734892642831811982615990554808192825464431025438239146183637890706652915630766741568934436716330007685980492584779063577455641433675724851354787885097412905378006755822581354283092325688605689965455282665526848108211536362888802548364669119823623755366556975474568295223328255457371517603888135183767800907299337562969285062453098294963305502700336341657555742201507606364285209007649748710826700203957405491659839371891495827176189028744933108229170161766284761265114283896162203039094363904926757873689641761489713762493928900751808310142160672187314023309595563368470918832416675729674869362534155521571974114120650408568210316330628360294689498992790039457408009215216388959928548170553862623460177216831588825010466270835280108718786259913720849074984241052164945602853239673053122127356197944187254566138579462211210472445977488269793409378263441686106075106773487965651512681127943810964404663385032892431531925195032218740907425951706004582230136747433754468582319444731566205495290315071347906092880628693170329495388065769249404249716690604742213824991441598221490681040154348315051196675055791721236090807741793197729186901556645215667241023909728251875926063927493594894019254587958119334154987016835401893552849342890342372522233758152699525511960327766972708873696606746061649579537364149334899123836568463650371994877600666059224724455136880197204817057936940338053698609971140243890383728930277663851082099058492563617038358029001473865963512360692220751011605723197635886713511778649915149359612762065322874650981054467406972269361520366490398341820667947644503190465797842320977730396465908824979309555071772614802687262720357088252775290960457427491462875811886637163853604010335405958859845029635831433336030199395867050474903310647793322826817353756529684245033842244138021322982148514633064064283272938063988669913621591353828449602463829896792582620013742562960983589974735045132855011777252376263832705643680043333662750799385436282551061836273779833168573028283944471883266261073160504196048973178281508054064185060045812113314322482112835764720590769506586784509174573248584128603868986055496997544234462312059010721296172839934628600303717780706727361734350918094509809075387729446555009452738247488457648202042685396515327872459715060902995985076021539568682887602783084152244797032816046737008031101629076052106937187124847885315183055769597049878654554152394572360950865597131951394031511185943060909730507262354027807008425595450823799734624400299160670517839959334275997041539612685454324005071386359508302422109691764944733148750342278465406532842767764135919082664826466173927665497495284865288766619764079673984889087580705085969119415195249038247551919211882531195557601624869206308892442877129976901376682924159991000288317527714733706057287028965226412058653697837657990817032624479997335518515822274008571356005546811844132781495199041635709173234129333578433457664484955573374477335325425524315326359071233306893682380958641364479905056846410866689079850638317983272302849487339771862821780388894633454004329840084009761403297481768756265210529668516039816876424869720626582487142250846679335173051815735670695245351535059468838459787024746692308648260669480774705439201193750623935143870036185952532901127593341575626818558915967595953202866637024059095357475493093652549749358329048881064032452846047305302307877078658589825972987673165765050427127592037439742937743756683274651053579134743761398535148957177054560566859142910845892598457447182314989983312589425154895194396548523177508735933754593712358509862611008479112540843854937756202057006645365045938394136628227138037708023830878701404527975898478882902134729282065421586986108630477531119795776428507394824425494806634242109556604731412373420081712109253902156430943999735439091647359211093792357471591196813525350708987125891891151152162988546695218033506916836206135896871248294728184751758709108522048611008342188968951943199005899923754501985616438169796229616154593776130368720825956667131372900741923704000200790953879907736198420314837446836121700979467905910056453944185660531600760880185823279597569013063437189234015796854249741516947020079019610486382397784992792308847237085986670816870988276929235085683666995677554369402537592804613595030918529248591040093376360456572577838651706949485671488122396025924603135856984745470790403217204298142085124063547386652653481633220879350989219865109120129961309416329972185502333074197112797938460312661731424741628627313703526594820131531667089569090138201360080847459344533767758080473735439185251821844473876392841844441870708668824013751445460285770524002185182080069119727241678902777028344298268183444874955763566768039647126163507455735510824426708114675926338356437389870616042559686557872868910461434044472249422515878800717590683336863503594996479913794210283837628475250293419532283344946759198420121665437041674901665999079166414327666298466967049191392548601294506359852428075935894489144252055099354487233057417195911277288173733557924750820147771143052551604115382668696513374499165855818422038526643124043967652279503882563899914928694270416923643978185661913180211419661062494035591667051555051739582469407427759303339016488609064895732056558447842950552147638598998177412771520644368076452554291063262388755100958378507380117300619400177182825915857775491348375222456165020592352182516865131245799380967927029994598716442493303452170265718051655263843118402663493367749812223021110604840121294598875609732181881876114958063616640069160983076654241582057224159927942861142274339876847015429084142684176903275480411256735609834498028578774345745679889653576364206501323963655114617605428059907528479424110678564002504919925994151595152175404940071824096610639786317021126717571950461579904409449608309497958693330994000565382119698431320119158535332193504923787249143244849407325702948060781546526759861038368027985464175397517022688271553373636945078634483526225476593157360689563313217732390999943220823721395322596441119388598621190436597266821427945380145232942728724381126304575378309338609578585537942963615135067360100537275594472577529780807646183781850161951560704716104851467055441565982686818353053674971647896343819115337799893615280262807370293584472732323505620207141984622177837390539351601349084708700417221776958739470626142641473062459831089399092133785675284684411388953872775834103179639700310502830459459833208393661591636885165121060544447440967161169988989879105509942053819881714382862597969965422420821510232099576443769719664189486287725374303233428284431102319076013229371367523595454626316272717539812957308751130396681041831215706915280957546568305726770427241894626603613812136067429534393047441846708846331359519478295245981276673671104803782447333463164404310813317778982840517647451080227629785970240314869104901348750965175887195956116926307129582852338695246666120340468817810103414290240409600162616212653159437063744259132938133753750762272608081175957511045314847063642700803709001307909381019759017462840845176907092122729062387053804225872269085850924290926853308033724884995121766081910071857405643610758492939338859287253544373428796488867624741436496508671336851669595188888815239974139084991173464162222491796997901228262092251011995855705169666126536126178856108214455538689283716671889998475880783387457335524469146907774510615311194666974995000297161059429802545473705683785033859873052194471913730031431464498212184484408112847447092905874603995341191017679397374473768929197479456944495134325638368096482135810815233553229348154695611378755601802388218315973479593085599715947584062645781967903270577304579181878002907744857531743068115119729953855278474074823095188394033713682400299883537495696464373135921111854012181183733426977797248608968961569029034774296919727171832588086180257193954256439717683759696263713116818761593277254328962249814147475352335493239000607066234953114798079558267235990714640089770033862334423410495473957988780288577962602123012956504024757326531329264293787451155238338059528097416148493637741300036807092449606073860840092412178316859536372114111584037053886555573740815975130245295347947937601506397294236717677318603968509736479024771369431287897093810480905034829185247367225277082889455995089962467739950381951079137491268722578413819051995865686646996785653062637655041943799399090421421023653114470897020470092789663250451985584318660637012277778312859434257518721230228262982632290792760215048824472675468009295805977600911405005790709737987566862978722465834001549730806567423066365386493658515684976928050812977853706133851084236378345153930446119021389404154802646740442625697477642745627914468013843091281837887685545509537615325926132359881255225021079678883801783557725599338076494665680423466418568534868235243060379647842729575575528551612995133500188157827061800758635711578628428609076631934081179681357622204674398591674666302427024399772837821854252529099229318859857295715415195838070717919842365095564043174506721498041687611550885627230732867202814404968693899731593146341867166099272293561652814262371095997777540930057205132644776900531956094863601898594574569805542936579674123515410940707325999481730443929988984372101045366851270093853781392885435605688097706499621371080345035327249130739678473532276547133479372877996718856380092198520942886535107092797132326848599613305964576489635675457866355408690495853005013293634449339852173774903656062178288693253488642887970259953652319504848358101640596362878393009839817088407003676114371828764083243927344595515557766617042272934477817274872580152266036759886482313004954048255315267540850146478467167218273393629429637718580078676403631202946362344347187302018058591022310984756682531571855461505501296021013663887519105364468926727156353123991531918516812943449597792589493427649472065000239645264037594074579063831633280646638559789738925387534589300562688497560294553259832819191018885530426949647766515236623759277577921940187508494787216983237265294540670554920237489086471685015340651983853267387091918598879059484659853645190499147437130058482230821597592710247020684704785873396160632697442739964302657325220526552086137125354531033907061541480134891134331427020375082447137882700498367955111901409455447352837519897739267626377022745373490450932590328515428019141479930867844196091902045274575109133815060529684075804873492921092741885444546949109969059015206605415109239903423879984871957560119302852743316734055214972844434576984177079835803551611488135497079636804839284205103727081262241973490352315368089184134376977246747848962091261494001388315448529037048838108356872466152753229657168691620524324789948512107473142281908808706294596188896541466645146761059973076661493257184721872324478771696682870319283638662933825748531947885908908880303636088280697761629183859352874416521494069637493859871312830561852221788186817616213476876390406989361815152693934130120670925505841551403781072689934488335468009744303174417965454576834755884725868380414698511379149720184709645491322012697409614398055007310938720043028101899073552367423165442404694064048803176559455123961080847924924176204957843133004016774515213848373114390303178727921772137797563808242757891009264239209429107569034819826819559785899847884580287509178037948336255065937001995329568006275423286217517007844016915377094051877627048849354919052998779422100142087590729861485526288959149661386571863835713773752450682668088986758629500304133830427054943439790892047707466384639437414544531924562810831277858176479709854848789671033028883643797666700099172627713506561196609980138531396733586216603811802400230763928457930278449684812868762792321712824041337644675557403716776009579571127602294597457586138164088815451818003758583377892016903442215875728992179963855284486155925720223634605337024307753742602686881632340000993660032757768458507348229131147953478427798013541983008557735070643034596752934307680047623181275583962876894925996273643082061300438959890928310608403103700468182239690242257722814045442852445348760769423524965203622697032334998000407328885823492510294612377558745884616917046998836596038916423362196009793969849526484409117530101216906573188059868981468556785999534265366144840882828209813789532854804472688260400616703149012327925308815738345724298928172153467791584618181079928814646572008241550616880913321110520571868344438392160852117130786619964953924747660372016045752068833797252453421319137963558347469407756644953131451166893529532773576530200704518826674841031728948962031339332873031126288179590392925602974559730720696298389581086861881130740664692362278899687979356570831516769636358366693825222661791933093189177528824930628001797631141715500019482840023592126910749882122862260837280199953209571519326127803587861085570476699721207258277727857384397238615655883531006044053229448861728058789412564887291258570496274723011338407879755103355834543735005476989406855289180460122059614934878880377995979271881384188461041210560366843746027439616095455111590802859548986460991306947109398115374356720492785680737567710741881924752384408587539302679734997765400166194308378002503232759409656479465288898539581766411686241791368479231378725911577182625677254563263118098471624537173593922077456333481563363978255098308268287784749916408007003359779499271683554411287635432405793672300614841113454512089696742843391868695509135802288430258779875687912569450498930673325303254420737960340794456535177654641111803097606562409432828886424331292822839792737699386636870972294769254017779445805585087817075005605272775968459838823207754274368335541600077219681345893363532983159158215214664879130339929570270468471033846551522437674700331770873592661846740903759667411530623724361712675012757581981670125716046215416719157191057066805053894737468599654910081229153203416873328080333684745761393771904559653886294064282468451040063462769146679979303349956928124534616087655420715524306660643331622249135762219651197130622170758947763462370326828411102903750986929384384794499050107895196146959554433858134193258984957598081015712416400697870791780568524099807866150966037838854852237916718911272762690730932433546122935443532788353477947147095642391587397758567939937787812141255878487097728555195319270419036005424953349872583069062897603473875272569196347152330254161513767234809706361264829376468713357522956145316248566259579655879379480302697185211000833454285444793420388205208150605332354540229483523378031967723708184459539546252632481295570442213943207681589488271837698503917284299203967789288261978444606278848595876540965699302018364188486802297880977718608344453073303367873550920325772347706207823171562613324082457910384390918672637834682288339004466412942809553538879017730878142931597689374664051558028885261059345077130126921240840886706797408880461547258661544132091283238946664061062927001004491628994142656889215521118065849966380768605842874086202124493630067478313082074552092970149794357905251532410537514653766043433199936982767255267916500870242029083808028603272502731302802936493175404681316282050936337921833799026128546098559191910272095083437122872778170505491845682755322672350386390388632036195402558710691724232794391970383006769219159122352845561141821271298506550254130638402707863529466368715565580610896127611825332347122274924654570014431476621708015567768745906741366511998989377401620529911800175641397622498598447000247978897761974135541286558013124632058234336904680113515743651323413193417469390661170493078418076911698422680317546628151372098327237133230390248275224304082212014800221127805935935560829976833056641052224203527329823668320622804057896346808222497701767145815958599706298355565687358993944620010473451182367842121791506591790841543222260029250391522145190847247702693127184983379898972601441732487320990455275355479677774925750190726261772966844737772353589318844964113998847603049302891266776231760602254605401316837218712757407474991065623078531375863020994412796995303864806458203191804180071563962794126281859933147702532999906411134026279727898169482212783300808799112462149024181348424683911753892306350733257834498266240149847189292137253039829233084940304621449786283423227494291348529886685593189202141227959751313041865761945078674942334951418173532584080628019319201240155089952114751344346016884426264059511450351214339996543150537197739020263996669502143324521709866793052163082684171977581007495661871072361370758423193293111390179773149946544417013425915836130290659146089910673612758128142741443260225120518847092168331186993963729462406272630723873141229749401194593574241041409030744579173859748099516137178917988762780284030509215291937484693707201683412162595698009303041758263046420671579718527271356694764043007482185871026032204126990697007487931982820351492387735738522470052159244762270935838508500289532210972743439981349814530904030447569275980999873514970540773954510873297772364760238993962897129243380293718101131242949663665363510524394466408425223893435757773259421109205099205925526530495363605606273269453272405616182541836011473793223963833191062857748314323953680064248112573761647540951272939248204870134989131002569009717553549287061497028547793518422214233287422704937633204523275429529719874537521870131227627473253379347090289729134047284320381994188775890848682341565008586067551294924134798692172501468426058142609545351716777910793052768807694128742748206745813378305983446485191175264376796868036052974786192205970622494936483529260978449749217194902331310062127062620204927047522573813569025114972968219049320406533647871534793832374921313875721161148938998896234872219428197145475861534292955551429628502751410927308052014516740077455158357176323597452923842091334804095352748747793916010572384114545151342058424744934528563514572776137831463513129659930412582087010774479088576135745695295636497319012521807286714364285345333512911684081666078483417174148520165121475540263229413377956433346800879080544494406156282370950823610981119562435586669076190088383552520050560691164309650185696945823568619827541413000684146247324028540683945770669135712735369139670775582187639947373637018361575301914063647180038336616506047288718428148426947456597276003754536792831829572428943084321531497173785499511277389414269712501721926717937703790017220596201611818211775268474443711131973767970509216520797228278386944615565032922998305124932713225298497658348716166210956928366753459485170120031171227905589967028481693826911235511733807654897486697854381117684692919004345600505224869640243800491346434417528221094855525226892701559511538048206494261950338976234829432731994210088217617527598033757710121649284643793544104422441613983620530813664311163351947157875677718823666074084257441333070405084111865584070078050408100822918179320261103167046343212171775977941333792980964577717301923624133090078542414407281930723541759919280199166365571891364795800094230992374055076340705424454591186945519238428549199925899602117211714635237828584194439346603408324169365011835489988106618676423127039767311682646430369981863196752771857451854825249556067952867748715468953605973105020572176427875163951014973017093248942388961712728759475455229167573080302880479774862225733374299373864175657551533147298401910468642508668222663663857510584158152463966391806500933696518856027812306734456174662728065381663599023376371827290453077284522078869003294361620477477224757811761822787317743468512899863528728133631502358479677304372002545213248088622411403019995786015521745284530189173439164335227619411572729194660423289313738490942463560716728208187545943050726834141147567574389044791278430373169788973577261959983506527246489386991497425812502039076022011714691037044735499424111466816764046093458875162048786771719033818700670235376573282745264316731443145409237916348453331975936390645176814227425997473689386170423834660779004957922783931648572144277677391443626866115454750070425000515577560880081724780577179581858052255461799578858884682334398954403043349596323618366208547950557843506871343127722523069851673572531866911850887349123549701846556957100962893020841720693175009111220672615605582448404525871766045776521509997244217942780916217344806440020645815458599913412085800995517013120375510065331413293536063044204775429828579418182975200665812308753890435536642947017269653393523876367159195969918388348596692386852864026587956669417761013567194881469117947977832417840089862016685699444058516716636947627798740183225355368940018480904770213553679500017032590617186937822551835655536738054667159504348987085671805525664190752482122938978244998277345883628297938812740623522020413777473027617573088251948769568048382946209615869606890443588762633464001675403302877842612133325500823551568160414539587636809549104504581551424523518882847965677106249824538652781525165628828272216509078191216815028573368209768482447759105932863309519279472107186740961092238580634516243498203618049636516450708881541674195162005025252500987734319923763911707404520625376790054991786553047782013234657326627965717142013340990325986138633276794582078056401393596565176876467691165390108150631277409385842704340900130506873852493399611965113641206587442418979129585053374365562169588932616429016746859411929338146401305346486766558579076895775524485787333308233608619417564145095287531296266339163537615001683271567773361074867041529057033600059796678759906346803155807767978626838214833470399644313629718630014518092455365336664809710303329773489709306940111756394395461778235252268832481836583920460380331745209638590457256127953995545812366813261191298394418858176721095704813047774208968551906694218917658136865665986363699851311998311246087136762484716240386965923192596933279519436595004623024376350137461948967667079745054379021616569886257303905144863504873644316984588553914455841732675552043014921457722395910666174982908899145057954833174162510658415269600482357647331015777159623803499010127524433294736427784902440291229886452156138919608845834669197662024681937047673909980007047342500388172662838735806633086173239977363448335515956487570802358812343105849407887302920043910881824232091209151127992986788285218100989833026015480455775991173510339371446503879705260853670187728335076612681773116059620420594931735854488567372870499241685933957762400609295292720320315577835202382404864232156300586192045563173568544071046831937484964542423200497253695670226201573177927419982408894050159209803798660373163327187072175274567454565433866687137635346668085420491022975872531657945861378692760257637663971709693305025925255010997354086595386312006531840698438173274851301099859793190424048421098829184426783207877114266074767694863998136790262496946166330351527061720695663988562379750321024186750064748330901220326581005801491928242817017940786574120532756320111706330735683765904869421804036260593327800377578260919182444634847699199387763227716241098618492569283752458494906568743587295619064275126207208800464165123065996080709178636487020663854062549433966090701492874450428594257762566128990843142125203773687090172003668278910619467332905669260902392887725512359494502832606906365076132360708220342761340237724700676894489596708614685494695836663210728751222587438093135782057583581026061109965995233905025980675590460108012626799546266683339172592610205742773353601396965001223179198043389939920741878249728542253339850660441250545629329624765178917356816732159541359737797391259354574240908433496310859392616937919725821675880323438551752923034129607638558104309203083091344863372381476328979833047676836369499088304133803842681012626225906324110526656988198752633317344088836690477950779030048292328013821147085034821861700521464643995530497828045683500280287182289032411497387318635947823983717327421609042424080929882418845109043218669945204678522570112754079034052289953847537327937375995468375174426578679925144152108061197083202166140913178876828467234536448404988937369396919671982622168689787777754491470819819262364728088124989954517046985721138613468109481030695378770436527137230342592501817094052506472345527814412840540133147523515539625988652038961385345628315944500262906763953021846303773390778120244718338360802271417904507100537784896981530495165617989194550140397475702422119762317315261156568907461082748346406529830309548406931907357037494993256711948584385678904091123101929046627867272488266222910369750336012911329612243508944203448007154052752608729665929678134218949884634946750393576784629772368870430067671201721273232711311125070567484439911269193177504092055877919342537134314675672106200326309283025584457438760801707612055300509064398400099093977395359602863291779587283963384040668465617747777879187712486837083510286395321447385651125797340843999244396328065286763473467265978292887902846244852791124581434802796967761980449294103872340691191744112339634776421229871424964907170601207484094763510045318159524075009348015175417984642155053421303809257387247614530939218919440214722416401792620644587852882772324754859601842315504959644935817269516822704709265599068072086225814723180395660220639641472533980636805837039394558632620447668397189925381814201891511571744983622416306199711691386115425040114996359447992860484579343782495754767768442809396020171951988078865608024802302778289216895587799483126659832385850761920958304584697316469276499728546832994738123549459037508782575990709510627903114094306889408653827658716883146577009338260523705979271521534257634854327693109849030304917738646672162862881244818211733849095863998280810713155557737501252875507069193867211616370602271494990360594663380708875632962429511673523746899023389571982225331182025104632422819613660358329722745904487895660561357671027658350098586535586211300988448151852544210339513021395795727159630617417896726916469086004057155294036405737985684795457823960316617449651465326187817489369842645588971933698910765715569669298304894283489617154875471837581590954557473784494811996847028032297632829486819632966878144564863980276797797018833592177091021754817937070657973009297327773049579823550814709145244853902167743651781187164817956600608333981600080326590319865891160270305632257137742185017326242028164157615140286175035087150381706755564629984861018481407218947975129469614521910532345100571601464506789904348487919331471949035015043509905204683162334774124518335189715596053436830716943118743604870258282834449454258195368132269829099820402663955051429130719626777774460114726564933580479285860502832070714380865895653675912342452255699179644377900241443093754313064792921227780755781389917575239982136589621021493598960674033927474844108933125065075926392829843255921276645530607336333153721449025029700252374174768420612650105184878215149979965632723876944373799547955494439131626080326657600272999141447779509590295795597117222113845221102246856354556319662787196520391619128006469725796816343528676183978323502610657253457549308735494963729264781472911869677756598756095723074513657013201655446963949091460613217710699683034151520193156537935253834575579488497861156040991917426557727094862776702570566898023012674396288479789391464658784140636102151269218369581096491797187991801909896795151392914453879889735785175375668952257025203320185652870665474583151989716177161067193857252095021420603383500737307843248308685162744349079091509626114524470945245623722026635860659381646648038334177770438019975750547465422717111728376097764467728798775168386321094957960633784117938302840731516535019709116502218261627304823052772247857025607748284968161498146859862992006321132617129343988607030831996853360394315224583147224149510279546134119647591826390677828626502110897136759213897118797168811245882469319712263202174503833690451588583388983739664670801475744875171678910940937246550561007195205339585430534775005436909318679383433346424527501699016054707599105039973457353582932331815818231512612551376449579957615333987986176441753164694399696187058745216783511827225752393946413335024493508637588261809373916948717661575094478422858680865312967324207619508133149681732182152053118375385572596099421617827290835819603410948356987428970670989617850409991585316827113121063869304613766341692193420026534141767623761921886981002901747457057104049786456357443800903758454466881917986162911148362406945707546115467954443553706071506148410602116998906910565528568122081536488301917355003739206461016233919865844752792022154069582381532199296891229727366211339891352232537780634797791253927978005625262257266862751707060474442852000837194013076114390316629188770873927472011580743518728526962208842423715747700535197869511128509657553214623955003935585693150260355745675243648032842643830105931297776878688927154197708641976414824420914671407075667882590827937120673363986647606487470587380516970594152130285956590329145530945921851535056841623272224137584049150809467262347599909040220085703967988646375465591602895824470001172193790976844102205468495879261530693532791145984848658356658783442304743822405642516737603641286143078737278768410636335698684634305220318994133605023781111068710236482277060667966955583289409301583866769603949601871141635990262545732455433698615334707508563333822739691204505792301136653833454847589051746171577359684106061609747707177542968318489978512945274295692166504996319483365676613108256010104938716557415406028384050761242747161228096683009000877960820898964384758987118493241742701027910954244989062752677131973908536478617808433297913577236668690633203522994916497328230105365075221893518892946124251187028722022783136857423541986443058421319836121648475690940276361870697822412317430871340422317317808186128936598947190436890244010053828061572764755836967310773740442344431406878115599339098657535948667850092449451309772876245521072959697745999973133396876121625101039014039077373008982448612668397736630012951868439579026902297237411687066934075463329030412215166568519974756650241443885700770201228715435905859172216928949175114223796878022950487708175187816113744550710216378388702975324031569965610087476762197386728137365609496402548837075298979793267495221239175062064643852932385081695328856889646402350038078021772781252090084485116782681934644754495028853365066207600686726428904444447744612584148858034529018399308985676294445809756231782253925344829526340391475121311462356580239575298077296199303103277256890548236704799971320450551255472937099024895058798155355399961636541680246991646603455215861878542538306219186623383644338809857497407197528117659838986664772612195682060460168483362891194679187984871678225778405133950462621931799900121094719674971673003489560100193282059762528021837319531737223373716731325412078309021770913233308917013347200111889670900454592043251362272905981014546093028759315478622818721217454091942353850963846018409992748886942458178927372362372260915829732483379353022159839695255631079976362970854630078691217142973446659640421726369776427033275536742394868688980605064957258078995885954961556649369868121486904628460100619876856586795806534597940723022662561665331232108561816445513113159207449075118945283261353439860490120665555548215556563388419446077647772883154781793794692058839958235260458923776107054598507515428403545321938934324180316336021564939523018844779131160091140305374449916566991327709861012165128111797350722057765578974254998935118699718601364061517589488276422408040034071498201103488918556831366043329394972969368656069632075188764230592345400221752407788028436085107064130739162615723499767756057065220031726562341301340932167824900647856363602931244437043458756506089146242531212921765653603061257490883479938286816354866300193648968857214366954270996202322497568861152166001903582663452206739782528704859890236239680238378637475004797169886471285521857237702826032052546949036299447771072234994679447128912960500502943707652985152012379334119252762984396453218130094067500454161592298766186120307246381285112430555314751145614015862918103285099508716428095649435591518631355006952515628138505749339104493174370036820186893455651402555691589280751956357301529758536712247759218292690832487176118038253942407646660101919578230229434771872895863326508239508343285407587951438272710161952199559994195537304673392086800316290827470003884684570384678087091448171670818846280988003820691688284774675832193757051466759851929288813550169705381615520136680405685253418715777648065430068311413578361175933755096630499459593460148336113452164408174050504755379151528294212914331862864720034525992796529742627156484835037202289249482040441928248537138990176991303448999610736821997452755297635575746839708482577710802245968504285086456887551863533170641678752756397566260549007439534301486483856308100393231769868209399965552928512104834590953026592379319675514811212074085041058512151143686966389486539490790644790865443996119946802502971415780153987862351609789568514319041707511374232133224772055405188986004516712448002655945142231612166440501216387614185706991839115002445297680191087932122370077191044753896148678191038995476502536499737774253639506899312275909233240420050314891569341402262924910719360963926358837726827280508807014459214657294062005498873564177188192440755216295204148153370953445072670866018851873208117640054279457508162465363209933496274646340741300629628564634619767716595207150096631869651107649899561837167684377740032827358159676959836588341601219014954381966808664801468071427504591998927517464085986095172773691547938089253091798494777857306476938543999878784429276243547939076719481019359519525969924397406230678828914338763755084501990872796017990140357894034946668932642779944055398510606862506238554713884266499249097393494108804996658460895434840291486947352423018498948871134815275191983239391749436848980753633410989942193879396093633999427806859504335728823718052793361926493558295570810150656339462497119933736596539442319763449371255819286770966389798023886850250388411115339999605802566147121192071170888509819647131086767582861592915451965776707302243361042857334164326985160408195034111735927119015253953586878921600964015219508515356608495461082676617102019806299614320852471507499285789798453853161633976678370462514816591788655159343894338628225336743321234266647714731299708014383397609244630508681585406629816069298514920840765623370343315763944759128452586782470957087252480698112276406628507447605486238413136671463050526795096957351456396424347355936343689677719350637480493658804039238855796346858247158287042685189472256856202026163804068847809922782692022643065816968420672038543800127532756813189610000085486107130206204998379036933488234493077257232549103586108153095930424833389901897608988848181596747167591740398568347542071846410434346465105759815218082275011718535323645812754004250318919296492371861682594444059348001934231730983620047653503462337283710767791561314604916200854173235660556969446085617094805241948234008656706173964144749074710596309592440808649799101486684780601733563663188382454460919041223944898381497047586261365419952398107926583651609295721022067323903315994588532405532142156309462853044119046418015702063141307197190172711576320716510767204693829616608689770098101411086351142308788040496516351467193734992246483798248574539687105645760214085593559196311418330089351384938518585823490355265917398331381550491102320564969094856930626281741268009706743382017540224161299281180652933677030745244427339395233043089227652061719220965445379466195936770156424924065739101851662231971582110173970981535551268684890140376239174949894133194618757634779807910562967544298257609899644498258430148634717737270630563973929330143789287785813850431934152691570571467115579593340309169966814333295894406261309667297406809599650707976187641152159207200071014925012675031251448601811824964980641076311922150819303965632511644632512339366761185482105546765465966239071704626552384891360921789112000371832184820207633488401186176292977828168828993119734056655931232702901075984903135120886107338260401980605548269179208649952338610544060889300962719230280701695945175219590881637069504478614493747796749539494311215353885383724069292995165985277010866577062091937716844574329088107983076381874458023176125552667494777905761628921316822537561122750325009345771255837111117435006585309721089832823972618823606107513877048624898980369654172573715446301360744300888416672901162021845523670919509328619984286827217432858855185604264958944856884199427147912807938920314304786808394287496751995347231184814542107109668698763468171927055332636083043562989687892639162741719647317429587748488118494753967907387945232673131246178968681918009995174493851048740395090396361962088080470279851379298570838022755652220209224856141032921644117900821765227294097071688628011608722461542686444569138102036978439863492614548785028870021096983400199896368626391680369665226813512162390648714079430866968976103638656063045228499284194457071910677804733439893690309955527354853804545583797917384132654109528297452994711292338447379323251730795843025343551017662810139745159054423899864324257816467861332828514373237542842550804292981909022541480996789043710280693746757707351607343298652038424921836068249399157504496538176130114539010417421968522478763064589924731264171997506839882631467862777992086254535742277293503695153468664088988352752089218613317090003536204977536896911989346807076842829745652671082448056655927277641017772267998991540325748158954615397915238402830167446147721404071761557914323051594511972460614868264257637632390002328976508370684636480937849651609168554817414292734977434533653693276169125469781812478100071050993628898840182953016463005516888886940400563897574524404562680715235635774734311507026983398937073883370305516208697205653854833184157603570126159633731334811192619052093997658423506102991918105566728737779816547308648112677114998941698643040488089589635140517787037518429581821282475238610201729973157693388986469581538148016729065043768356751586492360461577187115708560807534815662458874014781278181732902660015364457736670338234435315454296099506875528254223858636638626609077507985104966770288144252623952036827871940637420274037756690513411043063298182245718539511670551913186611619152445919070967789180595210272174764397214289251966667424052402683568114593703942983028099913660049333312156540748853624960491526690141250245269484430435385482284271685360403079518817392689812376618075872776579068194015284180835805293452256273068091729291694334868570323256870589155613805033637696364183379648493828086673928842299164379102200508666320990908358664445918154267640900959849472716827011496754159349148234852751979975308250197901079327233561419311522220008436737823621848523491735156757740620691505392809747980490502755836207967369646352641246195635334642185543117851187421909413919186136050801110164442095653668703482381444618710800850635071148363668383169293430785732315166215578207508079917742725940472238845150712653262297399034442237613316384247679879330870646226143761292481498053196217220843754712031919937172640802225951372274767035492559959762828185737866523679947294070449609392871408026059701331365882247117067980507003890612555866830450018938994231556106167427875952596986024576744672641330353444468949719644368298357636031924971916475142785949538047271847310041348041187133873239593973967232338976905681681886332356817617266799373407380530978112775720229514431996574760627353013157277974982589833692592299213220494669830244652242776726544995559074169171842420703017370016197661992718777162922868726897906433587431275356160490185401516940821724038614144561379520756811314276971135787836613144623793236729851969141494115872521051144036827324654866169326360284993860242678330938471828641062513986546345666130207189663873215434805019927964991507669596955945925838849594533737987307923721438918820548717349522369158881735976707272068673477700545471984804183961597689976984831151733389343868277253738717130967242381578068385194627544531356300922075424813707620199787359436169702992506861907434832698015091110133816378357531506668881112955742423829368552223704891528945605985700338363767850054073466978876802988315596826386682361302348638240163395787054072182574199698767631128325305993330768897578730721279277207004773859245737613305205355903725084763602648819901163469750462468645230567630626633474555351634233817157992523071486902763808241110125908339687979821850503949772925068762957520050582975773591427342886062256446727306986753198562361575746843990867591991702218231821283790716236752743618635227001602357778414731717294020461144714258304514246410929701218733974085537631754624520928847749171612955049525457190335392477596561217866346484040691934324444713788053402983671549360737156280705480171640868178710075243604111414708166106220681446983747175108605795565971669061634098607312397714199309339008618869513274932967879985082479178153014553356277092015956090753227859458825624129323233454788854304397657351073673647764925073144132698264195935133247160683338712058190830038066878540915239540591250906209849699328063992632972891405214776229081706067962536818953868822702296761529135628635003442707244351084844557193039241099209531018459680907861502711573973655716337101243706351585273785884820137758108710258849511012431882848831359667008328622947032128184923650011441224715460818461306756073918488669316719141461722713469687745997968945203320489237828350172279715395681351731880104330960410042966359311189936229710341930317721842668546002082113311232987905114675704340195982337060808320357192825092556561032835403371664888143484374646784542514354778735673226940776063407332017451290286112057281926419368979083415652173104407578091691413572890685153609510802616891225740328098797570425717926868231572860380810748729228449774412314491453312324929049234771033160502312396344305458622846383168584297433393861878373008906790937384244576686828179573951566679405769233806310211973536116883068723941376754735986187845429115234529215533879611250688855246213642463743310966850225028635538844056056987458295928194650553205876499402413679224373771885963095946339832423335069046321588874582476466875070219904942689457669629632490539542839199475727413428568255091499886298918621987273995428246986155555377658900109029521211430229483100450818709745055232583675458964926773596087005647135259542580534219216516175715350199259515179445272354032380924115722960067420006446005087017121011116828468787533771853950385651186861742611913024141678140360709068308378530845947822004444946669195384237108943309385802786971223629178249781339029216155752190418428066078049177550304889053942206772575739329999019069579616297203483098597641363171226764269515340764934613454768486666234388283948409576420489551533483973031802432031826920106695202065017866044916316534490266516448545790886423452244438935065311024857600958825485366204110450568073580615799810517038237180075331836530201486639853210967442337577024126754393625089307156947199794545131578032377610682623166317299959566311074070032216308104404051023782746666908844737618386135107381809071848974160105392816748835367946224212546795693752553346971798777538094598322578573156815764739316962638736828921199736854662665269927408260947893031025338528961870258720894760796263336401984156595029999959594276400823352187682649918360601751651132416192125520963113202360631074926931004787951767155987648007300863888982238808291127427663044076312198545823073918306950500474572896019447324140804752998809647821256994284844262151784546690272650620450810928983685722522616477843852139318271511322907374155173339753261028262677943762309496103929958308051602946508448395986011607212891163782021067147804148926537917778637090895463204756614891238352623852745168854298719294057998214817558658927654458291210600433274138872546501699017476346431087221363924762730300726327761710926189114271403169569245153100296664771126812846895468783827677019891628858183144634859658202778420619591959496341321745840667936224777000616854680621885912381678188036997698039748996887235452703577867233898291928588917793592286688574006770037310706781547229810000661821702033117069895358215050796789005867165358638824314415966167685327641609278776383580475282528280389447707535426345091058187877286087198863762927779682307433012684376966844393759574724272374269217731552745668328927075364072470089496935067784851085583901890492763135563431987766794046574240259590928598163130874012747724382166267268842032414243257641045002797250140310838141665754884956553012464167382628186225293026118226274892037580000507632179486391422599008659330130800867979733881247236152662083052390710873622965033353484675002825504724815770942953403537087034575220273893772664808085563771833076436480989018043723484776723529795924141619434849369755144881904475816625912991260393666668546029404186595068118697544971497217283095888624479031343441026231724279981709563250793015582456158482379084168581864918073277672003465559834522649413743816706253188940612135416110861605707106380872913183655503507434585367608860861890878928343412753898031555901914386855744692671891581204677008856606304616942800243349465636899180489047477454295970082881707068525083102745471228468344306364967031419808406707154167616875425516755959939223547197211659780490371151132554766698444941071575049645434193407056421865600262949937945256080028424368414118938774290745992657686713553822325365581013444083923922130419715114003013746807889668374050543141091261530638858559011311602203877279914087249376549425263597736647737201998086277125219605085005630912946589189444963954364056773727715742447388640321286460545112362858984823301791327748751788336335424008839573562707083013958268161603700007528119833155549462684553673747597657643893250352633226458613015221020640070434726037773193422928982100700068372199430128108653469885615530142418674930881647048673043048502213400331624112060964858976915296117935206706084856456623244320074733208007832844244018081205613434057535911848201612995613678682331410072862566463263601098989340947723821439135688736679803133673175399481889702022195365374332972379878673941186039752713668301726490733496610299175816424961612648522959913251154276853104146046245131822015509536071567477889377573563325943809946818890888854553310338715007765722418899747167417208659346195192296695124204931092559512684535489592580507112512922308316535250591447109805217387603557362207003629888881034294706490935675338960452578640137473811968106184644463218124770640202634965363359282759720348571385819706125637702440967338619955376171892592425732992118084014431149586330778778873538112362273246408840692163948619230978889624147374997748233297748382913749537983845336456017068434301833831921571628442508987123792138145966246367454541646864519745513808091454255398082371824022171042614824222573304281467838986444657844859728159218191665591888708480043829893814643463879259894218395034453599212800062904275392750944259981059642036720350049605628498813806230761857802029845940113856066512997377597319544920188647357912145615867617909044292458000030237201823053276094835113460926764448311395842610241445071135818486786915456388011369713561957472541720104469963094215813823627853765668656067559323061596817163432164064167844222386734946029374445444401397084616804096766479324482042905585963180315069730307148933669810839852257912119198312745613668265542967210562413142940036706892741354761815462671968942244481955623939472724994457207521859793166493260183861016733203373475341859592649993740584453267013470472417477531730689071179241602115599842727502471590183430736084851896061131465320886959503590016101514019869292976048327510630481609639430392291878871247735917790983739431546735848337253003109603552808354012689331543246764113991088044361687465040992934073291753992160126219131179978896290791420474016234533466758469784722513305078549763085719485542841798615121593223464337348173282779144193143477647312453961764247312822458414495628623349982098741927242354899205922413708248097110855750286862842211793668472214154834177610786143032075983422844525742311524495744073801912470882902242694946559530189833033102785993541502390708555343780059147282029853234406696493700538456593114843645942941334610729135317157780239987089375187300281267296552993503316191134053122857261639295392958561500781068884423968230595909822204842028843441830355211433949357870937721358308390364157973259870297376349071294678750247608787856444257307279725042633262888463509300955252572413579789827030710762621157087390012028765547351170276169516693564116955433746458639994358761463915590821864134752805006853366504454794488193983150151337509874460471364321108061546758361458871634995882848844804104975031974240187211179411231811293626682336058773157324071004912003191779129422627251709175665468696255876037612946210978450403681697143763290615993311242153858195174192556777793418507891975162601910355247383836601133226397424232319175244354936421173789596837639361450450160460142935689639363893097523233797652119124581535263480040078600593608628492794035670635910049809807008752137722008364489433626695669338701405618958456260745812407360924776284243443028943805215733990208452015708410937538961807150713566836624384302860227264619911496086248361277552556834858203458024253278671439000425029126370789993545993519009425568885377303374596139134367725123094926419697080484690484018229628789192277567823552480594978254448359148916067198362679610998582287300723407197601332413466932725355528500707961697618782117213010461148650596240969676961992240176084354715362238889622847541622739904593871970251273877492372329693702086752403015485600081590898478392142153579313484082504643812722063748599672832026839849166745313317076748291010379134675824850078242781131822065023776405368833197190713019648145109055313663949237271335679216856400100875193897756723177277861903181806011221483666078541662372523244749504818159258182274058488569030181635060875383780428837625902631255438900695091619515190707689292717341350353485945818237730423481944910873026453225265734737678552468528020918572941659682529252213603100656356641753938107786043419924322632808926488956474557392308123248508508313779969462968344604304541129673542320754109343223436932498939083307714512487967209115920771374032268451565276853207045673411053112514923112941389218206606665782314899858119691218826925487553096158909742131783147855807480112628813847208724296280758904576082834742468094734998752928127137570497010611917405939023372291944897050274796132279340517312153035091040514288647897562926805747259084829110082884468092503205577626255006981467134038937792337170424570524664690451328237936211985064543683977985591760979850018580067895329738575062671644466004581266465552310987438809296177144146475145817730643028732107749139150315475522740139340815263816411434891319770634038180339293340820210873327134410434245860946154626825632861892772520482590778661737978794394278187016439299895048305233312704162811933794585869736939348793150402643040181266847325942910621816093216949147009676375985825873628459327722563222223163181644364195315171554480080463710685223704549041938128171412920003849491632331917133084753821097609546135897986693577347011701722616163501819509540413102481781925376981255603318442879005874359874853626354790439947184512722039512523336750720440345541552619590796366262776681007724498157052457228595988790787399927325274196857895283447212737641523215802243750377245316591260181652595316427497372172607677423622987104512213267398830149544935111495699271515212030623139935304774484203382594069946604260036327018255290473128337607010922814452075006850510693403714363856331122249976493996631871094305782653708568658432875537329778637063735560293805802694916187639311443082124920003742009578967936789056673403045467484679759258048728556756330022467931268738760104085032487236293627880434014857571196279684055842194540737875112111287620549885911339464275748316844940565093610567241261329019152351853584803514748697800008166454745802334039183251809518101766614673831761931634384319816978414885952562588710248016972968378692488356161416474582616900630524894211770535005138194939188132327915103657906775960840166489950119494083137901802500520338348729906413168155187718900932081689880644205409338072424127989878124895223981592714269998341496664163844975630586477924266003445027652208311812306272840593533333559237324645160174682449126903262522725584294283743243118295825469435947207214912476537625269265965761333033596155058223777734459598460054311763919968305863557724886699405342568573640180238153077123731320414656528863208917203421811596555221447555933454606042147736403898377368305401112504215694880146606400919903982658494986673793662726592032157297589845788159830359126373154399593353993335813689205281916414359459490633486217587625090927323368182601533991989030635212561898969904262281679771978809894904430624832169810589616927055235886717633527337394687658825154179724087247614950889538758574884963190435576468512396097293572800684519623429828917001759440717861546396855801953032844232320598773330493403293861178609543432656850566711822340905585500105240824184084209159122741053253660957167329559880967043763595775480893634473485490365512228883685907932403287622617071442281876692232634823352994678530992844828159354789134469633267757553715669827122190061231048964255201510775521374488083829935713042974367541835635208962325443150108382818884072329614123000775050988462670559818342625153325431023526560972049770551718869139201057898142654830334534195620953109434090846440640659120297206103191901415575849660286693694257222327712736061569693043177717159424065051717221387268732425643137374983098417330454020837293082820209595553739365180160593507604151406036861864638753756924316517958769442315350056818775785064306682032590050708484121713351462713545791546902786286351136326003464637166525922481180952808902446247645922143652309457424526021404893894425649683618710588850466758902383382813981850292213709507747566797505038976330601090417930910468667152463417172680935471189831672299975208916382389277791789781467356131719424784256537812003051584422118313815148377314720918199359314905453962607268452818484858539541433629172465872676835330458424834562168392273694638751695837827606075897439753243666642893901855064419385919819360346508152676654692972692160674409609062911580444825414448864765423084644382405170291131439661588311910309482028553017283774124870822119516062709352765482568196089044917793023103463708112215287370450863697998353529357904232008083548922448228900336646131051255585723143233608222334844973830246743906703947407182312161019416505615026727148542415986522817379741117069890512481610626543809557291754458512826052041735990099323256657826641271971847297093264547009205862339652551706368827419804653167413549452058745311023343011334992655836587862863761631755166497428495624885090176044362810352683414269309948533832100538359782810841026887114754674518501757235802127428674035573956283702797891999485261764473156753904025434942073037043734521300477561629935286878391534845092959215403596862858943526293689012379994699971346063822309150624143804941880796060508054504777064757294805446931190342890064977842149119335409466482781386702338719263471709258820012545953089022279123898217783455125980962602847121332684069755435871406991611286038811731078431700065748880172025722954820064144878458290741325528375988384039256129671709352486839185258876854274990458366379147156596033844027132527710699724926080111451975228358453163853353226717519656972004344607634794817986196651388848115255299435416858256640714571771102553684635742679158746538267207800389386723521495732754752412943467609261842931162019719388143627219494556859545551890286874987935049574068738626385922214413042076442367971768169672554819875728251556161585116024770851111120875425115895087781088076153811303964167683012909729002673827046310030166700582869310599808098516974806511261580386982553238301931634229672964215494160532690563786678392202230658352189875866295028393791763408416662476708785112742241085579239247249305919403294501519439399926890919282418385039480053382694721749054119404483829828806714834424387706070391587349568494321409997355562397737512238407586443596804329987150467561618439746475981987434138854040609696925643675358120677646339393472645754646344677070338770364049864926273739101213356009491619364738117974248554318091140308977808916435708441751663229393262471243325467801834459061651134276092950390127672732047454839096942658809410503843155888764540675717014193951025962109017904817230304916587470810882546925144355742480956770002010253697274534066967365411042295225849049036191289546371457084734664394342651411245226569167536946439729338099436094241199836157540318936380316916834984718835933416633864816364364451362525718910982271022576025399864015967103001681675916682112272370226822897370992981932372068581284911909488576207568698522501155343609761036091397722431379705988419071970342812724951093452620984003632802423429282543336343166264786142614215010310369097564988549660518757797094017055903866845169687005463871918999705297610484974770154918345993017558914515666684848337492918075239419890015565707597476839196659412315524863707111411264736345021624623492354990933433860693236116819405311866787797219234947490595141716331168431004863996408855071560655399793197086210421311301978581883346195219733326276511054029328149973516915474032071249586997941976266929923122559361209584652853267660444758881853596782089620425965254525364953450441673739400553014764587144423196527688890717476571635516066617013967906822460523392628887537106425755591809424390422233414616887113241537800963535427458488506251852327967537401435674129994009481037261094392272762068392409334243611579526800147369125531893678622518008107343080711045416705286337939732640063149452880344036094923141628818286925823658941230563880895894858789279467663130313584195817133705510378041552230934683101447887819443777147760782787383638888124077867349545050858540616403247710107919840594658980075380643275116799657192314568025704866993972048936434868623845990461429649635271484296845957322580924177994870123623438583680203639212969936401267249252730259312996485148647180672520465679026400993399802119891047115105316013215865070054646419659667037734915587626847445855538125843141983515585351449696300359560584052670961915720870817582920432106978116760254109499844256362041114674284479833045337256539494818001808871340513928231436200856479757704081060513596758707569356335794751615173881620980279240695950024220442763636501320349536562874440652754897326316555781687033402880857030423782390621677373868319048420572560605310639763310481174663957717268012248404028316198679259652357544924617637432833135810328596837606211630522275713911735200474770998752589445698584600063595733018014214314157468713233711515993599516456923096118322343070168359211492062288627932216391406106945008345445586698209509107493180576800576058690120677616719522741177564186704661468590621333217613378912067049184882393366660281445574022314787753775167833575168564825930254726350055501088273635724911091727661748147156414841015909526328210026128221163549504768234989579651888761172015051948485391721231970639340721851544596298769552384532584464634884906743532977102617518678294611683512043156998017867443676095556405046889694172810710513464324506045250293016981413237077359367026824084960605253172282375364080133695934930249829199104333528785232932073018166114786544639758583629266211427092331925985567970486376027494197712723644391152283875500588502165275597744577958877214359795631339806758467022346809826384261678639203989185781298037461971667583716841213401333114555506213651598699557679819581369170646983031868384664786081023811196472430299687734544671004454512570744613832611522970517846656391687157235320339626751306372728456220672083741993707192856667054880277029047841470004759545580325699389757699662148715520074808763302412172036253622411186894371694414137248942638971871588344555117420906923667703436915642251213259056527541311171894537183679565437248265972383840229458279516849794090019690487737164289924362650038388410062815056357133899523686925513822331714216682693530105127906948812637545064283318786959858864718697750712408861992667926394842036847314338461884019223347849324340145305875360740664373837243443639213192091595607650922415988347744059438721234835990889109392656423257682988334589997230317048705725220479838150224211017073223410392549960197247795754472367102164835205127206186938449399769426945343802471291511196359242815118047475073361343712984449284157177135833210331098312442305456176739088900804660587019780163255332575496117400224814495992896846777391302910806150252433978331686265719699167557925380244708472046758044453971227864696244084199597568733615937982965058704559896259862965950127110950769979529319106141209631760736634021633103567397148560490953925695867239613808918814186964717006637751333283210488998817643435132865133066294606180137515770386190922056902182730599230036577319016236539644051580011163477557817677454866723406694928686440497516508781241786726386380197421974303645863541124993448034834499065680945913662351892091472371805879711943803378736599167476771268123313909109654803117503794161148936558078311447343281458773457048366860162772268233987613289377962713942316741003255014888112058286165726675583182163990404139318748382237004375601884948130718819158046677815134937966426958108653063691204174817382217250878159299141379256089867657984554275384923763280896322798779657379203167879401385150876128291361310284914772222917613345797797883828070307523449972100642982485015974229464240626153777387025025770370566415631424929488314123005704218992711986369687561496950073494955745234296608309390738881328645231682361381054880163438674280422504041894135856650625347989066242249583603888069340214140874795741229073137442482203364842994017412161797989554062263878541584114690978814854069965117131493502313052230676850229971345534676123564586642355977182333132401630435949916450894247338161071653478675103136305124956612068046553445875935426153118623592165570687174456554762755459905215565293657856633806779846644831922103907286111856583061588509543880937897956109154800448695754700770262228504539432219606034596695234529384533987620160731804585825853415698550690557992798860778778042246499045878277286571031282492812988217870498883900384303896126976878506175197019009105750270365712951230916631041562463223323082926800589037061331186124714695540477197941541586423944635408586481067726803059642628419201997138781137651384007216911097940597251935481301260463080708880455969318889443016154482355447770896478674892443141140281112957161965244557604535150885166242358704789688670710953308538242397559380326437077970508184415079347923845945349040990124598882654754891234780947011260721307410671399787037670866709253446148757969999731622723970251878536367015311828943235095941118880738913041588260845887356478002223621189202662956096541059431536446732256982104284304115252006090499604961612171375035301680326042049415400961050386378236594608867346577061205369285407847288681136759060800522396029437329249911770129464892917789073553911560112616172645800921828611785307343482215988428071108716528099082910483042456289849057328332978279509641314544124843535460111958219492195651421931766752679536566536667048065155844387982636632686489967150579359519878253244839421256360740613187587062395993680842925065414402501572189955283943813495126367112569831173671534584506249520058072652405249517799328619926325827941510880557579161405144256395366128454180469382435509558177233023066065528750706214104210863729026260391744272625171768768845622830696556119079822977981987645202475799685455363973937686416788543266289500202855934469916483989944040219781347573722223098301630909553940371750068704712323792405860447692990686096285945464173298755363985495233830797503497081227410861818079386195902012147126462746544503809150309800975149077524030172044816149135509181876132490955278089223311880934386086804974379456169804326791127580505114960214196614251289424211177441369999645054917221515221090842988008034855381354648428512175233133009515521738807841803994369113828719820969237818905381858166477610258011390071205302149691937010621713154937590741721532943951306284490837470426023381645891254632391110582199340242388863576032565821479631412245365880178781223785387908353366188216697846867271923320118628597541717579034119227197385183453593139533209258824350368932355151205039219560089200947943324146073188277905473453422065601550838549521188499528303632392151845469107269426854559077210311811813741137104648035962542052114774597114958380698911314953815116213032182861441957944016170260716320079398118073727956719454537943830742040199923927393138231475876892775823906981268643827024372074119400513714466071515623868622011174121432790618179519541376465490621500010254475375510690340610728348973462710411337653000988952743619458638808985037249529589999224018941745030341363241503038097749983945973991046784112955189663032249678763028100170391637084611470206177636641772589566439803775407349868941464973768508060559226871528422697699401464304572962667672671256198402577932343618561908649457785885622966321430859418748666373000684647636853116177335956574427903101950032783101666191017740422182415104603600270277598650195241533738003861981761256604104191390078675549782993137439750071680248126657149728741033424382288858365965415975592127394703362591482336965597851378036424647914989654180349365438445869060536821884729433781786906321408266316214446694057680666162938954796517996619291477897817535026627899802723287789217208624616818934464913242519983221993299493746751290100454697893153643510839613617181078292042566704694788311875687739616512022189438262776202067474636757277394351331236264079059027657844989098940972428200505652338271008877564403409426855292957741040658551848450006869280278712345733067941138869396913475059907646424325604117428477355558299488860618538880552023704012019470296401433866499526085567830015237698175454461889678243382277668047047210895212286834029066024075696492393423723616815540431409250052137006164204151020394765269553304402178499737909355534826851362651831250516025058421023926716087853465686148679327971213300393490687701614491981679867701732244150239919342539190444701929689200536997407853273328323484018605728686418889791943161766314151381577198605350347967971375373028068740974192102517036701405706227831696670173282283301909909665305558071265293813190430072882948191695641391847632930696222365999647938043044698589361407315677700861359821164086032873797063834951030202277593461070918271553716751001140983277839190082444084149612117244118853091476891771440008760764406194480671366132771624751586644057654162190646428186631146752609810647573068087906753139053839649725769190720948575311690335052956922835598434611089283671856944324772488752820301178705055291949677894953573959315149495461805577796826561248374106808917133141840594119889332579211845542383305589792098474002625962353943455245049130780614436017944549438156534008382066138206495778909243959949954999319683787142865777568841425989631827505499569095406956954884166988954349635873615843910748293684563364751495649441489450958277806734447564509113942450718634600761490332776100385153706646628676741736475031096461629733263612069728737040561492011478430479004341176015604004211702491852215938414363776613998688210993086281233039950817559514946609019384809209739470061015795004160542062204325433863157820335374589272067292297379749798811650672601304300497148936866909619522046941850073774410448601735909675644816707725165784586508522124388514444063759275065582237238798326422610518314992537713621439087258494036975842143502447488009898620294897782069080922070134053573627355054302774521743916716119153742278568877544498997308944415976016525698515746267090056434261365000153490405399840640158585936421473393630471890936407298975221568243778034544405473479292749680026212094462495881080507153622437090057719532339925696328320229479900606980123159515868804247072170410160210109235994216695537765902106484156187437919434797586347372799361122108108297323918120088082661338301512223990682523260086485344954884856741427516153718333502292613953986941318968842041546535360762933519757102595956223213031378902306063007290524070977217340542835714342280096810650251594787657402253941042651638401385698796930536200909348229381865820503383712777563254160615262902595179220997977846573858049888840464279660591603637371904825060013431150139513996679832737678863078436703174228062404355942406692431046066633809390469304169458941606772408472103365642761581206103761017861561047272454897935058664767227325478026609510599625254677811346079742793598370820977466025803369486378719922193136817381565309559416886505924194978964633180354572785642323622157359592342577414481511845131763446618145985227027124374780951928495984576160809045341324144425886608841564480017647960478795428916494127465828903040764298042465724208044582912683435108595179742101153845719064401980567724192115243271034573802265364395553977560842471361393083391786623291445303846938033970565084362665049584661970686684664880457461211851905799342108746977620752162081396936051906559968019761059926594702313390984396608004471808157941036008518174035052360593407036633083506309230200654798918340972661084018863709848009278591140138282351336563332248253772422863979572807181846115328984381292554387050470883915507366580649253147666037291871663536395466943349612995072596086544387147974057052465016155465109722064509059506585008718563339436924555623303457969112968156222124122367591152161554698344449394573915261640325004130215214973385444732627592146453620892691290445814352228278914365039190264121703223154241421599510674272387035824822054392280992842212207860974027559776130099195087688764519987366805104997877159266093967214254490872766697902578033804687362567071867121039808751987613219623805231035552770849910120263235725934453400231802154233080410921690259559733742245159500014137686178275351526304267798943774480037634505608299408119062274723377972801104333160787844196003575182214259559250134896388060992333452557172217873312704961437199161471020590481323441388463721399093993118939047120159982857906941092659782104861398151928273056514125739402009287807986344795452079476757542662362359997835900122505107686923389661666056551051971433857209317182415911913640819623898179953776350416038748369312019245656157876576277222682975465667130523749384786324070866942130366899641624212379003372382615286680926913188544377151139389241485484405142857541939087405056646282867014687354720114412675506306316926926492838820525265148708717092854675390509458748960122605638694845860639356786209227556533911517343491686559717771097891320061860647236611351609975939540946760608545042615811746756586933101891630171604651341668097658971345525688646927876535475089024244260308680144165888696709139821398263347411792854364632348317701647385258355261707179747909945807265711322429150897818919064079306781970710373762840753557745793257890426591266798139589853534004102629885714931777488353423730498806631914347589773875711154742115430077340159722473738434951668194398565964553154663352020845882597803129811658103884549955371449693498923151077763631301414209585904616255248064836574675801042058051608995069408311233312663780698093777166340619476154173210509745963171310206976591228181891515199524496871582840682386054629276111756248037250156849269601344011095505362685213347077848826423136726648008459309387341148224710831822415364235634548871290831745022593009077980099921182279414243369731173677296185018112771354212229158874051138803290096850128798879032687148508210281884555865566085118844500413830155127713611490576256582673090925885978858921322059881838353472266259660095222459384255386768151296988560717181029047589672731448767883307638331268494616216162081388386157683619150030472971515593977370466809061705927728858400967474389293963661921550127656457182772495217543216906223191590510351830662467372646658506809407158312282674071661035867521935694708058469419298748354624002888553184939033413469093627520333773002208151511745016402275806203805917591538827210773826574134070102751438317117810404116503422590740470504434352628523416314046364181017192363508390274894876893265021471661417890474574597417588484416903720604870181532819783860969850036580573313202368677717528990537321876084570841304025074197654444928891736891525734011897112512131753914017652118503101387440615094467982861680286072384047672423001230944696036067822348643014225182160650975074590852014198507249451078623276871286622044626552525111093937013500617105064106082634001888178856313894443874362992292720110624836802290348320840291605245547738152558817115640207332422777160551576979032474720216747205675684937617437863057792322700667006710444164022046613690570682736070251972290943350246129183997074420695043191171922519887902644133523730139585038077069585411348005423769814323530499794872746594235739579299398248153916816424379306696914785595563647989872683253650021564245192761543495444394043342269528681382033771635071179886390886400389641494188153666349060251339056596560764132977189042084247894450914556890272196022006469033802246467220086581607764029599204394018445630689498002710581546990960891790005988233372828238521732515800584173434385299511684650649762141095665979566265238119712834488368913402427454647766293133758342770748498559788018327169671652136193481836296338664834117160465131023672365193227293277040917882087850526347874330044474751689843453452443143104737665249409323115204490193013135220810682100668662407697854542982870450315364985094762464979888792356556087993255539034980309431774800374542538983202008351126304620457590861203417448460461473333830134818845795996864295792180638871556295462363608412455756785166285086576142123953793451664067017399017534396661443016101169916811414948252357503468492679561828539779346253085253855673621996412960319575287976244665956339413288128808928601258307701526326479768263067408512063279688508121302617575835043631084752531595403345475830146465686896052720001262659692151957599342235902284346245845688605647500563139831787903187281303762086304441746671670263596698671480232068629539607586623557238623536736812817338775637281572289963677220932063783953863253332904916891981630635304254651411004790754818977217300247219609550793493688674767542398724151941613966813876359251595082162778779337424745389768653110602575444566986039685366126077535749467827507098661240906785245324676389878420123556278022262817736413802876308795875388227064080797429536598807907878696658852520171781572894669755282691496844448774755935207436168032743597076116962900836355826329858448017720288418612160836445488562497734197265807355283527558194496332456070703870520849477166983512057541232495439019666960975009588607397706816464375743362344791060765443603262461391764263081118436679471086065048340603293988023616036116228866560115098222070767860936159037464554387221462502205340939429129499338406329246820772626512245627933338533325358978696094882154338200454793030266076091724327760549558523197378432783419079907489674530092665611851194188563059362637365950387493064591231050312520961962821157810218350437949055883409924740595155432024225359257003948267055944949309775682308425502276686781846652891854957477888740945752110794066629264135031118104179297608108029100525503882112957350711489972031186686379013288947716253016223242363641498162474299477506649445209643939412219262653468775535811593351397443767420946306846119615844877319169737980343215797405751507505317246057701274550615618442777147236232391094661106681232809806649518935639036621035659773783828967733692557671149359406380863169919242779730493491632033023834109069661170657675782825075685080999094215256569565098171969667932165860091370147067642399769318807865156200984894477799946606075103716066857495531476895761336781604239457568865025267320298172177671906182968726429957128681149275251085212408247456004486290529137598760277265344010682597320949273483248848068519890643026899833009555907774660504314699602857705939350415718076976630221565952235433206236907995232999362524776255230088282940928979263358304941089552259598700826089525199618216594736704586542352215811587971777093406021136432043191147554365952882289236686313662294124872468521247170577529744762276204164997304406638749732369372772349205361978509925778813799996772559103851183310040702646694089661231630275254514266711580778708959653273014099469077499647858087079290308844340089593320304009609645333603144555036082538921237153483948925692984216389709091952949869877091499894735523706673249123829459293876323047779844341160234704294722098434730587111862012783857024540493015451273783341557932989263840136233777551540955607147919737202835736807589295116145162029221374336434836017627014837532600528187827118866339172384706287478335448164192375884714287715298719969685864547034136988021291488897115987579814515119211661622038564144278805196911024479129963487982608528834066584945782329043786748942147062662199933583013642564313626309332898691987240168532733615006733225804988398755290779231162656322457662839096748514816494398545582463682475564763761951301135880044680874320084440741669622660540661663439411354199352517500452828701362478934172663806141625156253003135832897230747315577885900449837359134477647486902058294649626243432095036478662818016232869467624181802260297808080483331969508305231585479334735078215442964966471672418416300516328658886510501891372504734352864607371931508906098394697517159813284409476209858640559567471372403527383719588599443515978448088178659867983612230270654924906030916306413586600801261206638755388643572613081296236850126799907049999414755314877069871400011154355010439879753167622405303509514301587949080728218341997921802600145526268217277007048691446892918092616827649729512891036564777748732845111256226227822991381346765097398258231858522384687559192934263730720005058610681578883793124981631230927442355718706045946815294978399186673227006508334083979165502451483485202170092605119032006017367450568026761009339038186080579371803717694737261218187839877173758060130253459520429559495223472017028281331981402293630432088982981067135598318679375981726486464505153679157433626451936326541753583710667295316732244851684615092525113976145175166818699793479288547074534031587004961804387536853251764350036714071922172604655692328189330856858526161095087346098381132124585429615516323298724328333578200451196465204649072886428407874105882174242558780357677946901338357510251004972330245690214314516744989608865197533288055843620811493146305306933802378375783610060932004242170341337985405465287451472848378070195807108625464472181685330535699303847143261796642182281329301969395105340919156644618332006597476564541323673199506264898412285303528346170129172048053219071979917786450453499401267947741198931073424897354971810365643722894129333696268605062599294787588714484290047619679507179411074153465301943453977398884608922335690004091994621330120160180724483156904904269331616859305613712130658785956901776778667919148537908388620666986801173993296368387987716625085547234387652310288790925233128031710829878293655398208163655951404200250701736096206991333604079407928418356285240782354077175683228597614581356022166937008708145441696030379959151111119508170064770564490131807866736202785123759047374422250748468987965987721023658433137982290137009902493549019358846584262167842865228111113251095497087078182691600235323270593576166874378515491107341535218170599215385116895223253056076278344780712521451476549244934337517812302822537860753642424212430814169065871787754439139395645318409914295483715536657463346434975976060291699529189563469867854318847313644956834725347682072889313179727481704390278796873389174244333448904492470287195253361156360354622816836431278188315312921773606129227882187387574952505229512712784026042432922762834905810193228768173245417727846392136410939479595134274590104056424858533907388557413536775647726151278057912820228503624589394350729421831962749367558836426746875473584085564274716186812612718539291558760949969515962244191088131066648377124596540816618107549368707812150411740179756897499754188665125834786716723301637670493405691350464971364500821643793930617984321473089545287524459989226381885059160585212723414326019883456445789480912001382486219303097291396021809664528529411407290636735700880063082977548173056192158596237520823743452457670811455200102313739725527588660889682810730498025214373194941608747088722123235011979697413390546543924869269961807351024430741362142721561667810757534431769201694977809735533044397780647615067413510109335735505149783437471941647374571129048396193721648180626746397854928805965865388095319475065464484473938201089863349195291299985954126684562877314843350823709101923966306119302872177017998584352848079174325881561230736745893598974406415324393990489611220422266907497501625476712549802463988533614666725882178806956853468528636800003268102315721452191608718394630312280993111325305038890036347561177264048344210214018460373264085237072573599177678442882601628776499420064328213687491477690810921139864449858661573679718014693463101264781523497266797619039868273379069478749656172533687643166999571747601449593448164133583164553158871438904035601476066240674303896207169146189919976672577074567394150515803679076082835139070661515918967691936983021792638591365951130467050915535907772413185481714840278190677270422592193024937548788241889992154446056523164523488571407507489100209916379776176337861032731646119833393227776662408589960754470369902877004485996878196946031484202491054755065202739584585936129747097909831807299600496123727433789901750593119482395753565719538518738307223033167876091822321214518501666067733823358599570442357969058706753995193063067951228502305779676289054577291556896232729884127525077564573996576891836385242125213456524756933476269106822370797148517562346713310551256966146526036421160353520145954968540532934275268775339709752252465980775346300724944585171606521425933484756992882461937246159981525712700503347016856268347210869697513073055143386011333976241292797597410309864122499623857347616491165442747893800557113189822183382746274192664533461019133188838897688142228461694458799359199615617114085615216435684010986785094029175236287469914966671241332811852735341075102186221958140544651995751351410879345646892362039254693557664630481888627315163573214638084091599386568181897615547198815434988010859443526204172570397352501975154851348306007255504144944993863261251137798059906982853556115059457948284482501596150573629552047597607245319016906051933735116150817244556146555909789244116828481611992930405480672100807501784783540417912869264800634228176454655951131597530987353946499914634224788641741897102174048350485820632224767244549359427589632659870984639315050269538342574961496783780507224909539695627803077972290065901652166559759541567182344389852926218105755815809776579732585579410946440697660917637985028990422982262802099016660868693764564068287988049486772160738964902105967662128362667535060198242142086949763539889089666033595092397641940296828494565224952302463995884027194865341715599015260129673505783554716658217403972100549717383753753068629880725761727086060854906756656427202635580671855202241600705910118438491781596110225436165336582931115110459410965206607172045948739025107360624965759269580162753544267185645429126002723336326670686396788008439133959589325017893965068484251105567944071187220436902885091474069056569239788311036201282678406239543361096689882314434040929358522758457738678418254065791073503653151971505892376512200015795762291680583835533277884398244642099129561930228058444613620312744907883876871637087599239464254696427387882750954898509103996319338757150593036278266133882053508431231452320976276128462192225781635841306071493306590323623517773612457775512686560579714071137563299964092678548229769457493135758458956282439329807241879186349302170578831626911032958079770614539134160768877019423741008400736122497623517650143142648228439783909864732932870847292907218352015942522803838664251592803578102125867697608463051598649016019763575413803383838170582501859825470876946942986360667161222114529660417221193417162169066496641466245452702588237245870572909381547571572093227168395828390973156738427748083370205975506352739134519838606422755967962421832883756283952075256147316009775151409156368793189410179825963771574311940753551577524623409723040001511427913518226320997262649138840207424102007503402759926952575642650350358509262513194591942103206017388847638691391702512292511571366227978048205551717540006344694849189059734996049492374677269570155769416303975738330950847298869981812082721565658837859672152104302772290575325640543035746573557334269244348544228632135317583019845999287606907073564058709763814401655763480951414203006976288293261593748480560167748072842404148917271888273522420635144802685868999839351905132267106240595513758478827133438916473757408289233576158252469905263461899848935111269901966282237565354331938774463354415674141483722389832273219164826668850345346664443755207707256906289088027219047439760722268179187218695105706823945254242539813233886858795044462945676636558438885542085152765018946318224815512155666217247733742876053513065301541969517347698988762554896228215198691429156519376363187209316948494239733461178302113312693659021242712437251516481698461024780417063614792583895619615804534467873994371090474095780964454011070304521049205729503212732237622529583661526258598964761285601746907025935333176623064223870257482125110783273508922862704630340424620984797386642052957283620234323989120995541162665360937666632494908579303185747501570289348280670321352537485945944175145328127056554499658668662574956605471912611936153885652205192978340438863223727109562123213122556630196318034517620035882347688407759991691220529633516035538276346202339260885757325139490071545329042791468205056253398219482535439969963819290543744538920298288683917591789806258391505344183665283918216246729003449254756574618443110247817553654740495813909315966674646793992746472456294763931040017188363337476422059217164360567564897059261050190775713812873736177272688992581832320666883119108070754279062833873061880189125584971410197581694303536755304890978475938552644001133179574435336044239705260176648002495448580055428565965795671890226820785405244080512874909609512354251263043072619221265443191928619042129773285336386658613937055978175839459203805058854934868246490718684461326343950527129454407920273586850759008541656155184032805306770741838789471298032773015438711384918534123699645428430203531152674702481676613193121160878855645156128395082076329188251588586007857263737593618298398485905291541327580815443288801267521635439420029361842444758733350628106569118707663601202190171868787005396674199831246050829563798527353160996955381803400100173660225600053719646347659441273527599331404487122727625228225402883173916246513602781012382409582515360303663293553701894388700052308160718278599544734121711085833321330385813176863639027945766206977531794459704772509493940450447078918708914087346417265479917174549842533206091733002318229486551090676411361555487010629644139031273576010533510236655033112530332469217180468291909011999801455828864149381811719830304609226581804495157541653887906198192609475891215187249055379170514697403389923909934527702414910138409232905389844583649318549500647244016071888623849629594932486721245293512046546629161194063947904322678287467432319411994297367833300547287511039224733442628940877419394650522898117025614417010986372259669630092460871116485667622967059936858433827471488459518048291901857673564759052761091847774962605987997994478554496807359350366718074639154916523050305632536815685632839153192081359464210634689152332298535281378758511179083842066787484745810050922899139552724753885029521349466186728162994554961181383416512885846729413385544229482783108980253202260772813654029737682895757349041998428963827065239839770952553262033575933031942246861332143729380690404887691421334148565893952243434143902892000048047813673794183886214384865881853967809231379229472690169607002274649462353810554746834780793427049694119404537042571848455407964725880509251398818775832797033124769574991674910752181329717499314043123977395585881243829648840539857374793644159572957288784976093921912507546609514522454495685852710548048211043141860288014973579762513478596332002410316081007034440379523500686432218657703894783914237322930334016737962011602728727153392318054643715114580196519297140156554854033463739897991236320151382803298561741014792586032592884152668789062137972612428841737931041333589858070750454780637547151196048183362360147383582277692545121822260748381164814121843171618849706299036631327171937264865766229970809215672129708005981041527617702083023277164648827830685589204781731510951279480199301346982903499796750948352740947856262183901575207229256083412889434152828137036393516012201344902367517274843719578210220432935677648727408421205459108584992891017503433981748560212164474190456058936595363082934854115632145494087786431158059844677641616777384829292860232500473643683765331359284181679452994157610685763587010588529602331775225567750763747869955842210908624331984540873408018627723888600977041514031303646730762043812626793793885857684232463037381353402842177734891253460657467746285192798021195948192675329287749631971803388485141121969609339976612723477202073992918496833987119512447776499651413537752868110319691205710906743192120611020317327217875475055591365103521960484500042392243889980445152184514473771222355275017589220911208645047308924584124231148960743177893692295737194751505508944524282451879787383319455652920203072218060389829711273508385782363796204124744363962796921365637217998282806988133938656361663062852220465087953187132534129178221796015055978806796894009973246833975791752999301925744886097465953216050609229311155122573519030102486614884751554702775001714140491678065692148330511413494032137222277101431664168243574459118079362650610897157564183068606936903286870979445284719061614955855922093918885255399898620992750660368290817194122563101930206299420699729498109189525467556214235781381425547853366517900740649243076380699687227082445065165157424277928199418272451579486181708387943851192876591899747122902602454894211193476956732702549165362179260934738005473348535673043815272946572924188948744481261430895052430750976625631748516814383571556126615819662100806038693534074222354039247381107541884038336103882820362516717410791003901812394773830496190138684908649165004953985383702513865765320174232522173076568495111056639982517073344739355213876618343342903412759083268041015320282061547784734523491151937983981679409428500539186777282571182756857079077586362497999317952021261114839306760550906652095801546107496302672088739821362447123934309133171360210523593283237557694488145423723360036562471838464206360137948744893186049080504522520979312687188604208609129804558107705241305227464587751766803838539146366194962420844669703564558243704566460045129870641362905884004962809795404777267479454979638301581222423557974646019734835867013000395521531847512462680507848251544725185974331765788037791058925965379467510185302057036006305086367712498254101698712117189153408721859158106435348695285417541724878473131043947904570868191350993363448358947602851748236741436931133816485168104126101669091060461174352428483367056058693138619557539877519482640626106722693620246348819953192469535402131780362209031618447520859179686354630943919650161715409292104971361603867977626992624868974681921265889729445932839017575741779233275110415286777467108018560603774165431978995346349260018172040722154946535101371172426359740346685605376109148493519372543881137794416041089897997007291765253622298406662011889490162099421176282350142688525552561276191138431742016349274270436255473813576972474910660525885247515387892555608596681019063215336459766188326425474892676313299044230902103515547750737166430523607340357520809587355270940371631613719530556495803619216198687281166573741766655385602374025828059443539415706899675677711825813960418265052358368345427323698871346579724484114934633838887902258935967272848545460368876975347400540769658614628596854658256644030070775691928538902304962452420909948273746600724051865067965216807600087983534839602435726476843605399811077908245181069380514293310577746435251383815119411327300785347193574142038498977053073514240445312789033973170125559302821762373454580784363242864151545279989315289443925335759715533016696614133053768074516984904727418278145767020430266399510441232984198652291215930702702712604762718816792756389366620727369040567900227778972322835027707466304214050877379441661408813141457780052286986826294089543347373938069474396715078105103468904687572419171364295160347090770319850903627686499979152679476528703831538382432909349379328359840169883204447980049589937038160732484352856961984218639853866838068886245719350370960648984009652047164410780141615175539830933230751376603155068453743636905567968391989606238073965500963477361788225561564158528583131170102350702436618417487191391977156711921378079732490305225373779552256249739380841704068486816382974870738068840579081038916796938735134366856030703320753759941517567213028906975332264903684577157648957071330989903008306905461011476149728909975320410691487799070131440111779442779301422333034162739998808132813785689727182034368781807695952725214262041184303528598799666631468855313299256847694551147310910598127557397947316479294540742685286801530920550915447283691796433158602173866067908349042320398051934685790826532840700239133751212069697479137073372769089716076576202176854837908743439626678253558310544170772892244158175355252324369788199848127427985993197991699084798239397827975341361686324485228237121259938354161859429980494220685055547076146183118498818867032991375482099184854106598159526317578643780337134987434391346564689284813942986502605088392574172591497984760043458029753862671995912159801562034307416878806476534852358733156344830170154406706008702824792104126666868686536051611203945550944752735397211635049836255028341541048914535333936190425086445280831778887049055345780561171906042856250316051060442302599298022026864912140530906945254684465841821361396281558273694392087595328179361186642956753360272909795032717688858156439040120777125368022770554636623116824228401793204302192520184089097908091718181741452512439900657815520615000441133963363873485720243390434173870883757430749903257274622786791119065313090880628603727691907483344771048109036685388680028281212978903737613081705765691869566877322480291452165163353750392942285723462679530186456754512441775514319537050622205085384979467663171279349735990830286253882842718342683414082651268128087888687325631132458153208678763975890392669060868205551313241869615460128941523421372531689264003021911059351577353420898333003042219101850284541282614591931230493094347186395405553290024520839822054934649640575830428374284685781076860064279277960358068197870520376756268746928785865550696128506935459329704904225856434714286127059388548188718999811061945444774354970168101592630227887210521451666017324450068341697484847027233195701723200926168137946844372313583545820073333981610052005843593039249024698879566832294848610114615129907137054638472198548380297339528594556736890741767360516500747014707438121737499291256209764171915771592720968941181707061451672748762563976247338874313866510782881560002436436168777284855392087708670769204870119777914575469852928203848660562977760178251457530603815785688853235088538126631170497685069677994285355798230486786871728115308433165554971765615889797659954568771610358799255756143770171334840163559825813514304282087920787890226897217659905445719837241240335909893202162438540453267983217179341737024112007412038333729781510019514415774684216348119814859309004824972431138730132826530914363023356066454648155244897637450942212627783892719608899921346502143394752499991118960981269687783266016841184802297749563087804806541406868779995436245878293191509701328883138329405451269511262862772124037858785865499040147503418481617411927806741109779611663074412410124909035879455347735308940434203763223028447877684298609712208619461147286034897475700716334800501885409953350108276467180140375971696482367189654796239577510587176375970041661809719545697563405237682967108854981658338207697477568075701869032208534356199795171022100135568520491709936300845219433801093697202643934593962567727524540698114674140310712983450334999487808442106261651936198744522877831238041065009564389584158295875413438387381259209707644011595570348559140607348026728333415167333915244328531998678312549174401453830765552420355638583388915354897816883114280169836716501501910244157879867130738063573254441546873066001465460490172474240217009174967063118194114292130984139235314757804865002471669859386762420301296590078316959286234396704274751253689164061731610329172267238308633547250124412269011537047025752863145833420356165290515676280875208083242696352477232474290417119594912856640737229048631861588257762322303347623392578372373442974225929546924913236355747430988962555682914186117690388516970253651522995555909210623680409834373970815134511576659069830702589099217962405928715867165714362749755032249994943573483680092492228692213969918567082479048818218537855300692287435575099555135428858372998804324174993694199649943745060112546251045140706853412645818131473902622370620985390046627896358504277770811812616469216476734509985318617440647565612663131519946334501527139595046321023760466550775934346599044341188088435231743160227744100901116882127495320435452919751943531856033069590135097198608676069595433402379881632121426183393387183143270502772538667594515943661286795979090841967535036223975853146024347242952530818973222558459294943864507377559547317913660176019809124665441552217117183197553236664795562848187662190229740201391034109354756696733275269470872539215125195396084674071110027291524083370277628618695095641531521021945196652767503127204732667156285711811256582614824823859128739949353300394743188517516236603781926633692245495051177987788259527489519019299218016374550515514899142560304660533607677488215491851908648280659196639549675869425536847040179418717136079853605279356593210646249697607593531839044075805265257812807834873372477058997695914669308176359552268872186355244572209308471158220537032279480246147297859158506324037100217005452156272979726688589616513184693128140179698497052154144705466653443851231928146680940152622936009401826801593003609433700207302747228667635898810330431346145133432879246866428420565423578712908554467848549676015814002715594347106701845594181700064393961547845508259143629618005121940379599450967326499927966866348803806780671713625209229852951329370086624551269134464172032989925193232143404225416774212161267487940386890152523840629423280867798674886491259210833156570979799654048976848541698275302097365200553684479718651290715678165594183222915271921096723607403622929960393920054559602043089859978556182121059541174696179626692844978352334544362277052318212869223999127790175376596204898516619571205225228396680852706932016368425567113295309659246188128652872872252836263452962742632199470024374542642901763560690358449157877125320619354467880717988245152765862815449495245959593548763862017991679512850268369325881034621607865429699302587260798129869691223502751388914827304500541532032265568759869682879930466647871348264557411390448256622683655407145493535256483907470116012061693387583182101562158967773839380554229383095983879016422925676076498318966033607454403268413488135848884053826627646643907638985998192983755338575285355365342316242412487251682054161571890423856501904478785098995408145950047805201926168362544084598446566288893559109909187425024064812539191256044619783898750266005354002876657018673137975876606716586343842017938339182244052402066514332663362312446999385802685623910757054430036733515657972285133546350675503881404036148226086164656696509785842348790211918880078388490979107840883197374802761699612545454739877833785237603356857375969097084690328395058928671596632150022113563759358485554831531670692321286714096445460686714359398549985343247302657214457412622691383648096334628819388075567063649614034928929994675792180656239634526914547260949147939341354668788952935783229874563101710657620527716637267238871096751759630681992007021605835739303872631997353087825884470879306266779947614023634404106358494035718914170433794321151802838887397801834234145005244220982135341199847596735920026672832046118411721245475402239169352985322223975164929729545812534079339942268994200338624602657094580747006382640765107086461921235967155109425974331927321824349469386527408096476097443983860984205617607997188460735671735709093735075733501408235262530150082935301517633246989920164737461731973879653132481734081729885615728010317100969554269438503328603966221165860274155923695973442062113505970823476188279083026020361281600750911379937800567822138518957118506575597413672127954983799936826601717311155201139785338707517888298387183919824972905285563247132590182285270264682906599768554506580830361284415724272065828733592466894134357173393669594259610166886314212135837827453653046273076108045570642363124152595640616233914786066690971996006318375300852098508456428902118079954764929068263395984051769256644425299656326726575677876306928265293156238952946244436330632525847786321953493382045573445237236685290967327489260243774811161351314722272165023430895695701176261273597123108549789011428883958922227314533991966289600810041013685143177108982011117065207903151195228982911841354917431385620203068607854928505216090321085576087929555542520459631677302158879407892956513503086488984168288223005148059704650637084722531058327097340316621867246459358662746413856456517174478881773862661333391852814967362511094481368952214526580534394582614821618562083568638420042847650049074345595362917568114080360512507663180905647076363780654750006841654916807901387583994545690204909253657441096396343592594581878539194721047939978008034234465189580202498401906777572253685403429671100731773907783118388951877544148100897190961630130047605391964674416521616201506696397553034841354633348923613247103292357866283353443670428211164582281585232375602004272352728432158389104367698704608502152552356288998704354169106948906183182813559446643729743767491332709483923450060423954487437043790114520611455677291860044584347893411801886794405146140671976072442064771068787613914986051206681323243174321216883146687872339262739044179813546310557056674092768072498441895772839474526130371709078716235422917549358497461690469684274360603507496908692200993523988012190431209347632142226405273021460620198596468308988994194321008162752355734292341413541942049828920331268080215605336866955255759149039873313044666579019499548974463927580385704520783379848744897579784048728611121770278902695584960167835021819444296435228786886637521971689228473506758240612389364275005704200000648126504757455145087294125817392581759654244544338832906717670482273445760353663954848267166919661840768431762171718435443330353130453175342059617809454398530743707939382581059090815943284245262164582411645361799708911825754975085413992742417575404961204988226800283521727837460300236690294010144027180145833158292627395859062189555767379960575682599438753985210195884214096612868427213592333824875346447652971997978947811823067297661487927873070036186622409638582624492401885583247374740883100684310558966827340211830627929564490043821027606901252597011335070988942932787542918007239295377168866216759318222713750560588138122220814502858709828254039807899457558971805422337376801046926169236218070723017293637380862480298104810810059940986659660340834337339725695681373076172164779283058409966678003784327924448302043599628039509363003180156216618585317363177339367831976078145938561618946564062196280976635063652137100400422378433821647192613560412120279837963808415140658965037268598717014041836417731402915713044780755889980273431140551726911055996787791207887636389965751418030873375925070099986157836683211330875968583913857048608735523301216533570352749544287919555364405615739964095337327681135161905780081123204497544433253283813660457650421944175328667989523873494001912934965095283114046851262050437052932594113918944529552166611066386762898760785973826334926622901162507217852523896989229795457702059485679380907964135279135913584417987839722314205903669946785357282972240383535859784234115247871094410694172170998027153631570926891627864142416990987692592182704765572119886965049229636961177907727601433514903177911429729633153938237088497279759984996607750413160533424274937190130299129994423298515467445165771125842814710448376089633887726942304245074879044275264368192301803010475720957164538517524164238494250873304845634409122254341469686226217898993179222209585518666179473138834970315202816149214280371682245854075703284693285416943640185697368855553272461563388763660204912244675553947390240538528678999003039160365474564974662458686976188732638751639573322333340088909097399921425651346151987596952632460372744831287675602288885106715030995502811123731670680278491181679787051287368970911496511600896073226470086747604575035163255505310273682555632942011843102790999941684024653125861416660034067386603946241910643816630966736278937240794623143151336400401123510954881438854272149935431029081711474846734637631885137260653706043578017358265954243162531776128073349152090569808894493908992977808227293708705269949497318299277336890654752548442004641242723197449505045156602544589114677310178684044630139995843652371543525474657887495476839085221414996337192421128339697873143379523063443374567108814966132018593507163401071117957006115343881855766786464684383507204084783301196851829454739589781133933086928078321532240525855685181138908977807959427024397955351794442570742224984920349916441624193615190974479958692449388446751071463366433063647801233304835339715065445094050523363331692467982375255129544076377004183982054293933669206668512366555825082643319958275537363407518743683905664097376626666146517198341212098192762052949704985343629024465166663918124872258861678535479607511933005923491535361012270432353106975909934725121939667893224322953487121460838140509223127270159688102961189197856972611581720081317748085754407370910932499418495111107765384449938485921854158914741820937795040925388870749002926381224698862717675382798429098083998103687974080331353451985213733395710379021896200008752771795954896454004147364772220331231937541951536424016173756670419080433812933610550739143716037584603646591227045264121767014393743404296819276395151166252854493730592758917498222409521277698175333258540790248236544597316528406423446959007081856935613384524941997378542458047718796322140498704435789292905210160047834322993173100968312669635841867532413470969678729227076156630068849015059641105786474451710857518374044301237254724705468379582885597964663247651934696806352885371048954119744690795334408407777447742515424616528702516058140231398587227589508976246139079795246579712498502789143478960477354418589808966241882770836626888801080708276700567980759225160262407580312285163690466743339084031160836474331097052261026192649411228323603429113776858548725048856971249026066428943151374079400421278456791292314734796941965201274381797120354418220631624006516692202360411668786203629469648553928816852872625354014675366394320235267281921075552989662929176573005536830577676519424529075925111637205584938279736119349707791479893972227280962168821843962200018067551741941223579241443254740912792427691477841294751247576594139399671510328615245994009134643803323975922691242867976878732408656526305931029431688609472381234293009621400916601642657666606617986246803828412192177173965505134380008314890899443659511803588153084056472464928891372918764161195152592459880441969690700686125107417395536337337356141596129002619622347552718288531745696543733996204544640516481797106174997281576208092948039410797463642018158367436955013213422052888032830845202301507490208305264954683199694921195015031070810209252326590269048030188115462140867424007933823311561734098072777170484639629041225294673170982740448054989968388060693588635103309970622888908437865758356457278420318884460611493608943537947703738952195392379230504708263038008421898615207447374830389754950530576402109788098928967555917361858596418108015206376328026889892967477876182515750250487727390040374819196391191798457572855666881512567462810218936805444960920615905853476794925308386084778530361456875423270054632247514686278884197386887546692882561652399213289939134717646942430946461094009484099432900215031995763875949113425499448914109623787092237228888687201761570814661557583054105860338983484137480979833604085416989412835082421821430670220397501033774356172025702300210429955959606461182434154641336808820146160659808112993500994282468005521412224566016208948272687993350383259786516114060986469353902772716224371400265571955401994183373893895090846109886056955671551649754335945007843061194930276070625534129885287604259441214104654317215562152315275489296303076193387025056803521171945228922925181279844465723286609777049805627567561042767008097817290411572346971411026626480925059744529681899463102703046292938118469232033199175871742118007666626646773691232351324256760980154371727139323866324174906524154055831624957648407750182605631754046118698840775037396776601896183163007040238072367992270377351001851142694804088957058257607289596077328222216667811348913828346524972520226462866376993279848697694263292154830553195910209690304122227629865795312567584410178829578462687226475971833187061085261681464687151334838137556110670500253308039652228433212295701303674786121186254806340954888161682207299687383673650455869480396410277287193344767513522061073598847418969280592306072473193795877323208812397544846109642964810023097829256252799555520926729675190910531528738777654027840808778832442159333132395185169998004233147102546561832780464827993147109157010899231208188679618275489963455694624303891241318876810322233472979868441539394157316608533742050295028365658951883645299892547436913875020580374863960920116893736030240106961455744838164652716212368685859054507182425064632337929139810644655730846028243848060735398985757880687126257860303274380970796268572319276330654718983290466442157820856562979908787176624238945818297501165553687531811428586271766517878904473393019908596684533023358314392360005012056119529044859144618435368189925201955128323894746130462304355109341169332132908062648805158964532398628993040010007793285482899803934119883930794790073148531124378519750563421824013904918236990979008058567361526546672586937862668542041561601402941463781890564015025913227873445192974013492278136482500580423186885382984154384026617870681685812933872688063322834114043057114755540588512977495941817180715618516295235043832086687013537345177040449406585068992333272578258321830035296682655968064219554362403003565028603250847763138092210444754389626460406397584914732702485182319352583873110976839797536599974834642993395252905992946652445730513689359509699975025851494980692110813234418878348617422610065377760063127893468451583442228449940833030579442642665865458587456011564612818991662904829243297177589426764871935027952774473727511701883328804827840895230074165232011732039236897454979056536861442260874798094683528773110648649165277734661535307274295995973551746267052796874128151939114621058824395523412072923887326847312137317311635778457621243592295204528521666900424622242713029629295046918606638684125425017558843021734361024410774939243859748623911776964626577121345028560554217084803704329975414315595376282439625123951359979624798312602743585450604850790625540406431232735415091596636051432697495972866636323791973408086176448830132380746680274084107021648774722408894275821299946693034844952984145725127457549856215397565995571952020707164991032429674853108477587032513685216008380537345074052021644755901594004383026141531913138741840248833924640741585680008665908744788238361959673928358863999637585428809965347820923978066308239869676009527076689751509230491021044846613154035778980308361411606008342388707435236337649711691516673799694288202284079963547624580471699903432255699561371000174378879761181443598158643156409199987825313951411250046778836848766190794568418527497083215022449055812084045005730455219053165150110390198891077814801689816616348137226209195172474700775435286842755185712659489250160471185762332487659272483958690613788667908820890715892414439500849474615966367065468835009639775113644279457050693617439177361349847108874920086212353625275761864228885575605989186818022283673003635252158419065525854868522070045008465970929606434929449962668976584764544825796559302257584743411197331490152755071221664042261323850232692569040669676655993262029474320090742908254037032552008305632182807152940930965567570248657284821974753817978319827608716408215789189104574999923740637672526698301403169223223839326447587246892974960202521231409095707733441242012804966301015090954324186928988124942557579690153115058818365496243191122951385266162263116553682171661221303732561632922088905052145681432051707911719427795037870205310528539256294399469004455825330118576284593434573515584337901163499659479382633857009293220621326144202564489237529298868138392528280868729177055713706451051668231498845441339592334204962938149180445825840995335589590041000102158671288019853820773824771761896864956492160690278705589554012545645104037633101293515284034819580363183286008604422660566784285859120519187052479786592983899509652479884260039570426386597591289716371953368421521044114666215384937604345922543351493719053375610406620989316544602459574630790103792454751286357449761721728518954669264824367759509467419673582909098455774140952725091354545240712299872226948616059622401805740819269403232719216703218458052751976903426166631943939630810130200242447585204668106464915475539091441923484949498162674074023150121115393969717026172975730090457095173761220625837523638625234070772598044682226741044291526215534602301619208964861973623330698636987261616979564469170672649663663569234528426031646194723865828904978391137186707669840144073626139491844809569174947437792460230213871929702370379344475610480162103559995807323805591883618853158725473008186784601817782445516562765881995677697428151019165011842826729238321669667808367403635626704142890955867894382099259399422152060401456635664501505956866174984404748329213349285006152325884996666934090303727796995981281397321131515088939880502869093972546220985172251023944213634107004588583624443383222947030116588861264477723552823275692869373932201108057972710146274540817800108918762998833527369859724717122426787639610188961340172857335795774421966144267192739313356752783898719342355854510207071017813364356274769158226871488852599264114368376267977513204353224731350190620649252397753837394788629229519174713891691407521107731028397163576374243332758783041673157945935967529046232144157070048649682764737912792353649345066390833430188137108610536102772194444408569011408664891779866890909578383827710614687848463031359555357407968969495432005016207086381466150515226336407578107258791685492719283110446227370836958910308976638964697823789745317293048883091321573245575030701071020211218391640682254081774164501601638794516939798694834493824469881334880813810286402652841736912662733637252218217211401488111995470781612015311159129198911082003869438117838843176957923557535233533747199244765884950120466767443736873368894491850907407316841283323661956934818597230548913386721642903759630819322100791919134411831985844135525380940726295410378661219348428758626759369985574545153653293453281890497971704851758896753440880049453068792612275102555160808624314423367874040335158859819030086899023379730521607579851952385821063084960053168082655904268640406092851897643158220986082102697139049364039398649912795008408363376024641840301403523959614213207876543198669802571496384700898769932997174539578494301974981733772677817312723031032804731967687100036219386866861655972081204901145470782109943132240804786316677602528473799221399128645305448620589122291709358911957851884364742466328512715735793755320237961484655334547853965706698878250626462875757711360608117613411890673192003584281323996060460388574713126784200626089931990364228678289442352927721510962423717087280425014261475392473255462775426368361245590900425434726171337874520532654490964463445225087454826656245551029668658739781401927818573057404345482473868170725445003395139691210567655567164222092260141651973467970613052831503752739060317511362112750907465202089919254212554905783613189002378733262582630997575003037234214148387714260902293351152722010180197912989099232552267283918543676398639646356222517429202545902275348196176558862856039530214617552162139620923753500247943380683178301287503330028346487280150791283067616221408560938581729049302382018702847857080532078172371257106355474718168773245222188147193511315516018075734940847428067112776382718428179140051363498552574461138586586416770794867050153143311027469899358821576785516339430055251796848162401000052077159883378903181558197053648629850394526453273356076839203551565871639767704289536061159223018641463924202844362380307532449694353162442625061699394336605239907165725429352283536110499747124898693432670470003363448499213033319951540332158598018425576344271396247782878621743419273003724660008568813136109567481316337637208305315609829081858819943794630815713220561185387605801767679406423883858855850585079261093704382070219670830533210572421853493429251961014800736610926042600669710051768139628609789858834040060899482547079860419280982393525589336663630944066442318542393721199782757539817686928590895169856785786522241760461462626126115997316296290076165055541244106096054078512069065565358168139372900545693197395062336206304021768509976182993170950961328631979135607869608723052311338223029353373536656781452534702666006585418566005154152881228902954259907058511439466673236606628310817684748543532075786907243710056550223153523102104326643652372481089678648053811764850777724036261523144892905529469092928874740365395905712265201143731417863385995276299261443230785305226266023372136774019870965950333835228838866464199621890870173317375789623023698574531971379439256791459391445687438895429936894604019132884987064355013312855554968615262992489295190158587778561403755744026070606559789179997722500072323862607947882505453656725963492640232323850968609364729975126508798619483267217377907407191033752817899187034010584848425427891086420569682463116234279238405088393050362141896292172430835355256144931880042956167428640520091139260986435927362786807659625736345895471365127275190425839885410051459777951938139031940924701005862893582461525340197855785987693583564666142669254523575965346788515468847066229128912468563916881511011441490418367189088572997509465420988303539934473032417240022196843043678632856766299037911430205975856690529433967524546290327473844838610551391330892763931013080289746740830352490256703735189068694558897296637806452742691452249475431200221896320039911839203623960558287003593095555059675671855286863455584924683708594482608338891389071145526246138323936218934350679802046409753014024278910872077791783079597014316416328343345623460761556719950841237278663562175987530174616980302763020858775459709335485667852201733329073933983803837051703801550520785954750326190770297165577332603806357259396011734708921713541165918227706446734036197352266153228887084436726958037072766357448425492846623871823006463061740543288618982527832470711611211007503103499125907947357824113098707085230273337182162397757186398280086760364908385884159309133482568083361957353001978671704385353657776378649950836299471044054612985424613994410429946679926579779917170247892035053783682712314320444165130186562192248508422946854588313709135393668618325340855787385283188504949815733164380114556387845651453480179016482526973721195994889869674786824328418895766191924795974141450379273729329139215920464752467862182399462151023976136465720179771632672523776738323750067084335032322108650874176039892955282947645962455671041098541405687714665941475844364032863950819250462897084465595080151872288858722633693517274399147476351389897254309034913637829792990842912596730255111379990246874361162918762599328537320263260177591600510810162932115890777780560421610525844102249268826063986287565449145780699787639649460560397658827398825783438454048802742664361794648210817449821623829624981474307507870770232726441079704590901243322953400337832597232913799337727431696085128158783628062817068588691487203196572245463914785239118389275860150904239086108846455247846276283040712723487552888863967887936890428854926737454132360028812218943453655473047908207740375858059260885237149978190854939845987044076674800220131965850164428318628355818792268270491412147694585239359271746390235978741193169653199650578697370130164098001962557294644539746972026660437309272533383179127298303902946237260506747251939555450001197932490836742850119613772559822333217884609478202470285936195970120049567244964514208849825648769849832623162816828690620915061223654690511128753203117872339099018555796538141461380069478734550641267964518450128494921947296192244636159789078951302078568348718532747676263130781610941752623918716700806636572298834558684635989113764933270872083728419355503408338820445042220229253586309132032121872227391473165427511359829296904716435088631213902978284525733701728708333733911593500876529613050628620453588896043264258709138016090320631681595775910119075779336663853403161129052079825204167061530254092958069520009924334556491412130092375592572513251528568820663312356059237826435747985910381669426294953693635698519755907363171158830717435553791558261618748824749741505658252471562996100259848371395871528566422091617890589024816650921486038299334931945667035962627236844859039533842130264902817449231353531208154447219131160492872429670109900068302247761002145329680506178403880691405753879518280072231482686832066476576975538583220679627687070153735091768497259430039737190075011988912126420429644136629690982717942182482716640200642294961643603157022488533992964582539468319173813061184635387428519721175297092302632259024472111595181264508627732172820183683911544715719036791376080696673810972502617333042198443345150030127971385603114901125944629533858560010099232451585894066341406438527342759072748619367699336194179392267336580867549652769757313574667745364898263120082975256806762922784604086767230265605736689427953775456228042516882529437337502501063830021531130936056385504803307237341945428638209140826618675892721264722178230060701012618165608106925742071888227770383277006454799512415455576192103716349614493301604074628006319938243533156493340792359169568424111994930605628885073741682936673299663955962247291577246880688760288267870876921221984130043507556101091618001364954679979674002498369364162786381957785237164696958706260504401452348757722574601474500575708839929309891872660994256659273890604841307380806306238289654925930005373244929094837103251367996161771269595043994771312591057414690169855786086214792823449193106209523505964240264303415346266099250457162581493686091773239869946475524856226913916218293711277970312934376943863648623485168586954217990904029355716221945610835236835003192988192130518929109353704808387292952157712466296051713661993566514443528438396336492958397308445750078399532276823756215045140880937306259473087692188940364831054844393886167133525700203662684087534485610503274042640845534284415192765203266579104197129951740341330585570364604978911125397817637182989482930340223191007905071385082889113040488700520822981208708390134695493157560531299140773128159903660709495680379212115410862940025641341566652175986993525670059233167165517154094746753517948211964493318618166825259599337616470060660725800369007481667599103162765404205912912002588436897615164051154952171194075595890893350586523852793199273188569618725030953430336171224875592330856600427792636159472946712525687774573674242572613060719793024294976028351817157165284254681901986910642611173701302334611845596311587728756636804689929962581783173623790587514491096900637474849290434158650469358105623621439305287464530796500090648720991586747887401710170177878609813098338442226794110720459844974847533979502370253699168648928373005708561719492380879014323917732108026190052794365769645363885493640901618973666647127332984486395746308366127552077907621723844016050372093518029629727247082104832872794988155503714320656325640240683656663221059724152850118634001387420684047741326779532416360956891062937840213080830525221165230590872275401301123237961268482091084810946287274419554128410001711681633431864987707707995747990793319640864595769009932285769033608904930098009520914980536230979414297059720809332356616880700088542025669968007696100655757816155046541542654809388835689616586385299500137675710370418087660643591297049553863983913636546588354320247244464751319293391952918323558050151216309530014683273318880009530255404254366939942004196782406070553847573214547155731654489827355506031913528831090875601107460232029632510613239327006914127450483453812643334829721699570220700229408029014268848482904644992099139832265211326681285077493658835395220342328537406976345231247629056493358011976264258796191935342916012710700776061639221463375920326063360090153857526491584974234279303093142757463452696073036700757759428731225449535271747710303212235848033876559397833021745931750354855377866057030303618457451877413495195062481236757485933243245837109951425925559004361244366268219464203429744449208081156464546783683858789537329080130121332473661460791329445334869569502337980214744777921561294037812562453532292291508277645522056295555985948717724707665220758806344456204286293172548061217815262393122049141248437728864008131972116828377418199852251330426046655253388799884701392471847962025510445645374809170452652822152073256070830719403399015239230452411649538233428435098072947938045019035319794910473890062396874608457153836847171841277082863796181948788289609202995573082837879650885799072302924606808358031049811142249666712116310287152589419150782841291521553344859969777989729073253260580231538415910982605065114485341696375125932624813570628467677325174223599005665602699699467602362120201810020206285775597220928011261290538554852482336032334948172741621035175540211833231532224136992360647833004131392443315090881059942690022237311632197920418890013895581973410215262134608052018230754336392885042344345423743038140812512201160699013467634931270198126507977152755630017622262989136121314796657959323957824335733806662019184987116043001021593327512012775013120249731923710437957852709722873251752984595084366632418597227745745813409296064322760169205615795814880915288844531668963235023808651658474896118671679870161569046662476869289119798283029267786009650837030283444811371755851562120357672665733838745989985196267417422272309431683523462005636789272802063620876030754629031179920872877574157291938569346210517066445481981199484378552050391411090110569225454337127612390199281953567983374982554248289892910758323660285795793958046558925161434999141431860261764117084794703775347855248244760397304684371467711956968185382248079276845688025020857680642042450647097535678486368867438879090852718208732701604451532746953961733846685495006217196126526800360400315564838325063780431326672361466623302458989408820097634784042018871915779740067289639606288867589980394915705904170873015939745994366679470867680525489360153711048253336555652041092515698411037540287391114977480311086184765753219811577122276175315983393179333351450808598641695870176473136654028794959457077002621320576333026538531224884271056291686097249851929625479612900341592009123484731025324486143218479306748231889135460481897971713135372634862048050595174593481416834018594594842089305177388660208961841385051133210477540666171727549778341335385614288684056715790371102231475847179612661342635123099022874638555012304537530367779702096630006007850476975647602361913926247966525198028370268231932040104215166649466076144725416267386045449091533594937570937581585178587977755355187153126136709790102713379940832375034011038400459886362800059846431192972594121395566374215221288365795708849206460626947648872127942485011332572774002616591448911127884244865971808232936701837953987928403139361416439902442912914346822322866657280869288907901863000565571166643492547907016808939052887566232974284280742475883115362941283011300911702157006703093581409568928410105080468796799007452428296676737705628373551135819461837452924330870141870741564516665647670077583634665702989700402708239232263123452951040525063310289416865203534672233267433167865863064823993160743258624409307736052694519568369072464907224535629088240638162988585743900143887908656072676253427981814625547165976034094688332364060640833761841622961596804182680289111492365933114640778857196590130904965142664190895324331825316337792901211037340194970096235659735650189818870042145820940175835110629992791616028827451025814211028313420185672073887660021448647872854554235574597640746235839778208714360454674575733802300620260380824986866483367896435262520769533555992515647751373139710318636880147575007501407324418124735261282401695169523384490717432370776424247514546195423491241389586108178103752545694436766706991521049798779970156885873359045541996894498057694312963117725368506199733147615876130589478565465096348139149880020900427149831398821425301850096133875367621422802020601939248992266678293208315200961726471072689513445962522551568229457242288504688646948292103791211904399398876150779197542630745978916985569908117738938047376965535671627214598345251589010579348614293811384799739608153558162698663462276603529408062428346122656719321311977036717553879157865087678532501319845626219876673127365257897333284743855226466760777943437911918757450949968887559222392367002828050589398906462836014942316990137871235208318803992627154653910964000802444930238556812483260120590573956094559169901410575154497301623266436503776314382827196377984450346815207824155237882901812843427771248075146457224484653572612730896597545321524830580274011459987850984932840206456283307734213937035889612893349978488587333310459473624014623450254537114178762232058131610443457688253595105894259906380904970709638532060070488788721998900061072223863025691809424506342413599620333461895962767119365444227420079988608578354208957578711356271466047593229436983275575579572301261066505163565792080865379095986364519931731110606008354898534096167224608233387321109981415130678348006697040913852422239677114547252335933577677677710506035264476242270288412544307397572074877567014087237945486992234963829760204629411866682051473328245458912378358622751779649576088995419583092361241719408640980545691850889886785990909774233969785842441086477485110315802183009693222896068325860705298172979557143344997949592543506139906878248327368320855538592457055180136336744767516507046869129427233082902143715453893937348104385888180318496820157523359602763014801130998176273687019404441706326044094715854469321886672603065398772179079714774983683023450256347509343666510376855080555862428157801546533774637559996195062698999070796740766398968892601027129679005497571797272737409720184366370533320447104677371507862360030064463156241552855704876772932402493162665375418885005039552009312958450072370603918352224210424335510023027168350426550646664553321916286337344481788016625670575614634690292677477737971892818212449128886615653507990866390940846524949654376677175122058132203464027128229234389439848031731662762108214641051598671399760003645080716938110665847073954026452870695780529664458362003062334613388181645584227675774505452607376905259725652895017438294132742750499198700425058279552262756210867898125701693219188844733647828500524719931665475517742735105026841582996145073587123424928275613094207420372783000117245605076668486050016015451762476018696091538775303886041515351309604599276172916567322553465623198655673992539038676947658519803925948387949025887275578701499892615636802868202436535981818164685462797558205981293439706197479671700023687095626326052449685063777132067493478698265371543156346716044565223241083364064531319268560046067455160954094680128337013324632459606586941973436866694588231343537509965740555948117447099692855661828203301816713796092519373040159098448051365150903775590176954727838948782057216405040281984442197671808811182859749078699633949976089948132515592643047986784772632968515213607201873083324328256923869945904796695988355377930036346353371002583150627096671516422494401149992909677731059598268124314189059064495205565767254502319578939681667785962454554198353320462772738204519033268904277261751772892023343038085970613322806421209873282550819666909792754999220160714902086999278375344356433125337065052913083363829026745869304886435742632280142356886575840079803249479252533250376691040900935198868445282472785401329954636741491111669748886325732157706017673239811894341963333681401202177582578973617527511366178756027629737386774532750224510906778374317174593214019120683908543331584261930590211440748641373936161854755652356611262059413702888813518400161748874273240925400854500769226701598482525764121053046092663445638531656236673701086200067328901233050962095788239463177293894314141183962543564211157853424948931970481167157252726947070579971349054195764800250202988277200244799564947137918043850457922997792159513640527459681170569517866519321343282635668623481718703403703694468714971446128028251840803415641486333829343717759228562385449450299855136608978141966200085720787730010485846365409319600482926595827510434327343101254756092023136461413235058038194194899517297785874316782638389211365912781411223526540620741943114527705755681413985939419031375135503525602815001110231612864771783206633493332600108017731020694015752859800615957189289583876732678467322415896020862559245622118105390835951699417271171657236032849179085992946499943557444855805855901113531893785377018638024224722501921850475140270827028356307003117375172010863126897109909173597104782604175780775574197924540939827018026462654982186970072808112510478204681078972573958696561162591518267102540948634878725261501629085295332442152421942528818316264453578654473743495414220296195391795300950142681725254188406854574092705748666458570792429939056514228614884537993457614011447812514575514812798643431890761697260293054369749919465818056127209531384696013193922673931386325356338959584533240042429763210575808510411669775960312586150661145649010751944943908428007141146592722515011452245467247883229675424842063209090466126727090257446916875271362746805090304320980293391971088566814745272646888389476245752560976787501499755216109494481821968246049821428235206820510143352996407492738585339199874862185875229743725494974963649378376134228510233215021167007020104791524801958420254548891115472070656140181816251084328199497167983213312052806717710385676959007107276742088373559212008349886858289533394777066622535870631503597107474806271698534323030310022577775923465841384833863722953369068413541734708408663054624108017056407163276070378433287501299411877436158460023222693354665288318348570303310155948964139645093557595456282691149095424504477170344868244912686371956115960587720931888766749109955605498336203008832881951686971964200878113621745151830075293223079061728139494433794925670818354260551347708322437028600520181563309124971501163234961458100178977033558078546152804792528813619686378864232169774047078184251810386080572295804322662950512606760819855134105959461515572220301422846718838940315874259791383353293543754011338854932283768897578050742721625730669099132225032639268312797333030817398110688901936679255537113759945352909133999232566254990393784320411027998411144056524444354637037162633601662374300032206249714761527636629453722180198745824789628260532098851844821301716646765743202550705909512814448227523892237268139168666027925020572781747479233191073868772261985222522092759042721816377310496487750859181308128509293140656367554735456431332765056328703931256866332120298900590565769712503117025082526624071186799002499874661659962058181753999250966203036719273865921366325468451086653275961888004037636721701460620696160672537584954966716360851941117616866169700181615529890253862296427598924218002330813672496060540564406771120274776958531172023770620410820998984410639389374354687320096582843201450253385112303653131495835633017591072819081817993246750067382104338219043596645102502254481003491059154031604766150534520337943279810531339828660423719827919083741277029011620151900562743031515233662833227053120750112910146961768350402569990041426912139524593478328688918420897349987205307700994220290462697394817131240848500773265853250768258215130298111924861258286928613314654025260432877300613401627466453758833126468456906858438022525931243107738449572141159044168536775841501386396195719299969701363519933304802060997311521674815387158650805141845399867183726432370153415052392593712393248407810609869900877891576962540470077094237497045021174113911818820671334377040800044765827901453235379128222321057730360961831011671652701375951184639191179328482728012984950331596862650754478180526143153621117631720225339182154133174752700475220670379015805513582137609172060743971165264237301892230961452991525755295656765405033887482652799641723662799372397456618465559424938616355261947422064518156133928139979788459849739927947998936142112031732033832660722670447568605911573629133404030615464825351461760422995198621325022562704378522859337477401858361316111982946784000978721222548303599765953151142303047445204096934604205054950546957578712926280766099761413270566483305315000199554178641073715728224453619118618143415683287582375822478597440301948339806502035816164051103827425519744860180647159598853315499740193195764337898176085061345475422282975098314598813815731344514751174011385289626083085225624823376671651795858838088281634187333842829401488718571424398126765391754492265790608192493900251127008698430890570034145148211798051543168155471550516193309860482632771815080735948554045428413114742582134512728525490234241812958866301121595975180198941259673566912145112074681222195863419554734503208367943744365803263377042953132364457649910399616087599590277794313557947020092263376448871783333998388199176990494145014813339036563711223304721166079484470781491797245094649352193635142403436923922865360928943739326884802279459018609666296235649727784948396417875557276145262058888175452366454028470688719863444337669695313083255515309331486653599063267173203105214371066568577388730527457970365638451470450667070028305380702545917950404394074033930630481644407105497116745458406435879492716898739604833580961332236743548891975874909793792680539932569686441647358621831246792831824277187477476963191775835751111022631715085528383683403546694494914016330048501914833572546088378540934210986631149298389275488418675874002274098472656813391438552618325109037608085199053964850217358502237127759683116201230297346700280452256600467406749677945620265863206393651040720731340816478594681428202719277778116610448453730729451600212656446472031415759242657401858937887425813418714200964661497625072017098355450412614448500554387510360758777253047949694680029035271955863996187207815086003951580070265436573791061835487899932477716918030826243969920408798888702736768179418961604187521574226286733192361496291613671543951028585316701867478157766705362327405289184479049136354022361125479344537887969465608746322820034859586073681824311457555923832974592923252024706702996979355898190504108841854673921094161619013766118107877196349285570345854938991192284405428520905536244736136688426738459117990512487419651176499710178938646440124005770203393066556907894626412455742535445747269036992744882729234296256112217981672356639242972566327376047110572418407997278138824597797920138111072225782022220474104967279157263364712346124828372455168725521834404759914022384239011890982958531777237304113966600920398214353921245106611645157049618048464875804308618915965217945070152983227692993806640809512622815497843968985204231890398526006797813460576960529208189351471071255288554290956438015610204510004661988389765933443419839336988370912239780264783699888251399851513549543789915344434718042196199826504098403853248274484874608805948386902554096830825244194260722322272394357593491665207241154259970552875994556895419179425347496111752533216497420090948743748882013140591280080203756426034822563205295340392569898645384702207043005865131708628718781730707017146787806457611194415116343254341217798749797161487563617935416839346294835997574158852804716838845144392554886777715887873575522419786760990722040857402759703515056714622659107277208795154303628348092498598107550270247519607502947247995604235097080834741373711161251434948698660763700763032741107497924429070728863396152263495270020078810183235167478052793277539328104662920553051381655729107394901823150351769795719334698635093001850330565203863807940060521062735893980232842534671968787923686092388351395452373261369642108661885348488635626396431706918602680004041449841275970911322205331853505699025948918066291536854462513349947042387708087682829209595905560402251353385974063189537452830496387148582808619880181714533060414365481527688319244373856172410625204214752649174204898664643156959054850024035388503292278875597112984898982591558472166890816625033275463584289907561983678391642397611165859309315223867598978574513272354155305487515914453859235882962071188394820636500371143254868326217638448322143944561265636131362891412658188300803873461458047063087004624424373194030942866197384813281466417662019192099389370363416373176053935360814382268720467712007367215420852655074889773992384607351848406027718692955027468181479376111903973241150983133624787976508281029598811904772678398940266913028485034615953933984978568811219026826494143620073290265078978777915337591715617077543032856638028546198308193903999262702535356269381649349475050626410783601322881527671959723650616861201872550768734862287491808805076714164106106306298250726052704094980296941889105649915388065527473308891168764495591884414256610953815119920783620342292202158694955799066723974723341542162293608385248723777584951160800251221761193016526039159937916359753804000731670218944377577750421387930295047054371111908836366772948040262281955411693342492828389506129660270194213314286412721730731212149004647786417547098450405867076409814029930349468010185175823869823181920507344127238293962797648337476232711356026774439527055225072045276197627854497563187420640156607958623762087667213178100689805032296597824907269979134584325778494383351725812688079370807295482904666949971340911728865382392583334295855838245065743821026614444198354528445870721581453282608478884275504218213593555089360538956952138363000558392083920511432919435321271433869163202473007126408688738318446041033133587390469391392797786404564363099034436790731250451798312348477553163377344049453866100638179179690954071579849497267012919512886213259724555330756292616462592832018517760459339776336006546583647373165426090166694578888874491698898168139625742898961219111160657141920242528005449055604359580729219436933067722104692708062572963523301970720690488693270490474060899190863375513383643744103996795422244281394227492313187871131203993020608916937996897647292972155637565370234561256205076541882133632235198447327581738971427148988397827507021792515997159214360041305617868098344440855033967561125737608117024450451670705878332229141507358025096923265945209804850391605846785622250373519445827881542485106571663021218042605930830650426314321685198708225562059493720732714954140640110554655019949926809389077892080158398416416612656414359465247910176895666211433574572386452911432437250553700323299841992610222211136723172470177875830577944251375165521178406389428839645576296026235332468452029259524625236466108519756328848590819145261495406866458538871089504507308769215409157291529155917599374170073662918207287651669789623130321050495013073778176826423053746055460207171033244057333321229901935742454907845160752064534904008515208117952700765251942615037225269130334164749319871380217804813268660758203044983408070763583537950161827831185989217744810898863804741037474388213520184411264318237537980461631295386397593624291097632232306646312456714150114019182882430862973836423462545481989896533774063975549226573774018406350413196246415807324783829349034561788808498981936562278453829855982268942887881185869593686848163623776480510048638682406068158958177533119775096853934452566843742094774135416049149245984041872893478861517068695985577623585240566209903712632401145187705093503250863697632916191590068777510715237792434652800868206408390238931755460640585838773038647821607710170956491305237170117459915728655199452799146621629610186279687647644156293233615012592051673093941354138504414459310103323707288840631801142590074840895264998901982885579330330049881294162301807466747769794600998225739605050802447525805311712029484279761475470806750595103234094136955324161372349629052541176099969491309727789539768661766039537408066154897185208274254369230267799622565808519510543015521316687880789454180333742201710701288782230409501356344139314511899523252929482880068154917741984379621325382019819841147806425495951409335664667629845213983871603300904008704396542177546825734049439651919366430701990814032035880974297450074857398787363275443521132975564000125457507143970543797796766054358978657024712552493682181999866661677084448584816694067341352311166853133089413209092339861259984544623635077629125122872076398427734672770816221938016968208803939195031039114164884968013550559804946915222012732659385395499097049681797308171675769704453155153697241784472365500892509988027823215802618817608796104295963690371470603824982532429850224145659512179659997942823690869734731658957980426799618559615352844054902264811407793459100105573108146423931541056623368973094857625068481256978846368236444504869366196991620356322609495769511761968771663645352838783480056918084211660428968746559033675596887328682280327847478705282250652654503036356116996111243698939742213186331067373151182271876183676801538503572975525488310642714250463059312181432019185249016848191472339859189215158791135105095980173387499371462215491729604608183888237313594078893300605702199791536010290640578214884310833713011742378928767585878990471052968653749454290027513918855118716112110566554443257929066581279114659073471504951666547776804147078875328300493221774219297597173492006782116339670359015405598290939008631293024965143586573391846914688629069648226821137767839635829265393434967846559076758935384241445444804255304275410682401635265578808870753786467749188240651397785759230404163433958200676360314835269575965731075519083898892411504329393684077316205512253466875855050885495845249171564082423540902853196135951438232028022967392110802437539159245100543275811470317008294755195454481747918110721187284546208441588232660995421284066734764756638885977290200454115069988008995618493552439653133653579941602034319259144520481153945082502179980008807930734667818838679942873929595022167304737684336668586217026352793591442710402847130014991535958940653019484083950611025328579998452925130603808068366502095288578633857608487578999018208095321788446915310611137275484743853496429658835967554795097038404806189050051924285434896909238921923464109412455448454868485034590790041931567348302896313012350497373062725385696721713715878106336400397111257002181336623688125779463705462236622608618308485170189120736717603674450485813811126285573788226553349479159980445874002496989196472910289909490074301098586512604147416730533841796886853362793593941450798045730016339176952695984617939673293044278976125893747749953354937188225882078445224965537943281839711056260119916652328505413622423056972385755319090911088249387378658205376984746244873963087772711798339543978802222662045040273006303093390324475807524922130204708458745173129385593284412781205600541779092484694776447823080719152774735717064840821512885051338950721168844983573441107462121818236290730295262432943277996706898728612944672243443297708007028030944301738138979561142478628796400960859573087597346478550489820840268972578041522247001147286985708763856315707390778178387875151452868070108708459802975833620883453772514004874231680904101165594329737685653462536828676344162491035210575512879473019330043215933924660949954269860577578969923533851754234509247064027943292948305538056906289324541000953911559548860457969894213621579136502438971103297728696571538605774302751470881066314022865688062666805920325867107255160154581709195152363620332373838985839408267161354503392110042039043072233522064523190176699545182805150878235258240357353204302501327183908011939270501560043337546362312309622373637699310521334735090852463438465884622547887315751663902647305175334518258777448711270195511998159616458596206361473162124242213196696305817960203875490936093458154430875935545873905119732530358230441930915382316850590200537173591882970723024889954488507411777386242049981157286346253095813039561867698139739658069345287583318706669533077176738141255589827130920179030309152365502495510960514888817423069894792260567950018948183822427892864873363690209699270745946530710619191140887934970512334959610096274284533415174554980506213022710637537420041751925734241637719982969533514228792825097724942788315149667897104832677026993350744431385375375870634289808027847263733797466596427422235827422382233418813674784007620701154566744624607117846787999213578869727254917449727026121196393756945563674278115534943307997596834290502705943686246837870199153172100590588976144177465549550015151955645327231525952909849930132381459105837991845182542679421346689153154863801489060326276010120397985272454059475166744314081763744972201666699199543479186421687744931160433315365230855903781013096173480827443639371236433386003976675161186080884420723691222976319492054469626820971213284055740424605439182037355057437088444546559326909746990034097482793517828225305632257156911077247422101887435142344751065045760398584428861688892927599272974728918215745756107418046839484241630749757805566529050885975119878564718708185182919646947506504192762413449198593926767346813672254225259167149829626418430649998103524315528999783460416048203440439422571236032780523542157554016853558440791109161877470007363065803394010537826954839016514217828902184216327382479197444670425444648637834915923553081197261628423508324223355080812650430639769783170526164463727192566242570212062431281534099664788497053210959145662218800867284077674335187036075186050070176024747489476469553027583599293402790103777068004580538753232479237027950115299316905849224826445074472005035078984687587209878249236221694732743166460023488258867748650248316611623514615695291985062959890230739293430817064110846083166390496400454530893727438235007282540037992523578819883596689604489613182485797736283827222138634090116553987368017337737517816185988986688042536023084216651904797475025370585680857443009899704308720571842348445274973517419949065441221893389389233403189270761491377812743651560124360993874103997284602424466185519296818145341680740715082553622558379980796451450676158713283310856373275820585540763110751905650022314971663425916113594275718702686806474200973261908237313163599586566753281359270624059640857826576095737409244656415202019185423206237880493916417111396564056212058295908350118100120468100551949405857663240813292233294561501587612930366989994696822028283931555561795531441461580945365243847357334813112382133408357518744471497968846624542575826444301930767980678365854437439413865505955841516903917131799764930417029261786200945747448118893282235924256351380747196746449514395091853587451014955413174192836407552381357707648735380090574701705068076923043248532556133403617632073093957720870034196778434260759393750817564842797542833674183643021307358221851836731115990843745498988071850542303388064420825202127840773040981114446963420621542772781996257080044119066750910271904699044417452491660175433203748586524410166452987308989567915986115296437195015882823651342411112029745351847223789783363967867171619070565830395173245161079193364380836702986497196177048579173434536184542458273899173009173357319445580649838546130910148390879241527826487020853366966473686136044264709256809416553464650001638409494929420333380192459780513542249034109403017208821789317424566824349526961497858972793101715040110651073239816930392074215608793673466032620257500504466109637081757942106880845234866146580048111070224917095181861325722590018152160983496431626278401073429649803003515845557404923946023660128508710100503992685869098305488002224612941425706153978364520263695852965215600168335074363384511761873608370644899698343856292142084720194130615428972853707471609657237360840916094057419445664261456915100183232362121138950388543583613494947018338350004833944807727978606906159739762042448799109099397906113902885494604294016507873082302878628001531068613576718964015734981249614051009895559488669606085423504666166496436104683803839908679242150098250438848479041557359708867529074911268765609389338607496403730320668120841851949141570406719429152270470306919311060649938535868522411860122153346135443703342505182948581524255989999482859860961413221072608930800403874041946739585968206640594057140550253609646094723847303527941304240046342408311920356299831054053322896810338270026301718797693300590788402259135701468078209118394571119335398713280840844364727945322840998637609957872968012408468945052467258723901140544641097903911936669518710947758395858631882086178855022082216597747412892441964611151849097950876074865819041736702758584819333286239345733952665169360811383989423599736475282585423879576252732813260771192739236718908050095823328860185863150812400791419714536994066028279283257442647788929727656421170817861532021051659533139881497018137971603626439410455742663259383581865073756795722445744045801002194535103432051771106309958092744087130649351836626074684438321186983736476629764787545645998763911908132238535298069394029422941868413867014327170520789523896773136117121054951962669123957236803615940282619355739527317228430495871810564944411047015853190844501609881391888830674565712098811931512581032456530835038395845204496471861865704831234508227320322166796951797215269378082645441850920624323418425372783642146683927666340708721427927316407068962521652963817692687191879979711041396546832287808326046287853354335206810920499905084561331409711684020912285805837760819758359084310808499140249424981890418381985063388258153412607907960151426498342050213720804710196187471984080666385531158797231132304049005604353749604452722365498392295540284739819080495777278065968746318112833243960099494610916089772281221280943756650460469089799686657759288026699506249312650355983815249360617676619462962157118276360922123125600639400522559860097268380180705773653232332607991385172366717483743725618353303730364977595087472297381154453018990608794070246262110547940259091023824911826380070714491327947904555655792619692474227709483184788723031873361155112425676125277480063696181926988039507051178226229076352752211590220341237689908445473522665024201433065152412546153305808580048562416785841986549748106144626149660861367978603909608875902673128963199149816696040392450252593444667416381298077567109905921344894260782037208562198021624393204655155067283234802735283170368496908846944810731561273650590712769087924282824739290671030362601634981231193464457980374985166493349308970196522906241676090961491296678740365375173566414604360540376469747503632249008991999102092392914295857504678114279604740976447854891559084226940665502906136344217828030355770149890565677227993515231944004179793571582882764693167471519773302576647630819601763772154547013255882641025549317849488261212888634338914456732464096046337689557447512251173934047349231016306818621299867491052272220861001807955339810447501257096021983067425311008540954537753229973173095245131257802148481239938219489911311178091877564627537925507980860297246674210463114324083992333309848380524372563848454656669626113473368565183758132977910864909924588019366520053807246048380128440741797895390994745470235317098698554870006731158480030976885463755985801886117699192841064012620751830578687621636007808618450909957651896829237704233955081531403527354301096824563796796796736720771961062314814316611014602929291878136248612771819448200157409806277050515560815363762405050733672787013829837168066940802192887693051923027395478489380677284942727276974692206514503191551728684062187034046911112513082532142245815826365256601394552733165809154440641567297996396893390327016101611019307849452876378210249959461425900659391598102884915760988798604320563846212247289097456606024829749631158441306436650948647212205416229097605922294942161640226674839152382152804867767995933718630383417830042086674124817781680324066560783019008493069088042589586887060909450343312167683472423845619575822763819283020476376959373418108736669342890733680836202443987377080624257397477111780350065681401461013660738740636353286535266322772084940363347884411428689249263690148834554737713670052999786863491801510533421245115317069218849749832066069281639359825032127410323944280926750979784321273132092836196120023689252581931079484131046868079312349381061653442381568017443722692175204430476082865065868387393294705470080372598122692272815805698814766349046023535904264815131006301343792524345590942298102737595936778376792622940057951281161244571539406912467805629786624018191875375809037652148765667704806919908137885936691724225993444190720903510134659813884797382022851894915336313007849075888407190526094212146753610835296715725713131474696985844994727294783616835356182664437102631788433540301326701364986063591535774598637623745986038940303072059548896062535115488042853729649304410131647488852110862079511895334806293894383629524737639919993235782893310766134673527376976595369838316645790095425577520446026492940624073062719515709231205381769517860248417339488016228683360100252871930809222526196101233828059987974267129773163507608913706540391704435041607727202936960626845680696043487578539112103506209628204365045231737016122118424638251245477276103690104268958912359704237387437357787091379234135398860392482481204970087279051289379966092882264905352468828401354536272584369088649920178531528323808746389711291848436918609773156833702393194688653287359548228635946485493296685008311856578499161113143449548630063119358452214708874403027520760425555903489694953033825490741404916049312382655577090714457709115676532862233826732184062224599678393404144342474178461764218850444554231323798099463742621768769369995013528035825176850432903383465609474253808629729155173503031989649519098093937456369015117185188066952261018991862230290232388340509502834095253599820512923493669199038001064895910167816027004153101524556993912022566317910704431904312425472998030119223229899471237725864624583972865687773065724737447913401340565956147162953575229737653393679303318091017522866801902019716593358858339075265825802878411776102998322856754989498601334683311995260019580979777639595586118302565559353069835678254769749048322107519579655772999515787440353512183582524944399432237674368209575365583175259536232514878221188015185444769719248793568560021549653953931387266709085596734924736144016571431770276095483945721313448181848636385844897136984330567479697466303031877327601518858251379996779356426530672515460328777249783762395739022806336216588958751892328620349861283170992362523135145221100994555547588525756541370742235842249226290707698096835453961934488766061301605842449839856194099451116128139630760806865674007466369136171030343122532350894977052123316960871028449314465933130664473950199621364220603745656642908618674010597828774871507762949045708465006712188741086579231505888363884769989112609754499646808850992566423182505660228545626199967454956191035766308447177791574732997741446178800679056190505122990635560644926633930528203164056962917295632779092019633461076565046494119941006282239858804088977658281020548280959069507867518841649908609953476364393468272415908020448587088973107810267900519224945154861131407726919967853797056698783428801196197328852532631509471129427122621566447041220976742329937048530948224043065225752821287098079982993330988498392060878103509726342791508849522013061213965120657106897709669754475092093765128956971344246405190783144120241811429229505137139976959415296415698856392765849048502566449161131517834539564015980895384751178779346658213736671588608983517612146318227255629526687282765374074194179255695064075478492371944120416387357571829728630488460321296614597206535132689723607239488284457578596832506086590353194931580937906042417888882427966067210436939441004973875504629402901156183870618753891282174375178401147288443405267355778759610943868344820937910406759608297066436430948166529416626109970404239962726003625411309084783130399066863213435395874606410325557749091462678709289692500250333875698761675366935556214356492315272239355413490335106382275150087439316605313923557798656053729351958313198602365532798310591942417398932855902321282713973358349977219059882068706946902540009115039393857011280452863499836533049018271026729448971628084631435008702341125225847757010519480948602191470618397964432488728423221971075703664495431442036787632742540191451416257506282589546629779459622888871665217605342615562567753289121102976324869322808623257472931545198223981221664742919360177217955719075489950262860186934901251722682602799730439909944138485646722859573715369514801132751268018776900926180811740246049608006831152680141284436049601071625565245098220213951357818989813754843953559162349328471736764771554258653893134795771894479379719869317422640930591551880331868661136778670634684345295651964930959214730377843391634278851224483582958432635422001904241775351580857876722484448397063391192919028135594030383332239747880633249020916510460696405825525001338613038268752756503457411710939523314776700216412246824217199624783513021249510229532795566312888993825790611515664424900882650365553375377422382021883599957163701174996515664354216715392841592512059186224947414229111519948878450217236313342527249158552308077966740922246010990667506251056904134784025764386745092726129631482933319137832190202664385610473557817843957623285753169057201564365609707092466182290902674204272983479499250935108353457751170192993350881214756513892904820212353347538340784376437087256605754612442745395917192137245634498702317281543707482728758310283494653227914130159167137815263024549847584166318082253441067033974078550415112285064278552102153378195101407600689651136982458087509557919960159427865362848995389381963411476473090752547099038139224452306861705851835536255379881885799064105867830721970880049168806610251922529086815948431031241407532159683473379298571049052668621561216828547763631561994610707386840348579078055264846544321330011688813421888687001565626725843480394029865903292303161157358420942994252948799410261329308085879553152976940245188396498638882038047090547690571769597352566003115451024387575590636916136606455019018752297651452993537966906244549880319838315903566082193025377997502286832918903931599143339474384149694025508010221420024617129622154697979116124854616290503294309573836610246341295371852091396110187954414947616223185525602154683045719304606249140022610842801600230538246222566879162888067424232243419839320366161327746333737704638396908251390694721871654306997130139839976015975026454533831851615932691932150925291332530374195330442095029186869560655948869837733684775053881308215070885885196248525778615017156521841633729082169550062569994476657875703728738764048843433623185072010717053841988171817640608080472438214965953744730407620057205719346110174430941352445414301141457562980917058362341146018868609331592885320537837693582675744412729753067005687515275292255584526964755760038881094166259527511451363724363347331877909711896332204916099935552032004002702568202934487304911260618000501923979289548558835485865670693076537767940569986782897367197300346138303572363828341890434547270629696737744402380559104003310216701475538979391492216257244638075858813880452237970208824516015435882923896649617828030989912875805649858779958192799676610587305548880516580988698305356303432989507655036516174339254575355109920922241721741602271056051412920657512785602539245283832630863684213536941252450451400429498781768190755341473444015603852272040321301503642475399176484408845303876694872277619679378265570466505013013935602594012646401628392954099079289486589549525457417658264822034617283693833163301527025370451067530682321049031361613969535714534966848867034396171605042786265310865432254340342330670375979080458871165168720485515218170044299192783797025896090163795321241551323504459463961070465724432455274496644743214838182368727010919253388884524478682214998448298718733579219906695944119991803804627033377927590826819563676720455057116781159077083752816755456448888511373356537674592575412126458354339233390762503795020729147624631200254644658626490383208245956195390683698948512594407099655355096987879295579051470090804815062688982861529655966470470599145628114420054945744505200770381532903883954264043346870040640195473100523986917170481166502246550326491973917989453674018450516954677973231927700969356089769141158405831511174032907068114866566757418028102768414374258248664912759598642213096757772259137647696924655767982938763241917242938565564714175789388558082118777782856748423982865592189404072084955746126590993884516838298037485683703568035918574725069278844267461669605718237193406005297992436673459867832513254349587858772649881710875031076246170211128788787624199389730286615108744960609170711140645391282488430742824931319010657616440413456681992417033935510939833386045713706741267958893197780039156910339681635651746283492471570587014844207055002552296439226327371957585362645954031242704581113607313096949991420724292283394069604148905467142907518535098400156499571063064534054329536347437936839690202555615601248086083890763875130941648713707210960379939768972987233914020060112047122881758060767761870410678221505901400038558325829988879280599971417780844896121036457583917900529186868025264617126286577632489520778005615917585491869241071208222841220891103685377789283921022111745305248095926876682016266667155746029571499878886282227511674985998419450165257300308653677981232348828531264211665665204164902796841193569209367434261466222993422039945430833701258045850103761616054062463764897934846127788561042812354900673622040165281574809348590360584329414952125897390371470922246501537624797569433940816577560604952294552075888931326935731417235896653052705749316174594825477547854333986058662992559513114903126214724666119216488097195334324408759914781006522640749312709779534138318060401692033482488212393348366934130180210459703128907374609242984416959598906620677534850366471104416647915986242023676890445836903995205900737094036885389090331315725067189910196335065217221273443991530364508620508694001828709899696387843965413948623888518426057008127568034492298406193460773966914041634944583341449057029324869973924360691444715197643507547343151836854069066563554576181577361167177620792637422515173935682654877724731634238371359106185964402845108863911299888622172659801026478269419117033045245546388052312941726130231160468494448816786894410808880745868743084290809036056082879414685142851322168227472707277176622279040316552779812846518336345373528301857378450021122937712469619815413801890529629504357066282455756446936844278313502631763304078419659825479524498484359337556128087692173998070729812016264604877534140426242922516889009026882184288450435937476337230355927707183791687369619920335688992201674846313361724878656957260035866102220111207459352703945023313355771197681433579105625362541187028251503879610247585795396451848480688810361752621364841226604234316297065753404121289035359390847181406760456924930200268166711231861415128836221844225790786808111467710512589490947377189326874613053847053674845553775846528018443828521523577380296794519256129002452410080035120498162934090216254424420828690886243823509326523640627323035647816871049502790894655699985007610219012625491027565677362664434620082175989162448963409317131222640176384489407219587002907585781870311757458878227005853479936878279630725511351155517157556732176203336367546042567570528825021835895255008426242372414421888960326847608119966713874249479006787177819426796645463530158412886535530100528214263050816851404309907766454513834201084050054258752111634902771968041001497702402409161167693663462440570871604474629387619221442253182175901364012797000774562134056682126523509612952051446760476418925894203195291479580800458546255701450349157219290224720637534263865450136198153834879290941768479464162680047844068372269584152429873177754703568552015153667290306079942203897804180667160614777145858711475087787044793667140426979804087768970367261332334917807011590426555664154452381956171951457418141050574220383205886852231832365681022307917046628882363824464023379123145105397063042241863144473091244295745196139516575098864203613299929467899145826151545796086255728336245137388665526584743586790742824972119587787352839529089952444418162653002888280333025096629695121187104711653392330061580173683915862618202595840437625368377188564885238036071562610193065083900925171979154025245603739125484590559551518077028753106324176808746225990554526900328185675840778342647169725058736153806415890924740318206488946368522121368019889810763762115266851059658975007814036173146192338344120562132934029115720770046719018998589929881231321365507250708463649986325487892950092004088365333464570634729446249278033903575898881316096403845052317196124396684029328399857432340550802481912813644560571180919099849339247211594199143983488190767135110574676477031405262387624007926351959213217479997527072921117098307372976407790089893822941979064052538510460968540436790123754410946095622231990891766689987106543425736787214774578601362125248432875900155535318241862162487502112138758330421503465827649098147348704298467011641038145394485819432612655826962712992631684235552777607746154701774969157750659488363164435916496808478277391610999695190242772149636507238837757681607880739507072697576233805518147398873174977557085767296584385410464017031749944568187402101618008924513176053954138638543097159465810108414621982404461932331730109711223105198578523413451783242842868423759104118990410147942061886631140011392455837910834032418232210479180615534132772917069274168973845046868953193950976903268223308539650132752944852373863343366551619405430538010165496930966409602021174860147302482864057179228213503433485775148460073609188782295273864284836269134980957249559966700401408032222270624403190364606079122806824961695037797854759901276962144847356038519715708897204904169841118833132897255711807801282211310928397027262927892972900583277096867111810828458283285338611311265056287430662685957243026973375397884373366284244025960728020235401346869154659760306245518588057594790975631520619356381597289701684358555808762656341058385584098164596505247787697380685481213430553739484811731986031378132259046038346845604930010302670944048585510695794774511447188718522649780567586870341982366024707196562143071119701400132918087953519875898498096798022775063659398357068984182847923899434412377262111014120270022479247587341236629659981906788859220827682562375322423551784044459693263622085480226360037725184755006283835742037744594181700455337738428955426159323157943948053962184535858933773546974619624222608918658160360648668193979234529469032050559898758989318367306996163007292358778795999688514523966188292651730163373553769098466976606459294297567428350665972624383165223900935487171409476196041124368478563857725342946334825313387304231700291641402753795345723781945618362069037022790960339908217186645565852147986470913779106919373364402224636121620944410460587168306478677143013744197192368933615669125510146480205465254182892871697580336315641878422594878411408947191782728017754023152117740848091066075491872329639972548941449750229280870130127664688273115348915907769708232583980592595142688016390183837070600205469604162951286571771133935010688148881334883828593862493772426870850981933982530403519740267573976588735541441788490764224328902505599124841073483253118555754177238662724029717463770121046960808670649697666339829823223842027433341844295237755985368530232608931639629305781045747749844454029110647556133852421493043104716736897165903290289996350536563062383801726990712853361876889014289192219653653542313359870042018463442717562502065062463757274968563990334660570740087240457875436983297395204013686478196938579366929792283809773250590491457076330683540685864189878630518101701813651830386483789410092347264030838554424570583041802140923619249195119184823562777210280883673105151013659510259642440248073314938484844706645857534970350007158581956133009483476858677414688018292687268619936255144194428537556118594841782155933033298223404291741265559261027008951518287082385624392429471410617973712784717017029270846314804296345096916250069778982705034620780711395027986874521641520052246257073860423066071633881555158843668956165742990087711138606785297345249931520446375369876499245646338087410872822032329009093030223208155863272737131559014336291693538613647080670889364515247281099177051867819559363226640234888127319388411813576429883049026513012493185607200144071625626174681814812638045522084320714772107382636428768018213014784156783817181052362177959748671146115505380347794401547780348159564142210064675512576119390648870121166403168733742277189448962085996785803617162557169499356365887104322426213749812433745725276069632043886418941232009671536104268081957716035223939799412736081031962751315217340145512690802832302795529695530291227771014313003350611180196008576366572500059038915966594104110277421249308363915722584686840701429803003925913924711986764983116283230484758285815949750716420402103523897746216965019051142424862087081077246497946358811709801835702071135808227053823638721446486915317859285287283966624431075806460649462281218135735623865060466209693446420043251160078294481069769870561080799503407141502532845025266861537840795290942064861305096320781297775405446238076913161987593713815814520851762076206862882509582342496014725618752375164568015418299926613878472429953495698717584707144371262696674649958606560386588654778606707528035340864449932267370174852699360840629194026469855831801478351934970500968226628834050088171191167120345164901637625709886576032400375513125687928035329538141432094762020252947086762463378923347963083067205691167352963372189376182256702260259880219649897525376112307047782745969339713427101692125036967737454425386960631404374323147065115432012241541363816629269737422260357405676736987164862322632035508295022653600649681960583926452340362119605758193229357946670235344614019984111545137975877342050326951317266154755456071493648953723217734732675101189792000001241848025439256681827308469427673446139407492036942681613939346511713209356821454446364493184870058283002255076032278709607582967338924571684322087682577446561184733645676010399390493280615245945771337751719359985557236551010389447655337877637588531418775185380814014181232663028665224484210741890150236949785858659685143558402367700580766271248778749746126129748569798295239652633065404848474200537176907957155107286282981310650389425434911526696569836873607628345689200195270535118869614628307478541727984761650336031269598145779558064579706308112863473417598295858135734966506387344534917428420884261296469206468558123704378699449149931360207179764700291833353950876328193933572164013877936232740663654437463194758695753702793351962418227817709337889015801545206906647910473666175861782348968685948667734007182131203109714476965417972687759256099339912987067155951351627230726906144524695556398255432226211267599328391535739038700314546410475521298766169620938468849720875151584462512726260591931636879915888279431066578550879901035819473074185478273329739577624030564330844480986494965517536312543733732853081656167379703901962423666769287825016979248806919740672881821118453107070142844787768211931497974582416297672087308553976707432929268498214063546786484888011305852601452148664066351735371949762113703691932426117259018582528428618878488561863319346937071458853768781055133767323738674618409381242705642986629522100195809174947380168997478637613976510390875951177418101430309801363418832798668761314041436761645663537995599956864495702757120390020076979912101251652097418260835938725894857229491997830549388934327508551400247233280479873050316795586194900979235987893051837405187669944028960528185319761243110309387472358612670669696735053503327329694386430154055426790538358898437342858664051674741041934281115198347370586136756854047217021067125036874897376546121377776261133461267722917109510576901407672146218359608143296845053925241831960777651443115165807348724228115843926561369899534500578541405919747084724121780189773306828383258139240343030572269848589455060585883014294933151161139240138704740241371017078730549329097610771692028711685674719583634470005874638031124493475785342977278274362597939390805605231898955894151501270043217245293850343870995753444122995914525157971408023707847931097105981533232799545109762822210419227969714187938550158838477984705103146788660129404059880155493482721080178807325603084388671816296285815929453557386325768174317987716612833646758957046706424028062513437891381731610462958274258136638148670085536532911503386639571144344245021881160873516015431653393502780589064534778242450735927870884916461783493903887149071233402929328576516283232914373738015550437819268106416480995884599964992095545909824188638201855398786712399504962733504396756304634255156338408745027064885233586290286639851880570898388699885146402390370044224551415504731240507165576358392513841785534674954466914648334408087713954142004237391112432061727363803155423546911088709786592764408836627140026206920091056638747226096038401981561467109171110579808601552640252641564775953430507810952601615128282361754505568822168108063278000612868007680548231135503853760787641077314257978613743410598010343905410261874925837186598274093764568952681300956861293011674417450101565908918573059310861274203711612154307467727594153004147532558127756904013883264050000787416535160881858985763577221619189197416176326732193977091640626087001846164089046237806447107651436471667257215013120843427275070716603229585583953304341693171920873263492764286167898235543007479089533210933179569048913756095542875168560585136023629589043079194512328070737724268262254724246671279699524713851778306531133820403711825104804321197883741513443082523476793360208501365201013636372720240392466916762799202463995529992245180275087084373162807825066329546509369670669271967595449689970179682715460154257361194927742357979583460516039268472389926818037503241684670325738613911113220479934204195492464513165790071216838794828532861701051132992427569518180562918162363496525441879196370027475981601897492354878657038210770448072208412302986082858653665753255093275963559458302613869337248358558441183739176274349837119818839225998083043447796113644643708181967924713724918921264915487494754411026757059399395780586099395874788378156527143649847529490223331025188689715526508710879444424893964526711918012924151845669167002838582297374618724409828692054857649653781344278692992498056948170372429065777634694299810950048841070264337602717638982519233407326965342046260069304560919448681582181815253622361343796946104010639733657092414227025752916233618239230564761077072770247509471636573649704171952383917766229452831040250215154896845076989068802552705185604379707623893013409758375566224224618042674123613028218460437760616862382297684878837342491221562827543084381532064219604661924800216300607865551094620193183979231543266726699883582656322452729264505780150732141332868484262589214743415716808303887088428312969693580099718852178731131295813557771838978164773176018232219805938665856379413534483572479442738066374700520414246946595747949405808213625355026802100064624341463675560188958072091393688287079400712284974360247488207881927132036344525501706975430347221987120566793929936472563208909801173800701175330493574439350845919524955292082280611188311572140147914763684100221497009353938260720244339149662187857520088283311362043703052926542445144287410815669926383868406302872243575111488015866277212968955693484241621251114904773426318763479391454844730478258746041242122996709505484198392132281979884429875703975628890883941362789998243329258022298716673042148325615016840831447780409061320282107707318460120767920107911662957134103750013746954297948880349219344766163626690854981490089488508568694940315335001815019915884811003622293216202917046559781291940478819406045654888099424595986326014173940008603122083924314719860218488589131188401940375539173645123484366989411554118543378667021732383755459902043441401525197784333587941176667277028022758094441046359003806098221496410875336980385072393003150041513018519942295356936026611804631266235711351302646396336203993304982583094200128087432089915662465640151571916585115786097231200808349988601798084796941808994407147095445400024477997309024489937927865572349229002264140581086560164901262562792254502188239115702356999976300637360147262784251788730360148351192786195322341583429336253641249896433191666205431504014074504723883438143598747471628303491510814983821426616229234365825427757283579708727781566161593618822274037117399685845867408897954179234153522926839795684136167823827040328848019734561950928832001700272369468155117646828475077362048556543257363154901348860812094350620713546281838790908892879426123273984490144610822360596017889664789025354451571546140379312239533646763271938059986234709228037957682546726960823921017345735603470759596199983732170399887245089241434783733623493391191345213903959043364988524912947348996735269552912893372121310081336577494891187538364141129859208415956524309078426326778607035039044558176303481238366872716691623169141427962776449877077848985836502334880866429270877929241304275218767134804609007959314375125558224544699308145728088235073617604681256884218027261873361361415921300686120256507998729034055346814589722094238192743574430602790671773596317902410714592133157606821147355800819702082191136699881562048443617488762333182006646729222216898115627017074172879028826990260337113962667896436898025711830000158081797038813533506608084867105851300720456712027575379537133933669245166862973339080838539730972797501765905982776874341453714310733382021358811343688235954212144772000275117596784916035803220631200168040009324789362783741346081677943791988704383809073820902373866778421353109735708476339778741353252178546745180243143598648668698500492129244762583519194102946972691083676854406064992221165289711264028532543909393582393639008596364363409334007961967519039299471008332713846715531459577646961495420905268307345132127633045036060273834898583555698093494547277472681804093578286601549991336630531127977505662682568722164103146812895532229008598423353282040035634574084086343942177200795137944249763878031263115264810364887851271371021892937774429199827982566507568318624610238407382412393968452125499438575578161629611515185528770338163776285618332221773170341726151555189032441156890905110047868034471574573045378029467498123200704020794342606656571469192779708123884219247082881517591518068085408919961287179266939924627207176034682383418445235055085821821037055465252606971487237719190204627474923579667117810009102506473070404780862204135419058726472506542508591387767191909488756310981088876591454276714594343278897804750637793883395780327330962273897098697333214291196475137113650694923592623346576193012318808738370411430125577725755637427741149483193149216659959942741572313778332160321145758053353221875032175170952494490544237589781896733932273344342799480747127169400055731781450766682411887064648745432791381674273805900133660329050906134239929677012520975990512318692531993070249946419632825482920615121878635951535523783198396899658024679130977703630357009503840968781796911951828714610962347900821651427046489221544104508922731595079027739665829190022756517171761459600025369711697032379120633598240486110479076034211460522049754841133850347727135810762310080893885681683907362705318617647761838093498266173178383658465731008334501565119092806587506259251724728127586592023846150525209884155374553940063969804817649993025995712475735144917377213989028715374648685331525133697196649708040354220453993541986703146419706551426955314019119553731796640956029584239733319680688766889450482024051585872491927145184958600198909476480978624384474660632753790503804310043872111892910641680777821774769305296238018295425725982128840758221784164679084111459276310133032489072925833208510791157297032305218774162117398112763449323207241064304111943681296459867572913077000002170927741289363611534856145251116160370294328931661630613401305053023592643555310207476416502534837507171048261240128305688645438252222907207968982380180834558576010775939308214618710338847174280287602770702128598712579580089611169938365303056639268594274485745240237539580235096249933578087593152853280630888339530572517476334040236068591746445613927163153961806710072165277652411181382548615824327694012334845437535124086112913973860919781147346034451625562747122059506533732195205708642455162223625939027366324395925315333183851017073607709707116724108528144143416142414127865682849278329951395876067589472279750367554429142487600879157406641084979075546055515700428579542943869741812307800096774746321395872150484130742560951913764546963487702245674079101672081721850167778077659799383332411156988923133313304012654822417518879273676351788256775906485587222247144638672549825838752782109884279030586847312726156243945569181164582780859666608091406712489662689816582014660473210891837873479022420584738859255464169431523116539315876796950192226255082681849820953793035367605077134896809069283011381199337171935945296215470214881940030332686339799200234977372454074072622811489408779458806196245683120590910186264528291384317100232469443279280541320578345595329280871935727078245007623705736594157081828446401452248467926258634170416048302071709684600685482232759263708989596262434077501671694889161328935882054504305777228783057136153282819034988930043364348410309844962132847334925548458009293212650751992344455908555342935692376559057537417348134568377066830522796257222872862771286080291408486444440585145842633269172261013623099587144450133183855874474379653526151275378040536115859260443035707353057987073186619825183638237503523092451871057931589323595598722473459370188356126143651288576937478278234539514638305690691499558441300467907510179976428817038366706940224565392463828805442624843099502886152152826964617214659847587555958338446691377263366038257041116725113815012552513624147293763652876852413185065576758437746995615988186538795531720436310093244040251207333185750795542414150511703351792720932771151865005757263756815711744459084126670820895188105125752217088206243775299313098431043646877685301236592033326876248770506676873152200534323122295432091738114543284092994709691538927627548084960889302528200252173458762818999550635551992652629852233579735916049907870061756450641963440655258765950648743760830961222271895721451763661171348903440389290114355954425468251782091806288257427603614155980837805319057403991076423102410886276268401585986798464416958314979004814834452591033719186497965960738420818149254483225286178623360248555367101236388470054122631397478347190685650537803052527276456121270912349771671134771760295680258666638397808263286692014298611336013963836628874080694974228553242660407513618693607200038761643029090746583744787628566870187476706994299222766775364020512282333976148704974689622246745459653125476077897368469829913132100649277240343594319151619414110238664613258659472804074102144072271105385267140537298315064410043275510916329068510701672610908588235991510699642259996799791470156723966635312886874387090796873320269428091640157496719168008373811575126887688473648503961888341009473255452178868981116995392597041029635493462061927316760741452880276940556682654344030151608790610656402053788707465839381850162640768456370598998879803841015166691442304480884284317111886656554594161207277741376206884757583226737040746121759749569232009724575193105320592666592162423991204064180962938964274932513506892745624302131348553930423770518690031147955620519327528931000632240460256359884926895443061406876822377899877519566883140938017756595022641904426971040228064376403328822837417773563051431090851899073202570077594818974099500773382073479998760402501001433171968943161621815814089882957819467619046925128955025878046259222067620811900343616927634455530448773880908838100282203296065804521087067271472446710193226073069063646787828843262350013813798859978970485686733140971521179685006914687619537861003448742940515092052587115746623957730402817517786243585688885069619564212741630574198286943612218904816352614253041110007063039297941544843248375640171479926806377648228949516426365811701635521972688392170763321674560517370144721718277509394495178731979430349847646398596688936466345487880632231160169462570193699636793694885066547332967613659525575745426567054021021425245748023102979594563135527285647341586635968424125768078645657176087411503904938106041264410031539611311387344771436474965822631958649198363775881479134205131456588331201181104241954416185995415322557277041795698791046039507128784773117635110498570350129410900762059680901268681104718287949349235123536700632976770490284501172334182805559289158252072929884370899600613078535073020253674630687146983896872232790409024506503932114343230392546667627839467095419522099211032632751918871984118247223962942756535763590162840196879986246382774888644399684567705345475836461254788620177820973377384431966601276326028805731417209708251537219096029650135679338351991623340385813985419062068607557471332005028387528638546163961611822047755417526501145478737225493545276736333097534981959414303337273260922996819783035493278245941702380717946552744248570073763392553452627592131550594549051389552981853268099956892693405972819301781131549301569402921643876020128199037763084960510639398019647652353661010468177741401102040558755520931398457927657368132518370717056066863977633809865707360839277727052661847663223323008962460020938882681883995454813988453356128563120518722959684625022490906365310743310389427253302627061083453513951718713697708583020786869317457420454821956945465194995665264471614970950225474052895132863846375739914436224789351552343751834886527201968098332772965829439671066501575898786463343932792527291690888113148868145209269586391431160742769296186589872199235060152343801219520944791806718025446653003712976358453701954049558993114447463522138937172466893257334770852223567693372872546315314159077375439037560957840399001017785129016617351098638220302430738360685205918859286020105002945246106565468339986820011052574961072159659111063062032210153535349902755887816161401275303030626955955463049628014620018864810518152044119606278639184674618255642989188696565086590803586186440735236188556046518978854256783908711550156409999804849562794333790236214672112462593727976616113585327123451450036440594740583395796066149611531846242124516155281559564377231561286000972247822146631273793253207785012956150314822749861228094348006372729727247292590823215086074678935827667843130828561192102955199432014551456575202858642952928893297057066169417511929795654147085704016185110813103008325205542767342337233490326930816984213475511551915328921854152023371858086554987278377588660165812273327553593086867874736165321383137436280138339909497517078051083620379227419739192598351053185235080935700032976113885611356247837604382176123020667366659393928984387443485014966391198919367922441530127694965351055667326848931248614542239780014991169163653439068818875824800844796818959225944135606498338915299301934934899681497333293523076037799347252331405836992718800489387425597607487758029314598799286262761646732004915688668755864993671100594602082237726326395510980531102244554872058810337226610760410484406110997757852668098624765930271882151475893134341413567643776383421468318373525705824171209491370009682090468470900664955326648119246065735633389648985602654003226989252135277761794933509606977181797764470643059958122726166404812174436159168526673913286721206263336257448138214536638221370451296791019267581845474792842556060040551715092869201863494761330209360062049113017187683495978246253103779307731629285824790102345432579012270414814819128981793150937424971858902974487450788998270811825653746019409999885668656828998121328996289648640285081403343167112085674322654000548072426181269200299397984737695905019749340206435433006566835164027660017158684791844337880551597387174214219532123229817583551070487640931569966323643005343747462972136548011950143326128513938459987608738571760437186963382624337331989537347023217683420969325893001809479074145135309810050549101303462332084990240572589823187457794948291540978871223597713454826370506322641137572234481824504638393379622260257880186368563254340114877753471241259720750663459686770228897685832903414107932351319219444492782242069710140731049635207890322257042087485938489866922886455295039904937291957023284734599025803526205405800242330114674559123667076031412825750257893941780960346074098957012060943913701974746532860048311468807559983385828339036990352130387299310188762620700537465775149505538018430902832290096646561998805696857080628537863033180665224794782488875241379829155220573693475343529646392113339282354492735885261279773210680799161416936273767645707976126798343011037682406786870702773800354193466180798782160180115646904976586277367015304572896332277256426390011340520655068058516627824238519746284230839216751852716271680678274783090204547527565160464468112770922964713746270833329949383956318662119664827359175828431155741168227672312631340715845446061092503434400778017909115844571544491040784845048974599196562174796272570195114108839290474373574202206171721209140580415611398079519468741689613349316043311301848125611722365541589591796805759376204922571926957311990647523810684109773116708531343938633438646929791743886061565520543065089328195455252060334375208577089810743121534270917496946944858396397994660622600901991243361053566203543949753701577386480666603351843219910956226438821825530493220393922412575302756146862943467536062951365363879796616648589793787614608872573162914185987692560750498748128632910111543174585600553323857853910776607911380256687330289468559627749043531061962233578854351183305758018669169840507681302433525659644343840471690783156979548748455450226925844857021039855198242151590870663236845808426718381458074611128129631014073953244554704972183205898425667301791648805515582400350633069607574152265804000307297978884127975494282630895221773128533647345326805709397488128951694406688616805726599279446647430787110760947602091331966956257253115619738135184191582731748211353288859844108758934675151799494384161826239384022585771966630880816598578321247027988458038773825194391318225894337452690927348084097527639899889757786162470019170657467991002222611407498490609466984435661603761030390659890616250269282907788054115451145470736798924639910373334539741872055375538156475965566493181357278551761104738354815670622081659030049189760555244673795992063067550998042410021243024652829043839609625404173117716815232475384393941316429597664916243295164111886921984856037897543730198136771061231488625470693734188627698620721046649535039772653711186307090706785133113622220735645457422367823554979844026573155089843900470347610611290634092965343592030238582493288922425089002314825295745033411719434844235332508496478665125407335229140840569607980768979005905691196554430513949070415089449430596937251298336206331358473380543697915162224164444973095484951276580091049159560197878143835651501507707049170244971188943286777881567590871075227133918863493107818350638890564395103218255391164398475961726415052066042520524669800681976080082371804654918015184554452625136521970846425989643208860640649981971335140752388784011104735302287727973790241054361185245347852076228395841622259569579771603287241134927309123157446936254053204760048552771221857863327892260556765808408064659959013526484344189560430602225789157910906182280221204143337973093612511586790432152440225499882408509967401304240044648162839396084020586836310153552765559239109286468716837796904428552130296097946942647692690872300570040818068576611075738625747357011904556398373180845163984617630163382902959677806435615011685681122733247450777648149279122681145669547040959241622773732391622188337155538878007803893366574538148974012133239354765188836802774137426757967463575890200314482186037917864583741707656118265158581355028989442997425679693274153147292761029444490544142757746924617701636285590408664817994556252524087150011004877006762815679442364751147383845763602371486914974804440371360046369599605079191099664494710888321636483061736337940719772019591780188643271986008163150203474140908208654630466532656795827219331546670115297924209861610025946872694567943553983755804351359183122243362416724811350635886193323744428472836674163557475294876909437082327171757953949268378407881637713531600310316558653902557696906152315114815741765386077502530344677049931736095499837529629448868379639466313292039558250613777030995424944512942674399425848908733444791522632362280021291048624899297986900550879818502738109145012219167927673333698450004048188784864632414508660927827570061847318982393318629938527237321406801758632925894514318380916471083092969889315796711076208340149827951071812697573518465450062224566297726756604434511748448600105066771731882363410104605393038208282178604693698676892870374169245502970035996136939829975244003278449823246339591879883142387224564812358493185949219467597457784658039291663344422732430763590036893990106630414303693749477214339977753625119912551070571519300458015237024192641378376216080752530790493346152899749542981322586274458406009749535102968296482776679787782259131197926835724123390624178279509236389305099151783866417414566258618712832756366960012203306044564504635017697740062223837297924969897401783629129519320249837792458114087420409243884346332216074044406729236927950772196592640577495213276217521585473338979096273621211011232730690081490641152840041259593229627981124769454434931449146229759532049601510964146337810615227251756443713898052584797976045587015318967950697439000112449034675713926354857926599814962206980173064025161940928805683052286640547687561279900742873378889052063986630587827549535073894481985113436244376352244221228953246223159519765482867563707159982597223286784527699122640722288719210109285922957363573886593884955007139800653963340636746240579731011750077982554652741162647123162994672723087439578186987168379527290157589678418862356157594213285585265961475086093910777513568269876631446220864301778146955957635597984000261318590667792767029691944399663112685794210544134162902822679739426958814056259929669405593064846386219858122726364384806384513711846633917388290359237764630473853142553083286190179497368291108355904513194982392023939249455696132016023548665273551626098529287049860882938466555671662613340430682621415920395999758175634124940339638018885898982943635739160970704813671840449478769463811767794839752136495846825621340720338578948839782449622795206377098322446115842999018272918267990022645637012790062154769644820366097498821668297000013583992900242243447690544660514297500329584640781613926228513834620513453085811753082589428450912483525804509105195293912791722856977241155489632392520146848590611634680972951097047999233409366094132919281447877105038160855043319760046471748223488227696349563423703771515276490262967037640587512626929334880419365408006500961030845424978113524351080336556703608495105156512169088739420090838059222494031393401877343377643299323372340200124179879254664047043653181393236826123685672350761411834294132549353373315779898235982171567517255201030754123479721192123436532247739320300222814283210672051926288521047624741732940521126780237744227921872612270757676142463169234064552229481553299232888311345103154141801778201763796536226687385918657179094461792983444573079987091877459557247794795055089687921607889827465510241820678164824530565579387977066192512374852658991924068623765878986808196870334450425439576534328597664709559662151717127613910403220171343363485194086242642522294859260217366369078328210114085098265125311109687961531233268835174987872800707998510927598238380563871538933673754994572549334659736636402643753475524742935773840258268591280570721901568440780994361715365912836974880532217092222440637047620200299725393995651281704331496093019852445333972146151642862667186521889776922950114829190497955840897290468334857603450873279829672261515431040015614820756352934269819095950496461691816446737030670932189604844060125158595345647626276767536490731362633823538670389789447656600463249636152413991117237375959649003696789335770545812389564076987827667408191471503597564679862004460363093020597887517444208724901151251330798365921222946090121518626588385434030093047026528254621189921585102883656091037149383997063221879050677448536699970209952918627977695148685841342617214309751714895131245520960385221734613644183982624554995336129815068347487561104976130195672298464832726647674206829588409230570400442563830185631731713550978083753619191554010677744117520038840149003162649161494516112675882088581061550668775689841325250808568950058826253690296832093053256608920387499820805199293048838395963739387037822907185423054869485631104619454965187249415746631181991141196289412097963951802433444296127310982963134032369365048121819234048243306815415533652837745436582757609218433066402482763304452666584893253580078405973992326527400516924023222241562685229219850205744279399671288749862063334858755455843315201679916874392396702645154831179298379966373190283834820855223275946263599101836568175148500790671498207497792528953767368005120628747383219467051240588648534359018175927674878864407609536929885580235190649055330179438220266284752691544328744666340703952819749276987338044151275239469700851040113103544564611356849652698612821020881944540997256648318652314927303343858135179999208953346399192846949884901082824370969409688790251585188125951520096895307622310822237394499985859666803556203658836694480634797325421194409691428219346480275007299207005205343421173417936775156125042316998568656902783002253577234172826686842670474488700329144744508199954608607384808910376411227957027054808897254972444460231290714517658537725248282262520022523233890428372218057684864061178432633969994819744565942570560766772190521086905408901709860576064039251832430920108455407922913729004409791080019538679817466360671919810637805932414186169222178965290460393491093358731406979195012731758184609702994167435078658959968246486006594872396491120057327740429808945023794008888608923197587875662124362370472683335078129097316905000956335820916314721204873276189192375253394976559636592216887939710139685135984078658496539111084219651886545195490001673247418669188157461903721123218694465333193880679256247909747520912998747367805580638520899642321743103669770013293437200570205754830555682432734649528286811648473976329687997502062584638464655718052485252660153199023828698573124365819047205490148686059825391099006224759177156888914293475346858150774917038306823230097115841061234332757443907486524809901815834699251303538028240214943431863954944842551674014841730934877628703500074820021866237701054674770468108490052686214227150313419973613466600319983583953557503699897143801122323320747196183567551026246494787381164832138983078613591637864859962237156677589776736817147460180539916917355348628019167983402214194464645286188028765305088578566369504255579073492461431317540237616237872744078479319696852419857559303518651814627377373560970360289352451763489803662027121913980836203523119159068037348303929756378107183155700111221641483993328628124495450319258894927671416548976278152757828238565833976800004226098130267109881269021189917819579127066382821455476401433692831987255550864210440054486610928854882132096128393066433706623498203942743613069665665514512148711398192286150928482317758970186988202812736533289254493559936392269492992498070126618942786044433085164327315209868195864285115979052319847532877792025445915421584385285691167710645664088456118924168630680671521664765904739203084322873594196141719696663297382445809357829566889709282078692585326099200148980014670853034541430696509900043110888788890523879124106738967438803586884057415548843071400539345697258390442048054223627030831984709301373791350672916849549433439857192567106662422804585929166200465470251726348685748620577650905802713508473457576226858568690602950474948043084214460836573680829015018740768715943313980577892881680930682888845304717679830119815216316311983537548633621774050910881581055284363793679605362825343064982361247284234165586930280891782810140409611810797343787586028754209180997812193426567826605832667417457343005933077111496919370888686400135956938595968722333532640296110251540193245103196120292818858006066326801852871452716566598214132387398449978090372521349985066170371674047962196251794451314406285148693689005457053403042459771521702087543935612021140402388471646370925397127255955124094401277014347639041156420142217071589208531954189204330471884484967879428595738281272560870570192276730634496889467399696070688845531418790623140458788505225151426466994500985688908876092859744679906186535502886815749510774863657774667682001097889743867741369504822009829545768348296282093766904788832481934413093983163469343020221129303559262718380513745270688728791471627839567817996298281108779036487898200178852283962706291189418388048997385065482737005477821313977542716857926877915198957714345790695200047068529720343132378682293193271775617127978926332541378704888637100350014295476436342015771761326483893959854641943901471809722034357970171271445881460855006520431199366659502403078843464925322259609162145626892958220395500455140902012081188636307969623596244038938214317526814000866790247696211608462276299588634854368712356196325888045519986437998896758317735494928330409483202350670464776783356309218658459037154621070154075659630758841641015147948048463613537774392685372006331684782582560328495245735982849271485607755162223205053533453809374157591712890004408812662140622125884707347268873970943668556555245848094364184511738665885411452336160131652182216268230040297673410420433310374072084759279823642878345942858786789097722678565413205869162274406105794460880074022422505326000409840117930847655086319591624678567991112469140930344154593313381919386535783181390817395683308337164200377471572613616045935289570903215932556645447334510275904010215573593838950328290353815703227366784787576161155138871584105201133494999225784548740925930564465137529748785740916408313708189295815993050844441002862445012579291953751138968983069186572481909229198728430736644335009437768822719348798257567468136936850155497154080241366760596172632945320583665962880939580199962524556822282856816469703206502827680378277351525128866764108364276993194302479848357870329143464691747014683385053009902269792827710097999514472497204911286635788097132103671083548110426591974463890645187240681857367372768657863182817191038791889006314381086404916149672199210608196065872215040147173166278747186355343119866610352541461707669896333747996772157669917809118447173510501764504547259919554667509615164030965322813240446385669254578020341398990171851896332678806692752100877436811257259163707190813349289013884099707886549037864016472827275990901882316472651786217912710622741432639670927461195893772705960452771971992964425074446647301369339903874581112642760940987486232923967091825311068630103942540399488888182349548653459941916314726554834894031682740037325423880118933399908237369092579327722213919388021092943991572575926287811902103816338783943812604102306346274132123959648445454929337642339728126865852506297311660125309204462077826264475000169837021194629963889372334114260138708731736619490054789510249434503258328444134974267604333770171942559373289228964428621720244722622497909767798645842624069362524385946948261686555453350079481899466349240568986236326374288968432914966330887738285383871278738912066421024345373088323421398583397067277094256900416403243816871090009848303129371242106833496739300192123363441322982338422055291981636002096105766728540891227184537964146174159691502167032109694983481727805827352140002194356730875426805817099569856143797241829079119230389645664757272419936764627940851522969066985423413331060095899210506414405928505650973287711543003395734725950417261819719167058039153892933298363543353225397082538521103366405543414091636005250431382169133119222216471236627048757895335373414435302468950420338991621898063784772546018675574134780365234845888718067298450400571451463898085735229585086034696939525826501980467220455985803325051316461178127203995121141846591028611642012217216201282597823672312983052776694003912850027425239206104955391878686673911406763776433426361066736270968102452192416784665667266399428596793470389698158132718626422538391619961183803938836070816662137801543196064872012864208356760754566493733207179435128925565828896662027536256400323455236796487136889535264303130496296528897018359667242414013815192413158377030205313766677822656289659613429572976587065970400762304246401110147212715462687403463127848625058889368668429773294666437826599957414661955564342258486826508359094828230719787406831076724359769250947631856502237052138055758483657891872350348294365992371249422382125523891414410424511829154188909422162836164020150558046074238092221802532589790040649539209135576437293576030056359471906143844011100147478717470777178528366140057611788474427039176962626949539186113771026247513467685475274304704523413752312951745463649614978011636072188366922982190125769331961636087859960530218092597254183422510074119777473092604778997149117305438851325842221056593877261567091830570490180952283988897414398431583709638115651639336600795033490249438482411978538317361461685072452435000623601966993270788790182546663883507727518364194083156586470440410468145495775179450708499726355358302926522906966915220088137888527660707732334900257559635708675440365751917507709768718975829196082080820117799253913699639098683739469446514359708958251189041742005688559749549861151013036087307868029663283189409079717147499404662334064029108235595402134106708652186558356221263485062193488386965336561062909214221104933466990147208408029021104773366742796035055309253031886136278849274041012924975493916336765734093878607796342500854479951576167595043666099914303921719470475868956728558046427381885289700249796371661508113567566574164722782746410105020913061079358276234509650456673359748461857928740241376626324526054247106164089484782770540300900389956242655440888014513857608256369656633770804009174932627182791219120174486932019430915721765411411021377291632273836151029376943054989163060872574234578901255291339621899661944716426299124515419361500950105084210855159643346862280624741057106534826270107739558698396639807712734396165419454453728389775004397649484171293011106120836894451334331731815793359916848057549558186928392885298936247634789998444311262844385336797057291741459631274437524143270832875784303801255126961617581809894706009844224155642407568066667944481433887259698179540039349942392794283141763892764158612485555435809894300521310372537722503879210765746164341604993845226439186120281213308587366179980225207858793942096806293348642377299260720649906231275134412864029644486145127704787784080898243095248302227559707235954916706190250660935325972563007723389695676223765977518554510465502118598409737283072341345230048998391284297885203704168293302627012410459514587590199847252546064888696242737386147951927029542993802339982064727611267582924734806168422191243268393298984793926218987342802409875090398934431046228292403918830401844613293490785564185506176965488405114547537180958450528392020041768866989907557954758526765382302977062164499393701311114163293608453782384600900874233635273776783717177737546786376234302978526276545267069167189266308031399299734568683861648057323050256249875697013985283611339163403057356061027630561248475022111603393520949450286980693944386304518770542846009607804628369649689407619017091106617574584354557354704420227646882450918607394617605223308611650643818701560689925273525202439168181232535532975462397608359688983840747499943814175313375866459042512452468220934445016378426466308427613840214717686454752616172012774362838336277232357937853130144367949575543840895797935866544382429836936434083904007570380583085492557808066406740827320219973595946514787938417121920982981454276851799299570260424988502891867178668101290217818914924890544957157119915443266299133301674730859899576082243056718019520415745337350776087000806951885402420404684661392547175961097722734448951137390922404209614688005845120743260483134214942303011994221788827860096100200460655167404310893829820008027825695285392441613445880078603255858326874117659183341862367484756861411723845765203184073024614306772054188857741213779051768774869226383480434051900750463151069309966782923724266074714239980295354816968561480478089976074395210152117615077582584462541809867126034652980432265424357564157402666632092295522998453059708840794775891476417327751474719058677918763042085444971378600316703605471676736294214600159821963449401262109734699047259078847882878372234108559702715898431995845741756838308616634500351212312884543899436193436070289130062592831975436948184325613763793432461272980328772918182605663627999431799047423912295636922491561557758232277629558640962474285798986959688982458540494942616062474995740783349511652081226353580290230668555052574241088510645863181276527913771376633025240112659581355123309888801491357487955797845997321345978546816721204786764031116562367192805855294265473523187853776731825861969384851792087934703642453051748534258106440849744424098190607624966426109987623220447942507090309821126398662003130306269311963299990286918583223435623353938133300050021759689367158308607528481097822395999793018085625880874727579786719688673488053219515935884110815983398314054065830197166291986326865095671210393423813867486092237833128253175279053323312064074017120697702713948186778439878004213416514364997555855471530252608790707538574383950402563109182458881845271532626472858886179810469165636836031734917035218297505450955928232041603018204496879242468047682767342212358018852410876161427314206326630007094506682142760721870777737663037990337359057883599155931505378868662575240306485925254621644131328695114988270487013218684636457496521985772428930093634539692348573815498326664577129857919235883454110325868087067016710020895556489428299502284580503283348820346896750191169140830982340249830831223693901145649775209386246801177169807260028890020708200906058080413455866333240443116189284930495735045839799082966525348834293086047944299806549968363130900382257463215646406465016957053756793604038965602170069317253533525884746221933587445039022033958176086306823748833050524811965838967870542024690341961396128256605603781577309431977924967362512571585799054735668575609924573673037947913216605658609120850630182375432754258534109311108224262168536007912121430416248011658268197594753374888160583743977145991370681333465062577020989792841322673183624005085619837162143636693328405359228726197679663050408735211386326499814671257364566863389901063405677737968276956356108845895246389549499065331626037676496214469336731949386028501282195953789757580905627723702131875164143891339946173462286846700694449394395651414606923389547452869269542407758099739247675280167276252907031564707680955418707205088292864218271479322358580422814775616479504624059299924639920553172071021526058118572914788786174483268887430538072276473037322851958233943611211870482875271012810325533861377712889482633307983915721830364911423945100741655593152519782961526547655764090108736401724637230201795349169679171951715371099856752851786771190953023594764764864538597097704957276804664215197310804497324786261021083272273347779375342023139720184482753243135898641603741615699829109655956756787417448747947906849049987217066434999581286861913614688234790096003457437425035165382200446801314922111378253841575423588180172741571880217646603447446599536954970768836980035920397112039229456429466645272431242951132424479624280385242793235183052008020149228619712319145912222273508934432135461131057964444224116031229477973134128167257023303273834296849069397875803826248122083428614640501359998568051459103897510163529594430958106440621621889520916101243213879298367458932299175686543978047877245794439943455437778662768152625351130327029717920567913768103221322834237708873871987311692814780397974577716954663237445977874361788822511652455127695473847257081096264788889852142728381376186064807413666963494531914075372922342078165791217309908853195981933847990868942400917054579988498833171610926896725126951477133794211522723120676949199404818220121482904115305449531531533188711311833459494607135140504299830672894289918953892744161193324642704308080894531130579297800103932825448710375555545680119732605232195556386847015718112542741062852132161911325518745245645441530866193337992995174944816015539557471197711182605410218949301367885931699535354042907324025420413203399360778935802517166603281819779679981936157866993973897160123495480514633908531515332365570606803758672276663021908363631837479012246715991770671622828120142239153317403628244910623989722352290414409272741349202897294188465242065398778316738659862671904025845966559337954533218593002170543480674820360117909195078844175163891947270920146195274312444648089642272474532821703485462624099640332313148843457987602492976408380796068216518756435216909373394889068645632808523823268842116921714832116391139852313905281252877306892193307155624372585823284273347443655445546566645319236952215550517054748068379636956916264073088674842272480649940866937362643595263190541736436525598929098003151235280601969291595820061711629044762256826465268009701782649937717952288542537243660595998759772212522884998103198540165950033931372122163140426674964143501790821148932692459662032319765200046563083215453126643859001628889249124999048560120318918980192576351069323718226929954397245907279765178295458690414240425499671623105797687669073782778582310747301624873587357970459419278278295523362962171972420984064214888754391126123457035628739622487856924395783424580492837151738904039095460461155528564399447660962853502523337571351037183153943968994309078059384808802222041726283593823793814703182769425021504069545904273265775722878635447862421703062535051818377251398133791127985703108296804678720609645678820912416764509189456175254116494729983946767604703585438344357590576502619648511927973363815320858023225425470442754529387730973864602591028383612083810864786416911042741893731815571500899115493160198375932354144986772589286474182627277794353827349468876309283179867510213176845544295437111488714330392957016190679647322847047778023698946246579543660368254785139201898723701796041440681495013594138726554881395947022871666746436020514079127945793261001560732367623375806175265340493634016129537161724304204778100155005973873690990560135730756679819855037248876039301148589164702261598550272276023293212344783458611617246750986374883122001465279676906814458470196179877760516316573113963869742638563370683519059472123011928668762638893926456328955661434013202922269099846598177165874379666072952043001548760318237645236028141454144237785229019080697453139381251574886908108360202667417371570937722612632727597335465738821518643091963808527609536542330079135478401678868889994637110112242103048609318477508012418139415720166267560050786106168096906641605288136003144695292263445195743252472285969331652563727189174576859174137671083270983417738345219516765941735459785216164828674982119188399162808173972525978384013613544596899363691018664205975149514581244040849370280002235530910052309232973229776152418769000009444007529687229865192400512634883907538539460172422382284429121371446569737412801181714373204329418476171898711234005205765327375601451580073547241906073483321507815387836906925574410947062351068857164376638376380059432523923567394574507415651609594919008868176750902218515029863081718871293152741973945792536506778992109590264888928657280628889870442665441851594002000886962575979073750758904294150581192479466595178525936904392749153812428567115741383551147787529623697003405195692045420856298247561141538396403499213859849399727156324504554745736942289603647279872168544253892554820891728133990300993447744420992800221746399710166862430623770777436961545878730703917022453963520672817496902405156364358671561150922411233479289937975867144421047040900243266302766679115649003163551186271047967941849472261993054699303486250279936488284895169593277134128053142345202171414982299497453731477322461359481418093369482817474471265421072700967299089056098263585258194087083962076007937310193525085088527202317871063979626851515584877599216388533762103821498310309040646159176256590160705765565432190687487685233197726680995470673034628059513986519059768365517782693501548351500875002574913743302933875059991492663297570902136820947002032351284194882860389249794199446892442037518923784256865826874534300146794106470136564181531146780864130354706568899348551633144928679898588457090375356307687530285481130920781222125316182243272796874239136371390113749949811216815417379186276742465957329690686060831691965424956859965431900614736568606329503571957246796501385966016754959436955955449077102344006229758537071120315386126290357113413949069798141734461559051459583209214628306771555418246106180813445859517785511412211724092016509027594555686537583559556144872941900676298550611665310495996224651717748524239366558307593947923666197966036861560981005584874052743009417818492175606837542461927287203853280156395240443934504553096822829415701007242064176974093386122649610948340162829150178873745146199002424466665799848006897848296767696945615103693483520344985234314296653253488017493396187573623526181789558130218400241752805564772224998144326920152653905634737353776369230309916372115543517481289489185328002719009201095358755160214955458763928459541458323645387772284751490194747226092171084448608870448266667437913441203571929392600039569485027684114827909822155865787033791858773411235098227020885313601266549160196717121495270482280977222044405234608974660082249897842917181347354009177844593151602746420576621355260922664195145812175323871430581755940650009218597987329774799533803974544415364041358098576627758934601189402742673549994537230514670941500857441282388493658687827022020152534042404777729086292591969579095099855866864463529043686518549919389814153916490476578891022620484043520989158510761834991323954614259058466934269610817774866925229188812192579634861037178893213180335631160082106103768980346513864904964396390248010899455845764051519020929094764552959975778401280982759245698979910957801264156598136159650856469072171176551125844653857825564963267237161809147244125833971664917879445191936697668704888801739443284579304776958674232286463449036120261423364886129733285225956421475616713508112405578657247554295495339748400666819423755743210939120927594126785286876256262328583832417247978395429536668762093409360877023172485400847338073440071808898904208892642636935713937518887194010963029042065356282811744866394848852550147687015416838202353123864592563178783789007664729818435461422044494135067240045330465629229850452682345346114671242246780148904482819037215493738292609482744922217279288391302699230151983837485904860935566182970736108221005290245668081668862603060141519736799294079830862977331417887787218873114188614016915457076777423572697334085281528512898027284195778888270563583858778857899148071567308370562206555292953266933097683946254778864920785423522859527292791455347208085563377605110306297487713451942388941421308671584667257745843521673224339297575759533056210061938531689665240053579619652975647765426445601661616611731899011114788696326886062713370228501492920698741527303033086116516635202649021050824380684050332927442160990282250780937105151897614365224321198760403739861196183885966007797112021046018328222258864866606447290614918513686704182984742748036315008279483341829815993237199076301347103217833017355788695322745331243127470045335008688563439438813397297531947474280056455982652496217715396625739286453733384382712538170565849720342910689053708791865037900870407170091039731272816165835170012043234271654111656149609678091234395104146242117099302419106208873957102471901835266139724449165047006592270373030328809041641081303157594941998819130828987929421993452299891892356899039047349882777134293284040872959588588333725908599583177459274960226900858506505343111266230814871604135657155231647474609465530167564867642335212194539384701697132184880910920732950216740582343999951047075201678365004697236902399268889736356988554780357659328142296201413922626266235595852021146039579571683750814513210305575549938917484446231163714553289423331660351648110655803381164439265915152791224903705190336859334476430777330587048738259470346908043250551215833287143413492387508728236302306277004677014590467200082085212714522537864350028800062375892654302841092147761301278784003227570246897031130560835172330045874593936149922292923209832925792267346998903467828376716152663915111635213369501780505209415918895488988828537622171877862910596129659228470348199295152412877119091018922796288895613650114403861980194079281119971379999061662193817166378770633579681287064012801314768592975172495450623852176920310110885246567267099396796494518346090414640643156418797058059866816490326388685326605157680567896261676768036432743290125163336615299344666838069607217411728412146836394166558552525463452072059379393503334841509610471891390162721967845325495684362820025393005589803275424078078397130590740623124489337548123334620285540484958674209213278637603510522141615298998431379513723292569348646895811845875912331173264489374269317350301069427429124821064268847639204862401033268917555306977266027028708201745825301156450085198637819828140645889102925055088522152748809988059232747494080698627544312897063377306853953955644367469836003066901469302188808089004574492204169884111210880475532940984722847135427717333861700344142062067448569822733953887456055911644871156360449432545975525384434920933601545027385745321865506080884616299957368058126546767725244248885953430057473287312666854112048905707343227182709580085055491293563052039597246604048634391497873397835798744429476944240156502182607395861338887455099423990615654922704027075634877408536726767507636382479717544406437226558806486045649487233369756947987802984420360157617455216235826920516899377720404538919690656859350148289461565149216785315083896087908177315406417301124405480030662032407600332604826344065790247456739016551990516317378261372880682764218009348752398155871183661980427445874106620496204431037262291345537243559346035442287162302355008059677731520164434869639494237149070116109377627564591904029587706835809060317005492799193321046448129845978369125997233826000947796741733560685066179138844831416770210866644562284380694953254817071018089886178258360660481507121072435631972153032982836008313749985926958542332370154459295837586619638273781600549629397642931558398721784061171405345963447177123466523591804538999097870735379886432880396478982794828493768236527825955907145557108838307814290524462751398640164389000137297088783790024417937854478664639289169641823711143237720439121859295798139137085873074944643414094259570987594171921573587393835990787253595287223774064987841498965309334837911725770509220502286869034761616980535629628872860200239650940493161003482271791418478844520799087835380075943188176130761066947929059986412795224000130965641347476764298683116232524161688086237942183037299908880572111055702580909078978445006799194671652106482334601463281046304243134762299765587656003257918312595205851418090074664488700879191767636437789883659131440743614756031036867011788809666430908653033117270754251490030697700151462657787110694738400866734498602894911384764977940691631576149105475717075649987637151760649706427726613881350439299314997717179419224657506067401475798481993119041883011522424267559647359660628573004539622668001894414938820557210872867257526595362287575673618549610493783724113184269594843251608392222818021027223385434400510547148099529606660393267265640274418374303995239030404122634265465326845809412198766328052370301909055105854332184541836573911022907078725852797642382679869042597242434579993464165685242538536633269166529773951921035721196677023649897632300214941754370130772491588264150521669693317712509277110256837889758856245269519468547172930844395766440656640240231712109703960485953757056606286215692680441122766441393545984447661160010486884538990154690501410948423133263378478523222033132665675628103703918795512384652829645728317442097814895713877123222209589807881369456393611735524929978884887942705880444840978708167029214205459858115344800445960497943691032671670191344989079854614578064629456081431405972805567314143961739490579569305935417209937260068280928073729589973818908338513628130416962696881987633793101961525059904817130792678054362535992042212025163682670839665247897343106551299136757595693476177660779122656836484167978253149422413716919355381690663012535527119951813427459453113235408530294511859705256906425524616005822428289674477368285285136387231395799774918187069306814570649980347968230872581930478071496257678027429740951069502430270265120268441384458518101979059089190300840428290579885111155540799943273161787640072463024541810007207270947633841734643905620412427967991196620520976653297470767249417823904219050424164482042725448937255687239631886768152923615834199271232863741947566662501232172150207496348475335928030370997668616330543093735296099295557488519963495412703648809066128727350817072213572068137683820373075377394532789927119302955211917240030225791184031493214735678135440074473592051325052525528009609381047034122569058761062126854887282585954242361670548190021413232990106906843181540180397443864952377869541808626172701887130439020975408671534874425026125920523433076568186992639681003163241281196130194522320929742341360484916349366151748432036134916773796399086849688844019124425906746792904477637199737378141607863213381236615531458267271635449476006473301395540191858037315581584914338214847832799936332292377288744989291311471546409871510835065402781965234013301541879008659668062000606138830945874164272069864652609643164437826343411397191194027850924155718705472276509244501217424196452151770283988524524718869593848204654528886029679394359866295920440634885533430172334773271697885105042539289160956446023598197599765906854106815436935929190390594958012898138442960453129146360775503413480419347639158599174787160815557451142067689032508524012368881915055248142372043626625003187357284268017882321509101905969268051258021909808645467830875322376157681207284538544239109510138105791207982988683977945727135688692879196090841978902943051581464367503342073896885240898549642367610402823763239224124192476441140893052176594061891036175507069105766924811838714746838354322657301538063019313145910418891755581595910491547227599835208083352502710089867404651004050982935119254234537166375264331031914182169270853828834107484075923312466566476498127219444852354316275175620714188368885345439798554801052657184992213064064858407417245308043581084553372283495650570284459417342606328031673180646919565317079623304430584791264644567397252967213148552278386215869564836077604925331828522062801129835883957292006146079898491904604112638845514314786035774119469712469706452664488063550901344437253585031606906159862566442660241299785656874314915525593875314679663329795745528114012357112183844530837583598329928185328401892745128676669875825164068387253438494573808315811922667599015551881690981901802147102516415066115279419037436836219443608405446978690473622437422038313026920074944379837983431067228543531142313807940333300839320278362776082693925621930398457683634840954772492388677399870123677316491361822366037193980731598761043126620475614923328357947706720583270547204267703446641133124310051740387852571897531298430162806500335688789437692558176657115773009285409996601355058207080613962736512274185120528522550054003671477129523255486314279166592501327882622030389381438819206751788574786721484695883928750149776699583081245982541170053952428665706595800072829250237649434827903031888397154246016822611136577947133187358816883622517132604815824005704258897324723881319200796793128440359389498558093389247577962037710883472019699340768803531827132347751196682063439418341350511379550207795808538133469768193677345609620801905468281831287586018168199893814670612057840410957511841603433405379479879996011122884082621772121833735826541326667013155467071953128907513891524370386037674317582927877844284089515337374838485636640789873694866310324251907395877641276132703532462453250264320079874357557983444841444134610257539176529838853925540852134062904766008402227978886032735366730454362049019665503108719224312533619136193041318209700067123900339938453436549460016226366291368788155850703922230062021255815395566242024307140945824876155924959353639851488681023999167501723437690154003923408060066023016373655451845361684950808125120545618413263294794174339795516120472955196778303994532703231252072340040488782294055649618556126248943861230857485334514812666829924287095391494416410757055494526260267152942240132293536541580429549254119138540250733164539251523708659829808390129687049733358180716528872380681657750999504131203305790869819097724900853494111599243867024915637589598982205556884992722793032490933665426118658763677877139068147088166821386870109915926711896372803401115802327174554981986269341257815574331747552434456166665071314134810446308558686642187018726010704091785821350901515335073952545000168365285838620903982658909895938812190184198767098594748304242704288068323687876914285427324054114213990650286811148059446306662199657874625675563899800098403471897020972634083161989918954476166851556418903707269714559596570952028418546267985145790924008878194875667122577705426723138790124770066054159317854870264160695185463461648084692686196227283946503461984489919423578591754404143546271084241046227970000278860634735230363786047366030784031090313623818001897634027082265808904101567899949469379723199421405928570644438814908926807516070865759633942563910802250948862971431976371415699740765253684205393097002430703544450041647345208971722418001488720104710178007794093713672396156921383330470822949722861033082334603918087557297447686265016318148110398880320102893696947352679971757068291843482312762581603662621943165397862498345558211078411241797770563602186715694637663012264961386565157452234392238670220624277800662074799903763439673238002834662078029305834051680123888639296681124559481163557493564399862980375363896075169728703466777177052869412178958083663338952878098643408348862430584653706525605720100352811149895004501852258477790014545401885688481756555602188305104645770277341503102892702945655957167222921921931175066789615185710197724314384545372562161702332412325998677862568906536214612512071378444030769317651163241193507185676536901820841168129321840784154345194874985724017027623025815055731935974703868442688267973387993929482928291191191450367916750950687708826507447739299145232258513166977489241688342959006571903780688306440461882724089050966144643164253866299973971171176985511995387079869577370605890997674640891675277958602306364261475010310050440114211230036112938727173766808679183850970756921655680820549295596701504954226166182727331674269140578552202066259607082464305735217845926090216494483682978948448779433342228452783994053742263021816114488590192602167636777795124703747071836607415513369831671118071588250737642521856169823052474001650323348080836324009985820610116206460450214733665189237557897916213535345894691964083081034599820925809453916384189940375323020933476484879191777657163449901327093590005363946458039445866979873459045496138764806832372570701197193496302334666167580169814101583089882015112804084377442841160028370920964289927796366840072258519373628941458427988125705902530972431485221792937243478364776965531757250683464602284963202865750991759124992787369486560802336459900659058959003166645406739741359873475376231731085271627823855712914327961079275937666519034441859476085701584491719744104889529521596063889144997609755622962791197849301059355901459267941607228147930320800306978306621869052357278579661796744559792622497124288866884656470556842367874087674856243069099977955982001913885452782855175235510983935911634432507452044376460036617368291855463764123189463171384703561745378117957844741064889590601663615985712882485432494831188441895463769736177204138977289950751261357922325899636902861032367603557588332847610771928150244838902743758319248774736354692829996747276865768077391526002734821116541944236693318159810208858434720876344814562160736301511538815548990670325255300630582019303805720893959528843121861582534580269650469139344446278562898726778036827008612865811596846237219537763549847349417796116212281161714029129072991297526519887937255215355583249899863961714260130159078743872504872265513785572408534780428230570827481007870501866989519206522082235099032957657998411238686720801690805086038644558654056513561216539224247852056600605470698080512166554006865253182120254781768139869578146140398983618125383421790461264010135746342123838866245941093530005768257075921832972693829006344146627168999956454245994601518714637861992271798214064530217784937418520384722828356294128238295371019425999130390224141313396863180554961019758332891192702605870908782994898543185722817886568118612432863223688660233102430616225207992081957938915700957523891129594456522984850759962764588914442319744676242776882864198278493034435006323437487818327670361327746788265016733587963346560961481512207591924694688446002397325741354866370913640177481919455842323124518152241627544578561336150949061119343205319676938993734113990756791636338994883116562472291897712771479588737733555942032923080202583542349023033978350139735852115393903908421337267409934342956918391921223099132495352599081896699046928836665252479531758516747318286916923276477826271001036227628139143895562462682637591765789918660510382007934768145254889580760476805936188842843036446399166164662413332012520347291532503341584411769168782268324971080019982859729491491661621370268439598074754688281532393992758877735634037863092676468773163705196088518704778974118272053953392701621730672087170105383318103187831814173008722529549957764870049686170862263525826308320539238186900313889391712173166650531417205495994077774112501477462309560578802936178817549118343480177481627307374611213536923671696435410356220759641545864470527434025272942388538233753053412682674588995502545548028166623035230883787386930166664041689409007370513547634021060127879344496117423178048648514423606436135667261252379528309343879044865173103456653329653556525897110402639704800658486046317617294999396811962132635046928015636975154436805613436730036067138723533534296653402148074040871740308790684493168517451368085077291660511988398152212809063532118945733262836847612864170826370465211248346302858629488861051647810204934837155904983904331874107309114553348070129679520695232763139256769643600045045419385012986691537532720310599040777526377397693560117754268240205510699548816863653219550275331720947482281344698904964663969112652321614365503701943247148243050558049934608294919079848165460031779326435854240857407066499191658980151863092071156834090941404879795015074504785521422657866638283626721178272989700690200957678633695321862572247166479927413601644696844847516163027739174835073978205341353965538236554014406422698961569944181092229434273015431783301482070410717261872625316609420514616972425254717482002110415549067527791405145701112886839046462556805115057615338521575921568293141597110347875270475101109158332802605178379402575623686907814812310163616979155313102719953697610933021271178309256053486646404597763034660340004035368573443702844224354233780382896526017086204569905078079911058308461379876335714849119608185891054067727718723355681197260326281316958893745081335404908615966731518146959462953158181720006472836047234071918330190597722536798186376360165526904237468654590393851385095824569267164754972791429575282418909809031723971825783414990794696205270187721796233990917451754563010527885005504109118810315411416660746834703018888583675422423307942589143418224502438502810509897037719100926534449651444364063208162894007390076102675816567667658518138003040771889766922854497197299692582626751413405011874627928091134011295975136674984016796970508162357013583807372417205517980603349180780453980315345778698733986721998108610061793735285663102042911060329260048656683533589953885245522758231987698094858888963248637933254394825670991332964558918022118422094691793721836914138188130517878158710589661705330981873196775143742246586281179880127728007428808327437556306895122768442048603332562743458527023802244831226772796719746276250505238506766485808214020575255801655618606918940042177084376310979722765261563606221401428401049590590136880318561034254436324308167835426034685594323250807462553370043372676099597052147542048875901570024531188409613643079526474347019324053766071825370365145660668006062025481521683848745251104318484668350962999618503908363850441013614645736266247766473234252547078258951410511073914918043411292558276878647233242561403076865923857381408373579096854588938348980681887224559004316057289456348212024705843395714946454997899748784758521056542706689522512343819970709679155793729399128830401427123419233386426231815310901193790032851846724935263786339740298051393068685465748793374228091646357897971788351377175230432240313653309011589501440688416227644799821968680009826589722697805236770710249909081557272348808465514890652862567225421611604806269694926655710440166604972071811896914172870432243504699585804863265164557480851759250389660518557600362884045501919127316583851165558045847874695451576380938183659766063328678596296535857435756395507188728715825617493125417115996255761593481032000511881935322602020394157599518664689705548716958939977310569193127761330481279846396256300200312075456006776069328925117591619995495731225973080125776970798498198077293779157666155346982955747867763269227494858522082691649595761757566658595444379809457874605617996240244071718442590554786215248044574781394765240258182439204398955745377892884886978786975743696985938460805356462400123773239444485946496323493091584412334019216429793769066638397568669793715281701663124231744051245007305425891552566179042190841433038445307937001208995838871305437030951398531138374826678054923618896697168839264384512720699479660925391767077464055835148349370631830921074452875314052296662268229024208299383985689719067928916272125948831067940093547186809806248421585527134826691179884751732502065686900031029031819710989065445761031889998982621139565747219626466839139565806269335960336311169486341522712647309468972212374211309094225766380180256607754658328768300073026350602165927717140450625353464866926251747147903313884863787891546470387271764964207977025463924261948088715645142746911689348651878595241087890220775778478842966203809100912063188056412413475993777381111005730497802420819275438912412796457735667407276847922535991563736257188273228615571677309909182716791950683337104250845746866739748867837700773219223904768232893716862687933251683975003104099650757511737132860529744620630347362390528033516791622766956620058494743431337357709963535362664707501590832400102554795776778711789761566435875572411465159869702810261860187487416968038500549888941396201215405105851779406337761953827843749463579307485478512383098855970373645389883967375153585153992452294741311572887994618774210947659286918528360261964309881280649246972894967961135186509139731949017055736416103410584820160279668929743812153484110801297294720016539730517529647106807674461153964600765237343171165457251558915654046229557472215544448769156898879335366173930775977115157895774806170248737486972143366080987050941971503348483101938021480272837000505358417564028909586323102104907537382283150968972418076666328057457984578818612378866156837851881377498115886500930296876979986385299097408225572638828876828824584923433023588168103697528546110330724957777981465934326448004503231084345327605988273891205344077108889486398279373326373860122216191909085578398030056793286301097075874369843268195456890095057331750162698113291345502826484308392019779223425371238972937057878525247919650468785400655918621345059751850571243781761869446539024449119226805239670369556160461946773108279648024299584356918148072458629555804640026010200301734619510348818174288525602510837047600665317613662614798700179412931309419150424827389643536598509734170666541574793823252231710352654040814607772514266602000424064169260920244399377379595723696523098410142673018669020835223654073695650079643479184337386822880994937186854520637274857798134509023700348348585815420977453729091432235991321370659825593817270638181873474547316563519548087347563783653434326488141959784654862494848509098535730408864438899999086279133998849418652832044466126557166957248929469267310212434532388091173566404803808302266751172702559592798966489201922358714618595062298416313322957769694586426000232788129973122828384768664740965452027981292177666902194967202353102847228935125104007102257778932315151066578194997504738262268789875962951463555795964463413148361296310934053833760147796304021113284791299334656537547742334057919250097152580905294444153957076396181696677663277249426783518460333167495646688247379538419115899602230501425378770969748825251930498537344918571076034858032225861577091308698919554606164828499643089410523196983098903362613488136454606200806139556441561659522803054180045108136573754163947526984237727419897331180501480561832315409586385859421530737700692008109889052662719905287827370716823127436584197661173002521847279504747092953018417645732729351731971242186815740424709990443760830616608162066915081190917018445117160541824364163569818609370532743879815916839537649222575253360853853986579205847654725889156330749657259952739364791087909438300006069752242679438846599965239822829482454967094101118736079524938642807557598893702120592763259852651492662745238764321447000912395099031535259460089342065990639723035743664290476385148166123506976707938315233638746369337402516914690091978605757301431949045656821113261401040887447852493002339397185651416881424144492382952886639271526485530992967479865793566168874615487732013405324760247376423933847303916323122467203921643565218208504741532717502078920296426486782395432759941886392936838344165654281287950470633063018357017644277519496165614849092131580004392523055648902237732432946423430429614152701142158951835597249515506474442570602277652033866941856497005955151060750164261056195611219216279910757976562572292577166135941375400854872972392373758974359741934547905124089621344220614346730106915093767216948005248827739653779843145618226595829497186820351138429798518265467382793043067752509397906600967421318189752839760388544237732226845899603926629551829250905598542771025835667413483548237502554448458267339866206030824754202857294576060347768994825194514302644566312311235518185124137091950114560687990814557333399620581273029136529707159513405696067799407180378600692082381948209532154432121481556092242288694147315316020727398251362534199946471846017161925601477871241468677598105804760823872960501528226590885659698012858108821228958093639967692231591802473249792300000301177171529414230442681875904987445779143137054552833561070844136515089753373678304938961749731742268736110623052596737750064219744446936937246974385193510364582496162068009766471041907010833769546227960574434794069071946391601529674621393347158644211408857505947387090889519329737062092558803737960474714222775221251643747264936341241400249914553037539802667702739110321832677305042739926201226926041043452325667759108058512305126093957051484752323733532591119238134301371414263881874987747518646492621366673135859291166336428883662411231897263966043137180722410851787400113372897502676474199606550082301636585012525521810224173333051220354069723211990281451871127784802229380366646934138732169034720722178389693499294533930071650672296464592579829226972624280989021781489425138581019779366840842689814172128608455119717030265734523272794286811294909953443825440288197106839980763556355452894799001365527358171612507663528271225050647976057938973834327736406265223528783182597441637198861380307680688810279014585403598102496886428089724995105014440352684258179523164048123195683816847503709534827972277318356174332383177160181006342043819112447920064542555734782926218427786702110434205445503720229017340199487156169923313771512898914551379730403927286997943603704510666771018245854602934858236263258777868601671593511414981401427354043032334555736521035670647192832731481097176381252842449139508587567277750093833659411902130013987736889062436171178928325805329109430928310519430788268613711020355448879052371093567566723354914538759794275197888713480998126663778285694759580483086180395140972654678631461987116931235269172889275836613255484266953740454269576127701242458073190248988736555077715159598009214597434034448831772749522440778871573758556488446754088692776582367844233073808198799055859542967310023987896344207071427045922160186431262136918557821461794063165973419959688222804015689596056129805476811323131425098426809345914086496732759439554176343426470271930096335217351775059916676628040714508711831681618553475563343586647152426794647454925721311163393871063629397670879110981758411821497191402491360270311634816312294911463467137495890766575917688833930603457156990912970824695718458073942397833505191767570030550708932217880103528479276882222777538904049699477113010154530612606963837668001596307389104394813903080896874759204744717612927485912329694264963187421959055643178173304394763730744005096626205819254893562112133373862050431713730206590183196828180699854646559812609954348593179185604191156898941362493743885525710346916901718739148591052986942721690687988654328321019356602184328017189661459236940326861988006650750883335418354251146060490859107740552624866260157312368011332528664949048184917136333392455647699604824239638860141536777833855056158489074561998797419477935281632327753950747675129774636897146724916843496428962789814639374369624340415551974401462973540646085635566615711741424010105785316171228421962599148066458859120385982601399453300225378198076882149152397814741782674051073490539951584214818626503224082174066320108553325852468942627318768695706721595276544290470856296532127398923065509694557504268872350168669290870677999980158195333441046534645849688475324351110217090597596806848182844257439395073463243332622204346885733283768238821519464082022071842250747746658792955499836751055793597504431194693165621429586151881709574041741009374063986288767493886773699690571338236305979662103643183741151443794306261179066135126583694742830183497058228532632630306906195337548545877860012524799311539472543622134216805044000934257525082802419505144947096320099526145658657679961942370414200463527975657295580361817053994139249625008325719107243024828490958689453807990125505906539711243066065761826585881609345011015227957790569532438769085954988871311713351263322598772647294320574869515201205593571652468258387812604054025643763165529895626461532368605567786934277701097245606541581984774336278423590694405676749955416726203493420875008615791821964048030051812752812761763783059608668970113039376007548304614901714211285584366160739707051075881840251341198909812553408329377654251307355155149588312137876586583065499298094838077041228577920212812677535392509238052130315990713306014067112356142696939067648311958526801011265336075323002244795289462632820713679522089821088893021916145677711197401114920640354176466316975233047302020975833814009491523792658169715742345951034291865820278463335231393106907585519971580028468090737551379174668855502889701942794800942817674189826112398186872991517869929959002115978021765235129970376741767182481060085700888115476130524742109192049403832967585095670156834062141789463452660213276700196048203495589189869288895943628409939745480954103481276828607100126247450490407190090601937064589399991487336932907329832316496849000900110969354820899778981698476416442950687425714024168623314731572271235288865452804046790154495958308049116043132789803968648381343024293790882943972046497582921579680892029651679392416645039510452108128709209031908683345019085773779821575047428588197209618388453954339539575906368898714545394201106833899819877422126253465492650646824492456524174506733649093588683173596743594755303835184664952247003487144149470098773942380069371761522326480641756100408915557286759303165693498482162873819589891672600137100692710235015803086555300294870282866364031650097886495992698629069032835605531103801000270357429096653210780320646215177485681508799528766683093996786238712757794428468088972098171161188298543389217528943350164898286728905498920507149696805890898626740692491460499949233201709709296482756816778008546492027183089200037180116571067701051886956101262368033065059955274191983281264797976125630415922011556555576540009968592230674521925263100545410626264675755767092757779130368725420875246469925670348433572922416935147299086201526176476408847709624573331466280733581873513814066428963414203838254578738686483839220468788279487591309146942619187071490718313665063579795716957209262248323698926691912941327465152240400060821043734288574468224738157206097321893739052863286586650888868654041999638517326824834566120140969753397307625882317534139391970877373882134254476491303903001645748465237028550696343626146159123051405014243491006262031446943264807195152226991890562550574135126271384773048657972304877880631474538793719773204537722188897698287453588422319100265590637259692259431560170051487393521584314817675239812755697833540626911062107559026216166947961362444073070439765144175444858836862733384900441320950656149121638798999122777935353473777269709233369770594511365805192778980898190799346566559006499500184338842662394791945417303086557700934565241735717467397366656208201803804307230501859517910384551976578856324667868185907945177926250264392954066724647065476176131442919292813586256979977923574433420797393952635948723279194853551977639345273012389680654150738054734708608246965153217786421106004750884202089555964987649236185795905665840305618250624181607193788024632871381435183546098006202511725156828796382548980338632654517612462314482174658678935622003155221585801372680795234036390731106398933207808259481475318451493876327167146898543589652656272827119987827139812836314812655749956108894003382690978511083586616838796441116047098632054916346718455287903242097894532757054089113382051900280419665693629468770134693993851298343097007033591698782426623544988137122798941562315194304138638634614811586843535611536473195626895843524883678498756565765710985636955430022893308265722617341744758271969884784066097706833934637185610006906928183447924922070272362613797875804998910515095100033482877483301667487859485383395103601908860039976096462492469089784795765097383474680467123020211389692591912268986836853078979724595916949818703351674453455226222203314330626594821085368550214559444151254151136495739176029292998827201299430640418706813799520723851956119718876589543997491109929900788940392516951925221655597102835013333560087572627422834406872459640490586777880909821608516023236108441032789433335630989332638906957615744725664145156344632117236824229217455323962590938965501061971635685139737563570213016338303590124465676204072963932761824349862045501155837232683102529162059738561308526995076497620158973416647052113391917742418787276635118629990618818570113525274068292842657598937058536120223014619670859713456665628752448098976589331710105269954837153148573501567783874317588305499367410918581953501414420062582441257984693430316739988465034064894639580954370328170977601928029395338235320228709721814234919113734585625295003714561826807665191699757704868663954738484857510919202137968878217449365500549855801001188132879743152792963385233182915514722884223033564964694497438595106918267564583466307484652840165696119114748206257459791761316818074927110339036105040065729713658911704929382358736360551899539281727469032234020041999925733978462344431617689314561780575344361633389358011090399287335776514752790969673399632166283455969676064884642742387044338394244371856791829790080644154488761523889218320345024878163645657111456443506709214576282513192020865470443417007138712811685753241168624812531072415569847053903693780268208826785932166372800351125293295908075948198129683010663882070504913931029269582564281383924772728605326821080773006590034674888011685080243118282205479484634909197977681345551694137074907950593516692873074541656592927656036172789022393715678964537425040178515186348243772470766730596927987747839613547889916391602881494898107424121890366500614555551874406091106369536102088516374620424824568863398777120917628724134743131827646596937508458496075621727404736874073559332598882484109423305771132534024731665311405942028776772113574785152464032493361418691786844088931205446525504133628248422440686176573004737411225569577217386075694139817406156134540468845694838037463684280103987780557912108250883101703156277856540965986547134049374602323317520123034384050035201862943141852378476731178692519891698212432638194127861983690157431680958186065262585289924212019072815585534523036787609075078491764947944956471557297564582442552421441987793145634985932248705937240850149048408273550574548094400358330731564815345637087546066443847583659461716079069087772539043362636303553182270370956051101367754019539410702079221681991976196434998577202542047320582326992075056317156934405117292251135966853202913153423619606756663237254938658907689317464986162403583832886355002322771892930345606150824119795439598821330978653691298531209734253395699918063094709224066811275944171729220028025890762509916954584900105247491361543244569151951383928713659670923989020912186042020073163363698576780104633828624496292098393836502052121477478444261018155998901785740255763902902351251651244997693675712605612804993721747018072676928994603177947196005858496028822175504930330315090488341760713988077974722370620708666526244463714172635903556386035459534228594166854173420704701705238719905323651689300573962802020399475852294509200202707681133089622685302281804052939989539488131814813084527569035158557560286870893062994759341415539914164691212383276934486831882315448462451625848090008300510334065086990740036379712396513545533859277691291200154795738662070627865304674229864000576365593496056958794796467394786557692293110690419833326055199309994591987532740422275071545610840585210122999550402322872602210516373432279524642029382840384572601099116872017461148585408666180612600235457974997761799677727000643376264309887714369617916073483713437254353533526277058859536094406642735772621451244044014538979300633218064834041008478094728341301382842947537016775170625112869536999989329538810975802621306621655345796100508741027833607584832344799050673994260999362426306337581588546324533078510936899629131094517561566636029589150339854786203342517005708797831854023467531232554129590738818461365724807703233223690919161230216666975227529224860510496465178732772756715264195559940426481879273824482386001208481386292368235105090564462033665932350398423268167233717542439940957614703847137609065212970111360663331152548642763188041274827412804241368444671733329018648753594414645256605414960841604122001699367669259504085260839131535390236031218427433985471605825974587126975591031800903408276065437150930489297791631021875166172328868723056837000740160064776810006297967232226751439107602435737815967351362171273952087200781011763198937562919189739330414576913090288234162625089814658748923367229724802850195376322138417886561127826442987585267449324622189130610011376152021548313568919625007916200377803223254260309114954347991432545719559110355914209424525669704050530033319942470138356487613858404523079231312845672353591802660526300301288345393071406751187905404093304634378006136296206699224165171878957511807891443993846219260279077734121394827397763820457976235319052690232587775475657424962160983943043224770519413960506946279327527835240591817385364970595827262091151574939686812375104012949637529405579809101276212630733937907877129661273971709232026711113450500539657835380301025841001865734165253010176399503503741817996226490015785415728054202174130371548828083895616457476667741319005036186622932545286603754214424087348302308065823274231104891733508376876853095296697108087159075297305818026350403754486974286137352387979179017688705631869994639015717833949265676145934831089675482908636414522981351969914390531252195228844438845472286178079216797142858533086416644758851880276513082005555049433695646466036659837207970406618253577317620604709730453753543915660076415081911150957850391421331884163593977137081613014529799155203359541162931093955201062004099484522049862266445649950059530824694869991362903719139204736227100485590197127777637760542186444286515767839354537367267186848403429331374729280217566861381745693673044548203040819928185913217002019048327238679645646421758283861906914621243816823722155851692057080311285252856281734635678575671928628545309292085747625438978454952565637531181849048347730656315663241922772484171746742744803091610048285381419015818631459518617198679777182084910653359303117515013353437515250184182860684768493718732520209500090406049624395000466505103913538223271969606473926438927766728900595650519166374088016983166350013469139332794124975119457576567690646028749058345445331309687631575756653566912691254785124675463184098757567844409113292571801003992473545312260989623518091726553016221573788849260308311966960407683270286253787240743228357017081611597269714861927213641644260773727699732027052648609920406958527175400761625731076250099810503953753939441731669488234864020773547648018960008410099894389422414195411619747140488933356161853500434009925694494907305405891710753808792703029005367987849182920212986213071960133634612599610326650269555432507411779823370825594260299434981241679958004710138689621444723819874643791348603038284472144658004964225087624964723256217515612009882213327203364511333340758716925746941045426329269137619815562666096438357554023186529880924530016504575595222192225801867988209322225978010869756995150037558649920353225397983591142379435352239895594349341753689672557832734281361845991488147996955939983381700870978795625455978849711445705206385668897442181530057537229300204472951163207523776820601053198231314475880769674757659380860709468075903904180266717896898709718951845713655984755501768248671323995122316124741646270304662348626877351240192531849495170918771652473754482739262698715055012006624728270678654396926995168517922791362131265508034424333803627576199603515324032643157903080576296345618856741322946104068127080904167108547020171421035514244465352778937051406381471077741981548840811997506987454445220815245122353008408703356981213521217490243310426415608087993342135647402479362385078342901819802513008596265581535244593499236213267264929427174683018896800004233139376400353774472151397446589626104744816021953991745414781995533985072299414793574195603435149873504877931850033294672840184720576020910621961350600075653908608894436297441779572047062767559080600065178425138405919218926737508387033407635680461239784003094208318172017540793149432629716608737955919620440802115516605522732963557557467350556678945929859954696325316564372568866488764109156845435560818891938663317778136432548658541701349383469874253770596690907173650109450668407871265909273057554571407941351849699731945774334958553187028505388406135346355465802824332734314026389952985181767728262596333113992753730188834639590391453387626208581243152845037085591345863702579270819572597972281785106207365305860904268426601018572503687316101342764768771022676774878985581788712294422200021442174645468042006829837146981207089429606024917628760833693063762570669616695772268928114752265089174340489677955758652024784423336289362083166390617087630477511521465394811340034987006521950376770634563515938852607938462896473390884089647427209396909971729857019856717700114611257977323308021313055545892272295853109478178752747077861887346424728695089828406472721781229613787936735517033886126565000740085902445387984773955177702793285597656686269932677551408089432499705533872320910647201562481969833196713743100738956949401466156871293992843676901467565049140394342574723760011368392509168421928098520597626568958072957322978594800033546201725904013667472956771546398608874395615193251338614848794178059194621365317486755139077879448851383197472543541462789415063089775449811635068532179609661274040816989162124649230927159962166935646402245393765747482223853689956836455007941704474157840340296730316108701673432059910561471740291434140174893058176610490671335126418032255914456523667925177297839313952410274311632745949820910523998168274839036336348847938154164102644679510546091853825156573300964597577649324428537385409206034221412462592735277280969327972421904306595430547554952993920620069962105633417252320683498536851690191154078476043946611097082506401555256896065407854152527868780360831724177510700893970334492400153252285912814585640351234802329969214218053745860409510406828058477151300137257451301535284841317274063320227617408660455691079936427007612910083823628025512535108698851789593090103494739410198079850075550591635899984555247396981056721038300560767577846050806966503564789993478919682297133369098037815328118779315872258576095391987495776829019946115502079689079851208948627218277093771257906987403471286553568119644778216464806087862430709591308144508237329878149943868740808245231202284600781162395237619156130828463620389847421659068242054990883276211849038282212153957245857781476923492783532357416091202138953530056837685348190474070812510726840118479764396829532394544225853283916320559985734622344970082704725595890622600536370948749248661087632798546362397531453583177106722051080778222444597476085602926140630813875429171359520895533940948536692350226668150265825415938423477637514715023442448077186483783732751623255278213296135518623429912773192595963787311590419856258368190634203484721332066478022064256184808600002547446175468755412138757363617632960202481087131989218835917977244228499811748571793944642566500454754968355260321492429851987607226631005477738426796810447230643957993903821946652477190982068646969086405829523350585652435099101298638113760132274629203096065225398450328452308546195036786403043284908841295516774060075283122151870750222780626652885064102390312121769357725008399741309433054519886807497238085627325333316990433397823459942006684956085201315041699944374919804734379262128038433490748404741703332089872509942741823858730739371086299634978280261936529076831073858995221022470665609567089138478847625451949946216277630904266054199398010264295006542425108381193265822324848845462690149990553402541465698267441400680426691041363260207701969457226152942020083051334228128892052039657782433517085723364338194102293226839482949935142005335073148773134223534326947262007355532094183612995564704350796717442008224076963170814550053397687929411574709080999981059068942823963704303817423709585340151811672582398094142482888789002326321590369156907644138093252147723477788951338230234314562701235496565977826946322076509942145428277560294200205943999085471952488899472579950185868702570850692072819407508731636466388108900035840004674457535309573045410043781484975589862969327625565193728136098231788887892062344493856324735317652002070430802395374985373074165544043336022794381360408465037736367867261190636821685510796505645184088538662222220472219710357474398451361025793185800770340918002775124137848109879796606963306641873658242307477998507647239148980745040720092570621308385517952754284078537709087475276927413765280096361826310556918245065675990802475483278019298943099288594528433020133415056443675973804389083038265812190321806891010191158459767192679444260540948482961152802306873804559626864869644907364093684365966735515575948931441266094057071662036662142345847273565419051516210666922257315756942929321599111453746105553037736164771536214752630271055460292651603606407865194401561801130591548576966553537248516754064862783939344529930212196093621016666501149258423465078991571204530846896017769287342618109792584687098130861884415390881984251398058824137436789303757753528718183619343717566226118421795893555122269580540522107928908118947743741203924401180350731811088279528598193795355916207345468777123448024004240793991853631780955573791748889744732771832948566742397040515348504074815165011315060894131032378795935464509523433957142825587875194080826963639050431171114638031818042155309523602715961272102762011441044978479318156300491606521830661190159581779265479294211100648981298804248629459597846996151998728793349061533055159406149402465159493752090889584115392974611796247895374778565537995777213008095346423129632679871934720129669233942266851344138591752322996597036446838978302526309382676463361826581535128336891445369186129446476469888138331876092923335218655028404985227607552417794118051524123361563456153929015213302334723389901927481240456030229906890847261387788671870568454004956098751857649010735217550034505532972387757731396674487519553029908360105907028659213438756416093040856331501996584224709312833371187667451852154246523938820521220209745749680309447828646284068997650579623129050670765071590004320458806314533992787448683880799792306550778750231594298416675930619241528694856811912715493172162555300246882336347986099150603221657512131591958387400263723701022026623957846646894332084355381498561062315862113195652757995315562115484052448308352220261919406679694974024692791200033995376851611521226428908710241718356634553710350506690741565050492526911980913244751914561628269670196512268191143180157038192687590558415134239474856642317976005776346203595366375448719336107996163882979099311740605556725778428572705148018603521479885278646240743345581863476027430792258689902873045369020740000598723835758435529807796801049139381010354358157256307145525516907125466875916456334701984215821129514106380204286359196669306999507251053361271632254537651474632982427441965135539668957618239401821321682418038204493932974741317107982793202730868900682925482978553009925071031594688885163497747150295424325982115441539755326701193408670076294762852040818551947412487303904701024989211313366890690606858479553333826301495427202750498010438097716346906144446327097074515656100088257499293751776666806826579382004516210858889447736953899427493984755306760946633850645990703919541582527414201745343010325699596154413551366662118004973969115452606521427043173398622651028404776026075574567245326198202059517166981221913048229677903992399298694002414936556271407905052486621441870706483026510893412821887217013649293456322314789528554622077149874694542763053808852090589578588497611724270543292802116674141073281748721254846015890592318969958678680794664902786580450537480050665314617315400279316384376617415239770655125998916751137542738784657153620219355576148193513635295782980860727200077759390525211282196475409224143698685920627032061635993654578125947544763898796224685284313946157577352444007996410937134563634628101682333106194372019484045706331962400575699319026710242092907307183780844478141236197260728864590068434712985533724101387601783066676810667847300661568608348638069879494907532778787972734455459462385667561116400010407451034335248744677928687854229198074710001321261811242510717977260605700899985803950788620361932135303831733214340916261443047665630528206633247063569389762107714688900750419081657264405796077457371771137712895135504462764514628797155396757519709615596663494895089174173475032429088941456025959473341927291931582411182237062755814214543651004926120362447453558319039710738865501249575138968206749408487573624300579770693500390336512737708318101384117390088332654633535912549594142194089208229735499604280880878297975900248011514348250163421526715143917841045304186272253508537053357935330592309495053222198998419206686453186181597443635142874953428168476353133687981915094587642003378894088206774809518862309275022572768053090261983055184620493685057231316589839673665549040124559180263873343187391737651403310988625313148367427374616123241412714361322475981144733439382774958482006206402272775400595440532261296413979005271886167545115009585190803660954242028350972921907023011933107536821786116240743363294869569150863935575265071451837325702845981081417886296019525371309401511494973940019806118054688130356493668990943060930125482077022845247821986700806591677368916945773300452660203393459200944518904974999022699744231734602651605274515370064419451713230796026937550967969226559954313662439901974670413191498041022702023895972394384548479955976645161903845205117099433809919421765562372246814125578248173570459463548970069914563626090720859393316086987221045884762406418903614116752390845015940943583700422006377749034768921572130891371443636345628615806113131784079264804777791600649017166797837106063413853764135559368299669905349128669322000160612141121698061208822034249196249901977882045576989418042568849762052024968816564063978817129116620051516103791892615574387464387230267206786605087789182083532596586065051677911033585532196701457255456263159216480986850675562893161834519659910430240088435857047840808393323011339063028487994715929693656472488770976425234617586453629711296404909979775444325602938986001456770056205385980575523626764222964495312317432650296556584891139989219914918985616692415847086650407164242073331246763920504121623180496466608879475786085262710055417919082229294018627080103751362528721103881481585818483101092521038909649731989406700521140940530153974247448963811710434811202948930887993972348647493982168566387989964840837386194697855256716564824451997736524846996345340255926579350046413212778891862991857068597380484969771696266042581664273620978137471330840146568650551315674835466708283299405517368423150835855712753372374065807255012759032141295166352135106661002511196850449482324560881145507987437652523421303685740778287129294817904996369810499586625418151361510907835307877954077575300785326586379622719999044819011633952672668068589710522316234652630940921604887930428173689208522213328209244901241066346398814028112787304622297889265662578032535614158038625082275054801341913345897498244030567632498421525912892232857728602122407526756356036507941729173280037814154030069393377702288950224696935008286293502469106190148601304347183480402322577197312139323602129720606822780378893294737261213550894033373837303977875707604610561004996980997519065729378406080254015696541039135918090813623357279902234736902111960677712513588461242282539837562095489686647335270106010356777371184583406523007167947163850695958262993716083572485531270987249465560404158927413088335735746660274078169952657200811524835922998185074905270712872485674243531423314882155041447545928120310886497828680929024186119061284726488617041595005243260932085457520923598878772814905523785626561851985310771651327899456855763331288876219150310985851679350841198788545503717827371865568829069412085790672308222629563345446359973091546527858067505594856161134520519297173977025081690120991270313847552391503835437478333943143787486956041246006396700404392714183905026829876550045907560464187712707435163000133955627357938117454473751925624710924082349337112785411126985890697116909711353861820168348680139081753265335448351142388713496067926502827564006161935865344132202354511588422811926861360445048268972921938866966464732801753045044711042674647899822417105440187869700628595576743303224003449076610187785829513454180041862988170640142612272984935130417897503414785088490426143651945630217061489730410590039313317637763658655925448383017458016751189016608973810878458221575736991497679615139712880762517400612988812598567216923151899563664570752655545739944638688559641577225617616848678470141347719148463468803428616785683865573790179831076115574570292313183815762602135328022785287193088086318456340485620060494150350758276465712027242457498215244078129023983887808165321979449696382580977354662326437520061401276790652838842487805991019620312084160287457055220398703878773559965972425298878586993268454514586148974261005270745655480739066408266717867721727151502445528260565778881070952196352121977841359193171707646965407909746206556908169776482411417177515962006075026534604003220301499246856936803976107575943615571334855611263595294671791074230863513894209030963788240845946226632979547834486651475883027450977701149331061334499972025670343847064111665938231966537580680275277272033979819968955805401411994699902649470198079574890295599545256107192615715350715124329594663213995193208463789232135293394800048274461121072023303809671591125842554109647663638335906863725572080179319898072823593926008842294745817071291073011036134632339248659026986538586634266815702890022470341913192852598554151286917433757322402025373186735271972070897454499087529888893423778722096641085120052256144174021280075084265414728839499909220072049622053185633619190088333532847187924212008082655890125175259059444124935469487577987583436049997446799848418891478385632112763171113375175553935357474010053979787740180271540451892803548741411075425224391334622102987343872539691241808025499247611919131623849043579781984065736681586924805271062841885921301844169584362473551646874704881244317288229954237001397483224372162828282849333573304654925866809535547512395209389890087583529057396068657381481601319863986214608940710779549734599791035184288588474084225868317668716140878651970992258628442832043168135508340081812112019746766074603253749636526771780083402764873084362316118657031789838258403004758392484256149947984318577593153255357193946572311658005425634184344990483234721157159619631407453159832994693804744548774958906845908627522303262028184399994246672344663971611907376974303913419665409600229345520864166682354143761676158620193955350397187977002755532817394033586346149031838940938174973981515527558953114527282694911086128985740286672846445011027236556874536635043385896975231419935553436386697602081264269714855470565666876247985046240264068798501962072428844483859517051584660434239306787693689523013097428231425605374947119914212311604579497083303962511050131194235720237876640524900341301654206184454429997650857643447043854454935173344409674757997655385466523641701513936987820673543658110148941569278254743707584638193158483654484536266892653100026908161792365334074805326370627274636485820437236305092670730187296988660178496108201276163645361622879518031424607038790509354284625897372682897063473428467177832344376024236468909035696931832140009859008641574811505324717257389248101508759751355479234572928533297552793778806207627731324770511446450827793603384704641246483805907843496740337216409591687792548201689465971794908638219463870727936299727787368107234784265012627852368151260291745262288406559365221666417627269912632178080596753337707353571697322992632518521662522555426139520743203540988948542633656760186635889077597094766497891021113761065970907000414480119080503933785802979656055786056077736242044773882823566761492639152825115324867041065245051746077548548060948334382417054823262691982144484856232314994188696338349547925692521556920526679934208481382229558946636576776610282794631885917407061947180189832656085629529548113745790143831630464122846318431780192225653679927265857321896136059872658073351453202722881481941930359516766190501036471610006712761693607191011173782080081277314292530471505971220084143438838019200786732151192741809338302590715093480288058017639126419648758015309799752221367648221191519933111628655342416741721221224816119199963412557054566843241697585476099699778039653039381184928531615214643877367405427736321315035063177909858607936947233644110824025876549181479522738856736659526555148063139757147804362430321017470648769968414575407908975562437968540565262263427806152282892115452754034987066525895190355635278947761859937175908599757181032462640563648922548948190188994014454376469663640164647349699938161785050846602943989333960841453861638910517313208870328652707844353267151407928697010387889090016612742423651257368846738620987581546733344346293847729087057420375056845630210103582283611117140658052197282357269574710303371748620686234259756273780589276631695502673006949265692037099799507511625860885163725379700500821541150032914066258845376264948396579779210394532559921599778370421131679980898465903876132359315789167953222459797178019797369328948141498080169928933273694273862438125032161803656852202286938415668490822003139800807614130201469701921717839309869847517812833924051916254401794146716429461815866280531325052925922732990365596702950861026121693035743755681853878126586159151693557625822816043116457675058728193593391036357834263205186073020498829548496338027135756580147596109264275054660444554479373702598417548845896052861928927492091977788072715509601023718248947569630554396990291795636414165774769556280950002049725037693640025044158896582557212888273304921480100564782787544694831794211504950236016920582183810893665470691860510979551518262180645515149078194714715204034762839248427516491307780335832045185576233520145850546411384201822286456114107319035687312719660543338940539388603379494788224414256096968149489868150780571279991178166578474594602291283841969602767151064372466339230674574950855922203403656217015499411781467493500556462826764164754674270167655806038325435552375531846548067853105440327772241437617100181911276900442129639997865267086117943739941812528054764442933413184072907479762057801413500125016693088570744276905402464537579877958059712992282326627088754465723463813710180811186099987636831640612965890556329135828278007211411805281873808501312803819361505802849889439500746645795445151093068372014460206861207485032759088640407037313599478149245227699057678612595857753109330342993844332820814655233409057788326433691194586279515743651849512409936276001574254946378630263073809622896817239698200793085720502914572041132526493148440110879708858599121840466648784592461705266059942323532808669173913399565379442153337211551319964481759959572422449247301738241686307735173095687408850794184056871464421077564743951691411303275123892094738977312784421522588297946438119033502216474529625748628050482480247925557607015683936306906065763688923055071037369478338019588616131749355165219843854990537257779861299984649417596064415252742858496497506552854964576962811636075363864414857817272430716184760504855244732840032621755921352265366025576537434896329137493472045476691755696835875394279345141379829560981535512233546008757106698614557349129609392286178432684579649785371596087666750199052747675571705643195968669196286226014183293481128592328535151704949689697566287315013090549862013060351905850018445433995593713447589070777641113485484882232801494690225682964022849695011784827947919024473307152824644043804110529852496448457267295719890140460601858397564984032680657736887000762398341088045458689244661294652846444099126615623885932930502368239786183208590729194160458458872294416640254621974558937592910733651135306720209350917352206515981501661788241770348942408372261238514224328731105216415270230124095587685482989367238214474645370155422805958456370548430150991303523449960993507611881253332416493295034182179699182375535408134151640431275070018387786339362657042616117390249440942589921841010033543663181132491244207483878256363626177451200054445691351214624240542990794270703248368014650947568284293350223707496719107915489408094949282660054423117584342468113375730017979484286404116499490167228796339426930177422227421354063394254059334487219383974971765260927373939317518743573771570743387916014359157835394259793253527317048085780990899469977630013021639041197692847360768728628689772347868915557229774611727385881369931146409289461420153147096152479761017225503299305410450624697733790427869681164759191199314610274816298546759991577751854136074179251649687662259923882541489454433865384225284942368782912715835979543700808507668173837149654683511051709078823296863310741452985146575727311357196519170688835745841627421015076691157514296658907007622774567016947961146725165730040122340710721875748006672863444682356962603009789140799917713433821347804590462933792511484447960470720473012736948001616156136538121772827673924212474855528950057831360505270110591914184143318324811239463641216881098224864593567969712518895273400683446157311834130593140247296024882169863390630134273703973918700673868559783213343703343602343719673183511913597804894815210962167748763569842506959939933021222793387365154934479731551352000407698000963162725912346132416862961423161918371575820397699140167322902077648232279600726174631929660250422711699607333909797905676834907058993023095915277891431804616893481503765580450010681462215785313520871398921672417191870614109020560012133173510080812564735887886344974016614379051270289113592160676371705677018683939584591723484071921261437539204522052807213995269284785397988996074482241143007479126928359535276128427401527950661037660178921951574978432131667539618399295857811652313231232917219167263725750961732273146586153230031560509782380937978405190925590708158510489840930364808000701501374310723380553649267467671629072465611977240592559272737776592170055702144778399669820240059969522718471419277180577370283276595083185063644922495309321801471138386053828232029685077609885442426414001939523566280346356925992406262352095411959021863731210741579032248770835033096453890949438341695419522211161400484328083375054397800019762541354175876696916444344842901110274231817073270238010486432660656286157889649456122142790618822942667945032805555371312086804983280349738751416961474059820256590387991670561835519469977394305803672358049433794531208662723671813826992553683993121252325364425242526245964780460955088455239729170359910011076592151441495226815015089168969430834674498674959242210786590149783221737537912227217850952008087617738117307787427156999076796025921896138116519565864316375187984575198165454044275289654409125609872350524532088475806617315479734252420387592020301150780044280804724605410892195514320318849333268154545897587593740640735497074421233420310743292223324177548776328235958214717729604691201842619998110572643120031916703755959015738692421433677166435080337873267529562769049109605728073403861778005521534170654472535920914785261031755961123831030938947730281847201830948636206776504925726704067578696853424247210137673009714351603743378061368910206640244378932644991468660559901535787956860294168349555811516878758618532995181035354981466627265206179996490817855868710524455351785044673042379265547736306796693448397646715836588451960560879623646541267973876975766089374545588148305661450211632293286183607105132909478123930528134663766773519757517134044462792782579736010823606647290824079454027485091853733889870784778120123732933122951449666177825064355848591017899224881825469330712410737374160435698000359401560871457148440094953259862415195626597896877632773660675614757741489864315740642490626112661425951721944013702884160793638496886167254728290569300136036515765188945417951814772729370379647384695953538109083513863311364808176941985229002464096978296044626698554974277918657924193751520571346825011962080533172247206638995964537811740986734315232334011469539116582430105458705596304699998269580364316136621167014550763324757886810085712884599248739151259644498989522862771720314057404328647478408708414332370482087287101930431280896650956125746243174032129865103235360088068628459756844117227761160617077295657250955228503918608537695276453529714753269744073278367130167369267640043441229418546732188103279989069793661229367360523394311129297824264096933899514527258277318602253482478662869955040892025807307282465333068884111577288751718251158541522205790762878170270013031054299713886242842556508931765653360331135818888204259504829519537571536374977570256116170537976008403844708155377609154061874081442969984577040818067206049742971462429529829464727753550638895036182467292615739025953987566340698699570177588738523738184390256157151273788229223401732663097276276992297006526845136888543652371995907461829485981796543645788775568194807836871202203833862902590610612551805667019860880434692414459200110176320636894453709668529220516480503320489578115981423422664924785670444833257723642765093210307472487950701003747184574309612333186589795333572772957548669182907953770177280924372193384602981518697982695746658699033690326131420267302904306930274235378806402423668777719502341900910413617977607055802621511649875225655837250965593248891637777185151187642979368696943462932851357632556596859455645326887915387877873791892823312635358643902265763286599810376075869452338234817148294919087386539573902813562272194032871764143259625155763856476401659963827769884192450210770493260689069476754510098992386588962462926596203017439918773460411776154883776901541156013696899230323752193248912809723633375058253089515770600537317719006653533704396941482857486883076989693447371904984528584509857632328080627089323524265517836945019136617356009648422007453062271732137288983957707836542356459703125029402298633744304450531415393503090720356808504070690098436924287199538888083017208299171514833148302307069367811976663641310538304884058282897740860210574481922229309956911107729622540243973823860442938082926349328509866995069019245187718815058930118178002598965579924524339440709119925863953317131162527882345009607408333728088293194410214579791839251891362067597025992527376997889126352990723776836159127224322247465481971271775504071922513835286598583555845560045522633173130025473905795422498057688017843931311330723221781656419720236202169094279743086325350298814040330703557293274071866693363629362036230295454372069727759573351521252350821365911257120984811044093357740232058520982452887960960561363996107037069834143173144287065110142294576688464230164265485915693523812413304406581871771552588183519050750122702968554399273853947048824716380081419620595517661900886516524342105447390532703653094115044571243321825071713806733215140165690500550422213598240331698903081205986424010030245568713684499627248536793557238381167978021231136404300884292809689991034506538915793568791335823105498969250250555973698881593416889862606759700813262571388654389860238009858908554349270311789923685902689092246537772176782950468575878235650144354710489409251919228241679593687921571001195516965532044053640176370090444873055440251825210674962503039962853075159587979999791998172887096379645018293397960603286440606117009936631452390182244988842132492432949186345378210887113508756589022112056019983434644782817471231970836178042915321211133764395620762066468346109519683359804345709660649933576598104372870414656216716119401749074046852141312022583728214193404634457619967920775800406773868632793692702820279050191116243546549407946126085325152428922958024766335717829929091802950239526216238658635205510091843306927206756116316794164863878313394252515975415522743525558345672696882277983392241907111749350197359734727716347183235196112111538281980471131068193415811908256458270585220767938700488729095141065227992287334041379079448982401274189883719728825389510872101870731099018211685136675008372527611373963032203680522197634807196639688060437195568643796041941778494489616553286174499128444535388820960078622407259054857063039200801657653482053580732634886736362274648488730376359998154176538318002529893661324582661620768642245516480981210496555131212223306461114865928903384962177102072474254315775080701858852213093923401948840383554073137778430079576573384129467968021192981936605727134396332829818702857538392837115675166683169895696664235631842366019501639432465911505444328805126152937914618814836497265786933833617126160114523054528030747935335999814218187054800028539588871709190366304808080886899819593180756107040798564229994682335400176675608702947258086743234113053110652770911091958461161198509003023171138631216725435415430853022068202267433642813856224938611911326745808755733663643525075843330302854134480170270163594067295057027833017834965831208092869950472896112147162202042125783620068932047809057597506895265838839214056507329848699188758159131582117625387344493112469524040230186911851200882915276725927956276952903350305115965574121808141605102536456875828556076390121613951088464405087284146463121050800331131872291135045526307276656568287862021463061605396648646887840823337057742622567594151706688498247849265851828200345758259050784942913114729806338891630056528323286790003374014333052772680382298752012105422017274854076743587842308619972425265039585649749861135645102752282045318928087387937822175279067758231086472745058495195650538502805214981801570775682784215783499334459709156413384278231632821410043538265523934446312342658706774645861792376777707701157746051921782458988013555769449320472820787496135406399536613243942802609612409879891348057822390985794806103404999823482069877249359071373505284620606524715543872713832782910494804199049767914656634624311586151818847847994529173072254230629210256918886350940111847868061596816167468656739947959706396095501212734166507745008474591584728430091880852788544100958742433727658599240767319480768929115060687168484404951445106728473920654343852712759097205418456619191327033702516546953776496456183949370921821887644220015806011457790736810094593948199430302048102025434660407521309407366023129406904196393584797098909307918739265541006947498498285688246482664026991985603967705977209759753702841506818855656281752588846805817467366255313708382719191959708371776839747778774095789137720927494951808778274316509110305958366290596651351491537026697957458347814096503702111180516763580634297201307669053786049509525747632631071565935335116707060341652006980554981703363625009829456113848930704275379776556559248778936286071784445747615335625465380644648665345383182410597853777957245568508326477125747211473222082108378912544617048600796527686524056203335503572636500216849092242238019567363811478693170432526567130208628012979158015823466431467541807835627332346997404162762597236444099311731677102364575033891253907929217065161207798935762673936382330198792701290492416303196620113977321329893113849589387250535242661633687288611817335975033051841234096830509958805050611818385378029944976878655114268901251099821587290380529655091119976596665107560025918208947166591190699172714513804852827060635474979422850605495174354779811800546159906184751250672271704904610898471541286952027318397209722990902268884670015483062033941578813490004410308919678002959047337124852288961298188412627792834430398397262181655690833140896514762111161007416843971967057150694565556965208700964204079587395283297515724113736622043090595994983764771953898581290564504579776694766818963966728756028116123671844765376282476207269259789346342199344893465978631891935347139259076950240468754168206040349597544851459875045722644343310892443608576674166477030446032628313469626071901988197436655758208497405999546497049945879612717178321988757840583677886014171385100658747187329196112270624086528739894224716032272018324000514208991027074242228202351628915216816119942070011776403315931712012932509167470174790782194081638478613495245418642322316675770954350615790043148085122146620447343686787665451872677942930911553135947743074674801831677368025590765087321963815010858971165257890729959286033058792679923379768323273740896644701242194093905580728743828102298658594742475659055621644712069589874235693246238295261918032921326579713008349470892718587826410062711906216410184540980031251689513400444514803781668922471021941614572428226337357508898935907689781295758921553860689988153805925382085829002832921771682981952631758963086231484220977751920617260597364383202750159985051951870035020924597949313789368308727182954118068224556599996028979600908992644328448788944579018242948295012528315935857600928073156411236958794784655064330705984089936246701531582583148288444656710748122898286712760852332838476488384036288789355491615423589514757416045150771840840279046301314238232548021305161340772524248064176587653022500425892448853475538166189242919272037676014355579467440668779089911647433864162301930234103380198964608331453321709209585066020567440897307649073750175542522455674318050786934069032949167953197179778991526878125155829213165373236775799792290387038506055291095248868857261390806361704201937005082884505325926889828864779575432842470950781257984531650561370568104842133008374915851483483868307050399195081595503586329425959045851137211599563939519294579467101432669859960377795570935488329171939507187643967613105146344346897549678202792655610475412501140534867872332464770863130501073246162401436327435633517311965839535440525673704231268893048794715499303303005458773730726860251551749912568214686409993245456376290764601405619647810328865354298787986735092192825840123766947929900354400136955995600064720978326149695791310218120805918605866510478816704327142598819010243137869565859005601672089445081679436080841855975272968884261812523258504293503098124692281989876087124654164448054469208219260640621639553778083247146072196310629714390814131932458973866593323398634421118399998471750177689510376958437470063788539872526393877997119263505907565378407870688465581910095934062114170120057940273422266585324772237682997766244650289163616928890987675646309448137303554437236578154599508918706659139672773786660291253319834933920290064274550888618650701575441918967660020327985061882380238042439149166621299373683447957551331225437994179734541445072125525841495214180817410061839587114171536641904151671234012830823663922799650337271025747062544497616953522981465111124363422375488085542798931421617482319641342114467742458802750200820537799342384488847318845625552605398515727003208216415395557134926630486081744154120290922905361065510763853827429641746688486589589736630163154661388111631930084238271873491607406215087533105425542529118879394221790932588117731961424923128381626994178583014937148507398307155413715421600234157266813623419309640391416734808125431566813853989784436459050618157120680134293828692525058527912367845261744641543578610070993795409150649533568255538545277017254800756835963484331056724598747282895982109835054050046895667302171213206296464483084297720443000483378992960150477688011474962342791973399050821881238157283788488652316639648036994561856773115968864365041597134080631084678137955912321665320738317769090054257551906251455849861316267935521737657243857527550042330820264135552797950435993822454084432713211749690572604236881963198822940247402444672201626844759073181558317463982684603423660975986993586837724850279058487336714481166326768792468364551660964595053441018814014782490280332498262460814943749606556743486432114920593572269443151274618831926350261227124468477884621147899655618489366093566015989178864784105124467254455245968798075375314235524508105494758821584202447737690916272245023640021413586257693705005221006406630665271751508647453085287155671964761612596545303233603579541573491440398496895394065399250162843597327895295081897814662395679950314597558261105313657185434056291475393396129198496805720188789824203719754457315834047657674042052014958952690610821429826358872750485500502043068743163318515433562163837602704943659251225581013409254318447654833130812793267935271141087352484312486131896508615988133649068540210110794662795690952933706298058832677841170058129425994419793844263525217882317810346227765929409383566861384133458456237232856049847104153751736982675917080465220063441649944569374711779254517794422381447021227192730529101107839139491170082159819294039943798840401647050433721354154769507696164174263107486574470710829468335234892978957282033348921565442222719806073749776435614606376487280092521833373623236837825031740085627193046136765533832973927647077297153163032867097115812622536826059536249529200221706154266239862964560200488739969882725352627570322433653075591348567613071854115644566328545566433248133472216127633869778214001706525217240466406498474258722421046644401758400232331716452141093671979323661189790660091010385772186770968234833609391844138774469941353150255628694689780688340228592203087060600990778072123211135760250401654064734598929451788038714915038150420642190752050077340423559523023560150512099499713407210924492167736338097933601716872820022582256191199277970384929175190312303262423870393836920717871307573444287655061871617492408173510949408747003442149222271893168077977968394581113208578138148423066539477907637752040602666167808587470392475567947360928439001723108368041231736777247777673877508612635047673389515793667445413494133063580804297496452164113481253746680601069423153923781463450195587187721150737355160476673074105536182816000712835972431199672567673701299633007852659921651178336461646995185503188634704982464464678231176904546692535363476961000188763777802982929900605840375393932492581654893696180113182547084222948839104515715493382673351606679922082876445822476218719372700582232505343727800484934197593377617918198838178839650259293340704350595943901013913490843483443030344054115410492041738546334431898743669337510459581302470052379927049540939757338946215473047034017522028831923326723150602931829951067752486414390915011313133211636246905722642214668324029632645018268734478766571656502802179857696103877830808780781775339302896576583342488013253688559379389121307397654454008621965832509872896241358602825996112384923002616324115047205771565017988472085380232135205713082552353630837368764433551660886058303494819612693250307057478135108049172560372016675358980826370336364758027472937656305816974520363534374476466725570827991599416311355257565277951134597366530898332836899148863482807932623731120368449208351120123852359410780714434557209625693352578599398170703372120310203498424428111787851348580820120024845575593129333209290315047586736216210684592424905687409124102371787482005435430492681323794167537247411620536767032303434096583708211630295125709096154530752650265474691635472431203592611945871521802227085794722387124319227147517209551778109309605719761368935465220439005655265186538699167143418658838508594397243181450108137811899745576999547650499209258414706940142100914298867966383331988409359145747632144144172159473827082636378347250938729790671194536694072347296507635989747141615202957677685441094873850103160934598311895583276121382026398807870864169018198183554549281271337075590475660790125276937721364180554522765260617082138667101248194720291117936176111997426526280938434016874893742739661246326716912617592811434838954556078982437451567347160784041734124076350201740140564378637856844947124505010239759901498213888901874870394929573323156001538623223317229626423531954357748082782280020967909048835259098264570325175303278134198142427964115477416402101376287489671569084952493869561128067759500455712978461721219751266090640263671352965227224907730007066408641977954176071008524640745275565870747100689692951771171579894350964520900780470179951545600936218225994925676601969174279985378809821803787187637337031251167400575349440132082262972141460213336763990678761519365582721123149974761602615752413996057532496229466841431885124135822829617342301742263456999137491632366909962806060038427920663585294538282321955294101592332582256792420543003443826383954645828038988589965858271041776349205725944620068552528831451782932551089407411801192604774752534018542197196955588402328562477547668208852765658159175422497867421138395029058957027160974711215184569312519543106164973274177707234652160778841223822802213432068712462836135290224306570811013183385306374656983704656892492004122306111165133838846692873109133998332046372837430770483098595535908973091869053564586025651555569932337177789267747049434856915705699928857695576272339438142034460855700527706438763257532581954180994444881623712941977655400177154278163991742799596776856256652479046248522019401859486479196130534927158584491471501860095775207597082802882395285119356637428226436349275876203663384586114886336221651768496698970362800199442872956497342140882841271160248137254724524353373444332871249431061975447676436341022169256589569726337887961470667516769418794449669094313966324377590520888288721142523054265061716274276675585491232014152847613319306872510477087172128158164491134523007961011826172187064440989684895949320399469678065354516756221866819953237916308114147855489834191436719653117925498261849732597688908016397757134794953292695785667282388416260618124127978364507309900858500829799576933008879094505271194320373751102895287722433420030533947711875501754394463088238812659509908530509111073726930943763412944583225853339941567382395392602335920405557379587188821052400424419064210812073363394171148780854958288043468304891928821124911210579432893784930556677607890206084070948540743786746380619483941998739829300328483597069923851385892611583594260848785995022362215928176682117636670715693954709112625882409706895397385413509147532204331010301885091438012873451567711335425053356096188716593704706584018576526775655378807943810070374993881513679150989421765640995043953581784530981458055333115746985130827091990813197780851796247464405210360679160843440616985573749659218443635404090744917145655255635463356647409251422076906734498806316599588759262815936074922882397496631091341099108710026745945233406326956313483078859441126064620539949629330318307039570406408139756374353250689946890972361094949366963432928261355044762619099928051215835956416495048782733908665327905304564081614219327115021547319879434151708758537929523557554378372629523727835386482362167032770809351115273370392402934442575141376012334324681037923746417871188148188826028851468323822724556553548076652607855404800982969086841150397976957481516133803189949947839531337164123961253897331915046656514395177811073346147554071908121729829148156380813091583930151744279133757397628477402168613100335504609869103760183284323578735715107928973748098239424752242143841255301053811394156908565449797870208116067136744105028596397422535730287858353983935543045804296603381272290704581764355006637834087997109484980883383543004061949581095481870603469579004292520625859438100585222889779912135288948262184907977111556476436071851980046761513709508371650534669861387172101495911591710337381282170229554616375321321606917931424614835904175243845396303158098791173356203927288492398887831409342269067779699346278890776975637948249861885910156615273701050976721780308774525813507132389069276671756244387164305528543496055763353295799907787750537663178646128165985246558442506674103261841838735918300939173545957773241756494972068412965804161300363130428038600171615337800856074120993692591977068540577777690168281291557421453832830578038736933985770831107232244528782165767634802103885483887347687451640132354582341551396556924345215455427061866488564543781426916486360278091423643530161360118334267633111819067411859019130198958120769670792776099276689548549369677773941165457132842692043585553006956229904486779969117424467060758256446631637387209670501385417774894273011598948727993463218904159140243407201824655957020298936646818588085269888793028238531587228950533160884604044362795014214131695757909840818624012222144016046381010183703197101085171386507293074496742687645511645763856037375437952058190477022638747265527551039973921068386459317609302454566345609381801681163176184374076455588747026266804084484569701903134761703510943307158871593269858676701437198512008619352936544995088064906367386519709414848977435811591963954810478672281037135173681130135092398173742184207367564413901269406146200923189863468089359734995918683994852998807974868337397658694031472151589238254737908524522148952376805200460987658966837403871577151156725595180146740267789747285366482086241373909792769176005171573765292320546516278622451921116486645845983628376631339572388560306090397118127361457650212031346291237799939076590171993931941678160564795476811706215842169966051323490029066309041147004510277165033901340040127512173569222720159803144156741237876042596037802991723716191736828071933945826058068563082239697007477835112443709113109748419257298706542325123888492243681399956495554592212949844408892521362606712053642541036647942452026821665699054008831192805375220871750761607937853476943138744242241053058791421099775108628514766612196643565046764899916932210738339308627438063399914748500050303346518066607981744635132848607174034676313930383432648780834245391289104116033891344776492946476131272430511614540763777573006982323848337093663692219753532422437244072462756033946771434353687179835431270469048043204425787453025503566201627602464956426690082797329307604757181505576733765609374893772458647809537376905588359892636844096026359498280261902027408235588108920171360362958066622434122375338692099395904385249455733204430366023575694546951705981773637626268333302514998006881787629975720062427451034243527617395145827827595001792073284850722123079292031441295794233602078086680120091711411858741030837677275589979042855255726657993614779027343243531990466362149401221081707857005199553139183005442060528110040802882823989058624805222162184471226030727682918975920178521280151182975281907721313667478132657221732207954057968158504455931309432075678071064298835317078301751684175902906633278729637529280223340551343875513121190984142195967250124829081428644769776648578090891337965853246840767344465258886275355234490305648341399526767099737236276149125288777580108270735448278971287518478310295591977708771895167123269486111844860867126423018099618504475427198309544737360162682253876466733953041976640304841215358461515505083101800483355173521768340758364595878501716997235517773260018207734520552122996184889401540435852070502039426115472273091940805574569052954883139714564279646459510122966426552683689426713310150392742097961909424047363423798145265662693332008464531657570972239656620202975055513286688302598193846889863873021198822860421639867188184625416792760017536002604744096388403442273330598695953133662829096467958057292954117944596428132914785544691926795539568855807742266757116829834114953815644743355407505167037555250310588685058444378424863290457388283164569653360609148936206418210390373219934195259424533424244197583308082079501933191592202154761144102059917563919424288282393244337954788055127391114133133360177607317380512436698006300927252657617221642227140880318812100254815608726708439943599961290921327648080668887295762443610416074412966734358092073311856911680464022304847584983790323009427520379838869443108788332048605232374692114778985290910187612704032529828275438145064216156418412308277637196120195500489131657433762034196838443585448350413226953337214171550029000261390414973833069803195484837012231314448759305127961519296052340789116947592930583117063796270285199282832395342867696014544277292401324826938825814727673873556122178021332915942836645958541221697190323234388104675171144371875141073581856747515489853353071436635916928266501967991469874297018128411298244099962924453964092849662973397592943651310780891119750231195894633110057428840625125589854093962107855012848868471346692155060159460471305936957061647426969314374179417777896981879916607610422226321073235114718887467908891551581708360115821534620069612981604929369347656088124649944769064221235474612423288137944159851633613951146053699175350878383877786927843761530467130070230244475127971214010152979115472392208389046986955184818315984479952818520802570064654291133996872607512004168101788847251439458048619606937910162837953992176654510722309061121264086699426782051788716504736994438139187901378865306210399590136711071227651597993107180262001841186741660704170857198507427884456067855152096627205226579692523120861664260002559321422068891878232066412149640317408996999652610920954833143486497487519583114058740488993734810192519178833612963599040803998453554128021533356462603991689640030175893559140288794897553644115844120581839888421781509089447816643585529890355867046496402401773468628838929618358185561564652801054802983905009443639843944348415520207313548325904145777054496764990939103121949757512076024646174120603793017986864570952233496094764765254960670324112558751696926594091424031714058937375410130702130732060074718348530640234557531649243692290185869333386226041366658517158682989672723733875456794993743187325530793656982951952650887734419242522034787568086238383739167546720646671696506825716177261910788426081054087278615568606536384219970411818151727182833983070959222987721225465925826995740208885664480177714249365284964206733284009204383002457178447655226577272623443200828585874661861841459582105012923535873481153268155244440268030244828320646011135022432093243160058835841177371571120019968250764750563396836602496481287847381954905974990827659907339024284248166234403261545474670805448882191514260920348683849669739548259098323615656828250954312780172813585460050088501796369158752927713372508900771790537205765513690518284613272210212216577680365291855703664480951787116005655617129627960181036874427706003364778698005593595044853215095036555977187091152874059142556945963859746146602541102833507401873193878699782274855744050624016362235316375822396619428255807444246058126495627579158390237619467730724960001647242302798616576907201721753149418560257029576743234492248532970506830029071613050479992113588428812040213506845639059719882223138490801826274599213920692170425028176879593111891340392790913730887089484494914882717883401758779708327226253038756875138894165484212121254712265073589021081491230551762996900897706071823538255807545373449749620727340501720452097987372188508782297974089841527085487569182647622922457656062518731735172280613618742592586863334051730136778305420050329766722314075964865732252271344882707501947696456028313407922803699488546738270422811017055511717553840225840148890925950965366202365153413490197856487779823342985807724410252705901056623256885636503752187214979464231883320474571035585721761688565898939226688339651347887931230189240160755764282713892049167664924364509656639907443705682739690381847265278195561323848825684584317772281215432511055846908659435942768826825908195299691065857361238713210580244005306003993521062260315065110290043179926714523425904040048963721595504498474904879195941796152025526399917633046278481533228410772389481162179711716766124653219955449750278794421991886458584544744781148826270707096396099129132851344198873652030480747216057933038414303995018987668018557530223897411405058880507220573023886737525438267521604442910654331244484076640640915948942802085527869254435443126741278792787975615266305127806260519305024301169431982219157474682259889383239405304849226889552145646169502461743923607991692521411290392023505564576500984922542559439318232913507051923836629239322031280221201581556116726722661162148389969153016100313545895986063076821423854852272654895196080379648122073303080513865463059157772523076545787422358313905693722317958317901114527370036420738725765512391751718075621066509053041263175040532104397557221660870492933695374027231937916368127976380126312392219607094371405855620207265443018972087818457716005155707697947819602314161879035162641334083714010183314104945332635767061637323460120351683809400565932145245660230415365843493426081073866171444744996407747320792071513275767700275689018174170204443298754904996414881810401093365490724878789059363718288099422476840733795592730723848061509662103283557039121582149460736171712685997417073101425444011813679963872860107081524541747122929179913281949592450274284674900035379757159104642375256424497645289977403496936053249721106105040446822063304237940086322783230150088704992983252881092975257850805339934476274501100654676948240527974312357301531779975155235852382261037475005373238024536491726421191330075903995282992800541397736669573898865741295632936507374036287280364101470302465817152185661022550690599372051990720269219547334086791050221434170372800070507844662564059249988941368557864701243148412764701971929605321724181387906915711507428395112168018770032838000475756675883826438254603915948641073242762393389376967704549136953835166887506879745721322426191589557407244307762242061631054419914022452941555986442831430321719045076593304636614712746506979003572981982100977440741793139107110860951483018004835546206170923556703150083227750171242646136607774875645847909527470398828095775139257556423958422066009370838587207154621007253708994258586490533744569887255197105978964845943588511874147724717042669026445019848124033366986456257494710883687634452863634401723729767926533059131756996063442478295197828461911467605623957926486705985730326663372307024123494816551676573180653009905674207812476137424420508709470011304188710015953560081465844280847273774508272848961480072349492119724147202258873584018358112150663715203829032962784083076205514343658188395542474480480881205027288879989233248141438533637503418777527892594310037235741193622926309346640982005208184171744139392151317399631893767793605987679422581901118220451590926696659816356182349828177445486233315630801771382407482557861469851151827484367856665999712913281308187654143662231153023296616521874001114393650266844260710518168350981493933947161507697813180799757621515546214557396320583724241583170795154884406942098371152445891975700477697713975811274084903920363425373056284280888398427166570659936729394331496833971553180953484250618262745963637127116393698252524919384318624192963845734535207715326262365857414666449276591575952340245585186745502983191876718927439073702996019949386427523389523245192074348581842096935698601452008567842165202080875097036936589967008044476992804523653547898149862571710855897713003979570192075660286760746463565444803859892212211625938236977113812957088124848738210625203976996249945567722731870574334391838815437801048180713052375496346255022124512144778467893217728493019488486600577205109848286402892400655999468023636905182955620950511124841259635909264369312149956857523701407901152744818806882148792048999181233922886378047567972044542217310661585271097773995373944571410522379593460541633695409518143384394444191803683927243890462345253106147984548983628917217310924084070751212248020857619547422391691913774295073391755409057683829971427844459950531399226828696383561980622279264879895912516141244118856875621843223449816642823911943473579765193539624179059671803368003825397026353779296391343185714446361582581882048772763804550537553969620447512882075523681606749351809832924087718811071864209904372468928954210999251989667258167599374149528700957236327606418265101677702306665505766357614768149526030709083634981275408499645409591764360390274245011049977829084575786880729150946351063731931770697531249621802071755352491804006946672173248551220276563161702708323258362320513377846186567629829545649233054498543989563202824095259282432303400290947794275876717196097265477818160890566369330940428343071602393226117342798966747758723897370893728371101865330802833836341264637081433012603551997728920485441496620785039576569039069098756898321872752433674127845983960949884967266700032660036421838437695681633742101072852734853645340580061981210908279518898659664283182600395573460126172714846979844032215970673805609024083826553916432456537458184034801617147300754184728872737838806879641810063623282552294076298352834796306199642203188798655653153289844906740235369711838630208465673688183722269591036495094920108752948059200527336469670524386493868355561466064399864943045964931183437772568744684792189501192541792260922004689168916670759553645446897156074336201071410995324026028622839851832417979211828082869891521757543654900246083471354906380261156666642302317871842666168372480662655161327992752111315408534295533644493237758253045071757678003376293555098473970006743121659862433004723226620939190915185126556680091603184338774863692783293492426305493981703080203353332123887893671678439000488664853172551197131284613564148441101109971511054805938997198584111632364024399561133823061048584223152228888919122249792983296537263040217956962700993992008647472519224521784594496159117325226533970132518385439804605202542340001880732259803281622841772613052833647025543751640320591349358240400244997215678268248676420414823560326028370951137190370887730288182878718988417455614210416616494237694872166983103610927756124763085832545629169013165737336837551358837148263897148302332995334869459472819456105552494300435210464127948918601360163027129703122197960072960268647734346522439421772024293306895698178910705515033577969706344946341282806683585767108122068079495515580851368305164921225662021259065500327298909094231621411392571140392916562636309684626196986273645707481806863357420797428303517694427607441846109393879809855844878220870250439878914937123930262321576602818476686401054179296457440240110107898413857270502524303608544011508217786080472979820619530863870078623079588218740242214803467572743069810240674735287279063380760129437861312308157602234657497983768738789089759494015217390489314458605320121003630923894749264429212808003927438560462739721966603650354861791447910912050027015924519926834829221549693924057967771282957153978377405949447226849789362951255054454953328707696107588066558616696782505336428251371861736745968590982043071213420037960428635261826831138279148548998167188233075851055730392249075918670519972226284155765050452209041171696563457224147212129250010577963992563902275891184084889365270812583136646808062630934443999819363060566044108036863697035202119036626154493670840626415270858233743598781004733415081425886571265921886349137729355765232607193444024110479605654104668268188561357736359399005141843019490914664957889170488197856611577783435622662509983655337212615678241078241200534113093533481371849299595534346279671411693553665531374631856828714012907681807320600362837198715024834742924076208775055084551313160318037284302631153204688290389403730027358059260673704468431501376401590307843241974938248149651120018446692837429704435027952779226056769019180958338576789620335022306585256294877467159208602148891108690585696762164784886613276297897488958804408107918793158925763460807630778247054866993633487224447561673208843568010532463554048252545176112009535493078139282379003779569060912569023548827365084346034295620813456147265318476495150005586616294558258507166466237783780440316274001126418037472088624015334686879605010914757688897336238956222832057526588183981045878462370172468989191296202448673832861792857361978737372994101004380119811875045921277332846097669923938808983720884642210051130773364073755411653587919153888502631748177663456821907356960490432412750313713958810280440481897746617027493351423809339053022416939958403786798181316375605476456830179171759241745115349712418668123199349560187738993243577957151749469359335425470486341529578494888595271716190744925114464553182841138788115739684887392323335463833406082281407931694182163178182715685066555892739232270251946784491363178919618001184758032502396252028390321038972781322345930125634293226609922120213113386473622398332274439153567760807153835374197823680909203541517063208187370089657502186256875768117030405694497067551612447251006470078604813790195396929710817417205635375293847827416407736818283095293124125200225864976495724299134614745653271826902898341133289138672232906488989233551226907296649861407461315697152333387844873026563638316678065582066451546680383832184145338487434725496786404695822798396685949415607087045156378141129282728189292315736965647430444113703370897733830163428108048864513635141836818961356709365436739866354089121032867778605393895707698612440501692612670840466945694717648229145789357071547104909277068395791181439014634024546920970310936104598009443150311572002017491733746254150592744272285890142670783391824319383376209592453369787546523245259839646957873825869303037463252470261146623767343075458044487564682301543329559196725623385763856769901276893041713952994116811428457159425761501483777893061706657932759589798661658166288059077888379639212216375253591788393752915646190017997888052980658222889533039696322225355913601087822808675951172141582037722592293488059189479686901431504061797737241110224208928465323380402208222811062393071169797990655031355502459921067906184810780451338888412518796361771003729793153520016987750593185639837656917456853700871422283096748487448258718023954424654373178106922827116772514263178046257068643279534341603250893192585822427781997873377676264045147604297707636776893596602518924723375449787273124099236890536119344975289501090398044181020189016230408653046442132991613288020986694097440121770411673760212737737029450078588391629919910829207562454167205153762529744356596277076443109822845764034330645199536872125866152093484654467266443877531177545829015663914392526457253284684760373071680745824564463948365534800405815087093810594976916067949059304341371980787199859716000417611506034135516325791689161309643680696954056132245582690102649176823725662758997499103683451968020403844759788773818551173341238158565483732713163815500925532341455614811222478286293262710566657055702732083875104468318561522596323365361965104722830615195647527182306856716322888190694308567227792385676742720356771738504361167079680734492333770535600818210833549359109246482714765714879602179771130644952183098512880930634783317701084949297319198895097764090656772016850691221061137322655945866947218866821525692145365204835785471461187384359511007111158391127206424148887290894080143612678729937504506990098538377713504632800757926584581826297363652803894598683270949370782582549844007314303310188373247899664092349047492218339809503121799273947083748162356805102910418779629789896993800472921075997718353278987162274285428655633379790116158013067341645516679958813686648388180132826759559144271476996715306740622881835969653940632232483385882455649283242362822092916596790859063685662999163129705739693181887988179344702633841371337078621426347515944999921368330131907108623995329479051598121247314027624035354297612323550901914085227543984871395493909749800228357856733291215087103383568121689450875880286798229487313221767832432705110928201066708107933983833003357186900940549989976706670695853575586301867680635672560802831105002665378140429628018787158109074140228773462007316314928143966988746613153000557075331430932844613584623858268659866235840842375179610065417722945387978610271133772206159898732105707337105082823711050808047911228088779301832011403227131943025076473475423361972073772690951430143779775620903532861166474952907620777412938341341600220564437976552671436714299976825348230275191431250760962748733578495051657905770355694014554481065532272030294102104076851276580958375268397378117528636001655276656225310133484015943240591285273501712373066249292189277470936640510055115194651736638559288832364760625078844065400597189120318728566891194879428572920237251460818380595051929901592456687412471638717034284380574968114042397291311866742646505848400013777013176791771693009703647171864490251536034959617726359254699111130725241595450880377223366109010019695058258228674083905415906141794933310432162291397195272749336602695005710855672185695069298315908212532632342611047747457108292520324529477412767503719114008207376221448687044162495575060393432301747067581061079808640392302868444627713020659071495353221909289575890376330666929370507604714135283053302005602356514945752309348798381781602528931536187306590003962439560951148797368062581616640502647373845090169361946515775270994285366494582371854751240910095395758655268232741364543478439091505974004871577670581168734437368578402030470475183067880191604326894399611495022422709961373828176164324153803398275950319925863010362825895756227535118770077600750603732379195146530857700176597723975005463770804560288307013421441964460898323401973699487591312395377293875969232177743624184664228605293110502424180407346814136399125227231210877553529636129578586574347472791224483985618156961486054999138330780028410896925119687354006742833537818101404070385396949065863295860739751824084477070260957936781709796377673068167051802132287737748423337529632618297051820453489059938632600710274819153844586443493819847458726792930303773924224239046503191066342410913066687451755689478330692010522843024740996952698989148388008745908712595422530833233673452659700226129534087549230818163924370040459914689423098180840255168746077862185625772847312253298108635273417924968566673839248929003167147908357342279505083560707336380736612823139027389217375480165674110615526985249675573449436786862503812757499388121651656985010888503657371334934901311422341000343932464547230544491240656921249600233957644668903012838643283400745596949623591994088585891966051689324697797963052452672443976344986893233160540175664475823871734656772813739218273882157560727006755375151887582409422222164886705111743449008861807527260347720451001967760110588046426486096497114501044912697804952536746078762474012809296884166646888073111470879652404088367455941022032473951389058301074672855202939407090629071000322737159159074226848640670739596741710931395367415873983774622467251365741419722417598662025143066901678808574777788855390173476409857389134355455768643528842149852395092679962802656015236078312367624956944881821119174273482170799206220285265524360087616476236733320375625993426044416126558799111532878048924850383633129771107004558395553353405655040390195439270955136167770857994402787436993624786945194935466516416099013253954526342806354098180939396674134410161637329605100300703194137975429146443497606458331689440039558202118850716339565981656470278299821164300466097895089491626536272926850857368466155370756560539290246700774133242227631672241533650805866384976543231756384681725258500890706704380366668250073016022102262525571516268651190695221320296313804010822456012693264623414886889475112220108741473334138267478361651424138537367187108041258023382022147300982808371202604141396973036842669013582107826276719547083305137167598716302054332737219661529372597876439309134440862247192050001841114875804057840383570838545505043396564620107683524512237821479421209023993431376549210253544674540053734185648063700519724514409937242985443225403976409632743477239534927687696970928705200358795645407897166239161053538355987853461108891860377287663970031995508442928702003144785568108152581534034456722842236303275839548576718390150166272724309662388910660208750968980394633469107876906496711858372024053867038268886214464651057089028626047750800450778068588127376432752785030698597717767349562745258752977600215728592440802386281957833744601227844300663190106837794888013346184403406440126667994632765025392518667545997988543118309329261918842306507030022364282262077671193156069240716797602712527423674836543718852037988807199797884364601951003734976983252750438427308326787794480839026734725785476293780246622014845755896958366043692048508484356135335639166969986230577302858810139700728961005525871361948351787122964569147400534235602343033250804905454895934304789433668852452540551977892732065278234999931098540619491346098289713704307386458205716306616198770907074952844390509807531034970811827925208030413587829162228458099290407391210831210201168859408438487964056933507614248258541706657844739352584979064609753314407316739911005934219760322239781492863563434356481488207298598166889334259668056527191244506450734109396915182466680864375680437126610925235267480615105889208566369106645725097711232016214049827298556739371852127709652332506649691524230076244137509019093813079150266136320102547491558418578330681260340414260213928328829039842339737580566429631194503757000330218058185382465382016560477060180138465692155849656640773667050655319983821113354005886126597773011518279913803196902378124727881640149992036193093443541754326204861058351172716864750004438722839021600818608221439177961717574775537763239839299603886652492299796603226956260799175568748684893685302755928048000109626330012031166899283626488227947355145828683029860733206801411266320005151349860651133106399193126694974741545058501323174180899847445664597547481589403239107165127920433893847430719271035922864451769006873829112815069813288821088841777978078717229569558520724807480130883078517973028393588412235735283728272631422954968413702438128454417864087920534778578805636512483297972161233306845321060688787566493416859762396051319318660965268253957268518568891446415659440754604526340278178995247494450923628597533935000684721450406971351478242715779176243653225432704040292191335913066477115976142231684244151422189453307722540501640073061400321762322798204318429850117913315644590842969707615985445071248590354709647029687682901987832418400696892115999967438055163231714934661025863262531538574519909177902792084120825437613579999705307092124548564929105838874146825029245031078858127950416135398137199945238623509886827469143373881340752109411610573718914232296246621441903614106973195593845555431959940658663309638799957247851166375371091245798988611617986125501382250751132450274780302493929369281994273128061077127944078392209894576554322858172310851767134021866805758842368182721558032828874113954008221019954955414885895922560173198436135824686996824636269285236987026766246063774827772187275039999950474723873534979403390317462187610735142006544267511742536673714947056542917553616284906331137793596000436106689013157260754581482360238264063845766226997818737098949418455775723844562218109077611054764872176003243213291257264109339705424353296994301368223360513024004732489984572158226889938137592070519177443345946352337524294977102455889730972105376484486447652713179309119955627604785558710639737562867161087245863461073436949517903468996518322996237695805889558951507336448346287089945764365186916748016970954880343580073942107773263113663367274367610507795940444996919630666415412534372306657934803170661069614495144926705641017472401015982284198750920725371010199177829619710165177813415515848620016626749363490572024663695751341804431744557115991860432437400959038090056777399846276871752997546803620238159732264763638399531281042553539452441133074045099280277456182064350592598204022262832538893938891955181058022374910200080576713417819220821515023177919640537253290255548121702903994306047744443986882455411346001928794860095037290759340787312341532270227477246945744725639514106580548308639318535486892096794231191138991902701271383201269033050851061554044831949099720652929982058927019349212627750856295873219699650286905987543824046371354764152667553440328164148867207483195028295837426056491694856425470125593468434990651501429625056959579908972295871992745214595820743805839260722237879920009444659786840954147766619867279830984288206564781975629154707401044805659463861283472717273031757210923788648304309293071798879287001424815579474445838964522778812493890622511418203138233013406525232336361138909333544008382861099183246955520726742540473280106024015346105842372806163023231115739016761624117102394652024072787615819465186582909319128071389392615692766199470761273517288316848537282604945897242856055181080301918443444243877660001698917442294203609782990150744184307558970832356664979847688149547138326513782677547526929262870174956114792275884111284082900693185451700841825366426859300645472305227022099113292651106091531759404869774843798866831838771474604044980179779332365688605832167857904925019274338528230738467019367526222341211260807015356126273474696884370837855397092983632961460489208654471419436405643816904198532420765399793403904911586970732554100568670942583231051854589284120781970529862226666352364713015355894522418391508477066115417279824800493172686655405408813200045382985478665918757860531948297265219728673406083388873754673747604074675097965225461884005654343668247780178662288172437520559525140138418303764149809441737839232337135767462757238955353492020400211554319313819964681407709790435719481670418718473278909322829563475600916712960960130510036793357636355032658197949604309785358395898119020676229202895237048362311211632480236968240116444627558878437023763987959196246020560192242216052580233816803191284614314839443253648136208561976824551533282497325548660920045582528593056855948089761036554836574655210767331052205808493437528774204649523696794240811783179183918012857529215987880967809620557373413011568681350015760773655006554546031060271031765080375548713867635909476233225461883692857359954014282921934354615248303915983354717491791271942672945065514307331361680731863394283175645545040898565955566195124800853795792873984060969602722393022159974910059433965810845084479356539159860954671475903707180719853467971193722429212783475451502277344434462214950850169951251868157574402341540508615657591132967805736225761376674380051183879859138339275903510194857729327321883262516161403823657995888145538153659051255796456619011061084455897361564114918749661544016747598761364671559376371760431338370754527253547160476842120364148302892072656215347402232804342370051230486999838724424000731352705650290506371383385596421062541202730697932094524829158160927256708511162875489874295789145897152535886855183459882779025963725645103387546545120792905593116377426705507063662275366358151130458547432913840349034615135232997848748814649019400281641586675428485065517367629175039107903370176481027781777315450905165561006074645011724567402742270736663078822904364350100094989439270210708777328876460656756561691685865984790302416099233712244791278770333243355376330033334392561863321975081960108438351909189665105361160554480901547701317241883475957778363134074690670687130195212170490977398470973308499415949276980448320031052129811142729097191023049342289631532417918412577261373185234155846598380426970522027997970374113279641918611031969480608616531040621996839446081288284899781408872033246555609873128651779788638136894727909351533305367219333860294585404828425991831579204812905144809489562847538721378242573488121932767104311589511331960396429448731802849325377894127068564233139976683406878989034478993422684303730429237081532192205279890038653266104910607012955941901748001675431689336278333350014735968260232471889443085081602423283221237865025699488576200241786739226399679260354923440683673692413733395314804801932786314933792923609446326925528058527832571388145083225473214837847505491063709478427130851316509404302385959442905525967359710479778970067701469855246387027501709711406898658542935620331322855230694955057551983192641285183274625821687695731949873485359720321968622304138043478487274531430061794580235273815390854896957056919595069078467744916379199243189924628279948734716372609394366325817173499698164358125802486216712906771422156032718162604377100085852901649433774566644536887785534912213668905190168227409312156081123512306197371678613757379675454872865700120436053682333260606456239949297194589824839813058836924316494886032435951887304136018978826918296629864553310768408098245189620906551418821571016840951041149146083182854119262880460103203029258419783858132001144358543279624500246236581268622345782209778377789637049713215813943149103041232147252071979624221101353942631210212167447634543794484156419684187805610918172700073177869919180392556853661245072480659924055396373443763142942455087034478144343096949384214530053629638649304096478934803006405390389196692513765324376457705534639646071982523922003152314280903982245364884943425826349416643844369951151735551627429721727180536845205284971674215168830621955427231020943524367339184786164221649295147914335495418435893073860230916663302398666068872656748645948216239387134671560137965677142165550721658213680467624393296490110728467463758382762458673620634432136080155145152381365867764999001849275134801111790422535211330357586675276054886892074586211196750343620054065657070165101240537844395527431850684740228767960345425471702968366750346340096452468526611429032444009119950083120926421438270004939533293901516092351361129527189776164549794106048611368543988559947024232707124858100563850471012656094277449840336072153148183674375822583856336401670634587708588543680501848493292264239439026170541516604113471989295330996080580572410384579055681773785251079633408994882333101343032084835696431638472361052437696253064455347833078920489013925575791330766443326109020270529739286268099675929195657177681758742916173012743420785052637039878423348782385071779629119415934193893594813300565089699811019411420178320464810988783177502067487232650040669198969462845653280064693696419561039322051300238992783988578943161231770099907068689215712006973608048701708254004040012318524006452866891575879203000344414467577215591921362374410766028950350194070822991023606429713802662655988708127071625302682655973556050134600618317060943745492112532256242803400170511399182164652201882090772842664288865718385391522731264571170768294422538779043532005633349847759310567261917451113682355197077204367959802836621094867117497338368450862888351844022231489411957209783887404077471601105442311261655142512655453922405608276523089042141842315473805196119091345069718027887569683411245511599926348353709915355830429404920501711101895069086535509190014468793095110697676405644372293917363560686479627883513512351512982243927757988260454736823307567807157178273815028914518038126634703848622161528633424296603262116879719775135644756416835580403412380631878897549910081576888177498484407151215928147382104087804478492299310090309153725285092217033718645633642230781223137446974566574945142618126044098063680684618722915367121300844274466432865331222384094280873535350617431958153221499510863424054754832004460334720140694099887743250263043237179222321876282165058493413428949676024050964260950784682225217400642161425832812717009191033866188312195575434530673487406643827114228399395311352264736789843510023595633257002957502390012326757512087787626693253390185714609895985005654380430273449532340089155474182691889129315772483646427939632569897149712977930072319450980580590552838659757562894814353322655066104387264347934559865664562765956951925624119886937666444719456753436367082138344467803055759436862274805569408241737274061233358475871248214140844443066773686129729931021865732393214465956789396160684484004819525229747332376071329500832907534457012665592279302731687752583020610672960844752301367388224282827378721256205654699448443098196999536835146791292066215021276939224791678920193695253131055986752620729230124143585611180880634997387068704188809730600755041551536268054892139128042065974049093474651618038735653240110796832496008379014705022949779254175353449275731970822338270875447276692536451708982503064047761411445945089059813338976277839484131435186463329455875977560355888146750567028958461041959496902837030194467935536750186321802977642336430112453437045443449065690879174143198353008328960982442764329308642208148119512496075582585710854283456373651744337805878803964906088003997826106830376630429388189526423802402766456235744841692963155209535876246174239280063989303534717417263109243390241459935608362086221290682411924082828511052359589549677693990305292216073261535374432833958160869186891665666366679522410834297387972700882501298539982691167808347003160591830511771991963401021487447684584074501895704910129108708449419174095809398626616216306228475659890419667280938776288651817865696645268643154171445855421631767371706361770655408961720688637166180169172009507509059818128260563088339167138973383686842612871741998353291786250829377106958768457755959055150020299098213116787104271767535243382743831639282942834155979442435965944308223128504575188063833325943081818498131350642759273460744490503281052747598281329368527131393519326732763436842006753523575459069029947892965979676432212016055110088181459943203320358730828367792373461731423672466850414332528728877228110046949329387678748754668976455142959012242811212005111363707910207849796579995772502307852449595498675988180340092964747619664080945500460911093601415281760893827731380876547579649678417594105449914030787573741157867345531296711420104057539545792011392678860564004868662806327337831388802758761767871001581473038051600040081455521949998595478677500344321768007243225441283603715534294862052594967877912087369701372536692060105670602982258858792113840234611922497670509662540174419692667503392673541720373871386494550971044138133081116388481572297980078611463078000032406172910750200693926568884423437560012236509905372770198592005643492267244008885081343535162374942811498020193573053007943462985610407507622184666323769823753009646966834901606837659695356536760559716626475278616667868552443194740171523055959394097933823190702888428961471908757513996074716362614998196441383990831129667229812933832578712190050717897024321105949150345115404137952955861125665493673860051292024077531742786678666130117789469303758706817883593379453454033906115569919532636607944465380134985292184845947453499287594045509095388089763370209067092942394927910105362212187596070699945839412936224867421583074862950271374647337726055095604436560153445139931638577736834559239749435590170195214467514436120390851227109439266188049781319951986420489894566805340483232839904306140433664958407042466564569935688871469934401684602229983901384495442613632661530638557776678211128848474584998499734750765279877968543545348247905224876808479362007343453096066448328116323263106959684459427286353146632403871434360664364354769075857205950771644882286684060192068856071879837705681252329187229035889909959361501135826480123187076044367540839802017081600906839887458581383271572384532949172855258588449253396400529227991307879925263989775809124415533708127283176703667921636216723103418290559880845031167265537502615903413929656597220996732301320354350766914653395277403733348997735319292032476637012881803037664161613977760423077418274092773492680783946691116560569611751847638602232909943129536313986690704619416124536670468011176407347664545610195347343034217656145038268198914956956115533065401645312448427130712471385170716950711583652487491594829399279214633500927451128328325136318067888624109787290085612997624877768128086619185737299524010826273812756151276481752357667364239490292033532521657773964335857541879196950156451925347966624710101560189675277740592226713512871994034825020875602868688872080741564940040014047990575210143383092326977171138505933055683514247979781267348400038317747314029966862892550060516093995916052705237797402153911677664104868070535081240805881501816966063669846641141683471313401842826877381992278523374876516834124363134033086105727205947554475121216576093468814838836845243958216155884159547072361544627904977884308661766625503269512864408722522142338077539392727525753461394163621518261601160449679015071716734388927467911510590150356104243804990030277266863759638572418881583625291256105488861625492106672200130982557887638880720317114855374173071302532017370876715084735468883650491859267968070958622052329225372842344815042109196969338929647198270310427266925936490583326225271944338384161204406305027311726501404480178824039721398992107601592469917244899820683636796173199911918013680634560383106104179438242470727890316326962634429936433957097345240461148485826369008995562867983532915044553727533580214020805916856985085306458222709760298357938200718954425278045846270832610425592536227733738143217050207105379877356192559415366725588300869970005272930642603817080250495599320603083256991516332461023164041444615920853869148518595677764173887165009682299652435330128789534213593542364228224302949473751220665182574570399822298979638611467184334105704347525722437084552780576867650191511597862766022949965917019116033485266639088897788852245522081118051058828635702395876426757986782661362914201263067011818162566208746119789041953900514829693171020616239533877257489334954395921103994331468812975008916588714333779599271725167704645910145570781572423794155403685075951009545181434012695884853079861214443588352520559268347980762289874899629698376133413134337601087953573683150308225976854945908368584462149425784880004315084648586546401293396626841084046202406851188675499014121372353961810013857198648413801809594852469888287737312055292558035992342894285103539529369534008043260893177101983879111692785924701466958248940255973333419584521546852083549106751285900391484832354534753535043657767745586729797546798630636308263364868318149323539847647534529581060233733200612420028502469093684216852094058807950499677460094964703796594338987926652676247133910568249076473357642909734493971661642665768137210442760259759250853976316803828101719587645915547020904554331922868615089306441983390774252140560499481817072697674860277657061907070474531443794697844585179038177897547004893930475507499839823648073533475128587395038718337641136472561295185642927593827841541337224971160522468113818549900331687117544858046225647623151392471529073034328620843168566460322645312281752291905248692603334424493422389488025364801626372264046831176380446895212756661473314414377213967791637784464339247236729688522666821651083532055606668630685932616772586854837963539257611631836140795245139536650267588933665719771897434762427230872541371568090314900949723904044291544709648099112441184420154500200655919506944588725856282762472419876801567866451490708885419605190144730356661824408884548329781296121224387835905079557907667614784070961565054175068202898582772817222895468530174435690403438031327253668212829204154653299741162394075151310784579388893634399630316332494630450212165923014009483085794580230384427776764022897412831503564469960367644012825098586575444809002569295264780124027774529579776095429805100067619296279346004019269593863130227757986184767394356026070844507602898134499818352094740176568641503908937043502024915725413635581567942716488764154095917077372149919440834053206571889853472342927444092065743498821120496993105566144471783983974884030007632968380522008330534412422193433446596412585918417086994892144175203084821242221213425993529566697447792992600200068055249576373796135461817147629499640702528739824127901396236616830017995400234627375538397561557241689355736426026469549637699237063433345918960080080567529908555433867781063508066893654649770386656724655265918344706447956872666082838719168803967389976593493507621941241695987353007918083532232479606964937289623011538791505531291557424170010184887459091044977244878985672850987530078010875760763417700551581172168147475400295778072384615117328991622724811157378772057843193637745921255584801775545392025741260595884712301806531986809206327350226380220355573398831365514374449432024952907023237578087623897530040033591106150011708152586393181812414213162803352047914089586682011226688114688254509209641036724889276280965120751148501871414958135352602752494386004065224968747382064020693724927366011935059522449872527599289616392028071319257666773386270269720354825350297895430759534763635324158598796874387503393005217484055320679403181582375393951025903458343188201074287900415754590387023518541193978141778251145022539593793829865499830857622747259433530836246956683520163389136711673874456044536206164039756257514536865596149414243421554651684040808033706980768711416771557718263218462326208130957742222830977047511110815221890030784525890389945448985703324435353520833535424279541208685563957120399542482267583854521621028218717652126536838767037399116084913482629143129262668346411024009010352974090532870788803228503639786599911355683905998166383777945396099859282300794395558938061767805875483932687148778105496831439547043159526601242816822000595070473221008784114929454261785278697012880366183291337798058651489720610039681514869073886137990070420756897073780580605002220800339131497886460910010938523134534763911846326287552192086956683865899520914885376554533108349883896843901526634323155487601539839636747846620739020099851540204881534100940882297422905738396097680618208698540320253092977033535250610995363015412784011702604487369908071920983924690446130442978828599060800899991293531962519666403926745482891604053753507193101105914685140348654967614190959284559497046868786065085127290641303903798822761781522973088391809485125808739044816899072378545156539790003476097387606261853043785290075109028533018223644538106387270637317396774719436395827109318538949870030447044945269405887765561253267504175381006017070033023183420114634082822556261747091572563778183351070516705233493266687838954313677970247863648488529083204210154501945080161340410744589275428134284721674156138675031190421348583275913450783577649363494289349535890194879226244635602613253181050525485340081226338580799672808611284633198521943606588885436816554521794325683114806003287534107419596023877510535832227270217007269336738684175539439791605182107743646462839285132626329178252832237466224499262438242673572632298912779577068405737466827597412775966723974572000359521806484378842145306936972432156420110105058808102471619780569816999979645513991999440142043816205405020635671154126857867864403603825899943648541069602041138994642118586403063724607263610608559318252560012164398003258030701056050186278213043621595056028947166659181242564001492538762472454886968655478284807691595503905327122176933746811399356812167519290082006251436224019389860275939536144928758606393246987447026977488574772112228428756669113821430305456106947511920656492572220561676031890240231733574642622592109752131254646728692372092729039515615414612627409935617325604539143864233311897416556671084877568257632289705754844627057368284527072542920096653315388876476416007236293406315717887515993006700107769877385533165833484840371157590191097177366699645527988415230664265220081188344864582253996085455686268402958023368964434004693942350290224902411034966014312369100282135260610405555300929860423940797079932731405824148462732235390787350725969165974889526234603612745486679665065904442653269317011600406710249500408420093844173591775438386799429801902726598294984678899487540975625347680801288698952243001744655970177557868519782302564535066921174252292408158518473212079688223017887993301009997218509394740518585943376109415332564014759093251303332756243052285093006452757390897743152695325609261704219364123622240344655477935113439916064833900118950616705758445413547915907978643943315670048990486443701475973357973579241262469094021164533917197579963530325677006974395063411917929823148533110591492033759704576726647829005230823221092549569860023751808781813020428919479573684116069995536994331598547132514853271301577203453350193051158117322133840867652908483364139034270238994517587921630507090895378105432327629593767635561357378777015507637291925601972968711044178355614102054410689857462969524708733847783059035077937561914267627804923800221284556208982973371779032045866263580457007392562056729096154319023762831931690688862251076809107105101861220689285164672458385951813931409142274854497253315660613473807529289546388627163303479103546385989300658363113667762720510051133947560249724062855566078484251337443462857278582638809603998742400222298127736349095972833053048196295509664293086868142127039127683939646090605535370837372367266486149234963727796143371969638162869926577385074651691669803420625165369022521664111630626332271079743823431227693193170863873549770721583602472848156029010281498706085181909181318929096307594554244842581918733844297622158626417595556174276839154470135668763160675722489939359884223527751546963643658723799216287676962783613802830296277538420918177133642798030561212500900563228771479373876997949240074866787437169966602226479180216449957548366285980978087308228524489150338474559451145363808162362367125590993162140066385807698937253432493271098885174180668582237797810639690303893301457398266490980531920394801295059787622013512632043183058888354875422395709997370584590929421718421315149095678868267111838010057118474211090423783201575791680111375711355162108794737093176413556027255658953630123081206596037726505053417056672596276423867335284780076051092208678167837452841294738794753670761995989081892108496920088825440311521183980452826889472659118369402175277210441848313968549044642260139885839223817047773876056910925873924137986735143114273718494378080198399500510369026645466036270111711119245019296547441537919891318972463073604308674063935012507336635225559865744941847394792373455308376274386663509106667618415933825103090271561565403231119987016026316716948770179445519460281950221182780270826932179163772032230067511446581579324879858249126122926114386936411610651015280071849107288181803274537841187850583812228687878838383790016419812913802625365275501353727866077667197228953564523080169139782117469852105949525337008850238336299223682528445586947744735516699983125491792781093269851584404853278016597709933017431722887000474134220585960875492423564263907250156331295983907736442441409798143516238024552735492159128123339486699438817334677100871130471795043110577276078550939231837703643469000963418142433738978066022002726854244389263959851274591768790561594837314778307661000990627852831744857143113852827960174667087296277066145400076296504707907872637229312788619661649338549152038880791962214956886596375129995823153834098120500784436054268023607506934828229086378056526698259059754565200757393835665547110055745922479575074887126199302632156430438278874539027778835659878522787963456368493098369612922675907394940468809119676847897335912673800365346154976386817371239378760806719493374426400917661136586651732611941211468291924013145734164674533945289479974144989554131939819245687055004475428247444142156185353083143208128051858484303219634660791365486001675767365188837163700427695505341779585410244074643121482108678756653799352855585677500650914186086999055214907455683824624092810809735405829357086632080899727849007362712098096125627797335232034666719906652824838578032274380984904262717820326938898120344227832307949482455736589931649159638512547276724418074201746892216080401640611325136781192836713737369374126244803429828875739798831550199893136064678840237873928044285804859681229581132102951428595401305093685166055581523321871959573722242541363287560816069276168862525004133200251736352347233280055515951055036939629688601862560869026784559966668260396788423912695331594296985650314861002679906830978350348007706608883448955117100909024824311035997176220122440845251705936736930207346638719561554975861184380232026227574979193418134789635173565296857508644999593133591337225545127739212441175999349973443038076032037142909975892537662820105612257898732323585947227026457115030456020345883486499053871044174474660806335697238855048236034611443870705832088922928161905988284350860461081454990197487817008194611854345926285577784257444993252311296971440870731953278804632141689802290891721729430992789930960729455099574919895077076974115661617950254480109533310334714691910724125790214612131642404462518689738467885189786922657100132947975064164199598374742439880446191729495177993912758124348502107348200886040426794962261902761312433686320719098591908137175932310572818707959096361372940310032080495023234010886839516214432467581322545681976245707747452104829038927828363631892003843440993068798200826655202869432708417162071464458254967140446752573818650714011153292562396107196190122051164322323366697508634034363577348607891070508157054380383545049810823498149403999184538523926569608655383136629854107214812667893121240596619884978540197422104263286765228786945663470680484065529501850657075732098265311384432341459534020382225284321674950264176233747226854271393876737132811059995888659399194140782147457248493098479690010683654706754282285692681845994300134531908126116655865683134875790393181092353996112875918321471633018156112623011572430325317452461503049514430323578010169403608214425121374406799833427292098662698249312201554692355373768502551390709055958382298102104249315958853843610478084859105872953714363829909044619849385203658520470710433605971195200428505575505548164968161476024530147240929758122758457014064814301105910273241360343372625643810270537577465688302613035777535563825924028553687089119185809177780357909480191801350127836673026608047895111372689130446974733161154480350657836487063721520212656755383567481203274434286814996197139735068798581833142590669069240809060124682180538996980153827072569311325655910796982152227154832151403610373219077102866157291804498487000607823211483365539178923831128810383993910702309013113221713865809013712193653187902968841951069627744774403833737064543643837495871173018886259189984434244419669018711517016809047912465337788180853528174506090699519776445452011539704579455159134149843797657266826205278839729436793718751288482085043798741515525413445642967529715401691111012939493189354407774612430873791595672038978657689669057362415556924574943637819675450751581159823720207430808191742157884547299889375041166804865713860684992958302873944027022537603594709204730550479478100046885047682207362839685104164368596815619127918095881917385486956103957559101744008346739917660844686778382328421092633990196598720594060911776134024739607351000854307687115452791746829465066091095414233258158392136081674599233130882355741076568772087665601406879001797445792947821636016706257589254562384282730390354735984554417365818746190473979623838889305441135013375011013990736480802134221266541805771875881206612754437968216692618400639285217906236299917946409916932231533446628792925493690110243285921656758557616391306277135010353740921006010847156410561385081700466040576067172960567869952421774354453504159497180594546350957110152184634949234676669138242969855323345888852120239696127672173337367890233036243728055002892094577949645106155107653664162738315858569829893397302124978186383629023029638370277436580747519027347632709756770589661319355049442970227056151017980147099397770922228120205638167333287586821748023300335498483267653598197702786290397964531388736811167923041067760066760896616058857041365127961723517598061781674189381533418117917380147358723971431969335754830778089106703666453842726653691388558519645897690416188486019235535585446180781782887638260278458876926709997051606482466736601529877036455289864959874486212956354718372476325198716234801410480602713694356008281188337594356180141806788370861033005081866851634280189169009826293991082141952650219172635748442141994609294414293255422754973369331642981868053799570698146196021628155888295443267414270162075364583950450527171664666767915662522293930119669680150858447265466564389873770199471336524533442385198769081722485423194074238668321564442057835330756489467650555021403200829306319238524971532343317794511024001806046274205966846502345704851801169936762726052736183202828446330261078013492167325509700630134780024397582480180910968423238515909296972332909928922836696552274780487181783270181625563722193540041352609252737824736000693578889093280879647074017021289288671302868521836108995381588490397170559474406534757602379320925268343270805666915821282456562839210176810162090379702431378164150265599903177026412167465051800567122755943652800901915958213072138978283064815835583797012336933311563037164714923094490249128165157631662825961389071967875235524790325839565209585984681436637817421118240463579416081466442041188019333716910478722895119512942505906695878516061079664853200397479693946377775593116073572857251813992610863736642448361274386696645620420709525881775781108717791395976743752018279323862612408213710348191215358113768344666649362375580632066365236019163006194486930821806667077816811193017049383024175565596649087217247048395409234650586182532238760532406602811581355509018060837072819991546514506770611441296320320911776100738095006170192252570562070124466779800092310448995049532380079912773499257737716234556962411432292020770006913713542741139168473432605369597881711038641115369876687799126672745661725357446248501229732360923716370552872680764346280545895758756582413909942112426631954868235125390594693585556756838154489305396775039127516952554866004302486195507981994689503000635496475055271485410605976779958303067163227522588982517277152044679668834101290286450579744253815455674153514456860589971628368455563228303513869101607771714777069420980338313716336141340074382628619982094120832714214903586174124077315589992767997579774308393908505321177686826214009389965809307373695237184018184913769462371185818396324035172115199847887380752540022338439769162011102224028170866439316317937576212256711883170329680188604433675928063892945885670259012563009298424271014406376707560914111198878210789270818839528928706131476087858788677161717055336670965353814429850189339616049778290499197559183128448642697777764249887602944560432229224200400039968449154457004962357898820539311219591378929153060277933588452112095361691374459095367410414045684811179547848527263520609134217188975888008436860214561011515713082877111305838053866993639515995204082527449746143543138062096509678948041744589734170656573147178394073214732637594507715950144586888272212552513398457827430552120787766015933492958393949859602390275243288441555388795369937553121025404194228667089732896386490958140234159810681077610539720798811444782926355035166780781079217335874843170654285089985808028298934208644413838623050931308277133637292548014503999196403807545324394650513713746567063129422462027639436116048801755435707779734313363411358010064879482026199535644847477688746287178303728198532099005235579027609576081184519221352338024393950220513736533199821648581055118138570906743443828060801255972109026352902270868840725671973150880972570146698031428358447854230285651526779204376933501645055858848541507498910474098955331092195562212361762943207916954574153464107363002509459407348898274422518947986104054329609626884903406888519136561088249952855954287353868832921203383889964346121598935636043161236179530950415434964234328662337849591929036305882043639202458878794198445503083979289215176459038278111851478462836603704468399246452991907770343431229544248412164053941751605827033783570110696000760787932006301714721647732440518808692288028510257186893777094589338346503449195296909916480200734619477953414409783631922964120537160731686723475999657130229290357354079767040199709039039486949160645402650723921069108529277955483143571341388323771207215092907197058212258706660368153056629332150186667254494896521648493001614621700324627851391887650823546930490099856479757900495769660212782730566227647843402537153794988047669500457712141705004478605475378944646087044049828644447793837737902783739380553955438712563510829454370055739889881305105261614573280810777834900269608002644308423582572520552677599322430590982660286402832842044200902579405701131441362595812848419504203851364419405507550208301659906021800394684148581843568590618046985560937355403433713164439481844150560449166051758772159175229485389672005510000932398965411458662330294465782081839630083366361838676856251832019515512843538487113335837168081598170963906163464588337465227424256506816468008344146065880672631656435623146275552597303518343090894856110152828834993900130081851916338837807985651630341484702338603768193502743310088823224117139143722526579232496521826127217062728788596180298886488169269845347079110424169547188030109107878106726707808183128389947788861735759607554693956823199204792237101929911260269550498291656664412088171616429859385093685890143144616943547566688818123885299422981084813307401213239811750417144803780375243895534444968247985487247362722235213434576195440481664713024267305096648561734695078876883086973140018526988919280092522482034750970738650072408304505841953859054256535478672973641899628335158876913515853240286333335141992248590640655222567572893854273787853075844529810436907934754198022206122514640667662169803105773601170550648417842569174424082932558564456115191698963972635846195514054479301893648170128497882053279951042974292261496994280435254012992865014905767785606930268508314044227270930678396431867451439844014432715532429946511552239091012784314761221756080174359577261667080768223830717839759448499034391475623866386186221447834655406626082200247411808666878111888844334661179043922093094287557091466475987178931324139533580093754430573912093514167156280497397527188143142307778861973701716962784463577444319916522578811987889802359689616906953073701520111111603110781935778636221745362540063501338013886326090255912447468155290693976621010735169629115329914260814482622681560649732331503751915150987266551733189375865731157790411921403186015775210473088948210216342481916734706820486738465893136543439341413448300048887207857928780655662020917455138326923866753309696908572441109776245634525458416765097232767273855191173856925396769770979066319474928249436234468933911136495041564146190517617125520190489728236550644120827143759032615064684297954395433774643798400260068089981915491767614455312076611695996196722127109789233250329980804179355799494581746278336368347068095294642342118849409661170353737602522211166617545010828277880506972495710226169311588527313870665133327948937403165675497566626508230600959180718579271113258622584609988642613841067787498440542184100756055420851628574913743861189777106597979545495685060035490376142224679783473881093756301302703028800561723213609400728216740154282496413179037759817719812645530660541510639049462417757580194893142490676331193834907442243469352425070696576660233395094667486966958153383831846443954005133916946174297727989835886439869957457275893591695917554671748844232335497922146457899650931140038850682670107392042222413891871013057189846705210364012477952627667475094771126200495527245936467037990905059805846001138069962308188978644352027523207623449875993810483994924403187533430709383253445315183977060758966900088545383603018602416127878335453548959067636866993683556497686427722280010062862071133404776454165213732115033476683960286493743691887587546288211998178995819442866830767981352943369487152191799613308613742722748422862495907459108617294968917941158542899031978352075359541842231573645155965993513985919170591549550966760703469573074844115208938501136773564384000261580475136442663766228695362031243380872181598817966759985551866082005393088290824658765139315540419573377393731770964297433983512532363427323312574702390766787587004647551189756364730083484416695107381969899800887567939265167234553381489711585557323086445794459353696177711200878248337109038026923764335254884706658285870931668050470740479285494544779256789909816727330852266478255922072804514469828106249653450299807082724718689822034102585948300392262493354915426194608843198326046257990235416067061783024486851297036001876524240045594551349590596566396635617989839622544127927305426433924138153574369312760630026466664042161279122964591216874722293524909579314673381613520127728672994007006971511096925405687195506551991864928298007957797693206546450381084537754427625617165101852153982739172252691578492673046689086020075099783819515492268032109176572768076092515257946220977840999139225675660757215848851721124712912729551816798222317704363267928301419228773712439064074015836029847417432578270615864643914726240675628737929425617368397981090048122110823109762370619027844322560089636995623102138192330362076537369432311993018181717409041067046737544425685214369486263568719083883205511192252487478011768358009400894946584889001476111664003014471028727088457687794245834058095405297503462505019418579846875458399852215856389113376825607788696204384355545740164743010161897290850317849876803114747252515746864839711151075267170569686574296107760347750948920057527109995259386533144546339425736440466702143645849239648330332157299129215482604601109856528433711227971527864079162126805066787673225620243058792405916284051098024128263621887965325306571880880979713585899378760778321144638316633039413898868677881868881546609984791488464657618825290212348940261129437561956835738803151742314640243551300622215105558235768256603480222248017975226434951120410009638812287399278534177167615570068171930913170572713727759686938195277284744287037578252499508672457241987561328237438804754912056355000638526860143822971120317272048605050998626727915808282305768836383154865822416653272980277073609018392549384048080758606687534955458672441732738307044757212627118653007346333016051473139313531954429069709494450444800454657061066858315606099870975719797419291746936686478453401944542860255549632603071728539055920052072715429218207786926142221030410205941484999788764342888415026592552605886253613784000422872078714880119302868472541920410653471006068834350468550123278507710874644900263264728180118143864512035806167898930895237737794241364656620278644702144736189555166851781460359786309641282174469099143271626628650021220137484584516589329344150925486687736634345661883776624935408806006942845154025731991765943746312938460493960270397146309521064651963939925814147810164269756590196761531517031533989451200563317691545834027185893926977560217222528618361714298619654250815133039147631653431003162482476025644909176665357426688001500784903875972439292747198982890552329674482491279291744754488431626471684965279475149555241445899876481476069754039595084491393512627972555303313755395973711657846012050673220642324882736560846622703082764828924852592169730826102749916689950472328390929420541777121118210311266403132794331218990934079617651925442997272020914175898024008087702125634887605432745350894505977962924417122235600895823036253795699635324942060772647581701590886978296179983276742399838047414713429946562486272555934314113189589918785343835483314050821760467663482925327146402808175452788092132739463455162384263135651946187190279257249166455659059080208987359498839562737741610525951268661490823921351259819548836249372054411635197443410748805935205082131452926833887533391356737764504489217309598312843295957438655339268648629044077096347649821015484302537052586306028764191561496295637822280636359254456000717067346496773708454567315787811740272418739509672709375359540810603964189230295698256928179572624561901446590513671045271631848221677805856732811790730878766321170280826882395033660038049865538772285223206686473643334394156796877173581723703766652822546616477900388373951473098243322499515589704455468835753377884325871864583836104253954517324802429430396432737103165267564115542436619128962075114152783315073444883826878689126348516313147247222937916987043244411260230536934285938937982763116047394214966816684995643628898849592063586273499277139149967589425719448848193643980407908314883220296408853781191890292188051454490361297682366511002853454759634022170924421990155643742216558346822592747930888057170360371341716732585248281425560939329878532133436302906561909317459429569061348308315100469722621043744804180951382161238936100251939263186788324051619865681142411928543037266135293294491812669874031848228883040116405769938321047673935083583717419804956737566375163789315632341826493731729951628943895053528033094185899675543218553128965171601499479284543750097475116172182905576538490484945419567296434088637987555179011544960383497252522080099338313607698162990313861336314283783906328925918155428274208973752140490244078200601992362652549535548145448673299163783408095153123153528646034602214905565188144169318084617338006613166196536936521322563592782544637368658719095737861739676767866389672755964143593333007635024821442658063673833322891573458952108965488356863612366615543954185350898451639323060309513549852331890313687887884346999530349975056401923403130048530458710124842938036635009538080847971779316524635858673700866544390444665728359289945451065308076311414525719549960320242417909977178948957206370246185360611341309750657939769690416178237937780066915036258865634868078286870273473577261054680088682072060527051173493125238002719060832323504940022673031760397662642818696881705758914493065335537983923734993762683192204362595382915532742365427878785114325888859441280249476311366946297399357206987357210467069592731493777202739053442635010499760581576650449221728707223556970450372407708901177517523699198839377824700797091044351409797097969164058397819885037313884180125007864441128681528472076505199893714414822513839714062554860443612039742039937465717323189185885278544114338437334152876285155817202920647923763370038869406913220287703324749559484098419776533530539413216686790072138015861381933434897160576536531301991240093340989247947295294590940160540168961253814950910603667445304759576523625272063207174189529686165898667656848470674792484149328334839688580903443568522226724622071667794754213694480627235761918353388699486693403154082157930990334433316106125485677964209240323209771384129176485159749600036768198312211397963277088098062204617648996856333227655917481889084992627540493076213295999522387125420387079537207785705932403712522147357599104456900799026763242948177332564806026944989691609691305114050197153134699203614507681412828166084631649476647525056846094045616307767940724246533995087849363692009672120934897599839988894807158348868442962331266285464216396550680499980772812459007372888009802018331690333598890414560374753264526496374699236887351861816256581313645667743008062444804639767707406496763180319487258221479990726137490982834189013555257008450657247540276650918027774579915930661740712200737862618090271182867540163719787623974210417589770935489419245166436643918030147977931029921511562902597275323569379333651118669061990869350613507918031411753056780570049295351601482136045940625554764485549058466017629177548059415100570626073350001834552542991403250305671635137648482173420609482167807415300923978231637478439276525702377202893032523173104407044627180902408413996272994560776341704868073322634713533995445804766859161040542557851071459008866965880307762184076184614019273978084851852292089041893104810783638867068767286650452999071571492632950009230479753020171884650702259562076225814871406520431956140429890076465435067529098414262845095346279759184507046610949256107288030049150761154747387734640581891007439613301637238253337653787951251863474574423360496426320759426332712618500441399432367663069231165588274934433991518881113319607787449065913363052726774828248880626099738066488017684103573801404217100558372291471401156842183975767587450952735797264373706699957270029502429211086442283008326736135494867010152493433264455246592495162308725427900798876345599924664193630541047996319081320255894719383608920221859593568821871133572274322741267847698906990402498774313868570636439874943168536159863793953610137923207428564179157704090862171197244301640229142451010612894930578655384448716404697167396564071323834406778454442731700669964573980252736074959023211038853883659191193994659667184883543819528371433818578204959879131477561821885534354683470983320945283486802571684311068219139388266465292070526931317320796776588484766588842660724205668893121351285506694079840919774769304442007123262909798729036514707506442811264546440719366259193455089957255924684105028344398634708996188627474101129459299928144606235525637856761225139737766290324095063814046431843923227488461473747849173028397157052314050333523627713528661189926019814074899947416917707480802637456278973721274516400870062410037310169485929067685444352556981830634110427383744986523222085097198237490649732135961764320698768414287619985264606791334630684515263348546793249466399160545488915271297132862282112390149525686320995614454894770589562209552443311574854378215466237271539641157032800051794965854485106915247362097660760378914611883661063036792986413191453002643192655607431060290659903360454167515371818099162154168290382379523755386638363577467540630244433941654749763510259580523895521553776387874692821108535038752725637586160172305327844560528395359617227721822129290515900018667888851437801239962833923975762411397593466697428422425235299314793606978591956691895394144721297541097334140463350893810950382728053713729743146468398117419358278611496449847946955738204240666994579062727766524445881102828644663317036156965060414392222346953353540839672444968016931432989419814288719344438101437926921268081706443383357243166944242034747291516363602764747935371156301432344604332590645774366181342901516201272955079463272207573446636855689340916974842538103499208197832377878810025622990840796016506132542148823193142101987099872910987960616093153255989241355818641516879042297943672975185258740939586459016305786482141217877234900616035935674157736865018061527901906315313800207412789727076130227488035558267382378246915034207372424618101891006560537814492724419853367806257727713309938689513329558643381445998789168267797380789634971663002146456295409928898125450426998007559010684992977813556337553752285003085590667333235219572014326708150391314858031251819629124451213479575093212287408126436556859922606330306144245573601457190970724447380604475275282715810002750264680052796968153322872772665363459213060794138067353677617757908747103125292947534282182997610763919130007199183073185631612813366121690843365340125757883754555420834122534148017175687245102957466163258688198490265951507908542810724165994657782643057634824129818743734377306714729982849955533683941699902999355329810812314228314561753562995572005661562900596062288693503145909633830348212510004515503157998138912609269471853425813074112144059702695969936791956520342611149186175466894790474493351462077888016274336069468600381411426461487877022027903668043166683195724382717021688529965859374692451316526474455276481475511266755016571426827909403553885336135652773544079017052021715130501728072476148135958077006724033201785469097192195457234030205566173870789207688306481512276218092637880841407971135839388863645204948204227463692447809081595949040325875132747458767231385233510667721185350575768498715022668441325281169962196634519306257313722718790385167751922720736185584396844650900739023024627383298416484681520282733633110042251744310402724014264465844925318012906851757596836598130150214315368058991666645045179201411177941188045157787594682477149238961867360905137157624825505390917159981635666383838852171356368817922135405717131203003923535786952861946211022119366752269679709921424880332852956028244211338213192620328430022575511137253712537120403467429259009318745860772279323922327060222723683606284236548997713956200552889925145451007230640762933529312425474168262665851468267354892082351868804660627710638638710756258847659535539667543284174721669336657813615835719671040444150598468250534700981723140064968722053424210606297148272648605108044813969373777669635764071547322216605605036941549778031449119624584769673912045711089421146113272427675750842551762635240190229920942070949100281108179510923927471971382463965210150666347710846866883943731704544602906217681983972120466336699368366376003063015285127021849182171126924077197428624402273913133701049467633470072309940892115741364681720702047786546071270097031057138311674232946546638803380726716371402251041721652070761975492548859785617457416723257534352028830349640312935795509978985875370929190077807116398315603326781114233764950901103522801301777986348225558222944495005805896246812726585988447526893551113420397099696684001006860999884712992905238410920062638209326690419112645929531773192295092763789321812895364055382008068804997554653876954570786727827327285013669633220410982169937360228062233021359332780932188080777497291393980359299022538080543464184720032588544457942947233781013097126057341644328195550065005395403752860061200059950001621390017046549974979840479839416385586354629555599817332086459319269285286180240096082620000706219118459170433116277757764740897701285219377928635619096760616821189478556658928257122511734884014461772856803454507509923886116617082365414539110129702526579447080389111616300878480773899248738858758620462391653652026900408999380786483277849607754269729915455399914253222587056972556536366831200548617488629654613280842849723330472611850937632854049445319708395968306722274150063601824721880474066455356049650087017524939677482003683319992531635688307985061199763427800150014173820394401822328458245135030580406110178284959966921127244489904185838288632028893041641881800590837005162580995366494172865764483553639149268209235808197095490069264009683868008337633089350305830531360168113071683961854131522713420449689480137097649530686821885272086821101943569544036641570467305339900371399827674760783850321192299667200732732581607006239875751470513558172218379218598888386955214696790648958062494394745168956843384891662284918380534377540033629969807493517615811336111823951310875399729308742869105524655462107795332241707280541504523833840000042806828721165527366519045674843819435560770005028211093434679567688365409638067736986209763101579098601591896130051411335939890368113203057488902560270985981063420356727751987515470911452798645429329736821133749440960278343564910680437417261461320037534164189066936059689013913172920093129417818220962221673120786270469100748473712554529097329319786722127768358089026171435883644170608011594631483653488234645540551601631985389658367981489909905775448876923077740491508527351993230333314021896012929675195760812389755240694150101176831859068982396385615431847214484101582289334273181310613127722343077285261815290244017317517566222142279275528166964609851291879659130657689666486054238846337377316489394867693172851385547012290665832023289169781697443778801081152725501642473405750139920396178035969508649725138681854617420703559132448776874158034813440761086512736432495895765416371168942760155925833548290875622654796769282038500266862700158742304477942443294269854432929044455283988348677646058301528103175433493921632134654111409086445317477147498629726958020154786782977292651083982402467987891629219956316430109458694378219365133819111049682926615685501499149557850929428962075207567974605157330529419948176694644658208019932734160654146224207250531138568285658162011177756944468951046614417066947139992267512599033722990665822591904016708755586951416251931597319093671975909631968674081269620998176455532216221432390824210758618034124939423987786912978875545888323303847836828116951104024868574915831500080737786901732119377651148003955428115064053996237471198906874848465495936183209555869008907890633152803258693213356944264216994008298682751796769228328859830447634590084093446709479017461388593423415596759431243572804674313605781723957535733463362272167459271729296243418586959573734690555637647952138739816779099470371752357180404499511228880311092268347922973353321564692113830398435728062954192693992849304718605828373090034528724619851597925600637417654999713299180305059566123253410046296560237854615977034242396903732248646035018781422140553158258498845691092724705881381251923040212822412654292206116810575670087941024309084363007850961910176385229098700131178271833127791522795799354195610767382859516461394453148291944887046231488959724829138028572108561371670468664730773242383570835342870384486706297275755166032227486416719268821441351288652554754271716888341644991305537225426126262565405050351235134515749488209229470607860137440479476366911522874698650090987566091150992330367617749255426663631098767348436066267471682276654635458145239062199276098520088623157320322208791222527996549799286871280188959654246843873205456138272050902838756773150152555782775883213594509188028994415572388028673622499882290829073713923816493644240671127850134102660459440259607253283584437403489771355534984628359826201368278530346326451181668433867300754172891161710456385552126058397259216347619065208901014048962300318107770048546075475802650645694687515828762238326794963058347989996624671422439724628501886314762804770490273445750558552150275515918716987354255930553479552138807341190740819016689764256611146621315902946664302333484522604279365118525493297326340713177441958804961902468545449918340152032679305532066796050721947848923300472600793654867600718064129043698908563968594019618363116307950145851967254804713242386293391038503084430337707313761292645329598112762544928579091507468034309273766222061511089409240517596453529401089802750359245551872925058605784975348133385014041671262840227936353634200543089820495631986603243370472458771085046622844452901482334773564699216526895620554792995586473258124027424843585361717333544415472569920421476526929606593350940921468078639958074533119484601143382764020922538029518678705255212251843470166399400910994483901373655331421643409810519681469005801234320808275901849237664958312922064012222585076649032125349379249881488255308318498818843603545270539557864843364288742119558113177238339005197063992801731914866267198621451150964026898009786011263702628476398425458065577996121340409684636944929544118178177748575714203615757160183300159667396865402777811461826487647908896074875775266173565353421592911129925205470984523805291230061235856394230615711149361525695770817445218552264746159232238525970610032692799007469805008289456955212604129496547902386997805391006700377945092113142750678233981158306022477378367085772971158836736318101895878291833853367927898202762332632063270137911180728573169244114195817010506120412046909617796649552201210161604807017241209046185889043967440448853431171962430438706342132907958086037390977195450884594087439884605459632041942282728957444001854536184351106727759074379592836902781377202002903746398951804583971989582126665532694361038876825969655650432653142986201692176751460759263134694944393926825391441414595188515790162930211009986638895287740949163423382361545972091871621704380979674504828404151678128704494666051075515975692111652981696460676382973814657812247481332537903932003375670690789276734124536827600760669782833824256420888513384710572401675887864325227830103267034465696252723848582856946849295642622486483491013133135870511363253061492939098799131269716033681989911927580053683907117064621140750986544077014167524611250212721156310506621394292247618496240884825257212683742988550215817265735598652947072353433531567698632204295278512462698771860060166165580026922428437253321337496654220173456351371391530045961334334563786029563172058404979393106086102086400465329713609849545446083001508943298945251164560602526824557135177823967915130490356614890732831602403742600883137412175486573437807290154169299859401071642466345749009991240077750106522991588546513271404906789047587357224209194120779653643240631190780081279999391066597699758035837512822677610184898869804393059516121125715720961619075129325390809126674226716224328435143927260057448748222102771233279475063890540888140300545900581422880618170381128125452488058638279098670111917552243788532309353531947353134047059559022647569874326130282168724071661960089081433659986497763315931811210346812865463319551717846890858494257993624785270950668619677177587144420282937962608165466683654625727518036023417401650076269479929540585432605762569971195169724143372738098839138427751417089577376946469552632865069043599097807520191246989700279467489586522667503763153883178714604613451952918853036371115611337190194015541880853457121512620826857897189604027554958182068756482131978178896110016097204683866671151954805282021287020256863805590860936639570023316942389980307565640970038080874832555090294254093696462335408642216916403425284258479452337883933268694085601105833404005918901021215810937368112985692230244876933494495777789095629399207180992332873976057576540366222393031213199761632182725021840805060935784629426128661799810117213854628005554587066011868088968891922561761518567689698670352019338179582404894405100482122861170304255803201097104808046494839344662652237192548352662969672864488513963398196897798241522765379499697059995941479657312878309642559447697414256828375237780976882138660339069591188060112981142620357120359458587423710193856533207362263543823609500077181660374576849569926444664058820221624331167133381693792413888222822904302676851580177027386643282700698038851978252931040306962994621204274524937677218391731029471077010731651306980585995287815256134166024010686162147928397740269293481128085829776029359348945585462307000053470899889874944150581870118923858572496769313054596590984357588433526196099724459188555058103953383568763566428744786103535314085126761809532823692250297601279666410546999247785641651247434992986688844900409767693420821005754145303224213971739486985708890408539057678462215210886482419909895202677299708044341564396636329851474839726253968507299291761242413375241392346529199491348590688922072331611596161001929450776359737944224415585892018498873016620979026956192512216575904634397021713509472454201936776027465730085520362860375564436968034067643424190312275511839868578902547489550966255133455383754272251985800367590043527804414557525142745839442867110777575994830544824530190877234724924100060992187958601662405604674573583522895011728622551320248837850705076300893211522953467473488211734760747600486359642618489530563340130644520057003389490724580883253430601603986240187321814197283249206144943037843817364942431688757012638965771438691122968945377670628731044342412623328520174673444611951755958286866551781482239153836097475795092194439499691810633421788899222933656988662269344855103624247004241427624339773700762546334520439628036724886770408437708400072311204997994950041958178429209059731377040771513554614290919176752012873785090818013396680536944435777398702303261326686757896173846985417480164547855551988720875428945187351202274222559195115611353072094650326094429712235059553705454692667240467930923192543239269666043807943164427556044448928892191960967348174874424202346893096110011611757879909418831816047908546919536572236273270731821339297789207241961516355241437070615069970301947040240108232356361938814182984075415763354481250023439142103321398984057338832180513114518518835749021829237877983016832888137240868605784548162212583895000741700408313380757053050580310078715266943908197160278263611075934429421950552636602800717736220080720755714263349380535836471902541069629186013489870488963289449488208871161453657554050223105220488202578093742873829430574272087508046057021456783151162733719987415320956685369779990594970986479592397950646158604970916142278942227251971240191502629799259289325031858721389190000981165304357512309622689501848463419033683781833395807172713144012680592774930208985132147701547784123647315998215916597837557059188371734099952050364241693127299706076765923807055409389478468082657250147790427167204789396570820561007727642656340946863221179311221592000869982649664924377789705608201030551725765787477838126503204632526592852448402673899406019897332974811917615823516767455047537139379917936779983364226974498864235083097187457360159082587494954521822568309620693394525712234698339084633498515559615445793804736344986253930661868158321957542586001670423289519271996150690327440015398217984993966053986433721601828050925119340318505838141427972502728781454792973841186497758795876660266299674786629634113743471271624957274214182691742146642249941912383710073062801886989863869845503751548532974894815924351170044001519575174017214159467142772117351125323415042178167000751227323757858438807048443411320834225715812815257173095491591138335269052683362193276930721691557833109247205332165186861255229445134088762251088466452753969800877912485505897482523964225445563334495934598051702912187555244624157985474228655733074675601848009480532715753279106802085314322700670026493580391352796253897584314795743552723024323151345535745799100459026641207143880149278716854866179961922285463046534999432263102783193095992309622358895366865242069440616040317767557421542799968449306601613277549280470458384276215434218356698034908473753620621712582865623627753073392103406775544206993996743133107602479509248751527253177461054865649736672915882127266154110874996716311134541337450098316932530505117485767247135546782986255621857155742179794367928457025253066690190904188544824309840086112244726165375462887374029264635841784511512997114336248118450735756184815367838316620532961922486613325406589984439149878576404669447683393164139070065846328153478894794283913340190593120208102944645273358516806660417031878839798660458560670039410151875411712898241673861852965545058325586701874750734769613926883383424235248183165142899027405899599994311183984937677302005257136812778755486457569167828298172664443356868590173500520635328628392738472358632395453230583659258959033713512378627142961425130354544163767787621507206540001263802558624622396325108173940381743654319064799591798823068948086713790081821862539947609187602389938436709497478727875100728056178724455210900052424701849573559598243306122921305002853921434734431531823218872832413946105262801640351199844083352154857705303046448249400771789888076903034110740447960499892022876073486343160625730614888174038144220341742053951877303158955517598267711020903900837132995792109798544128739330832836350306777186442189203144944368554744402446036095135752262946728541875657287748612379289651360891782583829176861858829249515240130541293066228343303123450310983587996851324396737296285226995960113172506400627886994112808145042163694456736265856119964758812785564344922211539701274062742290752767597527666492012295143850678711800787549568136525889623731679023934833423070245938453865220343688865381193570961402319061830982409564528568968989162660033825729423844990026269610889239130158900551969294100516036745335253136558340913481607970973439873621523620515108229916038920610437254915205234728720027775674490354947269156609331269971201727488464780853178298804181455873695373690791108117334487285817614677632678278426801766857454389464985628653193508147637754465530600214161105981824911713278170400332770220243130565980065726008084053229383176099656189023276791392288009113429973052061116929370093917768464480629580586790046035417973232228644766423464290862141950165549586906383220623051662194606738772947803045566370118086425366758992149307362943779026302883452046621872871572645382095364153179578644408714824461876516290681033290583451794045846260819509523972438273740106560963316468899160865573928742472652565789266558060324257491950433763165350687940324471718696541583886532199224830821025066083619311728510269297887900433631899411935776908542928734243525308636144729228395215758222468380974786880195695509242523067694378637096561218164039726990494254448906140127806604229713355900704617015498117507525811230020512651458800702598217667261216543879386118100712051563527597361017629519182426877959339131854170220630552787892092714667223252556743397492678710887855127948584475155244271527853261493972658429967350142590974038465643685825774988115247788520243805423402898365638692101218009764592120621941141208453945897992013327504379490108948953296905810464231186893833810236344580758317039087285163072088435661055327957917179783848186474250621243573703808584764448759173269450807518998146855232264031113576127706041352599192265795614134987142675568359614220115704977205377019959124221974296279870687516202782121012530331119844122082902555641662857666998132338340472553771565141749589801266265770019008242272996792873688694839875062849837467460431245081890414202949032724719547670527387932993782607138776476358636458634176143852173689830761287060019917383286288410124524288545886861936792448448442791689912065869128996819624478323875899978408962945040488563968205263571161241748706515273105441104002649775588991460393981410455661470804232840178135945567822504523478015903409532668646329936504064595172102667278087567013087854997992529272429508329727694013816512623515340999265874277356839887413727919625856098275175067772858835156168477702372347208924556181989113513821432544388805009459441214157681165737684646533486832283752158777855650425211657943755271557966062591426383486121181378322893401818661333055271944189986130361959538736843888009547032031401451058135499964509232493944349768205554803304518229018497382849805298452165785104833931175910148065449561558651515784937647993696164377988576328784060957755841626265386405524636008486712238134943173311613378787770374417768483407477086392677212613714934238238945638898117048750971912888667162921057100013784157249443021012611698425174794620283479852116769176688010632908169074258162712262931398812889789464450596815379036488774582832166783224483025517413204552129668837259728144022530080452234606990963774285831763535577822860276172590020731197569866474616279826422613750411078706696651597278694443228861434158675837059424708798929149181511705160958660846240916200569073069675185844788698583936733911973399024226956585190750453873941174618100297125817830123139272866725892089050081584282227280561048455091082235203562711809536158653043206873136272445952608838863503703172391753350064500439586934083450474481973968617025575813208988567580418626609647931657986317746616768666454060050990347841067026963029215228213721369647724964076930039967177192220286449046674429251443373208296759383684563977939284514516118834681291989986896112362866027274650887662192801508806393733645376444153129759111860040314019652822016011487990887323375055820515718366068102268375375144554541476145299549194723834271944362157011965507225774167469013107039126758206402892936148639602801158512970208147702442167611428787275638096164039243392882906223663103321513820997193720464006738320514382125166070723171789778052216224902023237506930051608519127791443509973359238384278724232434078219754594733462302233152318960169270986703712617421651364838531152348263726607250534099774897248165336585352093705505308946757844102898392653574005292845366480344862060042657783043171111391730505038285022677601322789454361185368264110128601891630028324378273756236746429753837891762067643189204319300349527081737167622645604491794148742968299442237827669172654722222970586083378945597562435017332977283603809481721280086618472194987609512913546024732524407991631268465843560808216902415330485616019195714744982598034556476494583895317688924616228721219592776172082364914449050850483642232104214044280526929493255308878404151886448978077116780271137522965535587535480618006596867416155684909792807275622328746531041940448193695231855265396412119902362468842832568835913721877117658782143887052002362622970115354491650346503403403351619160026325930230828721022771631648919802587251121197511152489738180673567400987815696807879707958021843023448500407281355779908009298358119775047564291559532385697677673571771266511275402239605885470936154832627997592683646814180707182771129092227373111213960621378064066595021063359183044956946911647025673018516566960131677428729286413424606617402538782958879712357168843892970786089906992933689482154278033382881896459420065240899970188033252106639463869715046036325595813504755538519958633941704352477044222190879486002244411448875336535344844290526887067089585243235186257593654415581011512570542174436283489123726874372884772855016404434329589502520721509254510136903320896837708506963776427103216417348409964597228805861868742666848055916044390283724658959920444638359734332782506213723968190397487388824882231693607428540325315403916871915747794171814405170448586706226540165274795479204356139133380694263385923797312751054559789038160790293765516222219630889678097716716258050668852008977362887327643279284954276924763044362891799072230102845722521192926013430134004281342567466865676683888533825216993991909796042244441996330999262993892661825264845473029364818885174653164323888732919650899570557732093658401714947531942005430847457414808522581705865845705292852876594773039389103222773911427412746953597537956946861334431913810344801775349561529029764110008276485773090014664736807612249910061048574264492826889705744868082065743274171241871088093755217209782426513094061673791107661950938741792131991234514156542656581371074819351697274847893831368103942912270717080993827141164237792114681950572488649355363446069410652019882984899603156399037864072690644404292345674583146595797115265653045366370049098933809561561125408667924803980088722391280406686334614594604976136382430621104552429398614487575386888289026380831327336006556338132912019654570525780092782554201657702331509365558109136751419937323908409712878660314363324306610899511852215743152019973637233014353122370151815908569615282813875456355094583002104711488808656830389268226090310528229147315713687252373819004497143505142688337348005562824993209154169420376576874155664272296440552739987502277344514432142270349642786366903315762441509158593857638481711007515401079210617057131233738146485121580245035271974248765193167462267482469298651165957248769493276947354234245394082557681202413914679471378332375524156946123599080180320932209603542248265197091150320576013229476971853674813807550540734608239378156716410680887627746389203611100531496655196494412439816173081515612379192488286396310104179564798639035498838586865925675263850476811123455290042832921934275644695624143739324377937176638520152008075718972029114025200093678945709705002220025043537816933850008930187137743624362122119395327664941031323549630957999881476113408938468388363573583578955855942820005013819829893388890929908348527923166633012304930335537864195384229233565977080575477374587797398856742434679299770780000985074058997597354611837498265415029529345614059480782266556375432869850276577140252318575099380583755486156044093667107593425128102320129789831106609600061435285605632400207809935602465081536457196968417740322941695230651057257004519423765716834125446309591250732488725643050259309461024773143744983385190515957362603078514560799204891527146348288765587896511967769431925352313719336945283714612480378898218140375705399458868721954074935337193106269376164461731452912533888695720369957749670627591792499039740513040575601891221399952998522784623089438573770635031597145839865394551917800087046431404532426148408970808732535241053911514873942279789159938110148287804423562147255750529848189414838919390742437335052144394023277832551891484577386931301586336225559349483590836348062824263616494388506857050043733873127643367766568719567020649728411399459273759810010466276110145006052470548895059282201768253945507208197042739986856522019127104800705161845018280308465281471059719591253353697293560112481743665335170638346937628583627525145289963348532033783779510709239965496485724414525962470322784518288276286060200726062636263783136320636296185898503538895672880474039210603794265880202324156300171902043718739872266214626317840057502509354883988781465630330811079757072048170904929142984261789046227173717756783714493644991614018220689027594790449346182167322882313668956074887416255673480845916771561433664157448590789807924153294767774307029171134821398107705158402619716317730562490906007012527280442688216721383448035035813402618646018947749208283480265412775223763020005617739065719641637951415022482925536424187120552626016880303908323469258022823555792707433313766496230240005207939244020705518971684563600301207158867979192636158650381782850427854323711880027958736388378676238297381146589212932613315611524580312563027241271794245322748027465259393277038386459148201948485340147426882038346810001110834439293511209274319580212386549963662947655546197720131792449954015312698331241818050091926982274122316814859969299564314487293329158467769200229079993179419534345346660125583226572657135366854054441460562373516968926365060443472999888623211154461817340441877958095786928239534836291063571592870610174176551435978009312548076478880937814613730336117576219886840421711905154071319148658047190334123539625769230505133504933968825074996578812881995309670351653410694379316262279988944193935799056407336912863317294524112483087737670067774908492437932293870101338577272191535690553113906947523275530220325687348559254267182850646569450771460942761367674362583137011218938620839474184124468126082912519363450776675710704026866597571928560688394944176441728040712997758063045918645440697899763240719236321355901973737482904036685929684687244437735228615868675838882470592215213737738444093045561362738369388242871079831282979879728046539192855242679484278605828626838939491912091337578442600871259663740338179762828267480771587387653753473224872662026588007987547981461149245956701207199399653894488724649548357332541127820468597265344879664288032049218271048254943598568354023608947976620588397177313445576980049479926885385016112498439613408690962756270442551339236699398521804962395863753684357850954191816596605121074392333947904907011213081573097670364705718991256254712727740666892172280091322623048858185993097742119192512802641999685222587435103115965632463891304402295022618899739866616551460828244534037523017953442570528083335007682920898094831098657114808603185688361364212952082800477308428371133847647297194565294322808321779554775965869574224248329464519190945149466846803359048102141034368756609369746130836532528204101974783477844943384886814754670718736845006316936078747960139008236078567370211354467808821694263821693820831510748671442155841913080228781336594890684817830052808198506873026585759453306792289336688822988421321560953539232934782636012764680964050215929869836744372876216361041743180310793561478986964269149484005015085332701518645368558354647306857103012168418463576677336038054651034574167363182837057620925716278099301091744925305014149682494123245714564754461158287343177656207497768315583245756721007891563237878843773261427715074862174516118849110244561406551973528364455318465667942253230068250379722001115318107687424066396928584801927601983521834113417814845136027670483718500424421124038394292636229288464710678682539240461268840653827026369988972012830505030804110002721450393994175528796264104832066709564654466172057247835535615562684884163630632031685267777741754717178850624129576629491717391192217321638538577489008079282278308637853725623925101250534718109912683752310628480751555255844745785282162258682739394835489100307217739793819736431035968596776126240858699104875527490224992346416988407564248361909963657210227570175178361729311299525396532724860485803836691990474893686970256738533028230158447621375805913435241305772594656030524051724489714337700611661077305234931969742197447324275474814148220120788059528984968029405850007696459133324834160606784764384308118944905591559072327325576289183927461137440101521081964008761584000925161828782901757525396372311868265139169222230881020367393059468494990233018824770496586915146251216752280714912999852762797278278056914848706819230273064312844396002312340084995073902399429152987202717355510275597197950374744408812127451196353089227603265863500446006549129811743000696890960597022558042992855043053241398370282083019464173967914282725790961843381368091003243662282545427042280034746836010005161733250706305508915106869847230819944408154362511534689909345315710448418355152084205996502402710524031292706824030085034049154110381819437184936088961540300343329575473826776882444442107622003816112023030573668595638650456905884651024879916812319317189412696559075906771343032277691568233873380001843683461906713055228724645858700849840733246414830237311435679105373347113837002874391200411867513243043328300579966463649401506500636755135956098448258149626861312731182438832127714324972424464156296272451849854433679012566989982627157549503167367302728867575568242815615947311997719082285746727181183912992380626908144575324640526966403509486619809630027952284591543430592766875381692691138315352944575505220105899749700620162490179059488481136665752146666752364732916347849007560334936069464401767999502971270602898949109630816798501367520491123715270838013848023645681698422263211828531150176392033834905623197534450151669987036717373265479902891211379536834554306904647491935264598396507716733188429296269136790289350855663571750484523853959124886317932241941277104750402574330584673172081354452751124833067890080174899611060680657678810051458226020028872156804726446691311300568351772455033464301932553081720565247097358235171209267360206869265263722674374140221511159540647901728092149843820968529572291894719516561961662368834184098901224484027988727246355380261610617901200383799516830924079250650720495872988761019383170654416706715725200952262461413913791067979395190669388303210912201661354675914203503364325001762030732260112836965676127875234031417985210890271206300047434052551120530018440759322374357244040978818312273116969053239786030779094265915760457550237587892924683421262732504659044414771474825264664121846449796580541908629784051144765673826911315462168202012851983673483572387708078659478438534445489247729256431892344027127939871410816658425993120049952307439742580920900262770855718906282084643308073339219829642276579070924375749649511305823119437521346395942590288491229493971528150882202283307136275476697215242051763112465668777229057511360217928751850436646751332971711743017976120078375795537460061330896615940188207622147641846571854727471417533557063171240544904001250268386254664845793763167013151918975124003604634008296430834271891255931003134479796560063280850741659277076968387870085275988029209607891365565332343084373376781788709278329990519286151485012574572423571426232388083492839042509318004211404270886616524654439398373385770909809400772172502375700238833272152947614561130644952304823157203366617375007587897714369176421224062199787734612708861373793229159485505727634031116265491894276184173110326379216754609179600238387395530839168449554748745997308215994104593656035084605886991816120256701078835045805922276071048737239007881824786544205730429272775916062785941497173202183724287734556175529937412614464614596283340953760996911071275334763333557364347076648018258999371748346422157039603995832285451356184877616858636776329967240276978090820358401285511232298498517576424314963694431677840907629496980382017837689370766470178771878806355519534904155082046436523990895688959428880626329748903002081324188947376514932617823777321002588783487521840279787282812781001370955987123969911478052102643560001145915751292944255659461633780972266917825161589886844720625159847316567532369776314104450387187272976935179144046027196046567352256049244517807505655914043996364554496271820958837818312166332138297568148855239351691437261982160407651309658629247102005514943838935631276169327836407538021582852157752244363874022009422681691679783505357960972569123538430275663669315769375404292537943705562729326748513732346721461527673846125703751388548450146257406213138119131475245021784775116460186600569640469315825132261338577418980055092588338439729604865068335664938951824032596259439666017234546296769030831069439873104354112200330126465783490535017135584662543868518178614828011437202262592466964388532454786081940012103689285925383128418820353167114599556571383447167372159143169613824141850376453600688522213765731725992343979713750853490055637145715903688687663985067793310724193325491066079963707288250440416991199136811720539984645657783639469826138634105114201484126865241835686454905825413411936339587930455135485034782276529614448347254281885111960669861511814402442998858685726272781121606878093210796538664184520254544364868912944277161823889027890541707933020253437608440449173443167102627535955299431596133447615491883012297436092207435761043832321472234369339322077049732287095714458192295642581609899952109987081111454635458004992593305904591126864626491639866983455714313655019912855754953955163082799869561312917590775915221700851615059522531217501729215419864293155419446507221610324397879511161594415472812291017570510367718811602073104467831466365099018728381353629590015700676786343699070787117830485341661961709474215050442144945511176755971944078136210910973421096691127483516015978233550671660871288084181353055881063479970857105427175819593327941964169801457745722267204484541125389430015918169538029299359921291920594159110364105542430196299467058523013317265972053574135966938264865637884072492205521610398336043523475610594606891015405499988313971136130344820673009863846255448556702020289396343264395835185613114305898613797468261833771480801442229833370115509344260924869843067232922442105444156651201368720752572739644567801892061059626986981781154981535949389986422004866111191451803462251124884833765084335038112325466635682882459668900157834185511941318756874128349354692652933923826862746727077053669466515394540390782772761089274511971556546771559865712533637314736276440568849955844920859716623361876622239611751398091904421563647191535893539560295577026796405935341735688034769213152311408763669835518280823492002869268048385822137753542502798432430450582650048472048176936215525486847819577408134161503272897899609991039060102167862779686914459656471917968664573558924936912606026472854891353495772561830448462013753984824480885940629058836990760062308368538103953826906733843278942030672159722202543759267337964278062738572036782130441797290111106026991241858601988338318151084372032764077917075885955298355535094609897299608106166154241986914969341048779364317831056158896884070754892370230301255709504287934632890776730219682769790379587442466400819426741147908859604087705091942602906596097130052256978997975052014254867337655135905544000976044876963119945794457172366704010336221137992414876915467519328520839991381208939208662380056692450447491922088907687115880560630515384442295892451749242623206686316749477509071030199084084240283682397347493877892350625773523742352643899040461407826645564846536743716198146352046296350129705224004547898303371303952837939782072184141486058482531722550714938116019065326157612333012232081058637804668374330189693724198957132254268008123155666757738357785801172018961900856873534166576146207548267767637783072167894281651382821886637728350505104733500662671583973877986290070490951796686804327006203912841077442086151953356659146116111888248798872332091850136123416962091800683190082153091392352515979500416001301596480149932224818225796798497278416640975474934642680405958985184394162851740263323825581790933962245308532134327493908667668831658604445910651104495249414070749586925548047919245493616506610112458110510781180414212670444225175964670182596770684571268030827330968766594368727390393513046430836461091027396713270071588262448414119683230735379347423198337766945220070324649233681885664360617739605528983068096630319877530614668005621409003219839277931203779815352022706020463089695040812002306918664044723432791167727628677083710951572873932342184574710539039748873019000779787559123886166465290529718012434462193779663769811586393099514931557980780150976402645703238447127450421920202737198822041169565894473642073604170545986964004414640181446475806592499506290544356243475640284354301525323497089473509374075089230980833943086968006297566500884181968556091372031456447654257270571167340187352178681070051066042600205827699401391154412213679985204328471596092141843605687213273223434942760586476509614812792309656161403424606717021945836425920895066122109594260880315684992353117231054790023969752566422446150333960087265301257947641675906184878968970111414702468385252464489898403291785534755337052318185917051648234013895160507844215194188204789183273767768684795936040026255699305715372463486143090307933904064577881846359191561953508386389488247463178472965758627769791213128966426239203961668734268240260440835934149241456184050973288290051320508292607019157546126650042907722977326919821215100712579358123628647338258301770300466386407769099519178356774520745635063830625462166022363522143774500233334661799387211926320131827843562225368816619052253847861074943894104696885163670025832329634116045251648658613234922561401228987975412974167092003938697912754426806951641033299214330875581485235230619070190731711480850009199331454574008961721016058051308152935599173257227481733203553755716794579632454025618336685272467574666237328261740435391660789616306669317079120805244930516768012341923989871216873172194452242235228458215693537704213076666570441504552174034118267568736392813976306757557543953256810921477411154673934133980479117258697006357392801614826788724042937637305627205392902551375787065277019966636071384887332085696678895101229360797863373488328579185886807726071906279199128699932151199360712313866099383577360050848672628537452700872183641021242965719229964948513800522999121967666782040440253485966191536563101496033927624784324407533250459581835174171964357807292369401947056889734133977345482406597870237453711079220438341089332197096314189018044920681096329807067745278415699436885418278507723537848392330774302976512059856077325288573994224497183818633557715659233456952302361732930231518677313945220913271900950272269075258189618361049241801565237448250669012469078512697218741716206897132682622168424552811958119589082559016609080084837644864064075307880274646546662915233588592473172507411509711227048330272586452430110614717066138578687099686159762411376897137399439840036726394076325515554402909601240852729351400721514788189805605878357108944092862928597241260897203976026368309612997699031922177743936847856105806016331002940961257171945917239492214491089965247979530992178800518682853618953998094247330199607725534363911542731307402121503067581788657113442941182132816410824567111527470379645589673548552378657212648230616158861947462342323203124847091876652437662860621724273842901291575132901158808503913262355860289803509515797403183501589274123680270489612708522613132869721337555695430818037370417371709005775731512496341945540289962808147437718339138263867241581666806254692301225982826091825572507542968451904491077870203918168229981227499547542110658492994279683319371339875632595446696969319954022016249114648049194940406744734273901947459954156527146838904845170389072872923170786969527036128202945077268418797056967237260601613361664564952670347275254233190098812097366104619750197384881080007148399737587919155255098772023012596033225630719042290742901912832655799595057940133988771651123980926614681444304048283732955182716154057821619453005724341031982682803607456869823279054690056194962559142942509105275882159197259244694925954186546234949823636078891815645385692130173228856238297788301918646174400321388087042000417135573836564421218406587644980880635321405424322716804460069870272363686677072039130432194322396877858063995922489150546052905987041025138701380000877408295527397459507216342903254414508233663117610382642527754007861728275459730584139768169826030620035869197667538296742194740480878320494769788800564183459706228009697868135506398120523782232573110311872029655507861524961627738243843027905860276643136348379830453094597698785672866442096811951424744378590323583888733923004514205157971656200107170703578612370379060753689892879511441334171020952056131679874437698422147708386464842305403928380877477634909459956314361912046940328016409480601098334898242321861739717786667165858278703808156968033622043960869767406429201927322266261956317214107984867522720567149746730862940047663356929011192294861611229920923869268038922594310869165465487264643152794844627786470252480462798168031090280073404263120725595194801874781525818310139788805701510206985422043703994601177623412386381794653844654298970331657671434891681696196293154078100209939508428046595901621928220900574992299913589833615056344669373525098986987341113327431938494535278116466598747109605682112968810964298309018891092069815254395861235933436435468595280644676096367014237847259371614804352550409635470766808018228012843689872650906362457675192664141700821985193501822381071321974580416328551680419120427794905837872071581920447983567890189532135665412298352662111355576343547360981587847352398456989231580172992613683541576853501733777687678675805570663164009549112958321076058061673109352593174718928389444283856099786130278306503801085623085028283309264798526997407867937986432667946085545581077291591359310633179875097694123787224492671584028909518504641629696114751766705702462526774570439574011720034482740171603660710404390538754078597902086944252246140083300001418162768544385989696816846484083725166912661320505798865790785204810763538903309590597981558836152399073951758548242701855354802691140260152296279293111583441364165402772757047736547377398372675276524531402015840787737595968372358297544180500268560420540432177922058107959342686178364483151957412162452454196011922772858450597801793008344324340973060873980032655440046642514480145096262091541229951494989126888094797182096127879633807075746412529673540008774654695889811777194137485738408713392816321918784501759916711015723890053096163085154565317434797917432612621176597127611894706755099825607000879876471554552679760474048873646616619169673144739623378006212597777313411184394736434254554889463272036303410783943712942503623680661437751531159439457916703883950051420988171226517959805285749696641464556480342701355262544785398055905223643341800313154256043969691839936306037889133575522882838700526927243169586734046709546538099899286637243052723222592248253192908779987190108937978567039138521920403363676124846980206543792936956522079390018289182527293758477325093305239190380103251311284755105792179281341282790470729569142308725608127324049064290684050075095304076089551298474220644320714754720734947458135461755583905832225261124073691312179638027413511434590033716955091606540959146287733058757741765209363617195712428084430590888497057612171720327073271686166602969268765548028433820733600803357993683539558803150450808237774760594203465474244995847438820908769774212976807784714062144160122926030234127257600705548785061686781327975434273400194881546635964319443294864574916204810521886715771386008529295867163805056680256516369188631438081783419597160731556040661734836135014416831572711670122740896950392212262970403969259722853317620389602276967702296471404094817869150077298232344378884887409140505744849165870844556198927495099948114872660805859610312201041943638462604828139012373879963514523882480378020722893495533859745944104580320648551774695736029829481100266889547087153637367551594045218182501232133992001408043106745852226669718876048071857511843081680103271861337485900463504419185843099976627932516206871084155314494891977397212100858806485214220372455505755056014318106419579109580546474130933426669882285816261647097529932288204236644569391854412590107626942224282246463075285724527655865749677444646992704349318571153761233672657062800885913575279944839842903319005427582693141794048031569156328671737275367534177264905324597387144957121789557536818836919840809916703985439773556477095292620291786003659234911011649204307566016573132832924896211837210684387494979906002829270229548520913473456177069113329281312364800639524634440824449789580019501724826594273047427301656240873587416069494360842475882931222094389026062407586995694386616105328996733375943462857366553294905581119217131418767993488598749722663930994714428990868936736652454906140354538787129154363936942277427026792382150892198418287960381314242690543988651008653516055851666677661266062541522153194160390209620844778623085006646675257217149117767770308416142784481200694669338464676215982128665580263932670801791565670476102540724796375233588323340004161672721367701849643036521571382281618263285895278009522963231533597778140375291111455444574320125248098047870474303459826705699118835908986572038631560334102472908104223170889564491269987093188584079688922089510100033950698140346439606307754220074830410795340902562314519373141655914268827291471542097215496248025218236303368085034811596393973305398992115170534954003408873179117169061912907369828301492397608246366508014092463404220145986159344075937942184778298253312181171848444959006469523332536962634071447365292749463887002340308185985958275773798104794770925042751586334839895939989572222075360763880311874340391260279694111476702364792216626730025206616137283342411378040005969945350409607403224321490826115319213375365371674500519842884388891693104610742546322415300025888003961565827951490411020318333704975870970497676638628754160260237962019928552646406361754819070276883676195199890489879053698061244391681007287195320771137665429796062699738074523259006941121238364397989495762159340322554034910674350697136024517405426552079421244393368210242898627904508038115939142332724270366956160052724227868307670021230313495222638389413162307258678058697310404386083760458214243994333591773969669665091604218925897914113169110323463628277835758768455872797146420854094658532138067222298302086614810152578009682936376457909789980734762280330025871310935290538659723424567749426574964452000519336818192528906723775108931411070808256160259830944663767316420797196577780020231751849269593424315258719737740699368557069020297010664448937162239260413833019477657865839880358542422392506404539968300094974955987579460173072723067590422934253182066768771254981926004782987440820608995698329919576063086331614141104942907837232782293858204939890033006644635724221591586295963920199813932643287871311023193875630584066330711862796476625104682711463041719028668461491432198375829107440208304729142634936869615578708311557748812437288226703881441436228464918471343955913934647670510798009347097069795158849899609952807491958651613925110838511366095144967828376128890878585287415242604639722862279276911770241590415469999637388714673879185485492046930272546179918552705640547197557072243516854891347252243067230133750942054550979477889470127345667303667380345999341192274154359627478660613760698539430374837258894157473493381574047611187741793054899789853307731779555988380346512216399850896482411307144324561614167871904583614705728453821091633079248815823531169418973493961474096678394158257628706995315915997234186475466501416458324894426191868961788874039926921396059207542853919949003126090705166118012240024888678894544658055566134108893305863014576385459152595860462077376297555840362607367764412994366508455948784894831058009350519615256036890254763668624978638781596611833074804090689327328901369912877531985736432307222717197285623660155491251811522960563719884524612270853100943590679466805735296340484250086642916390926196108768005903623448286789587634454295276801837467913548399325149808521612695498889404866499787769900572642518266020833393273268740875437234171138450134954572804282280029013221663823194294718425335820252501775675237852055014519909384097963338223261304096681199881786554686568880068888696741944679100111867365798336235982559785066788610302841855003792984799341937095700899334514186177647354276091991352085156594482403062066103450352279469643519198375357444145646482812147276680863015669500836382442803098471687923597557731644536167793493028945453479451419258403297217097852702616335503295638960785973570084425480542245206507372147605399540073283132249833864328357935499323271926399263241673341671710717233840869257488119212391050035618943717142194775820230885926596684690937961782689688285515161568205584315519644913936187605407697016005961027877527109235624603552758474635371829997745273943536523121130664234653131712829143291190021799365102802886390808915743352967754176244861488078131730488552755778700199682334596126758892043692642804086151135399370909609993893797522623552927482242604509395584568742146819420897150224357132017680825121079392732375046405491284388204070868528810356713192327728309548202824975681237053129497097073688251842931245526806334610281879352802386132632697416568954453317710276285495515682851260646904453975398026938937978935102418363128276154216158515833427510944807227296454500327526947669149110470437199664066239317445622581070460684533344008823284708306960088783439345071172260673884010004311438510758614436691168509702286613805530527948407993272403093154754824595194010298956735635098663813549654008943570005847651964711448419316114200496079089206498944073896019950188974418832319895130055543373625769414712204347458822583178081281701876022818282803323880610345904084896077135445775744235392139633325474990039002914500590174400317290284278102265678895583142183148505138335400370975554730779217045294920764096717135025742425132327018777403045203758500667870440855466818013191072618700197063279867066124674053822611366136447595007342244509627782840700871405771639710948968659477297686325035472982969761595170115001119645839339481355192903394734333786160643029578742438211784299554669280403812030663136460555690679468703009804368087041884976249506801203666388021072257307797416269794928468924486942010458381282959372341918153096824958379097991412171927892744957321209954190352632112080081722182965858037143147673569295722905725838177918218341555838372538932983322448019035187177533749241513659250880447061067473752169683367157202637749549821537702026691866502053474212375499046999792676155180693489929977228959944025057729735925983069801182696174587080212793221658174028848789781444216888245569762256100537105512038755400902548075976737224063529983026603901896942764443185902003156776964405078327913485620127382396604602033536729247680310312954313446549426449100792202434921103302164513501389411553884428534508483702506962515669791911849374962170415571198780694389997901071040032602874597253520673050964911534362239189306137405882315100296729069036228582979197372285263225792054321383905620034670360750155000764512959079995856402600096004833594123825315408531890301435100615982711093683402793012039165934392833021183858333545669814154594926491071420651642835920720053821637816138195831567442103155043366008092976939774744336607282157402137305476986053324626521865055037495788147685878021973650345867654271656204905931232206452509991327775351769702169067938370322961676638342069367580842591621189260006092766774608880705168007988200638464847911968329940156075619718317529272263033754982817424100809267104107669719346480676406768554389642327426138394176865522882600746786663199056901922449365081169162072313241496196548168142125680268206827000194428581838983072147400546550052427197408302362303308101263550103568175274979111667015616323554867796728785865547692944116413217366549030948079477533051641772117284794741802622091207008598113229683839232532265569519047820362442966465052487184253741209485509867051792953657341557720391398972898263153687055970640573393032174501247797934547128279033521966764327107240000721370404146225078620893581103145850035494170462332456806524028565723836164349522887934520570441701240069771679365820410775419967646166938996251011328144790032110159138281859048606134413221129220068359793718896008823456919679582749396241341340146526817214676664634577081695145913123507514641402959949141459255122357553246912796876655601420995249143984267831203700758368779021654983129609366938650123522925368880110234003171266103709827682581383293275283092251103754618431634474305000211550109255787423410864578381842092623863047049680242245243989184793069851268547426936781307115467196082327082198653647576698862760254195072187265245715296365097905629178201198905737528744142311070720750529452795848362393754536727976459374329792119724658388597898916292632010240961447416644173690803135157945778177497445200526295336750101744350768026020353432879875087164710163213155024060130086674382832064768038218905050976990492455824331926092222468617994740535671595516326791907292818811905799097991819739329461419383532677025445517031651583429588612602151237667181156126124129722879391896459256865622154122524118079082372918172037291217837208625487089801072007646624202336307282776578561392009037645072667801174537514209818449444604790837700505083594831865282069214282209290668606327451435630018756093147216263973279998242017814180145659607975208086308937451628880037796387275947212073067373345334602739946054078349046912995527450728288265995724786038213342002162120810141094240480770873372460365772176442032014915981382626949562503675502740197890860153366946919834880606715169785448959687845259113646241297270327768390676565431409166868076959757081382777235657690737311586572021560860201870587311019067365874810011192322408080947440942455464235850842511411841743192363121590630715121671251884409169407581463278935323622763451426048765620009098334264723969051564260720580364450356468342028482308515503529163647383568189412392145151215599767623745750456892294248973989699876911668118118541124665328391408758225784570924636954022205114031439197875532478007099235809608296331161869681579091077406271096151389809154279461977085923643153325116025564605976328216149756448657980908968128063141547217199967302181464675073411384533067441536931155190926824662941670411660726912311425266458072892663245538212480350478037269573013679768459588697293713439419999528900071827511948810432436409866156806437670027553225061353917946373699565509028759922027829949254139063715340599978857008121920038808627075133637430755719238739159298912583884871605914981308334332002957384008605713000549359978881782371131920129748771345337756522932591707658079146483319144229249276578357966382237403361032377425070868415005665200218397934526601649486462086267102536345492977889001056253399382658247716500034171190237156668398667410913105835477580513167116181520119656381763735333946563103048388587428114099187398688362069928746946682223195090058547064359057604022971980310895026440939048571340821649289011036546232055018771325297013152109341287733989823454619589395725285839781905196166062542174993155667589389200780942348005169122730332003761709672982194969773438541070506707495587307901288034596366342092551732458200105598928484976333919619346338754184207660067629887710538930877234620311160200077025740638572568139430480701141550992085853384804813380041593541882195127131278586473438521116462339883432364453814746277764599691150753295374621766480323222442743196096755258315498248849476683117624310811912632067690163200472866003983894293905352465795692454557795034893565882415324262664863405785233650875434159617717745041033202268009326730386367322208094047939356104863561178080271864876413519208121179846375422000963161266659968565284800243818495679592668852060876630068624620038182152220775735779171854907235047533467215968371089591274060013655547059944593335065904363159338563337866736608695983579324331880595442319716219677827740037372364530219462169579427396939631500111286634786252157218413005108518346711443019799721907854274731180705249692612040202681056418596474399029141472005287996723375465828489338064513733371302567447462758061173265891904220634262458688237607880566942675200503553528045743165467862308246698552478235038513135211231968198847164661115064688993714392168604520425998915423318875536658331770184301042424263805689077858092071611466970976465741320692101618316738182271505436708962557428311489216879245728121859729790968879997869465230662607609301046052887388737809666504759364431335089083127340327035798185035701685192590120137429608168711563934617993020752142075067628934390239246081159298301388901689395444902438697941603939200180558463473455123142060293456017297458017078853635553277714233681841329806440325580796352552186401430077189861912691691076227519935507740921952688194877272278646436028710956168812494494807188028959190742708922253920560726249678633654426740678608529197107504013377680565659569655961485882899408698123669420102129168882723354741261366144074805195133081019828460143732055082945767893264094445333362654172209034607499985013764477083530889139258115954489458421448991519705875758224782271384073389275144825940865786268869284407962305380453306196827599238924453619552939408285966544338919895997907837119211085000780020872849616416757635638490585621470880650844397304516096008809258630690262215928777793263405916369312193188516551577683482038493726411292307470644300428880452472070648785899029130527052293300055852667781897950480483386470216347592381465889345817254247402921226423830520198921806203203062685791953802394448430123103031074295650167296522696718886157452325863369568454995108214080595315607026559918888501024433657153530418178499620457865422959384191523776209222928789766432845778238841639569205722573397159597704523963320556409521430693788014702273515769968146592346864493491211650490964649660820631784076609007729748089839601121849372934365134521530825424582953171155021760724851479265036174242049447324413544337523022323639126265044618232988216900543550782937939354201662579717710201054744756734062120132117589753278773983770838558617289917009808975068826013528214147212274432662668643887118836138413434645675741580497646856306147804376846370428333558474467044572624989971143564339049515947727588331235311448194423594144542988533709722766920181769612117267667185926066564476753505115273364080430900133105994302827891467773038881454743853433317697562702907825801862097238422908908599723436548243509895350952406588884711319376435222617405927760047832104835766039761948463730195749414919302251859473808281447697530733861374754762636907372909656776502032854144073283097983580652910027313571633746297835374246280549305825363741000785255524875813291198993419548287538607090341290058931670584946245021786716958600819408083757345621965705669710972001532779505459131271464972556144374292111238844033806663797736261209137993922475755441254748163862066972738294475464606559474490987032617426855493092323669069796468665082453070012286954158543897401995292584184684134025840950965610363016214284613293026793082453888483288776273546893731381123204323732464251408412576484264873076886408972329845150942861340845806448342071356062512905189634481139759233236120971617963770633806302104175186295934893083568415581686962792198034437518042471941988393618624365276979031439086910307111992221655158891033730478715861922721338501319439598519221105080958620511199897510602157033476422646304573908905128101361524838188654264488495322537556100760116650669636446435328614772367859272495522181514152163980904079484152858681383167112701257822233642758886882372200510681329598338297368808496617054833069631048644821934735748017791186741308003061774617463411751909336004501682968162598585874198766205637805116497159770980515944210632142647067065246878181232519384663796763538869849848577701534438028017861051839837832124323126895745627953088508955640014276140126299298116794271120933706945821325515767530146966573459796535423272592058122879295545268106135459321803723280044473889294735767160899629543380705368816389099134571162962392715358240797061988595205456324038941292488463654640208421604417639909952545289686875467446798766097808856079681810514066732526893647679209557613821906293765781658651976400048972043933855649188858265001940799727818070606842356987612939873945433991778550253010491111208520046088398889177319617088272646685244198806533885998991021285585993706837575689524072550239623318037597299244822982153745515140131728532465490371777513045065587359449707828162235191693819929426010125237097257901622409195770136721643894352485207044024649226004160584896252207560102017948503595899151224099809125173483857224069004870871800279285874939082601654573050090400847390510288550832326059711401407397055106384571397901101733989394947664037557182511552034274847116850922123185497641994499973201738743001667108907381999899199299730341122034156334424047050816436462008537447857306003520065036093233663312219125915973246951233001417393355573123282493160957122529687494646153674715515379105059116129678913595388383395198871338882886690936471235218773464591157032223265091312614096522505683401016396326276972212918958152546057899300870881746426652364232354750932104789920145796244728554194574510978152772704237607628439858244625416617410111005236296155697996799834134369830230445186535658466591111465954823935552956006299247088776600188714793093911705634806900911282173244672244837359060618811196002598093212888240577032938868146242248849288742202824098254199282846196741347119852776066515159476134199481302870516895460894599777306371736070178387931360693857523099874148150894854430868054663782166401094849867954739036601762632445705847282394242458739342432639571490673475621556535211659808198141067483855406564269910168724462594727604112738507800016133530646457592585519547500719326075428429774121850193562344658631743659379195312764652719808304581798024806612532530151388039196519267760502256385861348125554244235937664858863734157933423161634899889410429426815111842348862454538244282294909182405289517181804395838463599267817119480829379697536089521206215506988587113668986103636667738139869224319280829709900290687902739678236212397936728175120957236432072122571175049960530016806766633284470736627711440621902094368689070603766755369805997216879742295273035004049070974226336316994937574211585162837964009753404824341942555666783713216444447653805964113245676125717822686681268715822441489167605171769635471048809488013253309593984805708274559921637997663945797661931140413823107137322635599767709129701877573357859574029999735792520877655205770169027688502824922784880997752865135629760896497957531011024212859111097866820233354251591147590124740087441556087633289649627440944376789557143995429526393308923957155146746916180855383816414180021462746979479569933279873533706862326863020159631027168668508014694047686626077126630827661870342602563247770130669777132372906603465272446172189284274052798668428603993059781578730715898032172295470887907035618997273699489311651444134178998739305642102047038744464852745519498262332385915558871643490321688987681113391095941946387251506145607285428077047853834319422981958010827135122284151027607332827008673766837330172058305536953380531975857926563874379828798070404017421033068333715986390747572467694422946496534537895663956422298669477493443719950945532607009030448748372801230951468510610862149755536255758173210427474308165723030003093457402403440434853413065860839636560947203012517582004805516540432019161418897551261499961166379144975085480425368886669352063023273854173624748857583695328723110727660612198053175697461971162153037868917402451188162769357501411352757379419795681144768011729349354889617780428476745284179646595285399088845403270342332690946827934136739610237065642382568928021089947704899259797902204273765716418123343629609240460556632760270139272766534411277450754119318657266076313193480532013060595201423503236291626074296792694998720066234663174458953386412918378686622715676658465969351881232886454157500219359229151135770649020289462562282493590118195827523910438899029806911364800352423143158469608493176783779088940545637987327584216259473828917003687787464452494136996274547765968768389508815410473230998820497056950696123662091283997625957441485185484669089200045710664840328958618101869965611618791519065605238144151335711749397212864591518961633978363819557799907083894663321629032389807148935951653968480162798186287765306997139512600454549046904593105131056753094106820783834669239571271979746520873137859270446674093856952927319778224334615288859462407711968106468701603116885912894708426352519869097475008722648671882325419281573472180640838219798270222101769022920025710912079431772796443344558375532761155625813786925112240239941287302143800608174424630584243903351166276719713853885048679616801009902011130225155424999052308346098418760077641178601759952243465536434173594075958727768097890419187801790147380355074103299025618251842741497661973136585888726328949136843381618908890108501966963949890592661857966296307333602384107239226925303418067001049241988767459303657542239676528389084877339854821382085828830141737113349954890825352982142589873673885232578738997813720468493042400096312811442343838219168215629228489088089456215033785446324464035923822518608231832545071658120794699510934870866012596519879838737061776041982087311397388663838529369580081450891971422755534182791836702416806354178465433072926795849535590698585862206722221503958574527310167724067327778190986039974739794524542706944978360075048670159740108754140620570317242000743248248052805061122342144924441958389149520393744174283004038860330054020528422819608093064619764454913756055488416825442031992825554787750921825212531896920459512847044010149440342579503978331564228282701200887864931366398181353494408927144871604249568708439469904300172118102790691605533579034773288055150466114517392177728135231776979083243270494276417035184375305500579567541471881976631872657665577785881604841704479646294824431381320101775235580270301077641011320451731696298182429365603495854862817453896972652096952742043575551250833397418911039877543638770245588053092979568177449246212825629566129036904653842202137662012015016323818969459982557743629138046637630339992029808430691026137344094641502991350369428731954281595069973836161004974738921618706183744510210495317618006682587255789401195520445968003620059151762822676405109479724407460025084560401331791509861950600995189763874737390313408917553391562825969537102154766165705534898664796526081277160911731865421059424775936607464022648742086420464087011329172092966943324288212733587347700439196260203477086471662044610505512352324411765749911330658350999358354239594296892180188703536321952131473910865819456377594995232384979286812859304586493312923968360690302575637749543695727122349576258227805906618960641890878246237273934494861943523877701481270334212579587304234113501097757977871758473547755084828435589387239678046467056889734572319472092000898954603074587432780321858402036157586626815493203881528379718138471010714178953755690067438958260515705080349149915007878072229196910686926343238834772848441759416847561339644241819313258538750464495205140740902468308096040691790467657108939926662494012348846179030276680883500235165499284406331785590482211958616951863112165896130696259995240783608418132061432523611302658007746673124820340576846126664440244377474794579699719799258917487319122039971766474835013677977875301714359338377397707473035254964930156806784978465872088766268089640581399229265218467371438348789863474214572829125368785035695515286568910862061433868185643832340587496916247166783104353790628931295033338620217476214541887580460019230933057282543572062849418380632874441325231280563870825206986029883989219955303034814426442268916208580948863580964694614758770572278506775521160036844732382561158315431265341239966718836336324597233536735402846382979320642820279795395291058138752740083006341619878718539970461068473818583473247331408470872058538140276668586361617053150796206045175025272289127460152661719444321681898917880832980181730517966963953255458699896164845473779410245591761631717600507282644590270432664765391096876546542501005827234542295416555904490150416984601700730768842069811229024044891769845752758194580274072697662602406709950882112512028833641235981261095491394541970198640597979573187099447716416612539990587261477380158952681728414271784771458030561888543983753479298608814960822302450814781042860401389623692045743148036409192499607663023009173696951807673255174831779263470273587683619275072790489357115192496414873897718753088618515566921711724844507756084273199196645645549302548913138441930000286099354809780475064969516425267255908532808139446283016893544512020150046652846563733485009169500967780329558048557844092613451401919675314816778422619651623086925777343906634743430680455240053515524287828583778793856367761554131009310768582328951329164678803403129957066560474212670826960181925356936858329016281032196167558735492423981063681925305801432281674374474597423674728956696281790734635801416879795196092574918280957511672130342157155740177335437181918746093514978349251415197119543433062546271552931389327179947940320626857167770424574657373173897385427916717402475803350462695139474599738270663406748472025270364969587213002096954032585222656932278018048760936638708454756417856417491227254859720254221500757434944783428666870697161707807204034638126906964691735348302970584306960501177469396169681506635227966818083341974569883742885302925836661474576951014468034675886324908075686773871268018758131695279473778273977007231253694275932612597410547794251389195296417897348594985487109697490186308429500627448618758982773130706809753289722059549568122620628908674409960302192533126037324930653560550985937529889935863073225687554916473421375990734495737638641743670238965419198964166093343987058443421262724976943654151160121214802490660960038925526164026260770442005271691025925969825692168399911930826810370788057000244172009448666765614156320478409496177866973281490802473221851781496225045789774053843527701234776017116887879126814117587661628554574357033268037121198628003927593343275020958244909878262594058840493879678404306858798904044937120154322195457837560190547074536650402502500946380203061446370776931310938304115055807387967305785950964862456736289094922441764589381392143003635481049233900718012730174789566487017394356005887301411475976012776086977239664922697404414402924342378922895503793987621961535050308428003338448519649740693113193233619781194227841124607574922793049951167475227840902064064177999478785950697852495749664192787221443935215331374354978255925512253427101116502745342952044241577313461929998050432795104580817330972483403458179987207576302611025467577774404072852089189040203495446626317007465790077846420768272258785019286290058260508118848986200628736927135546696023336692508536365443105670690804905750236695422681862756869139799907845810120623991648959259090068681481897467929522396413075162083839921691515619881310035874956728151729656515696161493496814576018551230129020267097835474713694678849011896032587841993220900289641356005864555789740225373843270605698729430682252700002102594987829900364322551565887047207918344011229715256044553512157830214486630863154568428532868950150615086673716339620529788277418114913358625835255182170616734754444827661837207864083376304498139364815137923628952986361582713495492976359211515372489145467951573168289188417018593327867905117665443092428186904797798964721714799003730194892245066896831900944993752561671993509613485015279173711807729393246051006476944950727571796446958708712152573067556589215251265997874854733436133360564649357934339967474562650114633781267817824817381944244050261396507553168847233815334240933138878772415606286257051993359603496327557491660795168272662481368471635119341343409469096750048094155197891010471119736430112881765547023935166427184437726838195404132838571927012125318359388712867187659572614950717217906298090731813452681521065743920699973865755765723641861913213024416491288761143801331123365503305613259823990656047909282732831609878528844244403205375690734402944000958108626299514748481444494089885064392877380073807373917073680183427240603489655295552396457566130809312587265653395746442474498753350017927966579262636713428992049521911369264669666883211984376672142513114766165787705481441843519934990810892461831911574371269202902655144642182940777464855989563783409787325406746010640556867683965317160978217636705559582880861248704581002073089435197596438191207245153305826860420926994276800536775306548736286173423537180668348970839036395283234683540520807673927240386139037511335259403967787998384841167553506318382362288098857177190428005448220536648570692948767885419576214569893602022788493874194410838480681561670955568176698546309823676626647721145960234969309203952494654132719741327690649093638119965140476572761325130852041909666506477196076684372185949498774221308234487786236770311345321058126660381243914573116069415410434488176911602325986749195521955200846815040895226045882992688605870581126000523000883456975169352756953890252563396094031179377057183137343329334034326632899785221214020323440453366793141884161182070576958819439872587126664778034863012628481614205300252845812598709150576107134880420088959897303797692805582827118551913179765288661523160021628242482990644753172793012036652891460001515483560183016146281433403174751871828142967122501655963337985012884242803235169315170897756343355845126034186950196046385029942184302833952140633690741073767558612145922296486181690001839338819194000776879046718758922668902435194094315413684787441625706586302838313441642835134010219483998700192894575558612950936602640018947614559943722360267730886841675760994709928096662027568248360705191236438493792994300506641529625871889618229130915996894583945811429162444121270024106814022399259517657540652081211067676559931020743156699454724492166540858998129947402113793907045352359927275277755821048329269977904989593309775328753897295822982332793464207309977895212743609489572654954666730988018108412061763324222355487518425030097192034952955863852713868056775216653136321584459812229004661437049340051193660576306751147910327147954400403832509811040085791046824696680098462749683436191101793963209314625338808688851577234736550766401649097375788006242536087005481057255185987731582344090819470396823960358164766125188407809406856904233142118462814027627216385323302118012350229727672051310810422035076166515724319804584909241859624116067672326694849830305443056470238280196853925990890256478632964136210250331519841252665032080884298266490166372954912979232353361402144968689154941932523117976715270237512120403494307504485322904156372327170505939044386964801976310647876786202422526780864650287556669425930420446332838954511739355921433032821420941384742655591371750289286076001469406912036033031830962594250513006642051846495617674385247919585625528479672589527729104797815504187978073011362857489552351754983438318271138641512057917304761450812111616157662142991346192249645796853715152817076104154634991634464663903352576472640124260408134391116270805095628568550615879741408060011048171310322884618212573879745153807216936495909179559153547890619105715674654246852736415673267595347979476897016302818833755254687116546354578787484466088732374761291103248910168547387749360062887913065403797373146875395013262075652082987446210432868122170113987705252614845790239699098955906378132841541684334831261911486990160960560034694619058468500505953783518831803416172961228320217665206789910021047877587220535326867292141279777492344994866227440001387472060959911719647600944154244868123478484083322632282723985281658402260668953666859383506055555907958453767754946846890343930529755222174126842190395096339722335065178687555791145647580940520642127323942389239278929639266904402407757700044658848467012301330182000321546959484326269699231596616371110717674919680533850892222819817597222982734960508564521353455257835764997878648400804616847162803520942849618271022381427106246403765586444791963144603999465802363904220040741101844340187373446498365329379779040008280849245842036239182790016074061180151118167481149692191704648111320015061328717375475971167116191631657652322463244638513000349869406368970844357720906541606848143736814652707641524837740587640126197505932779686157818101252595890274492044437203128476973518447330570454567668653078775194875176535368767102138067090219737007200763169267387840112186765895926710714075595317698170417625898373678652607291054748460240153288608978566196460362728414456212816127980693909376472472640224602437148124519465008347060269321750665406438346412023751264889271636073458600169696437781803698543997473282628786559645846764767984028956638788451460740156285335927369969414190821429476496203460706789084144273051352716733366029488730896018439791880540839562588733582146534022895529359861917161175585170944185686865745908056389202668180803282022374004128950035512995135607341557271582180696162132869209835513324514242145957615971662805300832395391877685213146345581236361413214928586317561446257894282009622581525055372165039166439921313976419346846224468979274734177009722649105778761237152313856089272060828333924096083891176450978528088317058630483048874973825931823471491194174746509784307279682034051460364977150024493916246937200564360989062951154631571532481754842512333644278608388600350422612965588277893136177156874167404374630561682200206710858839649567124940937918109497573252341460886714851087177430904851144815718301853406428463269647502063871013582895399481624552535088219075358452653621874217681953632252702517187458949991997995667284379042305735571792803832377109647648421624548329746958815205441438958788854053253975301949982766773212366475170488651439492688170274666228159866551844685033428547391752443688610281406117964029607538742872286080406238084210768989591958611441965996434228742740990301566105665962166062416961123524061283564057290587108895245788165000745090298074855159196712792446153382668561206660113688847426560847769138807118973559467773157253861654684760192145577918223313915503713601945157896160513669300689304420885015858471194929474174306090680514117935768655354736700292466732657638881895326573452641452341557341341076472451674016745785896949236700445849286433538265346067580790404972177197669452433540842221664057977721131538229018252076889640490038498920048424244828857456765752963837044862291936558472358872655032112667377920416832866235998541093521898950211948065045256131807467106941780874917572150767196241300619144057388094103399205320491851485953583084579954639325090702088187103811235552254192910094886915030083017562927298714916438914745892171949313351805057038244109899905476313546002392619217852643818061249930848183633461997691009495867414462564193742340118596659103764663158197359007138358176229590631059622401301754036772239324410633539693325515396242123347761612300736507679314981823885221426329420050144941457155960637924887377228905303155107134001065356815283289188034827808889657787024676353192850453206129088740564052310167183743710415422278290165510078180016471647625675236078777732753702367435816182366366607504739987455019127843793807255460501692857484936392346406890352027939401040971331044731247707147556289451993505285553678319649284566612978195466939373738854026167557618810787772984540966881236677896004613106504750548207717967099311235985050712818443047000949565830411983557969327808073444250756887183050802471955572755173781762369225170274237522184261180358817882239386766225624770011018787864842116681366501180709238455896483914080464491852435200443162192034759658040278498967243021538675434152345230073028561066506321145903547831106398996178674220247828762403553539932165770360348988755360726794866503390198341536026424646371958146473323655470015654405619925216937866397857912782259872756119674582445824651799687645809512631244041687137921899879901411858080175871217021707013674461701901057253019714706778314655205629975128211060797425205409977366029941268177542522687887579020905694978978727248609130365597723009164396855252517080720298151307647138889405749299041215027900508693882510920684301590163033587246706819897934206672970942007985425190725068757700446599436136078215659170952808378449088529543040090977949043886855478698938127052472224656575235160497261722775722322908233483835620985845259126171344425453031024830994532107955745320011652620690702745598222712389370560783672069304027862974073099804301519239605497269346889806751332585240132364628617741052685064632935416560547580077363532903984589765648034366757996590294773315667468337226111744117352008684190608545992794144900448021212295149949253866316810749897779182648497778699102993329790500421099011931688360508992166018515045732644203994635557706274170511316092907287918355675016051912435677549638399834840718890809481159076742333380577402559742447718770121658610183404159225385439158403592165733650172529589225543444295082720702185993342184235974247276007268603489405002914626358383022286470929274131997049436902057146456846281181318320928010368551500803582780904543866213904012745941751291320514251512599637304012342297762892660069234742683191940528855862765053108778491226284007846189697450858312293041086476797424103880973007414170327229678733412854154303230435291794553044778893777052566998666928634365911941139392780956693703068305797818083068920375334151623873466910244712032015455763564412373831732715609041838792012004002702965466382627746648475371362183646890971152156102335640544156879239203577140792978445384937926034754991913669355804571399023582468069720916323872199155952078551174063182107051361515730756840818858713469609796432367166616723147198919080930335430629442168012087515526045405079437017360512703721491608861871612850681261642259729101284262828367021471936643631045290322998220339706451718933536954699761842877398197639269383992732299221282481494314116249232755964157554028776274128508266217087308590009497080088590869579482171666273006937995721658549900191707335862612319508468994334787955866216220716281551386849580208995229124934367793469481193095522141956790895127093648853156262954032036585117238794193271734138867136787733209625537882947790272423682739941257013569447106854610392126085147126691564832825780326482198861540654351097176932209270033365681971352511825463170504524710169374639390970315736788363497140249118282555459384086960036786292404390290338573962841193856783794928734513882847438199623618555219951963987219268154533828568846771876950182007692684727132168406556867556124016112710019022709325918333975662360818071780445844676798985090935305043225512338895480733326518658504677421408473818609765719778631369051914696731811066415530655677715905334241014181193926058303228569142994034082757602781821946048329492252434579272448363082516546495737239592048537588104060246682321603554096280594805931683926620550561610668088563135547363753976886362771660963568266577768132429220735400064719651982762264081318701277107896779435089691633100299881802336545070442664656551746154426464944206819416641877123993315733049117655444395604034712863824478977645618265636790284904903065975220939897779246034375574519459866004822747486738608123569165670945257353210231650585410014846712712564036431611451175471482934272259343201180926900018966217462273802954402643982485828189411872768954595941154349078782657338543860769632514626332991901391532772442369330568768171554915845820216661637222094250459429071936033302085533126767306105993013288249896889707004737047858739166290949744741353335759837141804852615725320091453024119166141055929381800629051304717953634255845770455327192488373630694382591510790407989435039592202864330275343513659807252363536030448298308078330887588309912853546264424310775874294959931799306200991899016492681027926324146337096003235506199562315999454137432490197296570700595202014105495842388100445259142899883627337654535645293217311426290457718192918807946436943735173609440161216723016345596720781547589280792884869487688587593979547504763933133858294467480113281109886680249956880316647208305925254990982490323363522888064581826886975606240946374805238978524310605237687364658295481453813183761043994825855578932908309238008284229174022029666525626707404877182133764536385809327444539450496634286241685799508190625262870510288916288906580085199352627283087643138301273203516991547044633702128424490035711733048430188560520809429469826253457536547353451404471564265134065457268537007225924684536411997532288741273321539654096792037133300230737798472145024749526841147577615064221078781063526784823854095182212154134709799618961418381202345623964654453765026629684941742513093016438721602773119227207625943582792495871622392537551784376957637008751828956585091833394056419620626119227639060758354235826140048543731289334880071325616632965773985527387419271511216722943478486731501762624153529525591694531825681554462144806296678691795885332314183156337535180288544902285202494375716576888396311003370782360614151240197061123155602044522732536246086527351633552192886604536628320752100799756504554537059220210772737434083356686730355330690099682201033673712925176166100845813950933233643592269515904920112552074063042832479963011439950367612672338499681877157488801582247024507941358993211315274222737790958063814548838289754193257187226037762267859600771697439020281060179173418520697070439937272282787024604584336014052764224616008236272672497386951413340212930901679009163527165953169834525895962159440692724774407713090123764449910971670356493994278752494902219067566818818302473767013450820042282681768491985805122849100723232092348955515483564841160503179259111234206860407322772755174445073027995578445921587929612032753185461083991603544546259834921014872277822552187705804261447076658779917599425312907043766386261987672755165962352712290773599524935745256732761161879970424700176789242010853894515658122428068934088673000128976430618679240040653273428625490757713385416232116616255142744649534250016973799959755836185046577434530456565840870843613372813861830662100986938182907508135410137536068675645211554759157497812126709501143716848301922814689663973529058107025041877056325143753576577790074192534338709140512606064871144067600139568047735523742431008717919954206275078099974294163370897663982648487595533955096670963901080733667221958037891625682832417808664712126092109403172939288986962440742946884295333200558382547158535818998082915977356348769097839802218991781869076474981594186133085010926819061388449623281295335573115510357515029607243470173082100571340910772395790511879713104012443071948612590990583335716893711129297533785945691671930999498834878750262544503632360656238557224789410232023698248692469447063878636110630329208068700044409236563180955443230652169142519877948560382311965362888676419570747537629861776077090045777027634225014529718792878762171016597444798487919444020345159181859064197155721965502348488934756443002665571561190640213780400198308716334717800191596621069050079009403508613832307613679529870378262172355100979356903259745004192318459566210068896906164781409226524155306914566547067291748544570828438572079677852873270338286231175844242162006481341615778503619997991489520369205108394483722822851513359442944879587364758722257970143895708212594338461730241251076239337563273537128369673920493696066294653616757408388611202532187466441486020342679793343454816619176629105559868442016625819625033880076611329475210112322109832961198956377074224014648358724184353723414578190677136223442506495745931883518939361500908282740025935938445113893681981640716303862619225925725624026861592904320955709573628148243636198284565592113276358788159631252322821503882355651531958738381207230075188435087781918702728550466003183562731081013230086672593438655644021009698104816068589004273941027785545303111162695134758838366639180375630941520675883536853534929188590547213940921497194031417977425975343163188555176006991250747121131104185817099201729531259306855451680251255312701708362410694960240672026772916410282531098608479296657749772098201307288866346697647916047351372045714909596498478286524481867226602369230122618224286307273048911244977406609629672678028497633134332376453502827032669692469686155427116128863421571314089917769582459203823131979207029760863571771885521450973723239454002572320001455820835126144532699141903591589008454466125876678713806676771411071384432564968737113039422518004109362050461821363108244623622075547154285432618501439974703513446149680560412933020246619159409094489985057845762491095994398902430038137651320024360030609165546925169691318091121835344174449598982748537502805774475043587194581511747857064682742549987300889667386083214942321204162014582890658340496855821638802007836553449971642318309400902766371414929421039412185904070449419741230425947042419249409396094045157333998892650611120579052942398755620749468077046969218023251535491538045362955023997191704270201559172894424456849557261261124761202449002238550019048499823677830020689560946443665036736770039759560933684047518031403938088535169401628168638132581569076142635785869579318892387924814342861549955197551676434859359052995532899345981119252524968561540338421254461412148809051808661112442773340451527225452028989555116584176981996309677431398087693366574406207734251984041362622548197204489471303362271627046994533397934685704446367111242822972150607678105347708809503339317839160771544378288070756635113414828927984052914775032885885872836089078875357457460614846442062237176712975203693846632784658085902847094906107873851502988819268632269492693900780143493215686639251675189365227690549781835806790621651508370234283415747011757244930826914758687267484913208168867061343202574001375460328068011315669400987628562496988715987194394602596001192274603976653279700050356973897037283079619849113569565324185863712128436975119231289226492541219314565232359767715356956819976205711973922606853442835838420163883513900608897182916779536525203848308410905330944224824706260676436533576931869997713730610360364901146002728179063287943649439599496820289354455188838232733317671534585379783410034319876324671835970644595094217923113244551053953727042023755662627364388087420304909416888736649422213620895106401878353841631947635842673090247850625106268050477105021376069284588301663201347753109064211273049203368447363045853265990944102902876583758678479890644246627862749015939518615095901891996190731682770097074937533296404059941981369691805839980846471847814899519264951797224792090398165166586093614353910335482326536602507972641263465561118567916521959005831644773415455055248900200792706756821959027995986282087825549877050318895884395421590874616946932118547565091276711708345359952352701892566614015204331303469074481197677772752241563057353458317008619815725908862790796349641151900318925820272495534398677303737323973242685018389532231801478808912588857015634692038584536598955100854873129886773097505156763902873535788617974050261802316690383258860176874275191546398632419494421576071536396787549270561473926034501838638624209763864636712815222475702632529424502489617452654238096850805034522178543977313117952397660972168860396497551576298394065479441732619086209932917711776584220326908613252478123557631313350012909723567938551213872193189945404826198989492609997403377466708972414517285905419446083158052903929675111047252953712774988303106220226097415707029944275769978839846998982915039842762983405389545460204914638173639418082365860652499941406456657255063651395646744449626645087778370864252893886118842107581918981181544791856180268908501670542883806677521378849569782919732994190080757115117420963336296247727524037927026337184051778321939083352898198128539341293148421866753202432856951850246246234424389289476612104895150655114015291577974219889835733834716609228542724800742638153421349279950968178928836520366041512045257299716108848620758627069931452289227977067475791154258951073047431037463202712739560077368361217784356710726936138316288406396520106173000257376421733287021253633047310724568735566056229091620541114795060098258539547524611306429290872157390426516454105991734805020293875895513978072637830802295172715880096399081241654990380646404120450302020230649791732487224442383992531584532782311925905339555110323045230480940985477883720372120802131305390065254633446306950790242370500321558789540867573867529533557364577022962028078294107622793661784483300945272462966041615176607452815567989625876222938683991106989960089432459547120345307582277438204234359271867646629732697926317962671027875771739387946042508476578058516856031947653333182071161665846957515524099635439248621657653406737476677319385647341760831345224160205795198880329065249050090323967586561168417072061069039140888705068064084052925278842499759546409640840094375677561538639451228278951313831351602674264368931051556228726088079706676563713313581094915411327819569425474184968838317850590830838400498934254598764741326522899372640702769449996729478570822304992212908773561997877060717829443665153401948157779300112841295511128735902069568948330937947530291053812607515163210982755199309265522804760617417761457594849588441566366503698042633280082399450441212303259713107393103020604430155254116675057148057241456272743802601651771057662858684165662583294361122270853657785675844223802390205387520180184070636868170408948076487053376095196347633564954357127089600699919400666271313173807390445780479813793275134344483246447766904691525599108739623518631845948191011674385415409370257284108029388432043129338832720638693108153518026801207894373157009836637445707507658570083680335860508721116552639534492941526999640096729434206811269444297921144123233161082684117917981688977076552737244994458123476203336661952081672715872775107190862006603864313546891522590577333664845525157344214299264225632543483654760250423816132896990594034458057415050246971893254173734229033835241786484179586630707067436861473621400331451340561096070635494030405241631753078004645914990686951463646209836721727375534844607012904530265450997964574682848869956949373256708568113019152544331905290496302377198822132071311157147080450310342729361924706287151412414826531257715216275812778520048380571321240986755419690114331577710152932910757682471101796638863573041905997992854645994661999977608232064249449463077373791786089334816502247724312247650640000156944712221234318768768810933649057601970375835095410046787401269111293564700024102948507344747238388062390286113072283516427308462509134487504820459051251116365389884948075394725078769005534032289747704569424463030630493072687520048768082443121483994729221739117405972805733043008245310433986324740111302942208960220818098177261502508080818650542880160646624543481780325001763039027477659040840246072078768586392582026720083652482581211553898790166326101817575411183324176398810985810926376764083645412137243127178462823946519176175779570387500564053951793746596912723731038310613997624740000976859078191148855083330338956550549512038979274482252363540260919810927236154232144014158768632027280848382451714808485463939911493120114417615936332907298140468092536146131498103997426943208601612489353696786885227548478369317494473972058099398597015538913186871018268018898426349219466879995688721949559026836182193277630570821880444247106736064800816523592417955480202895605900833188544889811774783689669495097925350135053033212158681270059655491191542167731617280560839188732143021038325140727550006510641143925023456409788672787007061935370638268551978853633033170162960440670343561209581967397489266109883195650808082065259880055654173196019122745945270895722886707973497431991219547879429937192198174829555604542148061648732790064531083207171579622181251712572688171609133693682598158884951400691368286282373166251364560778838619523594289336814053531189314490692089619618638748445016367115852532937061162394058547442665620350095267366050913697076005837220472018301350956104497183453898797342890859489226138840745384045304395621574414878284731200149848610903175723510679339441663781704276248865986377620415115996044412235855184784783536651321993116370644140327733620990603345420903990141775220621408897580929281507781686644167108592165802520191991674580645196892973211716152404504133488995801385173039077512318438133833456113541960550050445337376064294168573071882716413975741213829507133507127356958667517353808345975039239580814538891142671441854659269696206003159541855262802875709876054451819122898378194242096278905002496066186636941288326772638048528303189413229362421698634045733711679098852505216715559797774856407282566759919556140718289222793619226976389173467035136737440523435839235794699724242198899276956730833166253957929290751490370502571099185227434169700739980272784568802374598603965106022287525812283004103778477290270060508923974368602128187179568809190785555426752805232645908476862483070452870623515168711753682554913472583250498957827508813222850829106150808463487087611817203180701423851160833843681506536720519808727615178558211833457361052339385882264057965832854158048161375572649146121092333900845664523090102456761587245320052989823474779322830227454401765051343312548560432753912240468038462099912051764646131727140545568223468215944336419889972995443267595503467463954696344930971128527179570389983543210605598704204138936850419164206757002575763409480548646057775815335898124646130558029873989631656181378853853488571607772271932404919429227954141122779974743175137675369787089976239088649397051250161834635661473035972415287962459637485738729782834578670665452358426510831142149255682311604665803804283316456653749052094187198794733983032432794401089507942328264421528463886688236865554064835083200474424316664647855028587281229556393437353936518661699933876397310211944315465171695902549733598201617784329515532219748464918138175219016846039286515417447517177626128597331975801324657903284585108940687143269211336578378867077751907760951372658568646893938543778199100721137830470816170424569057730760346252180316717711058820630031404656519171407879252936339941726669437431381516378973657854393548083037480152767629906861311831555655422947857781743756688299863320012967074105637572602260565463199307687528651452433145966810598905948438312292920433423677272701423594070659672741580682648577034731917043130499984847389046337019975171144413867065753592491469782598041876831119955381625265519780022601056570568134588751756686904647260302999284000608773851716836889069566039924543867480349485791719918721499840361749899938071949309940928068611109699976125123537301962011720159468168935367830894035464706650841400161069226162927871071969995037645795469899701322291777043641389193881120916238635177685121374642484701079896462586523290216644694941668386317728927348232695930417984553639689603105163254194205501149785333594860700449360243619621092044204254816852403951842995364605465800987560744479885290852021696771489634895264339682821327706326167234996184846927109652396335599208687041237841023916694764525440513293443626032187604783967449203576064432734182915341095777737111392918668275802556972017168044343096212682687342020327757740278356476811950649985492428324205323015118175690322329765441907069603037499768886027669777169199955139798181656797994922120220018038960960413728354122322533919682722833015524449594084316849880776832739470342466932209319198342564158772442595614054697236411460392094782792075247990993440332004454087069669529232139923906300857818005893886566178143750663019596236000672040922994383178281991617709730515303157374015743684833432605294108197810619665345264241538253708431520121557181042707587818290990277872998968942348744292013598755912688960647623828441326379518611933871657051696720269628889203557066148363973178472139553744298260482913515329869848970301044898607337855657873449185583742006942206860892636937334597689377533838819389207948926356542002255733961065468083563876969236813191433492464073115185479555500772779630302495785654135803691552729360119874136473912317366726047935987371001749192349304044695097704318935988306983210989772023752638108788106218479446451380096999126359380149090199071190324217832145545229304244868594263892775778257897942988509774309436729366533426696344030554144472332314004143995244165226639117170000735147954138901098299843455862803350552767259579453079107645562861168380165254810126710241762791031874185024288326541712953931230792373646519501840820643249067961037106476234179848522782102109561108645856525673753503253709201201803091671506435667630558121096971964593934237595390423763536381934896496420426041922846340680006388284352874414797465773091216377724963234510152572158357548057977567247791249088084273018207099464471037525658664497175144495054516103249300161334637216282329510845473371359031476300041992841545081279676394410774011431797548226725668899614315313278485552914048130609877270029805996664177199673688823726497537506739923128799490013573651512121082031803763298245549598875226272889447163398280276045447400738508954118535630079584840879355257955332470466012101358238863437669784696317007034173840626765565559875109994508589044660094992245529413255962788647515254421252133885584397680357381719031003958446317358806783847858202121387635372943083722876170197233608617548109651532038007041450884011666990729448753891668176662036545100393949384244788627849159440230983009541080863729437897798499453080235770248940869739573680801541467207211334622336241804327548070105798197169206602321243440053542765634984724510411732302730444387287718450518812007409355251362442035118842777052633805501609233650894807439523857761117524795215408947148552711748759751467365505255572271061261639736990149337199873893239649684394818700083369267387418320899974898682290581745994028903351826077924617902578014477661493699610475995602314438449051112409320039770133795730712846996390212263020231600065148440978318438537760021834326892514115576706168753497425846075809852963915793919577810862273179371573230421953846460442852849324355835545564885852571076208746610985874749183673715262254565018045077635343145545610558495679630148106320767424065057175922101027990011450402488406816139527095167913992878619370329021267895223012090052248392432494691622526253816457782729540006803439448520467304394796893013917429022485574732641059476512733076307761063003851149382420112840832890710257969863815350424441010967304612704089356900858956146054604323581218702603769564188134225227599359813083176683482984764333973378979251324861185047294039465794796013226109186724912141879813354245230726236456839926776368993142023854240380193919050986989256133405303867535344887411157830123879249248845791029674754763721777104663632789244868587647950427478610537121404526135759920697814659656916280232356631178953405377368394708404752386168732617223432638736868486407889498769519401766409637056299010187100366917346105480755695571753694778007903455378207788932617418334841400837949613941403595615858400583880060766727948903786172296891610410037173949998383990866677275572276276040552440388877677276138714944503628481747432942217411807771930284155515911190509206926402383644937743689680848474737147365150686688858915440621996676471108187239695564656939109481271814631427175631333685884073358232820490938469708447367108173696765300733358346942446110389790454907066652328471005005496592950092908005207037072097082530575049207408709128422339069905187335097486455695162120084603486266321256850995943888556753900399188668468620914186648776828073382271634817390667516963284660129563478116982230934273531124401301434727771659285748890529744739707979915157504833118460861990528143068291486889554039105759727487008357155245226545918077716927656503138120992207429251580351416833739987752564670555138906781366754362556369323660093559126987176635436745335620404836763407591062746742399617585273420694313274123650574376991418311885812503676034126335574016231088381379284105427695653258266413303416345962226717738543641728293530888042780461001525552248881830431065281253698268195092955146188529704903800787132401027216572450542570025572756913622021562317110049789627250045116101347969028477071586741667565134970822299908365229958585610473646491775416597937937402806709846845248163919717234691963197100160612460997320396196881672792792255941939093863948516834932580851801151000213345727751369100939736824964758653465637867989242335330381661508130472223349429982914658065924696098921715981854287769799397965340446138795015633166689669688227409598593661323180579109231295288119413907465174477085897211667830774781405045050684488701888801929027522549944235474242012633878073017031502753435569796904656151212079001416817349635197254907395680425958151171490009943262465008525770806235467900231677513845344225860418619322960992658476802454413211712742717554067856757979830352603437027046851700220144588387740343416187772779308061397511742262749277151124165946910879324035697501213335496166900174288974583314791377072648910512090869453650548979145375063931148476621968684436203525159758424381401545264669930836110513794512247212261213723629857206455540130011407582828255516859258898073166929589636665262554996455028670682021287526463880612493810254234755705350362162414850002717113919193094518814730699474915715310299364879858575789998556176832683974821031049569072503994119053834335622616617890509924621661583194045340223124632712746472178890645017692398617867713455177661613146996086161445440407767706059680885118740399539389807949074304493679271535342787841720331455863742885568336847473806410981948651298877772047996933421665956193115050003241060435391135147954015305960073300454629491988043353163357211968354843883021132226272303131422756904073715512043203059451318656506856196761625064031502177031088316520988540322504447888505683028596064810518693798973069443321796573005326837154545343329718763438488113844350933205445147376301797896288999525844730967892219960033102101715818317687871050219362109507323989480903382621641935125807400495212409888565558593764970564296985751979069768168234662141366693402791991619684877842465722391009746009666471502555089135076214052846157686372307753023483561342545044438132480320590892317617067970946353412198053559117682435835874829171662361537554309679259159793719514891023558691766613159920324947168186547502125825560128462583916604024419602872507340160668859110226991844061989207805232177448765382561307795803307160351074598865983463238906037815918107070153022635557786452415560362896021787412273143319382138305989260022763758174133576856410341427189916995218954228985643487366284528070648371056141970710952022246587437280240926924577683431569753676898715734046116071941764469000922013970930065490114510837733793144089365037910252294657741213262160133050905094894970268499284204101107070094604782986835065832880431711306670349765795375745704864718095082653078161987218025801769927149700355807315224815855632890642965012671062691841967860824556792717517276326973690539701231214761662138231188967128975983624801558613386254371915805165505992015338605669323708592279566944268635061369647649718398633360632382802727656984668927235806619300915109656845765964412996103964885673237020390227735313521901698060904791014624129003558447233598313636045207157604385949108006739605518950904959437710255531930858731720330969511481450438169434255573792071247831874036193988585087610334350818674268999378129605151214628931465260515046117478507441740935894744339883016565220116979746818333327217886500977918704668311511420868374258462183764804926442400894959899127741245528623592805774997222683830596529445933324259107669557924143072983809480164686351957474566669107183400390284217010604231111683541321475947395313763292001197617507415593183500129614889761223112404584885210286734166518660319873593602043808856988723784301725231012803126492400179823869538976904048311354087715028049105744609396468865271564155161739402041574851254308700664857358171843690799669896981319501371626137125106672036163259546652325573730602815223100151422465229171651382765958891172686061593938066989324086971250956931024342057920226772450165948998775243214176863477536219066048106454037178045229664375797626934108908266819221438646769308219229727950119005493418080019405004050889398191290545771211745108240563838224929761172249341841653600888944061416173757162666825575278078061247690379590981703986444414307871283607281661377338245854799906286169763827490546931857746353685915729141241266084613434320228639401105274341653324470032616338113763692825832826766288933572793790644392217027271051189720863798659669613540445948211438221041153361458825178335160607227151040844647051851315650774754441981428307477965421854499271865033884046958030326195275782558334649463200687524018790959792306763261700332162201951100893437701953817750311701519315896029146769187848427864229067610809075560926873495301089434421420816524580859471184270611214762768712556941347930199047035119864469768186620910665383003083878815465078158970383500229081856472407177577408849010876809290583283252115369586554293184392234210038289680126803899998822774262018526763025936067407379471565267374711840373992692432640146986045113732777613517361047145092253596930356615591898335350306303517067364471702622878742575416517753170315233372696570801684078775734934552530132574307216925329119890705472179679917192068723805943603882274245829100320384433270814486307533628907144704797871940136877544967658753410305223967209910489208600624026681909542137781886077949373611459409697363266962002025449457400729345065128207270277052127830700504529446285921948920007145495475536138727943085599595346931195519071026845167247693027822714251098641632031390802702128860802237071704418644159867478379563658401748209378197940798966001819993904627114145616886764677131280770731626609457580632997172846290616337564856096241512719624923602435788101369614869352542795485779043777744694637457195674261369050142628811868515679841147761396159797817904417828455238717761572882959923342441154117765956305025282787516214536469493543181976761587305415108055485170741700613912523714414667687810249354391521738358903274586912460927902563085225159992602218747558684224771306760914615888173669798305078125977677479647513605748007052254425122495803496562385841312347097587309212186679908076782263360149786123669444008183534893691438461766453564554364237182231988219481880933258471160239449403900416505444695639104913655435905269047629198357252203891270153460820032554901877361936212942366016929676970299691459402856447679240985659152552164831957723307943152960661713456379618316521264393610158059387774807677436652918428154997104896522637753294197496212079283760540657211266629546975445069150214934619488280580199362958556740913600704789404487348923254084120649834667107054857351877989149410507825621576478027792378295290571097412545744108328133964480886343572554916629138086443153149860894743658203450441527490849800111609097148566335673263847050654914364291986684449074192566667605364863097172521149468616307095682722213641640104049400418630963022382205942427188118862425034064172431808412879470720507494903041707647045902651356222782142196474933722675078704921286225266148046738705756481064663381714549534186270033555201868289219344356766910930821698657228887662586880942145993975280866039300810211483802351259285676707435353691438325859395017230896293486827286872137760044076480728405459902351759360221470892814286186821594617299949510226963194571663160326858213715118777826645082021482320812787001426300152625612043967114001485427732492477779271242075531063176593271595354693252291103291308039615500825135387037897786330557443745837628821475711222692573158492676210137797680309305179077425136069117614580533492119467631132648063859110855825829765328352389698276127084076654334588466659335107004916299496720556890606140970413052722776869773598147500039794134706447984443117216531306173959767500115126177834065983554115681449124242179122104087193524710827185508088709673538674441416692662964223436210773272697305386333244865122268758547991194330138263068738450346409799347233001613107170132877211615873270231229286162202760310921932263792262418021505736791816013122858206910557577845572284416042950949553768659675022528841915074711404190123496529928156120984107825006828720496402284161831187467478380979184630097274910383334514802869909070504943175023980030797714257933019584109206352524036257955243168036575846115383608767224732157423642947826979935419061817359103223376213058603389932006980682789205218010985181663772444332138547288485949374028309214047968059280393799951723531288087652360753313404182671290941560591961702972888154779177355145829178107053326098090859854133860329140002077312816689971705545315672105978558325387132714179172080504218621431900552502624840889455979313514613726849477093379871398715494940460461060830524093647022206589038445205416654079174237779075070118498543785887680700946676788190509087894120061159531930056656245102047788272245680455329915174255634519508339564475970460327461086581445583377176277683286972459349112405128348570555060661072963134193511457661384992288239869943239290871757376036000382364024779954660831083073347763508228402249946552858733575990875565983854162216277218075519855174212793284167901789739411319534520544089442391766286607336537586706971946451970762047493927665383515136277174626079900891314760119387805384337368643791512875449146190993521003938214658075901376196169219049164594452499405274916325771898738766384095325048414638316520010968527394777642796117319610172658097248568147435684667871430051542089698707556039301540449933776940088636127984970732031067735130521487192036467106388174084731931346576553003650021633546092723648877956082044276433495933143561508280492866714747912940288484425763678219621303635968115321541665984612912353611372140924304037204223758667400501301866981835929664456445279652033774731506070687007706270498742369418369905707208854928542406988448455545061609589561027209288657776518629706323886074093686133227094694617721655184019741720562427105955501577007377677655797942655457349517387986569702414384679424753967850859271215930333962486377183673940417777616807464541489520620936895126625423023718592835269496561754923789619592282931511221917076995940294458585220575553409947457506730611708202548767963053469001127757034163635962221405139404632661309718614118945959580381375325373825406512396586728572984492922669113169866611089805748447080234190058291897384745662117474446530871496643022639338881871213593554874127840457767021298785474769223598843846696784648884261392771140940909624853996155760994033239373625528013155738775305273029253756597621832130591127093005545941183001604507815877565653578480044516518273267782628887560558639358512543184043897653597906739981916573382531816361854170839468169128178784283104623204066819026462468850083939144519956483308421760129689138146916421766687917633702489428493430640449039387784000675571539554440273559325053459993969669440154813533627830030863074175847548832601688655295683218298875929658437980580221592243290836835286085709697161678194976266014254801189094443480877214074924086098551419271493958352766549335347270327865638696204071937089849664597284103442456207242799976036721900355816748398799740728931431536318572263921422029200574819600589731837217968979600754068884212766531488616724366196958907463154373256522397889470683232653575447624562760890204023268203210017707299979340936666193520725464735604697720309979481122635409678986257482856025476768870094967675078168403235794532968047646200031445570190424623008090754869582141122842904213280328018724690474307639996439521037539525165129129688463737924641256880638580609206504412801173976061338360573840723420236518456658868121940417805171580710048897897147122066540771832871862532939211865157208316105712846771609236524012416872251844650841332488155898023347601403679789014560421049573229492737390634026904196454535239620568487781032933555815913175331816649101085689552639149275430772969590359286914801728477253415328314296858550576421515095255321689538990353609859103342413071579656829167172657830274830485710771397164074315644802844061179830602650838622274789030547540485016041106833176459961228214617322831795804460326371845906626422962061744145490729961787954317479495228500817460999451316555980422858876371561262289431733281713893745655076523577072956628993531219570922074386851344439485831071290616470089421263033432045635282491480933264363583244230040178139865692247172193843920382542021868905623755791719933484385751807315240900682981914105929762021709722519826381224983780943750571631620952571530403236822745967956903957202631679535245076272881885291723266442017977403733674976751002506854102638842232949621499102663033862977865304015449280051175644334908816103086445807399515809034215250221743558822739366117395052993317679880853839301658553944125756938127354091469522018546004330034375146869693889647797696363416211970259182893324987174292606434977210689280365487367129836205197427328492832353128950286871643704135214692192307806934421265511614405176789440303292269748290855844183888318087896539677989847512227204822238126956372276582320339972839462392229869528647732481707144476629889902222598180184551737343613113042464341114935635258935498798022662422290724371158207502702174616146312688800057490352129964712121219973160693814560402998638602556834313254638839984189188909183585284421558034810601453612161288205956638401737589293318638386519136376908311241524500962740621502068177915253384879305341246355256773181010263724721326141999692280492046161288139316381774125753766345463160842777693489884934983591369830409693943265676001706673773416823499493839682042086796902192257011629036004100165293812927557758242527633069292270479567939966723909899773474207353222017211411929084829817777315190754024673794417463041128163369510074530997317977863166029979907372083770446777626015594553622137293357708232207265763957456177195048183767648714179313084485877733482088252335264373500296032362429535718477734716934823099863699851691040459206801279776768547838472076561051038734113801947583881196689719630688732040648391299455475128090676809438083657212833322565666988868078647852318485857431215126234420961152905362060350886391490393751173330057061219693282828611815505687386563798295890271332854585390250381983920424245928189635477092635845752537366018681420427353849507987955361104005917192782015975733969647468603068783260375248353509075234818523921420186908342036678124325626060424370160815262491418711866407188903369499081931217307862641840171951221215119813152454427824540591415039489599675214758356747583293414577214146910645304387420968868116538645019077620584102865058562239259556953466457548999934050391740432729461790417476915051257485832827878455501230550853832183657590171878009162443160755141285291787353266150196476979718026804264135602177450345928484314615831495831289769280763330109148576869538581566946733238347413654421565211721558090492668411934920477556149705770123158637547914564809263784462941490347993926032203828707870487792602378750497762687904943387406776845839338215607335001792929006372655243011824085675235185938334063090247112282897276055301269563501959912115717442947620336790699160321277732952760414140186707734706641322705232816513985145385522861570736593163665088981037888874567718791425367740551129133252328472448753283483700162432265328904568948791316789758412518157061839711827658307192997365090529128623142285131822672183858862569976240171214444283881448983324756392532416439723836320775058672214204145712559379396770921989486696151980509359549933498424094555656727220801162184398495082236058054604091346176347755849079465024407890431497803039233500676259015843406892795498490959596218766309185798407759203378569980617181428909116142448370292740798651771003194359942775373736337736622991712556961048466822050184090876456262387954362878091312187152410020653793521331962210960166762877283032296774369624585918259791950312312875659217527907682131553242379449135466666845237898329907147668036562450735348879443325554525516882943198412798311174807507020319012658605938926413340783886626963563185158806679064011011487969046810631190619384440130699391478481899651233860640713095472406721027957652226091432686348056961197196729374827754736872123153647493689555832325987645701257299866706095085919994137672570886037036147423619615956448282652641825564150680505433559751047634705534499398008692291530199290033050415979640787653165954485690291162678337368737386628106390990835805743858402599266469626107223457803177159046465166093013178453673075921570540062413765227551938639075981431960083914675424336428788475326436091662356606914493788178052443958162412719434473785174176787094142876557218141982328849783423231203695526259648482663467342059136627415389627477664586329499179721908166316732350097656503802697385474959463833698801040371264399709785907967321558164168192590160397618843537847244339179332813760463291703946390334853754067711560198069659246688638573882106205380285614179515292751721002433118789541408696797513310720264123353958150589955815494381407310479144701845608463551373054286384843577930492702015739398020697519201780660651321125669356555825535442928600807918155432460001368175106869862135085897393077538553402572462583747041431512266106147976332060099394297563042724604571269133358156249484150511727468181196786135674515865973794645784433816897107666304906215001266259725411112415163294073499890230852958978316026172870088385155358670333798713993234615652923997057668023955985973526700221770799597691098203449754513735512242954398969031584542831686430396975877517846659372914761626713578687930262570789016022308943681534331884895857879237231956831903608296408550282542611186144548140416119855266445437758349460729403654067627079492565474745567616546148732742673491807296109559225950132885005671882001373122259246115192386184363678084069933762358146272800353882974036897783619419636521874651892678005598947765432985652450757493253931061973502842759227344869695959373944687684463399602467281750503482240948758079002295268411378640126603934836908179952961047576205366251468744227939028762339067080823940611487804410843353489660609119039619931870245408307552917813687591421530679054000612368254016942625829116083168450953617897591694989209898382341986603544539280497384506151090075995528297515136496801566530067741353612043517031882821556239107390887185825896155948669365564236597797363598416077732571613844671056069067720443699242686898176286795343876789122771577124216270747110048541780125214593993924924544156753527103324882086686867232507605876284968749074714080368810948470743875276854982385663481497299738478208820278561018459033127362035451008563888731336189280089615118841340446338529267619872780301604419182947518511354597485223520269385499190639658662518612663741118804588469241708597041632144140375953413869811898084694415336962537683333957868335767132705229489118533214471717071882243440116130445814489858773181663760140654165827521073024500663801217184483930794782149628052922396684352385963701071175232266704845298182089718777571051819651769750340664626826635330180684403365114422798798846655555468891484111272660643093313917307979683020382656314723873865182580848092682741714014865377320419872930553685228049292674645334444477654070437981592097030197207416711861668318844637554029841174249191144224624419926946108074861664110828071954204147325099488851792399921648922295890523735685223252523584523046194717594487607756677574416159936988615212595139039833080898346880921861894176506431694277169224558986561432151233744606343687407121959974332517652776344410574643450726035624126503246554298393402628522910179605184578099101850876672229120277783494091234469263729596658967950454178353435582954073641894227039199874427241212641473659857398891295196349293714939324848943891562318884410249385440744460179575847904220447745565945062558355781307757874091762034059410031656577658736708858741539341993551147951586566878471078816254368205557348082435173774776556657670744146012969761779898065195166697849361485323504056156175210772464832948694828692308889091213564517132936549297980585198107626950026531251466973861614180893667042534804370169704653234064681741036566166024072982867459962459807437623442441465332329180890718183880834149717867622066745222377828398296385883903081262610201342705040446650253816868351977422182494875321491044544890537810994641396133069199572250856118280096608784503803417076789789868608099731670140412185696707132800854680931287730395639696562738675658756937430288274181466376270487831896021034395671129792935558229590481242439982092627042825662502029844599775106673186071394088903178818440814298191418600745853535787838382400183922326813128519055544942243666828136061718773833516315319010893967019554945436783652525347606577172449227164273841655585662892609789069976139325173563212564872612751893968854594688418677971835167820118930376595609683785053253966975608961642905322385897810004700755234363420530592265614786349488979247485883851229807573194973794343684982521784895279934463144810503243149797160790502831135644799830099948562425231086296854526303620376535732466646409229242729245131840070732397400856811883180743044961395875736817075028137499136768350253327390387237777408752457275812212501127963270043988115745860472119683717634063815736687259468780682055866226397539790549268302930227615745598491498665672224410685011671055914390896511684237269152446613389121249042052768803967661822951840704871812304414009246903236460456582311270663754105040777589968070947968782073595270377849808752612237321814376802310511129541816486171284865557569375867754732056042897803067574307518151846299940793786416615090569318679259154120601660740056953434047297158857039685632445464828354456061284503139726304932060618413251885906168617534769024990422436315405882754591713725978325968275974131463123829261568452553286914257735949595380247465200510955364956390876924092329538303278455221960836805640084781430683101879185746160334870802780932147032263661342280300072958481587240458399680828841861672452095042992862367227232207704142214809011478267827106054996955889674658625056381143077360402749134363529747123800519377142429741707431969793985053471968678157389539129001612849969587781421243267241143513418366336608922132899720306918568436363988530079126706697302832765032170790470157343214016983060999420337901979080448430076734551993818409215780790322319304878097206099987095787447833737100264056684826772388680557174592548635300008160522261470329024933396234549987289544682609624016262779273951102528755829411631694119841981792092416457190261636735066273145022503527531455424104727695758124868579948627160458524127704438323166128356361622626890248092919563690613584888545081344318171109283381108675321721800250093856043344506566387289006118098426881421858214953933604717557199873551410164963182096385799809920204153317634843394059237986300749397563298312693309909626244923331169107884369269735408237610052457929558040353262250598419449090300119636070390175660026814074342043631555096355291491143007501633435677283826021239672490783053046379416853406273187655019536401190188764569127534182799151777948010649100806459165603793043219644831163626789858264754749552904903160676021670428407492935463326960173980600314697998233059552040192298921338839677390751893670501729777749127964666613935290946292403922211328336970601573212237962920145882605818439051115191057088069911325194405207153307904100990028935207435308796759329481290105704679211110236529526873304364233693431541461800872855309088243255696181883501330168460550922706930028769555281264002189143727000128236885375117831019826189067641273783338474586211876648911992210370063478023808190307306396301540113390685068009388549494297943133254065467131791540272569004797062127931647887113535366964983114084725080948875590610021293227539691485740045516403114013635291053027967547836117523262869905705672061972240313732786316042120036707938283135232834894563258766001985864266906850936195494910698136010735592048698333248241546668558540724144895489559380939589084920515326642348889627253001733966106681550555856300546143990249850090200120031869905822199075929110603975625076843122627217028623416198669504196582769527547897938452555617679769424203474790459880528928006741936845244277098709705452369874798892078950340371290353569606867233386972308909536827187880917460757356146739988454785367830496186255821047246602922307158213157356173408476002790746541284419017733425198437948782509187294322010399339239747383876033040851121060093411416538787280354143593438109916791442230130825591150391163214288352711017088170908194884269305637299544553140743512162520058350682019631823895553409305993632806280877450207355402820939611042982188709498852181743746422369245046902710289523236683853694476190048737126561653787406609088446686422705750225505388678393642117317832400458107349364137022504215015607089704341006520278708579844970050061104108875813555576897298554516982517561103528303977073726881756863065130737020930036429920562137324229862292665896566597179495984696689906607654615711900871929375030376651384351059038415734221154618369317594332843672052374551243934055316458300751752806641734563957987710815005649693625468110628294544776770909297785734169940539889705021978354639456075113037759273029448664472714018159332356537929495939283571901102931706585337935508374337523341936588446983017994605554878017937564329179069739878314509164928610600848403532346541256242820973158148370091634002786752808174242810698263237044754608660145886274624712181288819011514832229846286805472532597028095161576517967067183186836747903899805901333930166154276454563650535493002310587267877213578785113168360084362962542939292986574439478397600605191730797406902511469270213245359010330418066570081070200472370648877708497840892846413678693699769919498818937209665519098475156705133767443089668005783618865376422157163756430608273878052174095384173717025988748036364789275858611378296897895477978806342711252128013175863777842724765276263296251245447764906245614416648276686854708557961632323883823315767300344618076913701622984357087309532095699807514259795356564837431429047851596810775150866733215989748861244974540717284114013582484182530355749906117737286916540220056297423339831161581193528821479700938099675849559486658083613316525258174332794890129975152017495470839342682886072394787439865341816428831464674007121449594348945013334654419914961067237319258980125190770040956646086524471757533134012937327352858829529503775589213580466554641474880466832681011942212223758073469495897198716428713643001075286373098264705539440217942263612626872042752809295226773378423319513511906094711439862070193792260264972861625739410620228347686996103682165088641556128249211471134055609409458766039119335641199605505850462920428752433190924837210248223072889439759000131846378107887379920110003965539457587654111798414078118617536844166028212649083358879349303688036926220299591214594275597388550075935355512745496632453503539598919233545050340617968254638986916857009612953909579101941384858640312297119508254710759452058733346601115084770186964426732854717912210139057892418142548992308619738679016568023869275274842174549112638149803300900376019369504773812698395119314993792849804494893197468540263478837205777959429919229444728476996762494561796272300614146781661264024329851590813083661004225674827496649421188322490018944292226497794780322671790124108771126389244392100920138988959820905185000972372510022745335809777270288653838953229788077030998991101607307030306149360935589576276354430747021934593985261306793792624981595673829722352278202877624015094185805158651740472864852788426354362804873564776959218092957946074222412024925357663612926314679277224032560418785518777367245640189862002853342470938532550915988841087981568942569724984269539819217650754576548986934876482558513439272300742269051443063030189450425357069475490005766367127628780869965840263158843127672929785569605270982791382243450557410508097373338129875521358465729260720397180668791892699356262372123201801589180898297244556766022548547935612319779068356071340833414176891645123185369391247593239986557515241390735616625278838675016664081465066705773027275106165508914918734465585544185471166420811778959255104199089931017682268230224617285489246160014441856405164577555295493426278166832201813315320246435357064979836103026482392714248456030558989245965647175733039375702783750907503331880320624235303143107246139818653345802754454962504984149632784192722947099706625773525472187596876164669336979891933021831702857002932606723087180165395989961429741017575539893082451591395261944693228444867368139777384534378240778985285217465324781994877295632481443355099987693009957994465134943584007186334114085877554121366752756907276507134990127671440087795685596483627388466107978962469647021845095469300567647362214563546299017611321765544848134922440347284175619825709839938069003664470401596578286493619582041119817675659813519863126540378454845195017705544719425890377692916244080442926659209201637919241682487850795641534728804462330925506515293760322799714969910654028707538943541616878906587949872610897644494662093256938758978344274799306257250349962847703874559790025049155629163977795730980612701376282946520307695892890206506326081210700566765238880780354958520221970286720034119535758411529287575061610919655198999118192074378610066475426977842354151302346065723835391596488150497575418850765128985211533856925189152381631001949009608512270952152960803722909129990919395019734246971074857336311204806560544213834111922461844875532459337552110221030533972063711376805552808842056397010986561032476938580179070137764574879602622471587245297010089654938115793926763406895476068075712224465768451114240386513608813338677293591813672879138627405329169182586271869507988291501264083193273644299397294667895036285603977108359853710276949177534191312125615218024360214327091513071804622391893566474426968714173982617898858792020064413315059311402805600899591547042717725875872662417522639399107172425862419916048074635959889154933269729370649155923374017835096037544521704555438842835058662682876454815596887404910860477745603116055741329982107463747721899116887240795858695512764188972422606871261747006359275614315538426230754051150540617556313681206522653551169865076334729025183426006502262550410837138527670198070483629507264603222689021351179706749603809866091391434428266484607507841988454116558999418217333085800323499825819160661499391215193605256296288105009339324295994776782300479512244670476475154355121121243936905874230873888254399262013882969107725103699224005248178943788930342385079222711970685886508748232849306884055860539813645129328238487035004428518023607278533955823453081842260650488870534881375597300303206550015260732673766392422643870656697671497710016616414932127502294311324408612640113322063269085291717640649048267583268021407923435616591650083824335916463414030458106394536017022245875816373544353789688856747770459222818199962166745636878872488978511036264821318595833579089015290311863476576870526550428158019538159975718139680530848601330672317861683821547435351935257242249361944315642923742356120603570879298351180995060961993926212741476106194653536136378770915394894863568709698158940631503930228293037027214567651634437034916963950250433326665443146867195006492875711376332792918386611901583051149895445806650197773440702421177097430114044013172252712427015983936829086513426392849797713557271402092580053293972156958316057884469431486361572052019063040300800312947132439873118105570838441617840121766205068222947693126207989891369751600680940836190665597972276786628842950483979497784865169912473590019572524304813615258437101757155033371446743493681483181036253892850900565633184969157710594243408056430253321062316407248132450447420515599182134648482697318513623313797178042594856001049109303707103614695620962950735680022957359846235972890269270185300812331397924495827775596349716627514113318264092397125162298145248888838762061270204101486729841323654550040112372118268496483273648747677468517689669046737177359312842283456129158259361474728022544630242455048386757810477082185910735393893214181792976067917961361471549989495605163801972844071039188273062102250923144173055944497875234981015504597312820227037415002180795095540286283673454772848500570601888114918816102062356807335732015711704026350833977193279303949588591889329922791405735751230828806303282075373630690230626821127930139662175616779544261133122582278084767792636273014958768900108800995275840065739816645307241534597915500012613500017612678431624695244326186737637191208290561183606612253795558716389468040260698699543638767169545423246501091327337077722067893589624098289683714655467397553266895891442256540263066133199240693988406144461914160075093268682449521998007725918946608157248195504600906849883718016603525896311415168328430864819062770175281620567042677495404922092443047297004996952747684491785627092563435642272318320945706269342242363082757145611983079990533009282649686646092280395003981216024258674774948313302999994237561593141276225525656719913852764693188751793487047281368173133033067446788447437705856432791046404544790901745906156172632765263129603084950798229109794103387308959323620584524544177363477584539612544877159332179337360181104024253878541268815149360480964394040228053371636733764036629011170747578778424404415604269702522264538611208673515108140917657968184405685819599608811815287979781052210524627125606362708710865649569411663805687745330469532758357377817665308190557017129871677249017612587213974737184744939908152065849941519169883799647989281709565481893579951676255428935047360029562601758786025504758575920348148806416361212785654927100171116417773548486604382093393946153704305977663817964961634429853871846059058031834487915422153061363761821140024720471391698241641728053193277953753515846447424412158927264141508906037411310804584461795872908976501177212429861227227699832743944426620568393356028602830695798727343043114627869815942906783351525242956457983563045459683259872124352866816401326169770531044148169354609425919668580840738906537819076589812353119713822534170220419948791702752180373064009807353636369586994863438477708613010636264644708541693708447578500902462355606409016845577716183508563223206353342513692427017491333746638928263271808028794550913044149987402268742775872091228651783906394698175803588349871336981310980931341544993923798916499143432579415195234304231079257535174761708149429126561071538222202895528931785450207074448581631935279051653374948511841733821815476630001725844469856982792789956951454303510365592540503961716646594852431304625786829883171768191271774308929636664669577310699164876494949759168353085759867017765465734729672234985806762094653399370342247658625652470472002723150452016263796276505463080336586737155866550687812900157662052134940383763195536960410667738717964365489496458962255008320445577741778700361307163895498074224144585661585634822995181097796016751008988512951351318319717035288713469443313707390541059817849125376581485792693319937809550347531421260194702611047773108741483509380068599290551373552412152997895725803889934569429531957223164821693327194251831591770141934144298232757711588980187991244260828533332154395999774949826044945073607363904717028958297497582359531260176583085578277648669215409758670021682602706621710407626473327824866161541301959397649437765146995462961433822276047889572012533716808045669513160937056659953681764764495718542855916756637595991586460082941355401120237480298925716624128465845795686898184355094985998461518418899162445886140721392088478248511673089031848190432530382237615771929146830760260733916289433187583419009119677578624711967226197903289702734092761170433879028733425285094447224305276864819340102066561447590103337898608712241015089643714304767282821061634007762102723871726159101517390256330570936419274382059165395217314687028794039904419490305557993710371848106031828660642039715375109226285120698158695427188281117742626120517941576286164700387710985958956869578951194416567562742666551005844477541438542321529756927121815271042284172703118073046883049710746817986665818150248724124123536025882830977375561944189317827810494512497102057777835091021208695246433798761897965067341118981516618599142473736439404834430999929509909895599980079254861383686755217324863559985367866326302616774131338504001325011846608366181032602424021097908264734725594284479897237069323292392836630130558763724623748963888634479818146918692284211582394357868479988784251068022332162165834998970313453051789742685785994974294204877904098746820319793317121206133651929860934482893892225199767319973886652096716132355855331380677751116132748587614685892514758926996549450002595617735635265949050772117416290508667828733982850094296113417439677155453860557792012866222948144299450535682498051059215095119197785579752824316025957048620901543785618359422593253919673588827619947391283296692412752205569414754198560256195422233585273132734100970337696693240548950533548605686781501384517292843659004040100762406090291893252290099453316160070894326476043281868617578744361105358932970858984489611594506056776114507620851425086119615167610694735921081706681321643833451923420096235704282803158191542519863193178131694101171775196479347694058415792340732758652458485258299882027881174809227930660041903383723239615234434559515531222859262669620003849689830113801161477908278919797706483986650048123966936820134210050406576913041104826554817078576713999429360429067648339407895277749175424930941083098640036988528387323198507345556992373612272759993575109762755249020170695649651904749947883953055580736333386331001555395392708397423972514182632478579564226470887348014788766194713259594533007810288658700851735233381441303201794080361877597997666174791058779214968631063861957388094539043595690203935759073442374052829429782122744368740692243551996918447280429349151947484398454095432442461538040723821729503252133056818011624355866413405590371497948042689024614409833859727137478353867016009684361751029731795990730320202981516572341430547310723308444358678263703090165162690609442856386392581118863792596126036202840929988197870448462037289100268941434093600807066526031056602620570971460484533724057690679658562073331326374056807551946427776162519479125329629137646461929789441947203007513747160492340365976053408218774883471551791411583633213060090803446376564023525671897021188886617535924476098471537321003287422867092358447250439164175295860702425720449251920037293609443813689880187975000728089850383216108492377039630420148505628196568438794026966983583840067736842383401285667438496445514811383511486011900233508129259781535109293198972221986712549602410640420677030061230336172544356388515201627099258325644772078196938295530661291996450366824073390584476951304931321979801057103013048688874675312145835772933438240599151194228264500695223100854632922282743511925482255236378354660354499060083260730872056258537371837565395295474267619425603486421039884894492476865340092846986042494956271749943605051675218020340781941045976580365037755306936574309670417333997315514248884294704627443379916461337274741127750749099504865027029934876911659412811794913359753700838170369337829426361126699376373973825775553480465088692095307510458879842366811509878594760512887776468492480837457051079875229792536879138338479405975550776526258884424090482933922078932747988440389665402534605271742231621971046538238686601453348109810641304328100681325375978318145748664999450268317489001111168856856789581790723803496672814412752221696453981548215817817412867873446674376837186818586047062931663691655431540796932944724400914083497513219860600384048008472088669643253649416049746232268304428534417733074947670358988453770146424531394527174460378066258041558144897724462121310821793900400779708794068372954724308770199735931288476321709882963035605253869727478273853462912523305632920016289926440712415008553612724828680123027361393464784836581387260522378906668924137361568244291760861294603653088688432160877461503610873995968915558802871730339990779309866224953829914988833826819434163701464861824198316411826691168418400857991004579445966474307078563940084680320379344287134190006750773543886487822765668340768018413617051771016463992230052715328316159707531506666340896112067271009633191011406830458867024731057186767195530870889620467784525761422783802107699113960246816763752999840572325173790963221685124307754009697511827971565743304224290058524670668772969046687069811400844725737135767936840512919623549062502540590102722189114089443436328111743071211594397873963927084505642805906940022630460159710238472975007362148565531757241652004997678185059881799127645766415758052805752373386624923658003142669101282415276998230050502230061290591394490524291995117371663591907722342655434992439947545445455706904721514913217135373480658845549762225524748381002900400605964197295869195557794241752523035018449783012125780984323348797410147475521390969109491759322465237534824836496096089146920594949456492016891233685834866180675143335459479225827346479065465031088801727412954285008275359541352243966584007240627689366080334657589265844347651508436874051688562533870628523151366733302587378625382506098411945578354399927644264793085698976759942296856772531920248708298576840436722979525974526516852841814106860540131076120276304346210329621618964001659585232642153917981383874773577470900938083248475414278152948788993383613545155680446824102505818891538718594947169017202842960804155807424653251912135930789535902560839942809495826597060520384588251829855883992950532502469386674913120183122068940071983974724067279154508177027622407522244728302829432606463795187906042001675944507988826651165418528737414528695225245499680543649523884206804838508595014998428956622323129259022081143273659940067611788579898746195464003645502925741120808992077085713196163558285043121502283306575928343433079409840957671689214458776687007299470135965865559218568225440474750261254520347356403070820462797322810941443338849798624974296564943295357032635603778887789195077644667697515357381620738730746975799468968147902694218354557881461311795859793775704690217900876104743600072256664218447755732286379826547704952781653891835764816642768770523513615471430700487635837510675580255922706633854046780688507231361784914291657831167322701738051649767409564743425876739945022905865531314446584511941261936887881888587811022601178559166693152797153467842615019962326229939361900569741973702724860795718503369951963497050790183268243351704829272127566226893884606607167877892017438861811319392579580847608104271763204686105361239993855078804472668582465687369843952591146322230156688934248646517461639158011562408276231485859520168059555496988289998524377761523874598755213029556460023977895921528704805964821432309319702692356131572786256804806276120476272525734619924802796957677713812964930604067654658595225352534723561005055353854344793071138116153153805950632429239440729065231213896729110256086813386412943460233249255175480333090091501211370182254502941355980752224613678823443259370999491454559361758235371949744720451825794275797408640203663478982058093222611476988009377308088367189573440425021314115336056646516380993586783545953009412351055996029462220651588343348121831833650044222142933810752519570072065204668282688083939004692844885489377449017182526266753972501656482480688150338259551456345118084354292517250307762080809463554136295494220185434595480017885406536875938470754548040654573241912228893599064868054749180221342299046484551329126985566641677903962112095140532548822190420415093210753114890185656792562995257618703888421829756498893264671312738422327094344832476654739505504699436534031659596267255277419656514204006458838256321084978497640274710588288925307242220169723120096204775713017144154916603699158906334485806858117549764950743057649266864279324869184768614933328837975074664038012451680781279497748576393309593747642702237683369715357992546623190850262957533783627343257496207295991882326516702703927669245385786322876975217199223628494903844748737578243931731209895458226212425509051532600417919155565071926203931131652553678382995915061036214252935890341752835439286335151966505431959945649726582979999108173127420305354418435462955301743009695577607439241665421365714886084611205676386852515407139085549387237446045232383696107176157089539059034975815335354104431936179895785117796747959518808364408341434754431042545094581287711598946632817941225082667036816834307969974954301350485424014960244477880926137661175844048780697258914043492798809588114198522329539815468191026390567682796741600420374228923641566155834877255842929790663136322981585977315473406727868718955824140558369863036578949168330177079654708501462586896728921205179934876279666019165371286989891226245475935766869508664643658520626636144042706314258853272273686179836308248592440126503422603493678309735371969995318417377786422691243350929663879585194262633308986107804748863141945425134159609060043329270853036502285684429331005802787968654572308001857873425411377199556503069438709184800593437667528216971384252702543786058923267115523644897908871079726618717928045693703191794255997809735852191695492707515263578866907563185496979875845804203788092536683688287427545340620186170361573979877779332201558663739338714895063067368718934909882140897695866687388631533545561159383015189646935476394790307233384294254339299468347424946849474537522423336203487116521355506757388776633178005041753317796709967955826281830460295459368303517067104834940571672230211790898771202437772055493681407388551592790488649332338617123836240958270930504394108952210600845598900482921109035216112790851625147460962234509011723473889165903412655201263716382523643263735938151712329083859686274164328414606722781721981885858112077554465261846579475991074814816436163961023888794662697822778485678688702165685197334889804270296266327159439383884521269651073362967315816317374306750556176439652258313631729975333469278567202832547100242585199938462950915520425519650249216512219009777429313661552348941935371702403070297768219944881990920014216565405763714461933821137176115556950680563014802809821584536566357613158211373371943516696380737949597087966193727027009717082760489908908697588099018504990767303267005443551145364775530263747036382996998982022943560146208344306297966136537502266545836255505951939752858927293928974697433268853190360091339214487347568015579689500377251400372712290193444457959471745171297398292988796818398066281298480580577113548091171502299359911650839642460142404345849320353846819625018466380078500498243877202450235968422759013637541539735396711036972263353644300235983959744517419251241822728543786509018708623485526218757776923993600106407922583547436767427607406971269063353577765586342627876316488242326825271146308483559899848126235044525389760072721380986917918607891195197162810721819598721516226617133556398666166644387512308318050649904638324910244680006876536897911443311584727295631380889556300384878747557042835505287223846012387497046339684680803586525544018416477646410774154241490833743275929116493676854628010624954353851671403383860075454098690766047952043208820096448867376358740951473292457319906829648773831796226721397354644797587397946253441555374485231389562173839798615912381622853681293593064140600483244026079545743704210949615148963389547363091143477834386152671910776266382320854158569684183554280686153529085701670753171531752865268539820460540609708373958934629162826624707554198242928482497890744248868347841953709662163795197234613783803748902481113603565961549257387233319099220738781632038799405113427328075876386942069780846632472499682525658609018296247786315363434762125281762073976018861530471696287588025727937544187533389340557347038808636181434403862049197440238496785511667103409680550368375159581875841342819302672304049815270155965738215967571037488456639925123069843588573078761537731030038413255078733238568006837685228853386998529393371270375729001397244951685139001184626370168846395885524169599453091874364998146042016230944235682142386523119384068744918954250538122480742243743754235756833624460095950448338499120961420691988005877100820503792783646697718025607565680928797610338909156943105756568900853031211022076267499933875742163488129227408901381218486822210772152921302832755843558509961784260270194674637594081231364311819656959682903856850907162916160029713837552997923160518592243521656540614525164367860069618463654910732312988228747000268151318580301807419498843659654012791901674849623051124859102668042796666225888861823552856277831737613474140113320491783159715203230698320994850046620120593049391424547930932890062006108058816665440450601885311913706109992861998726690185124752828325482497730020711597226073574139331691682441978579661457428974995119297900646195784678210188740390953719022049704200179147143305926325170042565612113286777572366237818177627846878368336719081108887785352636571857789723786186278764273623295553312437710224351114460366611090613972698962965860806890696038466536797447458430091352622627976432364337754474998577903843137992614482100969684004985032148980400994043807792846818993721548196949130471003012402956666912924131510498845788126913514813414036932316493773407806550530200769666698606473121792151758589842345442116666767580779832003525397879497810999140831736212710013920337364845368513206310926353584742547877200726011391012482356622103580432514713619243402079847188447587569114673587573752454665966965188299897309089810583257363721471833605089963210983308224320180836289142202427791029253499980949999678185946942170785422662515851535986246200033430443115787091986950985881370581979942135193548781445952200119519748839352502759168604672978703043535656417112406045824620581905726138889047093115955560657436846782047647248350166008474904320592842040844208091965073575504386002737959861087931041825639949418019220495496613600252722256238651410710353414717794571361386213073259985928477337905245722859685718022084030543183230112412466143072108218335532764250390798305237103732808355995457209526126932083735414349797956325062280192486926386211766165878236495754592053455500195869506218581432116902574936855067717150475882542309763227385809818270891066536644184740926261691255796263126011880302661276685057241793610265991766534037401960217779466112307692462975034626617018945169062593541598765331914957583432769138682127160408371736594668799108533543301165983165764642363843020507706477060565517893266874995433956558703691693163736339323250502949610859466673370077240602207488265827400764343038904464383917122526378986383327372785582275384661364596361318239690898607510071735520996954470766230946726828405782080108395150511756662664535538016130838333518666005287722463785941331381829674667255191735414026258690890477590231487613502795778810086045659378477186802885376557053835888547345507600113375982124949816552212273171273038717590406820316552618039104691262796549731000665318679061820385919626314490542285796844161023965218687061325894816249662772741446598879426584422497922395138289689659815051432372779891472988883882580440505884897567716740422676769834385893788144838580213326780509009830212056399964630704931485646625124926800534106529433994608220087357029049823916953427399585054854923490232142399100522047466597273637316067548268612042125819159864034406631868121695084915566577125192687122519291105981992863971618139469225101962380720657753521714564952846463976046255768074882800282926667115574493677312814646604865483507273594043152491706197353069286533828921782171246796616631609918780919872212048892771088294540109805330891290029154513460323112356617936751214003713085945359918428933533070490999280475057262490589848762005632182253785487555002214473505028868053757599940346041843556504675867646636051421231124940487245912204720378067752577437876037683316862241197387857243512643186529516459252567911241714362362985000191331266643233012948037867021168830544433760364594320801009428256215075141944266283225486608245792245080327330062398621292339837556741758516062402415431272023387481177046439581739641673025605897624575484034415240729530384386455806955716487556261253596446918126748509021255493473803774666665977216689458903332309078517402159564062173015189000697416319626399976044733820658494920938599634426374205308438591682355422064317126481694075807781210757537305824501152018658348500822829416638479079183867514253853805750663909229167697943508004146247277479727862852673266746128606447165405067981010868722608627868676662596534983222068939954738723315519351464399290661869760506381262779293191849468062968368099639390394928295717661045981095148907235603253179144649053763134498731057909292491460756202190259279343246835080479696802767784478345462447113918581263814552756701152927742868202234686868764781546895440183550061231638016116960160736469845508128324549299846422940465349824770920075346693009079385577929421047820270793148499042315611625990360214979524023533240549964699845020844706755197526859365950581772562954369330320908945389342855730097614836108217034323997749763480191173049157474422269906766056192449150174395139171748858659592414301291553948622546569533735749676631727666746847600171416302314681311840307114184542115275383686348349948046756110160998776277328875219181332725829047261628313489160876746733576654146031009160272609801200957650319759762303268047094888181615290817738250453777911136073784940904659839772181779409363322657617619850131879997550789353216944627568135025883549515933216133001189065770919519528133398891082671651351073835070111278816635507520697276914107409247892854849482938037704142304365703920233006238562123434645065613168137347254176949738731301513232929637578900888235825499006344791792052451060950846285981759867514094944667981363600082586442795563630390681789411081139411429051705018761472347453081102810617445328065136315910654848544203859239731520869760336125694865717821187430796311429429361949454030038312037147078891102584568756388606358631782071455136907524505393174335616351882437546568661430549617675851599818211275720946481451001439593929441482713304430623015257943282958396154501290825163379890445529437543086153329573079455438253861870583938195378466571230421999653220854538301488898806285191883686807627718191424693273467327204742149553382230974235647139850282162507894234244721464507611880675069261343083843967203251987858203953227894956229749759166724264694934610199242852663877712497777657075190563983604988063464600556915325230507342491881657716917883349873999233263487219572190738291277258634638520402885267976640539912519521703704631278688093951108776359903132222951775125222956582773428358116937471316957919661734996553389382320809376110876582756366887391977674199524953384898550537145772538732687304688853217617244655026716519893165992372732318433881203363300229326123125411444163817921222908677142211765105641945704267334605887264472550920023076467727247442701221794880751727195867448344521634694755205514759487770689660084259345353130381996640338142560944993404937345833098853687123609048160862754569389311577598301421217368634694753567727205120179972737812382320991141377610351382217032359892831681693939373980287431724051396842810841790328337090983603851054177397889950726302380873135003078227369492954647353020109554043731401414773968185095849885126190949041636222913083387974294133429899078730065930926307019254621344189963479350553309007379304275030797543976847346759395599655689727198117335088080171369390319847784907872554384165543514613743826798991818164297718332943785544671358358053444731854541825366836008024048774674773725107365023770026491646813431472788493776258032016662312679775737393713922192550889257046625952581528094284718095194085630844640022312458370004010414666329745268931495608823824639201846529220304908999594414028259891296032522717856204655204786644584722921925141009777287663268320182060545183195330147398927832112815390192616617674067846737107928270116863833482099675028291815971197890116441950052492667919167493456929022627817706505593249799176248275259401339990717758412241308908558754439374791778305059422398403747236000118185922554511760157671867675091883128724086924464343081769999587719193238049815553934358943576718012095909730970982881236498055768025343841075774981417373705554100648148017890787519344089354395334573934728892067847217460176111244832806564266024515088349668035816843585953838130936677065585757055349007605930976765767454025316288528921787253687950154269447871437277665129484332927873586253683218611572557133385179086128044146112209629015947888669342029243416699053531269706968163812049713505034796266379396381129468375057611167766535553658961832246789582213136746857315392024044500172753028469693202010659077326238718195257443539394516805460554183249128746626823375174262497019993841472744573025325140750649695944260371336973533064377279396491825033230245433919258412542402670255046318414977769082569760362263655401965462941970617402941030392880718242180340434556349287970352550906971344070144229933798791748024507472161028929050743688879286484382939515699416928164382435375558861343227405425428807023870256797875827785624168593983748516596319976457311823238711682129411255867564729285461147778736659460686252173734898127252261516751578406499293463180538712949373654880435757759705466416667284904514496991174825274901886112169323983588424541301178514808452454978218652657538805887265942288462474527348069293394382723585772381429484360467268199369804486270421617437891447559375412178755281563476350969756659827297753279607871710170704945929580311272045325582047043042249648670211776231504886874176876091513058991887282873375178450766593022218892757009381157686185852000434432505651230251647585810130484930268817732997190040980260457455018918224796709997559430509324077387276603730218778608495915873890932444372848042492244547758000898642109109061995656705897892390696299663141365291345876580447628861224274654789141785985649344866428363777415254299993842316042751679392442682418742135619406317979379560291605618601642651026010664623215385850851655763836809892792734373247181364302249527434433721930792562820116305428278960447001008321076108737907407911546659457841362335700156882452341902636823037623420531005882813853133887168358909288242451483434385836760377563187727896391995654825459312508511849021496959160103850070456676654772296246614101303492586012548090166423148683427378317447435408784801288880951860301750932721624818562572899148545933674679005291767342618874368106611181962760908286253132874587246524360153909784642292080006362784072201012429509337343656024604011583840872084372717695649950994181175116917213464632084702315166363338697703308473957524756818353217647461700767936942170433367078837953152543323300854157951456348512704321032357204837270479801270888540410442401482546421412616131295428645567573699985408152938695652095452678778952546223058098300988133786754344725936225423344909586041709285652071753782805908193502559022510817007658853107675719692357192312722917848186221210486862285830267998084976814184526888559512558080130983337307432794917439503385805880425805871332422182017029258236286804631258920807287295043365051319185844144017783069498119033072529836833056322705688927193815020977095860518617277539129565434859968737813356854239133532183023917814017632495458405235106976345269765048823314995978348352669986659988014089751469764000144172725729323662894514223681116119713857038718884649124228095817870900581578940161118938217871434403889690834777250910458561300438481594151508982884056535483115995128824192384049410768148431032406068164957826283344338802593900467171137971002145489069663055127158920753926178895252323580532987558566191492809757722023039436197183920562685364649584598701136875032540148098526180928985214950594761750099061629570338789364772214536082764006440064562210984411632611035798168662819021458543923288010968804328171612122601932445717888164419861598368984444991874708439711734130281088980091266932559418098771609605036749717089624808710441278068890561166630896183989386338266782546728032350902804372101544764212384211840757841332725556719738863044201930469669384070962844083260222712616603412120275292557786988016967621610352775404932760801278370468013709925315967847287400413389478313993044085528665261684358172376269911456689693271496432146061091981153435261496342728160545811178739468770694828493382728985330188186324382113238581044598897585080778445438641519883915317040838297084307696647874965451586565996871377609984488557964897324362448941016017762919307768428289366245086171549696254274610912513023480741552680049060147066789878839198117686271307051361708165203559334533708609508159415656438305993649185522070062141111907258706456422459721465682870886462777827829623308315375417365308208955054414268889533564283146256503551408908509377951131533938992131118999809435324569373189246371599557613745306478329862638036523206182596591439633747993430096190522126813336650964801422518987869395969922446230395489385285040358485595353449800580551109978494384057211281875620783624325227680216330366389299453790742755286426610588872655649395967697217728449295127703518735364279125078785808506063315883403026792052846785575816308218374427576037933027707809044471471897405115328722218684251898484347193055504358069483894978338207550203431590580569186894750998992513278949747412998728704473966307115558864448187599508285560917402486599340235973650534515157958115931458425142745617599343102243714702854153707853581668182450834961207197383164106838336987342130493841681960647058616663251204709286635263764274949053138865385569620724996451901465755281718706337241789916691678663806212308657961269675037429648627525177352650423815052083303516639343522688523601086682759119406593816028836717979028713956517689439075467437927990051549583631526853426786926325949264826046006982183511220901251314119507873730438671024183347577299532735553152322397357724857540860710611663715222141677600699658996524398067859630524496336900292560381531045045724236328424787273250769792387947525378371839832413269019688587867244674952248222376942195782348918228658254923965702520147461429210387920229421114309998688809520988785919441718259170137468058236677808689816454632981745080516019893304499928493300984420236579840889452650304997592733797380250167431607082311947429612598066212176243471447625117936988292173352530781589746751291689915412986053946072525469294293287455942709720667875149071931236889587291957914302469475542157485288812595404899672268763438796351138041464703547753443564732916568832984267471247080922213996841116860016346234265478854845333096762680277135721944965243639470269884071904449899930504692960317704426233392951223672290930418816533234027335339104589799992576139941835719127992361074728846993174157541502422608283848347523393617806557911311039713720264181856701525908724393752284044093337029459009526668422498319513191923071372349295167055376656219707484841349104331151591741329472355169343322449181424753947888106407837209946896587136127684966905809932634434305698250929690416455117846081897495018949771792223151592626360909014005147708504957269173073210454748796059033104118953018797343386255152415906606755819482117356416138343636948812471924659559860937716660764719009928495825917775471041197385182518265789222316104785265910616150581315781142801309249346525199221058937550255901503057019306878164636019905346277537019221797045134530116119810868480698984052263050278271112682366817320466002298103536767690026585877540806087173275571071833840808513270289367405544347717173850720021368987664775017151795876199762510516669169741515282926012427249454159272983000613870482307883375018192674210364556892011298225893680216071810038693421340746329372340474076031288585204946716433276051482392396013569131892049270517710718513586528443439657098442002342103921742318613386172589594498834910008159032833652250406030955719596120865697822926838647581880667686982245149630269786676415706721480210478468567672191378337830576586047214482693738766764290728130499240605336777784839237980620820968502017176050969724764648001934931402842624320339159831943518968065141772215370551345206331491119082397930792610492519099594737860204401997193030618278517383673026295366069453578414184023829173692142596011193707748101034005907393063202725672653245345512373914751939779659303248170607672012759996124459354590770878054773953093963603738113011176705296985979332594024125093440608357930668750742670114925393332178384036277944886511340905960347285053972446588562537066653167937474871629602178860649359870847479514367957237921474402216691369047928137223093925444877653020416397058813862077380033793564348569673182783918456631712301956758332365661020291789576260024731208956345501508815063938877777061437782357635192804141057605615094020952267227203419328646164270052009113134624763988531040320965834819226325292436319250191153362678944635601320857220874500793445575683547287329834840870592042416821679559230779678352989578962272797646635615438126020335842255276446173925034248942138166379294097281613822960058632044342898298994661975752227988692956983557603475431565421677787451491763015784868559523891671766538725371006064040248527720770899782552922668468021741838593940184923511522290534391688622807849366033508945793815953521862087075328610187285808887533335309685815205507217562072737737858277394348256487267329141296057527645265070297792542706269668169673079795220598618842544705931459163329011817343264256655399960039934395936698059732104768638996001971387865037485124631433690257197513332540827387688806530352268140040246705875035894087449741234975649684399731415379225873242222026297748815856505226968915851919668095358023506263116824600013939366472139021998003512691577224452179075006619403036393103167119300680482962646585774697097547526148486148492236603252944282864424097782204721846331994008210455775712480594838601183203650194884481305188052374273254747629949479483776382687606613687571987366432900255320467328117670984808537748295400699761680688749534200742209765923936788408144207973492184438921721095501573051012394363287915290134331755058136016231660294790905634778435101159940870591629010716239102988683030656727802744069665601827870167013912128774276746734127890174191707127749180607045193199792695185373129118263131048534922079087639793713391376445839823796042899933810398093641715910452695625272717398161553247357023294285699622683710416609158288458803646739111519745004270697530170587139482679514918224214880759494830217043705389667338040856535334742329621913196298994765417057661134361306653706049501430549787613151543298032124838193778284239515575187169769330313206308480191541222755939474589162173523640629981295639995910135079585586150273096890027386786595348401285496790339850460026042015566246638390030015490095794656272688655125857018694496788590738989441421181669297901730417077697330378480379260793027681138164374723203461654377322306457893373820410466565419136917808138635700872067909902278267764631914704365985322157584268768065346878312903850710084803038840920131006162071902777397162519386622902145551652198543387097770720950336317242054566044347094193197316719826302172908859298914934048034056424414697438192532000932300073878764283223983127496108936033193403010434915673228199869153392018070145732416321728147890077508840126604398436631381804795288164739072059809627966781459362077540852236444204800427621228371837636184307302566000676780316066841833413381063780454982839090443962846725890862111206755694102395480746193432322988426223949228843683809234356726291192491799342760390450788306263093462846944406455589062411253170465373314135997550153807737106902987125024623643034684782414423578061104874313094423373574948840115265072866216281065301770979782073984447149505914852210122361184098127033360918231964941187852707909819040003223384298780348455524720294528215092565662747682125499683982979896187755001164185780612264449402095741527500884468975822805349219590587041151231566290967513517504657871219775912612145877475999130575220760777859219949438613358366667762751282755694081153394236333220744956263418137831603305727164802084698143625127078745055280794201507253819147144290566162536939673686557438078737001209308088862010404940630513671320196808885870702823475354056950019419159515300801161014527684482298505427565351111265009519505999975299818523556534162946527533972693323669430424770203704138802322781480112468039960048316068657425176474475004397073229109644933229207418560182915190491057647543802551431470736938124913448562476451702350075622211326422130060868274846758114471501603165903290356681636569338779868921046743540995627605191441937528920409620578301571430745993934806243901136257382664024833832663940251663776081070146538186023769171582189939971896435886315525894757869790157481997588773767395034984343862226705124215395648522649261210724450756365621902603826463468830526876799886121828625032031425377263599389452902678425354756028644820900858664348088250917116295647063128544912726489330528592116363613349704859357247885624936257498220796120026653332035905993268882157821559665244170812112346394109235898190601222748461298479459920418050890486341354358058002147781303296971181820960177212048999324438631692242827156608605657648108490787962080612814588218236601441694488121356239834864721853639259619521568604008254617874377159553485488663521828044403649305690145295108302868262510115592834696379505711625256839524714167897188486134761859506000078669655283048093419639642498522677183310525951785115702283935896013895321067288416145724398847035272607393484767266344494122669679900860434474766057726618426034036859915675224432285995497101998049824071581998985966491187583302242522822855246350577175886381666282688357772767983058989499198999523709794105422714819504654666085976032308595540572668804240509408373745182395576919654558277095180821197370374914799985184947460300952353581056193862038230555049359576047749419255721805940793980627180247710274604077619312076570083377264442250370188965581763919305591718942946445357071545092857968172292360617950850269077572819556642947742053997249845002328873996048645921272454735459614381054694601578169094531824158825670356310602483465552663836957191908350222172013198271474805956044874479216933738187734661056329557856565177885880219532006440873124574636079904125578075998974381889073882260724459523198544390773809020274371727444280046928724521110538710697155141226631171299611917640579299793624165682442204189595279212448288208209064864109044234165499959393203083249530943256219616804084508571897163463621681416631580942138450975780823865405387439547207165430095401305522520746120423556571891647151480045227887078275458441749864751201505259569466380005969066312636034320016147759623378239803014856624760678522180499496226762193901957198849627948412888032397690001486517077057386185060293359640518860759630519036281414852414730907325425971104894263158495884861221863972650834551115050918943172277876879957662249477264091806477222568556269404017772021754839926519242541911514002291081284428656750971575578304898830448477307696809975434303157291641491595596100269706544143157006576243542332805622161144358514611821296085613942888154457405285296991707124011931845026322126981490500252601784425806476790842179613992834658158157390999291721312779699437002263020369345623043379684020353700439015604596624844369410930498340257240473557757834784101403370472616362194404779514765013259043115457145520571374415042013516235065827341271079689444764587102477674557028412528729487369921849181993759818213187660918503710940958880371554539055325761976642083992063439207575799675465605152234909142311868166684999140909704743797806653745539061695646565415371865340583954373967624676591197816003670087843887864836923402262158802490740353200553352442466241759174415162900299809664128155065885141359739551756499617767441896087022844714056022633827760948550079542519334161758774025662879611930992984685400918465386747494345498089890992804346587600834501090751586776707226360592093783572355039784421709325566650530332644444166694253842552543423259686969088103019462996260315049029268092835925186398536605229507764164099618782670455521211187250603362633276556585565981828646942049688721376600017609025762410445738961720715786736267507168950104457907293863712471862341707881612586986381645418522943562776482420642061472145980479433459455454808262823725913971631479456662682501288921101099649763803756791473518753356870870177449308705344073374042529912002588789426842026839693171886316419602633426747113819609509240786444553959092596378529371495402976375437594940532301800335021593869564555008413873363591552114780563217663286789283890460096445739357156157035180953144284338576653468460214992374505250474682711236605511581799471552307710875369470481307529332766155882652127445153291449308781083653530937391325112947331577003546353415937567548414880080314853310542718898126923132416934319939597327103127569532970435932060671362076596571110764585793601918156552417082951491247132825932497520021079624505471548014125511371664805768568007853870691361259484541826293697046512328854467005659676914528665720907721212168818711914878709002322664892518469965626844432203587700377220966357813155904111458185246912725905877257880524465220872400220249630372612045084226357659530336170110246334149941912230069171128758673075008536842122330396278427232592970336535307849601317747917294843909109781536167633676416540061611009243558903123589490912345841285336715366563900489022252943776382597810977412431493331000651604787271853064791573497893268742312238807477907172548353054273646236908725487864529049872590276920730283135839649977220912751392480379635623571732024387593572573055683576290190429802755974954187073309748329811649898394704030916264817723230939191471716239451656298657780911056092552706861080282688394736938283572855163383320411487096612976000078379811957152426653926340021277896815913310593422809914277868490758280743140562548254168987763223758495775922461110805777302297871051750332013708449485918766788196604168955616748637880417403989067510424204463375386591992886685932687326590193575471979987859443341236656363075560175070838215366141840333400164276458332406495264660135852768693201641033719732820303919177675667285292555101300348083211256187871516511232712977221263191559500885684545968348634209997080709807490967744174858071427818956841735324767408899547083293800467752349360359403064716763934529064149002473671870952854099648348353696964898813720964975941058170055544369518060034848880354030927259321363343635288317249225754637564257676799413812483913781034397193401011379229648443325202192860849274079484382076435180520291531474544123041025464184809970513313080991707195763733629259555138902256400954057957793752788622207288535149563905185889001348867284358627559804194517268721059096874511753260242232519088651238661340662428964489587845858862253286264849081176950879739409716112825258928484907251725603832937790632712906264755588900532358058106274749330954851484024077160231220207460259374940489020323608262596603251392361153987967422219721421715795340707598898143896766398150206311811216576505996721235476947486023292155517809554963512931883154658379995521667107844778227521877972165557354930051725265514910195017976168689216665188185057796839575890320691002948520795375947877906568399080451737380995044445513759698292835838061193082644903806758307300644308757109100720746782762212901990868958534486871317637191269883002022709508401829032106067166766188147733551052135431860099152925537251499870385246426886869629540157780019784388681744105614207594090808463460638071866939636906816908118750264923528091862325868730847441411452607929957320174925460394711121451988506520252640608895093874086474623302768695568095230095646933384845681292978521061491875166728756901491233392902735185986156048010701329083708142059828220014293000245525643857601496041002147435532712817388085494797833854314003504196168904036954493882294629636207422910904264442048691289425165937832627462882896855043192737460035843139570737644376717642670157323999910299548433402846664329168574191991708287553663807586586023526076443482791001427047245594978699590648075131585100405748862244218111513174709653671530431587970261299425708241896883254600095155832334324238177326813518458421055687887906593028871658295611379531604029156593321116562046308957352177548691816860135248145212368110672332542242478367824356581752136200140319205394117117480032599488387643073462663469461827032211355824490842409838090203684455251082008192298132393269936214669573858248313676027226986219534194246970653028945322562740294646833663557222085670132659195692089040954054501238650973133665063217922974240387522230391689222553796092663216531333441087496061479836356997166752976620014889371560408479501311063477912890207182640837893418795422529311811486541301696267127929123502693649803784845767254017036211598604533452215579092636790752191876406472349197894152549089540328092554592472216633079147010773274321887747255737909123523985622783999835567040377367894797295860377715674115439872457448418692777339391188338914870686913441869842976615327071431391935513448678797177988849074760300135756538476933521121071611283884835473416554853544739894186523172136524145535118170093121359673588854092576064169494070090978943550953418344858063568099443363132696840567884705628874465628756723997841801126222872505619584707470475008982099971101557351229308112451910151496825044829126251096298610589097582494580413296615460497979485459988927103160673099445869788936153780143066754251117978089075332814176239067590104986303996618735218469656990024836879140484786667955352066430664275174257294713486824694804013262513589655353621573333991540268047393227039797104286177274063253763351460401177570479899493658307811238354616525081504889598634394601909050631701016708723817525438503773089914254460261198104653789245976753986040875690694434771342670831329777957825823696588026253395569605926572447587322177439320983895334588754570432322949580946917724956686865015177034898894793796079858003014391727340598457760199571380559591670445448281779979147329432259916808268520384968033373305163683574893778526767100165411359820498140533040446569450563539228652875178457809049257228472078818432325217903646916010936973104389603755837724959394420360890938441734193833747118857482169562192100019459205695172571126084443810671304685966208211746057647467278906337436814656392518678395815152358257384646526342439359466654187370677402940267774052125473006246360773748782530432545347418451797549086595371336696312594922369887762529064446203134130123340388387370941136451818690066067010549173420819111767775626048758150381965442055656828338731579334635812154046145705333450877181673282851783557047657269743082709197086491857157505684235153351938269810827880567098707817606286346480069113099808643287725227544798870368718774545944805728118284812343381528375908665408106736102435012267734391692884535810737611105395587562075789166945831221703427452142156300329306001248589961323978518283106585762505947457960893600787443995519377450691907380485880683830647800125370273656473281916189453947146282148513224397031489104298845357869488535634672079512682753011451346466367637549485185885481737723224618260143159790493618073098682502976098217559442997897922959760039333255343879368289474485877703530327047021372126716925860953903284599929838679804500573493012974630621299803648211578497758653165164645823348786692932170795510732546022273343737621353565780933624379399353656194415504431841712572055798826963014275989634265873766089804917957296669855068200881789841810722376079429476240523942428624635397640042780816981985316941360355089149100989301548516791544887950580767775226261556309185495683958421221191312512668606368721150895143033436318946165159157896063734161214588595981828074238291351567353907713226625999049705247563869666387700461915153403519933377798307828228369686617500884382592174114701360043384418354663608903566438879467621938983543562726745853130291427347437831855341129579934846470595293356784015368850683140626960253538526419034924328803092896964105430504927541937602323282705403488559048177425639530612331329784663512776990826746893248816668351371560115718483007864184700204547760165901814646882641745081764663905037812280002027381110369183562847985306459620973393474098099776070571634121024386250703158760732857109435997166715073866143116467486068856293320734538872173704390019546803931342429738877816262381510316099519295787402845687671832654491473770958856063684843064983868011166634013290558307327016415657489588685625410879062031862202550144912721247149964099706861200134049773641783116517567588669439668179995044776545126075665015986142467799224956723694569006855949823639358483960399639749929285226869097348619765562049347096809649323147765748070881052229066049473817375026364877192815090754855726806874330111345047124221595217062411333173324290810352454689492759634882869279397399953111753558367945541510713703109548864095051290179132663555137906094020807099371200522967863350524846152885142024527357782039013318121632765319976272632331740859924774294021662256237407735786524555876968629464772012066126864933057466340802415027363352396946543894857485231963375484797991511808516887315322429290668109624755824228916841183056401737251004174986089614330491542258814069488022661338141973581584876413159389185954526476242413161265921588783675066147927062551966087182744055817731611208732636208684438680737218871504860625405414782546181386078118400886972050762516926305385029747060981842766735534808289448865408362588120241399845314741130388806148941825374640469882935705526019147412252237425415175088315277575261446309822975230683533763817066203318095770544850981203362465341486045755983082176290633977459823607953187945984150815396219173591314159014936218852236481458936746641117457421511746314941458581890435667568756114699853915440414923743526146201189130892107036321338310981065559096588557801380400218247779492914158819488646458232259246346451809638563655396031932032699028462469131467410904348577875714871531978919708273658610451901610916898953273692502079437006421727704590366028830611425623259214891535449512787024878842380167008879632759910190909351338661683397328580283871078726153553198157625230378577751274897062636249068807920803406113547555370065902060662948486183470653502442687022218920604527233814873689426125418200579101413597703594263748190564343842659841083885428000439491636159259755859366863538040154914478231238476541926666271696455538628114606401956904998968440141084958157309181304621706662534440372312994192485362400866703939905574265530977373604421650851440462322980912273921992449171186367827317933254679683119223777468968916396202984263858525261209322013435768386589864807749153957625052630406838253968106404186661720666658306437195419018642341925140873692681483279041202524026705442513382429963250029960062039702524997970829686477327467823018303757003755774166679891401556024560273097056511880041292053810692134269995134987907958212280079905090856540267939168631819246443243374763238640654815044867400624357233707617270661348628608532442308283425433619214203858506175243405899034272707675133465156730940202440657233468758395759994245380819239504828432312028924504050978147566961400374384052535638551879826798650249887945200735725560293373732393753357181186017103514100383451025831128341000036265760699257834870788725231319100604120241458659386161662617810147147840610207741338640721975969045232316240580290769723756159767914961764529912404460865094359018323996026852210245855021141622773657177320359205404603212526645877249348012393695069202961169753764442645525490234332265024450620408675719506140130234729243244266404720659028840857101963206513352701545633536940904707915064446596991796750851421603810403499086662077493040951168889081269717640750700802334621031257520722547072031961355316032564387602040668948717247714790819995730788467176587406354150350804316117402505634808531667463058414030689878699595742060311950960896466094980444373749950081493572316208401940421962541031286288614613880465169155302434109977868548133543093541540593983372378073094263659357530988605296730681119304778602997449075521807208132597108793657569124939559055004036484371835109304538505860779720086355062723165226616541387923396894546939990064314264012718296537299816446732528783104739558886160802635590182146460091326560470436195183491385552844063486476980135185966342298756755706640354936422668978312444237875767584008501676931545231705880868334316761311992634751430819725632701658551565853434779688151680095088817680392105362200275881716946094762656862217842755864550816719839486554175743038926215737856853248654145887309462201521057140224004395624565052557135495111029110520631299229071643637512145471601664459885927270712462547138801181003136971920950803935094405580028296846156124454908712417343629734499784620139005746098460410873696603609250581521265205228342914350662842673193554672243800405217717027652904484252423301383959582285815749321331217697059875303794827884620037221825862645156759416645627768117662387941330559933115370600641635902713114035439643479042508571200100155562064185655191910467439009791575935841605644839772893662586862523469036211072317002829944182327014646902129343878526075930007281027367092274212968414742766761350285032296887914304714864772311771729453191624162204446493643951614815069595705925100430188542304806449404877668179432738138081246462054569322042394665272158046768410520683282635056074905222841458721293237620835221835153648660135212384144166911771492728111118909168129024496812562748517806669410957212200716699289698518649796595953975295075624873313205516662047855178090066989355394404139958519798206387871332259450832114845203019254372140674801525075135048658874274425492764796223893280146219751721445956858520229283690814268736431658034761563100953328886898177659157555889767310050432466488052501118534886149405674829013747147717365060397200214320871340827651305341747604766099561765203644925130723792274868587070529772577173777469488205024257196333446558568031342979950366215719031338701645197037607308329661281455484516453790534903528205856226202824742272933571837728036809502157580608497289317938273763241114092404107159348933336912033525811285243082313345390771127650430694951569916697257257513088526486645026898576285435988145169309241437821863936829668967503507848661885455792472867613445510892038555007632904338300000140515732192157777577673776405244421901701284670082155886428948859119026356502434344412107079601389192504006917160073772796709435515084837245454992280996043265595324813574967272367522204010055735163992332161429573180710323956399961461909707135797252908426083563534213414018741354299073367108255819034273682139967299240453081136279963735420236648924364556684613147539460968110703444750743581085696497327438012691109545112564544948675882154310399749866229365183615621832118401454378260740752567066612773320354323466828155774577529137892100953726667275835718718856168478735740606709952757212269924955852727918271786752821227194904755942697724563783872529715337690185004170044724488902949732981159097160908750173139528627313050044649345711672474853190090809296867624227404965745537770805486143237562429896155327290163791533108531149277799350965102924164305376434469139961751199825553302993521824110292687154935757200628781602099482698534479109899023634126298376801074097505339290996093399147384573534939575330654967145476558216902851478175695591336115245595549427428911094247758128884252451029009260703132990801607438487525321586199979891291513243121137901345671812806093651593124891160108405037216244307027896027631722506190886485419613011090844271869292914951668622903367023630096807170381972086694890396798944224885908733461793277650211536737630944680750692726967906083221782571220947873067012489032344506083377637646179407284702044161803683974986461363409076221996579053283216109951574601758949046586010342993483365417372651436218444140141307867464198662275206930779071605831583534699840078031888697267221012086909230188267442654766208154882789931399772622208282491375264425049606888731020868002783268869114444502574785225262936668710598538740111195949641625176381627754181369896033458484335433321662946951239312407765560715843430197043855539506480018895090546242102219723345460330418558879573181665639366055864082520534175400202683516205379664938801426073777227765804634815756527162871616561537050103599481304044833880929513024353721764259981637724360359899628293053648541172175772359641314189367332797804695300189476653536595492268586260951594582927797676704475949054512421135917782555700235252250354697909193249432549463258338223456651379676618299439674745104382479551820744159502983056620834547707979641163924744571550678602161855102565654405234997882455595312056580129785835079643918092160502758258327304540365340090392687843876145495517640641035649087046696450114948141992963148508556390250995219361625644520645121327796427037489121790592390490181092813023339973954080614825795423343401864187119181197402671735650785708615994165275446037000751355990917674668771999789812216686386991851727351987510216944302441064059916337667108814001799877860984883862527006103516794330882958165089234208619241430013657296585842117948259414494983983308725495727859293096784849689333639770442885651010245838809921997269459830713892676384696730324851841743517183897550288331881766425890932612554167021130139991286444608615606550295390751253505756070989791040851004548571395895044361776663690871032478057759799011825647464542640431245659204982317186250793848347284363789578770058985146232447755029547081080762302470788720156858950730807226550893000288462524020675575082540142639998382607632483421394739244927192448461087055198916158721459610784520767123493177598596402707988426092219587587643906946636085586884768686227260521510315203942983680838431919381107858887985408048483061429876657887211436946045312876343630195085259636215443744459987345797667041652413108058799601215038675963981840823561348288735752999884809522506404504670147812224694921783329838475421433021864737565163815087028552753751964131316410201464119851877632163946580769613893185354071016436946063092559218413275667204869813093784871540267217704184798161860453703046034874869236842255701472933231047840716538103424876707834411822424595109164923063959666225439612078906100989849697214138327255361633338577716236137500941375743155890556850780152158124999882791137359650258975629570811983651649099454612391027232158712267475088862468758193000248982174751553175349806366895580663861220949386818444051756339465687496246085766250953869698916422691792534498256691601183944997805665392799856952018976845634555634025830302139876356612374041497179750407592278512266550238690415673375917263559779750511403458264633191158469002043414360105840998692527954613902130952602797398728584675796019196391323015351644970420069394197889842300294055067470296878991427869582680258471087984677587971401196495285232637397286481859645768513879433953166309616962486148263993246968343255910203805372039272180323524079486241014915247086339985934305741593253749262304467172862042559716224536499518686900659783329541415527911289627242714406119126865324294889021536744305496163918273657061013296619742690240776955622886319345354702739345462301716968995033031394975155134649175707860550528221593566908181789813371688024033054920466281831458762822975043649001126223970736969234759960531840316080843204887201021904473031455752000282387344330833462552108003553933981411369120203589387317577759394013342476941098646309683987924471955197680841703822686407423289935029998153019946458259408846119489233539637048341983629565429456416885253951897221704477289899745221537072534085535098634351964057531648491479067361573710323982070939145395428709992700620339854409414863911755640561858638655533514862621015025701922471632123948807401144430351204680498109512596451659345410889615734518739111543132552662759882898704091319864844475312447280847713620288435318716275547184824484592189680892676299992646498746792617758083271007685375736725755419211816065534053635842523500539941109931866711091135164788508178724156672179822234471080496560311761428936601434031586688201957563734513339178320515352120854724131673046939581276759546151045752924539545970579729383650703474673030908331601168172489145988981691361337041449205783916231987851205461297685228472142119002453043956730962110713680410040404929354448311306373424387578506795503629652882530923247003422748384647242910606041044597304822553112199946522671437611383412010918603664886990839388906394443259605042629318012655827522281268545967351812215802445224953732754832578593598924540906061055064353182104463948746223716231795748269515720727409988740178835534101909142831125659480317423131216158192170050615481400287101263824118842056988201346213396941307601351385715635128739874512749012481717000654632167888028788945939591329867990869128368942210859586831282782648627005495864607026323543471516110763469562332331574739596798401577492206818395711003528929496544662763477801464936190299558941534915583343135332405228967403895993885476512859081264616506985566993261333794323545046039459019390088327355393991429599230448473827020974689665719517265978032713749618566238815045661541056165303609505625706368020611231495454633128744713978428142180987747627815604318766827346495232466920935462879833898878924734630154629237794839411387669888067872210483278131671519748095655484668683696095039930155818678891101490728901129858971001179464527291878120519068088206186806352450322470511003909201353769155402783957537369257499159809559820600208007216302422817044974463862558574973530911105121019435461541729692063483948829352102381544350337683075392614976068712376078651304771070283420911133730088492900747069187570661372011171490861534760583080560532151915377765650949246401334427896870627107096313687337257311310568188083131067308467924428349438878722917035851951873078647630171656241537632103430459246733609606804973552835869514101270465778090377414642826440486683841800092671818736039945717429261405324322338433584240124843731186863255918506310224779163797902846845010981724343811452078716873105799150959513923170502795858318920466935897204583137092899659707939121887585053782237194379538757029184241358169074823323647546343098026724375404017020080970208259245683394925272709358740749515502330262195831463369569865730323315771120442314561405791767595952284956673240393446098788430199410189147868458350940611665450168349591789970782935558669196224612958289074642784403785065294933603087251183165579990268755030886011955620026186611224387612765206129069742529202343762398366848204502560679748038704873158248255782638792714640589887911450600031024693653255007964710181101165813792977602679490952585708443438955246729995740103017924043522034624764330567703885006409111400094154474201112546784846422579082731731519256400059430544401317813841249057429940433315937782286773732308633238861927754835837888427607992330027018058127677203724880982244295084159672103181969733529643921988631369384558430771876090841577591248926174459664554518908280947499974023742114667103668479732422113470432976755227552031006285016923515916937337292935601778945086866609314943886711209874420666148254704785785999442019104940677751922465727348570213428989122737633487023099015472919553723242927669545809854723498860653709655741443164421958085582765884516987313932521706445067861866909468892932619572809279019849963370874887357808960580406286248533846619792069560916960171949445298553016114301290846345280639656224290963229993192371489595630543227445083363689112270394419556092550911429002027104401035896290714587458664973840194225060584587086918311605989286057633247522643659747940892837673999281550993125822974176815202078159670981548136845538098552643629028015616210482606878954532357027718854506367905467771313975420712905730726953157121762613107976580589238563864760614115767877886558189901571447274949863536541502387579760217136920227656290230125922396060602522069828717047674647734721683539574043071584477357202657692759418350177041684939558579429179407015941394825727868445598955762586959383089904520065057928719011156932262206503399682904222388704963709001920402871819915587274651420865487494099674147911700298503832943455127068083450770447068706435103537650588049097216010529965540295826391160158380993705383324046627494846517063789585040337534280023143842546244312015661065508656145673642225117209359664010913040362692146845537537271418440713534164006780725203193060773503354196101711883136299373546866945218508830764361947919686042033771864385334103500455229746407773501376179927232497396450722574328494892723120004315287352662840677392599402957720489328571520982399528256880632654358013956735444940616208233720309895191165839123286819850770712661587053528139545640214998346172054900198330803608043258948991950770001119665213194173794586426200190767656116148232116049256238757509110022027739878565818880488568550147711697016612366331289157124892461844634066613571181825557071247371097401937195013418171684534976601182930891292195914642314534210827228445111988543709215820145954895820277688523937402837377193467080269519248217385567120933604459575980890139031034626838626433856664905838906020489790148469801897986464479072795870191995284012840659704531643861434968341035139566928381689165054436524306300366345789733862139262512029144258030731734560569807495852703058885065212314409671530229677383299167578155817969336354648815741456688062731013253149502286687551987503399365237820541224172185610326742696284557762159500448541498146362240045680378202418391771190956934340871397293488065290929169920260799273089229116724114315661867570862289744541277413250191878884006663637472841480004398547439921323159316750103307590176281014390762237150102860887102512583533051381347832555100554864486546843720609093657144052969981204505295520557298102156886627216867893575167693424325116679509189021329239616983268149708953347016025000448765740670065127754928258949173069796853734902429016708082850275265031190843315266211850431094527620948278301473943302812516047262131966319928218266383482799523086102462150523564827512363056010930596113553201469264406444080541648965597804879560535300409908722407118204095997966919912998449548108357742894480971619775867843798835839373836924728018409035137400674513408466028285395940068437823840670694122768159290161608406119496026646439856389537667734467535277344967626082247695120721127680722896335110667523007804561161540100868077623370168682856986992869470356110198461408978452709179633000814426741342245062414820297186255507659879347738592291023986366023187322792200946219103489673278599775257381147912641242565960035993027545773588100173076423269899886126655978599001819124011418960901628145602363455863578609933277243108344747089798468265042868940968805837516532669880320523208469550086970666713638562002160055059816311044653533701900460125391099381120738170326437270523526220837425632069974007205266930756172522908566418160490690977188799465225821547512359600244821638178691078510715789296524093767725762611518932781172233184117272732530344743110549150779416338380509241928089684972365171495001523841660058081168899646745181216197215703352798011173327589140582771653641532943719697838127094692877305742140457477077323189253545357193217634316345353143832164058691778772520866728830276179530868366791862674116270300856588330815437561954734364373016851430147846500184029651068767802868549684606393784234946148098799226625907027346877757667861501385348627626078357545914920287342562874648137024976766736703213228158611082386447654860830858814619679995418599836014084796444677048109425797659680317390216072360840216555232145195621500736027023748230151692400708428205656168527678415359782477158390408283128589365444605495774023459699237623356512165834616291367916004547188492829914689561600618827686340699014040386053564921422142096323823539156974098118773763561145096927987955357608714794931908734701657818483993643219756999036597672132083740695302622739892341763371223165493231916104039708460588485257194590771212351658192302073997844098340342242077082907394900557630044479234174426852450211484583669176409691911900596763672675796710485342003516413245265428706494084532553470966411313956519395698026327193819616249111922926695547533479148657709556711633048881891096814410962258817834801906862597261601165100762672608442354433048321198144590013571796558268150554805750109858074889985552984843840900535014882502935431446457419106170271458574942414071097500649561876651680742685581026470556622050813310265956156190788410591990874745493601647357058291550730877653476610684819748054936896185507223415686787338027796724701584047821861691141790216465645062398058267353766332758537283015771104966898183393820658679776929936551404111176172407171102877582630750863915124375615278238662222551274133099010151920593128623654025856335043683039966074820166979964164489539096919265060024986843411355725734713005546577637702729260943427674626077649078131770346664405685886391166575969966421849576572385558745490065606098970363672556773549930611148181580055017068972011880610802517014358902060013204308183318667938285623701097669093965751920251331716769917671696762582574866414073086970523530051181359397565688205251875641056823282140229167263193045039539970594316916286823869851455627880432368830533990127223296228297278688229723553943147879333640189930565046498084952769388051114050425959091582778799365813643293370698232222797116680491075897335065302346866651683343938838780789463046276074868449394659620589250859064379302323558805807352587535869243248749457474959537577738520311343346365454647156870365087686448704911421577604407552945482655730313189146623790230210676017830075300066717627446844390839895659284556945287677020658835838233648077287261822382318401080898508230419922013683586666435029939298746021142670736129738867857235926886539356998930774670406046245239075640831436997456965834674834988458181662053663575217207411160251249020761941368937727683213679604318010327067626048305109621238590286238541057996322592467737468791010847731099868725571966101594400362703026179044419538339864228585509472827532282328662056050260506357921236996412128565198845947572336312339081436707707655410219227106011785501394980007061217245626471856192637995383573372659772235229067955310527877081145357219480199303746951932842998254259486999709827556615378334518954415071340739757318389568285251630548289521249257331974624435757884280997127154054519536658242036211751015576933528810698042993822220305919075246123999694795364936433912609178495509675475361925351239373918587548945029218615590588739861371033452661349608700716358722767380948988998787549378878953387634026658324917025062977458563708059163145944260531339751441483149682358108687991358227868050841930646150401385347365234315047236862561902494967155413757463214040829501484035605318491301225383062403291600741930300240723195948406309630634251261940049225442827013973524930596444897561819445547529899820857254068070436527176216636730764582484929419938917025335421207918901508335049430041258521878913209647429344009641413377410981780194990007436286881274067942617711200469176517838776503676490398198732443600126187822030207513151480030432523634773547489597103499814915913068723407564844143876704871738761108219148966503174273633018562171028400468297603663127813764598425208475411781334891685921362975148062969915223111734740077505831461073098684344176604279564265390517925497673716670747963809072524748213443850699949433747680616771554377775540915524383389832011334040334187186615033369424606671717399241187354910748397644929665022252285647453786972536954715371282529336308398343183002396256613582996862798466104012330726249011260331927419259030734356489257937091630573725992530296293694525609166521424587841623990733607989266402280873016813414756198532752359636863336309946171224336445206107766762492394683755675535523827627981588365235598344304809591333575566423751255102152141812397893861865409948138799477062873307037729968397236415361597033499827726343261398057762766127277718472961425019163724098478162949310354700071835755069297841646155349068107389261583300682744295535284272067778584645355512932442189590086040205144548512976565780692679321611267068359646461972486236487464355346543827882101083803172939680538266070962449631769993983276321538357455735675842323236832948191175175636271918491236068044806770186234308488329250954858326790578953648963960977762666340255425964787844986412474788167685302098479013071112060322383290616714262199616302663156287576538613313880471340703503293600840370553708430493505364836913068266786872329249945234734523788734166167087199057321050305132095883964177307327540586983975708527755504563945333099335834657199481884416128576753787933933569938402132915487229918976706978493929326413418199098395501768418570392062288490650103442196983214273291656462226422623233056003390842681153885150263525145845873144133225533666533223596568024852918686635024758030615671544760322883621127136063416968522676819115902706200572594715121903158745599369004185651950069541826723617420038414102828804831441209419935192067251446832672910388885797299953853814328254853335226744889599229062079489898900234134892022470037994934369531253186814417996670978066016012494191259815111806796111462905497228882566870550457168841595099920152319512625818026658296414322383837456894760415341215808384958258112063104566158343410516236977186319862081185107288576177930352055764607552864464063542070440352948358236005822473127203512156393858664420831408243410803120539377954188877100866144187325045322302425141364384099270976367002371107452595336007662337616845840480333083212024916472043753828954980824874249245256643005717399827830824295307976416813532745880661294568593655709741291981943182457668617976224251127286851513867465722358022891464406842168479541246882315378541951474343550352026023000070475537479284338122501016146972721588225942159092970585186299980980248356333602864043284421382793793610918051435318938597549279262556801378499315419665818335341102691626679451860965271560921330697248175871240086438977126568329368995956426326949358488392911616074785550210915798839877829755917358115832060380097982160112498430607711697110978989300807379361885761124367181277408021238351284986570527860260098223047147777207431789884132797693278289578498491962647145608144917518522452980794443617350742579482725360690124850986935846089495616535972170091792515594638683258992199948859741612451747358817852983931739979721741988876650594387049172912293955105416654857114517625428773003384108899401751454292960901790821740904392854291329234592903785342908299162063808619587098333174754688470269003452352270484502988468232863375087892271556784134834273788320947072041055595765895039233442654444752123199249722646136895898911433777119004729522699600597523807387639818351383461873176950220604774289902557110173771339690798589667123403751680331944197544149226996553207769080276469172519366561062228581541292698713953356155848319133461084419415167597545053940241355581414546230201245166286530537212180167973592593803610316873992056129730376483087494406134135349890677827801126697973676950270503059471896674219902923244286058641149976251182948910547372236992925595877054728944390785360010066797403955506788232461732901966190621457981231505346096845566450734399560578035448398927527951271618094287514792667936646107780574280932742573094781684604835205622573776119619353722997582132844412424588386054149657306919170209449647359464644814082970358619310524828949976954301557083355458204726540545238024003270532074103914517431938034874131328684831360463506300014613805012439136635190398065692966336335671167044855926893485041760715544176910652364947791230260020748049001155319046720812240619501589461107044738352465099321990688931245633996091873954277064254511165410158119441299568383722579766485763331698059718379849551291195279053637965628380492574946024955558378557366059946904281126250038469108865810620432463421243323648124857383011893192018974405648523339830139194301986995717685142097005714606349115910332304141952636006716164606777868543843227890992371439015082070469525171424265982281517244406536541996781570151457415317114524370966423094630569928296274557081001766791565653212372390896917028517093070681714549417028216187158809483839419729433802052220477670910815593812316422189105130256745964713758673849263417795399413883372656726240659492132542468258446154857155229931683662140182874175426927895931469073857235773788271908050427427506258620749313704470033575835210814909706199764054918206237459136913068294085815442515809930706643255932772443952076251418684259554807120250209430281578897577612325311212026411518283981690889950653871092593142031480770080367172488111572613734507489752372821442493805176569856399509819785817786936800001425140912995481533313963120714052245036927059792301725094194641697825684292760007617463195859059061601013868013883048488348227114120022594924797399506783268234044921264138828727521317228246156679565536070967079901643555036404022796873971955034305124110628674002603946838524524214708907227298746203122064460840170967337129995523479694010340957851207905103546973289285544239889477553516909431241453175408183415706816089649677662259645130997689491563458440574060573555622767487962652617996378113966143960404362526380337091031335270393164968011213358729764536155657576277824079743719630353637321525909697263810151872525867238856288267398090976663619168268874142558105352600410868236195217975366132590409662298920591236471843140894272405011996462948531774315633760423755827693155746670159649857059249683158819558079137086858335680802782832945980426746516792693357749957641516374222744623445086127933152798465161833872718797099902918391882289176936172916081055608718393828176755174138688949125533529906629998701716193756900392164345533272429194810012842610541316534585009156921818160380302912902715561127529196665710521595020502953264735646615916427548718709847598851400226107704622576587238207051026609809080952816204703495017621816826577611086809296092060478460350076032106095478483509328352483105825877244781443531899138175613836765499675279026294666574085124742194218937532212284564829088279570296463378401243861067012731160431074637079917541668437454315635598738077020225947101112636856440981142924440855676154013445055680723305074385849544160620685119300510017851110447077841000937160890654443888059375848997314491060422878183682863064063254260919789685206602600086721489243194782798237888829956208509621615482778984469726969302399156925600905530830684758681633290497612310203032485636739087390389820955744002705782575228829810876861906167023306029976345376595561486723381297568930936127877582425551342595984791045700831671830511059053699873418729724599906199687698274510332085783879671456637543185069573063419258663670854161684620806545316840887548685579242709431430366652580296090733984254007958647734902100843264709102993287635651841910904057298819990075487598951475871934444182995045323322262982510752836531415984848954787719323616957229701176421110786442186316162799652092826872434809636363178391784191582575673061497035670769847945381156998337251459916595397639307971151778048135414633341087210497365914818926290264416588556154760882850421010061295535787788507137674132900035523201182612964410805479200771177244440872349611925877884147766574183325123110114018466661561646429720370013057821816027706580057530549033080176441893929605338789546869644783952492199833811240210882308467363170443402166281663871313294703151412206916500513884491618885315836781719975513963800548316725480118108929937197807412983602454108500676841341677631915300196289846576155729800926670375759519944374954572355469156383724076696496518396042117931962669429629547104631091324291814157510906793072421539977933674331747553877249442447900830405366881837577490190433493480187370880468811445208700913559825986769745371136857053556481069525556895428704048023821222766830055456614754123272412452830756439272284569276517207196135736542443405028307195527361574858802586386269665883979231941631843394151977698367984945261425271325133196335360085197495445595047880312648578234442875654325108515420835425366974167023614699412415803229276486310488570322014931038366805094813261200836618552174276125227713979176108400431250883029299572706079566275819995285742321306051968948424131367079135585328839974693652190498090523409776057869595590476926052644281421951285176443242240862580881035614221192020130676581239888526094745942710242489595092162594032522491270220473427668774017370222255178751287924607859841769742054339216718906127559474637494252945100280112502006305587802876663586178319245446783074130245721935301259360912545999990099073220688604982403885268222449266500559073373554156847723632633907287164976954157990218483397008940466984995393937880292548025303190002572305558529173627907377437242786567176800133222517058410474299647257799323827487381030253603303561337864257765776192004598741156879204664427686817583114229377142873089187410751399673718811642017286822053395578609437006374552995059303428011822015409366734372826387573198630557571697238171600299932036580425594897812928005820609211284936629628748481074031508888326873044639522222374884954227753369899715373006620002326609082921568325029898428364395915843838385379808635652110032467128243882349330837388726695977639126815806957860009576678544489141360406875019615420811384526304914497987988520890031102317112478462817505409039952635800610506376587485525373995627218855043777321488946531943639239289602258461622244199023060005164979852709004417191767068318570240162526865436774795278766779239385015342682595753327039806370996430533196594247298610179740084050671538462412399466394459079364259339555725773798675382151990471659559008858988333761942651696968876427376300352194767470569719262811749926371419248701683209281068149518847717549985247254748874598847512167027483250106890560934690027317258249598020479285297250200614090632805939487795589451391937780595757240949477855234797950448767277852891283057445145991048882202980933251825170641819453188740684542432685184635821652105055077580876915947541743742785010408074506201537762927662193193049388160534554158374671903025393628060577752937437932268943222049818361897720174709181799785782524026394381603782864940506928526836180678010302610257496002870679392797759782020151528491407681132510257792124952753448384585980251744401015792012967889016116952167760689210914091096755560676656121099482261454377540267306975604605841855543976877138527228020845878806292109130592006298192101599856808428731464172276084451912845080654780190133266972191664693082874044286695620978696090528627298917437833980583877770195579416530523961373171994336118882553474328644331449148355686326196644490510670149221933972434146730955855045451474393411206966499468655342048366743687885679088598876288359590615037530949735347205376893559273015681861690343908588390352850887162301913599620059161875098680743631176307122124398888440879208687118261963057963369207791502691447214375440214874549430688654540737141601433767219202084939349271491164754431791507104891978312952655938520870980559657235586381701220812308807544931615374665823463813760820409977278123360622636362274927687975871835927222289046592089410066129642037895322347265604629800992706462858497436551359365514107754707416701399578091006696081003887963112153110986014083153351450078202436294550543954279289298852222627274663491773155560693977749942547701353667527973281075477391933724788510619208976023275038536329386344415223080213665851592101248215321891607017947322274375643183780455484697702784535001385620443192264801805503838604651544065953342174986441907453133677161116090910083479484773253255596859512662341743211810226012471733548389600336682601927850752545331580499473422199130241772810619589245694448992331538256460280508581586805331057493817733099032887663594128305374463833138909698190129915772422012606748283788362165875515420649581648367249215732183026739263565572007185588779234917420825043925097074316575015891311059752166558187167381484220072326706852102118734363599566272885157514958759720561977116192718781879340737218774145681110711197271944391815224515993396801572387680455953717342334735548990097925160782751875624274443955106379436427317304352975075921414900626407537713246853173006674955477990426441921521464494518767030069579154681627118723325887448283838298349591571139058600626606142404669045089222939172785920351888477924396922576580959801026498279900756837511460351548801045866586142395543212738714701434516911498757290789717945476563640420967822679303790324126741706438331906506147097774159882371541013809722681960451619548598428426346385379786863506922277302107196724917269299847878507524121103525798986879788735330876759758926491091408826182061665060539554419156682980060105745312751643733251892739919861088104870635588849873654155564376544007998143484476299053862666364415246188458512294586074137355871976175302192479748451906400306571641934086224066002046184058817124408499516169754158825511441620203436133601795849153885420101262050427587307614734382389224346640748026236699467453794687688537522799905267725437283952479263141926231141993561070572763450154893899880392275740582795377615795083583386389969612929355404944908948039423452489414858827087716958188613809925599723108423692723517415621056220579501255399127874099140715521103657446459716080577181164182228024103905431734795728147856449901277349830601780445874972492146940963061257568744696513499508361131760176329780227292214929264634419961247062147228442856878519968281689868234894563227911405750705009558979979927362177365329210021378123640602317819762849440800058438975863037182449420618938124412499485721410390293265399888479376750562206923748002480290658911971423955777420708299243979383405683886891500565474270652170964164268838759288548616702065454940174115410730732388313502023907333336222125007376141015995611633346966380360502064475880674457132232681995770020026263159882124545208963841668948303026743682258533968044147996750139486566683596557254100319151122269488654759200012586393224596103076398662975690499229453330071768950949523449527527833569796197722265623430139079110916735656795456028591821658776979895537804235251845378889896767802969023017779918461052492222928252186019247385246318865857224944443693393767697196587557112796655254300577269404922028906523290726812332331024796310030612356406827254240636602241633409744132985634313862574987215084069881814693902146042331478079228299830113950715108739086249831882763271138784922311573544729359407334152315535565143180969079441789785041542037539617290903561751646966241008431879939969309848446766453396733050741137582519769177559444465126962629984646860776249389116611518137624570574853857015587712039306298185983797251873113918628248108263202617810162148663307299637751578555269596264015951807487559222268881907459954818762709365462406574749302897869048649904330585436539548760118685802529231319314204148171472653058109577998051569604730203308666758746302268835095667505509566722843015517252241081925291915993106359975478759653033290975084765892899641808696668771146468655952364880114188555533133672110270434849889947211997690714227775529435665227122267505714733384102975118616956568401290227329337355062242996020114623998151666919810901106308090948694580732740672680907122995619153034578707433205538539018236619626933568865984542187004803659014981528972170993117885589682695126994269768476670009988000582469988449770975775147369816683946171245653377540282535246549539067112980922705990950838279381932361426998257623770904980008347308865971496503284946165751229584498651096606107428195286504299070370825564157261380252020444755595405781439254831525520484103663739342404828331836549858837502883134060760960100276023314962070108981506662646015935669649946272081235255203064915024505685779243235464519285108502394185031345325444317721337938091708463844036729976869214034875430546786747679308122319802251410633420104041873174040072746741327468725155377740244650395028510057463206135727136815955874173718600768303257665798727358676370229500532002646153040057587461164531197891304249786810002180444316907026863496149953227766390783968394326513737158989001929310122824717093711109366201793763208916294264013316113540259497713056322283865335148729994151648485140194232620364952445076418303562208437989340822315845859234758620999457027614752304341171737578599824968284415220475929999400772672516147863301831452428475948506108499899943277819575119253512770405386861304002801109968872220193032462352799375020114137871941430062031070442072267970679040981694685402591841515532877010869837655584060196632944405664175716374309764188963065200988001032906370262875000502250714089309862859234386535153942791089413829892299628870195790446801542315375254024522414665232857496546066529238743848595813085865704381482276369444660521422180961757405889139194881193642199205178495360218741208417544999448359355026797269715601477070208554157654677771746729885107140172653631841002617647206394774667383460207030595296924353767200534911618711137308310121445175884030521178056308279546854095414202926391840463351331733027252044741821776324529552779143658121280868363257705942632783601712975728383121577883798182754915110532085568480371516521487408887339265810722421804362702511366897716385372750926129515961674606674144546080425637300325683599075740602826839886224539372620666984970268397829514901490453701217805995274280534336096281100127113373930824391684923860194838318971152655730582875003918643426041008891853990924512579947408640692297971382872775970598106453681504993406908521056231890792990374648211883062994080188422226130361609794033666549443594192406065661175071575139594783381488220075541843908045617529168174537790416515659261070361215543822903481445195134158729317958167688819299649570466404348455633302018727937790858022486724256181520543157382349308813242056571878526567098088027212516333579871367756605059067375599160160207058427805220158738756911804354468433665312608272692566719607702705975925967286595151762094115680550990431116363421052332037361275587930548425529178565309864847307180323231026682448503875977469317039639342065814025381009280956154624451821785467974736386904134705071999593782359379032919424049211324493512348356874821607941743170363737332286197134776820871805096314085074291376888067237462429163975902841729245218728952093734596917103060985739597645352164988632293906373571950009450702239251156910786266389414323269985792228603389455807415393573244664469994904228460328013583267122081365155488352801267626725426908095441970790642549430202914749613714914029459172769125095330381124005712789791052058364978739438514311709882728161494995740489768273721161576143004675359700167247056068925405779611526817532541784729190509182015516078696581073124955932186013904899634269354424587856052975177551424964292612979214554085719277602855282792455957130412316298531720595496831462684624030717002643663974498271317547299699229744998354636756428438668750716984735417726833222576414195546466061087559400828629430782515759187159129001775862312999707354747414501572504866268742410583857934983808599766579141961348796666927636928165070975214606024422849175703112709720548242841082048099941845027788314478985370141145704803717841507119956679253507956120197291426651258239795221210246316501673990660137635645203527392275335937926827299388775289366359943133206390592547195792697381078795874871514212189802210812504313341308151064452004279035248093893812144182011413507411122037181035660009138351771226231032677354789586149552136678587335355165719609762965900250187468374935840677300219320699369250065399344295942574811996156021060850449850470981220960844093801591443388713545710865311457863710771304891798439126506853442909410410266088589619765227086938634259184311284072481010188756440731675548329580595394033744716666031116283029050364068878955924502428813149684853342224018852230483804545358822410680815780143085859644220931934487343141916181955531154485450376593790152430592003980375202574870439342233042325062701378687433018132151630718488873071880934577619174422997676321413881053201012346062484826944823236514668513292626995045021271261646018974521868097474606732323070948368255668719140208667565734363016271901714232398968757291760481931257542219932954290224772081856460984771269827518814534218000466428269804533846728991077814470639869989312618158765099835131467559812357868984821090354681978898809374727346413688698214877402819500587377326082083806456511702782987271342873841772233528376486158151284231473429544870812163212404280369585231196330468067374785222349458250666979327410994540899455565943812464168181824093977376485815529498855552176458667386391039835858545407247043163552221328009073941959324011072295219857397482954035100280208459833377832739849357837265911310397043569345097288058019363180110360322873399840339744342073295328389656099583425926244606323529043911184782354072269997749062839465330278952749544486007379692618520678565102994411900804577826869440912202138084451182351077682169632637060169285661115009845216205959495287293436896839327017659466939095218808355639347951292549316978700689752210207013042885618426024048351616838938436294304985985068164814072863596669995427444159046562899019742389731966187677983727937020970610297011894949559500101387011937249904591071805599945826151447422810397955520644384544283710230483354253448133812034214357616260569039320586335350791431674481304270783851728539195388080518880205126030717128273417967804602929125723780210598214959190370225953525561477425369881953275386083590544405077630813003600436959786692959838644242827260834090191314282984231101580831838374663027772430673861399942695201904446398724966714421290840701095844814537461721794250406745241708045310289734571955711627559099942200740833289796030075582974995309066847020539316105458630223181523290496967652312237099182333194650816395292964092669111016448159606855671952130208165493598613680347667359785115933965198745608269926008877992499764926604031326590665365490161649625093265634050187211413495439838828257088619709717072265644499576622373076384401591851777318711982248732168816726439115561668980726091842529718178725624444427257094282575200368882557413133538842051201669601202289452968505025117632396547486842300450538592041094987129711970008148411697812453913328336173632649819036956076989157030523281577914815104476286569825577333276663376187466449232945763862989249012227666997375490049537880115776259874609883672351917445616382022299103598501274299485814354911319889498388384000091638249161859504074165305221307611024230385074577377195677280592623107691550818983196959468882262363628167776156972629235200305229483495815357508527065202752825005067887903417290515325759974129277443126286309866697112014316051255779488547948964835931737611041501508155071772662131047897126171811162016020258744276855901811833286753002110455376898026083113151229256531922480839113585560847162011445189732819905666319600751886877977009293241699946791251331258550831232250174400778460751599498954438441473519286398329307958760364591015273779765551631900005376081694458606175800268241410022254335239879856307517983846396401561848751504031844226765982424337601280014812087985768231362202693800962310426691286066074676522746181492965014322617833200975871064523936731471500122609114185186844976723344333768746809333391047435620126894981457951367530592729108207210268039939663287305386037206416324734500942904449173816789142875230240857047975844204361864148206654763810578420845276935127935591418745894816573985978237660735237528290733853612749407265337748786748970601321188938455826377406502243723852282105341777406366666918626997518200429080321822249241457672226711168754845436785167962262080636051111631897082860558329544246419350571131682826859196973987890088077643001418817383545889492421922773690998764871818658154863453261549201895710992659612428211958445182363657476532921181575088113609066303056217854159308571447186108857949908054041685933851036258770247488872843269468949012243249268785083837390201267835843387480324778269285636015053821817822827115500901484798339433132268563846685264465684318200549125745650437120125055107458786084227560177034299574280270748476016377637410092042259747990199141684965662589207615782481732237753819548670806491419223307224694263045604354584462962595763156289391842385741344292848649852414992379095461451271857698206288045682932025083372419685492756466204735455865920084209353198886899348731263769416349278511695167331430035823420989619953374358784332647743016096361770690603745641030380322537395435826599299404047545881229779406414775842701911889447601606185733207950858362143240374172370594753643198130450335885898838156738885779648709008207464248707059174719640749733780907376052994512107319644480709131162212013914092207391921695565097797348279725770455618934073251315457201682224461315799209984062680898230888519636585272967925807154942011078216681035267288333998378185667752822557999800252054967513133895216008513959437711070902239171984104684461390807209414575525222233558650683390305911940004129501708550096121449973464259660893393529381049647512490928688223772956101208562828490799166565828177800660548764367658116070878941992903189407137681661617854040838882653908970050760601393365238477549660434886283272857119081949951917862812163712288224605799705313037734327667224217599532884484770959635910318569365541123626746613384455434032560896605354667511924642699419727861555413435854993468640568045224294442255262538126232567532034721208301831442978790840356066077332782206995745058532584279042776978825358429338874389357088740094759449385951240796652496133375630979938649269597332259680426125134133515627859443635086608689214434746157534480101447247397707393111892736879803547163798982880767698643921308914954654760100007260200633504937396043851362509580871177674526389800172031041373140359956487536583503030096102265821015959579372863333816178350165800821278103539336863475284546117350789763517570360176853911641186528095884872000720508447648037391178272937320536381735423350139575951163703777387591532658919388137640642742595355779906969955409513542865352043388778249140748466660575568937652454426327499340089976021647691315585278615281289386014116224299088616173378878817255944362931734137444817561605460868583653183657729591051684104013138209614662493867055473398612012695701696577560881461389406173187847095456692033462393150034250424017571338298477428248287479361568725098226334315314106189495275905972652989245929865923520116833312315345901462893871099317265403091962730390197767764162272483297582542273904708827693173860005378087255671354974338936380254061089653202332754515325624786811220048988683035962069209538196794741771983828043796123113599114182872400109537004645173926695373069756350210928760296480507072135205826347338680654098065790530689095851652485266593149601314312676242275864842257198307433792290775453620283391716089660890655074225337957205480009887156704451855042083867281098350227278867062139251640023458486204149105292151995343998762496697864113794115427681195102703033084587091153677238639685077917469129209300703251554448800652192497355944305388426804061088846874662060467016640538915886866895996760839154936565433623737680684487614830545204532692086837684265063886456002250989987675506045367562685313808516561357927168244327917256084896882936437398047959170487807041810638161086131197577367302441495182081886300909139460643748656320776336405558409639676640282486042190980458708145390485427290256418012778299774475630136147096942658813923401226752888286000094306656816353406887364919252369014338961285415429940486721218844798457292003828489269884587795159806857266759355408596321641237040945934418034873941017436335086762128051915635605398757996332839769463709157807356033776411092961105740583609561414866995322461509406480338281464255939542799729825641810028664306816650041601202237873071636328033446624946974249903226081199856282166034368439369820776781739537206501453700572976435288966162594150555861022165441728375087821304662045146239986619967333748494872168411428611058845253467497813521510917404571606809281937822185169198382583728502768829131017786109710138320904264574423073390495993296099271837102802428522106758232884995766884705112045899223850290908833464291752115529804690012188808556984605936745814623465514540622137865387616891428279971954037935639516658689733383799227487849067006595795442470709580264648247872124798226265995491754240601857836933110654733434066495755952126438814070054591095286163847769264012510361052652465605472294913465186623484843865957656140124126495112005024239497081240366247976675991986272571315195808630780865046935165181388216992655977964051553784663695498113362224990470627107293974258650703489223084335017460076495639375098672331157021345920973638525713688184431731595354283693116720915513392260344753454423503517709452070728034676986718891593645702733426749031714093862868084511169118076505501338172762725175072213982230573644777184061318448708505655693866000310592340152330234926148965675678962392052357692945714792409120273277808222692254459653689834120199885836520308396028889010535477149100586001776536219669909505605297669944812416355258746647079103818391572381960118772772608949321251977098540992434833656286008373690531735018521871158250874235809755348656932164044747102126839013192877239986508157427802165112537804217686313363546162728688858616502861671124697225011199667153493656042693347504163753133448520677307688311377187800738764273766670378579127980835219491786277010802988612617299428650125218279678762058489558986515079772860300244650926478023077380448379593504279016869785453488497129245522167511999091945892291286692619258499472703382430863874201971198984850465156478867246969591981772738295212361409448520441198341123037533175901303672312349284422589279364334417651857184130395076955462443642244665310877578329171843843126867249425554417026674231995307034850043335891115012286022955848969867846665247093123930748658111375480301333731710405756161385758342129598990035980224852057703294317027949625338735284939924232773081964511576396891168542825680762789456865813961479166305416396404450875041561743069585795244348574146098022724060463785638625117070875948496949249241153827148458573375716729014245105547989939315102189700935381696075365523173673244248645917431968266874993157473830311629316337045032124568372635726422756704514279499019149865646417242057741947153685401374383137106847585641062618987328238697416877630063622630640619052299113551451371518941114900333501755268493820528943206455379365950794673982023766536441362458985807380641359194382215875352051873415329526563758162678851393903557294804259483125623773342393390188077709589596382001730121568850536934173811925472792110215378309906434981760799506723709702354462349957866611770365112349058083510788288298268154993360676571901352687573536559161164380097946140721099582927901430643647091348684915033099168422898944838741007817919006783474807385259461267735923971826981965911410805617302260635016971460726460281517745577208442938636412460832478847351344509728022886355654896867167018242728543256906432888997875890508519273825742753558017070878870473743579319900027862101473478208311496899286049556301298193548334188496019642165637453657739427109472890077763795383093734234709268826013527888651138270772985736740316067164137965299728882720574291968610094204087960495698597531555840856323860002109956460410291163130695006109061775054510405726758508103359452920938708657299161976672604844631682310649529432469077280435931800140598044763505016870938948859282049716909456779386913202477411301827685883292499139482938457495124799616174891779722644338803548700059337541006230435458099485437457095435883521575439055915489934077185144646860214508142960024770846804572778245089870875504070157085645922862148386531748463676233261382494795867435442883021583317705200721272733931795475727539760646958306137613800776366847582772619023036871344697532850488269627065985132850597627961657108550592225764977684145189159800274980597268514471344878869765466830549264468689671110073952101740792175955255763049659269947819282285370736901517808364678820038810574855601511626694727711136560604454218752207085823480483688388987381887303807485432785181247139923586488358230439755534446587568218042847547003094854337118172329190639870820616064397451715384404598066550765594760064062119116067375755936085376716822652410203288596366501711922341191672057790614743394431700181124440665929887310126607104059852846795285296109127279554252049948719940001587720685597458443897733863644902231432774481287280011434857409674038989113143875311337354444181337731765856079880452170539366587733449238640272856532088915171000065142812203311521285762688739159533018826193307676667355013103080586193057353947461420839688982541036147359021348192186395057903976536678814658906683330742053392707043461972691886294476636800953189125340497084565803165959831776139902269006118332998208696325789152486146708995285855400154669121462362826609323441241498944234600063775723777937863952012385261757714801783760702779153490724403536756064755864038625203083211045162288435550017336985859999151404375507970774842937847116236050842460447819967237827111130507198109260431055658648767167743346670582343288942683569234012269126595579973463565543845541209053513202824784287335539843127873368092084275513107510052423705872378518538580265893265987916908708412476224318376273832964006925090852945956948871394267785321917278350074230847263774822963558618009020775097131184724390770857828884621816414563911133861462367222436698915171376048431573406052745778622405087780421964443405360707957949997165373693014870858363260716278519751990795906984979622890810915193739276178149014878329635339759948336101982578724036012502283687551009435988619205728159902963810785386023442614213549526702348733917479655159493277736782146239239423286476392589127070771409167933466387089291575412849533105717761623401556268099885022553995823148883467123967476394011815320833384019083823034171111099794493732493181252666629113877173406012021597768718503793335059357115855807741812734644064248214904991851722795610957743299008571143194279251590752631485339764019855061632237595714436599797834969813021075880977955211575569985856549937429318818667914019791122839329483816075270910392163400606663465365716832838415675102694607933332298992328548103488172875115428431793544683201979612478151562834817003091964695904072617787724073393608577478312409864403968802612151140871387410764076190492353611857350232252432317750091078768672310400876555302662688635488097996839797992919660577441410397594271183997054692156740583695626068804705545405465974394872242865415275551723383173299096650539957392377207303859934749594665993678222316653744675313439604285307182987285645842939188608491451610174819573680090127285613466408520048848212813848451742552183746851864158986669276108692606260460948254462150178937506878716454195203174144087463002322066798619747504181253005293599035774310390524622363653879714472827755009911800565811550254952077671607331670520588542837916013731366546056774423769304743732703165845693485101841311555322948577859738646603778471355089846818975844848454679542693131812504862293010690702302525687973655633642046353177897995390990727167835822447310882126526662941010985812224270089198800932032065517194739847512663367776757591020509177737103234363401281997191303791633583363968785285017830462669527035869176306778241000900767799570575994741903209132693870016109024077212450442704357264694043498587071251552081737780510262336775800927678176092932719203549275836469403697786109521257510389762900526534569394194444808280162421452217101427399629916753739946853730883246006621916801466435538507630945837561283129355932968677601080478837592928955092916041413211451240219515888160634258061662471869538917528835644500936278719758884419890226460511755729736140866872470373193675953669700102087307333914357884510830803865115525834912650913525074034669961150271214700276962335572737732864870951635120906314669584047006598619552279570187652868455558640664051593524808555957202390751410567960505296141597939164998596256811983926428977015763464082153964773367822069209350322799032635413454702053112034683374102670727882581749136825266365331350803838678213137748932867853266359282588632948846270797873717496844153050955796854891456330092645287614337946286258623367326410149844486098974157688489387287286428076423994741035088310491706547455209981157362837905156243076668671536515842507032553429853958468100430861312591819393028582048408830657861550419666956832478463068674850847513012650630909548280112133461980570985755051954397491670343777402313094645984607099625161830933618401071668316679135695524244542054425397160752702549155740103364093999030637968272340697923556635307692031114536354804036374840864933987609214625806425904873112762833707804185524865332346365132270322803423275607303011882067193601007222523321393068115797555219488085162132006167514402580975097061754748510516249560640689716232465182007925701323332973720406792062404424558069177810940432101908518497438154303864541340039773155701745503222884140831004771539763810111321959550920000427431316686954250078948278328317414994856901747440111493290831443299509354792258295692360631530806999265374817890442785392643672999246358489830264107612385095510741583153840745219032798756320826127888585646636873973352059034757089665573931651330678819172318176723648706937825132240783494978691000470328141898874101280178219903337080373008582038820607517651525434874504395370151486187639300065560242478895875720225217913815329391235342800800322960205553206474713752943644281576399429056953579484760177483924610498401628873371327727522352101337538252363802382188363415078211750775487268353930149067248739576703545603005159636506495710023267714925475921133520616517992624047779711645304689548483127536368438504954095781284180506514502999283355222018645169541158700409841857581006355379179896457721659449698011603879729303293543371017190456302111665240853192237619663368129846755508968839736570073720671716186031189829571620495296874852308115278340189050727156229205881773649368490143533028591913067175511418705090866795073341798949900495737298303984495817361946119335026660423196035407137543054619414087418073962555162931249925107687121872624773333230640839565267583370485065495211318066274495091145324515858719534516083994159238010548465897168410001972426538679836918470343102109069565255842121999976483115387566542083845868197763596830526763449284392286713302563381247779106450932423528158108722689362171500319937386430931305390138269750583287062275454768789297612953534381378090727306329498585903144815163572253789921714131313077399700013829359695123477858649238122122812046121287943681325840510538960978795735641816067352086755815524433214219326316816022057131011211443118316382842932933963702102428561949606862617563034317751410443881247197704641223920513560201499181957368331726417359159207600962616853628300287742459404507198465415447170728673544598411610076892101955714205350774921741281544872564963523609810431349072660964793952836995050342417769479243167644582987320923117956382469652773666185636597106242540890837092211787104857038597800601741212300212001863102020706272237961349664729420512639978267973081366765537644898810192292456102139818292986385657254205350409671551703796015653878035214559062294966427119455848957076806131104769349123268876278415602500739097207892026605648808928408167382494974670898717562627015117591799561806161652571468896896227513170271213726628922939731664742176818428066150139076965374947695798897982764385404602354952894220350395377731444468190395248110688617965296967207775796906664749647264059140972655159546860934965185724396291616800970504786984412217349326534811879932003025224044375919455241454128255263946870982244515675184319803499734505405393835639741507755726666198883758695451100320445156457945429107209319146572204619018762652883289313490249204217430944631579988113375948281531017235738319742927136048550568111333807790426387576071018469799203550762808903473665438319322242664304311531572098100682549741051340598911778740792047846646825710636776628270469036194779084810247424144719730997912408707930257253287827636009582819033221959740396620503855658681053686657287081354546281874140233206889328018353876052165401379617130906438294578343488645024594126429635985632595661270422713387350991946273680626043979109217720980099682162852542283150969557509745777702862215277242282613013140593824786472290864058532580263594252949266762109832996376706059825214606122477630391865056635303799080463975294132704484915495403479365145628504106301296931235455856195590980168474398724444270077886864486701420691747025899592485176664162294234211859924937157884172912713735512494173492774441766305861788786370288108288241081189915010951642834202132167295397045424384802379384454131877659830202455339179536316522329197443289195801336875991219656423107067272884332917159693412938645474162249384263445280231082650999148237303564345229253568249057728389720567692710968031602306415587074763966627329671909961703491510572061882030389355232260919496748048367033276808438873650229379445431996412614124169501633492004785753406792965977873618520393599713454426513497810271021126244285330429750418237555981930215256123816511509409347943972632323927802213244312766831463372573158925673125206929733021433472264864286181996177139644216595350932751665536073664868890482257055092408729413672269945221815944969234217257076364229637850293055523352722513917213275691255780922454187910348264389265470855330931835329599638366486974944476511808841670123642191513607682120803199078629415418401963827728834075902008857849121283064722733326465698834348498733259839851518336128856926919612275530924831178122835403134873628155781387537191623042062425753112774951928583195732226738737443201163827387624452488216997900767996436368717478535498899755486436757097537579485401716553998521824814738178055457118498727566376965377791647044743090748134862238632708769420845076618300797177889696903437288338345848047121778259339101020463194108011915087628288398819936343407383261688239221967560229934180669345154837811269376957760472436484055616835919112113609868723786884627382791353271244044833496150768841328055189528714887824255689406610858028458719693039838817678203502099948433210870987217317874339541211356847244798050386641669256021469692849986308208982706046071738127335960156753382017866149984464234964564724828601273286806426568370808066660176184970305278892703314751008733319108713159728927950790349349664434735395866184506499066204095133011170056346048951144063911429775458936802820975218575726348529978611634556757255951696913345883565139019702316412224008428348838001617262281950476114406525783713179300001078714975644564372026784384802467466542688994137588552484020936622058576261043283080108757157039671910419717656374038396440244869246717040464079872345185767668698826090698445688698499285493025669161274456530554190496989113722220415395389097168704346565774637493135444183969195446006457062109062907795597762579741247939353117469227147223842183580082255451551564580919438740574195175707789240448567079162263706179361170590601053127705885932696802848033810763282939147027724964791931046449036447462812025272710244020097310296154138398967309608026212960708629514945665769800989666727844994633020848831690536537124694598095182037606328074794803395549231924501910981919756056881995821115048662819736311100288470264585635074452818782867941146743452355090743177945566389867499272259426232461831820861199512251270800026134023266129544273095520516379158989005536059146860624833268690915417310573088989341720087392883551100671419888910611414284851148020398815777594541262351216807465682260016278896304873675565919449971719864953496200648246371021132792518302255298771236579853609636969118770369816312294257288679684719440528306211743875858227543510410100185154380806341955225726176213727460538369521759715073427243257395593025424874750794633668215009442318543762307861211016932784876364130701946999748759287703188156525050072301922961347975572227706530620795896566231599339829963507437719419352172168284301219144600140928541376602242767346518402136684695036359032053943687608083887131978911704819277600782140632864436747295893633093828163557786840828960872637727857714583439223424901281542779906283952194417056619311235727541779737715429722751559625266052255707582420953226767582496255423171107498595028731492037573514107372847974934922790012203017184418455819890521571736560862458243733600368858385470586231941586170475798886796916036883408849779141521433698808165169650074773673500946228465072120848602819242894429557738239660289987449499660554487720269396477987467828710264151246246138227228833295087790786719571683596242485233579723329440464869825893300290378940150747913598080602509083328438657867221591661675784499136177898410995914481030013531194088294780935760349006552206821127224657686737612641991904774916006498060829729128024621978720071892156181368739277193735711940290366706764128480125236397475705990263224671053388803429498534688455193239832848482894009495288179393992576508042605495502274826996833019892938451989798032211619561805228205454752218440233436538189390904126621099430066272231633100985831904029951852304256047989738638218079304906244722991189434262059334202845125374973697030645246600886183408219554358816017397304227014228750537512553896166147364335261341901939593858172247994455414197920834233104703574183844115272333376522001188336586445964812500974667240228749255294358655774087295582446454238626524516070919665918215602987458217057280471725613959986668178797515761499125518453062093764224181604139609076084273872018168893491460378773799938055738986616615560228112093148605421770783566527265780781312739129729299179261527386846054668906975149836741740656909705467658297635975081734323167369775023904185794850899367483288014646952443244865151288937684527669026668675241924202609009021361310272600855855976148244284347271739074621295518534673963055578286071854298328857738686650958465480927137098726463451525604299658812078902258318700762197110110979119566791300816542210407330139310427137246685525721930226919117313608221056459653887185255176632323833652627925925306172890690540900990577394686893453669659507689201019860393410496762152836222203372660708077046415507985535452912939172939687176890569423316860354008280923678742408957352157169336360026842997612965927229318948031631200814307673628912671167272673964223638317049568645478633559963232099104095756588258613246849023564080515658218787217713961680806187826108752869149742221528241823136589054464145170225630625703413430787619925360555907174423020512292085921389181390917593401430675548217768344234771717151327567009780139053070660684060232159828579635360968970720758812923448873375234033003219594050084970704319718914585935423436441998995011999454354080442906151092086562344359221588637936626883925949405380535037365103591338321855164081820696932847401537016631094062367771822420431709613206401802016903850585641040020803790682959638329642880666148026607473114923406341640842175024011051045549052585019205582616951830146677420206715369969776102106506449321785462516152075822108144382494538045718389613270902315550130885498397830831113444296094161677812052947473170313784497567022853334772929002231567160024198823460748762828296609581034357935154853363172446233135841589429046875601162413277484995454107806538354978803127070803118665332472740548981889218861969738054002221247043791640062063284637268640325482300755100437963770992195485554161942060580485356255678405948245824425483836425336549550337872320522168367719586337671559078045245418131914207879420566218799322479771974954992651567531890389663649620936522545579605440135570399036735277787092332751322755239197621620326101467502495279828237552213195602824014176830146739378865454848040464141849179985335308987456833544807390949066071461618898902460506506342108334163222544110914026611053469826227281414346084674692877099253742009028864481636996034699470197391330305733596536307205134041662144829347487069220746493869628817289579825747535889869225867716481126809774670035636031341630612423027156760612379860622406995438677529179166987791499122457382270375665965600274867420609657669200866201431696490511268643846002534572897584775709995282918075810515708884277384194524198790544897503707632191428652545551979930944401702907826568140814433118267235498713727107378763143181854951947144539020343338890217325383249279129998326442013116604473898689511596641023760668961128378853130537849735992887037210344232254103802133765289469442278947766855188977543652070178299573962163893897782227432294124723131694189400147206265777019981805454615146389294563162333637373234477181986014953885948458894794521851031122183354688686149459208581981912461469531884967363482574888954943153908806913976994653788571734726199208866629138386831791737343263114106365786738421777789914652870220065044490204935468782470201317288674604616529506163430553781840487196514646951586402065592282325695782696455853224933884853048605206491245599562696014280837742758236601540560936195376620232429266548272786564103003467773229959523157172820880632643567166080752349659304630253563071509956672551781828076736496275874819311695693770753312837463536548052508689467276990977676336062136349842785893849191929168435229197997083224369607620856943944811468233297033105393741452735563693097936207095776956801223114092012529677500804813312540642760299173908832148924586004091075081174944123106833290621982554057144637158603072863752889411839239953618757131915742077953898524385717386741577662695872021705252572112006403387965653136690089454750106042559923445602321232155373517776799405048500694594584182378684593742719696003290473881966687936856403411905049176500296251760783052473341179374326023488242744052775287379928136048777286782856598699805229633550031433442958163577626937824116750661243687323370473551958228679274119361632263339412614685374710962378093845950219873293033610380376024027093097427142765894385412465501612450147462960274802182163255455826265756399402802314002085478742136111342944668834281317229208831427043795079659681322907496443758203449997885327831143356478526362993771962822411276039567212560824654379447267978263748566103108099966476614314796475842165167167600279972651578484139897250101878055964454450305681763503882794783838164852899495898754763244339849714828480304036343772864715982863782117177163817806060624018729314230630425022660870808128017908530271630217107013674249883093741634205910853662079547482305526802754844376373970202888318313022489885142454234580043448343786088752105930933948812097890023315967233387471372581727539409674661345313883960740629917059433189453666575854487107206754080967922982334641893875891643510539693568802067394851712018321413630025895624355817419204046236124564559031895032184197213391471578046248550462355838255679956644821552537323027082992122340748448943950592218128928833041110093579560002914664935881901297362434461416804064178738831403235132809896631992686227859487585244357493128988306352067946647535466705351703201531422169416429564869882613269039745121951123299096448047259754386984947269983435967551828554923235289982321864226807239218421933601775624664482011565434400966616676116456322324525527691456203851452847619263222023751025399731481984429546828900813670994847371674695244302440905200636549090076674050225464098394947625341160957978552223122377616752512018712350961346663517485803938271690513551904912528822625531592267767852302783202376935483926045758717977205580278207090851955501763368784548811820326347159990108431557912795445228270134608311238707898757906002598488486630088051365095083659549252428182866824339559495928391042830445736747788247455111421031459975092019202566659063996773966576828912356646698335819002129386028212195134985648173893038705579895570264508305300085939702960468053250170206853059405372416087417177332488484335881198247343042764777091998902703963861736466603481654150562564577308328244948896584438451519329783070442021765352644697785767189394673966814174919161733824407963094466890298400022239600896510197239195060672502240405381239849651961106358909251344177822023453422336081069555031594979895261093150113888116177759579605154397997817737039588456874882193294101894880479976910692524607022500769588640960023085886287307377731474208820280369106993608682336681930438888612171916170156331718345951705458635183790749668712748096779735751141489325226785047670585072389235207030350658357651454974693036212965588268504724863667556449154930895006343267881022397573405462707230995800302314150329993061774009140974981157025875261885040184824929648647904075270618565062401349361676494598100531300117886158475964308172421561757911772976542459241263984508650042298960429881069018104534697429438017524491771313963152050010859990575436922929647596123215600078388564186980144979942046414203335162288061487770430697108833948048109190393787600145043734143275523217866241717587417277600002172517092587058293095785998502205810629926492422544672981061615492185776247161170791651939859443764071973999489931147939572906335088762334710150808820539479595167043425236318843532599572279841863005484065774304934171358534118201257458804743822505327212103824457879251163689522658601372884360636340629747398251879039135089104331491336941439144794892791338710490375006594511401413478035315030598734064429674003402503349789637781723268820198917313992164494041622550963251141099290317959345963630533343405337652249326729244761197345000737597096480460114163767048721172606730545458514680838041945231054735408612867416967454880861167534781344028761057396669108653503390350784436444964067592338953451846103017909259479754889007943573251068512613322268415523467961167234330239047318393326134949253405420407916717895451729328302163133819294609549108925681617349003761505640131445765645632558263826529574038496202993773207240135026066116917418296637773429328585685989797261133938170146846679098865554695790520564182644150595847574578066323285773295627660619113770010496315335838031275350125102563257914508742106800076588168150050625671867508115458011410571077632667403963435824654961925868465832313302209113911104385203532511542885538065395663086691527032001230656414141326258997205360830476110691967529918742840069457355108213637314136510871791718591040926678161069679000757817164583672296301927916853445586432835296047514285317880065127434489725717981459123676446267844616613102545344468846303367239496503092016619048376133464359586761118317249150761237832743299647526257674291726349046258834578626613886625065891801231223104175694094615103570305845447359371476248706580324313554283060853921487984528082450028833593716361865496904182947054995029272465839462961841924718052432237361580989406166941764779849804852123556302395527891771734616962815161730249652167859164941043719139726349719820819479723584313692273397885327626058661929485005419936008218866888418017391961553682661975796115075659871156523672569516718497094093439510351569560376377545381686959187903988415257887338063926608640676228724717719741761558047278675435123703515804797274865185208957643300009311366251372705941382892424723807416633488316455612601237219295472176014015334325536524651067934587199952301120084938013553761994257584053287305713965025181984502331923607490685873184176116905904605647266790199596040832121077036611350769127262553272571982858993913892052461936196371089970518094454388310894775397217283055103854210618196625491081033542648315652847649212421712036637217526781803698065446975980002744006246295473200128208229993778113838441167998949412851931668334797759651328775143830946519238065127595387110243335727027147450021541748662773081401530211910095976009016050649717947026964849749789060688677176316190656546998469115621240136026858051611558895687095803961371790105656156426123268188809151963026716991208971432507906965822343766524407511874946877929451379884527970200393656417607512521408883992944546323551300704028142404003830797981550000522129181130549432049035411110935844973326441802069462415603553157537488072520117437485959882828483897095442943184102997105507066462514024554075189417451558174183430565647120740972070807221717875607476991006867146082179422315750922651842444569349554670001728197816786923496267743162623953068628196525722136945544926537854966805061378949246315374710925932403202517779870600276123636346583231887624760460435798239659569560819239826182704739552820040551069801818100978330719876675734274622494020842610238415723150029228590930467373014000170659592857535345888138511297391205883434165065242968226681453206867274956382939097042444646369765358425595944419308830341314481459785531560500331741210369982789416263737380175291882602729970441308860958156366625341366735307917619057868930736147615653111737387425357592585774251556344989674028555405991607334606273957352205680537006949201597528742925530604271221034149545237277761050803936254624479727000020507321143818571787345609089557315089716945985723246174249588100085306034163564489706624204234168770558742637832981135985348143922476101773920660740856509501235114847053236268111888141089878828167908331371485704977058805692870994693042352000946441275304804025143140512096458740286034989245601819366401355144713073145061381267567150625927535522736529096333246656998525565733367140105218276570468545994824403160365017317815378179097631310238342770073764573512221794212759352114955693693437526758813874335618135579562871992564151935330102114186615170113013651829432742138895258380074832628785028156488468237044471781310668965919370263449882156624368486450874100208348565873364508985039726424986151102692033144045637873315069676695036497515475835914809151691935416006675336098168694675674738527194941025762177658742468736771627853239600758075798627627701126440130899639052943798535355346327356789027209558730563163620635388587991203097122984439371271819533844057782095834043905188592779901197255724858386803429659681661333183827922252770952953451815073532639932241854458749592239681357414242346773572765067307732037672256131120781535760455631698113029233838356002707320129376999335069736250348351983333996124028612588147355174547498371537908971803335627977000465208075421276908769799540369510530380305648407306515080978553962690120322940770593481995935095529591967504155957861105289610336797316560424973559830192031310342959546915487659611317425934360199433908722944708079909519979846879335473917856747706278846634419589415802424278118731124938982455846694356261206492242457343320928191183996293267845229433340928606592472097050994134925354564406221044247158895242906045743844534735476683414623315111131974415410140504445076156945259783523402437909362547613192701725741390849506109431567786529267458697813102490415922536855806953316775968450258386683148333547110250297752871897608245046862962830609998969770821665148398942016545429666315577436349426338162369427066749377775563371652656926952742622079193147471698377748270385930819905503956440469160359450451726696521270900314365407641758453193211019384055690758830541325196523476652721229532599586940629310233449312484080405582990411240419763264538322293519995311092022561565614799060446049094310290010536139833001375857890648659927488382897274033217623398935481229116086609798698318009868689435522605019584583790825946478426606781759425801145633599433394874620496320035467293679063790260344132537526685936410407724789309729946630150426950521402099561778720290302731570226221292962418924836212996153943207227230403265161483900803005858245409159065965196203535245135781856979499201423588687086713972496900624569642480062867134586361620676954108000818813867652743787532835099310298434904052491374308256419220318337234122174133070515595935901308408302636579741950328513206184706146807418627868758464010041242751588924693414760349266561846287658199577349769928560202875446926431010380816533746652069547540848843310256203552082262506693559709352399222396930226207865150850974377962870543809572279978855501817396164307775438940055822007443768383257882636490786779987352918381868602316079329467393517668301010590622702873193488737703612228784364671779113390742940398389527001865880477472743094396381701444365459262646596184068897217108436993927578166555611155676488490473318384261350634584774655980684924803380869416143990597078568694095444259470559298870039001730016322387250183976600870587555457124285597662288680687050711274443788988204326315883382186275838832433654232483232155345696633499306980896745847454997900110268027456106163534777874605449579473274409263744715103983440455943091864204694256425462236131933707530400217245973878220694222602150959101742152666345627580316267928040134284888218909820013751267860964819991107929061540109744798589275304642948297540638953270980762469650110401609496757397324717877578702780612694870835378569565446388042056945201361496818923731238027781661390014174562205310803170336048206493691799912239508447693592872951495680028481067039733533325024577607886207628184319538512520540978786366653737798012679980514938168279663388544007516817498066594999590644707316240122077428632928513938721758528317952753162004499599169687877898696201594152526315539853598028823502973100045852467186686293403462823063811267679429841055903793747837411646001257376977620350331905003377558852575062437652102128485291879791062889621450404191441292980546750347521844293307703275740345374554127948764756649422991820161502884643572727709666498784405425223068766350324053943844101398830319725213248246812469151421206414343844147902061310119240664152549550997339801487556097010089330768188700746191560447712233626024095540090282082295917648019332368718854653894105793548955155118977745251909855729241668460260348856910214908699544012010197091895418609052654142132898382726446892747814957444527302471690857557399524162509590832864415735094905071834903489772616675378147109341026777216374280029487076678932393823299624574324662500787325395305082305817439268307487184958057196778244283561209944636748466427520433158853349491439193586032902447944237235085830884043795376176162429001104473824572024860762210082203538205406468038617181553524833483383994302519640333539686056794516010186982397201082848719778459623972309018250501995255640468284950821562856998285027118366636452686928053646962508629467199734922835673682550498704495960392626531895636425151282134017046974342480912284380296178381696999201232054877220041453944018545280099631769802007891967609755529894463762735862172679483803236099590147408769831988688228932069583897979072731925044854260872101940553931415608071309266202613338283341105993573582052180558951900392422735555147279224864620956364416572925354255122691409073983100262887452765521212152176923427763827997018421307058777067586763086871109849796030671851813080417901597055353394690809474745292434449603204323851827742967984099094423766562035922700343102154226276652696720656049846624096851208830015419260443915755992653412937167212872929894143906397125095936304608325857808021978253101775170700458446193246135846349040201497569056953107987692092785190269259851874029790985097644444507102221304576560225763058520425697878650891357474471548947767525413620695868131493586109122080600220843286305930995670811748892231389897384187591559328417630810923298382291688260727169572895325919861711416545345328278140073715602102952146721517678694030624125228098649706800989140526585624637747358339832512481086231689770359647721240367572620614086526847565998908688671719918724426309279770265119567610239250653540684573752951262218762681550523763669296447893612151544700312438667787873345161732557026159225728163799865858186186480709931552182033651936495571099763408804190536807714948069301782667205335209086481963211955646639782251932564064897046634943460392761595806049024174149746766899279370772042184910068525366280462648526349557551077612781913857078406079012313696295564198324586258890540376636006122681425148006409201578647402757823369957685409871279617171928668998869115046863858010320115286168271881711008598559034799045309613849514833356257414902305125367613705199902511207151760206734235585926286011885224517883068360819628519136529838353616394115718012045469500140130650458437029869963680281241323756030631424573911344648087929800133249420732436580453029165455328754994895926380352446035624217608523854023011112137426456459744584160951317578216938497265064805040483906995118848276308335933223250869251748554265860747924662713313088339277840394020855084865863010309944029522838189120612784797722222740755348774787062837127474540949777308240032305824110200902181842208824033837627392215872150998008135990774293853048074669384566142242364292475773951411365052294450143657955390116480183384173734628894186741976834276405748554930479174627800075775188814715709642490690507517836523370343477826934271953797568464311614563210437404061305754366572684158009288606240699092645170892277934826539348810794397431165613451089021770793438204540311755477673474327389591738913454682385770393243814094720208821208214159638547991201536267893766428420039044396720072415220755790162103969458939336410110527564028133572584287005171991607060534997305645898674055890276366389429491808781685519297903044968099403460243289340938420160032337903160004572224722417543888599010928873861878923547965995127960538753962696780040663603615159330178294049766413141752082742837534567959083314828709431867705978829670556050780401597194589842066100916715863021225425936087355187628894583969224847660489108191765968229095561598160169888593768273093062366035255063526488332364570054020622368787948036189318341347260410229144105648077701601035639251449100714547823226374314373901803486221009569357292770765642508716642618336972253758550856194673025366792841743551021488884459068226782244254124504047931227569223085819253930271959683422474736356667530627600323640245945580324367824597107231651248452189719094405135555003102597622771453967068368600810845343108830651926891035880216461408283917157359408428307468923746712228904404707621218795957151502021802598084024707256758756295902675567156505320665879474778345255090873097381516537555581058973933516480815835665952270941103462468967633170144108173332227097061607434266367786944613811292811008547047236221535040543177680151800547280322229771483803075384014592416193610787070362116533956285242275067782124181912658486978160989130599782274075167317648875794861899452688317889180398379294835038257049516238750465265170839305653222805699242952383145735377847133261452411181878570073918884140420027433456600120754920659008272853897131847522691052503589190799599016833724310523098744531416528319080611771525888525920215699505977880125114236057665489838674329332696477144999893528064048930638403795999046119663720156490733334315570305452748358751823685052645689246826081094013511195858240743574266119749975156930758039511539080163395072560476170364075125688292075098285535939412188917476547137833006598521558749029859553985509192079427044929495204478403070784442692064025953420727005887635182759709552964330752328618650834453168149896315079873108752808647215586408503799338328381717851920996170730298056810919611829907788112850629702294729744065687185774850692991042989558796747630665158251781564458150289217057297532189773755465736176604668366609624662954558898462593315072672625643187207292890060085281368508636557974139497849820802672280884870881503107437825483781407872245536995960569328445092007314043194726610156473313430837669696387951769965719729733623334746463356773252944053612219446591902782146137918837338156271119604020065440257950501233683128091205817340185304233938382363030885090744129032325155818489864769464584585957657408407892218416755988649230838763643199513931148034518465660575840107411019142933268731925859927899071811291089923000457472731042285475768102154429269484452318239618524903030086920773476289894960406537725428819962696623725754580745271909081820647498153142815208218093225351426687488589273183468710740694854802959613567469391593077383862651706701815572500885875155869617070339774098547120580620977947909462869861737638025513936524593371828439673940450403165093390011050324615297252534562061099517285669438444105790067460169845653887757636206362257474647733558901581767206737960547570825567076484439368350997568026388009533566732154132707932951280504838918699002924038710322113615770323353637997871482465229112260492463808939036400054367734694008009625176459459752548251956808339433731128956843458169858353377269235155466063118161092498545002653645789257146313601307024653531350099972918051644058368934234247872387069109190904561822649171146264152679341244291823366183424106792609658593045292807656695554950856228699860577815098558958333195533027960440832081279413527537534208153001806877061985870498178692001949929086123144358380496557546048092073973322180713758708271222926516225635596880358610573441179518093958915838843096495984810346622051791974943655828876762252114143109039239601388560163843263010618114290993992367109683339114808315110102190298660546715416265835639946809896232939815610980653093727072514423994027012092006086850186111427826334664746702127786698803059766614690440717753518655061448431750071408827384960868133453265322149151186867210250743576056918166604311818388480132745486656613197159457679061345236959209763478393974916125097220571434073559944472520597871541097370989867269694562309183069053595220019526006949645601694929745255746711765330080433148781804591853356230641747692107983194547813238860713370619887122755253692495438899200165362180893018643732774074218305890412294500912608427212982416240199544145207647790276066743847154297926015995294530689179228236790369976103898423133892550925244059707144509166559083593795715457693331920206109095467919717880545931991106530188348732348277806797346274263507641915057459341772066585399908769543711419742992052774366711262511953065525670232748188594482609102197218478070546645465085713647721640180519148648708387736082188611634983185145425891211350626671363451732319233008728201464536553689389438141159806280971138723490842797201691734537069015554771982788845146198498583635871499888467463906058382748351569536520760103509803313138384793644936779885229212687890158906205191390838246301141037781634608506255881140869232570992929668171409695155645762408969908700950566267973448390379946791389281852933659341701487605250439909287191672503280821211797054370993029722324564077068880840178344906056044824468094414688679998171059474890455346434870214485126054692678619526648531634040802456310164973605510083501769822154603026349533427970918759981491887106716790814024828289071729502430969620656525534556943814671870432807791181521631330268181626548399100633646878217634909840561623553489544426087752011908340332964906680564080152735004641114634099322831225632210659043756963945460469431314454591405447919042034364729430608416578836630611921548815834225983936935445568648373231330626691276049186065442869209571650553485669223654291011425740150127848774577241816681060419602166843327087873541639134653451490321672113101043153727612350299969301737381735060743907954439709247096262014124964340254059338248629447366052361568637744241286166813507777367319408703511493264618988871625160520499753421269260990600340352472055469461481063056008177766436798921851181300748216897186470606518607153649482320972658479245816011720451526562333891466020658180604719111763562094530087131116671294259878793119010249026274237252572126875501451491052428524430490568304253174621915855241129372239140634222723169245528502659035794894001957047818904636241641907107173209026708178615653304686207030469813374248224511061568527062290015159572116921191798889427644920112228403521170848439226756337519440362132386272933248157510494527241598445225176842800335466198821650807225220495674877846508607469934149560158884183178669061689592194281548400211519274321049965003382163718916891970910382866081167977544343007842186518808764044125836834272366311530656401391773987466818388805205256962047929176431360281758877475690092306655766215774438554501769943379638967696014234191216065080344750294711846828263747077380618724041765607947439760709636453958209238325289932955942173270720340813564857301132269614129611815335451790830456711677741423716525688713369950637591748866857542999133265577985536065239126477587073807190488886376429215169357666134828593067786787643746016945433182576311270729635603160146476428914448300408253245069625266247712518808045340508922300446744162477249515323471220159598914280224412495036634513226581292436149277343214207214228251908913566595228835292150285014006767973227971476712176468821505965891611500788678214049819505443785764967674358807290429863516376512670712472887537272384297068823848107617583008314788831359342743107475530515720052076400866596583945627451427595107824779611766237834887777012655101415954310831851996375177704556682993666009246736558066675670771970956152171005242208953901450114943353742054432315669403457865068543876009878523594205286657240948482011203161164815797603523326881703771094947626775944963022010164984902937767745653644809041589331665015476740097626023172873340045225916313373938634648112835611265461963781957521750568717282359108175916516805622744837218810869964745829366703318336621725782808918517274367767175869764489509557046636644770037986320804933572746054162607779324766320592348758899381941701679891881872115748957733481675582426863339174045679980351523809864696111568497647366406060230248870330225635605506841368385198531265305020995282144362415158968905892145485003197581569870170019777965061276922977875067047495434578820344069688947286588972486006468256387673321150589766274899757665579327402492592863864498364256285298146017210417037405846665487958952047692481365268753132997845346632243813785537604358642558850010867271866716686672771046329418092782532669266200561949397856377081925437663311492352511788058829056554279298006283904713069155201055741922915836681359147302461845855468318062264498032278593036381548800982243331978454439687537855801858528603694116840838657651006613505222559650849198639560657870316115202756568994188727758538687595377155611514809443777375580866042478340767973606297430396189999521592412301029941977386542261030034397096220071133773386408887490020858343424929780304997698748328289794283376984604924943849363376139318482023649810312781901133728221158602562125902886175532672606820006862139051144148957469295218131922865794434044474466945772497760017367599458499078416404412965781149518071019384961861608023844645864742715115375552392673716107701860110356990338119672215429790806801891400640406906387478987908763644954827074863012739490931859204476127986175071884388571882817692556058921777745269715964246295888265581027630822218589429495368744263813189301899639477724377197612805506781099179487763261954289301996316160205673871722214518285391176171294351401334972021076255495270589385385417278008750570139748543312006534716521075712291179871683293168993332914615464907985113814653566346837425669173107923849146866984305918278706811025027022819210447237227224720811790639563220287128311644986300082542797070418830456169745410033345894161640866959938105382565567758108809466905959480647819974978037546071974591788145096720497720491684633487382841266664076023408008048221348094544486722020261928801489060701190379442842792562953058097801029481298110657040086440176492854878406697754930898421905621069044687136990161867149247510084817162776698642919463300444297191453007928176653934163363044975468694806714026679061114491203643596343814065258092418163659424484111809632360792142128286543890302174215323878869554008457223103488568322265636756760257500333608552532690407127898157275063640396815626444120340089801884669273400023494234430678336654892991992717881926727859921291211338882185755534219333085925997079978996945924624902779810354221978857256631145661740155922477551788729158935530205289143654872572966255731043367959103305139813959226595728699375992006729296305802159928677964583725660639297175874621065893785108243592681699682051487910304303390357160528496812607242814475225349282080332834469587583258235063782946371973686210907817281601771626808763972141436061177156127561310460276030091569874299483474248579483321993327788132965315532833926690249519685198412849250772832122168800095498825200422705401607903177673474300422468338130589264749534212596371590257357272774325416903602274748593513075597831406131469349775198824826213434500523331789484337932612186259935656379242317559209599554615016731623483788679606400658704086522228030299250161419313900136619867200290185561529777238854566796171270532015299866979460462561366872030762276339184345976558452995048318633592302542787471836375331076976724310761801665932247223829020653256027273345322674410628768363400108655195500379735415823196579004853184233749383904907202607487413981419383910965030810835523702868078463910291749314893306001644637440793890036104182874533827953034234963101472561344013522062212782162343446218947389783052896181978970322240897315719309743959456350478230203791098515344547298209082588561581543833216195098397081469204193387603347825883402841579927244462832292013768577406464290334983859538459124137786558960156419038579132244014510820925445913261548148414909467577487386420923143660121430738123485164447014512307582754875185459987406335641130286330569711418689623437802633811775045528306094137077120069415779112456709351313672292635406675859853705740121988642658198058413980292095617009225123761522737508886557961293235777475737072988649782595984158983396815246293500058638297169415868625300599078580998765685692192278151735797805289788533402866713203625003466029114342153242461041665722077500410221635524137131188688114464816023267506251903445554926182096801531993226362043374615374071315005871136759508767064685943080345580437794187630084292908288135627952757163591564592326150502545805653389081238352709630947193456719082225271011154062740835269639222735615663644531033743593352323732526702908751263831377697273147734163995996930128627066799750865256683389556664781203952600880446740602829776974770803484753208279286099978575780377882075712006768650297383136463479610403835162389991561356952607156679598684991499891816895287918400548560217157182663815009878915945430806159481437989506628379502930013231534896567998728055901719370391308401574791089923577577226411315873089632399787693519474426949864132028122201826238357228698973144932394354642244034050734649173687625886282542397846888339369431422919481190823069483861525404749460703251003321136993721676185434083642929075912329684485186919391720206272867888607287179866411219736260396065366608752284005070965218884133540524706326736004796060554721432191056848315122305640742538974665989853849489605839890280060131053435872068591638869669434557840300780829795747516953935049314047446732733531422027680423968462049920248517166365292350378676793270827050634314160090841125426798035480120181001561131909137803046515829901463051872879035634996817575969076730653073433036990943670483229988019294286732478593567343474447754662556422240525186714860922045301129910612767247006588265884270383367595599982279114891155272102536554151470808772092526375630272123561226467726978616452461637648451463928545203298132347047958938006254004856522714986265276415264582684427812325778266469295468768186519385656941394281539162095229978288765027289517152018176841437849094856357250692994538585311979201123475175977711246643814780555389846181710286586680925312429492413037312886385221688364754494427779877702343226733599367481507833329255945322211279226927145322548697853309175536832374842727686979098890934470275546384368627491504686273167052534645812665908498720576067043225409166428879118115143076291080850063423832831990816324104214394128263859593922451802718179739569066231460110758279978195314872210877823863734849878759421626535265700420885676469657283475874953068373198069833386341443136832828770234440538391213906010603445280482985641559650543927236318115400094812275375149934454986736731550067739824539177088702250643426290543141889753903186275107848492743222623272573629058190966673094744267139602107173186307961072235329475486866323212653627944317537429178572016187989780128570104183615710173512421096566646930893435128887271967349632965189008339254861409722600617146812561726511904790893714727970723981358853034627071446049879854920400621011989875017512635136521828329942115187005693317126437117757769830945599845382084404811773933352973445383851862935118355274760787670457617771532688168864402177160923017678816790089510663964603495067416248194002039163462459772414560123823672965623239967071296423869483209443911504514364973446750054830556522765384900896344034705174559446436873827477291673231649511142147990587310652275606096607328738172061640838773844428396289137617888879049977401363105255647755862863525262082807554091861964807170589959226089299808452545184699342462298038684092531608527580809618471448715390917959599078472482690923018026852781999702706212059458271591627890095429964468190227361791408097627386795017307236304042167993049662769471748758493261382995767331173278231452701416571311472962310178375328198572476601619067743994715917293326264271927907254303777879718196019128054033027232452221646012145276935941532827324856105483581280131360330418103135587925989789496204554926246003975014723447084927859887174596506161340972218086443568773237811665233832486595652794365896225732529142541235111127090246688432531995120977553303376217592271420678579199750182125177951312031158497494064775981727895367689900504088161118224200711072796287477543048050861221666647368423270177199322151443714003278320998632204454442523642910461885157552449780949938914842360518070353843592538965812124700198352838314307428004643497963254732533748885098047549337773985874065454173128190274356248879157933331600348396743349096305601394716181684862738951856272093679118642203293000661405601898275894942480828539491133341073739105862003401927480394553656468700450859065514067603108015351215484760904274321189993638416036021119016786821811138130244459603227611608604925879508246252181572029374194224777646786347391413133261128638634667243859053599615370318914220749269412519956549490132918546851957256563065735951636128964237335109690453369751862487597137494346502784639580609303512158704084485837549338045555659360981774840724633798537962500350460785371333190982470404968408906778535822909476449158039304816261782979943427846944104099180587141999559046717534804856356465887142795715075968493103259850259994324262494297807386005435557970179331741108490046135247233871158325094652330209241322116088655364372487833343854038519832987755635636625219243830022515068972984877592164689830473186688662269162938023345950776598066425031376212588864499799691147356794797686884450538279044676072222930019612314177722090431859571388000212218134311029468771317826870292915385269814839710552628254290034664172472663265942304272131120777935799355551682644579079556587983015039847151083842438533291152125712300110552010140864208812683399047509136102110781312914430964935752033427911313379246206164313006437466698113432439663330136991601653704510840782286776966088771873251575331394860806867318339901829108970451106962370574052476063823198701586136221353438272283636172546794789333782020306074308106563706656572156289216567752743163491707173310417439596631909734830390346374549978927236025670846262569302520191654978986756180337532826972111655318657968059728703622992150052128709857849050873984032650614875437285516507629705443963962034866953269884745333616712379115768073316096340573948098604433143764716328605231855023998607432634055674696062682777569737503113133887860794934778131277670693152486875286732865663818229435280091104920628939068224756150218173980813326876536800828487736750078319296361992640431330609454577883721865240673371710786897072753247895374292754954304841621683996007943526072450693040541998410047472131521952052495524253838255880300352176598246197585824719720578761562089882408498384554659691855148084148027928575887987788695142637658670618487746278611901189595755679422952951039483377890821113147482194806713307531458761700405768438876259812003198448843967573134424922553645582267269369477576192506795639196943436014615201986658413572798775673048282285592809152506028155933337219675245269287803614442129819435436308370747321716672845524714831548930608351157418446338039113841059554876622214652523552526973018026557272786571903452876257611884660328903627180566716900988271284133852591881640939210522408384182195194744631351618565652645725281082890194458562185524792277628402219222737052400051003186309413922617095503855041405408821922910831718453760594860342505940449468169769669842223179608697880686705396255586898829906158977109057799467538373930941848460306077495919281344360656004209368129995220600199929835929383770917168606519075240040751639345780875983234957724562555515696509828354259258598867637214574220587855574373533483907028862680758454878440918738071869228993420406266990088847492845178597021571195138087769490804293086410502633486872101898597950597444293213736694086373589778340263033981886286051665068554479976615386599798611363843652521274744472877002758847114053091584427213416714114741207010876838504705185074333993862564285582679270310709164389240513109647060671160654637131168441827394945440738263683191977928390601161537625822446581724863106001563548180102157073109340684627798747973062970839636956797897927577167390272402882090151958657747974192895580415994135749218938825210294539025622174385688300738257872427476197618089222733254739906543061555588431445789908908254945695450585609249052524535278288133332652968246100725549241576309673899565292407204200888931659767062290397213803811637953225797183127709018764049248076843682307164258840803996671202208269947720246670477967843322031123920811960746647391087225846313093756422483896181202872530897310285498130881394952200456883166146860514350344771275268852156632873803506743539345303943472128853371349070989983916547238684012084499066395534983608505516727193067324701487214444460633285515273197830417783098353525763238566278417637350458830005887627831254931573293356091340969556323753934979048580284945205463414173126207280670168892711749890892821575464681617190499458029446400088596490897322027065514357682214335353670309354254555785963767727951841948198368956065693412244998798149081025718036935378203556432575578810445692822463069812334729913327924628150782356198648902741256542706214359111971334955830856954494315117213588395786186706862796256434525975427600966967953098130863956793369587523679430724194832585742399215176575195483179522394743164895895402021589351752118535641806918074441583572574418677659233360144347007845836563021962624425584910757975944591325634348248222685928716815212816689170570294534150203336745676667829360044686194750124779040099675497583411919639760402731607053619674060034047061294670357556226303625357265906112577386388613692458033030555754341701417546372759911669671269349943910766185823702292899962135531631763334864814560483842200042045628679391993788070853823931913586582078206842777078924387957326788108598655400437474953610806121195693917368323263069521400310734616604636371058182500061315399996240093607955097250649359177512041507896877036829795141771671845535435212384545455070879877150643750380136009642823264254130768316855821329399617157463361314521034726781966711279138143391102295051441486830214081109445036064202222694874391601861865000161143907639636503952819993966945010222335986528553400041477156683366994898902242073976117829714218595479497578811300351287060421085771113043505452324918323914761992797888117464426945570159035369438286620090977045915364132724776131625313538263316324568933441407351727633714206700209037364325505145005651124801918646505500457511410914674492824200044279515612012647525988652290072048938212981037428771651766330442253977184076197798182705929037581708942579262916657855160484006800552864117422844972716188314598326112334427619926644224675803059007577277227342089199265267202700253715816811169138957486637089967932584218807835149982451252879848541039745667070563661314547553393952673543147669362836410474929894544600504842378635029110619720997087214304833515631405859264508022341964754705999103371631228042859361215655940408369004057693159555497137064717990355925150741751943058356779469523608257698661972324547511176735622840601544762192755881987617269780961487776925206750640668052786389878735202083271147976076768351318626425524551470608434048688998190894877994496047037220911718902321673986826848557428104633680928971483551782628722048779336471262663426597413070541049349512732129706383918966965407496537782489543438213218574587763538005644298241389338961376544156965119442006595558334469874451410541977923394316676104389451114685737750039294408747612333093185547958536155031474653504549028343864771289150486029993863099659005753997441497032692136743587408362482950682189878168783284345802769399970713505723368166016283301352174703514496619381674236100047627650459032493033652000126388287461801433780823496988187426352141066502649960281792251629727364655821010055305656434202462208224556957236932900337149536373244438931294755299420119790693207332539290426029681816492726024772434307477916948865568934861154886612063905975033193021437366358628119256794961768219758215956420208829243101307828413445592581875122212467138502992129714995496917626699765366837455961520582055498738728652157358207483379693000236597688432999646770246070201594094372614989479131278789415842112572046456501606031074495367170790965313515239153304701760803060368500328427298606605654150338812876479977069789033156811618778378930549146595334675299926765775904544868070375670488738828404788343902976067399050061278165697260931383959595892744672073403979068683572112255864717159907733060612029617231761252066828408140140844416366609544232914688390472207967334069923389606563660348367771250772464058304836646533156590077642364031966200216043427625221346885600288910730256598636922876765798753286827606223341335549883898219667068992190011949303021928379253556469514961597137227710537771150884030543167732904400520782263980082471978260400906140609939168866296341825924588533570196448089346452691785690195134043769366164914491987733429614850620759149402378099236603696470260345911327420475323710115398375984183519358845574691364459636609080366317566009941187156542342261705166269413331024403866093804918009449525678163963123639083273098152509291280711147151170678537682141280697691970129724280699854276652796968192241510453951531107228046101730954970114631995469689848906594859041454659328921236720796616614992058814072333763691987576556838293489429202338292431258421103451087989377898243403914521393361635291216933906758308850260625613438871794394906476925574052870571155976092473951336290243975284372849496252607549690889361837384679477312253598953745365448634493092394886204528242438438111365949947418334693303592343607410052499807142834850543910011503868910566744388235248589556541331501389502291486372538396154643586093233146434197047318069146711796541882032953535755582700594799174893397107215101703508682625102467746536755676246205377474366126909541549475028801789021855863193675409941369946243827538427085270085787419178045088316630104268496790442248122632111860499391470724363253922262926865092082737893999699110976011250090642196856869577666880815802815155854034575930207257414216465915950728342117881254174193861983764588886860213375464150024076780280661243312798987526709359627111960850265028398082839412424055571652511127645426714545579167897962007244780929563593094026497195570598341788031838352605174731995363939362860361154244261502594177808520135690028979782589940070317383632894801427035937427069417362450396122910912539667379975902789133451656434578172530001940603738568861060223612216342581347206334270217767689231173233295135658075044238103502445166220410656714907466052329678220254619927414226404573116013297019681898051344941877938487134241336600884797070630500180043758240518414493203734710548445812941611810710224824393085691326978289442607803263853051605553823520784961028888969523734832570772516406473502936276135785518650299501416523061787475410757615921313776031756145124432155562571053144832339910771526788697850181078117625815030853568491814038236628531472106895646481090493976909432044550961933212686594369894905098876712508417181381430812968069510607760095627589315431944836700752741824883855599992049755178174138703672216556962419556639281681527100991667105966118527951096247666672653986929117135336434579043349282381627841019291374664804458076317845640914352186117872004731718995649702591550669372359545479668770655863229364452945236342633496974716880111850952728380372295820183309423609212355312682469909334417929122326099232229508168262386576482266052628118764850706465717631615248135123404100240048993430169794548338460253678732323698531732651329818714925015455892261048043797893438564012265814191487666277933832238056964142061484044782006088039528496405939330248097209108544448334565237946099494484811496779509249059442933133121234750980275240292487926419853006771536586527335762156384257834364817252654308177397245469802786201733126073440331002397797828893889867725876381652221719575852948703499822702222175074980796442325662250562454391429007897428455127734150387489363499948423596614914025185069648241985694931482386031821590899384830357798761586632598472853463507668793784572481558220035338646747172673956551379031411530763223807645405085366212723271710487736824799665039631198664388308363367434732519316116816114520454637000805784126942039347297789931009934933522339537808007116485237793428815786871178368622443401678974450394923119009722040229579117217134530265683872629568377483384340655151277881797878141387697112223793747436972363715703939970095071357626895526439920430833968879440400995204016572918554577693425067404925791963937860972963035926174157135322086872967573817620480941720084749832634094853188496923650635249412932078652466381487962922977100140035693937563975444686390779119841550420369243947862100467256591358124075305422751205551992301229409274034844873588132075696311215479591152414292198804221721100664408988893999913338007050960853526750064066210409126462912163095100028580904424332800360581601989880237601835392941659606526617478925344079960948097942163759012838452783302051861588528733747046043968391482547091895544559617111436342838403230625280185201206938892565361600066412995153697288877922056471941467372848798415847745266501818349945111183499342279677275601283025634629715702697126478735321970728093183436589553831826647348148394265982778464020105901433820532019506231395373140389550793359785299273727333651552548280496129358875238655446384514010114377402961240071846832104127007229936982736799609436123805884888670857233169785828061701321025186188073297469164955332380771000170672093654810528033955625580868894263209571796222654249124031036143483601369774410692148135686834995905606912212111523462015453610994849925585680807146657902986887694567610751435743693769127672232851389599225786422531649133624657084924749656724564334359396005924717499026665543912355741916067307640715981395912071047885211416323195884396490099495097848186291582471261535126217652504839543084617469960647761124277769069227194229921536045041132013382043948825644777998464159577569383229295285234044904932052909924685300250401539524100962532257323089513303286687931209129306190891029022320501914557866258733849637616595679368416254272972914602519257978408205671084267398495997745512838010211621811924454282716520647139413018089780484984308958315947658743208686209650002746256961243853128095913407304851608165068905735337741843339801746157340112903250125300733102250829357291789537676782794373484019025729279108053852674832594804244182190414480851190645003204561943261163151264628519215890150211349269979692140546905517270947563881566155794169279855680328757514435366661858893492861760959186121537924979878640869497048085562919902760323731702239878714840167725768352715279688652254811169846661910107415841673976089738806429533758879308789215431295835249004708527227960874203866803283098287601626589086383433923976890379553681414886698656282188984400758412779540953796969326634455552248800456974273957500197028167504492404458644699763467465778154718118711220771093801010793739017963019858421511033163452818026926067441221939236031988392080473717441124379787843515840381292615123906411192930736872540552549209576150887141649701962519315971629896100401039851190540860964605482298176968714503046884076202352476987905909127682275166360401686700390048068333075280958003295849668393384182579538964293222066696587259928955032099585476053893752063035864013927646961111968461937036302880265563169596649222418339870274688780206553589267526926836499875824544227942071092396283696593121762769511475266713143007914991568878726488052029298315660121315080862923588333130201057246749910276130463977251616115695351418257165784864606760278142170596869284509547240163887846871676149825915450655460445060031693462158359068039553054043948872007090262090176678402742973021481731934227982529853216136435133744337181350372953817042527424838665775963401304169257790813846125651841035757128388582991350857832971724068883806567364421962092366130293489887140975574411051569075990922847043789192865935781395331787543994369490303965852939208865734979119153421153786622291397805557441827534324712432740462831597099786218603634625858377191406920431563660126939304049132683948721858647315558732665047744410412776634623155895225771018415827747767143975069274913555846759225063244636256028356925729234945088554638364440798567398071160714499244735844005016664123592066237235244918618347743525791252338550967340649997815444652339317347473915738909718258331155058371298713646194327543824117415710709256054572806747446422798537328298557550774076389051081014207742131410882541218896141041873561870378715707583634070068110703518883043860234288349930226561523184516139597479258715111489577956187332096395656938114693033354380466628622514113105376059763430794850765599612901585313417882712274001997715613273826475899372098737759478477875497748193483327242224811130530919104371770649745714466449926211443731785027752793309195076518950148658065506285352994364371237605749786925194246328889250456883522198994707746385624578458541876269486722036291387804192388725077370708110585907166813265288420051376175936952526093142365764932012246040447697988147168057507094536748192142794274649597929795806532209627304319252047895955532520887397456410870784379216949025471543266968001458024455661994049806829404895330994419484905946823174714387920339711944511515264709445340538749053118561180050790484947442449142618306133664649244933683207927816520213103856743476770156520592094624043060920801066454203026279478968235814788701309518757819910970059137725233924425807637143156496804706683350332862967728271874013861014785358254743432146040446009694182741276707613975004911686348100886330972626294723563463621643670128547935245715191664607647700338029527238205473446197464616273643035430133497444826056778757747396964991899939269339151378298260049075226207901544687962308961223875011677372809435372057681326363101989641503932912122882970688115776495367648895180144396944661041156991397151580203647725403034402294869662136283950607677470234648244889063439180083603377837001719311285319030414794720223752392200202454795528381766595281202170189422996953163570997926672417075838019306724772685693364007229205763107393817065194960665008294812596179806537004215594133859188785789883001268646184282343400318579047739661884755098736635152347985905690918846958065172796407501219931717686719300523103623392206883820095413181269805597970838485870401724469370087827849786587732881571386579840025533982100961295197451414198050855117496276795299588999956947583710850503664764002092603712829753460805877757472865172724514900322338275760131114964686750113220288262393341355251997064865584405716290948489294599663662960557493479132123115173849331281465100751960337097479618806656651401580047400544963681097613051272383113665098096152002966971489455767293663567090675138463026580060810493993947008208081362938663709164077385757333196467682588012897918311781251321905095643115601181360164265694438459136574937368732409296518541834136460946463317231844972171327891159174919284772000942961998687793971230496610643373308740113335094460883662397716643282122288374868112487004501569045391020909691433677808803650379370770697159595411697941835065300438127178953951327174033613971101707517457983819836323221465110071874251910613486071836985993175187539160432971018908762603702663920293122876218204377785324408553038419627459020225777685316465927859502848827880686595286267004350732200281786233098299017304481840926837990808060351776978137686155785312035355733160096962417140692089409427058554469122790275885447188826154874944559099215994768943880687228664150527657447955954065024203134176640691016045828402403574853233249977780851564580144375518209972284709705999912907206701607577909523192301463624537927229437724004117165497339010438901719443933000539273831612480752533225425928534911628202541488187418298222382111039101540469561585296825339484754845370575429239564412218619122111643994001299901057849843481774247387510604199872940836617404495171628988935477941490927753558155022480482370590547909025779469417989324312595027327917208989496122927835827978349373575792631310909574211406717077348052767292572651738553851660109904595492701808592405554999992893687255584224970966137286550364566371531393987521885476627947060436833720126054331083605798992441192978089020492999762867515463696926561306271123219829186190432961463805313873101540965365539115449738363634473143664847844800087961028025764818370611019124102051565466018813317356022550183042488534539024281331238423581955930926595021342080954931208191087913178872997156272352762078704701421319416629301031258870927308795642675029334082117915342085639942184146295493058782059712386665345203005886370350987068531731089434917215569291965595840792126736681169419653792174036740113663869976383690584422228440774296684457661749964813783191979106263372028655905308946962967847366320034136938719427493691450485775421878847836766293703221903553296478042899622892437695463508682796736654674256811347129375999409398056664665925714390513962796740701468050132741802486754874682939742786682822515573547728075014012905902161778144857036318995705843519324800356108081643905390609090659710273658453019123487113148823614747066655300558584547049887669484553042519921856804888580846638595852732572293163617737668915458826844384180731466040672274611739690128464279597126944725711510136710168448833511624750748702117831359918158848393588485556177118476945464337370870586190232244850549818229642929928755651681021150611340017111078381969118789107746568668510638544909979743535234484673161721720586034718484068198107486239161792088711705560581531348380105370284255163415436579074891664295362131193938581468194337867986457831165420994602610737173370904065743701222181797352186906802550466466736782764149954209020933757820369765737226609700617384361936674559924447924269469825218200106846529149862322860228707529772756849938336232919446497494258611687734955640753426843495303078874491830893667199592145385253819629695300204403438716818798472189048748920298074564702622032756714701869826110457970389849328489305446958678860927163706260080822138224658295384407779388806680258382106902477186402196470180516370041989859947629772066602914293014340302708927480815845873857458022465563068941192834631810370978207087593537032441585819016083054730248939338764996678662140317923757248107686950795594862538546748170902578622637653535450198516089371604145769137842225894416287175110426580815588218512720374656575545407494794097259180667257084201003576188982501431689458528666837914769940403084023846972144927340087349191625101383986718028879087947033063517082669148633871997892341005563312801397169774392968445009742551761375786593210196704358020030313928436434394157602083464705311369983733410500238414169010737161269103696646205830993102604589498212683080382423284203382291100227486261788590855108250927513065109231973986555507639795249492149785527932240841099559804787753299646517305415280241680298193687274861908366482548778796673612399688990148061328048178359597384782184147318730190566427711578138619989691601369944535478960519056749310019277604619181429604400678179380605215815117695190559371829907032180593160531630764111644641563440491523835041255991404131927964484940320090342186181183697496257877484148610027975508878118232473407037248639398486515155210961230154897554440704074938803423098203918626434918717471550977538790238121554891190549843123375666053368967233653079422821804460178334427381633739166127342667193173073334334309432993871445601196365617096615412703961743430438169127365712013125854185605636832878923095520943472330820470306914489005335963015728954412664436088003916441908989268663876824407093517267170049600397146921271495292156853138391327401925266439809108371325656393977339606233663431791687805437451602985636945302143120428597764104461828103563782674923146885030137767650578002404004782831274016227387930131699714579130927363729478291660754653539000481141798072215214994792637073486757960557494625090852913126831753258616519299163426559162481579397190935736381498837388099706637513819066909947680758809181030018424063599773082767535180661346771742600221784701759341769379872415874539883767516769597800354283532392238333722370183064832910376325696447936286853411243199141405346817424981937721443877919857790163808213449963135632384487292122867162704476153602219097803765435165699388778139506643669436608345345995303452384919547685774004802840405805361082217309540385168582590232096911489928217385024785042013678089694952204857177108303408350144332687794383307017819045875138642004548730412545552147410606075988570496787164275672925998860012439451205606343044722464093889218563305127627879564478940282764992613401099147584901478361330047224101340625135331084667311410394284706236351347324317989261794002932826391051779321711505956958961321286251429929453702686570917187257664223611461164922689234251692899081942378220773890093773698568968123206281095881549074337725399855241055100426681119255574825475598593188962792333239264216436037787440800834329630353778693011178296214808247748371409523627666748902496235803283377357047086958226598851673393475537282695597734456502630843149736662207816724592453508838541900240671268863313544025246793781228306232840790011758350262103584323730813106115558587217229556752094956730023471647833343588529968309588948295449256545801518196439495446235077574939616919310882709622001394533202751985150784904529115433472895374023059392127331605783051084376413191468175505203497305995918772818038357003463615550038697435015400356315343010175004312947052981563119810320271141629055912323290648698287637417460734505430869321136265919639010109669712466341193099461129478748547156001997067430161717350276292044213310230405370807681135174538089996803583358700628395238509579726141706475332893526383322417921801114854122250485351657336058340381496240857078762282152395029467764373755164543290157360013445091846174159976678400696726538454894632920868632213094542096531990754551319709270641096500954327321577459493789147293697741747388225093895425421809560943266057252331371416701218503796880190878618815160082182226908695000374766857641459333720683976807661398604318012371749404252819963494863010255635531521131162673626369063911582501965697188287302930719872811528701336355676989464432780082138378841141537001934916986264332947574037912974201407000230259075615011890416722221293526549912331246456811807753707402013063039357499580635087419364436394661044702631317525184280534603072887322867710877673057716527588221139290608827612324364724027081726530469946525838745091808520242348602121163062878636607898822827637692044040990910251096057852972020144297068040150199585178026829916679417085002737456089625992013317341221926963542616463103679605385407535139861464066803515783891661989684023660718904094846609168784303813768637457599599141472660839638798370040166701708436160338801495336002649995148078868228782661547980749652064873898934852436218948700621274905059132504885574282994504133048439575486370444487852391584519447515119098842230918050219620321514708759038114669730916690477988483478091723713775616961148879116842294679863014841340733979491218828720781814100019424053325778128925971061406241087909572461660269660178955345023917679522422671793142775979488796218959960369183144795946885261318012875799739437728915139547117495166543182092864677620586649697583828060869019058871785749869603717117947938913516104439959876178830880894594825040937501887404843570632571044330331543196916762274716814790887641381570755881797431345403602682321223536679613888208777991705106612256061019476737765522985754687579543725199630238319441066928270363036857763441475884678968658904229228283070380956845873811021901739431719679555829841480420631355307399720844360295533655697513540173482197861365019065403711665513075664588445668860313561649328263238052442953484331709369235906287321785983170144258123433311304490433533109361789101654458539891319879183008484009409381828070727238723177591786155585622940630488894380622593111882772544712010475789877067399189903582665742712599145942455757481629709449614822816987041675479538796036381783543453478872160356675198269789605252071418808184197753032215930645236843363801682956753840164355902090601618463079159037568597268812781143851720843179372630553221058247939118741718403265494106146059384444411810142429305027565910537718300942659585872011696724874897752646689360664224252789157224892549340474300035820729497750841918831174166254092734630532833683432232961601645357052937564244936523563314242247186165523427813153787995544222245214083312611681125560177582778761785960739838673523353579207700244744409299360483803324871515384177458279325524291652274402193261202449177751972554575748483022992557969027552952725297412133686888747460170979450776013035033951174669018914220915219556097205073834222727417359053092332872626554689703997562823256996055480926300722634797913083673789325234777683392054392553681050838720928598339876195572436183381646263873824077670240651225612607695092646761073721974628256615954825818721244379319351243588895421933016180421914104950686283922073417614163580755071810513226149213697450934705944079913021937891101142154784549114197307172994409084695981904603244536979081438152043173933457739632596467759210568329530025035715868365821692754484499706978907599131227181991528411923487591810691873287652816857375486554300891061219824365207566581993628482072287056050011809971176707658289723644720516126657850653738797708696037099686128776035574568267864751649972225775444156368666460000109483100478439988871123242704485623410151285825311350024111022122823974680628144745455557360444054206360873821929440402471953536282722046007861161543468950534019313954454174570702234518328703668352795550253937209925638776624258323414609426928949708608857767199016556046030820901478494158482806706309469626014938185974813688344579179047024996705675466891608366101439960077025328612884478270404137848567785399083545260380765091097190558377301235807542592285174616145852593128794650774079326070988412545982133891793487318499532757653353538141092105338012856714746701697974917394978068936252657387045929996108026597354889177094606974273218886099161091598459303311959044604321379540052653033217575650170497587446706790399498507044205185799500056661421393838874538117747802619343667026414176082724353877803276243045019717283930860597635174947044104981058624751437190931107511595621825925672571937665999027096451576874781838517957736314591294158724829731844572136138029306914286509896640022089380487678336061138759916389994319560976289368809112062906570894521593441115038501155892269722863892603568212654240146334642714825559479430060185670897397386758254118585500446287595695030863641219238634252019783816178904911263045655946970174467408715560832413705005398240252308071761599746972585021438333521303894715516874727499972131870156321190572259332339860832765783697710827223907865570554686418260760731015772911107744334689136666119209436860856570213238350060617174429637760049404681175338124779862741390656659046499221066911626075759607138398091992665553840437139668217434563819729303170067189880811516709226867497917669486632533195906481558806745895427744822110720038368319709310161457754989283513309013901670929632826216678883625555055655256250482746898231189299151727417366732388619700296916625757875541773925647844304871458250059060134641291149852544191353210033224443835955774673119188847524506137455082951886061247874682944843325120073624408277733542643744748838835803260430497971530886538322501870034366088186791667636086549178130837415376151107679802825333030388354368477056193892606004655009782355078688514188897217692733822816436208120363187896236058581773111396208353018181605201077538979384992630003857600218182432069236614888778981214112411806774680010447136397091801341550091576581359385697833690786837666587459875286638841793690033058121908416854514780006879642220879141234032761979266272777531803188357185088496601009964013656518720359204982649082663912027662371322995790054673669386087551936007549481293193751491166727908268475784196764256178974622764961124781729559300863997254509498761632673323614581365376761022618818570703268584476438148420684813202941266634075636811065713198711341754138204511844386981138693552281165500338940314102094219329214096550533173565251627246655033508207971702084778613393449907041323638533684890424000253505432329688829905763270712184542002074116909931930869873818987341496399350135267550360407596668620885326928985158225545245383037162162912493431606639502672896760384492358013451722671885512933449813583660368353763718760373894825542906354352544453523886477174582554410246045881812710468542387461124365852471326458881174112119004301398833528359649689889527863360780505450462229209065474710921569118492000605168831820453837379920188892267801774981018368634942516975510961970469364982455344391528969901653678721560486424518616730939174804958752779444886380994525207541581748376702653205042677635043551503994969290521147847464139157384187104718059338515850697194249471647900034594095402682880657251582573341028285783617097248418672108779310044064742919930139498257057462477238455398398465751751379963551616264431270196379424194609033353808251479591562652591359085362376013628072278825583081422960895204655225707004699840892610223120680362094596735773284984454546000351639294746806187783984433957870062704090157136627831923303184810538701195359426705342007777172624328025932752925409017165924871101459315602793660017324379192727173185988743531217506236119661986268098658914654774299821714083267058343588858348437813373463725690911281982120601965538843215364650809752226227337681622909692711992411277822399012269538688529027834950361710290659751246416925937717007415586588203451015383769157875836946287440553738927784363281195782200825959602809715825142003679081395349503226924035327467620687773118690887652168045293031685329756076520669262418504988842547513620330654692067594940025265433981017531187091865395728161229723147471057061174850880575015152349837193060808023453095543891028137338697063257410012141549881638543758366714582919094092728396072983121297480882702105001847369837587691675217379030410352595412763036690207860363961869831678205833957250017318408584096557733301441248104102241982984182060803399375687213050001469469814042811374647437970823224506940725133742755250845023317113864427680999432889877293392961907959864199750194347184348835110571726349431384672833378881693853715279544138394106591993822627743561020918766531343662520037032536621010165011584117951238276327976427092983627435851659777531438969943230153963481419537270427353926034118144413694123487450944308637409102479219188429544262834953980564280773321284084299637744815811666384597056613095752062333986015267330732234992060441848960809637135267668215572380860033435204727770734279762168463808961091204780632308131903072687147405794340887553550197128241958079236085842561537052959742975727942143167787003314464155130910995361985083543477830789014603663206103094396420350341406406243411822324841150368415620519392382603115681826789560180781394184276496903799442874035656257318980303155325174340465174297742027759749980516313886592204143365614204601327029470823042600466388606528435872018713797931044313920628289539616657362644942343864082387859334395906725868279390425181948914880502214305067519917213869317007172705713885433529208734010655861659894591531619730907488465651101492675637794332728303675688329833951979410416737742799394690409753836208324660661029826113869724232444987446335231300946374580964828876731441366350394485736702729230573626216273303282936638664385130965567017264505871325220793646867826895230760799799075952339224474422412425826058307835554861675374058733961674125465247436747260877660966577181950223484102378758069699961760144361774970465471432447783609128849692620224614770020801843897910246477730832780141071447934853943335764391948683022486798531373129165375578188136598706721306797774636049133151550019601686839628265133727675187792434213011512059869955405656492494095798713524357150838006409791953168281983665777535586504224352874721669089861942749254265550100960500190376555330955077104760727306434732353174027900662019289211409974224771525668265425924578949872506670802090042108199826510146953134408739361942863445057109305251736996813625635230067654434294931577333862988119803414155846934367753375770721987827640519239495568921874681718885019137890581153932532419755138850422102824463951364761585568121993462199232037183736108066635306259636574618449265488103635032816361216259678769281522193444901855276206948152636211305764581954750335273681560233213155103195565597724224252853773819472978345474843841064480007262703533742163232263585848626738731262499835080133204716844969686300533836834287292421570573857068534903188611373002633442507285174731940982740898863030014597007213461391796392442448096298285937740751488433473217077259561399595136239927182272777959414448925618132370744255254270575892284361874754140644544777338049830561426203578622851946594631624741998844875721251975429908927374677614647787763063278365480291160295848304606387796422797233416704331439719693171318563547032369141169655624016767333227497381683831824545567417589413418233720780458884345579348686711097392130238391120846898395765288415195880508018816365975169808041863475289274305390711497179655768613630781096675642830258353892719627103962967225087826187534719723819746332644133202645172544024648231747621611214636654616497257428929549819570743104119129569956190725206567444712110138081380467090756663869981768362106724813084434957883685869015631450915174781177934074734634623062464296398847067421480437794312782212552266550539203624967580875933815042282732392507038244011920609369385234652468497275972872256885328770505118405905769378202649400858477451134306943711243701363022392879154573678162822849944947218206011577160640184732171119132889035599526987349431873987126729064148301639761200986985008118609957994018535902041330392540809613594354839205812705799551418333473580963921051148917750562544128062481225396305810499979338952661654119805179623840590373909857466595635508639465395483308887595910554379415622509583166501470583446457745219038145478739211263948276390888597095316965282050304439557606377924081554364765614170202341552848318136834845972250228879558708624761385739525015517102948947601158333524863390761742983559129709671664294239807888502601194516243637719634578317835931897333999302165683110072434433739203559516806418190786772885437640574182593053187153456334342193938549733018771783348168927428481162649404649907913809812667616907279381252366217237022273858566594459381624797709826331332847092310988664445146657732430198438256852868403072718902306295830085597828664616239834632250674814815651664170112916051528292625530735067984752430298175102446930996604232720089220509419566115637111849653195014070403537280331671692209240227693609610247349498118597967760026513221989344673188621246356829025809299818600242397117776222395707998508708419198301409986708620272501867829302609472460565531420993231369485473268954406651761097310799733156510332709231950265076101915067647599764852749294603741125854698564071768082844218725074645475421143767803714514820126054495724822619330440069650780161446878146395635315188347300293044991943581759059314350045227175857664029875564449157065643201435613256898425345819231083615616511498602575744405420135869897985499060497643584334967266941769070511175625222698110333879543750276550756777339558465807887560928994511173937894559672929659359134377675990136724237105593760147701022049620416739845979352494192615200295905557122229509528536552141689206979939732746863024006887074059040951030491225564013046804806455394350520883312982136176973589653797693942886413156611155084773442680484854850485889597679844897934964851670121470558510978907187875242622710407629004098289673949534368627986368234884483624562621955563605585115868552005356722119965690577162807276513475166298180767903616015299143275405894459957478016046781877404056859589403868512096554060722885602849891276743788077913908347884979003061108586675868785645784570322888286794154524388589992032905763081065674193880637653162788935157792629192021627084881266454393229517919373483306312429110063688325036284361050904142420389161132720688483139157782364949975691615277119663340579848773113437190883547117380096963673784898746452930985839279422440382884829413861986027537233519595410043431803472270318102195415865991107750527172006507435780421539769939672812965805460206977358567165974788011331805656077109830280822950022479825514268517323127206910724105994691854194715577570667735368959755949325342934510409277695794174272535625027839953764521607904714322516812166900419562159228501912011059864491936796039554094498570303325185831693808020685936557556871056012762548117317849592744367963774173105615006936688668129167332306057664697953678501602031366189089945223275293325421637870515241886564671406877377565299502550486009314621713519038006086034212700458806141249428694230415873395044110352765644842560609242201507632654310777106545194897525004244936473646695345954145107572572085271405668197288265261714313701302592290202863808700942849613115155371065420519385128243764105602534821424398788433389843571381525519364454895679253271733461128243777939554685414199212091996086105255699942763813284339329846306890867930093817760082592904670746982174247488616720421368506209588563170073640745787537294811028404893640314270748591507845297462157984729576395303400956440449006908061399790643472738824085597393448451546079235628483023411949030985401344613247109109109449561051576639855521513731300871082263510386047586345237985901620415084377216099236026503559911069932765624632407306892379411328071881691306418684979282351589098738341710359494246057299196861060489863767111363495866932945195761869938564792183795621792470669531631582798096172025969468202881358947145386300677325177072697386432709636108884340864363372740565102649098066520882322664002391384966794569454539596277241912482726615697426321948001019633286986290399339110893993625656375792901139065601070801165813645339625126812917805600051397525455545762323995825995138970716399643376302832613462805212460111201299242539371614070748024503098229259395063356647493958678692216076044691643394293028040321970030162470231813588565440117432328470685911735691342124945236503806285513368921821087379793653114343999626274100013490093872017211846820013399267314046325134624614439471179896042868862632977068011975688830196743124931362009319731307122050986522629294488090143774635175164541020821822601998732038046753275869536227262141475686491268982098708449225381451058560616863482639842066500418864090146467540353266115235321979257833955131258907893133990159173589137130734063885210324164882776832657886667810052552052773357360357395956794393612425214583824060814654111461094912676951918701465174849456210820465784174425031679045489479330124767197686098748387319727621378652266916101507384305087652601152557848559665043319658335129566953131130632711277812664925850664305687726204082204490455264936517146402577376232651836151981248655341034740754611328629365642864907153603107875333901438033522712280910148169188671460378555098124796968373884503401613794153475579589501604471763914202365188132094875536072592782154172972025244544575732981145103822690126775738218373626581502586773224619023645413218816947223367373126579619528073498372802082857096511084006521061000451651093456920830186665783431309874008322947874999928339361266667391223401857550104994965607309620911122191276682071805654735242807776172642313268109905738367375687014554845843695071003059817510239751628800465987996795335637595656671249798628626611123961071015565215884098082659483753604257617072177081685590680697736039647953415781435416003463110359973857778740423092537468437453576497289352452725209475814528242731091178175441957102644262559003706785652795526229112549379823883330532183411954954782353142529753254108118973206050631098148990625142734776697741579117646840616557006346872846761491093878912800756879781471778538290722610841029120141044708502807639161799730847068064658363369453529930413308401955447283771055645494488012764694083008048893873244859890826881535360799111639290044642650575678379640655914316908020567531623169623516331275130524172293987712511541292895690729526839646855772814956038546961676269005472592490805235200768691745080829955777893214543048352173742207509779822469860409064102765734760696405929756928663446186361485786096840028391392361173517770212606175823819863778354121974482448245521713125033029286126533838292156780603792471516937792260451122291724060681694781780316408229224917295736010053642465897839523830853639589163676426132693564947069275745070771420274878764856909378788382711812036834828630654499052423202485831700554198852658593110955017348668487965581573247606912502092216131921925278314588274918698906704093005602333786251230706807302827249156265011914491801070866205530612309087550938712370307138145213626040958551924107248752653408376314991672911724615195621951096260997308633059023621658561533847735626817279399778008743247078188702015913166591325965402112869699766170781849378267227375245153198772211664399244029562842649126579598591269699353052447943940612823348656154219522386752817396383338576445831923127086786794393677425802243898534474049510327060872250117786327839208755602285080658184292708818479469043141173954615274868857093972096084562443076197481620237309228694776128987069224911793126700741574991002563356224240878210421826293042844142441129790764753482942762476904892620857187611460389147225746135090559145389161126670050167907281207788579511861457218333089998491508024211785212770323554206097033690632817952205303749895600893278208658173033379257321252750839774983879425012386520620079662689997077976821503040112137168809494876721398041394202042481518722515734607873958686914476821155995035206105853960945545958696291634779529000164118938558135240890276790482927874285758657681941578829870733956386149271843698010722743005345980536362426519088559172894698521051055474991668484864455211936396363595404560777517262663062476855215774478312612320625593812501284791718190235247765367421720763897898576115376417758365223272915898197995364236899685113206389954142920710594605417577768015524222783033067550552880700596138382874076354694621474729295357650125161129320537845718736095636814002149956795179419799399505472683922739985765540073537012937984761479671220512441417801954947021370123116047496814375157981731191528343131281857753131343358082674284394105686304452486484931527916707891350536831399547876444232835619377250060632496503323942227367813803496555136593335163070065335519538704651200000755425817124688996830898698034628202760054473446594098398922733411152562273249963843386785129740671254301116087065819741305970347116708128794088818859665136750485238106090467851498925368755715315703838584326037963583055694127543621155041925990839630540324810022719497140845891275854195410217990813971808407780273279527199892446351314516570341189693221067554670025085499157877914313237977749474476880351475216645397126405933398575008038631867371641999548876229304635164615662833996293035740525130601654927913167051198140361404404957019006530113252792037152011407590787008642147947268602773909199667354472913337560389218600685709053686690754763773420756127425399583074130242299479514812294817892442865803505531453974016327773864376674323828488233313127324109325152670800344825678970942781214804965456313136341309184635740457347237316213476475735533638050198705030766557471159996074718883787279491291669340989162023091430020433876525233021999132391371274485741568292504358104467261210496742420522411641637263086169629398175371851196143749566180953577396657536612665293804110875900047580315084738886794029121999480095588359516170769047152004869818957721291087756052715559728064734880062084201603352122329973556584686983019816116172027807826085291034758140248451195239657792492048488760775167363830097289363986093066511726605460964815974931807125680194622744944477322945817674628158238954975234470571918673999972804773491689830784443217933199188619936986935249263659383577854291791091383230167293115447869030683233858404227860854808069341021721036327421202671191710968369977565416091134290903588612895051551356087578916530778021219222278479890471712555823187945123396784766062804272146077081126025904732855417310772933438076892146962281398556371263462509847012343473623119072780998783701810662737830876839355317052026022746312006442013221343061507482338625259435478450432390985677233555989751804415713966884293454048633230239863308764905149951455316482112471191643268869402049309795856245048832011570692194072089821753550709412670457696593867556221009785676117417686179961284592820498352257267947578350647697060863537972133207994827649175790737370981126680526644345505819118665733955683134328471148176628685095978625714821727178344059422257037265529398630679429234920809415142424588084822131022455070335087527869293367969083664140473605871022850573273080070004345330249447975630616527278297385246630194390543042153215541007032722266139022237238497022245478710183339615932216241318194801597116791283186884922559689177549944102063545360372969938899179614174064760475963533321298366470009668309476300955382101356094171440977989698456681467052258329312986766636848881721222804384953959490059008203132885453301623272616103884442162848880675931939261174100393108228741815977489307390842521104470972222339196237967356752907720199122586780574621020402174968963354898895875927148991166823723814924005847815964317851735888348570947656171608555257572308124449753764554485723295012574796857411894697572133610293941096733188576848242223251469991194143712339745474034662105642521025470224037937981928534625292904591673220557622767468891655148558272771384663323383454536141648206790766925552396630221102737340667801390077165864775900294120112491428845476676815552504507748027821950281990029655691021669886393770165200717586134660481491061098416935590038741528735884160313625203914638885665558579859648152185605649648566393820101350074310156578473085599153187064334055317192217430676269118780507077779236174252724806367691953542718462455332053855119920104791113072014951431600068895566134753648301056337105947219516389535622970522552898232277856217349955880778709756709610953771459193266597557916722546652968216790551912493560960512939635636959701213899544170247660197155462858239259738989498934733200056815766263969461440696926480607606404051173908274065139188221088095242686682312891841037308665141008102149757518850857919688169587677455528903606079398207683739757243925667799642842153341053624961554223970572814160113030232506112313773270192262074383752863867848088102814863602621685095409196046486438316781953147264934371520200640045040667637836707502563316424730297164673819934853305470558406258364097126712719145826884767666359399916596769835522115966275887392251655777703753866883938497484845261823475471420380162010791150821333816732522087073792211184225786784199421866457398265677413918842391382194573479741558462881251781361976573114599849701451436703396226712464805696907085578202543484962823744743761913227947077371961872004350742783374313375517964508797314311410831475703870769093727226433183193770642009542289285748396270839838248338280806326895304395636471443152188356903914574656598187122773177231347563939202694066784020587110885645668156799134561336488137846779994452788718499627775165816671720240839393481434017284227651202096131190386141660660963400323163462037094558424458963218684661609008637761840776347009398542273141649985464492648223300249917180274716772191048948790024108268311823048176781937116117684895233676378086079448203918110275071845749037636571889788119905903368890740278156533883672929880777255902840092165863399777341753198951712455036385968443734912213250749429093911971963790550938244269113515985912925200327529828492232486172311892787425048320643147903804194140172606181254852113726700552512896575927823880592783249216263360002600324307349837229616953933098914998041968757871371330124694241882250388250072344849038020661128852216809857172300226362969321578916691300252874567532642262542648767613097273640362029956174146940655400699242602341937481572700276256273456643053273515952036929564820019481251648704025408250615452125735226245454760422552703019270410802477212368441647442472517127545496700936326600728464585282664635770897998315293483567792255501102344544634738420933346168923089006315365501285664272483436390966709920941056416736257420705457826329214377177631492247676282406499284975971158262345599155649426636376000383607857910369772978723960121102216432153263187547052244532229410984581262223811798026004353006214803056066905138104159635011528057057276209583736903850144114137789077616056840830952614583831620312461067982832195416355259498050728586983482141533955709430754997722462299754560700258219033941585639999061390975565975076699980113609445160397037665399144817607251512031662241745451438783769392567322133454765312979796952624190723358624005949822740870966173586675209686029539613030065384995036387427494176946336121930034121467757281339901355622215407711235813507270755899587866895634333729458637894030299927472026022496848497504727389175638681267412514029619775924000819767033786460271460696348960140083619335293659556651624640845403189373320260036780528387297199494247065010155167066041995209745888022195180601223293246777975145294709126181469216874000077398657604758036501347883388602607937404701886361154624538656357109351649050847224662816352532774479652097984940828896187286647474674783066971485060590921805550045509048657833237817123382934740324584444995344380187282517610846950469794004884847753244477537035587624251013215987449957907249542821573406374117537748124360965689957906966781659680911463701963725698448818428748781218467125488918370190578855680350895892804680375632058340053620851321351920081322256220392414950376280004769846450753272814871053449245349797708309744942658774965472598609509935986711085778943437690755037784297969008465165680081132331254799422151344672792799359369482850770131895404946266907863738039402410039863970443408686136507593218460870309171675819170171090468422381249677093272017017504801097512157360781904081091021225212258693364697602755896256256548509263461200119582225284757032546145056329370685287436759663355351549594463128879482917247244064248888022603267377603780491510516932232027818988455196465761487427420235386732921574726243130727036678200498730597381071507076850216138763664769543666220304644324524091090558679295356064415753354237498596881457484855879043232889143005717440312851419476905082144708145294822516442057198752944180687855960200507355654520808550597074033394141657000776484172532105759393897065607078546541649313022232486004355872893098916834700078582783044571352327668892790326638342760390982642970909737748768311393498700210640569647909766659004431539862871348462259577560382149950180218168540489659403150469330199137988078136767830075976530436047321262530123910419862691591542907187595122129925794396640050833173120625775339573839978692095500573708469302861577551734669014894240513351776045044735690490463439696429683661223322202766111383888529993736851082805697734419073362785945694317059537165915588024471617612640611393205682991211888187764068092333938366848285535370924403407929966619846420327876273488887576558818709014190647581065878256997748443343039305922335037175307711954192411370241238534584171700266559750649296380672699311565694072746108370685649015686637952938826514778269736864001889004772098632047543451739819118948829317938139064669230689674879853743269840177469913449473789652296311158096304329000363676345721480871317793941974988984152484886018818234758703307473262060850549542303519725776344966924185025738931266919675635794278068011610317528179759344224023802754148231858163994965301163784162887383592505359623022117333078582720814831928354799824791492208034728443426744430495310135198617326742122982231244635816667257064750669936968651701705735062757705085998182345441762051981348489379501619887906801015478373919756017848232819320424521224037409332715833669230038037215032523400441941562093868699805743011252700915198335651258951000065411349928276574809392194754224078244589381281116995068158384017352735380410086200067769671076602237528300519786228492145970674077912944956423261532487332111262512495807079909814133066138061274270851452041469447593623739244009089858786980763410876536008116372805673291851316632752699262514545770511200575740931129730731036904731589867198950179671938424815605996611993459076365992914370823907809686684092075302678717262702289582625340128329972397566002639456857501328433709050973447964540450476803569421272593335574997910135598934908410196269347913932990241459772687847155129689821409160998078540848822625794652086225121003627402518123516263141348431198684932601412075119594255749262224989536062961557784276590133549056852592211453859739695519716680318387467716562440658972823382543203752732995624284763703454925817097143481063138717200118246824957083379968300394970011540834429654350870533349901673820160486794150514011129865502931804913340101881995431264277783074886601455232449050263887081018093832326008566937548193665719625149914715582173139002175713185821481026502617705448221431687110451629327182369719638669446534619660832460746290674329488308990507479839291027940574464133212544574371509925330714713798740790577338863238905291770042265776714513680101337218336170529720641769628881911642426278853432140361561067654988370639361208540545407535124551861818448157268068265376801492968482761391880914525911518998642986852290531226012653641061743467988577258667616900018018633889460700045621803279979057140338695849867003579975577742616669186470881536939147639267965408825448694320689930334656905836646716919382504629806605406803005772310353391244412728567334321789404320797830231043779373581595431872652649909473631496607156322384364233663646266805570027128154262126805847373918749482134455834813064044125018217862120998128467308142187175398563497203126087649339449253672167916885094908956618113668134481561161951764784112985707907445838608162438995514017145779367198709389900242077246669336314172746965681601564058253283294455415533339531488472675982923458009692137755355132840773470784003531530310262516802426345723544041648683078306210388507012809456536717836443771975236045588466642506640489111392394019033872092425225748068902094876341047070219793039273367295516584742406202214870309748803546864948105662912574027096554395428632491174273119899247470515547950653036347183650178565584125712887566305962065257278426195959772431911063654062596049258940297666806428856463024937931846068525092082848083442272655496802006933181427865654098778663310289595199539247019856663265542683229275517094983688529687862217314314936604512019842254672410235818596919187543948781212288568843163810333131362438988467411878419478439830529575702479319766405089743534766681931232739236817882376431237205744632426981412354901824595475572845386372817695556042027747987081288449143669245898953605584055045303111378610707412221957946637507018205685491937676909702451198978015701636599131119937452123722587016680139509027330761610641015300038239829369568514693757030579372699998737802990830230155137604958542972057358625066585530872869086920931390243271353772392111338837864177228385074544655859001621218659028021355305784383838663024704942857151061914510261484642918017850665431004372266833060268977152307641579185859161378653362459192352875419584386549807218249678304530943541993336040071713674090789537043944927968531904542456452851774939599534835181507502480706921793837379496449850200548997812752387737270437221502545873905624922396039524835474930780741902239613703629931582055859533547491045765769791418655103691409514445091014632909244005298359982586264460912005282355467047051777190143624133047655809209282555189883924034998575705446143705500488474378681175338335336300312980410272102368830884605992683899193934759452313236234669943038570028759482303192783632112658987435930166605195190477001656360691773514435884401481438810525757075411564670461882301991823192513531432097034475102746055420805581108304754328410335512777264406017896438377071939204651314561649163713856664764503879633461740344873174939210966581281656500941038096782688702488277366630060453969710202241680673728570778380470386442353146508671157308534542837659190189745158930390164738291631928247784977248330545633371382095319299138322260484924446608089835605811926792376239928263901662747472741322246103133748322996499846759269101048282182433468844076453951497839066281662596275609286468408630389222136887904031067005236615278433256955664252431935714649301995398628494940303652279315295385972579065271534682905715775962553282042307773179924231460200572846887012553976763133943074390220248543826461088305351913466414439176416321204623143240860881792286788902560999380737324625130953179765909505323072800289534324563274103694827461466955207245510262151546729853628519610648046870741746011654361118828391250126845943601843912686574474558864333157474008493911756270712126600481900932135265492204476264022681372671294491968699030618131768538154793280290366244494166467986852258831968698007180800685305581210250100927836513232466398274723478575124273195780287333010073144576948183599424678469480905701834234526152950894603867797988111736345172084414178006030314307314390074097985881718942784441454771365451395675553166508318306355951475009344352760005738710674950598030841809352660298199535913466191976285966737343854536493839208190980965441745970070704509932519143319095702370482943078464544945067856961217023275096735848900089098574636635892781118969102734259953442788922326324771363151770338536772120425470767959479421155769516855104356769502333935025079018780570832865794421221667125147527298196599919070052882085764503959259946367030121822628576474832129015114049239005778531675390795789532815090278023375428284678621902487388477301288134461754658259386201607823233983904506455616184626619581852921821487730609468166500809171591556366763688620355535872053479331114960326584669689859319408534414693465314740499381900954514309515220628058994430107950971111820224790692174263162798023500545669546314478367277963009305284429883637050405359014354150525973472881633780915289380866935816367911025398123811922883238783620281305304514184231924744067787049025694118335169494179896887710392037069607668627288126190770489533355718901851087096367964020736989734141773659849034954792024906765159764324798528485363630755198333915929653218451016208546100786846779946289772574604648729219764092012007134965962209121305296170274098381996861452958734126885018017703509045012759104348577631418259579410304204486614485975338531963447247668620445222934005007766481675459267509548989966887642376943741925992617917132581297541294108319714329363317388762732985946866154135061341100805278307471075510337456267246701082403296894327948963608708562985120261736176098241483124065954117083130712459881014748386550292252656052579157759208381579220939026977374842743523765704687562190877027845234607819191790356309340661598365635929034825816817195376695098176026586845447732160549795559595924719804962021369592031510505315900987528634293013116291671362205751986177780628147675782571349895607397040482770591170150032522674280202830017699527598211280855555597116776728466379104323800259450507141350904635318243070100660540983660313774029201740865813764334356752975700963200544202891172835641911042315553012790393721928406935127228432582165245153464761974155087656527497965498558813394018385237271754712720995585409109297199843449011595089923845488147914936730997871339071780458883813929159735780295220158502748065513284651379685349999254833496296433003269790274432682478380803188321751809751825023126190557565703041859418783310136698240390058756817975708723838525449721053638387058481120849921123272723517756697417458137062628191705593103432073957126872567592819656294766797860942447273468429409611318022644511909039642263093179541645985247007723546274097322686039520332892772817946938056125283931597892067332263455136539405500478012001644279642240688995762422165155310336584104751500603858057169478201241146203682113672533280482354744961615892263780200910176595099231387059144631097556894010838078973605419588681140636232303035272663558921382412012803943731940251750092369833413931701632971165480006417058127027013680312553229061566675964312344873923440866499869406116698583710181978030785234738949282728426750871471868083394766419195528800911056083924540831124196114794096372336296076115844253797672732812829039632016864331292153557854870475583580536082222324297958809784471964196556369045588563596246574483547186745575857404580184693783593428289068233139827235922985909444671152463418780840136026734660435007685816780531603563448314782443876293358369961156080096957638021502493993985604846743682744158682292282397412933416186573978862109017950263821978355927137829350801411564404094758194313168458379079310189709297926632015144853998803878310058558518777071976526510927553117413602823763689207927839633108566476110870264075817553863153983926105144218659392520209508441467504376210010165134645429186379435742187737837110013653225346047563321908309592696455104241062962197268240895959459045751786858037061266543614773996390966456778752720831710688294521428516276115800225024086873386694354715003317026258833389769890483976672170731350350180040191080811578293514698853904700687050118466579985688033620594593442016279197920625332606090909782155687001541234841658405230717294113382596030750599541747592159727506001376858072275038473053418226661236535353479779193406063771163491390242092365647068992794499480747229089518339539713316095190085136608500709854210340831810502199736497504222937355173227957679926394279043198230541257983223027781696882190149485819161086802144054992483430460589092148032458384348778513658537207464254720591286289495547719219293686688179240689435192975006533041674106791455610999560274042551288877219005666332150458547370662069737116174495631045110317478133760678245423158174479449374660535911281102965492866860949375689607683641540374622547071447507689527234325961830170641430524410404522176720454559927458291607253357663536126366324634004250356415353550504131756848125508611384236609680681983057299156393827209348299243648416224168237309214526563669618556542616606931805057212157297498251310149166730344898813870213389802325614602997714427565647456253015293350893681137401969802890228182003020740905756307693108391946938931121852909135254030570891056312251204530603829800681476139658380200526915246619018758122615461537091668180170384733291085100637543955356998860799227609604030220950490443344009581592261926547929085620259421928086469737675494811067085647088870666059666392691292339405654283228796890986850350585931868951659967797755653382055766960894753596322847514622310907285241335847365062151373284658508789616923374169725290098141759678065886627602459413971850768528408754927023229465243874523830459210140718862515843248292899533776205017383160368307571991794447291708959866645854085172941127310410012182315619543706278602214761029196983822610546292188526946137339050987553494860070835422870422261209971380831321870475313112885037034517994634088607847074355713856969057849019287934094172037733940495526062614028045887518921583203863786695278817617350773388919119984914059007690733899506584998073846474510139785637293368361801806445223451502630721965851528979178945846916702222446318620362695275928326916811802832586000242971994252092765799106517065774625497508834846816716701211069562952466104214532758919165428931444114947309330344569870196382343158228158245277818005824049718932062683356897117480906528472223324389083766360413361551496624568368710560218141879953422852044681886072959604329878938643821820542066756584415097909840365521626530037358016908744745552812737000207752484710394928892956188450905369703767159896746734452533998214353607965246845756784736636357535934575843371013969958917406740489661705206964088536159767856842060051964733027521876666397533988605407233704912354113815641898902189928993184559605252299645809387894712213756885871720332929459564451670380474149516514893493747378518956867538243153004317580383511826931426232080667445964237629348539857139244789295806390113298083409427351486619153948915479399186565949939267273951138518139097929421550517465540006806797988954717539727819238566453161981147150395573051496896173445795426685638825871113091708468500031311073892547942149749603100218604114040781132202922362836880539192441850025980535431011618774688224744126096088094731702200071386004891871085963207053299510454590788249428178724216363442567600564310701872458517631140114708799641710704970510694124222131153320582182662654197296309568301417416083916559675490635126277086204456510183861047035071672129431424723320883477160961708354820037092168256476539248672463891431511794518330192400652082860066585739348101469846376657247993087205657855814035548032761402134325303674508681698635479835035174071779145167347166054369957101946939614192238561678999553283296940291424182907393317315707433414280002049433998884051423082624811504851838408778703915377819993234041518477864669671544504040682638469315485876698594419983354087638071766272330726709644292991899848865720423786171067460050815773550338678512554046819888969852990289474771426218621628586474237248291077721091685496859343567975886205645874917386749429119303008307306395871509336713562446580404193084350773340854948420268963115341925910737810662553043271871613397250898045959045708888196037026306327699136593071275410214785018847601886919361776600044924400921115697817467141964557592557363584976529986593155213780179890678934503757256242480387524934847818996640889937563530077553249971149952714565616976861433629811108956091280195524146471375117582194928031729762107230297808702450902809409938160679588140052742682400859583389007200245529584040514921425609477361111423110394714305947806670493459051313055213505894611846007532328186720710767291420245290769657774576230142329281346089197113745360455580613947959834363402870598861017936469048431866038267141308902304954377987860786283617565854241936201179812284434521878660159537028364055799785514044683320897208075147021235440300032682573331004483129207418437122621567685382624744974126498811077664399284329174014626776257027668976021015840852821411182984735994187816611930892566771257584461817338069069232250978359985173739739623336473357158900018161373741076924280108554412723261702142028000264538944149186687349075758723682520193334390553992978721286195337743677388056417710114116074803505520476452992129431240280216927243197061949290452438208326723857692482141180600996480728331441293099048567621968614818667433521466474299107462468057509327012263836616116092425099132089673796460333769679552250823394064665160602274045556679284951094097346189488947397427596180458093125607059476117349732818785174467715365884009489186080346983410877581314192211757591225765060024656916718391881968499688223125891818818273020550955104531022200350476664648909000699451888295551551824482850671130851488598993908774565181107737232963083501981476714555905366325633405936224317853049699840870277582277559413841316814115822985027755856149256467858524150916918204761556432443952004066509954351944062615425080108722257193977417596894000581508186945205308855734896229459422780598698772224059927850679612009532806773711006783792743746673860360307314758958391994070283286366153024037859907653849189662289745018684244964258690522556717887147368221286862847609777302865783812121082826063293025640633092260525953651057935674540203261053183967182754084822961322648443173317211937324918208647280518258321205197042857455249660742066951240549027228069414089283894617910636918679533321728810891114124752805657789783328360257316273258127361156871337423091353768757742591993750371460358627150158704270164060595464403247377024117607535818731820480560878038336358765426194943342703635489479491154500824013054527955926792171334854772721887726128157498834164590101502283072605522692295251118958948881630566113789471855986930028123141284857454128109086094254495780625340080900716294099961945440043119996976035290212051388144423829584044349485316320195028374327211867353227657534709439624472219933802266031475580133206742191119668954435155795109626050353229048865420047571202843594007945917277247922158950501255331640417027268235392440642329983170557227676634167159436457509187833801789329694557138801813075350626255396147588048795604544556803041182716622735282648154441017399368343210661214773438947331987102607193552901789024032265527305853929192070807918800702011613884761108808432715636519169685492469368910710542066708936498937050724777074484943532707967282365771032478938912784850965933924271830832260469019195762443083239588480585979389867900725147692478632497287596823333333627207869870543454697184572209961534430887611388300094657621187811438906402584414054087530626269500530636346622086925891221018365828399226929331864625636860895092179228983241028590293322732208602572245813107805642949850492986431089823795886486174649425020101898346321775734956518147329456509185601599134507125968931815092095641276548558981281633968883242796750927095705934332645910313327672183210360088149995554838156627960414492618340229294598618081674307298685026737843178235921226821764653037424937395331864349193006577736981523490367119449327769485528837080036974393024653831116450374948513961518866301278829657955620489777604745032789359635860716410370840628741781407614965075330166928587893621351400608433945087255676586783429988976796324489013034257807631047400387575023170904840869944018126355326036409239433338921175564437192148526657031042895775290451540154348724612152980706674872836347501118933278781101081116019233426409976339654518028163427271954282134192668922502872546853790578400605044625565522088443590516617167031091781164602460495366898451805806630790651892804006951085665598542321620044650893530983370541133042417073231229233002515086996380290348933217387535388815490677878872190945060384890758428063141252647674916404939733891007898206535223175682340657561420603657685414988907274097902634608410543836112832547925318550504450618117135341462067123384172918729668040582979560195930832983786748048826029485883900592939682334731028512304709188225337756287898915762692191346628038241133433070574566652162192672718018616116610218205093355962930921102991523982662226078427024718249225272484370692935675393599394217916653418564559946455653311172059504751715775817988846704480316001055073027609227265767576497988127174217698054927227244619125406398930348289869010697451400659872257884773855949719392740990824384584535805112694299727710061419627124603353140284974789508510000115888612672480905590401823034558911233839384185577669553346463027765062296141149191304775379371036089984841565250850048814857705818858802845635857346285426624843945114442609236013212840848050007813710788619821808936824398073702760540913956828090784501464352033385274086875267872651870877024889751100694945571428489155762579279819899331076573229362163389929942366221325386585287806604947634440021289896977164272807623278791122526576040600015033747556154372837349970856128852824408006858888126229906907007079942990041280272220718851767744490057545025099346609118717369881437569915818462283627878086324911731580157469337527224160941837112585941904515463477237078447821353222271466352033623570982657279063031363474208099414040532760132818052509431522472286100173906025756193714251872821181059542840636195823531046244497942156952056339040798746784389305165828366034029917019314227973490996964100239365359976929036783468310585091443948350389107750570513535661422539384266622706477352489193423985368354125097117705169835681258920263059568744546382222573330508487492503103359076961179595132515075224920352355677508975783617886736730951393309659239635657665266481504112860227822069815424028969436272964481239235636056869885415140278633337617817997419313535562588102703500310594029161866136875499652153146990110328166707008065939108882023353667258910211995641310010964704456780195948365358534075073759336223376255537473784224561003512329580979994644062807673750518363552131855804778111932522339322048109643254123500856079245635715935041763965050865812831457545923129480900015541588942455189512518937021295155167771224469082390275167351859058906026620288895264526040175541687301145502063537519191980044473577355926742730006536981886415755932178917471060790778801320151357768689901343129945324274316765748961010414163561404746628769774052539200366206858080736067827475436274526469791313487424866189645516215110285743200887111603896279605272730700540736866885355741575556206117529498102181646574952265449684538777724163654401543893717716650284165826537609247321494607952873225527704675503696926586635717176616985402106616122121617822772830431029871103658548830038988738505772487433133701079926843350894273767097296986778825774740941003942808898042695780615930670926141494461946747003898590953581011341929400936680240524043872527585856261871351816704659160273350704578937611784084310327467084317653034470230456757318306396817978615522953343296351082819074663230758111041381468458287397440029138598003968477807549237231754722540093813064943294584276909229727495218930138200828407172078763739754331378741350232351228490787644254215387847273903319575107191683538075534679445498734878888016973492632195992226422008739909765161663593357739593667687379670551004097935563972775607449972292898609323076248290375124125745773092904395021575344257520718427742336696097412006852441385893147940679296193895062717396747542982253724035824641108999361234412115062886300989721628501618731464501027563905757591393736530093409452114210212924185746710444844891113223187111031025698659282836919268799324051558440046194308936436331699968513084299976289482489919761084480712724641913792941485074404797196510357710521633038796965011684446735874828170659833152551711875095707741987904293837128580322704374411617962866231189571251207093219740521142020078011639397224069403027647420553592686468848990470362331408011339933634304747569362115540308471497011938136332483889170532249444794467454573021403856830504775848667121597493636925148865706191017049317533911852285850758680433764113579278686588023438238354543404162136908339521172755660899945788744130992224806963094376662626392947049884735967064012174442273600600275999959979293317098430837505525071845333094199038502335836202692444117177489319234922159974715440347094364082295710209842623177360369367896920661519106746993626470523383884809470633086958856536231147156698705742646722794509347281234347961556506783297019063784904470921003597133058540269307607351481234409677009525758762174887331923135253822054894127634023121053618006097631573140994707120957348869879541110659318808267880772650007369953615982645209948279449275703583322954054542415558346936948897347454362413356190567308296496449113929195174291684213717065494159517201896774921582504692076516110570310600396214576157582066166165254617005520247030421911756925360303877865683384038195984718704109815683946429656091030920171064298191889393240487471247472089197451456584725370125217143707915278854740046895989273659581629653502672627157617090154567371348852168155953759028537321155670323080368825653104468062733088835191809416078112039026797295671122670212681861437437798084995647506007070302577754498781292842519248611978576498480888272394862985529669596222263545358748492183526192898064704669584237118822855140148097407225039344120717434061094334265031731832565853878684756658849733260662302202454888313750978388744040063746681671681295822176233388104255718756305241549184426943235660605407546034319615666555756464310694391611289510891069137716420635356905659541607682841999086932208435330394884423270820855802051319507858403152017313579066349235586362355595586643933318081032933971213341572771998617435305634316756889509752059706158736809211691386240478571093616080049842518399110805694565935618533930357744279293438144836504389066784829905505082721769721938052319007065301998130712538051802758973551716197164320446243202869306446664724631297495148149674019513097936494005328160800895496714963105795429361805430234523192531668620481989224736147166986190406012658517651943993222303883953287833945729891721994326148351501171401278464428678669161041086847222193188243843478710248620212203601032041900631607374525582535266767279666383675328514160849240728249937552353376190784478578933683277335782756625399556706266459683103857476517335486434659666548116587375956843793294090730337235597415669267744382129558816519420587735185692382978939787195233939835554284808367761909803582073893692646220207287095333056603804902469961065352304123932610812570882302889814393504662016428654383225860619638556770477665554383209756929109310047423146034471564596008578682107189589488077827367652005664780141375600819149944112441740194475928802178614209818038642646719409084750259639446572315791489339286913194002577812521018862326767287293428097242028682987718597389669208639325556395195639852951483073296367442181057577966961141593105547982476191149855331089011018471196885652174379661651586190066845711934318291466441633991101043958128830784134733754346576279062534996643815588363070991831347346117429645588350727931207035881592672206909134074186838991824621722121193079844900536098870928699885956088534280135074169370667170852775392352261927752278712717488391025672141252433931302508896900394503580168296012413260460283052012132025196522541536606907778230515204488111227801867630051980354508041009226218348364304200016374505875070494625122089276773534869757454149714878472349400493460488200339237775642109303193910553649680769431733431743534442625694508055090647952624678922554202018489679447075762255305522072278180474763787517860993042306511567316239309655584418145370502482346272670081801377966736528533004502914390504352992037181562749637930783516485984727793548465550179415776273336610318328443500560967174128799820068087519460704562447682586062369771707117184883654793838945210401503825955427286217177675186373756237128002710712616877177466507574692108501084822218783841872408626982166336159895501162211958698445998439011569782206300262477848947881239354418900119817246530126002700462575934078246386131216420643515431047363526769757872434955404480668472447352041433264988753133559035122973492138661242868175608430290802779538058339005470327092002894091260511740230439217374623807031315282247502081865156989525115422664653792828400791976715475355197955243516945391623331007951008757666895441463398425605599659658373810631956872260805854671007749070617444303332133881943131129292681084784568055630249260106250316275697632489184959149023535844141772683928405625324847642917828096301590016919041801218542311217944486497122188505733216301517204748512344987940094490064363388752298820063481536674896497068806294557893964950492114635112378656793831248559878819414057058270555427127035533429339438476553141846908108996775570930865706621091882232976021683314132982920107256223568370814851539925892666957059878119155025371248713815998582499880004486395219879479190661326752089107421926364599700230029154981418648250320380852457896940929455077065910648318436005071770769635755755741016437902479657240644111169871434174845170870343658336389003234170430171863947553743941323036767778926150336334474341495043184084502057597377609208671332695001038388090816020349732508358052774640936084578076757000480214018078730111695149219367728873524464993827801732406643657370234591476037902487511875449651340912512915619144013255321982310637318484537577134834420222154436087660753822646030983584978489488959854467680288710869926173218275876105412520831413519898347382851522601250171590210054108000734761279032830113272911664450397650792924403667553995593889285811149144818030239345523172722199807095229705608440806266723951054034310469139393847017573729364397290914157427161885352411699242640990599201101470507865550877901530097053715639388245329553161542881738843097551420589420764964966175147910407409485369877019610551570154546722281670249383134474288247743103175135391954716889578114401209460257846987804254656602155138769353637455702155238015481244119928110633327479654844450409081407588480741917030582689693395093899339966205718243969783220393842940548568767469443237718370216990547551563545831484360217032427983903468619832722252039538577902037562293412205606495385749766197902464565792433720976169623671423128208010099259961065584446358263442986525507269591095330817937826225212639183731604888305853240933978692683247000788052079280898185660723644831794489094573862917406024747841570043194783996175757938723533488876608781876641678663429274561235410939051209272928498298393453843527108058661021628429517121140453501975691651079680211786671594325465096288166959636477040313082508755179782315052101139810800558074882784224848831252871191699991026124381410701567169799984898386674329163979003556235726343666137625446937652269186347136011165098836313881429573395319299909724654966205676855970994462730851285281628356952332854726964238126690329803984835015172075050520293098161946435409829197950366785834843174610549193636721906950923837273792602100780050487265842244001525746418228168654890955386595282883910059263352412242892072689098214116597395298936763984271637515462055968613145669604317019003180415254972888196185672987612439585328638266263992334203660679160081102538788396178125412425268140223244692714193029198783633438530907218655095395810389409400489125617331570863992174950978712327108958928868252004914224797064707619591252891044293793771446230697834562295677330654485576336910605228593808576687949087837032699657218523669231681119700163100781488565835120199617905562351172973501612276637535061725034205760506369532656667836400303961342450119564229197155342434041350163600431025970435083585627146393578272947236679855877097346256357707616242436884153051097271836389787901868592550841972096901969029565056101564905996890320337072917963823781428326922532870224118364005878257727220679552427572868414825644655754111555292702836927032762496235473371958701547741687113756243521452696547186640462879354379059804238693332457082957672021561127486483957289644578737263768897118436169200123877958904454076851383153781979040113843532025230757372351835808698141122418182804139435133330845437721512645483909772634374401331438568128230016053527203978577605307205028833965670400896356208208949726684272886442490629202958636452158005698466682615483784356213358714170233584224009333080725828933631169061340960318606365114701234425744555592842461156238910831461566266047908001379172662751753011573189691046491280593794639128104654659189015952658119477558027403673710456581618350374923387619033284468981895352711180549609572280224970779742904880789565146147484585750870072762016731253046915016531147653894603162476468878578555801094399106430834693597436936845108095275260094146557961840665140923550287935696690201126526984029400272513844530889050402009517180285059171594543247409981240962497069067374064477469530278604792961334021309048611174900247722009707732295276147038142453325350271683372259678172097594880066241367418639546584111029060521063403446015884133469352160439259724023371632902477476657332217206973670788434118506410546336501653807325605490812510534478638770400097921242662830363095456457604919167233526899149086716331097573545968088587851899135007743002009756995689327595399893453677099158686087039558485754394990877279429443756231800078904086231438639540080217242415167217467562766397209182084564118205239718219340998759850734703381573649347779136937665597762991926280413798289953959052455700163239470698489704601088833696928525933317734646789317233077730295143280488145713771439327275665059988861574590445932079195353831696335097478258943640327552973717299793037286480067954229637318760621433632735930503380314316166360491276507510792402297954041593865246984275275318302650824910325190609760451276507856365079819728432008831988390390576813996537086042670566040940714529468709902121763659112629514495721473714994329915720592552257023715927339590907762030869670342929502516614942626552862230529187992176116495480944444263042150687566277648345311713340457424299847933916300108367640614745902508305037523747964027503153378620207476074067522021865796659545448133579019212029616307531059846539091763229589556299633755349255206771937610192769064772084673551999846680851908090594688803345979917946768467791349826016362595889126848496801899343389089816217267977662895077081266958276467256030707567166971819714956658255439081145416807890158826550246424514127275599103499260686208765907024016574246413247322181496467493586348226812184892225643184642885459663757647778149993367254009324747429322426068862033821406079433827668825849627010784276067590705637764563453415053574049975137586599593609773236943038829694493332994987527661819657154413989728402608009457175783500304261499986795945484647779773398189985547095087329185644281675908965128428282789999215308483671263438622070852121961195275935910326923833857347096650906054141565124778282621186791604001220839569447990070957509117495577932734440792160206719969976924124596399127962438874547348356130246295974861528521427023075465675670116262376048665014143065482575832455056948579648433359542296282642004909228446103679542457229968371651205314913140469553076444667588630730689064596407291420370452648253030070248588817207216388603437872554022684118626403903858219064250071657501638715988663606823827205919305922847909874751187352694572673102512394131029946900916841570334779691011236528334857704981496367180452293480152517579147303363678836923257035202955757736695066126650732711729152079690983004115628777814090569415254126651310160852880314546792020115694291543776072154646600482149331566642441036702302879394363663823957876775336651989862191634154084136143272661546131957735129719679752788605799133835334024865636331407073796813730128883562560682840451464782861744487051541610885328855245203936795684510259196970976785380204180836393243725360393762264077248979425410598859036743677763158555869219087745927662371046154962731162028440726646242975876902383639756873267674217069321198812506702887340850870871824153719588865363656967514677158887286512867042560131531447759879627502443185899806468520080624528775102975680236104611581390062392650849786537280294121121743665190620973659877283486415723861913276857432985128253144982991107744708132784456908199510846007483893792641568839951272005786148875210243552418894644087260838418657636641370593399023997351888387304547524878197922494391404244386498044331598953507417924421125961696575867189982727661274444349424824004281959383117710382997715324533940336094379598279796004612712317442078525742038236226557410189787743646349937896554937679700491703451595606869706263012247624661669823676723631868088589650318022581405804530551555021564701361180849984018399643206072014274029901775575337352649938867531810773775998775963059298704055200466272765909323975230230796591243458314310033010816250051469911008303234678205161394086408024321813151075781304096936960590711414781427127478483006454665094640365719482125495525294125991566120536767297941167048398406307032920992990888858745925788172541904524000239723383627099607680894350458637153097801421099461986470391009226021293543941114077102855136389506475830569050279460484763963625590927371773123197094635337532987765803728295847311828615167658498679145365995528175496365567055636856900605311234431105710860688328274902685139579612015796885023353664353834946070403310824108450934189157624696209016199561772032520135742119899604264992981935260875363612460579932174239752718237461358014987731015025773482261962244041239416983252916950246194716849974797523077564639043373621502716065079366883925127696790485828656391548229120614427362508535249903613611854056846798698481309177867829695346071019404650857349447118334153956968386126164319858100390457007155754124842908519476531256301994912617985987344637503050222645629288831201262596725809085548750175850527374259014453099236457649520585914645779852717520278777570735713489912195793374483864125646615283384567227038180080895365574332390502692835350042677439506267704360355255056995662903153259256844470393464322743282975701594818402352231514481604150218752176314164376771516981083908486202005161871901197384791438335369936455397194161832498830832578159402377225319010616211925964144214814447095281105697916753066768675480302204732354482799415376393103785887829327801097724169525855374986530955869264202476399640899623212952393841077787098412986502504188276753161022818619833728627298824463407121844193188453465510242455984812266630935049464994202135320914665947342016917711974219700632212007228962043440779972203704955806213769495111435204597932020050679817477786215929856761482113462954215476359863873943703599722564255126823529146044167217934380077908306163656279476247162346432783451512287126992852014588695740074537240678199897047425787209292739659094719600637771664044342856995342426873813921424240777872978202200389838133653712193274986375683702540598359874485165174802630584613471679324694465459886509493094046379918998138509642048883248128776346218136965022459009483364055997050523412076514462425317317931893989206911800198357292907643480012277562370579504995388907108079757226856717771096559902051481197137165156240814103870986107693775335709315336104561125250861806925021625079554891567873346688157645019742811008403483210329133314701100132366766595673039263024862304143675179564266570062813136659792911461750747534000267599789958317399131497361867223775560667813771897245931655121518407264892147185955345217713978785961179050248182832306873729880693235156826803356970801704816759406756869893892258338317027479316866181784449253771025676975178525621506712500440431362437916086432779687997029052043468264235575756140212575783050130657144615806534234765224190511986444944685537641100237654749983283103168253247021878429397562875934538394441754600995238713051189250922846457347991720294744413850271851905565737797716824632475262611897095645490175352646718132381558325906248300255872364315974936415334105190831260612011161618959171682997942306352549027135776690557130773825022243683290562898917017856505717022646488949095971767674156731468643306684037145672177274270627849996653807417631312629475295272609296765498698237296640948159181523318974282077797180834518414701411410536914607124064976039610126494813096745018585891772860936947250241871428501192150120221149850146924613731532094970127610164622936580233967196552253229285704015067205544413239277492713628496998121432654368340923461677886902191455477790919258683405698049392825264127319576193891448076858578398940840702260028188461370663610618381457891816598742834290123086737708052373835825434810063799313203899624476796055283999821041947655838291973883269337294580245867182428882030678746430224899639948539893427738519284473762105369190206880610226431646106833387986936047365885438399353975264714294744290790791265991798084077604803088855938315762212757840583726984728867205199971841089317632471531967984470034708588150905161498590209254840870500336684096323732389156616889445691582848006802124068076085245827915823533360339015971243378228328205604547041921787519112165274544211467375790505089841598492766135656295481182279306499240935245296505456951226856615275330453564022140152195499089999216704220545478641169292975463654455959320893598247964509408415136534525920447164441842125941006408765746335004314513996915068438763466413189509454050011882411699713971198293303716712340372179367775334139984776929569754333228799962158377536025761227615481883574295320848819770707141135525367158952512582648544320702454888716322306619619890982712338995428937498414536140044845661482220661229822102928202501620676610108511795828771904944238089777912582258116056667765277372938192981304239383963460418487851305998159653991585431575465561329300970845537579802852258354585971236901001654145339949380922325245990991345114670681596844799395236298473458944542850288416371505151706786973973428249172204748365184660866418963296376626472018064198284329248990760655462385713263568250005093423106176677930101671119816771681420867654467194608886702814303113274630255490481115978332091911558694723197760772616275833742469734023149902291312209607118412055321480873917220283733066692573103061695387368384372176950851912217268112056520951047088295595099433363093956374324877030993600761529293900436136458134728098840933248809120395832444600475100508035065749630733926069375930865787358020598769734048536203831069168604835073901392736806868382543139845519448040632134883262559434575086952320910137698178001082828959295717883945589808752286224301257366132508947353557188487593088952002973533728200432993651463141724831369926440220810234264994330764355726550527390274648933105619178656691789741731113590029318052827155028732047971855463294717021269291168397333406252019050254722442283080204118189032351770047519857482007312068462336781872268577070004072782524678823312308774123769698227420895068545274225862593323081374964235625004370199957288418999409402433201725838347901937782294875933840292992864462694713598370447505294598859084747579185902103976171607690796212956609208738931686779876823591027813040423716317931524017805566569545131977065633166876674595982857863318485890032556835286311213807862036456423797830460108801879504156493607060886117871327608820644597923133186154678735514892702674618947326294157038541031905376543769418069109396008648272331087927913335074018438082227080468575898737392236355932017426286529443577866772083365245027671763937052854981288773458856818516699924647944179835530180945484768222357612984828083527702604625573171128638192022530916897514040126413174272610729969112694339886999384128196839735993683134547095297914832706092926057842380887593388709427219265807183796149161039822956733756507441983871818895850264232909860623084675575485159211680538344061030650244797505366891155597333508317156439157676867015777200135528481011060249052439609822998420078516718969010899587323653383216546420070154184445770594585577481717009494935529919596978008181161446261382822656791024958449611007013980916592174916081927332914599020802096422822626917279673900415828332489785852728605762765852167449993784044872676523377167794369517425007895290152920097878381031880594237521174609846760173580586757689744468145840421809286905508942028919766805546538900099989872844461088418344391683965904573862679704871509808610617052396123248371464478675785897293106206269916298720145623606303980722404056716263448138817645512648711047363767902149445907457644231735310962662515227330310402242885982377856408961799767807292949225701148158507107952625418411376770330930348248053974583539392409104875709902885458741053616310826986310471977670645704408072716815640187009369082672531420137849191235824892978342875884044945078736913905442704866559512619320392085481204374904509450145820147977946108650197688835316810477225364650743527500096349084949457511070782114061478180910641933553575454941645958879688108191914301268581048026076576291924450329862948476383946164902952848476599691200747636316011709316239949123659884993967197086118516346176638794712510874912623749173355314579347947783207469676876507419463877607641487589076169099228967613878179191067407743786534816425894781099268797407335336994113667198716275581057948748745982515263734147657609929415127558172872965188431365734122449919623206183880139971401447271307212140213939778988257437578793432571588913665577592694315760443717876259536754565540003396296724270799175046808323669160587156361322413552597365547533881165658293752396139527866638513319302712154980402642986481816531101493183402802473970205123098822648101168033395006918694700666616687162293288738201131669380391699746495662277967790235370254469449747297528629493680695728302080980880583005031565461013033692384809013365002304551724204062067690254660619883668879271619913503845975259884363765992286850289052532470748497970085146246917632393001539990437885229010369708000553486486618309526200378831976370073954643428163986337156794996259381427593341301108753744206518324558545255966899279171176034439067752861033605208826861184086696969666952579012693692917104958834459374999210806377774176884286706502069524235542078984328630983337625632222329813316099339024273824200876087758819361013951160864667431565211466643248912920291943001497654303749326345111212915012428649390068184544022384093294882964249289879077812604368184620090172359925594342315323175757349262744354090401030197262382078978703152341362382929844792723305855365391535063893213112119780608931938620266578026558579882809808718799867908745817626838951196948293092409880470028179025672183260970740843936531661197331398807719272181505613704934870754534899883028181579419004208915588611635460737024213899727131060733998646305039638240412118419312316135388962644857917623085457249152774412164452096372279554198350193306848281525288694524957330121828725482886639725936880904077594986185105665098018861212964190120934993116751121787705627687895678779593692795395319022215558135598912870192767218003378551770911544834245646499852598692232184257002104175938892668193525787557632443275670874909181029196468837672492043135055132622162303528159861272669947347393431342310089741238191736715303724933314471380556204956007076262779770505214837352256410101095509573483420943525650587770366426880619903643773378731274551412742084518370015791258912600850578084672318503334071919484636189318475276770040836737404700466785332793601983659164959403309017184969235188467414889462279361517687444789075366861318717352163589840178275598441167703971329530774664035661999118769149221438040009613602993806280875591195988840459077481834470707219891508269582599672975608147829568851794288217567586512979884113337113570943704446617080841885963989461632658163277803747546234389430717000984105554815278924483599584451836967129102477097310489070412782927115203332159601652661008457022367476239265139605299294260833381974746396534316196945777283975454042641281740179666523948146428511726897371987485552687728533795242366368538500450050261546180471023012519381377301613500273177014788815511807141566402441508298484457962928752723552673244752797060569021094128045283566672931214025749268618649246703331712784040204815080966567298381906252121717350219791447491151242576153675344387575888649005658011850326917530926593636904117235492555007259772258240612908678690544629609319447121639521982238991529910778386333342863920840673276250835430647452020848652130700941819074189459837049830669418707553832609552932844925114372738217952456901749134912114296362278504256824398934766710609056176466578576541967514934991956338947746034159928432042241731026529329970599742016826960675307733765955987819185326761367858735868912664133936920971484723711244677621405999396112589109910775376139180164254068591368436842017962661444548140834372256083571132006090536703704221671838062015992310293267669071946195335426981033321340061229831300106728168532945973800182297803352389425560742198735121146020176017750333942595395855975816196313601147613345264351478853005909111959589983983145099213521295327270552754245260664008985951751535587448151971623459247697182675992296394880155853859667033602816714663536824180335686917799532462205476619251997870322396807183824984519201389333542313298291177124943836993246135632488685561741574022897518189150869646962489644107226187157659743984695610942875987488878649700561672413711625894436227990073028579299031335483869248088595011313629362228066508245395852668146353529931944728788949267288021567754723329976195965209375472163032333526390083335208490151285873646111116316751604594337567593459958825053568218455875957537549055668828178278696640091724746424151325108117722973247495598331557810295832925246041201676783118889330950723368752240985695939367133668513234181366995919075631912412324870115425629222432161006850205708666426147308872509324203579771187491647801956113591362396315473479081141539621139463305581634588615431406612426882496789975524700574383844423467865405314513896379448942033151381664683869460519627521188752909692513687923996906281040710353700472739364358485107200687918293234567907909852510242046077432251262562917738702511891775040721760804150074722684706387681745032429877526351245728248893913417377089838490476440833543789493307043077635435273426622886367377243448978484794598316949022449751751179694730943196616181322915687784326822473036819627389352530487434194757768167876286777020796591711254881081342998049736434268953906892118614536110082097107375216309725494045525846460922582515762300878944853825587652008405486942305430382219104350569109074506623862810831579424401668843801933034463565028810206657185642429001483353376822050402003055025623354228213049008370966147546473439500237493180940881118431994574933088020835638030378099903083202363710848353964938665760164256106958964503260922319826172589966648327389316440281922112423000818564143652668396681937843433502836846526408154144645142296945947079713189857866374361874221374907468337947509627521170323166714853970951453823058923440481391635155679962974359083760044657996584623179048568752933370739115800243182383030834071471432942300188785968703366094938484591259803217310641137592162821714118158218953906010952153908365835734430904992272817652232736052103569482327622112218729467645012217799212954227761156938372155234531255075777817302059503123486795056979865930206916021751572174748837523448958400905597595408698031464428065758556938678463005181577243674020464460228911802246840460833185852364094126796210662020243848921839000811551137446691469295189194906327029167995980147307448137933526058428119213712175219485404633835462682579191053174182122112974887154717702069149455247546277383751961296126054698173373765275897877587650745521162399697718625102520935777242055408875025536952921793571794797606248779549501130414574298138892250471337439490711333387679525353932618569870341204548100922350236843267191115756694994406607053789687013231063439745836581536220823225080838188324033843543106807146795261908920549963059162705814872720973909208017123893023037831886191525629494929676096832710690813206334376691946664675452870287273798732846964224343667886545016928280064405928987143241074127887891940344824419278804993766623889952019549113652124460435362613225472702457989460714113841617901078750462460722812331083462573279874925790727894698927319194831852487973595017101205941932728392248518138217938931889879015837892215965405586474709252311252570441650797496015131175756618381254516162321035580015420911938250444780450005252394530076848175062999483432651516441307696822160556433702277927446601823160539529320768160912336330400865137416855529598200966538092223635176567842204663221196375942152050841056535505113984674841169709344717116233950230724480410473519789188185935822508987898506803363397714787965629658606382587349990996462837978260517654780124935457122267931930799850934410547398408980934640496511588290293923488509793833467826979135839189356872396027074145072783989185271634032392041330957884718065672655232132879598399299985840380680737240839484321057237422015005777436507852992632807638477225472439876171684227094770815675012389227277884554164525617988739849895130809144513264745387221070862189492856826009107946878654545433522199930776090386471782915790882545158156759763873369717337842691671129408713684750239776158179537355935577085499977596988121472312939322376944321567497213346926362231772585011972745350698627997334051850793686188456427386117675386332270333412125186462793332789146955338206109044853367940572795375560203000129047672458189828382132700445159753631951109553387601931996598851013791153470078208892208118829170452217352769882167043024153650633137573813640473414949537774271792850307127239807077570196411615017143568247319899976784502087494249380955892542719356284452024261076061414542211765457330037215295346419354758633234531531130087446178728511295948456937666711691429516888596528483861831262188070118255319681669209702937703702780933536754128974282710698870874080612653221990665682147224656328102952573331000014841512308390821696560307966224786506108286507266974008322852850864657421000354833087191283811144949644446533956895825314737760770058122240864018450017934255682660508909435673496471390753437253852373505911749454164811821196915205011818405425557472803862530941072619186748332949430875240634580518234756560547035905129533347745403804255312421740891040566798998905880337457644449342012641085187756337284596524321238425558769568391195347184314337385235825688727606767447297112362580784022814358399741095180199406700268242902013511620003991599893403975596136880708984640972712951352032712051771291569824576972066631501423255719496071055027997468275918483098993965552835475957350837069966063409401440920560038219170538793765814715127930729597708908763156878117193922346608800432226443077146442242184789735074160618395335405566279522274763465948505356489460910315544742470344049181993330372196035876579802943395338521745975330523821598647458309400798733204695525446889985191934194678163669784560546493287962331179535375426323513272083639099657062097312877343836437929185023632775491953607583844403619619414405974092487940778206037934501810963859936511967547582539596785889611673349303150649874651666674001801488529711270774874187501388029912675187720889541860552424401146258229208241345755361067673978882923106687113386858391496770145007635870513377453987526060996862497530057313230085241812746649076120867035376006802954330997862219120963022443515709839295060331645632781923285812205911128305578192360861239838845309338367356970504827564679997886242594558240554035538233410874789216981176858006627359295282070713865410729983896505080638746772075814504137821910956350615829456175286157339020124626253265068529524576155523088483576729953235647604594490052674651132510678275899622414224759736319950934178102949186116758185998487341484156336037470575140316574796932383750562641386268878564362026399971284766780363903253979155116907589741829008230176040878136635422508981281311350462092871196689369484096377423742315994164922169234329332883124928995936388708688914831119504733535824855123015758946490190537586133044281739587333587976194845843658206536867385217123753938767308662197730859659320544985710274265012651066624729798231985012705278202873523998963170599144917107390307352465636380701828578703663272225754155114593444376112615407396775696541529051020115008689557493823922585574721197780336559004145113638907548683412704609013591023410295004960831683260221262269560020557118521469989592648965398571031556022971030070532038104822571857384857202718019790705681141954972664796016771301000965372778580707111246596004114039479952484671069987369232555761285475674746664399170448956413389187956399907555165463756742211748932337458087791860648979144822776253575180534141777058428900972317312802403353968899232823932293954671221517649369826331460051939553859083156706452208743534372169962693948622751069482445644624623114630392370067394932249730328137498420113407883304792924040867595081448749170241627212015999031505191659415275664228468367446075578860307076664455037803328967265562603455322679603418614771169436827078076119862397043750443059048379841854274372728670491342413254950512961253236201559424644494912437504408626881929199249666632954711714784452211292042661363870800385698984837557151730443190086770378006655763805507644868831741987904749122784886174354582674937617662951693732931717341713351458283616732360539698687898804088197713302313272247746132820511781645334189911306886312830653757253246381031959438040732475018054645121206987074660995726599152209168613166151907428161345587700967143187349029133969667863576188313314780481733153486174396497213590883143097633479135599639081362867670049948101362444381181694535846909220315899628279126864786358541991825724432953506240918437986791988947867264523436748999768806439106438475301227723018339337772655684971962383174730981494783179390270612234313862221485020691364009747596689709274080460538757241898174728851035661735012025783582690355717700601906728614578476074839412394334076653435965320648493376547882394220087768054981766633634213986958966980171276475809126195023489208665799463537821815748022669325644059088280779288533173917796243398122066766249934126017506076384758877473316924888213803209524268808063817425860949557895863710856556344019255208840749641730451626708913960525183575011695887984764490417051772247169190261966868560161503526828479417575704479357411521058475684510153907969843203353852153672879046976553842491626501454557587599794412396797305829050989369544410180490982694982818233849756152023250594170777921672206695801464732770514766885125824214362596860526475911480459633876453488488226835022652080131918737908267350509389259127557829298113911303426251065368540187576865068226665873866219557217989967544929260393766175914817219606795881975542862324718818274727132054995306692070934552894555680144127627934919586647442969131579066387232271677906810081374259543299250101312628037401607088708880255652923064165947622961039802646118482080727972972266170541867358135655083781172381910184976575615787603263203543679848197800675766055938533543788661610582450882160702597138796774872515828665270215674765999089984952537054211721025941463460077878891386473394340401081784768483728399415385367773214142494091022409718447946614965358325074309662279513338494811467846504581418883063712366046876831426129654416468256505408486416669626003978510757007685738086803054931472736058495813761814743387200784885135935268990304495068992821442884155237064975328379043703339081654558083004442663984808972046608771354239438416225275194271863204858095624020076175501783510013600384372128389653234961011327236873205119028336178251247393430654752470043510607657240824009935308962120224032546493065840862972192749807385852814913937186231394001072741260000760094698777048138446308546996848132160845654821638116317705854904798684030545470923724463531217067852752096168392944682918569251784831351496492181974310385245175638560787846303394806147024389050709871083906474515545243444511023811658946174072854358579745283395324955210661764319849400148734769553411267772141701306488247677235384043571438977641289750291853659723108267492437712726318006595205105535238524681734321574697873278394604417778277888550453874918598255127397014778791981597290888746027815533755459104722143095148754787683828922726517164037432024291139820804945075489526681278449458425245806868443361961243451536752247498638775504947092568857621950361348337302805882711513568721987899012797467483126333836428277786488976586566194195973059984021375384806420756100775931079405864568740601873927456113374686339905351304617331380581905259175208101889998517581670970614842644345893186937240328069163524789699614235238910213995954123248142812094542865443029452814937323692234465656393916097909364258576805786892222669944684972339049186459027029912798844686781702538056171967801036795514884672805513075318937969481364507690590310313370491914836473817018301123769011847586868587470267888574209445740318005431877372398397546472427895525842493359570821867106113285665767149507390683944879046759752435770321643119027312849894947953513579590078982894926657902715398913526677049237207346047453609346176545942295316248149811940002572884568245837678228117430919611976109683151822735276169811047173446831533553965713737369105112733092582632504516883972701950193201550236686397220685277116584788352708984390781699989058145476697239771905184368504692085545132551338332595289001483544794019370560983414843395773458965501731753794258829558727053955587138220872794555932720481901936086318878432445581851034426776880601446444696334298394974270749442622708389597983958223336083372975848472659633972145080704796947249260687220663940401771811124486482611959052392725781568504520263248375037813833189437071786393520833061767804139345278835045758691063809575858256326025985437231841332710736374672806528530674784066705558254845036010555374296074993252059084891566350618737778812575873741160280868551046194207788789473507020884694522483996280370787950015834999557840713258411252479387131339021058192000413448739353135343201054242197899602642043313232352670489022973151178939003674245618201908798179389869785459407155117943793177203033981100536022637282990370354115162341194726556311121956413626179919481369796880516596053534868327505799555067698580853429767533035224847494077554433137884098199169778934376301332543829314455627112887957397691455528467866426328764554639614655229559369176003624966427020859548616022730290050327370249509787964865573936553196508528165866171260467457138958771221876206724017077754679494627033233530322844164882424627571117934061268146411388756192681603435539118454154995332936727824842653902097785557129755646500830207862098408344392283319364287911976751574726603485866199847313110404433588432557914578273013270257304727494776243101585119917016698061393551412932601539009781100733973235930470378851246429441005583293810552756579320083630464644105795945526784138378160108387499271747996387096336103572337835666109321726895418558779898577802098775985721498786536500755116109678329145093316203094463100692790646882829998861800961824124408047529825086942288110127035474657096031312847458909530136975286594375861712961955276334018481700383372988102194785786844800488840692393325712735598204404000852412873404490064085977709683137009158459722515348016903226793657693434636160366104617985069406846654211209083542909444729974678900273650695921205501453403701732412386865849871117410364432966904767341610130738853451333579664023471110762575804753394830281089088061688542695030227026066942254492244784159783105332933138944366702066505161069109631060268022676570399551778925571186206363770138167362168546390991101571203328288482306390405584611884403066927243550901551107845407277951247147768571783394177204340194830319123735253184500029694329855755547595927856864188576116491862128198232319629708504164754431235259043475596915256362446764982903930125567306705418183578009277370869268392610346928411000045047897355167388004124225598788459665974386079071881756743052332415485591038010386875386734629751235739439271720680501688321094640141718415570122596377999297615522177173107696946775115457112848326717328828885449805111005225627171242638259122459625480965968897223711923050678901883319940630946371693157560084584700706013632362607411746272806028434708529158266534446282779760185265408763607742608368832287845157905077553450770027278794289141582323628162106916277449515639126993865336988301952448861173164201472520168482811422727298253838599306158161853375793147121325884868753109540725260321510337503222817155529421583919383071200049798926866103464616233742163705278934656301938354907735249085541019373807299509789547668543694265311397137813394611648099524710997480369968946385927380394103624789738463385795154539333840452133834928478038560875658436109180419128247562713829179058217054524310568081832870698341854226173186829060821434045592544906472504445557995636452331193369139068299921443382521641007992913656866559653094362373942082201309155587369182457212878653304067020643410813004797569100005365344407534261575931265182811022706499301497881845629768927109409431812595013471685447955530052682568624737772202751686847064576595688073847704986095919800100409873553634667016748192066034008937748263819756761220453423929964736164341249619662196594556666995598988577544119625712502965230701990798512625818885362894650771774867723986919038736166657620697091120844834212141006544904171949287367903674609471781123276858208141832293352929079086663228667922624688253964407165152741936620989517415890256011698152684354176705502734312477956857210548116231375662345050830712377056084421329166518889140128982689425186076237276211166093226080615628550532566267621278429000293742656365258417176744609030589417769784037601028218779614823298073525955144601659299925982837664702911207056581835326690523045930820768857233241123760655807700907241840371195503285783362429086236474187087862027340075948595481961820099554156155180119252146952811309214967904472139349313217214241853735776926568413035162302586033557582800313433252750286096155321765872416945527276936205394444513683738886551603817745020871793650084290438008369662309671892554048874054849571679476682060278980327595799832332573807715397784962371669970538452184357482347541757034121013774741979281803095088856225956906645424117044598970664331115543326748962259816538113583967895046720704847390847225286067949404912226845160706978181422464697110578057230238189512587641059967566067647060548612470441462520435122618413425012070251321071168694847781668898967506942683067161805333959604640945259418700726527384079665823537536572302042060202003110375568126991947675080417395966488860678274544340956821248018684167769187738628914517477712210938589296508275022802340864399289155888748308370069058771691269081136831959919082881151955790636529904051827757135586870683606191716186171871093326017010312867429181543985623459448423844663242838672079508378119086470662292880990772015998207965800219450702385232238081972303822795969051322194887925745308919036679361304746078758744010199928512389552312418365380621465864645726715801730693525694107167613180612310760711174821614255352254696908091069235871897117224856581998350517627143470260553651237268758416483630937914729219862057777053457172529213711499937314026625036906674132353290631817601812982197392808509144990383187342936117263502040225823051242122181269972349767204332651273790036420414623081257123933564522585823127233284741107504557042244783573057088767207304058729653114417796288792787018623441777460014144705076730169101371228610629126327026438800215263920358518685092821723816417082883854391208170498647104603152903525697994215063873631690363483891559696527207733663123552155619904983854932343419634746559505320339740908925429882935561226415015978846931113608614189383622884427786616050436617607236681480112673089630450093538825069063102273577270933781203249974873319058035208273447887935996405020214956025318620977418189482502626381811783203518336561528320138943317488028925046938153908034501734436632455974614536221100921164891223149989786617449787379038878042903893462495496046305980465731022098614124308874392490046343670570712372346227466490332167357180204167799365707070134655959513785953535186692444886443442436064152510634891303922151895080249500864723331521439767827282723181789112892534837401034524956025805026445793036848168927947386067867930186593793697060411157484608927641582284875051829920796782160434646434720246274825431848820824404420056713337705359295807205226932401376821014780562068171603702493267042826637136879756531528109228088000170742517986616062202534646181980707203461214879175451644352069626120940723375829079418791910803669757570015698630349441266208251774074332146830008243952342582369590225535378767513802935334785234972379305549605554346167010156557030734336925579463856152244833285316865038852860072110663603485431095351788323584293661599341390805357418462908217973071730209461107072545491462198600858746144874344847631589711694142676702434748707106023314713145216071620691079946434659327007929132521930253393446647113451678951227022928918823098825460617580516511852250001858095479516476002336246660423934729217078375237888008989903094126659400892797307810638305696200278824634018805123167974846818566514231612470627786179322319875191830336390542388133798032029393002646071183426680819549461322391136750524242027839197730932479504379304291419035505370958327282013600075960660292386487816982301807552541195175349000639294856525792252212857839266690236322969543839159798900483920892038315268024675056148546524806259039910677804621094321968994745531580658431414765024919994265332667900276840340839311940472055883706779260952728128300463252466079150533056681030842662669586764163425003779355019014156187777029880090201008692936490900734693807028071041150003285734345878979700072389719683355043349235440752085197848539530012092718573816165707823239553056317336765627533962115853186163473269756207381907056285986674945629585065302487094465805100846650792551874760282407467591217967857587512743615583843581874156943116980890076905871107379875348830603743490200040586858975249447507149196943918885862448421897796826652027798087831417463068255328489838986573518470724574456025322035855960966879013145122741994430028928560764801321876528598640787609546676504869856770562526990281680445442587474668667686115301808670580960055746328253013938684542171942176747899677964249770987008831894317912736210415497980630865352725833721354805653746078071281413747162325907884918484312856650177651035490397381735226022031019822220495002869378890691096829326046080960665060368905800652656900867356753554817301559578546817542479081838242498956427183893240764079982720038701389227315623113016214084228595474891243188427965802976629261538186206531749524309846734913189949834098632234309201234546558263820832867088799485774987023427020347648978716713277060927630796843567519092239410156721091671165790722969196768486979961828409568347816123675393981363197539006680328325328004742351263681928478955994603217719138040905602078708306589897900343442541559155309384796421580118946966790940270618610296803009596542037397549495829679479475328833736261945165957511658793454538043321464729596360159961781736522853295788847137477747900354629147367548543282410326531858140858587389816661402104851335938637832205191102989109110095406850682719765246105373161845878837272561040809640491534698850496694430648288998793006150522969044173232820696983691117147426425355706075441159471577663658164843026870337307773841731044770810677695331916962298169215506492017510451691491058071472184886611394952802532253752736006150893228390089809951663953267952750723022075347292491000204948963821307515286074731901032196774886572745746363768539018818912381848511295531152432638495641870724768772975297497324185263476115268639459914965173408142685086144535636638604402155022395634048242851437736247696640242201363400414958186467469626687612172617276754594957269626163684064966695621201514060558965119281139110299400464391651029160048469311520451756795138519844598557717785163752600973059337468278891318686836683537628572375092354689326005265864579907800580179656638977766647299005510071188831122325839831127011066634946066522592224347577221465148059818115165961723763207219393829402219847726739509545801324823757388502747586332773477230608114160946067179459676615389842557049916647290436435178380874148478861228718572285377549911764408253154533008520350563543229079731729260075047983516065246956160103220937078244494341602280242127931045894803849669023904125217189218075584536205174653157337622663341048327722516088494604531424854454978987235122561427729690669822787789932634028819190581354811584957442698255263027963610590687844948832339178254816569647094292887043003947984821952732869333701105832879171320421243405820718196821445287736777014423431785418313921590148612524732394757187578293618965817961325202785367538432745273542739306877175427220090495129545861985350478066242610949108875331305692744366732070400621471643567739088078205363322689179290275076501346586627727279154234563816990873420588607413543501745430021254853245639527005004958051085839370703418892632942267669297118294872054220868673331474557386065632908215686401834430463162948649304698763733252354934825967269029873708310861648256050368390971437728962629429478208378973524442332447928656016506026885666727916614642653985678174843543269302669036675654005133675669086333251067216301339710498794395933395220384259258343103679141187535898141327879778460740419403440684248697198271598924991248548447068201502641780264493642001778794850963054112055744905948450284419559616821163581763103248838203659073553054857143101066415936771643299887554386160041137369953701612027136343437864367773628776298407226364331742756609183731378212349932327079225755249420247610769207799220771756596257946500911422504089947750718657872502164502106641571233064230914876275158174027759454661847731604336537250127486107144632744502931517798140023810064923405681292242166481262062822189945242720725299117356147263365580946933562395306976145383124390601616641542904318487030502407125997995375905976563811950434727921848804322251512056399686189319937801230269848439638832244691037109681023607961575870148402609205461298564032951291337225167208465202255639851738172905157670259115074365119176693199857831223994547643777309286238815049513522313351682536230869691748080390863706835850205205977572049672651690109624105874499597244961368548907153699077739869298919217263943324854078831700338195662013125583290771338208893055996948848898233121526825709125422905625521830422428555051321379858329965792959209077414900394856928629560137298164704570230401069613952214347908578235266677315079519640764469512581997411065596652651925799693435138553261380621606816821608615727177323469253916537689959102768185242436909411960974844053165336880019764635320541657934077276084384995874643057774228745112169036778455968874096851160668245563173012902278242260575518255691767156283224650007725359142571712202661579503863431471360654759400539807189489348684738795706405457333728912443021858087980306856960931071005299181222830497282393519345978668457412373690581974517838338404488501923578457212135640371117982602582712528909658843960383217643217823622797678490886256263519832805456229766460838971367245079327350539855717033790355902690694542386289180075855248640209655439212211568035634517258085452002782669166770411452767872090127662746241081826006162480646819035127838389077872402372174160304452104074249602078567479302859231563424492678209744360825362461251412849027255657441921637330822403956632425407617420335285300374610047796358043930191661231134122438545420110978468473704492408842568109984927092100675927321610646330886236978167037903991327516771375782778297416657635693819141177832811802827006946535862923062291469718746452955180282509772206133312547821280530024125973975954533805375095271456750828091142123685705735943578486898425590316813831759249892638767106291751851085470827738473639635130069882722908543282069509298673667028021461639776798489356728048238238981048084683568251218243384834294683344872113052871461439745391983828300753580526842578291967051215823006914353199100190248334365459925255441945757094093069704166452759511213156677002006241468884889409135693000981465034081850009875442060536642975116959651458947733883740034500938355579956131178984978476420493125129786701100165748240308318685144586109083289186258552307510785903307458605377781039963183268001341123649976367540044979016344158308290447716982850132764941715278462196217921106997018806093602461115185680726548194387911281473927567114153104553994383170844791392927322732269845089761685053299674108735500621618318801595817804025659309214877716699848578047785611728792552309274930510497352703511888554115282443173229417901890668524513617986882558536123622995707635650624891835653895684905126811085311586624056927349759209177497518237958473727026871608349581891604031238956563015734872242378742624085792022759970372630311687879080781439459466885806881876124830750032628806454834790577922982226351921126917633029528151963785050656178714150183301918529569839427918595862911266852640771435596640497315045043994609504572133790979538545605870858176168028267414317716276160274222156494361579059644977242521023181105462564802581056364260450347814655018998931370621758213830234355829919650287955473250004073856171986563933989004636605630107072858200401637696786959150038105292638809028193376627616573749432271049876261840625730062963713923107004483118678768876520766170944510022807137184717706073770831163948230112217483286265873165714366769694446111118790675264796194357226726664166013753360601988318902516590272938133638354121614326924266558742956318267696585347809204093354204827330586459123768554662169068880027308227046622374439770464751704235074361555548633908162542863135391753654445578439485048964758109603581550562107829461951123707001278653139731913524832797516134633718056398903334948901735355429365393101487046802374685814205285390415915591219868098969744698055798612254279755822660576671521303100070321635909775075396701701914290404684393062445157006561479550772045355357300302002387242918575663566052430854198111982324746080864084596337103361782600674390122618018959051476727946648870340017040505540704658454065419597181413661932151984169594135857758956269594262471702716154124750216871445983264439970459841834342672825033047544841081997385965928996671901003136160706437287030184267222546189460180823603977526828313107952352508793472937055478501427111838010680648378781725944428030286999702853811678892471697156734423231225749769007812602294992590390208748839146316261666253963889779190338309693929476644314668906485541705905059496853656989589428578624517087864009435552792575978045813357666441961943029660327385832694101674269489597235580645343583840326009635531214264267708869596410318482999853533613328300183076664521499385285581322641267821402399564480044378251271936243951037999435584579229509310011781731998467801421371880051519888871529335477566100610327443946964119063455927002146371571941706448295331084629924974101066141323503861526387405063071200075991948776292727200446418996785895971142892231367318233565715978352793944178619335341751785644607765192750924881785027048253353092623905287299492515339687452581252176476210829509597233822243683323051617643155696449381635514003059890276920496951936742100389341258763067365513718308316282356413028594562620648651451108316202330704892970792091194251812361176340300395208702630591382874055215242756004388260818635310019667005550343267076658268664288753109767295866825383597084815710201219322203200923003026539596231019081377465732874743723983926655475861776499221152556633132858294264690082873893600401090378150491532436131435558525301002132712123714278923187884305566331541889110202638767203437033154401185562065181886991082840600122372962914967966705731207429675899328324309575857562710494055062184445038702289335356142325092245184086334785345270899268842515425957742380960910866669191628788069449544280775064749576232903328993640203559196614075482704758802848754667876023855631796357323884864209641522253203871453190337996569387976647494890556826779605782282635001715940951453005872415320811849759136395597804894327204134966739535746884813734392094966507876568306765744035476629801319961389837210362325162260017111025669721537980658318337109533940980735820096364246195366755134370698349194815174614278812784736719259165618862612708735446243567901714248793382341966329645808378127946759356224090513549213297428987827866701409073048036225769233663008849303119991479984334469230323292083778444431935389526344229168546659652977897869227500388008125961267959749852618504338472591856665186157912398246434735005324031977275692264707221485327240905935680071354351508675793912541355076852517455455581030051612944843143944816567397596273513446518838019379679781521488858591184812248431722298363105444876548244237932492543411461833978374379219565298343450668182964373177708828045197604312609093609470541748444503652742376671663831370946979304164881394221354406885960056555715658255124915576006042663244094039786867387346288543953259104246138283000558911580848644794777999303353140178872686531026040589350387090768959074471059587613257199355472811955998162234614567891811074886239011111330004479083292875701504429108261359887323721792148697522794792630057197352348703808833343488872729741877723854765629148922098020320133476334896399450205846549971427492313083426421883404812068473441033338127792985527178493250821627605261768336517027496886200944765508669662263390500588101979490934275832436357074119693709395482631199658111572623660425141402059508132517711217759409947893461443174374763459521339379317722846813240238005286575212915857262742798561065641309365909954592039235159876361638863227014022835090553849051763957720274121592041080573074670115267149722636475095776505728150920046277757575840449513872079496685043313657636944792985754040595763442089411937369598109293129555845607464210716898441211758187127410689423689516582436240917086300864788444810569381074490136841913423306368905579083614676902266734477725209028041120727772275142946051216131901761135847115834382070100126747966373561847619845882274955326751839733799801185473986619934048309624155607230373908719478518614832239717847403487738308483106046629503094428067514668962387631275172136142284808443660656538214633320681534353773369992745634767865922862644078378572061057377774221527179611182135220868209744028336648412205855430282510939618560360365558275989222405332847364560643591553846499717140326539087137228919437901436898443316866811028506887888201107538522974129059793051572656859710059715183066753129365154034417265505763654230022843084833116502410356940259287432247675898584151855517082592226728915023149819728678378499798793483690295236111567673985501254888811630126501371507017099452317932007448309240046837038232215596609409983196797117297157454541038507494974343939005620743272588544242771427854899644286097900477372324884406275339039293142255307791025906190521817268689933797867591480128835937921105057674551614945652730095909984783767497082211126568917170015250501149893223848829867972591999639230503914470790745267902633191600085367906025257939669439716041096336919410510506436458158667607746422741347738797037275512508128221285852909721607958062871861902823221001555377070574177047599230813082928337932634357466235107611180270343401575360306476191420937668425166069591621427671742170667334713669003876192598913904409799363840797846761876287176154154390825203730613385459853969566814405817455772078301991789257504907768163553568064413216958319773215185798068237150778296244155600593727780631152993508977623851814368549840702435169716146130899903073235979134271765299502238934914611174040050215381496652559035018694280310910927104721329822666003470497658892657745523268852195947489758662675044709129152152367740798661575150468400944658428840494322171259071514265427206884420285307748345226364684763664782604998709991335489593150519907503897589306649510701028817152572458714466261536781860962340869238251681649686793070006012032664208474237883871883992434976843350632819573212485966556136960898194551113850073040839222156510397686883413278304424677431834803333373171821844196494707312417530424939296693541310530091702611003347058621430458655810070603954446137212049934731104129771957691230950081659154715071887467901383699636823467360390118415697079064275869270170512451939761867950214360923000449190097136850087286759109666341121700205100631890623889197007164246904674242123899177465109626863345200080755290616027545972782672647229219967093969070285338398212470425921787942863673176517548141830946367078198109563123129335572580476109476442398731260663053707868601108996892432500305820000853030882690135691489436572821277614164532823101585064212446773860612956099180576674212595884988558686610834475849304425352540703347241247102957437655539882857251343765665836872259523247400058993747673365587366438528901074795407319617428610257281999882461466066533311286478101471464629766571653489167618213036056799281448557316018422422687944711744578629408681824977708752454307579018019462011435135781659953116008418864194505752875590548455292031288934065824871428158388796720821338082501456651777930460933634714549549896039615159914797532652238057157424064795223157129606259580844784357660643342946853584433689078944270783585655844428260264802555611806230266876357372880184904666361944952094132706163477658335141319564745819082322174075318184108556252036367916865408649335985966154968172605800982543584447726305698272207406960595857892311257767811794330861666276713806828974575682662866088421396388789135261300202178110490264110874569604699334995597317626414031766958417741706758961351116379244748349960871144449422171710501215357283214519700622380191051454096195963597187914588763184514180810102013894840105230655689332757557350245503707920217675162879690584577879495259769060662147463029984504745207834662880224076367138619828296448362954888506796332978736820583745373768889867638969842237054562733482878884021236267138185975505550791312515323180733080815857667621974083294286503487353311177228977063083620382252178516425997545750947866881939615953333318384672911614737036817751173420668074481787363561159370012081943650586831058464402659756065312155396977070135048433157323256755992295388358882842233450099901121467634323011879698695823531041692617357318036448142996864986645067008312654727207163433306698163193390865886610863853325686013121319544052968688561373324223265639132466044647977722568170933321017993382974308095144220368898270208698174167726185944621717096670232344720672954121620248237679563521238727224404145287217008852567873087569755232435237053864645517051640076620621173052883167049317976687550775688991143749751774946791044590625721793826232497119954524372874151362372414633389931074116650859075890160231153466399361347803402782652949565743685154594410748816134667209441266992455445730185749918164552678272729304894025121425152406020303346338309251516390365084085928264642389792908279684076743060976227212399861903874804820072753833292012907698615131277686245127295524189967586523432824923398340962544352872626908033875681583822039008842940518527196905529495048650876480233432238124003335505814207280657928988610891600098921488847689320051309797912109105048285414613802266986850066954693940110959599677877728614990142936596561866855437827322796172389025251293249991984904985163275143272882657929047433132038138793168405344964320675039940127496497523619497846934848528024036763825274883079025244563136576095688228741992786369694235278623658090815080154624245179733846737236072782519324670164896888221399309693928645981628506833492690204410043188889175989020150465339357468030469313802679366309813749423646116340727815695562582887572042246354209061396048034730463549360417081921308355223440353662876413242244002459251159253867041904717655994279208315489932116424752309660496290951539805087239891903037219364361034129204159598289876158480188406644198505497159669276473696249496761670894536569973395845768749046794634256301786055427347801947649207348342656361757479120372563866785872640713168445852675805117261589278670286738435371889362151763890990775969568085647281122233416429388430308941158501892253999322265341294466363009755828290160773781525739279297789099637931712079622733407091830754564814273827659411280177790864529513206288924863569762371949187573241799913484652411403100222267030938431504443272554466107815156182257442523125621353526689159342289688317499182139152681454459637772999170224734676032455565390772253565161226078401673137045059474358619095266055581427992820318904738644649553059651168249201943221359934088005534980609988297628777484940382357053562239870350409575746398505276683639556908421352359808969297665462335016260345905491783506602394298514969850703869222193645833164483765839053165103912021342568777920286169942652295392759004833326332925454622066196754810813372776919972843584499808555514783586689967674946345736713961971377821324628160198076832693047877873243903013123148496172208391281101696232697591230227944530915057326283504808454631593949532031663101942610477372472992011588758713795859068464204783311621283644313927293793231822837483710574344819814660453194306700587856900942701172829899457908916714235239378440445725494185720211363862401286640224569430646843479315178753391976702499713765236354981180364758215813828421854354972172908772089101668708651503621314073289763645400073811366404019793577160749054363668351435808606297298521680022525899801250121219484563717505219267218200937711466851630820582810453159659864795112872402767382322983842038765888890046067420938617505295612693398273688878500856719112528907580767369661538319955508312170088859478827399024118349378763282679095077972837289789417819629219550593029190903037302823511395221152971525943766548744595673613406660484432307009509032895740814947568666084013253098224123555846320361207593583602781967383417408544758717058260299268452810038362217424291566905886886491050360166730774170960681528336787660659480678936376332271693012766655092499354776833833062081941764548325220340400846351643555014083874168540894233114193678828820173578951289973372217775942501654767962178587219710605269971442736953934981762950280171376845530389122549948077149061795680193301715033476667640426115690577792311937408441143040088050449934999078112549931351171707508091723545871461856585004104576419987943936736569591634227002916607180651004933186318406352700703707340078260287303698935900569812942704112830916597758225198512036579427282952944084420031345893024144216751633368790435876605765653797206501550411588701346022538865732904926714935657838371041694050677320526128502030160258966539169545655710942867234249690308471159681509425846564314888056768736358533862603835960632167469673093934064767865640754291508554291250163745529849870120438455027142357944843241303075343030504872204660754932953463897057551083622393002353966410749219082693873392186794254292978419795736580356318220265290256467830675958952257767738011216056819610118181192459364944107421376026262825825033943051108947392622473523422644529398045320241182509714700561502148946851327036364484982043445909983993575807272073077944562268258893183060027242718404095925223161181257285001299480982261394521522107046302598826694294328858460968147158778584577677684691471269580070594709360418152744014899419616882843064937859948166694993402327248029620536602984157535150203704761664318669225711573880887832366783201089085102193971192229828314866595436827380514770930615918110248087411141189573579648537024841081507007610052631533220825902507838758821788117417563272150353544580168997875093820093764302612886074745245680539370995276529806052314801174996278562980220581950228703878575468324414081630087811840363815504534027678001819522879295488402294026680409991514508201190923062999480853716627127266949099493057426126825100910393245354867613679713982986865555639973242783731835905968253444470913329250984774875364533074049223269298083933916370816882187275105275363883767487614053820177682574501555937891647364514632799090427481266140827939733876955126018028864726489392028332427813711803930101963709731060235363534470483424606479159316814834701072832731788327644890643966947579565659659059124455372274788113164159223607817311733504549204932991745623773959405128474451680258405008451402279053610262116203429924290621737309751791349050908384635899927010504047100773816442006772438861076617627775226587825925923126558289960931404766115101082322078690335084694993477538050389307851089766596647951041084435600937546123318080166446517254539354435275334605010606329187805138737241675465037486907640452074887166130334315285232125071273508694036675465147670191258526181029721287542408639140574673690585751522779050085156753721256641421391075791915992640965422623783058601208155129574579755112566584252600430494387125408689082161211493349859272155278031694232165884716705055443161861908271511794073460628847347207941167142524178769978120958595578426539475691335151228239765724728782937906523719804703006557478552766033231684890509241349504039428192758182183035972995174124018341975392369427737903956650236295229480650832706550554751835580606154707268816717928086837098951089616858908628690384238531702293269538402424708237233283388708531099596827569706942657548229777408191818423532295550791946851667964965069261926548930524643575658230659495934300824487105696518404298177338339800071799905979109566208918381084722119710667692761883843211922350949497251955846416416880428501801296273783191646674721664074709596577355002160317967002588587300533540238777696538095583978486381044683963924607407629824050694300085945249154465544411867842381182089339350286349944109259668367501979602182918330640438827323909943760530678869739053936012093295888185843256234197512439427740399676878502856073841073209030543077999413574266107930176569572355868791110376100982867010160042157788370248586016314914265228997598596190671073743052372290240867192809017625315376557608354833176586751262848023574641386204439213168023098950412574851396642421070261304931390619360035951414101085703455156991181230381323328710675966674053175377815662687855274218405167350998467110765620193655406561056759363409629625611109085079331697020869447267316992534210948802073731258837254257742390693009679877671722280660111581138199936801559877389054705776175288706018257350142455228721764872950636097949233416671525167998723915083569102141830835228423458819656842500366642637006410674436635599181951295379257651240602030625789483268662752480342892429419117456542194645239612781604198094643951185706409444379152094693862052025991069658005643449712062200812842474147979875167204746646058380707313563827512019027754076940951634403566666237662548045088613950906045930825519399917984943535465616565237176389373041533881775655975638538230965413366111346510075891326956535155891299150625236541903085209599346090338095148770805975070272056431978205709839275650092646780406092833308324976736974653094432833948567365966496651624808994203128423311816166733785957860312648461575238118319178946117134720073279083765331180226114173206212112585863144649639802196324321496841116430379153810963291943828781842869045363917184580723670022444901549035881239574969958888646786691613400297154537771922515580931390823476281533171149897788216236104070320308600000348809088916972109271991103862325396320345740486063724793192430487835563440922683650401234541541893023478111879614322470465093442400408053105530855455650662215372827597563685504784899193816621008436211567491437294008143270426708004274578097738796074007973186695035128757616540293287696763790939107392091816506426474035780547235559292308940296142605517041060845811387127812218567413413497092732056545678729302189656090803067960248920833561307353589797115068774647150675885984753843388318462640565503997238456050260982524242472617181034158215900345124692806607785292373826676526967680723749093009430274833944828958999771044573493313790930020739748074895684696316663296001462154690916476718055993081270714876230319189731136996697165819706668452928717969445491036138130206319493568892613639063095516590528482758127237848520267356083854866946875240771295598328982380587287280115435908917507702003821484492226335311668469346856543434287426276239312923807971456739811462119122081903811571852533365282803698188547939981849885488532391032540857365369156815729460128729103022982065720029012956036164444289322514969174488796325371013912820114016131824005895518024017348509323069773610875694514018548208613690596391588410224978984454643318158678012801466163275727330510315667251829019972159221603381436770772068787374381499146457896672918917651911075023067402698783794823363022079627954431942407444798282256416300426945136355930687278613485357748928741655571723064339827857101731710052547134525335967413282889853623946939339028716589477303223462213112851613284655761165097016869537253743616084582380580952389502293672460053697137825819811484612482380503089016247267317754088263245167720691706137857193338084901249463181167310124657591786805732473204945159857876380016356557077615332229900576126895384490802984222875905154095113110664324491309821157825750974645712284824910307261323621320122965865546622061131083794767475639004339648962258402204984399440854727043022160825699581514423076496673966112721588408211587982953214216653622275033043364027002365323615704947570238982167562792877836033908866156814805666309322588345444964616725992642426361729556961430544004789096233641714569559397308883707573055517081492149636145473305990662994903203752561965054245020231421370247219916810215618866910310370573058728348294643854284493959984901439513454696050396362156912472269675153358412957550764203530540831326150745080357443971382406623593198083323809203992481548689118665591806320227246862871321029628491091224488465042345756462636680943266393406351672897934032873609851826871512338607110706032386420493567053810109873432691866388152614134469854395045618511885097739504954224303646985394404228023508872997735776183458001889094800101770837622588613467494163383056946066079186580790372399801448683200411613190012093653020244084075071261503398940328508137743880640997186116711621256088234812291742445989441234136738995498854195537318610171198659993647984446670749914530684092135651491237171294732038499958574796952294592936566065870182726283579647223712112413203524429606690108224803248937243864940867235678936033388240678894531170474691265218342091857597072316009660223679820575875302503136520428878747588012460938824148604180977545619610711164804324466180806444972344635044548266330288286351582671044983858538419946761238180997671485079951682467188072659462037156227902261340226712777640885590532647939777574822194252506954668503951400180130887682613318313916883331416304405879316456878429892584603182794249884313840884450696583935198691131152642664224091345808482420827422818785049501972823619271528630864488205565654720528649954435487942846157435440635814378906155598797390468670519970955268588714694645024336952801343781366943302303758694098264225033223229479436670001953973553918446406973052641156987914017010688965486768011584859152033232902664458515385314412465180525765573825838538293863135684229221612515184772023032823513488954380251239671822894563653273551647178469625067571129693128344388713526168311201745664451263534332404028741342712090103668330357644395258432814662252920369934176312851374107426270251476876095091939036188898501623312170333623403511544415047912832317403971785385170969501960850960820699582620741899800513056428972240096974017491585569573607459060482062290419144588090902573986423801972847827586772072837130448901788383808765335091985759571560956242240287008165447963053599272611735429865716847979808185983555056917347645297049297786681085278254318068480745053757812320809860075592975306562656469218761419218180483366394447818749309170103605790861560568788607231609487163413445964333562260316803830431166884984703888741238286653350498553392292293680692228725478314353917907318368348869878761680294283617460459616528191769445275541336696035364890709413842295754984142157211877068409510737747494395730605126066323562392705047157907907408074197187718799981001242911308987317520870085993233485866801233174408143797307421823120024985314022725321541802872181496589185638954689070114843086169154210075489381045715960234447843465010967304454705985725798469643450195990997888576466388595654661742114180324117783983773696273927042404336169072755404961001015251530049191286598266996949426074251368973198396025076324672145062797555565941128696038601371519909554113313320533730447757808916843637300939001772824930052311892167498393890519105333846784009465115669289796623417250441458520451224402043243038562290254511536394538140441050612408609708513582279396937546857366890058886149663837275122177154689742744026141752993454998808969595766145659823155608424910412643696250230055280591768902420578367544208428773297900379663085311924559602196600281720266075322000411346612127136516694125279718372201518462755961571775078190481187905436960796765284303120726591303694687157610253282747231291447072772275142593591000910126282212140972913560560304384573971095052801420636171038017925756412557933903070537965862194734105498485227851232950094243581110768080040573247995811732596334487171784431474169886732111467063455855836507944112874613983996921480073887218021507527281556542468822404606011153552397817436208437266597274160463911785055851319782083212433490037183729746206169392578936606372285229847949492662414868773885813050549770493151133505322429314180758502270449063673099857477920665558435222507410505775665612531375401242502093761398758485309958126944176881103535714153853716786877142275288555612527718584428798749724535753084934998954761402963024842126982351043647021358345692535247746159661541404143543449800729672647546173342989279842588346207196042965413448090576897162429817474478715837449627631015531135416218748699064028174538618587724320619488319025419766090885714857977352781278339490831837592155431122982526619301489021925305624882928478186347799244825720016554873816095750781788955863323168140497403669365068470179822610590538553519233506795933483876223146236986720244615128075766080542009612936595711360223910330252177129731765935562794444319951441976650694892537452949941099565089052211367056661039973431530976751418628736505237921268528841109641652940252054501301193081295052562743497211851236339976291852249059425334856640225518533608191081204340141166797197878558545525023332134137886425753305441521559715514012779176470704339832463931813154005268599847634964910508020866391543709625179131151222534898008828760109782356673577063901023649505450045391826834769376192364443791495111841085104026044249860609638990351791327758224556944572460560040880122030306580943075390954481411869145934216958849538490227311545438673927640646876922464989605561409723544494991432710420041003497407198800013421589920034820565822686173460289327299894633247852157998454286065697213952560533257100968966341529399039452517419967671402313989262332857080263224018736750912535148728654021752432011355656081045392538312629627068833610369689436466373981529488941936473174298961010283709992001669627110878325432661721113742114750917535704508689150546540119390680245674210670391174046175665647278318057929503764279548985844122650141034976993953801233993638129166886766161422657750733522636227845429838216789403548161126346438007271593096503472631227364575696307090398412267770461937667482589357169750685543254928131060205389012463361643616465215902605235758923886531516938320939441890165934208995757892148223446019801185666822495144004681228033644207301130300992167894010764167797462308968872505617838216604387134703585213431888583513182137003842580283569823558748149387814671780113116115894650185719069474260257241254977914312558896204374785136981583223887626612358683532049957737855257138861396886667167557394027012540986718743252421083294232269014425064748500646151047154884366618037582499849437452237884544773781020800373530143597190069278846992382907515869773344027995301802923084706079227579269363128271199885191533171589657164496875510499493376451427527077756504083680397209956708457612847974893177717395119796077615718600913117788431908581365645468518267483098575098122981154565684018262914735240321764149855952808496504885985674755704280959749058360478009200896557256571863061003487354878945836489605434358057386085558480269863957893465157564821891825730835880020418034440004284436709843533163496296053214260118167528494615018879096409398917936940112697752617670025396423228483286301462034417623300635703504455086800352601822359526863711687225128365668284938967836570670297237512862077279698813346894604657257466159811234041195130850216329480073277006329162123175186945464503806021875441078752954125142699126626167143071610058221614665263923798426348194515387540538136863799955665258937982465914324955990694613359897041801012285950238049277822265094706377511222412037443422590545053921503437573853988275389133413549795328966165665858341840944714056372091833335936191212303586630012350280215956646100850788755644704282552458498611666900220048242880138302029388414509942795018468552435627768304009096277182173642156172422020356729203622723795498795670849702068114197280539644854030213600300955514911008077075298786327032109106721764829473059406557490580884537006007342014563801773671577067119727640327992702859923185717752825007563374414832348430554738777857834060072482682618886832102703220370521349133458481568456123363022779714588485391054220604645264264865965337355549188917231482532543532599581459712968674769521075716456300515491713598734370252448422001631664916873892677655097311762379233896614913142402590169473743474147675377639314551194905134830101879196977082288856975827331634917696881691245748898384952852168053198446239543219600832480207899651948778131895363774773738432456412353898320368443858938151417199785266799340402372372980671310037428050244187985070626254395580244118804018362456108555487888633269153855091820095281683632998903655109666122729501046784360495410647030154132130184836286047719670894590677321728067691821384012384900694489999140722042903316063793802879611542193224949205231540928664383763115660514724199561772119754892011290946454823549460346638180886399690083441381643728706612768109658266357431445945805677941968733713177414625566548539225705756766931690492300000844051762717063132893233334825840217561837911905659977056434634352003549958618468441744021514164370612947117472466092564007850760419232276143974474958259324957661528460985602407677796307045652141036196586666844694317481864162514199743460412879386499982376813055850515968323110841347635040883990738357901463185939653744215019438225136697785997502396828587968189619867613724867620762732175685433067722355301011211774568374123257944597648290231413573119915073335764914339973124623853783916554224805300737963176996828016704244098778778222708034656002886135720266711294446595037692070500952805092206081765509210587304891017005477840417505736899125592840491795226991914948832086334413085335225120951021537287080684209486283055417565913758277344297984898579105969626226788763084821634157263210536441364843731319894373621768322381625668218502096192349471530832057130966356727133051568317483041643818451072668992271890971589379672797637084009463653544297182621287432218935728896951439104538775090405901000579525593679779305307594412366318620348906840903345795749064441766584214144273000207424111098129064044931935941409956892142226483176863652087674420017013648275895931062853960518989139343448338995151266125696160868856263273842566272330696492334745868522605363995040442488647866086849796368386621333720842015610641169197706383207383640171829067535039366067658795617028541684726485478918137929627386654419088792980749989339575990564882345026375597639100910273168824103919970238061212096758599857911849337162137502503198560672834414593740381077371384954044903954654256214131953560543142100787331680831529935284878720976115200397096831084382364874652125531091620383586111091511473893044171268158884168346420993001324696705072791675040270675076733705508883581464237255359273917437631516178736177728047307512885190044784800140750925717925365555652539244689849075529056824521435301875990413490226145770743068411380502481126736036770032356723466110592422906358825596520772019252487681766942228684056462111402303669928511514759306494972279350236722112774654769614961419385904938293289269163968545434624327158555039117164926939407341580440528419221981739066890900651499584931163178040429902373582464372941614534900039151614963647745023125778311533147850991933983725220936587029204061057847636333240689972835844595987341065980396012277564061926856978883101461608586588463721654746277482980796061912014355220573057426753858745447582038700559351604757060150196188056613253817303730199361917636827568088937649130284868615344796588056367145395890838446440924645904789733157278743798607323577007365504131979462521113980587865722204981760652849054353008676059221171497557651290750150895192849955556242785069200745526299317206866548027516288434379573553742002704011990219027765622267872538647405028026162464761526870937118105589645237611212281562419715360263360828599023146791340678588775421505775076279161504927105433987635206739822732782162261109897873705628728690561870223108689942551713555266437780150201721296176549096327728074305679379356593263365277105539010675582087899064354319383835127577643944989208023518817606641709669551023783441509250168334884995904501966764078436735392225851303849812028035386502875705570899008403870971069868883659397530280605371290093708503993767758377695338962130723782919786764964368911506368282128105849908514023843734842425453030615765291770887558590015695401722664087228679887528201018961681050687660062868103134943383821334376700514038423307338334240677572252656350492121369404947040120039870102727687707985575215849086777410655457833387932007736609633794963976394143569276543327287406252263883384320149137574056712501857979066607255640024098295464589263142788493109934879311418606872073228636219925718277915834961766114074897518656627552740957655356977671894553821853741851248920331369843085724271172962925380277706897534409921035878822373427980572374343776494930270856750979218262117653758738603541575042010627011814136668989391510444879546207853019097578335651186690976580429816800578333685648142679203863634685630878115286272134405184897450532438974743809695072184106566423568030116882753488661280029169478526227959479517510371786310038580386972696472648248559341222310361595930461621342394822387365236432311881809589241954281148946349623081989194748321965998625436562870886135871203234253102728948809653578467084469226758489442664166878309761072072068060447144951867861666194310363560971255272494020221260178744224907503708974824925080709652889451166180406127716255882945939558337337180166720104054255404422942832602232994652856931939744822206523155673533568569557566240640611381990816133569728087108852299478948269376972732028978684576853076231413349062984376068454414519443638217624710523373622760976089386762417196193528075568020049913954377679081792175950411687332175869228743032136729970106948862856682807705467527193948955012339032521002842616805094870807580407195706355137006988713644471902376203803813982394658650115087977973027586045751142737650103630554782923969978420310763329941909181565421933885687551635754883135834499838200907702884879193811457309975610916566310897779209363614393829468212923137078628025938330081013657810535821024452835472972891544657724075485078278620811567817677702349719515028336147301804832535443156476351618801260805261025393919000360899072473551451754924042323044039285478793666502441287422992954559429586557968498013254482253127023727800820137503502235047872902702264436239951082457056151269471119655337304941335041515229446395540924787131717566265226991184266866796668135481619323973857088799353330967060455042091632971755194087416314089785484914065566414124882934641519502055639938109011127116131687478194656294609928472049034816311356253682365188111940936386786831637255729715990242008936353034195215128921477078998500063909970563075628816564669647734546699317620417081078772956538965083593304735343102864654368740318234047413390155915831063831578795006908505228719570192317487700535758975346941815394092904399253348596958484466190232056014910519693338200538482756913667023387660261427786502017157805242052143761279080989811677129772707723623361251219402809645040183592224476462627896111331100488531423696079721204817058442256334108074147817868894060157772835504909866700273423562588076309873762788721337321039883811854639785240255479956086066336775948382139105751093181560223033639429513491882672026000156004898461942240640484891043604040383569793858719233104530256783256973038071837726417957132666612680955583797024296230229086072373593760315863907795679228055558571719467135344806611912113044197246069444328163672070077349231616786398132446531374198471265103818171726607730355028398637366302055471978927508299085967633617083335804957406069475466694723115495994080406443010037375972113908763058656041541465983854702789715991026125118202162362793610950706257233812372289708983832159635967973474843936846665341011159269719790466500304737566567219591721477072920334181240791164522405174471629766073309063371593314127492657143264995458903211404444966966609949265363470108958924260108780292722209571346409551852638120643201798035061197533024588363104082433857343099367127849862999964163573076566275404979860524623386180947631452737876244509092214390298195669845313997118614132101116891535086704125086745242897448029763436476489378330911074241705932316681530730576993821725637691028269547459823466511997251351502471107718360133490252229514668390874118969233072498711711857449902530634349358369366268416530811872366655478507969951639876372569279576158210209986549613340121546958758418200182358067494502830315173190914160615676707093381556210277548079733099910978818519920427286457534977730908731384784707031705253005131070219819704846784245001978223120830202585411433122481946746752901573735055733107001487294892115717249031871736140440003280897189172085334479045893558991346953518024445894182532164098517885208103225986739103432236904050126733781488454964667747787149702241416955594705293326520950865457800609440939689202664349080104660966673682893241753815821846660432727300347988237470525088594185480097973207413128077338777350665016575223781057243148333337716043543982940442540745121969113790889124169414182142227724438823819669921425197809401767658102690398041944333128273574895868055421908396349438739570979039676891916046398299822151940003676738447396741349617611193147497789994402600480567334586563646090084750623599661749408019197554948887769327647070738627007348063429689533035966301400117934634278718431092731788414073381821171875756389270938309500651900968191168893500417028686133301285398304210937451749712783381080329736064437349905382005633965187360150214227764709504050973673698751621523351598092128627321428806230859970069426465174909524933186634906982273209566842413703818661688264014175309556025210682369146049315783383783117712288018064215289879098287371552132163821216075346729156935449155028378114084185908477342418453151083000680974982764814968940156968282735023188586506653634012317031204890313615284461226455591879252967219332322126350112461249480374183157309007248360479271087849972224180935930245977886126821768503077831139397792018686536709047932166343490728253888401591749113146475253254324519935876208732818925212299225586015237553136228701197125910640126236456084717218765236687104437717066083233022591921976559701283419274010472765879476555016290460644424674719112147350340427358189882388427391533735003479849120630737679420871579873685083845807866683133351178458293230605809635938433953752903773529511520710260884303745780947035631976363150778846376338313889903047902598637407250568212761932383983933520127581228696577216690703843542820509566320061331085036114013719301047235371894392502001392252498835574080620613562310191619071477856659307193492262384734070524347667952064006927143901655219659465096001764092747726183973880196793043866843512883712518730581225418609224415657178929234612917515664108697117747262250244716428915704255843675815641664395499544119764171050918958045313134608018960283507380669051561010530485873655056423998986527579381926626706565583740053224688823964105977389442472118952195576883120436014615045282655716121684356499429922919114340499397270517568058820911815336515192127564509997156481030867274647917507845908922922938210003844626718014546646109234247976522858174523997047849735907187685394165209270216170530205483769469835141967752386357232717828830449325163618932469862521593992662623268681168308287419663593349200781247981074210222245673955893718976456319121321826638932721540489785607994150892913574313974138618474249379162960677291267801907796479561461427085970127360031249759859246128552984459136273908631745875031827955073827873599786754171722501351218857349734119877606337940776670002864050122527507420862757891146809420872993191213465549540634394766118333644126206308882183327241655545600939480094743770985559599823428716783528045160782144674674527461227198390094462251882863748342632345251795444098959539913123415286752538081019272415329348878408736336836099837214236441373394833294821781731016765815040362641791908024595434793918882257225722347311425176940111647946129683822204036866735166458552472523758326917884321522360377207225783103640482777968069353885545600629892474924070193092958422111654667608135348306220399325543092540959032995490414116156688862119499140566623113376420702311123966796337910923609694820842290338017921769499218123657093660598220879396972863612221485966279756751418750264293636899716231646251204780500371811342838772503081909128183444918992267029928360118019211771515961885221073048485279961089129135033646079793335658531065744701425524526925226169139357057956993648691306810989547159148269279430647226109338735896416593480730302262852432436779519567950252429369807302956127753390239089713060868993338402807628777277170101891195762231800071656834999332832916940161080609886298668515603602822793361626622143350269443856054010360441750475174395235914970174677795605642350833335144144322233984243434350227397187388651370662079683216694283975982440618870152227316215392423861816900914463099083792069262026900263982266286969078973205083017364462392442548261088564269498150719727642567160163277477581821248435785767938231524737648090004670044588916789345355855427631065337840276045835393516847614272929071371443764535500225604770666399990234973670459383706974246036044440384147156160315730639018777093635959652623122739555003439274752541494411001697843616163704032036227258143338691573898805513501160043468830558124154584685715064657236977709194307096953914596485831436295606754918870089170312672505072369934900621726568502373903907823488581747059742136995590089214800818715294395634737767769560528842823011451047419252822682739821442376431736532990966872262189867480588732227043365254444970604071085917021349866553359202599566352269993418571740175100223887211025769885939306523987395943447134868167238990017714409967912252981195797964041172745033321178003267291290938058525646614085656054335224559300727801198876230753706405931813635128960680494846992318397128191086765935412194724282566630888597312673741188851204615463094171225416434931553481382504199695074471284448645671981272008089258338316713942375228189955902070059888282625022855991287854846003342856783739521925167004357557644730881588268973722602848082502272789603333174490321594346362344981591520255858748489995752810141631751000069446482201359545557701997598123041227907220205746536310873152956441732044462604849738788128814891954541518428551062424772240984239869908386040590015439516558799118210201107039840556915293068319217106961794867196409729089088974126098533384068976075539365969871487056218431324253101046511667970895370482722285224012516100568788260541075817031918006440888019014411319231990328253952489223990666696391743323750652167031476696922034040714481640929983200843557894403421418582880023041210914230074455431589370393915540782939376131601494955977061501797531193170063861245591664799335042727833657136320518128781665587027936167825507356250213079476088426782452012252312213023644925429836998362252017331475230129688235275744688184132785761437534748098660717768755146565543569692947067915494014880716658644886856756102847592127735340367705463280383266241903280492692784156911934091816162207401611262350303303800075183367409508184715175283411803962764877552823503274990203572412814173400137157422046522097026482315561483850570265109653238258095144249208721283851285707131768632759781772045037938938381084306592027668519753548253284100043267141362052486400108293492264439020709972389651661093339698886418004810054037022734816474389449543437108969694058508607467316435539254832928722199123132697189456312389423687008927919204193731948647248101165180822550555409798676475934635761534628595382044359937976326791311761178385709340409726437577686895057204592317660328681102791798636917867969783875977662333680203524742044585232355256106196329449114737127839204055055222632981749648189498786503370679536310622474688830618750730931996759847604052748383286910738084390051665906874345864021259413562097794208568095835824630220357732477201860010045054882278155825260599742645223468583206914197093435833971228725162010081675981684767510303939350978459788591093405840503441240826812181401846806564362439845618094809656676156122064513286931747481413032709826675775198041114533509025981667723014637808268842457709208301865411951872252608624908781247820867841544007497084468704724394528517228118863725492508859020676437300141418899656630076742459905887313004245687547891965837749924139706554680508722796382900163168875553165730399131944752893414120577789186043542678813825297545404798445164169999534495767606990848949274994461217480275873776178069859678257819263990952960297477999364878545347698515377942839910211499047537601302574778860597641629211382602512201479710756201159917789477073036626791850318274544576343662199293939013921695629599061337698089619457802709459256725622234053358847543393550436040838063980768742878155934764156463234881765999094258531050779474440884441472124192631467137275288298784986800816030184193311645091603663113790288454751764669618591926463125715449018975750356893166303026112673451616505842666112634811273153275689482150722072418582430884600532779354825272414936519324078379970403643032496475828778936595963081197081911775129353997079287208158353607462696537350387713718934209773866570690074913185128431281362437162294358284456020137105112034192969507749835375985589750170189274794815353414567389856392124152581781488188890689370605497830818759390980812467186378468605091384124785963789070098320498958234032132979598398484614514800689560501902526412435073284441566628351807878654685294875186010970041303972898920755954993276363830690678431435409117426094839660596350987098641546845277168094341599107701650012792837765636512275243556098448521773697672945540154186118541260382166355021403129305825354453817038144136818502535430090772331127055871564642576963086999784633183831097866203319920194715468033242250212757909408286913681960692948404415964987706677716968699230585226356577271702208669341288420781215768617973592792837651890841153737032307630883056130550920087320655967203643934285171187717741265618644566131040568648851280011760769429825524868247217634939081452358367113059810550491028684983199236396670740505753542555962106119205934530853071158574866616804911695633726690650191736134570002794813854646356742983622878192756591021803253105864185918048725234827440058395471148258618144333279662470524393619241659307891641699751658684272835468177963790665396644132996237152688051487956337297031082350422883400570284372137313225373016095136229871227620737251819396648415079587398213930655322818074792115182400420477565379335843947111974037239813691067882294208342404354347827169817882065453172209218504862766428250295034462143411182945916660214428415057156396972395124143748281636345692460482327194519969534026556098019187723306467735733836128606500856969260866488971514828636522962665118325601395918950242721837014130138415656144824106341277221960436619034491316803554312463179104928338391865557033504799083275250659259064105664954106489517240306074855269451976733927101010314778047365671507090942309585897397944302777039455857426081645665266857885539914400829049910206385301637463364944627358021786167190863768641092001612328962147255011822857387741776823245325383683901708604850943304916981239616524198098092395059141987145364419545276508825730413105190005731464958604636991762977238119943592918042646312108949712863180984364266389949065518962425140016159345876641255534107175030006071251679489301828708913219088839123382343091174042737588534693773515437134936735128386102305407269159541896072686817233781226928170834909190724888057175934157662393256047596907803411580686295340796572328613998363268712877346379030510513821184356082270211186891658508713035014827672337468202556185516507568515586528963136132398888755703292210192983458884986671962134610621451023114236743217594163782210963596296542269282354863856895916004366700337155974520124342537005213255909232642076303213933029156841674539124271632178321722206659142181286901221514888820943617730330920423345071754358318780149819443412566475700851137538453095554436655345860695351716176353618992837005899695183734671467639125109222199060882423822518601781095819658482572433183950103309958739104259787515224866756146035999190126972780637858360654894511805908799225252667464412660728292521380492739385056397389252867673344819791381801262368661725551794717412800744418261389142146224211444471258634145683637519794630448649557262927272356781947168694142198789710757727564719499052105474117806094691061191400218135631418931762264020301853848096554013077533650996135167870110319587386276294325239088333971096095942985962307873468330870864959826981831347273813490661746129170831796933577400830055696538415037264662379322055894898691107001823346294419709871080013140449158498334343587802429509347001130757208974287000872623035478641021965676189915031048252305546062472268785739107778606335027382083525245452898058788064577259673496467252590642161920304484615259935620206499813247239515229538572573388890547861803873120142915486226807064119958706951696589724871053365430119494153559476308444213913145177719164939815220350622186915900457574466611134184263195413478368753283385616957717378580915566388445433889013440804535679268773405646099661617686714027082271393229943361769591155664436033744058658991904761251561950795769216617376046466573980279386539447168875055336622480372306146848303870748232043034226964521067726585173780422425163705245955390895543886275937593461846659820543629625402396665912002715650668909552662142873668703153990008442148110701907671483943944983669952711394659160413119351508593218256758489974357789694212424218403678650762435061977349729481740255922696704962306411135706136320021307777261684016729430448525864409901214500763205444083565147873171116748847929635656560971913842612106002668190885424101771130429082161724050148429139047041191441232340222232728274986852159724940553581860514620511786856484289761396325046696542330861215770251923428789755492414375351242544892220261122851070743340030730433843836410072409907077286736536031620603562579333095410521173689381657436316190167050298752005658117230926653476608388459653540373510398968763668867736800075473988424997333913745945092266204703791142762396326609843887261572292559429026961355117790179239340920746787217416693535197966676167165352206181789596394210139931441876101310243227962868601111026066480837923682548612885221386723143810614691501494306746511729126242683886373151374608703467507923296355654533799442089265458523411188848928763634500367314544515269931775135280441080279207728133568842787016604918968818341162481331907540064899977791119256795616627139581532887556085357359773231409116635720193128560105186097197658608441217773441125339729910553993588937775084456072217086389614082095199366949857903755723189458504021743218186843857245961964860219959173433200276361793603398793998644984146393399737449398559810899111450081391849355403556681194472886967427601872458949491329307267054455803300693318422867666464436899119660440576365654790428337163427412376750335314867229577116006300222884677345995337233496240308954388439162119882092299417482866179799560276382975161850836910022300421806498976529266560574917833401691652759442540186391388346902857563007264881035632666706555420347735824953855857826255378324677741013157834829819385709027085237792744036673062921750021181841518529439680098796428684162812047763706053355736037282286366337791336219074995746316734532837787038303011529770221460057385665998556280785306969082791645428010436469380753972573191912253611881359489325058215015624539994459101016068962883531422075946606762527992814293223498761159654777824213447348371458926702619913105652898645567041524913189720785402661535289840127814288265237973229334917125274791215898987940295469651238129772473454640738107940715012800541132202342171867656375429290534246545131071255351350952579206233155103891639132784164734588059106011112268831572925111552701097160354631503596525817513796722326031634252025730549215490447754905181713045742915264512579121562765481389819989199669230637150017438743162785223830557399338707299899384183098549316638460660894648263803058570292861511279419121633497218890878931095509248603999943793000166276204406105679272988390410152178311885045595386439884540952172802043140458398824840295550921723062257121310553813850106010815230652155588484630786242076607160770517902302193941756649485410799201799146798562520145331825312246773824534551067847148733382805551068086110175192141548327587598751019642215646942127286042895137792883276049387803372354833050509703456390324344932203915658312147924652129546128434454505649933766864846139506940231313530137613219293363603228871536241332189064073074978656519078432876330709375433092002939337658996662961025708495473959440867186304668303869077561902961802807249283906637294944511330892060056270624244313338659946741496496050387891016173536160090100264061964965306494748682502069431534447409349763735364045212741856837257491526255317652784442877777736719772376645709666956826682369297778594448985597113794185375182388152556280776115168730090545416190538321099989867508954723530792750596912529977721638263596604473181587304189729302657373075811816755080911815614111757112719067974514438600548784370799205490659502890019263552580527013383674274536336453957261865131451494623929320786310441287957020708231268354632069771916920310179586911060123348284159422424901260254902758394448518257551773908358954942630126071522640701434169890709362281796633130699503420638663701992448668459151465590260670390521030292023593915268263838065363157113699813469185624726491417772238501695147996640628986553973869140646806822976311279013422590091728847431744784179631428516273815396073903944442781512440185078191960063227075171507756498993188280441426504073462444602823325299607977422197105460651413541628395721779277508829455049176675220204515030113501900734789071728900722261598223823916243114074185854439946763639589216086391347033933429604580616789199037054744099201312913359615555063889475471223876553403314498495476798873319349373445792813429063762635613805934889507439504271677521331646415632092454931528305510208081363442057593922337347383170366762890092377006288116747078832732962550029222944915643718509499630501112033799128072712400869706485062557252768395491257603115788020989401456223250326815541831319498756544053252418801961146306314718460913159742757751596495328885403044590931572899552693545353377498350592867195614842177803282051863453269349361492044622806535613433674588508719524467430721915795676633831883033324990973150130867189320024022828719548399928185913173789448646191033561771667940060300563630887882771479586962351193747579785205013955391004466628499263869259336036516163080911630185933167856243595537432644316060084864533623141515363210158280361261710344744292267493447392395784685545872896053276758628007215319295587833088005021365352485604670919178377176642925421263793777521417949089612107031572148437462233444330140593507520047243750118201422628914267430426639127294014750436820716482045407201326311012168930860232607764184292384310847488777398089762931749974673660299930962910518891169446020124551471399318499416612212853332488772618627674991204512418980099342099450697619689245911738929139539571140508294957386758470497434859388937755421303699741456850986913062468932292921962666674583805439427366584501290388603126065170616814885871760627137005311670858244331983329922902967709220858100908545540598023110935427118784011731333523615225598791752315399208653618388611462430604270367722842013737171316596200097312891630851009157205872851383482879504127199199836109115938566683042369567913530641670098317749890954579194732571478063222307813133689032462358453547484752894672008624969307480291897404101456112573572002197101290800981102637138389562565873950516578779357602852693426129654876337414860910307407303939438285940269401040115529166029982769649935253749851986091297561686649660297761587255163376882151981283598934564006027878151044412954378144301349184325832347822966538954640046768006719467189065463825313197600095174756729786419536494441447694336029910019899887009158972253780739309417536112468566956177877834758826258232726802663318140645617906486202833479968758489184298870678069299067971435425564661728258430424006477416565926240355205842994113602525681692987463408840547378741424971133648192132333149156786950656018026327289387662706271002564442976302683013099185560258035066877599781336589677587021526817782793609119341423644521748489737982061765331263886190877789639353069841754001190386073360782975380430424933524574870673537149900055821388415647586777067684214566136364756672406093642468331982736638026414305541509178466951012092224389082127345241515033357354759859357816416828803434390645839980633593491869177985102818307867288849862366532473911936429699370254051926403418147188834460972480803519306378660585457509238832721103331424513896031239469630208949860378114301513697349218332113168061410323729909823990325477050196922867985753258915692884552434716203641260007695346798395587448413804828196254464771167462690993949102551564521952606232817002977060766802869482863287189616575866242025228563127621522085489481679063354885596569156222300813651724427153247756539327934890642061642925395235351413094592919076080089495348124928962539227963376340088626250243175720577863690138099808680921619788675123340849133117866459457123580364701188680488307638732475951381528939960699065143962230153289297838158350657787091688203725388450850569544186246710156397443331298961962283529980794792435911078344612384438535273284175575046054310874503226397108612395983607085433520264137889513143546143065980188527381629880615903219977360229645221035204378306843427718602994856982928191465935685464748877906180533737780209209385876196058767911628193916664778909826165745826103574175110551546343097858472518874089097555279080754318544451372643008706781787980145475309517154305768320684938371377423465104625372885571499125041423843648190028041507091559904993783999288577834752207852772748525759075389829526876551748746319627626375679361349545265782053878520161540526921649387920640290981295653849916771167985497605575356954727097631915923630615636091118719970144999628812614775793222517329268382466842459366493757529233038187407523981157239354229869341600434928061184326562989012039619256367627981313399068770160387014442980556382366048465621417422716500730735150076156543119000285858569459719705964784921175515897253265199662066445793579190104392928567882707516826746070294420625039340348932509525531950791805487723963457831688907447289016081698718668583808647651246567588500367670844907690293194453844924894668881175409686650630227254779520935599325688429671809782055969485130856105373677582195493689256858587681791749109010173041114364448434696581662891972893561933863974077656204331063887800673845432684045727586324731833985488103120901986901208143593412727267631444172032394768366165220514806710291494259883632080741299803572257304326006476644322294963132010620947272908212173029202235401297233820895195707982447021335615860677869905386483249068692330529113818749801387183887255432067240291167174951346162553799356376646944793387324522916934520297575372062405032054723791815942543432325967604443278963204735936240050876778465025152966172079388020443059427006523120347710359320509272406616993993872375198631218230895442893901902512624827379441491712890493112999309012355938571206534682455319115545434789183516035231421840637987006122481595673725731226314623395335383262477624645125747891999908790030282059505735241313280884367588988361620554615309658255278015673709240562244776303060785386770913647944785483180952726051327092043756792933645473091148267715182593186769642726367056298558344843849211292850905576644356241599124928440870168969680064558806084637768488875764266684229981909179018687360339480333538777738743093651839555312159695475094791335042062542793447876524713412076870965191949392472680119133063700753511547115927259201109562384536623527181730448302892689353225134653956712132376345989384757510381244590566901437992420877939963746584680215034613061141069187821096548698909568825024758940231919039026116524044737559378722780259738104686997778715414846275716861863913326775873936623689015433729133551855498741041505711046922670895701029891100115363798000398658172211439141574924173782148696279585955872913944988200824896806028599990958258498156596986208641260612202430072814225518530316604697276258744534005809524392228608899407303373765060597434772786208207871148999309042494537760154746517736337638057985842405453262997894142520743062367320221778298469850789373487818514358232017570166572073798910741578885813978838370942181332729292618097574238712361876075477612116862634411807708794721314287828085503654075863379789366878567148516587314612618190101811022679134640991110779110360073439317693311159213059259294959529368944943425603376181679413165530079706373911698105015893756272863950851896362497715819859316560717420856024955568918280657842566516966670245955220333494274311529046030828961613557033654986259216047090092777429773867125745596017325308475322374211184699863764534492788586659678490863747469967878847738781169457560224026697140939515507235738656138239782437761163520634774839468368785824950936082094637278410381705334451731629384940316607366531447817558528326701333195514976297053186476463974288481241856802316327340787496081353418814260705758061545097326308881733030938899198857444471111118986179216528439714241522554905895597795548814922810717764807554303876530181748572916315545567410787444695254336500188765858535906950057296787450980070205627653437525842592047822409101365930699789291567949885667543793691171900053692793291071205831098735129737641173169330931080120405221631971543708486742842419159829136436241778137830381452671149845217993120289378945706578245841462964781974912623484645469317760331275746476920142408421421332100400677479787889923107403521750448189782615262102178017297595390458712162490876045308112264432272168700650355056420340386358857135564316957665755633206224473554991789473708209980388943782596735848866384528600819214404534206190244424862076796759840463282024285618612708104001411730734384487435796850563640449577592187271441873694755174129123817019217159188512711462508510254649338811931822341060263286589475138066044875184574903276489614448080019092846134713660423089632456213655727892198037515059387923011779001887133547391364829691051957326331566169941322234830326184191054958007407816981292020126176869616045139981861588382818108267596880287557609105928661337912506955034213326343326305175304560277270690835506812014003862570497334289001937959871299983337976163911736732646515789495989172213329783191484753630908110335914871529535866546321851742458915188760348031415392008254956370312702724942981334108837571153800860662776512825129619775582498572393742009955629958636554637238401682071791044075813142344770941442352099933213469482122649232486477081251070552120963008498935862461413824620375099159461138829646317103618883267645566345322001468644142246587029297227810230419180495786779217150461486654632505237351148584377465835019998650117627698050055912217106910240764611551080214196212620582858018328264482112906278836292939564762130259416541996391859716116332934708193078880638309227521931943433040441643413769725966390680275311565681980964608768482874297565377628710508474544974792303791051659841296746173111649377526650809675884090695717957990547968114118791277602634350454829407850502304835081119801939536833011446947981070775046094724901768837507373443791629308078417000898144112244490593670304129264645781142816399189540540135134513852448529286317518405308009558564247569882507082700745105500858620821231344568746712027032296270731141451713592066044233404431363980923119549629192099010795488063963005783844461415519713777369650379941867504352941095732654210806411625750474982409698571865701175401650791348268262782593715100057870485605308055727852250857492217447729412049237564221491623033388305762614058641696265621731364567739843616915058771709756409925255812275410284125411567039993800444886207380791249135720371970643404277304337472681328708672684722521437385705872629577549267088208937449972441768335625715233231955495871095442973886488707391158693141148211158395017887355675251417337268825137720903254062115704001751325298452807952132686023195524014418793727155465703424679236570705259479727189477152131998538585402454616598410374845120214983889513406051877316489055146336866370437659589134149531763676389463086248425631300654945105802262854939217655713666452038598810828771729075293049832695357661610087994380566086407844782770369109632566423375855058166351589117363801670005972077866363395524533256652923716310630679908966696734547651565939492921055518779840320675231739114617817578179878720734935833115307870534839599819948853400003216896136943457059449791150548105428950409343434320498426268802619054648423202102547062726450720374150269285857544912854732191387218056101400704365472248494436697820006378667547713887642679608827758970044600403185696580567706270955724935265059148620535852787790675272100565555711530453214137771598657725001047233906802611405281010020011381655269530151265711560928716296883957163971864797007804487727536716631948493103487667381915265878232175602432025807149599156874388284924984842449063842606224608606443130008128021027606062890306872083267283793364184601616516681973183393809336724075884784779730364788536256291613648912825372741615822689195300137245513692481386051399433227179249326574255697103773580877417204005993370506947968465302965106159968097191017939679824141149009420945141218540955617215598166468442698416258292103049747712440851084914266679433709818073116998887370968602408888527726333467234245571686665746648031427716684225142785357932738710850090019571045937418554937035875564979941077348479888216312726405399355687549378814935351970572268170359112234198128389819677015456289729526316768879272866936283510551356469396458559056997369699870725404781073040230915059847053177975251912845509095483805272977772498924254871769473926829568067670325227009402523173440704331891652186093092144064735671526574715707122433875900833564563939886403565522974344464658554222526819636466741216028405744373812778881792763464751423933727066828073510986619913239874111959691795418564873819213528591378404003538366788037737033829742000450712795681540555219743737032055266292940017618944397226055098369311527358141879924593415169344551247852584268671480996448106551020727403128702866695436625999328515235659144048543764663708003717673115213204520179073126322210573732762845871898636630402834154695265665798012539603798806657725231596050702939919628152698328469956295141565141405279424168010396628533886731354613963421363410616587596695810141057740267733842671150589447402847723246879972428089728434388608825788871250880361654099023340250682875934181897784587980618960152026798247699101600544711585109789345669534520486105503383269138494630983576649527923144621300626071396794152864374346912436609721554787332820865607508734146328622090713263397111890273299461793316664379020176058444355705487394548001109831577104730639557267116860849393203557242039743159470668548745521270887635574476184932460539409730196481216472827615552594841546556378989009886079330728269931690642394586283583591186411995406234520695754241713256090870353971993628768873188714056950357292734848684717852938785585536839792712147857351996128007527370735353043455741817926838029452061966687831502851170076156788961711236509829179372545824326047651431674033276700301069792563420527766898148817879251323530408680814410001126000414482191209317917950002927863644290948202919788180739610458117799739151927690321039518962751082964263191729007717625507980847801634482769128549189283024282707367631923656027222172320393061082574743448277136139719447466453871270218362064973588550334749504221574993399112152044922215885382545270475958000114547166540298103703463050649278034727813519616020627586497430794244501498598075509349036256323463094349232201705950936052730814506548705112462596634453248402917533661353771051197716776055921661741687046616536448593568877251388014139192070507916406881634167850021906545528095278036326937990687818113897088535092725531795936735727468689324815699493177699148242343778130419872744229908371838747790183020652307175070977464570045161487003667834847398861998948283075479335804277489655830799836561781988517346310700992984031968530806193974813094820114425431207400300270625180878292532214186952142716777768966527205396993898105477983166588806719670701417326566859754316295382321071174118914544234294500618726686521332591086397072775900208268917522148260144997128762764830503192294250527331744006639897976604867174511960662352801284487990346519946466234392049330244287015943153000087508727837568609357977482810045696974001203497156107724250758749950217763058039768702006780464988411689500697879458294673232929727905152730427473508408510354742972557237318665775398179273203078390662072421791160706101014675612340412156985497875057156084750894436094166524644348533296317056205675753684956203670262590894573582813369457977601499216727255730487502451822134658554540817748286362747733004202673549975934242667101688687963937280180496137781914257673030695914859144626938076678140979583338149314143684543372188325488476702795060303942281378246743122539986032255894907866067926414082759739103622536299506625154613525085040511641975385166837250194792466271098342581544749148427366368036883390937477315256689044182875897448554823716899339878041897286083647766964045458942524270783599394584601425035699042037375064810236778901734113949416023360671653446839323963426168682891248001265416056146773176833576181138877079170312400025995092871310735185770851210534826077878861401349421927682667021860184506785800283102890009716837585281605902424564186313467717411105144730287994750243389722383491837290302865444365293156375701183891934842207306014602426225987552673640939576195394524712629899031476305819950993160584368210209903717342430995447378936908977980129482489503032974000631170372019212188589811961841946161608166082438319619046532280177994549127361719497004147685558961340622205559927602834357644368197414958770331254170518217261583764421320465087248340748622836117506564081663564371361279810477767652630195483804127677658738654894568641379543193263186019348583882559566676720726085051272454865121178120447241181884946386238500448278403834704146712535538447704946341729053454493637312549954305987277735789793285007853192144094009027472509885934156380092813698972077183443164499864657921888367565647194442966085917358223349382670428442423348096633453390832115335079524327289935044852864216429923187004961467722104107993910024217352346790055052439165598561394044788950511859797230755510975321437751406785359575694505949932519832432811193871851255459640223638486350988100371252122861097333639931248289552035633258305350051149808535510416091848459173233785915687362289233773033041466411569825064644090688482455190241030321049644126985351582409450644585309108667807372647271951958899377021800534870018239877311627989483215049758627584815209267070952026076928767265201803574961580060717781984032724520858897312065798640784936663200796922671807729174035843647177876382719424423172697140562271329854790688704255812143672219829709328175681118631840879540505699206065779418971806638437895069350996240233458222232373831677849825752455919183030557858772081312277347326399671517016574689799201838602606306193212565107105217729644686593403848145809289382208378593373558024021974147266862876672656687241929369059892783004708504247916458579097679701965871194463532886741133606394085415525020085017814079260970525827425678396169743110371622848001758201276251640446339881205276339165944442875917067585525528879481138360210866206343106290801288891605822270112991480503789025032598704853778219521800209247726855190996982401472321737638430174252653111378976720759949523899687716325692744449137942184341922882690666208785149932346889772620627326999321288400263822750081325494155687001818569387546137767385212989314799883024667170769140999356227365997670268939554247960070707691779489667375634052152903831004604725475110287731609798348939676579799404815859884083281395548521292480108906870515944138594035318630153384542030334468208007967964630587112811325433480869446142548042325629885877744628110655703026699955929377888499123224168863184868351690456180953649740660551473988740742825422405975424153830716593707596258325805754664479919329548649589754858696769048139059000199364376689184136457269145077676523799658520933310377087934921942834055682162732548220457561714725092887762221739388393375300071807705048014082207174316393130647596311985247953186490330638308377963657292833530045285346579584523752843402808077960699852540680585523856762650929547246857839973423793443882882291471595761736501915347607258970646621999094516397161669555770589251755016427147525500084595583871088601370373958006413934505501512274703304982622089331777988813907579088719733131377166454572787845830781566349367921168932226440075517578439206670259863772099858637956707266886529056783900126336720988647639828016257900037010592286602764778443300087812695934605511170128430275544106368546639563367764622906444911516185326270807851793295376891856832836570242950371258742590412329055225054871283653400870606917359797174292319849597886592576415851672237242368599695561409872119421806416825360726722904502251135567780454667512445247400574745374654284680720006678419620405977682435035158893894838307927245970397036035816269773718897654100783148915968461409303092398627310702332461619856123536875257736917153273968588215962583974351732605560487826097792959490832417039640564240018303330214817410226156757869859071529452010666637558184450304157912458677121190345194336807351631206412383595177555201997305723741081429284020867854487787043702051677157531218900158379728995399527309130517745212333826035247156599642032468292175288846646568624660868410832807611469599821596837050624522605673833579139120229964903612125658185878374109674830002060458190452217373923450706778262577418816846033302340190941002831816396013452791718162299864830494329755491835507240701889947350340123361123066881249217532403546360081911350507406514007916720389076921380586521624519106453934059634360518608690522812066240352100559162498649682787808212182184279662315003878175689790216620632963270981810266604237027718350433117168053367453993510992544346479647030598207519153185315889413274373633917775583442094424099661449041578092978198003778863511138228913808600229233224706507503382708123826998515244423320725030210366668308900395119995555840162450696823358029044546210059286540925004481631620870353476281358716938709603265669650380958953723940275217979247683952369571523657455886382695967617152211957770752898962035894834495371106391434748534008129292145030015172423632290581786469943874904726164136798188097811097381801013367919729329369313842928462197706085109970298649995278063362555335004559472605276350461383891549945452090492190623769412307303853588564817399839081253359602272623047442363809705783020163939976741755075438019029566988435693071898430578193018682032558123912215956585423516302008442047408354216382146383971263631311125197323136239671259049844997531360522539950754921229904630425411108137756160860571619827007542033039629206977934546865785621762613520564109125103059498971300629090267857208072231261942033346295061754092693238149811941475935035728088053558522908473382259768818445595257825874221761492359964879910487820104174626318292684215275216036191916431497514977889229002556339474061730865771134438965855834552097956588570782517585073905012395094791907681274597911259673342759785872897480139656595183533254770908673188820530500278523958807285675170844809032895751660547868426726726191493111295766744116055043450803873874689169351277694241430778388022086750281405890180136324282709353441564986735541620751380916407479903813905639140171588534588355616934909989253004101756725708711995616801859655881623025023548780988879791939239855099757500266604654748375299006519414648822045849562736044427904764688378728235808917847987398521790796067281030577866602720561227953111906111207613290716912405419429735708921700404205518894117983046579269421040921547996578228795525637188217326946205149562857790975197946206844486358085814316665693939137563967029093815627914113294419450599578676443899863301454825820766755353403380925903366263140727060347722812009437996724793272777237269514597400808160052054472430453032519757226168873392224325736922858563474859408537999504415496604996274399548590197141989708268933470521003257519030907291681813450644161475934693361713077998921907292816536474624487783727213801171632564838568612746176618370186312962414519597289564139859932810241916198387066261371546435048593758183628900333176754975658413640988914196456006214621955295409711833261412451241515162157681398901496994798592101820814892563170801227474821134848590782119419050525398209483408583945058303146797671892431581101479804305119846266962449136453589561310326534516032086442617221422298474517408122097462197488443037436588368251786680265273459441387566279351405706345186771512071802584942027679552644378562712037616923828951593887980506254419443359380871017489379395803714023898486566380941011083795689811814233136053498327383304067311393126686681610232255358691857814229808093373416122808186560805045706388314272196817685895857396469407000148267176646005428787182900236033259815173022577949530799794210840150726342522814928523991343179506632546146429858641419745348612681131694663714140942019688718480850421168332266288309066701390795243237404693109809211497459257167037302308895637451303315316509379953674678744438974032838995649560190569174739300190299224984324194610314757653554548132283600235856706090975514685073088370693566491971294178345537412306303593471988665164745724691586167007897448928854390474034210222620007424876273340623103538117902904768654239949992303874826711547035097259842433195084694555346705767184777519334978245528678504585408703062835103110010463824549801659470128076852041722289673501769048315518374476004820292929605999914363956111936935517607080064373273972906725080626454628604207336815162151720677204331881009687167035228273044511899078362192328570313331272303926533573204966102323711483190983839297071833650927905907391804752362813050974668755724874379186127817990176677359164807383516385003687715671979837366202020274854077593823751120895978568964281156550413281361648199732952320613982708875248540518063000885086349759517551616709643449815839105879507439552528103922043217470948720948366523982466018589077618691505937579513899041888981269345253744186302217765275411024201019879550696990254726433713931510603990208053722654170073204293082810611378043794243731936981569275627493170868275961123321223802127457975281275425324175097651026840991040609859059077672221155257891048785677179854788280500697469482530189748040176648702765304975106763910625727678442679201613401106168734020715226529280716695799366167861403491178867229627034229016420256881730542896222675047858134241802922852067128657539923122367737955189271076142397288187354321823654641429567492748707120315522621032825088985900613653624318610207615741743779583278547521104470881107630172442590000879719396972421010347639202623656024970229478167046943227908432068728465119103242096834937860972090081157372544129857956002643792192877555423347641515772343375112673142484807972032827166600352056672421306493203076924735345782311857595157244200704561599050057598801647625151142088015820169151003182349179097064429079454730815590031491065759603287677683135205328681360603938522846406781381826364218440649429088858044781947094508788786265774102714292303030103873642821363263969894251681171659840118970665262048093442184863096156289080994607252417192349367549323248852409942687574248168506993612477005567284143374603275745062716005777624433315432269110043604072420856711268133996984440582709683925273315244357540936394335053051148627213048681765520124674562550155917227598266313952406994532641031611987125464286211494552028925305617037445592495031554468978425564632934558686130138412505530571616311522575770983086058657615642989488137547777018896219687557545357761510060674161693208975844232810854919731904719293670597595143059488255208533078528227861654024736872466200880091403121277137851402558939588116016347209903467899832880025546719914506088242649336814885483166473007420575715943568713777942722164655652383884626940336405026734653490764416854841790351980819172097339864709368179798330848663222538686210123647638523687622901726308062129229331740811235484813056447414349471563020925717597219176667448913931009886139052002696891754568902877269481020794178126170419935300226463109909106741864809982556549655254701742292133937523287532500344292755412424222706345624160064877970918699192038401513082158616480926407318619569182308415514474393114850983444385330720286627419949318664141604472916184102931763791416146722768032879085796235592823315735843067892615101673321577752276402177183092016726358909746999974938870859040169939615381513495927737694269173626540872770451921629353950819296115716464580925523362010975331797588764252585551649171332263362674300262090295348907689604785826309185476168884961519193352923027022313666048273151550248640173702272763626748792613147261382177506748786573039696660615945464156244559681647232943975299886909833219017029481097329920804062491626007689722329735476985487761600308092542059423522780385420700612311718895672557813951091895131027843751037895142922783804698797691083656511870412642407781667851707291712416674971425296823609830143664504966497901192305188848679187767166271074156075056708747992672863967378969568210483532227949918356772790303991069366847212523880851052886659868899947075239802118955252929383229021238138793105182737411699507630861942304388515819569913954177932556280462610492008063305638646539795529686250841804552504025508031284010354841779965151115128467064968382991067178733841892055279410910729970387883434327973310125453334151309198069225617849243846598424922683654873511061609823972534198120421404189396838420838525040773549481093414300767119942105244577962595590972869583354878183605528970329346371662364258131361396741269594338573298600946355705695438737012104028177653376409367064753881453328107122981875040993290238662174751305721889812775901313349724125432953792914279781158121050954674759329548828925160656035630066024616274737900993946375625888461036159747649542424913771822985365423299789460354598893005781136722841770765669877666971711022299332793489282974511790428302836393560525090171968933017047613512409378494556849805553283184560629669793223210342738647047615401914153979220140383731795317640683477628142035446000374827636577293737722238015451540638844125611147887927593922243319402357234800342760986532610484393818548298865216945613956028493236595465878833257505508211332082767373277835414338926166297790065095386927973884376585888905318839343919394684081124202367859757549083773266178069083872619431148204206169090088294024604762949977787975598507040897383587807509108828389225567731429430128063299975265188576191202407123029250687256729184719617036585395776504785436367088976860271197387836517561915164605869941719904607222558921334908470817721691092123893774227379331478181443045265640762481385641775924211884718925035403811880943295387822418268708398944436709347107004314480863264584795329627431865833070277134776792011057707936176064194105578850973742761051615507823893731179299274347438935179654536033548751744106761122718744971677671916020821049481143078394810789622783915319679510633255483520913739631523701094502575462319632316541758620356238316589453944945783603087088662651905152133558822090815843268155127526662412281274175275644200792879389116201480764086482514608130226729398913447215065753179505198810344009809706784609022522588523563335032846334637951787249427347719945105276348736536477556430778866591628543093285969984361030272235696908377845567755861647333418586602193169380410196112051652608345615660416700731211600927884630058836264301741137797458448478875866704086895305623626532386207680482990760891496405410813596879128651556553583824689035210415834276359082657382720319243419361037486404441272277026278268526898980094663224829963109297989833100858758820793713884763751193476065150985079188856531826119215015630354627786527370685871435022573005580549355505043883033049868536355938536294438059834374538905791504630521192695993105599240930378040851183957407157296557611543248906256438342413492030639880256528620895748492084668302388537561493698567106356650776364673447925417591976351612039503343404291364294592907921668034573907317172547710066005000595933195251087218884401671028809775267246988935791509622777919888313194747194225309595244187483793143981494500991022504737817798862005824445252652786733041895032424096381410504394420768672260568998922039265084755281992039135707781850702478807268430593829460889993574885695295312339621714860270029247350155625258687152310134343213553414154417233575952445576312544567192799349268428733038747654675729776398287298169880567506104882320717304499193197230347570458779660011723311498480102143605217644698223996021772346253796361601004283499064645103024301183419702914394329808968031210748252450070811181063842520721044362237644420834431927519222410394116102107867467706855789027062183970587868208978523441368196250099638316321815347505489192469545451942506653346090576306485206734039234487533566960728250184824143455009898713236885777187624420421813501663252381422172902417179050338688187863882867462981746304510534563571517211644332123497426630595752004620017880350963214527897621225281595708981699620383244955857882890477462441574108665189068847733486550773084199253176122039619349455819069031042254768634446109418538912005293330685143331490393783731871492858647056983792713959463736605698436939225740765051514297833835288587014508422170737995264564756550482885087945656670862248534947956786841613088866294216461129531292488558369638358839209589948522411965130759630264500326450891885363850170476580030687404307345800570736173788262356168332600389988096244570186507671941280118653990603209069465954200102094467709134012032263068835078489870323471292624661703151213446400704993319256796558720450896021816252690117839456616123899918210744545597086655650541599538477276656043889391319608783796967278081077710369385442092147825086998220379565989936484356842045415129536861862391557384058339655918454056282565676676725218476700634969562292074621692871181514785591749190463246066439283849263586595799432476122105522246169588555894825584928591564530787253295063495466459447599043727875045308636766845489321289578628169702390863430925805986411503080003692059262075369928486937181467944292671984894623850584012712283207966033502505576214500720535313523503778804277484764988490855059715612548244681734103306868964940027183578210650968857672986824391728651449615161006458459212680879243552103780952811222369112997567992513613231917730006595585012821358926862256572957778556242072315773191364648627134072608035394258370106894067163271159495160323278229690083188221977245002831909846462605210947791151304916556645004016888002840040799254512393633341591088290878842263402775913511209193108286794106122700628376688030878403205448779656950806265409203842629746167669030369090729937807590457894814115652802737662377877023443471465395771205011377971207165549611153992830608596475635229236971261050656388088431898260268939633706270517820711226109210711004289586480085112551062598365894520854633208086632123763866448281345034338487342329918207587715583253807274116542540735721430870293506120961624531601244705550065882358027480278546569092882658700096587328370744248502035649726371263289431138228713140535915063436991429071416041777801086354267847744932599940670011023945792075884304915728950722102707927509133776260577986701334381100035265496393076341510683805100867286035065988855142611476968261326294403172636295336112453764530211401888458709202382127951946335772748704962247068815513695647826577319925057071950780153499140410315781798603155609110361718503308494545273019748401039245104956075479702432596635000621401533890110260922355985759380509111087651765337275473376531771799025968053064301624995174248162401102723758619430483711513056283997834098607738239602391883904967646940153703933669567009732945393447008508851008714906371370691753460015337260245003844590890335467208859272909688418785929358784003100062214621562336598744165438112869651583051900230473926889589303686254760849421036215385362119268010309197173896598585184142031966462294803201369346008723404836513451761001659983464560040235533972572621872770021527040863759388940769652144075983349258913453146772012592756146020573804326409908514606416110144188017239406793356813758695253279332822954674203543172508806509256048944342509389794984032798698265454594582604718843611771115254760737156222612607377312090612698615660221443758230555159853928284042166499214578605911980180630855039344540802996003925646348919660551039574882236392284270495164837558456132272715244390984623989630063242589675118740207526898999180396962437878606702618538467060267647492253901144210752077126448278056044290449337575605200242712287917755603798116524620831867900780952019964568989130498088748540333058959327251562638266099502285820177975070457547045143947326290647395359659060056200516865481218588873505041245415056839597802395828835888111908966730814236372202981950606817476999481320841223189049722233812575623473490296520826208934860684089248556835470658484444148756915492008761632913394121657738018937979333371807023529582800740497352599861748653723206769948982049724644006200061462800350106473047268981762087816932614165380471235964558012270391586811207264225084629624613337881846678130763225864443364865559700560567748769309590608292559738583410316490599789320270352011818143564439101041157646025884338437302766375019390368531708995955795229048713973087398408659155998667715344315092825373126230774301491924950770078719614723258909313341823247886543478608869594079072804136190252242640953740562799913441171571423126793575813467110344755142995361950271254796071901714629674420644589570716512569836483956283727328667701925286134171097177720459134543932298044875194820162955342239517606339964720904400198523819640368463400543808359583000263409352422976585298488363525485777102554221009375785823244968359101450169400067969741303523536835519268887383660259700931328290143502286980501577975327792095047489286668494954620058044409052567008065787438810634575438477526514897794723270693108091263903515151523647789969685420807047158245460416101493434659708323164336368504684603020601523315543844580503112733029403429312040379422857104998078758249067303378424141835493829170655237193075558910480095036062758570827114365401382004875366425167621243940057714299308578280878116900369684292377597657372522168159596080180747570213053772303641800681260473422222046455120864585241777862748354861286293413669389980959930282786161080592956262471006713926372518083158332641302339676191290576023642213077340847158767173182113728114702365121548227368585989407965628906142837715843610983122621153979824228680370505502312198684169439739205802753131624734814878238377854087382803095269106787717674914135700925196784794115942394588669256256509189624850867822616026100710954563620810915903269728232011772923387263559470200957394318999885405477462830689518430523985769938701210792049176178906416031596787490050461851485456254770628655496556671918384681676124571121837770257388832735292554178102584754044414650201070269492183225969012144268652442272442687565163685806437897624895910349606512300827142911680712858861963843073833123519137644585725002681952222712633622295054597034290657274049114943689851278466982190663868898493384484851400815503760414915761184713744976194054949974947421316654354533541029165698813967541691635416856011873672452757702393138567173027173934259260241328037623480402117531592596159875861491440897568623575780361557428421325094550986643775038328173975053882346441121460506447677445884087526582475279702366511006093451294510833291549765072455975689202443850029697362386591717503059043125219446731229306101869908894919428022596828837041112853922291512401422156580112158461097874572915663767819232999085608014664867167545799195421016517672202879861849332596794833928803926933606867235231768617880499334009050083531889643878760382681022894419460264423711590483438455397408854259265486667519496805360098531248916973914912866210563429931150365180859594119723094651716375073538286874501951983722838769562470933653713855001711173317600906384401857716499794606095437575886160943728709121263815809783496739510334808982804215562987431933945766380991654922206813216415201240665316144177387856594589697426936486048981202669943882151792230866135402716605329393012069808930396774448983342506542578425974716068202852847092392364317413008081230550097249744689352105593663235568470573296675377187996993493542152494121059800211941641935625557945840412463013704236111019713331554584204617785417359864407429257680491388037068174076355198527142633762451096438030110817333669182917341583557864866744155723137497350316403285373292039937408998845814779291762524216716021528374818463735603136687616347216022824029213210326656143459091072436149683870302766628746774185202882447001316008603409959399449811479296014661610299160402700958731779312751489672899365353910951870616732444682906514159498465658488974000759383721375591521610822920164891715522984452902643585345217878944220286698426316117292589794096598970921522460783758272384964875705506692316299161036393920808638415111556229007926138090255994298414774804209360795711040406528833340922188015057593995664946589446009780510757407819102540173727407588517927589301918738018365762628036275407054721982181374630671866656810957837644580241083230411626903918796016738611718313308392107835434005210425281974624734658619349449273787839641266192103450704715257975045653631453273821950057172661038641333331277253510714582278825660196803630758718096493352521354111741810112069258940089526356053978216745864058688977266377918604322477622588138662074267860916249983388393868179237447908372052609335002588903639686136050594291867437085449673143136081468916250112205262436252543210941447225230009798694087958769212856991765379218374613731329155716660531862371132978955789232769088932899739447572653312312228482157076515346030635563283846756564964406468957291523910630300631416800624347446127530285968417591344665337468596482299133872030235143927998730405975544922646922821858135161619857516649114779116422624611678037727836050962293608423743366702440408179371954797874391288649871466519774404686654078385013488436939015127248537032856956462147399178293331610625921419228584746990318823910435950666824812836548448141179707890654734835812869061369364558832158207044520977361297366384651730583515795615795005203718968466948665777102270133711289703051868524206057442949912571913078744169964868126823508246321801250991701220664673051179083166861295963430173007197312903850596151966181055879154067401921140250368073841768497448407127272796825923380236144285695034859720742888926343807328698894813347734917381592800899546786571299303843668389839299832775277213704276187258300192818659474669716221940689308728386721076418645199530983654564043284383876974431689790544217500420745489120048785844010080207823521055650692782887728724656121808045533098197340125869588577491806389528345257346649862192457377631490935058447856870301612061455989796277200229325045290671287117329956368754707950952365580855907932917959364023535236540963488948741714000879956004551096124106488192282409874047605172848288895043315569762980517175583576885489001160260331476221260549979482039838451730053843591327568241679907704053419306158941764219313120591398196222116792037741983818262062084240464697497191913502646363458089635779464282996934253690798351164825691827265236266260843889246305618268793127949582834851507853224384204872435973266291107078229791104987057346383259010151784390740652331946344246018508339659153950848948181293790648724178093626597653553378930687405831172886153579821931137266744588639335651406575037742845440570072461754183411991304147633950183048844177044453239125545917686017791827375365357818077071746968556937255357465464840897727119081958514766704628024187088818317846452135105816983942653516576456219070024908812003942854298470846344618524942209799324079907418999038882249231859190754460692905717033616530798618897742206739587191178352350662649573197607303567747810479564556827411719456874128877973421478347873870493074402026374942478906986544041534556894752408056291863538576063518502056623314009445397128611040978235414451220644864847113735360844154964105705303981908853249619701885247381390775839302301388335173627062720426690277823593134558575509588223162371602512342331312591929411078180373613191304659132087666449024679765629245357571900413739437051612476791098807170298507630040334553936912917122988969020694128144458605716181784426281246538049112982393497542216227452640893463819358337289338336815785710932469428038360524113670832315941288065043545025176306184140993309089508142683405540512654305976297422704258557090031124274616814369713428034520233526329244430546425408879539125867520359429263191566062905013446145215853601407052653887937875792555349190398534995531539037148788496436949112514425245230100160393025926432817286943228910175741598058823815273489449523603701405132826981993115487497898643981250044272956726364475206439964214509991141067533922705525669251186965636325728558174109501344520377517749505467314071542437058496704615948812585267313803572797641958768682050851480031340009923113987785585601849681517707383908558200286464893178211497661602286842904157403271043616305268157260814035135130587334828225860775271627773220401727620476300161309401356211118366357100003934380065625997398807478647349746807517480891901313140783669521316684656345548305685853941945892243384499515281396391008872426083230602627912259905871334315699621532919600953567067346579538749910843077224077158787011144570623510563545578979121022129629159051821986018587715427864322690983997733890641192281730283881933356986401366112848592862120376960758610147402942885016400478952258504377781996359174163642207431792741247030012198975838102304218446613331387527579572767444578683686530857289281218100048362133607816122708465094561886359500504750795560017946326897725770013816956526904143292221038514588782433665961714228160487853505177188775721221159435024232757793672351332399874041403242778752931693832392229464458027698235492487073792955119858635489244911114271749957459930345660760519158083982152326891803547196977829873171514666263180607521580721614510202750610832027826223024191840532771769794259971970182174860778741377272138869956271301639791846496714480792984981407882124989182783764841095282150900962944146247948150825892990619121402578420711335870128360100543083503182353705926164708849082360930213129340662974801995835161711422662286038240160018983932023274956006992049900697873886826458377464143325659262838889545464325687791235615293306711995768890382010002341502759643370929759385971480579314836488923373207828966127717493235879991153478953094116225673101497434449295428244872115489698072857359768447987585165310347628709488443799911614225340044741170623732751113466638978200981195612047051367612414938364836184761601658273488103453468669607293626197617861578457912767123534460265892607467248597038165310344974060005617346620025921721222330005724329027428550901322940303383756495604234305481812360620115763667395790693360184711037001299379006061006288950654977782655074120127675116433007526048709493929427991597086445689502112305325436524904264284330829616240815170052518532872378535769840022953191371526016689694717807910737510121096291407153379323389858477342966235611703021746241521822997980066522838282485904304406770454738176783293318726210450141428046997145792870431938294817245514066018209565945850556005159433834359481305822185785541820057518251660583559584256271781493035487206069834623589780118409151810933454195817528974553109990071778796722473720478740129089985551171273314438943210798287406071645303288512692742083330823311067940747451364563958932186308982168895810810518237006289462115821983642177668926825029765088383706425925639026759204526614354111400162481187868892499884230561608769537707677499550373941002419045490014446069855605257758521286067712617862084306681505044844663046971148460320508586531834113575500631200411683739798126246042698631450587740232329448549450769020934806210269889539782211413052682173313616735857059977654509814603055720499282538791026133933204707228331647920588472496214162094634645127099467954286260830818368797915949535206235551389419488948613586539002559218927560505920903784185364988914350705820088881600087495380097064408638718484353954576578596674069529991024230788880284860068067745616444909947121594337135682440479017033544128022809175292770664112275152548083527519732116681553284605840193589345297151173503151638858438207039067951263427034493309852975826454402938386317054346630733005480386597413158564159490539956112309223109501205763540716078167810722472968027247684375778917636408959501056064807212253209761540610768329818453140785134157295306637477287938815305834833148760927245120438941008492147448533656073664246137872532697120393360368279237014041893225566469529637532349170346836583189012380803897067194373793271290130240734066124448174644423548180855435229073546546500302310358032844862794430175915556137401058159549239106110893853358264340443748387797188563694456395069512175145715416864115385367040832426157674518908659493188686758401865908936085806651483290339165156497040785242841380609414569410961364843919077103991035125724593495270663106326069211741298890952965144964952459611645868714217748005619245308479123978947486155454579721156740104286147347737000337093820188101053979448587215788767120614508173983137758978292935935131460881670406543176091751474143432968244606430473362963462132590271266467612919150620297171938293161671558684201612983621275548969406023161829178621406430480370412319705451600372769348601426151911553701984149958154509364711208788768890686256476883002086297684394914403383882094204161313906005327137735342206165425183803163571068798191127159185508191915480213392907950018706232222137610500086570174890396834861822594032398063079028727109421545136520938220039622864017488494397712798686415912796813977363089288588753480210413363250829664041284367187440547335163971489994785121142078730612008123772678268611320443098687115029792106905800719352714170380781691594226049082052093371781644532008436960517108813786652036410029909314274333145586480113406968258076317022576673722277619739976070013750756687335924995844355224928382854132544893854036919996893721513377395750705803035820334801375030713792691982122105958236909292800893304249605518248819317692663758687711583945809403804906141523986788600223948385456852192286077455517110355027453576582057734802736021602795267730731001554573990768661262780572753783782615678607980882176403158433781100120508148003385444554370829556693343521174097939451449559870210381322636318172718508087696233570201877729331865410370043949553717852896282080051109454730033767477504392100336252437518106870123742864074354523877710453641585674118329597952870790863838530401012547195937482871823215502937269406928593243136223009219941374448082023627255363586861761790488600415098132442868310550757590189748188966412309841952700328766992651709495677168525938693236982981001951262935461191834606806409346686590508964435587492254735180708869115020647741165905868191052087999470590665086234756267926401918933393450723456061324026189779671140992889110722700070462578178845261904625046065536333905537798334638455751526636050319540769043803714780934999365307545838748164938623968532505446460641702998823905588134297468320988095643500528494379257523152437702716506415643853845249063830197114348463553372962529455473804826801506670243808653500884063252675238328859237497162471419374143779908142065147748438942855323460939098710187853083352485714572877320474494880784350982409181798668454028801118586973351661033403327526083652394696210327721334731475622192519355408123603872217619510838922118685145186361313651192842610593652739006254185647851144108168205493885620790112476622431149827083848303939366906971066661918670189062425102645894137229794294554682177731905434747965737600105163925019313553296494378510349989231766979706230604479674635407899760335069170326914092563547202136048347041463321056024618724153609769120906835628927771904075743003320871789942464086924339153716514290553023813367458812379105973320983230607286881085771305061766521007892617497899380489999066064574943193067866630086781410739155394460288622539490650320007878553929872474485741185351231455653529177377010618946219002551385955296462552568664926533041476620813016784069180897080909936459017933989865643998706390275787486427895346458611590686144794860384166435032107610653132818113130666451856280202394900149803405247964233271569510052766962046117137664171175015385329774902609223790284175013191363053656472617829474765882183209841663825121133183628889216646327468761447606442999749523749934573293265956007095124228039625637256349379628677668411288317613626188006287448078172317173896232075709858401829797464715039110813472360227078869503458128993631274628770027657462962741161559691461965568842910474224864216299848500748828126221256328161740814179601295862507907218923070003986194907961328355668850933615730593490743502377711993253412454356860912963208849929711410398076770556711199508461337058530519012366380910390285045002498544901150989461784317441204996009475715936331256432596745503331951484505878075754510411239060033232375726515770912573949609860701711297696663919576254397917665344124398398651522214468880064841534218348739196513827645054470660991315456927511685948981074436594821409837787697630741358449947197718698818208160247151325450977251017076921175517380446693974966426989404547408938093336330196229446738750267504149006287678824173845408681991377946565419223944953438731341658930585524795767764923654019635912194344607346162029964194843351355806074023787032134647428502470739274588957679414792465874294515209250670706458973784677414903186209248259371471475436317518450098401054035299185837710880539827189419250101015318152907323761114913919836328191437817997487895226848857052853588860209656398724572705975184567931270909268337574488670102940972678322446754960826000005871525193311417937760730793130536795843380875035602315278009453585129998204839052362293328338221726609874912126607290272523380521265959729031537262746039133163286141179446560245636230664509425608730390006904827390432501329721439984102287242206656516392012057834549432958339945423054375846994856065453124424057413091899364022576857883500899373213869422414944862538338280681020560506113652426924899889897134928918162645781348901428801037999454514598742931360948960563178115947043531192490625775016103330945487592195645093178263080209444851822486364329973995237189565205344381285793405571549185128193302041914097259808977526531460660688938704838694499059844327571504779270097359120873204157475554647352591019655301956044210084995971477331333910997731348418088072236600640300036470357118272892544033561381562717190080034720794450054477020235163509358463223646437453945685535387493208790526551621485894180334028169217640153704529452924399226296239800509263186733766503747662652993486860780639752723355547246526242924520346609673860419354034666592243506289068903157812407381465000528397513312146436775607925645208790366426691670105823591117413473268655715524327439629911268272184957075494274422713115869013164095538907968411874274697254491376076017250051565323141500455922193984413894028440221253528202591796780821755713943265285609236376592739596613423464757276648986270097986935075876036887452523865930324275975642886531697997410784720779017436190841066566172569629766742749914409692937994700194533369721405726505871813494885561049665003926236513168073527238423758636458566202507480819636784400125245629297755572618806707550799122125793964933284190866119323082782674568751820959019049776568638282511760052123612805816464378529592916002259431996274299596563918217169299406182212360548490938391821653766006566905780475706814757764877256989053235169336295254177862172500861219392605986360111122519557501654785330875536779233211136984195367804808399577982047184707508433072845014963054917799531802990146588906018040985753188700917554626835623852917941873107865517463970440135244595931088662139044168414995522982499333849851425145193391478331394670066460957904975189956524527703458272296268204555106498590417733899543605015952809416682603539253301534461415171700126551868369620490826127000315473656687010498988301698680804825658705236762070157434862283270090400178613187417945830549732736391146911617615928145023668674356492921656802214206064404359940645123942534773084851512208921678846511525992873087502526732976748798050084323121515244344554580692496452748944986040160986121850178292235786833032314081964704144284301233247051630724568360782893299657420455474967438256870352597540256321650020847274022483624544335820847758503223592256016342881501186685851052879278689806758863906368583848509434806828031531694753319981800265655313601017550064415523992553646695073986785103268535947258910107239147300687054055984842897846310452193531769895141435499617949676161012367372209423046813346054278404182072905691507850682718103058865653605956355438887627581607294028115019087973437661946473716176782318719255551961827759000040659166020000781414095040787871511599624365991854766753010348873721207031926591951462846878356155803854894691360427528642873340777822697666004399969532249577848343946059125926343703150740997437292810995757994324404623087596908617336655985779437301607203177217034856837452588182528100669565748845053734389439763121560345041545457431856076780224873562080471016193797894856449311232041753829280015889335121293647610278894871400737259325175095148662419888571722003418363579237710286549895681807399573932467347201290951685029183233832131743034024603915187360949706340223951668189772414400124035297240481366904691925394935035452879580348496463028915743138266955399679359873491338056930077477073120558628375391268404254609082382783715372891055142301115524151880484732261562930874990613978857655915750889158800472970534015168196772715895594447187747227192509255892563016539112676686791976537049819397637748087863764796154910885941539126417410376358648768818630755139123489897098280289750332023016020984764428346996465913023149707715738356710797203834965133965686318559717986377736512953342488385263787978945835985923779961681067896896438863282941758530643832197714990981361955981939691449678209791398546223850001800220625844408765216143629790801582827402932999514172591526361863832171270911473087136855609621904580730440021885604712120211253908653923231020119568402693502177275357829930660503413406595915143315208813531464559236763360853882897470952426119872328365920453989753975605416862557168851356285194066873332524063065454206815501530800237200244895985724664209226765638421516904806574997521885136010839661430789485997715506457067669911998913818749730358038934753819517528871510189484382911860353107242039435691533478456263512973945991951686047132344790513331979095839269296833360757468567174663176915494840350664963544722142323999927797733471841514915989913440336809975929066928599868385746676373375071750532661860502116416366175832014699685041731350703411764870426213559153740714143030170549508418229816566397243123623944660484252070502363276256708065233569095139089591679520895267228360945564591153108899284846131861085834512047249749243358151955053335200867024837096024045510935881142321333170901994864245286894828356656081133777071471498820161026644649647739736771832643104584024512958443197530093511800387157139117032903120766891271827150897796798743269967415306184509528626573609575205254290455917411561853053197150064916644740611057894215677016531618217369968484294058944105805976428809584494297875198855315508836416794087940343547639378658155812297909879223926483292714565141656549523962651906475701072775211357549473592091556147969747950842485519976438721354950905836455002943403067489541396365881315357051793642505248325794717296530764845676121982053890122215305866877907627113244651741186500989253076466344986529456578953755209162611418210195707270763670689057114927334434358500644300343986633471925783337010139986049817962292229704723242424487209741842634192424163704323922611587784435224627354701351487698544044387770311049170224237359301358760089793113540681712786058780978786774972788956265943755202551366352082964929716254933654143405021232633186323567260919951584671136505038322289535189034823872293067913076076082356813746809525769198502923140668400446810287747335433854376177612113720930781276377960378303308391657123176744866779762597411955741279648378739216745870706669451921169619649852010823711909116488112729215084250795344311584745098893234166764816992855403516975370045133735369374384557822813628513083123207875068519745072488763030868684795954850795425545343467125769961919324022325026173641213891795418944441906883052948976910494713529894140147038889660517224511892982525426479281178482996499914868124358742746353960844894180682646214572534902789299648596366103665994116675451668838386090030731209476932727044599720365782701032331456269802117974436365846128518303048687386571378763445147405084087726152029859241604780862676451645394033478241539348146683510109407442671393805297194190485910991062494900087765009003428574155171188947160632012635404617254460275579877908745714655001002664269520019006692268551410183419218302639399820199529402377825174932251748238466651116068258534906997481009788820753842182542525670016293357637553154374059553170306499705930652383267207629978727304362453245492621290327449253327648558515587044648143728486880082056306585724974503029684388566545194630617579592935016250350945643844900255545991896002568961541619900173746645246644052164473452114274278200152529459716680765577551968494649550778034145192441382070468592549538558222300048350422227198445386752087915027341488949327711887669957564403842596150303140003598339529022081486462529188734695440690746745277892690107602136975323230093468851871294607970284957807056140858535593606814487383564146661438877649279971463562192714185952342133606562209897316188378897645100198274740549173672440351950431162558408212696812540770129747444169633897585621835120694516277506656349729015793571711951907696906375040242985359206331360992588599385363066367925910992551803236041176034695649050367627690002768322394811796091656785790370772617073443967845713667211039222237496484321775370213323528226201930887184544570799593674693154340785342428300445736429366372262771408897688478372921575538894077488791037081039702195278294310032733722376506582876967172418295954635245499102448313124655192094572518460710819496853533845750099857836648476084990260924651756111077018659772836377668720000507958771087042269262455298309744485737163432688498536606121830248394871379328639809784855310502619124715098145689634923137792138871139485258986285075914563472146807466363945087828502212251148713553573404495844588556003828619456199448225179560672352660729332145796077284080973361290315245356228697208815286180650562189710471338802346491309656583081884800320242338293019579718792269328091355477399420159891734717692676674208682876310572158244810019219447314115802801706786447072793569938490781254625995107956920952751260951437300560620660425707237185077873591952602530623327346747440613729139378378750210732365636012369015262901864086077081416830416821230855035586263124814134779836989586514077811418284274159621043414579050081438422269878258216372689411330899030819266237423925940978922920896510578117140160164436079054921513085789113422713613110058851976284796105275073581019712397706982584990943183760600810201812602361355552793012898486914453662536526504675737051847353069508811838872067986705579676060478437271075856847834162468538661705635669510851254910659075668733509575557288964591244086404494409903254841682290721861126534854503061248038356164303203248289595242026268482049996222729052487011706979527572710713237870386511521762145361969655667837259622233221713613969668069325903431531210592104236914128137957199897575596545777486318506456185613855887088971784532063030193700799826687118297728987230748111477066752908678277208580461214294182069617673613012672392747343414893248884918824028113706056270129789449121586029550696303773844018139733283973348484059821167739782874484596189581558729498175034655967271452936794522809687744059916497462009314502521626664516538565798228195352343250741253522779085253999061309974132939097082159636479848339022156033750828380079310306702747662501930516699105489788227916088969459582800517253041584265685946521853266955186787900216399896759298763361365322623038997704875631935989203792307134680495416521534674161088493341977950991211016405154460938694662865168248325757027812334379458837806766385309279385534286869118773057299664370797660152983559906211152071720165116775247142052537810310813794517590125983298570006482560105969372700686487340348220630004941480875603221282843307183714340351697405279681071368690351735121503938361453609944593713874600634165117505834923943747837375138832745483509696757063861310585312089051371834201912100653941768268028216324342579981562939106505878286552640076340877014839708675964841990992110800943466927929654081924356896150850994313396668588836856288603510305343374120237863982271329551491217580557908365196678260424296655179109708490797748760373453276042690730195445093652104659941026876593734196584836851919110591326487101045509772355956186124480995797156464500408767774745628090814576509597208411683811777646191323110578735931006177126547755297012654884045507053793618520758506866668803564960484638737131982492404446751191965463816389460297051209809178427496505496079165513998518722857707228920943237522372846351884460200818442175029720945329656884102293324277038496290348454737339607795030133922862791810874191576736049737948176422974219384030367489462420902411729222921505886676286386972037459473192152971735959027199847182225357103614401489226680488889453155050204052535844597465317739126447121093540373808432016939868730626124267033456406944607161334055871803876518652953220638256130672012014114447774556006540721427407071202126162963710109000110228996074234172806172914067066779770755272621050072061844562816939098096800276827191966357895802843294361864962646605688282001848825117309868696423186829773031388157790843271069221494982411634922700212726534118936421316521573655730935895345822381549497262728930672299326434361496900336814855281067965485146384113031141812102004896409816981221744771903804369026688295783937201796007334163346717707517393418604989191381363244572738324309306965437779053264220424565673297792668807461092580673994498122322738137468497655948393995451402007733754302825725421603406326886901783193443730009793528224031087269132657082710664576611879995463665846731228428375188382324252441598912957277602245378119446615018035716790201345441251767814226011080498860624512650497194694973784300790563438973803381810788127431589947102174952163533724066299226147621913833347913602302810179720747548465224343992169277270802921508408376079302136341437089206399395280512986319024797313702558000601339784699339943033360651507890035900618809683154885330416965093043552503527238139485873314985802102637006388152053858024680827908166802676136453842247022959086127400144584240544861802608439497324503695844972018878952670483283844842664593894779607009472264286245075553101717876728928061909425506556305848704420762291060697286221112590447813781928435495211318885231447879787879573682692815073996640552581178764199766404378155150111192976177892586204266636408157648353947467871803290165525312860247244010702501206538258981328503000720702129722951711809302452475620526867778466329329494835526615194853305437775818606548585550431965163518232053422037653723209944313221012982762919558698469910362991615895962107451956134775301842497214278333389697127436041281826056149705813469668484226315649430046184514219897897295866634350319913418838688235936564557946789074993068905872700516408374839189771774125461142964569844855257722652271748541055279158350739633071174566638264438168798195899184888508264789816988819978090229327811909177852034311064515354928642254601780883518067026686594611189284409929128308843244555447071403356586712238895282339100582351215158706145119946637942453362089231789448901436665312047200561050790056008210607159952960602533892414206070698711898799203912352598297441455659900374803488822682117137930055188927947155081345293982320999512712795151674603522806089944229126567489122581169842751014641443734321127138840089055204242331390036632552235888639272970983348599619885648536445223917123626418616911065362034651364768360416600020479069955509125265152619856741053281051021136206149162983532590234321238711733893620707631056233040010301417331313473546984073375488080380232987333930793459776897212341232615149297744297337194276520809288450435810413840022149347375601683124106368651758965249405142631125773635125169679970894293127662285464493805278012148429555199407486323568156363333464211839642649664382010784424135437337077550452342178101613884286223797182148480901744225690089374223314685859209918498854814618071647716323303900463076942024021581967095468064026032472774333118146964514574589443012431578997089239425095334158874649046659463729608542737278412851194747884190829652506219337248861275912404734054281337043699239053252284160316995995792618386615318570403660459469746125229090373319697825124615755273644598720065553315126578254499967549755020904066061019832478361872262393211964245937810032588751859889792076729371156287516392172357981765364756556305297163133449464130381392935445648405196213904133579953563603275800671405864555714169345800384058334590239734631892970535550996004874857336226598287509707525437800549869436735318250843662900985622862397912092911994589966293119573182292685125958396726649566683445950379518315179926800128800821208436864107460465115477789983147570606185133052260944179929626614044235475643401871985160381397029957298119744578796822369254353051624415367255856111466226313937785434710900648621082351026107996092213389918724843439661292424738863592349681529456203327631605894533560415742076965476599345493563877217405483221489614422465278302450489297433908349290519677733333320084217266519955421841377938279019838561012210356588675937475955415773890937035760481648300898829166296417837488706331569322247119466449451079687959635850440863129429781024365014944404422033447175955197677671875491646756112048810553519589402713242163875491041385007884932817111774418743135333632337768039090850247271735671271188807300195298485861818773858631634351362330210493476655832386130888413404355165810123966414274248059209746233994552391883132643105694763735729745592204251796972858067185315668878579704926051442524369975895452058112803837513854114836198779961725321069087642870988425537558438853456844151167006793047200870570294513110420084823314482594985158682539283653132890354560059881742614783941690891832433506595441021748582888319883466650564954073620781923408825869888206703265453846856460259460632585960157691932657348415722895722752238045254572758075078016097282380173232542533651552866274338737350728660090581474198262123302958299858285688867952387595201680700428813126028019157507511522909688301463947413480575208467524637927010521480868944391632155942713827416082963178971376866100338908515360664310077189743680241320207903072364529254919598066931868330799363102150688506565082989032298312240939775371329578211923984957785924987419624914772583114499993598975817970996247476251628549826193105412189194862979794215992268539253961896709373678913802137667618205807477027212909079035792131385999345693438177082738945760034383153400269286292040975585191693875906204071444400605544571901875697185772239223198355345332027520307651051850879611122442283070253618323387285978477669630987332308473653790159517048047298560146519055527410988338272109993960425395418881554375286753392601277156634024831623538668532295757703420206707090052962210376175754406250321019665418624344209076661012140178983884529454534689882656652258579464822043656587646951660301166840841612781509074783116547366141698576459488375994982096396759484399952546493769125496858305975085519546942221372299098059536631373547381049509789832001270955052789771697256114668966778547711166598646430332030495299619130752596653380453054322323476777703269812332036383414967680041298461076902681809164319961627710418201147433924936822573768128496754206209876647055576230118268940867320003614720848546615035296719280524430516460651042072575293376841007459016463460600363998937569684780350723863889786527086394223473523917961423806371106539047186619348995815264516286595554244260395709345939083163806479646793766598726024871119845121986360151498480154371369428453431109837919444152220914320935302283297521723976830848738489811431168745222573055778658077000061895787355487991914188197704704460046305181356142558885346250372331528110575942224787658339470269231131502128953197985250944778938379809220510242479509608996248875662823032828012854156082217506359238989937706052279882594656057089724931771630507619713427605301260532058327563784119907107029689587680582184291462868797684777826206509101800150388235468836388652890034761690505114687394052806234203555926123032104510790844890656544080452390715192100413413147091763343015187210324855625769001061975368027379779473523649051625648745028080208665904593587162783837597298994099949500223019331327501691107377706013427908879282458585284365168798478531805990175998130973073908569018896285763635172397687063057721818356543608374378648450925596525092121653090330918222214480391093632108773858226448689823070159669713205572582852803394297896716146264314353353423999839629986170806595250671215372654521017237434031104148115752303417634077057633257818698576713982824007777850435852464904688158866642946923521560218066187368773896162117108359521418495137289488134697028326130917057498123324167506875199683234200248042742744182375234027110090371045059093099581024819532259687595111720143651973392242789372098381114027433716067398205248706586569898438943855773417077687068013860008278958582013278331843931550367376401556791680392077007167988336785915349201497192100020782048902767648826757650502263342964229158422465205867442122844862120429089193462361529790368012559261984687368255619103184470821349273807671151095962522403318313725121301989629632275391579899431031202116845100508876387874027825194060020539631166257071660311848405126941044165373890131044789421495467775050630481317219217109982160658228217785567586911560655670501299506516329697847181686590490497280779204921072422839475046632566222255715583905586813762907863379121912432930352195421124933182591951093279691467217614131813128962173937527222794050306009257368062127975617522148451679767570854966311864614833770823874408943558918869887892383090818520278144205457501906579677266480545433200645784383340760227117608855197394997261393782477873021877153495371468501628166567177101762313642344640674889545386445329513815128451654380380862068806174359704394110397218222154716349646067749630058633784036334922365841509113150225622518011160041670785361667120092773934467358260748406667753182722978264022059521690337728435601249361676898621477935308621831203806095631478386593161114774926892174440968749011036149291042695213678064327771342855134874965449612079312734023573930671288405707450867733214172160779716156188536194495259658897659213707111603537271286646357573130076993526152334130695652969356635687529547364072902068370593084916673738184180213046564354392710761358352864012459999137518813476372790699491045771130434316389439703933212793357387140360799889008908771222056619727857351864852696100529116730885427807263665880936796722167773833381813616091751314474037277273346070517141276982157467573860027002109049960046341915557550869061650922604444970361472635916925676142600728384147914488325494766831722306211723765131024703057402888042017270144820066178575549129672759256110463825386907570688957253874903326605163355029230609856582487785029924962964495762447251868408674046263325019307874353440495555714640936355440487211573324380556834006750705659036779815661259052547960232993039672228864907101321464159570838145766270254389790786622492759669829865427284687450320637282282138419515431171711867227031961082826825183853518590321021680445207403553835473840240010990327171623520107299761430648424962917673562747093280103247949327204736696231856872792069447654073374720086085280747796924140986379789329830292342872556130426109118095860377279090842497286988251523852833656632035154477938512252834091335681440506544859679285038311137305400583712767687227661418481154048179860013161463967468355408633721408303973454713486336793344003269847330120462519066950964134278014463212909745892656970858817650371222445364854682860812405086023705064648011612218781875649331141321572663683641376603966291158155898161225947611003737533837344102409014099852706887930577075060254574112351275721605220750388217912540453606702237508622656079874885038914441972068432443076850931273291725339591153828843172801350440332860385312058899091561204207722939145431798581999184346656718494947095304024358271569518170346827604019481964379408159037883543908802597323617133228661062386377807524473832923208129206075156111089959239365136138151855193767024592098462192392923723233323405678152356085424411339355811147685052523339186006243636002406553302146113536472506127221747979467161803321316584281249353284034520171360444114611779423941801078665058092509369357787116704533287876944637888639291340960348480619235334966722096236898408379906628318035221635807639806718042267212774210678630283245114871303722366984056022449598752886784159329671591898559553968232312526463692939750245676195736191729008039327633928874189079385929811648902762632294384993651458729244811775930704653995667709099442110899112953507993748034787543471242446578381570760616204861156872247902244528012706509253373651874831296422098603623686514746588120581269919522514207252089513447971067585570879716310478134009879169956363182449886125205377547788780452299254631997279257979226867563390282687824186090950958824612710247273549840574941522085633283947101180892529303999671373873986611076983232949121015332423659346810751336153908490777244760542343499031082201292272219601910693991770268824599770114781625138068315196936674772097269166359639125143823452145940758987972187701886023519793515156429296789558275489728090406018171946197060297660960464762985952762924783403031507032079950932385884911630590117600989633793060565018009261910049961005919762037269979665144524873467850043775699108719356687456677992795051184625988284517270535858579758906488739445198657199603365878920291224926946475801310571282522108179063522197204269135972642028001516226800842970936350352459668073407140205964246127471210975362553135163762203702821830938355210050572852630361445433630071551128572268530861093254665062972160109216242935155882934636583056479134998813878992920986640446526789091321206774430364151049270019687226498691547326202622384807892244757115137870814442929108707228289750160282565597703118810518755509004521048094978693024921968917195715695588233734587153978086396405423199119263445543189134009288976770129491604778578587036042024825864691334782972726407316031479553041659936030699663246934048315512873828115684734440841728198306583790944612307426789526592832551500714184184758003807670517281358876517404907032346000059670191473061870115379282295551868387435759862475628569207581697857503928155325824335417661894170423291213597961176422517305979134014358575310355106828658467988076024545801738234574890486852292178123733810595221189435939850671400436082974436016927447870588567783261886734056095885984963009359470493840027969702808640637519967037274473474564774896726276043718943119940701469320473943973506240632350540550098054400671632958724378244439350699279212830554694616013463770912061709714673886446802314755974650428212123792037045399888045876104604037961851579670087736066657464601533039719306345450903112660640797949345715341573489316821474677687619032452703506407825713510032155270525085905718604037249865087553439418242060879882388562382103067593929910170228290527186047330557562378621380486903897633585884847865814551009894324333622722524169365874510928318887316820611019244323502868122673657869557141109887028909305241484609852558681194700651498350544982284825071332412236723725334277920703585492341331585520605036320661548215040390825636909789510909319741160949702742379306171943470545400749253488464778509145744918898457354865932328123995355829039894670397211013969598961527812226667364591293172662445975592326381647234036804857272394294697676933665475264038884791538469371803866875811707338693970688924930982529778338283279830838868541879700783803183894161080001902006332418487706537211232331918188410251491004616364494826736417573964836767754444467271476294267166232141774634928079515177749721100262852042328480816174028438251024363166055084674971362318911881810103768105861578938786771666060648569380833730058011551392259209391401477711167820583227330055683903597594766477689735114912312787615120696480606597649338545565329465610394700300960150506621558595788815391433158564144190506492206486987818216597605157782058826295606281874054303626015906883129652989899884653133496006501906390158257126451223261308617873078774888153681395626080082495141642919069868692338707931922373871053208439308027259942924850966591869178999803985502232020795200209556549433784144592654159043988540641200250302155410532183370512566668431555434605928638949761795067428956508521793197670505449545208849258992352263159864768970844306000356384700243040927307862693971508857741542278866281913642125666197313880990288530563407147138832102847451820400257961604555033026873319253607611700335502207564076728652032051132275600933787216775803172357573496730976221745943926591698544712087251590444374070246205456042083615326107164164187646518804890081322255979411539279593437844267768853300968971266996116342345162774350079158120112326046149417085664158918903816351650757265908929483244755537205100115758767949625097511436343322459024272848067500163449838139351013203594751552816330890590843588302599714660165437471823030660142101146460616800341622143196242097719010613445314734137320415373373716081586526377055950011440033533819985292881482815984793348115957773394861737171146577471356923861703127539181702320814255776140940035666140823361269609524436059491442136163784857422993812270863466227151721243924074558667962104266488857470431151412017728088689426970711361735177624537096385549488540159656307904176323116359000205252544392065741032105514949027186036661349031245703283677878736088064912494534218731866732095537638900366783614199915543328505499360199403735638655165392241665428551709559053931122325001922055132535372506403652380736227547384203108553928883793564370802625256842831667556324769271843147797327990383796036080247162895628869105317443811470490495427452613601441082733417017007337857856937671131044117849150127071735080618090310855415246034952453902728355942671777446317280792075328475975123371108520211213489641065636117119709024034689833342110324583414034833849319853131948112950178920148584905238626422828823002234698866084456741646750827469501290530526081025325450414963615396780299668026672420505803488240418737475428078723612719241568401018063473223530508580823402075920671819267529059274946885637249765292751440429485174046263652493124573301165185442358387255852892802582554409610245186764461453472066689878600243021253492511851042413479070818370013288703543904935802790037191135748963965923325693903272592027713900202966803282012473732934918883529939372899592244793295346865749990075772530008279727588137547445865893925869172410197683932091744220069433064125903714030590087529220935683636007071458910203753182383380124931620988044136188542833542619595282910634126729403821826681243082055445670252010771858118858474822061214009457558665598388372110890281832590060688701336471731379410900358397779749268981217401734494463547301450522711811675365084735418545915744658048427917523905866981090585684083078514297557194452687293409006468863927934025490121581406137900215590200380042658702146577603315484356797503132014905631930281477169797440239630487545174934321295482994052838921072708104926795618271823528925948114539652646532660887776395011682499440049442521202745340192211234103729313907135713383508142932377048153918043417447209980483474704999271349718354875331481956591763511147085895957222030772641470714410934980326388680296917928789335509136324832914700296938785499896757566402203298508336054327640924997400423696605149222959567091293015931571400408336877152507363512915916138366531843314655924170599545533536547209912341093534574725368397353352330496600720290764860897822301505780541255992256545855315775388214090683109224499617443026885953978202604024162903509299092104126363693139522133256699430833979917841527103298404162565641620913042454990375394801954389927824982649246170231886994020982168389635161830402907147284070054951301977740269310961765481711697268372686151848440335978638170045712743799762849674346947160574616509833215188000892141625418169020963583360092579403543422419428055717080336829114927172254743964909391729171816533968634028755993378266759992254106993408261548377849550070815587505452960910004442435546019824135814329911085036787259935920050808353874514813700538750912419651546519895085763643250682941205652853852355350157327808997761324145904839683806717675367342322074903058573328491231293517145631291607730842220603820327921099574687036499158051748131525210900999260329683019375981112075158727157176184425804153481474032451563431335224919563188972602756441753976690773258817594029592154504768705292144227346124114680135211117001481571759903776007517328495869365140019880735182473229264949231033689231553811508740381736834343499765529923263703321799175726416027067959470194956810527836652271201852825275408874261605469572790455655714918258405143894730617870495177955643287650787095482096453531445984356641704619906262920020319956579244346406017749109569613284050313180810746600505152632549368100142545822005477550740118866833620317715262668395145012487019693892231187602700362908283269177201274412886809019597159125317893297594857465862615238866524982426214524967440979474278773069094592282794346001663987423863787866144022360745309910715734258037717318645459364509979004497084374841036203092665214147809106139170934562236493587736033411941203919341596546231737445290023972991210698288590419999552484086298781018232646563358361142179252823792668259607822067695813795893845398065322916265497677711106490286859518869477751726801722887213120657346718977681144907080894232622007586572164834582299019256679030503770354618620598534534290558233618247707639050700130870017157039000937056008672639943103349998559757719156168291868984339523904567938830705116847176745905726174952015054048657444521975154664148247338189538798416012560815122567026274809346268065783623326448786107208695906335019066257685336336031086036775786962328342754543752667612850705417189679431324665440136478502425850685906989805683396800278709800205568503282494746182481498318135834591802210742239279403900206253924659416935029022819539337445723432291688614728397531891067723503061752090450476783200002007587335735950162060325522586069526665563291285880169288407878613321350139782366696889704107552476208016466904336307055558844806183964358542524681948301427388549883516836065571377326761146319526705809752210802229119961886165532258399260994645398147380321011910819956544244408321973277485777799999643793457300937314917902213881131301923511993306076106201873096539824674280944397314576506219625131584166976660888801926995524518637414459166146772804800503315828621121510559124100391381904075767134863950506499134292666989922983872118742576025019835387077258046179532076491650737336676318614586165464925120379405954263790047330310526099078856263634568776056654233292537410508681521500765164276110926554499784438931637581603766876397065646044547274651596011450236334879458245879704690836833159502030083618572796673149302613235942141006526513190039218677029456765864441112740813195251431980494009634897089765666933483901265728247785959195401137466193227585210671646740156510013746761228258710474753176606515443498877412859865688409822052090744991157581830918785456548171831315965701616217276216047569302265953587065085711539555134778609117414515874308549058328516058477434049183396834557999424015204813079655555243056424341444294292808828304963409744269178990205898231513151537942874109478565905263730655097855068668526260859317080328957698420402255568294970437105737175529474068353210907463113115068027608665675709869312863716348497353076279002717876955300719312106162441644898087229809848173407538728510134770921229587359838458587208922777908087089086434338339336329101449307449948416011208912958063345492250666010001370020017279065565518642852486696847141957068260855172865211719117559652008262966904206305991895124814169053598593080872170856747163277669716487257881147721238499928774407200393789450243869000017940757545946815499849316431020052959241302381123951966422256711567338749610077849592898328632954991139241848668254189279380422557648760878509908384366012279938665645092934655170929930999844276949989104344331159597362011886806117969683827740321337359206382556600804852843934403832285768825578018217081144429877221608026896519097185532266846831058527817904149327294530397962495892328107869000091198823689738995028200225096512493063564724579230593376724145948430607880255120015293386582048607129595045814759466773773840445732652875574124182277241264214908118737512629858327977765159237313549870428112189618224005672899801128876868155895053680240055092284253907100398474233033153743284264092285365318940836689100642161315748126223479265111244348132716133371772545530547575527786875174370633617889772743681794767035186851232621795042540377170790877510693155359237012491617934423072268377537975211591776705801467267939242817192680702935371204190948008833533423012309509714738812882520168424489935635191378284810165102625640274428805600617268314081093537263939654679441860108637860235473383288985491145552455432589059417921124943304280051824092194981793031893653044608261864030053452248354740504743326257409803928598356493900639889389616020207252560716940093106022111930219654141966344771492219403608387430241032718086981634004365196122341816759260903341362886948671441142022717326191900354619979568674803952799900100380385650271863226064389726853702590369103024354252615585979620341700251600510287991892306543947402585418010157145117800803972252957308086741156739551400728375109828155362330555975437931448087814034460165513056753830569101866455519546240211836735874286098231961341213674739728971577644484204601808925752580376337506113451099563024171450417652551634477361413897669862171244262358457968088261182046590527618057939252626735443109304582899009607008811624271579545963072027934318350037533829232404347127508043341401623024297704249544464151306394831846588352094664146003644929496297594422359464715500037574380281777330251560858420551985032384486487226363571848137617167418436780920440166044503621137909597558658806920798186018856677724641311628473170182414511890803293402040281401398807971393850925757806503209026812637144177507475560903871677142953385468865404965316250326801521202839438067711995665574232832480536422792154699584553244041331131982328753222022091228561742178643249156559674146267721480281549480547417278266709687914584900191424163388749219110390177135907673843242855562216200789939929300512295924722236261943187221220308533047058889436371169142068041446461823640065086247244016805447266476013932540128344541703095303456663545409401691660739613616467710701918308994651545607777705424867767037513518389097157483741357256402362475206460828944266563033279254762037569971142757406663222126089067575075822288751570468155492867253841832885005633593442160537939918092943611446506052108089509752406027205149849957994416370744075224451759316891761837299880244728911030996154758736430362813038235850329554516383050449105281780249222130570690593138654968602118622741615758110743263292074429904425219169541228999442171042520074320815205813515256851911728989447398291677806883299078692296444766710682021041845482892153254045700265758584577887510904332037688545289889859876040345816349087023619793649489425493988634720105198266978544737580094880437702510117602973080783979939795634267464949081346638018392916771978622934321502822632572322298004149065070533901138505076611631237632620739682329601923228535696629470742906982728648639574122710829270632025408895744730343913425700922926113968036229149585005688849621752578859832289312560694378604282342920889949055687551208883897005717331968814160113060282964846970860658464329641336468358313220600062977588958307028803525533329788393535121471914342827786972849060705349073434574577414352724862266079136276058524935224412999452752004159140653846364933529303988953753525622126770673493589793112398552004559718780538834828914697625874447609628778723088293426643561731661230244803746942523642549668176977722137429756538942059410442570279994262237614905299458143387079806628661870452839978892976455972160004249916715365465567825691082502035592748652352410127174719467928800963979390542917275547874444837583522843901041851759291111162219978772813098599203433318555023467324128068774334049279487838750330208478915259970524450511167493812391665480614786501032574509106826347095347509115589716666197208051543030522271170380105057625953619020705273072320737840157547601082951232851226826842926424635199884740679886511739478334027720065959143480631973613883784888731494112398298410252780515236772696170359775335580644952660690244494485840478324814897888790457651751974402257832653140279927880535902082211524934260969675018546325253617309432673535835926973495118950386213974348513686710155285946926898221469372837429863985195311003872165940602255601486860052999195123137224400038000395489756514539368137252350577760398602135831846938140307956280274192735871441193438464544543337776772444823708018936954797972127308494930471333201364083452231161287362994647438524565865517626866732733763619010901898053594957680550787395355302336110490632439121585452983480658589925442101173034063084282770745793598934801143374190828840582771343992747706636423581378361892363968106929010240312558036977599863731458705383478873084434059961125502721087493281934444620192671969350528483590352504299768212834280457189393811645575378138646302277016746887030350432808794201676299508607826518720560989670533951220066123232634370937327911863420264321646483127594416006182198984573728038637572711616349516545140492870805856091074405673299990262340991977260388457871140796544200688010373584535225926966890190374133878715791392483553745387942849164727687332994289591952524468824836580303075775484851035097013744205189952440403333263691610281250987558824449179475606248273044342469415117157750697340039381316010659864503915333133670158970457395870763173223789102592476789156328613690689895375407096693437372267323689564237764261791329203028714481362688904758560233346576814943315968786834337793191046823023326676160481319576482837689207486690632148188019220852156088827790596259805940520509142580306525677987658551826682827745583597193101366306174141666572787139250315624307150751113294284856028730704112918570519707135874871025357219827614455864323660314191513091576684913620130461313016922456865913885163142702148761662475891243089462385802701776448188642135798094119087129119746878295451133111859023983890750941962763339517962708355198079896303824571360004112908564718107467361096978951453026790745469917413208172044020735866084090503382886788303907406633212124029906804273187286158659323587888036654847834287323656626794692108963432945342543700309824311293802869883339733693160534731667900507997301100861730239558994346864531051413520423876056160665200452412450641543142343222967360898184847478604867172090019162219064806041363799823443925845795410096303144664607688993414840541287055323785814036143640103756198599124827714297706967789389537802551227230490842041049062125038149823752127180242037913366460594224616456900886343192843052785120730543264659747243459935184085786241942847601344956082691924085540321248218557424563709166216314968466904516420098828979663453185394213844335067785954280134253924238163902329035688547974231097279925034524560079109568908725314344822012755266912063842879986677814677751585523947787891259747948269945584809450265177333726479185044523364740930949696822823022840895714791506799571696652205617390917958720667012255656877683205882640714826853370089651398977854674490349187511940836273606186138413146269252611677306990598080953868719460326788808611414279882018202403213804510846939115764080255815565977095431456229410432190944879508066789317189771529427100220477976426502304036943830317542855878579146883730926897393399177913405481723979495933879231464986148900053163990956530574470214757070328950527725197679304140899426014137531531900229853790035676352600812390430265179240061071796411034291131657785463724075932995610960391655406900784625658112261922501480670382205764352708030558528358039104450426888622809569217833938066668668460835737277366894947996828801169316191320605037195558119766239263386860960097245166918028692076213261471235062322978631489051225455419881837110527215726932463658233835485553768760286366030907869448800266490725987041447258521992215619517512318428240554090843446854809297605279157302402867380461030278432344039098214598661972406364504857370833582306937940203148954152754288276855305315457312888283593249540124055474807396959428094785319527764628516919725743313756314237933745124910179818404840317128150827092257447987652133697121233047159335590844995424541147544549987942670826238766070257991853878589246803979037578044443582703437912848701588593934019765188148490264829803439413246621545585008422835195997511387003976178605571232183607144466969928696190289923545586065771513804004599934355863746787231995289368172346905206411691587427710683850645757724712248342355709948741228658520544436286354725822962698628304493025454652366081129035031200879143095671348213608834345470812952953085209327819815852143234971985542210804172594451384448769641581246422573333695786386035878347837336853606599069164894872471124770607159322527401108084448494371641063641062178661837749123789661673639839501657698777978281626825382849126280621054447888021663059794379077604043912163739158915600957943513170158547853354490484034522871457941595522657234785565693782355229798401446752492076458971165350954016489974551533274416026895009935274843486830153153950376939185323282490205862538184585896403612255104349779569306221931431564222865241331386438740943551002857884131507564473264469142568720090219953239785746416328326338823689443912524424902941980019911068366538272694661877010825280842844162419622178718302214781100851545563972897640560557029235936450714688309095474048864211189536299599902840569354645161659084593591779725865367677182527965051747175501928723886097644317235556300036643640143958597789125380024007463454047350227855981564267552647374539189679670277310914204945595891394601817862909884116019753202819513969732527284562942427085655720272924358161837525893073795031602533964866345845963910506065147971637109793995879150989730600468656583787182416138304804550456278341112768680855775389572661670444676284945615012357544668403114371070238667261091468009336973420192931925970935542544775698777538159278062541732716102543866070624933465041186945639260224625932716325590537640100503570279844101718661266606641328851469205798228665266266631933824463400428184423247931219010258151036826376487652101134798888069582070243772864671981911768766833533528207181822678243883331951944037927730609421478267451649956580356501266717219331169886850450793653450589738640093850692095371482634978836367502216830562976223006073793416308013098212272694168589816540496934480614992061237682533364843720636301020932561992309165324264342198072301683981642857512632841692787030471287310338189818534831405988071831154846628041800651660194637495440020676855060821431088379945846958776609653292721886289381703273624957032433188030535550166076445756509658003257168171078135024520841923813769437586233987597079858028047217057915434381807946630563965475067201245693916622349275931279535304706621832042576644483610895594522510779391495794023626813556146126936814664558240309809507537968896252612909292401651859060137865835846647975891731701918098586438661098041237175460945598378567856748659573243304004662743850456367544203003052777891756241844154196741570982815219368298661923792525732603223046560111087697517216586877411215753759388533284706504621581314130462979701284971721686305372728225297948870575920793380027017535826626911854170732501993150954185753322395232021272242277016505230499453748624622297421539400572992071315792295885821139872139944647821266401378008131118295819821557954868633539955020319398942550135921314353090422318999296447999051994728114023943588659749201376880304732354673978298647930768742088195947855310354834403369472018296078735625164531963064204371175097014586969620240257381652582388466808372907719656086442233816596955416023152640833769942354508424444575124523887374839538212324244162771126753445185837673198904475376144783406600441255072657013546771448683678368937866522642761696393013321040199347069285472036494937313980196099571829933965489356353783959930402324093472312229961363887837698507813195799525964994053678894867833244016770133539541193048013428286995073130179596403883464613079961303114349560923750653996284977790293099223983534617858302016054050015429959931566589447010124043912259450025975374850632408583550049448638729380098237239529857166269126255537245106105958660580350750449469499982674282505733362116164652581363985606548674548905374042093642288762747208719865869955013609484707524969558333534893430062981835081934023237594253851432907330325562157753615004758169270048533878406211934086668615090567187268684655144765490348428130866693794262222413548587888490186611434158975141890558265743783621834197580943257136830612841084856102584511399705039798774322818418014019023369965388879722789756635101797789295497359966567446026197723183268526461126636547632670512870554977216075081366428158548095486717462116631245899821201290377896628271940024843280549459920017724661186471327887390969290191052177845239180838524454014658230008118717462153736264141856489375155307596172198573676752475627670003607980154229465155130984696920403538496253601597470397198710309287901779268337327742299882736838393215787174229021282449558368117700457431581379210299628886267428041642945596671687450909499436096662830950494658791539523313088691960613643433071621105307353333040920420397470005615018815420007149907057414399513067423016295118355989112021228454670752025357314323062950320219033189718305740119360295413933628615382473409758684477552894948097154204921696796704472125253614963075704674276655992223034862377407019053366376765238609256942255128364391433734828844191174934207456471546566522899093534237649002593248178728007870706408937662827361372315618499589244768337835388743363941433631055230649571980846293970832908917048118573443059464530071692231520940977987158526940046543744900221385032449056384973953146568514727825775125667333039971041248260502065107374745800895671407333688973689670935287324208725390706285201159940260684666723646812318410358618672175126753011964808848953762746909610372269956947299678035565945890117235142430075397662432861113786354312351343422645893236572472854805435385729283081641181726433327776628644642145651703732398048477482001390643605338191926012066235303878644472492764663493494957065181483837974029204258569889825750471502001762912398540895346857556461537520377548886334813411084941798282776918901268960194168733182950352479760401022920644354469715255581771506994262101658851094744564518639597900752879784198934985473889471677665405466085902693138220553391137222080336612441617486118429826084196528920202351124224596487759932171975249613963193638270863908252469185631885638044969814993569122919088266240794416173925826979950195913602818556628093527734674428321493639170627064582578976141290024621925252582275756546036217047664898506693431016841563558255300049383683379566290192470863150670594431221679499633521916986400040860178657117341201491113616731084129386078488780279373591404106593990835148902016762806512134983198667283832539861052768650517573619455150322607472077482297589180161309988873739852870038732215585260471753907688526631779403570565496161754017488610301779920528675653283248696495586636480978406460990858792340596410682658210663062198671908529780472693136053517657658664734228443428502011215779784883031242891527442034079198832960188006260212031069140306533978189200797299498247765728254892115654068711772636189329909048574281728870332598184427657720277267628643599414979892562576892037252463477041592819160253511234547227998345568330966163463657413390457393340568570233945105421264168109408549066319505815606384237278500296317305506721078582280799152002368351662486790281544106311869140238441026777830959570875172374756771942791494750602666700679459220623581646557934111904073194653633976417189190220408950776309924237968876614672815772040635260048929603080275313481586175538842696011023426266243065501141898079763838012847802226459640116311236141593119762280988116310763108295493878563786584962385691009409968467146410515526642148121149111888538360009729059353332578453347444939606606768481478370360339022466347533132142042726532057854411061342831400433084653631825581376210284223670188105344370793171207847757084085557116145493232537792691258899391124601162099690093707911861917343416361188718809470682908782315914043598776380517968860720760806337895971922817529292974931332815056871735306162292475403816862322283797867516428546215241952904419062573723362208552855831055893959345859849507711939411763128375806373117919902949266612514627632389837803361881312675314792926621006394179303197605957340121375705799427679770836572178734847032171555556858935763156911166538394637911800791692928230900450416125036401334667888003468104900246006792205019342102819477669564531738675977813556987678272546186288599431088555340810712021878708764600233372447972489941811150887842664068345703366659176552375564875578449996291075332888642473752328630550587887403008277317438395959482829142942494903969596511876050535539088235045585416725708582686835010137073656461107354164330516316433502621851044413435554252962214443522799391124528992567533075807340909325840809985833131260246405095559953521701657050536845336279465742522340535642825207818581376506498457606008157197896984602414533668164750172637744078182704987031622051827755148581625405153918327195480666695198533357899618345181266735739242873504638754982628012885116044809770110001198218586071886797891019339711074135005154349373034276890021281724542064020169943578732547365352603253033353955154951939176953985817426888202283717101447045500209761509025447582730361051702480187044387937825816327851538207437368238579326451349656865109396190568201827461523728551782115379218569323890414525933826718427456599167199153412814831778707880150200173375073970388758228099422457754080044510941850901001516709344414461985162739097048970132600481311913770047042889761007117875692015130512518405107171921006339542221295834500032666656698627893609601985044620699077393271277951871622171770890087210119331809671221052723661412194217736403641889199527176492243810517034186747052142666143867958556954733004438724895799613107302228642631855266456010550850490994626217213065134807992354878487519580663285153844623927653636649702412826649510509306821213230673381698679640724304182971367196822308837414426835618275028533515982898445896163676727013604029066239665525055736420779655008685947224528314275598266641379561820490962575770121963512071388317510819913910096485381089701813716273824404571230495916053362080472978423000385527390071548856243480377233930171477581825797679714630092300337040152025912363090439734630370242229730465987891317592887368814177730026762185269999202263722470861116150840505887058632146987875655181660700096807564825828484601130147114341557936878770624557567718692470151655893922585028146712256539950593831048172961963204689715907105873265954195164256460584903414073160016109953629058876705049636707199681202284633690254196400570004766697647942814247454880554797504788634122225982763027766278404122556927223420091285596142025593408986657265463880201899751001694591984852185373158899007572757861834313685600619490147989306081936746800276788363924407331058601511752273453905362715555872985035214842984591569370166235827643134829781198748063596798821872212258266288763191954357650172080000085432727517857029876881212143660591872873698230153436066597754010830953443467718879820902506256367963387965818265652087989554306721077782755174403948490497482494890499915981449349451261530318426401453587512211239542953749879030503705367641381903325892142632169257765604259629172479517081157464044200956055549275251313883250841254307435753303202434617525725378374887906648356134178229313656589235889766030098181990812503436068332057301726919150995381673465573852163828279411469130105624407468928540996587844585626742991766081527871777997497851075633255504495936203709562584460288566583664057644905154788969850434539938714977518100642379324909518998395996044120986150626388016305424042039612813316405420455484932966518887715861151992480588284051613227447408281552522305745171383021069404870356097690728566751439858804073362302067820180279034462652927339244859282937137284421387790173472182415814833092185979718882738477476868787636529592097140830366475272620580605815245544676473530461790858300295521500643426834253643594526851501885743699012689214259848593448554903255433003806141512488591360505984065258081037476812118092469043854796400305043071399760067834973388859168891786843762352992995719678834089668825817595333691550361681803055379661126290452324639111819168358089456613102781801975215483559403649375434965197052169338835675551326494286954650535317334156933811213153816955391095433575300080653402163939508932726281510638658957211113063166249353688283905657075427832287133751897044548053353130487628803844856379839890307721763880124783312190433193284467124088932355989792624632703066256518918585633838484670252582403122202812828845748725380228038579706117603381474124068317993423836562575420862428000595605767611475782875392294853990127285565621942308731663884362178817239075794309659693637652838052975248124550966599124551532481948190672206605509735234064646685236232381446845046566374781680853288772841809134063927959109540523670304746836280151896658870299133479744555507959532482925207060437205234132995293457904502479231404638282626130791881736872339095347455195833145328854095676551722411107929557914296195400615302166090438149383927677097729945294003136639532657997550300136241311613244675445981998845032893595872521295425341279311806814884656557042250637271387679482590546536033549981986773141502334333387617097057152015097810471316858799234808431694106348736187381981613479871809376491209236893246327852467511486123001670866035540161521120350711231921270550011396905481594930975903861468981987419148064679949912661969154624963554203189272299993363864086544599015344842529684723483736913917146679229485695875467539880879663291765465076037979173114451915562978708856446585726540953300035761224436245595595217447275210225754332697517165532993140317565160348284962602099529107683564635702937336275441544955997275656302971833478881269484440082273005671907913411302376496458826939745923743579165560392409729306938811627615329142915899692212160675325028481057138387881417109147229514674774552210911201377653114245940336226576543856972171966255692156034766759118620636782587729522855481310946042439730480904848460929222471442768123269821876715260726877056344934944191975372466789488720475667106415748037100119699695223190472631948828690575235261300194320768373166133587487070340927559923210192637705447375202136829410385740522852340561082093320145237986335363706657009913895534386196242064732037099445673325618273722779823185413328279077235713111970041887540012873011531716232738476342772979079114011804295647815172845377333060940064592001730749999373245527389634627165065996356938705284737628173996051261735918192309547342274714183254475940704355393528536301254938305806267161465376851033016457569334335516072450803482654702702975315945292179392381298894898988846734292666449479020924947361402360558701043874497951227996589452845564848540798271086385205833146467189596508370216088407750818048856780822771143020320868235829648573657314377913700567217806922603421228132564161690848527884854096669592172521312413230000053871435096083936056904198514364257674598190842467779894424696383685326746198501528745885841660324245633130930798406765146512737281741316653611989636278687578365390547969670439914094971881219539350656750949645929095071860303525053951519665115262020312525850072218747801414702810386274500886533405955207849333016163268563597009182054220703289770446066768701854103058843339625175198086400366186059896711440867370459342908839228113871381179361707035557497820064715013210901842786345865982482792316132730496950367271773605267020274025325804531646103543835703872810048220225377520549694120300892393544713526852291664721486105294874667108233534744916809500767815778069470929856652669074287052022783671891138212464453563142926220795990939098279322100112239255895382239565733882870409761374485761996975078831458125006730600826225875357206775451243258492022258974430973772953093460571755723206284365743982226030873709622679215528039093635757664463651359437859291427213230697917268899873643395484082043267296917827463369319342459999257690880889083725650436415588582914132351413435815438838728327921898228201390840905112036749183941387913185644885444532347452408579133526192339586020319869808324057313640384817254185486012182238855544120122747336420266792764732167382609943847244378481530353214308236841194635742568475905721413335183514456311248788025806808031459856486775585839167270011109647443278352836973630062018495422871396716915392958372520861274556489450133622238885098594112272576184604481938304724476666878644013140206568165481740021696007700636679074853637245503397316299105851178907742779976533511526275941518689073424995232223200945972386200908217325245321813328514683290826694185583178148185721744647490289414958885807505308529593259560018921098368323752231443498307174692598303423877948166057108974858054630615796433862575490088499630728118334708509512854926933695009658588896950666777853635301922462002627111157120875285741571810036141702119923170348100259153546050928773745484510989690104762811028828088467948586577254703955930141228791642167295274624218356034904300684345607515999170680548114570060999154148375993774016637132316327739043188576500179500162418693351873452331076926908797218805132234704965493261135782662279638571831148481727646437641684345065442850231188254125104567909696574934160265760269475106926560359417057599475336766073856322070559928506161050921117685986979210707817955214511858673020293307203202799705095969597454268830490110358302053397791537395717908916074620212919874679853844411075833019057349453282116880680843356287806840368737857863373999091594217447634117307911254213720978514603739714069587229618892911347083861254864713420192801926465533140852122546086426426073124412187191275551744674279786397021274133073699347903758824866507527245383839231543395435016731469941553185671713209513677552863767783657986588286386914944857804554790620154116443024447643493247182131347974866646907372279399776327722876768195062526129856390886520074189283937671406260168078809199925330839803053981961815112007146541712388615636668927286968354178890094670727511795083210497122291344529398051981447750879359851612789023320336470500922275037839853163760106767239022277955552016063831886416068939058934051497127952268256287200276098085164359030270979318605646369543998374116077792415640602071030315802846205068947895743536791291662221239957895523308882940692551396391497720924718513126687784637536171863855724222075506414914756052944898120102994735031622815041948948878056037236485113168491219177778724588444042775035527282704125818998523902295260683176739767216467935141399655019648469123277122178602778341150659810112792390105860448925294092245085812226214412588340007106970346409546878086853775513888079888526940124751374970766357501248504800822894180014265640500427965231766120188104230691993803608172980389386049442101884344682432815932999816103964884384769775213260045829606980600632395050429589284135435351423574661470903429517628961742899017848033127271431063739729542423805070949888952393647094564332797287892346383609057719511025645769223411851395890684539409878789723454979948964334854994103758615841643815641711486232644717996943104748700346622300378727766458409102377247223959407023398276151810772425897815135679508230750019684668662422575280030498772772531182361791139309975044060888182366264634162402039885041315202280976579065378796302184910827391708681893107858919042059271172071578581761396769513116053625192040908508182484676728426684519585737163942950496330073361403886668726554443810021460746309956511402473977936171975266536951898597463729027608961902294910786703330641828996812653435371904997899738798657813735355936446704845951579748784750860180190700673942016725528316598004733478724457407060301320714138749171602617081313360708005694728147038843366390017393990119269929012999050209339075808784746204461329174496340149734256549397750034152130056152664194678674529524504017854798280191273583576870123790105576589462512442361812850331378106217281062225092210617214405880998930900249503892892573944126843324327389789515968492069849100665930533428026210694466872562035258055569539667808586344255250276647604948094143090534375703281811447880525589443614551969843387510608577812871495830232785869466264756446058799797492456943790091657950785713699239035326720841667733053699999054501707085484395588537283081910741711521712567754673781450183034852904734269194223701075788040035184560564230261088426202005748598011604436382345739984913848890078820581550215230831722656237740284752362807216056052450343397440577157557804122409490898371192397858720111673051388273982382923514599593409986670427193071702459028904340571896010279543531521191222873328703827339226698313223623923050803437910224149816556676286734054182073841422543680165947440569236983597337913346996953362622344439714076225779757049904094743424783585393670468168846536053513331365375173811482147352493614867503594922176903076830255962170197961394293794011486965942708067843125591022469522837816007690030099090614676186318323357424176513500916774581616316165841857743971041509240703305813151160354206950679502220585712409638864846239975660675909040378591038756725325619251528210774537603705024066480026556190911716049708364087147216845497108229540790147999191946723486476810444389859760189808529103645583210342318798631826619130289643211990519224095322425057646207036134785167706919909597197313796183949613140899096182476643497456179143674156462922673467318245977572641750446562514688340173371007317109701177653388551714219892073107103052583944342861507882584166250445040242718274193494315317655810211829469546628310114744933457516037466999042722716059206184645370314054985245773427742257654709711505405551910026303598568687368631594473834053814517252008711946761164374748020906233741341250688442323121851999137008270102657849250899841855363439371425530310630684896070602264879096150635903115777809677792948715109304581237487548830741311856429669160329386179312556225322397706948658018331216603303131378097718865272603976358647381988831120964170341203119122648200215704399153936856940436365351416188309816394974269531328333869610359609506847376984336963002303193876825242965938721513856245460156744083995901803837320099783689439272072886987913444672202078697363569021001750652448672695422578912257823790316095957931070018988177259356262761611018469164349525929868005027210742320281007424012687709639514248632168813248877723490028939503429346361869423585770770743325245768511082652270718142879780015215217513993696520739145873478320766548822784055008812780437084397189747365785497040512107941384332237999712717691352076774211055748890923657365516088728885658293183592270517384710028463046769546695408508425287389017217621870608188944880487989101089193768830331133365541859866450147846178303210184402720364831189794316836657265607181030302838248136370441275634124889410200570671060191461307157139996323528282769765258239907270877020531109383791971374320924237085809753491303723705719867480542144429374824480422350893021924853314632865309616627812203987672812709996342411716232623954058209790237918881867414724400902222413539771426984068112302136077005810161776661649022911625629355199361018033097665715114323699212538849270456778927635090521848490120579702109734961617489668819807438787654394731458958934041921776850202772395306311145573344432389037407776409324670940510349934489832631806019941278417762216086184347485065387080844579711198211360748134770687099688892273428041092036679657707338279138983974751554298362920264251353173012576453723729147619401896625470842624782765214203091057189114714204127594797260755516514360718092716826691660052712074971928915941044786473675453148628878167707433754126979575663061554741974112388805035175677994627533099207772238273832988236677976165400054984778816182920653826566474928400493984175627002987767508506595492232530220566062730799746771312844550960149369809085810764152425985843501618680398111935457618211475475415269656929011734718917887247180176397645111719209970977228218425913239721385528827886247348714605095366445808820663952757661128836001406111510407943905710103317234570274484855909639239027292330584252968910534912748945573323656560697342602360408675350777492654382317059840325127074566189085159539300351053697742059620136359883053896948897542433842110462458375575827861553390969899337005172494400308088855119364120810724500746017171768003069285483305291450094541690596097684605137169766861648609357032953173593353424210988100905283798406619756390848511336173991945087964156591615825432306223823248919347105272656795078550596482300180555591593164516822540770543018592496709300203303345295516386225690058497917133082516123569361507876003750036299241835750943799096807243109861292633806578399836149009652058782575438630201779678592166321953504116919607507155868215671283860307026111254834516864113176929493626426656146678961411692274600056387949195077475145405183777113058523881912953527994198813925246492848097162728072954866555479142411810365333318404111990443282961192665954510173421650969007135086241346381770859578990892576258904767758360031382863443288953922440413833621609496893820531180646368189785788572848965715757695182290498993583397636139830896673477600953551743301405516704846957248551443577325799146049831502186427384656538831516234073452011335746991017675739254861500205573125670731043215096315243610950613784031381472114525193135424692233629946218088607190882263447304883375329808865436315485108329077670130181189229113057704282022408412096328024494972290027013155342146814072041440062922456881054901391582845817058974290654014808268680180831752301106511488071188112911915563885129129195973623673479697171426477507348390511297002462337709983110728634345092791992762289055126283071797609318892849737452646468243950900108370264138451407914212689167597362867808117755175957695378816536397263319163787259846396812782593988670111657403958835209813329112195069679197353378963581056231736665477801016990774307028794234986765643091101599419972122768864574423896179527737414207987683674771301115666001926745211893608203742416858928578427184384390441507186440066833149851962666763312335565831640702029683406253367973395869121118987205984345663084628057873350867955545251047102117620514484023516767214703195377080467979709620271657869266476887391921898102995108784957996978271873830416735104000246375639844662672868447766885618313871142463905108398086976615269632430984289040593911800118803901802371868960371983483669801647945061699332566910243019215216187850332638387137101479132659058930282635277261664895389142060321329348244265605059930718468676262779042949049064759459281071193716126036413701279498648109472737296018577917941033835851873040244216652516409457590934386839398937680586954581089464549970437822082385574716575277774509970242821438026826468759448270666802786628783458455505108027833951492502901475510522354966815546385377174143200894224987604189886873584372587339927038058437163944296317744342534317352126554200547032077931670742911547738805171278042396367778660339415369729755969089808071578734481906761891765180210492266878519713324606117724056256717812259712597018371702282971391592942318858923910285342846820984149401155671624062246501036809479777558780828528666509627759695432923915679533259988768783426704700389613015330380885626933089163439761099197002821465688057436049788039618926459990390826726655706362823042681773578424838056407563354668892323905560704458067320818842000529918715207800724670417626878143148056285173868642731572526273063348581206126703627139793008322194835531609589597885500882252553896253493426587337034620493923063795295476897576401561934196015617444931322446660061042846756934593578918037111770704406351445598023139300543997132813092268680926865807902851051359348245107631887267473414275487187530774604994835588815677252599458287937096202571060666984720296955198793120801032099979601866666683026129110663157263223980411887673245485640812996677900156067062810069285471853297476547855207874283770516717070704026430978392084401694825590764760228887990892986166081214482746144953206791149933983638223830028140972135440341555906342756970394853223468945252946749794146762914321976082051907662595888775049842016201739669159115047334690373086132438180807936042739270246392434778318150355553176147174568889739604360443732941105441129377744370546353387911429374290676615708710175657940360633625118213185469874418981407991417484147053006651481304676130059790393978723443018496780346365628393666568223437539511613987711559323004689277114955726289588118274887336032086527693337107932709950859681122176556673237304732201101414674240460936131670617993214530316204623045161853423357204444756222354988308808026187271615867744785045348237108209058860481256422689474617380435633838301102386648358713740915468281908945382585132463581634838943771878977519277769941548076388176951641402817091324483606297419441286798030679836898124500896965101912049855458014705695432414177030267925798900960673611051484109882413156702679687891320258423285270866005346895334362728742585533350722417272335761837492442089303246445235694708734389634964706306030571248203012443993415994470673166486898049301929498630671284301250052203712484859235219908799670870439434190067183224595610474893577801440729111601882674884494480815758507639851272344904178653452708100359769346946957195528892232826772388412466701244490105730435173132331661265698092897956173247784723832711007965407433461809278270744782078896271876289452533698670289757597949805060188298888724288554908745925312305533970791335516958951843922810751073120959634270745560534802369784610733847739571525832840667752844336931109747135131732325192685713949822582945235263545930251162687190255657249013892100161965757353447406659289612232856515589153545052705566883116059703353106916657416236951887380033616413749050409114208409569011866355602666014579501773037551529578649549375949106186196775865634060286642052082217858511453649755802623709273102575859745447534700073370858492752550684490158907802278681113173202893213858190807030089015797846785195760867403550952686623593651374363416909705084014296493961089763416733666443147038287705910337370425650934594289223558743548381217437293394847921219834386475075452122898331144850862907471636719936116565174293621109075092093833797026533871750448733592634127650947013565219836632230918920605253705674270294279683723643966963420182058607119368414693029513658483167355455061908157995272018696420272789586693344113474415020472549137430669802685187405457799306526038843627885889730038447970557478721952379167067750774355602120843738022299982916740188919313879748679455486129907238384208269165424482324976810496817279697495624638409509962152486401270504879245141948551715561562922867469282928938255192791837313433378983353541797933439870893012404001919778560274379245003901856653018136319030306555187154906846335098071808630801068678075099473550934722335166939906525248064381855170867456361658149992682055562781665001793405314742791378353751917283684154636092760248393426741490539713868123532297055452903786063992511172944849514120247070859965228014990440982758660497477996245403020394082001881114709785031146904790113188067106297771780310192694872964590455380305182377689452494615746984557012588103436403556498651227171008154041992816381366432333323767659138687754256627119113017512838509683692308942434096237656397257500032127670606531656025219957777733325320636299872850649933127247718713366783138550781065336267318883859434440204343810852305121050999362428565906987127934052999309531781615616132845571587586015367850917188555505517577061633859909681524431482490289270393342073923004158185631422048457485680394439775671665068456052252769272199630708239620411685824138883051189125341923303548632757300298877907133678978382056461150826610245577899632149694523683466214693941010886265075325405345066100273372233923091731126117541266619530635525531583126887113930537364765291511095600181472040543781140122871442912698480137549562756868737945199502673319662761958333985378676594669798708300163824721364295619577149935957788943320749183779382788843692175127858921361182528372348217689696058851660146093332889501941602659713637439529969052427373052851771588340865307038594911243377005331337677905553780350536089976946678973463909949592321086761475886621417476348716787615759601888338392663067534322278956097169144918064410255377550745086833827173890943261912612724409071462004855907299570170750125146181556557730804885577636624425416063116474339070980313669998498815556176130722876965673246910151396931810154547766690118342340391760059177555180585491269253860740072256050294046963014490093535805748494006208169093151291345125537920629669305619046458952900780503829515087091526718072139409834483102605716282044285394771001586206405336163040372726823056016890001382431213007228514081759868143191397257256372741542203922911448762122765294161282935894073897559141363076133070013079062403049254323964532806719709894715902689481590259071104839651657611932719851658929186512734360491045607038124612220797999846999438896707797113623449208506909664646455906904823106833996356038193821259824162351378515905194051657067677227529732830761013115627518818790129279155809161528617350412481316556579924952394250478816803875326051137890738731995383059189138879302720921015302653154437888490417268413597462305314580970051622484939394288558822168935570937155865854395018131832538787867692926027490498357452757049714144339381844116722310826936139632423169832433639541239711414308262595616304766962121982186606534149198300283200030476254962108209509522952176538980752039662759402584226324542830718305150951813305741954184444484421862460288184863800892443205723497177231530068332340637921928629256358902549836002199411458680212978159053242701579758399167204416054831545246608941906885662799313186928617795057088092536756615042982229673835763320476042079082540553564217823019205141160021052294672862757889752883976504608885118892126714276268797723321532253362312631169255168928330389662969719671268096637696413953795820481666394117303497631334419828189379002726370146320083135600708007313645776074794628197362338343281016051987784996617484566049788296733602645679692022684767244628064770951897193657852026478409400589852555549697757466680069864658704927041627925392630510133129482394366798048227180565561207783915563858405254978425360614325605998026863053137018696266914900336563529112865575238064333899337847076468599442669819148841405796126174440607956643964872939008108295229684982236200336330563726285247490016680919792318224246067720920831147448461524378295411272233012352838461746286326694237512728860125142320089179938196171937337810878086744212266058499907484681373543249446440024340840704672537531386808344543603053241342518042020894066312508677266083186893890342450917115825602431033703242447674055900941352950268056755192001766991692937544304881157710350847971630596242356645341700578098810045117432334084156268918510204019204995268159526983336494743141889898103096090871593162628902116438303885987027564334998772926405269483546606989136161818170454621593025122961375174656077674430909820822785623189309740250365069533979878830945018112275858132873050362840766618252689648826100724704898970258238789039784724379561303544728367187319394146267250614217681667332188299835085808566266689359134372192969533312439114962558451511786120627839511055475197229877452619558801528315338640366042471460123396096631539063000516060820355358886491151961501585662310442375475426704070020255482046851512018315951799231978611455108583366241381278226948158841821580571269730578729416583871323423926837979486733825290109430131038711167805390566570613490949842493463193887077883020891228672274358719558130392463988489878133119316917513298411157019802628268543531756000868036296830374015953770699700055396943283518031882272441995377764390229169401328015680822647304768685354108630070844912439239736017452084464206598819896987470895792621268368444788814045638908291780348384694450832832108859878856879466497399972011560870679700949122021083833552073755174890408722802155965465069815085531406402272752202436221297452351341862282362277464855628762162737938470329911607309421219115957479399564752781726877805685024120200252524147262638019507441635605352720883144742361649208113189578183827504039918285340160897236954587395768135162752178887017901239278356684798766582099322460094490223600380440911018279242310436535032068361620759474984103477791159210946792336407302833459712651957446553669044965632392096464763795083973822072830875508382631083412889795617074986452126576439423069135751499154946124864110379569681121940702169789745453992795229183690152032617670501649394820151496772101759003949075591569394275959952363660189724830034214327780331530148791156166529901804252120387613642136505738619961029157309617683545152395374889221025140750176264223778526485789917414037116136147303092762960058129645172442783622171334753822413196070883962830993845084225108481285244860612673337672076797363628879711673234965876119380897758418289544326170964248605953244253537759323022421233912901424479663705956995759365453196385790765930492691629471922772348891824701406740248842381621964727985871340453227214687145416369518902933610068618199695575358168879997759889797130549965511996165504541121258527251504143349044197735940662295477273274382219944348967223296445071557107280202636204811717989512432009855610606154117695925796161571258250367785872040085414689401363662889285202220317303485052006568716374652016394349110146625402808593906040588417499547530865267971375204027665334630103809764787254485826449142080435299283913120454389255182482718376023458071992265063800837869328633802378295074698658337833767187273045805194395150976266701335445400889533490676931311113160234632519179403602390889025281151664823732038241570398829317751439549877121107371179075211940841491272330549225181116760651869126416317742371338355547310701363495012446645795312603893579440959270681051658304195338527217261761951323436172548396307469939347650761037319232820971873690490759179290136637467556543664727616653766048941033602493886426274776334772811294773892201432011169665477029740056153809529804555037299330482196806553302811693879653586145789896919374833194547966093711348302388088215454872123694260875859977728129636771960632620939894210182305532035335556316040773164288079710984171231870862416992761612576757575477629233106065600817558351417068717654430400720071221242966247032479015659122862892756172511321943200029388756681887176069082272123093763391444040059323807196158559486622060982218672104117457786666022962162230955348795044442565046895429315110047356768161061608548817318371647153214470581641967468726368187985041741657489722124325222944361018764820088312506290607309472881247823147542672595910427608009654642786679250170142784165824077519931723265180923981919940182854864033975457725673805679283321977217363166828884424629506001785315463403153655482191040253022737795907080112774674434046790557587017958411878585278017703400205429597245852946661194059341577935224056378315810884800313525551110386886391685354174377752629450187255950891576032638909814681882571044447226505494421387003048116182069716006756800535740808202215420182983415108483514286917230343345268556001118919148098463843832377733020503273012925104561944519407998418190709753534822138197158290008102753578271387633532206568125554761998401388622858728597245766714767769942083442663254614637881665620041166649843587271816461971299138504817925968841284820106128912885137600946237622502390771547483488566728116153415945419296147658441929348326049857642056987526856372469516851104309485752899703555620171343904838028848559918405518438768031512697247153035690702040329917601084897489140450723253715723885495574846009706451938499582623352602193019763337830686951880358026430836049590117103781252646286708750983244470435118337345130640959309496151848379462608017071658361556949967906563537306244652792206523291161415809163521931218087569525956419896826682756270428257697852979172447134080025253806667586547698270198233230922400736304634673821164317827638265053703809305256447855461599552867976211495241060998323575797598183037920367465634841439436187657087374899472297946347505936929290686229636632797334846501198612523462971354219103320389473957226674752494376762377177858877146351558263240759286217710190502634034519098920388913870123371426206865348642437617928402875337829886988373465623366269474200696169372319498754993104622771891136574785438949599891096391286449199409697137245108203345050155899242770493471049194207636762139639059050520969111943836757594166810022982566600690994536386924583329093451154747019966931034232379267136928450098030621911152096457761624945322589020419504311058204966040601381884881802476619425877793024300068270439628536189075364130792869776968341604092859590672515300987182475915968631160890230140355908310665279660724515106895836308969850635174916622669315479419161213992288559799247211711750904845333837348986774032474646738847566204506858250095040182293826309150342462194110151147592021833001511757084367369589332921147241456130253314104872528967525924350851484706320125886175524851541577223111358898175952981794103013631251147596054179009109586470127367181707851412191062099163356404317111480367546123491875414613737311893221003229984606489591864221936586186386979245974620614116557145723268686430430932985036380435353532665121334520754279730982637055521265936100709517954974912246383501920279626662401724134964560240714678482850367412304961826544554973696459329638370580099667860339532744639841881364268510349646605605590332248497090639685735512758897416255820424994186878323045649335141095030425977725662665072760011702231776813563391232825637663815584592275787827127963528136536202861173426703935069374223083461734167078346615840138929909657747115325969456435532803929815415715875869007385178582811083961830309683900537549936606328537845232113573057770610597466003494818902369227474239593945737663665680887730913627415442065142509846854605680315177843125383505228692838611722821191346322900318344295255973171593801992365399448322037065744671041231792497081601339338640533840841042806717453110574405791304484070595780902841883383276569071187424059271127225506645229169309169320653988327173682306799261785630466009700365852992134570372421394838574475669770052395439078684945369149939923423226378649931386110067653400235762210121261607859445687340295779961676386297344863409548849025003834007798010656334809091202241987056922833799210635357331138805910941500853730923667236690263421982172734302301938178136239421995948402864927522790848596301136692876186141798043281104778227702621307827368452708912849308017612134716595934723329992582196545571328108278107473029131302375976131361822337169593932802667954789582647341065583468089522219970952465093945521146603322204111201641194730614432259403630922534454155520754056950778555859003797614098852580642466636960256571065789249419118358127979292632834409480583421921372930235914931310668732565031928232698805470477438050659653742018505680447114491897748206862199654882325035534876915843936243272783835945745624092947729251300673635560571327063386413147471425505962491871479607751170700559315101782532564593981389395606701203735947820829949671673141879850674115287718692329861655432048269305788722332899072849264237073082190332225522192349107609604868188398214290655818436403818007107525498178837180197499601259000253838340754207792571333003159100061220619087074279613293409944485464520706042275749157208592617044715052245760552226407654665708653378868321354150941919568591774548148257469465707194935191799498176110135731643467788140123343895605175994213945753760874347514234520823975548097233328953205061936299551400808545934119113402914461024134148745815439811227061554889841777203426194193558969494975237726453446712112190889618514187794753415377195471358472410547696217437359566854401398471720681440967722377054443012209166649017311437227143043920014171887727750421190345194822455940342121438456650486808810269159250077931831009097299362368023636417603154402552901554203821336847608204344150963884615668195409513807259653667099434145281112510140576611296489337534152393117453856063265754545911643249113160153778420699408238294665495311900723918575817374719285764304894263391688968839764011410184388296195148012655589293579515495597918902078979258730544821605104240090093736613645332463143707653235154643595437653414735496410587595506194684562125023895920208058489743402965299980603562213250462243355080694816779276036844597359010187889423100384073050952536735266285384215228406695789423815336931221339459296104739487491845903617612200598341897828382184287699689577447567964156797367105116634373840120554253542546875903251942630301682562592323793607331717056196058759236997073185772252916779464660414607178927965468983134268952990181586168167873979007936641602758801250184354289925916528690557628879142412369332909406747779749049886216675878147823890834016514350568799064271811622988460988006198827908037236320481835026240718141123513359667721136454470140887575562771860840974031994429609930524202164741821811474342362180046090879304295935102822053618627624198121813773306472492411149298589861717266710488022798607965689399324158535886450229559608292654291167454157346865387633322081425347648544354297252848723528281611621342276055596091503314816875910252053236382005604405269092806402586702504704994343330830690886904014276493005549065018117761519298715336062991695512719971987491963481605838401937972119215804258636524701016547775031158166502257190512926951061759539565423900780932751461628312462077239501604093932943120880142182032925135864572077462394445786521989787969626758903144552742036787671838370836067721759963562080014726839623070958220146904725647361641781762889681981253591600535189951856465746278232008406959039878079403810762368396490469605753201868434689559401994749768806273824254871164926268060757667999949910583750373090247051638276240520376055023695704906066566689205655243656259510054269440412998296513433647787426488750676778734028992196038147057981854429199001931604787060174832445201989390125474383701844802769570201942975652756465016693974064734364210682916651063453629144337204654166349744160879514759923076294961417221654982365050274464817783942959580348441838449238894266440412881337666789487522950182350510474278512823214814684264511039617885156925977934757041621018805757948099276728951775291860171145480165979222883512091693274974665209160662962664669732572240457465022408557708502304057340553621348110529909997237297596159039657335003151844128899397759099012766251063780249450126995334448471421444467699133816008416956576534896180596465822654857090756469479038860966596397879450125492135059360461361624978264017404545598476952274785958675993115861467116461975295885024993511530880045273659013687153286993009357605397162973002681332533646786309093307384588914271166010622472185436882310825781026186765757235662192051821433756683740525439529425673488923037131742214696623766400888343025104611682415609454584160418394455713492975560643998169335758744391388956023807360717697905744065586201801008538374499443722427491120791234646388510646201771560268824928753077761072749307180369430000570821374203153300861400812847870797644657430848453859259468362294489756766441632489814979139792617149611697386432113598083010665182205188075136028421147097662182120472879773670934695341009666888949747723689357098129336074807218053499426745227640569724583738365516988883506445434036792767529662253723183024929583070767361501689617357867469248656495400138572748384904318350346856467337255796722724193933316512268200341059747062134818148549954342238339418598868332196701038833148278284567521020102426623188691593060259599417217897096110122535408015055451091112359270913151905222160320945433379309178610882766552179212188670211379008772523720779857221280022708802556791984584084162143890122784395685535333233750364405363987098781497943446636122816917412320853024888725737763531835609938686876472791918681882061128639485954614756505631098742945382954216313721511951409428179830043539721512487196557542563445825664213665138298284199615640423237651932339994232574404087407480151567978712149856479052821902840117997126259458719577282764893843314755839309217858226822004285574072697215915903656992464126935971141013442873930663484491469172906167458249974487909856210694552493334704538669943513084661576986333838992319193545263295017921196124156679054998391950264463695940390052833502993176110074613515216438408500044568208460520118988021893789121071183017008046961745741678573350803755047189250031986232087212864028235762006527840826680693699669394799930939089950315568484354997458794468611435393337273161427128304017649028299914744594636633431307063814437232167597078358042220392198243462175497891100345924926718639440152899612302701815672328825669115203349139563794408551730357510851438388160638184029580405121218891515624114757325201338418078772064670672683909655642082991051514200657961225081687681655100223635790297664847206766267570508980867238032586372377931888830447721554971278612264470436163472112205467374689468778121879129538250328804053706831188595620424061786237457758782860869609034391644667691927073913223956178988051706839772636728255033058254515592560074340135895008600966117948853225091726294587457197896673086234358569714471830732953765064206498221538208914195347752408073132517291903869591068349358411429005779185477025416874812799170020608993586252984681506890992227472237289016557704370264769737805659412160804005819650462174284164952263885046042955456842394249410043482866936983822831869771109897291511764154925580140008682872275704247118486676560726855246771439397382674703919966816056077714025902569570276317849534658769911791003800110639832745932278496381499386228426159976023650627377949604852115316352178529114946111585574344949513234045213203025330982851369378540166590287133613376505949544098705555178306636305834422704835626588825141920373326443866511869997736154462631698147516236798093573375322089802065354667133963684657929651217339912812356273780775444785447861795218022571716792373773463006476302219146575293313007061315992294255125809989555924213376805995166565767749983908488635449437057747484686997092595034505149876847833896895621543067911487323546678072198723925676043230719248040802820993914119139080976059611332639727331918371580759397080261232466698104408520409650250434687017353176049644365463737548382255621526860383520626946394899756984408618788975093249901493181719099310929815924357812891753634973918012481105226822088918183465689189113934919510411337016166720952573855682688152389891738779825686659623656913980607782386311973344918629559354659057317627415901404093312295087059782213953558913765792070609941146091874899415581746710345981908776956762163597928571790158444521378097066250100655023351963482971427835032849038649224843735195317323773570081901330370638669626762831725570898402252582376867727775297246389998960342108889199666360778243156273428848700063123379670171248636500097737262503537592407467184569846527622918672363160400551563707326866269685322183326156569134495047549789618113894298369985043873479278482440641263791324784969195258139801288621217572019495747138912815295298072168429428482010482471342970362972057114605091495939242079620357512961237889727159853602323047993106153890577183266449293617965564101545287211960830060675550091276055907469297362868863562298469472415665790079241204378075725087367580222016589952076924528573664439216735093914902862458832843198532821933956321307915735239637685760045830133356129760011464840752650475079737717360801297914429697693923663656850827288172745007742711904402747792354834242192502649241355452611543399852028952635850720624222460405815120188107705424064502436195317289335726096343204805911753615367015377539708371090395808646835945327662751330546989902126757274444641772197883398503489582991663599436892846300028611810034849043047015527488042541258059371030165567746933009819479163235395491164277169812945207568396353399046550665604206579875469057663132467283835722606548746144188919773517684469368213249107090427087180281465088527514861151273055404909599044474940812309955212038368648488886902811426761489019708575480156469250640371210265514069134368072849010041055693255128378622178697017031284751861971726153674743196845548972983124259008698964819128640270369655696848887174350614103063541248138729517873056783478393926350992859679444391927673899178346513327208789268336187402276224549655638568813049502711462240189801334656300465669910668515923970472191087505979240960908641312262954754436790255663082028405774646578577849685996485107939383828343529882747485102268694332904368485943480407722307751423244017269358208429982878970394142608293278435469703729834787940942504820023375860322133652251839572757035287200591983130855828564812877604309943447773054656417888337179242703963597935160659505339329544037435468349222686621049870054518749787266921593582187163829264430963049387708672959044418253711869819192479206955503506309149308318280295927199754580532905814558876985000882803387941839381191701863441601247626547539227097715650770322773892114866827110262880990835764219364251458289175617717114553429249325865987317795647367575281287098536582181385632941132937827846534125633824669133274494394884700056219031925779569590874697333929282855297654089687247031202685487583762503025814660668928052774965288983555850812591785120860115122613728642454023571750533895734424505344286014042757059777906989992289835540361974613805487137448416270043107115108999823389887038978338336973756653655784805654360800348494021952816843542164749472480442174235413143162002912993658623899757267715733284599420077622736219384508352730687757156514423798676255389539971739673309099211999403909676344522426530866784022199747146446242549665194985012033817175184610977815162024548704741997098083238749478040379752183767657339067246583738950042753130119076593188972505616217256964707390988572445517077383163288389097711457810887272219735505714409227731131608145529023361344211960651848549410780036922893507446021986891930070692572960241085817691196513617980600626430491068205266803595616140325812906586132296921726382379440049174631138677986426449083726555760563899930748846441041331896234573166563727421298879378519337300159007351766114261387474055570937444668040499207362131980126622224942175893375197532693805013033087359369069682572144103685753013398593112579036705426525906067642603852801281599388761141758948744917947633063459276417449061788945161407816138989684436259816384203895134136714939501394750026026213499627606805762256957876721635310282817052562845389120685603687385201068392152316186398264580844858788248391300838965913475331618372861346631478221568477128826855016243019935167886318872387841839133706342592830850021137791876896441768729825636992995481828528091985142361773373954840376843129048870983564711489991083606591415205070896256690707192120282513804227194400881163159300761758259238156822827383374322090653664234521677377468210548734042153735473712657022045678538877174966393929708311228464778222785491219866410179999133652608162138571085145271761163813386631688482734370042914025069702937592115897077345903259917825086294795787973060885430135400347107616957265794629484477999453221025873032005705881043558285929649993705740904026882170002968014779903417811307453547048100773601406675949539152016522300827708361429049463667116247882175082964523175472641634460364547881556008637816210827965081938289012705150036397549187162487223060389663392203501519477399362881374392789377228299177880576631894719723794272135024920228192165571537421097845433490929201049340002074455754279518389264977928434562190243677425278147311188740308829562619616803281092205826949842421405802693019022995960089767635973318544756186178784319675925107241323750247577376822612078792315825524315449217009563430507911133096289260026974152754325377437277449270668908527508766401958441939891627527277376025599133156945685489195998061611237807396630654537593797768584762763145953998792591854271536710707845239904447926419967909371548844327526046010789007170920861974894787817607647570231425415185425202918357523255028770082646980652832553444433048557156640968693215030102738859885321334319697589415095876415217447039417041598937854126389105223254897292614933455697543497897319366663403935603357832711470044845942638142620520745202511123393496793683409192812009165205000084135421645564939365352671616259113943640025307516481162303868708778319213694755161168442981019530528039765128970712868265796769132460672017627698137014529370790886145889095285422325622055531263902402870754999054137327645028792214381057004925868236742142516670052610161644296221203562235155035231049087148785343354086394874872729336121437126648664783000383347657311177236979801408274740390281245594612215923233284621205136431731800396138619396899142992495233153796747665928524835288819800108903750217465039566367152031219492755011233143058304648597247891541558038620629155920024374431927280117270247210653157534278907694509294311356272515521130063595434789339921406474505927906752171151026481385312789497670844523653514062144876152618552766693099904081123788025231572818367208961164711224568379387337317931182034837011472985012715681985891806251808254828856649688937771476677688562182426716960597834324662040448526432369430897580841740862298063993722384954860095234564132771412703845070630096596858394346249438297501513360126706604066371804414152211840354051097325265038681117712188810371119270633154167017053352300137780392325073642388041388305318257008077834478688710442133146855080502389316173837027967429859684125393201137510507615774717098346221746534003185816827713635360078284864069463061948509707342806251446823559698924037115217166461989273782823532117562428040193061491011068625655732190643219039633451420230253003738746472414169413131235044378829493033934088884952059607246267848471289647368430019201852305624465732107065102082500117171055863741732641010912511466102352132285758836281812889786222272891222644674307243187897016428783497398106975548083310366248383615439995303999276224021904792828244619978937087519557375267632993294366271026295951763107035893003148752934281331569068563415849854605447952516968086644084097770028559878385115142602229710062278083428763705479819064574423704900976551441937232006787771857889987783897121528491366144556091909215017728883455796385614934834164751834432047381345885534471638326306285629034567776366814388384803797623808381308010413859010538728343478824126340815724179242190652961409378960415770940273415939654311305295116357251909643612845373963026308785901665872774860291639916248087114864561671184358356819235292883120160203269878956368482990071853681011557610513182134207876160594033356255647239656469592031102193866363622566641164061018887130966458022103687265119227449315909361537408240598824438529666146969351903940456076413252902704145825843144511838657181711236698475549221418979862186105659544970106674426054308995269570693399033438914111711743820832210109671803128686985188697900484404559936501590088236659717635749895551929357954152311675053208535871925295702744106907956098518490006680348285236200926457970191867996326194384757728996687190758645657200759413985195743962492757823311221102902486154579818591824825121884859754260710310601446916672849824363125970873530493375907403778481361818541641207150016686336766109340276858037431318285791563414629712085353265155448300389819510483947496774583539919069806868333867202092647457590310168499908175119379758011899165466642269783862526341588317456231269384487799723424402145811071011202464418435597099596289695349456207887547797311051142486151937147348524238015514751215134523140020434915761885731892367817072842648961267001936488657041693602450207422253628676554405431309911214186055647409687713722008869588637846990072592202384198342180037686416528244741040221058923240011402962983012941194124883505044114307604543340664992432152623787866116806238853151611284124037305771843777324100078320198099992237825198210710225463589797066345050498036787036368737998091287565525288990327561381407178672753987923480610896252563486850480689925762220732387694961487892578862481000688575629058402959790281829357770894493878102787284428805231265706680655832120340075388779372794922302497067116549109348242426153540429323397799474708596442864814293793857615728538896077474247135882071113188763309567811349677849257170154652755387196292407125269374727974833389587720230559193999757730990038301104945934404849200177955208616554134114424993965103732195191018547056294822895557696098345465548502623607009868928595945481316700136255979632636989636868395153658175112377705056476224357874067803819353215584901992343368488904949044197781593907375273764158825296641759043792094839678148578263742365074454508510999006077433063862148903538907699649231006423627002915331808428031597734467532732317894040011652534764210452195163599351110040696484486108676194036874069252969312592336021531287112902390542722818028071459913287654036172917433017907637752930144314812648825475713720913372638030515526950473713333281042413400539034848369348388381487753781037906313667935767362231622112179478847823747597266588754532190632405175028637185801633019535476081094753463636835744216685257897437399790005420163562853211122696447876411436460642142176288066507951079539795250185693369353721037653998274207906635409867699933457876331698134837201567100015700960650997624197287206577694829917027016425510467449131170660175436717259650549814420355988708522812682281343972596544102375481386590749322130053743638871170507117043013263367358130359462908131376425362542179441636236544645924005830914923113914050594362874416995149048704836407643852238876922279490025343047171378963121805991470120751337469056198750503153610236340711617774915972333891068640316101862335500151788157907145247200520958619208044784318402499183401587753035952325435899730860950044489303581421883531743628502743459212122635404904773630779249101815799770235542418429332984164495147675193638342548569394839649188038218024805775273421833643192960293336643923005139836324322184708752058252249406367804562596232693236653325005506916318253102392516123073220336168449410329147325082222073896023026456899499499230045848112089646551018278242205783279760423956298550145590463696441926388438930022622915460963841337533281360572367084183862702626052838944885344472673848059665281953234306903996216998377371063831831302867166203556006271836656606787607802200472823266292197361755896360748564044345109442419823270995234940845809749682526577410813047108471235965164460206859139056673178995234474929671552828419051503880380105507150438395383105269025905343913130636601263264479206511760792724172161468943235704993284566857131968288877163255494168932292636325344708203923576491287756102723426139741758068291642360215049921802936708689869100245365185214488099085998234969824506682317031426561049711182520324067969606527713618803285250721297186096653313557187962682241895011879249023170805392238857810282000427757809601024432977762868652692999158176262496445677876548218529517793844324755551031746428441453770686180764607044344885069752333816751198747726833248802532333713339946167102556122260483604901425025759098670647334542305821751986640041292482772256444545520056532700102962435862114111042206073698376404001178957258475825281824608398539571891867851899788188552590240358831862096435892166121695498615958264248885142106077174840053298104563745924223292037655697350671408906573842015295246053517620952563776701067233440751563539317105113539660853606583830393786205374640078948158466969453137916607666685498590426798699193973929005269537112165993138454630501086269156846233855370760576387282959600505198828514882338019128158907356632316047430967027966575133949777099647996029812692989813032739938480574393673275513873549733532945494241382030279586415195308085746714444693411280084052339966358471678968711179408432394842168001004073636122599926983060891878448473613874145757768971859860910935790742803809609613393451926345509520331510191741555529679093549750617880052795880261540501217862521051705723251768728547824024750789139910924830046388382629593252036707103812168520123668286873378003145516088373864925998118183482175722560161862769596653915238639325416513037245329731724543674796836277959742446176536395797927597619006966126965334422615853324850426702150888889141889024483930623963420364126063503175977873140503550287308496575972898526621684181118210714049253620277150591566138963902171151363164675082830357957204659665231400794431765268840852125277183226263727386331262588464659189852994060893746884521532594697859753373098100438474085598449222097113152312083868449870369897008049657064343948973770112529083227228941523336363282341612784740723852450995195919906678581099283449079444621489314653013151333650147325293475449472922220585461506002626911008202540526059921546276821896654585611738316677100572177635981025948124227068355105344212345795227123399066227082763813511371900366591616448910932260343344275596397053080887118859920473978201639881470432420922343132264691411488313066233121935146828936104849473487842053933411488165024854674975611916288161229703817447920338077543043700023236281587847706358897111388603564367071967739690304092675540984038145244688981683192070073754429211004497844233719793534221565490397958761301350449516114265012312269189761791983489676378447934828928452280441346426342869028251218056874872448080689916745465362066824471299753109582607360708215209128169513538098831764648374135604349352880994382049854730952567319250651131833853499039697918949607069626982284328193635963698278377679229187023013553115077469014406097614302249591410411963905879845331658322243621465523688430952543422631465128164016400342685667797976909042005169091154915549560013442651257889177575776421663974520384106719174483466277165031846533836728195852323641236828888279621870898910184748198582958110717976584210222154896954595446037157842830070842283515104156077919109267025433776898091671695520349949002417783971449377457367019510070544676338849103703694877034069733716809533665365999064448519416235433938567621318485455891715979668746890990504007311675930875394925356041061717850723782804439784851452360889224129641721030654476275907867297711536804754489885064750420854927700628402207428507734577121971938398334563336767657756077009194856406937965961003590641262281004994096348530349408706526255734528321209691749185274152013224909189687148022603372619422163208028144745702694337998468333755248211410204941673145598129342035832419257434565861531730399812487843780019471397645422647144019160205722027898416428392846463489264810463329154780313736190575194220055489140206198937540403013462355597471884370795791823005341716676489205711484140732358637767849565319576474480930289491088573097195854226206207159634890019627005108856116786730065657850354044942173483543352091320047160838095620654472402663049585772544330237449061940919687351961801089286664295366239851477991880018605032015199253725909923487701060560506308308218614685725456605452929995970728294239906840440938324949613727770706211975840622198174927515078392580522667804557640317915001728543340193016573667061980329512360069518678483182352958945938040808595884750030284504662303323134302735703965146952427079593319737320914243251485721403234254206130022513527381397761871040014552962827735451808879660454830679906533376243757904456113766730202152396229483071331115350997114326056246146756135746333760587876568457415104882572856250004056223521555873574644778932385718802940305188297621551643286024115955732695683831221499568320680274711862972957375179712126483041184061292641324428267048337200257988655006497965296763775670999699002760218674670634328434776068248671770764280041777867538692621783429837069540043499643855737050427153900583566141486512556655153338053118979739845183679983569699513909972409376971529795690586622185126548603349860777283650122310366495648432735912355432416616431407803066974977793597590400516504561051456431052002708897226955012726604941980064836912691548013026551550916243575950051139540430185502821791795566255876188571212392066851606944463577541410886312777261049249155205862923260901479945002013476552771469096193402953133013349215895504434176472282089136721257816277965818276839287973177129528497494616548341179546906152957638303834815114140785141695652346414152374640894054076609562716064191085420486615671166391430649572149343707639245391670467407393016330044538264807845932501960684506267855117165127281740591346997935428415757429445653539918308564665537821764393393343667755350426204442996022212667596913649385577331771969265924321270556370224805420776922037735885493071168537318647701979542213721342050793333113457712464845820212674927682497423166675824878441337375179971292481106608191668783533519941722835054778558936570793003204140834108408354279906337414007134077244179608168600239967193735196342768002418006642534900759055431270256280745614729034642952106985199206717628192197773169527644938495477317411594307837362984829334036751864228780571105429827920976966234156598635789069657472597764160935452154275417525331798347154116245456948781952138487628857713851761129214256029324614369543709972317221103699923074445861186973284137798187722998860572347567383194327023329317682899708469085972387261575368054826828101947320226173628884997683551547581028210334771126931671045335225216408417502479500232013067720303063009796583112529055746219580171447734423369597030787965184434174399012853148051213293720574884305864499385444121295264274014525640294518745823394660917575955298736785577260828494130393018867667469143205923093115347984046490279600021822425928955673072412842453708413568246871549499292517731376601210659565585406381517629329954251153879889177275760327080460354078455557252333954872429761100677678795313016063413330189489585886672972554436921654244299626591329118196694866625147953000945005435527669386182877114158591378012339126573863164024651676442931992639361634585605426337655034868417435057368218679398684197898521811424122917373690390986941642133107570276426534513738762955663813144443186352061539608703145214045298026465234714665099505759925716229135614626239520737742382102526433110786599094828262766546185659830309345390231315922934774582496328624908067785098874360571817803591412145871498027229853766734225169858806189678553689434197108943467901345004731622834428782924441769436864765607607134322579576162512410825774808761133789876648131448464852296359965909417900976315154112532211368599868181814470347496678327450368936028579155144960767345827157958750874820951375022670767299128101310087939504537287498392676300484729147574692783045450206954378900979636760001675246672520059197032136206814555471232388637326823598983357879390255042739574588514284755816503355568533040605178593346780902677244393692558474959592447322597758453714106334139707242263309536530979145700982328954926312907601998613139908342279288232311672122093079594662377223486188077048487641910847059421920957425352035840423601766193296751097703953950656108665918180946057863574785055231549638706099131816080258955981964733542264167641143645384887361355260405544246871741577663707825925005791970950660861896011323753285161592577284852651035279087810729398531268317163136787028900329011846574673653825805423506704912091773153614761164817526391729460203863429236811540483988679602033952714392261496138398726344646933710651072975447691529773703394687101419523745431272346031834101547716587563225882901637535463351409443787955282846420089454832602929055682645250558329041550196292780991656440338293978574653410843187865883436820715774532010102356906122418753139066432455445642854749635966329621154637966511640345531971240708329129385197399923319579105090214479731916585255950482286736309274927252443649664096724160242603119255128651273343000348011923598752433565662524602156346462487848823385198079585783707597621147236752786870443045165335201539272565657972094083839598064131469414938680521186440029161581981232908069956596429523955024478439968333505549550398337047428765775423224255589455936754411841171712217867960671814493535338421372436113130232895668861298829527282261636615202262309592269749050637425175385414148753535188371679155450128702450970585193471604465759742574544532668167724297332822773161930226418603991317196430680486140819838021975289220273232536142569293951169297211974902606519834074512454816467850059325339294552457309535843029527686884564205338556830130017293411177808323070049869807764173668062727722291382030225895351191609362523368022627663877932225916843270075395485103125902526586145149348383216207014651435665648551582927541374203720668748414931927666812817226703695971621507884227046790001290592042102138597842562771246778778649770635900523660861551087104976886964857361516698019214327995613384540802045252066808680947749969220221933133551078148235742771972040004473738836451017949114374505296923222096805645711981945822524467603041658392569862782219123688621395626924145717113490041811759402889514002098591279089907179291178831163769683619279270987605087796266825619127716069505585151165416440767891931802601272018860085107079767727893378384224854011655307470946619538679749236768749038663574439106138422495611605048570314561845211615072199411916776901884195406481566426711898275720617724911563283883272938277754482750802018579111300909043811718146161789411899951693893795654320051910173961600352006846252600328511503909421089830408729208301137479974665240214434935377741259039339796522472753694925099639486164829160565089765609253351086321472468065141596832159969202278015654014422756967751476879266651435713655018195200386386527960638289828345367445205804393682537191939776748838482111675603785264033171810726150627849526539084988535706934824374931924067184663262191076269523213625672749690277138550505170310151575810005248727141741133525135401382136863120229356558688254770241484676161219718412251037826971434338882293683741951022437692745531263098377662851700172298845007089426719947279903043756950601916664652258155015879937978703738251300592490197258595096831955128079473558066162876718088167313568296527441316229721705427164100451633547792267272545515541304845431096263873123902377807291217310532195090876801779309336053644131704503625003597715302034204814597086297404109376108449135344011436243492345550493029412275521627231314865109717570720451508273188396692453399223081487698649018018042054392884393163193590716032820361746143248135603000816695496739645481512891441056472977229667840854309161020146655919153773555675863860557070032231599475595384642452638849870574209733369032092508052682396240763432535224757379304579093646151818744296549440790521318362458108724244379524769454213422938316445527966879535219405260454307695012547943990002259983492431294400132567624465050979495384973681960250956430592342490143901303460012929628387823230494321795933850084619409488900304446260668320547491950020482700800152242538364054138809320971581491228497138371967428070559064524785034571607209807745599343219977635026881774523595697090973863320156840479723173577633167728300119931029776758532002030942772781691069075742708685077268514754230097046943548411276209820606295654672026815460273113087882257494152965197441048206378797525506347273837118105045922614906290512561076402590516382334146855550219007737332171972198810819262996522349956469798005480046875728234331196408298261584235620813023088208908013632838124266528395394598509272032365428316567366417564507932904534404419467827998207584032210475082301071102605958738069145592154734961583428224774541767956754516090267491801345416417803358576120190369915136302437773871040818007819330554942812786025416243353437684158258752172082209273981318801059352546102263839988018901491193499433697522015373679429586840883077158808612824676655567541705941269734521923667257915397455577881499422522447831628744929507651010921735472817244162795351263022558606556791730629091545184714915913918385790933296229961551895028376324112106801564785670377857348563980800488407603879890601091761027524771212241163108655388438769532941902199783316926939013357443156935166695646715845109302310416307049219216078118777963492491251708190047434485685200331288545612948755892420094150265627558010155536906549486774630191141557755083544174567411359784324187569711483300433914601362228863501059028952283435846016854410013501896735476879886943462970112489560009664645490645008792077348405492024346255796396259818775493676214620307412263644910545818937631811081201765243744338833082970769510190460431566686501190582990842423119613902937493559292284996875347016381810159581198526544022841638119933148274564669670616925689831159339052175768777098420432408116782891869131420112272287028774506574170841100265169257477701559915030550524239509712950195603950488209546063686340669931082346357388446506161102345121949379000993519802795084432961646429093322275546113724143580930546151507966891662965454771118682248160881731263230578828355954039553687937620057851699648414639639873598927931080107278394481356776515712240450731833884284249060403755894334366131564883758457128441464475099073848418914306641172867446766932126381202689693320603567584336864162439961110750692533036947205977623539808156998442906879896924614380973785551546593584185679590148133778717821471710559590739743835966630766343441458210812260561788285679329224920797117627891703061113947506559907632298149311070043844302606844856905253167629606580511517649559701738861284574010928520864415304720637267502869135517175417862048726410573814817086691587119998092793047079368190799570772228951405127260827024607605544585378642485391345940550034418540929668528837479455693742982905521846604483017684412639619327029509012968577969871526108414749891141566195327460861911141957503995053603855371858855198718895361333088395923023282025515365390744154948415578331210613033622589455237299651441171056260765603064711693376740004454715399665335450207890528035755544119740298336483463122566395165954281764022415066795003019776409923479848510559017751428294419640987990587306978832533729670143276787038203835102873059103916608834203778727470946928359240183564059720480496547174019640680459715257434929440565863263320688422560828209066485605835029478159535848184685247497721474669509408011777983094964859939573922436669679071342708444510625525126094972404562010005896888132413571361934467300221962931149884915949100108329858266566562551660895898671266506878654152492564788261296974673283160225066758343770727108553610110566653502271954802365252971544498372965324603268408009486771418782861188724539665177481983011438796915546856859802704070615343205845434027878938732182856100943307098390355008266360090408732331477422720557782089980319528494477906799136135264310423665792791571692907665064928593663916643069142292363466147807483417632140583556311963808491345071360025885189022793892495153298601342646511399640441968411405476325582879741305025371618127429062734003860263436847026852363982738084996671505775381111572972427998065405010567020415151120540704816765066840428206152402158034469670585224590802506926775430642442423052207770609250030348224806053893662176651399200354681530594897025199658996850920615970192745338275621884476451311198587502458082329936552028291169403276944345410851522740408320257710543332670144001837974185197636896348255669210804845681296849592211399006835956848531863294992786060313722467606622900117422128191813679579050151816868855336640170908279229197015473571402189255244063989437675397836713636918019750685767961539397724146447161800203154544457637268344719141181466218844169708349542286649701540427781008051739051748544842707141842600045169679871426882963637802029823024675994570114116716123044407979357605967261210338370020185385760013194545918608032903838506443290904023567734194605202145636975586753597387330417699590932383723305941131946934454886008098321788880412895821397048606739052663335634758966623912534320304627582326148200296033135832450996235036850600128922553288273934546135665972733589491203933481455825341673154609238540740365890986586346765093125669964410410769633704767518853428584383926292962646345259851919599767288924595837170367275690201877672223561573750237829652493552837171964912394446405057989970249909638045518387028726682541033148325273185616455473041905885034364822199996818104542876366253798105446543793570715868582998545986223298367984052978302015004206300876852098025394921954541078039409354461144564185333808945519635029824587205006187971820518400048047753081939983652510639340846113825649430568042599954480043511252551004818522810650648496433882183406681448457099905902852131751748216811240572190651651338844922639775014108352419511186097931226325881482748115208781982286400062324956833254988232295101929480502620646980790579900641059766569389164003636058283938800246548577354683825302517373430075370697073190091643275726150023902723238726429761789619356362764831424592766002944255088636697436190583174790752873282978041112901115024001406922145234220178070511832973046828203131095652205794604655278945037455990869720905136267778611255539577847994431623611267103826760416228433812222773958066507431330440182167579923163243761314974823495158750183193063549015658157979781305121314755918897303061757442754753297910573173669860719293064479204744582405791102910629855624251561942246469648451009132460918883688406555507301019348543756545420147951884650511453215413979455568275041161789459306179662263373776493144203178944834640076140781851655850925673281577178641236864686143102047791282236050665702018628512277522018061436345197823730763970513366526571904205884404531108479074146453683078194180460088124130047230014562488270749463275612650115072721722270608310434728271754316632009042812838172362155784659049097721326378071578541641630669070896280017830005720589594080586508044981015451449893815592314257753837088633680770994238718067719244428901021971293598137741398449932011696314510053356552512024553154105880522349069137563328554518797877975811759033023866465452144979902554936956577163067964697017546449622213298682071092118302341768716095720192217836650470984258183031393600501936890733733790385814914267359793298738546145053731869314544204256560530455617113868433420259866655886719565108098897858253797210732726232669101187359875746772438905141322120804802601343320337855303394792598205949263654908800446537963263770716208785713672347329072621475602301300625807022169466933729206349729827328173961007707018966344397016658632820438211036170045010590716452281095332031439248049531029068776967519112449123252354863051928148937853845689524392079669316277005038391157912096110049436004046477670684397619714802349727769287011193318655418230873372138663378308240778481357777421427863033683371111428125543356670400997556355555706732951025595947021624919768705156201328663475703923502406596584785673907546447067698979842939677182905347314883795801662004187060443960563021347858667631463881055607060692057331871891850031376266278985605612424698533646664434697623575220540605159272679723465304287816833255452624371334099700099846905673691429975186776427357913271892514586759917090779152586907387490311592661664807337062723270633180299971533363987785770617619954569634580139987362325935308555442712075318483167601844095694636911084961728511094954608861732790894781390788279585593389102927171605611052323864340566532807268775008586588923468014400421025212526847178416804587460742365181885674848527953413680363145089907662919999827457635441983604233215701431816682617690195907454722693774772561713062597541850957552985017841481361337412897609294233734191943883940412645134476636671008074700927301302526423198623889162920577865790762332399964302987370342897311446964776182714044799728661435025834261258362264147872028281706810254387110732025343998180885775317230256471742380293836633236337380455983768393457139352545848551375743033429942638413529310658079780720547283226657508612095164412842412808898216498822979648122609480363068787618163196317170944427501232780597761124163838690950260601875273027744496650282844134422518966597667219678872613067523849209900244717246857092194188115796355521093360030322860389402833982686291919160184519259158762997330606420223113983153444148869955241713873420225113727539290956898948258619559242414238200665396702108846077870311754947176881013243173107670180086293029811699164361798503922893105592121003931590291060090892280953248924983168481842389146153714879124868790469014091415004304856914655149212204407011603839790761688326365062665079431921492643067471541755146347034069011352278263819812949766085865914623872901265565131015476677221822975630609037601399400647823654335764046102589460782030134476290725726198686171133744572610362729042481614223278076121562304767717256008111027973308779187174115631657424791495304583465968756846355342444805651184462579028134765561546443846467888528964374443657344626963106609822875517208702105490494953127712106615469789342035825279547059451536736802295559608462892033016482740412361669317667736276264333482762502638013706341104556838379487106676997242037736356443524724057883922504788657083198501714857168926510381259302941179036896732886979269833305215003521117036574207686478357661450451146092165595655950773385093012196732128473610595491846432861153146218782030408184017993139309808405651594630634579356510069669223122504589998941813895516925545972439379336561131287723548176609246914457404912875895433954615502069101337264066976890072075273408494034970741430101149744349956486947332788191241433632184219885397285334702837447486076156256176536762796180196029770039003282075357972967942583840884959903452504396528520888101196051847777598229555428073429493022723360099222648559292817511863531216984189223920385234640009370000383830942793949608899939401085969545472651592050838493869237964516333551114861029964398654249992682174247289475463269383279615376027327514452285532480856470856249930530643762200071323515632185158789850019917653288756189415495594288093020179927991931633632718864250334919678662239714988092380708957759331054448025416366022999741829097419277750777459329554232359124379193534117226492780808313186388125742865794850613833135954268763489770098161864574661091145833119031153811596015933843178415434450469566862785572100854400886013634265772534056631727007640144372971666937938147432848292702130662661527898382777589863307722379519762751651140764360777269931418697729512890267715822546372416449170611727498277950984043912159179415312158201867070641620166064521500356546406679503475904628988815798875245153582625262407703885889509742636552623174828434804147877783608201058899528612098632825091633734393192062148996024271152511756677541280277574655564390999679161909279652741287490579798215068677160226947395311816140692076998543307926359910709628123690857756501525915391835622484508035212314021082456109132892400003849796157984761443972765231444528231871575466574759462631833994192435668333677730365968665765462359815179549103487654690612344684069485795265600299746932028596200230951005734194379254698526688586602991835178444442811006597368322573559470809143075964495130626532213311408823255890707173758048998423884489234308341233294632643455047392216038279598407116876373368550278340335597748977962006351739878178915801546742472980259769698968162502927183854103852753779752794243029634145247795798250250430660470967098936670525373307797856993516620509328700438296213534206345779568335471708067632639223192797524131237535960932289964633237315760413810145241280314346818949582077669600862209408683086204931690074054206237627104759440547529480873683873422006224575557324823270185296377640850650601099984680086287881915638818890141659544698792593740415305842898332336093794225443640455388143572343199773429514581620016107773161363237172330940114493493817386663267621834394313623545960693430138653698479926278796268343497385455310039426671163088043219611699739716266974784912717313125737480666779688451879473423468759022783410403513555362482031705470555703900061682773419116190266707946120754195261276560777571825866400666151137903513084178460416542478515934020206455412447980035234593649047401804099308403892032378970112631729848968247059796221562507598613360740588255290337251609509013305483663847010501308643268234325442121959198135825907190304046677159100022986322268802747513509780533115818854015660240937040048241678735255401330381962992170311016563504909470665334930454299242605589915328125090041741480836394138438321890817498993383066365059020031211798250625392333981335138742840174720214362077845821282775513217913880023156495045916900786071652744698801886748180729285228741484049623936527736715769134366251393555375503156637790280112293461460930300208120331243085448794556227632242554560704651979556375303219175979105468053362233827675648400155292673141750756987129139606959581318192873388144986859713082337368413543177868412944875890783732357818297602888011445765055079290421971585511583993587860833578683714021211802036114040995516366544390778675023472510151834326378820853219800841720581436478428711291554634525244223429290723022196359215085964166281017697146749366361226533449667241117851605487503780040244758754102506437487019301836823200693596376490429125258142457837446799776977281286231631291897517884095605887499544508772517765394992584152578487213394636339392022675244943535969412733424859120478321321165522053808849087937440275213559839320438808049513090141303016307360003076843356279736939309715990047032057951758449441732790445407510102603134378668440699432522311592056084358510154361905155167746820562369595036799063284856982576350430475953375761706216319971149145247715521996007587468758408219590079156770031804930903363706368939569321005240468680652448929785664482743548774162380929861408355664459050576129513344844781469254395133826896284623828749234291470613797841394266107679557352682600792288770694551620977707874234759716323199300742084582557173421663918664703248583234364546851115037889236204157863434345551203193560860677808198315218244376323884859335082468878358634197725214659191260389601865886467024092460272264531515423916960847807916371693138321228778077808621225933264275661368000021474382506222720193300036934117093465661841237489503671684102112320828412417003282597061246584663984358801636409707917073382278876625347972947867132155428818902181819661546257333659581781878102186118177194769150357391265583105769040369543670526875222034809843453711127368252099549209889667446415284514095095083503998340754330231785902239168137584399779400648904995778342360175357953390312536517159735049810727497758465799869472089178204115736716438597597953513899062199586146606273541111670499043272016751532189896877158533808043886632373680893547434297930959129842118167926693987992002138396165007282198514056125623738276858012335231286140910960351445314695445397741590062661959864493808404160468464849244062823016592683706385395035506225066162705393470991956696670562549702242853752979954457975665802672839778731865888909731051179197147116655711419919702346381962172017997341256982256613088285195686658532991386271442046463784781491251167363457982653126997799647147694048373375608921418960753185991292131385306116410617867012674796240701091895346721357082361685416718701571775269895638080203115327690814037795212783951971784509346117059626643621706482688828631139884632137130808275828066205114688606279637551707693671881341877152922343152903617121654487818175224685873213423401257851594836758365273179866073654445619036961063755374788816847791902594580498215282674426065435464413376816174250326239790272023995909391629794361937746954708574773899838703875519549035368956641852350382434247149394583287928835347557676300292027348026133779770916051855990996755949171034622377746146982020853755457663425549809129108410455313670168232952548249486291231127984922842164458271310542237250886302538301664920215925808315256398088017020825789783892762524969484850800804311380701314048879014666133795720828180405630537126200787313800358912289371078832503204186358740303717680398961410587569695365958355917411547911807628220672333441138505171673937262970423638273067859597660107233637541851091637140305684855402469458642652958314719076677876495821626668071373075427585968405777301349825290601563451981093856819536714596598740115334915279223762107843865278156907127144988657925459240704001891824527347200484482040281200664306566247171852627966702535724818461791082110157322921889945649710546914008556080236612769992518535765644353573975224306653126167312432014817903229359822497382857161723976805407073680264772222592353323622474870783200246170238482565396234940256184316775984460730687964035862111651993775980164175538845280744325870483455534648041766870894473743858142384367261292595551293478412979207847798105618482490376623971942646046534349396178040764946437228938418407653789305026063983456564331139698804370135146765476280364884537416162080781821836931404620178497962662735181797235489188653470408499487941015838245670531079436397269285849085932941001740496702882483093124298344953851414189538220877091654244920171417240898174785990005383045157199424097848878609949144480395534668558340056336980145364457476129672700502715684398445783457619759380663160506889766593515980357789555395658176434005972911697117056158401661873199864346352090151283709654157058706450217444489658217203360253201116529080250688823474679647682512807599139062582916517355843391979032757800028300209479170374958223677676297314581164834146512605571310810864026797699108608867263899290912030816341708588777326215239308792981333054544577891006550570743333319141854234820480581836701005030172666721270999139191811164295311964137501562773179383744149162764975596273902439899313626889536283376705168739633263134841468496652771639336162662173285793048141116473026306598217124578721259174933067104319569376134522483261660743451198801081713826043846224479990767278002778175479076421002936305062246403396664790849051570834336759387965058939603944508296645038217082609484811767370534091679178841112878429758675945955348199126947066398991451433572879565307290801054373696565819811147721039538468276313219248593211699447629255864658043305458033412938882615018112512241495869467236961451028119834663443297932010806316965110234698280289391927728614155854615109954024041886599159330951616282204689419357712805496833522692877425766755764760397553570889363240900618865726500379120997849723923860517599460134959639359366881505036290590730558340527200038278061983008112232383035399590854090403366151154567108848838071037061519223753168588185197740013227413426912285774512051517464311587874214818271490904828178700760817008632162619086360530170847593209346698932261582023766905715027817027841735327907694502048342741189523643351479821425341552714425461110343402342435569310978361954178694857554485292698590779597171289788754653215876712962559832461816094859100766214646676898859059337206926535859214673791693121737804203535192394010731624656144700446728918065074794627698171004058979337946893198615319726786000211654584916191459357092389174820306093761625678218379390867643576231921654358461233139014354324102016234427135214463920962877758483004508739247128154780496263615210216537927345001251054422180393764834986082449261034997336672078004210723807180323533574135518957380460627223954118544927630816715280369999609883193487712374988363016660949871544652074522307030829216390966097332665412303201754073772856151452157763883145302592982610600615079612771202486447779376390455930766758231200847517622920519915329952654010678641757191137379623245990955281204091799721381810279834097167188007596716857587539573014829702933807835002671709329810922914116366585618894486741959394576694861188116585226587953033000442591416152054024701226645126368813117595772450530558842584272843936351572991783440280682274396091235163021484796739966106704151726278085913465005814736033072030021143144060282771780659727193717913911942559100539924568835683505140878682082510088810332614275458080414450317886371630736027919940715341588436219994874218756686569494475139931683551495446969014288089362799897289964627255959469458868559656601773269076749938915008913374621168224471777532633787525587915652896207051493313198851344799369492853021262684542403202358730789033697463002067212653906009624890935477087883302728685245512084231710208881058665364618446126243660382360342967501216517583226868934874562711898697466652309530337669751095967499362971534746836553253539355414803270312644961950510228264507534526169808381602943125479075522460302184387585808980375538903088535725257472233962450304456360851855187539666200468267335245471952114401752580562305836790420922395960087764807736307438053814833674672607081749428617160074713835159195680837034860311996794239525699169308557027647026475014741896841278589623325353361688904757534011615896595722841528136312568828909641703322636020449305651865080718512543397634775838764480985375095096990042289837834562672461803118217985663330713866996299211803601482205867217574713563370075626908639892329291754621914030277667138209429327836447997222768098007390010711850912594467513309882904681117891502287624179432047674186593798376870079695808824545288921904631781866359605964968312960066421122089178449382419244044214854844286810971601815174088626123976446543554332312512011537813116723786741679888091206969283749136127361160838457483206542667385376223962300126464371238610852241632240080027541082472638176780606617782204312072038313667882406282621601774138930977060825491938558923674401467535063527224166708194418442655689178597949797140805102194525769674441239087887421061731277985971219912707350406863529110407644704208639043026427287783014412168014589058274916581620696558253827823821038085784224329032265849912916016497981472265228128597763564826429144951570178377772927041442202307255808402832536009114951847394739399335871200935936406188036085028939936208595945005817157329141430085268859699953350508155246498427164526775732657838292358677633589796788395005124333863407309612648263914645562579101648403378747378026815548114677425402647403627435416903806407515767253426372786548142099717840592289588089572449441565652579818901552929546177576673648497176191661666251664562441065995878686959114149357619450744788845153145361027271070266602335379129762365084271239250624227188086745987307416236363731442235777386736781972762585014613661962896317464820652360981596672365086375881043647512042917076104791275102666293619413992846152140894993061874804083910162892913012314128503080145034305280859142713638034958197129217759379272187049081695899890980899742979805368125372662023730900549677208915387987746356630040889938860881430803622839551867633921041187308217886227357954680109981656064774405056049769800031121991512639176856426903978220603692170076529399624980670109843477438882650066785248365567285856644049572438487308245110623538456586809544005171622471512353366562564915075657989740241563858596755583333487560106722279276688591128103687571752533633857058573283766906212459826202276795664790212453754135095867257553595975877541882888815981056048655463057871133709666657783064295803582808271665995215644766819015191573792276251521654904123906358403931624226473792515129524542451360267788967341373393381096027042938058187585611494062927691022674208472491581637067271322634333232953637736202500817057316714739267098701772707991185049451748173515229257709793573764538446145733028116634987405467026244009459999080293171313265180637432484339098198067465321301956109744755105795468893327757849545925801978367139780880902518090419815240168469620888120178440205157044374204670751118480512125686429187885485006592912630779608512108342212652786660536514145443307202107039624607284057498431945592211107469012681620341899281921207584412610815745464889618239881022312161109221634543555377257670954640369131268908834196513240434610855686505512211230326515326195806305522507658155695218334034658825280266489942160756761419540131848332069199980678852733476447855889019604510663866919459081176304826482961224909719419707029360775500356884366013993271013525982913240391886281255206765066806877962928450436218733586803610458264315890018908569689126703471227636388549996099468639609895757222226941441956505563489574396904244340940283883829302340928251797929945170674593568661850998044241271679319172817149448507185518402487581625405787687572173078814316950685764691887777320146549597466672467501233026537779423583659876446829853991092746391055296832929851669411222783776218196106304994983379341296207168326992017387481808437726930104229032442144065533888631194865285532142925103125009233513730811123033479096552866214874566203448521696031592934052397558383814345351846377602930843023283008701592065460561622208741286581447691829810602393899240898051915916594731714962094388936384296743946344877844301381701341750144367396366508187629623860593176048239212984539750914026666388579979796113248874997397775060824119749646359628262676354705698769803570533830017707545869211811616632083589910927043068766804159752599446126171094718048459481097782029860391555555804163068793207159911803273494038054865978713505853386080450856426774533849358525997221551617004757648571333466420730856477083309452127532760282665341344500006982588631366058564187599274929997827889546395094059605318194658228484658727311208201745654938596286989193623161379375193819733822714468601611702355146645005672073817888473352131140952370405453751070820318306522668710470827737419726371068571881793867984287554619283446574582090536387763032578069918257336735437219923485635434125610161178491148593442529354847775481659272284641714555042581357593558131992181706856997063688170334750054616644667373158818970280035949147779593237184486424517970760995650742587906879140401006700798514552895990635223052609721817514587041844854219861100055394374264294994568385286791065754438547299233775196360208176433913229066026816352344974813265510277853826189534794253041248901683240379928199286078767067669075472193810034968345244519165602956316572397402622825259870507658319937369972331620445578932109944859083953202226497835554131973822813601505653205730540997123939257833777492229348506879834468929301960447033554022759059498257688960576237466498580681709740915326040108607523463376357720982947300845477456052854746305492515409345785250653760424936605808763368742197817384986482478801444891852703061713376506991192925850525000768896140922892359791849692560788723359717630053298930793039084271810248297888242885332660313405015465090786994655463664325998437138940329651001942813288744993852899434436117417429127767532150278769778003766883492388334160315416878229533606951120661475082833537222378078890959774881897161974992840700199951148143981503555814867474063279435309977774045948917333402519509920764509383024898778708510659204293143064372978438076198417360316374500816544992797292467821140879252406263258397176725872081157799664786437820600330802925370269519679369290714561793467398255767850808567563739687358593534114776965973712284948711562002159022611876334722643581647542263095137002514172230290620139074237043635314509624405874963649164490650853178162359516609593650201658329784010331573347077257410967225648605158023914630622965473350403303755124263409896327583575758028508394836707777445254510370593649987497559922029758817393645656555700803325188724950385104726635741391065385132623198362680098228518368011914109116846570391159710669337541777506967638902184576710424362422314240506813838397495456683070726964709907627655123814525916597292468147466948570293795279785086576344158960836496722334710409569765472788378169776320612800222865438524181520112713738657439991971553167690308650166729557335899989196983425390606574894792534516768546609925181968837640395568990138688819407900781779522789916101753045004239168319601467062267889972288299295276209603332506944974745581900118863234159213021051076512300934926664508749249705426806179796299954488518776248958998229006317301115218020653657297804084366554974461244973871109261860603716667100080714342615266341345006420093881904738490164124832862473102825983616369151278769637982487138990223043095698585245474308486820925246562526837004239355535346950173159369065521048881026677609114800452345691781137168366658468866146877441468832635806789822421233978908463651887223592902489998220797457759873980329018940777096370747899980057127700230130177507040746299108049375864092165028425051008864060355225090890520608312728290465931241325024719072506616532697268739401973599053046740113329921321512762059186076552708887636716984586888233438308395577126028642105320511153342784182195195141641895776213587642486971493639334296141660803056034788718271170381870429503004957722668086250395074268083363581444314051991117220677428444485902112612010474279855522087697456495496119467394156616831154624813474668793830839840166317008678941333795810749831176932038536770218649869181011396366073294792564665872297170847118228367227697121084078953613928101233224917656112256867585498596041151512625313603389273715751084812459364398680290299042774883259915249682228577109883515092144021198545549882806559671295630556295683412989613130019373707855771099417827033499720954964586389840626343583732095320716419282253388701780901769153060903127659356739625733610575519629173650411051116384886643301366744387195434032083428715006245435794618064774131624696308972563924578314756899530393460965964715820370931909359921176413177599443967415428756619895503109960219919718233088594057639462935508965473377494401072168453521228845857190537147435062595868777031307692876788267810532841904789595628751665572944091843547176133084826248006051366137409384118625339449640195932465649136448502946863720630902754134199683570453521388611661597639630819359494088269253469205044361863197280858776107902647849984774447298033062075014675046941086923059497695611587416573563946912765294247196683527158841678943563429432623603075905363919474698518918066147871315232781563426721294708073079929879327451462757330624195141232247630681180601050108158824285857401052464617030313611334041344091633953068667398501659228936458294519032938281053631635841962731641918289227360226005579203524379970911341724042734495786492803856944021218982504802802232039998088032197661639847460852054722618881979671490056018280962757483521954085765525358966647626691593086531130286039853853090850025361333081871644109872375284878710043572407453238749533472827770164882502299540504935954146853522148023072403837947428946693449608898395287902099994397294265142379296706103623168040063795565629705250205812620243568571954262574878306189082295735737828318613195364175265602847644912139181662901885617382486629279388492819457549225304303122707940431871943055502024185131920227632570893518804851300717011690121637206713201609224500026883481575090962539965483148241402633029356059396251671851596200501786609720416281272559297555494069421567300781577711700253130506683694480875824990195053913340221945486778929424578011341113942164561280832969644068231174460596508686213868083502726433091060248184009522420312863290275348142536861928295329375492620723681523668040212603726453375880709343908283798810235551837559292477372196112571195581728707051417569861932115455747288074007919909281886178254707728230279562235307793193361703915512064149426026079891142698350322352183546374229371103536035451772165544143614219824704672677658433998210518846841483725801657377063056572888970786074984471520769522620750675278257759916529205181093794656415275237474251455030513928740624985966929599877586844537273370757799886129970794606237531280247533367403180294109924248278697907052555666340218972985492436240324226919664428671301990262030829961071743865553577229120510734809854002634070977880843771759022919373469734053526590990319296527302370313192110742642761972238255911013885519124537580267823817357947168151905087994384265248528207356251169378013528916993014020386907949709856153903739430086903367283633339130560095494950648777921786500522549950428119667936549159773850961137082152921166042492137157801511044151559802787962427900235655670921532601336066575524035050552362780870632998380648503626908519404094711192942767369357589050858863953381952381325776584474648375884860989336150778365988439262058549521053579434870360263071607493917726356570967767753423279300562780927414267344335859856846279196197755431834816504277567523182218015940479218745021195432484980256148599693211170067263795147912161553923911241236426027576579640434853540448487066648542422069077726968605576334240574254386192218883108086408015739544998532901633020084865559758105868989169384968327737000571515148551406300857674913962988732135805088998265760342890243775370169306571550755254233998537179085703800539558989192316562956673066430474749843784363566357927667891292247919479016931300723036503611606465862652529554883012022965616850394297639927714864733282061872576708013789685741683301716642788315696060016366267927171308961551867961633129807830333141917807674073366104021149171127241740655392272164426233233570353549972612736102459845495246969788656547494988471986799686217164084439788267826602068034160082770663504461188738532932235880217433221518609465715158355952226154325966946554559794599673467592963587518091422332591173261464365122403963442215502577298570785044201609405659481949406211246411590865771228328887561445825428097554186043784853191520617292854516078153376366847667964666241734417037733580546649436171436922887317948305950446602813278628985002456657339713652191095898236092782769462960472455506767106245507363377377681911339138858822835256424824033335576574108788152268377701871585419971105742920612442423820579586205043569726819718274770616066612744291457132646239758344213125856825382510571478698138176570533226817812063883031826192118315293639954352818138970803900538535540873376794724331771195178515630113723677025869725332969730011388970240766865408326129209905992336787983207408445899332275970092136251118204371638794588417680320945113180301406011087484928947817407230837089837394569559266029498909610028592175695515839205434598761195205956834946475230155215749486958756523314577369254797195237971422057152191409755732330553607603242020824255186784798674985911208956983724746465443432769527978797741474369255067204678598950187241987506524150802397166499653088043730920674405629992633334396175824475205136039736913578462857618079910337981047200111814521633037949554087765538097473839472659444962342238606358128084127071740510700365211084308448182925281287421140720630803811429933463492062870897414669958630578093197119552239672521955417210478648131475119065852386148508883078387578316441442666520390401954740481203340362777245119579094284536763945424160836085910668066266070068567037886850661643021533490893612788216978925430767665823908296853502608778047279041020309020529971683215687623907405636982042336979616879461491490452550595426194927484413472226892291441943760277705057829830486514842727819599038640976684967202462565988104458461647806789837930555363627903229634062575003757425346548316391676271708562604119265519028234261801666666445350831560085358430949128202049898730648517498534034178154630318996850135419115012097621452769881529500360712717052917321294231395152031592460289274285503086554708285851911150916069306190513082775580630690848720856098143617105200872943267114064547375598664501064376346088614269564474908232561692393414947659220753878188724074768542472313749650578178159731697167590069209152195990911497557864046067490244654590907825839103711517394934391968977354893361186707031339339627431538068089845445766497564495580173527349465711831798791126087307424085558286304020126283498263242321258215104005206737818982894111414288481392552575528527692027361063696273581715378497173251106317500974444033373567769987602099237022086338434625508544049024527238143173637999573103157869300685164801965668372618063286627007546639174742690581986636007780024707199105993205335865397684708882385301634195526430878285161888962755929010129481899776513649376120100679269902760253737465216235234036942793049682895146392486023260402668675239756978288060835944546469300197522893915557398570895673018956119669590379226707656485316122268966959626550952666184108471511411540458606250964717691618954145629380248100752981455202734234930066415225895948532941898694361831888692553196038908316577331844589969998659098640429865718580487696202845314597138227307973446079585373021350532341361491334197729024762372873925663653148448113150304427182636646155908257182327475813834284633513440399900231421734386053255341353988841888670085262315554811097897758946907531588946290173250574376322209343004338528691608930897913058777115877431389711473424005761215928367327732733601478985290670694900079570626961311619459578009899185146039949920561495782801619259249979045500278277298046515738538823059181850540042901436193392318240270355075076349879136356714339103032005979776980343496876094939242699625743944239664037526493111293815968844666043133716403955648437830777064057142119243413810437226413126578565073993554496640353692298662292708029466800383315884617274413409078117384359037539250938490243769650826337229694780709552518601779564517320069328721131336749370611202749636623242579313202459089007883677749123740573453494680177533316884282265028853459392061446817793378458954523189058097689359431026414834241331845372515125146053935312766632786552195153881276764285567290075247171231793532587328411141393772772429809834330701918067075641710309854245323104681441995460525619533677377775314440530516961931568888788802645161062502174948274004082533798217671143300803689042713990059564427492839000819171769861745179938973362689219901340751078412126399226144387102881508694810114219175511214474215610907468740034938426516224474534539418890726156365933651946145743707301546589618218613844923772278904597694032800765125445176086207820250953506021275524895566404737327306867670328375572830768989726271029190204274582995656665123499891335121700845986145287584093887755049375847141085487286515264880086267186294288576044032460440279495643991539935688501196193947520747669581365065542480137587727851261337775211922826981836434788758285063767934752905373480204079129330651362249240105266044503426585539960604207746863594286211333354171767922297614155269495098789762969430268896703486603023670316837533767773301453384359464091849380931821662763321216776319588820531648010356359237638488826234167107380752579725373546071634185419742904064978803804824427837559629546027844375923936217132466177701482125136340467373988775474881098472463893794686872640760481751016711285031123440703810981816798336204320230042351749244531043496142193379370943471602573328597496919330937794897046365359015565530487595888361726041051516197071579202833999769437954367361689887322444070080105300932807589262976564764943632735810022697233717208217438348587827427662887772276341676806508301065203564207116591763943410499096802896262323600864777668677941630239251424432435681272457589096925508246529225027265647272649783827387431112799909442694531449466224358839913682188311415147204699088842728583310481850878286764686075376152523192328397282018348318171886116142353102470101369012868458524091181494106044125313470149963048066791315424158791067220670269085445700984002075402233048493924419375220843424055993763944302207696891058815302844084595317778529608674216234275097136319616743186913895748543822931306284560723587610848223759535509248095739933776541572595762669798421778053030994853039806799805746450443382250770436437579433163132871541204862551859514790244167928667058822798487676061304279920207119268775605703741140552952181077702065965967185747658632419051337412277710631426405057995305324973301075938218103245501603145779857208608049266733014891744605976913163345136163555235813180539461483506404518229494321734494959322488248697632780558431471622273902893174422558035816759696721541258028862163085921905962385974664846673619750437058494123825802685986854728535044240187809567777618517774206463545283468536285143088540505179514927058498713616350096613786091344855348142531384702145178934575311803823677948170625465438005131056415184520456477949484786898391700550385864265695716992249319852363922909814301196985184739928122401006508803708818338496108373239333806701170189027996961682266994279084884384513851088503332202415183524156383087406220676811698200834438556109557527066419205915109474730909932065787172116998641679232948261475586973409256557074524810071641183854562900710926935607076496233772517232821289047758005394226949436020864998529368640024882260765609173121482431281268231019902332396782529444880581603366440926931596463322558687952293349329282132996211051764675145151798980767870528726828007630060055434605263308335967867720557199054123488781746845800886236498312837376587238784947660221660453894645809020745732238167802095711058366924842895279336175383751417270750824458952146039355611035729665406375912893670403685688346535463360451866973847019344646317288477947038504553854630358002072271105327033729048004163633695639677299476553661860006223464319365669600966812919373229067612218673385601532222856280187532120312830325415242334815644136473036437048838323060828256311262944797477210006619691350747136304729970866412958019806286920747800403716792571659230353014492836048712570082949108764140933593892337679259665154065651655190375196748538483879689855842804501660009166427813196471973322256271829633825637975858826871606052050835169020797425955107094151481882047386529829897785176249629523198346177152079681578498013977438143629527585737531919790565785012301571058980857270210829648057119149297877576052434715043133685382833271944095488941114592972021410137294737726147175973543506211663989190793161461618777268947936202949747921053758153643011449383583857167918324898815270479666667980451786350264751497628935534014361489867205219270349302125592328081792291217872845729791232433104557974997602308808099665023856750447045198767554425238179036673237479213843108354739047444774954449521117071877804948011738442804832724120543548039671177711706522168371669479228070355230393550038295703235757070678751500743791445649755937717053990183074279663532942315271559400870032429055841053494928845391978544142278032272057743554336555971289027333459565062771426771412894512897541521082685339515654772634949170094974771459442954558800531530900005827542131742081109073685093959436172487329995372289013177111605191481784353001026776503348076887587027539948073743928919639297910731568314532287671541722789743264206163328743753020171417118681866999662221498453959468885640108621110332065308780489730731922228882956370326201265805957092174238340838763675118051715113609188622160718195442218758501977795277374243825210939452887268081135251081049360842014850129167916183498137714140728789023096167596102652270450672873980892055305235054118097036967784653391123269238639711163182341186307525366059994616103231181057602275556202744258213278465638174493528391709301780655456992453929755698760456586607836933202203118597770041112536699406290746650446412424355671946644766505433998394300568306963695342527907448038577386082535361996259066175798572887606164357765429864384107090785607040395029359502720318800411113495018814095826436727409273137949195833696128382611553909777662866677706997804412360854491675567699136038119767809575794311969592642547079294771084251367561993574902918616116460203562961188769008109044194289885659303875888935648477261825543659459078102707032355373254581864143302686999584823744642400323071894390344380129095277073715546922635733522118430912994640780597086657136629580901293373226678490250270633057065352150971734864132518984821840244897997275890092540241895245195565209176275631670158913930709811210124478789327831602321554388823698121161261079794505791388351647143961042415129793821564314853173259270355736999709616353453808681481018839441683519886568803058066215370366577045572662818592023601316567426567860079667763255136776365031310899338412155170026787823677441606092234045349464180491789460783491308421512898379151577132045980010550719796441382860034803747536586899179037157152033740768091961727880984969609972782925294743422835477739564474381358955785089095916154967203052952142508800112382388718231661356518317547618666252137595229124709639096670784560728908244555929543188220296848641694312899893731810494549977894086761112487661587541153345897890587238522765172873864560014850263603404166621045523377484378918768505398486771426009964013008765947470824453569545159689574148636423646768191701803406691921331112639982710099674410450844083570812841747675408357276532582385218283798731296798342114723052030645227307627483734030286948907677982476398253093362070107590178216438964469649431347819228046376245362088563482397279764123355194304234258228617942017419041002825993041988875413104471109400027408586938635657030196935689871213718986679723345258966118807103300677306640044641939337705015832928013194008378005438746509419496066721674367561131030990250506493148284387930493823196286568653149716421874887010069559302595856770302115882360886290945810173968519472231178264707826249391057181704086174703055795829278817058020295815791355587995774841907891687250402669900444114270167331028444202016667894418100766280412607274294090455964910456090468929447605968247901424362546508310801656142050379834651375285677361127461210287068120352766692030140180964231636353724568348611563259504459500228257845991965537973396485368647222985850459815147460328665338534403481033068091306686851027983824085616940314448468371714976501940136907978212767523367183458536537938883351839134716338538051545331171172956860996643465450027577844701164885155779010206012178689076558318144693144451155843138643570618152447183354577326013677573625668383880338042131573415811208255439877868470888186266171508020168465879109901889819065769861781725877349720468059307070571255289244659307291419420709558307034225461419898536437337752947388155161354033860737263383734755692338733119098749460129756469933542218681578093873615185357517509831027461424402468302312665563978662539131971173647337013503205980883235039149701041781739335410523883560923221445320561569133218088020896437770633696851821520662660433113748069631084847194620251037758926013225629838589377903292832345335039350940329761571317505658850308247366111791820711253165629523952609007233137727535606782387256489263792140109045700824223489705971528840105878597145067529490994333946625953121685979609341327760866871184453360000327691193181826778126663065201712065480249175794840148977992183486916591182661066143678276192324389137830500524169936568188997445747202057361408319421040522758758014227654903483471464594424702915064460221929169941431904356358175105773278516120045012092320379254119951192336829131391474897295970408166715614809156913488831792484104280440351532915101764550877082437262636056725036885956194154948269079084189996853048533584453139573749545126406887575372944878286603467515087665819577826247609815151655306793605579591822842630174037157158537020329093117595402282843424341726482297187697433016640911113296861647935181893833784572544991927368952145509619600372871012190222581474208026082945700420523954672071115070614024854016378096230822528034504111040380440245804429905143962908771165539642589257149814191589564482673200236478428897565567017756222175305869101975512272966964757132032174938695755277358282559984175489370947795305391418846265862023141776421533365551306922887847910508196828991189620624454199715111640396087701531608137802097717276744697434447175465512318386816592043970859377130448421880129148313540098029601786374381850546781774755038445257525481346116126331936361741066324676145428166804864129303500703371433740251587603835832065098329963750745939956409098227655658494283536545943090789693044263077918813969871086994142933890605237333478737046285155641771352134952329539563479183058231700845340412658089718889975267715693846451267407471407668860955299201296468164131746454966705629272740935869237266924892229587158565510720204472047789757707348456554810541112284730615602703959094384172171579084866143272413429306000775215882999655211768176172595534226633127520530671641967742103695152129173530909308221013306021325773811602800812172491399213570356932045093405219704333330560076064273279186113391630477351587921161095474967050230747814851531360168117510838263180947002210789908839175474793785850943365781823850846603418224748131949930998204008134336988162949119019236719233608406710321078745379162626974754445872730187470306662981610973773211607753983883221174281283866172371904736549295239584214737255202829301523182794809918868693588192095487875186920130903551866806717391722714767907271965886960335397524712107157536408223691098014731087192835456937098756279553521530681535760870747490124030692675506655752707843040394777192784686084890697113664381606743472238805229973548919569223687503909101701081558239264866495515461076137695457925581644143334159749670435860179643521003208807982531923405626939368732854252368593080859003184487440414478048900804583522496107923880362404000771411233477536811024094347408805470481877110051873147447344155255405251092454361915883255566363154422304426283499816615783992312532295100094657694138868713213706386532085438624237851776848118415046960571090013047946759195075476013504891090279865855561857652825010463887640620637654162084619822402382097462017398405522023625191313518019219753093542239619008278484562755128102857639907574079506270316346243021773459345619093075484192851225712418938550912014777415684834323154276930612365622089741413636053328483484730735534684215206515550876934069267007268697686820934362039919970938197422610291339689179948381366878807492237151278533903826880045409320276588503003593459512406085646510006406800414154016128489793726388127685436144362679948242407014432270189117466548822755331020851926615575452996287904963511322558962171504249348811531197484438932371408666124592803498042198080605609407363961082075935441981988465706233853134812648495236630485311669690808958501849782768072620291963148905882363724879398870642204789103150398760730729626206673973463080495006639306444116115574863081025960249313184386822106401337220547518971630260354628455911901943279869783871751214553877817841804810380391851746342023687665049859187655052919126016571876456083809186049932460551318813615214265762437193222161529025419843422979598054635476517775988457437818598928082991825965603821141941160854691215836379906288729892710479489222494662030552761973520510882818691873637724420861817783647797689765108877738450961810374649888485542688574599290275669121652085772576773053752785790958930146715767064467504903203209683391888194317651487166689422651734891111080240741751805018402593078939873333500470856916023188410726305366788538583661089834893357850673122874856513581421258053316914870489350364706505411111284415785293103444175526577643783604954433568519390567275217694588651059873146383740589569205962247242836659675881092641893378439160038981225579353981115273355501870893332243887547254348063645065650142498766214845620549921684031823725379123722185019647054756351589455413791439538586715443061517415083689744487345332488417730872088082516564711255088076386165015719102796706649323326099513880114934749991381163485751170162012092551669559629043525549260544995109884899459056869503719439019623462016837620050291578247280841907337586507225476068138706900402645301558866358467838244443173004899908818699747346658675533218781758909324898049730681699173344902774608314729470067076931293499148298589437172422346638169066477330242231705879681568671988493105868207699787839831161918771479473738331479823093799006580416918591023605759626523158292423127192411578288718015604797698408867815244756249596740295518413077727084042325958853841565807702635410282489351486475798804850732680886447176652572710762255295775541649267759500326740797155281595592427880769993114862575647522834026445294613437425162889771377508626654799957818701309003396089619086653448259062257929255423113598566370462290648223862586440243061508535720307445636076458342686166865822361025933492810037066176799811299017128251557111585018476506481853930521553733246314665301189814270226325689373139579925610469843007119535819945096717772949142411800011977516503060692966504766824848001137308268660706274334564367857181303130055407560727118342809448200130412141099117390938035058325773079262853758274452551372750752862588210141992030338490157208932772273827375071893715899715220931993816104366890584893565968860524386743494537511150516826785595614605950529093941395255364845488850588129954808325327242630187908848034912078165317602348935649979228094155109708018848054892041133282683222262338391521716590789817448829461854953417401549810974911390156194906394253628913976678883744404873938451595621663745400696905509844625391491786999829404017667128097145053040421805925381624675273294218681758094331893420798955590205397890882742855332200967218789532039398051524524957471793726802645168251468237992986240574577361120034511209924803081502422528411083303678149199884947725069676997044738462596205180140100338048811459199746065828492096815540703205916868794794463480224114796690507655242215007441468639496465265951373340127992037139313081929789014234533960776701846769096754010675179432574170670708042684123638124052279712227282782893276257263052899262784353743133131576593611661255936566376409990224671073675464694616118186931570270933977244008170471750622635575320641361075000662001044765615082577795480561847525168838355920243538993812062963064085901029466045707775627633701943042312884693693960597395639550074986410175954647925646970354416142492614388532324154979745755297918030707757029754247521710593682776981374748558772790182570729872901411104903744176950865931993717387516096747068307884382818381451339188735489724982366212308034700010958343877645201105012660871439982950449317810582738314125402819769146113332898588167218418757542375262972810603847105033978179309742277704839509119088847532892785360308951471563931166875623733532146270967679766892901071731234375784523259930490366727737333820384335677299004539053134696876189367578520886214295729521025653592611709063532566924530411839637325502280885883983782463614509449780350944149007983172338451764737857997520835466401127677201441792635458028262948416863358681531249632824706067692834195921550101883318059641838971701762113129074347437448464832678063364035328718402635110597975669343653605556560662376851828554211239076560682735496321136453197129765864074717820318914744531762441518929616364940697930020359890286340367013972835905940137333186681862625430660010200299031402671117339078343291665764938377135309332379684953579245521133533918264599714435519567141740579342719029079415095408625819177545268180901250496047807018864095540866261214337602310096365568218721661667348532207966661174963316636656982121290286816341062595684843078649704703523313559686563721865559047043706824012894477875214001787372563138077540627059742650574858704360135809291287509482410470312236657664151193313571807881484321601140976126174341691235628436022470125933943693923553212654691024572843708054422154230086621466204048906707297998957943501255854352213786475148849767212153924529784025880260091396232129005887355383874270262199877882204936236877358996494911962106240848983916564625859231127319071759334857395879269544233977156367488202675150033475383913870492572256623875068197403069171780198813630220246662849833401210363541448711361949843709099089732324886339362138247796345310863560246454286565458649084658081718966874472071349146255749512661367135727411866766482443772805332517697015719533309908725988423232960033921750172516152494371150639678152171101136161085779168602800593135802877141823394676901360557771178361549780101262387650227516602342018875993993178188240331749307960050103174691179324977197214987975997573893556707639460805526332300389313520078743879819934213570301919190368302243882636490173084108047078269375658827538072245627450693021340165398254918407586743654079859000014447763391417494205697709473779663910828222305660204876989796047589233207424367801221097409970765592970241611057523956913642381556373247560291805946014117479339378745865489118344248327150337745210250522489441800920431507794122256585696899340278416793321003473566049470414097786447249887945990899538460402392301037675911936092827413048419716184403571937310072077223934586759510545448561355372769018587168064938411331669483046943199288309059718529388165177596575652147226200919904753772105034144451539685667410556069809114026969576932412163658918179854493734015883283169025126466162522890673899259042532238768800004545660745558921619939519710625659255276559122199468238940531846890142607979085300919981674387073621309812678013496071376566380482223226567078599006925804958695900942053408970682902840920909209974501737108443907326590454998497386685933097983833084644853181732229148899511426920846484401741150372177358093915738322903447843514154532057050874936824644279998712298277673204573741084291638616643990739767096725635414856987904623691573121989304460926378755908751653222607404859119797842307822544258075995000492599482942739012197170398389533117032409562322264518532843884775743756971380374010549637705193094566220885812982888389201816050668781731805152480816150980615463369992147978903918819573807797121394548988078109068782072522453385214405544220978161261012801521076003859278071679068106513884735132968273406575982111232713521784169749035126370646930258439566459654027756313130576989270977255275548281325451204516295964648750880687111935110377812858348407463749501220722353729546046741516924854732146014793213655916285838680466624415044063307607859866769191684159090612758245989325392586779643813885121958829864129708942553514955843693521473080383007776574493525279100280366389438493627515617790093642714110439817899063575635998182606702666632878530254011502879017883931903724412658416230880695345102798331444596455201065984450325176597803005706482984906514852853508354569336993729588064156717779174859043492555324795236323953157592717143327919302570685454022793414663647121193141850731065654575099922509701342603026079485060376727879539422934272943259293252324075679745328090507502778104380102927906820174739693210693920598002731633980128454450805814218043784011156041791826040216303510556879437876835225278168021936976452880385359299744344388027082215579369509619683389125447326533987998780852272811281945798737850875854941059036003921886154877293467334428004008627750522155304010166844652712646505366273882004653732033514548565126985825938220023094288123872283965613363959491390997435968742669841980634154221243303965267851729852199720877960971105828614315120031295456332171040948704123055198653096669545316376604762682210096515550509910714582787568826943798091448628632908418269193574323307841383805955751771895221126155054918000975233167649116357837640398047567447031176688082151638948110494856143662371389189562078435685623191251312159105591889557264702772552043104257806453607374007126526215892249075650674193627775830096497382072690589520519752076417823625433838695932384258751131127532546050881458031368308802132131366010473054441509477310413534643677583488391379071405349822958717897613883407553964535383718831799000262043178090356908280119235241953281117091337957601443235625251432368756268966111316243467449364873925303760201527162701241138670826544696700631012426727771631113540703384307482739305430744773134208548186571457011135055253024459732550797367731301812812938970047573295124390712865790979076906783774462980765219131354161519736003296509581982619727727418026219398888895061934670873824551318106633735098377312689478051356647178172463726454033412098668594998861061125390891903273310643287116653380046407531820569173164932489962023916651969957636410085698361830776555074282687643640172063572684721593399254148288813719220488080078078317566067036333858958575046942878196233395704263921165572307681984861665334493117115546632090131555584369109044119600974984894170253362900631115420712106111589316438583587857246063318374383908975700146663891729521405660026414330139945547974126241027645801965307542269112950114051877280301869249454993742251645237737720623255469978667609741354962652788208717077735111438552157472640788672689269219063983223948766729056187466480173166418087012345917034746051302109701905351176993763090819018184832839355593332271071717497391555895412375210046289155437181298594627845958324563083315568110418176350764462849607025361733209723444848533771766505368010034436532516407130299408344896138580284093552806713036170049609755961492458353395750577727550590343286882450624248785648338231817949341895313537199361050693686243642430244321704679553555245364253472595021673652884497307662140582857169460704756940531549943056421805483169185912461015509252371159750752779284229730344052690799919759414175124790864462593975281795734431986307805046725993787221589958222324703017308621079849607125309435668515314148980067144871727132471552906562094439864574754846988865133872666273299408783684632351453032110443483587300551257967678683196630552141049094226203967009642097526807864926660948052530878732622111891742439556156487350510191467348461682617492533634619534612053761492741120720521050442988119663505485299694954864248890843794460121116559425687854593131655381652681608747618181945297078159523104512068148549162721091804641037582434193956433977809841232705078184572328280274486611182512889421752031441251281238621390811950050253168034283436167250660498375382758041859958189008327281068502323168131736640007510535712505297885643817763059493703276613081866662770136414634040058011764809695580559570768987592608762390996283568095615562230404833055508416675758245759868213356308582361581062973769477970470518260353426521154185062907611399133041542364643632976738511114824483696930171174817302771551463727015437809877987393957937815474407237668332917102129366405976431524645050774666005570258921839602694509491597572294717238992024510219010044731233192404308741530745304120177211598131563203761266796536082160303465730803360281428827498422006075722381415082552883351300496943104853558981919097076194075847809873264626049844931078908604464021328318262192849286631602791525228953874280595154998566630896243782794097085846767480433225975093532456308367012169664176424561977587872783010615666146184785246834533288274792714062792169136631432476763441834158527329126555373178844372911305376451942044297749165250528206383498466486486730515312153424564347125261001829380922790845308438123206745507485695641236034437860908275640623807265837115368255222694380537064040257242830489473420012626633004627084999699227789069522553381998889893371831818962557494908664864244201642071811083562861541856903473545121654866398583912780602995798783687287851759441189642380465937594310802042744673266290167847404414233706333857798051720299544536205892480235956022098811056839744688738065696062838450348711645371735774458692456712169018419179588777872485363328742133977244514230168226030727920824168726575237062123098729732657157547295476662387213482180414996255438855330233005952094160711246833754253044461319704983879880392318940958566956806077216462489226976620473758407198395480667779518240597710941422483390318859602772052812592721825531539684570008023379755830030591446288938052468287803209072099119176009853273066733464866609308014529132805743071275536719232940649500057174467301922403744972272876513662744376322088414138142473941467868834455372580834404594776628620030128442341196295719576105530789715372395817064111644680108440848919708789596324809553799818643406383114495810722348768119591805148166115231420582855568575400973296473887231292773773377802006026582271132949164911188031524154789170913853284573243103774137686795947622224143138164289078755078543903635677830608545924272966414331150371267780948407051675551284239703703321626375752680165809368887897313211485033974431533709363388720977063392432127063510845474567216672111444296487593529529119600554508917473303010891320970316977220500608511514151897268507184042232082355935973953279736021457475309391057713875973752503427434471857361462980116947042505413508026722883663194270573443344855853485745603753919584573454103111631389078570565946439868097367353656086699105057824884890247578333410907186577080160384257196568639000734777526043046422528760487667217217957341896025618054653289090191564599683667851298123221859811623310064959677855928430329902740936522882060500620969260007145658222289942609475366648802249814054352974349703996921400114610443023613357862079604576219112528203322900046619615312588925066898276680326114934022025119940894632207449581829022473392881350397725376794201408668116526166166748217775697153354686506051448408641902868969108943330679101973401432194148780220934876443500055468076817618296743702257415726736410011583181693773420865775130361271700061653386287474850526600822074147976593304781082120704286243417971457683570924866866355613534486412527800602944394903659400497899251144715569233423762637972559464981321972891492912744042441747727804416409070728978270013060397853511720404942063887807151622180236276711569047381843565362811107848616264058566536414498523275464421018595847972962798301120535049123401451267192189927484423088860555144396112057046271880961797642387899891746172385202234657372765540056747076707509070939795465083325138301895826567486378820739525862154786053350065993118758756144552233416714146904293462547269711816583389434118264898459270596778695025918092629835553237888459165187128078853175697426680752493712912716989690362028738621523620220021744849328083993623672550970638161606508745682170766989522833125272184893288303971906617985015984296849472945148535868804127446574589796710032564052665431850844425138931258516012705781621773240104903367452768297197626135305614256462913200671984304001633426786725995350465675569174781164299784382307725414325108954908440412688336143900790545793402957831794076353760938459538517771227915623358248963631697797113371998806137663280630356861002591343516957031839737721421533327599502337853491079767016560088094026635754609906323132550385468880477044630929721397407848611808945602769852503424500869797826828889825441568077369207078731563570692221652276217597579023033687865030239518710959782907114657688643795465948214603058252034712730982453238133440986595820328732917858438314851098411379656417195438461376868510997754639954498941136689551287465496352976739001868536594439115772487817956221134120283840092909607322256952678980865262509603397518767796234015765469889808564487978939035003439364448526422884813877884951489776911033636896680266122803442668016952653261625301841116293259150132048900307553704769696833626261383467255200617476546472757879548173082444826328111972037609895980804932294239705313283362932602830070390318803199019688546298297212936393329166171252102991026206598602421711665332021018100355784529518671649272492575307781141682085371646978564013488255598359464116620340120235432578558126661321077325151670613784255989460425333110273148652238477370636488472619628098404968853139927394624333100173028492934072532025842156411844751259273084607899041845907502227350037175378668544413699292239700668152828650599387612487365840781796493440251234973862198228394477198267876136983920306265283461850251064313340709493861690896736264054222785762934459047877018571570570189502278400242358614530576716669713324104688272573812828595267986125970684035067331341661616511804521184677945087819583366032004665058742807391269988783694192816860578293272321251353755106555456476651772809926037852956720882523077860614316609707444069900031743753481815634937180979000392427623822320078550460099860574335506393769230783771500817035014600290224692879352474730771946947295851955214784703001511077216088736496944357912335923878935321623204516808414989945361456357015123590816725529954210466439193970980943605390875427628225286724983287331450542129793805176185544190522401160143065823996891258301730199797776481936750340996049796250280852195182616143281944156820356688493289020409665363504374092310455391295761973388015672346859525847399322815264986506049232455733673916258663754304133351413246649734685426659300494438673870684445955073605628742015548646925184458659820565249752566818123159033695925092222965209308840060009084853341106086735534401433369723088982276811832255150390313870659186361680312238530289910545971718600855356013226989355565458809202703962681619875817847428623277606847137557611852510259565769693854806561701364679391764575430458754432291988636538782022857949728414057989479080451169320047137587298849541927282940692843205742000682919293308312264077289199829819287257354827724983719697635136780772660977310973811439198456775305029746516249127456985335771735477174459692608763909791985525833401511674003014624934943587079842285405241154687818973426299508608173994637125693341398585756076368194897394224064913724874501846216598388261668421292537388135147023145483694938895067352093477982071022306824775017092760572329208708154078769183176927198786906078602358308645877128355401278579533944040116997948347805977724457589373229377618028268612168402981480833897846256947083821061090375354530298658878091489081302308719526583826747033986141410058170372332479571840324454696017615374839725383082069380134265460765798846077900434916618485786103252199059216810121649173270201404042297730156732926953376733467540764596798690864265437933647232404448803291824582351308303195907311146250132032463692789674769050721642180075391819121823514136885938611931479564303018942545733184350682077968149041223268792965654678031614355192684806362371345873606111069209213320660358248723878049177580556012273235499255146404121094868032145509358184435702937342114671217840204079002263144897835356957404906776982846654355299954263742387724646527875117515465285656001717277272477769582959527032481328756266379639613125443008941119292086515442029552679320792623835414430767588513807812705583484039601247964319274997410347130846746633223571685881719387198570267954096115080239937357474242879987611795032298890808576100303525064622480695937945305609138583759038613838515836510824313074755727423948625534719063167154716632245383044886342814493346557930773818303139724599092166309580989595887765189882671795344335968388361562760439895551107852592780748090045571913325197533239730179245672780675052347345174777365844680192997631036494417175199060372720586721234679709150311102709983147573343650325191901789473121093002377660420441425793590289933837953468801555839870426070569297682181685400048018844618233462055443221758617273251873070285531447349144562218946851299165341524083181905357778043190689069193391742858753165836507823699460611759871636704912705266170773116392871199472726060490137582393813971036982428239406677468775340782331474099410178055260132643189477688638854057923485671138849275581078518474276008805052770541657145140194998906319664810711428978372984955403954092389902158608000027232824657522333584883573973956570235047230019380665160326312673857965979698364452380817908523968035232922047757605143244841754490858075280835538777776730816690937501776351952077649294085281743287966776687697181963074661741050866368540681227878680125253072905455966558328358656056190514710323539980328411818953425257792076058163419382178882995362929053293259248591644085387486111940053937923936142030536880205418404543049343391348479743047101306918023682147743613967318097705109418674788488781854964211629973447021604832963174044081554640630321837153396516203515963152957801383215527899121138729039389123802920248157920838338102357555944959431901696217988245242530428462595370875864541029687980534927991366072358641066578691016811005578728649566957022766617379615440899857788001010821146573450980842700351401449440537515586965466991760415875134886854676966074550373543610973411205135739041150893564236513916952189150495033179095978183810571428205500782916910142511734138639117777408515388248652585127239197264500721727460712797214649985459610922625253987820361978609903032479077283050407459418078678409315444069011172410668179058718599223432165259049939418102566800534960498917049690339755053928999066621584744149421088659190998019014123492147679342975718893098698239377929430390077274139232260688807750516891940720198647168312062670248692240940485795177958627328938000683633657181582884739534496846478288504489456478525607785878850921479984768254424321540050663003126010824852499756868627130537442049359595412656402860678982853341908522102618217465801026791555012681138429454669825581624293854160105725636927998193541776703885936581684776396930548230644014176126139162903120334899570123780456703506586541531213882887814067308648658595609634340779802778251023231814603994137793780634777397526293976813532353246454661427620161572122865072680078372620857192895601488087275894076565361146746356686899504975059031425428928983675433508168992898584773065470357862525938566689515274841691785618649160089885884393636457148249550479179091602781043366914449521133196998237811770524457006009879862173172015008501059589694216174034664729461630151459239471969553859258868699489294220795911502586442052215270202879013575423763830516531023547399416377374017067313070042209016102821798847798213489227516351158776847131210979229816723169584379062891688516841133383363485131223131396897464597346032501940181004115172833864994598357864580920824561284751326455286671084758754986375264013503217297224843799554039731266346156288231304248407803574928107599301153258077943493891037692516124890492729423209354716503297049382370645398871283704741034452408851992353850661586540285746760304661005384301244358714330555514378307674826091807521838815291322439666977479134193649018293482222359466546420425733515758556864432197525596034517975283750354054448006548085419674612669040980210359407866647894348566857175279644856298753441106392353096470542197132929518416496113691495966322036757725395200551318524789031282965599968445365318579380050533997103269227548212204229594302935408687909596576850845974537588747413269453029415574190420373148317446539495585792212806732791331803500151856483187277786884136399050802804134961152989346190554641637333540863578394377887254742755721431471995343678279982654656019983846326301163207013174598988108693325558533140657650984145936319430778165418684811666661933104668088113388751123480697452474855343075200624921726700646821215764745137300177499199617408316900285284392011924510339519255401161864368888873330596603429944899184504467110472559525133761086108225028129977352411986056654328652052165697736079333563443030815564919118636231258357319510584148160966346688068839994172120005766148945711920595046169915911207564032915473142657392661151293439277805532431103050838426536758301523191756605922598759810393207534303174179325962863413529780877646515966325686450383221345861558140955016657395859649956081837088432683739723218113527440324435328848005614379998851901124407476625350630475817105329549594979194442402261061655979415837738775142035949840463745088975943538728794940246119348045001000643942113502163575247951329753754755151492383426431760361246097984850121953892911165680904364683624489838354993654851456743469795281818863570414367858769395524840252061490445141214786154819595810414152885563464436927686436335720966440495751810814169509824658995493106288932418496886718832860704027432346529236933711434925443635675246054770677737174493750968519663136714867779381695975235526785410273494590382788389073934090712138146950077887151510717309871245309446667995420531897336148984834764648056702644560141483849167804263330074261800723278029974969264354259452458394466229023770417356990986056493416281796375159519564013685985133047311308368932325651214481040410994419861048332185407456733727493248771843437239465008284757499431580649313810824298115042983998411377397575121756806279354621314547752687120927758815514160157832488349184897669703145434283877082591653919288914673734064242020732255057478842200243167037335359316624052707243492301724449142831644287571241938949547892771510705263715835795808287239349754612939404108496005026178798889501971370476998551433428699472507401858653231972526475099323761182380779516210811660371529190010500570421093426262780397584912396297758271766972319783011998516854837408404645299288835660901272449480610634517804511778118997904844463503192030698844745347900526917891806990341846571577525801006631933922089131158876326231588247272345870346135790118463970038642182775375268365282606218439650735814468952251143816890129043790922061567923459156908258387627092807381982412816950229816258743187693329708575226461170598960010439463684460280141104322853451646312206935611901645271979233678636652965685126398042487735228834114276461792928054983821650203152271347165827361075904658158112658675633870128511201285921692370350853589097492175536754573579500982252200994800434590291287297505566327201707686886120081733951680739724011320836105653426811127084503763913385975660255087330594652023514085115507460164265113563837098285264382118000769458519316424860270080588184037961138745061129761843264454286477550627139367592894184478450018090113453377496071315318446577535105913397656339453766252958232152049990745978805945577012291043792529623828394106559934323712039371263957228491089948296676330394506353067324947403651525433437351112194373048006860430294991875860057149046330617270071538632889515065242458313736064071183612623123020861637711839413936553742468853917279026789921016537440174371234482746569969941112712242852283477964371054478237031556643439973778717144116267606684382687463958643676854806260201510650217222129479533618289237418931747142057992379790629454619246725241866398842728783227770803385903794256198826097315485149781121384470053388976737547389056071571766899586046502437738697338996179235545186931708411405690403162215964064845012833381578039415956882291200724537592945602683377270680368723503790874698751492720470880714722412424823352511266440013119093429060579362221797201206511924819676481422649298766118143110905316677475942151745537799215443918655444682590716560513119301555634638990563982456450871633636370498547787953155266308764677380553131101768930556168025304288964034683276644939274092668017408210549962580190026107060533079567188950944356845346123512536922152610497559296069922714428497249629059915750126241046102557123210804948619107299414161161422159839327048123209451392790417962204202357177311644704033810426797603554788062780854287725450255521295882120397193571657099553439393545044794988143656028738674656924886515704864937033432016309202699075107262482818624180679536044174397625806596156059127431218231221634023950074789357748841606016567136517893048142026035090404040280311061032391122681556419302131331777660370305099362987002897747508220703420458202104134873910093946480159105228224068745511039549404397908497659234449054297339415437594047084847102526562759231325820365224490608271325808263982264931351236159680756694915895915884375810686508524453633050985913402435433257801466010217968113251593676495778691029298518975960743537202550817136537314633901997356272765765739117287896574226332316230396195935443689203009618479590639666469400692580606563748938260514765796170143055458217369503237764225215103227470088063151795189868731597006171877758119100733789005760149721768641306065526700125029800903022283824285129201572443248950889499406077849348231420415496976683449350304983143565466609772003877902556256083697461473671291650299903666028050398411178406581110619192573239909822356564335519458024241604427348004825261076388227890380327363941967549314726518898209998903276187361465158820426946449263496539947007159638089606240476312188828893711069142410339626697161919624042933701199006276878170186088468631047463083610092174012192732003254991338274524829062161681943620395508078598120620815124533936892538309953210330448851919891487328983204464811760885441582113372661906832366607538103985900077449800872900389053240437180652800252840596030981675967678425231990705870086294981150110560819038183175730776472185919129052046008628388654241091071981417407378473999394209171947169576076764931331270406628905620594948228861847600874286707063481945011511990913354562599079099932555548927937061136970331707208517924308157176063308116555260277320639211067719084594831911510040606699577549584440580236522801888332706773758634792612476180662972932290755622509349521733344229569763338363543097101667647992834883442396619310376229779900632067607295299533760280930136697404096390125508092711661000035499462686049460046281106941792115524211063598227308225323562504365118038679635226631108870362048758414104837890571892834618767559530384156426067984444843915014571410187112221803639907524354404757545434538022374988648821684057346209056396633559900337047244580478938299138939164735982978608836916694810729433221993752009194698475663379208749869831262193872229400121598109515286331782522278994963331464723378874586623538534882125167486825559576973949064839929744257823123715604083120167348891245367836387469412510765309012795315329204383546143328499746511968712477352502399141482504778514740090422295134377238094048345546829080111831512976228518064700631858854702681727579387687057897261090137936317420027219282683974863308749507700390056242648321527910007395719686164113281754661148086200953731936473648618802105047515713497635486398842810320297589019394690241972066468079102423767280776480496582484737552461046660490562792082391630057377093215774983417502163470894001470161452069714225759371880368246419487136576028566276524769224049761109004105988053647915932308029001718257799357327225219278192188094734824852243205656100853184254432579686697108195652913072949681587218785389281233996520784476528076309715941828857457029897772452746960452361993689502657209790130579535687791227179623703411926099361178872416836140286018153731595165584189208564435608572620776483893562365192784759261669681070637084053807471680519921350811546607041437562055892019329272034929696663153693460268993011565339469260141724424413447195553280690571866566609485076851976792067572618769724194996137030494497676885043130118761529545341892709603109850246814667634527679481971099924214981798740089419562310430249228607929199621338728765085814271374945618925497938384090449058150067380633866260030112118103939979066577460886398651821882043940020079224870688391899854904439158742695351319783001492523799464944974884206977717008540736258660880344793071277036649905759154161120760732728696882009387625533873605028911233965493714896038225348268188640092659757778190793162165154112357932633629276757023412105225717577450964030260643964568641927685528664280126453527148806922570815449518440951603819808478450565305109781998813051911643657925735325048200702029149799635825530853628703560095678179142633058264723499529396539757034752678468601139497923682485605743365398483999244179743153858391560800954997549049987088381450966841852619708043974993307446786515392653864025369230312979150109182483154038043626453109448754860204498589511841966842028731407018345332259961512282222366453699186063106302582256171067071244364483558100056884356939461157097724740587261005071921325551822338123334085326401798103960112367708760894000226246597681610211511536842946215198101925412911801620661978219123599765917479292032149725949379837291244767602898176836926428482178920213309685756959050369807485158179012454985965457202794253105859038974324592583315491499858929052427311354625323168765100625828268113199040580698814096238403402761211171466408565243040333561929165921696577673131229408106946103361800147531945146697890713146222189283606561772998357845894329605382620848812408936471557281729875128491960297964491228228514477227208312159751796740656386977640330698211073944438267766204242360148043345873603086561272279248419955926698267556860582828779095863543895227867029684919311827224686872530938674267267418947714823317594479835182825056310254384570686731204718270285048858086817785450584308622084346546616663628731045345529519379498660564274005686683464407513808087313187208262316217855514570972525642452439809333715795321515036425609175555114492639203808118420651207190050420293506328704501846835550692807964664505416852686020029309928180005072660306233826625883903074918055712790207680023996605762454939382410100671214320175417270129735815472080516594534613866676540205805479102090453448190239025474311277572590505842014104056685017589223558106883978669407176170665384665040055140807646736253877986924216905129248204426304418156370292333466859695655623389186260702540503746238220684062843885750341452084850727994494058536386656327023549893807792779170247107916181378630196743380733439489071264332149403742898040453222058937584251512327326802683814293846359789603556546578116754055056430173180608517042119560901583355355101856465408389433661204590170812413351714745202893447887905187278648891015408508283458207962685030808940771119016062925044957236304657697846672731258565821001348585843706077357165902879201909078658049318781735008234669951311040889680038632233318980614908968163288523253597404598383687867017266802204816101262696403922120638891102063602180140823383837724694384785815838941202961415041577815976255741319435720957436261865262789086122525180392545630850965943493568508041603694694860073774211681654973645886187187674794231557341917055404321114213720677852625976790470441793183014209691534406640985497350415953158741497435431020438764697854859517360287343375085841289267552992256609849849982033542596965415912286486367012979213686621102462004555642002400332032134255711188118475625772486167588597918742772036108950527603929298673075711286166917530538835611798544160858067363726706018768660708827037652590626811214887036961478901224348575338319981581037784674924191660833416093851982495238647568960780910125309127790634068819777198695484269242063496516598816685391884510195689760400119213038723261992134080972818666393878801011697271318395367373267963217678263667871109879495743127256019940850462613575622789970273348951206856105284056428781291317122682093161188340538691172430604177237300091966926694751373950865029255193082383020236185812428800726595095018398233855199450783316087278697798194453782034055464257255213241643150972683307711926085824579237161549094515794084197073111701353183143196583298037681921270096051335702053043721260987933137273927617054137518176777927607774382980102177615848433979660247725971079374534617967387638414463548926216022428778174700717776969986840297589902478169770020859949437471011554938665501827069149645878134777073829151842498736051958898516988189714592744315867291038729014862433856303849117981466983338620785096251318948287868003643195893381694346540854494091878877366875158588605767054583665866969116659860521318065765332598923898963400540523382395220485951949847457460774688173684101118012341500596687557335308442106856083195219680685659570987913361404546393542963959815682227347270166674147724396768763734463155418365622592375657820328036098831708298480636190803590547367908963536743357491973138711703633913631727432906523804892154927710677933097852498313393100917161690526137776543718157547884513129601374988252793566246656502582411655724215807594583355051527613878424635958769443574083408811590523194704560491085491696700684590515782020127333663530006823113045526132366800970310104612883615078064932893877150007692654581707081124770878672077444146213182776845002613731454828051549573070136893216060984375935040098359586207797844175009070588906007848879948509262643093352462693960969121771801645048832140575921177259655527041832352951886004729898316958994313660046612946662363143739948500611266502281279413270393670596454929017972776778653319145920066079713359344706612704401778685618317828370309056218868801979412728005598351849941469068793971312292323104642959745995207824905223934454987675281419306379926168995111488471959531939484034504186652293590539662433326308241193095273629656863550818297291981841408313445529267753514914154738646344454022628601640282233288177683801349950918229844465742622035509680383157000795930135869190422848663216456774763039035201826467375883036965585328162046852893291264028497199159174089434574530584079564766015749853611048328695264092631674597457177814228280684147122909145284161899378992784712218531860037396021929831387035774017313349215598252208787388086332662433604828071716581742544681501962109179936146975705078202780799606399805720641922189340467993835578130408964412106310778559423179172581332672893036066143078712570944440807983800058152948023356343948994258792818717728168619847690156200651256075141801188997110219758008924262947486014940068294870398755165377494663315632896129305592920009144833182968995490609065882884013539272053421591596116228755843524793721998239388965162321345609625691143082639536135792394006015890242633228066217045028438063345517580685775853271463540914815686384504519785665587302102303273992485088385272229292446041432729259766614336641527048454917037122200725143323089006570208756345790385900318274526574849115188679128112408125972612391891037483528471818599446315110515831121272041680280562141120823741779885901356524341181465058887533851437524325530055577210918643736127339550503892419943224196264617293039598194295603531657760814437654334902202336336537147163882124950263434019836283036776036060402974137427516228702075394717753645513987146173229820290929534618810605950205191886669314465133875797081609562224996430811070715605537960370563670405992804306407717938431908290945103255194597177593037408452705286706966983497680904335915951283069421313330653379167686501733996613925858541223676045279941960747407374604163123582413985402098009544542072430393935044180234018546649580357200903944387928540183437523427719400555981291993158179618865591025297994041123724611075181516989124588667526382006203595437385372478302768888606633197690522721225683597930501889789158590320397666210477055593497615618909869267916703264136780261851546117755978334095438363669301362904809072614388081958884939016554537292862123043484245218812431387809044360461356998806889755638551242597869576278042151213936959366148244883568963586582997221368960674534419124893288808677829014831240860839256850170603739736925067192825233253354238818319464267971162519842824234017351543917552397489783018515765961448494297189378211980893271685739519345671923314401281273843899334171907562738925300913670909831720724379734398333178965638208413870421937772252750006108832552498972317814657119292698503299225881148814095785607029837289772481588637880263883694054836400730627567725678922582016130337618935224671691433802069299963904350682721645311711007812975656825629911348737024211766014381411298586563800688452289141197635764309006241021912674704989510146426528093819610677011007397697041246130468003870174496591507577725542786446177192288057370383828125973739567872968479734435796903312727979771195705153440738758606603928304680258657936860291899579242938252275271307339920925411577576861131513265893791716189618233999255491650747231802881259971854825895652155793361553142254533160072684055236758164850168772677950571374119368734248401305147597451245362206679333615287464332874219003086166001743770464616036138693069926121367158881461020178469317910383726680159485282988591009441681097673522812962172410716872229727768564256201181488726327920278120727904793812632955906114908596849275965725442526583984487880185766017414697365901262609103531798501751647149061642876430000109752446910697804112590569626067427055848217787199025722256366235611734759320695135333909505624466486816297162574890473884612348633854359937144897984373741524163898367259714339746412602422673030905853563313711792298248405600631644452263882853457316401397627375969098021232855486071540854068126906602068116953219806244968936427681236518897875900550223981419901643971977884631384591450144123911624706910925882127677082172482823128035391197041488202538153725711406804729700441677465482986159059313169655289047604923602666559939852133703600999448607745492218276143879895654425316590458665633051165032534676722916927619089561141066568336305689414939094730473543316384027565781359938063799452431059952802295309904956697978688982434561372399942668257896692684063838538009284383573695803054269378917000750398854834486163479184490641627960139121937795420258177054270354956973432027129086152939140603183730820953246481453131172735882598205864743409028448453200271270802950322322305827221260045359331358564712760403494326000065806582675735201231850083961203583515816156022479206899741583258472543738714790230937864218024116080904072657383898572560459701618156909897932635656069508722299461182535912728466482010435449754195545754213683786171732259431537281060767154537219249739109231081580960567104500502160646440157963604665578014897460695586147083417338608321673233740913855623523716797973381430970622906888371401500078266076742744994046276733098595056520694100803548414486421475049887053258352245638267497024858091406521450350783062064268186918405012604594078869386860144430749003018351350575586597536594897851171647742374888307178837652921879968865357567297662166649310213660597377807999342437766620968236641644749722277093872235371734774749509537530705139153816479533156112825436748883192102245567264222444733648896385130147586924920496626693843950976724796458451719221759281386746116480172961448354102281301319050265948164461272675836064355815129413546969150568480969232671151266467077825301953895679339019229143689244693709220301792489209004559927552037776803793079006300881564025762359911863273440649388066026810346381727372312961587005445997036417474535721598517767717156178746262647179049717304732873814252736061148592951460263775280075127511087245230155437574402594488390201076672943523152937270999070591244342432895398678647374506975682177785841598111812316020809486239603339594426899838775075041681947536085982288227385029220456395141113660704274955529436372944491126059176359470308010558195986995716935234748276712133924037911496052284058028012902774870009372179344055481244988793790464102826811458429592862003433465817039770703367249775005071697276917387411451759737805651011915202448397788828223992247136096476564924489687595938962143746908319691872476472111249341603931797282526254349798433715758538963243049518840587337708869476669614789847673221376990170289520836852880542762082298663743617190205809664807825193019416793126249214286103330819739394123447727800363390542843564913879262714267021104894064821464604905023421014110706033265897161272607699575594795967677332138669787110753273686531386685301151321274141665107677862349575452934836817396431438058241661470017347784642116784352770581853249483392305762978365266320796401347772575475185525972642982568313347667921972114797457828474909387457130947120543936687126563820067660986031770992670471716181595390766922557405371494726561995169374235657619845112966378060166039030848754384439914435040333453637112118386969806576466773180744545717246044797716311572167188973283100780195644240712170719361662675822002563103955894706844399657595190772571024728142368910149796717487796592585583525165384175018763483508511170010078635842855145381164062028205949628627761401419678334233419981167569870397520297111048032593388148204802528768437246151520763804648203832867333969597579802323012716698662131404027368960210978296385834553333156630262875965030984872669882783251235696946115543819504227451394981824877030345730743603954382821373951440534843987598011870854138448255885102642052373353504510803116067339953431846683461224850455494545659796019423477147462795423714905877402340866171178075735954262081847400760477363711933400887963154825861605185458181811877906323657058356546922753607708002101242639395887026374911765120816571015701348931138229548766982051649273327872738604944948970152578314183178792630159887088246447698442514192568868886592648348840843443850502411237682685296577288790137747745912876893927502360689007113418265974891318476698349602634407994806004580601187678208939295626031695250126680450747186790258664172385696547654130663738112359243379475545505985284956645528745182991886635205218724125009273000761487372825623272438368692937171189792261979811350295802608982627721048169824990556735562573575215284667057584546436116113940704695242839750958222222201478786615861025145804535887985138198670530701675429285717369903830216405277602907447047284226101032019635144268845369044945305794521054118667768790875633196786144073533437166923929168627524845328632003936287313365757094133728742480163153888835844134444001867219687616402253977208679975864310036409367537714940934037062274243606187138701884471444114598506668528278222822800105995694662438520763094491032211822837074841144647045845602901223019017607389850643562880110982097597283414252745576325916832440005319753946572516384066178222142002616622060933647120396680510987754249639751085108922429470437559527897354763513237532236272184183163611277763305688446599753280169251877959735299635877813446112932134771282909049456758090029409366704768576241488188016006842793652931082899537848230339587461280877433554191752565621907374409948190824562079569754391161661098793118498918892764578727267813497545487429896823615517956136812942219175690308316948411049523112133644401283134654459247593996993018131397953454738940497463352383419809652546773004775860272185062742794031924220057851116557351759509111060295281812827844788933774234368910399199640921082111943706999659686904890610229222840953423344356725160352099651887339554468271404890651655521735123772450525456909765989337762545905673869218759505795252676047430684734373702916584037015385927829116092250714860646472200013381441427421514405347522952372964858455812269136158501978760325802933898974256528229592504745657324842715489856942142399419364927447029513795686746177868255808984197372351572710302095972956627177590512433189773150425922003740891528227915705662933221937006051279720880102501772536106906274851570256704862308871028505223300678927584766576245734445606366037853032032887683498041266776664424600890504375667159733352354839687925685952472776578267733993385968362624918877714044784735647881330808995594509577220146394590984268722625647374655070428373326306500532131644233452265763108244370141067300423452234118695658837263671057734186404399979942596491992966935217662781096135009118304798191314164227087125505290629766538386017000098267420936901490375691406195117658162308394949796213717334440342561354951166083874769679575417759716154707086503913496337672280722401659568028038170759710760146852355107680140263716743426603287770749203397296067239299786760534021563895737033227116943539630855046093431722011848384378205857819572341350939968049275158418640574330040149488627203167216267029450345200094432057129683596223613865735740658879540189873612060872957818025154293961040106657686733723910906664293936670075495059201580664011070925290057738827140815532520561905055252814270540701034988949904713557754493076393164479267338683398183671705920711902117108455980650781718911177473595171731085102321868368491056303862114668307157811226556440411928009038473623238341258836040698553849563929882092392361243978204434286306614224417094517889174161375311100802506696817222259825177250594120392160266202102643499934752651954366777552934078919618582185497658154299295892214011725920223792932065899365748981576300973538050778351538154100986411737997191942847730174310546705457035549849976811370996136849782615494681467934578269703284901163770190730749680079103497216978976094806558512936292453957987107973359556358695920616402107706923427363673893026895255482880391052313540755597413048098845500182130715521485398278566827159350534060014141872454871032353198607912048593145609980773566816426572064016137693049067129107302208965974760152429761208330913060486699487854118001345226728624567608552247567024640626207622319020343013039120690711925232259279837634415898215219187150702975792176888415173141893303568546062739050700294761399138988163609782824109615385253391478473959467936963865714361315138084971998937232968061288931510268376107372685157521165845226109124670363345888917856167157279268287130639109525717792847341126333578636817354369591724625133515923646830096188344093335238284145037095238003215077625330224695452056477050757997797139497349212546226006139600200977626412375504951316357720662382124861201071115629339816478305463265841314113759482258348057045383634221086826918359688242135623520096951550155394236596239762999110170223634908720690066608659700828232856484829811665899532482009200887818803732047422827752966198547958146213570602233884305496731349310754776614118272826996383719009931545772892492202809254326005225441456257058177911393683792820016545195607371597888896803410355903614353359224192213108352707023967358691758937505175885184027825052019055022089048864832750541174335302756944522383369364855379710622206810187941884432812900202524632336420322103900476584265800482155739062874869502493104318770373624116716104392480243827828280345691820839247983758294064539873407545359729327977212901300831597690051206788032715362384730366443795865965137319671958928313870118011466856641770782326192869209005321679203582077857782484944766962793511116851014267866990422106432372904234419712911524737776796966450823454376439387579110321273467106103144953563426272841029422031720780765961405259513046673737869208318810092640514690864283318286822593552454224540843858178871088553969283030758919293792431760494081826500254605516178700381177768625035953565153488528900203488165511829451740443502043959501072800587892900742917898240684165352131648220184186462353780279784613393652049804427771874972086874185723058642855554398805472767393446968746634368348653754802629401598710267967318097278085903414753344039040056869643035499337349359945982029121840449814498505123768682903190912245719843391573533075831473613486294296425224578110358894597431576305606370850131462442842202093377677330603463395425408167574100254690965318412238031007348286756521780142756861644126974045577431495060113136458289810152079773933928901578934910164940994103107143252234044507123485168574351804596813841570301609130382568414434684181835446016565406904502140308802944636965939664398367269152045121392804936121983307280569679676233997332747073850173062466162343907008151080310993381149599979840380166349138023923629244180931362592534637196002035942790880208836499089590528694239993578319645966481467037237421704017721378373752741615930205055988793310099644334210701925732490982695008249651668089776101746564757422966868688064526544565213027214300565474276970182036099596387202067057991385216474771656407616634038244793261906692166471118061072425883918060168470060847356940909939079253534818494774711811097678198515814909132826971218031519252710598741692955165914986602000122414022649290062825719929537048222206868198517269882475735685201607412575435997922847463360842442879695400168330620706680274216069978609607325832841154951315006839254267957483983176731282740490020176458234788344496830073052175268239878979520593818525778331675366372894270098281739510548065672888673817026549930157242015439719620931040643419569151476971496868743559780615478082524815189577048108282606533656668559802243006684593109422295424575766792565216861785744374802859172900254776967427218926176389362066159546691369642785541053137745577952863844033367112823421199365645503988136504423542075119056074479863135915394025292357447115910407490485527665088717308864232143850608083152452453598672384152538727094849203026691819345551639039357506952702879000021227455543114393781430314357414989122206131185665809178932174153626933886456832722273741001941636673321903903647423122543008725718504895546091432734408311540358577162654645397702734012025561130290703953901799212737597845184459919231766225761715895259975956489830927233778527582208767954719546197349596886959461082169767154183565185551569109185938302717317292818713165754957531386534038417860986411598424471055809312229706371986368765350134635356903679254524947971365079700794612814944870263167219524758994289974230289900132278917760408765827721209525775313921615167949866885719325234721275748616796748627405755128560423064550855706754029273620086181885661314176131834356195195263088014627751502976217401382983430578325246145964074210013253534784924979808684270107920153489616823803574220295864453576391742540995129380079964851069006751098406913044134672456627534126675916075534810465303749133541123415327556930414163488447556691629063610733744218947529617194800704622318152588450565675174894748274427957869851247120526240809682889896897457514619065579452287588493883195337739352820820873195961691311178503530084879871140363702232944619571258758537576043653000292926377195317263123407843500689372822498746575382320648452499258417412135179301112846145249993283980922884208077050036660105945920444314380441739440576978592524225600497073428084681992701514308928586579195923510502152979769439512836687283516678817774720989017877018261136484780733604973657715116187770293789657350646842336382300578200063209010316596268692880030865030658359169417245501307078264470920339795400932645132270861587349054427803753941057419412062241198575864515022831300948605320281827847836820699005970339627029753206442888470378015719407147368673109612486801902380836096891100146584288380643564238727253779623886153871088583276019342521325868435686291972196375424813458904179985844037001091642115950939884208071567064723197854406153789811015761045269471622603372767647741094816831267533577878653768805685329472790578712003873866284532170399651360898717180110489653288407838044112574799608940481272163348476917960806625026619726180396440078115394658863216238347951692594741267982013544206801991285338568779229260465979992142238445791849647688670233405086960589218565483218693185329156528830212163910418307526372600952182077849992218343946541938594775159912967541695713466870777150514583443061688710171072628160560854078885324562827623631388343331460318361074243985520315005782322913831076653424771706059001498290644592866231024990592842639014900504738755375158742419168362560580262340527635351194205760456114853910084352101024735006104552579644095743259677313462277786044354805350047052114359242864499621415357513458762862621396385143930750185490633447576831373956833594198980780161121178713009377133658749477230733581813130671165918085025647047791842806989150609183182546326146805431174471632914022103473607459905351094464425458163154699052825174078443522533063377856726234180032251642958735330831019567931016523282870576148133381633246378717422531428136912019422738407123022745150077308594922967264811165236801120566824734080405883067844444109997612190425199745767336514778130776638341436384463181421044743421852984993123662298664588696264636055086320104772705742324595288876975097383459996468487497222290343994677422613545676382593630037711757721230079608547898092214485906267742286483952543449261575029114366564317165365330498271217627768164129889554827140346597511753561580124976337738704752090103594952158966689906430999181094536567873827854994274530548003733177565046603379668415349346842078612626174113095578907136061896044707051192207283421999044518039523425908821691592753686662316194891034393592218161423416274243143449222762621455981490030772528322596947341450449653072710493162953690567374139251049367748958579382504274361048421291759345880931731209622231249336138260662397614451781013934047128354426725772433754164600484450647724861861266620094141300156631520688921475349337486399088261820407834112943101148293726101242448473005169024917088633203946547530825245151004956182352974388878242292419171422366620255779928829156414134340534634888629947413397043732964758976338898272485702579972278941185501554576253804331203962890248303779694966696375827605709323835786624593181803597437091650431058486028551071003396766582993782554342779505299175876043803968078689802791136946179242333220485871297996393806259101567575002308337432291389341040945300293501695511670332392470775511994930498403069031109700134460188497222023704176837262496913553475291978417625565237363112550498994606961914067616746116089774790503787927647045127598072426389796406278170014238575656343126332087868158012527001638789725978555500750704530756948200938264284315815145138133720259779137736605621175078637388493853134790281032310841286677780692989163405865101947182736258151096478815569028793669833832866927299521947421706971091162295458917089181661215946280325238255995975656681620444469506628280200166412929063780972723845283406232006862011791567751618493173443892992283420926297845609947371725071277644494874952546497364235314765104707073397068482699070078694273165910826187930276967746725727778864317574421393060006007469856225943918536301061031624236254082543573017193142326630999830476981645480676797261228350562337092100933162147585948657143524728791889537634537196177899627654825522586361983956823751675338041113828782291926355778561852881884107543356300915671164684553644394458281031566866515444168089640129521680894507263497965101350703968766611026077501908962686397425592608061820227083614922520698178545332016135399707937922304971771623375549601897861353295301767232825115594776456666994476292074399178531663062478801950508027946143257042291965850231896460043653978199267045885881809817803672383634071312239116777244862165675051302509018902069460854693873646418145550024789398099058689282193052864936117233144028622547283936710283261967296465829349154822362869640821158787198111600231662478253435472082262830909592982311092831727643458562398746783248438580264474803519776876468389812103983025376757288941889070380300825104345279489568794593569647938238526114857833775056364656280621535991767464560345487571426308114071777332967782491203912831497949922843221042843292608782003548406536469679271904340378645763845995563603178652008128044716691134944448149143279328119696790385103561891550478912810848069919216075223422889814406665600765055774784248677921653235161965353165136459056219810042453173688551215067786028704294797295080511021232143839623830764767731064694036164585521708804501466811232551076388902330687583773257308559615106688496147825596298044797922756681557246053453091569483095438262013143412911941816163898843628306976338091293580726883389795016580761524474463649579636052795523223354554070504969239814907145704582193543373587689571465762975753181814486109623814861674893001702287406170105716818077366482960547504998527805947702337983586227841902236957427411011144057270853655360557442807339122334179447446235568529937629481957214450999545026728883738547413672549593676489885247664329882757425097566864719830561775739255000135357222467591069015041153589989183631869321476545601082378861394884274442065954395899144088581239909782684255012709440864058683855707796929447796662646555892330499040033767312186779221335885287588569683596756740202107708412585042142101488452535110637236729510825873061014146630720944719306879740695795696564741729259167195135994425212225945399387444193264205130444017814540144853405080008394452037066021082112730283108097040803176552055480691271019593278267293378503877505631154010852023573912046532269600287491926050926474151689141350152883419436333000568150158369000088735555304400109077719232434203782358596467303425709971440997520578608648157723890910414890586883315526209069955309572216554072107062202598421237178292714644066234769844729917536382836597713306253928171887722500493087553029593403087141486018581495721788863611454925744267827710063475512803876194703870367363478816206743552142846154834800535517189291265844916700425420761843754053829005526684874957555959776289919968156289409463628528447400771335334675673145141966828249555785250502209882296620822268981766441183406328426140533482903277618122764648692387217407524174851662115019638307690338230637858692116479138973064895789779966092306758554390432848995744112709616690706058823379685690321405518091885750813366808357011927855504253650050033696958636176891925751392286762273867627190230108343576694386147477488454552353767454158495987467274511798350568797145576986466389372111531642618663396229529658445324618854124095747102683113337590691205496809228997506207707911725007221061037172302808440988216237354093663105166768821155039648264155634323289795933948564143477080493188125044595505444136495255672583224486207901595679441708115378979737511911793579456498066840294339143701168048351155513492127819363955900029231408514427821266609575151769754671535337098186354742959968511755064004507288455829867185088314457146181041392843455718647018574448889430437008046243097481974866990856242814433646655520196229745503397415328863997851064803587206542510507702394716261263696435289855717717764643755674876921662748125057621492456922761908329966791044661087446132191328387165501827500901899149382983356096668449899526903785438900804984053615762257593761325439025101470393308475211970292491755645466753435890125288813593620142127197805649017063409201336461363540732500418588004646360615625138305041941240390519812790332700866107909277399615447437711995834644598417111342818724813569936613558673340578328939909344778527494993773247846540835719126324374785105121542376624131680201193163627961477642678248872779966827818379534245391420565329072824562215612112760251941584825598902959447805487510084967710310976614363673322029118078341619144171068014226933953471503088466942612900244927854371410435904796155354670256843660655617969722778945366149237856973704303187006243498821801442080615405871760989670016859704281397952856150232195787156026774558982604396916544560887454197444772139371796816542564739802258579182228870253167127339846770560422265686818771339053689248140017569118727000123185845002237557897172702159697779680985816887381207957121873874837051567203008872546441556665866680938668435583402981899091862350227747292538810993828232541385625165029006909883938547478197216172349335900615204712836875646894662351110194096232955619379833402391384907705567788448534697540638137416472361496303540774879071887914794772576390863258670799615937858816118463217361862755305461596279202881118713712389664296445919427269697343659060946154226566565494015567696887118137382148727375918875704407741245800637196137505664985904882101962933263143822983979599788058830970302172048108310776257525011053784054414859617728733706626894282299431515578435575884700863916527447125158625742962235101933967153649580866060963283845447399186877077535873396827170109845001981007192646517155197232177205927940370095010566001819788181197399359242388168687720244412007826180482715367770109278374031357837169539920377806132323006869504750196339185774008914503269105850505011600280744516396353022665166126259532018388499928602544954893856629312492428020510243353801918086999232922616235740658392797627354204953139410799131422362752426949441702480850042479361290190704269520471448002021026061935603820685416649463107933336795170268785356704005970797753809625938193546505938566844825171960354222107317310912817905160366836384413879269087223788377559180970054998544889982797890576495729799381173008057613569037613311741677634147820374997094789045612908309062173044228211117800546151711060206646482642258831536638568847159603694328740334135939326426571697850073740338179642988109541243124790482286703855729951626923456565954786588690296383153474409486642545093474240297289489858095644898815413884021059499736713962659604103885861541864408685710535322224539812097433060085253973569590268303755052280636814967607170307025307582042459187298471347916369578035793691173614117199690141796396010100635466556972122833868673256174156238832719838060202010107518495514416272309758559245728241424780839070163585241908938724364224097646493800962505143925634277805348964162597081619670954004143347926333032477785438055136353050443563434279812116932146794976722500074239328499934241396059920661375651519143160826196171975640869735058355134722521349783601576912227645009047552036548570232595399820691905495277932227908162282467883105222799228234714200587770931013547850094189312277694638721717659914494267189003577633708112333141573891479484503001505923847130559264471780452586828023065268250345227783556905252782189902806699104178964090627888634759067421721859454263831236727711222931592888667467089921801344262578664911526037647840838719259426391381066231760491041246930040906540744404868121553513696694350386141543081484659569875360698609339539842734327767762344686310749491953699649296164320713054485222901084998829531658707280842125577836598145821425152982685023991341941260365161007028996872418842585101705233301319729163294695874932437685441991301688158970837276221738828092298190736838489359386954617800145729374820083816770104992949375302900614697749422912935609028712821380646329877912830822236086475801611670467899855541802644280053121959732491096049016429208423943877500259845051744068561308756873067230639166855863855097072464544530870567527366642643641625054614017759434881998318734274611943210527788631714248825973201235989103161470785215532126023743243229787006061527977108009298758699234227168617388799029786125756476545769478156108888280340533664133070082708399648642671851825875027872852923592311160285416784920082424775916339875327897497479329803886786110467599816214576088136758079697225531106349009717640826907123725868103551477855281016119106588554887702248999881572218580875364350208804792604053806538016868135186206911468908047624001338578525489271584214620063903162969257409330072656093774976905273032004551317277002660934447078446611395502732507880979632787176483840197716142065915221422814956212607566453863956852353049276310414142414700789379715979319029620839249455554863416597026051298375412047058681755157335841991413630101826990227058157546546034399706020181760222010887903585719454187509798753037251603231226585909866714740266945644346799253570374233173885920919586367365848478084739491565802521373166183136987275626662408659763815911903956338689776184204194360350500026749131957791347394190000254802633545276865692438656921246674847170923837340364239606960019205230833630807209592231631001593381234005139006315900794225253131564567866440573504480170672043930614164025462595686224865122591446457577703637000054292247603066880363709158871780855070890209529073696342683397364349654956620153549817061887959237345450202318962100932663695487615772216838021133812227819999377021010298822275992161561679792037348147231984850572903758754009184061263643555082416323629798033416297262714607217880511731803331238695907462713620135085563718479802444372513680414371894885636842751272044796191040768007863659919721056525377944439407589083066223499345874667643201636351435050166967829522516841393197708867994162390220678826957389783370331221320952400653615836891964773623135792452485374195094307924368738623035259614392430516774875132056011672500626117230006806616687876553674778659453722289012860534011191555327965218410228636027807747006049256410428673078254084678967167691907185500920554595598672876281790714550651400042759072183429877483784938609546608164361907964327273893395861110753994039739794163587024429683114035980328012401557109784751541446029734504033659559331601020269006869652869260381079842198074714812318941060619276004746282605895471304142493301076073464271655353917434130672153194279310169820577970625514223574832246462222550470042033164663683515982474011566561729870509217752345030459867770595837409832170998474411893808714619672119051401635245383318869079420581978401683336051378564606238793138820729761640277536451377038217182503133989236956609393740871843831256849805866580109992330020737380406485876696300220243360925476148373322073987376469695198008650574074799006227772320876677309832164758684217148955419631522348980451737691141128334825681439751449749049466869033067787641044528719272200526568299285823968879709612240358287489999323909481520329945300110123411755831669390548323900393336239337030458996963973732720382182849927583967791882527776813760037895786972085705528028518544179322950551499559550705341628583295018652971691178924217913720740393286671545554604577246602991666932394424158412210676442319773372193807047307495335132104326301717389770837410379353684035051748455908819860969137659256585134674589137366049443930643232096509125859010706642430726889216812738432454975660252576699087687228145133097501538436614851390800808294685154320299660832588963706939214349680411780780617332969895814061277345903197043467031874234351453501202814525727690305056039400291881671632054147885555919267225405123629324916044177825178339762141142915105462966248074407909122606012623591692828258725189041663261465748760661345998642546243174545229779542076267423923337184607632774113192454556716264445534184232607953543851958594259883229270049483995520692432280809434525307448581846017118656616501445370456451959893322653434750599260833123148220448111443585139569171178195500079630459649952557981334239097641416340306346394997905138950555555888524065925209148457292062148436762492155523487347119546389787703139290813893106303567309182797525679924950063196185086548189448761492324099096117921862794657242659355047685343829909472960256057077564680378952689356791628278820773478022455950916600317529379896642764593001583218923165813870962799713144115377058690556092006329771994037353606223630569560565576149059136843338418905964811927966815828787460984545365741939751592396239631716597938559118616070979604837068579035518165105673839000887829552616300935393436483171707831109040661437005708730252626381235503420027111459888400135584228289362504924304910399890314085873936006852365699437352272818014072793797670868926862491972357242262995336535709349677421465397027164731926406194628985367788935661609424998453933163871599246466795029322812500448986085382971789718453704947934302703149424141569628461637732847172651747549870586953672026497174559923386053361382831341131297790541487050586074270839247326763075476828620438098718336285318438321444032250241818222193642143443993486832874437488722267211735031818042212357258359486742159726796166893205381290883155168765270409620231057993754518345882126817875725883846551764782636769803650888936595373291912615310453867051547528567579683556008586801278920169463202020211456843220397561859693155751683833189646619821612645568194947932377468671168973154967612080465690407128699905810458665482412304035489618772231974476113629002538883182326549685812723756077556528098130974273146841579180464531294643296010074153899221689474622997483735968742438223289217418961549252611856994778601027419126708865104129595684470977193059975167513853833867535273082721158195688636914490689469316188853182053333386500477940064265084086918148776569276439308711680302087641450977056064075178227164993132985923668233397097223702419544520592813777037107036763395564136367764674930081586225265065602255261358776592005596538749918826821351433846113348542881529056812467347103060886124043292310209845608385266715273368390917927931455141746400310361390095945032379505634734348904731001988113961859769270783508049673700136721062294230649576372077358537899116278420837512583532090480207623844553765813602652066036321229387393748079743138058864290353671023799321395287482207014906677671750835627988402245735963033656685930505589219870705037713317996190649284266884155745611539994987225404221269764998141452075025093950163160080384007577413497309160858414274507863256280108621840554895531016767793231006997489982670197407836370590138698386041918341114978907745465227378433896613278912056717732128172490603540833999274671651037009696897872121063225756648751642047776628421754007029203766643963409253254497600405891943965557282049958944356200656132418417367323675909674765356666660761665285993345187646861264050405632605355625873244914813855765840560958287679184236933364577075941218551285213344039615728090004739943514764692848101088802927607202224928536437012858217468976305853200369416118277821755681990892507362490428115176634286772119168994747604066423614776885989015819271109149225324559194663113612889756502062123389041064744615295249024960332949841171510022035608501509880918295127565837050956761482148612850551528724700497009074502795057471277852596802428958674319397422534567381305553077808656706027461394925394223820022939829347366982643835496313325806007679111135100376343055484108356684625646195801739539063126409936147300296700195499400312297605644315697673117824010913965840101682997549843306768785820669081040345277688263495707054771490156946430281178716328417812510901071406970650375760996876894746337761125381579305004129273202172836814958310112451525577444664965201399584076315524693871572563617666492962441383390494344359737422953139235638874291256997213102992731050362512527787123163833584363234952070778099167211823490357666353323804864177990873568818058947065871744296575022385842557617680674181529695467778437693830338996628400643165958612926166289258199203440525407023211688762422295691258119785723940577357597081734820776089952487236724085035807250200226401638404300341334938907395432212839252938205144834476491683870888629562795052723392919929797512966762723643403304023403588181498735921084602735563443658690015883335376059792955107073462065903338063797391054796504464143466594568209529068409762445019067766287207170310061277492563430874578990351322026067583137602481902997869162919191498001307092494224302364698719810900794981247895173394475604115196078025669633319803119321527745213313305406293590624313970031644106821754540815233628500564251984481567683223655325114869301662164285997127512487918366720660260196494802882418230758645707806612727894657715652887613932611545720822883241862752051423167041678382629147307313464771136049571079207304281791261460108509063554612656402259050939794706614870143782134628858355610900785059971080939489121972186045000719237439140744253238388234737409438718377107552965621962099929152173753349113769101717500843818320992882064080608792393992988840166328471829079293125256776985473321028131531433827128578578428152217311653857230370674397927603483315670677313396734590521583016637985754690121001980887996834680300979794746891908684951055005306803383700693182585396216815618866289417734705108757521148915891764987502763021109210134458865585328180649189477278079043201831995100022829437726145023162040839749572304949707552524629779678794476107606099658274473666214623648042459901866346284143169617525820481671066629976523109534096559957836104113098278481280562821251782262555719336465577625670085902353312259839058080269667963614735370045287352014732615039658198558084524901398137919041364607347569636905431086781234756643561689444176775074915296968081303518366221195745952540434541357245063105596253045310358755795579508386595529589796338963390408958463128823860504140143152037482526511372999110844226517409852676393008163230509933962877641422244179975535882654514690637283095954540304525642153018844733145891117832392308673370147035545273010855055648158836432979253102909377602530454077241156213088851936750577493157132982867206687943758541562255391766651196762924114217275182945457377137889531435773818240906785977498094117009997419744633143032455685790071548675057417677204117914890829871428424875873441669980438806254131252262818134939161337288493858597400668171214165313822562920383993125879158668989408637903881011469985392332422841019134427502946063964691918763111261847391555134093741774781219494621230273586604838173763253943603855879587114124016038086932488106152071395852307297783180056998112516619031599641761840433387789673160739398341746882032896894809101181056763722956105949087798876986127741711020467107504085694628714678256167415300918909459191735442908008183920308342248927010330094620466724911003519026454521053569784257104371127823881921401828017856220605190506084471323326797286458081059423131343998512521586350527650630935848637136569921751602744971099320923358750060028682644608649264658625372570436462166771215928556725528704902211210966896868363542780829376753349201407913116594166818309470416908875421440723373472444216935766822373509520812572777213178956466477666371866339671279338024847753823549075781781735475071352890721648678248258682111876830519569809583078829210857110307599128140033297804018943934581939197337967984282870627794332604455449734003346563641426702837897868814736244174463494076535388966508325055578282577242998270684486804497941656172429854351076564256218105183064036564629805371752107486609065296980713476538336685859991175040583541023882842945665870948275367439380109904705444341088314823399931113167552280173506854980247595640532396960744312208670639414403570098904502319266398150297141598747418929159356737266642492175826550293001643917964060766434654600025799223781708283018682487665167183229522442009470932744318375720645782247019228383299462239434297869211915657547013662479427626067598254111573770496197146964350792204548365105529562612977015124639143708595945813302624773776235086072314735714057463217174739221710167730470506958054667938258537121496317368844671754456040279114655186173354441206700266020713939685890173305546279461518952165655280895585162749225671336371471945289428158440481411685223923126296777149209730297039610319714851627658527384924382750758880145637574896518763190965279112495111405920204320370621202630715102577749872466165536757580044304021996392865078651334894457027459293957308904723615602939513516285160884906318899862617685367531301701629113337381749333986438045426180237380784108509148440981893971573639260416054591581430811073170660235064568626328709840394591853406762553695219502239087454810070865950462572546545300007061850396595234659520044418008929958362370583928324880415637492900483095441509709894586588690069702914985654232765681383152409669257026007356283040064362224330385475096095236800377201442851960751092322138428509044355058862676609573628125438707576591565761678164120752750771411722621656249591201543961606653628944423565872708679353713331698764777718089966662447259099778294347284516639547856004184750108033865800596877259791330954268691114437070733326006957201209283615832817144304793829792342715343204465548922542679888131603246628942707293730681046350277829310604368565427907369879227613885259656689417158330669878735808176144299495218973759571975563108774920344685274943382236861932356216072604491280672169892030050219261789949449650231003574540306983824002561141478149222611073421858455028704539335972053630987028888650821167354990763384760159074097723400760731274740063851044350177681390406589700516075841853157639877271802561175787809037440317429595205374066416619804595531144456768724082342550978092086341287356817878592602573727517334465330383581678346217911755398127886974604923288144607926050131001238957194912132908048684685340043387746547604888635435467487626764098864884566014927009118043952719261719592298496537363936035791274282220537649797372402589463478601017901445854879894690639443020517289891749077292561798591849219210680341759391084131486632031769992469360678405273549250457629569865611078422023505683987912360338175176666181068777476307510385075399436902946930926246220940574345050854254504219769339593753691855335590642526978285581505692022475098902038077781338821391842689364098992666527691182623397131925741087148269762575934366555402496687299089307984226489542552504944318211569987130094297857990802016520927195169415577336867264016195495928825477702385840486003844648494280021713786455302556774976142803641273160725012252481867309213223047996640516160075263268426354271645683381114397651725267051547262390405862564634995020376031213413709681201910941144902550160213212492646291000528946976288654997951550415390825513781541561533628483282573363536364956496289327802460062600734926958930187422211159355540372722252127408506052566976537919830184064115622186408269541386451884774671194353250468277283157066796027877227601292852077827094225491682000296128090440939839350193644362930900790892408869498393126038838665382526421439463136425700820036230932503045819728394417333162571968247130641144719517849868673806518418370836470559751004577320773636652886692546503191096097270061838923483476130875531728169182774134839790807785087690388436462643406115099276342343606209088892802251045961133957352737773186225875866373915102606038955285513435222563674432842381244543072723680256168132285657449357020434819662739519707767114250074431007212344074180074939220343073384809001549652402213157452748697150782127078266825279401218423656696378988636600581713818486183511337859956151520847738702968865257658085067464193513838322034820207462550891274049778337473530662862643549255711709260377596330611083783050820330792400137109924379665031368768528987422956407726693070741498402370866861845222206875061365224611332050970625133398319934737606930518175115991670399942155226870833984047262960716435321311752538677710689600786936757481281384675128829010573825997168555522616473812084218524686971318698524953608980615965899667718939974420507006825240777146449874451088187360529921136063301304720102564016634609727207655886152458483876707706949603374345056123993393491196416084175397448918940123779892364576041379668195126825634440631960931285626105785902793774733045796983711583836593148530955503292022719129885693279935579491890781928464775219037467905477076981992652252510866880854796645023396455082938387476655815755222660044701981530650945621040161035299719850652647868213163687138588317454071271755567137547949232620362794645121730451090772362850619673048139242259342784107817845177447988089555554390363471998028800895797660532396538935712864047894188260108386180324951500346492513073793251382737154696720834115667754981346721397133290729803692683863899716358395278978490294597556024908619556018966907725360495679344163618000558970143323431953417779440888204021035369798357380142968585958099845870485568201471591656263985270115291130945472894085715585705556214302817853407093919129524272721762555976854460604103775678933391110488167186273840370063044739830938140203811556278756297168577931808568075143598078477086260925852276111767288603158035714735212713004460430798609990666468482593110549118957629538472833131405394061749348544977054790647453728990872397864905449051811528949050411080641745819546514226588759848319802214285767107645696082403699465728221731020504292631342273334071555796865100064450762861504161247947479947045847981399063706349017755306341003805015923703563918261243202242680579246570023403828865044653672752652544392671465689219477735295516724455167347099763070020979768558452560734438588447395576893393512569398421764511909919599180313762300355588083547127292091623141187729879244814723213965053226351507721445879433041959361646469595660128430085888467699599021360016977355317190120972116346640078992907639777132845198999065871934937651776332198080641020270560523949701861670504579982575250673798126943925245310434514044387689165195686500150330945960713140685668571541318931751844629424971676421056481246615672349828783236523860333122845458038540681958272216116427093495475134571689066664507713650948324610493645116484991916123791792374641974523260018705576888219595268879672615329045529224065574346474551857254880449924400122191435424308669686578801103255298444682075290122153030953201968926847985424169469208400960086390369127921173169530717531045648951882897584139727890106302576487534273244742515167352768985407672639480300692195356139379603435089664470215879780194857461305058223499985793781476410454713954979376377680500040349058770419197048384894414282189982464943560037608853945688799363754529995613275394185904595102947106287991504669279484418697517020326871456001915695925299027503042609103623005170797303201427943272129061624046751549256920532355485772422329576124459593292623352391194177093311235125633101812891615280138679330089496062439983844293600559147710482064659223660282215349219277205939608927291779744579157914924415866585925676011468128563385804934019881313265447511117506557365473996829951571836066746445065928297001408943233329160177971283598654867208947838194532343341304563621115000113827694595321249087546492532840741762811201101168454062101168819421983607055498688924498360924564620900556569435883949493088946375185317215316334398537025070504938510534972047540954348920639139968282167232905759142649685369322934749646622364415235991134925916269743868766195747015063972743445165226518252587823097523976752193144399003425177989889785010680449682681220057996256741215604691083669545693782016339315350469463634216221890487784839220067203688279699203567017537851674357689709512527538346836356634565489723863009928972721522333944072289651671884746384380598470638831611589625437285304517217632274538368067598133456432952980313106169823366869525601410397183684230919553217156688995382670561620499407323875480503195011722769602612439868611272846286929557116031419414285478968672331173346220452220169722397264592793044897899111713807504995896615489021196855860330086002134589114827787789830360727175756124533495186328671667521404623966743000469612570650786247414021020968433209839429837099536230992975056833867479565237905132820966049626644250564273271169702128659395332690337724662924174094651626326921186181677881544433890826102536551519075651069090196093832263133557671778981323625191824610556632567082390941551736902032655993275693840629632945077194565255845787304102103439175103697232301775835599549775096147203767015052446875441445869525227355625581100227254759399435252506123500733549281530667883132897216976571334549172904419364187345622325541945391983537728974543362206919687941200861702122434372137394437943247254907877749135914831631123722407324851047422807994276633861796893484819170130661456551528803083554191724353223641035894234696050877612413840042949160338729969357672424846998422552794167005242930835803697361343144944345542175961743634510278033679984177253580675036458000215084177442836665678661350580395862605510404431019942468259515742703327108473133919180149966864751340652475095561872771839908042187348292545479176064314379476607568210276095043995528463342183588939648239370677929618817372763196761439257575630571890066520400329211854392523092254075965985259353461717489400595346703599348871400391567061706547223411664529562110776460364098500641475556221993928370738351960489508603242780702127532375892515291095892535212046813716852501591895887951022633902283012506631363924374765874417955223911495712085382168474844691465252295925085354437581199746583926342486134812165117574617831883958512006731309495247049483863636552339593709070547866221424806658744012298861366743519654058583242357369918698767804344172972678386571710134010742791863742458734344917873718906492801393511140677837455496110612957237904520435112383886832384212057414440589279270399515522102059336363819790769527739855607885117751933107743951604993351327292557392996811991101711577755129268093362955668415765261857760763856098101445963106580655417093200874499093371278004411998001991990831767287084267497479830074827908251849684742278417700940610700055289316030522500979951995475486382901987801959581456501079763778499811944267220500823440439989016948830647387264144070795387764089521055221066753206719191360855985193074988277029100844461898233889499392521959346196226751139279966444310063769820509542680123689194076635817052193627639358220135724967056478170494983194751284604701152871259871988205906443507545182808082246371500848034939209387969620456124723734502514526732464114481165764977936098315018275376503639692681024574396940719312020173146422800554969223557848775073327940870813452618824725870157205331745542763041486801503243725366475446794754060393241658922354185880561267589892484452637816318394163937569155757710147151461064789208464214926728709866086705359095550304670789831888536283114328331429409849491233844782003705826861837672221495236271325417418238140483877587009863504886580732301309437820286391786708992591845865537059441542808675486960799871074977899041563595702714852197760733248643729752892132024754196214291504183874064788361839589341748013291986979602637761662980013094483979962256502048350471103522309328859595842498814141083938383430531035072026195791168095783619821703075293669983839246758518644376000045664779787827837532984091270051716864598891530335032043912615130329857987366402177283118686788004012929958683799253977275639589868001200588598362531340905944371276201459442933779029208217616138274784199790712565564051441847277336294306595832163129680409875456354131543015324677766873134894192410896368381158741489701181103958158444697774994664557587273729722439393476605128473812569657562702585706764727775901343315549397962546008131974622325477647200045533863529291443303920455365031252288982712392016102961716370011409976335749753286651867152961215687918861147635834986103010014308827366734237794824443590461347741209893911865333575103418862320899494139591702320685221442500538413029541106024566390803415748529224524121312090684039501689412805451032890994559635695826678926316367021655004141204198227535215595163818416974783833536415124434986450040673598503547676467620628094374880995911261459524926211237062056954494191968857327237471265166352383618333279333581857034858537181101894421642552210098898265422382740770319573038706292660935275839909150093184903921540601900255876150988734754028158433231928754074435824153948445752822887583768152761928405737795751251874531536207440588310778167887576508540761074974481742091336899313992524706290133463929253271653235975530985574245796657299882703758306704297692852483234788593186405311260454782912482903485266513805533709101380750378870152573631170803249043270400153454693695178611348917157774741016241897147037842652989632619490630969050461112941205441698096237086221527411537042956624789987662481185626410605474209470705998004985478531896389215719922254002620803450299186440800340164791694269043981245419780006547618862756891610596849583899366479642969595738523238295685276838965852353864714031505425483923503527304098087581897389494819890277522505517026365467556365524269230180487943964043012580066289110721384958526114762555790537496821314562699257518328295806784037065945396124437600266615267811393524892431956495532893730196253010544445144750266891614118432532045433189224213588685434282695126271679761910518986051293408120089344831500786987211022269927540414111778568513519035742995565530709726853137266100858280326203509725172670987018196457690256654006624348140555184663550692595146641926107300088117326276951738798699655437101981757612993892182772327754821754381861146889278240820991211937341068219794795496549682341326198625083560934204121960531130661738129211550399086504264344619805768933624865396060678673687802062193552888619899831135118162474512712976677342430126716546223180263001584912811579799850543671854488160198418952321612355460774287168632377337237314930102211133505752669511515015492940239823799871240376652835175541129227135311527932591703522519732012174287935435161480866532954196223243864344469713879116600256885539297447990291408451650526639967764725453489614428328896708567752442960681759933292417532291245744676896221399606601383138274623748566559517999527556576663144698274995363716206791953202414461959360420176842419952086915561046806143844259760448486914678741327841303343089972656280841543553081380061291310034447388394953368602381193742547210408778578322202741413309058922463273343903317285467448154490116802240927410685062716459611503498611805331961027126037493926604115634337076374709836983044818217410967040364000789584267329229804441532726013365918654725336115728621082801445132238011833734220621681355489076693440532837124124069810602737580366853083365920036170268780063939327455046237603458367385239053328945958200320765020125866961111588279448518027006506942369408258006550411042706253762149180604165417288960478575558582294830584361824265351187602674439974550913353768054455748131323277723520910139158754946087503068767341946495253509369375330991305208852633261952126647387198363152027756088278792026716491066534376178355749770709045276781999132655692703584889081269163774965158089363984003479641117080436230788192883674468689340908075719291187109603335313020562328229976312968184506301657105464838295821035862150275211396028472110803592512361958614499910755363546922976917136856858757114810190116314218174479453128497434070910141157681168495759553690787310286840157500216430384517687110958724203898530242207914875004830668011635572201337946978611956752923659562108745119719168140057260334490346608404096588285411766659377874130139257209194303503073219070568577778934640663499662345468517738506863591930908481952786991029496077985159236163215471951690975335687563492554207357263593660764325480111751317729729634246334771559472593825573571258597329434818574407785999749833424477911147046356340835172467731801189356760654712104397855582651438711044571209395653703843156122105025451925693524275719938865670982508749475240996819024897536004086863008351801414604398919486914996146951585793862518872672896059304609306224230149621719546910516567663031134195209844949767835232585585221292405694969814655347599113972015244231382442400115232379458526121109256080683801907131645124137341312508322160685711598137878850571970648960765858695055567816053278206922445340005373732935688989503141194132969382037360485410853166172756595853347551492469706228961211087843425587704049335335936510100812338267186378571809520876517803189113466571507091762008186223784988511147010851241111357776247718050796077397294107334491664943701829118203129745153862725155016513138222860823752132649036708138562343961242134347749666407866895723432832979923327358018060832627376471213951085542273007056032583516993761642294280184903947909785788242186083540923013618885803111118926669337566881880966248234883251977560870775877117709074823013735791174374048873862966282875381782294549948986056767268608038493972947850901751583738321038827439451211821343817795808245628915035787936265266987214402650359666642161392648485331477494207698904417258564802576853756774621162590626041899857899637601190279828211037845158621740222323780071442629658134190500909747162300332408497015792100083319854461621497747949752722577017636473549232068405536830917952495135033929900876677072912407912328002277115347027178880424619973053525770722687662499262781626304432804102904781634031113638009575866748352606114826297447405847028700778479838609027010572660838401111721276604440304099999930323775098092266567705734314254614384088242272380524741569021812650162969542297388280052064811831690430044951861557283114036078512524218348544759776749236426672951597705038592009337963729216247996030973676473862268446982942148259320990697111902309313251823387643385421498960864577828472731682038080987413614238346835278810002503012818967919028310001143002532057016530014965669720844337724381516250727536935725534851747951290082501068078236624305824952707395637634062163988930233516994377927851517023208271984987308612285468039923810985954386092433888775034118099521593660281446980015603502913434631870651837221680217251093230032712024494990045606056103423207069852115812423752569380538078696690706666949243197602026386144554172315527629567375292528098817680352803086465046817110253844014383093293261106561560117742322530414945531880798517884203107994888281376326841363610951675875804018022467607270197289322291664185743465961328087898081774990990431549017886007360286851943629336183574665804303120893109211704149335539940032459863349218212965336280900636350845687597524649284273931145092576879092948143211544693194561911737602182088401234455108862584005046372900692366385242578794272410851184555283418580880323337399745829027633995755488398906256249288339043266240570580902248378640564963442403205246210237041243825814216945496803941920463282752186673261025627329941131867194304448641548175711157607552268471694188896676677452135450053437077889035633642664216699639726882524016907460637426081718367248777370410664006728746915178062861495472879110392312054057832647544466027757417136467994373297895625972237591317838827279097036808285163684203637566281409670086771168919887625335763020826103692578985467588804182561378135785807470975883618608370668188275341095868443161529948005512269151434460210729762097776160515371013719354399643858121032989493300975137361746663269637020865109209841170834857418019494766975891183917715008644940155857932788393807546610593217128442540263690356706815956354651880113987216729965699618676234286345264859783205219611254145511964199093115522031681212446005894048421057241522996050897367215323107646307245651845769226214687315300303364460013899623571471744813012378722602044493983832234301767352068348970686434193997931414283313625435222760329128028085154090439100727882036609039552641832822987173937248506204763103367045582530038694329328395808283654074868227380419074731771399541798110475176115587539388388465357772447456847975982263351500072273515106554157393269135296990964616138825658912456221757397226258155419573275654632206781323467475391103689866854011784116984658623683790111349172708114615711639023543641694484639874475587776077488555026792050065780813404165895897056637864456768579502506474909080648781984781918960993557716681836056665708191240414183935307780845464325947812594498974989180091261323482070946967663387274174863886848054250568728636917260854904114208902763488664629531332920410598915434118052487584052282714923464209511226130754481866577053878289649383254086381179243119944571732187669157585129214699093667771627400159806650276942827831885497035189644729646188474944355137482619510114430872317488613952633662183859144772980288249477538272478717362418614443586363223457342369481865602441624768269238247931971248252485794450280435315065053775400828113182978187445763463617605659054934340374492548253281238327029241881699536486609949114045784701515477500689614841301354990184682729687322875449170041268103572569983098952016821606155884181714120073264303092005525797838077897358206385931724378551154263428275019778001416405921548717734381190890342411172163591751063998687799097684608442362503895245414761354321523879700371875331701213955490800794247874148112772139976171564837800314144591750325845318803238984570342445677220922002879363102522824544432039570151304337379596626040753321800322182359451729035526167448938781994602183140315722072711918852516166764663542187472755536622250248696636577905484463645072601450580939918624840707888909105327771638796972287782608798703009663055082575709502393729141024202217776892001183197257183658723452686902790781782114779155016222247359899356045792297036122976353898932840315263136896425932024795744651747362894106001288058579459030647265216790734411856636712240333820078750088098426632494145085467105226222991509452170916900447798241133311946915519884191948653067555479384467258423591949846916729241498626116603390810917305427272038665061858336285145591818386732188037143621576760803438495464225948255715281757760044673474070565123332635382846764847939243589535727816619905476027830363472423259217477060427676491970919302361873855876361112573636586220597148661442939696643161924298698266947358660877490850015667215667281117607769689925300075111272736938687314599677389114372451782458763400533791716690154005850659654282371257494254424321728436590551805907687433805401539097801219085300111830028084087482920233510566021558137400258854635251855678893463619451929763630304659437196543893255682138166118101976298854750484474068372543529837952756096472849726911403115692012185102987891790271432034158668702858224825122846167972521316471533525813588236547136061766286801605666148157583924001873283481451650784518512883291053617341504169806308717420920074338276637484925233279508791373071856569704390956991541549712004554983826912677075892365389281446489598490442018615291491688630716797032605334156645429729428388928408171066890861263604435160165903028226367458819480501457140184099582453530320307574242836738756536725477230594684619633124471046706898808039514086725713980420107663615989321548869545306341436396786868105459055057773481770171264493818157895800336944874950705971980904950120442188235672955163864930972279868718542027399570684885396552384945926789267260783301956171577072365936081783003861505415137320291987929405682787743378807683621108492997089732632585251777770438678936545596196825146778614863123676435175692732296858173145289201035273324414196864868999210280808393671175622711811314780838987739863833490346193205244215935851168723681916539816125910050172111975579257361280116947579635648815341302194755373155579327721524298156105382992351887683876877397475923505310128117447650925459994481217808134975042731178396488102668117635820858209070377495872313041503746519394067930435184566492736563397978593567958296281818484184367049083654223251671269646452004126555124209729703776852540396313052603614842455100193066148271051106516510767662207551623331682452536086955922768196809173563259869720421057256192940655335174969234870625464963793057109192588966662457274243715651225100212729345637535248483966856432556709799110472879428373676236191345641751726472969035404571795555233808604054017738514272554337701884078435327120714743733237519483158107110813415747781887216512840596608201599138123503355045623124330596610624063047861154390732555322462092203331406071639020154228795776601106456379780714270979704488960557078065560874719978090672234876708665641904757837669358531521194191623709271105265996564428250878549559292946100290641325975588394329327423064732629948813466690380378886265404961481596155882481761678638391198811429014322466424631764479623979181499089984571744267998272843440701942851592726577320286656714023830246825923246084070807808144374759901214959103548678576432526924016171932976302578278416755905285094599934349245969097516770602148679304889496137044114897879827285276628701773996124488831193711585750581616889517604770986331914542992576448567039328463078447391830198592113422345954200745836134170629420672948042018019641761484457525941753479398316547720136269615541025197835903121761979191065410230397780090466357610402847997415542112380750323826866395822308894112738235012654459797304199587177609250271839652500160007575108787479749471520317229691163278194424333609702113263682863148307957799995189569607314732062942214948441345662630005527088283759576086919261382998626894145830684807176069599627083222505407089743818444214764008003866299633743680348267210128984190551832961062727031378750355606240264201111873277490600038272812117182857287715352816784405523144432749623749633333018431047402649969350340307809664928936996151166555787636280926787041726137411091801504047977765377846172978658267486923604350377982496020237192139854613559098903483288826700379140760935543542289927873543242016566845816386085981216163086533025096048203350861610707297230832331019918620050503315429324428913196239759863660971245635396188905449010327205358056025422730164098450776376345154293478722332788485014596562944424570848877760778735636071379866941445223712228607254755656601189345475457485202107984765676274481689865203297351644354952663425145981463943720407344089555458215988156953304100681022875944985905799155447761002899075470012713570063366573565562712179777407386451076938806684485771788054503704086774354745824470118060390752246519430070187041570592863661931529360780433669095870201868471168843175898516888603470085107989839793259745718199057635254842993622069288454809331597998750144748625954987182743212136266249626923137043372683443604334395893386081255095801145297315402591669072918814754018389415027961348269967928150155793164535943808826026823736582559270955577736323556426782589635225618131904272103397993642915665435267829120289825457796513972545936695980789236214627764820840808034433449104356236961991472094301761453932637135946745153151367049663528928626467898595200700442957063151146431604326915337210896695022191668517711405264645346679093059306252433200256380100196752848802280768275174215059343352381154967196945888262643478182063357115640929486060996222738643817160480760649343856444614231440701031531917421123293850071147800423833049650198956450394305262500921282977088567857996001873244503963933797984197770796280772690505754619040848964851564647705476361799569516155635287817125145824158046785437841456585145558953911496600025362897241564701917443770743450038537533227182043907665721324015219579400057603791031250957935606335289027847754618743078729406585350175831070525551308246727350938480631704430693185523209552573668799935124557314355034955102919074576453402300368264873050469556498588855408798117014230278321761836573654217296622090347241660518944322179171297199985035412365033678454091447662786815300580348020262294104014616361040388207544011256192487411059777191932307088873064395859364683374789164815343766695524924747639456133235764765355222415691499986685936282965417613676944408156014114752551607689956306463233098371048790270228578397174509566119418250544405751001771944690896136149607689156564431694341097905376566477878642769468301943743579786953468238346715664150539077161668426738500370469794163928358867206641337787539697465740891661976280152248495318724514228701107438698057372925305235254867448301184556116590597931451163240461644220247001645673170203492923623462338867568829531576278969586480996258470376863977305169527100077300313402643679038250665851917908817750066246162347625253757217994215944462105463847897192367919117849371940955540215021773734696099858376875036934612129439520920000500408060723680853228570083333978158527547247869612041179567229146879824494735201857386820770257574050995329461980128246642696867359284917868855742953108794840765052368324911353110923284838480453556727842011718774205486124974739080047357791149302539426868995795889464549617146767876521185086418385268544536277859560898569068131681594110263451302637021803962739011000090837391415148143502495972475239075895630166833145267809808351545948930149370602685572981577507421683712619007902083430754594181669712839795198352949448062371021293941480017459275146722497598314441253878749291715884685713292539763789002877985136575753668959429001587357694479328272734957140539425094031515176809456208643130005825759250643524008633957498920093777331233290169402232376124039706070523889548600727395290361394922737764235158472222937155888615586524773328628348222672313776942798974085186510064531221069579517614827828314174769319105139768828818254953521123325306625976772140229921047088970497891678988716836218653036918910604821320218994918339064938900864166904630704571693543875716940442477990086392142188844631428545751352403452585993048584205286648838666996597718792223497458514587242051535281062021765645042579602441547134369265819501265531001449446603577827380529039080016259372696207506093112534108722398927152676290799893498734196014057469116891429486776601762421071330417329835302270019306050600829849730667552507989696783570488336181034394269171172366527367121195932917888994957074478146581815437322939562168861618383323362837275215199099923000662955570042633786138630902249513472945472700956015598063564774001455505759166129127336741542187655622379348503677662047829255137131987077397223366806834287228440526397369735310408073300004929358881860465986263043245877097391106923046609793745583602914426065686635534170048105222422066510379088702960761495957203607724087238686713101919522157424160985986233638323325603334471168454266094374966335802645901949211961121061487711143916357395698757609838626500286516226081151318550735239406230738585170135768024566385583684106736646588246678056642167621657117640150684576800996284748841738224878541073058393716524663157884514038416246565784348436513029229956268361312759245897551355648954796326541331532164339502949512820916841781205101501352918706472410447602947901356313031233801732380064371407402811441111049882064213193717038461121598105341010723605401507680768723994830441451599696345112287867336934855015847584365634557688191081111908587746734603560496655137881767246528954023046772892277174816549063599186924602737556269813084195188801257941539331387775136963042126446528244617846612988865355408553733715639902026881199980177486818179958134925904137360082269171795300380295089116822312478380527186400694452966160494990166162098160851542408618215898005613223465041009084239097897624293894647131614717722550487275143311719133301377629096184791309566967896876497988318724715068895752829637862356208032172077026177866637291828502862260084880446348731334150293834487009130484889688404802328231835167027919436080816626439535403977825080117725936763809811830310920078947390039468041825415615794781499197781816148057740649523822595818748224489804477443851016730108318348787485756546795504863272357266086975591588930097712794673966620131166616649343804573573567132431609792252651233560831373620043197194915458944868290870057927431818874346450612522793844508849188155630934292963625477782466186756231041028537931651511733453813323504616378518333946250578750260970604791085163577473254645491342419426230282919980264444022224344395382783641724628865328543499315203227356582737895467051290647120868800803651893741477001572528643271631406990014575595728245249801432671186471724003824808459348137656138999971580291820029067750944576196706942833487854277161816416558503800997568907282685626516002628945273215689738316690970322473543399569353532306707444671658672615016015215495871377349468506817518507340199528773549352714354668140947389996813677298061483006787430068136966390999842075208750427675302737471402509853456489282786267655397844082975477667932012679756147190847479959753274820518396833979035782296564415806310238683733398709793170641837917845888844102669084667823325633998489062515737426554118699889965794336330629983592593666500263414728920218627916026698378602050824054172897926582329004534291245012410597755091829713494574696091126656310185129848142513313153911382708459852646542084603103963401685506640583110114733382920585449178946813330182568942008804577084601793259320624934675515119980771711616748896939766292980461210702504735746670258109628827296470356986451755856094198673879927450162943100302747930781061142747091380786137566860341754458017277648437887364699992364180487604703524261482710090953902471702183784736537551627880817204966268125723973896480806773230736140497015982768985873766443669899460019590420846641181749061569897825932672955637127116907998394135053743815238769824527653192751389599877290825609338689551701608687758749581276294499915438469427323562667326662069912932726551652390800032945367849515477037525547868307786428303405705446951475372527055314830007156609012478388385614147599282167209567904933071889296948736884356501103557127426502201688218915397917842477493049907948145252941905749185403790853500235185871750865569771547210731259929644940765161791244433165523598159027496312217190374547477716193439021995055420044170096999244202176789861629360691841553138756014754264176761835687195698227893964394702820037090714878057190380090088411178595127187744880843187088997892619198763486557098864079418729007673543601165693098676083069434607662201675808284927594853556680483411305431247129515735993246466372179212084026658405692060644717044629165453102235297344123249456653968148798201552112899981914935924454897405837465333923589339607718461366515823723866070259106373493853678205904784652822291534045112796195754488240395870926332597255304217273207596606621465152663876914821597371213569723235532026415804389334486427908067923387650384424298874693028107345805173525886666632416154273595217005999062769173106064121793219710955449858441360515742232865317768371389258947732474655882124419307788321562520212574056189894899796658539498530136448423027214220255533820947122151387112986703489876082660142865298563718083187761695765947381296645597031045848881310961166627109092174170246371392302476255831368862680223795061498731249468124077126431444192324136113785465907909333864736479034770444752215988469769127765289283573032262062070105143435799268699057263013866195579724839808242943363500516517977084500348549514398267573652982020995692374959160123974361522378035431550118998000489612255606781167785670728806251394859575209400672729922640385796967091435885052775434741212973376735635167274138768916185595226351336895282360505474489048352846338122364592288427759380244400908952199003376381455217449167876237880322825798318214423894375046074700710347680116074435239116996269797605321074947422556665102817831946515804897272728246393404500462461115188738306323757405125185389034752533585631525222142040637737877646768504295803857330991859867671857594864416194880057708248681556803258052459379161152562488622889852614149567023293075768986234388350543326043012376438639325745436155888570828329872761093833576194312678897040530805515200489856891521293179885074030751757269731179499348099329123098989441222497703672141657077352158651883763604593708959304641580239474882019212053365419010031418597493093870869718486078301294797989057439516439768780156288859195530931589145404920874733217475008690285235686415400391824492412359632938575794021063816476927337652003190629294734741453472902184562765957402234368076554977182214221973661836301535286614987348286381248723166354776351987736385408763681337214779633043781756487666105607079644451953877354304274688176405026029252507756222269017165499760858207244579793933398738494384784248493948479574989587964057547852881798256996710877834736331830701535228836953918947943247448082324602900218246588420618868082295335526239942039511947323997603804052093265833955063817221550100741825254688955348471056335143250603515469198913131991405496764296078924180563506580743151739744881948400655724856737243839067562779890026655754820517541353717384275592706322608456805362252504664970175854382055565748400919352810347408558913615411703382381150211912257899533992240770942430392911038640782256424217971156065728741132000041302391816369311941856334683219031635479557019090053104220304232303355246421422606153326368673664645750653309937739670390559195920686782798237548435201594628941527726801882313663248614753502076731141721199695972906690360888958663825604894868479355199284566153514999805618838773775943500249315960021056861172095350810908145296365781914375536100058105965090756823436315546871956988808505880333449746772608826126154986838248806888209732859501744438417831535991873907848676728775521890749909558936267191421874102395795974890426278430001520023071079156079020864873513625071361099382777441525835784945510899452285512733012509961110285213725332070230563017757644287512749200867503223340302400404408794490395865023033483632558038540463431680321750485624044320609720567311565237651046603920357431341968457586005777814742859352336135687936446502235901007367004456323344637860650812721020772125128267542015517960335368091815437494770855806574681431813606899671958441597217763262490952676384403923014372590465228668215101646683455011644418803811373834295586521545765237016452254486803822422646763095653956707574712855237049006585404751507174899383136907959370685778709769073054929345353774020343104361685899189071662768260159155017657113003643796867251333920812110148651820294383800042069373033982767221928659986251016971833893487163332493585588046392911490484499089100230178149722922256012151967596002212792359640201677605622201064348732103123422649904429015265654739003691564947771561103424391262297623009846808095682490486431874218174018347174315594494220141449698744276283921792846976726412681411296820357994226238919034149230601375857053731330302767310329071445934602044770416834564240389288114758656840142351699607863415994341997257360319638480975791415396166123833124228449342706303416567446685575242113322919390236560353207552398224325406260329663870517173433687836936603422777545459707901749875607232272124942022004701366362689080902033129990999045734983842870306769823655565189176783277558696117700180188838707621915987960981166666448438272077431644411929612795100647855146394209199462823049286288418449144299570455920618046069172714445877091982231042365277870058699599952588976418500786101179767556584275563464362999395746877404954091175683827914694945960132368221951896283285671352534425340792716947672628985467313159846627195350666014817832986767371715147757493732326085464186477037474815454099471138034158832372602041009797422791361887910422397287415222283915177817087965134235177912296135514258354808735252613617922078822690324936655625017323502399236645228218443117071308833542750329220569304331560448860301732647486318955767475336741974680296922518867500709666681855322949868588062021188142102077157737953464344158695824770992577406111561248979863518194026081494536362923016922001525023305367877797580195287577178662426024569999477660330645503308502792966170771953831331442125011263964473383272232334940389482931733396872036525194069560151489346855744418304629610835897299270231206233308867271952625861639884360241339775532228465834938599413363377263245646214263390430572536501671053970996810892299496343893177498494254835680841709283898663588478886393112481257682192867957212261174206933677320896329964045498448240810037406156372698129315000691652259983337376474431031058211246959434959793321607220584345061761498997735269928438713499109537626965235326573014892743768314294629926848389058028947012165072938262706069107048859183781633256824298830905846249781839694851707701862143845218680985284388355437750824368499595794462950294809879545599339066491807447509148359279034526382342558349402716925551321043827700015327901436363209743670283989388228264207330982625761887438287984458154193639906320533935485904335008081022981003131515118082324747978955502860928029498903761488236667080404556927017926292545724383974571615242050960870092725032050895157674597323012512883072705372673023990467036552970371672923632096726842155433309591726313907744777945682350541318617882015106395054677447698269715791478734388222159428176341957599741864641480785168291812987206406203683721707681857642748517776795544864468837342662727059999009431193084618325989345970077258440983648524637630843695287522652400192533547239076163329753516519107877356742691976064119676803686448867650377119443103600183421821505153655487128665402544428274246821258475438584345020037813143991138968425604119910754379055207884878407096155068821766120519726040404134874311648681771548187095725190533092207338283630118933377072299652955496158043055284369520941031239182331948789619698069401505743744443425095592650410485445917891427206304652507560826610819537117540820039833801398378691480277566307242915984910949021620464745771436854563883932320561893228614427619397327643434834101795348854961616423463801647123128354819543640988752166074077994782325970256028726079302625929742827185671973408389813953521685016158543010202982935589782868637651265057231549403152986200254880411054866101623517360277749292954955034329251705248923658043403243097746734362983278798119529609280057247554126391593900634986429795868287990048983226095373370221411680088413891282943848297839215281370095972562883202390713968906340596222341646944232865611034947811566680959491080642333371800070879962914928150971949521270573790347698024379862170967798696457091986072559836651057998700739215425044373155989881670220450901254036459825575821702909742987242662089782637708193910226698741660409079357210444969665730747088876955596861282824414856230750795766261166155110052982236229798435381924183364039433071054374663741092582465602293311992237240410796061685714615000336352824862155034779185200142320501738287576485653079392031669957945108006727774700710995442789624803089455312624957899470791917417945520782646638687831127952846788235164984036247016037286713025426794751717952888111947021425125396988679593480658924369019859791037972013177036398241434125526338584248523870905185328013924915325949123555406094397967347424115251590329825012634882535995370912320712690672808863140053610518760975776810613975744505850154901806557248024860240868591049281714068986028090485045264228204303089112690630864577020379515814374659689487912214947173821557877876646217910011257698303300567076807731158427179493207675816006501249079836054559768132444894733869242753336437755410845201985343874293144875698866249758202622708026344413445003380183274298129678788301553884796745902020394741731420564631561400231921200205758895847536867416106542030935359633667430529953309948917003248294188246544055626424266445340630888144547981093822742754750784925352520234166983231016116130508522754764576357206830000638868232108005577118556459181299910402559584867974749078765768920220173423639924252386342911903914275000250319851057544564095259141796951085662055365127648089149115533456138586248626606426702366382676500908638436274459279675103122167163692227766398761976982385790864463684250465425159173917877075621666659825226402550074141168656943459951436290619987981400152876401402587340109096423714606841355537351205087379990481764326478448998025264117577032850876356786661927372629757656626939220201400525448338558036156003406650504623598145732773149791663773735749884719402612415733361205134415995307254289899954073197667422216172142572520887344096334651775629545299035092254949755798232993174616146634468629007144105949499409593110571600988196415022003884801614688918914897913371841770625073187696977832831818690047462752353549593987322823395270402823872831262153045737248459760470540221127929277690169758505756071996969590371723721795281578152055568880053976837326184502578652345203472610709788397366271570337892259734684866713658916778194379846460516137860340568166643103965676810171053628666996954888295908194439902783491585745050552140521198919671753930257500740757273083013262280194376506242348161355354135652212373900031574223946602625487820936124681703738575071236456249385285788819504409364223899732488512705823580572942985731805458968958386174553035316536088907414901147375970504653835996952578796141319369373799437795020331299478242685243694069091934885058000940920170006939322957809594544015337496833441242306414563208891840559364843548857530488846505351294191721114057473736979172957201382215544960188577132451651484611455956817864884654434261971739868235156240409845328997451845276021544003133803176998147663985057279049067639215836821854593778881633103991877449042663873605297520103973487619178704081022766151825576780578494181240088554723164853426671159403181193541170403687354821396967564523796360330514627770147511027971579070289063816614631690605792008776317982701831574729180742461503644159047408224909042675192055586229646808823062756516244524577616065300016030318524584404536516630356439249045912070844732399436590081083715371892267240096686915822911612224807507786282120851285382441304118954524250214174438136554282277410129908484292141419623573633421612517724336873769633689180044246475805143135481714839043837661845526887495880020907153385431327823630885118199000059971960732816425030508830025057548916874370971337641112283793889016626077480013146897429002852342279122670448480882288001015617840105422498735425979080784690490013061519506777420246215514792854618486465388849547490524760353191337187773452690787858649313212861027924659166042227946803053412255235219917977724155418768862037660543701209430739428946456051651259647244658904989220339356562690953113520848447761909544386573276468358701757198118199113864727530464650449388215400619932053130269375771412138307476764513227877474380461122973580949713374341313861180272040435831404277438032919814478173472561448824312668679290443907249126612879382722777988757512539021082756491554206315024522364928407403738648981739744954332043334913032925038173490617932310949643536383175851823417191773900071215866515389634627015210153466114392245345612646990859389921348745463707202013873767581444796323239946247918602520215801146168294302666245504264404504429156079321030311685885612647923653680280675174223545102164853081373895265542054447071929340381204967116306551885948094485849035364840569843470741108290381998264618524098002356094004278539013077123177111649379825586195413984444347777107877031368068125471519626436389321599463864552080636448496751078091298342398038139583262903655166582244543831413740760355349133871447168234155931656965311530149059131084991083311415953448446720686182011085649515402866923892433618691470909087223856218842551212129878374864058587272304107539110490775263847729396695788983226912238879647999678722461012420050142841976707848783795884254646129730680179656271477492964498211453458481269809515658190692827365905300468415800898682395261375331241722733515862705009404538489716226337592554151364819912726778627643663839039294193453748481247487752378204118684190707609590165706512717829820049200781401760428732396083637506318335465875778129317237310059177361825517947649372544702091008162932019175209775676894875722630598780116339498004046157023753387456739480557852518469965434202906828989465676755279692514989474783994618970426859063449658597772971642404779246011699626581150585520053600755871932503406497351483908022406103241205446283142213313085021733673520569959103577814804447899431369142224325228498005182140670825660531783011589930037829697182794938625010434934663995168915586096755914080213414224150430418622279425114797431625526098248595824068462193261092534483010073590950638044228639810983044244432796656391701818637018640448545106118305283034564408920208118799017891987736936262781539239287607230758965324481545962107005029102318353413907507602382153594846871281502754851270022865215673155163454466041522261398861647208204739643900236619190037176444203354784296490222294484810075726694893629095920807430809432527576187279759705138073161251279484194153147158052843393642734462064228307806165007179395938857415257367212017560556923168120146448018659250130183922232962556657337048538513196971640892788229506235381856703962141367667278271031126872257936381097306539640187700035049202491961910780554572056295786737231921454756875538517700900612866351292888172843754930125010930992402425518258831359223274199807210738695832877466820498908627268565359937272777639813820555035702607345134985221255902633989628081894093046277683950489684859820073230910427433374904729361460536759566373453402129158241275578049419778205930606587308863643926434628608682990147859259984026708314636119781737155058494391486966384988559151218888727723767231999058322304578076878456897424425416083480993936946540165420193090496387575967979752429358321130642086178313393099778833787404840235335929183570435824006694416260437834067352162974815651486568354885675596247704801429039387030455092993570230411673013920492557391747834136579238376090954737710901484563190664280686473961819319404496562734725155093872941142666918245585080979287072899796346226957691677828449910485106560502466880463874061019318124732679086876922609826282430233175687499412937444263497629626156501193669270025979675411873678464976498155441235188791454367664354945423842664846463662637960701834932376347337807159500137533490197867503269294327566741555396593710856844721064186545311356875614108910803103294480153740781987947842281635970186896579004820572019027724729737774262238058170656401804782300767682581918917088153505525870843634989116178052498583432802535735557474279961239302476604184051355737891249951996758545338185069852511332825898803147309266298881001431364669689981675440894063758783705660791846805876206999346283135316225610429684405153089645869798454358126174593871471825292312978784201048734642989885422494644408306937058613986717060843630508254527577705699358570052240423081217618125468102088015662758360319593271182755533695747741349560067618088694704038131961840929922009131725548381616321673863167514859577876502276419964958820221391624529674411967945795606347562227510058053551084390457187568225636133775174510033323709002728876021006628563604254768753198405090688791592728129926301930583121314570816539773830888870637271079458033728290646830587041705369962588064731334292373513687349470374669945604053132258049047168952875574000897469632175023772234666222897277009400856063315161420802319732067714635297761144885064290847581588683396805787968947041582980029954563234060741505324082373812166301496154964078006411916510741457174207895122233938714713791073354139073362669843704075601082618563414485530641167405763289056826937148116609998826801344546877074325867024201938679488291953622969244024999907034735562344620022121416112931713029847955216945832695558065791051638477908736513361524973900495231071432300385533692790113792718317965714102235532268548365728533924164677090926491424379378391290807011819811125562968420684532393345626032892547753811034118458830915634397769211031803052083638477722221595763279135166210483825096204948382539347854407180865373837055648260700718681048991579551072967697325317203631272745442245144619619583175307222380089646742790407968984513795926809125900047492228177991343955556706636726857002720844780684357739777003696490724208475356591265106422264905106361719609731133748668001340342035717935204499068285538474106376302694391267407355474678333125545419790940276919091404085358379075283001319973274097560107023591023692965428866290323783598142319295535604435515463838854529852018229882204060144576359751527823151387512315679972182260524752866471418914086638235914469936728102225474372218571408802995137791036236788965742610576829271896111253108226467392051855597126584101687476499913814055885982614621871772141994521680046668177673391075138705845041548974960127464407367991102334161906429242717658969157932388683652971404714586568141632640221071543070806805767732261909976736649382040365572010572829168400550170610201953403098812955731799433443739824461560057586554961067193631578559958526612903473593499549252573618078194184750254144681437751105265530235079464406839742625389624591605140536384539496165847180959262101884814736343485782454148561203952206209557762111818688466766852987927676043713373526870791546548660126938873066945450844984980882136984564484779221129731300672092491687927109111936863706257213523521743287058427197724151275804729725858124855929568252124514513001273719172248370332937188176272542354419415243429909446920913271206040016498229992358191617607973599139244354997093686523707081297052643249070352214171549713930267906463163472597082354698384217126382713483452765346953100348995271470672927008156894193423529012813106092623710394449408855894449635649961707008462125284638642817540609276325658220946493268665729798393942275596472462282484211345746194526668556536400239688489765847974255894120203638972491443886884194781196103707416938152757465590868510745903936445028633696734993399680147111264290958674256515955966536366908963132999935661860093817073479264382478854199743619212012537559229885833115008423903532826545143204552897520586070031903985217224960438295837455152543314200015585183986382934399490093428876650525840193025713203072386728330732236458922908991485471441567377587304612462880789499638136776528213580202784188234510664088059674730307272389286503730148639941961821572332313182807234626005360468982741344224312242091322610143807650788934244370242866294774761183330995609854964334995069443934332132820326498928859824276429199874915872600235497459387245866082679609578226983734679589747119341770521978586307308356127241059414938899051295988313370482992701269581890912159856366589961056792008203849882606785770044970234223913702508463749968008544107356419968801473996443980596656700305174495438759217825210868575554795978511924646803164013490986259930373807012478739768619903040387041639858782242777612880823722730252981460747576645926093674590529345088661895889127803622053327968214280965309646687139827290618534185102785995420467660015490895681726034988504425570292351543024033142209773520950634208710285319793543535134800653403330349168147919586340024547340336030257805011835734756536678455239723838852955807710828067216724256956640158781853514382701167522837192732027572839715010039060120693996058538867558102800177768624976872807197723948531604762720151189971698826505728603363914801913121084934868097798086359254718528493863675816150602193905568554894951708156825294361330017890102215518234847991517176863866463430737976653336157193675261754652546135466799002111477897017156312361850449804482975775661366871923917564670277717789248866016942954586164778188741443273539351508299663915352952428333886473628075014917283370719542716467346439777255912812655277733899133420108202056874550116875879218288168196536911244103242967891138094405567319185092296587425218074866308305800853276634268482583099153715659230419180629585069217649996104549776554882862819826150334328625573742540315878813479803597283369061974043491179532722686125532092979550081827708986065066034787075605363097375193993384299504668924328897695087020189079406308695356268289813252821751140308509616344093381653177412340359238674929765412615564609491477050284277606972600541265943213541820287853699068876662865984960936495702147624623153115665475059441435235567682903985424523823820506935627715800424549661346445643519946708566765593655401703934072384383990898029623283203708525914784956430561903822469033426679344449236355985835864829005853428204887592839113438234618899772750967584940919453605692594400937427917448250441156753973042561219959928513741792240826942197846060651422128473350586423898109451449995332187941006532551907539160766191880479013487344018528521044797807274731700837544424200761127341962652726017084952941371447857261039607674620887975893610522385657430496763097889770978630727944425793342070967443759804354632523091459247812805408764999295172657617038635850443131982589924715149762596375348560006684733344576984341322733664114478342009883375177221600643612559297983420572853243620691789853810432226459244405116691018165265932970403973755301579345154958322639354834324838440949051918415800759461710467863086385728865461674526157626373291914368771608690805363997533007590137724542868994540419464697612508039781134568386857416861395440629137626307875067659883223787414537576032690472593655125309012687806776872423092307439150450073582396285067267052554980204662631121172775760408233614669401493460314469731367390424509781998992332596210465684895043109341492868379729443445111643468169899105625277882629253020664057227023951935522071553399426288017067337041076894248755422209174845652632281156807586227217243919018599311996616113986458955009689035655948013053189885666664455522344170762961525513855343912679254911432921335612810959695195614474192707126141936552736436573622942472764092047035070867786838643042594415914999344057144441062561186271777431273162497510270459820718590468424868570947504741550076981082893577757536979064837254024106140286449710826715766017129283329831460767521425130327051254040514866356764430210960778433302006784524630794950381986122933235614472997094607725380929478346216600682708629512771343584962405260745432810555163855687341724987917994213395979399818204403828509383084356399037273872955592498202230004183907979231973734489113350683100192963373554482064048517079645564351744941103420009387395036137695310926217545871618745897408010515113887665686054783270058462730072404840725710616322445023324939103919471131026735849873147853619436877542435213105195357604940081921080253358127025445351627036027254226425559859122398233867900408314021587514618830287594576127415257019797972460225772560938039922840393584151305570726242574717863971973155045349703157588723280686465771725773096965033506473394131313280927078134701183560616085335827506717288059375093500945060313451021605026046311321898566553361913628982758267627753310880441624440312176627019995421520389203385582376142232904360785665465280693135008295582768631013650367520704211491830941422632655128565543167778118242469504764653500300349026763581941822113750816239783317877059775004368015387756959016712027295414818305198191133472030019021506860261101719788884592863376798768891303866896880944833444399109557531951572812098488035080419560089858017607227845306633009970193919421845620276254941909659863163332285710128014927769937541325858418676182684781469936269161842291639742466966870081968820588507876464573192331510507659792212871408687114701639477995167464839232524242676596664898494295645222768536339564923615024537684366913498189069932597678771105518886757709256324730336682379201740184698982904958655955962514941027168364883262091553429570410856100807970752804142414685671785393673633110594837399528882176476284924502062257441756681389080709804113206311427555287619405233783076500099781461065076960488015951366431863001668233645088159815234522937278138352647892558094471270390259127303586484337834459845915221751705208354668269891449039045650253893916572007895952536164994314763976322411140662336139518184660535053414568977435905257067560654615078427443645824845915067043747122978780357352365906306000866014015208482693859788255909951963690268697679640797726750101274040970856916267501748075451668188876729956164878858978162551455573591313891514915767212353075124255854994864145211819591915949515971034246159923569204202820814750421364193538400932080181915594031242656555248815436347702135454061855800654888081970938742875954305046711686426034334219175339494991764415591175828561009815365346639908675712374955780157328307535664796098586702574180302460083263851740720121481415788744066523422219039345724199474129941150343234889635497568115867646697232953463306205071578028663420914779611687215578313154022568100265049098179461394204868455686657392170677229614356037956657143617138736592564142555633651583445973254619958237697423974349007941305667922156699107369774752326220747879640855666079316877219742599993682635531730118606888523129313636044409379849296865518453118457152587523419481728942797027202083821686389041225784087782590814176136410739366747315049843174212399058347441682598208344232272679985444635548564720629258698421058598000849739004894399060788531099550987275613353470506234703324291539807172273399719755352292110703163347716234678351618768638584826499514100464622803795118340669082721105880905556119423413251994571356844438788530602428823979604100681844877347760024899889410192490350632354318492403447290476310266780073951952821413941534961050721738511259894870644382074963584074403787955219417126013315450346661345988486524825843094360366424240671372166526938367614922259819884573758937250919882643779734763772394160922143443074586747412233044353054192684860937048304602755141132012983829256674686930700775469179244380271630154539987770673256166213326633182460554373500734108518976582182591554506460993767734287830067336976084737490332176057588758433697060260714263793245791369595848873376850917929591460676205009079140672279373338971781352779311430032812847181199425658514166550577797949168897348585906743039430840088288665643169310816428994497283102928109861451434290477349895428350293147955815650725379414407959567604188881963058849674764900486753772609529690187469909405368456800955621590539205970557023306971093578238285019546527010974710139822390675850543612847682442454376794319349945723372364307664166327556884617811062583441102967982708870702034626801021794748293218444662705740495993801341459317200933936101528604578912413172909779931917402440598626433621842944817575853541978289406873535437732214445714774299235363099200396929235023418239152585597363868768820943845072098295581569007142853616774622063714115262732103054167310115927624426732635566404580435190049984554828235879619644209811364427341487886200205672112851345028670314105057139072244805148914386768199877832772073882508652267806992579151600822728377338831746479844933841170456417554738125116377827643596483646897173621521964615803826993636038646535425573682807602352110934560257634760218042604455969004882081064941380112163201956354017336555402342320649267346463094541335438860669265962609398293247194361326565488344123467119013371537704405655629365594691963595120865575406362139752436740678061931438690254163741266169561662306048933870196266135584883280662694501346559238021296817471590271011893052806942482954612569990881491159483298318317135470354430911838193407572978327863048606110602820798830206051686575905810916753436763955892549793046880011475532411383997949932465726506941581301480878199280961997734453757670289645473042570922482954228689233638185237267306441283411470248369173691241725150398572424068458071918168392777062802899330422418613396473796097521721318145818126136989391648761635183364789372560107252743924620806960562662888069357715431516160234633687919662475329642044803427303247958996265963530758946693507500816655035944662610409734673934606834112399344659792437607995437090433605415616927454251048419098173967729800206923582382770612551970638706907525605952482164385979312034414821494522240897067542308505153099008385787337895547392327176283489018935482022893362336898822791409967194885293162158219917391479894133130632848391044575970550591380849488826812679475161062477096422791257946364805498696333231125267204277600706389051726121725001454414077693410427176048414945396988839760448529455299137481418637397141922120080351842949957456187309276626739257321119247552065610241499714220879925687598547075014903913951743851134739411230075336633187646776397883952645073495525656444161528696215270118134196259947697613813754468211116317184456819781280230738593485835568445832070002389169765092274347610923959852068550732289521598367428654050475100668846411784636059549631097105914863215864038583271893627045057164961323069548957285236202389671006802470266123143464618182948616512712950053687084986809794766417479306580975572944045504712577532324753180764622211230747733586554546074190271977422266388000049962626716827713015644775100591102209335235598139229979812930078986633781701279135170186516942492600918905626155314824904727164294944796245906329142751997368033246765401348375058867731396422658500563397965812665211473065974617482627793610881618162771786632767652387308556500881464345787314264684877897117594335829657742980521622913426302469549051800589154612938155469306067843137470759746718557058063705537371170245764207771613962590265579148541307496459852800970163275848243263011351168199059074458348362569914111526740307713626042191455664460104127801892832403203008964959431248162411422177379970710347419963054684112461379517163554449720049426543637525599358433350984172568572608881839616462904450211071657992771626640352844734786338498956031013344023429702386347695831687745615514589286146273804055543931562927965412397843537687174187115395509407827748743564871953050294378684853978392501812669601895479029371934094973665293015725426583654404883741423252049663922374764906917928245683745023363397725963437990657213906631251647376903411577350398638098922730502887256240449241650151954102591849948622140136046775709587386647176011833442992307696345747547565941517057798691758196787167247933373287618209613481857714676777580981204593896782681987887593074120011312023661656338195728924261185101272035744409876609679054108095563879565098600239891592812811891259546347871365939836874508556444532703740004194109550722798640740107505248412813744636434918025789314135842633558780273032416219935412757901563110869506714052651591498797542315488723117628530727413205270278229989542402212023005886077609048203692907629689627222179904641577461220306262853966847004744120097377697316219060205502463422319536621910489639863866676418550664399644974685567760647875706711365568110879449929897142650234305913111946637902969261981218698276188401497579627687478234731166041472278426465119911627351065869943350153630551544867173199222278894409594741602166320911817732716878125089975736540741333856145893988750361369756539071989099831076574544613172227807554372369460163072541846259141751783198690747826131975165271315115049728907579912758351906336314877148551857914393390076785109432732058080743469447603889631531499778267761769119940976475227930364606381898761157455845465604207924662755695590982800090438417005168565633009157982486324048271031201796675471086870787434751055640773422154250517258516968057499300046309901428094505279876035194668086131944668181619231498862280024159537700550408659259795917871445666906036207860486646242949348810807793240992961077367636773225583123902865747880300354303551787888573378748662436772376012253913207851369766034559172314326915754303709711241010966390916609949683117502795004475490761202867038690423575142418095768758130055124846316809163302700533882072964722394444234119915535410165574011638678514137435875291720227984918592580336220524350338301119957926952842002085577615620958775599961189007928780399067711675939621930622409593394456986768764952013453866443559132845308916806574142000621392549126456428236843496097040972322307034946751006036410812947370634558651096348232158437338651127489006877206794387007929306087564296435591653890113379010046987996659209319254681871195119960714065655011389399638125230446765170583322271568972682858322194999775765743906330235036471320598373544281622997354380056108698949206856721488619492804663951274287295222838957766516719111295615170824243674687143415235245952522880280241959755799799708563355166882192570307179861541653453002036630567678982226271987868776127769784508195706345737212572147948869730759890848571518253921304679721973858412162289202828907024930898198356917077019733416413529120585241228075746752264967863026432905022118814661346690746996111742405174881493686747221309354456122157925739683245020787379238687692215963032428524576225868370428717105089564203058719580473760790673007681103264931365292354389987705011977313604728085978437313196662811096506284903919630883545880689457525219311480934786726714012707324078731282213556310129155347237816346732162206500479011523560380725885544242721867245227834470583629945369690980277606438779810191321940763723009197833882216367585869810172170841904219611534593698674276009346577242814344774725508487271358278036792925800079852095521592873109037288310946975136502382201598136820711893349054612833064646032133021972043619828922831196027064795974206571615175667734596353118219394097442655665259610287000102272216695893536867821791405979318451617637196658521567428968872985999961794693264081717228415293724739670691536091262905298923617143862362615739630544491121272643122707467513713809704452012853801813427636669030967690094375400465491478426852468644490527323792997574265098740562891700836731166061439254472034693487597442158424305359591575765957343202412646169967435159633636762752265038400767424333321184273059638872208506360426369820225578483581174963784252668224317018818161701260431222303098371361960823329901996326766517619314846080240919906445668274756793755871676184479321996620947974974438318407433996662570645743873258805335558438277124981681916930561822772375579590568600578544337777043661812795624862159005021283538885438067077034055875364362402003461108000119071302456959666424667830109074413882484889829251165488181326963998908606518527960871758483387735454703672177493035609799341928269663355939621383439643960681752391726863412151520769575262709635834620262196900078651931217375261488649340688106041831526821578178173563814710002145726293645539328761771546071770781929030767292164542870029980249626890498657169352610015605466846183556281963825567062909348967753237263461946297759170308344438232747306955186849529447228290221345033342728030491549202601400280587855853399094745207802329546170144174617903752633241863197280857801276023164924953939930533334578512447969324453112299342858881542685727853912738693740373858547353020420500592296565727119021987831648526117373965903682578722061399969148980686229372275240962553337757208086784002540317272752749259314527962609318424327851127633587474246875718346826386128231643566092316830523001391091839844119011946730097671746571115956296504682369716671760452798667619995087624249701109377760902751099562812317626035626306048127457381401444236903384595742411309823411176951095117338401248552388265616427331789548229186265755054242889184815871571020607732318046247219502684913355266172445391582853522629359967179169715878074908264293647060545603053152587543788323376684882132753628120738641046141018500513678675416216517935198877497299367878385297726193185603295670466813380043792690847065955266285754520391642374858954777926034065652932979622252339852333401150349669051385952679544722203063010706913763624573539145462182981936045817414466360336482390850492726931115992068943635062980868863870236052097999444047999251534184241229321105574515238941066341771088484596668638459716098625494819741794826790616968799603615304566892159465071546547776844827152384969992673246843717362459296004938660320872335295971030219597166557408091170731170587249994355115000930201305489476830835804327068299040396008759919386203434592350303801976608879717128678400316766385591975045178168756286789555968168437408668250855055700680011094261646004305895174591427782337720921913280407857495067625969579731785128606961286655122642712052760887635841379568935883122267653216796932546001099320998581442453058592562071281788102013075872880347296522755888770039193985095480742294609815876336442984705434914692494413689508083190240273947262071140962915188704733245704491065872502189388894369301551306648970395145034647124742651900104500491419159881079468878741467145637374959034913804501198160501666894944730357582008094577142414205695170637047157569744104414088056623709311163315702121228165620521086372997517231666634191204306429330712228316932133095282834257407999782218484269093042878707203367759242003696219299415543737912966814040717711153071486090089899619017983769069647250657345624748315833240612706001335600689531451139590477849010928642909162663013776236773244595872356892027573823257038184404249114137181397464157850634623072017894733963366618579051178010257709176355695269392025868155916783600979967926041379702844525252731488766308578766073462875628004569478899961433936222673058188632658917587759934103401448124366670750863324811458173042167008751566211892760754780926531840175584937780290706307013168638756368784209663773178303319446652578883722747663245901500762789454166495595746934684057892145070521716038497921888915272592662483308642422778088896382288602998343982079941956239928326786918546130964994187266999254805536391155818213054529841141442429570184649213363358320728042644068399849907421256813820752500377895725396496536655050223690678331438909260468425800423062842997209141128284970765866866741458389582486998582854315937286839209660641565497244765356321080364800108051578165207368002852672069030464875674180216817840923208426683181315959181274019343242606702189990802434908580198026150744753571075685613506569276859908700629506353411549130025162625611712125323404302615407645008423953509621128955999634080353442314829070534540203892443860322009208203809271495378228448662202934795194795628210528230416583636274336091182536829070573389582298973686358470321721844022242825910709160318858275271180311479598704290023559880473711520681590242046618842697896006349474003738228899158208056348804487386741243412917596383385761748445410795030355171101646849242842848897766836992932520273464305602873271899381276907236712512116618914512035837689582885787066437504056045385337426206173665036962358003510366543294204789980844588917005316716241418185042664172725816069110127200011874838462606737926838845588005767967598990211460216677860014721235271252327295367829180900771027118971191463916525129952237664364324453779445751002227698647084252511978292768123142469263017927092312339055566329159232334859126277001659713626025007274354000088056210199642201713758711871506022279276044481747520587993945018775770147856706109579207516826711378772491587610393485348309377421133548300089913167528058236299316386434242048356617220761220394681212672293273289569106954761851626736612199934032320791528436187683211695393924763995898805384422066543515125133613591375442699247568944855368521075426931945171162149835235557218806797546907718932671359191923885719976171375654744692774059201060711386748848927233921111877502221335584186588831388756819089040699052520133169567553838226299590793803837255108581982012827421933304744818164333558993833514095884683783110279099421825015753872824408790495064893330240727582259202905376037400937984072614034908647292252157178501221457978090431668576210432133283523860706370182401691635027342232341240381481625026963135363611014559821753452171339804362243407937289174113674270687825386928223595070723396963263769558834400941961382612617458925267304036732273531408575852144870382794228071692038870206732985308807264867656148830650464699223477127265039933905425637639960571358684234994286164704235031535912812102396113080534327768207410073865700058792580288838427511090478142556704086118940021909212283121287841253827982890802876307262189452316931027124734792490988776647744985188673275329463040141175772283210737455696250356757759746199795658162558666403380700465760370443888596664081698515597607366961798471101172754412376704086108157614555225538792362073798114734880022439455973015175497459045924641269634670494514571911265252931223674452298868434518439580060939010142874626472530479634466018603304442346981382822709913872995353493292662256327930345454680746060451818027848671192884409551273816793124508203207210187232274462748835736703373824827193577913524870056285911401653858369638970719292950682039146904456041339256191565193347498083575119813075982757747042075232839449967830832477406235926533759618218026953831588857869717852706090243961521703004956349179892209323967871474180862762409183799662870865386389549082438740077369219540350471647813934116977498968432037428149801864355615003236120119060347422264839660038188409928080973164646240484019630024602279797553128154359505434760288131858091374376711960951057917509036228817576451968625287320774729543324051192939708655149356489482547745774487991231359461322409945581303256685817403311415963235379677140788699679837514353486034109104813528686527549703359434741741955217173499931937035955444976267946570348540110530331421160315223673723031236187463308897140709240654842723801678280185163471647147974514074727365703991864418615007443667383711070522226692129066254237201325340016345333510482845783695105026620335185441221317197108918937778933600352982254639957015170726288142595632793107062547513378514000792589383022885973917839270607198471211249249538761338041245635410321194149542984881162881509555808306838104973440592956675873983641628112204780432306845388845769084870505349979139468369194773936209772338416229490784033121397813539129045655957652998256990931545083154600151579894649869457554249237105730547346124058072739868323359935056021011290475919325846836531231986828852794581766163032181931102872940591758024510277645866185401261246996341203461339075524448268600461885873470160685133304674690778527747703088122945769047834546344950449034604125509436188971749569689684084669544555126979152464835604648333802949108127488091082803388115822503768256413426314855213192742909130970931083625790471462636867937985992309595499039614662834723544549804370360488853829984053159543761022549873080765939153690498975934332054905324657772771655021669855884256920639614618907135731481763745851625089116832919743704521086633428452841011668127355807532393636006394685716678774466417463767145586422409612367712229910470196626139068192017751090257398544615738956671788616545649793056118927277715318245408638414496334952769795780370289350235348896413054439114436619070135841309394482710409343567790408956313074270084042950335550082005318912548040302056714040837737208848431831936404844978645048194253939795463725735245948746946720379140065309236123192059158984758068132766814949381932289813756389834411259419597489484375043909194036706391938844337696885916435211773582189292375941278320560542187565432400672739107848843908189474333376119334256176010380703778728096926360329266045376584569577099501428138760992614371458570024642529568127952687810367850409345805200461943763473500245283633032483586408713015176741159764199828554236647237465115348912257129601963743656366131454273392564389045089570446351511095589063275436077159583960147536402711190052696876891672222923728196804464676706914355606742825904332299287949973098720332212773344899036184653896567817299169957936891972897835173322048857517538611400167752269624252242652429431836965436791466272850499790809979368244889834083142149717450841971017258598113479635896077558598103698402341378164131451658738467580077162741328482539279807048649335398256476361958295238540854975594712774173149718602270923724745559806631670266239323854032092566071620549209925061762774708208041308710431518410203238738230628167508906438816501659361737805282958304377796845380656664974626409091345148786778046288111708540806158907614765696739088010600982994778784628229730864992924631438706508007400627550549731797637837422202823839722352444536975864924095496936685710653629262182353191961930832975794321378744215615486540436574145852628361262426066570670432077557470208082094990187152635342210750486107918807162485995634016645578410374173027582248264621412642890286835005641922485513431098470934401097575609181106743718535091304118069319642183308757738146621479603228096469628041199525937616664786916004780681900541697290163470484398808690050706361019809037399256015808757417076798140551200428963785853280733063454273758399472574292686569163182535165826013252399975255981493821652104627782214633345970985372204090046242509865020145228243241977825343422329312031065240475139113212272938419946424709065762958763161985488297212159131659606567236912321448589396589541964874414495401395654577527614393483050690768052333259096155897969800846656050068281156188755554068555622621201619811465638426826775903073593944615594268852222939282322945406250661810567021674015072750456287287679443152853607279438295643062925424190759684328530793716709896674422866963005741212858165319907225642679477405963791682367982987561434283726945652789484725211758287429026409019512349506163286406231502174200103260804532269287076258622790154127949863742557280773808975320572775307259246005406889092291403051786629438162872577067274835161433568111730287031341053501867003952712796251974415093658380437958135470976508097934238855789960222954301105724093547793300101049544163896745600389771886337865287055054702671119610733087175045002157095100419839312125349776326399026718358085422520411437914209435756366835138618815991855104887585590897424272337812401222986687226268085239761034844409545609046704306620587059739804328311408156035947462181905918233132549360803228334724206984809479256135304171637377941347962958872049829669117208298017193158488147831136476635700474397988043141346671391281678430185810105094474263967318830801989260996467679496995423364688609280534727904096082614516746343317961899519191563568335626399531263396680528358592657105705450649986945025916732212160538963716673731257938395386598411763436116889469377337014109133574489892377524650106779542908542051470429393319049171074898163019214630778108107431397214551490234255518004891274487841770784227013948430138557650751339217498099032542681806741309010430001166453222991914078996954328917234276051759806572342203753443261906745023238931117076475475655610023330686559300705626068795423864327622270246373978465992832743457857534697729926208111159388594222467919196074040978984234573588684943518416513937784093251446140003140156191876464399865427288232955618414205984374764875068291189390816468436135122849546695656366277227801578266564837256526331224855213418696607726307148600363438791707709001132507974900794658576584637085670620765196291379884256223344641997082409609559126721919577634294307623097848978656199838366580567190160951256289108702885931088744540899743903675538863848422185451309301526111398298331078096841088706658153225891570727010524583302216926861155987800681909031902375725746163746917056224680932470602550188443206173885662963723703186395882825822991857353324825624949425729926116503355924189184790136799619578828619425616947060167645774772642269100742526082220926987315390220205953698972017093474111955731623152061420108017680538777639075647230625946699650153997213225043639045381903025830690242096081581360945958390368090667037880275496639152946025826189485394724312562680439182087488895272266206656028663149359413255554376145251082047663464654949536605944624491052375855317831771659974692424890049074859028777230867336109698657520805358442473147040154115788699872908732234852054638538950166905231026882402847815763095569892613787271375049840252046086781543671976341503564002484403354674837648772435947619091119601426804888604345073328045411582130005830311065811091313974943505728176573726816744511180419608784704239244598754331136338722431180089895534879309161947695003083618394883323828767467059346874709253125018863692646939126221423763410288050760060898970987630191028352537964066342826429545138372256373875384936203182179231273923109431427447482302841340124973919379799997241864376583957353027141878399541227622460869076235619064818219359690032528927441782802730905115795156221823447834342471984942681887928170715299048266282017356728801531673885271131554329132811491551572838487449054498270095843129082984530420895312066388990971860124721047560377018966697167540324252677248379033729098663105305018770513287143493552140920213962995906303505963402950520401277315133088694183079772175564065517022224670488602662994008581123218350165891130294403939559326014453153777669960263624363800860811152754357288881763333750978997004385660288569788438610422798183512796868509867625976167571551595781465915857031091598182075292029611712177236827200859130369223016294900043225401947995501117927998434243970042701065363375271711972072463677762957136526846597858389987663261470483067396086898183794826214719539169199565716368651189408499260960919501131235649250319210337794952240598727115915327320641790275697307103339349644464952505237750767557900304158612048027800882203047332280925299134200878738972683548317585908295926116599454333221154621088673955730758746880513834351405196980189637490514947201228608172227939776603713099025306223133748098499814545304548106523249242742634317394004802246634251900155282417016424190433497684975295071725963432125558819395756315445449326843077710529346937785221917826039390870561371986851337888059843709175014249788933569564708469557083956032408617296552987977724453857035718698514361207746818433294603660447415111379611248602292092626644195398349126689855285558835278226485239464751834923986321165065274251870848511434635391869717406103793728209286852561842567156243886932494388813532870008065921033511535600184301473716152927194552051504186503044246543730801562588047209526083273359260544427841767198951570514014204293880433131165364162334730980204976140569229219739242917878987774277972598547206809977914820945315767622679429570848008879433330067182553939604445721543673396791647835973476870601216752248531736224274515988188490061163253211716952084745381288103984014603406057089283505607937111255458670814682926733147799785590493079663474323858236912164543137577109353584190033761726994040608388313284517357251233616124928938504927407388749234314698806963760957800404034200798562709684549390051677487107469988657782626287992288457363844877306787174587836621473204146531139562370966958229178387803358933834356227375561676942760934980506369534678002328229668263804370276374060962792525283680955721031116515824267926889878078448485584308275200341674470432552449289055631920953663707014023408319812790285486059833649094225305319892299000220009001637074987592832657328683150341236005332931643219298742424626831290088002740987596153221603451565781739040335016960614448479332772470355434524370351381472082581010910435771859232351696638520991276591067427371432357482586278100990558316714950118594139670633434615724367609373058385830403677265175155156954404129473333678932040409343061016013254601602716729649452901719444312953140930557107510923095612792448378450587211603188072085830733262308693393029755134217233308113927242204689867708469511834235860384724803248310547059553352768552048508930625310510393762964679313318296137898915380968359309046680160623074870570091070808367944323743544565628385288701535946028294672396202601577613241350152165210701359814724324212624317337803042531937304872769749720136847580253972319466263849033901604037536211593276112792178372320053778487162057649393697713965376742056436163861045715634196980730399612754323152255067238103455607106785486299578362918519293055863465881483582232275421235951699937752988835286636304007099706638021443592207683270960281217955395984377754747469205752054280689030713086104348439567128632671248805163135298468154256746374696474579325708206736452270697687777571403512106353400371711592606796388829973215962441314314470259525075974084041394330694453241548209714385865193408665642138383787474314310446309117809991215626498675101827236575782169109547112292901069195032419773500294979756699778243483768442375853820405999820479673745349673113194934546946408164298448756984975689656264897859070301941271502799754165190465678193716656770030657420307631856820473327024227254333662845355198097225660368691896240641699110496968691018913810777538093544323708391632583686645146751671591100421715261080555005766785513465352128700290355261459309603058730519180725210139133974434670484306371809160994383265351381624930705356750523365984143872107016073392329855615288195988518499088424383924242001029397544433393331028741182477674792496820498721798361452776881168198902349507523828365364911106684723298859954394086213992472589874754220225276235388478978880983788538287137083619203829725341413852583932133199436183258847255827488463679875764859079947963083387277775326282086902409323687320614706050222146847535983923785768564758098541513011316965102355392407764820117079604229002997807260322833168368706411810950005832882150852314597950862271150370749748394051047655707847496852212233618765426544940506849213505665208336148750240515985688244287581004749830189030915403752371724808670259915561960645976148580035015831292431325140816481462380456246448229346457801661586632574351752897057837977425427996641950083028427328676643379721015050189697091278205925081281161342227185490011302004885792206699528357748428011112410222459095851854560277230080764735249814227115559916574354447921088516932678019346031900574826494880773863926267764612539596966171518721948847387331659102752090585573915583505262537786384067644875371777466028319716606552379896060049048461852686746048100956561996184360249934934867189918535313070890938786442991445942594937228338192473827117556499600021914251477909500813669112943850638219865679012591501067099582834183530155313057458215549631529559235241697536127672186000434715042960973308724674965331293285982590742158813589363193252537339406777165591965373312793755041594675266388999205154881996772106618867264426200943957089768548148485628399765086471305603219253496488479815353912563467375904773424908484469295159712874118167874173275631216654339993593989358619808042425762570616967577972354307041293742221876989871759883738746667265826260743794339157068820700453800227189968949552179191490411303499270197862103880760874866333242457611786914652772945574038832673002587981779132954497884181931890928567661736336517184933097945792543467842376047693185598799476762716742531523954704506610928173182577599854812400704260759574359938447129036393390847615399122308820736246158094675314495462231018575811149808233396466349521279800179012031638562818995962168270334096815790312410265756482319441390009868745301397177764790554327976405037273296793609657107544426858421876498763168536943485992113779201105599151509105518376788599735816184944360259655388260381489926774430973144965008589939369620778888736292900810225257533832033811938868041691454564649551858781619710549436424184689792981999463145234476352013319136969878892391518521993379832220981486391972817611073948227324628006783464833830323724204390989198087955210055824583753751440962773067039027577362772386223249171850817071887327503458073363441943914891507153378036009236237374311247959327884983360311697826686181188444904898955505438786710108412659469010511453754168417359097007634358062608918332120134551249958539173551422738262213986027799109326391605453474146121603340740871469123160575508158645272809173622503102771380831320592691667853068420799332217519768954253309248296091597057652440765670206819812400304431503893140882359415697909070179712324501203923663821515029937802329341592526342070627055622622459285927051125163557464253814131130155819690261958458863045675763555294244555476867039946570249421798512650937717742263396559876877601789248044585098186533195155202216130139877777550107578433699792002007908229437658807172737493691340493253996552284264809553238004175357332086702599799480727121860614088228195660807872706320726580496680845401369752711821576124920421784833683989897962794706852040193626696869277770609340090415403704356835259170662021380898363977479186472660609514079013582104374124450690995407861770348849313702239072931646988789893247541176254980543876622930592832520996924119202667394897894301393420893397174953747713787607574284847250861766058626638866395647012282478452480591333275994606642559535731544300477755659446876773613530400230092834787337287115580146744439291283773689779404269953850682428042938745936724005191868578394591045133766800334950180598931198409003423750726592967537583203163692871505183066284255645515502412935183457403508000064918177037995940036395050096815526838607767556755345406260444897216802966252377677311808171743825433731034954008141929752543384175626347840314961666617878725907051084378952827522092809423583973515406982774954757346718585604460945720925520171204968141503217649918662123579383554447763282384840744769829003242396783706713108951348561886315722432967141855413493432334601569254359399760554439947388725245557328890806601333178126759033628632375518038741241010518662350962128453883103078542957617432882758193898689881856170116712076103477651233499563927914962731225391860889967120318725862778756481008643632322188093145417624823678234248953650504836611727653441681563385401488119461058936057134483113686795144057077103838830014107368053660185605089372654912446036106575656149427755258067611677542271855240838641864693942546247173032881823354303933211947718997073472257834026463228982091731272462856329708490248888990107749841857367040656461305036288041838471897552760628578361389618398641467673959363617151813561384765292342871968188741661216071021772695521522915131758040803954729296340140492280609099525262697574089357122430728200280155626040058143096907537739668951135943735602926310457309933331721645788348816751382301055229603851018562778349866301958602133615249072479834577370938675353202117766830696682956673133386182101991462032959420623960304802828085181197391995935683404128090688252538516072013144516739661331444079281416313177677864028032950325089334775505282589891045594842609332633900973236149746464788461983057441428386062558024651077534850036470725123108714590782489889794507334096592777239398702587065064090714753167404376959997278680855059897452336963852166745635816875524034616482620486374155225794237778983291873142323184068341980771795179221066184161195300014287416193614303716704354356743964890841399860753348742629400991412878904211704366666572505491735121035374878533460946533953284637365954964987733066633197128539959325832629939211422540733023878588647106769314911048497615353071085130004057526404551051062523054482083315986577715146224764363716445190915645837467209663856233093767516610144903083839767012238691346709366898364147393602295494650956722136175866330421439223025507526021465767811117669075108592746819948204969208606015247045773421503671268436716909033133673398818411459831906324118330605835129358170656545707404966916246177855633451356871323132433221079070042579023680695653902322931365503254981231946057203471884053305127406310816194760222230255484284359917260136907315736544159188776176321314968988495964807994036195116663112463504446127957998671248238386243144906338827440397434450405328487102894637758513620915309854061759514202458583186988966493585431293080387338308291058244618544612179605362382799620089815434158102785531263639253710740154780152590098921423469431511001126761126824707594080829298451727642390433835013868661342632599643850040431151162305693033114016439361795961978122361618439163390382156315823849341520381190494317052619568471915972969251081772324269506416252361328980914490985419590342487209039140232010570844893957360979598591467319416561198546142317414174996913563502421974333342804208397566956448747260102475220817294614561488930843199158592314322755734354102980094579204674311639661812500559348899640886700110840528475560918527939487479333059119538590741702992529107149445925710102300068258003430596256692812422300957394369609206625257320939532963528509601555287783297177085525266612496497481360621601033891145064090078114309235062270585008086061993104654140586370579278317354941654550350540486082513632551147550145304254863829370048105288990011959783079486379054762089554952253287866616133069794820122138637147677494429729160593876350479912508394532549076873409263816111579267541580906124266122930012959135717620856188993640363163548937332867185342598346854244546149185913473542407732693544811948245046896941676921255602247325999184287736636504754085335701901887281810572114178533015477129237548534066790991633705696614081166917739706332018842202584572071597452904191990538511963325956600881583702775021406073841350926275914327581759832900092126241206114246404479323040700848454721082111796254556289460303972904852810190250670950100211001062634420411028842660168879280095635372549412110911285730264455057660573990994372488108916751864325044850984315313063441925633498216195977348911405814804754144363692312162540543817588851719837724167236046461622758208141527583945838050718683845384526110253954729313621285782567567149455983246685501006471788749890911409626735068217499415223573526460475819876343457130245827645889027552151751068907233834302674260054120118958679596067895935147212328907585041627169761448112856139411157415349151647081013450065620710566151629972241793096027980943657636544029452067421296768647594473814088939115383659938510960714267710921823714493530151617039425430038483832562563480179116623869319261803955716274647918295503182477371243474617708214897196958948408404246645735885612594630540950608868053154054098631344289337259432269325049090445328488828424648293095582190697670023024433403823056897744411699011380193781107358755317131318551262563271930979103546045363876633095467453351566578172843469892580853125309086990050902752419823803194977285229467602118654328514441146157784009650068059498193896735400081673608999124819095460104216408353889254162122379702557782683010182376841865870730542524837214659451302121495885539528335616959897829306514685541911370700051065564265353624951543400369731874464913799243535609768484857273590649959529103385724898408855097024731024239880857993474148377141399224097753886906372963416760568904263973648890046224608151379707375813857523492659475978535122800580476555502383956497644689069214614271580217291545798573828461737576912599469583089563486802828105380332861674223338109823623448188678965098176199625210631488645056893303579175845893524682584452878731816343234999634156375226045717341195426802897113534375416196568141868945736101252664077550242059925432087049046214546623318339875492075530588279352973314761045124075793956416150464896475038868297742549924583950034450542615148855551420637196429589827043822206324360161153176304720165992184301337134442960356861473803586370431792992262921155044334982654027477581742481103959958705901257880174259902336287931975255138341566608369830387773082419838001080256246088486492514900730072006060653909524167369519877644619071146936663806370337491708431321770816717249113651473883450071695561136939384970439482332591739804503538512074418100121967618710735547439799303597244522724048725990379006206315582917857103135160409252402811954766111993949948400193747218402577426623323130166757797671399177292798373690631658177795627077428870070345148440143950535895336303412276632925416311810365049462092091906975543181128153808591051345611495994556694449901015499818745487696188823113965096218728867521529438279123243995369036191412988023359336733345111795152780809194384445990459048060211505515716494085657744067397415454744010527055775325199769636044996084705637861834673571675116591015213732324477034318992160028402235087977405924654800055963611131421926994098408681304839280086971941854221151964380435285289190147632538453468606013643700152388910166424141179141997764674854526812689949216877134683618116206527503015427993902705997619307192432592128549980810625886355842494165347608036627391526116558950320178017069591816698790585062269330126642294581208285414095651878673818276769700666033156212647258267442080950646522283916501327623919885589501367426902353192050590307445302821197040868663167387684138579339252947877655233695194909805941573458756205547190452045560752007267551211003515551829226693097112947594695812821507648983422911201824107020540312264861027944266716041058807336353715902284493273677030040041433670566300774978567427456657988914451181155151221400791539979864500545372368882781413313131967524223497531710801970968526889053845409573863517483140693569131531242101595080866047101519679725794838899755707402585444956803020067895958833002225777915724243463400459357955519169439276482574428596074738808581469045326844067232673675194892027422697595852474616937514959351922064686071460974352724569695752531663589603191185581612610190090371797182639174196439117395605467344023509863758226138153299127495086739843118099925947464942997962746099409688174058469492449900886077772261194156729521382090618369963212573758385239890949317456253645560977569338432403050519014722086440179800795448555834541885111825825702365031000825190116372001625739586416556377195741762778964903667975072442983034563244065360842852457497055076069277165625864907722979106506808158485290952401667733003204547717291218913028126924225559736554126825989410130522501535445762381655741738622454437727639771030946871036236885099592279258066779339797761062517374071905806894793489516913592648254654327647509340014874013421672091012362981472836946820693455576772215703991883499388776631230617064300842659437593213842619760391938833894745660256608842992612276528105459364974630379743061935357555171349859936896402992500459293896467212342657307696269607623631734486614724433360341700595568713036804432138789490812721197165485860600804649646266546169992315991018210881629885656828178390551789834320722027371582277765945438791886873837461530330592222856587708914043307657867447985263522856023917070302724276320477616303934673604999480927040484678208968340738244995988288319712941641150240116950939372840091920676283449253749505015188867458642897183808769186069955822891093741517760520035681237052847394473644492333645489000309267566749941224990397110250460298228576428866943090281534036463070224755195993415484431617843815374208277463047840153339069269317140510221503002718736259026250005892153194219403013114123171996164272198193613932225663512861385339836602932762219196236628046292282633644101051813261121002434647177842584558165131439540931478545198592511001265856793132239280552819504349563549883984218211440025840932751367777234118526959397468869953060255629951964810215465509492598017356734016643761058184515624762651417155666154474391517253073791974904629334165614253687119254874670376376528825481551211289929073102017951345670892433423537157028545899354763461867101734654030097002810493122631657696215580572447833715132270315653999889369236327747796102837736122718117401580071845679751586763055415307032034473202112954287085598703332107187034710466904964210854197690750346430252935116147514512309483236698610827381494976000738532858574415481949575507133546584118275629881363934386502362522543147710489561066760348629888856722501659554812486202913121086747451024286651214936162577641709960196847213914680452393962419014775161991422891797344666699774242171495568614651288503791589965733397045396819997777740317395890014359677968560581944651446314804901794577546370618372285013102243678487308161104467494931116601956758228447260298051343319774554188585441251811168050344355220965659212814793191488835004103956456043741237754492786973339801346276427224670939705743822741465236226100756998622095242072024740076640929917066226694162233468489736314349834211760625394835536085400175892222422610458958177390594684036979083192580952515738141169178580144154540354724683834751100284581599292633061142912882680751860935035356652035245873140283606676897899939023973993676815964105602922870813774395493246082563061376039317744545769596178170928205100523632636696754273557019551823954199546714575787652027002057002855371907824842417740925398499808011225791664047347257522836623805454538671286616975080650216456657986919588870895851937176237787081977358297638373835115626577717696367997356081975299861290013635096708791451787663240999648883904602896399385192176214819114466383421548525169882178487136311857819671058550478232023922502137896211114706408401836580609034545287019523906016827226527831744329361871120422007292845500580017913802560156888256480384055710231976562263534951400085508564056270528331963147862172443096789672459099630705086817564363906065518453314527517833533142813466386593555546596129019220881000951298306848611523082388491827467442598269384830994387941815228421422135524660930266332925176463578944088463116776338824623507814003580788706105415561922693210223259366077551774526246616801263890676671049810301028943378489410297701331965299845543818843462768471412910786851591317715656511557177893137761112231639918225805806314643236959878845249035669170057341766169233031511186562141552179690342721664596942114649494543297295562291815461004248120232011931267709162408946718198865716708781602608486725473716016776006238427623940786056074827109345206045716389525596971767667602755117281259701286014066063142559753618266084348703622331782191932759619747629507822738347100370873663237027444132749029504741854483573592232366294185431106270149265657005819763320146067113650921906458944137997915007188835129379382909429377905738721809920889200795796223503273642372732607404651883055639348869882010791517475213423334265565603898501685677336497684495776782318000216926967544969152496725559226745956728831697791135742128154321397055693999894247068965347127214537840706195100399278403350122291851240390317270128524109518519082653318593740948716647313786344531680842544953189032621580367360846504179988931804679498223103031603898585502022459325631375294270403506799396793610217214805163889285918992099750245511802066756206532322076534923400723535365295753468236041975838425857187436260739823307328202487961209326558282641421440850491790802656815113716092949290248070419567774138043896352420422351857224498042697890748936743200032690386316378276951983601797361703616761842204931216351861497253353790633768512475276059512853957611862258813116240296673778593022533361007479482800992192358177664598787831388225764215307542761967714311083284325144219283008164508779640501716879228039600706807865922537638014676933522641305923695071297373805079166824438358010758817491027379670253184304691384381680189779366551210932241247791755596386871428885696800577666341185281227166781075057989121484999655588264657669124356497912988275908543241923720086436317059370110569999178148768649823619458698258954210862591768617109130021035001388390837690360265498537852313542312616225922918216748261410421275110581956809013957177335650295250477937081440666123044265090704632613987864780158457842984967884351029515508635490641105543990096751877592753991059259282291017289459167773823034722873341809172561335193077662858821016569559783782496266332570559076632929742626153250198402004554357643179789709696310243875774004047409274420322762869310474484613143159105374366168819612339552321176321258085141770907326881178750337610031965231435970718185364031120607466056472495036127821811858721278096662617436415059486841849530980612887551751272073148858781479179769215738730498978296689958256950026636482372415170414544961579204581645543410498748051276285739259415499103753642692891520490689703185915692918440224081085887924625591820903330274640758232308244657737914337398282254091855560359304124351069959340438784371777270061395776751841690724243900639580876208119858185366093430656493529892659484093750533946804271945884795826868037937958925405409015974867117469871210948426711263418371703074332453302604034656611769578816318915263515460561648400732295364468365182110267853685457247953275580666884880853914602883497577585904037715505853111925961893775208303597442971349382409369995139583622380682907930683836551817124433899365733279522621908076572558521893602793665199858846834737204390827960161359032220402883551825719316395422935814320278755956412241141039236494116782312195309953438761925020593429470546454329791416638357988613784468287155377080114860179927527422495277199374716258791269323224853470694403718210424611542577178034552386089568476378618317171695497551762696391608996546520676865700393181713358127245289114206138716640248533319002244150092751354796725129272758038797886351038645480380227228627878463400498138733702048186068953716890548154287503073213803473319669731013796315683853079938981531082464277359988683923311143347889912772918087442316845427845383886493926093971192116005690089795813601661215440060054211966645049663241609764616953799344349737414304601023886624592216601230704106851133668089492159238844601851104984459844772009546454730492857937738557749237149911835078614678362384356560232550557941918075959867057128407795661146599946641662592278005283498813592065190379853877938447010190275558417864968136933818726843620383052308019853038738625784275849235431985444127275819909297295298881405493968797493191319545231529008478281266884682777210916274679431952656807729786057003986055450010137839259452242410793117157375087593500426143412788852685618712238652203702231330616373286059296556520763259121787370839486170550309077284310623056022946222134531559974871479766509806654840133519300172884959270646291204691260156794974467714219608373616729452707840359921303960610166320831213607474291486748044135043759650903458595771955285610314413276918924863577817260755095138024151981484580189087064487829285077812592780628287133266334908849974351688190261517592425646319231853990261361438960963886802894677787335175278291879961441303312257323882309340521524199261281584773218612478789477651033339226890043726940455133820180599951062975309221313663122474935496090464462026402471753545971927671517746242533582720029720879389649863382720168379580825073728032566084620455709633807377540462392253192082406112693917337036672230562479559950755130796274404833437034404363854207883877579450523770781682754375997659626721147420506366545313168119003954228517012729263321276482386694547628232563218759535209711696606085010948244637135185524445044485108831161401052382494905378800754421158758260085138280073962580951308449690400362066019007848165011770630740055582168565291103063271629762385728311545553484685350993607625660908371398162640049515002662959058217209169717938581969927679548184676733905093859391652588121331779824310391050809135579527024675659285456642720711533804840726218765957217500397528943479318429296258737159415968063601253867305747711288943801996586974960953412996537593310360833830745495638427915591397468209852642460698156375595496026281945024968895991647258937420598066043228330476732775316557212892222228664236350566948144995146763170616833358327296700261391204488469502033764348538924098538766816752056863417881970904562790718367832731982244085561800758287274941441926804188241375586171179234600077854519314314670867234944638260638169758322998045639081386115165657801947698723705256566571670500053164596549357100267200165649521039378104566485062503949841056798205686204714277184554572850771274259970450707683754558826643745664710979009813246589531784667750706452189067185230357208604297715592434606845158883509233315424350965439814253406148296006924908177562534690523883546297991995227218129985502558872742582730728114386376733265054832235834600718772364862787494137138790830561094711814133697525580624406099456848467265263173075296907788250054361103361440629645773941369969458822043727946126261481628929639703411945034239864991596574280787459005987391056875031165971413911258906337164874780647430910909392386255182834983590356113727210689122320732916284437256484126794651291936257976978431971038984009399997534602976800596353895411404953320414287010909149033584575663996172261009645418878722473213067571822296078136357573602910887394404547491830907517004514274269175090557774888244190326560250093992025015050167484394872773325851893991973773165719648933955893790629788857210999426118884290738829295719601962034278084385194545002514969196295778295641100221307732703500583241594494382722237558797305838448437693629523174219659016313291963669564458981877843743660180104842389257364770398055431585423929412063944515888770423836913171760865990558756735719815898793790108327538587718085300884859669571530165417097652358013396400344218373623314193164421523032405801898669449477833254711947044575205781234669669003626462693439110354348909630690253216852322619620190563130957320944250301949997212601966833142056691803247855856780314185230705824558798938413567158546484232415503910216449227774756687889989917571977390372170651199333278260371307702124702710076825140398012330238041866219142939295984181212592334734765773979261140001964837540178227996244455339065414426326559453797761721784816854438450800823034189386757431703726213953940113486297234942246960428880950031802412711996549657941200298162782349855098737926729894885581657403805620747573746489566187080774833138585135308004488419574696298107493733810716565392730181418554263291822352833157262814702396350279255987605428415067148473048183859371590379994673676186712421049986344673502332973504976647507408599889940254381464449776221712045720885439798616391989675280052206368673526780240851327211091576245141217535049643829796595376170399953413983944439458547686959983752884452539358697112821086137337148178997998032649225237797962147707587758101762966205294579946436588752929967955076894573716284347168655126820562429550100502456099492866129098135282572549711823284288638691899836276498943213066675984957911248637869136246486380032929360061970709508046508947136732404341034804087755275259950041606408969907508953722949060499746448139380567216150423535729001053958901646371892537124381017020901384974058390921860389005326897440433603086997968165043262228061054259408886090251720147743821964172079820619684290506135127981697125571557399821811600365056238804026896464467682405596470463199244852153966198245638110356174002378416826502374370026746018179781084738178384192275450459033296318980577229526489724398289863654766257756323874982177365507900565158210009891929481385914852376263972647449838111212067825791710394538417716522201206771003984303307333120340147394778802031348585929050944979341602918187696195714320233184321758045063174665009751625157512283602347768285872127312490353240893793196967667826712571521304079000560164953266117413486123906237290217880160328631282830889670634091988418703157755060408821769028284871454699990612217080886585578583965272084114284330722185881417766519600841955710211859459327211192411028297626948636008616679802073044990238291160618338778153391120066601433172215087833910417635682850434005537105236238413579692483295729593683452758799964056241701997786735698411200673275603019923047175798530697127689413901781215516215872047182383279616174990286752689002915927707767541521838101871144098658052591164609130096737633357161837844821297563957460621119304087794503145548521265731703650631073890340641114649397181483823461230093262975787614086203291527703981034169302614611490900701611376843519394349701224664645278872112313187908294259465526897219815440940717895125315797770664859437347357277279039364638903302347831893713749500182635728958938103103277953277225073272915667546705118583561146791288025885572522542495428508510472143891252444788529602796553450921918163896149297143437595199876302728218395884605720647564945449274345538348291074291092298974894280719385280222143965147713227012101201715590049334601237539013582892253307436527959008801904846915967955234068047429995934268675983142426950226868230634324250880755151626941829114801601741254149043951748341280325972724097745124369074061258005670391006177133224756335492141413612098450146793110024692526455236052423650832529931977326273162634317318354843069579223785259458192758619841727602264377234895117680280195264993798606800090348339404702074494540448399933636657398734038505203587762672099755875555846217333063160483180468438506436600550292069541038318170384988119683962596367358951229928940127346005344405684621409372818100591095753089432087228644595236022884888205581106621327328672478470685506293468216808650557911773161354720567407244924656287162603536747003277860449177760092425761599878287981280258049184270077793578321601650782489433524178222189157676554137956769711772082554928488399875862938740153846884208822481259607992528680465711225873261083169955174314095950051561751131911996824955378481391021948242123676573925670438738430067691218872855769800470914320603456949446105744753723225025483690944519959805482987731033909814639798157043607351455698975514022920689452445557659844994495737673348004177693867299827955830761058877786500302944581746180443353525362607941733654597914832583922245405795118198462464858076237858636558219293104807381184468542515552892181051548517588192418538595954588136632405654775336000263790606756205639348334208948367569152113832982534805294071850168993469880350109336220494094309235617093831316633141953256830927449697061816369052322740004671944945192066522190314463124181882515726212105004603037237307375930790500635597864911069822323102222611669352210800252418659529242871833873239715113200526851435346387355279548158224939244290517944668090774188438282940234146787900122959775364254382746982683380995468385179435076759922200073923682908473687092808516436292962381790784368949657522847755174956344367306142075225708103732440928903290812606277433019107498907081630443640272702384620970779764003381782005981034959838838867947918335775407672052515512980210674606611865152787483591996821793078753894595538759277210295431728034967989176843676405519168911384393540151964618507512498481004891728615582446649048102154508260841260311553867101514847733596541937759009958755409357009901780820276223775989071499427184337763233385506782765610324029861567850255913057124642104092271915289223106778909474103253924812760094895646817353110052887385052620491902314111867905329553534650237529620072692263984139392625658566679716765006218198202323327208926866355450245132261043363868970701847933211127078814834824097435170482230120967460555010996747604544698223885745633332575541876991143599097101914601167514125817722627084862437874032091075387444437440354687343066841669895322481009467729940601541302953252990032750911167220267755357117388751107276697754702602873179734195584854156994017316966196342257650956838003718778052641957220218981341867842985858950743259682268162160573493553775561914469380707364292955323178361099783471239193122481007628927958686845380036883094173672779930403962579703307862206947930330300893134682898956331779395972388970105663988576803038635515457984712901527908384842355839419491986122022173412935654166723717603441886921861438865941030943726842895961275737612764896772564485376866782882955088813393790381663015610832796802919584124437528103270609469099032640649912329577290113222467151196063430571080973994952242101553546736999741978720461098921985206424714489423455680049161844251574639026164861212983390014425820642719589434152441974826341643276451332204119262332413161018491650012750885503580712611649932234371945961853783269406113501246195149172466391646297693049386376428338650931435896378435010140179586785719707549325688176868655636761743662309525879026316211176754786359054652725411111278040236799944000391194712995088205424461395130329256859125738558171928308219575735667222385370410704187145270587162073723075312226073187126470335045879161479117970894922725368113328364388217062432919259122602418351349103573415028897242534905104463445730711351025245107339508353432476679170768629212504537027751136787426822383455498111603475100382797147655519984458618535002700183395370370373905778485180794405344487071554290546934292022742517776136284747055622904852742741238827378960190215867686755455335367055814785060897940020041475862575594912807918252753532259880753745616929316260960608498827785113430237476248489061978474585107987659014986602360921388885686584403186201841890051692141022004509928178032448888248901318890509307847666746963985996403852816347140864913338481300262246241528317218659268696486994554870342893278542400293448057234213211667481320319101757102441824885697857571864089733132054780015359956199006755762198627689502249450147361403671305102912687828999548610837052665753670065203225005006933871325677481474671278888701158953846008227349713110861281408997547446028590571669099002274874739628529348919739677159603517816657742870764223058348067440844708265040422163421989817985276286197553923341109521441992531693721893414024966181819528091916754557486939095978203191706442968232851787684037402922818145073504705679284896044068505347865851557351023593407017463758088695922660790006003875035342384756192286936331031399336176272063727422215255626484312961424778466256201769242755360621340563414569020725461136425283652126244167409035783281283337375577540794279637020592296023280411448961917712788734435880184567557972878205944326990425014761036511322802210535427237732722386372691275659023591135251072825018075207751609635212602554808584255224609378933394542270915969031557507378750670516260483525226271322400350949139631044915699838703533550925014078935110360042453707861542919002449032756474473748120083129859097961038624154421210656575258298473298047102355570463640457021820381995048750617986290557486361415534402826687852206301406601383326940085179168524870238298194551404466362911568565063554440253946967446375132560161287685626396689064246805427868371169488600647613947118441158039939148009532600755961555645033456340170615974392828229479639354528986503236580550880831203199288684459217494370623040919239257615711101346191092244626009913764662296766540245211792514197705211317643952206329169097718231129931350694814062368182999200843849186939284300764087406349558143995516953209904554073419603749427955724542206859908387255180535836078025478282764335693437473196916708715152567006678186889679306037663066908419923673663370507935582093784757399955677463287979249490330387253971623977632293411661486568300892349881527340114737600010809029222144015380430802501242916639800941379464144607453170186574697588737588803977342307140036659030522617474040197491484514798307523277542091829625851581592806374540752465124537534044344773819598215011127133155426711360368059393412562094667699237826161979380282342762449768550205410856860261628467876526874426244320143022917918989810998072248411277317167707575920372015278732536482086784564348622126687164871957001491006064945537803553977948679440485716057963048584076839345953971013624404187488247858591006887585072915999667995995063424171355231341544907602131547156782663224240222608003075332624482881863871694343686941488962794226869549299234533107421430313460993161835942618897045738590092705552166918177157560863608964367387087442355654066057017509758977161170828124046842642811445448324314726537138993466330586502997182475624585213099436855514318870712825424278850973922103586975776060807693745330945083642536615413411038702832303986938239994316454596274364789006138256356405457863590078180411150551840505665725136987031977702435937915685135373384724092120871192829650447863856608161651716901594197933643489729393348918107484904020918417208159992653549367024256610715561614124381459171254949730892807597053825157255057761723226849808622916560408829389167124324286519242398653393677510819095521933005943536345888606892707978177144024483866207190135536472352843487404528655213649106550367483080475013636839964898407992907847365330343772001795932301861869424573183927632295360293516382660342701478762565220327577844577455853999422178279895973784958825613852798579849004750676164332512690672801097004961623205985558718431635320014308211465689249181085053643417810109480956423656794434442694063126897966542078121781674839973983778659679889324028331649860283636141317573574140039091719282478539116924484474129029060783429450327474014616846545513034966815354880681646350353657889685874042605118342521968276632495564741077233167655850968787911776192618803723430873364063341518139744778944961262992797659103070787977870345483201680418866313854392840018835509725152201889795147707314070506508535257402106410935252320137294814394021561313639002311756372695351759342191548546900796386741809137258252847196720722697688336908499403079486826931654820531121210894597095716104819650375817689805244263576835839875976474276392509272216261493608942139512193617053055655182812098091135531592976055666521109810933873232837495209554581830705940984109557504609534307020563801611975552316548305522184015030490862979680078889163311447262704973583773457274982698771894259156959794712786642385401059283714157977173428382003150819327950043103938880815674992253923930045226616698477562821476060129350058872338658647438476322636907694116745530385970894381272170838394408553655067576571983586121938448297716044601998862416455082284714357383005517072238118225246453285348095107102508643662565246164234002075717781563208522343259518604598062778989100030345352864958088467498963052485826154786573705245628661878649328544335001048044404199742589457789456242070751400413525163202042551501375746080283418620983660458656675907842052661144532365817307091520150458165502473257066211765877422158692931839598944024966655344996324452278461008363814552498568985443992398024997930088490338321531422646174811878162842705664480349183822588317480867429039377893596512334384565072756984719579581790559879130975344106581902708621622210967879285098676712043751901700240250948193783743856401923038108577133537472839442738433708331281544048585085228827261902742326361285497513385341393323688400627122479212073327399988691759586456173920913186261931989244638262017277232379380312715833252813551488976759776920798599331549302744270631524456621979124181229024677127925186630799991791328114680665601018115333192855255121088851255297099700378883000011807819486649160382771172113079576858154545133020484134762050194819858747310858891025718207683682306748985337620073249865415818729690217685529976922931617666258087634593922988284166342763787260816681085765665394843390904158613509249458006377621528131534476098711064396189916742420596782738597131448268534336027658527230439177672999477878533160074772887724721193754186833862521628364811680528011814994909218983473878010834065493959077165958381326041776452576987122292933006406071772648267403567418128921458650288647987073642486156003869325335254931687518723389949320275415555123247065441203466980034736706976197852100355562374475446307591835328708651448362945403506343321959948326858432274028409519896935250337799659323031571209327048812882174372015888860042620677850704210805530753119734688050215025356102362021304121403564792450826925252027221315035215011567123216154720934392384087798957278717007972719036582144227603259940585087369095083553446249273898042739127329020764654219822309618006715421554590170293453109946993156309978591625634932676569808599877594803497708513188689015761430012898980911313984072609718220617190617390346510932822307706085518832092324278527442249979737130535666842669074994321543573369363205727101312329878723298036396359052387809398226246480402072482199396946349227375153721715526242499152411719377370356956830795126229479964774856907896769393319247162340017535657510776930020290215866556241930691940274750400823846382304168237397787192228489035001171528209521281928431562954089269134657606702986064530918439522276481237651933938129212219005399907001232850386028455308770789426557887724661264427691469782815680368964330186460815198066829432623094811127482392776469182145624589195373881135518771766799976143444128760935668079581509942113771587953051174709661770972831202761024525949520105888108313399868567140908218947952769614394480910640954669130721097469030466435937667752814772332743762707500153389727052247478636016348292231097339626448871402518903574090676360250195466220356821981671277266768833903128105902021250286333751149384139436715694504175299842912360184700752954802160420437895925028469652113618877827365343349039246868045489888945897088688676609729611145466392499391560017131338231000592819343334045444651749275569087373786790377372758162165420677296865277261635522339293327809766784508041003017650701310639869960729773236745590951296981998335212188748309282938100227233636669733770077993565701241925364080707464931523274371563757171140110372101035822349500221944578606558122420620929878111834008127526719527355550942466965082083155584730044334552171156801924022639116803531765896695368075875104634747204661669206394372997979396024110416181231316811527704696404613032693853364493713144956370049258477115787020590551166370462403855681301983927581395424745573800484964746087542994420815063973483637053233973857358271293731782663612388498385266019286442611289617843480454266582289560399813744196866885527314815617227292662301595519893929651174920802757904017373443741284680056238024836481798916541327371669493302032147159190640119516497567002938075750149976967374349093841275136860136127980281622847578439973118454990376437436828663030161191245594220458816841618207204575318707703885050427331439581620576584271987128599404404358288144230627364421244837919818526194462225411214995237260943082988019460011489176951872524779968838751600831750895746370205078623937666826794264432773961560076096533711984538942915606786806580347043719596089156613784824822243044918945835278910400133014340418560218460404892970838463089084261286626035372331460484944620561137805954138562562791523672078044343007326174035849781120523598298802413711018447105385852994414151660986705538071511182035199091277466399508238988054411566583779721355974440233858533263253196024657729095076920057372873754910247539131525200424006163396088308625353383528710204731060534752752995416162857562403742427916434998757304770208250886604771917940197533932327839214453803692627008262633816152507860572410976951276204574126187428398988040537313758787980488855758834113855876608764696061326592096522462613153207371926161526902161976314779760522219625344772744580589301767896487257042712097262824412493492888310125124504812597413694063035327771589329833455778215698180081913881497249504022347254907412692610140531580211859588683977264026930230373718462581905693928903462145718930045723953547928730951693065622663283259312439782638314253653514894141464988277665836662639374467479346683634597832981906027374448273690596309858983432357966036436786537937995013808493708266520469951109980898158861005823667353664468069787470879186932753423642156014752443025813307722852923713656850096748956239038768962114654530699665397511894851221735512145379347892282309769393682807901764721149000457651623861765267696726139961862081386158148795641467000058374377369722508227516837992470558537937003283527896031068631188487915060125402865043362012245452118831756702618385704853414788157141589691159266938167355454335182840855952013669603321711193622363740175041208219474970638994035421838818808281193357998525469918922552003380980791634873128996223085434371493210321741422797421879284416980892045960244810487872641815557836002553007679843889268103624702887345838677237207830345647031938630989738813828083604936159882791012558802764934981216108177463629334297054031994600459418898245686975522344010788859380519759396348062188177587698316640952860327991543234953658140925091053630626916384591254100933599460461595766002517715750446413879756106822402234516914820710479117709522154027601522620833203437382200246876448533356031084986403527844066755061438395330551980997389100079581339250473051414610807497161361102995551472928554648762065566568036892203650794756262982387393798175155167492281164757554955219377290942112401044932692812928825701707887716944389954448518445292269218748046828027708597023551797477313564244773488602424321923982237914796411885489112470118960538617792137120944030748524082293823713962900477605517589272242875722768262473163748988015240810004380236897939612961327141243807608125771573995405911651798893385508811343852112008987427711525796946205714960611403248040859726412602432506170714853300045074394534579893590984348570745248261488684442751258177653061900071339480068479567056383866880311008703724530017395902930249794384953689396078905703162553584152097737798651530921129162857969030817452923508224015805129936440089769039135746996200003769499684942828958750715795013607552543491881467002281308539428127827638720527411936300825588012664950888072394660241714794813062650419429767149390339127767082292271788221186962863913747312216639223467562310179378755122421648518703201454005968575210005842479217920057889103795030291610993788142966759568103432855923670111317117321593121315701574058209206506219916799838049308593318305986878871777726448479084167627661712246242531029641204891258055392699230246858749515645243049794230382378633442523757403405142290033303232924649974352894164094424751251689498904451178918576318628747249995545719690263883311420213432802217167555861200914867774358556669146204337021359389195565594361029448008213131920017682141026382102713639432373556199460672629123586167091368906948170110509542967591438856550210418833797971584989514714298623837571469883354450875278870409564267595694318724135483531484995469232359787446585289494987247066809496211821320563386126544479507302224532108038813619714849073907965868244171177420227403172903375478711298954104353918656311735231521730660832576425745133971371124248583197758856708944214254552027624490106210267701968462357699138229467124854830875312118353970855230521732049454377237027080913497485073205545462366256203277660173594905822638958397523689503830312263399310905366473100895712911155161166386437742684759086772137053666546999228703370170205671206663739503419272874232859334157946005370188442275411028258788909988136170842027733361198865480667290811097911546119459430508721468087055503826433162416867644667794565089998975388854280489863912901892600305744145896947959662903553763186813853709249244519712635374200126857886814195191062001071179815697136143479151423605076618996746674878562622271539105940059136818573086126925695821339201862705122998873646796033162254996673947407466628594381620786970697961018682485042066270180529924066153876227750430051177448648394164153014022789703254915110632824734967034632635871356945263108469175152666561821301861510349614738622046854423658462585092083825311189576119234654487455649068888940837338616243814837146599800315110265610311348882454519758863676267539383769978697002507895087559806486622171997495442245000059310054514706027423535960335771449535913151537480962428011793424342303278463267700274109947602924786337117578170802728373782041633978956864581684658434566131238947513134160028363594367099703020911089828068292195603711721569938129705206020025038686912974467604895142570128329070124840616186229336889869064576627141619446109642501605161034106236145060029975048097648467286297557980093403700561961147934233586862566389353467128663180642543116492682272336893336076031805034454590007871018753382857041836401833247026790863221187248193517559919871607462802714506299392879722105567289924822888237071052392238903988414027301149454441160198117142328786934570643411986433553361956847398730796493288144273387119662766191547161738898439452155897255389106654204770936452552845515272108782965482604462471821806056256073900903336862081911060853062702211888535236509880056222224029275322307878482846366031704222303461615926171207598232967710852691444017044998568029321535512360804543563899031509741751097802008256496832505890427494260946241759143187764650765624856024268996102336522052777378675192555573345858325555800537814445511439565585952332890680797181917587105543131190032887394092646733324339124678446687970783226212733063149564309827056355033500153912274054591219733151491286623549777797320438387619389428401934642655662183857356057838668386536945855762524183454766972199011348416496743842488158006613220151928186675033623845296479304490697219340910364884415171192103545442183862623625318283461321610437038166530180005582441986409612133757162993850058518935872418508904471095064615185542741025668815650608366577243804404900435955269997823585174445449423002413283565949569492572266297234808644683345217378168662776403523125404718792255048951119406339328089181582035456682924249631440153603853687312175953618803737535127774446407989559001716657208326976558402729319683121604408017300558159962996043521937491949723863195122628373794809203905102192410834943987643203039889175439010395610695988505795628862192128926169177742537646995927065672907749706571304803099114514827553809495254697670588850179971242194144385108711395461700469443293841412319348138671821907301450385396020147492391856847754962217563053971508801384521345148313914806066896948536526122570891129522549400444502514601281325415815403239573585972495522012591197214451666326223859560747527094465693336149310618123624566656999404273379100748495533418562172917370588105068553803347588199359165351959516428584151129441490528485057418896848367745049318014587863846631572574289815844552162015543931789645902956111742789300093147403036865310896839108621873859250759807740794448402860762279337068341859117968538349094677338800767434090795701243417856847597060013260037121271248028602601444352083582412805372274272933772865949654343378970280569379957028213490444586660332238573485937085517988398021564776675810576560968639953422488138581777002823354514941952872503651874268893862937644106506881392801799370412619068196745919896212305458027427122005211854789572194726007228481080033526351686110238789106925257860185960988995554369977589023078748131639207104802532869985617561416951113792248913607383330053493524128992512713451308609495211172031389539403585531633702595898208545128469048879898970743883730292072209666146488341007248139040112912036754287973569041069092650871989239644902900342048387771913353573076833956274010186363958083922377081248643894918774985386567588686494593489658294739937809531016241372445271602653557875973030624543025239964414754059106180375446526985986539041600138926113856282970231135359456325839169796449513001564374428960553232180682874527426080793059963401147534992082633359064749992175806161839155885605816044808920032342847504502418363689374006769829426018942134228969849466647656771394268510675410138280002521215665326330131848789074071689921953137513010950960965315742324606902784388543843817128867399518752900133003959349758885448498166152540435439781598590163005931824092764143673005569486282707765552077687814759952038408873803525362559268700959831582311146813872466098635756312987342155739691216974206035432896062903642484217461045553229623070513018548270867562882670092930184017639554252258914379370777062416110234875072007142191678204660538897867581887233644169433767139787865461182193959088052113588158717649765625030916888533542481650659201023081512378809698655907035330597026898718738703434776742084135964766476112230592585627557180200617160134243483390314283664059873564854510651604232210718142302927274423793728385507107213529467714256491162573441093416712934406933835488345995209532412064039071473006460673047176077497309156546444720713092018762103826702629650980557206977083885554673965432273642391294988990443016574917426446253329128588122775410256485385462180202655881369767140494655278713245758507180213257891940353778564827112699749734125684139820274378465067561253893191364083329800197190063685470315486344806099303241937532985485416156603725012809748569342024383887921708050119106904651431739416433831610515441078380484252860861796837327668680019000895194862708743724635705638572066871971842543865502411728109070332008112146004934451759575353340742980316633385706630890310273398228217942564821560511775064834933956589188888470036576559830280359498978241391305853019150711342083106823377189303157292389979016804443580248840960920353682559520961254711173222150756197614737826501765024607861844669545710814200025143984698652877970484008765948838492185996040394991204598368676171442092438163436096465175039022533926861745252727730892769077258634422908061099618575119870646051149613880738272033357315753295819043558300467183561301944436758476879259593340567596843450222582934304530983556793616037907783736813855977235964207077366279279145447392078543121554497339302832485498429104117823524370094231999774548134293817594636421316879888637033225606155174697125776241548105995188418137737940574108458160784918301381396280423602803461965500089470988987751542200630936416982084813006653001323597603569571427402589707574521070139791753281030026358418117270372265378725372371299013161602059825977889322418403353016383915615587105643107588964411792184464057333786986011302380797137264901926771452839257460122259756759260780558057518880751919202767571776965318158229479335192700200125923957627238866741033325450295304218110196135027627876269552371164769571656352600453709319941986240818941467967343839644968295555292266565285908644018238143385954787366553152888193816599876616729959987380718066973896530338251658327466551591064549810551413805170827786373665268193711879335468404443379255741316292684017523588767365470263696709043417611226827455870373147714639027130280984028293609294110590456014651057834988776645037256663652122206217411254979376887627586501074814159239975094077715602072917747668550539437373534748571078701007824481559081038864686259999532151443834869353274670589493110827672945139206307410141816294812920580603503600754728515653610555243364874757126272080826193410300525136789235758305998489384303756501616562584253875691705303889928994045247100601933915775064870271617039340507678241668311265850471468019223898332715963099736826454801500384566707069244143743586598142784550421842218241775141600254670021025986693168723303309552972907750669750452628862786497366288159195905668454359507249709001270351114145511713688709173574781922234681795201322378399752354481370965935523459485379121808460968718721197206725210315514059601048225588359001607290970946236638662201194127581668879180120903231684802106770856594005220872437096976338067861841023480370246093701340463134382562971595738612448250037638775475166952711384602986734236757902468060329335950058064870087500407919222575943105015748514542432833561168627105075742658613543979927829648222796406115864549459436667469424892942424477944087908257149823149369364420203663551502044680608613759389457712696872840956331870339730538780797724964337326121744787809494868368314952898117061529156106050673537352906942826121087594162360141799216795773216661010782485027053949151006622819173493864942227387808388448901977162389383452355890009148111613304312993899035914018101781164176145211846422154135135825009770816216773623517675089323964957802741504851005733030137086853373874841518149112914016245291044584310409937900497715928715788632333677979958559889223514878300043608191933763124200456646987612671518962800882275090948654161350046033955384187007372276656753220505198268743202905653222841925017573762017016445853714591407248199254017589256151611796731203276478935930485647617105789709388134349027375898528539228123683937649000404443366304747255094755172843783675176510310012673296693471128684085535766716351091724265080074871892936438957976638062332706587194373915461265762169367805788288137960305284124207778611505766067416178201617027819695960941944830479333443481811194511851929693244999250287638729375188568921978948071464693810648815342333607690507879966685342442890561642105488351006732638713840618837104224158407559180084356195389316345270883934294111133636325536806467251640284742779740542468024718932396853064768695437282551940581596652964564155077483505542144990956590843991310459348205252966882533984305347815804958968561807251405565516622774607378115000986635910830757940274023727762491866561269376775169618247386515436517175570744875975052326629169133217778579820948321477687701823433242891078063950813616353515226254999289311952202474389615144744923626944416611440027812287933223040467416532402237880039775598967016444351782620045133015140706352391226446730788874747886899557753965248681217838202300943024174278837116191024037592084825609932556105278379683637710506716917455012089674927202781254988968758109038495386974431103254502980895890604808414991615130692741650242892369885191066168606896906694681718987145190342229976771221645969804506695002794600471417875241678864490079719886869134973770656649935589697859896626326405868215605634561299276270589627862022883884333412785249021587633247826484573300384467426858573752809472949656960742764909875483591205342899623458997143017479935205383234063167241463944318380507341649747896357114391217180694761275920571366840669730596471323189222689106551870295645046639297500353756637309775355987238749340430885753515989087695802132524886539898179999677068161362281096093977881398678905518719415092445759166544359350423919404954512458669180415928096145617730260410561779280129421830782358154778694599260707258215293124749824383816423562664478601773672843057056006938058774933421162889590616822390286730047646236710915277487121501357750641849120775992511254877303676986995485193500865023278015126560568900047311387645922815866285503407816189776656772517622561540057727888557539504543903896395779175042429341852435498780268611051795605942321906465396279614381845265461838253426674595226223316332191650498090527839076725321034559336082308959772774781871378173424199174778085144162267347083647258559800313967278912615163720360695523480386091816398504578768051485303194225754787102166345725492210912873062744761820364516422663034917170710009887158837450991707548972275436006382441029545568188256968020842300236810085202633534217432516180096122572554104555199172113852171374609730779174363934951595209872736501029792624061794168662163391357097118133833953411908580176502553000743909487713222457465935137135097160310703251780731347683217150253102365618529075877903789071642448227349682160528269620023458457960042106852177163381728716419222742728776756990861825962195782681469769881352629019890931677206449838850436832371818400910517994176747013626876057297390393704935317044181840667827942784162476574987026137061771436180401483396224969635846429731121807432875914300660090152251842096577441656774396479782662528143730254162752876507509801593215617957430381737570255646845763852526706865110525872667825828414728376745463212766948858644788036548648266901817525393555907091491761155253261527318887730398636380893696413881028004661025650841282871648783854820354670462538630561780725113694491786433523043049219931938754447939654530375135624412659847422196690711096651617731845289344135521720757431716487708889132888372074499435976949630851248174109265127955439063550350369211826183368445466364360525580047208547271029884536701240385269114998082648146166427330445499453168299181121436443151233985309074024652459385300439850647166812289121233476383480304980132570804493935042581344509284583191864764714739554962016245002000698487116051895589554452612434174824424998971422000403763149172118387774718004520043512122139332356694608074222895160954215075004617084488904127570340098657304401997336325110862519204873413091405218783760798982674466104189125724026018283712176312522881066535735646997020455532295322621451480581906351301482071752042532610660477154482063308226795235674746591591554608400764721388259219403195416421147019695550235313285347566202753510404232652991089035642505282157781315070974665585075020968367746753718245994042589144111343620591463837769590221265036460497162294981349855107074018252537814457692990012581144079197871940607853794272049664331866129234010633127608467623761412753902040431402425473873145232396504095401963476837262848086171664702202819280840472079855672230367230311932476930610819417870318252895085623602994222628551880389200129372024506702834788780157365888843606890728338682783199079059297755015030720743330804619918078506266935166833383925454429020550955046256763872649696197704969757010312653366067880080096320687166903188190932281445663681780292609977692864700324838985030347250026482037147401390840638933797363390016947240816555125391694037350415253130732386964090462450313890118794300858500281764014793413411871658362229659397700919580973345439862558362502539375600943930375723847209528184395210175491665053023974583193466104511241877621313701483057630056272607032640442966581792067530142054435613461808655728531618345266459678585182457078605007005987234198695496203551763347317859118381417977689223460910141424116001052607703589414317675611953717651965916276029786038964934018207458038014441828564951897498910130202597554205957279306039472709036573162388622009904481857857170206820971903797815903243625229808402840248540791561865129598042718965284328304744237467058420951326393328769842962236636921992478146928969061572399691494680897478341406513142417725837123391372348074793016248233470821188077748620976263114838922327655462781381746218009172160829785895685444619805415233757783969716887838399377031104040754005592563078599142386803689509373918700737143270989768888152258178089208962209522331776348957929833075023416154793265469468729810500441442550472104584798501709505639444019931490701932025615175042984947807988755373479586676854219463764377319298153494462889523314301500891427754940115195341138678824009052816563239051544293591463975405526933904084424531469484591777596753495885804225562546150004652803230088096983316099775992325596914452436906169004557096598304859286805478129143248766153784226082087909327756610942705559706806272633024075587326048205286489386691443874557744649848380569820197152023425682520556919904458961238281100913766515123887993623832687088647044515580207269317313877706999391839726236150254956799569810262453198250703184961392793437291649485638314562686388953020504418713475390490532955584104128244021512478714189262798883892942910125553874331876724788244628641877827547066798981050325772467542225969676433901541080794561276692625094375429155740473702935494183474929427056412071303105114683802415517457923765466045479468756978760219380438126459337288153517985405542446566777730569540625742232590147173554327219980974420756697329736117146930765030512587169039610764157118036120084471294302736028869117286351574473523280308011873167043024626972825840590620322082840467255832709465941584742624516363011248092147420088037997143271045665786202121004358106460049236310858159932593125830320797410852905698280882860284618174339655504980442520873126747967156765689701780688268921830664164883163840723714575099375015657037204369513657708617412530235932136352587620518421683854390908562056802948513996815429752887873353473114869914436170087550215603857959618376811398857362575661801113062472243081702420052105089995418598592097865289549853475896458051797987016845209875516669178660307072038359926272338903784272455914349697336316220287159590005161462920641740979396756366330915524489259820142936675809932033357823862802755004640218276402547733356636023391812101599225649664798393660256692105453037290734202525020239012917617305715848385631559185409873166652705749317941806927112946431193664555922079833998875755282741222707211727776704892408725991827858497899861335426277645978732831923826512851959566293763456807042007920146321793867689531708866814554105007668079556494691037798097333419715284171487764783837262267819015417309374255819159211153525833376234852390814721856049485783310682443441738171991428820568364432456639113909282606356306126549391709438924281427806678026176601949067595890522916337927249309059398311023434126286711875095091777900170188649324585178154174444203146290106658099134637099880913322770333921480094124249557831384053172816999312671659925999600003565527836077733235578249347307615519030873987044283902868817566226485236153380744197017758640477481610404547727621365986037360430782637580694723080110507323583196133380283733367743699494542232265268143388305407331743480852218372030258722295607844296052994697353170756235782771417832619613956348323822408993145755545154924189691346386434456647166435082448343455390679547134191536263328315318760103695056621449241133580786615711709847558381495037000609301063822318293135716547762181135490428540636223895359126176773596202465006713182286427014086325880633909853454310008698760710763590945625110453101041831533848400838882585216104644845736330192635114358944786711224334143958223072767280319463362816853398710092354142541685984330141416706880283760153525912629016177667987369877423093544635148905265968463721810311436312482023005380779422427477810905678292670284110006377694832078436172160570734856992043461367992282892964499551323502437040171909737951819668998246336157278878774844173589227312211513773399102248641804573337718472796523231663720173791964473013170789675052083650493587483454234202849879357152997619001422503685901261348305477881377010331859269961844621589399470413375924218774160599038683415619066109929739497795057719798508074724545313478776489519263337370788824366362167666417212478382181962546138326190045025773818326542893214986003708387518589201181050750820807115975853937145554712421716796907648031898464872760193043812246688844714193938594490541606952827155052404068970699872869289557147148734008464994113243640098623039865854933019583601847982833089600486750581059580062161060739217761247689988374426482937698668138969859734683617936925497121168412740158300346738988363121671185416705440838769455182620899282401181843086093978709063798578617006360603884175816705343302811452792054720828445185341552806415870571824741640552579870300217526545419345018837424304242319973263286505195056289916444858981052204327932464656378846761132742506419844790362604363926348577514954584620643088816578558865555436446902156527180386776334715383919510733876130174595400404836868486267902594689356078321391928282882176518119892051704157618876903008830983910021476924124207157708224557259694495806266379375191036362645890856754180128896576775395548136077033659913032582335667515159932322234438102912557335003701134367361264934136210510583745138308904128122882943113382167719383842377875197966856769725502341998448367361204914956011217398433617971381742391832913032144873590470081427474334429724581821928293201103693757902759796306795219571142799648669117919310764368259487029342451840127364461091639107325113092865478818584193789050238808658618718342377213861943460800290530892723022936224134085235016542456112234089863856123760983038048811940511428858920184259218881564138831178531040627496754353684268458014907080807219635409549271379473847359037370529996887002818747775598702688035092453466383511642608015193928320191215144923857251847923256411633469487940649750173287041581256336176551724696928322941151516295865066018315614611147940627282573805035293021289336275146828729926103548092123153196766171154089152951876979094122062467444363708404624175980205157322383193497789874157544324037416607764097227745539964595538033960404201255345555761408200995174415533361380895121276606293156752542497174304401627012853606339416601987649514669207470984682723744039595075923333329060603634131350463752214502065370088084019060693856537353178900793796755459302766970807300904830117803232722779481348060541054791063579232800606638268389245701586688736924721631502527444165327277043171810451340019184850646392730877226297221582822662192401060892826655723687846549113319356183996184815293587959642461759157918062732513367800382779023867560336652232223176903403598970328026938350005147335456977066948555788587804052547821694055349684232308491720956748673217224411580279305506623655813433667325719757373380873863835757466475727292506308077792874027915680868323213299507464509814625924683956846431122386924314337970575608466162979582497843485847535964423425131782582618476924158770204597578967018403344718428295095196194479725605577777621393519180716649698535420051541806447689631867430081322430214553734584104805518087375478379415519868358499335021004947410806072004894901918116264449336132055745421836396461324509358643789860025967356664640148649646582734218065377394103053542209817046764534302732059937951495913572041861231192420027352951280622285797875584181315334255532425719965972569967335037761011185415765828732366333226502303572583882689078431849586367405943146922928678568426761251876227805982335385864849772358990808222673897270592504972649768148357432455040269981768543635782250300145614370952928284494022042605953717124949146995984239781761188253579671431701319993243648322880959438591264856525020292197889601434548587097368308871093600185344816892869769888785284655637771076250622516271445163644564337976216861968588451501556825531994732415666591674020827308852015325128486089827092397940764849125877578766569212457535972132779133187270242861587782474223295372945016689820413751272193899382769592623131430412808841884910979198703870637591509978557392058108546498709807893160205739041249798131761832023572209843167084311454554939643088104442075633089669373809841891055441632041923025356859923970749762326891511996609043925774510653545113570842745968862075492964087910619594325790439580377210491999161251433467841017657989951931866069667251221143993191931702125815944500620138995779967226587170838654595347011798328847953568336846071418551704224574237186798894191116985580245864409464603149693197527263679367418895229467041062612893254886203712917261572744520897417393640660956017279011780694058448221504185538287863292249433734116584688176554099990374278992773252301204395264072537931526856825713208711843842303080793892713301981075292995006786763798656854853598582363075623610830114295857574307247855722546461807600390757481670768665925643826028062732862701468271929418458942374130383201470126260703461209723922645187296895091233971321017392270736638749691177947067075645980635574438579979206809371750555300076129170382669401295161218229574551511450502583211505499541859627395996956908063211104123459793435901779987999776145634288651002107657597796554194156740602761269212244124918521095499313149599118716139274896105917842400281954298522935227107916568349612442441872510018997975810853897720767049835310065447762146660647267140715139959650454923368175078179209072241464757462924010169218435153655251717012014253272592548845741539235740326308233192087568001783489323986298678299815476726493533204302891363152640754406925304156362162301782420762017804179937077945059529624689482083189465832400228044856030565212269370610000340678547585773041526639339921996096637726010726760116106681150989581481439247181851205021843455884958318744953887703578268429516677233076159857660666224450033485851845146850401450309214437804665759342118396120530301878908092106296574616908635413803876600577286017684422851726643379289658801716782123384430747018815482095685307312082611769600696370899822511129185496333377616212760427048393707099523268110194138449917331582659168784209213616526674441118618669565853663460361267305314374425434057810598266336026360034637753471772610131399247548736542921774687620563752968732768875690789194198504792652007314848384015034146831114044947704428556620019758102512992817816793217980750292969447552491765729021927047775124980272276744537809824354105788788141023723064431838449154124569438467840236357752481599713608914156543370320256518600491538901997443566280866579209027350025607304518103576999453267468387335116611062577892573743667259625702853321461099071724114281553158496622805653988289994899464434235582586968338475846481149886187471021861058180484332323202713824266749998750896427992505788190505812912358459936890575229615091256956023580876807256148967502550418429949023347150566733660142548294886068012745225115051634977405493150177802519463600428257764859098732699463313114089827275983417141559776594003675197979364008244252347190272666937719066435036422073840161417777757012636342991991494737186728232778345531259774622015384319334586498742547880241757698710513671103925156716817049587471850055740835757496457904889754983413901299608397791853807840006058104582164878489811980017252073621672982727307037551313550622992486601616561518262842697159710059423791911142066025635911344730417615947380898913340083618244756654357196713638955695263214317185600344188621912012255978937352521576394118871793842400313078892848705683687493930884810337207137685212817173904652338655984977330587475869010696590889695573037336629960755082828911448700008879190427331891777635645787850734913482112463817763145952175212896320015865173488965653459512159677761246613848509452894416022405413574890283965579633582229671949168199456988373828087800699154336394657952981347745950545947562255974902701536307554453024627515801706308793639254378776073306025502421200540447660638840909623969349452111340966007919466292580192719922434606774175683197638529399031675105469791359127662693246531086249622162020213636297599052114735873039568717005084890387176615048291213131514239241484306361673217922798998653984537258478179253091854423700945043992029149514338785274779992023340842012316498446206257647012479649833984442937056991479550722827760319607706447763048373387207820165874347791560499973499368486034672899609593496905628772444351069588136547267335725151341784658002631932376705923474889363449413756521002995920153565648631169440731048958193108382299339338064953992390937677240076598828989544158770065046290740940596882673802583949714711897995773070438206465701100863043786715099284666047194628213662137224342889755431626174019313993207492312162222504334143958776335439463147407623332193563768761051361425360623258161493785401339916271940090117181833009091932583323516240780515919318390613297495013837400662856182923743157826418986538101994319483370910364428026822830310083917735850499306402093812899325125724270493569191117453675976966719517557633440096689083774609459529143133980726225910682489546986592409318300820150585321781508587114894307163949773807312769871151360389330884731979913800351871546310364444022699567864541648552284275054402845464521223214868780535868299029693490997595175260262438900006954642461789970261170962656983649135219469754396508590112615859352773842022039218071973387297554282565442519146154746916651595145267064450336229374466396086477198108189695260404885502444486664132943185735435803686455770341381483094043449944716267294847282734778670173688550873082973205045374422680388259352102045435459700178151408290240522493287998350326510477195047977615038526849157712422966425413753061607233793262202517311259150453464010072795212810267685427429751528410183281000759292583793312789291164404687754526594772127638200669810926369354166848645530232716986308946939106686156721647739571393977063130393151815582079006085439430412739853522808030995706399150640549505273207560277751715745641934739773971754634095842478975939886935144611372174510942730419132035857787671485357016197285767168830956118485297288998210235223509818613559947603565524322292832479259072035684257592520424297768359502966643277736243139985226468878043187183179675403124490405641633113009847179532648168597755977923377912639034959638127966605434391726621492114609526197218975863729081595192634837438943280972890008823460073914588618998636245035478991215130004968490296649174817652224197662732503520816727366239728861657596099766093673463843974808991837369515325205178227696996790481874536013082220881362623843676654123938921022233561520319051698716086596684522011238625824459492309683935532255045717624785689711242621982590404295979257228585622816135303475524448106152913981735388879588169525601934099215486330690488044303367022503891856355055912662933856331599588081268595563337564628183512857326889679984470902678544750014611688346837592453315464776616297025904816320656738415414293896102286480573863267671407216441740229356392044473124056315979263757224292486010472469516394751336666272306494192312892922356271657807066468920338185771801692730204849512689285385236479337146081062215352802089381519614693974120878131340602946836621995931544192683269503945255624416519776617263698020474640776553583417529712975207309388659062715221320742277621587839146233441183933171057712287569965862335145513256422247452586934265507006616687003107242410142991151500999867308275060936924180070379853317178007332593104943993339132510016508643948854272750519748503249026628833453161346036560697116428600291662226880037556225905058804408061515360824998924311132645979552401128950058979704621753328617552031428241647279506474107558598234622123118971325769513151751540996816474639564038508690993506797938750131869081660515923445567030859212847031287129546787428575198978649585469561742490589469661582045731570093519661442156135199762955227021550596948520213369040429901112152760600439444651466049430633162742489717186820366822967848298550062895692070587982952017844765469447778243813191354526941137155744891866176364134297457747024187421331244005637567295330516538204690602880578797959910832855297251388908189253862119016428721566916683074415676164390153305090451972961975308043448406478892483058124841100494202488567557879536691438587669811239053918858990656095583761959705423298334137993918508092471131742645290887252550166480902533617324107474328790840029100308205174342877099375212217528535282955052410002180931092347011797176213596904157633857063637026725369132491787994329956849159204872536833695631409171082792272322577644740489974542524040160095786785772231348652566891218576588955168079256153584470698595830208224428744254689778470251425323301416248189099962075091705641664052376596570955745903300253683946413128828219905246206993187217157979946869527033337128492212441182708645370427149092066679111682859558631860680918617135304691490827256942620225279494697497994598240503569256704753032275504094323950052329680183693370979979482751070764753478079713745813697918483306627781330781785796918029220801671925051868007387768162136190621572415147180910083517264945607409778266781985892908077976209223218047137441039799761208546460644761116652236634278823650252060189756590532863386545044778303298018384559650366832751418670087872112161840803880375789124128360189800760263820907444734973791773646896275771475490928843182936991947047442166273858956238761932559092277360081396896345242541256654891104690087469641363142873872571994290858052849991463122226665976917060372489993542802779348726754448423102647229853084737498643884779388961356604746623538875162470792842765751672518868881047491945676337775552504051447334211676912612318286757058777253581990884660316276050014217612221804750478708543187768675991808072365673953042275133116127089538102758824346405762700153773866723453470816199657620463478371959165715488841179051112215976320463825215655634608724543042087950435451213076065908688803475081116899789398449649254571034344549479819446328287922101889353322677913405612126591488158994485761101184439544132413327082916575510592665916444067163687055853415639321737387976966468049572918159767629178949575031496785388262628672401735594527078072835184741288327065202983881790739351678435833142074115049978416955231263608137863154574521468462014371470461206086193911399565687334980624932081550552796083979888060897324194890706771532258032585390908540560454860292940832482107204971417144193699592626207434036584081161407627937718883548221614406470378500423405897385272737118556412815666033990476520876292164449489832586650038765146282052172854181652703801015952336113892237252362688119056355487636477238842198186039430221815357743737264988705684647083180400400867930540083308392051954856516802325966091406495689247620537766216818395290617710535368885581200825486113040633831351627165351065204901492822318891221806585560631033677814682551745086600589764415314539485046427980807786671874104360725698913985779728995577105241449881296328285498833045268600215804526009986058620613056669729028850512622557857910016122596166461079783149078437749666048275480853078266775886662205194277662559710458832694694313799074570476580616225405661192123468837124829439992219468896652854729520784991746705140593743678724442807977529547082762827973932996933896609134903737501474827034201472641646936530014496098480317511826885981409256539862307055871089559822405454287049687874546294521593470474773688022606511818320679167447205086453770993398634976087882140767702321440612724954988305270058305240037154678100751281908439471551647324330575048197947607915168158824557325216818027411355702278618255144347086339132922024505716744793003304266300934784961698837870247319260062508700562677316751115485181948040425605766320504317419791831560899588979426689631515542765114761653913931350084693957826099445335360203315022781932326692054744062245375380269853754656165336684176175910561014728678383995910954292852651270679883003404019474170561119960238145125292634772099806947336593096002792787085601148572233095876462392599929830505449159511694588251488194914359767892706244860391102225398483285234105937461740685130411261316562668092635770863327577558593789990052596114961303327419380151112587714279227394298495989120669976159791379657651321189063040790490324713467202696526618349154268230038011580940596641062282664767004289851961645651392868204620438227818465993321180236787452665144317178676455282904374529559060393966197787524869187283870581963948618651001763698371870702636657503050301843729030667606105046671193679051613141226163624984185401485274496337605426081726926907749543176607829779620274267211577963682008836806310553425944407581699337832661518081727521143784798313861360021091302680706011393289775536378124426096508333114917512856262526544329828807618699028316959399660354629716120063952299216526756775807543944277704859363240339490540372231259124733581167372186634252506399300016144376489897429338401449466065839017773903302570869401585161688760852924763268897038151959563215295231263624530862208735025668818567340104997142203896894627588938939036298581883154751300049679520000773773522924458310100828193176823645236035670344771265078753434916668454314052213549228197102822026363550903913322964455910003415687924633858191462134156765888370115034281358425404406139959579941657815239042029105306670926829751296491578422575600948404650934709046711142033532643706346691823110530693985569671134585441590253746754128365241829757088098009174345131895058124023976467036322454289355682338852361000562050892030752871627578202909571618364975412595939332588247996159041005676883427509631823607022413933045840030947208807979331043207076001833662813477644837583979884558688759683828700887366784387840602744775408585858377016715296295192187316220944073420544010001641016326554996250895711984349248517964171110733811697022299082833552080382179050062284741883660539099751582926556713596314394558391321994186351473637562251177564189690860996221622398327892985885980613576529464012773591406863430675779486236409665085040883289123779000764790438083353586683990026121924236049181857515836377601654209399464592228353162637638106932362116890564027089028720811952528319070645035770608010815082503146330343361885147564539511227877026196205036272825865587963698426737201030128355056760254284554950149347055403910927174845195095569180595710079356168729287638184068581476717583027698682740662840054577605151450207186649920616147164403096175338622318825965627672729322826768751540784876854289014944001347864348109919312858882704915807218371227123775180124972100858733849012129145681776145629758187373751383378996678501747569228349328421440176634423664976370899369830260499701919176785948622503076136479765768631926296621331314988289575732189697445192294805048966009734044070754979344066014192053066033474124738522457171488629825680215285563741621452324258202948587563669077334456741377069846065869273399889901529237894772225606408161303760578112221312996305613467730497902928621668410903637806584266968837017196650699136512386627119436540126795061277134136600060585246343275110711982759695516519929534581848420905397439025252813107107468898576004397801906652046408700771423023223397053430691354890535741764817727996398818029765473235518550616534652727400075690429632262213469891919113998737229831374420253476014807724750207612960300932583272862907975189608946111547556896239970405890301605818728323182459067844590479070668022789401475829601420436490200700206428961534633706022972697454777232187158320979483260305482923702481863678926221548956626410801040257742406064809194573881785734178120896164585249957982480116742960789636465514513850966624268655726468780537992891881895918477276485285145629335357434882641029077405076612593884359118628011911468365893889971889115122883066652705495689801321318477916382686906819710083969176916723425225529167269461880477965686477845717555998823694825624186284689827123171129373866574205163719676882248759525967802476358050677755073450094665826628690498119872469601190268541092414248703042888894939914614499320434571173080344511633985070829042992722642657427147934712406912632600521157256180836794219516212200432816275025814527127248049707884881902904921327646918840820350002376063570294815249478622564605577919582850001623586906156082517737136186973045298226013289899887195307996927999462387538066036910827225561676722652704188101158731079077101933090280167804227794265989772124445310908393104295564058538136594471683521485363607174058398572099672659633844185765865419941587435467109913155858628122542239543734571606065487908500353255441207453679755236563460067143516450922611815192420495602505648830897924303793300789850954662737995321721570963999446775816828814319569193703137604769025372492460103304704427032516604966386638638996415471438901460198304550395070118155957290832287534321751749095376088457289758994254003767641551741214148769688183417196730752979716365540244224638492065326098723698516720880707660032704709856011455538431792690261954168267126404862679692801956392118248403445727108555734919975529329710071879636838293728328118015928997403237474507585979942522603741776628195204759898813094848062336154661979975632285149821565797966122447076211415605665394161654833951473823536494291407452251717696660571357902822331812585806359278323370408811033899776361372152745897025138770681545632392978954733821030823396232239027743970719394695004594469738566490413144989138651091694067288295061352830112586100021893184122810780117276552385470171632922627910017535863996189121011152987932307166803512625693397548826829328299879374885207020548703349076159909143022499777145218573756328256200812734474193449207615662846157121271069668862309994048932941938866684873501394614633310270834854324768814819031139790633816055340560473998859196625331691249805468525816125532244632731408140778203657531055333808143490649707971461295535054571298657107568851989325919104995392552882741196321658752594113582199804625696480775953685155549655731440366396919933173279491611684229719359005834964123866015540866899986957065154447307968268808099566411855199048850952822208596823020951807814441320193586570487148691584014286412543028273164019433072403257889315977078341171045880535988289744132272324865093834198319683347313403865761388204111665226764967045112945531351451531394459174822027554157775254495507421009204022030041108585346397920144199493233502288786283103488420202563078571895939941168233762511812461905543096925072404710446682908191173986348076350507583897431901416021608797081052132874927442011432633248453941245833796968311638755586363674014065271809541909931279858410778283269867486689597971942212718268368949157203212642841275771479906070035474816647223993938278710343314923701959538848111988642981378620225726992042428114904999043638985456021191704794890270600805180345290007196266327813761386106471825687898628743815305246480547953871188335387339666019529586226463184121332821690322488512082493733482807864140264909820760816316266943964548326221108371406480144578306117233580625247558174134332532332258857470692468731380783772194385851913641444592635660933915236163181284311999285079938082178239375551579957968418522499157947623971879754841183787227816899536571177734560087769411131794937435882870582840172931462093878130639107558206828315652677211815053520266548339592329525088289451525939049705958330382823901159365852961389820210377253374459636776166782402437168379247615269923286542204171389005162718972418326271592332970258052722318074876168697724412060546264794892068389968049922356640272564457323097307430837186979850417199643315978988541393363319499133046997762736489607072351353845648327065596518423287674872354010001981597155241423373113189867151925701575811363416530500212375143600638315945583250192170254593800592370041324414131226221586175040924536661991193056409683084373082545327041504916141529480269174619771402052118976332412245197133324321094126126641462250892873958627914299821302995024561240833550545456387280437541292359244660932204452240795737481264980823521129946018910222755667980313387680724184944880881465547405204015689209026526487505545331346198976045310297802810183295949977632000257239163683154087705599398203959309208074476348026634124532130638032861952832240355568197911419220995251925958851715362585397539407037772060940712736097443138531853425041228328723064013854984231211458964760055698948814609041186074785076810074592718700169976356657583354469213766273549360379290465112825380912392233066452618022803748878365981025903503657370541650737709323201109278293288548726207857660915891236517659778503333699970105814903988238408800962266830994693978917678206033297982909571183125650305760195847026775664291788813019479891088171908822025004548813636854813128883985604201488919771952619940537593545289466972750915690326574058347864479812472594116025307906072493323481399188630723486312085591489707118983109046708633422456120880185081064358324556423096574251274610091913369210853368207717771773883296027199888442531201634996970885501868993734308911436472805527504001032973970069524475078230582638075885506693695737442298829587714211332003772969398555473160274719318310352120344683104974157517066937305326085165070832839641585984854878252557549821519754233610759949900642783282395158721138887946504828479456334038909003793411299058488527396114348471342789174614482581220711519651545834121065955197455571104677315760906642755990583960940740696073927071216739438581736452185181209908302083697064853194838312551880381850566482268956530488638598538132564917059643888553647726973243469712101704301337277170848554140242073725285945523804839545029550758647578189104971451582693664911201085156885217458562560497970325363251522217162330726073376251318831051631914963613419436716936028355647403686138391508810285548899864627521110674248354504980964187132288870528902979522484123097800406352973000299449375476295061017693563977904498426266092026228933194541502632656878425296236990516765432341535684453261387927312356013925980674534709352766821229576011765091065125621065738114094564313779893403170524879456031319233234579149678723584580928010494985923509228642397589098145936582528830169002752903728147279793201790727861708256386744309316581148396545461227669790699580533927109150032182630117723493049755898340827945509188364165760339523884090534822555744262847105418723768961644012028165310954166326041146240678154881807122557857671682359375859329654140794216422078744299390685604450144712445673415953690988562082610607656073320318006327365676974291361383444613998160582352959485457236787416211462715085615694997106993792088780653662374957701817168123556929369985948445098643762240160447026998464608216318259227992446073596940190304647550438244092460241949308894662834828585220057728866078570298068654261038705053020377358638349189199354799898613537229122450791941455893223265001509962418455952116266552407223067113298209139917186178821065744920743417593532834655457749264384860429002733378249245234214284394047180251053674193795045923353548668368902249054208480554622133144921504239426640371715015137200909059487731092606322349750682817274589630237872680165893838670428899258813369578762069726993190773346021909488412471458784967985138850362122506011201224681258921832003474908212497373377438290121821679058740509611019542988873770498771728778778181507559021705613978344200210101140804249583167535847329144662085501787472656904287312682489297228992990122157307606951734553404219502230511805566441933178711288557860962393539030751368705180786498284929035616871608858902597159141511606325746609440987625951051945437886586812544006132762084293231947010769121490101820335156085785697123662124939262148738101330857729541879153696075835270038803101586149834292779467103157797291146455096817050325040929311921021012966313313509182954522529441811703072180146358110053778330207838135579505598034239163723603010375036552561781785406534886182388834695982597316315965625701038596051680889324204140625868360434397385891350357633285170594320058754063891448504727931383421720834039288197785276507865147094504042858164446672149189396735690629771499526757153205127120789312488893731173068729335695752901095542486162908665017152633576482108200046329864873691425812519878442204416848693109891201880794441882574089550669306790824763684048926492222996572703044958186530036440196588155459274534448557679757280625360410970448026452451104482899907380733224223934042710652613765026640413782250578833371803870493538674930059701255650998479928709532813358943714611987099927600451213642364739250971492090486053826376220715521636821082388039599601451781831646122291536517964465197744504674413965365083242536844222654282940579648463387460201595090872492726814347198775259516067142538755558529120273172806409391473325264015533274190180387058539962533719422185533684792988240477572921074293638094156135037731973570360538338612651509946551084086915413038777627399394562401886141541515853280977678989498142202821371925367119291101321444903874494783196518327209542204630796127057643965484541007028164809001307912190495044602550845623838366998637953698810297079270861377198504504185319548709192002275286061880715562303773661373087234020879377122426952189698097787942848222615841032453989507132961329139938176221120360047454408861510007009108344184477449865473145563803106724195804536891768847971828238081484356188714970825100265259438031636852809576708859621036767252931004540382356551389555214150801562476574122854333548358438701936004582150956776877710719721372859089571352335698269856481389969295063810072205376203967868007437466910952308849343248825827686330250940866392231197874160487634201812937088555456032990795745479348469972946009502487091793217155953801950832516739939909819567536030801962652825155775011877705260876668929995605931348051470189512432750554271426159226124672642296225985401196990133697214382275854700427537974799484554483611853315516725512846725889835751026001889945019689461610072111850757949388356366520513462975478147078971465271612222774538794694927574030821892843624431045155870876040596998656095410964918235688789843101808265502354520628489313795232148450814818789309160477529115657149062087813793979385819929702772640278331297288987881744587636490309413941070461329558830314323991171043928560295200252948846088751374020736505442712312339381725873084310703016455016268823522863244624528693385649837768858864226777914028073432646574523583206546804543735704079237808763416888800328410463644857839906364374522223737591684158388546159099389039229547232901841455965582074828407209323862955700073273367187698539385343023815123701205303429507925198010476858763649101245477120754578179901904008128688452833016161173828834879549985164503193000681481478061630738884832401147395734899212604388406099299570387838234027623032987564133392166198864163224807227866921639475284069591324391061281373585220556953108545740242129288148245542070023459935771493873451751079626916558527931954337812104088386966898579416756796961510198885229846865793170888484592717869219276177243243353418923684955264204869441985416244628577134204361057344489239440643389019274177232900195479138556294851860602387995222267106214041640121939881206159451801217762154306780313519419984489956161544777725729270630971726911019652757539490665724822860247357645947136219306451833904918896027669729286341384718692726462783370314609572938248531320802075334249174109370239259170531066310821271998472615118211532959610209121513382459137510704600342398705346122930377697012334782200513946020255215674228100110342918884143614222156445216500500702478769084073222066516366898281273130496632091822112199465351573914834165208848094644599980906872412646278737157747740453129025193705620965512136998008154455912819218308493976183764735255586955564118637785304152125099415015008478069700597213389926183348596484733497079143184107571372478998371262978187569547942363157163611691587189126437723505624320090009286831719428826894309768669463987048585186931771105247364015946380992390675997823920183829696373594892400460264513761827683964922780408358170021727641004709772741973611341714642035416048272311668725166946476167669233698075249835301183493650848944384967724229667543105010313628207915796727845243828997434403989115154716944230040910892806224610767381956829837407260280084615780106727186742904608779683459303551755983062125622856817703871639525354642919233417204981947160878173423619251685625617275059380613172255697775603416683755865099265053626323520896267104609175941960452795195974992452797385282070091404816654986986931971146840631381831517187500960017029928728721962409503600279344613168934298849728742203536692095523944447938660660406990140417639192321494801247460201811705868110175832350893347012719579652408767901948064802316861289084889511989964875239908049029880928520646751439165025786012324133191427485243279574409885070528045950171930364681855099209041657930827838437371578194901117147898108226251523031109690128792175514595493083580259921915432458138449345204671389467367518683159331338846100069697021334216160204278474137578634086403531680852435160628191482281262147820096641452924991847904921017457469175998988017486875675632498046945056252512069452662050214520054102601639918627857608535721369617733243687225092032537680379898758590273400309378577807372549629108094266527795672637438543517831419142734298389631882406118358036347488461455763606683240739232403810217567344427690844725977622104090304677667500086204531271859706597850212775589357585838605752851091206183185342125832682124241801379964871046680696284166967284095716541446786026902320366124638423378960015139001221158419653778843055460932984268144558906593743889198400586017129960104643978930947261476564311731927050045567973102753911748662070919378257248387682994772153915251769966798620962877530843600277097471409448971272493794793609580594738277122563969090485331953979367234165953893346811334564502108515025111001541088331831568144156804408368648876716804359904892486518095642901819136435000041071508833290209156682046752377323208699456530640469182883419136792439828488288737458162545394943443653379876688997821769693491954819364274769537506145894356124430288995940409709486169016767809834429725624093873065142953878549506781485956561838621579709214736386839181430889636141901156723850178555530624689488249637700017678510155866092996612956262053676704880948277173280869370548368738663979101040488864721490173579912453852153295290096405713720747494032898743091809023256946263449877147572270155827910404759477288860158555555139139902969230540532837957526822275739573322367600067348106091129997283760456434245770161780811903038047062092573514773883488082870806977792954126637495771183159464987810976047478939951389369994256595167260864784764155561534880391838529194023853624329199896935959415758060251635490575789371251706765510565203413067273381239860980255226406396549927265947349081676828103240347836266586745676712027230031736857144988491813842049390198370689076143069736649164555744717826502112176721624543128996792581493573886899418726253314811335413718575867640275192917681263353949810480462000343588391248302864850427910052099371435932181033928915933284995039481776019274896140871400718500018694058622457206708174823599396371546942848438246545499360742574777272112916320727370234132333732890087423699809010210402763808640849059586568179358753480675875885626261472834174986557700339513894152263918524117416423056973854165938826827810597260909883417906179796037900299391584750336228855840629506297753171456284652641728953321771622348736100535512469077448939296094796811253806957085093037755112187522738024019089895011569470931790262550350808896937058633392692364046152455739748171634341124607730706865768910884731241879604746630591716740431450316584660008235631487505271367707437483250415179840153988930749820561778904746303615984632972512634138855515762542032159194072411765143737457409527039654584256397419937174642892430240584367632017481211628433944802935425722847302467131722826806409503538881796822712137031903657805287132863175620683955004754519923910646462242727420669287633403062182054030602396664217809374808519226265838564569259340398971872953408043422526581260968527751924135822590555023138385610354718632018307721552993735181192218852650342786508154487638306513066025295461519869394308979376078485320256584089615686107684459093460744733529971192585312252584788309416219289890532821314341562785773738948848488367889376639254798216419567730229829082410419936516065113397071967305577029255154133463789247869539849538583773911631937985501969730031026141898907048970225865979385550314309483740509427055537218878864095089336172157844597096702190038158819220771226390658478463760322340873728139647368320492908138145151516297391226778483070923499674670035966531820188500234708229951136818167688407984387265994398534595212404570785347752491648715722838838235310102167064980458891721343662708207762199225878754063537596462673336168680181285457562208774234547065805875614067320819743548166791520533862533967617460481715751492232985029402072304004139113469208504705027141180463053115616426953422181791408602349355086460527436054902546842726471241054829905376485365689126565656761289529384452690963021806367867204846083457265350802995992312054415951232721491956192373004359974591548718903356115723028823900947301214681466253899219938357002479514941793297421265455905876626991431906961305829470769453291104976406473294400320623987249943083770746023758865717893913204502282940812771238237883398761413911050543117673045690619448716525239471454209092145842429329967603894409682560529290053271194759539912860735792823660182125624740493114187842608475769734024122280946042029756435162422762951205895898792430646372330209572334447817630571092800679863168127128476079294412894757730876755017615461124519494371995285822741313936003405253998141202070027356731872313701854864930234605414802324270161502273473590877908397146442933453350018234718678759490031851271464989222486605038549741451465402831624281417581975877581926916862401654896327746258131992359337991783743243234311601529804922924454396965555396657101500256926276200009219435175258959989533444747682008382805427395576025860037730516621009857347485317421604699409928636104260074560320562433224355423866151210121507352558391709145229152606726745813517416501411742738765651092849605283888665807451007141581924883288565977751050537902240421468477108870052622316154662658757044549625149928629992574647697638460454960282144652218181186851591362408707613819943047209494850944667741940282540733927917517501786714190866408304754829568479484789893944293462970738544231000978565452406312053407890450499247176882389574783825795250885989369309284258145201218840513757270627010985792502790474543346017804424852445826641353025760237347853200289392568720836399281510420612128672493041262489166678005874969328031841468336981580346774206722029107440312164049498144375700250633133960411251217139109966991210481427179792140740520499708539221453026989066038607024120772043615055685608625744092480157538825598575586856747421492960215259904115537041745854701804309919259932649745902285330998591237369283527705264315870118937811222407311713457071337893234821408691718325683506510153858345250950379855066705528761685973551120906000341368867063826987188555736956854078215265728635808602875790222727387210145503614533589064630752325269744056722704430421027351768335053607271859062545255103476929432926079046412242184110555478476939854265674213825008474314637691251402437126196438433727841838679807367598667961287951075609098628422601018319491162350699562578397338900691986010801304956212505059531889034604071524880238120374729934727587907418092449571205524564282467197340745343110313961028169740946813055674758077272010447881550470372232892584915626665081711638210232225995828530155677258264362304376005999198111634831167645855572719480720889909929221108043682318766052737707922143207120659451077590848363443621484579332363034533575701696882143573210226995576300784486061165535198543394417553680796147186028675989174939160914215285950960458877887933802112991139840386279258163409211316692860469556879616868982087783822353820939043841008889361960588146163354948529560041627268600890276570664591492490408706242758362746668306790813595415145024528515137854477677207745653038152001576124850924132188159793855587902357725111033828899627225903730085849373371559477853887492290362139647495620460411155840724105046890190854498546575108730358429177118909016839004775586614301950963652138176121813998552938647036852462816808925164273577331142817772013650698544577223115574324137718928966204191157347818638612155132672186254232269284810279741728179213880079365277679468161311328363842787505322097567249924410198995910081578084122410134588302350521901104794532770141816644016520786939182954829840116858700007147922376321660279504618169558972041405048993334894610744703554515032988724368616924407608653339815151788922244592686295934729716035203560677065925446886867154270169986089819010564204511017914511299988744666558368043313333679537288653404676821720478277434751394870655769883599232795041889676551632919461441819133312281052414347257636515248522259646912321062398211030976332730082311390634074829764158472206280229080996772789752004148946405014873540439788755040593206153381802287798986728359665340204498271727301141941483433994024359562641629270021859292949122112905166337123651677197612938371581298235603201036369259158862276375207444071095411996605052959777918018059545693521556825235572040815988676090385852242110711854932203100894321143106509860241536569616576359220886067984392775741918342681960976501494859476339676930665570280338276829700706802047874215461928445001291301168778026687440784379036819511596956361266692381407564973188049206502693865621910906736277785874117944364325109525219684912883784808840160230210129217631588018574594503364041596128518489922656988039711582074642765345867340172024157854595945965797849051472088777118935116390972155222878758409299763032441224284327261772187637102422295732959147311565162926328105782464098654138420643562278441372951343185633159158905981109003698305375592436159015121083353072653220564320063991844877672014012252534258348409181651985176208529029767254041095383857105387743309885943482600598713837694227628810747948945202192803031670744206030835954623087723688093527671054603864395922089109696844391596896480451986131713013789783521869131933370271033091618797519696098457689282658888203781576688764121107143436965852527129213801092512355217616862428341716130452189376169008397640734499522124209397078157941163939381454962732256134119159363495451816782575857979434050513349329364232319447226024424693959852250927925607220685229980997022186435840186414714932533109179954458401789009443653105254637308467937715146126256180308991436305563166791165250437761159468267519366326333465556773174878003143900487081783777438888781618374658540727025813221268247098215342785742590778616059196847267421969114355429373993067465457326447729418935469056689109382186247487980198855353043183218225814716125295826203862996934003223453585284638490314761613229476424500192348257880724148806643541748303338691429526442156900126484250844515224843056483397331422407151566654170915096102056525249891256675873316003437400228064910343028993919781812224848387225786207837127142415972916656137874046482670245789963003701096055496006742306063281771871968584878792131109883755958514611006716654254827413718334028399963907396574397289193908031562426705302803965759419463775739983271834329032252557229608624441106258034313444794388742910222976391683739304300422572897100431808995564633710516660993344170423133152989420304170131639559785298937965901434459484176802450130415148494048298364044492970629727025348688429840641076662661752844997316527423524192722543150652446902799328726328566657444501145832508156464261386318512319126148114627870256172996682355021941009842600094906987616946939711752638278107698794330615460651644716142893199962304745228397373398702752574608849505140013912077479656669566323011992226055072224883313747131102822405237481371276336366098542372147236426453736066127541673651033211370837948235940938129701650151282021133009980288816776238901123955550888042787234627858133036907865190650083988583562405335237506930359179907251122847912546783051214939468653779483317446884847357144108271250648998069656250522006038662837624500678553606908727934314953990843475845172761765849195617636599564685330844293861551380587435243972281860524663837152523565425915037517354418556297476763406534079866317661136554993555467895701186259120385763335337720152513429330086818609242734743546890245568791180685831539743460756484546455882120234782629173124198786653773385286223263255400388480980171335188193708295973040736877479430010804676789991096837680974318989168471442398615459170937300628774024365192382295504180267090814281153026392380331174817415051471777963390646580907280818313220541019982378066437702154251526817867887884997405162601887540313116977755604708440649478275560753117698568655303411575941465409500118061145854203685921178164642622449786903571299083046500764178208069588415799537931115398031613354419641061513405345342542226773295428486708643119000350775521770265119848009779683219918960078656737231967325051477108782808865627886583956687223468191021931536616557787506542762097398632719593897294303607364521457205825613197057708720592482322265995086443394214003509445432731651539555067945401310548271119233576327206134484079364347372799672217587122479700616152679690949444888775501028886278317769406368623280163418041085467133869189219155593732820201490515450449717429607288072863644890921898054644553862088928948161616797463517457908088895682217983468837199396375594926165609357552353522241401972689012479846738779076314244996846438837894380461468198537301590469733732278368101137035734253695157286526288841151694056779729523533487018458365799329977676784653562174535951946125543063729701037730499154383975226740747308164426566650396573579271406672219681731967193841372467725656843529517664370566209696327027488601726327013865984579142116611230432739580469320070173087655526573948512047315703230611209335453048097411324462451036075643091911598287042352972986584031117799048852873273222989858613935925810812017553288046601875991350001681155274059941086828263422739477225230376069554055341287839810553176477140414447527607538945571780559768996113015535723781041890738088299364584116105912156064093457136434161127902365194141491369336034268535893155430804531288122876949526369155775850509274148851028757089128093177052212063801810140016492340329885471775425671148763342039295636209672976561730470029747623923644461077744731101204309961437411723754501352758103387720013399325250694805219251752669837397798842475650470469456383392953926934243594875950980092556217039091044071617875696531045433067756768112214411342592341866738741085607227948376596099487425881876478451215924624357172863446002098512031752217551909640129648620682915491332950639652814334347092320787477307094170320328700276450034772032798270156686023804917866822763317301574613085889776787070222803787537447099965552875112715843109543421295404054874790882695750355310840629307741857033148248610528843184652280611193735682200929222867576391425665237522346860059475794430458101327738471158937953104839233762903744724789937173617816103287345319313793035523213648817755188704967890803695057468782407634705456375320963053719204921403361155344873493154267125455193365077406593452981108154773213090624822315889694494248419572325390060273585361267066163644389861073149502444731978524397674713291761709950350016292675065583988193029225637825135155791827607398449772826354808821812914077940083957648406810318988458849354696226498191571015708469870935948291027049798883147959076950414075018861824100233715323240870357590863445686001853316745232030815386598301390943161760020351218289642775922877081408224037226288783025380770258663503456756945655936419993431749688085247413004409208770631203347011168865780125353604777503874716613893408134655866536757191645527975401526036864350566424973414581809724404991984810934503033929244221043221369162924062550059543003669139520276264672981580053821674347642114798041724460301923215748221689101640256621763966489687005754543404376946813381154225717441557529899750510301338712128901724602460532160649199427655699521688290689792023468794980524461508688250989219145514919323816042170507792849357395746317129839674147507116035899203422873593610175014293569859800440731530222226064238499922367181261508743958433217506612030176771736006018009309333860788208094297286216643417552559511095260497951732783075601793578367569912135665785942253175876279411139949803841948673627944642287083648976839530825627045597214639440117948851350698543105081859638346542744097125389702941319266739044405851357287255231190956046438294218402915881643239346218928125438373257531080601981217825529916723065656633866104800549762512964248858597483778703818149590019666872380726244265262246937601740132408405587206773596099401723526902400131351043863225627713777856758682710579219837232689383414308621231286045233265418697993981711082917098860702228607932509275279726635969306129769295773605446710197957822685863309273265036059970489723068682768179044735927055535486411441736754140863584166448763369767975824478382612509935164462369798674506309401649999638017361928687686180027657891040631619872694315582728485722699745807871512367304400552579165842418115278235254991548083607873305782661914552415729864198263289794902789761461974491027460247734002562320374476527920127064288749823447727618760462993365309973412722512601393964919939005247159542945562160888501659850815077091697932873215029167433332408506441944071413020749266936791796481406619497110344571033922403943370342085130277101813387479594891144426480066329580646934380760172886997328256987145791542052841927227731959910413781736505952763872339464596761443035651508354313091797972537024431435961425023374854388468922338457410316263433595396054674808204230000405516169470935914869841181653502922386359873384517740678083571164060654887428789279208033080950196614766170275611722214343939964461823784704104191481928627217993203922681691947126893471682376505306845006485468599011753057817064277946873350064648418480592090730180751340260593022353627634920440169535263418437833754192038523529014805589499708143692670868575754306799096554261025514712531007752336665496970252090667137202738741606280129660783705823331972936858656291616953978576253240798369043715059761146515803870614860017709889105820448145843086629042756356931441004789365022875766618478089085371773265558196160067014326188060490031881429064722429633314382138238850338509908437118848065998177393952106532531064272935247001112374304411925240228180050632645149440785998239773720892894809790690301516105934511207604526991533123425178678718356505656605397857495068221690541427099573838683109292496679698708427565569938979922036475052275756750834235573421198174076712424927688708286393657603183972698301706251587713946090221331741702203394936036723069300202167353423018065693428153216450844594416638066333300490609875405927741361168473521548060792530042445343377479362379859248744563172531890912704324660700100255597090162399743628877682845456460948266769122683828258363432480846401444066203234615091808768116464787015232919629139671307286676058974002133050904867692575278697814133097834872788455449421220200782471887084055434788961874763421109546829916415078045671753756867125749177384371419267246581346411284874595594736177846446251973474655952364990002511875247829996156239627705907002555204447868287965218921398536424625226684659473652609534728939586578846004375010252236627302461709593089443335978539766903022062925489942191215036462953772319743477578784425031303282495671989421336883803781957196838045046307658776006701108004626878737477398777307561765562328836027298243016269055700433746455015825036634494565081078581987234306008113428836678018781385840356251320553538857855005605648809421640981941467545940727442447103187117994029810514340694320474975975987347123746882954408598524886384585610665996492534570258383814594966633944261417648298879864204904412676816521344272319551231225060399931394022993995795916787464549567972160659348417918053495214773801260461270981171514740088539938696243702727321849369095499939731640018875127464395351662749748116156878973232163928709676862730653076463362816845380484428597360286863785859837826045332414984152288652155458985409532940002022328118116973324150079283044764073793745077750386491209195469184025030999230669048152063633742459083485670376897801978103232571563205443384007383972676392162281245434754442470100704454069103422635161678115715797686541713762554437918900490448263814811663687634079630426133487282466249422489983068359428507427647747092851818166737151461631088006474524416437032394523707448171062873932542504518676196770284364663548739355318142963504382687957682014054842338125100571329739658357928275555690144353970280393257243173739695890652317650821157905498840403544761107887129070029425840813075051094674010788356397182400065135172131006977732194401202563684447341608444505584684952507277285411160757125821721683309127719023002866151551382149812513319144372602224796255271301720883840190985494011719037893345738139965055424694274775690435182859119135299528286836332170857489758070429605665266313593823589821239450837433829314249037874094508387967125464578349201289955121595528333351543965945292566846558706477600519067629686019339364781368593283505494677363094863598678292610195346966005819229898223760477873526515095418882794408390201882056880845782246003499590189741223508016934215978315127644503089290391780913398530062717439355503647668833984638505069644299170591276656061165609111183816740986375708951805120206090469529542333054255324966631006774988322378663697291463948502757720488851401910875954558211503946592113235854248789345734973420579745663573774157268339695688309899867883522889907266997618046245436460615913348025187392437628304527567476636296025785482910409023080635568147867448367837699921176785697360131852708109920625046172090432036033137518024314487508892610108919372923821691556504795393463759532116818735630289006979906859621117932413694323522680600663000877635556821213745864910374399986145952449731947575697560295020791185366595051685965628278953113785036779134674564152048285153375854061771790119787029263375917205362198750172915296234921058166384135639710450544626243766147155688412245078863761902565926603080019356084383423648345770835396086265578859009992847962405935674417505019336958110549946513356828668156486992574633310191781680503366405121773578968900584064963580606748450932362889372847104256110527391576450115286633229042578325815080529295073757634379982508958920955483634654767693486378750724279701948376934070294797584383180700401305815846624316361633789508163358594782168448629302704918160902366521097133804911072636186604287507993156151438442612970730720728068578073679402623003335509887054799574592972618744031133899572703703311117779400154992195709605341094715201100349657360389231187132984187626937803809693445576489143754688378881774247938679791365272150380238258424458026527569823719213387858791399582156003890638717369612828898737361870270076208665276399596993276318165795042845230671827085698360260144405168071094485861433270563263485533682539649084083119777663974543643892757061418729057725159611751229625413675470293129736229913834377150420367967357898358706042869927505480830199680062362114056272854500493172939916925985834259654163187479299378963759735101640040709432437070852824575470969880931337396453788683934565794993321947774242819433418746313831375130370649827500436291892036471885977622004374414374733093711002108745262722341665298562227295574706054755605082784448438127363012364740974858029739814937187307493500565344587811236964598810389941635368037941921643552091925348747793729412506945977981989611891153983789954428324128054010200813961274963519551976854790014703950190051273070031741749534617647408233518167350941968887976432483180680622265927495050337054892056865903965102127521014666079132602377232043842843931595309609083706707842646026613850509785532461319497880686799803271159590291910432850812714171850210251693758900493305695579098683042156163115491806224406511237110349767481286484266531792320439490891372292299272336645586264317431121121417968278877854459472810406301971513582766471433711258379507439073065625413399878346169337396462931222681195853245603876751896132308989378670853229973625455275611988484398880412491096895356047482397766232599092833646329508976916756637081991377945153072912815670043169087251393346177632984199411881320696872780174338512539667917484825509992797245954756954138142733483069257013131790304803425319791959130123924762673295888837531548581344635358602243578164472754397467008834053776264612971258459575487018938666185329481943389345912022559185852720989513146924054053765830340609686063267379705274263729419017808978873321248875190453918961521948343936526684301646931755433906149905714688870219486484043949833315187020139410528975413137510714259060003497169102057488090839463896301017702201123380564512653112954266260495860699514153332341573456791743588751505193781020607701465283793097354062846611324497023178553633518341242729622828692322753712014576863988692954550691609181286789921403482406463494233209309200840792311975473209842139215071589101012245056207302031974618026634769863598299945111180896026816477690334299609858022770608729613608539056887512581450714767091174374855340179898957918949061821675723280381489056805096825789205255953414151483843527958530084470535018442169212080619222051057480981809869576573035462375583629325684432552270352586771168759421283314191244250957022246496854946140820301453487188916266616150706246541348634455810241691956208349798964328086497592951748770306959020404502091384139141457058171279841452578706973570786641371724181340472042963692982723313113771271414072279176775298194804149621239046571691779851445618173545328492923828609577359050938053641755889872176347092976637308088226367583824089041213216644564905982912176514387258003233718140806311942013303445526736492615326775964094080601025372822488802550696524653236164463774112799312057541772210532190508273294143032041309455414422873651489503970330589582608006581070075720944954596060797524963879341000244904710729808578914762926615917205918242648397378661541207268196993972011107014654477534192866269297145975676595521143878128953578929192322271270804884643525471077055087838522600241575035819826874375654430658987969410919879116863302282317115657150949567250007394634868243099278435205281123262160062519697143708271561206480295540892826068665261044182492289628531937504799357458285731163340242547567712901972271126131117326887876634809929873410666820088188636896861398490844131481480440138264409326940732995285781320016388138908868793410672153945492638804168337231112308560847998916174164731141467845196011252126654285310639592861068173346993374395754449382733197939184909372605928431648986989182535871304028138685739694205499661239118232980849000826199560491347203229870879107940953169314229186711668096375395733625905541226262178864652377852837071331763978161266145342209400910057729565254934480742617067899282838662598164302300150678160348394220728972213754623693144355046519449007527105842515183059765758343308395675829781789550108754169921433915637957663566443030450900191505098829860773420402836003468918935711010319629897018060784512181648678706431023541611164206797989421620604823562178736864760485468153827465368168977591833468431114664862193899315526631443231871964628688343003194655006851340533599800406525448081118551861950585835820386532854129928323688148317772783068279741311984696798229294969259685326714331432380270371686072003632725254065223868345158739599508394163588708674282410728890274300322734570565305958610463899400755431361990841736600928593605426315925104734031875907589531105757261660703381265589192029755485526474976129212430215751906276219252609969461182989981095104919909047573847395440740735913458097992562769035352865431234607538076205457635056137132272064003562449841789051444985678461552225124939613554698122135390871425456275336045383972258291469679065611742792536949750536524520242083966656121971694297798004618000686984884304622590999202387595174647770337736682857044985678209286164539367985152288196689856846618756795709604983799459172102146655820481801869712520970726722064549696028802703260257782546389988061311811139725956192725602137411606204589052889614186945843893486848342173921585189417053710043050004012769163429074051264754427712691675638022534350404839991517505360723052804066114091367620275532859505739722202003868528865683166556277876295146042122971760104011304973539539480419593839929180876399227173597994939013904006104694191891465384361893202879817959874350922741245060546244071197235759634812163519767242527383872607496375774822112038898659283698800133769193589285193993353847028266377556728202295829431473077637881120388127415778982731398377471110029589008892489205209633124880125828670228202059067724522438263126958482652820133503346480271921510799042107034421658706427558521261049911632866690326780235989302480438564294188139420391091807433611690043950232655054189720308747843362566515969805639686416843788818228986449994862261920174298604925306800837643339511836472231284620995266707359831869774149181912277663463185114525236266410974208500732420092667696170763196988683602340720655885326847679195769099269577534515722094271989273046568830500895872650687618784239820587445730075748792482932909433616736938315562736008763911958854915635301467625485539529723553206527549398994795329902989826942326125490694494510605169606133069101973591671522189699596472461972726819172560303361302682507079398249889932856687150600158527444498376521537208982335053655421468940222699392001336993904760312980644893701218038939245967208521681207759586732015990335569847309033103243064754441994927658943536953928960360832444131007427194491140376115631571136850072193462899658818191879136802369121115669957291127797835387070153845864508366356830872923745653195797694993392868983021242895771330619579578080009173768626686917329440515211686170327245982846865945615211624031244757640694012240316223556124597893234890779935289726016737625010803893424775490051782460413397788564747220341032317716876909010962989518910653556269993656398077440037555479777039528350330294131814194469918339432894692649703333754248634986004100119587198447043845769016809180167778876698126910635635792643519849814727384739859565235039070781800741932080863416944549343049977381160893810094421566485299121355608396985733580241887497764298872278438411056928681000413918847251945671923703560086209581201112152769739429831841318559961898532193789066160665165176113539943566835587966945207207999146547487492906108613304903878508991202841556463631606506187349759990217504528046263492978924531069324429499184689715002036972807635326080095579268329595470052888959347774303068547150606987468742702028956873815489383254353511477003530353012909330741730014213333216073875090855739932786672789347074722977432456432052043518436007917509632483501906482922997246298053597634891425181101042826921243785524431279371743277338288939223649309294760668828304944306179890491234553825088214719168367374040966772159151673734641428596657699371960546633770441117558625228746560652505547368603255682298597669500148672757446436000260099988147190627066451956071622328928320778747337336461773274106099492218183278377764169809983704478115032010093133100987480338229939887465268041063167326874188075141016741759208833927276535183669239588731127187785117577919530699940860003525883952825929705517248578408606336977271414512339217439300483643993362928098461270492831175002357846340803151844977576098498092982164176369518685842240807469294490960579368200095337110317208723252890757251703128018224879365546053897710950645186811739503198047744290567572341524331308437604376438858214346517479862433285088633714494424110776128509573184250623811540358403292412285555092348584198240193281642910241641094934832095254389853616969965773974493904176086905086171978804474072097808403358650388345708490445012127093308750013893769755601200163987387162742772327613723338318540560825178119897023956848583872378193596263884145400180441071489839368722979252991020207728532768823754256191472740187222842245450162999954535784432843678181481007133407438543609167376567808055186174238404765917388501798953024884060969482466157772335884225043943353845180055296419376039995851925980735690736519480765688942748398929907251567239001713405092612424051171631302346175471070098638410670455377993737337491521342089822599664922703355023424978067983012825202016424885816947097487929763936208853550510150241501181641264245424269294123896602469181589023359441190012512692098845459083543659694220065884342859815616082886080083381101953401896013009548661324274106083086457416045569782032790087803263272510784744677791064940209509802691246109367728275678397702957580872087020160988445309118987711158060578090754749003584565772954335269787170938829000189387571920259070656475270550307425978910105830189677794026305083566369649207357641450061113207105051752836929458587728038293538693470246961823891470766447304967467486023888251075337706342410877480515427696957866386934455846699961831477176078958777030346791443536091003023802577175043574969735892145613814559289426876210996851178910973267470843707444287074663677351243945725658192740208723183926458732844854529469977093983174755791625601006577686114222966666414866056975127925708989388185930423862618198177428901383625618070676396330823355849926401100294740825800655654470242286425851657895444421835266696689612686633833372658968851522618800454323710916179051731522163051174944667037204997316957047903774109347047089630911503209927383223364183448435509421941639297272860664801913749838606744127173062376188064520920154523835904420636338274190789799022903376414501036506897281427485562737545127738755463430039819893291428173936404330118681622416129493507635822036921070455972233907188096429933458714617171401361626013073676556067129342506589989088790767727961873451374793604091772609296022609820169728744289732473611791318180815017978864331454240744876789407614505849738020199728380965896821698491147185369487232459967803964855173059001474432172895305227168272325268571897989964515499734119389179560333646257798285175298452341528618664961366868987414235067196388637162132655045541752893194482142321955086943238286862844234161738963458677413263242100760314187738798843954755921128711832578639189545209356859049866113070894268362213910158452940906341632338308145538718520550818603378544902949383218111818388297330067991256169098124649593776501944356193536240914673258509277612288784436319038396976783520210649746213868540294312699243507422690809077484966707039067622203858860438180129802348786472017874608761790344396679878165826297933587407732775674196904559789986072635891153249283203569646343733037271829629369431608020874760680687884915012731997039846421358285184844924321236939514365020332864035168457899048782586389570033081076658359304571902555849312244197807108671805574781674306422151735579751438163044988807141763242409685959533630238218632165323394830506876358514754747752232256221070993020527395788258078847117263110262659293709369402706085721768165823164965270988949036547244305758463149798900319591727926256586808819950458159468063723924597784578345036669339645719745611891256139979774708026596254131819177817956318335620629794408146284848982603150578210210889948608142071926877605281777809017775181237266163176326353144320862140142420315059663253013741732460216321875715720351141134926387586195440397440566909806282823644689630359915693076594092796756602814985434207140789663098520861926369756206411410633734172219344050110173850262438492262793414063833543519068327094823152376879438938244013899005447723532435613583810118423856177698493286553461120719695688686067115074604162681226799235121960294373682281724013438927956296455063349581909798468778532930345095350233183466719723445334019101416468537472929406338829619984222365005634703013461078754104953771393201102336665459462863445042452917101259542443647141042498697273412466883020991668951840938051653883717375239035106791370036186505380952171255914036687542570684917531225761919164976627210639476269580748535906220299519187042333344485911120595697738061703253179636345492712749120660328438864377910246079456693494676305923706235191897798449708490353680250361093989986772311599715590000744228093114571459059359198030300605787004330952654202795866176305495784399535667247892712118996000159607397282970727355379097294178382666854982196770853634499449707849767455839158358308240447256155162947315620897262677360011998674477737870071600534154040169616514727336593387066285228892706248451596299733710126619257617940524712350547731723529484267722207748478220155167918294393120906029249253789687802930791975752148570478476971457685687347672476650923150647368740719996179987874914729628941590290543923235880862425410055805076946874161430416065351517219290959958699772767513077763887156500521355212904197437246747095530654512122373783516399281662726298309442883102472033484137085266611666479391977344285291270792849921920806013546095447227365730137319933331729562017565357834471364947807681400402761545584110489570118656138080849678753641298452285585546264153280062172017144468939729477665942070979801591645183018967111183457395633061018248964760467775134168410824549076596293824910761494370272549872161083520517486599514271947856338210801022160630649048847755962904490611175666845027590839931189684962015744793320435365306006499088806204710165542737489467713976604176276369808527612769960979190009909130551359554789119636856464860730767544835784919651981763307874086551870522278111447645478131015150075368273971192365585676535213117075305694236115013968848918216934360284070397270240132338636799250559821166980848304714868862240895335144490063543746139856616365155852358665581526882988036135126235980764748398088589093034949594434461475933705071615311005466192243690066953644727302382819370909777677605887093627625295099566379463396369967456145684485910933064200907321292756694486194815646272800639961678974991833937198456919034721626411841917571267471247101149354558012081015879175991875445437622648055684739709914872161239161010307876362625432709233306358480228290900215265153250503356723326620685643998710258679745936083095963694334513475119054871215589648373121837818686157381208220468577254718746658118645754089189216164652636426602672497634223595515332237932153590882952161524190436308952052342745214095250361015568644469052926980582614173622477852448374599103147089473246228813777018764593457294419898056442382356969953649901787524824295861887003330049729747251822419895342201010935576972737969129725832338504353860232455736540211099795573018253892389015954394230159691987197326681244318935541259390382051077071841894675678722440773624295247090582477420702874621822320803169536050023316303728338758018671244790555968149710904211688870139721800383749484982775395933215273278965826930492531779292714832382620450137609507844235329947892949823904394163968118823414143327366207284638770691112864777152765852187953722224449222842235084653066379259775825870938501077186780195564874807397993299290407153966184284033860287802998346423534745697895971660567509097929726638599764820100774163399031177308157131642055978214825153911918288261558600148358473314349658434538665678156543364534666294598865431945986043657331429379504232923909463110898718740339321897284000474627840951571916349641159452864099586217410586610036225298792155968333283677137316899071634784081554900726779268038495390103453462365147612717695130907986671805982702923096055004832503205622341325547413380829257258891967299612699599260909530678133915674668873679694431971650048221933268240924719673794377032411861190921579203242566079332318766436387202118127568641330994263270668579277356783814396714568938848557518594086182064312608198498230791810272823398971010388585809729083973163755949880832592899258849963357857565039916734442682229267211674112984379061566375920187075166534968352221988865137484187093580754523812792045196317852606620146551936530060229383065327260608812332182740693520327051980496554168429257026420336734890794187227365507288263998312725333530419084905908303824136143993504383812905332886263977248387068008659822780644782505987074343356250537837595560763090634038606416218188732929716402501400728813614339241303018402350692976462401525971133005566960291462509107898258995925919498706257803358754987173374952980497846139354561030044155392397260861338091978985641725142340877005501343170196825505394281950428312561713907145859391422125425594124959110797368087980600636819144419077027015742211167987705781125940899629669985428261130028562547487778115238436389061522873076921499484313749113072701937577519980262594900965474599299260812375380183043833101372291442373878697437658895229896847017444486016870418399556574998967266167930089680897401211358233497646723315466181833162354694161791412851080883282445310331767498873063574536722858500105267324742513709685761001778376856709664457458406248614137869636211626438128526094154735717519460121183282897220482339161861504288108260123823730959037514147744394379714857362093004135364754077307219628683388614825995443033668322730379777754787311113320820294212101997127097037992650287806458390871192552181651003851504425980904006168779155094123205048457936343379757025418457889341151107143091262524906585787856241948910294990996490216861802293390886747171771693791716705304831163079716617116061046663316146551820430544197322930394035216080462252032496545470443500864106614610783786306456786798982898505677334318238727109949946363498431639159899737390466491020763861790563586702559295448494323890768489319298693238006788903288685537572595371744731830090498063757764954911719847581488932211661751369313827024633021432438783186812031206403310450880071109145337675953817413368585095497596549162194901074496720330432424668780848013366911861857756786063799006702400002465728666975543257706848275737674924616396545038368598545116174676094378680050567987799362721135405954942663623331852137188294932663934759052326758469472980635140024365847702737214248215665564347040799734777316495151481231371422754654833568577293444084455309439913084690433284973632577225346306990580693968346540373489267008958994527753043080428404772244557417170825702022389616329738905361252592741235044919372215562885451814890377593421943822195326720832757282790446265261146035660189329413377841814830581588023348166805557453733592205022620619515534172620735830206971786928808103254107581849100790249677205093239318987824296800454652351615467425596432470825368029278561248424625599359817056046228113127447589495767030793641621107571582065394412395851312601082564716839980958325894741831698768016717621524655218915087575977863683949448862846999984556986059303520995455098724242027378888893302178227685602734484843388787258150870616659574261502318434457545657958504906856380511988617926686091948493048448424214978533457941505859194695588925986017629975348223710736336899215375470987806352705354468938995425528860600384674105467926826739643564137036282976237151124121703768655228197970355807972112572798723794888697957682827413018495427349707643086422698103413928892079687762605256092424112003051251695052420490711311478325197971526598407854578175331685186046494895848903627924890986422189241714763570222836112962534279056366390977913081199501950252853762564326486883134227441404007660208216438810114568122552315430686312755147376562697272376706208331706884916792252841122930525405616549774834360741920436481610017227591308780266091677330674411499793445172804327633287455947401595296749827620397370327501080837542798363266447548017287012695404002350114231678817046967432933492519919260634798551415608230489350000628142344086741148224191413242740193034541564883280220082170227235294667413885164381978698270445374150123318693391297172184840361073312141862358284965776037819029216496083885408868006854365779525420981845134165608922745107814257729238444054686372746209280241850990819134599212241384118246437198268912291780139289577325511454561447059991509769955700806671499193757008184073999636914215438219925214147240271194626860882739237142030817048997029789862699079777728553752581605533137903922746562951123745554582064109966474391165429197273315856389526483039642494179913382765756376953951173589915469386827302579438385077175415070387000404965729267351636685991574582609617175097538999219785380051507145391259807905480407911878950365872414738530029495769067497482382605665926762511400741572845755811535700452184942529679624286010465241016978220013004701907446877053725951757027975325590167230955117514512738041596296965201203061513091989184743413224979424563340938502494851809178200243545093642816153168211160897064249192781998380023659767434022212079277718870327034827538212804772307476547569313630020202329521237518628034991956277017993319438584769079819773606630828638327143801820023840297775147444598396364106074204585531455548767153608648639380616750060284024699362650983679567048494550488678946915084610266533917676567069141638179593883577210997065504557055168207203683767477122829866306315467151816033514304197921526542806968116551249728352340495844849477048848611898370825270115072256835165245671561246435153359891190800320020985874480218892842477290205781810042705966427465606479722491028212339536374278733672164560322372318681220550551219440422759513619306687004538757679450500204386305182194969404650090721826479057511214347388569770396616437059739214571927369733097579820926545869262475303535086506069951606220881099218851452265300055199755724043228250520425032813750995353747202273234927348962325838285488834180585322474189198088936606917936587191653954729600414236536210975551011298093457196513101476348943217883476202612014456672284915780175978944649811189113263205124373117626192664124325889646315707407371328644147446376345011055287871007985405833444449317620224023047562723768985404435934077095971447219218004039980760580092935978586961907310844880734567613225870349356905759895042623825327823849603424832692041172022574862508620221546716796110756835325851980898202351053871450943956928662970782317489298018010424433410131187946828625993111399279769285698862563833936107711426525228416013393361445793773222903959282245475666866395756535760486360579692008618942500053183080228903890760752867133725657828804771293750592130867536908600521003340286750279635293162920260865931033324640036481782834183040869852241398940693964668111289319204265973838314865758793115398786526176189019494921151654226273212706273330258854833467856271375281598118539445332203280542324829358727477936779668326647508189095900527099574264620449352548291126451602045434886546477878165577406618229828141628054322253685972949286342682329402893927801569171901485063049339858089026938365341201732981748763466833591764022800658978710994355961121971572807465368485833015677941893248891459568138380679481305364561508607832655639095589478678171491606501653158939096054908474125889534019464799073678239208415204865337296569513313206128431067456381380387479727385537374422791584637346075482381733072672773797872172296356395513395785114244097253591403070497262691148888705968365744297060335803672711595336633791997059071694789061719112690949212360555973139796803146131434927797103429080499479811274807542704869447788123285806621390739919917232037634450698132608296839514745579457216479859895159209170430555758007928280509561805060947600145794182907225236472389177733965364527361981961735273815008432205203918154733103147155948336334951822571144527481290661453039763221112316238995552402378964250604384843859386998511934103239589400036399535762540460570974937995656118144288298719372932246675436697992843733162420308553658780562324902599046237241032499550724771925929076923865768449538857360504704248382041616220020020271665694723686497596389159363602255868356738666803344125736914367809355133438510756807799608953332072125580057386162323284343189282189166143803739655461590430206592761685068673654771418850800182255530285614996799450500210157348225182202089944352801438113527795682929658178019827031245780345545342696295709533100236294346126622101653781663813548374388141726808847443779525995789952128562373807554275870664506310198715798658685668757125528123821521058187520120460562184288200204604206824908342042499464783190820604604964318244267931436070722815056565547748771695777746640798387068806892762818907665789347197659527108141629882137652359080638899063636827876731539183473728993601760341109911889432686816435009362160342775901396917111511483300473863862451546158419026805107982361463860415824070963794616582534790539403262744816571679173685983762414560945579789225075817384218649533865064456287144813275200323644349848807537402292215565836810508826374560246673945432204464560571825160084808062341209669443928075242428911941773433159962217662216590012111737281869779313187828436140676361522865692954168033173789401096397492358594231044305225904090423579279922753460924863046022489778355520050476798542931155163794776710205025737337698406980250634304735958521867131216657449467307180685919201409948102726520925356986645811214139320645886720167997911671608394838676183040248179744064251938079807071120855708502028110876100595519244125774754572536163213838719412825678312251881675255402623418361288879848022864221406999455715246656413075526190491367842202178286241347105523273895166852267348097203037863173186039762782207592445017355545664689741592371841910189776989641971417545482163514519502274674145623455157566078492314181945665523888644994505717788312641168548854905562613683424960187028832646511357566649826714011826184597122595672729720843264202879315134493441884182464977713273554231860706391555947470567658603427524304834885055874559795169337225226683814547636695802362835155802186024003976207925874008966104857275006047437833009849894866518210929034356878491755234236487230436520317281348191275116994059686158951908622850263545584201123663378699519793198746849439693230600216248413361063419981335495273276956261884400763059459666168036375961522516989821565597831400650265349824693129299057094564498528566234457107450922560172303333184885691858662750008671514649733787075525708559379768998899562970534941960172293685370675167004517573230134472172213300475052873374514887640405326859299880012468264788289801212912230104225149657843157986800751217383622658384930028533027582237104339303144929983440165297252659764486966452724063785991238743373108563336591537432346809224400414159624383175223771658344953381325787961731671986163106039608328978682666385859638317634894574730518869965631150617959926107377513144960559604454631983941600414850204257612781783720104207035781347794811300716439013719990641562344362543888360482438441635048369121047187455954909019447519494160221426817670095215803520670168871369518238841605709620882939802732675542693477285240615790140534004867358274197500745035850811659977954946147614484696954603364093040837530542185992904357495672138281024134490043005682850056141030731529402958729942705357429220255262886260257561560803819017681857172284240254030524650340052283810471018154153933588884185401090944253511375748940867814937244903493764142731056157967081160943794615955366159027792208124909795638674289716572216054552117823200709362737794128305623712579246985173090017139813131620676280692816031247385149582706635207790012637571198738736752056987273141794286790203786969075121784033584111425992721218757515556907615504438839725668182037209395059052197812893229952651642844911574167916851597076603349200418462332243003867587033324406807801160128618053156145229177068751313773572761581649157252180670757557572845598861520817488667104280267299300444170532306650481413528638239401292672318920460148916660660425624731867076692912091488884213569913136937436279674106613548174453534001800101591899519871731614630939368958804426322281039497671172753423485744498455665625089429893851917460557971957897782357748584455710092748415234741491051018772265288806805796689092970727262116398766461751593350299934746517358264573554747491876039612981917049256840554123005109287895462808577271403220023753158944592258426995763784785415899560053393532628095913273428504842765460214812444117838976785186762522223333861797223312077684145125259322437292594811636050077171796648862250457564711713475133195284290344490959888529276282761975586200358245769337286517363553190947272883140967524981424132938485282863334350179790248104026530672833561544933004163309790456582634927676075722707193955703604531810399540483862273386351059709537026924106538568457859716253132728906061879098424855494581271992235733842689983217978280610049821365229601306608444998428589892028920318202041435416707211153528480893178861047863333476110965566157607406021824885107941797114308274108090323376757255155877935255373545285872440953452398368305920398624976896645182796240842111322774890181506068076838531323956997168258697181320155617201395725088778338062434111645646737668479041174557689693157584066741285454464820587813634643395619453495429348335883759719252533231878168267738978575788374542818780460814865829789740972074167730883720145834333273505467095650140592330745415046656914956617836507284450233763460644411087550341062105703941229410358924350946428417669732707045585899646250053766351308848190900522999490993083239199891933187467631469813951169345843443799579638722349618852628984968347178121095589217884057943675428415509501114059092898139489034453510570552295455584376591099198217634163952350452192061297290932962764220623970993016145713662096733867576281823678075220662987725286176143636069017735991059499430294833055812214528774555790523683790653656817761688073004192057540482719130500333204365242004501085694928566683276742239079937718741178199653411867762973292262658986767196133016874727367736564886297829760242051452056936692542545441531407774191335456192888172823570693236272796574456623361841921701794825490019628426506205504698985846372361856540455669309675099168125036805348492474414820132514505432621856051561592573124979818387684825533329668886488657204871731367079895318172436788618400820242731959307187436190347574156857681199041655145283485453168853649430538182313844950508293083082982016998881330390880387135107645634504735218203756070046999117383629289789729859549171927071649149258998450640471999851783318252413931444794613909090343601314278641374261140196803172314844151680050104154562292993460403889926887049060989776628072109610709418338996590207662486684769318689475448446307281793827971419645560111492834618368430562799951174838302416539734919335207011004957617848506111079237946048547822159391706012406001161004607622967375733026148433796957649224246009076625353506540288393729918263284244261728179369002084048324825270917494394050786575980405672118675667028719613702953680760910612258719671666835131819934426584499687992244176226188667919139341914077461163197833007586435674306852688797984678496548590676215518470732721062730376939808973799244956781959145719408023734689126226563554265535648257082877539393416323609803242899107285941480768300036093932447023097679133857083649963321032811087961255158747774674585893288967923571392305632430983137354499663416923517740681058193056784461548538172466253809213953488018939993702251119068187537690099822260772536927338390548922802887509858495486198701823865496365706855226392025905478975650443088235016828471493160532798272141137615559576374072759406386489640809073344947888504938616203967805217476263875677780866558008079922844762845946122906070752208197628340057348816454561786457814082406071889307766382911074582311140918268057858166038244447112918867081228678699742047430846819858902061379847734071864930219761684650208660144943685587098647755550141309425121971217225480924819534341139271198853799707934765490632379264424765119869857439732994359821325686599768899733580874762990789956524736546663415516043162195550847443568987030820981567600797015119024960382984527104861622814773121021197630122061764618900837649500140050455808316014589935310592596006259852538092325697842688370439306818361927042125043286061994985395624210651845119723142949758209951932763652911190176324041217983713709285563620643683530228451521831706438574125843399274218539621844757001143341249011861894397452918165755446357155696889540603525880107484698000914485305211112277945360011134440463693162750016362863579661118068090433598958028734902069341798402266899703046490082169208554947263600958083181773173766910225791877813840909508901068592847996205822126466590964836977092150328202892738305440565362426803733963227086185433828871666632176880218156073631725616868463459926369695220688795129489180109254105467521967891605849737355297863096533485416395073960785509226895124846660788314003031967867279324000950866651988151461405688317179202761516229599530778171629627374516030257520566186756460928554302829344622800775338625049614593941692254951381702564801885596459907088492624584439871850295004749996453535224745675273430015980754623860850441732086473165456666540356875418439018208708600447860805319342460763158597757592831525467593068484876502327991926513340623125027460819848904216530088937996652770035293108224975811087730443509030786158339412684645412784616093552360990471389931631702556176256475272612039764994340636994467120325888461376987173823222913381441092170127452101583895206345773064354432359283609389206317836006492288638898967938085665900064902156792146022165523314264529409759315954178462720363865126087638167436882257361046744987927458517638981524765715094279067512244323839247197973842895270156844978506836367284719899604337307963221418392789323525883827913938173388159549338982455731836683457554453112317953275210750043968161857780782064494311431174297399795967797417315320477175025376269953922966640043434434617578944435527203140331445323252929276700859673662458485435047684438886672861031404195235535931901959675903738785209093766781148546106154870187798698203002616511341494281100954828469359659116661595094827649693450431668458351175456850289502564882489992509583623432769246960400154446848879413148517437488709123407982581329235367716738439878168632872012752669148382433447561100504322182226561852099547484171526122692044271753162606152923963656624474812009070774459064456125789628429983016604698851344713829055222321304585391741311637380057908154139197925689782647726226038347248742339958854319166520860690612068841866352182334465010353324653912802645227136160336054065931937648380817264202348985780361848575989131005554862814891010444285749002416874548691111563094190930155950289449211774580755471901167005271510245286458010837582240699375916420022026972791021353573195329996441750374092813611816008118626004139897734307785558688905276248590676272062504482671084872783815177149347289286024077659440142300595315739558111380724577186216650724173137696264606624635928741183590189720532986466382356153851883689104903071776578761931916900513600640611027576214770617895038607038280361182805823314134964917471164065263129894401972133551946399984977127743164255624265857838455039305404476258050612595788274213917557996325981079468573778157063057963394093582058309209277316825509101818514344910554641636038015150192620772264684902707503156538718932503533580679247582857844981683952022851984341300299539961639121521998049124528333708195035022719052801278727972254811125555528679534130149055114658627233329127277784304544449286571783750476751975053536125685170522197786563388098696788423792700102930256775858534800980924793310274153353557754686458229516812990565318629728386645059001646726184513824489090859776722452818801488848621801059303512878785549637513943115241776225609798482686641279013482716278803478268304367987827708349534940036749822135846361825955499619448409784374535833907078806951993916054891790435769219203641798679754432283703754297802622402802870915001160426115233221859002984192139600052946966534459572481724503847267037387640802447424481647402701671368650275349362177464021909942225960931532367782400502001558365787752801159545342968515110817056438203573558323538259025737432938293108570615120748900693987738555655791469651000049306886673213145070507887329706934648071958011425111734862714382826641905779350240463882076555483585636819153804873834583652496863583422314486440467497619702449003660617998062920939753478986952367692202937070197472686424340007530697395773061402394697750276744362525523452392886128615675428555397197448351687739561011751338251341078479330520885630554955188797430573441387306770374750928136596866319578638059308767296616525181127175283342843408737855876937580716836519450257671910040663304844387650118807292057830751976237573728610279159735453853038287030929517441159562635246896264000231283290567704910427869810571448038827370547590200276019300149997427475899571622476664330034648277227403486329470595696264495829628507483001975977272329203737285146317496262267626769607467435976220917288809908930470717947031633388660657887896421739594138320318313070735423551790959190303261369772329176399196400615143036844198992933086247288369612463414982439996653014905088181847775966871018829088317035624560823660487257337092570450076307662710233888948610363893454957116476118398400956783876964338723417860425143699381493028188071647942804195425578438050766572570786979286294571433455634031594059344184194929427055411291661226772055984013991879273960921707498784420986354683827441751320036047015313464194833433452982760543440989704572370285681207638168360130479895993941417156205728792505738370567931034338202270034029661120373932839505588702787186078094820286370378830516043673854993677125512240330137820504478400749519197593937601136904263435832528105039010741187299133599210139172203291379080714885341883624327008445824463956792591582628528807478870491935826585592019101794501432756426795394163523458292038957929228883346584033195385629914073875337735402172126590092267009817961390920907314109381166296334673176881884505748998315599752489310412195393876862283396196779102675760897344835025950940701376086095005780144275444044621713912507152856444230018035567831607219202049535022694371747678159534216181470556249974658536990623396403099194306915105135889314815660286128516922451150519193334665030473159815057675939391258451676652561134209369625595540138233098020757057009266882148174324759046580965349192460128205060368812701595443287753620241681440032247832413703818428500732444341468950744980580231471420233409265711223930060276452453517468517573621890406458033862624991483026413289250784024513746697116753772667020872860142383302512006786266063665678723624528908507486261768664710220196597501401613235341782666760566829647222629038467338049105435425040271098508386523753151201122485707642118250606218332618177069673337423956528420899674304546001461480452698806930139536131311007526797064689812554595769564289870180737471174624635762278383213148081589437038934304057587898682558930797214435716118107480126463177599120375070877005456577448435787988108650852108428156580739248133285019512193389943589534741794247560493281164998059455908649076973304901368734859539954548450048532868662482333615833680395777039186443256518225076152823244059372480217223338009795120177648945633195711112131953666528765700137025119684968022859832480330576611553590907615068736674569021212519371862550402629221214318052276693375722744755936026066389479727934664479587745956927995234982852971741129831513794454174187754986469978154417712729936567995497101907486963622953399600775916938688051555243429032028184218055430321579391783361630587711851496424625082932585815444648805863210598666198869067372247500451086704810576587412142190226185638453765872130775415698195753059790984504337760920032651645134412289635071208060231192270709569222115999116074119963293656102705705010433006671305018028958025840099960718714069462066758094259981617279388262524515677236385435862427586359804219123963650713791516902121245030441530647744017506296845913245234093578226759841110203755056659545648647654398123216128390210872017613068675661033261712521661259762127977507288034990626292903461909983010182428614711251402471884887158783824857666039304706177493759709632513608150712972938552494263858142248780458145093375252296630084420925417342711859963167636340859805833846710181369922829875168435579366415257355557208954209959090909977651423842693871004937896292047759432657059164768674530087427277097828418997983559500764154076950296846898591656836988985898090012328108193166374589763676966326559161593153952515117050148604428553757019430325377376678758669540156799420037485285989444635574604619207466623450393187412155676520914618770143221034658466091623479185137593118962468995826082872427096441509506880887013126761033668065082057325929197683155280950709871116976513621225756600929237075484675797394300696106728414983066573891084873601856139930043696240385378892106627690595005596596721587955632683066724925919318509677511913028317731423411128131402468783879822175369023621364404535754083928550373060132416283035990160618836670826036417354429795854755421232407733450306202022392086741350520003582126169023166831599199131171142226980851389451649693154187245459026334602319170432036280224653152778934437520566603301575814321754433759448470873064305585929025995400317254744433682562885193445050098066141617860807510007168381909525840035909193847203602202136254712836814089375074616607539910960033562762672296656787939329838951572190504478417934069935924867065072938453746536156810703246399287611472777135733051557050578998279688787621538224309625504062808123371160063357940841253183252767623848840441006509964428501907425511688060121020574342484705264916740724194196836227708132092211496316699040027321258375964864295394886536048070304038482714167792706667779651192651187912223336402052950271958861242605167450705169745580258048433824740139529211722236698844888340842256460579943706067739088687822068913384525287232322565176643991875452343491548332918087488895493238075479095463332744051002649610624459084386159985046295624091660328797383405428006727404768488100463096206879737541352864212473505007863660486542460390075823782183847653059872264027191410334564933884189466177785637477505881415262849600039795825813282376679898093890847993877785716647878819668539255055891795213605015434354651476941191833463737211172035177500665439601096644192029661157315921883672368778747259715382322233689914746213401608039519058594290309186546055591147922378072051345750173994510822182152524074032724739835552617580284997854465354078148319836884924677298000156443713197772823426713176764851351367503646612822994214584835583322499978530957092856422633722287385179925610934842069739310250354760633130379575766134279715362325496370586665840613967346802610351126375243437523737835808349988759937393071412231613230839320204685726694525271082242628958607770348600763077619879915958035551698424915615241953432806294797909680226390617656750037989825001775734825825839044819199244054952132012183132212941797977604349753810376128120712060704071107544423995596835271531246211209806805097327210378227078384580957919314774855141434442671690997717420615854446502495307946187657121418055399884250863617829244914257111518608299275649104491228800096566334553174246606621766659227121234833049307641270521184455978373687053549892751030636370394642207655925805497327740321012292828066329271609918996726665750632222224501480871999282013664085589700736577855544707473294124825222498092977078652162210450867781282826032166346289837099750046974856066528351511603749263012110464776490635222596823050055209082198205286945534897429462802903260963240109948344143807763780316217952752886659647823348630909832653906814039857714899945123811342854103782273291834498301672933768676352008474902471147030032903005371747865477296335777180114388530732319489641905277920860095929305179629707836716095007294428968848378908241482307222641535898434773153050498094348198063991281249046535259909303529448897083505255235222945131965483742468365097161162398261923163745986140531085653182954201770427769832751017681587087967862313436211997688912460411374209377031223635061626925391843256032228744975047763587723086326504831061604712276727103868706875757956460857703454544366619622625272160833858555096880204429717354207878107156825369876532222163672457045365268350464514598740079186732291968911352713071924209989513346325984817858920603972726674832536529075484600362548994077809923619711200958673234692622880878921594961983832037995139838456580943471356607607109269431969392053157903396180164754159599338711418975293260869017062359591920210264816544428509298748283657776594164949699129546004588030155140067058526250350171234157730222081374437026966201712739863365658875097128159834360400241640674191676980660912679229199940137965357877022962993930124202051626111499478228145904660285971314616865073473527230927946381810895742134909985118208263743288969595895939257913553071796124948329939809095336836157873529936338068163627626476398388305634750572996656756733972668486614119394862570265335828826697859224156742983624328473801141674801414536923828662891920958450504448393038645219061950766327086983290485799960371297718103831302197020970814890209962878577214034200749004720262670915601434555397465129843379555234120612802067328175454045485688532164594444544619649813209255442493044037732830449908158160552374850769593631691367392432507381519045401891930357779318641196145867882903880478563724585372463666925740465617204903275436178394927682107811482708280223492127814135596286771491963272821239681944015560880278941241808156334830432141490829027830408037092748298284271526200476929501315611019079585285336990205436991454838965936204556196985114657647606561586691038628141875169942275776687002094551506345760478713921193183940488272557385785911579510896271507543271566478136791548313162968560389048672491452557311519068646129635799873945910376983720056087613540370218035870027203533800557427638452545847275972654876909238142703856462609208857245934785892174182595123598242253549710371955082047987337365942482655117834108703965032988110755094291599571670799349845228784093721772478113895138262405497664366166786290564315919352818184558080720755275949897087701993301365688254068920584198148017009492403360271093527992496721801810505351026046239106898725787521182052318989830802927781341824977385131315167585972920062619228724549524133315980829657391258212240906623564860574252257695034116443006269316086037314146427210999667842040425535748741062275196709510920790876723832025321434895687715238132749991789223573368410178964508489636380971775709103908097650725957206955188220887150781794469415437375114187475390218004778478702304538583042839479402008938870507910106375865287263910839504468363904414250514234370190740331252046967429812996193412246549457430195196569948929836788113481423141540120689282528371704717621387786979876122230143461357247243387010943465977847686565811501214312758499858425517591642214422606479590092165309563761527986862760084039211813401969700688434832923309204778282488755958924819317301689657199106080174466937803169366553772221983120133124649768738638048329990043830286252033691299810144048716507970611308970371777717258193134745219509320462029497929607539234970073846630856812112841038508261475767472732178553530340882635117826268710670980161170641848545934327047868702180172608133180364574824596925298278760734492387545168505803082614155902683760611730840603637762190713397494325370504168502703494247138570088007782833963769338240425928310386050948585640927844662421816813237419170329850788787309193608477935131009254728979726186194438163359066123746540312775833374980784017181442246614030304384187349029312604700934741387694515187461049916747098948489261586821817644986569560047768969883843146447693031783127859388145885704608632932527485100777149168373850755154985061554235274818817015149600268307382882118642817089034172368292828630746207940251633251259161699155582531941406601065718384265744838411964770311753255431718018662922079220912899639207839611849392929120267082482672172789264628982470378148844470546461129927148759765657051277849896255619253599717118056745091939741021625731936825819572539384033346403986066780669191441695796485625813924596438151632280511718311801269015133249467151314115266990224586201593910748774157422697236188806399800722233623300867781387970116418930384179272519560076322644968067737635003918281028161225631347750999859852531520330141931169833601684293796301329932454788186128931674805921038360404469846625466636529154154006697727954112063635902704583908637980692096940015533320329755701549142869432200266314006000444349758336544568669282465295442204547242754121511724376694324726097962407079970481523670606587921429662138267753454188721962099209815921392059021968756089070279243464677106314940096539148189128693133927335628477435804904416225103143652054332821367095072086329376881745470528689428062509912839562012320061819538792503171304575247053120387312250894262435890852386199523506571608100702914323974607028134055885229923430826611360411992730166084223100037859435850710528333395456825614616365214692395729644181273882877868819765107121949518167164210716800307136234235803581859912010351468209093796292298394542718764211783440384425243239670947887118674080121339257028392873187771856397561465027940684750661348946964828709184447686840326147246058958094939085857443101521294112235679723432062564277558665174609804589220123730305488219537898825522619843382264489599793795800792507438979643082304709196562487055388725073252431073194984509701152253862269091834741869845136235789232493337440723741846813402220443746164606948711602121293189528037572672912791717457216173452896950960034241619492205022813891209226461745137204133819969686595253723360333061298320964765906358150633685963076444390800957931575846001508301877209043585220059452105656312618705044834294460646644240385357582152692828003866548745016142041148032755512510188333015583169276343171153751304080443583515029256133671773971175254629015020349642515190195242622492460552424357361673314969275840290047230825160928847210612940515264444968232313337667594780712164262996357204243073022217192892553938322249256888004056136615658454507813211900982321217862331558610772042747744138651689479734588953760923699393022622393500892549268003376007084310651583785535887044060356715999273379410967909679828503229323580398499091771453432165835603724628879398024702853401280022664606420450443325512992894932285674537191859612753167228441322571969846793509499225526272009732927419338432868732294184852528303149627676415671119687583760194806320104065395241249000792280279520451056252421489954413797265917116160633113847949621577121737085363033188545100485212412238871827967696906373882057055887152345432455225386164039007398676563804233244146287095879197684938927101538218480412025455220204023061327311210422380404760310870165194015771478766942061903156819155242784519116411770587187781580927138281816106953266901016768238399478873907006580384115225496900250771010514726052253439107358529251350851922328511798018375983801233738873022716473693141292818161429169428697963428133960695663063482499839317518029827990052029351027991456630863642583823240742790081482034452744080511411551473816579486882978537689641580928858822714448803079160774140332643383884059919869702700284220582480288308793577300694874297457866490687003975912574568653448830501816146075371915527823227006977962864422582978003781576086876213734966816110584677858438252552137988598641830080566162924862313598177935263886693341061897256368246948357963727773318518113203894063683546638664174277931863664729957993803131898646097773482985161912014815168847643896517728074791399907476551420603550973340919412848234766744962795663511398650928280638368739565759853826004648471554270624462765705923402473087154714014959029072705405862126051803624331398097894802657325741801621492879393677033637175427813186677309873852943100870754612143445302090619742023925832747248134215763749740978667205484797301132164954145220440749224694473923954091089898216057328510189870464225275593170116375178837931333631791655408751958919898322401613193037255753937746731343311993953140424525749716847769702831860004454725761137920479987018131555722146976503110382079249158095603101602340856332446778595949323900107835197087918529148418696102159738805114517715118017454950206710161189533639477210026471522223231506014368308524570131329752290261406094931401315723824722990844886401502146592682326611668399802095094830041530037569178757448462492191168957555709703652831622416186428111385004089514870308213546583540081248154623438581663051127033314357316827575052404517347381492556111999633294472864112491330068052962970494980781585307165907360109822594440491996325374990509548241011177409607019752451956078458928056312018665629244849512324038186312752182540912707947711131254420931874404758365074199398203810570760238980227708495470940401856484823178201613071604546293398048046962024894300520704835586537752064017486894916207645802415596113710740043095003188754933287889719016073728557444638757372192634961982756595277285199932370595830010657141275906938736661105751483309318193327599202543946274886195948853494419159737860016458240340957407882348998355865408386108490648114635674900170550070808888402903015660627775642021102049864632633663251830329588386631941853064655855230360782804339306259811027949366846870632196445859719605181126283143854123704587014621543038350320089516300288688142180915328295301168120687471074901854929117759037299015061826354074302924673983257426464243799464399756037605429492600201653520291685771078116862148740597140803738643880319930202771669715293429057352193277413816977326887244379987995541723071944532476978794750833195950979437908829456305723221121053963782011334970992338275729205751300582761229624802564075999176084437641005519302559132590559773900949426964449207408079357904977948612584495648674431308114286310650651640141368437433277883527246920424321961968527838593337062169170367481833282617595996250380056892690303091621973357848986830498796041966995762982216491252740451550110434884969956489005000450006197468337817538139164076713193942578260022316454758623660632291330596263668781530915605195314939314462355092045311725250254640834988978739652226220038014931241596332732750732518582573347936626558958712095580303024616537715638091741543559414693953898547266223710136956642515762572300718462872430825844173090319528860487538896576382006487928391484138075718776852513172276978859959836083114148233347386705024517635962875547455134325641675752190753206169757283052745836512576874100511644109412603838607627549840294025282200828475423114285644356515412785790978897050410988325742601891697951157905499599192891018299731115826200951444130735890992486305783025698471679783327275172212391677725830654932414447065666491544694225144858527958685560211455454102193043970926352820329106244195160643355798590854988174626650093891417797555109244937203302709781578368351707567433495406888055221553187723027652316812704560288988537632000336389590755881133923634587962931150434954571615708723498416667571822501989854522450955195316789262031525044759300222504654491132151346613165646654664948294837685636315782524456346798468717358091352800083625018339330427532563977428192002838481112527067425525950505323691164961599649641906106057014812873509607185012793296859346179658499620188709336798673239521159293180672194439380759787362351921847709366823984837738031548903638951221326946841055867811571532551262086405959471994454186516784740532218622416886228846478120713979286477830365191747049010390104953048318568630748644679428607326679223027190783041406671117859345748467066733763460479589182672097106124389784514353862171301952406356701929731153763995266008313299160032474597432561399771008428508542583206872673574184661615159190114247783464401009278904988675357007804556886805416464182009705086357441139082811596577844535115606670351559597426456903829893702393545384784219563150210101768375183682316110479348208816763661522144716433410986785733770464938134252675617878454596068208496749803317042781122223151148896832899000223941259617614639341933630442310184826418456487002914008737158022410868183836519120991794686467050261477575167186310560529650598322505206925364995856372553575702232379380464959368640690718268737929975770193737828689843739361480854638073859983137765375426338830694458744739794302414834765783228231623483327207184528180591156580187652935794903162509638466300768054327117899172615077120103045315581127023181604976997654721953578644411121551621187838804249447920994848864077414163112598573775501432781365958881287272628313883410597468834755054187204153598620059056809416553691274415830412440118147740551680575027750745541946896783639716734342330324347143914612645646060304925622681251767950404773709340435058850978274675596901045414519284647238174297012836750243532538712519018208562455160357635635214978671508024448277267275225896642570337190150799734677610665451501921601706047143894368437084133425945097123839594242383482655396483012012039761723901777846694808541566158350799143061781620312375548569814141360196087511053081420487251445311111172777255149653364137570883819175999223665068122780667992685691067354234013581729291988038493315750396706236553935296961745475779294021850248618228518694557662442759646571184129085852139165599453807356698170883424690395151903815756643116807835359729654720811843205975100997947580892250729171927196834755779517804257631812213924250333998144498026186633828533391998374893499733688521231137754760112421667608815137073612478359362837905477084854920524883291618699013997183838771457912854637037890505852457726721864916228176844932294297014871776258427342756875026895795037646729292086425277210456424247760190720938758645245531490336601109185694597319435005036095053750818576613170838167472138090482360610341692577155582420126202567311780240369399344987877416879786277796685938356363273304092952109633845534240147973903343518706343662677416177123846725985939859037410686628113826288052509531955757317988137760691811862000434621041738074945145064067947675243350010785860039634666145143676994176194630416864727476262792956147778750357685299052931439820215220674938754538334382752272738457769015153415406433385718841151539924330206049940390108589689122107142918780090270853363273662589810974302350638727229240755013108660105600228619331966701383980348248648958503215942821478606591844109568910780606147521504774360737779984860001966919233149040115909462956923287215760940157527568440261857388044245913438049260340558513761038045522982328569697454666767795637385733858538778455488295428499777232051846869069959243251588311511509687779058107342418245828860678740003329587894818902829328046239198035594183820762560164344723644329616253987547657094439302850869238764960198372076249040457757408583961078132045241449846377678133165099239781933914045125099214620787613538118766232270103534017347185792078578579042347765679436631626126622054778197754080490319103832869255072306708611390406171680075480192305824457710553983686356670344525637159576890516600713069578750698081142607008243670959915024538167893436486086614382256097227977263184439672772483664351818145189907989436053155909041255891009876707506521108419429533597391169938446982707139658099868555188598534117999019273297897934464224631777107013252375531747417042354426080153775387047399502185569671048830566370174954835703107334122684919072032802054912099064677426327866756812959369306505462306847312176490012823308477300137010479223191963503393702171032323568051633599732331803858766498009390811520905030020332826956907411974170688211292833343988348161693329155143609061088491782364459394913627571457681167107255497691822201646045068486279824653748059331021901992799507949542394307479873920573337044514612658064799936168601434062574709587000738159671371401848958623378448049720331139519151417635475530284210279209059829708343396053434969954559222025883351800269425911344636002835330183721219352739095616017754807624810061439492521030151895334544880822860597608795942787773505623356623083549532310613594597793915435867342721882372459669860039098325075904397196537752660362958183185109372603709116707399653191147668442781636941946955125456650938578697826607173120615700506220603874732955353977199142217865142643657650588406754504681799385320504871470275665285135365332547899656580270671371365417779589365846637561466179326094130351603956946840546894350368522081499447708634557765333247627728224967781131241781514791683570330896161182509166110798317045082585773745860812016207067171363080072163944153256453410468316093289005824622681053297009946671717262050584259992597321257935185257964813040389496159540830203536555943944150083068642575041446519266708527467367862661243462376975133630258102704290953779297693097166099493962600710625296921780688086191302844648141411687277510001860587055691915222902091976111294168342212868335645212310817443680837341228682190101614625362149962916553353299939783768535304111766108614186980496151975862348228287972993499579519575252768302811907020446851511518806552124270352081238274914093706567994508258724216788982621696354348102477543280694671106614872244683219965613863412302824572582829330950498535753202417352112202716640614615698495191362874693876009813413598979368848346524367368737755688147956349137230402052705126272978991075405794998724645404213682125721272878077069880814059960211542207927703476264938075787153858140747109645397798343978892439210139107282598300225123601038735285080370240637549598890230003652699362800181452358784805434835219371112045109277222918248521062514796311426584296326949173861486715177201221938722695844288166774876616049461491003474245721920135452090904735546682147364580434677745769067340605743258005380724860890976525422530532645917251995163823128897652113182030419551693084377235709511566261926798828146424264888726667818182837567052845990140887755585822998037256238744972634801494815013594118712986848333867536376736545013600514332466160639526591334642268220841971559555063697461812585053979068527314628080070740007925499306342414291256925647712862204782462415156494636807652910172768587470431786529806004122268117495544823936814252665746997216288166687914033928929787843785268255958505914061015090851998928282983847577534501921588529277243359324909868501513294730141523161710523815935846504394603544039866250285129287256318476404112727899198169229385632918207270447265161763300533669099866314676158795007387513941124771555453571569719336828307931103303285337717349804297881623326319584217067296356506385404508202697608526537577129074263855787667514731058757035652738274799908868028654878760569836144236367533209177893768633868096930494178357004578326732301525719613897923540476512347683074786389417410979416728736157917071507905733399662892403307814442442237006661054643340481244214011867465713633554336924981259283858337527206615312241687167725929263494998947358962610990949462498299963169232795799555763977764862346310456199450486572877729133480819463325249084266782952498191627039866402432149763982133776741693343428320847762270044266113399080852658518087335902746004726185223302248854749879226951202178668824291326404501855867839490259461646815704984673034841453895381921799643312544568567290792393223150071757291039042788216105347748479421354893553119651937068431089550906873499436224081573560620803260100196518004737182949664978493068944469518262775227017583495720404281135008579594676661356173889725018706925349721195383109074966779170601060033584318719111850099976710217579568571395926092165546175264988602994387285354606498090550559730578163327686385333383671559239132471800628309326145881860162896481651553051625187332066709713288902747433274825592016413986564402882413399525502074509857392738523136971692494677682354826665830992417981786020494819861460168890920977156638939292238405949537816433000624230147006338613379264315644773708435093406799925399397077814882614518849271530655571563266804051732427671760797260173625774821877868854474161222453202855260995970473568024258116350894674743943448583657185282307861626911532271406395531994873473630636875184077238989058618203743133829539712761596217903765025428499010158474402124647184277366368056112109598679217256401721660914540141470602331090073249114216842995776262699922942570956694160989898989486934726683627791911368222380730278857436444497279128643663830880530964780882650320691063476675812116766873919641248740742098254007539486801797298916439467966637729015010118315169405683853458390882435618195826060530087415928042057901037013156995003579533275549268869377971254883833369746363537369943949306394135738274043583280962735178547465393802558753592661599281513086060682827490569098265918073501105571821330645553811714195139562249608171188634484500212855166271897421280834876643821670542732562409356481973698596242739170131768141956562836864504714265843679093750673623124258234565999503386233514851206192674650819888351452520952039632654385601821134059042995999651700523771649515463906706703025261689639644503431034151248258407855404479423937924140810194598397714655207565190209902148524072384071287670918751610682810358485820276527616171433047361460121898358508615002897871835942859733731975612979204641769312468688246945804641857382549796512153913169936327479472159892023191403169228572962484038211479716098328922948643242386774394664678020824097529114301566207120491631387600478327830587795278983848773575858609445203950207329421916175546250685782012046364696376292578504445792381802232546695371621054127338688206165443644588961348184027831146738206028512941854006575552719310149428051213254010639452261694762746419242969990398023851089070006114525101035859083821255461485483989567482608882133782613477280890092613789485417918869388844651753392747104984511073575689629125618496999658403509388493957659929523203740069978083349032947218222447360358130302139538105202113403690266840345091113136651284682635211642692739034315629450332686958402084050137869912585594988915610741735541160518186627455090707711483504026363130778165239160528823756591643540878868344557389491888084079891215399745423111803715382462137793046996432097079129539252196675565539291340809570738852542064126878637215316917909406632317143664918735577766797818558456720525602736030464370559772562181414734401946050150628970218368265656817408628057796986749288741081448385988645528291531749029998903481251343042619342450240097778433792528334762490487894520586728652045325271568912599323578721746032810782031324479226796845302427268284575419808427772780525119761957857743218216124490967280153001466668218385890679377863720304468742646724055042476380806501344171129788924146890132561262669612980128941568688542806909848148878467478135170348184005972415265950423785745216198661900010792200615385986290213466516042651724352156018856386551400623562901511297014640540828910069637161036055069559784076472217095164442749183113540167657419159916531293185028527644444465827823096776496352322691227329676684834335684536594125247656900002278982838265046055445636834483479662376898438039477271503309548230602919205666328514659698775752293474034383280331802608094963285748169481953764537063356835129224028898423767296315337523139445604082060946334438060095112875265464498802837948856253058294992182064802504572392598459556908289280524103795057340060892020111033063509143015187412840602804051993163732725486213974734318148364823539429961887889656451211826969007427586757547449001018652217906283342727356813058625883319203688640353772071089238503848827729323871318444829072843005725369820361269046681957910703251325512206168259391136520168012484974711025445245198881200000643195649803396436192822098606648993219604053958199471899789853899578364890160112836669144948057983176863453542780346911799374405106616376597475151961553523155759623779715318016293603181028548799458767066100154170451705159927559656974954416622265145051773123595949581856818145732098138260253445946667855504025400033232133779301648477637022022493402969590344210088632530928875738094398726101472901163237338998874432295454648320804386519140151300730463678462335838463004444300965181959369245445780584773454737294066687494043830260267463651314033662507591263664247813449198133099596554173538136193376426959745628053640940152246939135165978138261452529263997888392045575085210140918282618026615817847267693412114950105030432780453664530269475669654102371658055749242721310588934462124306678639270227104575057443282179525853715317396939032535987562961428876349290536507749454867450671293361806000113683066559848293519268138376997982336702209494457578521650120240580030517540674836183360069149982215682462719267962416445141635393152884261738068038962346793502406412726119053710878471097371134797203454949821901089309857323141217061156571700022046046558749564939122050595451192081967049021605741802681162168417814194677778247359454236097500647620773754010310892917879163069238987812725757885720220641076887787350137501862766173479717208849244287817703968204599870010125798209026736838851887688391453835609701038798184501719898968699089187016880396662615748643322789261219595654440464205905255120781212239264986565493057069356909177914721526429058120716657477762710418912255340316010736267071462025535032373807027970510678764607436548858437597285409037856819493430516974729632317108600294419616605404176810937945409646041525734789035884327774756425501511848371530560246602880786032944343960080797987583543500240762953414646780492366596760797985930281217159386451833584315290753870458454863869765340475371416176554325575133762663261833067239940314384440881982802288893594044831314862428906177651105085564916065307689830935946407837045940507281539189633530698750964395290859043149932471703372672959206579420036638942478633852927556231523243566336612220818337834961816654273279648646568965829693368883131497562213305775697716563315381299843978370434376990750016379141068766668163208723422421840439973124284646330348394858640201496134811908786081176113320019852182341556056105737196802730455916259523589824106390058094356338603273540977696584024196136946082388752956837403303421950186655613150843177283978221081447184554150337727507036970568166919111252843920566261069148241937437057611277089196443899678213168119712779889066600808868774901027348550143867442633905495220257120337960489004104798397081467231369386275198935819681903263137262321020088094112125304724179224149696376604889144128439378671278002465685166843899625050027971513701902334602458197923131662625516904122133774906451673970084877321637061657967622081631141384229213827191271978536279308736213454956575395122768920495688133896564401940169908024881669267626197997037484844238016565358671368412821340975874026498248473957046548269822938858422018752326560877033673526181732420842296821947394989843072690606138096203990634297826076591737254891105546666880461238483915839883122780375331119893427075531719094893619190636632934624709300372976151420044331036113158161660567168929165227494944464834106459707871388455557635978731451086547723584434409737559235671213357663807359051545898392333171461507459757166308716337847985929451994821295101467120726486334564415075065557411179879042465452120610894867746335604223952685613911945295874666550094452180039458026572665372129288391238730153805075210572360774543415781678456424404993407963052388398173584898303792521198555435368308401609161652334600448615803375808091052120349424924687848412226642630142460263252109265226850629872823678915613542099247507057779708847252639508036675057283431280038678887737263364328011582529904783748227144571179515163620172222510313732287869384510062106035066316808085726178863162368672634105197000038002909756171463120275383475951569375543763905614752085330154160479844313334519806857521361708717838146912970480566201740404499192115607580973581249006114915572886070925971665183667891296581941088254765309339610539369143386809469062526915340871121167964396384480394871172727135729439834776996109693046056869822496943558254819805141808909646631271244753819492041487843683030761688806188718420125417256524135217885002069811513011513844957894695482695849231849352025966162956621134862370513904958107073531188541553101347997984030703995772836913624286643215031456400442313666351129245481731604218467504010449972762823818564357708573793937476260394882720854147490742624502866502286512614655830791276526524513799634465563108252966087059355438013234480592150430653696912211576335648970908482818154299753574733098028929775324170403412194801241690307924518074842563452683282651480873620165533054915149803541221436787847145819112963325148231907001406428970065097632849751043386613030025982841759211147840750818550692525408112076778904720845283720343346397195601198527553261128110061800664154308379780195587737811869361617992245782295555601006640513235929695086599667114134357010281733733549852278816938620060525943746451515212032777283644814718685349538126390022378995127777560219393320391529253024078945894703653282159950049126067258714350544022800234973985487576247566712826886106748715274938078240498131680433291517824244107302393329146862454944408326606405286474803927911187778930345018852092820447045037064032582876915983415587501731436083281815714237429184140456835206579876097200512189512213927693630307916062760216439476156040245832107713287268991950282835911502122576842946640140330973100666708568716099409469747572913839123972406877122427090540705300941921601600498790217370083913455434746315493579137191238562117668113825006106059927489338613795267961048707863045476162881205628994753227364237463409093823108468499504408208051178590620180895083074414633828829933265282367069224243050138132130071775510649192929857342212722017269673887481038875282606203965209402471979059260330860397166927160902658219924834881714345523930411039367869966202717549128403443037029132053603485526027001119497607517616716278181919334847659327649071363590979523613672808878766377902390634623404601491798109794239874276551548812283236278911023491803996142384601470848434665411753219782320873367424060302177736667668620177043280443841854355824745777361875553822709944439692366256300033640451109756662265944304707802282300676580641014078401817491601604419849832151134138172268012617337447503184153558218149050581126428682209868545048759181643969793047592346050920512692926494379447231613288515289255965976436625732480094804177018271902361110523277067004377340931854346134776501456935748902162478647772731653615050187400293032092270458375723142319602473871305357319265819468680820449989545565916596084524956812067241331470533690140785843745196457356574401562207460035576843435178284869028100725694747438359430349777487711513958822478063794939126611142639894572301595829942746505505224897642126411548590162870356506009087632281716187898561425647426083359941886796853653583936040412926278123582661525482975183875140772693871371918561908485093526128075356043279352145328771126836587329638256255569457827487184154996369216138868550120186645883343740219130312722704691892758033782083961436330694407200406153700924774813082233002323182215638667655107452184358687712336078597619669743578817293483587737994103193304084844257223526310271343068587428556821551347616155994650288181701491578572534168088243727018018422928447751635378447808596249936164284163011379930193007081667496311885611740940518887207481227216332904685649237412688535002472502954861486840542937205898124313471636635449982193041429734727817396483770900346018722487095339209996872614142510524112984242985964654919122822391783435227631077912566902263651755136884880326685273185997422516374989010685407020285460830634377136791612140024474149095680461919448245622571579978598075019865941076076601828429227742024392137839194977152742721461121224452246783811122335993955374198736747200842960405183227351254704058179052306149149924571593737151659591250814026657296232505721276304128336583631129481801303549214520354753206217785369206978776437327565833455541463945670078175474064417172994696951905917467846451919268226136776664990732054635245879347750929924035535201516094553916800745404142175355763672067285983936267367385698735269247920578312815970716608329384560582169954879335636469587841917633512763726719775704483956425040112470975778075062831932269983234765029567433521439907584674622969802038039104943423168744104632414927182480398931698037673296495158898557421057469847519426115536331135572294605991107080952101996403685722408257757993548437789864096643902592557097565339883805600603700734397199604364250731231880113331188318880585218548612826501322298861006701241328799119459930095364606718769382368148402155398580569068898315595275980534541109657004897342989235943094969948388620161242653435611864784371698306354167801547353725378529326981454761304358895869919172075552832516341890416146778426655757157566653137950725804981122107688498912576079004097253001956178968792850505235655377102960141841443645625982532289789055914234621493941564386619793912423410667861057213444956337819460232755185894241946784311803686196028376195239219072358553642940117101834173344583656767677624054017493475602688994592537702301935656660115974949600849527129827607813501584038703654619619361230102388068288143952685761291463250215833010781154485913083347301429571696192366441855888227972988513032499469252264262158537566796054336517251836238827286436671626909277525144625310544815043058458367812242356117478745791491767672361421051149367223917934918493318141473758066684912328284323837358972052290404507865523002884793999156191167646300932683009074354463534366461431408790609201272982830879347224475848382174179695176922546717338425258799732127103502897926907501442207640895773027782519235953230101056873170446282776012249496108717648453723941598703119317768551917174837804565268626876872114919156590166667718842516099837807508902073659333347472248089018103415922344537950731777088308844748797389800453151339684768954329913475152766941009409267732642052612966451658278772475332889368658820494057620451905091939433471021731393747416562835702159402503910222820119971494645059357160929297430881020033415841158090413027526942787668444680044229421143906108101144331573218414193082004530929426004309527202580350560626806939220946008352829796011301512537995045377292985436780269805054294061580315829814335232901651430484194508030847454009902039102156160964685578238104272324449931524868500706537117496575891801238911687427323059911885409640265852523740791714334863046081511020967807293267185874810367621718100804439504466177291341342643647402110940062896662683470353801219784213659329617718764633069526457525746803636870446120476793606689654286244881653062771406883972884806160960742490393427238826126201388681543402471839298926791689871219978343602808224066266130403191435139874474877208749865639929233874555395428625607881307443726104610017487644339049777991423138010110290609807298447876440552927536031232805246822558664541941947104233819742349487029352263337535218749735488372196026870233638137614825614623887129306486416215173061734654876719271489585875327000746002160346726561962895685344636124528691743198548077550380383049350353279038335914627642642863506044582532196844806987606411798537745823406528012730761210984159481562744695599914099681610609558082207224823266508302623939988777622378738624013646718755193514576430219888948320473436067720978555780439042255788913412548333641254144616426967960747125164737612910806435081939798431645241068691431002563222612616212290147645098752176025371744156169602617582644507242697554812980606536904815326948097125212370141903846819932342489085787194033111985163349885775504307116893875722348242344478314719783752025427801724135938399162988478253639704975937948440572726581704511043184374993783127760678639634254500628336128095254786744035181183286766100139926286466397600009198708825017535376362867526637540557141806841080288203252693668316312632508568868242646113257602287226705422478421438993657978084147428661986916747367636334354086706398032811888889152266107710817857809555918461305168435183123452593414584944752686654366065564503723271336815732033377002894064130477677076646087223447980986684031221104288838129425393916281539580910435887674173137119564384585884315342726997957544571273233134872613741590614463436730200458671298555952779657943920397831619468198885964427512871920418717175724430746900602803396188744660108412402068221583988228068918456493047569117713906289456691678642050894703233410962328958215073084125512482035879043716812061877449983721942274322402080118933945319317331197889443070903811550264332203792841176850872320838171377259373100204047079064757355860555553578032392079242790137862896465523353085134462964846575126165955106165908266234148833070430607319958241443308928871858013263708947215028816062568985083266912434040804972145319773153308640155476043201460956174621765340711782048539105315076546101302588098598670737125353632226037130026553382965219190734967326250364213471346966515299733334857899980782135129464711298630427168671567582719291905327390365909191847878966352820153792308068414231658143695446600230982879572054375653293883089051260078188802388351912650238188968514893506485699196695801435942572109175671219878292856644429554367862638057766671185371015779238491179437123054767927938520091748805230299969448131565362149101089646974331986054166475812073448207392776688848306594051351952091148627351862495619974296723672078000038074580786875074847466391232015121664462988204557436233725503025369117358281451859922195091932820954698509165019008635360010321159442301620695556848642389566580429192380825246439573228513243331449478836426938962125962542364355976179288170441176134891416679194573289233976773748481280631939083698415793188642748904478605785553940436527949840450424317283021372947299954551954442100045306084162941092531705749756959331578050079317553858226057264234989290743099448241698157304405036441643935542403596845355301656515337350387298116701595744737647026923475482086833849406868768540542628495327515794601639511166132138402196501108217823761162631876136766169131368512421960275225761763622020762209911718268630443361873034943764827768013103621401908433136937582401457947338626600755740278064896592589437980165660799852041633931516433037714477614564090687493053002472571613643540198272855080618070383411691190571495595116433119015122582379712871431364704931699024240971538205839907066573394110344940400279206398601756919552338242004933546341603366799572797168732408286657691540758318428935302274049227575878037463008528815346002137459501294594072526053029052121413131788072305404746145310121672989050560634375476867541714611758756392222309908505286787979238787153959285637875558772151724247132818582538159927536296663518194716309971168088719167802461028009942557668376082998544470818695114184115767587664578987979477154045405321675457677469513171612625416946634472784234025715586444906524314212628520857383531119714443439943206164000441070778361705886894621860874105429686155701366986472888063075037448385145595936860518926258453734748033146481328948315201771040386567626830263281477274549435287023363231090158410525717163303623648618538880431133698212361890045901704757532832038995406660010654566639442345974950569490743444320640739156898184612296537393411247377915108206706969943061283062346407128643370795649071483700212810818447125550453571345746522859610005472353547386738987358099883825932467236424280851405686400180353809053593852260343273968464496078310367606308439931031106503900631946280063633172951181988546473930488106457345671158756167540194975444054919036795481214156348695063311117020910475104689803920478310264532243967466637630223589873060024973919875260105515205498434303165390223198944492464397402910340161429659586774031367921758019187127386301843418998245996063537168335244193602333601963893320746300453011449148725864731225527300143333165893044955465348312883226414212473463365746261415998484352725515877968570836471348457035000689887312457120888747572235512773840454769153766855834037264916932492358559317492013071893649127644999048811434268941740390546625459013753236275833181880550269379829690401573351895808869683653987779149714375413091847274075841075706710762358836081878324788980916544062452198041272228970043725613231368231479538321144784714074841455711028701819799480915103972202524998736066508682538534804223879191363853333168268849081746412254867676094589413358256281701266864331429292044414706126107978515294029125336132847826559097433070669073599764684297843038318524321249980537870676367054272378544307073468440558353679237174368295849365531561301390018249339136309351627507856730096490647176494400756117154218744829690682494960356038018944361145406733473570442609165349601452328669748431707279055300004108876560715063269771881183723853151382472201432835603496289434526597921695673788073144063044267579263917832504489409835311540559773103325929490182221901659394194779350553989367630423109460851845610018774092547089071693117438719456554398765612499770370566961788841402810499720437085480392594816823589424764422468468400627303287972624711488334344255862947182096787136882821849019048045275485367569763320853101385559735793822156012442359902875320654603766629273785425964956683911751065171622139362026116195501606034800003606253004642001657509284199717503424941037827435552371577733283454304693546502547023969228661934430306847335481717834834803365424201566435221343231279998240519237958587299586413389938954472730236665105504458939802879116664539807696520681401723201940094317315011400386185509922492753662628846809659118117987902726164990671357129556120824036956494351167395550289058827354628603391524716331699969644863078981241615372823545016409035725201015795718205976674652685805589331106591070995883963784240956076932693344432167510657254115062318429747861275272242351301994662003115592214279675522774985973769122113417616427235581589640080998947080661006880672661984678241631298989300890101069657986713837178126475811803652241455331087915202005922280192408655862003802807820054048289842059097689108525517918536693555756752627544941565258175695066321638431937821723760504344642231023983307016551784010092711699237971608325669058521383226205697351814419681836890354046265211572823251076627215517208303166842283534006611709593438505427743531361921989713344139317916881956302262854586787785524175652919782773603258925072344954701191855662243665249984654845931568298403973987229339620940884229784341184859952837257006606913840430667049601849095907439969012883325218420453961718528703914028313432875886771589169029499430335400958072306825944001005360520352881185458368259335931491994320023078700731381068241924342668661561138855011993886959947263436408012221129575969821558112899433333449745613054311938194448003039350662249785877876010271818960329654759353906183720537628538825559659045497084734914382279744420969300487746283289944305052091376021021743094383956242981692531607729674030943133289554020143180562720484802336437034392241370377272108513423960766192321101598080586095629274859953998004773809122129312986383029544135511370259295972113777256758003741109019037806280791846849026941755247923534322748480847142518794618214694213958393634963983704337308381708220835650344065636460496863934978668818589900619112562894193309575768609831824688493223468252997800450133676912661486144731456130551113050046126855243894081282681140164120199089756491303205722354824017446214355251023242036446218917558076132932323818608665964464300738505225683653409751288477737773323246003494922459637353300843164421171139315502033668558078661430488212550601528438753029423559463011459820214532181952289497273777320062818097075903654116193215921091539389942108027870215596877287176326065220499681739231396557706121841090711951142572807711871377329616032873390482475870189863301661912162550247132244708690028376916478930827739060677948717830334992771494148446221287080471334988168578935179717998726995796581928049241699970921634526338007914883226199193328573122201219943424237326946815268748084069700186910352360859808935015522488847151554481958008238256042431605606859556561386480077005787748632025886444003233502437432226866730240176833029799005137245900655707021220459025279975093012764613052391620158891468122846143407720611354781503298158242531779957704868794728550173714146506296365311286463005907381188760020153070803037664008863133551253135477720128145988576094882059856947970492616760628292605758836605916336711123654413552538143689960920536491554730720259808403720591202508878768376401058518945013819933819389696464305588827023205535116066680881324456133999000260763703705026280291546041981052449950021046186765264390354069751435387135117988534005962205617851935796198740228854133687391794523455369471021280355980038369970309873149667273421373549791107790453653423782546110989525231754261469754886349218087585116063716013530529007970106004065028631174677028300527243323565188804265067833623271145277598101826408316765142419194562108867803550661535392566607957766077518136647295790569070860237868219841396840616117019403854562607991377494570609371903033224020962990415612120255244887055360348326192460266707867513364484710396797847671545800684237802773151064898573616056845114398240786323733155516341481436352869957243808211005303880278444492067722131999735773527196195736499468668102930037113577336601633757483382412709574013249253783721097627827486121505923772007368023770668110979514632868281009206966585888983639882051819851637010423683470350010825724904972517352156422958797816581941878445070960441514126946774775909235836985309116670215723181628718393135364574841176029021183391712866042600817052591580683809568913144078418300520423643306313813708483657875972625078389568717576685422211367701591302182744602633204135872860231810703112255307883781017518513750603554143132224011273349904067146283292053503435445310509669216896362426768963058832948514339226126358305830009967409467481140975586528680319101934670413187888378327835318871983596783760675418368713888169417797225747234264453871891197097191698663765615259212529550017570992718221033272247314471708457459836644968556900670547811593520003903832530582653805659537711552040421816245771288224537459799053720004833619719048891975397318008886756887710696373963478419601018067802000381500676859801809656936295568234487330502903870699491201201916074779388972215280390893422550465673305867448909906279953263286508152541422531713994445046759715773395035213029696451955125754654858234732296719415531598916864420157319869198969523988582916636213661005919815927217864096919892612439273141689188566668004380093846971994954358278543441496140345374054028637637889965496285918694114559504620177245204404307555982302630837765674532317928276674494059533102255318503150200738378591081167121594753501951458151612482034660807821401424838494446721946089737510810944627222200201750185205311514771028927195589788002184821061882801105494602535519254185814023266891462750146092032532427094603631688571507396015017496600875669514114755958211378285318408631806072416594468218440049269249727065282102163286965896618177209349978416938105460521355530989227528352962516791263980128779644086972854681767624330516151826893127893628032129663009016542195773644961890666294549583992767718459130955898118667899541940259538793732284029014059363092618349031418265296827654784374634152980577733152486196597380761230315063119155551960957431822282649811305731533302778905368121031768265665762011056888252918915943194445652638210283158623763599001970127277744738481497571805759854244706932075452551323028531109580580599188259328949059017993584178537822303733335192626325967872072605710028839606052938417669321042509009007030646894050152413266056666611596137498366866002258393751148533209491994835613048792873525569454455813044349220439665337888433097430655214945440100939759963208125207536980515685818070819573362939646190420131103498099954254581394259484799731775985923206512012722118086730652360201120153051158446406785674704404110247881172013675632024052679960550583696559203911545787360224947754884913020071403227034716752906280104699586560068481505480169871446628740654702900949726492165295818606586572170895307969683183778194181160064565187460887758867177473861888178066884843104284052988183402408245179900552168382115889704804691969789600161177420682840347824066697187753784215336488578729225075221509688330211698459408858683343718338238304995599615484462551587246201847717620594401226530301310405414292966856044045837095617060675375974227547415270188552184334858082339621134731419550866549765902505703273473380399244828968855376156467506928018454610003244394736712362868811581962313296526440470838709692328861607999953924251255541393626729476360635410997425839366076309667685316966147728645185603013308486872493200298667914468911871683697458964496837037370922940913886224430989036564062652978709136049725060320262540807092011059248895570537025943187338649764427540977391710742419320011861103301445532737608455690994251569610737244702979082353915294572555863340801480267675747422360010936242682448753741802929955010151855582821667868432803451958040254284028807404907594435872455926366432631567340668945918972919883260864374238890066103587154992367431076197078865630983911239784858706601556147491785507612448255124440405241471039452571027514063449928097045817791188769775704273998304600693625000952588090693169186853826647851160897426492243678963282561197664297953747868376962258608669914992574890800509736392108153814120531412023421472008832041685811209831720797877699473278391049051182497877415438875549703284410564030320833564996221782711984454374586455736540810728289849025429357344410823595044201597541365749130161176341135030661345990030296946260020879827233638696047102432461937924741063624542509838353582444187765866326995066694510564710605971586570412081906496651949714076432297132045870874348638079011471511764039866612131514898550004363700522458250494782364264261134615762023386734572066918375020629844241417650302495584363480598278272832154650132983889965169017008426688793589349907318893628387521365980790340858026125773835225702482873735193636414208334530875988391762823551547954600856674378440697440773145888635198265699286953767867714212311033692954519347198687036619716100336058601098668972316957395576906147932288798013618832030188483280320996207593705071819881081616839987293019042232879002701415958471143858178654170998881303992710729565017640235380457729862705843329913040743973851868321074929500105821043313455194204994448664078990769426379748065163074248887633486106599306010035875952977946928125380259615376510827873111762232778711814252723527209013015199293851877107041581650103252155991141068497951118210038876589537598204486427405347302682426440905927006479982621421966649333395587999121219478677297826733881943335728564031948328363252426547538989896134452672031843682635018708878053664500695403992086293175050634122861769143979089299409527555631138445974399823688693048384748213902364616744350940026416960030579467292348744289996835630906823981639027338868423598319901117103589481114575136342648021973856317504530684156851078547327017853622921739403674042686764467746370170723462484228728432987994633276222250788567871913889833810565835570160145262528917121337501370045664401346398564783482387744382228178019564378072986960985509994571315124222061505124423351596491924636952632977559554889422329399952402647154835220124158999990501022564100682796479414718571283652973981041084864090911060417725941950027009773889293801756455299057246285837618180150945717211736842023857634825313653845582550594476122241178551973778273962275642155686257820028139728073061549709241003175155893050650786382924164375222796342924392655242813427225013570756918918432102999053214909400443246813916825024085850896827108799418037531803728785282575827384312882684908348527468982637235621837228723308486540348035391742553725947045612349469808892392292154848179133160947444780680273128453296744128371885310472056884991998385884941906255312002468277704681936079157064175642194930307441081709427343149528808239732381401818620029899917061807312923491336939829579273300590980242127163679026808909007312219998331717738871811537668775998001732901635189028837470587631973979470356500292419492539832671252859156374766631528820972596080776492446231894711068093918437384031644730193186358603082081398056405616431540736242455927387411335935631200492276478646145974131237423842804786997270802494410202154402775198829613405093802969975053183764918559207212301879960482597319692048264680188551063031796275301336249195511879310362111003704180105155462456354307256933433048496854385910879052332361640887049066010645957149002389019600308297690121483049180196291672962709598494688948922564015520273719714538365483487991630575984313100753548088523089282249383274161713485060057320241942504192902680938468335270116287869789901159578830468750489289900085533082271633839782893313715033651570283300128921495356717243011112314301272169825045779633852967324713202887113899003801318244021101735281444781977007433168658768184208839531074859520732640824288567680784517693302782712620774152983552962715773282997644938767974994963457110295265530077785572670426504297168754452617303699894281476942388878802472540812977217056516753375557487205644814073378465828680296302289336052822494568131103649952067884990128406959904063402421803664647923714160112776742819029287443487015107682734597098162008171111483311136696144205675152028718531912132361486266587374730422223815459194352489278416932701358665891267883818098246275515712498025475960568778337025980067771519294979931766960198761570116854447771736620289009349736572859084275688739257050969949311773907216670582204472717029411063277974953876633227176142267935901447579151006813347975757350584097220807476098592040544908941012762938209451023117082586390203182172203013329461552763797688181868413279845382711573204777681934729728230547542452542285498710374965174298874381184977846681233782967525964615844550447603433689064640165973311713661662536983883226057622066556353922544369052774389726489357129900756682691241135239109257337199003292449323100667899042027933236716273430838107798558145275302424143481335724047831696853891585030149500281553301824635729054165258788890657150652395397818321121281145746965075552745924018169086363226993386188848921502522057174516025876185867288239620510977183011946409977537649270797216410889505431194442071778583824393031911424816303544527220030885263056072618698877725531866309743554379273446651990634276427236195420737237496233024355198231089395390222542608463829583897684334335050531232815919720081601073751100454210558215428096765458798934145527514629274435620346078522147392953150313190351560083181729211033596501107712235835522619556631745671567107079539312216544291774629484567403423189885406207097813806403322482924276109477075751025398239993208045568030846194985997629315794625782979887719116838077333858106820462564702372431355408817820932797109212554582787874066379891991227729288304006414625475522826364802663870449622047972657561121013793577674309519076158660768936965044498588081411937662180793380866554352879003014843198712053133633166542269626383801436150062883846397323271014701699538846625491845623912015423251612129731819340006905722777516524385701063444499485588339662732482528320169298071027617507815343455997356716446526929457216366974889345697524549354298747870830471802884322821368194318502133116089441204638997629905231704629589514601972050966514089366506923542082886187586883300656311967366575227215038643338506122024167955121142944443838903824180892123829257018346272541818359076693939075463463565614833170736963461797391425506790737010105464724499317416878885387201059540268236490056910321800298150801914813530322914879099760269303520093911747908791618190142475945209760565572276038503886158259733675399661143336168795553706323996072516314346215802850616770865106914829596312340137915586636045696140875833703520652919057508131130035991017366419710548844257400442590020244322053736677172755335432702856204982408914425780950727266913551905446408788513988650499765748302658614400512895569766394635363371624804480217953194295825333628859918200621565214264775707509426510073875864706603095393630101981088520920545120763227739943397497168929973872624949039460252701936348287147540832894056668954442916834875048256560343812664850703765622032266164000822742917208890369652495420946022773005321343897937821443483665353574926345220295460918497200238725810748370661407258722180042800618938362719619425356392018682271993197736422488056587376130576524403980110731711022248541022800157950287385231883843362303526032024048927826617689893839894557438803919009989396653642895225851847667671814819229043102858474958301706648031550346478704407291432913285232847911805633346543075240735463970418434781696917848770544991291827874439350066268312866677742847314907333975218848843890149179719890984633002302648623891062570546031660293112946649066808674289932166708619952362778269858561959004654394985514234994675945402049439430227985272658109860679318856082135742312080954787436296349693596949185973770819548808041379229457433149456827457335639560549355259014003027906518694186291862153703186062200275924750696945083507950647546509340734281175796899782825771771523129871363765457053995847960309360567058876295205866641597647284549444965659462606268234058622445589256943090729689347326328517348210988978544301435817027551539985740286672809374419190479897665880230688667950566721724798490979684634194173677992749876221492827649857046979707161790039818107280169901529590316785816002861178351455726713394707892783424827916833976832526736832031595146970465793041062217245733725176057752778479693163039673300052419383874190079288151996373653248626322926286220549248301498243907972175429411222550266276163763171157335274013763454298245662588159621640999957860439345823625017674491851036644802885173826284776633065601489302959298964975310959249004730763582071104002821497909634662072975262257034450556703754460206722869594797095527496933056204498937883381106712705936909001219601379443387750430958748251870458622775080953825093011251517968105010502226876723479464820323341463602899831573256231603878651896238481004978169692773301080242571688562357106204099242717584661662516054392685466054953667556688028986487291308731091493154793495505435206658215062763412857508602523046095512129974165063597987316283504267547448086051561211233041206541651410134948072582824639626206649611011832229668601583352652910933437323305050545275422103221967520626245072438466547804883938864769432877170922832970865354824422776297176243754140281829213916173354721505247727055008486066107685078439050017671739801512000881653483801110577219527588045343335556240717557568937617800671157369060120904949053897071439775345465078853814038337246926356396041174341094632349445136393878498007110876271996556642990968250469472044061213822728038711023717344799042666386076767553710228599125100817911008718071868990710781843895426548468647281033369571218484660616686764391227393249716722158114078456970291311156356678093779086491669043806532849131092501038748205694099822517423425789595746812886497599719954141182829791811670534869583118758454964699422962606426975488631037539131252029695047896969862653966359739996806486532907895207714097237859624823609124317376836761056087833603866096856140807286893575415786878815499033416867712830286481268286954948059867112360494637185652565717592081261157460456819101543716399374049518156110905306326485501259700425283388615036251445367182814488072512560394892921326488290188707248078003027504708370968821642134000189832667532192641873780984220206670703747391821874846562682296969702330029666167054925162802740674937761108711204397812027733263584484842125509148465512131545115053908051830527293491898143601147868981456054096066184292182428514985164680473593083620257399301579948471834853865354045976123858611363364279276433544500826287398202670350567459708894021473974204912719451604929555503341992876978255431404911493236026086696998465124197523840337705923697749450412306697556973555901848891195119962436528195576715592657406639514432358076534452433051548284041576652061896951465192840907598506633679733371790026380843081422342301969458684483188259587573700897948609635219887159269386991640405257036720931522777675594282175187550163524974402140125093957814965651110075261490494765477395356968120118488041726088937748546445050838274542257375833102704582207914055746740327060544528503579218660041776281235262112521601204531014941722705591167196523847561272434905542722554793720540514785954837148556907582956652423877612999110696781929439800037055517728637076762723120691459602632652307083651906905319303982789821391727861984211201469180735570656539008132552030661113454346009606861192310385998347944498248376463404108468698440705956587066493831624959212744587594356462986560641402601851733772358950870545316145170545864802214722895907072755698604651997388567067357283325162836498409825586002885150796855559844904752971840742177301060557508876682272492014435283841538185889906048123931341822979757722990528207805280624122079195038760905336597522022428028750094898053604558382757881918717179545524300148184278850922181514086999478433357568354169488101253451283013588547750169652896134938917474804868250357335173693580146511652754229742638355115193142224965940047478732610896984862453892938955368495559467706379415832419816970830468401289278078316618185504422362493759821530524887858061817253580410717662733170092997755517884892560558961661281037840711174792732363138799727747717648658632268247586734360970207144391252194756954482276425551809579610823215575993365226344988906064510537513374711118664238444891359915390647340147586653366246387711917857311400485256014986428687972806537832326001458168966220266442256015863384618275401842843617640950823278682612216004343914559824281866839951826112363465759735230133298287095261589474330247337537455748155611301434121452371037322178046195619153321955749567408962942519188322927301151765749444319519776828415887098172624958680598728501218897135340040284524240043845337853537543857739227454235014840491372218328452953508354965877012207661690378343014229437204807732548941752856190545352278967616867599073821075017629074490889107477268643362469947643031733957140690832656234330604430589516397082705197901148294287158960413292063192168197082641653498975443099437671303894499571026255740746422530048009516095800349364478872118097818741943713368560536112350656939952854673261388589090530564175178138568827955775794417353684893259480946943648082434676123366955218110821825639788574464682248991601819712033717352862542373773845540254938254129096623302841056629345703639980409541230804795053955864807329703113947811706254944336775515270102344766998330818703686426480056220702209878739785011540750386833982748664833643749868494980339311005917509273463764784314257888116447873878316882599579506754534606392058817660525106498983557879067993704461027193219964591297156240042285460164289013113023735051986515970288363614392191782728715847347339522655790834758540865576624396885623834783760409962342868514877777489555191544577418631921522940152098966720874894368933610400792315943230060165627011097078430497297047266221723294498752281061954029298562726066370151667597222172079019909189121961990083573586853827451001534584125970777436003759431210688851201310081246899571864167762509296847065506084181504505803131072699882153417383634806336262737114942653563429556181708737294956223174537357723868319984034276987189222825917899068121149829142236896924777920138511299707132316650030631234744568607209904507540952456509950559851874419553575655994293328374569841842100046424840495378570384613760636647427070777501165436512829458672446774714705880441937281213873041057999697021540007990146641297787088141880719043751816379588186236550488879275929759320454738921339381814817009678949433152463695783497150586756609830752956785429300393133399390810404759591389757782228600506033108291009539977475493126586397194442351390470041455934114344880162975652105370796898034260386854537247071224600070988711147721724271221044578811608455036814479163212847168890720473730271278085134110149641503724173467956857834815732354791464187134103570600384042749383436069286017444926544890110845554854371277914132378925775669038137053367417167308606497653401425132110606805973991680188500059086362818785372328915475194958279902562556312406913930572628224376123757567981110767513956403690229111301627435630922933543130457767855813456412348272701721469021655290189380916608114481482481429751001472138935062145979753601967843445472282737280638945349291289867875568235051703318097285060022058018922479228002828284456164568822080699838715660684696790611779046158139125258852847789121229290807837162329425443902564914831446508478768678579715603562948599458988699379521007226326529892701615963373183758157230953228247738285060415689047456894922594944339109169967375461015829707534293835486761310750040293617968048359408645510352435480952896458309702679950791810120642812473720540484290637685181019496982869083339919298427074439145537835557904185123213191655908255161446729499824182657610164156284924054138809676889549790923410818915530880589826794396156929580042422017857020012388984998271716908654696922982850630361041604801894803632078039741252843149951478135528840316613923044714136538820747427661107481775165965367785321824451584058476408309647082029902551201840139060139544523482402377270253711577473254231067737367472152502060565226900578697406411285607060116887410864426181771881151790962694342170317193460099339357674859838769336604484132736835952537215241806296913002215089705272533011248783573292489525384127786927955420861892442656443059075818814870251815104942394651913144131978854132125201709107985483151107800111105675874825943214653396936163352701821958363057152266876735772126504960514825968326504545831310985622462210558105357642421907110953284071797944352418322152859710926159249396184893422032786657710127756966923235196249200806702364571304212683819305665684318961827225700992242858683505988484873947527696344997275935756547014254048369719078431061673223092135446880461689101272971058691834404059223706836424639461874099547481045205695692119584698128293265707344824447418195649838837956440127460962790327071063806617656814179596091832678108610112668454377274279977728481310941967590342805162093402216456311154931616239417480473197066781139854188879509233425412884661398443300738215379038477843883353787643087826337619922856289623823203005666278944474257929328630306201149048375740971472012780546202193707981711251999356347711644912836448571415570092118622068661341304304300486168185883305485117652703432501322783651093826435290191119971826847622849546931292597368793219115304760601114044755496921019704414541052677571200169497244059896173864609374538052061441683519669546224599860576791745154298003514870224649281467461125654399797913306994742926784847580233926797442614166418961021021861502326064863978077509283102490931337059757004017723115607501806403107172762568344027891115224780671101506667410820865188538302923349709336232363318140501193151506543410161639619503168550958672621291880959003970686888601637650994491591009368994634397371232436738111851312656017857024966279347789249857236213912039969264596014861887739030409139875725022990417801054982714990092397433245303511100415266781051546319076659766078522906604530169138276603234389487412919930000702381201619902918523129316308952751288613797367459228773502037220892356840853271122687208286840068607433568296349804278629743738504374434934979912249378892536629508582347878655970430812536613390439326307141339174682322021138481996971526794719688709433864811090018863291737752513968667287793758794323696646587077918362097354948132403901432346050700321016409519407235745498298836803033179972083345983335167967826213350600281615536405995368972334602351780938058403335747118200270734617455073439827121341695795287267840296123666333290351783123527912350168122848275427384443974827746688211891733885238753838141557075762739352346769114486345925419378144215721427842748230941775119502894045602782512908586382154601170754506047951992305718957098508980860121890389409244337878064245471318508153593370083831969367135645117453300920793325378246423220769866406915002350700493757009174373651197898461022319449119968080938056395666121467183843155282728826129961320839444914652271709884975940450690661898133251713599026505632962738265680003373234314714629306286789895779766664919727567387741051745348440296039323444256674025217280883880181144599396120594934622954208093140501645713944826826734986489087579753585559197358004811077439420174590287169424305972007560334358987361124829135880340938698445765509026442567244298075967594286808275965653409158478411141711669425416065782083734416339963057484958343480605450395085556488881924726930017155558419292883828643268117809878504009941005720518509908545052174096769021917897293722441705701319244990557050933794706889446144209029072870584099192993553768559477124291961059596738988322108239105725173824162888648431592178928058858133639883168745655923939678073944251264438370473736787171451072515305548374818311625016004412876990769683566043735185996613218709990220015567327194556678644427684383215278935937446207576587405686519347074250483874829337089302740164527421348514559721939073361239634715725411559038238047284799016176569327082877374863585221392486359060792980122856819312452269266980049375630026252829138577931041006342798170362866855759468781018679704420641235184643570943537891847409505630270564620117593079162131260656250218365376005689179880754368051715239121468325635134542949274787437864193820794929688965418407477512454763405945965790371296708040089676699799827212867365989311667013672502202182713854928110474435107376617792693286755785463923372420155228541727557124664657650887061097100443542062866052728545650421282218377529589170350917144535975649129754405588709956390437836862736765798756142873229610010633674826976959571746613818271657033469041576165373220411283349032059771116204526530103963517501506998536319823944804979394604902089708062042317430324203253805174794525410267242841202696890460534893566998175420500582729694893503953358238681156245868513177380604887167670145613358187661196443375004810002224367777019027000009705165846907011782193173066478110354550371016824232311626416279117684678340276170051049776328713056321294307656131670649689529127965043682584124755703715752987866143678957498835324166518267111547554737917340811139315650822714140920144693805671283510247011966060353399506445522063239543325654729307520804586129244794851495718273479573911935300896350307291043791061941969526879355582901250859276224110522720677927889578578362366284899518590520947892260986179254614591505849729949569862381069030170338174041461877105224823458550290194131346230515129347525756251658996482038362850883321983721892694919454499725698067146343387365421676052354761605925723809788758743097126723784842563358211635270911952509311346910378710207912820184755959871385554532357015624649852215655779053238285630402346957732868801539398423129311098377484537046717775668766770250909334001149448894853550027092236151871929270847825781903070440520271458259447555301850214932189922643025783310775884387070066140720225003890189142802514308925821543310282023202885185512212039983528079353367320401333186187547481703173126993018790739749821155156284107238897418880190081100849311189993422331900491548119042708413297598511850912146664419607906801175270591774830298552964027938276730760739545134379312783305073063289729855325462715025664603023561117947637621760636322391086370276559466024983657891736741381295184802789480210819376513986366910671577123669884112445451833364074400422841211396392723043328047415968616866281339484330333577026536915575282532439654552999015375301152921541452398436286970228871188841663293231796278058677253500958327156179416689064085850337182541251930592504126777281775829087883565917132826962187130519931040085003747900800497273542829076051741729809043401854460861230865310291172747357121437659406295316416093064068247346850669086242897162142421063760091452676190210089323267965317094566595307448892579784534386618839213936314159470353477209927900327196636175503315173484039888619243151839257009609668938639662334755115561780852071870205622419746629372780196800274456289943854210014360246629076174896324582362100211133721704891370762863188228676414817630551575262287738823404753266379721548213947972373302617438093524420464771486550587538579469638463258133671652742486238381930861882370384954219729996447400427343252517642255671003083635847076465685117553719367607037214407651681584372468835102501174675556021433158928764399205221825851734221769893670532236930073625247618309040632942467405587943591771663706418040039142458745933317537405068213315521882055950684260565832233654148351638134366317286848724811801445356577554489670055160494908472812840194791176479851069795346513309332154599953071657370150191060720899981243854399635595821350255123655472233297257664243038287838821596458794118319071672470821821417805065983294510686008599514784224727548016735509327150664181450652268611787716153753410317396724115885959378126214977132986507151007979944233360205688869232771081366635089583676680499588581935014631583010297325281267960515355960576114370347207993338441626419855467488668148240174877045353163186575886638161233206654096040145298557149871741606661056415165813197118655156168087002471436220688858661275398453365049264180972758679454773372466474427500158518670008605892108776298138725816012780609364955093757685875101285584585377294101852289627744488219670508940445444768967772470559871773393908855148479781347949546368088037548414394720300986682013804744443219866171317187549940544686327764696355638983068959959751405165208221967368147534744747888448413553275565380911107117768393082136676318574118788957159232829639839732966679777415466688469613020257668670738551768477282752357386006060724133958456667495038701792797358887569904252044476151350502994913368811825006131279571872606599153165929081254757087279585300069956355161854784062074667891988885696198733231818773251797676104109773533485533424592731316936892089746469277716567694652308768029731249712023666058549272836379845231786633785826273451720450173080239117202054605137521003581949721573134804893171805282021167585942541585530834933990344054336002644476592386395540347913891743608902166157989872150087732906200766883082681966544623255046347794195706761042155736029609905287946891784796709261325777647432381925825186200880719773601576699746595895823225450434008556853399307882966327414562406639340285884187883602639347463145598691773070710013276133324385526077821500921830278596163868017854813354799790312950009405589429605159267163227824196676895746117138783326049083253565894935689320741653481795926725461382467077805413945724757435985187418537327660633947942816377574499867185147082689107265987428877415801187251340027584957864401918586065262074740054925392856968142424334207448991636610834033311202056568228623208853889296230116326491067448937935394100905013186393138564973092340468692392596184626455460952234135824491034843140852056625855657414027499281054379525816547077780731543923708945870089096775980310773609783234817343658823395926487735412806073542450119773708887361882978648551422302816131734032434014931875754811987423092337222917312069703209884423193244876970462368530697142530428481188098321340240340614437435476290092048734383605603370647088643487049171421266018207431997194719487109008937431591735965080345850213672387914877149396087728971384596794393020178493423333513579702663066017876252725270408229443994370776547413336293610315163597893693041523469430707761342259226367843482266698692082632308520205561610531714299807870338169844709982834549667847263610352193805107528686544477933034544411431852799649751080184827845837549162302871791183436509542741745576388218317971717971180051153586608139256935248626385880136571343094181139698688035006257937048789203639374317242586469815209836882840052373201529035384061429175530227169603773078677852537638184875659238411334871500705275278810472940669085196861429771835099228359001344592619332745561803051098561278206519590505045502376635635474184219214668907628618291295761438832533345754380440192017416682488180442028164973577148080067265990010093234857932051932524956385124306847874230888766299356915631524471813199593042788277204237268765479103792101100514843048725497094253297924639064122993621298363791871939092420877984050249617449375978540027177331526132393203002781240129052495350329043102375434216576377325839952391235779455783543602704739825984215496618957348204887159674911316034494358893659309801828887523460360592617479498788474303922037381905812370586826554810711876519927285903803988748609333132371823146375575521252985548255343565985810985546420356195539983420646367831163500411308008880281774010158278109355044578186127676218259180491673980147926373456172076459613823714378027342251738924883027995162382374943944764027696557222442488693547114138447123067929791638278731014475910256721479149803319001438044022273953479484904602523759475381422841000249993018100710584485658020810435499998701048560024950641393217704066510053867674661771754467650283693085354828733263213422035028681503193317773947683276790266071740599565058378618105518443030833077171202502303335095105639652056742694519525785803904060396139817999383891821202253192043045912755667634994575864348369225612356590714288819599427642395680513064681092971785787535476255180159783042669963252483223479310865574819989499681955379592097003083158471472177160774575302424662807417699922498538112095895152456523646922398918713354286697898641896730144969193429948585895550116059766426035021439832334073961802845601928453905525272626467605501898516090317506183442611078980967124527662511457514324866479243469281635729786235804592025238370695569443893015933801684995046489898627087073231970065794335675638219618777206817747662733911607439164826120683565334266813563870555212104230250467886305379935760775855677763649642086139069896429363633911609328529349038542315562209506855285707176794515302270669685849759274644746161985942427989977883450035308978023577276035438683759988729721657571067764228101446857510040564153985854235636094117557011334504729215958621118154899345660726427510608892015893847932078992518268180470699808751141040552450634707171540478853323518780543131945780994450194475842333134252349424311362705136528291379075712692145312666255898747141718708557239810366512671499926460905408022908120616542765902666054949073006475763289367171737199180007492218662299270462143764450348024152854581802387624403323933533422462080318813747870074121970962932591415042577986608776929702337586214520825666325170106772380044318603901093622171400434146885057210726282822916528781393235275419248798342058617987231731448368268868671971173006688142345016363766340759787863558173108190534551022809721832181039292934132165965844400516589947248331774536048209307510936264771482513632394669240172887415345857145145568085194054796991768125536395091207621163790039827652560393744219932743073781156048054694362652221528351513437140319197627976946040179606075046647705205290597160648632412424337766596835186651999453632203652211007337973804699373300105504862219129270682354790981334478682134113405281690187207156458615544678534986853417090705316671447415021783921512464890054716950573007483250776495840464235825438871586472009905006970941011121464770377488018098950620144583781182896569897811637346210797852843980191089692070199791397574872986260117107668879948397793150612652801039298144346759726708940456926760539607920128055407662186131715862431117146987504713266418918890274116902380921605278684603026295881136322611881591375531458915407432710268942319199407811889103828329189235888955198755363929861429888000116003104648302689980943072831745819126158228065181531229274055066679498210332811177576696219954973750025167267024128567806481975214047333469126572840117587370509480799545575647062956007655825078079496836773062538585144596261155666007935789537594933812927314820335135253426704826763312768184173998781588797833319956449684516703184258477954382403836562690695549769730038022094268476528294647644204963162783772404911653655923241179918643097954248011322812880546283760567722857129349678712703513141560437922578655874632421292969741883810564677476831282532963688117695828205550490573033224138686119386676205540746973401005555863596626759638635767042612773394414321975106970602945706286050464663170774024071047351090409648066482491369360280320531900366566738395299104358181251504863678973849290824938861953162659345661333519375874341390207247953936848923451607421964967529805673798504130525727571236142332514245037373119337563115994038362896759868417041842466216289699496434082755452272991181943982918897257253086398363847764238611380562344880106020338395437614181834012507860902119188137854408770878273420671323788418754070778914234674438875615429112014255756911441623578790493696851695921312661877763714857290362550172605697510791650439003614325608630986923670426240356575152919164027608477360838462107666063874461241937134870534955560417946522841699905039308998098818130601536408748371638272343488014731495636104435528664469407830653372609760534699068198017731246511422211407894571332200168290792801726147817538326924520510155400564115257005601360231415635963341038187333866738865553716747562905541571258585598365079133233938330864548960178332918497708217275835434920861222999446936535465105677407033035187523759029619792880977118550811116933289084340318330576942300601115261501475687759174573827317247987396922516631528454914820050545989594881369271173637537387468099903189290310796304277281351643186837714523456012790165038564370476384332283917164947605563492857934718625848027603899079027179858432522334612424599392375324903859412554585548670435409087176046011327961891705414536807686019405012423912205822990442824833470418832831340268742810866769437893501542321634448415947846400546044760069057148821268497298651103210342507349072059026797804053072916690196053648563420109214605616121287320678622542042600534079325552821954414506537348647295098682793490688276154046671471150859800686946531753629232030946744853691826684764671947298191340718803113882824777837136284463113863567748712449958332254502063784507484243740183956970099413951272969529037304720968007122051338581946937847607387372148412103707646589568691610346824935573720406625412532612286240631273483751843850139347394387292155068888334147916177410139855769623900321030920575639964823910335013709740808528751627480780981457824287483939055380183768949527028553337565356806852395963324684837956506207740143417449651773225934520029391657565399468197034164868222352499098492161439775591208327223208447181201509791120918709303817462913972247272981247672922587033205252807531794402877643465227626093986110244005736160217649087390211876763541138492524179865798519333562382850239596033241109413687645968140813249964507946360666932005669453869101929208518373990681090542293046022999897033882895815864030029984829038089575079383298670506038814296421269495589864430437458467622601497347279378766208032200828223720942860411304700043811999231177933761707365924116883950105388648353124147033776015577203870794830254716552824091011957096148116710130135140732676401349108944098382580434281461206539456920482643674592916021773000484046402006954362879163284068285914083889917332399910380305049486710997099225180780347587981659886702894070211080729353483441314021134813284233527044916156321947428449286992054670585847112714776254971218019162813775283714837144493339282275112650181514356997268726774516460861743778411413776614138772824114542382554957659972403028905950793665627512181860556430424017343621453167548704627576259194602252944604812604970594361784156298341828574483447514912145372844284556899799577622692505145595941019866918620248764401300749777907768947442442982517050223231426924664627291536901410180652131203024269777305551680194205220334343461917872713742427188919749065080857301825349622708769207763592798064728127391278276177323505394339772503593311815706390861656416219307701372622071663435520646197348324453364797369610292474519534088253609606877100076173395944490964004706912580495914238619409013272033105573158909278008044927039150340791847629774622670011919550885470073638552320177111118976210568299933911909545042507883560941561328107559914243058927675208527461682741824990088287236804756740024058593632928393762366984026420292128343119032760070294756056919741416392645019451090562992855860150768486815380354511371610808243934302547609179452706291221596492959655255227484607047405958872273493343985168696693126777490224344559719593381310186707296546183841669020707990767924510594602503093688443383488360647834253795789647820532182015500784537504658584292393622680202265594114700757224227504868587099137865464498203750921798442001813340584764076909885114590233536976274534949629496212202626707576319973706081867080150969933679780482722197718145034593834583005972023551268821245640405578296416112023133369833957253804308264439651663600788137536190254601109642621026416529008587833220849315907965206036707376583047560201267001303188476487548301646349186720520020257904668814900224078893124071652271342476258392507073878961713031035967045939743057131993734069920204757757842341513357771698783136496901140871193845847270386577027973756988729287970896823768536232657612439536041531228595291791670618265240159262978712748840012765993717976487991799380056491497760982301581420049942378491663484836241177627105643126569231040078360089950312348529013564777572457762575087341830860310927687306536628101062251264928008613210518604900010040592192469451785480134849567526505605240015374765860344934614836841888626017339239922154583210332699244441526229406699410343179145216760487152739099499934679655140202060795621578401318716895398097715345990759681737019602366566493503202550005519897731739422787497167917762308842310639760336672518865763633811475119894655017530291641321607819493553895943358861422813314445951864162411364477577197807012423813997430916760763548759000817017679892275943589273625567157587573781122298817073921922613228267401716744717730104442729699301396925218564810903220011912580723667054271928514229313657582713698048413778207977708364006933873215315162674300245196706822213316652733178874250263844985867575354156148943483863958818288697035068387941151860349559567982689826139950844172661838339302677470255253144203907606096593542830811301984672479915079627988682347870329583985399770123393388587819255780872665143721578133144602847735271490268803959994006925752710833174418614477296916983212006089743580848576160646339035991005341442978169892683996698155692065962626399685494312041128259545799880382742891036369553645323623899064221089821880086472370252279664640317111858209233239869307237746607627397989463347812414855747985081293527677758540589191165316473676878102537748691328310683918078843896248950021966817027578888730849734354673634368527735670871003544134608449975673837355073541083280947518350708115399167833214066510580809400935198517075738132987223803810766389415368030720183876797189688823525402687223538351493456863812421506856485545633700810024590419863955350789895535691102033537285729315972872060488769404997599740214681185613250409790957557650907215488233113978442353292193584385404254124336832922880419149606250506012059357419330059455053216613712319389828321994241985494164737401863118387767172067285265905506213900816106527962777911526062263743318063873419222264920766946310183378893129064641927684144362007310397754483996672271908227657607505662861598780265582863994663026199523650981178928709572446106823923350930080068179266800771966936466532623903806347398412907392756556558681524075714701991660911584068341903907636367392093878940998789152972723159405913810203361906256888315634586936042403126526130907816808739882925375665005669684950396270458382020833685823245417517983295158851589809211417537799874612088402176950901716116234494787039453309903619392952597252105872399838242164082330240789032486261052480241973176585427141852789249135079672525250616818477453623217898488313924490530540345001787881714226388521091560316695383890668971957371263112415344238390976860671869117561693644104393758359961428110665190873030573308444283597843498381071435953288883807404144139221464918984360631073750987823901821750118174718805018510369532271790894794271713957380311824841616569617417813366457822047065573128501917562566093337704920324770218740102170618032923759131479664568397283519006241713684337486687313633601543086658189381661256601090419852233235387451229067376999848032254198830166126123485753244441045538384714591165380100689401000021647357478595086264348056927745571292863197482091206108558719119553048285004626740110563344780354386644584249040913222877939532703787049139868910355803945428736955510750046301721380566186421449388454230746818727185493390118938763282731438139315392509321814197890767545457920247016647486328588746996217176943873471228541464325700345747234235832900915441793988317184710358706008334833040341388103337527294067847913371303758351228329573666060087187416489633476385204002179740457632562047925272364469178668721294589877200840388957755160144476970660208203838462631536425335843452515115738523102012324477110670056394414166327586366439585590992031957178757118356782932599028451942850939896201582600378516117586435655392129627770802010447824353490836827071027614671659233285967199373251245592576225642096789765238113783536397069920727308220594069889988825307317253507294031074191366201619823857389535412286860619492676954781276917521242037617477361447177008792075186867079104193691844860404721632990375875740246876857659578847419008893228044608003217087415909051796379468864018629189901198825331329138305721681288067356755993071303638937763765961475689006977057263054189321751580007563195708728527613030637746222102571871759787317345759937529484952237774893746664389801915782858151288474656377516314793659796496030609290052995414172507969920067492319051852031963445712534295750592306057726835042164712417164023436304875131079636535908367546894882861982236455386396156486249359957379757211040362012981611229203791584835157710891945425036977059748665410455821002317656055950984165596873051352267409289510482780344009542256065481919495302410582316282485261906032773505941825315471093076498873310613448830697273845959009542966253843946914334784675935049236753968067335056126354531873739317580059174893629559684564395243510712512896565293416894836733227893226827235594631309045153246170388011769545577424704126155987368340787428547327883250423600681111404704705579005103184966363646908046539899682201628304891929502733256384613876044866929347439259455911745905639180019987498502399833497515553862032288524694784586194845943546338301147548890964677730737442731459382639942728711739394075512098076538807929613600033039803447966290090815736481608191889848524015782481083030119986908323063850691282587706557281764196623891674425480753331759503719735848393445214381690206195942420471137991039083700137140621767507972825789512860349757671255128695499640788530576317806114106487170807574547703603143978135874897043360001744491595278420192185741997931571440321444020955900785117266711679856552354888279654535538931684599703226009175000772535606583407737942817127747623060458884127504044645894022944315977105728336103929924429756834881531344692357959153164464917949135450049947413560043935550366373120774617761216166754491391413825306306130519881146193154107470798013702321393495817160125966802627302463815962756220542280870797984902416493359948330256998654132431212097970797459044610961984959020520027680636334590559011352308809559816789067612692311867962459912492449250418608944821788880422689309214125509444223234006749135031893046033664649647102887667756808776703139617862300646055855017578758430111098097633820012405084892820210447486342305746024344505151375547549190133338665239695264380465757178345940263619706207607146959125501511700730771065827395729710850781286234744899182635130975860180546506498127007805403566096512202981920812634098531666120023859573505290791937930388795821590103712413362992984320914950400094705370859654284925269429013938599372348877832165294972492639738482988955265076418158637716137958417897639747513336098634164456449792829547891173600539284597786865398932202999930065810315945504137235618702523805475681359768104933045645425056291471436105545690418213102833802202796550801328207074766712311064547262956075422180315032376301771663180811846682447025524524375666003400519541640571449649038258678120618852689471710940808011585332144372314910901005144159036636637009953230551006551877853549415581173115491212327511511704907280777651361893677298105906197589607149208531699115850109501663495212265917498794801618198909550788565700513531117814396236313415657164858730557859869435788896413805935367759267556972866170369097461516348394545905593441325510127948210142582753536508621215659790506363438871773986249209204296405283917345249677201150408014141929932709501234418840879187866158159129255451231842894295660107923075905850201679510956327056693927873393751640593377571752844698397227708691707231070088181582038561764270523211825773842900755998430877249258336497686634260964491216830085521325047064545749112123944612666922053666300378340241155126919095945406559595350942030182359742814733271524203863887461541699145548673539523896171299029238252225738328620195495290311709686555601076777399783047130240869850982547847747929605712879420118319674512600804564834523790463786293055628578471381271577304516968011705100053123166773811313169248280444887303026837618340550649823926018215944381793898649044989281441374579183166931323568770797197404875829702501178841062255884324683408426831849421463302100061755981716183699957252069756867363706621449276071263641303338152833191782469496470413056103750678443677053434367596514866722403474103974069460432751603669238179950485009977744941479734166163486865659208251497940790769446759799722348438488112158021422504160662121308815909540872832791026237607600520862464208505848092308998041174210538187500545565740269956039837836191612809893055422319805915522125983381512819677895412343887054279964075385422234013312242770243402816093268744286560335390128990936761134565721535082802698870914692860502395418648112908237342161325951343960957039875342901484198781264082538198095942559590467490877888883970618245749503104319002821943555258177935423108606021621738959400122049464680475877100386102222503880865902984998665629868466582858859077116442478965308781042430290441355397502373492102801212217413144983951074777065099242206197055197415149505878691248528431151884752085807326058863058961541634248201561692273052965143778220261347874985769235140605278023230813764626563938137744506581062266877269244175765370187021104057565770217166446591517343011810195040578582903102740993583268878059070848396776919165589907143516995029342968424853274614874384899996706217252210740635479795002680359950092894117848225711788615503021395049552486831444127843997148868110343867999591533155012617824894119761627506923157876629666666267556056831380902651934191654878892248587357469617496835365485164066654878695959763248122795784871182034631464807351712848795511896305901097016838346022294909518993237541935069836411310871026176192366402541996347320545855247137014631094647270736685713900552581863223930196739817208310149857843306355041241295724032637421712844941033671167166252022068212937364555316060745362591673722878238952742355527771633014380709569180687886951046611753748120111263693092753929705642618542452305370219226260660391233062025430864382036546144669196865543019353697367604977840993076747257047038247165586294119421331348658985381508046813350497437017875159882513351955791787291408796873596333623277007485507558331597724281835767637922114549028486334249624907732183925358381060082927017193571738598533108875216875505157244861091754690957599658151136880486634786486282601805306536901897439538198847718448947524163510130354114053214080085302851432067683486917229052888631549523224311693888153469939678313941951303853477759319721986430002434477028609668041299767706133279374873434157651586577857112676712175952025058707972393222054355252379848330974684434249793970968599756099442256660812697101718797840430824137192192193563826520372699812083464227279632829682472626505671015845210322575168399751354339532724665625874104132536780239059860080774806499799279189610280855167078847770944857110044518638620433506304371005987329489906343696043894079996640210913852422993083341847914793833801999945423146089553507312483254162846987502110730763188676813236396681481823531931347567679612399165145771434529038920369947301945388357761630044250408464990690705365239897240004505651392372483144180825382894304364463433582646370150636709797759826998576463449333286668055326281375641208368066405300052080811211021703937780438834442129980866821405934446326502438667493335385013129344884619544003709156588978619685781133636291676059616555416430893166442819499713023281283843204570935995867422971032468484360685834184276512594655448834647269986251250640923734474238953651220837176811918517276480656454325770742795810010247166103759980929960274805250333191061222391389588336701569937974845055105493298026824141627283027151358969499565777821070785140294596201454943945705203831696307724196534767898772129149198490112803710309792556378580285005348788248619455956394224238999504435135520237434548062050866728294140458624939524815182449830630971575516999706334929068444799450848573458380381240142568631204431146860791122422206533901904195270536095117978921700181319569326480055441602538017969846209070689771479346750194626529270193753937189387790824729071607935343100757549820720795538222389013750144031142741922123846026760000520548590952037477636563145153206209679319296877617385396577642456087582181485773430138773269017912025473679581488185008102754868524936757075704236303466924277296280830830802926475272824294088088123765671459891458569797528271470556803202135561290649617910874250888701896292876796605005621359617857983084244923178586115324172995418520868615334460504989473833939548139605438124250706408214742801987547783118241920693292881782392184213884308478093789267685504915529724033387501238399600026017521992369437484442884075050575677962635994075056052136004472731830651670722446418902420837683655022951402671783040447100691045421014835620276077370246876965489375968038325595494266361630548659361693488822796727733671345471676096242983698620514232390070032084601676773358273582749149027576496819063521252942803590830045814613870810170994536291466023538933929644331967633642052591852157630409214929599222597283002943496063333058112778159975539624909878080288845406659571045578611493524686393257199371720346991768430545524168715279594273204284569809756337162486109697889977559563046848487535240591599868876210950284247499430865222932505986948167113525741652677346810917404122779834253521509087486210932253621523318066090782773386352166235493241261984833036462348365976118364293659094481112475368732337408481608305153963568570765379941186152467337457781006839162183960219501678580421682412482955912373109301767042513682994886247405176385830881609233132027047832808320920422698248901285942347247228741061489612940574562645303239865639604872503445356033371717006255087499334221359342735481435520322374295552680748439366965127160505598863766468856794636342890894905085729151850507882464078508560235515959735306529579651685900656099143412537931827865931680385927539962965880341493292796770665707565787664001869345363865812072836809243775486382689636289855862156279070390652755413645984004448858591659292670266789524668255859054576744481840110199986598331942155934385486152759049461402817797503225746377273893914215404695226323193341331886519668236190074562424029675255953133020436213892368710589570257248116848558268553190592748351105064372563818367093485005257177902597345206200284843630946392443273364735275822461356609185354345976124167043096819782575217694474424366893146062219172414477413031976845694104817585560972420472963850291760814363905250247185595659207850030874276911530991726270598176624478345023321457369568875197919827458837160693369249539599827394813240841726959485349102141667045151580218317545677794495476750841835004172409676910985498307302616575402426404742442631648526954672295829904002076870145798165749352696914149902297970265564248445855846914902332156162198423316732349796529729544646891221764417025207724297511848609913521242695677030807964331962133888897503265655211287567502245265204933099874985697784828190882886430049833426185409097393973600403769633012728670882530852636843551519974922358134430023308627917695796256384626470178634521545763570065740495266381820936793285903841969785076004954199984483160798154750229447949254564948447737941187055572541352661987726941822669398377487613870540313757085640706379888363069707500378503127695578361938084787178760696985440430143950839926075794470735542795504655845508015415893609520845186663976788540025928791136050139352996206407163979037449132732856184727000653371262534302806060469864460912359932897823308464165679236372755678883061755487177479528901058091006913253639147855877313372683557584296893362586129107096840525136047225697599181270315938722440896196820107356981621470017615236404046024774930413052524430888583010833487264886847094935309931757476444634493710857046327754615588350250103148838979966018352081814071922477690816021173234507603505138632893785800448030177829949631922927999809901818482509551147774237778720511438482777734996440410582228403631972455730756419940271691966604882518924965913033490053091419395475406187719701597428655735727822027688497042434103258809992748753428162776811523632400287984202759450554390229925623452449034194536830987638688184527315304250913353754208879330219642247968949197643265957782979790099956242878421930867166117881165283568480181320617872976660781691577865564343627031966795582995946786465759826718571645704169871216378284951416680281517015672597025046008533073936557402487560033538077278593407554533863727880240711805152611757234223994720463496382114759149419204971569938176378240227389373120340524838569807285847944867746720077313993230618931740158712094272030328999785128525727569514205023142621228256865951167764356035317318807843725078598937757947466646319742324015975897840137996266410422932420905954757626809973347600744170194866793248630394928878096545398531781182761935879280758761645132334948576617997128539154960702513172327262063383278491090441791498529598433034630889589429902184796960493025111417866837664468485728922844593783346132343639018082014036694267956170512348419714120229826031496054495247624730114855750493134091750624461577284589198820911860840619231050920908606821412486399911398020585891599566221838300408485811356255052827506661773361862826245986322472809182162583560227961370670286155003821310526703988156195617917145759017458812305156770106828832505991396902036011932968691575862207548081139429709217765792617380442928582826911969705650969141813953839632964579170118553487053387550320204935621696781775887419405537227228182499700287784196617158544300292848713066376415778816094234672654634201942089005437567221243376505915763607161394334934252480548108626965835816749193572436351994445070528111303346952174210200036599668942773542165232225646774559248032466562091545772438250246270930516434203367501183339292000874589538274650800248734225410394568550979345771714734334180991584460351351254127469572175687501572801147129857385962475084603014943542013327657855455201540499050452579206006877460045587631551305111757427098325516590468783319044536596120965274039120135257853009992062227130833345685167804665695382543146758992910131958611798265296633320709398598848772264947837537315106325000994661396843549326700105257126068265144005191539010964748448754888919633892915575953531969617172389713635266609277776626556354696055553426412086429091692521381753256290286348265106860628328560137928874820067257441786829028863242064396303115475285438858735016080116467294988169929231359914754519992453589016015082954634645100466423266549464036343647656994216781011116123917145406062585059617480285013186427954194290657601154076450586613153359333470833007458796361231013336203168068321864355494953566154896875019973483950849138122223694045618390983806667348721675097194333775172498578268310004725005810243608979982396822659584658727636093859520028893436531293781268388215933577754797676008525628798510616252291172744538200989356348631027348694161795014171262487679701593647819229644219713608572994973642433050737022205807767412161235989199518333856718103362876381318460012497039092733446136449354798612253932304799539220156089920913970992821408250531567318662960935871217539515042928771942290279873270830742817041068702557263389668926489366484736895260190073414557786408276121622319863581302736911416320550974914870905357787392221541856543482626363691618507925108659754882682492867742733176488064021950872115884971474117036502237534212059510657724849506871139247973930979094014444564455508119300083954032026705325590479671655636349331502876892491415483748273735313819005234255164797608912708787240228727833124868283182159117113037500937291290724748545485145781300038183263764325336173374004853031402876611149519548800376481377730121912242373473908144891358354467914810784692619117648635943321908395019380891427825448449635879209671414782265550852230531130922428645594564258064964814530626988576619878975014227141840030380598009886561806304864424388078826376640692231479578070991202308830842041826928691449334008075487049537971852625764635901537898068029358760562000642529730008846788461302404133662462906190108055937095608292271489152213846237375852439546335666856769399403188761367484995548206887792019065394478146453171705382010127652436930557513980793480582092993214136182795652835265063980589804919181068301274677511677415109793218782026282901992807578625184961589004416696279728388497385386060309081283267987208939630538664152719026911090879340321217907073071939366600110349433345141239990072356627293892367101972398656633054525586366740192222944167605375416669628475223208050972388490918773053332974746877079251155056409584244739693610795561250032481152524959014307608371242706528394045661719264432983312988650979613443459178531324827765062818546287501275937979682229498537095080489931619287781608973439448530243520050973212216964981997971353191763371229131781080649750696476207633024618408451873197458825044015016653666118264736697595085254491077016690700361032523921535922314042942531383867601649149556006789678601349218735045003681299839656184188712709543145472237550676601426580051025064318736504533958633037847405454571114653095676004334197252626674488445527285073951037467202537485239415964205884152713914396439580842746219382891102733102413294052085693759133749673806736163810952598873173221209282585370149959451508842170773780888089829681496339209285625510216928504796959980762255272685087649100849560217392244692549260247334405805467128834265922878125756429208405841394013058377087035734250635702215497441305958477190789591103238178173687050377404853225997818685060643049043590499293308420297122561374011560912662081240711017315848755841490867185047644233945248322805775807183183310945454791359098415505882681314811335868142783002322562472997817471556957804665053699388029969919421314370790167301040284502679847091306835273703180008997574984563748714742297351253915607962842855093873796207309227355917902451466223768827247988979365523403561329410881326639503676011309570276479961011449783575055006338567714122445970487009204128486352627185976747276478791682863376486930444360951451583250802134994499811218135358617869356280119066975623407804112284556055488935456069730566466586861892932630069470385478725458756120053105134049718356921316782846067366250983677147433525914207497515846426311784094345272923014489172878352087914588979936742396630070735004394262446720424867505595265232209146070500423124051425870996579810226932799124583707215806693839714701920337052070725147943744364746054802024205300624056360705088501370770927410276680905288302210508005422891539360261134609880561943933753107395916872979083701347802644380969756965073596412865944661015924254797642545130566548266811138086508174215515350834464343957414743960056493048538783020414809573094235360837576418594190827096625754009352527379316702054845299816857780611945631780028052512186425679329240509931246254572083558854099771273422014333475908755216023396851724412439585357639496298381356796112566129966852992621482601274014256833042056529451147458518780194684226332756935705699544355748899648397463066819828257765019896941240076011858062249003864069377523512852176295980901269080590626328709329457915831520604818898469993697982606623910391716231985273476863191957757377137722558957823194298590623228367632855990383786118185363005579651814624027150958253718424452836928927661805324002685107578654843245045333788634445408940605472801203180660746514788487779033661998734934789511764706875495924476291875837029120243680663259748322397846903302118397571324861127133685002728796557596879695381311793058258630345238290792550051650833570196631698923843222455671450909098418502794123610886002080708268269485280359097634932679575194527102067698123894784522714197830229180766422704646205093834359049446080708910773591128005420574439696957464777397193140392736547537000952521654142636969185361546768529675397262050843115570297109863612287590449753883654633729189977950654453503344656171254278319078646277376141583095669008812948438899287798429643250723398179118341156741919791492284223821698473153422694266587586230972764012320069789185486525657379487349576755103353955763329984831778929550095092187441332962607106848079150849790160304644519422414149096308119279893615871071873177946663102573201559396662964351740867201630975285734240788733598618377691547419567374891892862805046274694089514503790568385168989060450829987605253345845744462676291743303019820518223041717241855087754855724699715903826452930915372178735208066848690102593260802723604012509399466613035309672731027839408849097368664118161814726740661816267871658069790209891332891442295483361144796183924395225400063564742401041669333129391221596062509899377051255720171352764997392612862303618111070278780442096534836706879107585046535313188605729019573037354423055193083388004990302649717483979977586174682685360049075799407087998396383980537561661195828204323112809179704097576000904371529714349622695696050198313642835896591895424525283058281293773287983022921940548085606244262748147275528786389504798303589278406672063942367958868038793026124632534472603943650876601229807310755342954880850865163031010826740847980917631822538770621039919879442351444160330621974112863032697906764245911390049878870515642556890458683099672572467841307507852278358573687585661771341078966945212572798882742270982575259885471869189455963204856958309803251702045587519409923169197217724917359020800987827670630728861145530266791724816307229603038889088330928894221446194069033323714813772163065007295846787888242973802449355398629786306956394230066586962564779701260200759100937543687264662980547626793930062473985225879527964788484901184964185804818010789915513622360662380928644554005409627246485127944123456719237475064689694830714934326464276672098326038788911834576781178887870726067183933977272496785762685955431588777216290770350026928071508266359939159047872691364115046247573536864350988812154782707396965992997293333027235651219420103923068297744991764641714253937055832992291729581588899934159258562524957939788552332675523091471684855615792488248809721589119606084202813594665844057260093975751379396579907972601774129611983521780873330422172184544284075540835441937353088916670694201737031753446095628414688007077088745148064260401431169684849456368308620418235974204150186744575275063806782688241193532609399620904652616037318825930073347169010337375901520449269122434298141148722690539311321196280229250362709262549874916979796356586798602219172726181932100187109837854100729852301781999062751269392687192708741703626659743287231317492678256614707917373867334395679622090356330023097182830600253748415390709818848872533008132545757388684359340904941683412439115475567776273708196323496966032823092520996540561224508359048732047160899143242469740855832486678458139930919578375718330378470572515984047298091910995413606292812694311537421622055141452280718530294088625606057860989543783705679260634547834375344833734306915335608614862061826311069298756732586372145145629682030426268054129217552678899066815727657033536174104820256547617429348095057007577661308894621296758574223828677507696350625787601546914664975323123348940304146742663890627268937957092990771975018294190177152495048361954954387611010861831537997385595742309438610411013694402463354122979228754621431348159451059302635937955314588499377330996330196653476278854682844798170303719839191821360809986309230214440579265417132125312299249391899556630145618274864810178668582347403458662997692723091313862953904575926852713997818789224957885660627311904130288810441813437393134715424186362827620266204006798357652287216524994520927470812574115278496327555127230280469675136174616461314464721013436162399289554809291447400209218406724838225462572336929413656665596157550163677948098828562560203569183886247934541807588024590687417232054980591256923168465969797742561068466533786911963138728076432360362911657349485531132000718863553264093087554934691346637728249566736764659742689185533380405887797794538767122091815773072059161249570568538461899649143180996028673328397876955195376311937480785440596262828308177621537197941143563357106925890903140024225686952666720423035786497167437128748619848346399472004864586486802599727816640790521977100746013663822190619188682885761662080478466384858850306536254836366635596922879505291467681114517881310877817341911043781072771280799418690111677297974937495347469110920316061378759959393810770647758873046374692935861604417855810462283911165860926444636348665371363751984212233826662440113601468496780544037610511688995803735850785421539764629061297342502722917999028501633437486472313564462156640643386624350917818322237501034023322532512679686694298652829833962168350923325848481780851699393731073327702113149071886019417959133384583418871503832890978442451117979475659988186372784899967297530182793623091700431004794996008728957974704391007843852298666530803155848217450555464281886928764052700008001425839811399663370078658279408571346507570553726711484786138091840083063959969847840562686053014545930961823479958488438326456947009990558071776134061143089957168434146650247807503297855070507416531393167367566243024293355079890929133845499955538289327974956580464698274531602534305838281949652876769503292553323246513307193618170589418343978003484019711960705869199114872097466961737725838193733400498075564519352589596143044450661810210931032070577729095006694418252352491644956493880430557487211766137610296817029780028035416278095179923416039304393134837742532401603343393321690379349439987836889533075498834904373221443987718325063741235042917818203175787384775286420583025663361293190442239037174093396615792731270193975921477218425645297697961658521628411432380872152330828552621783870851929445854776187816486776550680737872886308078232558581399264233322922695036293909231105061762792339526808884053832217362272137181770873140436980817803099128247571492429651242201099297866070302880420129886399606994910504309648736384054535523829652415779362888105621145418945992946288902742405512049557548605161493118581201922245706176036386444718317714771149951840456497636876227314315485649589008574816765661088827116999545310993619443336191157613318453911276873326382598960100867321622424129771655184149011375001025895361659584441778656833198330447512340481628061414562829629360928456321184215194334504197498917471981407913787387364110944022258320794828299742860324449491779107779112179948089833765009947950031641219549281480856947084606832846484157652059233561293877116262405755243123241828387362574670868283556320573806243479947555623566870036222483853970570129650306059051175708841393148869324932464940016058991145982506396772528431654214364440692899886961765774580701926148170657552306866153598859116381338319668479839839664620842221901836681336279579939618105169879685224487704342248536308016318453120863893797116666033253121613561395692806500024643597149533154326648288348624938780223851984006780525535740542152806104256925633327201490635810209336235391793176175155226427070966690112937596579536827660815899809262967654761415381425069925346987148825110418996230576492145502812969031882648834729102489075351770224340906141818285545590627092080604542820835578901972014029175596504758928157145496274327162962904720943411609126689994411696597968942614563369017727653154186037903932954706430720084724428356344545657944739037757038248785474217794329870313165516076817223039694510994058221454775214835570117234522613352453437151495292498532462203296040269900998500530077655998751012857408277871644278573592768084163392336239567343099588199349820570115101746874545881767811275439387173465660691327670801655580333391362763081299874564208386453747510735044965857390457803643184919978870298242428639315923704218166339459443929205517324240212294380663448461882140457283391231344670409983436274703069843827461352350207613574984279007689190537933116785398793393999589814201472456404908042541831660049983296238063847326248392204559219324036011701053512895303207403639102680955760467609975143675847562169159868480881383391085191957819412774609380724904259601892352552906010549638882298496341516342089363174852667168203949621182924233633659107280501819029994041090094175516295223627017502316819434056150980281609196890881828790517539158242307892078511132518021011883255846950761669119820482655815999773359944609464799577494914944260853432995228374730835938968142599891855765822953962096472934413271872659095010571582985298290905109038242523661742245401753861405677498799041549996599526536038714523124387009501934079400338310007105923762596004133113899995852158537987761108346114177408791917198778222288571695907690996499284245838754200973086266149458814000931101903509763244392524543731617531722579542479392056063509520821009889922201707629399412976608674622109169310095423549384847465110260441106786685788772939915096530754813744496088316087966535313670581485051991330377590365023806142096933040420025260774053693392485897840965941569506651942027398369993400038438479689156766208257512913528258447621721891135239418462322441891170358391643846628727002656104144866042948069474985332404672280873246637983359691909027035702825459948966064692038441944343438774498612573793031984382308898113433967515862110147240951319790387956165622272043695494582417539705523367526076238748360864258444358483211432673940815892677240861547653660210814112728245835437152894407635270438440861060608787008603155190356137774686890498674458049164437202032155085676288764947444367677579189147545134350878781317877003558173767987258144425908878406888336590835445107327053437247549327724679329252809102966438189427723099804853833961577298837619030461165621815456353263773640927944144564751150871545342084410147437391511624809687042643906819431532316717521864450244885413851527086114148643161448948321316992674464455867699862439709901304151072648477903832784424513515740560960306031540488171120918230914265165027559049136412262220137887146716681907916908110832456476565748479642204710444254349072806370155550249963046439016220511891154188310050108069677263054328356406992490720165222090885202191753567276391413662196207385393968665042919410030791312920563449101460951398126271773296124936695092186900761147033799757344035350386455598328918749292679620595295737883836949872489556344559358652291986936797838227426566486153263061815247162151444250118444057952758710212494017815251761014301240436077234447283637577671899957261662849143581695525388238009200109450252772180835927427443974123724759470635304290883593012558634245599146562973651831914074954049427506077922427359420355617612082196750919617669651496314351920578158104604685517556834936823709444665267346846904658692033149369519731817375847562459121676237810778539526184959939093719747042400461637696836993806833444772628059610587979891016972823529734061238838912435777424569496485697834204327476258292569991331652109846613707930190596927749098599315778120609919541887223987028718491851719096942387487068077798039422728144833594333801651354218519508887798454666021907231975673951138162260046261989173922330324465956255973569250970297926298437989087720843431740032620034363367893446926767911567327642483808590749710021245564078737486006229520842394855709317597141269309938472157989278541228694979701294764858866388136555655217332701699237520842862291495409505195483560691624490910347186720529085243046971599082916462176413849062712702126931286648914475235407283292578507389137741522238334595364505097690114859362371946919624365735285828191209018102881783254272073901736861434719122753505414406986170849336444775615228192734283177010971015445992438693788896344706420735163237679214118016213176465707490863822904034587810338291738933797671783693699746995898603401923032413393448172620685896576531643006047761795437266820634162855037780817384617366452148166338543112827060385321485293748150886440147185233465815644953007927547064745215205374256135445615329795968155432026326854920974712704785316580964078094965258306351777266605349371481658344398117259357602427683498534364315465877164054811223374962559383723387783491172188175123709568432765069011130781360325305469971251565201128987831998310693999147410580469737549524000773383179057988807252469256122251073302460222068564276985092536557879192543886869036805154161078387353640627959896659737378078208647873984592975968645560559907584251530177967812201402223150873894337514327651052517126842441081544041354121667878480339185538337145920866882128604961023874263114468390932826388817542578232880815378630917252986169583200200373771721416272737485343507198545859396388480946463135448919417523074188881078506320292703007413903151225265591224232885636100590675100174336654791627348374885049304045452589830256189403562044314263368052519907657580936826930552686257154652255770389237020257493913884563366326945703529280284748505042966551635788628346289332749434671070004224495236550021717131140236774563737881759514545310050293625070376556599523667509409189950493458699933002956432624521210922785721121904607461436951782622644519727637068051974483067831084300146676227140159052960308292319656358385075114161110785418888575942347243278197895368440002680644258241692353690127413054345424501629175654439186774883810380221831400726938119333954607968492406056818594123924918806711559742727953249320788413524546194009282605455962395043751142983207938261483797823551261745768279766719915024732810931580615858969820585235149729833648434915962722033917889516720095993548706973645427541402864343354235352073350537787263657489571418992343630491568784454251048231084244907223081131138560952600222448677414389017874433289575251300194394182672497656281867181026751372503245514065865924302735865966075731998266704073661473080451938793123366967698056995991914426932212234508464102468108943497749191919234887072705162546992754826240856926876947478858360558970029559469096245411900204837560183931719534034703079192692248809122230261843538726496727895354315543734743016812167435182712218912927994762855680394113809069194375621015073535164606497436682366390433308738834214512760491725111052347092858905748929676109721014120814493477095646449315554836473273426449690294128576934717778486684539541535715433067783591943034418425629020395694968398187115852938877450298025687763330887823169068182421156039973317038728793021859243992022952791590731513776098237854801836935536083513752717709067643963440673552373201434083976023247448471174539435580109258096872262063962506594027244356259273568155134726475883274774372991108722534646304822911511539167634411047302650701964834816315739747982006276275917490044736193031573663051732537461790142044366276251714443885203779877867718085850056162022361201291005270966118780249321089761209140677853204584316550336434782154936566152590629045223607843059549415674667295558835074875490267194398883939306563655246938367946135215190410828131680892128638676184994634371858006671592440304573209516931633206876315583924327314370071461191247979967411037068283518683733106589759294996425951789323587179480220794309160608720356775847344515728858402796823845223891876354818617055201153587812855418913972068185901016301619534664520875060433445640655619857556721113767169115181066533596467054384628930645106045120529807560507724723657489606297027747722326097292831556937180507527969265770619011215815234846561567906432088021550946948244999400710212352924021391351342646732551515065577435642141648860393156052971883791341276767278057152701722991930139539580997915020464340448911489171267842522824962015495298402137424110736888261474990007271835874844566929403735117515431737072704403249274473574340924541430308316585074477898152293715777953398285853751146448738949302182313689839468956395966402562665585440190507498747597891078851450710367198813093065125590687843629424925449755125148317977485018871078792754304481907282089277921250516830902580525044669643505626852342996354617074608589276264820366881941642323722818521591574245364163247053723007965262182103472764805652720206028738068719509333173031623255556064427431359737894947859322283461813124263716997610302152713169968427150875355178047177083148784900665858711064703944617427802654368128958143712592936957935042846094297314488300654928566458657013549853995214125963672510510643983909393384253917480241365957937094455424667597848571857014374862545959227002894802845653687961181360037472110367863015700672539000363372316554603048557545198751456153715932006176071906722765789154325607580298374762560154974999379444425853878056240283252601121591041838017672706751611201449709347663715124491695193207679192740577830636228678240498701473665787306377431282215123214508982101417173674481926869628712707157410961676456205059928527783150045996215436433211047403243810925522560496830185239851116806937856339840334037023224840244207101215242888938364211524400745583717996417352223853326939165692398635481636478453682266717979666596936638471163343449384550888952132214331808412286624591557422768779876050476716665061923111878274090258333860102269484832409583439774629435994631395292340516996958643263977948628068550049853796513835090775378438124286031739482946435435943043777913550710383234062332012155967615807107709374477054695445894644115518365714276273315280366817816820096635523308989861503082759597732776514356807904653610040618431521242669987352995314323860613700054266500596479508679463591410947948323516190951589832817921217155069040551155965189034850512194115765432456047892580958299555793189620494380344093519620136376894092253014992655992908849226668334140568715915820744323899079948857230105495937114958229730649476508051978156976421607576552573091532766333661746549118319596016180598074208519174163256490535511317302039548474656489550636988426828217537325843257589713633396060199025959271681867068189259492973506526739422032650441706576279511812999027497168657778175166296618202720378238132862706388826804518395072057300202161453321168182866146294055779873375562329190395412298820559347604357834682293383835302649321078726895059850912367328024508495312157738613932352743193600325558824318391236074139430249351439719905300949469305191019809108918261452626664595870678117815811264478428096113093952301597815826806311408119714955644467714024007203884695634117076332746294716711116440875023477787475235396884499175443275525662919142276362113108815441863348654102787077314620720423799485656447110666212883471411626787804514268311889503079942291680676932579595712284669782556575544215351919242910587293249853730101873378175239123898729667793181065647873543061752171373588040577429653346929518338152674668693764659871159224896458962410912657796105314201843513315779882154927356608866717970744868060774241250822050081112359146424470468084692071462924766413255461139675043781158662202511277339953475410013281253943331349842588855096469282803428070031262781931479005305265940229491708313188352617848075041908244830267165683585725670907234054458093387510341242562044387618380312292343377381405569666947048578813559885529509244111333197130892117908889623706400070393202001809087001080073294802191469156747328703192010681695572083619964173050043469303830382695734729087091430603031739361318108136250596615517972589423316142446315923882517939205942000069921219830528603986147588934849029498321661940836501851306441641025551022233707909583200914793970768728102801054562076152359830642085373865933741077695942724980565380755770926592819249535688545944537666429089393252100311042532979610037823732031632746289479172815656898637278922072900651382696861560377495385967205203945760051448974391609771181616696124367546927381228102692296274020485939812436359676894332242511022166295208943782761300656868793364931146523453052976500841963025146217919498160288900429214212156125389928074747817636997878727203904107739202865696537755496067088059050064593918123728172491019104094563235281955045039015342298799231336881742771659170119842518499286364315917864042608923515169127167273017079734992536215895060074954362355750028794211812921700043400045657996180087209607998380909275004749771879442267851821885171002180576038071055209420973815566069976909593905513385695974837333240718300749736168402876815895814567215932393754140597714774140104312463570711873371867840314087578102823331568845376724770182882892555143869779462981979652061119446863617761503085441170377481261475020461155026860465042462287214398358616159194462489208725479375558182848496963373518747914889857238959141722719176867767511998182155817753709798576591627616901141322727453299167833225184619080409327178518660268448672596966018298160803593323725099815913996420829650400842537045703197292845022209056965847097261157079103777398321101258994988760541565668447170275647938790138648897099997991173523193035537611334841231141917870183013123850358264959446014371216792274580700778393924248306063074660983843436047996283046131069810501136025236524084083300666938769320565065991113945424361981072158989183595373445710592422547701642888303640014353742757161717744128716276758232176705531742600385463589706165399784120336572501266816772027697133341261503891219615724255898429182933714856937034345897318615679857004602354774309410079730738042466937475393329685675758208969076503195944474764697674021985436349871532412078769523011850116953836095477682611709197999832905189672413119340199452362649329264841673146454865268667388134063797896934369428632690932753352616123075306961391745617488242742748569415812768995197373899233208215213002932182474216724737797289886655495679612306392292311252707181845997514385113844456052971550667582798517784194966437175814077427660586749266382382305377062431969791752838459361746434210096294183901497836894141225068805815517232991184145101755941862025289099390336327023885868241477802136359609949935915279787803114597144891739875953177676327659150567392316887279231264517082714547475229421774383878879709060602242149274553908802495337609881187824260412736900610899704495170291607465275253611572497257956703035072267062086922895080616175597040918647592630306242040880715957920475440898081063844333853938056370929572390692505819386182305513926628888462164768349041511547216225879172951637697047455913288759649819646397161490451912253270427124233547606890463092441872406651802301733597727144789764281399712072812871170855551001201636319983626922198181772123254352193440635322739165896922947441519393339836149914787547757735343233032971512174718102401344230710373428782499584698200485430755037407358360194665852647994596411531471629744884152002651748776970355422602086866159051008083478275868087931192679533806748047488438349770921805771713307867299621361984933411873402423550101519655733420557783792602752939294126702757491470975650982135769455601877763696441362723883847561532189627813528745364348726656549792690501551298770805856846220818717506471583640048556011842951743008391964741392313892779868374671366627985796266350179230113812044855520931308926057912713707343834854292831964572291366622021018245989466215147900250078574965196591142442012066842305666657040062253368784628966782157586701865814831831617515660301081835202068621822259977341988330939965221918898499514927154255003899108681454439922602375278639410308625873324200215759479035999790227937427898951603154336674977467625837806560426434636358630717501178071882670079294958938979080386680445716338402502307315488426841145368823298634678562031847844411599659768610719863904297949576574716001297683918615529941631666042870021929330410742219874619089518204811093585038419306663386263258434982294772797651105981759534867770077718209154499180878580794190585087655785893356855665671630024538074451252244108172018822867779089400317022323110454988906535428779730859216229402596900251534455363983896375637453408806991320337567535849257397087119331230374636482417402014308862810363227470925008945103176534927587090616555707586291957431934519504037271163147681427362249398157673783902629813562099047216904284772885038837214028655915751353313930530251987502343749191215208340305388801442773582528055762263067127088300974715702581795915047612330044152022860272955471713764667328632541919114194392197244540501402590108972423598482168390409389413566356209975288572081288148267489852162033966941842266048692032254413601632938247825549925478379267220492444122848570088048167594479266222315160780458691307454716798306713459805147252878583702729654859065978079217404333882112975780516385469760583199694752071633724880610091730797135337497363228618850570701191680753632853521439077054983039603062399843825887447472956976229756652257584992897520944564939396651362012687600636384572652988466723704455857904265961136862855048393131344954453239259380625579089782700039155778486988555015025548805574093738368458970197517350327040244089344159325924609088889965548249509886914398671783113017838237723216907259008837672386506992510424304251372613206828495857000089672957931953097403125846524758122850611064465160259461318920357738613991292770273778895568578745844278434007279300999831562443517995060814533507328108117775475423327392301207797373379603979117157207169908964186559136270190527190173368327651406813379277686252718125015308959298762990380790958597915328388331962652048562137165708799033379725961479287909315970058902474069676778173275799941242501835053686278897422468481769270176577122083897745209887655510624075519322011307753006315150916747891711633425910329462461894906632730150152233679188608654548264955164332275490437047257656398945509619362891026121400020896586947568637298155503983510377486993533007281942589158089902690848711471120421460634685512571174032022163078482803153082049357664119067742604799339053072777443544461110137122687904211447601321621561222985982573800242519884003328494281332977783717199756819449371881499358949694755570700537506428702545098074692977786902708948905179174961909772741625799710104588879842751031929130054888596995227001770154819196474734100287947353056691258926359927274063831015102391881457279400385059480880564811988959750602896159456636785335240775763308501904165905015684709969270063042207865563286224213387604421499330047042835256707268741993814517292275328915523423322376301702183566687356134276617692017435752154376803972335703361833962337211900018971508490979952276176757217456831489390076288903686647708475400693184653235278390624229819931876762164804879936570945718147949160941146034362373783272321044471333304792088655846346261732196018663904253040853574446898257031473958072142730043356534720735024547591212981211192609198593365457737864725201082865846659852770009393233329565320994754336435477593798850800241497468478055142661492993273020342155004869833370763716275442973998000207599194770591151756859534217184846426025782788460826348742401748249142492485051999096623343228095404107361786038283047245279235277894417674931814393861362853364368983667071209765404849680306092440915343271887697372670211339688170367985707353311263158203221182514971490463921495119317712608267422834968598110380396872586624118641909830619748031561553688637582794277553415778048763971339834943560995157333701631191036730540364518006341926329773915143844447234787925831444520796010051609632566615236323054225739497012250361669174323278395459725771353532996456082961116557425898347510726268710685031162397545687595558407652916307400472424651921040441659365259192363294720683073015662773192313325395228251051799555710414082968907589868989168254567199284838019369688097430171997998394099981215257836507897499528873229002330501100639582543081666364120222521226349608371893692894367764331059345751871946805815021907241459055168416686180644083041505127592247331971690283029558156850884301598735634898030668019728403670502271998082052325631682624859907133575830900267438817907583943330136439648795666037527354381650912912085224561606906995346068610558814072706935440991052352616183551519452060723378898802293487897123900845656654116527547656488156572395901494245880941070868147098568790750064261808614044287272656187253502999207559952529986720272970267548206266096302483573961754833054999403087777661596924634786016072879234532851198980419054880000710987404241356674434941515803324478672807434551329101436642912487818271448179782713934130499371916333881758175565519227378335928120052546788957573554235097722731020671986520821626377106729603314139785372899968125659061909815420139711600086661546916639513154171728053475002152137235899324012473014916792132012195820847809335801125541515692434055171286389136561272811661170255974650511731013066768780803063770677910447499190680269873816126714204110214694346689920764967340846490878930011091842073479711376467906108144789020375761618816966880213735582748431421937059616416340557523844915202313278385790297993766550064157034972702732929139645289266095972375325962736847611950060027697529187782962152334153832719571208068137612784241520276206529413245744157009836613046355753095082444155906426367316075594165926032483974374221154479871940985554722621334371286208440129571406642997388746042408257869791215429346472098676970450167571839458264974809564170246578645889705813417219553407382421414630134791870759117622796768497169284701802631319632992812391406023378107560279338576044814784051951698925511240454169398826076328179143712229022243759535548689439466396676929472104090635562841695650638500929806275512923323236868451777746894235877200863457401283745870404388329504068574319351215536987257194866408925158137737583402653690643819343120654255244828366764379183488827528711887867738949934725478244858691233763072314683719111067000622103978021436748492453642491176252058334271309798995911655230112890620349629398211615717669033538218870438539816184181739360342478830024641514037527607585202760521942658846172925970557545684020300995430794326044560702734268528999436898324103056163726961814961852126898348349918925434502355424916208659599539798649805160893449096278411631086201324744131932247533152598652216892113124865591538928630985267993648048797866828028885174664128981167543581032805172952732665285799599845346579014254920162728465596219570031993186506481898957081031949023299380768712518203773508082333996224171189650870614338399567060342134593513662451758314798266530380739956121666685139357819010109869998378131084177483001384835275523594240342214380956859455290651183239102726355217467213124814268964644697403461372152133280742644549580759961081787587348977410539847755295612168516196826161010071141779835691864675681742770087426696913933387045840775307464968036833063402982161221570990415824327283930164983423901762350959270260684118441937906399281271202565713807539738354591700535822728229055708636475708884190380585483225912173146908587872205759103655172102113977625157361406588864357303555817008782433203384827059442860144289246481069068691372113584633049826244041168150550279269201989949373926439308354858960429996620632833366043037990214706049753942326025777578273869278051660815363061941900836409055726597585807655914289338912465903637823812598605444499106591838460185690055299029853696219727986742656783763174390730038616022459848363005099696323106075705438391320681767337040930509006935199503587358924425162358033225147536087997465673576041947996243685135636957308165833658673468398640450033696615302537075163376465847397601167658880403657395707484949663092257583593915427369806554910352316890536352660323082771714536396870322117686801226406868268973596668420046681932931098537046150130044985971452231798656456525198209376184740589235073635100582946590122730927801383233588240141861726333434159853733316267852679163621713652123553337765293610833937887644271995027612099557584646491125328044507668435481695006445635403124267242235626833160319396985474528760782008402791918492083709053584132297885909799340893894302119647548392464668495665519286206031109002806673215250441228819778349381974170745414549415031598039835896867704814008467281668345462879783495501284420067705518138419789626733886161713780309568295512417855047904750420467611373387308164297835889467161705721738966021017429907815445501323112710001124166648259993078082625439007276708796728187159422321093456675575374993687468881679140060299821811348653362506194119188328326082157228097848843458371330305881153704802185992027357615818827763070566889674378181652567675231920072762036072612240427037476218209875904773292473836670331917191268537867832161541536311048851519140755705162611796479950532647822913126789198785726143819387475961313983403933586097222942665357555277550738456229269764324591319391213786395198815505783012764705773406013466538946995690699010932581148078727172427734163173137200316827416073111675789996617558495588900198386374039982595114786347960851008431756169855985249572178351274787727548935728712124571562745842358189957258149325930684843636950678073832445861669868128605725042356196419966915789925565605825244761254829878072534973374976642414791877331353398633870460747162179306951207211154943949891475181126521090351521626136433302368547432006664832922444638655077502202808134288405261355894320802823990945713902474250352923371972572615062990770286630495931372590632002448725455492251501314730589044691586899416322406265635586053321021609096830356709556007871840534725653031809724391801103888420756092439181387292638681132541543628408742570372174606437218503770296124807188239444830581703639603439713052111170844845418592979210910930617339886738984732425735190728957119048065804031317206806769800367373893127490935614692719997839789353324379272210602982565166424609262491472501485272975413977372522718857180869143073672005843364634361966129311055527799901504943114983396238972897857415227382052067436019528090548562529177633979998213089973982035474055639179782311704276876522790673947168126365513622304151080858215142009334845406055262014264964785533195496962716390453289597531497328995179212099499925050114991191993708925331542661804017891933898222670825368745207865996522285300880179277504262597222634923972320570744529745360933991441966813001930743776599455924261708369036351593065456664956111842866461194432240686114467451200552213084324138125506131244558688922674122526321003536737273366426702161472906920045830357576546396566327369965710955458305581508143330869787217541436841531116574052559646769780722851178539986817305422299670152899770346631528002899146798380609764580586973071202735401052415823154871445410756054524231176813016650883379977467023535551149122292395111838559138284973207821812409757334294113391772039449149990216116271165759164751126357177750619104792094400583186860423835735758070320552059323694446189162709124721475373441994242201088593582974214632742754112552940812299692880401451576547124979055326145430717434608270583494992916100351900556771007510627513000057734684164944631390290545007475682528322491951597335003070478326566126422894996178978894005719696277705964643076192963845034342785457251466335636373571544112710991289777668397924401063859912667993702832549066566540682486887790373275172577306595119151182059649550207631458225407978814057035462079972857738765969729612322200432350813523119420917675723589326596812688367642602228011254486267631241530380708531648576168995542148058291815158559809677816414622045070985409630808251622596959868001757511383200632566305780993507938131335294676667754363452288066886703008287668419761963119892210828999173012940014300865804948254671046760768743312829756955488519783064815716873167955197550963466855355115131532558407966398995739363036297189138347858991610728340232267947618716169569364525807316728597612730853656442409755691093261011156379762285451025655231808279266790022400300907592871013075904364972218386248982929154597056633874893887601548986978739865564232946389086899953062066910906712007201750597744484004567887007107237448086898714911639612278900933878227339218538245448115988787382815886448563768201379749360498278235947538215788347325662623431530741747392661898557814082203294106507388894906032416163848304586269958584151354148903205111368040546099517858941820681205402560672822169133995822321169952017995110004033398838739083191582844318417566315198173465667858720222283055995957294641513720284380554697171448775800797635505637549333217956699318369823828661552713915763892332642116714889845039385365941152615875315070055990693304547075469228128168386932607477956111402775469095044872360153608557530306320577230417310017464343813054154530046301845918325814223120543645701158943965169103823585860923861287589363925634814370995358318416834008500538167094038797579586216707093432723788110209915661949552000023704723263925858625572246316403356566636810921518564579507260127680759753227100746442985878755843066848086785532003288531591390521430794169800909286243478673627738174569677253057978613243720816008619230883274100404123603914120921716390830153351873224778767881076624487292765883232585658970170389996384474131479887252380566304006880803975362205791517524575832086565718629327800306508268900173046067957872108136288900607916146441528653452069164668766623757459332880677072209429709922803571512641257496672536566392992969464184852445767626457820210081779707642497922365567161921676673403665736688770086110489091697472453518991257760205648111741451227704970263745222130828920524429206416107649166224097948013182020487770129349063770191049065653115198517230746160790313569481562825529640840497415280324648668328501593192753689437045271106806296330919999520376016529525678425800937109715874492822790321008617364645972353776790475344446636962937381543549039295045562901405530503842841353808454011685013140946453915290090662517829770975591223530920220291894066593245543765453576341463520039867518281376163434296001580287492377056002674940183427813935562342471061884906699367624880368223959690807710083486255820667945194585553000827248676858799615192042386148975450475514891331278310387446327822379836891251411024426955263041419358227342415453575738110213864875513450862002428947488954394025752006773657115645068666832649269961143932302893503080461038620400737808783723772206477186188142501633195855121101887907381178481918189976253620340992306061731787735810024742699989970267521210823743383386413305378856770862979106174215893618084546635035055643960004792891921299635582288695426433717217302485956547287406989518565659533675654845580308620677251359486487874696775253805429384535426142103093663853985904864619264665080686173889476471457996123465657624631298983257831738398823670045699683903188469342080172152066832349284948799864342675173201034088432939534758497881162771490191031598684101983340110801307888693266805918259730484485209518033714213654997402778307998032404972126072734815884991439169774776616773199940063462964510971325182810326011255474711993519424008344115120771895087070079580610939532015686195467995760448337394451931305972347127709800487210373241550478423623781339779209948073469720625312538225579965003360744782148295751679657831125107781985399842843357307537110809568586222150522986152316433731944310600245963000599025733653486622229732346456141217261747912696477186747626403139788346112428227367633892192213815304846612404031068626780581381724171384496245895669488684292547336947596143389893563230739565724578328874715466106548758722624292151940732928895700274726323818943694158314503139879738714864663304850747417964792793822055985077819594477315403468900900374884469111988131148829610184524214941224330067149837055495880752926730198845358875974921462310357102139718153496423346077947320119819157968186230376385540571439723813334748755685214720113450545225164568598639969516679150009957089237190799802871040026864552633695801471763473512674985660390278284074860474379456765328494309153964478371057278834942519208685171514832844044439031708618663726474111602227801608837233691401048918304954554792279701016736595147331244079995546312755326040774926057179487624490115217113586360754137579625632052574475029456187572183716658265934927688991870924014331639046518197927650022276661341511042591917494395475845755495032004278445150086663241202552996301390514796840081152263780352127087521249855460634175776333338183659475046040120459823642632034539968091295266628619381382532960225968888454802000973023904345102535188868435768819764163275532902808675448839286329787837631914454459657005853275603319681306762984853705968268136303791406931863360240230143275400037196215233564492916477653134663537485091793424977641569129964722270307097025804848721890342274498669052315829612316679140577351735029074357332407619006053240101909806422086238720420921641224437156308270783176296456514373373861937706862099807533103799399996455278944916187317630171041791240516959636115098585121885709734684924039134562564180917831689448081108908348256094635675281365811268315315357119957147845792925378482047066689916191317826714145099635094034197513679423759486594120005714714210947581823842611817980959762073239541295949911204616866235548283541573862276039890028214214302762863863228528181644567487609647675541493662191627046312475210144091596215957230114845634856167260105975928431925302235025599859986615181049230033425671899726717796144971331221924973222290142102597912306427427069534869808322969834571099457782253981250510509638838554081658262086714444018922447445820484622521872823436392752330830535743520910948342384378409224004999942363356344337442523335307900986886855526113502452914631722384154394143144939874934491006103722004375590583110099421253250099573250176284173470026655141218081889274263277919055156758712624861710202640968581590014820380148946649019832788880330041352951651723374854166620399364631392346973663937294007484967850828164182509522586411414934357143014937072622552129131502775018760764675226885654112890134487350471802086076241446401552369079797173627959860575189779844918118011459187016102305515809063612159342345817506364917683649644163488562452346414687398608920977403079956422912303329894735897457491350450772181847290852542201991370483605891979529863784282685396070441751154829312045213588711528546132106317630970518126988525051638676472529340691770494395391480497714805167914949760403380377733952438099911652067852476514891891306280649539037180869921054901723857338924355230791912338185066113232671171408482298272875828025207349410984347458988456496026056183061738732118283454289691527951497631432332825045883229622991401892027960966277110111092341492203897358219083976574711126632822520298290990109589170411899163826163490202746481291840342132816181499937598737480719454266893273565428460312812226782328545560101761672126680783821904075964717677650525200558653317887746640658462336874227893806232141114062313014547775294040123686870818714941500829426943483723894330164588924892443305296953957904803014012784851987053787676404368791694424161018540019699615320467621636922965632650423944795551459258262162006499643308618394051532795020829866270861495925852877855969724617933895659183970286186231570396355329506919188259538326982857777487268349777574075669632359019245513701569568714181793728961711654373788268106650567985262612404365847238115021873975466694751112020029095891899005298965560953673434042426528072800193694390089119502856007887709179112720145329123309187021145154642002251152834479805631012568604250909490143137561788873320748022055979048736460697300860220064795085294096764067550842185095244994008290890043450396493200716381491390363821240796538596029013996662101129241313030974291148947251443145568055851541720955465653063961681958322332881939062058320066419903692698922488633476790102591482500320664970233531069532776001306234455187308402565592343386424393802959681906954482755850505019190049232198103182772809294280313884550446697028423651397395939802811729924906114034280659622642433138623154282755986855069303268273180425962227602976506236966416831879186749298763916924782045956437477779804016049601516997726241493626563537983782425245043678247249159954678692122052538191305009053888782475927195748578852657404881085215301746252001335980991790302484830159257862826310811575500524756712250760402181897798898819780888263908821925689107092694144824048721029963868131677248559711877243558033721234812388427022737157843758946844032516850874031044511067233714044211587484590045043444009289332811699472350805505880159329553260173958551091040491244342644139197290093317370200942549404895134143893201215276199862368424953372154561220763710465253930622564188020648315109326831664222546737826986720953219736656391732375104055782599396729777981409457021426732845879922126688400732402135247947165404624516692085612300371652918081223386002815566839381001350027650982489411302183389849355326450565597161672500242876536063440724612609447341980046044505488948905909230784812276849865912477119372637612640316214113067535514520142670628860584783746936582666951618408611433020348493415971838871909247625091181682419185956261037157290369668363636385626487169112468391639909948478978566689374554202823869930618260675443053400859118708013677454820071386522481831929583389967224440882142082780902651876692429920352173518085322858286453807472802997767158624128122547397973325989279584319228982164620214289624573868982676239904692482671150591784974181304191902205982473958888825747488917971558056278209377901320476388887556487802816363279066097368837005384718615509370094007717753345576183271879653651622842980001938431857210746922742114799624372362174665960027008620715449305093224582536835551172711631998310254442083152682396165085041574049943783876547493525941187082439847567190970155218134848180958398509545423631599946401311681166513321400317846505747995684887770421451434960460473004193748999871265799406553985417313676525128381264825540116573547315541691734315202597195098167743521477589465868344005193989679407862710726576605047084576944917169915760477008116286918199652692635899048115782113483233533376223488673332501359764397906988386166114522145761592038770090736591935507373082843388525722653299866058368660700674975230035428825675420877000768281090001269681221025018738152634557869227254151039752460558788643071105142081749430447790149668968081208448943343458231261913977168444012825117395673812840665439356094803470316303250898488810890042139210780121071526004797707764788161565463159834685405922123176476871985375515934885773034393972430808781037011954549707374478544374737881459158335658866894105395421902443773326625766385140157086862468108285681726999546973009064715993557769373633544273411888106047659827126895653534809033379734061925682743818557977878068825054818463017171249746837039403528974315140457752273074710005075857347602103888562831752080453889533358251542847261400506441912620307949129366623155322677654750378082437565620934380862335165776285960210963909130178987854559320418763036022154770053213656753158601572781684506706332448198452221751894359461144851995134588928439486188402543107073974182325009755781943426108046996387036095589944009324351229093435822703517371147118751470867123405657768417425400292066318428171002072892336547915320762938600723921489963257641492831150029495004591339377264521969958663556375682185232060691745593889519763564475966169124032571134522948548462839001225954713512778954536102258607313158128464837639131141533263102196284594501077109038359069047645435106741880110651224629840167772621683830350125726729465145404694783813868244278217684994473715782594554815927842877721567114625441391311350341840285536990416895981664603503579092912451756002752666110716890851085247592428249460455664733393420389640159691298320779414195011185579656507718542461125581476932750919070531615166871490268560601013656183542110528730926914645065568499174209000040018659950783210329399978688717134862250112691238359666224139832913347065649085018934657938441394641530311790590215685269051423578785604688924312861782582243537751299067095460018509118733718814430119457508575515077320375761075988847107323414977541617614379458078879557053020809031426497659810577977611799661123192978685669431942068039388229913605889533319562024595362727761644812340442193041246093898658517228771317692017515670300040881216116877315517243090497924959479294245321833728554674887330901058941680504484708385159014151451275363075276892520068656647829629330219268984998054039551734482443887296929262740610544612998519505366130413191267389863063776164940935978731739677055344512350307896983434927228244267845594570983944303876333006373654139030282636068684191593466159755058772688922423208141835548688673796101587039170876129002336987265861955087823284978079153060076101994640599770949569694562640641458885844043908434637581138458981334270923898075679827517334754405315151799958051456767189719904333924364992139478443309315867031520338334832580576230198058660016749490351127992466590262753984208248494330036581233907872291623650261883483268569557302136634303187167541124545163624950090138914916450899832289405349659720111130580569059238105516741388861120895801580501838413875182273809819763827033899938276742300525097860728674438687880674099940124186587396460946060817387587710829327151117558268118230917314767762016399721274130488158131975607333034000791594671904899644865021626159685484029868168768500364498037122170853733435256725853709993566471053731062092820236435789317419025980139758720180050569233339724545405669692576626612202559288921748771351630285644455955427441717827230047168542973106805388938355104661664296979161675430200911220868062767838762796686364303598590443854234912092797590644793721480913387240443785058367694239432063911244519302409742039156953637503498798493119782981304351741058578219761061520241581886359463321183595441653087246869515913412883772669930566970000138235259821835998394569697660782834838333212924555485414951386083282533232380907132558512780052351288576485011710864218119691962374732390534512117036275036612936299519397113385311347802162651041926359549543081136994145237107683661077170207742031605652702342314460315963352942897492253598784243968384796815892749765604805965785468899184754810459280664318860613160249370742405501740012708409806836798284231945213472833339081465720837893850676346821778502202747081185273630072477691039909777292703635052065903144800223279673617639299982847505554645306127790546346416956715898284827555526916865842767979146189504291898655577541816212361215762923156880511630891075074624995803489290186283191343742911365854959798877381095859888816743428232928831666772962091941990800645528031429183890853393052426757365006523895475465054897992598684960399608414486486407304588092187015825893488393969697061711169782546356347643556595024833336526318075788341173695067620062517995235461747067118459719747875270593960412297411402457601170062172922839875476638168878465494613375744363201076399190670249816971399030644061313216293299088439767649371740187398757007429138202615859239639235227853736745643069867154542586328118674833574753763891582873628230670885405294314860076278866415778053388673901929142619905614997449056662895936943402584256863027288172362174765061906214014643187167017968685469258472685203520915706761806143726632974391844310887796086127292667324855319502883167974850973608969177243093285992162274953562156313415154348418224072215118603893064645386126522362708043869536755595366045851151221867091389057785139911885514253417814511924769819585101825268406486868855927126215958735222503674922443398446179334249874381476855344121094807627766409897532545154371187836144568181970730205739299050671696290802630922273600487569793556675534257544196903914017765384985869751221402167608752905177663082316860757976882372325423741294764446083256036672006726723656716215218571015803103047973784911991120357439544398272685358035042503434016572124006514691138265323917285412992385398285348030637278093194837638123198485861341964872454871207921462012539679333673840411808415715121672034679335366599259988349517663237748653904470007539205199443378958526853466599149713450727105291095360107503475997509543750657102117510484869124832745147752038315379952842650600794391144344929353000309844517719118851411758310381065349070136248616900246739084083043747613641513535723470896921120475539731566309780151665045338902486391987753502058659407759937278424868598889293794518990687952244633166781980965567147738527791444258691788681685372455629035719989688891242488052742442596003581316373284363131557117322026510213541153873520118525327165733104214024995987087730231102338977105279745795983344398503395622463306276896643581075418783763834244768857548659485625417064654813736245851172722170724554089560837873511901778565090963403439772425766486505493368688224523774200583982574928608378647640703828273683224010859871990003138566879285138890217267438596244637149173213125100787124563354826545079612962419105361185627184273106730525492404492043298134334907311866157974674284342326568856557699617203280948842486218512280140074733517298883124446238835369520961539560372177304384600927486652995644321383067705988787735737803705010426929789906545397839752004322092670758835062345106024391915220822561356913283195938824340808358265753091143321821893503621251177225805988979413936217060020057973669509919243961781638621631045416625296150976659426089948176896795138875593834849952414920392950167560303201820570230717644401047636282039380313834507796417525783892964961499825994002259251458292378444988968971919748805062134642808236984306110184108885198906056653361587196129983861098577618374047400167525825671331658979043131933314194583103473613572570394735380616560625254252310177710442899178616104386912187599015920018928291337377915540420171863245676873659622979048140089660898316066707892182436779904190825331386920436128258968517631626377709938557067022175484442596230934925303964363059372775445248367429295094745976870137884992597172729306027476984436061870057862206821876257443841052911248843751555288575688368387098045488382144611788541500521084581337155471594412822672717602972472656043720538924932925148568817375447065859937556220383758949393865130740857775853829410575388123520340866369250744065834957772014877302745986963343953269620756102750576911188202653295760809152643111139282260679169055974094648093176713268697329339495703460699532324275585366318857690558558999628916551395359491950459560397955991960816992294399000185337596285763889152948595503679705441213222633684702613031243851743165059196857323311065009765783026641821249260864792355296800854747820126761144053465192066718800048940491072383724918625416413752874115976980042065704448972424671572954722871958415053264930730755039498312153603565229194689918494446458034847081974741368216808377780986722767194884229367449934932803327096066367434681983198523957709904228123148649888721040777256709641564774587986893045502743401113421243579268670963474682285191366724436388508136503398478585743141261254933939188737505883532210579291573732593865686906501946271480299546288472135365477831431947398900690815229397364818291679017330646450464178252179187819821668047413548796466047411554274778167832092936564198690625074803729186828797681994546696980619130757393226668812658712783469715907570503921135377328318813230352037370772334767345671824046788356724032171988511784690521306291925313525263255883672191939971593515654338562070236702865205704282425934482160646443150188210999148898825231632972763647807551469431565256302699774442165931387326263534458713535795361144580252368486829545054987929838125473816755619813277911936156787985928953826414409536576876273072622397522051821215671583227284278919629566512369010195967052833457697815840115825033352620404579878753800413994654444141860385038758295370556421775604864195897416624581524673705944701886778297388639209827193317217049814396147892503314144907447755373100995626948698889599112289621080216684939329528521143327445780373999926459824809347522734640644336722567312472263161441088657205037923307625765918940618343775267623526239661719212998904903856178291471773289353005899827500109471091257917439600156392329384001868865117895746113317661379463359792493745626819298095424350400974845038241189730155090866201869805753131412570926109725049431973910711560559238739580537624723318738769199131616258512552064626734515063270719925963141066138816875919435588927100174622239185511502517187645201928697133079410524450912042286626586929894841160685074930370813690701050029290386524031180708574477166126778435596178602055818966929501973998161031503347232024995206852453115066588030777780654485443850836386146256364093702361332078723009717253490371141870391217652649009026386444822323682838860434363086308235044938344178655317793189493066928974036294518522853136002365871889994608536010982370559788046163238656621491357064802995075279916005029901014850568806723645109423341537475845569723236955932569985641072173278000858494621299766445471007222133817808837374382648265425100456302911621902718600894614453714043322302296931169919534455355736007492709363677671818342067861096489379887373570837413219615482962255261373794456375783412797074352529209212535069679319547353493587568603246886503004158529762992591226405389719002218102553401209511602702800817337869722986794580929954058314556475307256773534537015358775258280250325642236105699904429106283036356643065436769991622011788277806413241375020070772355309775179879343034572422559719751100539360065893742774765711564027843774033230575294859428516977588172966991645111776791133893206845989198824893662191701376938777062835024961456188119768959818130959045043709593098334939398318855228131736402555547442863306492053365523826091574810012949125200819024893765049904849532077119317111283955037315403576544720471884520223832882262714171266868406918693119187183915556534019536106811857333802321974519806018242546558069835964767381643829977365783426388454279833607368921323249820268274418717148929790123684485443710264502187940447951643226642197514641052414475319066307534919807822481272876493223818153180639725559430105775500883450537761090491454384117257956015252930781369481775239668959225637808655908126319159718535037209078186671470077477063387381164091982590843471646523476740262753160515477463924934048808671400589400634740471894822872588139337500933771507163830530968735351531660053606034584846295859895649720720291474621181728111827965507755836549876285404247721304705217612736253325648395038519416377281299762903772920441183476387790904040934432809932181294635680737813737011432996824077849202041025481534273002488658281485650452612708694912742113706054714076490039972474751280288264849087231597350450186537230824232121559934562898241272695933802874853877015603748616240275480066492319944372408251778098656994755158477954222142934323710234916378871556647848248547601725536493746048410768696176475537973546299140968800271969193977446700377872390525726864808883595961207965936137211682559871169369584702438553355483837890215603951072600080753200453423768661010364449159147430301551991062840474343518486602216631059307630353793734211408660114725379637575002245464266177803157601067828122268464002366074507497276985935880585172714098759695673866289008467285114269968498987019381881915647182464504658276345376107997748217274946596654865294592367277211485283538083340928696364705877971162559383229073463933029008587650552209727210109707643712227517075077809026484188439110619577117679150810765591131827166402812981764725431207466644618697721531027965333416194522377423662489182674981435574754580596214099198014305378641393693154172023890241872418409652335449545871126329589304065329416143169306415495180625574038994614008777370026375284878342594542322929052182777287814648063883585567892233322079099472499920428754755192247403025949585207251213517927807977259236348141667956737248318806096175566959000720278871434325283975681552077136712668311766972441273420276887064692495407693912681253217546505032524459952601739266055143336867494730514146548287139919988761090840976316044200991370105103717592012091788419262492460488230236818988034837656043954761217443040791613670826986985407591842045586361606737766072894100181381832124799822766309718648628679386196151886380286349354375354332226327658938722074369182595364532629348630853060004508455786900074133668087629058056755099679143500640762765616813256946957263044326741073212163922661997376040862641048009596800348834666254774495541705207823639302344933128396980724678415859619474296124174064030353130624563991761146904469416691165563649164032931402683412453247096607637019930743932837166626377029977860279955394129447307831390259445943812541753231255457188385223606277802102602067355904762208848984962913837619063059629381601194605200660948838268771685303133645951543824590628658796456935091300590017158102341566761093405654383029864441827047965234079729310245377680855454951709801353255479641048391445567296864521028806750347750384667996685528041166972530871614726700559980006041538352069800419110639028908563495071390947230501317403984088140186265179905220026524894253247104771480579926755193157132052132060881706014775145476615487088863490724575285914755891969927076358262532074296883215452001917285737534922315318196033513998946963768138896483788359196447883452183891292957423585608296302148944258113129377108183916975877302100625986827722859350086144306124677419816054335699378687746361035547555614780174161986053872174221644313395959452674705323425519095801133129694834402311684824198777899667529430274608167525226454090849907408564909805074575107557005423242896888232722424748601058979685365946384769105481852297243761716519174226900187046216750103622402222335000932824268265088564004894211391442348571259645941673004254828022377925991763791428278711206686532469078261217192177378520378653341889733543930549174008812829954270723481428711223999449155166607116111885227435094493533459199050775843230084503973828712018989354155617488091547132234325594962899551774954673910857440222306635617800488344660277701067071036107745567884690770086124847924924639900233168255405487981364032888338072236954634826490402815608707558974901567584667039712504918500859489764869674321328306446133564148176406641606230351507147722198335135293828952690754971721048080219405841568032328284895225666632886668284209869821513482672215091059535598639823528361999148770833922615778577896102077340310530393893931315442041648013267602905540200855987202804655731845337389697345889926486000033946591157902209570003189459605459409796323523170756546358412436318821791471020830323426336853103502360871482569335787954306443056257824455755445197115847281947541993101093312809740797791213299132011240981606946098896821873126426044327360962004891345482806186492452766833215217809851232760788758895261556353165041191009788681323023158358085643123330917570193608460372600255792848368197984553581591197414505340657763488723230567790312218019148407994990780955521698919450954705004353986159000029635862167077786926227579164493570531787894769520786614262663224002758987507394522255942029479399670047245273153385444311646363065609903842217814509342695060059462889475217299986042884018035060435133874343686032656904932895481949682026284964116238246816542442014042533419886225054683818761745212102846747504471467134144464200462643649094981332763373575518660825544159783622023281901131039706443448975078269170560521215772678489742760788792710942875471353663693752237291952783239569842943934761660010746248463112267336715118845392586865644299660527494976420636401055369688401500334099084498497501820992176235471000162670231653196211160862256044382333944175287308320696125991365952769481743650732569394709394457996035096122470287039813287179417499879955596953268601714074012612595548591933486980972808917635530857642902476023729785935967769712028860532462999716017208702690195011435378280625290978049045469987110748602741515577840417297515376794504076856979235448644758636861071753626650287663617929579844465916654347822655242687949782138521314792186578388746218936265027585586996811294273663173270214733396989009331752896131249485279327960845876579479051481879153929837447561352853326289901417377471624130804634039455164716191470425449662181027169099227674113952590370599336556143906114266044985858067453215713489033788293734408067801341873131059616551237809118189038585503387114477413383948060975054904541505716727268415641180559220367745366041597245635350924726039209639897563840791813335729520262632435075663721660246740100719401722105647154754599841404429281487911992677596475049347743782074329555366703332793198792064496297793400043693694474617959083580075878948157318398686058412987083967426859687555088563474894550583470066821360875008808202663649152507208128763108146229336932676917513839954465975909111864793428525333910148288619417496489607474720666372420472606889403335969594127479476329803700674571458272031308121881076415195385868017895164108073804549530753027511986488874883151622139813652471647380470450995100112390453298722618282184333849207009466817237098149318268280826841294112994075061403664330531916938439361309896505018094208457563872665528103367167640184852858869132688203902757311493184308889864882175027114566298915815745058335241512935833312803608778947541786428453894993302827934387907192972173837508910204923320200094517484064711992952292385806662112672193242413415951484584906849099527226047723697665986061115861600410547281862526392655428363995424580319587285331327224920232623733347974051042222450413025346046020454601755923031699495027033416191946116877661890428136571184362572163042832888625451016724855013332263895241009486444913992107729809654124987772618855647714960623796694845868245990946313291385569830947345548832238226063704880005350405518730046927064409724044222019324297488069319922213077854146773338453524032605060885390933206632206952391080189709694687522759739768153814220746655975599816558119099979815954431429480833678044469258695789294533062038752375768347041859651401354498451852001823625372483212787589717179933295696953914390439747331458843991759040399588239766613528247857274226472361244105131443234342251409385824060095665716369495951269923339599408368171587801177404286781230679561269508815131015252990821085324758494268562405789794551133729751748677646047326853578097989573117236342757840627650430997168527371147518968211401995074591808789919141881821432187746097446577808437663407745790532679971664171036982349230378678865887192561744216166920693481478245239247380702231599888275550177204695237067490099178509508408492646169291783961158830407653114915064908536839817173996523334187270634979818179596558425361943049994834204595184167785199860427351569925571058542374141644820676833423327402023405297607834369488770526514303496155821788795877400558753586627081227170929677969983467525788022683920838648362479618878916293730960202807941421963658689321498275849463860968373860917741631245457573112413691626802077901001985929045929208150357959367425780883682060740520148876459875194632660000338411094079275775956640552147703332607287880886253081724182644404486451984985351927615105009355549932062242108708962756612148280272231439303667861610469413083498000230420881072465423209518840650739663297869051684345253972611184627271844674106656397970515532134590370538893314063118487088470471098789899602620622340892753011021211341846786528283887715034626980244180988253683021074815652401271968612531008075177355013746205292257507577432034702783776144060672402169770519094833313686187662456335780317732691171639293451253662066702121866503709840263570238054248613186725552270315397267357318738507548026606970619267311678787764722679029060747743418756294543977752816435817318163252071374104098285980172955018105101909409497774855585254004850484213498971791590153389018669168334689961746952668926614549505948399588209925086905889757758804034291215405742673361582110183449869162035003286657590161661819337265912433781232044241202781496177756996605216480077395645783193183095450851019271574063250409430752675565805996393109600659287247459333090269936745353987669813922441854335400587673374173924267036083963710292967437603092001479692851339093806967038096668673580192162914705079209648777731063833851853120085765875180990286394301215527205431076970467503292365243294825931571624861993319132876919327096044585878382475527760738659894659348031832528776432646892449391322443403780287830565326168113690820268435358429848572831927832250693229359610262768685479828705212610130675995882734446081849582680159379051257216526583204983318436496234674886403012818593820712995127239979665486514964380405716463014963027300293830952180608517289930665349032732421729092161045611607491279572068178501007169348195986730510508839314227931842918831241502371593799476128091751280948300512502247548340094538807735170584510829203423467235941238789094200840683824791734079510373794543808328829540788810850681197861098172123265222957194671730151079845202818895060819421663281194268003423169491547480941182188885431759232351814147337908143900649113413810106160335488351772299716928114594576099412472445378698482619541093834615675318951687534004196305166556815199589365332716242016155404691682095385931585082367601439384997079368477426247132937762509914502581055589372534591089334828627448420483516761700730975760543085038763154929067591318209641646961877254918390121254237667908804636764376466648563699669508515639607467765418613362796268036675634897956017793111504020112043247797853485159549709247609473466365499393980708100764266890590141007891112195481869017200856659751478351194066097824774030698123191301686548562769256378415734304841907819216292360850118612667184168287333108228793105192458046361453312066347266412261981057009144618102417264851993427653812237886797184909228491150962813581925079684088765033958526031840232802000555914074032308269795646010146468392382215687729950839425232542315195036861328803811323089330559802962856992299039254555419396309407742606232000330064876881006572716824718213657740713046935608676796716296648591510325402817036979170515220004304829859129815394739860083135798960854805443543063233143560282367824583926697873002979664738370156625312557633150209099670942840838095935055812730655954371330171452022552563238809714194960675828215362640607256862138955328122276606547473551406776276255680500836112621656906631232964950057331977082149974672569716863151313439696772121954956035871542672536861760778253564018332042698365115735706017492183718785070335863003359420170941268131238719643548996336764688529459179317721378592459842541469232475916173304000123447682650788821047670016924060505974982135610297244360907760551514355516067519820721078309893796620645168474283547611341108412486550141218909835109753414592987491754712717779877858674357968592545869282494544471240310160933094890879617702772682884002564135390670745690242777682499025573775564783245713829278239256146545975354529685170227156307181958496822366010444249775397412342644528028377858568364879536916011604809880472691175999206997066340912501494518051604350132386171003087976801270409421371209666045574251422012338585892296961025252714841073484169571307273250756585924370315205123410624400629791231947414086242072820903784214400809000415090603956693073742748481319875199688339644231636277834087502193463978915160232764742345780509981467572313998648342602412516322463569654597638405455115599467130747264156664790913435353148646376403891600488923405484294448838000332041181128259058757777026896031434961975606842213011344142519844492498586348675059978281686542102344180080939247340149057255351258747367587480748591404016063538400957679439904303441053448436054013150742919271488550617516672807130948018847225056863555739569190863385420779449480082818429502467107317783568692015746651130678564228799518322732883702455914188172482993246824318386304902113730483069727241593205465975636655562808582827028005933465372505904639814725782346761572322090010181292812603385813029131019968053877102805166402705955204101650626624866011050064448594144122671400027066289558245025413909425535335071921489830305408120326972924731060376644675166398651792185994073718022724860098328048769319857762339214889830504497513962122447244372803354088829312289095928843140034366371059419781190696592565174224972126255246140233893754830705253848088322829931201442041966660003143680453313694505393570096197756791174492584669670394269710488090418550270907976044995761597124377877947606767019671510999643046019767095881950865605945403006505302669801262389813312806978719531493077336418438657314544377278031517918953050855205217448338812655184860435108865692499522568477671636336572388010256069388033815394591864119266502772567410853518900464768635511776135845616977307183675085782416644278811183045930932646635287485494927153252042286177955536397855107378170608302227718843642645280389747842566865380664031924604051936350995579739481924452720105104624076373174286059251364737912430589547638896725667750838058522646968765948211176064914376578094623061632603613164197542460099190901328804809806147202455405857144880189629999477564024692699641283474887903603434100296222927382012799649675647875204940831899068672619346693604978193952615066913598210344789106884613056810578569081198868285415687598482403664902756062029163003757751222601384952486126695158450647539722584811615876482246744627219579865521940533000611047379878873507517511748255993008214981498236342157553704451060074637808595173728189282062033214129517804930867641843711543696799394646389229325496558469317848104116208758082959272068952561584470696237065862908524321618369648540923993709564179192091677835038379211189458757931579815722899117408020640322860956918736384238291111042690040279228086045625880912478219733373420700285350880936621170974584968235298845879351122237224801010073134686020287847404726107202614152886578003136790590678824213648775586884494933701649562731392106574990434306261289797014527986732875287606073989347964390022828591512716436321136803851173066725827139385999705304908778797898822070353404955726392499039713956023048801505802452113753274195865518686099972087782642721988757320327351304189961827471908427606524596451418236411016383852191613519775464500075563465848241894854425128216467006510711942306798778733890628246591918007689095273180232409992353248463207493573483178776013544057006003510706807788885251784735488890825621878845798228561777040147634193459265269649537711456462248535853888946776306998251050038564257918228379927392041187039902874437185718293343754288720355082856659258650156113720408201235288678815941869584410138685273723351729223229532401000958832619632099773227683197714207441172970010253236173556933772040501346984638900248455157530110571473457115384838346824939701508224420836332159839637248339869818671893225242329931168572920480406342050396143016760896980492389748999839013740609897012289016769793437773108710804562611326519946784501711787692909778254262529813421163143292671709952228243064728763822364775448233782899732439073564078965464396050665832503156255857861398724656603700104087539631966853405632392582472789146166196079344583347295501893840742688446560656078225105518222030316570501141978057189179491243281618599517817637849535569435733574896697012998362179952647105136262697679600588019856820225296354464203978642022205690394990351923886918061943427923927443231819535744141015765557062747122945321989548369885443224746411040389139312830882925889912304884543522697146330199419215725180161660591081769798456200624867931677811582698452053045240602099182048852667797750152468975993510442472256048666894974319042635959157007460170747128165779202076681957740612055228994456107643271083142432561964265702115569934694992236008391845780238282573426913166820658718205577162160481572961573055596024953873399351974906419676926720413972571720710689778153742083542555975232889389880302605844605699419318539578396610908414976423440058850948285310158312608655626704644429734608545673436689955178700367686432038118041685495393095130819198845713808344026584483250256668081517941323618796860089559265980652537877554097432857706743369312396712430896852316104994165477908151407582310335208039885074968562361025732096892956635071870254408637736500529951996234179225881869458380260312045028809884300899671560529018028246229650543670298527472841554083292060958402169237638301256195889509507365455600971452379914857615517206358614108961363413381628436722138411699121730828508909280375400472464472736478781256888894139502303134208872133660485724064257676744917436955783593451072411012912523717713325529654008084996634342765013139328066732980333021366910570398966926189867527701957721308174103113621336488171741013149400029591784202870376402005169443593374238319024530680568188869401105938768643949728344486376805550540467899235089772395158162489149328255424205458571852594522624366211736886086214714096990140330517276481427168844902077629191145495124987530965456746444921480660766503039746122521809781691278184025739311455959256405906785688053672188428501778104777622244197592926104204257443370706509025821846702209336239425548332390049097225803639544459510542718770157645287914443972807316344868773053669547178611790860787433489270258093939742847218867337031421464251381563563353999495917208012773659298662055897357916854016870361852023850932453135957418391937069833180109723427867473365575072623255784764234258283933252926774569065169822780185254136945541030810427874925053217337582850527773101739661061572330521029934814447040238433433818848811078376432753564913159231898197161243052102043585171209232925856589877275149153498173229443492008217162715434913627534335538054177880707889069026979629330479972716081803982030944624547448409328452056304069676730919185736781358321494573340858614297665714663262172407833770324809592851186688753818369137243675929923405091425250101372923861391700771665116490065633836819339151769925610846013731983332920537356432364526053686658541220626672268286414315293023546557100471087878336299987516441004507259010714037358602744560197353915721001491806928479178312660958511564247935972577057285740025124721577697335485926103822771375620713677194786567815041141378886789022731671497658444035285673352103334929684818103033140631663996276951710740619315689548415884444830750763739895744393724896978438930504627659449301289338336675554407140501982462691914179497234554599386057728928561422073585010004663205312850275031073673547430350059731561842335995985062067406327790691560697271590970214455818505715412140554914696499190070198461973398619954401954927983892612969292960862443422032745929144623694355307599553364018183363390324778666453979051335953782193676580830435430991298122790485015652794658662194722845032153788221591467620554805535574925679388444890860584650155204270130708498300394484328573713894606372362107424614788175659441496413606154009500304866433185210789672594294045593069635086151008505727476823417389648810349158198438371166555300047972297731663388493535766493291790900199930838040379307074860309539425702053155266754342136010303385047324169387765862363430681807209248499105595193864783879357313808913769060757649394108050061484553422724917846713462565147998304337600606253032570645299950214153441128586419707771718561342476925403764288177324832653779593616206119735704952495200228649002848045743141697291471401572482069559937714977767276003937230380102924385526482846887241165966243212336936978927141502660785880170413982383492994182260646433776244817715913508436085808709940325393455671005436045176111422023716368092435766608758300973853440129955856294088814221800022925719750726190962828699686866953304158159648483540547358356032162973580888930981877112278206967161218142857670773258302353962691796853969816949304910220631744501336271748127786351398825601876741315060711339767600531490323094580159824239827321081331680025979646542851210016107530796739558011071179677247825927404802407528106750463565285048900833149712681629977348006839063616422084677703915775732035105598517569408561269386964754536573188288138963050663096174861431897287118305312153061134013730227734408063066398759663081796208237091015248270723468308354766788263230183267645441503276784893641607380399681549565152874908072655752017153285557918938429949956851181603587996296620285832973541339190109691786379328197346497904208011945345301406136713383699989109912717477705800431800722500584728174169779061810495861941773667095033298190749105848178684116180742511385120841112877971531672302044611734594658834138085284936927949968353122738527519940540326901586863932505761423122846799042019987970109382659315808242577784637941898126852914613746463587889941446111789188025109716274734580080043300283733754861663274948542140189170026021121833344586548234981825254972610811021800967267488958115099636694332233512022970086861820753084821004545679491064061048751640430152429134614819267789445885848608254096195335809285197063046171130265963671495698910235427709184796047646144174129635728774571283822590542886385549449580827241522131436787245807574293753682481542446272807935937065387702817213620389335733666412245328155207163127952550639942431223253393803970552860653335872741761157455830533686690789823816070976495529555991134481420717514604287806447846127231798595396325650466626639382413898366449396452605037396647517238549471489934121130679930779751501143570504606140565556190514741317307216301683588445911620934165306001227245829326943635671430279668583302469472273479907300327959201761753847399154510591395719753572261965746311470968885388466343730715310119083448987359542148793659772158250052345857951223265566075416223371765726370075894316412612030934019157871003040475438113901801881972119845265068679132118416551016037419460529518023339605179564937074293566977166380843446108109743759867072853720476932761216527126299694410211031359637916490646073154735127803150814917231201194393907149600634914676350173562250790862622009209145440254415270382193211980195077730776342054747765925475488077102295814229533175609977729648349941827056502127420929134481017024015491581196582449257135458094442128628221127604954557216026700450077371917454755404673936371065607374918114906673958562497439225362392450946303995148120177819284741057177310332266532190299802398374675466308615849031922180732418976821165475052117025542128409358314140247830064737044489086290308307172668986777266758223388654596375323964550484271901557239278881742116603491938533504222693020014574972164321462775555825071089984529776417264283490764303152212091374194109007982931725939761789103886353952072714044787637412742713754100391670400784372511122882127017235041230164937231966451155442688402817089229210622177853954633806763461483829291483886783274069071561124461937873907834195340619659878864886166627773384667920940133330765924506845252620703839393384701996507074750411531081723336971946549186245802480177348668573055208809479981145378337045228225495918920178642361354536314106675478488408886112671749056469514615348928412792319841778882756186339088781181276189153369349740852033012308215972372983740512626164276323336297505019518275988217780571965170144664452375709540824727314445939179968887054237864097007476887617203578583644963841558213894778065164497441242053631870984658521732452832536348463827128209969246732714571384741703458491958057255260353820589682893364164014168998246544834496533232145205352302931061403301526661844547073065836682327111261855255335924739081871021813343010105545204252089922320790077649111076288758199233675788441051213917698449734938517187475627200791315255950122464982476242208649067101521419995442100714086071528500982747717876319285821355817993018880766090697449773724981688948909638130070280416346281998125345492026107182193749072513330222419798312964960936498503557045085425691846003072508879689154978164587177537526733088771992577690672150207152128597070169120259240846051727089854488492902486268777387420198014552934897400115693100214806938754401219131892412637797281017634296758540096678845482904219133848203063107849705504321626087978349520802480085349300070846837676985948228909779192990965146211461285293211079431070642401905192746509430627391866934367571868032480101331172070161896168268125990339259529416630550506790047673063592688341764644930370751209340267752235123109533320020105429867924190189742080018580492227630074655708621700614809731928310113306050108932728084013436235003404721225583605760415298037082225426303497046993912100843570053278409450143983855513251701107465064984387741360851864567304990774971824680772815074981680058321364803778615648324815026578405608347135351297365999600943261800684206771500956172077835543094440663796662291094884484751675493536061466370186748011353973904964025442101021889727867037891449058345758387339828719465354680714024001370323157374297123728595297059287956040831947892460593446580686985358400298596279752869739396428136607736809599015284954377393748463491581202040382975041965867095992796633125916015271252608246175107816565201569292651446509629231817846952202619980265208457570175965672848991638676003860115566369499925909226898425014411848224046989195316698613598090841840772526478002215573462864287340291656208875225324906788574877897184618310331851209259344010770541649135658440932390389716851286409482818789805552517785861480620140198092363021456375631995471474524464820179131224384337175096909416302397526317946892544538924989153583999980925169689971973589851723399073722210607845336205559118715770548316641212426735408545350970622845610749832783346197059164090983669712149686904588435463897051564733819949538748990545013312659933496844938472051282507309507725245580000781838254738301150508921694628535094584217657388719525077136401458730969702272330140997066157661634087793207912704930579589426338503851787651883740833874669073680931282853706122954555284522266305715886825108574620043444598041303727696260636794621141157600152499762861279650824937087856105576710477725307836865370379233082860832817249181500675428258650640188267172587555198729118903077464596657028106126653222823320251068105482048852589075337769666545202422300321302647442867322372399517831609528167849033544771417160595537086467198858370028044251592683464575873737223937661713713238287590988771469711342930283612793465717185362887350304728290764905958153893555335080242272134980240241119323490595164861208371652151765746142888546200785042114826528203937199687742918685419287939837359393343024040205665128118054888479630323277910622461568553608657273009402811589647203225848299275445022849509356006346733845887864234872615582267435466585452330744034209172334363813170812252053337088980524932205621762031579403973692062654332617391728758027469216209281014851715496599781912531157454342494495618136862740989878050718675903500341231765347789845919911585873800398285145217788935406693449360218062017983944853058581165145928363706024471220544238297969668523010686647274751601216931197910086316502814828091759246625421010605554003740183572475433418143463362433328803134929380874713712190280251455472511401842910863718103494541987118181756880937285491641559041546797205755974397622655712843701891275842812416873413647518013993514773010497457103326816780385486638829188898905313049491336400189549193079912724073026002401579979489868324886445910111976297603483440842379247684274850587613972430897379928587351024069470818581425820189468881705300979318342885466291749223861622412234681850394405269762675911888298776702219771246554189996299685593530200394435356751778313832623773616346517608403061414209552916566360590954464521992343862772909954465261998800542138835340945790940224154581853313184111240089158493352925613394773732711982302989732380191352769875779226674198757838489027501789396120794669587056366683626889023880493851804474172507649699263870523117648471276721268668102028748652009163148966392073526887822015555357987476343180003221755677054058434804879793234170588510580157801787506153266425378632173174779272224280554105696465402397549690136487671010725563799239459805814922349584720478075941413324660149777790300799147090527494626317023718556211039892070397888115940652699591784743563104797040341885959808630970767402353276326477884447398993616636193437360598279391885608609751907803168690592884293609080497895049070366809053416058987701528161442600985455613184781827328535015424890205758463397455308164856624838730553813981927502480217746582620560837663019897311475179638073598479752700651026788552821846388635410475567204279274928849943625820360179972090385103781294357834371840269857029200180766561989425640150399652407254113379399533149114981746800414854749002114215208021074510608415257523538935802940465046133692289969028991871493362420358894518984006772973769716607123678561314600989182530972304674354517418559682068171997656951983698549469200395205454494928079098036167731359488430947980258465166658469132459686822352331673115088796212211998557438444778870865691053966483692532261619840414954691609377099619537621784172736839441776639319823023394868193273617299234876876389305172843431679004444940851411418932574803094004255931749905556854390984578018230457511446711288606020834630295872182839827636783117364355446751485292536533229472535708084549076884977438346049925039453417236317865013615234091113203036385963032232824220194706801327532230353059425301682625771953180350144757609009292771623171361104963427142917765794834135318704895548568788919627118862661173664418162331836100866546666260865122407685092156232392112012527744921962710024937250251611965694775118671962229847781926876646423418723433312846159044460532692541372770910775883741185056189455095667621686354318940582179439671151427506222295024072144787444214727097259768021642591012017178764450376313188698778487021004178548365347293320058326974677319009699287187718573661774674156338435487611165314767165769148929007675691393843508009591476312565532275497149265831798796943817441010409556368112064424060914714718739811060149209282860765139881879698790874403016250457208347606169849939774382106725079796459758500024900559659632499204880555860882108373053541933501239647200477791292065520420974241952328474309947627453482518386825134980159096523687050691824230622702481586265635997798761686341643527642529174153436364605856628311679290686540040152522599223039506593891400428869636305811859210262614463512124929395083304197376391319742300186271688477212838051767489600328887995811159250195926476215217061074853774813383190575903836863687178779978734672547311783440466150059712032625834823234287413718766068595403212814799229267168271902813424669530181061628297220527918761149511423253147172227238344423138104613306201332287871096153474847292401068228875360674576096207513765101370914060593660463785507988451401416695357539369310210915197495518440502092073478079801025730307905127932663813667044048955072942147758554556452838764072266539980242895011183203715068806409890526988267191908337252867281720895397667142209701298038494813013865075306450962614196986035174350816877246203704606182591634126227757222518748229010998427544186156828229239277695997063967096634658863846609931700147465870026747089436759090640317685552858672968003077094980906286509413282332956198328987855040494235981123424063512584645283692681208831666908499902217947436797304741561332905829114924680273660884004958441536107087106100877795521313418509018522080229100515024451986489307522811970518079986889293917706293203581079452480604572405238426407750090688140688823494516469734969659592617656752771097585025816365041657573555712621169380235091732452359602404888459886514264823577388619444018392801952959328760164102160872677757499557767191541698016368521496705395361465541752498124664252313841125472215937777662720581566091899475108074349256524349043486053800613468926100428973660986940942849057092542147160013177679810243603120191638475434761374863423163416354235034050194494047268555679734661065519265329708159796052593392807856145971019920049980175981560904336902715924275180569737035180225647315344343349100092923573040813314044165926082936138586727246595300785438278499635177726986788267973471983238963621263853472869416248477489563813823047797735343604060531888012464306219543233632219426234849962102504028940922910377699962508549999130597231196183575463333404085370287887655551105170895675161240087452119903065985488161637471657275415634964544450205489229380149463238443869634120929910167318958434980602907434719422720956548425675664447822261650983472589953424936962108093228932526587367696281624161151979959441999745057196298130555379501511747914943131635495803379111626739463851194966036291589596696162333255363284214824105714775294839524382909109758249219197128373564012844848312955413833911160066213262873598919068015795852504941831373871986757897930357751461722894790584409834538226329081209130900442494422698853861432923041680087522527312653734032199879188347438718115738720266832288321443575008922997328915238598286769168051457418054006370216881733012441695962146564552167445417922821336789319892916649179808297600668227616305333491632543679052580339031548753023996088681542220413193135641185682813690358472020678217189016376632585800753215970721443278988334919612501445699253949336810284840882534502045345457371002302790237674347409340902890516372262683891238835748897169375034974963870043982371379153366250015029532907870888627555251438737904060688347451618570639142095826051101110648520329075207567343401429379178030724430940880698708880863678345214495885944173117201796922689722302773482253058819288738280768449783576763982316123398451864968802084062011950401910912376103172374297808427918824454067558956848422673318073589569767577999951546940461121024363094642420147701549766344464082229713476645094975548788209286085518113952520477406311759309303737173729639559486884913479633421217030941189233715646071571195057266081678840857391811008879269978865490305632668699277261004966958861979027017335132200779920049669516308374958277272130672466566109497817206540206876091955315921426432391642467072524880559990943602849490999279824313570227749322244824481104220101174701906576641672426633096238165413131061023850666718968534299900673200087666319870738829821668306387466009238366893640553314890937608918965717263046458510346281525023355278973467742256662683700132094558069299709955020135123452761940070295327603075632449212948247580562968445597697305814999129242738474095174794573476215472207770449994933465066438405757078414381605418481897203514130762824185122526821386229653341889255406074296571163126560720663899672902332530226602621431081488742573348412730331111325738262728952614712636269586686692062579055216114508537920104711243773352353768020076065284640126555720467106160472594797092444759771825003251815981946192238591980083457417044939214881881487116284806068849466377917216562541856801312110911191968099224508279658762925667009353383695104173367228745157392051052433774544957058212167778175237087149341419232948584635607917589314201557250651825592502204231515108034720550104599402463744073362833712193382890233683809220753715876375729372796030272511372909144537218294243707462946063658618593848907875862470616767614937810971119645741151567999215282473714473949874383402690656630599260272045090263894062779323784704386545134965740795461712104159289414165448108522192889329978435807591220434831958351465819414130731156439349916659945233528383775974073383147649910585325624993704331400547582662287290400988359887820784024529254074322034890683695580955195217343330783644661140215412492020691132606940191975048136495884357833496642440696270944338480178450158068288622761483008151338805948836654183196504660434408957091567896071575993639144629540204811314780485419770064063056325288855823708483688479477207136930603433539286500328677957650126006020827217983764662330507283808840656914046079781498272695978267717465697458851169856689238071442405329398211358467830008746790055404514006262256895770164526185330112483896007288781311977742631871368394712584226870956676164821772163073255438794408298553516316945907238780087601094015129667391365483856519688646527632091965348333629082498100491704970511158128669752828947081856410597113092660423120416637655433013159060529301753582776684335943075016594275279867006668067921561815497800117660886644171330695787504682400336987400157298706085294122764889603674912395892486598281017001498607738096947844527543877240423271200284411548259411932184735218145459238861089971327571050080314990636761593665631168154220169754635043410247341246533498477461148226538201154952890121011443234800186911885939493031157818904601818720075453789468727222545269116728298629086187479192678289401057938069666313178742024513626164481145184538067580675672240457072654320241143199240850539963933956187883393510303039971992198803011876498491574261198588349889055396270569211782636694527811246563873443066310302493053766884458447016875892756900790832263470957810706330554577122820159152486299535072919875188859201548482313795171047674833721140049033791482719117198467770427402681411494152525701675593694039480072512456153003794257602779731792060940744376715872515345897460170113229316900919553204210316078690925683562394112509585569172615414429992784121635686694233499005267781373818839174803950811804212900550199939203271448775520175559945976673104271025331376024673847578246691130056537568485888815680168165291350785877464936167582202356250635385775503066938039203832206691644867058949735441553503660461933426258820282741270936086193399398378520618647667155297739037993259559013394076807533103825662106959874867662006146289752303586244585595990011599940777668082299006540965931197003234020186311465405762204063518830584700018372665451636206060300234498577007585400619425586587665351479273665080160669174454842267056803697458719057405969257334553373842355448339384104252047580602254949357073574712967613390032939127569007805855966797510099957801139491805483822731760888586069050481045181385324069059258241584349834301514885467218780217531811633343640919840997265811016494418895001249330925820071063982268915975016005326119545777904686230718112367746145334956076893231195918137448794531462514410162891723225131771726058087618749722278652805519747955591747867043638787831734173390728853808656585738656987746887052700498514753152277180279326925715041071808398819223051479054007363319563705027254761229704498145133710329457814031830435393064609851163200844597622521013886504004919863275002614893235109427183802959754824961108514570527979801989083531152704469479179963017802657945965352671987653050199415580754895950021477105078241634004965159112384003025086570884716239396879617289684697197379983464746705039487653650827038831912195544744685936886832241511976945449396254709152284740568844394234590977166231391912756237385276317427612743896275458297046781562301358614824842949459850274626061369251400134635779546902176424112594499090951136047535058401900517332510522097643048639612718589265889274374278286082130648061339036923216873016368952454123780172585613744948847864300159662947598701245895439493589168216695681690759277460813654932864118149574820348235958934969076974128989106844018679339709679980388467624168881846021531470452334489960241002155362061608597398951842356646981154978674989923289346231693315038345658160227830785594397780087281845488309858670501360656825688134412436235391402736830644521119414650036562506467749163790394988757104954837180174302517475312866422806502256919800780502344764013627936989104488839961311223801743683326757661497448382731915316465492116717209830445702361884262196245547879761945598518557393558278459491329437967865619236282323983945372625023131365041384178164438532442281396674954191241278053442897389950078162342587872311223251445063937102875912349259447344433388408476682655133062353279886674243604782239578433490635135197379642368324492834426953181855485467049949092602052853706337511845567299453036882120684124631017102161832726108029764225606129393497056703325159556321500260311537865074604039970238725327990825395799132972026231993370194453713599805145078663335696603618774313271649758754520545702325570237311655951462358242757693293483531763298742090570184776568970281844473868437644698886520077445492131965748458508385901028204593108372438067403498222426606781180346575010016235472437536285264630427112451856533340257553058689416894222230424635452749816202916437609994636488065462255670330990760513045125770122876999174529083322219671000262777304827762776231631634479201951235373204591554845960685725724090896915462993101638605466246843324195023243043089291237179846040739079720821985990952928570921265085572021176544369343341810663799726041669445024249718548923216135107947990911069137790700882898314420764339290240992920865786588831404059160622527595120333536734431195274049986800942159374482545915027223650006491181995700361432855294683603406991081087448844742115616351361766459613770375125723697841717796172930358791422730986605612529891670100877226018050776258294530432323041092898258168652301501437211927065183485440619323260091504863436929497851068743813029747260929426892162850015877602669177336979724331010678807055009827799427154731035038418371771970581072499187815461499928824720323189988516954395425074537860388167863198337534752265973894617818658793528011060722755301325221544752711278644789969835351389812933663016944423659217561364246419085046651274518477203305208317890466715712473749895297473685292470603162178308255643313050122046195985774932111372289629885409295724287793787279617540666274564866514274935437970431697945763148345695977011732461714232154213056550822644941340397802502663595001060023166675935210929912038279440040291691798181055003006141922688464513668088943453538792604003279026237057606011393247356813207391937680081103699430874588119515299960673713556966049599481772411251823356798256505201282427800837882231255293858514932723045005823844397876820485909334020913534140315105994414291080135144200611217724120568470567254794728409195861699444912962245722344274361847687281990900942247405452994620711800457888870856714075145082594563150517802850677138083082192742268775678036466889394158978559092978780033583010769977991286427679088800336320217561423998804824997522958801357010522164863470526074165323461577684375942165470576501846335765505806059365224404224805292744794819326665061988939194144990943702535018240737364147828143941398331310620391462201073841192177400947820700907776843087645515515249128429949627197899144509921844816154049335615535916776399726825461536846318888484493248439898267392745631726464504047666344026554310469622730923806144872638708049710229126540182869570782384494332420665180549711806403956262656029044425655570321382836897308362450520624417755729465718113276727431716119254877100559811317018162887309218343144953305401856662025312314866189469873361725737141152117942617665285742629520888992123435255492239588059383200877804462212270801320562065660828721436076474166555332442429921230044511044978444707561971069059259901629813577441051024368779037905772425879622687445102907834836924778398445536487183237093863130328602171585110770410999546515660853599905102666383078851048316016868442838395018911352242630220451391131946625606452898252882745195775937207453740670905466740483132787596643033188072876318722687404621833196199844773102859939464932435584829812716707402338202425306980523392389684724752307609455234848388046527068209791501262378770709452613807287241557469192357692493062378058353601620539387974542314303068066398277174513043297005739971496062316029051153742856276761163030825076645702534353966156577705491064104268451378544416742244779442522387297357986968587539307685931036591898847932139387095949576836296817876677688310812575187312448018480344648694165001708866959781401135157786678649711668843880880653483456691595520251733266538823613942552990472838474523343344846829825868372938239888297263437842194624360170858853867266147917757248634479766777125115311060353534005768354771374893667945572881363558216964665408454588027860031090397073401210166283031358347428625110319570909710754815379143576061759323945654697136374840826401760970112744849031082694260344281979263223478628133209432748895151638558813954421074467523389432438584085078662703944860466651999799172298416982220600313890839311272413760562535891620924601220680057413857903328931734726237152599167384511723179187397273677195713543126694637021746658428634800934884799415016986743780900173806980855686659980786184391496558705108479419399705024941029399589116170821094672402642094525018992063656645670636860019540059905251863128216050703595688309572364254301531231816073129578392833685152412334597763245753931081859718675417595823797563468169557553206173483123190623316105021257151799814290412718440606683599945276592918617153357101170772476222985380355719865797971747236552988208928502217401305831754073492214399180483144438481765234499163082228230461150905712933649878171843041310639992609315572256434469025243062099203927990723800065790618070750303052865646146481661103396381331274175894829477398725297420044848117244275272825234032557185888964084987012913070946231711244196888634898181442790716551873237522628775189317141512001031473656216561508517512906526421786542414071501845665844056242914956500132694988061650567088317180985709846984876393139116338019026356526372235580591486443477928544780759490798136090662380526541737112292219277700455562074582104038447742441713127656222674554851495219947181000466912397619052069734785866233145755661892727273854317346402329484662978314593795957355430027802185423419487899758900548441680068304733616416759336472661209364624038629875255265377844529019891145055661577432658234084676304502577242277845094897152459044639935698106194097004570817971526137304076863760214879093320349558716084378476627703976190805809827417643287555616125712713325799469407898915221301827975027662275913428236923562473852043065907532349100698909399398366486195665390132231909360680399109420586837458474734206796809455284208359595801808530864285293758439398096958047895820838227598690830423487295462316826386663535540867672771753125175958123672454697972057572235519632749961086219449577650358231991003225777656365180939793461174485914402209370855904850147302084078097847899808740820791064277806331024306291202006787125281765421349971258287170536038568199348046651087173616351240673051045956672808389132081332825769884770728538582237963733580436989433083048241407967860055252197873555808069197634562352829525895774765820838439728313783846175101067125215692242872111839103119719636572582257193113461929201601541908943072875557701958657634104270738029795171218336896769052506232392849917929278938868451064025984202173825818864334891269201593251245482927657076972231811050151582318811517525598255723368279046863766399725034665982930107652451238194219896705256193796245865231858799982010861320200560235640649917214236916850407427823814388231034493413604596730962545199191695207969791810587915879059020356326766787706948611852560053660204219903806057244130409509780234604251626117001102802433715991356657451237188026960131301551958955813927815325244504002033140936374252282986912682643771347064667197459914550934358110116766605182519994203739665881499103171162262997497552186206451294327625363203690528239387994395589347493411116416939754866476126338903541635734986658513304820607084849840069311158777317572864434393484560194594552613214856585016738862579806110205180710522722809232669722107210295162750521816569135195659859724647798443736346373788502321585743627842942248271107802353743701732117943806641190591537008225208444772880967615222391825288506934379360467646028169195735704783792225576836677933855925111118375640431751388206051071236347492313123011555706181170624663791306041479368877478453936311416110177881663767053878793514196513654824529103928420961665000447337176760403045801129661631496505376953164696549057036606814541751694682916875776125494215504050068096088299918532762032296191089306341808840515174004902895806138032277701409796314901124603625302076354953051865999860505639976082826869544510032745609792108971528315750350690976279332512798746599110737349285243534680204374949221371517914874559047364710057076951661903315406321509368572151287037559186837324862863994814026492556210122618231269174473483458805663169420202142568647300780773066436646933610325312522201248034117051881280805147775265643611541342409515687477791071579887424782784664077351293774852951382024134139088821187059804585734831161506066459970361023968659425909976301589239478273155271560911143350898263891246682160205715520798207901749627482110113704404644611704232105507871874986449727235300398842193950807586968526630675764882366046889605111994944716083959840878173929084757964688133082922473714289732050346897500055028374258469493111731091672139991705029746447168615646067940649970131173005300176372418096254123018672368419427541180494231611738951252107880729415885199664967911087177183497366314492273145600374447549089322484823070741887110269299668519420708686111458540784907533628293575915188435003273051012520861241669574981569105230379235865489371811772939357977315245187118045280760870463253209493995149159648276761020662581023461715083177580866355274963164975692746254845836959105013817956685513352452231721454023253480719701245205027015838254118310730755882194836846056683426344870404294340047276562505272122776593023210565586084000064747565917398100762169368409415437179015114219105845684885001153669135782520991746204486779716273880535772995253932474816650967995379433554091806867000098720371482299083572636111870573340023027749907210150359494813031793610671635629650499466992673603390436198512828824533724519747403831139003132470368117686658395936441247647966969070986815615076941092321001685074065476301970258050651491550266708920574369273427927068977609098459146074332585016552726799838777495737568118311114792985291361389933117656426821889663152912552541194347987612932788639303769014214075775368141962653328240873669975327921676347482746198235054083067317183405353492211618290102267811728202389378259738263283650243198923902909441151095015475297683582546359234364101545375747763570817558984144519606737167634907264381586974772120528946931378208803966546989331332041426165445810663783469329634670903080607718246939487456410843078399861883013982101438728789260917974364950562442093934697787626936480810748744916041638499408427676734099983984422020074626108872862270336727356301415415652108235249848182631937117728500453801474111637299315598442226586337888331264398252658868585142610023734977472243475597795740309562595798876324748038778610110730634859360734777798755357138539670625389082798449066947880824490116609246325602946144793277851699874432701061654985014334667421514060844945686538277590937624647705617969268512262528607485150202492355077488496402458037322840853413489403740958781381541544174818502347156596401011922556461434328035948739211676923024204096427958003844556959327757678705273997963925170740628446645861510778385680740888192607097071632167054411204492420999723179332619213619430402378831927506698325752587852383428914330153679150860634491395720397222253010075549112130636218640774302556472373178056871599775422759891916617683513578708866006845398355922784043417867230919340666222530107305283853919476508052530113562577259369677248190041103533939490539692951859099444506124352627013457121083904816144500632968166132681003415345232388351248393428842475008622810676002582208226270299421082276142021157936416932855309558510190669224111879046157413374937327143256775350488865298203989421999778146563913003068152774211365921250123385091047108362509936411047728745733639763395175473637086322768762612871702360759916550941768496458526400710352606768879306045383671152808910314905668374481969150672595820704098596078265327516628786265444884936013603468393843218867916168073610111151569679034312512494312770952058062115681757860814439865708633826013968609795538051078407350219951801822245542979063791875585000551371033686952788760291016368870916803435781259879719519212360433801395757159240168008399577334624074765767407834987002278442395146873880824160879763301130204732478650817144098935906211934858637150892577155592051433539099843932928959491798091459754683880645773062367767734629144428742360815791897183992900768339070453012950143914605342601058344405832893637050812846329540973378584527412025035801791422251762591755751038256474606840250611780514380394061771360803415504070442420147583515177183009932785913292423630791711948007490898097903725797707641425730029557604115834806661306063461069695880037125857820563526285401451314689491420061690507714282610002686218029122746938583300326392953634808387939934843589168458402500162166276321048658497340332779173224426347912682692768739844704119803178925002611330998103615506249366255942140837668902092013321016161940518186291777371115402685286360074430565666156981887926676841948613422167501248693970185657423925087160670118224920870384395286142680364506455166544731143215977437018723974240704781803758072444393043405096638248219191202977928434298487080233933214840357008404553880594903289139053434865098722770891846541207094319179540302168587160272663487390574742821605412694469903340866858855879134676689352351414121354118019396436935236983435918069581970713622936945985613118544535318896996425807960845936726169489081922898409700937217447990608835167925076388331383028651613492709455763520004357658102429317400448422840768487571938654115498023580790833532139796965594702302924012739074130202734044776916284388980424956574437204394154028622599355627088805501770807409228742038898161185992012860394364370747749034054996645211022150174206586387300029333826053386444336355764635176517637154273720147666584999732480007769206734191421915752481833752682078725570023771076979754640556231991991214548662416949928105890515333036786234944674182776853759880488863555702208870779797887203152709735540096614286971224385509593836265133819544033463039676844615742886758499028861338210112348660928249059056300186747408227826726155704380236255418216740579778694774771591009409394583137530892201730697000948985382002413997678554274312838600314349862618340560874167003074538753789176857794207346096001458389055862231798049815708083069469142584681650453583418762056778667849675337033931667514157166220346673184640210565861639564718770222305581982119233224761538266118720097855460424334824178433279362100846465735743252650653422618926613136166113021454373080590715074763999657110988027692516933876865437324865096343294822799695269622884547562528376440698568994755038485166692855640094051746632079045484216983222556679775518673724531214551583286891226801819520019040766135768992436117797432037205117925475504665688037365808228793588202892830695920691031904034043799698306179525864399369282450529553626031205271502856763416551962931006156525611483872904635763411720447919532959876881946164731670661528636975253896565032762623938836032760956402207406726316309621306756871619196166670212341869386113366682673661355567500642083693348050124309365835288817430947414920718289423637464253687327046710531016260199113277087971723951062281892053783782965963297277856591382604972398869906420424342081385871185318497819805348080162096417123892966733873824316182065985655876227409255038585641693123098292319025179720180465412704363412145279347236670530841653342942600776839988418171401228492517519011476515289245250778682618228424601200234167142245869707395753325217691868188795708784520426131610438510503115921758746160281354457384577621417210933165648727865680085077332511574463186884027036992143250064958354459369950486523866676528703731199218976657863078432681347435869935450315699276336573664945062725811023900976900441871040749306774305368077898717243389621630040789848868182687748144893127279770225971232291102240399774625880674521277222746924378677805372013826299214574395180520772158975765572502556482714359418276725369306497012029970562872103347610132845577405191624105489772850314675321549592212896339830945728087216123855561662495921473065548156395462327346536125204597903845859621122331764304648512983423311535481917000970772466669486819933740966222910009543298091576135063406104786253377051758190255093436409396878688457052324517610893514659716098880257009136112612858061204739815215084814397278967384327251225833755596978268976546034683001559087341188476084691413537134187613201488662223897154829482711116110868731007213851825377538624837407109745582822110119670445815422678786369081164683835747842559411127784942027551506482194576993330092135675140083529574544184834506448340661443060412453273335568490365080781574414440185111631108939060321169314117994031011415459788748194974426270362679297156359604133517201546072794849373570667891803469695089278908130135035001594856758416792507046271399140521532049043657340734594647433247946423044593021604613869533468281869781082994804276888214167224336247738577177464611669939838025406971278097547991869937859610647993129602152655159608195548427818278349838499997170967480564004086535141664767998934187721454402881212089136945146581306756197599646385430762189272886908334637479958394890524907704048882531282051041231599437500522562484644794082140331280750124209691972412998902867501770994764077672528033676040316654144969657713105287937110923732119180158089199932588481861053009407809638150608712770430327051739329461265742395999629049060594633015421535615519837168156785967242475719547152801755883878984869885006145119131437281473887989692562575564106677828966056325149396371465654262758827675384589244424205107726487869926433955723230285939750899632288927918163363103072094698753384303159154103965014990706964308890494208582512421250747496570205770405766842570376862653355622946544333744495840835985491099941814318388439024489523771823853887288185064461291304956754243493617177761364420448145466676133125158048852975964591128601952154635212249726665717325018760770307581189399336681291787460218913638161757302117891075157127484950466195500327543811031214157478836502517710295174608238449426016573000482733689048640066930207476369326503219899828244595829470441190098432820449722920257799017489196835303332546075911199523398608431298054514637600260451035035064658728892403462943811397762468208830425521789666649999598218934390594658527330362371898197744418127206101507854315853718018829100443320262160285514304594223925762180559568592006245862459065423927210126986039680125981326386038057587264016914095054498956127241575258383707826127679780658075976968697413903837154403080439774423925605798675041087552227870785019884884944916092595039593047972957681004713693967769208642846892933885921059203313195085784432565685218864575056384540871555584385299599324170868519630412062555999894211823510457892703345182300148200863053422313833985168689005941248370176625120181668955103015053449291088413663424192570383513799508929847380609460541264364897652415266058809456723738417102784226056236805047942494560139186895762998018299129371572195461539809860880468172826051136594081242427524813911864974498376430811482148668199295936143213637286836410939396506212736548091808328439515488533686543728029461744331777724665844528450561369758494794876684582481389971685154972304730185735913897562498127315289943229253015330598566031423886643161181942508284452978531784766325101368480788190949177776980808261845944679495989471499804598965071096282332340593768056262057841593991356555362979744865070489462338953826857547801344163595228959657204316887294271354881193895099672289512017164547414520517764739279858426305720557370799004715281682640055857889630407108170141912925550946831282549290711427527652845512760731408592435267197158018910839550839837682189826918953386438838587227769982267881031866232564233575538329588241407616943748401594214472263339428521276434219313242073817821200809315830137129477027981800065557161436396155323059326512264644950980776303271003123558963405597909623454412341075997540589734528659699577235522728564547193466994328502372746960835516466498805128671511835579168368170099346092652571506380846081996143309258324469956273789868716246318762457229468112057458010155184308551196404861905631727513327006969389375771032015508202758885993854392001820764332696671533497068937013688610433387998159384622847102233006090128748391954853545607892928310856490374680547322641304083084680940095511126481616117114134968026286389781717291526164070156815209416810382131599379349873621122395690817538599695278825737446449227611634817125413935507763410248674327983874384970195459558716563495304809126276812188753435474631345734759950982834477504373427209289987781099637340120893892511466979571956237333416379496943105490485688713015678218214053192448597284412858979179542221526082343330011455298194279566137195372147462662437457130305231929737659699135937673066408078906431995301920368051587229956495560297374162817798372160815424944845186360968207753640766656148432400300900971800701464101074890820832724323867769943860419062677422355600796292383207193127607744842641506518772150525012197318617972595649193680829827319175326037366602185471135019357766328641464524366629439780582646555994137643032203686482795558017474786253352990522928372467534584523330403565075960620235051690207454451786101187418185050646062275118014720984178717232171782241381896501787008948281172971398397369095020733388528870955263071412042692908214236313368088941984084181148905075610234117827381571685503808740078877664135927433163192188862646000236472625773713885223594747605883193537955601017319182565929223038215296889997096581668251354449713834223082225973543152837351110585243113055022943199268535987635014796526967257395792410781920398627544791047423519155570287514777630244914601469245012612225713119189801174800580167291826393415856737049114729892094352422162716804422273082264577566361004894517118954746013476686465881225644133809124448341829014582862081188364531517644712058150734894371257361779662281890347854134842328568354239873883546417805970359095732226978401132462165025227947848623353193989278843866011123549902100867516024909475018179582668869622870009850391437977770707152458080167118523329065527367675733738564477433888645532343360428088412468655346349220034173954091162765624015165110100887792708712784771501960074346705840773687430687462088424063627648373573389309096729365061340605848517787860803137272408003777272412832992539434552024494013117162744260958450371090013383457358836377442660632147464540895599259685825884913477888504543199872046295723581232528056701058216243918657563028741681947095175494636533557304982964879653414193175277418603618965081285158114585157550060036026085174926696914432116281312599413342435733865541271996023609714619097482858329185377220091838524313866376519073376912541430177618714422783732995935333133706301720882541235804767917864149350140273886526790108828346036050811231351326673183024842991930133658457541076856482992602399801868830773757587561042807458087139207707584004803391014204543327297189815160687977110685950924973891912479981551825088622879328383118431717653971525373182120792695269943401987244364407250661087121532576349816415903632457446048129020465622553973463229127296739861064724984885208673636075665340798548346468319934054341766724514291152130048302663293976401757724529434786270967210425239874266345916402416532300220410595669039073637130401499268289473255614002428049346549676086024324830970643501824442875743383005986045503649656892505777341385290052243405956837372464486988415686883926665546310797750965210898984127350398412800323149102429701486179404786439419199874968980354345673085492226636044297220543087762403732544624840793653754492385612535618773340355475360533248831161362871935158542839969185042901228876437823498122227961898896362313275284851959135398694746666724462527741960783593598146229140190687490437519930541637262464912001646673645772986793319433233645261576330436500799668613526763339648146364078199476012116403762295870747104009005875587785154008461430847703821851006623037992250794825285964445591928004333016925157465364848074717127550358957911497385992660578527753952037665334345676033806139027532287935186351757485389853917651292274467587349520427439238836118998438924932464095573641448719594171273042371844748367763915346604199511340949668864643058062200893811854544097798650140192547834252643778823004937669467675171528544280199273149087386884596594668426381308708378422706959539584251289638185833812740249551740757444382052508398944935067741221999013996025051028281255985368901107753824192233933365026003553169111351862368167195328513935700672743681229981347746802658761765548668506384443942525399214996775586220457288653197048414483096275227858382282713796586286597950779569282481274667727862330170653400825618157030113254601598895115754101171938611514328278582272330948982220284306989913563147884823195549994659645120462947543076323293957011136431510523046045746461325697706870645955609165884705802505857699919398112139176372587469154982782671294850022021282686484944964235848480201939655860803512843744855728279270746157936104438915261227302678432901976682742217532336356647834828050231605804634534522999316103248113289723606903951310113731702483264542326431806301770978034368574102302695587009145090674244285930191204552433384281839423008901073648080431870107937890355677068521759607263109047396785201858924833184187675542853046192612684906411767486256308465037038993671011050261008005070707808668578896526287567620955761920779240692872190035935150664907161569857171406335323966687294060537588019648553879496988239554895926009689145042553699917670038933686409732762896985392125820454953738541754698518554509515795078851372055881437009632399170851531970164565235914897633158088228949709605561435437271256803017474769132000385328954743442840245581689375808570878404168324476391843514984018711018396091035500436396571875158310679483658261661898453051678942830314891330428999224534430158699186209702423029455951128097162136769170698918116116381279541180843134329161969647092773391007327365399845469242469250558305569046787301114851465990322463091544840831494873508970690564857374144931965004859780395609790617392669414001939487064355230777757658667567828589512494218301021715089855304705631092714867845749921211998159120080014175842985466518197629957485060486875761224772598896367474524945240090776574932764827331998022772106235435048993014247789401877265008167542107001210278858631278979093575366765299759718262996877326304272976167371483025840690557038080226678655989811805188369160627579290500659754597460877780532075718455228259312948894958070951799449044401326526226018858644920555750413148965976732320953453018339773769466115634534938852679049845125749320190088315100046628836216868695525807778672476627260876057460016200641579911629319550251648698281621273786906155489392990278915006696853706608541600644127428287931662731282674087254140954717871807732778274896604727822008523387484807060417356922848351106741617389680723014753946780802274458933436037299097872354226152094207543211333104325860805684193083802125691303813732280042770456056508361625727385416948615096003201212205169193406321086009574960023507350527805594319677996602741450076315918436402112275694508131689132659371826946483456506203956053121137884178262958230403905231560587295994613538104401772025772780232706499078567268311857936442409699037765294683054425061036822524937787854180371161097440097279976407252861023599919403695041239159347203389370916739711508113172649352438278147394701535218776154655246333658038553680061944732947788236510261044361266833112723845875291902798603734382996577428805241982522776555144041223966034114579417580988471546680396197727673009209430389742851099507153612253874430822457017149395968821852136975371280626942698277692982712712706781933727962016800982975988262843702177758265921225219705181468901974455769558139972205566256703022543367692845149515600670597789241968700273588386162344631979164690745459197896373146613363030263601977380693400376005834083827966137262744224939917104047209565354089055898721617912318021831267037757109367153871551303293943099958506980061242351615366337795573182625450450605107789565173728281216730183268202289447043059210096513849932486139396050245869731263140872052932345250293936514974847643761368330217007589399745022731661868082605911139898752149520716624084480834376540502458906925269135410443738741177338014343679452488474544213385374285927824005514610002740602393772975902968708529302876285828392468370536799215166308980935516833398896054699154398603410344542618297212852912920008395313420518395832751427095352576771690929142069856554654453645859049362402614440715097527507205981938209572948653984701173285789317642288226530353018280952123424814995608216677306499273292092028438620688290924475398783518216884777933833184388397179180657377392539379401977174738801434828385183050017387374434897833274974596315514925379222770078163022504464706159413351043852034653681904513908471730794402460112691069369349263334089783632900539640583427707857770413929943511965269813413955058496984342757862575939956302561711499396991138738060957372519947580176506149078653988930409183434188224676325623627500552905330828183233043542967916594060875678138474443783357813194496332605093407010460276033648344385626644904197430749635346003490967249693130453382448371399646019996769846763776166669000718159961769825320341519766023827734581720870857248903750806053014702503879828797834026120513153302594088474315424677109457566510883607078201376194877522564375758439146258222595295692767127395874987804108655834518919445343491242888416941397347622570760150068264157437683683507093069142436897608843320962740026841908613746846010216919084111248642583318794662676408647313651869109993624654282445853066611127020960445737898146498303300823091461951820409509911033821018637300577971807257731938273399821752605374483177089638225878077387482827059360038494655032968316459004683754949692558812766491352611079571416604992293144507561343012161411231781075985448859932106034854238830942091686569541741340705551634786799123858126805708141881835565870269505003024316358465335265339605884261534875365257545893319122521897960965370412150509952154263511488369866651633581586190513925805083017209163951899041271945239712899061507177655862240349886790618018419484252385187884426985030277116819528522415176190024102405104063320563321324530697185075093781713132403525981943836441334324638825732068394349779333859479780886760592738223008424442029218699078792305902689925917544855942633942138452563223171662559445211036012124322864047608549635999409337170028903929982814033879551895974090504075227260580313044363623530018351275927695776641289279218851720830731619057953825932860965672848446150774018798975196082941473305576391660644461434191742135416097978399710035684695513830683297069750033219570776010180179920013622258511970586168332602990267205959588752857510977119280713545093049245827515933338164189818810936177179406193542091426094863611900698268699809464985799181961063684748299888635247534443350939611604703310646056968204542231334009081230423363513595394068739367602261492698593039444136976085054209657869615343491679231409459721322187387075525293178614409709696597265959685137150429374327018523126610699222574910491624826030968935170971629681646486717970276166569349908922389500065553839602499048239921490029995949348768170944580905886883715021945813829144398780778277567959439713769334060292601192650532050728930557051531467814379457451600981730272629295607496267219686756139178787558469777377594441614107571509418072388298967889968290422704510844100857600167230693638353587936721257582114997357530283705624637098480646189795603767843008254325331884683317286003947410066379158605982556360217364212560077143919306705848414404656104349323521257195156852519132763608203845077528175711957102598181948913940002997249340031124574961509502537989038135896575970888131730361791653935792323510440767045474896812198364098663947107694166766870508843314474661564852276386850269038104685767008685760952291206475446695194126808520050746798724542795451706829788306399440050428738895892310232368415672255176543606760718208143032166579009020298556195557091986873766551058816168668754471761123761404240534602559352169943384979516248267363832502694071801297226708731959884404942839145835852352482266194411636810286741038475497601079728967391364846410161787170747758953928676734243638475361442067634139539624319323588550405868764452817942953886709192968095308241944206097152630310294045173915647758787945125803658956198536410327049164799721945728723985684899195349491456948545384527102702905137286248460041134364012067445046887511037623039223953533371634699114724774470404880668407386732546771664779118131556128504296682161025604630621768247452298083467496534663052343228076153234567644323498337762517990702695633327789944337294782026911848759135594481242749659774957798240919786364606002827336014266840972053373846904914026419514519258659416858643126562514397803322570915778885348544030572379126748433188546958166715909084043174035008556688271499116460521635318938813519188203511759036550479787642037926834255527165822779730674780361067264915692508663758778385479428387262797075854435264569861992288021177978498232179275171029903180130339070265153308231954090792425920747555547063336706306840855205427605182614701335956574668701449447184079866216516938047081877998418667352862778530084269009159215544680159377873414743149406774492521820130324363927353777400515962782483154523369128332416739396907249634238862469104813589852511788848736259451276765298703308984198931109114092152625572268284370343407387182755806265802435120942470862122579935797739600827099269483240167984149276224919149294153953359636792099842056249139519817427152917792879231354136424577212782867929198032712527752642679407552499606698927987237996424109951536053095546458749745824044237228537086343586327911838904336279595851127198652916715612199358754980551345523868536305504385410020110996413284062109082903418820801347293114662064203534294413103307721883696285143978491735533473069628608985814808947104655232712766020354908756339609695359673700810123789987096507931786513329747731128289420336242182511285573667442381924504239265849669200635970761812786454441345610418814989557909458732519856364273926939889513959380163402288198291898601191123122792949073138068868523942224494472679823652647975352758311586080450900049509109708551964164133727833840156576410283580987263987392874550235544441203309729534273742979247767562190271073130060766464762801642421699799674294976029804262885748234319347677822225540447124334747237133852476850957273298878061494977080263937358435908915221635195632848332727573727644256462512378033276953180399820644597082217232272158847658591925704856274812077964174836027360288423863828165511269236911444255149684775447586096379988883042497827144049598599554033838313150533709948891186753806094270650922145732729360271135788118700556749193213886688557202394279764680263044088170994718101548271221271076097584835494236055042436177024807694231256821565673128350425427918558024134061183938375027724196499869500553381708326521649863424495899637440859014110682660597788349091583355131576722389017909309603359238389721646529037219072503134124541910811467129466565282844097649864414066864713515598958610294308239001509370206018087570326198695640520493004487206246771874411854823997738043109963369610051049129767453411881460731360617926804051885733926394500757493603232922771791533822279773168614588187161680585758152791298868617470142910348464633815949778468014991457416053619883975448238789917705429175387136010257847952227242436816355750096657818805521609310761535237201444470101570475089001501702141274865421907048464016081169634681742960403247919355940612937924449725186732019941501418113823397015054471856087956588935901023306044876268786928048214879432996406001732292535961122423810417846317769373385260020845389781015392235071725360305394483830240248092480196091830880728958485199878632272176106340622855034942617403943357474401552358540594678925909418363920082918943120710340306007768536258370495337206271800668170200715130375447042506637845365457105517473379753929220572093639634597291263403701199299908484639433759483997341800892437395818269185425155434049666298604306328571529626055447635049946427490121302170293835010262037665076398882497664862733684766718805531883851634978643643183350659331173698636061434040534499384713086354340552545198433599533129440520625180692050993227360916899100950088291516030209244750121711417103710522455433497161902946094668817277989912799048887969234071779803932954994296908093235425099034907140571821659564247256433405720759085863652330765121331091061877474923705853774530385206587075126183879726457257229719137758529970230028371428792326471416816299024793613136589616372474977303633407229428167501886846774432573453224513838230903675328270693951968521345936740196367664447581807600500442973695220111676001049571011285725478646865149369221355364263368980187536995846453740675712788521308034650136711774283242020591057418705518187000238802984732385177475523283435670714984048056363873611658909533639184432396163996684225461578670741733062251753852092831544542513072442575583117141352522160670150743628901469117181784209157917083433287718011764367368449763238582605024076220327416494362173237567925056393171202172407525718379745920381029738419341823302322804775052150744576777659907404000422009303725710158406199546649497881130247093419063432892342429625434371769163834724532024396333716824339511723475035324671431576327922346173078597458458856544794091717908267109354580560459634167116816964525312418100377382706219968482808200249272800396196976037450995216664771365012012429126603920604587519972473233838079249409962790875477085688027622865113372046990219778140169643964550489376697122896928868983552865761104632551593113403186495853786330742166629248572460766820531263302920779768806915144531144124134996494886827489749576711086911032779673377925089263277548533127713093630060148509725247210373286346557755943969761690513394200508504836281888944381973751560051616488245491714677503679895907445474060175046674336021497216642566894685003242940668865996715331416387097767318213918900452557508071943646779602924122889235875069730110263634957981361698359107187235410089267177211093728499971891367341311039409487558087802560396027491246920303177759871627803210547061477776070882602601344653259758102222516109011637408241401542145724323250758217880563558790494318278371579089304866406805675245201899632172807366389527071513796256981124691514909390255745839132000472341381207871441018955941209549799619439252397010476472171655409510411994991422334883002735165994936422713393952359525467499978036937068232285507207510736480150485719690092839757763322745057754754661551265934011805614723640072809837270570049065180160630558136859033829453557822296031411829809589587971174553515236716633289410203551911176078301602960905187104748099218881714470786447175056505393997805670552838852618048326356679712933362794711320676751456134627980984367307939126921137854641826357700063847052498868187249783839929228759907188359072005434392871203687813576572130987879619682946663269260715463439326576468121451579392022361746230323717002221066207815957519846787435131858763903349806381302116761033999975593965847093191789488383256287142741879914100779011941720542700926640398603391030276873480395620724944470806904405228699340944111533002325161529548485678269192120326174720631098681102617359134756884979088713278375534848461475705033072289391857436785025553579587992017474901450392115689029244957160649094153169490061669273659087484978885785474846875844909380320739851899136270758596767402877534091995084825366419085000341972515799651155752952726977613983181613179300311995496819868877360481099419819135818138769384419013290324187037598830287286155350673162756295841845398114098173414844778893828425358042269260984848024734105568755127794075152727890283836846847159216817104370704223922614346173256624964087032330284555240881056945386298464362405862345736659371658068592273301524530960108355789865174502401067593790355818517089353547000209788365243186379677735300514873474345049038802550166865370542712574722655358789705270474301096634168782820289077451428701808536427925529757385330657274368314491445402283013475711553797768858122918731117241027214451047478159562155739481062000836702022185493360575972424227928869751304778516051626859774522645436093738716123763167011188281620845354070876312385903835789174688725002959298580826922825215716305369114386004073325022193188393201286960127009011145898483920175780674172420084726163231645852433000672252968773803874989319154326784247557741458172198730258821301879675721423419181414427363208430622062635534414668904833735247359124158103456062440405619719949312123791001558843489444936622867919794204074532961391021988488521981942196213668381885658086211778479088720863111285359728179781947890442806550045600419445010718166966158392712162712950092609882378097875076586322095731006382451772015337547507392410772342913667268730399232742316513323648248510037711443853345531975852942347846019447133604001334359984506204628480729854229133984483035828603901006603838136955594256880491403151198564541272061221303302944108744837735094325340873360625346333383573616308808012599528641469075212331053550326100257693453190459549137085648319490086788562692703514039088858256865890655624628267092980576951733946369075611683700968793830649097314774348926999357987833703289375284099598753062730930345062852208643624127801126690863657494390084159471446451261218001477405151409491645333225446150221505239020571294646610436835364473423529148696569433273418410208964532219348758434960965283558077426624579732462954796952818290072523537993182861131753978558959121136461009152364768190714278600695402202199544996796855828925563425302519475542440927760582919838381856669197202906419538802927466180701096650584901074676445626112133111610685837655216359309719422445407601492266685791819101751201509826874662790647211991839627848940982677306280901657505791893461656865278524883735048656149280977820415710819249929167369566017625616663651536436628098012699822441983422345838196599218472543894033910573316676386764509640077297131000775506152026545517154774501367745482609550771418211885570173770542324515762447682690437859378917946355382745998044958369803056643634380436648496899775272687562073863278627340337892869814880477124672580056856484582434640910312197708095761460381902917832907745646006010732847835270790764371751034033637036598771554648064829264615662635484404090616956506074376344079185539946453493006973020302537624536578706554877210056177913342880772902300195483331221065336099768294542835892711964676801538455524871622049548047064116718469937958831039321350403705315438322909727830627670302823552045351515630899331461379237385896434831650895036018492928208688350126848734536615626955130666697398012622965841000637332496433214159335470884423996443891993718134109339555230291563555961990036539660392796645885380361433037011583982521344638311817533588637271247285286825324725621884763538280103666187135913984049131267914439171112259487554631857039653783622526276642403198651954795449951381029855053256532146265840305478711420746287074482779543195989532680157958594891396265599675607508712716354808996127188496556208605559601498015320448613817857442192928169130137507843105412841248226124458486363762162904495400584520407720504104155458222045178410450860960509688978256854174017454148249009833687348661631672483877685385140820033856954152904673701411662433219064018220136545445423599023426914538023352284975592794712941004003327511870040765343873828962803930257386338449116505453071699969291030765736747929379451343779801230968278087075124942327890903308741916314207798247173217492725887247714735194018053911276219981188936371883478903555951348988107625300488754006964357690366588927705010377266012395471820964038015053549641630475487792268825925048427218834672791903146718071431170625281388188672570623331864583125506414774764125121661252059209219417309601392680615178789123399695198088210653246841938732971572405289605155973106984035453122937194980802842834352294966022790100511818140176937197149052412752770175074875063545504702147569193860439411818422418380260416057212861927861617318204778619899370504050564359814363674193022626912265002412105897048179522218810488317152381033124278305044441273761611219354023128417088876219437490927415035544953655158051983959020612740927722010087536988463294868600215615556876666188159210887074580718154434305194209664678594269626848130966385197419664816907937332323057610536508425502349978231772975426606411664719918235554112097603897142984494501028859609275923450421311963428972346165831166587203066578203342613638434384721096767898489554676641980614117541669427095875232115972368031140950337126059734757876216033164787788406299774580227727736269655091801994332777852433165110774239619592994658495813130291001117027545348291302314066750948608315957737332582888083988550616906380582889552215299791920579504779282828576377620782086245695139145675534701507459942942177480215076386894965898480233755955023352248231053075147771715803956587176755127441831095429158314873731207757017226798125235591936470309650218482265584166302078406306584401649672805059678400817761628092609328942858500804209637954227348500748130726238492324941659953652980921453009981661202281569405871764087366761010666475932695736334669406943267098834819464082521874100868862704293736580715214289104925684538584744267447595186484978461635729403967263510605362861489917436392002854632487667373530279239658047506716317117653861944840170635948819126011050383106608519701217515927609413566653241634044210145130996433849621248602737874935464533642175343323092828328000327085504543358911437923733762511078233502153900441221803896071071580381346088649050989618757826352758957211785257674975893123347289746109368477248129423978727545707515783700053195747633561166378321389821319071735960607469035311749236514792664849078714833613502239771359915804780647025572838355084899398785541162017594779926885137560178713828820812169193688600834176671308615253125679269113230807451151111342684546743498489342155921585264110272425035897929595296104682891911681426738356697236847799258650496770165095109872139067458908013150604050769160896422836430061815200271767873478015429489029174110502324135336181404531881627770555418795881602915487299123728282507162067841340070019119051833135181165152205776210022711402020074239925907952380148568146427680456654646970245472784080995490848310893518739547140973662072637831598088175694815452698483553396819510294917824605583722735606092345448354727454791007359283959621844906938746643423553520949151612491879580990444343120274553103456684163350646720655465215058898418619143046608043205790596868806841252931029113961547369876511446386550003954649245346769493620228458660143533398198580038929559156919481743942799880749226716736966805710917037203549913625637444228167767023075624585799101026211490916054178010227413092325008498005625931002548281610204976888235406865595552458066252793242784507773714414991599515386591871105532954760132149970825479378395841598378934003985241093907427871416044865017608865195404120576797616741918593762422765163110085384529829336351073431486574689457290782242926186672014528811594526310301481552148792527833696571402740731750236279642075546384021382651817886597809651624694235984601713202917031638806473496369601880547175975635320043158185110505220095054273287102773578256601907776120331724723063556469237896885987319938064332218056730744099997638756450356073999423824768136203838745074346829400574222858844145085741946374631425448970855682420548990524971617028510422704652586196276806215794621074556917675740948562362884553967265878066254549360468539128550505908721020978024760511994340388374902442044933723264984485943268499117763501768324374159321961807563404362079485433343021785515423834939555095917015918035487693066918675620750521974137097345094864255017085369453101391775194365777151524273619494422126111988356047159869608389326625508466421155777669451131019789906430763109033068228708433133521159556108961765819287788394504553244733863694660066118673060171500855666814632933253381316660872825307169118836031507132674609639360225819308265673967991403067181859017700470769173238401575139454212239010941315688254056295106890215726968435924251928009548924567980074228246473518798206841528518631666049032316945387505540903939503015986183421766685020065667409771604606977320695777503054559553904855423048067756751615936703817829861783038975294383314403157721667676878766858415404992015632277957169518057085676470882802894794518650148215173976796268598441184610407786689843591533736014335827889314890763328106060780240500778820629009806822192457998325289625917048527369649795652212189917455294910721712622450457895911897942934875934775296964872834489499389545989547755919551961208469242419496348582585691860730203509045500599702022194439263587722591845049546579198305644379413690051490765379433861983430031673015710768068388398582366824871538877564802298000011813625400127138124526855216959643028920769343607696848271493479557553175206970176988221703980568086879948167245032156102532269371101545858699073915857384938018978792634120250666935378803579133078060503701839016411270058646105541333409985742272095424443666632190558304432058188310791361588482946134396796059898502562329516705726946664116257015831249308837379973338596054846956878645475740828427827995635967179497849231135002720531848630311512747606566725494282391191240405106059035873819278647428955494425248494551929892838993271740353866085538868023880863717833729763653259268115419287619899411107343694132301906749741417715736335256039145094406379771677699501593331409146774226447423984003179916603890710240854136721236050461343412662110410922608010881262401972438699508093354092049031516089849726173739344971114953499930512272617782690835183527084267486795255845788599545115818098679723795386462026407291631818494867850173193124611323478203559762899087535857413925567246477162364665284045205490472638308310437613260214883422749234570635988106271943295982510068566961970936043792449267098420769328848969102225466132626297615720202781299499931932935786906451798640042941531336360149075348155092799100830550858347633387345070410738397013691185971264750705127863575757719680173288012561459053803682552137981568866456256073500046873904323105912374164393245295138858995762277680312815960650755270802368811299370982726743380118950826603599086636200139512877889596621312128297072044699866392396787177100911046363929524422080750887456704409581684078937814373693076268697188231595356378242871557004764562029052160278852246229846442186539758295471582261100829905397269210180849094227783373707351229335213598210734128531063843574465213282276960227633422813050487847518263509765778241477639935584655846329135005664385594756452879563220352925107107426090963143462324050575109229501312898140725286332961885812742178212165184049067644000595643526765358602662147400272196652234261761093081746273425162540049936180050676427884088994866147237274030900110120434471853340555824644654958025402112570932682483274234607529298888910692749412755214643340067990581160719352037536745921041859811235400851552992051602735192451028838828701142919333629163851114511384876821996077700777410761545143300703142250517103602771130567082165713662831216394141598752206988512321013771601968420918047971287387732637381707323413017255243419683031891489665424146258736752871647024648091529469990993077399561584624144042130642025665766054182558403869715284057247708736099985562467842808972047393257488686505051818739060010358550557133599453975784979844277891188828447710030770516964301131187226917639631805142091089725531687880256607606051013872775411226890294768001759352720154880771565176847756049004629228265083106810279741175850953986080352655591186648287034660910196080360070443770100654774555963425022418632159170420448593487877131718366176073105381802979585035894686685396954248533771264199039853012456077730787730221735494056191144854494859317054736267485945693620184906279947324941704361360604376906198404593858882939991458207457688837786479542031182020108320191721822183549669174145838475813671507752932999999989948184538505118482699672939203148533905935231506521919852321022679236853247548752085030522119630938020729294211070031384438704696105573936741787833500591295434773128505941763570090821002215124666018752498286080869274117819103231111445559979763801546050752555351639687706105708021057532392020350726879350756492642176232341535722626406457585866458990225159715210198314319885790258851194399829137594261168765342483910261067182700881232042519082920101434195502029909200084759162536354906935930850319645366540414796806379795115242766476322589670763261411783992686912477668349429043742940611060172780293998429432672606222089977479606598016839100368595839151410712574826968584850128376726840624268144691540445843833272850709947884059335318424816911246952986970872036084740041295293656454885598027249708561390707139003034708240237932976213255944167332195033303734750122626161833536351600422465641418904288523709835426404687956199165880670361924123766899223022427279242958847009842334255362538265196425464514499791449234804839700634160155046002208848295394218603955861825335451866681595447591703290781634162509830490762382785609619464326305742134998973721967698914450436178871245644244167078502263949349763354427057047617362539302164328823766283188010133306660177668763787109527657488729350053215121808118758899936453972626412532032461023952386873587944156157362699830046879964426804150801417725531828779798654769916901183773771904767683331147426554106659906558010394938410886325984149560269568413724610505258345599905425197624212447384298247134906896173407677390580510869654107473930886165449769488051457423274562262313677838694170061904104809542941629917583924689576801018527567974557105528072091317004480276429724075727056405407727199285539965881527003994935231282016199981899356329567764877942152598547744501846677251201230958464968852581208773252495857061196347703380078054163649639356323552937377283971149520814480154995607982089189334266899700633171826851360649248107665223991112863194844106650296076245998020505369339644978545627799962210008182801953710312436085724871114860541136429015793014452274392776178495986975569504133635273924409347384634584781641986955637695229786391403871888868750992422933598649406939937577062231945551225072281896604624947593709643864030393862910350765381204397960566147153806044771849695960670173768520387675216649320239692049493760596786896430674035474715679406223663800436392511695767453428954749874632501065583610237725846265855591362132446781162151920198153839628466924390179511770175768475513655450553802534239071838787584308656786727346014338711506983082768433547414389661678719541213107328108544832234814239678319403975334412219914055858811015587775526880279428046817142810218260920440090496969516262060562494413883155429784154165275457300481364683047733869023821435205567826495990633175995259862570068111256847699406936269133080730864172788513712783905914091639712199466594020829095266824775771202751782002654237329804461770892927081394968503636344329385292772104490006446151800087862204264539754741206013421997307606434011366352890722353823064777957982293504105968277392566361215617901813263465432656539791377018730047998265042838202086049948175898318802262241602686658244422454286858506243423720533737048847695817594839553575232208670581818875257408327903692597276169751400926073073464119992123303667513664764426088515196086301721457811140639185648694956404583317431945919007741017254799786778935314972222756481046364467581141995629533747850671293634453609049528382560560155482973408699594188629447168295214206190668489847877700215631180340645524062359343952477818189352418475225102054606862578096176157750467286086089250564391232219170554393978178917430294447069524320797463191657972858258300902731674652847131281535274588761743091170865637225973076664814091423985969054779589435920479921919878203641532889177002678449875078925191433672439108041645531964013592518813880128573638774748890435986599414874897844100579987191361889826695655688135837248916727706360177369044367402566255126861289802682477443587197633419389174118703497285566191614717451208345630558618043083219070779888470947000693663821579845613914875244312186659614374961955259665227696132086492147750321276064007628085019778878492370920419332712057244475812202822519996401199151270596521619773132500557905950595221248780825698121102286765371141861624815255124089069862220460122073595505935434675256269560074909718065711349624979201881538734857329186178300056814757201225202697748682148913954701582015245315952257844627713970487035461129131589609870446750504329047625141314015339187884468763945794690014610989325401768637502875290669400108765837752817313310900880894930639406867651276677278982114675799598817732224986947846730047898137189691345658479572600177958587010459454675176681906636559578282724091276062450222325767153229763771354973203299165940992312623092900007468985742325051823218357861328575557336888368153448647921325211502586843507896029163625390504436646842203609239159823844501830206011565814283055570585515140430077641796988122982193207910544947850903004106707551768254734464490682554681190485498603890406717381882673051163482402686922646188439700529178966342173660221684878515705197960613600873123810993336486227126956999386199656615500492343770166380066858514277826150690590253317356617013817099809821189460434473992887203291750532083108869746001861227734060572707065883449758595515227848436455588646508831253574127023615481960865375752609079094482668333952595242289181431952086009735832618004855325542417968716765889982221629038118580893989593361425020424215620587884534075117732424103432382531886378671369407530933375402026533345627403826632714407931399125914725460639899841602179842879589173480201261645224188618355916666197670323816172651678129833935131891746223462392096007415992288054359054904972142977706852744332409417124731352075820820975020328557401722832054037368750595989042735280350410063038387503465809602889256324131740512711363939740284093832665443775611974241235946495982747463119562390832105071942969322497759436116670329367640780876395045918314669994218844817181982587053212971622600119860691941277470761787639650892752572859011132749581557182189088718098018860588063793865405260083639239742689768419090124296919760812905141701341220196644425861890109486083159923936076715822807240593537309277996968105956496569702488715439576523904814902323192336453391790948131508664676080017899126365835585191996630951441602892318933378356557743616809949434108284692753861960220584030036710290737278576217725891685644778296752949032643311083793761438657904437231564718515646498508178711725733042974024358632851414167762197422933669669609941544758423493698779063179919482121215337651784172240396736177033956225279941742631332612233807995854296609343404867831346443333045559301108439122455598550107223404779253209850614986365095505332267370716417198367766431996703712308578691005460092807673122641101953307106353530456043890749800042700883846367037135037678692425388064494190912917639562915373284931798908461728867324265416441035706190082241279037309277956370436912545000653863584882728235490827120146731652917819320179818068554655196674968431355814392432556101037988707272548907737970533129802535617060902053110128271325940222230615277499759498664829815734157573618750887758161985468629792005558635621492820547674493764986361132401818104819120695707345535901300984653936057745094229339016359017652929380887763704612167886006347807959549066578039011058513128034807729258591584609190545591749007305793630703430601210091472158006076465337621537693571389308878712938676894270332752958038614265280707638734506205167014555108143356665175516239704737125152509399143872345598674252182491639811169048428514061464920525948319229441420172997986374652210440509560083900918448005741531367539779327221677190644334757907040278884821827280760464324662989476965973759285182112037700986542155293312376251470245699837571522404732331710193044771317548641062054995219090901468823722736243164138842949147882703000088797383749619346388738683634470484094634540773792536995415255199669305291125003882890530424740592599757666464630467924039536244995776134873359457266346517045940869823639725604792681836134472255301797591630879989202301888269457244031114146336889279184474727866357511337487474582614087107798351114974171756316346387729511268781132228289209996529493316594046530633306312339186226167461822234764305383398306733607713608775013993104698269490816568929395891319083241193760457995170267515673517008712122836935773081669673946990846589286801278410067954194164091094530249423849481927993466762840097540310346763614981476036468832164941495821949133975457573807474029072482100803175994473513544916982575307238023245833071101568643629953424421917187543652933166231616933079377065504100632728734510911699338596529807563156323826948950041179435414633099559411618216357758097023392830955371264094803147286145079282987969194348339965102988425658904269553912502345642728734447064634941973145704709807754551969535920182449648667205134488799324520187897211521841978065751897439518875234590884361670758799561060117939004225387439237764776442576607103189335898642050770178003423386916583340962882624336707681956243711292936302654564995384332448389550913416153473571180767980678976335724156136083691013555769348135147157401251668329384399194438664798698034245334299218604337193725728367086092430687663765477288542517905746566186056287138213382792099962191705284896598446082105841119246833727970785343017103476760936340889770767199129372292066963949829021274531977366334187568564193942023251552927556162034220788115682055364393948931494653640810094745840816865365187844442178643237732956951932057638753059567260598392798521529104452355544593715732222185970737379209705086368059193584755926161442042613457056136170017204682141481765626173120264612448826915025862209573449710495990205609243694486794472547247841060343362147715365205092000339670041362367494595204897343499227574258175816375783937260799096679568620068133047566606128068903242141127596838156818934627158814460238318529784320772781529967416689996619280863674584012567661181724147564065720577502468392382340412085898344407248772802315288397925130411850568865431229397676825280764618752771722343387154820727286084906454202676963511312213070352073198950503871678042648204803685945047546188016686808473710513432121972194617468940104051799041491747453101582682493709480728007208001467148051116897433362721439806316551285660551560897920192541138960006039707331968734015269423031231723081400537600885796011480096915841183881395999094065954094174453751081763217121578174734179169599069733260262836624562544190935509865370988580459942693856968929066805620610886183375814883848742175716581560276246697105054831573181262611783531979410235166538152798726620299684005263997860681695338158617618152177049574859986668890350071681157785171982367795797603889884304703369887874626416669967949505523037855683976622272257208199929632856609564995773704218982707543070455213618806376326761596336660847112655030145830113532395031989739329553702668846211920652417622157000263502426460465318530196075938657439055279660238891490620501087042015585115745346498409129380675742411699738126187409929491255973353893071150648825408162435073631561428165166277900710901488678696737492269940350075616701931850970543505256494654304242264054641107034226680437691928747668003431031384328686994997082729877709108367490759020603866817012336859397185603759182983346709780991698673892652767608718034562638838689044438327640716893322997326112409786369019842430179085209786668553994964620899408212673181198878976917576996535233066906853504502481756572713419147293169279464155058980197112351742937544090382215266065186003770784855910776066184477683182153173710278471930520819796150967224048029429454037921745141407441529722268916698749188934909550771960740369444550282589828788650780530812180801858065902499290489189196023632963632605348114617332893465480696880080500552153070510316203229289487771893282822640502417717998921955884534837408539195666053288050314709840315571162712216199019281808830053054011645577253965510046420336053338503796750130831170975742722283272403655726593933118189846694713190800546487380114821531426787617731527262735227330588223264587915545399001214671303132593271956547417169087259663900404082886548616975322604327712978516727267942597225428554220858803029075243826542071182728841416579269542742858989197205791875336624203856750510735160644199754509121273027411822463505002441224347319526378844111548516941897477269231060232072739642650323935684954586923506370848816477871036178752787842835997182942254150294273110460038209400604706333803042488502410846324391224794887014677591889540651670758834341114167877768882414006128570625620442165509653991335987045241710784631739934207865097350488082654270672053736996512664568933879796332474942793000602902498842383819666888302543976522046706407067095295574898219641536912965207056698796883261847550053440196019588855049761652168460720737303894916651236136473708316897675419792058789178277300575437886120260463534721871807556621441819669922317340791425646550822893577388647506685125381711652746099962135113938980008032316674223554081217845379240529433647419611107818236398762630104348526734746543130065095245390457794471726186979290248083640915015146326905491643631686512963988704186870396967921591270255343514712473295020574328402972111878118503325799644049150972138186516789906455321092285554000277861277235090656303424608330100018283370580554885358710727616426501355224704479722409845368150591113319254974044667004132921067835931784414670129628607653911594255610058621186785612135378613461937537556583877566004477117373510355230628412193253567117657296307518964355503777164168497585090360162583030721850485442517735261836886581787594922803359757219958133088665933857331622475878281552208703942956514182705711170626289047243879608483546301906035894294143205120544085170118070931163563804536585936771434942705007078678382439482710796390936532056678849950304455270440792986259358595653510688466665247020150931869352884710496118357930677232118323430825376610250375185318405942248111862822294367452096208325223147912566964831645002140604755148263153381762357848928886926401799198941640215370614480178657269510620090279948742746156615488208682268732667861887578579975025345612493840992111777961163665834407311317241846739548840544894160621563299247632321401595573088272776428130248364113601299815658211183940112453944402347397732533774674501417652727011651478689622625527431579479452404721918018566231469434431169878205592137107971420374101726899697805846204326446165043075328816353431230007451645508389373432750189411565209221917400246439913299381556782734152631791267898134633495179807130580633728820763543731445892460630799286727859325433466740498745891856264680880953404886966505870204589673283983866973673051727909796199578344014992122603808303821336145473953498729662248313287268085183409634924247840626719730651984922741234035513331564332778668725092255324242338792286478711564785563644616440207979292436319867887550802726240383441152729026087738959586468815936391665771235216538304913509849585546132217082188471833929540278332777181944960318196881047051979107766598635404636116697535053372378118222895891719585466621099489132635030126716069555697770722755698356651956660308535726847044901513169747184041865661008236148272144494569087448458382035469776834047691867969795809456300895708649685090469330199749663774339901780442576071365290352794276023866713394970283936576965585956741366085753343299060507192369973654823120116485407442480075125871753610924209972404949775019943276147130547605133514260035423049017983221131745111241135472742095620236409987943627708514575069053396786736163099300987087056526403947639499482368681597746307426694355928705236262336182506308100798955556584177570596103941544784566979811422035160244995761701318403945663266817348283161006315655341631676601826935219779047614338501362488322611756640249749590500626220196034452666213861062713907015480206756788840658628876296090145996969392880850600558964717172314809697064084564702154619071744429364277966396907231814215484607381429140740570913551572621590376729039713361608032449961331246119157921949816442429652699476841635235703328414251892077529473887287041493107387119852729810691740327799078624520381548926700966630802794920048144098364896269263528750759416158565438273556159551985269783702038606353709344099189196257709920823500388182620917202070886297136100816881364998847744906982540003949747259623755653042421162603858252784581825709212690440956003296232965337994338968093505272874447995399025188015414375713835398202063677706097414303690260201638535337536505077338076653284015453604124607999679141854596747901776849606778949772630665137388626593351362802515793088682215573301427378035622188264139583223662896274002456372631327663652411605184523182361808480187948535101695123332597007922138213741319212653104872452194677767357153882957749985088874569229228316688568337278666050229950555628943183668272108494959869845031431180376256318730052546000118933199242545982791985778180126432036630529387023012393211351637119812417180670237862333219701467475116067382604189748085936005197522856606411193589952183006055940499230245772623387032536780090293374660207451734181994372428742670199997556620286528257647532730585636786393408286098507237025854458030382134024159974277816919687086734020623613304356533471484537954010537352048796157624226246136996474317287737605495204701450181004544495382791752136119254821249934878491421282547084446039211520939459895594159381518509785404614522912327911723560286906899481068401484236631762135656270425899333452508267584576682772055706519293928754993809874227847261406926247273810409637093410668571055822059966465546827677727895050852111362952670572818850183971230996173774028524169798145052405964685471846450477738177343318466881991529400173360253380133185000571100309640261693487465575980658080219331719908538244405050620978890560323065371704497082339355584000014064084094240809936653703583752305887652730182271884455464556795978331927675482842211082640879631306265137768128674410315801656705115457422834046761545621288457509648755109210993826123014222975811759497997307517453952435754609574300643955283337912528488357055883418837713825854283901876832218021626868278797814023522845238644583320510935358936705458691070998541978306303089262145629647415797358684807369166466220926512597940871635284795342369580972978317946725440189940815204364619115177360063758021146971438755792677433695579282906014822305092830486012392149492747855275483952825400540996671526718894150581305641320839614673782715914499255108755198374917324801049812229451764684010560999597519145882921224896748773710826273546889214177432461355703123520637558912530558352676614416577886053702695375534677526730223111223902163072463951427575066953138255687658962596662196364148076513735750609236880819972176776521587278691664483888975135006617097930311546152508010854758019845351940119940299705618289823750062116047929626231547695422550789648973790593508373009008549964622103820302092796391125321546596937501920342797517619778339552325222378223956509939787779289757139931029888388548399508213165042909006217255449642377054058870276455119094502235982765095801319158653023308913132822164944259616165970848860995338691352486191218213565841886604033152591462724983018551344123528115828656744333039036127298378066284393603199719074375289474631171436455514191349446568303223300033623410906400771243871610264663157248339784235445491614328543958070045604547409278946782685087212049749214300833112333306992808532242740672406030506170563139625165549490189424121775655230812354360969829954599387489304444880925536426055597929733382452604576382129224280112726663106253797178468772463983800760509446178873719449298277796756730294844382836265026604460981603133123114164026416360808016671558783645753263816288733260000500700307253845439254469909130322829811134688573187519093070845657457187322017807211105727499827677610005387775935220826283126925077336235044096396874329123647426869367888856659307809698174256332813612842734892335450945062214715242803102305086869604641632827118508559306207356467078112597034306448405563629300608664423846035567375290635128006189694583779463339821932779355911989391304274556204905847752185190976398228782383113233568218502348201273527534592122229612776437099998830765773786478184957377066791689907409854624970819243052696626669543835326002094628406624576577253291808740721734688463875318127441582452765935125964617756342736518790650397108568989755910294603668541555728190683732213742361116723388654377894871360502520365767951855570425911600860832765066156816402944745766220562924656964954147534328075965537616637658030965359150066189885535694737726647235464503072976212518484970725206367965245857024214423199936906548833237080124506827982350823020223720696348163060857912025196671559587115286058215494471882381858733199414876857755446418443846414907080578735812962583852809474939974290980249114222175393656640199319435228555392851392334033773224703951922396787940447292265496312849194715836812814870067387855807968387596232736870038838817780093410073513551800379783951953289488456342298475835559072734176620168577839955327588110294988238574457119706703869669066362777424866384115337479102867048674648828060166032467662486592510679874331309830066535191356626089924274772936393531028083417364949687426315914018448290562025683943462449278665667920870076076209842860223325215529589722297732406015342161282823039041646035136305838898444318921042122907548762428125466632837245799675025754888376041826136784094546506113002575924288244891149846663232326559564298350143809894265501195778326245620246546684837227684315037192066921252404667613808529367810701811189376030600080349883702393434163934245208170370032135888683242373210830637030132838519266657883767199753556670616392787295862745217949521712968034160295757818816208057461616622831775641418754892465176333260820294808802511332042868159033759444567115321902960864983743688952854026491320070083098542106233682677696117383192246227839894118992731015268760147324620827034373123406308501033111048601185348427728631778050191064608672079043371770099147826371038580577921181791725981966884907150382428291666979511948873218755393868212154590523370527030051987227980293224291775478272423631629100976439032020965977530615448428978131584686115442733779913936703791808701339476067243844045585120947474460245288949159686536619677638570185079027993729302439566340622003450445981114397117495440721141982394313309229041846534149952612725116593958840785893753154068122908122905489121645846466731652453498948398692613116046556057165319049968741319478160163779755289094836901686741880921299889000266218737749391238344759355164132855001380357372085558536105983311253210248705295966801472019342708098573381352385752287311939355267374938082797540673781536030514269218565420641322046342211200867368912092475137275937802464555256864113402793804221317646812540985505011595853625374337634834947333119727103481460144511068916087554575676424756918151287343244151278318249471540160525293752385443966338411634218692025681313495794234742406605641505507913959003383569087782229862654876320685332865000662795525413777236620657448170617951823520652863554362125725430930748045052274830167523815941280538190676946260518385666157045347518380103558272685538213431025356586442101915219976694246145250143127288660767896878272665441792591772819617965608483674025421278924634388024209863270664869897413512811636180477525383182207093917013884161643026437621986444502061059260143896596180328042461222327134463335436965499136106721652062065677770975839280536576235745410333305401754181121586819518582942707377111870207608800683831761460972544981157282307790788750782261603694181343016921121439418119449108607590112663649086768727677542580058958607784584341001039267025592858425051122780560025618702318791351080839870234350301507925586696284712022361633988264750328870660212517757751073332851614573803679748405187816117099829557069008291443046762210099413140763540031030603339366771422763624797994604924137896383641406657549210600157249528870061499344216094969714427857213031741426440267515418589803861319913759130841531601508158107354413580387544954352007892537227116347569336824276677659317079258592871105509577770897315300130537289271397457616046121757283926778106116017636502960277566168940177837223599727286313588485295593490326262472251800157939121361735489642741799000682336572588866705318216364650224545908313553376074431390490213400330816279796737494710318886422594710763380970896131004491726629655922495608205452052482298630357699399617536607830206076496878525296789371667009005661015130936144494316031148716206345518117829968563791661644288905309361121730509940963594984940697723454430378286160056836365033669406085681814398423429914746439268049983277049535312604882628816852252080686633396635513804463595802839525961686135296540246445959789363419243027457607021444221686220236174402236711616798174953918376970477188575252160527091390573245528946877330769501842681112669430853443533872596709950916499560104193420687900457381506360053667421935209896934780045596964270305853026049397094901935099269389434699337854409473446333982613334918246714715133220998662612325452669817051657427529030289357767599563751771108902145480049104835385826766589364069502723405322613974216287021239200336247863697147276163757510307582235353309100855291469823629725869068483778476813214303567392015724830643098392639603895808198416769131634142423665387220311021708212279833926765225445824532125120115271861597602402213799517094168300396819356778989396119047420566120416503904783429578358034697951543957938184573090231170297217069015413422381497954278390895441739054068673430020545177130758003283023207182345327848169814501588338424229852113175688726863601575088125711266959676140203745799672912185735700557000384529534133632104308948145275626155644495585051329362340566711480392568241803401167624627340359984981757954056423944005200612014208428637330532563115316851874922104201383899473164063383743130456564970447524498184352579338830646523285772172697116964222915133903875669787797039572520269106230777704478132738784938083965116282628037128991445796934706605027175573657510665549012580711507346214359318021237971277120031326215416513738785791411007795741693278474438897947399032560540292179206753601059725907241810360681773844030412440304234598456981421204911701637913646739324631282530384710814531777825090231947082726110502509409499872591987692998562654058231999211530665143732028969408798016411917806124237904108923668492604982794803193046007421706057807132911013408347494575541934413838020308729337937131548697631024547732214655305049605628581291241996507764104235306103692450581890083920085246592006329294267669388958664266260498562434027564105849298817281178377975920855049895931906170197851758311036083998302830251020574132652107258050058521634793922803750611608124001851349456633264496496768430729674502755717089051857150792491225234192800776159841927005158783540390797897368756315598094441211294128331134494241836646904652049838935254407250533027054310590960687978425085212089570847909550153091309214142288607595700391703215406003300046311550417118276279592170080096144211278739361031343044687446648393867501524624104466358047847987591815132951877830810438088556185997070571360077890773802798632876392130743873001489223227214259896130624639769785831111113607352468866432126063698506900884267190840612924840204632769663300776885176833160892545300533904101835492238509611790007857665181991969553679140460968513629438860970495779157099221080150907461388338491489705762177891558667247619210639884206236722242717952336710987606422918414906355207230763538972312246090467837161082941899765174633173822162184319870724556389915187122128939965203474725748035354052520936735897903308231058247678316717408074289841970679020932298159779529869335449507470550660399098625588863672459598994365978788047962204148719780574303579624184817103482579527913611667038130805085095105598870389177458151519459194668291090459124794293126734702687509654683198635566002858739605588080514845671077002787052657687480814528631992726077139495984738268246816313063567528903257168660080269733391279069590025157207344505601962965590800195197535023073299978550666506004337573209523829941603892143154193577586815109771446099967851088956619636676629826303540684387307583725371970340189781047123932469573952900257785766628119966658190202193845408063935570210857018596866206855761447794155530533239671000025278716905547311731594735504005353078568949219498266341060249763590344529059777582744359027285177777361219448849010382219735988222454659537647726363042381123912756093030723101241938132467867952924540431791809450120350293670826590433902508472053827051996349692377468565490964378940446084420699976860959445736744668614580204336997524264875038313954719599248458136409017335237319059660927157068621324926731829759985749559922185434289010824085236739676568764338392805500304507605577908341922576862488297671930479924474122027438817616605160998339820806382668888702044109255220508219195578185875487147566649325609225867121726631224126020059939556843490339624173993139859762453906470580143670525024174979455871856870189212817134976819994334360644610733773311976065511943756003218827156192159614915699079527575742108565786085202960778538107540813553477571876644645201512188675398259265425158195996488821584347078164082207889550725721470525559831377883145842305235396532578992756917911395944039674323837554768525859362811598820657022705985320856606921090207234073158126840998143649905319993343358459221756105161963232321258535505191778053579553761279044807758121052472776648724125593932786898392989964829430036352476226143099654958992824144244487795429547325458239694303125096432331461599223766530137075553050926867802172878308126273389396809236177650126777255610691551301954619323532353528670078710589438493164722467804387354613234586125945352880447054072646606565703037866263485545986997504449012837114220911415700937806276507993751581404808972558444969011502904526310867447005321739467739244392034235048992669357440831166763406097641624857001310933895003315329227354768595890666914783015144041755310952514113342764063594760914841717143383065499479969570195076269625242747401680608899419113204055358717524330553792640254953528273197680791762167410769878432780859175644773543316854190893523031386331734809675598513548526500148159227761549798574492938628023349733748577365744538382463337177364994279660449442053867169829611505520337745605638624131321729109074671548682123128131372328223972072120677753172519921929322174001514809984537699353342502466780440144399390753154843788241684521831840794946127005496975008755366891822260173689650690302608558636467597627531703397230451999604038815718005013606728613003845715329299552944117214883323683106572039052932850516452446168467151171587807858608915153922782872713697419631491657682193477543519796766190478672484492516220870827047439748968638746768004216088800516493154498619999060336153716670558909678003830309053713455014087648020771444370108911054449962535677671356962565630867596493864528984447321205674680892528874646619775683961815544781226899998387522026325923306384992154743241626556744481582615685436026989559130027411054723804250452859687443748386470603181878643794272888804176085782737437267377197863398452534947042410499296409991882219464685623923416660766433112191648995478443691922888509315930665785247075743351606329929021482618871720914521049032720026571743513389184098907795894776712503769699337865978551080139057010396512000738077134636233132043592379299563945392745715533864980875268050607185327542221135234237098687754534758967877057383292931294036805144243280311733889309097380150319298433016549052266057560350249286732112848474109154679945573034592973336550954775474961208023142067636453383739253417848083923364549305855666038930582855745791681619335180783833103527110457385987014939865285590212210869200305898028236600139415642040479377913683964312431880619546153746123894904134862416883832902702474328502178230472728372666676890270512911016682377413923844202677674284707692626903768318047181372020919255040003379566981345452626175785449865089749033015763008019493367656869901434785146696934322264319954728886287691118934379735478560108924183848163653416230875584867834465365589381017653171012002933255219299452656859558978915769420530746790959950882715407782846177607612025750136660463886487429678688470914839093385952736426438659612219960931976439608680803025974495515191982775146639861390149533960468858504763527117036428915051320588749432440871810615471136561422132762296901520038334023442397473013594018014631895111409568735966638694196196673494449989753136336508630897492276431663731913217592354424511845627215539793677578775780420675594415729192565439550577402412021131237080680111613571749569843152818954712045708165264458426668624569950740628394620358749073306706523056212969328565046092011467621125569224427519836390452397964737137466317150085736610794462421632624235124021601793781296922275169008790634961064147342080225525406702424979330702367674252556559852678512340075204653696085717424704992721755272831364679934203659896571241150755261975803723429946954232086223091036504244329812089918948220617208804902493889629565213126560035805007109300092236007507958476802259037871180263676708864254764046356299257494732514272963505931948096885793178323055598121812935132821749194244943309378049856849850958364348893629558803680288448810017800310124164266588569043048309464489812379399442206424281353702505765888174433459817100504521478014148977634501213349196465642705834130638031657704237144551018983253301633581292923099448933566195709836858070785450838918336447756868518819078161249984528392607028642079541900608782398643226708164213455422382484675784664872291158247878499442296900975961669441421211677002179021785030252342200176964436174590816476478914949883581445418178636142724439228533589716242254294792159213034135697528818335760921717352497945955743233491265811232187210758573759231300939935241916400896435234955018765167262623406577413281003697868755378451715545405894958943018024311966446175090441810489499319582111242048096267188154602486955340297947707148888487032403887659083069210100811013019633447214738747748838116837381011991080549648667024890536169132431903989207775045009401774777867265597531367929719973976359927268625560562074120260379919227182289035291346513220020523144139344042482271775672115954722257048714316032140144347859397986102264832137026645143720712157036951210304384694888922520022047737813092722516398181883240085456506202887329304410870455624136397598327312319234613724541249369885576652095131727057080848433100545799872600816689223889982553871424168330589573060324095441956849906644897828676811701290267945097837379822027740722398058495759263993765677490420338975319893089826516341894827024577718767482580673755522038508906430129315581453229418954525019700097385767463188888184478205604209166339087978378297789822617850376113126601471605913013418742007242808793114166969529269317683458349749389214012088014936601929711702634949511604549558391498277148051468485273044809573050554298536686138950556876383443465768375702856388013916554447242361759624319053804181178301332026695823157477456248196311756205933894915504122755222101881230453563817303920176851131469129501378623724123894315554370068446344952155283840585922005703968780751490016025090603872850442774533070075276745699163181415146756745229526803842311920085769808248634905402600487807446962897631451711988102845759353482346987342427739789976389740764516736647451826261821064491650482468017991877088389381923672786709443641597542589875764038099671283954619799452351277553493733863783619363380579274858462608748459992557429337068127486934925819185462306817690872612595472440121214179851250671920251311836606291161368474463077902373274377397672206179885985717741081680000558573157828978253560245000681981430292281771575191392050887892181732213784309651391308744325466208077755798347508976731023578739793400624747977924315184996783038588952256974767194947684535931288771643719834039616267907386119873652863322317015972818635567515501680665277376564524292189014890879579031620696658760112926295893336112083150450217532372951096766011094195315188034795691008912481371977126149314071447676570766955587030874844951801421322724101332760618237020509022667931500920351771201988601429832835218747135745372602935960537040790383026561763823721482926459321453151115780910382132684463984009821495341714988892519518260455160382032256447763960853659249561327142198778545859587338508344132409244654694982257433685859668202148613396695547623759240822239665165878068483249490415371943399224174273606257634773517120306571222883229615508369376508030724573222200087510414311766814335645319764634356329668629496217178518886000402883658904239404009845030155594581515600934351335489463315701186969210291708247614157049948580240167207478789816434650764440699159186599445405765741943403003069275082145441157204744094295175427285022121795959471032051183577182702844209719579004210086478441826931151271526211835785436802228443146487173243705179954613861412687291121068959881694629624780035969209445385634511389901567097974558151329662994486247842730227029429360275288984411888836178188014197961226078808888561843030124017249594509987890412886586827716835859716468466202934580655482659741110669297485715153308147191904363266517758653900443611930929803345763331229545262760916323788223837704093033266598210052817829376816681604182142334960642046619487853280453294286558975010297624454799387495603975576664068220366598374675730220054885060926657799791869636744880414628552768216133671202110851274589953681473530127669698105520004280201904318286540474213338900680278123525432140268483067067041930923969590310901083376159667241277091649038881354754102225349554767270393096317473269250476078086585685730027327300313881507390827992926316238790937673903586676901696196671181444248134276274494729276775164454410069214188699411684810260726803741651284202733793775646766740897742832674262303497332563687766116951498789793742255865346793719971766901557041775660696543503804940768347202676678034580266054620134951412370838301963488558821015476450105460767142628677660415927534735882767486663207241246212481706974830923586801296055712167410425075207928941334181706317396453513637284803742934771949094623611898743249771653588177061043539172011521149806182217431979166745353365431799241788332498457193058570410929839277899557035331190300711166664880442446485382318104254276329107313228981087840605222620445027129612282224100207375451243891800006103277725599389378120034322805936254262611233408829260090894445005395973790761684344171783682985307302279619119810134836915031867734984570917229155148755247427358888970205565969017890039077654307357292206119113923537590269559083843279818590278539073410287091644734611813161583547216546247504923752947649917826003241890988452638302934332800899698827435166134490774978072521747117859088120237920319026831997666985036668479894776083703473504982262202736989169183052606721327627011971698189227571496318502262735441641613173650945494496913215885927170286406681790918388911078639404403998557397330007919701598646270519745446873038480893531313692066877796471819410648165785201453591069914216400661191078196803710420979251729181578673538402940920509172502543851709256431125199221858461412411579197073611460234569366914593811658370086404717365125304883859288661975364283507771007579483410057335877344006332686379634378626955845564553022588073090995911962909696760347882410024314915461831291821488887574931966166522318389134811181038280050019200539524164155793902137311963576389920314572615294518371338008005982827785615524239209958391651837411750593155438426735326703860836074147241778273090847106094258179152614346990256478858194124960683997004904416026917013004845031591365388605083908338143532539574403410711892939018983652684597155253096682745681721347180231980479344856676824521790303301841325458213770160318878951787668145311990722528605548646365301776800950534511308428106730901107726516147593451660917132600948051142824176919020682595419179421193261817136663128449329961133999216261392043148026581587694918933858702494782861821653478415705518003666107527720006201742882469940417677612401044258760864212111365905156001281419416013644191859870377098092776797313173569467838162099469830386023607421951555094059284753199081728773439471137449432076655714817672134977475085487124758928133969822479983455132907646356997432660296675208313264665312286731841602937241296368772283279060727762670702586569102316173332660501494370486384259130068089507377460180631618502422868792627185012722148568570030016589821107828476133692999556189467307618963013027336943726030712278469623096534025537447677633404785137313635299802508232054242241215646308678965905073169027261867808220449712870148557992939600269569013240207053240448961508275829150917799773986370249273124655661748180219093767729701962778132254868215122914408732623406584165060516960236125137147509142062643862501188201777867341720786968276788231055809830303594267124913100431300814053293699888565330892697585978892458300173156730134470107893393091611633744090123462929169855210651526626202040227578049729091100543139187274028506052824805109012202935716451293440570068253972924861469377720615950967170355041997020483046496432069431611397616315626449989728792092053677468294758167816933337587494670156690314248898601573429547114238385634672635557605943492371492855814390872028224033922223662140245194244771783340198829953664820470443359821730082515699371275391317025955637296936589703884768934564635751703894712653834312970773916751475711869075503726566227023179889664337682194687420542985382811747914495743787521066848390791005945893021194499331550800801182120468591859480065728821093337414984976767434632932794423402676876408713810019328333268609752142471648905013191398746947387275331406175003322065518029196457871215620185576332083187687297661424884457570461312536988962632227277473145863848829658558575477222565142613735223397278363792878234997395545272335168298000457365665763065719515303582908722327347673530840902028629088715894119060539211421444791046277382882220493972345237947254000992767305444461476454251212022583681019101678770453997182059288321493205102067583460005928725600559713314016263803851742791040379203747857738737581349751029565991261525753438350923704397473525540256824042926287828450297932514102563315319812745259306345053142017046691786806868379789311214584700332372432873459749774614641027678633494562571762959829532321054047303056412120407651606692367321305063649186658879420629398493768905217865802002565072234248427701331314012821322522187442301838125851625322990835608109446308715564755476829473081834937119797649727406890629208073562732428295859786477593989165137968254417932441154043901163250034723471113426498980722707988634361608871217099203413693933875410138332506466417989213176784666302937293462470290952832913316337428473752279951869712818380443183175019182139200679067230592271569864266769402166239793809848424208196119042384469057771328197196681927601439089412701046729548123264735504194228938338844435193158811951997576621601209113660667393999481578564018521941650254633875520964502195168828058568594018061790931979490702820672784956923192102730082452079296970510383154064463670549287950581054650456769759544701633852556707447706529973387292646862297894768031442092245077153434953495352198500114874322390785779714284762667973566951540209327638961398500994721250826799312825518157102535519349980462179890302044443479326853847104947932492065460860992785526760637507011871548519131740964201085683010114788969818810808269434347915600163347017942367231039619061895282127350747513624194262217095359880614668750610556795434202887481978612908771530090138255972034093777254600234490645461957958095113626813843374233278695324603277351108553019403733660449771954091024089570873835702234710402492235559834919874875961149529881114156290277395425483030347309145093553850956081824457721243514904563503514415562861918502027672287937011787551804898770139131826453448719523119687450570303389996482435518068223801342258166003788126196168264269626632612015704447481525004002427392669864089087411003453807363364875986881176178810370206510881865208457641551958269831113768116361950814885155726781804024109214180450985397727325501897763781720814014445008535656336872890196229617390534896036497725849902406067225679786234662891614889600042991778429917430571005164266124208611555253908674835844508000168427705342793893140913969970200508581740049528676294244395684863038119693059902149389760396984637458514299255406706686918879019392556061961172412211929646182689100587636239674509505088860264477470522366798341573729635494967524734736078469213577219840623414276490801388542816265122357789391900394545236990526240507940835960829261886172741416229517056638852491985019185178512345641962356615596243499352805571394657407593258369509657300262971529082232754754777779285547754603143520121112375571498770910816701987994429093320229058749717852072426473367126603708964799864176519668143022645156082969089449498590724850887861169494969761812101113807674577605771466284696629025793373385311768700853037925749918881379561683152771371559428986571864074988597901557013804825547133905530288671733454921571743220218600102746255120142587157502364407501316611811157323106758742864466728308265649679843748222064220795963027809532929419309639852277445982011868588043168997636169628682740038134487539484788590947377533191789870568515621970201186075806747094353045053629897175253026293595453363027496621942872117726988955468770638478259685008271431305633997664340731130736164412111097041054023308279442960472117041939647698199855597421217379484775858563244948880562350693165535237346840021314048582781401541314763168503415954758333014158248131957463763418649717033184710202499938140459572210206732230012298786751055164165203850824504703617464061875238371230484638237582817500620517998851414668106126785165833880336065129377186619507971247750139529138865633659630014245162200873498944074841982195864962381316603278805623610899389077661984382383503942244114625577061635599349575283453419228720669987600052924793065043759450220150045126589945746597682676528148949185354787519628654524361252245279266630342979517516263853145682204133201813623741219173648792449933472771716605525998444606951612859752184009330335013040828820182472485824765679599065186427666297392295715236155721961603282409539315642599782617074375239927690305711636295907656054995715509437414045502607763309869423306762040080573480148454122205236581768595194353710894016402431216284287959051708511076842629039282643840359473515998749436106433982285891373949157870400446018395009875742014507803566345261781350325784231391444321971936333951188043754146258920235685398719208343371356872321450825060894734300504521772088835653366002871596519611197243999873210657574843302698576114954629899538122813867298546657207424728060330195539257573481849112486485920043272113204070404719609333745999258866395890305217185127830749157647630245809255039386153032757971690043830875392069421812542097688462035134476578715292740918017999198341440239228256245115724417534570385699527154721699522547632714547904747441661730984397536718474418726192410241662752275207532979476415909522222726909432619167328116211346010145570452436885505115006512492032125466330197358886749345185493231789191133760808614750116152539945451184250531559422793167236645901227036609383851739705069861523651252428226917715880033289581455332268960421687020404566641312659925924454414022666893099381969647475242869748674462588885724615418245358019723053130118560434298211385560003230412206853688908360273476479385976368480996717971289661756123795829847583028846743097185693861002964700286464580759197238770835098024405289272195415307243238742514168143065850583228915214980243461359436199854753517244518393238108297039098878661795202915143290535294239136967494546416066982514299079401996276677089253965951902931443347881793575599167305047210404546934763675785211560894939342185898768224758223367261727971983986117127927514195764803736105014105432814704624004963877809942396845722612821603552077634653880913706586052668702142692900018822805593211798508458418694698413672919432279703322938819048766766143345655461042290328216041534197787094925257760926734094142945911075115635441725143793761429824111183227767071373636423423593561089774131086278020659881338243182747431962339220269321099068424121327881253517893456077089133330563755588175187602934665026927344570500239075004589502254324168575062447501344977822962030755688009461738861876466651503928372640818700940025210641244312045665479865463387753471925082771940180801205189939131553210729128646389001918126535101407343212286738601707553783111481355182512042884493400286005695496868475284121901949828354388979365711951339603039049166434920779416228605305842681614814694102695192428769133347892209659028851067806765560262047211269206195976668753192837205094470328226558446408726040256271179626304276580083385852449802526979418189286082469410823628801063946386247760720629383578903765434224698881036943747596597372281305615410997336105040060054732392330379974790690685384240600295880759011496488380361876745952144182911344899987909783533179119601414918956049077706943454044888213456763757983412078923945127026430256748214542427970854986160899479387277570119486239110331322302732132235384510632921891277423481986048652348720792464403053266822200882761683244534733563779787780125913832788539856525592216132884003099490409857155564082973889646345916766049662796741440106722136606304853330431457076164155002074336237864549615052142867804679189547440316649376369584361800075028209685453001494718072015166505598836570609526079680112943023483028255180706576923826303837944447102316465023152746399903109866340243057805236438730422702957572346561683937694681479822277361381008592044484800757447962544518255923556353481823643773580393459092913092363122241886586849282593091365178431916716062637969494358526782312070990153222530224267633617272745690413530593967138190445306144519694165215739232256630916520961335403227550160760588877730075851041706214959810692671895583437434092822096679851354859246343624087405912532319614183772501465757866901499990208055251042498211913997386853206793437380168486506032569287174566945820496103187118456131830300363834559857331858293466677210528332704008088078326025647310018282490157614971579700746330341110919869548832141490671611011358196099903670541026999738593016318703012068430497196222044470726555014667209548984629766149008571487632412701649627089927508525700190148652294223782614095692309819314983245034680328739009602190002754768833858977258866028112179476691691090969153575034921431976534964515639349701656349546630946198448642282526515511674592969538957873649944367144425950082672749670987057805953011783815793526449726456682575871788854111837724107073782993429610825784020126632573127185346485286489531424303916912240936267014737482034502446952968894487971515778267994668762937554065037376607983035377459843741960378545505162828326576133228880792463125680081743351059627961042088235566823224311343838320811825621994059550076227450768006049955497366743095869233159002166859495169504035583268102622668114698388128751709346800860900930644070097693957351696081109078981156554223355181326454828040268691613666852015803776793419808701765788379497560860035824733385213315225300903630190527111700846960732138082660440273725391573327468603660480672658228754205747793368210442359877625859877637673674783483471047663919504937882459051881526142832539240972905451778758635956321362261811379714930576376504249141340132347111153847357350427313462564342183611365736707333832235647482040966654574684439287981963242241160939538167184914234410947737593674889235159452193849752456372393407668349460983475230858820678931432753889362438556363770096034349840297387697774383196483962812172649857548052915799826207446710877177920460405260273702583608080700739287328571969823774482998978792129253588143555327153463021246891555379409830565570474682179051229432580948137767214930623545901981759150557547526216963732153017847200934691984195857760933490000946452466145569751780708521148564341854058608226531813929582344237985122846306736135687581427659814966492948918066514105999661545665804491754942151464696947583475891677004842737648613010043296570251791532659824580338403872663156737157100220265072481643168792537591627959647501339145985861340645918555014309299065771362222771789799969126198890380844248362403709945150269510579656347787172182533361790033365491573999687849627598133816421826974740121330651358341980727876172181689989274260036408678063224782525368565321963886808833597135968143854225604319632795539517734938336377797252858729013632308021025633578054613516604035984985217818063093946009604355411245122482316993684334878655235874884308370235646761344638462998712070430129366653360339378977324894906822214555173616483879534900667345627813236722131195077717459996775616636464660383517289637489495979923286771136115644089499008868975930608217949111761666472043860545710793709393358713278201778601309870335311196813057862837018634842899557760966610802477689955303210416830775177919870019566428728606396565347302016467252176616708715514537798577487176272605341874795246887033254011385887440678089343653673479061175191756135098103875945701127443242681854101475211185282952406762622028943974262456807438193462297484227579836341257202834518003691336379171539342609984481117479124458742424866297891210150624602070633365376548913252491344450204201904711667807676939497143264872769885358849174691283077729283592661287994023889910551804616179188841720498445831530821099221087894620448575253775510586913093173434287927858882322111146843808115347608435420448816453964341494188272802401599741028605616488665111443900275949176764895674834339450216481129041032423337081225210670659094350709371214961730541119416501662121419482092977053807205469948522296212435580408378347611835501072169473771059394897287146198641875908016774464860318972251446643953590318449915361062125338566063973678455380917061838915363827573313904603181767783083697720691285905125173058132249054548864179263630469111750030317297258327106943083330592235525547937098809761024707290029820101153426348782338616165841811440122193628879867308449588168996227171606689487998545758430101565151708774228873077507218024582508209470780359722841157922905441306245783816217298923046732236010986694469513746041682084355676403815088963017328368814683650775825318322782334510384339417956711808878338411497746727283887033440604832138793257976004325403298249841201511178186264127300615337598307776293089236972670496813657355128875142398669066915885017907705461982000636837559680868758206167759800479954822935826208896893508710202957889087080524544087176060945060949255810939989114737133794777224503958609688197074224944013166644470898367783190922170798133692099740147257207084967642990184617231650766534466789847672065409082797037606673849440380262669486506802919639405682536299115147897708656507718867673063339525309526088144190048097316540326819339279501774177169584435141856555418860040057199493177075862419963115329646617736188354619949540117617668235182331757353846150940977525868185642280627906854341072852047999094570331863051472176098660446988799194583179692995056459183191051205880132136251133145730778195380028251837919778408475577106071062696021380682489584863396123383822576910832785660313773062996102350585131957949775972202627692515966884247440115659335440859318455911668870959180891747863552388493058149683598549144234459749416696103474882842161190103055835464964179702580982491599291157519775424205734798098488880256436650855597773550499909708672286596814961799167242672226806120555009514558871448437185034324330697802298017141985544473434295922185272404257164428158841997039341596493732340214996210407827150235825691299318441272246581826853014831934590140315761496682948739896538542281846027576174932740928050817905211291596062626242153622454327320480324235213527040364440776945130408387685774154579318894739374069854472808679590688173855143993258608708165225955582394803975642528641262425832592245469284419964411492684160418183352371621869517907626108608143791437988084812951000685638571989878795294381932372638974168147449745192856393150664292203255301977126466047839028407590901731611249965981096388631282185919938501659010306459124682296175456968464699025584962552729680322238998144371198086296756358821042743068713002236262904744946853980536303109082952638348557584106793740662174538949329277496154903088789634517808970573083502888672403274101404436465531268008938102353074169308382310438101705184308684930517175076733314070101847528593274849149804043425052758187487851758218221105930414940475735529998268988045951533542012483827743956948531046563097334642042886426233134055649385595979184238172024770055307037971614782118611124870640177704207686910236224453003838074705041954376110553155040431842045959107128980850924562426284303868334959427362255694480099031708504996582323198891853360917272999336384356117577213619169394362749763439945221029030576296311850694601795555950784292820080958137701566471576058101067382314525347163599769889349967314883889564488346335331986393394179030620535337884900020450042945909452750533092683245336146959698768137940424352570574543526306450812594963444638723397360000908541475353194071063345892106518397655452980069417106001740233937834709006305015777064984306361738796300655921482303515130722300794023058069719970396681065739267091311391205706813749326731110974198004801336419740559576826363107959390182443760102113283898857070150145721378467305715209672537171935497794197038350569697131468796200280165941827474622973512241936311323448979667713526282325172257099896472913464951986984246627026196127404742932833927104989787119971741273750882671047835368567353609120012270265962080491627355458114934193032836038497754186648150913154680520702903281604507937253094293906589199376782135579937488952748156027770991733746102980926034834703966302339938591031135154368383643142476570210909548793582092823751988723387165202497683543767992815742070940487136037963082009662984952463855680417647801201876306980040205347296940811918361592403243907833067083387355960858287273375794611045570701039727109328825476032884385993420640795390739694462187689421752903414603835273964736632417246758220975338789019158292329611396366283125556262459897396730490537719468418031817606345898322460478155975267360384296650315383644201797724983627704107187561719903530028307669061859032524472422947968529458193865958363053631772852185721665643565800244696062813561967912275831753775329442519049440428588670709460292864539875588163059555990235893373198981632244231820279135531589681635422426019087596111472120581002345494319863105975904718530280229423035635229222116117805678286927367580993658247361819270881601883159687157099588784865327295022382756851192621438989973049803400758038340666192476964080604358046110577122371827562869644451915807079907311428134806228525322822563585008817498193810729420078699373993066817396987595220985303327834667418842876044749490920588274517250768980619884387035448771578054385910360287702678187373311306497850763787445507955334517850938281466474303587982954443236170675608779619521541139985291653587092129989975876858072739318170205471862275562993655706595130439983835700226978320512806698801866828490115925937526475537515085956577369911351207606035055633364536953355984866555978821486421863501541128167058468887206803285846511338618907602265964943752888623769912319428209351981178237940797107041411523232033959933073539540204153625404077351344088394479148421387777760775929870326603255327145040050065938709566809880898835613594590288803673979721959475853013878357040251621481927738504984512532043379444228418014747237459892645344344403099413351747648622317352910732241194958845690646816320518617792736100882339072213747944390998715205842117498084633436694096382201296727935400375165156808949427123125850977534014920151307129129271617635224396675558172889628833321722844246880069112548166885612094502235231617192951264579898630274688733775071277418181751457239515813091984474219839125984567411268780242271025815882862506425414559206054946353790542911115692496119634801605245051745983971618395943426185338753629310495631439079870154433204554066847728967838018018041578903726556355150081134870907076106955935474153450992148793824304519137284350002114502665973580911540557432644816168909196182577866811235970732507039028366273456315494064742049186317724923633834266657995763248533516825756340298181060277402525011424551364644158496618623288295544678196052820906592853565689529249639622797909603197398542881989957876347382586083601653801242155685223011032046543425731696285835051874486277900544271204566824236806764586367920197004659090561759500778959234566063702911585929444245591949213557619686130536302411929566999013335343508325406491354933495432555785617156640837122596010876507659891968630549581961469147199062077961462868220372518848691787449376065885762258585062363587660182180879494697164071986993451541319823444886323784435022485796569727297621941475917671204581711571621908380598322714051734848506026315462289390168149757839561666964037834515706752733760189588798096604401576740388863866158984077672137707253230192403352997681259126435748319650813246884534069888229849274001546807809280743159229674110492935218599265300605436627281059359818839255719666224005882902050033874487456764462436051481981728133527742040997873063025356485133276444968418604775265485972067797079535353592423626402505011145647811710700078385412038430559613478580023182908487737747581842707247754364722899854574427540560301794484398076817553251262818982745030080214318396663547040000753437410865033044465614646583890103529006511780372031760308918382284421193063399969724282805611733562548353032651449523805564402624393267670486065128559883775372073396674707990521934150209737567732004598202704864795847454536716842789521339157057747349674796207868444879948226649654438433793458529259319655354124804590452780492515724418349903436807282060512461597302253853270616905686740730932179546838842220033530133935159566017739496010395558783894507798591773805632151388354662839759573357233690312014929077374525696330753960570814819998707758586485677475083281901123707175370091489735610871738299183518384556066424204005320798956318347657041525553863599672789790650276172934125686285837829275112587561429826232071050727281467995559487518042355453128738973062869431632624580455958622796777134894471800975633449275602293447339723719754765786456587932876945290719671217708605923769217254450226009284127588652096869489742116023527411944574880977741546102892830620285611641263293701022506474176247792718328977497044533936412185172249724139421443703730759975158491118031735702143416744409652722755299462225150165687496404204199541524211989768513474605477886445780013142988974588773781086790755907637349730765199291792242398393496692943898512105264294030774458194801530890391710447840887238699358480301693513105381666872857421486052879140912033983319623677674383587166054319378924603858634379359481833763401496365383714714122498180100277797125098993536517826692057862056113789122956036740009177161459639709434321135888479172189579601807092248046848475584939165319458130960429471256895866873909563495648218369090223422775592603119744004802255311230951397595064849170726828476744339486179588147001988509188027465397771097712082301631388785358689387643971627978479583807740701078949826602766217191459622384289352353458269199080762927727600011096186078761093772603947185089475178683110496132534572836637503590654400624631607389721999381176100532516970799905420486392834052494737988378426212213784510180062055108173419669114426169976233929041704539921635932774685350600291322027657236074527662896746643634407043095688455047676887511736906488548251113484829275147308267044206507631745050377789913991014319267633180742957823009315664048937865192547560717207425143113399001651924846674209625587034262262051215812768492530595930638959837668111791407827567409258054233136060868904741559814850919018247613318478651729337013319870559251935283809092601341054746279101437999583882857473687942784353640351815731332640793195132948335785888908310387078644039211361806113514975833906476459733411897013994621121994030010795204730360726634010362040995594740059763130850433740081415162370404631381424408564606743522065850740883707392313533015650230375921149489383711786227555559983036842524845308282743104994501233518053700752488935893417027125259812438354559006251288987128624513524850110047448596309387045936251986232762463405703300437166272875493072030378325163559850355174616858604686195169604062994324729742565532630382774268236251735951015644777783464992317331954678698795231769738179470035172220730219303456257763233159258661170950179475862502775230339572831194229921866674567203873419247755007771699684371337607444206290220058568439620217196496406057230412870895079976914331459306302202387943489770886041673319634302025961064600885811796601982407002480740508487427625751192552894935403261453535743886095945117990662259939343201030529021267975415135284072397976977556367438623722254790420440507075345392901185070480231111255256616470590092903353438404116331347776423226245919766694033870475055346404649629766555317120536490851463832053469255365466871668317646391308005723113059552807148297020648731957722712230398075142973999361892221909131883556651715094778896343396576732178982280924728563872295322151337545934953705770307856479367325869880233690464556040079612139979403120490049104234648654566210022224332483600246794421461756410776475765023404320247679587183673140978817398908407136596203588868556996456020377842681842532304549616662763137094143547083053698768887093872916348960897769959711030370723215971691078799890667306017724222648362649968485823861841850157267670036263752633739581043251323632585135840554207313415929542565800454943086599542436463129860413194413499042294153248437798262420419812153837760478333054173975001841887130734754717271486981604616560097944347560093425785543437171887232368046969459991992371821423209950628273581192465194525344746383857568815647952255813421342326487450741241963069120902736812991488353006315606133364028031669734597086473661371445186094289513629749622745865204216704964180698934102576015067618507344596235335305347212342117927376839377858994443745317946699974106335280103234013123787699154350864670712047646849299160568905923848939300138269903702682277456071117583770224109468819507043862104087796658091957696570246546267266545985423398812057812934183619340952089757549072673843888708940888820060577751226440961002064965485775207404688910711410865384807594021566836533939541023427878102179691145549112206517258700603049443880126190543865093090684040567494327019871765686228357915146513367266549605685489454361205557980828746753308496686167354451529559420492814246779244396729338927071411771747623982472556725837975993696941065133480875356727608050637657288766832681391831574750382112739920873389837997900294166439390523674898235638333013654629342172406671468561235447553454731409251699790106034026202505585679271672647120865598137994655051184943861274452223647384007995341783625576076120302079531626057334220676529172847929303650089392199450340189621988687591052801999142576952839990474511640952290550631177606980658772518257356309902033929500167906895563378777328256416434907014534097114466289980832092112679724517419543731301339197385936645171624810880734722098629006459328773560240134890678258803978008337455565087444543382782576283478180856938968177448314201340651721710622317211069335015954718852168309925648223535698381714126489833438840031142255642296643842251892516741066514308982163994760348675372837152423022013866116635269835450230908789322900431509571286131629240415361821401966643769763638601002383516503930078675917022977553644477592365374017249587495019068868566364647623170808138821847505790261347512478566198275007086502841785525040684978637537189750579720632887014730997177421810917041348312555953332690933441893358089394843445631690392878629340347887021427215771792486602983585646331801099775802102812655077426320845047500875189740850283509661124297639660987464169952222033369550937806152344340981646322807907756467436566514551499769731901972256715956196238714997347839412894684630083781903296427559615528571617727533106065639248007401947546708585395724444559176293254722716091599128861576966050590935426637185464298573828399709090062607749039012714264599534547252957124054434404198175317156662208014730662240854075339804932691415075359881143656482433376451603463179293006274958362583751724917818317773189134669015360319405837007242226639144537427258453292800546743416603087283899404908917194466540850544810154263079715606549503934827895490150036127684525594979321073135550359598794205421125177465193887460643290793137864503062206721853827713807130891893358068020241900976524101640309761437811833330671379958944402156245026043698977252873508291080152966821588026122866201954910788910824783044374054537987582999701364439655774299002971546377060697953165867791840301166181827849037457764012254966290251002301847653989579621428815686474659615650973684698385096648202218333374556358150558228802053135040142941953520219030577192317761343257715208199960510513115024141683367080391711388804879436949048010241007064881457464485491982267094953980125029367512466696253767318246160368078580160906969030139273786133445167358603633279374959304892991316931320124984780025498902189753362714713229026565487537138310844912992792798481507755030009246732800906472868282578192336062608896502650296716502162397597393615286087570469648477178799235046808328041646509262559174455178895440571008552861212032430166173833068713152533565237493951297064569075022906578612439276922905943512425622219679629669637690760698846697411109407445460351822883147761039739581969909356206225881810177490884657010682072119792796839688440422651168223992382299470858483940184627786700639394600539852942298381304248271536944895329360600627604727860254534236850605511014038318606420122074063685908999614030675453492428256042126979579266783801071439739683004630288947526774613493225864837839965725945116403683236211477286352236640430459240298336408494334385481763532483888519915077296514543753218723883786117222656948118104438170271843646016969954611828915951424330395411714791882084765378809126642631607512638498749217680720891678876199421117744904245114197263205211798272196719598470523809819108540561529632019195700095895760291159678497536886982280833871258964728537350785524216652062009450005305013277885146222677725155890805077570508554412451022434534233285147390475161466314862060462812363375796860856051398799752930875723379655096226893522531601528032103248387384049327796433286452353641771818776220923287765346333497238084123062039016771306048367020163392689193078354727634464636237418506775455504212855214274975042197766293394176244229249300829798081187146674807440771691353809696307348190144496231641594016450309746715379431393763457359490723443779508895532470131144222169595899823059116794724220238287342581415301455427108341756662607818781858932780346722072842207826550339123775869907948089873607065109394228848925283192360407802422884600321527477507697862430442168849440376090650295008549251995712697735284424250709099242938080961805449690405214933817056952438550757983273703081205968564519071198919321669591444970367533455710649598745139321093789774454042093313569658207435914561470188633620697705652492414025980591660488748661335840918869484309198453249950917354193181829158533892673755336669588178149276454037574939560390173123456596966965198058889157529675928471519964016214749832757950519053789064209470592690240734779743812951645675072638867484948106108573149968041569704402466826275301709903220432984011526686046809891338733359743281416591250683326357339401723394378096303517656447468061818610382853820159844828166966930777921846398603240049393394312048075504938429523203647581041771265082459522475182334057148467555316437582964124973083353008142003773110354135635616516924682747458648839804936101963828857382965263494710017738337129201640805062823711638643506063832888331596380483470805410556545122593839727811325141220098108765281136983184509584028141117440014378444561709844153732300764498504319493528704489917973661778067703733460699831684462216469113008940367697196962635000087031074367915800853174260424839950565400808099110459598699623760494968194434095644318297869524259505081063670147908153974256861761842842538534799725411462913169118119962726716567201416415327535966365063966179276918689985980789191275279607921228952581733674165647283299565115927494669870246653632645267865047833678720127322681574579471403390809038859958043158555406316325369160031160643724636492289511544492358690033993191468328283585953975220411932322122693113741813821120811670411813580846088661860719198425873602177871910105787156088893696003324582105895702845170840198194982480092249815553359417424873969010432737740861180016683162506201110968090211295352529175329976527243525733697338886372635612375597654567957354133415464229133471838506496200888076433353079915102237545958991071697294014750792849304106755468888710857817009520074704853403287414114991327587480624817677997251302327802444852933599878289813947567926193323895275782535236321377969397220395643443671217892907083045695590687723526276032275753706835468304405787969502729039764127667583349198819406512526950552081100670479203942499355288805380185843760745260858228803723068443246264905247576834257220000598953807094797588452405110920826453672389795970091571448109605264945880367549459900473920620347744932949660274617836375628687501476421374860486194310421278220110605552820011914260387849055685445121653209326555385719782458283737682861552420573398070252294172226169195469961456561338572920667496795609120941805522400939773918598949970183552641231287677946038682502120744409353527851666254664315932332837432366197892746717075715955000011447019435117599011122543002074710807058962287201986055450562974344776181765171382589366339411664070973266439545833404123888271425561611863763089980073669533081212166525077536960092230057164485664079619643900784656186353608568653781767905536239047211196528908442337197017673843133226245819322959515673384921330591016493262286227671286218228289522326040880876324939917486831393192593654288487096604221068508770308756485457896735031121998543797439345335637545154302978130286854232640523136718049888242382142567114484742509416317072683638752450542930007278655991870311439604007923267892874259177444522918148728875737752953638794502152352459321644836907686826602542432355777541075285031044754982319143707212637856882444564628125507334745404917671851791081450470965092819118689672293071012693685767433940668090073047338268418555251532052156857368382103563156525859189132919069044137696634628214178071134719869326846805400881959999698373781710312785763042412236731954480065107420612545878338889452532290484392569300071670809327910390408119236678957783547447735935121794510862674617519250840378571755737165289580433940907434240436567843448217403445773168385955632848529511446851414623716517156722397004546005303779333771492546162911086326980279209637397713875326748329593357848471357921696172279455280364766077289133061003913759925796983568939314426861441385480781820660618712387348402604487694373872879636725935861112373280421960920783011722361356031058109586035510499945162359164645337192380964697300679850296725837966827066549742292209074770634030366654176177412035762502396009135871997276014975553508053253553006744289446893528829227542603445412485453996718935709921706988420015775259313795562045969385303825457043914013100609687575130010225578394347997431257013080296253073821998127182214973147955860188634405837701724945845875527507439808695687492987724900343936370357712672201982107112738271386491634152326981755067911205731374522750938489108867090936957369627030241354028432165562639028384121308415094224457120046670000277780473046241467445472039756579035050500306147923913825219261233671298599095353609673794595333241210085820678780664827572098615143642362434089219548453726048539612362808966883092442972094425607421638784356560870973761045072587087782529515002043597309784549576135424759969870580023074243956231273300134883589517438616440471798315640742954882150123723705777611672180425472401623072307128257108324257155233411904091226565779140180899530666764035469769342304993012291104305344443318684930686383641431136040201114479645073583958899619443946668932945339493095878352106608753543515398113776316674753338879379875734708994257649278696644087349154842063407427174806493464150270892114073545460436154486160171899529663283608977752617893674466112175768414712286684934605868481222214583919866877172979838613741560406167577905466971788139404680360539141717924128032613791230117891394044059370871082191974780161520708752703975356484249757767081113334034313878578074408202141998126895865497106600115155946736395901339913770045001429177752204116838510180320070083845335827473452125104075021319189824990091732410082332867869111391627289495707823464447217529248597572207832032015922860343234074153680375832858313801684238113996539832011345260134212306618039691690983962823417683837275508780614750908182256540437163642948590621598267511018288106082044864114896791498176094276558334951941285106878250803168869418949996283815971721310936045693479631342866073408172719478831023178924676226256391898358664198155689438086584738389714683174018441590192718217058347366063334305688171778533644947386540043663849096692395693521303169030455502851836340537838059581695697419413322930174237698687811013490738537933626635030683044466160996802029436078473793005024180064463651481824024403839076219774738934836699813988156017972080503449834023298687375296457056005830794015219578430850131447470592293789308891232500376173003978981858121658633374439682141650596036662115208177912726404667818750313801131614191400657498125262935348249065010440698641364171219425421511164992211190967811533248755498593728227110594252157828881320387126434780484768133111793631807647632373950136016425347365171379927828885918686168129080254019673924298582500536042132501912711682045706462479450622192212559909607805127214717022216788651424045657013760837473812097088835718652460696006253856086804968308463551261891238409415312853928862560688181361240004676014843060278475841587447419366857843523689597385331234056393615241491225475577118033100377628845089012915758551510856563864481159483569069351325244456251178976124238003461804629149868011377600291669227576554517862091138655421354398035075334791812135183294632959908092021112243137183475636599515837317431876816859172948557483853078721274851754045137281489728968745741054628043502264131180530998426022189510559391337204994456797913639532329929660058280909255683953473013074720999385009692708232985751586246052196423895316923551918391478769062602748109405941156716194888299700368642795547054697617334766806703649648694749149841004618306000405698724899266072516536197515550758292017979934495459153671515598019607138313849125866648122613465585448369733398361513493045231000070358057256125608747380662151003183717467941414897395608520029714210882609276658935286258284607885430262595597964665589507893083834343428696584884014420891499058016268940649096959544509525201558753378489147772134566138789297379794159843493417670452587394196490299638791091113852527118760016295652232969570029593661865948259428398101039932242536964172920753300967686236331038029503963814303753179898770843483191126000481482065643934255338529751853753008834022388324592536365453151044819560392095089118229572117350625945308214770397129365923535825202531185823884197479761392878129927291666428797099080782103534906753162249223348566294812351322552590089134731698523998562965665401543488953650118331339499302948159023975672992333357447035291828382905184944318851947034794528934989051382019128603479564825477593658816879267952113117275224339593363201193310939604762625472268792776081295465038711682292590578944735241294367812675616100194696753249721082721574343860132575939382667979389523269702693288474567320510797567501458360324758854442645220280236888309298520231270806486663189007987247829497571710123284543271737108225717564011510184186877040127204586118027217850560603495897666198228010671222172019930309463191743684388566131831035961911094442970468292732739764022670163517883436609790324321053897272393705365437627046830446818713447837795013180648490220103898068802345082878554425958848800521677097544557825425994667705084260654688820521895600949277431715123089953517442263219946375115915404442501839153293429939427378646190813448011787476024216817873274893328576785905343923279150568761632385225329403895186400958435985150990552407365450146324544423093048784377900171657006653572381025919780489960668405603567577762001407346064152897676796944620029597492981766614682915296044175019138332842797876955969786602744893358966695503550996309820683194138551638434744337147169473993074308514274691318314096499355674446561910243825379117856839667469047550940078680619957060521838402834788918238008092795331515829565692025483202602566752126854560562186691389176528134837952382408240815613280373399501777037135378410966132827162503777684723698713821785089924637836183089338989412660822669623294099379340799899193319825270181894104913396717363745781698039768885134486524051712847794410075546155604445781164101541284136105972204973412252779779770531283348175554317161031681890922223950098477343786213124934838071362756888390856761059284491839431211097533309166593842435637600630580416443401123066188231187640654706400340242766472881571840158114070624091661526035882650156168040530262945563961837525213116955394942689505115564474769710688564328091464897268587345717686791466342535842981238044551346964424922053124359639885710079770151148742074578077571236395486769359525362650198815566697444214187467506314688365116039023356435510129251276008329769014588528567760050473977953958178312130231058432765410652218470879954953536246835882215037163505501008714728377626724437388019038864081384545364214381184290097035205274804020926495973098648080655038894595704329288356258440080449499375541910375263351672962824607916863105777874579664699014068449225317295535186081170561687037128464559383828417564369163707624320569298187464739505763804695104881205592095682449961469750430129571149913191662611366455618099852033061768001418940129044887782981381707466108777714453599503083626792389909250162083081090727417417051628702869009254089640193052196726866119369904454137278604474133644568490671907701950689764525316021184441970745771917024708792921906415273666336717923268868152370540954116798555065299646021613133942076563629557811922529532832069814389380142139111675460347514915514816502433154731409177538510329921059717332040854342350386871213579279310433180906798261053330679596652261846116435577439887014632746417722546025224828526309018793383979690524928211772036510996345467247460799159357776275778464736837073909898985476002242938749872866623831576274424990053754766612614127040281072558078349508210339868069682547939498864664250330178413147935755727453983646053848766068771273675939627171429150481675191319238146797923911419964636471409857389612039479796845039230235266679532054572313069087869590665411299787532725237562614400533581845910187469367429131157645296655715072734007453043618570143666239929165172387947324354699155683579814970633158110156628912765786869938090798635748229153786370743894970877358769767696181345953422419910605331200819787137864812094621739674907325524319317470669506021032164484761645271893611503520777016491570511954327301722890154656756065564213216199476415193768018310180691883961448543013608814798823445130925395140857402034013264248606277195141038905147673063873753635988558910041389061581580674090823595715211000313759776621514980283086403001801863735646286374576035624208738424446378212240632121937993214096808811112458420087607325096123262980249370555290934929456845490866900131343312332677911793880661764961036306883134968284947643035813768987044777945524453412129677540487330661854338517672135163391451271276338181199447050540637646048395296333234717538905740095243551064095662991428273190614261723062459006890270702161246394702493004621278378801965442945588978504100479147106933695971002219764813598568672965400634630890104670068692981853889394690750455026583368926011382577753124546109638505667661264553864275185958010822797187888180431191479966438513516218566311517988572750322467386686946567125937866709889764967552124228611197385142915310620386926590921334222677878679793817144354311096319158790339747771924788315835458411330142768886782661454316415520424019876407130473734236821262826188881453974541571321332782662494516031047999370487492616512667280412604105741435924377572191308811436689647823911104117485874142137596463280674101796328080506555585375460137060965644158876783981933594855877069346761122298335042875304152108886447085055313644201245517002733176813004891183985428557494820980995903140148118332889592368773703231703722585878059198378613156356081658894147183086825775818998532544392543007427329812241626285771377363369800571894744584310031050224155081895073622719531398000297788579385350821524147653224248096873038629514342095204854989957196020082156068220313484873930166737877872741928215258432171674068168045223688405300622673281265938718328683302366774774997699452792268422180306443757077533973451654910147729506139827125915523440415698019638526906571124785317754781393919814689192133298940830275637964141143821515010110608518457536339561048522367638532535621038789514276718352534823140988649214980823902571476666908352914999751353338854109713776990071381321067272352383708832175648250159388364399019953844885454064093783266123961302472211417186641023730188493280671197761431564419820170292810000489993620977169877593408667746586079549304483374105854825207895802923701744202812832693534544475995221563318535183456712710981568512850263010827278060658055967861400585291206828922339238513206768098802426929824386127148918647690986425513548848423231461308471012179766832875551545292519533443512443031205311783866386998029032807423211060539529460104012572038643837741623827449152851104261511953978947620055713108679469933487366599956387769496037515403438737153300650500541640721907632841129778974326251626884610852543801882880055072089527365221456272720094455118351061688060509451361080808825914024715156896651601953198501262226696874367352332119501460775657719756936468093308722091706806326561184300024163271057744951588349014880536900451677510926137765423975180469737164118280910222923420634479783774594367007091603102162818981194324491242461227179267438852980521958213686915838188449141964721920515534997719151215106349767271392953797092642652047657448524478360540368661896601607054960252025032008025175104374207673039404195416821192621290497513875752412781662806671759911725749190683064159206052318587600891897645400773683796982000234651821869902682488752735481759328602045149688819290036374383226286121248429929993069924643913796036624894049739095212859681495671327404919116173687540758785975666744964296745405847462013968343816112840420709292395617085900885851933056316752499955316877829456462321584253736211101019314646928283984483835006807728107695845890966313285623391170822384685378338334424752656988886156722055347574136496680735471052625482435543615609070856226326025052857376265592403253642407507860355446496257177460536343250975450229932689718282297565311500317065949529233461659024912541691624673011307534932776000036572131084071858576670591589281982666887128658731232084538261017340507309011021931996286599342625238135097127157882386049619369902513650835084415651951553300288209867756557829876841454646129398080878598235603993668989358367405530497828460437226286165738515513840985582975348365400203322394944878398966386073960284564929638853100842530665769186266988705318318348713721912491535084558967191857997027515944527560473238833948092911622849405870449681488639927743486985513891298693347648757720972038254629096647138436739471649320326187548528308520608423922825512704487920373274414782555508992542050469179124122289698547970066994753954240112156862490401689970996285700616503186653081634959574410431319041595647204001411973110593436425065088822464708690871981793947337846495173981242403179098115729151091536251694284197153475196653569917806453689127766734918189407189530313001359254240710378077713536028799591833310093654943921019746802706220853108749675964650896053154959111537304649071577375134772242625961138819303355699545175253606789075008657159290725594745438332212190312466776145578219519327941274553132905325496050838205318077198549407830325101226667890852598625633429512247438327131174959789216143685428174732938013782307030735511556335478184672766295530063454388942041925397382286142102148099922598005892377402613808590725102770370964026753628456497610817394420673716869458600195515934045948682108685340493354000388748752541645546720077823494768302454585728402849528506490366571035066872785534789075227009133856243357040415471041062698371543166459634914584261171755555949536482530879048527667075050689883919955106207590527439658082846843659265823631140645644846876274434254466458940547434653647877850120347461256235091830972519581275831771054376257341017062802041499585045156796795329092422587160018352255963392275503134360334379724228798819038735947743736099440097373016302485944535749333021209969667747430739973178534550434874874600194684297244773704784910485662843508902955738805216853953119037201747497493137377878493351713031026029351386116501217703911914843342155098695770102247357613798970823104513421863903754469517684237243379200553710245338622462666056485721471880372893350596223540305150070571578722292245815570064594888847072309270167860986952028900839490131563613788591559911891647016629160621415338065245845144342133760100776565277290805507407044667365848249030830914010022045277736583112274920529465404801154840317097132068269281385724294826239734887744149883964036091093001734445381870439528458204380918316601787743686162942637329479857126356807979757035464166418341741029160532430028708339915562396791005857062251515397343018253890574084262376447435052163749609504141453456084623151714798094669881786856326320486475909417746968250490437501611411670211488338796490075239651606001739152348066155830922499450244953498809786532103595476731130033268685447241215664177968844323345576928138732083252020661165251485454463815072028806427036295124775342339061549860176118398671560175563725009371907489271012720850921684034464789271726145812203086643187788330795904424661495453715824002622493643204119081748711825506024868065289123815994367257719334576017617414611914477371917559099006964842928403634692434501817612155308870848169805275858402879709148927371853521036683977525269919577688341692909734421228171409430681115528134112598584894589560797895971322005693526127357306979196866518856350704296238784160318239673498316823402926978254141113374688090456607275229459823430938985041249434168634730862932765167266471310334191489782453558162078828561124588015847677761013789319388735789277323944804872677345629895488111493283966573034528213891020846051489495932817724651427188409421548932726786122491145959081681796903611568741729744611833317594380674001689392897827856505861871047858800997848622117369473028948313628731021579589235189013878108553899145269494712170138087935447136437484224286452499929244457802472231515645665359739526692798527454869573435523977154767348352355643563004706829600867110775838731709659660208541011528919495309046746807169217835640104906561087849772206002971694816550943711749246578247900019578906506311237585009791238640023474727689960057243097850197559478436650959586672460145803551992097070117573322036954968446268256796977600217828857098859956302253309156094864410634636100723324530852780235028687566109852230691502413638663537537227001462303801200032366537464950415408632879693132749387505821204524279708418001536042596204340532079565470756539387178916459578291511070989194899295176956031543405852430048377659406540022049716487948881909324047674442484078217521190828027534597161585750499919411898355711174652282659455184332242858408336448796161011773292683737923730704844645298552906653046110708092591010181428756326235075165543483159071143088166473821509905961099006881212177544367200974328726510884669050933221991619833656411767244804681836937104647701161903530237420017829960723088185559658969821640889917334028257727227573294892471783707066242828082225680838783843966698269979040443172768734690396122017535003976010066348555042912967800320015621735132867066125077986619369085305793692177919125334328902500001680892064262567533697230738759882274904885274832120496773865524489452027260022318390066710166931772534752724159129764836798608822367912423386326858516769585711609159021508965763858351797546699979499945214549358873766879494860148722453797631141467732449699534139734961259298369457694501555638074126431649977379622461520162594446952265794314429079195356643523831656911091681868158316997349821663455058878060107231968669646147973196818155636086915603845560717616932739942476333268020455509500500390691899710110437169457779309737885358070614209661116470536460550898749054255269067101948388880627003493357558184624390502772655692815076128601102000703526294690149373577989211929997099072918456405509887664485898615496459164068913218588360784307242437521536601587863862188665064101233994662858808981243762630431504603701023906181735231780061960187864467185106054572972103445568481293487595645815073723410829794110903536445977659585616718482337589715329432442541715019717172434268155977917086378143153110505612531949877003885196273114278129539127734368451480304315169486380538585121312781789798761326435571195190669987844614968541683981003415967627869429213029169560147133896190686330359248099179813575113495478409778532445009735609759163347264984825063512996811186410048212190242359886508748780831337426847129483712161567123017275515848177749883121643190208476476414732194277278247947888652576917894338996726326553782478412351863436892657509823018308170187923741252616806961567457745895172384252711503431735887267178631809945479002757157030681728970618716140184809749976875335927064671245311830344635670383385427017957356426972417624720951277927105363675450398216656882378070239790843201109156093096138672226454218232836003966441784028660395425732781221806701083801899315599427716807711801569486987824255175463913746398877156476037657297538995204013640518764009345234111614354556505046279075250888993450095473024629654298748769321267713837704466807857939439465612584589978614983710871264557546968118046312268890546532600561213752431158230424927479083271861233356239438921605784509266427689948944903443475704788644861154242811080425093964884548543375596392245852493013068859834738846998075311900063945689210158742411151260281745512401412435623099125774362669163380722812524063226218465014297088827155005645173479395308181659066837584250342618850158529491938578446473413144476239337005715418158256780469405153794102360341859382063010659434667580301138153590545769689694280707965277290112463573551977541935547360065103118048603439786775781881131814103497892375421092359919527106566810350347862173849237643880300141372565082944635873129015058338825742334119376960165928566825527530520953311868064018633269777763810033196320772335262259971614515497800755941955479915937257129580395401760371002182037169752774322889614599395846218009407280795333852576270129563737544910098941358002591846974191401735428653452917591521938132904605618907942782712165118674037799586812168027641007518141053915497335966932188712819179389691249317803852885539666295433490133099494381907302058859899274408132806561690596694899902240305511966542850165284545252206116687059257510889136931915728959552403309232075597281724864504363677053329835413763508665904540888175184278834394164629766663306524363428525337761743766569743761916798680703324948742439347894842750323822549723587035168416479295653050127572743550484718212715111249987511807859533251331973453505508322073152214756493059426960735493922839214366678026316047555325863375964342901476519016016790631929202471674315935669745370161095533685781487080057481382346434327603444404064124566896170763795355152940628430432953819270050989904285183369770755930517040648769942904138629671985571377664923140791489183456643116709776753476722502326097309515561103991707468766457772132579779865549022437506499131764604118542325090838727707252316570965348800021443151337667950168713027031936062377165059307079505914485349008813319877508994498817022709027068206421919578869228494554187944186507786743394483663768522928208773940635670299868435738072223973245108711863610560461176949540198211280818833913855803149298785536138875822997407758138341948781946481501592822149148531605626225802809145363909906639824745410279691365704051139118913864924843235117171601512630888324146733531134919262223199085698225711697882935940608605250967841795676365693639749822875500823221881327054138004768182765191773481980471156883477252031539749749140308145639837186071139761362779232671785439326749441348260230517071446497944208745122821671964414388919626352736349028129683190291282331211869093881940081473436381561763495343274621834692546106757144496515958077462819184973876270150479563900381419178534898514516035081186547114122593831099727912479617130936715111521978228128899923329500125509735035036859100239318045755337557982356430786993702867896371826835839175822196027770651686199678971769639177148238034010337589310198567007003602263925416544795680351653268657106717404631810662278525593616521953029056145660437089545102655513331013200771940691301734973034374122684415434238443623604399516156267091742798370819230933315140850952566137567752776953727117591160029477395889340957701711367111669502498838071365721856911017627990599380834219408240757141812671457370829942987702798731424842910009988970396499853942622364340583163877083161675361083314866880594912430933040090020411085062135332080048967402229096898873380536444401213444146525481557682827686795396619161515970610484251039077588510508399508004546920717512233221670537761736393189553079772815144604843824891648216539181815943516727928547078390072878873245463866807666230771534951300409311255202604687483395823580270379532856376675145625384527041508700080897644363297089508675720302871951771698036983469339575328532663080596030872878692718352946897283973764671847850629845116728666663013828557598749677073161306324355127016710923077543892853208988035340791706099001497552257725128148439764004275229773586752106517338251858351582918523309062322671026039637681886744884693627725165104254879413335808399952758949280056986286577238715200634061089808961026566737159330558637967257309821809823917418341377518204063397160508422687609352579256813992846709010977058536974149484371580901632914042183894497882155342301686927288985214801739410422885859545774033892933599829756033023134937481307340550690197351517431203169601223929387300205124936400575028101530160293538369613694076055930976661396149020274072476867097093066759301914804223977869890654338295818639596223142276542566398973315191054287791979677967007554364444248371259755142627897782109688264221377118621073095975351031125156287488861463342726135393145145397254223902599499929355879925329593241478869364500370676349104342193574590659103254402989465118073732601268820823627485187390241419221325807387368666513556139434332868203826808884021554097060450366694213623059954389630244670349229799683161935924241999351695007488740259720134471268809084492110252118535897728957126350349017082301780469047258168124976068032459794231327725179988586825361627774552394165181976217039140575782801540916086100748086457579156696338175593394152423175850676199166912675821040329615232142350614934538349777694067908766706667077611484371617010030078720613945164585710699346525546646723259889659424905530745266493051232012982812034557726184184767394992367660380274108832950206085168491114676712285539212866655475563175379586536404596692488712934008927098397852412676489697699967446539556339671141330075177436199488604773794884581943272093103900546088536841791245596972515608517032114496327413481484475448419147514165282711628014681387863716841191983337126230699455169881957651023622259342086594229623265532341737044765940845602433265346567487691162025545346994704419827463270358799293074704817584588897743487531838724971429804849629459039565770323508833428169772957754228795371315307818677330373107026901016818602849668183898780799826664462503239163429052862126230779573935033915297971595102404021437026668002495248857893499166494802449036121714409861863089810592847263511666824988661715792676744129653421154083277416372264527279316492347576617668891784783088951283405401882215933444551053596243524356691762759957111338219959619521312324994306001758007153825038983745441498196707740739604120101437677972707405182408592963486916034696726047682252488229388693645602380120310833765223869425819500763216803490702002862851284244258239851071278237359473768811094050364322887345906640712936054380005965575271933069019695484692880315957527307399811515051150168421772591233690178529930206167758127182841086092119439878423809904830781144825153357319120422787860622421404972025259404543331535427854309521333523993364787000012357955639264609918388312935298705032140195514845210027161019495533363888020489836723594429673346027707520547186359754086117186642690348802494812699620999913789511171113128691158265767617749795685238019011745343106643937525908375730628331398020161430157622922218154677291486386640991827223631468700682812350150507096944942883100975721924187275922097354048305409521688041473677815230939654272989799364784041557784529749420069278726651511452737186791353590162295070260076458554839235243490734142661215153771273212206753571408675872509604739904479079519821430453541585933812374137956071794625890007312594743554823870221076680961082349684853103843822539276702211034959692491739639654730789865779759076069880547993583454865582618545813535510191776779532668617874160665829098794102791471657892656474433256721996153107299336206282179704284850616002817018875598606464087056828458093956896957891044533342650637907087760990006024524681448558450668298310251579593094521593017338978313389532757015005015087708657601059745325954426412265277209636148405871320267149967387681305087920671561625918844447665777019127398373734536240429339106984069276273457317550928187347190075238121325079829434262677237884416055030444819373289924762719792947114249664323773759990303665862939126127884742953993487006739852123269514536505976018850528120671101584774812298605879418984865739943289150200550079453872704102386769361913258968463638011928267476599709067028034267734925786104423109116117857819116590319304698457920365404971560873449137453390704951824532362975102220893165481328625484473951762238345088522905806145868272865157333333158493759635957193892642425060581372000440589676275920852516605788095676029212584519082044807129028018974481361043981952402506504091904091526352350438060626323816002956350166653159843195216914009562153295519351317105209034812178347167607494806022350199708374219135855815215206355971271521664539268560347478974764296460324189931781985675697982882087822409890757868219859474392500025262530808472030142483258470776485943385635842129145399531929074745915657592073117579199189344644321829158240746548822254810413683943736827178555654354729491595033628964476080643175698229993287897856086995508301169399791373081219247782045356749101436914851893121895855608656092261302459182778520472078007185727972662027977895534254623060125367500771490523075417396280222964337821420955696861967643749673395297212482244344708694395011439974901584053909442091626145951675157427965518912293147219324591466008655514648975333108950075699707567173009883691960531548049612877840709001060094175087723059849095298558857676127158858456757156621844784531376435284214955301586454684673418225429537947841041127262677904184457219080992498320529608692135780552782224956583808211682500138713975922292492012887212680192618589109591112368998859354561084852271832289748673127882569524227297374012344030827219916462101360447988394839186043102519118806269580064391150480727849508141552697064922841134829501600873756883259143227618653243850066101306449892942740972287278043664367150029128063268985194772544542749137782301260319106250895113899176749755798352718746730908840103383909198244695953088034420807142811874501229616736263338584443701724556386186544677712196143317201687531908569981935275626831330594132548758863772915653730753642439955792277824381908802716979123686803078339608329893321889716082314603456986915538356987022776185876942393439146749009278347390752881125959651437390432637370104131634650979964282346501057479969208610619214881500224351009607459361866237446897355360081223755450722826119952093577529786777708970939205911176704518929383637221762896323454195167785210223409632619761155526458158398679010008067561465428338051085954454320990928788058836571306571999896651173619829308494590928365900915046302119563851103291572704639565811610167585728129483207044166191866137707158185009894809052935426573263865394982047765171614510416280773637665534144715125502398111375565768969848769020713356744061660990507517097591186954968423354405477374654385632914775250721343961008424865892205580865029117113010143093733068120082127748495228959428916088849478744221181719828830442726568034848890295900152626598911701819932225820022612447340512404649562770477638639796201759649734413249227091439068679092689281911702381935710928615467182246754791892390390133210232700537181700739350919885929704556731885173983063212979750667965425476887475612533938517009883496910038217558366817994400708778964063386921364906588211103630724883347118637181998020628418179001088717046828974783286339231558382978476412633629019900721485764827934697698833676009802475327670970858156601946052434326925615733169074105263286256175533951249203555392932578481616105751690775995259121647669105794204378011105345963113812396474663571935190167789634764842518815394270806847359865890467065205073550406736456481360080197822091486526671036223618533970044127005037943943657643325905309935092762921204488523207368916250713220985251479956917407830223780609085925615951483593944005839945916295326809836575356190153724625169639294521606419983000587784084239725929930318074689748654579868184264116894470838919996358712200103135455157629456012915952165777913013408405089618336710826148607045300512072493849585746852986897327963231042694845830309400891906158223414712084444160195903360677799683857060174529015689906740868973780831608301207609823949896023469657130077242001924275463754192724537657081994925511001736055577344456760545174094264161605656298432291374986435085429375011354826854086271384406668122897335674487443506194720935055261889808402170205470849545607444319455160858877529064382502882315756827322676010217758111124975553552251218777604402970420189209763755886988732718710650592801939152536935188489977110065192530669878994258858116351293897787966749229401848577389312208307769858105654651467979717533042823539671258366244588675866565717175199069952172703424243691647125211922165676278574391022527918533294265464015646695777445893802944830339556504868804665076088934488675022345467168824018626364365058417372070971101935074470564737085896237344929767032209550246778426127547847484961022662698877983199284151247884382952657366780426401286773629217879478915631019716598872490336104742183852646723987901549952351826887151658651058493893580619176682223115893606163971671120207040608663342554664028345735914450924913437367820518279348416179141152303845526693567683606650752598519882643223487115894143253892827635971786198806516135565772198078550128712157965090825296436223504297042235584551273387601532494415319906090708330629745560776570169279416676497050951595302817020226390100278683631964350117156777752531625587002998575132518655909853927237775965414810806927164148931412787596611169534257546689682662914483552128829773295892653778908670378284901873078547222529500817974347357681239795838860930380062646453117407081464196481337630479038007942383049323382772568997881558259933518037338719248563455823020240992005219030353694070339250127841556252181504364108963993668547600525173121655662340367434293010656145662139923691891537988635972437636683808941416418526754905266094138600668858070823519795126150023085503092735603814835726852199223797758521811746246797624233642003469271864293633788671695238921634327709148648984829052736426650421063745846822858422534294449259363394107263195982180983299798842142200207254002387653541304187072416696551038896879060369973544782426481087536144764317318096296533861210777025073903096208151423819793180432748035326304544794820773107516303121352863068296233607117821214129083581779773803194714887255383236918816971836611006491933400116049019579051451937579101441398097543700597670989918971482217444268945971980267327507886955159439739090166672102628783360304444163332085857861123396640757302013292332028456793532677844746579373895507547706888989516052873415327594524117852853808113162446958265739660698980971709258170638559689413335006700469393025419574716932237123168696179426605932813219130700705079926693618628772075769583743877098800319862799079513787045238721140628801458269665080413506609542953506536440952046139104648008838940947293902005263845646060596915783664770112614041363876495863583185691108838775878049820526120304564332319460420061938238807096298022808891498157051304218785627323944213739758782939395443147894353223683952779646092107220820996720327847680290434456664481956625932740312690254596356242777457246424459109953701742427450217910651646748200220684285343902601901325771149042563470123994576055483279984639589945915996452533932264313853360460093485205431807045255869578948647449764450121325524258381390302272097154283896769016792440105190029944060279599464391512022290047927881139145443410093933966555937028790846499216297588369671998480207248019298245837538452840316465257219622752845507770356984602789096450661534512615005688994336368835801852327719755517805391039522236289356726068853916537735124615125599759978526365371062979656148218476900355031681864692377308645208657616621372122186074342167259447533410507979056339548358564065154359715064816045187687196289653577518522901511894771270864969440332286731785865895016772896330455566066736467621390422384960609980076017212453563049620393687287273934792245293906536509103010497025476228094004106411799453552192997151810368014416862070712265061218530960129033418655794564465274711008421664753742983574582415787529948988533455147397306470240953829687889575004874104959140330982780635423680061463135908670637865759389623632631835243816343818339772498319154572310318526969083852979779769905634370456721585150146270158382510413453072450784529955553466731723829332889366235160567097565092702637197076845607988799419951578931646147655971242023402991475403776823902507615781597500933243645620069116104568817732356402551345938352566659497143174988231510135896653425393483013048919137008403753431929042025912663072226587133651380022629165917644582033268157029952852477071610566860538999387157878424385278137849198915757237154802493602229039843219467813560120520990625722560838932793570654071651892678682252238670885961168963980687522146152952899468837631604272649870434862766417834714259931403485826844154636082922894894336919630954275545254790234747043647698426017409788394838193542054324599235555625146506685121622405391313229865329152486927875539883229369878066713768790466715250207766111788927301540022383526398982514924873350765022994242226735998633516985812173223268099385678553307493594189319147523821495429022992706790742624176031380004622815013630078608989492930225633680470058939416523505793961860644072141133912766933749778754467151505763275024568453791540075837112448046431024337382898371071528443447270201125765233165741237571911838541375438735441478428432634129866346936810133068346381999223915327808878317408152454394892937281589285669798601984066348114315460231572135683787378763206880261628487191676531475994185544765387455624716673456846197779713717552025159100724494591035344520488000067140616674601489434261657179902336779594517058873519219829606920137368901525093552643653933663207160454638537548100281320424429384088791794760217272565425781397293790540556846808486211418342513882729289759363823284677828343914674278191864304458511641244476995262767415197559395716277374069159200708243985093097343316417806295507743042945246329614240058540621137532248886809662436011709707675526375737433640211153029558641831244649219835522590706421435413422179225854336404838861548350271335711571988870006883895352383867012774798067577115055285525185720470563252924772057794204380514670570688618420434387674779141075475753235577487170828489059183349594986915489256814655499857583214769551480883072467906537778708342303064717871547284136985723685858893505125009117942765588200550194898596152178116933002652282628289536518233714176698523649356297769520870110339840107117273089629286170118270512849946090443265369226967922138548021200173511485142433709730435965511330420323904780098469396419058884292874372024609217983412308561451457230032732533720778371449662413593134962582415625166758954915395518138092542379588072333858409351565772801190118426355639922259668730517710816728586013747159458528120058897338957801832457601299159918057907500704560822818668015996082883389070729987342171146468865003939884955377601987358840880786883389361175898113219690168900825454895343015811960538774805885783706731652479553000218938375525948204354810732949893614711984962514948583198389454493578495647252877665856509516027298897198458791102822178008766028811630261104175334873514376058720888413745925533517258210440004223651406313681614888355673769594807811314462405833113426009211600326172993642749379208104266261879327948684166073954076265414178362934143804028787245436321006963662592874011889988053192878914904320005002293855428526418541617485929470405361012175873662113110902659453754226064858340265335599290969082466057539274610923182047948870155335151172039404913353248271215018240131319849788059113895381097400526803435224592938793265571593630781312414835590685112498457375512267527779239031389152944284944636045876728296944066056045180786670919998574069731885980332653493959662904152855985118161495662005662144777275848677280257959070776961763321803995611445860862771924338359389761833422010774621197927693385700321560594347753500999665055490384324938919891427767458312204534054276175228324690634156146080512780350932884729472586636617931734702190003591326566952667401972215951298485022002270887177096056191928130428289210949567204367215692758094468390358134743069248956886054027056949627215295282630513190139979372739043244022506093952370544758252931593819658919638565249578111614509445615424937007275811600655216456000250644431187927566893139634175771199289080283416309238548004699794218952792784353708967976667577682227949430322346366402278801109495786855332483213741556088234142615545506751249295076942712580106935385332840481394070227160193378876278336553096558688392020729057291769400084630821200163428736095502350586669275515297591598846686818556082663174067940923602491856428527015306807760579468457148393472616239673862034427458461986736378992703426759293705221923485938869164643363786518389211503625888074228166390404331334918178370688878800303345712669832283008833161157357045010133874005342647749779276138995018842411402149109994688948920671660998685222235818866724727232426483272764054820535283435274366073907487531468342432733167588864242897324527724415882063629660861245466273506047300689403775578877199132044967813115762104896612697903486547666106156014364310859593218828292187774269630663016148569721740831527911167487983392326231618911480061827583188220696322149523127023169698485087536931367476183858548507797193691879190205046189432482782778658517959626547510978028765414279927211654825355042272849232535009030867248655399773726406130425226169746375667596619379942531555278049060356730716294086200314340178609169608304519951598038409036601030538660979228050476222142204675811595555898381832240695576395570877510092492203366253246207046103939860916206732497458406433771735729597265433413185727900380227968016229044881420673622851997280062525121130399878239763784405222891138708650391434569546811213530614234009449208438450859004801581160954675554715056883601506172624851913226712720582922740976335495247858074600931806568153502092704120585819805882606515124433460068698473709818858038890727114049472017768682809306536403545910104588993707145408391142655909373364023190328914115671061654615967536357134396975268461781307824431293148161058737919102180503923887170668235579436194194374303020404806895119551549680555076344000603680658811639959259858525937135135808231701753195330081899815543458476442365378525434498662234499985097631135499502841905833818661857436201827324107852306718150808050395904527373223284273220597527877265786404619124582029928233211531232742496714487990472691544421771822024313847210407148472061513103680390310442315572416927145627172496794567479844153642167990904911589598826978530529106948431841581635309292019826651687426557537190603030550209164725026205283268142212663341377139228763824045852133501034977000933601758147342036685620953704317093930175703092246229873697314312327417005280442454169329039785347848017843030027669764364048071578421563605497838958895931414037520284259355239353558692331554944517909009568598758711917700217930106885349379836071180714865269037819286192565577221626846049193988258070936602000475527931803619232530246684414596618328628506745265967962449156693920960539681353734131554349166220940145070205990896376341165362096974192730571323160788825492731475846076239446609074672534651187792935242975850983982543423512750394184428911736126332581162046049757548853925141198640079663946587302853297761206843229301104696747585965411278088483258976726776989132462586947998758586116595634824279756898527917520031334301535349406297580830486825994148158891027523044550761300699515737927249291959454412222442838682196110133347612677161114899355252980298437557675076411570763365140559299147776043227920956304159161705971727181811765559699634840687229479882077819814752464934292277205366799696171981346600478369694417439003288310852143982632882765391774870561137435558648442875357107328811671999241909958250518009001906593422066463792255868304502702811299080581993472890260636360159571929328370992379828770898106193560061788026022933742629104072358326651555542907520184401241527122127212801507163043825543177613467828618733974767175159451516335595878341497856276379535086195602945675066423629707734046355800139045000498182262033206259991072288913144956768201297134141638118201102287841250595820393405250503941155094907410464163395388099427899857957409179946574696900711378977883211625358911897494256869474962671284965524868980759594971158480279436869652545170823268170019760325926607641937805067773838651951566145440855371058954184615002624616970687077324473615221341408929301134849067425951989737085543078278947970993880594132567945085644268601910553035724940869124369419767872390773707437582335230389886401263571877742146063378506277110745718432460402935051961119331082505305743729201990796673838876564618524409824161775400109544812951614484922080732336538070872480316183001867333687345554996471663411191568783548294854118915448491943236387454408778253659199408815690616137976023493387512221706574261186757244919379692058157660281913465765845719949172354453530283310451334493609916020644495704900787626441670588464170607122658450780226503905283038718986789696644250094829839627484655344736741958635609188087277026883422588691173809582196985970284763263894359096474785026812805528206760541693258371300787849330358444570191321480182952021249143102561264257388935311717248103449938173199531352685074149905704006690760173325374915853971968866589422963788930802031277294726631881033830711979281460070422381751064434629049241941415634915148051597273730932487307851080852326250105398375414720167860054781729020319884287603116492910098504929379347703008210177806688712651593422578226664003782615088341673985421782336818412425815650931636895562950257201636325918994974485862526713741923524257650805566564063826563607580009372233788437024487855128370654970997227362435353434385535680073834734803759175339881609534583409829590981446821393344444540867771341206258656547295178872434931959796294810552340562115318890432643071370360042781163140306378783459777600366900066484329700272892011751127463192675588247518926615713173794776996087237300775654743971875282982747105504010503051694309031135372817116999404386350238527824351096706956009857504693976016262826052784244511069276213955149828197677868761884420277774548678925449636772801598967526012968441572633721842637621310028243006321235992289476884649876537730009058876336091647649721683352509196275885921370467994203679530625598955453469177354365536183195742465944747975390882153375560312698880234981224930792297300399429477868766730675810336631590910394029173217606605692510021991218532456755516745837886034128924741257947218841566579507424941733885056003505599443880682578897230201327161083369264702873886980212122125877060418625567520314642668605685929681214140263173306138709857310083640915899824323532626327667322605469792047461287280746081252250361019212580748780706329829069825662368744651599883723879056755301057870939409962763518134273481703403614120165636057288861764651589879157166631639305015978599308928830435092768929687955555593036154831780759351360970015931434279082471171664971878992179988917682520900524773601683484468173829198513351522821839844434209013874592472416921224402094367223757488794010289800538634992942002991969508304096555114195196635146622051475270020752644436942550649137108610197106811816362447828077827488467407334387824736307303484951907178456316804049367045824630291507709774866763592746676861898151005898067135799936362206745981346030792459421338794695888089271522106837810096234046698290262855422106318645822249973801487275859533930549595653696160021777288878456451173329525436314831372451196315406518042706015194001075931176054862327591456743436722481478367779346250494263523861041575238193955231456621652180285485974710723918956408074051454549418551390332526551701304183676662791217979901766358725171694626557557462244124028518558407086574581781839657135996121026665367162608624580504232046223949722741446531292136616723907944604104318651436065535745714447852060790013350006542206404093169710464915007032873648558945961285505197324964378433556570535305875868169590907215902110123288713027010289338422448734374967787503445598488261309567563753638684899007788957488416707969307358810058107107898722590593855632180253246245202885067355493328828928675576019129282020301347277524166537839235555008425262708824294724837498122344657362554080875517263106832699850008366061093090772865157902662473082214258299255905120703286196293990842806663181875717958773545090401608258168554861089349461638386990257507560175625754180724239195865970412027119779105927122825676170598441504778532928420755692822603792499090019516491472878395017044892389253744158072381463587294421441710735139846809338820412467588439458325691295814714085057971482758315878803424508985050012444191607017433021901136593448403391194834491813114262966976092603560958081456827650829576581419510817759377145994086224983838591611992659717263475684025131797573930235138839252192290343789051766353741780288921649856428758926503303583776286111399747295591881059764670115645144053862791504345947363668468665468804980537331445664795628167384027716969498232935662098561059324881831186994447253007271634486918528814603059113683882316877963056206816795674056205302737330786216389189944963346829056741362838792842089580348449905638463982035980152972948896348657763674566511381999221606417806507786651285789723316407355536974351305060085861941735596790395512444139598878114392922159616707665630299207547034488676900497157160431847425045761824684468133077653597157934775328033528885596928030399627791503020130974470374483167849701669207088666699508039978548656817097113916266690014842481324946165497213428310677713669894620446879608173182698833874261389965537338020421629589378021321781657080265893754901835842738525139012888529780386151609092670976463383179047114303151600521617819991960036222653598328938272312017218050606180479707985551400024463828810024037296883832526965543929834645111780171668882977939118052561928504054553204416719313879361445039983245258024442052077068221549081961321533544513821379214066085686903785838043936169710289560703443705570447376557027307438467031470616607074629766878129163329396904631458061770940298455815879040875757651174309430457601406964576417651399526674560470080724512114284606445326009859237055032632800918359409220763737105310390709492878035646538872033310193163327439695345134332513261773095724280094957010692105843263736272352753706313593317715023862122632309452728965039258342989716564518892808611802760783068867979234569063964321848604527798206116174912470008913640266680255967605652979484254843360660190734235246886847920917918738076319031675353759191041713371265347541993322785216835937715379924864954437781452577316023445012675171353412035395807599182950274765316475141698172529627165287313151987182936238875534474025954596913762758130393965553914995888119041965889631614323093202510091530333527372847831317280579733416654910082187820594595205449308424424447663537871135026647976826532173495893700893562878683374397302197796482419524228681797562642403359552970055889808849091550732013788150722276926685844921954174949168597534333150953476038339827726008463365374164552466505661510575299160025617594698240487252853446625334017932696184459460355592744207107666252188819209341403433578598339265227152878988042908840684967895025219318791192162830403525339787395407051333518369532500296554629327165482705603222026701185323526955363170391937742145516449346129168487250927154872130887211951673817959352779607850376222084098514565967440650180756083357108969407786449542799442465534579260009735566033808349418924973993900399272174144529771298754219594016755980573185947955267849648351075808656773936169851345361382217204938221081596327203752427105143588196482258738606367676260141164506271215218692160058047434707605129767260270764840434777552361003398273307800445853908523970475673058968624653807421654876312196360168022678438919626061333928049256456356432324398784698507516378483982134435517748484992069737556948361212190724386993968973970446418653293550627130371017687105191464416176676746158768259150430772020210762434846495181775850177929789181250505385726604923342744060358516225520469751569346672822154861889206690696301640963955422177530657795534775832925468962701714783564437280819463761606823900898335944934248110940264078389383066889445183883274311184753936801805396470555500871001125457507012265618210444544380539084182312062722694532777224741492892806083864541200060582091007902718538561000036127408194565798627652425431812626910011344823145504698586442111184532370469848518722023099612446011952560175506212346232967193519192102536586572019890945791523352260233079444127681093443548770480763355591481981098417809215442263588102717211259611474550671665548328133682335887577237468315414738635570920812231497578434098828088415033100417437546352736031549773868867976754985675331453348694227896406955872556156149839042142695685454923165646425363992932946681570142973301087768161083178679229815185307079850733340786741859327657480585709330525275333968729719622721820185321320968854158421846832895207421704323724804786436210707316893057033636538339585443263834926508628724372500310213995275686575584254561425846875545924925276849888395668949017690318008679847387004896148912222656235611856256464998290283952570967911182133748776395311707810868550540654993635013932035322218260752958986406421849309395393635312098098901087799640535204531573225114986389334480926644980106854267216813871078955501514464373092989487636615020459877948813290336164257538271707986712497458224070212233410336922832133343120507676637927206017128818292290582311805540307487024525305862299699718126097052631444967548611784893244809104183575186172020481221228946342976023777084872656574903014342515893406870900503668399687324982128237104325693025613908661295564965470306877720135576656661284315826968752966969224390227524202254938640899574604913377300349796306822881845775214212263959060344908303136840606764790453261977628308488733996243817053545668905034304324619098810600883704397259327768112629903399125424480785496388201307589854778913661692243181238239747988725185349447429057909600775435020343366144406358723645472079802786713781560536779460368978993042126079593933932392308684707329554389821011521080040323260999871578211708956378610487324793914998097889087991133788036657660583336942495449483750324798868268848568428826448664088093472962205680068205600397146782116896722189105124204645938106120297061528898075784416844024960337738830864004255070647939907094649365508778675626887491222131531877959248658527274015385621041768457938667787299052688252345357294102761468278917503287456771088981175709609123788741151302000314148446870791391826027680936294498278131908286793796670073777314598597347073118852398288890012171996453744642102355990949449620162343382794590471254404887202267574987273672872714217998249483564729233248978002928130664420757061624032526835652603735595358418030071477427622863258324793704495094897731477059156668083690423512759118523596476046544550557599365059487971824338810180706312822483559936497486399338170799473592342895791093975327120388278365346149061925728123086430591881520589090578677563332002806117327682417616856278030308615365415923034636968684685133927683617384265286770009073764297013442109385609572622464610460446033661697014688256761219114693262337573591523474302078489746092659744414154266952126670368148569454789700432300920211439549597357053430629688119426772806967138294207823916771417780730742560891992978052265701415164928992257804424390504639618766544686385673837696728942189935043479855738117105929800392790815382439882801283336566187815214274679207635982136785395255946486957476046033216266291169761173623124546741725464628666311212533540253954510624708188906338832295460029891383327743489662034674956460709309148850540352138835363178233000982461284918104521435618802243478387576925936427665610903093606411881563646490661362925980811523949504775764189584972936743971216878177071787309609257179207037687931189698059715428364911432413012351555489164958597308110265874487492084025081209772705572560459956485121588142576614732162877015992452737191057453792006974328583492010712821137676546404588675745850725727776826165278245296059969573131612350087173753954979339479663038471628376965334568846753323722455680844393451555559669983195580148353347448452118994323296551171839163560241020127628572903260235397981086935943938728525302328273020911493781937577874770552073717836923376360261904262805886644428857328442558529877012189428631553413234266192622386133352103522605987704752190840398574623322094858796421393621393873269474298791169415226821366346284325352144002335017292068931454659449618851618054384560937489014998268114108132374448929932353881515806811427148484581584990683030550577820382050754517850828708848763672846286134257931086229576612743162553214234734904842055488627309990898561484855168859061187722478819491494198342134941049727539199700458480596949622887273275275359410956832865608315257322026268444226251516879353076538778403195012157100119287039038813653787946161360371663751987331448709421902382435709921041823522207653676013922473495374944010455683054757918710816750380159485912797986864405826512339884475694956582709373835630759138821687721683668763600393845884542756857005627079430036632313122121755739551469988813692265252846061203072877211808055354724715089513959648436370957476520987086738407807496411407251456807709202122440191332329740424979807131325592072680476669674051810082778390994872826267012368399076877503039896069077685479324199845594745010785906138518107972256451280405402770209997821707733386277110769228965008939915222398166961150385473417253484332727156000164359851046833665753324771132868981562076185312376046675083617346154091604201526333098626167695873281371892644804793721885250777193502333864825707644111118093578149179013574216534322796115562736644764921190651958195238364892537695207419632880077042317772086482397890280887502237274991352376484498021345171863055728620732332021744146904670234175824465564766810363960770799199604430792193864670660938337149697330671809534763639641997545349786267863957205402825088867934506092887148828970194656429257409248024956439351859670561895021943199226080669942138124736778518358084518146374943622929802620825720121741409897839614973349558837481605399207378257230352076524131939246622154377290236625785432491731904345065974939776694982108372271338490637338500331306874625280493920221760079549849508545761366998125441869146493658885406118978730457458862643455092246818213795476505551636891284645885754357220504342219228729498887458262657200156817580577466955663812097901279630380334208201682186183169970655445379762917874697453934985945658161552850464879965909934649716386429663573431498727149756941202601711304107118309533957489871717207507220283712704382135932280843364727602855332791007166834297300629163379493313009063441127068319705465177358208429307633321238319644305232188487457756772355838153518199366792874385589533618195190783164738402522338759636761839295433735458513909090891796980547040351520831513122991919270140223953004164781550806149132017557755888075230723014635683650038607092926818397238524114657365456870624179790993916930220646925385869702512712371661888667051162271122365293975106189874470385279786684511333557710855310363388893299016221108175191271536738195435669881955395764097571969636504838035065560186131562926790579454111310671725739674615581604829182580021877350659499331580734979620577362582575188051390921040578613988867588518203933063379945272459465263571997764500664620380015759933985208280059330732784682956888616403348262056349390839688415268573517460579101656339694936656221506694498502348295050246597642168902751868785887288863774373054520156005451513116069507211974679086013529656679117158821852781267107164817872338274808428016789678138018678853110373017556650483968291504551948860156841830009938726728419037428945408605161496574318694761510663505055985312273278216755379242324657374743502414293079504673002550948241396431082179352838095583137523410358512010923330834256796547353510236283901020090522435480092487378371055669965296946653546258290473625035128515366647631200955551322725470753236287059985310388039208985661352722261755754186160741167988710091061700669860677276947208369038996895166738674276566853930781812609298514802644722226390456592581152916554763520901690687433098250001192032691473559132025406562121118537967842941747083894409123130210098553431089681166975764532936547689544714822010875049455749504492989808876437323074135666984177421199580013794063234617005202796718736676435813961107263151092898205968314066824138116499973766310684906795567727359553381483823763411669739065583978972235390826494128243542837813371890652504917702609246818458757737184515639346024288496719425465652579185701247720622701894165498956965957479366834390848489048495326261769467343653743277131376513299394132303113277572989731465180843955775935546165359098737807999621804328200091273139346925559919691339333270956464237398895639989109215641124775586888337498171338489054774128243895659511804806460443629770130835225754339159611883510149301158551637954457186149545165729650060513671380614546257058584797570171274443871770957601125590202112159105831109458279106793934976064674414168847475295297302111920172873300743064792463326467110127818684852264512842779755065414663025478569086257597778569883812926578238523723402804621608869033743109543624813921979118877484195233474964290210268796984331233111286854341594407112975168147363042589360789508797027041212814072298648635249205997809679641139632118583322815943332203150131476877804615119841983755646106740666284755405087777205911580986483575118427213426207645177403762416939125804061393041646109122108407419713672466086564061225665122719179327473433786597968200890774097367230079655695636924683192071205863435503475301684931881680016619572614694241720119434623296081591626791987715501226280067683673812591486559980154195449338772898235087752570452561241888120584655692705918199959714096060105352143135955816306057899751579651864992471592014136703260233488447756034193927596689504985994318792869403382814679899801171145607618828284017500594481212506507532535000096007084723790227035867009845029397091525437941115061145481734552095828074924470159769168693009649314786552223005720779297541719569352336753014403765628306276291052313979267793651483682318169603918676751826341336244578981293522469546088700592407827866165763319207114092291857701923531801247799362445954173890455182195849720554765540280327042228881484905188934355244199349407547613531275209664425189846700580319625699137968333990205294949366476462842977360930723994567823926291661965822311093293850455727901986659856821415948054367432156303214935304922870101069938111365958693638543946661813697601906147550176460809213599704362788300184665869942883521863781610715897101845412565027481499363233693660289125795994720239828268855559603556412114937343864525666902229599785610324118580720053817854988860712356894330941697434214543313214927588796321506450016192747777401073643021097616284398142474865704174367417275406312701732318870665176491412601269120032759933829967233701486179748098233349405118578795352240417737564891619725529538502682770336566741066963006996282965076698763339773497960048397009122314101636670614145582839630253658225030100220411606757895320163996749256958080245479552426867211711496341474264856006945690191083739341956652170513002995303890009139766380418295702724744073001196516339076339225892599581568918041622009701778858350832386901014849614181679549066415403337680483034420260753937715706232080955295643947313560997907632921610894228610888932069106765965363139726071187335596671292450161573786563698307074261267203605783357398730342615744380322183524870041815534713981721774294490479102611116700763425762200353423038004179508765776464039650940757103635194733590372959087180304520763544582838326139849667083265132423011230269783141305057332443530260124418340721151778643620858028993747555986692837296584634002610269871837628185925662194335872567717922356778323328032534498500620052655197858918464837882588097375501244507566848686509246683049103874953118244627289600955536130362521549642054879983537626731982849443760819017971913503985725102904019766318233764736666917039132132107095902566041592117008272661348126201879787928179994537363321873819444167165174651462289713172049622454400033760986805826414555730686068864669040800946848467773050868045355875090543633590463296711379827713407690635903768466426931862900471047637675534785401929873931145054728063952828892014906135272371954067862852920515923624353158732874707570941243149072501715943337659232130463463676749737332938334806885093043699855954767870445403129855758602463709257253411053844546244206381761376431162037097800359186648026128300633712108800945685159878819462191757963803744737059046576223356046363068807479033992707088350720962075623811382398422175598434771662684832177935169429568083549179992372421890773212126575696614680029407860776839546060688241226300701229850075253650833953538006141902487600979369898482725352395255130959582313945517241686698191207795496482014475896213467472155216157110623492559814380312915291724174817715904117812165280666933657431185517670154626070158385043236495574331111347722105999774122260931072224296634493525215414265757941128967943960929722530834115369239163980382702131772385440748438607357406752525220335539866928143004724713985906906493993807684429074739546520476246043797753072076248480766571003386562457147005548664420820452048475898758794322550163877618259370558637543022617970569497230882884473980957857743029635547355418991820311685653442652009725339643925339477943969042358116555727789324375413764293820735198555888248731215516530457973062509401963759553449777164915474158820952256955956962009905802939943513051645361108373418886959905097705053426629084918467702599610215955401173335157656768927117748625498868503932217632051751108512005564713654658387258828484879215686012833889282321412534937520606473398531401793240038974012970729920296400046874147927468361963309144794504153041750625810088380150631738175046504696560014916172277364708852357366437633688386974557507600196287279296747978904655224715367532914819516765680746201041469645057427483841668128702606695408519047683200165913035441610475868606890558628751658993116627421185739936923701338924377555586447701949770295630235588852144920702052042455487568001808321357665720786960069751588880324466674193941420327846868975009479077681566232793793442340270514969476865069782094027272777788687889653729833623486707536913887309716710799601684449926675740530544146131500677361102963157698769907210821491778354262680718671072906667934884030864224144405129019879930615701836504061866089392941837950946119069805013775308546318941667545781105045930178724932889355603306698573069268565029250937591998318838127967497459669785687580281057583316512445239768942183574565721601393865459994317110457266359465363571580802630825680388691400971841697871984508442072143919624205429841686206399925234037162507145247015098865187785948485418844368556279676215673513889955178328352694254787183869412271991591059291134975985995684476919825134717283622225730457086409908074253923860053180845126079031004479926025134093587012601923185473758174005765863280014546231579024740639430878849877702224319420648415660719334500081598087974599157478542859639586566804641848499052935491613456238171453890576695243041731621098747181887821653765098027116009968823369942104208300321963497412726958995973994931547796138467086819291023140652296807314423304294352079733419666863440494414643360883209847328310988162340986352462466559790098547603875838189264741329047187440447618364643178080307286676543265885163010630267805332941509909009399423943440187795794996696306772667018018357456534198724994684915172377520891676369443161905636695841347596784484894065727485360522370865743142947678595124041650811382575941495970987023151584675363352126681825274708782450244170307452724047573336836333560710951043283078589624487351961643631713705328747718406376297993057303201137829305685852869599248550647143572837754164376967277870385465586577203299452780627140566064243339540989721350414110856615392589594061767409962167163111962975437662433077364511126282281136107993976560490682315681386127786224988087886818293975287860778756828931779019644910205269865418760619024442827202803780850439033398520231542838251651592268373311640707408274604672834951390680022019964020402330420503562925223409634020811679742839654916165717829591361436148506761350763176656014077421068383945070797360852451037030033942956648274522806298077985840849637805462516884963513981080065089005459904893140880801209717756317455598954543676033960647379688283993629599099002445852587177869589129913516458378966585722016737326494498531840018095968225558974569923212566568874571088888081193016546950258070624539917785037793019266896705940914284017658860338878917656695689286699072959838327543963958012401411424205107780874559626125622684020355531903736567477487060860251309632151130729593826046342756822082226167788096100350351359854631231839174514036318353820675775174445108539698530991249875066837496587757500204295601119096414012850708182756989721484795230707948816083936208153598456761452146577254109935993730973889466669668269731769853971375496819855892164116733807636845228573934132996955307118895927598172343379019812961978392957039201309475929723293868915598355492895617082961624548825893049271917634046883385981574581288039225220373496016081939462079774010120589746328458211069721360376935733991554314379074857243095667322272862958075280837740904962861609746638364039194366069191410555385003645893966554036184469811577291078935954225423736710250174475453775945241338783865675457762648604379592744471257465941208132104291263028770326867225775554932413145760306941557711131411041531002056625761031330909749042852097571895111371794898893856783150060545329891028644368496054062586134251429922605552972689088578816776497459926318572332708137977113242971729233623046215246693427087028519355245180328469965283342527943021310424111963985694142204285637267745077782374671643376217311203453447742407235039696576577669209043320397933327398598197258482382394338544768509786352171506140981282528719321213198326969014207292448314162725284890954714246888548328060337473898339461392213324676238764067447829852759187863725891699484093631444663403450708892432164312841858391590691722847257777319979238627700013342144654511099572175029716073275096968142238100844749313334427353162940736416531674466802637418485029412188271790082144793649448097761497952300383391752032513761448441594287581512310291090696546125045742559068623222403343417966189082900255184927136580995568125425979619131843926035605510296568820453382541401720060970363747906315586847477652074387394143346000010716909038569694429256817570142458030366714011051401754502679673293230297369416546236145071729650358479191709714737743798409898269317778531265686598245761513418353007448353629078897868148707854770114457586788739484742654741680327597923352939395362709887064156322923900555320129426818016810206188956051965775337040170942507702488455684456583415783703200263697322035427729599755367528762320260187334189577761780910414839050472817760979866808961590427834261304180314484803293744528293078194533588433078399654884669102072426318717317333910987567796657049824102559442797957168886213295655991567730755369654842428007815154431209202765926458775573285188149978102603059077208690813311803609326957566880549835567281898962888734327236554164828575520928247768192439706887996364166627204064486626142008894243153198155372529381164665343560617809019972327032881796099598879530050694258121129965526720236923165215509097710439474953398779891817069416232070998892380372124808959566431053113116975370477424607420260041768509128080363951570796098011255904384335859949104148216090631553090217475780782787416990513749293367933336922964822379944940555887917357003814479572322891432274626765155699495125923908924854907463225944457524007581063140484979671526261319128995458178709061458626024620342052048013292190742036939873549051352870443456490434475867358052767271576890112563094891391644840133376767497271286098263371282019799506304649186773830161737483844525414943723970974987103684988584714985135342577346720795241086653218342629744155449198859598331064081257230086170220427459819472498354450342806324096894342848008368530760412551273569114518861136156768529676360069151333349274720415017218809192505327682511338710664119113049335198432443678887516346284263816327357012856107502902216569371196542355867949185908393942397932556754027193129617007667603395341382915536429058837007882601761198845538328408028155526249848374115986681478869586586133853445011802836238224671024249130726588091319790086878846427480270619534819763946468394263159931991855491424934262867638627858219874504366154771097579831256664460505532917218198248177404566008988015254578492487931249223245773224152902257446947829271174248112327741133446670060324798362875425576746510366739126075972711537159074235539491194287750840318743134152684917783847194580950969211208812201746706061101607793542378190065571163268423700385059365223672563912736551856647072867077477514047455140575231237485000895173329761961273098789409449868203558738253263360380167171273096670102259608755552921645577047798087237243681496431856597138483860523409733371758239291573327580765714462390367684709400880031082213028504924361640917339596833240294709917216826297563013877580887221588391650630635617797850123181700616335245755214733260616280625622222660007332841587293866724073447467660539793886154553267060934358902290526224771405720899902838124689379424501768244946679186768563812598727474667751027679488725571875905381002842473434296344701051442449768891094929758040903820947343996271658607796103739355785753175440588044173289426575984973705690909954510295806577685860393754727913263444774074709351528702452941395058080395532249522438827325743043563401749594885452373692128142918900140760951787364962678956514119896793777651230199176545126476373603694636542935706971332864491225512082603844862346846449594864471083547246850588199686802510912005815574994015063089393574214986003912954990151278759776837852309876870009580404959270432002982085103367005077203645124004122826577920121239896518021659192921616745654352610822632245205454489084076679289177566032821046306765515363458320026775144952650316440598160774470329618761237204193979726418463679431823890591285813534790424004579886608701468369469468826891611802739536568581678859202444972869505459572032109673177699023049551012755376508873000686440987793255124879635633345615980940141679293002322333316962143096557977815169647016996020478264380220199611998662120945230659083020101519595009373609699383088105941409295517635555796103882119738431945574307219566427336173728283592582549725650459430337372641842882269771517581549242298513258838999334291639813517520307910690696776481675705038043244865831687457566229171682004373505697267375662757259507953204347844109455160503805543222381506771036608963174076011327861728628053415431607186541066983937439783710865894914990378420869725369834081178668136251605018384584982339442855761477736918660793522114758738966744794267038645826072050278378939254460710698848761378217985004442558364867091790138551366731303479950523426520377996010381929517248949625545329711312445160052840262113549181467708772792201104585824127633815401822921386255442656393380226557001005022420483303933002649983705236902529457020140209621617946070534630878408966581231626978308711741080355645790417605721087780916996074211054357897634755556971086949545536148654286126014712770061974353779941377184500376423890023170755619111537156946582247300965251620286956293327051654868748867171012811525166331389935227965114998708444883265354272684905492136718806447959687814833821302807020303877762419030598843470981112783327201689725838627125412162370009653587508054840743449363068043276069729492385166635729736983894999432274736425990220034106109145659340955548869865091787257782718375513413989568716684365736019207567557150496701462480222012672090549828688756716063325249483834100889758282557859190174140094946274796242408362776963015654820155411550962609119244070982137928877060872735685419050908272713660670088400986196467429905164137105533383752715522243530066727596239863237575121080413672564299206460058052569878175396795101137256942105004271422427721710160452843099813675883850292802413000906516834213745251486065883960001383566222225829631083905259569783663918117244610993875621557075496996142447117241707534935187708866792531278364649476362751049980171510956556550445964461539251595606899240691018508949761226202466464615855430127556466329230203495540152992711087294369491104501517173628133644788509548635459819782745202184603918945205322259085285737929581467053189077874119718692903318770606113776963487417775595902424967945528231948059488105148992122881944450306904598848651428869786359908412708939962602164774984830954441911782357662729015690829826412229286634472105798334583124890927222861149278344556422616591913417107842197847339674040918329309380166742918010210509611497240020080496914870515312490584748663127221983862372454648068957691149394260281461782717658112457390618873872437514269388299276530724637832740591492800204642829951031980334683457874814233265872212681020559831457474681697179671216574867702999104671658500002653927069550896418361399577998101172163065860473696918275632931017807777408296287056226838952134298944103822443232739433381338206292572117501290511823784998304348444043859976504357813105211601078220318525805423738849586388396430570376129527562512297790571949492062096102602716861427172172922005285648352329883415240870515424783252686144254328316002234384088567811663601328099509963936729639051603404611520940019716353184003712793766996012592362034496188487263284728593267444618310377983379013410595791131765812498126882585126529501094599709000649885058726623353243657705898185826593775684305875197786052740603549651536839496690989387714989891102173789805428298650908305138018797952986823267871698000333571648459083168822897196606183009204428242463548945173163522291073804553065744851284483890017978735229749516206664080335813348284222544455632204577315422013447659723361300045555249713548102374982128751759645558895546263161245919987977627164289951591206684106009293399118701918313943034586429013219792047162401735439175686681147590605398985348383481258919310475971362635594687669697885010213018503207476977515610740850957410609561146320986425719843603809044306000131658645268010392277994624327301994309155093788297893500840786705232957061635351679796174453570153084309831140380852995793871311238667481467511167757453274888778304286305869964470240724417312179626287287421226631416414981146367319833785530075623528522652326367671660752231223963092563693186080155031064772561584301177259806455309710182656356378870827027963354889007740076154194945205684712247675232594480250262163351301849912679236979023126372590554240119522782884978253741443947615841202341020383400109600633676044255630718005314317168514770904632142515321197800511022736568535778775548174555886858056065755834733564313407171301308877968615769629594640430209804951511820903293812925979507528496037007375622176329776873338888258017270835991559525681390568474278209937565690663349265993605760954571749025852034472330053679746599803249316256397726146942066267493163696185300094473319142320653381132463511518897154047364670792785941720977330745177722540911558863092338705929619845553881004821777348497964402030160900791734595927973673208310041140446938937775234634602546125797551670173258808130555873619394078911004626912945989424864716217209015098170637839260377665572622238611206880061396834884725901709300225816054534506054786136117868826933390716509684840970540668676253454984808462590013561420519545723162710173554631415213485019292836896370920286829065217384590969355680247011560219002090568712264328878387548728237263742427251282315447534471066293650973920412511138562376167180467015020511249394457282118985181239818089119421252251741067830011290560415227885522040925303080421545090825597975354403949229086035324461151659143394329532805176404259522150779416928040397296664019518094127309778376349974331281829008577639780968038723518962460518595601779512589746847287520853760574434163704535995415000931947511401766715942852380658344705651248037308503266467823859343436909071842962174523016476258615285549451091677661619373109191576808077210818240472022208570834516858661374191339062089274799226851465691638831721046493610116224273007268049564803415872420816485047449330017593468457456890062780335585160540312787667383472175762284614481627911804462054912632755475003550905716213764223968569079201302190186051806797512945638743295422687738862373827308301553076193138375093861343900914437351013265782736825327018824528844217075734013251221747435824520548858942646859875449615298669759566080188676735354965835787592072276277344637498978358345507989371967605660630079628435301784663902107573483511582076902278712779295440878789250673483835043428251224524191485072639427446790194173393620929635941832130119189366969996929325409636407210134329484681557228152542596432858996149069009235045494211269555422034657320128330905606229668652900328196923588610596685328208613555610352719004708495277932246324464211143576355138671813207653438507568769291089063253681947197481563399795698097070516643668394472109085191781682245454353820080408305317162467713037487828261586181985396618157960255718444284944532840235841824583979852642597450249497164683305209867018301218052035905934734446565586396616026445647946497089983146220274079042041876129950025544458504526089673790370829406531617716414837513664938905776708953791681738812116117130628411417499130471092285542503640538437672596569639680736782479270658389851630905544002017557473451438881585366811189193827635871704072454584759194559815067349169302115418132098629936682310741661159844396790913569585029597661359332042164633383606634050117553782830264607441995695424438609817117788334755295924718744891538632110049328375835895335845519506668161674720081264311148052140969616776944471570603349519980905804348689814023850908214218399946518936024479340434160133433052948315310347813193711627466107181386015455248926098984691420258282402596289051940480934328115341496068560252462906388208277675113221912708642294884553081384988734953780212067023498969728314046922634596425179218045190467705807638749217883539617343716306141442055751435756992760271973135565006292710438421118335484794352648526884888767421626715395487875366380867294083873945374472883153781180635259217630991687055981506202638904605888993838153360135705511276705179773476715740054093778131754147419251731646422300948095768536043508890513075333347786263582031256977934840092747586906193349056003564342538818540776528364046620279653884052352155550700876077922217690679330269749595170351679737213045666013444801989408075429479852642655814662472680643896307536206696780305376465772530603041138827956586920203840266394013672036506236865983403807831050585879066309795625961225782821416965858227189366123893850776204326566191907921633951140228108770936151295412795060942295690659341022640626569807394370048944885081141296736979535757435647885707477444143188041417285920607665330223788259513163317297792142975465720342212674379703626749517104422300153550264848498255804073973763863643789114046020852605888048072973062929784698174576408010296434288031414326006909704574849127780946186807683838637271532010657271466297337720764904805358677830069643537588228638471038984098410853424126011417311273965524406838742431240358814828441407256455884923698342308257463478526315255693188203490851866446002352919656665496979439976781177243711320800172106792664057907934939180423382265791883752393242588971901113317425418900103717309134023960970088492735820677459414703408708181681087542085314851813107061173064106802423742177830961715883150715424486037612075489033186991076542286820770465354413802730415213110215568930186732082395790593645146146636187712418649102464591703824182736784694593891520261601504467238410745461146674272429314969064517405687221367539337695795444640251743184052075354105057044829160076117780655379309998163743673087862166482721962064880220032177357811840541522659207957667863083779748160016457382179635739665828571574514270002527762709529223956912436207326784376790937438563953964077884718747575220847346471029751758265450919570858538797430295643471135802027605793833898856626218812649008046322935830642119928511529847036761144107273711947984429245241060413993223635114795469723077703804560982589893779372115856479319243386265821689651343996580415803204387171589515379038893757753307235102375875579995846544698680578637271245935436302234514161991650966916626357510117355865109208536128255928898924244067023163081141283670007162100653114190988165408809833628549844706197608696702689397742589775788299066000334232745559307283816396181622460019214105343329824706102814174309806791914170025620103309752825495012799409238761365481948565696525562004880637363296571427778497228569290213760292530102567524133120492626935628769354788905012759749466821990948355303941088572946074379004245357552065966972601244929674148067260390781834171233709357381996549228280720165757980611238697845055079419818639123665736409649644677284080944647493671059228805174124273887009900631049198336597886267355691045498181335307721543333541975190708186029017371640375023828751452049764029395633113029633180372550197606732894684206787258634976701432583883594886168931808596627503098330364971179819564236380608318243310670890350254857990807532463488921111280973807973486203900329292669140410358012249208732013711681921264992204116443537147245258782023554513028904773720445392029280856551215056894821409880314195462537166540554202163453092869987363951892337933292180472739500893927323500425430234746364425517336391370923981007634061445048665975284076454521383359243962553536106379815515683161103364278196874700911329754118232467067139999185556123548976324351721114204314122632413543333347818271204556902036227390028866407038080396293991294301375280933456927976631409177228877017920283754082448160397219368635870591156103577403476918690581219357531381115343118870903373837978407831197844580260224538670898747412831190351798146084042510391013303671391053530049734494463275411883025463003844687167652446465443553978763465516153087474130078480874458091171557462859902170310563262840915962993346010883155028004971750871331269588869322689646354702092067594078683186407478928690387242381670356918071508485094980339239479432833270099296291075850427889525642349484964727660704692285521465055295546631924725636946070786547744554024504058294776677554346365130954845306372420564310548833742000724928539319953170235778730501838804238667011480238796918715710999921658378839514166349824048284917226086671160410332932724490691760776173555359757963075496605383981076294878613404273619379551357596610131192616553883295467835519066217206195617228903297504694645193564651601061823555158505727234366785547914284088205991018012470752698346416098740463497907432142338179898228636492638673114525631475527775954070601637067328579911737463528176044336216418548060919530894315310890220242706538427805827730181623479434588194564332136549540516048588415862714989585328956153379018395043077994019401956481513257387792726921479990880414301735904292910205804471773440551402916455946763029936739287528900867010909471516704190466872361825971534537349125149600128215861356669602206733453672014774378500470291938259456038311916420476400799650295959692580321053101372533963054228717820506339461663482337402687271663796083519524141841781845498792644485465583522107276110381476990097517858453607009542951113187751219624011195934729078241630176324025426253028307749357071092663332730057604817659194627097574157709573291321034661093789469390872046880011338884703113986689767993615705179290887056138169490976857777947132097155066348611087687019232940477890000488919266154260922878197055315060374522238036555409249652691665558036344921496027508624007415170617893413671419604158222787844226752617679049579866258289912133429406953822459450082387587238969770744365833147893352683807779820348238215882665870593766939383298738151419989036993583566525249920493619954983804478225229245798037633374584425682233310597662422374772540732534246426723306118497008428556423190252322130325432453913047612463621138283008705347701448594207239659584581363974004732200675238613567223729459036321498866159976138246140591104980497426769081168771684291196943926596324862342935460133201538071145585004909366103799371764929709339593844907423236761941870463657368776835902285627156396965234493506587509864483272330976817041837899466340064445159520012404931036260263017402465599466600000606820885544402145946337353098261029752253122632556684458311159306811523442562616161303419968573268557929949670447375485253599328447288981055980650291625559040433799393506107210247602808058275228417987055553025401555414867064179841264111175321387787743183754201409914455383210608358279672485214364734922272510168321288414870315918590090050985015744665621885694217157944844038859267125780379130228595429739651385379214475798653590470868321164732071916868125399357513384133221596346667963907427091636869029729191409823031681280582643912177166873262558865991569009212209961029449802769181412591198036289363406275909829948172745781316554598227289540515863672700938717428541946160365561060531623975413295971893738174411867956306366617179830886839475236526831105381392726289339883206526871765620842875518860899627273883937287542906277849760384144144060772122971648720956731970640200128984416276574812391531155277107919848636083830281760405132075117629304338118358223143476380205698545382180993004824557087260036845984720383058323073567339623964006552509595800019001162687355021703569171457033531347636449307949801567596981462390144177658375666808394802452081625375315822242697873235170652416196939135120152262666331787907646706364784360589802972089769825354434699774426900798620797683490703766942173647835859597248778589548336062590691495853385320525388634071786453131829049193369973165436476761589534546488961058635595760642978065416798867407612441987423670295837646571103905558872123177549761981506075614781228673170709528353250159265674528256561069979932742795829613624207658644081501833028148414457918214300198649959921951421030743661668767518949998530280488360758953198439649022771571916975754835946662234871485612731617922498699463813997950798718597250927680856337513208831631103918044228307413055929930733437598521457201721134129263327940331058485511313260529396552361606724677837449047566749388169103169807424759730276194415163937043067012309663826264571587680260846671611926516116312195655719746583691284423816504876023434799463340672677141150786918897046691245485638427225991399492474701343229554576255455375837349602997963615543628949485924946430537150376168681346069205788819939608066052039708525661645169600884123162138322193836658928784235442789877212262413052180580922926369173073783990553655219228951909452971504407216577203091421185333693583507211104063617820299137304430693477096230654776112928694628392218522352076326698695590297621099201263532339993381635847130077454149045875825017873054256236158342966044657821439899660350156951233414258834343661192983280024313211508438917194204613713365053870466825936521534075546375084286676605165384183997310080029138010271934935314473874752590086576257983406200013858920729386699652723302092383371129199364121598345350493835363142011595631971413678823736932459242290262020645707513310790397996433941504039096136353726595281811758668353235266387216416813961230121485557873394726961936376830620824440837993108761368468819014932165096335877164660033270902818383626822156504614198577713073802479172052966460275509753672124843699000637274965730436420834856988321843143245042423501957307817283734127073714353833635821621139585026135939571306399515045770114057619502950913585448104563827167669617424507743526331948875770781994253791527698630656674367358422394376367605820302630408290558839516549056124381287693201213038845834984549939930848911961737759762081608269077091989647629394509626036574299171121943593649617196864733429157750776095644111157686487566816673526932271460273317023168252322273845086771518803456643004916771140581724770672437456133852451812279333761896114092778462005297647635087455713182138489519586439292721293140958562149793271271956650001660512296617563957453706672925248165497016256168858759980207266432128541509588067117757637509596391316341529486183322975212440981499057005039918011945852836579629903806052551670800014183370560694771829768075299325976183386106740283108955089408785703059358692875414830598009968210403872601154479882715104919891888307950412924298148949481090178138449763419756102491423485608223148263700626658067035627798334543688297966320325386140660792400869235282656079084693227253375905884059114254733972575693498321388909524537046068775700289290493394365687544976853318718031621183461871204942392099567086372074665782818397968054981057330001302493899329141503726662446830026644411684173714881333835427427859757490988933809089797649475486636177125220404600315764678894106238076250571580297505735638585849251350798610254033790942681144839480250670491739338260733845724569494800022662501609356804504698724867629090952541296082838786762422233415928039486371039958780209945987666619354092561282126202227420869890704362704050254007159902403489824746712562888365911548974942767868929543671196211043571618040106051681117166721878280853597768720856156621005208853900228235524444787787515365394096050982600445510132686534299900052319698689042384823424272494303781041918908217433116211167972149593674158205296927380853711638655525884145704264869437296885446839781951360648976958434497335625014666700554683577965258422423168795334468420922973080112463221951654209398579439112701747818922120430452775660290590845878741177371306557675827372858089642019068150538222038944278986362058744421077159800704980008618085108371561882610036238220215571705617320987505918061884361125616295980931320371364495050048655174187277995631588712200043990566731646205860648596501274804248672192583529928313929832893976625411699170278647697842592148667844351093073683173382866127465873999567011305797642056503263824089082248398679081807784829807471685725709048655322650807495717686928093412175929166831148606421855211767693597905510600864032298852753967554991867522654238627972825136061577590937675158238503609471393885513293510835235444560821838758580738722522781662177468819765892986828747586201792021381341161511309376335063603684886908464339837228182068524922214771218393201468511547357247196219032786879702238045817307913515680532884311512181176163485244475487426104436901912666901778206870548428525176480480442917109749019325008293106478315259528172749695140756265700013658212091902848280843183497904077640958067815317409099458950909529242563373609997365899158107320769589266105138156541006778150638279790054384541070500064650069685855422316385045452108814867439164095227214505878610353423315385518710337558514946116356360239586265498445970962535143914168274096552559449681567097158138860307360521563886730571135897200165961819790260095995019066231519143439947313691059368166508388352122484202785613056162037602250920846389030622525386367259307866801108790341933749717255016376487196050515914802304808551656779233481917946022347735592214731915093667972407455350013234434467986733264594860346255822444838374937216749501099448620004485144818601457930276568088600554627902849765037422129143423242261731535755706958421616793293387491365005242855449315604902170662986631540346417653089032368280968239012842139348415910960953207559040800736477911201951505335524801906888786682904758233129666973333916672665807207819566500534280399589201546396428703497288614490182881563253606095735381481844515337895002698373321413823473729938711289840967276567632133013443454602947889208556708595521629716337638609461489546070661482196961231310984625623598873316785032226557859081669117718362532803540859006412706553414053717020915922545005829738992273413752022012503320283727722811126939701455871830751052609680585553287018281259269085155266479937299938217104189543990240960736165769806115196298769775530572809960099722751299168673294568758652460927298333190978998161184696959480820974694048193323042583797114933159222654091136405989959453851029359483788218240683899969150085635456588373607737728482023687442028513775859471965047423019926071526178675957586722030354778514550151911620330517515120452911007512843836357446715518964858929247735532509486254201298710099616631586571283641489233803511826778843357263045782762795891842120256149614586569746430090070742766831418528804851090276921286686549436720307502785221984977576135166228064640748943687316411125559064621701314948484689005183012090265326382813694246201843777501253522991707589659806766489747924111441107739123061317707587363227091363656843292921674009561977985758444781478121676168840313922041950105858148725698262088667251806211853661636863046112329213713151355408868872074043723503208939331720868662925991844783978135314987859914779272298125828435242531806489447895092895549586716914546079944944314137616889976816320221922033361399655769302030728871002552945604953593649145447068936338093370008423559616336552752637346016855978720357625334871519903682397276132208247773280801951362784560136027378873319006455759212786131451416863698592223717550050477114220784353230549455400198793173283225215458757831792192115522078260148997632772247452483184315175159240767253669716457843290654990953032617683216650975224406418485376530611106754426000142141484308667770247169815670337447427074236061793679531546724311809495564585393920970726034190953481735000890579780815038893422411816980981043198180038993557151072318751744328376736513646044755694114534443179052155150094649091629592051333111829932546881319424229804969553105449649773407617766695088492134183143446785430839788797603272711607825020910887682725899731226880791319184783138668594991104457200802753387733832978061457348239902362048911001620529992982864157116104567573083497855188374722684794771871550381294303850750287408181575635118203045817688123810824649411527299009652929641293059792202810264292592776581705209410629516432115946147454867556344673097734333380888176799761194963604819235123741861985682155675258938520841489920909084843286838320940796140293485460719497391205824222941115526869379649142243348376512361265376378648545703844569267044834384653405616713950773709486469644237786677160695022820117714000991285928501243245432681522604283965874960965689920393683086447719110422958857064952639358800544763827970220699761259347448589224007374570217823278551932228006984471347752096702861842393229016283668137790254644267800486522907660230807580244589236059156355809663658674720628172553413842241662070846898537375203131437351424171619776741543131339904636833272525277586623187930490924092905989642941955278080283840646339833870158054456259158850323677255128347779213016246364005641501966118853059640973416060809893647532259312524213503596593891244563630039146210241804555707159507142747543090876944775949343798968263245232420901828106553864826875326106386935322927919164618455073059551117225631474018006051718205027106238746812235411158007043142915190624742350239211894317715973676369048328678424837585491950921324372991631279011849119470460869851536822926694405955097175764829396370748895680763462353210895369915101418102986304653138529889732555630637935939836281171742861321380733062740125745140574532674232924326092112477697614673801604815081145133832830146973088129550603189161668272054733138618889118191087576853019926313648116035993555604596079574072774739629870715905417249529214213722663555700812972087808945123503829618608791752800218235183768409681289178159309406478511876306526098767473807637771287810787395974313480683614554927728149221259049231869309498032065115214449658071942698381153929787332249984921943205018756305574544640188532154050053676272267143601523083911251639225633478351086569138334235642438005549682914616751223263125722630524515222739250881803210683944536055054919692065292104853705885705298393822804615307283983689907722916084443655593738065690442930884056763005473426919785007399353245525055038295320121875708730976811621154610531115950175914288974824716025120310550962050350967940797279428687556775744487710788459934034913363489227400362621501341671443763946054058337751984721559190362538218655648243599793962509746119904264850394128403800483616587854976978973986080739252853278241760322206020969493214777474260314071455216822375986251600619047604196885551988058520890765607228155384382946338104117584008426934377375914144657557701386583411433671385210289964783995479612470075235534550610025626047171501874665397443771451490483435388098952668033852564547158772772620163379040346663780679395941567943408529471218149252067555459848561381381450011649090179871340528291288162411413385260768235506773705053534236225786334012679085473627124258716752733149840682870432223030249564186082286660846540288937850515525902426655312306971632766230264085097913387966483421323024201466621327414250039735113176476748613302194962865587827301338033159425482826214244053261567801219780799726031887067577857752771607062634467819930083391162970025409019161872622505325906770901922179353747467960704258844779445396526414497101780686876118422091418154005491349954335790849864765907494481795534405248347549779961482979552562296089051616666724544676805107973250174752310121859371438226940074555141847665922369148627143993687026442139164491051698020353953669895631540250441049353294798299126070485917643957545662340508398612439508218229118992935251026535308592190166050548198113570040289142534709275781670728861956498814355611627568399717289931553649020580454895118352120217527820414939992454397849916587133786727040915239826901868906560024695476643791134102481950130406871613099796818897530311845791278622594134971836862605996156518087065568551120616681794779868749537925165776337733702673733482361423227383430667643640308027845754984962115054336650494364136067554968854982615447023678973479033541991793254568055034758086082358455627015934145326372922553823545447644652157440984603236953130708378278272790442627240179818477477267468682094315550005406167503936440191044805164145976071683535408541136120703174029546809460246821051980303073176416483892924489902099338791959712944599030430911121536417051198834879632998570922384097456882458980914888835218446068894650950835549988136548711776862284079746654195051101324329171430547879857074107562907181787677640118976555909782383100540253087054632145698730884679634836145832721344226148913729624233225212790043693321972318074521182720490298602441686960773423794111203507502666728429517060527524477579804483892093171801811394592996240572518475972548157025595407423349498665430178434679389337522275387219805551575628683725981874971419084817097152422092962800466501638088026772755964382114987218160116764776406663857489998630573391514091210768499805728079853864920313615331665609313716951744404199545895405144376228771501751189054317869048917823038705125878220860105515029419879783287895365072293262378751134156697130577651790428345475812174638840311391586053105410555071833732485799851462192711947306186933070097244212549160754300522765311571237148909569933564025996119548521407493296989116394715430720483829505497326317177001160127571088371349504487587822531293184659863710328017627409575191791701801871836641259605483651998256119310040044431442891865126233085924321266146561268196897392543878485437712546889112380507060329619395892229119272308634892835753497241332760415814350368599919852270521952682472725689232707861925341709600366341865598984975462294028936281414350179078242018754052772946638148575262860042253467148131831559819944030639050419247262295412490153625845191066009809714693418584194177632540125269972672206925269548795229618542001480109940501252499869647217864067869822889083548684420841246834769557358983994009215192670635385406665994488419882037117358376858692027597751950969013904004293205472078862452188804387102810183964634869088103393551161641082418611558394832556308648943395520942760978156865227776874890955716702788896338297127105978813418566758036670578920610949621067617165417770137385166109853303199209429238821125196510314645046959761305159161392888754446996264251756549512131870228337291764772913068738342079904224983285097841253327019745954265975184715652637848156682339046999269259506444152747995369674442917927219773203076235150675361033432394900074109724857920986971130682289139544021997844968245683511995602206319516121887852143281622209520624604861361408342719375543219041265040159978962933369372652279770959959471042616100379889721036421532534239128209227564969214531248441214432049766841286317190342824895886913601935137998002167307942555684473600898207261933810757383573214675674400976832890001774449293548969180384909432442788083748615430682868899413326898337208912442954317982884389788353595683222228235916307375048094661530330826926926727730986910858423459226242564051585494745194437308086336985293733459123835201388034911567546500148350487056548129080594424239748751731706997014885813665805004867550135138633413405633868463824774551450184151407203878164523774671886663664252980467882292276937528014299668554422535733431629878823260579913472709431883712732252282929779733051563559321802845593683318309656650020280188473353368580807628542672880397813139316297225432865932162166748624632104706363354713850804557698119440050828496696926286637279956046242901001414236203833382521666297760776789342747441590633459304597741647011834863610778217913375504520383370037012603527410207281695406236318920361207085242918079173103180442456682774014031808131385690658426536573523800115031145650716025151623187494091369978084533941944044968416800837652036627414985287106578164229278542851483902501224068723148105616584687445865377069384477803579259172576382711794740403781511710829344706863629152668291460541957137115610717854616647359556505089657684890805195870066894978415984426365187361117729284119117977474498751054111646251306593978931723148963231291385548350098734360181400498781897838819003306619048672308557691244675739184673108636275530199855875390837109918562383133646991840085569622651137227884199614276138104817844839189270085482021484527335431601083754902077193012100520968866996637477504647121802197369364810836792693843861155478862746385552475957376180963262834509794577606759194321918113471301247752267774050661489531753603146757916275271679488575961678433147719648705534041451937028456035365945015089997621268995377738398597303453343040746132851728595116168233588349844834698418985566366740935194986974002380966103510520115390307372097484048202783626950415908615672066605674925584980319690714255911170765853643972958971645078622018139180787243841321358984424253858354821337352792417869745506208554532519287912575104922895440359161365120246760031564628690955920019004391716693097728669648383620328768634218203965711498180384232599048622781373506687255799811116872229546852701879398128277847197149175280858300925633743258252953088211299490913590885229238438882976959933930970031512386786292784484431472064218375580649594896949669703576026261591223088574993450989127502163441550185117035524474371707326139273525339112776005334155635654626093391911486892241662401006239474112064057019235602604510659902551595510216121949083112662240566568153623258812470496142131728158006085801866003669091823740057387788772044630837516630824008038610656305456458768312625235505480303907603546850375225516294020309496402760785654027331590651801841159386893241231550497927715605794721585425940315380335320065877482787884973441740416945081728884728033007970217265215199230873294697454359677144503585421592893745102677626246862882621161976299564011366171314227250185049684986064303934908607116982757837333344510241414136026921613364457143710560755404272123956393993292799960093734902533815510334298687690625881809559933435599668545065486447336459475953848273611255772646038405953626582342204509278415548207301400948117316015156424294994202442443486820747017456754561244729337701369153186057798322216360791957595470162465557961183299809654873805670073329290064336846790439990244536824506528760432277309109476222388650365179992662538871237116509938781998834726201666601605751686122773258673560307762534523221497382517618764292849750536253060723613502630493990149750814666086833512829426544825271487372031972723460600154282137469647040147999705781205574351841121717411758524933145476186102923799931079361786210807353927062828054349113897110771255970004475862525074461102378002940851226661761150186771291060712045672147986953154621900435588995570739382917486475224463869542716361671394445934720399077509204643452910308333734493632251001834057702924992649174583606985116418848228449971894855258673798429639137367429813034665615895628535172031375469636225469069318059713301524224108275313578946860253515278940703941790372005504061692709381750561567877467779306222282924674715161604745595023250439480009655164090974808781783244562765722641169192267885851798141150828273325716591907099340523564610347473411232846070712388205477129404372495367490480916504973670423599012647640017044689475783017088013664386828056851456661350590437381150078709858862121529539636175839874885885833818231996790710233829496364862125218650881953953079700965470318429044820388393589950253992534557818416692954620577171742288539308680631384014331827372640790002608266313304024992119673217109225273135716404760654504492002855810507977706152803068993380621047376234926336527641783382899961326716773544621350468663283435575862215966875600709805010042011209593480676995312063826655777326626482818540414511232267572367263088980626023161158995464693066540781231024408440603483909259794195102321223989297632516590580651406563013060629008204120791145601066332485526296429541488162371019968291914108153978406535081229212096226068112989220962128454985462178152743769726588373944856318381915978754703685225722979292149825610329407438288870913736763698855563196696916643910847415674411691757331921452153956871035538031184800642859984710989877094044806144172679837453252911429088515917374527979535332068123324910684039192937258663369476755053832415781330596277397266878232172173268285055404014744288576897751656013322681939167089244167331744667029867035580087126037206703797544243555535977155647900034598343433346197967620475847905131414368945807756880082398349306780353799327713833309201380922995904318147434098639067798945672396527313475038734959227834582374993514598712578953331341689547828786547199418828507559716957012663393580142456915191207759056774075755191014461353035505116547097690797641275302648054479578688443470592208143493463523928915968329658397890434434616160179690042868798380755698619627774881449003493428722079736023096490762897614919823813823555272938208133463411419630218462389238531278491233114353066353882379677293397731627247639889843707599650433284003038339342613423803613155007812411495938849810041479035979277724933715642343861560187609591756329205412854873115209169869624213083474292046360202484593201332293383867476850909015549624251473332916102716657423623095655624686646619881777742147095125106839509149542038879917142446592625760250270271522617079478132210007691949161411938652199254344927322371969735293060311997690125443713735004861582007192370194226204016141413055439583388746586922412465959880439635979480763558959953515994475428298523273394562396496908780646815433748248175898224228769166731464553924146376034437697596196281247990422075416674998713414512233023756369527488291742168162251578665089780771205818710553521210506343998318506280913823510702175842581317543270778752641994036457895787216504512190531388758070698225294338996398501937695545922928200958207406069549641004919202009775265727101883013892403226323416562293378148974912545161969341128730278124833755117926480966535883738248778454766192991082357856422037287315369554971719687868513174669192613549149889710562226967623327114812843435964834690810780700879640697939076112406795814835805069485781632600578947500805434343369637281949808768498304476349552765917687844673106663142418294190190773191557691021538922567870433318075660525154461271666193751697877700245029980967155907935052304048495837081113249996394548088174503642524514386753764568606539098259231174634308801835983445723566148487244240080618086617620854598031787980019380874764421617388467161112010059292683554790894615254817574907881570035534056281308986335621863975488451584207136473371381599682309885503635302225451102160870842565138665004484966321309672166219854882990461636621249873689621398605269954475459024291104514767435297875581333412835956184711159977811572565212425917417637094791113287752176034228845850200696248569524709968643782956001090600742995878506793824877660116940042410758270890861071857350289939938731299086370567403321990791543834317161151639296168206747633384899454989357142768297138770646081388387344257806909364502239616773287179457783127405218515266564239173714326163667801286506214060719989265367072161628905943427640227694326994390210260505207772043470921132473316770793458992610736621827722167573509470946404353723941601398470163351390003948660278402286921273942693303634714814613830691307010283143852737393398204929632357958725170300939698574721310362072773100578117614216236045107067438468773369585548276572765259457998233694722341933277254144299919272046589573071873297801100144092462173134596616180044626265296425026311965488858805802038471174936500433479878351286969460662844831678832923076463920787477705635554123960457661304460159329262290808204545628899855422251399979460246674438109624907386399457772390423315202603043918504690097294719226549488939158323943545075771893511550334606668789284118581274756330117587376198150730928292699848316976061642144949761472437422095223876699947457506519202168710445110823151742673793766785034161072076831004999846517091140760688021126379079935871481764788855142548528911993015553285014473244054016681879280477297506588919255040752182033265868522513454069597751600268780477805256958309516298706380763529663738417996517556468074027416255238519855780646931095159921249430192055004779094897532351318422120427155460286626354033681520300750925485931181822243386132879511452644785412986223057749397926848933372488945224441026284051103254637692362294440189549113224012476598010609541897150864525906250094581725364316155143159758971820272672242094550231478897863194353760508427762605662868655893749238057599991667712286944842606003981749737910339762861002337941905868288877294881176690025281053227183457360393696367786885833532510665951125513568112189669066403961275897657209001734000676798405401678852042930838127928768364761240873938460512343375751423865190668118614403797120408405617296324619491806768550598670763530122009982165762104300578811697670378357294973498381005118102810099473426156506734165446043623147635961855399474439683131068565196838122070285601923207001487900070887920592223055344929129172926326668182733651240975601263053682233215181996678763466467052372333833247492153162135341478589225546408268779726382081603549126683917509723287620091361044359517616008546055518173686071932842460369771005222910157944539047378819021576553004103974520609398190863079703485648888209695678326582099769184658656984114949308156298797624812010277681124095479945419790909439379270370088248929808452247945415382786733876588943653264926162561805945992094231570337877607753797960245663657951474746108839858735632327071822116935463871431672082482746144915341076108614930348500754113412475501553716682917311343577897073648049218933051160120522011359442282779450953356874647055974332415563525606499129484105280756117713907408534485123010862781364014396223964311806539038350413855022738683749505918373868708381886297322688669262613671719646969700311400093132542622350403569674058671970891644167614772751221304224254822704963824333410049771409960064273919218302444110317511594752734897471357877505124448589971865048294534183995545962832084670017278956087788053317501127865125466893749440949959792188034404756090678570063265221202075347970915360862180323819421972172979414066181162070365695800521810901901821984031756553400456110564081024987465998818864322628136946986998915625454754711939947498108850408510887801503447509493873947656879153828112032414080982913990888787275935758602599099380753136672854021209316896214129015164834986377803807040199717521897888275192402596175213535392054379177279394163014935648199020244425663958914996620800113335858595374639113225859808305195003911723329849028911918869033436631670235107344771361455091021994283850065423517850712516337299223825674800893627594941093046194543756709917009376133905923624644913938034750234571613014701815596660895276368864556895294264643915550445746776598098866520618449958202920496637287624794720525668909400475603783459250303599557471084499834220775555249532534064259563760347109971922754464082289052580431114688361771547763541173360930238556944622113873010369354889525691283316200518750609540225197566025956612133223233166118831053912762524781480392575942081248656302738951108705653912694012179414551855828254198163358064641818381024188190791094608942417016652315856320754738307820869732150899884724236551082969211589513524341987831969960925203014032176391948254766582215907789106133963835008228123057696597235719953039261449472504808798713765654627865819290479064823097750613448892525909557085504344009964248896533932454095408539784362590931492611602086342082264065744836422620276816527377339210016608491733474628644694468760318672809386134096304229638409814355256383311790511709768670771416021001125388503476766871324146571123536062533349329117578815447766133376586442473724640341285297597224927293890137315278958715353411300498520648399028214235037796588300559259768847761529643460365105574076786976721713168545044991861911023140530778686073572132256817549398788039758457182074508586535207042869597044050234514902500457052771616494914726764476809414879999420947903180714643616307773928665955422757070039225608443167653395357513108210870786964953030370079548467568681931827712148884669785795318058924939307574571265713121930875679017436444251403945123965059482659648883316023095556822863616667279221721421626996871820537686099608407799257917222567293738436021300184257069981926871027987068178902687592271478810602940253129343481967283364769148810766524724355717009313336695811670546409762174982988275507043278872408807882002302444912578855854662586851703418282777090936568380588253520358750237193564399838278582066841720598846680770210114303430536673366199482913639667234603936649133479212107904995738083648867992959133529916904042595366773721873829619046862707195315419490634454190498376227167925247860564643804906333543024525630736878072077050843347113691082241573030499491441788752811175012783989660573169529437753903611502710996316385704477240659920150455443930249742106002739456999281845354236611541929347539690042026069450522708865790023911515171936990629254708074720645519898756185896214447906944678376142621531373426639077337421894946453394895149922237405224508126307496499822239368988992967314095691440237102458007418840020138309336933529729337231776210929419031818013807721010706656055862998020853374962240026816470376616068016528815992696164461587414981268008594828038033694855056910332235300917900253120608385863666720810949370741571739014113456588083422748255837931045684938103116248283193219199799529745505543765146576801687990696735488071020083107350523147709642042684528878474775965929136632306221612320932305192994087587634533563326054266832650970233209240925714304245197309948902905981879392536854941155086502298958031591049325308059092194973273924455299676348786762293278178219608881235715222065789521841556264057605647346356502587436685145483272566032858893475433938474764738441173108823201148550079649163764014302085785343655660930162710155046513432401304770768483349364660936379509432316603529541959454588434291560961134710578777031347006538811633437487370615461178817717170061245420144501336872426347286385825326364833999805043118827186176829728497995563176108336840847177207458858381133126913297932549510194372677877458233242336341219837593870415729884775845633688670283578669936313971203454534039448425165982625280277697726894473571218428467505887559203491446576345635915333866669163185857430984448340227663640597561729619598438614047517399802853480338556377278194618585774286175785379447703261102709207343341847456022153484673480924443365965651937068365910552704568882111257923214104490638404107728138007436951692908961021995488815411795103452207001510633522395350887707839717348584368767300647179761394075421397799130681688137406354620019074867758159606425283480840762328800885127360779684736181257596387167459759359768193076513470290036636161511751814589180566007880163623992886314039951797323338759370283721900822368123319017901226765301514039608159097437060529390973887069328920563194309803097598172410935031277071545995463383229017983142934122819938629106853936818336450257355853908703094793196334942933822299143969119939848635905640778140324641611468490501861493064803818293381665437191342156600855492997680094030885363722203692362583329528500697170927591557576285762635060543783615321263617489020017935426031355910424979370723761789886534047928660007178138198258350753466204318110224795959060101394951835991412936907953679556206026428522670734737426755599346724031043989076852704040307589270331900004000095936355017362142459001369984555848752698444459121237572757632923506229504682309538820640434009014337291761629321540052267628907140637229923521412892178326321723616657973617947340022720655020947296640024483246311708226320764777988417241932906853157634354654792861948194081210497151086464296175315451016857619354386271638816275181519678993218279666769651293331463317126269142406983129424048926329328887060008995298823792432196851713059385041048112349078092088021974588814773496323363141719672155156601151266690783915598756566798519820817755287096167939774721800831788256779732812046126809947890543188802924299465234460052914326398211055329610919827876741794089424829644979681049745021134850638537578673133485092292670520640500552689522818742241776194909806394164259796463123760395952140073208014440789153350990834413588468682501063762192047908945323339068562318140735461638565509406767335264021945353024311689678671488861067106755406188329698160500865593463711666138518077987276401985732975410796417561517456328473041721924359733798448076127945430438059808256075877966968643238962387146996456875906169991583337651612163348773419091499984828979149607265896661271169462447652714154339299993124812888341508320105728955595679049907825669194398046673551888589339655188358228231648012042481033336831702755667264941572095302266278554590731016888436285948621469214063672147466032971813683365132014336178017396719699048650384885013016594535417298437248274181462997546470908594693252939460863781398462581164344615102369533030913063822447508354463547822669228222633533513213244925143701831306831461232239847898629395677547242640942801361687606055856539843848772065666653260422864720329385035521284268218504175663931431944086410455447887511686623324648323199799664288425140145936768857088349740117487373552192788926861939932288999174762512689322856242792779255429690811666466274463062266666221637785809749282750517729497932868189496540570575885689613108261720055942598679638605116547830039315311532748839806933766785972522786938780218471255983888648001751867521755635202371861877261704631835280770822055207639447972347025519242616317072103038941779383836941421962030941578140670535468008377444444427679923732073446096691520112722241761070003653748692227435472498145655119005040895435891337409863882930110577825846217031210574700079889906508695890458003814021730909150426884863375957818798688482568926037484946555613657680451348860254265796966711115096922650217572082613615910891850882953527475325208667364938547223564271985489275592145693752046088297662158834481282900693209613124560016878623853665481093871037606586261715356890478033506869499727791849106572974148424593365668120020134386990957164075807552148817733756656896743906815863265473350989897661910063814048265258989292972863912305505454880955392829348105540241661301390743166666655236213160142182730345056564103483578507929993405488696648562705855448898280336421743016119975981299151628634816475257158350554619438675459732180035901642265715681844733404388698504822416451021397743844971519008305150829703023634208755031946992561340535358625269194817694940866040281546129078944755766688587379879239603127487461121167741053095004095825130034896775664024186285388120239565924699012431241009794282983393306920983196289711352386370894898479178469021908333995993041191151030406421055316784294340464864497884234559969899473013580681731782632872345257256990395363315963773811788365472957189251959092187699211559562228619537442653979738801565545175058000595853491722299532587437329600228598672520412332715998974643926864919085364612105459441919303748673502710875134948877180789845224374674358804124410068736315546781286791136867658989651159099898014069814285654424955773591620160705369316450794713969547465551710247317253263714319280174172256878306596031840684851484077665546479214223745175783935040283212622519568809670198457467276209146273822300212492384684670463928015811268521497566762734290665730083093131495962355089992467659343846464551321947204611462446164749984696685823454902127927642943870067067621486021342091492160090064119944393065020862216586307415669637131188878038922732440805546451963011092696737393793002513927705129587253881938619671956935129830367210463930509271049355931134990442824443001356229969388882221797930839336710345472243855072448607555276770215288631250565451223375634054133480099985728993731560522714976816556832152344523157789375440171268205053726784221656813341825760747455159962828331208309837486113862641104826333720774725037501670926925836115300368071966370469535517642354666455276597679518475767637645164686757189882439287838053017010208139924026503818006417978744308545603152636629642318753790179905524991532154913563136571300679851328317845680379338264499485541912389305276352549440111949092846709935892788777516229455139716688497721378964681682570733477322855934717653641751162405412043979914972751706274456499315349790682801032069275428486740740615469793146361657669165191119077190086348093433850630639797279882026625829714080553725657614299774521709453020772626440865131413664883417290499189129498797643997995231024685339256131247257331936785529520247487328815865409587018660026776944301602949915818208493725242528269286268572581340994064070135759922626651106327471503596104796160861556624112793914748494886012952253652292057887055547589827973659808866524785872764902798292018624805063934802432034613075041111681704675805704185911141179498098889569334267515148119799987651306845554851805224967436695588178686034223669006184715649004261386990601867713569225153902454398731389295211446902520062268561502130462004758587577607719931576445000971658158364829395777788734254155063500764566700259418813075707740044557087159166685871030211281645531721303496939268336837490935864048363798137710626696384316587421246912326604047943166231795760507086358770355269468674391230359248158917717447618577303776231966936637073839287553727334152497743425023818032788080197609051806055369611975180948494550301299774785855721744614145743520418027073563284403640507604905221891966320568418778721241659819316978363029304741875747311862398479147885739630872572741818712862247544759262451241098508235454645824534144222146968993047213020312193815054320751618161283139314260666292447839414481141693459423682634016489922240428505523254465984334261261321899151228826871485282802034323923831554992943260157706148075887569226803047115376063830947618737926851487080183740636528392919435405508701200696016346655784239216530103699559460509660717415392027470716611246044256973496414447720094403706131784988377425325506345401348414997510396220924167140043247274158478605848585781329966948671124406349239584555779407857074392615196408824732754043241881533375371858929379632998690079456034902776557722677972381573940136118498722234704106501713801869108011595814120589260456011302112903939274689730195480720282249529771638996070734613505866827845921742444753961432767303698278247455525841067292109307719614140728899790240896125732985252044420199047332054766063024990304094883137241965989406471296341936582591520155780507855195528308298383301680007033098899833186699204760087995093051679822775996732175808635725316048851972117466664851863750698767432916194086624451920319795445163445777010705337143974182122186711925415570651451446113799322634722304092869718204447449203711719304278643702522773170231864028497043472781413822274029448002044438608968496726696086299455825515837285661071946003491621911481102573639950811055490811122060629285195544695336072096904226811848337810234517548049967168662276645894587382446116393135245165517946936177592729060462693301459154878396018068490143497542790214866685214877039641701455937286415049553470456938606541709413595226043352027292794943430399913001694019460275567123946270754500340681424350042398301055740634718899580398119361357681224363344070430830339081511333369198134147269048351981758079537782890919635397732163186850314763581018371258056271317391481921123507462043876439254436031683108315510616305681405279510472429241936548143045056236796737455521191517589392776093888811818762575354354771900916453530209497027169287277648691907927672896979637924278001429561807398826606412702663551012222222697712242190005692998933249727749770917265417758466143294742606403085416957660538417346300658105719522729392323625660079455470481675861775371271851062129862432997549412308485665712832455293390315064553112655553335331979563968699537422748703652482715002753720232907168380584091716470621573844199458318938049321634334557489875536739782998839295230076447527473241732973917341464843128369835993631136488021986090326450533717777435892902697184290354909694383538606844503091434238540091325192059320223750640521159879859209719729864426707424373677076852166885095979081397154271868060526040462173768103431486375569749074738631738145074601451475927549072997183405653406629937140336312766408640230914616709364941466023326958988374064330741792661659564470497162802886589486331809098883547711235797178976730381636341746912759750379942689001676501665052376764051454560271053612723938942530795530501405678751096473119189832961249819455619390853149055563360666652089611279017720745110197370507309054107597016219602427082033163476851263245551386042944478521594096771358920746315310683370160211081481320264453997871990279169618708359546671332278214507973914226378000430069073431817509372952083466314971479442249546628657923617788054507499713006353374525531194953472470875750836400192874535479432068668505418008772215724876348750911816999372794887745128337593017618889513838593439475271441424115225432451443102145134225464641042825221581990558062453501180738620218448111111273270345806470421024816022743924215858628161907071781061666661117398690272411225838821885341620569335317563721507650165549644621490751950417718135904015028002771874018995136040052794884191541880572287819548363979879960940222094090102672846979903665541193351904664810396005687219520167864423592160883377796981876782709107055863312854627385669257654936516450121904816165842057861563558548796327668009249378946089487650593415244141798607814498091247525915856465707373348311414593702466774494476607811364958722665716589027407194767861301382749869628834135680726711788161640726948002199737630903846621347515090365265884169638793531099795330118830740988577351861059249371755384868636642115495585661500840979710757928187728873765065220317371668868893495213409892080172502840040813071613735088374744082361120062832366683585706148551026223659185244280184677648951159982234840925709198846261244067329244621941773838091362526091809661670544011974053168012154893431028164145515439534588733190236651846457161649350461779110342807063519818622074778889350071529588216370223036234942165601678728107519169676526556989303175175627209404458430234559797541852167313939902270884004603816780095881895101055079935079457949697561506653396080216394971668478181843703808453706866826360649232266960139981880560235444439726018315217763767370613319221115123575465366996620761184260199770955762215832329885604873655367581641831439053571885007131120242758866969400365233330349763911088837245065357400382919428328506283943506614237729298078739077833347251645450399929817949827620857334539290812479721448326225955038747184252504354555662504260515916735952867137223677223298537966161856318612086742185459111628523912389955676929653691252630820904989720855566233600958001571115801519298546585198577809793970926131699094766467931808308405990594793214499218223150608100439751223281925820212191135211458793673190085679783262168179586025724961949601543632101073615107186194686478251170228783608637067377400781219530447763190073593687067604727116310813837234123665742199372978392473008355984487684373208537207294380851058927544417466114639798986366568297972148354634101219484520185221706657413334576613669902709657252479213892324328998238836304546891312289916517081097055935009792985815176841047159002064446546421643530283806892884011709755412078594454486174176333534153011930071858500815494474157490952514858801720435344200813116494381473596518118637939650887356246442052087136046156589681115865236129284884374039679788902556215408397198912453694747722960960492691522416467316692867235415836862730502998005252971413044858177353321770354790287055723266493469130772843060823217921129903689011166505376773284826747036021723445234092914409259980894988130331040631092673225428668552317395474455710085137380455180705317976653479462960482680680216418434869270994587195880594322778796470025803309367454928515553586009127767495925412265670423769084062802735965403104938221066769215728741726563739970539838139598572101505767670242245946189258743155876620528549941712130695193012060970220003883943456748697946692297766945784981357059925088625955197100771815337197190021543762707677042533322811944057954235971507925689293076564889560754538343628952599496762968457699647676489770181277892655776320596913217841254561820777762202137662579087376377534075373984322635483697759784421994584682800300892590865300191815740492920216456404488474585823110570178039327225109681870842284009881818536092880483840467253871502767872967000969304103679416759844497635436289562335516986993965946893289551406876254109424005692050283673009089288016776205008364279584169969508871363225035139845028980999944783927500860548424631614672561289857381732607431497743802233724432822761524953404341864405569939322797891227506178137479777210574365829833713731063100185501921083949059711922635244755939922642457149465069018048370830024886904628801403970897327862740745601131777043668480739465506531061242563356956778904733910831501873553203897098964488772921813218942061641666781977934755738184353100034866075001034359848974262682923280605227242671485874114284227818408216866831421888933179886130585782015491752804898108590551018941473920991679932517011823156031726160694780360463933794009206867132410909046249223634846886375461068110913385063757369877012117491886182368624227805117214158807380289201435252845128379667410711275539557495562587276220143810134268255214319358213178216582899184999482652414829070765392909867366296407140811874104078219682746023968912948357609912551057781825264835703893046822361661878287293546377989791182845093396825483172695331215308387398508151064877673355781149355021006102856908418372544266370769499750491426778656563296433032293545746562936724946352905039123290789223395495807764417143483807695838213887443900676742234639329817979737515640519037055291134520888754702933410138036964133759581057202912555109549226731797976197618533811111798201852362581301699904549960714551035633773144765504457130611215380431141362159926930584340705698398673884659913677640433349802384618957320362108081170041095561638811483970262033587563301280035087714986430891450925152012420612229893265101451089858508592678631816405513027511156098372283906712860166985641838867262723301920171675982443111681902888217406148083428700855192512919510852027075840176553745951048691178877701707011316534249356209830501709666583296672438517904667296061527342997436214828280846000062613998559550594458446597079627258203572426745381359732771976947593868924173327034111215990082977671663984195990666398260612948459200677869390274566703788637110140425553209802782523976800795737683731077434687083412532604703660549846879141280389984088162855464793005691269478092033166309686070811074832026373567562329617031426780498248221789734376166859899968690363030782392607135686644858461967176681860888023803184413751032179051444293408140112560116410952855836700792032560053241552354653537429745180536361812660609055427902971476156158251975318131556441363750198943819673137564969074578231491329863693746962904745130716437678769145513011630853350937206389875334032993785266769966097636609521721138243404121291110682091828463142367467697226841891561238164355675669168171690503212491174033051654651685711149619707425423247672073374831795202868463125036183799644076926941146820685470144283045171201248916147690079958535202813048862631808787350619386413969271597388956993339363858482048627380538466896837371130457859760426219622846366704439238865488596133653959635800599897086589356788381297244433125170200923920418010470784716950378036739931160760074864834059219641309532404806464280653399471988298870075220333105972740347349829927421263214689178676839252705080653651590389849425300394890274153290750406745364885583647314527260180634784446616575880661550199547648129494473443100684076541885142368698012224899896833931689594980900498809120703379975028941160811806489783825563691009217297567797787888500808956365349568732678606593346114347794380326943158344047981129464798586553280440856630308941945365180012390730035290094569818759861578694161441500401739034586659113420946808384816061188326736064869596297721381597030121311790473354218601691759001326308917088572488544782909812906102642541273232254872974048577178373140097845711678853281504669153698539746977276662393541596538732976956339807326451548661517624379168052314027620341927621148724555017601835149571712519480446146876330917141137472464840954633665336729078147333974595721184045377465618827352297015609912664670870488754792299893166223876808699115860083060678899962366457219743799489797993259733259633541289623318360413621489764146192401073419742163718130435870664465727467187029778028982367722086074497734964896229817848818926991236108845675227340097577229273781008401108037586247195159532916116554751648925626775738557379917330073680093342852068424854576078506186081275659447556765564063436157187954791921476910926878723565013467433269330886261691016586193356524504608548424484271126325667553570894577589868929954073273750814493909017884731144482271799832275800489826918673526548882016224590581124435600030941606517768317182510503198867071431492911533972533253948080832186306057519041075775744273808455422129993081407333420447729980664367661207599935660758293644409490765088221374690674786856342575565281210546326190212436586807710055650781668743588177226419327751255371712783642376730643758982938131701162060163418037678226446814113661589155407984356517861137783455653605061571463487945857960654977570880614095693630625754583454274034841273435887664296483010811182218978678930698753432191619354806422811521552707415666229632148239089774922680806567760982378752871535089937584239839623436885867111197324080976761854782080951908337631432737657842354831512200090631570321482335493060333115651478994724470344977982918307248770096810420998345300533625825451534250667296752174595152406580572690387418728012551376909730738494192473019894073189709167231086862710868923039082214470041251124166141841004941693611000760072703266026647791244246617361757112155379153502132159591705312900762493972758561072603664159155239868652955706588921583986013853508769151999292003359501541681273730442647596330128333746400907801603102852073135071189803642939367940028066871439650225330559680802339119348333686785711370166776414212923639746392776718314494557739215459142675778847738890878421717281167951344854395414052223504349357507772791306847115917719230749821211660127015306686013931812401522284021992282570280071657649933196653799503864124105589760770752644645168415125815739061894139048256126906972501369661214448375455255378611150979576700842469757432950418469679102568353848650507478311415420187281648337394871294838881065015436829661566440632033294266667686797938994131275698083056019138348882031789609066615825945547625348672871790541669683786087001237915159483708416976920591669231572688137286644178955161330955635678393998105158476264773840274568577921725625740034232934926749166794170777929142724531105166183494791496589662010387405484324554401017266080232613375213533795024041187519141717535135188200109323928539080124248996232718320460235731879796495851299287626683523607516417124821420931667664030879056669059302456584307341479186199316334092828011086073831120795762714983307364895386057838787561412198581275046378230393999326459922700955041037566941746465659762140944467987583279581889243186787499635283418060728454956909451768639162088599482956650529692107075619709486092198942830167519710802583240434294811726617681600265291980249903355725807061137065519782044041621863949233013144466192950443905146313172869408760627610779157488020547508511167923029525820364045012833154930607533060844190635766602885898484765017867147103425277807778695337990429309394618244093562831306994415362891404927458583969635900273239817390811457777841682363532708226667031656638970346184811695917929092687774939896248739260838923202359220465828538786864913927545209795540908112752524103670157078919333794297700278628328741950958297624603340574835567138732607715356052866569242279583627003040881082839245571264470255747604845605036702223194607201543305025175679313083280098940744518874148014306934167946201681648365879359062433637067738404450573460395091331405643010548725974876436769816912065818321372345414742252229146270102580382712210214559295331707129742445615853792720791526782260158943995419816721104405843152909448262429391204419293853396627745776247832884142466777708504336730840403723902234343732011434345885953043367796086285109479523180412177700834617435074001056390620995899814833965226000729637486526888516866607580706847582018484773676126003380440848330876286188899578290953516499106788023358478707394363604655999695589027111568188926568776986014181864527587700036141666635217034106602599627182874572517377942066854475952584993790965100689415191836771155325147686997502731515940371679151545993605228646384897950780795465627453345278715300899999797732120991184436472665472513488452765370832119038693730640803610112827613683744334166149138364511253247976288949164501715934358552052845518955065880021165219128270071344579936233200843576843353891380899282130321337968504127132065505591672500161474642065726817991899052274270054114887123186590063468253231946700800175810364034781652266089494911734740202277952051364659210886742042033842254953174341627081007386342435519399414196213155557647843182752611117599223813235744375640393846721089428784998389277166310110707848008469993819175298824509340113968939116341448755356469883974289713974599054846547659015779275553634138471088698683368494390224830842006093854039956913999483575001913265700688838041057958510562527773180048113060212071584327702661124636091713624627125867966033673577362301264672822703011065464681880950636500216170218287867594549233040112704836214623758606876069131028664632025931831200551449717445730455470722574295257811828170935478226230377041415935978130379843768024981978036368813107267170986340710903245822572425085989149603822024134890085902696828400332553113309170133238114012381635123134377328517311910978331138707296215017233490497906635660373283678980024761892401423896869595659297179094926472248142290827072243419683513701436802526256689895718912521817176278219873741428352366257862308845073561029435032775696554236281371496025832708894420197502388112014467114675434066590857593080168824012590076018874927607842436143007876847083189780631575554474519693016434418844460095968382841739626746994933769334865385672293752387563063871109272326469827957294492149696553356748057713230791061185960193081112695450227285323276100075171537136547764959397351631274152948150322847341670417285545992501206131858361617180544599574781254088113306248687129929237627623391552239747983168002621654425539917694260652551883843263504069208446311786087294815670665980190688054871819624036165081191182344778296391025303428669048786465305224897201788832951006851112984890176378923100374702583686743969365157952504960875959770791198588602528573662100607466056756759516011126851708352697525672825771247096475432632598874719499997522140865963135146156692169692566097816301558624199429226500968946672246633012389971413703928264822760714457747753583773450899922439050023007665104518454585645178089588736504694212043518436670990089263128780563062236472536168723337896473381119090078300001209865104396300008530663741287259419163131695630200292079382480093095053352265668789502218489860885101252368650127750995841082206693124972024220879248549953478922833920300466182486094004512417596464408207905936837187523132547834492884315385280206811427572860567763299461098693129601928719032979869714901217478046465447780105512846198706214756436824940722276669207726335315757449499876481351481103715799497541231737923674498802047354956839100708057287910997016245590831561405984975289669591059581207809340047266262353129960386619956453788394142231815936469886715165450161109340016930135909761020158046341386112440162135796605691536402038482653278440292405829141177018326063489254787190639640523331461505287095745010067805234842628455427767648159077028259349066474429899651329890858507555313862524686002412935063357572432749635354798750091881483383377116395320596112694976226384877859095160399830882635791279291609598409718288494696945053862913876072960281417484190478057699721977359902035064037190435254086318787420257213635926127437422593115654859787021405572748168971177048983258616742496400146057525321570224703462293459015737251377674289643845398721461227176405311431721222553680623213466140366168619763067891679258631325421861811094155314869975935161888106938971310173092394345138105139496986916848812466593782114276026268669807837951416748550095416175296022917427688478132762256939248378765701293559700160935546113549042277532143731101498289779190088824203149614081086499419936790670933297912748235164714899852558731281672016788702999467320016288654146436027107120853987702906527534343448399198681151782336133787299830254227087260020788722900401332856767289922116227562695501223001731427627265805241711952842346934204083994958671669269345176491569003169776648304902100948320901641895605622111075924318757415349958276013568536259966206085404273158951693921092065684622872190849933509154458106871627510955546743884592035724560669262335444324098403786959078007876263551972681638631322722125728258670657017662520101389397498734358603332640106814534226608232337224090121202304061204698198104896590037436317300373221982043722794579753645286248265651070152836183437675988474753286788624144794775455739825169887778944640286281107101412131697392447857578245246835603925350223498473524380675623190030511024450190540240733293612218391298726044338818752766291336120397870748087230868379993310084218304182519725493344474996903313357948136916330751632230558210885090043131832070571335193456587328590629585238872878689260780322740273543785898694038192844043268815789182120501298042707957905563436935516191824684893497004605141912477646272816810140627354237309303887734704587561897518604014752659322260979701378831009604411497081257371029994904463957316502289548106413673997013964353166258373046702430463904394130976959918471784993453886388284621838228368924254374063632544828977618962462946078072868210717679350544780225970442908306723896552914168744017899795437034841978884748322584349181248739507851663588910495304191380803210982825473825041364066519173906305223176864181093288244652464636762502688409232685503558089163950949131386858470669620852986201504195182324704630672818587921598198480772189633581334680731531766921327273777412687585439916685141091346515824642104475898497498960354486377205712393274999180587169844980264945630516731758497923870808512600008690665531717933621814420243526850706727367452390599059909214882811036718418900401349616556680154365726033810789279329992065205359892903828075085539166287034425282978079300205212685305578139771314684138036461267488037388203076829952088291267904198226488157370978582127322761518340928699086840619947666791138928619161234192109274067103230440001379775181589790207295271560581702419838349923888447126521863052095439989104189303589596013682489084778114150842952444127806040563208743772820344722938585258877554673664547733600767874490999721992313279891128797940827290778352580416989124911707630228778508447359085366282569290986874410273930175345244500923945894320306559421039290261991449535965621986517788846019754116994288546330742620349909796571637002511488743331772462597181451007522256722789674079928632205096045012876071563339850380796481104620161664228455270369121983419006940686702575119478531066535475487709175659910962660243110493330819946472465565447662777475484251079510854598826253265588594338924199869287168882909456398583119719584622215629678389529943423086526343578315651771565212256664825669443811889865107602217674734840582796104310550563587866517121960844808374072269229063622221665491571984793860811519059408458536187516845595979355401237938813634294296650009143162334924512499545425250946829422277386987354934668972567467397902721751899182624715844067997303397956817517280700610374413771758862008667968502002864468733745702285257639000003774655297393903143435711398702523274501594480125798827113225547283725529596983551753531030017890431718911572713498544905154901434245726914086876438781616596632517712532510239091288248447048783037433895672139797022060989318846407251773675597557134856519873055863699816008567146655940822223589037780930402366917833774848593433914417079905793000021749156583787626995376536012665929001462536187507705929729672457139268564543156234729190982662178262521639356477951333285459118037324248897441666777155007697717944632476901867393224531164724893058172798427997427422152183078318562043598997083630209712428690028552827860324478900364544525528911864728632414823874382557879778820359230509183060966034716414734542472793460926758570874549436953744743676072023838869530901030851222941909331579852832284852480279471067473766215964834047914032696349439450043784462957825305459157023503765538030826517400168673141754349069076331602632532276767916929708097430891728740398852772012470727534697510685760039785643316476470681548061331129591439890335438496121637652828494614992099573334968026047576345810730623408496700591069209307581004244337877782087325129469620660232495066952901668693902681639068254293741929780256076447101682337198104981017396487159164621717971748243418971035900824016912599914492060300987229349362494817213712848475650401249261728487536665648291315115174010034888564196308097392674972309230395647075620648050416660880153997461452540126414769994763567557978380413828846743154463181252486791020859345173365908729272978321889654266132148569792911089177180294019857105221269853371369399446339884322694884871302205600974271603874626105786028062774677524503584934588812376612521326948086085557267113418415771380327152343655029379116450700116899062557679634291445611409846236532460337815683127758008571359709162356010569404294330749594245839009609353937794403765466577307020652828696129444876661312349154129767878319465784665371301697312184688324791008075147601342401565298082765192537217227040850597887892323122475946746451608920012190416234139166394828969777306548982295795761697879625045497226624575069231246421624108783592859324762117402326019382611714249278519825557635709912751478999438220717341327425534653653725966670153851688471338454909070474594094872058039848777433899302714576965608380491108369961864174003572944763496779794198772721723634289432887869686557470983965844552187351837963122592954506394678620637690630878850265306596165081049738639721410638759455270259728969694062899762441693308974198016598262466240882177513138086653967965354923382019424817085110726659316312187142089684685080579440020755715461103242508824533402067255991086119043492937497784815735644301329496607616413746481322123264508976786603039134472338005738739017532953388387691136647692725071631260818421225848165449691560312027263911745703601566797607044506610697572217132232359073567438946031950259245917263393691878207172468954731512688365237854327444337640337010033231728257787712752592280395728963834941123615986931468840979087365011181573889587852987364036828640907261392227871928128276054175287190009190085115300210237174657235221082225129256540890501902912431561529402831055938095557781714205317123846020750583389753146551536888117411300453562677311992011682927485611500180107055280766779286406986832836418368013246789940548853262397759023667080380127682148079485488389990518877639686156591105187849823921979980118836344662592343705278275853287587336953007213255637752348995974475577445399666324022327109217665324432723212370331387975491878152319106642951433883279823118380141380344239839038820503392705081216555476940698618611241898554169622210063296944666836768202443640738611908815716221200605690471998169711898542399072883396203290736730077805584275781580221990476471538586111895901204347531555970820644435356381612449077943189892297739948338298863186146488999804292349097593845187781788093856328265059705533967689417513779542309012477040508209566072992507641501186620033883711569472602146278720154533844757318061169669373142276913314949249287543907571902373904846820781024525332880158829834831881548218257690188701351575520450678147995793782892507625924985116260548236961135735914679028971147572880499408061339979960717693593754670198248239889780260331483178741213614146831270325574154032313318840004521319786897555590731808029677635630755531687287443502011545419404719390700522871600739364418982987989526676792849532668341558541480260090678667554714789756021713242973246372734601983599343773162548068410757817989603599427877360357636395838773982554434842812961095507741779287244595948653330493684219695847273789503562546201489595185308114528652967890734967925879055292079119414450172486443860615461215509986191314420155009753811916615663740797488502116772827492867350818305050566205902147883733792093721539585631933185296749118565664014079632451164787361610024372329087681331119135848702253193461189325411430203863950151736872314147063527315443006032166676752649728901113027645991872459449895687279962318477686984478477273359417329046934013359626111388294840940694867521799845753328612071024004598739425867981285881618981818799686008516874214064981870588234331929268543865280268401457284524541339398795655979358747753303592426049590896830484039269117824478127347603813283166565536911033211587292767428494785422047001567473092092582858720971744533471680412052767775983659900371840494176826748534365348138128379130303650513458154484073880534014276131608181963098896441058043837648046188389920935836567989994764508835121863056890707167540933276896408400084940345888391694458335060595200331677624282170952409161627498503314189598592967196179204416688572235266035320829988929078785030254523630859157390499571474967217155711011527719335452512404479788362859599856392687437160845733997194685570785303646800538211677050260038263657500905118845776087443821361352110000276992899944072294529829840868846376136230145430117409322418523948633792041538666748753974827721648053429256586594846582055121538626641940528659640423792019941474535434706769412774749864774421109088367289122721396264128736373888402560670520637926375139946369544729668158812677555076618645738248457054651088660421821818043197223642345182510643104870398114419681541044214996221323872369757751773196536000328812776032649647116984148867892492482664963500551370491239928295062328482371647380780481920315570733834510807072482630932194759197713025639848852246881411695646589494539813457695610422218906422499156759147556573379814537503383153245418372975247957424106241992465342882588149245800313806614765351213284166994447958433103523297576026395861003653677261399187290056006542317991222066307550138278334821864375733603888596548162675689539797297280053205336415564164770645324016744228995817480265110920045040634275533217726558505808756553061841929583459174968862931161284987962798084614033480644482373088752469267294051407109881604955839631500680677723719263727371671370232838855882430613744774753740975680094140871956635858206608527244377836722493729905465370121914191845919831723341398647121043921322415213716477709786053800018346804572974812883505657855707967905702749844358713974811432599354181831876241977573849490266583166187031510629287609068831590767072749821196414098590630785972354721955533822098090161057948219594922157453870221477906115457511804100639339467277644706073672985542426127208607502655563800278361651570486763781752093529016319500490310060974703544796728807304368172132092007305323925126941589373123884241542589591585383413591650156528668183513763293959362115488928841042385487525956172657300618719530236704507654105623614143044562851744691417304111733327223245721066362197116497687787471264770807975529046867014489248114267119579098885645088556754566741077189371181520626731270684823654067213171583761620749028876516376490192169885490554748619558678461690633136301898232581475859093518318861387028029761442208434567615492790575985731009505572711668538861166501118497209139272444544242969807486124235688503773784816702442029153629145520028230499334560772485407455599943338408748897868653635006962465686893349251398738823253487138727880975800701334173514691314805485008715955970883169588246940959722613342991901685582948107853557755510485708234286064464875959167858146755212840343478693396464415810468081895428016991714285461716469548862992057929405789017838438593016585288998596078951430580119559846007840431479650998642680980692879387578810174482235902424080266849847935077750434459305345775250614948284464706096262251048899203870840229192783304658982107724596838759593735325688318113519754318778975759403413505711779350980401334683724258322456508780055476870939336127345328912133490274759417394594735850677700613872151835015485233350620937974101458230980804355096058432061893026062252531505068995361893616601320795297404906854439328400012539660541576135264322451792950022939009387487642525962994325232996620845940550853825960174408428509601519293588104734199211307864972823067277619027335922141365974403781175904396369475642507532813157238609180455262356365136094746820217314982603182776178270319635909343267851495864956127000134917223933615161626807337923576070625441083060077403717160671143170681076694341267145431683077181510047973688950666772385162128586361363723003643523049443604308471560022985933891978141211199052286525174919302734243431933169680811610142723505139456664058914513486253293833946214470320742196818299449625468042318215384497017769938781179899474940495690423345713604770260556503483515684896688357095765855918125444342197379053123142573575069302801969585567324225359309258852372905060241931806685526558502931650688705597629471334055980314741897781389566508858506866285158564104504015315817327592051770139936241481364942405449033023058656245366423359049879997931914469202682131809822194978580528566231339791496949892338973602415778198642468073803881155406338493263403966690541840307771818837619901693176665408933139986771548909350386856867585721186332055947486936655954166419124318719678745279036064396248076502340316896875429251511717013535733373160351494368326142639543662896746502597212620198561445623958210388791441231782088694648177476195396238245767510462837821308982882980957259164950672143780033073350645753100122413985191793707383751979066502750113956703787652129541700184415662718140746775559855350746583156355026290490435723270480274240575704271943191934571399680630792686542810852128765023866395975548277277209035246613312253057267587717054287158213089627145980929247002137602986394773487576072470633777096440550735252749721162043140005280577279624957399358224133179967418394224819693429571473142097774207499540297969837004153127475162757908031362125205704211256641041166162680621506086986392487115010186173710416518327260150620747528542691855891735522374116897876990621893965455414347875966882953432278814543322312657166316972314478214754277722306922377485034526844366569211919380671142582763706717940828343657634581628092715111210816489177376345556722893933931670039366344156874699645939120901855668833383230152196789936766366444621731772837906601570231119153838937004931947181140936170466521832515004524392735766623585655501467862518340048504796236412965354782267280548564156067487093109645056209789389996962735323058488031470600768869107926561700837515218780449084550310598751528661207189361068518317517027392550039172505636084219685446707406938688728181029802922262960835081858930568180196315392829368136483405255727430228518763202310998599512288810678356555125549767649698292944678603508187285722113284994498041930723887957315961122495086400307798479839259010534336487287202355107817169358505950177703739537833858850218331928911917889280200514910573293521090597040850609631306408202613568123458177046905253139177412252797360215014655938800413451894820308140251100764937561453389816083918030082062021422798728488492250458852960306602904418758232173763002265110196282713254045200134184499138271924371570596870254055600884158510518843423347065322085721285968990256906175842691294000907386847930830259090328753054516018252873093624056791221216597424401531068966851369456074627071168191819450407968483544321763213084657160489681053643008830010340523427796548797024673441655040895868646983419272723537593366883035131476745315423572332951826151579548602364182768507011450530903533743774025368681458219023562786778410721285194197675009072868282806372837147453693720642195661313083846521522157656368494743502400055758493772465153371885571157098843904304929395941423740488995836937663689937098294993422525623318470753665443816083397674996914377730630011451594788148350477828944791406308926425831096549721060224134222916148722123023179580133502652009243571744945040900342880495870299647496430037889482677129750153496477228168646364916945173925231090543390754858602309130413527276435463678669858150306207714858014267710248800925474118843614516013231559240681452798399156527133088075357407491394603266229937616682402431151096709768844570725376286697617235248408718367816406979735046736470182760378336138311596824218315156196321771140285587200086733924869840693186377012003174682683895605588235296077396239490607239281093339268301392032673630527523701774782262370321452857897368246187523624190365278247410438824591614938089104487860133872358398523578570817880202250521671243322509665696209786538648995333579939495111051523057269107761288480510353162510203710522645359700559604827553784678454663392083169589217302346246799270707835262888716838693655898691851493979214251330861703724277771980020451423114407408163700181413942417702104222497025474666921288724835639840108045580811445971622301788039942502797429915483648533772073639036600280208617732135109229495261172718777118880336692687006407255645746725148720266846027173778580339797346207553600473687515335595200470899784115594145291634693485094051855955310231934021381669495315087762916786613589018566507584267437299949932562417747583163535983011665777776484496483835546904671703032580627637810225149965446003449880373299034933309121477307431549499393563207388254459061037659086603781651309017572697576039725141840353247898960612600741184272808349209387437147299454903149103202650543874490158028450384371168640295365746760465099333205840555633635375822226587233676115125807658949270453102364232400025783278044360625625237012046200792520280003647472087212192778758051924300350912052441995044730390091802228196628440364831788564289753354474502788129387172264327909768189286317101683778353154277133556558100130740269379042531397375405590243517198292369872384245728647626520144048290841416049204988332912488966907474801454394199766950515109852386107598177462031999039095109195194475614111437655547339837328198712453862179295992502401696919686253395353873116263002551281070967037221093652239768040289296412153103473898433002152424895693457526144209629866936671793350602113733234979281244212463146871986128375883210288139649999258305534281219431748328968905090766899897982582456286981635734019002685142334465868954225872099456819052556416479461399380588346423651811872251455783624983926010655392624735038140347212273286365652085496806956213141306031451985629210556306821948359134341522995264035044775734090441816620314309614697405542956320494034280107428005418761838174629066983782210518653007327197049086666024928225298231116660138028393988647376156390596643042498983978155426288687559451932738550654217287161216533732754933837639908509998268628755666543171971585003507689498684800512246818495195680926876181645307243733040210069701645506878926525295386022249452912639536131627497403795040398011875882148000362760654710193565963101830937617511219274884333009838157589324196196242131417168682934443623820495394532031296805848868270314289643026262483082746735826155707652994415708791663606434567971803204982044946475505378393084617061787110509349504266105986587834790249885975076262721134469855962299587355514872294569522539333168729216312676952661501535584927090030652989378900900056566406445466291311988503397426794988561291871086671541376866312036943154682334764851470920226194191636250905948197968596867350629720881569513905345685593577822461209181672338269572692837719264083840395727790323406246030291112608782011141243300795364037243998269379211042866718852208994030985216858277886837072772181476006692299004931422740252721299047896570613399317969218377769813529107636789573025568348718282830266774462567714563404893354000957876377765570247132756592865958267383028444417226459219583437033515653070110271764797511258876011432210240863491852438879018746541504165928094780146868483532115897276497735747717286237899029684779922200277696825557795722641927491109374470786930379909676268533024896182884095685109779699327197743566267290336092669859211128360434322125527604359212074798235057608664209845266251113644195205014482246161760972470281985257407301397461865086266552557867499288044102696653555434759651623850948060306940719653840762513778832436432148342473720755905633891121846392939451248520028359111915200308765036294152158451438574988685957378509744606670775966096645134122482617224458587256961156252036820100859006715371561562616830551523254400540731891623495518925079667203840698836590798665886635534065242139699790437762832522943576990286474733199514884159144104560830565994075623402533797366330812085735811722233378774116962555208861933001061591324001277403074984473742366398820418639862909642256141785365754133349299494579288323485199505685422042701449675004653500383133523412893174182375484157547977373431923552243075225941975712674314760827453762778574858049830166025484650773528131435671771978263537171899229554419839178854433445848264581275343088070010833859051965305691023484359805457056858374940046289255648570760961535717908596106716618176913923491042229886476280921978585597965247516853382647505942887732038943544314056588539997600106263512979784957430328630414751853698571053727402233838559881426898299756659743713925202491094009731995333520130778593194373528561131006675549950959560100938299713660639760434010869658599717831913361558652627056436581294279461668319557948728074610315596369443697701715367061714393079646520261968817947421871564350691200071443028984670250757667162996391814820660269512547208470433316790133675199043221608344925411355389612476884892237696640327149940250552926981745124860888631317222328448655422079366255290176047994649431498532644232714702889985885265372020235778734295616697632718385551306591295428870952433248611085809027496009693539079504327603788719442935105739722864023666027602345117538868823850480454832947111596014594467602710088266418691608937189396007588634672059867200330033613881989286733937581766711192289866772574197457039362887079962241614347116638592590910481879627920251993211236382213923791101554339594067339845420388369536398497218530208629859010158964433609687553704699854665581228949497631476355093103337759365083469511807318315203914136419160860157450830210005811060913441735057771718538115929217467690202782574303695690155588600888268994750125992609083783101062318374502427884660659475401765489561920906119736622921634482491236028160951756567692134311137148305284423764750878862102049867845124237011206847949500265507687176846843011864961763187184139453393120882632564190377166448528399826402846349368562216446504228309224907692563732555565737244628985847491274846455347320500263494161790428234986509211009680844839255835200670854309132450372684141884741846152063672649303918683677263899155263945074929250930368831422274592114856377502688770343195356692470256793198134183416698726878369525798371610818538514690397230196778189355645386702483115456529111074407227801078731110842119092936943543543662375170166049741335309814627698468630195806936628673616637133849656641969109063652707135606123619575244273503937787235391426246817396859442045949632172406215920681656334438208294914828977918906058834982419540430042280954983268172920708272572116859902750423197990109644011073594173362284960859078835712646109046825671017658337112123895722601452217636654000354651644122355871955527163888986655694519898899434136609550130969596482605030655856345685211267767632415307944704808350699813170688659864303315983966467174386448750135746932018772285764000918938062925982221849661543315139636733295403060975086313303362678556102488868499386378295780764775924774729985160793506691631661136826849977810147963064426996476264064329470475227367041042176452362104465500649084048476675312771592730940120836781320139531285055073149241760324765859284563853818849255106948280176852323166271401771112166068022312575600908946198479884647297325008457219543144824076373173865049330744996133356647199792452291485347119445952002269896131855692314380244258862421677087493720855531127148330645416634915919614357233121537205227708614553860766850846797597413177080948426535476390235070098671507281030912409176092410090963321907614873063745775157981328252853096601695663895979203528517779286009697191856103456387270595118263236232957827208126774228698585538612611096440224177174294406205937583537722440443607232218649979582181609816512937801253391404234276822015591650212235325809530130976615042295313957300149865286126616884182596779886784726637445435937208581808264623796659246314984203046703038233893322975016486901079015631540087332596529191885407444870664758493054668835876340255712953674602126422484656900727464843447750700208979867430167517099943824709309496169682090004894019292030291273321180318588496067618941831644483908460320660830395973303929971889210674132203792863869346797462980684440542694711280587829706762636596089603945753068460668048555389942860790006826394940458348229864139299728982028530985584165199666495229159405353909221493236410870274512642416883771848437047050328503096889808435005530401212381062316143382364116250220175363493950465658155618722124873829500296366067194137378042506499589181355380016105086963509657221780770631416724463716705864290905657455046794607464533648094215233723392582385459981306109648196981860856803712293330881427433136734070240046161568675319281239812447314517187618115943091260797428270790015069146598056089400862634432292621208134186306312068984586153408612307231141320293838760253224217419093273115571349031054767105519269547900587330537722034894300879000083062404674139806133002471449602642110647369732434716340509780414304410195794914329894191597607545841717648414635559082071239240451783276900581515559307506130289090397430785507409869891652247318958530671229298559719763215968608968790886710648487184866451849828456064571262890973133487465141519754201790019833213415059056845807476100189656013209009335698885912302167216638215334841440457869633584624107412467104177829450578614124962756707183553863361928612652385701061570426636209384681569206745222074913953944578915194377119111083943224848824650402128815872186547010292325532276246396341929162603657939583418402431367665939517346969094376472807975978016152607414594934638739357036921651253148531314488138843128955881714242431624564193492701480515081468203891885484602838333307304496834288254141710924636224583606929804214949933754217178781749454139893369980480876011127134960021121253144083594066239937748527653561021218003616805270431196627998769467828131171768636515992015204073932114929304224609429028650541847217370185236620382481097368433008143914362570493668853685147860298148632193763642070972160454081933085842319244580225071488639961539970492218526529283496243003376412368304980421045873910836303509070503062802000593313076936228884610065558350189927148194821991847249357223751461808555935150361908807887450025451725750654214729649522145881095270919451418601315693091022803215503827310785278631479465384092410491520333791430165143096554024238331929851509028376511257110256145956352760410481031761432738828434662505058590495418560567876462477367507693221469139025268651169025810103531029861938568313329720900728059758544888718283010519117494086086890617516117129637306240206654174467186391671566277034155645913630713253987902686145899037023569320647990817483018466233755370153470026738779925438081836351582725492288392350073837021894823997446390454819983981757111183161541426203961605305040601690558966334237334286759758225277708528936712177991281718918962487963690908013044351817346755653360681725565277056055345080337367245628911087866370452488686219631786601455381522960480834800659206927389741344539646160747369650333928433767407770180161324617137874297157565270111521622423073504434250230589992053727215680807151934314633985568380121336805003654834884132427184879462777875926622430237691950680258767939232937186678841708749319155798304803382460926141474208007178934281994393029494170025632358351127936331256573220554430745668011508265505561191917955791203827073805620580609706827716748649395069584758341648983402640005114452308450356570613841101748654714774015182430129458754844104121359977192525287837119892868627482644799196451340894691761039827431170459607259366248998949869901743979088027377972687264208131929846918437626001280599812136002795620627649525406481711516150069494272890742331169418276175717110413084815887047517294676409735474496829787990104047277549869233091047664888122467899946646835457042487688250911486962372900077425452520063468420736149899850593349914341560609496589053619149666342976141900476715771657244631970221248403131100451785761960623573240531274952415139648142757197301980760958627632697862863162993775659765220290808409305206438928197002378068181721457619759915078142387552654798326110157062206602830718791860439284427447344811775504697367609258380808498279835802177568394003262333162887644640110788389589636703261618967854325176947996240833874097345210403238682919953259081891781361830066146798009250501771843058194269491276075886017209594242446267709297578295230611182619424782507941781319660043590147883959036460876635774652390643891595121595634519267059888746956670979806048930349576142960688247780951292505089087460082374656332200564112648234081751552929592600709282923498156307409509870573443902196538877046015133715329393174263234737244736137568901354198640314235692355814621360170052841596610768533042848213511196520040596881072498714084406553882791219827155447592425183758371510354431539015159572924403646791886484102025416388081841926693199260184432782534956678798477316679069387078048170419897240236687458570191169913150865774824312542203046684179443729242103515870577527161102135264426388506704482241624306308085747310782874316316610985291113318361827694644402846533542554699567847851590140195250428203984348533419675188303580800290010021945372948424981846502331433044928091601063080463487782275348114035881698413072111047272154197400191355790131187756254196098416950793848016352030170539379730112857374334235706267656096844228950252627108947024874501955774196449631177655485407220396978347177321215575821054398557405177857857493353935815782494634019003466440381632894146264214867600013975591030228971653209334766762456715660052763027349971191135145177148337624627588717959824476464857913926908257020049031982544183531365168369629844193661728999122700148604691196536765144334537613266537920737657784760992815959031953049010476710168070547771034145576895719122252238664872865246004883507259897784705216870826189341774308485154826500609043253189260557502167327937975365047514690213503191117447286284231916880097335414809739246760992715723928970757220364379323158486514246362627951821841585534579654339017488573731237058926801251813100840845264178375735110511831097121641979137253463902681653300625039217107139274181066080438296084554462938164151497216752503073259204398789113927000496322321263719718225022298268991023913464512317774642778190720325413189596624702353485616329748005456048052871070876108596798693321707955306953541299094605393927006121467415826781651063934027130461492038136898657688139459007795094463231692648549898784180229489072316678635322679862867594115800194193214582551559822345489805365251242768720717591545656632627494031076867176791772271416578258631339476935158138193245596365640836022850007763148052679719261728140482811212721167491605703495147871939502724340850169297876989866938671142301968908158118747438629055146644048743026582327314484724895167620442721907819525555489310010558655539888823310812974488480467106369334555744195496358469295304780407857406716331352364480225533181432433463367613245581054803535253922625173992794232412274616533786501505056190003457728605800051899454911873930520581981253323149453806351416419225341303975578108666311800492303951657444477631502371236183093680579121978466020171435181518209456014755139754148377490839121120191804817707970128473524981457913530149457263425007565556046223741461052056849461682639476653880135738738538415072448149760431564601357712764628397392169131307384877081290249755631528024534687915186604849621273822285419862877788481334779987618858997867927692336502982651863776511656588132110510185976787757590364370326174754524371568078283993501325882033781716659368898233682570901369325695642559878148408642149435492937095281919377676834752023480555853678797201531585440366218685755466156547997619590741043755879389863808841478173607543316144310821250363105982535552618373117735576885334507771928605790973935606980089900362192964867031786832732891692332568241565014526232861659353572703595843398882307485888727652883824334611876032083254083171499051377704397138544187554473867051631856449929662429482008086401851816043538152814092915995117383963271632829564051198555621027821540949193792419715031416261248235027274906618963657712661224585389695955077996607937205408188177755210967139313266694198816955259214194359721795290840067218460222429352729272984150872019049718487918179514987826180201123532679835399439935867384869394060928166717011249772995709862333698031668981884825780177779892173267008002034526825580164265958036706657904833139315127777458952824369932147780169468014474479851468389448153944684276430315792343978639492264120822205360947205184042346622937724503847894306092053758673714441516207198099583557761816401164704320737938688727877809983707675965638470016079962302273704584142665527940739615401673012488838836356964028554787800077040949614954694115040784277491120411167624837496266806410110423358175555512380478069107166095380055985502541543098314290286592999965144674766129417657133937347428704692852035770288077816220894324154634576135448600044625867778538396419144092217088889269661811267884941235754399640930114550259884572327866260285322605117610820071300587561323058009665211235185774962979493441172814088064779575398552764878266485196723402602980911701607442362115908142329875346405268337352826587639942479948814872358721247959012327771360350262709145807334494797828399676420786047295849655038236321919476182371429191262864800804152576760808995597230006068896777836704903763564258279368144814019081616350112726968270138515323045787519464406520153924989418988569846222542013173525205148340166415504273175597051231675288491279624209064110783974462481404028285496469434882792480157626298680419522219639444030631542363025875565448776951238359374298097164488623220416291210025820679812319840631151767280990446277113054657428535131435450566598385584089931259312037905137601230461217187735512457451068246911539228088211096288454525944566774417611690359586694344178047340879820085418279781817876134137635467325269520379178688683740344991361094593435218205580978482509038456291494618582600897977544856295041399917035480275125245059835127942498132837136322883507841611540222234642186108681962966782695229193736481287894896599369888934843157407858044184551005395708392794299106583361917720981162448843386937612498390003734927789189115668297740294353133688069029593605889401682238162802573856770873378009982769949438953078648926651054661782384264699789643253185712056343175743506513637794518053521688054547542363563419035891811824278335590737979272445400155855982858251161106285420126913224910936838775211105333214919076926880571643630676877716959434881079372196913098317653798208568095792850912798418853180807975323437005361522258069725821729280256965634646430580635453253653488852474801431966761876110419555299774342092807053810768150479495799481830604885661410778098567240016650564169934088369704576917213198936106875465234446982973631068814596615642629030958868701932866136514312654599572215759248941273490502285914116780648859488883857430438086909327593981151905769060462430968864659246067051006959057599499562704784864844891604152794295421998085041544665172224370614515638105997934597512954943764121339121556829382531982482799246193839914649594316386286883949816992856618805376496888138469476442210173807808237538912891942255681802654047796418545209752541758519540335759347326664357290255496673869812403815712246701643800945633915041922771723086899423383581123538334211238690142628075559968063148617248635650483771800877270047394608277499515257188244728594586279302953182016213927702739965566589538274753312586165940794363842439415812638474064666677741263397219215309478420442669886911299868760354469240308766367994264663844483386268585397951806369129138798648221117435049511759201213705895795522487063231252777654914792571169826522078713814875946303435161138687223150224266446550234527840833212285034720187763368804997545369728245756097731251998518590801339187514367325222590838222054905592070456492291568465989109157478111043708604217030850674983338559253821604226107385623458534279592654378812429738809104612813027913525559572547340823613254563736221519020702918573927921683745868649415192541408301787372170559681533101752735190558532487883240433997210835679317374311260572447261296540409826344450628070233578317826660192185870517120046928285230867540799908464395299011960865055783252619762895822999444366043185039800842140306741689583099227684572821192977657408171356094829195705387776650872995112648191699322683490092424982541913162387201645834210404881424477112407091880687669259876519835223829480121724898437669616327622750876627866164440946964856732960606574396796555361446721398724137242190488781222220541331011281680081875623122336682712318468044369112309784339717377398366431361749374521891076470845992622734874960376032364080122581635344057102218387026989197928259707744440341611128160382688374480135987395128264442879399646838108364350781617343597910968835289566626023468480563174004021199572573475523930533044088965730380736623179263138253143869937097892858065964108935274841430901612398540803847030957189616802811384319862903934803142407962877204117176561926998733729926940076450992232232823861639010783147567002410288608047071417798384795771629053644387608699971549539560514864677582202990637247372125294180092897020755501408634076094257324579145399383772838637865886948169291412744337397363815417469429003915177907092889433275360824365139352424450288553914252569718534313658372395795921110721756770381545834923531464443224567980030788425995226843948138521536516009214779113286882338451648369081784885768389395769526255818553274157015639767910293336253268154502469418187681106370140828721178219304190126861967163722057425383739712934140356403911562397865355722410269153570297008943000717684849758957697575889962979706811648478886628167085636566201552857123926487281177460519619796674054558704722127712138221457968491552071535631858129580529991341954981710801802676748624118532536817792823450863637811889681766498809519263162843531279174251928359117423579871022993199695465266352502824527571051348678050763662447529743602571890203249248327652265926115779575126828684048195132433880547661979876915758051835892428054084328762083412122364700543386955766259899028994016700171602411162799251340376649427675288849454975673554812035741229077085392342771867853739031220442183974281801139398812576973332614522717887489705652255022757664292809857159086054959653447315449109690140767965131801331248685365064407569988729828482824579254311125247038928134563917523380449913265707035145114752726860997570505972882159410749130838410378074756839366397776567965484211240795919862227518703671443991864353924918169882228472082576986399061031488841916965692952324050962792597173409877197692548400086572497307951851450646669045368418683518090170534430446005396302047078330048697386864228349323733660064919316904194038722779532631936737727350272113309134012618749692517773828797241855620218439412992038331345488870837159512191252725472098875887670745248422248049001008867380992016414301502376215748641228422516832705913711301595865036546055770802391992357923158301624561579017444193173405342800553708033255336366769986289716780874690658992817881265079866220720747927247738068940467870750910613290858725137016897329317030322392770140935088097245618115956196294648154529891311700523862143819087011540364285737524275331723550299846335158658321425989886129634243342563502376097641589195010939264826706718216032875281214447168610146200235366395624575817367274730281902184579719285916599398374281740238840356695247779632900083722510600862519784273401990315818335192625965254094535442077496556059582155684240785624447343639957352339255164266018333784538324758636102776685147343153531637401710487442929669908114718020090566629036444484157608659751835087730989666106077470943778778681619722859614313546452326604950732172896211557136981687459683172341775596318519357575324948945865986666919444226389197175725516317339436121094042530745611927660120318685027963041644485187727244911823581799103442260713096887525383938015329874951608072649832998433872635019117258115672126271811542683147017770849231432402125676817984787163957781608159646105783031877499075812023606335342786721494728554294751910954854827516678620098563492460025782003793080862826885311265155195830653895951189750303926823485102309677888667338988330018967818984844257322536094317058571729402192974741726071519569021779959064403553938774327199364387312532099421932452584382986989746328245111805653028887452364086621973422275438379686235468625491876106466352005762494233763662994552513641030984970445071700799137848443093411309970832336860273569413452010838229794895242763137708198249046958753396748066900616065127991335416803538951818618479177745378077965549950121335991015684265973246773709900183499411387139633210943789610442046133528306733794754279116680790858340136160969999528669706115325062239246244256833481209066596114896224940423442448724317483981299280283047291957217264933471090219070701566723732417833033827253432888110593699786531784452774385313973150763157107887674463447227747270306834210701967103741813129902620971299849707059576890997860082496931690078907638847339570844975840563162892821741279806851224169306870605255738501644631340875811673265034212845083231428049358081204414736404257198307623295259978178421555785876814676017117765940020037420627020140949999769593671502501720207895649847190368822895225898788116744472516676448770308678102592001107035493621782405290008975735292631688678359877903975865920663430995667283428322628990034231135383370078293889021923277544676096601819047077953060933154354107686715487501672744244775733828941169720086569594348996495080870602382785145926043716902556777567369813197652479660076880674301736534254706245068654027324643350074880343324937193416689609141842283786362119601768127155971798989525815827488958289917457610177301643830355565621593324001926556319712230710927791900213944597674179799738324797954701827429661381196653509283566298204514173944710674693379113890276030449537142899040205065670167526372327530328994904021406191296995766719582853967805948316250645145191362696908468925311121131673215011834167326816024944367005000183377068931833831734907894637368423456350229977330210165892612452805028300061991945869769973246271494517494571608013305831238497923345159408562834674768438933060569964126826870511257582671164261192304758961760621500360330470929417307529170058022914913273380753445464754979580470653258465389916807844184909747019730193180726391164575008579088597563964131434357691983054407084127451813716124527881271124148871142869137092076763321098226536114591747651304399997531799843394634054666062026065826233572266626512080710227555687219727354189396877058394303148303657105953193411282659400728201945004246089369685155600561106843564597207929853208673305941436339860224761036673510627480192009888320569671237601204953766747258140217116599393059992795859489530472740488274773138396847835059758781813432126760863049776850991472255940100416665911826742481339298322102223293251421666246912103700350263265540598721839771535883274943455643668431857814107037606967130096638755316163124038059531014602660573718382830954401756088393094317785850486754085971246337585841915173485278413634617242330560202296223418419790682440939559472140343103655176654134204766881554398340754670456233695535837196865879223993942313960521210922324048963371259795478269677660858965792926675469830578890109294721553574281514885358597092522716673124875561461370973611191628536680789704664237815474832624891249071623791112034612938802306435719405902557940288587277586370333579423214218293437216736590353727017258000531721400657598655623626293868963135587549327569261495315390145107481061920862679877486373623372544832949327594002587221183996514064967570660004608908188235151701984200190976910924288771820005062296331114924242100634915766546544871341061195662612922857683760171124341452493115428009147112351416264164305892431503093400113448508821777613554153764507591178828994353376659439268815230428414393012089523248465635471095877759274014284812414282319799608538836905572989739943374298590683807158801790950782591136071509754906498019699263329663124268585177499711759278447321088681473512981001322511678483120682775561904769866663727847944412923601619075922443648653294851802926550582956589684743329260424887770883884011202598658230819963851879231491971901208269332164649928425354891108341637694329916081069939616216570555075739352169551439756227225343631780763382518933025852176471169685176891344367602563109719034837573310046410356500397016308387826731758978377151076457302235238084787110518406045430106176858583635691999843643046503374068872885001899888215310193179297417587879949016451188377616397012507933104940316327702728845913773433685295194291654546200491554783857603667652565104172922619155401361525096560660299279175739129907018950637770485830245676981771694527850079312386931414512126747346003538906254736766592703226794262732136868950584895203943978717484399384780456689047515603528389200383051526604306182461851267718357807171486281381526379209313641559233329590513626442335888138486649563060073659595255846675507175452891761473113955159518521381450070702616271594867194704723472089678371965125586368665213554164379997745400437314796565234239001693113596573846907045900593399047932202625274647722584047254166640767642052796744640534502599337098842656236075027673816030392742414039971616007185982920215579396127923431561990234681634978831566089196543652163295993228441789951551053643663410991703723339484438570617149356038794844318544490703681879164473310802053494065469364896511843904043647900504471276608685609639580209626799397366135721439800847386026177653058359387522374773311590313243423045727855274467091289092014551928945757286070980480491331951142116224108473616764337141003419846809124365279359085891117624018659903551913313635324214789711110081055415030872150248566811045248662737829658855723850359846182442063569217297463608087217358629859238532947998788471340041754030820988785567803290580775774986311768726490600482006992434130017465345141992798466862749294551623837044862369621704960823013462713537586210241940876503246084382938378982889819010170233254180679306549682971714488121868454823578817309599238700961358443493848000937418586385917933015743668971934764176944473798534578767394036637944969110388723149352344748965662128641109154733522986846299806750359575263193526647534861785850849512864305017001756861493543953032504608458467140846552209405398365328532121733727402213262246300814340844556595178459173620143470051729592455562149316602219589192272635470783132066098774115239983044970169674286084953617965845153184892211491514592433015489578236178591219898662804406037121484508147964105239166357612372871749716540866976360331433337260955767358476061976683722503345208982461901853392951973383556674798063441119071573325399844541365596463629188854959152377297781002310642622373420350620637619201128621132505311926554466926905576378394379577333330019771132815882491416624833194765612116163200697757886635674263690979865034001556273201634242359128308646418229283175758057721006964027942838392123686302534330085640935117704475004417524482554649581911076824026545728270189272590728310715814137912490905863278088142627094956674074945696991276265717105130578895054310450856087862344889309813935132976033261271893372439021002386456960981772578429820498780236683297739057648795012819199695815946409476274262221107440298970949695412687310263774620246648101917681982334079186951774802424293178803779919935427186511327480377734123025313650622604186004127700293541818062074749267163909408279307596371578180553505710715780653195434461457453827188894062037679135458571179715460884574510831130657503953956856019263896153283342371617331509765644485742497765127087099418493730672160599238565425349470064503918787840946174604091975662712111253318885668595325377218359325253322649428302600546259725901014036354289439886981900349144028585435842173054526392810720580855791664406053112424554829987127686449435104034796003250864567347801873066169680098383876740306575455638701520180078536897196685726276616049668645126471355870228759503614942130144833404823605693515979613429493215627869873490635960976383636369944072500063783174679168050313524354998807154112454183723808317817468985751512029656904746752854427079224041007715154962767119919479332385696580161760977512705059614058185317313150458401666432853824049549636345581525697860574795521927900807623100454631801189094107299500636680531725459023332980662549840548958839537955976413937928620923514203071827325845627603866078156638042176142320072090225403847080851188819660980135275614105989295395965145747461381438093231753174607193021473920907187940875977665657704988892935764727951016145273932354370070781137134880512492638941072176222724647982725722520819612029449364858578992989032781891731980106987309618390432798444867251153570388343688074490133468685117158562017377753942755934001380645575694929876987150175165409054559170813276674381345057117703646476885720568550482283293500398678951580427648659260127893367904442715993491138170813633653232951912424189319999298222125994672623986636997763011773817390748636067606750626839717867458883318820137554353337590083355703983530088700832106438220453318493035146541235273577173748282912476943203567244003689896124203265789378255397095603988609095668959688270329348478535700459165158280246461603829471946251623974241762110304827860928424631328444293735744918167128764674787486419978627142896512322529736469588762130522374150660067240366374096323077491358234155150427967454862289554792257195950814424027086419739292428771165492921062348283026844592802198535839034581389249926354874600603376740578296484764421474098424037023472373803019926035541911422003917959678445697283074154590502209860284863382845373461752633105173347573454339532040572643126995796573115146274739923524956513931432933119833130410254154517650300684471230293994891100144110963054032612987827439993254840144776890701123097803340645760672137057388646402379257546450142948306323812920717739451017922122541821371751276673072117572378213555548005146489629550080750921899273397255712058803996375826063870525351044263565921035517985026616860754707810628152148121383018108779471897978436807668826209264662282911835053228100064792974951008087180475435496136481908369048780028565757856161944460013715435315843947293511603343197935556251755936920242911794505940781365222157425583493912784704975508686762258023951332290692194161739222820000875189170341761210133946927269996899481375954913389957745714351244707338395953895177085277179484137677669784067355232383145808030797048609356623531316078998370632435954775694713995385044264019975252476223415526551918240703128967966159702452050840632799678746286544238067129582219532934579831944278436989382846859988052388686952459501010069873344284842055139988166947262432416970194431585283524630346666625388646115723668091718705193083812445067093969161471406577004084785971929535301419002229393976779019667416778715818560443702547150963402007291679362712910232804458880118477044206109756626859259881476126646696415907493191007769174927190335041590521775594041032759812843337257790753130050836509239113714263875739121248419278299996542640478947913828969359511224586542692995364750178321129141131189645878609852648375199730414199793915948041958278397361074912597233381629005485477375818374887967666512959669345233016142761814839633266015076629049323981218858098525334654456835026133218643136229557711837905281300095484443809578424411020338530864146738614926761011474370950176869562537392134637450752446431323019754033488865832649100695874601437127161944625682516259657089240777333919954963929683428162279264910161544122371969843864621430930362544410330823848745726234586367072789592579837757577135223837143017067005390989185791590728507467746937024282488217088303131826695192758252931578834446995353690446787072478927414650568400324083259750260843501004592862073106294299904563522257593211057565788572014595050958732805768872649982800152648400658724806799640900033324407428016905807327578842335813736079061820284160346826189935745560287120673952645081906598378869575066274173439457078873503886353733109806043558067546430458418902303161508190265810505639608181024708838850714218350994418295182643661776356806477122904759099147514166580447027974060936102355811882263548862709625122837595493151800148400028077310000512613560249036801140717121420070146375579889209354900577244659491426923523519409621199111661277328037358224532626019318483820657313370559805947805761746154927436031010358579476111314076839528956381253942875334891729576677418218877672729768328469999309753140711016451647683638937727711767173839366894113142379624876900075106205432111297229796552293090986744064616259731874724392917781919312185705403703431917668021916191327362520269074839146251964865572047221350214961430239565583907330913370123367376270553560629021235229825185345057777848105370361687878095374942594727206720817490514582272485333697387813698216515851375701362127819989425685872691028012743850345589069158392245478941708027604974345778051870747688107541018353727606237599078154021261279152845972455462392775718071705735003647421659493879952213293857401564470672739025249279032485193664409203001123575831554365523826261136277533659997781704775908788972675733913664812296391478639929004548287141592287995259928706108718359060964548751384955199020346995894894673205917627142621714792465955614018506881823602652964743593123692766069507442735213163693838020195429508549521677246801778710859018527539601099341573120447624379371534229215476103484078272642722334426123042212580058739850341412602433394332135744956155645314821855465767279697349215845278648793611381191816941883241488727773266350062359845390925676337259354187712501215801538879009274577566949898175856924089098845464240601434878709323479074119998386373062853522852767152420405202599004131928613043702882649040641744980367120565421275656520012459382060239352750366321769404424845100454414680094755048220922305067433691097886199186027637880470412407217062925353000471874084628438097941096632507290012264071270454569448281751546793881645728351227921049832684214144870768780674917696456743023960271375690243196980897145566308521453434383739403952283589035146895373228766187735926613780375525327287655429450306417109140398661488317623170161953716407962922013721421847652835652695062917936407427461584354633999248819254427168663674203587993018793219397549419491859239252869888984313036628003944940275782906380722422219774428639422937772361426364628527533055687283401406654371735299231095052536266439677026276355139644889998634434603867845172771556341185907503924703448628119851241871610630981515259264502428683793831756776339515665771907969205268899090571269363909716167917673487717796211751379151787550862469038028630103047887749530738297097184243908350418236990387643247526803562783338855723601210504092421480978491678399695514731902036606260720465948530941550663078739688522550479008708397233804808089491969518281653288566475376487133840483771292881282794795469873590113459049688586955859678484129823460802812062832961967591602751292574817339274422199209195169301026338715619586575448383025010437747760718754029587645268568587674350907624824319776214522302628474722072916095864714729058310774963236433621903785177978491839035964277998620296849484589186575141927123860069075518260105837507868943259142830175431470409817357232058441450263649204807234397607529486192672768643035810229833754703986918266187532799954872199395264645535209861144045088289735335557603928353526471257491495392569260824286665805711173353678155165159260746495129634897652187699890558956102308787837590742625255484888577543567388070048430684808474980115661214300736649340030723067046344634532437585130344178238322702884761148466243842587236147406486089461877875501791851261743175498338387704708935635048334387407964152707759977880986647108330089365507477654393242841721195946049488615631510264428994556036182776310750684176833690504702930282361685271664116951973512451088021498401386778725065652352660182125642120453542929265696121682782834746085322873540091258336713162032697246997554416880803099223691040048064995471129426258760195417590578492198671959341276749629491936499929334963892324710288185203303780974744136651478109210565015011004301226078659471265747670206914369853083660730676031220191223541189665724514249376808763489493504273891980399510859257932145719037089813573476136880347803592088984344810241627194771367572540816943135949155297494715304276100702657170921137321703008790340273014432445341667379421373179833579982715353476572619684337506579680101144236145317139197870509742377759954812930541962096405688812496149595819385905591361729180474214656886837664957802299572586418067893521484365790805735095738504646529627517145335233447418146814023765002016856253074527704875006926748491307175834747272370119740529889187717408431322194449028894263816970546019076409788744869134572282446944141720674948893638966807916304468298033734134527040743175302437772213466195195499334470887709419771058016609695612045649930475479238552776890777103446040554604576587425801940787184166921213032036098235078067231675571264737407668927572521141556840819985675133214994660472187367509000900796214088094971262755772010456778637028592766549121756958800665372758462511469529092335701351962863988516880033880242084919256843257780283652546171115165621972437745658257924425173360180759311742925431157979971076926113643637475702959927375263740570265767522728661175013395157586707838086754532498425767429804022324602686188771540651385758067657060627777096068838403548306177132218957911652453920043046639042730365240471643998122663090845150572701575346600500284488015575088233804567377213105665986536534418446444051052359358140532157133273791199952492643105041269252290163591998962260832227950612925353704051911443659505801260707240409302740535616051801701172221885907048962011814654585435877156593695289486960410023970083556439114280949363249680530349263275912175524965545820607851798954346760734800437365538734546367488616709979940550688492021270811295586349522983970829621657962382095078195575071266307418290863392151900436246226650369347321024143611040032148551581757743929194965143680575087101898232631895563380486288236867329755423173749606088690638443123970693100761074105462070861517088352623914354756771676371427369754665684040948597610124035870543276121540472559927367896362827737183597064012513283342486239531492804529027501430114388438883334129293961716223034083309326215931217626346071536185343382979573164418930617388236732279578997243738919903383568986396686455464763024751766763495693414864543005820798577573358924749746805015976271820071369564734057163357070338361094423116203673545267058361590584889128516360749794073493000227687492445490162622292622888600673123040274191678439428053197207200613192374201806530674317810651885897695978384664864026665202309494313175105896589481574092974418994300561625575801056722168191148040038836016541337761755484629875832212297100268151567322051805724455466745882621880510198865710392527453075699143675339347214188997766768299760732866255907535140157751938326528703541517868383654087551787448889534754604647630165854703834726426832602125130745575208592977614673357497632475636511102499736117497436298408098866881064856159190380009543980289022687462485069131044905567964656635391828183508854315604797425095048885814104391411641438281946268316444777249250209782209283030828287761180992154099424317686448113944756781190659344576561155684819423635160901668361256881242257226551893178730961030232163109191691359798786551362206727124838070712206565468136917105201725147043322207533829616699630142554519066595789353496857843671828025713085782194780875329052303351367565241136314366708756403547874556234066971160862763313458337876285559266878834663208328563774562703283406701897914795251350921242730224996647857790964048855267358440568481275126089922493205500438941324532111708538094184295564780167956696375840809083760989375956948924049958898051040680595029081928719272784338553910626652791437176302316235531262669788336100830592494429028744342515139422397929506216776873840955738695951735597161554784722738801718632093344136232735704598465536317515501820368024945388619471406792303065957041965364617122820147762603245169788905249843427628385660276091667679965140407793179590097576219533454890939561968964498104106166394878287332488680146180383350637151439219627537051536321367647882712945959387264504350478115618982209451585347448862983730156629154430853954754860631888857152988348481863445721227321466041288830742804894931790478384799590008874218988216894883304275811433895938058145085647031479799812175508403589811842921482361779441409996808205053347948198858153078623244736521481107592349675362210401525814129607309041456421420553646545800960100476116671580604253533052546006260566091419911492963951322170268501870491289178387922302757085021489033183678946020446460499550664650050945430200890155210372840930541683296073103505439912780250619634417673420056737378244313091441198161657901234323476493059506798735119406026761245440010749854909617118412842401428992306410057350032415034652000498327696474607426884874260461927702632257680777015381900801051711593946561262814355102973000734567307215958602055152733567346907912708218124487785869745738995878636334820810959014550968090921017030721415522710263808081259336996891050311462771955959729635478351640591768965216895229268275368497172168748422373973344014839493293409365373513380763972505719782485743281007403249281125491229862389508352822537527674175966751501065389107759996592842755310461295511431898014197790587337195289464483966841830116161305453755416070706609087086463914804567779756171496643746888679149388817289127841399528822295809817123950450956337054253001304643100605176386583957374533302611916164660314834741955145418596146975198002675064894126144316063201756767633960137118387665763083047950683656799222243943401424763244415701505595953976069705482145030232504117595781687425658903452878945805427687293182575085118960886164393840956559776171888865613708896031476306530205118555020542401553308529825422788466719721812222160170476493071072436357078879888555891353641600958224227586384368284190578040236312932685551907437599242565142248210200871422044891462126969394425731840777526893045744903227694688939679189876658898915212299681019717990797947206452062243102860509075460253642285760931704620113911378757210833105358281977378268905377680816507117853901151708902267323369878541820139567261304840233656281354434695953020058215400999329788186015099344085280178832487508358788065795027445254187457855523270895880054218223997154075974649252518637539981213776926698276696545674299337797230320024141175979487007515910265146218311916603081553360437834843224803554946944912811100212802797594516566265468342822054109179379370174439310183156725031091785764320373348804727207041713045938275092479014356887625183223796418107618754723860440707059583525702345757362744589121669704525185628499201022130529077172047374424296181855879394980412257639377264995832037671082318648353255275264901870349719674698337005195416936762892537497104347555023229176923571807042150173756263667202423213356118478051550868984708617982109461606366425824227474256281313243939206642759825807911594632340211829716703972651743113555717843010397039275341612347484276240811151006097020172418600182542662168483030851727216083688698155240398739296699254304283150974528314911599004177156733853939108353662699991347985510676554145186446366263418022327179605693922596491701164518665461517973988212092759581744084818166283501011701627060043706702720213315901740829003301925811051607288879373221584743039395339309440860160943562645837251230243232993793016902363308281709274113738708580474713933727119078060042268254301851629979793852550965984957278154836892229183731770564504729472005126580035754632216183467699135024809768077996880535424143738587244931764521808084346782889523793219323112014498548396933943826305874699616871339967280551797382589423732210442421346878633969407796067661840569152198046726781848874104888707099072695195275516224513125488158175910990447385347972373273670995217879347076471696145015176606470637045638501383150910929018142892678551626936159849508326525199310676298631665158361078750564931822108771916008987342446282559030830416824980009982431331154777870736859486516679258973834681576809230409770834180273903753068446667287324584984373919595526198071674761934889876133392255822725537143387189072407164488324573610458473790709453612549747047413730659666601138625385124591447799531871890347503488886003114013827758845678030179546645739970491109641085623499814027343004913962474112812345172129445979440195978265757262443119337204245860064380642450420013553570934958078207098691837687182859582149295618229348927997973987075524637327662732501278901444350665682281615959889199379157548178183509608905816056491569114212937075241301019003407650179096118977110507131938447090560835805138951661271430749082825751356141057656498811510996732672325326267340405424267962336173558505643853491259939388206656015991619434131185215676939133452992239203864157081038031095633387648450073058169972856801639723773855554165774757581191948836804035151565526547112253452828421272676275007075902351322646966455018985704167024775348653230118146375462025558947190427744375852428361790009950094635950537249633165426173610336144204244279014853523586989894012660028696190788544661509173707719112755107105941040503021437945953713044661566962925410533244765491445055550381998301267376411713490834758995493089881127677814919999928164546485435209784260079171246420598274791913144241411135217642740085184566479130498083758361807654923883718197345473682627167432335596627280647058340905470616769786358308955603895729354140113244377455681936633967554381808723625903379255116662977646910482845644604661802951080928214394242375952245287380709212538641802929350207390899173805397833553638584324552902967663656620666499831862866714104235603493885859181232370219835005042785133721622034877040087791657761038015931304869608707376505524394134116022054090149326360647388648473764899527678637193902370743096642266270790530616200162107412330484294025422298944821906402042004915334586550162129044314060213063051825232013312505986422096989948581862689178974510235767153735685588096257906487661139338413123551964823126629333099520687374512461177350957044331778734469865655558901322498173529827105831954603292693901546020673471911463906804737053836190882556044745093815066370980602108339829191274829700145995335624230840604381675200575758330507266343794909570492405255990970674965861451259147994887714632210624190513054988515729844350861339777055621142471775688768649596224435089133208010756793444158035002942834348918110471899205754988163711483781446665254573731820470225241057211142013696916613545577938653990415105926061523247096401491775344564492700160069507300332398873863363551857564251896218456810799223589411758149087454561379901652509140906591689402508274824185420432916552894342951649758765399076303994287386733408036054428820921284954661833001019385982016521095378562678458052033687402622691542882198225911251032465833024927984595704736197844174506330646938247751270054227526293331233764525160863612324373739166264754515549888030518036268213813878441774193925750179525267193852956143212272801517065379556959959755880788918456397279964293482673967114972219830761574444791293578959298240882888376071659035441562448434622249701661764611552283085249724060230702826239918134689740282445675761236575751864139371740721631173700273478860640661675143255759582093504169605811602637516105148161144465795098768973802280837485024144465084222281471641883620270501322319865286430654752780267806423740218460036957291710324040239020361350699578569293977696253732636119309065822435538344265940265181010305995388333577525609791035944668734896819432900770377510301590220854916541199036030095249193923899586085552659633629547793860926326030594425627936055328002513456160890036823112299537210142841726438546622574469391453483896231016926605956172664743086479680774539924406644898324849587538191664499625024638408008275132723317036201176045831909817363341652715424955775530392987060776186263014227155416673779130792181506379846889717296791624253136357630555588855197207782783029430466969372644357572725829790640086823726434780248049811840638822188765182446069113630300077621730133677550220866454649997711352123327372456699547289290240234123815931326610138873701154352314838670351277339033826455429977844015441339682311164160606715717963207411588933627305939929616851117657934201842265236153238859128593854372632552797783831460609807128709285254349388002752797957167791068496412181622227353414876127266312072431889048356767837807186966598814278130971672356864816353450391381509934493146710805655483101432345314947777788265499623066896389621828756398449800969539140686766480113122199919485758768722306324978584166204064458729349041044737093080828942092312839847788961050977766568554314775533606371961967462221802707374320156575899601011887491727228083573688440828628384219509192197755298098330916270465874515417653742976866408330351896397852732606465516971935906576396407037102751639884727102080358218695324434407692394232306581207809870586575724418492251051688328969104837155404387689323792323493980152107885025575301019860853320198226297163459431548537258849525765507720250459448742666926452567147358761888818499628473828365812613017358744277310319916183593817665990881501243529480570687251810101590718699583737938292650147017342085505658015678871947652121410346978189941808881049804432913445105342445779229206932099796679329159756261190427520962393152720756903385077246786540560921708878473512847754876202208391858328480393354233777543702130390922570337653295049488496487454274571840202860792557372661484798154371304978273981113675860594395095538495590464564046899911348048324002878715391766091093916152824597416614159848907017883682890272334607049968057046033039623377808041402665644190352724012118521639334435833846447298059247726632961720640598920198302737688506482785966698136863586248315405353155255246897487364905272006168653639433549919251851749667208977149078350089652659372287386229376469188280826156248656207953106790644572263845194753352671770283158824063998556780244333528078289751882326885012493071157872618390092241133172540116547106725116014102414229700221172339529284775917520157602193848610051949033214716446716784078823174445802153171145680454910322772355527928185613579328199652845132246107628823419093797222799336942107176150542880916054721073824223330073380467647557286342730955446160270133222147885419119920019658137392784399658985294245436618698511112326402139032408813663350038762372162925116488028672347376777833597050093543798026155892672117156071496536051361157635906644460714381067333387801436161344130986928848945119105380849520061031581640075841486459526211948557986712290813463095158659219650023298275027560821707158489752700165616269043018256710689456225832416375594567082965834541115579543850297535801670468732821520285546225870747223445703085500624440563928337224712794370672002211774771539368308943664739297605300529856950064045685620175095434513367267381563037783287131472274938483039590918697481518279252850198084941930808319907979019530054670145925402066612015570843021822181257652727652870657352326480221101872950955367391533468652570271586214662181800904070442266869721863539536641720379769549739828546831444562467772077411210977946953005405595258459161824154990469478318673128424538837887014645184297912414648292579865074580656294344856732395942107354020972986746001489270555685947206026969189828985278398014822683913565504784652010277564157210151799998097962418861442518202615964541959228776482493934642340697332235989261862123232564055004552569976663476109709685526642011718848204443856233035329941380128511555628561516974608370737506637118884537256790668079999040832288828291587440025159196138580115392690373741916936060633826978518408440350404121961608299799841602684009384562653000261869720271992697485332285624701176371936432881982128061097756254133992451230495494011512705401127363959246311111798038710208864468559311087696919231730197556902351508497792215342971697253375379768360497702253562458657599108970276421958311432520228061988054977673733873432949678271673022080321748539134167877889630903571760310574909250213753172042006377596568521075090790179227308849668384250025220946429439434581148733401438413415073840252033891380696499242801884608523674343680614052685002382358236699463712998485023398702846140789051616333000095756190319070291157510891883420031850619983217493640789471380279481993448361840249070622396222090038089210074539498137875347546383134201314778055092673528784077111644645999010255884845934834618465756036675838182696086538287707909628422586956303667692987621908586156353116200634559088029112920467302339872934842964480110447751994494723262826413352610288521611855851930156279291310728449335214892234462692906557770818855422326503461426664744370556772102135662575982335101351744559608328611378711410876253523480966698369545958921650184337704225765126884302948639959377013662368671763356298508838482675873467271367842115592448352573993068553396136280226073987174256968326483929786606191703126668218004586743834970660202847920718787847407149403211924112558500446047643689770046699219782780541541523805149071113413182307587250735767070355502334421011272264893747522660082485131358811615723526476549032590168599939570287513172743465306470013629403022443242379030669283553249720795182932116147729204821827641211665344351585858100545017784591941798294671192216875909050290844107053372469719734445845411315098798618949432564397865197361840970549131185573429942555363205781697722857738299793972225946642138796948186542116985820971518647461873416314126699222849800464377924718248004769231326655819360914418227913876867304051596761024871476776197932723010203300334996198712385186100145700138685305563048102691391518826368143495105648450617935783148422026188021658696996988319361512155316299379022953441721915689552297008123856960281237216976322652235757407583411796577805243961930653469245411139649428604273197728873605871104768016692578825660297054816669724498374035461521468541353011212985478328621531656797399551539249816721431756380289401834575996491641840503352923219107709895718060343830792074768044369835188600623634983136554167891140191505058034912517546826069032214538635662010221641440474709028926669345256096669394632013523969490173970381007043862332622282670582175439789035840173817889884623100412595433498032601886530810049790609295406076227131848005459280930454967633668359168518886714890982587963873996494660082432025122402666245731008956594743829209179859499435303253091430403848648363212635524189924735922997861685906722199387432456078747197228893014408961239542010266818702859600493190495752058499235781742486636788152724467126070841931947527962491312568475252549017499176890653173305731911462085344312437598743742174427382910347059532682428504260254621238398615803627736102547268450532338147571482418427304118868937303341538790147679847027544613593491669705506982857047869427462515416030906685423712869984900387153458111656027407312676240535956572436601240246187137362610419382070431321850733629187752532141166259152079817827177595626782365390542581790070135434422458713625361411118187306477257922570502839048839035572283812336152316993796789618142317961572983687534078052622817598789875023740654401809546097744868467389217302183326589071837636260029801533990060669982343927739175898241798505349100407854314903637866037623124199735714249241627906094225417366149573400865022440878470366818533540527236556802252566309673142631055493480254525723191236217376481591175322136899309517606827939436914634840957827252421482771593708059279269326371202102004754992320991664817553565142158575391266586076802555283836363855183274876847009092487166645839074341970154923132827646224235837721777282793789138961820314868207578249764055191689322116031246387355489053045501952414481727760047197816905166117041729311217808862154933878220601572638410873788941881745735651433046495253951555023760671639242813311697570263348607352621804081963396438425887972242904751076653116014550498460578445806476756113458938106466046069478159634491017406229167824948773208958384813917784520047002313773550579900671978528748958498790749594583394180971793810492456539795179326202176551323025882376635649649989079784863299722469267804810889327461172515283254102360290184444398207637895288376081319482571546193907203082078680844981645270439589277316896784782657965532759941163594057861803426445812634392401829220540506378339874156515808474469977019914836922869899900212771926391537417916654333020852329691768612158828838151935936227785580674986904078382455851140750202729861927140673828019151540221572773529704897017093063675791761697254514395816892032258581428917656124913144239616034805816023717967789219852067121199860932623733065789105120646788103121888087971428043615378643507941778712044611382625764853719256280847426734993436098260034872845907691807948210956163889300040227181004385506433716409152297044460175252870542815082984985632380663696078138371317069016191153379803031924875858367718362337192577340435945483022475829340784977484062871190168455098725415640946147777490527341274538847961149904672389815839504858808047528673391076991389013996603309724443123880825229218223746352902961611992538334161392902484886291496945110356724254124231353556253455302179142074475386260823613835308027958007201973126982651984584300340159066896160007539460101807500035853508609694790975499986143478379050791962380371595150591723690691668607487674227948513167389570102199349431629620963505991698442615071087109239878787801184318151478408577859113096007301475242476455506286090126661047510012983268092279031186787825299509744803909261073473651411083197106439563930085190844344151384863276793525788272763826934473138375843010437784169598667214952978459184643382937900865357780695800083764738899508995715586429414936437867978000564582029191003144163827539841165880223830595005737833474960226050070842910244822100821236987047009945613901092570012300226353263110977046704416085144789546354498184108783031966443703694521224539683191205963010736831390275064554119458462725855328017556614150141044753918823844043161052534878094618727481974565903664433097276315617431373101333682608364131962844764576925904679887196850488337344830136070787821701810296819148411784745635659729575253847920597987161305975972258816183446080964007898856664068545488600300931583934771827383355138907125584013540736283214575441760680339890941742024859782875524638463505462923663339248879526077575321234171063884301922238828659051926072098145268199671817033411534163899589867417652181412525905066600922023524758188127504759852483233698777757290377703619061770413181943221538783546012100504143096733975595498434843726895665239993001292433842350944168133039871199808818690410688823029131880538203871154391391233369460557979132472081903016501067543308057736225300998842215569539238138413242593615566913077823670648213699185139116719462126630090796305914573082468429617913320394477846015656981829263511738469355292750151172187526478770710080347582544374415087231967769102445121701197283408331313245990921555881766990775308027382089273930673384563955725836317959737645707515366245810931230139984985278766114975109304757207709327296251380962254606717142630401470476623229368839279270713959620970171415799611913183259162542339580111161503078059639574131501936466972612931817325543241164600106960653868906493259727113137169874793989278116608103312891182499985436976966832893334185899205823100162381785213534008605253637709191252849849883025388767703309413290910982974097829264263495816681665255408685642454221575332568054597717942509455167981501847963991486987237192712299381029597810211257172230503744819200723427307863123758796081409077634797244890298166332003834510798193777359449909033371964431890735161990647170376152671099766835232288039514854521649131108451096079268418188538425507377971664692177239709486063681550325081789655899442197634273713595609038582466287622016408501675344091136343819782616472914008427602775720575570677022812220463339921702067963816020273327866699101889047596336986449868365140795100157751167731778218563972753670780271791906226668428463415942746350183373074753361109671994060033823503013749079325249571218055548513427587384489819530893306973668106274237577139753589461931799204987287828368606711137560691515523321186348634928190328634987681488696412865876665261015976633712177978882856640958362106092668196072389409397171654765009869036355581193600133584282238827350671992232658876890688267137547312417487766568382914276721600994551480090830608449115805508844919089480894883410208245710249346076687014659254327098789943174862438759072869368510902062740818155463447901538917717555321491355099328407171957188817925990257078882538673018361737227104796587950332833257417524902715923269223930339870132014462723290102777473576471919270206006633782670582889001468837310871343328892447902650881600951852217692648533958473660384033327705762196806789124170171197600045269743961950192093355916753350649271558344552279431596663727754768241731054779462806817859685180266747475368206113688714951800854766528268816512140278015854750834383536087426585470087018832953186046273424449251761868050132253651002095585590593665095097091192749090302171299985915006397573573296048894784502340043506643820509281244650614548061540048482640752235687831145357096886618382371704963804811977287544686230408508941350829764338241723016786387488902174818008733350212556055168898259192384439940884257243356577678669381136614673708730808561526745874861245695277149784994380164015175443253246482087476781063640949181252142226891033343329728623989740341933961989508348027720210597980940097435637645229051363021468459746060591884127111304487337953730556443387660044293194960581381074115480719044526484802873364992490154672997723100974072382621710109379360265690865050654649755570848828966596979964816598621613740187433239323728450272129649827609498827883925144024972216001527581515627431740472351478069806840440187667094240072483242854063038676591186534404756657673586918929414293569108071750501523590226429217953560155953752339849007548897686828786431809329776270160787391934222510458188334771055000445204529449379618482505128895541723938540077436375433136296350866717131905848140475714734212456240986697414393493104051347656039310797956909419688623360654881724535054451934088076689472615963324834289201880580983991751280544754066237374623223267871482308117254593996823560111144385788115889428570112204649926758922450734146379682789314144804100754689673214811474941612259320187043169710129861081942059950333104050189701096299683480166021425737724842392998006898665018410927801620765843545702418357659426787453390342663219320957360515220521357472419142378527817849606413172675838977210676123591385841104569639877627762288242647094462154347244091296059406907322203568425398489163738653922296121090236290699985432878582325090040876040769089646650533413992103656607764397421164779631825696269230548308847142373834113062127195426795206913032848584649494680303507110318678814217523003343338008579968083147561042766465358253930949468773916097028032281676741538543436137976122929698231843906813331333605979111053932492529022289890569299561193155359509910947078008264521259814059270836453686600903622967800345223602470923295158078328797863964514924781259441985744637587548876843215766235934586866314169867086937645302792839291266338606892163226263450704057644096077296999473754901917103871871706015644238556875728127815113579298025126214001629228863009550710906471459244262507726064591519692713557434443181082890928874991117092696402709168562872209711003582348106914348338715965135044821053613136290329258784517004379318072274861222503670524584583563545812013713071749900015735624270498751809953908404946551642850276933089784573472588737346270352656744747433726021022330290437534988155947401717350240112692049215002008096954486509993373409832791648308013315466995936053675806684866487915131318760613306719334139581404848036099210587592649825420534885767738390254625529932887214109684785222546538905947970106137525992773874798922027201186176138220045575936369109795097227832167792189805296336469526662060324601392074152835322891113080756075184151507676765235315296638144578654509227717335748820036353452659232688645555604098417420639884170141849932894439081301101397329121006988863727418490668769624685310911080576293452495964223194273747019696001867816558109332250870042412607087480128381726887879985480518270868934436571730763184250244855138529431887636234765954020403307337261364114503422756523192923585681328320852909208422483929249299496439641500293192711370423170970914898877029458379895657060636118224014290238039787823257340144826684896384678025924859705407484513745205002009936057708880360879382700042227799540838962534691637375853736279937696676742510524151814981139089003766008167166327597206937418012704604148882490743283686017854753220828138244882329804186978257178526859214075306810266861672678367487114458244764381103189744939138642504637380338528989552307169835364124092058792278701613342913946074858953339031036325268208162773713718946106991875354501419582521633112466292881710125025486974337839703133332361068517966113962110321542836746679928537967364834786062439233901720709153875815088414883560657279622271178795209130926154344043924718691371535731830156556139953147904154173516210298597128765751121701914880654040353200627893842705827568859605794103474155405816786242986949683866712115091768298571859086380508710498062039496229450736135622222850273797482255288355319803309943692953980965035671555240940163816557499808528096993295238348107509710452130448488864943503245948767213378743163263816536757044552409100323027637417982887727993984272826045389838259048386452028530854931292430973056182619664521658138135765448342402332926292805182629604643226802174173078998133064610639885930467029228367113419226476285926137284592760405220634615326403532246268963520494418265455941552633773114882318279286675579806632943038778901418381580291302250183030310815352098234263576941433009071564150760796240269533929837608157161480900519503548766651141957170071670628706681298180142778336608097406131179174836343701888412458167295575838200606581046865974736533624114454497234165765377584343814961432914992647381563762854685735684516853791167782627470978029421907720397795451739350321677815056708236443545728965177902443681635383009562394220476422208053679221879139830210169383200354689077521653760136454088095083909922789501491573035638022561974792810703485296440862721825507707600490560462579907759708757657054463317502509379938117609591775225152709287964839296631892364970610494029800734298354610137202761825608700753414999353833298959383875972395246815499956019285006025967527263079698132367366016120506164963784739557517274152312808648818970878815524893793285742938242894892196987276996239837290804753966259034658704433010479634981932278902437272174684844538041128909940251456880266107253868671394675016195849522565635933971101344709382282489200108377117102588136167995512019808956077810946177004446687715017198483094561914685503313945404170481429930209982874348744932964782529566162205019186290332363054919396260267962881917989738018897028095839957017873133405274846269991221324289265055460726885663807961118523022823307444429165383284522282640473109351944705762465452916636378746822399191181295529049528125354643462232568396364337803536967361084828805858608028807337489423483946232523634146051141733873697892888092999612464382443132581779584263600521952933147856357497792725958819794762524422359696534751120135751383563157103452867300927204318947291500613681946613059272258726162246611556211247097729329841615141795790707651098300627664542473581020473691100610371016524841688158624038372454152983350185059631049051852483964741294100217398979191039719563139968187953928911529430637258447384356393819555021229470351275655299591362244649819928452532893430887818573464632606937893639397410225267488616896891558595179401151878852501111896720488630199992661741581935493175674280850962140973878463174966256150928135899886532506714009116077539085429579995763454611602577892442446357141153405175376373483042431957725552757684125194779370582787703053930568738351814766205318824150918968855528361103811700197508771813502519771019093836221793774312851573788587837810762518119492188053392772745390630090673967548366849225699056619511217651355816676167551986413225189422378455614291061690466759958448124880848756509203881846374038652868414590824834761133786263008889081969255762038687515388388205109304953955782287495452233007703337713711346331176476624242951774401632768019514727559913706495967657984211579539757883749339739545515386893152049941305527473874250796014843730701329490616132817813647998748130762170320441366228501155461943978951612605057359844002704189134929697726008702332281795993190484041962471203935288206670449446875959880115735680231682285400625473561734557615484442035913341290743336394691445436827711598589555686779409446140967362805946241952060491281232215919762098246586816240586972080685108434692743018681778127315089236743911449429450522150341949936660725972344154910843852221125705116031965485514775714152391320413438604942018348702234657766452925234152452377187223319611675329778134568472563317785400352152942580089872518066660507986130556508687792670673675597561634148883798337207156268173660188187985993179052178129101914150842982389060679718615315078487701401445541352440929972325805137784192649700109617845563357702807552700190393873556275080665616598846067925139198527248775063159161205403139935137374692488752698238129160230221358533246655448651801313703528926467483258178026634708718295442719202716633838994873070421124640845864319255784608791753661199298779491596804672184656935480200141302057716656462570564282123071222203613305685368509605695890375260343383135420796328948080054704746815846534888564223717719639527188345006232013043809926945674686768519180645774726187789036096533972301098271742454983928293493756556620573415316930489886656508357249223897465855037825521687346624369792453149017613855687883183886958552328970381509022552085987574989209795751317887483866806118432851587335006790536674637653969274624802686740682455297957585956012474934340445587911153101836611735257460345118712599578707236468815368223134230503192444843360856418094432118563306177151807957054155827479131154152079640367937143224283280910765633168430635636044158953098937438932843702846659019590097372177407443646976138266325303561819038150421714184403520573941578294296807235159587455835555221861978967706237642712590635394615693385388220410531416237597661938239804788369742957695574747687424097435652368325323407500071023769519959547757485003976017099177776296898416359781622210530107306005011584473467400033233731803982097305975631249971718126903710555873868301034302608843738292334668740266312846578524397192972899086937679079013349880353575049401441201049056464863800176371895958352044182362579767199269051246114479290788745357139979052742032155090102262178813442106652854168566505576026041063354614080254073054726144922743442119207175874913040613898779691901219310110421917353656930576136049643037388841030056934977621464876958194896210188680219175447297996585777865695955128163712668907731185700755849308169011392736380425052640951694109665107609531393532150034584287176885126845984545481368559608112726873737105068830503103692811066976202050357828307884744275024741484459796719554521745207455110041528940062982463101262583230593106690794609815348087004508342641981016293333888854913351234965236999904719326540622511303160024669622400912621426209800804926804470824617098766326980516973899769229161540522154959665258955133574584769647814510548498413914436983710717221737923975210658537250693895238474754532449826366112386569856477239082827292143492122579970719780329084427293907005169047930408303523407951354415291370003355187555128889787278266039225682087839472552197365101756192772194365015009518542344962345390677026656063339947026388240557565746112686158277156422253156647837398705927855104493573076790554800454652630839866542947390486787465769020356398286250676646951453462662277952927497006693571444964505990392613668453707403420248134089099477711045920672619148438424753770418431120171837618222209230214183633951110345883270255706843622550664154478171030583888398919361382255682421269699011656047390774851506274430872714287696183360472411507430450564233427768879661711337735533857612008728644626148875964154029742886140973102662848005382221314873333624237482103541140914874896547703370827154259772616773527557574386009504147988017229798499882898308616340681388119374690823669216628946885925949879588956872919087083730986699476102151641084333580116768196071160369879239626518140318445469703783923814592707406702459091431662223312583781558578721934467085253518555017745735487926431764827524128834150729039275112681552943021357769724573138085794723500720327113694433136974663342357661857736979973460923177637663752549195289825199176680806203561987466372848938578927464038454926156133047886155868345373195972189570042375169870890854731951221876134338851253613022828172985120939055959702117345316724556438656419439417420274217871927407060326995323455748831047673726547539149696968262713706323369722288681827945226425782657779399638124853846452171578572471098163046259919348676112755591528668292958141219721153602784692830953481200968249553835897367607192248530482634407365901755623228751042786572143990800359664774513511245257902402057435041423117305751547625195445347682139686654496926457206326294719348387734950006343922227322710974815736215911743160427584361790526081395371204597019060936299950745256719519450333095848162378806598116095592871855966379111551919862813005491041851772836619903182643629188083302808818881503312504876953063642257949668755238643886472315670078631385528595193351592336483053980709728688198119415756335915059089363899917298363423343434542023438735974682045202159417123888549138349949204276761845991038105416317311395622338931438511685682444360467999403875419265287983214916977083550171382734694228107701617995386503645849399809758349262329036755696433620427861295645649279027392809600509483404322963718636881254678731435973706619887132062467440945889271319674128699276681011228362867662770409204216362738788731933897266900134415503724888136759980870829547002193680442069091326987876773024265571045325796320539694000175330373987475708783083872063236612835480468480681251921002788910754768743303987204796437705866975420962990302165301513558288848019292964877451267392949756112334505956129369889006649407361773882027429027593481730241881602538656472077916305093732126931562923362163618018481451124940500927616797505909795574909310388085382760264014314809717580427793490719697160148087951411127666364367540335125299095142734161405330456187307031076094903896597897702271600790357768819088670529141392622118232667909303079453480117579361029262173456385625144257282186257063202241903290521406634469448130659857442970903142428665170309022146122315404117173383901396327539054631095920425450128730754037679301506044006645734006627311939884281177365756007390129263747606963426372187750640173464414955018322713276980542676766291279023893546051277874081041671640196299866667813017634172824733871489790010620103518138463330089587988726876989569575739132005697742812195353173201655150102211173270019131368040574908174042162500651074214196969844786935271278767118511888144222815709318933425594218198787907593684048469918140122736331439481790909339040499097043953391164034572339751344379312852225332753212857209687809100654692653494040032822795914132164786887248103692959190932853494616152473566310767029480671281698960097109240266200350380121414743248448725421437122673693682487556253787003452393103459508373060257196730603019821766928356441332491889427838161214978735251636452412123819513954554111307454915719520689816581528729229984600718410601645285909455077260438000200635412432708873473232174074925315059787477569218245454388107651164033978057941335829917336805669522891949393143187004804877253412931266227967075794780907898559374366653509650980121586653185472740958281321294509911794425933456852466972621390127199476250539055222935229602502152066709887488262282580130691341002095422246830406065562107322125516577639066878465361201924311879018011045087338283669229643714646650962393476464662666834903936221176887779369227020475204112750377498587279507904718318809340483571800188635730206686339004144147225146998750765823751291383625666169910382824653409500699300063394210213150228739377148142236734662693896010648080913867096529425565007238273793148528373996760218629133652322127011284035219662284309670009126316019470035187789386497253770817054871808622738415833472001363978663369605609616934024297847907169678856022491537153714015505161091472660959514892095307874713467699914424267834860605665771982569710796731953623632713253098092428092921497967667594834841136787940329184742215636449752617299860515351071995511807145294923735002690939905303294823556410935947107619368265897212727654691266589502626910776500409415874543756811211033048396683107614020152918397883040180699994954429565913282471603447064626386614637251331164555315371791281412884341917797686561038830445010270752713337708737594778527017924574952384060197300584477532342345050687559828564894651196435987736204474016207698665324305772770557443419536376710786857258020480471999349449987773209923951468599908797843523998632454338388710645198205746556610712683794651068465195173366314517531925695123989184884737929239994050037389336585875095070238183400134044944309002443492908985278626410197608813315172785765026806058441612536391834150609192862338966051577078665838162343421370341389465320104270417651928858264273421243090383959402428501112216545899724801513266389713969091954806611831475228241362044122686534760793321925589869336316730701809485166158866355090425738845362201699637765823872004762409325640837733096414162265436995832695066508779727578042039187466426289845173019733523872598743298340680691427139159492130388566836728277313196918761851461746661297128813007224226677700368652030462251175605708671847119277158727607976928847158054433502020651722357923603126238964140841470778847535547439598439362295144934356489758992526297073487845887285386024331315068918260380941731759406796300703365739710883222744722766525732722476255124345591113647064809981912604367416576209032387375728556311178854115599221607264824411095750774342219368600964149397423700691248421614834698722950569508394592607666887951494697309586600522763567371075624298013729295997747791342514380920389549735386549496685193986095284637714251968017757342524221332850901357747166170675413514456403054721625388154665987295789534680374570415398101965387115601415561521709510204064799007069421238602135038983230174598411832317748751945034537734434975071092972330994824133551172191063411684966952358418504084283127317103097311022461414383944148693879517857828836138527837901266064128504429360054371071882282411505624942785137784376982991658269086977384096344632714205012455021366794573219081246672652457193467761126888876657428144062361509878071508569770257749100489027746156707268311177886600718529556073729563558745019100223158644939104236684325058291432320257177361090405696400121579403547104370533279390441628061854616652735218393986760281797060407371114543341290463480311468933545925120398151846031057567817581119405683956577725214850376027199832099990746958464655651976869470872598540400201422983708940108495024033386929016713655031118183469856883274603518708175617795667475944081029474537991331772843091340579436881441593426440948932962881413614897733061456543269876865579307807448653349270557081201609745502404501701032251990015548899950027595195284576154160078186777096451419860319994640703719323785646487840329155504022691578846421106796538086697832251455804044090973389458668342757999843734185716550255133773374992598696205710359537563573983938549039721599046866848611781911468597370151171181277707800518808429655392817995415907618712154943992154776811332688174965439474625134764141408021348229526999241547224691971510742849697118014860879542294243430166341204854946367686048637911993053780909003695103286573730449250632840609451419911135633306481280153001225995783399496779290942419197304445433250519216918516996084986226979616780023914385527536271170466101191123576029686714371380615181086438190769933267398867235437746056300745778043994670753689671175448456941970924528608231965048752443417859283602908169800812037788787091134706559704280080768852322167147163313507998961877191721730731609135397017893713668987648419575399580015168334843482429492873896907846336495481975525455147106812110738586567166963143400537596985456651802305783419091884956533567084818944999632871531599358199188111868130243381607150562591720282773047871412737261809554417925573452064120083674989604427521374785556321839710817938286159150621801594175578392836250609492214434355997126522255770524994584810320855074100968351900646201425428107236394500850658480331401682234561020015715662849752875208767730755284302694122354671527040895856955690064615105076606570185390251796174180322181070674598243985652019094491551427857275535589179616288500672292739079801429061926857485933152768835639029266752417507328759949162108535289577296908371108558201420552478631121427973603749013275733983964648505346381195942338004235709808172946352537991716967880808374350877646406921070128529563514830372921069016376631105996436646133010565604277263684254688120578022157695084954615050743987258421619648073076616803266097623665221391128454913189321497546591191549977492591494528132016013528406536198322469636564019463756985026296065994164979227932107921256346130623036639639983767205444400111810628178351724751882227675775544296318241042933423435796519666021871006818654487091359537038474832057846831186287496083872420232523708450385436830269295136084478420605227664214811564793500311961735184406179805065554996726625031703437543072329681748380092146948882781265263935115792279932299913437567123051770987858600096102823308583906200927395234726928560627016266380010214273923221887674188026244289497367978879611342678633600471866899744445111299780317774729829189882451419158791876697257073480176910029405649433332732638909804189711526838663466186233450628774324171922268070928156537957594017420968577946659024354699665277734020766893854166368836539256534467880067475629735947387212841955192701204629474194109304674681814737376646521413182394783180858137142656862534770810875342815146109242010251883472960355265488467814539393947313606263263911980784482175711788371844838356596509439510166052171368532527019033735138686641339545238159061001224538937080608799695847268206415366401841386739280008270968490773208097995278097641788448131662297622848260767105877410439010924847089082564253024823260119902357092966791195130999578136918089562445094251217238065591456444647031641009335749291610342912098752138985985809183853826823258135068912431220479252817712192072070271759113322945085763423850946566489903521368209863762627606188117517827374445547977331659483506803618594618038353489015408067464036437072777727948111479711881109755371676154070572223301143734592106595214309357277774340261746448765649244544250373871724694509073819705552884690259015505743505742598607252209923936875561518147487436927187661696378359293215070443673898694596843586066535524744520398770984528230728918815491372497151013166388689408798620078977684519546652010644403538857388479476599759788184127681467106783307069835926250181076405779726207271908920051548620598315159398508387551985557270858582522583612129056310204970504584596756897213841482948147774761327197648907071980929114678647305977701279467318218359063940500544480317326373337272673467647957032995199577986362958222183096293317517351032981324011033628523398476176263875559837879256625026907170285391577488997433869838102882865036050727727019727842841903645241105612461037633440406600344065173447193074827523296915694193766101083738824590408901676981585713628258611883330740419026835273497822184072295653905274197710120728365700120977290555544204276048447859294272006742980533127106354643646633614598591377485615939338010720292857279256694542480203415775571481122174020397745917464952867615138935130262631125212762722548535354032653069671213870417988958353473245469252932127461708058030770205193745195660793553305653694998258352099512556769829962792328193392545428108946990482213208855067937526501621916681406967757061072375756129874147280549605128809722394747460671982479380570051790034527590206937551896371184356231431063642921071249628330977038439116061339089462873713269260283798671281393271950467536514957925268722103228968637702407598030810413506587504408405569732034834408499881970393851537978051952958208604383992380462060878043492760950267519096521895661221203076567632576797809609752402751441369318634379469747146941879112842916540380939116759153371858732154112319872443964707592433444567250045292943127720415460542044699388556552207398746018112213015328874893857764159967797077430215186044381931516903312275250290769076392047703324551523341559200167309702591412051663238864996744915198033393919743184932670289434517755571204709941710096617118167114164627079040866983657047176577524507642121943169389099066488732355828639305278014410016029979406836731296095570616828448329493786246388056114622036331119383816226741304638888971477284974826103878147889946505575722125807429189084087457218182153236781819042397259620466762625711106045855756539620802678716867158822346201214264914609087474585017718129638570165645616008996107575490489307346175202554863827561886002047885335833355054243590875210101637965447372803460747582953737685348564314738306374898239051776874751042121500197017969524884450208518494687913757128135935733926344435057302540907866225009988613417442522028005620998053709156739534303207146099087582638725605547273082130695246410005879019921814012534287327372496039718668284092645056328151447062301422742472963938499535695311953150330769396017896923299411525729200792067999008788215529584805798606177686935868690444394132172488757387085796572892562711400107558342537489647190112604087255986367173652137377094391723301706615960152603088708465613711138573272872058235880475438737668479924782055734462581479086222399513805198772414649005541471231441075693059207860715558256832930697425848228332644472047980601561732927327695174278593360621995238076006748448715623153705252151865821193957382247494747384337481666332583029567500189858517086730386018164532668673075344748000968885012087022238179018911005017055930012856980847296274289979553761964831290489040170643807019355952354012298068960351585150506068365619003147878330507945260038192016424675705218508207901398239418343548258226213716292982397702016982946818382643920305393857509280219515133732564175107333563191873201308288781226804579281590116436062188307345936618782787714574103944556136851294827060913708779352823217341337105744746895067512597027608541818547295346932599487211491634921967349475051156118502244491612325221614624202525099261762956298693252167443129873099036146564099942926513525932219562033399963728089637004019439936979427134802538272594307800837338193069555480665655364059995181756992752743944652625573279982046609289318628807125618201662881540329953479136452202430134092217199238642980977141023307057840261038415740360880128052280977946341435115391952444128612991486941802009055956534340306608902653307878059173537297781776039380206745435726707671615896255972830742586675328210484325512615101699897090326058206723505383833782794599552100929096175126572887420270462287252075814597369161166657582672598377524527476997290777543063514760033503668589837547983644425075376112121630186497610399109978280935814274773372546962355759589295952202156371287121626033570548820927819399028860767163387055341010061168120183460636010920691456544545844357300021110276027394282244271547888543054866623104219352432171178577547392402219204825388695119413120658498577189844024706048763400352717284946788945806045633039014300402263363058708195133044896001437842828787724794615170877738105473365858623094792698445903200195954177523895156977721947118359872591250928862666011762982526148697734688433020527214180456895650205746368346650010987079718783759939295459131212627616560695301597192554453302360718010589124258232698050022237367820316169698249093751072401167722535320246117345675081053517680591563099548420079420301074902367289524831165871367527064851050006497041004671893461326322523575546048418155151801231562500589438145668377072248759747027632909913799926022753604801227690168952800438428612071908576210996854098721891240024449608828739795744595325880821768753637631363600582339896951639303507802373351736895275338679564225589324423644329584633732327787727019703674233839849405373799119562474432620168374722276440585044357113984266365779877988880549491659713177109629515824432415145001716015722386128437469042541173050373412000955348625524831272059113161711078156732211649735384677525394661103766552704813316771344582515134332336641867099573897591567094489679872519796753954221116697194866466913737395749992025961085324923754811304688760795900266805419662119621301213539861446055321787162532688782180098125263295205450011665568785382552285271297266875907993965492049173099594241415652310651233493546805762588969382850726145586579894751674045059417316685357677349390487268950236640941665259588024849531109484171016452304425619830289645577102985140214744040986888682881538636137979657977428863787692052112751795667042865650849206810513266587794868997327965704878727466230734970587593209852925359967581277601964777265126744886284768619000829906238638745305160456667111448624432777490120267356587907726249377854319106817178202345639609427329911801578865260746698074863942931404334835763983905648210125002859950137717891733339141804649292591550936119126114401380654806723707934054822835391962881539602097540750731517185770608992899453425999375921214668984400794272439674912999635731515994718518583675930341360324375149735574306200988589730981697244453363833932741540727453142466913899761793078178571752836018601354948934978949759105821158427619284539018893345126043965081172626406124539621475719773429154691680420384456709377631175213744836013306455775738729216045420205056846413297137404284357687351960170537035277126500349050653140790793330377132275443664079114919582232359172580193887134808405440998850240033206457514018572541148118311841358539230477009792259671727377300747026194214679735211290773565903885223519859277108446417199253721709296370004134133668977060917584864564029285232700686212306260121958373604845081171969398554061374506727325846467286373991174255544385129963161159562014466926590590934323500521639180233647991523842089897207503064413320974252284500655381720371777008837837978607201256795589958539925108976397076519162280628841660899173703221945608413941293064817613601965209071829486691816397929596707083364079834777632309170517304837939400623807256434116815388651236910112901295589862634289609925802525765583155421607164153776451419812495562375761865385650617852282558394457954627995941316743985263808521266013689267009886623307230849350408113730301739477331007409079249906022002046098525338379794304747633919795934554773462212774385219964358856855106054928284115469610379469808185928314990428552559397893476738514454088025382299159052164055346910453168511978888289981079037503864739539460687095563102302716865812064625399365713823402929015292065349403547061707399200452613975763838629945221280274908588783776692742269697294879045806305690823157516624568599212813228815736488429004358375759665534615601912501732810961339895083489912691034044128556159675717114204498551544573015928759858438056865911282455874550340348489803387712090303020776761615910812453628208490671195350922401137647828601761948680048672514854412426136328919633659954339578450222491273349805750828141082435822313058670578259456993797693904580551652303936524507961952585004625865380480896721916583989511585600187641149740315549367757902265646304630956039341416084711756025235155181446553710579067838783978178855985484240979082952156647021020487509033849614675332899980774083700622411136150425132011317612020044596937554576180353108212428670488238227425146063983194057638357951249497484062865855687362589405054789211916941770768997140591189600644076217359300386467826692360874506812558793407903468175994538697450326273284414093223988935687224071930132808866962717851742460438582164933824933978384391198097447212273748277908676756927797598176654886007166281082854984769553119098283134479954274786290673133149913834264127582327176219515343728246209526146156385743736856629878463476001443492142871990776117259455983155713943560926546675678490794025057633489836515728838585440587621115258062548364639254731180327529576302101396059551539666086950931231665968538748255299171723326203752131396764583010379575132464237768119123033148329821027058094423226075143715499162576342549720563739961464215680256532419918614578757171065987568945548333992362634676807351659960808422292179938598229589826338198873058412943844358386592561434129023707589051271179171400368504833464378062633106491613484264364423912070679047339742366838543283061257256221096001958057042168637999877883411685879618887078892741546117130990795679620210954371232945244315124820464567664416957234476501561563133448330013720488033590861448337019226773844254819986171691025258127322848683287505391774723848600716525427117094284431192994181427375071009317151198224481331500648158287270513473323197102574453236834187189371143957185003589814537889299052462644256315322755950376471300200121957981023271491629946736116944765807636626154787446537917226145858510121085919401789816887903787559984614315292653520477539134657302271214069761756556172491755605044554337140898088741588285254593839715180923395899125096292341370434351882906671204639663700612149438422353125892107621945429659845741538552010170912748813500234487444339385668405480217781068467914106609569848575777000487593072904990957214527037180468469638760519779802922502488149653016210649239377889028123029817073435925847747115414898422749691061207866171337938164271958366533165189773599643618531923574925026963464184074216184777681779847444724911569615299276399983674403825600315838866863681912379621551956713035374368212872220554446798345674949516924198657446883230249087435133349458232682290172197949228851813868020525616751098651492213753483123543043324287940490121132347285533466163602990104454700191566502901184635305001490550177432121764916455016805960213615887933081074213060741562455528018687852562249378715198295609380836675986493497905594031942960907214363210870370804701536891669751725725508359609856970690947812068903259767041016037139290735206309123312894612956465629253581391658113803331850962371036303902003231300533166149095494538744879151331272152827098466089605873920094057049604350532417169129752068316405305314188343893287782787425288023712723388273972157636976005341249442610251132638351377729501280269087469983861850547804229652316203681585672401298800135355469271581320421773419613492452985121082379583519624405022799956387484628547201220660011957216294361794790574640143240449942868509571590544155083281785621007118643820489794524089588042188677455662799493195094236597548131196847790038766504563299818899456130816987635173995955153418774653868000057261833265675903734481356052570662273553188269238633119904669236901048314657791780143974943027454929882474592539769147521969529410038106890763377517060887952542931931475843761091711023977312357960989385594789475876495561209613537323042569413857875267932593400915129485972651340866083770312221806844825293871081158834094925176450011195977061350302260440745088895625511829857534606991641558552008712776976183409838460927804671585143323800030431956724802647354255084429864300193492949800987942809836389887102985705907999932309249853407574445809127490887655583962044108701338065380734320842810882081448491278479204932249216630906098885632802938226041232088816374697107299396721991961463941389356971000965951519648026777169625984027517790968980622219343213145663336448780886111738179073747206946602545615235483152822842092736805390187189711349234513974097253522250292755944737137916578153398788410091281976728367027546267214933834180485559137743444056095740069005739878273397529836633440298687903889686300242033419758130896238600428523199055268994552717649794624944457813787192011972070541398768550422701087728843779042049455389456708530717052675610957075638870694892610706014672965964182982196884647409046040976321679744737643790317875295834010254191999730027517148148966722813660321638285767526779511291031844390642402300587912584851354131374771609605758500622232009493624480853620258371951216910840840963452434661357279593245041197232534672572171926514983772255290807907614066979124624100800307924358872701023681520468429580570829821190322265352718285174651314501717175870596749946044303297938114680800191360684168517837575921630184444900798528629843365794065809679236012010467891156398635152130964561289640362179685383600993776708977209825701907139314724462344289926331765846282260567279601927247468993432761911032244796486520115855790351692225797017728338922424499875076366700787398288721748626217709123418126244571978770008315064691017233539956800109871292847556435050654004598619156336128726429427223681151878075694866943070706227015415124580045434576387885966190971856208637566847219932550257590163950123479914988818566072645001148577509861648104211713470157231557299166303205620825148008878931255680595710507684233021936331169654060285058009891974637184871191686314609626741852744582461351587758972883378857750657030472192256228957570631583769219169127871912165331409624350883094972317243230843219743215852403878536004142213686093195429251399596902829606035835538110782339543409246432223062975629419936833156381933476384614888053161936142151870091409846684525275074540077657644593769636043872918866523678696425371869226818071470186552588498257768346015272206061330852276405333657084296525555924573373416113321399487165955254919991448716024288809412402227766543118773675511613655806665206751807275429342635179692288004884184235717379743871919314535349440142924648227139885440568863850838187054404791235516364628509648639598512327625676605742861307677230009717477150311102755879922225449654272748031689599278075292820076092884423421419356455671913189703553555081593631274217370655233313974074442406990658625808449559561553392225363452019284642609138510295167330895465769057847474711499483569939525995635524893402071372889139901829302143886317628595095610548954065246124177353908368443785768159797897924522698023300721576229471903987591502606840754381143513000930397379825751759249434623500072537862641407544656619632033679320267402477527838033155913804549612227823807914180638486978349461978669788890781852681439649719613355298305103362172571224474443947135581164567770625940608184331736448399443327595858865232586205205686503677016065844492949360062016938005507804845899279254087878335114444317238031106118841122165017779577925622894992249741322380559303695772453549876622647035656171206895519399833249137361006783438635146035123881714733614735110269437951402774769350663119030664279327891435189505510124243498626832308283983480252223342152658950096843332050122898350594654116767888431368650816513999265283522600240751047404864373687786205648819982573551354163103892482703871212702994457280638397089725890777226632786869481267436766103270678598734876289568533364795647655003605608540226637130239826546640187716713128905267011628311532281666050748700890615417364347697673020561415381330717725461324806039749285302832117053140285204186446148777619599179581309195588639939173426872102472416015033504721940142966307877204446769159273601811598251942348935972528109208416318257999046185799805908638191385980118553810677069295012724159278111322363758499778012241491734570295828801898752591983451024081897101620304868451885979407862843339542894359457188792908854244642643553546527277028451815901399317037845458279302101265417341423337180853081919634737986950361632065666504756219031877104692827890436188197214123618469914377870298887641566037733608004665808701947962336212811212373677129944136849208108178418151402271997024258838705795227169482931611431999502888730782889512056882579780179312806087255020379435985379987152493477242860869074405060908259629720125237120242657169356913621023287275033971078479577862303551273326318888604848196696182571738047461373875555939762331376232887602522643693758451151849390271572325487609585056486920702503428505628482513750196001856090162074511865834728341850674429027280506896306531354387658300199590442938880644884586640024458909205976985309820065027868664020370548054400494134227285004979651515977166593703262735396349332047153992755984813818579611734221853284582499020763699012909410647855127704727311691448951808216684195067335784532670936005073407158334497997972835368152015868618660075280876058169856783621751611129741039877353552621538806056260739415003137492804101150698005527595783540711198816622515886160918412502587647066194915596550902371459475879577769178594400635947564281366053213841125689234350707851826261068953748915862856759929902413359628904311312132265792217483829608187487835900029040518874707845714350161215939769592022056137468577030180315997794544004600130843950494316007408447076955692464337292861643629058262966246102019480719501461782511845919664508670542711187212860465557581287188265157543342990489723359078035537326165377354143402833487114824369695362986093088178825937692270925727562634434522621319898653333952694111699512685509826156978647395543669544007337497784232071876925772978250898320481570598902158730846205641225457065256004500759988264701267552698914943005635105582907258535760714915806324283000368513606944570710391618098003371181624001798377091091642843505752895608061403375562481691890138787593419972627741110357685490399288270015303539813396783584079635170215691351857037029011763670962927938755512303309102271228837914830260930334132139832688008277370280935151100324291836887155359803634692615183830474351677156087882274756368055787647764796242784994581454773426734525513439596606789795860749308967170328044161440860632828355896285464958988399787560719826812003364860606271270348890297508078238399580380268907077981251613531825199987152457988324521019353427949616960209157926941432059022405355809630492394141167270794048453747254848876660686126215858693094778191321516033023299241563790958258171798419711935848918443639706343161938854503072670932554714312383648534101515769793711832302187667075662517169171576959088253108068900637322286708557666743696203935967221380845996278814776871558911499178122630399732530243512650118750569433112849274688959507114436202082306083121159728231844909245540243690313924133768344328809860975993369819564916375279797981178498505211401385950648407369060269608256802817242778356910992561154197272721588765839108419690604897722734314526372715538001499033069941101243102253298404611407364986965029851921488607698436317437088769066046605798743035540530840716406424352951203374529626801493246895127161274801013752387369915757502283442991170423904970532491817118647377686921863916566815865687613835403193140001692065733046243155926352054347386678504130625995811368990541999845020300384938060507489139009093491361601179854870200520066039899079901528336496761382557934895458022854870119664835017769729557159601442578373020566047236701604467246965052514952045245307864850009783423355359978790812479347943202457097297240280530693244956863634652857036594231742603066848755786669952956976139601844193125840548094140271895995275463715884198472647508917688920223259885565826267996158596570492501830355412354505362955776696399459914585218168803645708392492011497014927044381692231260340421016292950846659023266698486995142888053295509559021390081200851162619068890175636773931899201055439758485205820565484693481573220914478308056538665278859022793011661846790665306457505706200972838989289161701941147893760354791868625417450475344041092967728470624648495034978452742539021094590397179236580599898977978106101697361405302261627540866005229447452223626900474544789020598555589865932129169958809576436259388221617177326055824925557289926142959702776516590329007284187627131476625555141214938202364759928473771530964702405609486166500844264048657222102525106355251797243327763703629233669389550018413047250591739801423115605445146609316256525823385151560811604036871914169970592065197330264751468141986961970294401405360344646104075681335419605756850769682219223354469386208743076627977633431321120605706609254080579925198183828998499476642218156897344273177812834341090636383268589837502391564285729420983230239028870496123164761018717694607568277109532544658427945063442073988730488358740794672244667994780559652081942301350442057513617723098054735782682880687827474521974949259970518683064507516072234852989480938999457890754700374681636575044252403176659889729442911517520018095626268412113956980583712216142529794242864545588607763920799580569173010720393055106013222930513992137411358615637712190346652118896023435253631407526385990775924846569746956876580277807964887406603586156960367910316115861756992881976429664975253861968075595852196893244796984399736534947217742366775556830531073347952555055177934618310297794407502301779064143701759044085415237362022388477841276096543120456145668675895851722650031882661024949700311481059275701358787984875060940903592857623354013662149221447607100620893658198110993164800670286523261945034174560966813320319894882724285951414854424787087278914171537387508322730258882300622965576697311965708352752990403285944451256607208614244556726283825680900546475265123634513753268463802652246214948705378457749035906591827972875747854585281960239220968786443011501522012451419896098217249388510262948545938119355414662166342195208094637664488595249436734034019667191647007082713424839470366312938148191544898371749606654906834407981916045349662357694344496130241428327527941674718086310445650499036327639311539866166236922252454080537635157178755545054991562366853828026467128838917767086996265607367764775296723645911436304437053431543480961620264474848422786781083672070844562658326784404002855343266426016943492513091582479858558842263035754803046930214053829844258374693179544632038494443461718529255690163476152299383497470073203723081423737115521578973829565853512411668833075548829045362012115226467032153929647770551793825624096371727036580865890217144501323849106299718845669714449111053839926164080839295367823902555061751743820483990844141414790760346634813267120304573176266791477958029496811528377679771508766806263296327052681605674491639414787185888572815301499991365291409932777010566479987465438306906195695253347754942519079594621026595798622382271612017454773498912398022967381138723988319464781377500341392665825865599600966762432898577327807004019360623605949585017167373883468358808180545174357566111148114518883778645142132676169811861509316002579061846879973798889003186249031349169728338717350660877409375808724072822011987896349207075959769971424651224047939308333426617822871688038284320904035606420376647611914921472318178901742847348314817360522580186623699149166378243216431418597482945771622069408240097931679200815300773951867891832665576934365170962958760260758592365302931943935754061266362727147362300737508842976367083786144366008527428229908495421772432310736011014352382939572707931643598347152603569546718012189524451877984464588306178188420237037664386905963203322587962477182053383560664324822618384151726901345080554154303007735268266862540865696335703413098133550436229238592877128484822950010792142529624240507438802226145578282123609500352003719731645718306522986623634528615362007339582316894685324801629172820254391777502260401000288710245647281978147071964102352973345286355455034084546348606011248541975699669965530030282167131093978264762365303910123509526455863857807069142415502355074843400243081180853624448333169350431921804227432563308741154892022472190104750619288156891827484601946321058177531743184085968247365815177797852518552800198566335127411826262298867049738428191468720432939855737198081512181832629657681220839356875446720014030055763514774047737829418307207751876871841508742439857495075379451133583918952375836176565508788449381982029003967058034671321517756808529470226760011530346141072016446181983950207735298834275553125552656569899264280562808829220104652408815079970914797569914565156320192337290494652497365229179893186679175690837473503204570846024215923061714267195379793752896482464842177111745256046456874056603496490454628446774998020607195339472906697135664223120841332344293103667891088148248471149246214522601793524864076250382400082776209776928312788197837983149388592072983091559515806359185926991223145548326896030062369662703711178899689909808235180773335787594459550401395016921630336804550645343105433530774259455954727059206200342860536899606713090493550912077271276706328924769583851302904973102378307237550436905291565748890193008110906927788271247512077721366001185302947025082027050515108196594727966562788083058456736714976434540276005637566379776313372935230108381020796423316056197935113017983890567622131830362067288751800750750346429371618988596481204133944876267780430741799848108293949714122688733561811760786583286439484134843924662727002973619621647882266466865985132682606868957061935285821271674965328799053287738643913686523475394669796598411784357742178450738327589381095588655286270706416282069849175515283164757347127005408006547565841194345806815640263388695590253831198932615859143827679444930363979829462259273042128298982905418470586662534453429614911721016448150283651321894101893309798527214402742818886611631703716649509666986853778203109959135311600126137152733556029197793713258484529688236734687852829848277069656219364625908910875751197533760281976940808770417176490351811656120547416054026230628439585940388633538675861358488149643753091850373255704171779516163317626154480941460833286022956033582036708122572684088705356788728989042657853202875060639422993792011865845210828849745474693844434575223398929341300207556967909499697610429089995327808174472362605266204839280609438774321007218693040077897279932731347571038936452500089555587114874779568453351878354558992659333741785625986356433529066861807874125091922413219170874507196263529516099922040980801384849840682887659535099544756855264937330011390122645366128968712839473102104654241047488216952983405658718928884011129567670395579934600171600614494202972920594179874321600151729805895483282707969831434048882977785166409938737320743952898208225770862936611663736137134102721590720244263927138398760173276511014853553621199099054392807446721726961552117446638345151754641763830516360801045224929613726120253490294361206334354109482318270171933535104336406661014955028952350291881100771010419214396992136298803680137045611478870031286618716486873124663398913258533689349495989489920660916214420869866852858983496471835170025853796370846052042548812148111349210973724943991514054193189056409197732927122677106017584580107023756853092514482353761128939090837786785104631384374995851555210373387678263827611150224249352603188479104898400136570135015468186724481606164752283261351309008302517812146812630375577022999056447941202781886899989692605284690461856261008311608379841737591086250937108605511312452989809103555062618155050169593682165049428803647093628895496297862770156493667827749417317681255130287409119441774939482224503341032718827776200950455011509120430268702658760012571190155234143078786378033093533241313574366323123926365910042285089017607255101980443412393474852120211515471759320402900740710061074145284143486463331757920191050636460912465721656716364396798166904746637877062493426862796653090925015429572945618423824458669288227093132554551675079144206166691533386199428374477812749604862839977702020160288632412078014767177403616267556465557754278842559109503444203279987910285903812032955743356010759737397336777000251320284968178554534713917137623625869746700001848651699615984875121250080410691862288305114254426887221102783763504065528748200817253578687802722103071503714870220633793152218241315060669829517006151102885248551260969590453570751551510863590099798405996315853309031199567566983365512763055220971213491201689008847185179786236800678161574736043674988993899871503755442498380728307640241069933509080768576480580415914488744530917072722307595932097318169821279960079596518078608529264601514922215057162940913136884331672117277881747171029170224017489044370891061285567006874232867912694867419293545273299025647385094589685463079163828568670342451275806560695276722483678948270318977122623983722738434804230616649640361549631427107186267411499041515368656823164384420019582370515151614796597730505268715698163687141035366283572021893159445400058805468286356713798918995101635982204638437792730690144048742590183289663263027959545508447895286347074954833793169159796525733152738319454947870345849434804812587010877839575844715959290704925382863887766072866289613033251807751892669318173935018643127790340951656992123757037909075986343052227894439306182387788914473769080463946170338292879594564201189455218860979850210623149165931032252974242639214799929009462054999391461213199830362798155398798652895616579593800485893312561119195375424549896537530554091580818745508826976410671900130648143478465385398099510717882213594722230862863610317378711192249409317494233321746930405225862713440065549990641336956429912935188295521218429103299346400884737052327807175038196899654561886617428060008705173739253869610829585398611479686350980805296900855039932200899956956719633138556667593217764762869818019916482250997661245148626259955828189005237846322156493476445181675977878878903958769867944063905593798071538399315904650889759541256642171696837467405231051543776515376910575362639846874032314326558530443189794337218267329646282796422796967252262547048747991830757748620656187837248285504612135660042199932728971500821530863159060756562009040520961026446473996273180119207836588112545722582868297148612932081547212228045043876441500889419826168754146009442658137879680068593747152278926837254774557390556056756051810083210382583196773987048152216541594539128489432119745339436103206727990976531397334875420336754185371808685971134309308992687555038418653789451614815081929609028107693223298571592417922372749209930160081752058502502373328496883278014381771679209578302699225750808206591174913671291643436561755660000918242945778709593415317644094818240434662439231430448419890142054860050576736209217606908687081055347629627473867317338927718953275653026373216282352667310656677791496368789225711144186677664411951167119249218080975353957779555641953246494777072572052179268465305623183820858098055850812293878124521341359248968450483609216871584383258951369987410096213201148917744894713718036021397478972652117036685350782392003885507687982674563097007918859541624653512148680186577779045015394401807906012953351163129185391773219482079845633109271612862316171617680326501001982789315621374553005926890364582216257809325379721942564322388740295099753098825530775033168905215494246928154545437180262813927945593267385457407569044984459902544680934278796219190844604265114658436290487617427471176923980500049401794101799186342141273406300036305647286322000529860048482562241468951594275476663300279630493456697955114193325482406392107286277103684583548360262822225585825438242628895556576738356299043798847871109899520237017468434370314163315837621316793075272213170886666344857804868970987264865324034099094624450462448061419752647972079293811637838890045292168494364487498855956388094633008730098721851591675151252616324575298569944080863365916792284165288135644468328927355697324011745077333955223593828316878527434688826539926514315680985041309824119935732725180565103776991909994274547352152382689584173592258921406555991101368354394952062787515618248070406567892638227945042193954260189616288626757136050683320200768022932891191171870991294501221249339673187806054103661113028255651974550384471286717441790024328555380664745909100792888977861842581106659673669266156421605279564529966175133727758765954413159793809074970215978051181113851816714487487811858180442614674376789020605837470799820917780955215956071625341669371272864905976026195544491249347995225078639049979150518503524659007640821992924024366930604157646344517388047389762394464541696850859982933622399221107943208369369536643633565704796971756145654737179562759235227783345714417444147889514374933631930758428319112729844892711347384949320448215681647145167560596515940104400627689550069236450111012826747463767516503837929745739517966311084434880504746626163184631700749468098251217427623656436150121860006591543650394418762162046791832224415090763696107333874456237116021504173650107057133277724311848012110429381004100597786028160216703861186955119562966317798825632732743451830619157451338366492173352993797298130804765420808060363842558776442245545037838743464305153762584675142005534187597261877463703928468175214826438389873221403990598348290872972750679813249013087220633730129495508909788653425658899666118844959839797567170158866640978181530756625701417857672586893619525143376008729380192013904061136162797912604062904711037597865475747828569178725365372541710936316094720343798406221511851896789744849116614559916786678408820447638792035842449265066669947384235856607310549132782744808132290710092982902800903946598504248815795418904378210811446081067151623694164491567643384659165201973233093121864140482168281779804125318325932200097370370198390360459811378887645103132973689012816737380765248835914639783897401252887777353555885865266315008973480533190028793028221827585194711211040743784336710161261845619329615493464308554644066142996209271042303710799614123106160569864332338023066653178228642032814567947435325755681671232347762799125380974193425340134156265759378869720350305518357351617391694286891346976548357223427988796925656259954653783739874400598138670833390770071989067912695354403234489446145399287476074489755999709874266930768637007191358995853313843810171275495559131495818325569410780286277761843704879589183117479350415929788015504092818351020233933656033086173300231499581842311154367058958054548444563838805087289177255796154107158714553547366844785601712873582553645108940383107658936017658963212702689591919531575947964415127876743299405692605896567563078756632752637588056148718436140173498040900910374251348170331512059997185964279246674324504547761217410904509994468450129512096593388738444420414116922020327992177044957215925182266736885658154216609372631334586332162607732312077838413419180827429435787842895820717967524767681581620667443142882308657222463594118020465253129367797339913484768312837488057804460537120023824578284800239471044404495364501976271930636020976863549643149411925660852938211544977516494739864012177650563896931085785381406921983984684321262475984454755923628286616854131616924691971997819468187777300387271189314529140207917744148014849128722442067420989362662014242258417077279076280563118838558720821517633707212300081067729109475378983589385169353007981073848734743699904837449107424645567959984403936587731939690915112174688250990581225946109614957615570445496709293447057129362114473290296290559494634555844204915661647047540494214854625547711917635954640584703440336489057370952344095133171311172969447217057270730263629496754823759957622672919225346544203112271903719258660571119441412153579330511578773682690936590411292739844325217349820006390330661843935835654397827837755997404760525570278384544358188488323665133726900118845488750132429108161916186743640604930188579586329366549832157046327096967843253050783849926988625536883220318742389850419068947470536005996913046999359550705998789735208748450571912357379245609967416996918656308814478276786273297151278467870258681280342392923379692559172566504864936299648769544028262384839570686331729384048066364560438512268397101680053281252663931198478029252329300860908446307536727831030574376349557731256159321176660381240722947192270617613998485557367531720279734301721577073845878655864794472137695813245725825768439023435095258821771679051711288482601353524782972909006566316861279097125777876145138821533455843276515444290272173617130989798923839880183953655934325369034041132827700003059774908506770954739093894107416645982647348565985509539851587111970354968067875005044157323067875223857085801308708140165726173859493647441910123995676898622158983720061728932627802915411527037939419879822866971754827669388668201487498845987597352387887119231753366456993500412168858591311096148643615731754950049690768856486089617860747282695080260346689872846753334241835356537906927962843148732282629554083440076617223605331758368671146093201151558007387207394664253362970587407847950527087658371100300309593467911096895814827034299028548579038580130466064565558355352505075227488178861430854656127470885093834385305449259975126104623707223016553367355420296701056686535516437252490522526731084710425641354604899671749944990821638335690058008550244467122090931534884748393458742897966683978626367384785964243080282479617000021184191133029592243114770373353247249223521671009588975188993834471843128099943271549868342121691898365488521923167125239697192011699398848495003039712256558888353523232370146574531308783919023411353060986109102574226738988070023606699954853656416688284515448049485098610245064972081907206188737727997224978469987546209786606455209473902224512008966741288731516080486450563956756416651751058541994450561584595585965396301002674281623056425494455937708122665215234111537191468888258133665029243104754333847383294671893592712598442890470198742610668935867660240264708919989929276138759325329454225828666342419496384651336786559751734875163496765504861674648857403830344778791736673029830188598326636729628603273180285199425059745320663962978334246894567277528622352180429136869387966262436031268160318189552965284071042553070133658108283921165723730663859124317575986515848603634234958968013991638365426340586705243577362216946570633733190326090426170340938078113236329854873826618234813203379818339121838360360356244970089540113896281827222434002897475358625780429659971098960694413555701982868233447779253264302913365224764758176689969750494322244126661080447728284271113664590167821700461588151374997362020045193322854424267418446154884544733508300457580309955822064811901488964651109362630928970673857997040665672698306670819876030672341296191243491182221851523055003252779375001080165326919453813338473842236813088660217962060122809579103636025832144405612208246295894241941927423442966430581218341575525709406085683363353856807566753413017742275944823678435793907480377220736977657017829198946893726418951111632777422205625097378018210476084808419612133295301824951999618534737740787187321439836613165528648339240425924612891191728477157885960916542521153361703861590121624631320164705417931059878429583754788467939198671291357392197631555457981356396777578823077659294771982613966947754923862824095566330912887771549616510749011075363529192516080778916304297222094176116812655827920662176759937899989223653501892985757976119038610082717419654563129826560109963556586648070923239048443215869069255614381745494260825666282750774955028727500270981757788607615314537134228412946410888966986644482064250523975293892730664559708432586057503429814688046404088054650087135670990652141898607481010908420840762007440984823430550553463713326414234622311758767182657391194198148348379689546634175939097029179644919459746763698539780622299879808617499810721129941669518993927290988288460203865112886143934401454030369495746129907051657408438782276564368130192237805053220840243970181755486721414004989589265225753961674227285801322474015085221339879323586815724008999332877698570950497772105493748307525954725890793233002281912671175957148112103862181362344901692866052534446840391856370630339401140301791988972548680709388202064259177506456381015434127968821352398279204371934789596195280409320150232757479039189038949207821968877063446854418730378843523724679023582023299389200311537013081977348347314670634855784917670622450292493071228136150616395546561845242665908915242638239713653642867177584843379752506450393593467430494323249419345115837179726444976003031837525510021538550590848199575127462859818178039634666997145769574269558486217524150734685020232796890286743103412768006081151034614301690754063201532192117550330954014507126580231799486823686106776929397283095370677023975234464985219594305203574405671838310165320238818385828707554603591421216552967669964606509619365168662480441822175175096143492971415517901280633088955363970953270571918050491016426341012643292796629260802517599480209811083996321335190880505319368526111109442961541057360594390355043971122022255372921787401097058397221717413168713475273714006650750325657194003545558811011235392267719870767095359822310934079885679883181941842586533808632193044019315944216210082938314789654471730260698966943228271888033774394755415205670939088571610120976570065405436442839743530798727996031597464182582296894806744747330579377668969993928536981062050038119634269311031203464092272832465477441583311763411728352536636351717938534879247629188609562058041663420526965248799479691099964109681201841749578115877773662875511506802826917419134102901917160610940949795826024554886352607097975635438971310222775617328181943263642095414622803282643216888816311461314679970692005317690666291955272829300811018900543641088738757192365101251527474154050443202882007807450536617793919993747060186541009313455876700509250215555987715161693805958247032590197510040962725757546269535915965267931828213154811637766361877072188889803264376415790291500506938467788678716968719777325975794320248090339831721496920912862325632648089889902425479239046677351947584682141636414395988281423822291717511199612107773939928806638794866788445099653027247439765537206151012142282472398604065531216453747302849131036531383092250967863727483556011040321848175015105964239084048590240500955451849648815615352720080454766357252711287783614296499202349002729243359725388993855465312196487738805894757223409060310143673261561356439202002042963547748942197357484605542589152770793025794068011959215741591448092968557562141653746025540335089778728535096058626567850236949214615749816257340065267027784170275834310646425234744308554604952967213728343510283128848891185963255858874883087706773901268667421924208114906308711719643074163322920687304963326930562999067873789407299097597536819592272990468723701332348820041856385787922564293010035574404321183891861361574260720494932966890077821464547138821204077491197308499647082592254273066863472887315454508746869887331071321785843382430577553911811206116290722620557343787872669130873610506955448485652988409436618077158026824831921551491990010167636261471898974189334373011566185554327569993470271535969926183948915389101793471994419409105838220048277316363115635789097495907129978453063166588784628953755672638656638461646255162040464303390493934090330662230889049910062953877196720230623098374950833821905106138124707282786555620158011435833620422185209941661342682196616009317022053117434494816536153408791590460966094645028259097633984480233205490892808283724239747811998526949947999629380610952271980367911833147303712087264566322744704820942845820556488048744050428397288721773159924063056335326436945736924174225117293016105135424207324137264578406930845988677900095344648826864991292674371360832501581045109681978334429642953232192555999535504736383059135156183528383342238169727515294725502933554917141201771109548725891591103232964068255153471819942015906250952834973729799438584515670190626827427428610617880006302938661906172245925442688295581616234050910344260206057002847711058401578252224546187478184973730149323527476674809811322409396053399223860552710255061284221132633264444568497966376097459103928313200419347140497352634075419200470288943959765335499768324933384936371222656917035816276256559976443672890291247161625192988327568662912960583740158261447220204620718864722084935714551956040148163509348053743424027639993372997939768284345047749383697831136831342653937871577709469056025348168982155324959422808951282897216258512520255396113817884517675523057238370339414148274227516832165417568586193801105016097899829601130262134284301450438124654533090885386915047318206665490430349642530556428925497760072044509064418201122198122937976549261823714297266978910061953856472907107278025652020790407120711068035734946660534623308041743356795916065844564096654617351204760808361373333631482869561907032912354241868727023016372304802311648531585129734349494178006897818483825695003756732089859245229517566763658774512422723659129026901304359180328460349731523417053768372392781811128401816521763694036299284401553443555915367299425742581518905862863835289716917501562639775609380002986699903627316356355306667979066572207224080102782752009638544171481035088304437517081218224496398153024218510569218432528980916527359964375512786471277544157675184037509201383322196788397533496229368490890053715875049617827078024429700058767543072423534475607464501791676100388476778319461416866246946683934190129944825813134530161750486631446600227891067864967533981721958916006346912848276094392195786985942665431284501895430038156937901704180334329177344628070450078775637457034825497149766005222831881010741252456750382984501096161570713804469431874439336334200786229745773661885463461083027701736198716943045987759691698395250728248478727855072435063726978292244407518422745601585433146856432406707116177994931575578401919862715404540033749625527965217563864774016165372854244279304942349705138366814135077021397534991449872803903667967810970818734919548788860179302177459433565799385741011379213273499151422913776710552335642509782764709037464433033968085202842146673305158996362693011398689769044022295270113255084926889216410126424205954545287377915345404933565954210343398333119527170157763067675447895867762153365248368136606033963737336377035846196070851471523249088230590019753854298399681538826562439380376844148996875908771136814151521179828239423039968721245915117487838275073069040374033852693623597340576426683475085358435837748202028611835550476320861329244329949410517804728957564577096569462426206694630093012446696288139225459694860171128946832670169938534070785045366417746870730720928197382912119649632865331564903787565698932879341229840713938815942756958833611369020521806565099631031447569670548795798758378062218269587431181374718824095054562002913968071586498794099816812767432824870711873028899223985576999054390571939151988983517268104866248275785603068734628602531756446749458578408388376674346595970255875172702022506935306237421463664035533420929089608229308408233547219066923886453980990096552935983174593773011852006918184996311720162537291240041488845373361902461402965287433335563646527571667906752673401796980601973700202536635456457561628478205580609594761089202443879713422274871847564681826947151249624559468564117618263251280595706690761589717623254229483131703982173726233597440697902859372909547760181342327208584458064853168496362954578143711290963665001628382739527119866727689700155206745173234204413613712646009439627937707532344240744774019485194033182258483563711708137659552389956332465536053524153678377435043104558282186899039049072734456215809178559350128965145829020620054369869823029448799180982359979204257322308306070644501779694077515042539295403788275015359262360369460438256774808557594152097189974297104239265861503079864755801068303670098493264841371794026858698787305313054663983369902728650137331792451859879168673275017579552848473135035568785405894263247678191245809879622764570511269592011059962471882486517706256833846004046659325923021223418542464658290790973200713436525860727378654278285247326432087528807490046090797840412085278314274125513889730187519592086304006752487600591864861922377200801325169318236064497516653931645157208889563307326576098551215826024316705535087994112055919391653121532913390063392219125662571300551198084072985836505178595724235703121244205669702127623679764151533912221600010532082587530986557334127555734889837886936633218320447710531620184045015327807097659769653581863377461029265301935620181998403816231525352036935319700089714047264336382376589997076506103548561737743220093749761748219201086377596093718702729521212791827127443688840956394959509794759177891719534084682066580176987710379585967130562636048473653022857938936019398223156816350700555172174905228946165343827656723437410505271813425012781146575449159544560810047135006090676414835416315083860995513797986769120765324230891691281612465573710560825044946824169275554168699241138643157411158500635830107365642822010953492508761435399671870778685580485164022955027996107800595513290987650017501174396561606001972462819611919863627762243980475509366145414620048814438752694034900903202352931496038107697924861414799113571525463775824302842444984691809798603544627699013567304586361775808492410009466592779188569892215324200767137246116608877565795396343847470472723693596719586990798073700136069679797519217688861909455671922273247456874124540813932988140002152567225195596103905708613663324427479901482599928266133105087207104155401085855101425847894789748776663026948033306008058816857645987699515178650324969016977333728452213345446989894096898208441420477867205815224079273854645628795889175010372654291361908253871433423204039862574294083479685175951591661525569829473564318213196340279788853481903885659823721975581618118383393273881617349733478863015363888677679475797629619265525296456752381244788994060015428123964277444138209468214721728461606555212124651903169271363931358947593563723401927457764013794645355829171450151059541800560819631153738599838184416406693561365543076641781958179517904486879092217829605782530790113204139140455909344127996276353908290974238098290247734261378432078827475116069071716968652763661571771487594596760505439390305690215633883822076840203355063587858911129183614098798305278626245798348579028127919161246456511549924917087978212795308171497499129986211066760962532184165826531072341523205060732251702600635172645715154883925185759973107176781233475653978985625958868784708434727693665713630846866914404301001434258653595256011699102448115988410075836561990608844676063200991362013227839304793539269784104901052673302340762948450689789126131630652001288660833506410513787950748961963215643030436667697745016717104010532538999703761512428987703904847150804323198365363778773720215938144063108278361273179424184709915654302108499513363556984078412586804289070081436740689555825913505479400523794568482718208960462409454863230197111912794646226657706329791422671679514708481676236288825414240512327700446035794685264285753685943893987848563151208901690630762935803186917005449399773275819553143107171974642724811318680565361566821581782190276630133623035542387137545284518372837101727553230705990359275262797030518325657651251609834220107931612135778360573129400061663884757252232682428855880687202681641581416379291217199783817540489017343964123663090369746651495777636072845701507608925805054539928554657388230880350508887908420196974250340602431098048397989259913521233944944224672319914229932417809281261812186500303825379508153036161647783591823098422539528513947115013678220884606975275588376305133766391165078197848099528081566994001991790119360380490605150715191322622100160415102541292612895903810020366193738808640408058655117088144220821397005595806196796659521509711257926560094952656223562997045379860914337957986403238773976294644725365908068215698087294188011761314891841140721472096138463360106226649891330505955146930786747924654573318167315937031744336692178716394858427244696322633970656698969209641612910978056188983012879768218304704952592721440924498394527637187059891918991158285369557253138189662562956597082287462422985732254414545674961405747184206791785037394182968440688734145869521484177977581205607476036146551480125231227032402723355932114700842375019674125055049742733616852301267470931797487678538351474291343082647714842807158420824232526030657750877831698479103244171058244500446527641266902126240333113130465135661410148324752439872660980034369086979653661660252465842090632266395809884942125522145246155032506480863103470248408494673806605075272825994037646087897224018079237507343989406334033726787069793295849213101018412379653552830648826214255662749067623819493262473170954201338053275215291823358294675297020012723303247895471289890848249509753695348355926193674153602277918989523929694429194077234225636333419654638050995646591292200406452460166534949651631562653074453779580422579571015616125505053279696436519643537692380127259047395469411249046021309745896895501759263110507904451444656608512614785358029391660445931469286323832273005409156725558913796166067645528536631488953229555454873028122812071484753162620784950669913602590314567315968697610902072904356886170564444517027280037007123117828860894133046303594278164919540095102353284963401599390946272838752477035197943833056759142117365769387406645063918562122723261703279284420868462792901513331212772985056738818249422899903170980771608218246453251620230907398573980083594842328389361127242988569269692744157723693448963760569938973942405266334492099959860326194583965292047897729368485017031643714619959867669139387704629055038505010311509366372996084101874447304097285081950807930642057130552731727796883898860568408786191895847022933362806969182308523215475679819420707336898158013232875462843723536515956942132625591377351513496802448092605907894677035049935174263361037909509958787611888976954495927670509528559488642011971661735049056204671749027876459790819730735358156807555800492251270945757701635044781574551051382004010346801465776847603423526497405767753181783367162670756425519179894410324161807761145791348655476578840287742915719498578209139923256010150858439801554468835024796494463185693877621912816999246228432537422680902316033064704963963956531045570465267276287480323086334339153599435425718301405505055358581449292101905661644327198019229224446870995098653324547246642522567515136919424033311588192063594396767048870415351215209440982495927857915664029322998909374510679319951986701492042655761887481387283217976551391428228336947990549847141133883305369239495262276041010346851451332317365015011971131413298774437033827724104324472898766082381297332591671646675525128541126216911034276797657906026179789160031515091677414069736455300976100046591977234623487151076415485167161646420633457665103667355619384709217615860573016203539758656272922194197249405330888311351185983198032600204452326040522195074326613787667051458871212939851325245048425562890305961361828241547591478192736370365546865776989770491542220035813305248386092597314958902742163291804923665318841444204744216904772419067261554843621782536732818142594777313747058181978772220336510404157073790651692183760166728025271481673912689559717112860053996490090817557428162350838847505241031794600276524894918912400448704399224757998063596595385547850501988307164531489991127636916144760468338817755211068485115709460301667206489795192848278289202610444420730302947645820412761634555294044709343878801938978113561770551824218954111501359174516413479108287377476265627813352061343713641516983003036014968832135686648838031601169811553026444354033367773778344310372403455741831879976243814140418723961439682479287979361070168318885209667944190363085596687500707623552373103938390701151112559495191716162460119267200515361778829103283276953229557720297189303762122419600632510855543680062996902097459144493022453115012000174999837105779571035381605129208958662520629145048113968334808119495875624852002202029798764017383674749898593139933948110028112752296551241353165926883442247120237032343723722849110524075862424169908036424719116858299178228662908413934625234212039348834143126593495336124073807608280201110493260417528798893740595530859412186128947649230772710635564820700932183325966448301949200790552246860332196276295955552095048796046253198871161636119554292996481897412858144010441620621026190050977835922286564412822100296754118576487963565282648105741888011827180143579294246476741704209096324057490588381482711853846399941204872432565549267469416964293780606177461789752677275990233704064180098573289307782308616052368571235058933731921319577399780103265814913980155634898811432712617235039679618842967156450921939032532374828277260005966969073882403918642715550868120872207108103668934876892093374793773397040144267924375464746019566501984870327661485000022734746864062590610248162311233563216703408564423684079318265889734234797056474256417043360504273514867203592220406511526096882920909119604113651949780499740574774004321805808233961034236134852851598036828578917830298131294541048204048169978471490331364264866480729105651206029759037366200106489030842885823287590099907862151237835188211329904202941637840609602449751319977089430633447972995361647848338604031686507973599642698093367279107519926115473599239199013744098738785941034926842138376282478154297156206687798156694833274094903269803645854897492610175800974818181645221604535956711875101795777445410318977534189691880355722747667052761511710531908401108714604272658598739928322423517790418772624566848938619468339416625989764236499392067857126661399011132669990031537210636704622437317498038899816355256384972723309416309379848368155381011712977864391032078708877201963485536019707797982081269911599758064297336441129248189108251408324837925513210791521287119817829777915359534738588377213322067510713451058304042502782253006918706913299931995165698919077512811221866100896691245984935869895438799744058569196756042796114049657063360587722533253932978594445295928883329550655681414427270176351779905087235927236193872587245736892634590038204879558136263109463579847646031476015485705041007701224315403047821981500504723856560137367291846234435697055174920981035437158376816391587720393548948394616176307141061457875625088393236929588796968079910457712520827986668860207603644682020857758160537865539270139564992554330253424569952647799176457420469519141381857729882976838709587936005809983010982782315153479950125032401072484024438495236907438858743584885466016521852328248047913835071929885821998918743622029406061873859344532740639699487533902515096249505639699871936423079840921822605105232437986008572423757817834214290969569859658704220537758552033245229975678359051089611810108522637587192959187009420417079071793150475771097665333220802549886053090465128516680190261573186878886898040337095431356846268308806699906967912701593974572000696828773293510966984582149065569795845782442265601233460395007196263404020073165467405452283895477848137921036837740107381783415800244864892957132507903793337490071130660911704756589084730902956301299874696284251785797779220847046619503432616811926192264907746416288645307327499343059534841271145208432793777983588899639411395659968386114258764704357308416201680861301731802448845139965381906839733283191846268728618869589356486069158732450528573616898257335676922099850273254569126090653774598079977259831592724508232255462228320741619449984788867590419218724067366710059123341417833094860144462974749902899092991088223926434616937430596786026474303893822996404131980848079112812053354077190272907529859068750383146323678273957893811304577040349663775410022289890117891454038640952784974381899841182495770460033819717477690969338206007427678786611952115895972789074285491826216548531579675935641897821196553194194791236902115227274089240569267449436463605343032753830963601860523391705817474734662402161211664793385610343323254438277110957985001818881547963795454871375143237097452381398682103353212165019550648131725584122427496134174102558041164941461248720067846058253037973563017847196311203550528891698094910270945388736443849643996579237705380886132634867851057389612152416477092014553852395624895107908739955758866989438578644156392956185477199007297874215045603173752363187169803909472482227639424201608974151037800073721696073250945836119026128608017312846445950384193833949607358450951346000855419566331502237076551512479121462427032711123608620262948205439320428983080540356260238500872814229334767418257397145196601586427361716157747735610909286799701232443753317712458996715222432057844538854972605317034270375702275713757872656808219635551109671081936882597028434126951665617931372003844024553045620884864015395153786478701578938282504570587088407808250833382216786323840360305728733522271246998211231718261240163988735718147181890632944729653175167201947935063144742837314787302779144356387189153188961156248097789749755747974028702372783542329664954805485832518907415388064427768807869306274582516443128318058181944503179096693601897991037132374784820289113404683873130273645633060226331149699268116787560419904842318659322301291924736052929979065867458465276543278116199945215708042267800514601467473804777418530356812802242509420846531127663340332119417602591168345872722095300933571831943839188592691982348794239236426301415217892176207333449934683925311008677285783875033270590656463339906672609386751340534108476865404664953856408753050331597784546428312502744356012897686165838912539510242512607835791111740730552133004873798863690856341486549400292694726439251212175971572675446842213394516134377745162546511262789851989662321113762940247562830057466060445231912795441183894170275648198189358533540084175619970943663688749257021054964248408818197051219876936171516942704711030399051204276867133895031695457038054392267690992165794984916833648880547579383476309279319694508478696353168740945019044015668839799030540166746314609212683248671396964402616033279115446996743404288433216988323272453654878087591121926753638293880054180155038075533953939436625550411524490235496872003069906130058606345060706531625091918228372383731788222767976030076431035602996617009810670366571820244585405354457249427308897087695078591676769051102097668296782025341157130202394073160783996487965773808343241251449880047771920798664821146874018342989305285024349198615397876584020358250281878978929192076482281094615918681785687790885298883226415485658680537161560210713078869814052272963966191272574511898740862630258165944598436995746159866977363699117368957692151051982156220201258403482417303374328860671502526510776713794776261393958562883325811848173599246679209287815138790695558366271442921272857923566216043699576246345099353056648858558456303382886490271148388276499546514731086354541576704395061967906918966853683107212260938707978807898704328593318539687111472853367248785665866562605060537018645767461055210534766817660386764597973301430647866105130637831217251300890083998883048081310173046810841161797070734224484027563961005011022517673458365953301394329270419681838031153969239043602011534658596977534918049825876791772736919427873158194026121471158862174296696569689308759740488406242927495068235020730226839149580484991084081824198583089674682802343320305053141794450916050824602149435007961226727465123032686214000532411180950679438605406421128487755594859609780963116799149711929524480142021844914254212830918941069224066586566727061463027321799929877129050927639533093191389432675911027319508285336271325217838447454314025340059686508093675101399059542445483952927011625934165968812995845026209079866387959302952996907370135240461023664654658451969754088310620749025557389347446123573875928055593177355599939245721174062259249392484293470887399751536163756827639151643479869251580080846002862008014122046688501823366408846948006446981339362638530493733302733714044665966086418902586185098044517884861870768425978299938478221961875654074542392674332745511156276051592439165057721276931494383665186565977761814827159060923217100609465823800485164707484338071612166954937131450475340935275323228061769809380400588607390806529378718661857373781621209392449592424470364077884196267129017238177156502015792866582719617985233128680432690281349765400363151074118604257925986038159683961437559892272436681788702079236628980681951810141999371024417874518975996662444127979591626516444874492304328242190999244769013635819797438683710359842848250040567773166100494859243036135612866597100667072840267200758543703765256129565973955755946733601805201250484867942833820177692290025774227874179332583088595268611372222183840511301296481930824825992976618179804486786311956463214125641438448037626683320827325887160347903881837208331994047481731651454241613946697275125220450404573772344018400340858440382641665793649570990920454334280765180673131346313489529392344176361103228370333685948984795575715605064730798401409300353877497451882575191387631855067137130946964442282723862029246227857805486237102129476177301033340332533157572603388204959632926162523008975294153306484506907581266476643234272484511334965497789448448161170831325467983040184643990131459863847016159941401525375200284768917068481801959373580174517465410999665125656411929149551520208321758187302087084171567283080390525988049875392667133540794053715808469776368053506870404852537391577130082257431645614506746942100687540415821231585044567861050144303427262104107673190990578196299925976098253022600414457772603120489544799975068872937797018439344595237905235680843476276112209358394915683873750738462236689514740407007039651752826653913533601439521020842688848336787078300827248709400665397512108752707804693601899864628519408480664966010742134863051742137011063526084240681718122497564928745639438082862985935923757560605280863720327394507332204592786752360982457842584850006528931173846841376770803216273472649136514522473653472324289762348219334257293666530965541545648724675042283385857033631482972511849428178395766797762510476146062745330745679502979171689949788562726171498782236707196439890937299550286588767779324207896423831338303042597600741831121766885505888575407195411146125320253281904063399739648568768510425105153360824730257196411735823905367399923339978281714304867972750738066060971101516668866639288714949780206745540222179031140980142773436457937787578710260777174100061765930438251009331788895805153798201999297335472581389047301880336496193146969492374356730518089076017860392578135918325820677073942272665396441453505310053012624478552460455914643262200817094696751526769243099988816949214610963213540289753063920912539284562411846504837897491810339305330847414996266544593829213177120463760783365149838150760088192739440733779706972975860764811487755779113488347975469422362097385360930529622912994845449794786417212395570510466838309073754156268442181397134182143739542169710539729224087340294602246734240251805500636466726270355628853349327265976245123653187238015015138913926762616224119692833346687985208255327037440755585209390880181827478172985190520410107220503303951994849153200038508212731761278124113500555819186404386151337634981634035884862250929239965954627213357947573677583052814868825720557087902701390083856379012703817926770552535640704051261290979361328426200131665392507046988577267408324191867228090304067934117857879662885476772271390793407735176929702514576847901881874588793477511722144468487286470288035483489168668052575576715640054833029060544098043790571099123546585327827817906082784027749250941667502155054673870494253105207354712086970530727536992584488240981292876471283779312799049822935504000587252034759030174363602554501755970834831111232016867441337632388686735070832705376167085812992078192889017541238845506583341717085751107786763071485391294009786086710055588574873144774978348969607342676454231052624116759944122996479315796294136113176921675915434700009700016917770769480722861654348219505796726122263268828652339286277478703573566314539324338803927189425059403779829507700944744006548249642358015030369441117933486425527639677060089846639739804041433521939781769791956447904186305262787857117573101320950954060975151524367917826394514509160954678380549137748343951093003195255190510439735697308527601789778768800557376238569041988366875615904057366362261043324648567238820174084041818692475048518460703135702779640870228057002521696447859125492882271509187563209008381911100742107279906174040060468616111408431431944323801773415335260738116947012533763226279937718855012861058942230254743973497852138378426411786279411631672731312675078789380096677947041108268412036478044935739514127731471052343382043317355112262592426888544564137550889277695240542285173003140532369022652408327012206499457742696725149273224414482259632312114104613834661250913049413959500956332482999110654589551185583856808777652049213071922947993268029960925785623067378237801715097880844075221173969059379781223995468490973012709648870316879666870031493571937129649890300692772056365878018044237109436904126225338667139944748171137823232415478740797764752670158836912512029393067633066920267574570428793711501994047201222338463176352499509165553136374841467463268818476365639809755910210525329859050265947034808603816347444092273829799601316710031483600333749876098933790444201887718857114430132728436053079599574872130899981414517705739419903964965266459228838028382629633644261692390526566768222196667705544698507082574728238275991890692860188645590819694611442361561930602344831466666023100720270513687057472868530723624843179754350288688386303950154221883246816128557232024075807728101107392154149269196634248758654140524757704878088385342415671002621188718123370249073188846490801494552385392280419252074795812947625379631381951549184965578921889844125305830210965676656015277268358543750623625617809508975150200202677624385412157620294365082653200923409467052812700407836966789676676482104933320981243804037885545986355336998554644562707155323329371306550662886189876578812997508105792551106254243097536424796849767067894922183866792081136083598288276334665029468258932903468158941427925924011538343603046801920095789655505501420039192838264268023155602494839089117120333665634301762306602941246651630633705854642280426363379986985549514440026396996051786454633034775511188709897704775353120197887493279079646502662903488427356457229230220540879691086419768757687484144915777406664120906070995826745146863364100138214559586008576411668640250031552848905364125993776538965220036388985049909385426499650370960384244659409959477176145879600631622918049264609862362506196264175602974999149823345822989395273521652262053191175791379068506577856717220770302517373585786298202622256929254763531798573093629970421066061207865181848199798648278993081207785533148786660791818850185104777035147980748196749492610724182150976986435670093130101102050680079488533663476305868525399787134134314143244127184860746523504604749795495175136783504744635339238403427852346685988639831897171595845768558962855141606352691467455159439126188190553683510599278783495326975960190643434057840488693119193099775544209706743837461443743142016853836207654122842511669332177447247284132643633487926216508458504043855951498380365367231353181404515829893951729382158591420753065805441141826706953339039150390701655192426457543572476827443867969876429897713495724950074086602272643933427992556227858844393143889177510399416748716611998566965268528015356473335381334349937695576686635977141412054639029602764581167026260862090507768009395265394746555292679541731403833878955215707134051230030953594645379816886153951664852617644881150983950207574973256995453176126241379857533866450541540400157080256809381371237018866294846877526082850638245220391659543845431739123773466813755028285907743510762260180336962819573943869518999651474145475044745238731192283949302421581998382066412954900086615508977942747565276081134110392177392688225802518619728529728467813796479242052282299862846883612269065721272714159358603383366779938256824021661835059998214977863045195073490001603483681858060110578082226162388983020954971366610438243675374569470539513852555075473601533844468730824255562537722740578484420180770560330030852415560147294432226785736751960621322229915923757383184538589904350837990720586350958025386801211067906701299561619027057112103341704279884589760335237168939295524768185722881480494643693494760793962597690593864317342688146016340419869808109220572885307823014025818931674858510784238499035580708607164181921363356151070822263558538262552474269452090631165626099897845576129880667105065130210987728187211564967879174005539918465407968169102228986019735947636329723288812802093231574935744819755034724567401375496506276636032586392645951720838832220875286346363713000078692654109473841030412092146025165914173078581622897669618714883497640134935346910273067643045985915451936041550060119300825175199066650767133525172275687258874063100748630152943443661865988918697262829801798054139766776909265236468349473717295109454348665177468444062553415080857257591201762607249376516432774733081374677762547705059354967435178856470865885776019966610041533537314686634717229530020668996425204858548537889034041381969546374831314175412809929382682060672476922552372623844905071270510571025660519284361273395143293449758134409999837065175284279748773741120800793786394515987692649651805791515643043199781541557001887167917188610198402407377827299483232075010552895667397326073766922868506149124099589253061356952513220512440860696915801267777436361619365997084181681273746396471212686253735784812937651725030597123397787046526124955544199135327743796151010239203233940509312074396920393883704743713158507109989390106587828687046489553093722371972685998764879829688964606591797887423603509682555206226382936792045010121093484713594825809470835429385160008635624717312548965027219102182026483102990540079421883052848169278657304544557987312983315349621315144212195924439706934095346241584168810600585733619313145017995576582277437060097344081619036956819080974658144974190359198171741642229464216151217634528167873566791657488449176280915941828967040863446896592112657571872451673628156034982123117620956449156780370377551345471016900705850992736007183199929333933891170752139051378417266227666498608916411289620835920017516903585513713596332165305103252304011681641329022794701230041349049878953434544783368703499083556819081208657431730146725992314249376109114642517426179310049254115239048533301697241101450699942321661753350382372450633733922891346742654984122515540366391645114542107006970505041081350558021116637966034377343513570014120803931031177848669359175933063956448198221767915800845452082011429061880776260662947465573658677784952286091922860190246530252257914509747116431980710505819916881987208117729833354252047863188460339087472314562396670046947698822152105015047747294343196318998619035325006590737605732813113960573602945303437506379430060676871544123205408921424118175989088248190014033444363127517018567699316186150879954153312830507221109704652925578212058194206909278752736748696838457747869690087875605916069381468364246300318080191910952079616839649432795638154656584027014653621212414895504762180240123166512659007706282895303721697540513251384227027341437181368521400258501051331655434134921395042449483469083397037821566621446024102895718315223207409253632242433476524713681559227256028592252561121782159802966510798270409903978860392285705958302490173614582475549062911993997411088979995793579569119989994809819706927362992891662825317395352512030254991987006552454482056493713292524050300289282446549311252912460342282836825720572581958460964932626226064467749633146171310513240404886593788730689285705100460313905743782001916789937383611119641427914310966365623932064974024749944972669700928759254909481216987437592195782277270317054233102439140995057761885240819969878591254562972711295181551727733917367370379461344709594937521723947180752443753149732467107872767682287578313180376109793465237650683461912817977359844891341906246535744969777836905438616626669748359586727275755368542663814346025756326931054987803274134626719107393829639019634800325380479149793812472999576196278374941252811310598586074103346522328906546708461212491895141030839691836247153312049863198218206134409620911274843625641479662603201816395110165922126725344319591724215983191316090476488222522432404034530608438921236526771734181917848078815179066735408801152590201711878839988689698768883724215798024031694859190482080549940376565680072255670404468978292962524082238756312141008833981312269572296838253136363727130890785761624803423065078286543325468847124714321392693160573051523615779999226456956961567687561215020408678870767691908171995098129641242852764241279207073497858436623968111112956711996557986680062408945623893284855513733880131647269523387615826037499366950229576865876603423334721810428321393609481426769037706186068978907884138609288685223589129644334086858776375841878855079703450485000083556906403641596509078931709279298463890933226812698552260729617895296680011338848312310688847192353675154305708183774956670557225406123876455200108102312572271575332215918951807302081521171291680959484754520683436583119698560230743835130586470592200876203143341681778490468430458018329806076504810226490815746380882735782758669387244998455558965315078519132350629590971143214299880426845524227226042056757292937970076810592240802704214244664540542497227487671252941083769154037959852880489224543896745882317977614936719700486453457490444687944157724918533739174102005305014217195354599543735689761942118510094039690848126341374388202001779359907787691127717491099867891564475452636680608644948037922806793636711292404337089749357345221166653517494150307453468017453220040272386657042692866963374648602788502877453231816993120866680451117735689651866873973987055781372270888200655195866861817298680442519781526391697776176285191287658600036462697529177474821770262959063873075318424542057037840575339374467578900726251626395660714200127084735604543697721476377467072065740171130715224078883634340974591876287462984441612540889243697432186614974455667063166559246295276905186896202757291113083203358027104389080163873442590862019612845831039927504455911060896159487028200221121133039726041250922324713109322338296322078636920966951316595490873189107799730830050454855462973009960881960590617060878570012540892620499543409112141768455565025548848289718912417823781454956832065105383747461194642969285849826995924875675629193469348241408559515430357536091538780345482291978575088366105699388246321517813867055357338699312091453158711386388734284551570896173803593531043630493791527635816721624908632606248818128955201076551538929058031053617529671003550608226554546384836406416109764291509715922116589462328233311959827987931553951185199920218656121718631855316717778782644421488659612770765396544451471049404043258524944387305206514409835154586120210308502093463109798298785927954937063254803142676077357991029793785018192442293367819288420634465252163293038397634834930370745303704898273060324559401568407216144272008966172061485268913988354263300818382135912444408222306005122015833245821689197735466844669639916925818435504639303567302856105778274389902276915191466627432197240124328897496249976883419115305868778400118044982882919098834740580021258583289033058641284804757383062279066592543398098634277464256156224994421708832955779465981068652109602326365927698205441998153103761217069684214553298585671276007815432545331741541678266990928738670250116149874591101383559653013588075387407970344834157848677265218338892930554517487885657446054799278955826689443629009576765205820480146955367601040833446011766390748198433316576201626450963774038465185560936901895146610379941183021189754470998132548388506375659897023048947565137710355370487145144480915134394799211529773917816764297928073114854310285047035704857154706694098208646635367472810410168085341384185531837555665503959391904731255825343787386910104139148807038836815400905832963850248051970145789364252432848618026772103078312647816551972793097910004382642085526796967399055158803681806204916226529112369774125978783558055501514447786838906784461323278306880903546072120921795752500498722475649083734667049211039156658691954092376156059320516049623496481202526097698906062116381387048353986292064429805878935655934230327265866486012405366187905482375129428060233614485475541913512568162947070274770565808716685245783115687680880295213064494854417891560429394127456614220339609236471575773618345322139014669061870569321712908422647483336289196607638815157544235510719076435172469875917842323721589071548470372303675635136508946121147455481266777764918322240448440130661138581596973829335897877425010074317798925995407895989876669035182887639545970972700290526911146396018116120609414248282239581043105386675683668613448032830268868969318556061043892323316572000615722886505265773623404827581555223384682397219390280792207178706257060125234160266303659383023885779456824130695036215022941166049196968996008021612414829370810026100847732229269017811100015702558592579573098803292062788535500129406386049449612472313321319701479141598768245537790810932746614344390230220982932895528945889802929646163331369862691908623041550359999222481633008766662568002894662640075142393768254999124000089481998048864994406809139851042995102855262338863786857033521784930640260807684326717330148118390630538222758090162637489297463822069235741516418122022517402446963625677339289560877835452802403710473220509213132620132422086836626424073458055163200326733066473782680249610698357058417546555976738089692769330335313871945004471417201516400571770495091534440522727009491226930083360300539874713670592295325438020441516732112077682007945533479589002276536059573990804623319164472011160333658295398083332502135068290750868373725146251487582636344385466462400687925669682885927677617375210094138992335820533201592207885804545684203597088810789457442113976647061439346643560146204424664836450755531093493824629528303311107972265219471495923333498084045740819571455864819218200049888616524096476345732111668233292386309689274496735241564599278539027583696889154562067154874057656989853951239300790613974956453283907721754680430713482005196247309174013037066493836849701179700881988728093164844712849908479723157172217254355036342932982451102165378774678189839430708862242204626837825230421698511589527696789023806426830522409184874149494567526020627501831577710018174059733377118737900688582350857705321514592759028603070528385736323897218608415120834745045845911204161196930919754966790398565163687828099329782510039557340887280044757308351824539991438319973582175000595865054083285180951167025256177228857398131015711406430515359857096588948784659228717864265956162525231879112257271612049129156126915041233774822931120793768590553764509120880301533591878626258892966772573660408193659500867589485136851809982027379043551423651350302440025564156466393031049085957993420953569556268654353435833807699134352651872042236206768411877745063110043025428391658581979917468365390873524593698666806504972902152205203883740067940542139605952418480500935217779300574762125658961825055304331596816426046376097490832108900423281325677893435845666654490733880511647850245671316438660603806784935843398880542937888704070778425508366984944060891852536653814596070793440871893407168812171691664778849043421827527459756145721569339594542376246867367341518748431207008751930367060991681714100865540632826799016335232957660424646764154251805496863626158266190574396905703172466584743871670067452747754428476247497460648366668493024279595709410997193095408263591923948556373942246467556548108998554024875351474275450662738139922234534903587499721088081622734097218738395105432595358251299784503837849004563448696355423256814567275408168896668400415227290496101982838474426854946066940343380962801685034198365917133010528391624095390790049029584911106957908347256120138498175798609811092712920939093049197592272504572376999859941767235895306499521178134148706169682253651761647038608217814924751176538356117893607021262561804566641946386492559070333254129789805867865781311876268273556094251788179801755632298858152935524068643103082245433375740534862643052005762129110654202695492010797878812369486379327142183182438703177065491792592656104808849981035926369568690173777070281482958519709039946185739857516329999145295824734928026477362779456339841146797793653090330536492375561506288236110001943337817021841990735353314721339071490158289934025936654741705346604898477349425125202147274975532079180224225099406471268434603994124330994692962679048963652096683351245826133132825637691434720952529538210561349370339430362159598133533268344217685793515387821910463864392697133256682972182636536105100528326787053038725923989933402868473267397322489969395136052049820659902466429543508421622154123743664891074072834687830607788269263464645619503385374741057233044338762517182544658055538962199740621893490033797495345916986100499231236513973876912454392898921865379036095427918017976380215583792513784386708322619421270915579282246452464710980230336914786260038117911204365282039156977543284694993102638678716393273488470762468689299771361061340800293101193408336900444989431335510467083851113749139624592094423816084488522547776256073711256980468114312404066183337670890426783487537929975903899929127517784385135098545165804237244898607447162164046746461210862963680770015057891822407549718920076025387210566468509772808469328318082433445671720214681405383192075254562880823758100673971728825224339565529236960846553174336212222294534207334311305868519528304086967794205258384556336362908936279670994912581215135792419073649167053020909691156054421385083933797189654632761601624713128484717986231507588606294123662337921404146697231948544030119620603906002999592616238545854789976608438167497066696102020934515797442311122153796734526509191723867853646120408582383239079961178070903438888987070517092844803907043097720101294145771580108439486056022693847913976934562048618351620729754025143125812192875149701307806421436627921674237733938519551892607472272004655600166403910412058325513899269833387184501858214654351195920015699605934460556356513151387520180288820536463894529770553591693484049536621876270281855590043168838899578871478816429027313720554479188324951063288697026704588869095126613002798668409129634636563714651514887609751936226623804231685644235268219604843896635465114695738126314264591691160039591616675044774868208526980595767616028094244492352338495583103860749920371320113460675179690414022676708469683136546965185865229411944410749525990099489457461641559892662339409563940869740590631183648155221797324313140498612916242719123829074087033297867634337652372721625736581721045556446575204704998354674099362177014939320983798203690514509679593104163539481449879708750903664328183753369132179423163483925516760315348327842106451043908755692756893140010346420320526981761993291725740951408027780027853106996652261225923873852937716362049280339936478391637422104724625844779968163652723296410533703988033243833246263670504693973708067843807903154416328769303567747431076872763219612435919339704865497617952785990318769237728465938145054603875096071333086512689761905852301017932770499163397936684640849816696699331777418182795107599527768937001711187512704175034923426974862381346672563791965758105907724292004870784877618678942485075650525609870482140965281694372345526945889018616401519147767084015846663481495155564176717171105023939403516142817139341811950268113936388590037637663520724885630536124517552292338337070539206473801732289186176320943375445822686616534032948493074423551384912716444935717286307693082548019847894701887003159466222348665348711297859616386601716702144871939458012525651734438733067053683765296535496314220103160374536362752963984636024177499888468196449897868040347676628832132350806071943748801478354032237424808280997354394770026828632657109959399469692811045694537697047395206208231221580361654907219643740458645595647728498464556473240212136571710283993321564648712285143954458914613544875853422202864608870171876040253218453815327113166439738164992140698165859417743965820397549123692413934010370361433471388653111179849817013208808409585845455292901958162972684950706014850976173684847292432803975066082458959401384712009898796585123333941518580474407878312586728043107393058163086103678280068165677274037937317279958317992406391992767151980828597405746688977330665473129421101380174467276076708551597051362585215294934888219967382516214587130661515387115921922837133917333939394084147233633245033217560691613462448949911885521590000273713847477854693226356298842536354111196893489229709542868301729722619195200113791970570013613960177601139768561098042964046474837554829360968625296976157652213505432991659327722324130078283530911231491729168973778805580213704598744572125345198107505015715558303481020398359924622260254734299900375723384645633624228608196617009392441633025947436723323534372818766983456336892009248210547091516309796141055556121254240192674973284448574775527426372975801470097294699621442381368309860020738183712261543987684357145248664566918787021266361031549304322150955602275988207915299647592205065596100936563481426236653795959913788196557629151504089423865074712571059975491346263349017052734839421260528830325501933580368468713564989343988224234816911796770884173506521915404421887392212364141677530006518216898875047196540816006588551838265355227161787647578893226968291618619262942985205594947820262027962389315044542310480175420818070142180626174454946690504447895999261375823458562389155737321790493677933200130903072416623582354337739214537537692503149021406709825245089192168011278623578062085143381936169404309886579469110126403121455485095093025769266337498979237403698616345727352444830774876598096712933053475709851539152839457678442882181788503514597513626677792459451141090532657521795588752689944406925441848205937628137802604987808707599800176176214750835010514050701227922390539552045439984672711095412331609364056322093579956355949848723570853346237087114398789447221870768419178287114416560166503085084011286962600573636663810904264653937730686451477310927153636409323093935118706421410128045475098489175656090697431872900394688227955074800430130860335427760367757103233114864122573222996297198974688554029118846345322174403499675781981419670550152000910806090701719955945250628759880225053073992716438384031052919454289355973481997340037956040084409839299176983569664985051504589252516700035097718221641484733897858186658791724673729549745443827902220764497144059513152796053159001567218401803111955553736656752029224317669013261824158441003799239321579117635539937705777152642497788642709598418136256558989758183149069833356776160449331053542821512189740037681532188723157008856752839364131829586439135029408157675795270516805470052246024379318321243667613064534618544485249426518701174680980074202246768297099329394379784146747237436994345690138412228352598533307323003577105121845180890342649066711171588624602097392810664171788268786327031911275921466579131411305329648361124155261270126670994395178452747133938040500209623673343356193206269646888522765753127827295112084397232331835641161364874801781834400825872522548388149557779795818266369430583437713530819797445882287857967563500016516114575426933977518109401562117519952852470060265990902042728183030179960622844857513473036254085282354941686891576928450287889750994065855774284511584267688700856321240875285507601067406541284045644196846349436247531995185344569767681018171585792758518174079389268636387672020046423438478301011202503993721367789728769403088667200330938325017353457817204731786852815914264953140606861559797627721696330788175007906805852275592942283917020520932025385213408449753032624670570560482123492643374452832483579610642927855111625289786014438891506256506243760512459086480890495460827132614785870037024176670717230971884145077739014185459254178533785178365830263931502193810470618194343209015144982321808711649579359573434114549140091871076560269046390246403504746610050784598829802944134468261833713125091676991677020046786135005021528401853884482872191801965184954254727110961884217680594782282201064509849880748468299428006454897537455757505967920979237598603264636931307159259024613427554108180609482182946050515213938451486004060074898586416403641220845883116121794699818002367902494604144645790055381322402484647208588220912289043724375577165011438224676448284954767431376599543776726931946187007162382997890769846466531932129296624214271237579104832495917246550960535798965236131163029958475190365416196365883616412186037288103747219253711761932494727248855281281436799376357856382271831505601883784460287711116800718897680086341370543411670099905789187349194933393229877455759834378706385091667216711988071007222119275107433735413736070829054950784375631865762001407490189027752875582859259224476476526193633108675037946174744311746997734372810026125177723855218724238135172356759848775831926431783426467745349050381414122748499781013246164030885147089861778240463752720714240016682395307078777623899847076071578422122391502688179203295164729259972103595621917459588472982725563372033004280535014297137358613936091462178773524082775405193436530970252987691319287447255000862289109914977550864113871369400659088683838829628937850872973933711755581031373297556830356302562946183779861539742942902950227985810100326624503006689486934850429148975187263400753486729398271152198799673671387209882107922550338767849721747176446164241899512538655547019992974785114606349117583026871500202620004649666402991986100796878267753454257396662989711599004497690973373937224542180498986359389433271866603782638108916760623913878103422753195126760137722225580300254882385525876436692487695983187304938404406545699890197668529934935240970271431352614001769342247056129807848318693115759752010448141173673172186414217051919840552740108124447479805816945591368193364269884291973242467316171189327008782853380728826799196217251154679600920871459713359694163085365877745508805317574849922433916873158735896925538215149449502485019575712360735291678050447872210187898316990502954006873066592865151086917439811720300824724037966659398627660401874043126403351692307292576820958219893438583068270325730482361947769672204274245250539430825475464256387317356385803150566875098372577732711512725801382558337935464409400135224022467071052946670908933225290577200604442128451158904572528499515048342486770386292087053265211754358295205033709455564890711640530603837201455956393040448384058740728024985316761973945245639649381823618780721253860437564364103207196812824501578353996914987092147746451832774099624911393953702264346363356128318065333869092615974038962435904270769599064870551814377145133158370622137700105065706084690486457130601110978523542894116993927031284110727900197086027973323028906995460761478186665457002648929221379923411615604840671301012784230818019145111384204524098957771351309864531060357542759886086922877507447772238357934197414537840992714872794576770890990051336215844375917213571710752285288286974880595653501117501566760762651374857101717668090717627253642398189543887094638917242816505100600860699717567151608281462749075218026275601380368279758556788083656386532716254573467118776148005729448749816369285124613265880196294585656972282746776090578765205914073362759879876259673020828898118193442425937042208450689590719470669102206829932172135772682052179313580256105651819398434392245356795112975862559239137925461480281841113777350549831122839900539496916341317292310258953081077323421300933688983350054713461764313585558633753666060206689608973386137047276420398980239282648272723660937316140718197293372825698648866398393118099679052263567103471067474173356097690184811814263954524388074126324951601217672899178706974851624659031195082321079561346229551178428087210166776790369560785229640639774609510467447683339032773154257514209356775776406188050772842544663804415422246851481844663891911407712922111102745373678095360300975688964107835669947254078944538939465848987579635773925089686708750345236376607248159008094357349034167403132759920749692171162399312027104956811833233505164328604318001599678862294538134000756872491569231458438369585430207514144010011359287442747507239763598811180263730312129154912368661762034849595974801402609059046536788940238538865418717505389347736777493384894173148848378835935138380964396711244644079410390032852606692825959117772779608683040630363517663067561369972763966722521003597597746141314198960458414579253141638779544951370379386387386114451619541078201786502646857052785306351915859695644845589183235658566885815714495542474727027374768771936620310215224397305374983227409974980335387903098806762173734913286176458092562602330120869019705558434105590510958729718482029277071569330642836254412137431694848315040488961092037802507384545411124605109463649917857475295475574106191143008578238858484945014414375544381818138457730326136214692981312523014982911079219225660231058374179377985593365083953189003552950551318416796901070766922369286531050035847680932893779588210893419027384459458556118190637385409815428923307415805641047749576116600953327463309430796806663530989988594109531156700200965854297321041726889115129468709765712263326676882174518687593660576023774305552485335183171695087233816717603773462059577133029341046082605611006484893822177330221554538011690365712916013948847993788777496914428115481676514279627635348477853219601673121122564968021595676243304110899791942258159040112952580817806334708605223490472355834470853964433992580273447944054683908856600894110656288315552364908451931259187000862380441371188747085002649857683900036034076501294393345842795081806719493094775192181123575793702753940676738947443001620596189323226669348582811641260101482713839879859527142259465269258542422290206325388145614456114657725128261923934167548294252256795503705682872719217032513719380673745564958400218122617480565405424604917110903129251961083885409677463458563636505938490750421994138049317483885347905834219840380160969770959907846358351598700211110269837664193816080105439731999744036848377201440456508747434340133430757406532911944487065068267384124639522992487751281810253835201779231962987237925985388452338926905239575966641198551694940687384863847280688629270442731100055217482372641499588436007274716476576731727821075876500648854525709675843598703518795974244447867440725436032118927770673566284203946515340636532321315548157646392624844768202522426886330663479435094328787827119782367960409741438546706323048526583734509978483820973630087150596994630520208241675504134915832603593453759132303016029658850166251788730197305920509040868858330467585351567647586155574592649808478792749172328192270883107902482950799362147501534505980059569658362758847403048803223826966131406035727012800031845964180940894035256457272262611614053103312965147409197052117358269710356189770461648474647181475329961304195716209444182368635063576455391618701660855436520731567667795672658139559823586101739882171377979277518662167907847371457728174444924104033208879966974681358165679705594261911781872892434699540356095779365545896796620628794293782768880867083633360284220510782986016225886986804643694047057890192468505457157440455650924456246127018388435391218323069924386517317259410964421921571165636958141851822504857673599367779166016444037918402943488967482655564493586850239282347538984594431204583520015368465343752469166514797723678555601857031795571948297780910626796556808616423288780038691242871389836913524505496011996202398725964126679175170461704325983393032832223033580820188418064756972483776912130118047410315081858296202645605150677802328736871980888110571576006233103923265395005638978196864864494194439181503846279188350016077407222842231429816667914490358412142683205454210913692505131851811245660562747902870976616003217332134527513954462702360944014235378659656668220174263426111504858660077003000891345340788149376607845232769172092649379874802013467993700649566824593143182683293495325607863519425675808236148195860732234593761062348970150881427746588592198961485833938987092473556569025417027741983611277579574711131398521660666087375988891478752053580817385709917204321069388533328421196291398017019695086541552610744435273474301163840547266846449628628823425303088760213236179598064995580947780166392047709310678035509878746820997499443843421374891647854274637946732216435328025093571099263926864330877663550018055783736315413798334445354743350295379704249609741925211078496839896400838511940078396323129409450788266758540097700363651995471850248612678917363007126559865345484645088118341577560058904229484668965380819647866934883450257869575257250723438298142185226192041717368578824486502511853907631894570027624735739868552438904099616573389289188102994146668492490824830412868501710056650550836410634862342341823305228894369881981313756595372586583720153650444279703789898967746090367666344673447793890291940184851238330281950416812644726991939390677632026359659516896471898003207203613595697147456021736474314460051487640587348465365087602094133234968346767362936416862500575138123885742557764965122876861356962742690441940085541503088392537267326029550878570892897794938253600677882031122977209655031330491693418934212647184074042959799348367197621402955071830250241762450557518949679704845402640465308709119080968190233861354452704481536182307454620988283123835708206668096328899618504976614556191216282675580779274772117212268667523809702490572720500507199235111623901081326613034600561316104339038657068251999638135921361914858686791810720472395163178045130780308403953615047860325871733150803257868957313180852324592184160115653309444265592443584651528081084083553768115220225289283960182498258061058511191721092485268248177718056236173593349866210668262407711270788240850330377217972916721173750065513068970106905176967974636868711632750493768648881549172614589363868248022747122135196273906638378375585306286029396540676419248822138580837018798914267915141264147536356989923417620774859064750494489119448610308089159752171881623253553146544392929866721053668252091929839305859593678146899035429711455340438131748486896800395673259122188196475694528594192732632404231463520716565631641457821956530159564709806453174933791403726855988418457251873093866765140040144845566849882569460761785813167184322918478202536394280560623307043015776020825231920865864095153890572299880002396232533994394239226487379657251899452703797269304094937114993822737474431766521716505892703426692664906079150067856358613609116816615307801288518257841823027573702260787476354608166802944574383771212263620070645507215828139841442911099883437620223360011101174613954783207044664641762591311820484009571337421146778727873022620767885304263001813826869672794735400683854141905742260557668545639534562707986697529027051193506788805466734799231030049423444476510598962317461204253258290063932857230874671134384695915244824020603510306608460370951047663480398640750145032909990330873681626121897925873677593539359885400352495702458060923902075963901198543101906963598032356268358310527887043881089531871532026034771245577640432581341425389560619750309386596802535855757839825842142004951280739982042266208855978173255312231810279083234627762776726868299133334975824494948988009035939659285484510546803273689461315322331203681057226412310725485399156459142742069201334347478288437787226677439126039042836679561958189581825900245435671740576947646560004936263351071055968624625131744888817758579365025144123877336754630356903703425254470364641654521607658440862283428524436275135968123953423028338293832962175830712124677085270470799103004776634666820947281289809317704997898973550453904297553288726417676092497243771093884509079666376829138775015275286017154348534270735679247100413455418529057552504191836812034040883627657390965969886603193363045672354717036526862201034111916827711130147390069520536960223278254691077286587453651948116415228450248887044982907893802791814895632617669618789015797185029715803993971184510938472355015808600991916515269157043665265458628812252197021361073839517272456355415352355099452824028132599374946859422832053325521767939513140367251715845617549622642163078436442543568702301606995113324457013980914002497066656159506609287000339422305968238938072265313635828221186140706394765621031501273834227261134089574070359389264945034275647300431624674132381426895227669148900111064329189741248946258173560452167473680407254081057591648207507440635426524574177673386553330953710076585190643714240365860639670426731382182124751067073292082529377576568465769873145148703909454465568501052585289231504978407688634634520271986093126487771386514912139798648513890061684295240840682672240026331364126400357094979196966874580738180634168326935190060859640023107394691791227973162461672428525658982959748605641967191474440257969745410109789992698143298237851915322064598013716430698412196701132100161322293367033192858209430200025414996617703690283702719044525672123217386055878329317815602696674154927742311723719584411901490889026539780762089221378817573628270443438199302705378236942054441325985432886551972653648603310705629230200640080982675093379563576207491360785769551074713954943561313472476583009408783420474571571208081057636265696541639230934870986088495530318666066432740585769871600525432731735301662105904018423101800048230875016717911290146207391852322742581406285244034569256735983347128173818642797232815714986829259892563821440465691942319328356412107265428292041540638520171235965764907955244645495446206103488376304374266305458336335919082010658038536867876443703335651763999268666453851581706050009784191658884966270697101451755200436893995311887038345256339205441138839430819872022173310774407509577285544277240175907426278761726967574114336862208251789305413892583196588465952123795661385093724982491384499745508965031251588021074139883923256765010392387255175726121623823957112205748769521147153982472528093022783756854514664606698336244323110462999856483231707347081739188714623878422100008813333527560784126427271100581144822692893258033191738529906404230019232394371017110315167705078619915328714945377720502066521068639447268007956110047764749890940536631412281817641960679444548952948094476700606098363268546108224940138482463190403004894904530795186189669149736392676001048831437790547041323592703880654039932372164663231678359233333478103509653306590918761192856747392598626302754485682630724734584909772217877422680303495678054795609405507879796263916217570403187046542781772273145225120107605326547049214773465783071367612736269122496103631915062846102286563054248799947827115587177723342019993794319373046189573572932759934158523563906567246960312114372497260460589524776352826009919800981617217002501411326971400083995236256443386667866044633315703396841881780734341826193236282828983385914915022901927970821724906226028122874103084280272307123819940415365416017572739170485693050545105635435094808056802016652473992888178524048158831843231166186403117239147622673973551643830878171468627068598678868893048922636965096116904365785651628366407732665487014231925121748144911675942054605375842783066276213996330683734376168303486186108317343836279302284543531521454817090350830955289492403623007891222496103516712807797976007382553095621248773019011119314706545651689734061599940353705471566297057633858545425761148854377501503715669821990901187581660763624045618403992335419592212672556474774540511522771193642599729729440485800785783735446127794560550859633815444348636351196878132633775923006268139779374657528077401326770888735046155140429613343406941231484252064548769813002545670337138390791265486420320447748680938083321805440759689360337058951532964641155649078301326419352448898732285481070431474842335186689928126912683085096412260791186586198664559486019986859039527367662600480285957570647071148492116219917572721397262359304816538155025887568308327571130470447501145284859530530741733068768923530655031084895616222018426923227519989573003617011757381175215319795133065435449652772675897808109370696856284503464943265529491763347396892165826179234487206079492062048804156317824062483468721767380744358562213736063027175195645737454020037101676332489282486159573959145596195301214702686080293063328561245935136142407036695626634655069302066041858280549587904965258124701545238048858230832705805687603500616741533651838192853861698001851896759210614115048945359056782971983486218711900943028935184566148366429823864829596381486110927701923337090106890107346303877793276976409754214930377662060406741194155612742350061401822749722397360952498078115123943605978463577762529041435453884951829828111869981444377085414770639699159407352396504758456981968949966736827883740558364640390574776345717827427760867147551335505917830506654299436519302196955280086652572865170776332314945693156088819877034975836111647343219103802146380576501623548531036676636748124483309627150391382685540905195649709267010066382905817145082395837309570552124730700087062165862258456629556125794803785549379259206608274821264390510684106661403550569437052142443191288291882181061268308859995756238858079862201212200231282935729237975147361034335052581456945821602946942303303731486908314744192575861858361610477743772307987482835894046339203538966145570007719702150783321528227500840163481693242835896152924223575726649016942426845787959478111022245752889680052250193951234812019659012714275774811995930637968975669461124596323950828100932258897007711922361713232103671426400893376355886506668107819356500756534460814974790866582499220781481725899398775924117184751408738156544601787228677241301393378113675438941393894426189454679986477525291071710937350507191442975698956371893703627402318232478388395872429104436183479504567226381507729862161985645578689756284988033390444073805444608251392804906465592672133700261573728458929784963451728433322596323624233027188437671694022954683807878478696202902149284490806365706094046665469090397314433067879554655019867927135097434392928425640888208615119047452955059731764699632611367732050010598747294756291490227544472207835306528132489208679690566566114310335610484925178585060389298260447684137395701746989677216494065908282843079613738911285282796553308653891390413956032544055741523242959640173980196630718901326895158140546998265095322262554104229366528787334307456932286056813387233700411150468232262112048290175925835704828043479639992607447780969485102378208760779547690455853804406642702764089067397774404523955345121533877312805815729510669159730566078234314719905300282948412086661169860451231036266630219254875656768218627388132899034025436620605270614296087064758393552477740709991633030791495483851032340879635329432682799734403186058842686116327546658691372687645504179535027826341044802306767585913725649355502430056679866073751805315935631099205782332942810636171799448213742941533756057325320079942984707778477759880265586535844890718779609954540971703870674880525842308006656385714877584116202798626136539967279308586455306390700470995969320565178350211369884437333156737357504692687157509191301013828131625965010834552627960674467937992594361796383916381552655908102250315572544298637306671362227512849954117213593457942198936011399566257636752168171616185421260504475852029634294922107876777318231113578550767031048968887874925333667879191725080960909438082340660056637011564883408420822219503382118056762441571468012365916821681661658458763340804785968874599036535341867221795152039320926872700117788996648468705876379899696207920458083611146986643493795718027499271949523923942382882327512771320135245080726068880836255264015096677873106077267493949748625554279342483891268792684646665307271023800966350128033292105110665300525435325993376325849287657352688713106753376298247721370808362062404398941547839903492367679867289465789191969639563779995542143318407195574065644589928439972054903215827749428358546678399650066017169009882343802154283537376305397834931783151501789700583529941842230492925046892897978047703129533299277296294571710945009526065662842605481027395656019964833495390484604048174629572044961956971729289271936217859121150106531095618750587510231579859342745795708120298551423530386092001317911340156137208659398685633273336862314082456004361554566166254830816442434661687958120349830502413019763325565518714315218146878020101143640605219146743639720729183439562754550917177971630947213123717992504395357742767435543285165208505410740831856578030216973423589073405572726867625030563469640841366886614468935552578935846562481094258773343915662328649934856856828753198230467229450601330747810969804196090063412374403700879628066620587879909845817174255985273282713662982092031761042283895780181639138208666063366585579409685723613913069010751483056034476036745409044437281265966655502907740781304110608172356264719644681911156004345478188024573122293152508789647892472461519580326212460998304775294410432443818325268547523039038769264842553994293559683809028097393739997364790204676822468253394060048670876341877732128938845727132565290323559513660166692519393127766240089502898022836339144363882995750175314023807830504469455568503770348043948301395777390202539709581467104342589440025831515098715461455568584309814377068168581398303544524044453557975894466094922891184365831137571880172716808136525356685291010963839951661828866833276733911443699092980102773468293689493263368009282308819981537674674364675417490577838386445809119638300369103451955743465973595436812132214601560560134278827851536861876503171380437272382118171809881192216341666810586112633603450516173009865519925765388445812306095204060878320381416458822122215343954659355225016169262608121968464632033538348951808463568172155031769762820787664706427159879107157971971289589182799367839249730594194318369790968614417699058013882350385285179040104340167125251953540857244128472716300273759019694319402338861902752587509877184554703317596803187284225524035146433921253057050622206223332524073204637326974268811243253319712784357484419017962554384889379590747249979059543378877987908622752819486408809829833102709410523613665442619306142993745480329415107234097033268928887804480159766748259239003759766179459473169802402080386521777066380640804429910333303794938684638962263505717152318562209641624618003364859899686821433142838669869839970388504974834317434080737714451571398348973308742890395950436271434707364090709047476295585666008684390988751936292990572910694446502156031508703338805181620762593926802918133213415502142311697996477398706944824825553392056741034087140315478130000707535812222127979902535304204059345442059231270947454338437071653835711153044754958663898757733227999854666923987565945861582810479955484348868420866538876605699166093869454703389981292068879246554390643643051549273294331444714994375363477951607904380421927032361170124363346084530609654276092112924741330916002477302424000038213423273549323487127781732169601854169472416201420182091542817809913172660741594207353953205201835363591570878773048201733297623052625602742728501288793673689015650076558400295635682976834173693852035539373672271940125014236670836834284344727850572357964566941452818236714390249881799986740419332194038206962531037684501913591316139581031844853941077853016918026641726320126052124183389521953447545054166906867950873297544673971524696515344875275230191787801303428848665419608404221543484105457174245002218817775723301097834859862819532540817163531585257478989444366088798230447309454700177285502524879013358727802954817809069192997344678676906733875205418226510839635293823731368148634902672060725044112344701594273153098472384555543947113885326425927707390417029270620056639270433847470638472675597360336157946368909931619688594356708715105273422275462882482771797978380890823762042346907937699244503002463851645841067526121737844936054713300534474035520872762406987723636120327773817874883908091766548776285115734745571465842145857633283800351539591277931803318064333963337378971424609363334820450169748666870596413789147876115877784313440524741127361509115269039605675891882004059077711298343314626003601154642175048651994228279031118639545793028911768704871673293531973076798953351950988623296451929927706720497488373674747664345937087364382848779993807668466723144165105990258792140447960910198584272482512513083140365263488595468580595979688400694638196205410927816074636125623066935483481049416173804419096279448162417765338044109068976661341256169485804090498016127862744325732666972401416072926254333368313348137754608926436897022749465358489774454271305437904162128080975400644947446256303312112518999359993639560198304127539592854360507721692254989146805541416122142281674604155800228795859439082010916395115225479253822375468803519238722292345228451816348375897045537584955291046017987761828342653980406276871287800011651376742758242586406498709685095774055895212303806639771362945475726643226764639961181337774230046249168431172026019556557623871882616596620184293263940251887403267383608077682791964327970571360935604996055078764889739351188869040729296574616106856789928743392327941134587358012678535695485879633934865123641988575771745843658509832859096502204764533065237989456388977603093076497121010177164214972125949887113494116525200418621596062717555217942888982639454103565532515647881341392086583977891182531968826799521433662679958938902222080076515715136334638357013277169604772695894863953856080085813659996000207013827603406492468856888861482650925121474282642080842936666043175830017373652510953209279006612532319771908917941208459933946832156724733839412017975001674593208539293861542557715655009682716299910019173532353414416955294245703770488389217129352068178514875090095133687949714317193988502532880984607116324966780934744590528815204100479958020711020689705766740414169917454826675647873591631913674613568658983427973448326670320471673065689441708242528278287028740816694234314854108867075632680490790054078411687257406323227023915046719845432425476829496776139425515791446923871402015742321900882762527619561057578320691811113681372598988178009686644598836899763807460786928885971045801818699038096866530438219501461460517374647145466754736701381110118827780049087271817489419004810442811690911809308646974813382098057364969718546792470283653897764080758621020119847759543506581396784753315167728248531040969232980580500472388346145024986373302079007046481524563013304990524021604818280658657440583985435723604883812382098676146454005893050660016761115725941873151625027090175681112731219239269345695991213538537708094297198849947231658844288821305448235024488686731031342579398873895925400718951614363282338281290528041834017194153903834660080681307787867519606866296400139812567796013165161260634531386642903623606012863519770853808133887531158149776719851894428830108934856247474063071980300831400473419082076585621988044115405619473063028295488115826657310343468652032968204457476614408881922389886168071127772983535695405263185640025453577860649459213502502454171098288934084782416111454219523291779955670557703307911109863979184166258763237293104901282315157317703644477699330533381925715820008677714541323009519613899024685678108715994073307005203903002598911595989182595356542177821948989317892943524058712303592078704494899583037796104860706042221462628358726601002533298445238497516659589206104018792805150045079350502880853170427000536686990485236975087481666752230104864327551699473641310825846417675322540437084431370532664767316239821528495631960665965149124656439897444897725896349277621359850779652031819228013098183276906567532159831036484114755135373579081011989375874905640754699302729814253891953270080539569524798403555251689835426337384406574002197248821163699211071510027214129443898323805917829339327445282483517287846909442563140210386152992441864257888391092382085517278545196769507682486968208036147145161711493462593572903244607733612125810997515519031905585916826034961606648015781814548153362991756065692081197401399069479524439050101812243020781496113841117783771846649402710995259566029260469023318492135615398832129612722707708635691692430958422759322347902398640656006679158463225385259540405654905992619204730876249362865347693472769819472448912279436606394881850954042495435220234815423292617220147054282194647937840904261036710694459057534466473850310983245554654462491216617103475762706733676483363091040363270185576555087841788563047347793016331273802184789448722581530695955401412017061800266425349801216730609867196965970564159411286271069616944562780398070092750414100212169744591279736831732874637580120949287892910938739340006746221129303682883455763537619237145472965925060828110987328347999953569252707086010952639427285818352543825932963446721531573845212752144122170832225299091389747397229801576418650419701747989759013029852441557329749174873909308797714300743543135437765856294316226481464228825299124352370728308125849897561431076198155547082988248271700869229520263872211299516307809207122279231660929174597824004846106679056841542446279374822821537227053246770468692425969697861227180602400461856295164492851757512265023814126286591261898918161880760025141457633706157499784518111000289695130828803337739371955307332095846025999882141194204303208894815054875097562112005043487894980045049218951003327738549187890701432837251735262532798353689856429571179509026929547027177774044563075199759689350194953148466268002588934851302558339886823134425679513919381591176137600470180361418894141561688939120445110480650599566126193894062555396583341821256586313894351151795338181134587728064953062938154137550272622047916787939276860166670268303513304382518585796592569853186685468275367053352802572101625114903034022210692600383311625816252176544890450404408431474733753064783121159948382742537586975665584526473147255489760873886343723700698923804194586007299989106026143356765771045731679125372899332011199681489464224009785248208538741479378351979485042978297746884128152758383773353167186966637249327734057837769296376663329325878979176117547649828797204060419578137632374365357096390161679227982468414066289138762096026394947459611270808266008647283148325556749915555764627479880165224108530152631633734793465920136009609933681759089887532881791107692479115259196524918785081245472412647947377080255238417977586056012253322385598675278231419744549022501845027369077517408055352430100170755222580916808336668021621453259935943231888597687286325507338451268405154412163773089593686170594753771841972244895990166014155561894762392888128262114257325651406405910682430206822659442128046942841087099571896530087943179564001079875550225771394607103419531350055642770790865980537374742766300416851384384370808283763342555459566635098965925077502012525166618691833855405149773407454187593914121655528328642808880832602231998281852469627633240556811276690671056894442368349512587926802044341785801863109004376795795189822404542475220142011626702368580102331760190986046125130601630061863016154782494124824394510387195615455946601039448403480202446041103595146001434569443525862158860343134763433595046233325772094352450325065407565213326050367936160134242183260499687450025144907246927438018091101274338733116002806156353192562396009383090387802760663459950375774339516297082556623649811416974059709220912068883708090875456802104006221267053433799765841293066407621599998836373185354252076953074282309864828456277838222615647829013124523480911749927944286690171037865229931097692860247416454197857313219242981795701061639331388195075682167177484014320107348555667075568646787506049485193358240956738614372008595743628092560991403210869634007104982254769333080239808850770284625761365337796086766577338633584881084797897084165378310322832478887649831588779495674277986452618914075561250040696800166807232712430527929229247354951817768562985497544802461972217522174007643971847396203558433444319970657601538689592521324315133171497314210913993702446567510201447962999498363376410280453206341429348547505564585956455353582044091558829684404516651852420169900555321471651507251090592710460676199998003797561062450320089869398931606737462326182702573369740441990640192044528542433660446682909326652610713623516305491165929432817156049540653840105792291866596652428902041763822984733020546512253178614645466602246718495327966321644324982151331121519019067437834418469128970534584629618401600599786609713723481556952234476359596163827475067669527861857767436965695561987561437428156008896296225149172304645890056913105190923926703650812680099634246156823142051841395232685191046194715213060461990968697368150077263837692097078942788329170548261336744408816019161904571912536876945531191379822502087963268951406984948178426584521054923233345107970211395243480774642355721729246369288490374984778992944701482030863693440005256096387356526709414105812612767075337234024432878563458027289395951927650913261998114474429758608604732376988486173309616179728751835066122151280706588678704898588219710335716988319891431210890984297393435352509993111588553336303135474588086114306668723122655578668498653105514166677939718936310484555039849997251635496845778678981231943065634074511783659263963666643606663603163152907816880456284518442674827406794152331460167654836472888112576430910919902340564952847774470626531037204552007233143549015907505705867688742899579795572712607093768968619946302177067012515643394483245687257615756125776921942477807229953471268122129213480752285303061233631789676883053545621498268540133149067093309333570325315092901341133920478992820722057163262314870656101118679846341966465855310434306453320733124278027841302765620336083274615435136942258162582847107554825956844799514690703102705945649667229960305687279629957391062743878701717515017166232416668799756750889601736505713779362568453701230976877319926851608138865722693793829335993861069132196771558275935638711036573117500808212717486814110007269977866684925344900922518805520263730778872734039294226260581213612309113237243281238637149824261883727819148036432684864050659172474486802765782889024483326518140357632193819478397414549465179592428357752459099906325130564122938317341098172626663288144793160930797713687874216258611380893865081844665334862233738462401324272615237156201761321771826769889085307218990557424965457027439713832273552527691457039653434560095513614402821635292615304528500882552854103291385366373955818821511451717564848178212661925220003268684253961410933855755786605314905850638643845727664816014984122805154214458218628767924046326307265909477384342956290856177452974317688667131402881427952216333808351754188997077995075301789976998833753507865732780890730908416643295470615491332673053927547279851810519086963470143607104998794068600982175981387250620316046222773393732874332005166018141748680938707002546170046367920954212991874992809229805152986126070885735822810170245637727792611438228781877987249703774283075949401239201683457771496981270916315089997457413590830926201882396779237987596026296839646658892252799241605794367457573978677170788839201010035173518573583774260698556274712794921176780111827889331976653881597593780864222774961683445855067127915022144250030671890090181700165149657909546024462278691263228348866866649665891697188679180559189293763996442354754291346378488986000661636209254109425822642961329611570501040532307715221565429288337712805252970002149525539356550461427445835784163109157955982420993127376283824373775123300781944158489943867231274055527738190260828080908217138694240541478958486805498805419728584908968569525125844602613089332665733577919184686571899726291363489668253210844270824897603003572830428497887870348434358931946784373649028830095446072609402860169642398528551792503872944210642135602475438753047771781022239642551294366232669502120329641983790734347886165474018606152137182447034813534099529679326952232427104218085501820240912058594515876780207795546239455698280400344345549596373452222519555427061661670218571772171113795205797249431628653971360295155854754182029587745053311071671845924508510031013622490542177680062383788977045232862285237981162377679826453203994645582585805476136173582808502164927227740686883549191745959535292475159018614695861681646266180406556598636726035872767881170472287824181983495980371998145746660188053033370763095708825343986662632859826706314208343600487303620403005283887079122754423881537994767862126999867875043185826825248687389161589929044171499544734358197293242315472857063378391791660479612439651594245921744709131845366564778734694285371953998501097029072365648838916818538693480412420073455879288925652499704759740064822066411109036110464088791550169690439291340498620464950830008589468537831732878184914564428436702566269469547806822266901979435433752237275770409511341506655391603462794949533707225803916776098722160949671728246422753442793381298950209178106357907810076487951516303704548221701491060254502607761212453459517460617645085064936727839841943997878593700646279825420289713723389906401995615932729500756950014162060099135177350551558720185791376226646200863011183466078126443063537315166916243063233594087826940278329616560370539757459415284273577256688159436619719581449013747233756583699383194954040714379480210286601561814380852775841031824585575346308857607599795908407903460882132597990922893697851499207015021208461143691516303403568653373009069624971192034923486181327164303577827776012645869701161660730828541824322424722672566563352490541842043002644857445002542395331172109536679962880252006609415653094496186300392462291628445426730731515282739481316369115399927143685389130323504116257447971933647641600918652800844367603443458843993174161955205607457118950762560936779189145081567346770580694871504801642814408943892884898864442516664071545561890748658613088711475065946277236396205850889337375410677920465301808359857981213800598866742478906057014001389578311553496613863690909306293060722490978817163254222271696901834667193535097206274760035130119413093245909144365305993130499447679371525621138576024597297205836330302220101296369304697784440041282435344790836777815439179747860936475942834023090525807729341690500170657376886303899465898360525841778122716289181371041491684208897445192788007146993751032652519285268673613589834600242463667910660647349138521761983970596629514521175923685919431759833393598304595273288773027957166037889825139369082142908608697465280661491617590056243849282603755767242388834032426516278725711232783907598981313617717213291251504156531227356051721949495868894734865264679129973802706040542300882523241131613247149932381420637323443056081951539664544301947472505281841570446205592003931319572550427306581646826449760751364321325767760847609801281298454308970293823176449318999780729943809904774733690476197590673216190938831440772975914319323927512141219194973403341786207467289229378651520459727713876012302555487974397173718756481125483727750953476118146312634653281942540308237720186251363880091141912190570397823350085115842119958595662493033190419627641993538118533625013713950611987658833415978212665108576924538306093107911208163871432794127405101824946684386083585146476512864810871789814872496093837879099063900612624624538582913985920813787938861440608859096159953489269922483483896942217082824106704064458318483450067248214840524074043305703930425421420019490458294401817266017601933454190593789661803206849791792596539863651254226975040638960288522788654149444175911082800509368833275226695389979230535172272383257236273775810688171335899090102280468054905073146900813873681212321465519975139027831665172291661376038818667913713547095042825226832775986629706932963966563267541505372629138545567799272559316069409324734000292850637255615415341171537421294504353516512430551259200465527383234780280471845711069997407677782586643202385252081908769137137682350729383281964015525018706944506812647124656381825344550337404593189160681811250657643041180702710302293593526311346580911620231267606086163316213828639536614411548438094950195447010982710321152611022973307082800814131322088734209263091786126050094456915855558337003375188560823465746759093524220314006968506134833334528178698138155173766864854722840377637175180399375091281580036668244370780644684999256611760370650303218554807164502609080254905392818217712957934724836706639986476128215834287356642077523981102353722993419682399125149396515972556863401375160007206049625881530725745137638013095300543982317134963539123356387376663874142889407642573117869341930845091823311330376938146373886018763200162153817143553915985988490679893827138031817364819118740549975173108614111221165063856895933049920327304939373007920363665687372039021397092160114024645314550528538359121304493064458222596597148918399108973400301681623581166045087028357472607442584930681079348496862843554565672927128485447281418199662318941377719232454962402610248808123143158312028958154289128639124813520462843457812175975904744087221394065737625828456101368304386433555403834743058177038132840718195687882203507343695542047332925355893378666638374561724774190758325798930807593703410537048442839380764402426274534052589156891475642940561512826356438148012757325378553933097696124139518281918841404818308134762969873822351438620383075479301288326613131390673192237926548685718874961537173541050982244343733337344015439529991930698482735718693011871815082658119960674722396844555000096435884135423070488208135559827270930864627200120830951121460018958516962386371194001116372774526846131926895329651534367622292619525068931850621272668495903436986696393434015793541273908330633972976974636716651335688973609063638502635051472275145015227840224723966349976711302436763762835949443493598715175236966204449117762429824532690594130371366614268760589042818749263980875326569291150759667689748224402588170335966010975437540494377776934088502304633368943022005464626236264872961918238952206741696303554791391276595936023866264072369428972352507485111447254322371868088063212419013305521689510929827768292524676159550228080688550468262048067760562922678206916617267892068372689650819898773264870909851777980521203968168294979176022563653732590463638975844120608571169814564769126319041368701643081906499579067135202430527762977380912179530831683504479735214623428220310524115811857254251304211329833560987356966105763101292341777852615649096134699548022357237331888844422325480478944886961044821985170870018760049645181930140087172195360716902831461458106990084387104512564286737494637556045933341789924494783938845769950679523881265159801228651387623927048592579027441114680362460516157332932418150588313192434036009366317971027812020254757564671996839544140255108712839647676588181180518871816463385217053757011610574456419699668350004571419766163578671371168930331949108571185105450592593566541191127723215052316574249116168191608809406816812765253744757033386754683618312655198361375704844214632702520655624052980505634624811246009387115664388315056824401417552949477772393258321585008390359201893024615641055108691956115242591133978711089763668001874902510688256684920311285769481310111700551292298239405988187966992200287328924887199157832717807149546450433153041922222912470517655436511113163164113331057339888206600958488949523454324198750367956926232960272252890581794613448910377016958442155529659052562039078879990476650378380686977999168020305133828103656344252577840287844812487664645555229398235376292209101586367122829752021943234010727092307315132037040672829924030923471782724680655694823577629013462577156505438583066674981628462495745974037864601223123496960367542113965018209180749441003782440407497585174170485403253817521924020648890916379183332786195316807784468268582220289601762525864275416238057325165897993085965314921527410279124775322228412917145818800324582557381618981292999321755845971354282658576766680032471354535544138309311033709926531389530460864284482268549015477389430717737347354139562988153849085087556083892919687146709225596878165114038542345962449055387920703619133238185265305290179802694732305006664238802367579881186103588583195830276819652854492075825261553746751130145710931501327668419580302464703348492459896575259313260877378507872266764847997269995177900107276912665889184096212883364209816802578380194623052802769266317150368415596549982338531855963925534636674632839507030615465872520937587943489182912148263665450401119157408703582696446093258555945832370778845953238608343172450234428267236799529618280302907415663238892721097464235647678318227429282421606387555850002306049278642093385978167549810338168205069251635710439399448033049312085551513831364758699779593362582135479282487626458612866965322586213744299245985319253159308223194372931691691128141608492498754642887431548055335152895476543519671800018112892547743410348953098955005471438214300367518741229453621281049510548766708726059590987313878606119916506822822080007889579427480702093189040025295757509904902342759808490390839076569993432110525418643894319731501590971389023990690846315743941967308498298986067392734634042662772733706888565474040223633937713995358247140052273304394360991367666748238878386777766248942260734993966939414776358733082131862019943069605537792664285988545913128894485624064087405113857052695385684547055358058636265373025384602829905178108050175607660771603155516555398178034405731101697870336788848177776283918295507945957923639330483873858616998023251618477575755183489148746452067182712124247008722216808187345105309788166836499376658547676008390809082085962397248785523563216916326766209482859103267250662658302003383095898760291932701648707809667891709266456377815563968700308922199193554465919456008172241164570400118021454038071983478800335502015306931973576898501547611263528470744421792785185823163768297191250595192392662416938596974475468999395477208922560830860183046077304474782410505258469939409497504256657557094943300937508248367399758358806506092349830661297115205454480876240157161042939533324263464527877681834466733422991376581055253083115316559702385510187982004667277877633529020677477671508275675530242691841931411848195265619372021383029801228185626464025091301843145786583070095358532136968412188542056927155781372807346077432934774447762634543080845404530594184629883970232461309855991568946901941435037516877325922983443521380701269303554907179296534152234728433846265063063197783964568348111166570332084149565862500171481299916725878479690090142567899943661779236267295321894823545659316084989669483751214064461893595621139737367008624878346203943942688288576161829282238251838774303129167466124215995783383338764874151125325311422045908434781041032112795469241459049284222159134139090530517105795342173018551008138331037919342197438034483821194493199371908678597482292911532969613877296351407396151857907244212974337603553498431336711248434674218671914306904977736134100931421246164334169768601855547517823827990325609192858382706134645367732322613141698314221816486578941624234803667327788607472815925395387355602131223324525952590043831193042785846437953614626619205335764512148154055334776800552752621699535352763884961948023440418065885480799716099159198301208135422592336347206572968501678505890243667132580865245787170921462483887611409912571733305448947697361113206917431554431324281955392109320382880424426615594959226004483493961656798932506926691103783848670480457382795452586388780043647312541901280421395450728794098811647071661354674071640715825902921795026077256653928692574849584578001162781571944499872314965658217689919625986492121087451687564865280621403173187425269405844333928541762025454567563024320893373020966539301487941911127565590350897645325657065344086160717021559251344502787368248388782725514746730538968976871937087981015250360556030629174783782870475087738640345398612130977650958602620895742607164067824118813874107850272074814522552701230838094591702367828751683368142165704178425552372901616756419290603311890105015676945151156583377213932724973515777051713015520751380039275749832298681674776969152703196073024255897760253842548280120564204447354743201632843156125621434392071149190307895093251478365745315691622745283694139699707754115709826878300711613714458842219159430101548223209968240299191853830095767354562474100252500476179263243545623367889763199318062182680408245331851817183659676743260368465819725308863156535486683050153506454883938712796766508194557244002867728207289579829404754354069605781854234232147744126734227017753747637375666190655354183227271269045030456348761246929764178683368838421293674273067990530686408475686710250613996326837167755924706547946156267424105267483088952169239733963965359588395016853323245351979359832422833394524754317163205465501612595649681932693152164685770666509476577550813624533060397502421152471131059048541470956673167851759420171277747465070067751246975622409679599145315358290561226872986243012256357090846126427464822658040899460155668425077861714489516862336183702477310011178040987981307646192036336085566962949799330319023761436985180733047380187005411387977933606308240455686100497141567398989001308101286461415806804851197430493933411076299075257615075156602727373455595621648995114099497762041527289256731090824287935421539188024924876780562947079904921926596669242299456250236627311692805989476728720023034724326279175240001392191786874920353870468262301259090933295330102609872020534827038649056508965007777079197084820004932632967727668994920853369480731247674307855266368220985455449656534203985077548667238557738061434514369569320706516875719602004935582566905788337546420292238288923292275834738517724735921072774959055132150384218534539902682449493926451200930797195718894430163809616695463344978730812359601469783405307018776093400744326354474720219645749647817975088120129010181954275454614808376423014388068317861772882165135251943370026233152059239235027112005826833939399653429952053407937508105896262611625558941462504830719308105169483256812826544674685920737146364042188061758546348551131547212739987959765656104580535986009337331852445481132178146959154370658750346057088195553316109879035235624714418093288624057047963684190413182217539066817649488793531047419592783506235517316563863131984832927491108130289427677662062289007263193165582048917323537394439638132710630972586970241314406579274670716626011621603853273749214837854896018981901781906452442293931000246013110210149038155075432537749392526332487277845269143807989845842521980907804003820327097517438266702753795967253110307432825743154351360382624373173723836517309891595283117881010965016526802932756465552969985341909977061977367642880036945292442781110209317893540336615252226993740284439032803630180958020968948754456854540895533106807426922835901202134933283900420713671965414958443680927873082892414313471948709909939753542443208657181737945715091904747538557013012050962221879291166058021792487060105006805551157164142805955483215250609002173499472816056815413294490104367112813374840439209195589104779122717139354245252424485554127046974152993347904072269705615541443238718916484972792567157559574961490310158181644162814294811076740251171017143922477161032818345633857889068887480247388406811828734771533854824256752964650681378809075528791247642309993127497013582451408172827654790749259797344281462557499406650774493529339253902527529768699687531299910252570996707164627992323544339603787964643490080068378994800307492517715988079423245917801241865682167878275402242567038432365032480090855374713447322248353790488779160120820405607331377442079130822155964683649120316584303912304672341708804000604158848418471570141302605675488112284228974933172173635535728156510463384994066707091932394110250614198775012537410148124309763577299607115893242731500730467389450241154150432389912267819321584475332847331227505592485978708178389278265742878740515026199466427084980069965112302216991491730217265616652298960909052591213272390160883658923885698004606827749437785391461056912436863239971402237803190680637435265349433608939577041268291835485122541393479655390252655726116524797903431083650895534194023770432532285058854002960077809202185118012799911903419452417880250733914605252974632115772759850367744157630157819512773953223288784283902843136186596870721744890047435259223555966773358242443075566155267439700570490914859532781690950570031989775448121129507261458530433025356594895502919769914997198728287065428139417706430542937953561202420986945855600606378270387501381117845761834456618575381884469457548164216973597388539188237856857627091813467618744813080757129327678511384050936409882508728385472305351912477270917693057288061211328989075422860058133660176820901760436772161842400323684426518280781890340208878314044788591121030219302181986564923387253154492915800654942513853569235474323639369720720215142805834167115662671636241069313248021120366414256473654697624269060607511293389781491838004931391108841092331147901020148850538572769858186400502906086632912409168724974510302936482447969849170646534685479583336173894981636363806919676152109835607515322819104962133133798616138250381890039242262998738844218488584441194545786239232945347354023372398754698565963515587196134760612728139367818783946338786471186741675186802657764401849571644688753315888658310761091077083043851746220654436125875600836360643258718271294888506730040836779673350106867951061545590346937135043602975932932912764455944510232949948902116752710627092309165987421072345752163387597673252226964102793558579356135980738665020342963112002482156803205298424935845957233486021264307249801918479715664929443270769022780098886114609992046856999399448017643826056578850557956288338013529290967170998036330498286394921289516941020124156389988985971658143453608557208597579051059221060370891763452664547448341855108587569127730310238916653576220864428242320601555672210352229562216072066293548679199043705868015871060590597530084299348203363085974877202299864851984808212994133849300194635789915083269676874900352133649600614091880660753456874227858989027528396692545156265172518278172041993322778351307149173300968645316009919204402357383648663197557307642839396767677234728783446729822383844214305579248344605005446662110288877452279093980324287957165910898874444731639531923137203074289062197340589542360118124136654515825572683022800404085249025002286831041104226107586977292688267948127402234192039724023895935755375712716803506211582776238984115287253155024903451455066595496250132528156634961058417906433636370888297792103802505337175960967269882197696456477741761735991696091741765049776554456512239206681138819220518855961715345762032199780230071647342423294955240165529444576927516420696750080175349522991862618349097431936516232074073098154280715666352663474823478492185409179868303296536422580859756747437553177017095881127585241375322464975144400555928152246603216844463343971400655342645861762564066066075074128754028556802902045871607701587628900685801555337026489782319780026161221821748400100179523439443360250807962252709050930170290730686765996285301842361484084183094884066444607854182258693828233564424102782391025357218440424880559120487959883242958849825990590677121157205860908563345208378164102468873886522075989255365422728485731740561691911148079951667522530563466878563748065105204174275708813183655333569418184896365620114832142131717764886475266870586537344231706550091991805141673949690021059831247399669107363508790641300750346543907153165545237031915911558197705880271026340145149551318401637121186402797172338816732954061282564170311918044007727137978580223374724210897231127326148316326195972600051139181054214573782690004891177446571659376045975788306429603033810073933297932719133539684131145720240788395089512026201564913640015707873728683656984850676441018094984531631449458191597871076570311331841351731743197410637942251990104013444354593089735448589317271373174048386451730362201791524931271752902672334057508418584202214660587614354410286398387504616125026826477770598054476393356929864789584022494444708036882743420011309685208941479891401287868730039036306923467263077392127365390259278555302341705248531928798525810731776626516780357303083735939411735904429900228765417093578325650107088630397810396215827843977800416424206722940222321210947767318510119237801126272931556181385385760018990814699863291868080512168330216822146096722617745364036718376913838051691123708925697360916820760890209677122689799751323112517217772949778248590156825778304030210402914074835386887920759961200950716292207551191701627518002876776913474320411446905892611513341310147203743623524968752643642685213947922807148815523195158631530287645084067402182882118922190524020741646155346868912876333191202774567554983767054170422303820925809254748249045840850775649247032233080034223970205173246951735148133830529449940211862642202572596041041714183683146580663102639317014648738958123424636113304967839483070271499087376428510961533641471856977033873496490550622990135533183821107310871172336883232052224150441114129035793156326223365814158705345608050121669073979805168611736415132247556801783775786438222855421791716538615176137885686445003089534710679429086458807838544588828227178887226495779261634665407971930318479177001152931536130450809526590069874664481581506704876643135773818573285676767793241464487336979352497702357718612766130998167878933945227325365270456043757252911749335550760051827850417766997134064136330283987344881942572188233806496747282232510660662824885657855998161788884707847797115826235122888508643734640537834704366955699318477988902303723780737010657202069707649614204147324039509270086347079197961351080042165764764805937175275354638766485630739267210424991975264223043456594296094012410493346547565211415664720879600162187482824304028110328103130300307838944043770907301146900003445826802007169003439237446550985240992682446227774934507054338837892107227076115471192134795275326327042658693535151860202251430250930957046798877436186157561964090060150251173315147099903589222242993543048113153249645805823968504686963247625830278092664250924768022057066983169452516828877734809165410759193806241534944633690923486392748284189971570800940298375575535094533401286911765241260668858638124090495878582291312565374297931762470294052900788132290876367494346843035045593570307712901707464418903803647838313902885273553702443588047696896182429568791422497551171733887903742393222539558489941463176244107182056578670971012656453840215553359033949609541891591476676945905959075282338404520410624556291410724457238400893188350748304190158423183161346427585857751900966825495995339658128594907038478848977226204886108571779479163041920798437918861921946168335657819622910671531427158440516717145468579779933724755239312772656735279497474653279887349686246450143125658619824659488515015897693831432945960992973164064854869051722249511482640157373321858135086660245088567092256021988575616073377617075977705869650757879420554745078823081911488647436330470186451943684238250494066215098727471767850150810869131322687326193866766268179955516465246421977314659543379258669345093922279679588856302930034469735832070332488544199076952565158536122148323769068548318160222994435000120502555343750188776656864542894684869019002852631397437960568433353777261746134597999444347512216645150159414187603458222865125989586300518477797490039627610458491388320625786420281096722934457614352524400185801138635399276566781338961860301371808924341851748578937903148130342819932812828518759082250951551846251053106654599903862378700836839210955394249579420588765273381764949076574292586447411940098334733502692716766013663189808517671443183464252083753802503071015255468560277411426263018080735299273259794820616428607945629018624090286127227364251438511912166490277146662273074926956710728090985769701505181053862849877214912726157896276467748964276474940228944225532465241189419303659411395535539106448447982586023137129278646174754690184797729936938332283012260508255243240418806980657276389826337169300230215373453345360803491167765329360803602652792349538702099765478271542330891373574327252559649000545763733412801701025315396294557164503490988014797803788435058504327529870546579106580470221005413783460123969314023301452701935392260670062607993569563524946360024590618632115471459635531142518992782237640395178567644602150507700842649655048425705806167359868447809643353700050310272691531503180852813222304353840306476148592168001254212167859950121346862992287300777249106594828635634608151775637902214519134936687899227190359773600126214578654275764220583282364526143654483638209562671039803751963085393264402753304301575587845669447454372544022650732388026953421816364745879629665451930138272448909374168402057574954510184970843588356669156549353706367474680198999020623367120731362354259451706615409339304108359393240952759823904681493440549610378406525673753456996211111942275473901373142925135364375600441858257917161457142080835686528019837393775023376706552236124867793249136428132280076471536903535063659847842411536990090301954701276454738877365448493997119762109065057021856657694134061790486769228761997441633897774376046249853626217024061666236466262539155009456831071343693150255226155589396704190075659515873992516071319330932413066689728691941816976024053478178882535116405982400977437294649755761883833452979727909686414198848458559722808618584949433447065354512246142879065195679727351496086921137864550537162141259541865546245457217632878522711593256202382340506199246040731742400890227650018970269092835230179026050183023760012874270892496595228181731961300464595807511839437479090780598434451254938890080422691108655542358371103250671884042668103058829766852258918155112161198288999414090910515727804064968188329081586703108697788424223447063510389398646726818516102806173844812561773432592073275064000149970997519043788764395644905392687349915616681767635553910241229106411635944520590840673683958408624822053845166121274114897625237191878186739823116555222620554755585637412116266642836537466583183931642319726071628895349992742148015629016899909945065604318964738161532055208252923842080527114268284366987022241524818891194798521284143346741379253911749330590410872978744303776794101233516743005415602214220502765997357330668502601530577053790627410586510372978480514549414911598992905166231675262418357970656246400879170545815929857405443100019106551935706271849346618021378894874926678484174205397097614454562393814600341036441918705461170163852981699611649540813277890153477573263890786067368192803865868762148523417806069526420164129930852727130674322012998561809357763747479633895836570837087527890642230078902995286496757255443380748081945742026058007804469499893478800374352482461065836275706590805335572124588040035185076570666012420980261642298727618641096939676148524412095623991843984297163939494635736041167432372711767338646836888071978733502778401106616268071003848452320038331434419829938312704257038476080654264324565793838919908277099821538625059876317597040660008870203065700747161149102240492753819645436017924899511325312814576947324231071281679066496110069976943791425398601134512800305326260446476908209333901529429410150805998249565910880676089645406983292261071854264510694111711505265186058772841793808442393351253530197137660233016944299447316219908143715538728664969222185424796162763658705916409453776541234519993549074927614761933974868645793412702684326526033638656791253866298388129353692146546725861530181423335816941931304554362471602729289285194214595434850636215136435291960232665342044208587007113477340984142386113221376805253101509682370438803260581507051226035377355349416584016572475835910153199609324355332558085385367434201814258969557771565780056301991934731239774746390921493206011936398281241107640364379651763914076527909069280713578156144533136765864613845015601175503240667465225355435741767565253285188090629959863241970823924850189069223984292016119241934045771770759108920703304865114549292905206105894911804649932496798304826248113073336330731743605414624432650246649078643787985494334495085584206751442503707178682438325007463697562282478333662739092211947368385400844488442748070458656514725652830596872103798820405398621209579202158588978778440323961894410646892521110297906054828802335898922245579477493215808806329722741636735818509545040374001383352647049896188360225125664110030849713724709289795611035036458882692650247560298537771386635116988674393681713654786912597733748738198224613895981488994374753086763447091050405737345466714726350811414479807776884804895607966492844304827377496347789175551585735655130044399684491294490565107644169850469079185040424236586660423350191593340005390212999221762314864866193318185031243698769943585278849737544922135139435802453821198527331850921705614751112902082565583567352973445134510393355934390635034655760781825469853891070584868605083544345688423718688692128038591165393018184432009196570449830152386000805341220748539236759679697387217402664153832659025368490943744809189753828896169220559149224469865946853183333382253070118011193321717062145401638503182815851734016178689155703692658713300670669243169573019429503264260686674283353064319113804548170166945283550384940579484034088461100358107755000390102053753757256304145215188028158427030292967990442356755305864065690589158268895744004932358077956243257655641071473897080073038046683917235727025640065813281729828843857538277679097604298085386990714279861235034214936524786105342400233891866864247922167117894188139263097043219233909203994048078531576973939240980364512239697367567858192653315413795317462401198974911232008893046269713688688704656949460060295118789507700234685525545274909249002659990408680840276980333175033112756719294354003471352823991722932128212368831911037341266666262459329370164507500923700424165361876321068126576916451519799569844569378133017841732084764992696655510308061272908337803284724488795052727920345401208425300352355486657899258190432778424277969565595357388870333188564687506064124831667047995043472755205278864674576793552304877740267779284715413545565790098443709669393457146810689279297338354937854854396023736152198675219234106969926373905278688827926073569477521740072599982315832411108935940624838514782818185163746548241000932200651858511531737224699609262788735280358016779847842262816149469919958984306698157211489033535489638378291031057249305278948116074932520696334277735382242314376446466634829926786350135033933913523656933431613735484532322515626247629009211846836317001400928072109100649100458256409130162644445192087385192755872639760168378645868197127931320851983545086774910855916648044271177711063146534709873421849936723225045968483171446896133465635762853084367478776314660991782074754413265431474339466825687915909362719897352646442298569801503699983822839003574544296542761203779888142385932894647878983025148606188705968310839317513860584129494214580002766548505448125972170271445180775952562576762733378658498312230894387623494112760354134489040212631334984029014833043668782684079568231254665342721442735494137362650007582166901675454153491701273796864997667678425696417736076161889817816918323096801449455180451494832096811002681548527889611411573702699197212576395210995908128872623661976666003056018646173828494353554151367765486438392481994185228281652886369065167634845709761182075126363144769543710153388186371171425723874220678461613689512265361365823271496930236884853945460464772745286760971356018899621232203549427902632567455687112570579986291763825689637330008596399989250753656614898631755964842486933614150522747508957568605142102756541303282222241940997654642051478193536224139486649246633439453641698359419855376532870686532909638182990054496264386175358330590275928037740865904613534115547836387304734046314234146463571866740502448711468534053961442394412543165363087807996312322800970918208541989500481455965135112674890047379779817855705156513546700564355283366169395534290555180313930197657218927362812284633076697207226572656319610673340296224352387662903950783126528490074268648738546775884096681844712999969408992654499114836334553970641925510297083674040603267583971618566551536058779789165063014772241558764628165177271727310971005126132779276861213856456896944974837496453241334126771862800436556809458723805002468456829607229061251664395381542332908215715265974406308577864657321904222425510703803001751346592395421095566420577894436166996875284020386219253779371788613734575054461593336902503275391941327684560505157434591039646065080772651641886296340358570489316800530383129444166845583956696732696130543587378992488489721819756198216204533654588106599009579365034333729413909587674506899099597060903318987617798294265683831435357124232252259588807797200165684108735251351453053588482960235706424126781178160000697957875310593039173847181358100996047415885621471373998245832454103090666706812690013249982098183717082498849584351775818629568224721579931647555350256622580507300287997502278461681221627326968373550778158625975607928797746150790031301809069882426127862544532669175389102159492247194627824503843457880769546092586003956145832679011570997383406362999021096460296774093531364512673230124454060394097259770222036974896349884033640112752604461149960696692077195514926957455359920487934813298101157499989307448974995477338113932442355893551899217340767020054072660384901253037347502881289068455425630564915408913932689655709737705839805246676264617019012808686819228335512627543459404629994522063166158429172507569317124188044219818242669701138403716187879267939222605435195805373846529773291322324456336900085705933291488104771876600957678623268931017665083722679349711385999056868658705213781781018150865548765502058161494941970740510835579506553720762546489020369701773258871078634245775687274245037308111795391748835182661531994865000453834106674506366079961723113306418237642225241059032953821020411114664981546770767466519703921813274841440610269853048056186853341292637624865599811269469673226618424351146448983688455374529804722005476550799304192161640519614129592998386043271553988350001766267582912625890253315921394683055129672370889698070092070999575231115966967771567312308637506471177289618411676682212421021743821010771942440053318051575001111649335526784560697439833692188810864042900081305126708804177305052400271210610395513183273806422098459979651877884531856101570841445204343653166138784088381220905169298593273524948153401836143838744185310716382263966709517918982957174519836005016891325749928550191190393585713749158062391461603198672048812811762775972043985636596517517151596369273386498481874615044144129165137266623374544176795675763898637042628034251085404172398519043837900237681396723911464177547032814215297859445178765586201645948977195056208331188639830267707066786505326558207643606183540948693067953724159145579741569274487976681094665264124822727388917934923488506484569248042420507892082120979329737118920433573168551510101941549640064031906510277151983918265097288950806558802939714339953123201110561421356009900516339306584824541246849382596796051663760590741064858670057870451750959294360117872003155210841152203167621233608400857278567522680269659596209767729358237130650442199039818616991891957581688043976600405558609243638438325485394570895805845666756066755982414431145938818995627857216861319733329038021474625006243651807506592998987000606619221684592776334481003699534932568351458804298092642518950306612493575919103063897313553335581979443983988614622637285532463349541236066822386923343420373309362287591622026892795434527148374802371616467922442213087400127701090234600604774788605985263113081741187477998922281261499079591846760756977716716324886652404018745626348462089747242217160419092528314170714155031178683220988951471227743583476460618989552504461215280319889056221059598626803008757584904935406525415709604832554162756049817760324741368681436839889528441556116048091046768246982352000245476777165386595965649975542191473301542321364853351421420981450937130790427569517252633759881101236802235863636056507000938395397371191974138857014156275162837926435046621645784683217170211153494381153526847106969109890384565601825786993321139563519584236597503456670241922335174748120457329634096953418542436611912161945252698425261307143570703947784366285653675130573601065618548641588277315994545566293657971423912207641978486538287230531441760423807193649622096365527022116341651155496563636111327216229994682118923473491988604244945958262307954411083622854446745474286753072314946208594666579036337195513150745040357733623117616912668713390396074225370228854153433703666586044183954378365609880757852285587030937202803620026595584181763780713914790625627699393970128667127620053862594075511639974052493052935775322204517231964877237777545976822763446301597811794667765667937213682399791604478448087604845754644785135800536420162825870362881159033847019391469157429740729471178604102835869807579229479405211655401288526015844028109071502394925111502106507539420063485667358518978607953907852930044405465790127024247675284825370485059961283720800710506677835393327908300253430103110890762961686993212310453714321342209083025776651008000007601577193349268191285068541441385298921393544147481032238126360211764525799261885424400398544935051708813643878586275635820879245257428430566008370155191255580438122193707402031262660996077133399947552660706064089455506986279971722005174781255147534798788257870744067318836516749049951127422239416647784558199857341174919501851450472467236823434079171559862752121639369897006748051912420331647780914439174487766981202940112969387217782121403915124166930754874522213021588127857768091690337240352532324487383092758398539391111067170633093064993045371098100326962128377470537379461054124774779297574947314277369368851505575794851205978075632648066676814324740785065514151803157043308239508273256381197431770714527585295837527725394010563296699975733014476005326898582210342249004176740575552915457686983024718323871706657172875000718111291906161227126186393600561616933347172289912626255284357210222465619307889551004383534569112541834034126653150829177582575619950925220074649282581636837169439927188455620535917547770878082269241416431181036519147370604784044857147888860833598147442897937731648980471262956691842196652770218072663313169010224747846868236535678431074780783507413590713948642260695692612423045198828905831995919198603439896611896378255553513869430231051966085487515017492898650853785124116593374789459797067716046622082934458895519561192692278630728892142969694367307703580341481841593710133729455249004291997948148134915432006870385488500723185146161893577472885392444428727525371577378476573819149329420239523104218356007166353339147378348485647866644488394188208673608524147394596630446348892630399200922145514085523243721777356490874875659281941225738331635618028487963913996956550395597950784597240373595672564138037445861498153564916031070746848778990370907591113716546729440367543610939541021083825521417132289018593229891555690163376947029411639694798049307782258005356933406910605816434031935763538115779379584811119272791249386302145916407153799943530342645919030985678869862334693781368096386319231252796015279956157507498522990629098124553028169505599860439798704094100934438785404209437669440414485832655737425664605085659567885525237565173863554289327840738326917820459330099070245276741106398913888555361147117138118121780752258266892325492151053713497985072501017875784458078133915029800548522357440571928643669860409872199781099608372782798403706565745096923169226804038714767027225272707441448838931450454272597612904493160457732921924070772815943499909105380822149631260533391635311079350928767685033253936552810773761123137533814519487143002093041184498431519327823466450339664597224994923567495184717412475215963388442847931838533619518138435645362001786500261390038885415538078778197976004100839439744726701252923094762323208823611464351730574556028576185825992052025808439501716966979274677461364436351847155660142632151881004513963729674076473343858799630970847677612827870217680643031933906459603107196657938156664162035696623279536180654792474721032767578447026568709262551672707495140535741519438217291446905025555948323799094763893583957503772417891449984799902817679916601309158880871743418651697108167944766847548554055007689547559462906178104396015474636759134195307151085765778499541771204672128131150957628233293936202565450898698849559731014089738960400149933336951148302277247438341132493312729879819083316279638588489729661256831100851732236303599621604696306079289302957377849973107335233992375915646493615928852212074355210926014257718626609536979949093430571015349616043393673454385654275806732041002798745231367301829516511092642556257977161373728319806072452460451040658540812182638091409993685782305546937073925030812631879518416646264576823979874526274295943059378937193994307857604178131536253623696400733834365579873569144871414247277720913143685882709557745961488910331394968319844621862128882355861948207898094290075088852360173021850163754883473945305457357951291359424799671526874859737808376279643347769389397369732129603235434595482916797416745549295021816189823557240557141604550297146299201563106548009614948135172265842541799395134780878888818953375184050880614330868633338820313634633275189224422779976299131629420720822295548884898199067613933011090780953636179687291474369907165851389679084512366960494843540554485925730916849151500775088202722281969332813593584281337641481116306805076484658402091672920011346994506146217342820916193105406320748341284395079739676536618137189399541554329408838872963795777042233283589495727140986627101998487199975314159506349872696750941678260375133813865823569533280299722857378891210878405502610908375969521096356665146164847190418213418685459235759639192999783072164775340364289011963054255368994528302295780631476705439397620904059921619489577871128916343672495788600185780742150647699968792102688683136205278893303620913988257943773407234438917201805907452234172978117192521120221334865053042509184167184029451970158405700212567270811211824853078498879057782235678831703673999914678200485328988339612427936954756296728597870474589815998824533620184258158299485777635845245417878233683521552075268939705158983338575629246900221156035394063298927765772610901879493085957547841667612863665664977472769412521190243178153597333601572216651265614839532856348125680028199079510165890893679471318643983368849749058535900123173569212970412538665458724889212753914413272967687487830474744018396446738376425305588919158740912051727051326224624398137243177177165088632036770179979843749548201553705330780269718667725018480032093401327142302609455206296648269177919813403808568382115591851045486342120630548791909314500072078681635413606330125248787961268570596886916189170124498646787948977366061672925272336686724174424794374632290253610577950592607176717403010474194893091250073454001070839055107376532078975194337162482209398706877566443330250097264597440345809445136706129808333307373239412037108708315924339223572277492170136700161896948168581168229706072738959781926199250765993107216291777569626262272208711051472759152717255383524936722923679205466634045673683398296782573595499887924096382304450204794359631035413782272664655782576126453059998383362424427161006884836941308060690078418286108731697078237049812194558060364109165391707871191811733964963095749338569880739565515714728558966527714288918044014126512231131177171980298844219792815427133818273473316839686785570986608864253258162682793833549241953542165701946924557545509191278977256801201655023809337741613796598922669521249201680132893256462908982137032831231955394026899812548134914796879767588782624740782272269695572899875039696568393844465426568881681240430428371228668092266463515396191951215437375445804098922060364838565454530862953083896828812234590109472541960705896372773762125465976276857524852590911444216222278622252012373856254161256324146373129789049716897751027233500817404543820568650729366118747539291070321938182699534591449519394119312815696801459527465771730673274377882305280875243583283702593314643952727193637082368191168856302356535881760650288570363953148538761637234966346012612296708678636061640187142244595901310438866372645833370749934215667596627082237397733805006790859316183106690602428464817721383225874616506920160022458262288876067747644137393477150659058314391699573950288064047066903545044482851408929981581956239198059668615363302611383316139458888639282600037600080824197927580535160132512284633404340544861640916190538024837603993400340919637021482197365514976815853064262796805010903114229087999602904712996802894032558467073020739698980064892585266509756012705879095564441862007592274727957772091430551719650066391563032146327908651286730468049927556667662149243241628018023426519765776951862410578825890127692920374188151397763420956124305405454665382097266561246460968418759044881539910397018982348633461740369625144122658840843933128952445338937872991165703257416702624123801746819244717416647081998853475360842412105596567362994407979559829838486134543110524205367592606952064771563850583688370702888324057917257386974307664548688807456425472559396790343128819290904535888184915406001334132778727974872224967546738628868619482530096531379327693695426213366168378017947745428027122321686262321233621795638504620754921348494473599793904315658054189996179059383014579953487263382635716407117090199061101277665191527177620967391647889383309723529058942701267910512814505166460890389486630819289189220221791717140220098660821160686384267115964353634693210833028505654252078015077143708572964937163476333280358249537650807110204753344607313325024373750734738972528922660682582134363586322037144827664648931228240090198323129842184482469728954948724558958158774715716717144755036243365258737650291020171649764422993012581718851883974305008805060747185017429133874865780461574667382361173616482370885945752866265703424072921811844183202032402244963998569467286615651916403038903770611658730460030533665065952902631270479735816831896452908971277339123029555068202644096983252622612892339107834943616717978289145696769770792843429712880737833488640736544395170682825638388392418106054557192421951867938283765628075244172297249091502229640802443769965969537875649847271277941429551582893835780488738424641778636559887054912992677659954525945887809744850677490300505527294283466074796290980181913372727378267828632666650431119172033455259910929058045167406654705222141977857015263619560400751442170245131791375569419024894471419933673532517520193429387444780012133465460725395084624203377972524906360801115979673821706411503027884525144965042402575689806180325164956739004507683643668907319228504952660860506938984177179793846839154365697952420726853300041825565445048604463299756944207081813746272787863742971543697481662155986738824525355133059092263896008320045540779212746017547645859830734653244839397497301184146975498300001592218474612039132034689680993267929367977097922126849263521595344362969646133824652215425305177613299967178898106719541778356239845739769781120428917392948843655565498771406249029456197531620588444647299913611940688564835330006509669407732395705299254044058614554512899003878284423637830593329289877478085465561333734331732356210737985016750113665505353113678621454680385888378553491658935974105164156951754435900646639084615371835118306291711296859922788704479286128344386594702706375875687757280928066955336793944454890328913241036054213479222711180878709218432713616052871500705942934973618437792922169781187674471462217350329161896502364151773250084934329916930981011162826521848413237599154429417068781404277574943352936637389982264355504662032555324407087865254856068443802308696890650053088908949826118621281086123613951585536115423988651476166053064231277085213981456668489856708458849096683510012995508085928115848423435687131229508623910398563357099792052399877787511530885187771870678656660760279978839183669339745230348669967865626986897553508647771457826239721706430342244480807153845535870120584299902283196668456591062977675161810987516353003107992156829625607926430284395751865399287603332543204060966382869445407062758785976315078687799327237809450502938817199170303976150174365595339163176772966785158350346939975994393386815782631747123835976233597928594307855402404537300770481772734624679798175414870368179316943371703552672821331489121580977355581864158008809982091012356542909239766595237889547035003817480140376477895646758235512956067281161328233190777493636060165759397678776921497258612219282552662802711846188698085966263991146939853566997095366290517790877914328124725043190071060549971912547561417829581561006416594343036118052153471112641491058620633774558856565352407520218498771545574574646305643689347350073861313948489941494869919055038824210324392463304609455947621531777210500825342199335381806998981387628561890206423691448362184069328593468606573119003570167784953695038343988844063727643573897927206496794360494352483225322804366601223814893838606353414830106186800621066806518299126322852728922533306425488852886982700660378270624417494402600366776896132516374367557734007305274204779832714039047991121866557161293237168899590731418032094981750246534252023950987333269675605354434622602054778123536042961693302146807272958178510397667485493329671470221728307860718103741140974273858615487224600448448303728763372783782260064932499968224463007833837980761570673644696523377407021111942175456556868643382074874421616980883964877819481960355995981358821184987081427865363011490495894519167302464019071998691987402418423876528275348689292143012204464784615787665032079429064910415708155888007089206138851204878863407171160949211066853050696823813616741286720601736741043008220572652541396745567059889628418942243037266201689496416975782192738272926866402368533052414342529672726870685470803011877796602550971782113817865156770851211403995693377811640357709900622429950307645900697098613952913297921622587389133765487621325444017604144915878046478913843457683386750928101661238976158288791995736887408609224195505615889437515869450190678477299233696112445087577852811406779918158100491852271811072431909115166185548383092981687339619461611655296694692849121795164048522149541699514360443167266319003236072595143387889511196786755168961591417110554978340182276319782342592451036063024151652978303092044300319175767965723138429693432736445826838314940524796314284141491542036467522908918990634201952625059268271527467146402371790617908418843111239550125706288828107709502034023015900100554452010327878038644466688935312012530474271111786595536749994249103343475303912568254960746154844031352683203305490232273472045587446162358192702982793038478784641685422578830087540790505062168107965190513320531084606302340154913095840825092167015832429221419312209914638683042223771185875568396995520787168882091243370899830798822865810043085154071640998123478901235574359364392794000509928879731504122828848840879598949124524765818809239383083927485236018845588343042161545928382948207380623671477846705840436343386933778887056459175281945849154120313112465443421065930984208472256605304558064250892336152034685239451068146835477297674804103713599915066398935777455726495073086864334319943035995722522857075011954489015358226265015632947728540087610272946723831462683341491510185495034892732022506641166712898345821651059395772477734238981256650945666433885382165873626344750239540290060168179655940723388912571135288382374864781440052287990224770336289636861936913017441545816668382964601543198962018822935004770434714830746036217405856109440967552061090422371933669641176936693005003369615624029497452656108640754500608911316799071926394850922660516489958672747881544774024551910186568743201840492793279298749453745322983284744870409495202858953460506080717953708001358855207801844781640939628073515598551113571464369176655822271727480028824162399652235503302710484272497542895675990305506813092078749839000728349721241851371456280250051664364252840741138595873826003286561265043256593509470928789183283825621184966028668120763684937151521945357699082855739947491145350041280941149574075729491811662108121752089342192774258508919317191963372409143695915225740796791700229844839595415586729619670869732635056720512830827181868805318195277454883254132015001498733561499444879409271496990413687299624025487449446749257526233451831478300033629232144813974439440174163732162989945553721995513768163957964223649197027669712322719999386244364178251029758634096161452899886672287487413697447153670904638515558475863747338515728474305717504609428616488665557757588303036622379677633566972128198976354656127068791046813491536865612781516233324076749913971807721904844777172240846682131490677251456854010348846925737798416519014882044283121077590450547665571241658082850963942970248075193783174861954694302757056547167049850155880446088886954699732500189589348515292572496229619817034170252448142447959837528241910292627619671266913829954064313619498655627170652967339857981064025023296319393387884771969772428477907237460559026123853086439602052125065603600489063420441820580553505144642857563422014204364963112143647281629884438893457770678912730775252303735678895556684748960443079186387274007223985951278049795404910471308626213456169993744303661490692472310834379697073808234804381934478721703606392400830729453692547531713916463110414875013925419775769161696877047692163733111785409962092749371517195679124378093621339975300673339216498441450732339334649710436640985799884581043700569300013735481290800620897341377244965313674087436114307354231707812749136769866521642214841508941034786914703350574406843734366864995700925856236320605751186359023467213781672861486462959802702395520226209140728744144025490504549355696325931975099346082151082241374357937678384884967287307078760525134267981959777914127471260594729149986851289186608354870271078015126457541447868100109530681607401208177647966701157865979989731186711953159107248003213534269149335366067476206591107090984904781501824979789458503333835049185024880390749143900366621941709367411144882258957402650375495854056362879195892929683156353145144055023385580073825735630647542635062338304028585569435869130033112585659511826916876786333851442633400208354344957010277388645530903917242322098424777647381738255945215809341245531393119167845947054655064510226371682463692717330167293894632217195700232099462425651575641368664878702364854265067253010739322450035176614811457933544093743041772965476032740504731332759284042121103340902536766574181618671422924451733118974820818199125629819843000752694354829194254395585996323718187011808699407151209869361838774847323365326140620072775750573511162558065343849636305010134434202765501663108347529918308807671236616227583481828123156157746567952959826513479811147257042574271476425140315982299250209615341950601860763335186169842093127540635943298402867140661933023442657143099888714074651300279103304587375169215710320599624584365343950880945901839686576934304961951312105821290275018766709253702459069284605117676163301835673945346069839257082909181671424427503893140217940710612110013660419672077881351125436142985932987441337220092123665687979078355908414033688724810519970979786235401028472327639741220853737513418125516790842922224604432617774139648877527424853504103442189604115858387841135188021512236914096287220731171082223351714623898022515323667652994705325481078723461357338468253591554598637651327446545592469763546637985843842517379208370324994281870327495160498181097488378223191840252442887276830530924280632828220503551140717429902453661378147663099063158234796529580603710109098959236364073220240136228171189867417746377237946790897219801693160573839518906924004562216682905473759603282188638080204905721654539542260191517570861244753166295000746059850880166354673716197260810504012608980109637993874522164506773223786746497140039745808947984737793544780601717290872735863300673964946454097546244232459873886360907501980526877423293287974665419695209168750659003779475821978631924215456928246777819948437324728416673634839633806731842497059339573476041762983271441345610507444486662887460241949276620300672122072820099962633436247888779199988237983416840372998045986118516432523686621746656291236709072669423094073804151028680044956404455785157680337411806152405491138748203862847221408378403312747720710899099161880396816880796208410151674122265692124652555707131698196962653681033530778114217399187257117030086615105544302404432797168584363658244229272384794308692763928091906158686094906490784346098813390731406678494196363877058236716887602404936385774039262749811297319729163014086008731160495244130847367301038862231203064537850743936036598706573163405370555083261821795538179444694692672207520377225339582740636134238878250848657905345392985052792079524071183561095438138730925796705586705719618602269794249217676309340099505858496152196276479551490416865525133921836064397779255599569180954495295698283987361062725275965732435513456894834188408887822237031371151070896287143393169113725547262795223377822835444027693865340430113742855209638995675243948460892020156968373947916541182367484447430591057477142370064637427144853968569626879704144135431291216749557261842711173639715127490124608308094156765325948963804493614380920190185535858698899529952457578557322344642672430573829401246053623901082768183314326746499449498988929728417658381703245201597389455417687211787809269292642776504814729897061698421573626333834366697096450711459050717996048321361197040652245098160438957652731419579977152088825580304236502287139521227433221399548286599489347931762102069279045492532330796657441076382585958304217263698578838189828330857107099148236369738003197841816308164533711967218175148438782993493538480585857204682076947585214571890480755746960876366428991083331406755955306659230213870168866948679155194519924541528184336125030500083082183150138207209192473394410703848769706503723065114914725127247948301007692350572548108712825446565291421890805056565671684548068479681427134683877719008811415428589062932575131268306074488196037355788779471973302353014312499598072596025925871336877817283583013440797422075202053590251894283358134030637135185364112318638377912319504565017286632837260547921843304779684766487954875639705512521797521041568338700350252182252637903806973033589745497054457041248807893384495009018074396652048766796730665043472490406020119434387033063350138818201397674582603176044156248201369893187262246426101436514743024074282596317549049364306909984377394592183521304803841299166100848668132942850052366250951604338784820591863151387390756473117133382254482179855458115998628561363886757404420778382166835509896788747299295525472091571743239560541199927554565557358705470183997574471830977492288568392764515016251967313227836756227382178750559846740032041020113140405425837659196938565901494192905460770746159727618599383243450436290150615051652331967752799401013497031460174956723169931459635803306424979013311908999225816349974032933879120975939767151618564084011125247292035955880437722550625278570313108458639507265929206921330882807049860993215954539100984423827274712835300582232845974150577215756026001817972548456928204942823061989124535278841850286086669784762378378516670489828198754017765681333344033006759580949367632192087726662409918618538191837748915882012058055801907754553000068853848502513969240487290533130286879705931499800988227140661834168530844199429406431678880244433112117535882395618335567433470190962271184424184944603455098023439668614045120607690824530823117890750745834488878701963338479891864796350636368380155283439126283637846807430312671734605824086017149036346740798690511077517711581959186119979940623345323694514772744435539297737981201337329135735896103449356314388776870786168209456749499971550891892694105860021715305787400890151502669580477087472408098836517787374225784331160877658667624288934593266623351728213341492163052645908564936202663519170764647061931598124684479244965265166803173414352753180834803460639862392412265375343323335393699980457019720672348489491247440124201856438053393046891164535848823382144032564874748191021267587400700927740867680929205830314920580386725063283350264591401501060890205149457944187643797952312394034807096062435883373376615938414790417389533128058583724065672694471588068877975028426682335857911318290766269412515521979768108337816215537447730692700877864062420943997417433459943903376219867242662169131614499478852986890211066334725113072263032089347974948255077969622121218158494264563618541923272131219443416774846067955731634496679837412821481586306884913953427819985481877446154388175203290103567755674166842118350801663307717930532706311033481123616065034343404275636546488691708358598408333189115251399678653050258986949487561409886300836437120159884649612203589842917056868477095501644143971874824160546572397996450943077768012015586783849007700143340832179689953820186606661842943983339811071681511120303628423353705446240486980737101593796555898483331970474454122516095400079587705214989809117386997741919866394071811139377247897282271309090850296194125235998853497259844299391341408899017659411137838050320420498786658693950856102345331871284428653304382647218712613382250603568887539620903056877985517454731967517369112996426170108647182555868785892024565998177799702277604613371073564726052993032742020796956520710037574564971529832227997732881192757888059655319345329285488197767292397976855602169981009572208862571057376327928366187875085941267232886025500950076832528683402964175885182788172107124711422087959752577844652079920149308446192694533636178916621365461217452134624679327285951746569880712454267489992442204353896371455726449107398984829266657549178496568493688538070788267107991323202832768417214524135469195380536795242331519080981991711831464684818751583421907611195933852302850266317449855673156194354133173581174205103846693242365314775732825376686607532118845573710273209904907625109909735705741516080966820315014840362556839765245168606912025341525112437706451224508239256783717961286056984115334755717736376616462282516590987330696748284597999933525809429820742963472357811935872662632843924178365748509530007826433090764272255058894989211567651494427288977058751318048200867442661769426242180749713869859541630084609397595251040625212453544057721932292404151112918462123877761312296189493271666339258167098846217485189245069653756772031312948622440514908203141829543414037132159645519838073127317363008103724634180833968331126705379260511598444637634339145893809070398136781485546813982940195275113952650097933047621893522855409419455657136407958318834201759130236650510935135441924019023299126100092041310951542040232946936807928004319103820537495181434654392540035976774264891854406354710877116142495105100282049298713196546183057450278967650281722899419470311293509260631071167130201875547566450670341009352257811439289449722934144580275524116101444688511025045235051579423654884026096494000453996319697801463543320760691551895733689785747495043356301934364736166049697723706944841650031088743534026517659010368973257326035278190746289223043902313496851862356870176064850574029976427059376684449010308757909110722860830441103892546348413127905788085871958758451545336730835651736806743155087782987517384935592194028979888134426558668445436582491272966511958743824126795828932667189611431043419913782662734423243637016419685944929516052749799901367643919881951152765644322939217587071974602985377445595656879825352282642210081320477100215738921782382221267240800563335017171814383748303411166727502665641139777181930923859982268108694292324320659240658679479063506799693446226391559535832225989621022931484858191637214209606781074463402613730314679287793708478076256695459646837216732334408302489879414054960054343511341405059237452912299028025083660025410026019217712888643435189054118396898188206017035932032334892500728412383428833397346843539111587374572235466327445597728538711335304887748227948802761751816448446280592976537874719056804982159479101394805153408713134409708650114820631098645543813136253841699531156966279659953982202065643041181162104760849474939984085470334572319238099347313606479798584648483253556159398647259155780618909601931457894511938594588624396140455213420654969044234147487472429410865809577937657413723405191184772461765560493242908614745262429491211423517508758343547415281440488888955191808001824905763364383594472271835487395937717373607973031325186545776797052205001723987683803668713139350606828166093643919511139815746256124831447003912795095630998340331160168340155080791120353453152743743118496152285977720062782088613587066140610501931586860834734756751585034014694116604634245117529745336131797380591133442375824348148243321898200393171100001367617658929065468654316317080944697687061125317222139562803493921734319219345271647704068637264341719640594457085151837212966880705898091295346763788255827814823903885328905724166927386009240401511783536550424787855003822636606094041224783329054773227535649529446882660673064397403200126269056783708847625470023980774960508551466304812990795687464396897818865802496912376910611221659051653663448754646989109463170903853397487979865854507108149542632935614821785477132033461457653190882088914193840549418288482324020806685292524305331969161791243835734398233842530044813230354273907780909480593787397169483926983108909866132284171324486209643879818882618334442675384157869502488558963760521637304163359317047938844803986684408738934386459983908152057770594617437433768420076750907221857653495813871322684036009973888157649710530400290397253031167831825052065837411246249398821638773138832971024618494820696621836755222631673824783278079089792690455822119871383045710602063018970189048777791505404968425940701206999860887031177771061952354749176291298527253413205852534702185465667648960844362640999470138510705288673095393549304316131672279805819152429867870732420468150755671300103582120903214295312675118788768763833845204801971011560530269046487832567195029537350093051067969930458903315542916377012938754061807698280847099792408271581340678628949153142730175251055387176451588582245739769209395591789488295079659406183377549381159795957272313834291105143490777432451955994436581151028081483503525803552491254406723439549545476476378525208599340389736847114092559260509105467631370520039344932449190562204590525534132861247176474258667396493092000793231546610671988693929769118179889875125469226752184166111711528812866000129385562487165228335253767815164013841241701996109132059309152257302868147077502542447528636457197877702606668221748007325510399860412516174932824142833907942176660177707477247212132300498014630995521873476840291650469585491033645289488801157181500558543618599149383576661793231990934307670649896609503616637775598516608609453359529305466285861812475169250516455706001574187172875914641754609574399006911524033630321078748003502383855546892244849908458375166529190427086166802023436666733647904933706149595433610671762440347388933340584718759356185655547644144513719810201443200637967989720882166482104931378758457591229337901171973746746773322195918740994767411921065930019496088847165522625395856630486827747288377659946404990253773364234309030944007289768004514926296587210396533836596423029951331075867769179375256122051330752399500548626454986065392117238283330549656350338189592777938849405320086774983414472457856559345875335591155141325301720498873100169854870501141107492331661445277915263870451460584968820746926269997999382033429092727542022766343156631945293299591302184291567733946544422392127767874895359509342526917716217187138081902985242129608517040207036551628290797323195496905699256480645815595738075456043047151142019805751094927137975215483807166580263706834486348111210799907886826372938131582472650687613149924068977385280162042213238617106731575437741808063998807730636516800250628202249674182711654975351908948042692679039990795037988758152714723340239693041065789556096811196777127204513946418956116675473980604428739054438168052172322991250667090423077029904847966327227215776832314801227084733638216320268009681947622750149370766458673512075868829725580245703484038092405591865182630599939826753416995938456309930131635370639067895371788804274952819027243002193408708067298001073061783058374787561061426844991128185303414231611479685413760334606088768067866429320746330322377418634777463676133481913737306910949141211828992423529106430521245877305988566895790957010641408193001921075662449343577174067868385692789741292527239260322998747074567510517517585719342538668295550721698404681790213897734272089507363454914698741374562436861426259937063274789911831308069313153691257464031157321336489559985517399166713238776542237338906506590921628355587465434777125773459369195189383612297304111217256160447010711442009393382004654930670698437543954819064340187223504387562022691039348518883454888784799736300450887191214501359354095480048248806086953943958249337013006108680811600142672069419023740231380181917708959080697125525380754151813493465171295610197885504751132422425719991201551653210462131409467972902340087373959853234567478510994457189962047278076431821296595094264720031316045827550701179582692699048535965217377346407904008056820239184422132262355556948461908594870841673156800022338806306931694775937889778044509652787869546962579553159754662876074144115168617714078106558268022100966043573564068291954307983786604215987636329540947852347725488756994605968936996821882502919905188100696097195862066608870391459342396863057111012181335716061672443738537539152428282464787559019674824215280410509106784866185871929971476859847839218113281070819720613112563264088958960045248212551117732496530518435570811059829087286847478062504603183462628039267120657391472800190980323177691933673764747820389199805458762644699112401215900900149635455035616407786120018097059632529494779613558753340961545665907047453269324787687999681826732319757234644791876826115127386027392469347366315753619101302591138628999315842595800152363723986442802508744446733161035186314997285372282591156941703892464155110002442865890723673408189238734869978132140247953584409605505193997487994043736293943817109303422397308768204635408723955852539144613219009170420614041067941270497198235615460990963198560872520347458338773646104668836381553599435951750545791486345990439792226709290745850352961361733307529488930575389169943069419860987513742134838427442877412216623651385815422558168089380801209729274240165060339934698849603249390574984201292974402613220644994333642087477723485557499668216312458572136067879250160330038225612912132527040215857971945637492438460473786648803701935786246344976427061182737672054740137331048673095992861603306270554452783759489102940845479553749334522254366546101635118721850109165297966587494849131526253573011498380245071058781713902507066839926100392517241165700375232532515755181458021314635665165949194684450075357020635342627739598169862976696829399654734325525459415387462972862439837843815064618142896604921251055777870665831875854180038798409503762683183151291357296513977134678031780875609595650672806213212115204497373705651775073286607779593326503303606904571195667059172899759320186159189574064709436847075381150139370550236427520384742006207584090552561217752620399931885176055757634785958833839042533931522703626924553814085341249957228441306191139872378650813780456431291711882830437254834189471197196017235931702946072819662940478745728576372366489309307760777080683156471776429965771777602056629622817692219563768578448995593014283245212209380661367130478090490252447496837588259620836788655053796316309420644132656828568296727253877186393159987615009090531119417134085788256354132369962479069891251989567306707899944903805374832854354874138844719753324701287934670006385974193977349564067366040836078411264838188797004428581108230230940025234359647298531735356949027575718930056540291928009913668410483119349358010575568948451249908106988311626751691826343541664045634993512514022402836069741222984601133002662065220251351989648136921458167882049109496737930196694816958357549486836382359323294089406164895878477615153976573285011524981838764251842424470202163880684400828720804529850347610371250822813371527726228425108456274463048706001298838149557299020280317414523745027429258789757189737111787768940810488207084212643505622625025877209177759316955711695547828544206570960363403773623515020863385867951033008364968036665650135437496571209987637298627532150023789994472583834071764379629798436261780421185323366369533132650872201045953802798271922549505457127933095248600504440744490952450638524416533778303616004740633730502039589266177803620788471521232376824230537682576866604297860656242452339072042558166410083882264422275870030838177124127647695803132174042557977645148687009815915630325711173434882371656678761184628757342048226299470785932357010532043852867002294377944757086996767794212174315359928035904465485712204199286992204590999472315984313134874173503996428955980748679466569701671175747122472568491364106825475185188940480346001973674413681329233782124782946285208771346085302576955875030525498860410379755282363905700398884470340274432748650695392074728810011627214697410388927181806068133957660369838040033714892592783883900981304836208689134407136334507404569303972346044276133669258638705618506174413269546137193282122828209852793383564126923840663697882359038297173316519350530884774969470401859244455975039193737905855242469690938167321166623922268615502536722892151483473245407418955232664450231082758585802653740335169924971056721524637144023343527920364042630325557964724072799259666928345286714361843835071568728958170104092010673260929773003121589502063782508254889788449705963138792663968702076459585134789043634750377182262044272679476198947216361021911331445689827544111814367813530474541280272071150476376856616092256915658324939665022835977854623029320361442188874774131826964624843839984555711481911525177836101152333872581875081720175960252611997926865333144068843096221140608466580631612391839190566648161752125661616182567504583202255147790275147488848955398241982878096557230654953049919094174075929945614707222607691779351260943955574658016095234249733550120703975098196879660262107176873071581326644599193498629167320002002072729620917537822177036494821400169185032626140202897516574406967767151473340560513334508894972265981853232589370298392249217896665376218004650963001981782396990263457306658575965577385796212825765195194336817967301263989504259182500027602372443845341282431627216589833765288554908740184974297385568814238061101196266893620515414809784694348610253032216569024384820430640774190807652708253508112227129159479959505605180464991337811662811073286832906602592096972529713999257558134033425280066137754640034727319644870553759695790165757902124007075591466222739810506119546831766361692288619531717993332167998284660810091104966453840937890019239685127727903161044561247805649011191563326434800274589907821249782942856332498018142473377922400203433278620278751627564073645433645472610553766692702139354401027640322967503122112062621644938126277405598651449286516442902853640972284443752783868960679208650330577694788493023166846252298253907148391108215244806681540672242566670316714937821912868288785049344589021561828088739652960202521689648530769838651029891325902380057174051026623284058457689854415969562008697146540002992478984136354895129529309088863016488244944991907195204394050560546326020272692543546962924555716632827406080660590826984604553092245672327306877060933662846670666383840491596448040230642153659670133663781113516156352195576416692017169659872163662396938700239367374797920055791404239509559340696782276094051851750316433360411187198722984347661143783257842897611670522314965727188656053960147267207774788100588274192024200564254088730802705637490133843662033544681030768475151996788366910119943060451554420064162275782454571743011808445054523940258509957059963224427051137207601428247548496242955829769597715475584300857564247159794636353230570083268973380847148775708479712315525653816753149599681212399095251310513803180799665052219943418198378711738790612689251142946561425371779359065934452019885742666560795950872133195748870795359260850946649704664743128113830004415852318582795347157453348840320668118361187916288428300895439796896904415521413240086073081315061223540411013959325928402305058108465631495484081615207377857472713817740457858096141016303343238326967176461373384671351568850505395678366122825325398752319413491792982492188405111671319877819797620893056643278429384466112317283401947207850279027129065842170595172719047660102095056401841774327492131106862542617767808892638427348341376935070971066133895777246858352634022479745477994912352554056195336589592184511328468216688050292009269137519550620704458919734886906329024979015732718545191448560320410097013559185891120400361230135830044791417192468099143007509067262987089892224375049050257591986212350752983339797291926922748588344364487140485139259982921461683141761854428572204483878018844240667305154848684618270308910586131979720392697059013591245036253714458539380894645120272034242826969563036737867196458016692765832107276830405608601763247372312598604141638921875879112745604259167752710990242257464298788350090434510740254002176829087570929356965994711208989550680543325907027820351683512713475126787889307821501850285878080840936637300396393951244045536544888405594454522422917583107273694787695754448182148947607327056865860610473607430197174894832730148974114631686043605744921727493460708726185340332842976936738113938143849609006626605845691950837718125033844582313431658276041334394232184533867473196597412379094095427363298143238677359139405403778515920642356521428659691009050109072131704022302814158682882270998078980520314511963942441176517892580047481725087937547154041282465246754451131958523161485117035878402501692849429499351910779835202061791016098883731181191789633173546027449447483984931446019397581670721244554320222584803346721617001517698738196146419606491630827466559449417587149921366275622831588711023092247211783812331406510256816772378930228051529434327802407576919357311854833072922907885273613343851755939266809787309384491661884283585992365099371930273551845271113732000484408578903622171168805877985046439124853222468139586477059905007766632159652215757010566946134998314053883055942297006026975335841534858699781025536541596242713790629012551193643390920465134726165650580089566916336764698456816069997092759107788518308198549040042842164550628960124004566515179217572224764681641946675215609634361191982063654293200980912230680200955698565011559604774062580503163176401610842451003337451878539647162551037725825526168882778789105043595594474911364948507808884761640575917483172648494893583449983950526505787793354322071234591399643983873400415723864137476009457997243232698795436697695013079447311064284358068815272964140743196970746100140956110846479025749999789092361935983309213535736279703241132876548376821553081429071212749510543329282120047951378308185466958519915031662476928669492315720396779337330277066309106536130026562146146385463735027013518940916424763712730694564186130583722228270981335842844063809495142102548689442913861751413690639764235374986138265613314729144579451411854679997136875785616532985371692817050870104883354104936791782482000437426294143316605138016408709864868300249530965360520156885445909789765681820648711156475834677433673065971943455712144908599481062662751756442899373395457293903730218013324085456200222659454921256218655958221691935373743523479452939348699826926251858366502793005326942758099270272937274554074125960580954686142509594409070454847034844768652092621998881993300780826287919176187899024161751594254807676257646723338461744882523798727943966585232891755925945081088274719422954404633768790185917425122947276237457044050837603442216697955031860404165111572893630601064637286079903496029563873058533684555698445613497024453933048418928111536445311922719009562982813322413335844557225665424076744307546182424280072938890644746082725669924645100951127058274867740011443587524734027358787624125880535319960597806974048860671226962150807249877139509489844739460359464377167454634579338328033804151253423992492292339888750917191897985961889345433524543584241225595301415713193209232230006626106501358084395890741395930374612088776714735266542320009435318837220584723263044881367912837652761624124705472052577939615045192194038051553531682996460785248575172650917229933110694412628435604045193728019556457257382460195540793317611746498219682112118889108288685322963844686842490587452628223247138331569915127074606981005889167121555565076198762294523729241958693892562384110618780609782363009247437972479394042701979665977578696558647424285625505494500011446615830159042042449939733614886504306648848493344272122638986073771014380542345253589685585301262035889098631563313952588833114270951135843883190954226482705908591479186346983773846464913438566980598192330657135196318613505711692550930217302298879978745390968355628738251777697524485027115266476504782963963829972717572737923787304212915477783230303447369890587293282206217564658979061143858923505700678970054906693535737832840730176507953821777309461199059261656062283798036628798455790174510141761853101289204442955719399264428707286533649884727117065340293199277785068632717649509477426457239054392639896661941913802041095524645229919028897578442160281125346659166041382539291119266114018769796689768712249483270541660668139726001985623494171368108130481965891774885225514299949852973008641822209464351139786988242713600829779125659819913619965748711093686702332468831561222506005884798005199093060323879834784269130927363620682324822471297234108400404181500737277327047128486078468958546511392174031139775363835628127956565994660969025243121609056434618286668299276725374667314979149465712813028676819652331976860303123204714772431343906725854661151982722449637343361333829544348273811665831511722873329064279092043188962935834265143247662437828170158480891054874354868004152957274220732457291379305676153350956951081384466090684896517131807954603965637424622707232797131096890659053247266706172858689371173175216724323005634175324972527074751461010256240718488863163511461181700568035657012206294421735425165019603370064746413394957393158994880726158369696675177102046691005468130793200589102488830980100997089890102198221180585865489937008857488575243887464557420913562314302291160509560957242941677426642803255501675848048347047037634343457627726073424050050863022529881780161558837955978338042658272641209377610495516981770638084031363548542551630184856328208506395522728300368480453662612190375092216409032283915942354102190673231696962789764369625488326302179614600595259652544796114595188196581206871404753620592769084394801850050094486160615249212518520823761987203791162197201369042122123668252018868948234565596208934039683228988752431391205606213431399608407293419111564524286841998483353891529171798881133516651853483773858543048719216222334783180868546097961699113681868954344014122529006447492416596088215809037375421804990233327170923807865346494909303443402361550343631475921070273203818695352488306644465953811432965182229174818586537023335577383018939230288712084701829998807795323333682144033895446993473360847865970595088949355271850214691754720344284933252225555563158177147835715693371829912655051130767842002000524937463032804368435432065520672896277582274421020269710836972151982859167340831328895887725329977149481937324153664223907455298256590920402934104605391544004522469870802099159524271850842775499026842073940698180732900801418294544026319448074171213509339973020798369127141327308204777119847702799400027528611930658172976571082346717951565064715043862962326542764534837702836596468337445528222990769034481258751444093436279115344407415978869468357651050403266582230335556584874177892346341725114065058843823712096459498971982631284514863831897004717569603504463111439242566010806296722387521000765201080080166836243549080786145036905288063300351079553154957571451077207066861219731591535607857688793032357477466974431317815101900988309985881900796497220858444680137554013892120471511484060457486687438123741721091868765213114278125402945099786035931009336317256809744335879223978476767766970630753714190010062134257534783386326888227197779170516232386299511205133473951115670563267112173083624913176025206315942609868847294331729310217454667371507618987813610370940376049848705496816512110385018933084331179414530423433369021833168485894577853601077134960426012641199667148297521567379714969769075937901044461536700044395734514061022799357504518692271006213451254334061276670339775301489039048709733195868069232188875815659252924724751096134945918198500200165141168372206913940285960964637191180932973498969189206995351860823169830657044721226017180384148048110760134087070460608828059353951873633138950214029197728002668445036319899357324437118489004862653709682000952645516728889801470658736379044961303035542635203018567825690851491994598234695484653716942034817709679025782118136219015535764208794355773954336089289795987614101714668678825818881831278501884548079790863521564491500345550520742526600004554531199845085359104957582057455735179934455780100616612831873838741569572097765337327521927581051837082934445196538944129901734890954967046532512994367963022964039397259517099324704997771421654691608522755070900953136589740805961074684400558977685855732594593885856223573029825840544382510336651104204342979582399114748189590895878469801521486574074657329032387137148938338137384532535451972013898135660295202526178337370215610252168514915618164533076880714719357923390670082700116928793593338568309956618809752250178567370052314651281229767773878244954663198826601287480920644801016518835211803820252020832259839162770394611211749986802834525120998259411780265211587875289354802181358476642464549605007829736266289930859025391216292135700464685677205576248763918578552640692492168610185505460444725197558884760288357071004704399993929791158431311274140810382132569905964188385154925537150671216211261836402338050487375328041737592449845624368829491125004702801726750513963514467865757736809926078445047228855035508794862904653357219299632721115841604060920579401615686158639876837425577248742811702059386093449929861456482289423146034754800792135063525550701996332915023438478077575383846616945199262067529880895418720076277354435749427962154643859631991607347342801149169831361870588125450802728065137163964911614697945625873592274368572742542601712989575894893200204001345272611463244806988041542163963495884319392671192142304035937691576379296769981699892069294862663691440979979099365708361092240297578929205574184694301156044133471885621884954606476452042331902079131865766395555682136088110773472655736500666053701432573041665642629210355146353611249090884491092827669792595697079422278974825726833778318490533140792794863864314566447939073659155252910530979036629562130060992425244642358051330214629417006957384574916571655326397239953830317857922715004053487955337622056105169390581324769613691609643473131842449886714063947761998252813357534119253567835242523648739313383374938125523963371087511912226951239868317681987195493486165268839225900390565687873855305559761302185018169993423071236131138970080060823373450025286108888208757750583925345424526764566767144771500272789909363477356132865273611655018438909000102368786528383638582257465576279139884412216588083695805932973573614113269470312068117450212262134036009754314654006050986181781314416870144488930480121262795411785766294264199415634230680194480197883713647631412977889488502103916990513301996829083677488197749890648077785360579373038952324670040426173841806641186361265877869139724698619398921958715958802226401761105617582884289296785135215285744384489283224286561989160546518422050833835457268631257865262593846132461610240133183249848983043943251726812541847981599148475944267286401074349162209833342626350768006081071363577670993793759415763852145888276565995687365370859369695629837864309560063267435007925467620056502978872433838353639214224836099558139418932708673183307684079990087655524658925835991133991040566590173962353822769334015977509104956263495773595822574130006723305324437561493553055770636840409650392474342113076483232274843556646059462840918112527212627732798424515237834588455544606289620062736913481751795901349552523385302862438986107186452258915241074328584926952596361630970172394435398117863565443279010425263632461079692117563317063998297710609289904840970440799536501307380349279112662176308613016965147362776501109717531300370878405784321995939334405030404755034093142393782118557596276426265397910475678740453274027559324212532852571210627783923482936335458301983832766444559248674341293272058906126850981485787149439010396046610736064847290657150708147595617866929133289759787234088453143650866391183248943599943979252759887927856647801475431580863798231380908278935903635497328845240089546354639701308044472952574067661990436223960131352985134001813255924504760351742727683405837139711853071814344043936055722599958665177579468506987746374582413330043047478586958521219068777958258071792072977416076894077280525959499034494264413304693265486234348540073481610919270093616117089543216996747031956007009821365103837358857231944660105568908453528969855648114919063002810420430125026923533320677702112614987956017289678955457323639962772138554935279763501958154498812249236940842053847950171974561859649254783691646640690756077156338464225799368108865559835213796848311683994510448793561811661803082336209278175448672355192025175855999709598631694684801757923463746711393012496273888195965409620583838043847603141252694753242630532711115969279019034551249859593060909402135262765524667005792064477990863024069786865224605589570167604707557234263819940269300154685102351936401174824773682910960131632853084400843634843647541099889575203364254882887240196898986505856562426589313717273466562648187728400637638080551462600329345708651217337918748658391515620262648933312795346350451427617134439994509247196589145126582575035303331141247093144680808028510745476172303432240410273010663368089724769847935943661266807171980299298997184017683120192419148511597269416196399992036069777011102561705725432149501752664210233341609616856259457984241133673195215578010052194333087984440339229507988554573449712407194431707616821328920875013192977559281322029003065246769734970346119685475628130726524288162474413686573387748667247930327430550295660777684025933829244144158166904208803235519773283229632039600978631745528010624768941745653358304340439036897868198488395898957289865976943001325677372733615328689447019997026324078686538039996380340733628052390412236424305901156230262324558951633025176459633217827855458634133054414642480379964946132881448346746629426791613819168542884357221629851782078675789660584977921327396506185395232244876177301827698869888660257717749421201115609428010543545238807779630123593641912470321275793924516474791494867697158504462667537436441111840051473507988604525515655652271734956445863278223889414449996950984583658361831555158707267107126426713171694385877224640309540408108205179895238699994646928207046287648041486658104722266716568721111984924345576229052866351013456164051772061140711200511651391997116387909442975190116614883829647975703651701665121077605655419949860814458659226633810998945895955254305123264023957020455861623171131129896882542797675566550953698211187123002522249533895148563069735292381407423757767057514177558334788622708803205621035837517145287614422371718500198849218018507777895138648969854691923214981747225102789797795371849776745497447548387507380507244285447482998506565214696096557032520731276195958001443121594374794657286695727717862594445370195574997711081485199443567869436054528369245005621599525438299798344940453994459310821223392606721910905254590263702044926438782651547105541526592122734348582763683421362142901487821464582203452185201873597338651869395830141296543726362815404534812882827853311464243732876519337381012350022092769653756756732124965926540010159549915421044220594181467615597196904896474298086551128778929560195488144078783412723889508307211941043761035027216346296147383962725325855421564851997621769556055588575321226577818682180923353176261554786890741462423115202282325070267183334036324575294782894443457014459038209412769623242471805079022308494290890669253255881830794003941505861967919776114261135657696372993182270959841416440024886621136123833054277718424888998586644288395138683265767651979063783143213294333896730789662808500872739757801407612148921210866826545347204538631120381828551097951209706257376000854198295797605236301124161303216708901546921510601884878943434255397898227821523094566018339608362135210966548178206490303462971421841254243325629168212652838541986668280670010607154066359847295046409130587228527272264257980702559669571587604243545264389723248909512989730752694210174166551209397006462964982315646046832545909454541985885760503016320597370772624178270972038110863955775260620458963041500855888015901059320074214728049044045556825728805496715175369273166735635172802296652017696339381130204332363483333685965093915196087220800313661767619711650721127941085211111788768942387445336783772190355482826406711331337611300013317795232277799582093922486962823188905616192253846776161812675764686736585901163894329616043163478813400552101181158389039317401036848706424948520160366361314458584650452779524144891077098175282441364888652672121030447060655567618320621017578859886494897878442176287496407384446265915372607008457471557205195018010299768984797668907415851172969681219215627751518791824567751683319637753322030698824946168276204633419783350071391682107873082430577514573446537155439215816193091309470291306498329826297674342297533763658024402214272155523846261087383038386235705271928628433889229265052083848380816508735596365563258901504412259530611189591294133316345187898975034505293799978538708265079442975760788477706999127648367903219361604675138934125734156815752052902841266922872800883737927227305856727333633258411611015313391411956368888415143355066278921418245866415595456602295911099015178426942370950920829899080494102923011398192151656740128259503318462831561930861118240240943488166734429911248299580557315984682631422286142490478637534363669834554015790376784780787935452863687867364101602214144307209455390997045324423988147527882615768662378555375757471132762352681970509532249105818185091962653586158039137015395329780290750319183086938309755920740546630459012305756890284944147102673617229661789733438282039350311478519427471383506666993591873078263687450239052136930993349497084253363886291641771909593280399935130261396802490190570754166000265054069952348889030521774845478672588870929988633458617123015174860815491073144372066277665293760685682107446274950190716196102667408219743464221938250844083870194921699262940016940567176144849395405048703154923697117438775096082623549441241092058370639847406958989683702429444685831747378058283812920293159768580169124851891540475769222899670054771432563396602833165828305500989591221079471935247337109806077858285630993734026118678958667434301346367373705376845767728653111257671796038996930947781768828876174405827860941343234494006773168309186625936758930909419666426011588232966769738825057244507788413737159574021632515012566072180411967823871964576052125291062758136346420802214135295277459342684939857510832788880566001785965231245426119148500828848624427919310697135609072060061766741186804906088334428778326059068822634956871902393822938165492657346944405960226953180592450099040400059454975046480167972671422029940519620082467691352388852225276145446381709123468488600936790363510337179355547763799863333966008213726737460072014038094201968949812515330341428951719644580282137220949778046476223190190308616812999264696048549891817279869029858159952516323607985005354003828735643724610899764778137472050208716088460796779652258337121670170636704837168077785296792089928487172813822287310304252445859073621555378903269615065886840298984084176964159668248620106870370723695199290126337449855385352082760064165462200722725613675707338958899702506943345038824496869104717358844937364504944357024468698608886914627929442235024147623019545715741437841560156550505968193955020200388282642637039825759149449224120423733823622431400469960251068841803859544317808581205790677614463531748728674378889191248652047184726411190188222360031953533551613000138937520610629288889050885483200240897578735425100319444581527561365301102866407733812936493145304385431100058637408605860070204382618239137457651273041740977096940928519737220117788869823066015978113703612841366307060047912693569757674582611471940934134543262220780304152847036025273066002711265018447713893827262667328138511689366933163282566954436789737512916975064330089296974669281560664853413443633228488063533542422575108247694473718045613814309338923383320196979087988436664172836688242007707341321141679039417720888342472555760343746292228777422654777373317581231441728708213861026742622249613404986989069747480109529704993722928792045870817840527089508356860339857926339718192766009297141353513077593724787800033379773218661916192372219153950993099187130829946708336396240480162377611155141108695326694959968535478082982023729479880026281990327448728023056132194890214164862611826899764601324203508698902942453603329621182334353172285417968678011604661793245174789295896760074890691747173271321227671154474873572998625744665780557083797251409918006154124550439679761489666585854806285652075848842404283918047738099609413290175704254528719543875764443381606805135127572672585350331654369158095912409296091547185095901095341371230798226943538276915062956812017783991439374291529554734543832319953966194069615534992684573989521514597667251137303859084160721941120938158810232083292459345962616946477054074602892721762090884924488851378143860576394103853933670713860968418312898614452527875503325484847698667182125432925780051263082829440106702098065117262715111349333462158674439566410183483531262347800679214835782446711225044575893334739006588842909028215549172853140491147135591073447562524259595484456677714298907839626123304323688723676472171548796928903676173313254900477224085223038219606705511805644392519436477143645815367662056363603992103813679405800292494076665261532822625580304958621495808216596633736592684109958361050146201086028135266016998875570939626211970728808487795897613456089393437680828863451199177004875687046163867258131364826383786099970376813303295315896312265862135855351391273417881593005799020735416328435040650075917928956011182957008559695911964980618014051106639940359674395558130437095455378985135006098497066179285432690853002122726741653483746320079996831455973240700257289323151072990687573817791768313721241515345270280621036468225453817047345828800807339219682515072562519837765282497368804178297783063765275862784263364734158769142283431837886410177104905956470168564420335903586311434077435800206121259182326936629380024952623922340068481036652445485196998903438110833481471969393482663828833732567216846983583577991111679876333823567413199962638343035879634283729609763268087236388146778976465774787942478380599215575589993667905888576476075740604823321789085659514927702058082343048516051593235572443311155397889221726282123485027939837534236925356186253996381208974365974275387491696028163406816956928353342571045825548635267423224637840322786506681731166233549717841389985881377138155257734442121327600992444784275270562053180219705583159754215661044314981152166367834713878036295904237932985359744799315851001549243024292668130974035557474316628052069371426025575189704857135256808543942997908971126985503417530299842091384251892763915188160827059632664088082970053376234450217726079676822324072944702583783563856937832579148779987287563576132093003884252259280126495270434014232512436000122606240503478743961800812746042063143648127171152278627281749084611597371512048361116671423992313707011705420030851398481890057648872246935153305014831696168360244770890676240514540430921320642482846870655973640552634671183234998420091223792518318182654916944398456355257907184252874411938483060652385955399561627642742659207928561008964865745582679510113261665234046784949190164573199516678319558165155121334586112141097963809516974961677061301671501668888659229795996673445105539015911170612416188918136044154832100486078004279855454274298026655958352222354684514061437586065505952917927935207948408307973069076082557748266437340119079125908980709868513822942800735246154881657236245428983122557328077556860387285605447630643212294663293826609328257987399793135209657904609541036689792329846597188258672539634159572274623598643773677783755146898957559763945091371120186910804942855422178666172979852539153465452561677286794802006395404944617950944257034485239389325951537452418576285124765602781939479816885259733695703460091968366110203091527024062213265266112573112979228643306041134429096043071512541908587285626886323749313869202861061000742689748753209111112297352518323418327767113225111502769820888492341931232298482830948251130600227418566425132070708865463429080363003630116521251062677464159336826375652099006808519519148591193978887942195314111952753746917997376810880451168289086755419279631587725030972067843086390868193400664629831208271275766293367369654824835755692151759442335440477429128349059114221099867592986265891106434043313736305796699132076923794938361071889253681577425951420272152169993046574786959328901448801577970293669784039140312317544888318243941360497307244552000973383952631665734747841639372922924560310228755814642114338910433334262734686425804318764041193825304854172066487380688967791556406342324430186299545805416624931779037563266768738869938991562626616562335845070845739041599179407860300250571756235573800018291390578010983309781857489493730769452552075203591988324251972054176357220884633354114586183386964125791833458657940731434293283950531907608987868773945093243712644193923332572703415600279010172836414749606086612802407235771206990947419894350497758076286773332015237350191046979863824950928324596415177259300942854660339454781776479938672355511000452778496565585569397624635357327598314307064934932345601790131699615494164910456788808885008848007204081119174928314375051111750462951606689799362772864933462533191625223541617293838169822349088864941034161908393904055230161822319721103220405073234209959222384356865738106276654043627275618432580892013846675381472105220689115874958373312655225313343359094391213978043550826723532334123912172204329651292738147891032986357981250465070287954269593546259696899807491034612315933419059799098609646481571925207491229803511776844035935964409250276793918692694813394787811900391981407495333300513797311764450963981435351901162274598162778312799215585422679981215135613902636962972227918655941938077009978461948994731399698251305374580831201291902255362319985141460406515137961622292737335232275942542083620306955783734530099343645159572237823751556297825584881950543909203427237800953521569417486149765613098532261442201072592113974248288608402195768048360600412708973127112190813749364453679639512221160314703902668627915150298830294752795945051381163354295460050797156909466890535233896576198554994611643162737155150134712328056095492731341071237997453022748766893801468742322260568099108946418015127213306303202126858298410183651248284439390371156949636741040613702188194401613444542758472877066776076694755064924267924333010918354394612754522214909895648753512079760190584720435221311597029061386963732616843727026962551200610372284423338523047544184297109820126867904877366720238669266296520093514645415091882597487822716168808871416416939265042397250091118894861918365601283149581313279328048019730807118547007794803944795842925883762712418504151485502946622839655497188597108520845960204668493082925874380240867044013473623241678831201886615576030658140110856487647372174002715862814406232317975813622681729006980704069508007995957167688505533795111485815047811298810052356944155856467364180964518833368543591178504687309135872263401055628501207356175023650098653106231828815112822417746843452410470886480761129510903211891147662155574201766611600872009432423643509433270653558516013143083306202422233402365558559172678223831313312270170246161395501657896347729634605205543646918669911914506840472386845716376522371051771059049217365485991985587357062408916278732965068364594553006507739428320636208679670746298357799924225040533228352134287987937109252633683306730449651314349230750576614822160802174821866855718658320273372286770984200536509830383545841215237774546708338606842990710994351636801315820174507488870175790874383061907523210735603687101870860388238826157115679914917157576631766524858844450864952671678615148323663225601486191420332852064890639686983344079837691881419348242307543259584469748389667161933169442584765839358821065060664710857464389064887725472544675164365030105317469636201684742872902604929320010293934393087426796026541476072496358092189002088034661700640349427041897267012391655363610276861333743202923991531334335367587127556988747739126084550933229901940349757624572772642346248048341577675648181683567145125239546898175776210472941381336215955760774986793958602778637190064580073798472956852113184175641553797380610184895300053830098644717324217293091798019399964828071664753636103063131907398570521598337356704920429908028072977723327236049946623153579358091573160606212686636160168832009044882317576314127276939862892978873906788932599484545685757006853929487239928141714120232017497796605780606704551644740038533953837432849720960985828305461188346998024731066414446988101444977286244629686040567578500669210823836339051673660765074973466085126436250915640913257256886779508713847044942684283003339558696166917646149967690243665083535527725315972563707294733591452949903597758179312533294182290909052509269023297167653778952036482629352216725492595769348245562975589345424360907562191804104363939506161850796988221785602726704459699404815648123284641733355032523693645319572324228364682203755840719062438805580590681824925556072445788263782148415861552367891542663001040838136089874402504753444127228429159240493032801212722326199943509743437025431559329297513398968736943506818962631378339680681430917048949190334945213398850105057350691614055832695730710951563938670399918397344705314146425941238399062417704406031441680396327581998962738368070363670698109358779981595824423769900568318816056445975787980926940083149584665290970629438636425287969705902156409999741478002228076734675792519072893707740298744706188063597514463287522418844436550128893141026693168411620388259484324328708994868684532533357540653972376004010855202188195146659725772964579734637917267342916353820293235220021280983877152360637108372831634844456093121328165538170792258351136734772017427642935465229761947351829788538305546308821032710886344698530145080487869423144934214411126752762029780643097079597644644326391764844138942548044941410267998511306332929285307730447059185411630336639619997328923026973980020093490569935153262482300663826703802448823172244531494884675810884576541107007336276771002319032484571293403492135889012393055429503086244395983693224573895966310505714285427707698900533458899045503722841352280179558083958272981257262614044912682002077504424251410156363579456308296459458469404660752121660928516420570272807348155178819931819687881238703002693973318641869816028775489703910033356168465452191499632356066923945274249285054132960099078334063675098543754650884085948346243910866760166793936858629701577540959576579863701679066809884272062614020654345895920405790212783422419559607047541602754518827156342739971520277860868127377002409044920505683542849408931441284431256222779470094946342364107407226643367770261539417728203534746221280054612882266226581182242626764938063741341620392247568806154029344196532129226972619388956113526180505026386648435406691390970816403523685084886608822938270885108655259319276133393573073265313452856859024405626821255847822829089226091568688398734774903492868520020799280776094642500060977128225689799317586111320660871185989565321148656082900585231465906886789945162726926056603205734184420770601298887889217066427541539321203762572368883289063032505554413673691865361298280142156047565090178806176093340431201999033146899259280016140624015413788675436148984772694169741678473179774756869996124746941389805189275019221988479311625107328667739753977943954629439091194497279038334436872946352366395797163589280363380015095307678256300139212503307476192299519748996027067168079414812515140023428143939436170563413293161498542313038695849623438746653272470202295661053053193212109954363964365485274932991375544175200644786864178552406171245548105056796860748180704254603527760801210503724897223764198763287572488611888956533692258273981639437173784582102261392121885329089763431530308372286507088393389207635408529957976624671777351030031516491900405312595009238336403109612633147857889237176367999182839408885495602028701168647901327569821883000447383260220351636823940274797830443362161165637929768203405501228184794923603322131733700807883980661558232000171079757461751109768194130153549691392243938756883207514933192980263490152477899660364025027774927192677129050598058352440942382277813059485770082438974309201168099465922037717299393038040431638220413684515669118484751460916365582844546204785170271701394301344145575645088593031903389109960113639953767056090492884904391919885224631527945637302904062409281039153525697943022811918330251553439407522082073526497062926564061043272603854871928970288262760363437718818887457634519698810323652816806208283403983826556648775259903302758527905401135954454558655925695217328765888694741423676090237035107616695338143835871602223017543264972952581279247588636052554540966682317029983018704127925792753348441762490844797398083336630556595771262222488814047544093584924106071447216366394629063964008446250821840027758598872082343440416632374947084027696533710758526889383301997631517603835945984903104324896591715568164519372812548582916689395381628320259454138208575115346117935000034270501449991234604284906250195773852843154773197600822025948650467770621267434396730986809565567529173392456069076687047368227576160729909479624755942690655136535236913753620328935405373153286676576307364747286013772061905887179245037689595147082883271041866183479307015646460101525120280681847233430647657026191398755615831321518656110114594255566799904649457165595689130165117529707687610614856542881033872863429041341132640767395008325769709776626266086494786250225902931378767672084454377490334475788873262295981538338584517247439722275898275692778534299259685134823074952538194921555151567994100633075695598539007200993740687058449521646921771596081192191216003844294883178774501950329127882972047361434220125786232059354192430405814248097811035480133492110091572665551745691069706607990865197565841856980100274527078986330868952432936456739438373613209876204513530337724312586655479447760035413430989055951026420125363820225269739075205323103296667003670755422896878512110410117733311234264384385279608772721507019419770050294650537698982562525941961041171213845729236591251761620673514900292289912169022491947459006801260673559515178727196829945942916994973274744012669240037950995711398578468271521463271710310857629110950640470657878567320362483293340880716319478846965121950894457558999147113305393794494081255792082147068730930387521154758612678848245314444952994775895620788280621328647631109723087062610243582999876497150899607555408528519712939792176452608153164382311875066957314687167622203509174625466931535637292869591512197061773033843462275934416051552271240883394700206097091583900429239001042955806730463490856323151930259098021833512205929105954100810058649575830735763384391120028251492401025392665078816738420960481650194147704297643281582765975259360429531269726153770070577928143535848107283619973871745467919629636464015412898194342872322853264002353484408747913914012366123873320795032085583028582603220291438845175020356910593535826685595963768844074600815628862073330627290052836562307113901861748454961013251278204128893736588556175033773705208353201328303646944913202316311281645347385690416390046939981151612008951147926688847897863775347563641400209001216158943855949581744491995146890542988603936958140317467761088161963787677946088927139049029708706299983981923505463652679915344805722693513800024158877398669954690482470451525488645564852584523001553672406002841066630159337683642511312857273709904672745542646934079772491303425260756533042091382208797966939375717373102300292074249441520707809754084181322142053018438854560085240246284004202458029389724715825130540901604643891218700795229483595767762294592818219671919582192309293146337039897958093715031046741400058352580563037100703416226785740544995510092807950050450327005104337408572357772670022101140121726880536813773671183141991213436549401826941982161636428820434427175909785008020801107521894127841086465509366148917361184095320413282249126497991413110151744078858898805724444209669256193885282359023326682502661382406841258471370658097507165917899858425600679120623321892105823307745663609646489880442066837175832523510777506761311789774617865483539155612649991399260841111462813911463805837266145306735143736830580030013749676286100771306459071313523420017779386288687034844258086577955099731400744370397976361862040072572519096034579151553124107877153848250633105739390573254003298301890687292329844840379134294281013497211286758319501213284605319442781252278518796322718190190301028599504535073271501106879553571740260128695161370959281105000214510208712637109700312395925358039647998647265206495182712359891852369945928889397425672035096636806386245534027706456798369530994380321632113362917252658815226531448558492589552289616754660434950276500260219190250988287862394167457733406802491036387692073843445589114444088139322844783515466923513334653782108050420013234420811721131695259449598115929189553473694405629904760583994357837582031121341053255265075170194063982331482045437507772664859652910228485337839723893357006483752719183882425587305563392063237202075382253862264302521782466487590775065381416190294390204176091434819958620523662399370147149587752538002970963307026454440910030397770023549146951968347730599871363049954057039039084753589590541976820357434300829309548320498004946951399599501253216898309310360968571282741010731581765128807312228272168520255904040252263134433800816749662111163935173440498864006867634718754743876787989281181404926668240779179978884283662788005274118410271409433686564771327422270030880147176090798242824394551534905915096667387062866260406848155183966714927676799657824026521724995090025373188632429645602787052412044604328415694384855842421659301364130167164572931839057699818363305212272604102024683391031293301389735815143264949515269991873969980344760264637254728898599706235068868401090660593818739374861100801741142001275755507243406927208270859936342732323974553341322543285192863264594997147141709493928150485616229429174684885900954115298606691791806009497945880041326028294979138744083215206249977828921351270593865696798130612280380901939817649471628648761300037317152185474304299420547853193698131055440306779756042067523603132711586602119571303405133594617278356460803086835488016890509699268419581520561551057257594364444032801086481797462673998808926266681665254840759009067624660442755534986375163517860034647399300660903806126625206580899222501243523962949851453647680152307568569566140475363154325602213789852170160176402453546266583707276033286684478567206024048026440605192671636407458103818695640552343653249889400741949256890114761056448615612770228742374923653965173832610409243030760248175115086628978695922865138124300375788351918105293609744815981855329030809028836908583572894430716203724973189164578896277812706293306209630423827485595229512402587372147734403636768619193032017027039642048434565366967737627670132078296774603922475358604649130273027962712993897867857085021956489650035895552612142838451498580520028741806213069210124556926431637742307145041422415008026271739152435602321921489575216915444327437000348261616584156638828647251942130119961019450331178550740126339380782157899866304324910603202316082480989546859837563601210759736463847593166764627866099695016464564261697949478853825414661133145330514861807973781871696240098534695819870061817095839787668758019247631482576979788978925198097823739028111388702216639026216442572350343999980123188256767409580359540385506520054638411623205800614184691751770763677796525186231356349476891411431899931789076573308538543824830298456990293876357163548274623651401345656677049889613293378122975398869560706392599654881927993383967116792574810648455445319174947098848336902480621337443327468138822898665541387952647035758335000237527720691641813291863333780041185032779661166639663410355138005028916443990386683111104895512157550723127544795295905233505642094720879480889847975941148115182421243961637770131349618427598189875465651452102165092206631234612068190262242356522125453487180549580073636267526530626593144728508980164272697625570989357450307235741418821633813612860735190744044899706054424738536386627426533091669265805477635511400927723962370936530445318865815209153384601333117635154500569657838347029347218394101647923635165508388166884938143046312813253870993110345978372013301994001593659173952759556306161439349280295619981048763677780605125663873560949298397764041552743881851464293106995712988626361460772403533592907661211854240498229452061135355429440957857636295724589008084582620986005438209842965597891958384906592289454149526998633626950377684462290208033928951164289508951690988205651272055181921385891756563941397432301878272071766117619145669823799948355942239107621036743434082198045001286787717675375044773494900869192517567801757543150897130119704314925541373492455416857092431957152661157315660878173407557269253351276322310485381930933780279170097282246010410796862612221702904711414150769172911104631237798975646101800322245506017646171962985047118906709961011685765321518757096255651571574244463031055341031269089838739247423634747102029905982939239573926056754989633722297204353880346418907134737929693085562485847053241676634252726270002689054761400650884975169217178992737689761097786156730810788763098795735497418012400611919187111092076074027105087318275331242911406848608444370363130501992163871075554408736333160054610759187953813155645052889173020061672028715957108480363592468738172564262341080244125349200626076026352743789307215697989433027075238063391417846582577799996541321713239572728065169401143863682932276217805481121240796678612558221822146244274827404876086014048484939133723725487197777987059722799440718616046186838357719104050834041057490913711674634107689259939370603512407897438316078094523109963529516688488983502478325763932380601577611500417900980602221647728729805123934933384978372990989851736214463055982724820383601021852418621286781361495759059280475658469141947409722205775802772264021930780547692868554470812050399837006483266431935315230873006094876819624232058605382225170418083720519903569093370492997946862812750009815352644824663858501470450403868244279167625461369522258642728811449931292046547598523256875461914376040647167042712928369377572975892170942889499486339071891627900414240646776217124694921904199382056164144504286578182732393608120543891904873818827590121542816037325648084881772633119429708571632852814589969850771747170490063750269477138365859416082329227708973733448215844108440490024186938739852642224604995853849319951555693735760234756345399700709593897364948328311625809742785759849706687577760281416130937462827440091841400404846707325708142652218942952194465972974422107778933465652294123214245608111885637480161700876161131193358141769075416533912165986883829488598667205878825243289646226499708082806376526881071444609055538341242874715561790383204096604723256594110716907950749714409426525406608964652279754609505275489889932925982027625296882962247735530231410511656828661871810214809255471473236132053643842624465116037949629354038939360047900880905568189074958034686847621166127958918882868045454994146362216523661229855094823603803655722427070723544455635588335545454154099223292959431710239963047598458867399965841366774438025601598209042033679014288848225867483403627672962660475739795167564809144983932528215378893465061235551449467270251945080871671638261828043440074459720533454942286425368777753922180059163169563088467179944669638576551496232885524303633307557049811749150250241092011976196701114861771797971975480482249889940775327609399331422154853289485749313704569018230459480012532660592620160566761682366681847045686116950771255853986168511200260698380550042066453011363922484535389541991887629334439870166381395894900734899222841285902975593431368829793728566239678077371472851427037894877964414024865869361966506365813836326456575578173997549052466339092070550633829677481009583166791578146982710707670387707234669444719852490874838861456592833915541198956630707198256267302048778497997996916217978085658790086126831966421132027523239875483629036284779161139174153035627082221942602072407502236112156440110507597935004778302653763090694544376928048531135163861932832269158748863176231312771940683867759444696080965622765049945019362197917286985261347116412240855843085099895053470928729602018410159261970515810598912047525620569702449465974356796819853310390992980486403753506101329129459356785840072523449555173809589721737870082210199118940039375042314466882302065151990003029929698346699671433308920080476982690027601187991548760637418275788894290890898388263000000468639121213100932602612974880277404302076046756741281602307601401470604962055537938000590603013729897818477263837497014210892082552662803270445919529736328086182811506734003756823975090076101955139592994713962458336677811339114438665077999701884254957250396376118894120132833036746314652630546713335867573206631288925760089311344506828872068455310677319135800288704680302056664654816814843670507434092156187948095952499224675348372214437148532074412946841451334306218618293637268718767452684192028131068116019038196692160083707052025903141834963237584644786527940742671212184411870296708545712636459726589432017859396865223420568997415377154021802730814189601214470407522449030710188306093483848376941244814249278545442816671902377968254629476772684414085462509598256229644922998545641222124292030234690762868146085643095362590967201458810025003110776201970545759689923825739992786140027816366749867534148304984862055406586754066743488656226768391453181015537158116744432901509686776488968301918592325927510653002743419876776724802385957371964088465435820006630623009812349253500181284428699639986590054527931508606878148803666902560358528213756433073246102334126764764162618479713782663209326118885472405393505518126600763894824819507814513221980235398714996849940814841054260815555502921494977462725238698766266822836693794288516186709213540485714693378359298455985497042918767258773950636892113783557317952325525532911228448105559110871915966991248345379657748113954196024956613161858813648905602861829269242380033103268259865394159298933820515651270188636330369221122765378573046636669503740148849352572181427221195035169360373864897081597824753801680200639473084656061558572740772190658721621425521153651717533892889489707681733707947111200768643669021445247934200846661092750208418093697557834629666107377328655690997348202818303045113384784033801169169325338582311898271655345372480356459427263285850126288192048546257778191263084434971102091017751661868966266666318260589446952954630411910774704017485517513022513775876279712527285450137941809507975430976536167985603162620725775620965554901863603635612755070487579167924503562089588627343647746487882597392758224731453278313296557906474764841595246126203315758234270317376851406649060954887171558295186152671120081693333252967201812413905969415161653344962652504171822910360069777145927099635400527672429978145382355192463393227795418166883807352945288433300724348161868383815857762458857773027651292020841597887857180176148344851061142489829015709544129407663817624760377718822947270084656713078161330480383280097123116807498367265026238981389334846520590127653219745812117933771780231845842282895323115609074027514949556486277882026314668542669249928524197227279991705862203361650015333922472999187801540129691157790115561129283711168771524128358449789444481692034633168594106455185430076717307324959617988121310889295201810503263863874597068165560870255293333672302442598453352475594084814325615915136712644594533801229176413281032812616610002806097595118961866571493975165955129124444300802802811125825635431884742543647769693216693102705695626091481809733965992237005712882591159340187429363323580508891859990660346291648146705441377298570707075770311144309894220875355667595222422692639090215374804930431286163950528234699110293695712505398653283003071547274553450278665858008352550008427637471042455925580660427830264222456347025939600869924606100021820748424304139266099351860429695376945186152397356105239553988920209487428219384054124369977654479532846285715819104166826476516218438663709317769125720541380728456181951287755418339229150729614313856164272664309166116092864268553992827826843155484567169633567850208328922023852215385339070994025412378963319737675084390391703102379205443253462160599704337103609784437948989869133446527125359336564226146964025083829436609363315058649447583124784321937155182252310669828683283530317800160088453125556982780339985477845682191789281768812921779564887209219884291167930816756304904885079980191180440105632012084522789479953681170977150566377736136180282662222021013611942648839489847415971292926894543011612182789996737463683460648410249436671301222863156749678435133472219550589726474454166633327346531008702565840149082219362798306828161632608862499872853011335336413800979793425993906120010394052436862414547656057435904308239173831682638164860840728727772376180449693107475409139395219357294284018937065809999666992242328898663860818106860866714974251364025673904525717244225923875110457207909836136193888152960617602165599509971629160079224210705373909035154829620164201628779227336343607545010952020249916232894805553366738115474604172593132664691833500691621655084690995298653723658238900049310471271597424749645014588670994247705397226429622227191838791688653311888138128877574763644404871991868412311893604281308553741401347293800489558405176512965212069406413651518003471914357895295418285247556187577391273434348349802038552756598544968697457251398961655127859617274624736068369324400002778891661736432699175020295890600311347846653938968261719979659580594340279466734229603692667705597742328308792840864494536185980066780250256751015846130446472375283906310827483839828265150327895439562168155142261293703492653616698082786558281548588417229615274785804244002538766744839280752087386635306842209525236694910108782395515280615627600466593136829429288868252543497117353912696347757528068694994320107066655940387277606051697189121973543038820058134737091972304772188756522817163278774570906575775883430317525608834001122236887022238718597180985351980278829983638079934424961168366658454634622550096356921881780828077690403690994634285361713870766231173300881059311681960666590523322873031850425642620472079762846167870118545354952793595298286230459254851624631034766628852053668766257559660106358206584708526821648325057425684277248926834508266295135915918957367192848460149442010614264486082779425766950069925383171568627461808818134320615247758444177753007819756787320664444444239418480099751598332818371239649613366631609526755219253281696457937264470151700855690851402221685027733172586455763412883689771834555930266097686807433224918484663495630432384916964374975286322616589110829487645603489075240643437444939479228034689029579761044100150926796103826534917935151896977248905429356929994981243741557740144851939553180548627257890543328860706427035838770194228843358375878786894781790660313394732995245973697752239256354261435176066558925466103634208103560680183330251858626496651112420170252912247388664421755583051912877144393756787364573142954812083570572042375883534499530481971417965193750526747412747506566875317740349265013847527894836583904603231959463059534656567470403736461064687093231377188933923872729268850282907656886111455656045666819485532007155337770733667764550853812588100009958253162247383010455424965904639238840083924205738260818254735225925381517698315390423805986594321044151328391397633254905685394084549978896674691895083073416728275525925923675935787327622172468420855159732561320672498752514020836754239033064129446540876212021741214097946663012477279939085612183259778228974099792407913104070181354666761056378328714719076240487458150176765863254938553354118394867191185015210589543463258601143497839411083780609668175186384067381641448926641542367772902158473489074757311561463135693373488221110039752431155233989112394997375727319176497354249812234959434969970924630402922832779998904465669357340046100580839252691435017181345465376990575731365572066300767884707581372023953002902445537373146445138825544980333777973964621589995498763399375425139109270300685308960528710367395149777724360484945417894672334384421904763591455756690632303489853757863747470751240567918719509495436165431018608766117792635986227978344373859597684496915212667378936113128056013052479736995969672195224339254823086771493167525425182021800747189784410860803276987756993960732438405322696081614998796780197112427524370984960931052024067528816155516388741535513665192214598994243946237014078014526860891998925233276012854840632622690038899774453273431401007591137817191054285023041400973036802290868714234872749939634484195790797441077130432461359259206526339901359813374593922967383285107962717047437268078460650967143408878641282579379970754967937846540640908665664806537032051168780174944391520950946958005881564439770593687524566364257921015655008886651286775591537754355291051080838677822328013954390213090415190503904930565057644435811855318535958301676823709547627644198346202327894555020550505798377461365756389832249975752584093752810477823704969777084970254025315561248436396031786744795388579375562335685685437655331496801352403809125270159262588086658143581332451110259744846239084082295493804454401338574405874387287857647356968492596655889939531377485261637277887429565733505151612354034752122127185358223051083322093052135531058617031757382895255956804329193155182420837676986429487228207192021899105663689810146748620352354830180779108858935775888208362757884121150251919523990635219651398852222979955573842913807994391611159075840084986485468399520726754256171581400493380113738367130635316485152556813586181575623226471995417952711047926972432574359771537357530960999097035962915326079354032964287718491764887281445430600000065165051619330534967932656321369462127731735034777599623528705091433910547881049286327684931376289803648067839170196907191097832905535861133517997577070465479768271178897107479796086676935087691426686193265209728668457303876581688427887746356963417806881570971348015618322353328008626993251555407748186471962959708220851295765656010818786650236997101629132851798956836936943331872159771848856837575472293088360693586429797288821662839888962826943791494134014279300760639524704655383229473205757416383898563965411011398539152834202780815141856754468079659585083994834213010574059143831352361976047160016949501802014271733380991736497608623590746225167357490877032851692849033880012879633318887813068896245831783309359022325632743470934140447513803862527603075000341136511762674156501484478337155329322594030564648384024857080294917549116382050697067511567199913507065021155057018393703337591544659120960503493160528939024135331581251412702016447813148902306510166346145225795904772782828683220644397108877444523232758684226258874061138453457523644063407226615985190772222638316254850771690274364406105389222283512705820999471020955189107722561620800695552086353446628919577896773805712110692126472503876967331197984246849427681111397916035922825088778724695676930830959132746537733622263116999756638314276133601227027990399215286951313248377281653844854390242537487371151258544799233272527640087574945247623644364331167409755275963738682050451262685635061024102596986010127242085815554657392301108644046041977801491685983853501238861668336760030586546916364285116391493111567624591491583257767770941676521749270076133655411308128386000398388789207013771552867980263521296773886754244162274402490769320566268319358526548321150047356957082251669551547096207299747516042819308443240244588922987681107620627001743841461688404042462971266382523769598767568683889848139223963440004455336102239096394168682806824044452705025553706368663320725400112910316828293587121665712414793776079119714416735053679468019601656064994212515926706159589501253750709311250102785001831343708737309685395190742211791588011050418940672149577374116374380440051200710716684097107717989241864023892319877359375962325164144454018453506298781707396388356523630319731920009455920060492044775819849781123503830171006463283248570664876618662798289975703603777755516091545266609503308396823655628601563677010921651366827697793653245730607033775262839745358149795388490701070397342445728482603288439665269387565824848283535493604063640243446194384862548615786279128840761134736861312130733307250841765669562200015745420044382930100758254215425521941622132848784356935646331834140795548177344353482978410299054190725700540402784634520070029886936803471218641690523643237727465028809451309539938785882609527009511209312703227645354082155276879866041334700533855532508816614766475295216967869157161384563686374992289110203657098122002264402283894908436472913117836792769144703210371321249903533794801782074483771217645449099691430077758998537972377359812292620189762427046088092626697357416531789599782355731879540682022473268008210727425426591136474481481545350786134672476985101300240067226012790428544153436985633859324927715412297077151976292094076706890132599608180144929569784935282991432024715411120691319631445177248848607766884310149488423668707444064361573588043209836724774452953533778468998154195158471849644142668255444404167298608342075255927395047421022413654304861141535713267366454461489803496867346325692013600893342996774256390100630215460619406960755380027192679488095029094922470047150536563235504401065740848521779696382870640719042965143820349869267894074513198807508958007884346445910840217795343960620278865637920410636175254839546470707535127642560710168723564850078037295380420281396576579634463461784738186549205264910784889950951516954399362934222016345303996590547895794938895893788412159518225502990364903549011581988799639520913323079149197200879287786144902243569182841895354452617075426939416936636372572063981316218175918625436213694077483075821576469552978277496509489946336917464458319939643318578982696737143794238822312739995791806445397061456925378406469605524800559562173425639556204764324948983053711791779638671512337006643665314286790784184161090615679291205581082623915058756466627108542163994816187127802790487430696587868240833626641084555795319851095866774991062141905645972816285998590419728037976611047333047770311669847639186515524310422127754134043426769247029619751056544429118796043722167360125370410480438679632691230265825325888264211111065477333637704894099620707059445565850538508534671076435339552087264179068605707323251132953896224477233436282172362880149638144953097931207047871185040669137190873107688715725801662674187958115576361201708538246902767306015952317041813799199497680283881343699574014415392997761176039937060356585231080419108394981167102587971510862379455811361923782472669628171943754671936983726193595582847772307252491456879627209845270573651607091207874070825492307222194083060976923081068333879145098111728080828315023683242667816216461540718425371014690302912263816034699924956486847622445905436133539175881224782784698471037995558874466746123381806630211259899834656848748306136851413351477646120800974061771840168343540759238704544820998334295522729751108679714531090049858314352768425055707865286385920435671559438322708655552838562206584472197789780969824281204033957995406327534771512653573433401222705332036035639545539621341032980077421243573762067434924564661287818596893756325210788444442268550893098614852037451793822115023174014914065685775897289244174624535177116503172230206459937834728913052823950705241024872659450716859458234012332523621593745754585892419561457425950468967328270915971839618408502181380146991081905353323197926946848637463089561787257213317525967157407500008064396535855618768574163749718933507723457124878811442715155783268894830743176185171643375255988748751973393924153531844432201873874894151265414091074913870424272648242999823169415673105358390026102841720420138787614561157467120094222078648897379982901990738536894240880157425938049292950345831789333713565431527990203757116434379235871788623871406067675895088817966447045722298839357505177637615108906902152664520991728927164106250685085712897531499636735824414946158747951727080152382528163355491933813130217484585073750684990752347699343161535312663663679888736739840535204881629182021709578986148392637954786552481615976680477255609174027616485821003627906277594549849824644740928413249380848554626014840936160309102107005619190646686527848252833383809361849886774154841825774144526507545514507029357478503581773548358587452405263558601545561739412712743199272250556101125427303450192562132636590873601847164991105619012609346138822312275200997190871355033827446791688157156477345865112144575782996804280042017453071280156292237712185889656084872360663933299600933129514648333503797625927393113973926586452799434811103221581123732441079291686817542578339244852458622299059600280458914539574677953462501734080831651407536540727921870327475998490969022976548235538416006355821518249156450053557557113119177404960545113508177030200521291767145706439869550952498402487412621741145220498341269498832362533778392268937788083580229739864370328041008721760533518484514299697794211814981190579549031640273299967936358453950807992098963050270629487594115624494841371934294683336123448979599267707245155623912219847791550547714183152306910268251213568647101250754730891538105895902458269599049793396172054795475931492181640968321959533219921496824628726087668375652776469759774155270318163860864614730570165522965905686567991776867548120005367926470926628141333451393540266302991118865573160454302288796452203706088824534731298461226692336415044397050833986026022420321513756045303611777435583196440814674496347563217843226660759766535787978176349325193110767908090364399811470553707721469356857661024227812401458365521844822873601834363290265687961097967029001499800952479610628010753829960501592756775993877439590581891707935023658044975777712293437329715255523912018820582669791276827577604423206255679773647298768637233655840340017955443001367492313602589882057501690683053362788436702626008790329866810865574000851676080230447031208720341482712551582415256539056207906819221595354189006058409111950921459838717143694318251658217653613214693777778187818026524327254862312923597441309670089959753140580341327189421336375167449013224709588433606930940239796594348270459295063770638353417111458032113207360919993898691656625897412249892897769891383014104111642997528313027835315924725969670019190804695244417123948337894875658129071972909431797879131940501058687604023907564863850836168960147679478443633437435470667218266048344927981076030745653331060036823807890860441776983555248833695951752422211531472909641515548406332441408157387486981497742683620124619296508135319356773628926952692081113735369703379462612812867430763694531761124437168114068643387787845618018739325071507082249000763804313770046335337290976279485544534449787064824377241882274892187323938285732979656719616397156232997054609747450284028566469759140228427943737109401856233049749395627703531041966617721954082729220117187764175480949702410806128908454101674213850721569584238769819610315837177681136052707885012146957421158918899272828904000303895039159818030866498582749125363729333447815740751496182136639115728660040861249231932452495758099581675243847552307011731493015919763857626352737711462571528452599909340215644185082749467507066240362799702983070977490026920795780483696776122318180474473946498214370402103004936437124964284648724125799249337341125969021639550865428310220361312296723005310573418484135002224926374785219100375865260445251755026069566805967057088317512150217587939421421354468636513088517188742566576337760437032046046208394265442900259900439862937971015949267864504042979138239877643836952813980115571325615381160319156605360744219629521884834873048465145355421483462000210130461875964923293642723916792852069506815870052553660411895497318361282492674262308764477950680342586620117308936150665575002579435678724888058625750386389264466562405863381643931552821814170625953096268800491279255753808647432062111594822978975863451614820734425541016537499723850812388272098618152725873525466554536474117245682979330385114159216558398479871723468407140547204797493139742006887753212212186436023454411098345657292218002061015392075387910308278577307038696078808007752629499365112423958858352189701670123107615227166987964422574610172975660856217754552099223251736979572286154796113347605356808752054499421953182224811139724387498588898671618405768917194543525705877683554729617446097377203349599237904120640120403198634361229871926092823797953288539040395489416516594107343107997015040042924348719722811497516938036494500228612518861288042706081666524077186216737839057802832911693531000345161683641160684378289081022599511869796352977687632244039887083347672942308815997507976410501656613876208329414327515621938060360202079638269951743649287513700842445646606352318529964851035957054522801270945184312846498837268458249997160273032404371908361678546009997831920352107917087752914345086689562638880752212074106680579393628205334296053743762624719662958822254631318528838735040132032003722669482825370713281386674019710964564934444060637485308146459246804072392947612138419310148156026225416363882058833298722484633917080089352673748793986922096847115875031807656854940341248122313297735034961800863293166616384159917294528901163357080963991360068080009625288942926233455723413972970646794105356586751949582607267798468030821485386368485298980352321222920047146082548890883633590201886625618861209517800065539473527100316898590644320606073481976178744537046548181178682249187931371162958970231116563367967319716892337280692372740929884374997495960838870541043189214317855491526894413609415621336620184262516245432576483639749775716878377390418790511281950915720578150274315022298420222972730649817139850069355373111731756231043791780266891256533718327678361237212866357149282870029173126697067301284792111390670407029883160499252962648355345128609875769117393939642183236966520449833318366338715430010789167343517817469570335837098890025372322823083996586664768858389537165593250011651635808455440523802088699853572847864253714863341723182878450485961680969751335751932808992175807560306357015520304911371612315156687756487976887365580617456141048245287651211085462903062475660084360242208239783566223045154773095477594671549736874379482564668496121281601842992769655069142842413185835846754500374397231623593128731788244355868171475424931769366684059672347345325006736850935807890628643306055663261919820113282541096328050016240338410677548615627083994868783914169588516569468035634058960914958209614156760967691773511627086301946673409429672741949876250272366498065783667584111753635776794553671298450030113458584621405227500805530805268849447052999227415448522332957320976375978277708481262465526322276192213374320640466599376518122008562124642287313521031459081823066203694273575295635078023252465470648677325222296006411751775732174951461165757386081667692763177730559203635714444957914612613923527520087507729497612451155647355898535605516921468581113774424965021456797491108504931056088090266301472387960680895633477990885052289054860053133244363932766242264769339508160363972114396352033632108038814066684198819624459886063117153163938994752433318150563017314195951112569627118804925095711919254164952297540968681346536460016045250816573958160228613523065949371383906117261654324518199654279640314923223929524661619772604444475239646987041123132592524115147150068860699435997023895451585126800207795071298703348123131329219748183571226373111636286144485463364080827379083173360125315142967824628037243031661343924119384716503585054706963425291499912071456860806165180615769243458526335831462215806258157712420365939803156232194724505582502652232020025211638677797291355218748827166162143742044708569865009038668732835752510887611272459015008422350105002390156078357980568696726998006198743643475895145011674899653557747293185144666573089428835253851787116101061965233968845677004175461997582306048842691869909436983631504635418204829392031053262813555401896110000783160737769053925532907876085643879755063672245688151094952086111997632711135874403088973635069733819250196599853515257500298358633816471129481163268848549228852624374412508289514054444015100193671249830069946161003188273486506194765322831276304308908706343076838253438764487765375501284474178109028408732695486540896630116019025542897294781130181517347835746597086921972615199030119893073523437892763913941883456243624677700703188066167182192504901127641915957731554671260091289459464959983506929562004499804956236712266783341205622842286540631805158972903398928808059784781992221224972002837690210753169827113849159635657483955112396576370029692931946578224133926931979211005918945879069818046486924630969286778602257987952179573818064182472987029040223771097531401460335279040030690290271938505289805571169528794373828242110684544142960974520526553961827490212071861544763845508617793881411389855222222270725783049709487311441207539244371703910945142595906010510879230558660941645423509012122908328882658120672186483171213813718968716843630212314780933611828005168857238213877906530968870847568043295810786898966765181625484563044888579809285431260318007608086315387758328133761309424434807968639607133275991418404523882700940985136945792734948337691942098383761513886818552236720485943088868790998866326200071147928734940263698803011892798204823720001205854817853955557156253503801717102670858441010950843243312387795537642723724036515983483789661388356066451849607574603739872283257387027932288246632698984313791223255203691087455275128174607818597693032635871059906249716775560478267481049631127687094719922695362139487019582190610941887665938396358475527824538872921297698185007607350689084848425395070889381045556785980827344946467189007814373518964268584548830346101071966835524407425349168865384971486899690786195593010131332608646977861416230769339123947833155962194542646129070561155200131343376574616151123561817602080290882097267496755552323087051032915896746991355489820232086839421844895347786707748395107617724341467418204917349285044352988237082406902979774059745352359306147125355521401332426444152894915461274201462465551633381239127309228355156247885552425995128546685028537193415939952093720141587328047083246019574832678847194510521789944534367610576623586396149092780803333557278104205663423602753877912144577915893170720396809597631826983575421659967480635664979452823257103636464530747158701544305978116170644781389199138710872634676537883867364433396457865918692464518892112585537464576716640354615499472653486589525258963360178093494548459631621169789166342019491510711323800014468322995382201283284226169184901440351832343200017414227533920256572476145523660040668897578374769060753140060188335128574724575968025616102468974858504771427372093221137915762254760846636384673586230047959744524317661404496238930764279698430263352999937942760076989495561623722149730688821822336470245449321923733963455689646775761595055121622047435043183195023527789882675108194022546747840901903873511406353729883522333338742201888912530347624112315340651837453113455612913141484748822261612033163563871959658605684985254691220614559761422679627332635434721308980043169150040855074065353458804162317940054022565077187438142269358575050251378766053830401756900620927076939127901548339624187615956480013797142095146976109993833704038637666938513326422322179805654434956835371993100943217428893133050743804141735774450395803684513766737561604120107241220595337861161948745219952525648622556772115727043451870236274342327530656887486223034214397413515881140942944566993709463807899185335752376088276276180287609897525038337466631175782621883540530900505058163680340402566727780696793960795756881438597605413928395716147385231276228298087284903816767096216411249933653876224107496790166349759362882356307539859422608678468862205201190410420874906890954025863938215580251859633221669161876166661128878782059601912224278665208082697473099805285820226316839050386795414861431614880750393153501397655114502414562828339233588876971572511473565991199222599683439006634277552911365085469356635825730240299781193112250003165185191672095758527948132151942153839994701526000492667589877515026242412800758896839118729828846727856970953232766539116369699624830503048912537328951095287288078604311058040347007160544925663913824256702879344371606706265262109072590346835932045156432510516388487295422168248603271086037213392831228135208142064325425065154791861765288842448191247525750599075928234729601937113970189097243160153700847533059294819911667368946848027045551355079700384863175852066295054430680794935626255920600966799353796164215727825787771659824045279635334052800294239712651887735770372954510484040824261362089942171355554424637364747259742311224475041606339909226461309421282525992165225614288706060724806106791655292677490449717793967409758161871579998911582373561635610558927385222810222570526167739125616055997204297912843964681457904365264987320040683457913029826895097963254264497673900905302762780288452233417617194350052955092901472716153295590586290944278358178407537355998459137737399284113382699734943122218993706326641273804978222148356932604109063939309023607070098716018557838496170170236956990053173156992724083438427165972523584912140373707773772293381892940008975189834231474971766944305808866578665437955541641981779006495952148738202953426318387522024148997515551237737867174339669202631136696895638953924824964421054014255036374330904998332765808499232021987839837265739621959832726329595487244117405424503102044327622116094363567410301007740137404891602096063116803458851790161758013098340544562523958584774017471197095854923532811299904308478792075921063594610188428532652735422022883562368272861976397461426873733841430299691959052249533359057725466235972348724495591850057434427084267072256608740843715340811386461939614357602504071500896089433938149175619426215906639456849045487638675355508471369800994212450172382999685369374109097236639431835772172650504108400004238395628202308161840946703056791571050731713729882641855520545573932000942592054730522517076028371431662673835931764772187561080318356804281438862350601016119659410353298764503791058610813579621016703472010965480770133250177032690968799653028066540662711696182227542642254508921441814789998165602058811912812204069848481860958523496160817816730389123400851672498281562456271894971918931171789098616853056543436182632791580923302582746155576347222623904148872002635798721856188288219239845305084782250202007403310125419385643565006774934327025062842385402804760330833360078493015144087983459070493096380702405770244585611129212474021894027573381379182791856442281614647267875594448109958365648097536613861722760459937507381082880998581547984906545176697604903319681702111755752948657666925094528439063164026588643374001519921907996634086266321672493293599832564435277360894666579041487185333374090204895328995239469215651824518255884201449580452201354634327689172851847934349108109718545179861275692632305628421659260031778418803587348035316030762469344760889489405749740910726462354734063732056066488970241027168176036243149922821410797347993259965619041623606486186844111239265785552133646676192127784083490330041756079747703030585862459821046362382628767034523262429325835129769369859360186291064497446994472753471415352783074673200887891396739754853305662507767719754536485364034319090880232429590328160732422502648126406217743582928964011880720982528126949963710743763174028210327487372130305118208438720519690642830818919262329117754625457795032273906568145156125421035000667077178651058562277396653769931887179886526849690369994610140630893551674093798888002678877869912941278708065962836363993820674615578894391159571559640619610275730460795763092594811283227822992358621909940337856326175879898469263327725785903775522991125446266142447216476574406088183791759745499051514826008244627238665892784102319950568336750938917359053356358015190204282744030194359535456988216969106237411286904219090445987515496885047721090670143279669369322065615856893621783497660823731554516421111526880819022598310972776026477702228736398821011828952152338878971685996201406480993132657259757953123238275926442744652058068423511683743085658218584098606039852687696862740583609057151908422679067107641172000415228813211747783297921960155464383303530273142140616973713643624473750463160125015576505217544431128193544490326687010491961864271806692050926946994657749637832108085339683015901690123543218242721682240785617414555936097214128417450740837011371570732432118313803580030426357298947835055120793902132437607441852458635477361671713123036782454957761130447868960476242659935596863941364230596340892865091640942188885257757287668221694371648735316722489132541243020946361089711202643793503800184899474996139269890511982830813461741609465364052985105524523560971645494269559686970417730121176627957942242524840763973265030751098359884971196415808696073497530994160551676444049359471971866573954030871750853931774185882337972528425927745786704336408749745480946550222631714242373913858767116199924292505972124427137097893818610415435739382659529658816196717723201408958016900482760698058989178432931721080879618290402174913966193717309879993241062356760998038359750418320376474453112145482789759565224498899352444580276754485898702902015064706151022415952218030356797852403730358935785024888044416984432664285289827337271636689234839740407670616518255763788474425166834333209036470098506771239322301463096273454103746545752428350827920465339302722977997242480347547808371626038957568057456365474774456543033733786256691145052028563637078865519460452715676580882301693360776699253233432351062315962706392531265028175235742992583496883676815945906200764741454807168066202604478868239418036606279748588906266477923341898326357194391647397110033485291504481776402358212811765130905173132044030508504538494994811972395903863442127708105365387283130611908548434690250830413703893494444424001653994885480821860785325789064241879086814573418352323334007511411113143352165494918812766271783683291741322477921168817531972547820287760445728177084791276807411774082909962509463496375343014775419468957878217287637335749009366731479603622478804848532334635270548760046979370202982918127415815834738300417567534045031449980426477335112919230961203771684186815335500473019897898118818331808124101666686881960584447639990630566776691750300570235677879659212322761956240096098781859320346709313200619678434259761373766803226506816927523942711222676965494423258039511262097255746368935758924088853205875356920745883139216542423643703803967371522686772090233856439081733060246440419255733519206162612315540539742417905474922123285678336808750033860797473560885610644701021493972836457740194249689809653010526556889153973463314577933687564330686319997418257696109080945408310551670645377203131679492559015770132521831700529643831790611497578962012234736730620253973405185963866099513296379458083843471453826663979838607856181556014561294208948013789287715811718107721832236104667790113358830935120790417372381748305155260662249469960916706182479864615188286584182426072919345738537102540351076754173789353864680850018347087781232206256879745581364606552019728528245143995249678484740529490090988203270387492973449346625831099825933611798615779152537438128282722178976257997008712280425772647824682666790057920150649552213379462139061158678656786953522940645702885886462620533122875374537113721417389756370755204307744529137544648408081711339013348501554308726528222964911491835907119409551445008107987581480273860223145480245119883204148335975583992429230564084520383696109265531326170864731673196061854469606904954189656323823927522408865105266607880987906235737972959565577314257401380183884163100824262894549753040709518559212548572549449530606406258150988745777051428670484730226544225512868364473620827540986702128571162707593548956962976722557002847200904710027497150794493008264065674567250102427202732796545606840775097387812840085036332911598242867984327363481593459334402987700091041329339886351190612552298215654422011360864500124243447305934679540375933034100332396005502253242406977488490533764500183125174415698002264662604368864564998809590809374019723751078566476173840942493330235065478433155916981505051824341389238115893629923311833933959623912389165562903081592183061349020265426769971275214705159510367041214054421885486775555060074636850783770929460508172026372453632927810068471188800984875140602800594799284527154168001084236722614649894236769371341917624490629852778107973428573665264941814570053236064215733773535232569670445421587427241804001409087265374386388524145960556742498485337821022580586060645776089311210583830510967615841446306039019870035162239796944217618656176516368377792567755908212450051975914420318867828596866043054171924718965957627453567201444692946287424655292004420678939333813620852096987525011110706810382440753424384395911694035436810623642276790612456824483873197958374420589743203888202697499093212393918604252373375381804511328463510724786772665507581178401800690977842328195728910490361405323150748420082077527202257157220081748307715341463481909812656103829392131294221302129356457112767072624708929636139503775024509909974914729466141831901910736680911505301410501200106721188679671549183368876115876197381092219555210861849881802185398342117263874009138690893410259604543457311160925330003303331176735274389550468556037611819977940180792485125905162755423262748187569048997772077498242627963531098486759237318327736906053088091494703308585218340755685838232024140067287183956438582287117374624497650096522578386617152760443876925617310777812647044703683177105566028346164678839413131328409570519549178930950377067852665136912279800292693316587518170631481090261782551249765636947720318497659936781534750748369906699530202635640960403220608358628789056658299218398669646576956809164989449899134324016792356299027137681513290426163981860679112537338787462391544336205847676730350040707373050034168310188855719091826931092405249978200719559348602193994013767064262989560161027253029333629494345255106040553657718478009218408155928415567238367814266756769261434511616136822435345942704497755318661352908113205774734146954755799873299367116339978268337769015748038149854721256141545912178708466652426594985025254599102520264338903011538017912458840835666175834556508389773258158670638237447555180013122612856686341993194214350155050331826710616446475962088835368500042906847998121872741894888906753757301293179731317373522130843572715874501949395914444459506584343244226194387317102704665013020712749897611233413028269266963999070808441326295371375299916491999311279734425487403179684414710461606861979608231627264389417976050828600974630201863064308161900409425676425167151736601993377385292548295899608001969474751434360427736382381852794550255660721104791915871387517069594368761698329773307125872025080833409585391373912797453142658555728168003978048012727258986139236891939569441653575718388175727507318753817696421319726111271168195004158042230113019682723410860946539149568529031491939888568385003460713950759917060670896475452048708581877410014658801296652948732418135931308348471737002748798855529175057374443647872490823359568745029063273997771945839954119739094027718881988256109866617329302784071236401998277413845715345274295908779440157895718413191368525776361667437700463880643035207306816234197278110347772633940946246572109977453848677873090514041415946670941496376966734824653184687428484316270667325228089963278389308264434198940723187175551023181578803764927839968167450387028676172793702430040585021465157374876105552407481357923645979275716495186569976244396746966414352977281103568388957203259599747692215016069407990240060943516847290390158940430304871200757188165934309387157655638336989654912151546779490949420544442321037919461699552683035951219679276633068442047458281258876428186222734911627410069736873885673899505527194535369560963689648495205107316109934457986260886123942697835086553671791077414455250164105764639072599791846412511127243780927583360640651654955842710340132089939224453195949023982715861275995263114119485314597149027361663141483428387406422847172463822262789581606579319838229973037664206818854233835499837057383541629101862854142290200143117431554267799315493679140437904968572868675210641404681391309119797990866918635095992915391434188234606103541765775297896143420599171212982232506908085898861047988146652104408646328437573542247465765914245945575112955913040782988115189947961453221627160001423607753206172288977429440768394312547204809427777738579335501651695208460708034501834067205917934451389799194484940108772489418406655012431364746913183461805841668693786789987714575546915171487753431162975013236777250554018980676499907031742407579450944119285459409184404908406059860808951648463605080680407742678698432818573745426225563072943262592033348834361626774240491847182889382871693118005017785116324974333951475468711545816534868111211202389534938930619266762529509464170710941624419688331331472642934764988413480453994087690773146216632517626925166683932425872516282347708856911871025781619804790074180192346316272586559202523292369700002721564949317343250488256905979280950129832458781651214243940380564482546870073450553049052164962694810183516160637745783280239118906836389351652607075729841433327300203343898069200914692071286501511557056871850891527285530339150513327104632240906236703231643394294881168531702480544452261121116514262857936234352520293681748720350283890411551414524535729271797694515000504392074894746246169747535514779093136333659597360789292212583566774562989685632303695183326431001840168449503565866373738350893480142386172589684342599679559351743650972570998234770903034743289658528673896156259061333598870782536809371232689722509990174096584996993672534768925476345116130059297052572624199604384368408509836835691148996780287585522685561248234582618230977786884353274097760265275071783775776778747712472072196957271408922559748600556819443229020741791474250820392145193106540974329213519001843302005732153891811127314395941042352512569770927868832593554053543026584794208775440583393563353877294265717994514145458080101464903539532527726773853590818026984565816798622415423638253121318770393335583709928762204446837153159275355271883801794306875872463376888066853964371486813828594974763986144099576847554476813425058501172997543297032636592036692312881513693277089081274041680558937788045890168833496170758140266333800737599711520289967371710690564733346414184701897878119458286156266560415135288295356536872439758320695577938453916032700474772437809247478288985529088372998690845395754519799942990766883018183638461479866546252152120579260982603230658927780599800785373477012194539177627425582999233008606804989880036816742904556611799895887251100194588736081658433303374062296563548838128244673579427974544530747319743222414590496874619427057138086633625559876682234471503729153533095623779366450052553960317122221341179149581720505256587110036218918043699801437923870885494732179424339241529859487074272735730900472401224894768759544249777381697257569244370754754490648956323335972196172090633831876033972884525741734401950187273412296761552506443936229974973197710938935536904026051597916658999052656322402614612242963074537091137739219528940390365488192318734958037013917323117645193021271857103466804736673348488346563065164179071735167436834931820183374672839304738212481244701135730287375722204802536685114042558948517756998840476775137516837713577851172031352609272719536824548254729846512961447862808908342005950397844764159808753646258116881301528494060829007533031982814796626203353432389619342196588951768785458734607171656227408469676587043618080442562002430770160332059623213274766845962604493406207320312083074500442368562872813738318491854687954615345369694643319520422003564909845423527952007802641416197756825163895231479356331795460058737001694075203281482864135007034260887827403135104855183008705693263572843199153215565322164364188976431318943753516048123944670441631332201279166900756561198400179564410064035195474923301698888748194841373995755532258540819498959139881825129335958745997856965904671811062393744644276610026868453193007448322841259919639939895020910058536947463589855846738554410093586022455274748811748755200783168866327325483562945879463836130464477406550042771323097429033558278482194026499298459329621948799645321750357368775305996867480255098782580962329587360731777401974073623895034497062871671923250607601839358618785448054385073161795498339922391679101704979468077157323762548820378087630563586691293491702753878627665670267561582779900888323422421083577887339672007571382798535020215764005661413671434941054390679220946698829309744182278023115369970212553813532133586456219047308400422629437031283282286465513559337524911389769539755163552176522096340669091683510284291453220944339876893999848607644890201939642974594061786417948582549717151045431147976878972665332926101424377110704399279449537588588682590179733812333668127318414725792624268090011219693778820672710004105724187730635971672899887445531592966488670421816128618621821174088361266220763337208402185451473311165914518465402226186839666972114548512047222653324669180695089327564469471230863597280330457143781068345300616728785224752987767554836684692923626394192984437294197305196245341130274150504482852926911655584479876344630917081983753250623766232391248556858851815157911645767407020169602722131455860846594807868865756230611880503333215244923243006703055181431366279137208033889563115136589776407056995714008785645061865587711949636738563259453808128321888683220141688493202468959101234386233943220492005539026516631783740616752019758679840699970559041083146738937544182705195979296253163190019215403158699801736497946102546135426111963283772901246988290290402008795675937285718513942005302924978415331103181023980710842713905639453507420063835534547662343435951371680119798796170450643649379929346786632853146427251096864005210230794906723422631013917403895988314726726729423728041582799061371751821379570193481994484286046157934376123397296212030988995620984912372821507858769587582410883507594553031648514874688143819134661948081083751134411188406629631762002431613313721559279761254271091639809377646571956070431198177612275761045679438089027504398435773215701945949716396229963165344976492223666091953912543927784817327285491792029062012890989450399949310997623301503864856578019528981849569556501996433315437682647268328932933360106415799082146434252385609223710795420037158927224618803605565974470889729984684893048167561410605523058047794625652217964760235287214022427327847370462869346813191201911138542032155959855552885019299817033838194266704502536374063290970004058068537088661825256285764891386292809022764290102568908214633817642845357956439014343025499846116266401393920302820919876598898393874448259861065851244285594023964395451106390458161268008994414308413495735692736948828991332799915601945379546725007654095347235980169279264756699899909298668669056163992835498567729464682397984062102607286256530069753874867419958404820217588319889953475997320462786412494857334451863907894361330553212901484562994368850654785768619304616973824883398405063569600754690449769132915769488365417583789830655141811070871017761250710922317262451142751585741050199615769682046535891040894618552441920753969721478420757417548514649875898657359761175344370939016230532011260617481079895686173755193591468146020863893244677292390315917500990949351547275621102821389091222063971856837010171382932739297565298635743969585246056806780934347361701572855202162168045663228833216452392628581726199382570537043079760107353002348678315189017225334507335905089781188922073816557462926632703077182640392739102084623295426963411288970829475869592674422657680885008176311992616157090508041912714159470311737342167709418221598156589271300117747189580068700129619228047258137150456651078655555678234533540157413605540070681240969733490308821058972745609685258332670184307362143974543777599513706793169205837011370171285469208570488968808683509669851702005399671049291103979326104513978951443064345292156956918496272138546151411457761422196024642833354722015309884597699067505908875631924804809516632000514681649080946798893309511629469776899700016848891087316226313894022431946935722564830569998912928675502495092873900802388381667621216302497790018050146844167845903284303419357057485042362483096050345454754285341681261884130930760526335498080890930786991263467147160966677214061178844513560820653074057836873471323241362407855745971491313171803606273691470517317207139132971487630482008022402160884220134119467272524426712884210472978725505167663644523476141687057421972816241882698953927766636489901174578317870805331814803429050143206680585983594124087947039830766665730719985316946516885435065522113792404451456934614546953433498021913528287777045518131858285075855409932548126283377072945379228582709109207451082818615770366593277188784642095154000430485950371142707951229988155038816196081067558395044488675965629739687870512287462837670540851293976721906512117470799014874150007270517702254988642203670190015438088305227270179194254497296182724126127896914819516220768923987102669137136774459077906740902049528385489189126317082606430350093085091152935659018538872639892406099913304518731865855106857201313940283560205376277320428738189301487985142139370150439306477240432916978887886914556765583581448438375152389740566628627020656639378849618602072649838064016971888188433742966449534524374834725134356170391037734852430516606303556035648865137702519469032766033180574791969092942299678117160352749888376747019121354154942637734613303154520554289854129419395805756978931818555173951628133455062889057868532827442302456141940050873255342974546937479173141534608492113811827708199072475685327708024832496786492335458890312595266985871410140118469772057746707506962291345203708405166319926697692955453336584840113216544378168777513158300869714170297275648967650146201735145815248939721477292415630549783232211793167217771064088035394061405376198461860362831554150539178974555867368367873002309292075743649422022612486205932603625606179711075446950474512355388594296666839069022617153452173766968312442917704470119727349526523026884560590365002389968316386805734898515177780367742431371311151729654195029444813785673211823797243321014523632249023788889134820457211656604845045149697537662175721984233513361326066085125697148436179343992125349612405162896741647351031739981561843405743771654335443465061749426833997044283150321027304132543941982007434157572329038883669527736731347990180314340534226554348260062035256695307965702593886286366913113324601667193425983160176560649581135748912789961468502340398227023720147860276074150100574949166674810845537408155617966871637681205245888649274904371266831407483486017776232458570095757876191276980914371790496041880207484227746983758830077398462580112799661001081750334188912943377413078445745197520396623885939433554341216783955118264553841591824683426264959402210047535671088429733910486201586662733952647457706477801473658877683887232807854003444842827979848209721988245875897094138902505221848705486887070158898498420541749812221605721851358266777125747447576481456348336244116705186486151249959067351882695321628361759405616613520224929247271259864726639841511669125031713713899756197596262539277648011333361222602857108357532182117339991429645967234240553885512097460634125932257384295668317152691959120847618556933259101862281593880092084972926414152640955295096948069492424063825742849130610657197830489730469208200369692692395632416718689366945540103263335158265340160886451503326493050605614118789929911043364651965076704922813597515847783775431757448557217927114471720098794071780735164235294567057024437169235438784437815299253135447637842599293365846209846642284122736447078457221702722762077031589895486069703085684866825392970381369706876941580578643291821659243979775038284877494389427176654912055758308132059108614561887356620126151502822927316401560372468567701820146676503282104338395435334109249571734195532386536678283064695886892726220835511876834472527002163995166145290777657236715698549572020875217888376696353653580312336446812839341790166634785455062112364951964577967223906109257797949504605105273111201967325035967471363860352639019186020160903389999432685571630579988218527662052134688788684049730553564337679830898780616416545074034358039117641227447592422346015465067426978920864483540858891224115203927848594366188851695607732205472959265054812302047207611646958993602736736583087338035235547052749782745325334272470041984493360390320134680896873096429989191787753816392166877438377731309315369298170117074650229769279218272464421824845873934529358112987489271507268508369626310703433537431794412916303870613040848498595395671534097958454595664104473602942849929713621000252628336628442274720763736778326725508858608293071215808231987455525211658777342866434225314834771327907631386421117819726338712162002353168406256850936560721470289000218279823942852905290709399905465527796131034089609323590718277118181733995398787581795445750695891843711118656275921983349669979077552167395257220492310869009032852699917898429713689423336555218922851012134081519041809253686900924709287157369296079132834509535262183492128555851952663105494321821777453305063027362889682725365701643944018599238083634773078919922281538003647369975375485276090261549423568041477711717482745352837743690481843109709023464019892003515116325943758690896003012279192940451574554856687422154531326521727405402582307694754700356011837655783581478566436484685809971688837058147786023077286083516681307351122778428469764398989954494402780398640194802708751449294394462990002671593715827411517760599851105853409007990584210189676216922168733300847560041011908034677161718091069096086058811595586144078631119526512611964826148416297241522552103882055269480601129773295124478203913945374942056764526028204082101998194645041288219741401408909578294811169180145949365036610636186161362090039209263799850669072973594710975634096551652858037977193314234319537225421852489734562675549512235368300768851517138463063637921526910445918551889897480296841014915872383258514209078643419552862221053272688280316812957480497004672853522245154891257214611563639845991157614783053140877976997753896773973285212025723233412571069465196081517416632132228161368235082907534668567204645436523164519393591792476353538009074962329495297847648119003419339476913826489937500050417242085505053109143214740095135532944600572296598710409517727731684450376270442596926999510868530409679335898135507792136095170179403015309977961892989293059863003491298083215380081861977032065116471621088574600561485783888049394411193809109827849120650085949586017323020713239193831021884560563056411505318879124851236176018445140906102838073306539276618062656586948875041823516169242487266425237709739115821426597953485110120402363581291384161767633327427481876489798123331372109168725279200630619806800720288491206594066463857062045332796728747192766446245037377522295242498488046971285537824180840082630504501209749249507002660748867638930188682347486421324566628997315675449627036217691044000163113533728423445155291802728284777459617231237313280903350316303375041078324156869247872564078941396643414787367353734257565590397889149668002387600603158278256361907037036584644593788892742955553982931544196584077267597093924546793777078128613658262035458526579424942399059339207903056865854291095271736505263556178828855760763739901385152601849124627047247883092100295965133477752177180603213160747097349900460264240525945569864997372358788696296805429849534201582360115154762666709540338558385366945602139079576494892253950929496643548091518176642963075697785086107018647172629007339671491312409463687559919512852966175215325002570693453896791307691868658240735079231858387946730635142465127186380258284281407508258935553837022216116500820450652160940382621317015454219178228484784872918296106608078122249019387571340551476947532572752313398224444409057556962448681679917993773878463075284676142867134929475847204753892291078556049255485687468746208731639462389384332999512576237166155627973675941279938980230973690790762576569774863034498849339741129559908818898126556689964208213257363903046228291281589836655961599644288243387236899048835258131282850618669045240518698837266824163031957197202166813303803115964160565529734309826806048258085282095701325207348667314284877212212267325033989672858848798652043038909447742283027693651133565544605104469521017261815872281756002188754925638923927347206766032759964452426933771771327812122767395774523495028511032130777952856014752664365938949416926636662936745736360549816009739824856578905371483125883395512472281257697572306013786708861976327891517476365410236829568679540664141283949875553185718405166103835396240807453854609028486803952910566024578249723085062562467427955537405437527626614413467624763917249695587984523374677266531366500353127797032679468873077816817410667452901436880540338663299131796266134115179218716255820625870406052180651663787401490557569899889040076939271282701572811090121373583142211936209863185932627026439036042752509207831040876603760760565064806664339711071364556413910694076894320777538336404569187053404271326916293688467567489123182998203737441161059394528436410462937331674506690539520538590547067223361648558421002855979251191961116783752616554851561745709839541242642762244236642162713780644470240290162854933149521767614451411829577857641705671398682122848417206310631603087629554206005355171795805593187598333486001432452975892164459759974712242733091610460400892353107889854539260784211171709028286678828443719454056455319385968433460533181857438305570533245171145111202183375072283649788239504603157888730013370934842532615598650409192728390026621796423571848503531297035368195784166788740815288067346082578126283483439361169149002461107622307956448761806548161142882176866481703201799561745622947071205860383908885560711797568750683657661094034741915324710236161117439303924354691973488749556069849922411463486123366799171778903324512252851839415710764577779404476396221132389823662837636240944721637345033707205065800065446846468277914305356362358743015182683198162706401010832493890629876988493839401095300590950179482649238939194056581907045461802975519384996598801113699116902006949849762551373957690577816603383552347866685091877052672705316304590899153286299415455838572949411014112604391555650102661507977949164370332605869471001741349907056921910854158330125847927299222743056309484126931980202556279825354218424791307228638691811168972475965824112842744918919432652761930562802923373889406958609698592803151362201569492517674517841304241595591509460103940022646990810828357055488580492484554252056742257927841975092372903400672942571627138739244939380375479827601057998911992246390568361733553590667342280156901792682211228054831198707261585013666596758361406201556308844203500699198650807070511354248596217786599402884324416452660988574618130512145597754558725998473438658568041553375502114361805839418113974604819652526800995388203624223427493742554023521511535547346570774886371955626714115037756895956168956119575563968165523932795501759759982586460856904694086483534659583162204661424822301517050662785122188137265808398615164758871352624190785291883121766597298372160461750180992301603341130696857088315006222793204815976067208290342405937839018896068018263005814586816698523158142505055888623152955335678158194109554221219044796120267414607221110900828726693752909705954620926934900016832246091596956558889155939926263000684169385662043178008048145371542979742156836972591559194767864835294719296074898763282670719700726541031751889928217614793039358378896642129064032850477745344589060577537221843571218164282501522312037307368858441381677447501781466663806871462776372761956625465509289191032630339747229285613351708357942102803549914099943498318017371073945537478111546481128377729690827480197418501665317551767091876635835344557919715567571749250707566546263393372545992675516921332706716764759736939701492157469017038476608808298013853597470663077604415386438202988791357616078122289946419032776342785210333560820179193107231803028354469940076550562017137829696150174420969732803737500084164696591343055542975646972064082880154279774869224690806555942357548103560073425558383137315519641455393327634176603597991553574037043888850585319703270386928076615550187553365731131211658163310509729185553560301506007337971453875775854905270126450409081205575148499066636005533345305911677550336756252349157274961091299570990698746002961499920336515170975024211238209601012429657161336825985530818791430156277254199685235238135064517067933536150329885327857649671901301046609340679426638152707868967224375331272741720292447985535136249414588778810369312898899874460974748493761255792343733734772062743999552264986069483835419743850779742784978861198110705312543037777914392223649586295389271710464565651658717317657183612567479007752796165076871287553643863694294608633289121196534655585934035063763391376058686588192112933632772910527764627796662262641575872716083467219838199750659065014419979735864866340069408017911859734180727618362575880467847196406617227817291572226554576445947429837529351512690160625758199613812308134439406896842591500502867392696183207893044333589534682863807831533980159944715560532562934249492906491125934005977056738278866091862946890523444464294992436626293795166955319779762508791365097796842001895592186255372871783260635355771142583982508300590355617040269233834205480702346125406844839538967749912385098989667014063445908453551822563840351797199830348862204516900218295458262989747026850637756794282875295015464054243559998000142347220407767899385123394929228542256867999732782313251871054842943072857658269080486849049299875458954710762778406622702951426815137147614949382614262648813083579164705182907296945041529423294062012750559688115655012611594062756272823784525871653862311809130202999645750626827761152112779188056419368245603528715098025827428808724066114949032817976150804352385331232005461272474028370238674203062351854356741275079670673967652933076984105771950942641163763363056244240583294238460121841878793100418953833636781385637896081930677768856791532493258077335683330671890789939541548337774810726616341519816234432323634734440317668156871180883540032113607169284372815593912091748949564475310211947983702398411244611787185716240085161728472261458903310768619722181325607638782046531690205768736999418449104915081073456358387376400254566196155814282356242410104012838018362661109530571385024938524701422767180973400332434645517856338528831438966139965818123784872125657398019425817991760843683885855065241542853891027165204539975587656627176005105848861525256828514304486355833273385266774424158798146591630835260718453078523070629026897908664243148647404940513526612841633678576803588547193941459361002785569721972361969223797462844956653209577525232798675545368464404985575280127820199267644095907261456100007781298568237830277573870279820114534746376951382204271976796159241828330708059967985692756866202340176903972370766695552805608271495973406659928912452588933334475482949880308208117170323132827441565811017411762446735900325427542441553485503763771376229493810501970482574993645401609212155648070225387597299052289982526109558948719321224270534741013568673640208226402464389926213643648733209485101416526710657427933416482217902046249818249815118744930622955584331296789699297723819110953722809052689693442959169923644700868655655412149050112041153404013036722531548394441301652354552809421785799151996608058798297044087854521875928389842582243090054444512916922128546023392892130992265040495904782898473636316937027415927019887732005239868231654155092386568981802633812696455244687460692766008882782626812272480672327366255751171734314028484277074831288280097229149217981507950720453745451664473541360371844521894381689754711766376418042631057173391662868750390502128692990483148591907772692506091198283304487125859547808078578575973599788084466339538458377663365562700843975802543800565778571943500272870048434168902630209411504183397016277643536825536802084982701893641399852669811062757866915295589379962811311804827215348964435165397413255647792060385686399589049861070858550545857677673153981622595018560057578389314677069758617215870219329512539725098164402412969766754501904427914928870993655401088001316163557372994841812888513345262228014620330500258041210457606213342480199001041398437918117101292506024437716747557731615741712826623183129334082240076159652902243950111842551605435030230581949281159270575450277064158480478687917273852154997553970529639245346006446937199239367631705175525529355082835103138387618951307573282375080938004086389136786910953219248782656894551996241763544256580592903557079135157347368396353553538408703475257555910352313031582201410857063805684000647094230892428622131474244115075111743786781147867621465383876968437251139472065431660339300209417760783857521777704926896527160692657594871204008304121057803697143080468656684793033987432379661950224025528260127370438515449255360206315911852361607774803697046194784118175247016577277084539202142265546486857584840844914947750146711904356511888253822716021699899283270422552795044719805904041260761321057712255640981150143846356697967608994028778606067841322184498182481588666067372626439099320768910789481210760565905706664041298949101034457101408251907887756783871691497017984642732951941092297280954181651111258340622278582365793713128700346268193690291809390551312734527289223063116425029358665972680100683773576096000618922355048987784899197909638021097283670672994627957741800395835439450197831589302890229060837285553771079456656891852293023334077910110004297600417493449538812136819899743960195414597565534128840327713893389239432532396316832343001558042211291282229483851736263882598523257039419982010779156049954219856612071701806506215378130874840731916744550241472446822092523332844955513099619412251792816070800548317294770327889734758270337680389115721483952540275196019663864604804429384520933974010810073820446188006486425479770114442181301947859534643633511204851602500741045574861836379124600452611587948932670081294718228721830721414621679744524201932135746470450283581843569723799761164600020464084728815605757114929624720357213076766687346223463378558172908595187471586525739341152124521137364985845110759979508117090695844077444552664785874133597373826644168802998083220785277421335498655726232351338144089395566848819874835704863034977262986043846863860334962140984870501259484193928691891493803802411836971946431660828361512587380943340233258094925508195794325846649151355311380320002708938077403009839056046332091359240554232271771181812434224724234851191254886898072858944362404366800511500571358928965517173471357534071317426680272129183307038295288050683830487026086926218366750659238114586594018916482540121137847950346387912696454787960696357807536608140719627616472723755835564345451007991816863532648815100377169638392136866984119931743777169982040050585837553334641287683726999836706292827145274462417212651746637797805975388561733551763001126973480147920283938417398667460656632454818367638113119610376853048299326831183027896050609126491709346521029581495291027783098058136399129260886093759525311105493024683169837062693991147004840512056826553903701299829783790624461857876107810432403302847866519426771244143973767452021441421726254238928295123034525450509288275374682469387526181923293600816153666005898762015237220004923056815154662133825549027366568832009922903352998142926730396682517578642434555059272550531630485700386392067054154241284038674104482561154375715249294830239315225124933431743445257062688202626521500870549646078059390213239278275239627683098225253796025091130587737291265344152283504504265767618644390132721057900486406475712770052383468302780677243248992138915228019665707440968819791360722735851533718698105365677084137969307709028956917389244021484747841265123491513573116396079375472666792878248050173212054254628166312006196722688758509575562689561803181050919576641144014001601482234998088215497302768687017727458554362502404749796652445759558162065562164188185820023817719807148625461288141569732911179450621954139348386961945388702397029302585027587918862871325169417513789980151859881960272109551481814503112902355467590623095636716318544071196834958526443064556071427498442763274478120780835342706038396198665636191393097474221658625120451876548783513611233316091739721819949032281032288236114452317321425436175808675103612395101160969677479155698518938204154480589873946131146496279537627037482113405225924634806311977936249740440607023628918089893170982567603837554324040995625897183954082897621770869743828185967681852308890438436722729679818579983554545457589362958592824021359611247036247006864444934976751864183277153147719574478759848809467745103212556254454477945666436047347620813067000375573811198657971516637589383683693583283593718795430572564721818769407267623419992103172657562635228809365321281702816205951708208072427370871201837651605794971700706356271682147413019782059797318073467862704535469874648632545344996839059514967815062940680722858655433052245901820700253995001399108539184039447578194813482067984626970768004422611512328547837307193278384797569887674783943471484968856833031440360303530879907684656607546012887738186025703348439783867577200930029466077412841832398824979961670656694085964962681761092487767108672034061907513282900761197587287612476838833748681870736287825475827486239418768906216324283656302865594557724453683488910711254471140048749281557571448808740297561219018087984534360061686461501307804752386861570383742548214875584427508211043523218495654363165124068560890824728047086985460594498390891723432611946725231997613850888001752167242946939488929647052771750506322498429446234399691303025935337634939069677639605391837820494716424591118572931450919120106257929998794326766984011201880169599418217251388286349890327867378797801749555269966538383406539867248884831493261448882181071274163769218658793611225411981306998085824186506064512154856012785933093648155316125409907354874091618640791730634669801919104366090218841642886440698148203771611600585867894336168808402950356647763904219878281180920033394381918627046258671085613684852239454492203092758064292403856151921981969122478230730195898720196422217939285613517491563974992329339128216203414299657429652113504204758038307612818034224208311592516297388934014180409665331629246874895533649482153558631303887322950953659611566443990244981000698052345388332403287658748019780420328340995682841791685186239645855867818798405090483225343896974375527690797187245929179957347261251621354914424346698230952835120057932228771589133230117461321215378704119200838499990963770781596350262156009866026842047824544412084257012899808937613976469186172899757408124446827339179097426331453314087543172528081694628248130861514188939647425968239862144413342326134628313663725371904088680960363117730561862059913093210117427017400348879900346682474901670480482888213544509489053590551849210436573321185275849981912297424878757045098131763435889107703151242137043563184565864700174832794450739863781031686383330854047179461454749251563135315000205879121825577091329830603714579483854103155072985693135480191045939171535830829311435810762041266125118172485377328098402761511841614799677762341809060251440191518213060037558387098150501502873792001802724641741947005247289719779190389242290220864946141588428972853501016414903452468524359126548165897467412877630586725130948804030542361387285145383240899858686905105632442387235139545995017079677390447018247747037385382679590229778084729688300653901885861017825514052296800805991189602158233684064171767332391421965345129063289677287020355723484730273879631640343668540961488214387373429811913065615029112723563383472770949687129466413739679484694393692365042518520561572048267587147190692388694589039683607072931618849141902126223750303310565416697780373719920994210816544881937510732871453809374121721423590801977815409330767277773462203809668964890260894184564296441425666781433735179712605598468258573925566857793602769910614118571154625017544912209070840442491693841380268964245628299840500933960444530450717365764687745801818176895711030084264557081040737556235434907743255555811277942147229494318785853269569060818438241146596199132592026669124045587236046649250112621347140478002211663723994054419160402785430552601487113103644947064625195565268294700968560382627783711507267248613648346139886839883684888737051153995000531819760205671880254507412875117862197575253359752409122955850970739564412325165496591797418335090124862950292805757689505887382426969028376185737168190434175324381712332503929438250736087429165438523995124217120183670904449530908997367511549728629824116871036717611088584793248956205218452213931575951004366283015212947075154378008342058031148013701447472698716309563542934238714764504357055977622730450846875904040001902505544729620314341928653965485393105320962760615582181326387161256687505781094635867423093947973025466784951424509140406722189319716203791630991503200081311640370179129319488888291200166250529566165898560650433203096979415690692796541183009279106867477174396751187814064233502393965547884710610437268355846288275192400108046215721176333063363524945025789824510449307439651091869978625377935606468267443724151425356480507300292582141845141074851618956576910426084327822958890303836816354144724194440235531849861919783970848947596357410686433860521386065998278558629598423249260030866076373522011084601069807046972582492341266061275404383478976283201968383357133604036469494656663787288950870320575243000555473159450723523445732008374727463555802547996842951876354014090660885612354418901885322741953268868675784475989363208204879835781224011234951393961504690258617637259878234726936805735824964528552174023951627874938969985997725840289740854881378025900613683125866911789671488292564474055642899771631926393799949979671887455359819764132775887059664141283766374614061221425847787128326284553752277277991049502358086138979303829283859224741136654837577606098531892629128106268641366365511533082818864313224183629910686776015754676476005366733601483788900001326838219332660041680330821691744186623051055635486257419120613392456762508331079110489126225806825742971909076826550189446289498207658794894922175363829852224074421122801955364448635014713481364629500924350186163513629019858687583447112016017222908774854191216708491540114237095553463370004090089369528833916217836910992467900641837971277777965407777390403596332926925210208158656609136902178004581983409241100694570973475624398791396380113645207023664374899892399785585339897046990662692443646801716543237703822728058219733231015091644911012588296603193911152313940451976259105010541049909901771595905987069525038159531610259887666324612539132975675223387373832025137353704720065075929964616079269382864687310887566543443567778613459991871544626851176087195274882446339871721103476333632222380609758994694988964477175161627590651319161187183739202725938570443109266903212512870412275914266869562843529078851531929983798989450231853772048010873682377003061016714125013016346394101510992777749187115083643641427395295236046189735330219711308697434157391015209722042707403070187560618538294675808073993554711728105141711695089062938142234254129537562134103136881034021944767856920217238307315355269857501977526844326952570091570092110612613576785603275743439478965143800466614620368811557542638765000780507605133986513637303690917189173951248096389989871475515275816646813171649105424738893604214555158964692625786696071856025161277802787860427180392678617760215327278297939731743732325519143460492479938839402368686077274067192148021618036516773558654694663854706157219302162193157532858703190567877816475729140142910601178677198691324285792055621754208924625834144064023343368643351135501971057280527196149155899285228573461178500988533043272008199378801941512962850347984168107904810458523478845569403901008168186811243223872848229524336389947135642135242030744601849747904672436012478746242588578724923338460216865821897106833559228289802416401345254902171257355957771486151933324954444697327309029612028131919539138543208814281923836071610558326257243877620496123981634826971653016813358462661036473425817517068201537829657543913932363602192082313982836724878030925645585395296281078262748701118230621783232434970989299036946173287174703731714286646138394572139817494859885755625724398455913630224357079780136032416964626154337443055736197595033357278675393565211810393644113287733626850829753786554884082620431669557656711359012911086579474853957834523604749379494344098866566737959808313342163568082140800543901754741939475700116116730349445927000339832270390428455031732728636457627838423860181320716080664217964635746908508223136526876759562232696566988767170009357860888961132406938164504360878399135244395684091700631559749145153264159208199624573394224936290122495215515049608540342742310295852047766201424808908765877982146968117031802895215503707806510515108617570117552570195849115572301727846494430982852300589722588377488054641246996173721206896642778376274900965402809701229288814725672459925709232355432218193095489755628463549372236124954469556463873936643097555043230385279673008953785738531993941157474456432869918622697634830590989975313321812666661821881668795039220813910922113208187649067441567644371611500281018118919036638911728943513481909886209695041327270725202237805206922642424318139002230056661057533110279584601557970263408348901874714874724654803782568928593177196182350288253077986979233769370736763178843439214739440945910907185945861010150591142774624394476944573753412839299000940643819207663486735157961508830245145288579921439066351842240247967200835059067241805064271052405651890579726841934150275517571747322678116162243219227305700066997939949311283555106205030145021237231638095654424028985866621715799682933954732581525205595438352196081809467196078959860513204403164806576448036914845101194595489517149037806255663633672973871877103134834723896145905464845040730559054009968790561747775921122346741394603952217582405177126249725137199362964970804965689295560521478779677422013798213732619438449402666312418732229325495854000704737026755977938128798638968785696982776420738661929514738856303796755998535240096272399303524363129917620797253868461550377030325993611411321404469916250068104226318253252459156702169298211820707850881122081798116083665007338735806310914149653498164713091847767439654892235680412579386424618276462763607859108299820461424983545502374903131680867678235550180156725310630593017367161451224690681911121922886645454816166522852201670359990913307653556138103820851805532901354177839786168754186240157243518316284671208606882595724277638927965987407290751815827720308865133983168476989079312203687795991872734300311280697346998074928427189080317828370930372514618489578207255391819000159314543405071974923170785908860827491295771919211797714086309245894887448184431968101354014775944975623131385393137427753751286152706917505804877732915795995721324192231745990125080685665158165396503055729132693167148084546701698269928574042426430778441247920646714490404855681406401449020837868070649064748511638489715520564869790613394830934723564318752725860174714423577242497165071997981919878859178229024133890345433846450480804328412226508464156805143534583618124987563492876228845967149559638216568022107070256610988402181303991685318480920989936923128892074474863038783840055190342604035490463423853379634464298248061708386547152010698769278630534802647967263023557486637169746609852636903577036726664673371062878779512681058779210102955778000170263387408878488876948219492800373136405678054040012853644815644673480349075812879269077496464663704837971433084310476530465878096251121659665201240169797791229553847982688559951903497825734036662244984418660276262682499620215461072781107281658116821211138009756833704075048269748613004742309431133378703572998253040704622165459794690601908232304076097354683491842277303969501714658155891167926039911237440323168021041733923983231448362304225539732223710793110358040836176516942516828811117681200112604240968413850046050212601193937941508671335559730683117532107108280886800457616442900726080493333092142933745052317573298329507577543906990531267809476132855858814935088647976733663029846193826489658680128497855898619659898088543788911059633108231388004108367513261102632490861025912538734183287250858078487462912936999272973431320647806635486010840437808865560179937197732967040576904013178708900044291431571397430737404172307062529784937402374004780458101573969698676929824508843525279830146464260394199760353400392152989354559675559036439459857601404607837440830704354238648908599552080160078158532027026364205434268243025758205297553314329056230904777606901768100631727260922906439505237870253057739621165576997543531932063824133036415330312551070915583005990638579387119720860782158471315305913160597500196982618777424288936727894808720253723745977777050719189099767158657042163709580879534173506175463840155816186170407056429234328971285232616153700407992550007186092212540923424753295110965249473833087140692920137736558171217783422638850907130978324035361784579712616294000738597164355218668951653297901642033054184236831374831231649801316353613285385131187469276354723223728625195184078611452833277941417765453878277692785859076170523573967794964077219201357606919588938705795051563962287437282603212447400852412951610449889128004834924745135893337615814667188288852352425689556268313704792473731522960035752340386104162555726687630724835389462740715538260493048827272618841453387033041456695586784818872112948331147285254710718296643277478967205258856294569459887153056381141358329533674558596641487679918090817656325916218425453974899945810222217444739076301221465640424863958045423062021428266935024695431123929666892999920418574108441377212586763891800869811905498178708247523049035346926847751405993677799153452893218114659353314757103932564861478501903706481007201343757970495928902991650721048555396960489117279010588276719785512756755238872798782477954316089486234733140037583652554383664177810672285276706400612142161283465181885349955860710717382166984908578592635961783940143023734073189084492131264799101616861179541720153575473915929359950532711907607580477863001660611643809847353906621629088463177486176318030425244749533686924450746755896945075257039798987880198319223017142658549894804800356106539784290331324235389207305524537110360313388330993369582164318372905365400854495679749952149073068037826140449729983829452802524327407283336361438455497354459793024723800547103373600372690284248602705931864742842204790759808500541223662790121075330287002528553712940649757892058742266384608411037225656811480144033561085126092606676744481381178471032952199801155763023758598162792601879126739762470545375310909799441935578150694871521236135828212973779710623053999425838896244175242236167890816654248977964223018843571425575226224610164772144649874309921191202786950886130398152844189236648751718258372787226411812859478288898490838382952604076878433907862225850520179661474558153645792733942180712869702679560288563842750902413437473151623953322354608180302097595639870582885431971198364775146621219350606683966472545745950157567635200294863792364997287820852464240282985949526080629772349541556732851302530702649574093201294186810816386787289270567790895764445569153133279173404850532561047757580419627025645155915581360289040183022630411507787360807430224479595351849270810340648816404860918896573668518402206775451638801045650022305206046659832489152097171453444431694982158654619904422452340991390169852496102424793113201931704458547635802463859438624943054567748203298260209755853316724068433143836725551949785913028667931872652537622578900217695589124304031071131570481012642040414090452248231395829387960201643979234774626808025560163743628912634197099153521583264745794556229159078215021141694779391535094102934893389406927994958534887959117383076996840182045424532941071656150907367471714272518381719493072544332997240007528691573403225523655889572363447759295272097440117320607831787629968215897951028833866728077463312803884288086820840482393489551576005715282703591377966209534061146928284119444052358969543225473095101271686042062541939978291041714139316438240884497121196188527993368621268670330571156402062775169630970224075511747869581231632680983351799629803843657329958812692949831484365637404796228799430683265371375371603126677660304741162517217947436693810383922088480573023515122811054743160866287365281347391886249797525769149223096729120690278083450998765352950066702046889476249408713639200907917523010761318818833127171065749832424155437038503990771106063842287978965348829229322136718862369462842646133102471856206455679653225148543640564899566536818467124875356047540786316050013342685980280748145670485455348735832269272022339744245733616848769481256813142301629624745889593919391967086273924938210590792737230937448381729030885898706371959289198293084217574233898866238515127880287300695594573547633659369749680187147112653895535154865169067344615449149338814163110712528236286321988130355298044937632531860721340685671062440807575401635737260987117057497589015232514240955728619041875426188046001060792914713416366059259017405241555174196053998869041488411708223792125253030026706203143620907439474102946513857702610072817054729283700939332896437734355346379316493607594117978348897455139233086874578545460189171316523675774533382941532066835407356444730298214529658414999830972845864015912916430345191885264365259133583737424221691466212999915525749961561661437904909003602500994459322798759244864657640229356637068241274932294225572698039461280367761304450349980770085720659475460591183905848661450240198585743144437816023809746566340737591655918874731744053286219109781573732090124132132771234263512288242594826159125925143580974203009897797854531259119958750393481554848415400927006567206445489548777470410667164490942949729164744315291596538070879719543197317763194623136824038379207132446237510069952340679040822884933393095097116634423148920628889008659647830949367330632532727391738796953505258292602176529550523918475998826370681657284411732834332936365002499039084628370545702936545496940785409460438572339671237036570380898850623651469625623410122066496240229106975166754613313047929530261833214891293477355726086419848145692771364721103612903038059077746684645058411306966656539859451237500476283872242395293886794699789106681607813036475751052986972172901614165772594972258713985663944645663281350164454563578507570673429516920220953288612914467194914067375868052937335741772827187086224586127305222107806765206790300921011966769144583375331971771833663923308643423025555619217848711613438308123082856987965845761415981310766037514423580378085427809744691943934852364873791273530347692628111617507079071914738668109387965261808792456908040785924814277383449635268974433600799817605921046260936414105846535924404396731832592129425738595941019360082122311357076923617021827105746394481906040944752428364134429466557814165001403790883062711476079534743601197172434607061284713956990670952480844119163606120060724401328991537514076906096437985251420178758020753170354771978409383597346473654693794590555570704172666214633953802835834900379845085579994187964255473868072148473036784064313992729162862582924156879145606315873305835511522940843180469484206158402795973462221050205134786559740528164862075316097439451872243652026369921911971833869393447101987218142349152895145425568917514826276846302615046179313152817181527887269702339407574112672765855457210627395618803551470864463120708908494107195830425029434514263306151314635379352827037797093020779462057451540253980596413790391462618595823783295153907457117692090684484169017542795342958184428642765325689018115757085371133804316346978219366581780694952892162935829924078801819326051756713764421580592283764969306256007515307117140984874151510618820893919785175188624829370620368992915278945017494776238002630205221658071691697679375104437630025940037242498838703087039403308982151695706669077437081562948989364909017560977691051603230687492972002199513735720259148115143226001706363068797401631337653881294317665554165690620584145489749979175851895804171606063568004472017254065495312127134522825415571978916719338397729830477422816904375306006436746530779528924967933220865477862402932413922414081262509656199636134406891812606250789216817849983211777274845850914201027925010457040701274991006922691769085478855115331138401050297810838573907428633089342123953798989471285145362605907489122996257730262217406987381541542643437155901473522534502203962662770038169480848081861980129942201461751735706474060991875134893877556472142625261308307446091508206222268265250281922835724328201853562726909842119295647393217460790272270550503296305512084948872238779658404281975346129704053958798274316816306950135198628006670274511242170140605306955321089472110545215057036589224115139475031428889471412582053628227410680788336441520087329513077238110132171409115872526226197222413789910316155104841038071605089144016930210983028865882921015209587125242830487627293111807705680096089693259488076390524986252119650515159045097717099048783201021351011043199481576852872499360713915070666161495885060543936078959104845311289754902309542914988892079021142465589721916148380474081663105151719089657467071144645544005862819100667637237602896493907721442654160398449581878283237443520301123182755902232566008987010594648997865948764143160062350356549459049061759735017234912123619580414557722333701379312320872690615864208766148015501233670765818916751511410839109804911795078591603654272145282315619021538101357428113258475074159828511678897529349160289251815143557490593025915457148526602862479343478487166266793524754664329613542420190201967276875473987527089273412419523036193536376523628932755337093218654052831957543889869537827380354164564854536286206257835575835466403130015122035367089965730877386322557114888277692517623752818232742757390464262629152708577974006662880736464648409908807798637450561828937907570410284019224675744706019330943619984864613084826765299197849652543301716035663976990804843494532439699113838822393897584894827343217973287371130351205180432093937671978502716102724897646546570110130149935983853028812048850329759108978713378132486716276825348703302153336421613821774317090964523214696749583510979673014109351416026591315596867114649285090745639630429333014112315017968637608585061075548751726927101175719521130860864066671950626815612210793867754059813730055326746116127081360019189874558939019520977356178987562323648997228298165541015311659977809721515929008996316559077523474615882118261585399651740083563762812890737284343755656494529383826951795758802641263113013792022535346751074977528231005037341739046643605799675085366396221959046661059971846257647625189449172873819568373025083743183666602714682969846738455817717213541779131877927632231805797941517603243050994738014076367129926497699510726962625371760862357775170027128832641159663098448297475249859207293064004866974484179823968237820793737217834739680438905589308065350631863304376313140259117167522876599708352882828668400537713233681305354357999121858552226531243803966326571590787475682326969195013431444011850721395737495006927943065177452875858455090015107583110702552616310579785963600841495158339552894992982560763962227899488166622316588614528095425205530531679416213097314800315856510493219060970389995911128773611989550771577784823159253999841228060346316933896374065819864017978926017684251917139613116398995922211373840449980873356614775916736101216106679740929231353555643056599885824770479051253714380547585478291730642282033705057758908380737345434849832417076797484876476801733332027463992218522142639413395721016511814205424114276780515598581072094049388491560423010547655952809126038654353686416912778382978660424515836121238415928629775472454228630272567719148053734606882417228246337693577060820061727294906625876150451254652443890731491524889820655148126626176477242565708676556509737277775463871233942936079932161113664554537586287550793294136797291910964676044681974707864816197141703181364927321119960034110073260929551955998905649805751184346663370838956360688016776826557364466295240292590310275016576176625871303290262899674302801978810246467545659643092264426989372255547737376199391704147862394007222218344894757183768569800449837026347905156396291849935691577251402506583402101662171885357069546865642994988398624072346899959325041187143982518022191835953901698260962730275456071340295712361457689904782931241243393245481577720392094445225370407658228071127684807211997521634108377998139262395506005576887135593203507343184119695166019582714887154479099416897671519299586310040910308698821200840724102148978625668216506661460676722657109792616458785153192385621444062076602240948111774351962928095679854138290535105112367662011323343154328802551789978122273222755589788553273069865913553855675060505056877836990901159274022433166624823789677316438790173984137019467262960515352048003750931012189640377232894560185839764417211009451550079303325147704379657113443201546985529201045568675482968976575397151395683475137941325092257532429665164446655515891693979098174654619277229622526813590176364613020893414723381032795690717146985042891758114457620264137146408353390172740130924285840500201318078042332030454804918876438459841986415746394585354483024111050362121323360503666564150168136838406239667997107128830535838512142282777948559342429611590274438705098498202472767824368764826691344190441562263006896886398687701897751118853307005014327978746176091197046817371077143960300486052856999825980677614141829938957088386667265471156153088859982860100361539322866871710072643366685204496220663867549812667491540586478797990837045505149394294420107313859429194499923224579758920257644261796429200711750362333532342229988650501250525942432086854199444212221306108494928232055986215632932148122530713535501171547489295920076372149953349716803699175119365421074625304586253715952856176984169973861174005746059972479092204365671535919539365461257679217566194178850294481305273333902009643676356299257375429897647987343782781041884494289287635835138886148096279266371286712947880858155666211388353011687340683279676673447442141079395095444329571591476809060351393497440002207788567539757234419137007351738347622357540375713818471550041399971932761705906094532731049332555522383781096840394103019421862389108791078774735668758976938785992248666511336232807770786894500599342857727176160301882531406196935234906468508819345824928578241900192979481516662800322924680598655512645456626567294291467231988423288383168612958431937631602816112069120742497602610000581526319795434300829189187256169001801334974821083521007072040890225777370430735186121669367022295990909260686163321878635170446677681460497879298143505135458318783473254021927930267258504783943304756422443396520082899733957461730121562057179270310878769764125562801625771572903896152142289291827260507025926710840196086816361554703822908028549246447031531857848567507350845382107647662504640521165991228746830946832828976736368912514819004548215193549132969124571091991299790386104980071945467814917105482394962254773083248475999688156438802873094920798322043232519915909731268902202412963249789066368314980096585552657682685893574707440093717888771687040990833052360446793863683021200440093350748399443614573257178465568555577486769362616924476648370251767098837171685539246892588692804399567311749222314138706630242278318004091871748748841356349186168340443891538362784109299166468208467822120333279392929183033847974234654822360078411735381839372249876118447131643428883983606243170775617304580133605311275239955150358943724237960110956713485746962210274969699266544529387624618978059918410198226030739748383395475155646608954746445213072008364625167550757701765427754712928160654633278768884892564185984791148969440798295528222517273345526277417328959888638097294883658347555729085952128212234284458535546826890135824002116471086285684029270460267400531743713874492930064143042959479141802622393604713311081786170584556966992988811259720149758265688901367503404605714590616681543456997999472768355885976550256781067405166514593764896708524872549525976625535731078058612346847911004659851805154204851912947511667807791754013256194208423156374171958056623059056699575048637580219163800429965039970658482595823109923221444269023886279323380844947832251309337360825720584336422433658852122384665086378790197090551564636417696484025863998407983980017513045286992511704775330239585741479802069570710808322595178520981397062558998423947898109061398512684316642725285734124872693107781068499343367017365095263387385661615388375508068049020767086772518581343745730514717922493733448669281487834589326402499884485108769857214967817814455834821302946022902949027910392116357699910456488835818602500545773932721599726805574596941077588887364670834892166461376184066582377990538484908696476979221664755790701136709663467007522711514215177573218295690072676940415396215874168320447300545299890810530689085127694985110119271446029830206587088528045602912886385428689258418085304001681785879572905669510064061952198399204263280436100600806029878392951771358008150878298828499983255751084428803888149063572364699662748527471608322300460532444511834129799586252752842644865533119894339437435449756383672524126804124670835139072788811631951700121328921561562169543243003017758611583257440606548807988104733067953200419650481790478045856667960491466838573102675401639077744770012594093048018843974976491744559142567794408163884204957641913628623135253902852072731819807232333968108999468183202938825887400471557038551954291343937170393217988933401759796776668400694175347080830394214839667121881169892750803548857132381092620470687320515307815197360597176195102503947020317000306127932265091679905693915240125200408298463069744908638552790305030613854741254792475200818974736336972205173256762493783965830129115938577381347339348928882267676753998059636393970921092355908952401242671562658485254679639731768444211306409219705816984252092428622160344070162284408981699159019725513219168704281155172217629364870438119449535799740824551726110026576268798286132485769482528140846208600146944491138740705196245179277873509991495385169474626487148071683871306263215106869559118946033011473566032944832662564348802380637735567100527011443037768949534308759710965518531694089488401814790569426521735355469695958636548273064172182965010731956165078303797382886485501899878318478803532049627145749372843811600137838421614744524000428764129710942698745420248617835520704456341443656697666560271974350063657869802636190991544383503774911800747053155652928823126618381393211495952937578349410548361807862725559726122622210689499322141431777580101247329929259466526883221132742698225580795492414247644568545111965080574314245849235776932960209174205106861265477953548488343987601573906308191876931858781266941782222020397520708331099332789515295030945892597744811085630690831255731094699897470781202744060208532053040008510931413450333637083285080135474205093284477721290095141393163910252932077779483134810838637827704468192172094759603953722310170326087635364573167634567204864202433604546322293645413469853764005658162939862877453628424955913935927877094789740335028761369366476049813287561102394185972814356209035479074990441867783307209600991847533804051865339608701208126429560759429598206763875617893244564877743500365258721424589857844796244570862429293578430355453960137819129770356598963326101016353657919783003277239023447077645122203116858742910996257261942734190574967014381625085194131312992199675556659711842496931325141879046504597376352389965137729379874023876626475312676683291473533627781444363800774572892447222914675901609964970866531286811584673983951976633748090365181702142772071557912746214935735846122862754246794369641318556560738102707189559627612195874002950649571086795098503971701170867957855023762514877765880291175501971597248790062743758439174659013188552105678781519399428009478837432543675955667992525975484689602696087259514261329719203238426406913705045700743671603033482917011039935108929455436889468377271117863595772508840635901409427875092617527834599328316783100483962660044049544139240758303867564170577183356107337506022932754649287619521341254883195086458165187544296336786641769571774226989266893738521892954161513699754830009799160098988808836350603109242300038217745000216633612778362935539839972474191731742038433088529656727622651966376373228973535354800910454310135502134968132514654769666438691657597926458137605846514331309593835695941898183751829468782888157688683645152463313590987899525924914061451488027638292217365433780171956796761476704473394767248618772500785589936517763609356918245454702268646251612948500075253424332126756502496872103184576649566972108592375788382411958923069864998139622495484187440412410582632640623594122587066717295360587553994145116472384996235750556427651335784552846581224976154749816329769581807270870624853549177843660209603781785741357768753441328374275935589796609141358305342523149439940465120198799679232989813737635517380904389658485600887839217134972712741629859889592122419130911444642309332183264049465591694886061443065749449579208121124141671402025217655796550715454612288532972173504563812871557005962830123484762430732219536939921280653769096077177421688057298463089249791653833942781997918668693592827598706695002000178434209552520994230224834861684209188599915275909346365438846895754604250251278658216533778322640064468863865481822450972401886293548327049171989514997388046579812966585578526379038308153429564232113110928704323723166157354255897950139262985225702636562867420778620430171186783545352331529770049078360905524558627653243201414537184739933585228585721324426080450527622022416532659440837877227354893841027874123434959980457634347708424505652902000186230974878389840329365366058121226413209086728282411383556275819663504946877810659981362525012144705988454170285105925980840491600297625217390473490118763741414414175211248864224560569896927892471909692233102049041823629723175832741438075579716443752151693490052740299067588623844509410048049087474943712877750572775403855513712463982470472542368553640226052831700568129032211534238035261506508073807871467059486806314817881118456470715871760565974894795311873401983881902706735062266408278208726503533366680700924230864685622615593165645974524046792421945397451052168020312655820045190735569341850718180431832548233294070638582194257800541337213259352095183542218305165972951563311865678913891132028493236161058201583600888103038341931256219043292251373113434879969748697709240360180972846716872694198140630995590580009199098246131936977220408700243734144320241508979584620726497420204297857659149247962622533917340992401458298269381745428851636122174280899902506251588804522801633771897169847240927445867928348480820870740722644501341894811744118331208249097789908388657285338137109862309529809038882769015502644060311642678365598055482684582321312922167573063222335619473801156864942978952132544005391755856680979100673637331167811441745251540879948580822777026221781831220975737565789161611465472919079929491060508044446537683175650731611960631282602934154921047168134519559931009408646498009838463942568119439228260147612351846715719889748796632365684712173207964009625180941036720102121184790235313143151550885076333199507518983405856729887724163721413695807777097064881609175939693263668445837470684141885866832255069915357154975991057321090471166511146915668999907720467000864019367465763503816302883913868301701304199398278701914900112730099322355404714200059390950467354403475077512077317734490960609898485360479534838625466432064575740012528693270599333691578529252324518045176664578938970851509888510359862120089741907092720483539044439528347271721259166292125701333135790365022861565874706977346427879366151060803636160026249429349966303397386148136853992117852053608719680860594613466116859636887531009579654906120620569634750721533816739292671210047234358479269469299205932286842211771287229157167089418607519462449604741775926682473542437264100519317171458745532770019022947267874760233853513643074673990927238275991515432038872743845680798740026130946458929919019237131919284812831779310402165383968311116315570959231375226130291575796943630358856398974513077494352519842309961416943535737091159137956079124930255788806038060859760210997255849445416166010085102589118865804595124280257753166429588939903510848917669840541704432606933471352844231274032731001000018928607893616159915908153691215931541357627661224483607761538480740640710404414935645139641475751382035880588768267005092796906818704140804203867467851881757713879449247711708526778697301298853263341456579843079388260418406882019278598786127967369318460110594342277153553636829119307166358583266649123736436997199205754409595086033767405452327452323673426361140827065060559325498083501086999979906994728909697002499931831005322051935744575891297386664501355252899724627561383437514589481270520954144676225376203016306371305121080238864192193531379790111857594304154644822211940613160110187679087334055208150261334498272637520110785020013680121008065774312831347731494386475222065212920310318055015125695842822980857841881175006584552930138617210434738636719587257810289502671498428515465403736654634000566997985678947689829318798391973430493519141244570466642481437117317550109707126095777024138972277201424866269089433589472817448142729265201416477873375621752336450064966824363704331655180935980144142113792948697146705368194712622122479637072982332329239698951513191687621463502803077524403417512374740681647678839393823471700672875965240119871834152152599513843727821332309025535482734633179767721718930899061824146060443831531221836714421665071624449546664181300441776787549557725849577692669835106295998751624053437682556910056526698749431083546882689194799436826420054170055221750830752846800257092733638006990197798392369065071103269943987272149239409084434323330557040619857327002626088896246435316524723663191868556851533605603955821150074121550785725642962291377456343561854245147442667069601642731580117828953960638438230622077567034339868332212694177743668082310404845171915906144518963580478623558957277088641707385166676527935353961022389341367616926139321766565108187033543497106859664637656680402932549641842797756355669314158725470806684208763226114927018616636315964640575035564917145798732221119522228084604480594343754560935526819765545432131806882923111186512342888164243073883312476420392971850902750993171491743140818631562832561600341901084086452457421952262786956873166570893799641388504005434377785499148409339062232894987972042459287340558131133400756971030789041769974193260545499704785774555418044269232343413367431537574486642221680145355722577727206122324458888601818810425551584827368871258661933944049300632635297156822600240228698173900043104397776834865574054868833625268881296639851105560338303601987442541188634961645318410881999800596037295169537792988458705579147516512291960324354055914760987600025820787580376990408023215827738967562110706760642325676058188748121985161078959765151167694732665627358237984982759651014642024468665715723053229227144628024902084357717558952625967607475752364065077699357275335932055860639454575833127492662940868553694470913696115750199489960771796718051949047336462811039971217366499428791750543879203205985792639787117456812232683766441064644949096406700103288058906443980046343679425055828516429272532801482876332681234126172842012313629449698341458464688332291591814211933603195626813167618671560565138987347819777308257446757753071210132010334880292367001785852453967111028942843521002783530029492922999105775837987161059954437884368397305833621688462297884543901729654444112844918709919242463781533949769638307200192400346962059991871898475123020196581313804507724221601760247156799719690419491444181856090445091686267093037145039772012694085961505585372166914264370602223537100934471094692283385809188417865105553629243254009463260697131878621930393049317317472923238192160185099808479121822938131843495585707592271821076149381617378359122747264498892577377872246928515094851655956245257033450987070987266581833803009121047069582089022135633562851990594052286930481030994601817230822425630255785183944824942292654320488521427420316137121801280319739952114289662092264627756244959611714972913173086544060929978993477187524594040122498095388931804181018541887341524450209968535580827664231311128686581650857038950844239105176361984505745613931818456761176912004675827405525015882264855430088527153368690763819206476843126504656812868984968051869766240321993194034454154101426153025979699464883021431869575046914133646754512811650650575946284953549867787258536647816732485486860189080320530148110432329208618014996091854062485032419923419990424662144752404707341285696228892203273623854439967784532079658071384540624992630474791796041016477993331433910570639591202082540564457482821505689049039350320502257156181913155444311590854462078517453501645185773635162968262704821834384205536007883504582889685509107674897694483117678284281122667502224741489780683967108342014769252228710346233817216786417169534174157158055415058886406401665967005039843229599750032207056370595233908906748874430835542345478963449515553639420184519944668464042350213025538913275582386833069507152975091716928848622531132363001793184616344344406270662156749731955502763407336504648819316679427125394916987521576405837313884083404824189398541277569406340413209757838514989911777898915700617236336407789794448231688095288738420081958044453823147961804141176936606672199592202502723549281793221076693643545997607234974126840664644979212652917480650541218694932165060290910197439981848474945290916854190625407112106694955755346016054479461251392921658279503122990809510312272786271902075991490627269203890110037746255835766667430527134990929718375056975300326872761449964535327793125089698287090259246674007946715301259747243670158153847220087422975192473387809724226807334259158596813848426677929960351595604559380632614495682681804397348600504932645521474305690558837011081096833596964880855098026959088173997588826399542090875697589325121872650532945481335232028556054280609143283214595540486052657732515677320280508020299758977682492926626789190809721342202283029535458618078364054060837647532764282016519440678045005690562569975658345986404919642928566077191837597906956342477710681487224938033399164843952580301315013360464462686706078369546029632793521717586415391734948505212575337966442595905601827081831126034277330682879759645589325836648231801383629000951233691310583084581593907103293252594671853393774113725095485316888848372953612089674535673388936090024593802675470839534881386801751958694760163037978686663131132148206054570954329873006903992590438039210567028365850951775582427977473687158845229867400000566443141896266255260076349010972005429547561275069001869640493466165844493199800901969100164878912727222712157828013184663183337485660044574888716856240128764367213808812827226911641001368776150154587193545014338568503356163362251676760945951343217249252403172684155861285825563690009934125768890764613179227513988290382407035396581178828812615475982207614329880644319331280983383325811256970649677408216396478687183625914985809156678817809863651735528823677333144031713525779268448043554420172970261366247045211817324128011439841435286960859630864820474897555656204834431035562432821588136605196480807516758281968113790811279621602596528098000646512298362895748800114717127070272355803439804764765246010517589121038684988493669495663902134867540317134889817837362244570388532981156422268963580182846977891109656024963824283365532713025586055832633763277214421729891061064688092954360127926487728954685365565452243765557670163719554986032702418911992326159894490268669436929388745735270527672813381096181657487564467846373404011248304689692261933608742453167317645531091499976658949451703897394706013951824293286769403594031175944520251208349134657269376507436421577771944763527676586315296215305795351346575891135090129368816256219989844050799391267773158016104017079221222285476852317691672615689200705406877856701824742583838682511854353512557420465496705153196086915382206795030156049204850752857532847776654923788294208706746564339989979052950246129367032748222876212401349539678399698671970784261492336442370541370697627900422770362546518426584926501587520153066421521882623664794932912939535392173017113301415176204453688229687801139053838332987383671976297393360110555153338038145812414282790626196206014250319155162666929954249739960260657249136266339804569980773902385798976541140911810971581281896644423045408101854586279352145880670915152082379563636461419319845386058899697417609917492949387129115671389201509771512074901591523473402431262020226790882352423065760733056973324865999424337258740403271367372655277923400736191837184138378027466599561204326620449155480886207628681571919979548691229850343841781415153878640010167180563003965693594196424825821218004575170090536106229688911244289739921935023338407979840070078343708218333843519288047619878426480637298721325319826943982124282257612130915942512921926444567425927555310785237929226254203946150014829974626580857365673065632901074048064927704846948949623593323559274114284202381120687005861345521005411176496342415282228226346785091202502613798603023372800278096933011197955628480773443992915784918574492946020030615378816019820021737431746009234421300515668216512854479821440137864529384308493341627107534185047896375256791928973199257328781644057997062469030982555774807346510887438061180337339488369853695338571944894156175249023367336746003116485820357714084670881043430411316832334532634464764746358491984821703812463992758627128736636660407819278332432849498975475859213250761038743915029795834238428796169814179442883709677550709874482240792045373067000625188647671625665786405911559614555668221016256236666742268130826161558874788772350455403163396536150147584913764088212096046869257714081003901126380743157852840748676903613105097309023697679493814966103686344485693006464688840353769867915558533148147354374229925322489951273921654869946368525348968280418977537205575018726025696843146731193269354295737639216205203650081094873637525539879613833262515637412595379596141972834147791777207902660149380367191447257083236431000109462736940916364478782235982470655620253855637496324384082418333832849288383105804744530478411136985607765520556535324920112795541391418011320790885749964885063182965438281286345951941868578889603773887521472103690325921087048912676340214030168836094629230934608337050281575179053940444446221189288798136505686385976779711827099335810719330626801365610614729404656791670146873784417725871184262038134683744083689031421746746323268274633349059061885301746078666009593577758143798833581610249201688629290239664370445020319785438463057864973121773465452011513623181272940023960055738167958126594985612429965722756015706876719248216918121874060641900328155272150175536423557976387149504945093310309061398963139411094125087743220305590640133746356827471969989446745455671300704038091312970905232110152909519050631716127655548882681526768773844230862189213006772493387536899730808910689321116779728480124927098541132117509411530075943441257301210349617982288173888011507028912145682517735709101703164867413166870049997592406742105457010362514091977219248944138323659397966165221829738241446830079370407784625016261434437913210316547548765396433965346955411262498956830619718320996386814413520451803345201904462662242760360536504623675861513484046346639492742597180847068243630664318871505956972139792210338239387788053080596563477219471085027236915215802898670320118045644696173852761165346073009567132597802955881579022077332907928656325356308722664400372756691950006278690387902307531879699393424736470594707790163761929115749839123769243375027294622942540838325586588945286134670583745997164876732225754424188685669641232746476788443492093241151172016138860037989525948088639204853238708413795400073747061509891470600284297122441676763181942612303356218065678574346474254137630066826925705363854706247409143546807361185716807328121954579849014256261579766918322900283219506155999942135578608620769922255510723261427811603608353215700635253282871107113102278959057889596594587065704301369067016217960029792794863359563317356033448820731894349006900136418396367981560914529325657738080280520068766619280535111892976516286502739835711762006591437320966608645746786478088975736050380916517262742396572145142529805922000931904957383054426144846772969131689428956218452594783873081272288489095325480896675400402233552349030513389512884982639520951896958260893793886157233738501577034986105965769336600145285607398575785736140493390419483801928772992919500122478240637590257672735970745271184089278499073378503441664859530210357277515629847983876890196262284724108566643323781606566778333277823389327976040796839311579537850468880925556374234470638730252817389486183934829205686442182370514013186758675194046202429627045199646080629264292163181978915327570966613722888233282836341784224009725450524714891769827260921634173388201764640319150552402286267712585931778307205201300490688574413580902686104742169715944237082432915081918308428788752124241933961132983153374260739643919238756002327986438522627177678389822850382808385887662379080630485924398279143409404798730583513616593226415406213247354715187359697651374566729731119357563020136487061252927239974315834788060041324216653113027562210139905393406462419873762879019353303727739309893712475124969095506529080829126338062464143765014785304085067068183940946866434195507765316504913782140780669344756503034197839510211615198204995059846756974905191073956097148986280304179300835914269378922329068158309131573781748469907888471707060918309849781406038190163144875063261865421133942194286675045635298629129657605085492687593233519267134782131435345044699343136250072471640071140090190939036595720534553628376606211586368242962290606262721033501330282382347676802344744136690807781445472190839088301771631024544720225477508694231832646239205429647697270761063102496087166717113098398528431775066811135994581851186657334776441055133635811504012522298725374062628780862369229979795595063437914284069972329766250165563004087351918787054160611063522926547878564794840366701281639139021222282335599126424320672381388066773489419822370860987905646703921155976040899989350868658987952790431560668273132593938884308830694472867667743361670559734697072502591972683079210243809700191970547777870624201376331329852239826145981757209683899268784112738240980076676310571974080584593158093092627261974600321698214789991609161569070027773098272980698663460411407985950845629891003198169221791770109353480584770588920134400116534877440860772391584248998936030073825984735201254923233215219711874559975087499287345987702282101092775524334871916101727521402350366929561963406541658007832499273926542013237220645125052122426641547454686798094478485344534858169368369565202632597854478449768842269647161031547266258701778028962141011968131901834189432593058007610806211032632547228141490142386499704596841575962807243574938178391960060470261781763174038935089782651960525924145637369726947038552178567188809936836873248753040355227813111151775625031967888041212633539397089660034647744635721231097764737619331917168785401408441674730487444535540826132732429689215679799226622354452645326125924802908971795264462538643425639108164880624863066299090151563489906935863179485908564566946059302334193974382364487573120070898759025594772987388787515046389126545323554412308115408627007379870557533704171264080837307095988059205201376990354684455562077186780590572878818104213230762047977708662328511211532753564795529200198331197214308681754878368485476167196752874097773245058301960337790148044285201408580567669052435827533138024092946745727849089368795993306616027409121321235212027529587195638283861623757676885657597495788588835764851565878433870968094163932823169711203569844522606492997401184892668091010458454007652350427609106402618814148369186618390184750984604921484664068117987033973495262168350392698990269110176686702092543604122715251350402187822761642566133467886999630674338616529331000697672584447910070001168774729452498637964214080325018948686003680529355775693131572884464590547201919082901415662669533463703468117887235337491595959603648829051010618098059775682461927268275268629536612122516464289782450986294306851814321870340699053822162807749971795280301649224185016989553278061000814599463562716393386247496260836754903560473286984237147371887131163565250876865440035060390486611742787541665596327852949415788329682567781650372645202567189007119917576682974515464679077640805261854231354776463506938508015100570687555827439031345940473656696292784135613344596654853855303390280142641897211782278096490314816538924912263512566203890648479081132267203652096113680721452619044521036141830880785263002845469155566107975496415535286527840281439187456320235694021757644364938926210631291507011634672788086747125958396543051275057470155766536207529023164663532515144344229546938552961899246225087576080111643809703926133530937093290678776170813353025248783959188874473979514618859594229521667060715469001263277106184883294471996611390630029067430201723806398226330329382090449437460411224435945035302557963259891890982374286345956747817454755982248616507442953133337511101402343121628344009207799435583736667695437428169444974838759708176352192430389253019042229820252288966061458854816904952534752312632682451026634779799274861795586783588881912638212928133062600646901872002562454562137752172866047567475525863268799454444868406043079197370548055169820189523223680052318616335791011414617883943632491448023049282917594941171665884657088158964400835441310553425034723147227398758882496544746198113322608344500456730951079626422839607076299453459958911210618988927705629422701530735286756253720264150229096401567639128552492748559081211181479056271891035553923753787583758283376827604017336750082173445670078854120612557069405477094321227987467708967075083798157977884270506183672978515452719764350530188212574307861234732692419552053899212200828949830160467801885014190223442580705534393769579781530099081875832659658614529046660915424948878300540487256105652554307512189746879659776915973345494748306686736701142358777753732728402627558554309674379750477551023440112086546203657562810129451018098242626169222477733651599213422886570985931045280874259354885042377532923478305742526577171380713524904453029907908855363128175385679736092369660158599121949735933726520569577555364593645633835487838479990858486947076950980095909102092052915527342756858904921823463818546738727063636166223850350261899225401171692116858005458375194709113438829751942455840446281980315009307831174945796097660977716133188736196623023979282094718944499862704507536455448421942132502494685667530720460356529491606011707758923972325768918999321518703986503583368733943599341170516917498404206031803956000466809977187789430316401652608924433092474134243887746171824825238341009289702355323902185684614341404780466442375839835811093714170563461895252215284049268507318030962366895762490107339537211411832119818632225127816428139372407587022711588748305910037407539611626180948131445909124577906398669670170167621547134473918834945090412399720642682861331446265054565752683599799238311602693567745996887552092502970456348514013568301252808307684342887546143992019603345933436526569895310123448659039505793039962227148108943237607658919788890540095773500374387351406242474101274116558083624365337891710663678124844193707093118347699331692428957698049262414958015945739776993499768439004610686546340830300253931784501046329198816810731245123594839559969931034702058132966042347414447139639748269557405261100772584039482409997674396773969724459799754214276435545807280910984842442728101801890821634577004650038199837687310209046623585989039376098088232861583607913962876566335674587581128340324412668228796310749241502304955821263909963245960078804340214685337996269392653468548385479725236550330435590337503528569445830816559214006557609187388913838280623988488005378525715713907769162947698211625847775006319984532294051804100140010854556216779535930561469258717245738131849413292684716022736114800579047748436399160230384651490752238637779186040209186947761855657256593454763582421961537978859171475630085488122966599141312212867774998484155592471721009952636411756813808658925115575019036482197968822857393358030067657074971386346077499530178187664680911210600499196050392248872361181149095417768570749152548128599274986238746908106674040107862703091951677326329645912677228189373260097383954484095234501369835787372165710095826507331449713087298248064060024249769029510455890878684282117353491476004445445562352100401700685004346421698889868973335124375120028064240814299925123647787523850294379887919977787281122830505273895990579425577397950905129492461421345025263138757407242745790683165201180029045201622090917930466579472244790225689227112542129550954445823147030838883046243672223629450943895449035108363514101863698168910937510268939533756556080201874360838050673237364659424187732445492745024922747947206787815092033217808379754206050091388553417041691277205954968421539869277756451545381854012673158875788473315997354535650297079995161330400506878683737706542957685006840184183469961583307876299356743069974821255163986111329315210667113533788973072420623542124806340176466805842715216565409235069211958870296311019196903913243487905012773431847737672116372925407171068243243309310980365191837488791008614464738797347613012953271826961934937820952137193027713384063446475272381133633935457583864624662603470107120577840473942621113163681797562558705772805845950997962662203013074312729630906517223178083537913642982876083328409505131150388897034124684737129923036478738205598328705378688719241640061288741291178322477090635639416150173331409083915485222771029412299538691382254694011562447974493067100532990820509471526410390340317261434823726051687655705445739385011008408718068819994619760979872606323028122480931341238263461390821113655802054321030479461878842712124300212486086340218366761496885266365072914366901588778141215176542105144991785657735602253669168623582643914833375972492111061849475270638863345394779309464385263825637762570770733908755186911483905648174850424716578273844448093385491796045513175917355281913779728898682547030400742974414008135749853262824117778830212265850369507299905476725948350124316669568011923116871068314042623464967755360446652280078354786210443487563537676343722195436131747827727697858466792887927038054065140476093670037489884648177389908999885205673726735092126801148801002621040427163296205362912982483251673996815168159083964016404229637586611288245680949285189595878888418370490640192767168028719838632889399197518840861877889593702005356016243818398704818411296458346852177813313879003328881675688460580718481789516307350166437498698182204089488614425093832744660308069650744383778713085850760990489812771405040221639956035653290688872439112282354443275944865996921583090244793348776902446297021303542160882353453942972517866100490109336049547771387309318711224054922585070480503064199012647131129854453805529702622453018098785954134771621007362750769509166788349147774411195046208668282649277003435212552482381227278609332714769646463334511589690055103607122697778835030835169875387132846845501803126918074702265174355879290268756034277030040369888245475872984029223616126671350411337972951360017972950023359283735235583875639448130765672679369756890917858243056054177968526084603538710887874249051064801197427061992920932350068060203335710781652830887695315092061919018431037570807786080759059836470253936969959982582133375443526212593716492594789986746713243142861454675427914880547065073568529025995821793794280246792787407966749727558631388314016793913180549136073084577251218455881335015635210865719107285684016506107113646768774037758645708691278052750485593310324447695229047262638172774617496952881198987177485047054674202126062006633550159475961017071782621295183015190101544755269860627169273781630667873337210739727810217485047415074949042101264742425356854124149560528312748580917933778018394157731782214000663078498907922769177907195686178811302443356904485122929882293396808160976305806927648735825878634731438400870014823161382784885103507263729177157702278374326116075403691366272639126452778084753414145692715171708815610193710424599343258824617166719197220904865043889330384679287842371689354922449769351003354364404613822981154493312682515406783200129315147358427675761114720862832029004296021756808542305322274633434171257753668283463510858292882586773790779174462890206326652985073959411436882942876493099984267848918779976858738975733270644083164223708944284946311077914130192672751446342623414896532623209125445641132623647241362723800339244074842482911102393319452428414418267907965867374978329934850054148734241611742798274840089958323783198961788634183940223042095730400550079622396073063271462932483256505191787002902640955253194936592807594440839500754776193430725926619258395331896387900496716086730577376188110672041572476932947185221050558019840527297938399414713245215153591683050638612508502150988261363105746535650945399463029062093790780033273541832227367565892543739035260965158081778648559993523968887633535938450332106473605732205820323916980608298686011472553824852883588428797837017904338051783546409250534421843398446899122049997368863200126271818519990156531385936017492177018148978615919597072044449640571650937530002094830466571031135854813915463125539794011377376273219914989900369451959449196603456292035845739219720180385640146266520022266210580167925726304274226243323923686701598368553188347373768794696510666371318504437976359291984928725660751268327880746092094911717466655374432991222676842412107825525488138544497186836213003043755459833726799265074374971374811240965945512529194573826470291742131626713368349448069331851893828307666678892514049086451374593497507757819486507844448982153708999674408599943638077206011160004444548556920221690638032583794416499789217542908961427097787070474315507105747557639553670992536104280581417125205162480354487658205426657701580880289687646494103171479869108055468712571598418259539355225761470891925037322885230778122668967620647281493673957047640419560973873054025325661322154199646021752474377426969403125408343364510587755854727525737751412866914777820583037751037610399006088186372115473699546207938593250077154150498867576727666552709698036227869334885824122037140123848588634751533543026025224383470980204819551252233455847344385297872453025763178155986808786909163795577467282407579148392743089488077715433531087005802340230778612598415487343710309811001454617095502084119046600188760487925429665772526770389540048687772879490739031586304829082725169615496032660190683834208418487241311313658090321808114134255327871848687689318401974659053021880907902819573796297277643508606321932060828901916837955744454913418375470853375634360033312109556265617561828012569953494839957187256227963667751404070830192713922333472270116566623827564049731716075747253132626294018638964417117892344351436923910234479904894745423872285204120622090338118898466009191610489982339015753227059594236876761287414574063452341596833973802209516386195273121980984851443096154913748342548918250815756072598403964712821455371135828004163639153025839361418620156878735432188060051315637091861760191696116793169300490353490350571571893659127365801626842461283695218490751011328867683751989764843890817692269786013127619736040340033449323136346275542764524981798388062701587030095192245630154142134419835095891107631086060485145688765245916001286834523972535794744337957320001916882365777778748316159645728966857774873697373352671464365934693833907176614815234015031396788367610616010086820511741566977495524342388194941629473598082064624988120563967001971089302322277031737977637303612509106942296663492144446728214507167608312895453485674495890830449163698884597266138680985742800848849341795017092125780225905967878387924286585968348782525708358559539143869497097892382153248321723539230282738636748151089743847391989326815163215232659826114825669963146030752050370761398496622430941155507309739137392681489075782737690010786998622203566486849578859810817489465352271550149437954239923748048947440405064762563032024339066244145941189809828370948210083751211227532850194372479093040273302172581244954343872946337354697570106406943772678145192711123169492053335125247696230768100610809689905776246921917840312280373152049047318167521433069212807878464009176089588950598038646548085765787507626438161277526773406377284004115374360518734849526862776766721896754548716540765433988556146804330235526999845977651151056545591766141743198976753593255291283617389592166980576332626204289896633440503728720459559072560462034792249158903422538369281898674977495597667582846425749178871177462796091071721503228785462088937971629468062663831335567777510140787421031676752268980074255674995958745107322950006146275889050214904317777705789985387456307887216541241823616778445383764484536359615640592643701489827898028281471624877984715852723276237454186942724915345022200676829270768370015366180729912112384389088122771329337037448979232252032647445938565509951026595228680709077900013060665885696909576677556246636112928710110028985008067045979633231374944762970887632771062557677182501350697124627978535561315962329745736245122973743326262313559975077285850622237633804179700466333345998669437185606959791137312375261088169471994285976170888006308037423386069979254915646605213117294806885919677146183185812268184701765336695855933151657850658055738287761529084737943880959179983926510697057730566011296086887993000651890419339236884800801187177371194106461999942035195975848263704984242959424325824720593790563501325802606621628279426081321367211354281730543583196417286796952982271324412648293961993986416462564160024656661315994967602352773148135261410438225371532946019781866779087708590748156683301632609202621534992177534118466976635274470627832892231589882231917904209378932297605725426020123386921790653275048135173499618120960221350055667628686463947104063603498795327608435734955765984800172938074604158401312165521645787219204947684416627329920150538958713493117010920316302478115745377494151497686652758259876553216203042450588566710137968330194851821646768375648066939351432068451880495899391597925877720774644670175972642536877041971002566031835396870128005911307558258189865742357710792297173146978923633988928661335986459024200357345483102339582272800029632981094695336966398578932739833856787812603925678820977142282939048897413671454694765862361008757615575936540419728497599970265654477199287904266225373363942766086575669707433302770144553985368352603870440578996282831102377000948568297390449262035080872176945757073686520498019064123919799951333755918804296233048771051681737096397175874808517175484070876915649321645310497694466580298499955566916704941529747926698836098640056275225395984902410045532510854418583866055198944206297815825756005418263148644998326824973703584842136757095239966836819422971591685444291877141290452236574680410265907492738089473735602453144827166695757654271829595141322063193495266156830884033473099057097924567703166850780236868648028072974059761258448064978244360223345287324870882363106130660877326362575310770802712276318411376278554278573691136027072956267041957194283866033301148519933505894320637161957190470040361297082014938040382590128461254181576436085509972801009669276056315020717273182726317420308328850367386677258123198061756896217574218292860112864763306844599955646830379296515816668125634516443708899216898673269108454395965801040700758801107116089228434518735414533451479435907876467466710999626181416862762710035428773400237139250613198851895733532451594011739201139812190181077984196361633877937811110208787489300054030334539852450428353726090426412336583711123180819958612962221586038908621451055993550371378670922315849803727333220515589797411700812221662320297834649741380791008064888363178849588188968918304987898898486630674692954479300390648421926721684894949735782016711134370306222298361477769428549216770232859330585857044863189945563625313221248967733111690071673254810749566945279318097500570284619866772207566944680157126999126112954819036758806757669245879141879344541974213969390501086930044297524672478850337526665919788610559629132703893452553942676404623830264740845481378979838514990634723026490306858049800464503544561821785588056648898238643238578671427581689627360513561499413351664554646724453245155347229678037307913471903132967548754761591643174769179432437478464294850794234171459839593253853860615977068138202662844611393176736469378460089085241030466941408640730356673758510891990546572589156741498670981591290300225741449277335309861428708536704195691515693737458517333570882095597584429270941494239634009409354914107405483456025884734299681603671059154385044885640226900938922615977859526606295736778864991753878821106106444057604903139360925721853394904102636630534498192964142954246588847982900152302923631366420264306299716447326189042019641897189390649306165473518793920439095755324830426154261390304841516500417597912085834455692861160456171623608461302996890222245984715299050183040135279882120749986383582633405220398798868175609399913407950218976347292983890751905348762510795254557505368940665609063012179961510699874485159555743658098365972922218016649227687867400578664552845278238321108862022336608085153216421985382664955978993046161645934423558728607711550157248352117711454727881230512262391323870808795486108023134956434541220789060170802308601567739666634947209758338553725532554338044370357807466561530753923106822427130650521326037500011617858250985690174430155407267051773430291812680682128912438723978250127787549945745013830636356335628645054385955644778972153312623561048096274757583256110398858061696701211767618533280823048760999722572689621765403850121731944701709394730147350131560378111263734565285786864758659308193511496273169129409161325150398232046024231327551814112090242064468377081359338268637245536070340177071233784152471041527130351998416780521966336785376204047680561574466475102398056361575934178586388643590112801367465350584603764299900361435398025629616253453444560731536873990596579703621565865242413046341633520072354317367232316859474623152491903732265283694912784441157797096092986372803042015983183470736364528292626221937999629060231936513766251949129927028608987707653750101427791043674365763647278386144601271245770272547396425205984792600598741891559560837634509911331370139344180058406304033286611117702857816546098215199719475779816392065427371980351569523492370494366516802882091039541488936711457837245378097624021812681507579585866745628135659575082858306327051735801776522533957523935415929205221297255970925730801516828431717130540329034923655141783381192825585007986169422002434115357657661918962374685253265162261381205166557593437997290637913071825592037606441025955086517775475138670937418489389287438334639904713094282917273542983837109511848322374350831751375860567541689202369488451231616535957442248341314687163482363655284035832672156752301259022348575188088233136539460876406793653925334473917518645852554802995910135746326686289938650363198039577177919696883341638500291156616634459353145397973530317490846989987073384901988095406821219151909882354228387868980268088227399949686103615306290090789483797105809772646913485453039267096445361489144557909581285326058372429564978940317918455536815529667122568348156155210936340889375255297154559801600619676218771497052943435204884233784780630686990453262603365453418463515886837290458022629427373702903724790255197958677887318033616095027664229383934806580084353694956251995445982306603937880222304833600756627926830448833912366286060253437210337074835740616565240204931901430438508322487545328251487110005715524650754826699298638487026221202702937801663117089900937574118713985223303683752932911770428054375344426978797520699457380213155383116983326414170373928430159831923608787130194784456737164203462972971381798646907667348978829362385859409220976730056275688498440199076745337913465771569355424030821761095049552768723659186288865570059213508271106786837989188578306545890315869966016227631470442291831217910372559992655391096890158559371383444321549527043512438520699205821111999891156281894283353412329389207249125419270428170536879903942014460084090284870378771967736409206905900938912662509148292915130638056396508830410490148268971486668895904487951273922793718358475620551967116853866999680163110652443778385450995296935539252471619481698289497095003051444631446957490938181866579814754548719900490042436652126113575378470430723080202342418089643368675147446213682723403488496568751512878532088849181062316276161279816612792226270832397061224045242202830094164814635103432684321195554791912007862999291997852160565242749892783769197646342553138878776909471718815129275070496227234638892251569964294343659638471047741158869946762132246434120744900588188081610274853753505763079294027031341869001018705668511773733551594015115687719382117925938747679312479914953900379338628498455346649914161568713895734992490032965490431405895548657802423653452961349959694730384854490932068250528084438160314927818390589835637591868048441934582718466300551616031365572994449608556503628424213287454859619744959429693374385251804092064549306328847957673596178935621427076184892551143338050504552942680933276707641779431987925301522743304371276019900068558241250348209502350841735520330067905877292776895475464053630118850521784841521106528045508076215463743095633891793919255579171502871784029787618414656884803665024893670467197811058186606588990404720120391122334828075410493325680293822524670890247137508474025752876066567033905731944770459098436155068598038486830803334712065110713252831430783874610094560282273372972787954034163613373320649656190676683478715949727592410879319750212603769075214600835420113109571398158315447436277415103170614054460911980176138070832593720090142058647776981562953870267869039533055493776870800085561301421720102232322027675112438547038969514115900276080206671719166110438180048160128055693147387130881887858312160031209242065247296603186992491073717864526532865831441433888950163259971858316877196867270556851803387152353276888540302528905008940258720602581306084184199152496317393908139563125962937417265844429516733711569935347638264503693658935451482899641329193749346326118154057581818394867099361687971541076451848416840995274506284368043937955099791565311234186502819113024482898864102761646663954030632695001888713091990839726056839255477776738476314695449004758075412464516151762843014111626677539731495103857772232751611347186253482961227480175862375641324885209715695675113031402466191696470038988395248665011016707506975252009476015126873732472562101153725471871015568160956533547556337078597205059531860910358499212125071249630068585545745965128447363972909380512443621855366616406378847353868198585423478515756588598575750244473347910166015861776383885998625052778938289835637975285717187251573298673122836913985236522751276214051345522661348222119325276801828400275232606999507114860788661811711531750238524226270968721678915822271548806846480453424749653476241241038087147012774399187653225267682507818185483543371991240795621996891655520751153571280004123814226947896884612775399156107237471143065882485192094634866299468821702389492190111303336736314586580172664322305327797827524717291707274087276579469766356685233362327730268538623892609566154878441197771415923522332124114378809130456992444910498761754870658473485538056628507103891067591791654958445096460664456446050501536184915105173809496737836779030464219100473723515672716722383508985540133148586098061920587392587570802546759892481389481670213236449954080721314626435076091686307640527599140134478833703012006190719855665548591253883811920362063946259544795188767614344027074213435122481376235869018213712180343557075130816877325647097926117065623909551760406554853340850485642096077543081385983831218504120860718992152562603017984683195580087779501378347376164027164677618322097146263516369836923399493704591334821572201244153777492497850662650400123556463562768761711271192508112450736282244220454245212860418362403479486910605115474794127139335039386122947121590554275141308702784729550808700045746854454854521514386524049646097294975175932295015694530806082951523200443679846959866755961149522225939969368777949274459980759830981439836393256682364381251636061546636162981412420476026670911633182268561325641643634896662949232315014669556030578402532745653806303736641026857464398893406605392108308176077904658947496976201021926271655872288834190906497557892328282099479770090606242323581083482070855681423349447311640247932489652313633027575549335926083936724517282090105085353533865711596527031249697089304246961384051799725639535166250913145318879165382605772948468896549905439256187703727080984721851105849318777303381082791466058903729691916689191108075032489505754351592351640873434783333359369842139814753693998142533593606604301728583295405061825411768632007829493050059572155283189354614234138922786582805367347410096525225831863280632481308752596471886704654594993609252267421909132086217285563614845107404486493747592678060370302989653243790225765266803964289773538969079143859445863965907285963890273555874347734037844811881572385580170448285591807287149909889737351096836237127282282440562019080918438492535479948323582821961284465206822577564853159714084485126821160211554697590841878408584214618922810243845257225169207874311457751839374469292217080066658255571299969008984542908476082681477303363918323331441862012030177969710332303211520515185097732471657226310925079246976794467183763328938008853734535216619874923371499065469155361213398413753950341746899425431715853025666006383637038975191453027171055269762918278535928387678948143261411686435351057805930604143687090812984108280757446869268645040157271700647019634484490654880104194688883448199270960963063967669666881885680090278439266640137490085404711141618178633393076428581775052577721234998801779264702917342270525351208654303504030364655804216077413302792978236384209196172464453451862644243664450941038635638171376053380048881829115332121932903160989205371835092376838327200692997772285320592716751171651252739298263221374102250363653198109014399139854620035972133154182053625881736489621152190997221427325558146875109227919363544255115381218849956717391299656704401323427243953335575153763305955572306982960651312225110474214116054262627988794679273183229925484042054529542536183840363159317654199112067812256645015080988208329286520225247762148790626995491172493005659282660366012684757904633837080133359932731356627098093279647123718107219407790967209764588798057337656411286857395013749684963982254945488225618641476993668218937371501609570071841751725897204786059923724624449547728448257148735062638735350866746836606013064932147934995331545854051769545747800269667862446071099653964277138232475019978001350328412663396999700269750347279872584449209142539102030741607416556975506234111259045672243779578844465599311063454660359797375041546803361050563333116816647017656564406805160888096234312743897102120081207456914997783801869132796623763647930491904020594447942810571946077138428098081010426577052731550470713208099874672014906765248001694254111721972898094520818044529249734501314512084285914109528875954890239187684112559728966864573510711485791268392871897384733087742417939370508806904816785432352803331994104624663270128449313440305369534822290997685643531169187399783487160072729945199190153533137176587643627680855009402655469376945008079929145221823078150629307937986040926209543070861514317406774748090736519797122841366185898083801463287145984639191760420487447486478469005717010923035003198294533030303835283506161284852842624407719196306505256868171054609338046395355349146612955499834119857055006518089573687947987958206472090774849069742099951413766349673571656387000733686405768237303408825757817240622282109859022696501801106653477281466458241698654261835571361627718036816916579701746448886337112608762400094653664947676255518416287160521487444366167989690600073333681195808096006063163009913621546955523715480438327459474634515648098466194056364071659288153930567320830524076451685391784190885151396661026272108146872107725599220714670687613366219368842733088928716780944336092818440212166736668358139319837744908636910452565038107403890408036801605685943940512377407779641898275322918983881291079401792546923367490160103471735080188581471487409423991350395270161784949392958258278528603322687159123842959228540548491109320994353727843427253958901769011479348258893701825494502030634586407261066021705432445585810525888471906779622568571819840291945203719295630016772339580786072999553494714378047704097326355774828944306576001506105906445106169352105131796935216227117103220350689502134896803197178310934751911985948954609984646559714888233800950248887114542767750768357470054502946161425013105675510061694575582659053535609532331947445393417237209900744881054896344140938423088533723789914451851803815943196023620097392665366528505525771839735172947697864879218356840286959196803212388157029926083984879914361483083927396894107805917686666826279881299400632977986107318227618040018449619065908245113304463494119584184951243582880915681301789729197760073601418334609199314576105711306571475475233386017453770401436598793668217382111844716906856299606497460293446735595040485693120810612621951371402811735567234419642074137069552435933431824424160927485118357701266042673031444933169946952868764389791046949599577854050565408073244269246517646425755117039432969783322657104773993578695349699497822133661689086903893487382208032439180501731810219856574423524218585636574876921294829638794609843649764100560531495768657062894263294644243974052216745892781645730928096140125026218126422902653372295453301265669171775350185031867388760558455260627971446417017550075214029718229630396715971207991050558519935372053368870482526626798176265567030095723111069053707556904466973004754085239115042273188007750917468692119890803375626818204243249813967453691503832827249510484501225133447506581561646101983259131940906825177703218140825200320268395829212783112731243362768796656770865176124026442230016258743680335268088860345684666023849394292150287494882473539585495526756637797246411976555920726388340516270475600870010044742443226713939538259484606695388132024983758382142466831844044473246995750221077406543983167940770338511934336373729450531850368458159676591592606163734237230494281593523730301909119466433517239428371594936812036761289941098758284905656891939548459464176095298938115703892268312059404701284771020668324531341535070412748833429843231944230831755020183886095480285176513759975506663461465628735586271698723337530480998424565544093138035352182633811030466202948249473627823328142791419034800132010372122970005800774729815712877496581053881008931182497977046342103087798368415013840995106266973298348350875139992892403823018140443842959854189303734707729277108482877422095557380999811459275527022850187046132725112176260564813433552907523522191273109107488156165321324106381760492436502144723113100176341616957157891785432874094073301338368483931255967960637663977581464188027747491131961362652299111588833664739905121462744710434730966054726084565912230399367527861615801448824657708935454211874778962444248974268746096738329715222134862275541231940224871786503523259732093789171895000758798286323599641137126673477065576084314820716321347099165792765709610682307926893371694803753553383673457080502866161687864417068164470385624446442753810268947773384064870720649232530812630295476313316137667741382339057468445611642792136721453875709926568481521924464007679945443450345552170891683329244559832240058948072420420020554495606076444210475937405766123630214583257332659641993158503273527344987945770610776047242592020335986977116271211061176368875901867427066988749619149574293375562705714021977867569923533686497968833808516516562694541558021414367960040020056482128112395027613948406140127497098030495689463443816424468907906466845316500979110440173811775332406690407324273289088535692409161820136343689123256456310073174019810596965567795210581144774196993375216599530505141901946185244180526282727652935442021868121414544965266422311881030577241631731192785701435086738425167701249887060783050388702675219819151344601670721909106519236101494829242646543339514842038483247419179823605757754185800827812111526749150180837039201364026972377072506352624377891925071747134823340856316221044533440152878208770489132342904536402204596714238499925577798094855855555181370033815255856033525633732954427871386848363261409929077405250147410251410338441660361808219012615234124676890948600321904300230156444323706980566191571425066749810148508561873075215030937504725457766317162840108224604000801805287406378216256265338358007461298948263172998533719008826108899687373705753064075169210487173878224250601429308794163899426599227578552707582554709520068196762702791419874363172680337690641594263652618644928968264351575368315556141975767864759270424279227122456898315594211886814338165827499314867941546001566844368317667865528271997199358793366309533051621628313263738105622155107252973998403013703678635590213442169881098274916748982581537756888614696401768245221239216588544441188660616979164494201640029591542753842438986486717097334757984910478785402296601614893437724695216117951429922989214517020901660377054606845139086602823496380877392749775931625691481210251256107811443719700468189640426448540441783785605795394541890988330319946800937454818792795475559008673009240022421278975326978479237322364893853740172274533295511107280231432531100872752792414972063233930164211615851361745578083964580259821465519613467475702923213445895159247932330435673018134044265525948198217823106807526518528292501973316282738251246253487222040897541587735839575854228087250360644161816001996147040045465927032387416936143705787255615363874024919133793778486262941538883309063797650356864670184820787668206483136817354237704890795625376762169420467143306585170651686132701948292789450151119105362706237007614306195421057790567295424933808615984671004380681211418883719894215716499679491494422188088723230673404682187169029984959611894520660972059802722145628569288459468896449842324146861340470567415398630344607693231765377226900201859920029139671754314732863189285656937371666613018614775371055317707774594003114017920535537691149423086573325884075037748914959435881399504338484074305741171159188031097467277494703709150586476590207841539560075766569528769954040735484526552098584786440204590370491879638510395933567738701982489694295360665891437076335144615539529567717630148884368221296652659637993126326589121719086832256489960478491637209892533311092799093968776087952133433383011945897628923831937180099443066066642192567631474935433371365889631891279242975943249543445053550156564471102130202273875002955771829891681980562089250121736701386591513296469373953610441321712517017770659757229666475653238275663640944721910145969575288866122065709298685151547632744364268384034100233603932862860181956210756162700111387703590133947314570521689264982417738332763909443452178538199693529151220137108144939845427616822308900180920890023830124270899739035468706336484683905147052099262070798320942368949926493003882802134150440316484117160312555757650135348980705253216745794335406106692009554493351630865054228610015317044151138961479385545613186933745234924728312122265850905386986692742875070232949109869587225188683335517693425092521373774718331913798810545779781703679796177981879427790828402439392277679939653021121952754070859329223743910764211528157127098704872766119710338565460094915365051175345706241116131383374966892691662401703292166430324692034653863317833825737075062501742009619239037772477129998438567077223903404163341335382296792537602987558668338159723613942313679257356469500015362372753951225116876767773444731352339951857882198104015080256895430989136722011017233955449467203665386339952769605679842882645901247361362280371330309011806584823282740780575334755669154038594433406717619805950185461221642071264624901270912259767591075240930212488259684358521297066755904854921636105336774500372374819676951003047650253022213136925835720995638603146137484817714088165519288923390976772351688289855561486568896595502417076089849995494271589422330678345055092436965955961654225244852737064370683660973556324237962913895086947775174274300281282943595190235892866250909397247323240695809022386554189459273047075438155456583981356186429147349114993604236652716350283711530018550538735016180773292420270489131047558041048718367616109178729991246682787106225806430238968942226768561955400485308811167142334157315072627936013582449516770819443804025728759211855672676370820158055437631896146297317900509729515253247326821659152602262791406429766736239001001992341197232190623441083211490006738524506835790872578126020945364575440214912108433544894873507942795167553052371079836918824932719846997609215254480630023592647072175807352427397482994823375619870994441011655410903830738102992986877043641751278851058035323529744801804400129329105338626106858991980278669222598308812215040599223835526158652880198822011002529049474870989533897678202877968186528008678683203999772369785877665224540367134367048146661224426067202284435940322762679480424200544598270949556245466429034663313783831849056301961897213245309124985162256254039306681804944944422785830846714290475636539403902511091629548647716527892368880948617641342872772685134979778703684320707157207092494569945441881963201848859941838082007904742700711061492139584083088032634043017772215437156913314700504556671965289298145645530618373224947613168926252424223253154589990388262690176547614404223031316918652499172660859270228374827934831961948139810954240331902219420496077212388709222988413550905287989225688373727222594506851953621992338879774450590659225532753187469550022808384760946050334740781204167786718983154059233961605087477872933952431801378209645023007861514552664529929086342331674300302712798825206504608122230181988304796668260826949252164910110046964548275602788271732237994467565960045194469927216178801472826554373761850747120916568592475078979889498892395825676716681511300262241355878624772097646374005514826969617652713057195614142369615643142568154697484929008026415244200348767167058502389244597874006150418559216840941850172271750351040200952902093772812938024572513653671496988909515327905381375953749174039222164647674224236785922127612839410577428163598063431966069529335437808402270334916755659236851870387497539862447554074572030681305161303688294749483463430405890796583028401636272896062936978921877741637213444643321857373762975296461039341621963277961794604078431190019233285109936180270472973943864095615493364265631384625864528556962304371127427828103020815529676603086250688111869372424646188410407266901536748548968287754705983459584835570353898776738883295518908381850198266042639056419176490460282059108923207518230136292881430893444843187265780550319888951674352751296613166776698914330915478773202323266184988907742766857420200193187384154613658982379453420976606062977931830237005765004053189594809220849039807324423636016822516324416777690860750436010770245781884062612956681121967057826786069281317835732449383808417661876519240157436613073553878238740910774891792068191004653455585042007951012933539507781098470389502911965248506423427698048884650935967848840512943018522396135445038441962486493220294886344122051411696546244301390833551794183975001496316156558525829312799511692422501401552858895044654979340856895950719979875007464409389790786677709821094073599519530121083013475851937807004364569221794698805063436635897196588330277741891823772845562879659031309600177318934769957244289256091602900049816803025281752493852178360557913269656435642775587799846937381315403426469628064537585802676275878629445616311163031168831083903237493223978442442107199903287388533591419040689901796487915423040163121033985336810493209070533095934766217466545769017121553209380870012451196792736012098409717991319033665666024040112074915365813384387954344919415330523887779199264455612525634845009770041855774926853477773703034897444962200885485320169686633031735518101240548191643669113838924790532491327751582310730500976413244192939332898120314200932727113300347324475649512132196117263341763221353219250252791304650358273667479971904626584665260997345093089986680706928244127070401857551824747347303151964883235813028365487157606720045146242317801198318170827303239918855818184883532350179146292392328948881512761506132039208042887926373862876158571258075084083930852299090381643094839279689396474605663054647467942638392068121041399870573663769613529803617569989901421914725447665860441857446193004065420956516964258331017704546902949888705072165902830642732405263955656226633427637828482087524074824179796410419995846180354147240150149343901444508064091780862705007712490245639769011727485012287467618880550368627859060874312340952292931654645271521136169749747796712828798729528262638674432547497968861685305281461180626687405339472856658683287630486366621604179253159095742256167567330745857086044252652559948070743193538875316562127106826659549095332408945202510549222592236335376441752899146586853166677180936062973604399944747035121642330254223291862998967819475263735443222155583362231362681567554476918881597208404148681150527638592698678497576571189478224764818702107429981661172603446932889826257147065640918518838026520958809665779240722986360125200469230006937543730402425902021896202371811027847168741099133935664271331531818063796671460096992097778985009745662499370942908284619766814272947812177385387479635973403669606309783111591321867345131255585982027810221369247833834644615989928153931312984953389542688493356206782896326303703225688770686347767394520078683593683886851087152565840038947638918481623254175898336278440217254464805655959692646320300784059152500622331225523551016892029412823708197538360255482135289853228476803880143987881717998232116923272373899507406305509041093481408992496550347214726020470678460890510452768777619146980772864371347750784690318436629725029001784390025267661637531054996445666459602994122867366194558256909354394071933456943382734793562005208713564722552571304505920547829836879487255727614805053565865698890013506697616756073805716076268927364194470920259740769497281974685607120651407386960364003855635813071073014210130360100770587900456504785703048164995431820732355725298721409918852041505908894436334251248012187611774826445828605245897695030627274137070130532702613134353940385951963708361919808131965581368134550115792540707945799776821336926590712257419207649096012902746614788107871587495977267938800720794257236328315760383292649122428423026188088984985617245543412717062365177392075488495445896990585820479604593852431928139994077863536659996623979352798817618200308378517123433261948490199800705827252558331155357384071989930518879357223748482609875603516221949041336842002404353366937410814649345159917290690267784431117080875137992096616711945170889906127914435562579439713309796094945408516419943754307734025977403077635828992989546775730800344498939982597827600052499897131786990737731647545325054093445905894257087115598200828937379208702312029849414022387779418871523610424565692165307879086291902780369436831545478895503717261846630295446162978249463976620859436749702736068813762843819322241961880128317062432751172740579809695846277110199838371156482721226698352523316660928642534877941479267115008277011916375501883808575140256593801917341237137579383445388838391382947308544452981583955440568061978064529709789138684078287596904762619945170550425517873705202161905454681158307792979310296194777333358208811426568807426076469205405066303957525671341263190875618391923926081378461682589956071520715754521184772224270322702891060184611440484339444672039524614102431323816650146111341735437586007418341271031614576897958920134986121283456181893418752326345226746977234097923443844115001157762255502766521752933058736104516048323702833290520329441671949298026403648788854811251482190917487548118551016626159516032487749794242349129350432125413209686487872564800484999349640998322502104715422602180140755587859273169220994558450167668392035452641925171592921640409546500542471383958050042865191470709230632773382958737960518088802357700377916074558834941880397207778317067296647113714802528618476486845606249218736038619982574460861434020604982095357025501995851280516237241608305105489685928890285252662373737756906643781346798036428695468398196607971568862174712724309260081430880428014266158366641307022486875252332853439484421880107031201675790994066394138532175724603775296749380425043191969073990564003963262609622905861873040592496686539191603046836042933681294782672208324148400812022536020356117889325826475112914604946677932683936713437587794705987160461350936331634045914787300933602095270335147970400129532029161084570018317042557221558641638932604022852545178779351693601713215983562233708044193271953887469627658394970470567032012294988598869024473354742186183570960903887569265912483363082831038804773084405590246508552825259747967754174869218517396558974570711095365786196170306445091124764631460751893275148415377898498381332382740646496246476254381735329166815878858250967112408148618350893839425924711915191146910526738508758487374330871830826575521058945901524119267210687687943169045619229976542678145624757095772795599291371417251274435977187506256197691408341327447109230686635742304741716530803195920342150014873689519696830630647164863792115726705509888795093156237079417632732369682350167535272954644525610175755823877995568463311222064928900611595632505354522708315622096945949844583828437142677059836112565449728684048725952958367319428970342535219990592322881818438657324667894893864019043025827363560408431343472111376764177751580720617934422019511987222808410113743219868318603973780301700441944181964617125614616251598000377373957032000479144150017992722103087464061487160824936647345271346089981162181435765501753676246090634023804560967379072467048951756458319272389557630574885357006769854613227881125889273169380054900280636304341683393091979139379552883966695439748124042926930762586839749900436038638428257487658725331006259995594252348244076354163862490532966766380458165391591074046712069363570497474988097476288852326373226018542319070039815071610931087814410847866133613844093135291329962946032080042275334780962251408630122591086029177500672382188593741787054540216941039585307937803026659521561599825146741767712228539722515939927862094114192420188430718774447140800633406808506231764002629991518852821111962433697063465206135982742230800110737546528325416389395336037724254714179944057677543781370728222261545650218889114638901073908331377378828792983799029637043101601397293157001079276485627288042747391732146025734666309094941752037687464972302062335047747057338613981200031896114160112531927764422914860388811280618439842807833209091219685098301468138078805892626880055440403556652135267170819282804384337793492721273186765607097301238514815420960972861923703001429309665802797568900622518015845219179571679600103054736750173626367490512550825394853325238531164069167354154214845775389015916574811077855142377656393291996515120189431686615992967282615048143388376935342108328508287182242316718624037022912003184113756929788747252062478092396313245131898161144006148784300447055122088222203097699585588991016076305152170378006187441295071903015907903878761280383469474580082255765101565602088092632779585707320662481008325216311313886690049528792266267392423854196699263985163220416335609491838593659799876422189298706170986521880098087530927262980814659352324755572014687566756651439156163320097518730077789119074181164955474684902928221226861161085908609787114406540226883526445533845190919184298385808423417490744119873627197190316657496713534283879160905444577039363992210974972099269918442331276860344610797382336542472426196546012026086143456326485162009311224960063097125786909800115720197233905853214075922465996782940519169889736152456322881515185686958002731464765208421128254117752859733716884307789903302000565252015163388727866909262554389521649666195964782787597999126351289189097987332810305470353423644967123390868923109502932208121161612146137931956525951844557242318789082685543809330303887581204772870506261236627435312156884687888238804929987795380376014175287899239217182456302292901502775020511539052325303508534584203127314890927633395004464243103058200916490393832988368330751183046364140676203959737510760317114112523288017781866964329597233665206660715611450927494155543293745804999362565360921189988347371089387845263580557572798552624934428162327996768877150092577504929760790371085437035514956436945605747439595064844836325785040337968338129692962786198975004397561212230609013989916970007489567135014641472676925465354835743981236023336241053464851075624141371246539880110633730029282523970436077369519568383172637493745529694714777879559186083649207253681731421535380253850863876044286911744098090309987779226365285100841903797141370125151392276057615884489093179509864392633494464073572771713843893055064312561211255811230073119927053110539821903867568833284309015163103215504164631878655573982039567687452511768426229345773444543229411635825343404278568800647524982964345758145029180330707600554985202655335752506521739848269212429938988184835411533633201742657539754222128960325793613105443225879724420353109199147050583613095705355596554598274030009770495871755285870924044004144975302922380156112851152282987529916709903281931450754691612827264544426406259349434032695018222739558987984304670896746321738530582309205273312219222293679605831020206554730558550752485543448067940181115557371912411374247038023220104852042984917840439581641347442903612461667109784395849607568813178525279237334490517008872461705895249566679108100773880308948769628103333264019991356765485618660576288782195129798191532076799165402109153528379853172641842671376509724881844070461648409470626580528411499132354683648915200798844042214258940965083693785275600690691502474064043592360469193502138163962850929146846593303095172865168536231832803880947425774362376328170586964730536080910167848191229826592397096748044758090469376041205558564945419092173357928494452758880643167401829180277235633629837614034638389848919823666073570427043582533939356286487524904944428839755532444321224977519077971269910852609353764790364712869842647879716174602344332491573541474538723284210413107746038614261347054772727348275499612839181956297629514034060757998091464417904976704194392916971904188791024211972867242460059630681471279431932261912331032488472702737343814447595650348641555388285367917134809923148835102412616582005108590073591996841090851237831215828932706802037928354366581978354537514968901472584718554654197242513465308330855791874044544475261686260189448581024880801180408295039498498588847025147140595115449896576984995045581004142717746592262722815942167025745376546857010926212608295593725695106637686267144841102747231660487743804700722921143406015767152442754588007017097200367857728536591804636054108014868888608575702486533187455466409784591312272478808561161106528367952537800404708054131494193776338507889925607358815517372422994480383768192909413166257795322961425326276922421490422906843998304666471498690729452635522703309896242293372644064389150751954571888037553759417415590337801440088892469133094206076344049054923981283330462807767802150613467802460391043712607554608923815196964845232899434489843977407330778187955414955315794185313375920499946280298077570704131077241572651033424190239991121087411886722920241081084600365676621698997158162900202927800277447202650356902383085158037756531574456360755374189121080659343249231169115460186580957733389023111497867436943040141832265550607276267116131605976855040577008748791259259970129495979343210984246267318973080103651188034894477534492218404721568134920038872350826114751743903513312888853168100093448209974933792205026463061356551390948557248656217134208889398540326844083258199825092231148344574625300708436401928051915993521663503049993231450688165128998652003073537497530237871036090975253578536095033203575798516205676270497925233510680689613428816448471986328167576589299345873241134521641575590183104905808753159900837754650477898913863372070024645611673372308010209140414607827721952053379586109863558364525410036332701131330191307478808397499866249995928432238805210806243125391788747085657967480334957030129321111152062942924258561643552715939856607064806720196989411348834982256715956968598620454156973157781522253411994262671402469561891425704599429338866829627164370030772493518347878930945489602292722025993951988156341219341799446088765526609651794370788228269834614898733674476813513039588918660625691149842576819552589131217449616478563396924239852666850875220414548826412045895155899669718376299590425512697148344675668010911203229230305076582253043138878722529573760666736539057738393006765820636838363720509092209285493716048710585310441316788712531949209867987662910813040939115404668128543582069515786662102783201685967663569917190793691061218987613487151564983280702750855537726462458273286838383712641627186897660048040829789056530977489320833434821210828739040017225260990160092819386382429643245193434850259311993078637504144570300063261187347808825864195064020766536684969164119367613575686771433121425502835949584298365785050176164737524786705438795478072819031040491423781419257103954036082463968448070385798548346666340994638084006602420002136264350781725940566213443713652999419262650063353317420170807615602627177413169710634882426075338347236526496160587617594985291485756669808104627426596011880676675388773217766429404381984105540304360363344239827171865264635315384314449515364727212722882040104409377853447309941062314111451613231843318840353784495906912721510154311537020462370753180743081062669018955293186048071351528850336953516813144089262177576365648109203508944129415390807290245086660779789925039944794275102045823389124930917202225397306415725855346450875702808704705311875776822989249377427540737961336578950388753315665365832445586361792584166974897904024470409924330843404542599878935054319925999547857543205327576846634963701169451020007269412164759299690597128091452413973061919881946384901481748725908079252494557599244976164462573188330322953653038384252068478075765202346423108382406117072238596146477384497190910179897957875243336008605082437920213582674353025167813000480039904437375060790309628324227291349599202524011149333118974809559417164862570152759841419596059302328573222932886115549813329205269370408867662432745736324074054305908781958248723384437765190290081803122036126183473903783831143271044749531139350547033192203144707886665937349116575950637280019085946827644230381546203489333409003212548245403926575797141893754970316758102386982710079540545181626398963444630292548645452019499473468521061777864998748235988352394463840607543728814530918704802139993995270789152552924675775885780355426290177632120606217925169093738596681329111718784908123004068238956497361724612762721813177961089340302244764193925000338905796400446339445043283757882007010143107991707987960530146986929079538869461789357007488802373308040772830925126706529504252624583292731660497013933617432870110547081713289497509079731549550154547720526517220847146728377273945218369181884330103074531016549566507937712732253850276909217321149788786400520405989814846798591159721698494321302788459390162231786791355153863750408874889433004239409093449870159655613376653400536474621799307000816651896423623925714183733039779723532826444436876181312780799558802272912167290518265447297339663138927710666069256546624079832864222349111064087321516119408872604067481874870589153501122232958220430456225963505678894509486233385860013154443850714255080718164404267304184457072623526724226562242046837238986511065645679469127774160657558072101871354486253513996075672191661780186225846904135127053547260650452252848562816821478417123208639795542818545258722637380538363755645680113154414978851055548894554191754285249069867166185221664834062107098395873199001951771213031027773948839628814082859997225261845835913794046096035390001330564208219813058929770713055909669115892499576000835503586962459383639396919672722560898936833446108581001806696111912494915787425722464757880900402170279681707299710959969572920154792063696542677880965331599476813214666234743884763732784818802493991829023376298045299043064615414997477745422267520766609267689691481849974399752972267887720774044459884390427852320740380105017374694226827475319063736384136070515706074401461922243197509403096124136590696251116294862159829447201153965846250699917280894576685164783723282778053744002047216558875468512810846630139859559581722505170294094447354742883361511132610659844974729646939892237975337262789580239262068298871330797217418809628057197155167590562157017401267606893380577885323889985069408836411545167442206322597608718917146008851863608127297138693039456924021408012013637062352248974434220994371930936668102818352062942273837049927429444841509653231587027914478763865441251336341633774472590266348225582215835764532913869727843333233924396247957183623272459604923565340583253942000793318270182225144368524661528567750595759383362746017080075340352205893114413890742009076966001426351476390165470896147194458531897058742668812516939367707658854157662171500385389480568998440649524746075330245138390466646545582357477791464976180345268082848291968515538139326147851000300565574707655774661443539600427793827427394127954803687999991452060357264531195362974868931886981975886071824882442476712666924357919379038780884726421379401993896714523262285674568679941021032080008989287237655000313289045348180965282584011564838444367542277425718968961126374177370968331850579198158311017010608774435999948084408459775014580672321168543585757254034722718722583449998598427053898131101730145066912846281212481386825553403576067200447296317097092956185880550615224651230499988246794202892855270563775518578538655327319735310713077084446187329172322080126910254824083981345523199356072041534856155350416871513525302016086954262508108960805616281895150806046899041642936402712405430801083499361019282021757063469014391465845407747631156493868734451532878947058251783373582951103136834233408455882623618624860632955389439613636269360650599943826957443069193571590636689256729611679609911902222646093643556914201519858735852975049863635354544688414909339211169690315929256659588042996660684023299240722244116207778276642527853084714320309699405161100688417085725234080695556740871901625420799704643438849995657037064350066582838821505063204286946393838247358262506758738864974241273987814743917110499819528870294101124492753498144663547344761276456886220282739256482119949143568346212622668354361319680187285202547976854031869242605747753687033846624847207011354114862734867462895583515513684531767221713886313614760981301106268731901273221938950907152594352331634500993051734267465295011820130538419424793199664965604107615231024540250081274591866140518815126577509682782895680982534092984705747155088911572132369293165135219170861621046924978974325799195419494802957495285535640678460584597927532760120137311188602244316911231217840480271030503076828030974862384532514137162822704860548024731889577366695491055809030470357592096129593182770459588734967813826672528155584296563818520867726624760817747286704760094887957548757831131397697088885652645317020029348342614030949497360032008053342260966381951590613423528699139996982776008324875645515342379041512090535742602766202517732477034270424218347578555388966956198819008590837980359558368071624869682197554571943757027058240087518492626951170941350081775030199872233717731580088650717401993886108174532654047229945691534832182388675278652558700609373322632280068461444230854412743161328365413112351872017413885047140647856982217244984488628046907375810550519857694143194827436998000629516944005905757087606795185255881149749163485558963414826656867714934908961535198121533815704935414581221932729924851731840364931535180753101145804617214972634137841851718313093018329319004621321629105070460476723354016297531970052905314647886368889729871089849371069479451759693569564944343182203663070746113100914848342851754888099469297943695549058884418389354865975114428451953776157220664236030415641143227968183257399923838034926485024014221589421142595553003870711888802440992181340061090502920553925775690460042427061438140451234585666777299991576185984029297967327722655985122335513687441768623871572173744345376257132491042641434863212940313878795381586594822204475233725610831648820563744746648720772120719178675808497218652256539260539665646707199653177871552140845501361779081212997953108233188969850156754255470704164297057868081970791820921854515534467475165774475109385003996398976847586446033357949350053308546948963983953920586576111152731944785642808362488658303248940015821883552187719893391882961990435897533170147909508688697455274272489410682215665911109541305652299494894268905340015886229247156203030448612577194564692811535071628884723667248641427624720483737951970102037947838849949206038734642170272123308373944166247095788207609914743928504911010391968726256935735019046178982250453534570271075548219818392696936304025555236225437368550279006152116656896675238967210066404710115948587771051658064252338241979505276344301337511815380899879098796819450514486696674084789265448417338597752828136895096328058682018500257538615059943198470955063467912649545949486434142685448584583025407117292870497134916680019122881576570551061911223291222387360682044299546739540035277618701070322346388043219700922776056647516541118529142513806260128904275525042094135237689962651473193943592395565126728090857019598359947659839513141758101887017493179287525504119914871220947371020513057441822334843603993051999846419429574485159292424573880763733567785962681126199673032275029625712669933137381872186626685013311824444910215049146632527029965842017651028868034219582422729080962014974991633271493076761573534753487051658855887648330073372816841677674997501786640807270242021142758464261574811518252660089109239423884434555250844545243614736698046637066219572167345590602109600866534168943079188285191398237977315423818818436378179962081186442984647782769988862104436456017174636780361152405562765567226849672443652583194038506447181168055036481181339813126679116449530746468451463277922721317738051511137305835345474956731867384222556370532783525225270299378244392468166607418523314665719803433263160455430474313119668731849410833296018771642871253607894652970551639177538242994345333624906926917803631862551081394821395202166136300049157762358325711934109667275817810990913144854844565743708639518334265702829177257387271398099640352419576877714815264816333344070071119385674963613515695595247697689769529634978261191698116767155096943505265019342678456488955544950771042754855503971212727719446507211676926292385933630831512423707917878578950540177831427197154459010842144831228842770730880480312445203780004382204732107898687466228928714324876619108059020996860911415618214642727116796338579105390656337684218574680850243464903672388848031111079155452209837227619024153438527348364028227160780254619759205085240651691514623516087221988302387883353696727566182051122199136275986946961814766719948394759994016880082925674886760700276374031982387253185495437084255474410334043697251007946632346758405352133129625584746207140895309641859203897139660942457728726842372394471985213507260851470415579571099454374150980881144101694959658720513202739624025985215821944854508566042873980340701107620593623918863289788689815536478657148492870579465179823344796080983259570748060631520264078711830030701818045902742751967632754809426609796719684470629585939855007278559859134752530104759741673989509318341878372538027335094546048073792647589060374944679441950281549906010147579518446211899227240976417144144218560204868938128758491853526223387392029093130269055278703797552386711756609938640761829234570103312196594844707362828515707498257208640614592548128132292285416898568650645632762407521784573309276120620454927470080647901291095729555962083647745023000174470190839999749678245152629529350394738968390872117790758697093586976052491379724424842174185088214781778598635834109167314996211494114633281216241722123627468140057789101668360165037627993477666523345340778147366803040465383518363600635434037131124446560479600178517572239108647807290710647603734308394898612875026776563392580425592187060185680994235487498105379511290864155706676625709946799147435845465562182575803524983603875191973884438997762108340660618811793578483566933679395854084549275082207442305635925805386080958423345022515269375879772972609511163047116775156945356393936333599509444582526250095831924207078636874559670263606406947739596675427554793649736594162386271600442877192842150192777697062199968902540373378586285781246258165812475880388330166549763137086606277976151572204464143373290267905699609779333035515741433584378604257329509384319461778988222658177655835872498495909962683772009530808547029151707471266343318772077955771597129027611673278836140772621603904595430657639214206318561779004925118541909896316110459588260716036858288280971931955778379926389939714628464163511743414791586411581677980207215953176068391863467804565693797759830177236027160377248941839034523931449361977096150273103009160699794541922882120166958047350733628503412402262906076707701699464293398687486437818973928968268607519296894096356193992114365587343172531612118229987424569202540502750604835163335054872580546191658714700923906910887538725636226991735511012731824768077713882121422486773883305955164390136184802118032906302690202209696343810606565312694353168691118838856053459814691280711555159484074639738264992898147682896301825127235771066967105494194343774211914932453096196018463463822074084909657755854382547425302227162228083235295022513643911093273404117809597654648473182395825376199518159995761629750994543276089421766522088750113067135329298327256635464217366482966279165628036336352719358746167837588873458123398187975726869847100826699892680938013655706778605940491686806149504658589894021970327794923850411750443077741764514673169550563038100316602295913165829477865957624233345595858669872016059377716691955711772361062774584106129922445218725347798631811718207734735532713435632511805610211945446229676217850349226715347347261899245829080535078733498549696171377805525636062395426950113034020901029973913904876015510315752472554331562251896990787161834889790514462187064288209046078182514922230504256578718749792654914241314866110743961807416800976310358630208324455917205350110361855364964128498376367657980496294374324615786344678166211818096554514661441192468519474802914967427549160905705394751258395725804850896606140965772884336822328630456632526784083159605093284134092611262274037849351815030124767291589155333929031501439887595438899186586693241201841046901200287213113697429918289388232680768595361568644735420416515650789851076356413562863160647544722965933689313859637171497157462696911877203226844668782325494833285984950761936633784563343250844392530873892261138006262048605157097153656236087666488875809603587230538807995833147759135814228921591815805561089968227007194990515061140534576216440405021504301897083112594414263823965156414142841887199621093678901166436583121627665245016648931998088978123404284181908699434584181854192856166000308403276587664757977296422966990122594826579329145963634826218452248429925015375674038788939790342496716456293021255011298196535727024835923467570744172827148671331276971524997160171557229482737154318787593370152076558726452233133271335816993427746266478598365219705495289312203906501616738621072957961938834119667534390587760383629182368220944655758091227416075555858171697599135088833290715544069699437361977541754968754240195523755714826046255955335481643455381345102849756895214502360017584397990629908319229808047271373260460803534949517029600835377450394092873003373635141961570492000949459403444744735839739562896844490392227089098613768481429437624167852532781495365236778757382394332656314384992825497388667218609887924714612192532101251182981244448935173968402160515496108033183380058091110766305392891061953880448500054449390140383706997273371451989587004799333789870749031580234573073313675652825423642446221022758184163467251436862628130833923492542211088695337420068624372768267962279091563690483543974183476973708105163994158690440902578048408898603623076659508732736447944149810444827775096510875012899747260157544924056961161909913036328297438262285046228655199919151018876754561991709724322615911198994859991280035579155138417213074135520933167241575338013937901870483247312806657634081721519912964442459743626482458946223266974451343162124732642443753140170034472586452957880117148236851048210574182279319846534281849889773974642889998668828320703313136596826998146914215476271673380410581641833597704814252002068783631842377819764552471898788546661147081901992743374383932290109637434166293890146433160189768255866243431110130651973203415701913073380506211208367559978743488713952924234200114349076133961169375470385667168594565572827964345417713651316186095340220265366632221766251870551184364204263919173421183507281096812029741220755317705115673616401579313255690767119374623157376586762028316470130818971724529664710928064022334257520833595506753330212868176079581231999799045183341793562831128878826414870173670629699985382842508766511361278335227524053617357360315215756442864657246444376166631571655760241684358017019476586849704442160250352975391245800419518186328787635674768317716969004540972286408417364280659406433846192536731101784518978369154251854659487834963074595075046191881918531480084389491816489124218514908187761353398079592863728881697487657639445275770595174648579136896383791633133013618360616691932370667468329047557195742629081675758419570262197331223576295036758614180946044863054023613352124573264063863703128124188833067943645126683029284579154067515449858542545755502541301092606811750737233925280343590743846843538412144004486720244718184233974275770547022946574855231232790601292026169667299594835519809834583190774560740186998959321902708907145547712527835196604502629844809815906357551912106512980410974829905412838348667097070506265355084985077935235459223552000594753622679421788536822455905006491430818414840161618527890047441888290226043551624606456900170519225146987241050529435836750962975486225480822499012800763507184045121720089647879422751518155414108660247714305679665273865825177704090541355677259636128844825787172977944939573094488811240266817795599985574489635727776418398430302409705771256509666779473764504544669841679251052586661549445982895533663173883563503314769957940928748864795508178543961075936155885997777613907749474085177815415937323482166336900456309362383347155747611663477887187591366756198546656976122608091992362728717164998971316245131281629536061664715942534782451979380250960496770490321411303602580046492925779858221457515053397032699784782994612182323841702308244411749404352446784407896907553177592819032528634616213824480506534912112000935988531412666873348695900273503655908517835675616504104364121222943832443417396937213653777463230064734255906025859341605326692001285626101146543666272150119439637311070270953951365161688948778868463138151797193409637167380455264890487209822541531441775489535630874026832785420705791165996266268848234240153114858354487159168601639760906972354584285308328529829468833135545402020292108479647151000149607524335474772935975348542549885031033190132443538757225714723970469978134546855210181365507782997913001007833273260807825994357346525975395040172966462128467763145613097179542467099132825884714721652981011343276004197077636477833230255790818996337757698599462984670108744246263894310703375336844724802542857822160591586521416168034702338674521763012280430485644664485472639887324113342888719787770792332110370054738521945817661992371066679416592595342844471079421664165800286829405902462382045674345127134687151807033441002426721961481063475932702804564744838254311742204013140365618596817079783943389739364217181403919171384516709731782849675608441373051041181545753591827574632142757838037120848376476869878567251056225932316048377937251827299530305233980332207916609299834641835534304372357461679926835083543004971976743504778070112174067244547857590775147884501296037273521964283871689093365126584350339096515802224370497169693728290040150956022626468210444257680103951896637159003797923755757435064245141343829137317318654357145285827313084971154847322372285716486325205053202963998675520573632743698558080533597854991859472963944806108095993656657319343361718024149320744845068827879365720984300627176280386065046249626789873578069776192441367537918716388651938227533511025175896928774074582788299775016030518448520276567488099452878678405346975533989594558599447913127948458653235968684741696631667426415766590563080157354943498993714791199526847367042725000867948811434283987433252069883369484433297535624893318961401845500894607520024238516723713102142709651397667192730753126659774433504394160342772983327821856070651337226615496837040463135890617804759308196484133729075642445069763316512009718172609076933391109011426029707233698954539677565622020528343842489554302238782696799587080621629363657802259575958876222721698014776838071483514979495677031102112420640998587633899750823887944673866638926280241792008078640361600368654507391241523467308192255107447196958978694716405089896244722636057215404069830469836912997697757407862524986605905546235789966537378848528363493769596499703967386176780386681977551463400370050345217951465314626328928272554618278203480071950652008584021829855194933995064094369974275571741991016011515934026625600211941809426362972417838694062998316573443443393768890651219572972438058852353756620445432139634341738508041528801270674302278083044522568258972588531927057478049592926143213388154033485439458098103120276454331908748321535062513425425635429090721843880941335405811587858913596155164391791112803025961570044195772244884366997547350702242425195997076237297090008867243868764069723306811918417920936432722368467825895807598473944571249840725401049510278054414264561078589810620909534094468999822797641846986884238469169744287067687707262169283541744185867855928417263425225071533101457519606478656857424398501500884393248527943939718553280237219605542189124234280007999607115692075532621865211279147151181670368338456650522165416407197130026659951549626342320432390569319477681501313706334827190818969104156485794370101019986666368083423225338429277642906880491551739529714227949218907930868663256082447295519923539402299029451119420262005186029224043907468243954250882221520240288843088772815696024738766684036479808087261054376678790331408176711117771378256601460857249974195604838109151847476188510044755184560708659827747753709029979294783406761241988489290599291972201649979508893234034118110224112321655189491843240011943399819557795572142414262519336707358927434497917617643009771911152334189326311160949437446794264217993566095672252001234730047140043107295000344089420135546166204768231989772617851069744786680747198578995867195791683699578301779187649577281040607404284405127624567627373386677277531598577547615554106622963063815206519851994660730339832493011744803019903648715344585843312409105803624713897255780963362648943115570769744949569194168078627824953280264948033650742494816952354538495130648050229317289059314540844891302639812069535208102765434004468996971525479627039216554101282213630325036758862641947292721185490439336477850435026507373032766840271747561319548278109206251586514964581692378725667342277340371038797207597768855517798222013363554816892785528666096460352602837830772391735434058706131944942254350598375896496661976116439969115887710441398845448267977556753812004576039129651839002116541727741062630221426063314966993628927405710893249414512146475685028516385916409140492389218733006695889990106350545781560888880706252422227710301243250120299747872959317983842451253047121800013773673098968344625725670770377167385482766285127752351341468981620534726360091039037415980959385057293145464918087760011379385347621627525151942429488392853482308968512951590584322207925746228828646973334531017772643548868822722451770182707689823149788090388528414890897459966845457139296148667154965877229713163881102741305200311664472202634382941232129162138328006240694612217585822008909145665471082609851323852408663032085478637163747262725698385661987655687896326806100923071082880185633085092403062019993774432973436186215371771240486444695903448375676185529893336445924025954792558743795675638692108304882144147223844771118679309219731515370595288723883227466941706958545618981789920352407589783166357761115911324496979726341446884483343708823060819494602596334393043521007133654440297310293417787196526935239837583204783081941521359796803991532875077018638644051620615645987410950217403771697736965710950757199507977746089692337669081643784175960926422913708421180486922143659374566446500852325332379666534477311159677184319514217798949859930088711027344578513905345441886046307252464024240951920645159420634257067452358262148155518510154226667602142218760302474946341993230176739757128649336865511550056011385859494335042522910855891777042753102663843057132022693207198879623867230733721636304774517124844664706927189557594950727669714142795648696367523881602060336622875976740353856176339683109850838527667792617378575218687154018371571496765708659490874519998151341722529776997693278200459424492302219664811905658571697040750511313313469781107452239505740813467051130526878083587291867656318083839473188187693029725780082947225769612943547282102577451270759475266789270896223529887548515702681192990198657936802432552220319346457748666749934427447723538520124670392033500223923122868434017596620730519831813964624200884008293292057384744503015057391677009214013244213806647346697881749996082826546652432328301598522022976022565505144265540286603398208188879585521579891277132097549548736956915136402569838561190981362374896554477522467661595717893002133922024649901193115525245168985642140900268435908737860142433442643170282991980648427491554778444284375215054518031353011759205842111262910030043271415112432070867554654508386071649214266828007385091483922192625153682962843034295043361340951287306491733234898992348436799641936442476012614338088988169835128441586512729210168375906771520355901626219531618996318149080219322973794442872347197322523793448101925300984908327995104007260173654858885230343695452212332591574995856160795163263605205278726868488846766423257516138117542228566496270961095047797154213889680607633151603638117525681764429360547116467350021363318742465609194685417941253150036695402730235069570066788520978951409364894026439129428682420246527438307237318169517781699659689480215549949727814565980788272847871858112527412882945368455361230688903705760854602034290887246926173004829484104133776032600436104785479607816652656128164424515960560841056737595036584862627620661671602468080278063283744780853308258117887732199047532398637266636772433778270331109669033833847126750661783481012091226336858297653076496331845971594682228560166877345712440281443742809039576000896232722934729141548146796994036397622027525512394590373516561304192576963155784259576800090819219511037047929846922642043028285958567148695474101810357565780774123238801998673087813015631065787265488702202393038568566153392153958424791070537806630069112378183920888227290178386149091646945196844008558496980049853811748369064096711777394264499563193294805471730479012007958426951131864994425212596802297858359209822733380131316169378005427943191226066407594527989661256083129152938368068100804505106854049029020121912702926429654379755622223796661288420550371972740715372125045308274110684482073952738274012199650474171511382711852160213408777297398548507817816364073007554063712163228479957108156698642758841040579046927244606144775363084473628152524259205082854068863942554917910217785456593941837331574058192841987645668384244302561823542734449090330795269389023254405269435957548027523285461453603642972159604638346212371207487322128246149317983089915220076713592628073993805837567613800251676571821019043275769767460908168664032120834428622846842337196327081059413941717174936337234541242007481864136918241481467310912943916127683917868596442446368727509395289570387465990939763363406426788873106855408958453737773810488878796052011949904532641882546965706544993794971410788894584758219679954228877468910716703438867008141444147088536660023802539150693798187107350108331967894653699617864309551483793955342222554204074459979963174560793914215020992705405697509767297836964500643740266168581970762675495652711005615096518823310853823086708041900538617867460115533889661738999426178767006558188064429000413535939397082124289175714853246869573904854811532511891030001819117832340539200638799747587843226100346480486555368687390938142761172198087011268618425556453258860042397400875665397401124905105332617217384511866857351829402494852119354346707200359971873418781411095138878639535873602510492866886814959989772667447552017956161873185294307045844461909069971589844268601009817136939549357604777816818396251837639026449306074366092083474419385902439617821207728671758391654545207885944878482016588431945659773578849910352581455486658688168496017005739111706980942302199654756120929613003041367438292078376576298786954368179437361814294513314188704075174398202476165526873721449126650990043681578022921483448996042272027776482534697432550981483770582907629185015767035856906613209472002267316464154372591217789090144173347069237306876989441647830745844337164800325984717903715145655523442595861473259918355167248871536581633066186793939795794673657647856540345143116098876958581662172803637761943963159213941952986907440948158371719368670631807278146612778529625097181756732093138599811391642194145110601748285927827245296441596120924725947405704425178822330553232771814140732236507525249464611968172360596738246069123276922203717992106062991270237755780728273620203354172311046302749421674061252737412877264749333344900550906018475429716319370379841259384128828883477278609320249530970302058164089901702381359968400138811633519827124017949766348311653902482550309818281215648203808797776209393969428159530120885386418049271675314102460718779460726933406052370721266907640788981714037370685618532125053192478831637803396271590544271548836802876210954288347365763509122294475627080092161240166496532543800041476562713729248565724064877850337954265813255722184492632191029643835581961289194703952483147676723238386804296876047095678431758248191567910689269412382010158220922916358049776476305794776045069005781657076193952539924753458388980135642319894523088175869761976535425397212015036524416798700341703708770719038381240968760621225196756973449251154901637736295560057736595845396145521080762099343879175044832980244847533941654053144153561919103559830476288930325037314558567153748963024804165440569646167237956553888267151584066763605361354521687124448258522511371198715464667680976941347742441083576962204080318393494221434907998054283888658388365030147498040426879656779438647118201494127532493452865960694555165211076604010637876020639645509148594500341172363142746442598489902372242750593568817066143436296139545911375098840544078839254386326322818205701915615296426324152922897026255114182337054821247661818672198311492999897941723965594964961693487398991557973321842617835941821729416496225057792162329857175032319409253805426170327704651678176322012699599745889105169834869543015097444615682588141149993624802345540762611983665924705042754529269526926094040999629731748263292029891574205332146822783807739258846310618458459112495287819295007634606203078212868456214424598611427924164357545469288878283150013429505485760379786767066091222261319444279586574535885732576177917561955369429337162490801431243217856028134751257377998481504759185554905409828959503003127618520636601697863599071143295374515833502791063503403549936053549624028053985594870886924950942590799932621609845407885618241790462172281826031759256563947529411167969944491311304179658267126410026928220691342698748517882401116572729625294567162038972942323980416476096233512300677942754522050683653990662501751181937804394764548667696194589549263986137024404840401715345758397383589865247879646481554813572168983607038380584815126082010086585748212150750388221889602768375336549285121953525305255206229809126197211190286024848223750920516645626514785931311864239509592900472924299956157132321754142738100373625455257889979911185699036872448112285955893672335165722855360693738173153843032779504273087071453202893191632013406496448739540015378201094064984557559195361618609562736772345863717648232390848782363837345271403612336274884123207969179727475322701598632193620882309795999357313382129591965376662765511660224945591308630991712041363153604354929660175886226016899191266179942244158532892531070243564305389787463307455202141673923979561751448107194459020500013737350386793860270627543498977735629988425281255875380944349590400400457694854119846579107441836198550906242413631282570192847400732694153534629054134533262965863557580657207842334647090189911544380301603453922653643164444397156956321456292905539404354585773967437508821811755986920948391256460955307559821566205471568511775282255211956102950828107068340253966052051902785785625415266768643635073790064759488527145289166158852423125142833638654677359324145461225896999259535601235845635463557798345731399690583817726323889479718324536080087615673908668532271066744109644505609215846303495051216728159670478860032620638090899604858274598097810048970782442935170779800563867929262471331923829725646798129757769511879435927662419001065047471803423321672182842182485853827813057563707020670441794296573040948859187741708169390607862000792137538138171486025848071091715001879317582182164350366145425079299619290301280820755512121353728597395084422530122935872316762345143248384649060719476506676143605238987102565432229421945904307583216793293241942206461790123851917210160309116951131833595706890329121930368678332412204730359127372683214583013886625377802017280731257521108104940734343867695108226586387960255038014526239386661099766682706817988141292462742032391608162434073961723427602141899860462298086248567359234563959716738135090345042808020359219158456187867507338902113053783073333636413659535294975804672875357252707699474287813343748171362625106260871306960524522977472627090937854604875936747796487225661756229664359156381141664376782864962135229170608153816156774916125429234577535136939329154937721588689785921013599318241261855886202694392526888028608101236475352113684325673326402423927694345414805198997515481291926927082832390227994446627216572659903246497957544546610598922877360007961639485547798272989610970594583168082204377814294087880634263404622715072242295988072374374942866180921095284519219522114712687873767650897937407509021716864459845229485440266297800372566123057141554505500534653203203810522339497513032843749250993513706460436306599799735599433837830938738027077430597673697404829322249597146093948627130240299041011155755928122538879417425755106106571924980932549004655066030945396866328888618856435662270722510882786724608178290528959271359124229706092911307594972602834189632854624119072512724277380779769287015631021082115322783907596403109490840411543846877178464610968304245772742719818626002973880533075138070114451473748273467063575923734175652678738899719217530515395692103207259361669457269196988635679079499202821898737666684983897254274180525594769331871739783700704453138571965413329432515029091804456574113999267591222703464519624214472074744746677403428650637772804910804219153776947345701032095116656101313012682495794086715839947379657813758692372732513291331310851795372948093872529600289729498497513940252058566989901937826173956747950194251826434713502523512099696138905206093869419111778139450120197706070560506076511897464841169683326838982451423579318580591704286069674584995714394230842794189398657602242099614318296343312628413472440557321594319362603362188523585769633011009423701517988415268813306787127417920744834803624824923574364271646754388259536931567955852469808203200184096557203525921606927953236128860887749241941596243468138257465019391651113586607259483723977069690800144189400211478302032213159494729113645979212198421486152351873673983515014372025360261104597350457909633547664019817924547573337800214633109938209201360768665015423764941625351159535105194615879894427323304998849260212006367541711769901107491113239392623470370403300063715713356003238195221190923740001303949545991940040979013613496221741273609235247945573133320229151958665133978888375836135532315958948468192496542701102724398209042116426455259778120393209991141341411358447969820027138977399716545050209402418388074679626936454116740975329878486000833437346299471638103538993306619734027366155454916250733640233684089156419698188570978177454802921160610282058739311858298014037488945998493585785203685651413997706391954762505068871753892515983797757184656133905177755614019189171038572413887129635306402829302246990195193399067780200531300381754745805248679841299547097647236728875448954844323970661980639791090107232531247125526041937437396359814841166131879524722381969489084442278767557029581224009547050535536287130284151255638905987196030219980115085516013684207915318938801452252525176206854556110061484240178566700778359051434023619367819453740986265164253306323479779126939460305272913510301094361575870552587654528487574917146553096122232726101917780335612235074264264289640171588366292535097268128686478980368344758708837050457495039465063466962835391641226217360616839310567406134423834474910241544394381204942232393892916927046425382480965991651344545017062317381069589630169409494395495623744495365871350247887476014444480414886733172040186882153547780452760670963454204163241823113479538037153061125764634549926916787269459521550436021568081611043813218831353189314199420439797124698966123393004435421234583230997445901405362055643352717414330262791678189562923670719917690451060510275176690588556402173049918613919064086848212445740163158210166919077455717111662220994736707536507808812746584813086358577074188665411778137518715946080824888913037822705757626854067578830482657608170602683582501004523476038438805081314183286754454647653348340374700158861479677716859195688019779130357846631242572206184897025317393152310681039361784362031850122931260930127547257107877277482894437213728083416395158699245288059687761047755603123263020889231306634560808690618246562854541553925426422587767592783562578326441820224147312006122872216362101747439270528075824493585317545103752264096765305156589601800017100812273776809473011922547723908119185962717698932597990330552688845919134663759532292294355963116361731977588634056308158810885308688802696590947657567632333386038390931550329073537858451414004483920851990193775424816095793508388394820482145125920257524267181171205370834094787074582008938044561594324933135540291478664229490681549420846367380268793915470904225189116503400536321496039722832864863580885926398189468644886238103860136830282917746778435126267361560915791347034787219314017030789029963492117819737999827084122058120034430354975018931832248020296947965137794468883227975651481919984657630037308804415786862018606284748139677226929594045132876463649993303334911536178485923488817326046028943707227764893634513703638631075084253011075177370816762292788366316851331104094639832228432528654646194824965570502037215410595954525038860528466590094378898424497833725261224691463585898276773697485624707369413918960933474801402649677765448623159821829017448029991324168831907543186118036321428475116292666148176120535539873278584637904383117288427916342441608229236095645479234922721110839504828896930563827450045598579081637991992179267499955185014696081398837914513151540085230247277824206791862155432576379125056456360630990141895970261925903696514418573309224482993874778495950466253162300810606492503420701313637523264437857632895126922001749807271138954991234935078469679706597468806448766874151946161154797701177850737275671806031427384890286595177215344059554271929642621161930787872607572483276945482567352696173435826563420870976208652192808739635612882243415374621604837472076125448017225422084745944602598268079079134468564617301785433067981548332403675852323862261017575538280753736988852333742300088226617491942605807870267852125506678155503541018039540661542480062028137849612986219714561851702627586326469795259282177113677612459956802305292123368233114520798103261752044062816513786342650003340589187905067643307998923687111034369344481792712350161499540410176630270564471469715274396456522753573023765495357202123535097518833857536985370649212316216941136824542180043716578985805915412174022925688071224648883632627114788867817217247124522206996303381954771955139553907285725837391427459790600593282539475971422002252819395593786757034223555557061037953336025274936926654035519467386097698558848145904136348306389057429616174618123933866027367563913279007635608579027694672972711613676124737696294125524022255630026124328496737320464029688984669516345034975483210447215300836515959592827110982343992009890672724545661024669927303801603175970687734766729019436627938135174975830417287523431404298989258707477149228124467627173947249910482581689061275252537911269634862714915980625904349959951289585263114642328073293489494724503527933183286404700385763798406560339430454196307928780813444145840228676330505696211005849933057087985924612831229440693521098182896238631398854815531256366092122252944637828764413502325636941524013969009497873569725273058496798934364931914703682146512027145616920683840666792317585354302961365577223877033499992604859539899593851306068707011909618640139171530884101929489109676441379350667813384038240564984483058428842815515664740909794462818004422651022554383507964143849267010633136838377770333284700205173178694255892724236101949610715960997564030252672544314612067763470432216872906324635754874671970621097233466383737252863306789594928767389410695212931665484436246118295829456911655057518346369240172683531669859927088911045782227007022657430499441925636675607780993369249928892120850048778060260774519530242862413744418719200378414915483763127224318838751249700126270999186465277676002123304618100803677478645615324614961305571535887518474257787397249855697465757931843818440865853894839431142601739426795023277283090896141915749554462359915247641505652989791314123161871452294960431062144221951634338760195785292196561144716149267948447226789824509447806182140297066714882507418250564988116942477706801580013439945337011689750755277171085299041885572396432203043046050538191451336772630886512256878601712837417283932108462596686805482203946355561024695065545395260146370020942785243285790498320951271290857851470994510218724432607422338305037502171294901292139645018351533239510444783233299800983832264856004059343812359869975403882219788083514027046925788403848858350613122188365667433349315912235734967664071989551896297534651568391060496964810606866988697483231807907478599921098273838272478927040045056105247838866629839583370815059548366151130797186683109004191887471309231580925790410937481486582417415216657181660338358965341112081721787828622719841348419376636060468243479256952113646994352359533614834909852106840346189039225807770007690449401596329948697924321097673592310222645930667442355387995923327680239138866293860554748499114857507012811938871855262774351095918552543396567690950766223114654947527986242677754235449951327343963746190681373682378272096391301287734810834138519174786606706966007176713452065202480779467366920804186081267303828719667120718535969610339117101247660316108310956212864868794180032642630952538032351974784714433559331565606273396255927378107911893283394880332800814236694368879783938588635760274833643781627098434183695025619959586632620555838635392982317832111829260931865063452306490006306145885527799145239844034804734686496555678521287692736326095953383936765574686024566112534728026693830971587345889557064639894920708693990090852801141510599087444013707548507335290641331264647355102247244985466112981644406990468854532925020582450696853942875386366058536343745946038696088083156493961779031371446832899580123974002689386393478212408206615688962452581149330984882379889332798565515774442856046226509046914743203413540094584756721565891793960671406530944720325153684144768114995433424513784469656207156750780082917630696802657131416511686382497168755097512899288864869288673486206268019474595272550483122256106139626871867319772792389123805964395080373625103500144763916484578257021059215970682251135151500044852341859700462606232918055306982788861067497871970870156593353927901070360386948489952676569043488382387236992186606564802719701767274597477280057883651058650288735988244278956543635988854916725558705381275767734313968687602342223677424507226778764827781926691882210884612835199988499462594484822481221330918907487513710867266043267611367193721259142954054462056713939301504812366463905779758971780750823835157268053721987764142034649744839859430861508095439143937094475275465021656099969021007676257249762440882065313930002939537643580775462384809225520735477747265628115029561914380696276521856862488897409812484480794107410095467710776840935757639602484389959078852084648359093148607786382430482656842171013167412321636639321477688031987905871192294131675568504417229329351049698318978832024383948738251574756303565095391852494428191654308737028300821600896861521328826647476399361573298418168585295719684659427042009954193255294703985532983164823618191251077225925674364242104182474961238093577235485558410707972431268433182582591001968701150385124820313954877330793788006670057910936371847146274882935259294402031116400869819863007066951099645958781244953297433916869076296425151859446447284967137007694737696189229542145401532241846734725241485825603628187937444542797644435704660163570761354429859404433615260015618099147497784526568493114634859534012029211317254847301624691422439666358874663497753002483859021094118652190251032197658955558236413964534078316763111354336656808068061696775347607630881882446071287711154880397206376301550791001063887588431536503690232627092505308274969007818468173343413352835358270164927977342341695409490714630447136777561490206974924090477022539595896334035009833931971815414717406971299067559321938020036262913173278638262798860975171708865381320901131493147960333681297660982747036635319105723653173518101823166758079452272476225019946880986671523770566845561049468257157778349693124993456804701503824267876971516608764036184128270601200487987495491282346450734704549595560099037166775783620184137013473827184259973286358869732591240055693979035938996197020985656903097727844580614722328274676782098533067659233624603854355563280102217359950700730162136868107789679033152276891726192427609315500003566051105811592216367702389218083392064463251918044561275020598185160477150360904944738356600049500972969802759938598418311234181340108514588506075688829108852854397660913905124521103629947976522775882154559241704043429637126456344078422476093025168238727817235344055817577282760068964407619116684947878671923769295559260935662659569828685604608061297733570620038747351381304341448183658179875820294435522721766251534558998415829143711135780570231080801234129147108392608703055790681289221569954761069791365977107680654154363253210303834494497487013311666913702629485041263249095524697347239158912324255826674555151672314062047298584842242942961162342728080785189610251094365138639436392784924223785483267085112154014256835269747847445400584839613924648944799880125184389300937913118482265415163880106895991914428817479034024051327551322343058612983600443860857718907257647638808604675198420037587682401520940888733925372588437534263796694008366278457145268272512490478157534897944813748672746160864615872457353506787415818922145424516590119904876375446665080596421204374007491678541221224860453480868280934895010168633301394709074307802754462932752389488572290435802276185589485879884358137952753194393389111968885241698358114275837816645051852965334139137338273746332337178495203218860488256238793108316583608655424989680840004626122994085066937992681908951013961626551292888525305587657746413046260127385924253169756843638297853579161946192618358176616419862777522933454919377294201234385647031905466217091652177509889600146273939084885562358718595377677376630264167066130397905799320228629239459174283126022161076844312272133940527013983351891909193840992386402473482405901211562915196709546038359216997033348684638530156626764210752910221724246591965520169623535192436229719759096078240426172687994381354877221498822977184728042794252394072287049221686518729308372843024546228818409346239587471980337625992781584177322849987411838039142998037863451591938630646842032912312218771419791983944993310063972905722977995989561768656050059655748875404240185725925222836949250346061175300973505351174638074969497877125266996808991046981629658771515840652040066250509744111650262033589197355909839747993699962166063320882033922255828583860642533229445572362090565932176462967374848145941114605410522276478587586222320967593100009923279103842996582882900605030060307369663668490206994469204886453341179153125431085388222086423772448381508790712268088745220306586911431031205022507617393853571312138511149308352519552105704563371266714663171311056080056538826549675379234700081475473677027698306215195159735610672098456979653595942734117382479339728729990368132279512238933808478839760795144245474080370547949296835714754510433978859003983627165037897835081000528667084372228602110429665219782448862476441715612591460254318627921890469436755290739160465929675565351870533187861254480724144620107441438056958230009509624413178879385605678596402728893815527913075118456948275489549482967667036555235014689101880370471983790349558727683099083071171383847446679554505602251310151577454757150676922413350911787979915887651399986372090266495094827228469715635969301160299281511777064178243107510735560234034793437540500597322049223803812297311245621975674215436760138857598872260418294543847050917261782591542561716339538218956270459581940628860770741410604200139076184900491687437389985556906390747745192311381193783141213159761236832950737560166439151088066363827865098837828764012764717062133647110677946403091668698253973611435502198469533666776436050171103542036859280715526200066704258207114776709667143466139224388477037173516539174281595539254017456007099657783416306588463354008305365854796578541769812218565189814529736730576176928073687516813383696249916772796119956297716270613280050068247333411738944500260226340099826415101888064393874828826114641429550234491519859239595076956650724504863557822084520173624192930838545766136288077583006043737501853332019344716595528997801541183625672940590998943075589782813459056876456708740493079905918580222518241856762992072212123034981406772381162181899864249491614855684016205071272527432427784365187147195429111212635013047323231259921704203781298036518359063632141312018364124016359419604113009376135784760945670696804412299858381206436629543717205540452156507150899879298178698420069936468221567247926784867687042733824606051545902570851116028640465943822931002658650999267370469026160955311679041635007195158433552310131025792787959509014271434652283539386879260053364814264503912297904389777959164090496858701398764688422347647004034905672876759572291366750328032779785420056505069694570296854738663213464527731179560617810930715155348878984808595792228227192837659625237477536965511074899856124596422417580106483723996753333333197286595027651113437362053917658661005102221582618053740887799496916438052512211849282659139455376450599181564718643616236778984332962749662743880595000393494373897970222871111076640945065726306379739189204052164712858825237847746463022536016179832926228276688727120847068221658965651113426495837348680915048310361037381656985738666660961417126009483860263834276871766166399129940442700208198317282911083226042283161613503994240238970731433843615086569145235106509392251000212287485970193220287163773953010703798200169134262127377310199183432381626058666709171358691870088260323077348380899786108452416850754407628692527683142337111445363596529542230452838511154606398103136770581463133852784513705699412741719127488137277128471665235238909844930008249105993493367192606798835089600174432073041952711720783856972338188524405492258554413426118375557281672810977091753643175425118090951267145275309275841873225379315964156060481392996198713337579464812281308377085903525455858653550070891540081674441543720776174311523329511866163708298023877470431214299588307377196904445380174228493632641391330819211197747021298492522132852160381566770445222012114572949580461957146529075235402926534965689253716273424706816192361431502532196569217136086683333890430003553320040544608115758941965043386824561793386926708696897028121428198037408525670329732391657939834143415484907266266699254571611505497315103883763318261319794163404978946020849879090551546688192460668291730921122388090466833850684508016153741664151489278509099208024851562522540900917781432713732698107909830988695735431489101509160632071523800794352629251520898548033503900382682878854950450956974257253904903530519488942665920149815104678453579583130517568685323222796604335823115738178276963637044587379456291252884292793906284098088387055957401528992026967789967907938916038929182744734391060915120271173117335823219617002283225628794037863065431422800115344052267797148352689865506176640803295184983943066929536186400854775597721009036788165317206827617151927201863897574767988171659586602131527927975678875221531999398118039513776122193185071259951830764644628640204559248059658678342947003456297512609213596092726089584859801667666588402718739575997016447398193422308019103982624016562580766801644528431856069154083947563083031013800943232540118013895826760517567413139438613863183525316255540785345055062095218010245586918294173640271309304171651926359317526263816699579991789669354100972430646620331851809652203495023761568773717106688171765956163806125650348313992377827282987172156801647325958631217771058594392505277703711865825882492045645972848724906437701504182382381995526724214534698110500433055985437847701578809129717912024727313674865930640503828900161387264422576464895874490374985635724443259038946711768594495939530530458362176717880366307169526815380146292149986837602993544886515412340866126321773866425435848868053218711962386432329480832479526751861260773911190444968181479038849761706441662802719739432804873824313550520427934356370807302727319395776660437187616576942029973009016089058755911946697823333812913331624549120494890294857148937498640976330967669630838736492193702109513849064881275114307426938888445333028198640826882096955136195890431995096257471785438965381677187365931946820277691318284449691601209540503856975069636759029836989063999662269905206443802595154676921593009302590679117665658338083650776892478035666050192946670667910457258690617410000232386086129434969009472893701567854884476804802525662883616228162860415490945741204202534651722551705556804411518624564556609868757472103198082080677513872535093559939844206534071580281655859417507741703662596390787989148254218225647571123575871574121337092260712838167586269981787028700904271982408939137717916513995577472936671219843067371028494775953298897480077806864542200316626147793124075425009912893173780469053310567805008273679881147442546372735269330881860704261924105674187787113903906970944561966657400915102726349347029983729134487301922475252687510636562324698828870738765703179254468074988824378063595069092851612833371005076064552564831383082802041053728039132052358179506091312162969940339260977224596657304099306918784952347716919057980456208415315143649945329803463957168041289223858788785852142659334244015236861243959489986065121012544370758752522484145036995290498163198677325920467432693640253386859962939264662879062422921898427210836445606671007989521898526904329386342214489906669250382874489988726575030265192686753257744805993710258143015401798807233367612935356495212111201162713067929496351415903435297502561395075498860139662251888618929013587755103867871418951122422245249563239939128627646226714027216004396725732140625515645963099198308481561541936709701941573417813562359836024326923658494423482775545471118046155035715153723130842284010242783114248555993057601242095773297715052894362617691689844473336440561114535876239771827349194144607651829033325945774570320697490599452166785384039894868865512002046366402151493326303140258491842261000612037463762222531874843204929674374442650408198050374831863311987241973210098840991180233489147529476092634672688000234102867689923860455000087688973557500129080068140693646914840321761354175832805405291687967557340083322495028481867166108861594430420257551136191132004796277351754148492849137497886529796916804931818406541727519160104580113372668458217377880036591939129599019941186777873591829286546212413775413547378750438800921354986700292688472942740353901889428512749619337848778393468030772529520779687479280509994432175063808265986545957266834299016479438385731973985625179475238616240085716986985788243444308287797599585922290775978404730069107020778066465241023441671679955026250265172261982326572753755279262619910878442982804960083507824960908995364352615880875480608685323778840882001909316831246066336315144038723522497059997894148115402031420139702725553924944915969793723347533714409868199663304769741186844512945037739956290022269553789186958454734802769698697528717739274086627592504672858690972218016442032684986725933776434224265143564485837684689567925235179636907618267323333139738112877581224999275315188877307938893021723723471805469900441962512268311292668236200474938962432901672440608594698371073756481237545064745328359816341023538002702859346652575341818143475586849932587632922394901036410786310954250963255593279988305261729748279281852167398500403650065284029633296990807230883389650122548050703226637638840122742935832792084221688328749959851232216894392209647561719598123578486623226953412862201455499758384632695369766943918726745511343597572271389737030036057984997677658104655382163092512840570114610950639219463729569454116228161842490208254575220885977081707481547191630743271957909244044601347790447372098509271909034456407995370858967585065784647315473367452251194033758076035240542618803274634630565715273085173483377056556851270077857810393507441461667149835658434915108505127400388317972616918528567477438414648786675596230557064109062243409528277043513390030745863321930996279837565296551885053870279955030445693069587486540767509383636251899044748597366058897524623550220204524790837976092203723172081461727566765514249037435675955663277815654981819663624992674155228411576024687561012721936752138627994753936064473577693476101580958093699454297908483975207109320552933091179713035463727131573363065536344658104183589986725353925057798323155893218223909249864791337700514004517645313338835841462410962820751292853078207994667529146329387249076252645704092865799497460536204561356688893802676910494777023612642428335496422192374081798562799776225684148227299567938260343092688043776216983437395973688209055579726719050357622847973812093793275805615830550611199455151698924278214557040568982522373339805852553334443004395096064432355314686575013620920150203888904717828325445407450116424999452054515785922891726970881741854064303033098479116038476230828207850348641474034733449140790124424394052839939782905722271607278598894203076723691185337289760605969297967541552858800455617317213234414648490743324479009405898014333932206559188215586884053319652214307284503510178081353565474319377098292565901624356814586512627393956542704466166098726970638474987986233504275896593834082455600680213553879138966691018013395915436254340341441081701042793489363349501682148494825556185024619268527382698792816871042174966453978558361153203131005599701219598316584211220578289567213177923099501255036529288289618819941753602901606840939253803113059065353475101500536655644335011069866531916804474965487653717914607275160079798305222921726923373369031042341900261787853946806590051655059469063567010015348592566974603060756245822549893406252504499088464631438320502656117405441587638585315385065504321823045066157504163762219676154432641534070805208920274203211035214960190061207949083064753276096952566267187271870144580042072784806821559499425575757212137285905302432224358212269616194145887610555503954388931572720182822286363864322952155683745677464806092462038474882534609060836275868885230336529136921154123789384375023597399791704191495975135885052498417567862818920093993980649992554980650112942788693494346015086274419514268294934210925104196609597392742738435902553749858324903278352615649932389966106027252308019927643778457640985186027952831003454155859516528009686260821153725105741740895146681213464639550733108655038306336520576414250576907873519032229286797056823920313557989701854335323853623412854523106338008394564858665089608171656560408888239907089960385829695819612736224454505660890053735589260316768357448638121427967896001245082900390355881296744411834949933007436635124192901568085786988964763322766666575445642856040299983394373929548031393349504340187880413338739160240927472646231242563516924828761435803534566307840959289640952274828633364119208564406722919963700492655099238648037891301916358515827838387998272978118951732633940864578619212464439980320146414291860696584544946417084293824662285348239341068191924640625759212753323776369401150628696229415534119256803685346528829789126867127785431393617601178251972501870985074828793738464753768903543286046603114325357230581649343906913007280325184950028965021179078098371132213091701776353945513059028769562986943526636162072459380975532114800891184459670672914318180757719436889275343906407421874458638257087049435121320959898811625977655365275345541946839657616084686096651323507167729589192683949832763394707352083613122575390843077186236779987225404737885180340755939112293088960141234103547832585484354888102921717755617822350495338821390142211277699136524908298185975907001220276478808377394771955224071251419105961955376553614021054848897893783761632873697454086021567540399236018694065120548917284295335606413704465790801529776182421899487673635922950827970716877827190762300496993519461149397105293128659098129477149446966845579697054605299800288267791650340674901470568419054146701485456729919538936227955425612762538627093825653165217759276706932194176334373205892758306657011997638053817522225499990515598270019721461311901158406818135027903346411254487943583216768782063599828430404145455332126973390200972301336771520428472768923274699433624973623374120207038882953114243367042718693751022721856604349448969419232915878983284121895160144054229391223910754006247575917245842150666048580511812803261219773794233003438582417091739322709710244496810551496584959718569632458148535147557177905587310594196500051242306465195540997836072364847734752881638542151390649961660196012792572899700073553963448708291393888636571743604326148357227577327274139562484316364096263991321354349604254618206447296176780796608006628197320813318295807125384265186845046438231664796002311593898213167154461102579636515214529521103881694922873051663278874684472825507718337057568350762847479640668775867691597611888859943280191674289024239011587635316095445485723236300855731555554696335566360519167231127595917523658589729718060849047437739141893272376513494406734264044459412742657110810388593302048454861284400570279838702681578719590273391755259502690929977925116894228406054412759700781182361183008371504524838536074068115152634065627591188647854890439873691048031823312676094504192702246601992186563073693098541236661401130258926932722184090981410161783243037493063278714896729690912510274628880300442630190451020871484729746018568018884456438319872543865783541587138298591057664548325014113536053330125027217794024600219334308068480803626122797972651327800192600848435682274246807304257052402253482408107444050530802857553939567112159008101078974531226904097105629007886572791622015657382661065985424953670591409861744743465010437641413735765259626237931376073402457588645723613720441788747088233131815152081828562242457717884460713181980773493921483967986079159010426032056804840971908104891419152309836180693620002479723164323679862419210523544284649800363561840403760167781091634952932667065567217284821842991779320832886026304418140701708694441655308931695228017605135440041872688152816460340589434629898197527497959502754704045560111370816738595724978647840119863343674142841523079728409206003494578257746400693816026287075105041594131020923080373550857882901230124245371920025610522503857931275688680483551712329159959229389294385090768281211474565963593384933996588725744980082027028682201770457674107797536121154091957435429339328185017705077943505914985882650233143033058136391243666540575651724139926542958121545625565601368875546287755746325126343380783492522826219486934285609068823542904428188666189924240508343018493936364995839833938972103802416551666016670727146660190793064176633825010096685109705384228191396554460696158171682929106280852997785172884909074704340638353126855923849710961399181980587971024155089947907036179174179471379618478332934226051477699498680102758738203496945959663932810834631429575480205272663591006701550350519267530081430206050337364468239541617492372171255851251262062859931162185295737938801793010931231066640688329869575720216593538788539960169670055525617988344408957887316948770590959565291968092644123746501588862918344221979210553092488470503442642201594264445142907142030209674946038819879648495350534636126842298952829515012736760445879504490434796340729701244078128729956625302049411688417330392245727521823527353869003487584940761602607252967804713519498816496378307364322857395822805302325531343674554109304135329576780972504487889603108113063582648169232117186015309852545868582913636655291061056919440818356912516974179228924420502675463746043218015550640885422401738265966069191917591930650130933723586421923691688169658788838951081210333230302833730587953238739357752743000462937729703910636297201210710872215625094226196307951760053291897928357355040960318706379199017332850867155493371597131783922679277663038428211351283208874007062491879670069216683617306578779623480272992048609071318720004429813665556172456410930101937918565184088994694209045683104513780180265855652196011374493346413416618888334890348521899957533116048449882750787383048466960213147322734994735221769566515666927893084662067554936872291328012446271360124179315406789311666359867102634449512173300408211226612402566170924619354645054554316516681738113901112355404946618438938445228234040902617587137359457909299448340732161874169749062086507481735386633882755096598828857007391767553358019118233133500279507651630458541352494440519957889645097914189319445928953886124566334252223194191453115005913951774041311665286780695255702426796115995405101555303837110805428585486001874657048889544118049432067093357897572537130342049250432877709517493910003328606326488499808308747924054529475299660344738995967138018594113609015874578352778963572511535005040249021568806004598887116852410380164554957876359196347198850080674947855295651316469957875943216473227260533832284727716037984813023643197875094704449529397767685167193304371222235501373277871579400540228562292789973637211705409436508534705076136914496345085311937660397859795446468957118207063526935680731698586979244341503112614955823190221112262271886596506599908727974050604231539699969100701055115442632657585110396424733851994548922275963996838319501152470920371501576206532510457390672147235471647740863441265598663434491766930371618311152439935086867021880854466727579156928690325360713545121507912021488492707077458248410026779324328223122994005115552885668040267380944716056788924742317503035684562029313763030546008436497559113653839138380258384463940816516680425074663433346150071303575425704918768168621186619402512827927152966683352717962945883551942303720459403247934242610075241976976305360240147721733901173574392397147009639726666193793353430893657630070376463135626283043190308766533139976111661060760292309125687845793363339596196345671963170668782135172837466632059008316899712368204508365642615792261446567274046532960074463276856248873136217873445575612130883601837871151293681551043604137289787053907163499179519080869918066764795628562292490056303587733498550218294351708201862057102759777193947575442890142622525343465580445514370293215836890435207688252633032103426798980119762391484062528320104306961963989813216332511517985745201114727342596569410804033790699886803496262662321939199237982917916066292946564144733959908200278138339749256929761899413870065512983281536577995971947276321287141528259060601974111557145717959089056749038983261763190442779835540585316920927825368581448223856964116260719990523633354819530424762282182816194400118813330153839369799283586608597527049333649566628969806416084994562195220324995451700552248675088951362899038010287516618322093031308201357160760039541271582547529091979779915816962330912181136574375152089992567338233138489149892131280603842863364477855174257194216883961771687438504982319610327425722816484790902515153057229858127439780723360776323940195364655363170502693778819525946707508484998294751864643266920556610780566961421556386527277076402063258444888953560682928204250807959020167799625629344907527581262799721348055891278242536220790630870246364981200056112546227077209386766764027836854568655047987652301127921245368534638023332873233267271849600073132373282055233673861868411179689009734058271940164096666021542370621231834249954666215501891665724364319378676282342992820814696207187004552435325525167692199875230061453849931535404006564191889282672589904668139204583394505093822514450450964025831007666077818739903370344145365756987824381238520705794296808123537085700912423253479881617537540523345298165962332190767413860770546533189797859401679846198772135683054196711207213276326241824770237351567257429036264854220991553061783297641279105460769671136995280022719689022700096726954131426996791383641679804853239211710794899419608850475776576573769440217963694434535585531590149195905774280559254986348660875178117183947520624529729255144808892244199299232581228583678573119864408859013608470045639561542637893253305208934282884142670355114965625543769724563916271261355018227274550528111770846581546749573249561794024752997019237179953182448907755684857030836647825219198837662095761350288346901575854399030678292505189735264003568169067856684008267193822639573985386289452720563736149137159054269000510456632865323813940816213554066130004731667531290290191959883407228947343002479290796996972644134348038670234983331398365342948015676016005339447294799884936898921559573525902471376961112320876428822338409154292320562585562215140728561408482518458353249660102759736945287376349375898357490132126440981507172061228648996149297807349455518135410975347976342310194426599352370147036058810748709486135847502334455438548633415577449895830842784894675308148322653348538175716992412354235214297758334422904115865164233643229764132113675043763297232480363908616963272105768561117806518046078270386022482288717840790434708359191460651492803751412935008076057303808737832656423568959247002552093922765394102425233002058087940703763853190578115000804824831113413717443752277328438673336330256580995846176318124287778605201444306660894902400883843181441398859745359428482982074058407615768487278626873411108815436908646312802803851616478330390820733068573748233985921661240586976604409454062117868124531439915880494131660656626084452596149300880110530009092857052743730308791150281991806155631336065500824182951650156055873067933799917177236159447990186347877426559137355326324406656318411111548938909745851196241156287363610328972425405578566590831383751389840943872217825142794954565722693282227764203433210134491667269573910481043577789252373923787418354205704626816559373895050237959528330229121324426218647355630735993360743995759777282397965895739353170576801394121224321147640842538910900194813122937987434526440206030212390192004022056566707917523964419970296513040328847398378098680311373316408615578986317743590426079189468786489047069412050897102148001733198882167301950467380862486135031481385485199269536656989061546397115628003309973542081848559946582793491019417801807078204825332194406597480230064923831814350737019115246088945255034084880028491339176293115239298555827933058661114911629322471915544160080978340563054101564995120519323348706301002271006978707931416768175004755421005405270285933523946087462281175105763760662728500897619295695303199665895212912588671746448332061126344633017210571142910937593276061316050541923150365488749808180694709927630494079865160221890391789083887091631826457599977981910916213502136888174424757178241272011774055587356336896375753985039025978125357281983296793985015445718613539298675616643571786112670190530470379807815300860627172761423873276333614219459455007563412745014591690728892841798488982741466465962032921523890528752318115360810459874304963905988089194851478958808611408387627727141705484478438018387596187122516208306575387648229743205772896580909911804720109653394079922740693920056650942887654166638645075713529085039064297525485302395580612715222107088927240165419701068287740588690308940922721396177177855717267484344256231620021321920816723760123219286101042057853728046844072444043996498066526596893898455923769078814568766067582076375473318492532809520321937818818838997963871547134056656066491501609738796961134625519209926219976050222241755424461558733060654527893169535222071396907012993580942766796217961381098320171612248119117854238826991366946472018256993484895890808270299254875233195268796509286170006327111030268555102888360051621790762153336508291518918339485835953226052986020689822165819618318696877689144279021291177387635538180946614927060570120463682294561286247895219489427389368259850247516070929209609218990807923296730791329020483945843696090642435027538148747272451151207955150452720673695268684608735706125981268328716201662959212756852432463715473410102438451997869018000385048114317941307678893830356705740312732827486334388306663301325538505283934206320153011218400850058197692944118096545666266393056014326892589582099474187933756443070552628480897674100534147934065426584112886661853223349013399852172606280754555686234842006909998318983474554354671334228370640760607983579004994638644941195301091555615150193436012045672043337608039254231125593136555808523918531492355104320583182495275278622156189933632617376495537398651693166213481529501688684489573556070175652826578417271013410579627016907199998191055723759753836733071246816618191041563343090558816434364091287907656256822087234232507449463284699188215237374749610930682916268847971280225521406885751361676235546451199169544609861609052388875903740610426900805593952640903885593939548710567978060113645596739312238068790457335966263977809116533394144693884859008108384551455674267131640709497293256486559715087514173506049849209657961591785333947422695234959848555386200167672524265110304848772737070890728215364810835115100222203608200800087641394577248424787847446648788112217467058840910579626417561629573082019468246998166310688347223799666094063987349227853255921775929278001740959255761320073823364814687553470507672452592950641437055635774596900874329700785971904189529445602518026165805835586608968523067469904268338133376157705043426999837683821496394999338401729253127871983383023183323209306872161767030888660610597267180393011138209083789581265481268246335076685120238623645574959426132428791526820872091750225747064879901786831406204061478396282287381577208380426357359344335516574135872263774605430671616802165090988321043761852942348400895794883844851965337995873526907728176169021427281295803259372575690423136647060222730581386516818293149176789481754502962845423501134426535612953481374042957771433395719938696738286808855452668989300776318856214276919622176442300834382865556552166451040365283936308177503146605181059623349935562269053075919188207172881333808425228551349261363088585163033772599694265934522737430625042186349497479060728620420767657776091899489324210999443747018613894657115068411761158188570341315568315430483600149955208477891003905309318587718931688625355584073912479861480402523569863027253727654946727557300682959241460824721953201923022671721499791724071495190544466529260575281354601929027388700212968675576197441724854749964402966763823927106312402654416694977682246758302247933151411559057025067401324751204331552635478118256758613135777485790539124979234384584173105066450989829223466451178668195983401885021301531065035863458005530505248092157657772861998786435883447466826474296578652336705322216404455116021970838622433068166559691979797263200147862475757710230256378268154962343641674397613323558951960451405391438767760042139559411715220208079654960238981754756965152797700768182738874722105933086662532481131820561731029002259108360964899474783387199941536661783605933993321424911526113885808282825072851516739807306508780456640854344640720993625285237515085926362958040709449380828063249851445310360798002610573848341377677871510974783575713388207108256379610293010739197110732827976826023652754588001754375212190835999629693034010614189830926041263489998426528396724811018219243953867970949971064459683097791716389639589599139296051762391560665222771196399362640458693803926429700467377043290156612728933485903386334717054417990598898337076815358170170499618391762679024463270619182205707757019574773825090399191309195451249670674839164858694335874942786207717751415598013477754599744974254302774319558449813778784590307235130647473414236057381257394880478755678295324849368130617088987038514984687789480198118015209374049120174196519405753954383121563198611973681622472636316138367205141594438886529500995425309727874245774653249477360415585470372589275391738600875482169126433035403838186548776187593115222048876600800549002235634797899782598685182253510467823325930287961721272115876987886187599247317898290967842588891094429238897687438683577626352644019528444312602826369949897619276162387074848772174137067890728404067547050276063151515872347755684014904236348249130891448609499738274599828144018876838488176562614983119690962805439303758424373986892446297436599868665855003433312588561621182026949180936930952601530786134854411604666014261989087542414192594791550460851984985123464592725917044827389024432420473233969146573910456866829421977458068003524526552830296130458593599674960528891683754282809810557602640259835677732866614948750780142935907449277137221287862119671773073107322553240721139715002122918403495263961531658517094343405469345651455479154924550820037062649329417218448631332409804989337551922795432552069175810873100507294215489341023519443086641932775638072828786737913617541889086038929599337149371501818514912396458361027872062097421251368367246873394570028296879947785767610771858948877954064716467848506698857705674793165365535547881506713751154670272025475180109355986718150333948429980663026893649689031073454801670311744906505430582727154425883784068637823630050037188066541823094698920280867926911742721053951474837273519047369795940186823346067616841680070256698697098409266158798041266873409564197483700008535607214150482709437783470400039548358848714204112642228948220315084432969660658667115984274012061118427507515364215985954689880150358736860666577682126905549835124007901368667102482877029628940148965305636778085707322835911612327454067606411226796995127668708422362685147281957512572122139967652216975276346390116405498410183413746596074069138723350283485338966576355953839802730837372551415521851529064339177907376866184197442877396813808808312617765522560964534102540442670338455541500428071960533392680282920560945610464603075629346127683280908976001472000166834723622180035838192683857028838439202777190879578055879831764948740194699893297409519942613839233210867449468978942540904278615463629902009641991274146171871116047580214398054480896717582031361466822837370232802544113629256513372379630884267654523721481880876142784422257664463370584140430150842201018040366234844541323194305286602292344573694492252431686856100727844814459787656112782376014273425517671087699116321333566738693387695054955914137342584015964905818287081165467138152041050155659618292129970721428736424166197822449671314501639503674625331617594510761157883827679307704523143060163321848476188286914997099492499425431710738861629878618598039538524309113600479660873626388420408490030031910336257890465335128599597384931184432389605966910031391140376335541283544596688523886575126757624459397820236835988208590243407796036085215137032942782491725061737373360937511960428012083948825325893173886924720596397929873906754928104311687359163047203391885332444285129737644105571735230732121154990079312274289547392347862872053201583515498706816121747805404314643763671176027783796174375393807908340933149254616833702557069371210307827744807287862363979491318576145909722727362356623098170361491870755120551454996572758583851726887917277379535667713794603822016118532132219015267668950246451717026271260569624205602904045148718125460097730910121337609781930110685766611562956181596570201191221980894554268812968376529002292722010014908825440800047492226391648994364545796007569531639027604008024895775372522677406280983495203497397021842141217448499387906134956733177760592823969957354945554130123132335550283147054840210682015301546883653626867727899144363718868140480335195970130773046325704263488168094028317273056125272655913736562637637478059351558460111112145479611554084973589016957988492868806022715282398370053946231638262417255511081598423662324737947585110208789193384667291806256467718368761600512744762676903930562107145104282679989631381919413848453496606133260463205105086220232648330810611778745013617401810524120634761458016324170405954498538980152188277945175813600551129413173068105860015312467159728566735542495713090204565906774358442920178028034376841629224288250328216091544254597805044538454235769507689653750904931045650240242127850585081096686297307591518649130112933401522395904817292611123425487623340704982670447619338211750095433721916180884399558903291700275052299207916976299735255561136187423344379523846379973343037238790755399180922984741000660812368548770166366081367096483359326843201525643014643602052253625765329011942390073609630731524740387285658911041281741998358044647593278637740328934556199470935197739885158752327076336410174965519854807547654500887226551931523807541253320757652210239354689483299360180138414683888646932643778131916459297915563529164777569504585265162195908294512604409133560671175220642464275484045409955405678544676438698051359247948998364964870297496699761316154310301770060466280172433547691348388634520728510984953743361558297871488716173041734267399159824618019589724178845117396744565664278015331266194612808464764209318412594343887201091106965846886197561996114274671562104226117384023564976546031738091698889598102538678791868465015909150384494396769453973721024135652157339547856530459258966614954950331378276472581573642547834191866905656684189419345761441400007246414233585324487194788474091672303315753945446258530470160502530566495217534687069760870946287787412525519207051433674363544495473477118770723681217080971479048875361154655592167014285537613713120076148160859112196763796655204488538116362769440378000257990548430637805050946309253729141450164383140255787584611218772475062636577932409450523061401284889143446184441017827085176982125222645968745928197423470471969378864830390292360931544899078264261663640967126036870722284047115423227101483564672400815325511360800099332685096447010378960620619591832669728891606775866731177123426912391701075350729583189076463869051598456190908618362372529873685457393607351060448329832184173192797264647214774318475125743672929771174175406361357444066382964213108684182283292760120222617255540051250744802940247798091587654628117601657760792341347617349517419256914310198928171426057267835016368084668386493169747824702667941292844667242267251060975912123191087201205869330961481759725093820703926972930414244001871723125891018307336242553144259052929601541709704504212725882194134274212628353074653558637410853467594115859267457452844508111428474901688475786283017253489780694623818964197427248145581289559463470302137802202848395294258617150728962244111809016294498359425392010649928538718005224377945530981075026789184575564132742158891210405984560091570987894113484613537784490140637291985725388204121909955008347588653082290815212655809916362474959927702493822782630745362458205060207412918900812595657615815391515794409212740652534775632104101416685757891778148698219547926447021426064543585118028976004770309803160619230837293717884766987297046449286767900340902345613474339480973659044392469969872943801934165330985533866812309597148656663920287002593961341191970742489024226941663405954279894607084570188310353828734771027518670579144076782416311509371678727220961210011139181669375527142509741730288189149510567595305721567142905715643896673195075495791991171130979105917689705944975624604641284564281900389362520795790476889930497132650434096876363157129288924692191859498861706626971334155602334037346096694420476236453213979139059974606751605432509121642866013693229233861409134807546371873696126456727928071644591824008394275034019983451007992785564344235531753603051600089606698114449034177670481735498778395433905777570008016808164486066567673431322948191583893077263311921348823224057176225438083662078334688748740892115366875268381430248440754956259896541457455981152022823218525891672438919375774833598159816939406617026867802122080894214242932507091874829086754978715281195800078919285894464639923223118410237368757167899762456165033827264127717828617891467885798215360856625219587670300197334049236719012843751276407916791400478645112416335407318302517066596532302587658503610527908251082504444032529942315106767431462871911100562594964774044884596033932345449033173482624093412567754340099861153223230096324086129149096712420034762272413256449451651515214186102206447922792985039125871954791472580368748442547856504779561804506438964277190820882751634373994479157658841265493003955672354694952963673057416331291554651805862475311339200360455687298418443679815894799675313561433033941665764661723102962097742550782166414808821142805891339254070713265849514065979666847784238422554758826918291773673580888621097048915531260705053045202679249660610908053668558234179599746389655351518553773915014333379991296683451225051865621940094266105409160933726616269791813012047348876377564368730761420406547988453971668624772752031097040106670847096007876599320527746316377809190354706519386617835314502493902974582910099060387314275945840082042003826931500166320745051705743143644682409335664232375941305712458678328002201388067975582751520815067163296139637229323893991084021318957812690458955737658717820422519169737043617534384191326001282113289767023282942860430197240610909831889967288835162158278559623230474574138109245512724085280757441510097828355550094785028070455774173555039432321252340792062881511560386196639687460844479687742858356279931769283385694543865487380731224778449343363205062103966732183149749755575753900890494768818208981178725204233218472905318995755647157101950485079580670541135870131038727361854616971928439196283884615495853270422488535435941367461096931179763211162915845412451100111635728368821629027739684756282898813626465856567627752146790724331858431710251213268686233661815862890901909082761755013753411800234474207991265617210162174886528223518485518208994986040771765834975780039873192276529882651633362425464034552517563708023064790459984541556459331044905183225521992915650617731418503291844862677974125510581982787541764854133417659032496869350918010528852523335066351279814705102395357307465067427641063554688927243113544650568794282941633234347112359235987151540849964154578169916561064658304103498761209314922759217535281985846708730577835410310056819670118461627347916411186296942174795688281752114919952973505329648759175207338839105210234431484878385183635738025823259971216914310042234238136538716651995145641942762399689186226351922048558409635547686442470328638007674489889459582153164536957285625328305081025895835258273425831549873921445898623616020878789244739774446744293855800514094284922436391377490358450602735455506029316423497600042379625798447618938501330874261600853510907617794554606467561021266984954162029170585794991941397866587683047710140720391247639748547191618158621067134429479950601656266721560181596948982653766760548620039405736367417745369011344788984436308902322480562877067687174202444141927854797531459535704386697276684479616067951065051147363050897648507977409708737804882089994079105472573964504896871032933872075993484126214695733157146468949737559177344838615973104176673455062681009817294931950909423044032948323881067926406540597758838259029073881215011923571458219883842568236795506836528430165127068298246018668481083572200755887970078171810722086791199436511523462179902237567005015518647159807734973040069744539006278528933500978149310366676895040379287336463103044443497259376400325179631516375150577169639378666391467425777955702376047318657742703888593798036400375440001932464991832395708556801588201649060031830852398631661872092550406257356639356919285824924393793163240843890883507850714290753660608769708206107700902899036914604130857538347522938897252485953469373479653513568991147902097433440882502896013224899984440064951943479965859927860517544682533651002034791210201449053943884403482851519524903752601130038213193236732379072044656391626440795433874181946684982002005314745980344656601373384547451107003705302731418796975320249569137932614240193212088502736393210503963796874020023041351879914793000806111084075453820237559644084275037984441039438594447858486145691487575821745372120460309359867942064148977260677599840454903693917056368249672380518731647569489988039617724618310097912095750441559527196642533970334397785315282444855028992076338772265430804136654508102052954045453323035700049270575322306940456939652566342342614302595008118317925302279180119280777906172234955515032846073306482528427856381592686031683251594521067189060701691584144077048014497056246912446775762255281228302102792281712545516872381782513595435420113763631705948147745047439253233010600968524165284274566483844517625748713775467283435626718506029609664317553883157784385744139824640537245338704785627074408383065017132974132726314006225177005144416030823063523377626399396204863571018457659238687617492682617971511801095390460102105864578546552454138922661934420518271391024884732370353815232325401619513490008937194063059659291400708668840145020170255407041648488101175589454598400742128478222481843295344931011985686179345615566752273877737387114929227977317468283705646371214581885441221353269476023040500901377184004846527134073117218604692246928966212479016818691067734335061666838191564450568328772487964921263278042045141002855810876701472434994235351406801706479852875554712407907567720044870502983524836170964048223469139476279851484384905955183826414136591165264707023934585052454921882557055782439324378889437204346883877725593129985861583001328840065451641503032209365016549602325418611839847355185424662392298208853038052850225499916508024232148366105013388530813316326361458848207756799797801310090369817937601125641671700886014951760653603227654032004127587841044830099814638470835456763759238039033107071871849921226929356476506644831187690064586362121253631373064590377096515660009514403452455933854219313424019403450232618989287574509532320922794424201996906682883188083919876728597752826017117032254232548519626871201245018334523269491868320436476182249210788005968557284051336441002421110505555448269579290184370575554101928152248198104987890248053392068913407271240407191673339475932489967755433192635125335114154135309167330154758166083571922703702963110326259911859006908307937054593618763459168087919164782763719098534525420048037792926648133612440197425266928177168890737595390105904342534039587135204494142789956259247012014118131736563023654746326024373626829944883704108152370075320115513578355596856814275094627360748578951917791335932442247457998826451422767309010312428929219761915077687537820818154490238248153857161876487519475687206223542347671634824170284845595408519157871949808612076379725618556778276678638460599768177456252325732968421225171586149274067522892372690474275443676028625693306469617217816180014893844325264101995128505659602756953542926634713127847469240776201572995447204002581999705743661555324485281737639659073901344130557272777810348977507044535413937844377047620740175458730960232503808035256611189659596299880826917025357782525712915817059328902706181408912142135046836842720897388789926957399557549342690064197988488376722543562733602808286712832540781048346935651906034191338541959370103894331763659895148806490831320827727683116939798459334861670515582927318759503964279561971045717053550052162381858443821856140006459113242081157260186230856506482955439038359587814779921566612526726888541399193770387361888894116491423463273701497634171915236553564161928832665735091298467478985330910705904702752268157422136669971663054093658679822312313379106033452833823270303996554566116370557022696587674866025593067114759491236629387197603484761733772054221962722201609592076008190182514710504067461963893509027660791800414361789324607623976595136412790024943295171860286359896686331997595249869258022839064587592450239840851886751168243636843168741619891239317962678846544762459279375479709017938676647101885146101825055567671119307730274629994136771740054451760744874763689489768546275438024343615145586825097534636600284350554941005721158234881998996196387673467240261627389387622075695403324960766254324214806872130066740265117088009817677491065707393420531343591061423345121743283289336674532305564155779368607942511207467541406942922636281903602055173935367918044777161154643105986923464387877747813826633818589775115050289729161607359620935773827994226697481435384844064895523862073230490020131287472289580857096861345605575085453089448456479236511305016031922563217356867309806922017914622645895310939404914580558147720689786651931056446854818228003955773463559704526750540525839124566944833934347673017665637393138255377993392957100063560970089427085420832866338720441436592318642265722651225555304052906790246075375142025711898200485308766442097199319337054938600401840164804635202717281399650366304433083867348802373466593876994784901531813830408539526239812791472885970922657765450481415416814762545095489996554303894549529476942931607638932348574174848152315496851914456600313500106456112522902437492258248022509301100194621900011666253486033084421673309383419094175793452776691866358672567331014465572000021397189288165898839383170388839328005434414612078475327724851197400690014259588560066854822296831502408733712497040784625248648005425843708664813898785052889382345991165229914195749819764459400337710161799186101201197795152072309010814270233560583326558921801261105127593154122350414607742881123171400982221952341038799987915620866623864281386064847320298270571731457695056900247977151451852406087045397422605821968938143728776345638187597644551733543672169561753835573509269528328105408829803135322291106363223675269836585923279704606275219777775192942373910248905253225476910077242515991031381106541118531459118693585601322780917989964865613929695752730039242292090920548154907683935714733636006953078349547334146527310028490345287931767481062083181723912858217132006713183895800818498633476489293206210749811903520188723092293917183548203715232322334501757004346652256269578125652883689536188066635200609971551101539490442061420974582219090495239419846543461087330414477477217905946105341368297104363846452641495541069273082422355703415104318234221947448631330133032296969563683264485596147118468682896756306009847161129461600751344316989696403764365064802327005096418156874412209081450329648951524286791857967048104586321559271040237656624556026106562021857573240213774945634715577400224762743859606401993107923129308331329467505302635161026062786148062620416686838734874284814750595027106845409953477125977193729744918741443310963223006369000194929524173541242490167546718451108025189705460186278199679118007346682338769667594151483937161933151910167734043644334479993485663169991078855648757280955522259223852632969483936165834348127973154111414014379434098921258904257955694368748075760773154571342222089676980857912105795191204669498311628141417865058443834348575534406921060180726387109984499855356726071035874143620764969304713550217381728144087653974256416778209299495237391712428463141718378730513140826455393006280690563469278630717785479401930236028084469785561798199372191057202917460756784622735009217539849067871459804084254676066119548646354457971157903550019703654826921692161624132546442756779248588972274418819324690743089032914987316476655481343580856372145265280011912760548940634147611215525603469014900191207732641503087679180551105777011998162304520226304501693061698070280399825575521199504690692703444842404981204635487908539873718104773893606662375983276847795883398998439323439981025168756320902272642770367463484777097401263274073856883246259303019347261036332125075099646062572806025520096807628033163545356025484287034564015274586925066179042111226682718109918481813339450066671675347341399277466252049602273065242887402289690555559244067055551762715212411457057263504579050370412580496994840206033170917831544885959393909973241070783022699457135954298201162859507671291993840593347337988542768848843746442810049717344484657842575189967258486929104722490113663570744859291558212622266647757745709659879696403296565564464611999065644070661148318838102370076481219190681046682999466528431303756726957145696843560376004591631877461690841236927675446583461414156075509522434341166256798489764463100327115650732468211329370961865918840080073974560030685491173784315186723779903886396280175463850019436262116224181086767555211055085688539252742833613857891244767157744649583175273458977219648871855087989984570314322072630602713926794422383914934231487840051548088973771174410235317625424735295452198259404903128698536630744965338919543117323507686377120317140790887119720827780988497775550868383928293341010928344951241867791123491149540523161543560364453635345156003320983533774870668166561425045024026167407868309184650649792130194866179006371333494687795596826260145627376933976137240795266118110978052343791697909198637056093023439937800641777602049182421834240989492496048396718010673120561872824858172287232900651772668402632087690647226289133970205061802870736292503198467855601672057161228920081228564656657126325723383746472888878487952694216382968109015557891270322420645281139553770255456787796716268097139547533957578302349597889778405612337748144685891024163891750152807058450838031833593068964725382824413420338282476182908876656514784749852935549889910108028138405384678423062244385283719431600500795963261676994280643169740827985566677177698749483271643557847397928334513475749753168340740145701271517031789576141167198045091646783381642286271438534307364598496914588305637951183030528825397891225731307944627250484696428037204408872482908819700187973078043797066506795930634815504286138071291170288984329345585240646418972842684028193555591312581901684980765120180954448214840820106774235819426322999389835960117066688269976509356445878685926296753549095411999951034720089725924423252940813334114969237300721480610920051387558055596550895739488355864875507651150827732626815982414521821244006800058244758338864783150980280705821336622160395305592220190566485370552913644198031705259744500226069970699999745926600587383588878057138866495891198436205052497638671010055551521156345709363053620144652451777743434840851787764080354875568409118604458376514103572526610159596022244813852258464486534809243986103761541454830982845456420883316673303735761681384594188803412841372738492930082955258717650327906158943814787077308070391660581640271425575181229282899355509299011127474310029301798209793240880126994144352834519196537303808724902799259789513448230455919438731823619654684829941962117236491385234152197121730781198751662131893712770885605412963897196544386361494093835522011708705727508980944331173389680984127527049759517081463538738844769736265693428555886550229194319823660714937907161309616794736840735675520276747763899410885936093024989882456516867764895971655510120540806684867669673194619765285370580852122722576765555005522886895243668877761433651787137595776326504456400103483870588211901672747017914709276151367316573765399803687094251404101306248727599633019620229692536215830652453885545416837650916212370414998358009903757448235415762578895685936693211753493630461434125003436442629559926044705301258234544927513163244274072056414120584521316249481953633847666662463356484240177400834090030850035124394479778167379346204442584384136387951452188259759191088561096338168723932989247695561262999881281773113460109352252321299378770210353323643876672926531476925706001813632233871553353464893830112926783363476582372085941729427477364141890779547772572275850084345534103856569877948706733596582441708829420114573881530783432871128462072943987515535226356693602778789690302685957957744219389492421265992042812386303989009311776649180108713218708600399054128642162599114198418639588339944524048870643051716665596926659725441795421429970684343150553779717486644705204702671130988064628109276817800088622715909715560831199098049813152654748742819541553215049488406115805498702520464539014559358314957484712699073388937458647219288818761503078094773812679634799901896690724185724146622179597842848021651006996412471176259231573824022679035618889958162855231733333026820023273628818373900592772264513259287943662290250171679715914028680698708856174992622633810597965000295201816574115988241720814666692561105599142495616134676697699677388401389308372675691346406672064036090632624437678115613038881742806299033699362932368765960150865624236172940456980100221725377421607276156730365047000544646102177759750539913324960709367463368819521867790251087587160313903608895699741629866598919816617322818664128873532630964375510814867654566951439357010208947201195741581368906610912755905082268013957973461813597169773962484615911775050015511181714932938392682583887200288804411549433514908723576127723790397361735954988542853563657870758900817314775397710004977782252511422362622373395001983120968090487688644970223591098538384459135118730819651779521757826604800638231403798688543256995002648704844526745031979030090758694248857273953962737552220603511936554464142467657077631417032867888973777880280496031616246381972610681847204223195823961929650486510350760786639349664020295567957532227280930080379997109308102057923588733593506501526812187949618475022483890005864513544157572395521715459825474078490254858232382003393364171352380705571055017896150126595237829787488812537427464121637891989986112612026577706004877350326655478665712538829020367849302930848283996657000997153260782558617868275181962769579363352920164025285080310834275636102216628245296870256601712592727547337811777899556730593850566634342700057480621107496725932266739904292452344970427620145423529937850874030625252396577415592931236438999851948279003973152640066198321915160321280427224406904716276634738567920875797672087021721438075333673648223203778399873904211170621969326926116365986808312403001317147743343905229054221034493714909873954562968862930980351744857674074463081475173789147499696782914959288803213943184193063532125736610976109721152037230956856564149005621060710083147377694526631090206953028559980669641954494408997020273431587241974971508059076334793396793268395191788439226193690074738613538456482265443811021157475881617703784190197299845562981991514106448758144611369348656149210394536109011075474732287300604003158470710252090147134089312434647892525971706419013075946891163925843464471763828081332262475336045236287231964002874381185240419494207195052942179196500081555018516045759821486733910431828991087914338625754636361249533444701111595264825619563862374740493458470384387325833748990720238667035066762067196686480958560037982241543209293701208948180789207777866481738340512135397500234550961368245106270890600304507071777309956660939451209997456059198467169037332244460805999828424359751809116492092232497800681566204796139202488033300425991937583038529996947584268432458099139560708666978372258657616661858929071391101157209289164836091664706757687634768433701672706351911974474824119208855601706404295993406593483515756661716085426076396118445090385726358993323959120948032553286236698463252058393607975829929435166392272523339267532518853762371975317469670401507889965545950018634859517255141435000565904178280168358905146039682282443817955967829823385985267122498060523753377198696073127360173321674115844798219496375505465042909092834748497600488074119338624423493149999314551165899864419687755538936785831974955398752555630147700273353508072462430279125843205355236063363996116040473740121226845854052824231901040469755288099240647063947998827822722106959571404022604890689682139119693878600603581842095767210354318074338834951371877946589314892372116098911837346108558071711900243025367064415107074956447149611570161766200351801474129367189959879662320726225850931722705526505272206413674018758217543702356867243968234781616964678472628165489484555987530920140994250991560837833066462184118381432695362099557932166556048260296615529560689821527855821572247106901470533870446964151900972744993168351822337030092846118530509437666672103467407601880437351231540143482258537927836565640136920023904945835276099354211868285896590968427534556205664239526644965586024091738933520880621357700283919867475851952876693829864907653164742342134055203987860626712784523867316039361463138394611955571119005516785691057507192202861393122683205052146829443999536068009232324522852463411541929221884539879693449708290369670725639296687810403396298317823971440066199192201475882630195440959975202113318777821534509966616313369206779544605906096289157492502615233949947306031635774458051785654249077439717415224467499791074954387650721269717976689475931298132508473178838763802793573893040586920904515703473983427889693208933475869290103292800332398103372489869610025119014227149933048652906297925847870186910035156117837414787228304185146174525383889481388540454168313102121067239423226790058535602815605930239575105080780846476940724720087182113701848213127768553618091757621898359317508531173432212896183836057401553148754739498844032846187620117608119348792959724929726418955942977174784340729638513025903953768159104838372328045036025343605452590864282161307023259232523246774866662976075534147805560956944533933034744686742644062881539018692947915643212763530325570105918430186069646767190788434688531082717738302826425680988795400029372920110621517621649484836549781065671135134982183597027738595403155113555006771258431831291157883455146231501546535426042662142056951580530609578221760162033771793791417153634559095693807596194044665692702694334548154977011605442182274654071935239134639504758575313439545204004066939460640175237868943363941305898047523522663310870374911180507307334013471257755734353286317360279618962956120864143850794292736527716482356820503559416240838978714353198692645630138370007697087739230959837269374067947205452372504437498107364819633550954343333009278395323460229448181507054069945026792829814086425084136622585705087711958618511982201258432855453883311652979031923325359439953153171875076247003399663692639124742189111580979066440350229848188768610262834620944882448594738062495841307185023698692897832981445885928173809713078453361407159256454642680987562804600606861033796881748744117501637071002912626571873449076562841963563947346852370250366468610309163631968463340589943422630403928641115122343008633642700779285572626429937759504084141679322380659640976235731958299039966118733787432719225491332864129318329896975822987592036604800231599433892924105897333476153261509541410593787179904705224000168525657914228975925326532625878434839960699992953408140415459102816180659183380526289249730447999201640411114698869124744301664882929916021598672647746339425355407887675492667337972480337477781142881358835098552007806251092331378159230799858294330101161135659194207749231230387202625219084453662278529944219477449470867315195594908336779297935962369130013204605165155068900318998318438106788142687188453504561418122009617646768897720967342732271404506788001515704831828756689054924811516050050987756532788219554574945531757033763657473110805191291535096307236275151574585240961785143932547372171005868347212317212450891329829081118444534586131581432170268965970032112301775075641549310967838209396717037481530676586287214166944032663394783885003255385472254510247077024105364559070780088857167047436975047796480461515162440752578889660776472708469901239938996279972971473352427345544852913673029424516026639529842858575417100769196678114438580036224725488885305807142383477559052093464689118956750111112457249651631353651953383472819795072038388330763413246959365350446007860028173832675792010884975045150084548882746291340006098568330010817003822438853729761442944473432269911400278631629115861525756933422490273841358680240500015434510706187405826501026142524375366711130904752020931828542258548385006736508713628383795255063987319215921814414033605068046532355325449159910083491454851591369994296218158550290910180026753495603907383251377156562583276562785809666345142160112298122759412454528983768951105057654814114880994210733115530898266223454581457208752935621114460022584391661065033824638889968334714209121962750670722334281387873209684209887739746189841951596778757468358311244317957693317927018535486408165932165629516334685226613851929413948074986366724639031349405346831768397362799572342372123933209242248359223654459583697916884271355081365071836666558179098014512498431380444819775959732461484727719097849326321185374893187857640748387741903303305437213959879017505584281442154888976903754095342889401200026927028193657786516811593660174824073768289760385256781864533986341366215855323569306416290131435381569895440130972462240514352274183071344006681557374262414994824379651509810018719935467505727783932325774336283370190110685274953684503963148479387418619097291895306300873265296156141497013812134665450166737020516690521411752901526107638906465267672431020641028114668825848455097259466556539021255096479110315969436066341992866884505881843947627613817158737307382069867269897381673630766549523913396631508734850025343581710589496827057398402484411096216504600231175562778448512287595239365175269852020704827432355338617873346203211115687232431780263395060974698454708150270214447178638809846331020334810828208718608365997928108476509357728470054409585048572692854818588988689886106225111093418771655275872048200944029726583026059320169572428940706592598018291923423539561950208017936170541853677045905210372068259818213196978471414549697854228124009181797759101844238360585119851050961181872812265831424928128721031653446348627746498347087402267932859070679069687371322379234165416490287545726529909363413644969663292359558872715737543081331077346774735214402274505977776093895100715652156861408310939888290219163620146038421916145157223591813993312062772078169624727670070323059472935676206222708624196633362973616056729980977039548151954469968052611018067412965996773218645344236626613403251386010867770024238405513855084880531709464070894696025860058497082167331819475516207728998076372062030822867801940886598559381532652571500118123196334918526024249441535591281399118317601509637688029688758501931233433952854431647973698644195167572972871905067979901241461051051506838312935719899124766533129146496615208426154358466961508523652686247531930028444039869542840446953591366154095633965293877627785543997223772911889099242221889848696299925543792556045563964242740780253770553396497784029485826720541598239642232383619106584272532009567884663107014713339427367675179174699879266658547282859002397388076887165496002675962458646816252698211318512338610678267479406766534173936247433798990146022693909942798948448437658972359569173321978950151926461626193750215443868739749288580902319626180779503535402603726923148651946570701014749354460083148310072478267323964478131720311434995131583046617887599376307705452663984407859021991992291247339121744020720477314628416445730932304069838988491660381040169580385224431654466409070270711303802261540764393900261825111062920048024193268113509555341382200860536977964466124315728467089820569966786215584897261159290063976997972696662156302913451246583588241185263514389346326523508744317322073278324338617756658238706557188186070277938732928408802531609528607826601898557005189669025365222099519687128213173799993124676172414942864095305978415150092934878865550211868707459442818069910778128547211239045600886607883406049084577811904114686296841798742305757134545038338770044900736518709556280857325227138151475515749267532007090986618651241964484949919745035116732434630115892026048154625356364043897131165363465368083132064820216074554605807247912198159547200512221562056824147210292814948292452840568788868482681521318272713319095670202293636983449680988840637078985421971020588765977781094516128861513397626759302751112136959367410554726173561932521843059806663621476317742103714779065301323371338918083135350769523901457537001046662306845064879485225645512147844493216958296445753505027871574328000035557047178914249318228180920558910297680419104781435765204231255561918153546901736512205682422762608197249481502302230253178488510776419139753076009824003457515548201492032376467688364006069359409185441773835208048588283391757314466896390330777793144699371412198094513214593988965652393607238319873432080374114933834096021243839053088886061207781862176835928381291042934013690914494747499580300505820474735049157078760667616572288548826003073720414143872029190996145467833389119769112827355518963463540907241007688423695825207029569163331506253363079715627657557212889212527766144106442775664910070230642060846758200597576424029691126802293452472938867241403437229574145942942654709485430257438161316909982764560649220441063805516846806535482059438200185906060976135244210986826067646617740932182821734914177972848785682778429800872959914313294818681085497460020147503406418518899123422563036536866411526093330245113024548880167724336124028237350994602726945332149554447380313608505937822378772125411344723351699506792660045623395218955874918246375665198230223511633203089401124660942428345854430625841827643415643626276262891459248586473325041530228181184076450778805745168644722532272585904964201468702041599702654229192763572556272004324120288845690677130841510946990629413699682668021546198385037933778152170677996212237479730298314707107741512706328930649468298643143374727519555559466329207252943638616502078765803366426666168164965132544890500896327248215827770710743137018708744570812130702851128521266802193578436998174227252847327643019662770746240603563902672633229505058305439233613990990116946508030482045577946418545370171032768122776229844446537770396771092259389311179060356220093428952371578890986141999054151397668578826247505254156144780201463663924135847091887115746126145487892155480334139970229385978024439820116848359980136955867373941461967809801173259347494499802029358461816894026584280413314434163117839800059386996559847074295830057013999919497615093089008914900492029849269516336606042330996426047372656056707770361438237345356178487499735321922308570191704092453001857880972468012458760445243904276078841108080951374318862539429021848366261166571773744722825573326919857853888890272686996675272678529057922397885759429018343657036871158420717908027296653883286622078139440910048736625168189920063586218849824268648537624381501605994689276668478528838146902042447283312832206279019550936058119307763860314391743082950508927249511716069837754985177183148208612556477017785160999619455217197729016116976420308935284722451898096218101100738003580288958831532445503687086183650019043106235053987901747887313708842306086997921122737999144206854213721776478332480221004985900660696534641729136825548502336188917284107386956390609017282747623452888005215363564208997171924728973633090222092425434159612901785365592569002349542995148926518249841208667248007379849481624975030517355180742940834554702907982014153875281597159328348473667273851335018689654572440998682753728558862032359630051958279566708881971998161538657163805610490697844545925511199703209931617398612043822964340097751570153966283653848983588881586213351272986163085258945209806777902319405527994161609387705828623524587398507815350524399627765563694616659782453762032699642174195990312141003117286311177902757286467957462724799681854530568201809846097058356635745633228597766631773936613550790546124125142031108125407876153925104162908740258966346827850116113175448644614142246497686313504020214501348189319233329180470378931075254940368705832369131631481691895506542135803076483252543027577972354558096463842254942768720005060811267767754900603884508941315545878716560840559944640208744875409726591179180559078386885692204224089504487221761775147724574888444388397784491931542127061463508365052237368313054096866279705179875190706905801017542739060340308487463663826036105198964254860560640070567906836497316917596901965828740469121073938400302365487056400584496720691235159861871841381439544759133379362544488713847887855436347726921207614725715197242549373181973815414680048693104318207263335192603918505361905703318895385138983337637787223445773406657225616514827764865959552451051392983274975273077766157155686540425233868834909207168260057659090586781727567246053103380434684993603791710947663608852602504176488972450439978044503267934851244102859636126350525922990689939487642712717493888814153858623958245135926695870660225253410503533821985032303852689265303318609435206946729350896282627133636948938283234729954815301660728702550711523106974703381870662221245265758469659037566941420554509104911592190534795459293222261766883127042787792911526027744815302632682174666494551291156880524498917245593928560925461964078306675913276836315008803782999255671615002884048609384302361642188408930485391042582692806065284172485806429000597152875108709959969126851258165784934523754346809774699616782056512901537042317805104727822361128470227809504605318498400797968308390244695828701536278872393229669010992652194198730430958831766269794469305895581271942512609048921204093656849044216813364763402049610899944003936334884722952625001885730162283935185787148070123714769874127155772235694115956961953939622294304200728188391401567847052769853282534253070957255794971279743661022440480095166628494912237484813046103515842072518780804903833138585465224316589949067649570674317797716513892517646987335731207894180409698440239378290874258933016737285083910379507383258786059427827248078289838798010793866161073585061968350715018961580526669729277607580137042640259346365301307342176654300448352336065976346164147311603349383223528938734195159541501828771843330624184414176301313396328614390321914094947555703930584558758544637840038775654664891157140796290018522934352437581742747816500715235458937646437354613782925971656605220821111833933303904677447356851330103674827119028742973659751217655003311920576419503560270479275449146692435487676787299197764118828789438664454513332618815446087831807082369148397978670704692699163705029669871312584101136332509989235504014448430170544150474094957362408879348099499809721299726807524220132693152632371481059947815156856482282839446313852483000153809925656124956981497864240254753817372321672732885051186811945478266076725858943729255727887792432544103342384211487833663668772226976350319773307910384162500640711240259761010137220586797511806559121509890682546107500693471311046012880683026866818135951532789168517106200903431307265198318230295780117151677280667090517191185374544319666181492707941701290186011051602995900016807217316567893320058229638605649727416996088370442850523034359445708169551769180062684992213015860623588413269959276855856770329523169109003582766625193708317933036991610541229707009074481806217275408174428711220122033753180760608875858654386490300109114066823167018261490371950337895187119490705864684700730125400707201628251466598332881908191484918308954465168935405706694678111668538305128617619226349486708516263613268321206651969183328676432217683645812461819797861098171918762967941058844236626591842987246644616543997789434314567943593799852280183559767243873127936781705063395852614202773956122879197372923811995723544488006110784278544271707459685666394260854940781195904815819175173299483104895475414827527406644764677804750514113202098697523858152287305632975379840645108113875384147130490798725452468822438353066931486280900767388743241765206978448661906868391580369748199886099240561459443635374556367713844853582138345084203079420786297017735925282631648207960005209003012906947891808034014162196712931737505007062561091054069491251798337235489931978731386529276175489547654387478226460584231993106805784917796203690077148048433893552768717063411266782059146816469448995248304484018886118967761745069088841156393016657848130541485194122606824410340807170745265149316134850998302216258813438730754763925734886717019857142320379210160220917511898275166804868982961154911067234324543743163542301703021151553563046996333675430070227662523421051859437362262688735849120062973823047180808857501120056404720235441280522310332578746115459725295687972358477776556500917602906079897332330182466710633207834704810767960421570370518357790189709548185253996010518260607454695058261487406244768396695661402682187918645466867160279282286603195436665802432199083943491115743621918308816860293964390216260416103136785463062118061449347161987986033536272862421155431203861581589223184103672623449262542901060641226183377942557069850662723244731006040553848207015305608513381553242728796883683508882515331048628979424267873161034931277055531338130945816549726547440013291019839941614758811533621844218723580407745111239783557943213205965157104167303042206757411016792802766366313189669713235946817127394580779112271916243564039095703437948252016429741429690807877105225537120390769996732036268699766279313563993038301379258963601164730162741985197335052284235665469503491417441754837266389899199320222574436337499721498192627912180218635707690525967784536457678882484588221981219718821561927418585988662895921957668034083708402215912497359216106832239265578466514682844459568090192935072767600727861825192091406621820160103007714395463780837684615240723021710829701744276405240985378699240026823401113333096920345393744985235856747335268132708053713527631153994432569610630490138887958743715683796573955801880290351463727364344120430351921739501932371813853739767712546792665794048194350881120378956609237772807942766767962732416658821673669797011824756900625857132758588433677599077484830052957316579897883520553987515880487268964807255191929416358363714606823467228625038559614366981440947645523560034699802302713083703557269333550154787961443277445008369544270160975954478777299302966865100860075879575800100673958046230115453318725727181610737930392879375642918160966181671574824475535319372297171333258413095323608038984635696004675990142572183314222956952865735737030365875032468809736981581054516523068559830536671178197113780007387650064922939230055847013091453269851982232654566852670191297609505630009864771745307588893542312812327669981090748652530081656864458441414557298485275935501821438444618524697218129042226586270881226273963890952702892731664812497796740435095491655341317910248767471689841204999960297916105895467965169375932282227910924099727286783746014096907162070606251169504404187721208718438503767278958597951109698656286063223523999021996807839544105791855853153379011746834800786088870831043249162239245807392385627003503032586176225739915178309017686348155006753303531944032630489075773141291891263276234045634720766982484249807587994315627987627303779265713206995182365485721624665763649865417420141935312784463104895140383510354655565377417092326256118744934956269200600705707838107014617929091659931182346852603336113998310948561396877497674185286530562426860999334797149413707903175035783468001864065847093849182948140085623287400331662413205895425265796049758783768058884116339019327327715086757871031003273085090966554396828876837742913077275184502199840352647309112527993042450094779923469628861593440078512976658812173690075709422532963472431928005033977465013289507708854146227804646507275298459843431697758383248197615885211349026427765435616396324294107828028578937449485836289986316960367917374932817739793075334299515513912276210646329311541541344671116659692746197804052121364295775681635598459098789718836670838863847288220598301887523125447289197211400669851486726197536888907127911867548852113329602577525212357176504968464202337859480548404267600687416818593450598282670294868483888615430051633199545726896075226832412588955019189680381351729405998621352915983977656734352128676101018513754385049648655624839297655725032479153105030789352168689960429811866616749239228037865099118674902006191012866353071815419704655779842707481086279018191803525764560467317933449739300502273435502217681413089456797691720618797235306785758709155389697820716845013417594007294429167412698313045860976360836752931289729718962497557466634154006725703423919854998016619212100118685649177560607233775920284721026484230672534979977662709886363893681557214559602086575843992918030707017251215565303675557521536965262947818434759055216799548693038731289674756515732592212033255920550214829936313731435213664029821082150032886612611134339798483965575649497541453191051185244177642371783805406932393681257603374323696040808205590920900077012860648016369296756742045633432370662913386170354814627897934911322545419829013858654775023964210416781668696682376420592223543484245416971640052156165529697105339789556103965691114168275765404283878528035570202391640434347505978673683786112090900473847262240717665512383689745436985777259508178135682883309191465728580189329702054699908260026432477530927152765567881068909706556305684529865751024640044852079153824953161605518577070960695361427718165124733447740533297184211833791189166841104596894891945887747597488047066726648033026604700524141903152958073950277565255037923463448371420685303579494132527811381273402692415346833848140258361807589203141622701062942548935212249380192915859103972257620622913304367484898586915561774572900090537649416552482401366174603503338869061911088841838697997283414867744679897469994235216036194338422499174085625117993090366039380600388134772715518093076209715306886161409464517073749838625785637398430239167354333785982069131585414233512501149006560630204105429218401521678522556171361756611415794338064003090163039112467732397517335579023172963805843676052197529884090070351920674070800122596347869821201976372699975471173335056025243403937867553724841621629592564384418194383372507095852989879594124397115458766015191915573185152465757358964956512454287704050399742751612610579663164072894916427453808664952526406431175299781390089878921507081906618294944690036835043903870978038146031492067041989952606010078891545715644947291905507278526942921449281403400021982619257300582272086887465449872317462772357012191240981089272798602852556401782591990528444071239619212840396778533222118070067935775000533559063111088106442885016891577029555652560439339133694026821944691402344333133341701974274161391115305456101738935474901353055345565232347466842165835473535689059779950003571988863340657118003306925939688639985038958747336910521410042558709227819457335242221786183308985283456232232084460307980660821811480511360138895537729033061069994672372422890982733639808681267494510185952015015953377373202103670332393660280939705785953998428044705842914429317248777608794563507316885352737327644333348377368950069805586582943532064770758447838785496447953275256569398672653142692174768532506048163127514220663891022328644644236751683568840725219887292953187020775817515062408567418388248267629228348277614117647027856814721851721586804026958680226536802944032177259589170600327863776723940228320967845825915158319730851048104117728522135110225979699922071525068501639514749796687899319719506353953929328266194593378346811161477616468539987021437833615793277527565064182698241439371473490052639351471361929270971657879472510133343683949977079408896017500415893305916717020791277617508797760527099483579179093361151131879569669097673138913743899254442939217916758900481869302879624308297761868678830014899388086451736185629397972675822406348787643526937179853162485649794298760654941920620307014823467384520092653225504906609734594649079080758193536056842436540703415176485652824441492909508587888271067404536027291454866555970800280924993909984958897871041000009753151010645217751661802455364715407251752536841278323857592069591291199274781648940248984687366038622632144338809615478551931047887957307726046864960929054195490971241905940259342811330062574964119994848727712776673064502337707792369270980037901374911040418160770334611996391516670241979673875640647065904896343472725689538574006608360325553571159926638467684091390334988370750832504352598820184027018134510024009943519603908058605329520739575455970770698518425449631522527602206575465169448709168084310191659248618256792751459061668639992158944619874632114023514492554684430924286409657335315105829310446199888954479364711101243923484961392002054719337394018350369693605870725262547899202676154328731243527866896056704478658617939056930488167775921893982312715118104518488863747536632482501376313409789893167356289999404565641286209174061424811648567604947148586787900737528800706911587663983567888627099033195416728504059441764685391871372762577191573397018046218029477502532169537563247885095225143336742499964075241378783583442648412793131287547624276256990209400276886595321067865466079092627698782681984646470300434272978303391753423130458773330112077804042094191195160184309468453694865428554428318436081171437564992284677969959593077128382696254029527399303678944945570304134790521292878294290545973306703662032875085857245898323883428713283116800928223863180610587416900003281057012828126324024982692312767261924304595324767232109181425643577450736455969367785267095177878415292751818011716665725943696678774687319380573272762217168783492248712329189133195688742083413997029804206708485779831434095391971197075024031157902575646911873602045283256849530184610881438344875261744796822635759543145241669183948365310057424277848468433468179017862654626281866667560027267465958787850074130073388579247342321775555981838090566118356944557006534868980921762498748573688721322379043925188210191293849416159511398460979986005525775817399753980900851398696747122150869657252135623159982764674432757861755733416361329933291331273820444574212988078544072789194225740632626040574273122206607108259411121975082973778475746557639748940305857510740444282880060929635922902885934295949999162690547832357717293278708704548651920519402863050580831724452492575942385042598930319032739088613635823480799992021068714436084511310552474574001033997047627746333282620365616047888751064978453049795757771122275964992751043770826117315086255305672005763470887337332010390961811884158308636801880179993033950183090942803744955016586188191541109199773444928361459082727282379806916166364021321415985862914891307307686077237104595241855959790313669923313162952986493662451418733884690940515524942672043452460332779176649553768932182149929347731407321470057482386344072401360173571905644504628601864495485871028846076412277712477421629436919153942759736618253018231924222664795672108037455438013350241956777759854109925520867812307265000397403785775174926052344142706435408223156985863907384610392647366713049298825090810067210596076115914073308837223070217474102369217853644379461144656119375956270654587806630370365120054681257692550725040031170803301446422250119911747375461246697140214399787227035763116447245813617829221405138320341206297880063619678665952347898060982265428824809943759963694322755961536060222265994447685872121633062135999560531411933267904149236848278109900785006139251509615731562500046519403691469843773779734536693402645511756559493125222175279908619353092926518840549593055034786597142362750857513308687738654008067899983328648571691294093668065935595053389501512676831841156008336227429213606114541999802020291549264713836579738007971932705011448551765599827078040176167401919827992894084989378726421586586747216473892195501939067507900752586104528089294533755759271763810161715727319361215044698757245262385827058371367834601753506720521453240493828873276150794530564249927407791757484261302282525563207084471343984788085577634436767521979038150518544326118640183067605094109819980890954133068495299295994103832572332128736593885365984651093079903467232765764039527546397414751648710056089535445251650548993689455886789820031226020974840549214154627624154512838067399342966623762385882910991250901162820729082921635648467531850399786061838321788363305476430277504389732284160349843179019133668411457341904226841393261789428035497056028418569874264015712487557378660631030690437657298399201436887021108351914933732914910345684166190586904853280424299700874502393943923457238858936571257175187596675808493212459716495905042961393605025787908733274871270059400903204519682969388420644445551585636306193849836726287824409237755211346891671641695425149903393095164180292967172285635954305164798999052334424698527003619028513956834865021187653911128489133879994118635154836397323859127528559600804987941373234400136313155719597286394215047640787089895061464636125609212281878254950180930152172688980134794948136199797615093984304236505132839955365269526543472030301037791441583360472163550603417041332873785588172125112262274562799586860510758945996986243126073301566330846427484325570915838576776302095141682708930707297922619908177727377625417528664520499102703529171813739904272146013946289966534876468568782845935671689369945798517530856033140221682309030737894541325782200408953471392632008734361009875001441674830837855909045828154623328462824992160868783946237968718791786980290317962522595354954336736019364605390781742690868741472142655444109902230323809605161128896361335941818539340268738729557166721914894532788054188922906814692533176715915200127899523571685917786347577545642046897411542992921858557423682663336243176742268994430767211480538946139977718738756717728314223599636339269425909022426714545093557840781985415404905625448982374630751259740985307489823150984164987102619974233198338657537151593980706517531267861322712105509660618728604189858360446877865865014763450298414004765582314769081351670373803793208290523308347239597224978460234098055550172169037953008556327780965371676773547032369018811066611117813634502028334902584687787759807558024560567070820525651711189736111078583186011472822369299840049609491928270513420340949439454981207698892200542500631623326646776244149781015428362707097764351617832774223483010616399318044675075363758113177741701432331455425384657629777735154191061330440331896480826805526570763001868099530631051743393375778317477320391587672607454619334914877524020299056160243003068918511430570200506461608231819503809785319884993746653448979634627722939489717185409632182170596801731713053055632783218482659974293482980975530117075461793669640417770874335766766904483309546908754405367645794161670045588402423265135109187883753186146549543917903828754131329029061064195046364884991526119869000884850481021910280020164473408792265981476673835763995291620453506721000593919059134392184172929912106887917399485576021606613010108733777297328714236914920228210844964295123373709897951052718352120354105910722773904800045756889707538184994263374975294399588400823100809082637314370097808239349069449505261258080422826133750676271725784814170898004886967331789401721397676208767860738194513190124244564711970634899929567867594499402746964281194640817600538521837152501199174163868925140806209170474846333728571541824618620159184191648580243902003551300719887378190679574434181449481785873008850415130676985032878324738845959609469385115845698690282163093605137729680005838228072140189142514497288320715858373354388202682793315598690492947359764718715679766487059548573116957135027036499352919007044270944271365642583750834770035727780965863035690310942712551632586950417289037153126254930444139127228975437692186826795632774976027076545183953866414753692585464504648822544411501579666592834775739552021593477757883344936896456306430598941572654271756805883717172665863531868584882113165557154092067712869802324605016131220844045552743227682462436820824322536813604321938695959428680531160079095165233958507686738771818285267590794153234443180527587257137986774316868257139320079872113741292564887643588413802040203297722590087181623687702136442058809133660983593891641931425599717455248212163632208947742131279451592807491427647690646241759319430541694178380520537200821338566813375402747292266660598839920168218920412461160436868647395198502781549755198945240917521025261275749627015497998492248489465035434333536045802681151140171700200268596711083078216779458880936389419644366872807148087486752528839847693280410020562300188423712878424068782297511247128670263251815715377207383057846247266768129596517913704328627669606459932127123096620843911469121769431859743668318411060749948189616302789495471210147848590524404586220945316750850321227420717027416973842427089929954329787614675087402442348803933682143670770983246787847289457831306341927052786434597246131053559778217989266493329410623677483365027014539049852729779013034062242907160581220324424445820281596366438548512553180269233974866766611553912408731329294180384467329807000584709395980890851207967256145972263205220263317072805678830379078579872266209740254024436475608693294959977585917901261186786952640102216592344388008883575636094292638584340492635267446934804026402693993168224268058903313223744480158377317503987525076064406367684465418555159795048992585283235050277479689438176078067163813072178726403107976521676999870897553347768950443892865169007835249930479051795181625805549489437698906143151460106757313966059798939899865726331666688588942039996723287807765884579417547212834333287161803681148254611709934844668349095723176437960722232056123566053905082177631671213754144409980081755897018622721762127546952616437189323357131900569992293062465710096513028208144654441057998987944370105035990305723447522651516853541150443746806627278798317104557094076583553484852505223918762671058977640750513891596452269255675036323219089725301208168228538510853806696270713533843401803488886975849227082466877925002242764254223073749851932036634751071657507952717626319637313676722579007589355661703910744322215182790445275782588976848771310621724590496400696620046148517457431463749416021422307880309478082526006280297231826429375718021975287922254573394890630592192561641035080797550394037671412764409651511597890699212328262202295980079917778814455723915252365183282542957484596291762278470043498017132422823688469737330810066612965229220530197703473822788908591392721369041440523929822643820590772527759682050714973229275659864910319064271813314685883332732785089159919848305144163605398608727152643279196989587640961664119404441706257528119535800551155750854187315942714552105973933012504636823030005836875027164279981546629202288370428515100630400658901765438687420462106768484682677386926378461823035612641744752533854520604016191499669371106766208775955444793622299196594257738769072053015895950916164973077370612500222258490660904705465214528233545363743742966951324485151518237441167689457550703295232438086629239291507093230424079582592558563583876842115212011911934321100770432796125019647629033372794264239062919284517102592153743423957249825975078838624527127078271464828401571661130046258281471766484074929355769118723652437411167701781718276629815530191335866244985674903609522570031714949858897706802563817821023447475324268005249735903526409861112743792088807054374563450715291223683687026588327616176183928132794576423746656477773063951411922307750867587882144291975125257560920097909486529344886346883806057965290313730779369385854197758545440968829417277734710672155646900023414661385272705205446343893056134204883889307539429320752623169228888901458871636361140050773047945249551101150249740450231823258609636189343280793871969230281841212508971629519564162641742385084683610271415680367870808575526728028816683175568568865842738777761664241190089267327187652127932417604573412673192051744640394179733504291205442848152167370382804197486261994841418177544408898297468271540011561527876753548587744021463333605303664207909170392326181242871614671848265470899031566268296363929047032026553213307065122418244199711922399401357621442695499755219398657409742402756648927057289280943837444632982963670949721061567416904058615583573777443012439402384211747895717256385152463829089807041060536438109331510088740163314380246735205285637691841462413573530466203416531216499243599107566737030024964756327275117972915844976238165183998795156342513267991864624437948863608863243883855320390875209552001273849399975297382721706751818001191149248928592662120957932648611978577609044487361794154617068381622634190134187141738870483410121508105420492057349731899758667392913702183937346011588871608731114775096838410307883638441337862349016250065657224992756590700439847045079761458118228474458601391080648741822513234524246027129840882660229644256274175244137105494592313825556735559445874805595936190531894602717316438368423550790066369319445606242650088140495832089190290968435717976784714174330771501479015335132596845720647666261668371858547002307441588283235903152503790838628175450422526859287491387319566715358236237606247065936083774481085480474293779392760420655857286631990531089914763589222210875463066832524192193126745083739895704557274205361378575972082492663475750701715707192979632055441463056277456569365863628199848924188754282502456948206020431783269254612935794794324392168320940012389897151714189824818320316053798147544160604612291301363199342366364445388177651773149669230698934319203400792051239128883305670917796661313929766120919741921407697810720713371990380765109517779566844830831243674426265095872745667529494289139966819948087942545233063117197872480841747588443550117737802697393576366321817698818431942572516701449103983147049102748849405728626589161189294884089676921432079740193769721203295958581257826067831988876812924304566401752852498356058026678892441384434999899228254333535144488492753451482557605112077752613959794725092950785801546467363419043546353860960362577445549807558723696745565750588551051463561547428347836408750278372183218544595375101840138533946276077760191834142418907685250864116715583254462047512322715896045723598505802354743867047143814216810793562619918072092870725728119533798253367139226443182623925008617777786438247827169622243420252997210834514005877002100740296987367122337806435153985691759135348953414538275355843611602163041321262984026529144378976690365874359143366861662609311257253555832321517609313561253146766234164149069991670503984588439631254889173300228182446955069059805582176673112312890588799918448293402451980908682494717820225396900090552956849606451638433739237061331544883010490001182692113951408532071774546521222318787330597723641994661663327737289078143390400393732258300229920554618890246918967514676143453429223138420054430200951936499348442282281439043196490462122966331016683972239852990264833346244600107972090798657213787724685614187300078975437193646351914727745862875105941676333953260435442346105909802690775625223707099678527430650310106555599318159608308539535423102380750655049886771266010592294536335929279080872912930956165188685322497308419293355190136907604997142049399437318809316464752437470319045792337527656352176571997330277626993735886988387614873112126775090844120043604531342472354778706379312464522801943262560864567243540845400882788814353253430923226986824784699220611674212003363386284876099614652345692125680546271611587538592879779461252077622431658468142780361312196156402350324332887650120958985327919358972704510797567385299280445882685704279723621630773009046595309201381516308761371396509392302178780767115909959443287535800673112533910777568858772095638066229475652403207677034382963742067531025711425342825955705207743594547947474757085482786077050226632796176867167489619368678684176472350804904976423898742353901093376943908633339937338903544137318481744255790795507350110750120273253315191080066546336784732800704684756332655183633047546576822298266928381412193735483841811208603840840672696926884388811935367311361613314408814998643779026594703724667981227516765752219985350267005473692549166010068887508932701529736450727041239037305286005816021736999342243866238408799409149345738776841220836426481361080775622324554922338580066857192531242134475692291639517244282735582108525353126167906838074265466906680240640794780374326860901438083301814615543505852227879721599292610535792198947272040218684385098074512716578585216580688236055850120869185903359621709125653982978763617903672462300866623155581202965602005813254430490027836182696674625689596393590890886448550964409154084498986244260626717059434952067082653329019113650381705467490779281956541875293887932907013915004696520004611331349371702975214754732559923227834340200921159834471278106901514889192768098082987369955653820090150238092582191170170569742799911808472350104452662452377294989897655671093164087986319892538349754795325133942727238868158846954148595479853990894741749018063588638354754290675907015003060040737282215550300955287666149642586709013792742533233636322964513688480601293678112802063731435772155335764111241941055008787700210154922993387057082899508254894157445416322121771419104263753939753783924965315026830776676990767076163359407988678824955301881262572930494455438580407642063993830983039701304189221346209811633630540739297333896955986971785138189715492157619658513831106124511844266600724182823638434857236267510457891687828641230199814398603107967207830519734283305415044492903318547630183478959478965584218664812705230873245706247670678664938466518860359462602131055943746020306364148874247951852389569719538087232611741277237518128389664902870111998500678043087717929649218733584507699358153960548597324198146480606699088785633002233467996790654994016695103156123572792824967212076302512765282230335987581164330246974922987436166675982325430879368629312449981933293464004943205682951473601734667386141428817553605026588693281989100848434726011265830811866142463232080472999833264174503997925183596544244552944082436692561973373047803922780877803596406961563467889384496508050396800454140276239961456152633147045850466883034537812806930162997099372778330047371941173687082289651832776406145941226005025754923312062520403608029549662265120221834474876152861472251694620958601074481332021181468105878105600303201716551094587016409661817446221797707061092973240704102317562862312416350166055117773164678851228910560516109120698660324384076908009483492818098599551186957813777091090718739416555328190914931008303235527161043492670004656552274684565109740553131180080547938238946430640415699368962383967974870671915310843818319625078533883710362271269148960424330705627438117341458883676284828274882024344034349730653751625748642879635359333138812102708187826222489968370999793696128241001843691988328553216967737335052093506622611914103781885938036666509484199614627684730080866446426424951430719896817422532836054375123775721577947023915502434662137376520502322647025241927245855889526940524122933677450834655642557698130233422567553942047747954899463192484049227002309701100321265134937056260854861338884685729722824152368669263921297086846693401033991191016424845953977314486126236316714431446585938598414296191739050553887306549455152852768341685573492188885283878377719686485778921761605931921692650876887509032361734985433820550104338006535750525531603801111722157038739657887688405128538956500651561293870665753357163639894205764127648345769770835112423142086464949079145763555885915199943659323239419858647936124715491426600100344529679783861089543350624941834165799602606932771623091866420215147645373351810397748245957086403788311718658796625523138080853357301172012597756873216384796722613516830780901045089309176735441904799921051590293197576625238156673657288511180032250665741681524451626414764324214528483295477950173763461170487679162415109871797134877906023884759310565439776960651535019139223416148184701751461164540925939040302199160058319625159349147252185049481139990629077426030574840379095379806125971689297835030202269499358509734028414765800025070575794031187160302396684802298812002644879853585867554384732726453703678470762117224319553522666115579379364541094090090946346574590815387912248519881968960808263694921158464687767514203686804453845077863015649030364740660273878945241053896684891763182226273035631915663898308422896933624227456759026438409086337538454536144864475366777877476922542346992100680174056425279251680147973751142683916855914051465718381686264376668313600369782336776856993596906932110974750889630791547290403680660531315285259169703499218303446510434764385915712946509055136944825063559950996303095607876426362227617363227527057537987078203913898811938417057632342190635364840011893982427642214551432616898130521712871827126228065844530325475235276455884262801612974905420300962210556565942985302329061950566900354972217093978059670236974112717124624973582422998732269044722057101963189504614946675010487795870394135079905046486738570747892198285772798447485773917752250580556209201550887880356588733049922051048847946054916522567922610696537788930315878574719674057567398397707239285516337617368385611617022027252709998752487688202356706150331624487382710903214752996534699582132900175925589544643616959642636054943577809576440777322815382679019353700583499112147075487126782954507328390152123579539013049744749034393565937885989324948930175935469468258467319845145481972503381258125738425602327230047179120696280109883594463615203664953630834846857029570612334887932991515496186849140911601522696750263297838115604489252947987453630868117632566341650780334195324932369621638895291092435734204551167626587892494464448172424465905350091501473899071148896307361641194967837727863931809754257604148157616039031564279638876505849770045771762687355785645066912965719483483460673346698215372726348438723990677700473625323639858192737628709626115726907504437609177449143844010588502306117494111238694138442741353611974690263833364246224013012588273444417882169068926847322213102373995183741649541391269634422872089631925404662227733796357058945052918768349784609126056669118145602575220084202647954567291715250769036527018848720211625409995980704637996279720464011497684110436435924932404497833842747967024457188901825071084057335778120037056756296662833272511794618413235700607837795908450617978226857912578488763419670400588065072969482333772279615429121010250508667876489988470720155779757157060172010600842805223915617674442166719720432889580760857708281725556525225303848498054120864853445965805742779587508896712290838079555361976286953012203038827898567514061629083538166552519355706445290364881319396200118509039783432193711092991012956920003831179260931063520900815539795075117924336141976745296350809956393000964701003755285418939234939817226787526460818292608090117883246158465076315234522530696767454481080730734046922054245487721005913509189555511215062941426388078756331583099767246980918299781951781913194322028749105041561335227590814550285510847351077372179666031973836227314738163164561617553681941030121577344653357449927393407177959374117349165764705266475972239643805944402738492642342454386326391890176190327236454891524796425485179280328084639531642153044897624693811249207937409571898191228109057808954636099725622752683667270735224416399315673232963788127317175437033306352353535882624339437261849884779826813135436788609535619658648262591934461558215722288052373685107572405160690938907401628628712563073161915808822817821039067921365084940435849929221957421898113815162542723995938415664207591285313377222519723256790062262286633436378311660017764098927123220923367084085382181310663180031691430382619872042073244896566161532391996304359061422762806873378265232118230520425349845538591165115577554537885961560411723196967194217291895036231780146852312465754017515992576642492288614630241384844570573834391131020387351917402342463540524714919881582528069949750143667512198828924891323805605661321579575280042850122296498387714053320112823398290902019052120880489856758292362676570697285181934274205042964895762579623719716190427911114646135121371855204138895782971623844629866839957398115587609022249507046725943332031615840017388028045236723942697199576948888414127472383060313654427380786971639169947716935470827995578001900873866686667149493039990145866974439073857770941038960575018694741232164534560191104816313761880702472180902339492865333162923095373815277116652968803399491881192281695766648044363991936297171570311629252154173536722015106732926726121727730344592399353758355981266249830739441688295472642105980215976450705227170640787680267767544314015332979968240091379693224518816605569081152451641662272156946535908311430352139976686653254690515823137979865658726970683213125243433870695308897348220401230823966803362245304526291796116348300431525512496173740344788162448950265628546677284603466026255828822874996931816446756030695165550354954872829886609552377562712270164910717464311892982413254067566189658842526960684276337440110892082748326190983370927313080726911318457800444825151114783458238141378821613568888638280413278569504362165113155767999684017199022946778890198231192360239683441039944269765387299934300004890385590897224051055153340886052867791778322972249710505207024316571666135508465654698299146078406771236237214183251710575394798501880121634596978180122011540252721155914068509977891522616895802470804785426849127687422555976411303377489709523537201813894045148938348241043377934550691745447820621185922737753481249586460427865298399231240118235771202453578526122104009451966325034494823653390475744615573550731103554562635682672157810050465574043198836881866405524518293967688288080457297856679918481757570595768930259010400588371261648915158433883507238437864795882836004153685988027556500387389497740100672735652667910225741024887613076847626026422157133956464260298674157201620577746351882799660020016671466629767519012702901607119554560603549241844768417776362346479254271946602548645750907076855075419980599232830042855303912937057634847033400352835881564490478865909681424150068307086997382145102819052323257138936755761896414588171422186485097659698514056970095727491447474790615423828757510534087344178783806429910258246812658939041778166784519711170595138761747529917227967727462640276431154511844003671186402373036719901499701081006908737161001836129460051865987906986562035899408012364460014943599150526214309827818438408455300753422166254097718364585153140014634543769222506286289706568954194432340997020671557624458471219648138554039539321848071576682482607610077427016547914761702730169739481073948319523838690211254003123039022974098006670713095158622980701056698582761985117958807596848268738568773991425799018168094888678526416112041946973117868997686404572997355453019359576583854725978672426248977176243933438097452285991265717811139704065722248156436387282672348682646014132757989330982923264009418881553211108479015482001828744365765791749641279103377766221671783885007608095490343646738491299353928182251675641881219568438544819115583481380344455969486695604239627395417872531342181982409633824684145253757013314135828678786884620952364249218245021678776389481192140492852944716905162915016962721336770221609250911437922340571840618318326834130433219831231130527410429970676055509125180717796300647989616392427201919023990730158747747297264163711964456656653915441385866918657334568804198941311636597951699484384751572219585534767404238963135436886770736213173563508320714003602504390247121521492561441877377768275408142970872594337687877666997599662404723568928364454634216706052783431271072069394073133826790036137436614921599446543981459866713501832124654898962282166678382029593006734941598980551158079991796804511815803174048543557788522660433050839213006079164771435757001211161284592016954468631156877888956792304143512790438160965565794328564305590207736028534370884081570350877538553022703190827270144480633895878967622036049156463469479356378906668102119708206596511265041698776350498074683669280051278946645780386150673610668751602750036450545363458753987284361598437523146326039911379838351431559751806883668239220612327280729538881193266675911327052984198121507745024089166322638846921710010397643264623431456458482070441043249328639496000762154141532658242566817164359883492444282521934603021210421323518975517977995504628905249028116658809281676245350838578313110048956970506094654331196735139868698716252557607252347697219453238000009519340812413095079199195843616565772091163370748286628066688355401513167000927442450782977089327891427655698428295012523247371577463443107252670759781846634753144101022547267055583763889657294939623645514245829303165740815214057355223448663033408367689940030644281776993292019667654500630224055529493440051942277681528721319271333392769169739512410776989418622906030111643955764929581573177901117596893309266758734465065804472948450151265331646952997150133746261991402103647025604345908916714421344492413571913260667875295821227035629662126175082345797549126265235150175763256153716969398120363263042604460963315805500549982800950161755549205266919250434780021943952558823593194736488889129481737523220490651104953020061488218088801097011829674624556039674871217002060701319848850621915815894793875418666123093695511708864865154919656111984888580504674416699427334429018609803435406060806079406881005257135237147249988883304446854159604072481979958660178528021499364746536697606820073820804253951777551800713741913147112575478929671350000849713851838784862220112974301729220411234031976929760495911411018508513972495508414343109188022587381857556275877875405096129732193115974726535790411761241232502264119725445993631135441883042301968499557809007829848016557141954906377672523818592985478399080522618874539702797188143298561609038960959653700822028457073023808553703373195276690196799491284251999033439907484045249758196371249062578152952763821698733531354324392629015671375648417038150650785683109934322171446642555152439964208968092332331988681898329246131597165782915121778525114588511461537260320064120905138348008766292583815373044016838777410679732373980232555175065907236451437390311511934187731019471644476111327147472072787563379861045286136289343568546939833476057557430308479372692107499327168752705358298048909114724648467479969483080352225343784520115036417861416169134371225855102706155551251881456196674324057405164611990528620996494183443928403130157299359809727936321549012617136416449958405319655177935056294191618174308534282757304506889335756439468332551322613004186474178021171121259324066252800738231568440160560572470708566057402229812904880114544511378579117908188855356059554848778309078750962080835683061663967131058129309043517877964281558187605329626097112534248093556397823283556155810684743596383358292556938697719231894091720429889274537029570750779169333925564860252496738548620893994847967329370613001808074497298493199605019897804260171626338801391582684861024486495465393395679963170295477923082649340342315669539954632573773938895618109445152237705696344217220996832264458524497787037051976721161815137271277820707679359982343586716550955959857123570453023766508699022971463725563346614960078990518518877385312707285229640523807573275557213115119386374575062382636175580219207298999709440535698552497506555247895887226289737041871636208909586817977590534634132996581467214017899641298612987159553209248544447637204433964462148968326687533299849482592636950650055993810949550319372119897671935869927242563032569384421605328801273486363468918563039376646904834575644848171654142316136638419168681449979915918257994914405870031703981116565953279540947868220050873171345158193687175033726116276000698619772472985553577460486026309645106021803688352205790391753549554467901137054317074218195846994901732599940712663832483541632283108494592503122453966435270240507159158423809116856626843363410025198850598945819681339041783923622442180396969388183767653868158653954486679496775336405435301373250957600156189123239398342721748724977393030553664272052793396326755315514912864766382195333446494098606182669652240916753801486658922562526778880466910716846664797813598138745937651904485455143518544259270983883551074718162078304065461305311223702713377107822629635598099073393181156712839795490868327058346125536159066272260718776196546653239211972921743834652474644706160325340625744106551146167857439375771610883368108225482360477475581374024369799796788101775649342798518167171338936401192676673522391292999156177641698799848499264873075172229013275506494120659607753843594818924957071522365609084827945596671147670443031309928620448576892607406381878573566070428078470979545675947114614949080642175494579010842610620621142517418349158963591611910239445064265780279681042162245485654718487796631527496444577035555881080394619628098935462350660989968194866038596348535489543077878031400533635493790589502582838261440158460551131875789386720323381137142637186240886585450337763302613321839065562822884463345524331045197792246833381023977530784258166792680193349422849158971337254277852666311943611671733822802116599078176419664088298641783214496261162770592737939090617999830469490638250096621807206510873876779033414956496260425203102593740482795667076123651706475112760609092617429881388482832200208946160925404275394987429222116855144940617605474535458802621963487857731914890813537681163209115801340779595649999197239541402022107685760063078583011685264142509700643118587153971219640119468426650600172991669174232948512314126686549801358582272391153757432103656429439233314543930646863954655027841018792302527645019489393018200363774447242848676727355422092482202120107844793116791270542080625125061439433139896267430357989060780449219051559113305298105891407457039420819129419136207050581082005750154758936797457311524675741125268372782581706477894551378057780738046029417572983452448113720749133758888394388762241373585555285795566262690308513291726598330932991319945505558732705108880293701314522148756053764617136924712016560933708088320866176053912180342066057722500321426079450889629236894720552372813307440284743360524417144696109778731726612469504258012622832800612714711835642117674596385758511669301940311743727738851332559834211187759118559878802894279272279757566520497080596659973052841258441351127017103012566605658463454512222936547269381142654957331621690838577720844764595229068898250545565898760748804909277684964128038688297086027467170037646067586162615131951260580414053749009613435217737636686073225902434625043394612829858896142399562728091477672877712086859179501239703855353588764788037972053073873471790704332449253059730794589395893649836942983270193662232023125274635206184873447051962869000272448282588509296015508456491449695732056196320786323906614487154965023479634537109034287165924427817849601842167978799425402107843419769793084912547803630368386232860733021242611778383502366815967829894119677419013061726323235568380474907027167658287272499146768266534072268721513490052370263493741617588339601634361698830557454384584334638717461270230252538805922428484876213884317071395482625917400323995215977221024760155393588369613377427584833076567489704129598152026845338825178890553201797765271566240370339533683731530406855255428420846022548425677922928035990593056074764893227987936004110297746505295652384657952808385859254692776888204828199905715739835487295538112437198031194693229059713705685009631988334015251606924236915643277507051671826989936724315823842002829721978115865634981216237169878368253575996149662117249563455951974833133636373041446285744387798479985243477471858950731269511320398169128668268776816924303223327960641481778552228995427749649330521293116889968825449423391197440060760973711974833210126227766120207868427433912468019977472697700766797700039867417115848593815064976566468959863300063104522638521979342500906311958411786972341401037992496046219750258274897240683469338758818284223363545653600961172996249891292685445769581781853933476363984442850793589522952267393426068894604143102721236609807396980972365287733454432467869601973086811244079693038333337730931237542769331620333680685980310364968228704866398637396308165194275933795732412939038496712153698323738080784255572311232426604716341017735905191357502443812863673228206446348533565443859212437434351566721351722114666180314235355878199202268770891519360987647724758971792458991341989669356604695888632551549053954576598505766340420785984282242871637674751249819359203881407948845458361888751220340491200828682051273544788055259582990185712486662884236385715143794974178817619780905833956941208725077290733189650408477205415334045031354358621263734113886599151540423878820447425769979604480865172799523711673819315258565087429211491869236003910217146911141301930020046336958661315015313571393508390221805825259677580354556878685811913622060217216120428593391293386206575221271199124115267695412502766883858335076067572534118860583474519886103486763521809591622706438709156779792467823126753123167422179015272126571870763342145252189104542283039881719563880745350857311686526680669431299497783753112571326129621754433123049021035595237375077557521428090663877589057562656286882209817292375417691227975343144504185693659636058547522505406999488880606607022040772208680732102508741592635649109852272187014579495097808805278464064503427233365377532494334709355848163907288190398690180536003386660097043281638823829088521439750398094969788210049473505525351021469199452530865902077536768418447140616153286465270785561184576814148270522467651034784016433684447061413441734970630666669377572901990311186586555935120442330625459595170806150666949001698229556054057715965144566503198654537650302810834711455061544528592656526222829572323769885447247056024247170994738808108675887149554842545499499562062980211803829913350758546504045680346011090030069113365963498117199340951941608980089326173620584998112264053208167551573264684853939498228696484508440341940978674047003088762378601289428199020672454489346774516299790491804181849994385165876732768026255836613932047997748056716245673290970807631908214642961210021980519764168916261418926116937645315532621783518492308831712011010748669961187426551063831104143252189944745035016922570235874344160109326514082062196026973285407607364962042935239258472545171404885951561648935772157927235360504882266634952238405397122283422204529174455349219466878352365149779939544011591318067258241031104283089025358302403643603661253737650558055159685841140114512073333279469490960407273979407577855438465944803705448496346829385876737361869404733805111985210553115423975154746293757685712763700930796781091685339367697343800898847427306179233742256090779369946995200155389973375334553810460352525519548989223708020627043030325951017859240719825857731106072880813159175351731650151761541569273315387793768319629223240865933404407285333428012147304302165500049019817494963405854184862364532326145752957614803062694658422493070181446123046305237339867396457954730436874159062255160958715787685783237857187251335732341262105711225199458268818800209364047393839703514781441512673479354904197395060888941581886505139761762509069601693034184951096783135669040811221239708517318256177055658017331316564753906386668615936476790104869019737477138947955670006617503978697793660985017578034129810117586303327073342447587791503382618498208533409532641965889865562336310616909360161508201509622305010367704477659391497354277650288557085763054785462446165855363453774890624337791470847661483899764938532076550672622587412631859258946125835088734284696246834124788208084566700542050111607623834331207680850997940191411729282106373957836761323286822507796502082531576636392998023496478747601720096283366916998850424050350643443500445138740692505004797251962868790510396166497665695325928318040367318690962299993986375912826516858393806413685454861881954278636029294098586695723500450194685839335674646167427239439213578405251178665297538886990123917422247406453304339689564068361632480831824763264956884932836173595931581409921602050438384813787003167592522278649016983423516745273666511616578664212006347200433431621154318127510402942813029129062677403755412492547497835263563005977734659015133393093876332240718912717896065280929839617210790106352669677300387497814829722148529876054829895268413135514228822953641685976439557179869463008716562819621183277187095613330072226930054922105073551778623377577023788130868048540464603570471792683166761525881076293981403007773052844045036003544835948174991633813026268053617634515867236122845360604658382090944376597107879992995522270004777803825767603364468061893824463229761108963245476183595272690416642231044317080134593948204648758876965552538599092595036549066273167525561672073680022513249332506383578389476288915499307064757814382289817972135252616186470219018926087950899227101566673703629544505732381336945949872340775526450462850439651597604440941040764910037847923414655534717217430597876648896616661368327788172569821865881203915138951891206521914399852031802488767950293157290598350881046302244100190597871995695304650465727389255081574794962595852462534887613936105613041528678601768490108232179446263153652230019724808752969514805562436353945195452433203624811348099158528814398149497337306017985246928884473359609034039675464444531285714749170592805578254131193351068958210632805723655415430600700185438026934176902871711183007291100300387812639502399345182385516957857955161924609089073987869681364590338897448527978684455894612593493235644977930339310448644737303265301608952830463441285974768233453034266474979056817096097279065683098442388559233375554593379105979540326953279553284780676941745321870841132974319430126921549239577339972163083262658080772439040284680517322297044296507482667674367751514163607893287226018129827988645514311308367929629544231709048858508355099951342129175442535331154913726490577557249622220411710266797737007093652391510795349848601590702208891527203025492802794897460656618503432849142379568452321953419219587426244197355559219355925367410496692562950586375688043398331722765389106031477054325171019024168281544594587974158392718137459252963733088431740413782552231309739492157327920525079715942001897883006675513834522886196172178429411278480726139291372093805617960967601099829133151428916133958508999907616789242849029109724787030556956844484175847072990662189371641771805597610644068679721197419517278862684651574788174505828220508875874838357296332224108923358777863159083023532454068392287927341092812402065472106912727841809778044957241829474020303034483276052874825004551774307377066939796933293538179771155863504393178687736847549541413402587614970854983473498880655406708388631907664588923715560120242519687295510016118598080979944669583781318555131111050421416746833112409599802549123970491818710305006709131871931578539463011345319959839010138492642338981268503877880049186875949367090931029788182470023119572762308413603679819236791851450173811955338871600765088160408830856957168767420885694602776853680948104017131909029216346621291751879116089840459228372290066363240410798732877647620513543834010487664774416994314859507122753649455248902441161600422870833286078806399253888240300538720279407224782536128676096198954851035010360859579372829597014061981686110660997397288316703078301977523599012909542124650282985725769613134071102884574817817711885804703814469336776625263882968156350816180754396890285768103077310256284261209361816749160129123095087912687401403153286524562819872458056792065694007754692108555536902352052779801605061206500147714604966892697457425678644158516772556487053103921248803995353407471635744286010473579328923798937121892818173123116703391786158244074004151344414509108603086653329942284001960828760439702195455730581012090645671584297257919264771148158724737271447085256009429361574506056835409548674804797405954269507373725090072039623316726217712859527794673285211614316910137689616511976337724676002245327176707661857405182664460024772799077644294341498235776071026106425541008025993012066087333414674196979089535709899405529904728924360515121485019526943309644917486094086124511258295341782664922661878107372978650311081423979959072650734269235986462045943558505483663723661122024287230756902552523958205606058541030478605950720617063522314512062244492133129038028342219051345531955575011836788973922593620022269675381268680627876733667225426937418724350157368407919719761521425754909070248751735725239120804418253161596616772467968330773504830206096463105606468865494205669689522596620601758445674870579905127576942992941636534175555373917851518902317998307271132210575987049254087548302728695915205020651685445167282537183281286528796513681090198840863588847799359494834662521233889600788616745878411881459297067910497990403180343241914081907013825510675945479345874486902291027923679699844803536202530645040313462374045017481873962184521242960130373609764317127336543254384377149236416755167813885706055159193770968179124798480436672316342543649574113757062221571896434938040850572912545684726953051818327909887586801972590752781013615601228581025867995756687132341735198441355692480950640626812199329595231667164418459280643198955378017385172817156548146101268580165866110426034185091064398970031968638611372938127757542238230877453205900042399997965280786575473779141019584952701717071534656965168607753554884259750722075175259830325426576578417803697519812797787881766238176067006414579248160721885860562475997044971870083806637112652730662423302424520588619425474374188120682258698668099143880709263341859952062277692733423753067474018448092678176452712814935182448535578190237556111118774673613691598112841179128973365077035649076616173248307440029722224321838521758006675107556347487397538950221331746055307568239393113295863873112678517270285025577182161142445077282149565736755733944454595802829352465411862695504856594481556104968385174303623030643644924502629620328873041262722821901015202560463947268825183338615578410570887833700793118741972959438015918554196947056719535006418100228437027819673633710221004714917868181691905302459753506107811200716559703003547127752858628848528832123690828673940720268533383579082861981082116376168110653366233926006435896407607170925702943512162971149640106893666179577991787192691299116710098529543515831398933969887498293715365258790751361002466675506486834775285376496298246126161942691031815082146715802309752077017180913481643653633618306857899690619860296932632991984544971458956987457462951906774959188924619052718312977335828450895398783712808345567769766320759088648593499749749382357053484558189759451433798778640627222353615933991247999762849241039000049572238537758458350968899848894412192140240726758320109531060233818115085111546709351535374454755813935046483790159225383956783992712191404601931383879477156136402989820397233981714846224368107151677978773914514397762736963310378780084703060497683622755686359051802138038809582643114876272181261727077230325846486904473083464325102122837913665024062183394995058312960735772174918727587716037576943249472779997532549168226368270887522796688256720358177738340499682416389806936765751249058477094173228064405741291599115793601510907597879211944950416605163773924499375694664609394374240252583810406291215257351569955486349922250981005262687805136114826086500505341604986654143344875478551206898131239561816997877460306599133757235748851048279592582241266809710616669406590588479743796106114356926173481394331565527946159254305089709076373309898722788393065593508222153781283652298276099665930521809040231114184503291665858209816476616165974710591482193968129645719997783280074230522858950359263237224144047509447044194102127343710971118432630929893942561825004646486463926035915354709313802378446502489940460152209528137819983971905559685321768506108479498330962519022669920498981293167073053449783808070653191256334001184366476160019632702204982183943669912153765085944177386254610478457092175159705938524643484678780048166591706223032560306161771552336236767695093022469366856934536953102788915488778337000650209656927364813254150327966170154289939544132871752207113462324418694416100942182323860081453359546727431819175603446680838945221324944247901486016386162521639917090137234047383949555886839069131187309697795437017403822582789768794871784261201514134862698933220366424401547226762941833379157849568893417403112399213179814420775934216529762385819974945517497074690077261703829772113425431235833647475031536500156869146200789408134654588582323182385003074929736810845599989739386296435079324716238403443358015409108208105145403192190992653638435392640288108422053013572692658235028551891623797179920994801989872714941587601844361539708616830412205409613930392606384000194075639601182097083343026938749667465185385145167826647784724483450944408744717698810975580691756532608984289337342708565291113935167879620014989559414629726235087395901211337241422437229327842471582822453107033124219998573895051613805449204107553127441757511137139823414474582921981496614414182425990021252644683762209974381284807789918558593589101340354776217898238177113242799229450025960922159884582164941778210414774247926796652515706066018335644199680065923062921337016843105829101154803692484233619324065845306291218718136953294522587617863556780967092563208883357860248436857206015867235908977808858755481195539137206421839978411398964706065855755110981365111672067888761610301157638906423102936867010033462452748155765106418092301849796105687086231760248039835022942169561643401822663704621452426902794910825038563019418777487002936773520448159743442128071914935244392817574259398963703609810032446103706047809756114336823417595591236638079999046297492392562652326232026455574350052496146121795195846430659792743223129953394731018849859299401823154801123994454442682876548220639261975508922418322941973366453859098801774880605674558823582577742601214958858536227326582412452089487310107933691227813359392324744873014337968284901583064122941826247171168716232641308740094995525655392664540136934832881509153542910925706587672477079255788990153966882700009660279437519325203008431572811683444342836296697031447389770289686148943348546953481842114926525736796849138258882223046663643478893802054973752537901255866057181119741523358965295849650859906525395584706099388308258480980969135790654921432005039953523867799095372887352314279448707979888973055872368914935990510723945156287940619789912003842855976409292072948629992829542834164163352034669511293709594804515618962551492302734329371650224574021786066999944429543392857258583349856684850147518985722832656587001339662211603985124330853846279534871485662626861234735346724891470419228899561576169887989728867676986772238213866405723157129452552680569118021555732867969016368176406018565743879721797994219942876032183694966689700586220523331480722904761182820922145226825561258653540454156285696328626122350160673415598499875626366342176586047700912139899097961553792415588089050872679422287582038651860713043429122758255210399961175398551374277932468194069491384577811719840351050397209732188648920871487022040711776417489023036086495505627577372468941917203263182673276932707072139822337607953352323412110733686796689859226508529569248063099242053842992580206808302538873778562497064394552848392182961232746619125095122193359526972022566408681085296217220330856937499312480410001625125812576339927408083365906760499398094355931902910049637937760791303728498178264328425331340567156945579640377045909386390030932658823782006856464318809429828248715249603836099133161073081158448796945359540728363046398196168154080881847460595104655017468090170562908578951257341633941233103676264444574396697918059396024720475460556990667827601043976946626984401136898659358000477466758549754012208582387185011913160286795125372227149465036143062058814050452173341890363199197641630687364243205771736720010537771143578712813531615643109520902388190596879350579750258677272792803579527019872430350935303625081648249833095283224933611107374304779846624809627048777142743866363630077710777667540154718406506272752005560247058127486163469250025701091792458816797427492973454098278662920335675708972154101653227353948450787202561508970246184451800789074418632221315549387366899928326521857074210161571802189849108135394670222490913651888190461287734928754143709864656317776452862134557969633214903711324881865385426380123018795575036028234824947453128281468681410191953423149759790882353684196712187618705982998718593856470378376769791855276227063671251000401373333425632256195450146111203802582374838234817872736943355277822104551257878799580385317863821916287978972265590247580463805810423336842197964012376979532849144000281906995615394557568441302833324519516607605674175900784244133486617755520879582407450421105546483040116703028380392031045480867764511493743631372913746614461371673697498129159131011204270369187080874731158351407759210010856988192411084408412079357417822947860060307872615100268580428107785440297187295288829646445688239720252466242624168561545252989499294148512150542696014959865671025556386417379725605650703259232965805929129119334346122843134230597536895710917297866229225921632884775471317860061142923734607765458081008149859684252270709051714247603008717514522486568227411788734722392866234330672425859204325393476046365832956335001865088151452292432100938650137659825199881393360435335612854968869351041294493113077105980673345069927242976533868074062885589678772575774717065312884423783121397111328197513177989110797192282907686661696084465662863476376579678153070564610832024008505820212595743176573611997422027128874541500275441813745346360272486716496164674598613315312572849965802486284834974546792460798304998717192650820858689450677350025689839920754527146116513276847012903950266904309596189369464278773351222700662904646423892024798623455780397065795221536127114995690412293345851316085011319393502994993776148185035040977637336591871538920496294817527290122074647127137568362418885423608623649583074974707334113473562690310053127973105304583739566566515954392848278086286135112362945216564192545390829684389080411365529754676559268356320676360836051762905270157695636348687917403084183523602315280622430161353286789071457444488158925265849035316512388082516287426176481909358582428127827125765377028064497898900453347468201783032556158514493087834682837404176765628564666477805066915181239575348851423298134160658690669105923724628488432341691004316172708698613745441618770763754809901460184454487546108427802780194249650156536449944447986730920416495638182067688719736854032073125270264009485892284903744165587384293719756364243442324395425883428209298451257810554331781469372096776860804422430942457611589831248760030561990918920925040370859530707372180752937666785077753468189247854685513703598500777658045517685944285027937255008029692615898043996695520227026299325138669762407039521021010366164393588679932323316336898861281876945209211520891997021255846207708165260437915274786435449657757464074964892336337065413395975961782482305133513758390297447618451632675288923486690505209730022096128139075838368977610645850205576320963777591864293755022520859703619757515001186064985946525825175146581234836396163105750340141101626975096567373922884191099645877034015832288179666552148923818176346889782853505203614331187010594113133337490388980829732503871518070543442594032098053755018182745820291205212945418626828409488103754073142366545493852923509990445588121678074835755332703589940795126199911791902656974789977533586462429914487686118642558741972105014164516969522306896565352796459869415449311197882264855671998326929644283655103513024326736147052851197219278331051461122316214231200155930853476903950188889705988464458141648046319629469100589906938315470361401050484702602930907058032750831265132663708256143370874010949946652004307306863502042268005802399785346370128191879106378779976171092827529520876620728777925798679788720595479188237381532216200147562401729287636079420949390341264095824034892251588582447527539537308938610226806763498910651918874213129001507323841636282846074759095268081197983596336718478274616083789591745159959635636077163707327404712750259071615706947694923448032855038894492997006034336556566134689514580499921535974560401008100568366521584776829983568719820911706530269315324652333580880127283957463044502781968568517274686625259932851455190640570629119086054524121810099413137413351361619266556544736435530465889204494660449514664675036819972590748566595537376167930627962730992465445532696766717741241314256285068102719179125885954673456697128387012937650706380100014269572809677657698422553103454580474083767931496611443539847587029890806482690744537564652974108059760030830677149790369349264129853403183878234563370925507433632610817022577292077483994443562058462634912040199333999782884368430516186727959908250539666734080530136011133123572422361602150388942014368372867858636691985631207187456160083857576304164405753397599844869647020505520562654429627919964004503323219794469706690869890626997250135461315724038560185591878764665378336346985295191007033231172923382626062938251020201079566526674799602407599497761943308692252824147039002137426028174744769294407377795812306158937408932730818684653800021994712186459404584046819219814238574067093728131296664575833020597706003754916684682442969650838291243939561140833452404825880255496052937058505871263182880679668483127177999065765947745577818055728039754694769611367871200898104211927864488726266951852119846736027744556065678205721455958782003144345860131621758726460687032855353373239754914877284755622169837639940954956310154700073182614462041735977786183345654412262714356186339715023962762326206723750838614316873714141082904601925042649388910904769417285101626514466553559146537987490203954767065257427397092332817790285822026693732759656030309064237263698296966522065280169984508257541923322072983145878633859786548790422178626460821495109826883729022078090544251399144399216207807536864131148305443560010942262664738920120988100301877064414965289910401037495794168470218281062519054059020221671841326320211737568237236411993985330774362389794675957368860615398897932392690120605798790847001066866870879568594958980898570135181533148906279200060357236593779246860766685503737918687880078364195814699134464889166265009966495376082503186311193314401103857079495498398152634934994778112646339226630812814427184091852118688125095687319221831911092656531083334305840690217630247928707918110190627390475829257236354060182656414583133921283400872930890414860624539157770682144051167665292367710273312351922655587069143576175482916523400217992896189156549663330257235603777911764383272772103993947029834317477376312763716819633807087465109233949196518645107526289536839041723275684704887323152932249118681222136858358755913519536682191096218097203852547754208732612376719030610444671362834003775265162736903139947185397135772595359874787073523104738992961344661836774199520723146790183219520328968745171807744156463941004123711863689915998970945911512481211364412223016859197065878850667843339582224676962469793612208272637955568190532035753580845213205019639303005523634979101256361556667547737650872241910045220203135833513214089949174507871343464296096153139572773153692645663687761746835550378232489687856784389820806425846909812485829934100744375161708287623849739014524537028169630210301537424139270357278803418590873067950446757506808242569243494458447526872170743332244368637340339520106700195275220261402805061212828215421663287190093531827097153087743172636930814571716137222261829836595788096645741802715601218093535218621782465872496357003062257144356762704885964908459162268505932857762982999574380813915051399368643890339740255575684317170163019283763055127680680414261056998244810297497367098815564660415058343390106943000935136699001348256025893279651114377011280970908303329349930827707317527195200765097474250304223741006833175109944728511085067414664052910304490043425133545253795692760533437878457290288011065041449107598417149033853935257775284801294450359000434850225032345636617431237620623430495289387901959354028567312800166199092763904875591246883827812472915060778560053134618040076575153249371241674431210073397831261813503202539352190205622272137351273946622701754913586934440090597993907723625834424246219690547710591597486807815151679537384891539158393844323807431817422021154825776952419538302067739642081315655258835726159854427036341478621358808973019716100704152782804559793086667351708038383947574266707812106969400241031049537066497240278240833974527806318715225627476192252668493458680835243681721496380806572028851499094010460809280105331515126300814209589672337959140194803020955042554884520179792650813834624005806233937612106594691531437718147386917560857161691075895786565591076056141729265564936939921421712684053721515316272225079375353033684343290273245328221083799797654367391160334854603369583978909718107867236681619052886437774575503363428409287417717799243992805301438728725652958161817162639532724269294018275903657370231242282006064402940408887988129312362548976500647584751459002093958380623498361402413124887243643905292032513815505709282015633534095275423675513865126129931152036295919038012832318173318087852706404668430117964333019420894404358631774872062129008797601636568098716409226434841638184406723365643155629305539914930636621394423052126989051285709045525431046194467963851550475049838138358166293466632621328697926904229958068276942420688647570901933314362658718275080190505649625187151423274270434647071804547557164278745462391852442546564642418593354551808303570597953840768206432926894527260349304704290860872507086356858961968743503252428373895382572249019499581209462422477485158763326513944406088655635751876129870966186122188640257439889645775130550990158701706154083220105507275230236422511555905411955855853085233641414039595709540016253438998102686514791451358534008855969544864395309493201709600050267955537516637884047929789062805483677215436582628702420723242635653380648750507091321395282395094301208610028683517690968225236185077787078865739318254444877535295622841640818096130772689503161476829375107763433458753274088303918334142741153577190452134793439568245107120316749384360233158000507111211455486971698954283743876907691127069196330627414628717752193283835591481457873199158690838225831252578331344947913070222022023189503796335477158652102816393021933954722304462992060668408337696842319102346106914275348867375779090240293025684170828110290435695800470291936588930195539390810222037132453851839111423372889928367191690022703998521469419725857530397152191718798052379056148821670498149610678101875157106874539585572482516695173506279442431191743322257378934060483707024453406468524638125297891019243056533418857390948419977487311596124596840415336790498712380759305545465550764345077658998925234177074563233925471964529996327750161397916260608881471296901159538994923053797948687768423256150882730885263199869895756226653065736224624839108423305672546527848680482944123073429610306193980535734620893613610424961758192087272291351999646047451048306140121973017691252550296875168284976780900276250485039299359239616409477952559096499897340005794209768897409559624607296171299057058150223072389139132746067705100247433827774363393774588978499106419868072264478670254208629179484318267646369565206489505745926033158205200332285222974069043353138953543652344641803379108230927643986693952773592914126838159242356725835088295187642267560938613297640066868017780213574623430829407978949402614792113723765001963004570718414393591418582276004027617323206838880806108970209119215581719921313000329953457480809127256387990571494048529359935884147805938913659971920769960098184629809526225933046617479574350309559716282661573582567756698755358973425956931186370300526890175511556556787504310784499110014481841335895088567253835107977746018854973214893715616493850510969676044602915816278151182827936567569622314083848062065285807229501082713464667552916063506565360293249173865407991110266585778802665687371391671586320369433511736652675355097870037383098889976194624369823674677201003126255312022765170819464938222872179218950686793733530093029789459281294916663172531994927482537814511349360236155724516604210015258553421026765162035730547167294106113307609493967547688406624203263454449506821699175995484715344657482553871347121205559051751667594269900273783359945566711898610470249778017982168426535976028483598137453575257385141620444774167668766821797058734590719722585443716462032197899178060378129309413819284422015198145286679889704946712564495252570932100882983415196307016949326793720087512521521035117245876474166739270335892511814648453232679132584133574015872396515982600118236229959162674836427092071119037984664829210155418874154230483229839213811164865046844036647221969689773029856648038029695003717072044713264635163543351679585339982415335787963212129299983317275784123984607493025596236100736222702072652614590834199490327285620856759395654814547569998154733902086164022468785268535106488892342390026625555104568870168444554649426072815560026314436864531821659298322045404807449846776670940296907727045153721201921271182784487601614433969588351336739116083317573791093375293982555259650283431124468120225354116992898295750600045984809690207326015518925510932437780778588235481405062153003613054202518919037914303528170923111029120884778821520625609884781863261429823342627412626452769604651527749013088145653097539778116463116998326582392964793391581921001130903814799505531989008472845014323838851439996600037456398429306166684273940806312027442224990703337462870184501501328286336843862813703913569621858375231911860559097786931821030299818242246366914618854776372918150299078080926568778425664555821468722810922521711284316820084531332750336540080421232207663979475933138773977290215393142671692144763388463638031940232884445205497560509391789556334285083134333036045697234273083240023702777903112871709078283389477620095394271045533896060605000541813776699002247426153097808316609123426324569167951382493111512717306400297041357401657732907759509697567490891752685456038112237308339766278390192266000642577175926228258496106140500760921532516617189670454915913706561465513322080028939029597794217833487269331264495606951248969235379577326422926240791158726662966621181076287386153944316173580342393444404524660708257986583305337786576520556604520604858382253366592252986051133160760643097261980990787314066091440364279080711629506322315966415675374029262540600835502906801196764517294580093203438720716971973025231780980572388377301520413307396037676045770780506704295153764409775171994764027646638937894249840160573001058560499398465858058876447077409456640195971163381879768783230644033104285121237505352550092166445889680100995716601389520078134109189480965262916866063373713327442872484456261348238586588114093343638655931587754820998252875539182505384904661150159500896839719128852837741192052023817242849028100467299301611518941207395527523166052402558515698988135733537529177785853265091291722364454531001447293670322263497090039549359625532105586886169768762756124853524135103809930430260771520921018130032376652389908303458573506495057005315306909171050629967574173210672407465828739489904639789585799302094459803972061574335713158828734802316428017783637411603081375196431864564491908797794052821324855625843323707184073275762651493394576399837253590462086778689109018984660076108470986495576999404077512516836903354163284859899469017673492193403350034771088151578683494207951150456026536608608406434227223844402358137780605135814020639195902207339889421483461611296714071967370644186553480683737050729756439035318992487654515253754875555469737641360820481174841678069888138925455419121030916843299310604968589409629817085225762512345967167537661744852569957324993712314311822152146154272536982838441936884028324252781855362783900159746564575541006273251681407491850856220674654106701762371424593054066034883254310535553375669656012277036313546610506919961180066865760887522998987614790180944212673080819059351593468681004813107229136441838023028311826433341098554999092100035198259082902737816188584435121299048859356373644948385255550274140372045679125626392362572944679125288191138469454966321181037944032672751519511254036399935441172747603771244263042672711350905525886168663151083114910288049419873335838522502698405689997267432866882541982648777745417909653880465778570421267332750613735692123389525453119214324555870159408047032685305903394533315897087719851672978868775192813870599343801066759564166186614837125550319579983318783276024835268153595003450256796481662628636263924123283826176527521958524178837265180581706226992983620879417096202500208268138891689538070149048846442213460361367301426629181902058145217849183309847767212283821616809270355507801495187620315661484584647408641148314683735269231960433584012885158961428628631479288796291126202293689849217023665874678556312484746988378002247469509577850045115785469326919623779807121649468572750716272291235903666539733351305927118093874927993851013997851957554652143109556011880757764839595579695274489939159054350262430563063143562942492646544690191340124878204663542136108129208448501123135534225458949352373965839197795841402334847029739715096013035387796950615502385031895274820647801449526487483757207490236095199740673541888877846745338991406123122205851284096130415722381940614460756984828144396619654428000181854047125558082562510059192034000108038226192807649145992502240907971976827819477060749941001143855784031823636315693299308302039287137854724565487977528711919070819882653869754899200933361697260362461812750432564770233539014101787465429359235573669268110128532325276497304370881884117549462854944442198289071027887530170198175588126520512034526370729906127768875681808465622108630482473855526609684678920571557505070527602315999434884311134873127166973677199844639768805929059818808112556751025622028998037515218449568893405426303368203421561415623747185284023521412847979656984109065869250371492476106688602091535392279912553335304576820072509295084298631812570745816894476974661439954511392803004098292440339808695736530307966369158014728761801569770709077744680270221578603787838490925705205767808179693000483602558950740168887431221030827507361559899197171174301990554960496732351688639487954052814740161995810923901138218988061743443435920567201555403608682833725270481313278466153843011382544857452315287108778573133810882506071621027099142201547980286182752734188967104600272187181447048355951723816671973652109306245051081456579046585107401907922350097073347527038244906459276508409633730712779644097871508193214383365398774519881193640489590737327738325861005593176501303995408612766603125421440468238616207014354169507802757989139370430052509305773034374031228943678793304982974075174215769674459677154834830930352927819427106528805256831601276701889746086183358035877540262050814844102001550283500897590565284045655753993034548263202730414991444750659068530586984207207262206271039794700007194967278293509146067835996873020478118803582080535441886631003990128815155524672908893216992579946846562807085257465837552690447233703592556336435089927385121117263491803135742767668530707624342104661212316976359496677792193452773749706657492238231774636185221275138155695879097938067235590450351949502425900191515831035940633047695685803693659655755998763666344835885948000995747544367847853919642518426544817131803761955964357101875169865852113407978802887779809232020664088686323834290187672603627726895781555884201032264194010342444038593013227885666581880386997020254209335543134461059709821523171234324170968587057784859058601084200680367032655544754893367259730148442609349237887690922220144927855491747356144508078925000846247390723711266028482348912450338546027247878431369700419314335787786844304069746780752246402995630258384694401130945754028691616615925359254054828976453429663084907639908833061097238445862115790766113447923591787426635366691864462846869177621437200408352236508766107012871020968749724852271936066259972512834425711205419363473764555215772783901753346079276040130218239688796504988548244484220170834885276100728169038180616543799834455221825988038671749276656944465860102942234333664120874295725479788277406850384325710055387040651304148387440345876403713271558073517848007646622866782041729244948479615720638713993337631283725354066767151737858910031711193976664453883590030530522161882768713045706427300154191584996487645797172494881133846948868356513036977974719210655417562707987847969614238104136597868715127771799026395919763323587263834809621599828331721301962855689183840791519508268798929551826922509099918031287179479967767781777245302276570562882533827080879010002861828519545074536029782385184955702604789760216512605288097340161700143686370684191113699679397809333781247424953533957555837475926477098859996327578895696817931227802806067421019908128904525755448996804148492394256155006656888472153958393893469780063025658690029814353373608327479793730877586650903085864961371926373780051531995623528433434965902256783560461141678381917939995810625979259998069046153846021639026255613614154591566227056660076334753148836206412406509621703759448361055135543655092722647730978181942465824522611529331001322973530812929741730347104978260012430397788095456873363407797550816148552481058155479534748594646040728181571647796318364022499343452818016904409516120401964527554202912588990660139209460354622268039048273796044959362190933334110573252713453241519148500693115865314237529747728590075913879906233547686097051564196967797956442163321633461503008882355586217843990493552865438087771290011875271088821599630525853467349047627444211830177115410829492060993176786122963615613779884966021671524074607788445250770957013999605256511776664157413372633471772038995947974253330438671752795710607417100263186204343151121110237914038211725108925638031247273793554206047374436864880813099728878977382000901110844314401275683420260476760405086189084473491408492690175638896364687302766278234242029349130059342373316861521584972916931092986153416530161527139330095370909353876035452103375526552565030885527662370559319027051197833669352891411571933504074644868910066935939271444829873619254349070624228330860794857673859813453837232713016841175455699478503224894269228887957502953530431161262825287900177793942302112193423161428117517203609480427041824784792495109139951697542732421563144898528235994445734367057085794429458676214402528922472896223442093070647556700803584052516395144135678924689133157635548512891881805219167930447490643251972284476815138980435325285050424714738315814803170052929328060522030277993985649427238908762832879981435559207964717597154479445327173058251467017971664224394812813735579701532916631895756291878270267286853302520313408503230749816971374983665815180950526452552471726699027178304445545315551997959484738096034784844530488763938434364838991433690759263298098847106163809280601548910857984185127011555508672597479837282846835344979310742912307897338586025823342159529842001345720899229384767336303797453405233286684228014743648294159484435794042580853490343458343067730103639841568457896660821501172792468416834747254342802294432603623097782935584099329063663775013028209092834485380408541081543322090680635247770521258882906108312931867114578075465718844753130421705714257066019652321005461224898165466632137359668591733012308824191153662923962980069427232142507317869785802980525248629823876021620547741058975632271573270180945559033346621029493611244486425533487889432454863395092034970102927087688318325830571154258847894813336557236046039591152607738106803409558453073320733909616294519781222735233563162933554223441380485593773898348294647170860269232159682892022178376459250246299748918040881228626121072673377763018544556487736997777706191924615577939118206362966305559464637032770246920612462545715112536430901455551016089055961071473443382875441805383496152686035502586942139327879224710011957606019998674285174805174932031273805971205503924112230903980651897364030074240233982239989822371108544947167942692557983149020494078960535549915401917960724325869616592289956284089390958716044886827219459861791553157705810780560454842368181728063213073598566422431067594629571046433095319699814593135929704660860043479142395442035083707211379299667704403638877819656430877581713353726943384496422969353997894245608482801536272823876990470216626822577872230395633846636122948071420121068663820804809682270635785157226912220215900334876033882270304074873683976403652542143062508222988283388491168508207677050173624470149157611225521989590456148283229398278131289730795384510939178231639495463791367576775974220942573634655886432730547595110435709759403741111219263875598424354674065186142994485818527135088382495301318768382602763739710190600832395677740738842899532952082399172284227642141276137518126415527100003988983323822917450051938908693545170688802488347498064652426490144353523027779317480686090787997203284414467987987416384305750354073455865295783352912851204281553340731646040849027867610764482433513753042277306508695620851209112670026583293683863483267555502817926653186395719978664789590448263136538051544133698223953138482736082297615187110164110986211933446880364016779307170646945554353536952545600794171787973503071136335442428580341155039264333364724801244389613065307979525550282110500573717819203876375750009472553880205871620431278704509745520088791653139554290407449819102238515720445837281526287602697171706047029139463267764724693680069883891861381984770744052863358251166191362611783035719985041331850829019333392027419555135819113953219658931464141542686790322281711636474859188314828462352355053545383457888803253508248252062408570917560192816342165752299410599713274491867750377303926968109713840098642251738206730321049570805458247922161272993681202022529995952088379410460688805200225611078222608790379409954406551534415918641331274493488482459142540197807568422766212055629420603994315494180837286556683446907912558960198634024459480745627014968090739845410024410302929781374882523349038892454904209035831385111490296558915816823185065799878700131016962631106461219872866355929355906722291234123080622029048037807927727565015488077778649955211352657818602783719127092305388330116274819877491911078849277655038853601869293971729786607139212765053027825204263183934394793153722285268031606494627776140890385488049683381097060273402480590859663449820941029247487113547019213584582047344393485004228119803165063217102509057532761599396041437949172973311388761741981696765125622695708331911286297891834565479221463377451528901412439553589881578025465650012409103604260282497888884446047119236683120986603160932941287676171897882901624748345140040791659879625801696154932528521501605815306941118224699994280515811281653753636524911859543721872359073982612171993830790260196742248579039585378970156576011906027160308760576417459947253102532434012380539374928401083622141504113370188778228194660254778925100070530356260884439334005659573604691403812242482401959696168016560497744675579841576643542393023620787528695997272245516382522758372171949118071634552233540972252678336358416476220739436128056834920579732862441577755280176319180744512919362189907518771850853569591325482320085368440711566495575052464484502571219600948396225532446354306968723872078913027178227507791191754900564523925180959484028760573104172383121924866246967082485413918222023931076469839203155757141639585515243201184149661996073388070869794074192059146237487127155659445400381432639768978109342308596259451543450595019768341879957536136179999848972184002708228607451754345012203355334620284612486980642361062312615170655169204456301305958406325755812943405402967527761125628971296401712272558644379496237413136831147661592150057563466761364788456059010377743802027006334824115820819932998619664748262621998805544204790714917599312898609379524773757023276048401329076880171262578794800099101302400853617088956973284865520223038402691213085941566284152548491494827688206471841463711910063348698935349499685347561119047007288779282913199861763080613972875669939077154000390540948608487333067924003763446992155609419086485378265140274008539424528284118177585131330919708528545689987635427026492326023504155247832413664719079611026276571980301997108486058070926980197562360599907099973958340615305714976333860066671737489856679063091657572189355292454839945439488297777213467918403752228284656613771153415284702342729198816361883875482205372284589585282828369439603565877707475256715097230664246192999326350675032078792774188095408427378534810975930244320011752147026145476791176727638383202640595751086238743885457872546088265595769872667008056298643437962934983229105834260526914141052519204265014957394738703823603942182446304831686363489051637869097032173612977175078781414839687389037944689203666373926458778954933604623281012844430799019151313284833548138375624977665216701542144201114071878806030751933021063390574177269065477303978729356133055976306805830898738969712216031867935791818168411203851906767504324860439009651132491005269471558894701594210958810792828314739726226426930563931189762864712144708100012065740330511213462557278342820064088452736655916150095801039010494106988192528190901841829977530972216135373389401483589460066262668413624813109247397170666986078578131107163839801625129104006594706822819990274489175307738696328118127663277901040407978343016620165446053413458107457039446564051172663955878303533907226229793449850511403599871950305258327333891351047469669742526612079753607242734755369101580256286261427672951517175162106877716318874261241252185578798172795085556199757706232347915520573787739370631609263407784051521523968121727262867550312586661383919950658744942829668031166050456826892377127268950573766318012299040941679391121447733992693094064729516091831901599724571271103781873373740372670258412318245199859279068262767908913605679253178178366728473155798957691256196452978847930798116908368119441419331047871283833133064453578330975349539048953305792713120431133610775827112480390482709063056249314761020905896709763636504218325413228660620155421293777454328394935540083395899877845511046619977746399557828116010284928770707990116888470612066717296642001438947236985850941637137775845904829905262954895306384477370383451432323159960086608271343490229971384805000536796200612913884002389865500226097498719371269809469855647655456636462191377813521933894674849156965270100189661357164646914228500065262217650631122179131580419171662505616852952949820739686578119720663208968275039492664446813951571361387005068277541127491197543082812681707992569701174047788936568918510206994035585590541313943473972324211468906089151513603589097251139980952978666751816382632616668396919194592578525380005787147878666519710257212822258171521702878462605092002914945621444188046863877830674500595412932009580540696841908409081474929932868401846123749530089284750944023905413078448889651851142801461204693239625184119380532977819174956761647775565373416041619980452370329519246988265981726208347509663485371434808399897246794767339231494176214209867010931691387627548231470873224150939904836646678518295728646892468686150297782797355205242558434053302496820574901400302848763985577746304891314768211011455666818280497956016188268312552797604965334991628725294861684701248882802354431702292728857603262888592398774537035440759885605883657509208716061470851791282507958461369912029315703264449509351215211339304373777515059507505137839801892083650506827845644749502268284770845201157705225927483249016103681384587341333952122443144798258111097743034453825081544943316914491805709963233780448085108247831871020661552851573750033786742812225846064290823820072967270512181444200067638650005832810778913625452393020415430477292379867878415060353638850869026875140417801230511682535525696475038590393665249931653120313660113468411857550398782089081722287166821645058518309979419386529123396268667850686530653670084464144118952733387417165466598308978069922188977002814962154243934352157214610079934576227990698059198295790831739844799340266560858825478468728076396192493529374876842957821925593143320546232545560825246798784982607499580130416393281448382180676043942752539410064485101674335317009028586042334554625161819184439696213417390117024150059153752404794924870863464677738073034656908849558363743554056644904676781006414123083213687761316740792026363352337360512746605475081301375053550472435461575273297802027753710404561838771680218246694279098300500943524664647363187843513721291259881160761678923109290626090423180953566352093591631001052146648987312521244013141224642353689347198526177109432469428935899668931522680085409654826298444966847065320461150992816783291932414638589459093895273543446224067850055657411754809089835225348410918024233172774192153105459342113266575714576446240463979972094970056391565039303480758830096481364126582626061125356055774432150602899756485318461239357968319421157445095058280809080124417411758593565739715450854998892103405715095498037543131983837234544924960968176884698583171371794075298427026137671624547874357351518678679283784053428487134398927646177985900895820884982435441053891545415917100186564307894018438049523275567528191359761991085780883806904967039679493524949985106502445297645432807076326064590975973830032840281942506825591143392189095745103044425097551631624363923883250433467477633889714226086471709897436288747102052270528523466879374089173708871878189844113516501824697805726046726508324973793547137017262039392198433177728000125824305424159927533172274830411538699010362113759608398699972788815825053762417887583803803677995687479639182507658404534203847706189605591428558443949965727205882910344923905895042479969864217126868706072602259418919216597535432071208491551341826399694486916941520462900269561528389253392956781104424796051966975490279968079130609900542270341480598895916111556049761033857190570953124377369155058842981541928899091888948780471015978412470738192264345566344859035288351346772882122719891224079604885229584765909183213554741836165461708056259498256777417042233878626813265907360894964447697428041310484565832690740589721053034094719055049174583040080820693457444604283121804373625514250624580354268933342385869514137431011131247186660197665467505612462331771354881031415918390319813879712518507575220676574726754482976284399465354649754263385371919071897812351844325621833834460859907482726778385604047371117251308811707455955782312998933293291214658825030101480824492929217148835150845642713592797109009254110211050217100449415825238005237822887167744970480195162272455914508505657197042851750391012454755259906812452249057613018155989313013396865378757625556079921625673320855302615397364814091520194434704986701719088124407645307978351402103080268889349090031887038419234544892467578498766137123390481403160028203659398247385241281137425264562788223376320390279993581852901329036059806696205464232585085795733507488609415975127426869041376023035255762677352809363087810213726986005093021375044295923422174143919302322509154543400314733905233183622103408694428510930554088345534726127407219803029412504618380105105696729155342382378329348867877627776011444019449190715652292184277720128710356336588709662258180360752294585645945279687395967134806144687829974138513353284026938763046013802406069050095541272600895893339652589607047668814903107160854276664253970677340005671596213666233742283550360762355887379445115380552428009851887814875746806583109262625292655615500969306440846144596710637820662375000521309811823329950280533980619525407519111068205727370170725368077826042666622970676210949570292638284295618637109779927482047669230976350545011889862595800347875001512551940845571049554344365411590595081328451479555981588043989022246083754352463309934462518926081150425428179077912324412785807046316577753056733814302593390734159666511714340916331976640256223358378811684454967182970753450155631527162918182897982930805843491967551617418669942450372607653881848264450094877313902408489214977932476586271911067302822487534906634587422504240490206181548370077135506212715949726587708037856165935939183130562704758095276309659928510000439279256526245618602159324638476038723968690058530288239429790253716704741648987784936834551619271284730156865019036779728209578118493464463913776719551113467770546096055271141894319067106858871367916991970758137579817735031519868370079641279603683264479408119412449738197712965140500949187855090345101577431099913504425890179191008262501216259119574857620131099473448811850820995389502353682540175129422385593529687513300188627967628660924521448004165630177826597649630360759319326668934195368494952211240749331941942551687145554238810995004917065879913555084889871153695126520401844320260906101113170092636152350009995523612627964182206388491002963377990135840778200406317815363556552722797284069494051385750034273244897477969135726085363778068069521188168629372875734677354758372089843039289331966280108066307824521584921540386216890788280300528820383499050011651575434547876481441192320552143571765016023037272920948911272408607755369341183455133061798362914535738062942986159244468512893836474273338365799419344783028487444805943184551699170280546248485954973758730244465941485646745993982494252923911065297890476286629856340837415141998328655050897302812137599060710656495244104238364492808688624890776059963291137045315263404258566041260916718597180086164791731966484438557019606030716550829918639340413429019675214869483381332154846094198523415155318620897250190477138944743127415866721899611715111798804256467573283901857838650891546565393791687587832909010056348399193334971426501346360210908078188469363931707441286108320652930316382853456785534503417141760501275342491688219305722178047410023150261098063084522659987677328681793160289898196235167919288614686531710822852496489619319037414844508958908125316133628777187649416848202626279381782944466632505482246265681779529918710420202288521626049811524166859109183320850344262425614531242135350265640759404119915171059885468427083476316602264491127164543242708354549943046291143387713384840787510370497787382111516376040981619092660922088060721638009270358579142927335091581435423963054619051053511645828885926261477370046281418916010132331952233909385214954177999946359819237028800392487044900712783617671378531900532355283558571387581455910432312266130605201729455408163174916552888081220943409708596911862350334854273923863229791452110228388070561347723564284298146998527819212065660999366537515141028423603464099847223012689480860753574877324844850426612972208020695166374040878941461454758042456501202145634324683008125114839162162632823511663703637243338324272053019275802744884346086126941990465924134928508035206833152739345399855086476265830054832210256097432273853673764516804487971510985110167616461925974158103914538783836673118601048545740929371815882372375105545323578504277646901494924021987445144282241232547938453373269338710350150922468652907799036726229758420348435664484579011968206768050240634306342432731657410705271839931485364898532130723029841828787375173064488600357094206696977056463796261508183052618826606887608939335078226773310825849347154779482431067595246292541818765658880612795569446859238762618311878591633023413778913272444471672302703332715720543898575341409665113300873647042652116016517234333666851275792725827043390071459610747889255692527704417418814919511929243631065083213571109648001439170406554926864880547994087240966752934637641074753172202314178001619447330160434004588037776511377902251469642350634608979686372377310481788990622814770419391000909365171841025547980924083256565570950137629274179247491917898717036874132654536238637352869486544959654873418378217737534129118604603516641777924141559787277842391622746589765613506695552807137466401506302391935937198063179300652289150469653358979423570671065988527883549984519612021120468711480005629224011639138363944452902646830382886873722402428856960297701611483626142385534492784371292719933404349578508039016177275730332008745892142994633843021533618417500611373838414029050664533312809614259248696872073230986080629568706299738846616263680923110308454145000360418758838656628031980843328593760764601723900872707271260630528563679958068974020581948019334498022003497850707847222587810926398360760001429742965301018823262891577467480743513131866013017495156204076038150087376427089994846708685513339074588796648107447802944806211823346721955996964450167033268211849070629480855107290946914781297087762807627348970114569354343680455177295924978521560541494936145607239314886045683393895220400236650455592443089921285066532295719269632659850824519052693634864568429883685303813822775620360856121511906131474510937067733999679524343708673926334446188375201487763029872831494647827666614030314679065935908413036098378149616594293126085124567863798238489412155797648037401098729092148521772349225128130131169581039823504299319059417362244828876015342267222956774910832848087465955647092610681695394335885887350826955237457967966589023489950258654359560360163889143547235797018827979841636298416955466183983902646256571885324437365892373935239169438956116577341505122977294435418504205650594869283897868799242940887905830025517262727193273364306986457648337766362681469744316302424031330066623652187119985629715432737856001388857455896791341715429823913555156359664447930655394549246384203141132927239766349710654470859705928004372696459425207728104586649050718122032316711232734832308965988641695284464447512051762247227294706224239746576388787383796606243137130227488470486732269938308710289797685397392210499765782674994720157938387069091232204103948150367569213487535605399532087412952663154133955840568820458881121619168897682288975909204509666713446246946031268330610452467513262118277862789500322839934656955562265163985268693103196420374548570892960688091853238050903586045498858272035243272464278946074959412653734307381015617372593440035349747011127637343616231263954565779899387258658633107387695095074527380264537365558931501921450819406834116453737811181451280829116063391757256923453894094441475877017476585002575417333148040484534951297928838286762108925879899635631873518948139283627832771052010330334109397769187001799434292555558131346002537322474101675623927243716375496608924526540638318074946191909720234419449378074048766143079321245591286295094958594027277642747609889210688582313026088047263278285084833346969767979110907988721920099618984959206507717936362777417718950002846234710501159619443699991662785362235443505697042907577837572617016078167250923057639267533286358050387727919960846767601646515658376044513271163092756767131373250079118008465230295179975907150984940057499171193862758876853792744549835483797531636592692112267129078310555303831378160503187521674177694503653488377129766224248483714927269566809869872843257274789696639991800688138367643687451794915441977185671610899084649414376808956027693889466144558512892241760471620994050279254026529193388011161385851406210572397091172903418120736051547251152174078309859014189071329240355390246043462713553163486339005534836778622296889216319804725152631278524131046640674511609889791422586027049963311073856341572608023900292412804732275564869731504865403285580690913078414243540414458232289244683176068917499661743896519665183620132066394867551039293567808238447344306391944457214871465425398476960646084144507962071714745326438807269885241639769201498729559317732142211565294810129894646536141379681094919443774475304685287234229182045534649133128833362703559025956969590805265380242550898684789550344717609250644190015603477478991803490294590237488666495939468876009577413225453784705030139829605613457569128586462278172741583786553100854097140528334172604712735099969246583798885624765478903743337069856266959470252038945807029576633123698058595264896993524858974990615481232152197772771011843142585400232491065960736051735355764133266624313340189173549886506281569424100096041800235349836765941563881815851387861692583117732378245403580292288841291933400760153706135863214871045496028978701353453992007681441699265400376544657823667130998292533360951740157637022064077710984534147727795505538605357487780273544215020826271376421038346042536798147108335279724362806996458959722351322192833700090559538802703170029462267983257266886399906492150840231843368047850010138091955768526498493747030766368744798643690819461292449996901147513617138036149575827241760686883167264532776218442570935746598829781286533945263129737566756884620119070963836013874494145883398157226136138155237052945708238895949216131363344139517171530676831203260312880414156202361657624894225737566350162228834514221455349218400980399109249625430060957785338450399179559902386817738408716171601418725639589356453795011721142869013145686254350976812171315307346851920545618757772796933536413798016101118118518856478690164753104068036798108731880896999537312728437918580840522505903844314981251350118328967343531083192987088924281460831086594158083322740836292072994243782949733757827521918006610072185716490728589626442988458317785174821237456450194144102609199371656848673738869862302846446970111567824725875979079624779295051811959265093014487063608999073577682648647788149627462349230758077725787059341074597252349109249771501586675525992823292738990232044928117495700141265347475999503466156834658247581429638170759889886988230455834923404334012522073874685043519038184498275274181524061090763376398661136063035803769426367002313877103405054954284103013663155456009795662199251949058090576952915398030814538885271332878584839270446124114037523965678327372071739139654077170154067027779393225819689770186995303659093065039717228625821153146802537654874182423792217878557948932341766017181452528703088184448403730177171454719363232870134136346425593358191019039154082972346733077433705545798776736974294886478060421764392961966145411389609425154541617292270655795643841270401016115235772088618911385206999047766798885066449298916948336633813982024168909121670814421635598908371166774131598620269246966792915942322880645453719623833143096993131542404505908894649083547039775137798222654899883546423896922217275361875892608248357627156350670996444815877558202552057859809568234756615240146739186351052150392034836065244936213347000387924726534416661930792274325245237995861658969550569330313269906529773443885024406945250309919684068521168045711115952847866871160358606711735263587316404985546745585825414934791238591841901171597071338764733278466987056385609251563673716215981735754344594665076011336615774055572957638065804793852731443289883821717795751790879572632065537157394272207289946362859495744834321440916257095077898738047265638382624978407825514888410511613740344094833614910541113087798103620375162097012741530096756313461007490036050333151231442375267372705801090924651035831820445192499992524078349850173865476465325502647430918911522775042377319281008569664817902821589898402666202391540354207730654245268298491190628763458117447877382190113943755788427066530592615608850463962592767479432689045896450518726611027763343490807644844139483125044387462446836420510230397507307556290351213938507900047415934102645552414358449719784114844996207338958347937361049996607203619287430903951462632359954450071680947955297422878079045075471824615926605746036203558751530161913413865491517677329705021339629591556807069504532977976685060471400333700898312351429885131926151415850939291750283873234915320093406670984268835310840884359719664094221835733678857474028278593270917383990522349088969688021194475974763525907736061397921824951819056701951904842497200363116551537606323841949105085420163191454660279668775083056385148448662153772410337383909941261725579627779774374059848438209656661096548160613167741478113425791673196196459739070693127860451845017540555432685048762155970791817962274254105234461086168855309383497097098159485753871341209099260463479729911892540950709345567277306903430531327626712442320989446421968530833577292050010443618963674680907599868759115647540894514002813491141505420301241303407989741608082049495964793774883628681625076719016084461616291333885297721392522797772207686064221231818141216925799126796298210972099742710939568417251004027601565301081377933650719721036312094889443125853917336862665204629260677505847120938469594788385538954554190735859547450299085216333599320087972821866002220098390487909850684404265365801517560816583573215613887099477143495894416159971648746991492152353743077195455313698656549983606897806800389666197477276393509556201609867545571307714066487154989372149198822578601125038318407693925415036022063146965398025168935472263619825447462639480801226131472401996080880867691883523796057924599653054331090353910999596368610559746801703439367545186519735641233283405302012096089148711041942568397698328476457020633143443046663609215807483595686942820059893227355004969948061125744138335867686992516542417194647496272266018657612220784682262815047203319522048482423804400654994872822460736182743028288964437152303272703710937174572260949093723869772858622442587327423180637925205920519793409927921648280304730977899314548343519355203711166662719681911363427520666496710206879911632420182274507243362124606428664144352218706486756118559013761808945432166763843149933968764944383902818716449567633567021565438863240794043148408532694983736580902482687689805985949000008831413894020588848224510357395008857405539400542729677780451114440648945865999808850820744031991624609561872076771871895885407941941285284296105529147726451406479955749653497715410036995058787113735784030449535172736037625547682633882173215605967000687535379244562983669210033101968923103694567906668352537230195873307269636074192139823532027828111625037865061411272129907421917806893180633453353739149232060218591653322227882954721145253067290141167994348435387932788007426950749822890227987814770483366911100409615711903154253248337312645788910479659670034689204976424352765300755142621029830785806661451398811425569792772070398753144384701624466638656804428015509276908923137339886352426866806385931012577025076335323667185545177943252339224435391970575628650023647487448293575494811455602167574228122064918299732942385083183069012982989752940816290900371661751442411264047513642839403674216575009571718803442140318877997156740494797816493915350185180404144066367758914835234344885901769180413173791863142169056121249554868039794154693949000714230112772995022549356729595592974059986544581207855855621689961308090958169835925802832542451114550567478653666861185474001324661752791783260014064245086793277125782454678517590458318503390010906403168131627245879322075013893898192535639477125222840646882192151873993479512707432751985246330902084602303360456024504864999913239829799354366491202240540956941079077570883471749328102975203257770406158593242004100948535722627449663179935836249926986357123039192584143336340892913397968523202204828162231999686427218525084324033573820017993580910293045798691091050713899995035012228625563039325160289077005881438844464766357819735207313190523216393918274488464999041785826755042825742392524626925211231681999671598651002205196881692384968981187564849837470416246074679497177290450561257900598659875918376812865173513742704270381909828476943909915193502822389606232886214281090818504542345472094980092161295874969750099714714349106840512113765095428433397642361889936034518915930359670132595300828105777584510476704994820468998821548481918382928386630683601226556859206586843551605154115217700560201761213837301275323533793231084661770629088644296669654052235021507174638603835817300470039894516254683351142663124995101141933416275554554129907453154195786246381719197907531136326180451840232097428637530832039341135874770858747604405771906650225510319806273771197592144919757496305564802009088297774538372767476932766986252086908808283877725165019613113693706674431767335120679431037557664337467487214609235824358503496418114876300409131626290537496674322858197079028878659339846196198678895398497682047786025101727074810963607835956209642431139580357215734257762518822626641830442957653894717763115395862742237247501499965745429409635114015935591184677234875645789620073331767015315702156444617045472628362463225415388999438604270246316223242124704061760273822987117790677640554008916932321608017843401676024721037819410863889668268497060637878820435996293909134786598655436251657580212045254045507375829884192125906808869564153422645769056858570745397092821052401795636469570046293906979337967660283705710667238814434478257055352256646522846361161827268775416593059523024247323402899203374026181855631291140526488382097241914316763858032799621871005167636748550481361765267787698008552525117879496259711556388914055619268770072544076060450634806481312458344434140545476948707942018102946320177264669927205780502769007437284920022427455589877148852528230063727211491272424299960373288927987798391983630294582438867871787392800214199458850452609466076686474121205488043099137378144644478083205455593636993588139842073770750573806781278050984855737246472414613729615996920522098849715661238596460192996081424581023737156230916683705075606086252357771643380258343672534487933329053658349120848071939928914794846843232104995322644694683054776662176938469976898814593814351651152338499963846298120275189572688263473053991951367952262712246632370489779089911297280435005966095007009952703799827261416702485723614453813723468545337270287117874273224523806074035789499606311051274892325844454144470908567488098792517489367665238146362007206940043135590331283578841559899289732337849829384584302652832003206848459795031205952838037721257727588331386296480708667039912055408929779816841323032965670986963624432088541038314041054756660768958905013173142735006120443092379942700550349331415236763527568551380102164202497740240063290990236602333726731068633986356488261160575876151830729710933545319256739962048950498017728754342610806210035020874163036186862033268821885448756242058622030532082298745651209790202803620708268808435916715609591552606940057006137909307657778428965383773490204987647543408784503514764062245396532485494142461270149923907632328674363967551383759390282354155215775923540675568474150717714853708964468839574015512960089692976889691585727201908959646324296725250406287840359877128509557179735761871896220092448953892849541509499833713072183757047450697854431047756975871500230485802611481928891134958297430840771599053845703334935035879543953398562519409208502521505478385518389844344022643943484853026253785158339380245167406814552125291468985082656702299004754609701445734640856203231541600081757193583964870061542534811423295905523412232405625848890382099559180958590729575654646169668031055074456808589864753917233480450454853079949659890742812035147827312628082816214146909014316548025513860891496269269323879704496839339561826323837245169713355621092222080647182140916990489069317110797000100924290840706177542862537503057571906497050579848357020039223513395453975967032792360283698145895011792813770175605237785187403868642471725896262734926558499443624112708071191463033439565876566045002603316000160638600284019114490642325580335094820268361434940764397641524883937578073463079737664431349346487480506063282261121923116427046836479500710120746879963246476883766645240583849783271945766500565495818582256713267758205815763884128613426741399264037537961934189822369980805230900101785341401852841819997051755972515401017882488597598074260898704339272753172523987164443513673274848252108125260932434402173266218583927660514255549649012642453053686617608656945625083529819768837076531461019352867795413588873582339855422666163549805476242388686283485120110031431170656847165858514728526830781087904030008498007690556683038011780396915891504184478815064717065182677080400945855490677102648003864181622745530786185165997806051863179271569810036498881358885690309454530203860257415450309045655481258080797586759299446914410323627021568688965406332342032338904387849345177665749565611735281922038603308660335330218339501958460356270316501265042181204180427999578753014246251139275133558215792341372310331124920162598481171633847747272896627175711444707184706534675400936377717137663775117820125889586928274354324543850593608526840528763564762378510472284495244028418737253927431074797338491998327935937849150514454049193585968374754394078102404923520684723734078899213048018659457520813653669447852781314670063848783886252868387390945600217444581749982738208733746795342409894759009184763367370954366457007827232410563694607129491873840655611452412938677041702354059165788820389255081235090333759894842258376580437906788738640466249412588259251031550458419832480849125038581113494556332043365882416521164915071787143283559643500787776761951887827218234850074310617953901651469205358790411127284679446150578053489651366474855836316553150404835062069992688405152563562449904847448890774236612953429031092671453914162518864747580441051388448614603763178041261670957235573931719395931212614086412805376384456440273965767021964806548380442021935146140728242318100919110593030553012250382689933648582819857367348492648159025427111317863591820914541611832112662690179087870801823206067441721466408164071217706535534004665931751669044659070746877368818780821428846980494330854657019768448895063809937755420381838725612917387644699181711307957661488797578640261027351870678066656511582056211060263021991277582799374330750128170790359374356127480699526350886740305917070249034473069497060209757067557334724219543405587039929907196739244598283682764411360888487649463816216939239002337340947405268879454866814139219300215544751990743871152998177660869732927948156233879364704920274670354374759611688777184069768831562589363675677842697193481748192126940440577912203208977770305429353545420831892518814055805443620014249770937558475086564092735367145898462096967883151315630758851869224016101989129901278443647206920998669070988162731986939359021939591603616625701099551999868025265917981189730729680206809961811177094173411875161166711357553863304170498152321857377508066658182024764954857167212448448152387766536616281771986267519557176577217616031275588284129554672028567946929836474343830436807526788399112361642200656090604908806577309507757123379633824062995619841590900345345528508728499925026857676868031053507253766380297187848381843334645924190961709385235417724172096609366205224948661643282152437427760456986517233040638293141361787144825183408012670421956526116015538046237982492711411048070097142004710651201247042996025600332142820701809422516078540731517689363005572937612330664408224222363925830678751007083682869250840601843995710165459385118655817743292992514698688030067281050572808076133603819613079634004971594295261395802229392083705968676910926838630607390009836571870541503209434809918453447489022668722918584174906393865756934161569992574550408744548096494972692779519875113896506664171934800057673168175385762691092789746054146694363945130236450555107508498087512014004720941715139936944900953309951758379886284894384212512303483230528974467695948350757595841795545646001090203657833103945784536434852407182912236081239810896803211387622009999042019280076159768089931279842657423288303210624722663432886662269815165725337725568325320322940008088330927201673790528375985042877584606397868172045308835660475566568887533467437055641764507456667136467427091257789138449154216196686472254944942641771813622477038361662262964350153566412691787271920440366441246888706519971680096911754943364091825977454620667032831658379731371924934871635963881112595535909003461915437364649968870768770535273777818521805576914505827209696898193296449690586677170639574789483309131579362432750979290185628544303010643762354897974906815756419784803445466759577577221102584725147563416286048224474444498048092724652159726755734253226587608859679341884841489495294695383038274557101836149645492981679957708625632149742665368712866896104916036451458499846733047500815251438169010612992776056809399443540550877152913922688763856714872831428639474207269627776651071768934358419768981243146104897588464652109972329893884283574423448328307392586463390401408429059507298827177822616587204278762345328038728976680340142872534093070180637288105352136286469072787647910276773318647183817450940780903854133052123317600197640063732872200198027005723636058914929301986709197694712958672711456597369664068977920354907294076078185545710758315720585263614364000007500481613650213403586721899102776490174114076646116460594482624088488987810639562595208595743820881818044325261031609506003747627193490845288523953741397223585955788316568905246086280132248712837808783752564539212438268528623512564004226230293988454778815211311728293743092309130073794032495454607777139688201980489949428968342886107179924090172658368103639109640602701626558165360210615370094868470226804142924381925276597607928064088269489512131944672478520921366022254713330510909080805326909321062715584603580796834133233086693092503275308920732147790978577138953610944733305288771552194511221045041214711172880913176593909219685623206693083932010500049994395263331376326058066036987959212675419928592733521158788380564158037978759387037745095296606841534785133065632981603896824496047182868872002170188868174733713003194043185624732216789914548450005404029265016392115484928021500544689028531820786768667015900893648668869296245096915338205725247861680494316615554988627146374946192142111046815425799851404207809242437923367831190417501858946621814633739530000013219438476207661355445841247240767768728299493231826398176803187990012985205124988712984475426096138441017202876949698398484179433134105658055284960087905579293383609460590815137397990699996555175385538610286752675128433269991173403674712724351279229753908615648772987909087101059568491404735582019423732893382496247362162361910095708864941223894372495747854155936364802674599147967517945889790146135292378260954048463186858909739340878202344331896389159206284942091913284443703850198266966271464391624274163422088414492817511039176789203446111317350673204392839154810787670702830350340404997958933308845632848949546735075584046939331614152199133999123364777332365641750380609997351043378367940606434096614017572591133602728951616017952803731839826401366512411370747450005936291473977971087812748510436676461833362392147369977540438851135803952106482070722491681868287625712949564870871791893169427894778155103381212862888021220629796777929490458992902768637941702635405008609470557331047540728138613363958019105889962805165614975981901278901113146333786169099382268507918992686174687356427836421670849508086718416978026940036671198643621517527003973659285016785581372971408980556959825609692004074520185903393922350188762124954500883431533121631000145993519014866011038525523684247701405208162393090733835456533889116851167470640602953120934120198258697423754484302163026682353434089498810827154329332605416341495565179820379400582087431660074609736668516933870193220330716463318656986590811239952968486603735075440494613930310179524152776070786997442391447623390935220987108823268498288650111208285718490808628705439879062518745869990618800612366936589959516288485133156112590318689652582565532579661345158127324479015875802530313082903732610247327243316260443783155562685330505440622507433928116972173055393706776028232404280361816318228551657636254392568922808842079961869099797382296277863053083780740402087508827677506557076280886489450480341858841636820185048208702980843504234391208884212329885156603777722731261584570524521452871943196691924349141073318823929917774291460994871626657135685786001581791808062231576808634523278821236264311685713117082549011476647255835635750479155688175446999338201457813332822487926129370930856274893080935773031304285264211543386534259453087901622728522603851998047436111923848461967402767871436158949719529699194395618053763773040085432803337858539646744925015466651299307247157829052358866301055455709088552454394172447569632640456219445054883458368210722242621892966183722536498612012581664831157179403065817761839737835301781710930716561850930483601186876873420684284652692269620541186248288561119242094816687867360359797877884958049067117901899286768480489946032456040805395887831463284843859370261220459999427138425410995559808417620699138832631308170550621820980425783351955741164397122716330452850343053299508005811655941349728020202254016634851384182096407739456277896543190501759153246537153422981588557924894131191749407388199117592827099709233548120735367097312923752647063700113905214729619716584355978326009830177008981031142882613652183396422503648096346164887572341515955663077834129144576341275605006008968887959623286386068606380571025736967532477151578081545597408074042404651677498110078953473876411843506353022619728242296550002334092306712114296750861757424269196990445313479454831578627247947105303484324507312587762280658534873983389722528490729365031155599786955911590450151687702407845762759116162078163805269273926629080418581439031704735422487546702073595828148830657335397914429866625425939666518306278585530279550181218182381892592950140394508013131137160594351408906168979025976984924347522605751715512609538820043989086110393389669930547018374907545640209639424219046194028438960175055053924200960322228230177787398201693835279659048283020603949613940779320929848730323318567006181596516130261597719270276509268769227756383367600382850046445480733226821237615709023240003948551141664179013183046390299272502108598791276924132366995924667311381604657881967008516769998935357630741572515583186803528985540200625783646374156198247916817611077549144212004440590907268480663166191269511177243735643707939587746766305436954585779513417707060385598372816338817973401777270759657301091525976464026342815945719564576858399521077918297714687125670826318494148616735373225928767639211485417864879233086809266143738594786305256398530981104428964018225477044852092723821276453976448672331178389737227395225838243973602488435156213666968416487563264793651951496617665509398413219862019955664881362994434210796220505867723105226588838423816062256270509807151103377619302642791584193141570957143889489435184846621885316078784432593326177125584559174078999788411518145329534245857350399937575751603451504422433772932941514242437663915432969810225917583933664454280849456267414478046571854722494330057662002416011965098653119980560244428744659769403446657791557631686090064942852627733720034301813950784841547671218328873023048636430338599105546372298368075028533720321881075684086064898535795250183042963511966761969036959090558820614457147704363187771500136566409914659980582871614997432132366721513460489407628894622298116454830784509844547208651987496427889565371937565014678718537607403602624904593918797869091565039103343799364065987525811941735707475343615463000398605439426562605774439583371110256595656476742975404546829833147756038363613078933560424654540815012675730439954049489727713331221136636562714851736654423322675754589890767011107760394463274758712949226414667159370277798774382668284226724200993401678656830611110050791152877576978994057887239558929014886872953793380975522962255128268652524676038929123236672599957300848578434106979164549170796997151032487704278277243892998638517651664498081890960949730625185441850910480558698240865249431837342340303232797278720747031527452535260708437819078691023077786634132835412340027394068604559610574401378964924789996769246452667764854650180759561825988096240323645012911000796698605122666127861593599687262634885608854885892902342178772565987306994058319704618059158055049115322730248859207258224032205486487161374512910281356753041115651414623162828737475514302578175671475759170948338626703746803129188684914717003882871054711746307679370578906326769966348206638707873968341388555654199681439970635212517262394856218345340226382466731763770576457455180424333007530054484657144554832067689638679276829564630992617775214890767918468256296349696372886473534129832473404655483193149792983631899846629743199564742614604887864110997088871883549656548941324427162789710313613700214245255549048591981506273394151097785987011954703547182200694306805860876385879878481359846132091982555409218189365916229083842046404597183314212407048295355497170327311483558650336293740684838956416172149644797787543652941065866757581434286193089347636881799707221750932897268958035465621500596043001033931561285154909892018003084137137942713434626188329181001425816745248736424437605590887087037963472201717863324439565926727281034282908836829231908727522650016260486006312868579621384018001655527439447116386669594005871092560260459237756097193545370311578003535221404537707735546578500114815537169762767047848662964606153211799252324706674061378011993305228538101215279615949659331775793775318182206756088377402838670363307198050443755958673767571377447579626505144975434919434801249115390353455621272957838324779741215538504883168873992267484072579972793629683631271339497037186578964393268636270498031821897482337980339789425448069751262322140676204224023850065571425100660950886471413264192367862653727120131912071257633282014358056776078520878531549779522371208923963612284282926665518397858404886530393912775628460786746120061409693762066536096783252919318514341539289734730384491600179760540423760692476974060968088441208501907275193244576447507989817963054237725731142721096482671051456778453731619014583016292829410546047070057160366211496031064910146701456663450635981480936106758956327273951832651943897623863814868010689116190706952198670394996678121022149138032422992119255810122007691585764934032391612858444091656458506427671520877415614047568963856816870697075402848642761169649868977370964624606582803647044596203827806643009776568853434158347232254249108121637261259126070424246502844929389931794949354489038534478896073649004705713182933155462079846657448504759298884500200243444617171829765027669064734244548214992087647147722546888654133478494873668174661555874719831817393820531406015619843672706368239917837438491866170712100934714916177577675525321039507185544342795243298698348632583692716931831055817061674043325560669607245594270798535999879781350037026163461096846786777278429299141438337663767680532951462802676749409888158538863381133256223073269606338332232416500103415143149114547660154026291758260816878661897884353324775630558808539990921118213085829725900034228591989185103433417456845410227020856843679724251985428888620009657029809949920929203269478830607853660247559159472214773213155829232938568995435246362864720903199582120798413711615878870213158842182469552225444497036437681953269874199349781449367059632703781956166754485191433942544949580318228456655984573814857973267386594680567070137652217713268271576164948007563021746261125151887436108514748893505324564011545192730961396415867955862071092304212363444048770092274925183120728784818661140416833000771343587705095995534747750107968331411623274751720693363512021631736036138560555800696562192491327880038023773608989071858569338870869222884383621730045102602383722206420843562546521234049937371122325179670779062993890234116874741000193274010694622748624354162081648870852347011644492373652005213266883414447205917181773195742244609013682622264475996737727489022430514726621275851405577491497234165931825285723068972204800244740208909239402502199727248608987313586158792772114920703038550213270661014636578617056136891834360802441895799017456326438359225745893410046945178131174223766833590782642471928734120236295455654053794494318064238151166959943612832552513629780030058048645542452228262202359759637914663420383925102288308216755091652836856873471284994657943463969539355585865948758535984109472262679297805544620692030532044985354665013909420750313892437991535337219956823570058959738449895018107994610592154506259734975793474912209494060737478835568524145820000319284455962304343625299209802293807295824779426430118996637823647081276206494480973628675603140787580629494963597132931306994943943051097378910926652277861355809122455814982240575494201289460993095194987109442403346101763100918617589434939912725991443949811886056456012381072308183516816467261341697146782347867415867400995138610833012259537745119546259937811772235235207187776063261950221422946383856125107852705767172713109589749405673514112796190042813123784759747990739629891061427388382860662703826173253035300607479875497870423044284462837335449190125766422889556844620171999932375460344601621608831847219902004911939898567100407699193067704841616819938043935708510162055575172525335974135728039474889071961887019488398730007002204796391478348812517997499206329833906934264561858814267866851249849585094683341573480210662464812960208712807986316648234950458677052754365925784835043892898370357171828042956381972156920769531065728064453613231600207207781356375719100438009520333017324509845873368569210249007933370690585799560600501952113705294425782754222736131148059049198619748785605607960637789630892224550529670478038869046960693602894031665657252480123169391507148677102721985980584732405138072442453175999157869575377423136255553035234276983845063798956597467378567404241143654255732418689980752070108862339244638467730818305774293675089913247358208725979364187846013402690051407472664368168381188292061841528906957961330663923209822753183820445861875723610946720845973389388803353400459175146223551888028568939670376044087242395222083609286570226836180587330277917282299665372441249094834633397051359033738468240308824564936004821292963908082069079560224669781243924405963722689490944584554978420055351252132348505058463559105091686628159783605517946904011032008422924606548949433558134720810353868201278962222971381104932489021601590448300350664605610624324095894997923644690224041395683426395684009532862422562774716861846303548374679710445636771109771259395114230672578007185671743763063652896511024617306746939673260689989210947282131651940093997180301536283333664788581655226358779718194500534076333457517934316296210593055101971500303137673649790615785232231150195623541342903560006684229460201949506658461289788388986792153391888759996842076552835828335131300745943872581635864378736843382655986416147364982303293672709721638568672171484077743371816787160628635727024280942464091398949004638533960838679968761409651744764082253081169073005140823465690239092404409520417230247881726301036992085714344187866326484323032392866521314267386142137310530243726608190443927168777504329977911373042051891159646399962539789819211601334008570758990596126132384646848724862770630744573692487974226646199070299594639926374515388865256536266470862982241634108734409032933230445304484796310605219196768656644714886595548583426844897429485925371826754645652109300673555040571749702092834439250830494847289744226206845816698083094477887102746600417968869469888742728674461314324859374110275388105799349018394506756235601201057594834631420290805587976134050189027118728432813497982287991598291000400494181390373406522118189331515778682984088400160283857989093969885288223503106805636135848590528997438934903297064971248979503650521277288042849957676713192743523114117912910100062294909968772632369394047511624390540429129684898919362201194271992503488436786443497739005052287940941948546036276287998183204318343438359393391516683199403216360570470841495211768639829592594470918884228768363134666213722448065620318716712929176746767859503524484687704069779962774432374326482571589093341883525668237474264050622309615781281680255511617339177079658064430618004811589496014937126260565765080163813338552924247807725605780408999324659708602563374615139643090164598625090309049363591634487709048264916840002747429497253305386743394166259433498534718563295845002466598626871256253465143913713925771483618002942728497978566488693347846319882667393828236008196146385030966246988597981610128570608582076490008031708625404586137937941589662573385022724391556413584270842984765365914912933385180014063967614587954045945543101340210482710275464342744951797478765032456020688054098839415488757856627335912132068931198929690897977661014226933166692684057160513180351591096049047359867818980932302118504246973847840886051722748815311427194059951730254941463325153829621456450557669543161196851343434942326930906001119665773024153741865077053713133307608265647755956349500070979984965816553994553931794486603507722722383316608574895568489933343186675561877874506559406334898490381776481194983861708855182907806921432671870398478729408280650009805313752977895701735310568373349988994893371702309694184807173310357645967468749112048061456958201557619277369208896344963986839602053399900104611141696654173278199409391284559062810540186112091881019072959405219877044132145103118910560438710025277497818903451606013283512008066841476191601649884384160466023391432155314322200299767580382707052958826578421159099658340578081396780741818770074037947019975264259025566457829102477424219398557305784382528006593721176271006175786898285708009620294003716836354935392643347497477555221501546366851663216413150036294918243796330927563203109223893239678740979013976084728504148582192904841803555954791135636042611835210524049758631501075090594760767151031982767790998566500499909280541887497640150446594409948140898009033043878011066251416133543907009267798638091490142952002441567779463192856794508324487548898660819022741834642845205796129528193793903826524778771056108343323129773317688271854563533695103724892456320681083755992006842893380413881259443832138267229708927471255843702573261092867265000170171114474973181392592527698673805874089480642618172160209410987891436741629477626811723852691459579049818560978130453105621029268762789883484610247532677487730383344994790612499067324105566058281397590149207258793341483128171148671321800310796032020182998050998524075190213023151805906230911460254590717713283738712928796786932812755157728814266343630471750323264309449136318168944947893486433574136825762874652311525090440322365057842439488470145268952662686360240585094000937816950486642211923355542978085079562838468972854194452165654108875984120582894089467169977979610262559137779415032837705067927149407519626836449959501804616446208557869118218380096205123857765981292933560125292031531684056538624102202451633182667077427429519921234073615395615605402239529257983847348755646221617742716857879538153045146683336344920736034553154782803428375782036573045486810638016589698920716219492305681169181337323644412489393898511026905943398620927676928338463845985194097554357932350620517944804631707764962491443262674525399296082670111162096205217412161782892335789656478635404057393963892406543262499145206184723882748806348069732059202899420452501365365042441665324914652439703283966480898263718133856623387664061228447961625415285774249313197046942917863233777682943807080474520834614033951867614661631192967467301528712383276929459012380563370134961818152837155964339804983703156158045828641186521370756742797990071691832624019991026978288888002700029540323749034447356464491615618783348608679551953126010551961978668452463621648276400174855312037970165765843072740103224221497228562188501175708508846057491023826955034716606113059089588700020307864959290272421895413934490306993929382769645711014621412023961946725753361487529947964301994592350903088272607350192310800900031817891736297602177157099211534785948047356903073893987351102316509277433544808843414902999806912766342292072128518492350829536493316608367581245130356145845608397152653837362699508906899244459757578904128931036242022035221942836239496167394611338519278152780641383230892214686044016717916681690667056399595419367870134336560699755784784564216619066011934734284903114757549961652577381640788809624382258839982966874538536049825684682002281379158819538832794514045848048591262968434146441017339510848883978697558974679312348485922735239209884546578192743578686805520949319082504151864439947912869149219776135144042343985818016262179566121891973114115971682954635028964766256244474978396087146220747293370864092880368875521560960213522278950797728620170171415474180371860931160686361111754673575855214544533491568072994626664388711998746201700207820186403615289665495211446593828237477496039507674498661460569668380397339651639927597443818635015776076643610474695102786993327640455041075034819042340928262604181208968936334338157498087290371287301878277958596350136158006569183432587852732779532007163341539819208299560840931355830262335371644377468877977677821433945614999124575521384588524556678647135747987623683177264655667425078048428598466087945103105400696811018367878887247971331442095365425518966672420082466177161468135264928676530279930328741350927293054259249336248455532930045695602140635562172116360562423967393982128423753307981443496392842139334798328906840193688366464743609170477506561745226129909290021862908906672827805285890837330546530235918043531356150135156984895772395046505208190211697355057412541860125847748131997700413816705757891375885177511229110512305595125609607079795161507172545105045668448305216949848747268900304551307560337379186118234994498749340987051359394280687380360882632066172926207828431475564644668694775402292764314872018206128646657422531453692408277476777630175922650289442611643879333228706892001509268320336068235603359230056858479056163032220342832369019384133799478737297067417535801557271951676460523472943078311755424210345219408757745342631711089382319805394361889538196017940435356244989727508078972478845263686034573456955270336739322935274206822700576008603143362423186520243381477972026589399493820883949858311318634204496488297711910552474217243852231511370044130018227229621916492294935116002114140123154201356204536697919303882893516479534515687804958592919512749698721957802805465141472651235048520821296523351249989804916679263783031111784789311910717172726644994254461582557791449897228638502427264390284934612705021997318071619468841767135313529377956055259230915613741516682029893218508081115625744786384080831803540660078255620445791115637484638494977450773546935724904972756897905685268316825198062736228039375962963307305850856300932356135996505234365705047743428787185781789156115322281587608491434227144222280270164226874385127704313601129415279923827611243478686534470365894685611379653979450427175712047600228211998470162658420507281500311298927040277042556510814900520109340120532586784414104844104585568213670161728887996478134374326715540295478368302613221202522838197254132552643763809246030181498661645617714609605643926534842846196704464706704515024503363317050711581419551333245236054545737852616650802196712283116703709555989739422054162098792864827888615621684413338153501851418936123981693373635292981686566799247156046220713678336889182668746692588596159409505114075603420817357160947864019543444529257578978480782267334860324806534568534708088753788547616308530981414281549157517022815198860523897832189180163166951872324759889764619916029090981200462516630607877321438666500784757014244781269659226771306439915126511457562515713638811611440794922832767965980963249471155651096076454665966461171318168331378200365761253294911436282417845774064545432286649410358851527134224619926509945685746901691647562239336356046177648782953377393596111750229199339688471049416224797926230751220826471623559566517500956109978937855141916584929831200335544420946776237016664108446703438518235329996465563666873813445277357009547139686303008164763324008655668386501638539881446366280653431182950544857782864383107731409925043878871708365535072096948212070835100318120098606228167548487621258922092969092547602646942761918692846087848933146114274406009005395809625150035094883491746553163151429577575053420858764431912126012498619058981293175381675763690300789490696244230311083614952019547417388395083353246700772254140626490320637920941755126260843124783120313896898637385638055767584340488276904251560149637286893603882408273557483051645372240661399023321865707580381280722584496710160163376677370479543556815745564284282356829573351568443602520077315538808684449918253581078212903856268264346007186152017206570686652378629505589383727817351905316864221017540280058211268975159698530384479079434818629386128985928724159945104559958553234919548276451598492587115770560816784514506568329898019309664111581674337269747563649910614134652971760800050210246947020712061432925040375373177307979132488453937278295854492948861217379929605666320843543982072397946329424702865469619178723903903147889327796601910955316741211479296077494964847591138002320195944909622747922337024155611622925758887273347674157342065004944367851143234438491510698017253073181010100723578734805578833731601475679624672083061833850194912743183428869008790095924681051903778174987316241844075819763963071055938799212720318555784097241361201972309017973125533150760100475578345955159732076681208958456869014299925503326949836890159056621386777614441203899507479211377307944328944974475654621793670210596097236139955984952626020136923381567573918910289575418663528686054498513261052143132050164269350581107432695323145562991570341642980769556283850111769063754727273522020026736429746680165953095683010151816578728127300345284977470496350990714989475835601941478474872030690169969754351979411359856578094962387524438292692902420491785319708026132066195406993144139251507931984602036818251825688933033598272135437372687500244617812614141481677177075722238214515867120711990019447244754866458113084949881949848192816881265195268558395300553184349157111185953626224892059276592524656051400026377294454691528451831400220723176134854689062324396313024822514693875007612723232126612142081683126261420289196681689213011855055817038038142562264927070621631701017473787532754482386410748447278218204668168408436748115145962733086474239999873200441709715167603480001315206070120159056400646843055011672043912016442457706902590349642841503265531407653106040530631971838117542575925151768198627667072854897558570386998067258052948608858462854071475249893285281787538302617439239673965572038291790464089705711967260904822025337274388675172392219649938984401670824954554634884479754947909725810850749334801582428605198112329293114515900495174730438420270448316335716128651252013244699637841061111200650203874957553079228416223301727648132920693507066139162046156345723455519432608484604013740091865598308630257842989288636470439450832707104840276018477695075453268806886380717291213692350854611961255593190783331111205036890220801759548092219588646283192420782000236389573251709825201687858192728209349697359452824375979852710945226578093632454316269060692100486506566385646704897558923246283128183081465910025230609230275359489776716415963784708163326516534456157935143197476426749742806755573916030092628035438744492408290151844378924994575286729716183885262241873158346348277741189281819302663884473080071515933156317503479894299374117822986443525752753324870171874170143304591677508009714232438301379266489021680630263927766314642157471331421574304080398152789678774579877304628693112323041213248209893029610309993579118326976610885349743635303799553665193816214545314036845010693378506362430719937779695034264927768671206623909993822080749166450608298873637896705140857851341401695386216188578115396220965729145082600899462681239073945437585517887172363803779820483774665757675837590384293148685970090880737289679969052006978995691081492344141479865571234546022560074398553877249341730085967549856481672700013881358399128220195230927745613408323351200508678547475140796150688892173032131508399822113155082560983196728898425749493334922798792747711921406072651616536923833357408461540582197759980103448617616315276685995404066676862436815092012491853692483696219306174821172960763637574338817168464697958167336154023724915687812937899577940510652163667015212614829194492507949415382164223066249584193515679519371661271160920058513197406767214051682524387060325641024641797447667932740711150699566860780126411766401412092792129420039301559068910791727356771211308758339648192232015851135829733660562606674984213377790118163451503565962901771042338425910728115417163131880054322947087923372398649397443670739509414335997809609994058067111841133408780510616520731863520559073199844883902493356316555555188357914436379223805009201219801948370678637198951854591645330548090674134815148156885723536724227922950705794313072128660365550562787497562555697039079179015494451282318488943682162801367381585624337082237787477851543416824858960055466496857818140420074276515372445910735629159428337341469269502660761090954161325601977098174349380851030180665184012459118818230570080157406779058337587394756932341383611779367092944217518295115055711674224659428799044477958601146399257538128652901953887563133406464690329500676922841926070916949275111866218916729523705485653286972421775324880864866084296447116632311599200960582749677728249107868932137140835866471155226115764032399278441166208621684089660931516567204425664450762481755839604285781259242411279310489226144179334937629799850152546141381690641251135186580360940114923338900923679514290594018896595753424555573153999135057318801487999529889149033732099073389561451655546729625449606430272231033696067636528839104085635059490149395634789470807268771521980603527104927834010278676099790636207409221392131440273560918099069265185328992764825715739563853796660293679141283458887241055497890221881324657630429720236803280020630354885731219935418342286556181251152787451026800036766713801328176867748410435050290326940302885974596330018589594502703151434499834291811162944574416515264276917460736442787220525840585400036140239469563493960038405600651010265449991525094618636333423925394964022770884396548462204526968631032457290237803007889359623442570287963295597345216540141929205041050953469967766654307438256384441360332276160162040349877464297412967880364414122861842584792414528418526264444813295160677608411203097066701373312339251056996205891231664053654625660321129714300229850559990809508554681528054362569303732103695214893381020831195358625154602322452015518687697880365035939936627602497911175470119099959801194571970818566878729885332086325119901297829910440562703246278119043884364242762158568136704290668790482588507266584076068731691071401249157604682743975769012088809958990288364119113621384876602528859704726801142000639321378934139261746859193796585843055704708184205512073721732037994168200941278935784725848944626802609689517915124682251112128031588332581264607704176265376229003388848299955393949871010572226212679416788313115091325062903439289358869304663499230338763033550910711505501045481096131410382649297242450409311799174663725462307781638076898943943688690432365900793054185528013910512775528286862248526725948182896539750735322531760742223334553184132410075140493421608362381851573295622669608795035329547796862736042939288368428080211133094118536602601201667994668793787587274389532519687071180291124538200051534525984860352092486841903244443027704774325351697408029175386114991078243419877119599471219724359466062811087914167027608008608973586681985255872069125715452335172724865639998725751632316008509580894755696129209841779990684348175665730187327189019497504790178351870209628495570564234433521555345997894786329254570884188094841330952348501697222700360779589704402278253403040092069819616323098640074713676865269553312318294255049310580517392165846681523304989059698413142061213502837492000271323887769405430437056196998108902081501512507089511089705765029546240575037546836069819142276960660476138128384180877152280700972476712076104677428623945882234236108872273360440511497387747576181998792495351732328150553057803533189653732861368664276427396041484252406337087587023676359177958713905099291018221449555935280017090248497698803833074218776183652377678699998194289328997653409119823030279343987719878423844665284306335525658448877723006775008265010021493667969929423221049544625772279709140210194718582833396654569961768513352095272548816330505641474289993063597926019998316767904552791634646197946735215785161932544968206665321607880106974213231223610576122125445618238065444135830993871501646448466044315273893237727577090244881474035589396724718972124809524348863691530233055145333177730427413900162104498277157484450451605588424899458680411593204779365899297412346762157393860134688800816308671027439809738565553625173066507279754042218574049350065043027762532994854144390118605962543752409124623085105528750217068641741762907728104377294207527633089113845918862371397407359364031226296647890065126831216331123041169735902149472175578490982858864699021705811803052395475522555853492781266554827173574657780519618934985918449342076895928384431470141048745943011150728674109686932589845393018171343650816121219694516211511696160305664367525986745167025550380520956519264220804485813665067067722373951876197522562462270073401368296236020396226270486600787839777258767836021103306046690200828954100556432913590948564891095628000038356153558342292734943332063286185803876135636743998341832331129081511478812873747224852747672362066834848947448070369526174636185518449901996850372305164482549082677603462415324487034557932139035351007730974066493339212512125832860826682700855480734144982569147655901327584921560862425899154709338483410640142827113902883615635953248060420799421672402048689366327055833903943641922459994764412363809454685725252033865835674358373857240904474072847700869235617681533837680292154880999808550343383260137086165960475649662733776069179884863041046863548019806525696321589668885028850000992668768101258289250056262478740278509565539132557850076133092818377408436507749450002339003904903764253001769548888070660538367459636354443329226434442858008687346191804824523758795312225376047547320772295366901380339954179647445016697407074866880033006194405236095373532661771631934569136486289576834800915943919753590660377387013062563583403117779550199493884363800148441864729590455629881527622774243200295452441656804039057591220703211059662480632648400948169059700979200716755484644005348644866250940533509786559884446964375608292137960424476913083929117339129657960016840890101839067626706513942693948684739305959456495786133040695055966751074128322226087163717783049981409118631387392708242245770654437514986036650909017147372468050496326522111167176153653527937108934427291749568907051623000587529073338054986998020827774785439462532873446445649313098165650258005618036255133738486680061302383725006034879647858906106492043478350656808625674994780390875357492874336176963010615557920788996962849078068411631987686042084656476066222941489883953333690051489811654483785050735985538526164059753907309970706251020213840102276163096472613381417139278235305862261366749295733478680479471497933352061698768774991346474624905824320279889644321544164714346014041676994484041531408780604443204114672045391763815500375053069672574724062614880088571636120846025593693895132494354425317595527120239791408825105162444501999733514937377018733676660261162125558853817124314011751394046484185412151520405579767711856239812836338232450367938234981011901754202992609362940452532655670884733018408197963410921505131871161389171329461346143468345026607408375608940844203853519519631712408756330632961977455344013268354978254869308694570629801845474732800075238400519780031709320516798800241094183435544370925255647810147961466029464605154124734602849006712576859960616076575507645588849031688976073336854309586380404165681963248856848258838150566565271745805400643036265183758038500478136985933955429660521918181018949900048165086840175288684099141763030409909802701425631632148656630595221236369321077774061851573212922500570856633263117814986485707827681301403155281762423901442830802107357669267853656106686200210067517817498443834276994014910236111670267121239863796491716241750305865582957954148886908223214606628358770035696170901527693403805288410631376044083348744310845756400750940852942784833590499374789203012980112781924757091441162327146991786154633623566886466416476731544468305707316094908766800726421393885511855376962205516415604233368168955481324626911463552775157381107504291014662135099309127092611328399768673315193723500163800875227277031661409168210445938386451417212047748439675190989188212896419480269714722566521005221049411594550055722933341015930233087513494312193935536416137159158142292701518469602428961016371310324241572984440154479607109063286806052165601987421116633553316764575667445310702182601484083573435989840694259455290339766650529648987701090561556575978001764277198338329569899018472876146777809506612116303963616670504326295129374148833032425132749047954854639968521203270507864582368906636528204243474114380617378830849284116816850945744823319892523362905582964683826164080273472232743323779487338155161093215220840286370966010335333619365280686390791771775977899655231396003577061477700495446153525305181122411313735739885123121195152326071534543043652990158413030204530837070337661020756734202556961738025265354514110057114176084600155862143685300833594994167352627044997679366862847047566158636680825510905187552387423305622968980069744405492495335372950099638339875272369306343267496936652934598622911722280863842734239581727099548022563689998157461813963751852958387312228262192920326202186372841770030826577945876176990098956394132142706964008202331725537641264886067374545216724472608861702724840245829491424214577225852134662364410417869415112615952686590449906427624926980823193014099053449133361006730349470046316955087705116218312903085451308514196653692209359010019666442161781268776661040509996697743688763514599199907869381329606836896833991345965034383893654242263867525455580574235479019701905927186252877285599346888704842200455167008074627248030274015778877568432069287748043752573095332799473605558557257141806279566292787931278632543469897376278461926621430702730528338393309871484638568154998610471957785255619663003244660420177530398423211116996469593569792522335282178706870072052555852978581096295853911020130703336653392733639083913416150889964328589337356769611793336508635687594249183482068963030184220498975417054061625189065472022421922745631384713056731777750872186688125999175558191590336861675674386179689814893195039623689067604883006149673926801219817343293245456219371868556367366017508814005729645560187173254184725933591273345920353585169193083028600743156660658723998436761932993551941704445855136817619658289792405968602248296025166254725554095111226238470918069627525074774208503696738974762275454453159054162776951312568240579164034670250787006572769466295717902550970372444828285886477326265240155650699016201587153926306123465608550201120672048402061934000302853162226513848651353261624806626930574392864271831306562513876590178995387138421757751314837031692831568185213379228322100267517561260986965263925246151706611570469259797860325383112936793121932481987979277994985326035914840051814309513192129048451747967917787108708878127258562596525042174253252410946790057817664158224220799329160390893132582510572802162675681567129367794392639731279194773592501503532746985501026841948102556234869135385281960689431957862800930581295557643805363205551527581417973818739274977807562037787236272095430327974509595268836769235411498659748759167250276346327866599798800012001617426798292973101225330597998410714569552965560060551975674258604364676817900936619290297877427353974644416631435096816391946887488505351355873022049901325560667612098688643609865032354780224330533008352946918209578409079927464747989835194086210855188497989513317894851829374734273016665222726225453986224226004371334884350721444533077191942115450228294297777183095520972821094932973121293405332848757201656816581711116744137023827486263520684531782530292654610327149338153978055845827127995432009963069774349890256501923456480262674836215694287978503626503975682469521045276682840122641077383117762936544761250415679895575762101901115792136462108787937407821253010743838877287774245859901672880587765152618766204951086209143552098809861731102652702303287868367595720076216358627296229301302482447666343846722448835898024596742969724671835131060277361434841248075772970591108496026246534276294859095948667095977363668549631575395670311551502689329493640202778698695159480594009702591204354570003674014141480214645088486065950312021620690352764258461843848117369753086425241645159320637515191718346106665521439731879498446423347571857018003989953857638597379358877118398112864450344592070711593300766443285107278264247295569223039245381328617297115098556510815490226486112200784233581672357429901889113436250129622655215638079198872768221650449569129507300330971383328876068276001028907400129369361021860936002479879575869245145951171002286670249601349216751716809578273957197660205759161934896275619000236912363782884099635730698707671637915017621190930361930434746905979284290033268380692489692751973470055654789630902806300318642418348276907803243262338328738712439816491606138078013169669005815619172297203372183883495508445794859698353985039414025717279637183164941210512463323789238854270325037598696152777170478603507126201333710916770798664948500408265348093886895862524917310235868480450294044176190763596670283988343610152970923683351331792848740255229314007314713917857826650403860233146577483697313776947756276925092134349586946003233014975611425291674829250620914067281835085000746984311224112307931738442126890683827775543101691847126054784407492904699561516463213609123669869540129017448267094397473902829651058156281203288289432282200116706928217820902706322634230664940915455682997455214628059610645845223944929258321421712610158189377679778949743106920990304936291935071830368295762808049676560586881772165558209177271671160742119908884455080319005733245732377779082658263412130324068570538860256344641472883240819614975802537123364871828124707668545988895086097399637968149323826029208124922076671795390362644296092214448864224219778164163560382852414203710433814712597059942274596112491651592947490201462385411036544631887146859566723841426093921791888059204385255442938500029503048395081122142275705884265608818764575884894064161056008999602382674844395887773331542135969177337856787355863325875050235247163495215728594855208676189804502109776495732791183343542807542155271229152356635289942589571283506591376828417857117753488895721618535399801087290691814679598577022033715237542961617966328514016991772923170642605882907247929470418553812669386351572278561087824337624346873013306517369783596703387234340449249524045511197844829020544386991439233100364359109673531776182915265029875736980354451558868150214960491336813656332245062538579942771731975502271092032262657883162407263643596528017590875499142655725064385628655949899423629031928354231925325463032319465732385190535268878347747456892940040552684503528752220632052112653654212845999599781319516152141029721582206047152712799257384860815962238974674507179290359136946488355660283930499253241337184908634716282350658577065715444407372059919753272516243799677910539561776471206661513900047217409776608912252529899807624799290076362485654303723066042047947219084557896262623568701624831278428388768921876848332939990998214512652039243406749995376508948825778694987594143275798366207715042004888125364419277813005993637639592524576996080481639871938060270000381268325025137395157429814377334849235377775640974108601877837405110847438023996885331142438587944732485805344106174184430247220368875381357309756648706789758434723942809878683173592828250004009653549625173762913522620034107482896123020849315467842021856007845382975562695696338344056748493790237349248909858437125464666389933196453919779408949314755130582147989302069437932452846731821716419920690851623651671878672836254949327005198210259414593620726854046680222674125932161898428265042023940771620334935965140974077760828537592753744532024139858790236088518313145006534563502781158969173713897367266857796239069276032288562318108058417531390224691894610860196157506439323336184412455594064275774722966015188702416792378994284304653481518871663077507931924458191701656829537392847130335384997502091350835378514595787109698155106017020155507147479374022581455540199701494630470950268320649201212091339977472401641328587273321616558669805219847686764256415642359750442397322973352131889715846882348736830994853783542557434903465871717009432245813742398127736139748908885744438641527893777739980760819177929022459493233780171325535926122529044042391198046466357800171669725596996024107322464788569886548122190935808659541535122705014517389519056120539047171140404414852502662080745710470372273302297494678819106976701721902299060324133696131408971203284401027708566064092742074417713263929475194286139287189507565761012431363099395476777959362202487862949490417519684773747730943324465708805612330417059991983878935636028909547762300732873494858852470764189549954616285341741906643943281593196869333211807539746913236766499635954339449832622169484682803922805917474105170017136486886456780179582595744901667232395162127186223076095582326969290552219698832941513149618378225177455677292439819178907807463113227612493707841747977453884917429726198684456927534821057226805087228124718942010399228496598546056687644110022256356401451978362793357338426118639349990656403504725552541969534635577494144171642567314387093156035000458334018720216776550960876674541708507688990438420594769286015572551785388023613757025128038437980605791508352393372669976428565939335604945656545187383723083811529456155855786880971554234309470415119154260238366334375286430568823334708819509355258967044985311496119164069110618901405554634132881549642291701833668253077982962548500782004585033409651161998908330472887273298467978402629652576114466577454411080029384574242851364986428319606915392598688141488569197430166579949340948729273761132590937229126213740568183195723446842135209037835027180214157532873235685435620259754927237327792688799582120876829481186298452739350056984767748872984276194635582113700889630318397477379235849108511841968047372189093728392102988343612851794074298726831969804394310884563203544961950796475737857466871170335791807733663235381358594905533105173351918228077870224833308313743599287694169386279337190888339148147809989965817787990622910189782292758226394623853363659311951921207606015830285139690358355876143168388214733462318185719873662755860816196448779034707963094887675076849111069208010110753124359757271274160197078313187297669664985231588184154205178272596015917308268350222915284377298983635162986657308593782342457229909803728822321764454504343883290956594958040134859981308727241982459684757166899615318397879062940870416557480166638620356086773812997470892612071279169320848682075046038530196926530781592536218587404168697974166104209430497228664585714863831579154639055058081412833427121730508926997296166598842547885758170675765433593191577352577609366507760332799744884716722218711920019247274381051742589706397743226127881313734593271299041912689280793123944597549850279422708532091959647420578840727937008651562424997312783023247208500365560782492297570741061417318979268300037496424244347455146743429039092766600921596594957701133161300147608826623866393440711723471002866323436065326758588291640209382398205290477932903357392712068020015139739697156206708723054089142408074813357004568945442140129541698322889658487457466373943376289116950556754210783169963986503199914801262932249394646262621833855942553662906145707834673083547830921629698896443004916651871014009403857249012698691928027408555748676415501883767022175895087549899062917635174029032289963059274594924843279171749580842413842393488957387052455763976837206044749689244877534782502041543220049571134042380606282875786379745203017753941741134020794031869216652495588478784984711849835987896027664575039792760444181634598267868100001191979089124171897193464716748000480442770264501384491170534952000551462677533051073528692693067846138306077515565189735734739135462409616822758963396460176538841972473435486135026539221550879949452198399376211588175446206734902078464599166111438291831522998046097586422485947325019597820072982680703149962286113471273233596215996364669613994632750340310690955137599419809577179937102640048078824023400606346742195970142341426149249448099044834024031975072303532169265022754161923915713896955659307017156908638014438753055517743007399539346095400681457116374670706721051804838430498269053426576518569215345775985359521829582521917631778356287029678866043414483595985088138261034179766500880090061027773239093734130170885420315481541230821799075858276651658870535587504307774761490101892586164935461839819872449558667024679436262854064084912911500721273930016253579863264290842588388376251025527529562685661688162995194825998621384723222151562201365246117927196480554658655296776604324339323138868515525580583565448068467001180994315605383993071587588458079222942584656513633270293371373688905430815463124620148331015820066405480137545042302768576780450498541159865280956172635970275425706642380865327366772534514106319616147618542802726325742208917933703464856304996800803983999386457769707120922098483095370648118986782117912627264612703289221225262235722124773247732278655860687770536489568539311423006570612986355696478048468364917620383452421190496934200664135895265801254882901183061531862038628701475594654245284738032432746031236664086881296219017005434797238151212326858657542706877399559467319624656022605154475522923232912536725502854902083094463615708763858995837747324863689218833266416296651337675126351495739698733719538670404500241131672237772214613553328277633820707302329615631968335934081273382398457419727349392866758609548079378380151153749952657104083011077245994544169969753239425252263171741171712889931491458144082919261190251204742198130986467338101038436020499018437089289031884033740551433085472093904581438763444418590337717465056799789513490297117840626787569672581743616600818252959192171021091579329848130212655421339855007734986054309235104043496407256373002127129357667423268948966457395408706528765928231335543229836047297530905022408684608316935919914583131818564019473303730738844712983906058600231874613094482063911609181619016893068925826831990613873139418888106947482131606603809984679046928677412589883112858889878244594350460876706870557227736448569440164054588862132706577309984709372907089324473782689560556009370084523759201702832007455981000679463543994448834219346927427067084177822584342450671168275223526183934189519658107426769961398171517816729927189527953367173355189207590998482540886943106346733696413275311163154904405364380049608491150611214274341826917369452884052951210724028284611353275381917085390418624635094363583837169053012714917529036187601886377718081628746159916601161394839279182514715665451471333647537226390752578018989313174477824503561142821668199096546501503491330462084013951689199335452368172962894726146719819934857039611654771515625832374755051835817082774917323247988941727154168885565229362423704597134028392013844187418714753619263986800976727779032677421500417479577364938107885974931683354259763922660659853237300216275656871485810272405058405856934445683590776453835028257533282950744181785987003903757280139233435850121823217274780417305817526275997277177601543327900945312942324872229601926733152697385128580555054593052694301608858354735352633025374315129397118600312036085678356302837163975441617719172263570651653605628009828719579374034197752790884206421765538493069101069624764396168990418679904121516660246519118946042682838641547198076647205529708073767452483463377725630497587310444314035110654631137183754309692626495516826721095595829288997199497157978306440614081983802778045829653190931875300072057359738814866628369925422767479698157248326946252023959356455941636651959230849364659788724173762215373315970072394226879351195824833544664343295251722893883219715584175644019810726128302257443016433238661329175300088950836518512043880731246590768880820352203505763243811312313973428247213726560244995942410897710549705152114454889038083639023288630248127549818062771810734759374030411918032437281309037430552186039334383162697709925343308709117311905775294753546216609604428627582750424862333973533953259381430125414852420301362593440682874317333679649120535420083381906221662005580684909613906109633863976108568834203965931865303960848869207003826192971371047538808709248018064323427631131963947850457159615156535109082087481590402279908992512586557089133646532762085157811488620722695341086329114345857819462945176306854512316798157059259788270377067435804970929791350182187709416269079776154792750260597041255134678081953958814296724095642203834960587983919568974960166141058879532098028758444816405983117347125864697334704681182940041116596064204961348005004429169674656051914105512408553693461494640513506195474137395464753649456956664782522065528357389413995142165526674882600355183785477162008511818746150536545054472176996455579591090985904122507518437456266087652421112064263442635179559629775449354477457991170647020279333349106988746600529223505715519775523193955722354229277098810124489628366227213576441980639846669847303540888715658037201254514387101761863168406808789415224470876672447641913435273034467073692940901984676044417436149271656325903268479088321286670107317344059021457190654733152238039674783411663932133044145521833766803760654963418620675288514650867765870663434736154348885651637123627150282330629453811235020500384956496658464041043483598738466475213488421312506742468736064191444608976024917697707837067033697952244170761138452418356713453819952760847253489401797175481950102639090788255769759165027205640100490594283229533554350612628430754002526031237190491928447208230753855943779885678216671134118204719878801839003442199406284425953432038288454744347624860942401408068971643871846786073574040336460785780625085222420191812414809288819879340063164682276990832265730772375004200854037644494732200718795291879826761351823987666011808977665832829417170832502182656201347623701828675325554795487296152987543827178891954792478461351070564475836583650032726989738764410806665682144535611199999714785908287296494250493516203923982363746519555594796807827380499897858279866008835674010424754389695546066120845264222899811712043255104406078099865523368492610470404802518907284748920009833906102022176671188848908981937847545873169710409972691428814948304137963792590403675373301827221387484334065559462483841683596801220334272772937124727539631914791235912143135921123939924929467224599267211913680445663352856003393241077129101617699942076432779965379974600755479555205655193680019649701108167351058703895139186141253890559736752636378274880196658805273655314146523960564147162814260371767053702808990340128555266373459687182156728608010358354405865577401278658063073297582783900165268483407643033021863127589391680773443615750961066561036140385438682135066412974680616014810479630388705795494229866958949042018762111568682018124155176531696091355622361291342222429977582659112141677952305820766501022658932645207725225724516175319462414176159159574120612510798854776040762948623954507592533855244521965846372115826547704255558982373135110586753280990882309655813307002260765080865456235727933797127125904681137568518636515435910642618207470066991721513546740297287180178212982242578273298192886443080828119203081126633310386469068320204028476006279532222142899008384088511067755787315395800565405565944486306064843882291163336555344098277081781554686676602630617205411555589111772930797237714482930910650220711649505681454281515766147851965952127771783484903063340717491108255093539724867479913142664694186220081732967904901058265049515402635276746630417708087641647085081671375493404907601212740644949306545348509875633555143097042002721453658254182250373329630045072435126983801681473055526306231808343036544468783255897780767997842196903441459086561786410282641609320149019101866879587112609804939476110146265135021409873280308285010802276882047696755650448126649400996740566209487966825863369014693196744887270511421989572236558458999725881466117203879453690535353656352629620355111050770819658235934049332204326114174939605525160321341146013490391570876002120724367856640280160828629945034686951478808719713329043175294686072031616677472523801856752671333013936149359636042120076778693667308826123086738078215386579740084615138769461400760937980007546419550482945486405204080011230957961478949202725764749854087712767804312455739167035210309690141465477177278112845262492964277198970412520089879922561180305982374459206770562421767678758462017099591751517517372212768662248027376118742026807744605920673987000001496385605840258695443619118501951654560215596351493004371684847848069624711936598078266920369468184596637901357477757000560575265561799230976203947578683280324620146032185736305979433246910516567484720885706731801821260881563605824783607288848197802305040437823174240618042384523322219576846163405495866698953054518851005283451996652385526450343637941007587274477445318281628664322802706776787763843201129196244420446233916530396381148544196703671324168959406492728871742751640121990136427493064700509717096372844743759096794644642040513409976010410848963493435792739812838790059940834969243095711356383035821520829568277292160686119431354533174413155752611213791164341448136256435847880400367595448375048585025514458847738014725264074367015093519898679357454759817073952136235969617131156687232385421686327035804066302349446986115074893397418149494375919060405094531127680703546636959777255142145827110313420186407397283027458003276995318093154840282149358105556145093812819616052377433088305898677788122481599403753197836161977446113895026842612162931135283654815103644644417884961329506155460691029190444004225423516734666973630897669503386123442104277007290113580948402402938626002043177358332098089694835537194574669614562217607013291026752439893264111539003273144154767072235599487401857094509730870817696190430982129144016475763812080969005843190106314895584434892034861569258836747974060254635763712829552765916724668211504419875049444869476588878938512305508915648952997186172088872435974293661343067842983301851543852876992932121563465941506978857873094438123818658641618914155241986749976733965046602960432762472352863383860477818769931350589869500212532410757645936106584105251564878264010260729655239943890316277005035080637932187121501515188983388037912512964765923189714229051977065569684963186517103654004225165971442911981763574913851080712375277384458073503566404506270438748643776034363376655823976208320278387805203739327553042807954931867078429763809342116931404321815805013191944754531555128039623748666085422065030869904362162378868609887742760211786828923889455187034920645314408699389064030347056075704650093436509973574902404336534969557096826079621761706449967088626630962813542316083926623398715240107980310169825653486082055948215209581233401730431775823086072206177705034753114156409920409956804774799533293192207744649372733036073022616005495637361896907789689590029613610444037880895266598283627237784550426060220608094533421595023173958816210092850956686107166775042434293330175424865155199781893955072087919443365621199965671865729482777313582908127534597363777835050751118707779494182546442725843123775274129784980842161743730732329143498969409971190141225177104444841028495351010167077659164692189881715921092774660306228386954279095397741451940838309538856191594792694016490551054098528322503199045432005108286969699926083894237762324270236687254969545068516813065340419252169276669359111082194259580879000379441872675891509852271754890901350381399474064403476364434491875107538445432729525552570933067675095319810567204381661542966319895822386380784538579079744248147168529556340128312819746914831561790871931146211958622197340462418836303076995215950149284240152700664921655136612844775081672005974404178540863341702075958763778662966297891649449551355793131436739572848773834742525793148043785979266922411644741554891397170859952927578654045618915985529499949316901353864910468098320779631701349568116564006951398451421988883244009498579509394970024238900234002778395629265211739902406309687209956136537016721902622116652456857864739261136929177166181343916609470132482670767362059296036502563614482475467348589342939556639370818994145822685861403540684289960447745902352683625663633050802055730605270866365287475559980165363971928741478966229515157460109236593857416734652619433407654160415926401334721314734687674358161766191602333478054575898341152288462969281044014569316192962979000869744857162073968122044841714283282531584516419251138017361764801498939413629015881774677165146556112380568499294407095204498030286416084868869943111913855105371401857173685406160233670471338594189333501640548662728001425239368396918395470978826783622531503270313047238894736817786257953488174145199764671266022087390394987627246480311545704100856214626254410271030815372826510514060370204579632889423692878625680963665973759855793893926437769276252036055000344245090448198329561399259089924621884296953712755762957640062082404212011901508950179386116713275511465017647433562357694480987102942814414529561106820980488169421290405084059339551020968102134546809200792120804487376068874867896315773389725922426541888344268540567238051255418345053383992218638640440334896797050233083032951814042252726551132599464787571929780146687047147192470881639313777546961310970958371864082497476622522152477625059236799228428118604204373406963263595155171483437699654089593850739280876753083358630045579166091548233082625866430639114397085581329100995499098073267720803154997376093625787806825589426440322567773247061722614820117833858757526989634893625787231922104921392701664385975169542537886842043080131465269890519048853707711590298019434455750196657185761420517205304526688370538385965020147245523674144523847921449538224221723587998063330484119602648383201859755644345276680514629806667331249751119192517555479131530693896382343897557834774342968426709528624821921180084108698418777503660007917056598935737172173041054022928020025995308208168554517912458982802744558952123264654601446209487075709633334588037170068238312704058347870500139606924476252658739026728931495246244267871649751637803082343586954742968283798683366810234093754207644972871516859959668816249957069406740404755737285385299425574960502956710355616038679550210139970534826509533740815841756528384790984505647478173213812243404180776037847627290096280793398272219907129903286262509646444529259566965629441392514284131853511335476762794933773580193467835765919677206455110146646145247352247614905436587283325875157149572079155876947301986283336883529873593418078858601641904945432347411233388599569704805321587492045455530011258243736910147020669777540080114095556825356136497942752191963417884306976372074705491164908275819112465238120172384176893008271216197049888218083083858875798942372853354737017790857420674736354136084268590337842649743527170876412148870455710249675448994109384836462991683682906086516459187024621724555220382793331167523640176882846412020113398893056375720355299511784555540187793211975364401517034107747258316353908803957181942552988851792211404019158162918920398890933887482132676512286544566570518809237632515244897827874000434924447915409097079874911546027109032395069601690298414869524649374298050890650822705666509668878188884293891440682047516819364372478745976163263109244459224218621792098934291488153264299606470526982857459512906620222368020603153260726408587310501849795978734599250507015157585813023385975749155118282514870047917330801591797587984982890968138487663979152041167037204484863182647481144911639517898518924375394895373138287661770912817460527701729477955418515454605033501872042708233767462810098918497326689619759792689699676708843793694836824771503172159039518490513726071365163056596090358979422799861319558032837980947536003202344806633977563269792232274880639785500747914000090102587913541576477163337661912929675994454428004299617063195201231604246482746024015532929775642624123121813894393667354840431583261619714665818373474190802470358248065817656887762429017779044999713806496615847091784564103204466641325644049460205606759756572655365788046320283244109095592419805235546411313315517574179583152251807739208464744386653339505222892583778315919965714677975213791092903751057858729408674616691778801959785921918405160657828465768431884385374346962208883744542848032831093648085550101031670538822348769709539620035636605713770766199148455979253851423501110636503066117234016908875366708481478981947092585988904020778476086097918201170991446943013528703650067146658036044049256651016482467358982619213853290237954971097111808828915208747805018865468755731118921524321364108310510692647280868896710004417868769861428018914630469546545662028946517971237757177038036673350615538069172518750829561061274601622523449036582470301000785770213755234877345513560182993179976010526412389945133006564934816899884136479455752483846624481934061320271888820494181922163606287871465283500278111198650471752618508256272560673963116233760524291507576630546742471948251278532916559525543836875203714564161000325787148343432325214340996540193807971204787135234645462121475300379679908802897479593870224208126280355224418818254621175717265698283098306120631500229830146889027828790171958630390898056483314590434811491686982861280122977729374135569440680334096329471087858066741680082444112013234765852233890801190772693596572024854687097647505628696583522337384783749877348691543527970717562273023739165172459825758344304876200838070130072436161227207932657667934421369406374726798271632739266627604213752778234986134129913886275917029821870421867979614396851964759692827192494329221031278832703053728856647290100766191181086666905165752600040568780452406097076547583268899087352073115793937073787986821950477548139810994733678454428531320609270492102584461562733548083129920660838874820303239108804509959702172475359572922832829695146959368131074809655264098390492149652584971800749579113476719939660372746521120430911633757416821076343297868209790378015749348728797285040988147721414527880629665824154304495854133365354253225544575557407233508619323730445198348902299475286892040323928405502757679342536621265710454451039031625515180177479425824684389151444661790597384021592598788462027125651482983934357131603393003060336110750594835833240906095886001289241074346696362858577067890872423451305416666334708978846605279544410391453151165062162207320667044069333630400256277638258807964471365490898757953370206537553509825316517503006005441891387180801784255036859447115456836802644697737194832156785113106616611849033669796364590874109449368770466831102713377242972753586837749148223985906529847790219676884756281067441232628268141996809419448648406474498188662671832324353967432635581239540855981512629693585788573837922785739998022205202865138036118429207505574837071525923178807438606674878677418737705457024192938793051177292166092429440904541326920793224115090528711841177327447163023066536467302650015231530898904374880298204571061591281088692230097016240480117960745417455852018366233974682693336075524525107657112486259667518433783024866970912125274654600844870872887934045220736863329202762583007141724517694839581449815005222862364019784843094184389690732043914713292119158030544686797120746481026660801297164890878270719335058523042862436652524260745533039279299485643412316797734923857661096827860920040970763206500663693123183876976507103453717829784116252107366980481405939659110018027885805044966357019814798589256043097141236589121764722130004558525323385969369179924915136146005727288550640071379068194914582835582091899341168583052792803772936212017279947879286406208515213017739019633649472254962702463702685069866716358865241730989102072949404256447935343658495690284444367028076323304435441208630039821577770811747128924534062368916106833614985295589483360119039240967835626869725162147193713453711326918261446472444172660081489152352919784869149584114858810282683019680847897796412119853258692960721621328335275418158396009288418498082453089676250807783309326777267355020727340097819509150111780762191402492687727553094053619523271165382923247943611354136930408477568817376227532787958926914925875706787983630915170863856310577898386001656894614174462012822629163661755283330392747297349926744820999724514247438710681960394118037041215561499187643798703923386402566059372603304908197339283185138782677609256280130676771246561906959513556628936063691403341921390303359465662413156699885863853635578055686179595401500046687823907989693829031237207387782952368926585139382294543299521136194152623565790851987099977557726444250168951021352402327822950292698356780556142358008615413693268219381069748300826790770296107812081976062804702285453879604869817904495545662570909818920561566959624536503610608919105623324654966508621245272687709472540694394541582423912651438284164023519115272413144053471573111697554757214824326928019434291310163432955605018689436295982677620915040304756783362004550799958478710860001595001246382361023550305659895391232455241466584228345181483737402782109987692985400134062608926911025055533692057391478446434752526499995409147181590263794117588444542172911168140732214220253382408562291151862142023143509367146188232623678389454059297772031544667065963233110331027145056994230252463775734117185936889532541902992604293394033509495637752405175301713729714011672516597186756160619649864402380940964259345436852750747674252763539477859061330620165690507232196633660978803221447359536157115425041443087061975582260937536753644720477645429892821075840170565695659034050529552501062188302782909299862601657489048130170000920088214535272769330133875951094114847848062347736320006326497038205287244776516790091462044395212931983701662643510019731392436489743587255817189757146345516119543612338517813058650948842972329949956572384316124704265209569132084085302278867166080982248834294034202566968498654766218657020017801052793346068194325574614083913613199655392756244615068582359009586084181806974581537611290069297876639217622004347734875715855642134745223282109216875209917565669769020600028515352021923307549604395360022593787732202683578301307844730704832485810292135722361736065998321007601460234460810284113422699278148484807513357953504486055233005551490037120871782072456104454172222111104940607202962912975018112024448531292794947185705383036988286209156918759286182304037371612946604788807694931587531293445984087597743496636230936502271979423295513701052126077163073678868973108046386961678001181498199841824007499661954257666585413183227811839488976133016350933848918698609381429990617844018887804254441075632019153208433640509513748631368550920800338732108550567885941476497352305122748335420100758489290371612990275667278561104685370947440171862561312448158504473073701231923129425338962791020753611683280237883976273265235714977395507377744640425581753677040706736254832363669881874695579842162786880147667594091259462113968787638635646050419964987337432566672668679684789862880665377430565851032775813008602489018486609735679992785801167017294879756043570486153056835552965562760744358739268306268517529925200970880258401713646453377878047496986208568170144080930554695307783637939310822895026689940486771508469304715161569590379485158914597000738683480626339218075990603234142117229536133014416623832112546505111979692394240254343579425643293818401063510026229794016129824885623951106178424014631458935334355476877876456679278966513516924689361275337437445120553988498092486332974492935632650226389692223848691175414647647498906864305198242654508801834218084142081420522917501043588121986466287318985806355293292696406795131837709389729571496270636628411662722920526549748613652071456013527668534347129796409539128561089505957377565838848232248119944409385551571185287453989737201545683595128855763595505675253749954590022085550187465586000913679908240116242826829647441595708472458991039669929158251296122987045715920910999484008631476188985163519739978389792146902586654509283940201932493932266792981419106970740275611000053344212980864849628106585426106911085066120816976171100364319188440977847423208052992387732146073018867259424884806481518767626153900611596410169616742703849631329836765824756862656144508039425488464623013770455879992213161921032688792269968244751488373318386122915496224166884299374509360051670660205178122405161813960961720647876150978743022019000527195033030208542100378784697774543131508539095002202789202806654489090491654211753826278514649523678303871806991035097032982913928438177757157008982201513533385471430872732856914418734894887708718154152835101230970906672452068135454928122924182338241377558596494062935917425136932923399312892541101180859758541707619172540248116251638491178269256183023364590770368725292852407686971162821961635709903339105500269329510860039148611168452130710539516206177595305941297191607654002543348115529606197594707922909045025289833688474067793155969382427652393401097765377094121335538290833253653512739136205703213322620520875981860917054907061461718508423666580277215985408781219842916035126448718488279063163932730774679639887659198125142362492817167827838404384838904761020950491852796957746989985267415942635069047241669934191353609145815942441582417782256618270394173009415819233815794837028332134456478001455323473959167882445331956764549919814148100914760208586259319011096556113752856139961340373413793874013317014193760807772880941696039643259516291795673439487786912746628426112632400631448309620679494606362406997926221979833633417067350159037903644142187009842489561391538445711782822670492892992503423461850248432952997386460458715748791313596914129609776924176935523775740670016213229846182295737923498678013330490782715435148929453741477472399504178393953731579970507654591684528626291017936139851148681694535756329340259651652791425015874193902111772920358777755218214046287898758449634600601525586085906026587479652303109954899811016073756492004399120835432767495937769644833743848203970841226299309593255008560595030735535425449699421107549522908320010323927020038747772817449976521774805900529898229672836905223505693853228525573280723707390344637801902510522777582522791477633140077042765490036257172943547042345996604767152146028192117569728568968594530311321648666880124146165124927433382278364174779583614207788258882200036414803951367121282009024145401232954192212268766774996350465151563360640310726905007778823216898281384153637717022933593510805381609565019206802537480070010925878380725568855101870221039174007607213462584312951402751062391340176535185582132389523622427864504373370111244267517255146057116284114007207438590154784707763144514375334704411691396782651419904831068682998818209718113167738516608398182747273842403904034513891512633743070389883660600870875327805014453130315191667695501135510031440886784508745932533003243710175249343270936594348345619135331748417678067526055679754826908129027591034138877499827727503554361858645724805383167850988082858495385256345855795933283992348773812509942024895465448745963101005737168130899688753936163364893726017567295102411514700240985199459851312013253446549292621884738946063256323929451656491463231086559897423874979468291383121567241055914396132703641275141602629769213337893911478613699082574414589877899167718753202559399947178014165273880675367733767580057315051738592944581378594214776532545287595546672544407479401582956541995121002876290036799613906842894729610798183993946907793658587641495525437800614828145925642149763053360807014915066454263925527843717228283007962387424844835685867333023963293690199405401700873331640600880511481099418934383622983150591776680515054656767319275481776822699757764425525806647995895097041539709308296811657827403150615978703578826376295122250283980722363281788725770600669293146851462242462472513451743559124754749739724582167557928665831165419180853765596950003049120131094441304739902277371850737909994760217916472984861440005904413818422993162457226204580450260392128770995785259963539093132109364407750384095997021980298512572637749005041758937762256599818898370747962047036739547264427270902246591447737282798132273012375168734922291354389964051974716772280319524427643720770142007616375255155821595345912183090635876091661505998943811538599180642541115085537450465486568697189861061292444623961778537584718512979352156393532245391530050551091657926961768864533475470479533916118094322199731031196580149339386430019449890579211003059943019533409145302721493446930295214233242984571368063964952660230137580111171169067342503386166283714795055250164156270532591680318144957590492297467244138795259505122931997041338307298785014838626673050527853764777413338987955837777982516998305893203916947529457571530020714720511357758888237028530341169386550701832801143678236940910780616132660474370842539094697242163378613596509509316891616159001693192779504328327930210262217418296709048161570603795153958472880999787002889874996280073356199486665959682039844338743508634387492488392603284311271394138861609716133496563237956166767247990478392729571986073767976637497843948478888884717992585766206846133575241738501214014900462858847672645985140027855685882476524370685650475268502575295335979022059172158159957350948239950228749606439021940124787765798228499059225771195657856975380604647469220691514114681294765193235879180940155621455564622547725693759045884010675123781460262235337724594601307841872342449578900739487538088762534255867878836742906311705776275908950843930359421467593627849119642686976716384669561114321673650959751495680507279192849515104327303942276767885730911627792262311102475314281509752482304269770604144048327177349990316538344601462392214804821579281572358868254970912058572222508490162032493921501543257356990819482716520712887168425734131758384677596895177702742016235188230542258566455612813999801903541479153238010465954778974013545331507204412543799575940997562680574335427690461700863346823617820405565577268919027279985294272961407782182820279818852430873279797581061894585350003572834436086496293603800693630243209456242704205696578226348143317617303474193465445459300040124761403598618920376755922849984146969697799423992382420380918186794526938017650942924436004002219865155089572738598761560229709443063433049444131751083852603234606466728296846801682531741667357979062987573871317030336305381638439984079835226235587953037539310847761271798383538536537793827381688865559392100014642596422428328038614079564694441666285098800065271690811596469252227504266523629416173767496772999505376816242127001204581862740524668168089571724849273328782189521635693384997168395927148944807156830888248013465165020928621353814831706140907100008079806134120770472889312415695892041184193009150249383966494319165009459124170558620751087236029862393916111341670202762478616156515499097276559347150703108264493747653377854810106336564090479678903595427914396824559935713391341530298972947281595982880764122960193007960877917827119662758338320220782684014863310673754274783916027060627011340638861719428046267430375020803674445890257279866769268353912477359951164969210641311318976069109330170566061557984463316223541672064038915412953335040583896357093114585046567894531709835230597417101226429430832564947381970044738219850085863886193773357592896287291190008880130491159221879054086150775861408709767125286269340668057562626460487816188820769529455519876798337260999040242566629572475628832837167888988038216936418813015063555242957593330398096567642275638901749814080671155190232173163669252543685284992873729179387295345040118218925980939795577731228078184135028111590198882901450907142927875893534579652654070772096653755097713939313374799760751857304544793131306225082785234824151037421742430985249911767009426573814480250332090068103462178648280774435410275796499334645697612214105084015908252752052839255622175571374756147607396390707359717056212199800750051818226744157603614449763102744368715206900242093159809515564644381549964327975157570621585531308255340832631005151288162356269360896745065030056019487650919738150859152091493505797149363799048223997844678170653222692750748102567850161326110466296629378189729807954383501327245719073738688130640895905505119731876149519879898605730435228855773143008329701549709707146407783172993357671596953687348832273603079798139174265783756358591783437078339145539425433764612998480658671038181970546465818108265784108791942035393380830794234131475271344688540027844425229863372489764277219251438179254599137491224022252257002297824682188916858100814140699091175112904655964404399295957418552856281111479088883262378614032935491740260617097459473057361741322376492510268209821198202017050079806991730687415534469573219734561118551497907348439194600539776279433135513508534510153002669457936546434217969800343476894640848225194755535484612083901955051270527709852096909318188793297515600037684794715338645997507103567727055625616898629873895948502908075714470521467261780809664528121075340833615171432585291439560583956922665151744132846113094355725327136188054200972732354317178652096853995897265066228029156288859956265009266343506485803746896840572152157361643070692169017447375987354034253396004932313774243296624078182392144606065416408603322991704407168209458734792795965105588907335410262054747019169587289463408876572584314155519982163437899359681414240221370084368936869417590187812075343826205011476092389978007355183661862093484243027575512701375896857433565792761773053955443654324156240399698709258592358245966125484295223608210226814885399011307590237116891823178875216401474456313715902841939109138397690667379996709324676677647637985570425663004839956780729589608038479129869126093372824027685136434205481876052440822292410929191625154040015089840323523560909132771519007496251188619557197505599780848072810847798011201288769341597287555304364655293348362536121195816791037275182995383890173107843846181038016350345646537707427318776543271333490824552471549696598399938518955000297048322721755147922059913666239316574426426707440584149289630621350951182335782602221524421374925433588421754774409616034340852222450359146518756741014177337893127025572808565823867652720653877839396844705957283802436469921914700844956296518384609692342666858179485122966508113231827174705668656373078672638679786953043058078495475697596660699636605207879718113495537354008701847261232432134894591701886539323002742404263652061734038546911223160195540170009737802067459931421267924170732182796279764153590162927874361447880791171107004764334369113188588423077907635779665585307823933092350005209156069188643875275368125442776760226965892023333469732701339298633660424624423117065705021386166743045600772622718007498094631168822835860140598702622810968619978817582515414344573662714645329607857824388190383464668460600041546349251090245926288319898121099865347951869934097860868701257976088966750635200972397855795120407430818200283046894739280976937325213020975531835446668085686354709906648436462463884771020751114095330313375975616211660012890456524483149067296961234726841589935470200491912862045327705394628919168598235554845158666423106579219129630830398961157440146634711452569055289152540613094181972538777130966419339416752233043387734664431355101163429257375444325392584188395678085751862199346398973777779961872749631896882380215445371097082285535483043518775208414584739556702360588982395117251244244139622448882213378409255199464151457855534027356989387090304143451330979244267529877318900986382697230160299369560809443032446382755860419231956830928214464785265681944340440093606448573403412906433106287094628078565873916592837789064024432557004231753398937524110427856341562572316092181484173428796390752522330663073916503084100663808318902446172826794019095335963908472128992731354269156115176107845476018466030138598428724278554983337886334360453213742037725549260709983034367360502047118285515560018443378181702490222154098962865311033737179198435825218821220100270998888970389795070068140380836883063930037019047910585206933392344131621394258543634036355355138719527113258458650743123055121158179324472854517468720158092481672303067735017369061489916609555297639114686950043855762407815429429359100527705934086360094183607334371699824198145411522422801835915646831382302190525425158033274936435587448892056397111008356652015794361482226650558806952534410886097033096281298057863657153091147421586802790705633221095967301109800025317605324805972602555824129051971717285255955847925040550390448488467625649306158172134623417417089112167116496432624777882256672414265201906996289067301963346483299140681618295638533201771871606359333495365163696515909541032331144434596288986548345510742058033168742281823673140857192383640662958635766282910894125431231649044178584684099128547863497823164532586784859744791277421318054452192884515349934713957951791052760193964568251457790081866084113836467555368810911215313817450614715000159324770013743703488575949768275290908888125172688608210142672095245377789614661433293992546340805780700556632206432234568643640951202613049383904463215298216091938495151578039014687592840969685565287208941448468205141606616778253124195233395241305225075106020874744550693962878619206543189651011303199447938867690863621857911218523834476225514468259815346377926287442041691754717570050022103747906263888551879079224622634569862283161204473805194716198321556417617510195962883561822896714010928915791715044909700105723851013335582147979786764107292335956632320216292340647346248548455267191416674954970772303495933116285170634831076238815919141411534315130417288875276811226350118824440569508333669166280458708731986770129979694138343127535671930767750744653624652715678136443388115634972669815636987903925388606179037282855604313983619290567608022523530277606860357432091725073293422150069261586224822846014793817898389171850715274797521372037947674346156074530022807407340188378101963362791721046610097368970012871718538089970359894795881776668791123960922275627909919193743554957962626603109702245716687260479936320191501324571586718399996935518947120627549607426948117419922004214566276157689408593904634708880319055420123350378314320410343850281756974997618874115329844724467336213611487526957382578404884002175955129948094240613046110800043485946622597184312611757696165128013335253325526427723056662015268785789445913577913176729066642464497772935511945165193560444617090261700854516604087399137722754890875835251232213490419751746197777175021582720634057261944648679265722094285125600046454451742676304739849175399852375448993123603442445489072377395599282386968966074177996925817747648612256571468232190299773793538292142850574332352749074788922887062949311204588696628235918779475477371415648509316878267155853113012344509981675156549343235229874488456617284528216673366552436631605741825240498716134256367445738717913631919755808100477500216280620095665930765572608020213497093835451689863013290563274733105840907549692010741295275755760845058085247751753085677224617669853960750693065285503238836786803218680226233390263142641090766803268349172693159782101288094235324854852082345224636694583983060238518408691917560911275152015731355856876303774410412916317699210888771673323957470549269207691808325235121929310920222251854791994904887464431819585554632431656371784103499624980025835765837736219285210142200611548248731839974702591968031418882873753650044277717484787390216871769335152652396415501734188197281222233288377458858287506891593773225298774977419429912351488385307229753370189062673246824160245925822469515776153159020500105743712080594331123306941723723992149941935332678798815591662988056392828036490561660887642625206772506013362714053175613232038288533157333898744807253921054699996100448605527829207359975802206353763936571881287920152540180512021000970576766064173168818615521454079214534509448240092139024102255190635155643344647264646849172025568496556895909047247976692205123661366963076903028585712585648141684624106742508189997351933265250570509987749436429482188893163532221157054326399065164201046251718969078700559563062285945242301249354006165614933620805840098821366100982343201779675577762322257536409747198407841580680346883308321217626932417828115237492349711329572520858363840418678650752769278371899574109705139109389248540368946414775917189996354359515947941780202100222730949748772918208145329110308574046675964813748243806828745222913438519451508969554405698912058956210042649090260201280926962729496020513487046567949279837727402686110170425126343100732051250686261023415050540207150698981288504336227315780617137352997846854082010930627425223496125988530216065241200778237479651618466696513586714953019111673904079594652643446923733539179582724851747643232651705734507151228628229465294199275537711085837577961642795354806873061419436504487133205949991989014793885317390387142473218611444014756308672762676200884802635299118398089051920165271045826063324791243235165997568570755006350715043696658031939274159236657241525747142364615141274413376269056224393275935918295491063033745095991341461683563288801117397018738456361621684682592393505175960385255316011994599226339339560139883880634557478137462554426747645218883315020303907742470177382663000231057185888286926657282379415143424233809792363896043388229506463141203767057811780732187916917302423969499656543534577604619108786817750929046263400265884695811042293335976934776059636049990074172983628633246408774922109706091892452203768561643183437931522416404490415048140756514358071144816452449354349572233319264998804964431644250163297301566805608779499695366834508034990507225742137274338680607085127307934510304600603995571717201159887603631233992078471444522156187640017926045687816127106841528422070626895193785041636566401651825810506492204675730456773391607016706716203117763411204336153151750240495225209056202238732351114861774628027542558403396762315980517872322878744871536549613933172925458651422594978411279660677806581188022496540033083290344924475797551566773166813312234796883906304453057803386981262817493918041240526462601899839642482200363960555603107178534677731266288448257723366277517968926949127826969944523368624107955143832492762641965042048164560337221152943233993434493250128320206249186067782543224287289480012498792803655544935445296444614461509347817458342350568421597110365924938299446858052045342633809768651565653094479560985532964389914157091571216387367001151877140763998271059224611540770808865982028993323330189473667823876326243145164420012736142754150271125396133509302573639603204491668743427493225582814450327975519277747789471437511638467340841457440388903568382285057837872043526685091693942399713174402358337692325268048983356268666709597893023075076665662300320357151783362366158918534614087404700791796834758970904547766040446163542967554189861902322445729707404270296794316162362539511511326107744480406970660114294304465996311037088059051289502841319298184882033558177776233857086513976247722802698746393390043447166484212564498797759324389796108731335745686452456257938821188505372163023764686086070419091441440112847191171130409769304630005574092787470977315327775127999575005090269250768078115339775533005431136256991771558013848859051282783550684369309967019203623832850174505197451155211670551735906706939483988394080507335235622661703023981042966538960554218147718590202339463910499273722781812956288203960248092883177892134407717935705737646887910549308600566363772739141077103745698178014973188428428263650200454141065889941069343537351015397486607464642944984896811471742632321027827849894920776159420566162130126273128432419941577056257619632005995390461463733909722121701539000436289878513771548911245995911000396349398875345303702336839016439714214498808942026154137045538360280392667106392466469542914927241987748465592096352045666474561339235680848217701141007433418554481146263512461567361835083584941892419984182093643131893986656298011726311224814474127560490956180031468148128741820094401800757091778292104283621959598300030273543875800934162830385007800911898004411401471904386256670379752434368978506422247823796638175829173325085555037513293856596621481735813788299369065768917954388940945253516957107793325528622739608889044704503541550891326772102883013924941470391926454064429493882835584783329914804258878276429650591070207266412521728036363150424931899839377802819073234634836114577798011686058246005007955100510578456487004354629195939771747040524319619352210013540612291590340727022807502434830616479740603917907944668033963058993787183191825463491197957634456572838207347252088130404510335036169142665420074610461706572714099973167406040477896762516374501069929478835237349421894780559547009389337384980911285609998947454119577156578465063050124734294549781021285720762573174025469723251977201574358273563734286634000293027222888429167361269195746492969714898061927226573663391908527652717239732088984150404240184888563751426860945364026344645637827434183611234427245033897772895783656519886526755330176724226342161685187110818807236121367113973343081296848253707429072663874415638882765631896982876461675094500395394640969263063533800736475814128947854171632650640217110701777927456154392288332952161073196716289926047160188081402735690133394757589304806828514890517004283311640025810513515351357829779233136954801173772187571223780760849586157900096005180588743282658967668976654994261182282493423312272557467935759165209744114264611221049525706024190603732956183916586072879896380822557730348166053761711682401447896591976830705764933890371289136668910408375908022351680558874452558084233916546512817831171380845558300155979602705996280025515610556668286875640937006134660248352471460477001068273127500967696128212382186379537330606997484633291542745297336224225395334402540566323076008874538105834167187083300630866759321773404999257605739940913721213780620280297931757677099377799209540212535441552483860535014779857318276170965304186085780397429532736558437996026592984610305201806588106912799239582919405219369370471727542362605668658268313213517411078383755073816434624886794315923528950628023123166686580813833181489707327659640117110199579221398372494984472295317379626414293679115821234083222655418196713267208295474716334953007344460401508378001745005762879638065533134737603777952159044198280807560243872494508744710462003589451322796838380135046604843372387154436174444615295039225969408338978651507320625927253691430891865426314236361776871203340713081059055681048020794938315258363568616892420360586071394705614040853950716558349752125390906860164858074325391303153474816592498436435846079334877989733557026992121798326800870609196233470069522678556238978128065802823144743233737556423980975480379492397257936630074743174589327425721166304961903496625471361805839332770191052293698844153773539291611565317540158502237006409188697531236955086556280425712158630820371744077542231869670085249294365594510465900573703849076624397504800298701613431066476522119424257956909649316172348042239433812598870437667114234926272113206120914380988984492193589486593876577597752767442319719264740958302864048653007957811301683926591461724200104750056620603855533200035985845010436591776348085729035539415723869422503754225933972364321573394705828445811696429409392380107222194181360755718009065775251327541334090939445135708907485950119662589608807140641225288543907877478876372615219716911188207056806415313074287650020692328227414850362812830288082375687453541556168370771169470498106763964805876269177573150104262637924770199354002072222330481477894542145179375417810433966603689510270009914297726429617794036516461296050492385278273569626960890685085047884901525715872688211926838714186591548976674168992906688866910016350594680056709264104542746049931684564927915823557625158590258918020238547865585245542431735401780037773487463261482507345860341979731970179634996500090531072928840694315404711183431562303826558862311612905020627253199997174350471579368479450677024271482417119764106491806097532095018869726454628011609780310082079206286128739476561441188059425742590279859599793884202251552647310733399010281350056621326075494571103063010225049543275099323305058826393094396700123712276566454507641466642753546162583927522628836912176841213165716675356403342892220595272913936178576351342686817479868475821966329097297096792904605834259765481684391337621915753578788678254411826738726535666822187469916272523814966177737098548949288567327988362314861764265114474186140280796069278827200613603758719268744637919316056770833506347945403066277990123619157197296936055201015740491850653719481591914958497911834151531727179950301311457728348972580141616523331411474283683944976185046938890839503825904611308889628873521241240015864593538908099044974119761309470213977666199380296687534863909962894747847400410967582380077932426898449176705723861081391114550532802147985192521317864750261037514093144357468502116040499847434958816650625032130675052204043153939380109286199956047731683212815305181036848500679182784305292499072505005676902808713806304700457399044048094999814642992831756405731967723324542601421711173982035044140255036613066868366990148034608784380970660708609253625827000761536547090375765132566548753371273384338886483901049667247998299407118280257745512441778103343478172389106892740815528945752089202033045412689654203523397492265543349028499593379134077012759192250674593500182500460795626121087619071590162166333693956306920591640391175717523411785170949710467355981219179583993133355131918414614750363077157570034252561617175201412840709362313358094416383674288094323736124185655404433563799763944901049065353769861846960408759505099949130213699907054066043137893973559875202140144245689307875425849441258179769847486465397661147726150126887806873934616555691690869080157820533352507371677516318442580935768224215440531270014479277050192089591597829076471255324379605391398782790290732138725946666358605290932360146480735883955478744484061541662900220526646014459745591679891164922796562489106032138422369801049369314860965779780520107519113738062866387875514390453330915994870594194557699718814313753559885736497088296471101167482616776559686366455143425714718504386347173153032747881206916905988156319193028785610934827534781584102378651992236156763136207243565314254891808349989704375681265847503143758577677541304410331713913905780607224160717498272079803814923679018107425391106196601397525246575732680530513172135494656677899861686659995287440308752795131152174821870364752372683822038741337611620093982371801490405308570889018444869681031063773889581290272940949733680260075008809923248524480200067946261950102635348938426746883691894649048287110315846968759153854540467858456406542917535378362360159253979039221585079460330274917484953177923498806964578666934125021129109548812906401688954573107943503707880092464012090484888232265940962907018767240701312574961102091685378346481030687163932265667576321855750600787318757637842832716442363480274148954473600733098110709880367075378525439693307630824132772558068277676805523292237724279287125759280733194245487919580885945500597267251947977061251565509805999952379972005650654771248558462458037037666960020944671217622498984815675098904360151267247288904977084481804783654065388741209918076020245323824619270569643633368573195357794036128030965525363714278442391036581711605016482049400308907716909979759313913913937226449075800081750305130591301972287402895281827876612476451474994570801242061765423442905230278957110665639059456590483185835175645421845772991928551895873160054779674016305402674884114807397565096269190989913687372579473898316901720226611185686314673986866910969753198996961482432863050052992220278642312651313246194295195618050816048254707864072372144830689187086192677147836995118502623486428854186449439969850357210263420537039281607293830905830530964870317097690822573224114618719275061403747823958622957425291559764364313506596170638221227641594503776187553051795091110684106565672188022883091745977544751281865742318795495339714702793305769744872084197732829284519612941202422495851919817341501729936675804837657290988647625875824636655649188247652733091036096487574572501205833170280288024765441627810618294119497925689682982787535262131022735300274989069842384822390998728189519982023239339370547581427738008614000795799904678038277987525051890725318562595745719394927001278334048677407715063010275368346338187037366460798685116159152115452690713413040266871053634417701979121363265104791482796637952777629741090076544243812624217782609326266718878812287514760830692435733920683446951935162889826024091157277874646198375933790462212610294218922378025043446108852402076098282217941257479657305360615009583890627588652987188484925383557545357669367258110661759055619471619076656366251910614077549990439227516593781017558591353394562204560785296941990849002042922004868920274182919335144999055051895030067714301965231752964968350748158555724036913272784186149770773902877615780850350021239559251062921686734250594227376140861826839786491601691110126562201038401057800327141170838772754089378457665293637976342535303378523067178677036193888305168419881140198755720536611154488166585096637473695076875404071732209599119819936203500966281530699911106408208018067382768832344935727663897928116476336360618876152323891684975786804328134838858027467677780984238056207093321346548096259024949017893136785059348538219476638727146080111563510481710039038174191024249070996133472184911892725121512978839513385892180483201489851595405051147970915111045156218180436590194107971053889535962870771430850026898978010300837022878357434706493898285215174661370954788340761879321286270489400270723760812242256677453037885004266412555967595203595982088027812210611727191480087370196161070509485482966140333212114444342516189959038179356200074904481823708892728207893018451903598089754528111360126818099598902391490712507829222264415770482171808186315428541976409131421653580136604872961245084309819223385659955341201259997682103799436480152013418035297246986787924270210877945981592435067898879876309573162856856811671517428919031403060816866861270922227648386738937234325598144838668219799819277686422585782569939790891706374637911063199349278772371399828454353596131383484271337162039441314968440036274953656689249926941283812337467320431956046893662673820560801129368627655487581996490714027337189137670310573716331124314230476565931755199521399444550596320616934915011472522857141048412092075402744045259165966904088249286334002941777745107203909300369870513015800617741049101289341111713172915039349281174695219369546410467369320710850866640111246533031726942368384660413506108405278319550431763790799900517179767774035997353508672330763910710951235854519222077579237620188912508982167732194507096317326251605078592923526388951054149166375746705934246565729658990872003177000201773866696680658818854399381935530050864160690082000289985280857399151472309494665165142136312776349044991683247984967116102134221842721831476369337273053628722953609761772768448275612962057988184076266832450621923574385407829751213971466215920631947822443254661322830897680728649380572354900216891520972026119670700781299721741551729504181317850416819555729292003142030541377557251657576352491610699212488034695326839612636637296272546607708795152866682256099890263922819127390097670243261448081314180849021806836507345350629873560134134537711188826321601453585105081476891022567439317396639911808088800448838619196280604682737614279120851840053300723251483993209113068935166421336466648297647789207119984030143385216489865146425034259190803668728506868427152162810125071388524945749387449745785899777941483126465645287778960913571274363897863919355868935014137595715178607292007127010601310751120114798560874909760996596532234239132356060878199302285301468361562605164562968964248413623576702072175271102673149933869254932981397445163208956082982255663873430515835109211905628515818363320268791098193789985829396213949454851367173507718556157951480044311814905113093279943264680814092642405032214679251799210088384527495202235082422164630697231523342721875105540562612737886936833109438003759435683752170905120455152391961972734711171480378834371241099873007708826841388531936834745611851726383102978700471632474193150882507633086045615626183808423519015329630481576096542062459077531788872506646583747223776268712339855761530788391233932044962549742523360478754127874843739210103545916853026715847679274528266104329221486420578684438377654006668347436325650033277414764106447803838786692712748956622921769635135022875150884605297955490330187629256354138226823196432746752618870308490178905264698528667493937409933516780314639189500904356534224444912327925687802441799619029857005318220281135177149414905269600392612674659116216130571926088898756472025565797799109769706749135506943790990493721251237930726881133099395503572057115419218934163762807885185689356930951737445755740405751544448228261426361485559909400159389450506717332767443777151842845488416312459568408464016536652746047153130343047859073721772398871286890951722661240470978467486589357940005146772884498158590945275665908935751482846532812388518369259014182215962891474766845797807436595153861901827243597994070812550337894016342594052053331940716137471759332499609104727730309075848208239986964294079789988174272219800550583952002790655021364002107527921496072062788014204890931545322363013841843572299712007427343975390929758347904950745564813637632769782661965852027529977108482526699263025318017128193900509480296053760250736205226411684975441485963547030194668830273989485815843945448897299071230870059274340524219595936962095650209555614366611545418448741817747662247634289958999405101426838151976448532532558717819561552042576942631686381004199676176792634485524227884936780532315440278245865571093223645971122569447709941596695771627830524371271038772127888656255467658529353195350739855378093224841814238934806676214763510292752188506849880953429298174930194368675655797250578346004722342164776977093807972805886833255605801230568147922803816331305437036877092544333504777877051605128176540421199143773445623327594616657265985042488081652443044382101418363608077916051100837544173963876039099331002464688762547991569012132147506527107122124219166226816092276759366920534076309220213127883140292788402797203858508728834759893576504920419176357482638307213696188190705409899987725440031840698157204801192186655558333015050237710159596108550650942244669487963584336720315756115245065518555477433332974717748692467740028824097868178172566445808970816116610280059819538389526680493731195102265181973971293378572597372913176913680000544465328664925026857950739281967612141111085239755149123361816164065515217714982470745911332786410246073702121456575044170645632791183023745815330045614873020073423562300457956061232562388055123971209776284180125832348104633615382110445694424607003375709402103189899802006334822676755022320336600068872778037654962161109223704461500350412523862311238485566816676122249113069005946927297534977084504324008149617813116505687076684391929371917096221161036427984867667128429630691828631146596125088916977193541469912784396543968462633741433514827886609979192630289392159564226145913538230495209919997632089463648292764204550838895100439663865786028632527853976994112586747248002960993922382625501917094651764763079139496136841479640398121410141028678729720697825663334754814316940309126453704159502177836974223092069320446604071812798899815278157164519472879045905222276241988765005957368848097430582835731073168009877319789696723780380025268712602980816430052714671973908327461001687390940282832617685902451639473685481112790258799034724978817855509419285245142257363229323070795848229585814585312706127000266246557104280782221196634343118608706339729139379171878771446879304785534312161172028578884062395502744634866848173256014381501668674467888508503184741844627538275288399022000262591284277264123646450813974160003747863741599135779877380204603093795862512947982500885476613359512610888802987275077151651014203704263928528089171466686656923502699459046498117778534472245017994370464269250064629352391369341055077332032561473255867731204280570901580614485974208611922350633095992843897001226669679399206730028017316008669754060230613174925822279377769017022066538174462414749828898529410899046069301398635679048822511323065585958053814137382740317949985407350824972930562335295992511150903331035408157690327577933532298728211216455583187094903465915442430258058862545866986066059968504964326160605501007707421329585714937268342982586786431008512973825633941814100513663583097550885377280544514918156714902242704420802648945713907916856853000016360844195434162870239597371196488198193602900667652027024674984485359442979395631937238582007749750510909019194303068220443689767515289288349737376288089170573453957393823214399749796773064650795874121886280151838372294262379368022147901564443355508459176331613983090483144449491058748423089015199970112252859980892800584026267853470976273865348845081428968855223154847803006060418558828472075499506478901485859677270194872433678734105299389482099478868724466885592885454896349063482689831442702602469349096495580523321069548522459066666902581713843833157215979390396368017462604091476641841700650728142992941234691175714755110420079660127733094977988221771180732310730251282143303084523198193684612581137792606697412001800619872686611246559134079150127393898289280048074850403079285538507745678963261386503851898621046971004054284529909438743591932347895588110651397768436557626806325585027625241706316389577944177207991418795984312169296447320239802743799632266819105618084409790127703710184756450552360283424536313218032303994382743484937329936232801582124218456843718671392416244428253459738281220667559584750731522415066107336586174770691940621864372585498609430840516501824482443345953121110226029206508032579478418704873249792433432710086650187931625098221416183511856082537998100735609213405974441302179507918478668831671630435914707216607373028099413806018388814524180110986492373164084780523769345364125133491159222338804812094179646348594106146890368957144719607292157210647865769999329992390718607865746250483406010542539886548917557223441746918596481342217899701033780573104023629158536399449327424485794793922901293277099124054722378775122625728173888279199407200497240194045125951679363528046457987137246422764173605804607359633478502361137276129336496343581870995460537809793397564767349416481738941176163902629913573507732662056293118179170630300170516200175694687202376759488642791602238589904211891145411788053447698093910608465204401977964175678381036540709513784380733020928288875981083508285513629532550947241159307189363368988209257420920717013702240419298307834121740990803501493999649781954647105617891411808319835301771535588194070414747929479330521764174976503425972286241962248164631605746943127786846896560632118979783179064123834604301927351987498210110522933941434905278316225851829736159828635759981765323955185391470871169681520830310716741173826001353515037798879712643604311269038559314284470327845340437604190215247078898396576369079105477996123802226871417199920972443114795217502554545202093102331950245155108673159791856299407897019886036703754519615836245294895357733658794295899372502035978944743836137106541699031271031152582349455643957627120163342334944637380529535542204118930150129412596760836102442839791038297025834133864646755899687741384944023992605564902065938294207223737173251833692543617455311355553044667565698384375038074894281988023236033914176205903664541208502586608289885961722709992030985572324884696599931242068509446959355917714966082740190107870587912871431765792564744860111402625807241262539200370744489391335973441341555157866711796539233158956854687509748904582368776281408678538942939001085730179886530166241639378598223450061561630768736554828534758481862395261211435440631970639091693843196922090594700657913784982213128311606520831525908735249943890145903570730809693374818786944288095113395116345599647697005908680338119951885355916986979887214274654656226094128879924027180920858884089566901281775388963322530057944747388403571447092570108697185723933336591802047369347090027834646898278119946348920358906796285075677900462632485651334596131095621470715076801353523561663329802324542818065239675800542982781727949998814135492708495577366197212952012614280392730198851316686352550657931425522854151334724298796808553585862497419456266124943526761712571912533207291036616641586752466887989544152129687454920313449221302918793214041412780343057973574051723833957156479933405392209967442841593324532621463864500641582775730587088662641865928107540358226336827700160113263859027500787518877372368989637434626019130456016538413254568622320021929900008634569712667759696781806909754159534022487899691803593572420690608636942979612142414574513895504695687662591916591537635442699153183653391034220052785158481627497133046478283721643887392584521311942109084971783415263176488698228561928317392463065687783171313772696266562342806059647048379522416824074596656140736728721265911643419006444105805901639100076799161933623640424996361794662459940642845178029875830068376571632226190619407628274143512699335577059829088918715663679916570141117016817338821030073695451358638515351940574591081313525580294633265464102215340641488501112881016431508855992170319665943563586477561487090194467717591750679724539156138277279594209693182589786064595594296180718301213456128843650900881397323587938819110001186991550581276142911246478387447336687842599316284763729316061192896812470504850015881576989500036480500334339472329882188624913234285247434294506864113014918696432532444408906355598246684831150203262859504605045226552132882105996105150568880420423381403315167633201909061648400947089843939722409777390011449773244943830990612634576403421369206128619962115802522634421413555370456763960039065166870229303417161643200168844602065321568013583057908111689653126668849341717475582022194854897257034112737735828978477476244489683259263611505240905801444758277496411180254151696785471586588068585092534210820435285842536825313109448226103876166818107563464173045406721727168432884942541988168490967709635423103383681143037658854128804341381598769120710082173618226227314911697647233408235442702547477900943542949201087594977601422686952213140813337850973631448149795977519618524020546351413971717176728960664092882552697263465010031939814543947069969008215820410292725603850186419753935301573420053620970456657166670200972685547786604591052121486401113779694657145957302623232336298635674240135769481235985934243240485160414532473948922113557141437714887670977362926879581514541985458759172088251370324903359688405146957553116105195784547059013503923449184851536517567049601129441735422130237703552927784713102434107951944025923979307844936954013925274051340019651703045173047939132430368247814167524222034406459944392487783030543955393921246788489174897243956988111769335110385838285711341958425861913282021856516925608846356492268148004225343704284071665927876873747759840033743993002178483819735666710371443931976351835102130823185977281868138494849693329716490899639016382791971851782357848230788319704967018922763564685873015541379986588953143396600656597120433318451392999775657867013270832224193090958595649451865100032461895903713302259404730553221194793391359752352742038500540211444857279470301008116239299776160127893522042718674413602928802656279903704814157607235402582400093537330902016546621110890466429888129112414822692271317943150681492704866923364607413218181232448190929819413454216022925585614695161232201406806276092726409814457726920119030110538091668113297234956719224319344642707918325411407895121722640533963526250302494970799864279631336943837384834460776517261329995672168165200543692277243266185280758426314656897807399963446235070587308589283313636724770645398171025222754830860605060736283033019251137137510647796041185086966601525531158428512383091482304346539076156331585418791054553662151292126681003428326802414292674642413150308128928823264559563719199841233847684002368496463617794922372506182035177599067158438215345528839311901993637270121403551594418825810287224683403741217360479550670702915193468003036037986475595579941420407873851517142719178254110106232609212262251752072991395621749343859340610696406679001733344239230240937106547781340848660671279997915293210548784920903040520875426008809635069573962213986564663188188577041201669088399062690361709790897288221698636374074124377949632924087489738845045923685437014535024985233317511879202703927217872751059506075934148756183478747070914056967804060316458091062555889425826361384805642906654265733013058659971659689068447597878658743073514039962683257996762502923282217459507257629935971005888641298075184373739455169694415816170055855522307229233536737677406619325034124874952679807472637381878472032522042418404234661377470094880276968733471224396706919432092085358434666552169031382451554302551738034299566603592063105792943992996314717493142662789143425695992721920023817656571868448392716868357044825470831832637910599240898330210449212791626379853655725067219668917917357919646097444932558209686632782063429582963881229430326333982303491846605954434613023494995337991120309522945759537228576675336496602347091255379831979172149622157300464761369146351042593945482460413666026333499251686205809334968034609941052887399767851264654829862876393659779118182587883159102213008793066512101466293767185578795901176994039805907886550369156008712767427401197042164851796426471062788848512149620302096578103970266758654517732839656177847579574628915450334349449979636035627246409943257521563675627989965243112811452749572007693754689116393983498198515207518264066303218953482261425941331168341265837502720431524668274889256455103860232263588132510941950339918677354430807705293853089554010379825450176684609174138528504350670804009660545164680862405508181885074312687463869772508217984113111942424786469450054829370311308284853820934342638386213715864509130844377258837186773340499015744956746383029476801311146261185120482232577409352731191472633058606011576924148869202481722342555501041378257793842137466376864942234403785935138095268128004704971836191269581305219591172588111526508475939672217829634706577756923272392558032402090995900621683403320494652660891079916727340518900334098027316901067065163084094413598992313197932612767511962475109706620946398193901508075263763967519581545102478237346089445721155768586405561644139738261037694677546888670969025559979476561034420301168894918870798590276659169504118789965559192715412880203588705080978168430714877863012919799253139266278031393840650995378996665637975702769944306713371081650764419296097840562141295123686828698515229540274022184811574297612284961043094499871102764471845153547916167579938703667143529813391105396782889329759557667814920418199163979867782162902984529407779102553122365802272166654694204580677394108539191676809340079860968363047981762004562993965840032496848755812555409285432415232011226969212571933353476904044210761704749431189699587687009882728282694974637179971517681803350375234197677189060676297617175349406278839755105981597147599126213360897845364004946886925980403335789053206899106640547316744647105548028635215416996379151906510515052959183048947342135413686157086604391795042375878890173654167291724493738008205671835675407892870316228392592664789779976756989463415272403869057793901075441190230378591051310322187132834666857740910664951481935467737149502897883101174932527954399723257083946115782207571261386378445727907733273497099610981379242789453014212645636667458952214302948475031860324489894481855203857469281406067564516655957332125488486719085169697757979712777674232795017921192298979849568378093404619750836016305408051433973667810270032375933963576069990417396906204323026373066045527443280229106872295367345287194027707227048347521799759087740910452373868273633480703485990311338359635731785085562523238946518620248013546145155342655753366579907435650947450791956697456274023547112337778281138166461727105788257460878706707260658624346243111004659258481880291980156841677892621667815715561994061507340314191972050891932422749188598749702768867413082870369634415710850613170934146202644011262066393963743083157151628816838827547068387634761457329918360285232128592211189493057913066340108545368002383312555302435227627409567782652829676939580406657833073327795454236103702848176037771137304833329256466853110728180005193120870826264316577357680227970971942738290255367916182009092412048730573189219221807133289353631026594589321786285922962731365221387202307112623782214417079816669138820655731959849976499725405977163721505449402274956384326537505061222917589865985708350124198802953056598915986394296683457699375113071248907198062880436650295589069856034157344931357817274500690836151735514831575151325140006342297988442597446657483773654338653656164284810061156913704513507204250419308929975747146412931802510047402104903518794675701295231645211722803673455750753711432746842079225675279799433129251630768526963460971417406090064437846883368875520370305769863983187858248781093351162072859682092218488814202480787271657425813777163850323734331800219382185752911456737845761884521557031422454732600032321678799756957819119452597057390083834983491510720289065242397965836571095722593595290286014435202658264373657538365757507684299018959874822320467565089701839546790000498976810198275666436917864572550541779562120251834758485005373880622296365727699814596912008674216601518679054839398437822923186218276958263566641379007050740191689851539108925046327455155537537801836878569055301674044719293575469877027664693625039997731790293205287613883501348872210004543830163851483311341108890944742237382406243390408163887881516935067025668493363219918312250169103471258522160085842977597847428711824263485707729758070269530192031425249928898671807486552697481690515904063176921880511058089991950045830774164785036862329577955073486894666208588920341426845333844391828877582097993477216713339552009947185106936275843155370593900701552995432759591085365749295948722370291230643623186173022811011053479858218324075667149879373934379298113711010993205609167928029910353086614594791692872168547048580788339137867445066436527007092041131546603633792684301000366456167111154161716804222717964941572901112697377104378739036792756251191657679712843881689016590561629589228574301389246566890242868091928747597069581212484650303593083116076844989901565251169033399155541655420604069367820055283968989710551440013550253569186296573541892462485105926942449615454015526162668794951573103258739768908978724585537292759450122147647855463696849365962397804663512136584462529300285550073387534107315765477795604298717092106137620722063887211540801667249102482204190856148423360913855857416562664706219713024378436662502667853246747896646917496204677496816538601281246971735366235800906517283679485143885484600157706157929515355989422607424403588950803259552001203998538361347312865805376478662477104212275207524637848402645388550100083846499664717254446640346925929272204342141418238120918201914424303068058123280443904084828301878788251179405513967492515452969303124594306236673366265928376291550830413621051781896259114617064181581622482729864348519038440714134215631354409417241233303355326169699080038714961416384403050988994455077149066192900633256594663208370325580042548464096179763686570040118555856623078168517973372530348961360477770690454093062925152086874978062302420132418684622719641988406230894847578611352959531429659129894640888007959389972818186163254815706913741560533452746211220592386185911248175161370217223211457685964866982592839753235565476173173557406099690184903534370163510021661122593385522244529308612282420646670633487881496564141760216617607930696244012859535794912235226193989883851424999274925546563576222294973088556716141572152978643757313638940410622574380937325769918948075288901528757957060752774524992954915493333816136442073296668597883003887425552133318528420083055470825514096796724763714796463048425632372932170824415092835592537712107160918883264659283628518635493502351656270723461103805632962946857663967407154354409735440152844524198849665330148622612162428078936678345941923765301692704503705123587294173042941545419549106127245936743396927539377056918980257670127638956945635595128430472896932271818836553434448417819091179045833843966700832991809781280633480993330400696509284400564341096462106522700896783687024006072846319875655460372825883142905328601022632375731542813308748680232714747822449570507684080977818165533316795774518312406631563865545822622992740970969230924025360196679690166426749530476016066432365972893586161271034142762757792698447631559287360448349566987815259862347312171476633798064099299147342422379751451607982635145405768839120471899051300597817927991333648803875298827000742260545136467209640811120538236509602214484362107435566781613368014388214820257766061659927028371190585776829479045905079518876542639533598845693508207762169558773427478567819490804994935665781665561897895169900240959709296882352923718572617481295074044664840799798707508396886286070072327990143870794512498578261774454778363241822961034990932506319730855120027419795900861166192781870707644655102124573114683621769535675798827748116099845773664837715987131555517416338521638764961656538669884965679392991807706300920284282800198725628256565962926935589043566420669649001049916194139787577237185995323424383866018746835946994396063715709352010643180062327337465220756217256455189466000743997453523091371392370150317739497176537548452775278771229930441648618190963029957729347790380642558191502340678670293075408436544422727101168737405809123114016420762046354050986498554004007973149896318018578889466173502973322983088282421365995995721161362481582006145086664523477629454588270685854755450360813681204867082688010216558958104583883816303415314173476474641975026016985818750641299239124385747908857406024544183382281068128118871417474191840864215431274272712776387306789587074126535020617389736596274003137284627510028600208988774362942891785421545277104307348920792559686595188007606670355150689121175991745116650014861396851571173800553932464400048687989147043468816098391484810245973097035065688349190259298866455946732443983516399807959912559551403071758226124937409144535509380624767907150841506127287817095869934095336571700633294982157385104348283236129826928834424684119515779457749039755811619787323492178256558972749846254397305975721256689201423757985464592580602596439246124850429408951993802175482577808201072333400757326476191664212356215041028373313521698498329564174234354775856816257119149307313891415071066511515519440669855968746312749339843076500737703515664094221820744249279740016906566374212665038113944111807327663108923084089431876962951642692322963936715629237318058627058227310532587405601927682441179308278581648684300952827898714298458080537616665473317152596431017920660807717049154775323944787502514180420490491173602652569094652652331273722393745173836494775039265886471625282391308451707136587530042807289457470584543660345181650094560440023548274453242732130953500533816776655417156287660876380856275099116271334466335320479961515177226998111037469008644405627261042419998703671164928515902612026578229653531515569823959899180940257510780308384198075525640672648138426228825934213982545676118196859393792597994044695242495082846524465058947778072269352536637790649522854717982973302722514408964072247461071412882308547059353471542243103055192079748312500092458696844687382513549842198603144119770441369746301722219589870559245822077635998766829033207617458545168058936565688331296475786340036940707049619272711988119665733899983574218961005852616308866941038768925652341544971763169968401054238500776541003167818373229927445883803891183601087908090620051540017555462972013213980909381630296138064073181731530904590388467168855880490370530974094703592036904353485335510183451921548929266780419411848426798155275513497978539694370111161311651479264388281022883302422655679298165244608729931324604273931960921672696947259542153012160920164124229194065226798881717158344413020376065584313574464343334613457356683649013015314799868473332517508570551741281814649567920720141210241643302468025894896488759666424064957745977632544997318119471359547129361629301169644988734598256798417278001970589989879209099788067308966295959006927823507897904124158571103863483038552487928518962052313683079908671620195106542472014820347610634672456377535173159625786690848939044563425286411720410118560545818225889056412207969699486629354527178770504578155989749107196145082563079493977808430748015961554492095746123648978441505010598233746364216095113241086580383329299026030484566901444037003673922935943440760734749293087662215589450834922767456048968634166963653613383871569713542227517994535756485144450762157868244840834754053220158236478850981489018562811999451809187649340849778208043668616172280309089284980954928516524914908879612905509822538026066634676977775811054369537516102502296481979140505354338790821313929211298331944365621912051117423385879817841431433223713110140140892242247171859734715173523385429352544052391624252616753402639133211673335477145721935750560445426410601211040789848233540558160191378819238917823556570440848948965552612406667916259285214179407919600466370505074428200800671295780541788904664524396972446213815565899017337001806360315669792578319670826740326023333549869672769522934751587277517572554649377803166527333794161807134942832715056424184647751585155863784023462240625437087179527035719117721658280432021265871296927201507413632691925877178325875358587900326664595518032831772015214498064042163904249404612415995129438973975386879976997417327840625969072153514893012627056541282961024386390687160766074952838703661019624509267253321335716518684850278982832542636190314928245963010764911528257601061081406142421289056546793305276337595482984313946459642373627709110196215615556171202313434890084290190335267172919608480213860513775563536713536287968137037292996672222212877096773949542717815329756848662512556972932283709924319833750279373307453388754949640435109006552855955268785643206909064082223677091041464805676672271160207590365684191749682865565048126947156384565103663261862981207660523751894170762000585746615228969695943638567058269043646736808220437125236598359063640407640612574458299617366129336702599867019670621851423451168310783205338527294706310341365114450371014942910695474316625041944114000918221533839977653072852824047122497804990838007351134540257491207534092325586667356587574403945876917161045516047835572349418272618759019895865004615613990263436617395925332332160718850574129311449914462092843246327415164301249901860236103288632900443644511242289221827417618118222526422187214373127321160534001216485337486954776632032512267314124946883130574200166516867223202700627411553664283766443443075398478673494163841948822756285494304470492319147793954948021584113689775932583271445618385746801457567544093897386973218860041052392940166380250302937744411522406082919825321382768012968569256750899957388748279449027186836106944729722062144389449706239223068041912569330943515526411618981639211047926634764417437908255121323307943954429352687775953332721072749006770640086846833412218143390471461243771559811529699556008403395226490311258036723090803697480936967426337383337130483287621140032702029821064954837660581155473976467424888024638784771161091816481120868902058187937970286534002582608061860452179562319798780499716074481501469666989862586395116915109704276048362801392679275040102333333989803524175189375505726369395750572084262040756751102755090542195394107946861212981746765891616945524404865776084395175819883271570404267695214602006792161707783367295191799910515874524319061187006616591586622729227952937559969440423127823924584513174377701308668103141866477047288897526841403710269052438862028918023277976453567974261279072542087025718577408640200029985937927566230186319899536696159741198553264460192980554147488333270775347095396586753667716042772579832614586017136616166980871770059583505004815394753820219463166773937490610237219802981292404740899118271486034890947078568304890015444534033678210258027535731764829129006155855729818960732657091120027772109221195394146176597122004812507957324261952401688393869574811665226317966280474707493098932293971626618651477617390883085253756392419592618295579515804421058552969089392451861107807676254256164231132555695869192952646338297341972996689486770577225673987708910541600775836898226390073180386515213188954739757740365050627430534095891936470174756636510281885909991891447582415280988818623484244503644962879436893793996400974530326976902519491801627545654173545285915169706294683600083541512840990206731086647591746677911427323381058704892939425873319234200886571763982052125838183427343328148922868793911770756770737543265993228476238984769318981839716094762315726587762022559729641932269494374193064121879925617881794111229719589812149112529410275693459068010730413251608975837149883437805406911676778374349762622652230134830085625869589422418973595328867376670204033208698848162320332633426756845475193791461962796430655332481683195011778339243641466635487358264563204724775763622549160058476963622326724700033978093737060740281723986569628324770707735563847826614890118398972533948836551968793337312924987441451920120535115061989185300862036277118372057223634048010989200129462465560489447051119493083101132291192688542369175857731978516607650115623577204938479982708506054979051236443895697798201784285108680522088973462811268204397194899361182506560541149697521764381826745093218033238593676756914785870000524220630747014561861459712440487328595037130063127597518142209130073457596347383807435664133208711723023346235934429898339792308939753186900551592218031001337925920196572740142328215428189962113233281081530700940061889171786616957649800252901359446788300755911188880420133864457684654448328951375516012740370447479201365576732705063349041421373234376107118489510658637416602133323469599785085113365991240197198914165868126631819558953026659949507444423510087548291456300823588771584950610830548020634929075738393213153631825338455831229565813269018490019800690767627189640165839241299426639971624334440869843857785172477285588472869401227523759861244293525362975063097931187192400857656344809088853972383234451349173799140565578228398086532559736817532587948709243023173825581900077199892774643064707155991950513787173179054789430971891550353082181995884610372223441226272489799045565066777957933378952016702994322818694373424396140897321453052889944260009960183907264152620945281523580335720569219718047229539382053313743980287941151655473353203004578336463713047237892916627819127309767017652708496196284468344324826091808400014358191302702568475436560891866095897874964998680847955725057094325240238063947996016663362230285745803006682574980545700467578371847240742818638517965773668230353594917989042363128426971419795475996396655297768469702620676699351617608924961676026143425340493644457706195077520304735190347145042525631222172788679332676868139058320156100863911497616133883635372777502453117637330939116375383807859516396390940781473861686758171242851326627727712973863887614914368739131356212255315475362731915374418071027282324150575817267601403378171513749074873159193074989315692544701445233966478318616012299025227330115163494790405585236808927338784685569667982839166899915229383062735651217245189168211998248077248265571515052671108690970520359570996555072036063102054306159047842462236256958456950106681067343455371563381800406689191487631919850314945434226703852827630342754214908008668057990542454978861117403668340415101131194642610005547273553252180184390892993120541734519229195744269921972962692256165735300364630633052866336449288115154980180377717882342829272732732055913956753654516101307188086792732645893161106525532343832530007179923000986164606691736824684704305344204633729203564001645068673166315401600835291202708311829556586076545489957537316872320044783512722152105600237854287668098301091174815377423760242480199653210375490733925026975947528518427686603254905885026576232211707140325380899308015118229339533878541690538802264483263385876122831246489386167185574725184112764898419446971075342840903531221487900419763668692945059915667931411116614211592886421512231050288708399930691806631870713034687044553544830006772752612762618747975593921901711654105417809797394579058887551626571616842926074712180093686140261203499651867103020360640864840257129927664270971734426822634617536846678642852109266877449126357215601250605271116540130198278186306001277462562801462418095082280903859039098892205137408581860701293528372655709822437526165723807598802502506046438712847261881938619401429548028838521606689334207320803269582206508314562600513343594326266454352510893461846529870272265448239408715997212950480246515018782864692699459428106158472835072947950769457065437630972830583091412771596878470941904349562474017861590309475567306061970416357519214116603529583933204694307095842684656580107548876672368582654539896044701574226976397532460645149919208734151923379294029241504005694971493239169464963726567804237801920313067117830546737608515762982063378395531239010478755497719953711412969854946554298874353442255541677283772523694418678206295791623087070806085407338692483620362047304494022968544899030224252754149202408104216026361329902937910026061828914443317185791656529728558313927276187452515592727747196566911728845220985150135489728175424059486437337432092000225360563402921345429181666853239271602058029067653782278000002838298281616783379093472716134252654812256738414491187507056096519278470752442876377759121552313539754062610365041786933847121744845824947157770005909581471307809852995491357034057257941476265652904667504798557505538801786427608157667739851542668968751421675433428999254754840041918851916894703628786710641513634231294102842052416190605856744640928422288905099977677611380730416797708522086613381749819258780731228020677573652449612398188362006731780047906135848736801387711117774954606919407646661199991364406035910169474701655357179894652553237243989889787263947219542177164664966229507867037168146265360872020559497269999988137249327028681738358284750270368997904183797862100387242623328897001664984636137035712187047244622845737348602168464268134007427210585970752786927605376411309918764402548792564944398660235014980730030375323034036423191697248310357379271071425030695613046589536644555254073697450939922250882313880629940488829201677041047868084794758643393673721380183592070438803023994560975500853628890035190097823365718433163677672279427503740121129590793035612194812325922148706279203160865954634252282663069355469267803839817362284710505834665615558684242036442265205063837414898204240240650012864407602197800698181612009668332381192535046158700909194072833655351060551498464064099563942339151224039361799850028651279620528517271694511657142941920342511375338695255989445044846614755855753302343781488006222788611850311381450118715951228681490621258261996813652908218118545777784829123072984844554433830445969833512444959058889807279441384296472735728176027507932563368492854217273114809492485479257737205298490947580450102168576047372614913927495693231634971325847331769142120417423532211777084354612038068356339327954389684778897830664195071843997213836057492489967043819164796972955082680528915542309626668466399939053064461834243480466031362345010973300630425870858115873322683573133648760117814216345628931496216251680050360882327601080026108147742988923165132064968074511144808306946725196341465385107126580520982379541514997011976467931085601807549995484977849150844667692428900535968140813642910496451155296498435761589899376860997427689430521870171472534203048212255094441471041690633177415684728255135567447091639838340932365021695948263888964884326836487906161181381155011905642176003546128849350845799551467823842974017623390187837083114910566480145303656429983194261644665812078664633629679458521892067262032315534736695207617399327705855065809776489621247353096726524956491324587502353364893598660591303365291478467979952281074318831968910610845914091727728966304776466766802200190000996451696904886968690460223290245329995526592414718262441528973711235455443024903447736757727288074916988634856527773249951531284098771186334483792923537006843387500356388855113667814580314333064648534554797208920274932595378023660829638019412086801060564332383287844252068469555854183828148222011437123732242302072068668908555791935136929006244123583156740843391380947679474776670102841614665534135382862945390953629462111763870154228652837860912637195202657167248473368177924154494403500710442900049811518222605889253848369028299855786395993141171384562031037523750042264078037305387607091839744428064219194754237999170222448148864483133046638282060408074938972040608191382104133715956236557452191784314975874496387850039649994909066940401133809017031876601055831774971680456021882970581730500146949190395336513896865898213410211178029197234058381350935176243925857129554749940354877576784212072433098826873635708819594378551089901489577992732347846951059722771552428171647392976074643474244741403250841499573410572533840898884773436365925174949579810052002075102184597309967335450447680680541719611063569964148450086050444195182059111427161577350876386564407660176765657730508187643097571605764946949656598904776652425190132860810694888864277395125848017299054677354751016307496009809927791161599795687501075418252197553881467437914768141445460630899273453794136616471751727617976988362318092112158507588669364178607194355740986376120334799974282367752048552067252261981040138719089803898738532381920560782978464405947916081658609477448376360368206957412092974232368636968570600207482991665899179832936112620278870633067910232149231489238531441472947483932753938334388223138384635750348210340005698969742079785858005511846118858445258822804845674923785279377732010426935728732663525243446185852119369700980736460962015172653721891342543876767113381179967848913441430655076798051142433099902066002748364477813603558526274546572000705169724822071476623942301759367813920195695021066297679814842552641562894708412254386815745225118869582286988580310260543748001435716370096237357178297101888245514850220910370449694363592928869715142561106870570259022130365413747465699525571290303681015318127446929797105596904769271371793190451615982376236772836025934741014469864455722978751935036498255711210152053037556052196292465875169854940060582305231427922384612700325478045001823114106968110556033545728910796933309317723299824674726336140151365898167609267403384201906384046829958712126233738456046653404806988404615116976087756568590463786147278661072236475814377367090666009075134672940828188100013534993560171846654202577390752296156183510819290905219491456319153775533606559062480159390536131482842869670754266657277715875237165442176634070693661658012050952901385130956852026278963879273066987528995533465994241579482672459154262786501615164709040811168715185308321343218621991055309715334437936964353664232228676092580925936917668530511288014035768008420728434349806855326025350435832649615529445235228447961507077631633527550090466586832916207933386652926233844341479299092386005778141535405281639771208606534528823014896888676029181233759449609245703678185972378540589056842718186270305251111119614067921625008237184644980362429117429979951007855584189235791757134249069305884613135616769736297800896835886649460742478949381795278398088636693836071231369790349990622187684344722375614369221449553131716327334035273304665592979698750461520727187551996442941853358339807864809346122043678200548716669004821835267448605300764724250716929998601777269592313033740795044901557836773710433172199085312516962296806329032741619419492675427746174492720896546946096832702162887519383884505847313958152896095058334880200358915890257277635042623656622136703327854467397019819969327806869134983996645792068165790988686350590844181061515598877876575618043113208648367856662687799978435199228838159857416606477842348585724671595301862144486803862738457246464511469334953895865589301351812069476809590699477380804644088762112227121699339308800579381897519652209871898637597490159405514815399702076246510036793165970535264287710299859777834093694725366744579788091839608594696774448573411365125335380793834599912276034270476217982005434750628471827339789707241266905597837626328235052154236013335845989793316317131541856066033572503817632642340482333318551222476913449402825593284961400261561784142131820118257530208018953287570856761897771677093710209223200960593066169447193883304406111418019059570385624156620063202705118691811480924597668010596309965089119768882508592706656686740720909570935472506467518280680462788584102386149102070576030035307969610352677470930345860384165994696018472349135376276461066531793596454818308258363290032733726768080158951827507233571904957619990153957433294069696801983637693931870255329946710959207767198425821405195157079005383340687483008820635312544148126300170171992995498404115809936098398024161822253865411076909830431723832448011845703830634052438415035845712727262758741066712153129626049826383438347242158169926497160382958755817711360975054686287470342435660728894920097567102892574898040266481579637564108842850582773670414612745636460919222338221901771075900655564602439639194270970936614196765692909020312694474583595761576369272082944115855643590454473640085099817329472429906045302649758660698789650594377739018490721414102948848593218622806601043705379438811833961902798302222748191569331197352007724598370396372656086570946345436993295655854426721343429986306953830229506525951534276117241152537097302798689004736359926023412792904458826902480620155886095001145612228276527284517505192340488074948157187647986481931580675517324229006706320234018451195492933363753330257344997828610929865315707885625279242207300812560038624305368262099071480136480498832321968621676983728320705875139888847244077077137131431755241834276012993916023316777900371571277069801450401132993039586409406885636811288325329801509709527354017020329822132913682550309750817056971716697557510977801737620761657509206014900126303409820978984514270058213312651476958344901271231832335441007837033733662551318365341527613850318398233184603542229372725437617557966139766109071478703527170396077924138767096226874240725523947256157697161882888543849427890148321875687452044471793637127645782088903168130405445450968674772462600678193936114355435209136829062056679134194488910225955695673706381116545723205268068851455802401451061786721781010381862158694557809016840387795768875074373739826538144700836862488864109298103809813105152568089717536882345753594867984376918524004680889840741978959944659105994644220605999801944250151088485084125114211558679421453879790501115302523719902902426009241312674451831746990737860318851435583567266403407921867937037930874507000334621641778454398444427881674207420726567858863933195457841661205733767903152380513911936180087656489814733470784404373067895547594313251479107003107824855412610598938666592305682164486263727882898039771725639543888922049289661594090728720643650012057740612008508484044910074276520111459635947848988337529437031645776482524249668194636247132646681949556426221934939936147218464035175409258999485477259093212272749805914714352769878510856028264596406363195441147424862168541890597533749947784318582217780436252406967943340670562145526680829250479750192366935194508019987048821255489511127373620655276134725259178555529890656446208388856212602995327757594489520890661071549012918622163659847324131342132186337963065005609856111508224293444456969087849484192606191474211983988945774809641950222112251126682802688019193360017615086381498293250581201402654892176503351070860755639511168500527145036749767273269790243428984323026537989251885701855529919281075344916075494335798879226743791148245878013877999428459095062685521149164015683442259374472355578754785491819956851861944409118280774251349849400837256991015372622632992953445379144697624868562952325987218815614272243011621536233434289145990049407132817830801291206355849148305908303188963989330227362486314908606103654014204299310622292378688311667862254273770390637992523943384229995423093486039236199899548009971474257317944030071755774440090063593327341655628601296947680934958781682338297997134689598104193236317955585678344563190930530255855390389206675736121828612339671399048033606848565278675770798234991984928757404078472135186710248157720808084368635372350453161412086831942730221665714631148164392023690189315874477604306426073063177693448705082341717146925017136489701785754604156800843869487770042411914145814384940082292239165646364480344053286372155743840966502988115400877598328702643501346088556581864444053683931410052209521617981703577057335176999962074031316424102452392619992916898678114566496257718700974222559505241959065814513265466802487125171809107189446267746172437550991784235413883589759889439744195732390131275325787758590291071714845074377365112862562264533259909547182015275560737653029565638027279368137841047740657908990832713102548633908518956447102266245144846284619876070777624168626857398680179030804453620586894651110408068307096319120502452037572565582594425415791652518297436570902950501544530514434227214714517514814337135882492560458100265452608504857241086833401599510682313111770306880858382099697450364109369785111850073538717554014547923429490219927013566875665228575714882341169051158668503547490037451205746239364499768853615273164760164707213206850095483150685837903556743207049086462063511521279777210948333004421220465597224061067778886003699672374570665680528424494329317970025863215373981423559508194294936673079876051703944088749492708377342502255243870253900565348692726877400022899911604353442277985295491533845248093012100582617869567562845942294653532748723103821186294984706575978627248655663022493456943388157070100515545067460704656841115288837573208800757938169829749780419226469355849805650034141518127542355061833371144113403109562535559309150434793481010759058557022785310438880365464063290373732119161932520800330951999121093544080931407344936139631248138588291797322746605428188793049891348529777514176116167750335828003157798456894221264061283665152758900851134726276040564160287174683886134083974325971772449448837631973249702480771739075072264724482012030093516010036757466948967598034566136797963740222497467211639146690600753711884692258726296253336637340389857505286569900806892477425689971796364176212403558195283651605257962206822866865751137224168328642363940882862987224601098198312549852691940924244816194110985043057008500886303128253155538644825148223549697304043434344453685418829088144574814005771517893346453946573777290059459977159056300037448342096289916858415427753411956147074877427331713466308917708273541289763507342313431949683669379502527393166270626465159190498688217859482522272874603626665195148799530441622163523751533138244500711346988667081492880022437184410820000305681334524613586549490525378338804293110687956719541761371659621941335972896756628399665860220705471003718412713784794442247053915627668816688962561076212099623462656568349364970253640816131347628850633182007780814552276780014525928962048614316702569073931457560059374405592495232376848346380971113536368896801674724218570202847038678495836416264374798336515350211888453095767667441496344101200050081873191427187475000087772056689597629411901951109623330417761356492645869502576719442492108850872082460263590947390737778396979246530711608764541968448884788637947349578110546784452697034522222822214719516203892578183274701412514194022955634942227516634339963866513004492566632655306541616092302373370910727623070585524033648543041125988860156596520066419304995663405620134829308957346416592885355727572884279255540006771904954598399989868600737580096020805961592565478981643708478687007985821827421425596554653353037308292833453528044417343172825602633509953790785434035221166229695804942854696709305128324795381541384118309861679806085237844018524446583407085689992223764613298897896986171416541071541948764348762800529733062421274875638636426459538476107572139172665876906690003524153242512018025168256988305421987518672715823771980129302978948315509274109758615819520539090143988818570062906077820309872590876122098513698637946935200482467565197748107029378535599295036754386682746513542652489283815691537293686272393736084267619898637430975168847319050846381621270782095186261929239912230921958062502804633364515273412108336028650082700753851937931544282582658194159835193495086219792443592674613816765653656036316238794409294603455934074595464106045643696705003321157701561026317550819568460316776721703916626627842300149164306506258207823090189460826141580378848855261714545774226517781563160705579666164577298190398422525985519897315176001928036398239024500000991084833107815457740506493723005858571810630854845450828191224980494496286146326667356347450729119377260697425896575642823823367205937326447809908681272260831250697530288887333324972877651857008289166538699276138700145650345334558480071220506438295647313525970187128049658472293524861236303829127763474581928089719088206173807276204586823647252850487282276630837779330929258632382750241760053340855812231545439178877139962900306609581421172069091210760312176260943354006821342185265451099624121120233758759922634849099915724378381658623132394662492540345023594340845426755568606912233264877754268781116815728204172776181986729316518474545883040318333511389457270805481621094953851588882814446563537280006967826470802834248132253195876424829632539907362615687364265302889773714504027880418869625374897375198384319143424253654005445382728144146525662142337025465601816700223577825139899912197174818117161118558087443610939746460611041571094692846363783086493455330937906449329410447045316405316696613673809184971213657152445399471277232599907110558140551444001536719215147593545310590534886706094806883542760989298462794137824619235883771676059379199131838005529903041027292656901248778883026205759479508259004030964340020320475560486436027194206906046947059583466322740174808996967465573457012304908237314200925526798955325046168766269387946084931820414676091175764511003802482117959330001262666000703911601674062420208974480098908777848398892045301387342001208349042658959434552526709880728264934276640130256592322641690083642221024375357406791507179387667650620439187877265356641132909078804478892968309987801163731061833795177691668497769181049769750923638730168981357959496431313798978140372217632853106561741080397211709225569629426534488085325658864523463235903333493867949398400052238682314599028419999304043995608984932263323890302833323697500155412116673304592795578395636743617303439434692178205517167021349271143911126545039988671073510915903744132546711739381036531835436178504387892660926038230390086468254285004314286814478636609303301143910622240156344734128914202699714531246004688481397844018279356711033077169722345984511881549556290598780020204828953559282310334406753737847804362151408941456163056032009467467357622185656901450512505222360288981440163747851404704377972226024071359156953135482720494020259161958799066981929537386981298587022858134558769077665472488940625441897910221717974950153163176153578700469469922039520013402430340271669302265935993167117908418543491920517531436819311202957183599087811822304750091036966136237720916744226856481169271904808670799813678797814757725491694382863775232968835045872237230807688102824976577753391682110181559402537419691322155262101049477173668449927185698265352235524812385434371009454234065216125449023885340854443747599276008951929841699143199893461929596956302178345526713402223079469768468262180962147962340842866445685281189585301937897970048375779003597041840442099332191321757180383009719071480823448147977062659164751335600197160442406217780651566239785656769319648915721638148976851498134610505325668367599495487137105330702592926827004537194635083511663671655078866241766681068208975525697437467016722759113585521279651196240582517825348915552901034212108433117943904355262318142627590649903551467590741937690315742340191299454085021803331685837077934347480986891737209752780309451628653314759003083683377992931668576676654950046185833409897240346198472710709497536936421614333570286970549931014763377175280901742327229875000513181266766673128209811632282707582637304730139774295411716217629402175171578585294497215635126929006540631694555688276556554727301705473769148018237822839317054420975903172464414690420342642912567433815681416539681491014965654392202926175420639103243468285144211174939163092701514416434874157561504043064546727621650423514419451840867797248080843895069340181858174793297443323110265126565287961898819719808886402684885242322612068426519938341174320902240726263575948259415213054316880005206532888980505814997185932995349114703171891565138140379139515018344550779752421619245208539370526283790988853619111195313906111878922333508236686045314013488932209945990014797077253813295391672379891347622550397594717968394158171421848143208515668800756170886528584070542308671194496404388740368755769521334324892948678645973885534929093533134543809252938291550288797424118806145397581095232792809345417497779443078460596496793908701566147492210600305275309550191126011689961454637906844333468628282274532013742426300586315894624807722894952752161030217705261400571850145213092338724038042939782602088182148721804930186184121779958330851090562210446817608614984313960430338329137118082732230120635500350934717845588632745610375734528435453842875183235194872877944027903469175671459541521765227533934105324160099623091875919290435693975828740510300754882864797155867683020462654938886637635088074829455227063362435467796402263037458427422498400620611174379664887913490372182747757295997245825882484754868614505805707730781768774976107214200177108441449764402509924208282923156326894590579938043587600206024969807734902292058370481605515251326788368734571153883218138127305897583371026959201670174868206002522273117868480179296490410140543709616309639334198155575559111701021944586942284831692694829855682023166828164761058076214319029568391568974254588485040437998419617979987963444096347090350855029186938872404289906273944035185029296695014238815355182354124539547311452699414717785933491460973159392347849046389209857157460266661892748746654764486295150062908070760348806935443083636999414942526113457933636375539361616077576113527515100435568934416510442973028370930843124533427843809381304920737322482951315268883509552547511517917850137736253827774241638239474853493728778966282983229374570826677861924532901628606150988801048726650346764127081467924300531144783435945775830951906586082418249895112874034517717010540623164642343206988039018035759981604061304180252798582440103499244242882114392826689815177932933472026709854783689054916051780461688319723771243230366549578007301708562886615663635143898342411698146216361382474352664077546477535134370280853666914928711898538750856955321488015738875990026042344145890831084537076743920980586424671075208622895814263203618233911842848628360942284006111712697367031985211186822506135935497367262563142025773789115066375992060476953241783272378436351665221660394677007354905948191645886472479119404358826713607308117162313998290740080815426778612667816834869078085468567683851413128818233993511201974054803238031278939268014059473385923580296543812473531966837532401050996606056183497711879472955103004608562522930428129135051202905042799087310862757242608377825932318626221609015159178542711441604767698897856893832711613814430769799222175305652685911842685316901656005622721860506037570471634710478309204830875844053312760730395799004036679354255848467939591339653041419158430831578329068209631790036269383600194590904945257484974929278686196981476900311079680070360380999549576866917379263759718395453199571829896670251159519805738801159971169440467185930357939355210905953104467883356541322253583896513295057418553966390804230259291271334803556253743030020179212786487687230421388533022780304264359824908359426671352463067416985170776318144367758751091403926804152658598148534892227571700482583825687104452787928827183813476924936884494254948140480268796362063990952188358191186101835356351557861842562995666212668817675145624379347860449474167487021398127126073525217015028036725254873583007834312414095191537436689855199197131431493704752654270626982988890032296171182851460593083149381301077027707639793398372973976464492724521084776186707810799585860098924690576471066426140606032341178373412711400099176490454011776942407751324263771319777772434626296247086331795949071960363677377226812736125996632488986321371307219795959934399800945569715259934652412046812802499624810551219234589082356388128687478673583111808742938144923200220827185662978389989240807624544438688390081710621707979168966282213676941575169818381782774831629474329663036390631732854702874076394731254397881646514688802002806203726316974354239374358633905318656482760568265750168688241864003099716327694802567288418892815875243807887790167909848704495382112019080036871124987665813217359308714680127269498792350604375565992928737447347795000108857600420407634855510009870493106560853596936002397022244250395180805402752191340998371863460310525430252977339748920330221282063277823178242915900363425438649089615974241363321624989163707072958480976100847172187503768854586040291282155162139604055198911564849814071100941513121148901486623051292556869066972308434061671732320552706906416371554276958821647557465282993570956771225835651625292975344435484065770388897821254233497601143436636923561963415143719408066408061279567952270425550094613798059186596438293702441319657009716365960834239954982095949286086170528388902592886178452967877703196991910839349880902501121729702639255191589909176947771370886069656975888433397646416238401606234562857575266234505364200720090223762905528271862399451437018305762847395671488112746710933528796119060537739776081595674948968588664167238662983573721415845255152030687604939292377829560625821038582179158174733896311401601719188591951298184615454638709055949038109966082892929525096179387994151631747384902522376832037898462041048392385168025541942530443202014555871690633940103051284119588254955604855391689365613179133387984445514046494361516323805267597739105552567427667514528712987830013239751560308681278982523526896759383882011207437063849795245888096816155553561622939551090170558471167368329580305596360075236002750467609538363402124148136855410225793230939382819878963441654229604439925568661688376638579849407268457314064012890537567957890756197034404539531364523542673549582928865287426433329209851096613906000850840364307954293407959391792833434175242128834053659637880913187378869938465279443768532897847019967372277163492514439763382701534215286978607471435905945409840097032364478484101908062978998135915510555906238673272612588158596411590288362654803540199852852898489013453742420135775625178797389257664657235743282893879430820172267646389613750924220598339266875593275570652871199867488046171751029770572220059180903214733968891668838746107950814429995911639173243741075003423945543673245373726007300731171948840061145122100650898172318157987123131784296050972347811575461362587706639237005637417168264614965163189959626279891744468222658794246726962952551661516100193838053856725541613223976945857028217937748502339325203597954081171718568921408857755029834617410573646087592455600663353058981834210259251717940612488964695080983232611161414565183965930822722232983135925902646026658236954129013536895343085923758751364823034187866814149848268072403468463870994497046482679545409265171073370780878957884815993040173232966813253716598951688242928776210398507778938530720156174783428189077916942345417769553112767745279893071354479379978093997867636987811716171434848881184977855223306580141740414550754505946579052846238129388056751375747005539316338570731365557485269868609189348189150294034828985742123566910999974008632278453327819846281024751903647996767116530205739557613818549922332294346191016784180017197630645453648232405143663669216271169227597823529317750502015558734934557253898960783997435151880597236361179339818150858390145380979868807069655062247655157797170749413837640383778962970529554656113251535469837955168132992978557812551542151159910195934963876797954705281779155529719898162023197113993596668659443866488660713305021688465552672943129566465954763688075638259875554184826659622412286193733039949490231216354164076481620828263191320502654217080002229241183805450456746430317001774085596829615669759064554865535892148566080890613187687587325740323348978352062270960182661302853408784858326151714491588800235569076348507134426761737307613067230954111119097964953138840706077373652666709526100385774719411608137385253296741423889221487495683759179796047781451795964429806629754345295362336474244090286246290580950397659399507360900234490176198966876391990338721404862855511798199521265643403750112097197400138954839983007202319534993515351428704093514425907954836363427055674457426910488095387292912486157865198641101530325590243364304047275509958158992691290988617616690122791493236468000856695998983495039130373056466056155328172795189523453420409618869284195472440071038810758963825000050965385824299824560690692139907225602833920425808155259381007265781049396525251375571419274570910478052162565270434179555228065250935120290645060863544976481839666575302514114312670425064414372545450138696448910825736450932923786336129726108649913221077432776351522067138272167776450021036976104477805357511038267679890011007918810618727822486037965501065970508762414368702205186002187317269722473115870468972794821578936151231225446391244736733476726204699329853695824811143768813124576948424286517683668765678968087000900240761049460525007749945610152678537055698391653184759734404973242894730354444394908914942808129568303434401523522851006056387801058894571440984371109241191402049238275768757853755628811471182242440154701145775876688661333536866172537631533288837069024340328040061035850174584116049895517841507378898267083561161173125481367482020374344791503557763403857957202922203698223794095584241579945942069761732002035077685132361101886252388089436702009618533395414236601311376398402251869677763599108200157195975981623783138933642297258962472923744384116952229092819769358082803817211695583061809972048773328881640132339654499920737057665855735538745391922465809702402104561355499156115645057486054053335505580406193762332612354376307931483769840521233530662519419859396289047046723233648390412108746210162370972915969023768267349973366677572317671001345204136622032445425335637481166179643842879905324993727193908887027270829468044749815166497526617239916904884272700658100440539228790223104075307899799533879839529326752674835255314923188285935351631387079403628854138862203916870591664312424159305173889989775176049987290824451333255010158411652863051840910301495601113239208888705047369174909350793280089173135721620710171281081982704230407399733123786513913340323967546119183021300828570381122200471764967552906274705388372651195524102736711169121434090767571336101532884000968612133506904590071236270064523908817996724224527071172833203441435997206573442966611710332675605888455123081130776609499878760196227483680473799409089809226139642186183026738417892855485275891391433144043095884501367263633062798527541506755807178380703700638409072635219270641476535805887935045051996241235645636391910018927268527814509425447689240675143811409655444406282219407760712251379967572486171380134657720734389164980121720415333580978694757599404024466582294480224302365525285040655314488473950893916029288448779686239096803138389398179762424402118488636671850923399094955445222670573918855057717723780612818604433388939615757825201954212612552564357858377318026607869707612097185059718045682944979509162938095967869996671112980706765421865089985866680230520662774759516606820525777351712901986882816140262844487645961790663498924208423407334158425042467341244043426690239893863577827389252789029382898601750439885987501684784262228632781817193471154560281031937792072790411269628539831699026182825186702339227524795787883598820210432120443666480605844743945775196110211966476433231051370954716794771971751813185700331848697218871891567723715557923369437266131835267808478901391754338502996120430297933623834916586174992804553445783912316626230357290169133092150981141444871144548706803947051997856869531471884310513825421358084842605057861340966237535111797115738481722083833765599540831953485068715706936700643502030114402732952370054392736487033100799206083015430914828041614807488372526814450181167673484577910610501586017316139598282332962013583957451985402160851821707114716945244871845249629860787907138727887416144707873739466892294715928898315963782989749154948498784037083936078024562695760376264001418853168940705722004839847710821364099180492885696394168208955605656160209826183788524343278058964957381642969479589707291882164479332501224030091125101134255533281075528987081900442971279709402627317072240640990414194245872617659656275084203251738811984644622970750087397707245957454993801251285947067063910768049797266821479733969122686957595293940916020507429298112979030415194486059748378995696324782210735832003625591868768514177338558710989076693296145882178002137785437984360139285602801852111684913027603316138789401175385040120398793271782901940071013439471202117669606646426124648615533709092322755400286023126381738510952922488900713971810849717867507340684191861139488009516140655066242097076187559611646810620403392545062465422756938156626493410751812044383577124274936883805174108960844864904891454996342575588985147315621716132706673873069398556114985296782318206567466574449638045528050068426828477219366140232103101447156292046776876966250823868751516227585958790897036777566088240750736608730926818831930289364228971215911419281751154923643222897916831493441671607941499157247263918934667781814540800800778161129743833893108332295178426329594418317542576149988692186635982272533022726747886738527009506320958263781475910184726829346295326063328724367400908656926374249961306940974130591462703432160438354750272840867385385849780491818571601310180717805780222388715199287682909614098259532534251745132549031608831942720611049507594265515153351845485700239034349263517654762115079848793691326356287575377149514866079247336312524082229592839604314034126171467501601130535151841474839225453190842021488323035293139344777122784409176239594483136898242735387572763922120212475111132015496085600225628378645251764564558504776855758093972506485097758157573690135125878510702955292665795603465676081907006103079171996472742825583219336243683590094901706626553084329112647103588718740353232004489657847445847646157340662251403183819901463592094127960809925610092260584187573061676561761870124571365300478383684336904170268270754823619692599984806592175213973659796697764599621293395643680181732704608725015578627750508890676863688039855748794755237402337632640088352839989051505503609774248992978016624078283016531458258525529551529765570310613622764635171375152710255290635034064457780316738745784137550464061913175983545566166729333693451809420912691219207200155569896032771286768355464542168047296037682172828618747470694022941532844906899116036971112196627282515362066148694003903931024183836265430656220552316365381024638669991156749111012617208486466812642660211828502933908689925348735661891358385642031335973002241350588778161138604459081228096323971698402946285693662732658178712459841913144281239644057896730813052559307265810292373104765966848694498133976309420465604850070202565225813817291628408813092477873155051795035867661796607285363680754738440686734885412297292850218244502109186340204088677305873788266918286197444564713397614081870664945146141452568422519452673642366630360755037799485562829163152846240936107061868037957143888972550440933602132088759116262067536480380252350285458468724695501200251180306015600458709318814036029226562980217511807561827275142362760043464237143999396862841377290352796490710640704395673037855343261473410259492734608585857435379330871592616969618892042247371429016897606407002488711677620102179773085245186849903898286470891929653561069621125082333158329840202333157451611144956808107625201100332518461259609144801091139146025780599982639731306537435819412298251704486451043274059410444462762932710556520699641083967626143062762969013091364083841116039668798731323503944158231130207887187378401661813973082107800873430854602635896932744512503617941978400011576221274117900306540182548485841207250939486330615641832445866503624780873437120308874059265692976409163810721349263357725040477318567208200083075304580921800742135777559299779143607078390777272218809298019808800417840693776913990047187798406942404034116136218758376299815380113100520020197791774063091187037203500100104013476735965143153939353905870745264035623433151054079466785318899350762378446262087853148744263649506516431816645989206394074537904616116471811034462992962097893292207570788825086565761959603127487271098940623596452491558334302505252655007251580676278335752733247125066132697979948064234437111493692267246166559451027056063753713107289363239753838530406543993078785471978539235187723784528286318321462565913754925412841061551276442417756146159408296163487749781305906067419465697486961147484262851593468236887272970207695558367556217615739911677241881698370764808866360538326766695118389985715689443994897276646669788764629622360983891870843012818613883957076203105200617287161886544889048628222117185360830602134109917170560924537929801322030048638885158641068029579107401957582652981227424415415361430090735381885060834048119018702482030567765810096539463901174954842141939710746875916917480534565337879835034879600040386919651268959876346997206359440024549676707859640247933994775756161426576585401508115352579767637339578563534321085885679347882532947411712731154728730958411387208860993089659805151536189472985707869580356888979936106334091751145025313361179169559255897510971968686023197953678885038987698493569625322159746034094014206591080691280805297373418401662742066470469812123237235627900762655963156342731825188515935606203986853583640339936526183499838244214240615954711529101271772904249435273373161112345225270122883661015567012290294388657272073495482534404132652027447965494355371287368804471558712010367581393032166841153808111147050190556481730357839938675155103754607863307223602736485151928235158498923907067491195542521072258749397461113893821574994676933733436264625777986555589489161884016862886257811234872372983725447988416035823409905292414279124271783769841155429952303653621294350133416851251571437463285577700788224072488424171909439336919166403310071825402734452069882526543063166576994834617795114653134142640840435616472149429404363405172563902305812121428760172611592474868420060847636269295270216940851576763692798579387484811779638231071598147305444282055853437351767102772771977246932391959089634816250286732002437992082283953541165013741352161798318442155342605280269726730279100596043763373926652058029813385166683718923293468590672354303688838696802217130637525236527291116897049149095748137264072021862064500171588368915528765892228736034985924439876639767905066973761402208971163360522193586016053111423182589322159595851717826417035777948522817065562209295419712893620218127645466876128626672953197505143657098707941602786427469903532002138596546402212945960731290812389040053577081476824638230517340096709199805328364940956292503381802760825328644147028220708600578317332299198092650229154516720402417336081606325913236110636195624325450634439010333369465873687058591055060935271786257266899842594070912461488663318817638867538511075399927971220121946909361919840629542186984363750943420873483211105650491973302977445980566763653198941680163544637935361591475661360302715306483204477275975901172211157382610418760838085072435517840498850191155833744765577759950595525256866466064354856362069412593933643296955957881505730525589503670870363474017258852205460712580675610355223266566125184669503691791837306158839025126056907710136029059392564147741503096075931090811271342259337620692247526710663720458765913347985509421708503811562432819434281733835618448819082616726021534229308850532836938089946604267321230692810509847906690959231565923537593886042090731050902246950740206705934634161963554177153234255562893309630733191198698835122052413452353654270676267281305530259936514633147553287323111786638964158527972600675743914400492873301590023330197330487208925646457626889631392304173078147698494339540612356868819046520024269931713122325931303267156305254630055943673911136907244688823209276863163306959960476950439417062053273255986600222319489540543998243327585888249872841817550299223207488298268571445186709042763900106966450913402512313666581616277882780383307635544592627375770462418236885530859762659525550186870719664818698213726830287684134174849523482143280317526321421740774501256727951072163547317507028394817465306615186513400571731169035090531285777968466989574893143657981255859290038628888731922588813523429769126187714675885410775015401008171980228147461536029438931369151706403390133287436930252423884614978094218680497894563801431517213416220557734710411376628057671683774086795319291110988830171932266218962689590189614375165996466586875448992346097593716820180364995836318764645404236666618326833456958771085873266878784292561733126548864741671753045008269438262704937154281543008320603510099800929792324945180966857717113014405058929696784394230551708641899131746842093637514549305090475770437700781182096969245026672527837003554059498312208641473422401858541156270853813070879548860871048581624924948315295015173864749539838949472511054851239120010821230774848393100264061001768631441687183799590733134733085161346748194951035825579840222640125859062128884294359728311186757862443946018411178300203825882117502952970612377048812387073583686460685200241734793562202019457537988378196338056336378516592686487861928435344953355543281292015460211973434051743360566078309522135742782208552370264557078444058038308074327792650911699299226498384747762726144528334061868901675883679767234845959024277609741116805436804176060249958733200436700446078654831446113006338186421881614963696559470821959337714775577820888208067625977860427152081744753876529822884241493312800787437161846691768981912762201815645216344094133058829312025165592606217943075225583924250877736424581532261044328037721729642081384386910968810628333079663781809405652396412002855286001929526575345919786763913442345908177919876905719759305595080933270535362342690699141298774116275025652401185741145723549597213182419158805811000549900763922988013077099248897530441535256179419878588921319458795521293653171925463705396397771170166564734159122887494816195208688278703493734586363126709998699333497781068726626234348523432537159335852668144958804477222242270853725997639158203100199394363265328668253123739436347858329050899336432807839439323370326026623122474751997269870582729316706452992250559857518371506134274372368141930977681247563189610816979368230500578247114797432812436395253583688397257319471258426225319889624948409018014745197458205360952435063305023909736420717867052675086239595896057523346010313622544649148736487028763424589824658416342469844328108689943283045469435105147780530076508124904176754252051477945876962395566784995013679607813850722869445748642031164333807802397522323046651139104044136687920242989064039215964381929311448074532206778254245369394940992513156790070708449373352684855864546583849014012103560087859066418379128429684823793020386048982715549580933131099309662049835096362898843070276059601391846177658056292258429507079389247821741318262661975348793607512274463120830437222687929156768207675294773221252721155437033338136862604538380178972567680709042039272109242563386557837366848273297446304395149438373467571018047799071216406449637899265465222701966137938781292580816816960322461207020757978424522104917390920412632478398605979347847050287550511536255775032569609851187508820618553905008703210380777946537829522733013063278843350186763127460713220442884304607173488044938995627297929330399854253973188671102944026014893004822623651427225780190214362843505231566626216134936931790274669773466995656620656183708933227348779003538307462776584167070005139321021722376452276573495312249883608324898173400087575320266762446296485388466276613014880637324975170530796786438027463539799691575609158258993737213791396406066428745337492668416203074242751301508653191360476864235711482699481866407425993098885701873400700683432340594092484453407404734810921549980448875421898797738683207064702569353712384001830159843072567336440974092343126646370128587610150619867644214356989504405425090441988178114366888965079505509129346955618660670708258096964360105564249114794047031556626562509705664633943595317135406352038795506854065803867739349266154420618972335526197249489823317167203598267907458214380881303635087797169701517677783079826418559064495988978594225755366547854025262236309866306855738583186165860902295312915808494864521907977628987635340012477434037351895758310631036879969228172003971986540165333171079111294760639154903036191457100108629593062613713058547342922283941426291392649705263041811686926878976994026834028486750369527921281930809650084825697582068827093032628361007854085394073916270665478287993122934755788709173921337881197661729225487785633021776689691655169613260764934405897677276341924182869615124815149478255118503307459836610298598027447944799584169055852608779185512158101747740983947638730381668833005747033075038164198858794371828970191386984947221966473953452302533766475822974314974490906962898070634887280036173808480087534941207208666104065638884890002326467813572416963624046398327998948300063303777800646312095858774175995236837207773437871874499844163895089329981081116167282223065880062368036908795228032304535856776828578544825473842984552653189721014601879703083423447207323749918568825378019856144312698410583290476117306551734827523170161789925759382505897792785458272760337576112590028704700040240581072938419912445301277545212694820361637781176741823221482999405897407361344040270689729062144896206260610505588486894191095957315676082391844150436952890451433613704977919733795932852299416766207589543113620206996431220109335629271516255126130455149305280929469151698481456296580605860741004845575551868429007849125728642604172323154067525759778657019591375815688455465032266400840449275197805972131092717456252321960952502504625549122625288172155231866428707693667704860752336626951513457280228186298911438535124805401019863025979929411300172078845370097626182127469985470689341083511604621822119764151303789852721064545957576037517448196925580130391198461420869439737827407823522519171641631494657779926620932791285667614115977504295496293307687825508810615568985397914000435724831345553034534610449207912732592848302344695156051324532824653396463979443915151110299607257303623886141788125650677959530453649776330076671765231738277912169861883320549125285741296464324043874718637188188831650687064123915161304301776923495165126307283109920371635066945245911221964741182534880329424104274900642718040663714237467461332845775776107616929041110061986738241422823140493910475073357482307765494815708869125515620266416124760324238072150649419826159236225322593978986151627535440666552083778724260776701271056661107182354959947085428697905056071278976423894397809155480812654087135580365728280780498974331230844840138028314644503998253869774113724581889567200919602672748234773200808735939230709490660264041275307350530015738686098957819891514130173090167162003589700222467813438970654592953834441704756003051953162945204870731271977358247353728078287784746905853174581825099267998784745038004018977148285624093508839968880843976477483201637642242110944084358599669559272278269090950769330680671536908026921089123526053627730307707393688376854938208769041443740600692129739787579310927344430827582325835002834378991132267699674837430618889305955221348968511932057841440998874191850143077579943658430209282291351743467921029816227000241369169341766650659805327796933178684496339687361870745020807728454512860978421559744200805233721715631972779698567323313256454878074542023638485481134755892875564299147023215362637681928382031442033306067210763929057269300913447229703163163053716667218408588937691146411162296355520502088767646355602133802257961798308250340696440951351860227970166288545126697843470987589815756603261467803181758627303557585243703079766002750035035368769058077220619781548904000833320838388351771925690810356107460257028374244691971972768030969227609382065798769628090266403185890331939700161669704932905653999788383279110488240702912668022811660841701716552592725052691998963083520672738854926419161187249837430819130529882069317225279872977463547049807058396214734254683549147442112129440600761274881182952678719047493880328284887706933734305209542145425250221399442966518883252622427118283040250130891438067320735829878594054151661963166683503896414908503976585766450344020679798408873818669644720366670453928691913070107615362847634352613102114552472222199456586063248244330805996566736550720824921351579068686071922577572777120900731948496067576026750470298590065868600018651912706090988386794874298902081465749226122174837602402308726398815031806582749038190816773654598083672204079867878385484378574425654078338029996825529223601468939648273498118340186361443156384472649889092841910683366482629001622419473917867608989612301390441793415430016099677990980797031304923889515716722523137681132973624747715364014511957633037572338704530280325866878767436940608747844974526673394654471168258872903099846339631809763378491869957496161698669166322888133797161354621744560309834285247637324128331978942858395134501687059772617918782277207438235261022316911017852492365127023014722085892161869200001424091329114500731579360769961966091958962545686977620950817108195358258098852874223329099961747059954822583114040121162368638564308081211826210872825023766541350910685347074685281155770028882030000761520740769021749603453316855549905973433159000548878339047547515634150531747883605660286414361478185530985029264222251792501816810101899423839908278382630141342018811160435160769518168984507972498845888121181745265557371502266790195852113053961488371970542176216878251395641950352976433107883286154178457680280828912460321360181988910375066227707052173689325894491431370142110477903400494081437484607967420312700584167667915784228356928004249366545987553701929540131221111330327357382749815330395370712126811652355104572099153098792329243665176593906564598626537096478006995898078186953861619303526570293969245839444598774795043733002452167809309739856157540677736516390179547794309427701297633229569889810545027132316892792434239897937066769990653036815794436486862251784405432379923717763476900592918538480264077752747877919583195969433350153494462187258475282095744974749199746303696967726867690838908357246167799870814246403652881364593814819923676319858829005524018423146017557281043461287420647573376287258432996276707855019016375812648521758941530125848053639484366671247661110168244748906860505270785444063771558821734617073714649354765667026087089196832419761055934311292062234576864697277136709407163310994539248332789421461452158357727859589724560175077354913068968337224256878542736092718384103052368378296342032933623392958613683771281653322966077715465508904013783302060008112520631840956574350435375947385409498744703421903082341306271263231346792995380723391977991618330864838415858010598391018220261552064921964514473084096199614045954164409733194406926819066340206032242582712382937250624256933309682253354665807064138579397218685234070971030416007316490275855012051051810547426168386945537166100543712781269172480243818761169953654062940657193113963601825700878152699478661513619595783977710090564274499920548711329853767138568498907355835407404931092968000639985836468527326344129644657513357709355856510618329009078641919696022966380573715620274756377301496279435949159907335861526799758088489680513158786756636737462236762448534664028731324535630048224828339794469550007105998487540206564507446557612978032356364433478536637510237348483083026190169705806147318486557219541014368557472847772233487607097691071404914387630292886673104427524447453469910912702759152665323923732463478781490625827334192820995609203995948724903724629211113964175725453142174981517155046280103312397826036890348802320753800440252906391318829827537562428017622688094085724269008347069583491487897548840148960725384011495915275488451328872982641768670244629386641409329621621966410926981751093870808489133273466611459767800822636624660841407954220448695507452201796836308076617022815348427104948323971983530447683510398590531193814732217185441120472655528790653901609031156001793608456712952138396542769112916089776752946292971971102712464156886195081544395762891099434021406825187198923251637439983281209836228038453245038828508568318074491494359427862588230162658970324745605279008171102301752679928302813586573193360598539380845484210159823066302193534099313314787347854785961900510200299372619141243292465481806780417287841694039377598326919100115951410579245782654066019876471316993180481373519621998818884717925903729984215537095471354738019694762344738268642979393252822764773376996190768816703735323278982541495382822331461597769652561868415162092638032117623007972147958867296046149813655372590060359868663981815110541267342563819697589344293261023099557370479776257546133108306912210045651216648659223822810905078452325994189894079554101808719078821632671319159339521717778088162079842309375811813470875994856576277479478389056079469002289626190723376229454101923300638451065681203501134296888052954330444952617331129336954702115334185917008451190465516519103282303270083765415673578778662436841633782127863225941038727260769809054221454441454144946434174086894262150226958660896968531227670801856326144698578510015470669072499347667970762795891627155835394426012699173699789339565621945001859432125041240301722510945417905956507018263279277117635231704427445861195847607143102881010097358323797729521694940692192347949475853016637659273268265831890583433701946048890008226542809029711431835755750718887021555476677372819704120422357805244982741102363427075529036632053323432537107866843657303157427809108169050251590774614517996265637232453868398852285205763534428829664970703674693863129885342297372520466821955957318365633120768868758449889001834929736296877765913040538386719568827082587258554019236578763870986094276755007038767284679164077012219050147447620133709422177363225100166572301503741304886226113103102655552436905769781173738246303308324605738304041786942370657663015003159178998902611938182203913621358515767125705250331401847940909369620841784340943998782005757241870087111325958777104662959752118415700492720678101610829237250017241586024477333087242334031461193481333611171925672541472763764894120451953917696598160332539324099444898297050453192048476628914174533573998483254398805216668499785053115678188830310566277844090362960219184827744463837243010593560873058791875533131993561952814974785207856325404117745337477460212304272141139379475433930699524957845204335242351462637646647253772736307836703321350454313495573861172880911812139348143437149292743867957293733055870392209293176973932067545824448111981628740062877997762280252950982959444532108315697512244076959817020311670355370325105880020220755185418112955145391485117976576339635127670517569648644447043232350940606063895923687442488874965977453745998256703829912071539006787322819941623405967233375365661599714800632404759460172924684404310098850945968762756198201130243873276451417489188560538164867652527501358044479815974004596966013957263321914696789391613620794266222441006884012918406468739838738094709945958895746808036981118551130074204852475781470301241824264931726665194912546118752617927906975007508099735682564652208434353485414241151254792180594545239402113054166965546056184518727305004441244895211161579103227634882189284201203463707321273389194111489640643316192678065394732244071491114950811687940253987742732729703854593732311563613824870563605907481183020098636058377445762112405613443068508367453973863204116228646832854384115462417569781731119605243295125401311722787684822330574046176930596454479639462454956771570090347139592682448237397630064627266874776789170002642563875517633232097021366573548491318169116842468669812387692845620945707409977528979326152061120981248421288777847008178977749874963573350700592827090186345771932971990513215375717744195767150711135124622746373204264150239915350715075510964202233568768156722687737654363057506817502402549167637622181877910264529175692886852597886399770446330983780841211264215819592028094731637401386705729618122781988461870128408679085402398503891066155767017587835511436076619288508065143723221297477254652133217548718140569633967590454115154948077645923561930603106607209150283669461576563160587440679524923911062598645532517790510385094022663867434751774180540478175799652742440073733446901881972319380147307062891580978004611831464680326853951554193129683583912545070127526013060786793849013042444633125762022350727096508219170967192156348510609350788025066034318535861147623731446647864192190517674029533689021675507529041958843396255780914356777712641093524508480159853615521481880040384333677695262213691982281985825574038888785058549497753946941097155423173958117381132087475596100518197128347324427195219320906488502529754208950021956145087558242489804971263364279706516871224854212337624068722405195298466536979644124792741332938935561131237679257859892237578505356171200297934002641727800473833905306992777681584057467075841676883021731659432404710259159701267080304327668517132247095572686104300531059619548150495271563731520698764303549252486063970645728896783290417319218960224017863752528256839515878334037122430407949777461666934496365752873779148716976023589392742126967155026103877956873531386701064784721274863427885723833625820333996844251154144939026831667262435552276113810782478542925238359561514296424302466923867539816812926386868134462783160258620022393312682475290396680279499658160504388057821564621827072680786194181939605907213999618416811528678152862989667941231676928193511506067128217562907621228093431485302697945315237672089072961031099116909877701241879827274594051589052945218627550281720003308670304585012676118769560319567700291509204023619904398245369823162336302949194211696865796403911821374552586495265696354389382162467205461039302257397629781275097519244275631073968613582740483484895716036184058033230235148268862193760718557359168310939099796706068915042613209548691566676479978594726641128924283972283113853913891244910825925126187018351463591916075933123520475061803883815119178820811818692789769682759917345974565861584382669877894061205884311488530181875183642556459172580168419398575700028230970984396946493560655578600049259998998069689594499976248725332040382329706203324804925789236059939865505753281533615771613433304016347153837850899980899971029824928901947778960022023471892399991767069722879210350073971853690315054468178508034244070825362054335809403299612938654657671527199324232930223265894813645751049168664893496057666389639526109633365321602462720610157666364610772128823841218299888894896217643108308994421708150553556398252571801030963329915357551652635439746421292762227686092397959579039865027019703438292357540132452651509340081037856482777604607936413629864553500080464388548671573779676118268113824140303384357340575761516997663445646725315097409941358759961788322524610543962822550271263984045395324161232858615479653616336571080070876802242614631496916702897216086042563167670637683098975174876566013489790117112791496594324163710353649161979703087205411103390698016480648399265675125779302553190864524673752438204927747897908199716433639210443814669555603702540658567296356791497799131641935396769389682429362404463067162805692211543030323836690429864204959917615936159131778091984382657999938242208656067398015150605326975270354567021653914513323828247038238081446818434979719146209679547877066456424211886898817322076189436711234385726036366714787840853724836726655212114140551113910791425542369110547721555822453814700253490938549628436029729937828273722783055924160698687228743279553898489006161826284505965282597383474806998286232186428829027552285104758404480987288110695665947916967397835873586291232390648824546200615909961891838413808943356255909845563201906514653991345836200404578046314205113918259268960795211492958845855331251518631391810569173467585599922907108244319947524313240165009156312630044626961048548900775295331305535848569198568969992691372299686940520904130942333330347214710337276498210140577926994085723731577971016116999431991776211305636187084200908181460619372155643785407240697797879280109619621652230148173485970180413832246594362651191963331513679567263674082277810585964357829028807847129656702061787379973444439939652898472271277546827596088465824766758465993922406162407459367399288155583522189697886386098507124323195607091097495001811670453191874770887299537348820644918004184672548892176760772975447792948229678118235836467249557030990176470637151798152080092789075005144429897320157323991612180967851899052619373899752486895426115423117783069293289889240730956127807196379235088956249177055173684847135649936784994969694365873979211200276311169645955284976832667659536320445803692655114945656548254410724196995812097492852993507557991286391700191876807844456845226745915208280401482270317043725805025918634286067314634154646169039022439939361884285294762431646743061335865009472383974475300320593233951893783829494015630828590022154230500027252803703918580186925704923278271572001049054594657420207325462186791067519172050801969723777281475919923166398805493728827188940726358222828107873666988419312087736085846460034036524771419659551775766341098001724210573576503631420459425742362517206239031457784977230772145158208275553814554204761335360621308437159898894304698886965215496018266472699561743173533386254712336214796687710157693181486818327637103402124125314136688006014440414105657564156544782551105413391877096611599702019274178855724264340188636003228443361024209475483602260587087529564512014722068052329608896660302946177533914111240547480777206925046650762719335810199988416632541107444759880663393146892027982543183367470491489888121603694193778431936566226425310599502487253755376428446717649685933134374707196913413370691971057986483473093596905421337244066932270416846202405052980861088617811559541009096235792853417193355130217758089988481832752726262438146890660722014311355331857102757305680550995453940924447889450256254014183832297832084379403124438375756058115966822949994054675914098296948282868909428147995285165243049303928723101166175299106768336090771495318065344774760145669285523596983105301452311306475610986618446588335737635289853374960559336577710251929304088538818351171886156840038000330802823969699624094801250869814919330350434130102951884844389055194559855719298626594389212287504903296327607303647893710575088315827402347391633944004996798154102000314032846633517442248036959486098247462214972143747795485224814776917329227918412892423281099119434576825627430679694681837882110064302227844554407728877736131241848454445793635754857717730179403408660658537255503879181775690703125702940198388466700057061247693287423991869671820583582440021887988536327141459257253805623341307938388970346334977859868280607578711764658139766198223993668731460331135878966581488467400552202765451736780126199970117726160957706665051586932836824426404721162163426507708055215536709497163440238614904699823838695980509925273222858753984784196573262167736160115977928163086534486620777218340207637567972941460556214488348453554205248305187944392509317674710122642551734836267009013300713385817218086690765091409299811078044631127657894143754800556566624479313191328881244049664943171288747365684080010702358747971562655521674228053937306071438546155815671850878767641241519887365494064337917504652305757808349457908176762829020339629670599001198929616257484223566006058931800195843517671899145471201550559530131013158573732121396044849643509887372261607467105495740361786041041190401667715305109811879548382162976518577731469356841117183301825119755872987436237947042628766236574957021919208064015020142022144512598682697688909009205477133221269970574651990791819159433132611314645543300205979849453957885811532985618530153361535729151590853559351960962158976580400316560748200362233355982548411965980282820665884827800162896876725631132068653300409305596511167345300754269948130428068705966652636735750970340590185217432506006556772190098864386832503301643105113965005179614769643792024683388894852495689306486754469696408716499526813982946690457133138731508935070908999207847612833248572782856058723285078827838394198352825844064638885970344234509137472747840786850758845202639556303710576721846637396640825686205217155667152988054716943349030873220133363446816032959615253019077922739599389946192907731939749377715676267619871048612415018173654206634850470202588223159129899546276587276908562910507379952356175866630435186404731055930503926478152800861613257968922162532583930660688516054212477162640455730751287433849609996967227551659838618517615360635230823810195314508659998162907085592596762241185759798917132989002770307262512410170386392969154681678082228775899741070801140739804124910765929929730677211609504734286599777452664250881234913358443474337152720767210848546636202621855829770208297517045397442779870769506264545758398749417003562154417344629419458641318650974358067988181831382523517422157458748973484801871380813772970783832113548693668928889324733425253862617563253089336168011125638596496620943753243384395970322499011828184966555508857837778561317830335634069400933767426407598646533667234625707657412338446222868783748961317439368266796989945114754298009276528048751351163700199568062946888509813615702674804809909036245187956259832089835012481687179016989770439040115378403064592571545611939947003788683385424508255276366038739633513696397312569472558162194822635716465380460511469241670182956920840355741216193737526854595707099170844608105344814385934874569618235723720693380949487091556330076289651154300897843419806480839734355154497918390428217185824923112412676400667012486246056234123768252548431213382698418972468316960983991909932825001505034806793655449225950019410512802915783491053222737471268781766161852420561463235386259539031270511866663519551237879389210677978247430295230287116808134686316103921944376288041213019333357158049908607439877628778965777323260932237192293007114759281039925192318001336321251897684490641623844125066970481979065568771251657089615055442929077500415981006614187856749885331767049368833033725514165121035394212084876794948115470935497690281103994830413836595265414884479556952953692903601209839868745408193379544532799336919438476952174986848848971526626004882133664171541910437890254557240370937979623026625156496805966990961209303398019345957146676208778099120242676068211658485611963262453226517024570029877728204431848434858434936507434294200240331692077954759654285541435806640651693137806785715223248927134528538675689580647248898372811551000563068326256842691646408985518542054324781693497113610369401829615381787978600918669450296351448428794192092164191564449082224043899388695751684398792470610517141254883281517181481184040132274263228762806965669619742588489295893092791793872816428312139096803691087910343249513750975852519792326056114218135542680914030035474039406792916534592347219777963662659701395693934744588390485352049353523069362746180599128064485444744971982352090909213377117315973314343439973905682204557153645801763876255131563665182454024026277137629579006178090552094875171476026634363254274453406698531203282907390463770477662051619969370562611960175052046634266363080226368737136489173810118872412142264675297833927467224263892588795005376450003852162986421449007527760011641275302025900570854693390388470248276615501995880982478560148466081787684946292859309614321786297144615383999224271653965365907406768782011190186141335071182872126954826432065712362143624316911159469616033673085111887920025828587156313931093761366893844742722149679077220003560411752608340560903508297029285924115095238700018115939933050758541619498560480333579418183928140879497115224063681106938295102518181542722378005682465505506784427007389438420703534832083987538148266900976814199921792783710101164658427100241549997341353664138759721298760940913786891133978692914791678329711265255537234939578631579139803521744070686804596773659923257515009865218895791106199236333045104790167365706606859110925830825335252791768335263160713911712873900816100953961789522634815645710512864827552369725177543484437613949630213292219643107378356524604516563496539486266123090606064705739874425134526787064029703522015226301143025188823691193224235850518358347009022789413689246010571796904144434040622716411897916876795921887803618086387407885240972310628372747152790013920921172906585873257483780756283126754300488343075014153475028061891527047610472405576759890454602314787700819474888903533990956257931870712676835258624058443278659345982020701309116115914956980822363013092532010599181620331255687995462505161113224475788157469422942446572704057224782441115464056635505716656734149491166847771582748866301023266418402947347318779879722209630562573020277361117854555277894242848862817412448097985178677919765939899299238007839902099189134779392480039470727355594440892446716372151951292670747051929593056918143125595888215355198614959154642250551142273914157901941947378630885930600766844801795532314457254364042933053624221797684185529934320993065337030641258397273608390323367538345626291227976225788573944683737071085664390259289719103059817518672514946975098797334593915001653749566318437975227999638920250647398505943544639476958312596925768814966148652097487158786150396250459586833659856478609025563979011837433759956950572417089975490127280166318723059779197691317797644469411696069379080144863440626034467058049810677091357683364567922420869613579672877596972521946243017339865654233936447015198851280958392396917915920207531011630370648871597056672950672183666746318256708158645444091657888358569787844369372655367100782574894186594090345185962847793891086214304337772643514221834604750560565503666512432840554539646849997169211623444851332357492255675280845215275032132941878540520407031852143639612674686170703963166010687890104865127414781117081037766894793743450207838311608241619258678073128414812716662434860974207438361395040773288512738366680004634634258659557491367170562568441596508155786966060753480561654477552277182949915636471006416187919676108365402575693964847903185080550470426292757148432818139166659000624966489380556070208483788459753459001006732456901504053705249031881040191384446060091128878584649662931530567842998188394315079735213054239536077579660192117739631873514677789980637268206716796157923947918094535023796421390001346714641144753788318916682272510440647137043588027216975831767789590418911925711508354275903304880746556760869547265606401204608766749222352403607787666932809930733656208243036181160605518511289370973371237231775202948659959690300429273735739534725150146459134332020372077074459664003492770932699519989323759664059964731285000167635493031211011526433067143990167714839056597790298763164789789078648090263487965161256226401411168007427098640246810316430194707630433949876864446474993328898088043546556319934829087982776742504398441420122102629243138822277514903343685436756789645054036171390387991658516888921512356833556690909159458829612442496219682358096411338471303713015042040911451502702190365178734716183399092893804925049178527736216896556381764620790488977893881138965000480929590865874950472612864431254538541049948688496225746150382434503230114237942824772625776306693719353023246656101042854749360543809062411359736979481585497245023783352105748365964183167020071503660429496117996265403174774395870664236817317137654173304530142402910723221027573293182510092518545818440772651018621076500355642021639383490286013136114898135065559544971976162008168689782109552682267779370814233606399996832899154840264905278463984918203775538042896831658168165230592949331322088661896376083193392916961204624263081413375474143507185809523083588920360894942866885706867349799270110480674226615769020148006947029668770205788221943695551599319060564757319918647688027775776449971728265131843360296469684355116188447585660622530019333790643943274305279425515869221496741463643364001133635453355506432227775944484669930017058368885447830727391839413991124150404150627990784437472285344218594237607887397942952470581913888857699273624900638476631678326708861381520600372267977566532723276208067914115571391133910640991270040035887108216745679771297215566708900842687829238055140355147674024157849855041430552893960496447395109745354519684588927723944380902982110965658323840598076096454381432149275075136728135985041229772140166567140421408846219315123553986239692026670871147350930726089123498882109959753846461102455882275248245627886193747932327803532641775940814544470639208477655170520965863200347734393454257849362619281432826700127985798557277097113767706192055423440590328375300979972508387499398792853904831420967249063882529026164855977259455483342268085852674600327589996981722096408491236045566157052192488611148142516678568720006603150725354504502940570183718185396283874713743287359883150423761330699107886737754288656966413259608282780384972698492732234807118004249488318080000678000059776417908550305571387094172612376262042444644763223742898972961205455234859302124587789768701419755600147530504662849398885837988774466470290958777829474559204398407337656190791565338830742760137438491122127833877010159849869456123577184387022923501148714827062991906832135884490642972839644648448239440745958309339629635253274839056971866826109624311039112300951674872131676924828555227129819403146955005168882798117136478216253406852819528503283030639607097958656519009113728490706565020947939799705993777782779171047594974453460474491156213642781497378554783538413062201248899395947099757814856576834129665981602326738575503251288484448649860372820260354796112782376004604546441412153561714768952973113036414510562903082130439605206801386469641644606161487404038070832653368083236371795865327160177049586855245580044213985916472893513955832479720620587709416460707805497535544347978711737404310367075156160912973897694310497824800330171905169115214847049365731016167748837219835495290351806689788165164938078255415617276347104991817832412469163126410524655013656600572105000962070744502412929656319683438474088906303972470998449495617005835603989625827333243825914968690816170858959818949660187021656417041505463926854822158745852585955829729874926619084730655229641916734510538245876532408830032743700242184555767263508468173367338651106549355178259850649770306456486193726844278109238850619188365453908586502417957658768343042476299413692078713647907681817562850195584256259350195708109686727209933566245500133627782305538276960101726268558390697878842169934595029481572698725613368263583966132159577946232466265218087318058610672410716133458310513957878822076378752889211610455265409020360694164427136396165833291740214788481188031577475329284653657750452931915305697554063943844921021509737857342183609252880401379225011754952836614447698738884860375068958141705930792480287209751038089798520992953475795827415046354935461841830455283207400662366784289906536778493005440774969156148807788764809619565670211485585959406116817211933023299747409089153536932814400811377541867217683970080754401598204828097615551726705542875379498579485050617691893775709798820070760035156096235881194532390739733239950343463861685198230669169405828577892157778468743051090580559252503361796303018992364127051447827794593763354800201371885888120148915317373165257251575936413641249213725693778173615569885106470692725172631114633914426716229084861073793509197580560700501601294268475316262918435772842107573187070213889602946921212249387385502050273853262112434500967276084181614039490692535270467783947678297607281225072505032405309517742991685067299542294606718573545813764888750803447972212736241673813525242817062057383638584953447539532895102552497730953263664923692136781959806740015607658300193469662617888994918640074666795581989359470961193630278608642175565985735675812255588278182204107955294609717418926887520987521168671568350352491872232976058820420980340269397941957862032591086976687146918619540441922033520459738173514323791820044536863357082213005243450490220139606875452540582374103142020477544301397728720299896235734039637658354432473718051651174078255936375279218611263998120128645103104630176943466857165061007231558789547185793101516874578262731736236225406247425288426035419509179824298324692724799319804147704827437974480983432363040360257239418898751807770469507638972503312837892135169615980337363330256735485112532825099380990831715669093786742212816199190600644059407599989310730880526228785056127912691906666331306029342995872293340183183353390752042815407420040484935926363144915236126885500547106101663778394126058259612450367979810663219570633436908643666285944183691731956431208165558708050524803893082902191201915201199184916123009707058664960487129863546671933131026089056398985489340536134230766754014509363076013272908912080691191191549568151973503860915784498680824383009701572395058200895556676458208184673770963732325124689494927574250558691099352865632111761520108983577415551112270317619208986513834300204445055129127317526972302289528974923352487170568677565342649359361907044346725266006271401594627377834955668981441363762115001759214092801984889545727062486619685885935537434755712512010623152623409537483187885877982971201640971573318165874789739936405852643731295269958474115589193800847715876857878972654247927199523175291695321181246967652321570379618170158368869406499100116863109720169719460509721010579610986384080393956778144034585423703560714374156955420199693240784665239570095759908780056124339292000087677350668663437369998242120300789442938525618432830180499069547578904541667907486478377839087875533239701058842730399506553117020580127353668232762114667294952159446427703273626875309831604561346668750952366845295344790433908405949333393807549240893723205090906445715907381993127742859879960906075182744768760590772641994695997195106187613043544031599306675157220850911744799090765783806491976751451435044959052417709048188506908182384369963940052882211350498618706373559348220424799162884004054946415315880499331729571897368242355995677740508835183590226826838563494038320394694491902355957920855172685951943584003807654700170700627728755322080720785328893159694102571918357491839029857335413093078973928577853403220598192179597773681830468053982605307842347837635567343968669852612609255300581086698226577477910508139222180565990639697166012011058003176255829007837761407851009568271506864578582234623535210671564609368755394150807240057142829024123927339930232334344774740331202652456209483283515060093361614229290714395214463241265696150624725398869354798619591986918339984563394695630310645740975317824812827049001608405282761257689610056721283555835563648023680553872412065337799567569636951445220467028920733691907709198425074813298963895351904867772983239487375897849247703519188472244122952606810626013057552678506475088603675342395876431158074785539228614705771870198254768685448072551135141998568469187348521110552638808614927740138269329541863424357512822195086548771120577250865839244182362863079811333140068924330253512770724795457576639756661181027740671443115615491849611048783141557486875292566474844155727885413908648784364017140481749910127781308729656494429103145965832391569992049286330503904038138698264861677697504742467225079810553683709576264115855721676148532409120887170072180687498597905357421877255940409765475775304444424337693087020201268305401925375196448861675779180109755065712732253124190625187365418157180409169647911831314808449448745859117484092466831336469440626772574224032661231317774387047899164938093833836600053561248035276048164992338421332445921871081362224932972111215643702673509806192888527266718140089521268537500238817357415327157038738434842381437904621710652482185246852598277736124020044167158202054073734276951933893318583123481815594762940060459864683680949191037856471696977063526273959259889835585420119496606775406071703238641823121127479342526490873515001366879479779028387153688705092273512676215800777053716016839235195551738584175415339116573305192194508828475897002556428248269353275282411811069328387687180973260939389488724202832091668320369845707617062617793845580927124236760952018389957123203225728002326160909405115203221647925992505709447121783594355931154927314043736541684951156607350508875539572286760473878873329682462009947047268874705633432558517875868088584248315159047546107020409054203705163667140596441674312455922310221096706872568847125105490399606653653927361784418020294732284806260181915263386123927636991444022687265369381817931867492362646561050254999442874487787904504933917378770944943442009345329125352704858075378942937812770690181245200744633573220572638328200730790039294168704199146558353282667068444976253371759180607800260174340301958284564646255734086357321134361988077753224128445557057077159034915272231267739748225000422973560002407012197125612540427986764622674168920507656560086781479046796271375240389652062456085225138447972616523240069766057133448156751664921307341806040568272806993157445132198221360631006271297710605935417848629529868193779814075869283886729069332022413954012154320524137119764555592778595850033207569675506080909357614944110800099207941768130052349695751006100444623542260361459201947296923961303710293221217224403146593860296911092279874878663753332110886047883701422151542318210078791798977437638432393046350972471273639304811820512126086674699190211406251229611879039162095158909929518349834333778647445385349017667491744594958908437501516793779813594590468410154283871993307916968375608191835418275499779397229393441384556337972861148314443564746017279397541187636717994936227748067609268583806352479679467169201412355938713003252100574700285492229859534605737335829505207087120207783781838146643929277462168465912757922945765989928417641796861934261650896919247028818902965103647107082519796330267359502795279292763704646622762329458221613525040044334287127613426965793221931090067772375044006808776705558402809677253116041159958620118172480733645402843656069519597101226209408900017806759508891955382550104392711475821857834203501938568266399305201914121137593767418423539024083195636680360647139814997004276050217850157660748657024839223460126590771060015262272415877334964622811670446263243834933590915772100778679006848372353610905022871006656272966377092929375188123762472783852455507471753098631582586708632191573546466332880787946080304170540181971696762950352868853143015171692418181194586570597982401260613382196018073214711178151462359735873911870180564734868976464771247535023956005311145939354082672603668640019033047245610288508134816006411062384480605811146476164130069087313241400174890859836185468661243845571945759551198984788349263221678576247055442303865756074745793709928240453403709431329034263758869922801164092552117650038084612610031725446966434446841576367082534131207203455259496680325619853307890157194842413927455988430196455123861809215217505901617405272242015436943317449419910733539386690045678328775632632932836527779893459503587034951885078216002485484149098216285437173779617479156026029899042316103496074822041872533523754124642475134892201675308258448990085375517421951122398127976220123132722187122482381923445841213297935037980562967690626228906614414210412823382485127769418633499008605373527271343339058234866629879963618447129116125235191806519563880450469011581783347234857391805062900854311443199394307762865524810730770794904429386944006955994287312389691160244183554784604110972554124810260418641472461822659069137091309415544709941420154832578068753091764700996775339683712552925545361727997283937040752292113253533882874772950224046331655667340753245587898388540085764283617992945188814122415155058723975305957669841658129148116427991352866046658636144401594359485226831009668814227709501270063313496935123152909508672013245740834119394317573714282570338847866563300369216340658368922342119946293753968946785880469445343592838295064482371437608956910805926533600125188452354611108394442872782403203498492071955825500396802632100156753010482287914107098263134692749139281143718702373223631780406846387064259210599488110835068366981297298211781044796289010840109073764035502631815322387970085684532973352250071424520658716786633374751527569870316379491290518082432181642096901057254225992386775949940126384882885277862480315545130065950949263607561555321313427295719118315567007036161528337330389395899171040489675734534834131197997779277250215039671656915934564761172167534396399132030567192962666259968371433537318279105495798849576536992356284016460355226379679998374204152834614936473965458731965492987547620449466665731580946772064801798559164008901364997064798842885107323240936933264058692970548344396386479611312843624857577281644784286430675347410580475436018556410845415340429802744026597689370917143730485465057243745720594065405311645829504702324541035278591319892549716853741200771671739561582630764912865560539803785792710880664379297614623467469454060674663240092312393831666705728136327159074835279196555226192758176682772024797081574955573546390605397252722338673399235151313550459046414630335084832721346241367938403212118344381806659924649093084594046574799854329106852347620047355099599279200352296832107662078911783096930973598695752564021989142565053620338565827378087843806238588548668229138933466184937562415628950124802757403813362508743116073835675489409955307629058450238046001678575943284206342178759536668875825785860101795661418712129488013806784402269065740346219518918774393877654931886868480024538006529071443634551827016841638866740038189090623533712375356448782308903625280848747649185823708282457922328659415244189043557736517415675012401884226977063709629625958881507991436111863609862944745256086869167764930995549771760057641841277751489301758273245702553295590743854681545667883546676687461286423221579939267905662820855456842453929265129027273304460324837362448447582573935340099461426141597227064795905674717488096573540912555396429476577700757733378549102213354183851007357760151920633725965356537003287864057244581704030112701516578604576720046924576356589024647546623823964119241845633216391654935772036300131442640265854026339401245349829306614720403528085391325948116275367193465919463811886617529787185165553824061116099140147587600904618693528670787998540256981623440345200561206378220418922824391139962639186014030467799028310036865919158527302347138965657607398964053445177715452299677013132581076934091495713684638842417397333035225996628566135871042425488990339382816909585462931769224782155380351058314238039965788290594789827864803101230565009851873195945235212090012399442646421651765498281872158052044409211998306157278422087292377921283066360983566366273669090901997662319842247989660854559509442673062932141649184273512195984779202877953570200403614666294608710324629899783825553661932274050577241820691059008267992852578955498935637651397255960503435294583449964815219964173829626210200924744195835131824656035303815647084008076881819504458304284791398700021731768135814695026969617661594541438415967047705874228943344603831701671754657691429285037107671562425930215449967924986231689289233128709890074048064910241209078284695085470680205046958176795062319102698223005469530221806901241754875934228930765964901543463122780553841967010499904539049864103769631123340324333909489797203831518086847169140552099394484997912947983976617370506333802019898159850020860842251373632736421070075141486542241441522484217624090707278069654398306432047089344809306755123434764478600499794941360877295235039508834035206343034445134417359031065527092587209302581129818185245154952314730276204273977303951604938825787393591560268064475633707438109645858891173806509426273651183854578452628731375374030705547403332000533878762131734797517443620324899240496415142274094436506634948926546984442230005523972589272930502478153913286816471386270261586963283572358881872685692500040288042659476303750362044467949064216627937136467926437890178217518556023908120048901538152211775580426232422301019366988221596006107524985430122662249397200384417044599661835275558606590077081653643932680926973108947883268346403799721665141373315528819723931390160848719823521993647678575693444973433231568460553417362926930001702369117858288234121241345115999891286297796933571996202210325544078675197879786864319574258275390898984963095020123275205379941034502271906886602118923706224863373858310932471069810966696570329513299282958605060278095037730983973301595187852531033018748344750817341940889475398445513590159237889284614633299691220238120996243379174628261092492477999476102878604556158019413276686311819890314242491698002612164307177098906945598374554964724702668861230977497603116102991928098301980221502375827487289288016685022841864884810563046733784367776468022759974699493644329603352716288324718108935687636209998011181529906454384128722480895289181584134847024024743799356547059143714704187486259650839020393660230962726914554691043922834800573664977816680725071204578967231950987060490270888343506022213495975279560873764546633498153810857323441455585035401901371114154002852439181599886675000807021605541546744397762533546476101135305339046687934473783275092785284217675446416121940938293433698084813835957243276166017688665313026764514947844674121298902615903460858955918313569272649758972179604576741000316283023223915251510508989902330171245214734208433522214138700737912860154588272118668306827503664518242808102132338399276699185481026081350884117372037951129340069861729538740918005687682384315619580440368580597167275621832328738277977257862950562915112781800034701114821808930945900566256124505622276431020439404631066511397883770326080102585546382386441153342128656438385986370819370529515257598154274945418945043622571946660983466064703169112490098663109581900648074178350992800180993622506462465227202331380472528811204843630974757048572580149389733020776413349471478196389252574952584532019084396491937810814256450390526158342122848067063393376769047276215760496244157071946182287451256243259550855743750306974033440339318763562328032256618706206701378437721172684404059218402023206987164660292027522970242354292365786540713829278515271713998192239529999745756712653782766337346077847764953447756617504198751789165880891952261475268572259226460068812904286647451454846011274440330327553927447606801594083813262961706113606604192324468415656813789721967406353968561816815563315431921890581323162937812072301796374377208712023212144891638916172197663009539266225466760801095580360832414733900826163107530656411991107377124563963012201932972721825252153548784746989589197376445015473816247519245850386907726585211036404244849544694787891906597530875653917090146648114120516665544605180800443420901083878152666129189439531752176904560564117876027750993053727490870669939571769246239447238161395412941491118589528553747953867876682787288095916040191960889855899562646307383518216759906852535010542565151086608345815153064668087979677665621985828448617723007288734949643377163682125069092091207672691890196643456494088764537182273999177906430214958066274913175344961682009509506050772581867730657925129188903016862446713752082584528917178214177560302293143906944326294759764247059274008244771735221134799685774188819964638493907957111245087341628231965657597545020809756599837389909351883380326898640843124745949698580249681314188014942482874972517576274412002676392556602094297029773686208006130245999162523728686336007568559432794361974571658230962329948527311373636000311501148500968405994288786074722479293197298486109123076473279527516614027465816084268440253346750985107586294285564063752447210975342607623769952223275513696888534975002042038496422987565322272424786474880639082070762275877566355285042364835794528691744158404656965813130204190032688058371144902342767180563715720526083758608179767927131941065161025379185640084492977233044985472545245103502941604535176978092524038976904453219821904317617048809869681560141930971642127049130778944185799149290267773594741119923592814192206597165742265162460049145960315235225301792332657810535905474906883176447030629741583788078898120125337338187160915418685821419929016587044608600469702957247013601829865078097910466217022966817094631410684712255104608986254933876247128519213714415926678044087857569148342655945678802828729074252681511889721113208125596012392783558450710868736832266664500745515591581751691421736940480048699017264151567081365721069218477504472237498930575118381827751334295341916032230943387331245358273392118452596903940019004600905385440902677852834164131607976442473148333083223513205275736355298543884019694459251666183277987352825292726380209638841188389385830667434851161733777250284906141809726411711284963656810242485421294114097166924303145141280543569673307183589671947122201305842797249364660726241068307798823445400072128302258111941978275402204905726891345935938411584726953282937856442756655606094244708298765726963879560475835311865208863115577875362315889720300633362907246557889376440941785459618009818036634129998449948704231895915041646561305506204190498619531472235955591674863009902755370669186916344195922613270186193592123263533020935645179648301317883627872316084743583406855375999396443628928554484402305941927926882501247798929711424918165576874469108856303799971179082184343206385705324300928823711385062530625637403646852280411343146291142848002333038103715190335971666493575340747745380382968487341701373999720547909991792568983847117257311106871179275024204760177725696433685136327187690314252513726096787082974300464619957753455834935914005736275552920974959026964500681454553376809957548971897581111231123845582264950317171811296521790328650514868688114683325788268892408188473181850479609146356015728805581288715816819010674560536018518048133269521401290139006802490872113083675432585847235693209102659524821645282430608921536601748685609394278521818277004155655150074545812378317336819058316314134523187166306633620346223223901943764417493028584537152030056724437802092413736644781564943914603305738934834441933332513871154201391318242311458944341737577256673279679825553830969443236325794361368898682965901523692556338053968416594365328318008254050509130523444571889717942475837698993124966500645369860237119328421687219216070004948384767513921883517285708748067936576139539013105730449962463240037694485512459186041949074416392646628050181287484927189942004214535962490500522888101122350262614132177009852012109083615920250530537538768595256777066642067751591811987257028405141021438294689426832494723210265132851384414203323618757346242500142818884703384194376540815779386039630068025702990923628336319462103152324352948228074514977085084707595598268101504744254447597910599006190313998603347934783025871196498300621582276976406800634061668186608803537210895125994485545688628421750087493106303483184122814774691321178645862697840610359224917252212437526218941406287851623656967357918629503046044032147262839647602091484451201758340018355202827766715870861103589345689743163444776151651271562549847778815950292245019690350881842151368235275027485625542522010663413843507837293728830072149329253445249940712890710334593910621729301889107670470483044868353070061129678121127362234277587343625066812430488161451132301599959889123780286232700169500740253135365828200641548721521994726783743744809547680661650725651990927678692543895711246312038399317023178469828113168653348617573249336435454957987624396439724637054036567199161005639782446514422056339032210090103291053839476344329629107856874964548971837039038686952943562416270784995736524168542215042599475499166009711059278117571771170329634016891027064244407074857780720657870632687829340724307810803154053515220023457691185399659360980413034202933916985744109235442212077338832049036969899900757087093426880101855232782361403083208016288419162151379179573752341570055891046611221932845148087882498218670266465988035121569601729245731796421558687830455642143950618152156076684970919579999489382696007419069424480693523618687477829681346208682726106536529513083444477677237851899071099482228311295997136713033905182315059475123737707218383647838600532933874216927984484586398999346452358863919640775059381754844815730673366408754670596646847570016420813666944080214347624399013668638893397918676163349286046978922232328582733716892329973436237146661230999995958451087511176385386630333832160565371786199797041574454645802833827734229148630032104110912911029054493924357398832995251172716144323887488332154235519001084706757598655346060674422447848314636472790118174248046112330468753825900212246522099234095806537599583050998903503653886097085650372157186727338796108861908706030041564976600384955321725500947531140213006361099149067383356538514818335317904585202155919245377720867047913241358537924163878700435461175975839693713688818380539288594516402827179989362451916444226065406253576126784909112092934051093083798720411056414123583704542258331482832153294543315674338857556443084484396490152980365100938253680491343062001292376981040359125740709150703079127612823737710473344479998961846228110034593322815608636983583612575139585709727825874588975375313251320448761678801334054264021930628633010276549461954468834957314702346862433657845354229249977624384471352871773249204735644524423835914765077747917808317385751498378871557402895104600744828619916327828818143467159928944096507535706890688970017452325321880973648431356799093815440244174230856521973734689962508013933318849222406378993663276038709104230397581646392156857035877557703983039675239599556379332591861238446394028767389172828579410853461952860387535484864635761829563017059627853726549599003565462249155075942137335548935669226445548773731263570375946196016292899256782957839763951984282121204714130080216346662681682991015397951417643669195959055182316333201872633374855620540529280634567615988573257257755520572844666914505581219548081868843082578859997049341656698583850119554058805074299180696531015307454910955854993876762464371297990770768741334746373170358339818177010356689648979270372466255058590714635840060849843233659338246823441946152187224606312715840333642212385602509397910305729353685384489513140428429943959082663478801647749319275362829103676386289014296961913570131527034042394683320868390551022863214970747630187915995371130896268685959105712087480858896305354613369811586356706975885268900312854112680388898088310690330141855210932620961461979044109042601291743809320554452502537917133583415504500374161539286323305172917235672217470613379606580963075000583241684211146318057508309007538334217537967156078498880179077284135648590455965078289012497049848354927597514021087673832093440167471720356585102462726573218551504002573602412155475618096478704775770976016912349519129800855651578818968473082484371933212855336151158066659732336787461084251483632996782737210205046286675048462290306694365814932254282971796397175601673608961710979878783177886001409985304617731804958788796733861438280414811241038330234052826335577659858066377508804313288940844729741167657382961162584018205282494275442524672446332969321252544586081564137095882249015092530015063608297778115889476474405139965860915554054732019345207240990581697700095694445818621306171411714278536978707160001068217114863299812182127767619585725258647430160426701962643587981644468595952300624248243239084854912246772815570169281754233904963642625382135245904087700108833927337592799024560221759872542461041598711795672242183622976424718751974700841608162802736924515023241052734339195080382493396524964786224753643040065986020885929220589722411109106604212577206662404383401636809774897753855877330858487415867695016800627031732491338229166034460114224983419675635971246406398158595475580715677001189768701962386179415250935015873514278881162962779366277930844401660476746036407222997619612735572194034060435209461169260505910700862287725143943526995029226180735472651468252554882425068996398538481745750635623286000534827274879339791817766446477396072357497506493069503275672579307782559737645521394978519882013342505143150190237491826425414821942534412577031865526910747579959744752224596370508472628318798981040632552324862505781943559499404803347596083665446750899224490980432767238995091120030168679942221315039149938641231473600396831596719319096491956855886849086358185728395318270037224126005476543689664738958673785760702951367778567427145021527191067195521732091572133372323405328926138469091939473919618236823341058738708687319444403028168858392050944897616656184887609903820360208605147952060601843486243537800801906143114251965374005759350519474068432721737644130760883035283547201102579557764999476143012903861322635099152989802953171390717159377346534158750129690213028205762363309125960675963934820184680723964102468506949963370462066719273924454565216445118446253046334871911751020966490719502256089990084973865244978021816547989599007212180397091557664339324108500387676560404026931383652708052712664775462571590803215666828305761885703266848223944397236167737351765330517309525732465040004654906062077067361541296508911387041991509515333913170864676978980654323750017226527512113530864582711995045356248129320124152297329020932651378931095662844199731089602472478675151989414132406506923712885668215029175182883219979987641728976653646238902508471620467170604779110631901340262892882558063485950357711269707485729229108485054718063937678601287112472604339486409847645572073853678444877781252165764886471870733900295612860585257408848994903763768206146149443271023746345346550905551477422962021013389194319588751542736648286502824403429141211783738779774822240188506894160383339185961271865723583510935777950708200150164002228145486533586909760338369235243379491748730981171139657397268617495380940198018885842308970979020364016646868001375636830726223561593099937895359996196096374914200312586288976954067170424993650884420355657611237838438094086452888070488247415500614598383926156977497666293409801746876722705558640146577582765902776008728194818383934634594492796178072882260702507519360181686138909236405263263624309609562078182557762843368587703005041955496429812545083324689669593488880607422251222953674902027933959852553026866248783655263235402421034549365245574137033200249979816477288503094471145710365868991215152643893494071844612359838274531634446296718243319305926059115925108284775814775423390213187434082888163035536987655117684306547127555264265230055589625162088981571685108536905276764163163553761396628593911823324655222980353179829159138486301570732724637272577665635924133135277680675951862178156800638853437944124463060425168975007000979650290121378790408404814443567412515055989400437847612801478181415045664085293901316095970725562546391579594568367219101323176654109711477164762111292649167700135588837644101370589450879669683311762245850529199953514400433015337357638207626049444057307358902221169219245874050460410381789181559836899710718843326204633420477332683770364350806923795882537674303304069910204790324455954639511338449878769912894988001788560686047232340740465452486725392419404351859057214815171892857565858081699136186410339166314953455914082336587825464413105471972491672803406383137530904523123550635550683547275930473682711563951473941355229346954218982888441906158658831214604824727213736325033225656072197551445502145347950785263696681693590693627071101181534616345405904695805815827440915538276477529843403541018916985797497596095562489168813149558230887604342476220236795096921049749374998819487757432422247470641268755211142098492325431171388592266126727215888397975742685803242601874880549129153855047660975149923911276949546354011372548018748865147328485228623712333740456818825531559135090595591020949274422368880300243829781456732542086032772189921021298725708000227472172585729988215380035862425415755387557353404265351648493068904019806355639781398461729159661100405841805407191607454431158598410656776190939774418577435573267799239919265337446719190674418984442919996238293068218906689564133310434027891002109329713812404372949425972231929685029487027958027208093175359535949201713947764169873197132867660789848416755964517953079853559194578509971461576738320432533850350819287233800964409534858081801814972144110732438917968223999641869078799408097093353715982066008281000228262896069406295419746826951508937525955404680880908018416801692615417366998196018850535539437285256179254582972476257794245324435525163960393880133550050916100313516002160448082147868507695578964168358832584474412860532761873004718203344624800815952408551845479648959458620019455475861342208588399530677296561107879390293676253629890339898034885814964805823147486720464793444124541990768014422953658622990875869956409233567821622323154775226158116421645102135630985340842139631675614470967661610729009965859008282716659828086106076112470066569154133689171512364563348275407305179883042119620495715264327753911810109775465896638567679540412201804990121541495236757687858583409704349536362322094185455858607828910167043073871064198575516893861406642018328780808122555442424648935138369807906397306441485065173107376813724044089183877259578951721642595344541204294362425988073319058398297237651253584617179064512783550142538386441183804023288848753202388682507232462387078789929845241061206898239237121383997276205314649343938613295342307349256028620625223860775406418865514283580534748933247522347344762657606191312802957725010112280441904508678476729678540171622697394486012297304292541811248894484042441264666673829049515453008158796514887130503693790337731608452469570997186879915662485554118305358787118390438222644221079150385338116476272565223617196664104812477546782932482418330252865761917185569556258871233309045503838100894758087566409583501351038307808813683497950460782629086643232225912404761917573463440418649734883537525516728399688768331151602505854716036756681766201595931616185410936432564227565696506857178972294619273596170863167440910313999735044119791721657549515408114422778216087797840798606921964225186702907642257874477241536922585178079936835847498519456282361203436620325533742602562234892185326096930903670254392599855147160112133377252849283860648760485404807026328398934303287898243064864370560906575217883265463889520015620604675538067358881944481919638921900464692205374526995066427842853714123376221273193472060156315764055113845709047667123731016824154554377880283679923337042430587303447162941399301383125623496259505516831003543101027293483082925558837336796275585147615576012584295669142393066687834870832129134972351264777358122145806410985341482544924719060800981027651577640247633388536040799201481610789048447399014494290689702896039747935149127309471775905645889837290404469162186962894591146520222406073649947587113278887060942457187072242459704619836332458773440860479348429098951470896160669036089187771142834784864293666676953656171449421927021455543514155275145851809618865662988270645568885509015271716110416869406935376533248764092575733635603149435127301029097422883026983607775450601878475713956245110267624656967984813796133839691662292260943177462763513790707598702233872090334878031421548554476188490158863996361135623409164848843313778160867444284612347802109399450700155974189867749734645907472089701643340437242816080098721179053450055492325634050809801179393141985949501517962575881918579315722486216482132614385288402341050822988118176490860616270024216274017423654126130151371286642074260255762243174047651530097296833732838896320666467214194535140532617941060629262486153343341083178455629491081167105628890705030932885803133492515721240904300871890284899314947564660214252067020564090570028401737356186913028029555327220332443030199234593709180744574934668109039461326758318461016248173030108964373702722642748877059201707067805296090693554722862803151841376449741357660659030221520180713198454872626592832743717386309840110241450127965069106605724784785993100561595298213982426860524567496997975433057042790018676869687580721094027072796795818432594644047582720375058555109732285515634459909975477606944343934314019696840174345493715068571675434672680746837049629249579684180979359020058700373174520642820758016182383890435409280736504755570974589557541028956677164151901141928688342076631877798672807304029237988018302180392476068231671400176829988960068655278518091798488816263383575328043985400337370306464718799901083421503055225544652667998759525022406801290663033992651978005898703113161291281189262478525794405470247718096180268515466322915682070734345664745654648884456717401961519922792012836461583077037174962937388440120497484880559380859090062346866072602470071495471758672736834977755491297431208562919858650180556108481896314380109015396944672499506100981427044628649480387871470382535227159986984503279246097171506667243199016894376356368895116424585700785649263698944128386452176035153640307071350776794252207075878703890038709459859368019153574467848375075834497390537995575031240601399200215181403206801373326060106732567896623481953249147382147912666973868985645107443490993575129662183975875901257176270074430986860110856483142076153867401740884942878573081195812548581750368146896123864024275505577759911574780215980357733399528167349748238883681226570831523318374339123068471615714651502559760931587955162614909303901619113353886720318275887884734571623105459624605977809645903479584525458901381545838241037163337635937731060621845538444280307453494724299199282509732283050280882140761479905250931488451104525145108772578854983613878978828127803567145419257859916669222047007943868072323151880244065520861060761665078477681521730905679700764578555805860008472399351842357966978300679043489049091512981433199632146941914712772220399288314751428928336982670906365931101802855473698181387282403457862235167947991775655103752519344158512199084933228373842376760908493880025330440563704528064535567905733675823900963918581749777139857419729684183454524199370869425075316376276673214765228375641351727905394716665208014856548785363688460641555108079921873015060045711321939215293102133364052053018570098567150613101290170320208053557491375391266934577621661461907284834670039711590984399370459254739105274139916341319085281496329323198237767912730806377506298751789391824844984335914459394621356231577557211750316069287730286968710706988671920016696366526887679567127434821390536631910560259583557343155625202875396568097020642342161853530464262990676722089000881877314048962674890624656834711104435612600919952740570886835975639169254469018986751582461147417460131306019652253815098863236094362760634228312617703236354142812020486258316763094390669021599720306813232128743174266556225760836412245174888881198841621649602207540790097600574149445465216252770377510178052505606125194601398368922812513377890149808150757667394665237824277343153666177988519119538445905870821946251700875189048129775344936939517070369825866526704114512210669503475500969536217164349431167480187367654331673035800894337067121787400580866116699871904731733218830704715327983234182120172256953307945011980349822983270772894493922571461143460511874867148639818110976264341790535238568163322570081197586873567555610606528986044846560067908900480598728043865021429974062027294891814424675943068004019452909738699789296773742850219615570833306402966828171137378485341122398823123562767640000791483409828725409537293838270468559609177567791562180868442576574395848814988788485739902659611097529867441246372241617151233868769995822457629849562795104514783082239941869473396288979834793601961069877596997838546924675080313105103281816639133524101211961356399097855339796941010803859077616910169078731114027222406490019379169875664022233621157235401701992008795507090469512632058626493749327206733450406353202886519531413855500243701246641636696519340506313198338765403109399542628421007650316349777155499080023298042972084260943809057009074400701624954898680855324275872636764524752765066385662296271317262974435090511838201416273418966652262829409991686240743591868599269999647642360095155766932161801465782724964046122713314571526493878093109605275501601872806330436117581119173497027816335474906214714930993042466646966760915666554327736059737574049347176255040495248465623729252670149585920717308003800706644017997515919030712818685047844399494687510449297714136652701943084150476522956925568405811813318186336441982167294710464389692339534171536588433430566357249025054473650834167589798556320364866225200294472123610342981728348769155483832453653670062010864864992909021251853268418917484532257336179029318443669726897990923727726598772732887295634417220739499354254025857657405224744297058380763587351596060501435481523951170056560532809491354002426945529232653393588994252836316333160788721658718662633785961767346413732535362649749082104503956912614804837279160723455121740148484426535861436819192064545714121246897113320348682168282386248885047655007022444256165864992481998332646707660867968218083435522439759531863106064998617552876777352350743462345698297586979465864813344893709081734648616204158453304923171228313264383964308032846998419638255864499209005804854420453298897893818308183551440495498342375229355316823966811318943512818073984591205771422464355102898539545147679025354540749966954761945872459322716866656822878836053512329176778388493772175371419800416197973740191747949853196492990267338091526398975955198113211977916862215081713457978572705880465425011790463732022657578415401089772859239697785811467946026610399509814734539665855965273811983139715562276770939286877018635868301448723112822206624613949168578214368896364412468237979140429572397207704452825040780027871539778234404660374513371700351402117538208599519900455299945005807851077409806236312950633390379549018195292728088710542534681757639024113318362074351338237369218029868071118141365314693494883366420330792656657996783962978560669245733320612312754195252815854416343774971159653214286533591329288043444736141430319923654735774638310939580876163673848906115034078020419972720549436059146550536955885733026370076873846989953877708245239979644044904973783001918775203507006994942719615072998833809624141264613949979976702198046540523484636205698538295275160026665001914010155827213421954707226424016285153708749953565804515541292635886944218424834647487527582228438394568531096247366157134939706358832373917555281265300586026970166467851576772854837423787858359318897773824193065326268675499484947907813283077253059277629105609800871016684326151002157385351467336059978919500392857527724739360932295505639744176716968565485482411215588658433499219673913923225310797424264853457416488772822958907745486421341478473511744810367302343481745310844238240630564126418039053512074457741334672287306390588518732331879077689803487023257819250704000752058661613674928946223642638098204482174299283572145930497084452563630339680148502543900594918994370627260471111021463664413608116804521294242643012345984698908269935530130897136204795552629287338987559301427107804439525662863922845575126117893504878835651989050986403014796369966622614286255823272814585210268324284308972043967329362091735950896270118430925923830229850045752069109452492924586631885791592345338159824172996802351334648209551404865703942484640275451050272445517304462187056394651693532322918715892665428822675193987341758736672753034594999351151742162995948779804283722380257385523759326418911036514502556326244467447769708276442133103050792611660569838023062375628835562644733235983181123091414123918605130217195396752306112939796587206083375368933767860800751784233378294908606007595907873458494809055216722588055303240639308582888371410115828405764874963272978748758405824900452392380372579595584039076251501277743437468032905941359028004789962457349607123117889186180429801040122389808642533883920266521380799012101464861688145590023271005756077184486269755160061518698067193306389333240461620815761221231577826232887415645223351009273272269941278135503410187412620090808678033667029721094268426661338531256078043202516576434177622307514431467958428627283037038461254873407200438805412591935073783995826395315644169930901908927690449485699012366933567599349428436438920940173055015244057733101805150774205278745515002039593090360017553500532754658881367423082752113552752148263318353883446084400507437071173254869566819107262113994385117040584250784180431452899885924146328026918585681706903491146208189927636668198893326500995244348309160543179451729196179877229306196739098161185549115122488518717078977531882603054292358771659619622955698011497318869131852692205941501925814029868519605898363530353048314781664419525452449494120864920898087028954357782503489777828633958318571578572624229050428391318648215414571439498939449639180770433162440462526503063970627538400499697075053865630570020625456094979707192340136028838126123962593586588497449863905716268449331559986962215422697587501059544359526863251543132620199961766749643268858424695783631928401577900215855776266749796318879348090192156059634946601780541914764722513899027566097238780141230257002899191674878173296053339012996678193724168854521639099130529010747841453947764206362184621407287139211130170408239087699824134671446679650456769477108955403127213487037446863261796182529711821943593763406626022959478478804853901127204186811044390385907570646692542429000121092337294470531305021569048752856343664723297464746289310452116090093496698493610416284468802459904712916600306248928138106202070885467730792527330658491965090670220480544526394309453244497387925818447903377368311366526994496487795842681884091754323489816163371596809607602453386371026054638583828987029197376075539555062532691704406613603329971328017099526948191209347529808530108606859841642296433915206933589054023020716707268015506328888846028522990114291129786510798428115451164195750259704135260570960605669555073653691768519296377725937034124046576883065198946148510656207681987296616073007474147259623124091815693384912441705334827413190196803022518278139431801756129485968797747806070059883091806076929150774835446389979314674735388369106906278523918641459954779847711502503092826327204748298979503980457728726589890721138161343401146953007242025409923812072293592351268134269775539097494565111095839076905321104228491520418057318934701930244133211334460034122627634784093020451309920925807336049866162214866705054399587660523232824631870148553371344934471223096354153775120681073617636568088534105254995137796329753809142273689782807168650630141983117564371378089510658647991238501113356566292309265866161091453604269244006971752586335525892413089742954328332339187716897194446136555962747139529335186470558833505913185037096843948883275625809197449781576211251459933719126645584619008253763951019292076144300601057382466812728148005706058508622859583439698051030687544822264035698784687187350867510585626937072827771718883771198989018873829714216289369841175686366515031013968015267473242786015355077266434330984946749338215596932809285368068854599184664633671649460278430013822298470365694564772668421042791247468337613088663480532514713923898914796699703235421587719909784185735593244114598061116787412963286806198012490317968148483864692959231625750925048888963619322948833256443489554052011759664935522829308259943694520017267655075368288500708240158863986271751685553496925227992947165736687779452898785561265846985138599093032184808357901505138026356534526690347131978564606159363876248936923457792366394609245267073192651470739174939283486566518753936543124888029524434576191442219884754959382053104263903283892958024503556644003484477748455130450328445117601761855922346501577832821065260716090709855243249787016573040735427437088922856685567382090924075661938536252272177461383221117308746191009106394338598279532497159051654399779749374682690708855196233232201244232874675900969464802058379004622994761578022113569366423841825649315477816182915125611420378328086266137701839989541031121254723270240202295786997191379982307013902656188111573746788352879199688110265605060974324474831777678185633859120617704482799619412990923726110778399917508954615641598421433917356065496505876360225477395992584419925425005109591652758944659463469555619510338636615626180007367368901238942894408713432687079564250761379527396805285621476505474191343001462252799653338821457981220786642366286805859776102153225999219571401743649439463989436624063479132218779358515501320523086879013882142193253213748983904461272953541550047625519019938321862634263837577715114038515075111689063422019256142256059591336228119945229686678063446987075076338192577437561819937808668569933152719844312024888419565366286459667275241303296342261748351201156926212316606645847723267870670323398694657726327989121628274884898932063693082526031921012930117032755126861439708651005067518087615139622732254191078763221259348832389800334862237457409767396777018913556666869321562273737817341347137039322998101610483699684353474788507764612260146893699418187948563984515697713243493112911367119626843059675857499238394874932274015571800295700195256809447918158146911194901108997256352983798887860648203925180635268658376433381315677905456305428569644049472615166833162741425617169951902075665872913963792340131407873766860634208608496343469950913408741324551174517917808953642971420124250986118858499507493829223490891983771409404822153196466348200581581799802576483364178442387680244423946908697439979567561198912664537582034201126419681006511191716575445130505156725487639098272382348308195655848113051066730686851589682023611540087435180715560377668394068760063244642534666139083204768392988157454245643115714097019677645340100449108218406873672478810746824531960092277609882488521199914930705932658428848166659568561751383510516747507902927391616730843965616496518423439139063631731216975103126749227881114750715140366086919900022606280920598395363812461844412111885631642602023096900710895427384844239059716526808823432294028324109916548188792688377455309815452973187337155430853974362303176463898308944888575186003311104958341149554490902366846587148690680429051421742267046399745461279277537213386157716959073968548313391993705816240197212189079444692711875905972666762704033161943636696862090815782320465554203605208864221650475245657915068533899416532537320442818609686099792621738685303631518232724298389348993116235658287216125468627750820168575923011629236930333256561459019056193094801515058059663309852865822076237631256375023839037120663409768401261637731386862187306010396334138638932603155292174142944526758868585189454441550036469697054629230727803489887069500005215494683820775391113196896509387840889677314645939590859015804181199366920028763455555504930162326536726749028000618035007758666610550022168681082496025664234499027141870779044001420210395720661150559567560948849636331432095721280837436655540508057937599329035980849726415245057292918673016177386193993840336271204347356072616679022467773605865362283400425568301663548106878024631003400327733931546731016890989996872779806601167847541467007875605021496600665393853743288234616113797183145575247758567073459877453319479432270674921056611083121772191923154571066703256580726614272207274062683693759072041312777464737960240395920861356358404188510351854226951318362558054734125174651992241467365362193227888685396814372064319357058072640068783844891996628844382854113392551080771753899399292337148140570562662813242753342650541197758624196121852163130905176467239659492496458522837883814621662919860840540647335086869480882512187736073660203966758660347813761657362499472238537642366089463784757364051927836046170273392916699296132903415313224192385754052525839765547619796400672530834318637419512610563408932217986393237669336535004465827851579093549253645185977356994777626609030051442924456636312825695300525466833225662986260594543616665822028862680813386677297930054960746069326224616818187043472256770357941294071912234938225654090930722982246772930752103039450807781221123531981328554168489175522124192465413613687323969279627063682607375625217103581279647054358236206111071134812893983275962236312228068793239984453914769383555544993613539791826612125850725888974950678924567208971015080213085110736061904976505598513900528077069609399763413945487499474108634170791331741446403263825579474793253975359714207169485381972410672829623339153742887128578583325692144514023094454399639783283766243988463576062919887112295229624571004596705938212755018052251232170795681354137011380692723420266888923843193728716398535941695912728446911428090120078021465824944159012817877996090091904476706412069710149429973638902455921039176066765166023297003969680690564330868096815784251918752633107609027327080278879102379069996998555995753955915587217540179860198957712391780846115983219501078314750709222801228966907925594824642373773213724940472208651473796766862745784796775426747362309155898047601047569621155524693468438697392543114904444873076030435867500478023055695736943990152449877891511715519224935073956101724565448975234117369880425578287813112974257003537190925667496395211533892805542256262745045841720168118352456589326100189957029988235857655718198399663240382703008737259483195043552324533505271825694390901279509698404470181851124363380983532025245328080343498630579840857976212904248711807196928707656100446169676991590083191345665238518451296418176312490294981806233586856539287742179621340100558003696710117407406248212898235028531276661905737671354119937219413180689834359352202191897390020756244258470516375384792754463263269688979347621178003479157376472595735592712600626912627516050142325877677258604600103010844417432609245333361793116153804045680501739788264256733872629492432921708830454529715903451422145486045494095054335671913922113021828575369437819644564596323993634487864339643306000141124930664900461522901832732604267001652217557066263968415343571904578157392696103149676608675084357677775842985493069110989175840314894605099011680523937453542755948922203471374261559597080713622927083405320915199697082879451810798208415819280346964297681067890894867903115553835018473953884090943019504779436916041220224655580854566744313899732155515855566008553568136006033384890492194975658008697574043421500516572951366484299054361723954654643804165839792158071920824507757933626032667416338366972149877365519755125401420006573444668199974600986625368554787662793240591464411922333184520892282375309985302537381810725722170844063243860530613690039359172527666209274779994112381532062816495834546395503157955286553131543334181200371854593644874295667064546027874448984217745319209779902358625263952079679426057806081716003912529338202972120523703224268862501321452971625557005113820596880468968014508289782835883055454582414624220593936656662719722205370030288367787206574384143370211615564000225968120983035101303239898175437902133521885680856831239269229410246818388966120093537377596281164522895364399805610579655910381343689582509872950021675041348724250309645785743143287639258634247334252219137306233618207637694289011860296306512675924702175270024262402163857152319705887307635795786173895416708931021192961615810292072396439618423851983314989356190924724649795177446283497387246344181972205318601686151625359663826388591772734884605911476845414504180991336727198822195357870453104477708008877314031259663128170535413272240261813376254332277207537158125336406279814674239054941510001715274325925039530578165823671979806309999005448789137298137477508824579270276435385981727547400291777912215048308159668839224637694637306867709702715391766809397806306599753901204458083559661832103978644702226758576758725810078736304069450520883459326819868321479003360297584894901972700462125116345056175453674364168354500743686458282474889791304207398458998367507039972395466212648003192252498954803146537529505573386699491114777407942725575983815761956363350571015331563547318332566350293606227471266804150139758976530203129277731412340619505787882003108024484816461656569157139475698652424404257092788243911204157409646475612532383525944678839949290702531073193726756377799050412710128888931793012460329185071830382095691480058416404029999619522758613028399258871151162059692886258793684183646992986899163890267202202760469329977406575157458090809147852039131040349466589706400260391369110363147608221802918622643868762488137008699774687981218612679738031002245603962103009119895592154882090105181962292326280565387408175745736639872641385625607384080648382855589086872341286791886972778411133124177167643100163182209982274575217736612404914297228720316926564831752534896662044788332309713696026896324761371732906337357246757464620654602382235974761804748789794962996148111132056388221754245699733194104588347062138598136028466937980169202171742093642885297121430134683575446833688592529995501010621851498363190314502378709895172363716187090325219450898472142930366745074968765189810665406960406265827882089532112134917813120726167393031721864516217678933929451498344680889937212842375340509496033848113030734019845580502069859016646639589260232241842938840795717492551852217474151918360625206740867821257864213012360083854051395953716983395065939922262700271763365782117700060501704678451043053377174215883619750110735487654374919744502463351979482882218226586726192659073744958809010382848241181313852274711327967625579924790744381835172187049193306119271072404247510971278572429397073242813180983108209721397738084584892650244998518509330370638916577900862556772562248461511845740599481457383446416488572003812595879257717441707062080094835680671291611164184537972002014014163820395836952433317301781501535703089727683791964770641987161571690653279340630048341503617006716219686687039485465531799376162461897150374547530966730305114113899117496418839698882863575983749415117314021925378061186736415582920078190244335127621646070569116057802004041411051575831916197786444950915043984312426283913901798920898966039386454323545590308262984160409781438466060517215745512452083828723278872104224481227481014478744724520239239296794111293108879301730974060663370232082720977616574067452922981648314331035416878548485007264840262292316464960232183542798845277187351358097936057907037555296357738062584018603775399203226081700735131881827795858771690203574226567341095181284731590568324862202327575444992653730904918140827096746309731008868596835438823469069919481127021339423079502951961271362616723600568095986368058450143851304150825706651853755803163960181415343806346025329927253587520943378392155850647904884709490295304930143662205248100194467903046945924980087154017344750956145189773677139705402297658006905228558499702749166732773977996084665995984616797528290007169505466301530973203498042499749667636829814593868010534076798036550192093633793133571541015426295040763174684234217357390254388202866492320331179055423360744255685976750647921259836422204379068349991798635630201377773066008014944541342408361218594874680145606136914297795116749547498395055952141817150413513043978359910081321210610995345589385597863824493361533656695474431854740797994950601335820585024096110679355473340571853276599398980735511883059237715846410240542024056982709534596092735195379405618923091736766952229052671985258543122947442515064974705804498848117973810858669803851403405871058191877860909366668754262158408298552436587616668378681171275881891479649066712103998414951915050018107067121052220973539040872665775805701742180491825800248012585201987100991631925766214559451335014089043739812725767731928080431186134634724515315766814314581383663844350573240440337728713429525382212700352070410105055875739033706906463721168882752209242252001122630353747646399493311099076212937287190396201449493127181475402074617872510338328858682719792237982290754657324513741239152226372636327278982115433578024147327182081687938095500969653393874185438972287670278781107775376732178897331680122712607240212064797119510559942703118343070586094306124369668014267738921602228492459381913075266667130334004763925488595989077818165182177140617602923656474577869017650706525275953664835496372168053945289421806591124125220540426750047939068118179162716424776627794490761579586892032210783979557505487397556985264232666657751993968917304435814689255638757034857227170899342971570038182180971259237554376049493913205362049314059056807163732689059207863698662521908952350095176284848741997832103587736675969471745656253707824105020067022867120967142553290659629895352660695722361582873298189289526179140461165887092802192233071926022847271541277819537648164859871487077125743430442232757466962505661130386468746305269028878820445690274110605397101671340227362504598623396143379575230842602603663828007743848112989334438620458706901818403086526991652006577924275208424901590178629072886946739509270727833032229011868666204341965251656151887972920634196417432664085640490046319275307495705845796502354335871377792214004135240669944137103906469540401626421612792395611399313072630115841626449600397881691098453440750613704081166821896073589727212296121752043325642309043617164926430195539244034951666206206217524311955877651106928321616423468135374500479471620032347933070666541086490676697981520134425435006380668284459467466891554426625986724116695181607278585286783486219779382099544634027537084504729227734795100060179676028373166197527261636997126327389934421661778721610541328096502027073889336895509470836618210143696250273767407049151754621950963742953538656223657155494059074515684996214579676310863655259046989605186582710515060215164658451946570165616006290690715838097740582495395458666370845156885006396179279329263157314272931842440762479488918740910589032104051273475171245296069606933724743767708674119472476878442589929810776634367661595401218858894310934788350152684334159446322491847538495134554839342187835216291575418907168620742703180251199437162505574781752775137581992109874420258298258001385937110968009237187759193767567347289701467057870051751344281030072276083878505369571889037554319235534277790209974083619049698688867237536452034567566289691076506430000290622354490886778115214989705318908797523307090448072533812995717641892045038237241157046341380882927277294786288212681480512255891707803958011108159540144818144452627911491576059026816458774381907803417442658706844854403050568855531961230866592996084089922799493865197034492896596437333554406118834915706128901903347613761727899583300026369944927014749360012136516722565879978663116498367950004727583586104110843887625357811798235332998001103098573403749638532311213205301791907933395122530673850826786728401860732080825334886993352841166313780567543477692916211556747535337219731884507688189231369814985676080690845154396654992747643613735001040649498755449979944324633197976231365731090347607563668559049588339447016386112576140901973463157143783840369924784860726943533392190570939580788891718744961093330910274880041893882881175067874609352732570200788953462125994467839730110261056712102818864042980329200045008649866335830215969998742794356608157422690981656266847113544995951704948076023695505654498508986176499476063068555759444623811774263758281850367230873171130604704535775412641074781989431083248451702187567853959153632928759525261725955294377659608057211169083633837050539083688962024355864134786497672916919122244412318278458235011914443053708663104633982900056664696310452841738101173876577982673541549073846955902338912779584707288119994069297452087610549489980999982189711640859829073670183874545794724931221655770135091997830219820613661390840208838083223419949621039364238921287754544250907404016029268640831461244555543743733246559004992134221414941396276922075443826508281022323940359902406552203726692324046919591455721442013621361768232435611182452995447320998250979252707773391667619255202935487121661965590289181686300130011953358979885580087177224498151716639256340855893121508111546488003029508161679960484037624820219877520224474102151804511238622833211788372056785257091099266116524682558207782239081316610730517856094555316286375401824563048400805390210654857191756900614739983452416910563564956179019940328568270026493055670641923592937508776747866915406210018235389285886445394842300845377506748925509877245899309256755842870074646000862593736971332287768999571257932571482905854819100865096258283569683477616356760527017887105204221149333289154634968769209401078627979951254686363708256378618012778913245734364204275480554261426313084673001343289093427724472841733244090839033873102425257149742943237039891945738787612837828241205728710325618094410259956416328291738502211699927120557394779588105775699536470352145192054869046771952639550535151232828181598386248830624743067283850905266152394586181757726392956901472545590996441306736393127746814655206078661894248032461571251793554172508744416675967078996647983461045626097523740359703347288918048191018558534693654173311085222854853312081092961693990706552485348785853672296008140461314017807104874458120296161941207819950156389585045118790482489731970662686154506648867364377859494985250833152708154530127967157684945914014020662682679232078556288257835065383320787679102277914897722686175201304513789913890397677886540646288736582042486929695057299190908767931954771230373949773612687549733108961025400609611952402193199232613273135664538134624995623268774831721515316179079649537171118724654817658910943255649465650160682478566842370821956877173001246849433540809411997624140068441708945705304275509657398215026211609355378858113424886163406736655663523085544203916821788410910968903950791349378037221135651976725331750719620347435616234295504618869159843594564577284702070810369904512265112209163133693155354621465780648522031800886532421688401367596182424343517822534427758667153994870361762461503292805679095171011199802367970822018806861532800212742452148596715381108918511790600886303834854347305208890151885502073125219761071906028748253407989661695816872556552049210955383020610508123970399589894595753475366685080899107106685369917292830193547791822478330220904254902785853902237220330338198659365303775097650707779256167358033096548765504778740547616521706608660261383444089583671382220434831292150146251258035444299312007475221034964826514288235404074395147153225909676707170400920366796571740261400399898987285724155140442782391660187915125759161116734954092530235452158590692349273702449490225958925641185783612270703994804906191337868609500595799361704861647258909663992976892220292612734215535125110653725800907356963204235654131860263378159574811030763047120327704992990507431283625843826807732936971145122298022082075648981816017534193432023087426674664451199758834259309310758613465434637227064266824017148932778513927284993120162005404525086321061251853182509296970236095592297434224221759687810352721143142786998961594733116752785311066603699047218187422935980732008325090351290448344753166465548028892288109467019093053074194420892159197016783807302488261146510122480330125508769180334817078273044408195943665954090412702572486737053857472356601661516579776449679141737675901142851442055649891008404573172126023283810159382065582212706713934751071111942925085097035379924151529836404615450783157145217861558092920145940470371026324039003197839950631573159134618245978167701688563167985601593776200947503787285768506817203967988454313989809006199052945540140344360840952799808146482391364965229315061189378021480308939644663924434229912780791648368954209934040528183970024871676775993332953079345436462887742353228703994265588702765153108231089346045424566113407450332043024160173616762982839845750809311455254948560162731376651727848088449895096988330840402931376006489808390912520759489325036466326172022236301220157299009296935367453662245964456590470404351682595593841938640260563320495574888392115043541490214872591294756305185131829755778166871743036645175949295903351615579171320948864748907747890271698586662884959378913666484207190194164062381771918044750963092173646147776513541360667351905110517214030242108937311347935377259642663479426735243640158204498795179035506743709653188593784353717494194025781122136528821304503302375575496524980166504288795133467718135754367080780172867286871637173132093364840340124975521195391035873280607677399408117239858108392194894893438564632895645046921047016841846592763742638341370975355231774930834115882898059927279401731645877048199405229932473232892520525306960543791103936195542767678524830884132658819900812945312021781658738716060549624522743259334744468466542563578274291516253810407425787786120928025929100771681308190221817042362891726914548311008699129184592267076268878380892254602011442948830208374161791785517670087353156678414845303104522986634956262936146971377385023251519224400680584175254186264422924021417410112834435091375086279088842167334173492472383358440124516620740573661671401447119207529567028177676664621038153709249347670160608204074575669109085970215445502747814894991378644910868736837232083834630407185441565661542660545211533188719719476412688674695981888025811156900442902595976651088692166710224590154911089276317178341627335380389548187940806765650381702959725909914010763955481960030242195563024611486704289052219480382645961260534477214091773618845777629607323065184869108504755555327302549119314567653800296565852387634991585840884325608967241675030619676350378264078931779720228693749992567956939942662185131943695666381119629309087461763517846617737640991664290575593300216560322658134232842795673021588452790647180307635706262675526426820583545795230476132525813261698017530806970136664637740377526456273524501681921130576459163945000690232018011665812713136962751131846267263161995909285708714292838846979104186500801606527853761970507795687271605306376466664475161641275681932714036150527746291776095694827771377141730057575575576447083207794946901085299415902953872842085940695525584097036141179943022987129111737164209415325845661820838216607606828713451915016857400725239396145637079939759537487620392062955629451520124381801190165141245920336689985108292404964357830092980544932567301196245347092738798348387924510708441097837186731208570128954993178081272812417702082104490661487618590318775599705626096736833443624129181972100904293199201925648704897695076869847640007602991278660965273732593133376920532076257431288565652988709896752245380435529812275354868701902408592784920509846358887940510820887323291778973450912711206412339034554832511458143628395121011076911292407117622162659859282006701696312856161259411504686915310575462506522170253048861094198347261234482542115353018526426382998744213394413198228698946726700454858266341884741873024275057440450631239691229613627816534730556115022863646468205062203048255373545528219990480903589070582646497163570414712687333550363597563043401170600643666125020049334877791346388869410640457413529728413848037623177483855012089635719499157104973358687456041557155568817030777529719133964433167138780653403805691808868918538556168487649778624429335508504693446819763641484859782730742217753377638383133839085121893616552082379407724792491736183738230705853967197053356764378981022884314435201717584021694850897504143568756351389480678662626444440507628237809465931534089049214310754628372955863933355406851770244048604549251069896765570995944835543516421206425006905593077304177767975895678276220612481868290381402569186466887887347085188422856339820029108727880938187390050975778972420117449905226219618303122083263951473379016964217890516818407411397623731577276114359073576138872820282420455051626256579885894284068649299573489962306982750314694282738593563774380830992091208086909445614812235237279393122345831922202627083072146934023930456106337287969128778980938956428260926948052927827155672300642677083096855459298714735796095155990038991819412762857069938442934042629743988162203106649901586301594120613679234519167555005682286357761904373663968407579242485858439935315847992159974869935354730279139898047197131838351138412895948295583395493985118823289004364410760815172281422947861035187566376167836569637997038448239017986866688824755520056515208494343330505165323171372926529037127558738245046286204416196842307591797641470649019648331992201520006101969406455512869089867243678735254923172671202434433323781690117236001227298968119507075121809289887084354411924670598503321105285224374685637401649776234585782642473469884890540225842559667985743800644741430128240034472880307728269398406797103492926534781981101107829122612883752902340963395591791513550824699798130842851787425328889175480667278667101704746324223050282809183392016276713044217302132831072307915287397343910224718205123874874125510637998225695561579552127007805902385129068225382915660146098826720220084879987941849243872102107449133403595359759306405253875194529697875631994863708430233903837273303540037898548503585913912250675616108334394803710940794017648238915893446564011301430357443704963024180783555537766438366454433507598850102309697934105698037089455293428222278948675151139958098514808559419858299115984045908267474141070279669862843923862024054322914040303149079522852863776572710656771019152332637662943895859930839891546518503627244298430338212263640848553587358530067322799843099002154095200661315771058830381919958732149193026196094372890490602863123297751210001864973505209990868639448793653699829947175891499571219319605508330598986002163959948543612253963875566817502155068009713608447530906117707522508513791326615342110883838089166735346154700001377299280223753677536639201521882455364384738571533730753637969848749543430058125028053858044951278729928747610551703806059464180318366767771887939589019901552964632238806188279416773743948639579583687511485075589164098394934460013659175189593179076989262731691578010011717084598157642353985128023113510307920415287987746807057559925037299682782888145987286696035414966213044873118381666205070690940016616432925229501426700603451444995899410107461848067843521014945352240294281842132310497482884132920757105510861509547452598919452944491240865662985772834903481320084894374321219943002332832291407550162542708045693426994859302235732204991796555925161764316663699475696795141405156467973961086318735546034470264071990499345521597032108490579092915487767536860891005432081285507613755724321272913894958584261418557504844820326991513325952343742769054533320438562498403699210967084770461211982628415314980364540757509191589361761834652179431989920078349236551576510167456644231124889217158987681953168353911468625146221651221851450329646919455292826324232524469641322770131425198921501682590605644225249445359949577995078542761951235750869277344413901750673327443058050653923564348387708013864131756911088012063054772199757462427335858222818837753436360292163096584553162743320252224324199941510245241257058108737553710714707903091593133641271856376681451908640713659994831783422370460681791148711114374270203767454969089496328252497722666227186382892572920016460453138593209918286071661828531898440828071643502574216158415356386598969021813311887646714408053469948809563602116995151167900745757277750359181636065224695190262874843077568249109353330568315741914619554793461755528371001352880596333705690292712523720647842251064122568851724900007467384720358988264883917479067638139110829383075677702909215450134014260463430848140402535170535868287994411396572915308543292745235159630427359237069554918102241197733809700001531114053746067766378482963739579123462156879710397575322004534355016890125655196646410789303181197486688017151732566600178703300236304478238975206872378124783045283758296801499087189314747821442583124012568787406918533535476109395330946383661867143406382275256354146899261074441588809390985299407736958625756927863635562153913197062390086488552824905209451330600206448021698784937940873715913588819089331640717700408074629944941860937766074447187256160793337262520172684717274801652614111619371615977403799903644233043045655501750104638167180588609045138868387513717499738212137385654880473710380273285605347749944304679915438412571837816768473172274985810211392496114730875285345927263603695493263926999754940840968499875687322144090886774181993943395550609298401805819788494708643330849817836188864185062095847248215752135057644931899562263856325853389396485261329252439729273206955636559714739344387303329696648255223949937512641361473421103984995719214990328590229680278928847717290806706972291956213652801940259437588671491164459211012255746008429172866881449848508237260021778094603617642930408480102269831392827255754206715213527575536268214747139623339969924719989952480881062822303586336798565660147222564264427933045519633594729469548577599560597920056288638903946030469335053299162785241295356565283381928246055085020714718576223947466495118824704395107923433997079993824709033915804005739510069185751591193633508793444790506603574883611414469589978675396509745350663798914623304767030357660083297642229163444053449858230767059506343540335249103203742912460530371696689493503382492563117568511771819478474652146880529671085975487313725813459524333804307685601169250954249497811615604248642319007339918701845078486344552410273377917726983428667485027249607407918424238059523499371053959759822710173585517461414833473557090537643552880596936352786717533337430848902738210637450812997524470577949448813191198463294851909209759206797785534857693484362035827027939313156284915912556759669040484228587936035685204564926776294460542904232091143056290877377605765596174621155237824367409452632256406695996249836962664068462018137983683673450310833131582362059504243999778153782571801317950701038669564484351405213184472087602584681644737535547606079120204830016047138567786083658492696742429097208085426395891705891631019456272667912603777164537131206772475877621479298655703285428815486258060140832591472271820613305574876105367694431574288122100036987061371793433364150917549981869348863111479015689887797368620270867270424442472721754688789658086452265303689680658372005623044396329555964439444596520237460502270891718717437399637234250814003788397377068018513229331162658391187732443269069668249679591795521650461342215688720056986951085210533604861168995091142141884048834497808483519652174967365643102740498558695587386900011871927268388602317933192155210840775434894665368889331377919343626913123419378443250476370461482061089958004980619735845680778390659252556931925365295428497971658435372171202693257103315408611091558362552104766964539936450820690365501634105661535922818717893205663431228760701129319899462852836736300298891900477630932083124664946149694651507708327872277282374963856330334247048404166034151143466938377894227336620747328623137442146852015860138273199436269132001605290261167379566478731625027364268731968406143816485983356298233088297391964951337534474872909075965072213530195302607190559600598963071961465063781342731971203602817119015128718659415589131364369417239057904353628528522182630839139787256299286295255764844319773811239054364316993822697994217469860398795836007367292609619863156410519838819675207419858758873161744558883377391261629202826728356645395783555809760227671321727730753813350995765901853244831673636621252196795641530105302395447716523696414759147485835298697320175546358822981331638528126251167868492422528890059101062217310860242378707168077131283483774709682438422089076998275066702112347150601259097197832274601225892120891283394154494627555910858834004057238394127864474700244106997677572656147289044285203345089710221572838343499152430249492164063423525402126456320801312667297878372973221428042305854399899148752765922659384157320764892194631287269661617919440459020989783276710547575407454259726156493783845755355388952106859576954836038823257516651457290622280368861725862027846776646259861419934534935757430584457720433704506585062412819120612025917743310296444646003730726544458237420858635896012902856196406312064966139452347198062826280010555151844768461481432239815268862840831060012602694366770194646130778499068126969721211917802231429740139177998802571293907526177996688663674262162245152019948309433961806066513788695287392605488172871676770196516443993301499338292893809172989089079479952380639098996265485202257358897518273970580544550767689881420982184770698086108007893632240177178261420103996539836753058977420286760226410508300196633574957775908752734750228497732907191749609879134184570184854076006437709028036859616180427601115814840663336147005609962385356644547089754638451974368022630183758187324000278690701192781113146782482160480545245011524296492449979219261071199643364413688346763882043871043980125173491162984502855384519675154010943571047075180375423465891323778612418207263667905587285788807629715222697379041476360749894715782377807470142398909731284599154531271163089114777740848482708742178690857282104108122304866304273581735935742476640818837100787986151615432659518169648095115950462918072724714935353323421581130406844615591365330999676866512105690576538185106300079329080635195288571093163476758598976702220894826323452173365792524945158646311483417229366972146828066281457440559327008299935836616228470406176789516925885858559068710939864700805814691137717997786436540650769565727378362932516350363001901134879956195459442781605909539674683298622546876820163998694384039518052946203755364076391649545638841614036158608082358979074166950081900099406055124020797698847361294660825814829416058386684791871968458289398217040050639034323289903076653206832238360250587225211102617139185610067783073149881759247978220591874145310192012519881037715868746273873816273792039736155836115378559292909009573334398471916705145734160739793736591332586484973229396387148887970283650744931513274124221831491990615779110407270640200021857498157401810145782121637384769647865759666525463708739387196655479898618281676879378577110905999874277490247339616645614142286300935344186371940797521031629259407840937153145157686142968691150324589392659709238800372460641850104567518855893456963919910411254622688519793059570210912269445403704905130847325144187811793565172363085330577482357866639388713183455979697515847301159701069954138023792244765396499921708249847563730406816103951378431989527501653256988359069229574674064191244323633678510105684092736761187510193121268963531363697396764248208515884421100289073914936259684724220452821599725003476123461775082428470139685743691934828885737965514720878332792424563082289537873785010925915842165347491172018327251835423249291279903776803820818056154479864951866341618634786101366889856664235143162552425936152107278606385989671101605503877193765879964867872580109186641074152405309094082833714687702100678077140434333113338931674471397700741802434104932684433930510687841677065701241704030619001787891941159698252617205567963660288368723451282521144887495912736474200842519837805814311145679737556910076773943527770724041792149317649957121435181247823438990398811066366035082965665012032113860908011708633897507212007926102970551429006496204015470707473068739445547622435356519960373886048222941347622530912241096338423494767858106009571936741182248087552210785847974577439805334851480712540025164724068634043920063963092695735442794324590244409526043077305519410208696744260653601044010010292781716083109425070161592989659508999820744791996933129089693619388722316206551067952954045635900732010531671155512490785398077771320613579571341980825959388783764032767156287725708493825598186417296074587963729697240318398664910298176071510800805932716069071609966839107672487614104733771570231706581130176848123878303168521067871700751004715095590922284392094635437391866454911307049688307594185160548761631565736132283850843538345731252952557105707555497451008518363231836154325064847055678770776931213266182307496874756020608553116475779014945646971101305029578908289920672624668965833083721748658984976203303239467925765469885582278603284299896739021366621861306346411089076136530531474390273980834998831199560090593702850126198770217178271414459177016355986522180497045684661616255052324064168978921078610026856659714332850732804345772806594877035815775306234603494717297048672410716849134942482571076261651306404429518336657733180193097645912637103932614688328298418904699027802805215831587158370499974589425888751199299314201307041951548115499340135203413126400712911985410900760753096781203990551430807953367175785437641510484612821436984347980149410400531878736598512454959571848835720981547031361091106917710437310069835565785114643061718747337258622779696397974197456855405110854730974414931556131775083773689279725846047731618180818872425385727655970631922966029210045001860412105033486714371007462826493801623429177793510765557476720771931476167237103759368004802095304014030168387407144864714375906830162948533914335112804041260185457663712307004379489974279935650040223809820789062952248710726420265181047051177083514639029917530488877467752863873227019138072471730210420028140461660374397311992840348634529529015608278051769972587538248466663255548888327156304598618007053887033418384623806767224778811232421478389725738019873410131321637865055816348696673258715333506748228822526513164553093931847242455762929508370507143177691527500534763690565983477641370126770364858845208989250270445782152169426968088198680306890648958858790669482353934240440192715398158870345367794499586807661128324556151017514071492417810425052499568255616040796989431914861465679698668813386198126150184212098613517978210168906925247875202033864589255715588341676629619709318541351551735212672506980697552585382746572943852464373008085595477634211025399003733025208231513362763799528278491317179953246790241186608546487910652275300167105061347918523420474150138760595863583215152874626948760949743291636926095437197125868126064408709488123379429365849874097138914575777947477622592962837965630630923652791891145679667369740639167680158701106796318848347866148784172519079920682205625757969558864983454121280760660124294478003411361631040818086852827496424160112742447986055339820502636159590026942400467291710002800199117086049304350297937875558240078099376988685210255698441594395430032186499231812413276895650750160817195958628073345867925513744266208337846670102597756906784362156587152934953347626023557388802224018685020274411611132880144179781314289228359738317518805887314112150768175135154052814259124021211577623759404769445889089882873899908137738623566893169759741189652000685488687425183040580995426324880727924694272535650553263077289297490824311204626022269949658398833339492356735829798345705579898508011377514394134264621423988242951288297217284792436480913498371500791606961799427684071874870374254978687055001359742060864152157006445520294268616093882508513460914459180026370494294315589652773158650234989945540031397683936561966901732686861281275767798845091485865994234589038625730344962368254578137980379490813726055158837794664932711441875362245300045924649763447804267188811414034879500745781019315379621105743500450202542837924395236933152963335707440167163823003904367949344724405656166906476802630712017606250873815176666113329243065234100691388883169846607756032793237138640105098625865635050902560558893378141972826984827015926997929503354529560208880947288683302320925420065385813622438261476874141716283125264792372139214361443760923400492304205909687150511700077020213274728754266864139116935492305635520145725401980617187304661649376063803110188908329585173105976035449231214611501417897385600662577508128476372289879460132313100004048751176389563175422004100139857667252455357000702642775729368997246608325937249869630792619782109117353176817528859727671080992655093281548048024292445563190755561414752582140622421927183258408331568923494774835280572961452927563827896161102600443117554754470666512758430298636056526993054921741316812068870587726687794581150797270685726828788875571082531448642443629921668295356167310441660286939640362046369217246762900250226240518570537166249732968148678988849155948554542916904896367267181794646850897872361528594199233787790809631117275575425349776769736028756429374831495216238555308483581445601198855417758209340728729623761285201127438414238590528974771568730532376418517313530975533919626595694159560953113109980906970456039858063791457083732309751134256292660431512569817954766466462272353865027202450509385114140191818913165111024688861356092833403615525451019080518863992951502288168316350391932894349264390594987020111358964581698524301730461483672439068361820354589140624688884177608614114876563552466654054131038013931456437797449351360496859441804617128504318827320467845018136042839138088115453622826018787063493236103923189889392738707052327262283794361772831810008544056442017180191018734435465705430127865529594768245379134030136387944614601720911599893373681293715266121675659555690534786291071947307427515696809192033867766533791934244371419903272324113953418359501366812509253877653703837742517130553775326580391596518563681207466032075248663956342099527085733916074301350027242598492377740446204110750855786286293342441799703983066471384899042380615749240660282097000061624942889835367766983965865390190918652798690086319301549045465446431253659868407654138845652300112160644094040626257827478065729338603238580012060030906527699777679656418722931027365872269942171393399885350061742012660208838589971018978000019514724448611843475259275022607581069102800951487142279304601513412184348717522662023764881289549983852819320155710033199711468924833618627405225080669396290579555177143228645701881731583322765913568573854769190438630644617054727167782996797710487066338030994069594512932294889727861380309666610669088521106032068815124889233738066416723657613426749220773805031770139479705158977451413792109382277106409252696756591795311153216546474780069287509577907731784980775034616328904544734615437549555601769675634788221974293313658988396823661183116681078000461271783637953815917187362930577819769427884159396609721391127392402782756774355337507455755528942803829514416851065772048869638080205522069489118931116044187160814978551251970613970526178200661755240816692505005883817994364311001878786303358276481710956215209289734006155841939420944898631266017338602837450916151800738787298780711797500798483834252216317132952530681306684190088470570645931604319847056872352762233871685658561747210261756974546989566507041080101980626132493989196943297563703775212732483893129984936556643701117170935285279205423935925303064280196670357817046864041314913372209913836747851522741252715411217705313305869518593792986357876309990102487428154967856881277080470128564487981221443576506564738474375980963916759844297670376328396521932359640431732780648654838855692180826525544833147517485086491387494216448085399047252100149537711416471958735413367588063594887706005230790223987980972514842370906698358714644820598540539055447400910868187298219325223114896388842401185637920195896843865219662359327557429250545550020791660846592698283884489867984674053960536198241197369801100194239812779086610846909451024851914141580655323560517527249104339150273583544595695224720074340315345042757980305778907990541334163798964417963274468615455539971159907551867486435334416820772864433794528865324444997068036130551893674011069819079645859959907975889810014515376708772197087011730549666384232637730068282868154787878299011267417728068251890952723459065871444282939778505786938061341044624359402651189834402344193903963555386689115431181472375176882714022435103983596915802975554064381454234972075815305735389152656090798203351999934002329359438802101785320712684139643536877802890626556494926931908548212314798004295521501986414495192181742098574439570548609783969200368001499974347295236049481251481485121431648574063109372347922790104350105253072926657454385509939560134928510700764138850446961132220898099529777965038195673293201966124081160129206204078423382637224102266258468901738105968521489977558556000386375089749871854086831266395535773655602591719735874660810586450081998241475908968938316982741648419115348363317364949972527192868146208646440458820886138864110167955393767666012877495071382187681007354955717623248551910003933765032783776987091704814721671930030149827825616287806213922871457603753944871998396711160554314228392921734747799072733834409346796452468726421218879533726267204668201239840851663020973869679567736509155966742923359999194061214126343215183183008471074633387133221990567208549677892566762867467152545879127323852901352505601570901867281698512314751493054599923282249488015816342974964591963482675399153769178640221964814899008843599035813760732306138298794130863239983395147440721801157327117898244604965438900273396549715235676250298465402922393032093885617602403848723951013133813865050670568982351520406819170828051214703638314324021355410382407040517413049065605030759065096584395219683037590128697668618559305717162088368998876691265165485011092680486239677357597654830698067913596232259624268626913411265211903844325715871961842358694387967174049579044940461486502887338923516899146923745519298906859992980305481120331933216264940312017018687349803624449193362213890610853372423517314539001747627353294923585303305894669914787193717182158485209170756402226049404561199128225994636831417920172606736802180391902587443564884016664169573269521062532578856385709490118421027972532507155849461951230208792033997504557283535718857625968686612188576825599794335755489379842936372083658882766424445189708821968177956623185581564744522104170608506581973489747502348488627919645818986475314649182449874635131986891839400055815549498556194551271391162126855356868792097131641034880943647906884662124787812395006876862237292361794527040875391953004350241197114363715227505838877195834195106291127694284390440549613421692963077841614737654252683577891163665728522308470922458197158317806180446098199623231967408228134413817336730752678170243065485947793085540982091695874399714741350635120708897544705363517671543226729291371134575394383845768811268747858236074381790844387502482193243480565445027429244741265238611557083756875146634682073620108520426318945376872431499612690597723643490392010947709400726932548960987298030125144962612979651625354573540535949231495681593408536711603404699230255569182926661414550121497094931540276270703509595637384680874919956800920513343529718186947317242392223448828752163158987047787143233905836747704075595708211590944308806929919685107035830769428205667840334970928259773233082116773483127987315126290898000257737744093252390538664316129478919323571756938043068485359311014039510754293537789324141222514216060289259655270973031198745284599228646568088231641555095766982742866648376099923745535094487278196114518985985855968655710376993366569670496371764801099244005233968813734915552653082647670993755885794358453229563954122493921134999200113000850291680449004140562343977370693739070932879583504803989754208700147934954099250101769486785514250971892142002357410236251227872020549085161888117865068689307656719041384568483639469025512158311858202416179289050637285500694474886091557142277094051684413023268678187884998344477147987708025433276780968128972109008336175239782335676895032923761812032975427639656225221299075854931568669749492042643913470838945232656252833232029906029051591047383290913363417786071081705932024992878218964747825484899103618575187846783863220689409378463842326796191318188492740908697011267941488218693752928281916919492026312298684998910212335738221350739495774772228033329379439748484700715168886964101398464471521581104761948976091589368617341935608388226631986927877906399692121712370298181741186281394251487913446836932783319644387927437113314431391475143458409524306265836135273409623385392875419802606131451023821625097775865925054831786380868679694464748180123833147140785845417299692803818190589659266357322075130377241806664389007499254075409558307136008585673866356159354653672888376674376707899202121813297226894191883029507459739711054596930767471268035696207482689340154165509612685294294584779645578124343898642623869802880453232388701084797984239057585953530407254382295730698101422346225226772881728998754630642174455457372357585426062817474077027553136643796948588695630994354123746603620691831990825063921620956813903003359253225961790440365919434479528051094951803040468801597199976348341279997234919904401988719455573010192751621985775623005357354785636338070290691658830146356067723708802251580790558754014356555172644196859585035305105892760254595884571682044079114629628229254276548718800322097321777443556466273298323368307814459123155662155771646943036352217431236450868866282652852172533831967050633095605707594786475378304693126942408216708551021536276066822523659174384188677811357864946245116339887227554154439207828060653176094524397631154536800433212237472896192051794028789134218504281699885742717224638954031798635138536075917120814122553940896250473560412605344469690860010422314107655102970392962888722588425651411815932935415150389822715114069942868770021147083802674013459246015514503923420261069215285265932917295208550125377056707337493011176219984652826338183285348653118212600303588174955499520972795126813728066302809604941445873464118359730879093860213134773527621242316199855688213748358932112413364751323404394818814718868617330868073226683810469744573095188947153180655494434106526486772133306388137379135760605768592194989390664978899575967572547742866276467603294533205931745466565772423548738317069262282209319533313153163094272461173911113739822444113980299592016010573771993827606626031507949355536036629185147752572922289544745232066766300344245115221054666476911000125344250595971175862696039382255294886654212553856300366174577163729485730587747626098259886657726560538021503452977633694389113687058233912936804814562734133197797962880851897463917280327585703606916116172188705263331606922424283793596464105274591022787166427435157785984657008965775804145267132997662748787536186915536257526502846977113549006390005296704128483276573629077108650700568472233408090514057789348857561342908732472138660892796514902351742266884623538966288963140544753153776880179793921349369389776463868191188091015308100096893540815422533650098232938962226518119847049836800948994239786199140816189667681226310840481023700830286263288611473466227578442424891279513582709512763355303412819758009341999174780510332620023377921037214503391992421044619276340347497218519618102634677406002112592974056748990499287556501221423079306517298834949477482188761079543040664134692498759407450280329612434847762735593269413327994680463677640126818045196922663922490836680815647653481425505817123464953431060810054608217948740347048079326973132127453307723457435579856818446530982105675910076866897635801999251256253362022597357307517754055804821608935145229853303351031193002643077737156455046165094581750694716903766546555994636775211144978761939273416624776538386774784488981873509957896149676875794523006669712147924588861941962139300849995359392589079505629967094847093000342504551373174740844298579073440176746265486989421698925025494968868955516195630810219722611299530898321756585294456455533593542160909461539673115639021430592961313327812156790498573455031849777266630492662095304779165696600760360764905300712825128550233178808917414266781127298474110155142723165745557226760019987976578003074974176650706864470780051648663203913692041456184525317326207105240064406490891183774662979401883486915022694285200572397485499732026958654117362231744163312550979365843835234394583686616232965060546268712537263543690633479120027087012648995298524762386003897990905309837889191602846188172644642033922098363349779679319729400979498042862618911493903765398818868930821490454185850635692654484561460866792641305408550368013905576588223184990314713385097432344157736709544131066505354675789508891285816391578022371482438903009265411696692171435216634246726515344264272474612417124136405912956316895323681277984506907041322240320195744856837325595778143206932539249468254354486048442690059606668522987655986977591359834440870773701316661977556620958976369494867176542537037626952431323801780799757756504465863669726030732018500628527489374677470755449143220369436815828971494825349431509830885436248183601315502376873654303373750069832726521527739323986150887955274931246599852854485574393751357281455633106684217969912048238697253319896161418653239553890425907945777341952801764464145679125208950178523855552036544904880386436601953926210721476419254772918405383344928757316540389336481998366453651312271522836496334836804562483229051616603138588191019621705055328187105329816427274489739750202825539408559311595852558667627489121863000241232497788558129668022293580133606745207193789081184978280707115162007011358519917729910957074407525047160354758012117260879449601574239607267440333999238646523108486580469819944047777687272529271069087332656512809237695227613017599435624892573213028556683693669350327250403899428082208347037583176236704752158786036222304956500650107396159983853670703167655123807062698224048256077759154034658994239357298700263959247317545424363994871634740037416813672585527667366647615894843854496286754443847274692156621305015452159022159637593214659768082993714016328213001418624562738502351808269293089539932458855112315283508623434456947050521673338568154390588170372670612734621800350736404489678346993450884548036344249666487134464009171853715162421169597918557335720407866361297201201696025727310411442767646878758504843401081885311904677057074824813326084489369501339335632556895000186425428412171025649992573043463189064695714658924240724192378170126478568253434755906162099703388921979892319339197951440048327084216105470518568271270135583358063348969415299988680070374423719508744033356371850371380433636964621630178442982615656662334361724918222124926467740003306325048419524986476567513911526312892076485023199389632630183532496037461451689211866624638034949482613787167710590532468265626532773853090503688561297207033023509421301106589079373009377244883167488188004992800492107523310783328167082909181471664009177057633147172101969848793207769416078792957440726700559480675401110058999051797562746586444426255269521729903653578202218812049585149059001332759636173019997511919383582949542125120517788835462325167201400121824668349953198825554193977121964634895142879296487662744469623723132036169386205697382450981267928975088171272304120414743522117216337236344142827462056357450465286006525140104527799794275966264353828027987270397825999107426210638033973706694835300352066564154994828229323214665590370795733021600715987784849368509220764470112599688458618402906853264749308777867055548588241460620834361510640372363001955377435831473031420855675607414134745202308292843749596271813312822243593505679115147346234478110999720174098127074852684279585420932900112333760531883231248074080854956191148407004757834531056810660166638392552555797242797871887212097427592582881068032853467726081984274803388402496290633887312638305255689971061995566712374152005970312491164087360547328855363985794102544187637624198112107906391859827907464510196281650337596348165357150902274113768266100470762668668299942667847324594938810875876023509781042427279522506486896249889929297743444654129050384402362036799006109105135399598210508640224042950515318942383229563824859190493663226114351903106083898255471658332666396328024397605622387171687535564538944846721004483974071382143370846869532305552724317042075989125911018206299179544637566481640016227535741575616838088612417332663361165348714021937596541199019775447350747908512950843416537451962209146474726912521199037488087897850702423011454329912398318483596437517766075525883460994302089789473636386797797893204070784966216909416554767248839554657741306772627005926846336553120492914043107470805406748296123720478088993175709755545509491847071012913540775592346961313387165349588347988699880939720712195153406605977704571704382878122525159870545309493066434365623410794786767933225503736050434010664135295724668891460669779355909607092291608266711497348983780554683494159603900146625578253730767452305219271808703893503796324833267631382713883239761296842801263125896196035514949744910825944184483506453950739116699112255567670021366168365104394760745924303900325091631851640560980703089841868366049751627508284406848281934680786777912475442485817536107133250085346351706241951720389799419809834370422081595664596715760490526014299952946726661965509959790631520452379110925268679131641799550277877341888930142108752271799802059657442352097912132096246666091566408722801829870464821663312823172788737666543520921455240726332866957851471805419721043881322762238836948081302742717539543442310212764611077611150640293377767557586354762222342102047973249884870660743637208188507920998658541624667821746370642746447251614463026253336233353542096519127481414654095777337293838484480577266344071810761103749094272952260012532618269506134382519325587769220422959680231930261025767117695958458245459908729616348800438394182434520825892893063960873744868171481866266483223839136176103584874215157468832718260949799116101266211312664907943183676090433547393929680201455381192722058446848947165040587207447921179676802675580400594737743100075900263074580487892292090923198977503962295608323265157067184297787098354760444040120725202585284984528946887463272182900787720232366893953632997692893889810749499742903388063104715750797971242997422320417505385590818092785687066356609883338161728952925027108990102259746257652006980358639635336644970981673009857257248751028108701218743794716721999657820080622074938484337189062606074096033680491919307153039745676722559037827603922849047255539576000646597297190180465745293987122184225088471646841208476553558418252632937990245503556795171524568155966100027535288355572228506407201817912131319167010406280100673935642657130007222486839573162374150939491741950405772156303359136839742215534857363651318561653706238045620680108362629381972339374223032169968318202864779019713807372195932033494254394178728602109309740268228212733611932818828560635786482089885601762777263263726313590640625998949786098429757357435792635551846095572679604161871416283440079850853990400404412922865604924827716015415384107588983325659355395887748431138269416261088145808495654078211526470700866019761628475595324730938211936244743667618632309223249482082909959903595318614268617913528309423328342026557018678087014995761647727230300171148415465482885372859222630838481134154059239756201358135510743740049356920908699351768919720097121133758809879125366525073062982870145665425432141976316241664026083169666203543856056963748867174523026300798051833663167628555493801878461173066112400303211775646377158928246936745866945247718412903914008865919856146300196196046789958557036691237381767698786724113623423052202271315064343217647180034579822113807185563442554292757505658945761776876556110895640909201979607546079032682103842163294734207033043462150121279939160201350204412327990877599318169376084120078698395561008866076260483298321224230830954052688735656326944268896465128462412501377441818115979256619577696626284111240642064254826679468250336263331746479165098007693334867640867897555955543036748897587098354930211446746891134079286321510646111032154969738988869874621485791887190146414216606106380132996896634729974975649250731607042857478598975384293688496440015441654427221970743080097275168003668498237091135628014225612725285600235944964032285311214593817329902966016769259317814326339319698151169188035400914380407087357538866203653127647589590623182933075913727744859198759681570327331401923329998368326081514899956773319312645751133275461692359738498367467683573383906570537952588431212385817233056823125721299959454262295501304762875307007963724820385997132930396802971936235542813375850514118649645105140639626546781104970949607157064002918916653290322065210947292006334596435270291209169419032014790870918571519508591999391749913811305660169104038644709465739507375335029034838657672104383734087197881668425414373653278498240802389670242153649054451634633531521346310429177635717593918720771536540510249559297831144281623365791213385324310065898448913653417918764561623509547512028128410675525716005772909636216547169509768161405344871180743398866363573443546951886468384366547544438423496882359680431466130357886382953062131311739348076172348133850357398999733680675528153520774024755314973780996673389438330120420593132050063219334673786687862071135084690597860528222637841208021717438650613258759749811039313317163135125631308947626483203103061852276908067717380186293182714299601365220812577956741625811671185441733332666822221918365991633218618770717561067826528283624079483211996466555962082738897018865171066107364749526606980047553117555225135015923721930333076803290798902209361209050337933826023966908483683916392884271956602878092201199290659119351349558524879416392023870346504481421065194363321080297506096192764436909291919878543529716261673024143583457946789551765703453024184226812045462869829164610555148033686773270899715452231537749099472208420265322911923046845459011615578791710611955974913919874219587224772156623296283243974010606744629121534430611562128036980196452833386815123378610318908816418862997630719627826005868694155168856859725496464254083758412334476046241454262564437404613765495766260506062743557785717534688771580910664965871272721863563086470497280362147312530738893101086935152441781404421217230292384598582009894373787485079445351363100409483430902156369275248042885136665830705427620080727757397443989987484712640889024885570535006281858682768357086278837316330484594777051790083903927871943293829010369292037825153643673142994133082503891371748353489784546768501841835642050712563757273370220654900200851796304393057145109798084209370384794414112217600921352223476556736277184318641454490252745094806517001931739067639130828580394379719603304553293975110137380162345571565767661625867969303721798553930008764255238300952161223048097182178990734300799363280658026028968585510625265953156186701041499878153068686385609300302016501280104326704540188983972571698974937773640402041633310017869315260006146202271828210171051638012819576768652863195209460500637867518419168730777328846049043801455266526717180717288009570306979686413581522447106006948673026014695481469402947641852895222188964389567462156382198163618153636004581141987021066831168899795196283055821762659905136033658263893845552696908858480374688630430249081486558631331605751528208320340497216319368197270532661146956297511987284880853424506803769991182810663926799858290521491081419459509756079144489864814597592026949839712080618940642543257586323382977833636747878736565202855699795261628245595113229108044087079766785509495263781010265679148677429608623129025575044956907126816079752327076884458053169593670800103332886797081582566613352857622829330724248698216461881910224935690592708427128106501563002075384788712966844024855938838960956963224610705124273218581360337007643745245981170876293823036321886090447477355874670640488147428713744967047971673239287210605391029364583451978201449372711979128758823614506590716807669941946847010460536455269589255641310787584933396131106445396191101151521465115380768767497440313114164758342274556183621011989259236844937097220794787674592939698765553882374904015552598824413816273985485485654912889117383074541100978431005980640063912874888911639766595112186927083918533515489108721048785424018202072038068434411943268776421524894462279207053743081010420034150029063840581405181512966113579448866903810015477536340969473670028594780641694524392208707175767669238478897899112869239639214024112890473632876148321135906185531213739189916756788815039977085497404961240683529427262119870036962133277677510665190518679642552555306164676467331375841781230554476437631275761079018495413930048105402041970092954674424684398211320493946704274595502776483460261817640505569038563833381486859437158455770952889886343135447231803118609219163463893323979152213701296359695355452487893030239522004772862377556502732523359853220753202014559265605620675039063635317504180670719478181713593238497059652096776589924632846375870809800517103190563535755465992827210038461917275951153011315113589525073052983600248340924729892592693290332882710497743529144281082976576085274664969500495460168020991224762388767109020856728385220106984183807245819440063714476308501685684997714335795711000436579846209956098385614093630696069780015846953452146683280576751183360781509478438023511160048797841598158727136986417966959354485985080577964143744410720930934620087485669210818808318686556795331262349111910953709987481927174527693824602489362240272752424652786200032733468091273733859019848074188848920865780538912990033852673688138981472426144975878702333390786671809863331896276005005802735483185699091170577083770117135167812888697880938335030336150378604103185351748908217100671052610189879894338675320311115387547390807983118094320779995269805092147732789149018794667420083739086802792966864790858278901379244562685860323186713275809420547143307828754786247964422344919911746203355863631983034485980213593070646073686443645538999155389887170188779776220319111700514650850267349945443285560543372081892385685764911587418225020605618660843233937896715974989693006888426852108047794135127631160528863230381915450723723283036828930075291918158837208003858789893625988780514085971558053445577315700962122284346112295637959667327037152823753023901147626209547089667289889794381501212394595485818171606624794573517745529888333984758923355363740965153794576412100640876841714692318847001167769380233245297369014763871514775609178434035559774325750970535890431271890368365161846175996979552935285945844331400126976377308983131457163300045973558474162416400069358474210039983190637420180701751062984360000635802376277515271137278863183010332415405701679621417413034393490748087685324467072770388076689447360508921337807885309566356378064397119634299225258889913861357605352775005433869411573515699970131095798322542267671299562768777132560415395736835710186192764902202450648378623369592848029351769144354357014700782749464433072693578101487417064777712353577120854473147588893204876131588948607547933996927050372131065419800362472784595901663856839558513733045313064447467955961056822724845337910769428459401496260182506644449933854917428998042580870360781940661260396544424024945396815361633227547513459943354406980683369462110911528326137730889264518208194884043833624754943837306553385969774199641406363296001298931264112183163470616813292564685606565800211462926946513343806589754032433696589166795120801087413412217224787264684239767489334633259968992912714652636468963261620420240947412857837930337408075815503136586973845026530765388444686599103915885328601959434280918880150355315467370700430039546746069682545841024208770047710910460397884206296241767649045842893582113140245383567431558495650737717458975867740702244871131284812154679154874466804700808304159723456130899056876465194812448790548840591046808833546435634291622994786053035771848257950491569044656866589628418121689771632895279895509704651048659342851839648321304882598159493409662101869509115866219333042706151071319077685987397935386118504719834621508841995015676684568419992830534529843834578925067959113021358200721934800202697765252537752821452900116704422470557530994984886179109569297003688286117684375071871596913592659778739459045547171713955370169939041236448012160557957829321440798101160503961055873013454974521183895346416575077469799202584779801765190060059423301469980610367541837565912902403832020803333229699017993217303923404978020376945566337025971144073656052899973210019870255548205757696354395187328217224397220950684933365588426900029641458648519945710288760045814445959803639047316312684422802714943997974307327826069332873430124935812208004715880990732693029444109967097273910489745241871662004376968239018510134397266194507469209063352784453412603580181575149842232032669771581214407210963884722458854705273967347396860706509251110859803632612799253232791412541037615331681495897519595392740973192113101017996161580752258590488867632641511674004172767595992425367655160351657981085612854479879408337097285004426813633453248046198863021906468570795100081427093525817525093990545488635635533587508586158774135232564106479859130523052720268711863072874847405999407523247065112767843940290450830936789138310489596489478134534706547636371923253264318436267125843353008472258374865001366070851144993755679418137348261544702919955942811247219577635354519925219403171967281786279390139784615973989737586379764614629351435784888158058831963342997619943770272006596833881787215652058232826015483152835742364235287589944636963161511325450218751200684971645495123313477625615769579318239573186189146596871354166845604216537512983502106696142639805482983784970307315205879247302230900556117224190163650457391771718684933322899162862894904095398042789729463617750251180555872602491134232194923715574058786351125920441920080895170344915321265122627841026202944982148574711548701967995583790284245039621965203915047580922750018698859238617603621551647986366966413282000047381035357826053910535102019239982841243996061243009598840668855374346755769302881369808519424977949537227804956347978205783231109268395398219003891256356406290721334922906661879056504906902913205379157277516578963520469894878565781612772885165080522925577851047855622878704960139559640939684639791734270790423714004195479115572313237096800829686055696223643687692916073028970808657854871858630186930351702034588506516515297446528522072931592524379216354759338106165760421965180015934523955688282383625237135443832473354573071454375340650658567251691534037097713547948113101270030402562952826510083452644628497998747739849866479371097328315147614705047310576291692032729733362280577701465687816258350371954944569541782968156515628048822205642342355888442698248323745300902398844240169933750508257261920912516551495165387053851110618529540460389170960033432938987512927731423102109447393844744400160752805623659934891692210754950368510947217330015536945358095715091027828562769375988967062523646440923942465985895595694262738411871550856808052090606644036850994167052029495832212078695942270799360339129048387848335941536781455291985291414379861593216620385885442933966566608228219339038779770685807410684475177607390582181189602233504451467578071372486911669608268998590978685768124003649853311266456801998324356372870846561231471489599170157430891085006132616940864560880405549707152296088984151517393292021386136335109446886853695400710543090524386235673999533873283568161135348786697362966011080474681864394809955119734151385085951936773421398564554726072747542964892092058687351008589176609826604991078945167313267501829793735373907940397718305119582525204617551501294962176418638762326889932370897926511673127812312324043361410295910298233710184692856388602955017486228720480158967166685412788358088587329588143615168488052866592114154620616762057412442845681196136905302256681440058825886010131526270461663535672572236324239769584734167359560051779472971287491648423945235704039020032582861564759042757595728871072885749880168380814625254637424488723475666375734153654684463355901715471877318928590766278033485753597693521806717505565537639630378502387618325787386239343017389493761511232219648166848471767637101076321567179513434703374872035499041683284475907781001723848351445671504503771762624721359114780800728736480983558189465967426859929189110088798551126281316531320745273461991746382051226167058160962107379186525058322058204481131214081904233057225469670516309175102406783947172082936181700603692025305624126846971271551791908250576010448927788658214926529072217339600671471905927179478650631380293217059224764901085823242315681150061321488064046003128154730384679226585288035097796578601349999090533248498094184267840213415048689860555439125410864117828958781250773827928166216645250022759096634987685203186777774785701778718334165278055810840264599933026728836901523851301823180596318640345186390521370700062113596451699754147747734434828685171666334186001689326242109815509428539363186479874663086277753835100168843783349145314722504967940105383631134670755222685468116791408109797672567018872359099955238818699964909468168339532799672513339144003073848279487725498086548420003834662047692595932562591461644003680504591861384947744111789018059409893824115079996734334983020224064342673515537135029452875556457074102887541406673814151026472186269010890175454238860594474129547184594575393859136640015468694774145098089106420235262472863349775690659265330308597692953529274198751137807609511583856656640171643258099973945143300095567105809909583482315304792547264203383715541927996005357134372720396112224794459513990202803779622710431323846297788041703831729477298618172909873861365512882136546905551306434510759799175277489787673758039156898488337743543000067697851118428841266144852052382859372555015680760676936186053331355212032151195341256616550536572610340526025240100170462265593348786574064379824331640419416498771746957882493504131842117654950042267531270418558567151393074954461062628194308109350822257528883142675799138071447852662920760113671076007430876507731111380304445573201872303352539571398168369468691759919387782056986808589949229809417238994190793799090785593630195311954190217367728882784223946841421937701229784187041962275924284363192887812040196037937207425008134022307122031805438436684971790636365985858999224205393801580202182274036673098228214795944150891605436200304757120631148485362466753745481389141962524206860692700970743507843497764743759928587847942467744194914014664874605102763170918182545451876210834968242039560958346027222319373617709573242138511824942583137977246196010712612729435151424821992539415641277558991868431396018465964179840823646008200444415171268975970146225847667836953631937480859109196725396261581768166807784142179388853819639630640155424048515324116973374711388031017173874389891397417270815693232452405314971916505193318191697280874192933858126196730775917862892400293010483371626131568849424804855627242972124629136445216297308923334929969278918559687776216304145829811017023466454867939492943087974076177810554170017810090264026894757289256035770254455871633707266160437519715946933494874908332626745143179089745051282040346831750460429635363822507866814456402923372201629236735652123767642557357869040779995856777442407872520091435986690783907214482322658658167767083689127083582055788887395804279170182788836463288632561556205970454498350984594124183785581095582677986539944518924544313118879587194191573372101629461664352574917506462741061555019758514337828800003815664597284573717652806208895743035679179178290254072264003130700147263637279647513938724976647997155417570583967579931810818560188695532174408378223634290720061405198069420134063444472816175668275899170386012157266656100385490088154506224047308934967150089860697991025197933494727482326261641367375669822981375598927525417115687800105222363253187469595728440345390215717307528846691561971103923834167449172588561209958112800371298811393971604101531796663039944443936281955865678793466614885585532210523178106049755843280598693990062410871423197101291947028987292883303164082307151130779248752998767380497378260041444065448562467307844264807414282883033601135495472662594806260469953966228870743812816563550369465660417422405688310519728997364970404389886594603090707035372626919768748005087850922931522873007038585029582496776420791085133235597689243135605600413801072939411400889646143273495678431928154417071172037230855509481086836141932983868007616561379699861144669896359951805364682577149715360063449571303849906557771687876528385028540199666723789390043928228289154356270106552098445488821601643600932086185200984025641688980055694365543169163654935745737747310218151630546166774805951308771616791509429243012019715360071106639936515941072553136492077262868056639753331670648179670600528847868048209418117301883259184063435161460717600795802048357317771161641121689558521641950411575083356439757669619062098348230164677530777447930959848553905618408245485429595631559661387825893601199803856840365117201027393956618379835875957583371241215264542026281714267449279926851281622919508358665103616777853370299880217440481168027974120657805282777519381890309759693788097312215321223565149353583486550972333583799075626192343490407635770341160107949709629795029653933735271514535642937214766080468981780172440159539566737385329549791839242360098033702484044724156710654799476100417070423185944714292256531512425054562640955428717315241193080996970113175188709581458302380136492835845162376797607975991737348986617003336394849665344925117187226697798050339609397916252309091158223898329558411422920424147988815041417298317835061153004903040191650086023801494119220776166601205348220669061969390256482876227816095815323500844228454046268994488821330247220206484091555992758068099642480810395481540892138246031571785458466897737346240133519591909495508944651934200553210536168028920996515134023902620286188194492675985592173429691786762541936992457960215376061174361104836765421725296078682839034562549941188920317650303274023923224911728362474146371462514034411884104235843067234030136750969000137235168640120954502364092277521595637965353965839805289800762509753167865032953450334558767260942916814388784958504631050598407074023773886893087447865831985539869989738893525815449167936070002718361272782989931584759875498834637249037818873904884258482139244980446427876891821556915273648996645942418129666248030085323604626741711214717951461865451388035889381289146290354707309868023112308243870476736832062750436216541685037745313366859430940806792917554529780376869929818354438390950434664051630566378687803494344881404542663187575595442284542339771553913930271772273738862710391616018738726122786385929065075528029601341338749208422029333600597815298520604834850556209107903617675823630549832444272923594906545484886668102306919571164037514582350749630192999647650269236401492979722459504356758504983691142073249710960161628785406809574218279666876293783414182235697376248123734654628632724536957332603626140637445128331830957287424476816581685310071907584486756765194573974198025259002403483781193080669287992724628252990371784949863320934481910496845163752379837223976274523438219434961321249150165219907852519291210982531465275280515491727506160774960586179804249335233050102985170781384872898567972897182982967238416974943324739968856513577375926409723577831337552761615318335160672387060568099646000070470168678638263149319942441064811118474688577712587458952947183815031276891582429686029134376793327573396140556605592980323090498208703059395517672379071124693560149024017650764280999081468754655376486432092362634185894256547778031790344353542933635880999963617697744528295972410794194885490618560556597325603889993394104408817883669995554177585922971132987310514340362365785266993897158926811093400095883297546399696282417227792396688283846945663403475720742048787498795945819181549243976843855866090107933164919387407950143739668482553890171296157094685431972032604952065155543892013198209125940007241863414310895526514926373710625952490347685373612180164379160689554004367556275039655904186647911661627642759984001036797595876127337994091328192483906884318026009744053656821457735587816040240633859974002498965728061110610379663845706885066930456278302770505760551614260980932678511866178784191188754945376282871474044541748920404029232508209470082157601867972974178486541110687970933390721715662428601763549609621420181623937653934498011773135063913568949538197876584142078054533013924633149532994429457081700433655444828113046805306213022439034899285054924001788936355788362288413523414835875251665449415651421528206633053330155948815202814440667762984931537801117273224802762061972694030741069314792830024037055785635333779299256011926718184416499866458538527056832372024495231393337200401349563578819780198551529515614362619885277861617487211727424213635617589109948693058283114699124216082211744441311015654561465398295497021347935660770686266132899869270396730945160810731691884215069251288000513489605348958371796096228131015461857830950399755466080399905374490830028997434618333981508355961558928407374177446894360823005699647441529945918235683150640218992440793045020926729267454729795368581287992273464430673078417702904528275570319517684132731324799390512997320920466285156678836360145650149737139682723866294744749204684640738377265763801460229743420084723832051658955591573648453618528342596195197622041924149121102305702426906026187500656310104083077252820239996487095278300757631393648715958302631422459799097249937051825169962815631747125832467126787433329890609598671954593701280923144807070654004060922906240618904127171656329227235156421992009170881108944011011472707408279668704615518312883079746923784483894128390653983932242431936417690736180027789338376991009056614215519922050398235320931445193838861260485642610617063857547113654854699121564369038937604041495265587794410339984051186862262540923971901864162870508922220387316911777186056344756072955791724164266033070761950603854525694253515185028274269978619899285968046698765289893795221708913933779711659368796042977789564051745289421040556405311238867116641339960923177978775714611421960672528154041123841244592876097216847399239112821293808490148716174160139373023338111957797564031617036499122285597571227620519622479854122664446365521804666618708422061794753740049128709613122586395474313929165254212347279379469659414760614481865312882208178740468883037776701486926475439063773736027089018833590717052934819180815486545229543857751096890792602127252164641426991655963777141000550148218145210337318553974966856767303988813120971947659442643809444781246309350274999040857920504350317883136525052098704789447611727760474566884860500057769522257454319490513010310881492777912156638279227190568275299888738408372042442381955861183065797672224036456325395390072907452614579854895163484800839830442843649153708365970812518250676855495873941771289700331090615366483736045045826803275976595194173748553779196482360125910012141973135920686975942838103749681161779710964711200258734525661436119246529838484566032842324299889161238019224870731178221265843943624879616740489438949891204077971365400430530400937832453487518359867504415428590770599265961683292798599562381020269881001521863632192309620581775688335396090105924389835142129391285652120688330098976964334883363894697954727725198160004110614307563602997966243330968702026395754811244336221343596942247831697536807688193936194302230563596808139093214198792109801147842960616579353205231240309536924494962815146212326794109463136286478565228712115748886249333615875440220358926727864461396581880096677480359972449688495747415405872781253719747069168984889148864256353226251882057430394871586103942693212345288791466160294641548098148627923295594425819933757447643867000523331711572585928752683885266582360497601974357889492410490661654202516089848595813371108976974448188473060907031083512314648352492819586286197459207477436242665760250204748209040165945358594372695321089205954670923093702174681887746093533392149598469203439809327642036799662467734284275061498742035863694311245720467888369485686421676500980336145784668622487834861500750306480426000630389346121312850075437452023980421637479636761480114666089896056258019369098016729354466332004555526559488539905887860037136859004092761682770313668297418900926750468849202767116936827705275424143491987137885451561906079071896692159669106869153653659553777067171765699683894395085998136243676310995121764157557886553763236657744808004781033020381017118677409574277510924197554704023472949754024654048893527876115886176355763416945174599166255236996466546090577127657988453470719290692662939877879134981824125521848912692868559193629232603864710611457979854308162325784335146743266478603795769463315593777730627117776804118678689261749105357702672008527020321281840338570018675489539733159546437835451409480375253334092851217075911646370332416577764939649592908044938958952248596533709073999472207950626846649412606596740920097609659773788590543200641408011422721938934470945859459545400715568237264279334371703485199957107909845925900981584049967225618544753761528201851042817244516239797548023434565362960147726520952045492485948605443961151493690956769355939251281718699641522696080121099870695048193342609560633259033120071785841896932943022272612327257651027263808198273433575075443325267711394056608434663463872737064586504178468363610555932323940915490125489383984600236576227731751738817034696504106677099855044876839105700816977216972989868005015001153971592247064004122602201985742392728933780203806862781032814798234116453241790283320315307001519414670790927003250785266109904471804168556403804503261921057483987837015492375332472535652209384595944289976135769480761916508232493571393701377112137384182053391831901431213765386567912002783517921516115226642063155448427245921753213018436249804062551494998646821589743018017013270057360894099685693652058125710725703130936969669196066947815394810958804231922681638439812195487603294165598211515827070902007251697123437333795271378028862495785504394484507101525674727256402240282559430883982562408428472741052212551903072302882440882678508798708004608637464334321943109615486656041883170078513700111276428540234595558679006758479421862339560447452878838836068588724574446630896684355464905484307448392419659652743040139341707855109500525510372300992693481062232894346858210377483650344161804681625994742400874238714042303469656198337364456653696045147452950859951408817716691281039897470324741601434741492458567063250266613161478116745162216499377093468524300422090794363861466202560316954208271225948614610766066720808995775508151455651497139115269584783000281146071160212278157735459305336437153307095148837309933020164861395214221593050141819126842678780441262320037348284748408958531314558839387302563360006159595919130766831971485040032200367904310729954979992082011720752697107029291748294478435497368977840811218376109746790719004651431357647870886348108110168971181762871758330459299327676052824840741159484564540879115237013461549119961387272347013021917454106544790996154451207181834530842552078909305230247498899155173623780097856550283741987577052811984267001484928204730048297036614876776447570403180715084968345888285150408773805712570024198954036576461561865773313697571293941386269558712525441894751493738239316458221312524470999307044185396436789413914405482808879579330923234852688657313876639280545031847248489502104785608813013295565662771681682316075403367560616709882183566676176549132146681439459040557052808821935942554925152218418642145823361583750870212952123312285712041289070824667443510169915857861672018395424978234848093845202709083524021263960982792457558766353863868598980230495606843982431456366490710034654411858112012676384490884896599271219652597048777195873852328827517607023346532776852787920093626947795041928080077496954036556590865887439692894751823446624425652815951418057031783569085275517591527517422519351216404765385534614162022540979513159085505762898215098040232197854035263425889984468747763779073465170276612712692141593218184812599129296795630719372637589663041561360877255700936563445632252079399948291385109246250982117021286308344031076868405115142900066257155113091494511442316621370483673471968414381845564432950130011589679958937285487802050205310075183728593631654433515315688027634653967252485045532841362120860847776115270313537528799491978717052935697383357117686368216036148684788859381931821375633611131489669977237308401704234613929840780854016330412442040659097274367396944829519253211895898138816331472954260620625174945262958982771349184870589464994837727970698031079728969399849377727075995665238091058250245783603238509042535525055801281195583721309392179999734265975346505573535395742151916727134574479616873319044529365807679328880016719973369975560046778638583571084688811582459797655224051955559151059267289003503296709775559561743064292076554471021799437646362849994642489206300887351937013354073595341063044073633774453590754377613421753369101629084970803478873658486705136831518670651054907192562640981744529286062962663167098603473878573391621505023355664320188408038686312588198592926145532995192681733441132097650647416394720405465223407771140620581459065679644073220895999325654314728064508926119698070539819814205406869134246363238908624070570422061460244398055683962381330039471495473608835184651855804756114466889957653360077244839604799152891371522306649937367270782093271493175757558852040661120493506517564392597039092314738605451677453078827960786614644261550853440703840252491420730628606095292507732964923476976160280417938878939651440417183898796109476119089293395892381160230124563320630841289751711504565031070546946912051911369190731204637156592958441327078294897781271982339649462456732668043215517141719317408085290338738550001316219180310729447118956565423804242118487702817127317888796479104043992156851245769091240967117459895357785726178003255671065337483634261908527717514535873695003364270754540106471001524374942042612700135897658568048124437959615150513346892786727798995038397332597626010682633887593320587317558166324546204970872507722388029691185353477982068880382535409798895254164131767695069713327016683870770323091901509218769453449914493938888792712961662853544741106375242207583181543845591975116528111743205752706567601069607022534140520242089545558290540890414710083633493572933991083913544592986129369314056240928070526546126233437480796255069194257531417089540289282440276299924009500583927646668808190858447869840730684812543516310207421205983663686542297592694705354262486532411055446230419937271845810509545664046097947527068629284255909232047802622271628370269135636332409092617565460959269447369005109277780485108682905905682576258236105138487933598840105327171745158846213440645979701302210856630837345486474233294259704993287689023209791151026775887466247187015696242747108534056123360040959422124625115926332488244863216579932791207557664471900751463820554675404427886040534846847636924937272079666018900897771496521802399810454069741363839919494522849643884278738085251122311593669270947392731469843168331656917099134932488322265730190206652918388132432342168200172431105220830980412602918924465974190971644212390975288431557381671585411049544477152409507003184741058918098333177692079214964846395035844750608296882369152670736971630935499154798720368236394623108334511777056197148066234170421284380592274927551095962607182139499396068671095324606863060609902671935644205970063375083690161458119174435046705741048106548280903096084074308323619817581821049783626705213266538242116252480626345224701289764297500766439498002714517918806465462511058870566432407979285489650437070122696384721488212786390171110428345780789761990507226922711004486929036115443103499400403224581328776476749954984518571173025266907461953185387885481617527526091300659568285320647587949337310766979965817661856345689333906315303789752435786019784279080052996484856335091225241200058152323033613895176283436267120703754990120904067633372476183902549115392334184703234637773724895559667065434609451601826395231400411250694650956969166676542733838974659696422546222582626636127073159624480578787783972211403415136741117033043126884761788107218923238798017018150929978466094161795203067497698171828330210623664145808599692656866073491262151426629421586507663490765067596840601639420332251770212919452931176663236231179707843183133585632816166720868477014876127834349223327287435592181453381025820301901292426489147988824935956454352040593117748590560773410264088225538048327800998505363217087111000246961664793983679184480788589852569086245935047493880343485157458577877341834235884224036893164895650585640758640974788445634178917528640358939493121654492075634673969396526379540372322501673085423844691053004956221767931879625486617423721806433666900944852755091258342608771205431539931182410756435863970243819554684420807915495109392432629064593603328082028011178470317874233269913912586164806938883914947059894343785352001438326896932454663316164841488055970226155177178888749438996083316124637387663547974995633458597174338370196310238489893984520239940183049417731752273913446193625121276663457202942731692471917901039494363286870617783178836050237270442286463959549324889426680046983611646023220505053578647420005673752574500349844127388549319780288638309276958534890881616700278205669580317543285678077408746639288055779979842083503205486162328470355605252829346095001339342631801263646047283470581491318106072625436336828900342783320151403988712913778582944194382890379860261317175130375929413074341977131981380284808213807412602557100528394131318511661132798916011103950644439702286637641185385226608248058518306669990256253053412426662585408514556310752126898728533219550341391545910558927844369709394767220940946186119519813812946885418119257981383294294559821660138881128041923805874507080978056105528703743114164266061556146684210131169683962985824769332472049385226995450720061740679306020946857483556989074886415603606544070065550611908266623422402331101391336430909628595925283128948006685646511428498954410792768108644437716690954555023804018760085364800080795736614153318493262641249868613191632317198603119067771411577116923239872599510417226445147518436765464536858508487859324269303882434503606971857445891780898906884910625595503314660530807844373002244454208963400937822735732102937101662650691582832698868738468942747278959706807470431103035943617727071760519819866689143542768469704288685477126121738573386792165463984510965519687933186476956316212719640451283990299508711895747430006982550670454068438211249946534379290589414874941215082857323789302223432719741822611881776133804145410917773973001219821463325462640858989935023514726346448067279769853219945457736302129685799876896619841585472756710298617712798879663363234073494941972170620193151866236636182050267136171680787783098963585437665886812707935474846337028900266443760667065935090649572502433683989760212036042349580512682868773004243573723042747647958507434003973581131088931631987132031578372279385299467953117640756316269127656398620429117407252848755300548780576224382926111649051035527849294200630723213882282440489039612926898410942937815118275632267339624121623955692050153487261250497741471493710313202875018494789518385696970629946063931601426946054732423250332277513649814016817848209881505647977031929961838955479641057996540131039872324587936816770804115972984886802264660850133154003182530433001110252771051791824838239823762129302054226968882359901098276759557847062640506895156604280497782240700242091359378783239006923864380630766051185719191561100730752815700919131005175484369715212387031935444604085455351629947142808381549453059758554258810731714390218572106883807607399170691239096834407891134856060457315556021812706342987760951449790609729817685911591974154893511175167149503281754294317085099814568706658160473821404971660269897757377712931342515547624888960179334868998150215872874300013635140082578386703760910828563436858796644505935038022266571908253787034672473100729004887805206141132930212844328875429345555592558362569253740511604717869356250889525849908810576194906889868804003953885448429771443257375385784235343508181844080002220150051953383735701697690877290616511971702192272965503326212767038727793721635459413908543048232971898905320024010710844217188872438175257983561804669365574666800734473963380161892793264035113440194056008626123211698863222205617567452211935804758826847012198551206806651224789460744634600234670705400235613489653874321284087527086380826882036565721726091947040946246928588091290560059773104467914211662576562570812942283495304098060227169849425753298635970167920880632781892746844913674539264456977402248307676019501610241207799894177460691700297132037174604097332173217268091013551206794300291313349863748003278105089060007147646972007886187326871085072976703532831775931706667002313782176093148553111973580444397611739106529273034594905514253366625714727349189272062953143357582897768978263868176245257159065590519594503770603705981281012081054680076096529048768261401790732441190109771145394417209805570559024318871980288600347684128788857145752550000676305254144966883163530800867184497959056270516683806663004522961435153266295032854569089287072736229717055648995748219041152413317136980956111928804141160570381673527192145970715453479025736505758774283037945657938096368785934013929683496616732058006325186792247828339864512787167473524672825151189421733050840565973116858333040770842238325082079964617844368563158245167633242880527281384937862784548697448940748011150312087667625144770054791104460823870046234345558868112595347913509647933381220612007572727267670899061920642580807627489443493568118572235524490695162082445270866120866648814346194682793259412084845045473059399720138121473901603455022591778937280372314696330738666212925555852827178095358383855607820311253131341421510836386819259760285754002957202360014205420165889266255034398885976475323299596509962900305694755585799313112516982868907737744671692595986977533133293608798312921848388168945733280323673867054778519143785932579443302847603914407252078642964164423350693755833459885573697862340562466836986636154278247386518080463352499964928758290384857931041805245218213100920160289325792282210341045361800797355766739018401309041900500502339201999835513566811653820955771694451368484094983139055480831175858542905848280308719711229270022419100829773474761331532121146066787594465735406668143741033721098203170735250559711460766573123398318535562240134323079492586132172063980672830355680236532332261892921514800533489240256219290569441530532937777187010112076849748447755999973747791716675166552199023959865085826895674248556071882227802440650052137173270450796099423828144892959624698004044681412058653702907789855103570147925287457937327810781006362014738974236039646688325795479917815589940329739658018448797343156870158049201511467818980322038801087954476038021941308029722533549057990052471259032629679122280226972574269751476736742161710227766925306415749956184328516665812234498197546824587795338141202542525294406581956058705337393391412878105593321175513214909607438059839375014131710303388420761699810200458367783881774414832749965259331439951360813566581642567990117934523967959982388737970699610195012188399167743112873178679857822506796079911950209541480564019417314472039961469016153908036421557783475122666874532597764264877598111502946525075117450097441245426197857797583744585370270634628088757394747586345836819508272794930270022494100892124892647890686359588606943846129954612488157379939546694086576278719663970703359941194261865514179444822217103558577612243394731903426939179030680962979500142445484721273129831211887746791934604785804858981609768792967788624347304294608198594861855898762729877519468507664723037219275211731769554662656169536833911583306561729062345537566257180898434469131434050578617717683965423744425532505031640414913800370569755930529360516258052932151276074738891175414580128147712537985157616513561393693914297249877032291512078090971073015975025615083958082368674708864706014629138296045600298906666586048602408336080830199011453187488810989675563826377525967428341862357807915861025618261763443881855264457175058748489654964563149978338836871940118686345873352956638672320128522413392181073280333152469030451448374480096405730870736723025749425485810269602664339481673826810451832096185293524603971174698210647498802120380029211854437324032517603902425315643361889402826379156763867630533021976960972477283981105860748844831048162455602610120595341277070226058794361062318582504722045457967825793794550135088689341355864973837510275891121023743964104174928539149464092166745993597011592663679860307546366414743357462426620689097883533482251955677411268678044566236269496074378357646374792531277186001194572963930306662833370577113729129414969310883639151681353962953547065805417966141504022161979558482477795804703461299936651184725359934847814251390573725852572455151505415939468644255265388144667380454278741952615409647408841603459350174175109572822529039930266455468944923821579085611306193720391697518241805949272638501466281813664344297027571576622039346817587540261804186901492762071324923944039278049334404433282774835434239871729483097584777746844970465122824845996045024939663695974225823423160805067669724819905133612375137320163709201091818283283298774296711659359367155801658334736653715394985568453317501572271823420512743343921406912931540392116210802564181628061920937058171616793231334545256354501693988860983774621984092121453211881275453578212871369914196069320933244122298396673580570410588953974109925764412638040999821603399497005548666942706848587231112557105301833926210459701987817073177002256437318520148328512729856802477450620299362128043530900433492285491994924993893324858089697306006313976781329112625227094461847203870664176358964771044927494482896641103743268357011505764444961798902522682852612673653451374263737519984555667806873356679166060274427599719744353145311672533212655162842854672169896203574865098465300682226097214319682136378324952060817587333010375663483526398981350776254823516547036503703922143008616884565575507360470373833346221356788273342319770479707598848470751143299839897046641800613393247135210158741768259439831203415416449007098615852818633383755520874610094008896868328544507659257744002525869103235604719563324132105508712334045867904717656501619301073296878793229494766438424737362946435037111215805240685889139684201555065391051702241853393304202059177967020615474951022943716373581710249652915361015196686112264808195119618569435786592075594465339324744954671237706402527112186197841005904755447921270968354442665759785204275236824284696001757355838895256953505961975829084529807057313893237999736644828528763880321799738812456719977979953692746335944549358240253522434046055980197831824907727317342566014771080118871100121204317201281933747109144623538209951336406075526003818896769218360338920224247745664407265306591270667854886322801518844117449742971166149598780928664629907994675091419230640315199100616226181962712665703839738791148380627785053934210315952405042456521572123158774206966178670950958142270776643514228738227710867387087299682280116497385653645806478756187289672365503563453857759377470293087389973713655993280722404957331139833936592241057667755272601572610571477433581505978780419997822687419058582239402206047142657754838255280157721313533312075267837945681954403867062353665253914597111784719226355360711899110158121691484876759746249601758204913111913301631807215654743316877494485530095670092234247400023959634498506062581070240579583761536409848923309155836064415132351252139751647268732053518300161767472768774310797660316873839067347369102338550295344237120513410081800284308110809761485960914916653071791106452240255012196804014191066192927144626534663488131246568658467426599075590796386144456589068401788162691973252983484740667879029321112336322670824349452542256642408394478986715022138025173255667642597647644595456601410345560072937457598380317423569847768564443331800033963763663586684222483461106610242878882969292993338341429034898993405875296045893677230235138546495463924043817740427116327423899962795885671596364639529988299176184503382636944261414766257107856559340368320217953578028079500000940923991333323739916671357264689747852384981197362598541836369824467039058696748631444814417081641711314415378911886014913865837066300722177526929143060118953519881026628672497177881886629757179175706984160139775925355591305109617346208943115896739579959619694908310101411129818060128652477316105399079703302900332146434537111088604433277459184314360572654119987455665607719206573986697971076594604023409776666184383330246693889087866343019998405670511893655847361988077470312749889720680291699295441956150298989151755894698943139296860249786026921142883220098491006110659891716971986691518606062939886091805688234335253792067589551196004611893383840573878488770819457970167574137867084508989574467062236059942891365490274249114286985862805523868303750686956584350302888095148202931182977621241713629259261817410194703602992172659956920957269706591758425855326868132463806330399099870696913706376612223536326499515703471269953670848621972158253128763560251468144925966882542862426933809586606989635396310952741494752700330390529981440918853143694165078926127291880592364665391681723546462580268430616691843146874494710952048128006881679867826830663568767737760301306475348389462981487966695648876412336260715943227911954327068897467370039408923696013660099493966989380616314752160621369046346538929979558144436347213314997083241158867165637333597129468598135214920376532522133543210878532243884013641358260531977996416630105654554853250998474524333454456462676861740089855250749634566562254315225376900623190449360759113387422336400214087899011682397006246816083747636554198770483889114510881239573399019818714245679048147868734800322646569690418402105938927646124142492831865280390092047104042721708068152400828802413586062876562172602757594386007294668284354750902183116697513774691799607092294505221018682892242487157711793712023505807265344018431469342604950442157800111479446894371776574115339907981068937668942866869209465653906704891640227352776762477621874358835725897310417894579321251149875732095994476753549278816462263356211852924163895073919514917700944091452048070401816748881797558287879038640161328307619242805571010512611566357829549567528257738839361274396699054412685737499617542938070479353040168727143553644215304001521661867960877797838015890631056341184288860912206499026782608844434775158966815306907284301635405423282564234379641100053388984834820051877865643663482686167479106624720656094704615859996313446683373267742501764542167487335582022299096439329986132293381236020902665852132900008163997680004454058205789441127067643896483042078958065935014664354867107175774967117147423900066715392027230484449943626236310864641077511316624509302578780768490696724422146248493514613053931202097921210410905535343417798932209862758763011361051060134881865399261750567823991682414366852201572689568489773501733630855012461071219785815851124905783046449190212366515584225826982986850448947476238953814244792757521145856139062109046950265765185498333988595821492571995540730270177228724992402923184705476702222677220167974163444981888124073444641071539189976315540137997760448926397555946354270949877661488829436775716622593700862535706864990924578807162073698105102991207910881446823703277302218750447315339224954480748128810115123986684364317853547766107672782727273323926475749427887349450469916840777819017437779867451434693013096625820462356892069700054385331097056421168066767905020851831583071851628735688038713747836964499636932161021408654320814561055048576219459214199912802275367630563272711570796889656575131325808388786395310326518822264323836077936020946494493341985558108981255213011649527796508650670654715496547844443298854475667782591806616770422330242227369635380579769842974534582575124662320616239852678055315260656538466019627171320440497529440847782298913034916895647074937098427618714823085577142741081130135438732633800773309236593798241852153774777173195243841713846665627029893484749440823586921239428799827607676199328059459909680355810046646563900250695632841471034832843391169155591545000454003267011037052276550077768716604261947377237146408437243138311809795171888270374097821391679770070265044878235220390518353466066107155640189488342413147983115775635489250346148274355767005948286511518390529564651409001080589071831032917583062997412446653529933119120538127082273908503184494343718490011701244185586630710352997202628868164454008825383616787034860109260529501917490699147616794186003247574488377744417587211287290893041481408407412529922242931849130179319589070831125198077849338014220256995100565655992852555307847615293173316358108716312341360964498266212789969881732302588079577668669640847948413137531071800490327714243298727744707748808618170431440799822488201750409842255717941667590020332595761100278347693803033876549745474881798298722055938569458222643222761692808703401838309356599239212312507537800172977214269121048241155032096056648708803306726614872552539293863548763169376771842117272534123472621176599988271132574399859234918524286597437753976258077619515147909930896308838351463099969099567945065268002523273888945300100637248659104417248748872252144243293785751043146276213961903477913849731713102989409174287486400843188536385543085105644113688161726505990979656240006717902943514778870178077190447235854464141775684770883547815848371044306333833305824417532859750103625015421746101313331957289435102424210951065475247666513559049770397773026457749484805173741496926477548301200073141996534616806957134137638653846172619207100035780974846577316936449651497224724115672052416409159979006987343236385903077439137927670209425652504534839926360119491484948555766238219652553920127520910872679470692056707416571435815298710746610491406591285166977869271299737310953946496629301822859851582032087305408845582141428181743379249117080097712002809072928261066879279521947755181453839747921392290175942295057168320172945707942728992578510160283625005202575621019531970298385014902601274884558979079035859854489897996566071272458509850517284594626898655472158272268514921447281868372372037213341607357447183720419899329043192690400584886599913520931022694598661281560481958834166865249995382660547469362132807768402121288650909094203172171879250051572999700836894047756448377839078281384372156906295803170014516361158757279422969468279563947386021917216295709968775905710056284881458499006888855143708221540787392926390828390117128941203642079685647227286858964796436679603125174953016544015969414559794743144427557924307714047242280104624131738486947588277284192080718350311754216026445277498469863690592483162931989501092897027694831022384856922827936047234313402015612390931085971898968488008312616546186318341094188597528078210827980108641710296585225838366939381971596008891420482111345796844653811169763614479579293578353524747044486395925156013302293836453844755962390900135901389936424367377193983359911956149867049422135092759010798227180680881173831851256297803243064076759266317383183776292722180933403564696315436363106035285672624201220798077546900496889934128240513242945872169248907045510443486104755897711664436214454558433499253294164011846355810893689858824686750864518638736159517360568327915918072616493613786972789434767045615868705859070841505119265285234528763549125879379525126686328875252304055763035050521770058848167286981447095736600204881313890829059079473267898974649413660957369556810938912704280552182957012009675486466437900857331717191243115683882380609298780727983008846900195643790086156194711957112833834230930422381994177534245569433431111353956079136866509487180876444596382038318055295248323859719238957806515738958052122352735657744625315503559339242289744963177838464695726387451419558292480993640066124399994809081621576797909821910410730202587194749506731393633778549453298086973699296808798451076791569045052747782714160548347455029470889339081744527364753506969690665923213503911358168405958399871170304537683540385554979871291291018526219974251151825848778026857122240430009812468216984877570815512787473315461091177588818278448428027598888359132100127232110662897410781373869153875160674461508520175261730926988239018311528868032222710820050074406901886171676650221280157566442443444291118273949756209539784143376414361587357014299703062335717741251645452413114970579038554472514778848510763523182281338559570362189073343401642374727073045715141064326402616140668901330669747454423856312549934360502813841060842490715263937024267079302344981362897939139634684166714266108552718553847376799702894021456669631342574822054157581891716837840142130429963795078435535308293483421717827930215100568236786603859223042480492434432571861394363280419892318164810586999569088085157107450915076052791501864699929793138478749846881860985306804609247070805978120607215189342242598879051524245103398826435358837887572886569369330239770046622461175152802060917332171616987371840445955055392883546251698672362030240253025801426839122047003867396457078295929505510135573456103986302139607489976395063520913082051404815001062711202956336644390296839888052929299412421716036216959541626876347906131621758087439508791779250445216429942830160516915548679768095440065130448077524072271012021070936593484487643829060261812414784734138515515363570106456215455561869391585685408566456460695935539117008656959839773118775571090157295434636420672789491893642291144402418700014149193687240159107522717721439481218561132863110183165213367187646779696726882780090784641213983356209144748690592054205123300788839227793212441048053232249669237566144263617644303084397088555831321216933803314387457192630718474531352563968256776256924647228712588360763496186413700146296133480259292068285154216869124967277113886355754244764109144785273148430463046535454991361464370201349370196404881583178353774891415545233406861851428722882134043023175928488475388957543005118876551023841626318889360564382435292169482369895822761411454127795597332600933855046789531865021707920564093966557469985594400818886732397805132862767066635710226756921268957309066686878603906459996553552891295014500262382295741231785372659447331087047939520189940817523978195130335506945926914933736462697021054805901926584035493280736416990795227836366678497756002204469831545653953225155180748715391091115608392541755756843797954780085745631421826660743187073878275935500736677551480884504887542924741153816975899959085647532061759595016504799737906052510105135915025008118606738458821404959336677849976781707303507743699480104064692158716614534291374086530146878679611788994253854895150418147362557335255931464933136508414311854386934492733664196340508971326920276355891477047024770409237268358281692645853755282418042915318182797635199044125617344230602871889692077306896469282478918492468619686504686641603368351695563768070984887173691937258836691434965866288692376481388249816389697112546844565846208197595274031229453567742798731769772371151363581248164823366188547287114744595535008871487138264852760033230131820892677934775418253084830528271129432839297838113533774949220271259435613896611220603544847920759518785112475798580266839804101407917800165269847988869941999695272616923717559523103373241084680044217083143141911589440738216439597313464226025464085460453660790716423626451216719904306693093367797399133528285509468294534367227966440939858236721789307324957143519677800162747494504519802423340525961614325395025349514197791919796701067126285642381577212730447356264513801343231540492843206096117377395747183281235502040080322087037860932984135170102007259927921547053613953278526542558058274746290112142506156570232423190047781081192053641216460757010342934343010094582872798409174542388713407415063034392417449123842662782181712306447455739170538416864749549340339790785362631088211870485619712778709136311468229649893247715966155077534109137622737846359761720591152640413326175193519090227940273633920181687102956909899367851935384709042898957621503001281709807588474301849821144346783637031989438419245965145221820293788371551614757378714222741145978038696053411124111649942209150649413640377281900342246209847884853266803181299658300477272786525027037345748624015678166240278836225527792594998934565712456561181259345638680379314490513025697277656157451629086771469210610850003950477926431212382895827040807050905169427031932148175236985761956121796123519888724488338313135519599971948606241054403153428885527586229653573100138606502747635920063305563032289431981783513678671058332488935475928914393088511876317804208858453585903494210808062796601205856235504953813811339381813463778398277690465804501019620308382361383484675687859679749819319231238445004722343870568803891527789275630833398733546901673825407629324999594579568710297845615212267213808561889785154328270875704068770065560069881211436017454096344025854058924895686848598950714098314058965971516053635679514940392746808900033974205044882292121035674639609815519974025740847151328278590933165823482843323296636953894441740332361733958687360668774771088153719453446269005754060819885539290554001625461329575107580266662582631963129290255488976321822490736861193928117099505592675390785391635244011183789167703215327292614148101619133083506703256074028449631431610931370360227556385504100725977217641332606344966577891535737731707734059764227440664628279254389497275522932498913678756024838435827143570482215992075284857005061978047136683870033489591834157229381862077161431844257020318143684710242784250547725943313324595047490189451701125265107118948701365967975907923676768865137542341233199109965840758014687334136005745592086360065245559959907005206239895919085898069504248460199525633712762731323871180362485202750657317240004844352297270730207786145110207630363395092515626867452521192470413737616141276937125936517333182357445545664360408402832118497357840954253863403789409603934449353078000791284997103956567622980787474121957505199219968960065160049047709952200256053418499485289285634648267741091642880630552373306703641276606458087610779793740209799886150317104688638404160051947391334930965120658751262039058341021210923323876974099651130797235506311074458282448455189004674464477952409581078935948915067288107514818423856335735907922425081570879065831887893296909135206638514228364261661109749494979285293698820151347185223021254443048880538232707454211593541198660462948693280373767973155093277102351760412886963419086642706580959205579951436819904099300459463623634471697798890939941452655969094421648098954411027065007745311461888016257998856163363836785753510759456965727943827687671587010972829541430988967654158677054053056243856103373078671014548024285263888466734381090147473167670078737133555043812906552000876188326602343262269980046726396660448129547051277218286787455810299098421436005220600886025586771340909524371680581741760629617784470178836025987025580602022773382191102502797034850006166717477956452713721913709489098317486651309951688267944893763747317475234677669482350625502987110852339078844284388398411981894011139521371912182053289852262716193378877782014589578232674884570441218779344476569012796627085125481013409703999415047854400259967587825920586394598939792792242361897980722006584395926564952903752500891478313940121665677552120631988155464146416449581605690996898904841207927848432460375224088118437646563539855003951428616495172454134044961902358612273680387218607254106655517350721483488093841918581484528694609267234719024082729383894776682886245504421688458491172367008959696722262957218736935337916305147998582823711869710741619513049074526244454640466936813127615323623906005927503208504472760582295005180502828465678810381411404004986340583609841223627504267378307632502349502482116163718324209150464054702704387910144190328112690806757600420834096979523966142826891019118681211344143926735324144538027832598733944215037120659261477839666032369226241565610733176822837861301541384250938470473557703945580647537004173524482664392739453159024692947096019622992841667800044815640302704689314886106599616407583785862928747792815939660681590735446911833689942744423621341749726389714509719262789228401846144785479389305555810797363741484479844976600563870520080719039187556512945324715643871571416419165219099294547366978920489407221977262048667251337736718032999857363400686532007976565282805448274696148511697659368522603428458407792158406375014071900199082801215153212833440050182655732405830211814459584505583929108160691195794727706460380000674143689263785721831184273230573441618641567904050896832390849498429391168174519379608093322188922108159975873314774779422406526618382433517343076196957936164932859016075183439487839878352903651684088629542493688855405082393842201398223741752698112785397322785518395602926017294325119949876250271455079912925158147639309642050507615591683525402281594183313019789084747348369242713130631548027370123070761826879030890269993370871381582111129439084330135059674677987737699671794852207862931638322258041289663236935497828326250350819334183455533800247543983184291236274211800281209538261402390368462614609892361899154811045229443798961936903671827636386038994140711935247768320944244324372997274718692874328008217298359020778732751771611257146189167402695770385057119390544947546882944088884670123882991229288275340316605385354997576504897646285994411147356390369757396526714087226346541763403265571575288049459715765519950214694005619158937913096126796690105312188288611476418151455144585327095252081572427977799180894155729089460270821042430936805961088822740075459123103953298856871347424732345377595693589756146769887670324921680525304039961140222951658827237513593897535498012274474939546776977245068166309443232223425952137982899792531316024240437109552246288546449725768861412300584470997417977924393640212778697972513734241137288918803661391455944617890634523959975624315139208110653575730745733472423334992020390871924665397603380910451797590074379487696969519651195406187361864044734154282364084950014332149812438930354472197052551707316200147461259406158961818372738580065792995758353714680335540190126786498654716954428432589368765032416063668792916879405068073699421418144510589472634658616298069520913197891463319171336178311218890833555601143749331681950622884799193449787916586395899704841246271383797455093207416060296635551721071242906678636871008448035164809743076379308088605727997258314680480555414736877742292568191436539625883853197506269803371776286544625185467547558849605236278042353495710398832214982306413283337838850381618927660989301334600635474541476459162471112046660780690885119541699821917581212193521852090216619979190314083590650764905122630256993218115246841588588500633595411416282980436088870161437607943682928473536840994659638194953432549968732092967864181498670551074002124238178151129051419990421546829850432761971553127703314757811792241303178853847053952054465110845988334752762491706696473269810387374216216202035034830491281814809544629886977548688454166454318573855513332461708997879167645207816984982526687548541882060708073467409423153820259073709924764590903634411171790337853319236117930482390396351183329735276832438861114579267290834978277556951077707040885151881086315249847773787467541493169574086512516674918425400316032573993511792367644838649586922239795585867427557370543040685282282059288537604305099021071808742596977210288086920423770046727573953537497814417930764047988007436384816122889091850703351420092825592346457866146483951897654814604302814152098329024497660664348393553396853489040916522101979005204804272966932041120217267598698560127370949793322963857031528051524771092027231831202587046386202799115501228601157982394895557547787581012067853168239364083307011290606218636133174399982226938152993467343349696470235635981612280611368065667194180273348010302126899247532253867815828530299767333935417853113104170070412745673181988263312972520557260406391760100038243553124019676231152986312098585004630133035798818189332528169132384659298956676422686387962389696913884153107631110161992551749118004321798703912320976289418596963917885271928306884972359517390610949727982431559348916007435137390429374312384027339431759856651069409794985053936874289251165241201634503393596668590381347915438234023260171154906969404339504468740395431987662787665458244894854043983119900533126567907035321412227515028143605691917729127963101252862930128953690530180326962922934807825608891680801263687927084549070809838624972193038480203124277253847830178391754267424474814901474130398701893330832416907205586111064209499025705344084121385481992386484151936777889506772054943744758613881866874599335264539947291747704086068774926332653259242441458673204545582803859078802758005684353380627782987120286016907361528814614318040062271456045657647318631519831212611240881517530747339984720836191809285667932823381332765910135759625937483264940907077540404263121600132282151702434280684536871323813374524493174046247538474255780893237064617459294968866654395702018479027958019581203967417004433827882754506366635960285350645428331708881223602041675174527752227866552238604176140737390917897688424255426073384911689939882301273796447754968512136232664184439879000786482150297016407702125486741283994396944261488301970796028906171830834806718522622492980346803065689555540397739137487003587736890163882816977199897702925894057469790385556687465241103632292571338140415492116065131385856481030392333648732379708047783690002451651951986639030277650291291396182994089404980906143526649464133990342659832558376034233706430803864910140473964055415077260642518395510989495420558473170579064753189736325820360367587273987745970522449753067578579303184670406951010272480555812031835442601581321725881914375535197664076641682116857680227759201214657392503029386216950393114692658923391282815625715741602557011313553808547103915067612020160071758961816102593301314108938332463254489320928694192438913791001435628232618697554776687132884254872522487429021158779178237076302385529546769297732903058039256849957344449487959020415866752811212353371758028125459461877680489376385301844678483603855351260855638901397476237834928817022218702927656060426251565955668355940437343135067161749597047908938155011590165241117799022239928970753026526974942458920722422255947739126130289412335727297062551967959154472171915970122667504820163846119341258116249115831791198929381314723290806653455625139349028601677558201658198800847005469823740422248518826671479727706724473241906595820462336121607245398372853239219182689741156792325821472900000217048430985083653440921023888421080393981347102809101721875235065613192088155075263068309533312198221711999780082506841230307247398715015795368297255261054392561824699368370318052710459701990861544930966993498351036463671458400206180259408417784530003979293341518536682423407730574660495777404042945785383115409240915626392383858567749387581096034531425368520831619570672282464806497471558434602166112496896691248375469069268726807375642425197938155431798730517808155601827227561755704168542024869804156224629069546252486825968234935174753810509987703400246335368167642957276677676899287378826832488921649078578948895299022607775482489418556784131993754382820377286454847607467128002898752112118522482895022106523160743375570796943998724362622479109348058544238792516314949794152163662312509246282606038362209298574984161231677780479644342876793772004641145207191736129543672663867715581612653452796929210389180266127080104445843189155751832875968883630300546048547845866153161700274192449918666786791958999733586450971995110519872664254464201284591823685195515545304118519841822023204640225572673339207866132234796495382253748529008742910049692936943914639326493306859329726951923811493876162715720044931587427691892529016913764123573529381569967173431982689629396109161876989093848603646912980994122587413921342448942777723180635353145174380130693509841615580147508594290157935601775636979230100264515659347612220857420724197516381486642837872185608721425877146551765764173895804659349389584664686318142278868671427297518648037304594730365378804643407833856331118665476945374786515555566458691433250447062138971218728906846424854488973220705317171391481710022334942102380397575027241199689195004248981488028806771086700464977238111031368953268385233358735845809352546831107612153586614573395466434969571995110904510939529024797007271614651155109857389695528540953510583676796111533001061369316048918780442983102130487967429083671775929100913022709363691306358191292862574402020326996646853362244106127381714094537508557857175911277981964292582518013920014906953264903434871757220364699030657700361852988275986297407424552977575500419720881096671224806509727282576217774902993074889720624264047500198166684831897708298863846881163647727580409984959658797888412033874078987614990488929159011460052336383935713618427621002433125946391662964361347609999350429810673356689861699364282778048059807070694449960687067316410089998302750294903699735367640081695659272447246184165504180114949826465151316471636854990129532842253950252810290630339173280603748816968353608172226225262200641337226360012584018534083003131531967180700619773716612248674317889533887013459816180035440087430319775661924134607206167086583907840912720616500717024179985366653632852824298168121032778096090148989400252696835842907743021231578577918559461826917239056640590747216988202023138446691551105337698268999314317249224410538486440030897666927586875966327968490926349717234425087547306680225351805794376345531939310193556905582766069344457600040690383650305872829740439389418199643606159542950147242872479687779350593015996795364674056635332109514468374196059598953727650927113481643539597191675416922328167636829464980002221326081394675255751554271077184077638468430922448994630646583398683923113895865815936184723182596926197765846214768252698740705161725247992718701328745419975258450711371147260022328899270516673995001856757306060775427417013686518763500253384731741766067129319316070433185317736357929921726107497613807998822891366122554122055453763637623924543580786345201793477204861458473352199057112243661140599722319187328777581912892501543842538174961567357465511346554791415047378906157406064068552705160511805506666462026265413502537076091866344101803408789966690464238910747658112524718792022549690737152282193715538354647038247159855410479402316290192797078278660762665258323144049696425550082410509919871071674130167143286455117649425521913192097882913969691241263497140242973418539349315258014729669198147286869845184469165208511626289655941991661489114086613002256940262042912356325054522356161078380867480772230850922757305230360116469289454301793390151768173500687629397201078848844085108441193605418753865901283239754616326038065103816113581894838101479811678653817626339126868273986619157630686768993855021414927285872767573515230618626877220028361901679395666450523431298335174649061596031092476798369052260067020838457752014083560085508036183161895409029937211856050100213804258328284478908111967567812406921440325568035479318155845079622032337101991903167730422042100145370719629795582455571614224476341586428505735692224903037947339895826140682261531848204354672514183948157970901661537632106376388155919936547834580958800932798404105117894147454427771463984189424320885618262177646585613059222008214225690078461752018265572392870287824349770742409032246648789682523735387257454398506158770582213393738724852726500121251341581525287407493833177229599848487302112652880615084370349850906197481548822894023879506012168392364139256126795188242874965450337319046985632330960753273638002839797117844647323204121802198704134603138242835162207175296106328983818495405639033674227003266494305325912804581469039453429047460169752561565189114803808406739295984697488474536707388000527879081394857569941166420825793868754356083163916957167678738226730582636122462186332996089203260621759356236497209598495138880372276448787657180194090998270885803249343074928906634261975640491616155006100835997285296135050729604983861933645525886851160920021746770716251095072873350503254950144533808551264278826541264339238595319939594623652459018426673825467446177162295661277489864608006028167347290584344999828768329711189351999408130568026109218819127500527914845689020079872859649567475262825245166540339630149655520669307088549928663602549853054103893788472925262896116010436400835665598004921015313136117065274317062432142609429421603976727712239705327721651618846645825716431073850400498774275166094513896258896614138597260058182573030404728505539780349188260510924326136847132356575544473883959820908941480144166854146120134623430815581836577169242092044357789633527945164663250762347170997894098458579946847378627607893855529253889480120778722807000224489726487620678238569757623723100398110482108880661824155234161733204443484558136043617221103618677791722590088120630570343290622129413167353228867987503391160862529825635518798505767742285066866320974650278889614186028863225222261202212565399616535765827968644534428431674853098822824627215022805876693052479878251507353077685421078996292422688356252371856057002706762440255930547501706183488932162730364166097408248773120513843626153254846945997262032155090618436589016764779605751573401639590446185958294896044516189544320496256400052753622926309406793059955140884333217087744424150821632220209787953926368756474723500552465381022465057376345439175719270123353845166709507947624226118143595456876911007019586363519636121901379610090447607701448102596145227234364239494456545374446744238972852016793033623048640818144789617531862659011109537603499115097199561152486643924514252671663903813905207846581471312074009076854512170927554558799932710392217489825751371663260138887621971901073745371923085070088338462109608828676818173144586737617589809632718037946962083219104962190581909552162910335144669687682437756705436695702562398677744488409545440974400387398189300981879289987450110328931957680365702528553153156014948080532239952735278879947357960794273822882433711167828173973485221626921152356739605828061501177899521281200413721068478793975494902489967404418072266224299240598271278828769278450661630494561769881955547800359565551420724430993056439992104291471942476533830952656304007986448177431607504973508045548158717377241039625126630448860587417596108886907650940076144872747827092337312168423812462459691235440787508184604761715110957340560534401759298594944300966890235083885084906322493672295348226850205874609161940068292220281620371263497184373120742366384497715425795769245720333071635253897236916978291506390917889433373169574545774380277471405245910212892495677452101719481564751730361449942744475606435724668304693179726234585904403793926595933147595135814874326208914404379994721189723478736885985045840388407919187411153495063026555901696770259039672030574179852131609681048377008300503017215645293709254104708199153881688625383289265030647760565068735489069134645375322288681822571145638287587636049387593776152979847519324779560117547273192940224372001736063782532157196803773027380538281147751848240305830592941811313177650703087664176493283164718895478122016710456011049250066871380181777063262469153894383189653797720633681468389071783433169935917169102096346524605489870597105434357848381951697775352303945475262055470221481982842557455969767649642383645710477633057647844419444691765574873234392967509121651427893540584047854513079328188820307050462401155032838883631209358377441910887833806941016487346675938407436871665297324173495985173588972197734178084625245841189298335848916803947296753611559009962169024890769747804124299469499577041848497133675484749629065295840785017292523491011878760885790893415662771322626192331013868375327775348817513754266907714359951443229852809573553863846579941660548079247171699289671048193253000152748036122683552148088579656336182650049616095333583728299351281985177506548462301439628950593179352189856850963514191226759255480813620476704883900160222162382703018120902518758587842200728858671542494378226295193632517077856100060049531172364893054502138678755011139843789135860945063877037918210492784479214815441908237732549382435833524454437884755723469260738268730961653334501594062508275952228843800001845098552717637392948223065532980269923257040985494414655222808620199551428105463273299252714022831603234419800397547125182758082609447704463322671771578279047673436123841005610332667956050101505756818259528638239817782567965638036330807386569925449844333352563377570252975999466910028497400178058109737681543450477288785783233067064135253549880157448259646908320814712433734810598372049538902858982664853683344721914501788914688850372440580257202820784524494439800529055068800866722024687980327415579328498254218128172054737395396665915319300558809313848444228462503425996433550656354594828384557133505124157584748898510493326319613265021781915799944447273942639230272399044442992921380813062196354241143353787501186241884209369747640817748851770325639302876283381137624565835293017962869559049015347835294170000607983806485747877361771275163057054616972254208088698841463164176344998359233905757179275827798322303375924533770724254167450145409456295256515081877478819402659669626835246525718437430779689490211516286854354928537887721926626986076443494022640359790075803019290431096697485290145960640735033127058311187865133140631832532634635229872071890249043127223089189840984906637478481290237261068289858958145795557497140197591724214052146416800837170926920066125903422223940118281599214011766674644132213140580159211529123032168914653981592746398826984699717200284061825476871313436736683145075744355535292850634255712783380079742268910907793113676574382428322636175930014617880857353743059543779263196521242587890024964039160839130982732412277423976532839897498992573082088860769032376024678025598337586375709023005909557215008221703471183445729997285320106111893925773063519734358025654107571747573472629513265629368744062317501127140245669597721181249099130997205579862991803673009112509799440165382329973676991228252335919203141371429413458753740671361238309074684109828495162146287935734533560785214226607005889846989864781744168199004478348735255380922907237250263411780214347540646851354518442446162335015591495320944202296178300526508031478962879938148900462916910340644921825627476068222413676149254865184413772972730775934839477564461995080286284111574359079898083358755894486790928806082543610562694035651978499113602970210094998848249452728008050138402615712603450000053764453965734125870940512130284537843908647617524102488161133095822226637502863014442485855838953408337896961247530824238853147914881845218166448544979549749345814670342183817521693131183228620264950348609849589695610827293115566526202755825942285423863832806780876143635620928682104821820187729311446671252226238944685912656412299270061053360009584687644969546555897952183334777613966475243175876947883771797751163165476210315418426753141928285188842492492731381857536428471552975447570944564573442740709746979313127887201729574855494405187024906295951564540304897191267738212310725110210324941821723689675868590557455363358039363473147155952103866188310390722874510184439312432774139619256532064573911365247867301574134658801990555969323031568543546416090545149974518864951633796421261316806840892004198537369581054839467164952066340203634178932486598837758770176293302654053832756928741684692498096861184015512184714327638109588643490175111010572292530438712493742145746602532993735491291123284630512723656889961866565675492328956940427133421365943755751466934494308132164574064324984559662537279045788382613858910558028967426274874668490093451343908174961443921202867101744030772083783325611073574131829023475517857804152296780837145463323680844448312605886789694012984501223055373990890516895105058693584134434911362166461829412911763198194693490405203194690271278554133215411074580473833131787875350017383942354198950107428367993689669552883690968836834650847535922194956135067193997235580258044038926059215638171777955003337869171980518506286390205109639083193680044740004800739584269169523570067669031724390445078913476413075415339080970839534353340536388781433299587827753547516327871859403098229906466510985212369249964212798020504943752805057304231242660214243252673195793837920727719257074251997528497979843970933128388623079278554811977389071714877835517402924157898499293423277256091041392197725105162476742276591028523318832936330119482741160967260515070364165442081450740912354249887321724234437422529668561944647253117477585097909924700733861292662281537420611481796384116779449636604250691420824840664622783163683883271422859429824958775856809683523583751249123281478255762741562939795665938081288552372053603870218057147314825479259719069266934391947774635227874510585471904564185567172075625259824405107092550981304422784428081111505175008450752944562721363481286550386933334883729707065470920843652664888964298635809490879633374434814627202738648038892031145011235933642402749350624963169442410641521455511152058787459824110350575784820638837865524490666232221190171051922299661912792892407759229803957807823035277615751613211284068126680787354617700259819596705906918830505798371418368046990502313565256169523419964458180011272705496020315741826687107461372964800543987780202194580611538421742829950360471756754502855406773971917773511083803572487028642614188727246641714777506384402180504057383086969354456233945448620487950239445010507823438552636521548870330300771233515517027943591980971587719073727011546071579030416920501058532255669896825292800357829480480292461501958771710282273172575855945870242098600138107748524340648795776256282966975793549073312364397992754292245095839982239271461630752361804857877575768468315975402564177151976961275623850484153419207835982654248759629797869689727951065301111351060410061618311971991630135417629080614115984381299068114411816815208906556433701507577766484463981295354123508242046511582599884104695176799983814711210267325975561845479431095516487864515756889687505235678060128893118906975968535517812228483755395707081843469393483696261427026843019239529039200632295208688970626755636636419058441195221221771763163346767826688398235585184877920931436450223944234246480044669561345521374067761397682068871378731885705694291484769506054994868522416707201452251158343124589852694496093185406662982282840834148112968604503353361450239242130953785682889856589116639001578820824120348375415625107965787411700482177690655964838372124175969134159644988429779654851564513255612220333759496387041494291587493389484663245044893847097836515385657529891970682539901659085955801860959629116298449087559466121077667198714946975919674737712722454248118904371759299054063312016825172545687903958202139855794628682337040107867797798545530936381901290510919186323284333313623612832005249288895892107805975966955031958804946216496340877435476032019074957021386586552517035264134293881906842393535500753341118036416678176991103031871394947024244139544209463354022494536494439558676184541359356518329836082109062855863316010182754084605825641684497572708997130898100990769949524621863287994305673663870632169328468792752430573182129867501917582170148490716640514654144710329110527060573438670786485204239237841644677399424439848886581673370402589711167362651706776586719190817891990717515438322898361143175019861198606336710392793058581994834066530513409230687896334250689318056598743654613653594764718534364613051852205694493340617439754995568188521320202915210660778857634144434348992291959792033830416974275604368442485022858573083358731925832885624178265910626733396571143865881414643475934728364739212420174403151049517657160696870981086579856924882611006966846292737155252077319752311797924649406036656274603589085318548415088492469315453824617016983711954736147169521272842951747177560912857255237837160749231601045639442630464845745537690125471311744077718884961155890446897368425489489388692057228593459553626211985688035096378389812919828558134098123427228664512196176873680794483676563036368278544572159820347698438550016514408126769330022494512477643135035789350912823162252820596468236554864024121198044734601984219173691115819080873927064592155714893505534835434956414788305713755733670481090606785184402782516431661388618610718320200483421173686383038174648650286805315807219062978607768550706679872435624727459671845439670024181256134338267734309708991227863745323302749687099744390016724755597226285153894531728149303136097628397347030908489785210462387521827387691648498097128392640005888087804627536344293103566261931584237088479321103076449296284873568676020377726294583071861419869445261612436376735290035247501191958253242251678057452358024988793499993301303392822473405289663095814245598884004846190481258940511862918314051736922837909610370768805678658776509500715805928774863297133283007141345297411573629131676589068357237452159974712058490839475467051164110429291371564248051594255242732419703243699966008957362572713621239515130397586425534614600874876377040003711146138587007701513955032921126341279421667857876858597650762175537219509168550374569439206317803874337464622369061698512010079734219068668405489872447196916678747054746441207207828384268309314194783571172947327755402436254664635707754279099889627731100574286948896172038485910035474735308168184532434091185254877560242719542901627599852431100697733448697469470670468292009132965246777093944553041272383567662822555799456000089434722187425838135571482413889374971844545800482107090261976163800816793232033806684839579712624340263613860487001744464838919227801512199907112380094822924022949342101844861440349107580066774764154924509677483069754730830089074943207937154191093113239915786091480969984553776340717806399391597625111826728107487096430269489223945012567411011488233154327360738402690639980282392959967393469562622041040210201609350967247013575178633274051088269036046697262108723609699991943836042839214148798812900855819668175604245326773167975754050989651949026557451760837196137379868768278306561935921644605820599787633789266020115718094434605516058523472525851457288475869324921843665716847540387075238324951953588034079020340976707806168650533128635958775117799509329301270581132761458964326454434220668222650656829296782830669149587796116223592890432680539672442411704083429421052472042453523278754097404694435706421302771858652694776176039478288097888670627036795841942696181288636247042370820124083603092139324143809237849128098164692552303473233424574197552158630831798080629270912622972737644491082672484997194992721624362706905329778174337902867226987722713006818148907836429047307851921755694470880141314671604052599909086887123308133130252988138197910853534056421012167378308076655244744782742798525481249850377948228817483270079719258532850454991637154324460220720668645027523054362104668614055673645763673443749614802715211312350079185551983099466328540788213931282392865866904211321778540858739771385900314111221270613559169174248622766112435630710850276395963441825123452474894063113054191042104269811203149170077748294484876466075942319759991033390955508198374018201089126744968756456746341171846392420982807089816602900178583956628169837061371081623652474344509737415600891462767369144530227252992511114619404448429999811749402012302300631699073530461299352359641847005598898251146660932179135799569790289849481264173528901553027959425889850103701879890862327787492098140363430505570526574481601453056249498783777699639244510026480265917711629773861330122625972587516039775121723637390705349945807548248494045912812500598989712208791934219697993703222657775013875379428167762048210439301012533259709364329277514714855048651205964433675901340464575614500505633838329954551962680489791120237812311159106767375723062799462437569656434496248897924949971773766321831260435630647752477591681322285550562484230663955233033579315832747256044366928568196512657539597695906026353970360757417142406214865938721158284885909211039783651884982239220353805205448316912466176173660733916492214218274976065571703111537665904240388733703771551908557936376862985897690764651462752904652353721041229866096951405213141057073595621354811225922881941060386577523286798631060376685287710682322243618300670015557048520087951674483420685748665897445569809046236019791950781432598568294335957078526666907648140318655391831281312535193209012953369584093024549512197271244696365570746932445374687385163086112889589957106660098328713802555019307005586113552413586259835113527322605608462994645321372366158433266291634111571606820440077007039940214059426337896731342425616319790577929436883174152105732757945994646649513357881758834138018134353793612237365444659970512717907294009092303313921235959381483160851999519876865704720225283784186460491798517419348090412769698753565227675050449029741735747283008319480519066102254961652618665826431360057202272763227371501456005121727373421195385937162080511431577361528417790429150059641273779571308814302993963834026316671333549578350505106806794862347603977593526455338569060765204928219443897065868543001743227278758770835381450390281949430061295040576648863509425716877622481114656539738236724673050832883789170687964915593982621431572517812667293147449465746819235233661903727982346294996320698765084020822794415502344159453231902922354203479818534692775847746451458949542014864878975792785158497883032774660845622537358606863498339086913534877541411585549193705732137322697734076870921602287333015991950929719251589442486513027953651874143639772132945502691784950401554901591836774446859686424093212867826845612021620259710168870414703322562782816191994865323619967273128364149497962584656197678105257443639735814005091399509262526309786868235078353199967461905576736459275299429035364947840855802672531218402806759400203873150299600587162185491328164747710506732200752057267828472682410955604479935310154292917070664920298121389742531630226066567185522393767844668903792220602270362743255701120254550030078951777292555373087107526536156772814259996683323740277831821707296752436514982200222862369714252513139212021398105716214733313928195414203888259609235445121625196327728561905815092886641875013489622991938433480053843294691081320154915091983227652781008956830268595076785714762938291858121014859631662482451981109581654894619165665398911418112580733527214490373915506262043058374890207717771782174301953794443276725160916549189947426205414527723863368421947733447713668188631733366680163065683453046557464183823796613540603428854671104554865154939018464890643379465445793455576811920903042995914679501353664097070894669600981823757543799004418769427547659396889289910875185401777632879569603305081355357782062609553470918029182728729631806482877687459810533724778586771830886070947517725285239850627030446894250009509452969281553697767725742192060413593828339837982448987540738987425025247121155441411963784564081217228951473307573711550586279920811963541004821929962832336653078451080191717251552589555223170452110436706928303456772929015781894556488044236144406981333955779181538476108164416454665308424002788790207755668143242471526054633593947096053521702517664815196554294121685992412925032292892541146927720960620275354805037842810486466240992573057436825596137293813597223794558070953207607528930919250517691899186682867819909062126872803059184162641091639248356928642907784426410207905294163083188648036112213373322257388040690327617423930367614200647493470079382632708260605586671132514662063022555710769052061699075107159424699073860523259312628439331487447929137612346515843676380778539308451283158149948531938946675332938825395612836637330354215100590451554519615115299010071185980350707930916197021161466649160919188390663013223954103719442566585039170201264169480227058806211284918867018344502050511040676583427236528683050645845404844528080925273850151074178400860717057272863514659381406208667447658960426994276996129315842543362316688329952214877272467189824823644546817323954093032373019408968318535192539773611298616276037372884253416453059971801134898892649668262419415755023505434445915639634959420895669197283459401734628612850223678034417242308144577624997106294160854839349632452501644832870715697193704552933831898451567547930408566041343983777919037564830852382351968882508444826079772191266503049536575123480367344858315114986786466999328822687453464170084236825436095877058050991727605398705591565774030316254456363997659794163226060433934613127734194827033448263618793048438362137112307982185650842075735436735559755827833841656856784768329480135209090362352461964261226567315576848597273702253941438565670710736705000748630020089999847561782091139021313931517484116088464471627436609744563542444545511461426412072188582597319806731905342608277712751998615951286715181482063888595770025356562166498029381309998359187588644733246161545795370487173878733438861877560927891277145400464825240494996502279047030623858373832307396732090370775433632191759396329576315494217495391074619800658175464271103312374653828590233621639987150991891416259255854132184606188229037421680131725522981864068016888923183816454078489454830880525342994573985483947436766770881550395006007634433774064966170113808471659297569112657532008507514432614320474692582194329123459379814842380255794438908519713540480950053998771100880517040441197718399557740076007707905047096043879834603554807582705323412639177285794334741624540753307496272410641731336353408792666866440391617151441113607649308338774818802180905747458733737162266394645188815306685159875218309900480311387802004155432894373831835672581305827194688942896717015785789264018400510800065718771826263133686360506613995599290768592841725111057075161682584154104877507585286133436660071204450720421888467838374615672206914623783962418896670936800343795503009623983237085902601133200740071209169034591579911975177736182010133914371676470946052361382485754546064369797564774353811038902486601020588146997548050859564173378632214283742870366534884087830547557484094250772132101276356724602742888233984962622397158297193366421697295278348814563283511495062265360797860943639205624026700947485309114184770273128835817922841236414821751784221860145460577862632580939259134099917930606271899901329357497577777125273120308557670206070853959970892625335549737016662766220505761749352391022724621474937487941214158191963371735722452090478385393763547760395991337600460344175631903995671327367455573013158489793936428362384436924667230182907594207991236655965339577101026104264047680067047725580734808161704616015219740730814938682202455552800110613514558700090357015158809538963188933666795534590765103120148012903247491825420986150089754388273375139719909581948670202680065129175575898617679946387188189601003150681093054344581541156402571044568504884016479881474689696927901137969176993218942352289742176701285318264721803342027602133843286437186130728444295245831241450408150631320338294017151868706947048887285445628983665494211316632370108891085253743202038749661699565879957781287200175076200708311094207217380514051927294071408733215587761274704858919554106911791838097016144011484886597415330664306866994286571463301825919891714870540702786783891389830028539276045977453196794705298028300338258531870058447109978386833123170162828164458975694908678166710230087136926464565618926212448271329725447690000771630922914070397290570893065528271513761956142153733213249858395674463084160084762178339181752854192006506828576231771836924810834121300656472691404615850644056759151786702405492720151138847323444982770955738264761029613656056702938303808330110209084437317850940812511157603551505481837768733947612980885093460503359487426281427093333338688655075309311980213367732139414626330296565414518106222167781580127261629920975255488006952972350088229791972224251884925858459009525288764154108672170265438217610046780368824571982117134961317613836292064757180037319162762399538506346649574942183087289053826458078966770037382690632333523274881876930784426965590566924835782255705059633574869928155904279593769312425131216673462070901565047265319236697933224433825254833996295710363168377789300436681014038829814894804154471476287842038888140588037378434044409583022019486980366364207762652094874029366610135465173161971620493937388000088459094846012930355312821366502470512008242138038388320802197412963605583031855491454423389180927687598636875671710781256341545260205248443129863464659099647581113904659639453026337482470340518529387332374905860343008136908022515979825902497887966620659548355928696203428230160398905659964773784973583319044944971822133570264387055558664979776117302359542102883487236721126066263963483493819529886678097056096669749594209771003351349647683536919643494955789741382154740069000287944777704987332521013008322716948155020648688613888557567918621063183129246342805666528238386505115534669908010844352634071865775728741911118326913588497226210102879640891451885563423165612119801125066834822827198808479590514111743874929881804399759424947743226776772138206725940403974352306871604715944374752875895531309125998932648558557419445803833412347859872603029786708791057350353388013031177997131878365205417029984754192763890704513007231505942053266703069556564874996198496260583895801682764332459024000638931125612222559471271060444048513860897520196549963355714449024579033572851195444819182649992690716659237000045112284117593559159807761968274846152095079351124329251182333769340629293005408816393120529590596447109035227434170749300678121486085999859036382381337420623656640168665330103539963198366947737070697654439186377799608329414060451965420035413625293346177629932314320534492843611419305077435089001625239031155827427420330375990647485164409511136734388231538732429818182117094324633001575376581583980431706740626563570132017051646904000289368426268975100342954434583628668235633722133019474084206127017236586737753529166737975122660171663195996141935020211816901160641062170006648895292161005325042516326974258829082531233264531320840903371342522830319929266371713213583179183203422653864492114644165979543879133884982367288589274577900389873250559239061628127297852570438437970101831464075595255746723830418675337151196479907325368881572323554130203883862967992423896672533515896348426212021559982554384926480401758376477750330748266113582514269619852458367054629324112347301419055569950308627247742878501946119020354369156511374604769969305262169051744383805827180399621885767301645833569660040006115876819751526975741557035986467119661575209763958710176619612331124956752555851533785727442171703659276151611787175565263974706989582276165296318074047630050579896297790889263364262129311917927424323171837098174047784797660206976030348932129957928214647275245059226510017857437952091938981055541799869250032459738216244862546424449610859301811097909037959638971128810359574366280801706981539426633600451363219845383108781811055981613678795799815059876783957389683971346312446635616606439346834661711701040528576330031389339099979148214619243151519003641018885456805687601517958480297429650816425888991629177876446631635060598747494765288568989559411568194663589602974628571819241095533840820218356728965752077078604719186804493603640477974512906033085999298893069261801466954658745330773137409640136887227727827416737116726368523890657656177443651653506944009076797756108158059506609627296165217671984450334470763254314561360722169149298641471625816735949833188867983733173171295101698662790475598617554623777010824601271511574278066722013539562834784337995554286411032147837618356376909408621023512598147781586040429683977616448439621121887839081128124774671013968785604043917185816000176073745058251355521099881868443308320714750619609084282076913830959665323287453399920337886083926040745657393131066262066947810647843841218544497228882507829974380017753962480093953938270319887997010364677046158855081289714855949053735175926496776881808440439367656248210182076250244533922046427606021823365524739370727862173752953000144652810624641032398305480929468781871057032123508588279029310298441026906873164319579399697046704180173556052629673639831594323812320744789742324609135785457105693678935586206512446381251718959639656636978738641407981842022549149531452923083004718431991801842596230842835630450154621637783484636221196288191974810015499282333480327215432772889843547348043040814317451373580709735570512857516670718259974005427958463003550819889233799761420154839945336015025108373245571973795887500100636196434763259189759101649435452450356756984573844129202179350126529254479796767527296295104534590929679869443814853360923209193809742656271143245164335525541296487492278913799924789225173904932365461078466831634170837660933275786405279449925762894595444350113749083643480880930126005855489008118076591542935959445998078351950051044137806165371844096238196385987676233829688246136533277458551016329819873787184353661036508115928635232982205101141170901057099877745578380332291641246046534424182887673559165548849865374331798035660936534848055372975599439093203272462537403459238263550699116074030936034166451827520635432327509562009008376969486448049573942473852998237841733018646704464664182062247811707218102439036286532632523488053896922042340980115668087640014013642776861639077973240146406507383009281177873323848145670988856146353481435368225699209412920634297444047493757550409463774464274225542803425705595152848129941182541762474682281128284794336975150401092436327001435686765288297398459145343203937296722826778759638730404175029438655282612664992496944640495444971230923917975984343134811615685930386643309007314703070681122492346355812122195474951830345288610713716788068658676983996715638395259766644304472594683304186499481954428488775110039071042386994563360203795598552786420789771439115622967645868053505349715804792003679495069181971953631178609362367990435048731983547884814685795692896540882151751016514628907339282372621990979890010606116267008959685369347037623905183563834473892866135457233979945782305940085734834430277510390162316815167947923886663745289543214198855923088044551581293273528883825922846755557088452693821749074146047079326886721875231829124160683374563294873951352462205293933562654540636704363924291614794933232974775173186846890631075466813654381340218657920702057014984944188385072643585895396893955203317107280818137071129140116813390176185117214779323383691174491247640021624681135140147298642215862513299803321137972212380676829173323377050220922776785207524660615607991665176282702063018396088547660697353644544077263695777753450135041177619297156606545535445594332788854342761559057874632568342110066206669950287053841145214188316626547151141847116616927209965046133725833154959148749522587693366307712779643355819254074750509394980470556052843457818141715464380026651949128025096821150497089382925259505655475773275343304470734732184548541044968802371780967147405615020486800500384205693287987459572060255331395164247009863018805565023734298979638406214982150337095840593077278802547206158064828125146058378768513337390625503510782633183631763990494773915804898533015565997327964583476163871736371206696166168636672421591290421227374211658974743550493458939482660215929883287802167296066952768271758255309775475969313323198042717480533085276223003415660004430212812355085847665138440790200808493947374762698212437407512936424118245055224473643306520842271620588594240686128560145985040638471691142031535300009265723268347013373942163033532788940390376492804312995136465092200658395218784942969578109517749820964292356433457482011642500768138806573488122440673351764164739057094049718181605318742052567015900109851305611181533203626008374233392341834006459006830911099620431839023644411010654181839768334632402540233880225813915620171966915043178932795751715483081137440563303253498166124795683862131185014739417060309393918667018164895919122607479828008699191821929165167640069492768189560195872193729687512862848932788934422724364587211843054194797341444202770807600554451792862329188012173692852784459567631212641483660221312022346575757648107348223691844143480627916871427527397619332414881073591976503648331101628373174690885425432961789049134095337583840528263731334479173902824830444762133730718914866525921149292115790270798228582914305608340610667347284282728922729403898763726260831823863140190633194792536897688734467356620412759960927114404838438063823384070922614923247098670185908969110007943728272798852539447343871216198963151072418177191380477501238010267333324355262676474479951813934933368090055403952371845904819353214831989040508205092796294046163923845021450501424547595856293849769066720715974696745714297931154173008944800598029958451119954329941473135854962462779223718858905818937291177011212559779641532794350849274284752756642472606286795127516188957241319871327671390081372064928526445933874289356113718734937875836674700906007778332028351707444601399428117616014890915666831935153699830023559546004579541564950452347125557864862229738405537713906328923496654407538569237553309767689362840003943924447985302515240430211162531946518751087410987303985277929741711137946706453273135663873972686875027034317437001439301560707078076038258790631615972309227063346065270904427460382142489426292211234743061349736635187846586556112151836987894116593067705873829130548306525458819274659142002927540980536842872735302903923581935763016130470475557936017466745550561603503983805016595258488162051584513709776143161141035169966694592950072297258971707287477623179963230175189038985273746548225014468422723248273182152831219284499935685849314993671493490633140681619383267891526640396972340144322624197823912166535718442603564523758431864724408793619422346296570523324146080096646648628245017948587869847778751560907163527514013827532954654086094477492150969007955149491740311547446401940230648137383546294726309933753558635757314716300362541851950280816375377728212395101387741467203173000300642313514727697032302380937654369743583347987920929059809083118468192376363228440609908100571271325160472710674692302832801287650838526723866782709340788352058653732265652732123907906643554409680052280298314662538835337652061904476747248254454979328855307084468474815634610741140431435513984680160982876641435073117300347270400311600526253885818346444000862719276854714828370576810580630090520391864104555360311764647244325103850957181187570014237663704666604112087983857022071245313782876079166630222492566075183878039177481159557788983471102423633839558607263870115090023068047292629524565593366639518958549757231550192606063221672154529619011242271820436849829937142682523752832354408920384808598409494505003982857617061584252894446483295790771860270650577285175912494371373860906224067510763976902259087725335559978699032780190821413377918677699467488755825809406696257840336052206683623864199119747294292933773703413276856357215378558865205934210092094588845063786536353740475018451058201339264919058007124052842899647377008113407719706521694153397808922182314716342622790349236325749788213579934681980362016308767968522079353117212463467710754014120310550835624489048890594100913068554457248322389088409543895022516903777552569345916982719165417769721172331378963203995905673426341235556681075249985328747537382451209300565445669489445479554601174607270617188533502971313222004543450180752463036334446918158372052292614839497689979605655823295475907431321015892219957865399245190323149260604602764214044755412024158544922484898404791807622854590884102436230682344122055089562836246681674980031426806030016533358916164690100875108710891060383981859679735798839927768523295199605529741745292788488729709040233509544535335127720227667836439761912773629505994530975013836962990850639860232488960013059383022446277741237215769261728014483259484796948187890367072837881573628641858586870755998115029571107783316125488255922560145688317745230326156704330497501401492520076076323569798854208216454203933170634781364391780531466825315188933323457848807081569859343574107535863056802255567579324433347285892340725546432832592716429321639182602758941943911258273761635787662277782552775400476549907380566317868978616983334269423747505673014860653242417795673350453350830913534359063196814536578996750079220341421102772384126652316404218711861794462322922302518985933199795601350877584963048170440496281326718938206078876476799234548789402119559045755585760415680548348234116717675683417466727500318498390790430474544680352510124480322098114910119872575861205956185960223963127447108717198415624746113842604433163527905211399410227291897254714686599836744107286323537685372526125264614657707071113952821379775379980112154111103982999455061677926830598281568890445826883750296996801271824130565288335689500931673020911252091135033047136358456763227279005842507127263533723179487083861402660251084896775959104797052476919941328353625058466419706141597055532019121599946958287666344216973832071102957476015705396742165663302226713300966153739411355740249794405515512432157176212624415733497892290006857712737175243884868383056102455674742929622952365157079060462405611910732291087136763684964167127836316794168361271780877981254595364340839247548303619865164333745593465516247185492845487767111371178618724780527792618156570072690980833250444607504146641016917465438979768008935327255788997058187922398716448797603168215242342877491467725986257184562084962147237620828370023973043294144563699535144189341761392770089414521524372933299874101157852439283602262905118463534714672331549882790504041185007864269563070375874668164684790919744021608017906720465980066921900180188437697788342209865396713432679928550958668878968534741333829886641923989754078899290653157539363478575466232435117133352703043237048834555813054647445025039376553160034515152467386151977807602190234057859687857461034404672597435744248236817012163941920786442213381929039625524083272188017135630748580605541492560228920983130615222695496470791302063376071124912933145261184235696004561795776992014154527650859809346456785037273719918758525600335055686230267679320773667869481353860418094618862987499587024464824136771103091769509357247967282356102157179458612419106270591419671288847640995720010205263026924424532345988989921468793918253929802146224369254794395556010902874867223305996642773299491885199098303501832718823388446263986125372773518170683512884435033952412515993632210509827480641558822669848865046335831948710626459237800708439023120104577042636677132523016016938767745623664788003144390988785120287488512058033379095708795560964001960923124971296295082374850012453720818464730127261883085076370023115946580864054562510799376569432800853810844388958085385643700890488072572936876511587377868711821406056288880381639698571693507695161233663609822969986977826615369535901962310690100099254781661185508629372239016774246741265293955858922749223522019921138084016701018281183883089922096719754591319138171348894409831014019812123665539985900428987487942357505696439786662148395126890571015970803180251608464578119408709780396682083633488613231491367868286335447961327989182474429054410305102167522307437648660414802746276009251639651344807983074445451682247981317771908376112931441247164653518258672784617776432067414474391659279384523266043045942291740946924283986149091475058232792608289087644464991229452206595083827551979141629088231277673003715694788582833822170079463561482445259842576306898632976807021115369000495407893514587689393656803091034593086662411628115965922675033198350166283660771832446844291742069465465767389221870916644955373425331944370701800520099142225422991918029495921763543984091295527331841457053692825539460329744023735039710308398502032248829076625878320637753463719274161661421261562407727056240210739415444710692611585546176098048864617059198874492478240153832838530951276946690524443532323332074548976415429830716167367678326930723993706396139208257669954447404826034733027892721956138955568763223634256591720924193335999369117662230280050581414538147848180866876093752021133389565169641382210861542256704325450775565830526247548191049547225314443064956640640075759307517040913530646509222529492864373881478777682400468074376246165210305567870338818304702717851783433591055934876305553893302064926490132754109159382935391206391046441591128921138213230678805549988664792359031518934140837661481121036784766484771256798959338919818542111744792386628309860679223103727307820498277680439759524625407303564999928147798805689744175888627589200202886428062674742382362999058085010598851252405353240902210317960944258475899000983016357222642796189222273133279563951491249708107312451431586567680508385875889510344231298846998307140345151264628714381915335517604402926384261820800410928709928332103911240398795794927627634036360716994530786526691762371424875438994105917521710127914712634055083697042751299837873485105192003994040657517537527346048215125342991758090946575571614421149091551896119385858379917540444629904679638617651999565254869593322233209400373237135286024630475313040177690154546361856803183550279733444932371210906069419596101550979333632348499646426767887604495866676324987568936794333849277653111430942899654979022242631887570511728126927637328052827534704409233275608445366721993443518078844552336258908281917586737029785002178522565532274250858687190618691688512459908704699380385400042526187432318667434893345171898305795399552888568111229480529007844963370447373484719156256175263257358583829181821441054512480607769549501299995104568121668491535114619978655491876578563068740300360067599888402554634928715341970146438678753238721742076292698596951198236773159972241509005640382046117419609809126437076259052079591946579046285905353709317785352211615194546119628779953610208363030549426561315356766052826641771476223054627623057842696969204321427199172648930941553743379059262021113556715938428865350934697016479907225989749818455309711153546299996864514431803593482659035399219728984387710496723927860262811344366336870515798556961182423339542415532478972234510651039615723123369404057548359173158492892718929097264193020717884310557456136638765260968906737041199079331762331745039757930499098898987970220935739291607589631862351831320335034697805629985560556125560614081764777485680352641053396011504475723047843948857319484320132498350639555287174485124568120243439172222013567905064138624315065622232630729621468758896022352887080008296275479093408422970774646165625376367406756904333148968963841007128259712764667943787099266746688923399064931847271980540956337304968497473415450984136709883876269582289059926598079435935385895409913702314702672753803421141925811516980055471216318661848365537915276552338548052573894130223462259877994940212153284573759453723369766569023383564738615757349375247198493051105764752160536133444962972706661086752782038386358820025369627814067987678016275642795419843901393013862356675850729160939014211979651846178193885982464519209428737389747380375053131701841091399670581970393390144436518630209220006769894411573351883540168857076747313151964873214025329983797538183732172527306465289906042172245897500636954265685015616369623698237904281640531346413426969751599523438676170677909068370797936175519464251155953356537114178673302939195606782263737964954209103090574758741306470657821969120895846527820930840765903287329746549266542535025946123259042652773535013178938758804778066535737372313814852514191300644797282055146517652805455933054612493847674832466200795090707004220793637253240534219396911271168226607510420406825082597502523482633469327536705031116475214448598672696733931594032250395990223835812359246405286102898984898981047713821181462680483724928866322231820079421754230591552426926362003324014803579486914485114412306106438274110542453846307923158452648659632702780476550012369440227867988913499582926717287063689196180100681262529922648458950190407969255039253948111201591341363522974553455266569090894906605328202894105467214786342633096925754284034148013701101017767835380985157084830882156526294231501249123923311959957587818258275359315622372345000627190575719394226470250873486636003384910099290106383799706832060875780778139610238904358828253130196173771904862598919301102629915824905931994408587708720090176336920846782647737941942500291423459837238290294948702916117141762347864658685957560346388320698456248130140672613932975067712036021199784087041215538238359686062282880333922214603537021731619804144557304405055056402705919207094333402350457706206543258937456663731935825031332230555566786125430843522765655257860190076753947512706202849898796977488562208408915614884453451794925167255860871146025419333294050600382326858853410898074024309714818165075692672617087799134982009378731985077896651344300465702743736935028093794393658794488945422326729394367813267132836956332946093049523640577230734514133677434508292063934862584458616882885306021523804824061163838237425611059157241458037042632529537927595637237972828236856719976188154041794167332598262340600065251453842275411897152736737341650044351208763645130475826761489680013752383386307776720079170326297134522991067428798578250909885947377497389630434867056471015979442098397932839707734280223803025302687000818666796403436138269271620338166487198378096939499064456596582325429988972483329243036323351165273573417397588204436493479171193909851474389022005370258377689606885622609146728327342279893797014253346382348661637247680872359331673634449310991887271514496468337547677437028337975240992772123834041550708094707669627606980930821168158062113720715566960762859222627182169333583602025087731977140909718013343219168485093655896355172262224393259420542293952016681207032214960648006967042176620961816479521247316991424141425411081346425651849673645176174290407026180523647424286941954006709878607879082054368323682450555280819728239836038711820747670621421022955197467684894879748562688555549470562715749588592463418933548139322563664138862498147238021438670387536425316164978714267903475929947284870408855373350969708670856392293750591531254611019982183034961107239150205638826471300756138013187474660331256768976882399599108553042887816072433020843959634270596674835322059958097765710131408242507037389692926262172430661605907752820947255790467030653080171836304853063307192988964319754075632492318076139958259909746848615182183022112962914058018351502664008993040879644054055489866510036993395954301219746731632650604226606487399429114862464819190617653554332040798615285079598792408235018177635041169955977722075923515390227377340421428225648709373728057764769294400130170889465362815863359276326249404729960590538851180754686390049817382840584027576492834404626974649564036047850087682602646408481220801072999873981002665909156382729086766985293549601066407150569376449611646789963741317952673884919337587418932703426336545373014784423643031844728056521178656501134322211782754535127266438753955648527533652660067859140171580954304031652378953565391097308808871867750415464266009966406133705749997735641012097171683544837312383886794051395605053409704886572879145574316171379718770548086011467572087924346901910968167377064162494234896853253094567327667315134583564618693244626858564044147567925566988386156071053717863748658409816285528501450836503783647895318297357318508351635999801397070857702721304678415397011497732334229138728593586610140295775410150666565164854127745295553726419213710799346997425521491281666023099310084479649104183085651805202714649012353917932629146344354796034453027883369984605900826596764249957762597390978964573481716340722814341843353167143899943409232466207933405031091675339965292137534369768045557771005803627981948472436975151927781994553781396321668034074124882607000665813916720141966394087058253925269030051874959595756731288199690855068790752882366728966963835468568850042125777997518546507134549269333242473495310056419343865128589224228251815673981469235164581264704497022696214490023358846918730872570810578896209201830608502381572553842693541640910372875677666563963016876039163279931080203353735643344440443378568896084099079290115878252678274207879004450909055105977237694221756285420196441304075794393057906970765505395984826003040688051336749915365768271765800917592284993464571978769966644233101339023528294379150881599173858634146251885795247221960837141453885475523649797977111410240340732156865394301715252510855390225762223928006006363132524342488930052327094297430428180476819905242757700876364895685069129292055271432454606900051830716558762490839560426962746197634513955847708624471013323779510606424471965106015376054281285491072530624437097469457027812373663124717412219470931660086206562006814732848418881634306775151954415103919744973502356321266488685911250542899169116934372486319740253635803706853671691882338309571026037980617595017980498325128497802676367550187887543039493257051067957946386550139763764859372651785121499563614890705806474454254293354201263470963642158857591307110219446369966333031256927929807375847627070579336691170197284761092289042075442693758769030718334675897342991695734404200510676624150676057096878468756401942956881359498977790468648730087545513209208560859333148846184544663248228969934474605334395569313480335903206492213506339865272586001985737938229938171465036564359420795353171183445946739132445159412916832081384751264442396675983803411649591800810459044972452531482905464262994178780345944605242791490603562222717775593335723772919242593569773991128495440920307731459538386931649570957867532993962096376138491598687431731325458131266056018131065874182014365465565468576072401417765908875618082678321747539921425993803986642230100701070064332540673800107004220139167293672805870447363103480563699741951732342530099281423340832191115969124440435881716940049528010092458950032949287102453164762619916777524109670608945304411184741220911434912077511129867706656094253815823682161506722437451435672040713647049724116235971989107805450775254003920950145895242833668573829182504578792497230057308776507782688914055642979051308506982345697567726023073510569437948517422915021708785162645614220985603264576721003928585865083072472114205729581807139741493099970425744023237281789198605909103218584074103759901560385880483857056566186679094324452329994096931832376429313264445953513617473162608636371747992387737340279913790997103032545700828777061442767483169479024681587669619897931687606840070933764096648649491607025193610413498286525901035674645338000897966583229642925954722393752669029933436934126107280994025399463915468195660650122656818750269952364462634156595172390211624499291443312462756809423495318165688339245081512010889869723698742979227398853249259793902676327152430976225147986999987818441316303875353249981884615666358483965924083091311695653332201591417941108345216404273147118208398536500726756524646257775201818124389361784560877631062753026706150913226066129574616511743313262867381395902733689385021984437685973132765068282108619497624817788283035317466059982421224238661377290540193431294658950938552224772717627074156980931511656643588607769091552929200512487429421576102353000564477215212948241516759272704395620744768573197242735753657885944933934922682067746695179936927890498935471761326865130872753049540505493817400652718765184041674029815414509539017082744464071469389237042674684441138813419626910459530019995145647776348983676227029305559061247711131074430549328818837918852150395231156612271676853624644978306963457298934632121242233257435144282120518963611358309697692362213278346970351509482587693671921286917261238405799390679052626092992176946427234167128241204584141903289009155777782436268828575567816546170075799690124455776614784548090323303485775911560019919930207233999193495184794325336770926317877839903217338508784497561266929597818939372165913086210004828125900361892523082746425532431034581392965026812861213288218755393094093787015479068560832966777175811466092342951180597167926859300769446555719152550408441441699315168247344776189584335564776938904635534860432146526888459798523587473598342153972824015034280501769383281940650594894169123028127307096189422698819051582899364168999429071554354042940433945788917452123534670801930738862059888576546997573389684726567364910585456306407364044089055805021070098851203685896660159709947260512770484370764444789989148944051125680433122962244418716876740230669445147960700252271434970237135427599343046139409232413877638216891355099183597246368679729978065272628810941907426748403630825227792466960351393999052575175695721676454644709363052922738860240023742173590199506913189506723703339208162053250351971580968576226566284699278604110347231517837981324252128178438708384624190672946386843992602676271617938056528012615198360811354607473931573139653568017052066263227350063411605304908306727142731070938194144001274801605314563900294072057911925711461633367062593365795188927139054870103043315000335159168649600396039451495015698999895316240751011547575678847444909524299437855546223677870068000739841776720037890614533088495850663353211231677955736113492277471758753611658136173645802419376716278008692047255005733566981388254446354414341104667882903199161951463498695473105738525801892911826588346558773786993501088370903619496664218453047611750386829239070485646314616886032591813878176224436526578459234420446221333343565603395035232823435545636563266157236190369640152242409767733806882970014423139101243207180989142336779834632403005168637929976901559904787022346586460402474646106980775870228672260389812275664027164244364143543325075538374396495180476896729206751052957586260657603187443030884911738379492884183415547884767803370589242618065936117156490629029140419563251291854779495036366288523571784807648092207881197247247378323094000896047050929180623275605930863634054856378092347821017701839272997163931438970247565963196937979525977255816720983179079767889093477945291211095839675285665390945684841335422371837755009667753849487022813405361479184567759346865815361089001091006097557876637992743810874317643047522868540773917973582510708712997023171650289468032315191659388526718110877347882535871330719442629538049271333389681682068967867890102631877862574646534257448735866987644700261998616473075040376128877186703015239229914363476723115555026594118929560885069990343905638500402311261307392900928062383513804150372502284519482821368059251678576514213685986960927028896977314014727013531984879048174754256617663072600141166432223652439424039720065560133879537216416118906158993958137010437959488414769249721443430234759037640412603256219851772872598830372302124737294597961806288916503318840034862819497485310261872923441271147586766484979169233413813015757632694751035021704975118713094719219340320287757207879334673224650386555156171503705604929516852471964326021771828158416942859901960753486239206541256821088469848225216619482885694638220983293836276358504904509285456889210257782129589404621134156259890180395381667383328694441452982056097620263738061732114114213349083262743548007923389684024938151401465799587863502486639953058742594674230928172365382988549224033817059210235539246501529086330633075655038267729637547439025627275511293990579825194228736052779573190729403209386641568406502756344561878365935135031775548986622321452589815991237247382235977929060006821857473418815187548881614223585074737800611214478972433579907550700148634393874648463116459466261132245265020883282379334133588561948970466293365335490394817549487551302530334420080256409302574699429756655324916463570104350781919401580318947339448333208688276361740533296192175037889202984067080665528629647081202007828361161719689591877851130842450889023128845639955549256320767842097308402458313940874005861355368559554640186820753509320174691376528702689431796438414589845287312967263900052133317003093365780662696312809766886711278502560828926854046578888259355142243144844227025841038478763551630933011417206241201719374298986689863185100411725155474919356660933000370465976125612104593773155622882626306532641046688069172790944006044682773814481928604981327226479875922832712716383975155892341594210750834942135938685718792941571461771978819200776501139970897557496907886600545512921130733603730333779578813314218756310415038059131722279138185513389354487936471271876937584891655158345964909295575493544521656312375577792836512027444914970355344312861938414042610507599795233680954393999381419990565130769226757470919035921521595873471374619164163563113609276196645236030194198562692907186687581690327726716832312164216056437909260524819131599116846697549707635079022025410610476253384369729641735116276252359530361587356576808622046840119163171179852196759704750605485396233771428740485543447354801867422649481414674633993931749621513241153772093814647337986885166597378729033172135171106541026931845269636514220350058171885775258266869392376766159980701473188599407571571305708630437505460926633091776685805656972667691554480531710865408750210408786585895955434680866935132420524868950302965040276050440267078630013800393839570785444797143182558895072684981602778293057671349551701581118580057574019466996120111180010649820875220358109457700564615034349663126589813435519756080297594937095921726856053237323338986555522663593275677774750400837789718887692437473201933655529247722785050825449903403836236564603429549563585893858271267724063377280271836774566166008667957887619394771820090734105532910494845464527486118833509413013770250361779501121383294936902324932010605592000977594331412671850456490235288996805941824544835437200012090562081066606891003827885026451090859710386476499666499512970853344323739581154447673367837028227159032759678947545793433186267574409227754442185358199322183517725713441929551022222944173936976805718565019316263152710477856330339132188801175005840866203075198359116669743986442724614457925653160317565584953652842078548290072561190128901613066330690101567246186345512977083018060723200304395757297585526498592961963407914375707228652133578397578424671938730628223090163343773661724346397284523510103552132118369294134214658707855281699225233748740243120612788423522610084248578049586217652517580033311913258786155312663748467559987637702575919721309583069486407187887326245092783711044159871747886361108991115188433504563706127428616681840284517802610030262289926944884500972940702432512811180880386605321104840688404722846742770584323806186286061023679749022560975997476964650971419664928541800441301130049063996363036445523466588297563179123309196737629808124353846527636575946404150803089116089487478911337960177722109577243656589483890764403903345809406199298178080601193419901406267739112223268066472863839191753554275059083662118294346504110682541060103274785204787818344469492040883661387220242524681757707255227895947736729185527944261195161415096839764688923583135628218310337388198569104054494863836642061201385738380964369075351851318226169773518305914003354611307855924264890612275187277916683217178095653938841284461259833023301635593942468114441807959058531425739150713418760698459314735371665611661151638142623812877927953247951463981172488505525569279370893642057399153497055854508002082980182905864031502228060849989038866107047979737390886819909467321133535035238577856841937907407201679397434129189058574176889464338292646592095362490374058791140702080728816259097964270545392640266799711762287359738015806982032848745881283746509713174936875805628392191646388217332640092794812656791174097926775151164456331399142827389218862333281604016669506513914480574875981563250066230874934192103622237127535890597092106239997803750096882025515673824291599453714770373309852065780431554257264632790396322169801175830107858521250981631959750210498757018853327172502727036553526445898671764483181286768388261269084760667907932061114386230765650342132916279118606372688646468494042606023111668215660988824790607630410481928270227252078773455420293392717888651830030684540372701581857860772778674938900947391791166594921975235947310545114553567534113126548191452375441315781832681816001657674038201818510463079218016863273969127240609330461153842840957525466555596510733946813331565427610009541609179707594813175906457849517138120042385312197198343505022875565833541663070962909368016686233803651824884890376391524546992675042362865750306618272565461178832155753504040950145841534175440365249466951598299726059394947228785708417020516958668101493528688806766812216507552980745847098478228012096099855318083184659450015353815112200007823938337723477004357853523749937536168793323398095264091326408990511152777328800192534909929937889398995926929221190439473407506054299427358216026572809045236551053549272723430877449057045024387155526588941993966597438360832954774373121578155380173397369096704774336618325676134263391720081238492098199310339143308173762401048298601032059137835126700724205008645568283585334744316557080521173312642091201721011049983489953062021843014228802304801307235091420227119288547648952081033807807306575441136226670883395738194177282580853540724651017165694691922451440614832444280073229750161283439393373603129383202664829122214604256286068533222271511119511964080001693681332064970951515079932777917494785234593519727450800585703729018056333939692990565743446941623017964887170249147103150249996478294841670432156036226647759148837350900420144410134528731728463216963253432455558053604485820527256818602357865753850847888352604761488559364270719172670481674586662781823146778129246343088252854102571597418865147710794871078349518415761058243781052230437439315822790634405644572353517040741898227470965954601803585361819916905738748932802199319059033234234237145353103349991974605939557620560341160672437599322587299827729550533121964417510003351484030771293349944221571152477043158246412797364979506851392055517827983340871959552545642691328370604609463495503560050221245428825305585441474295323981797664136915528258181700561361338158340633678691075790743334511954980736306097055425752151404762755398592878268618793590887679552691003909998263239494921945725056177389832285693798292319672278255127654629258846890646052269123229725712065792466066178591744137952701700249824921243832407732554439523677677439953160310879191659742931755020592137942503680626352005892254240571558959341252242914681601543465438382299907739964688166046588682505760116365900600583926835242572607630771981762372384778077381728830971037793123297930356868450211645692871716699172096367565525202327922546309780532394828259042039845690356999261335235988426951491065726248437773387957158333883380776300733506834067053421707951558423769324881301027287445915508743633013488028076881298422529237085926020919097979886469596461572998618732382618012172964434671004487681178154567626069269351151534564013810791987605960186477814266242792002175451338185988983940588793768654574458622925919146081903545306527903939320286797155527712754011465094378866722198122484485587628967873555763240219651931824696436799746207389917949615827499054177745832837903327256972182965232017217307582387656966479640404237705238593274370276640249014663830310110820630737616132917440658289887169130845351998134371221413593191206818852443396221973713171427736320789765352944598072434967848880746390391987341223063474970098637629779328134905836439168305459069029239460419569119410041221005673124360139111087293117474299898106615620276615097663965479401959986431508761735914435821901730804321239835143117134649260293507854085224142712026874220755214624391339417726119056667377684909245956095611822084564920344504122422849474093184530144861772518499643856763027929524793642751971145729212023903250699921368749874015320489481022234506259187471993358328841983728467752222125132567761363849503798774430858646609627210775056206316621493128477392188554584471288874434345173264377326132881521757420107869541159503692793592219101989623822138792975021697709109193579863816820981763538542322468210834826902617004043888437183702820894594085017810068201532955236772339966785192991310023980830055559801740269672161659936430022106160639963361581728134876876998353810733777548054630347586476451954169390572067168501683447217504235722120215057672700235351340269224813149693994698458367795457323011399967654956326211270590770033990762390467171708990058196817042407862370068444017965906045115246987734574084319639856322877198693243463535533514304179498596127043753525608892898000877936828614518441855469743882942218136030261459145141561732963251550354735844315914308619393513374308663470498850426281369067577807746216185790426978978000969720939605991139809205868322789347746413996164882131770243946232422935257811862784416178854839266994635200783885145713723516953343686580382337966082380600412355715423260815246991191643612058107331065693691982954790751610577855913538730878785387959170934333062715836313947717367514690753394582188192982190867906156074926708854937602574433689883906280151588392570901839605105630073188619945835743378745235590782952971575954925430601226049421851203566487724356733298412367724887877069510834864463503616168070663601026168648766186699928243081930192017854310716010404529047317058201151143553715414185396271442447215229290822742882874255906259595364165466780599841482904615205076852358785125650892894392340073347926249692785512397762237651263635054925194657955999735591363320586148764912700258865753458998440790904077029733385159838711344509114168067395731355111937220133173439754510030175931699203197975375329369670953890543225962512862707223879168036219621233876691903466975067139590140781175154293928203274295530640028459070902333351171560591703319730780858671974028220287797010374075332479181240045099959745396141202906744770235510486448042388050121328867040743310768701929405882767905672195381712311355711489348221092203889278299351915718574007154142961397827159059888876630312075210822647512592024791306249533772825241745056695624010822429562227989064654660668061397363132929296284926208100008546282624230870899633788672472746328298646543616521538500715143717107062394879850773089526853471148654727553989267727514786038163355215035476931475884825670135283691611157661009605849190062377046357570203259949857497569723047464295151059919442418418541544308393698421701307774116160833220842681517638895742317292559052782231014846124443824271876301079835826920206231525650133423487926581902688906824330542166125339233530416021450535887477462820719897647639907771944469152602102636323165159733165307980802143876491661716528244614118121747504599411886574598159972504987110621998939603767495322510751699715170692268387377042448357125189037149246966630703759167264691899259213028380348754203428774896327171589076663526875972170292289466946435178897252484241836634231216707984545956927943024475232301563650325659903472578354212357952726349559625036922650897704668492871644369871294798694980055819058198371806059478218328468356506228117315344529777566290932985879976329778104549356899950313699344288733407364958337551851338988253590566531933142489525654351010091051332465055626819703804544216144253071418203949482124805156562326967450196982111311462178760802863911393529781841799735785062599601520628790769111242359454958908984027425128889227522986119886630847374054608802995313588419351612257869034960323035083082015331549430745629040530101195629247089518554171847817841626851610895144131768621467699233002716913926433562630519111622299005209657272778829412155961308371200672218432935319660322103143491293694777679482598258591832202540008365979332930982512426219841101067738347068580626373043394234044477166636054444986123901623631519119490463682024007884010753921493280444971846789158962715720019555144686092005569343218606338698527260850518519214903549790864266858305205370766807637891863005475540333798108972001479017990421310788944199210151218623077251428515143906386010175930299599676072678109110481549953671858587099973861304660089463455686657893756243987979749937028774031517423707079157901284074315514054469148591670315147273358493333919472744385738788912026185168233725840533513954270335596396570208827411982031063258755950456743545975493239660352579962476929380323812332714608682717337756809814432231696756011408524981439663021545095679160536405698983599816453227274394427028160265386169625909549656396554166694447791852056976067200787404587534740216555211337611782957309696292584485425277503076186682485976081580369638677857833532226694805523944537473696666412056113354911567271529608655783607668989399856448335096655027471366164080258610281726770114989932640784492254269979593449006971879052888687288359467123311433388275418396603183616043155923715274625306960112872198338480032538654383327959034551666015541427957424269443431188263019255789963533591031005020644007636202837342414829395314531593383269696309628397865138087608351165739023435112723931229219424834968162098938731716779063161024242889750132231337391494744396560158811071874715967064575489965464364218045464257599108202723498578638189204940310179959629363703342881239225517061075062348789316006256009595829019786026585872997159689125460522444170819212223752086993588680068954588287873783638342037233459348284219143341184381373036594043307552373809771826494253617817989830187311391540662981195563906822845064216204492472781834066075481156306006563982458426478118654077590624161301665705426655083540496177042492400254663004563362695232508219596976624307588370754858785666493577112761629503479614672567141425898623290216226122792837146570019499741757522910197896002432222305133873653194330016313010696358737356709427341760701207496013461707134230244487716410091562347320642014679017508032703927830196909206526943105585572835579197097043208980125662328319107201406253080586810268351479902434873093608064562423048341200296980817903347983605904605724751927736796026939508300626662052741696770757172401955783453988910437502805937063200401530110420725838882338408549412007042976412368004915983746517641037657355455409390827572921514614451863059446795731489874031115551480255913509012670021608391008867185892648797595690320761784858711434995725613879874126203768334276808350294701572953785447973051904263193886168215832280207353441960245106162882302308487703492187941772970319353974938843569254894758282029601622751706961145486577668164676555326046104013793054904686888264999261267627668451854370297722727734973065174355927179302847003563015935301945996069990845074212886191566699404279729873188403324952433773961664262127050447224542078564354224240977372509895622820876399897888898091226760855120605405357464786139081933289283204779565305836001324863089034650466550467256002474687362346684876952270703728380654177029483410656146080135229962042367510526318302512919543076428017951085054263058979540635956050771112424739347302144960235343069938273387334842330158587795839233214548033249590684746922277797180241136728137025931014909546391500881717310413662146590655649776359022870657895626038474646842971128761259720793495889186447398211212911332741668196696848283254276258412101684889600158512470838816813521878428941971674557569292657434983824475066881000985965952787117660211738652364890533043154854471054246230532220828240208723221771478098794425379705375848546633895367282651917843852753510853983809193328530414069252534405723357861228214049292751043407573735806914354390361560312194006928720094025074609455771871648594085614403798298480553210862728083985509182858183590987577285448196267742838021944777014210831209458430337298595620866996802576978762366122461924845194738489944802124898463305500338183229804278336180911635793048792135692034571672986057166173383115473562503783361702406891591605015834623804462609986101152664483233966880302956657784863502511344408509191686576456787180891368595905781237744878452500562109576395346120676648520615241816030002994800642285645184229315920436372034167974456248388185874189963754192479366167492601111767079035648687529431468220645344952118154601995338559262838320884902843393752644806202643190273333935831247131001729306255880384966154235460121862448863085315995811807511046223996190562965963540131772453453865076099223264441602528002071328368482729438880008593238147879684902365274000006224871741845259526354396272198672030794600400491620920142221836628788000992506523907839518790489393325053990124344555176645303180056349815878911973774292445074263854123689526789546682203219972005623303863035461150240438658168125468794689658377024354897826674737799676959578329570011836752208684571288023504578314565754818259889134900720978414406011270085475141257600096844662215155274109780619656226065434704568900580935736173735863073217332820684385178308343787794406929436793273577439238193993829361058770124338289103367552332007035982309360241148017824427701969903115627956248988723026717970335304751889556793674237151263854742718996774990094945343041338101818560258114540968030668544445029649698000988566888143488350875025521720601353855587549598468664662905729221208042284280761584919304008712908605563781004610558542380155087354520780005929401176386244796725108671835987622521669958211472283686871689671791217565884479788041377034474765962578749967153607883140812869236724683325062676756817516313157629543431102475581905551328168893018384512494091598130386662806388816889785662564286752598335603450557011008524013724058244966085762107528503065486035293947680656584500705322042245766964800480919761435056004531967700121283393397682070914578765927680985739464338508494265161206801757215349465648695931210717561073117762947196169310494384495273819841106888753366181915532073744855347612570504729144066660891288958103003734038441928807847591142094554406323520946212622680898815300515125228956579358171385561567175544933473931853724820970189695399694421696800556442716876534734386438460894638061810107473233203051538272602303765798115728034237013670411442632870000320331840056433586076386123782381204603569548711943220590232126544517833387475496156230777238925798270615525487361022972561672781821957648486526443730143569409026864534834194240527235001089001879515622037177884765657058010014024754355596302717833897660110350460507397535601861856533249303051552999673789166921515467453062350977377403312686089524863894404442675832782782551488735680646941446309365559102355845862032312656092751154342937771363969945147599450847026221127427265309569085884058399731732815323166488872855496288791172058018680053796103370988438417431747096051597445120818980663124802206357816486526022450590251740183099221563427494804953850512687775593117530604954599147036426323687077922872415818727279336164554467074652251375200723766372010698601994213671956854543736377700067178854283478084452245647437309163279691008868883279824000137272576481426373738312904365954633500005838410596457369166470818332773363738795612081633318837535806357557934411668929986874232359133962486614305835828072903978177875498414828853246479770476078885835300674515966362151554038179999363449337171408035657731051287832912244742659778609366056991312105437115471839785729409821010349188454973207775735571182455671059119911712286758691534037242210302303437679785973901529748101282726517599398470904635505275988663193221779443589661608849286641008295931116841984098076726295372526782958253561247283318393176485080736683147239638190741192459131935995815767773246932378982284059934295551909667530419303790473030783973312179940517860587420870551579266763548917332503455193558407049539602782709391074111879726277342018097410777274932075213337374471837811117913649348167789713645833663321660602329643061854811182131399151264910841027776918918870885217027615759735574488949984924401740314123048075118058019913062305090003778058562172993751453741088862360027852015349440856254175919928158493317676232271615923848608501130660144222499435353726532480246495615485466560072511939805417500522816467782036952162974745854544891974984370862540076400826098120908823302847283811111132006009808395265345901513201591345196462317988731457816628257852569242209821346418856388537082337817363371520830443093372943951442431374530258841731746195136922544599611062219689653348557844923497873310858357430952404618199935135549817642969883307775132596914161702593650446582519346061040766456639200106081208951722388274130051403087968058466904196150593408895595994540997801550265401631055792837421430323501639202545056474475158132495447556484534386461874105830909043354066338157006678549926641556487122492069452588535386401204645586180312376491325578461903802173999131150364452724401716129479205848900582774754370178398989949647452603352534811323861895997135043862522115209891264240451312096335484414924579856172522511549380446916424825692976027069415542523545708135496675411588162792500380804823991187364858318019991532126286520574833630374574473931393368595664164917474688376925955315374102811508482140502616755229999260695676349571407715198584418261556198596953764320867132053909981943995857733414162768197492026933358959011290595776261561829973006649300238211889971162657552903019510777512967445069869901755868096810650648400985301488129352831777462364605518224934914266033283296076617485184839509513492732364771551756580702427748435038620383651547171036866985585392638717496407341303425851815844582195119304342259337785394293228579477901057312872854529836083393883751950650012569440717427995604787353669409749198256135599893282532296880332711010286998359103618715160261038560828622537047362683927486197189650590820884643106267546065121415272090567266937565889540131580333712107737933132871778040365264268641437145874684833610491027566250780547963221333856144477012071072113681100728587401611933518840431948199907153740392337811511835418335886802691620330366377248769734873748995405612666088186809892116204360315343342629105340298395566672231265017121555847510208285736077708982909215328456692904346959046256609961810522538710850663827461374159570271346642239565375896437284174586120132379005548243955917368131796374721159823884175067380529649980807340439855527951411837918105598210554897056444632887528259738603765166985788126675795947349014699425874709082781982659747822172411986307135557561836726489077579468808986176971745139810975954543889415420028974607218016107249753087542894285532853584575019938904591028121442595955892690987272513872153354936467656277092356764328253327649561635664072139884822107906688647602814517665234841640572591381383078621495053254173677861647383839279135808465621151385086887778286484341286447645038026719845675676478488775662095396025173961441969078572379435582346092584467848903753528858504783175156692361982410561458530667740973812287176343244990083283666183964757568462655057423133965971446467405454995041131556658054781860311559369483032579951931318062016139214471549721612090362614295770718045729052475557095240805675858637812080803806416375495470808619658390052021778652390379025098080357098232927415677432039159329647613390188464013785357115411626973976906791303432752050003853903570177805436744565870815105083923239473477135120701849569545459807539195001222226879601994233662527012491818573288423034224991919563580047875534882641886982226343096705794548548817902635163975798534706632504672163584545187075021622938403520561227689333450588709861819007785553706778835021927320330431007794835714070137430819474597779777260176907510972399659124021640688537989666361074457194897214440251352341766126924160710990569648771833910000716575705195719465335164354935062423626765545000354612306598970349000445919337554842830198529363249476968250863978431605331494753239717560585092326840968360049793837596315581670497891988691945142061967628162810828209718640613369568878560409394543186816526264348469994927407968031459889990500343601135129821271740098716332149428209597115472398869281380787207894548751387729548085341965884212274130053965567193313956142615770299959859743397518931390020341040151359917172866464888118989620061712690678531577174179195726923401856580613738004089136163189088796394325318162194760652490107176512722234770731649456357001933153971347017309513278927792348457380310767561974813717560831791115210575579874917245375969260134686647453146956221651931917798072017083527027612130881080118279911561848534485845572376320728880124097555787690899678660165690391377985617695200448946336550676811593926947338809752044827242591544103254423980668637123403478468281712630449940758546101527368011248900910100205689101219121373459658709515741580503656132083930157069161651895655015688482828231852375286703752386657413591276545473374930160817312292647434827321686806687610180109111393738175211368604441734967826421227353626705206653794785863916955150538579901632682032908195472666852790529747801476215901703958246787876480089194728534108477863659439184102609641425511624858459246654823007158023638899897589065089081984211967647802111237826233238723255148202492504037612615975181561171551925103597140659644380173073501370374066290139326522309797181785389051441068628295514073955237301092236471049821002334248656117401892654528788863878421147557470425612485836854407542814253619149386278863273970474916899014098578539184309524977639354718840591019818865453401798705078720947057417184803459601488294304438878349283426948497071371398295109620319266046525815972859958168672415113337360775823006336792571853182663609986826589538431364006296130266602812585059483578311061539550490372216265607033614343541597270193970134446136770070940366581610772995432775558801065020270600290778086882198552046245290585186657436184668104866741313171905911498844143346700008348844015302353856119592012236383724744544207877674731411967387170261537412485400217638596451372451964257003629413035525456487445978409413811964586834500430435163416230499539376605658171483848932391260097406771993655323145475778691664152153033010186594616171912413919855618142543952599341013131537320065403906449838622304235223733290094590674608370245967175272959881058085194814954432388042113371294796264127549105695646671731805782266238737735962597967857558945288151906000997307154073535501777000142572647963236582060559214756621768490815629590568596808203555375426144410301698798545342208701820991256415204308590491077788686038021173342681060918575223435623264327092534633305106894747499263269881195180288183795254467524399733149875013566197958747135826755675882397846703054075586419988764588244002360337771212691423611659281238496171806120534478387540342387345582254311028294374597332178809098169549337350324852947093529419460044270874303391585177884313723588644194752302639893072637676789722652541455576721423656337700336522203327613004805662189469894798279337685722564650873231056776865887462739307147521548848812244108972552677217192238941311229180990508920816086081458583966841051885415828037621873055048863121838713511836215205115759580167127286017535701213925302174094477493426291207897181874492172106393408556740965946059404807132827499945757547586619811900840767438842485430880597134512028113445739965682379147461071763184969300404998337692477927315466697737893992744591377868607619548103416475971523227006630657195493006125006070480311566672200076504894712207525560246901076749992879203688240724329758912579395948869521072477041543749574695053630404358727706935353865181134210369265555299199194127434332137572118834134636286130002685936244122569916572710980357902161214654588256230173434565464183083214153387428653861825745779333425386767627996722209874251757785329025207459711635004092225242233874654349319149016157660732692735017893856981954954130394954663286261016259266664603262509450035890858668572907460732422159380431163149028799692496378591074184162340018040182186646409692979689458161512199493670407747937248835673305508187239375952649982882958469280847291200247124142284236916129412807803670576528294354587292706121746776816042455613255641808677234776386355571611588827709848904911388918372573754575215952872532613216026906407694324022334864648302715359656024347017843720423930888442154454600948262491979766988177792595866741747987376251191650407406914517253370090202597897512778219446698004260596690060028806576063763602142645165005364798505807073303591572788338564217822966216993523710615327686631156624147613510527976527068470652345049676049623865676139271616189345075441370818377571744553878761177580414414147331873755548911051691204511951340901487880495807063608939322736031689453564279786464743552712727330285653022551331055814405514842678656783074739324501368520772386990949879622752286506582582346059257253520357805067157054956068274011224910206025759901859130087151127999089017368231430007325504163598736141064699466504168277688463919364166282918682169635472620589666462886217086418047481032609454209838872418148952813299516446981512270872732989994468656170682258744113688876473785924845571809447273924666513420667796387400050939155683917389845982688426997546320510481177732562600626430494439403618099795856688732544935332976136245459183763543375278989191161780264248035421768540247331401706751664522312601379616198707414865142617238988041553717820119103695279949549386185805034933790743315441767503950283667699704659373980740306821458299133473707015651640747705655536112945025863731191153524947747011211378889307769075156569170875113952749465533063811278247893219108772460336494958083042149188607570460691112824051427438530083512298101979124259842119249247897520015526308579131179292163354070342854274019994315086567483887307574082268171321496232399357788085503559102136116767666025977717074168507406497661950024820743155085749427555357010035687610622936741483698514859528500524201649860094578201684464435815683246867610414534622568025365172477171410318595460996097573280380206186660726622844155066819831875627325887756853728033719082049282542595589041224572594475727127881571673645726556762269900147392182326366711229176199335058209204921270621106466785457965194884318403437170280680250711837678262703215493309960552565349943768698172805949581967818512051523084984225963849290392712634074984854292901488372464463336003136128068407157981667070529121176722550253272245119425966037927959238287709728509573480820782568449653791978885057105282013255092122548137819817540138924978810191659175803414691366773977038448517850530721641977153738325825792015240233058882219317450173915462940653628413637698275545100253858737892789105568644719246590718533166223626290491925927505449164392442456347612091353179304887836276459765134530041065066504792845333198395090411240129675276166942781166337663450406316537485005472946109141808149952224111575008991475972247330366230633781375424462797772874569474430479819500600616500576737063548737508345651381495061625307807449677707312042754718845396883459760283475161084366815749331562289759828324125677773472713886419601082845489009500607564472832587895886724224956909992164748346968886103643043154708939427484515415122204257382495116743550144671210799246347779519547391173548572109388949407078388546572005357094818764407826692400712031244963833329535593471986380932924977587684591314364083101310173873932930376369005722351838990053399854970147651781129233902848127109262141426595377558290493283966381515141635184720303919693390669241332768366036235888463185932830959384279249281615049120323644307886716228480462119050804470515721444751574512159464534804821813034622438537902508470189212679118737688665164940031127625204988212178694292233678313556834787516358804300914586221357317719849052737840995189944228883620234462435867873945533326222441209929126572185019078047523259948400892184841014256611562081609213883208064400275451418383041724923359710713214074655848613683709696165137371336583963245580236962489556570131043179834000082784833346532750323892262258408719777252542641854590322372579565979601184061258118572792379402930300687810680085006485061274330813811931615215390231971637903166581607896171578199383848862874492695712943118646873565156491926232622843141170674001337220642633941853224093624121487603537371746078155747163925180274234967202421834780617623960588195148516455564901177630775942429684634688788983056681087295080413593199399927169074256714561077317004147471473286388180391129158259998535759279135404149841562700853423636508617243468978760586482570941021699876603819763252732981832966806995025383056654607366035082981834166953533857683265747698644740773332296421829001471835574193200691364005304438449922199760806839290949247318523528243758159125332575245029489744367595807978957113366590251680260003053405231218444639901072378372967830991019131117748989433087726869961714862753778160392623468899882920217035773705604897098861347433017734822174671927112778398351748166447604996796309248879631350136464313808453042347204392745881968681376461528843292808239433816465088177408184919558844100283721748056230173227103099544287221039285772291258995163452532811057895860702182042854254214077892547042835011880789689319865415205440307331829263237331170236380193833578716363856697190317499638989615656635057902809325853383685062465031505563623868349954047382074760522543702583220618161235249280365796493418553560978513493179322802211591989869930305966176414994124775687025199247476735863465180947081052664956127414435720594271562905501350649441147613241519490165150741629752050547904135299283066356574793205195869711695742365989843120979906830895572652756875073657188199713892541534688086080308544401231333114522738598876925326605077172114246932303157055786982427487065856048117762557832706572642051687378519561890911547695996244843171748349262276039939345602955608582865509359980481391315561711197650150819548937798022670616004450177718993262845329473457891377113411129272304569137943671138385179401761165489958200925636370902853790784457557222281362456914826519281246254671189325318390386878045313767595528409054636712912331223036799012582759454404776027768006158685439621770884713806291792017208502112947032865709945097917203592077747117099173342178934250219317435436997401742610063654324210542365739846718990170562746228653725437472714680944501558773577226436001666419315398523581498878097713621483919508746203967122784893798942693147311116179137138509482499017822205321294539672638396950634615296427536748550883438290195321566183004242690024203396715251397003818266357683183269411297783431837355911775850506741164471310494775547700682719889953392184632239626083651889133101870014223519414473669529156998896334095397515431612022965401278184880932326777927739417026141869921397228250028523619107469165688676665801103199058104202359127257618820574780801104413665097010633502881881040697153827496669235716611593204892417962884789798244965893322640643264999265416375206961652581914600122690379998366535482558823771847478558474938187642797891459323962266010934275538680759029114532165320794321137391703613760525834783257154141861398282656630768388292640011037252969238272955631663714047018868275844469890076311506880837735928049028382516433242491493408008218013002386137187220524454329669140830615456873246587320801196645591373322968280154480413243471467615839149492329089563387942370397244910567525897261575142373920099283669578339227012229071414044113367984624198692200092750164606126389793215044608251564349020743673660438622123560309541580748389339944082609776986422035059587562511999079232335629863165877477936251426949218390186846708399273650596602677080504453092046565069228766853700677785793877609546077879544858538322165919294037370638907956685362120736572441977461803355263841454667003544479287595932969695084714075729168098265886572553086822137495485142884576462334212892948717728009813142023025063983964871818557997008243864984345466008323930043994775841283005249312325326552050903765327948875385379882512598964770383364029000843646540499539169129395420817915298406340261333901017169635820002841781632025754957323659801847355861977922273116875606219844764107259516848232836520797342710506120939749599052333707321727280504641236064054640627320633045953021769064207351716714941211200054882030639311206392139134160787680254220417172837100917991269208017770386348274808690872975533197925172192585322077572494787426940043413147671727125313518684025513669508798742485259404373570420616089258557193898908489703200951866880947221568303178225512894661986435752193565564751824722901789361686940649895053119048676442020851413700774888237550783892583195447398078502680173466378294765705791864195142394379314340085380743101331259521881991469231270522549139360307270839310336204818343397068754089118430602603784005223212860990018969666139459677367241932854381578314338560778562372404010114834055020511005579019626622236131652670969248751813037133131731238751218196607391977265075574260366392787896660812156250841813893319550869629006323947374155530620758386490923922245446679618652817406673185683224787347116207244670314032141471667407677104730962013228343589704478583536654284522533392780216046663356089659241104576094169259247363077658879131568327296831169682573430632071888716375545694218673742554565891309184206814151145068708712096598830235821382945156864292044792437453009757194881459839410731605860443196445098090587898761553310034744552155651970000702681013057377029442932732266481104524928691616052675731332969057958351744467258850877915074656049596765441525083663059942811779360978184071690867327480597100388584282627771127505382079752601644774456759484014441395918812916577588018122681511509268896230038479697990311516757633414498686963077593726813502147469780969515576122364277869937527796753878529917635504550830260576903318132259529502894277729541511522191373542320589198207339216703843001198655792897775824757651977119022111971830199023999451304371885463831866019052844287203103475933825043264432492450113210190956247237267521125364048406340389211805472339033746618758664060177339128314957253661540732081815647131554477575862654940692919386074176129242745904689897177555678573405836420026829598090576204878311998704619044124405868151398307861700519780730677957572869295020077670812030474419883270069346725094103148342106664481611554578534092086901448634826701264608529481898616377113738074013430060006397060107993644120841260486871177571245184860943288835475041321548147621171742735339687112672290964918589971686541204089299172890130507511083130895244982809286466456795724754601789133940418523556314008413107798018292287535410594727228691632418586621985250358111345235002144458273813488127396552468443265949887033986427635691072310877335684575068687107972788632231740776235670621183042298486942535148983527158270320811089162164959874776533659899365920383610304154011019717533043465084652720908662489794541281476977211936115161401405795998556485156931945532902840941949731220438693522410720288359660686835658610904851627503310333329633998602754498012857579498294639950667868248353943150091406373643158152796642059233919190914512799332140455712738806976616189210206042134153002487147584304904711347900975872321698359237004284412506559967781080817077260675253704502085313510741891055612485667877617409704359612511441585732394297135521773863108913927118456405559892252079813922127544158128631480909629653796581802060816970460510376344510404061629867377320254672100684181406073010554877619900795629014751832603601767301744429548097189894845332619883231222543261364953983517836918925169898878292381773556487174799736121560924974306249340479472523508842105558708192955713994116001656412284825158522307932534210723370026921616782693805903818590797365937173130525754460465679621306875763120058312828067298115996965111710180261273982242563045875772864362704460634839685616083102353044203503110082038261936937392947812894955671488130787000148968497407138046449219374760817763709678142684515992250034207454102216047260755505080476927512873427801394576871607130042651273068122718938726920291737822727794488285518572095719573232727040928785974148040149075043042945020845923183698260639233929615121869265085092850305620680984415588807067538160622098541985067117755888212933434119378043416900404712388546522888965271311395137052513557890060241229972675344513918886731793907471104329997299961182819731595441549338345331584847002013699448782460482809775359179699941929937009876905017383063816856804692304597273682103790140726884117012792593934296639139261380190743757680187856568101384818235172441734810427566675412806567120789395774490649045766054994174464718765158217320425179140904853372911820597124185594336723197694294997926469557803763940655948814511118389679805319767343513817809000896873296313418454431904123760067237414863527597280034795431860841453218483085039447105916665396812346798683451402406395211324841484200551822488689677083764391615195765951695074187657698171275210451758889644107920420401772770430414962319745838260011099436139055477217910556164459679321852213112898006594533834183296007718050463950241621093581034787673422523190872439038326399302331272438350342502491034854230852341214397054566442901019478490648717682137561907917868903378147531901706076813252475675078004916639177566182927333801065313529696490374561975797618630773680295571567986546604404327158679910772134726332152380129190205781093638004600523606259236120844515400737931149152236572702026411860486911144101726021594985617445221412972192533938588928276988987614242656487593653137839126680036900001858146047080030372923275576562962745759764706989318615449012157145586463019654806162734188532533811042955760160444464922757757047346828567105410950639824212252762360440829957068459716715449388760036322572236084016434649407412949643534032173121819260820378054913558224185186998963451516886620741809894452323024391890526856723647477686989437075810900758126289144762562372688655987692876522746255389680724963729627017933379953010745483544132438221214913001697955552956884223441566929220549768512152256668626870094399797537429334907883118836255241136337797163616018829983821045789161211398851801735432920998905286655112045650980372849610126198015502832458970248540085414397655495515466439164448239175960797463270174328134766572270960352862214816166688834821750973989855193174424827962080123367020733849115928736252765848067725016051679424745082422100692304935596771127361000892546409695316240942791210698349846380059617774892589716007608513442721596479365984047314691190318824157227572340160659958839165048509622411318733613707712390083526164768753065095315166966576843399997598933016163693431050831185007916834058023275537503647491464050967476512306738830377459968117929939929187486439888689314875077901449937994925924731504520621934769046815267037954850593192378212032940791655607723433317103335378373510527642092493171410904653177993271270454481278302650957335198970893596214245935208296580701880896653094890435619844125461838562097202157161520822722367238091383272225224913702514686011148889066207495024083898457764675703736068207109205844776074060017770579052298737459643144170826807906860136939294572876888636599016918540963311973030757244448147890033544140019213363668073476669912921010360822589219799012380698011734722675711254592727806196009887540391007752585042001336991067285314397679097688567336856823814872986248293844106136979774723463202790867773539760055035389914414930776450623363523264303748580995477018528399440501433034336251229107791052647592211341278162836780198975744674479311161177074300005305733682767801979794890303056922703189269450208872634980814709282929315136762733704471256388162502929220871584550416481797891225593259784458400209763932528493100550695750285308940132047185027932316387564050615827586982008901060668340291655872988732616823600700205078415318020946572562843395762612860618306751387965847802457066086481521933844709639929443327452581416659607408070550189708685100527651305370031043735980224883266728247279777389674988029214343097646874518471140513177996980415358638755907562502400340525097286154670533875634792308101123535662738556386659752329479853656376042563366935237279754546220605168667574755914911292091347054187526213700391805584066875068437479083244419194856438735718753669560034104901860847821793480383830073786762885506730087659202615672442566375451547471283464620380034524686847163914581052884827480288114744045877088309746166673456217770375706348049629396438809697034225296382393209083968957131105922305848620484594754942439317965009930674201174100930081653488181513605149857853850352778837474113221899812133680401448645848830076253681501482046957019918548995730385269368956718023170571861365854173370883701673534436951063886985969990172297265004732231151294666961207059724891037636570709929993432099130138349259531652681434227810516698191066844470822324394537699237026083020034184485540799756521208070273329880494430824808715396031980005324277335591499543703293757576950173228713206861575130622695369798221180444978769484111543628007109848045801600852830539623266182509433197630894302158243269478594936827683623339357480587852923947912547035630141417238866246472229006339079045341012361132501257405402683212660320770039145695437806476882963146450366682445087955252382852621014498416623188772150577281274253715023460990583741118311910267087288430295276166052410014247565084210848389814710480351036507241804594101987055118090764939454665050663047805715453146453429945336107490237031715918931938856329025277547537904774084696712369376466150627226479989343334443950633898305798116522798029038101729642411382327984509709485766630127020173796841512394916283268305728980474097983167589571246492566313941390563447535743151446138231225715311843465763392524314450008514581388457033843240373622488932151538284161888325028077016585246104911318397640399441264532162287928755543797991958249697439372624426332925095503140337122409466151703577832568461514206240895019667785310021172042564326746387161064569910598577627209037811465239655618032478769997403454825617463918524037585490755170416870180742934795512466556575581633197172075096426521309149649458490710861929505713669805181126628112700283739365127506963331634619260579555855482448179019974728240182861656764193034439643172968413917182234880439779722140083447157859641010999060046076038729632562006322383996573765917794062229804206788199348411713562006471276398565631310933981127335817049487202574676087481844332266272962784264005543963676673682107018499320631184033920800447763101549087280791464631196550851188559761136453762710712067376278012941484427067157596705213676654376441935962011874829591319248718682571381678446025510211674865471895646904994344835777383367316808022527552468395687429137198909661919672912026208949323149790925808640888430334214586005819305929626633734467507709964613963436869149641012693774478808261706897308924147979372113050382705681161739349672290172742264379167235797955127747391351081523084037819755063674566165843195637876132763951933193275772052878044268710910149253861641664277076081834874279932177859383820742253558605071300451598891428254843290275070175879000202584982516521163831625149515036152463205416479114757076597041534764898640103055322633455893684452881061486957221696179797338247160165769686674692431417396898217204451345486665295612615949580185285768280680523325128658218322658877141230702020225751028751869753603374164119978993500986463802710381701475988777802536206169593334118080591844028014400667170034450737475760327492149787219533166611622325359839833326787662583887279729758752576904868950408310687376115891150797901343941741911206812670900450684655260155084044621899003356450346974453991309290584311806563265568015093444209628960531279852558239610747687053446325341957155607249224373646229002516814755426179817349238129182910562698389919014173121523869310248062448633172743786209209321553423159772195616178985344425836700098599739435231624695131412086900719934153426430749844893320345465534661427572570739260283855887364131441594170372780425334543938538628674778603879000538285442518989494541965134252910269247587353421008681084687058636958815091768399386565623389392329562897291073894154022302237157113621298732859275824232899324270663060655850042573012778186047474265314269769534277383302420802316484344788692865001574220961267385444190011453752282767005289639754131514516074653617712405464439974378935193452614809241850903472627138518292462566377529446217294072934411577814033134560664011363698483067185428285776060396138908579212974453652502421638239534054033984427421579286775198947279424250120809721301649109166732011903603524777453564127361821318628058563042078018590547818200728923650699929689416569554197773569344113004679422056600205263776929282296546687985814750345852619365800748146138157484850056566648142291338691324964469324333951597885154237781037560217884840502591581822448627217228754609594239123680890440499482322899757599391015839880925897836711505278087363377176674358764843013323500790105689743276720504037099821138616864787168299689052614867693551983953517345123422581481108113394351733377958260544835428697666228920223340416559989023261599262993402425376894292966173055954684961258118255984743625943441586331737711602115002831530227138637943770518840412722299437737387215753954082559224547615086038160448584028900414174353932899515407814033522738412237006775786978059595627515944213885210247522173473302998722646766283041101344274107835187832132035099508944118780525386392932866709094160664555550344091734968779455387151082892128088477501816164259566397808630191063050201775126217142158570538668874364829391695726560317893909084864721005604757912304663773804963864378660469491397394496290995025919402884813141597139275449834031337636893219007634393490178564597783700670469263787298883520084406146315180143116556676329119680082751883976313001346915849264652936781111764828504916282546954453173456764549309340760972086038623837293270882012189679438767113692834796005001546909124459995276524523692937679402294311576107277509575826122705228949641064842473402618296099577426210979605709178347306646628708034992041358604395203424970898115034563479315601671375406021453165358003027968693259910344422032397819322269278648038670255955573779343092090861045175067567012977727674831767579083017939993287760569325404077026478233097367241413455071964437155997411856280024186715795346533764174876999770611814679662434145549728725415793350283061799742738760255855254746630485227564709409306110822155717451035607280581464813891566692783877431488346781294779945489364074333681094752440308473911222623640393261678266298490533833375141192546098794373434784987937643163724756664077158747078995866093832896186417570512467090005780722606461975537795477960417997137101467022062174810867646421406923449383881832529291731516074620909246863458572180075103365362046283678699718602386318464187219491420643470042968057135924882857757204691288010891905865096737676242049516388890783768819402351145161639409751429736357234240465868828367784621897043744353514034823743072083013428484190550906948484842391932605146624154334726282859419811954301344312952002039778322132288648318709044671167314337426220360084121766789759608956085636415526289774027026375503815815252605202587195674574486566829185651803091956582510979799966640513551109786331095219237269542000840075482706016743755777646001114604745013195377491661096041080649031379956841043760285919805766477608230898252688897286719432797151510137157932816364802592182695177093734898024530717488436972351529571471440516851738505394454081393184640592001420598053446190291106767476520157019737971764606042997205648611125755218923537093152758360820041652053629663435830891340544931631748122478242420722133538225066192845255210386211334068891624903923010587996703301013485851546629422725665653498099186799109587494839051021451676887909669972381521625634728633928934357365963830435910610432560787344919175930951090513021614119992590607719970252196542544259657595961043828922109572435801580012634967752457278408269569471155105023213544415990646173164555133630120482717809927366106389403849052864426142124383566037794753090271040260539524014342563140483855470314582230167407480812035129570875044546954854630237768686251071447918190983327951900432732443520081755807198558527183057442499759751634364460881797390073420856153863826289622425462443687779213703257945770624804745559125401597578465697146913416472104316165973705330697257307044307966361424188893888533149652304179390217458152273661379678416473220276146432730162353754605713776249878706984615779978595128339663331415336247610482143828630681335654825917768799925955568940562406808984221900546417957407808161803951620617849065488461690681893547303661878972566966325536263349013782328744871264044510673889464254118810453672023491094156295306518292146795506308695554139552274497770249733845663186256920516719885061902374474151070498161997690545312425925445839481601701507195432109016812860403284729753190353942735665841738870707282469746581558993702366604119557257578411965338122158420703410617408615496760851203479294550768183153798776712064915887738715567476481158471460754316975774894521311507097483303235962360285700634176501008088668925341280287290241055852560710059707241104088211432003049694104575259062577263535642092119715588067273353391240797874312299176173037364013367806795349419409818399530091055564835526369371909154101473263293364143985672332719355550839275605455479788054682288061754851371945684580579139891552544589381772184964458874609386830809500389071837683038929394337691482227717785337115613033453697945534437185508872032008175747530259263239271531986607893283197126747197689542794648342866716523441981956509384508265028975262832072727556294947538533780579836915523189451171435787825205096515863564575002192864711153824904954120590011691572536845315893240050820698994618402864317037125722707762985375188517997887308255569136495419306427406107393689957444304028510601803515818206256585884250067895183699671846820845080272241760793022278166271142908260481647752283889192194934012233751855736690086066674712158400735700003855450175868813020596650304008000036120416809866800442666425289129394475405262960512624160553371245750555392351496394708802101288628498020664218677153708744534401955736831761914896239066893100794343796084390286449349375944660603636610684739496309171977072038893304176162849482010116452075589748080118264428787995947164936152992334462094171361737155689017070076545096802981015996962520995481490035620878962957371631213571672079900467227064532591452428295423571201777600382072888576153862150026673870888588887444191249500588376114971946529024430835278836903950764156048918396465007691282564190572302913571081141416600570902256375702816540627763681570091429193168068166451043378662042289068854394345886248598269032563031747843735581939842032939265827831471069279144098224062367972482515852634063167293319251871160389867104510596866079968134819859138451232905363258200444068780603758633624656401279359331363470065363277728854732694121897858989877261185225229940806804055309157088365207822558934277010299680736895546687929562583365071286159283160127208434857240279208883451046741536396560964126520449825695088731899654355301762462918858044317941827191942920603761760916959884934590241470700939969106382554004512705504282299726239297155361994903965120255052036443417815547743821616144470472960073421444131482429657539459657747681392420657555978163197662940830590740459361512111180612835411362532543039121697898244222390474773544746728396316981399881163607524140932609565173964071579342765580384674176534852129837251361311358790937714058668755260593963979336130879392828562430150878519862977130135015388451506459605384238531375112849540243148050976015774950671890275481309431814134574540131186558731013713901996304820950159526498707286394323581429259227206825601135565316287952239874555155765461134119567229371693967634227888852880844891312014915953489899925363213515050764936835778555890581046472038632333999722528485835533912032789693314333098288211490154350097197373301616184237431976780110261970442321774871371364908270546116371559828455755591143250680964857369497435706258833122482465704303739100975075851745989220208359009079776407072748009079835477868236555864192573892253512192374873271007429238045505040865094562568696996436966055009790321893464479086874113979115764238452120472186434232382651828465507408224952626896503399222371891811593383153988055107442549937521302015095053794420235543909984051188295617723932824324406420335205744179384058780236897716369560631245846826026349875489101880957242700835233040973434456656127559054274479375810247673169488462265527259122235578051807206281324830861013219288301759676495365418409485296066963307141728425815612124837297477928610680206746160767878368271197670801005133903636058130952841348788251613707320634364333321152113136096120033479983074827156179220549446022484285475819474285857403930043215632584423525479334015753656539293258996767609213385366728986000841701346542024352367180076046899211958135052938864427567698409778632307619745300451510250994641764097359489513038248343508773019420988633848179170323376666089996556876714145866136399005139746981067674620302113377802940863819022672684852608378638996065800687654280996086237854721383304763802611463205175967117224097330258125041910520870679691719737849322986605630876433618840893067278230152556257670239509782112336438378686152858535247011524506691017015439926664123447338765742113463197789888177797745750808335647183480083822505374175685815665165854639535299564006503742888884249425424464507372349008017148937490957793140775224928717400497960933031799605648333923375274590626834813566625526076865144887791397561060301774687858670228702909647666343920811618461878405028834086989341576264345539909567882811354967734401178676692395566894323693059005738119177424840664512093867062260236448832737101607787056444159186829081072314619708711247658106827810298486139557827291246728529023444668127434322477963507275496478475615168099086883096759113342828960624786971458748098528268121147883874392333892690420308825646233431317849144032522578807280734200773869675735141805188436673165113626039301257537826669470309300242162946823239822483722716536375672449995585271577852925809347648511224624395580551083263353643731385850230341506679298171799598280186809969313723267564780506414552130826149424890894315051457513441647239470627629709567940470606135952049529778179348026936198240827174082254015722868135449212165231007011904410919948279426637315477641564069323563435690489320687707566559460664228385816193531722331507640920409327333525510275063702337077166974822023763035945758191465657292836556749974310411552595812704381560973216121708806373492549382983216381335295169305214929103202796579872577381154601807148581365308767672624993110567117584295557743509939228756385676316299044988120286049860642559752730331667687722791621411546073734537597398969548820852354070280725798848476375671165604556500055201995512495550865132888445459747445792291272956425101924300974784416116452585073521535421748035399513059716752807058904498675495058686369990285131650205986169784528299326347276749638265840128594236069838734076335009031835119518779582527459528783463991174734927705594483124800661826199716487946985676965088062780273260779613813570650248908533464693548923805892927433673380134419514042648222313198476326837171582129349891054330597096667320460578842259442001258181062319387094250843693224835017630481855230691512165618761126691339081124445595336835163884792279143846081262741056437131005974606968650267770151226990706381717744216698216757249850212102112536775223835175195337341332016957252017294325811196722122515403177943747201511576401252956223399646374034613662794983980775040477864435730887342868635669602520431701670492314798335597649300275772309499339735882319468886450403070912172442066052772391656423237369581017996651972183320069261118174142919212104081006302262220240061349982821970894262618203828660782735562862138521191071949930861549354395465953497791979785266428910368142683439963025886230311528343194682582561510114932731719954971605893479231768019267825496389768975763501326526181263343551041739218614118842944841999783377950332548437480274946837645596391343885211121372800668744586432766308098537531081099879015835745488692036155914748813045923680937418195201983172987724445289454877626471241217972649325797621845340418664502180444156684688528059026761963943649828029598996160486959337118906619032819482518771202892127764989163947717518281346005316895302035386224505168197509801943284320747834683818207011539533682016000155671252131993025233527426655303122212749988332734621978194564896785038966184263609358597858030047419605746535120590159998832201142945263974114697057154763104495835054202981438015250839232205007711289108958186182874046855817443103966849302164317106259581370816682688394277724193715788855143312806756261841933064295107112415495226902028126239172816343801635334078219712265230880467033509282724803976981709599611929737532106846124962272466095133062348706572866794090385271717691419018577971762474686358423479673784928222354565439698086599353202409982996398234530451432643931564307751186902486843225193665841969044746398125349003563363876907898431925275523334520603184208571772265336865891506754436653185945507999475051468164732252234882935998296958383963372794256210025193578235294663513879976362397132690686260062366700348984943510970544143983292687506230733763541675135615930026754856999153780292486976913479335276513104725253983719157499062034821651119208653443017958418835444082434969333302280537609823681246973945396865290314328740543555221487291173267120076728112166612509005774154885136945694610757356426619558239096712995387373155517370923082126527741247259327133357363314717797523597729518814185696952862787020829591955620410562604442084710622556746465649342024998390287407480414523817218547159451396834547247772095038120381124327148206145117132097864239574235070402449612534225069233472095170488059820728622656650586341301166063556358771684012335234534467161494010570551386713884882709753577255265534803401236811999676802258426921384333704067721443449431285390891805380193440857841971466056977958797164802652929625525460547317175171156628586643190240972778377543041488592848307562374131224177413930239860450393598173314488014261677974479878239872850726977884102789675083090789402026462022837556118517866152797017934737865029778767511743711284630548410992907037778585057794981339259463470914562692593476291580757508016303011698147336753737707068747777191660451403835392372443623713886703666393954725334440117888024553709355622708614779568991150605245975864020704613719077786814069187871036109125417566102016261534371772262754770914057685498930135416707904802838775760594341457560930964367012256764885076131561966906058713388135197728103050487653601393128946969850324314709836029151663760363908546352948573956745965334325529330605089881046828509268499291069364467181018313931641212654757116678252007925748088349632240437283853081299939170278204524619752877561201116465576355321513205274634087380899427251709876161882321839997619647619000688838728000721591292360813270258264929751886514478407836211140237513278954070372165281154123884630826137297251437245873332156659963719573314623219341641744357711038389385062991484998895017544084976649989546857739903850317586248210942039185989168498865346800761133854515291068388943879638446588828264472136146439352072495169515542358890069117021795122085146469377376204483996405031054604569883681595410793900945667099978186341522972554326304151373822944694369977934580747137464172232392166404545210474669212981923597638504448536214684063368838352151667214674740997600436625223617409358941963729796129245872466923442397404932478809605795728259236576114971331247230065030204765797573936189850085223613855002861518839971135890270108149425546148653774448385063633443539785751722559080872040138505088444701156030257518787590206230921520396774737039531140625426172937021600498585595985619679052980969632094653553561667891074058720965409084763225507217238883794032047554509751383359168528884661131441724977186928136449509278019254591392598989607075408237455488929622966531426614399623503285954630561882704286088912963777373695068699305432126786917139927414324555746077152313822997331587890236047609720480144697819034418505829265129570951593284385487505807713002691858785874032845757924622432874178171605427346310582075972790038394115154105110520639627478691609917096168667369079604512659555953509502372325107488480927524910209085293880668418597616144839567909302427587278615096801674928092248131174524350964211364973203814419448228192490639461705923378149279446171931788480846458028734141805321765239856769813223237419261990896049604049891241873627146308049651324622494398640398796634173670296593699941354999134028089310272808461494410577781917675912377655801838417484848465402026865861275591837601060534273661018598104599280057754478786905860907219514229704924520601273164632493378834630549560219757456489828964650282477094390668526117155477966308085513380532475310690148553179902180530506366447373971458234175665526619689235060367998427565869657721786865147693797274325698483933714443774157801863801132791473802063516436472646947437490648745990624706190315062979643699692957140443719128915956060385257228628468651040114340683088207942720277097058463531047538672943991154170169784533420440118683764939714337001776463798070887714672037711625442065664210601569410516883654878029492438763869035466249675825271379034299661610284834301029026771779383231820594486401442103138052406234141778874845807154474784276906088964940656423529196936734111324691683628189250592423003145237214776966294175292141126774091564118300165697692521501827082806485864636281884164680957362269956336162044145537004777577299388510735879582575565612298903330986904721277658539012303089296897956006087604669246304385805422056824250936779950093107923412236081075690191144120447871087567818063027600065426672070548041897756027404195116407170902219457269942628938460854438741279779405976002727065533749349320124344097510826669110673277716262387153083690382284106019932213274441006203808940007915710313117748435153609306043913084593264675199444425862179448496426894845430657229582925736354984512223198155114924305151902764952593651697627616038702763651501606575098974366497376656348472946772697710351269650210253602160263657334438713985598301316258355782536045427868658832549511616267159212027591011733159490691134476040505665491599846651022582888261391400891205839282866305134005603608006131937264282190532236554259383515896655722440933515128923068990485300496659034280169524539708682672540777872061122852481794009658848652223800507310033347068825436562031208059989391789297500637881838692435359244606476042911586195021434890408434197716587433856493636223943746291658269588187983935944796098822981837045325886561323902952618522287230318005925466942582814091734309300231116800140730705669051126992152002336403813036575752425333771814743535219831269826076136831459105185030382901804228479977836935847816104723954345429272579082605591776921252789996811393491882499503109727787684592961411087363453567779679341554093786580901723360685823556761399163713505813219145079151024389062927275549455577663750898590321164179448790654280631760847300797529649978778790380472945768037321732351609159028896811066156460030717658639531676424891756010905941308458382193596737700506555494366851264635075083897326468715533051919024348325020682751647060933908408337349320698105298330916893750061753207572940014159049968332571663924493156770209581492088340816648353137346802429331573764895825589334475669812175374123480033999591102632378075020212525596436505156081108305090721173275150872603625783707937466767742296321904901337157966904188543711860811298318220085598582907888784399305108223277174222211513793643002506986950682197092097816916675760796634352719088465768154105535771138375935932580893450618131441189858808248725959176072880234369085859881650040260037731409412641873343137225556203699024333165199270361983857422775244509214826811712011891038792071384257126967645570475961045949974053607597513342972776747917791088010189049281545424242481715745518576824758618138693336593161494535672759470736431929113556284994280733050213069319325986530082831528581722549667896064627451260467694555572968727021518575715522170701854236909433395060522119716825079742179650848689903637808764401787388272420116173337711601454415720174709347572507013858588965183976971077844038447026066806834100889243505314089901409142420375386030387714227450011760461750698412746680757589124814270447012263251482795779831861381674920809099290589514905943685264549997825718713887386534810050331427946527174102484159013370940781129240623814742814456160569121330477918164754115353559902048763843179427613732173659713817656259188348398902800169400265924565578068809925530656340612265229184795368045651573036801218001856459334582949268034291738679935710383969575393645678494363255286127409637754676066121942364331774856600476476387035429279777011798863992084026757259898454103215797295024756069841107953319352483474445119376658015066295360326605355447430667283386030850738748890287882812193839355679554988574416863033843121071865338836516873063942301343704596155844616658072310979326740671492216535502872131577964965499513980859318315901484575884768702260581395251266723865262194051180354107817175252988862193045734506417108316540959837473260581005848592241291335315174911607978981730566234170425058482300681843213894371126208160097704193792719174085317764268941646145152388206835112982763759391910545578827817152889022366498903843440852881937530283175454314470763022860042713431235743052919395226255977095786084246204608616572535439686301709701033336014479279764144969528473324044055827737557585286657464395779542304670743986704124434400142119773799152564151649940136376959853314082244598127728418437378761207612185751254805113873589664617305173905670526312808839091344003899562253509099342829587183001912111541843774800095733008617167335117497528512206426912276144457609190860890887639650344626400107408079167967323666144793706084529910137255037766211494905970418454426430191090679810634855358056685150768652327696348284548399459091151266586822972630034624460979954513897158547753809063535204371865628655862085048367993869476351013720935922902324784780150625146583988139218658375886222423783798766881927425803842339543266731389212682310852494620772397765421396242450474262633833934829992942757577620603420766865711453435923112789480179894024417664494914212007522535000802132091249270318029714273518001877765122183653216282227491087649789195646197358285443120427667876111795627695682804037449554968754639398422677161488439402087964667365254620558799448343313143854601482772539879297409918880672079238782207865661251662492344090772925023208418808034352365751520991771644795042462591644257295872654388281568615647849699355190669763611880937679693087718545111748459316084987156387299919448851218340624912290302931717739800117381003604286201666941530627896415701982518632843085413619769593437494773534447181397177794904304025154889619200793791292376360726236686869450506834471190403800153450858586079344097798915510496518299724827784457507354590684546318350980615163793228357101092565788438292591788332066927534576770073675747936085803552030953947580767568865595514007335711687395395508133188740318602524744436736747904836700674479904607449293823450065101165790404956050919166199937247126935030227933790855653499839309107110660961396170284536885653838336895416525893612708486719885335338272796334027974122006916081977865676217198420075408726862423887953508327753909793381071183141754817404520889659799104599036444438722951594977233719868644787455328796861967971790431239611987933060519129495128593224436630967646717882845514042863484204004084566166151236507362961468415414990451423722664955780369956326439883553273548042091072517541204682874786283240823951766924775204268119560855977161746118818442657983678286254224545979766316653232111556499118068201656633868185839743012977002025558003465631405850438487700091215586163489322309371042462918378962182661497175265052373109664009106128980513154835861141815797907115869235728068365257618935799495675092626781374587337141092718876365192840222706829907719420621497268714599792657421432603552112087268043024450367575389470180228915247680595615979583579343451876401994459037469674216145806315988176602367531856742832142243977446685669172067176934736393958126680620731824020443521823859239457065424255442316121726182871081691601191418361037103750283463776218441910366543008174629950006260243494425530053546859174927255381158963211202151231789320095432940503638693319101075507808056102994036379830702502389695076931598647372897753063297134720167154363262231283660582564395908436822862583856082392828732561665844627442377992096998447260801515745040132701995239341899191002480633484446747787846365019159245059833052987968043366032613451554145549304295486799556704576631106714234021240247336519894306801194105969338731727841287047486545530082229649132373936061231274266062142347986653779746275946351219089725505774396879295392862456099375229309718875583569522458981563378447693748289925184869252583368375064339520301484299759049403150642617578187573709750061770761356203493758439468502629865202588551558198529786098556247585411818852089373346619237023958260119387292132953274909512024212998287070980716354744648922556169858507495003156136555222032540931153982621168044849038424227008494893808363777861321287791294446747635253351179947792214325016526144797340114708602310982780047605476368234597996389725099928032241865920528286906842759268900857562803585386750138966448574757717780350635622334155557942505658522514050355286389521959899321009744348494724153325859620983613781534684348660070928596153073814787677139751541200390827377939358800715436513565527979759524667329063269429056725423757603065933986586982835630289446137859651845095207938545714224106760291256894081734153872403136347003761111340262119312213006608578902489481543565165580205524407865738840177635207000763837616858714447666437326820174917436090993286760856892574828859880306861963252448936919011044367101610631329074764729538416548564623790974637847048890775003086591405589302888058019478455421740760764640537420536917288966388547898564921037542814669028185199075573017643951309143910628478752696748711733966570091638466825030766917989568371632851751065892906114003288205599033814066476811488523419158969764492401010022998908579602108195909698303068013651862579616020031264855939264592977376024753662581223719364137943146410382723479840848044715361387235905390175128493327483506683733400608818199446965613727296438677769956703664328739253479020391086295953449941992113118289037788971667142307500804203170460786026958028543626423473670934665639012083437634513529260367092507461370958976084423328525942899165455511309568163194215620546529383127170951688176128064251090360075515332865242432889794785395418313695240425192505891004843658522299378004200202828032351859353656137145862842987557308575845417003652859539888120297907971625784666316585495307874060314127087129408211340182597922222618162505795166561202773729410606629108674443392696015846334904550450928567146819309127967288651780505505414694917251458199198980256984705213110384841718746889944721011192745373603713265852789772532491751627565964140095070021247155228512320863336338681898994340536431923584339146668500625508552994352050882780547295700422182024539578702904656405876739734264381318138305629067833231018045963000664190932134860254011483167339924207052553769799312047740050701253008667700244928115986484929290640105043550358747087095525227161980296579218666424839266218852332940992420111733230188846463590927555322355443329708233976838294845011257847158935545910913007122312252707687348203438676338106231112383408867709664879306053083030047948141567992895712445073020697089366080603254148990964277176397627971885086541521044604639021522282196320765590310996075046305882871986045909212891777368867973810515711885241511010297603557797915236440575219229717277761112383855937127047643650167309233067030971911316880108103941693065011922998400145838314647380373727152585669533674480088143908946287892489174082587337146716701089265913216251792235539578227292793473734229593699206702043522055422681026490735533387125615384990746915259184736283359137274583708134039457460106102605752286281063056214363208540097926109946155247714878152441915148227672223834722366840958126702542678088108414235189297747809686986346852409186976333090379706858897638224503063242932515620910984690921848274789551450046884291277810269271208762663887549201979141439734847229579082498383348396167016559910838898823018537804872684246070807728415467363540115792987376147392483498978857087446382793412355323896179922258040277824745429199247083583207052406048048296236013917166378952740005121330559337305228910940420008866080490470164973541695163083314789978600771238620563845614543479800563448984840434314347392919034344074332460144637537245886525418132284661751537866908067764880687279131619965050622439494867645379631104428406084224938378534952337159718293768334270868658241413542601567121206347501458683419000248772299436050406982776939943414346508159363775605276227619506952670846544029900037181665763190442879761050839162674235196864658573609446847183690823316402998330363169050458728132648650490133587689226915957458816528768208774999951696256496292542880482748420730771065086366271153311495563766996718448797625941089032733543845754705512743861021133163768138690062634848956163518148284194341719366800176425567462901351541991879832011239476804972094044709485337666713628927777649086382293318026213190471666833564116942181562928629305453018514850300805796832180608549238955975383807790746337970724813066814823288050377243437262198317566852502819170220905535523295445373812366394200556600081524650925867804503395592609330116500497798047079462089375372158540450879534389491698338376808435846065856889464595380661460434358682403701844569064224431753228872963555163636651121090509900466990581588242805675264140993822761373937595899910463335837449371554384743304346815960419969989722719765245819695644802149953481324457086010057469263098626285378062172287446233068674717171909943377930250127743890805746309536522123483641343855478531402377244292430629918624149917611414743970515395240086908300546613190739200040079189691472835496128053023326645223594867377406262793287209213003443273907726323382398570008403813614742785192930434285615306419036807889948170832560309136053927827816172422774016394902497908976447407011033838954962262476638222283055720270394460472571561764656639414054517787819723554743270675879876095158532295003754157744098648403965783854145931002664971706442554447880956220199606876887122081479361182022878680597203052161611018226945977364360529808676203874516646669189036894996496424462530905900245923871888749065002926544260487864252292388248556503519073964439650049239992482567010988502963936324911398175657171659988281566128953538719412849405692258246329301753595072132683124757348530213482117959128135926341215118625926963140026762849288135645852962561194131820569623329098137442832229585360565523656626692267472574727709246944658583809405664955591887254535739722101842983013001562608104691981914898746767806533744642777469230200257132363763336237682553291777310271786760117686568406465835266120534315765616090746479930287632968456556320504900669904748980085417807961132370832863323916733192029469166850599599490989534729581405970276101298543114754160140763296524706965514560755909280860290596475778622683757333593124834970650688718577094876214701807404408685047170133882547179699537577375598097981269745340408758133150812955496975906632812946301509794578266327450294180195870519721721506277113752868047224532208353561604140876816568899874635796927626090203718801618143114703402211082151651578599203686296649352838150436629136066638534942037605304010583160914847393187460292997208597761341735479034666310880063804137694472389511664713468634397927573034780849209557977411916050641266035911877635614894215176142926190055926538435206954853331653939655344885102802241099734308049689522618516265244703390929930371849274820591632365260320062572258683156615273318614416446294458845510126005542874670066213175849083880982217046093031179165321714121080474922242803869808542631537163473041424025796732140454904391700975585134415195379070092368597406425226568568488759106714389700955393692225930268888260760327154253169728002438753794007681206814209100283601971418643756749850456662084409000413297702751721208403409180911400411933419459768872679296411845030685684255503460415204570033415579853929036586579937612044859206219222722584351769370292413370399797990815335028814721642369968678573739769274178190339700817158133391221554094343845986774979355907420640416433768392593447887049878326136606517822824278425865532098695165690236545238606952289496601902576439954070602983548237264424754702283326745381420639256080550915357526369409453940032644018777951761198893377067025662763078752665584391481980303427326927887243572958100954119962644325960817268109019525174028887889707312222997709969824623006536316367578097070278381575005135477501313725881754323657407617964989940535612380872013212601321289913261673046691321883508688858114116261744562292962004947297385012199808551172936686523575356629757527262957148343313867816359983716792758060675735242683320953940553584553518868911638145279392949840404205192025521625835272117276398753991121619470117487201063519005693010830559385057027672421096851767002164029872138192940480613494868259234497111068361034985190884930213705447324686468726757568910125062513714576860801194151893954819152989810348868199719184470818438140091777888819887598433115900382823372585726887359827237192127240258012407636184759154115544657365432260540561974279418605830795226159346235555202680734502946007250815639114280207951253456101645395606093944254686832407602000487872333999405609237337016768584898732818056015401917609083941696318939310879912140736662974971879552270079026012849953981766031826425703577504595541297904461661564894214176730977254242947011163863579709256916304891450913696030255062670734472852297353984803389772818369288036218682082063218992476126384390323406951832293654587497170438022616162944962015922237631795975487194663269532291596084701609226005106964228982164538954174450867233148427594859036890945562229568129258241847927294900384900821734779015804475543525830009104537768436366707455952197407436963604160841823437076974054264936739971713979286032727585366477479305822729068147203608720821152363513720846633596731531800135954497754605395146803650736073791034712605778212127804679801800112919391693381391513196015002708398435353356768175040892972599955769477235912086318356088667947501753747996385306034542738751136998195994187918063336320814142523016868036312856600503807139914567483141184100821189916266212699730394444669743530331704172443336187677630334770278790536526435551756660858840477421597571999257547297346522809462679827712433655995641609112875730249545402352001244810888100380303655585428103169796780774517674592109193408385197340030509954998781902663525713531363568556261786600527848274508669531275544183316402053407580437058005564104191720041254007688804471628660785900099593054831252778293319092239716603946867729434888500002801291359888209929330084670330890728325501749250491233118960611373327678992939028090216342481959670356915760539165484414534788124734761759307084050810745814583453348180191180800202472023187044043355644932653665375139550534104435153474221438629119137931196843244637518347161225770112778442585218909145338501464030770829524262854384730778648908252691468789117968881849667409113052716224557184971026965918476394200675602796155928683357618144878524123782546773006359959262651980083665836560210941125230246787090738063056468879606408110811843820732590105534091745326115597875262332188791580416832935738190187267656229715612897658463799974353085263574556770380373538897017673148395125459472771365615379353765916750226281681260377288350744572925869967461651011960112707554615872068397054110165943053514089372113523498474241434664456202467679523048462814838698178200767192858890979915715571816111211155718524410515804958413740702451878582116814582012903474456928759485817834059486587741920605683323680272102641648557152213484023665416898565637460115923697349549952938100915104906958739376980698588673346707771541520981349207972524611979465955297499279215017684741920445743792352083840719900166197670357844164318227603938730679637740640848990802813018544988435311290731436178820250307881445320847421959637547925969678228012310926948552720692648795183401524909767142431141402138339947968500327102855932304238559994291299085744847351807571724943738798389157518327658734050318337305766525065399498504202229203159158120866451571272820191102282833923827702129528594664107948729050863284160854159469557362744996855805615179108560155133472130191268025514734986103090101579731595732769796993318830067061062262119922249194863443500195257975134883059615511516099953566228642104869466357099388356346753932887332150449198185128236532226234022951160275903907002546722286269434000493657994311924724766826170556973899120077038018880204412846353615602301285781589214774632382434711395027485632051242036157811317593558288605499055376859348829259935787114577759386860857798319814167498279113613700076257160447779695989488990807498475080597023221466132480462781773585220114681329131121803669903523599594995091102505878593954728233076702650351951293335717441675423465290525904919133883453151024118886365429302896435457651063825305801649246102180018811405991738835721730722741131450756592709438532956390479728111460526360346587522950436787094847572580599905273782481066392236098508858946434135443877695729265565512380250875454484342181257264396446207483881715436114302591575065626091454833477293412456803353111106040172606395158267274908045161341743765027682580751059267962683422433133412398167083528044461986484094569150226054459455295518903666876085423407969249256356489317548571830185951514637622987759871525931095438179828522882620956114359050913336194543176421189342416072102123759682905394199566529222421151403696314554228182964282273003690420509935242343913113282263258662113695173827574899002511600845770258787857457917862119898727077153110761837393786040443304822907917572462579024720549484273910883618374217411428156881148723318595604720392217326307527579578197777283428632813228431109966470456437252993848758770770944609779085796712844216461289883986005471656611563303082625299133143884959049445865375239527338768800795280736877651146832921568340707404237306044030736070688114388010434288351108878849147550703774167350874812442561734923661415284990798634938266904261217016053372438093869986735160190506433772658749232039034370800068611677952913669701121930501963004858734663428560731749101936890256763266789224777877418979171773886830443089873249252549689976108889536865766791225559516875594224233345403108263787426106928766252328405304452932035379824336519596034052153795700701316255460858807679582003104530129350411702951217388128727605569333039962684698213646236213426805181625214800568764495795725073729260970079958596778250594674237095296328116943764820914886324666637628146292020654116802652340518463490689717593990572687250954751992914186829057164583927523878329483226985658770071267159972707499636739195644963762590383628426930728797659229503158150438839033009084174135637089692616506184116566082970214643465763856214120531234434291968662673597903530734344586756540859936687389528603701249412311157037782228915787149525542627511731798870589271192488533143689928462344420132020821194714077374382188827542442562610544771426004970314729392229048124816169562338419171731770565001544043668234662988108798532080799292650561828278344203188891141137085491081093593198606753210910986742843757394326965072711257353774238014067264617834058905922533901428782081489623924820548481726455859714396077268377499981526099556292279620534371718535161637822887879403245972927800242478618737900582392239675236803686110529571196471349982819811741524080166633993532022674988252696121908153971682101018425968932000857763274498086444623468009317448264851114521589723590188142130498751622282301402780860697565924478585702167712413342757329928038294414082530116142217876373731209602682285004080131234138904154133107815230493379772834035827337380536190865126841338598164791585855156352337971290799328314897159686107549772628104060825571959683818309261066230147490099976231937998874408559869847094627135529564310925789138688495683310309743393681906725928686825263165706945629405055314128205875951598104737936603802351448799554187689182624691464079901404017561912551497914080053713398318430255442297141138651790438260308525881237354676091471761030883055577722586374829940773052612413813722598262260829897313063124498841840096045253504908393162196589133559209194518115616043130575550280068520603917086869262090067583728292729180009326169924479464677407214211686083984167645096933923412144203045903472041218660021720903360295092973230940511006138958339150819816884388613162042671624488198077100161370586422613859516661422116784509214270821128985010579336797950221522067240547032113684233064210776605309260094007549177906662995783603624556276731542016758159639633942375935904243695767127691159284300034367062805634880638431915989429967977688725627954269886438538841438630413765346146429891020018715037733651323075732475871262561469044577815131260109948464806492272054294929312639542893042962798400602955992242160307539345792242772458341416934779874630728052576414865710020446909037351266814813260335781523636076016753915374170261519431051694855984345270645536559841550341621378282708895476285126769254878304821630742425660352060624854155620799800456058926644462108403558751799159872057612978416431013374655716010008611929079908648758916943308775752230668754208814563218648624009488303339436712485266753277018795348022342841486508807501029255855805700472167399522006652371826757038518305763206282556016529307298002382189848334057446086693817310914346656117179159157251941145141558856437546233925734813646664343823644462182710059997723045046950284619625121123039512550657228008703565312516256248046732651408468027165404651916759239508188301136617782496261099888996523428585505151825968681900889758131641662507056518449500945308221845685120129780550832876898675166755408177076645050508723851551577191351445711700014739998554641067608835826056672541220755266587990826672936670524166886090127300295696473902257955169507979697365629297715949149390447491290631217917290383955578154553486163373478691532062163957517598361608839323386129193734321689211145098615431062099495062449383031875831971465132710804379048714968251784466367066996017011602733199073099379428170727776821517322769405833466788367335191645779164750203184874713040022455624167925996482717426154686399106660500130584436397696033460328182653988145189572011777134613470719374658376187944932082846117049889622876932175454294381420444389744783141673451710021753632111725959944373846391544649022453132496467160288129372788703565433254755529551691977633525223921415739804163792602724506865229831161793124914945388839694508211068426447993272393589985674801740707142149897304394572471923851346563900933067075568640157377026168746593365509842817281991588346182893361541596834834124626893638038903727774604525207956370808342853050887800799982482164150601602815164228801655095163564135134758110253988536959042066200630195966018409939333005199565641216604127899084093870965547690136823352362697816363416555102535146785810730650473695099883147273423147045776986898064414540460958909996776464576820147138735172390629471493941034999602851972520229507978150821921277709357071756229482183763033375782837227278789567707033774544035135146458309302712886931893028812019663727342640121193118410201825929357012831285127436972673819741194811407563947605263859110424126785179785850930871043226792283705229742740304575752118380442490046236345823064260916632664931053057172700582998075719291427676053492102485850496532434497555839332473080439567067586394898580621426188720035320238952166336077834867772915609091497990822571384336840432289474261499904335382176223380977435694300931230999495239524601540871661465944725765015270264181827001491233944841481893078268540890118354871176812535700884612098679517408675366547922791661980612948362384047502526101849469871898468846533502338171929187113252583809619883407763652895404393065872589260799076273058697884338286979105940379383881771474787932323041022435164630562397348590120680023438029803701492915292414894291298353938305493876557711804377493369420621539728241843776169026324283212316378428282777100619967400597742634234723756232943160533753226078060638063418995091800964412322658661935708532053456137928157118182035793241366503383936952334786448664340202937358251198489559917541322224462043003320196195872571334146321098311591673732157218437444819359258666468326060842919896221120350153875345570552692408374051379426553694392074605670815259078928005913152667929271427747803197227389115905565817810673572976081458021552718853201070718690379689608408780489489365148334820771597129352561728718828370108917075779244576599560066287610489840767499783189431807249186384457280187693838943670808029514464378282422279665425928394821635357297347605112699994399457269076947904402589759139746914965254733295891967105322704711228657222044721060951718871441286884796126191516651283813425423624466080639423807596898742236199527175580715087958897728654482117198377472350389471894864928005356991147361509480669388816445574677520475610219864054368675584178969949595690666491792752944778486503079305719841067389670859462270100805498365248927468738832032192015561061827588047096642818537719991059688102730318131895973468280179361492063014802834503436340448646785773966866229436539913169467543322189097912014768857036939755471318990720759727760662852156048364610359160959395442281704499730219076608842492162980536297995241974687882344170287637333501501669227917937684599350087910395275199469292066657037578672984718488327583677511727741517280498997376182540861035396405405271168578639665381860696351483142045234845163715916782135308043387065659824744597744598298611945936592393229010229766684459241930382814565562685434941772522580849877782937503674255667406198575002829769954886882247820358756596113668004050924928884409724679923727076393256601371325187577367731948202499313313391620681793680630167024554546520703917310816750658752649051280134215839689740862518391565640122273458314395066410054633552857915670171902063196572238909209924251184941632549994634026979437137193332118002008137504398616291033238694112301670270153504809309242270639743256229698234842963842477008233660936315271103773017453801901993757315983178611566777715972341016767777767326447897933362929498491685000364517099970811632399181608460168142689371892644494326329960931117192044910476323164943144046393860921738512099204679515746195483698072742156334764954368908106803398270517715093020919548836950391177510950265096021982814588769105760998490114433772007793365921874690877585504112513860983126756126685766770414367832972507600216895478201489262980507077453376214812680080313918549471387003338028247484478422041442548405020351305285030056628070738245554075982840547116188144629873691139066751819988847156960405733334027975209710664883019797332430132661651258964631003009463043638530257764230715459149296685450724570375406351534942984392454203086646088012046054569089151805297572563168323113213384880080050303750144284570429920766167778415658280807155858750155077781673694187424797535047369393745816030547385048170921055895837541733167372683886634593618130825548190933691489507713040620689184450509089476327608088695543260582428930655993911350669005569307905991366576945877355584501998022799410926802922672604261923059918476903929561147372301588766803082176692037375492957283539569212408146117015148938242980495403191023186186922113937787824629062042206982162295613003425012097566189355773298853159989423749900478586440142083079785951881826373687260592117438435669530527629051237788086723035910921298847064081603408998042796199192915841423913667085221186171808611954068750448454029379074403942511691960300391683104595270202530677651053311685882726381082868116124482452164547205693686507340161860081391108165669393393831538098343844395097628541235239323090852755673203559142123934223138115526337926276655972566095709520101031298972136988387801039672728294940018547874674667622870788686735315620726448118032380461517557292886884922910406857973776843765642954306458087691654910476555275427589000269748051992742621123242902374505717819864021123705263125365601655972221578014928915974509525474265248056590217087923564824611924427230889728825024987573600945430569816527783103646608085018401865152168970258500942735634508885236518072502679915467179151345485002715011671108918656062615884750456191158278165166195985132283055364857172517309475745079177947421282316589268249832388759121142241489683976775992912314651588728290458119727965206034792995341610778426695647576242118106035009768858811569468072385127354733626302094191221278830109877652795374123942268362966014890750306198187026783140689059934864840769480902909800693781793755496301618915906609585002990683328741976855090430087983513364924675399838839330585223202569475170547871396128248868623861576012913093294904869287908704309063700580725104803120420909324225947676781947062676962664471315234638912977231434994549134705853635675339324148862961036773408973591931413645598430711195063585826650790032986799089971673237648818499445406813642390127534928366542540140744807814880438820269662539987518004731989480164852618611352435904041832898713626415818373821152434114251585593259285979325190561820500831332203486157434268994391176973554173458644928846657607456192586074596733686707067981028280633937145589081666486704466573987282164097385030465840920256571691725953300542358770867853325976589627722365954065441970817076584670584700273845512817846740465985047281812382893527461389455960279599874056528609532741989893733342706268336303006924983244687549746964219717667621429124537104241772015889079217983410648231240263694771219121958089638056931565484539175821205000634333265694115711056278260088803513694854425535840713221475531966351934610821974628840440367745318903402774800323498156882623017117942284111086365860832493383235606365047688230631547259202547400632371081585616524600112258379889434160240143051357314026090949822603398228123448492533695790829882936024446982932671288315040116443677848452768954742679548358440447894843133397233553223454298782295981744980949840160035732188053246517546720779649747920175529153869635195101694666877075429701182155129893917261044412509344714950242486451391242164823575864479908552701920398485629913672838657922298362091726231701735916111054290737775379416933835382030055589317654116998276546428116400083691483120578488502955775537253151701691430995772622841730193947448490081516586383600898869497723044543242201514372759463783742240490610576779584692706821505270581473755428692232962144420186339215852161159749712518900131784687695110733729450767291006373751409997319480311614958357900889616140473733209023143399050172377968058398921744757732932393657344500938945513958870530632621582790460370849326797669704553115983338946086314266883150768096810991315694426573796441510937215331498550944269668529718133554143922751796555798293709304509584189028033994907145126002112098048407114290975711592126300988529072009879150172498092916345804830700867638000297761876206993495020289904466701403009308104577012180829230992271794862554916176334067665491944288556142164872925550943746796986332248617155452887707686162609935839165805330090742150673597244209740658978813581686659903448764096725761402913927338001644522623895800142999071776815892447300862204166241551195411447662989323775377959722009827498004927491859373943300684044804137003476133368807469503510764475101496148535933588666858128461422350201910416754707589577002206859590188746912578673793453055915822674977741316335340381447139940083310117108552080206450829978338726169484220858507251796763542016750860321840610303012310542053648823992306539587876838742505742870741447027483296165518244529344769907739359442985690908009277248631601833310132990291374770037161442562235935212465767832520531767669495910603420624483609946084914139901639910486472395232950534997881231064826811078714861459817679533521235553041183087879377250066056601743152009237143294066243967634542800987311159715764106643292739479240386865161293288466202876063838248197103836555246168504296298518488099200946114076150427469080836763271788004239034474109215710578865316489705855715853487325375415677989849590319256827843193248818767711189956598819632325022561474421408697334293524987925149826219990010579876651292685219188002006454050171854708305332352968939251845538454472144838545659498166933118436029775197549619961794837377285201093555156198313874758080343288245619968686944407961198660364164430979771359340550871038554139452061592660047901006887642351307194509907038673030535090096695863472755060817462667840966688836177143253716928635136029695665501146004401868166495117147443801253402295600397715343312974672937480203423429830052457254667457226690602248857040533668390094298585166752282626824516741912987650959523818107781590757970800375450357117252014403429924205963696900532611014045493364320571971418372102345290900387557502158731419908261228192974311361324106893382543418961087451997652327737480091405974448220409666510090726044581924446216122238844944571543328731174062084273712946187648889340953693362290344237456460929971011974510020696422226999226420547593247773289979000560491539758639448072727627347460245250029754750616105610068458130808807548206454741700352561075338844165205111940481052438364470268402087304709174896655349329437584749156550471417261964134471107500661139414210495443656901248521231242743657519740258630945820290657847214935118990703462148005726369633000844674751367454636179222853249663011358487545102920015754266220399718008795067712407565406998912619349454553236974649116841389936090728793206809918721166743771671534083922291056980985431234673430650539148826319913959678999842298263171337329311012905803966535125451220317981041933568985529532697441236024539257467047123827397112772674364444162157705335958044242813452664297137774291761399838030734984844110305426473286879490914439386857429349361464620665271741801360822680957604543350848891865655214160919258909392029081318359691271601017329730253756217694332396235981851521538800466138402419010615144982052538404149727095831118757768842404355303605328158840145090715321190145512837575290765053187487480781276015038620172976405755126630037435811729110511579410801873014279175470177813683819625957055691198596314156876495790798389159746785528506907392537775302649630309006743550998428340102055071283500062099726441876461993051264128149310575066387429176433298708368487627105648568532881133832022548497090455884083052268192855702114449268349652202297864766462780723275357434317793246441240844970705479030663152387331595435798181582597143322879787130275757258990231334244212590753419856474829413079623956522856071084641311465093859529878052199148138619932956929962162273275672928836484364733509992214478266367531238515565310339565163899593148369049684553702849154596707493953258441456173910829866244975068231708750230806375960400099285569631043278522781136966595983819109945434838424917089089199653601137095699542413491457647323477574973186146046639807452650879132124408312187900491561369068199319524100228820208048691036390507057312000478856478039156300518390633975568843311355064751957476137897142363536808677966812198330823036921966986788144345618416860712214564037879409814712265379095956347765349420148399644011885816584848456819518592025582099762308865055181710399887662614039602016324687305665767119305487070159299065961913477065623721968145031603921843721590002237454006725102522341708702900384852129534241289930224595374567312401992175175957961878306587816419213107373400030139617594737954395861942163807369192520808332545921985898153561481227830608371426201225703491915530651971738636896211356281294289024373889847534117457901712166245607706932749188825392737689378716708287669614388242641599663282261984613211752133189973644612842504519166484936450276337237778110594340262219032004190174830632328846146214138560372061030862239791195462752357852728648730369493030012218581921186353223621417296559506517827583553207795169364674805189850978246915499994135083276207814061387283749206318132085135455439823204706219810146816620155744901804078291484390534503829571785170863194628441954201790032976198597825159777969246632740855288008627064605112057563198511214827656654161121990555812042512869792385029766580517192596987234450771617470477593460141875547113307966431225889108903970694210959677891767890924555800485693107554479602483082812950595038364221286803130509942849974395816473022610130973894048485794267368644682288311355061407676759225038198420452779402735723321805523211143109678466709974530844431433549536944713694057053372196876097197262355288917345702996577332005546789139591187804204808018743739086970989936025990411493941107040311575458843422883810031060710213360594772648243123231461469533403928571052097607787955991379192509071318208301615504502712830039158917417149913824727838618610207796491841272172794525935979822160633232841452568730426929282603770571571638237996288558070455400506757372350640091212378540518001624475753617446995489176923408395201409857697446059728623339207209795997344161182384642762367989239564608865038757651878092361815551691286249387413716545228231209131144040451497504475920021474484517135334781023139687238473057412272375215749488329471559517698428080088755676202626324569796686486499298809088294659554327548374266422658194348171061573059741279358830977926169900714028022860465716423487154328728961571620658358908031882367907804412881091686139751631534677653531340859311463190926631277429017095796923902199678282528040913038120467991841207042389796556624556709411422692838980389903824756982932924677034537852687447174270757344679543817634332150253812405656454431523605247908103813365312782281860315103219444777387254895926522972242712626864601474158222028427115081187810323794429658232865050427791589040078415207765151297771311016585756989776735818651431293837334926676668757054797744025208042437049887756637711824760222441134876541630324538713352851828230539784797593270522538968623284106554383753612684543160134886484421382237401810808463417086480935865724633832014838379978132670895356601158453669473879917236573589554170366102731588263304460398444254464655047549667675524701931451302162645515376170499100528099958639930035750899276538076573551479528862485842598118872345668312516003934984501163271189769816743115050727799021347151633098122185257347177160515151218430271443854004268865255243363889855190494194818957777914780902465749783244584877889007038934121711878087742153372638530413503929473004564324505574659320878029153229317518729172016063611947772552926044432490955070846959764683066991678471827392487195250338470029011570467678458338653083299642798955845029036167577559610336071678036448564510886488694496749725771848787839369552401647346500808521634108361675324991509281677778603503661363637347799643448592830486571595817649276528358399028648350562559601333161655722870667066340796962850239710342284727654119404732160711849202112686102662374508700095996599181679378046041519365576677299745612256166439468853829464138138849002444494811854906408748186254209630810030799836150472532990654232665391888720390195131093299748836764941057969221028493791564164074017347389740114744640081517115109345632961802435121115762316056385476189629738122460541145145061408677832320836443163470710560186568806162200282460255993612020936201793773402681469091332359912224876447594928168502107483504534233272039573530879059283838986109518648067553065502814888088790616219431765994441410639502297121188424887419412702750273105519635989587811519175902664484363648837277347471121850609501320700442316025100979328967028005745148416250575348241752200724804532312161835137891194879731527144792434300066204122088754592914119654123791433823982105948313157996284717707937395018242336638665895758123801772834788585048691386841524680753010674949058068077179645084293878893530544932489861495592232203199441936736017598227416304166654055422257373564131823327658313614207901613554379164025496630443836410013543451506597211908444032923445426488576326514988400960608412934572420195323577160073345877553272836996313188612877797957592671730917644848215198907005791502645885100740122678635351075751437448699814853788482411677967419677704254907481247697389841992102601533045659309600662649319864265283849473138943922432163275108216147386996062327468822197593875923465643991227740687372914394939694813823214189971674574028465142154656040479454813151638841104122975200114216295300362105915137472246663744506892036715283887033584115247449631866842064239960627708518552979762197541284784760265573163494033163146970140204438985960841961608160658312051713269232495364342012719967694474977433016368422139617626002623507663347376060772580071287152421762434935538673410488932094030170727179298747601352771318602107615602854514755389624617421492583438691488859144658301292032366347729245138107479860995484187865097717854899661058267105253643964114375909296546078187640744072039888354394539343491355942636593200884965279820450288861263020765704891136869192131922640800033198609011425556906985464913515175324168437022725108925591906121626222344331169364631687646421001445521036671553008895894634127941462523281390226560104275662843497393033335110563844244500717825322559802341407142337571994524599988560725478696689292834731016284266479464868934882224544351113206393421266435662184546719031802814091696810041601375840712967808013739197301164291013586663048607213373971005313585281797373317977311691583267939436716911711299532223752006019553867380583610784302971415865069534123130444496230981555371366776763878116748274620943403670302142193954605157775393767550491596414543457054334008054563854964700134217884218645270599946444982910861330853157806462616685418220627576690087319515735135343901485654820760046832833345843481757805042548986970649280710390286689937346813897172202319235044238034807045844716259498783483515145036253064272767059114211887256576227438752520063186821870747032613432924780010155545157780795911772653520086447153045851071378916311548933936631571381605915173605456387960290718822489827273768114527656350112416599275133799824666193954222659182566982856537686521152141732017887396387625490600080769186924322105805757544835185869813822821437909133273963713537643702905018713956418816199955188050194052072693886852504959681210417013566701935335604374729826358124473769925577766953286922256462749190002038509404994657879657853869612510914538633137644194179971267680921846649152805412340928216360444412769473248345155419383391531046998823396109508832535465966670029226483417057569301539071127982101604224822587342496390025795384382805507951592991760142202706616004233007477915753604934224569854805058845389940119469549076192236656960579360600373182416598182550387128653364431063863518230287414239919279345747610679660826138884374073513985647378994335208110048431125585930995972762599384976425371104828506891259100346417623779381660917435429259446375481785087413779311830303651234919885756884837833725402337569500775039406866567656776042684886707965143187918987916774324826010215107167408235830189665283906222444543488455558644472825991558422061918641194563841813422124839093085172827670032446461467259020518529104782189605854087120225302718120054865065176891332562418229799027499816430637340811274933329408356015837425670907050861089554010056781621211471638934724556500847807530420273143100976871643167022799081417280610405726445186117673208293620283403545438246814778695882236369930532781351767235454533812864891759529286441791332279132890196934549918388440766100160410793023638177221706850426823244013974203952814218283760062635023465477260363046838493631225870050251056208071325201814347334300470759705319233520420257717910726650188007058997258435317358400000393796432984289034745709977549743446682148280850530250180035494854589785531035339757721157941857336211716028687762181946557807425140319221565079886144173939277788271148968583171855040677405187712282502485564266793891791731769595247766825211231735228499693982548109020424964625951771183613039970360549099682288128967565731882070021648803606008190523256241112692832391652517974005540876221886859117109851290892951683918222305459519506664096605064006664636344805468751655655883807301204507758318387311605569413092163009273990889470773067234853412753158729141652846727300928193063025016044684211989995695062409320198639255116631256210276811166689707840274476963376441771709804617874860683736617107567073222701151413926244445556796310549229616797111061057649729187036626155591720099679079057298329922413792741558726890135196064861243338951562444319774948371725091124515857689523840910614849323832340127213794634108970577184961607066717045814065443682236809619421389187521813942204319516798637557089862270327930287956371010060798158690989642294051379847949996456020503018591880640330798452471243646810663269091844513066932445336380536874403727576984940789456533909990551552098874459890776362815567901121940304805507206737841291196941682850025030166747028800995121233628815642122690576207876021062532000515573805531799652125735439179917597081908627894599288802709633569922090063960235167268839069443057128229229540122788566188236040911457683018205008579042885948679563370556809685916086949190239558335295714395015290472211990065119790769458484427276066470742404162115863033275736470447224627372315439292274650082578294024823327539929009941134882125173491118821323670229601331384434292613791265577540981700814254141590171778541665026163280624015614872745618132721710899455040517994462467263905405076202913515361588454973014492435298066997145302649923233789022641214996873649868983598932517629050444926801178875292744246256138846751708767428206773369387670386552091338998315566772899967054377713779292799731576057974133908671411001243072391695662428353077183152023764442453346541438531710865052679088495501932026999065490273829142525238723281341464406220789676940951550632427793470781826332969854099328197415367999858591785280211053238616501026676240446194135613363608454645848694685480345027293300846333262677392154628300417214322546185163254681100689894390552206869681713274297860589815548152952972144163627412116097900376851518374643984107682478939117050779503945711245435482849985735888193846110305696526468980969229007474021511843446285342296885189826701113864225604816845562116882414518838541233936199068223233105147501933550821824169345847772821015017512705444292863195898868165775798864012462848633715943476373749269728432346594516899974293633686012528346438375608736403350997650652517767558466843054966572359684432219237203911352508754805706120604788337811664727642637999135207659713775553390710945077135615429429691628718091617222873372784544409880402844017049081848514828998996752636910852483889589736660204453900590056484753984477476725164342291271406989285050496136695144917278565058078661671032703069464148142392651127258440882173327679132694832819459277794620246635985904837984060918027212043499112333970275248939809389764033503739969281185086355217338114629419789553101244726208733203833001007292054335038929470201776004079099352522114897361925119516236759505109471980724773205330482256180019666691503742864130278164166365432695196939767725271596415843816368264110689562635286285584996983567899030837157520979959213779451881042047627957759209373043580618085517260648976065175722221945252167750081802401931881047508433220043893610387406697884021861924847177410685483546983578431413438961377014758580752004701798340095566850571095324841615052878042009459674934381090638588352713434447758011765750071782690739256570979402107500310044020544092851959052928347760762398770245772583260950152577612753280115530917223589269483635385462352148078959242716359500543113094181620423873682073049831972129292822986586077344157928279902615711358017085377028347422332932215773931695330314927722346550102172947230855008943920014688729114946755685193226697700900742292534693022213306385492976688058604537022524109886231462427157578579505224997203076270816051071762732213927372469606198510981632221591677757689666365856846933252110025406783398776869145208902952465547118556419522471992663910929472350822004512881246628178086122350586821568736365320135564702945990047798510431663882171194434354532538123097732129257991966181302831351433962663064863776247164239302138098181263031377029253797614354988331796800172918461723423171030939593764458346135982396956991448061092049940466700066450323706177781092354405238877745739314292292841156014413649125308333380386499658155134068193528715134311453044293883884287419458902720044651717592522587316466703333244025447290930303982279148202507277299407841313737075186414327046048313143702784056827406637940520791483622058138569482766440926043523517711284557058258797368970183673227328262566478401393689203891680226571763559921029375364089360252848297783977372776625390654034511107672925313137595010224051998224619659721278661810022258735638755671206438643831355140918124567061358334589514140938612181138149813102050443241495704788012641445899853632436661994869795687444740537165831325487585858169417113253341785669516981763105748167644856463059818061184603294556417930815168219213865752702594369601779595875656795179613817557879042407030404677398245687069069956461699812547414637935172544576421764741616956362763531786197054162173537950027399099201720225508125532983186106345487891760671189393977258668883290751975575340906229418696773348119065508019606198285110556256949020600410560725307088070467825752989821223066012047831104234612771764432225128639883760017771809120193705906052652463484658020685688547705267201398930941389110410363788523286498110920604575893056132785509577450041434911307869992594557884975163444327108401940831718273064573296638555132787358285838870006016149745961041409942336776293887933765418363023597651382055271995084346402266538431963154289478091431953407675709129706824251080509229700000183118360377018154992996210655154135438811270057633814885895992652832716384679361523837064993571111269214672824065041706826399078020763781931439232168106578225665472956116016357767127278598772067228523491116045892589876835783755985184159566560607082854608360858470320739751091199716601519612799241547733710885892727255362247109698490501889711795038774074657373747086869265853149764047762576642090081091913502010237348942379222679866318950597844160827124872924256240978003240148659403410527210594912736316294465477885356589087953300453067028493188478514974590829539326603191901281834354383394112010419843404937689296254560964053990001752810864737356487109002061129989274467718240756343273860118196427935389344608631366300557742142714284577242373699469054117047748395900555002028343095269685806640411320192864594647967034018681257160566613095550472848118087736655515062917280230090574942746725188368657573572450418744326976749610813147298642845761353361325421843147202296342724101596719889737911370837169030906627515600244678064246181872818070909186703403770115389636150731511613604671917537016264716381650610897485456119761927685375410638881957710013777781675560949210463113703822416706401626795200781298416009393750243385112669845032756253884409025249980745272141369734979511478645788702179506726118245225704779274636614766447738932769576190249911639496165503537227115676569284581333902825575278941077948883088136017348097426354261328909083774663192786784209040380039940715571342316654861930501466319500179280393606533427751008160257284450081292657306544574629185342349512092525556843148268221746210897600279940679554316655515062627504375538844859923898275373933216954278025749227356550724228129286645491577473240223374540994885200660984721996685842002250255943868694351580612422431769443390284728196046698161621280789716076799359713483801499953056888463992443200807004580942340135591461600079615775219091469158408102300617138088217608455243650110919764162615222839855014436962228798859452758788381604441531594075641448986719927510921817827144784002389911486945552653244124400054833768793923066056114586583245759107225480867289266282575738986588735700052616903064644245634240233914655818266148296654997713633861978872313031371974956651607583128231032433442864455940787953401150752931561715327319780347051908898986202637923953662351286925498591849325425223889713074544952462696169808761045472875724217038556011777602761395466556383858398575471255533662471410390179830406983405856862176195909749903270565612803506010031682889835648633277557771724019158957960296055447742806807815537777327811179736992699888213420481639287086330918983874829635934199639057454243508039582970771419864805411196759924652833508979335023132753444420261447362264049539204167286289613785436421840107163108722672989004860512104680504687337385767809038295484112322268019990393494874199162519747832986524059911542041744671997649122889467780097089094022595315315208263219409590883839700179740879017322228365473759201067888144783465414531660598658590306156469675755943709011250024281443848738435622747724723937472434658047485235238244750037594608403376830273065281827240030765415719289358976590389279251462341612848003271082974346218431877808471150655931564364832799240028366139024214739750385705109223536628616889634478694078470747812324603429132200063100417063008332719340706786172259210547241060990559009489901035261593529633614032327073943455197952335664837728934487746751858473190290505401369842958094620323072035398487576061469605153347380664478957347386278876286455278988488081634919493353784297211385809911976294140618717421837192844224694517186045185958855181256650813477292834359007857487253832445076339923599983871733622345825302243716559817741960650694768295114528367223409029225314150779419932229090013432228878294879502539406365915364831192050725150727668418285071260630553975502536743615105948666309505498614056699710510867170521529967446593971424753915922132075018452179547391698853067398847720054149082230186004794370428362208609992067418330187203194748418858950713611891824219787997666453791093708447260534913990747289921207243106963667145972416100112220221975256196208306629932599699858739189091619768718505655646403482585435285965467839595177687628057290858240198871809826282291888856319568536667809483927177776295761326133642566684193709476530480190541222718915576856065326319449506316895239922713349259062739251531514582714576592995234511586659346281141953603407478101093673879463694477986116561558655921667059416029097357009464526007160741084291767698593867321990082926756559386953684660272019151926585478110564829285471668979447732102234981218112854295755207757190666170252474310594385784746244428458029774918993253113000765392695808481959794882460935474448025535959087764418993212303154555204950964872990087584266365662180868256694139391119696135708808177089846805264554491639520332882165631139254979145545342569904449273646282537440210293647428788422072683376557593255951798810001042785296798717616395363410151323467893206529774508206698681190454334920784547755974398659616821051822813354300536438071391178714804181306857044155521556859980822282477244017240585837616574241237513747912339191895967216802958239301616480557229335234786502500722795944826138178137764883795214971097503502717044433490226954093009876833239014009095173336039291085817043041995758177615122899744335700701241245206610414829796644453272234779914409488401645056056300827050292048830414915097121539345070735514607873345701854608395722383431216681532565957440752870399997484894174712650247632496169458602480352496512382269886870976846814778376993681638193407733428533325318348491722492879991508246489431627952266662168696262039358956759541066851025155230790569526061212082243474305774288148209218103722888092806917911784563945886675399252993409156061830193004576419443816579303944668373094242749137598336618936544211920838888649875938020453495116621348703313348419581555425615299507886391779413924404208847168928167256171418127200316276190068821655207684413927775529201089372520487852507800034941588759772332919094772738254109824642153385080812741366051593698907288508536230751574603596322112294962972256741248974986271711077215443423421339125750758613915282398182945458401810202490024860556161611464672582162656741750340104615852109396918896584897312530525618775095820532358743824471461663440130070712470540234793864525108679116820816468013517647023066618115915315710253312944250047892526494526178500135553324684101111432896124674493285998769303357853432309286084675333164424975720685434096581430980684386574221314625834069402477816037346542294248391609198535416005252762622762756389146109770937395540091494888869169159185258774601076456026776964216799837342123953421945923304686920312478562872935351710385598706788525164235009873611332200448237395722494887038859764552375576043271486723960452362212615917279104799785970050829818380069809518171657409274085157983149087609497643249965683788201996057293801264237953642076323809917689167594735864322227205463830756749545264008620414979791240189028445756652132271557089994410416484052445125099776354132626799966502255438752361524024233753071646213633527617603990922452527828343974559241049461045179812462989036292027288496907550301375039699659190377062757914280724973080905392063204715673804860490452963292719170798205346429741806426668391048083794728760788582619459189210748861489433757617602854761422268719091477908265028399598853630329942725656872672368284460691897613260405960199911794558319784526043261630278274776819404851104039872094198734119177860106781749385776147025651815122945409702890278210690296000529606125153585272721254064020400261875878854793248257322229705047602302703115500112571419657921777821288552915953526964012682610843743970927660133525370623605326394078514680143070941443353949317459640653782523020108004081495424687707522538421038984976183080806447634584113776826098617107323335519328130571805625200039135853563921845802899957306086027704710063029550025570284309490852375095707841571377771323297014795643184367935693157331983724309835577048855629158538387605812076219797563037506073446061589656819842375075033593441888599867202888901610749681477564170231208300216537678553658107805482061842743283662025253505256583223682941851870592866652520268237793781316329531352857604881884182354580343218768374783497961190384165235512091931856979161726681065752997501038115177555480406194585642922133039856918876735471320408905538895938386837582768663955144806808804006381632242519486453826418348257520408112758468375529389786352462617944798473424064173591323351361847810338709186871225915457146456132965635091053752720345769560689415444718135560036308209062891997600991335332571695854005420289745385214302700162552233157673313827350870220641238384999618023016847078367403000131116747879523380406189185421837168624797980431334198859755359644944402988153380087754059382388067790151793683484722982044598505782531102777543936726358628165901987728534175173260959955610193278706128581328469431027176180104014053385408917034271456356524638807038626463574419427576371643788206270496839566164617516012299752725988838975936849199013673306590127721414588441973166456614374016194536750418141264170492558697437788414081141882833658393382588509333874887542403680186188307001503461264258255640718161025520851050414957583004165951507890795446425720957208114943188308640154879000999464546020945805531480340328995472261971675567111295908317813925023804496562764498762138010938041555589911827124019227415723348045535262055874073833498495035089855384989440887613955247958968475858163753386392385139496543156280899164742198040554635941265932431729143882583414150510336051839193834734149217904016911032655367697409280410401236266256331449514511937572946126424973410722897975503749159570609923008531404145715524296638474697619075659454454322791829032686661771637125614359835156393746697381811380813476095043916786104171015805251335926318171115701531250812371895745796884666065249412052269030045527851981291531513889690514618547148704831261015980686375992333897358784744329430225809139660001450912409233748235356874986793575488746614978507346443676386548449817512871432578875739341099230636850745880746685376604822045545331178338577675504259612961408738236747505453507825668399789373519847268162265481323241756742718192501833806304918339040166946917082582429304659817552580719448422454758413759244128020663134208075221398852589074492951260732215772113983766876755939954838568460940165402345153930613805842243836080189645241545685892861443678702027300525752326552185296393014918542949033495309038021087364181855935286200740104463564755565749821297811608156315984746867910458629504561484581284914893914417328563038363177263959086688951342971298055325728359049653581747451725465939954689148657210021819225447790956924365835221016667675139156954159589371077662240249041615298610857142479499288506983710468110949942726513261344096557433598533709786576098245705194877678288109901080646665165566362545855638423831333443648734410028382651210208742641581119352047144607591112089883233060763049924027139454707388207110447112614080552963718509363507433488933135385752813390509473286699214298491014533568145130238332429822826941596031327188540848740797373794902187552615577415787695348209894571014262439329034926788222390202696594474372214639876853230338436941604600670333049718794479144043672869056009118645794497305273014719411514213904399307397550899232823058102771277118887721350191446549242420535710931813470587596740539146477927062059250161359633630340520519176720342809283811769261037346894278810607836107443591900511751606381610278029743459453614328251455691557743919175116124002123743559131634168930410761745796406369405127918694745621976170712440231661706887774248103007538873209791678607643342985688717732313638191646566615583849383447651220287368057643913242416512851229698599356009719567283325421880791869305297997709432607997854138823322758991449387675962217827379910727846808140924843534032244145400477018294371710718301255065818238836259543476207995574478802257739207652717492397150371898014127988096893098751146119127140375278794310577721041916768658801699971381256680614885049218204761679256945869773876861646844627325002165761507218276290656138827140220886635488847966019697292900574500506644279885361531387082190697495934499356049618990828790548607027713133123400968289912417666760210686606310864324206086340350903470097182104420271426984937678761849417599270906131667586343650562012459144627601718965583579141241685045099552689231107084991857563092809376749809570898958721852564312094397059362376760992797683455497287931621347937834858829506623630469647995825572376560466724591262797764281064456125210935184643474283598064827998214815546947329740872806722427898866751669040799275591589194994008016227040232707813293318272855453039457727003348169058341320388748265423511937156810981783077539568345812296220896392504082993919088597949759779890820961978036141159223370737629582407424256707959862976112485433026124929289074155604026222296641245507712599377967094680897981046307634092943829780411263242093555746264885414642856981021411459230458163288061856233308318102585413072132660495818493724281986312520116019014504676999220298054548360456916026744477626059194987608453703282302429665858479088158674275007659012886937859999934464492344221197473782671585976074589774628801708481326800413792914060401021932596409431237912709641017991852307163252267794353821561103269569614369401825466592798574567145479117343875347130515127618590964036137333005469583585455621049595094356502263362218611233441851222706752767685723494863154106811420274962362030383568667896623680282891170827801543223158320464763249082939727247253133835236786233400813635278117334094636018774275703058533631140768445622008930307524742332809365944583307518811248154052845203085476393778633335896585830300807481913725448473894303719645730627284485860877597974771405399479014391599487292267603844880596965693681876439645838787887303938287005846382827885112999289767100695167814040943495354133710674080968741452710883521032304011783806313939106090713712006471843687309311816567386333415127890805910459682235762743894417746444229368463460602171064285599546628878644790814109445428828216759599439161482506028660396477512340825941890341197833725954202408979786380953086297990356077509622848647998113786597866141133161087544892011528926876355091204357329093713975148632177672391451334171624014607140343153901948803604011277369651272809264555785891441014736239708802864347612264839790065056998557299028252080948410708946231951898527384299528026884373370958327081484726057518591250741660995075959051773051796820866163445922115240559245435947545868608511278365070610928464060384501985437138515575615178333414884267447268432648231541902418650413985205607567796933127724297905569420209094339338938806029357640407165353655051303015396018103855470278048980344285930444578501361744208118732202635900490493316489948820870806251517517845227744134466190998003792060729015928216594816477047114865733173037275228606590042566528457907745462694062192210403116170927810052281790606919507200951097462618276330668172794306743023805537364784840788631936331309910945503444387086263414675269123901555537603139410918236483263605163205497109860910550932420349917979791212512157834733100065312833997944239796381577039029779662014993142904654195176134691664012332282074646343640565763170069476783290459791870859935904028305006127762766040629876561297974084337910931837622042908052659921803106269578722147172429440055070973114638774624632963383170551692001638022688529014129313533873128912273002246735109354293070803430803914860257208922385471696417485958967807168956196076575004907895681713865557077076070975898809327102335741681882588084882430623185906281892011624819346999702007225436613476505324419814142010297251959478773145196894997491174179177909332375996210962245356056724567660752709494749362317182895292739296454775515696288070394993675658079040971961800058765669925928285636574709324810436121789938330550311782821464397199269762779420746495495819131117922970428076827217325093615228085988838436890897570939189244886531937743518998338058968414677493650140210019263137361088297669061661658342152349899151343226986585014061260078197779019092081822981255118704283727885368932680960874904487241584722031553119567798173251820178290899215892606456598445094357251635647764069165232838735786133504025343922593434089134618248296354696526213388867958277265744599292724839640937637900689635923374583824574652645196657612662972726403448013650042768926850268721357892326768837457458418270738256601823812789752103683912085313829609440037671382438070674019213383490571113148498735391958501523379275098892900150115798876927180122467462240581212007407862050349630143113873282346388425022401410620948424126200287156295293437037209415021315439438609396214558986722000943709626200837046238119380475039709372253185390962106431401653425159444164612118643329542674761508010878628347871328971664402816060669947098877709768458604128007386174654416221787117035636575080024936884818411541377199712744137530002546468569521070975689048065993733829164371944993105747854937136959589764386712544357768517615964649460336074411887933709662144512889717840367955423487119365288879507632577529855052438775053888888683478063116615279680940858697437530499128820374831107358211867750087845195763993209682206697882138223600600928647337977180134985742708413638128013650330617189716858189509748216289768199468931581000539013905295268035653652786123326522975157396100475826484685134376324191453884943174634647443788820726498678320456910940137939520186376686817585475607543195926198692205383539398690801389604948850850066747083545151395787296140587391910067812281185537590575820739308784556733671829515798158054552594896753998226938371489456152050139125532484052760055754670855892136285860738004381316156524013291882291404188384207151991611237984080831476017980613517078855076604657479879438545376257944376858207468325700912749037524890235225358423063082425593129706107184012342284337017878851117576376032899511689262839271926512162255748075962412637835426617337215838029822894043460437442187790379959312616742455807510888882734013473230969922249670159794301096214510739241776331825939651556959225343536686879651210091955661281877846228219152903001878905340294899725653368685553990116504013373190533360290171552689580289256539038532037196535912832412903659585740382597119254918446970114164063146309910863436817070385128435832887738031422807919566055607251165581096905425722723163687768032963122017125558474817357378464407283343341460635619533722188314643025679075816229091568023472017177561240776459452170669995637844900560137057828205199853026605896289976560020737699784029403264951400250365861712992701452371424798518206869269849813127471085197084649138981503434715185826590609275991956437418139239413035949584634475449643028682875162914733453810820656385076817338811553947576587249953678581327007220324489527754580749393415258717505891039649208049243593354313182117037303219158701232027956128991745775396659180768476739474293863174651704186083420593876558476114659066291048482864237214569545452144150563114437635458389772219837941050077038545978966499188221742929280207312021523915335794420123869973729967798563757222779206935920488239786033186610905243475646505294007924960520082563011574183976728079841830095949630201893009020945360486926993404613301695600871017149671628674543749561398018849797243515901249778981952677532963513634304422306550979722511058631201175715335407002308675569806996783660190391515613837406652464075745772204141409773206415605902290146558159624586923365005240301415630031202904985488560328324484263345180599497647373337937811993663156087470353427254562592153160611208180798076715019023180479345432591500760222528779057329494459399639005613485555138769068243863751298325247676839241877977829216632869735931517077233535104086087766322655628400919479039435335246885874774947560106527283863663496855463543430790534529796997955096197023243020467222225012080573472418106169631938439655475889019788248199791772403409324527754069620128301032485392015826054840006914297760862053291879849415097985555366562919654077180473846872060621182895182808540246075990039370286040194178951468944749209461002711531553047858762870518742044031615885340523291009989131193017315187913756154650018622332701761837278546304522992881819503482313762591307200377096363045821687147274523432899113018348765855831964179033854271745026244024213844443926863367069708209702953194843547642326658427427956927446675855555925417142945949068983206068965215285631122508496734156582953151874721599499212179176840522614895828508439548192064531520714933754720013596131703696441129815265579927288267145043153664330216534306465299457199594760894869695491814621494453067658416905981466727592931715816724338354753713331756310821290517114994665211043859203467209027520059880976392798258932967972497045226582418028798620629467142021760082611697842071552112243130082533106334271930275665744860263906723652240001848163173290190298307212769765623845094803242886819832294992575662273134688775425256653911285774401063995184482547515496680102672431636645574966413160672666827146193611133600080573837609867251291236226611888921485599270426324456459097584260728721064435906176994563566103657158194284823365933297864340354856658618664894998775297955993016018621793973218134065539454641181806468300342924104807437242010146567781640299713036811676923503322154793258269224023212947222001190951891142334929387683355496054106148996663455842729309783886918465644177574752733279313612404839849980534526336512636316175880762651557901458923419287663306556133393590758647671825625130555894173027991274574455993336635029394561803073313694207191578404895850612576402582885189094588536054258823330050282644536789832309030353773999494357692390881487851041895464942311898804047371293314408607973157601837133365908052499141136639683257540637177155977112313863644750579421610727561840791683268499171778630351890734034398036432137957927811374671304719322627591783916813386360594332956663094769637427899611813709307616054706342433798525596458247355993208513707541388637519334775712714622476970091051601112678238735602564435519672889646373578127980840975849060608218114886141389897048322696445121486380126811082065865773496376465308266966994668736709289115723122104922166649185630535601946373220164041158310527750123411641730424473109643377553521464877935988307235009455464691818912328166355058844921196658161579059820567858615248562964163010454632079793760192965253385454545212453062824581812896554713839619222700679492148717879830251038492901941840060632571827558601746516364433117937490107272251266016074945743603559701718606952004995671821444183785478640112670652847398661793582942755838126374473002630285755163483102375997823620136208105650093376561264377793605504198700165748310081014234793100372222857157121511595439903306064527353967397478026651871360235066367048312098773407133621478543360418375026306855565423054218536401528391913445752556920463705249756618003400159274566088224093807399466678542645836756305902740347627419354478105322939071508966729513819005662674255108984516190241080679904428265882178417101465454198621385690734794011184269068770745755846152155363569803171535465804881127145754375443357685854465636356649225128556863322708295166392998811966600335233734957500738624084225760825248395293981776207549538478319674136037867402680144022276684889533641064461654329807445526275793797987710627365340545041400647545827904399539967216325942516906876987689007212222687020503744482960221837388408985425579970019127722114238337275446316689619666423796536074761148778360352096167072056511168410610241172250372928912256213008198072992338967636083949572384209150835266773443170575189778531917165012021016552324937604282771136605124084447224530386213946195187166901717054651228758487587746343456107485990039094313254537744024365452871539526620285278992914959006023736904333203681159156348667248471197478798896565309111509511690816097738644656214810776170879326533742085669263012848083247750159477668887268559717893530817188276992849410275307252769523101787354730905701704003279689942793160693850929537846376617201514669589252830358554204487030619674496310660378010938569049374241895140727718275933432121711998362568751564728191691686418464941162342445764356018478979689969879597573608661678278350209511665493263537847856268734226090583362067997280296945169648079699025732307899279537797311273663691907154534836437818961456890453313988795721189165769779018967606194114994854835764682841692349756048116028711402913729266620533636458300573369650629486037802205203406008195975639524629862933419260021509674928460776140085736128399191821886711118418900870011716225207318440051447649086091751953137760123399932834100770255397258606718556607896056166519010841342673468792223102859450945668878316782040532810396270638040281285796283511045137705289509883890107441718681293948133797398193194418016345292765310727918950098886559066388808750935007908251963214845211384004856407919662005553933424270994251433355072453472143040090095953359902856721841165541353904891179447367579518394954639937576816401224057319216676163876205769578456882439806830870610497402780617382959986555191175200507424083377825730245772705367891181599614881463911169492029863098950460594883008415694932086225758838931205598217449999164882331034446790148843200735939304187816875737343228777805437433656616791530752776525942839481720854611637238945257187534699297820103096311163488173348757213642053832505512569328779280699574718941771315381205999591768634604711455475932354530574504455652126867724730592701129378387051040735709194156376504853385328958474152541232455457839886778973045918990620767816129079515089820840549423939841043052703698540888459207789825555006230420726306824566992892095383344918952419550231527910089893058569884094187690576896611755132335486819848866337118027895591318501655582088047103131731737996625493320222053211221033829311563105835282617703301959413424889520208576670557098736266194289201015662177844982765011658516391140654913737215194922766660395168534942231317309478429544397935491620913495824845980415957330886678835176637064964418242294373962608237816544879355883536369199396769558147707825172894637429111720605241617350917592437260244843922468297774439999174021456152269130981559933721976910046104626944203546461802866918232346291912619045653006170838542226587700555496981256642221806060925714249162335492256687745678324937189136212716300753815811182145632792762460242112912862025534688587218497352403852551262044315239639011988293580121895997514753220177146173083490818208802647641696442248350443235653605612750291354990689349115919338816564591767856175048602307860168900859561882937185782861424037456468768293196622899892003222522824628236753875783520587943710548333310396009347164810613319065766043469433924145647448846969414142216487149095764625531064729843906547867530754070562501816290004851681574742353976556757131331439211226704538611402883571966832182232224075678152252453471254247916670658816277325341252628822697666035302282658911143692525604077748413569767212245427667946883973041512077496215697917248811140147266300852069876963621603075361298085834349576685827311071307432533837708504566340799755135073250719344268047676650904865052851584346635139168783871642189615880032834023760576558968650602474624296742222423346273180050121747676427858366154684796306723519122377924710558849566325706701432001464159991202123186610235670828501002164324616953108113719882622878005565019993887193862880767790606119462972123608572105772816743992975756057532404409505345453710009349927824608101979800603798288358378495491163312140214535468945015884535320709265556334890830375052254844353190991310439059331569972490488501363584520651625960108564770138735925089538080426156817623753228056664738166902395161180543798263937462716987519078416921851314026256705828365730482311806327390008650836908053664803025274290524133910782827747911923183479108163949982380410137869054348541296953902892618543320161302740202353597963944274088893404881074573085651524653150247843338052275888280198912417026041256406624640987970122543602811977690204510974050027579335812759328986262147065181877248609486796151674028663074379839330744379625456237417300564894073297626674907688162966485843795594192148121135799456048321971565180594805414828209673891101198485181751652649835801028180428097945902888960373187202853841875782907866832808221423243882978701537522463681785877039968960418302844555690475352582975552299495257602754942108249169309365674192083968436206302341736377877857078392760409092356766814400261457765074465906021696494417393734459871673789442733468966809408333464651667355453758144314718444067969102660702726684423805931656701214924617885299181966472037958006282994775013496214486281593824412130686427599130667320794674283120148272704888525495507523117065079231003936892170422318314048426735976908684582193745279487259483661636117964275936433117233126261621507102561962651711117463270988367192708730880205825567966334004297062951914011945584157107015176518860183462606225796389816434410659759342223611260379289020915619442386000261324523413464758326181920636679886098345952062683089441251152207571819198540360130809022184055696535751776172576260829536309088313147836331419006822243436867799846977544896094903057531436623825536875584574532885553347331126297291246141595756512277317635862553208714689005403133363002680093267659689364226239039229706933466238574750152067832476934735505452914328223397873795336232489806096495441546439749895699121683603345122485371962905641041196657419770846557210898378670876295226805271402055686069867921515124812139345276217495383971674298902877625255455348231691291614478861205160586810625320721583578697426114924949567878298298300318323212806672929185469898671009521359747729689698812897806264919843429733561393022056722897789472063787634739569567232832315845224150217901703821147967562937517699062716271303749473723777054198872017914944365997108507233321288608583062399447304489480368581440520378909290632210726285294360566584887253476211692418181351270170329333706612557436354370743973082846927173132162033467812033621763248836154223951657581373570746442586289645711969221497861592211412548386153439209232906763121568853650657783369833657383226406599051051557862217747196879216565985795213267724002656183556860112588042786211825549701419219887819054792406184579388434644050969542258793950963800572653127443120974488088262647820912403001214245804388817803818678238953107344396556196073785763412865309886464027618201257768692356048262361610345107556154101363881614632328611057203430167786582846044980936677066620390518845801550639703027847554268623408714172132483224013462929274974094887627988450020715029992919275304800330741101368789141814714352046663387436791516702974678558106516837524472008060274549476092795041565483355972050599041625450221355128403056461528716079638219779743808832255745782824972925564487518774011349407035640579294824788912605230447901993706951134920241669066457893150818004560856847508454314206825475442833753872588156487708930560595299136208067714895875992994961499168221225205833426357594690684520156185179460972855887244770458222906852988787013675874761949618498597813439927755410359704202905706321247334184780591543654511076937582662799011732918843212234364512278282474200734040626211203735795714249198074837364589208856152769211977565817833600551066970909105132297767348333264960215884881067078343232669118518539854406988370741999521367719899685307062722183116088970889275903353394467598145728626591433257109355737875964472941106559509328344176980919154521542615700750218538213482029524728026415283782423480793124276722797128893080768459076910941477957401772336344179487652133454647562011740244815820090183219285843675916319821466924123397730425089800288948792143776960957067732166602682788567293174260910368935551594101686143514270028187202214251243755342006590231989830401870256789214180155931343387574844593783350546720028296116445322283143278377789881749941535453437513281827057497313789627965434156159673902338505800302189123756765436775146091865685438118454058548348942993546159035527382414865355305003771378341988891278580551638214241824672039408403274613831403961383233357660688236620904888200630879899818764396163686401393221721833430551110198363850911102501188184315769455100388502977949252421053909156396861291605180582167593462163459881747734389187949219618726133341973205144979013116843683015984857783609855454666803696694817301077628193027555170437171969159366391720984668558175568447278471727756924804853556347496635110915739126030475916321148632973428936943762136450177546223055566600348587041954317576999224885582543436593168181248510901544460261862835497772590256539051539445189861573214003250875450991497497745124249146685100308996071877580573885811684421643068817978454507914519268503543572168836780022649763423869450030600162683625339416271806732891574369767878651298230070332465976980194438177129474900995231060331385710242089364798186136733152133738628996644064493905417627632260129717472884011628410796500366750572547176475483411210536439029342576034332544516201580087361175250890679404608747466839012309593225467961239486913488469782487668783178213276327647589035962028522784293046310043781630636790948289227485212658355678068893347099723250135520969368480679627336604223910348761445004092174248539624398625371982398142630649120855156954877995854620124658491115871976038100673212036124497859389646665170854830652261073918200070453555916444544559308650401446874094324720050332241978640926247285581987554207211109926174755978178128615394069401135703725739026321461706064656677248290649394245592430033412440566508403134203011151004737154771802069696081105724258123533876103238557716938585040207837663167037406744676525076245284943453328616617958653727723723984256397013197859887437905654370726900290640787556304782225197778187204054510836680477469144868851773886133841736215129515569617476795431755831992653396829269356243619066545561386921598490679719378961290990775454342639310573736490982825930926311949798597111882609140243906261412273282004406768904315701676654297551049153997774814831179765434367615981391807251440690135834144352159256768763267521432538170814029134459080408315008648329413568278369159397113754001785127726363710651530422550390416846603546769974830339869626388564652149335607572875390335252192868401727973632801074667033552514298699112849544630749453996196446875330938249885825190998812465313240464545135420725901516931687588419201472543539664011762171639029611848849504903210162221463003652084685950650161973710998873499556030793231393358681848416221568259728604227076009099964837752992332092458100142820460509952030698502544715248043915982396683894493318269028111695345763060863460931865594410063532675705623980808001024887181558676390106497638229764987988566234928662076029545034497762348866877761737328743354240474716387986149640806726589155177867431904359195843603842357375001239944707470324492838289582638468328354799279835849578987970759185017478988550787111034472420447267333527504509815295992935515889182261017928033639291059701347642474888328613199458161062762469414641807764948892994491827618407872049111454204735307325588925327609215075254199393968931217083982787664309609730498151602869758643632139356514571974196710893310510933123033963803217108066080663278874490312642905398359582754701064781885934820181886686751172104231033520591429217513055156859962727825464484709131716714624775024205032108170314565338324127956798266647823402982156862389372831270588024405565675903116100621405085830767607286756134603026041006870645086943994782344101116750315868889358779113659694074808322669458892453098847918371214613120774809599896374795460497971877907947860161117089299923457002602673864340419769749627397226448789824742864721979529194693479391229185596048948025945858750205364121652087027303272703075587901476316984519465943217966626532230277052853700778800976537218183529329411285431272920204447419651653800931372400189677557678100927730087691595976308562363369152648054722412021071223761243585098073279784146999161327820216996443075743227821537424497045871127616055322571173414143944422429377536153583610597937828253891468282779083461771176230051585077413720915709686609756423836198904193642981742289724686855066697108648546574569523579534863603886103099814167039451230378993914585107140882842197848007790158571245925854951527663676913272604162782997437847786526632693712143772081737469266177136173516038581403115792647610577118365913902694177850897948049911789408772391603731355846970722710436596709269080806001094875331084734678581129652058037882631568796361047653862424820560423396439529851451405804018675393534064123004168439950031216233686230772970726648021272203141326229275490499612580188986255568183887372752490525539830103621915710201540726735720065293926859385923550719427873854165810481158928396309679130646002441580635915754083162997346941330339536808151709445647161379731190235255803928925381326799288742142162150995424163118931350206873089973535355077379467715579627849694869398096927094389953138273375618078881772928928531884967521568496923076398619136439020186633997371936637444739791893158543735403901591772144921683939773907483999978356241952934347693219352098226146856409833370800647145176265368503914247576351038245548759082192849899086811882028505977966478898107416618789083680697814063383260471766927453055536311889804430614211006585484189521606948056892554419305244311697795641121217517797896599592349362632521455928733886412019260071073126120701083811100946477905547569436763006690685233299360199355392911136936953309429748186937164029432572509213882656633526099093483933669468218934895719953494089048417035009623334522184011555635174863773216300422352649851768558829765341697560437790227807752846176733495829865219930950611202398813108322750081679554353608171197396397498212021373473637375102648901077244564033881601271417846890970939675953627809481456610793667557872861110071344378269491578116198325735501154403545144815587209211582069674417692510804755951760654864996611920175653600173576883661580917891552421724790337726340549405012681379475029955349776476022740016434546836510662939946460636888385433125697692611511347743241900529978990584051640431328775521710634826797605864035605145312631873003917578158864568206228092840107158636203699184971476153020151661362185111906436015112961608106009049977496925550340983381845600697661116816330234374775869573494876370996888343616929053536457400562988158252195427449012683310420281927476484760826298253399825306199982532438441341586782342767996915788761078661793063363541622727547340851092557721304261763525819634028770620569360581967717055510395889701002670155435647113369543833764944051195630745364365619883014045774249029825072558238281211624485479957223058237337148147446959473211542058331681738770684038277094667618938289685054882456030485499609102691348380264059440409222904667310091911469761906962363222046669031140730727342062582313889071288519894499122976923739827273823009736627862177106352712094142425230028126044185798206832324728484799114967838655596053734136492888225960927389690928003041241523857836827906404641755262316774223752211203633081057368575039886615912949535076035015672125320514651249463962561884243344492792201119018797379019351436444055536939358494771862754739628530226326641782987781432833285693188654504984185241342718777644260816134319042471353525708260604422930682818310748594450726409314605365251539979652231190869697174822195937228690838298043551515133051840898048300964442233123650416624664779377721473613760436990546428908376468674366320440662239559393584972252454930640685377413539043607178839501693025694786209459740073147562596962988970139564325551852963474069373712044843980310840191581416500680928486703629508389368621157354376832331740901763902621652588083362215009384228511119336920490566861764690280710753212824908617709892315943298536158361125241820396625012668510353444306679035181791263602339240030115445184428685771743797842342170403162018026590555732132963782841314039185082957353094849830066646190331070090727499117947402410977997104857430360415836592736813788581452795852096213944993918069956949743400607455070849354146989404672644532083272066702947322946005760382892067434098568067657612957879422306493667745840527818904206969666692454202064876945899641934695191586027589260776643982928215729549341261615801528958120617720403149114728323681253825901001304922915723114485817236584233874497050836056226660330162140741281034030060487714330694695558963982658544273237502863402405764904550783139049125944320347647047726928234304869052663732394506819059911443454002868611919973539904409127901223239124301733716635457222280690646770292873849705950430191729790971439425127049144886999101647223971208065855317755085982860439037216849368295101324350014831092941328401501649273324273355320182430466090212646525973982267145751805081307316300998990128950103596682952972420674243798805306296609001732012771168457577024435033203019162468146769457190657828314206557586372165810105229849829853263377776390171499501818337190692793608322803380876312376736607335174349590700684204314436699000096052399359080073258535114903206258155217289283497619746423682141251438732635368705778040754643867911976323000102249594615010939221848607359535248984186928577735508202486647430017000442511292700205552949855165515160846176637476353548115577518954855689640640848270077105551805357938156107321873998106801088546265386289569478808465316665693164052376017545208305989426419133250837854079510289966470671066738965287815156616196189380057349294274361368528279304236012592634436846558224238757139243274652090470001131854209612838113582647934344864774149700736978806667291871065091590336009370067744222645044478608672910364375673575115992269468568147936538983614729153049586480071242791812344508953648839903519925742098628865219405846508720929468979683524527849649415984215057865889083904559740542412546687281968543049644616608371078827215399191918424938276054026136110921428685669906200038855616976785632263065874678456805532650999387076824682105979602731074971411306605176221346398932708061038624186135767885761895389668559371615048492314236269575386748044214235083299326371312256184144955224270708775054860360478113380559103133219955670962490667636665694781663014277384678565370729049724711970658302677644980128193227402135164667128646917777807793336360783697110504016466930198452133187919177629334538475657350195084343874360621898070100564058999852738487043572643983045576415841841094506082004461964491783054303794912271337777272546310589649178519112135461551835757255832516505235802491353417647657521804216494463889775814311408888679307701098156572911073362724859485983756338785025055647338380604057590568979635516903045426727519809794726297841993833197010761540890494140516979635191633562984426134861783717220553265647444170084791863603472041272835091745550965478721836068742133738191264160194554792848256362583396193857680640613217888555902925654501768977562810779875177081403981130759166922050601916105174806527071891162731431702983366492370515393374559491321157777829061334708878849751041366554003693621982331582128484754987536287336912074717798982890934849413988949299999137234536715255206997728840577916379066336308306277271163692972718040366624917895743717598982468635080051522463615459757992990230121065863094012171082749404772033237532923731070142566968677267402607592030755807333838224926001182967084684206392509425895094417048069454233653951842461537049941843480929923627670349926996141590023295313992930040491995739412516108080145897717758369071358546187169623586942938018339648896445101093967312784396496228923346088351122933705192858143758160420496612692664830453945048965039842938746250835101565498800589194249299572584948165249768815504740912461588982433126757416296928833449197977257225287326114766012010456006971282819996393468247481810498349932994386856343091787130196007546657189757126100149130099100308279499085283444525488649498018955317996138865692160660621451190127468761967406209809092129477675829171949538057438616529745900912569170510525896247726062170301708085690407611963509353963842818631993414241348214141248691189267278706219911778923893125539096099055875001249341021549359674732217336053589938968753888246804123381158612988833451155719659861295325640944942519435366162340966554114968830826478015967233785782433451972057425997771935201391417046305078568866178652074389238835861002958510219522441714430748899179142850293696905805347251740009528887268778546291283108091720602819041887250658179387970226670875093485001222991956217381997883581247980913176095987526317975310213815486219237594848989259306801385303597266468713439869671898576546906596645378767677559679995967030795932647165443036056876461467166858540574711380999287587558421637565793940424987622954915973625116921597343086354153934373237421498405702677787802060727106499179272104618387057979469819675040057634032901713212624730958131547202082296684102015623294245498896107127258815417587209735789993408338131956738192207160653004906914116326568406497342850848277255526426037885690008264919198959459625072614005891960057566705631058197564063068623189842905811523331866881433702374600483216255761516320032464486471733078107283706208021087408638797808355272453668261998379644106521139111630816266618568786416080895319846014167246266472950939455270050143272824492469790241785843114174595103596802108806411550042924959616220520375412847909579933306583294154447060233226836207547442318385664007092238123924634818232735274539843350770298146602666419711711445652733722983175372780577280984696616662179656977599787743524461241998174811275982152077768797402162205183310877739702492826742032838292053172209906087434354838657424145411526799205779200616803642044294508053742424403678077725043856801648546030327159772505959942455501046608269541124728234633039630664647641087344865289295721366011999335184734216367492519178691340849256857151865555763443248620003398773626482516267946595569914684459234749532342713104909735841989173203398676063272110387746253135345796627236088418860063422310089196577863343579541794353996498327971168165508161576070014018912004078915024281537912019349064008599811939090175777740933052417909156009273994805102757689344539630500772930192091227467935228575794615322285453872965334870462226516392043166997574886705678174295637337607858002736432195676692145258866383268000236229255163050688701148277854361599112959909612897193116939756560984252192835770608627971387443973581359154286329883799225401836221811822967631891755540339974163132298287872980763370136598004507931624661063901911478480444427912351657209802289476436298366072817606586770843114256502269384132795648594749590923307194817879859786441333965562572246321526475218312492315210857297838800106701287261762172972678579513320078037750816373786868040869301110102894387890764467503294188051533754388236555788143450325879165482798255636283643490363307611136006584496530855755485394717431949219496295064742846896134504514958314787792441307049192083827501277994220541886038965375986037489113286556522221180517691060752449804206570451382684066318143420684998009357225596341590349115357743249812402718603110998903658063963646704000301528540400370184838069043598813852441023861539285941743259579379869109227685493308172730854541079320654584570430701956926405486784433366856408421746987947387227407375381632630739236357479424288912252756891018876478735828578367944449536092130891740017340310011534304461236506572328659753953113669850510716530452315610975011634633717266621699747364190588245989011746841687080400364069941683014773583861110226956136739689731420128750978861586861594086233183271347787019358628359832344651313844079057769869523704395609375768767887124568922619505593404809272453140039499553611935364676879943223479598110614829262613852573174518898844737542989507152825924184036866038557237758825342259711249875665732771660399539300558931750246315182178190707085151518278873676454967055664640582260833790713953913684996614976707126436006742639624150160782177016097730528528285562946033039524413097662045336416865595760900045135966133920887778929091601318185997106548183964759653224752712936391854204241568650390855258633579247082351459246874859745776647477930397785177387582858120466078330334352165641613244589693362802307388838824457097865320455456121033465710791278187337411122534399559937563256312756756388452633272372381971175658862137202099699454031902849350948215200821855922135413424024056373266019615060877722925503045101244363451410140481092783685137304296134309036871922532490348997015666150079860653894131002476245979729748960956660262953057688257546438285573603851697602211433016743406718645192023237142137752886335645424444296679898972076307228824978735072415766003664789421030509286920690419938190039780319859602576920838953190529426598133087638667623560087399838141759090210954925758000063777885306132890870014714484496596188255409293577092482390397036587865751163231875616066207492391452061915172241913386433599648531460711376476883966931446855617621623717812792959428084627704943121688955735149846201260458039622883250056424408110323551642430309381975814720515407491006973954702478916196510848098490653578013390751256062835230120797377764447477362152329792128879969877712736109515654375447726834755723248961890081300390106313846330390872861674762545697645938779472921768098582062986585343838976548689098238418977376449569951249002616501999113576953279069086815112267949965249903612341432934812168004378895293568887403409125453964515231226465428616988777066052612422162935007702920048143968040142729250050499332615113111317160074265291389081399514372115036934256880176361565793829321011569443459271303055632139281905577162886269343883458168097712259775944041467295164771917690507685138911318042225316270472421276339018536674962116342147569495201958726614616775178942552074876258883733898072729637303773313566483064733204971827694922124598315087115037813263409877197749212927797185641308101187962002538299086719067520736616713145145277490243697608168126761435261064332848861744365906678282365288985409203683090658262884764792105259876977826534865427132296286703768546029295966187857941124707542131246660760213967931102844823222173489097366679032042592849100869461581497459577689428841666509813024591112974341548009978781979902525392287865571595933573779671321427226828754877860050961015964993822312995632773871674871799782256176489577540044948466581263422082022399589361043930002444248289724108891175975421933875409617788087423466473350908743602507292016659922222572427321770628730968111152042896291476588206291002440874040487077416430591186017865935292932891279871338572719465554715018978579980092193043072217145905545001216938488092458485635197664798717115772359646962226273810375583239843041283444796968499680314198421536417837284594748450816976462364568330586719901075019872230390660666956844911561550155112071642175745637126022959204277516072844267399221584912389558465015153963495666432226273428689858361859565945721875805620306436366264282129917468937075506388700640722505975997464757618093129454582414018316455665423156690795066499957203806564426359313368566980117559286882450448044023099814850844532723889715844692444195631976850763202977729959529130602218272556575919054389802118965461382223030875322431461989298053416591049220101836347480080028829737489963614767197382278475914683031031556000128590899166155890178774108489036634630768140262662078160524963679269398732518242454134732091243377109133605932125064760197922678638304723418254121116119445526433223818972279012234731656944151881404436324597489720092274479846425594232812810805085758385797839026784703459430127091210357845229854829258935425767653889107535279458683925785653379379167672317246162689721266020337512810478536525590396143582388954871692619755455799060417203078895494151319058050682029629955115513304126950381546645755195409803488261443596943224617810279139074079250125032862662768747345166519104611516442386444868918278983977094923594806507154399106303657897806373890935856927653330601826590791300209095898296392155715479227656176936420487079155834825536132605612604175095980850206146692883145024774182382136574990356147494851335041898135437154779005262375216492171608585974093504918434659647027388267797213820722201758267785151184881612210754134964812847948841524464154340296187875088381043306196039409584783052368435411020388045542390670087488073055952542352640392889744899374395031578618096564651795617891322377513545436614574801907646068316080776631594702533657716286845507776282159372378756648927310623233070666599144775643236899776909067024457268691186094426630597832805501834275951449619608619870925296996148907773728235960077316353356443222130028250369340213907686620141617861320307445493812579071424189252555538673873941225571830329644153839111251434089918093198374366886577447532004116151874027883069762256347444262970878433105380610063334481919076140295830570042466950078748376060329461489452156521563406373747976692226365138082502994577798102532919357734504819183251637492243904443240525811417872651697093538060398760046341621670665144819731680114439262309284600620050418405697744255959321506548694502779340671829899890747531996895933194117467450661713333453088774908534211487497070673023495923944125978304435027002066875159665056267631405659417870809383906911759394250841303914851556706867169170120113545920431035745566010475141653511320269905574380276348191443868860310490496536542208762998186494193565753644003105813724888053295615742336572177261931117742102019948352767956234487615944881215281092165639409069104352253547968409134165180052265447011024880024634755999476856425861577345363929555523822678704372748285976602775351685585778748766611849809202092738348585948939515528727727274316878528953366252832254804770285448382924274053192143471265688222310910662301819086732378527822998512379476528763993651405769595979155073942765363386924471979133925693363361225984990496798122073218052547967797517759675612097165619800007019825307050069315201891708538602276664283712797265113005409588079730715300567188100820398137230524143409367593662998725891929781262586727599858846705354783347358048378616623303852668416925501898695452138300604643335763930964875384245037164858541733671156135640921042672606034245641788329111777465869398687451458257520864938495430339519505382728619424023102658581292545831918078183164223500916613438474639269441465580963017852497475638238673610106649419920406141329003307290204787961950161198513508708787111717678002358416046844339809278745476284797401155890046622505518809177209758308602805433311767770954689146035732224395207253411245510345269465426651229018856326867755433475669785432581792386021717290546368252242086812143310633700316438557330345742646747037875018952329622261765534484870146668045890592308684138848359350973971553899946567432529496958999416261019409065270251749511484036269146608506705226770418041186204029989889257458579732782800016661016545203377908586970798168592396401687526261555095746699633212360965542482428664080922440653643254436172302295109681273970049892806326111171311662392239507705079541992984596862468556224963097374895142309452453108763322490394862622272160832917148702121836845994543984237126595966247949371822754749202595041374048829159132998590347789110143351812701439471890099863215440321589089450957098108744801237416066460268181421981345454981877587356174290535026755144320247998401849860063205249737976544323392480930739957701741764564991084927020447772026737923824794537004856473228711590955858317297330003234925125235376415033396085590870129211546917164858915323646174884678901435587060015896646477221851647023174451058783491808003065109836063705700141256343562831084064952909056137155021029815582670386758207073242924242503848365873288429767869882293758842365741240582126693074794552410422149552199771771133837111978897899243558877127151197795273660804497623440117966721927343161453495043584345090099784716762687653271214833294306550252113244895231270731196446825507542581721117170742031685644978070415143429247295199206815025141883246369174251184917177799914985075512081733078774752402390694508955894894735137941336834590411401628368104031739595553284444392891888685671366824080292558040662451401721793193885230678324046823423063725166813893240217968079752203662320201087920589547895501409350834887949514477432947880706643028955483970934822772685096626384246094070702633110451875275813106858992997429557810243188407255108630084378425641415070256850939188745352499980479229595613237929848333723727054716840927801158417220231198296240507589801811766684590948761665210235094020634916343354439077637267069819691850022258138126179912545826068860672353553978686626915179759353976967866232340391542061779150852961828709201258992111212004363114093574378315178112140429821898916791974402200206233411174929391077079820320102637613406716896313180774398611197747285992995945014555245344816000625471741531459990447134639810878894573554073258223233323457563787764388670365537873519403265674581313997848038825062005940827848514854168496697015179183766943820795090547803815490891500871744145257610678732501010356318453873047988519805565348235963897553472960479048016783176868294562175484360298174413088515769955867181981958176347413125893985704881447389296485613282643632761078311831378800331823628423424511184246424524298780333350229903731920369518340357291244359582577768912503024308802147198389298640253493133444634346759575411761379025051797386674150448826871814913086345349878111312697672143722629280797489062309328300825791024405737756712421861802960691632028538743280921243260867366648937496631355001832534590846672557310961010458220902324229666240686200491938958274392655794194221110325959745256442228650984234218360405497049091773094831160294941067179442631253491210829814854860485479615147780516998975851667642767809815195576497454637040747793620900841114447324389577949754867794295935425035134472463120381505795541964599633371387342912972449081297434441293946542844640593048190473982441200260216381131309745401032387682359907031152214017346694231090220088325611851598937029406033559644060620923396174445934480466971766985701900022284492898210740020721717846306054262368463665512289214730720249307905575014610954585546521760034680119684012931554144770707452859955752876405712183672898394861056566364317410370154157502074565017686163719223358871753824984806704490766366965159534469849041644921336835834414520908250512039622189843506138053638496933425446699800028618716290130883213320358230898051021060027547676658543551412341982843085311963507083212920276132464467102063094807645815286245219974384207650146709606019430333300332406426171852863649729810301179055092118265833666063396277974687800020269093355908106707447119150764109712455818975603481653064469801458579401057817337125082051497106389295518166437629957232670430329103437204086207341393946097874970805183888766005782104190359540755713736499474098430771193941572703357112386702023382899839207099522078109023256280298955384021569583213433988051442783422087594686904178059760529063245541197779359861455288215220914793659032411131916465323848327226874877949097653086753871425284773841949440255192099765877066914259143207540915771021441421785545466642257813279869430996744212025312472946574335968806708892067245623157104059970887051190998465395383985196981644380019119651868601272311183522255712756967686894737618091378979650527066450540886037404813850922479557384732897102373171768346624287496534705658261476871158723391691806241087234665662607988858982319707740354112778052617693243940173451371688991296170466008369185410279374622812939681607402986340622928205307971509484150919735975265208642496543540203531487491314907033602240785043025457196199422130300872866470533760653860175301531053186652311807688834155451434176431007208903225813155377279505966606945134823957800580097997882400986134570969116812942555833373154448909299719145856342433337170359963603188924849828134925365416577488403689704631174424411754668723941227143526586812529038060679664749023585070386127743709008528807398187742619992333988114710960970385762792836136134469267352783576136266998536768478411931082479775558010190603440256897832813219556712449328273175477262058467998755634392493387674806265057967290932945451730672620055806462017888618261490111446484083968630103980770789662932846943773701981854987813172213906763705419576323587220682902167717072509666966292360549896135461794468539534347226721163938644063867838294470391844917724500892109152694807651046877553140792891425280002413477655674232496140756673560961070858767501836678461520465284831496709963299182123135969455831794680831119708259700267276142751835849979745218341402492342889818653391964669699949015593618049417506238421778015634618819720391670945892369832504308212276886814751126866877506247173868800753550451027524049114049857052543283887304781404263512765007332805111567145062249724203755733837359176376292368703694030187140647287107602933110281989963708319845567769898032485512800233564241218089709926923919153247688373814556623909932730117692485259905645658570738144844485887865810419542558513389346923375691735297140561963296545480505907467976501691940950992253362619917122809911742340320048727612285763538761888920261462965933580211004007445566937012641412301793282597192386450171158254763734613384954320591552634231030664087139942791521588766467767238041679878002416180637672991714098901487179640772813474340949489987741934761184453789511462705417611353977546354331905921760943617026116971421220309120407083355579511104679809364474418516193604378314136434025299443556278084628110259349971390708521986899272650667699173216726356901369870981111172110071671376343613585227343675644713242737587958868231241404014027561788367477078143425887080118785545979123397611985471182257064756840749915964160769886042431644309045688946991039376275631433620510144908042857789934319658413086120123610421329568098110398996688904889186931800844836058662550629518992386173707059033901242589386508370294053698493906486276930071199637559556138908668539233549029149767314423984088223474129392879661944867351680514050646407242391412300144393267417601295051507078342578897733095283318258074426122700571915563243231476702009212201437586902662054956569973986483491233367263022272672018551127198305399207043088660863972354766881408883431855981368475020865412981101374544668051178030982915233661452726971868885020997973005975097056134552314552379047099827911362100438018950866615327186312333873632063384289319132357387259629730129991088460446247472361318798465315798475423113511343598573654599590337815264791257104636850053573710108856398794311546709989304282400679412534143227872165687467878711651924456904434574805624676645370570127775467741549644747033658745990001235576148355583238285466137594742782781963636470065649816934033994212130179899920140932156826983402172235136135567003347812823124486598568326141453665677189682146136785611133478961352572635548973441588119969098592589171821620194016590338875932761625199536784143102459442760454981113800631078225816975777049486792596686910362513138136738825165439703002757340451464037587755258770502141625629347516517853744395988168120869659933098760620653956671851860750367266139740233598217254410191547214627802198649854051967380459857326890511079601298296881564177630394033462283348384453112887105384649403239388669292116712237310003512688559543822054756273824742483972131428049885628178301552954861987350910122070416226267057195098586497119780953603091707790982071862457913586054684206625829050546050473652257227458586161652316549410578901351264351012482679394595693818575349668281475273717991524440417409097060375754147614844749277854719432118459399796742674549103529370219023378816512008818060929385268171372781883158568852570396543959982023369386493404712896641231619131606355752659157640986698963695314610931954145914877587847341858697574403110570132734540618993296535273455847005094455073994296866095016379313925331035944485733759262028397163854864692450033298800698598087761601737336695146658668236463008536224657438258074022660333098745416544529646733125803358480222258098654478418802789630748771967374509248273973209417219029772325526163857784061379112949985551967653654976143894904398074408448649608488981548849204958812114633449369041101259555447416189101658950673299579379540167850694328701531628713092934864120377856319088280204944762948465044058966363653083420130281873230168621612134042896956772321097370755981625875019367310599324495094869543846427456153674977226683800293525295235335186670060524737588028068409800907729488029231065315686845374321832301687134763274012782907671938739828591517315389803270537953120394539864757978161729837244405326380007367330494355474720835451866253335839364292546424789916631745881739500787137074569290176852147197238552053658142909392446280136321581591585494132867003041872777921448509259945168116140161764416030032259956313088187963298756299058121389333683718748722874885476638625789573670064663577475546873892816126418766493142391715561978400738215772736620972221750181143986263138368212892853337170999371142302100390937454868822770378456510325293105446774412763051537345528967227939719072469293869231079749869428829076864520041082914509622230718578981932898889706162022696042087766903952712737959656132280078424716575139573964763001559811955454745811632908290127144035236867828051694976843004451540730460814663980907654175313470048676401224007731840193748874610734529670377481115828382422588050410094393073075648965989478144167861750053698905686040757112440784063485762614823459723686930458475524909121466404352803643045495502190169725739148473986554209010676158852260792208728676843807755636656507222914212145113524435525670727892339681078408088961595587866820676702244577964084649872143171380740138514333118527862607176625728769747610139798277568694686361153033585167195580345590655390806879382081353171687695166917694523324406453433310690262808921995832403613674768840857199251167802118121589974014695780891850246602650346514911897341855067246393583880064767013054666248520816524387509919153316400025869123484660804936461635193969686879355518096459670501674146133463096872108549918022399202062210979638517732786459408086301763797438102583779626105580712369235651037195535391728729818346590524040891737323446169082999317740683767511594608854206236818928750013798669289577017674287507702947179123855037091064516324725552242874736899248975087671492247424313552706394000280352866699841678992792606740861002890639411542645790325483548665178063651712550867475752703003077984938656240612111311168402320010904293503851635486442325097095839907642869081113057084796154880752027606006258487520296725765018941191894182693352617775670524901008436884221193016887528854390849697746167284366499186446619490002374366510278619003994543354160199061394204079728375102006880178730057912420845055461725636658767953363785991078846304409230221418923631518906960670292575313187528506110031502443733469786827095040680441194869440149842515309514915174852544368580560037002460000852800974105575062708757789978796819253443756598893138587665397646960200092994904691156884444024366289576050911883209354004203375522309988125593392565638310808098331728417682661749929784136602037442619735892009725794507163293037774959287793356469852704879964256359927212512209290980101557191257728853640563861201181896899357635569498010757966582679409150022278296209122957714741148110229218198951481075136032507799299265601241389784795561344918923293981439925611110816210787445522989328466521110009095075224183367837187185274916838213497010074815908972748866416687262625206594529922240970704982890140186410295323755903336588290546109098770606374530423497694277521236155780826858348163726932910774567097722878849036474031700738590662383795759701342554689599392026503624134983976833819164125239477546133710089990224871217700951640058501009135375366971559339165877853240683552510222768779439162921000783723162248226016634845038202522600878525414721685403955717906710596158392944146348523875744075934772808868627360832125121517428630774820856686807266260316577783416341749397757919546975858152896998815001855251765880691876495948244087026451115851272589099626523407449789163067902766951105182319346294495291319914945126115258318620611845322613448351996525501929719634451117987231957137079345939109891883903277149005741365560416174442927756894382226312041063467628450867403908817731519645141310679293790169334669898355014612012347177668211703250555448204682959825627835485726227935285312345786455173355486879217790451105642152018372375092963461885216088609610468698747874983760529018628993708248705558732896289230056969348136439782491409836879843511442252879491031315512923114385822483007570751817044513508525624840231206361899365746201146618614042824157411675697452063237289454637207619402117415353899661424027868888013968543984452612096897387958989279694979704142802301678275076182230603301481749878998605301978192338445289543644236743814906695213058217450375115043683735349602116422100163050312986228159539620999563046677562240485679534367175863962909100572460298490180790881937431758282063092147452639696596514252748420548436941596369078855650823135005372510579672095921652812717447137326519283989268822080541518693399874381113028459453506584829980757147282814206882713126426648890339785962952140146889505261920574129073202228995218453201839770323272823160054453738472585042818366908996080751159984387242439404029230675421844392906320838350463666711466493943287974241932274691494795222441981910287362993393178232913418626103753898589618621189353220498778343836609947992345071345154959987262147296182239127327241489303716291981691497472970785296243503010149892190809464789188974158314429976063928244569186887051774798665984385081947271071274321610354238293192180320089858216047326674101426897567685150684855957861660401356709606657757739472837481960698757852749717715278557147683655315483764731316756054258647181021853935073992264079022778110041747014122804410804017436897873752760666537017302389936623924082360235994187913838502215738980728052141214124837936470047674915186022931711826227353425302808340215332680812892083509940381276634738098994843396752527256954234607763033426428330607107615970933114312451329783414418143474265831818091213394958902785381813180409645699499125272467105858254910650958140578183015449523125182050312315559884418197581502271653894288731956014931822069688763152143035469714586788882297987157218520545226912929671033226247529396311116089660162453638630934385995697692155043376878997701813258221967061688240184881005552055415588445766507096278669168222103426553938754623737101580128352820696912470287263579883332374952939078654791055192300222446328412538008271402684719759878634996675367377261003918889828949679846226422494764652031171387521217083137540409129135432363605719195696705798442400847282510017496127332755343455564686540240968491783546117686612032639029271604708345749083810990674873260033797168297976057894415843351057876313931224782581122676181595433438445975505184572749367601166990222684285770319914253301642599838266376044585215643693935225952762769141428812136231699031708849371897772843076171636621623711046969781723006583051059120540287481177511707620010955023567049794048976778892388804093680595216323362478572704342391921746555880699664636748008002268681272718076589925189152695164453710644081997732365301286346910541922024674259995720372229535749688004352105110143175784214776434063239436741611985730079100244642496633264849698087371696158930100616059503874383888516375358461737381451812461794880047828041027274591075643423909181354198615926155401137624043442718685904453018459103073106992016333113112522570605908623993244070457905423079687145347502324503901601200766898127927634171765821975379697529843562278438715947932646573570231528653487689374851011500347309153746506289932553546357749560676250034120096245048254335560446991010618902383941111643319311050136798963132837018816879401602133858037830334430358202449218887066015245894319900347283631066750899305641550754511780878875184620863357559489480236058121146292420882397716916540339239091651953875822742169729330550863110103450074911409211164343327287791580576067863524995610654777261227207453184160783152715024738362644472610750538456315054351581660086917610931567543897968111363205583540103344343018995961340160690927515626804737583169813163659153560627523684042927604544554604825461262528101887726302984281816249518205460803087981722965378355192829472451235088346316784090339995662130992968866924129714153804685550353920873538186889693798875743592850462197064223852283327622003674223936751000221487984959123536735948219481818844985517370729578095168568820191892207090068081190226174698952872951771317820960244111523137548727438484182699130536996249706435585179801585881078672720125277683673262008352348894473873527237415778656676501993054222570563575445935942340827523192000833769736055879314726005239802985084566078787479242642845334794071548251533414154399569566251809228908444937158871161024990510327747381478324997086881550012940933258950393450450835200815238970655285081914881794847440095963758303754787124579452961047334945913852010627234450609661942911034536626153338379188375697456177874968258629906662663182910148116959408547391559694407195861600015423118132504205669593737702652513106948376961095119446478281853921691119199790442012563011164882510429338767357681275065129339175868386351571351821116734691420007161599488220234378170807048142134635125831256431611992020278523926908238468687656642688784690506393624939345406777452180025970300439793515383612706595259138739865538238639813170339839144840830118930881200927213915978601958196285261928068417412835061211243974672550505994856306146948494825989026768213185604805802162216073092183023628174165468554965704841145747252542000249176385256400793461497389419340025618515249942813989731726068418227504534114543268325221909864681474436461463739205566454477024486504896197802797855509257530388284774818077782964533697747895785503815997314349336843708525436064135120706041130774656353924839194419537083396262920259656766338881779943020064606632781032756943301353030910889698898049585605673711802409884341077104304583883567361286486959967182643314349156914422548384991205848851859105473931811714561730702783146624822007055816697413699149321243334218706884301164930267925396077538233897964207158824461672453266714067439940804072216836255377212843216153401643728041937305822591011581584241051475018431038943658255142538999309448287651543521943572122730056363525503328407789894902114736380202179217581968198540775001670679544012065954082745380235052755442776979429036204000541088668602289783622397361675845152178635304321707361484450295237914562153968812805052991281277364762214354094875360529687342889243137951319714247710056855665311934340228226982183887689670214249383918426136842658443813834825262337918161540569858944124507214968472678007747104867046580876299737257372739542253783204200134538070318039082523072406514631576300716912301508058413789948160686543762737115093578054937237394486946296377096135362949925243032951606595398559615329689229130042370395399365042612502045902818971350032411413452937121239046981833622632869892404695697242732648221270572764104348642295215274271419293121482152347072716751076305367977951697279479149969022860206225806160761705410782511189576126181138088736642188538280914074260051992175212782255573938621501582287136211593113274711410595237857875453548147735575470441338398618200352551369644965154323147004827465644767225840831666597758849721509951607181017394688158340199516170054119934221628387480992003891208830578965645468504135345653785082264012225905845480166737246465256997955977891992603042419254974579886626009196040552372481585855963251051582775535347918328931961126126258539251887083875270406081619919946648437818674877878874052434985285476874820065302475917281681086381039234962007589888048105607765593507324629617911693264552577861594047464856389957807452347368744774691528830181488556120874411240417369801952054048410312756269157828378235333552663414303712911197280499010653307807712793836866207516168903724927726783690598651085668422763968627063236825969944245386234329982013956601760972785801969069732244566938853846523619303680532070884216318250796270320087094449350624744586914420393523446683829818550573439366549872713916067666318590879573485792463622152665471617105379634464582244691417233951734374017237556251443506988573035264640356232620852426941018346615424356377747414288554770420810474512597101089740987142187400894464538433824424788369444674969768038719342668315739476413227170277214835502716523307725045649677845488769646685903090825445468802008705217392006459565327746378782088623994193411697504696300169878587236927215969916929629280002441064783674637309533449844256389431187164382512501995999858977493012266904088171938370577643300647552730811444887678573763894243299067245904376047723481257153216055054993689647327393809333007518332904696726213668972328324280212020353024786306563172900335297436949069810819784827697417060203583248730096536875833828281945309638903748354126526183248379743361554490111395023614219876851008055041090244015576291137241545433877926962204390071201213752473011654652008656568793667257598523272683732041718075533099627289636666259769966319676137477816120248050895146371537228002304075686367974198190711951536790471924483699056217800155826572376941282058050269405311391979347540944642789257232324752512035035264949094540929319079554918303228932747496935518726962383961654805840529195413567961317249578577235325532409282552249093508333074758837360883487109431667442735631880022656930195012237985353094136779911649320496029708509385218162907987176378156737993005075894270078554006468838808966759134048206453448962976725166294132597618661981761303518777164229885293187251334824314878657561615140197520003453494296224954379538021652706647178074460821925093282849041638519242352544490970558158957849794355041504764763558948336509623795069958048438716034172254356135268977067925766999888941194613037800417783225359173581085821460563457756521489868155729307159503419090014104849457679041935145079288295257264863141459861375444623302406127326804192680060124558856678119915858352592373389501086753731555376705443002977452412610677204080277061861937202176101935554024444459696951821648687064078050594790392519350404426180132743275774232058848768903415483455903766538686819663321216869629271396826193428141138614296023465517384435040773380784798572421434658424826170211616414176671794595536875081081569716360117980212352886607710675362864146289187314391888628089941159745254733712485724553714442901446190288226738419579628329296541457384496077907944688325500351760870061136060242930974712643794806449856347194293387413961992794384136477071713873315856802321007498475617960186813343454346578121869805373228439950148859112458926411800557528377957996682629156073085162731245183892289250082284051039875049973627307910560095474157257098827987343899675267853550436344058934969069691381945415992530470586006198472125721550220440710961959646491099790477504966313658898753602332255264258626336000169603903369685106821018564350761818191940533646049663648756976774215620508128819640930554548570829044119376443629252617917476175482687284805543213391322356133357719876706344313442451097710882896296164803063555233677616078098253401725798596694446128077173543250251407087145848235785312146364272351918650949225515427257899840843901131169720767068787005049691195136044888521988791548345340633353896144029224107623726691486335336563017020696020288994555099643205642823324577516501934215620324679755103778686066943630818386209049609620547364015872316532999624506830261844484656868212646982368814726488763597128125875568362055892124097817211405644084848773034244696195426816030967480404627947838053258646357488932040257745319995462169958474554693392014411849899724329697202120655682923426117588090500202165336379234239673314042245277380242155785125141806580502864501489311539289724993629215982725576281615751138456494904082300531619842200551005750832097415269818027354403330642868254442882603965703837728238536829544274210302411393044534367325103705612120405106667104315405750921845371967893237205301302154193570191149574540404426451584397288353171210720831165818838866120628558025137709321236503724894885255196465449059462808630118676953627993943908287298685674926272837361775704988126447457821239553922306313630900087248804392638295999814020903834188709511003580382592836020487535411058221885038173295246201568154191318014095856217791827532378131781977130524248633364204613232696180337323882202603840916537180448569491615744519170164420964049829399746099259815463067438665908435220720430776954999449988778268898737719338651812321548205480299379318557389765479305342642183363003191780721079793167831420223068634562839774535438633326706299199499960353512074988127029223666028816229740924328302315500300449219939407948986833757913730195932796144341690006848865601312342416999923213026208534801617801703523796104214112130311219021633036228881459531718175531793531243688787256059064736937511229756048018001103542440064103263469087537888144978502541588808051465991570658018944709907744880190550157917200128480928007224420826410867644793065050023723914535391626769758341627569890333009487557833977110767980779404087558757960047668522316012396958775959202551097224731341544349910364370645352632428941877131284252705338267338504510608209193960268790459211633908552878643089444660164661766581631918958399893990796955556345287109844542353718086225807504469779595119611505558465779345084956115392364042360922993736368403721026370806266194611383124873736050702811541127940674854854335772165803084227003266768256581194296087108306159957668153046375076838405956581079637614134081769181567021075542324829395448659121448361192566435216931425582079406175552100539742166739991799772787705981481535258470651878056684816242815899130793105943713450174691716765095137908555458998252460655691678404115825641660746843018659067827605388393123675501616485621916058475930108379565602077450354022103331272237395568751885217991647683809106614586396013833070714493054113114810256128833794778084129107201763253121446792343217525411760200147306142914039346672147732522968025812221138129072975179803004580373320014108760094109101837082775607478081492642384428259168590565507070078405100708078629940361498922666679733294214319672455291080370258621850424655423287988663777189738791872171979609202872388606742864469558859776086389422752646622305873534909116295791348000466863228220710382049784579686886170118125711739990780675862042899296559654920100218276453148255187023703627713003415167291482466566147481360162509902593164783719067405978004778792858957183455420858594091169884012039523515625536166483060136535927474088081886020847781709516404893339834409987715333093286912894146027060464280071993935281464276529933220584908026026263700109897679471581733770402264427687084544586610468172877994673377529764886988713457217436306432814444980917492696444887726782512731429585631968849380260582369093979878858148183208421807634944234303304172373539946277097207525502444606948998415764514248019729366741688587638909860484212900071763811218134879580206022765040413907449492501403455465494159766396241292634300758887051440090883447642660340337440481745929638652058333548016787163160217075835498529062081349184908964677987395663792271757564983662541917018621116984082924418487519019302971439957946326045258050629651232698659637308718238603269658210999127077847293251627636178249862356760602109353895221290634406629500376933140257540509778845510082614030257677781664051548699458740770041862063895738614533414343153593692658579837090434878395494541379238233333855505400305756384639100477554537090015643892750298159478942620582479850887120374009520130504360855146252166813801327099399512482204909879154867789001082680884427748041764723493897959913387405022077224004557070689516459835308799936333111181533092265802671265451037410609984187396560508975362253131221483810343897352343573170559120701989137076697357036841041280375394510428021330146077651461357409064383012935030148787007397564450249402522274360516222779433591756486466458352383107161497324322161070873756863262487108323935359299044730476966429968610301319149192978493361966723736804274995171603832865177825924360152661492496377620591449185305511089193592913732877821473448825171254516514391385049347141018969672471120107030941646171193877371080767420887650415680749947284671622479583129665144327920200262690965573096224091887091837967863138621677885716655412822651806954931888647453028258916322090673973394166744388956617816836055066584867526684820408566830451476671292756678116380716262136204941456003078071979083086082019901816658143687058232581369565756250394558175183544639180380763432201214470049752428928325191305223940344782717596289035137078843427340439129711861262829664886603201072340076938063666389129011937365702435900768187621463388607836121884126513453068099085768047332958497992287185502704256913271585884906049539943596895571561133651696492196962542687718032698845380216364542969071101700618709868236684173494817214391393786792542679976940391614466232563646944043413423876713728139391898148504710542900816315185469065319084219648779538317284405047044216277606861766704193266978746579413552946276524096543342590281949506344953482350478367958612498195662634851586818999623820918647900378173425252712425674712797996828646807431591597134872142400669913131048488344264834357059137348985585353191077654514192326579954919423794045334259468066428306896279005518353357115044831389125334511201183496874298113182105214363565112552205552320480765800753770559536101441636915917721638110471849928338782328301743109641370563503622394260470495382799726390501104197556991331317496681240857412794938836562341274949885302167419320284293572218910341153716976631080690560592711072376043674400314415983776542692554591287356555419622016548687214620498735091354984847109077912791720102530326358061814280212017741349779441773072599233884844910039560995315389145616248589335765498164863835713749140636038131183852382591649432816813395010215912532300799028216500273814021812049812885892330127462533931555573161352710430255482462001648327731772454924429127098099681202691259270182710509720073177628742801365220440709068018954022810635956233091832950166927783900719109469439556019281217359795766737203382263146041590842634099915785175304505720222052753797981346190597745291929940432624747458247066062975236744151936102129309686543714685147249789869986742128145968418794945023059610039278262606283688505268494971621437277424461951958275507195280760337154318951857840134285518510947878242487655530542987607367790763079125247898497104421022635650850731485939562535829833727422738330903951339210746339845603599254461918443323949283798395527777587484093520269418633247605960130798503308989599448007511216316783114587408227891084590415304038374709051087180211635009040242319637818577190064166704079267791052045168802942686547837468129130488255369177866341393589556397583853879265372283578174451045802568300096714128602146608769321153129499104210839782484245999093468932111171213890333221257856462177995021125054105587316877367225292102134873447940585481013210560715416601299452022134972063623043619049685793846313912018062241619909999343332900006277053979383150275149968732519565891958602330515500976529069413108531716095435642685889060672370468877150400268376011041249200866035723164059657759626604937383280087003984135183292763451209486127339951325834409976842220234209040805050572308982280921599804773313631339792209651382291226907482977151248086735146477745247044445873352843066993720434766453685877917245321856605593159380551635908183071869293019007211186160963299194920729548006956624355462231576661690775885661399420812042111418501454477562647509646086992419435713571564320163142620812669486472063595149759528032401168720948264539316538992920562622313133030411083458125373468096514493607447972836357568851319002818281896356957866948328297242044581255090303254033055171391223725080842338182808225716038775950831108234247106059892604922001171824903011436749624588445224577634589596765231128117683285877868781782299509636612058267862145340507355509073148698072487677629479200041245094690102869526288602138142208862927490184677022617808836790023421673423359613001509976529738487402087458143777452548053314561534605976026933753461749641370582752488572038969060640369019996151770224391202257262969553180461653294368143525642267582171889484465119081647854148603773375638496759031586397576221568721388912570068566310468233994756701229758890746400701514197414596392542111589286585254038314725906768194155501752972816513923048062318654207974580680109237647751974728583741648081987962615305102034947379224360713976018938387781598089996359878959395335324310907833304019491674431852954031389971248000241728993535073113449004363764038956669725499181181006940286870449724182144932085772492668093257564167890903964515438618673817849819502923961596589341462637105548594010344458350277953620782451761922445912180216914294172329169691840456743205318204872985900816237733635908185896120756557637867649494456584009165587993870666156502571337024615089784334593953506529100953228113748715355142646361432994727652407326460763226683142157427027938820959662798083469641117475337184981997597602460862791015697788583094078779462850782280520482038125598577604974905318461055625139173984929884280367593163379976849967067607825910248921703421607403305118442624718497678403925443596959744610094599690006633433639086499016044805575729977870520125246585353144221066958894877608692867636398440882512186737376900193724853144466092086399532784407350288726765011433339790288161464145319112735776657794244571623398740154638147712142858084041975537218088386958234401424212775297597261503349497245519072356364138328589176870088562176723257112978162023685499808978563456759309781506599196770941895089385218154186481596290430242815171717682093160892614925141427613090560326772048699469493484916579696790967837564428370916743277136336746066019214866716494000536082750890962426424185033534469121917388525752674138548899766072466991223543622070878064548384011603942017621792990061340002507754493891631405425003674975246681980838754173893861629511437397517350816622586294259978651712476947140099907226054580173963319934933983732504922858198245856657897798030509465182985658342477968668573472285168734312145855296116552049990281831767358101386607121163154494162329894567478172671518111965106930017081740032396545251470743463441085665120067792229490596053041016550643649333754611282807433648242598776099335392095006851345435531879497960804252929263442159374321912495594894653780606819692773288173793718205636773566064836219737329128283806245062237711620967784598884849658288412589044264246942676605888569850205375071203854023216934577823736508149541645139450905067656243889766439241953199630587238542182542387032645408541288427353168296074236635767101134500055217074330080430938525516164565795485408122258013539613507919987542660239385582816792894916745133332257919588034811346621233449849727318865854927590076295292852978163067104843411101338997989129356658725613815242541996314793428449429948627090539210622053917354361265181139294586038752724338747574257533879163578370255307374172661456787270110928350085570954316165061108518523716075874619190068463174948596134130415059440499091052901314408296652087949181276807670162514414178729193811648646592988859876657258828773136656905188890436387140669227493616432982154892202224709707051087188086160889189996342016673752596022548203544814036895375208555606152298625389898702908037261298157716562234133943740668570020490097827285591322125585298589526428441767090704391091800320116597477376020312497111456102742574837612385753775854032190161735985202091380190506643319068924938277527430641548810870840947409333075108667565412242671446006269257242290433028545323945863938439048696202688583551375885812027736157761438835165187415074009412670210049158334730808107574755738795031680223599238662587132682623862524142436524437111354007342885976452058871554920448374031688323983489207976114977185658143005983230036366982018965717526732911939015785909708255611747775352016684918719130764605896264259268282085233619334506037524950522409185093081295170869694372242299282005529526822001836870130346688063573217768206477834657903736488702209973538684763302293824233219994231857702448169050413901122635019152893903629316283997183152863984803988251200376436717545999307918534697941437647056440263105477754739604208575991923372354945590368268654646752289563477066524785505768728293980849975457200230194220065682051308717061718519900754065211366932285558668298645698221513730800988492894154710812810241642149961864266597551615699347944036381702364121203371085343920979360043181960389295846811106806364703753768506721951790884544850928670654577456742103262865051104926316756122388435200100121871216454301988125017952358579476046498196471318218250272165874476346139584373439657782481504800932340383660915227429942827653666692915366336891450993736089920157325051498179888461968113882742529745960289464592779266700530000965034037454974925649086415208371628653136249026275420965616387064698391262543604853337039900379344824207657037331712506603760991550613484647560164740446626568066975920137566198243951479642883505688932757683016646107476060218615065671165146907628244905259428342658247647458939738391422837290341945799720461986716846751018473123035660337766638735281521651938540903614921176826485304745496736313420511667524310408799722392331944719451815865359771952165347982247018323666867996468061805414400031028115013315273408286598061683616602909716208971861915432942015483918709358373554048696736989050494804580047556348359406471657981526584276567674596270380720607426787874226247110259727604484636892953025211052831463768322121884468086096113621977604875236356592232771642318977627726967004114469785013718710311658606113451575288022800385744932396975161350047125924819617117477727623187390544596616741235612836012672702691196307339980900167782751781595264084734964986533488455619756887762485582027542163102035337121941345666210281717836570346044414023264413207569071819761724910812464363957029458748734016246868493214293943749498410473122289847720686470676126091347924634873195372166393041028066864151117943574135433856298653635693964765879520202944417788950944691971894843736741714349897679624914045779587840995146860715125345451322244185100492971918073796146057463127376532100519049226416226023862070120960787978833369515483172719352158716376304809927275571347733659227354664867179688299669788707402993088297142363169080772103820653358416334790522288195037282431005148818788156592483763759229168068149778728934949913394668881833094147111126165559916281578696845610532091400485093446533087751590163221134039010155327094878482540773389100799882822026594965847264793899171028835460972923338131056393213615889331654511256111786989160683144074782287511162969348289221895527643944932440370176338806357735146604046924070714972973935524595419136534470568485416589844881090702207924109415959531578270896858294508528937571029985253732403035705124573979653380601799109447591810185581596252652075920893939626220554025066283362957706164630312347537125767665208821766431484449502640312822994862937755995718979009629682924873015520831955998233089965479142425901955143338769545087844021823736964874438356193613043372801271087760327004617801382629974436436936717101872648157582933695335254625972802580236039570056367834821695221741819626604293699456188845007691139780725128786875615625003608795107443567368668436205123974958217156505980100467466007026216611774473055174528804413371350550100708026590791531770428612071306660225749950805946539766517023679408076634388237022790236963822006737323964881267384391490086928560755519267522820108689644915923697180718426993068866658285751218330548404966977705447648544855320616879432779188474949408704440851120532119142644418429839598855602727409046336726096264592386745346839659685343035421657139470180073544707433248637628432156792720554104746084916791570363794067521398535987138911025790640708044851830314225954510930018628162867153218027487973990891735718812430220480148358424808433625016210572100998710173104691155160109905344344657129602871751965425157788903241773311569216575786664041815364417051980892447887481317788558211320143687153800364464646169407472886091482944247240252678155822670384665009842798595119854959067694620430799954475925346080755316802306600825250809053550726166734967472454716710526763985310478706103461367782359444065726812491819993920308513529880542211226795549580341984758792093150028898581775065002173869925974418549559331979578367349410299863328847808999037717705380961120875117974596895149760457271354389325490999363013324593031984793810407455835637893358870204750931145438877948575758476389738653540142938937127856169093544731527293341064326161071263254904289605125660361543852895125584731691873762627426591189380382155440417691295084220916653305896494713043411502374975855996251454510884373687883137482596737876933827271520770695584456863330178073982944152695941119643619555176505189579628271726582021251869939834236834748297481149147166733626106897730960113228859086774555364185553337819098677687604386369288168927996777355390140294969225270009196144746712538059140775775175746101285601635960580085281993854658249419246563888699699170212680149739297575690498174070786597235659608926033088851805122114469979959042705316548811554905010615947782212211091766633111260323653926229776448323412938542947195100415495843998427134485114857462518038141209479618154106061686442989499683594976188635924481754738365466896400230013650384355238229400005239948081016054941648078061982261835914868829495341280477714404450645460250043225857288735414767150848833513911647803187941802097963518887094355826234352876546492566729275667047849270350054942449200253754059471309285638812005629926241844335317191015059041177831428513525443123912103340237187915334817517749949258172788681635296073453299052105028847279942713522876353377816180871866165699738481656093191599368647373784177330049451821063239507733466238147953797193516586302111774419042100816059711202712798685959817511802201060775775234318913687718001751182482711753805311899355293632623676889085881422142905971905185852367587131556082217715908867917699907824259730878082240408272349759554285116163273186418052833813497610040410905058676132241210840308121002618112344351858599064470114013902506777197376000685857253276423859835415610077457274139562955941486887781304358400828349052433493761908028483746612715542341358372427653561130299419255517048457905325383861931157172768937910394776188597035233435019699271923815045384285504382099694212055724430161099022215075700960822752119525003585028894620048262503249938250657131963820400099026403389326309608284263055184465004122861435172177197049270453924984869108587876737829412601638796208067624801699545759076651490015063545649622412614698445448956409824945215642210858756921517983197274203942614037623669815021389741956811091695580854035168246205254179016259006286316620027071351019767214288195066748599654893187366688512774691141977654109621406293084032260691133635371738693851438013999799757798127647513401491796206149663296137551822754266510773355506700034186407962372128897053342875839465886886766109369160424774973597170024405815745528943946297164147809459206148213921085084401337180680886852097073222915374375491119927142145166291919858523296698626419766788124594936455287214565085017880972028481646537513196429760626177797720711663347950153588384863234343927983359025085170722712901008811140626551213409200910742766472320128456843353162575567832640744730201896612416258503793163618305725657324970742843573588278426990557282248949860518553992461032563046601288821752293234594939723476821504604276609977142288972449990672998526580524188311803208748394241556050145197159620029951096848629394562386794552181043788040750998908214116352976007757397138582930203217899003616518174557887624424851399343726847001290389255160752132522115873294854447332223375198713226714094116143020421681766854839122376698086628466406690520674259018174567907249565694391975498693069045708377648446454504467550570349110641949626911094824783796234790477315859977779608025750631975568886154870128654526510044656017807227528857442260423469935383506209437637425829690973937702136529043272151672702514146235044488609097417661938805766968923386087226059135501089847307650112730110724611063056002295804079560621795251843081173112889895619699822219053515532350255337230832711146888154039301168059365771452854647442028909806226406286558018969692428392354167556175015643680919400064231517766326619228740577557778438938730266488426553741118552973561583170024550058205758003811791140378426151335746266833177490024550913320072697284835890897234563951426198787232026346517611951784219083598324855710018256261541629171096907153116529610422670348124123997094822415822527222091622864279395467500293264879954081590772503001248014861849598092966715570675370586907624518491945690195540743954052441622529732916793157315420949613028855491687102938294593503352984337909432809506745496140247900221568731645220716256955551228465194060187944095112807093137670201550049672208571872629878008112560125648703139529626637239874350451324266045076092736757461172780021002245221828630479342530443998630074478169220802696209081716131548074788748335872868721506506405035242355259414297204125515809996635660761435422826095794452206394146416574964436516156673635563465683465879702469845605175657415253609403721972684639844953222496733588916565458918723211228643932226514833618483226770671958830947815754942135207840074998945837399998851933472738297375272748306721779229368003097217926655003638931821010781102393608261016836098021700135860398258041086137615013518754209169456859287977559650744446891409670593213947780491607097129368080871242835024932191393677112681638641293790815446520949781266380600655099305261837269607594427332445708859518404546786610391228683207626561186293891598799019622059074399744830746818272729390692683826291440192102857114350505862350523654008795064534583243446123605933371638464399804528585634766552865103622630748354570833583601817441195278882803671249334419379195797532347471702156042346773082398119178955267901641012480432772039605547655583452394558905138109354926611792984210643244621156282018876509194956088871325318060897422718161395998870248110668725861340992213933533542810231621165256385860615877497543831351585607817375935121677906258422901074120375950866929307599367665477562616503931547425209315123364175197946673888841480348593555039485577627441857629477141643570692461878045547880416477055069017683823890645895229837370478502391939622773680763243085114071329163048137694433795592773000581304572467601052589366797041024013957813062127056901042450074880603468219374405856330748123598081031501327082735318197479480191717706838779080968274446590253548108527321547968450864414849459684197191430820354956744322687831722972316252436697678345159520075103267023046835343659597938959569857567914544614206221998404096577214886584302823823415268754382765100771673630432110577041176788885572801682475633381821956724634839171767608177545353439851073130378024139549762976144687554953010882308192158482418791301411093753929821792936626896448748012649956334187026963826127539216914526792838892884676979031605748743934038743961924815986028466206548552652407225083866823149797196782101567301061099497515855810413725587392078553924508133282300589399526440163614304123712217043690863302427991969562806876933276903567965891402955922776634888419088976087972119377842143287838819242147735341498200623673433843833479893854503683275964466561427033248069657916049785185914679545387271246451829202050637474062651614572358732782302118465155871160932004855566356190353363472182310331441000101949528509203602140492185560652311144680935234222236469707997347633150793934708509161529724942739414670617360610117168030895830377379364656365819610155993354760782882676486328347266331292403220534458794222430955146585166421628424257936113746964428517447917976842696086563256629282425825438530203183339389523073906510917586487189967855643369105614649300639249495821062086761103100681925747454611812419376837466226044939872956947254554768477879494859089079078576537541302951987423471620203432852328966483742506179003285726762636521696778746927982243305304665627418741710079396298760715456923682013941614438572936427376990015590553101463458641508542755712713067899517134627412834659424948829742922440319710601587001210906311485254593092214708755343517867972440602886928315470337806594257323387983122425855645322895888691137834391975071720798957519529341173382603293104391007979642451742649535881135544974259847387095714896026097466097562342881039442314317228124757559570552553690423374414627143884257282620634406508994628419320858467055842247976589990645202365198617407584804819826505540615169167175401924472955147027459704382935915458941142193591091753940992917421190089472395108163517687926651877797667280992974771621960410810284577760278862900364587429511321343316772723549318709767034369666277642268824196217333471011116554910176199205690746300899258507635901874928738682671956026579478984544775800270251014371484861456559188289051441940590100452676964489636500009087528977788654860066706912352168702627820267356627086262644665504126256609675321504696119973990963356806209460319286783179323043780079334248116076930255258586138819801907561467877239604927157010801096323716275573032208148088598281856181171056144666397557913826216679596538228905265720524304075395327268043538102065097693243058730194451331009175512906278079660001794529847927906068334922568346961310282473806427302458625197220456231539170981147887547463681840186155571853046761785774701881222292572153254086607853414360052961868055732510105936761875264044661852681389432296700415170274791710074714485512206203813129469226081615927619333488260147864144956228140586328959404373863390653299060773183507917357405708330615465717157286171867337987873269816276663481803138094153573840145540596142208758677899853155980355457564342235393340233322508263663015313919497360095908379001089929782022252430074322450371569309275289628255811971568944674690964023070293863101400548938282641081447344592658280948166924707009774535660966296897714122772655124801352448202141700261192830079059707989467942653261756282808557734219186511738032266080413544850810473017478796534562346875989531782084278376885850182890279159748760387000954184838230346335086846298526868940784102926511567565249499036589618101464219870996528779784879355680780648258336199522326711383362245683863632776287170836678556698488359447694009867363474343736957222064628873196909613149158921972830217657822868838730699089976471690745293206913466937102152507797344065796397784410817054574576546902955790159212040052718202481546784356059061068893458311676705501322756403200450241226313363203134197701180325636850386120695980907260934572698325081506154873271587162294106979529271771875269484691665414325743659381364682953062170226784662823986173885272205891116215272325403531049592360506117972873162892770137834715239392859217198149427210941987769875961234768596367156654211950872076296152764991513750019809129444815935392727769925905390577852510522651391853813779112973223627907074921879332434027016482544799033792390677415531284875698019812056131910248940478011903116525765126909924018845559322491806308024353921643934825613301153333083190192134304099634976169534763485921498831330836802270879258492359221631167521402083289621133972864576485920420180387106868104897572761058041584833512636475882660980324401020787508257917840120988040961189480951472715889289100406373164299502401590353187940266068388651096201581335216611557276016492335437253659438801717586619764366736676453630184975486694743298820108849902244284351592775736852028637888950020129620530807882139566373558345025611440049938981613785010316247641000678580992506368551037440320053767995213004039378609127768041830172480103844114943750093399108073688746489704982501532328600546799319106346159957935755088871395003894612264940278121168147411609647676225343247829520002867446445995280963384321060618180858088133220771832369404396517633905276995064317131586240802828616951794886839424387661666517571449764988073002600362267736344738729085967601285107539577731233271094430038938576837535530109168148536658800085227708472680517601751777800706822408497025667734426681595142910662053605668377225587565267696519740924240796962253624996831016905563763160788264241357014416493205475585276815687809323980081543073814463341384439844559411493023583695940675244708839088835055025622935329147459219176966681528170729449754718980137164138738469005841011519431659843925339822927579793433407090015017839835141123583998009965058500723503560063097669462097138635933033993679214626184576381142418444302378065152699163852833175499794807119696560532732399606644490935452794932823902966803561200051847780038929849079959372582824226214048584457780662049895873264772595372333166319617833935886509488041778651434701703214602124318116221181843954032265704896529720323541663816331479324560271621975120636181793605246596622778312971431529290363288191871770119072813905617441085020745193996321626665579494782926038601603444509935785092996981904458046613197787082772342492115935782716711612446219251676635208019172154177729798303873715867617743668449002950573971759476698466039417635675225170775941400380570343328898605454845725079620464903740619446584744162245956958902511986726177493437321242798916187575753694004357155574069026131246183919201044716789484737502820158388408958369839422307006647987882791103045376700903600244154833225925004699885976158573900113722137198513447540101115235648716119410045660727072143368001707694285594670648042158996068422815133827443537087769214782358190020562849694586322616676232041972079113648141836023375975106715019231285486745803786005262168463542630607745807656153059306658775330096239994508804388823080445081120110148603039760900561269891114943051154303498371939507667129751496779502611461099741194196658932438744977263214665592102369848235799221782470851419761988977204074261674314154032649734097421472898042402476775465294382863897998354488703840559629327121312464565639611479299924005453740035696153257195082062473693770209738969730368244715134532888469277327473082289159410217146106257978220915677229618590021748358710013534248223803610641100447382973142003834368177197048460236420479851498443200809129874028838059412973186448740168909179034806107772869219698905393679693668520368861103134506012717047135505401764864071609922647288384582379995917601518732101828218790368400614854220124993240513748122893336265091223524435473824446557241344709387700578239976135706563875354903013368909497871153521036474232293675648341685108655225079822847234755499025155307394847244248618476441400659386698481227953434264268224467898340368509421302963818426634833833080030148656311429767560213044806031747397221316730447536392542937017409913645185547353824992822036653068427812653143036646859358630135748641155019738574739565925997288659706764039132403573539132915280411794051348630359263434366309633817592306979749919200060812582585070581108343006722270045993266790560531408344973561421399660293187628847282740092087235031397514027485323683842819318734399448903177217708463650371313579791962559700348554296464473906423215648818848353270692463403897320590126692850011042320742865408293741743753130818527511783805215482647397372052089451707527860734100198266776814268282749432415430599977535400637799126387334753127853853083328509453327193464864062256408016966228247423684130234717256956180014374125389007252487411231625082918669780909256518291117562315369297292783680998302562616323921856281109807941071446859811565621646705620385103560277826935450634680988966637469403700116066098788970119243147334894877878452324435439355976806856990161416138316985423068783291733700234004762053679569168391124100950824483309697759450815824569332014221671376588175385674931904648928588810009010785158813781475988800495615222591100851456702472704948195446302390804517606418156643059434604221154106869377781438779753950448173969515783033829190675380898652537521732163398724906696385622116006280063166425634379492688864634414442686932667004606856257169712018134662813955596047711612735085057289829561195461830484241326821028612199420512429152264745778252473276640377854851836685645188689543159260490991557495049413651342252525702025899138372734808429185332141138838067772078986851611574185125110310058850282850502417824018406038491799982190203549412437073568825905631573315895304055064841601143087611115717544469812975424419948337649074993250351032465821989010361630971477282870720042431562352852687542677770721052928311154258616280389559367980722419696854463455050015260789967754800980873373348904631421915023745995174375621928750951242451714054358348862075077364717137295662729455123081418801506090383075706814082943041600551885668346709694855068875440897258578253096589819907370725494430612070495454431585419920941330486095019991798846581749518245263239698552862118182308970105077681462140783222571398710662470603554119678317184683683968670011096098032786028677467884430263456488726231639526330425978656484254361539268030866175251622690297686106227964644104167294548317616243088510063014174103085201976364233956033750512603153896453881873294886840552404606107689365532032878429206415209087534912254164287296104338738575267494738609190183197360767098588089272274589536123019388768139358416882345117124093092468899964179277297052829738375593648441730898304184596234227599182753473550742138829528549129681525054762722702469517089616639622446881830855819620988123680738739741378480548308225660153241167762649091927525526687445971562539286068553390668801485378452664816927227749096624538733428867342198937293161948778292439553565539325746814589379670569535925627585291045260212956052756527683945673591521746275487216660204861895859102049814733519739044640920528801158400656939003973083477393205235042978769638957484553293730351360421592645516186434123103178751857179171677714154424976200664428670693889881411766299854941580116218292854532788723155573168195723804504091573549386704278557768411358814043349589305256866509954314501619684773144207947504994993858050194766851190054840730292508021042459548589921087147122078461282768715702574271420242860043039666007140149884500047429471157735594663082776823713183109319078023395997881208243481796311992720849038711820838038940803719469292615668991788416823712464457371841763942812429131671913954878550816647811344908087607316726505805787145104695476719342397241905482400215187735440149402033392507521579245334457002413460241997355266950256726167431683142489596064272488742926795358782585877844214894182977042117651097991573967361979671478536882675305254120514748902897205691655799172324426792608799993120951992298958886687851489921044409475117592568151806197550230363551551009060524262316820547379389776237601501461823964096272518749765078900333738623850949644394340570004403154479263178654502250690883482181031248771326578200949564858474182335686803500890729222599946882367553992613215045654681720580029516776557698329843032409551826141965568904420990768068562532606497538173055348209804522677723748240113985298856583269126573034461679443891727154672186301520023785937792748163313387112115154888789411577926946702850684946922816070834074793155591582680307467142215651665691794142286691412922501948797891966937953364162123813211767818407211400494355928909694294118826078204050333324610988576286437683168023002892671864366674938588094388622059594551678931032879031984898389123199677950940371719142289562615645083543638716505380254454886536809456412817782828836873108229181132717942158260445893276889746019393859028074331230722196852783707410681463357232544361331975350250314569524183981371494011063227870189295484451108890001741342850448526970175122273684731658575458297424370027668752568119117787818253161932391970487219115178211407032344273135310976828361085407025399858860853881204587845759151348010139745070689293245234875557105007067740256550629745065272771049478157731836543728536901684761391416196310939980697861238048968194061742887767627245278505924704876812561836271979294919570373822819441615272211020494209479706861843440048888743684555263492302127160272057569031613689197111184449515267217020611012096932903821659918956239663439114918640328991784854985348559498485646617948720697016563165921638594055297730997115145880739972159738335467974125508652970963363628170791761275819196821825589790625632642001359123244964424044541685453508978952400790488995972625588046889718105619472961794397200412195781268669136533140878744859176055126047978641158484462067947018650506450727015660246961426931099633951117231951863508490419708373475233537107189789239301030156519699772758142052852033386170617256599885778425556852799229241916479100559821540969258555047942123286499707024123769813322207066904750483112990168920477435093597509747882091003708332718094462353567456158966140483023664271465526838409677745713834759967708052801789155083755964029488548602662720447207805560499155817556096374295420635277324758453050339747878317329113674631520117639614464848368749683813079922607032243754343106234111284973260717373522060217990475549011197417655627469359909171130760676915442954839901043755942356239351891775660070359844296982614837464172799245842116180775413275333630982592557890208770629165250945235562323311511842482581066897908966522620373985100672355468523836992736389782092421404186691677602622580893802131036114105239241544208076507194818936945314097757129502314850143306157491161973600203215998385378212156680901343287627043671707794440887309052973666939231468515206113141945912816339556386656502087651791031480275180286532093123979021453363011760692397879324736724673177403312698008052079489618737494805821468612814503050343166583992617732897832047942269477128846632751861078312282920921175702807988108078641468532653233318621247235705616661240064644754683007762852995803387898273078137157782376230170154867427479604966574292547522197874994068110732540491939428848886669466966083019075632868376999262705763135439838653164424073383670900004684465095341354907234364580520451921671385164041131041209322777744476743565988694386710498938616882802483849529073294399733287728285172335499728296667341124543155293790114490314134590645569964525598375977095328381309575609682079802119656399240857821371560870749437368122995657996959343388939275802873488787471744592677320594758622240501249068233502680243876906197690658851114135676079022724643368011256101379323937465490938853167445335302487154688114595652498877738099229573137683985360394204193082058355805816171909020601356840187333760624023523185282915931431318830278793096488095530365823505120323776586744558885703238629898565180289154394838431321046415932405904975339867395722727970494838340888868679746743956338684798646492706444023255987070978013640493375312209824340690520780779652341734969472980704618350923241401079324257694412563539184951360374776364871016298204889224967910890214497736946051234998739526720248245855276022395545724921376360587264211283296106823846317661053058559101071625891554140979812894077959926696444424815906944424038063637322478173807883206364732784083390635972633979575189964941346343126831066786078664435308271453699901099604905626856781472761968224465928488462070003771725465312517094065221938245224905814227842114852754300448012415082735097317928142175104096947802876722298430285835871069401494536412508426699555088798576748525133009283850234407252284780525621224746727503559580853921650615742107279541001850978373829749767252833637231737520522627777017189566345280082652373433615893225881683566191009675237363670448401999832898970412880563285879742961821401821135480682642271726262671826288247073021541253614205222962224951487607676184442009900487025843817672882042514909134569008752150921865503252959204631859912890648481815736345749484550567760514608913115235181526479358426465331345803024456988242337795540972409820833371502144645603892995641442634248426802964742445137294656982975720391994974229165791905296342994024127730819882613173081778229289260480870461870947771570392162887317872906560833731233324618973806538365912374843246404594673717487175714681231779827378466554052311760200129128930937028549026544189986805751279413780409903356869917544630963043340253744365444930763091581788324927356380661494855695580660100970335052703910538298001433174206727763392491604112301877349887650093759340915226450201046526536156948109079835288979400834270358887193749342010997435931921787873353034843382615328156861142466816626707593281821322178024098538304392955033574613937663504887735394828977263155710836925970590875916838013803184758561269354932534040338043400404113030421266706270848778023397295081936471031879705922522497273138373495957663750259018528054020731829290215454324457902869462375079140388398880889262031863269052860706962388403672962642392356725504425557912864364883489341715998510570570430267284440351575219677144992930574866769173706298340602005495310729240522445956531988550580493127107405974729932611008945305957475236467656894119922386212244285125540584072730467026299605951835096991832626681046646844783298179967203180332522649429869491432891972740414873369977510883510067314568976352538900351262942012352742780602663312337764958130230909282241216411175047764381706879192291301442917194917944404771992249744139655187550086671508507696098298030646863610012397327471642174351538007195423764329676523959741418089510119184784676382963605315405092961033531541144407931622426492582413106870046197677316385248776252843414353683696128684274865058367363450945947915602973075082464192754443530959191401953783271362092756253915486225639606264224099976128796823775795305526607910461840222985141357567496051929633589791558112942539536747644683365616066079437969617117781438114750200291060188557903323813637290152084011772796894527174444418988983820843617363460029318101652520470926647220105128283933247028537085886419261556944805950301556045302491888789266443369975939398566480613318816437877097027261662232274532011246170356218751852350334785642367928873421418642173470984645749615814657684190004163852420326056731700327000627448001452841258198203134718126856676840666917152469996447264210587302426158457604742014085042471809681453698209725578517899244074907293052850516793085567555631145659192414864840820027393139792261852647133934888501867264789720105328445734117180440435171670988337533021936523844136636816999407028889167418548955271634196404577655629317846099654344382215691138703469771261693580779271968563462790957871912406493592211657624842716310464712483206749212364764893672777012895572604361499650631343395943222039630170919923269762430520776979178647592798046464795512384564126827572531522736713812022037674999628207629326169113006442609867753228349757328605504302227755675484407709527945084084815320930466765597932448960534595190156568957421482247163190502713895646264794793917632422044019188817969170880615403266359170797345954371409709754581912162033637886888271096389505758004172900958467205989432482145207295304991616713866072302645597704294698592214008680120042382177208911810814926766579131003354616008430304327599095097468200175746713695997930543720060150183185277533614303620248848127487789535749809572596235694401640478110017626962072134872140853493750561640718873594270199095819843820837165610142626951856413657116408606028453850627734234673825977645992599422381904395874593302173236684717531857078530016942551062543209832260664447835158755710761432770468019940312590977743313066045267306524998588064307610292092811036079255883915855946252168409962482342918024441971966620717705312230955136965902770615636348650343865706398701918644449725324933914836800172651375678976033252415464079377337865755313812020800224913251285702718460258150549806491833682435795924812012404459849910276180032871970187563711059590429389724349114535957671490569063485989173520349369464750978128708109145833266610408242190328662433858055526532445468403911066608018911465606609489796745638308032433805496991692394332587761393939339585023551195154978906496909966055229543398661766527790312223937804222104274057409545817943772524048437216852059394085594937846293943020100030640276417739059049768586570420793181950722648784371002976575122895548298976575753481986445285748800077261501256939252260266900466754566865502016362020536952045136154686777952976651844928357912104430788330414851271420672691317684873758094491786749944224487325457585504638385463100659864777263896806445907586075992054170813673029311146161663898580117415697536723139023534866356030246365441617341096112666537965318051304350707209442971106023491408286562641122578796838994714214521807713015828961478593637422506651817103186966650906605362611131089176623599800063044823243251611141202051818924631800894271557982851324927732964854975291738906411666764571882259052996332881063719820016082105574824540633004106973708765078347603720895657629287335305635673771962387879124078758794352708624282989128148679285724566586737584406594569059814296326313350164321222588462304866298312731868635202547184821201743985815089008836374145181429784626484420298444841735486978655571385081831702429698053174916504447090193016405848294795626187438596893139993162513195894016135319385300774870053112473306102972143065016323356983518016857834790606391491508895436173928954112497259073079253441543252721426465342166909256886837335013476016814020208337770210022788553394070471469024410357929914220670881470827736169162481334595759384146965131323838447643037522189414644974444042613700889660678414703163507923550949977300300833075573959407223806674456928200083793822801260206449521848309320156449919276491778611486014556706849730353319288751173866758965113534121354817237847546504096762337263496665001033761861244839760013583152756391694150261877539946425332106408969471248111514668171578250419802777810867410235606257444492033694319634158801207388423482720096853837158035904768601298813695764455587546309782726362973978013978380714674344500504446831553917355709201178367712590128697860384602603775281890238307594178441202679275330844121035489842816155733223249620737137877237770041510023103794037931828944911162821501860175816692278234479781165209792999523243788823059962401016980770279161049274215492725208294869144554319212093373388337950253819719176153584076285706492180141989236004849806338531558278580692715737746539837703909755147849203220908237432759079268075290036866235917183336645864375746593177958663410721348888423119939096411880748623347495426822071968375131108177144239649958790422316822328384118590535579804292796352085614201369584765931193012261134791281413192640678396045571990378350384700963588218124461284129142337500196353327954197514077567895891732305118185362972043267344410363953761084183051257534575292777496145707918807335653057883888807060212475691181764039242030787398011633557489412929086870586975047677966298292239046675477059186008537803511078198176120910743927016521117547917553184323039783982784986028353110836545661961632852275161041234933007442960225190987309162961228485318480287114302669102245638145450332545318358095648084257199306767028129936608165364650056836842817658412152270954240982724445452596550709502292678534221052151066706187006627031786275405468583830216860990969551818915655663109436009983665398771238231884577682638378569599618739972678398215200205511427102961176643732448843225954158913811204033088818894999919655107852701185809138800018310851168099608940716958691938688667817607388286737457117615987682746124334618207779199911137457243806602333064788981463238075183273384833420439656556637158460315565392903222232425397152582692596437139689602278448790620934595551330978788177682029421279928623621929245139088524893731704994684199969160408947260668607177175427254328984596920031697906867877583154550360629288700836851128320358257553161740528161226102358273821191577671649035084859074143467384423745417661969781315384361655162713440605107341283535922416738947676883382171741468779348983252490233821833326254621929437201193434907827003407697889449377389154755911258903593987100185387246265875298190275309078978970404714344980549637279329944159159023525278807404836639232300185763610087005611981591412836154450919914922249879953690321356329827549594640955923985416123814532563481861687478667151993188591977374960878205860642336988730119709501490939999724583409515079094958864592925426693428092151843175159712834172332300699110722734748578722103121814249814428220147516838675827348187919917328232522013883807706606789669205934978633233784831148949933499247355746123253146433195425140799931020609589257546741847286086260643280976412116940388002858724570329206118365698572419953039772258185470097247749708910528330497182398831954421294432592995209027577559172727551840985353710313087229045117868486209638173376400454053514102228730734032226978167759132689963188748105532690991166144956493995155587958974806912111669331105060267811300719547608187790607605584455718052079592656910625768774996427855359442057573609275125257626958945446699089954523633069151024304257485366623103335424709805434882925268574467719856891692624329828752664603003454458426096463590300271440079626918502156168580005213043999787792013853819441641147271397093891229711424017333528644146175485564690763817300290387509294784216985470415984091193267715971501874754618411554231590420819733747486952600444433449087955823515460229025977507972778872302879194416616430444712952351577867502511407153127649494289074407742663827670987929219522857778969310636161879067138316092186878917677485537658124869897250240491291612947501574386262660904636156637809604199413194888994940515437431417382026555802239998276181721207664368526350716323919584107929604155400020824898447960158876844663316370893483912015637240301843110453826888434229865294051889103139098746159802504405877189199166567790820523270614022107078286724326558254791909573780472551760832148308792389901015236166630190494371946990907039281931979986334222408042562223187339275855801817857673231079330632624447569660292920169368880743672784126370861505881490512586530245463191184374741416144746801744972575125860335135987459590085233436041665563705697391114110002389188011327753889796847380669613354202822235184488980064497748528825741360013095991822352324573250235262479712830670376982885384820575694166974391850845343724729473859124184346935444816258711324506744147895036006063447831531322791168866101927634226236494288788737022429650456655116581066789689098358839463185862065781206840511995923492321385655400508564514516106441094867402281758345269016021880708042100957574083294399360884176127478386976541179201357829850890576753069253968577427386645943944610293314499346419586625493558941448848214075556625188192583481538003275350843151322808248070591525896358196611244276081039599240745723214001431326246592053610660836871573524212972057749214262738462535141195085492420832213064664490170856959210621275919139096902669432015159190107020647149654850582989703145910466838755477399197195781158338107439072843363545611192777502378622237375332953860049063409348486359930971737246605089105638858158455404390726680925784177751321167133556054273791845607719633600546589865411668408584871687974427065505515858734948624746842962181147293774755140159005932069480603493695460702436127061213960241976168098455754619146999732857144873345628656436703846637538988466103546414095598817181694896906939726152809589977100185404525953740512441010653545285949358309335440303995704043210097207196744931523405666445309621313840914628945228062885192940061744701206588946929026272649878138093329759627888020188174555030560594848842809749333318595842902112432923501725724030990803828322496411582120172806576941874206955563068661826921916690276173747604036548979550040256743805531160234308495913542540117048130540439718395984943102176603752321683151324313939760933207964138474206486111117818597965892927986529362057978078138131125178461406630704109492819501075049603732704504473682783856094865304775368104649116714903929997462692497717491844429827239902399565165529326460102789326771764330408552668219282257193408756381507904485333642583885004135241266799675832608880425676365382461157992775774067084040855691671719104708195292707141475527376079026809368813032780540644170443973920575582632061489698940261677814807920837846551561593293781267120376071182190818387459411327308039821719053733669723903957014976667551091609272544947963774237973530206615752770628359947256146480411942453408278241221127031603053880626688458274210591433972973226765077957771854566195485905413160418101147997567885765910097264334082734739881743415604548109868688947828561477594903379694340567389547442167426094368036055632294944783369607977026589870221979595825826384706021770177458709063023442226198364362525052997662612103407492143706592539293624474368430467797809248853281145385397422410266331936239362082117023019556611045686396157830537030639088090189039165768385137569971784414875497372959853086050456597754394831256952507624619618995024850320255302279258924000829466442904860474749481076295259810087690981687374969911621718960354195916239084404488065291087842073828351889036708749400745940538344846826572111469724533193400859831595073128375893258965062684432439992634077596390585646707593888893276465020699984019747850157328395622901986193674526336714396955079330390283169403343373201941858072474758081964521756020466292804668344360440412480553621613531867774690024514951080719224352498697851756414793259596628708025435104590889799664398205494426908923860247216035650429133300757017261602291938646575144346728435341962314920365877441612575382190919277914280743630490412755870940840865330950642106540733235629929167758756258124387895811970546606844174977414787787577628156115766482198366166248179551472593366021773365043582287881380173012458891054691243506070248413329954432223695783895086678226124334154185781340515111858225668833818824337268259602633549125255633146769076673715410469525096678630995643392715707921855701128352084279673905609032687237313230949565394257494489118180673118510500184816862621550568575089670771094018953432354624296587787913347595181621339213603658377308982837540666491586323577531266457167125809388054337565779431862446137408997733661522414215370558456182346386066481166194051129585821173860301562710411904475383020129421801088540408585843011628714762612382947377453938038655733011267698650080958792419430734250951629768120173711664489384419033734258849437184190573440271643155408876955883360969211102029540765718956403220995773382325627257854949724927281982760910208722797707110429423538210203646192916955565013257616122482080609153588899820611792023080333424352739150937784949191431136810081285817883915823506696125113228672115313902033994310191832200555405504008747194181656038655078433255299106261403769330380695594858734790466222360118966169028479402507986690251450078484900217854335291218808516035816488117562625416022377135843616783435332692342493020728199349851803099840191176078770142252943225651677124630054940175931954859305214707166619102339457037634698821161329498794586689887390411057116360536121239419112665318774032834979852821736716757916599807955101453324007992201835985290801504392912905813595895551319866801670259498705081056547954842213854727353950553924871214938907460809122123128476404543522385752839552836225606996296322201095809739732983878582849544021889553004254441579163261829862282966582516661357348940819648048570636135910420796815558230669191360325114877167526168405377448534226094154380941174707266711511300240705825526582433729862203743038135347839918309858079106129870284913466772165681827005985983761298675367094798261900629142065063829050739017470618715258309190415054938144053943455859846381787816482050407462989391864619590936659369218536118689862043341446847347951678383434793173783736644800670067653369143047812218647330609752778568171873291867788240073184591197355650925868439777339921351282200921811057797594239316347643760437306038714709038134152430474410796114769759038094201821275859116999185637942439202355685555651938205552018431613797290981401700105526704076315569252209781330967808977132743988815843231352377763622146015176038916479586484995558969053869678629900271200203529216834439295440150921141738082886150350471626311868462467765249005258695505099285381129063169073525973655314820926932556541377960770738459578135476964224645984045069281783505919799607979683673143802886503707049378833675116665179478690715085438242136843384887206818296182393968864142729835758102391173255759676493753862379700709316856518024672599013214522052311940038824986238739266138000513762085537441975252347238970303218664419903782353537008603370131181787101283577986733464125363536958189083892564142894670126857063226305665620556640614631972250176434821532943207395710372716581525471401150157800328597246027333040312409405991667421531868165859383107974370102681181634054997500157991974023069211085471096246990541772581221006742266748556516222915197475516907803517277700302617955606300609188752919610446717281663364969231501941959991154503056921129763030255892588234308765045759772772721973164539989557758573742098970345445906884028693128926256642271612180257032902083209582979076056633119683014290974486947705881530573871473818618181318908484663003208916570227153739042412798525412734636754975640189137090914294712866122310858938973905138337666674301223355943150567450887915890721135105324869258159993177540333517440762177934478580168649664784139794644534271757208239689713960121463557508127525269454933753063239804315835536657003831431420188561080107973863120894480283534557886880878498080640066229412855286182369330041720046569856140526002152150238672501515258948500533586139281644714459273551417753801074332502411902718804087167408474618786984648282356113835199425352382488476904931835902783096941340020260247009532334937863778452805718385233801728054244011152272255321441090140531977623833636547647996980181124532412231534521844599651952404124170804515796479645915413613529283856467656616470760996958797721027903725961542485794911894485950049536716842264766469871641918389933331920085972897082647376420139641750013112622427765874296159939330849029448437956853963606276837915756015917927219269200311587196192709282434656107938664077711620657531247658548113235484270801870767443721279678320802174420273494667960213660145965168747883768727739351085246073111581155440712507825772234065585413718822899785464279939657159187610009575027948543589499846662506846693767207451547775022786760462403595180840727905526549687452425826349008893508125424939522558200295505798493910806005334723706184533945759810079105648981691558777341632308916261522579413515000852414658316925084915007376402207362974778444330607408935563869597031447966468329739630762775452462783474289160694872474256730081301449715688417232653269395899372088309511876232282345834808375896235963803599201489367013079137526793936559717765306963790425356922033998285779345279997703922302310285361532490910936638787955492277898096387536675491646952765895325486858017069066641599866733378166807868963340395488828564205879030824126248142394175050552418577507727936418216234070582848207627969814835773193347965483927182724824406915848782352646002993629689416570140386371637488176686338227201410074195452147204879365517423955684945847963660062713729434057278232315425181335284217005296249925201936370481299723834727948040865748900770976380904317327225896950350826324700132905813674741186877800628925186438347176808918881951554340957754324646675303065662875075083037975708812449484154250414728547232831408493324909303340234064186854860677685131366983834376112375235325946103898611528273054924750501826820381464885534247693999832665219028534480438176748644085584894378350317554847800190379579372053715150464472979867154856717444554637753716014510325142254511479371977934452653231429952954150812165140308026435610739974547821933115828611465653884640352790558037933055152240356763833216304248848134748588767999764126026385694309680118919714900342389094411386196419566031088520493355963292598057601380679769339777334142114515979289042770121538732502640583532962171328655322187603354828012002678278784169118889352018681562862911063672525275322109338727088897973024576603256582323263397629853688799131929266621855851343451404514117622185680693887750605746491528437442834354065596371163497019896012045323873275100191108965758397304208497116393228605512605193929359245585511095739431947237628654655603786138575614547265857392941919663042995363472052010391184710691791623322927226917107893041461930121717662888191260986467532720232840158160446510822743772406132472436344892401461050202636802665390482448880993043274641394549438424117238550480593204680738874492772590994132088969277506209880602794129934913765721002966326589237154115488577656360908839543518096485997121378521164298410681760163702369985701561408765593962060752806379755338413376321864435193410077077710368150647050535225456607572430425776987614831284074781184037029543717591130320593286865155934984955989496494092686051846549189583511106570600367462174294626503441200112682790296374234540493815011647929107209353173998471604277605381843686816194788103338475234321770426558350532201391692876521719685307006001483886505411127582283330255596081142609961280070627711661185032591767096301641167178383787200935665881576961099220169174108420912263878472145422212513670132627561991607088026999786035782690472458045226030904122725868829537708132410660513119520496578433850201773371022498009285817474561835366934793676894321934356272306900128824512684675314452016690394382217862514056908910800679386505315863681029342788062904961865298984258703910595476528816194291935592613734444651534787674662651756334221438375887462871116623848343203425166706425979121776867411601565928360232583735488490672150610244180937836009512573537093444836818495058739468631394839830622894215186520997429844821373599611555828910724935937402340880115264584899953882658780172865918511380317483021645232470631072011526010653571338421700798464870445926486936840814167435141930263422860533766751057489117925337007566391249189112419411196784078118241699603656653024406403633053201111842998250529474384135892364280514685537846867390049368113762192541573576559545671922943518660328228906076055008966419074459714442388811364226256948195364322995753938087210863883133028498940307731971372233851293887858039778978151163229857888462794767533988743270173121854811952844043941126785003127513530236880698104461188124769628298910852830663891708314746540127619448870732456398831355372738900239227991790727229807272698490630749330895104520047598637994764473208371604780544775703447412327155075864697429213988735713939963443483048116183930315334468533700319001915194651667326168850381971366049029456985502242468419174636862786817267268994078206727434085795101494692321892180011592239381020006156789251930384302209631082949213280731122950069747484617153958011912941994697969122162139520822540995422328922357617292809232076861361306385317955588138065076433901264807324367555820930119468479656363421412939830680210022984437244071424575966598211981067031942563320481662029308858796432444505107432309156636619182403758199569764716877076764741968935308757099799670439931009094534088828739044971062187569278715534999673134847056844698467385540924039668161565200855497960021217948973250913853662581188831279646391974759684008420181700949854038858693363386681507195065458346130711497331422115476050960683310090013748852333093251524966477629398271171471223211889891481002543595596388264590906772836696995110157953643688109331230433342869245535269606779807684609192881646089056990257289272213986876612853583781752590803247776862139758597595109067635745934365675277763447766707680276960000054956994898418318217383811558951290503426770975301938439845879372033947824584503553051365357566065339250257911517242500700874698216806051245229922815891569796645743293346646624626410278845556372751983613224884826089356667579403572770516594298804950444993849551096467483164019769450890983755924161514559114850215863324384411954742273281871498210038416121626888891889242557101210860672095512979736892486963672733755733871175110852483345288103706770339225385308880210783962258210971760798427409558592490483572298270602123351761543723486418589711794996749209647544612854630939132238291733546729006938341716197099238742992788870692380441233338655047283613203217759624958132692061515852482407968721727194792441534448209876156816757409897203883171329990643256662581756759138456474823773385084631056633562548516650135702967495178441359471356923772229543187402202248967520809757519910456816993931891005743529128121423912365782388998440925634734120261171845981787334488872016613063716602540076803457419960321978062255221694120950824503565267951604115607805417413131556386018283465794705072928871157092876418844590086240372547730609907037417368696062751613922233621824852668692875569488830169815530328896335615050638032345205455091167831155699615277460788777725178856588963038071954845280564374098526733242709314732427419204265066288547808826630945723472399670596895575570085706959393949993666411261779354580091181503810637879738895777179525249509031881261175952996466072116767544299046942595520159927821312980944870498589405995332850033903560287784601951990166745923167051960130655323118506529090721404238515828214265077956664269500420014349232383330516398828673744176101711175514104620983056728830810042529118193190878082370946477309880725330332387907372272356155051991697287760094056216760987820658187590723059888120864511638370034780022183627123184637718484221977686961965173177017723383549061040743711336233120659582550694728719213610845277490349596301302949918370187106555094443731457038039867509901240604620574637580505915492762706074997676832268618507213319028724318614032468639236476343848575288228361568292102969292952129057600804800122643092909448058744358265910981160021961064593253544622429653866064067094386086559246585377386709867383910988396749684560685313121253087699878268982691315224258134158994720826543120567763342194565156948684809163186582040185718136322699854102689583251298731169540587716627188827066845058820834940756825191866675710012169849777806083102802554645357884716680364938068196491081868723711955213427572977197830927680577085720713551892291048782739731771451502533894716786320317388279882615639879953194994086939625317471618070483151926607111966181776160527674466642164799458401092609128802331236858132386816782393405523219333351930866550622769919340370697889210186188203512898093961102905477840005756472119075943099050928407050170468620698007005008365779240019801072792582711578125141348700677553363227609029005857875442451666275633744403440864914852058146855153350361447328618527524487360577946833628944848887993030048634939461158947921016778306460283215879711569869544879543295753383925837714899724244403907363423796414144029788359572888234854008079079623256225829302325461742730986558773695144520131720088161260666059756284547530027712842976463604991979855213111801615568397554779521209506404297399243393990196952949040163924898473346144203504489678882703283294810719297747665677157349314161940384226790336769610274551005613043341641284440408378604127632203407035717414750399992465268648327368829992445176260752191040036073346865028448336378882774424938822546591603347380023788547192034102816479047789373482893342705057003355679622951787657107016003559425363674559809262837573469218444256735122493767571061607905042064910144534392298914825237728171788395972163485846049087642133089282612827675222037988804457921226124315820535047087309835441550035099744559330871226331073777223749596419462095337834756810602326012040381671508128560554946766074416611092603702873662817868628604592105899738017906216575500668824619565178838680872186945215625542175113224388305065957989014527173855330909901119643550719959194014260531022863730748422487462358064026729283964398201159807413189978554234982517011042213271603647657511925116788787034729379796702913445370299672656455573339944693758888924139045271781960056743552027825070588730080382307604846196329488426175860513792075465163825165678920188266178426967902934682593732818574054132279128413723745352714622695859568940863320521351534545438919478944366617232262556436943429035739841849928164582287659408923465733450609829378177890972686959319624918708002166304410006942117928624697482520337969251933838809756292426142294511484498080646780917064808010067247087968912264704309638804428214993242702935632467968363965123238747976316327130035615428756817032281470989516931927782826531909103234247273218409411032359473055501328455844377871572318201873553062764200067272608105771088854527502093879506901579246724959449042810925265862973270517349533687404085986148794025824212549170158043115631590277339548854030465385064669524472291322963146658379140515628756190794113538898032197337430781026764192938534763306167238615273677667995608749974622446322757894282352192333818133221487359098085464215760446662954919985545449494762725192126011952857930622776769467212126763041660582037282439240603853385945664387733536911022281617203531192670743259921123596835794033878309621756055779570402043213988971054358020400514794594775087729856397877013898402746998824631986618305486572299258084280725584584498752905662512037256430403904078015006319301564096886734515411291032019449961601171271821466048341495679801248227270042976727588490484395824917985245816801227260695457448062155361229779615820500510967610261389593427972849162715493719441021357345018501188212143466946671092890795384827337409119677458849157563681161221337207125241838283668712387221678146803036128922651236743143024440690707272679638973832587832076220802239384299944828618312882279619192513743542953102785098335464492657898157495002697710705521754013201287681150395742882720366555564030627102230001040281124159379068156762177080270416244604512149652206014116979864418610654859903177953708011482149369178899891341368774146546467217463476177306286953344691401565635356752039147944390682225711956860965002251560926023240708415073060593246534519177070617032007130701594585117036533030792734022611458638338826858642172263402359468888806736464822527180182916981787857292416504473065610155359029750960450976682206441195017509092025682127872386276588217575250700161112463142744958733785825917116398718453755605595759214842999362697698106874634279102889376887812859763690014148965260666177408653514291998480331186019875861348361167930481588301430318323305794844478939231419885440931774846955885531468303804960436351877892730829227395760804460163907701641052226698202447406002503104973769896783813271524357682811392834390465631443514722060020677040174705757903589882306785574667491408570438680158910707025811145697120090548138077803964522720869441947856467262586599970723515014905687876639307561623863187790685333628751679912989482175094059875187729487196908684964807029858413643008478407991242772169992668588695502656754924086484048713196427801974447016525224870105714458685971360522488911443200249126549214933839149709374732335951198136542403155653884470727990049522137589266086648601064285776558765404981178202266131456272641913458466857224920387361200526108035337913934288625711308293479739208851419878997553750699419476883114377329629621264694608070252870197455494154396258013586986270777542957982530687148725358209076880661707355919666101372447767856414601955391981497672007435043785678861256145236625377979892787997179848484401217758820979866041419245974567839782033086300929207255687182146651151369907965617136854923981849193100922154107393991668706001365194717018180134784782603104416349312304236469327226693939967925113380748347759056319256483006089536272951196476422353499978797850051878401610302893774965293790900055798416562518177163945060856692640511909842658162099002877844452639226010789489952505371331193488618674741093232810711000310104593482896304551058339095320967828020336799389435679148823885191753216800920996356093463215112504831208906224678022824235601264018923804185721801971676683256031044254186263263950258751704552928039938977604965760820943459113425933495198453046989041603506788314341954404721385138145629217015094492499670208697822235773380303082592944093382017924364184008258214061121199483471968947891446346410138552237655873918277947709288209863562604450567257945492041485332334705846283831001691535001852364278347302873553929359082399243366106325804398695673522154270476293173346282204389587049869807338649252314455662261422120807204555932833911139567238419627807266895106805259448407422136593663724312562915707759025205677176629461202222294773060591621979385884001014825054410514234219226490316687647705127588507954388969035166510492956411621189194392111950403011940705075358584731734287179493487002400691176681471789818590190712619613467942371071578009360027820081910790005627153437634575864079752307665855662554740529289214225886188321499179776152866597220824824374057548770773520947002804003246751458809474596953133060285887960639567053930583667301176556177614113467102546469376841615864836740983291457008856187111021045860194874282977103645768599170044229507152350571655090688040883757840437922626047641282038974906047032281593146676562243510848348804098719785899319861917938887041312292549229616913732031976527050098943708549020022817611884615688454674775317209932859716290689772058228213821520094660090807078822503347341778617539305833321422450323931398983741956317541799319097584265812093410977314326811665684437883245878421497807604087729543584502294097750808595377889988658803563920528589155373525280434515481051553032820913944776653341663350637570775654230152322750048676452589680767607915134665601949954691194780383391463345684451873943690776955627896126597111414069300264040453638759817202134105818955017461906844188577995540467784449943375234609075910420063193809477460071468975864696607352392937077058747482729110190770059890418201078419024862594725115655106444964936667778044584365610570603236721723788910405393369934587862473880513472045286261865186222656373989077440905598936313972693961825450830868514823400408906661958844069144481370952958447249272830684580408205010696589014478532432555417367464473861449506203470231036593561688296537772165225584084883237918735002707092298816104863983563913937007638173958721873479476850591024448120673593628087904285029682362484704883714124009493836053822662189754563276767240920973641241170025963305275610094904064197910631917189748652964920760792762729159169939813883180021489039008097914439769745643957176816897527889164632298223467523237249330513891260843588107215787131022157856703143256767616757134132399375658058463343653134376748650833018609745020753890347609528971788235180685315780358108611313106277394317352113194863122053774124955153914250648136737360871582661205629124547662219424007349322444697490293529207450427580682681542371177827302267312146440302093828322271010541622407450271806566435851110086144900306888191400387183891323287383132852687884609925682797035761872720834611205929721618689275617956266533143552588719737041621675753482459150414592512037799488597373434818235041702960596250302802816403376747268943701601780192542158906353502748591377654554923281811980227670601283975077165448454056441919346570326215070425637830933928841990968904809693973633063258814612713361769179444125738041328498618640414384161860518407897352058547880860645080878772985620899876437990254952547234830373197015649375021442089297991306763562369984993251527143222238753113527656656030141245126245376017916115295816898657260734157075039410143708858672904349756623595742313732961978325350034698349892277592660412576666080743477055768646393468169575478495046806309434192859368292047998240436127475750863107542455526686031430097118310838339944696626288082595745052128971297422576467496639283248636290687205207118963336782972108533898223806792363215480305756974929265559424439090773301346079600427401341223013136836471947288471300360131288116145533524962330880758002502367365761689740866634091970736706303367804744474165697734922317903299949738564041314646560618281199914402788934128007969607743650968697612322506383566557900211631114572393410171447679913271136882136297717216098081504402582066218917875380971809905057275735140885476606011338364592489214146397448292859055204163825577101894502611058141582237346554226495908532345817880056472877129102758357706230410876222515928271805548083189341476553089654843723148068590391783970089489923670118499099204478045273982763072804028893672814872096872304646503269180569184302702002559772979985953389004952831072241990952511821302078174946325570276030286589296294019011146799007962364414506672834726795007889523175452596092829019475384171424674167734416496114400152171420695616307968004908733363769511043157710454150996994030315626034673458762437365304782036292990913575155723898231110176049596740256595933043363826588944903568562507406512919421244272612426579416075004328620539333062956020833471017521038593081400485230746395132345337825932236145722394988070535894773846911044004472196084231356835148982913788663424781311809180059981879295777190811194144279214776115517302509516507264312234704304987862810701371067518271591569574711394245624342463443718188492402498437056059813075194468238868408016484254868042508155255374364369640125764396379589191077751555078880199073925355954221472367905131604108524579366184068564546808763093925140941578760451530120240420320812211691643767831197197827669195862397271758083301752494067665961485959957686879907625037032398351440373127461826141706811997857537712646968044822915838165536692757568811645298382135973430503310269323330856661371449922780921368392961195294979327134727621916929609315412535757789315839985142070586611675373992757117649672682354586416814171815742653094154880812488196963937665273437209395900045182807232524779083885688934802452574396091272056236130926493244410498795906998557979752263960209823877490655170680298329273954029315983104277730846975818029222006777183277970485031155917843603981721202447720569006955416580379375209349724410518483930566102941858595992486069982536261496960398850027865700625446133578532387144712661822493091489061585090922713922230275293191739925562170831982197686428342391801016676772260312118911433831594003632363675369482996171411965146595699910737662763686661131706611308769500814096216792049651558553755219416046145006116463228088648560914918050807754834326496201067934639782355401659634693551473021019024001949982845567662110280037092604368297517103069575497706149594057805658886486948136208267035216299995766725903777216673309532319463818483694563906474058865616452467138268727641301436685603910864215404574646910286008454109605716438098202288461750975492846758802825324303866181096745842673311125181578458906574880336901567959988376234521415243296745005135215262041159509606347495445972062621015883719526109914161070614703374628762945485573345784087604967496634160381647531648683180786296375904069451145124591099256524029739447560651249664166323284739217044701788726299295495781205082714044849503162088945668757073823306074588817554988243475972019988109193591597157419536879124194330426810419166681355855536189947851245701786420246221168834689863716665444157428910223140996972607927894403685769896110638010603479361830241322078337783410574931794720356107922329516666172554657776246137539417198193422481664385774695866930871083848562810754890895402631689396919264090111563431560976046473929955394469603388328669803649050468430221715664954738402487637067576532865577239226322627077814805547122956840372131717321846845120176305069457688978464517255570448258470547380351577872740190593815275409795793574743596101861177290123406286608751041970644860215678234206737753940152539873637598234130411299767785118059884722500646228831426276677419649060275814967541033704553588814336286371275615803209405787971710498288264232688189238330644303808264074629930333276892452029436213945924849306775265881045445023934966037243505478908948383961074055477910907981733127338026463599858248436998392380325066247700585381489338715700057307878880333633955677279683849320251133081113554339492866077371688836351425525809323664359013382791980780861707370131704673919316207981421792953191665984709534458378293507925427027471363271709896730716170706335029663158758379367066706677326576132385190307331095832604701245304861766718129355929033002440620412693003362154347828753267978470229404228736486350437019402725451803253112769294088098868189930052802399940397792665160527583044184456625965706171681216761156236491167749286021112076806020087166443630275518253615141970897666554556015359756316762404419549906148676295495936524691004637868793322958945525744970040052691068880545862259972404837257810232766333830154680466701602022379652625480625280914729562520272214355263097877020209407737522148423365650773250527075198883520996037172046050244454455714909050289751739959439212236506963099565802279790143820346334695096088382519229759466308402078623467270325601029870733646077576559967189030977284173677803957092116500248045234526249272119170804238013560865551164358869882415648684971104575163851876692626422724548177825376057855908315798107049213242252711631761196936859446300319418801314098572009131590309643817551200849760041486021088228881679491102328785213127460680892778650391889517719054857115003161724023507635540562461522373471399161566503320826865571869154694266106923761722033903713451679670206001881852736737751125950265670809842589998740651422269822085951359402805924157044467009264034905676819006741038236612081991605549912766962365667391769409583809916162645515551511688004078528811080693829759776868224282230637743664601331640088381355668863688823818450455824984225272784900547386269610046787559175009545885116410838168508322375714085394643225291822476671233821006982634816776747129950322966958861309686519642622440024264575190112910684518684073752379081637591631006121408562475358813822866202884256923035736565758913263744948280719875291578424717133247968758544870543381094391667397738772658943258056672118626016030153165903035222923736351075903979414109168251251114869597501848917429389063275252895783940245355204064213660102580840798734015924085809605995736801175984731978550023835064583001308981933335648606697410198773618714252607161667821505340720553408577662246873648542431592887805676414827777044681805054033893984205807972638899485130545322666455473165772579803221528976101241459362344548073529680857948528075400418265131539984013611281580405289810748542737455813924589585612612229997240242115889685632266488004330201700536918962788516094525991832375871725920725539567102519653502468093313936617411248509022162162925429282718761665436473499109296904356063565232938875043139714169876382253683691085677228507944071687314488040830695392463127144824796169115322926285655337760888217159307088958051010382915014190983083545806890826945694900751653785850819909835885827655466142219139917642041063976375594561286908942488125714404226816698256808420638330983575205234747664216669108032846877922095265596261963589972490088372703604176597857281924462991318471176258573964014801485483250801109590536206167735984579769646154014701460187579907515137594276411493100827321453213718235268885350585576584260953070328008818155271720613893767944669993121014136237843154208199613938683252966327917764041639742113081812752490408782707483346472087822392149357305352207494506183679839851758190128181594357372105267377203457082821899565588582104977189440000522237919122305904316111060146380205636519140009908741502859814161594071271027124754367197110112135833235507375995148313470799501659907346146992474574266601588735014100550235366414784756005351380274932792930123764928381387496012353151727092040759700348497992738702925998708065843971667362748620143967467657352169546965753130880031165913510277482987429378827439531933849852727024516994537364873005098992341302343596558764349851585065648332620047536679962946060071529565758020008190615868114608982316470892002215708507940344776089694034133688695219128271818556150152193550109332182396906321867689404782655572305346453194434160078184590762743522781545419315353516097677570669877158989811023786286056044497236649290392135580578944593550748613452968199607482080516939971687128896222502585648892945915827411710298213583499958443469350349192600966945307845980098137890642095640395674252802853092111784678528405084658442008726184525397513429364206653838177719994782683144485163339895637883290923921294368461261764789543299036050185819276727471720712160287863095375117936306940226703095346428684140096024609685245451461576750103225181803695026431722808315084447714708607840133096539531868114760283183661905449955771777118174253382587601168336991219136295101406386234864967781082825349787568038593519035094324332536397162313625466058914715897865354243352577108621366994254988642738025667014144029638337380209906446131591503522361168830240599836210015067954428962623662629965961625774413298833604531003732488144323372882571185282652546451034625162345495133313807495158893044249054088181112900264782133939523379218539357589437067996571081074235076822295675140209847887554638408448385668118635542613978365759469040957693230155838944750389255623434506213087064520599058585336988105845232852442585257087842768918513692340158588917334985927044025162596458934235113998588707960528392053966864233887353317371881954109251680076063054295122767108070665486567545681799614581955051042986087238023455247665023352563988229406587284232905234510229415584931622636992002200192983381936172614795334158484593921787821740566430551536417290592927074872707946653927274079460523061639730295552382002443352799276009212979053422192875046561934851051853183574506590408477803810898546021020844095194713541656700925113591272596257122036570487803902950047509001129995865099064670704285633810640976122462975389022616493677520953014381515960495179840542871201593670839732781672563377307320158562360652139886444033878521691027808477365295087823964857996006922320980335986922118592359667425244341937821369718866260243975344305149480396657919500305998797720698960585942184198323594130609405094964044240333802433727538018850403449448717229806470699033181273448309730751008511380546982563694649980608107798906009700615544332094179924865874430949962354985467914340334059002801488819610632605323551292028882326201010230775509315538404739905930925587954299408080733449892107472068706855516196184084904618649151207697091598274741354922777668906248134795656528494280521473561787022128768386355656155834890264207515028260863016699170568323372028224305605362249526751588508218498281055216899994370573136325059140733807121668681582211300661639988130877067635742418920658230709505319794425028769342215701638540898310485534483609989601934087655326446578279554522139708693782409233334484441754878963948833130496194062965661258785450638245341683554852057453894043757728639156322779613050685792533598079704027250224907382889816197578366864248727167672403259816765287813677362315667882781706573029171421842699266451109599224226843052076968896566862164877607211773238193777632869664338113661909674875519277479229095216411428505415819838051352992480143354705768124291656463561936348377979893003057165996926141831527193830245767170235615120316929682719455239473547680984152293684100173746634139944888916711415685963873660831827647919627239277034599453862887921680601190291654217464327972171606224047107198739563048946098162124365809247819901522542297160025686480272517381958756016231440716226523933732762469030811261056436176758211939847304015514617728908835743192521516147924770178904782136064201289023063979112625744419537796981144667402018004929074152613933706058473583615513386139672407387762889087334709272717186180684080481385342343619536281076881175596553264689760176412361844311078735384398633533158234852432461359418002678672105274522588717742925598190848624594742033206744467421471725616465201703225144799345171180168369345775987968801813956168928429665157114581277297188981413278716632892723980641539821835731234376974787960523512913190024202953233193693322889042779174036746775002120099242122241202978939811787899191096351140080387164808332313854279118841029042585841088516322897887338881805841171330288773694441210291951391704845034246522379230535996878207513185375387881540683889932940924334804118242176689168503090756453818645389060722521146016672668494787746113731733757278308292575813220797750419604664342054357029365314337613499210797916997637631471120840434427621845933832779954042443302052776552670112511429782916482224052821396297558017934627924904112949642335566097695432036924848718476101684326835113893706628796150329267908625913692377812153346307791008661229820454047190690836696154930940395985246178520101018413617449839268615610499867481435545061384017774584022016194776900111481340437484339722314150470456617388455156661542458018927691393481658757710595852933232692700449477049679968506750522722833893759937347785625260285810407196257121243224997880523342450965353739707636936566061964486275361105630014668280171259735596921136248272078946623113532530603435291031735525924559730079061595012392542354264465371642928965308340211041002385224450492392837188324617348018441678794811151754714352291517218191639642210015402683208633236546196099888625083695593453189210202274471958231365768417651956537713092212791715707359864178559750605128562835797995360452193051032930984994746699511395848893197874113634464218270710563454337361823617574800778499742426445831685017140929459232449632962985642197674747953158352341289038842709496685384843581183057390869178979355201212538034127687468938755885806523108816476497182133483071981294605605546701607840482238488276537391173378525179272907825490622043574104914730779014841896318997625670327524253243909284821770191972837880109762467313260719461004873621161384925807803322162256832129475001565457055986295219841458243657183861431573091901333336117178597380296644906268781217549464104027969665439937677858780995947849851172683866261552617348089958415509169897946016530582042760085736564502366591350788701318398519035531919037208632286046612161439026761280613871937460848905767626042950547703964705486144598412193423963799568885269146511453866500032332231436411322248361586904635353958566794515969992438880480412738453218030476996563686239366608751170213386077672416766080148572113742062035580715697440846988052173995211117810134234108156081325618290462938689884152353000093518065472383386979329111398414743057466263938601235380801319050341854651164417856098683187067068525887670375550266006640433044288682161480602313594971398360993886216531480396997036880286414898281643478899555333170409579884328957157820038075130634524398010910641745384479515780030536883106624477838553147823470592982552311576896315977811216513900045136564077843475438164610484389139084899996400884937088223867341827039175871558633463548918982330618070758807646687630692170017071675462748872355838545284646102436628017779247030090383225570336462641617374746564868849965284505518932410218443385778314777707425587064184702271445486626228675344842083711029404876396865986469022377556917046027651042752041960373470702252128698926088466534800121252069857321993474897301604363152039458363224105787446871186178116061387948515422577811485214119938907590615561606382458559230208171579523890745853010446944146272258568650275820294568804985915898650692518439026982634127667730023352611823532633446014670226242446758681886167391710953727627753619476160043723043174924960769334437468534220639325595683172073939696233174228775868903130576466145094245415478333932628836588342242161970135858558812337271823337653114058990259647771000394006627332076098333781540096446960185235646801736953593749179459144231765990565289661546237570841691567801210687969995871560618518311980427756268017803577604747944555516871000841031604984114546649056065022718147869696371631153861946180095489482414142652278617115284938174331462338877364624785971178122615385589492946263051643509413312478986948973228171822409841378921546227985813443515872050686353899035215390359708496262455759995899550169222189862862573997581922295039823298930612165894750555514920752566455392666632581164015765369902042487604217164923875356431654749938205182571894044675417258155962496285366982207704869654756284292886762991103378720930433122480944142616763292035015909773866625515494312230137801694619925133124743758126487764014786809168353858138488457434463474244914669306474962842499612658596648780203125992715581361686988215647003321622845075685939236947660786173759878768083868741736969423044037102624733713903019942983168125850622175860853906761611344404629626441272773713856028315738149250686114417501157291398306968054451616056020863938376869479792073556792899914863618907916496757086743803012113015147496759335850110143014561748771889020307846059158565466225402612942956164832891521882832052384933895171266914579324305907945686976341095458058221302951032413061327724396424448644618273497426575433732632279429987428779477960506464446884696650779397853268816049701708321541613045181468668303439090060433943222252192279360926648942492387928598241438581490534260262695054151271741659292250517714789720305570834691808383089970370012648117133329796686918458071122145283203225702446891353299506105791673256735043613973899368389396253535455240209636046779140807952283171754793813540042937483336852299148772097306695366052819415708386430990839106788358689831407877984634112383338214585947910291390739427073051336786513425977498010592189477951394850394510006103521265634785598605404556247229865688946373957906250788001790134249328185386590325712688956661635160813291797931812046044069324761013984699644112334022743970004379898494227254692837533795009025359468623743949975397621736973631012531205762327473839065498910971431736080629558272913764198887619960126183292220293979421461696883173314263746781398650453710484664675934585100060988998530873340233960358574203675750179071404473066994781384128485999723886063350924795665692513827898447308098048714300915324488563988372309054825016038440509379622635831366532085099176737236569092095394435847001376932001121932347825267865877673531260059058488827502172837323500514973152829160210629219849944506900322658321644498064001395078624658484279201684778599050605332140733895398647067089402389407536729568192014253502161393662861586923759109125039376451850146776842688411917494296574231571585673015197529544497795147503399903883048338235546942200572790740724303523279356491103480090377217863182967716762676439531841399005702549966084249118208481164573005022921763644375346737583787927003997366874977052408143609279207894475421199156800745639227978779964115134763426366299895275255256711933215166282325298726112506128767192470507357646932559126054848986918367081738737310205421080927644847624255180804724521765485828243372207622407140153172122920833306690126121686427392577830606020616698892344796726119235072801159714571997695597653466596423365596391003796083917486088984680415855792856134725091683997726810640142651633252782163871387306487207903128293955300837046898637849856196593222713585788587844074330523259989555449543171441553746598276633123616577192412510327698904567058504255253573230956651908667077323754956329962473723219003852639457454332728792611178262908134711401122562360608995780756045615107828337994920060826191700502585579178428828789331809909795268318867185232916817633916046383595534590574336064216379343971498499894894382275404200321909277094498642576298919991275096032413574082862886928774521212714956327163506248945891396902166813385303093789132259190778093533324109762641203104654077172507197127428828376959459389636250606414095316947686692091466141951847431395175154221054213401678819404052069390730236394236072707087061591911838738617402988948573131859782411242190254920027084904379610609404826678115164075704166129872988827932174057494770527117000670282204046023450415836994016577897221295089149202637172605539013898927412305279565876579302968797482562165845266905817725182971527061456285979255893361974825667647087001292266509956278749696493633033420327668335255290147538107836747652382092806230713772741622220957738830246644251777112249309859312153581842071930995180776426052946179151057181681795695601322564533776834603958100579409574016384656339176014549495015576312152396813255226735577546987328766277625170314559181614495073018015432768710853627282137812742156153660826532096818434524347666482138936971462644407600180906920174943812830667313507131104729382001657677239947555785371824466277468341639078047533554916293164477370262693763340871449790963520415342311651783417526802421774013154431103418011309683531238540220917992734252467827476303182617348157577789459972269269287964919145873602743017938151348296120819491020141400008042458807115958811787830639151599172388278529463944989078702317926940957288996179482182080154592667322075662872096314567436248587394324972360118331736524439461474011508526956340199738083411285990157154236698609347681288513491000261395024553705771626572932505314991489831195526556563987133069299289923509619865321402303618375742923691633970317618051135586178798919459661475246176497720911140911215335604706621326255216416405083972594573643001932415909175634005884847531120339727793974681343585178433331826851700948979132089348231642166868477645531550929872735330353444292915848312743808964558057814567517140245010224999700972049762153391833678239830679049680487566909981857460032741129423705182240905418373979777300656690432693836069115112275921847639811035202675149518503162997961571415337052412638530147225876759537949470648667774905304675614401557670506973948297647134100798980067552765763061916142882620784177234833847266817445479369199396008560044885484886246096953810541054788500529385790537524802174810067503758276419690792394440576697902943585779043212018106392407378103071857981064166731180167463184794212800768393729876534212346820267229526223178145322984031583661248005211944230113499164280823894173811579912869643515483970976872132950669588449278375555397945109666572024964698652691522564819853341567795714794096901522668343384711391159768995501385884334460638580368120768222379186736290834009663754308764180703885054249010222466666502501601079635249004964061333754857252454579229885412491347373910522693323712938033385886063527187368636762303689739916998577050378388779728497786280721309183333709446784007754740926807028136924767503758514055954476133073301098443711818863018127611670403059024834889346016213645470967341311021129885243012602769570762894955365789121848031016320436032468389539628167690447208651815115084477946143737697341761106210981871524065104191905938468480372098060064332752180553705613005689374983307646548868248937003885117853379256571263315218992364266802087657751834261106893773203936902351746113935359332898223178181376776723750058869056543888526813423773059823786689325633023997721641337977863963697941645664302743934307908017835103815944180717727418462747207373452093585416609454156468969337424685903066973092989673860088837947573077982978747308723694626495183058530894608079658774542246848127805867247950192741022312017922235952010011634522306667530657944790777008657532941526371700214692196137207789571268738834238824067725938644133428328038768121837771126724376310252769654386518893661921092424751897134268095500008962617015010829241947522345971325566492881932819551247760187621009168394307400747845382225990700211392961183219079748884597114822741969012413029288592551154798472381062521383452540353166571025381345304154573124928825103876594135788849217747588892564134473822199493012461854846777280255948056831524726276877236673086019171076389575535692676568240575636826028590569117223051756498981289834971655287329630390634429707579248395475319174971866454620705558942002979654818426094690168459377599004598126237364001548692369698147023672623489394734339390498082268855754026497181783328641249111514864641201499953197637520030998646934418381518377822012443634951001057839449337633942813483112167235291817887605369511162314888877632995446497687892282011710793424494351768120018684108536816797153188051602616925409771952618830025189715761520834538977960299587770245406557270709063543542323719353469589805773575597748322827910243899274369349493451625154446981869183847694827111120501068250629867076794361120464479397680843400756809219880225326541094184244606781177145889085456412344975489936681565694761517290169356404741364981492352126991091968747464311907885066239631977226286751578082386711557329452879180196118083358904415178329981619443039584322584468698782703198732314440371959673716987160809206063550700508235846277841507284659476620635567738574545909387184400593353991003121826438091447683010482627608486156862693018867370423819309028483365080720629520751328676225142096635289409652845576489648121143120672931945248076030595607454153053279425366214933810360614060855102819840373495806697801855547504305944582329694401484116653625052214042775707271878729812037323638176995438647987885193528637847500773848997243187301983154782960756717526451895735097431380668510807480339413344593061768709482568923302903503285091203755571483012632853152654037669109326840637025247164854622048862714361854626150482764767043682702349681619326216652716003122077172634092707479905476759184992159393202826490097938086134324494753798299472133815771298858884563776932221030120565155645252142639612307842979302118107411186321286769028277971316577814696160111107744925501006732341896353635316992524856650832448335412725876712872549755981886798777264083415890988187818482230265212795354078661279286191194080234969331821260334328382207626875865899129191010267686319304871423614053954753461339985882387754050538673298812700127625472347159528866523683798452111494291189309667418704319584760492592919852269512067099180251024754209664762615516514691040934040471141494810189422691623813714306116356388171602068216902595909040343497666887225324150793977923520210046946421874455174982022040823946747368377687915303866692314279162781951480479431823669091647964382845225934759113451327124213835250297602378627123294358734520565683726161089939197057904651325455373269987201270715410459070908072495170874145834445120362958534766666469338719005797051676118017253351899215172756479570384491852021408402439519458278004187511897782426947719233809690868707059842911048810580399328160100410360228149198790003439735673005855071599051127587200528045802644898129736210154659286952313033014609040182704890855858627209954895868463952399116774533470770334880631329722041070253985283918264705222439232989076410329920110592515953916291580700264764184064458127217155525298013381138697334760709577509329387472185911086774117345292648311630927685367567907778702609731630510733396994479653711450857956444261945918246751600098160872320856506014226438992800909857466342073708671740888984938774640494657060264237784072750432539058677322302940271743794968985326026535968492300032681602272063428289044665886533234623873759709678261953880927166415013012130250821584920469598974924566685221455615707212031317836965450098779852077851448975222932290146341812205852424360385910976053588024311543954561990897425932884801628532843097399613724765281786137612600122243837471816408295701139751058901567739256712274272675310158788831427999774676170643977554655297034884030292774976725424802067590199462871339519821707411268573235450201129701305855096417879459030807029331476275527707892371460577295006354620445590870726959142574475931583134635062725984596845812560054544886791318374161243378650525885280529889643159052064918320342550790309235491330383742888213883207472886113819234412394912148322657052391164710678921170105649756322783191643495458715214958637412736397152598253506993602170382803470228593461433325002972067485591284907086061411820782654489867747435438640673873358999889836933887538204306404429314769551484803961947535013881674304518643400963740135147043928750575385280032114189179401334221835035911361662370624004078198714580416421260084328644904539195362904610353396380761407993094758967429390794421269491158831567782485460001089863483758324367708597236479140196174381710784541955278866378008308097398691979236952596109408622549662912165259398505106802072951718253852471945393359753218249032990851288228531329251531277058521624613888273246108491385478223252359725449281599123506152614709787971623873386611278068979312273471940150583845546878580901038433721352335631165556388157797044672940518178091077688534327065442141554300492524807917268949381677154323779756141898342590543334622735454780998816745147957710149078465630079228645308385103593548683600953644826156308619952285716821733869203529450460779282339932217428118054791365244199311764228243454506231594275398938703897310175138442105999000100037386863820117894373286694800447146316512984311544732990126043485123927727378652118732288078200811444902883524029603726428136552613207214905771332033650399181278970610409705913429499354811022685659154476400728003723610766882962833351831499117905595643861020327773584755254421915944039440167264070109689040085810661034195222137604891785000686154202719522165307718457513603126062370395413659306011686011201869879976561418897334030897756393563845660345631460207422693576073193046949253669866166194428178947993701060644468699312097205697666885205196972658351756216919285030780835250681837928463335822538724241917171111124429050973004698396247634985410200149038576251541419654959499796754997691449087510339034024546830268911969108690832673402550589806876374002590019808486070203066732669927779837148906078652774573947093312795956407679994282016307807884577130236939204158389472057924635993337390692685617527616034075397897950823636070082303081671070164076416690985414673074019939739745735509027521029047787715885760294973610244184675354336719343630073089937374381270567906957005136350570047110359323492536272728179934146707023851054226629446518926364893644996350488303806706862707996071100889438517981308177696215762933275104497723275753000873025105011066341263979531166027166794329686157531776870398582767617090588580784541117807933248759066952635671022665952064063807227832373216339979555673765420718447995007575030098846888838230841711661854382409149129329948519149305922273730911823544482068144991161983522707124792910690312760350264014974857998932037889302956166576432711050737762855982751231464611881291269363639608525580394665650609120991300683867992818211981943863596335159976218800859013870976136500871808894743601832159582419299623962358176433512468456129721081605303555554604054319161937979314152066515157827153036712785938667284040308053524648225533701161725600536236662832229954891975074735653415192783000487929279073183909370153197643382040294547171762121507493784250664923213124583793532527240548220842825976001992929129694207993629909560271015882258695752497207686347689308959764643336260764107139630997709486269159431099157443307448958521014802557456606436351354118362812754324213593794721799394451061689093739974358407782488271136818086226583025706960275088452928740904425763694439051420125490840697999575313949956003238986025473342523178171488694267194168650129052121856288675811608292878126824979738202543610052401576398727243726301836800119381173196375269809381137581254739936383766836822974065187629597225599167207584562036738285539527335773169045098271509516238791281325268278613692755082287711753761589936252849747249815669923684747983073683860722176680175542335972814723204646470137152110752343763353757094006488667103618003221972654398130015824306371431058888420145565832275231149408169092986372941800398679547282519644650601197227091025455564269331438968267819883769881875483047894706853940260153332224927720486016583165787771347674999474008838666700142252383698938585165681009016813147382464388847431417424739549797235783640241767908112125125878277277142040969757413966598673182622945939805332376292697113578328930186217096904278080499683668123938851073387367544872678463227651926297880941249492274413226688809992018049448573009873033770416287313683125164157570966899966533803622019850965046276052864257780580635712733208910229159065718015344108713283554627822621960074184889997119620902668686040174578767780616420620225507917994492000522480924426869816527484826074343185085623951929277449055812255517491264378935357275669375788039577225204559142701051294724943424780421659174781877534706779737693267393026324030461879733509236885199999292486849238542902601567253243844926295192164499161336195842045512544992824402809196934472154970005816988708433791035912759066433073841916128000454695869148451043283772541408246580672074228362340634379218670724684479048664171424791250431346494908119130458163704319175105898302940422447140291543255403259159135196902140886188276103519695150357616091693715996284634889768965795311389198697092505054328031233036694427584465187379215004381342724437410796928621445381459639023864436851226622626684233330236782342597131759802242942438872272044924938745372085108950880638767450905368482935114866245028682760649853895696234164489994814189737926299205884130442070162433755590305783692851519510499299485589000510671367993908384097093902390179005236172585421347888674374818739044287606067536152243740809238693309141479905031912676187637668644999789296102909414099389166117540669670549229480703787317313518619838283104451679024437047087305313853798024437628913789093704178834399945792008448204830398760398759893837258564276732068361139084690269099768630080523543269836926456643878586453696939416117270299101461611132835463785436658319780062450239934574682905150752319120732458503423858101159879323763855190365388083462968922845793135842698712949678122072140634020625326892687879191600972892142229340381261566118241288592226535231431202752434915171878241667713952884284132017935959213329214116063618256303373289247221693307911832238082524800036154496177778136942436147212108316523072472861791954035129963938628190219231001610237001017653163080142415744363260349772288109790899386970303381919469315653946182040938472005028090534231461780026216745785126102369509585272008735770890416535112807893975482407567627527195480646851156678684285900297203382170858134872572545665663333914675435613800425596202417507256748691402176220427484050185164667682126012407550168764426000567935257612951456075439719297583555515422735186236497597092952249527418010949718381499607447314627004206354701963791209136652297277923129843392658172266732006749839392845493995239193302632707781511664387276127510753797045617336369171937650474898658634191119898171178615719670625092979222684820521708148019028999759429582506823746945452090433419764612209341447858430000390043070617074352525073680802991047460402666460494614180965107159965493569788237682345199582185186528676339420538315434072798297233617220476804969430316007948496536518010971568456685212872694794802248720998650018976964480823305382135165310642368777107900465838711889306046504619274648459092612717753101957543801112556208768154681521636664755439807186668351663024250678674551289439859872760905628233536725452060395317757920638017746070318894924108265540735181812476851356896783743961629578428956995947458693928419548259614908367417005147470325948892551688198696663223560873279061190606778342254268320076267025983616811702241145600656989052147336332484908292368216201779933557403402133823446220092073774197343162181925301587246311445969853172645131765462293202601683481018935916708482509464828273053746945843927458543053572905281854391442028092288732186780422560712176734855844207384519505238696953312341389371840866795851661512689200557279595260096943844971488844050283803994997380715798610568886745320935181421046686777231245519276629602986719238046352512720446500855637465199983499380753361912191773710206648699705715222237956260703020239056325516832226611127485811445365296744543777756875209240324561693554374186217553738573337353550928916601734278989312300661397621748484400771486808505851730561830903556666862317153629923846225139747225130976923007811657351821708366013114719969558313790654051134773048983581271482324234084137989832596499423957462509081018797215567381824910452625459527400868621731586248898119286879330380248392899979906665846922586737064419359178192165221347340988265176042452688707437975920869014760334575948721681595424905046754998189751112020314630240899770742615599428361250094091945951071961774334644787411699624612512562924186014697756413413168143594334679428197674497091606892676688271467560389544141164162496568567971260345329303115663038375499716896468012661906396395739849501658162415409681276752337028797709732267800030955926729959575240359545722832609874037506488781594966742136637299640808609498935261458345316121891588513939204331170259384568462023288833337305589278689457890889085822287244075921783349492170617424921641645760888001786061038785634797303763912065922480446059839285416068598651653557443098892889220214353546546996027948182366273221311167358215248059859963826270233044616049690937087160600811909067705291631930953857642581501744724138854618345591097817757807132095892819020445906676640106733464559564314316604480467166344994610865944536798149260950382720297632002253766374700993102936698074664628029255215788488223922660210846414529610335426934339351080961369445976286251600757119702848294961947523468374431348988928574391784925297520497218161063022809883408119980720550659991074623595843374098168507462687865018314803905474846174274152454438984254551259494725876299810229189415533533703095789525845773768121542909086623635986708193511365256970678133072859505434011785934134105241871866313229037386014953942818099695894001056521767633140348537828243189635501110525170746226947669402779280354734072812444830199653023917688988959754904141133555688484383262343849729894047539823861466843269959642985014755278686772105438949226068367704984070524346007585506385722575138273381464584465711875360815337816143465178333571664821752686207955780403174257462286093525602534787071034255522189413408266251233765452434792670467778604529269517521730832649408528261375591710103178216954900215866378137817068974534391148289495175555826055492500419913964621004666597447091196865271510622435056580656910787969643464837249127400344394615949245538636266264664664160283713966984615096353528833810697077857472168905543421417138816461084560460830973118328304795218643418366981705797100235436801081703792565922937685970083606216732643250795463101037425070900988476581792240347100645326294041367486722822081536025579423692649702760549284469888393037652132425345409523083132762202195840503932779251401428422243087067025704561314984749828975566145934164890304941387849768951248440200802333685047356694504456416259964227161794975782373914568965914657653611665150658621437767118762290137352294924745168748445797785556795273298213014919854443592438001082852721974318974917127167721587470878454637107846661665308129140070890991745451151043606567933821104345708550253259677503832166919004737732365990764517516828580349648429595068634107379549255109836724849325736699224519217960344683180443935834522603046918239829132213913232403560878933803696921779790828307038140131155575676385174094370274006485411608440024667949134448942092827713483543481715399445933180425435402282236015274432207570950646513566085065787045616345261830571933713461811404301512155112122334176860173258533324591543033658769588765501774205103269466110413940648014489202586225524839800911525645065112296094094361327661712158074288046316187565876782617634616956574394381245740565227240750647298951242139928166152299215741696904086730430130091754539066066524441208918182393748337422773928844030096272012820119012451683708642313256030903712708520044413126799725515098853583295876311139391782661581205174652202935493605088528422141352954450370515381916358061765197213094917919125561490812230353988532425319835323203315063806188883114175684987862714270699799353233928834080334547794384911769404638397370257153775659824759555292760975310276560890421792253273970816798263032653824783155213758017983547115565889600628185042875858780550014910158044833465001138278369240546723496833516665329892891301599663039689437388980400464726947302695444089435042381918709804734629009784725133899217240109206804630152705584047536434499122041658080365384192968023559049888537306757487185344303855424787509671648358766725459469098266402061612806759736263711308424196794435064673172790762634300324306649146790018650719937358971766200339859647844165779975074268853864704274912787480863862998267015235037815679615376914567980138617962936799592841731322888047890303849383923301707537330523609885419551275199722483788820093144788278703858058281265194336452260994979556332382790351346240195680686055819840124705881458732902704837493729925233679633674383227200730483755427752879666696958161574085900065879876469375651014037743929236607568171195359794148337335712088308831681032238622541038909343673606432191273091557660964925370319072495460222012742644622215718437162648575803251295898113938611794730239478558737120199166327210350898954134669156090926817541083959206486021689626262512694024595452619459463431744718360415903390852541917834606580582234117674949457583934775706448332351266789173661548152814117224771615881077612407064983779696454264299611542860640056102719401795111998608101087572146401314301765376164680937727630963895608821368234436636680739515694558211763515500239541270505158358137883583665723540638744847159496218157095056218913650956100565639871404974100874507063259798912252400799092514772657747015328715200415952292334087128982117923229011591856239966257853530534790495322716586223961962135455338017801238808372220174950901253076857263246680614578381411616129848782210621331372562764866302923849452538459015148917544731430925726413250139130169897214348161236944827181464070435273918589061950668978487773386665969926488274825923271287949102984907681106445138365651415683119589134724208645094096040433345887714454225329128059373897667590935366177293134280700019803840634309216474413534228172119245573432028040981543919998071954141436056837392093138654655811526867429414380531618837624944529647272929543800269835429240524595373509392351231280057940993075727843069602994914856393840268394705295460391836607227179838812367806472247024273745768873163319888283318250294240088000264236399353862429609660194698554500607043782355116717433871707124740981766545792743179335494078128548869757401454817178285080840052628040191375339009508998482021185689583786182508526096007491241850144898815439121131175743277863741877816344991723998969711572129197141906065002833462044822781917496515950232427553400522478172852021992740717845182487925812301091736025212372614942492479030950088185747938910499282554142942704617588998424588369244081516461959581836341911895469169263156213612578925451929428417330762956352171227199878419454685260437647696732938622513929436705411974773566414670521717953940744483185248062217945573799849675606442966532326912417561807639332750352014708710339774023746738500437897457431035371919609960622881167199843074242641445980808079403148489918050784819599369069422059096929865302150755010420100135196471149566460926026854946566324663172603254131288390594080297609502305149515272879740007655319089403299880744144098002089589432281311563991669320604546994776290306356112224844441123022150135690420448333493249058800584748947456390902908292639132604749133296637484001935035600281588980662068615023907609611747963082622054298551183012907376271582841671242929220192569176023985000909645599108692324718295203069183582727821440516598725831387200629087756502105786687870821040194498475154236663288414655675084866599306646197145892611885429451103197589615559962358560377225388792598858490103085442570916975179475696246163608792062637276127822040093059073200165184766444306618577118182020418776567773306017266664272379606513362175586794990834701803247880206505817386419722370613483763096156825929058292495592163325007430886152788041162846938346883965366286758555842999123074869817130145907450124744922081089034073529601963890712534943971141214888252970542427083693520611080512968109731570880211980954968506046917898481899344175208240124585042259366792873082323040993754616704138885787403577180899931613552230830986963766689491236919970879929227859856441884935223780502856082124024909012213919925954344966373709821725057844724243372728027649181587104124962576106063316712680821149696696306700733598488322744731865374351939001435928367062092170680712300156048806958718918918717919048868347627603842450465468993562467221794917290975922453270031323363885856341435178853146031649498648076734860752413256404558497133824006475501634389556039205717260697787355272877000520937592083520864127539358522017108904821612084433332280473099236688094207015937707305466324929705024041683197352087318955545561675456999388103322109221401936502007408922500847531624380690839351635574598090208233770018561361961641596076975669358641263775768211316108011056072983249020880140874589601189070895819752409379329195573788859821606204908062157057157337815085595991989420958296272156004958963866263567503281884968155855392227321404973332000323039780973121450686555480654758433434598727060462365821579245467895856730142392388559249625625329632812536058596319166777477112488269695875100099609951532881032174529077427967059594755511858780453156919577725888747761139729595900982492524075879820521095915656761075102515146820462755675378947367599144361946740703440678693354376697205922571867270670012666711648204213739585644632824583461499559470270320086107056389478979451852692057286945968835093294438310834554522775178072263287764717182575849852124880615144544235807545448453152387378743379636269973216708574646999636223162709712295165560541802844765793138139408888656289275364911616312074261093572888536194236266086480562652916035894259946468451334664836055025665529087720469063751448283672405056596732449667591327246921304655157997681913876874901499608882917745921494025460605123407836104366961467599462486318732037954157639194935561860967698192939949604059317784578286186652418700733733525935023687115957400661967123875093720240241666414487460039615225438765263940011148400616937891203380091415890195978805544875846605382380092363087943128986889498547846986981944622626654579436589580596730232976737010447721637777190225027468273994397520854144725709234594602913403694957790732035611678474836019720307715401875025790390151981630096960663108898189091469369128846704997461482687045601534637594659307620247271362788461770207755432473868289357692940339601167363923451309118695179017281022244337482961646103839351687597198107665508557277525257341471450765713205826873716799924317124656112626663478180877927758603316623784652541502147203579550145761249832779767962336419008517937915744828495407520237180771716607079239007302520225593563697415672685725291337070971000732433749757216811962661259102308223046320042874453185303882485591539146973060458035162952762949154614023849585560358910886942763666524119953999485912581763869616566658258185031221365027726794407610913927975117081017945673528815654362099081055083128242213877608256936053139240751212209937468668855687770296025998919609121104364240080521545724014884613410133359634383196297652985992368866165496392669272138296012321487047111101104085697021079498593022508937543463286820651587013418973890666917387028619759019080334363884474724915697878605553769631234597469599155180908013569329430855415880229942614356475212770415023406712642006536995162679455484576836298812501227161860903596599056133966525761431621643352423751542420261017035657855453584959617274443402051410764295499218668638113235330920749211122937047484677634759312193664711754890908999764541609332503584228939189589403346073909071661499877824191996925783478268726663945196807349510477143693700199780705245101993560936753846242834680947956749830051010502207408801952313470668843905385417430022587147190062481262764027274574322509143845884974043637758474221112081007706004406239848605596128156981989222200673723193752517432659043098091589124881151322402666571189429272681433531893632414592936475223878464354597096337596989414849218784985550298828551134535655548532229839801401670142455475641943221375789603112695652578956060506922097127781853456765220148594261021712746988394193418277438996148481924295642925600709538863656246132268059503175057955044753361410765043270476467308541149274035598137207349354756628025443382588763884147237705673743199391604897635021079757644309274812886507331978825511697996105458080103088713814270105352173363582290647839265245341995159899447306470446185996206645207064843626412599529800328494181644245691584053118672797225035934545538045349825052365130452195674904637825223107003354733456162816023744708959657838279701955206650173000106358250087880517639897527211775756972010132044925014404498341040162135198972742332470189872035921159411985434258920178892247300437232891998164319502031877479347386362623309173437227353183012372824338846481498639620386363224875739398730459817192531342321770299118538625841630129722185792366086577429320376520152959468087159205039856798126021246158260858522131728418858753852132945955855207150177504149847809270178524389156235112322831832243303317493156485936618667700414906062771697802753081025507581849306859243288670095819533347871365797539927460621160583011699151800761878639054765070731414326389706992712599729054052962753828768124522415674877423497721894271562828105247657501519527895044914389450830630690230930293964853206383581930124556259019664493524476410530298048697164776383769558118722625811399989182793402161129081199906168602107924885758459565190795865888526694303837204790900005155748058853242635172155789120757999716403858745755124220141556828957369758304318339483173068852272497570418178371469056998661421237298670469467484152398840513870637040244465633446138330487256651777334735316497357668503355855029727968595592267119292151578786779225523765306025629909720876575199484708833420334525534270125135530630169031283040500513584953581824403331119133977639093399930646277431094597966174705839988178685619382406339500866117072811748706935167749501698689498663974414011110073317331103580596159516871095894622203159782452007999483495732483881577144529199151088839536023442432401772021034895316757006082566804518179861644494787307080280226002111610289765596549903762325267719642295152098986905118838759954023620539840126169245799887020360852850074735770140678936598973388873112776479852548967534975980564902741995364796874034399651261852550966475436901951650551902124137519472074846594603330977701832499715758181912683477102186200611801390311528808535900329443507315108266528404662678879987785652529615030785400027889548194903598566327049503440739302234728378399470168603202810909330819055422504376156876000517443143652787752977655871197994007249394286580712324662194746623885369530742663953344911205614836954632383115903758478023961558118403421232897913101068509023838216026662048725386472536256076082889448031137886735306709443728808621859440497084183492473689894718618330364277493573192378691423485738981204898313643655922941936106651556415806197594202613177830772603033175497331910326597667942333094055069275362503881431360681947469426282421200566358213068891015610102779071489105835380668423960993155472005172280183590572701247865332766921794162834070747896971076622066558071857704100419313013273893465027648490147753644338162243690542664179193418740276078923186156897986099765743740072717426965574386152607093257684718618869111744349208448617517216441423868889278162822565712129200064342056591378575129655034676868870271645283545783644252191016449286021784869858447266922630300833268298712182980785590921039659673982845278659468743514155630780570343244410262834474074250154106169730379043658463095370868476609654609164260611936510956940038971416034345480966024122762458095659884626557766241736203391358477393416386598689446887479181781512522341594148703568036820502893694483524272315001221506095430023822471291165386455195060873042825396868169758193269142450722665871367186352296308081140296660661852497364902422420293765860201545833602736211866950574763053898178404084773622155792967365149700250411872371579290826762951827190847935070556608491279833200306298322273189673786051977699020523774118672326580428741562524515150169909554921724157013359634921842059218842840009988798139631454559890423734525633642009004441364666569708466483632490737939370777264612983162231535783409188505794003356516248347569368472220625166565415204503592596719840755995408014577149489854198459791240113684316460847798829755549793014151329242227448856418380251456380431184378108904860754778224562700580267068371066166168529104704567291519949421220321899724091873906264651610869067693080560186638147506064177083357479456389448953069933946198923747837965261452084793392407834819333412162682076795361080788396715071193261602292384627075959189914865206063764039623106573129801832718184700403715707925256342722870781113022185472019291773384017495803154881250229828673560511982977597141310482791734661628372228804295168354286106761469747475566755571917421814436741831434895915799326309230289599180916540350233273967630100986554215564165243977801981883200082710949405552542611892964876632561092000177608351051563691236915383516636194352540521756766765839207084922903935107386822771449424966696909590798973131011082650173745303699426227037154310057331788517094177280945831292184950895245378925126589724736112807029941179131254283086292101871562629932833749767661533059819663222161183351613367494168139451908085096449686763091890851673641114415890130224305617075459610531559893928890410691692564188293822342689550433237425602785166187465765896590155230264665614278073280631060630449529803298634230861064666679487377083059106657654183033053075664927908395909478579903698884566195262906098354403526954556908263902331307540147383783806371336490093876565572365085555225056868443973114984108098704761513023114822446396573870248170752027921506576554473299933866705607052040904140017447978557878966957224791334918463965184705774928822220238431628411205788043696579983995712171466484055378331206759981489945215692354231696568826452558441788096259204646227632467960357081969447718118482594124364136407401808826269810600652299741977679570290641530629107446425633982704883034909515324446405382021011639037995737946685196693919775386191884009547733455112893058472023540278870323097824612483166247280580741546113003868432896944872571952915153160981800228971040948403485972028841247307552150406860799390825790692375924981123729325587629763959516983144363069427601876492289853871032961084477731307180063289094890595731104944983316960735444010003239022401754762350123448343614471300894133041735175674285064748777991387618055157796985551694732585645872304578381804471597195823253801955340415039025375567739310300788461768205266951301745382686189748419553011600475717629889478990615458968003816330377333205658226448917660778089739395436638154309014248863565269357324269381911739917101643988612883242573030074524388855498941067909679305743426228445867745067765249879830064590004584547181718248097084583506779380754405589623528502932996028164891148627325892707120644224422005165141285194426200402991000967861653488245591533685241322255992952561720365614254142305522071320123869558882490071169431584107962560410608564793123859651201081064354114137990233294332777452287261774420687061803641086590761832293401589079887497687382272378600123426125961274243563855598305372503097134542797820358924833600329628798579188702101424012334143815007036369252469309701318364901467791473055205882760604609683802079239630544209830587355450066536909656349015154524633124359947176319473723995855724579067300956535909619293942945239710365104898171067300728352687071481839575633746804052399273230766508379191594419057343836241214019254989464083696456245826296877861751724568408837905549296328284684449465259116174771181186758879047329012987917970381466093352440811170032994115444205678805546564212169462152724590148896466588659858198207469474507192285651985816188314651006231945348168302480611084385066415957368370470840091671369354076238071522502163432773641519048197394327889611339236434587209400003820398638001994662696405085499125742752319296908398897897038166379125852813699949112153489421896599354027250159845440069975778845223896561015474325649827349630860499542285940087911361309058157747828991281108209962490919378036061336170504397480389030254362144511249179662418535057020627397056355826336362151610697669472736775474593846798918775198168637293180621319477297771456147225291343134120912149525290733752868878442505898781937437345427317967497691237825493090080072972064443898733372580923479421007233263602075463923141988824648372258499118188410748697704676251035948350027067656220599442766990873348685645774911195751528210629361097724743111386507031510003817493710018626630981203261587439364939740984002451844426298887583662329522867416971080335857588325750713407571715328623523720941818520236061897450696378123787932023164840755040450012988964214086326753368377273611598523307759249026502752713331713475989094497861117584027509253665616442275308749454335329794011650742884500766940047756013015494174094728857081238362995195127001182843352941548094510813677887983256991172060544821344965187399362876912235506673644453538751196766945267957189864097140696096514489273953916498281567062366873207687154478621575712659518528136513696063478210281818694906223838059215591545226077210855480201476923265059457658387823868409444531035918986539466518437539392601535694851628778894596260262547238129691049000193175039285437098353031946645547097696502313912227846540455921470739442765548876333611051809004964670151005054208239664314217378719914993403079511943708186652306632399913131888606167653177899238684594414676584386088432250758667771052196560995959737187608963826623068272908898747894981982594886622008337589091434801631146958678345276385436357980677297024778572628978312676144644561041052200900234186089371504598072218955245538538347089330732171234155818877408661010057424696449989629371406086700390896685691019410620890260862273568291759926710057314266408092803414479421749069092950053390367839740104783218058249590853808987564053932938152822486545587493778369461353820646620821349849998780338786940542828997767332826386628632090232649647264505725289036508437496421568809477703156252468260509943106431132423991242604099440903540350914745553863470641264291471506526369837736108394051739377182029077066747183463858726539405364370797325529937287447212806003118630628270725844123216069338934782839313470106688312406684737859168838063490737293735967033334662280391473798928523105264325427196027559707103847318850568162410698088282897777380620390338671284167501067572373890348240277771964850597012292610940203207474240613187541529314786262703926383070643796715461854630105821715681851495873806317679130419674973071691104298690696803134193731133963979186957007606983628953527609149608797259307675156487036113466548066051590723153248596508790441283595004738022271732348131740744643539583481412444213697975950532099154559676266952012567694224303773965542009285460745160848158894638453095365381434705427385749946102198628385813192717391318188922593000989233989020680702305001701811549355994736027105203997726852884761274131902400037967201292613488089121910607135603299531270266439926240417544353765792424788750564726131777117493200955196581749177095444212552234530730312235333105035381737889413492428483030253847309688743559189392240577155634648039200579525694585731775899252335253681361156936337260341474041283292222945248135864333870449781714766981105110965685023985989512517811009979118846970767776308074020292621362493211781183204224671733300769283214965634063396518511140609458450917634075333581337476137152210138328565852017540137116006555759757038516989752888265745569887137203009301870516971966211902930442797421064459351294310016798586758831153870174075638083689944446141410617846743068361047326730198182050170983628555237719055931080857419599178416775681947396235760967926483475973906641232859175399881374303431864517346430485661065243009152505814405982218691340381848850903842528910711101348136458593586786311252814719332933470669305751225592397075598974601130716583204070947025400756480628576734676850206856733880477980254194561849094716712655457805025415227967047885256991051731440041883881279354859362353815192664715455717134642115914549629271521005908958939096076362456529211874539451181815017906741217859636746423104285175500218983605695517757220039250283611137875378269442582240574611961508679700448937627849513950040735262676173799425442132718769326689409959060059230520200023509494936926378680935217755783178754949544484504742196523883299887267691538057220049700470992359028101834150228349286172630392031845755574318625557471705757052545164539709456019008706109684997139935230223701357187877736011842348158591667957788108497656892310284319662671757041598136889498987231879270440041164729033073821122129140705056882912810518098529914894633753732045554803050295309919101988202911373225275224626363331594161944882002025490891077894841505088373553360938540320220564860255610606508206211790190414006322234154529030031188940690570856302906154816754234851957697356160322727947750589605539249695378892338278506866557686384224477062745947886677370650745111946513593071258967814825737512673969328781560738546813753310969725159879468699708772175010300453703657173384867416810532677893910632687236698108570931803757787535678274221004816893651868371853239506344143182995219430012608550040302157751525368246159894422438317711386396449097980452892062497237521045509389966235398109195260605318294699302903663971558700640297845546251613014136228020711481566678629902539007670559560884380693436504101601812705550349499606169510785818798401316856033092238658966607101241657804585558980923370257919823630733683841697818717519128312870040822414190988033585917226542638700765751111849086943991198569358191614997352062055237880582808141927534456750323791032504226202263138002957257075683101261980619529858804113915961339054312905866571000090413582522918557385210157620093983375167683287023372638962884235171537689715535532218491801975023463652102229901090661123454111604418939729877723815073717601721887719217960508905919601970203785985957345030087292991852262760047155648694765723311031784846084507188540604956303971945341508324671207162732500217326720461708460182713700417392347824763239376253267288789315027113985870432483762870407296421419175200001100606478587787157403566345790367225877152071569133172319678538312413178660679829435667243177617904761834223829325455442029741533781043333832750136073261762946341891496593709464049067367067894230097733781869765912425598446343992969768580515401566514791198873524787793595100045890628875288562951367687151538155401945806158386897007693389996439003791779445739086170889739485984684287285653168685636689802923082282848544011507127717889613844129218869879614855065684494836270891092758706129430527719464056752268780031996016742036782968417252590084007652543379624604151665576730786822409937340915718500906549946925330650709523426993587976070122284554644502618389794642975362516872327638976410254885932383682431528325540007771177270868918571843197018147503617381125103377400432594133730173776017472219843975377410762835366574575748864587297240406875019533787763744675306916242372464835350395357827177928088664677576535536514597200251001838823062493643407401541002225846955649547694212839729686718119231726323104135307302480011869717072603436658131245112090422873337318081938461425082569473139396727422503248101790464259149965330107418906813726974892668760367283040356209505720018880329848082488908072126403257572075317702088134000637571378658289116931914286228095391145531365564908737538762507920406048504589059041171123037806125622607168857493545913710817823337083572845981353774815874559889821848996437439042252069101081352399462827634990144898582226999547376503873907886633556297802242249550064194183862394985230559613272431127590476656973607876056464349550839166186309784781855736089204636355129905510953547517312113290928582587568254589276890348767278059873273521571531148685038394210942420875095275373673995705913999273688715261018907913736533348933041031754040087254332220782135908390859414529041535038385068683110700056761732371587811222442887290126730538520191779664877507238085185768742479376451571085713435362918812745237661278949393119301099226749146631989432668356126156891994590517439979545489215926456108796330602053531090612666078313825137461996039356211171151477651198254010314753955075177682697846502750920341605403926161853775294592756944310114963086706405756380454372914976191374451121756987821211614023974152906770605089760620363755621252221246048215906762419474623123678524493962465834451982989565741429390938298916991828464899115466794495667576707702472508667182766949960019530345404767170544706521898369322975244745631708016472829184042837687908043526228723274141460243596314374214890959955311797875028448672113174415242691020035097907483144532892436403449482747379905283235178362748653980629189950892675796211958377378566650611948783317017908307618693942883403472509353582913802950212786681130888274847709393948092168586666509566182673139219172731790026136692608033588741087934260379080181555148580910333251584986946512419310791756668573179934077143384905740655403480107522635132900948764944182934239118183585908172222515786916007041356600652518201959297406506660455895579224991139865649787896989157887290929606642063880211288591580253174900393359278600924914291780137142868863455290540732135160850219596375143708564103530991118993374516185503291762719891049356424185546580095660715924791700710513228991853749552911330247023309796824195362252123750995499601876871267843509590852672127036594006675248985397040209831845123622380079908835360151751229484269334674671519013874205315018518920305030273105299651458964844323402185279771556174157424713002276913186034215625699348852681626310596752858131845336565865246872946893388552674316063370411664590612949320192785515755087989549014485887094396655277043544158672179335560629446821465706431920155401819606788365047675676042203502803443244847023455060333564936355111067430613470885769035978437446315459423132521988624118709552997247078103060948828959304150558749737574906214810530689708177778203620124238033036504315186958586820349870318566655314580152733220848361720678223350954934645476126862394187225108535893679024262758332343077595649447516408789448529061046231095917349769635904930411067093762729973268867279133892236189400034442155130858512665771500404631005023299512445985536725536373827936990325375416022647299134438628775553538775814211215051978259280988072122128944145708189100790882923685400331331604628054895882015274473447376232638255293903343033351153308066114627953504940971554778940066849719706558195713477662963041207788199076637790295916546066536280917773187780196755390327314584555806854896148093819960816158583344862038980316687851816644890032327775893168167097994589383826998175219758383880424633660830440466243699076605061067793533020556291937149169405831610150340603013909916192238961259883610386504263364911111776665075248211396405715823390613764203369166832830270222236915238816014200077872656923802552170047720625307579794021032187346004879084692366355518176904162027172613729580293857864491380418270256526940281395200730642918871752180662295173415114340496817405126515657348665209304523470643239464530676387371485403562608404240176234801056142157111748593410467789668820089356480279939716133067853405431521130024375297278480490220911436632628877044875041435583155571138934867600558730655254754838381479676812162056204518972302408023374354725391618029263263382033402923761464458710612589717804286936329377274060813721685715731738618485822240578991343017696348691829879979788617594922377861895159988182139340717519285016046905423992445246906033541689303863823124033360999378385362732595298749111701413598398511997099009840730712489691412093856071724699374416911872404259805635380384765575801918341973791119270557965496900826724741035653274029733705000556761085057509602535160214151060443011937983907611663363175272420338758012754940780295379405136019635578184482379653340472510765740393207465544285507665684085310742562785779074256489546961593036643276437359742329429104520840954632779486898124853258288789746443852443542710391441647085922835160450084977708717851548695913002712097329123297852992347550111480970804760735887957252347772924543216023277583117266898041546906955904615534938583977217654162802925973833204065793447307673792236050669466519362793388659399753193169663703262518325851838336970196963005521767186447094228013996987048965584779749713993977322808519094954139302929195359715276483648102825938540371367909841307569034775464371036407849895370193873740232977692987229402893050022237185659751724447311961007049255277536735718560447539095076635713526273637353018854392557889881836237420683275497243495681978561022757189777632859361998018242643938050346018166207097488545755404203514853112652005596218368931421615805424266416489480787920464500690333900788148174072311645070601653042615225079654308158613317510445287680064787896068866254902833336800370379292155303988171545740476752841567861980088317926369260508848796063833657912626732176328127886717842259280744811790117451022324142553583488127944978780956648259707221572330642856568818204318764870704841229642039668635705486520917977477335826808045709290904985137568166341420656519130527009019856148656684783965213549193001264413925539542956974130174675960987825913132579863198157471470447171794694662909883482972917697847088723123298610780921547468436709832347859946805974451569571485379126324395372267515442505503643303034229312908415637656145260416543708416576058454900940082834879354122411490659918666190671761444931087958992267005111354510501349859515326914612699754218150216495892156643650036243826999025931545993709051163288000024510735001966546146873747849032509075505393188953650272467371295403214307945995920489237172350784522474927166203021145096023242199610925227282120847214561256892718129970938126609680759207674590358544920085873833633610859948354394699201778173092014454154026878418190346751606241379770838196601752034875761476162251491568573194044681831146373977098061412179742364686658890579983526351408722792715627481200401138338623013993151070922272018791621962859700186019977629467131524597456651843761046919758799847627027789356983891530095952901014247765848707561851212609611054312387376632581126837702672922967673112506885915224417260635423944109825249982476392096335818328494740831437776843741113028435933017740318303061552375741573525790008917096497590034629037871566483111496899075215481250928904418347545063674914252590929632553360327295983542112509093679154211690470981356747394915137466251319845896995905341200981214021497822324257289698386101802444534106953572096436957799860670517408926514911754959313498878065931462974040530637443425606028994279451883951395031078992011145320373657853423119615262601267676059298393822028381429549560691306697680518572240823861340449877974743904744223953887807224752937247370001278327397990314656840265279592110428555381184925303625765857321086516975987055313354971159244239803685698440645848741629881900183435080750237516897177924695857026229784734513548289759495092166102811532772140580825593707066714002126912279067384081953765776524951281118822521085573196262734702266932018426628451221538952566235506394360291218948434189942593427205327384161640008813102371831839743774168421483959092489297952142150857166322167298222495082522275074729218255419209834169004332078236351424538272553077099809823837946005331470384528752684158170471884256300060781757749637912083801364879900977471001782798700836762180094967274250723313692786202714428385659602969078433724582538320173954261127052446403524427841523670267106293142789888912905054953220633402200417007581140835596791156429601727246044712719299764587926815497602612899110641112511577243106018087826285827531962843187965476797338928769874336436056448757139271002382500760545798784705190396288770193729211373656119729556502615391090313580833580822748754090989936078997859078367961857027650686500048131646990234698014858484411387666494078722323267207249134846841677680382704289517444569511593464523213503213324888663977374977952972794038384194310993215472147505205308625170981987678427868756800421843326497418587195854381843893268004094658775968617479643835588123875033569531653474141762788422964935809841318027774345619742409338277453649275795777823347781716652571710550232048746632970880385230815164692081469403329192962755833616736440997995741205132788220414531002287153347310815629540729422288998302943828429955506170889424719691568515232625958074259188814418688399785887278238666450664027231385728688400280051545928365890671779688936196887514966230176800394511542535343941145257264929695683236125643814557880690954227284814710598061361590160329471794612853172809641465752133256914041642063974917737194733611690868882258523458199083023418157006954036838122582282586271604031576979779378532927748909609244613179059088503906733100006734049623830353430167068356607527156249609303962527596859444929856390504392941084071152291105161663769972854223552446290575763500894898364881033317756578459913147333638984192559477670545017818837488118534385742246266176251112829956534508698853523549117675676439491958753142021135638171154292093631283897276514091722629004672164774756491115324794884901141646402469865022033184182176665450779090598777857939214741937230399316916004485230663962133240920420134836783072011146196609171157299009144851040002511927980992686706936410410177839510765104097341661359356101271000069928027832130393659374834086938672562406668860836015681243493030747746414851583165740730266711655106145872137798255635117353594390176327346011037781225944827665690111895128081664518247165092520532722892529858692468785120341475981894743487803587647212010570781419934129748168684819035837981593812153614578269128179142664917616455571275101172566118424445738205719348303251433953459981414478092496230552162771062952763741355785751093366062736943383840243948844281757082830325230017299681239733888391896322967872922812529385131683620419893936340991569758509409155998210598559073796033629310809663400091720140785264248924952276254696514816414657763318384999619082341348938622010515130687192193544752299003778819508458962640609814987393390019001680988464509578763967951399343101176244340317577962829835006310032672699870806458351227853799903273489527674654777317278952061452624185821297016527829151363900179705385086218460281017416399177288509648617703203389476387259491536246803132870360103207105001557568989602591777200130478826732727465432592319458647797673586324890365636026767623124499960592624667173438500275346835708486144960246472016050904100708761195044000141457414716534598546980156186939597054132131927639472142418237604597134530615698621879597415834958739346914156526424845095447060006952953304295257442774283968386627061045432764504465696858243239799026938740186822942104173838348771618747478036250136011085394379387709098725041658089106697745057464839840291586686194933909048158162937591284119158894171352641393185580623626425940827750411948047476867947116747389206988318435714509365980926552391539049991520473312285216817578715379987819281426584915308934065391080062890865565525971529532931018622539176507743856566756730209367213308014006784308501779596407229847295524476487005612443227194866699816058907022613190713498672044703444527575375610511725863787878049225288783310620110055038280453923072648949285861639779074928215786624074400767749959252352882408865621380221357113499328622031545801127790327736289473655406268979360240427831212444109544807839047312410528361187336804981684900044948551147770463946945268996446591138262574579325379301425180173357554667792348355892392980775300649324817358291719098911820976669580466870278131900436838318406631929826034342362906804374722709072423485323703335682884789210708864090096732223088688359975622435774378649141422786855472648607334859974356543925263406271948324716383728198505038670929673057337765816641514414823171143707171343613768305398076622342640815148691379398634003973122869514984559559633608969609500612007383783515123838621920345919254752146839726669677582630968310028963889915463494434404359334572469725663372732569986026723607646462999496638114337363070766489407795181424250528205188099899568914807604126646594731393878196934448821699038970719571565315449720391424635193042570087762264254950140137245725194087906459120955060047370591067861099114684490473114760363736652597487358511477814981574895039772996978868222739090312688036709838757704935958671833912904826642781457639707599062589770441963370601903260623551143994651583596365256254474674876949936776002702065007435604234823078477163532868866499916395384310387339805205949978770970649057883218875187618405876631975533208955415388166917407988356417752008605084984310464655607654253185488924936408679523917288676682780300357240069790162705067353642492090065836225056326064636027365271642060945483948233293679191409590533272837900713912836721182441240122053176129089254670063020362694498607402899538456293453382675091236459306149087869161214748482413915166139054601443611165611857105120325298914169758136143199749394142686142305998786562506242157506845080683710809382585860060103931512702038372463921763296287951410041006002761456128481477596418170569911546475947601296240511720774034654747074191389123393579238402537991246568840223033343158040604597082904739606581424346970653580193122950614107934103002093313367036467539939235862742884632377063577211438357629629359945482718061533658046543793039820114714650909659566820239417099141317649926366093186881622616538617832571700447734297745797632954685027877672267198268462273094410785082815115910389178474210881217162111917829460838393582756905591263344583258850629644204829414946997887479976837627875863428004915772260392324937557825479307050554013818001680419562828354364266112110815688468058996639911961470886022458015984336589809161305574301328016470178567138818842966969649445736465597979201746622589228123545832808481680493188525787703023111661950526234974192287694193857760128381701324722644536592303364800591982972938579849461984367106942142689482053466420037055939127672687990542660605733044242295590018765107189878297250724981386599660296345816873128060857931229780881202056077845479705325202667233096580994462006282438669248836257299437223696098510489895594707133685314769142768599142198324622036723253914861950490473895776186421061014902461998175838635987773346500467698031966509170394380029311117667914227871534979158356291072277938464546675919137044413239587129014187646652253531275025749685711900893636400026731793867936399532322737800494471455376297109623530095389865532175017266255997111981641757146034153905138651072631006313301168416746354884227703581995137361115190015472200632647532778123723715270908386901847136429778916806732996034802676380194315100664353149832585036765256095430000303186982399595829838126958745763100432013295310855705640434296555454684161100868535233615895387075932537698057235589510650763133986438874239771949957424695047504902489383206907647548059886288038746193958402380771630992363174299634626390139416207851092390436548708422864026254596169351548754944734078671443446509756451767577757736999720157026090617219580149809177254143188926320054955417626313886800697746590499929442719552615333133221969455186019517416106510399905140685332711777680944468582613129677109427041181437440748885121296007509863291147108236301449685255922650286083038481275656865178264609915327573179055431085264869676705517885419070268683367978113807806713322702526910922349568400836726754718740276069923515017508771184793828044363988189892678231807234976008820007262084231732419921994976214338176663197680110105724161754693418166914874400756026208593041335508266530103773450960796885893235144928777501389497436915193486657481514434334530446006888180068538736891454612115305190771200823726655731701705936947737556571325128602581914700313031828909299533147553095087920886476950055533313519702483850300859521340302400205680242526737897753168595298926780489492194255509307502014534160696518774741976541188742977627338776458298111906555932612561422556497256715024359551189011723313186273628808485296132312131348141271740284841275679940447572533104454259775283342685314410833495040460509324178045889535901321337156985809711562924761349409323825744645820408960274839974933300544787604229144114092821853229650288157639343289446781665681683165910840366915700723637076321154762554315512078031169405960982872465316253011880917451522139806218174183745497162600207282750961801757216411552287515533617685539733794456342680634429061542423800703713039258493000447528894334871115468875291307811485550351223356475275352644542233071796337325339690764826912844329739459319172508889910894371551060281238573732045531294305409118693821521491860754869262519749725687232579517776805515725465087237717528403550547992608674559257649642652563097722161663851669891906897244137688828470193265329336879595918007269849544548934274249986337947407625151868239952177070004217504864047391039724380661370679198463249328140984469747742285798347253665024244188906693032417304335982719847782862609027968175593907227201011580421640962227047514221466125652502910769264881157722325237314867355895269130796733813930308581392431485439688047761905447686467255250210428609243308509706668266690015556800496899922337256441649096237133828652839213505990008339741351068228720681204147280590833405486235069426353449556214635311544947129277087997301542121277282936363974709256478123329386276306493348774360978769510709355504772884897102535081111029537176106208094464954187387126564962271882681262071191632970369109485662428496363125827841580654521572102452403483468078645271117061148959512458078258383149020014241486822983660166837371330814873591461522952767306058957149499124584447649723076328982125616552720827575217230828296434333309211934856686380159584726393074656456589951440797977013721162570463522188790703463889815764918611827955838651966628798225833173857688549083854433535222876127518706624503696974208700286120815730794112337122865024715003559554785589222541712059255343744776494465245640026484778102290171335920274947062805193280094136002441519886643217243198889873546881042051671416683099353964326833045540703674126018710081615179766135885493346147048674028356970462964243766821144535324636158774684230687572508617936178433414485744474270682748446001617430964353356904697761164960402868487376859735941615894749259507094721327505326075759901480529218317018346772931489030091344062983106041893971603392185301945312481557064433413039844684827190960076141299656278564346350191358580740151299082825549205470703319823548220548179285504574336164777385660161524191090429539906197580772311548131787869875133912094413625955194511903521879977469419068727139612597465473178364796560799631565576775040714015127005827734398519521089582335903378038273988892204969275757946620147398708567511140792219131721121017138483656660329378426899122714809668953691770091675878995423775870326843313333886895343492221679432362786161380537874439348491110807326411119450111682587593541089485578997541800841745337297957402673104262881581548949011629541975452735576056829167806059267654255254194667815683935223216580941668494531491459178310007693917947850239763244354097806212853071081441972058369342286120615308387931878497042712481217720141516355760102899282118641850587983998760716673402587844868850379830683372196812834410106830119633881161038744039190576825051568797995290381837294041708416585060698691805442773587629463242810053030845892400280589719608561730391667435129171240788257732127822246969093125392885076535655528737363740540697565639726950636376115703946347713622690373133825809271550117911179255400557271063584306419888929360281772218747740152494220122948770140001823877251615982112365659039241895836411382594325318766398819471550407108726005533706964878583349998486234073784740239702682716619201711039442190136205244298740419155588105693897452783325455048777426710426746236184030554398935615992024456460844663772419946534436272350846447491300512765992808338006470337716922850200989184419663005788456051325183193041266634240787974284731264763532563191824922511177150213677544710934113602964996309114576244332863946491645478045844955452944615232098546814592507375764708461466268238038062157220237686857268128380910204170239206181991056250925459965466446150456731237069948745708544480944833392179928657569618630027237052763172849961665196861907768045860150321174377484584992840477468421906310938907637988853902800825897135848488588792260690915328440853525708525377772505462313480748953507442635518396408249861793506782989565814215335551271962330157877568665882970700160941160075951619077465454680859115515623745883491458211488132625418749403649989275183569260329612976286704046962853645626913030381483862432153841140574935776632313753358624714089465771647571103102353360972811674263635885063237743096027458024028622148304614308688888125309202586135237848622417851340552997950262635500113409913700112446579851126917416317828496138638025303933991384922427301792360741330350915753160102938685082011865558849015935042881051610023646061239621012506980534536853958258783573224198216055756526341989644058531659838005006593517556829644133950090301224328690043949077577846844901775774317740504141913252247649761957528481359362259065842795946557432519566761148343984924792230715489654259280396464926329240526754904693702743707329854481549336207616760320689927040536827208966444893271932309771246075779743901854315803496682197405104106507156620592305462267539344509905133964832251092556367831205485984304305125843821304941427200206331310524044839164409596442219590185479119367648670094340616135415327503029537460832749487523003691709444875161540337746194684822405765020986724369363699648362631919610619246503503031997503499435418767163850270940530962855164777396733139601229976116092012785995146508288630633015204586228415506832972248019255945557553534091801600349031624919155306040704202134611128571098842531143013788117778190804668677054027953842783374713298977190247703775589525964632267248715751712492463944679772459848408491603307440033320824597462945587004747850104264039778315179892405478138722934105497079333525170555389229360530302869311242355887762921952311818413048556124726588517779644246503326996463431176154430513265658248064935229917371348090587926072032853147154440497610240057983597555226648406729269722021570198289372755850505319071132164149868916099226617413413530203693125567200488503359514237604503079277423068212613912349117527974302600901317491774468403369811786970261799983209953249696752711669052069793256005637783615655453561148570675581436106903580766640954411642888414486267721076618684637410100735608481718141020240497468960458212027640301894682740801327353749702973510851597179805915493652685923390034553938779869689941543584016004243205814959849225024563419522299431529525464687956697800528773274547169904002747939729756760679639188249417773854038423767524128158555741880189724258270375737159416860687617503019489617350191694246534718606362557057594446258412564542779810129512994399590194348727363183552904791119342974439431091997336013307411269655841409389776590992028103259711476033997734991510034361047067880033863213916347319613327724220683008478435030443800300994675712577117227830159192004430558533773882814065396243216379446826724369673315029309126648385963577821517297106184230698958701860510429557383730047439409558930891362107323648112838679602132464964861010891946162787910335056957006480213570532383246278940705798473917065629432270731329494298928284401512564517449673428402420897691344213596092059387881539271084016901476585360374056077436875726860786988658394529747643940862680117393798001217634933385121500171978381214695015154637880524438789208872986108708926074177722685860310116290732529722227349176075695103334555340298716735667053487124523300534886218034747743156106714935360025752599660933477943112398976459800085748843257313471558951867782471181641173789956836082557118486961441665574365034972367289451191925499003617469064033150998140395994292081470730561665644698828220464130564048585383087778896251827159381999459327560449048210944450901538905651113078012113844589498393785429203129607499290293635274314079178439949522323551014178500462169563900614283934290771222387628617045606309255032206554104995918509623297257282083476383037955703405466625953167557205083108204902259785801744636631455796277946942549680228796059336894374759114597542200391238541424521909850682677070849712185653394352598541069663222134891685080858264753881121568116767577966938478780552807434440991482573054822717438382150941336132096011902820468851520263162852543763703554373070187950234209175462546510763065548541024875823823762649874601403413346002003511918220416732935304498310675104718639641485027055958315197750761864469172148067857103042915810818194941463538390240185536390732713359533425345428767399821152053730845092343436065926383040683308004272684905153257821323665897285732129198489551641989917446161263434864723981038830281609750820827685374967215195926629572141411544581602457134403966594303163735562457895060922692955355428633754909102217577247028317975252942426050929196171252242116995758547084514947721620758122335728097576602591995195064438103240218728862544484174176835949299311423251176507919019361709137774538487555374761372024519719723877816400348199354133244512288007111743311341252890312246083171960795275688192707846610731246305523733992136227779332785751539863430381100313342681377694844030105031413160009177276081207919069522316369910153358746524277706036231281351709889527157998027789730825722829659632704288066106501196713788154238557838844147582618386805276495276422986132865213896718903647481516564057393485526676001804471915752894721496401857819217741578198621176276140168711078702827466206958998461563379724869637546582413199161342196088168646262689249028968727673443105974882935084767407112885866353302360984841271058270043720842421556231362851982580358476853604411532979399861847334425256580173665540827492102442232286263682182094962081087048908545456620798323573195408715515937153372040186716090229659309428698764574845657613529612249461020896277816312916982950036084709015699254675510654379657905013432292920225063673045885320345220683078459931913477052868745357499089060431492090287849594633538500906270697717217295445073183364298308373946769045464183195386302670203517757544068831451152604036403041222677240037856554085987518849835922774070204245597956390532948929409906094463269506020409308094594600500617702845675172363531528865446026158946664250181908795565826296828817656699019471949693329297343362884328475192374102299369950678723964922843428630822326678635014475632879393885893565636784083803026452611756887963162421699448079428133176228045789164226706731258321828709938757969585207515958381947466676250293283011506922456642626366984462800757894636654128890370205659564389289463834763228367417492400505932067131984336989808176085900726078476410446652237120840689519562098678473462650506507812773846594380112771183405295327529824642251633177016848275737050915698363897750014018446048641946515260503657093246178013146243529957830854616341042491141510871163081923436614700048370824805226383681921777352837353000854548306962753914829628506474582936403991906166696391336394593392569685805893801329593930343356849238621676628711306922715802310685158553344024506400050874639149143315677076836065630402519219592060924814334427266374287958779696538727822300260464547334494642383915487274755792464561606024722367066231260076063146039857072277162587785335218366278623656475974964895694588392831220709974662454593421687917872570496121794859285364768010475087506589445079457445253238365819618985544454025601844156867848157419543068105164767017610499286947922535599226672086531225702604513565347377254007151986755941871084093817929911398828832844117327036359080563001526579034093121015369031999673619876482955363107816158723007095824480522324410029369601051505162826646981239716781254199937438668491660737891582938756175695406308411025177176034409163310709821623599732130506044647343871693765487845789511311444132700887579105475802764738949094857984324194222955170501164296678414691052516780332623400507607565770792508928117370240093341450922262869232060676643282490848992909706732616482062551398555703496893047269719032431047865114673495736330556639682823346657221232847597051322957566399519001503757783158192007293069717338699470258158438946215358870361212162701683707170035780342168269743041665711530779848446320882489676201120856708695251194027589008462847303366124852987145498538478657861447153720762621525467610847385966340722369655541967981734398786541349687128680545475253314339620832192441707340575365676952003931521993028493631087347144456557799168242256911947924058933075776756560172532812767598077978473842750779548893243528996824667759595584854209926724360235999377490340848279555265858083342212210793667292082446957439521865245669048979459456117155222931834101634370991233208643940428072313337843877981914357712698224061972260754705706373364632432759771897008832034659708132076106191761632263998553668659991164065815751284632824196831945742142145830758228195634412554549001256476208365212842967173398845143351085394574554622967175499630895998614492384282774132951943789398586878295992771532005833402071825633630877010928009117651778947310263603137825788065822667337655495377176667176015283342475735586013402374139713880320150701358012905655463704438503179106878469796578251976776394113052239768639670114480090838145527967591377302668696839796666600818203511394084054064720618838012563959683718409785214301401060389186896142091439260071089074758250543336144274226880793641306839279353176015184689497125535261894888806772615330337180136827296027158786479082256568322263398000910280906627312198962321752594168640541766345055506044468977389733811302306481872498866136187490335141104033343680637123578110179908944983865764759166811937716669919119600590095212115915460681080252407486452176333596781312176686687196934097288743425091872489824168956159055694893827061395149608021771616206830536852080371508212077373383491863226406699110776145389422442379602912826198087723641685560910285811796620474996002877573531611891074129410180428424526274578574869408003167411258203029431394200295936315451532945345556792223803620164616846158410674905520281708092683457433897177482101607565443069983323237717035655096595626148521660367420395195929978823726295631886888764768227893236998867261240657789113882198351474116648223014029108621671514913596340380373523335755203555343234482651167546955818931055344313559983282985109669755514962990097115235032516524917537932402711581230221052399105691357521548909451930310161014384243160408389292171758008255579959799473496027827427049012160237756466259016077925498271782837969713460374474350052606369359924715906255939460010666412646010056287716369352894732609521567566130940842121109680644259887982607762603768483108535931034529662231330326337606162387278425033522770842973570775750965390326835156509597063860358056394070561382577679935176371903589726898798039656585357543374320929714024701382174186653333102598795018028304894878211929295069292297059565179276350623531255789990702438085651980714270582587962281683992780448208891044279059229656856253825956896671372020660581350441704707491907264135503573073716960590757219542407574310297395895489275977172761942057324780987098370389905278897856914579823202023493562469621126641172227719918939819862106599837035621711421818171257915495983109762119988946587214249882991654032914416679958700097527636760004036403570718407657344335012447168816198660530469399020600501858601499046480680746202041193112994605081087830997256076877061724566250874683170092964611187728237681588863618512801044326846851344390312401870536115252029223841947048028876808936095514382547581669655606827496725713594311044653415515193771058177275525966191679900617846452365886612407149044188015083287578014395463711613058426602447001589159030692031810198012725753786806544095106749391707228214902842819787338731917583156195958950948115654530589855696097037741102627265049047874951735094145797849638288073858359293951453773993128183622221157679063608270888700771119789299965914746454761334407083705887202673051925587938859659738686608765655509412802261820273593538054481219483815816888777556884614615839525314247022557363838784217037403561853923603970897825463640424674808626065122513216294488087446497875950389302789725254951474159968844644444849856108448012039085702703148409413410865763567206559120037087255526686028491137583949343827607586820878712465812434912997278040112755233418965848823981054398146036457118083639241939890239280925862007685372733204210747484558811675365527067987813061704554298320296617316201237454503208960623444360003968042520418083698757154090552786241720009676788350813016986356620389699208794783697961968215730398489906063789533019294606504775701317790125674307497056290522916196761827499687759992752784659701288516473245036642577760817165959348448975009192293133952410581656290243643546343379570410045687042117209888270357068004529824018205516053897228170020899573534104352473801422186890143674972471704266952030386840362697409368103752415121216082957798654169948932243990638619593285030275917468563063082881307394367234271046689564176558775459992949130323286484843624601999292623620817344410145023170184155209720532605305164990270017601276805674347340106252193628618250506919436727460656419513177711814298654319731837836285921974945822096376546460289856731274790539372981581572242199899113552185537440656335774893752319837910526867373410566960123547402303744928255427353497782450516726022589164201450832013561501687494810925444219249223416721068586725407106748119720011243328338309664580310965857704828285363725393894467111587170176475691579300744771470259464348323754979753053972374535547967693790441696317503173059656047770808830535423073294844502920590986246844473790143911143343645576058243646173104804344108366705912960782340420030441110504934271894562732010752947409173011718553081681802513475763436609986613723639839300030950503574424988953451002788006166178147628052958296264359321933017810860504084401158751641662136206333900146434391171972376094345237271487916369599481422352319670025745056898495466113801658353862634926418472945514309868386657321098449719058765817550857722849883450015306146633489249423983949977181452839601053393578571503862033703795652617211046629518187829912692061121284012611185439626954643352848494353523021435303204114017875796516021778823283967335691073784379384765294191474547799900481282909955959737522431004615579348271058090998457018990098966972282844772305239463984930164040604068988833110912336101565585721278905804165655283372516909853501823764370705197303942387285094514407409149411354421431417094797900244885503321763108670882576504633359877149512290071713514103206883817126789330176981265976511388126879266778020360617773621366522536383838498424652534232775917363062789499566488815515511038060566274539704036360059114934358535676751453089252466836403194362273969098165613176654140853506296304290958279004690288369683354284749461224821746169056786304229363289880818379227059665149524188485922693969207669856343307441818152234777662767587414325228087032158150937227137557678814186975108598630045755505171950287447776250904136353858378380387791605574539255136602991450196792632281425335084611715581465564908745144789040931014581114504801419820107729187787828571328162095287966353808819403473523255669323217088958849925625945388797636647950847314500392062054466083870643974532548604511529052519549111902734672267380733986468885953027246635999941785569916588309857718616648768927226163838985996413041893165099217304156243376262346137036436958988386606688673895563828361512748674272724722838258469444979484846393808065395451975428280331825830399242553213275716777260893733744428376768610611961306341510901521941320710177184046405119402786190545272261000554518840864539457330138231761631869951172872693291722885505518164620076906296548754357169489549366083887318318411661239434099012949388029450946054315912149444764864325526741251268517800850821836713101043885171199092581711106771421918678489025265063619972981069381531990699942694989972889337213040426072307322028767636373951430506637118363329760391427121638788200851619708754117606174405836573053190695725166537861807267175770066200930167270332734572934557371085552847334896862857550859362604027834982969242858823197636659557609897285434797475312996220050887765692369405662987857221447120756332895478400415272827903388101956450860193985218890372859177283465914591511617370381281984894795129127289157955482633382385875647138729743383787303841814823540294061836201430690956989222394634081797603191965848951697208588211948337858888143376800083308772455578473606468407871689750393737395993672494553961065833995962782634672695066191083930436188454070177014388972768147008132273643685174249741910385355757742690307653177870439597943885851840868286845050396179456994198579574238697298685152134319717237270257566239708839129383649156985289658477545364540176744187501984631613776817349376667763190108243709722086198366950992479921121156360752237483136128236325028440967590009490142870282502900189606739362248182298265113249767447727307397317188035595458499953690978980541592559135151891848644034399730136045911236141439912064775587699575586206279283287463285441931480701736092083979616479219399542484385031628740436211625841336476228162702081843982504377730509299173678430265584916190261511325445816966657532847173950988741532328493722132401994788107651758358353520430909481308961677532596399369054944840659820711840334270972887317744307581363405013078580655736099674855817492271253108658555865329554387392227439762510881084374468862687603025180451734969630313232915371559980596729627013926324905129778532780649592970788661048410171390436767198835003303537070822010256176655874221963933031528666484905706470165276383397418609792800267973301270742724791908533906478655832527122341421828208856347592174461556422669863372317270901748939445416992699292249804419402910268931460411974712887134688603372123044784999328191666391686634945839227414257337424359498914635841260099933343062301134810453870154176829931381438995808508560831039997111708799350266986078465852113569720032215308533735929683023884812211483420056450325428098385471762830366155858711641681670675750192243815761975773275941259365302535856692650782629031654357033597486040750736139535170032220614054189592935353899418935788175925637471719290987183189295346648336248377851701126960181319315864488019584475903696918310032993084611061404975088350148131307038912139242794029086463220809754809341052646037063279261924901246092701413105495471799605083977485591167823853945234736166869721302702167477453274458344165150607479639203216254544552541233657742525950750917573374712266875716731655884327465756860439654580022610341273462076559534016507791203644626302327666889675981346942929603088828901212745242657079523971906838381738491749329071378495593793123089575282785015526965366352009625182978924356949926210777281433337279048873006366597067132989218222917408677846192122883263640998690976053771457420442534216923655113783062960958132490531589809181010572405180189904935164086927923801480530476907894705444526468105085714371555166542460846788556042158916046156686087263099694786818860269751523081353567595336130710892051023864211788973230717088221749199211826131378628282058793728323892612761887720714733179255777239609271691989298697328582951698675886996290620447797890453410962492755562373713597211387220218010660615629715643489900342249629491109100828964935802340579410828144602564527120570537908136848080842693331399287309280730178162395963746995107032234588475281458400490032093668351720573766542164485333374622544915964316880673277664247345391977311968714319359534898651866776664796588682394358686669275970482825276227551300896497203526513336070650674208187071436390389718198139125753634595790449548460534464927024680866780686241037282322808262992959388775324485986556310191238158963839928031018769733021613550461144130298631439828579998003170309933998153723682553245602382342668344206859381826708936184796956659484547419679887896449341785568000560620329377669711513726677959662678449882158516770815419876477183968756581468994056884267599608992872318771444512479138564989574990345579724505545873624648744512429266292730739399425178871682326985920013615411880941509716885797210444679687676593336912896019947853555976844307974217183379135104963716003337946854792184086654590703030847335562973183069763733575772140213138563794762292020462864925287179835864497253775482855528331308721309581130670071050772540562113825315469874236473981317192164149882470331141849428100578491543455758063729365614210647133336736568126061995631041808458193297132911828617085026678830070210161892808989643158681025290807609050623438597687016007383374638441871330872134645836681906259730190066302351894607485575035298694796770292215668718456063141885643230111088101392864729975779689683101639225462142574491916341529319341845497916173873452100265529735607224845469627005693295135381487773599817573103174437910982634420615553171326720389961965260810461889393929359157832734583172382276776628480120282960050677143881532922288562642289215279887322606342202142145000039385702234864184714831336706738365425034098134308452419983495760932979374068669731464029455681062750671002670324340825085758802374538246569804440074759585895980863967109730181626696716124262254864269043478627340349296919780272297423306918797847222233759586745127279576787111283256140151638374015444743920142611347616718817432397333972738115231643006618419066215835195110488355508588123154235611209845404686418018294853822257641328720260762995477608648023602304840199048198979663129195221554051095593030508862164302705890258904948343308271352101441941682215306298210528129692320730374840051674279527240284502402059937576359075502387629771226779594445968459195005847213261730810782687274934185653529713317031205034872306067067581702349038568139158742706878739174919923590158197470955281817812207866086608921453560407911286922412566873172279782143431830206123146604032691790397105776612398956624002292220768901823821071971162499965576995438148627324724569949941107090364307216786590294924246334102697836276188893667730085554920349703997989747241655181540216442751596911393806037970572324073274961672626985199975975758460861595490172790449086712986285188573882188186439906368878792255300382407876787676973390630400074107253768963173658468209567611382388089349615865650080038852403829069764847681267083325289260651362964004517133522497953338276099652467002411516507095611610087447938685635081073386072399178417359121350814161314716520531330200683783747795834772740564013880370835926797529682347158380881962386088736585974928197090077639621308689244859879214512640379078258755534272626172694694636994087291934698501333068069702459171018948882024620864335559262902199810859048012945097484607349100359925616935614562374038544912389656596604060137225472311632472521415561225782270546743529412002427809272268672484126575834573345845467725160431103174681219529601450673403023506804079446437860361719520145145857596863474539743840402084176915711194117826244375955096835308126153653428514365783160078139708060163261874295419806732270863575106530251180637481005899832473023122033486651130858381872005379281321477983780749622351142280353600087065958590329859643027842093038586341624008378910016766491053040336541627267773755811688365228840803220363143639619248518407340881712835464882917653240267014799572585044912001374356628255600667390890503060338267195038027074609144057824599807577429576238818156563862817133365042130682880214001941143856209434376657999165021994348479269346551930963224065126239236863474968959704133111053023383443769290762122623876986906483991866800081538827508793373475912477506134963578930325859069492457525966945059496224779792553402276939555436546805030459494336469083842564181250304266990217169209035081360543881566799732622081799647320083427958282470153271223083820385406805080854446006146867047668159501087916024786195331648283231524360669355338277254994545097302777366463219178784407579669685272771148980500192800644024259488130138832512706592370045203896539135369939318322098515745607522695631488340665822475386032745360905972505899122370561305373347588410946024878958642217399095961649668807192598850554470059676429594502325740332101744799188231763583695260553209444334438169857177727401251450135323268489759492085257773467839429125874934232657625720312290371254263750852347031026783175848767635026497139907860990961462573631952118766426913124994021802221450598691948193565136063371136891839732428627456636678556444322674785406776554804234090506659301579984258089856950976845191072508801230573234535466621463828809665668458697899214179755312992813532369731920301987453215485762041603520188551238542784803862811658382433062210293512037375514570322490764527346769070164779291376916151798889263329399823934709787094288442640940742754838214947881460102329550557016157428387664217715167779023488748837814440620470139587657125675862651704673997227144309568327117579649910882018641754070655731901563703875704973517254444823841767582876210577546483924874870625984195192910318695239013407745500612393308569234095163513040876518951017053853450679016282724229177623569318738159833391415379466236993254248429297633319689660558356809277750409437013367883701076221344068142589837748070170797996084302284806706751971577419948641800094614869658867535630154874932912730598716451276988353213485689914618229522331913677231561642083219982318855720466785074974895013901305079220004733431337132537539019325331044302094078806820961056862679842190949826034193927596848837717855610136003283484145451194506123475120014170919568015654568752438488598851024499959767475600386069512852812550885709485898442043237383674460819146269792406556515576335733289968846252019601545423580198281079399960000082182580117244585450639510711215719545380071266129613969864109858513395646411746703655252237206847047050548956986622777033581795994153800674316622089319110680578526580934643449858130407616141741548425580839312547494434041444804381627251007940020015195331849098988025429816667847282091134714256063216652218162104862585978032318036449617911291397638029150119859988993773629753808024485169810873719805198823219948438275197672757103200149620490569958872321419574621926977274387403739540560727226491046213704259747948605860611525011833258204087503884777082899530431004271215964434981798646273596800251014906421605078181673182611972346755160409058195997457957060851782273327485683794059169682143442737424769864757859050695248608767965921074361056225596856281198765826046721245279098471131522157753531526547945791333396979462117063368734019811495024599331014879786762276530924823671884796012928957081255116939705341434197177034678872500706908335385518596650630233162008873994319636943178151366147041113032000210305259524862619971328468389082886291374483977570433496473779502148133098978435605112522217312248714021365934969244371922062944195555665440737999364364287656069998305241456605485298082380673313952471946576418462847991232443166526042067988774689121894349051341433658827240178381952711669083867182950640287887912162909805645301570420587871594644139935485398124303571959209915046159615923423123143585638328231654013964284242664606137754731146941185104935552061011796158939974112169299898452159104060854523436463698147871211540278301632354121916049138556839765121603602896471568797690758720140059962684166787819619466566162454808406768045674021917785130294562808745322481756036859924291070749024373102158694390095576131316671242946120679580394845440385371766649033194869569613761602500553059399346942378220954047630957577392273207987958043899727216845764209356607639303854092320486525550840875376455683915820517400162703098619961159448015161451572835066560269555216959649019902024216622119446582213729988398259664481014580875422210609139511743421755876930981044087057471695938012197126153124036906715511840073527749441197486887202390186314287755178719189742557876768168653419780188321260629831439074262179211597280582742431409979979814983874073972533750446196709689277472180668380744318605926797646048048361979532866319750740477823702459322727065213704038150799021837231248647375183972942708439886578499073362621473216861860253818621844125067309287569547159221277158731739109405292827417149557394764093706329768266514622431344304806157336428678342999556369728827145318903106259571074537008448374209968438842870514063211296494646498915493288606142494769770922322009308199833121019759977408110954221880749916549276709966448556353885894345223432113705907076849469266701990907568987942918442824410161690564402433281724330430679205777442339294519150558529239835722760509431140719155728697559792576044595579188350721011215410645968060243225801074819441770124389034680431743979662540541153064065233857815743445370118851573019752033114904768634110023157014788186643659860018263334297359724018810795143556197709878252487019221697752314163086388297696690744737818993478701175882124564732637863318358895061082989671582509976902446115717217193090731219215089899503858130983563639363865679154341788817578571158477465439115946232592451554968760132611386008853372555840555847977415512833004236927337862525149257478966882742828690330789429365170972450816386776185500135204302495247102824575215705546166494216190218291606615192556529504074815405646609723628556018032338093608459380646078953478855791051445821978935949425845416206181025439574809566890865072175392148695902193828731472125572562512016927978296670076893002744740059703212156758790084330493904903913304262286585506371436936083260523745885098899783618751743171040256445357260179426660285724361252085154524607923392999230646985395812537665446510222214574320813865012915790789120383749870165473405614078789251935717528589343483391516662427751143369170150884806750031330491426830600975505547947789149019303782037075326902332524047118035239714686789962936292200828906766830147133978373342403032123949596889463775645474715886469789578922765238934136220882980044471753221486917235812950542718949484793441961882178471565537981013145859747880753509220847866524859603190031156050354124870289508509618296763911699893890647095134860769947193658660116364526708929148436207008392628609981190757699082278969021724839222129664009670049735717041314846546646136986666686020970969643406032428347774067541210251526093645573367724782765725296356603830296064997436838157771608399191895964872257816241132067429939489604520299286904351182550387091128330729287970370594390701112028273058398871375348690387784232653099387915569079633074657481494862537018671933449022110634242878994101878776883054381136471554799905622684618571984355159986017006344236366011245904309631562548034736575418949047583249425834804209677627561845819158924489549520815230741905521891306940549239794152935948316568131065766296244889197990877024933864100514679409716885344175200346224579880849607661626114281783756702507646952483786816320048684175463972175645236182681522056667727362453591740217402039362105852868040363688006031546192093818844024216928251856415980793760153377101118937943627307600385863745088296347457251275975750318048298830422726109421945725640916568942191686588576919650410264638469781666644248911137547263810968892870541353771006185587147439674322388289270350044737033013387541070598395047363252468795042184618706220776994848506144375791811154084621529227115926762287579314482394272120822456203237747078655075187758121272072236354500208854322398878605108625879492814391052080730791468098503452404473108610302995318001823870287427560812587125633437728119048007260105576591326326041424300705331582671865033953425608074311986434479420525157496548906793505337851437920467225053087630808311521221218190807321801390463013134378963659008120761701319536200904044114504146677844936226683646469642168220898257966917548092153118003349540047219687174249274793707885594187250107548911748052724896266778764922008501525599922974829715061712691296028790760703834006055601019295625388228272892485636372154962208034049849160782550875074120109077311137199440121488540728629927715341721599282057358269968025301703094311109961364612175086721816775321697866833388835646111655129785656276525856320685728489013594292696231036692513954918266840779911338028410870285634506352144705647054400662036251605426641009032834150721881155528413952521706575667735255381475799847310624932729020338759139213917247043889375044796261581159729372031590742819664264977921627419344228395760109875481542931986258132293904093532430447251382035132030036390624769605005365784293183814173412674859587629999248017203876157719101139253149193380610694378025807990080114884985040481151405193910386357768306990542105794135119435584144560809618226944960265329580605855520846742983106141960793376333656181461755793745128616144577164152085553288539509894566301019988025714640094806867534928709782716509713080930500784000471856697574792773254884087480612326660211043216468754159480772357103934563362036768894596552008581707868901327343240092952373477636636101627414725168240854662414172081578891426929129073059759242521174051485102381944519112141254704147225482749741725694907356865777120649696133489143992151831116406379162147844042503489724076642039793970462270740818513679309372202832825582865041042230793820096810781163370528488787503622943442834668320453058357104828412569286012630876470067853622210796519996753530308866711794357139874031152446860862921494013849510887634352823959826458843074701689163568472297269484297450161366444997687023254999110330960771206445743639852870551017193131942660594284241473635584787854543394569680524815886602020967735529877324364785815519095415692406381223941027525161884374749841081083134014250912946171013483765506049051806496542528287175113591166230978018444307869015821171097822927093971295923268166844220915290882752434964953896879113955180484386063913740777424617135371479556108795738810753948619835843199059640328513645483047170967169137233301269631388739909881872940414460840451508804989734337400849246199086359037418161647372082557728802876098841041036009610977513856740701580403206947418655255934734857458465993749432068829132024570139064832630887491951876966236863619356182161724036575144254329023559948362183767319137629689024022904707349275878791314294815155457779139123290328631359222224874926783128990507352222016425321066575380006457137495907148409203595413503833625818142345704785660737493703642216236535245809201891609819828942808872880075797184222277945784675429855777438987822573217617456932922087604105311504216083410847535034167386630829792934279711852626581770458569651366752738991635424828438992655401902651187474328288481842515633457656591330297252657972351945938419556900513592834548732404580805365626593678076996863569344577426776963016373023069091321970200378988532453256576176073757827402627627616110393311322488133550166390430950257925987992397212467043891254194879060607804256141266245503168628388871172603950697886467141545282469112350321268439680136240770701072266291813542699246656867762139146770070531970077788350187012586985257357249701861351735536367808270381521319801754434217810624953552363884239687113363821351313821436801824830431732680939298078950394215912001611534888619680745258254524187805811768464382120846557650273031801836514946990387967662126690058232054476156914225956175586103997009475339303400080709959747223348179831876482457646012872039677805308751681267615490338742242033551012811450741227048910530730764681749444812607892671188175870707896051774526946649551815434573615532168905577250738992104144039972955918516929035830451165316791894583296402112745257381754846779710912935972977818457500070480935511211266230299191406379411374704325580422940133924747491315119054422612254438264726983919958759649599014776550746249371993276583015746511268472360628104779411075480251855531363650804210008328307276906904090739112944998649005145028110632762408528838719359234452910829332573414835527025348525480954478983733730902890573902965513338448815448038011038121854575691366925523211926735587556994850186514577716742970548379447621126285167472103899351633066847511127112523972050670070494013028828737247352377499196864420638688618484781937997479445917146571114142717108169986809714337151634692438070905106785709779769084780479670803510366237843053718899701993311868241210463591667262436411579792532157175126370195136762838635495129197316684672996831507876140180395111218501843291052588518395610642738671885822375461190570401328275592470359029766456114201203782195156461091146445188303124570685269764808910380303981413778871942521605841525055679206421111854291053760577315011273508280493090173077880228340884752859794297581247947420590034976200377972693520292127830689172606844341321614713080260267991340928124080715795732608222310094334915438717709759135201652370099105591409492700325323253133565511349432244213197723291013127316685207366183449279805771560838937018381145278006859809252950427140551771140801311623934894108093709263681398247151251426179951419059231394967572465199388921460684501037308477342545116656268948661190826753015646940305674228252117958284111222254947716154186456843407757717743981175950634589297373216686812399571715446822542577586984152044203927377809670458716963077250550777203501331298315252565835805928958158215967960257333494688471669221299915286395793874161321583328538564717512898694921614159466945568953399094087692768161813333539219179571656384860604496512707855837651719527073362418608699246102158831806021092008994618733609071159019860301501736079516745563337368058989206248811743414677060037411306653812055743304500023623897905838780730280647594751879044856952714144931307872718310181203436789798631438737675636306950985363194830916731463974312275048627875504043491376551257430713080371801559082660943326584227174272130619893413788141714581968177015654016918734034005824521305966721656750375937408361760010831194938835448745292099860809812415605269163384586962090290920044097913913971854974013825229740770301254460967628538442038188637779707406165468044528744258741494690735157208047122031473926160541935196687196244341270056914018198857504149916281532889345769762773622085975394084626694210362451805377231809510727730394412391372004528079482208395904422564753050343210143152917306811556993379868822998808863067040947796579859267161504604355551885577603407281860765517518266782603578340875792317310465842248976955296669435196525752727311562077400190267784337416901394135661932913145204893922815085804472072998711690822669892399267902902924339758684033970885038964271640503821940199656396748236657009643345202988328667000711972296409483824062829675839144549564042204480035480523014499647305032476184793194321711561710598482171254205140138170314237078755657624665689772707520210758863120202257561383881452417366675393302129224452716340741224170716683811719492903257657327895799654068507207067240117520212223814245429761533792922925475564994401984263686974689928353552022943038133196308698969457980346577467025191777379271731108072625774541509107100445323306752940728819106215348128541098389315148449494834932510317504644598220511752358394635439231144810851019894820301278047862572773817639140582459526347704661802298646850796354305702588283169255359240754574859154444893370540385095581565535409371101713958850053205619704550362424532895032536534050229021385737645600338180753280064650178447020538882155538653604171812756134167227193554011762699417800785075109206421344961402905062547290502164218953280879584433769919700475133573600261128616278474876647001928458366373287799277437096031635125313945821756687287542290172040277040716482972989649343749292415437373721139430068195506499707344774885108940694713123567026919935779090676085551897223137453786852957297816037827787011010923699357014002961930995318932471768343930406278133741910548456271827387826410781806302782547401908109637716703527746237359692082071372316302660050915056741444625671216493205905365628497314395458432432372219725504728002544029676723646819850191959617713362993881406993879144435554061841623747919301158840000489747572937392553923315252552308924041386401607029366841253639387256062985442685021127594872998451425994997397145868135073076553005607778938706024008408140607987710658262014897133877649497516264144522311059865333023727219685610533326229015240132251243225472087323015557191685706329116576176048763046455791413021998810510826219228300841985902775219985581495929188228264629420019440375039133194319163669744225453749594313093989495856180734563480010533036015137738954543113880753497624785032381530553073861988011547731964547496865242973886395038896818704440990263068394494807148747566656731565933564246235837768796017438844555372819937446028495338430728649879439883274316370152062849218971389026337729536127281210641251017383048686836347235304245334025572864734829832886345823444218588895197530660551567316780251655586013540543538585919084430053230717174535428717038731361333686617166285175551796512131502734053070742892664631328882074129827895145556072392286378391251543366859449240290671611209055187405035492685827579696589785677028596299588251882398481143378905529694989109606753396205846167800482798165890050243937651074959091910343635922859475521171806500949349297450069998520891986972148912306125912905449526370299071007698392328715324245176272035474527039703726313424176770537137242299241316053941432953524481229270602089322158659733015550160281698106035163143924295352972167748380724428971475121852600499302189054539253452580862802024883122324060623503797135536670874410238767129481494290693432343456270385244453738056101663763063352083442816702302203294217297891301862290416837248290584863061375812709070679958708706808664630282836639154824469306896228745461151057022215847765934353910278170442451559620704278465536300271305673281490398634078642698513686139626756947217137077647173823011677995205783265295777999378490459755669199551593334405151419754772436947261454578373824244740990461780435287357311902608526438257860609362184634216311881472371428974899776564110766063690768286970201732771654459889899431755541541121478985941705005134371119407939532724349647788943202629213210994168296108634888067777111517764569187543298216540715105131566510914946289114891820269467556649765509452752839739066802632923242076137145406049638072297699195532505919657148365649726127234920082221363920910475961644233130611806186037566970525943088070264895481819681543212461853187030797512109936187105147620952782865363296551536708809512920651111218282720384128676458627338870059456997622604759516354597654246669856803389264681025974608513206415936897222842067728740103722551872737822659320833659999450229221985317215410661359953789392306734785393914106478943478038480578257541521520553229537222948670283545303690269894859416897916187128425095275109809284208690161026713161188039631859317553853749250271077341551040797816784510952355724373119674148596965760692441940271164169014399862540853066593809999792544100880456950367659164965930260605908468860760111658317886448965861007128637123054191193743881123375613342436824045061409256948509560540997513233997332379361607485645312262435603820461833938482855430542640103811193277760736132795506772033442944347368450764224170887890046048942925205780002368221949902137729306836612641477668558727095768502500537070415645459747965254465272923328960414476800581079433112275665388921576167520744195464366784071585389376958719136849212015339378801320275850157363184216935952527149114963130352893872126781013175896976649495276318992939903885177358963348989200128316115851633488343489726196552697146333735662942187284827198147391763056264608064327508455436268121939583519560141062773480022979036317998034338404802420918296115231039729953490426975522678392930603966715891346897860597356430370506831626213749589270397415745489951983759616097428894968453163257509091644491114863816299283085577992708627123067410562898776788776156404187391364624791574198718922832789663601830871851828730924641865965635131050832067828032199212913361457296602510983931329251025165015764628411114653995432764983419515093021903484670793474471286652925490683073809260605046897957031097987631799059339663427329178178553612431819310786369142462858038808849661137905884437886644873754368475697136897234656703527602290619436853065839756431584031586361380112768136136032595955839541453255721361243161137668061809503228075882992633126208740535751252563498473026591249175341376933126414813973144199471786472238023790726135713539757316758386556560640357225350550673900813802984042191623847499157519198012727549363089173488006960158010530395685161142811953290968996441375196470692482800374637332172576448216655808983657111760284596558211504439040329790212634505496965966299236342568155621922106683954848227554919746111408601073904288680243360973575419179035042657704157209635586039520370112130260222473416776942725476084921547074925169224216154963318674049129252562255930668787643709142950164105304993586345685722420252562148916458078589867638654188325894293671762727414561980710570877947629216965382320380246793659071302668134097019456040928105925309168297230877911512931238829301363041982953186671967752771238630266004798182777892747071751760513431015410588230629136690061747094829699552729537999263509011405381173919125814165703130682005683933032353111301775336852676700771105844565755506969346647509039506974624128949219228915655735583792029300211392090947243318374005344845106925392345272824945088090694200504170446235573187617307968085318509397993045443043088167257806701331575609893133727501413704653445614766271671339138995247662505243013727737035290651242624440289247706874579733666499656838396339545453717602924860578637044002212548021515048559412266026558374813991187660269317045796914881789220539258146297129615512209363276683384828380659609449683793792365050936764023482332778722889993345350632483169489373032759943154637060938937752044715543363066095569208408779711565375854464703351965223745752658300282770595065625674617584638739870318191552898853275249475145578311354968409147592876085850257120701183496740512707806361852385866060063462837604116608636268327416971922036816099163914422303496792391857104602344772122996840661945290201205692783159965427148261963459121880800220608163583666263735031362248477125174208001715250038146581886457377056885165140976946039303731151372446169742147264608486595814444499882995027818415055718384160789080218693272979260643979539703360153399440062171471596535443503537379385104169411606812168764880202230169882504522730504315119459189930925036576943664035004817772545309880352542799034781979814821402943983973019256721746686216649326917317674244131765566277602487658909454333455653185112052739174454898131249328894829352465006906521349004569154550845620975445550151884148184173731159498605415305507722140150588666144237791283495804246120958730177112764524989565953397234785671687610743702976129404834170050837202216267861392882657480225254702929454433596180423080080588504659378379478445332374226961844246398635897538866681470608509455912862577958030032613233470162764094836918398518906470576636710532466562355393968900190975811683908042525903088874224545858545313696724743267323827688599812987746606871046161649547171419036675145604699740521004608669801666811949928611904014635544598386774278877129489703660646083557279693168993062543176621508152229706721002447702569406625778927498821784580455214518735203235743338083060011210382015510936378561839557144999573904350456294417414395948976152861104476400155000072662315852851303851596535767784059132148570900767608537268828870455550912891025656527916586987064349527541921810714621484559401835259649842401273844706220592022745508582388446806700138126612022989817760358150651341974614413263128958448354636359940139970054615047055065860279175724243599053084320108217903605096815838775211754001288164967643966500974132369910721607096932285320074835492827615988629013832705496808622818220216984420801153663944808512958234333730360585532138448415530295805182742010172640254928603731754293868866678085335201328170522524020389986953756774543093320798326084320043768734714089053689231273157672090540360666733376829930836992234670060516982787629959549929163977935268471154191496508671885464762673261136574331975421560983595923145339312194048621103676755410332693770019456520136207139845951070647529596079666459299611412426905052448162763730868273466891397491007667398128494376542868532869020561937014667953957176559361966152292234718289296749556990378348455778997114358406243252771886404990410097125501384280855180868453957946488648225439278402578452221148732437706011158525958995713958712780685643811275390491656745620430596068414378705421716847211992313511708947542226924194323605392144995929498031300660378603555787339500442986821458643441208015461138873362603087949470199065509405181212689179776482070063869651551088948322377419916872080394774718640133862249528726023294697240606771448386693315785665347723496087485998831750905984709974460109509932170730766643773712915289660300091969598278935643373988374945891567929546477392086473608704183937692937208096988448504084471296293291652725293060343150514274381654786080248506393334963812576792477678380474695094630881332381653699218356120808331061689047483182378211835741231532398847745721575743605204714610023004610552249063278637553944133909565310763287033770881196039327178040871914651600699279166450390060733586739928765049739978757746980034532003026795392768812020654109869156424094055251227282720754483697666770149120102569135676185579499668972897096766262016832400088166325903796551079736363701591905649259524114848848429652950120223921524137358180896971326585457131340981063580229419764974309594654519711489840803866922218155971880728393052908757256389712035083258500204679296427848258476706130220816881742850449452397954131998731699848017893655845187182364502461059009999655255219155574875946234421717246841915604237544165544315489532182259830068302292631022684730587235298692979304766126966284642578991258465868819007333738131695702499562735514482628188369191764134255621125158920469144844183793035130970400683672370907716463949824520226082267193886969576189360645601195150460394845342812334661068210299511736863110536452886801709616408262552241555130099106750986048451702581711269675200319167707323115275824033391526728538913981277932720688594833862953902696309679409614484592402207124191826042707711310886220124670023169450867647376507916421072836616176980161148163624467680484759642447476349021775867138984450604749409145729563758921807969096004609810981702610545948644276009614863807940599392971503091080450294778538740359282956187945278974480832512577915662453495169554591190377313792707366663242850608199103765499658713821398003234590399273837285448507372415090139156003216419684402121456932992206178493614839263157261523794196507976123369637415924179470385892560505417602719621825100540379460896059096892980609255508829423117403443664092101037877540861277364099097052185138473127722633501021351131224578501952052501293733183077078786555755297134000104320297558882032975649598022838823432272560474556831105134693583949908119019399259759560040843719672579543369372221232868098633800630759573153151166969414611670397623176253193209038815249106709309640026756140506557417355872099070019185059641438603979947449330230720193406569753740612316352705236916029549922070105335270523277639446226351731095011602999582350957437070349438703604718337422153755550251194991892252773708964938361078982996415431592458336101253069612098176647122377558369864716708600807307657222395706545351612304433162148005487050809032291598958399165041798246695632741221363349469440857108714196612292875480370004995721404257576589050165544528076309294575540953492753672290864098597924688425132879318590680213189044929541645050081743917003605905099271573476436577619654061853957780173074690534541301504489697012592066490537503055313717379457562298655533229134771660245520330186343832364165226525964672492932102289650401966975188125033076000155878204316620710392012579706674097974249258280280227763584169428814534717839126154274159851015497017991418762845349343544309684610339619902852608445958537062925735932528388399923818486354865238209338884812314672250097772445438309132197000214704546453745780416290116435875869689277712711398659419753918807298893879322086839849302494163880388650303983645136742292367243540274900672853513864609799083962284394170797325054061704006672576349876267708323430310028055492221214647400491515229291309666961749331910310291465835447568203071449695997489651194846872434012780091328545192494805830271062241588518528713401053085676152514370168130859037176364901366479052164319948571646603848239810727963577453787763672798346927014746782956212135522254399965017871954584302720998856919698335438610080915921294510420532301495223617247364477819789106215572309939160407765687974137043492705446168257476014162911011928924681289460774174102414214030872292087951386159653551018966504901213933931703380521308972402141620115461881564099222878271196966778331786416951102233635022032942143749693766541324788006544150832745696433722341608842078107695315468315168521325280450901833367552133837251431039190369980884874197042282185290540531490482914937263285985451651238773460476070638726366103942322887407368507375040480377355460903148581218163997593523192725987614470922634459949903215574064575542763724003576384058034657827220678259423966872335846033812700880882244096965150617490928178732461722155335719747299662104448314115543028976809433005993434507899387988333507965227157678417850744640230234426006330978132767272003066212058470892331669302872956096414882682937481758479663679979772718021651929366072789779438240420555542637822577003107135515951133578026431896104962331161405086640640868044922046744244328281062379950490208055859463931616418845618641490759064107591114249847588321953604481085968961976166337476203850451311028101637917930431679208340479583908312459038001603113612110814790759618456221103452296943199619673878886996642665785074443536289780672999143357819233121963970527479622078458717618623558933973788105475511241798433525163177933159730190408189776589662247432351793206254721386775038611789879454127026491458763459983052431361349345200572370374276922970219798151085517085634968441399593484752658754267228826923917638416329633282968888210109213908675299491191365409445199503833832754027995265694819636107464555823827253899706703111693889196174674626579398242292950835570088310231184927078743029238040514727260522817891375070505816616281071738247239137437462087072245969584936182898957743235441121807834921186184073684012574383399736872133891918455737630520657025243029742152971613282909112572026838167166159095586988903876379848747115586072960452072669554652100808633698831754624527033880176332309345107868102038492374699232272298344973222396493186467734268616079893854233137389334642181045868577380574656226862043177970924952556142392339270945556239342924198350789296588880682013736449377616936416403285312471689791732151726303212987744085652653785560359641527502560421580302953096612059396850727541630899298886069715396208160492266227749691109993256015665127685454133198891912711127458418042352673650856073224872590173312423506618313042497166663610738310028278810212211883273787937933670544815767387111120472754279462684987982644290761358635276044527121699988681782148258354100043195016195877649812684223719191818772567916360508305087169658222856200092299668581994900534607383284466876862632812394185389609212211909726551001966399785356320999251899946670283252489124226887363569970895206992020644370197307969233606146021004714058355172735588998091097821125528874489374661055351586251376856270301419347108038784764626819925113012902493145342780253772819070759571464001682799911481363759056841073917747690644404399005916534974380422591918873860986732406364652064657134334369845804794583547701160918046979626212668496457184241760166430199830299465029371381764906855153456360585963883745464788334856898082293599610873987828850477017874104853710420142609222981989895844477601650311184017953373306200127265127867372038675401165584968088859540313719453007254516046725238578495898297626812827595181743714197887182422638409589393307077286926490856528029141525435634096727551765899397234661172499946395702063995078307897956888114941101565739779338577526933643295031655035465084482480355922322127824128867182106528982056091744542817226654783392012718804475230466483173052874471702958297091666251525567445857573981279958843977679982547233217248244995058946369401846319006604422338263384158079946138264100657357112392533803125586836259039712105684766587298692923950106158952201767715435454707925120052213662519065880694760854064703983252222812078367278670810877506813543511918416715812520932267834905971796825069955701006498541585655350887778363226892371247474576884337931995524701297951685867928422710264360424989646532782489044353815537727691156869416858220017764194903549885258000693850590387572911118401062455497199963866837297638209360657211311224047526002059265576432324779488263105662032677975517572549793742513440621579098613999228569444109029999591366552943439709666225341185174879079842502952562157974318970072459442506937312011950462812297398517664340471116775284262623580001744204331581104150044967256479530440288034419962121087914701619693939501734181113147555882135371700511410532381264055869054416506173839034337869843152141918529997135551164345570880675875338938709777753028884023307004304417843048946703767618528222744095309762922402510104582920119326422228362727437447511179988897439454647748707848527691956325580812880555276064899046461156162987066598291429085791618513890674996399649497631507857631387970557029584956086345838631428197183598970349542029682128117765608400333589630931373670836869129231594760798403685146097657965552359211937872373315908438276482393995367766344337745147751080676684806481175515175107854255934113567909449280073889613570287129897175633104687499123524319203376715004348476876571405042927653658071782766135097373975213202128738325766394646600447663967830362177008190958107187782069159168297241624098768728999753492867958912655734333260097701756015100460421257742890397626037043940261278814992038180416698261693097581000128900275547438715791940115576863815931136637634072862940085406386509977085365876704606769491752819378338524654113281825591754213986714051848539074299177232910982082822361394313496891161699906595541319530847039368050045769502346799335978033580979088415875835537916424901988452916705476383970684050328452128417336023047318736234365101114612218124044401544280200883923510307494061880045397792211412682809034886930176981353392336345207260916289318273408290743047526609467897877378957137591072506717979190257453914061248456827700364910635109839198438557003699980204833590084529681041424850205192350568013533708414230206242524690867234040570598003370014704955223357719547340169750466409173056330257905185603834648185777211628534710828749947870132309510825970660210513291418870458221889641466808735518259972026733417267011097613616087877770478958165263630603385506239897478455336755111691287821884169995878436019872867663720435816607831507131824602896178231546554663577477864903377639771409121291389420937062260266789982893548750207730756725758050652817484694059157188788608644025141775078895524221975341106185766635814233273937267971782840502239679558293641775472235687139825093543183165739899395149031315674116116811601780380139781126106295407536419500513304419241745232934423985707844276133691816969287044125546234249059619416971909198123608327249728782077684689333898611404300759928734700413490451343180503649307012418621862529378083289236601463300748111445642959866561902455073567105896319370234952112288022445149159088767343451455447913000870558282439590638758360044390238678152724392688712456112442364462900647239963502777859138256899410757345510746891237511485989947353660427216692513353073362318640638345950091855464969505058126788154092000667104219545897071829521163847824544656725090620367132441823579845981238094937198199613037880188902729537528901214473632070927666116540279792311075932062117246378542706416109903935325205623900803168367407265016668673677887809223927871489282621251385679112382724744416262791741417796236748157215160921785944537547091657823751378067672017242497881854750596241973341468258247313942891350817982064351723457198047094123312597816056377325622671166559235254431458842453474216317129187147158283083153079173398442889647793810482793602361475583422616638088659361771006107828850918773075273088111885739477289433134289519562797922241561639753915347497298827708663417415784865104442826210635931521706595388371223128786259685278381015683054836021958643932130827995700217181017831067281787221540840014786856401173012688267839680516906014744819951483670835822272466269024702304905966068967007879568729661577441150507035665118142437888332724617799987750827709372942305090567159273623571068923724347828788164350753395271715871221800536356029205180004584772554150037394463117813293982354547049595425901306849920890706804085014416053545927303129879794771918817024795168087114063158685170086785946942004282993480633947061294418334786873613138696005768916366562090503645104383447268703207731896707814575923028260023849656800985928025706151985601608485646383065581719007735340778950231662738068302814462049744456105943311293857995201939337825759564037609304629789057441787137886782338629472382763106683386603754699656847571988127424485584837335663427741981973922530016777041793501915136566643120715941569800183367430678550595147113130032475003070695900530514499978641972605508160379826294918906764820555259289330201866868219276969594965137226068683900549793672534914471309441892416855458477868750389791640009497994464674819517742468708096323667365171018922538209145178466679146379169015930127678421832080893953884829318464702913154626321423878403242363248087175402049760405912025419611140616618711453936877102685795173908154719990079039208846159981833741080518187999077576514258666929587137354730066461246713739522121215104454746822310478286848338155125296090127470532344970898773998978776290049939258892744364699033541866568709976191335143321706438842930102226087260645036588167744566789098935904970498633562799776735036267638663447027885047722488448721505419821890277770110089801883150480107701378085273457854938732372449264803105147900200654285846646325702100431911822835824313251740659533037666223036446716953587093144801917069195309678156837083370191200139626253526868923109327785548424715784216673967220302857102079553526440383221522391930923269403102896064731770720824140597109784849527679102430695438640450368661073718177066350463945535199550542992753394026429115787581081587406166923345766702479399223602428172052236027423934361783284759448039847449634562725286000636893404125584920008750522436177931725483228594974415180624388041278650864925917589944243029806691650933455876378153367273467689395084480691462737419666541185705394354304057337535841272612424565431198318820032048561629166650582417097802137124292094071641718318846381033282687793379775448672381601287553042401110247763391186585156353810098291003899459937205914948501718951660572389484653596931101113772589288066888758749799274265029939357910939930674523533259419611028575278025860973963582515333706120789508414510554762560734504249700152062423708699277222381829583911823904026690561560736656998904413158984904222679730895615655577528175924090774450999181350813823218698033319622504593796432719855678651445637166505616182785849995542027973878323944696563540069706304774315783189007628340204943579754271043879797351012256207481271625582387892361059548601976302333052318189710771704778105059940645072180306954944659581499548491272941309039768692373186585228171279994048359694151736306083503619584678860204972523910499050211230436021316805586780604969805973052585763615591090223451684387329473038895993791425392057623077202667474640208909506702878026250738898595315424294756487837171310689441862401274330277211398181578709495345922991172013563501915311782936942472616060084658220118806867555647516233545103014745691534521708324749676485658096039414210828816495160453130059865485840688759545663116230099055021833788963728168554231103852341304757650676829405969665721105411352135600266575355294034426555220355370079873945370266564348276694947169667497585154352921149170113664581550419282359456809214589280105950610335456351889091727496914542498360091255676068305793015106761319153085819625055226997211765623823613315448553574250539871715706044590294280132945418519862772880386137456026864806500844230521642648792560211957940815209262757436820710924860235508887767031837137382620889793074084697107463771453507804125617164869251370147587454245122499897884611143441759145439937752328738561951450985657946874976367025342954697910373199443948080206363132817862146944487507769239616908315970395785506224043163890112412193060728993533038999001146604418501501742663841791861833529357386837240823726818761059740471498256577668242781308448326574509261748063396072769584497321893813664572289602048405202844065623067664226276621818405073596574093257746299614491432718296715163089493924673128084596899653759392920941445315159444627943363593356579211699754486684925135673563070679221315944543865038941636352250880220069783488148747120679727855460396059408941138636781856621349221059918621601706029580167655254048005273457423426201926342278374671450464533349938251831005296389678313705362394148907607940265146721417966108004131386062665213010206564458059979827530356701209199765367688843704377323191723250531679262713762304563055239397666624320769593867246335504430534663747496286929055249847458260948308794880829363477840891612637990354313011985104668304949030008729987374606020997548763558900573889184950482202876139291281713891105966315372152402566584269079115369521131067895505209002145584421990379232359732860802326007182635141553312918115535302558554210009203058762121707181920698925468720957154885274582031678569979152439046510970519332411495857553203427444009548669712956119740701881323223984995894974471774474264885221524046304560684171628292916699613347759471767938841981255932141322622068812381664570925168780074523514965040221552526466055871738679937663027960918773062862971954411393537518889484770433367863702058051500593310399913857790235836892989541597140941277358206620470705347360397372728574865026049474056304911499214270836468362667140369670420335532720708185714811322780510904341062216850517520289651046171447829191109205870765451545418288411181238202476831142208327387074468175422588108354858198886094108486152850040192340705962621375252649965551042954941091208156791814681648048743750624638098943055180270346726600913579033866050701111575860758811110786309971549013135253139156815732985647626719142705003900859124484092226548359636140671239815903453401749771526621163618879994281330550962637101577888821752500465601732764724937846687205533933743677745680664704420018518555236298060295911109214411364314502727494296213619592489245466641773837172310982278169899776895216094894433853014696657818671367504139445601541320532028404383436192234493458475098966665993875502876395494437042547139338189379576461440828749404608944439412442620649412845335418909421607238341207607355386902760263376143609567533573626997779583956701888341716604582005038495430770883512754632100879618688216979084279574174227425487585104988110530245126543610679318649886031916403222021656852578985999846689877180626185787753215505920554671206337773136282620064085652896638217715791385114807552955153515858611584033953296679028396001683927852444648765975327720973614772191969453262642977613056143333662248328993273869422490513233926160310908780762499450212272032786719974892618774164396092079758363837975788927506194779762413829906306921231916689530253979910978004654073471281692101455638339659929623663892221180147299756047660725521638936454929443883748375242806348112250425628786262976910886768111857974622927881824792058713163323543724923071934257975841537580798624477524530172611797305247521816489497706123610425097071880716707404389022988658053735718803551696499745452904722662457538067326116841038419279862208554867871830382418504465990081346762792282800835396286344723874623731639594466679824141482296926032327970197054457898322511378737399999849263185384356736429695608135347496712923101060926416609304776723326341436261508000852079901167533779698287380559273772041104002473430043131653766688392914968280593554277891941069790101230068794437018291313432949682962797463770628852179137415062600396020170337691545962816805900466623174514209260287455037484489255280526469212107782882599362655864671579653848394749455793153543864106038633050938752578718333403503756433966996289071298347337325026384892307025783372167622015468582106029156517508291762990716597759734173134769987716773062472214076875146453723224875878919236457773378584410476095573293742120972551743441418453726792213125930615498276115639472644988301903793466047442073894426746234860811450199829430957012575690009970559982624827107674837168637255468909519554287720087330598876803979458443946137852755585697677368395302802107826832820071385685343064671424506364836800593385639615297212069258961485868563144501597991429300250932269987242781597172900705043914057000621791359733356571316042790123461349211907389618492540696495146358890672732575110328522524655734815673400882750758078994084313305855513352063544052240486690061847491933175344200548321678078934588247168503316253031875740081209696149485513531475101987967769055313946642337750706208530104377667351834450564587471303988041972710015917334117435656463547759520599697626056825950224633306588757475727533295190392570582880986328385847337148451288443149358579072702128330823846382957743384560258250520403229168236319082006336389569372689871902421214984948108624680526764658035860733573336566500094981724513449217163887612533658591463110991403859455488592071344116098794135820986898553232479708249105493376279828810556920906681676444557274058118479072507826345943469732107409268167343216781412066123173497578031747688033918105658547213814757833099866434070466001175276443830660075322151089593989577735356998667187220263425403409159657657334670840733847789416069640978058859364652871407046275683880298406981179578352921223180831207418349184577016626662854691800902754289481002671235633564115808481146882867327170003091600945817334892368799542989256116402002262186008839895421911247197135299878088769859828026626880706165930067472017666832481670511138780649346931594596764818999043751633136023894484848318869608300750188317836120423214991306579805557683894674433317784969213009674656085570628013377311981139098010583611811819274862803102940472545281529360481113058720689266058118107543641742495845247267097342668413328023549800589158817830701970911607421614724973521913055969623243809914312889256349890614111090245626957707806373069379360973051762176787578718789770735997945781511061431969942876657274987073007916830227547803954559545031096608892902815835761685759182535462064347305241179161372692098841511021147349644712085692082930526804763123888950034154839900270356883591549819538097685240883741173497996026155078495323443785664171665809078314169746148283827261383481779730795121273142343248560418665656344540318159207304840832928320597619525573036275186649564522693790937695622983490010738012831054398631299725334059851074955822100770396312827813333137265858731929276192780499448892361889192582700633474613682270873361460096569335338600714987946218651495502084966343926865087277413452886638141264871562759641784529911883988627061517161092682942480441710844028012898760425975261627204774178903591615973353542802881416262538554520507168268547886699328221593750270549119240745465209059174175742948308071014980910636768251729086708354474481025477366883113820026008307211768256731874571768595254017643180482842775616363155843452227764967483681586706267697982699786140651953700165084314598862433323125064725078314451095061053298915727849795780035074701268638053251640169027055815376594389556884686104937440962714154010804492837043956881989560202450001900702662217298485947293368624174886469416334515284595126577816503953120488102062038142148621054313823431109618908034866766732791343024698519204118585538461039369349008878026201594347548639019705521251675740428428432352994854649217202722749396865829474539186515646978363022603745003843768689784674389275423276827065446746558935366262824977999009392225170451514450916394967367855894190724115822152047785051962842556742890577238464853695759663352201838003712966042021554870537629107718602327232043530458731801850032126221246145057771659336472156555319441142968537779940522318380137027595330536258296635355231682129526208759040453690236707957210089289413603538453228865944270348555069870963478403626831102070451260739168567571094487203373692272318180862986694275674487016360837982980132749370143395796005039599039114299471228561458471135961933250319266863865934461662512356252579891658548100470678540796761277754467737421260269412955550615111476034837071906428582989256881144692203157706607081023042285148840856946990465430648488229092273255866172722874603219963384884182673907474084432487732027649148170244909000916801224980689539103681768989135430708057803733421339633048717035434671385147779675280984965364202481286819657373881777667795669728568707580365176145173725427804121949857563859261001583756544183304660569846309069885799010838777212981006662658298033190904045219030485117874917281418854681729252821045644209947283751384996151560734796977686727501625447499088300213687628301296826921620446464248931370752726995856064591110223257313825014812177136119494457391578453488957610144771676352844160804420108146343343302371957584808673032742117179502835863261530227444779758699108783395555551083895886476520547188382900076627577299714420641232616592225310748148212430221890437383474255611533997136033062900136987000796994163938707176703725040244798629445371356728737794710801937396215610560724848577929092832560150018363155869989827269159586320837363289351725860154739077007713068555604827557448693432327867348517277172757656841104954984654947558568930618090566573593351861387792325081286190674497032321596873308299504778000131314352190645936509350788921264182937006282140642412721142112221490136446506242346076709216807805220777536264433550027497743222901288418567074791137896854784561100161373016027865976670001937985720940613541191317858942814168361449502761195568348698830604903636667231947510850034043984708542598140940405088231451939357473886911757943964831627395980288485067886119482525245034831231695947622621621170565372165215161928236767977875697018830226253332531523452879436275769161078649174658408947633978437251126810088819732833618550297323371884985766439231561483365300399167400029614358340012171858513979572491367695901624834766009363922964938796915166140437209126973538225332125205303755763499726271041440411865620016501943854278091248101331969597260901230398890263971142539443290288590600576789378231095428134489437563038388315331595193548338880314310248788497422750194755476833520903995934263052260621413294192281556546510061268854777394260708605701519693450217448419121776145857301990235288957488371277942602912380201006740539714065568465372956442813863279152388523911338594504308853986549260347891222346861257442496195502287041769310510901757392287570940207175197823245386865498648632022047931795262972681024357648717872179361813329297777887875934157972646187505851693555469935217919876917992180015909505205904946533739921185594994988796956808216907668843177639523686968020773560198199307263650746353495998635000850207864122996566415342894342496721233341399869044518461738667298270752728638720454108413788956475466630121239646326333929858153566102243995889452004350679896667425898297518182457661776627313380363836677824262739998936916308912102538967382851698003056996465706828650068577063412584586071500413552181266579995255876546828727633430182191882953330998872535892036125259766224806618273826978233430393439005972481495836139672351377827964770070972188511182036178143291902094917928967756376608427944264967565870339232028447212307474235455538784337091755412635106390158837878813346195938645619271767697301274479924610436822130465011315970594942466491914403370442297021381752348270843646763112118040547283166018431071229565247196922193427011526818590651814172648206975144434676502002813549040506094651954334939526739196695215589565798067243723937412658390853111879511274799237338237208863977815131420857264519973428020753603680613909784859448467216013811427287284546721836712684501350467535733166406962943075476484327155469846949044106401201392836151832002024567726175577998639495612856408119523538631636205214357219022066909655916863460358918703479202667445738651887779790589385293734277527291937532133749344657845001866092159144644025513375489030363476116192351080844609421341883437959430211297364107409143392962275663648583052506288978061693109809079564981216516171948176003661881706214632715813049566769619670102296880199321389563267294343473448846339916398028313247914093357501418571202998214287228519847281921445983550311157490238993179432461722302381912971364402988330291683365599370888025032533714967153349597366524366063280616090035446120206181625473526464911103544684205591549324042392486136292988869486068605167167973325836756824316572214029742452180584187459582415932278519551399808216168031166397925649034183206341241506661345910112845076066556937236206695861470917170668636638678014138758030743342531463626076647384288944782996079261214275052327267841527946312331255810344671536567375741109634291296650510140295586018608938541138477493592959448844578718370447772843947518355838373022613049398425543781235513124450541962422482758003442109675652451205441368854509184486676599313380836703760565838709587310429815445068329243902981266277753660166838765672138483193613686871221840131763302952245751432941228010974424833130577953980609453371598391605895139394699178910595695680981685271293886730174735533380967138949731501454900534582728754133805407105879205207889512715904119214589111862737707026812854726772430655889997497093625885621137591023428215351544415537912420008726199593660943391340107970749810502674760261347085208492781301551298090607065478294387375130459260463282497679193270012357698899563199528790291529114625378398537071447056576346280697750318167483835525659516495722751130574546962151312705648381296490481297615357236080893256324554130795677567431298439252928259437615986067424096009516685103032298232754135807360508911970456713128083789274365386586230981278051740946090320065591845026214629765881562140159909448698536210814947010067387899741193308994344879203779238266259101040812416406066289678104471410982337781120811916776265063720338749600164326765587165594923840382570275136595844888325363860680427368112258470266172024249417452303534174149256137084256374806432451980388846522016431463308271931385708863493936718473920073732376471128782795206608327074732583384421155600795630063420012723819460779088636635082481397482607489308563891928250864115488726160453921765829716544638832538978952615422958980999668099484267242139854807339274929925761152441233125555585240927972140812958165828024243604853886554175234392782082448687498398878573347708207071099531758375357961069929115499424344765716761044691266211803763062116650906726705765709646112895909526649784889663784386425302613716313423506952509767951297759518648520079820119178940653086931147544145354505174107476047111294201821857069273308891975372072520235099911973998732382816992350699152260129824034363031973895859368443255527544903072559681514354053938655864426495686042758938635040247088634280360789298032763414582939833537274766508540644467573175133082337224446800417087410735654742996573235155675451495600366916502463711160256335362863735477025664591005635263220042744233530822982391485761001733761603617043298570114615186356102034594046961741787395689090306955872497246789642111910646064563461077945630573847499458465499012654643148852571980470694733268857932440584758951065648443562274228338671632957186638212880006042622375046974764748592583537091656399398013169652327180336328008394461855815135268637217974331071960762199897325089194334687179072501058159108252039807268672914152105366208046437897565396710004344030715060714858690401397381328405657577571254067585673065590566802391444706388917920317960749456602169208036092032821274511765213957507125364961413058133821229394355494274872995202713601764792570405280745308102996078655665719592282510191167923601972304860001859202160720050111957662217549334062914260480237324091469975557114716038491338203764276085985994892623356667564443475429649305028884483862896297730898085346901765045220222191327214209190805950512756610347865463299834901145909059359535062706173523378034322038522755407534913449609525206929794823673089787526715218426815214466663482523092287681568226273263631059128161071574434011914574145916558400518635596744651235074412008354946428686983760381426349687317783050485823290666897889972835102092629369232898209120135906928985973229349437521651968389636590320006862862445711247918791922149415509992655398031700337808207597381352817372349126838195174830038319346134404358444037023693121646258243567620295461978710529218658183293852224014062668295099458717266260846104962671941424398593618143057431357745278183034961967165236300363059625230355327170927926443345548127445525757707934531188411087648174188563644106341703078865553980607590207934815496735418644051944854790107535088127762092950609506118477166235730355513943009348703801622789860015514678776678254933434294433457545934415813880901033836810535044593093564198932155684146382923520706155370802008364447172910128344603947943950176598822124248647782374990041046880087272442736477881599607365241032546976840633116604597671289579953688285980892489174436309162599897978458258545026338095075363564639915541283022714120944227991151242744480839836363508682886960036680623154117930821176481084126311645391190479878022290389472757153392211593754729657788070940978890519756654552508409484907844618056885351575948048140184876180779649704432366989845401014094620357248102358496299819832071020407889897233541349305843666862226002992485532969249074220419601058838926764872215291473008002975825164110930932670646260331032352789517906300524577220486582293097976298409191353347164667069816852381032666363133712009996506534114357565420023972529901908077735140625704547476310850466938577151357166108838637220222610387168061288872505698851110921853703133332610739072218972204779369623084533997719209193919815934962595310153889057891962746361876634105631758728752202660302857527166672120680948202456114693092976760010758796101273840533396970068072994688513307101092372475745022985281526151403883053136491166775297509654613532893126916343526705749568494213784293158098093342656801697726687394983785779414659013462060061118829296640453158068437566048955623711523545003611288758020785383201788258862880164841464904790910069858676262519219012209840257481156581285833374044775834086791482912172002805651162585417691597366950087882673526527360014942486006808699925833606640403568707633770042108348756651501600522527958162335206584800651302466305673912452656796149051345260256535515957206255346091826677311959860303133858455907894967726580604116212434375203783925367744103119086185159411558113393146468737826920877830410605435317754909663166857893453274212534525266773376988455443741957772758617486180313874230436993507928058775393278669207588480439771283477184780688097224537294944468410192942507721796296961155155725159175005520930121479397017138389265144052652822861693199541766988105497543446998387468501409577598789755653553942924695072947044634862850140177056522482983227685865435866290082610673197543372434164545935586364046839673128293042780931856522382022053577597487932036837093358532868953768159442174060930914192681991130114027879918190372001197740478922848958351182875443830973446647121649975267810068720328792110832879222450497218235927577510634984517075969881154577019726341298615292879260437195908933586439876126907109257699988173871267214728615376140743692738808308884236303763837716348166060774432248525727650162530702325986009334205543798068800809815980155298719687605076412326842206410891130067146238001536161590633974615546474225576039806374261910948364916789826793047025005317734954573448782353257703302762302696330960208548745563914426387467186608493130326193421979781845205191810203792491422114799620834598308160747406974012650531662049007610701507361300019492131896568842280329305209753143011163893338252149175917373579095009743954698948992701700988832304961135330999943247782307414167905055530001295497791017504403623651058063635540038150742563927893010824852077497069966335461687843662718460574184973262540077081127936874410881143361501369342703300366567293275363826166314051217483402079315682227408699557191051921275825581823348593474550902007922237146791646465444358647766857448404707668390370847204292423360943288213861976738224702031658579719537355948573877446260923403252298558885661516864367601819904749987952779581367682945578377462286273830678744592913124561764802254338324677697793616271390889289511347578473308545729320957166867569357865924520080347995030248414625979663704885108320144928153758339662068886731197628440663561542487673484401312343241897105307636170347887417203039813355405058886342091575820080226015434992291432527170056588421510724134687861552305412795616958554604438321406641686985491046427223896181953086005324861798070208975704490013594634044879245928880470080983625460064605281713426715342379884494576359352110282212267715277877853220769029126227882858123382132127892969885814180186302327095446235435224123641219626192770020295925615428581501954211697185473394770003909406911108103782567193869199825228843405687209048481992667179861772102673426145417193125195609095900704568900226280679479156367238124288568241945032671713659109156676121396916338209407398730024007684287896981722368393675043194802348348187817773628587649987889493789017122029535494513327865173274396002246244295921323065192827165102522656902296133258630122295361180008715717421644726833798371957449156362581129572559318614887829697692051852800318525935918004863112805505443492729782348582688282032573506380119484919180786148556227604388006238727037119782575728478779424153459426008141238378796097891920969571697048374143424418979667571103537079478833298433330651271884814290991281711144475572829110471498947174755500405559837480055979850330205689642787088047488723354354827487804071719663299795919569018328257507288703100427908284387663066564609598828861487227760715679407719987086134612977359353308019950669438915472705889222800360147683982492170816083538339106069785961753331509778722501631440875430989046856972193643088809353080798545479135651519598251414789941291923791255394129788653791833057049284589623987552606763776648224971083069221879032421580608781207207626438951296330694707000368022248912791574577122572723331745126363684624151299854649605613074116423077561868031114209066663926380717669490563323509915635490900826570736554957334929144208581372531432710765985462347283984573548939144150190909678403201295478944194850309082394189464549071730880045222635427698441982722480506488332989211430691709872001752576638275060758291539293273108485972632064754987270239926442343595455050871849109462347063863918702007702843940247552994279183439689324638110777221555347977538456254838549534182068541967327757112391496501751030189271272678976018407740489978902790668087699803743682828547492421513739238870738361591063159716133138698650165510037346777263206112787328075417020623392135549253476552439132901161503353773569957788628050783915258484470473571651798612299864208194683305158198264939759939858457024430184687485690498234785439138224174547191172219529912289485270932618758533841686473157937954759743401519870684155089570116678427548366377355208820009927588958024404427969497646914385577537804838088878017223231863991757694730235533763055363114646109945452378209817076273866212348844483009489438485788644048707228015600500226486885642989231695030985729294494413059266565255137891824526022245017073861603710217106099400037189772364207495702427017011861252281361232580852186486182436490868064004137751581136150978731828141639617256612770765410468642997281529887188291166529254848555029387588075595149626492149458903284105086026107123883622147769784171638538774999395094762322445117493855535848354882531402528531373145474607249179931672076843515387856148142216255732024119453352157440689879310771331647468384418797394040806371988757506848446311576828198928456332736545100663859828098603262662059404741648398386798463935683957054296810035644032249350911992590193359212234897049333098665410927474872030272448972779458533098309587534161165008252021608230589393475242667729669737043881910189167358295867473819392994633316027673863956689101957844674622188880554526788396135477593565312813993156224256518078511921525175506185151890201972769762202716117149963426872863279125441570458131978939081773444099040071973542156768860606835229293539481428210769494106082002895263366162694829778291428660467594885843245592214901754041998750475599779251434066663646065297218558227716112902051798434900055491282239014235118556227563578326198442469714263757205171130322580151170813968217956141443297119531441065354008289701020936438136906621534976976644786792386581238648272401432654608812019361279410582410041156177038648245930634833433906301597412350591630198249600607455377691342251437533204248689850303487954144765405448760423835515382704361693821766815508354027168756394966202632773190146061201265499240190332145543055831603653191979363270043867944754542181497604702018026787922530510182673723474540393538332007305249897002441959017390204947762577581911530641377890248249482752343206071100122958911747994795775933981122804033950689367381977778706139416832941724729128521922534695936253631886068147251566288841214962023698024465880489196436674263811235992053640631614562043047188413728688797873238336564454102023531330539962252304063428518545814615382164255435177816140755996939871831493859103371509004919673684273274382388515080357698401593790044056545583532549236179912046860291673674750574820439953168033392283879540184011586312993071367400003554416970322801664464726906172122647419413075378014188421247471639770849707284022659764270386662893586068807277897335122836887749025570572535932253687685799056335885588285082469255389627777055233984346721995429731672590156820912030298232768341118341441747565662197521987499609218093780842606138856711660009541048625986257283023583061340658716402130962307493769510456718728159459015046169962488712179852837287937465610346012547018099376365678204163158578705381355933513912320778201227767987021397767192760767820319611553662973103886497377044983705787599367356436553353791746611731374426327211468319651352545108852653618558819835526014498065255589123454852748442192872665994442410285718176385611386392447745602596563467650876458235351034050063500485131604583511188681081023973003793382160952161469895416131484346880056572894792556304894292645843454822441634944097722072003839095485371271138856053689738635950181043836643046503646412546784064911509076316369289188830418181048017445181203272338772862992461409509399720246902670344989439153740994324224534523777019022660928596799420351639645415096335008795832568938453252795062164774860164460719969771108654904541346768970565742233236381008391354826631711287234490393252635372375233687424227883690666308815954251573233484105848497496489717767102699659989035839541059326626865434815937942556680680460938840624723332409937668997017846403772050176904041316663322271455350909570749297434236995144796933299029350429453242319221089309452868850170807205809800888838611119339515013047300366908859389108904693262242466629787540786810600275616018876257719949455312326530556415711181724360430857817813501375611230483914360217845521882528699108647831562271556203089579924537976534582567120172183177184823813277027517102891360174473925433535306630508648184048288727583088416415066075727528898032642495034879582986094406830439723647589529144942092477570422038604152771493214523238985532488808435781254853259109449946175259272847233601169432809961163646690427463973870961826845484522159703171183776017548444056973040193842203246292700128268516224050306178228683799751899635161328316355855161251489638431240466187158091285540806850177832500758102663612395697107308825303792266382455666532870408956001251151129594864192221819184978359339091556937487841100668816684509208773577103671836371766840320591516823371279430543509983623460909044171251690888422809103247122768799109768100638296750179606548038132685703844702276701741923174817559634348863216098856372525505034986714803298717974424711992896868103550345770135753114527091508218940746268206753820553764414760155199537645636894194094047169941016899619081048217090977250774722479545443177491835542995942795576592837085968057508919931705942911010679264467593228853023955999564959721474020867725162093495968748214516841443802120749516028021720682174657417777951887230615058703324895382871759732832478293181999189768553019462498349808879716500926813909849260578821433392532259663899248514532307711375366747949495198042900129402654845993379783834154932408207773162490899399475898705872721256520117514941518588369681040034231781315954933246684134959736145037278639117751639029086559414361594356462073728375995045639577981544263247027433131196330583229637761694784682371230212729917977722400920343529804603590239643241390372218402232268144365293423947421930360020786370197273430014493414387893215870629001367769645771748939056694714352148304722550318283421371023286023965605595413071647748277183196432143992888038809343906836016626921466083349570240671436962140906773269480182175429454936272260798568792273764423253040609291175421937769311973732238497049726498699369664964373211362153948603902940942334238700574845633943355082855393950869458223336209828182279669974972689406398327097004608368265688829652875925318870468648475021635423999158833031909313712205272824954725643881469985658247924705545937885959823610717149631553528223627571338717835411447553303248370386141137255719425385923505110228826110065298641989468964168547421552682069697460533290857800588089192516337180090455731690704340885586496174511200209580899104407730145842088248837341439485585781954105940874560607167132376205176612355761005182429610647568108485128023281094153452305056658173100424300525640990597779407332825247101185355817453079657654982102259410888601447073261710686577198358099848839961161801858647739194461650794298735898157545126636604885543239645922205804721563210335471180239684252078960755995621402566702719379629155818146015251791125395286966766748348836133566585595388627719250434611941316646497619483956537022622540182576837480888980431762987754044487074120423153092909496521331297353000577697753399399279960970518111870416909525105682040552651587542605218447391412422393532577252439963495893799517977075603032289816283251843155647504577135607326058617691408020440549784659746117601771396598413238985365782636676669463927088770881691283573129524205224625343729620551171002512543935238908046902541865564823252006441240612168243055793969099362616490520568337299148135049378253371463515268829976489819362893670557758385804099897816245696795016020957703675144277455523722077718437745877113953838517850496623975884614539838449992095111549613309862464539872728795205028988438844394325722710676756618838212325333844240501088733497967350799430820635747953492787023125345192635141486247255608240995535269476548069623271771913655624636000239893392030433965638095453580582604719406680408545333846189656888045385135782862733046715537105827957395689236757031409715012372195688516437325016839036299789866455384468978726470495799149362518250545088107214101527806881056622930422409592366160552620018789302770216477724861999701634998635028905232565999564779936053625055100855658513201944578182243180174710746692498387964362711751848626298745025315623856767635734630074511976416056900725377735717209918461377074350989315718906054696160574724852272418592547055260438735146041133847633750839397537819832252585742202453600160934034645487396228869843398400014726945980936323134273255603214876893892838275695536305347958088484446104453951191841835709370450799082274284382220167260007900448968705050521327322579824608931174910291008264810567227243657514346831113521289243501378301402899351428818147804057938182643218328942651707003225306034837010739060681488787252126878889252820558393980464950911165924140980065435182994165110094065232952456370625676811520080332378216182910879203414664767221555552847286668608402830279172115143193716832107991267313967876008698361560823027392954971322577734040967622484171940058988316996961831266711745238928070321961165243453256724675327233752200317646977726301674176216067395160968646892167154243973130380694308701151957427748158280166682186953598976790668915024856388500542270623290521825546596866722591912844276242725392170867617880379999617024999756286882405944974444581374704773766300500035995086583022848605717697685769773643603575308524492459936393538628248389820227580353308545881579486943829406937866413998304553542256909344168589352608910359418644125274521136352566998590521927565525638236729793510814219410405988967144021916713682659072305527331081594182478910288439680987940052591652215971866691739295855233708064538004808722971882092038169277644979345375871382755285229085799383606523737465270253130771287082873230729595672573570900035317784283920428492839434972660498243809430732748599203917936736761297406891378385296583526072015073635987274772235228686827913118524680994750772064754152602334928170400782593778192656684244838551985701637657819323554740756297962638350854747815721179462157312124205289767840032358968983539601264204803926357203081002766208578211172448478039559227819474826679794563652181050656251127713520085149099476905793879504845900990937891600160671321287780627140257013688539853870206823517360907876405819686072770327913676412815221366372154223334929198706207084909404133756746700731022818462493970669012982452836674078186323732619335666416157869780513521679351365371260994040856958726774749817396745256658745257446914119203720935076771932518816479518202968245488785680848141862953970655245738883226850625086457024158084380354969824481736564339382862578323436692970407893856448381178900735047785928236994463364105443757886181754136719160236552381532801282792794702871794339541583084700015121450781285323049555492079200047538617373525043156264254471234648956942178237634151951617540940792966198206897339308939625759927522172911179198891024843303355988491516955864788403921171404857367481999267297409203990009048199418491450792544191887555672798361380343096641431251807414507361698017709306830622842346648929742957183014856532850111864703158940293538906204172899873815121400052302886753781230280254471353709405884148004300977359937087139213223755918128028090397896234055740876637143724814000365570750836774994045408613545049694833275654905961831226412251188770525231770339459502681675449936226016693979135187887029569560731461993633239517048129761901820844433921706678896420380501103925386294900849681496490195637077504985988740583760588932698151683337705546771244820955843373326987831628268688807925824219090438862210610790324127427605804049918155893073557633310444010771662225250010909826402075075007470772057775363636340869193071481106260281200063239498888387378236682757454110720958226600600369707219839446023124044782834930567917479830286454096349011473768702910470629860792461688376391276877934680979211259905934628136461480999433571335919162518330153989451192956084998242713544358479783306086660208772963587818642504680122524559332300455765001623794252588533116945316294646803950579482230315894716923629623054341619385588284615842448498677735998636131422645294021095560817694743812909789527849182471007827083390169719186537613634371888920127133417068599569075517348581484477340697686846628149065372348527711498740534489461511756206605523530308725181251127183620060291503002866244555899952740544385838513193955792098272114357747066203328379216093305227787676684244797647241187612953178696467047631368037551903081088819041585331249772431733099556348260062170395924909529211486551568919176762059604207767580231795400188571752823156466943042628210288754384458948682207184049035530145362173797658154242829309121864787913231449907779071880342490151599878194542645510534366251759877886807440247330740132764884121656179439778425353445427035889360053487223724322376363137006282476739803890862772895931139373929357237180537340214190569958652387746048177445491089135380291911546564011752918311046075835902155382608072115180811766326862509233349115737756615883642902519074785596499582398359280936134259824291520248264312473399666541567340694268743308030530624517374954889425831275577251492697590763648560661327558391269611582409870682619087748755157851567543106276929170410597321895939174390030668874394651802986179867460579218309795576629000890324354267899571687445854756724646072117815471906326941375382649758690428718372670685407019738520574256050543986930619071078817175260382943860567143527443450554844318289613692296334758939297442877565603057274421615685867497607179363236503637528391858957804368786502420186445845016262515249309638817337129731790277887923063541652356243750674033830442668949808302844864801304417117436349833534033613489725246797988760818115231854964458166847367221517448055505554373325362937427577690446444603833829331039975290461318063572781519095535157509355522275460796779609583974047344730822686319772366482124349651777652517559141843569003508457628983853329880923737541633110183134493796277396491532826760993015977357088178218034170557422604103700648078473935935854007355816539184855841791873824928233730306924660670907641560831534725832059247718810591144328958871575652304626483500828854344327730288155531197249475132233417357349508392471428528724283217339339370361712273545544306189478072239105057766953266250137877861378441798099259821788356149026597231109687328171217522269644956041521061533197123467959422430928965278294755910635673846374592998270033984681336420377013193770537798923768331858321742041517300084569679824083842687562746751629458489599039976123138227452881947157538131124540323487488166286428938436955400133147806691553806999597089528964750889518529267012516480150963760788173973075109201196709552197908998929054017461170599582653998629576962694516161512396598155214613152685822945433162527871174246989375301569732527865976888394568961189953879060873161559781949496555695010295418740749393534082530734454783111169977949015707209004685309989047245022560755747742748320808962674373040355013344704606068949857166152318914642996480476830601590341256474904529371159371820378492403412744662984271456210628577626427227543061646825289315235673382192467767960100427122448814090940425766041627958063694481944441068337439964997327431413812661615692923734773336810371960277369221180400341579345914067128872840812831850782630383589829811627920044557988105994837023637809299175797480633810236393919529162130345440789471962223762055424925090319432287249067957242689997115789579583137677882041254053109643832435580546649991662723984482351113161633376144125305350707643922427232810671849191255727938925093585501636309691044573438354626190147542209226899721543232057423986144400614751353466179931915362861518525738042298241223890054905557041673968983167674051133654074397718496181935623237639640447297428416249559606883925879421212493018496352999280514881694741320651285134070768107665032807108888760617209075100118936843027480098099429200320404269698978378717064327984090462063952859537820949700266840631410333586313507459554749553499006332803370934021684366678457301424256764207076180726348375251571603638057306025430465444242243711924219772878189677748501093442706025937260543904812545565258220309879054072783900354616102118559197632777168137000832770581690662593645146776423641074842888232474044343621204879743975234193456687511126081919357204988066271308168263192751646083855795656118694218215983868263469471786702532925453348607859005421461335117457228769679358846058479034959305499521614831174869149347252481165860862884811691537568048986706682666483940247125399284799691952373264440459450014704894907647819591863094259113867667202532752522234902821141441025310646784278079693722828389064562209942893901852113517348609468553378711574932326875741550667358237143291795478214023717676099954140913394720959151044490121878588062480377618524255974606998889110839432854963778186265219324666893993758913511906937385890966758216591725049814362319063395266269489267267731768202790873722909685598974909473395213332616571557792727009489128604144387467082360892211683330104245798747292966832929171542422399953944011904004467819721127977195397271558713957374830234018673635031363836290642792803908566872784886737268292757927779273680211794665647070920771245078809304219674621117362477568795902348228173441318085977410967010321794325185744045159903654666837667780061204682257967435082173292497963958578790615422660034841891436681590325794436901969321734324713199166454868876241577190330924506937034658336122559413880911228787578280445533033077799388051297444344867168112119661860585331159409077882712772942914361437510995879357296688946679042259296306747754478237604153995867802160405238217205859135494089966067059552722067294485839272029291712755276605474320233584317186362564952003733224129368318515076982799229903885462094497187315394066277674082707394674187256295623351299977604000565372981093304554900485938010654070848607537610324756575582840095631138578525280302302132075537370274223406660914740603478662014341833056040692999861687013777123505484423237334618495149004636454346755930588035303484217617394762254944420364612529083542003625523320705695449446758817488493365544958785718798350192013068440932450665722751328682310029491472326710048037169054424417171713683892009315821575243490547854206278723821545020284340346743696866186499447627909949985619622658186649333421045744395018275711155864462822363670736137163170291958942173506095154342945531611022556266380875993574147726252868564702397223262484456651558767247949226425968230049739273892146288227476737150615255681728159006894703050400454263336911900168784967644699651601924318251979808407116989192120721779390481612206927248890551508546690780565158669566859477725396915978872007905026323629625214837776590295405672915670122003597983653548025927693138684210174079129779883346691089091982003260897523554306988653868669650189549838587784894900232212421000409989887230220557889878230806767827311146592767399054146955383300614127953390670998093574714284393304756122996040166394165628926882053325750637321855222370743929889348286199870765051417697967062102929481868863199637529203903069887760019244580533561082733698689094710253118722377658614858070109478670797731890552095384386471362796442967428042771538985674770584801162074706408245384345958607771330297652677088811805524854924228392365762281259362680006389814987418587641846504970223999036879912206046645757838193578181256289465989427867132146461459671093047307936211757820374452406555760157859610284991373004781591973857539528503511180000095120562850350634137402898049024833973952667649171343825432384654907426652852757204767835097387465665288586365689772789478825858055986455986253217680272962057287766887089520158258671203611042969632365944984313499084393814199948275072856010831119877911090495351194270140505959113541690119506306229941670680127151863513893669276687162511048805112845195848192414244843178010500054101222916398916804286355887735300197306348651748000117458091301265032847343393511958402829301324066555166980098441303993271345065155561451976477369458371138859935059967111222254758088639516647789240615555489593664264545989871958331165223758381413829703262515202586235684092626086806157252774496380258793918728198242526939773430947596600440516081955043369000157155671051570004934002340592117208001886408805654178074677941251251061189393642662508430468955306834051053092747656384811012868204425187915286385970923546685705250320661115727892808789484213017702006580363589534959186243177359487056712393022451215468756339605741225496036458237524926223551562946602365392050889478411345125849699176107878906353750564714926116720867931127794463106229258937497089308640979429561968849841334580619261150292537913261159534933179409544886875666508419114524170245486315308049663041445861752365025160116306698963729093551184077805867015673337415970239923984962413292994895362846883989742433319269200756467265866178402622073574468254654258016222322099920658638743030602477931640701922573370601964890375611974794138089311395723646351111116824391165228688812091093796345287237133810664649914331539350925771496348245907355323280737456858438317001701939102372013451746424882777452467389012889801251617490723279590370593073997312719692746945979527712367766391133105795066168598657059394881031409580237613309793394109163216020365791552210291834711858623179422028328541826411517547644903544931279180002558238026455287368414993821013964078808234224649877447741579890355073905000139466402736584046720389028357974822232730360172554214286796642494476271256525270422907094977389585573694583569728691920373604567721794471624559461931053826493231643070198777034289697261828744134300315549925407202472444884577569482322165974580987194001289452124654503385925113746673214681084863955546460203346701004713208978214637584389309359531651306928333348344522894333065508091502512357711215742358741955877099762325107732693676179149588275477305766296116808055953695126044858396040279556745077018716276866740545965370305900354298391362681214247885805833979205295704071762090624641056765241229140331609803816172707944247557235000935188839421738771988922669349229675167971198875333316493806639422161326021202784208083348443224171419290615440700681563302397650911773406938689973826587147835273726094497010710081935992453906171769803599182725858607975980455718988284514960826378798582409830502430676101471721786839938810079203664746389923595731494621364303660716122178052553069246393912529189171785422208817231630662967590691547871407213477097335537218417787218676811915478242630121010886721610101478947402111754078281077428808207755916264169275671461536567442226698597719052573637086466249569159229256570928310906069533204623073005968625719414595681632863502819715394704054427356682126882432224060626902937746945424473081488688074765728334471678736486090601191298111821250347942358255764836335225270084282236155607871197811883259655633230754965122193784704399572163182714026110840443985559386968577137580880774670551715433785334981527791013481550363730114316655345880114269225290242633182684965258777449791245511131948214747309826485449782183137119004187249491175543350565515833083242105434846252245323986014374110992576499137542785579371093710932249708417453588462985418688279959296592760464189859348962887185028055635809257232998443548102034676380248511222084660304418256593343984487597409174241576421699104673599752005878826032930611704833946215777810372446187187612257089320025920948250414267104507599875647190293507577876380438101698241601984622598562110201848500887293191134821936816421564139137961312487632851216054195326324058541273093232756247071865456802116213902010394929152529881889868255447062127287476247388658245529938047489249655597627562909512942429093710473154606758200876853408846942764906584481890980904227485769137336868863812843253441002757246560539897371926828280474323213895507634101604990422666376715340938622469365203704351758625374823558976338154821301833952421581947911311298726877832838646973524215980914286781533921088618282014780741061422670787109767572129354770189142371122872653195162523634360364901614695104317696174685941366981044328158543771459560378183571428988337219614715989634687244116656100453663847083455018183820823429779588108521366498743143330554171169791227500577963596585859666798976896509259773933489909990631310780275443965251792123506803765419443505895038879577221566842593685966603165729486976999171041165301537767880555778729365301891329074475886454836481061351669787520877363132146236539451986488050829194456700568095675831579372617555947273539996255970815925240840578783450470515237959077085644902325870814356698597568336403740887041478876117543678565049076938260350190365600724506507208539833231813314305537205398273395874262199547407556186872017791060798876579284381055852463346076245897572578417025376030577448266929365460580137472070104461864490230565031408295030694785556962424249796575679806614622743733251867772066157501022644739703802265521170132863975880451357661306682103567793242219510599954148227283399978877257696529171592474536113549852869913835524407717824793995275646263709404442103051453442939811753755571928454182764985918545516011178736315714278364925053795929879714415241263144555836535734271802767758450936014263870131203788564038580740111418051942195499096103990512321065198332595649865948528377436784243130996191155981590669568956881091152497182402393956399786374362072937183692996330209870838065592846966190098529272225755982173440876095008711705482349294735199649042171680956960557502459405150272374401206849611299292451169219735935805027363821661014381184046465815669238854307703750173857601650928664658207303840077575724073876944601841425793525239627776501813166810738818458320698110920357011391525466850602014779521062199093513642502598228364000722104330061587726443578407615668071481948963789468781634315907070853211480858438965297275184775835147769994921327457404449258610225421482002393955684711022486694592159693488290048004442493789343657596339028333198853355326886048954043973415733391084387469520273026578178199632916015532524027047233133355524920498835547843355891045241754745220966486966237945544975361790161939918387767198599615927693174359093365831626806190518898605710240190233635486707814604626507587854180770924028280504987142595632041801235234115710755705862816198952220508435146081630186366133669418098753114178927283810037010158879903373266906596502356600837020655380484277275553499050792590928240031760052851711100533211536384658142327972881556907639534035193578008016229616667611913667687766015133645684585977743023823146368986061523570786628176972956810347450756667021228897344876751488430892662799513549869910880661524928248788214504510308641311828212733886272697578306177803660971044112450988333918960008685794688909475143659412543659404010044183103571968369551635591321096478944111401596663848615082685671924784435433505459108703129815626933429453786032907948632474834202973454264770601149022369700773542594586979490006722544213818070214615919800135894201396880662350946135359811788415939161058554284424914408651118723084252393863793970903936793720310434107587151847107204820071898801222595693705661807947046881913142935044950588644169815013974698045726546738704671899530808840276591048323815394465645056103429412168786889299022826588083663014204585513185180615443219888158373080226510710535053498213017822188558818828865129416963396951345699263625350631147943801485004226720310020512472131265657138477009021405420038058505283522102801859964422735336061607821915643248275583527484547761742922877001701275641299839354418455772342183767174538649611234340842171034787999065820587573146596800438127698971704404805166103825435817635905773036286845282124455823613230587980904747595337722237579079356087742091704538429462914581745546244491121622572300889307493427651507904953759962146232112861659918408748694695168942519841293048179093944026518218337168800679035427583537595685237953049532252082620982806229289152207225525786898691798353874391562543885920920981482694978618986686978986850271029587164555485862566554594305089090859411557835734117454570016530790870359828599310707107661767109213477259651105751151722520059930208077766703348784845433905454832910195762988199015307397175394458709565289280098848963618820302308970882130522288639038699479853306159838961315611555648934458500946816503676065431861827378655750898623334251202573699800557732818673581355136400619174368337261388632692575600923770125160672718973893269904578115902113814903791716295234137659068417527578791912162410446996379872429134758114284993726210812069996410966645679137314922869560917159594381407497704601409679580627360487435474027814181743393795358128398709787186611055727107005961456695793237635302131016844942543964319309632433177287648973465808617840777201565686831447018709907053779266193856229513022185868173232557475080249156319878657141988100981440195748184290308790166447688862815318701856267433936311917036104411104898065542353100864925377580453502931215599295043099366273829796437346085562604273198128057742496537855731123959980088952632599951118664943659576704906264555167017655746266805056069039197876955462895514833071545122633833250228664864560791299016951567936068119471008633163899606340448255378202586017278383428229379041951400963512792283499134970466570989414399959221057276454192492113321333470609889530805671585139645797251321940544679226163591014414106092499879778997600147967448325646130749745929221983569198570884973710674976178955661140715012111481479766054993074989252344343374987379567576724976998794129085580256751685223879040619378709762766396174039335105109280905121254519804788192562201418673039207150642196521105935803770248773185396270793474585350247909778073937919234370368185155415038295386620090053685136856909024634306687041641724484564411600522969244818140105754027810447348202647391353445760706497882193499407549842762535719115401561783128022282624159513744507635689001658624020372205798027159470348488931744823714287725724980536187900153017214021748042722475365245130809347312096216580685730134112932259815587725773873626878920883601011596974321420991095982859868047169389012129772208703236785515540385858035436685635229590513167278584469307594036856084679098721187016567901211334944181936449685569699592352750610368110926580232189506700931987279616904175058918300537055849865882872023815899648160649502384921447913373183430856242240254930641519638009747041721299904800147794553883549270173093159978129015412460976139832788805540994238925772820615296387807777346086185754303607412777532772351359973491692446900837991954283269173950334819306994985587761365587510436327862817130991230727402820801541286276287220576233570868752437850288218146530948547593930309705127177571270523390765091885383355521609444931065672073939420377887644100947886794803219098046695802709133305510050365185928960081505649301925790684358388518188227265912094383403212286759318430573615409562194931636070831759718135593964102552226438380874295413672268748835889127461968167874351319485798137277142020910957534833956917596275691727229351085705392559841198066277830185250807045204720888414942693283285196122420375930448640093110637673086288883656191084141342834685157158120858082523451183850096954017157950698290845037471927149619359966383346051701152927090184789083526784211954161408047675633042976476709180385216684031846553966568835236966651061150579291679068800639854250866478767688414082777962653460164149456694736880498198153757695394509756215149264364814170676310155994475228207701781106635410648407504717020236631207489448191560701221599551166082609725218774476936252558516162882086277298668995612538865787404574356899082627526632559601518097530384777639333975339496442659021291546367780599742511657093380284663113702505240298037966986780823762722413535822072797262040055478943029227199630493310110526678742154384696148787394176586499360975003007131079977795977294919845314265210497242683464648308712644632280263055470107876907483400623768713106660685634050238618749270557795190568868691219092630667368658640718917196381561841640083593620500576365522501771674656970650164624549692806813421859976306697992791373836964712744485169996045555316040553780014193762522511697607121718742087886325263747812649607768311111975581467057807990436279518162106442035992417256069589444164041258116628611446871071517011188446798705545392614724718302899558054196257796428054444409989393487908473492671896964466701005274294516228115668428487830201893226957138120242000469242973686621811196836094653951635128972205544739792433370678103421522266806458211402810491801316035720443185054907211058187231820970993207659272067776744824931981944360151001612920539597286540051642360214415528728424742770612388525171523501258267152402329900898569027439264494678769582253032132795780413081012542063574535569633630398142337126292668638686901234808426996086385180699830590164929872086440723122288076525150931535322615955998399174321388790368159329327872129422313716248290294993934860267519147088627653539253941106532521460695955266894176972359984915452875475653317395759527080496918441190465877985106307214258052231667896484063242281987240029348098699574089489860695565465472183087819360709424926547948823800262276915264028752147778213865746961587124303949650752691564864640783485585396417474070427004894226618290238013903201380287007216203144108068958470695783116699341692817366562333373435483746960967439452855209195397647096041785044330021718940771302492692220575420985176728829218074493009474059385279332261564851792811667689040671162123882588439629639095169362698922432829923928111867235168394179224612992870634706199582306843453923300584411489849222405733119289808837830534134497388119031659478527021574325907421771357259598225439348127429917412814830610981065417146330089602360984836345198502041088105438950599901356157301545965460166136461273807801780614146686936269563523544350723814111151787469520394063748960338741906271992251846399211071859065190681283620712501305226741318407825687056540194938019954217076819905862731240339002067063818463749357671920294513563189713503229079268183669855083620795233790238861875671322279808237389412341861589626577176468509615865720542682843959739770578233140394277392613606036522220263812505995881985112645665207813171893674792284732122990127927462088885855670105218531073957774289849426306848203686967443610425668992900803705027160564726193948194623298541787180307744531577474125651112554865378607049427770921177952802185985195115312978040438391034801109113007880193944273461365677460349150471840092864262051837996642701340738742517067681501685458850843368815634926706326715292094842308623380655724897996649988405763057048329677255507408497288232719248960778620545254367337324626455930083167151441151316207424326700123344248509307193674047698705022864641409258851196996103648568527284124715652253750295193344695733244148297988826996977226950475412903196308170560407023081712029965163440762198669782330755847038482577261702673922454491179579867797919494839695707743625001298511052677026365272525139842858242986599421911912570981967120604936329509712297578677982870845580961438443899688408996077618724684799626589911574116211326035674169533205327375180477771132540895072355981671804479521862708263759470091377108484177215683203199377346426233293091796403320261592320365185135752383215195146865579533627207260208320232945450218928343580085185578767097007202509256533066372032988469315346680958272917313825766115016775098512234508495323782417322974868430838472969769163070982266613414672423884250479895408964452857202612333872721587710134693431408491233364711773934305651587657718205362577641536202675219800457714539102680896582880881178646147308412660563462142681241010316163883893160218326596493063099156612653741314856783996286179955283023268855745222000491099979374690569125469793650815434288962597763001002901660880612039271460686510718344025828083429336481690882340490499038031189260902957698343273764609901554019369501297886876726007912707172189185925802867538838800142120805847610626586978119623773081871929680626237827164596775612929952467926966546951534184208735670804247381103499783149368530181126768912635977548381172035477450257441308961495850404810989922259294768754396027101077411989694904175001321513206949730648664972372113175736680816892976640070748920911330038334055066389303922555042428907803307177127167327241360901730044839059489503623397919053195664684448667317938853122353011855453365910015783886422217587791816466829842227153459726999551362982600188513292771858444725048916517178613958297301784934122942701292428272436238255329425965382848804165621472087614555238687576618515512828122258860007504828989086359423136834621864851094083773874416436765496836434175830957463326342806740188495840718962849995257238899412665332421837950524003009353214683536382140943695542234089784530125607931598455028470154478003942104977135659116746246403142252465205760873536997354840272572945568798850277522317761132922373078515386923205353493977303781208861496889106053637794144632218729407454897624825254162173092925794829868864840904225566670149373656809539927871766508016873266012388121197952085124813012367464628341034388007446157970828005260067045988369041716377871991968272278767921355411905084458379646139798335561481983820123056832011340879060663440832853708087959786877240284965954287049365989586972895302230922230337865929787050510175245580024251845189297667558846759585908873891328949361416861470066710833211788129665675598766388763288071079493868656808288059821408404268792665963250074720491411164553682640585072682332865802570069295614719947974530956967794987505952582752134974342422518347002487110531208580292954467794100896119267374797968197862094236906388531268210736390285338963032329625944795224778792730027674284050301566897494078600645751449600972839676180016691558354026462751354325918290382423096362925512765709910320048476631286624951964107278879714129584724077963831160213921634837114201500593941180639127894713334429578188296296572416604383657464544003750211644350798480706350774022399177653233074682973980714387348276784810058557953611841843392710403278000529064518082299156788410356182685080215777909066079631249267847163254793810813803755151515332130162964908018618871025031168645841393708429245549705871423745655745514663880370561683932999756705843436491937180248561882687615425850685296369336093352681857537500094639941388476299131617664618611417665276278410031908419641002958037997723641353389724563982971393127067308703449269362958226254063589407425742404735108862904981904727595069424913174568425493691938015884278128224562582236385890689497105737235487414138618311290607685569375828712563238153284276579407932370760075612826907428492742330940900727405217660950848861314102982279019934171999951406361524137176979635897791013206452773855444210959811418033791452114165892053221515585868622932975711387646249317041925074039676391579748385461331577922348212832082786695509205942586279104690931366986557903390967918427492080538912286390337248416687523141967620708989448288843768799440027266647194160682694023805027456690421328682504088709357585617181793290695359108749788316984063693660644772810730958343581690532420064209142810807117532535805216057921628802441943013025242031993229097961475388009479984040388044449457227321003353478505177792397043555111013806863149809317295943727179978485175734330873344730613569402673667065760389236796099947305912441449379213514617174695179734563745152898993278552773789049166150547463561279669922774530545999279162353083246160769778670424668925754499087871674079969063921209038671182917090292063334993967303496843883352339465117835880403344793987007600560622345402609050723710487346438377217342992696284979040250649386625510939944396042835052966279033505427935386340713250323147910422650049118219516088312587855344732051402013357685845856464336611886918030249120049244381712779511707028725461962535340290496310688735895690735384827839459572649324449742534002564197402949017416688887830574583812019123571020988574090857549915315671088147896582414094202594960016634163814184639573295538135871020893733675412928745408968201291952692146261527450577610717913516809988863587224820742970130630722010142247986662771282286232290937971842893969958944050834994059521388058077553718286432802991818616417014406330204300693719019561272058273602935084215003210196179166479165180006359493146751776713943685802109917382559546276775196708744969715707897196353572888348751237554233087819230311090017757458653576602702499432068200714716480922258114655897345420521443720487424237577825295194167233922823530710104986508275254187419932340480767009869942180417187526521155869397330744736248548300797569627615888953814550175487185705654161849308852733911907903691138660487159484037038717933508393212189382829579662153373650620901685847192069796587577160553745365169907602856111646159855560211397952463417452471511571813395692060746149998510261139993404431650775153494419108539691333085893765071833642135908260486013986028994345617115278754500820218215314986126675090146452403911106921115067400031243963342830997204390049547539235761022913729663469295660538515930363192268988815672344765835378694338753827044133015154021915997474947418074072216685483825960607450989646067218773855782428810706938378403725322293604970243513126454474285749817594995467229941351894117540404838819618187409645664846710764253005515301023120960135542288648337244483734623469383330584514792954396165676156999482418261163591922323880180509410868349885253463905190755312343960842466111685887227787862029725985483991451793562715077728069864158872355675003803829352473177391525558992723936989481405035639660808932955998032263762851150822879389198659702837387989641100749488304755443890084830015806300948260762194070302942495763184087581886320617195235581385020660292616026977238807561648947929668815711224053190815944821337172464071864659650006394545550075628979845799835647660938414784340407520095236110396112873892387115901885887315387095103191180816132154625834052134994662119409190252383962136218191450335399393227194049237093386438643165215868077038544251044563643449382203584904431029709419360744388712729942230005982959471921932816247954180721276508640981148356474778743604314353735175619233996929877681000687579595723580640067065441612342538040708061311562124314387667850132209379687519984089922420375373008153707005853687454524476402626171887610347814116461979776479103401583701643146191781901072816536695161149450276169410156140466160848424174426863139304195708509953629973020055611674640395717621015468567121700546326556890473367458112088755827356977547063003379654507575859188437704018687097472662090460814616743046849699108501269378912658371003728279515680226398492310587935731409983034458958650156869677144259820133033118123154279648157746510553280087380759874053383666008090181626942968214884884060203351349363806928413659879771429796780038146904917138856508008928504592997500109534013084153030565854476154694529427948652831087267247750475848504490312665218088467798353357275332032048437394837306741888319951151275887414799349303495372233638649187320345002816923732851343726577606451975498869462427979003023524390165257692959502357718206359954400812489925004021823484208635869214426324530812859527794802623339456260302934273990901522588929289248628669713668557800895678607931341290912252923599032017908835644903954306548435043409488198145814505499003121642443877362902375464747453104192900467788968344836044684016021235586739222635472098464621102696056130337153167720657293505174712182069628997811750067270642118753117839269488937858695353409835687927854677676709827930158934894439375495287421053854019226213897589509683875619099125043283447815257434099156758467198147433102431664140540048498410702545819441231702981479769255584340097277817355058336406934317448037653527795935639717546841337013213959343834695107764833801596772571488284892184933062888406804870931593534754055665871567308284572144588778090242355044455545417410027941283406137169054948650195124875240566582259727285556516219178794937728614156405976561462350408009008086807048590674915662568695240568841987796547770677471326608113684514889726323366668071105359519088593266882537852612919858990662549548421754646202946362043514824221719214979455474406885668807180057468316084219410138742583579096754237944222695077909575724499263154010721633403951904108456344925920951196461210672807029446282326715564984600687810105539822812205657844345045332529201528812924563439493012739018211360837528409795919583318836502731933863459595789606536209346539320999072838946766012748599406492476262036468649038579879002313559394838991416687207816841069814008913043988962480068123939628764223180867398217635466407422169922454376311436526269248268865311531785449258308121358869961798265801396596321932982070054356719292024115714326004340667345917740076838313735442205613189117416931796914294314760020961889402279395127700307744063015832158125037841341960629529389162039570970405651906775138968973514670329652220025353866502408132874650295628894715559280430649418440837403964966043086270701062777572954587656464828985197142258112140630521272039757282360640005051920374048654945672751911715231480205147520710637946263389321009982042819481874378321124753702896131177034695113589131366543000401732577040473759857449560237586009911906208185095098266674661830902286741641454206586808191503132491434831462046817939453914157832997167470264965864522263757987863590526070763630765090334211167890857267809758630768316570917030986154901918376907957857637540624999327785802014592999144350327205483935547385636051416265766983151521853588898431022186543432173766645533866949347778091208331009609135503332703260636195005003158134696500342049575741491154022653008293599889556030602423708423230932261153023678687392404758609341998028756186045374072324389885749311212192748363125563671537060347615341355278954112734955129047037916864751621472087646345738262749452971218698400719494157004498036685991074305991912675870179703704673055836206557410150423506445576834710254705728662877034130765697214885588188942335699658052994005815026189447013188583581025308306404446500262943519989637573215577662472546913279927079680510047883365832532229613546969263391455801575692668816166537708120606006466494396963404516559135905150413381505615911965477709592944372136411133171425598730979707219983757166950135039193865847437666831158160927293651370678644950192102942285831343501740730556821698496233902805812593156362295985452285034357622950651021624951314820098886515921478767889276954249411388681154745426193389643846165284732451695156999839851929037831945211413659808677136191994066367308727933150789497880293862033937751758744396077161959355189831838369477828249889550056780811394303330996009872510324135982505884890839408582433060300470482163432477798048062644827294749199440839776223645333478421402626312866314751412878249980560832879517182330913544905517913521535758524452061560582348075191312002794335349015891894711495693903845938844872178108640350425289705529424290560971716539749125078551821756980644648584871153775714319990175011787695517343329742838390986147234186830282283529259463244483546660735452249951534389225156413901251016099002384069385231813232562849854191674262471346288914524536433081186551658459319386185107723884552366764996225760117218287149022712212755314711474864418207645480368776488263741399785447748666027664553122770688546246035582011743975563526007514913085565899355417069612484111813541894777205135590821586537098237650579210373291649531451456468948174934763094312362616651290781205592452210618576900801368945120912939911092408650447958962781101486966001766662716465745850376291154714101410925616833189785844163639579905588608811230449651284226457476371522329089796651859455768640636180680130407262263300544928303001531645230205544458145881762695674900540600406412674085943112659965724940525348178742164470418907005645922425590560095195063126169010908789980501526786237923651800948787153982522040119907762783532778140161080067349207866957934993602465219312059212646461204091396609391752862512900256718651847664971964213304872290778342230059240283003942883260409370968861366237147678377702125977221747580003407655085786093669582580392190143443134264173065671003884715766011197019615459518821491250285202778834319537285646534097255403628449527398317593555213649558841251729137249190937864695757638591580124655470629205996566099968738299643091289399609139291431873082491026183716607745435939871531840820697193889222798071864772107339922799470429246406723022059708777533937812624519295287271210569031689952046950787572996342721486222006084163529050529285553355623582042814251768535823910818729003255511631446066771306989189722099192601427345616264310897104645803620768849886935698403041246202102926466242764326108270802764819397960599993103817353449409800567199604021103460520929476536322847993394797355227251865451242176945596410680578125667791372060422429808360746435502168210515675982570498783114841718460838522149519222340492564546021385355934130127661769819051745189135158205341404945351229098729328445460554559725396668218538691698267933842835073798902062647909574565211208758371967846001642507551572486404261468352235632301989236689765033440699423663714926094707274947050362845265613768123243570201969388289776021183658510176276061355990552508437898195842991792494555679006411109994173919607608168242429095928104480222141073051611554808732646914060396693451957827680351106696575385191343815745824407136561930758544685498265423067878735372822237194016907692977960645911877323757615997221978111948743584418101816747651316863031933917928074944735266447926029893048638364419922823788047555400755577055830318548957591452163752828417773599042554430196066413863156499742248830280914542353520852212690099667557113736900721897329386266518177784037835614492349199105569914625818693971720798350092548622713736767972246239625383920921135159115735827257360358609483488814456899117486448824065059732285346524184916110172552184522074007784633050932391419115458539214789995900231791962302937236879798200043557274468844018713162289892064643666644860581929213227533280194101414439685296406673399138985432567425906367366275220468601283246800035464903908813263026626070320506039905499755136055493138368101675284653288638721396462590961360900907533053280650286123557888793656125524835506303103090483928300114200709344418026437352139463166861444150192062900716470294635414285487906441831284937517453422627313440352743851000670536344239838237428546222414378642765379603396917123770316705998224460207454509648607053374416427422252287149221666720292090269133645339363560463906765070320964181703748235186127414457740754045085884117879136766579771552589569959419783971200035582817391794764601671314450533185034046492952488960023091449064614173904666639768626453341697160002777665611624763269993309676584538015317126442181761784767293088593559396583380435431570490034019734270916655884301699444417467492006291423787686498759726177513396216386393590090454496025400626628818142365516458690019610843805472422759496171541737546892523380928937081580538651604241318197537101880262417297044873667481503590577561146507304469516598318321246836368176959593842356249565194486201228417914166473901073387060213910543703295285078668577295329736214339065919484426107397808085158202711348188738335654944626688800046875016066846554326573568789790853917957837651578886412985831747458914111050293479148578176376735914399839524668004958369255319233609892657198226348176083428226817035434589712873470323072702545160202060929300635148082355278371369774172210221475654399037975399655653315507364715677386007119899027731839105034801679661773493677009948871213145873999886117433694190202882423250647853798014985880299549496477693191674206034455393225282043208877562856851644354904091488920858046773872983137643969696314856640363013858415511073225809324026607207238588502708189023983139757547533135125305020111201552606753658142214510455360147704252349912063933151636751043903724264550005621784346659799472661767216268987610707726002149607982308937424185360344905324713300256944083324273146755639630510640691429310978825379427951211139166673473381692499063724973953120248446653797491366761229530015002309688176925626684876687292306268324302155606551933957727862845779472137987030960975869136221637778031491246555763868433437177402609172718703125528786798829387962351126903163062770896260456733463459168835922090141112251690325222624957861431746777576734136997131406993855207789098277837029244046404248960916230107671387045732948221260856489311995493548095600324708582349747473044544776436195153627145731956230191751686028567007301473647639705756686023905801740717427808739609523159631118732407738356593087789362628335777272971841676753145617463073426188031614573117547648359702330701445337139499641117069191939210235772053557885366258749468933688611427662857408494806666237999334967802893822275372336491507564659243894851107168513047898094107842476636317433192225643438782960709947608372205334910123806082950123862428973813620304864068404743433919583172289406254159401516571560852940568645349260507476712354609848784769038835427246886007984213418985808667508832677442637356336935504648701620689193750898839644305181360240400116488966346424417094262320064652828744383567357677186873539883411540283111955290585729223109257033545884083854058217804255949774252062020653032321255717900903731990026955528727397543602875483062326644247271587852143338549388327041729236347988161369969042142026402374294637279327030213651470810572819691636595791291806562760550087199488891201263059230841177934380310544183106425874662031432097964290696486714886144202489397121274220562449848251142554348379518909720664931717590157231249383276767507658527527417877277349472946693637160414720702855754748058632282527116746191392448929692326805539409712315761490019978682454104848818790082393888047860241712036732064077754922894352942921527472099042411291486591455041253141736854819668165518583215190125612818345211859558798486749238664631166772855284887870530005935738941260067406307050843725459575521678004581618172298657225814772415356387739373927623670985064465569946834828575019506437956304893740836551440073401852219806097813475501974415381428111050706752942517362935396754855919260666782071975796148542336218159330562073014223668380875267959494318477663833004123763539523803586730749617751868268438091326932332675088543911898551259484132176097058140547272304644893472069948432420019741155274004223879083494880966525246735198701595953192260594848318119506534123667289035598801466430180106503714587559628586485214433789314518706362350982984029982469376702625335295921447157607614160256256074336001552464706466703764940598563630990332790580053288107040824937364886765366422974102508851282058131957783440275235602452463801490063862598490475412434416255467798193069551747519757616925988365066553008278591065705971099880643413212123373091123152681294226689932134981650787213410702375419088584249199806600440381669375248998086323113777324322468791833861255659124131793166429917029109255800908480066668118571961448580570694422320806742200127796248577672704621595359572355719601566332929040306688863394406896650342758480455622968426600099331616279417725628553007898349093980987042267605344609544185852406510114610820848673729132701562846218576623932648850036350122426501148550019193925938701412114063874886313673422543557000887009512382256061616145464459885786050818200204384660989527795100383784070753735785946439096123277255901597952313341081412784735419453761424224841126898909652305603314563694070780564175401697976902957584660900804510108577795961823254184042336247270022855667860070281340928584746967875803613281404050696060899881953306908351074621743920086595962280640712127943484473536492650442143921017247783080873996605558660419311760347931193714805671582628642443288378889172119321107301254764550997941156951150065816550129713440934706887799018343297707980468627819008529719674970454986081508572484132151412625606592591852009802578037231676103275417093258350397840985468002734342321980482083699352839263107630694149975715848244978725352731865998682906387951776393522522016855002639866995309226086089912818837995466901514773959570357950556176585111544643930225819594489803928171381920007271579175073725106986925618737262195207363550587644437755641865446529645968918783906635686472504478086829894236520687968905360642798258961222148346376374315643174178060373695959484013793221542929917363483375019460765733087704898369253784910571011885570667970074477182203099801495510488038450815502126060784051203271811536349668918221516425211410559245648172424673236844657808213506981204297065542471865516758875953882434695482347994633374350632772607122622141186759709045070342720636635148119440340217355723200686210540905537282427790516442951991485731951390591480467745943476109140888744334927265335767517178335543862155447161563189378849630879962089974612171193993144519008516880318205296975997302413297886520227699816178168563354167954828270965247818678911579798890825651242732594835582669727334973931769484523722160308293383243302341163542492035434137647668474101495268104785836806042968689672390144123122317134681580778443045922339126761766781898274020060055308036932576910357111014573563523358468738221389433030958454165800748182890126633962751461960246345317467386000221647061478938053269316797513272460766978242751665331438015013562264015203588716996395357411335439235017574644897734050769513736301311094123889633754117615080763974162702600034312137886485167779578407801868855944587833824941692921968833210523058075010286934761673509318407017974576992829631723045501766527640396000497994780648254565667247463306277747033731268544235265477724332701073138186986178019763426964069692996592915518069613050835901130970959797980519560752185179106275751387060466843938611824372290958853786333882940880076185745777863439692143435123807714605684474062939593219363910648830284636075379275369375596056182365519541196347602908892312555966010899890572882985906163363305895022398701125384057245405531410694376314927492803766940368845811913407164209400253359203047480789619543355595498746681140064365123444384576333318633687789420400196082831893292568880423800985094059592367510530812654005075528880728026411088696033510055676650580675679080480811765485938223536212748589650483493485298545500543682804748366422386507243785347088354381297382550613745587304841432639691863151336004469745584352441722760559565505394571007383071167055052868469866815907911679488084284151143216992061852826718418763131932929975709352315150219571943704931972068467231502936813183528254411157160810372435428111083182897278623443490411521117668992417136801320082828375372177571387881466385710123438996253548908048974274031159222698422202384334291547300572202783173641857683284002231025060811579347393661043983196657363900595773022698841435248056906917897879384038692990519008683937361226716740717816684103825787219981884149858375221198864798436591408294680271281057761748448945547825551835513435653957563061741287731092308444503611709832821473947394746576503451269790050905917023314401107366250292125165271698529161702272721513029042924651973449964179099694939049648464545063650377698003347384526029231643969336233123733124527219084657287472954657898605685359373130648544082219084577305500527735046009256674538202665343007218788454848485258611511528477315023123801450911344755602310273521035092467099279320619011796360268079592177087355658192080887765410205264593414423527223054099441959725539002829852599639134645128276393137886780469181665373433659131886533581323459942145338480523556220754632456136255253529303644002003921771281099421997057092975941250977437821845205679619314740436245907512583053596501641551917455178158372772876252637137279119629216849541773277786637039224779655853978724027694118781608602311117495898396037849604728263503608514222141081626703275608155268421875402590972495101252101413775723357752107859580772708915375813132838223537432131336091398045547014548660497385088349537655521212222634595578069869338090605650281900878766073099648285647553499314859198929968854917930214519140016381130109329238244016971669343807084931954897220729898210002253847920231017151887650250720276415479751407390731355635895930088190596468158883580466221116108938689805655418284535220546691623108652468604306522582611180278271515113301414866260916255132856063873850787020784493640621911961777675673441725929927104652672460824825582213341792804635972200661249102669175194521174008870284740613263887848446272769573285261223455319185380879013313038360093270078073908212221961537389396953380367210246674319789390071570220214234801938364318497069600642751197535409701578198481213802498577738635328001024173244329979819777105088256184680069223883014437452066329102721583059981934150264367517276924964621688720126624420868468564463597983598010429558464873652269937608249351474795954495544496772371827737764668650526835705912593764360104724468416863860100384123507202992317393727402811154588409392277224037597140021758543205483898361814986228516350730051653319385320835063403285674428217089904955071995762739190518390126661846375619665513665219198588164372957399300822652595704322070631610377999490462256687030088636215061353206979393839965292347021812252874587060174751017258028129290044133317938083460838475714611736317144140351378012066767133428750530255876895013907832816046495758381007077942621064667814751863569908016194044623860807999474398625554918561931772876443898239634213260852532378800161999228041503865091229913839842571229587483334750267792485019635666441939845096238999782042502755371835568929314512944748238483031441891865981046898744988997588361627801269036429005901487847428735988826018808869532477860596613592704958858014668596125484349527168171170868298833913507451320099311425901349223672000764322844372629771175057699062722255533819754985367488539674889762289677908826981942612294813513041219802495699387726204100784381972416924026808682037477822863809188228720676558845761541703323363965432485640430701800242461494233863028701620792929894432332620422365789356255231165728134518708914199285985054948523328286031179526200792504439829394054594807050248964373416738610702583487851745033211273043311281320965966355467640091768938310086943014501568017971684940394318125877409521362942159822532845835616638929655407690393413378876766201431739239278501324760885204245970069458325059130428054747818180083684584645797702775361929523713758524282385823854277743106001588470113145673761689576131290663236586534556380337427871448834620280101524330541446963356116810152562799903568471675838572286637912532293822080567761019255335323457703380706831829336619521155893405903016998959346023377889054336782821414092113501680612447599494726107985901512028541012911813434326317321194217062453568231573085598467914280678456356674662332668758489002512558240216525478323321466826424171724281524599778879833243786512047936187076648653531244314143924112987269142076950427237278972320828716914971983482240987986603405036238126807970525634125236158856356006911435928945908196146671419104589516236692320023266907850024154208822383584986599405458744931081188383520613756145272583641008998306375144920258232395773008389689128839368805732770317930533235492875018317091452716161163151175409098822453128481823939269128354966959823429675594928627944871443740626226348762829262320758583818844192921643206531527218553336247864365572399413611428532050052652427608836233948212608795726621772775058356551602748164533689779854454617524084306149172034223378279357833572558297131008843674720089708465659731036396961320309994525390492070024162533247771822688170053854365497912167674479496636180514567486666429177468031480949608727442289213224236533203888089855081132320344595006085787531101305620552215024529329762277043893140331422162147076283799691143516996832125748748486507059528551774437051560330689574876537677306717146720208178400121722405325889320968474750059367253296444926912806422322484896459498085282219177830585105609695788910958210119497644942497041435155245662629825606118664771868396907554180673102764449519948681794286378640355279501041458636213834943672926262977912182881149737011971565123748936174515940078343079120286885130232679502533919001478146287099202166146201093051648370481587177118455312103913792382228174319921538453336136327807387362368051192756694130014082332155478827913455027047154249128668894491701778159518084303632321745007463615166885391625611733986968919339173749298463532107025765245113653792316040648317588468032245509179513151036646670601719532893883206892430639545768717502479928549325572986173936890915574237094964554742412259081517613784738448830545443240063427872534880648092693311322483613674440370068576486952812804925710199161129605479916173173754372079130060356404456433882424441495550964979149181209408439719404183794972906716177232907102862150902189357053260455881718680946354050305093406336841345316535578739063295195790761089809278097079351590589221403968541402862391249367928073744616906631434568375304467351162331045264627186681890515922798487441295652651585188541639226052459628937900125870221305327293085825768670178357386970520564335999393261335047223937219003745009483813304823230419793520378582654176402245437672904857930370907610437485765482783425797469517385827677455544344046762889099496205323777226803490192403740691451288882031142437884458470459144264055799475262857514430318057085210719903063595006448790078237080610211507010645810392314770441429813186432398046792948819645476598415726170747902749561840600096117294172055242377774684679110176598427058887164143505681701832048839640871733595395714208118410136134483428183041718838487148442723400697789549376639740602783121356477336396020181217557303972322109435238574194793063548018735950125959169204725140981238146268259667269090576116265737343457246006722228743293710298553381574419423365933560028445457785152424790530299146407292944640802686068407793183477080344461767630178266945192767150346221370219124070752875939984001519757095916136565073372591443920341570252510428543429076208572095337992630240329059374079759654016324602168002292159812759945538547457770604380199285107437546426550098659243804642000056317806935939688828478156845776512178020845738268056503992833283963084932423352692967536382011218045094575330349931801400462829018929578142454693356535983625421226192206778210750430882942056542680220343509828600601177677067326204472016385513316971739288960750248391644283783906892167801452452792832388774767481296219144249657036281720547695151592811691150638387694638172206167500859699906842362954659205804979375864877778663964257094213200963023118922649324146852944654584279192964016977895438651163618342481957160805679349476225436390278564464587203920632061595154299210000243430909269218484011602522109413752185543890388714645126038420694511327095374501779650412315750125972542909877096981099464959027746276940386089895259054205929549714950542780403762994839651060027825044675245235459100722634000543841198245161752726993630521741853213533473970533338575029381789185053148578479591588326855242953868743257942900035024665876631836130574281079026595826384274401678473784727354087957330167953319304495534789016367720917910388079730457346836750946014634338762810674932313692284996056242886802395259836634027314892927318720881755143291902056446337127578557271688865993483150039433966766870479363233504277599044819872225548256024611942910688656383962021962516626158125612277794450426147116602491080557985738098694393904033672604128531410296637529407659603022421009001051133473301140803487682023800733870522147602975830763639934925589129175775569422425340913634743966401617383220513717457521846848350068132926799182829013105563500064230116334921816093565611638370224508182675561646145388578531491355800881576980062466734955619506366554573773362380122543965807758825031472046663893107091018664829902508359030921903552663655524200106986558340513996427310316248459299252168830759211566811822770589150216734470190937984901668903723800365980068433294360673669784672925705496663527660390261169764202722443078718196320736246996726990425805791506473380040484087830316981250420583071575351682266235838457116658052906247500332607806192252822356768249980710375535757757950818420992294118877392577761726258380137188750759667765238579190619098122914410436039795152969750143189516370007884479725221722012740434700425203842871633344062560516185411093151180449312551199574237995190970144502463232532440873890165043231102803526517920815795891366470441808911197911212553095832312363801647028286798382767402009708926061792917746023381588479309655173644171045394618431294220998037605039748852228138467142154330624713227633503487262151200852551455085013796337925380768228194802618753450460772309905118443866207191623662477926494141409534484769702278052890647582950811666785820648445662500106238522510759845800493258284686016251719391410902766710411032446740854790325974309300137367442505185377887330356057383168079975460659964213175874272434373881026741336270282756121658518520741557554486683380992252574672405566435646352410739570790282157294675745791480154520208276807015469806079094401086191697102966610676371566922522820372269301932779092865660956238056476249365122994032608158057965533751958656825113685256286996909688314658699161361767965725096539796208131110175520709248424881456261945054814710563554458707422919246555098143373231504059329912286155588539060411678095651764861991774396872643489145132923495407041973988088430795773717324989979296221270487292635133918600188816971414680035927496688842912706905986180091747701759599431464751955519652696590481128699695673468513257074022447028162893211873264640260088934309999463521605848558222056606944522230751667343930043038146722030613525794588370274480945660913881494596784774142114992136799717797841074380769440001172035218869681518447360999404239720826392656792325046257289238028836652706735099920590392667171798819689073352771562628793268311181378893638795237817296821031808924656760425489461047279699498343990769650429147498911927422568632069688140967864122280689856941341018439941583783772274870870501666485752510743882669171251338098782084210717437856010103302649112617944741817658891431038352228638854172094202358174260085563343498509498220316709566875262940482992080485304032596116856047294853427486064001122465210012728370068424038302842202676458728085592281719999699654051699232255284172903337643416364603333604475144454236453171021655071225160307980889414833795862161880827926874400080944910559523684480481036640714430339479082286812034637143083358507119987346097980722299507428452704511606339675013426005411555279444959839353072025531744122317309757417109953173095043552061916496685906927778084827304039004425326085383406337715112659656802871026808147152514189260162128524831787309629402169800504781858768502971570688167931157245825082693654440196125733164644706231180004100058382391235669446642499432889545411176224703801518031288353316701752791972176358352317765140639966484982384894854089308944108163085210133479596461015844683773273486183282354229797650492864670979415864452778018447540802279326612313491631434249254686506239112436209281985866657553873723657948077570871914364596684174983314695178261208952412928138815470181056743610430064219431551265309992077793697289992254501312901840640803393998737243236653365723784532777068616593702003931497505027342249843924261739828902019977458201877616035837167842864930934238201714601605075702767410909826847190502703260120003293846104756402417951460741998664353950595458642449151797243090421957578946283059304734771296087772076481512083140471170936371553652884516167156808019427087091851732531300397782734630407441639826727516814823694414439377600724635089329915450552935387830396966479199878313859301567106562355873153856703781528437394373271765388591319187529974631118198106202849244281931287908186368178816358420234014189793586129800507008076163349103117906347129464502907137193104449044934957038558645962339062534588069588674711038403453542013721225292783537225859512388411757230091624898018727935135739856149909959051933544986202360315478849314808168401065498062997507337706163435267364581937516452898322950740639897754396717014413737118841615680935798941580549732908742441298256972931335035449971041188097251006064805642780719027548111748054432710554989577812444351051210931266867025449159291378690900979129040641613307442158393444596481079786161608272708419320898994052532303492712008010753882882649473642232493989798422971824431395201761361865231583528797090865917067466054603750734680755451805922686684293268236595565715396126439531292515387688687997164587986851335693920070061880327876534156376455698477884988231984486375619769242780833657707041900133096907712878401657590590726288356427384342171945340438150843912777356027263165049832623313228660256655599222065673304919765971461300303178096833435994898114236894750552903613724837991540276640646681052409367401286332756041482875502853974946616625040938876761942230334199022464680444167169048425738212274944727527568437546652952959420050410309970665115330145849671970862167977148162879806176045149160741098154320193732546113676645463309271724591157967905820776263514956088544023945523890574784688162793039700456192775027394358506694373814942672428513548885722756950657401969324854636442070936997231083482186456875430926022410605892547234707423242871806235283666471021944250806338858768203059158575994442812287231045210947078330733481837418374091040418384568690303215081167758905092565385611104668243640621724735373131177921588015923956133585591585530211466302997284673294449992794988082566928349184770429956709767279621851083802246417226024797232467704257709436697066383946975281986777165179019202761590635376050852089497863220625782254866499758921139776812511582124186812224942211092952674665412469102620320065282785678260129385271610790477215685927404622709983447300646748553708270541850771384441085571682328152034266743924577498385846502192623291275346633910184269263841636006337849848829532031189331913792775871929716246780964102391648736143829333590148726640312961295496143603237075654852288073399494622101929542446221006545887857384177071124121374530981037484920072847418644080005787770215197637776799984430889855679267794888515281127002778769987728180925598143479134629066632709373961275383524379629790296035632050285869365350868294261664161389062113916375854279587278896807321732260596477021192223818449970805891546998063765137235274421124303722805216888303888681483832852161553640865589982265828393637121640686555350300766674202466334949927216830304624340657540249201498525043143855577586055299985505377597884034271455455336866092144110597362779964926382896543189853497062456688400509118865438210432294751674902765203818284906074758187077784829090616057205242467608493038708233178607908195607132876484948807142203658601678720354118520535352366606447673604786492236833868131162309458092146061890976541368725751109823589256734291962039910063795549161248765340683049434821038399927051918276549657407027699510359077226575281565898918483785098218807668261227440620488393896130670272957442244520224991155202428160932758115973881224721817823587244239423758438889547760692167604694709482686241377728110381036457375181221612978707158140093661522144440586676810284957459657628779198338206689531235603770567898404899126629693221323873530896727334852645483399650401876916449702950254835057361076935021294224713270136078550728879614192385149862885530443514577910774892169701710057914597991333019899078114567141045450055615522588559425950775990132736301426326689144229305660766623550642576597661308392943987233667844832164208532269326371947232603394051023035314938075927888035552064520735438139911722176040068032682323943090069361670246729469136895126606395386969062628081289026084134095865979508079902324443089007056003656595970653781331572333129211835297184304289714217357234277732451781121058416101937958859326555487388596251922948266268225427027368463613238702075633633174701295477504836370852588882462863001193314422018371727190666803433948969297922770994350530800463187867520466108988779424557018490521403924682004392893153007905321646834914776692101351546588601147833780175185544613900246363981132530377905467842243009105513491996837606562926561097288394795027193774754827415304707729248769117845523415721224473239968198677850952647384537734755830772533795126892941872273256112611151275679397083070415118220601822901426181531658212229697331468390391151856099253747466082399343755410988009827759242753969724971634490972959479231778887101595460565668515174568491979927862628138032181880746769468393301496335046445911542318903352923568784154130495400512735230697401696116860357998070216211036907429855633692861981901294889744122358568039793669166504331733412202646804977397598308745193323336807434405046256939053036965540220629006718546744099036784031947556851554292172756380619257820137048684656845847306095744960367636118407939677303899404125891242682053323290049111130121614527450510416576167466845029322086297728075211090225131449280092427121948963941723463183144697966135954062382896500419319724523153949179012719219773053170754565158773909060002552850473202415304691837048676875300606184841131856760160345750800268383899653125087370210828977019755079415360939998523449981008854490383794068434678496426655126925939561887140816864642295178733621653225095387136686328892210483500552036655277504620809312958542793330134866890178862794356489696652619486394827489486019201892495552879623392038700171063626881433576195753747624118093044662328580955859903613577090022654005283531935878575724199214894313785050430127598217378824292432894243095219599720281146723738577555655915762502993706517118564096320694331501326683836018552386592376455373188745828791157746794415729940871564771747940948057835409064313970302256255413636366636782771810809761214229234217517710632927537752131355657963427136521934490741226034404627726070558148284368733531078431052290382722235714133027281998395119905137262015131724050043271010324458646885003266344358762629898564199037139381955279045161942017803313876993425007472386787966132269226327860150611814583006162585219084966839578500655423166495392254696262525137192314844092520556286939025052762780668770203783715844112181084431152886429617941571124063788362077087660884639966055298814036364236659255523535986011192218873688288382836449532037684756554745829765125488892487323202719673376369643024614786137264339533797562433118242340442429134402046743100624281968013927114482794042877289796041431591898161987839282908668909926347838234753737509461971756198902427209852885706871741228532991103728909959942965725134421786909791268952052327579664643617838068072903796852300248666995351704448828671999179736164447121130299535072411621876632207160661140276669297702798136445053166956186243465733044381692589815551899308255065926887687450717588938256422903481669781828626950186986452663720592162142504971218226410118951215455794927131223297913029790930990468414157016321449233341465828983439122843556675942564597409921482959351579582559178368957337561261630327763344257127130916856822165052228893752277793062823901661757463587522853636926381818858062313933596723110972124593232142836610573874054299311669294093600795097400249016746989180564380069170491675913218674059601549880774116249523720873070908731687349718447411800279429555860436413955084996772891860643618730350032901207772226703088775319806869534536560713908903277654176193902194359969915249973605929401683270287502655790603974552694435809787386064391469892447450235035968446797374606405614606734114885613172441988969209735741312240956439493422159156236653867034404297104667684535028604117006098581492956731297739393135238741952895028290381833898027206128259378375669006234786532387222460875119427837290233586874607263124112211584526050657292306431565214283887352593042879421688937418307243535936558558966788316094427559705421705795701868833193472815527122901138322365630327987629791016089002447073054287966458395703398493516448795018994756097555560732710399444053762748291971701545825727155955786933550167986019143931906051860412993998124006779660253531053874339094543662588518839398066617434773492045768482258406923936523246942822876403977894020510283830754349855022904438189926459330188469391871293581476069983453703245144632077545211429845367675877350686019674493483093105537268565689785820849281788419814022733693955987143012266584890038489150920435757347622821500126761947460173137799117294916306200260474575001223742130025566107968731934891559329931524858499198031994148159679386588620640773591531159133774926721902896567118900846597032793454410293494205898656156553311898795137660216536647428588562898257441602929331908012451247025007501574425830618938287061297611426529344637762145281070526052740338208742364171420416643215622306448320628519967080756929008093493383152102310318570327479839842029935020309259127858865438786856957359933719333284123189186325119174241660048301671421048604355875160085754437136608980124990424850177605774515423780016423656218779931130935868478311528830607188069350156944061729705991952224238328559143265769194129838684679351568897770329681606123108145765894056582257967269239984248004251991836903737034638870822376768481872238237471025347619082466929623079524844666794637394866685113553918654183974982398617359915294274382861280986502819501161381710322036247575742861527138654140989970384797501734388751224932631034574004426445043155284175275101351074733430799405791024577504988510593853583074688013012472287261863146923718824519633912651173852003426897337201265016905203536810531147722074759352018875881892364294526584009737992268725735023073206471320578819141000163203143854634177346118425541421041314926323142743527473231775413833048399350361810576426950160161708941671657732443926966083500697344686087791471701366263704188230426274898704125339546213701735509425823018706641980891909867609308467775303985487452453107558651372782423631468431469995494017469482750306257370406591403852776064213242915051605913304562878946676646163047786553318945130793753778557011501935893300700704337954276723652396039790322027405405520728921102364714368628182960220574179503302456549763440260346223195135666182182794557364640974645270138486644743041979546589779735188547473901995374171700082219633986328817453080787017247723388624380644196152817734516482865001441897655093895031711154818372775850764333037005995298669401979086228881655351039934657383664457615099081606185936407542276349079281580478566488741463025120896676241647464049725248368403127149722972456372921806955563163586570904815454461183304302628277538899229190460838388642897903452271440588712502700887942615684326579351071805738367349103677153295453415664717341632868906285009048890342789750689155508010150757885316916011601937137851011470943401533445594134346250871177356901917568834815213439994472373496287155556448405527737897820776597155276123106951267147974483960631422132315861708701492545073515440916629000759408814029109911543491918698195446748513687264954505039181638195264627477001952327053077988001177701609297448375996770554586400296616637657628692342810342427597265625002113995876093235805527771777141243636224308425459641469514143633725610960942685010213523152998524453410294927558442563091889889961309647736331667706218749738280095511886141155464878770297732504940992118515056253049008472594724771668974696217675434792457509563974202077920685638318220264934044102905049482007289768128291633123198706182445955467561332430174978517380466611581641971631625879071316873723607138614644827486864140668316593579709618155509150890887013256490917656605089426949331054284082478231295145657785170861494006999176476062055941799744867767759433409037498539794048099123401599686228687280427463777611331797453363089315739725604002106282143834420442096377393382537327291506670743140037497860067583158386320555956488760647175372109904951804914049413448474436325403900175604238095661351816668363031650361923570424076229799422628938895496888729172882416238553435463835840140365732851147950056678819570748119412125394698613959276299726027738839363692315568288443934497088374817620558171984640548610117073039285443133943014811886741079690271298248225795460154029573506257334449648676803037719586257011601397624605670754904826467968415486602524160476234880605717987276509811062844692174791510027189436003925297490712359052500037441761540601366636185208208300053015891664963592075163180840264908851269668290742732111417863627146499928826924701229948867047376561187647898551617376407790637090177292889867458543524885912804466639475005536619371209866041107277385043759407139663312754423108646598848900543681587922753547331947026249656034287033983411678930563528341687251342953392307934073625135616156650558750157080722950016361661992968956289673835056114732767472315196557688389950838273828905359836477953424030854796905947188186730378151857672774194214324265799699326213240634180187855450630175923085721472671024961076267495963040968346972656562764349021886858085280762956778953153317724108651461499965451172605865556253237266529146873016197997765349418898261122277186229533061978056657514078897309553405127049538522079094874858565946387862589291666903288833229888407909674377710235443295843016471824371357764485548742461234540106748320278490664804585895202046071701338627087390286390036155194916316383991051189982394711286879556917967889372144486977728859665819765037209745662199302602001301750705807564019081902165324309950422199177352110793444530688778217269845821202862791507375694612050428231483737218459290365326528503619606538878720906465348403808065660339551483158247954744610808267204384520414883058059319987080972523357937020856654817792314457677698809943549778500471999613837088205386295236347759828211835823527553740078694601542512846842803461225723166087217037294688690014572502036597324725950529921829461130789205524577114106166225592070012097507642539120455561939046559810866233957828219438617240513869762297239876178254959136776249042110258667673321564928455545055612088924683499653878987424956694213612743043693198645127643133050899696870712184163710629005708180235794910552330392895245509896355581079999982946729658437490140426918342339897364757112295632492114696913574646483697987159174537999922838840389195394924093111863279013216120193271524107512308382193648296793970453618117033062176869038860421339741265811873416820469646635276134043571256912233604686158817169395592097519303412004013204860934742882251645370281189540976695817886571480201622704907237554871728148198888466179795410210019188816803654432146169616621730900837872476328938012500409600005366778641037672607637657951662251701096683457701404188538177220262642509702535405758769736915490032773646208359132509044302789879444469002255029219428357680479861443891288950087122908867984428533879050724920594024632988635813970902204730651369679277342757394293586079418207983616975054625136524890276916970508469361025818981942888623652424618295634661625292015166613050134630392180949189040013695657264935373680132721336422648697337116086234701459567974548904084245368343764259584579170867241524820040624103082596784677468569981593968287363370396756499464236862591023179182569822371805075896885223122443087922565709103815849682498911619859996425224889427252016409046146449746760118769971463400990993131985274661652999108207022822555827581389299838051578298352684688676644477101178551987048085378398804681953023183363397061048366119184563417336889853274155336156639119476159680581325589769052222270600814483356992661557109373041644120757572144233888664646543782639311006969903949134133917605121607940947118634471477751324097608376371322635474697013869363482199160996051283536305607643231136891310201230660506966806285918608240036452974480210839179452346693455550918918581974814528977843152528993881201172661366819029468637677426550454459744162499547757330487921137153809415279084650036444738608028587902230893763051101159809964454942255766443967233194258466598636798574811201304257321641308854399828016331564521589392531587595418540086247466379208279622596933912987080455972144393287981303789676337614872410452908722249839110101183971782843795574303368826586982933584254878502536319555419157945289541080557633390535801551217282712770866163695692385053562666012399572076349123694604534149036146612296140606055721078286162671488089313314376809162932854761036205288603356613010474952620604909638191424308626025825403220913640536184964810573924610186074555532952816485534607110658703328095734564734548432870062089400591987928733277621081900973553788077588213679588867261278619743249293422343663880640296992732390829218261463103878683682707142787275758081368406590075103589025909226881084547489888983152086482332930480507197652351005919058654920175116813525885915219568037843524911536012033943882488839143982797155618726949120660512994328948228896784191393148440532930489102028538659680136657644645770073566498635258254389786945753721041698353751742528359919223101810861620586761660406323218175417098656054777645885693255947402438075185633461184815439563692716060266517701629924956112064534646141617550581741241042100320816054717111577289467172335387943862545577947854835886768973586977194396711767515283603830417105037373260486035307578110363640103649825380967630501059664613726137839396811128125808026632791723398191774370026535598479707177233965092728502675195238902211808053099462316347192713687118189725448042062259350360332457435105177738810372765866845650372323014130933656354944734221121026942181793467803889726086505359521232743091398621244324246466959509947089772101771513308375463905552345268231093880979183145575011846365832059010190923796113024046386786977509839483088886949617325268971325802099118070645239054339658253981707689703788544198609792913959795397266363938845173210098994569301205363003721435974396497938606349835705909364577400083794333430038182806232318751212151816454466315287742869907706872083127915054721390498192087999399164989904821957767483522613150571666183889076596369119702931732973984592190349653913024446528897087408889832059457368092396854413275675248841869785068335098372235521361046605632757110304636643908641018580545824336469361102357145221036951271964770633227303014354236210586029768202528710828689253404943061708230523545188303588171900507200912176495058074178005757582190013763651872971056138760877966890407857979834912246499653671855686230607950349290648410329329417558098691894775968369955989064440964740325060137300522827927086583643794234502682424772274401005455178989621259405919945533687837182075203178696466492903388180891243990266264846080150289740777530713683365753922634580226158893975617544863595644271172332182593905243752639110741582609953838740809870138925974664761221094136111469545395984089547002451499013113591158062055087593233959625052728176660682383486597779487925740298620252861509204448691075112103146741722807753454472927102756697229855976338605190423147919032387928868762449984143033081484077305307930444046630063922617480626455514431221278710982261652903394881043181785693703731384082450245179412866948532919080684433984400123408311929772071216237092323798679092967796685211776916054191060529410764233607751313168852242490396282586535907714432535134263083046894562966190408726098620877790855125354824147194564675208126005591138553005700715763347787766161927615044167960291862385536148117379954825256571665776519105158528905084317771656122460617089028075322002662234590216161875120876809221015903378664281602330604018584935962001591680626368450911026172905201274130423032913287430747306121518522041752570070549937034573715202489844058485788805201173835529932657615138531153396236942326630378148825826035196868175762630712369807681101191528250509632280352598923425400254471571758801412588027894913619381473614519399949610165765593757661596875170393258916365447133078755441954348709782506344069177948497955047120169122743391771279708672846609940903237114761550601893094765059999667382313643102913833522755392541738749410506171220563425200150825041314384453153894549831835059658691841522607916494702781026547959497368942931740464891319613026693792386906155575127204871561119368012383582610780413291038834908798799175769465300691022223499268546811594951182150853421659516760123852820840530351507042968151490977876910278183036171138239652923707717142364529806813844541703063417758622244833230990723747308526763905137956610236309985288362727748026462457940807885026534788951492738000483626980595969321683065809988809697629873390435436170576334151171990131599226537998326416147246780808417395876012042434428086283702704120527284195552469523929087945820441236126336978847060400836760859327826277710034355416941662441419234742852504191294972557593125134546009991422166478246082817872707616142044422587957136731769277777672865871430785277447512374612893213192600256280089722247130503594545269285081076333196816445920498403537216046883858663006696275655416306753976118465747129618359931312672855142467562811746793169155438820535097470185421267534971992701884842291500983372273180153076010385406889176218293096601162816125715666640680027323166307721922641113898468076079658807285547377103694975288563569429745993629359507983872661641987012597183289975457721376752584178348121313318450077531989996136448345633306947690041474214295530033312145745683210722915248297367658608778100169960761409502081897755353121256051121116289652844616062248010867940823674276053374658521855638281346898414423456360808602122731728014541594377850573485091389255115322954249867412506113328932884712889210071306130349009112732739018712633683840587318724641010288991968646339532717631891897263276953771374798145099639687765328519607318263201448684264224570285650539413533540334275007760071916844922466228807608367423139922279774597495645114251201899750165986470379498149781279489383762137177552889614697859888162151023973818254016527624567111741005661293998601016191721560321088667840156105158477854186579088616685607479799775162079579632480053572304115000297290131757054812105600383132844784146011868889018479380478542748906766887702169748742303080246453430179917028101692147851813745102225549131623046348167894927166024997686472639124258649896956150350972340379676878975167125105282943334276822451562024060099225142805641847738195467645870779728072239040574276260299959551200799529950829462833003990528906525763696076567582284208528502927835269390734558227271721595543300126857283109800967481049515920548724584934669707569532100694195869677009000186805922536199454323858001722281986196597115028185678037819645482141811061592290020943885241895710595985020739151423365810176734616718645928720985892626123457661912284055672480161394709811279691409206042754022838183033308048815751312250654774487314116414475002946665992077722675373849781423205062803152336159447341511702069650904189138608402184648007397405042982545832639334779680426209028935941520950764548834777534655456066476897849508610573858652125778326276631230800342360929518825129336572782644522834989902404420692334714021061906526063822311363355033027779304619451432946935614272187234021004966246636400453867278152894402316471376990407661211697935381573629627254222652704183997421585319210847931548820636257138412356982855558608197411846170425757964845808727665567208017898456949757524677871295985531001761768548418812021106008458360409269441060525042286539084807371753309103397739014903240040302678095001791697270353144160514188594543293321888921059597786560422809896077940192984990024086063740810539044436679601111939391959843389015159903844390630801553828656070035552265604795043616861497344482524283676745758871510478796276487948515730515832241420326188712249155384775511461838835544189447551115268915093404516524239695470844356605368382113319156587689349369905980731800795637194142437425495240262024726362682430960799330857321309005336936192526213110071984631985458688343003775859220040888089959164217150825686704304692317018627320911381927654988226936552012908273483431935518781507560318633606525241222765869494170128034416382396548704902174794430814557271646199599303182371809958998272479426398042904731359683480006139764551514866920732853992093154321254961656400465015279658670409439701100567248717066519110166368911875502139101047686853111386992782704134302864344965313103665818512188049284321573012100168318369081594006627881691485159434740543090894694643855582321435350387469748026224010377727862441865277960328558567443461512324153221943721766864783287162354803319788940903427630211551837345929845879694810437038267492054155326982947155950383052458214904255066390994471477186049891626858646002859311008136899465091734753908814802803413281040506645044276432507951439684078995367983793782742374424031540824011557793580854388214699789981692831555617386917224838303058468778454421632024393674323411514621604759087324175014413343585365871271901135503434355981951958197253209159748776085717193291529963978640391380992173437927542220700972748358211376679189736703622979457155968532126415234184159150381694218339464662576128426602899372218886337461079035375057831293618748715068942890833277279577627664442807318215708882003120663604691827619469255099679403414946294410146147521885338651260100446026625250672706191638220687417491586717233527943293226958869732044557499335729195959515287446095372675345222020877165266502851184112975269352452102962851490597439193511672170108611166566778321568663092886541043816416359195228603335803129775896189688405268589601456778343882086153923444591128686135809505658671145712578338449149815660261057648392150599895296105307403069069889156926603012605808491915491486565565076869047665977412447158400162844206019695714736515295883692072428264953508344919342270448861657531506704668656065457424902532002341244674344669974548582391747372650908803783810541487577415479116818222135257088780515154336532332962847384754777224701725079425632291848614465836488617210837648573229928069374344570230327499498160043355991696767433630092703020474116305225806879456755120842056057640830512225965557458728730719238511874769612256699652539575821469248513002934513225340175534309991283228587896503175931983614483601881929901846678493102308737757504727168604092750444753929068741540623581444420507244818706916025616168216306919628604703715414179299613299014710457562703667416871163033285320988915744524153313428719723227273819747628141435503778628062947325910273893574382416665306927792134605374331942239679493928277532040029718146571245136428184789497886830384448019532729146295131407341714038339974520267141899562893074524081286290613746522045927343651495013316601382232238294177509951763845681098882825738671611661702439056877988290180404036348287386521758537157284857573125202431077812108744653624056042463440484394817774834906771778452905518480969677336142777242685967283912067044451851971834266184886111666564855993512189100670615332630317910996679947300639915596277808759826779997788498379379426281779780559444143684448545812158781133384161478640939115302731183719566852621676996050615733661871971435934041550255458514030193015836344832612493084951156855238873069581177174805927834104219872268648036421314044677759303623522725268016462297890091573119949027324649270851451300815196498746518132623390641059693549348515074921463627601325451271601168233674404160420455891195406373755341249387201661259284240379468591550064453061145385912857690918807875118028838486710255491887097744385508470241619350405323524779394663994339947573297756235917196086284121183351743221098610803683209401875267227844641042792377058905866808526581091733387549083999359293357086490579770747678491741784522555414657443307579238345663922252531114448469699090021660143340826591945013630029791085249549396714059547698065059549668172346199395644510342704630083851561841906868519107232666100099217522627371693140086168867194500477081117981102150214821803557564827554146877327289815128785849120234412810362044788409190028728463221652671188882817450365941310407070295937296364108539422452747084953268571783479068073607380406452659286791583344358100685724611864110942939640301900369494747540858672277439859069299595828422208295426309392022014723877344171806552955262090605199311765506913190782372255344410808270911027054525295689599210914752621883289002087715300413033694579772570352386626091260904270642375118218198250783752619239406916679127112670344452171482060220422150407049809102244200817708012442552998607897934441713133796194791178219884036774304437152829484532090219769661028610406282419312049688860630651417067377238165696584911879362475243099216044204289479469390952009849274870231898592025551060359835790888005441150220568073402822967260896618763239287771415440912824706445556813975629560794674111657363404358824600775981180014102325392954805644829241958421094497283059928346359701193582503964254010689481337772641613036056319318963970581205098272615600084335611776082292229997209281979968337338249806583740125852951350505175956720488709754092261159907043368686463379217394961640574809345031356690571034687397380953005830970779127200430449604564022267905557646944535100467727757771928779522075514342559201707858743424164993897512667724327392852093083645759340458412102768164755119111155794203192273936563485890384611249251514396760065571138359501744955882206408970601812721506862244481724140091304774698866055980150752313702175073188225983686779072568782768472614870152758389055932912169367092929655479578337290330518643784537157209861732874751665329126968176201190590370516044097932150402072179518402759746990615310010936831247484891005630669859225729643460325317786402826508623826381104223970654778734941912885878564041222712105199305157789515565810266687557066226620990228458407505856916710454502338077620114316684690518070823271509022051978307610262472237378361363110515412764804170846940132789677429395590635211270691145708522347495274511538033041210625507891398984821828036582335670557471080523554280369767653935459186638860590358634104982357641293765263851399716757938197043925197539359869350912093838096247461629007410329053075902192360855473626971594151135664767049486328174222552348863952773268484669569363730746644480218895136442601171257498397466266947771845534589009353152611015431023545415627301142529272488636971938402078667593373768283100759428799111473778167539825584331961392301177819992831481663203155490036376187636218804033711832181663638919143412006921032343139783002233857537154424849554313042285044752985056582847987958040633781336198874709624667022760486534227310112085559163096687175410650791595940189267292220187393982698229726793580913969156715889927911233930548564393991804375268893144495727794868862794745250685202064300989401261682909343746837971135711598671962570098389225378473294888720963120294359706058321367644832050624508092134977765895954264821373407725239916288174482065282279026221170790805642637791628150106854503526617581184583572558601929088259339970479490597714712022539071268054473777556506670434925096309152702359161744360775701526179181215952762241091845900789995106556261917566499352477036282917747773158968833053181359582109527991384899927877226454497398333672150477699078779850782510052186569545144015536447838862449648412378493445392939826981415628460165115994554540063846243528783511209469286642882555224084756647936470703391844769263336512635264006623919566445426097446347979344264048514921599898971471640869118747545750042639649677715220403686617005779436390066180802795878222966810190607556375916691301585592395879258080543598191108834840875641153961078004164298382689952252067049354989139457979119529417867631308686062689717312677817502036413775997771360398991967385533646182684289119904059953088637294834734336885202750497892595434074015459595037588827183964511403611675963841003210869587371327163594656343642548409362423708359137957096239975308122519936399155330035338471475888955512934260567598800070891682915792844515773610046366506975746079747643534393030246400424440193212628035627461974025575157182866167261322367067086357398810227500341757550101106945454443062619758955338964446759245946694223890075977131653665518729096661234204212249394464062988555836972033707457860152800530636649935817714487364479592224036840574707806919611995032940317794318363808164131069134385519791474174635894554503893169098682571206941767750473584803553842632816501256762630319704400826342011967619747440865081659039646276912771513498067929136433776700730112292284476246449008490245667793479344510948889413239516464052901906366012465333890945801197420215471946873378267681547796871024316561381473485060704942853622986811474015219597913131837269904193255997237252974766251588462423551572275339243742661258725592363966361442271654963308379229854770001677944533396584891530300424536418171658549612775589041546453268514524434977638330291154275986187074445446642499219385039382788844706402015206832592426866668693709047697907975521407545041733689098604237862853552307272172823454000362757928931992242386074455408750797940264405255633663012118647884123355194336577093669162704977868727971273701092835036214504334589596647439921373667191748960761580821115652653749682659677709175350988061036342062968988919873131500882591531290967488941242144124173675144531296845719395316213325319557463823867715666646671500266506269598948032533203358000615854805255020186539180131572063013187664853586706624848446144086487838742048556633766775103948458694356695912911018476369173712879899384184538698543507955606052697769015191653118657386015237599175174972034998160003817282419790041833186134405593354751844083423428838690720984413860890737869771521417700207170521315238743838647811197681184679451240343870001990572783010456540684143695358712848925653593903551344645563658278585076583305185518560099054977557208128714125373536442788173385169323962596847355473718018275520043614593669561492967579802913941509261624718005169498641976698315367680837638140295496600163192713558546519403269033301269118852787228820439401113929373397969447719438033077272169893277182493398367127673385850844463388654821586509441734141620864724690395065765647406153695244723987691937187224389897819115038961466949640064025742391135552628001929471624337165375599860193920282651229109487192388225807045034938189461957325065670792729921218403592878927176339823669500430809238330872154878267665205079898707323148235355849326406659144500263925286722380806076995060468528417730609351462420582290602822154006983690797576199576099397805279024249563632231367014619351209225224805895465195510562025613380737385841259072983276843121001223795374859962523938127180266313759155511658212925100309870402935707877857019930430247080197285745220755245977417901009587985866763911588114088542997740846649078302125979644893192751086010949013600760029335992960731647813100310516501656469080575833393544866601201530745749961269570796562795173520536550144993799175213764023881113395560188985222623843879862217274218008700066897418752877747773803900661546719583544293349613073951287689656318283782131788874179978285545670362656283453858580031492465184678028408257304280031002520706589689071058802375751059253480869807026041874960431512998704070821563183992746181411782673207359639249751352099220554224948846628210582434778579513079815281433736955296083566806820514387610059197839999482227896679693001827150780560396892016292693459138041986708718217141567557731861677538672095481105756941720517588613330100034109312563164525588521301203943021478179549164104223497675951727024561552721025672196347621406709359050009340728683130507121284245895503975503536497065232527381577636948123173784888578551777483797489084257921851551154638184978310482841032751828221986349202800245109540810682618458986799369939245750575920137259036852059166293846959801140852212831682755233124513117117305202234734711394537063053462411143496319257626003744849591575369998930002068754767259558287225702546727102348776824438207092558706819177603669694029047519938643452853238364407505643806115519524927186755176291137871008304772033990673724699278716851875049019682903219895746589726731521918310102649580007825684983885869554416260794071338600507906932918419193678150456932222646658005509820444588462673007986938596296472989437564639349970372865448861163086665939969795042909539509848445658869296520302584529958704925928601138879451283786397370050671398765833390322933096065633067788280257485874888702352411312274362973087353720165362174346906160406095735090892505557227814330260958952354801830340181875629331139463870145083951118796116825855132786149768896495895202988284414867704470519122006924842504492101418781819966450998152059684320408017594837059094503398334574889241618818063285107619563850231147443448307161258769004623971854122830651081368336893142720462518028825863310849600587569434504462523174142232490689094162987441124486351847158732949800538179804268184564607906866298106776156663219664108857024522145487836312070143669561599050114560475405033831263769638684031461323987802315655782063198787593853245285944335646028433628192569482895012089605877494200088165487899960663916051847851802531447363840786369716516426216034408727610781432936353715354907042572862178249709398013235966499144083456281579594526076430981846252592256498401610406238850673537618859198200129603257297104177240786209619850218574471033111583170905783395251014628725029807175646285119441126675956894879381595829931312819268938569165832126160219971226793759178354868882216651684446215658405091430669445999956161904250362432816674803229416198762073120467520853257118399227143076708203235101069380928040995374636641594608959170483653368559641496562290054642146046948626227976887431980356143245379068603744943150074074802557993078635223049346628143407252816843571038737612291900326399172524192976801292821587061968648700478288678099742492954829664170112037218550996533423208411914484942044563793817378988861523542518036483899200254247170995168879178562129140486597168476570837352805871550668831900435769252193478713679056010353504703060365517698819226354562000345907950628967896823067362854558983682000190622655189520333001079225781427396564591296862995392821438184080561415596841415673217964541041696224195028690195611266390841600230935282760347605843304413372219632433425173113261354386846780913787207609563684373721553403615107378391756597919293755918205868480232807006408414958401479957692232041745330981624307596157647066433656066996649370148035204911577805555188578373792198033626667816187164422984018626889013598386537785547645526824716613549444822884465220006893616888010496318434005308794078553434655916295578596842296818719905891605458363425182906258390435414886839859937796764397735920896517026369163504151182940929937755559586613761292983312399774942946766824242182427286733730230660450605219718459729887759879256794255222919718659264190226237658321158854069171882790206068669624821601287215079675266714805238046670422907837189308591480256363867040370501593610428355150561185665920057291006222920807724188443758916341129899352487225977603694169300382536916765020956288641171340699778507001696271495705577535746134202250881042030286779270145251270426330756976826466592898315837613601341861853199234313701317337471383317465439401697242396353453498331976856979460742100653328311685500054014191084031226633127545230567202827084463693705316426249466942379300586738711718799031074578201432142832645277607426329115915776132109435370879549721184460213610037002292952278100792715265137911220823888624100050346104328099912921107170420529526975862108674241371306377000139027153210441719268335209744051772296737604254832491278721462369366528766920327066199059445903545486007109935769433831667641494607255658839551260423463407004330640625132113609599725554753069926664137138953328357424806756423990420255059810075272405821246341602433302878114623060436808720742785184590097484008139605422135107820163791816740937506138028388037762293219425075922689215560270601086543080473614034328232467896348281608224520261360277433611562617414206282130437832380579515288574533133409665856661141467144205491740658719764934043686648436158896169320013958566412113012970065172406300080161896579986608167867435249401358827175568987637732314178387024548017344118925455872267725264797209230758322498475466573044803440787726498606435541045029685733911258482436139965405257051954632399592866141905949330617362143543726330308032463004218210676313989420405755323636516801767027079532918868445913170399657777326980923858386110194231802168048362801839335773831343331005065833145105950561856431324469634962759373805536715400961441668286509663221033653233441422825159988478458094197076093272710864456443940815684312671328951387867568763456283252521177662521348310346751174054294295959119681780142690757134384164552602061253989255412601413275726837526304301998602127106699026659304225358816547346275820697507130071254417067675012864295408868360439831318216107079736652060490844906050260280970381354979269402983733239223766771415148120748005385771012928852400284053101719638819416958831180435965827598122171081647064021417213397511270636907280204498892465817676511684830137072260487872412823991315589477532321885325138515128597418122693479906047827881543651856166018589103901755484509446115436040949545762336684074905283350729345081456429521431107189859417059905378644233597687057840008825065238973535615011520849970481413728289956926222804994109329532321029712858183403059652768932830789291818603718313562898005433475701678653574441932832794560036783871513283271895526604690653289417142084288334938415822377874256566856386401044788228963230510184531013496677468261227426122519044831225923960421940483440582869892129049481638086536883670973968637881887583924674705521959287956626171141520674137278062300493615252479768428934309472029932450515144384687370261996694730058876205769421806249343991880092897276849154855598746004435866568897544125988731646497381324907010580319677887842657836705415142160699387287198982270712347406579186970744945692983948786419120788092132831882193156748252667235866704303330807483969260362817037476683493451535454952322291122907725430201763055931080566266399541789160671307783556472535947564071257644353136093654971257899351937262078557547457379990805067760706185797737010731121661107159445112405667657909530134685209686413830400838803749500554942852749950918384327753323408399569866121657937089501993216348440414966215643273932555700622477569459366623208912267898252042920163804143659344385376481408273219998550964013808814256001921984922359898775780684031825652534344554034854349325196846092006088842114550654966716331156867029275471802729730268812120682152646295501271277683052909341516777507529511155589513747784435448801991465799557406082154116843016362182260703861393609626125754181518676736835011066067530545680143721250377597588954734734250812464692075757169913006773407630212947395867570430821217071602115509194584110268809409282873827925179929038309814380991884330832580771624324892146252901334300399833917335280455494554199235899385850601306697822111525207967211905406132522173540586727041663681215726664247257449205308714141058259446419712641355046949015503080847339516074680191084871769469417478628999052211507105330735596715003497144354119980611475437057514615380720729900907443270540499589119901144741826468213064950617738131087627475540870021859317144788462903773468449830984845603537271789074373411275585633698901354090753303647316901713563910271691137096126554196896259499705157229570038291286997569585417729173890729727665441912939588295636475556862915092150959609459280949048500645150722232978887730815227068522809554987779219954603415184175410019387709282118445619561178823851884924147729339048189444233635281482582926492214807888292566929036479580460083069207894880517868900233816680096729599401580491717582598656175960096615792637519096047763294518837914392910185334170765122790948159213597106281075627797578306914605014648956679666739816478797642661868337803742465714577611778693320633704357671243577055189979750811093041188567432109122929535106316374930773566822331269997809137075605703444831619218901539228839118424636517908241853923957542787602299229132311834927550016761634172274046405086768214989102645288807250983543434336562341405358105730008845509638339630359554749696373515538772456112022974686887708732014715610465307538334773904089540220428355670617218009964727162939165933635195040201940458851740997947128860510975108383170243920668145598377197967548452824826703855741200318657546618885115230902831591476455301795553170661567356681886736855666721518252060602124316908659921743050461044649435311441221950780724357105796183245029579705825586378191006140210092844595350512122592812337950867017378377901255747049649516748131015699805205497820284378003493408332569336122391660409395548599723159565598044599038391259735943746808179988471997895608287280297396134225074300934890376415489799128762340008942471323514778547465717904866437933463719144989773552852222625212522909577466008475528739799118293552376269368568664417324496413063669345978744542332537847402828701202001161426580336297106628971997062914529941388131789654402906101266091266249487534584532239004168825399449752961798155551549776406694414673308353734669954020740687548155150332410924960478191152869594454513740457099807457826610124011484335901924974010896270618961887180458641712460318275929916388972022929289425691447433206583259353850664487839719710706551438119144436686116581735257606350465789819313216327147773871467886457221069463943022402444263242843293786769292671140614965625804034393279493342354436673001144617567601185483873698490635354480978105818171296525329451832802889209448630678943457402795348876727813070823859000827214197707650804950335883487623897664679867813833113702011364091038514670492971686501802207889283469558501783748780249802184837263355226493826744698004323956567821526331864178084045116659490798380372418441065713150961046097943405714171563323773081923792553588927126244397785312031147712087821695809282130623361768573690179636167698665079491755393536429994231592341233457583211920910719833182059780591179103319664767357663453341704310636429954320875285447903149462564683331160417729811546190591902754782957584855260496165980223929995738220402332276607882166299807200813158681324758333765447079719815506931154399967022277651504738847966847294778420079802105370408961366025518216560945165229345100283910250503611281024346398369783678521454944479320615477633297015207595131604164528562075752474366292399192602496520402120935385690021145395256829750580483782903852901243550262465053641933511014556454809509752653975583066259086661914845764814057407976895135248720350572082907692157461985691963180084608673939746068312180634276636940212269617880046825938462558710307275802420688580073139203765348309324483662697567529342675012359922428208489113271498381965616691402383343375051950460844213618449612846037100921037798918316617483473873263213447811174601060639489412475749087398205999759381887283678546849750588243817468658678813771830513578997407649519077983411989922461086705287923890671451930896847864466850791421057794293550062401125109016819453754157887678549193838443493018425071850371181565542922412497940087666697856671314264533692418957086295836974638578684470195652241188962977382733525181757993369641406913459655125550905037138678657785923542899710438089626236161845364140186546106339800995612823537080738708897988062174446138989919274106100156525334918787635745799569873032611813062449712859649957857742152150446747059321558280930689552859556735958143539600005762937644206744750834188619644698263412904395195243122265450161359428459091088955521682914879176155567410395498518011338059295156644034623337802541158595583613470668297846335031529014514924072966381456013983419488763241928366429152833534112050921671203779887364399824358223651708157607196549500744227522165904325200311781304750130103806699915205680460892137709094941730129688847731180189975269180306068354059234206290941555602788127539160374379187518627087798963957381924247975753612085408323867378468139542679337718242914207702809281911041033100218958533045879099979482267679625556807024887055521127392714442393010590747805223354553088774902303097188459069924889386207488784720420952323346337523183104166183261224996418918790841931164599338464379592477549423920589355918429991770617199313451317124905113569729169370330258806686929389126754472769625399785057319918587121954830868770226054648005492179201058737280660737208677121531780127648465670970969378750456716976529757113288915203206779354574855009675365525635041366997530291358911505817878515173827485796915892978079687805315797502477418419678325350510710817644072532100682419505083441975902015985066013811247832645312318251853934478709231414037208658700066955064806984299319406547174208993002556105204149487201992919062056234754846277719158850128611470835415108451249307681558105246066826765758119417175683875260339891405989936114150257935025760964918649639445682098904298747168363181246736147515257995658179895610563924270832699971127035273907295807004739419816104540903192561947277673493993577719616611506800927396797922054232137924626875201520098366478380692150209530498960899528246133865977141327646983848502648271651884373687117901900471346150719907579657029660598173660063429378025843298209085667368884068355345354145205838252419293933393353186732711354250681430289530145860843116336419456946092747536991130857740221523430436478530636159027862316726867215215484345415376941297555300764771325699481648032410121377578664164613053547614707019902631641856439040507331380401953242861217334828302397214139286803330146514110817804763708213677184700359616861774327217640275585471835465579113642368510268468166184188986745567010880570393014076524963624577533246487324681802557285378434233980562417889418960834121944300992794369673717859694047661214970028458094649017392237510255699832038958687340457563768910630082805983231930883006382550482907584645211477277379451222957963416662490102095182000208862784011423247562146728726629383177564440495283512565022001266619961366442980764014802377738036610829221566121262519615722745504013489753800970929794432477349003717429461623590747396956367265375573550776216633333353076170112534604936967038017165024739990472700810457532121385387386452797805234352220544513034010355683177896033576690343759787380209530276261391714978535733237529896606470732099166781035782710875384177721150575321477997307967211169896265523848937979380019592295635356398852322172634957292726936451277469211941528571600198818897845014731717414664136350078483883355928562419865120507570282367899412199365036673989123012215657411817619871285154938663753668535954461561923302592913217774442790527530520267214636834450309222347368009836188263868465922246303385663355040046516376047695161892125712947509222904260752617116032520117616321266809645980369912378887596813405186666165366505263400704583791995138337941666324598030897082346440094721357894524577775893177876807324230682321100249176535209075742119967767443648195814764819309221247948057737117833021905478010568715472330917857030125149417652390302789731761051102578135885789368222813130459109529602813931867478055390538673860655288810152730729723249927476031991246323100338815268709675092285677216343450492201391813175861736233018874531239442356418912690124172536369580543185026581090128823457675090507209986740310603026367862680644084074409440025071330940817828102248158892526984085922082139884649765777614367522725239833176885699553901065417983667931508065480772788161668445625807478030126632951853853594451734102973428354907991057258969799859597346979110229001228129417184577337972004859797494637527025813379983618195856507743486689075857885233501976880896014820934506463233095770339759902762450483285237735939851495841977300441362397239740278498879912992799928790486194261230463365029154047082922864314695776172073788864821436592619411590670986724020853699221359347831725621417254881772149013118827965529002454739605943467370850458072392861048955484255206907728675379983337986194124612944797971825872432143632192188696839707709096216281057198543729585457818091531493093448940779352156138462154464530045734730655738163215251778492724511639381876432595508037957873152106140167815145703556163410626842821938148427089013232290467102241696344494012126996198608689678981765488454340608071379324033807085811700058621328162657533820233672983695301121924344907656436173906130056826592354113135626281298275743928961854955292608228480695710100110492225634675676343111984092059605123118622335967636157127241522205520137841003010520465351366772293540890672788916678465152107208477575966018445416062710709963157326041562848401451128193212307895651156522541257341965553722133266116978898527823442560217411078085383213367522102505768613394741119899363101298541856651028232056641469482524780658543244150436818999733524804996484958601938809057877886635783252683001388103783109077299672161265973264822364585531078915495738648949429284407146522809218820947422879593926914732194222708101504377576273362687554039321642281470885095489730059796550780524673943432840759650202010870988001097303544140152761928957710170982911580318526731891731022574418430984691718589758986774913890455726507650278020307090704013011615021337762331357606851289685351467912126480418332615431929402549690114508444120268647905908527353477929311271863149484757420013935624802352159242308007292444734476034829643781949633295506413409678384171463309251633374699325390176285004814217527906024252276364719103950952151079711088548722779921298545205852577398810256238029225588779820998088034250751248314816371796622491027613211675937774276659220564428544964833771170637336539013395104199498867809983180717126457884136957376841566389048333630641501137380292715264975051251280017185514830543703132383420943707899591894451802149573658849898209649552363424636572381063743075306652445514087083784741467146841553031245184628941956080520827264867979406532293487917538978776553073597744798811985152061522358075669370234348255705710781233363928494249274770202704573780545972607757341648194267798710814202142935550071257735404181619853428820524509971074607461281859718535265996988963617579428587168195932193081947912194635471017443890611478220217336731610807241976696413432238063649859871990377806350426673715335897037985499944881946608053320072629546266920445699687211992611394723044261227947082720464234742163076469249157408904510058610846854368845325470510673316257508274237590596007230008951377021351005214343649803941938378229561020868337963346487358760473839695567305386763558041783024437047805858276546526109160225159043408369905629122984728953314283052271656905773282684196243543723000956340457884197803401126479514091707696918821023866587757279644714961874904973664588912811289997895895242753137090873605975203365129530365340777193236952523253905025257893047441606129244979306318309133392733427212997005609047660986961242949663937833732852564635550087421565674747585790576923109714830510083147365013698916862186700960623614205228042908572096246942943431138946979246375900237733852620984264303637066371192664170821653690732015571257997048247145911929269497549207917150371619861304146561803185054223661939710777681444148617595069385913633567711929443827878680116146442064546044845787061083668528600941098308216877440062111377161569548039671265052331884486519834069827663852899067799260209954968693106491337477406401940513156335605481957902493575152241083507354979748765590012396997645877001241560665812464567388751715660549822788639756476166804088116577322104386663285085536343023640152554680201913770580015352399091604754093471852720277107274181438978442992216513604866998515714287420188148955926202679918270662737403864376597518194355183799885851654449815065513015664114676665562009286185827886531395848750792275173388908413158617510572457700120848251700844817321446096670035438261551534975808461951074561745228276095699033164888989842991518203303163390261735791363059271188910070187744254204005277854811912521612128437121931103108162218203529108857243527474251048336290696055773961299118960593792875658763697043910532217476403764296896737588311026206772076752697538597133886045026337411760146300108947058737440429328347652796040239694294061995830141372353657318335779013479772501687145434102901751790539579607767570358182991433181030738935149808162346773712269760370769281476009157157123876171119109623581119946346165806667565456240092282319030401586546892947209657636819698829784725568860155855248420827311981967010022885016672316353979694626208460682265306937467941877286207846073004903059556031468616791728343577593391339811817046104700925291089330070957861450153997946421190072410373822529471865615388229455828063057141691708566497607651734530654889685392024349935847532547438603913516864968629311442777305145159609623577865301335400585727433076262263628127334114986466557225167902992475408912681617665255501112294146642945944664778125466683993311368752351813862305332681968528614040164989384501025104979616308368196594491002848178049722167680450201072824635593116375564670610296697786314215129249807356983397979404121935197504287576727327986502888381198807776647628971965487844924786901277746107176673841676622117116463461017573513303988525993536304481713285663910424615168309314164714413483744134029661480728663659030830953252749811052760758203746873366484107255100187715999051612562888595672964168722094526348741042415067354957753409921871442183181132374580160334762511442253216631665555244512498713458019082722693772977853826355132678057502948324771145778034245445553152154411524772599099358647207015254285106087799342417690486847846723801999874217389695512220444326538924436314886165454976940632371033815702383464758708291065054250059544181368206806406320870363181048441129907680904257026964128857902815416798306650556938325407690080387895301440876810034767074450042917884201925661323060984699059124902653712426706680830235265023196874844997413246552052533827791269571217315730903958019364823418914282848298421180965460661316123139241535209176179626197355931636626196635792356524363917143187474427891856385606974640695781011245936863707412523806085552150909052488088493393357183116364546106350322134050400064803254015176979604857372310875012781511032832791737253018859201316481155855465939812466554761318688652238935101004670726713143301667834224975169585618313712699445832852738276460713410870140837586963784885871142864298123973096670613778636227739484970467465674692148994982287949780725343500444062798859720735760663759748305458192434422017526103487241117333711251629501579929408134452802990182449673004982030040098697942654144650778751221873644010357423007720353793678515942200605310733886106360547663980337290272516109319543578557874358411876166876770088586032031143424258536433983857438819733289592473984500647174257112587017756787324280124662093582413521323475398708380776682226671464285989025944605912504306055581137293384929367519526474617877866502839454506538305591693161602597229080696855676162037682822310638198807277196684450306341435845432494608052857738996697919705660424570217242221391628826792171005955836302879345601985090606713763132362851609727580194175931514591864956137932474744425370640056390138661141447754044789215121045276189401985898258754570524887703517651881005087777586723381393519739125608791334728300705560158002964721562045476536662697984832236279614859209244550896825242129135914029239831744772214872809945552832942641536814740883302579464373221949022112549286088496036776267134855416565678543590904478396376166790461955164318200803661438200255523150046474187329909755258105499368928751367069454947468496445875915945192842069505329210410087045422619596141320438852406444491683024434769663565848386458069262999261817016073599340521485303757255267052526904235095613221826388384423283800715523586991203645190183698685997844870559404259317235570506878934988115419421600397977889737976357291956310662109262334742368442608329808758376199421988167989744538846892082999147724038227923476528158067215968007605202167522199151392712605230953867263499396918585502364343342831706054282409345229742541280413098335793783478644175783358459908836122347440833557389478782779176831426061982533637866568686050460017298064822580798401725424176169467041193452552338021847163738886768883738763284866507310611705802993567961816735913938813083050418474398902329437539278070372037199087645607388472127315166909785412755886247042878767868357868966571550066907262653744334587734095594285886835961303993478911220529241778471478156633637233328528585849344443607269838011268854805660153750408989088276053094224788026573973762923310330993075285659758901656824978254434854469717004024854508723931081155138457714543358375421212378045401558596260228662825534744139592662083656141433842545346435690831836755427878032068665303208357933662466153053434205251208203648497094043496383291422040899223985564373996904363046237443329037722098566919339401912340950701949683658254117627022724026273411881062823910161938116183557242032439157673996492127878966755680749259756068852273141960110642000396890399453020997567889917312801792316705154188353845271550870872617032112341376946265483705240583246233164330473495854034417587179519451815157579026968919073526194313191413887001432990313593333586572076270429519170859926809751908658318597912702191273780348877613292175782692713574703622924762762728380240109665179807551697752932187565353846358057987675775394688958221151812794912266535882439578576121806086663410913435462848777553266707658402654231687547955604724444818875624120230062128066294654359835442500087846893740949354980767629274832295019017628663316588368502810661644436625831165562723773207956199558928737279905003456423280172515536453010115668144698795475106375275987076766987518514811177107699564286501205366431142751318020425735554477587286209661913123443222564045005009638117649468710889629090023369005885931502909723302788979284994943353254862270483890871124403548221967945058847285797419013682629431769303382535649415048973622180846479317060205198162219618646302828245878730827017879950512818044312508989128967482907196676370300216552642800408509531382644605389658138314795256501261345538191274343862468710934339956136481718211335027170650370892831922726817020974001655674350139577593150763395544387548758873287840939300480973799631950788276745334706016867676610795419466437139403905605025918969802432237575973998198167514723070252379896567454896599666752834415316976446635950436455525619398284381955982217560100524560759524848623089242652790055395139245523158523277470569112021087723708928898972087932407569291202343056926046451719342328915913746555670558209004079248223616231637234560674685652903100216090643411276339677435141211298293081597290650731604828123363676920572951108335606892044509609395692223545319579173444104556775061536850304177448582944019898431245517559163302266005613215918100643505736987913915395861583793732990382997250007608740273411572536275538618227721067692615431448875691721957164604892787621046787586161519235793448343072342139758781995603064313268565826999244123229117581279602893201383819126726680522751488995194654928245257367080339758606354704632106665463759384930282991879034711984869403163743692169464908157328162893184532973018199949193854209502399203337558899258315156652451202500580465935175463847069559313347781253622449181580795960077528640188031111306248596495633800308861832951838634684828997624279321350727833374207648390044359004173409090654619185805107703644205729177063480428962405729209634664056589476461601893314803849402113437592051348920388849890844690381638765922439653151019733175392793868555335789806140154595879479156990993452005043142303031429047219646180461613684012762266207779391182662591975899504008592764891105760664925694587986634286790186805913940814232510306355775360404725682935118027363571239846969888971209937080486463258787980502744889629860018639947933137701570800652239762286275353954403452619343697634733296703399659349499160310973295539946770640259938254952031396498856486945725136440572354292791957054393871031098448845196735634316695858354815071249132847548621396462084354568848461641904444893185187262085974654130966609669098373584800391729081610515187051786787692265087365842022674978512304118455416464165334689719274588471359669874432169917786017550741417642707556896334446378921025287528104293901475973311869543355779926145095054012610385427809259366685266358165308902699198614130084808693114912432556120483673457695273049078926492808450849875767499656081319735711849874066372702735935670325060092117540394556200425022108518033234326770548774124140746175707096586043964766531276413911860804039874981845389288845809696273254020311697624507258955246921206981508748716039769862144367425494455042003860482814697584196336066148864850041645372058755501625505083851802180780203375547342515439270776670583869174103419519353914703825185887559828687033553679554470276556277272689146827682700852926423648402677233677922025622565056811696610272919192339207811139438617432946253401749060157141719861389151747306565496870250815470900610272995787410019702329450487950615091725286060110205300841500113421242707820941018084907656506849359688029155006234386600284917607809146387961895884307028590700015933835710552681242612424572244428003358102256783509464826403742663817647716788121723880496147886659451409883678684735992707166333616030991628149983038759963595614033519342706161148047716930131384541271206980850199130160793022371285684808271430840401769048023626764245444124113619912913305243141997792698641467171424286123187686255098001752306212758220194341922823581649400993741414585533609751757610214993439977893103081966699532389839705177696114259787803756902784894997778193554059074389721412415780335241507758483087229068944381185811452361481196183870103624623234679094219011465994163726699795484906991049588155322944230065948299952705426072237447603242200117352458358076637344077004293656461668259091554371557635359008899749963681057722711051282358970177331332355788543167545961421020299665705466396895780201165052010619004194911389391742804522939380985558046440078935949220080527097253698456498095575380809687982042643667369890941718463684354348129782039027217034033555645728479527511778932238892157073290500931808845830436865317231277981047247594627460708810119869575676777049610708513387873320128262000851898727021877777883227095805810953577515418453937277676745103133095206727155384780148200188194336125308928026488512819896407096638482082839788188965413129086295224477051373253529139496733967645256927480775911531485345577421568114326803358488486066626040803425384289576274033527158897818539854096276609730547772511685676626887930073481957396003797017367567148552107439100359578013093817352627310111697064835464984861423596964329981434953386149592203011413315400761045194414686102688555708945160660349671219248596411982861672272507268354584571194050325284005151856260545414157498132219921586729097216047153861091032029074988348306890621878124420734568697613017624152778916443982235109162324772862480052871620492184558998186416230867431556554103468056399910301821353512190944841975502220614639018411464361181608070006842352993146228412933749256110453355965448049669631235904397841858598331566035787853696197389443006993229942980178509738534277545344895628483432548396258793185082685444435768127706614535973811445691736512053177678218049965405192797289386636872473588318177306617680810276700124308910919505675628308492566109900321034966690241864664081711147165487882638198785965664869038259562043778454057996802764031208467910117508325321122532628013092771542323294929640645217819927270416216852623114170057241166359553581454964908264413265743682159758363060324530321693063077029460211709537176862809258827494293521591278392694596866828107359773891639925350843444713841942402922766787629951696399709799554337271041746984572715332818604923599828162583380063746584495386095141369601877645950978233526020881107042148886029706088556476331043904680355749689845410120190605569536763225082907903126575553084170557772054668483335431141431725543721011227091636573138047388688296349256988119086672120409725369924145907914283732470524259001509803216289003784648152472847058391876764352222368843307729524653757223136468136285550696356336127345860903062996804766406989360461180197617136512722370564366570162025430925422682136008608906766051873090928146892854586417209274867136393648985387919754343617241712034443662776115040304055384303095971132340089026884589887693860157315395018134518081337893494053537100876058147255001130331173930306045999963542029461808348566722601716475419733487514377114866487830148428358260634910432372216473629251955050601329991255098923644629712860859368736366094500040290278157072676117199825035598128196340733562803006548367396144102272420521755403951838740238919672404581578188489960588738488598332241362707495662687682158877157223263834709853072201377786704961519933961036293463302274988658899129639029051585086272779448759273891028928567866199275507405868504689874600201763389654654287569940997298672283996261609942492484010461100453679128381054620240060171630771927166658925830631784950697650069690413779795726695155087159267546938861497396770303988398800889243262352989374518229734423585496445826270734285560184698352926874030957683333415451810938882814640819632780051666832258873653542892675830490935568269113743583147311119171541669724985584483605919128687078945633150176548238054831234494942677201913883328551181940352325984537368032698274285755865883777507682093625883820958606841058622756715903701114339711287164313954639809355678807680023831527064088613697039369294409547584991776052842337141033484471299276672127622720448443499477913897777905122318428587933575388293569702246297131710306402489283104788336392019512614076672424284012037506569521695698117576508561151878436199058330418599743855961907704682131714049916659268982706424642996895827612662425055729999655872210531064455958866304712217221003092936622156088315837741502843870247925734064869514695595099861989317530929968678380929427440457345557231264546689098603658877532547404584307019483368042114185409523148700272821004736589799428554729648237889384819235529849936244902540018221546442870930008545369407900371715981535354577709621260604117294167088823231957728606839909465211054654539727980238935198763488975830026315396574949978241222376682260177898012317268965219655304965506502292963122122057421264211586950624691524922829452881422980692115379674711094419459096846929411421593820360167329382506094369148561325278143676023215695909794368473112219957638487110728996761482746711416877712517029664664253560091171521645579533121360737840000048433130213406224213482554920865803477763263555665238615687397152231531924789470505328535516466176389265994865362708215214778544467352752813653820534908914960347931599837069053032454220643806314194119080682924998395757372333936026392653367039214268365972746361363794237138045566273582866275092259666280053773508488539075925651549811693879294340717144978843241262152184401842193148177023986744452025456800391046297269978841833684203828984334765698710358577624022029640446519671210993746164816250423790243749003505898700699764175258615289773420124907747610711567532022258110551367301585664153897457920091216191471041551134720995190523313912372447665869562226230112576674693932023438679544335648209349566679943221172450850369216203463934002078456790159683754909393842873777154354365052304090311739005137106314530471024301044482557225069602536340347898013953549744389501574457552288906818396506114902056594598060313485026510723316128926735418500292216939762538300922781055779780979855682545580685873700853443889620155429880268676032371838427888768684637048771595182260596431932940867669015399511944143447560998467838362905857048318740683861287482450091180650177911761188496247353419185832516789750258889706964731252113834107046512982371193453128553591601880317986145793098956482257856776722384607224316235042430425689078928908662003273872850064356471873836618474973709123020696372279775034664779935494481194620097370656320918048900875564011559488890142045756852086809906412296857865811620021751983025420443292385147853056402566797709250155741724007929716879102027351949886606512132715587396570613754105378293544290361532710279541474142331321228621303509016181181848248044047381293813944005945467997627073398204603538167776643156286275802112375482255102179089262218574125036293515668244822533594237503206893973500256967227577995069111279270187558188876822103457478578794841868991753383570324385822418622713091734512037747327311433008236175499519211812683612577172004743360730114502544531443979481123643952235383982806426918155295320092363858414885857144586618281167933263788143904984798168667843058932712029398567107234509998982408809170527871294059290861146405923332258628832076668267457549271386755934664715241839894409192964737582897838385686416946711615316646967373300215925049106231933589789000922450953456373977664838103025060502196136556538126503717654150294272679055612532477150628674043072276310003477094465790688752511969150328383437793013317493336933289720503333039835057294486322360937325791134087470451451359749863274262914352738519754225349873932968156934206824810947064627294107360359991046159795313813100857057149721128753446538533724693298479097072619580607402897015887573590877793609714166135635735510938331421908284774112345710535348622252161716244295518012336322593806199446551135825515848872422602151426115625876447828975124942370487421092800327479781681762230307701112985500116376783731079582814131248804074219616879952303337245119897530042212578743906074331063023039472827857294867433222822823249649385127366436885991777515906085215155803601797337099874418235498451235973125391324048987515540797665467930766538300379575842261756573018271802696882818652801455372846839160095107002972110597584854241481943270540505476320386162528216054317835567972668052160458015175832923369372727947360850148945057345055144560557023520137023232137248275333865016634554596200694184717732802818664695879399612137073726035962177652123811550711660952206526091917649162075437582080107582615784299890892865824813694586567708545984700891770943282684815414761572206504809039885365936813465921931391571625313540856372047061790164209011528126152451591842419302602514596251584440168370754612726099062103711133922312617542754494605051644123266157750469765947484747367553802151148356224860749799548655110598659670681934327355640386274766395343362125569687981634943776814505043154475071290630176352808273302761581528634075399954483641207461764639552278981728195043081718267789918459691399716568632345418282175290417177170443968379844505229744753546111035263143554201397394644251163928361162619052761368736014523843883254837679426934487182868738520775867741468758710376914267189280384984624113572729602592767860932295996733737788708454993629775596418226937418662009790697078441200691475913716096659104897936660282434990212439641320272524260047789750810438131471252665478061524131986273059771011027922627121097025373531436914200672665211822581191627945966694472360760004702279589155992466339622228860936180159632648422796350108158684157436189569309988450487612091083649628839152100550742317590239371943220887056041363273576465967263296199711667532219877175487800406697434778017238183381209760035575385705980200465607327008064690592782513663109243114805483908856918950445417332756019238355607025265410774350462654282746295272948598293212208509087754184108187092485898582270249463517785736603071312110633717311925713958938733513449577528702854145982509665436282880432998277032968066800103989166775809677128635872700628126147271662939020212111644933814491008059376393867093787306468722304263712837926181559430306213832614337190029002369380468175765165749377954873308015264122148685986096306943333682950532577628330504363257040459367586489497961546687925266588284050083885722660723533846484583229323686920035880220394089057605966513873591534983328703883749834349585355776440615811289769363218528910250758703139246766064617590827778884560294654505590838622621602785863873352968523997449475577377634569763471894922253843194138585329855196363252725877475999970543655987116906172253211726916586851900779744520773665306870215819825587376214885591692272835170130821455098805119414416333250236471105907348693264489817283514297485234133481245614416613075251069485420060670074115958913501604837944209214383202694798459324426914011593330061235980289961383592025158510882648675574092196643634287284334617960450762307325262840763863022676250114052787021546174323849399065006559255771736373773160259254359281095009371043067701148746778180969486994862023190522365086509598003555327868226681657241253368021750970586237220349876979702861897183505272506517750120374414230945905834595351237363528382936406515849519300890948119235322237762679306696235900861861153133915362559614435523713506882909744775048591038647720848673004736229344746417358451237635430622539237282417285191223408848696263606523370019574246141281807069076948044615928960040793905577482294302826123843001775666901958507756216167311983221064303157274540908458004850081572531338477463746575715553982494083764998485544442656924343967645763380108434505083488773287737805988725572912595314024880056693256771852749972530686163951389122080044271964199956734481994542026888251040789271763492065507650409860830944930447325733281331923903227695589613405777653559439955752113670834260715136409653703508909118283142631436283338415695216865656715911802842155572508515131839302523723608776606227032229560990515790448798495803412650928314620780129768521953006046337850928270860018575702998357590080641857350833281552080519037295624024357512486192819477525274448092770864495052210071783376854883078445954976259965484361692368688067851414004689705728860385473867624336260994837134233588207824742410027292267251363080957248157813565317442218560370518340072136425898772490596480496141001659341533704331539773316954584313298402817225955629800840258139419595426737822474046984602529934555744891419071944832523171546174492148376384478718706762314609607315833031360907210947774406408184171400186986485474584783081566993010341709260359637742526316134910404156306129194124525908821308404402930692773322978698597151606002699218372669369922790825720978751202100379549793981126822336584555150129460863895356020542189293630257618466677591985629693293762680822644260372461743285456650397006896109614524701330194015814713308839136002518588442058158266779048564784646694808405497577410436704235788894585145683252614514466888467281319294081536062026280081675526297400962908769229799613779245896633092201061095679475107705871501364808956697659483059390573695605645796231438812814646912014152353459949701270667946016542848591998363491394408155762664993779491547904347543994351345582390579572116332800829506086262968216876032253924668332225183265412841301421732113471601743522363019711663530349235397116320555657751756367448417813769392398946768388833290741752270098368162963681825510901649178270381463651360613782457755167273149362305043014230205429689798714028945226018602044179026673950402982519488887453662740605372910115727454449946315271300902553779170207401234365464090072290415010120355083117718231157833954322728695400149199165131574204432240744652127684833378413566802580555578533564098164264127313199783535314293513932067475253348144070649458099004775663193307785329927871578626159330036352260755454863429079912898878878194386538378499657629102448709927452687465195784257339302367439435948668571388050666249781302916706843435149803609833732638055500063223705773310592704192061917241619899748252296158151886224200910066169807204607437585610175298030836756164465828397939871284713509699557344179628699581563743793597833904517535707124005588136236460295708289218590032589839181989046081838815158222400462098777089436519899252233318367067378590928490923556430950221850491320201826864245522528549810851119631192356038118650296445468410267806744652550727709340994854788579685575543737894630099688474572384813886094743294713490529996793847266923263742667946164309278913596565205247829292211902423256247583253643553768174432495126815392449537755366616031083126298310526079255476674143910066967931222859579256062298864807150436468001183111152431762078076401380906228722214415023130226725465617692388697127422999227936355439245949171243042531291597506963357556691592722336452807333715442642169915443317549934850667061888276942757246839801069321677545990555134730950469358273530100333281842327618480149788079737103252845210196611458427332005961931041558110809363945561655125324336253346698562583493694410617766641330206577162010798842173142939839172218397261383391730096194515543308330181490619055233260680473470054810756022517201314134054511616002017944484059537680253120632355893653106781098424500357979764293301557163193140892530710701367360962067291286582091412091693981351479725681520303974515191120503633871164880333134871109132796778134190230764586712050551798888632003301405329186761220274806495211303273958331880800251558978029418628579812629988636932910298152988383932145011283948044757058682452688540833552762664180753752994670759993092442843881306872322795271196862868681491690219871125838000104611713910070618076699100292871065085463487191112128757234610377341095941595347233444252395458769915737606736791252152237093291221233470673009536200492303494647094850497719575495642418445461822099914658978541242985009050576463482831462303703301987900605757609258346499190732456502247326963415859182723992576845812230896755458752172278069458721811127739724928599382655827016416846910790806635684043777797382178962176456536275007343006121233396449549836647633602819200633497067836248908209766124036024967197518744428002323341243495931943396972107237851330600634657477751808420768875014789240241446178494812794948922978498765136649564473518756789700513434016596532289932447891407609915250895789343232909638075137436949989342657811985349990759776619497559643229346186625831458394260569589050634481632785866380157580636907455600917111367658560311907410953498366769802340946451969354882390646247590096171222067211841651888898030408965976016907413163334235955270312247405892918238999737971342014758242043671927789869275425225376245250906902348267456307332095362959190091443192015268282403945189177314719059383220477518754312810970656982439384401260761159151706242325983535005044363141607853651302835471605442583163850645600190935684930156122732634483101728182490826123471961143826457908347198944015652319852903688966200749653499842453057761793532960101183073660395675292498363452240105753923995910996441650897675446239731900971505649499124053212716232426522247466946332106157690823754637007586991129067136067466540320335707603298890933084175108038465749835961826403225193069198897596397824255800786250693446540246231597996452793989099085385678751876349603727924168739874109953342527805540148742622666914646667033356264560807730520638368941476372492520829797238450604884124578236287371996305238892960244881964761626317397088499941073334766748128330883788893023763986975853032427342460798508537177303730581449727711498672857787014607064047474143590130233959944219626478369804105453507396253381709043546420867284039641447793390146119194999232277190255773822375051401316620130669332256727796743931367821563040267971524260689350310698299822067867300275671687330590437182086118943543443987580906003295889568780924418206433896520965087565281202559113486172852185898629363097721243058611776249383302268606351492331602107938845005684021950668750051254441718816839976599299604106639797090808765705249448577619485208375389210721384197603856031608796585933677403298092984319159694479767894772706604338838205547952198348460058018648351509627775673930288743040889793054248848165588112915594662565212899345191115879538073195852396583880327122249702380427187165731849409107709800124693617580731479122479739919315808730870968696879876301644811477198300337351544915294385266616611327321454212850277583207029975419016432963246106115207956453178968630448107778276176312130287986707375559759397902461928725827107845525687050972876319245210213703605597268742954107645541760874619186738217626908587599253036587198972712596028260726690358036579990091240510483302127590236734727446129894082074184001232542262198409433561913722304146960786420868374208234732793019283585775694437111914512051354517519409270206228530440249985742356912073949364954691463346495892598568077800620809648834332174294703279613877942095826331289143437866545589426792067400661849965876747705408534091377208394881575910273356142108460341097672337691001392783763691654141375397010777552730269240188013305653234057510903396046452110207826961549324611393706641689849600341038720655716033038247425272840219417638593365448074790304751373531460508924767022250969756639580034176054599772483162712412810894344133164468399063554172408618409629246960813114415243904914444052580555335795935930370561366862516145870586110584742746630141550138351816556224547983327767853508193787531348456028010325557100414998048165835023814407154973687794058200702628947542349083593098023026397990517124336053922383806106030575476895526189542778668894043738275419198649936969353080935426505373417668265071295655364843610229060604516808998440776528734002664228416810760123463548242947645413436131813722542697166514580242940446756637230218128072611056338425947892893391297038958231479639816861910841866505282676812838600990165539610029910467552165899140022611663502769205892536390432936549180803622871344587440633656976372494206543885077059623863414994611847541695867814034402824511274683328135747154180355969188052986626925508389123163374781665547533778490141787084633445629913754299930976024263869413064799182634853884444107552373744847329165909148615046003566541841703492586578835170356531267164225316862435279740662179758898452055906442794863981932265651212990643187812504048170174524632673696462118097815213449435610830497552200282661108275592449363416184639263091305195862875214905650233026864248819784104823067120552665775167592086799473067966216715082339219364839320652345341210126268524443745938863225205842132072331093641215397211720719815509297932927381530326665214926495432913502583793226215933942294453074590973901235874166378946927960102071832354309548399304835945042517555954857486154739587767320381805946737390134951064664952798152751143806554807454772973923792344235677219953325224608236333437238171386446133634489578737913736879634855648013750137662889896915692696294813209695931654226633717158285624205618241258077389427074821439642526408020165457464661793662621247457308975694316977772567035120453015123353418419385199424012158293765469200015919805597360764825403312223987907056525596809145588530469380255773736622667399858379623958180031413533981639708272389995867922675941144932835540519473432410266467579442767398582255186412758756497190168220700835217983366399847377052068197137079182615725040724306919053025160988325435324438477727690026035662079435923696236958234771217417584185544009659683960889661337174092165246173240299790499281610553443682867469787664164150814147535569955782071272973740340558351451016177470410244417911096057923663696449489587775788051214474790089693846044562894138168057378933612839075364444876945174488773909578666920782364547756387576793453553164396077502401275550379111370294536088972918225224652672850107640674045792866440416510191258736500778317340814922810308924407176272122771406599586859266410528646056363799564092305311239545632675324652066876354285617281270958772351777773176187077678679709783831578376192347485889058272380626384837037052441946276924236995018528483845009794148105527836655205252634418985522165100525044058386854511774575385432121232320334751348000518635216724517595409511565238017905343853270295327296235646763684989883120257308163987982442897338830100232452441717575468717901367198555037846622050614831830533926760289615907780478743899923204505339882044888743402373305073503818475053715727047134732651921815045537920561722189171519347347877333344396693450162125795669861467603656727384869799931336784577443856172912861016460618973885449912166985382383238189526742352826783498608294071099704909082011702919898625234740286144155906039285818331387498326401600769666358569121034462941214220237621303614274897865016976804604823138962288059366191779190416758579282494049483375893805470862416423334567777733056395258754731539715183326719973260680318079893253438851755337195489308118060167319869282345085596103808857639400499543664831282167362193033312385419658851864446158828729749100383905224516901492614308605208761861447059492037551488992889914551611105306062518103353449043483411431438513236425728492861342296981207812277465520279037352035812314791065843043728850937657613828346506390968503416836804402073898998467385528290108321153199291114726098691100225595640803540959823321877626368444270702063042224400444894136693242783866089763588846465821726043546227686689081776505602168356624440416718937433169588302084879334069370428097039147837378461246350089897034078362930144797545456470139843894435592442922832024415377749829662702958228062770382549838063380706347621822997935846966853408561452009841909713410535809908125952184943989811325745524636740671240161299225127146627163397613726569150955130531431749144924550638863611070367818127147998558033921711813807126138465774187587856473101237454187082913962675466584114107843852196030007950140612131133193304159572555860338675486757858829580663950759864704144434699345583659328252633816240183765809221315147604539266643874351794009580707527140364096463124798487041367872853655591765706194503335108073319646331797910642385961509865392113092001633440307187394089908482463424777658660080860925588860779318412855338238461849782500950440456675855053151320304563279451377187753678454629951227622152302571540180587678438095004614277953636255595921530549684502394868650257336012309547116701448669902896898823198371331450273139942397303312655885527705419689122641981917806422193875474169561541145931209610673914820261851527272539070037996332682218123284857106691069280709071623204711551247540664117474828348372004445989638458451140892905493437742900446533694806743370884628828740055255704906370987738371446682573856252083208849480752418144773168593822729209558289650491368276628418424886617340920231458212861931123708084058802825847337162785365771551922513633827445695142243696952005010187242440998414757152254963712598528786326882852895247111386928048235345842226666932751721610266390422678532986339030887999851145546048388930437279971987559472679466527157814672917601842855629217957266988660381870697124536822735002122238917017144210273600839485927905173264057883083453808686792250353446189257979486078372452467779464754875576160874937786391191645500754441616844609098784089860875743103748812045816591307246266488403495141075952630617537089598000129763548215168123980725948307594131533759153381900692477079903230058902848477266829262231261721937635830226114446423133719569600490266207684047870753983267201186536717784523793240187165957934223592864770377693940101606118193500112484085669592306212993270707348491358910731162937117413192439832125156808418485595162770353811104053748396317017766938060519193772227888203402134632853746435476963082419492308506221486545232975838308955471170775645235456130728123835110962000815640549843678418921438094703047308695224944623028099416838523799056872023475072708145109100060174336497447140432970284421279785641523824665675260721829381253509083564916798336759966499765965998216525001784643723241691155989500623746514571930589658779673238722567777985872661042723057850898100955757778355995809257791166826022636140557818727187915341807480608427342821069704883023042609522861116136473351429807141496642605281830171130348738168215992914233514658837546448859934824180568643433920916851581587329244396225252901924092153208207442924697653213595965044794953715703364142789793352187342716374940971248974111974486646611923080509758592627726201213853755790959045249489526496995210679527499750541540853900858108065865860864525309286151390333872003947568982937487846415696311437607462046985855887863278482992936809814892776253485423187361411950506873617464192843747730581880895888218497811278721055512978808950989844014825074134823828875889034362788691999025670540703502337098471662581488824299470409985350015019495949139083573692924330654493622426235749941177568394482009266731618606148124187935432647747134141735151059575000570024022803903182678553069470114101086646224768181559238543505763440665301443385390232054822438029799479951391766530335731540551771552550711748554292930762023584266307653679219913469910058207028533840391208228878452521260899820137774368741040259629373672739450644670847833625632324884282308345714857129981641449468452657364288622715418376917901539435226773197761211713961475084160782918359822331353550626344606456820203429217067579721413934525491423173182127989851056928469090377348621339435722935336397026118378398372179606969682887629303583711950361500946585967048660736583217423739210388884472143359433636520140005495964106614186957524810736064749358614237754147437977835695993139073160923482430363344980367279874892708801252164843083931057147726944746707270249090087038670154363310386739279223176209651042102216809558391504697861854190803850348830330496668671032421492297102135454434617197894940737187660159082034312766095241736424866532274152560899883271972591676176812653921201667833014379236334718503490906078819762688420442109875799166337568163731655739499006444741138545202626261716883410881973660188239149088290821201421473751436062728114795173139503957884133062706177541742981456976262214494614016619925810098103689653120219253425261652663481394163156851600760258442056693985238170627150861110299549742659134774985772701524594301028441086883064402042008348158509415579557035912571791566792177294968100753213899364669796604791188541402505430328907625445066523225850576152683347542867430634125064845708990860073466403306633805004673999653634584825129654211129223045856240934403861021646632720566531158464118187857410142556160421726429813389334957195234363854646093470120065660584642425403555668290918553127278800516448610241313498151189610217312889458927548754481718000522974409738461834312631207061083855081452794118461537014939129636479730886150172700575222064294973226252896006563444448595501655759115849576674100955850556636669843832133577424912771242963888937375850552254876740079562887425235354052664589713838713632185876367143833543102247874657361862971563252064487626639892608936912594126805849305275790501327289495451191158752063011785313376912314892925971417991638832815052039829781570476127891146300842081951429718023385284460011092780813980276024426552173769743988562215875090329823605624373729383319602186793554144416030016872958570175535426434596691971606931293993048037964068483837258367941875923460478671752781352822909417610226136157860254885583374109135116175780625354235511196327318393404179824823712467301624909548319518771475236868484842075272803354619823291443645809115321609056616807707994465490747949476472101848520035995991373086650335589773970648117611264231031181320519504078422530024874239405131848370990665640169749027465668273947460819020656571354649683197948429559838683975701438480728331071562868384617159909681292778511245726318492823855697998227680875121133861819984746254095780212110054657098255304795139052699026271462161924748138056491730867484684134778111966568577649145207821384482606183444629570596257889866216792347093053836557183494964341596125227082334869126325465471007166691895201383856395337920042039901425937614964493434821974808726544773983385276376006466745927742448930537922316061293485609330758317885630553068226550835529703707772695520580219143932960174561310155185047989530517542583451023071722833165264077766821111098497768215839232306174716380790255085613135000587627632055262828354717670423903564420763481769658398429227010263407779497029619935742304744475805952716780804579606851646706771266506710911509059544677415106263992501486559420096468654502741563172326102500626839341151658948929579092004328583581272223523928392068173353084176767825406436125639940592659900179957400434992904253148594928473683883875487298424476841279727830864485187770704657161997277151571670831077226779965408492807775317960655772349263643796182466044113548520322885831018151830384626624679016987323793992189324527992204796750056409100521905368042346127408665532951773553804168095097202140065632431151179650965866472829422035394990338657003569043216472759571270907011760991503712293496711246857109342888277286605127249120217004486359721714704128731912503435275377277611320600911023739638301262220484831014182858911183153375877226479190310077329505823547166441009756709674834344057724291071825019490307514071337508526728389502111081476922087621141064825246980783749553669899742326684628653989447203864687178444017860293277365145412368117259038163993432376026801537528514776192828449685214660785813628531394107986944394571706956202216314240676817639116514265353542260888765987707078556389859000988184956195063380368130098964494254148873256406927015760585012600225076870591353685035232522219619091336474274103264800866341266881394252963528874625895500769965574405719051499187289130503050877450355828081555169474650071793151156813503571141919912201666390885587746541908983155379800086480573176686181894467379533921460993672624373260423086952737833964585295590295915933700769975664057114497439773925004647490064739497260385373417908927610676241309705670981669492205600988054755874554713713598644115695110230500051281088998671284524121029371809824987422909864862156996442903782463806834002737861811737655687772851313223197955563115821677749364229498990985475633659992566781510808491485321680579459476691185932998769853122714048210835736748049743960342001633566658811155706714995235179230476512536513253804632489607694694335902690496732782253834143616029037813001685040072107093795392828144854717716676273351690841742435463956705973119061487808970966909251123894024136957329615152463641951374368727584153263914147724897605940173489577696629515499853939488595021744619316719476056935007242852473267048749275875632751733527889548366794131559639025145684258005066840775445919632205312061986022417374837587663419073088694575957044910119558451779454735786967984674500150812046196090578088529813555838343345313916797089299010093805857364110647268915932854811379251708754043359984792823029197589723788102358979459114387338548212301325549416814750442550742770111655538116740705777860904052908948460812803615284374579103751296557306093570753045444423232059802857245247382905482512126402259416940481374719049088297340180555322247637374069881230230912819442709918432416305492794517349417788390250916500995696985979313861967248577242894773296022137137892818822805371611222078996607751577433912038062410258963148629911073954613130082813772969546362422107051713992367372620389420535278124110764906786104137515729773493348459550530557804229075494549253498399559903460940748933189379616988500311354278709352955488972161729532172949667159446501883183000559596795686905128074459353493602823429558260642514139882365967707381251612704824917458163620227198636007602986937693226516653232246128115126167823594388031760547524280499558180538402857959326411769728153679887084777088026919029644476750436023525685208376280128097653706931563205963359221861610652600355371291942688870097052596845631509980923184515564285920635730002283088083481484816119490707988087922581285933633422591167274886520270141462475377067921609081372578355632772276017931481909385745151067920883365111983736579132771962874390294934033453940069130072016893919828417522807344986785925519035552567139779666110933019009574461196393998322474981861429234402660501205044327489179384649806665267334898768410847139999655234031384200642069701568911595265446633777265937057999769647197460802537094873505318933689257741242198083034353555924407550219532229149976250128503283235374126033486334533582891022840842828797010731002033069626778369308886919336579487138646766372242787333749123087515498099777378350586132400173217122495775343445132946651308442105350080450938961141418531664603478884096116745365718987369005969817410446715793890371998763802563167598036379350982659933372744639646152967154205883865131587909231088995600517187817928272994825662718895781780018486757905951563344854860393826041780696696523130196222524460760976220888798312941527805401410292496106713156022269751881668092841841520755044841559309352789816045819906787522611028672760243872051028662969039777943097670688349117954860853783880689658180407413355225850544978925585497412792356028508041248398204640458563155746614861245674603222605321122237942532395342776678278482765618337024739558061183010654159221232582982061023346693349001331845294717877319344129948805961027307382605126917828235610870312458138028436128533060465713476062756493966306644297243082371047838611150580606300305940544713225598653251856516104323581843646277897685381393118156011159369152429318338082373168462895762669015164939262100674340970237012625013985980635867837617722787862359481259960080069922797629193438079765085611490601581037908916304783287849306193068002601732724451894689578104162007958021150872821532164267024671224774476073771004797952394910653478292808320436648739590398076740405746758753092843923205738239978393453906294863375805687004767131449935112809736863622965115119748061529608100692352219022035432169155147388307268016910793918180596764038856703622332177535546115934033003227303551311739183049179899893820554966047408742200709191127418685856754321876545625900801533846973076105184887004847051501720081951132449808611240821701383276696156795867626664885087151795874058096064434688594251368803049784150222196344359853417999990035119500583947458227235241600231906419970609723225093709723543804812173728568516036736248793908168469287885123115719205555616103193118638719937916200670693278689585572161739259816942714807858871908940035581648445426570378901996006003821838165269863000323429948945341036601619305550084619872524642207475598979859562429782284410471565998085947889137160675308147123091771580423513717654669502280869939659925446522046486083384673851615125064240736610621453317677822942113985995344168395793344391625064618487628175543448815697792207717688158458349428045394694734625200326342807108509629822567395168399485951340864791989895301073270592690443765534650761173167057009753368312419930438492241460856745824353861880296397387310528994903223226423997265631768948201265584896614845483435617854071053020924823414443610828433978450218526631577397498781009391033064428110201366435469969557813738960202003406996529339125191427068163541445353052861265224477798112222394497707855564590397109533192362015176616807547205637559844331619143213993252605241024582701692046203942558419546031402621147126989697785280489166335354631151191900602504558748585981460561964374444281447452067024297102037443985362077983310951676825826596074528905256270213840009896172881170079726777065553582336877286329540130622411289792089486330324523446067682578081499242159037691852733433216710640702462295474984821201215310057890230204351755436772596033305378011172043013203518594564685668042110447408764618656977055127813359618316247170172740398230002357486978814288297874084517565555042069279074751305384956577882587019745849072141153626976102536330285779445881676318966179969218098406246591633897152313858317178932191681379471316995534146758032540279720019043715036341702193015237690426970117236239307169498390775774160488160445476915943388198545339044323864983101696432230594588640910189313226969320498955953921913712621467490301413478710832028861139027590089863233475679109169274235542106514687916554185333248757704737444691495544822149332039317821661485832367974929921141389344031837047406538674387778340348804725154073312093657636329896721437681863451430266066012845144204078411768662526150269637776049507841249731236378172998054028759767172056598808080035367671419558819661321008590840012697241999876244539261928382470429616084634948833494098819730750270763558707989260474234442866145286953447972493412848443001301747269382880665158118999514760020354970062906742122052535815331635207895318669551055150064039716764259116287319785494880450134685750339989509863019708117096715722150389754869793199356444152709608541073088087306605447824875878007907286610789084909624646919269290750237244399349980727231439444475849826864226274848768575035245885981176921865166531354169894621385121853727289376425303217232599417232825750766563625139520292736638522482518760156730083313806038626369499387183371429245135650524858671357062749760230663198705416394640351008729816503007012499103118409957641679808401438751266662583517283612689598756207405932516350557445519863199925730626829324451225693084031359880574493109580285805152579183148421971204545544074773832640894059247151449390130091593319721007229324880384169168585403960183754118511402107633379560043281171612243562770175726033357871807335775280221230883554874686259656256813705125817660095186732219892154866650952546981239874816137228076652543743537173071802516792348483150491102565432784720071205126274923870229745506665422047051774735114562094137965341706291014395138555345257623448131032504188052084117222817395696947858969758841530491270049560616453283335742866517571277901272955714781707642523149962204718464017784305290468336265986393069859272571551741067423171554821529708948607696791585677015295837051960738078621459214700244732191551085812197962755161015811776972093459952533138181484027495778835793176913479450396966538132680610003435299264945387314782655650681041753195948432886471279563652585062431858017222190900891245522650097603217083295132252546911365878124338998441011832499032906365440405378136749621632997238616819764178770003006629374030294643564446685046542118096326236381420406368872217172482741677033500440666372933152392799273492240672716154043062785335664587023112124671036511778931044842773067454217165034240614632081785797806869880051274150077274738853910394897910741827458496454656056071570952571403898138806842260753622853622067012993241094165996187207122225403236503081726047336218637424797681481492586453244495132161728018557718947105714001063340174064781066617313916252750780136621703557602605659644760571478715106124586349372528385511565903530583910032437473517698445937014596638676688447460779822955342814788333303954456484973284951730060303620353543430299276867606907090365213623142112854971613738653747208313906963016833108568921129727946754955215609055575272036448474193757328632110520393806143183993191190276476542396463642902036372157708896946497532191537568304490628789684351209942687610470676911110198213986279701025851764009205869732531635302510525777994015107732759039188149742374627258406183866672290128344941748815926141067832950766832675176272005641623021276731605583783742611681140433396399726619473544192262377305227551400510701655582163087528859364025519985705931798785553824923651843478874535739853886803055766618643274607580243760650850931851475742554179228125834965335143803549958925507740667378205638185880275520932313446266134253572311342324207692113117028897536915230892012939839580333740209836123822465705399130193319606198727573473438142520875979159859826847828407436523731069299698446234835002966791916146503309188119729642813158166092305032693160747815438496348331692263983069239335197001540798517323457588318250331677402842742028432355284892709004584535826029410905628281386101450404158233207763650977228668495152187530702673352340304761337879231761901267489069849351774677783793186961752401631816331259039458694624163145250012492234769767649307024011383721834747121053712708245248965724822917002858289598901667896293229686584930850001212950834660017388895772807408803447037953842436653034111696036487298593104729440983699550814580571311426181793209922348729198047579066064920697490902169628342915405037305752315039836247372673940903117726973382566928402274840390327735410888260541383949650873157248358403750110255985499910892200532179587107296383343135041334835338572734561247128505894294487471901180238994830882037807704909243252340952322676828586660257400253704142747199616943389449896459040068516206855061458067974178415167146801666714447478429714702988257861795332102619408874435318792152845264771081646869426114191911227646956711204894896658298761132525838458137111806340515869406313743418223171419600882767946539542072295863955701723158302246431229053490723126083785443150735057911582418974808700115824670309394160017001097124815737856131766866990279852827976632371201242321279478770501753885546066820149575775445842893803814665357904966269158270221036504987057840683722565402903384146287361785989211243925173164632216099243729340214443928022683863699816824345486860441930547242018720136356926419788525835457621954498753541542184136197981818897616368725565772461508426292674510603970856817001177866136283066846370735288720989595726960939130638056025179049576440866768365368935925764900897239635779723922553270821372905444213889548652862042238029131540887186485437008568531833564323274604240600034524769268110558667344530696875452012001305921695595251972910350778760864326759926035387667006337424927126529761223708033479191887197565328111024898576805598811722412802610699332050478519703370885345991695297898011492075215405679422377469067746119979072419969278593315875082395033619842260479301286808439808290246782813683139808024944772502955942657640871822761456781855004029757240938447100019224672244310885959193056147405206907079156437159919110046694449708124267390293115374822116422395961871623922762148202917069761230185447416816827876346367014441440676592034247463413324215181228949373591122152245606373970462479918951182181404991431383820087181074338298962905055325189303570395586901098291441465938912931210348221213738041904089389572895449209055510606949017880448474585693922739841859919313528099809604956769751296243667591743720733635020627919801105481414719781792350804510674516299297315179745747897885295523806708644020572880933784409196707349157891832236898216392976580267986042571298209604833992859767898678240933381927600922902626107905243726245102780159857206541101852999372991591109007271528274252916818669729894516485989847677248337529433302733409412406774091404501441963088941050724450694261553217436453330120356032253244154457608739141241167135514560817363668413184143688447212546837699223330488465204699830574271429057591119221928963213900429376662586737905128680606398627415978407167643787137685068624411058249913041900817980065636512964838985130021298722661575355664491334743195517658756244629398832142427775194637663591218008200755972673999300732878880151118587349243369545837656623568696103752687032013918738286928133132288267989649037660848590327396266567559198184234359672699116897764654495223902486595697797117250230901859488351432304168774997159128872335349217745223075551660211384922348159688567364200564337032975199664762839056048458609236988515368528407842278859082189028813083342011938294291487268807784958763024276727773590625640179883473153852311979513459280911213617192529468325219848848628493040713962778238219599286029015117469866706057389612098631930703778032448451824403598436610069108635268196989596852392659714653495959801732004146339129780055236181241435500700447061216009839675749984776730509046734222632478155139884158877903468324905582753573038348762984074462844964108121056194470892971121858265829405612260180516400251482739063717558643834673075417490256885604146787170534726192936156310336608791595871430677340769742375008362718585601087012061433904293560731881432749946676371400727055274640353962248003042037263424606651224585409284158865713199778330706731207402222203032294053601848356190282681034732640794714928441294099735822425347943302488666400155038065417685508829111767450836825894440280824585382963240002283810571970226840270487709212421971824972517030161683427373177994513796969428589225580756961147894371124913358086286471036357859349843876696771533727628980915642049465121650695971713927483252661268244040217413525628056618602275048777405640235446549386307837312345707357974099549454581002774134264827550885445668482645897285447514090965522835243353313241111647663314794279582504532755189047619670632572273866272762250105569939181754960011860120506042822035961969791392073966117905100471521729398211264469286659989633414884377706599636035864329147492738471307569248960749527666427737779497840235493138804911053689781125141139380835392268018543208281674051985921300516161887838993998211763295643055387808108600596420310447245384256234860535131243386846167852642830612099454922181311730950704690499626273647560824490185038760425646392303153860107166373503870453902420396797055212993524329808421220581531804454159046017516542088321940692664985511164393718720154896318687436252241255750841559500388521873660223155529007261777824985166210669706861401582140291040305196137422454656181637115919878517685049612399084446158033201844616065496194303539312217915435284025762130874106246070724279033781206333945680562976648057852822416539032597884368611441769772895468807474825224497340109360722404109170524617922887448613022634494121963557154599869081263102616931888266472434309508446701351304946694348523259060249922241237930402042290989623424212649635887401678749650992006898591392440025987952104912967375743739411507080146638410901865542722504710471187303609479446985455787481239499091861338076368031222027649807125014095265778307962653997835415161707894191979556557498998040140851759040588313674682947936367308718590333379624759982210802735525524075803508227334802972974865907133806983756014564284295295184421742172103593990316107334691695552157399871806187806191627277318495838478461315726731428506503274940151400708653815411823939780616207535617955729577969484200061802637847624319129501885917620714370137285319553512436513983359477077467578953325847579164708101613411684876674095775837011375842694305624895974379263501848055911627367570757085733938645864275250440197354202188674284791129592367274559863754174306105705075896349755080578216200110061610334327766481477708577337379359800709167592900920142372138499612532210724787416217195457886953039834408008656946512158168830127300788172029308405674652483222138339878280016453081535248055274518417605957594927046749138215301153543575095958054945766287528827238159899423061924680264919491219992573397505320116897625503404208708626951969561949117768193479259917759345371631252007105741083932964153426700104284338896126234615564503843340819571532094879988084756128907295854044029663497506135714446852727654136738157448847682941130925857232817649126220838466367002682542961452187532499000028090519969026801228768422879213100301615008110460475435710826830970512566077415479701243802192274239198064708813203591399669106730129495151292692569621097352365784980490624646031017811177267952966326130477427685464209408222647560464606315377576834270105486393537183395452073880178858770492896377285729270196282134704336387231716825193530502516981982580589269539865190893745034778867755828134200579361691629514495164476923310029250549330164866529806658121665984037502899404655423486317438852766886252359317672987018356847060274626835765849618229070488510177911229968743422392543846823832201223281639060479596885113992593524266031949376165297592770848564641792763496266624061765073629071811980412869116242663107555134218737364827124174966961462202578257053740504037273175382440168618197837167662776119271061465442868690127174858834837842423294943106156286846130472454480232070917470573997226288005591234414701631441742056894814305093776157514619079999413875947405735868240156286794484155224580445091632739117721810074900223091518036641432500551239447920858840651885553231475717887883294135269519993697661834306367100092081457729996230941539108831390461561982006609031153638455748887769821133399128239910598297678511911106890073877031704587409113846044267838217009135751726576388189567831116279661035870514119084568762751374266868570384378363458503292955616964842161238597143485263138255898722076072822598414663013999515361793316916447176171637330624875635100237101343755247486657431895756113877970348904159979986515364646530280088835016277459401943476125838397947015891435750658223177554233086206869634100708813250407191572133090448592054674309202911461582381778170855129550520929732674962676242336794109950648088909710316780923592724313164488327317707946696856414013635027112691437834203456694184182607852446415769461351138779198597692152190520060108406270530393931938838964982408256555859777361708023148006193978339325839151892701203967482244755894904752441345575642387450623774165415203114064988481876060387790131610155655428926970357801470159434500444456859324504718187425134720361920316330167970765119421628239054198744595816457278109204250267619714042308733390890824597835889105933882832904913466091418032066858503199904452476970024404979715309186240022625966619121283544135175496316586869854259003561239568406027087211237158532241466571694869144757148180655066053332249213125956198360030838386896592821798499049509969433176726507910411535203512044839470110599952812088083079580975220586653183369282754090433427701727009851083682112644350508270154334427039419249373803759415263810964998398261093576664348118260334046167389652385738309097226979335446997473147591060047178618346468948409238590610208478169323874229552385335571301548027236137744867301836994142640185911998962622097155533278206095915491170240247563529831930824349284604494746607416474517900455530712868244584882732654319808403706256586009931496590112341552377690068009027915042773408364228668400109334665053423046404703717062901799779269243804538333136506455689946791071831686879883694745773442182611486672072322147591619381479675369840643482246005233204940188377431761476483141435121667247902601007569778191991976921872368326084870775734024475008493248810533333379226622463682289734194470236526924905816815568887294896620713608517959810920358315045121698025713232499051777139549979750553655203754539051815909162222515472493945256718039238602623862575759256779808957810755418316495952068400716612533643780209368228957310470472164052915170591501807141318183649310891700035184097472543518845215961345214302415188265194558591913415157273198118483642931773669107688555139716493234737628758593781300608265239556554203518186301646237175828251423751667006333857020497226820965147723222273950170259320954571509403729329831537168077751319814133330210516635117527595862209508420798746422470742298952162376766892389199583920726753663154986598910581046907748168746162850967142358831888437372083859755124134276266240263069564619629352855118851282313158187789378144864228971743297323988511930508372513903278455253184638524538507142759234513686846865190541655984226042097089239544170597403410633153305994740042663610733271420491493352523794966651572607266698515651158794487813611097891009325555507970197481321199612369285963649217297027926183569444096743868655425984223870490497672321738976182679093405354163423464935608787786110062561029032760846992097037169507134323628813513144203636688229728159069054368414099077497964163609627155006156390155710277440406178212839521803029761172810112516796891530565408957769680632439914818884949947910632709507085542385634941623165561844044316415912718308777816598693802967219592092141404046401486493791758998866746791575970205986059960406267326793008926381005729334790317349073234331210139603327045723483057324341789516058571190637939515667728973732916645778477702947441128812581368045089306846460069408547069340609311449994171876241558556082174773262756985765786237026890286118353827897619480936328307567356282214324583314079041270086968988943193762059271630771297700970955369515958465243367681456070565084673718921181238255462196048353604739948476068076098727557536641173483770949396301170381122534770955012531166554340610707577842116885002044427323230679868035541731037110813405184682298561365171402634346099866988705918588948366339108658208467204309961500920027167742460364995921066260408395547102050448423901795401495764215531959134278860210424575167506583528833681726877495368900031170867297869705146706264077161500984317909158784612943553461270969903332248518105607322113681984962961647963437165567875040816070753886252836257242979427282128255785966366121160783906077927377186848049574432747391577234592054822345395091003910126827249765600276444833988201422486834686349908722574661751236265320621183289703771635989334671929438371204875580697465500630199360460561562554135720103463948640833422909599548831262900448481719655752680078507223434179157530366719157383207085104870301376664292815506494764523742060603521687253209009145964886774709691903018836424181202709747123422395904394317686862819942103885751472183972087268068175718226685883151879381411702295800359490710426749159464864119713181924788057705994498147889538724476423169574444525203169787532802053270321701221545705148579757942956519172422223537444866381330832213456676785992931904566088997180616924135236312275332713248335171984342188365479815328795582971832801544759654337784858567201538306536043891820932717861811983419313439464927739546288346107342945773950011150002013623979465579205951398345495142445593745781743927036557230166211165612089495868099714605688784049657742755843529830880958572929286144819244305008864057689361536794838857200307984960603802031763693510010915997949486334496575054706441350415181222312190273189942832272372162041173426263602884303807208228823117579971757433482356001664131779576801537559295312606588729883212649788550724432560173968127494412075915509153176186533003674257792535355631708465890960026580870074364363039421996133643321006357125588442167858260103442978725479929995402973934959848037736442916768932409924665794392953123651389498213119272027399907294206264369379458754129507762930419734340217728598674864626055199521506896190087170343366226726833484950760769120605940335486995955180917789732048486465610979468629327635091537778024644780250981875178950166159776399003791525696542038345680820840532869525075024578964358326651853284519486493502468938530614402731696577098193813883005878610341041634182072519231480903309039509908816327671946211892714933331425231146995985674958316710235145445981766296196672603763209215264736176853999832298080186830932303763613283663537433251036395606960601498473493347913848435649667161624578347697634727172441092725512419626418798067847765928844609811372036700753753573385740621499330735351273562312399786755140151338285584522851622174112678225201250911571320292476541123054178977994461363738158874435775223510043635886363582495598116962293667511728349472195597201241520994847320325046283095982516052697805968684864772172289736954717065843178669045240319871108365272578552744547418059282814333037919753022116024768037488154563387779976538680680909329724731209004376878044539666710073944895404142231374142457417950296688349793301456011628241729144213285091949311612991627649348323998439557924891145675671981076388744313788604646429983558155657034944584894045498156783066007173767122830557819285104663683428498845965746204383123292174165322395615174709395042196321395657259903708656274762759775582169331973534430369068856246566454023858756688611294281517272088392145276445718920856075560630180901753081763811214515717398617341290404574024151477012190477249596893949685791971262292577160219283834909793728221275538198285686544075146011099260205703294735690698969034871416186330954983106995938632095284777128573696053399953515875110631701941753984205423493758759263152545101038097086955356676081165850286233321357779959236797946969975202815614181057519449282406653674526432143915130108808632028642050105886306426361536981305511300914580614030643164588192250098423929738061384685171755545712303288672168045544455850078777336605833562850886913052525994292590324714410870974730932862920409629224686270848371976688253681249411889520504229483020702925920565371078345340940096927354998497726300899794335075281734442561632932872331875239365032484496651154721759753684802718427611571408907848920139146872857404086485079290824709195583349660440942390005621304551218555821132943673445930789211561739815224155604683287978530593799754664948543175989135134410945871673411771482970222294752058205725278208024697158095647921822154796361958999302696353209346538431974123714332421996606625848044414346182944134697273967574989585955644795738321747722353278934113446210622520760602868796152394192351365016258454915766817450218450901968577337123542681448267808773724466661048954958797657262588703562401999213306716340062695898753338508521521464978746193010362860141920485767762356537763364096981632951055720750411407870353757048293452136917287178838389933597091091247694907908989239903753983380927476479024775728494401058874149166508170812118395997371807982597252397489333302546372429424056095882885966152716949679491634158429427353042729337905448560057741238480340406083360603992691641238577972235103220150770306504750307478127968588556475981715154297852551947257410462194195841031693560555172209765670397635709499657212419214819811479647169222951650815721617768789242061057155566449415263885829594712522531515168095021879552998309687094610476512910572131596631384593261882011991909263903180394346830283395408145807202401829191579184898429401005169261247036201311429243974999018681016500038383993378024044053170188133652118243217403019607439132866453168349479943991028080130687961747210741149288807482003207841868034547848109728919699331919976697423818843310559316815074467071946232822631166507011487343246758286061810139816476501017280580425239269456228724327315922313840129629579779198550312894575539967751593381881215179919411339210190147004733810116424079199318439959557449794257611627607337006463286651581025867022250114292529447143459795103445182529250294111254854771794963654519729829244557612282402671986393506966937895023847955094893505733917373964359630774754144244538680508365078855555278525133841381046787930320027557911586294957750139011229409229586085289711024099450810861454891429081509349747555087351695237460537026926061050404935881809493906661135920711142668918655268073520151837835652836130036857132222295710060090313280133834571842263110246337031308012012438625212377451490555547240556058521681600984544945961109824843881249986829607597767921056922443303756905901111533374684502571788278054877186753140781669547937901261736136435953011614836372216747829108593790461366566688944145351582609796742891914191783877612100917844798955664901551792914054517092383995234834222349277098255901622426859245478392600414044734684598592272533479949332115489459166367681703267904710511208249647275788812178968954683947651716531954940468346329324721379287122513490120283539715932216462533434431136993090806828963673458999448733246584927058602377263861269382238311365129988462728108280006132300000252191154772780122551841272324880469922739010106930049788010821996822584614477173030178203621362813139885703859482853958593236241855856088982658788808327870256580387864827348215532112364948626425970828501158399745104872170028332843552604681466446614918608013881401102529399638516269128587955093898853356932169594054408713359418593877471464893685428749357742379823223037293030750191476372792282914310168162924596063292283833037680264404750602901861242176705880326557221247731106911919416163573745664703436121368356865651996341448325076016330903889404059635404041217999508959120629315598571323939758897699420167476215424544966414299636702104152488228166671029880709474250062020948541672225669368819861292875690244586613556936919113926568402079450376713822847246396711510238600416454460086260175750709019103871780529403712149498625882260173578738012261860975791146648704922927847872495215357279026122626298193165413837153282854868317098954494712504814776187322487392094283390672634431496855901362907375010620749835834707316456711404712316768874615641553768659202761209204730400315937963472560620060776235834987306346166857868287716035725643824259481687370758582541891632336612550988288831075805986882711767692366889422448292631893816647054809059395048390535185269430296081711470128381758556629058045399244118429005922383850000602835676451078754361539396982120758756336918029132598952052485421478827113831408881784234658745746385832230866503828965460148165709756995206402975655514225810879992882850380212053047044344750891404549511423760811274596533608838896589781072896722036507487186321097938140869227202493628158770634683433278756801532162031809942757332614318737914556047889166623755819438935093187621261386231416338001474417243243085798904487142317042871366624679668845894777921106077112679111171331034087114508837993375962511458093120358108094467119343700297025296734621521689615539629965362481976882924366936245694514134284951799787229459377086465632210159277584145837705748799361369911493002231807109072482731809850500330501659285250533612002455671648380124240081963376420485720982293026447363744104161208471531166883212804028866727680621928859224823773846543353744676742350665497078401855598324578256657739484018640768389554642460868288388284006135369964250387052993213433375705805753815329980075528278047153238323146810818789150444725445593368514672136439257547853766656554980962142180486698349885942998157745080538644542996018314495887370837384790782752146555938962296563547983816385858746041573866146915254240195309240800597149771984950105961317660939255285006309754799177659853458979782194690886263391106688493061246220242814081180855499723210646583039513726791361988007143447733019837899823442776104555469725008144032549938146644059997966689665910742904049995228381804449133120294820647022826677406133652773398080277886827074633528082018080804902003520394057520165142837985800699316888323209807453149616250952341144962329974300120658719223391829973198198858183556260722417464625561397831331943710962570749700626033078776910241618783940903325475036256306044220450366722600562873755138850460197268288677883763541063825638358087340305562886979304062646965658554145220369159439986922751609441408027365659718562560498560391325651700199552227871853420571411425244451624796037960406189749315463863566476122967610411201928686020171144726686425644121624285404534614924435994956949982597582422711603100195863016630932164303738466589554232005906425508595458280634320295356005006718881320958586341474376514478551602935371353669873311659779433290635860396977413191732519017688548739114813141143320856127273302714509291670822930528773483526290189004630144162679306633674936193638913184472934380450891014155693842007987564939918423533406661598871186325750427349629021705651704830729818367633880642148474867484296104318683136621553395457641608731805754419533370123144060153934049043753163750353488403497078849898542579180570886344836838036652893806489206986528619112619898570133158049062562538796513371872525143150539086476450330470580976511567053503115460815405361471036856667688190244073183398078970215157717966768972658321784971852799883939989649924015237911904025887934998226365044396480453141622813701278938577758258692688814887321131936380869820570467191764224976496037866018863779328253886633125972099525096525240939810565266231223991700515206434161324894481266617490510367671101526367237804673498824113140118611815158544394108542938844068902425955209773217423103477404357304113741175862273033583500992653528016406915726486661038721315085526214259269175450351873313548264895744858148139422519125822489470103196229662065588606628690317009030846132310717066285628196026718606175850808537016775719963929943701326674155939255175384035446235527060264154241478069878492646657142219050967045558214851190262446521939286978038613335883033250881822195982780805821900033783110744296423897561096594746260070827398332058638979156790073875533976255873165964275447300989936611900795530294367683368749828797363726926248006912753950848916258246717858801192801642386909980706131631116023707715210178435730335731910410255259278807363794277521112499317997045916169372455631865861975609026983618228902485780520548908389426921128609051363086606673998259092135317217411546812023790396201099660876131037836652963290665198120465806619752762019446668421606998467999877672782140422156385485967519246404765670682717048999970136398610238191790177721621325906177374171250052334984362034728564635383930414962822812847725120726573674919100041940039576769081881899272035886932015791084132650521903430691101891183850931754648763741071393981602621367439862656433358917413141672884016044952317054702458197133033718825370426068403027084799822545333717820249360905920152866886216862171602517149439057229395290358118946086621820522487132902258479773896435688702397645912097512793780094907084249104287623919797664881958488407746094598216786389304167041236977598481112434584982477015107886938056331111391580154889163569898795053948095102741907301953430478097213360245235995583347062899840463616363618621028103494316750834056487062969083186180940202417404914349483298936980471489376257137532514877208440382639404448303033261972979318104965122460111148495813139971080193308669714869700410604773835497093257040305673233717997730032445467129984038384391212790564269491851809539060322066319917422606865320785792435420914332023225163185717016628292472638388226331663626883239787498376491547077280522664359807008363166806528902115999003206783251500401525503437487617958660242196796002457931055128504719755829359091149749518158783240363587646532670286632110457388241265197550532984958434756552007810984503122948037728391650614117918958335692504930066343735933117545666865814013440195864445015195460017998990775413788237281744256906030208892301892373605133476544957084251761757504389988329690140061274017508427058631879815746482141560069746585021931695493058577443751916383529760086255066097087287150117399483225096693174562745425789740782142188372134704469745502975969988154271030675748083841236028237677531697802391632081292854645157182397406985672018335776059563781627784700050137791992547399841559705344263003293298048586861624613861819428838796627012871880028800877384471303812051709445801859766293016249313660114255936716641398436882031787622446059026135168137048932377555324417743911629377537197815159850680570912631380056361626092202438540437756522717983890880015728279033407880300976292801104999905507758312874478320470711666513626725330122477548170064782956144246719207130443854055099465384286199003840005938675691793730736705615093703776959804725344753128972115609344658873273907072783301216767088120030572669797657142625911374702003202901200729636164484415832382603664613692810764444962739149728427919694529242330945796805368172364067689953321685541926821978170205359085987870016719498382376069781377456862739649603277655309327945072387047726216863189413811983716294514581173560102548262582820653314455122563020477406480658978819505940018485674704871706344509901778729217313301944700351685093685506084196563236484144712546026483859255640408204498805335300188900140569513552929386549911073742587487220744181119556045683475883571872389731702261630548708540689516486447964064094677540473210531438976769899036840839492820315291117541693440744073023235826455488309240421391231336963902293294596935796651339569426155495451752582605513026755769831673693994193919364992934924162337193788609029400452490144126008295135321695022118636736728865133402058199768742330878345635753673009732102975899368766784556197089049136422722856382966936980652355146124366710736404083909262162149818477046639675529228584014744459303824671671867916732701164811883180394738286287117673639480616620494152399242690142931313579279784730521265491246262967284358469961954219082635213608492667701809284750114215920449226582027948202156866443907669101093571459798369786652401328792065347947995412549761992892498028336440645565775237851089478478918269299960993053619958305794264755467841452651469074295760405811615251081325355637342566554656525486655726223524808533068740474147744531073123178585927168544154877825742565612111780798086237339322247286893916714236523144163510562443581921318235158529328240600720069746110842199564780832715473040891403604872414825865762798646022208059646272270919800682355397062236624515922717488581920202158517802316731223929774166577437861851469195659397061539870351301577314556266801415448090926734217833371497823024848539301293686781471227860467563946765682536830384937214232181611757441570025976118440844034265607028332923995229505066638313359402844996910000106361376970491031623434365410365294126142650134172548471064766856112167619353270647668018326822653578115615135860425833378939510553430289251070180912976217123340246502733532884737009111125790168102637241904642936877805683803357934606281919077266306840665893697830308817973882938727364388447833277231757796396859619778712539372043858694302027558242137476466729181840567320015649587021399386352370733722699871788153112464246214344240758557946792542525943947435265006147181470818258455045398763220365743228194061934901441091667518474076311060559035079369241014131290669387832710436142780273307563647894756573041659874194994805635463155482681500719657042406128354021093362626105957319190490537269858652945757260563805129646543283175245582894768376247072542632539866644332551559427957319217661198647192430689230776338160338228853589558576765989659346322681726429765264666483450049759100395937554759383110510753306115639893983221253010279417078312289567419343516961913643445978374843219592975418056304819660369900533206032003847384852341972981893348922022758380202501422700315157283109308569440022631481807396045801467485818461428094890255007703128523215821036546381540490757290916702919620771423811203113869619690647990766599261614857145120811444217507732756508006569564164449748985581366044304548528851546335397770066029232358506073300179551496874222253177997863679757685733217675115637861368995537259084094125351370789584993998966537678271454647512575991472848919007328125047369286398687717924933257318240866685369663490779763826267387903218510112626548973920567192356554959377740291535459252666327384215359229812816637123104534704028457779305290489189884939311170386699492166238858220648712442945385399977637154693837894405178780314587151875597804421885286484443906338185750330318987145588187611858364138164209732405855629321684564301104937835015855677874032952390542662634163674186786803545154685788519043028017816895577696216898303705720408307813861067193521055452281860453022304399344180177868498942370144199020024952948632149228612582449593484025047925797304386075787147045156096730479329606864237399842325138627501817668486193372974581460389625829732548410793606312827417893964054080850349632702940019421061679353339597888296854565392407267375393874378350233761867764143229139013705256963943540539757414721714803280436608788183919371082857486316126405061062259741887072760349121202438239218419239081362609137135412349396496571783809940299952711504444809519325651806765427792468733665055849563274147840870571188649938944666424658881442967630266600541510482104759875869018398600320368461605578793419169657799596797497256185362002831165225175000135108649088197373701803225847459132489004610035047030848524321203884436592739038043847330241202498499792081522129290454149211863493803593008431438320583256440794264860611868956592276188875578956779473388274631991574206308387415963157775514637111797819509788038503571685642857859790442706843450271304383861183926310338490949665210264671821891176909227468728687789520809276866704772361989124522859035313792261662291294975299939469050111739929837251360750287081031743232208547389481422932788217619518295621391303426976611085877543421794762591833213151590946668428259799813930356417317835305310835057309117595218736397375240222732908997430834746623034326331385873650534960227644052301421570240620058892277304572890844756286175339269034390453369781308366209582078375943729172051525321438670979138857463941878001056535583452807283566013098956215778337780362109239259372189488785507631454946411882331085902666016514097634592416057342170231872110626726076341346730493628255071917900123028346770052158288527946325544104162226270690775256174421848571412046948970195704906373633062760747684888262019741483901850696490791014228964165630767317241116018835678771778989196981969500178181513025588522358024720111486209311860130001007276139010889020659165935453479546963739916444550697697547802351001925273805147491420931287344546437705562271321048515710928691202011950113626672415599854862777634832816401372746691807287234124805032466764926235366190815158447546744169731051251637904415063098984120625141396743072079680504429233813175107073380841286254228449549685773389912506314721875283388534616946471838275922192764360410196077836396651776108891189107538544648953538345258464512417960107575024053040360424073184352873495062253702759920786314425721238645572373238326002162148447331607635663090021576297453752193709204748911681690189362487375988525383597382145166399207884965351530723256987134215089004366598835842045859712848146641021163968196657905966670278715469108652629313313138641385520269035487068836989578909436747858619157808251031569313651458527522189653172039783888100575856691718307077640616074572221969295887351459113090302434908796431605048956538771994251203727054287572927930638032531848512565890504024311379416605709750432861940098563072529645802392251062312719640724484051625677599461928897484812844857580436610959290948369350009749576155239453043450138823206507799136841831190639882783533955882780684824615405843734392012932372256755007706028442792788819988941031618443798934964292399266661087309033002288871464673115848913099222165083319460360588626140959511352148163941904195988533606483089622845534409708677276062761348876182787509987653769816657056481971274087703924916009329398917398470256129316757387520505364482892235000980150129974618408577295370840177477438151384028261934877244691383115787334975526960492408807240626669749966304742153971939148665002192115863476778468276023430737413956645798100230107748334873798671733711325210065024274788833995953364616794321649758478658744935018639935955110780975928146802986097180761473141766560937683344672559395934114230564599193751095828037058924237391001923882196522746039926274722614161151582657745296586495197913805706726080033861344051598749534253464998643351576609099426545732349653232641252267077695869349336455947170504024627365141476923043374567127971904627220886418087682920931848755999327941173995651321684019215394826268680877102214728945148612180708974723247545188539948717147149535228045853182846162311247531786212364346292422469093473201080896068927782750564665753923381329212041717428634347039661975124962575236186595062332891042401052778058635907093846017838024357627339541070241832846287588642792175327883642456676691467475600282854687515944582625291080657788913548163969128615337280389979601342367842141622314971792715917797038213168611274388274901612958531828224393399084890157495112390428018917169079878940098515817866346619550692484440268759442073785358714334952635858471545597724048066713580834888150841140012876762782179122072759870304281142594798952372047440850950157145566548542438761298813406157176593578948643168987260230898219007514345967234284954990949764861053312198137964722785114105767711489855549923725128382807069220612695666243882682602482034019943959002963261499464645328931578564357304259531408803135874537605614166662073689975194669765335873177669969762240569952685303607953717541733041810532226929113432723783665738886523148926875726232255933544002471483348148000416474521717776301589691608926685504432062357388543302195300495535649164249300227576234838513587639435796408400243015012983208863462713938513784817925151363851189473251914984647683411524058629051130419776586969670206617118421892370758571811095732807398150241752779304632967991373198455516068962750828024236991921392774829043173171814795296193124406344030345909005023592404710252350911701316956475331516888267040378443967147431208871605150779901529199550609416614057307157688524770784467696273497025460828711309418719618646856254197316269828154433464849534025885640529421963386749573035626674495328281929401944440662848458855427624796142278192379929174053497503360309139991934303759515502214074318371091690604029377331526579618670773505989670238029529905842807952620436533229517749775243507866114470466399637372571477131245340744894434272032395845368336566197385173804397017143188857626604741311862032191915718992636180497427302149458869075360522485125941989755271603604899122839626341083456837464968913688580913514560970364915036788980299187040141562900199103945788370545892049595114945033465611736862736937940239237097034271671999315545030723695699249357483148692145921075983985226097422034551229957933148857706372377487456554353340800428993445279894407554352972063689883723841731763729962849570319445599362332255774326501699567812791263391246097619988194183322689783357084469310205174969655768859029701662086095970634081417247247419275401523955433874852634525045785339830798133594506180836251580211079171060484056375096886141409903852555785059703345781280036911915467664035283768158073180460479145366174960686759662287064437575084116243510169557889606659821186513669652089550289790332103051318252092428749834394556730548679315003492750254912091922625937121939004271033153273017867911892750835563743711614770562919755021623156632997591447987869879826317163652983308484476297375452627380600165232844411752780550811294127221939756953048870652807161378556752284534357877072578325846889706061972529794553554127218386432858805740593015010476051947001330504550133419142674766468884167375376863744079516971569016695015972885140145590099960878259256216998113906227487776347789283032683362282098068133710935475885335787164049956716374147692239769643578905861828285189878791731741574733808380099859262888251860050091874696737984255390732238330769566620266527696152378586142012700555305377566915868249688002222337196709520707317156685665076751464669891030422447733579732518921084790547254017697126153888644148094808706636071785053927725202215729970269142869881163917352948399678016716801600765352262347411078333841021730138292654873842053702862215601166200440895383255334197572082708075438922190274204155438968406349849553846507626929124770459287945894587514698863193229458713235695580872166100005570610696699979616695214637852036305898356412782449614576207664504665924976278207171139663196670203553527595383467725634469702691134322563947271823716724301444525988638417744416836245240089657630728571994378012711263445819334581148724269369475749372953799238346593600372023889462391978615667586319442912937931997186393816993211751969780724154410585143361625202667448414309119918734483100250363234767614533608820449347909919786476118334488552357774298879914018551045322333947452209294638192661786549593280333448077752258004530679071959154061924605424558092832763827059590046442545363786752226892183338351801647240445195478213424873227067818724497855841107855590733118438911806712066184559143900522805890499000083077802591972346881763009167481944256156490725876038384713609134736816656494495449311754229721567205235228549508680682259077190890804090129524288539689383671667861063864853994281391612902744508581259963228032635718596111693987875706656731486641925614428548119389400338748460712135991362426168315254776412005360991029289372394168062568535384769467756959570510052467480080246399741863866117160339554571903794988696621741711106560503535595119278313624783797010155993404541708337196998860362525788472414066893700320012106901416758761869319392847140183060359728254897365350898734832481941060791018994904586006498078041268722989352131352572915081642792659228428371050743843511446859282468112408193028916272601828150694929029670641961192978758726315124370909600713536490237420698838755981314557995159964322878778780910798854507796780829891861177947163617875861842166749705130680610733644235014075115374106124592913011906847101599905081333383507515672174253776258312884661697876629979527877363263901789200126026271533543100199998695292644277797057632778774479087578322975116273323921200149289792877859688517713431206789657854764684082625322198243899601321360695570748526027386004016241796440605588269188055471252883727047385973418961201944930675295829952617991208114601249724343687688427706573717499405002236962806190656854456351459504187323776342382561974172052177726802482396007560688051043558546343115661358991967164465789377858092031537201559275171123290301282071525562038928431068610166616205996997173476056473155344828521554007754812644862406100161690576905934041102969030039848670027732347100142271882286475064402838479787811741529744962447723618754534038275235091977283118469110408550740398133944942723731583931818502378534738264057649799540651867386035298809781979187224833029520972852684551114070479133165479892633471222525504890754304571757397109460946595537948673365571919884052656380008671108779812719055302246629528513405704161000195151219018186383697589881433519805041968156081797307707118124919444022487686104535200945820807235580666386584431406927573334115321899681125011009071636308029363071957600457270738810102338712866335688955319062259999723864157883669427280228992659802210400380374985214809682101526001678619381089263741391421609001410566828655853550806911630274689505036393529755122683696405750480692555339359196619518859115811838239526247391058631085620855615180588612869100157214128197495355899902177855003078178744084160639800769764822348586860131730367221947621054237795831080747893174510233380940902051146547304331392491512096208283288927160041672061875684175134960659383990890569583516607233784375983461302555756844553283001131871645249464007246628106503992577265525100311632559704845088865518871463284258103426463770343928355146014033824555443639367716008340158795091386943166047876250768105359276721449715760320889919172783163559155941180053183657761507692212793934103941193664339870712835384486159865510969941362989834468459269352644975187550373300518484563154872279562959134975398502689990772909272799334202389908363510998159386046660281047407747168720038906267837561055916177717828569832571757804362328194701910688505261229792933239229846058874427295575403160427032015216275941604634554068045445096950443740564159931373918915654729137486156207555285758138413665272774124742127466064829154278737253693960962158999340078306518980234714104307377853718199952324375075940469994966028866172372187446368484162714497509900204362330700461153094554107032974101140444091821941471661090794877223545602809484357026113003028709135933539314125102074901301265481856443420136197107883930465200353568012615911208646334057798285153062868711649902313540131459227568214657525015171346781980312419344822717332578568990888258012388461275705231532597182106458096249508471797330311495440253964955327875873986333933326121299045090247972669633066917676000152426863246631102658599602066050161753560612743428676522683870936975318870642738641965747892917322569603511406766784505222689812624796967298840785114659934869749130231708683983865422902166102830447921936331830315642196175085036242561782007093525890970433322985719431486287608985002865945679622939525872708407705060400971652246817473635120628652969317202086293112526117778358341176024797316288651778005775920714858523235497745061778320570064957764709124873004663776602436044683297844780418876574076321441657407565197905946661968821800356761966976767626095683167877892650146819376159869604255057440750900523938077120692463879970295256096252183330295658100156241030046808420107261146952638252583387081799795833795340454424173868118223605102934671689829464223520285779108648644768928765797112118572024016470485253811779144359080070239861121534268947527127141152470048132735966317588913001891791173576662099347666586085588507556877471504428313718370995187196550967170366269716832907973498059239939117509950905720351920089910197139188226811137331206949404272824575781991782482990400169271922538727335950607368958106685732401493655219917089948887638744188704464541542159271704847739121432430733978221712079646383322195477988871532697208509103360891744652152711693763967199645517962886603061413809176689131949413639134158911284496372726289842566745118436726557352349126837101345637527223059988300955648078427738755453527129306340976570157881586118923738978216041505353132468349163186141077505518548304756672709802296789296794984909694699517303287346587532359314319534185864961346608298114078553382982667402981801897306515180470535069910852401457402071063115780122086044605408970718028762844911912424457654433525633848783963650053075959404806681779010981858804856144567276641950904567807709922187188186465811513249449476906894006343111840424976929003635692163193373334407171686707590302455433469892555490963530771240635296864960790039147568295299942407262899749638984434454976851277478237679158620146128093890689801305917898480930975735938839797069730978012790339785166906734038684467402471896794224734516856178559882072345326267459117575467613006110846818148529917659734635169245829606249815789244620866464204810515217883288818367627311866589377624215463349561347722210428309063452243453336305519878401484244957077559571712948658767213428280717036166836287767177893257043132828177072594442043458845817738949309645255891887703003962408795460708807508473050045927443507848852617680160109259072556821778975330467843271875453602976290905674154714926801504943491217653298876870390770744123801971767088071134373992229323372226608048365707389653298209890664762681871045694843256522840157195382025882825950351003827352317068992399844921162102440687254207246460938612958855572570230369663785345983003044062407241613169840575335829691473077767373762766023067899292097351387929686086596444603975764199010358664125784130216688832635782104483451689210768370859172213069944248972907202762639392397498553796756884845589772502057131227591066136609107368581056854928770083346282013445563702383872809986975129209701742303193749142561230232664678355624652772955181021827210711976752668994159717890380516243965920337533409354195344272927961351602690558722253943606429641495327832186381921198728286467522306484803460508002558565361777502032749131747494273428456035294679285838360400430587396049433856227749436770110287371005675889460967280838904002232332987289860188653979453637108316473726411974532978099653621136078395675902785076757162230257624940781308175276319997108890706377568688820643964408417937413349655028368788502738405470039208554284931814743059477814096730489820637602603920356303584624835034042336740044607916359364348610077536064361045809976378904016414389022661709300104295193573383201975700601845670448414131100257524714673660010624542982155570415799618588630946589623605964723374863258427432602490912414938720913789533885131370336580081044468344579880027039640910885565313794585761196258367482406789151633102622163497782526788997221936934979326174007339248045578326632994028104170673569720186569947369519787705115499957285695666408419101499315449933425979185525099422286314191380541201339983848011598374726894324795671448975192117194540852745506442773969180442984493471544540810958488986394045885620437443895207380700838469446836533842018528371017910337714749177095672105746780659615052122455952292155433893136704889307062316467790104543232140414352983593335567162973812989655158768275931278176437865900197715563423971250015345972003836680578335542259753191034005735317651223504031096778779187385072500426161648032118297228507838221143950940149294841764127455284358145411512081487349538249404653941942565607518730330381189665369266586729972383137545184048825017567547406913019198232149288332527242057606593833409352196819519181327354327933722216060740022014852538235298801098192169301135680872094438196002190504336367825840907278910113582480191146429270880149753336646286744328734048502805233251721352770301077248153270813863391403506968302017964688014188508580497894772206025565509902132019171113339860856362950831119532600838240323639923116684930483090943109721460626224235283129050940863373959374343684170191053654942291440613077114620004896703524584245042283894969430290832264438787449806710714409695004398526551131840422050581280469554963475482710417448913952360315981869587915594970831837252876886300273003762607910847467189163031218759692046897479380567956229297107589131562569538383238001274584012263172017637433269444940119523749610603341008773860169655555698612652902183761534205183079246884505521854888132145964658414862561289238360989729763966092954875345849485877391638512036099105383723637519177027378437565963187443257507403780926678145353016509125876141293783536398924783592331620563314035081062574594044074178966227704234404658593190841339025920742770734995781748967192583260029223362228401399776801251664586383390940692469086498310166590650266588741865885676963260364457417794548208741032423965009423927314730229135842040077759702761408653357752291299770195525529347776774633352171191199349115378499653343467182139475055940096250982501526722792027973824979138501202160453750406207737155555415669302199810786293434245898061467518152888044367162928692835198306609877460834482616377618388909678996854315228243243041392211731339501105364715044013724280012066508531121693084822959194703306025455546155926846926631637645519462585497702922595383592204894931522780547840195819629773685930140049332746235617717858377707537442631564212265082727099916232393079545112296339220512979278910075128118652809989557377179376805255950640189037177133731751848154195644257154448917216691796833727932977331827759888504904409719194808158411922932935257676726518000261492264022169846996807091326022449102694992026039136380218491266835188515038949941162702574333038337623319250622223270458043753145747170673076474331802577519146038318038616147737545129935858960846228054997509317329248532052647993027881601962573292673414987619827693906476702690896794063170007931991362082297173150353371459346040609795931094860918901513830468296330455971827456320383750527394483226895005800162765526909731502878850881709608650099556629359652734951452761061231915350935716458965988260024253372657777250230373353857602355058234257167670042834007088150867746254683291989276744687874429132361350728322471873680196833801162989601121367785887279350715451946927254398516047268394477496316156004734243679967218973872209134935813528009745146991918115357937062222393085833448558681007943479711845357108820466415930203406781592321758521572803431635889612983402183325945105582150821866131402267950064249862609798561516389817719458195903046901537214615594345780784863826750558653731525608558156098015845832862569328905638871970323459363905699273367826872306232923005795316408059654357836389919223144809162523901439006093558801425921723606773246428835210554928976504561459791262605547347476147983163963274869695797172672710529945906517305622360388534337207436693246146549296720095877746278661698646884404239392966078002627906835066428781841342243745541949306082202067204280712322972902101572273895186236109704248098446646069112576926659943605935293625459040258892348312141267155488732176308965950242141444601295802721292888077850693869238447572396103909273727444512562271468665784692923276114162175680588798167281870887766638960268829607999517700899674043916332359684644915273413622343958901657451720845567573600165345811391416268623050668958056841194170353032258136478952041331582963447423013903111827558680968343693892443608499745184599493198961799840764463407506485025067677559595622366703869196304282994706617217663688096290161919063330380259409851228725353717865714679073075013237982339781496210339884864199958924520271532211353174909154565315204773566120095531324007523221471833346150210979943631408454086390050839529133360687298624138495345147408675312939707082252805445237161534655534666145479702169303262957683970771997529347494710560351154438062402442221756946157557019664431871686027417257648632118492581689945757399766754150671279702211714817185647574242126336862722784450555627839075662411557959438319334095062874542621308578389557650405997852229371644478264847238292684649141187491769057730066341796170833792349712045303373311429099078840405941203135672521388475545386277422487578573900060543142529967341994177614749896297833327788332048528709214755224835215233424401083842645554300955235255399896750968176589065217844232527435193384218929226566285609327251302244549818628657447894926297612043377687505960304239116447910083531288663397143656737080008382151811331039764693157575899382870855999680588820670096505321547234299180965584726446909347854311974455048980782055584300253188748063827964619952481538298557955641737779645259753378240228585071618924980632407818624846813498317945999450354477216899982971222130900418649272390860081090368244484760126105045110803263608071231748070785847978155760642301816236640635432613913417794630882536106615606470514830851447114792412827235405322649133784898745815218644988695711772082505874201586835511529118549521526406264096075077663455160880273270614863829351127301340807294076606964473866355017429178717739552155952246203323415394713290524953213331634724822780494979545232830266876421043896426447658166892461966786063686370982308384498565933795994080598615438408905757059721661732330910078418239902691806329290755767705002387378878107875827381032212153321471545562596005557469658089584300403018875373657859464661259161873333599761893688556879117362310447068655447722142038668311947434124290706828724974837489977772104290325022822950093780396656222136662150068382754785459535515599069819448662099831258427157894424481762811110611560165090400002495545280055235904903555814269912217912642235689378939336102948563327858789405531474543599612297269633797756433547566765211183075801178533112652177890092288047239751629043980856843260060760485570237269082851461890696592227127234419301362964740850820193912315046730703507847424920853623931148588242066437512176470996236247109324828416650628160463882813498266109010999419946179269523416081061283277522092584249070112742434996672207475326181203715612577322941935740619336660588007871348789844748720318760150182815555815666591050076534421425491426013581551832568373532655893252590574981569589955337584789697851694972257439693308512941382806542578306509126837321816663032860761123187732127673481525757202899811726947320880513081540527492479809006485736524410307420439289443369073379423241017044997461696339013255858832565496170466424161183978599988318426722286265850151102833114337755301156904311634311363244228118939297155382046367804182006737672348942081465570663782356466951769260832232350063010469208139491967326452678866041326890081017659056785996107233340776658271074030171303393765033148737583108205172021330921406730727494260061521348711383866677955024319489443940188586731666103255147804179216202279303439437428118245488391928898365817529419861334891899417483986139930118826365720466361596207767781087991228561590580784059721257763836106348764886055518807399021247062001094016330309572580098617991444910215044580795837629618593075545076404264109301829196389887020605992103083585180631207362400439237081938770671051346731142910314554101758698457368777961145156561233629685887919008233506270965142462314447639554336849602171691680077063185586382607492367558819557621655776987705712432137364910603498061434503421314546357129980446425433304632004638458261992878753575001633507473457733488476625824302011275780504227167640937497765279967221320443850661638065514335465797979649836383193886417191432218944831348756110611907802680345101771729014281552520450770992112526558540387276898226131935194373926097312562865598528178813948829332747509956263858596071065783069707065465118845816857556819849721861273359267167079249502207892324665828255658763686413585589090004683315490571258896410202501713223324014055481845596334065577020238288392338235863302254927809426280204987983072041594885690172096236476212289919313531974588193925425540671048322828846197516564698006129310061381885766073222453274927348365328214534538221165393463074055951743521298296938522114820720007705909159862436015364040217267394403028213570502820157910731251759949049516228474602224214133664930190770878723030827215237524612434423917810984422296036430663681460651751649596122157875996504935174453935948505770886208711809341978057635185695753584006629057384875382598732154338437807325392313485989093170835819684787447905818803721733199464038461292491132964032325430879036862300681710875220933232394022125140019867964987117601542362319740480214023960452702745966219720599630780428031309392841353203481854050907609156757517061696325216411930568112336159234682801953493848491914549959647560329556964725856694183242410762810047062772258164412312277287120043617131196671625988551682495827898006303816364130979569271188767228404499974014822936856118945499358094342344817341106991341106737632857528246237878249211001772982798258237319339359482309531361683255534236328781043773651359135579687861106607940645221658225234895239777554700117916292633416346018396621292272491306740861993245093931547446319950273336682027542093308790270406736116161565046815418413305983587817076880036757576828727855482250897762737020134148459189948886748155850243501886641848348721384894284315317711694885671721883609375157347041694626467525709974211538743866804580562109224332642321306733767097991349683565607410705771909673568037066884059445492672680418531340644191187993199381235942998602743525945526356016229373796822054948527180395718112796642936289630191693686717716171933334002979380103063592923634135316550070613506304611697264644605509770893539099935445235013619886955657211312702078968095470572035403746491958003560616742663285149816177702219044966456730922654690611405702187405773681315466011964884351213739947749815682863564761845859202977163149322770267332113967433606758200415490432483448522377335652348790107175123677032466486420091093945761962816609568128229228409422806621987125438913681738926204286411662483206833933605450844073393469809545684541360262442641170368833140901167254482981267544292611017388056070614694619488265753092178406652041043033865010862325981254723743179733962970944053902918343342967243833294108077861160437242316941013868317723552861961816673192612263011874696472708380362313933079143303505927090499275185868133958650349534516854551793775091312592424313430653982717137305109819470045973847503318490846364135454356096454924692773929754131380838511135065538440845302128940271862846965218024417923897666618052672994917999740163860612755519927076732761041476600248271855029655487154181389485240308049072319838817698809749291576498585621836977673164936298235346992537537523572432227885346308068968199719130882743856715875919606035461258520524375333812423018888962715899262449374305680071524531019814337334718090118700151952246412091383460620102698295191004564701942161898298854904047260674374385793794744627591064659877984276233673996588555828671589544869802322003327603994551426128502815123585907470096841284630203150734628898241145259397524267337060359612196766592917651758727033916489844695484313305489969661704563059732822265583264208091395133611462255133247505322549921221478119606214757520204390614136158855578348077515020937326619360623339947925424880385868471090157807805800179400146185142734097763424785341336504623495554135058216997699293308660575129222122700690341033145775565314742763811482206733134144130695219416550607682517441267912841653932581796478415033906552726264480376550703610900172808008314900224012549016197200531615510171679488184397478765815823791667758481216433236188351304796768479299768826300386920654010521152446500466539699143176768798954544781728965881403325571817981390604773375831077996153861146637278210657199118454345649897489683902807458491929804433151074011166285803510531194551525433102771505588886432521890933930412067043133785508638327873605760668027060780078785425771600398120417879376613214305633826770450530850971405400926468851375079249073141907672409307221040145506099638971143196554096875821703506367370370438331025832230103824754570160402203962836270268667550100296742829526479420269056589182414198692042575747572398614976612033971471471575282123590969764781670995301720802820149359662193119256994038529909325662285236758725218418453370078830503738360747179182705698800750122058987185403558038281635367312295947839630836835748349544674654169430922879204938243892439998195414465327702312611663467557256302817968868930133564459024108049878102119864303286506576502220348142090839964868114372615349124905461796442258680750697058449102078972058219124689400911105658862586053592514516471192198535574571123336522406655401874204212844024256138671603235420023029293259379231991149440031661888110222468801374681158559393577491387694983424258472232877571851543720966536384237477977698624308483640606267313713648410846896387958900747486354006172532680945119732916495665103848736072199306879305349261198207822340073737749472580379502990239091408160707131920377700883546855491157924624965324918513839795185636961871182380342089814583497252125799372746993526959617150580135173248073741365649564913023031817555755090790982918664569337363035501474571455257899305337343689932136649227969920757271646377697987552245998568403906264828108892198241100099408118984145917617438532533066926011552045333868991484647838123516052682443554802674379663226322465217415606985142989404135305938674298589020809210849161524884243389199178855831003957051494898816421824719203283508040171681704957918025933530117864993609690849640234209560497019359757834272166047895266939488698148880613712012527060541543318459190448638268420752649572489837443236756962316921584055765054996170629403442915787824822046992823515571149397070566163238991756022679961226739283673351681563631323762079212853242133506849976450057679403530977720075011670381743857778879330647658637220280264764449093784219795165667391653131234722439334726357962155987397647438045564439661762713657488036637493442983796581997081947165416469978051872759281005597457099919690819411039029975995575608475617479868583260103671423808343928474258801220397539680301697711447344168285666810647703932275016576024917059062366387706165536299101397905903997428370783672837443703380048787834947725723434300770100704467274840506292534330961082619323970795685293875113714908919138527850180841408551518911839179326796727979722188899056809829432673501077397385752753977940049428440772230383782410371429953515173191566399203093725542171271298954975232303375240707804440779234539497252396213672474905879884343900778148039647103441360488985188080580749320116696854704661303060290252469864612370369573234803286702390063106407599189525158257504394324467220514175218972382562091293701746141547592721020094239809213992221371869282485332491662761939344686396721665154943323120557477448237082171358427449600755016953433030797251880410334336638562647434013996637502235512329588795899622471374263773352889319065940373896487886920359935406392696024563178736132664487347248830387287606856792766899437102953457323738730751750744680175116468118522403525115821398559354038153627418404464928990927206584624876502274445022395367691028526787860434342522024167687419469656794388842247801011873555142631211450765230819910434346337964273794478415157753379623442374721332858851303660066326774764167875627264138457073166570944003826413191061139840117664322920775611478561000414348313891759624971722931092805935764478151346987078471774446063362702379107547693755408027104829430619046370359010688208874402608051019113183990384790234709844866797353872329215731419102181495257807444476000599592458663666249558658721512813118791657951570933896721871000229742110844713556542961643270242118277561936200176733012162860439755341411787996005499514607838469307435915955456206310305492081490036288934387465464841628352634596645161289115489009333067771410874256548269337398168656699097449605423524012839972062005444340391091246437276082491823926292248233511729936755260727764195196885498158373314525182319579667369366598555757693113978981893793377292989963786664232297732316041669195564363114741525384006984510592105928234064222105442747029616571812128790084036458395619681683912657703315233158674905606833576425070329766013822485962603897819242690800903994236306758830714890954842799785373361650215707995505461821920555094967109103331500108557228561160114638978712421090046322826917906188511334422347883293555847124584531289648221013245409994282409081194044254302551942094029524308494231753346924645346089110674403603788920492529381001014087844046320858331399679080601407852951670025365206714171857522536948945659825814233909548116017100967995860696576524939653680039636934408391154177539688523175530688998187966145214717622405127071298708387453993360286444480571753598725122814518621288194844083967163426899811450252780188617341899926744257368461671380427431367769207133840216859545066970521917729446726546675150407085979031116735859146172985149442115779167147692825652112881886959699650186767927714378211031289454845409342407831482013643821850724831101912891719574752293341724808967561074060356001007936740448985446509603757669517597185455685537963688169106257739670726888430072521329471184695952564805739323349793056021915045581334532240708740352273772303304850402089408865271955525417065792529388679611862038258683265545799520794614450463933450525973703381942468578899535699559919969051092102614440455850319014275264209650234118466447420634862719343920287735492661819420813556113310238420430901659861801237085589170662109424747247663386032791687932192966450190123380005892801633089477098942974697821019665184534015424162130053694465005683853681349548749817561096552087055340974077853669987711779499953509721139365801474386896712891155536631746276807780601208158502378197996188225980203323052482057906975942873610323769011508711414788536255504180473567495024697759098062484144958710094921853289672448213678687838540631186114314572153417055900622416167277303409418051006897782284619781374892123130815127794896653072490535383207190019018196525042588365650193423726252036210396714183541488733019390831898133958267708970643635161944849255106987401866269500914051642685462939610815391576929997358389969060580546698546683263413452335489368362435079575852302990919360386852801098983160213528516143938401156371462420861582309473953512813993711877466946295786654014737992203765911628257303217387763078077462876422462937236143066024975892141251481481311384793174935661515642316295225233140429154863616575662144797832901476143087460923705895816858105238259527289439043553446427859692050603244649042468847367311196478010066527393718799261900184459098527481849545760714350789514624510764751587945028595215979206822031643508349102345751834126559371112863397608308245811933776591751337268545179954418639514473144765851570100832763629773944741553144840076538982394575345722269933061808350254311714013685119403729007653954679481354701521592734711991380727171578884614774763511061079650546675244429962974102359930847046975318879876543413265881221500418067632387505212437464331775858192613252689089230962883320192279454941287741637154636483894192788921416049935854356706314001928478054224416010711079307241960910427061394417059983799094485374987652048073773041211834858128981838562577271021601692027092607810223691358002118607901569666701673881336987870642942414820627911734039251858980448452053851640519393702348961435484551491074400880082347318370220615501172866427916225847269127375703049656415265922815251445761342370506586509293740667141180707596793026322127838526674857137923804299918242003886054338608255953086565629499362767945697942928076783003044602234375755800161652272282732425766448063371665691001811857236498885058109398686669725002230983417129459794472416822263259979832686899381154650522160034382515200659834195372605374624582091872324919495502518641557921187977831853567596580308467589904913524020260296614725864824908407214498977899917263846868465705825942670203022297659193688779654237187731132554403656196459432852673819399022502570369956814609836454325896044205505048879182951150270887968626628807537703102464857409554783468425297594841692877599727327295997530965133449976947947775226739282324839353461902293613226771062297638003196359075439727807626135436200667158821837498480784390966091250998912439809804967383968450608336472735315494446833042817494487119370691446875509556281886762728950754679290407868234528380720772382107153119745684799216091405691741786043919655716606471442118361456838596882064225751856258803772626843228573426827884980932283437738632269357032679085269542515287793353854897435570548245550616533992053469738292410505917179646557739103608687898141173904877373181655708517989051117544940595584688015100120268784401464608281472347805766647976101562966995894320478881112973167596603650784603792441234499486432087127254124474875511108422468560254629608723479941680139794153015620282712578970782072525925419027508686052632622374722150488719874791344779995246103682245061978146452613364461905035756638796644110130624741204422691239811595752025871138545025361704325790162031132352900803888483339282026004169300422258747208916706491469110110084680303073582844397516041472816572046205659412519839756277152128679785500591913122191635007559967613068973612752956626735189605349166061699351488909894633788465234110649121203730670982932789268179710505685404019028043862180041438225402686252916749984560708155455302052976013611751157956071968192868683462328506163365073849313055245046922449842419378904648649840807746364240168228066342578722728155394441678355387029140538071569237773967890705375613311126489969661542424437075805058265357333544363963518118082384058400184858210687993965406002278136617057376520969217625918725103265858182549338116069034523557863967681100826165202014180630919659775976925533810352503867622332200395214121738943616537235690410421381917602861841795074134433257748142869166420439293473048458094608619517831393148185657780824831951097537699587802456029139794855715624127916742553316350866614378377994213197000770994621194504398703853930166022838489828920343784435418293323729399518834105631743823018640761972888282444229524088813707071905304238033849979513002151309544611434128057578807108677911062404827977394411155580384823476697917975843188183419951917495357956462670982431480173778830599781063789988223450774323165853656568242968184146161496865709195543303740643422234365621958707284993279940242703290952883240410934837656273234996282073580761891544829656636946396469523522987932830400628353105480836632102503300926847552502746063598036957397916699384541396281261335637026466323810360533071644709576521615782869768674617857290585616161289422349642857738808705148833427407877308245480546392204886718162186186160681153081143015860486023153643764149943463152198039112281878615740564919730853576216082600801811301570891108510425887044381196296838882922833605966827714158025893357817766196220832786353658109565023996642949378806297527619225574827406672617704872116623541135675812511193060548049517881191453181699045908364495057618341212379849383683222440772591231103843124705111795790351208545793159979325271121684710501279913206556082768545915732210026191718309153822184101623462538939546524078313629756633300031002937728369837168854706603501494522472106153409348046589683449833836564975167063589256577737953283699121754673143859809484974430521171936480385665632136052093244780425983017916837483407382362311548406416306640576598552301584615701835542668340313492615662582576037487368174548681593504341020885704075828221991474879724637663757396750614010351692556097247416238327679149842530860446833048016477020350451030266453168483365097328739415628442725477161242851276340573261474443919611150133632755832080791692322068831053560442810320998381096284528480714046163914544315237315554616909390284493113010788230311253304511083434485006292452629775799603255874931653047149027603474822695589304905475567465806099031595161097075236821066572190516082024782927612462521435440037027284456618760789202656734681749906271934023832695624211433318279594098629175826149915114374528257690780024624858164563204229443570227793222109441299748038237099519349850235067702118586073902953457322465667179591233014593327641409479294508410019435362187109277010090180315268434837606491672866706736364613298076230753976728703136735437649260839368238955144896986214318751082658160989729442490282691904651941382941518326635626136783957913345828519068861719662264511696968925025236584746653350327532083543017271229790835456402901841569803775418863687239572175682409465049595959572232285913957037939747302512841645082607187208676892336943366671301898570491228675824934928365282653934306884918766843534356902869168906915804208177699459381613666734274885066620459983014324798284745465145156001754701111814271150072895092708331576259549042071067625771984878278061113606433197478662163314084699722502626168291600169904695903335756549028826892309227656380598231304846741554626533173819654205123243325378564800892846745926533539432965240046667334025179668551441594819751561022453863426899873693930279839956537065492853136358764941813384612117402000901896293551542611800047451733785016995031296526748992487959423745260512770002005525483854075508325870617877270876790707048430602584279765104411586882051437666452370374508237682029109559093791086491140342319586357980410856299285072454361017947960684800499433517753138463317573328074965003728859445096541562839581404173103819099187789862680241721535692939103803630408088658764330316711470061922022944445042826747541875082415959656771193371747920025983945988628276461226386028501330660642912458452002962756568709357491729432591175278459013065315617289211554862920057883886254883175041190934351383307287370532327774626146021472044605720052048142227364731737447454920131422811462389442720345300766005649989900026757218583258115402251101277236172632475216192682985947245235917131070800838755800843549183678009330930536638485049729674425147825894641652198757914602300331302465703526608544546690825416382822909206652380224358730818149518757637815833640357398748691386479105071569702293802296285653998033663273971233467820696289279573884599412556287864425819025222437218280294270438010144721525912517200231243358021630731771306463870346506788561572354085180328427956110958169873592739176851765738149671399144360711712930404205699967566084536518298851624921251124197191527978027164435882760010583702534964929362816924354272708690808492605334982517450304764330585819585754489981306296927346274216529585261500971012993556880508182416298008221523218936851225536019692390177151483341097931973257223562533867895407731035323156950872082880455338317395719382748743702936157101315750644814281076119666667176229990544186298993750376963647070243075872305307581161528520372440607799129924545817552721053386523208263583762577560255539678492841012914806857533815316300796574230934440941464115066649779217203456610054097144528789633475052762777706548271411349808688888877747272059049504488248599528091526798301957847714982990925049456744442659396592618365640094212234102158339340900691278916633757204323334288745379395213664113819911426413641292849696444046570300465489263468863898716714485247622146605044017177178240444522697395713069106552745832310277143080745663207714172886169050827749194434629006770296760970276702825211291727971544920606554379418427819418478304260265247659207970880008673783978439456951318168220758917467724647062463443383360100571587926911623377624430426211621372103693150418021435762340042177528644439369348444873897006961711569060416860650625978628923353205437858968422332113873472702964630023570505143941010894451275401989251317240284584432850371084547913721842992629291909731232898801911640766396215257653436108390713584239844831494680119704173942066866094999749205080921029908767231963208845467728239216473516751066301274550806803453350906069177830071584708400895788840326229110380661982436398511175556840564762667968547576194105704405357787329469495339399459657463785814918578340406510156927038942137604834921341425838556044049619106911155766888724850222909218267397957278701122624705946323331641434797269446181725621225540789515957024166928714135154798399220225453543349933946219001082883742391967236201083394307207265784232587845478870585962099799741661944513651507744381676328966878924578736422032508811401523345719167034925078816081107981298529984255596887805799747090833935229625789951841298646582140469638286654848778119992412901417750510401306361106482429249489768133052329399600498251113813024341960204751914327993318258793570848989384705456068045542282331622383565913973152667899038803180076453272026557746956676600499002702688098551877479686901204064508437573671220477738319767735034837526943691696545515299020897482029170295624965842322970413640691800857117069942852739347654405654859579861316384993913906261528436647392081154883152041607211827533423536950892486189943372903061517835785233791344057006321405367307103370712936991289258631164288830799809664502237458833042442824062563845384239756077274219451732809483310830884055683427061889453867003093355258362657734755222219752496343407495847773959268349136873888209082121384343772890174667457642423796250150050389548572594795852781099942156081283415727966803425719244026223273768037604535982267927844144430359247645153845209427402907197772587819921351162048612741610404798029948700130281489004849821333184482978311827061117455871388084644091768282729736244059945978248995149647015785218266092761157130595683471704910265353246243159872487789311284914736418072924608086191880792073900841732085855364342955630103057322623239565612275878519475275579797963939010903182882700247647904433833729152550756802094164477541153808331400405578233622214030397285881558825843731254391393601727913013408473498623683695942405021152974391956610055769121173576125436375454231614155307880697169163722177574057328464520402942247901660202227623514243906805063182012444196777940024844834575090077707251704581609521294788486439394498238797802655674870078217249467712008604607788606541061191687031151773052486494947660455147890277350769505016124631529527536510510827031881306746264765285865968756645520232657700257266882815100646062174122496290479298398273612549574696508949018088714370694737015180598208579249927929157118017843618511777359778687125517435366701067995284265628391985666816519679994984577891855974104882254545563630754005965775556417709037146762090179476973698094893807437357680412922812408142926509085824541587768649913110660852414321022525833514133137408736050784101609062618793674227716732839043507093838387437543179795461623318460210459142112063665890003047342632763791841027436051605177861612241162425894169891979213792377966311738018315131431594198618437084292245769479757980047478609264670963586020692619088610332806660031255527147460462067504531277339939156757480951782438503386774009684085342612745673735090288337979107624297375578348496968307932657278555628258297100782479130493016259525578511010537542930787056765511451566346035116068616474900246181043408454437778632610268493423591193710307845221735118127845642435594620332949414656677905478668045728473258213882456259062286118261077866694807839807264108346724034440781621550925038405026532832073275353180433296336095474227634700711411512847529644340751009549045009332986884361149018772573891160413076816810321900202152560068340271842605774895491826547833776102603114529525157007022133244649331318302414678258171219505344005706914751422151739888904886179726692076724577316781801314498211116632707615754347286651362699963971901073144196116158030572473844582598080086879433723395675802722559129401100529853839591439263722925390629966075371185168309750474981338653486628098165532219117776196105824900967716580389327907122867947590582108901515019259975547015278112559468711008790935690947842922800756855177858964093551877116077818089080196882005693112022855323926295423605462999695615365882821986043610947661877386134570311478363396620336372816872149317135137451591801963857429378566419611108839019125489282407675187519187176193267328761741453542716768497697782559230753321827403470357179744125272896202072107921424103390713673417163059763211050662498998534726802815837112578014233678010759173866699522029728224837563776278574721168577210372016686361100805090536375382007548924108774756589191378460831734452864451189338858103165064350979342990448866647162227873366331742927661020772920070846138735250525604570014888569996250962795210339449652671932286078681774718875207584018179577080261081805836163540398252272567926528866695984455049967391915599595933535921592744663751570725181624320007288833598686985266258071767361485958757817906428589738396344632727861285823141000014223637122339141992833382432096832216180971645108157548526139878180340703274585537100278468980399875280095931620884837674909858330089930585626572494209368044214710704606327177078577738802810400593224340898052088757043739851047132388155941355432339232605492381675103819583306487605178717583027646260464058553313035771123480204812107920406750232236395477422656061983021476359283468794587015768270648027017377844398038491912698166613365084926118826232533467731607671941840179931296131946394379004682457171685323716205509778535890281331715450832703365112492681563121167380059099214579444134677779091582831461461608017021024813742027116194084848466084976869109177323773106753371960934083055302789502510699199772610415219115183695439719948254742815483043421923714286717580118191887208338945554040946324914819662811425124579139826424023609285744064179336844529100979394151972003886875950144387057784439799955044087482382992599855737170846440228179751522670289889440774972920461552967383302640879566100565098409227916369941863742992690846961750918302563513534319977922245381768398780935245349451568598349846275351288806521349627028899472581235911341275906820048402735195429725693512797294093987137489887480096324546806177282865967596550207459783326952188677372153648415913235002935991136417574926596132224234766725217167325705628126348300901331679682692481865696761683057447412413197248735807150334406814172849577131320687211636569911609905329256535872933355036525575582964677879075284918384638235759589454181501247313635377017307710913128345447760430556581198331166327002724583307889829586536949887167893050921365955021723531871097623952687335945478123673323744319059735118066694515719971551946446173691323473295940013371989744574548055423011134714101690498384054214020030595809972947383016710705953582338037262977364465668770827007371355358234807942602072987226881245124075496676403305638902916598660226264672739071632661773779626601904414983614776965377632649278353029344324423600290994992011606235162080195178080420527599546072630517042760318311917815768629888950871499060165820582650746186794085314268299079840693141440530478280613279327416871619073781785465429874615116202802616746016003336684607565327331211633679002079340559779575730082541607038519050065374283094988728503001799144368853487433057425041436808002096146727382471185455913315262435618409993152765773923938206966036768137460745844461340833301023360532482896201306088901696309713445843466174081678932131512707656535707292774851454262404153320955092952757767786581852047745161845920860489210432046987879698618339196858807599973268412422827868620896024772792101397032660359515762916266303911594589645991228154936740804832495189506605187932809402333871014593709622539141610026979998396339262624834037534305358165462649614759041824082709802777897207332940222029701375316239246012048842500678896672450171917099411244452811038229608841815884822381017115615164535448701940152891826830796862114744227867080455370632315040378434033399402286043106464070243522184780700881781332410067031796471828788308565112193687879043240016111134275193865570020767529801594994639106160734447493109371432407991982297607176638863923386702868350921336952824707463709554936395441918917509738601448561960948494976510461911751876489102025035077305924227502867519008043449760826357636868043757816862890661128921808903133113646327320648027408121388922701041471241482963335304095158673516346218215481415978783543211213067395885490739443510047873543351956747354493292301502291991922428417030092041159135394952797463088640003549583764812886830670425492033583807093881107389406759993154378258173564287508144155627409734385711359074540283779272255755541808966886140645018589444895088197448800047426470945883148376905061492907356439217904060198569041007747023745905548936825208341637715102628955906438374187074922487027144173421114091724742826679011062109647937706206580934455166838689456249233137021758159428579325953498714166380968615643963260918677045927235993138599582683291185147016134403066817442267452973427941013912741687242708534559820325613902789366192185926056454824734606406400647853905920309945064889391290572220941160874001075361627930801162732250067977188325887319017762882521118171895543137955116816014997713116462346342232929507464680083098559115676287789674392228396394005281205473512641996952984049840925231571172594609697303644345887860425248691981849600903051796552876029228890281751860294122091758094938732184949146643176129816269843777063242980643126468427874556845473818825441098070790523799344606461919802783133438329816540030427802177113105650599908201171751628026895982013425885560328527103714916678269766297591865282333609277259000800516372673198066791933417009226139551927572926006342068015525155245658234353387744209699075350174002140298409963596718459710235041546367801394991904777216445471768775480492365183265357383112607332487614632983242196232473725092419012737801301205860127801046771148080742762569725331321113981897141408236522871307596744119893894861258996880920811514498722660925655563621201058593038630793391559270244958527592413886076358403462764066199217297808499515471371949008420104159923221463674367035025570003507825551353047999842765477666075105282406316930186903644596008902995882871073014447602357048367447818732551909544867947096808905821685548375457434633693108935498886095487994772597739170544761408426787334636867376235479877507596163559966843147274240537798650210673162107574988427932525910280416615924207776606385489891872098442903661576976240789084867553181628811564084525331768291802958959078313106935099145778293343106304757177644979436744696381811635055769522531803946538635923924570123571502259600251808989805962270495520225792525358710057333006647085645758010700292571223457860619008690241292467175735954985750684283836868399824838911405280388945277097444772196828971876659028098684142623861591090387367070278222989275892498591614508371474595436805082794819270949253839013824117546879234815840731216737876537343272784948395857422922072531355061869167925832535226123322015954214427355782071407818017454376107727906580204312659984936863802075271771329094755373524490387332353028058482551611814010442533569443215336314659172247658338445263517783429146696428617611546906439388679806875990965242519584154153373374418728508343861009237702095505430943831368584890719223725211746562824453950338288643411722632620788822085660631394225239174817579974920702450108440933195471556918797468385480976028101916964243715457752280527335501113241086017955902927648578501842869859744692747202223521508272903316818204126578059526283682880323920186197872901983875869797988953619886358383454087166377425531150231408548488567508312788659080040616326595325395083803808959194803980311341591517532076200854371239054647127644098756086894049086400851735679389070912389955350047228161162498522721917178886393005699251165626165669679132678863653951922319585673094096062572361929617755838413850077306812342091329695926994496009135202680295567298475119451499865959428828776767990522853623623169183269929038029902349909146777671321578512608126474457372075722616635797365983027112393805611331494120980768114192077725828248541523373889043075404945499823780471791499235054251984660385176708948707230110015788943563356880181165849762265249582683644936228969718342377987537461013894689747724090135875902215076739002887659058851645843365354961866492626319760359738710411774093157059619040099894223273548849891859817668796625027647207367492381010351120102707976636827120191347702380932889451468324365997651555312895199210844636086266242850479699047861505415638145006287472581609258510005356819067731236281992353410937479717665379457972301394269816924451459464657773191281215133580321288600313092797429600092217102070366503861576462439640486808387814463446446668032944071222279850736657171819326274926105230537246750258412517206646771189265981811787130376137680458765180561141727769425081831543571765980290839627834889669395895668798960492486159791459852005495703006201047524505424522187609428419345643161908767769374702441124542847754172730180953156711275596164091027115559364715282621274059986385256058579970468380007731720671576879043212358549290603923346166008881980192162266519302589426326977793465034201755603382460677073796457637567834523396465896467623530981683857743332092615188111733738811762085639288934094612672567780077529880155637084383116154796280834694503961690050467674550161630462649060980123587636607623981319604762846577207348263017605758566467769224714568857758575591472146144992220439686970042381638057854795660249159289841281103468801155947155948685430856378096697644785788254072137718044032107317716129276843588736323650372518243985575597994137665532339138482816067482211041222597260692075417612817424686383451490333495243949810909777142323373555858909872664085028572047288572705666493200829710779606576778179670808517761341364970265983464316796617830658501166329587230603003099254092456032354324385546186685166380773864446805311669172102659322891814636666872312821242826283988894929547674170535633965408970959231361559737127548745319811456577016914590529763249995993734350415428621761918310780099519959203234283349572356663598812050654140710554288803592992073474056066226078124929653106815450109923342398458549728223476232100636938208072038881327591854178266435483999629325493931523789608383886650235431810021226415157794849774136453223487798394134151985843600752358401028115447336112740497067077911153214433249944668894637603138025105967725341135693220725557909565339035411459451646031360728392668311276765664656161481520550027099751029227905372324342232829366889662770068326967734573999697355358298453479894038776162595668215660214383573973843702707410776322817896276830305568321447099506778538044946957012329748731657234760873470348743209446238193016148575879560776314433253259987390090351090722483383930590649212869917670324846043656145205959199879170335426837914112023578124282062551578318806586209881852973058206054770059657230472755774551136438312933136333405428822695940991798885006190102780755297713230144355072873032820947045621124058347761356958456490405829319428454220137160977366974961098384847765801992424699704413870289576091545532254091305386677214110694605429861117941868923516622436042399591071671761808893047813458428793328085515042677787682367348950383616068242873387001097072816847506565240589811473343177246301401932670119511786047454786861409082465802352255283254710573202679780703272392065787578473234081323954550015643363874079479182532472405652684113965893870121683377997139060155332452023501905531582609946325944563563169443684612841674628939312014799465979730627616837769121394823991163418291553279278928855441654263259436582143859861961435684890346545165908281434640322532691743582823825949463945477735603666749375608303758363622037304172756603458726315151679342904045631622226716887185715656193067237314202936861112418261353901028658070749375486001163642477674130837889870913244333588080514378908124908887343011587875724049337914996789346365121532136822612781140842970353414948110682138196270261293461093146521206258101913322991694528160605742378610350088645543947968025429982798778948895312295882298021990375075851167017377913096433524656270938518482480742188779533230524232901870007195194118159851563555530060269917382590821974861192818161456418838007316678694926866533507909497741425521729612125606083081871471780924856550317187205309085466016645245186879308949816774687758356066340310065301025489480498537966192169699473551732003471831827542194772920007736588489627238389336020921379133366960075609983331516229916903395266642602773561230575071605923261208391131196410915175688536002961859639052992150374841196416909408913874556981693442712800730759787759780466103640189577454707168021568437873462924091025195846656571156671936319834311146993997668562575901041182971219262079840733560535650064918530705504033912596793401728326876537330807539876017430359035242806191587075763048684044062986701127032100396281441970826752250363473522595503135253233023154162699537621233956871974679580867456410086801927180656031605829817971176703108424569289464210112395536260168737141008826732875705891412008691834152357567884287478945705469979062929653515635239547953444846276595816836243164138820098112680172586523783164688217395472086996753755585720824777539791363502350328301931486257360702845868064832066105757258801407335519940375766397716965698642769956591208520558042238180779830929181087302937008960184752639866007350237008588363139285287351683067218020057195091302193382929153430787277186646182139947443055860449235175052512301662326211762619439227050303272664014929440341578682887668709123188634404105808080268035403979201518207346330752219181565613343449525622020413509645615937246616807377350070487986978017252643596399881177603288917847770551833443431511946564375834296601399311521801581905884101200276584234160134792134775122176980385522481671316540083395553472801455800150559750381706012975398830301356118021856866440894081572463386969485068330498622512593279402211161178947384710017461443303821503718184641410490658482942564151336322019140552088225281145416164803980774009661245974202426370445103934522357514670981063621937259332016038912885917277558958258857751648052311465479361969284174728062242210154724935203262708065180628951973877478623466122763680241519525820211330199935524547434299969689827766758607496396893293447335746430061915742546417208326385980331547302401102986924787904830143250657374680173528437297018749640103652337608247810716276337046985425389089111142080861293753868099116445701059143495480475974228681246071162267408532913840017179624585225794957505470536296507037691503520094298292402685069167308626482056163856220824130804645061549465044546185996945114088719628544152701273554281410360450235670813238985098312873699704821961303045046574775818370689262372691751483829367791389158334706018849287649025278015454980697874675180143656585944827643799938866495424803245608471821523381392712939319987142213373038615905513915545821130848442853279842752481771667994269670679856336629316495654328134510467526861799783561286464077351235282130622451716414317345905867772369210255057967830500530599246158347222795662055980134601721453264186526413348575369097820991755200179426110348179772398084545113670046570572062916631570016792036008456174730600395310848350081228705820838250376495139087947152094862492518606618416944228791508025534669569599374832882371159652059582458835691958762004496357300488925561334982576173644560640982961653153460710117551753496561574445974260942372198703643229622939695199610999878209883372897429281890666750602941877636709348652622821287156401865064670992764487538661777674058481487617323271314954583509501575436610037801789069934331255814477017986893057801335873736939100170804353845417192689632278548777420990189078856144055782851206890636577762891440357149492324371820062351588920434591362232533287090171535229397392523270188741660036872062170020850449200616336173920676147150847973405645255480977737040152774569946707995401792096818711677696855572168516986877117825616692277044752715274991763384460010782968343478688747526921773742911882084435805978884259826227603844025345491757194001990359931628946312426160957698018002314782741969400712102893723081685453003157230483142933007693383428925510888614966791996043482537229995913933263187082954860761678842231042557684571780187806387467448538034276755392960965654945056234306990998563599153588618505227662051595552150418767476571297669212857829078356475690939440886113461106269444016166168631628366442889305840456995573840111501885435457334058951937013702697329991553964997603251376568648523704213959325651761211607610911433513536364493042169391961304864988821732672676895579598299547358866387243802050129832208778936123820580950726627448012784700236609533488696887764662800998968790330403117236459054353799826235336304510503753274846581256014302877931755473466624534892169315680098935287024312529066012808739787659816484253375588639363019833200215768776764355030875024955688294384800480885478485899352677607596217759951074609045577636969199290956679972166839578106559337979008117317488261965176605670416973690440443195671612861011204627592894259167591106814689985238279612806765699401696166522440720676773654266591940059856259669247763280502469410410955234902163884824016735742812534206012458878748482326049095124109147550555547356494651682145993446881174011069894423448657938487588033241752032216013083625835048300315416931837683601629430525373193684710881720734100961666798637026831800127591458518664120955263759569844561284279286812951579230786586028246066745752630982984423343590356998031340255390096613084484752996907137288822368519669598965264782893402336598406169482526935028633352533265818067435019959165453067706037128139034774584796704710268835549270067617573951498278074854052383085920687997105386768045407808445895029985762327227034021612954137686133315734988864260852490453765093303629667569910347304212965511450199342249684301874250988360415490015064532926845593805198587935401283281145399298064621649855585311141739806426750464257263103555157311350936299524605925225547169461494094754622264023380146147533247997972853034936898674816281103210632259441110492086308882402961026196221911894500195201619964979187358147685965791909559395287818932923796237460949050868731756322484447510335134086672123914007053915565007502613812706561653378377821972302613871592813555299088614058708609118369198039299893686585868350378657933116765010174727889325697821326124888357346154330732542255788834012288723935198330298463353853266734008704284982251724253386068797378355434455545327037484312524486498615707445139976390595748180291110073973093145111457080120909359622234818637282672542604344087579100082594760446563572942272665199265206789046088757604501519918596543947542922119269197505355919352767344001266161456420879762331758971038585752239019626239633844897738009639583545539264601903663371386075598223301391976243328191368833147686428093351785671656221944009785807917986033528612886241786035487826958332893006853784256373527456438322628060391014416898953785977646999129494980700348034299469544627780027192532818694875997184671611002808959828050732455127270893211352122977822018315610346877699103237504420039958527965752407240404910461135697306984263881538050969284835032374460279897843767598583409442547470146904332073362072403275869452201322700425924200388120874755873619762004613466975062668385211949645481297429366852690955128550907619797380549480617182238760656384925984606225127485564715649898011126225853679019014154271470007936024153910709562408241292128902778693650160416860152202995493354533239014187110100896027451843303678562490486380954000283930956799180230621334760125401845504783004491764237031513500785048378970759242961789619698168142001180478910632423024146560106379709179421482511580695178819835046576295446587503395502971529654381285563776615609258093277885549481380770894311779346852260448677001838238515116104178162849865982556526977338868445766917084381925597385228139792893349311386572099623133363574647963242664241505634871152213122474377965318679480868471365340360618333255505805211428940246540105030789983854137151897230468869414909619157122530932226831039402677273293672593044649929199576107202108327037593234568448451456097417524460993680440021941837923865940318304061677054332291362783577944632140439826444321236722966953550347046514841377499397494344810128778006028000273768130875524336099313588527351408963576622170875037232176701945607287593554438928306604352234539921060230086963094233442377116074136011896681666563590013559079928195547920565597616071903486848314945140077110778624295154960703175574868329072011928444077362402911630320038838554006784750207124446596148979019487607531783697734603076707710669763875299002827914930333903909153631652946720504193759617830426514468029065821981056450528561196182615669370364779755368612635709021569203484647405870352201742527113240745115952680051139496776954624963179544037799687879748363339017407691105896224437584574937089064959857318306861524417153129181969554490409944205833121596544401071698502394848067869836429591592606200139515757931201049367703528672523742060340596986745155427814108783207380615952494768989763354036976110024557622335845749793180624822568874229326062970843008066244019043498335906972691853753431064133752621568672821141133212357419687557987570285606935346472940025529729755735643053129795449338685801492904865302909337930090848560410532377749944132347296434207495863438660469841775206757151591415705515958220505711132328379157743137762242041269491497485013782968044302597753864012772811523717061212957835998372672316062956226285348096781603120595738963435627991140692125547917000754717846246308261055629387997220354329924094777471972812768527207440687211605878873073662427149476381072688430845536584143835853806152789906312917471332982134590292612404821123372357846387311936924147893565642841162477969360626375330053773373199032816187184144294084320890779915522803812232255727024847053440057355770367777047520787156828304950393578924364690098178850879485454810175463733050320711267414106407990338192782770472567198370954366836627466527000660153608279352587297185672710446722924116670892144904686154339226036685786020474276551204318777423134834145528330916793594128451076527718959670783724166089557353913356464664794072344557429088802882455056178393234227954131787904570475964506550293258676538074422778672371953332766094392041088303924064302143043937076108540068783465263512868840786160747941307199714240983839133731146340672550357746889161162412777685607598919333829594557654451589514603053833350631961485993033391701073094964641708608211875080990389923816750175202583267924185738747944305191956061958423424691129414133555808501558018437936984058298537694454259256556209819059144932679717875450808599872558674437331205733492794335908721305244845317611641684121016528357110115181353021885260317459202601707812579010891703101043871876523720463677650391326722733477633756533894247152735607496456918214741838923782454922692313774097569403772393827532339609796529040246676042022991468165219321291140725247319486852332368296145645632666491633511449225069219227320959301368295660833330703208536295129107612051630592701586438571782609171834552702524454336219407498843722458790068416234446466895706564557119997064657732803951545958143657636686920183742615411162899499469451344642591777834995712766102224119367614741871190417364598941512375493167923242756789709544651203103675649069765479261878411778837116136557476306588657665784665822962188824981368063627328228217681522779142538077300883813211068827029254340288878028949940955722276501400325912421467680483597396524955711880607666697027468053892253989128421899549178659396705495590880125678675407216316765070104329364875672904202146872373053632317660923962947179940314736312131325210427103546973281120586131678847382362038930031383930621291488447668660841821125381323003545142159142724823634887527642259964754577433713779070479541359614024039525149132591601065889851175268356617721140454384657404645644673278553890612521580565123633038183452640919414588477612215998719953416118216396623931033371647547965965096558973115888465122607441149926964796229270894355182530113347989969579668772167701048273118897527713067331394246844797426019315608849264574437533893949744535178001615254927720835031074550558541377751581666284119115273809806116181743604558204432007933724305918321744626643089181538595875841222182456377932860192823313112934127247414101953474526040264385256044891526214065169310500826337737412642826929276455276551008942577651850474560359079154440223606136848350512234062073704364242176438639442431553494711456817529267573594265181827597489421436203758754350694831880644138395391299921417204814821475672658814718615376667202456308858863753367448723459144011887449702665565277332460423277560980759952343166027016344337214245587818882416727072378010021311159036983335152088094517347699649630572529470430849799431662295407895748935552015910445877953513585452332834732541387369070106052192066653307337209280474873772487126864381642376134295423001778308809538788909137503134814417045643229929116023973957685531430012677498729760905423753640295044011219079900517426576966599191371955504135821231629449672792962891052117161543916813865193109315040717403259024344538483852816290640991769123269452534833353601465625356917306909902736931162063529041881832359766731399935414537201191784946540100397246021135821804861475518862392207194443794894606727725605778927745316695856649205735239017811122335600197304365489773137610076649381875208121296755091688797361271362685644752509490253363219191484214203751224482596185229911484095965151542622039152119325610263100226856331112630333645422393588268171283075876566335712608998329936112664797527783196673297380822449530533835447227723572714237845857603569016880052736262262759718249183508137473179564780838844706867199734416785714574391246734517755022207571522270166887656275051991993639226205108780810734822596904832210968910061400741007766953898434939373814197455112175173663113057177233335761321875480246920396312839965133857980321099215612053375055529960086375666308877336589027859311155658652360295667148697073317959952282165928112745278136013023152379729644460259027793398572459642861542123832650102587374250159075633438206245890107586675482995961138951883508605541239445040088686548704288610574422658622974247970789037238335638634266716041599801855386652329279592418019894946697582027445607969109022667948794221467237386779759371335081415576837176746749945411599949409889711724357922217097480765921774800256061922488066387786428377766055565493309393345189381891153418758269612604551539370508667538515933850262949258560240346145291618728327227997107252450402507117842751070016664188736371565826655616591805674750466629696985058106740662941547971205713206128413857431340747159531817531798817106381364855321258509869653264889498512063403465174542391727218283663583914647107492101654084415950723478579328420597961779638593540735176652456016691236670020540487885655264607559053063103283448098663673491607169002756641257209001280729861146476587926228166577362212632908572088786614760902202614686701480196919370896892001001863270509098585962628827123065804505383411340945226145321527599920258603713654955803747703167991655181664763610621197007825706564331382291342166532119771885755380004987337263832570558929875737598946187820562442581566237790521775605661045192004207935602230610901954911546228597105035401008208538346297876307266284676588334387332519380087616740201633593009519511329194293919260576267841417741853294910641567675485471769499841148810702418774809638804341199482754494885451297409467766155737558221469430361340376008296389108183082002809982786326290046159265979165805961792956531997277701081852367344546871150020391573066930315176467838705232898592833579721430567516798490943354934664625089006058811558693771771896271349552655522791609234347985561641125274857332254720659853611403880731560353384977090380184363213015816360978795028573015433052139914320613004335886469337808482551285730641718898217687863008540509372792964473119979265676051792378346310924308925153847208425891455748469105729961649785630192258290701901681655942591379388755374758565467656036650082117696365552884036480491277089295162108813794689266060246568948500128508030885180281538001777941155921464777355288012378695882990592124544712500094021139506596057032868953603867047761680394447935585183436610836909046937716168080885939194113408184560595234423464332083376779710553969584945060916235071163235120872299440260693160485288955546997959071845685283896887419993973429772730025125891665751289919819624689516918466300389956728748936821018158377484187372484092142618081707869320854426559915383009913981769294103372662891609970483013956564822838270717547185397360488628965235122964545911295039165459029038571299171720768996995721688850217746550949507063055001315611657501893380032114513628569146568575471798702828945729166559756134475827327578306079770838553093840758288586770993375028784410885507249419811409779483092549506828684838470034952508530044490608208766739543273228753001884023998372435024755598214048301082395242737930813740861612765097627228510031255780591877977459544496341932017045798991897854786054529328391650145310209920824382743553960128651446769979292362714105791632851584273374003681260809612031672615988749943614333529663553442281849209996230905479818019923310007675085072891751209619368472562338676000329570116364022569862718642110283381025845392527481736879802788803039430347540700398875170705955807228992887044401104463762881027874870779397366022543385782947203727158409157123149303781663302003408242367346098274818947657263838419361675055773601649322791768482077366995307964123817040915769062467335757340279014756673527614678615388264763981113281600642407707978759222029752228700736673164994271172768093908578208646928859771568838381980562238023715775330082497884190171691009224932235186162112959863404176672860907126418325906521756562136697006453498466638414324902904103494780471436744290167381452090171202164653080859612447806255185265230203856545378740933439905576542100590320285172678694262074962389310882063762797528386848371414402217115221136618282122494323120244203302583752874315313136584957462826837640255100644621277007811963161022967015314408731508338541395209415550158526332038084646048008324091163165932766132939152619292141465098835300686892241019393148459935841035404935704459838851222864211299433641722340786998475083203876640218949798026791895665149733317156551137933439673014341941411762344258956850633352583343393234623109103844654665315170794153518764389432063586550496157425882357633075188298607256292262091723381051000112744634998255925488518581889823624465817446508703641112203024749053237831489880597760308610016133106547642677932215569388081932064856592644160963600648856103940632244474585514523227720349431859442302212300889282108331579206581346990458831190398925987553195713538601659013155696805660129121971712222172837060376605745951076904499320125647713691566395164303924928591441578426367288212192957768837471922034694483377939930032511336730715321584577606844494288798242552816639776912165292567654358758105809824009915073177901879845310050748349259897004922801250285074671493360680441729387817078345343167048263677230404528453974313458692043977477203242066663263683077386901464759607276186188410613854142493174492572520951123504515937735868927994789309715624941109186579406656987936733001304479456124514648599438342568059208379203202092593732212416055065958991247059642070999296000608195132760320016156078822132279593966096447629467615288539280957843996688929556886109635442855179643767868813142214865218311947881042938620243853986106069970415174360738070909649187545662625496332263717638767672128584575106779102439956698179085203431474730858998866342167838965424137909782864276914855990929086241532863601718806664506312481909068644070810675689626480298625059823135282192725024238352583155821507923611612199530387592838985911489376212481149873715732537148910482605194077067713996083518477342840516643336378156628864093494766118400317007497802135577872180249296159544486756980774612270500035462435386211913094228810637769158307340556116919678501531770555988882293108482750741821851861536507694580143479619420951980716191879539095351535258647700945358138574956799300047123067793990332462270517558712065518665757165029851298633354669351326356870104906195084269203414745173101450938006213792204862997492530787966647390725750018878612088375753500496656244769512064079991704094962875878226125826025137779766964519162220075580017440838775173836361523110333673301916027221191384397833550903107949174005309595468161500254956144379449315594062120007920745203020079397940451240157469059173096642595828269794417215265112338406659931447329185296815244513316389371150376002302766506634849124867509885122571632529016192369681801573637321971325417549313972240704704329942027769339680673274040426158499246505461294940805197459882056404122347526270202094739677552290988472485542974280647167104023900402948888334067328039408787649560039870018463240797560024895948283883064129822604574573592974206366044339591663975317437322589690643046971258075768663274506172488011075702057304511424751665913229641092835569053445994095617947101210368453704761148244830891331103620529938779906612120692663407421955628596524867306657862553692673821079766663213388938639552434892676911278731211094697158624855440451650564533048874260512186764451421198602780693579601399733859258109056981219208278007499798716273680966520663919131533998794181107310367797300518165289305558063531571698472228440900734175906374763054964004034262016232206350836412245000549108345183992812676611691428834618268161466321555056086068424743355890511111296289407790831559190784852810577185973700308327163538618567695045893953682616077967821572294647539299575298989897968691161826375363969217584608792733089864375572083929495367259146545696030845816717383875911974275967176824182230569714850555641769751144099508011224435244423370328293275575988449163154896847181694563806786247854558099376295134643053002823808257719279727722345364846822997252306962493152066061678484494509844928198053371376088683495731983970522922379211658099918691579510443089817200475805887980262115940876458531929400254629002321948761021203720961674615750483603577705240674340908752622529326745744388628678621315160999205108546427681521383436146172888932038987007684309652762590722303524552220005167173374985889092592660699337492316839019036496731682215932587518731729825646704799772505329018352391786814377993820290958611273162601484770420699471782189200605381041773741827046686211160793056305920977455307022754033289532829476125924784410713054078354779656491724761088046185895596598482290104787127253166819611509536174778057913129353018214839298453725619168592329939627692842935384277694472812526493298531843260465635639731758627681693136532259064674273289995402429129570417859986755145623159346075895556120601724671242315102254394006867792166849484245848885764761185574456461044807523209647494841853162301799661729590047003766952469204266091756311445095856687721150105496132200588139820113148639470312921856281538269038711401238080239368288683942072781655520809570452947328769330573324351869973621641634380349401423903468738453507984427278260516340848041361520753682020983948737628322809749413730013530450858417803015314789130252557159637568824276839892095188485313020944860158028519732707561220457524139527138002773553035782623539076053092733632533388447967424117913502035423648476706897948171521870560494693872933559172745414455519673440141479366998690151762850560607074577751333191445346534414116813939155771642434907632962337212614095056896929526893490836423026563008334658211091953525745396777953753568572889017711604698176696228149623958530240929554076320016962975011325968427663001504471057400879140306639980505251345336321435005376618251833229145904018495520820974762881122307041908326200887073305826176200397376937154719866816516925829723027229777292315902670027902600847721158683181287418256321186703905462200741313049931797631139627697447266223487230555881268223227454490434865667427203725470179911492951895754350653839326003697019900252062595940566225049353344135004725716281043585014761332082450260570489296326671448100951134431331049790029006674843892991591598655027728302592499760660598828680314573097347524304199366713810552596731625946619178524386623727051610225582811401433524508007497729130170450458255700758747518753027683416548038575648990983040973260511433833940003054739424183387973299559808216774655725456749184971083917166298281151486728413344928702962907429468824330312115678238530677486860391394808567613417143408919101666293358448928212296648519230466268222381189239377423096438590975473054760803495138394303708617017343489976709450901437841600437448233745289583635512770192981068485985757979937836266143413534616998913540390015950828450545840997519995518282801544559334699554236436696794842712517026331039733817384839326030483971157112126911896906230248236051606354819372883422392786251367180424999555335424096355046354846498902158380814645358183133128667533267365927912666085417287025860643463507681357222290506582173347106478681669889259294820891741364988096399295054667977139201823549214320109051714921208648205816428330434337492341313020326008007720555770470215995992302873776533490273911897098493257373904453976010504479125469043137470058509336399106490665826888584475288955109351453211311449170408136582250271270513571315811878223577940904588629363850851049922171565794639365533033718650475639792261738847561932394507191160990099498451712660055954073176021089044344661227799791896601746417671792268136353162744767738822927603042513249145632150571050892271885116485255129131961563054431340596471381311318026224976387689573532884716135102373232121987269739143418930337984572641031771153429792843533410608646658748177754675389638231259318446474769069084592914008080056460109834415293817283492609487212829021940290921363860660307212626878814113098223307449950151903137319274635579717869411147107122953369968956477636827252159136781534133705768255770323379876401833811046986594016206282830955800656772543432194337995283919512594462440088398131320826125944908451504611331065007328396381696768292463098329254039487377522918550872346651533261519867260840601132028941625730608195834490210853959845062611872855056019037081312800220977757345246509111332146513753268318866041509936373724755919673913516531882692129177280106064655528084535435719581274607011387545919835164964322275453496480195484330267694815045942719056913494100263980911908698426178804915582841511146940433486480309553405700433871001623488143016559178176090259070419429679474577196849345424003212716896535229864609580914785435651989752787653142529961829031698926399458589372663357481733892922445195666290127600242178037445006665118107713876447236572282234742456173997823402589705979842914346182764004367987600085620869174355721628160775453181487019927353385440378900578326388843955607884210376985914497744629502724930138893856300858618182962805337559105525958843067798722036851582604442092328078685175989547201107705196799259937223521864384407576104526663488140093422813522109556144784878250338277571275438206628564585565811616889839215813901779375987182916276123893297758028399082590639811666670126090940747567046075824153542919695039825535501471478242089530240509312200494390099812984427834748916324492841527733493966552372253129680582966816331993351027692036070378205791899272869315229039559299498143486849965197620910879588380724289700804187234272459166446372952438647312472316087919691281876910056038670877820164935203668992146156096970500121273002228785034850782657914347721868330332021111822033816420431332810692086409375718821700245918253776211042983859369038821290707120143413565869352726428570654426408017625985152206496095909406605814509868971350677265290347844924266138074399877564642518700486495955831374214287948262790025242392252149167567597809492652221405856140568802723405627840551499695481895319768831288537695472435278830440955117822612167900527389888919355743961755428746933698708407613174932891730245873087070851635878517392309038310349258029030245534779267204426605625894929328373924332044715871557801148933122592771931061777970942582272875276932110160999700294935380834749423951067637721135505152300421297886214273388566002220891648532334734191767858325839788830949477822820741619872066915640318164810292811757181121346140192260353179969940472966229536531541008206761257176593072516800493220997722947150317832866147314737916568898670660769993594234691033171618854557334238119922217120907806899625107724678251681222149430420503975613767953137690089219402171450560443187803509651333526686979660477336345504167677568227930446938391985493138833128769896595888050783096908711063808465965215020768298678360743726436026679942212390973871359791096355372514411210938415874833894031638554531179436688728066703864281599332979517757687965254786922879215480634932199906298541964769470705577354614703464711804196875820254454255375146057731885246723513886843169153928617753182362736018364630954873177840973400482262320828809266191469355333102692037382133971116422961794205314689807321800603281074563256052506737739623445070386842496423248696166544727563168358001124978956452361771308536996311906716831728027376911628000731010422899530460124001106282422718480453057565900731518264824972436426381932864737372355707547074278477622833963222966607688163797106491431591274339700162492495129385614478956302612985987588387103591203577341683671866178288604161377270650527207013405392676293045067441908693565307052485359545059204297426368859053671227859656003571574743719333382124089036418643992176668127295314436564030060720711615859505674714130661162185066347614776077463469736112986650455262079653375205167252877848193857490987984281733711957101011777904325751344646234620498200959465780138875308265164228815104109738681151455701008265837141289112784728775182703451330736243270221484244247335986434296960619853641560063847750119390177370437353719624118224480015745182799890016107112834171514772701241997071257703377025173204383534850188751102855951451706023205611938629011018949903430355479503439213481723598414333737253523036235394318455982126297359028446664258952675393038525948945499570061759817957236128222167741841561517488209937892805732830016506276061765065381199582599046348101920454584777472129743989299772076838917799313235001273825996480117743512458939440049075120771422755151488821189546477923182172335406927177702438479190067904586962618082813518408926190850136379020970669552346467522512837654634708665036345790901002178727706122937732597535934364464123571001300322022148780557734896358960814621078055358947759688060685187488359570891192773046953052613499764055252546674405223684520601613014068779364757510040922461380990297291328413848243134840027381418501385566227485628369478957663092043782544170261026763842562652863197106052972827170824012861117042431504620406088756320709961624822540357229652569025265536556082029416206149268157699676032146482574764313169068976899606411075017644801035055209536201921486213172409194426535620381181439822775254136383639479431605365347168673995014193597861579939447309493822966001497788471327519166685961687573236642843499879867433592845536542192626701390826643774085811411103307186188494164354947029123060942405124544307226631058243275176831995283469223745549950840674391907996197530631779676268912684692499176934655098225672530245789468467808284513633658471305172657523179896598163325875233083743095530758200874803395068954390287804419342000841592020804075828688878907434097067277481726760256613593607298145469503652328235515122438870241349923564570115872238136408661411058179899525144458643897661918237905375328866648702052620674992972325198422109882365827597368713337656770494582910745141048788938176714799781125293943019080031282932829369011606455377307375088684204971965059502442391980948019638690425109366024443981173667768558444656139120778318749558563924678764619580998563723155938637071762305454972231642491815261791820711533073220888486214571364662250509675656263527399255988982115430015201974125969415856648187770825753577685097371662490446886200686418620702903092377106885020212043039040669776561032369936994927708790350303379049452246570398267028690268302629786380771399125892616042338163201147215448331721325151553739943280579781443326311287278916972837688022001347699856888447266012938050004501280966590451145220060851173384602088350413154824983237687814975922470335885266327553001317871589437661466040857485615743800348108024137230880723113447358529646946449897057249288457946062204095202356653264933047142263356833819147782055540989878353253767884188784781839258934241611230601334910718455463817314047930275227681182216515401079456371836159867007757229326979005957105806990292622423559125947824428214700196028417251851860757735045936516606968340921548032383157699953820891667266462530237848258485892327117814254039005336793244996429970693775947750203893500651942290365162702705094949585728690369558512256419829134847453094749689409965542155459697485608063761263830654791056001095529592187656559947399770303679838270452577157064952809488406115931477029339681565058977972333126766398676481793626980907225882230356279076903466609324345782672704728395758399917745545819649543876413473577494373178763425845244067752873845051390199461358477407036193092045211465308102770960814365221280913431097247195507069336577926250069568857071931509433316254957333015674136420910198864893759512373763824713858704753520676042745720232005662328794197580859994276340300807792145824903655039633828044006760285078224744925682586751359744442264852341308851634215048691638629786026743105644592590412796949566488539221341446874449320190523311578197295024691627393497415016513605411375932177841101593920598687557254240862598103332922498754119820573596774552322913105505783030876286114490872547683163257207617411892287416904323248023690124083902297199676186178125685648415315680901097052967520660931991858347347914515152154761025129880750696484400216138142853021654532466977051541397036229025322330201649778012710865088850563801837330907919887398088084923838844699855547845022259175044118722954011819261553000619869330084170038361864292786340516443196303869984947997559857767379268680499255994143551127693461947884782327719311796588909548763477729812181838016435183737978745235430068035284768306134936368768744589155471753364750686664842833345899617330848908000610819424056095768940784811906802788173802084847164506909876586388740314245780623380527106997445263370040379167126930066367404687171777481568444755561281985113837155542291013115215361050087707906417476013904248888655252864065537802183273791670903191114739966750836017231763418888334012606522573604125460085737472591095961992299230030075317489764476220185149031042350175659429443297176526260573693238648160185809127364066396946870764499922472264069102285538149523510529611473432052826620401564116113480807369170040438159760205894094664124413139210183171313224583798767686898467147730753585180938125489335928923518473828411508258855112053218223966552454576610683875239261986658631760960586746030515083607275362899359856905388774197405663758041310924404578997351974213272580932994672796279000674080763180366650393795904418308899885073526021925756018708673809389425993311888838257027495813209301455722711368492422709161462785109091101540350274016127844324884514820226322571251774103520681186942258455148501499616363309471557325879257774234251629484526674046977296484821264754046478216630759458179941961827884010160667865122672243322555459595253053742455112640300734146450369874381678000555866381139705857860277912226574405783852652650288966470302812786560984882850019594271809054166636482947411447726718491165349578678712590907519338135310666239306966274800139917996748379615505316365491712828749104443928822033083330128851998197239951552561038460906006524974187504270007809201428991080190405896407610916172233063017728200987862096966210581405496025087462603231205331127316356524071090561674110268936680495422485125115195046503021550586542239776006208912872593855851942222085763323599039667907725717456705944147101532902436364014824407145762187049179725006423671620919559105680111043026970246568443807501718341561207068173296625265420264758154904131588616691467143087639546808911877005094821614331344846472999194285360216981507707020742051148103365519294419637064014150806554230012809089984731107853981001398724056471514545618679135298481192176950185930067216097280783046588417983078398983767906349751018797877191241673875440169394954336111276733240059860354341152323068148245203694003092607440627323733795431796084561947265400381615730628209033840849535950870336224772679872634262648193687239931491484312801767579578765253829547786320369586184114413501457955755312988721766739062981749039811143763363997696645757244180845376980861533567758793607675384431488629394739748512181921245179818459800895595489138561193349604580344380237668502291873174982955230064168989573180226199563517477776028686691762950640778475199189126198905814427462734366366035819481944359084636034477820985775863618433477857376958631957222512286179217624071774173993080144435815420883380477422416411774061054002824922200064716743699099260754829502631837368567613700046800176425302557475721875368344786255967800499336873845408703813432629304853385980737892506609975164902817168284703357296446930889103661047586664436519747183848282000190816315689373229040969848854297161203944469750750136216493270832499933682393268307693127180822561783212250960261327883210790755024042460718378473762001888441362079865626418302537639859918432858837089014998510932661635096158730989311783766930207082104842489591690349387065055676486941502811448287706655404892206180670418475230669192503003084152272071407152140071302922586777312916999241294431486477109889878112160841829533421922651307782591548298326112856823414269703038654110483892087897612427566831837528565956750118112103198203421218246566301063135626400036168742952867229909275401098436290864231875793628828874540214679515208239070866316836760426139420517870434151247748961852212614711397606775213314449607736320502770368324470380863497018949357768748703824104181040822520494369592715598821645703531836876192777919241135796940799184238742892825689600492810095266730955349466969169523571417361502654752467921865342233543912776752146586664713447852258227420052587470327427323116598145049596058526608807699032517117812144564326625347150086087907677529988825611426138886644846231859265498786017867213941896360027777116142786436260870793761435204911139677891849908508210120633677388432740352102991536031548187331059078713825163838475505045837002915602384840794653607214140231779053082217897051175391393534640975497548759923856712778592948682479574322071584581510178926355934857006507412454794988459520503203525094399739113222182541792036242542086690326857818367991354600681798198265831672485188751707894256896827893394132838000066439484080389204084011028432448416010320224296680376958213101715772444517690543867435226692908270610070950340903407022782576213869951585562839197798340393091728253219019257766519403481597950758525867776914763856178633728582365917997544470702440050667545581248859509885566715813454208689455715298327218388503633426514787219278863767431027051120885207781584177284795728620800306434894891090400344472121950100260624182603497635148998967374957803538260049326595739462574478299546152977891032304395654013693985916981930266340430622969931126853129479573001306655929647780214574034712714866344512739756794469642347918426926122062324688910304374605666995622904738259319142483007911789562454892615677871456520680510310995695144858917776400838092464260236080622906046426166515496885115299710663613719692376741258708655005698903795194092747773749799672541070934223771344390015770564204206219814830096519844423981921764783683901520430616984738679634152390090222072176231148984900964699460266467108549422749818416894763237151373301739484090501637934787994718631529135562450622917514053501850799223770222647385649706549174084326471085324407704210470818291096821343171225349507748652770849461789701138246007571021634641582052053561840864652067239684387296932828339886373586049333565269952114522421640747896542332077113797640189258564522318148177099858816369246447984611136772090261334385156754410934367355084740566819975962786285550435228756453933028752386427771277806241281217438140883579739153421794195426872682827441070162222357496777486682919275756617515324403401636242733559032790007318724532082325819401079897628476129619935657609568312233431609493473892367735663330475545950489632156144725064257782607776318377977983856442857644266617516938327131215030950773092303278443062776086918786252436814144703448385260471493916539785803951742965399957237140146022957146975630873966479555946711747026600403712395094285581505037374465178986185854960366526979933119008417554206386707143837209105373596456958490267816729205567786658772831536662405688837855822771779247042020776466613373444978411383124634479644717313843314657370243521324423841153400026652545902529586702282390214578096734147504061443172075479446753999966928283988066305822511577563570595810020756670693666281231070594381955462178560210419245186111865562879384597815001062127796574112744027613074553793396354996616188729725556891632831546398729648736042468567563114144452276233197101123531730041930548142895320813584357533582822141765951519706253606791288122627069601238603518091198952630455234152218753020199133530494021498204722804354433116327986828192001088737782182539247788680876171040145037702299482136038052801348557857112555784243250560081919759847591165828895892565203022438880565775978516783029551379717072414771927390648682824746840383654821182937829935967254283665276635289902365970065729967509130006562081263653905736869171453658008426666047299628632339317469478384543243219771244800448621877539386957337240026129182862847861122334449714153386651289437292480068288327648752722793634606104682479365121993164871334562840314614554415920535521593094710337958437302902776078037856484665705672621825716335552116896826523019862348030488046213442072580465450410688755802935895922530214141968950463244644108129975739265213639915542177150519466049283146000861719552852765446550192532952751977539720914877784356351284698172275367803453656740029966486615737600597973237352186794687913346940051830692276660693751741539742124077457157057577837623599403601999693270842975563371648975408498669501700530606097103012301822857014694643442305904670351195141619958805122936595741026093436431930266784938687935586715376724531373674356477163661713040027749623202497322140234157756371414879118670956631905008290807552653587644962208961860238498285440104045109103985606755201580794226593642982394370619295350590158909033563816894047995518408105476484025143555039506806846434395166277885279481477285948303654149357988697330259012011115113831563785102425801125529189911122016667659572529081195357572342321192656234961133577124997540281755144927295505541974675738471377667594895817327333572373435679388446936484708071582491916714695535748503690305550462111479046030869607151963080096838479490647073223895827841829145645981060571765446003576143681550913796784638061347861637324260972490659968228597078789073717536941620999932048675361990475050200414766327361715610887964129709532425716789098518883962056610804339307807496655550566883971497147439887842466304071103560169347318747616177365343247409334737655666828149804009219276006096657331364332029687707739452891094314642163744118960050874133913602916879383277630507114277385088168233437096986811265012363772041377397228308717300741520008472113367453881129998421891355049669263476133883798940232511069051723544246307149548415931933222237441089271471204825230237811521610884856305027496333662518132805480031192209041540310143534750611456623126612729795655562770624293739619874491262760199541474133357595693626548759611750319180777485280790244513191871443507116829088367840745858966771781680782724159494135049528031991880036566491033355610579636687343496969837516754264189722478530079464566251161503431138073031075920347244941946556821301968126115510598417035942856801140198001444403597078330322962354116754107646633019903454947331738644169965250730281732344806856638428084063244853347859613488540545702801534987303912482049817037188370172549182970343884158423072999886099081213253117371928720675711926098326234656182194299421835904355173674866877045696795744878361512228033786899738767670312842746925603466600529756631086066232067774618525464952529181278656601455222067200174679240600803577818745247584170059437362435701638327188364130296886082367428561312974683646137313338838877642556279529362219417972495283885252593005683209482739246476331822929633883633638669545411523328361210533750484862910448144870404149074207366641238788288338187560124078401484138027201258311247200726222453786908372809992240121421090241633959953165747221246768683866688044655947730355585780996411734643743208355082417093339844690744218016865951375784545095148985050851500931981125008776854077502588744902573512982547169463444958372612081135958360308538069954430358023369286116075525475074552765712014266721002203529706496210701459036592176277467474709780934204407395127709215577673998549426811172508284845151163819699029426488908545153713454773021502378752831841580308496045443673419485816728849337587889787558797729294197404989923760709000702723302072949053734242183729282693456127328740206228629981247773659063695179145440779877330437461317044608891838610474519611635246807952954850920559328650498974326293096834755531414362504051905024365396739154887614435121423487828053949238502359892310092351835836124544108325985430556593332638885026063451161316006525050313319242148429033883024975546657003409236438528576911386542700541325558579000245412282914411031885898442143450955121895311380843706828009796683666222283684407635010349642185019344808011907181190829593972452581012432908194281815066291968862277617413006037520348202629384876457201191987416754403061231849445205055185292952067629822303688213734158795964742261429137110951353366035740374042983776479063722883929580484099019466298239154848054206217968238546486287213524840238128726415373958489285969801073696846591162568573281058002552363206838541879474992234233445002724086372180815664785635206753944669913452229202157658179458113782296099875254767855667605332595876263970514594281917633727600333452792453092040299695692715032604914779787802496728387834979695701614270010634288353839728981017470684321393632407905846595920121782145354586422987403319091806338172338149886656194334076096506897478961765573932774762172222780269799913175636256604045762995637145728918609477453251347935946819720933209672021437603354109528221610543170865361581494141714306346190938503167637176925704232910408462249545443420550440853378333167837903336303804229964890439073167427216600077641232188060489945414946306843008650065746521702346137994075796126926943456368135406927507973585915835520834603260053105528016658051139720262350371912951139382484270465376016203966824760482375220914298879686757738522440098978048817185003742644569980210020810409206452223231585482495796770396055141227304619924786344460658122445614634740160702080670389000507336561835677878735637338000606373756453355436007899889812206936360604879259955140817660850160477194931802105784419938805286342910354112610010112495398110548470122121859253769075835911314848331943333512079505869326356944414585991020520288062990102791790465606746757211323315600425172740604671096979869311840828389839395628921115199814316232477208985511678701283225173916081582345179945607511214405022589594911405732261713527599996938139968678424601224758796627501619139708540092368206802290408597621844929531142581990489540677408304169373904730696009589679422465788272485175658826401951981704191276824618982193935116158713075884479317727065766048811736347562328912213239191122327165896844458320564815587028936123180008583651819038231846881580446246328363299375418484775196624884644426248947547784788900383698889197172212026069382895786662767970189847636869390136489041469913923195830240442032241193911361209000710857936964300929420612101677652412838675698824967537344323847023576357685884447775033463919007933475256055752577001796209980423847263266946603018216425398028850475857050770177527934536769025038310774189012402981870871470444460259303092321322558980620231569952244166725849512196729249429070824546202624136509863380965050519994685310823374273476054307734009782927194072791791291612557495869022993784493882082500484539100705381497764990257844371097533105600881855044690470943835645134220017022297750834086857799095491075410255054179584788719241375513634479426129434305548669612012442577729284668511377262280694472872799176983447716072388491747721198293803563730842528323042213231970776572448943736297849373978279000178590383519330682113057488720274528806525169115107943804887295372632164574873195091916906314865180587929859710108189845416762619283373529042135391169593261367006605321949203594484099514015831088624813325062666866934352965554171770304210407528739696575629840895930926607536786786979338816080195067929900987226272637056369320377599117663707590365441575936209428479990515195982206985487397312160175540872166178371699400145550262518400855579015044053792195947292284809971666620644645589053675491877329809363217094858178545674438184929018604556679832549816559306096569829813010122635294053689946864001061542484454866496997758479557353410128963902523326417353444546888415061276683962740879451814408867980121206630330318408044894783417888991433413483892693651970109540356616505570103019658788774338810750127304571358430502485520977893436893465930821843378789933277722076997453782351614699882056744267393537915234762789006240697565349032713957732367439979770944933128218786124481326319269867479259027918960730649692652951990968838175896747095160043867996864370915406967777598349922168250662350890594293578214570396672715705497876705757210236281832344971614454539728659301237840521118595951120559014402540572930072934147231733424762346553419169034320030472415620813565320006348704554214644652740432346626734242737820091430232755299954790925769935724165191350403554428702538162584975438645885081286396000148156301274092795611555278015460648883552994139995833263509124684850594326637409008057147431205155489618304281698381976994960184233717824850719946321028662161503842319421777756460309404293490578858872989126751979518238505125136011535659956204294845057983924712152360458399516007991335078343800448223964926256179674222914947691926901644578130629308640372397073506260682933426550765092622633673158456884921689291379230374733220052436072202892384919498928038153647875030761846691340622120289457900239262781782713980582802098398691592459886982405988316663766685481206886949898560567526286992124245708021893638262961134996999479673358728405129887723971729121600770785883467118822507225558513820321455933285657856785037638669956320819851994984298906254084628720017296475864476532993605860228267292005599371217404141432123456394480346938490878529955213366112420407131685053012366806117535891167770850600070816276153554295984230534142046862920389964941671927938321845902298311472181279533601819700440157594940600689435512464245634263029581125189994733157242024191271948609881685077357602518500379556976750835302164530264700425758507517904345344497438053547750501853098032472220428314149113597201418196448843359942778667230736144071041485193096302074070446650007349661067854541390777222241379995350710997892466323233146921632584268285487917111533428132734061423164914226491329648696480165644762797880143753699851047656469835467075097028571775649544870843663522627924369643579025033779147767010483161499098210928916721553309587219887816819236836373711043863723194384793357995447210998579406034584655274095432697191943257536509971654923022115768521492764133184711757405774974530758869731992391038040046000490660960013342239527951869951424410681175334587761285853896139052629734084489338097099707055174347545279865576267678442358370429661214312080362322163341727713535306524549345826935069524852941330601575618320540959708875093987365834585818646245448204497317625791649683806539186352280089290160377846048192231129151332706871858218940566761644769967444223673907152205255876214110471000248493146839582684833051270487658351107657349906531212407994172401539137927140240273186310455964184884913130306493923457603126222967040445228763568679490238643879470356306802050090478757664829624418956725362277419607468370446556467831761522968931924707839408323419939258251477446309755447662147540343608062208338211644701087543606063082519932850760120195646167519211424495933286157920378656062482586732167168970609775630825938441859238296039402973189952248634355531877301954841142420935811660147569219711071605215514257028868508069702487596547179817980816301454904790505718289368663725696419527374916025339343346716384549820540430727029173175698096480295309996011143328106324762298186887195905879902356230368744900805147801350689126503632230535259317488427765649939828922519132759129049818270369309317101486503918886805571928171198601013807966457651839685745801923198594040387421818315158117292248537864137695855449669853564698327509098771059865016720406031164526649690372165080305569980970366909058638425526565955501817261760113929565623031025611304464055535739498057147957636789685569508204656749131386404782906636795990346884177696600301174133578144034626022227382693020804337830728269433811036362209584535417299154915237918446285017741858213845925090785860412621802362933549139656841697687241507371993789362229079777495624696741984783988349819193934418087124224944092507763739621587598637341012876140604954096357200950313501455698418522471757481321012350255399119120466619623447444904391103218434077854895330427342274378076203605508092046832258545170834889574844324534217589499489627225891998933415845230460314365852222732065899475184477871764734795518417621730966384895326431312448016997897296059741428375885142258945628826620070199426266979751829251994393489350485515441569943951003006049016756940028862650286998300127200303167992451007060930124701905247638130518672425174837395444010675800121794399620951030898464914124013805813364962569353344798761242888652588713314638997427655028934652344761058797866498890886359203196055164756117043777904982814333071714360196421716186528532898222163675101148056449999008283292368879552753327552636993782265313322723048253725237750689461631331661747100941902093851842050474959034677500994702452121056094182620596839932630919492377358656582255878435130119752691431492622126654942406578144797016014866713882206090463762576680551197056781341557321205580975735625763344493988551155235456842896416298474858650701849008141773960701490079313460556249936799619102655057218351905258883273989413310968731535637932040669785405467954772834187054787092307748342630650046455077243047879214573145916145122903081065609373851469491725686374664786033039025486110410157314460628044577163957203885912566094191632675629449873455837568133971507071433555075336890306544255300536584660415601824798287676718296359091662906656286911202248603126565140551868960325322836044933826142201767776164535497259304102589140454372716463389111719355735991772423006675194663699809880896570435521849777965030775353266231405944039690711595290841183844481585290550528763178106160767485338006095025581401922749539246539121978266991871980048377115988267199104064721215097068127472582840185270167029208023301133245168862008068027657548315388166973596117828301974090993750924353828710233303643441127217617307374818870216636323245208546397596941652891101492922659554667873435652808153360862431130437479800451082208809371110328911611666163907231888826169349034802656346646661019484713589053960573680886508864516839629930291833500993967367992740122216770126994643842700841768855059566697205674017897274356282222621148123186853871293264957941507254995474621258446262304217983584122394465654081110636211101532945472060340787728410130990313639161722703717725000754125338953489426751585240761261117233818126990661581035088620163226764746183780428414941792157711485683911009730749863363477371391977956164578157664227346937869074421394088511167422747516801478936986338951136167250137475242711928369565499599083675501731759057199011789831581294801091515685272006126384053903798539326635179723945877769173139509106861235754070605725479756114535494167116053272205489806821773494488138772937320759197166555808547334673898532956785791972178647712275977709257434169814407124400256180840068057003034388079110525031127786427694775922832817867424731653509108958147111200849317673402151536846174182600859905513388370210853842427568552625917263844094737678506030827035166351257302927329290739332477431114519648949156820166520508297899427629603861045246254189733843153190954399555008592090658983428694280975420375407672047817004700689794993065704012212919194301069497528840047949738925513439881964018733243152359020174215531219323163363384883909581917827398655668626341925513623570752498726212729774058098502599145002190704219269946911124050289601304700660223905471306011888928772552389008430944355697321090351866448968942715559695876501511307139379058334073078929168617349153969479520996397711771118842698196110547368314102432386911762182899183245851823655492978088542517727983710913219182086158732672400868417760475079699042826331433288919624097189913695863784325009454174638721951440047880894939716777382077356512850104561638266433974473162743850654234510539035628113129988233647312556497964186250613462964207084543702160311643881031807519195209976086954118795649982692095849870343459183102794240716321845146184161773294959157396579368087833496054620520017751382797712011937857687746894899360874428271247845499098219150091992877830876103394922655513752051102997173121399821339071444398560627980054366492466177877831043509483687034191738467283116680708924125546040433101840521539046743868031996210513942313942251470470999961265024982026294573252170917389161605127753405409779923814321176226743402719896621755027206984264906212604785113760627978068220381149856712682938640991944835580986453720685658803744614138066683479054481938948924983001272476961366877954674974779228465204728232731659650530458273701018715209876562473556812085880614373692769422078602288514689983576006656577830746085606550703761721987005298116442854188816427990849660923443850668855630758695129482452858086475641296771900730551374421041799873358127837830491104767637311033914985127190659742095594444171520705031450917978143735500965182657233227216421838283050107432168275724075815460847269485693179228567545180482629486440231656990818853023880117625551871354267389343553904421090935123313040996509080564002670634770506614188322345926680450999776451272856285823861779278424146847277627025417135473555349991812687558519267089853403457947183067571084669027394329142783278191281993932951417944318351354413820128444438358615852146520723067379201264113715500296961892026791611068518156530186871393649797037863327890883449223592325927329467886836202004800775506146817066652413322032400112710307662036533557061775438987140508986743644026743651488937989534116096251507391240832564105180208954814048715536921676611634977039438011640857384845492652140591351880303400959410894052047227923860495561910665803465376183402834637951059838698978914487993669105267683134682403228308218769220301078841152991428878297064044153890945808910216814638536620093849284466967187265686226142507711344072017885703444538091256982494046390959943008526337612624926067029737412935539653784956849189670910929153890101509052150708639350116308572048819745562905926858957175003373822920415568290375320948243441091464886351738398159417932788712945517655060809458861434338022987851217118561220603360201252476668662676797795130619201249948957979690616033620430623830335756987147328419377574946206973538231904325789175696212702655590395835076009624652502231939388428220216211639399667787857416018601171998228966620452404299879656109777895046447354984006039446945043357258496879281732530814606687264575582944896683107913177635850968811322460354688757065023003269244800144505032159717883020748297018391222375442084410286764654590691740825029124935421735115095406769167390399119676716208527159172754963410474432670347543125905797709261355532096558541297165296571750818960795898546022865899509112623167870905626720269897101977676359984716033755227334765294842145918059925917506595663565716559972941337520732742613255923548159329852868243453941434451435856194057538448992435221196015371673708296317125727898850101336845364221509617309555542045062639337174299084182670025282705787990065333173171714850317175531579917595949278112371424844704788823858075829387858084313041250607751402669759930552718767731386043024643271944564672300171473921052851083350400805416032177539162878646364015386592011979486875320642414145555566268365028311511546608403174027636963587986446790483925603486288246008819404010685181387938436599832883984637933334078879090121275315683664742162412978406266997347877544583927023896462287493941981094852847115327439322246264961061022679351507929684679190034618209929316279220436880692985162591022251764896922007271464826804538457452779498824220854538315076543545097188842187105474412160185993402215555638964199899030562130204056251512789929832946175576784197299993945221501085164915043972070344167456989009620509331208533361787097264903616670408545518291962340319817245570856511409147310423329028125379456743237520078737118148658225603526796195308501614510236845756542421670700914731522524118408895151015186267395209056610397671034925803243781676977423731408208631113127777357745712592100947463997834812418121692621590089840003057187576928792882813710920782309954087026786790604404736945875992789343457589230206765856664953547313866125673399885233588269960534219698319024388785255869248608912614584013368019991545389894513254445434984584246055919584479848538698798271711246966429198041900818583313389266417929667664725857040512165951354460534809901734785464171477435332537597738442035853022085146693700694189723035291748706888696116281420631724766328729516790480041491290606585384275584050631856418179016345775561693891807996147107108881223492007786497694221305224694906674677970686474300649016667140356950815850906642643897748473447983123971731337632427834228686180942427053559138868404436427775204587752100349318569072189349340005622852377685062965230103433722179726732940292524546679402887288656573244489115511308484963740837442920786645485747008528322237678402286941330901201245406003445535691165503475933612850817182486789655509974077185812760030068410990233352169098121522677272661946043038989767576969658193562754832714323325681241268014483695777799160049907710478310444470551543210763969470009142488562674935279947696916541659161061717848303353930124960033712324990661037170370816543795157315404075041357167167433896360096111253885843157505860449877397514376976247837642437949310588538390320865441368594824838477945270358746653237843136177366564791663401232152729488423155180905036857748480081080003407376087581227253586426691550385504888755846481285097924521821712518431536959317098140647769834948446015878547457404489217095863366230166886468974511611553876153602987039293219546020193763272985859018053197895643377344424465775403782821786516451464546013585626343645542782619769523149201297171450935252775533293942029640597038195129068931529834886858019759764088171133490519133368896208644764451338403373877091392889785937264620665552162663958725201159865871898560359514445627560552545357605948575610380787475824318582559572296146586666371119347106933159112794243459779433434487356054328266574502873611736994231123922854207259480991576824669723861267878339505986572970976793418629925896785375956213101093174445836291572740497178875511266534741072658633120593079997318035799527425290751282943932434638318694822585783062662083013663191417459764270382990331743093085946025642120909871988917419585277704928059288749098363472495505565770761189394528676400929229557276301092839953533045945890386348838187057735865531545455504052432488577378297914926442318572232268054299039147299359609796048287181098544784446035309654116629870665346664068921016995722355654193235670783258390805697881100355505304059626378692484954836508505409736264876547593822263266634595910716443482162135349022516333671013904065531991335236448050280230189122227850023248716377322889527293875310246695143067486864522791233848598234105541356505545767357227854166375934317152424449696106834303329084981952329827793658213059430750546910825534722064383140586299647566992367338773779044064544157074301651862592569555856077698993596178669122655995481224078171890959129924907229590827410546999779219810330894931323772773769852756426197209469028331816063072533943662451307824582229651588180136654839594351774975047366641350839473503018383846043569746264986091479317895417208125217909346419539237926349171105236757704927003117616073813108824407764610208294691612750446420677486453574631524594873137505823162768459574690883592562255015826340483905155223173803942521560307522142307009686301585911203194354402280213732146664348166716451927157614268642341088591060547696167894943103152882083068963697759860118082709231351611861814502549872843067280196146642001815926645286994851521500608277464957292990599782945635449526129530677298229240971867658107171219534549336110494438721852972983340635108795452829445138559084074189770810502775606994804945883534686151290786200504192864428481630608879844775326691441373206478817796381345665705365031544696438631789574242100440985798829254693823243112734801136154901913460061881451562958973418583573148364491690959179552308419371924937929639537270463278824135805577480896972747360288074264542027721165952697667251687075631449432233386725709037136247441587082896192756836137482622370759238166393993220414740200788454323453047912727976699895036323667331151858610920307411512064746793568301538127986097347584751419643566493984915912892339463473542457411025678420765855176630152218824252574118717486832734804197885526284706696922748808903372621525955411606166972753041862298789565451863246759919067125934741024246240176786014684937497193590006700566864477481606945438529983068978472312824382210247163349325838623891871181508045891605313657213293435494018819613534739188945276299760188014437829778446758023077661672728672798010577885082823115596622460296807230851945531096462353389256300241072682241227560674690150729484690177071662087761553328650657000212729724951112513566026411667957903462601441458892441468762296060371878079112068380169865614664990384988946783220418919835581969479440409230774274003307213991261435260242074036273862648027230025271872094201797082288858197602706722333145241733364587856599115651545685660155237065759581359865224030940820993006472257841478300597150748943800921712008115996885000816631394513229697988645644847610662803011923901499851594635711809203848932130444424295821874753584951885181340465590484997640607749885568648540482892512570378693229350345289968417703208148973473799170523685325314778694713166952289804456115697105017329138122887574227342985841074865749291633062961851402112857636108574584176074864258055694147748831017141372070989707968539274852096464572339392043773144157779074292370118446985231455520367368772635346856142873760486916412403506353019308096965928640158295561286434706527581547347678296415644629522465730356351536070385333055154200787035937251503835445890266423168565695014846813640775465306601873555388943295000189211410607754942911034092203996629367419595762796620650143244248760299217085028139828931487471601495616382022846740396581655290431553568128912697992183476409143943125731705631063149685352229943698234541195523023564223066885258683751492674901542260551420488133073480193374807309976784097032878264710718351010290498598518997937512014758701267576625712433038606332109889343116224326992938854336642493491424284532808708388786655129771924598657848851658253092529984136524185705929596190149711101868018481183513908636967986879693568180340495639995317920429514172821388698700407964737452628774984577700144130069615153670319747280101684002852815034493268979881684816426648757214798122346216463999875683527417869532405504742847521192401189616868837960498712397798433415242851295979443582760137187276873856793040031646596508617904955780429754555117180085286536319360946109843042681348920502570016122665160069502819972853824679246969508596663291818321849493993823856576915581005635032871809632302993958391880159692931703195811802290904323451874658730188951382547698332567576377821586032757348446785201650585020188023003222478978858577281796258164882902739971922311341851328516436428444417249951136207988508278466847354007898344604369321054539197818104284832800327273701652721054663849333059224809730669505461267993786824238931088041714795244574382529237726429268962131213242319276000553160112413196615012175617864519178632310466258011349011793416630112652506878538734886264931640889066351314283709879380016187497171195916936952690215102812266169101601642202580801591367234496541846751897227439114144948248726928296007633287008268093948452120522079172967143124469822600003358112714437778554708261939802066892648938395192611724995379669766917584955918126548496838643726284002763425183419183026405537872738506036241667954313821351266596283096769121008854758814486666130506629508494342820530004530113574831388286512766927910763860218738706953712097173335131457831809515919437923200670385272266206479409520282810752449066859297125894311908879305740717709343511790110739958659590546493447397035035636626229287335328706360370673156469300022460671487153268758700185657485436217486115385952360803384100627879594194956702676671915265605190525878722468229253056464901754621897267051185226063424361253834680101126342535534182962089742218098399395179146517718284230419958925641844941515803379081720576337655002479650952598392899946317656472968194757208278491561733490590486236959458514371676115435446161712564583930888903101894344768121597848947653118618820503188679059569044047621098932644268892104483687136395978758508630960855490413176476124096712061826462369382809483041282617787759420211441610213404152062906882701939997724795827911523698376559247135049110369946442126005483216096707696281252160008523476916554833450928321352305083203551287291683458074784337976908087547220910598622647103742313873548977582982168801495456183402161642580464217806360460526996361841514260817575691110224712670701092376012254982009406006913248553828031956580646309268633137198107239908453951295301610980107441055601652983282183636650087119666598982639327360794650708887713658084871731129865948467281040799156799211031417577763084142818034466946097806861610125808461001208715563688150013974588587635039454079604574306963174965837965270105701731468250464107594392399406289961904885786304041809159215877985274243585282275302798091925968764032743332662429996414694819344749687739117906899317029037785678404243140303603889488033253386631957403611962826337886041516661616233809718856924164127845335776882569337452179017917701130175233261766118635602129690850976935974075533372648726312225769240673205396014704875054727741205013938633986202510433198627427468149815701107467308436260178517463704893239100681270407458101710312252265004196155024749898674561805006306854132945671470918237285333120559337943289832331246837434039421575955652742417369075761720129433960621984140250466180511717818876993677054423028157788168125102763516563698835701731539832761387491537087726416511248534781746776148061951865476673232098268961054637818523900288458275385754027434933322335729037558998712641769998075237414877107474347277751068953258795744428555261092698993189760541779401612634495314605019274494686445279278974526364971248021141591845071749515958694490647048672251440050650365073242463133366598403667299779556524857472640793060411652373840673487751233045990725860410999155890698009841132177586110055465766130920142136264030248154758449084651700678522189977591461665992779632313359083586151863570458238959628942119689252771150765129702594909617499726094886241434219365467843974348185209380768029556898054354334351218397013879232970327140745184859403876982278372542057850701122281003249857549549982507291720446356887575267875101636801311338707357311904936380173731002890651783469991855303364973259290673643928280932760901659587878132748464387232414902364044901010151186781602776355789374552361805387328566233227448491618990070038752095521982464278258185876211478451908579577210542445544783817464021278867672343720625774748622582327886304883875872381995414409779431642187236134395039274324401619933693051098471499298451405251885143647496003812476136853434382963926128730046127848772074316079353994034139455205997895685268224503478070945641720577444126459690254812283118561494413441637534147851040431744441189996705291363199000028455909906077553367855769796539536243825015532920202382082386143224079702499261435713827363926632288387655876962206480299337850100769933159480942794127624950253273846528433060052244361041129280317837370432387580804475720838830101746991479912544707322097937287131539345915885456345063860921170416044811951018917228922344119327366217800399434320738084260601144616616989703256735102280050905652999725384986981122023066675828961963542401366096832246306882098443705082855527748393630729187756328036416462170600653889411111531706493034231866774841397912326247006755645533710481237647781501958348983314140804796934822331233265841554001338077308834415337005499187833779980290251981341933370355268628561638113063111351329675248277156747706737533100094821696515849214338516310653227939975183475556860903373502399387088761474864667123031502266270673150905259831383213866212364652820497081985175561447116623258331004314694949194056521484428014051703770201598650788497525421046396071998400267089715802258721451636592298867758298515087844104322302912531186378325474768046264401628965375045624348203116327467561743672700453158125992658634478785969928619663289354943144332708026391873627194028009520022751151450281909975693394642008398116812756770030922195229608250262849997612082054422616151301408145168047092880247418368440050834352849803177816612629563710804428089096795693422372649014134052512053965415630171807923186008053399122851446448026531502468540521501205505709224772975694515950017141224926275791319866510348802037322619946393198673015165717259139764214930158147289315356759352569284686857751373490288946794062601125785537305604305230323222544495144002976574708158128348336555398014564681613119683471915905165544962249885478400955430925375022299190285817869100115471409573301026634474937348216711123495743061060868615366475772547270499316388724567254177080432884462536738831000537636620911793176537312072995897025163912644967471531770945380791248484636824647467487793528999459791718073320132847416689636194274750700794537185330638265735894810448284177905093656565878907923563171459799365135472794195378485705888329812529958870860680308512162109156847953675240776907123117922128601236849852290856709815858384235852354178773881012601026181065116316608082439478490742461886032526113437127238528059987266780144547340338648330543415709898148329384815466978346013830347024210912111146197229307146406730836577330918810190740398911648358572009200606910289403574409869326268206761442710469592797680316420236394056444243561270754115997267612085507444785430048139331936326603741463589932766145901522664876924737307386139588247791323408248005980321261687806466645687648962239303434366274762526974278750401936116199181888840087439716555277767686036838698217507151807087464467923359873596634157027428090446803268558464248577693508918016020324278514192115607101284098368767148737888619500292977887077645270817638812425499246714850961394948085608015152198360418642345302326340250202889659119924770368931420340277753790090380058594834262360040889862842087368632675987849393645770623050779650483163848061100669545279846289222313303674663660382870905902023583952516387967437259158878637590442068755914799741849570904733870391032066598834131225117315124384094890168933819035576832432971782692357138083309779376909804756506468053707540824899346571319821537948191594212605165962087448054361321928134773463022329113344529325332147300763671145792952458154196049706860236878474202567151139713976998074810686432574825585350719610922704522085247205223405381720844475944390793541652009027885847904464047778623352082579056909659408466092587402619153404886738701627851556568482266820031661055504378357681692129241535737988687910308690128432872678963864941886170418848633631384629821469309668015771779341667526039822888792527148087266856475452552066557684361765597666642608898021969911058538319414084828007766132844985965564596939580636347870984282627991096365073953862171149375815765051247520337020334477496999420622543176292305710247665643044378345429024931187814733763988164134255787428193836851353920333410065720618829524939151440486629268333481024502674662940386634676870065531847883361934460849336503350435245786799295340066778340891801198076082358590720616460493844535125790356840404552257455598798499048810242715778848344809939552727435068582109367965947021451329666174444930199914701679342316172331660250981613035317372661616804422924575153091634994515543513793673555685788663432869465743491814894513588716400170861323308194482675623347841067377979811661015830195806425305720781548596670693284641312305321630734466876220646838150636157811827720108687266433464535111664170503735536236880568216479901492552494391900815941789500372980505088126388901795675103813237730544002989533083418311096752564393627241530226395931220074260403518086051110227835924483312290136006937110180356393237002283490614220377579664501944397677241134511453590265244042760645577071382616072895764988279622143407633116217370347565190222624591553887998893931279917399692135161783966550196012369108786160594757974825563504178166352589506193724506855951705519743212849536818723053850683430523383361217198057436379573693356314424300537213702418507759767539116145742690027588343686061434185022027628618509033032465178795392811341669579890948090289151849594679620107354962382827915403067027098264314017292582987314673513710558550204904484552051405238595907727760048208206327972022171349691995901385576189521596577750191634818740697685155495897674979304258206404059136784571344048182693690716167853247682023557594726919357966477894906112921146434582136179076754588500037358483353246717456011181450591584251983283082858045488459206814904004538851233785566855940297119886091475166209649018542822501895054664610287788006330952156299714216454645754917426143698760005025695322424940225689246977846647611211488792665058913099463877477448824063187727854936910226010171367999087411434845352850747894545327152932249809333202232425434676830230548182220845908506600124292057619210144859926000791928867596040944137540749491779170394522521090634930664313496252295147067871906095716197277252756116040781415921817664369573860169557262652795375179669101565834797792874317374516955126477705453854414886398174626820016126312737714872700707581097805361796118340751841700003209909213474599076207393315074591823364509703157431780311701444907528373531810322987083316796147921752749040412734073997427763476034805932854647854459627263191493573124099198485664408892976040389718243649419198131406431915614364696762752901377109619240760893379814704145426636000671022291653371632335668543907365016751421407968853780489421962498860532457467167443706084311393182526530791681799513680142684212443904674940038166815777319768233027346869845974815076248661669831444996373997061706961742006637161708314078476086135790844816782052071123089059532667187149896214267942335558972201067357590745974360732332648899078553062835359419624169400120539887739864513246959115151195522262088061564010763443974962517818638192166674350820277996860799276886698873039145464230300645802935390140861197306451716415564038069152088549612582195978810737148533368948696344574027606081714238074458293001168747370559168111569210268373844194440828090740660814444896336810426734300559595783977021910727243739489325955977888500396879870771238289441402922274422951913805011932185322831095357585330352160754106990277189852821349017732565328327355831692484612062524712767109512403301063398306593785587435568094780652810979814128897071541577690344713081344750268188337745534776212729980906940036275639804660243179921882552996329764442367816948735749895120661325269250584800021801872680964269345478575223900382238860205362533999578614649578517148810560921201695325639858970231925044919742811518205236337929627964083955692622391255484866995803738130263460035202669945285801852765373516552026138877952458112188549185198664173264121754126577237348405610347581902843163844696537192136358728909681893266439830146088247218032141550704220671656390518994525522131614181492696866759814819724929644492453020874255224664493351589119616151977824030190006253083396863744087029902907878140010492215943297213112490014591635380502002247965749207347459417463950587732339852319941054183739715382362011944764811227925047689333682717536949042284664043979925196612553346194744710407863541956221071547796822441561019603420158330563083772263266941987707918124976406477256956561995446683129471065451311142991983040562809655240614877172129764856949476362904042481114547491080862384284869459568213147575870077070908835205630899883035907583630277601401132337099990884887857218895743879595515870523953725011081245819151298677451048784258319199835569790330141463401852943878543259379270064725194283795758501107799189238048795039934109792246815582939136979153505167276282809083856743604723963011842673468940643946374797097792287053786096286451877344369421962047400200007555609735602245603479558302008943989813866850827566469981253530450070606046573347734366749324405685132544580078457741347212521606158234053574269540405598058910541836286126302665783306329125036534652459064380002720529523718763822707142371046563802193847542900139087914722242734081483756977429867047767357221478707030188377740168925422569796939336958243466289367291710723042934648189749775927998150311641311747829926053746491361105694017776330961942701882009137570265475923165764878748801930428083585185607779012365789179777633850962265463062504930972374917546128121369997966571605672627548718507530046102379412934128853927419033475882661910037065684693629993546753403153927134830250435175031730486751256558391606662715748807155321230303467416763220776620905646534264284719845894723220763759314101802067033743365155869626100635023230759220605816980328132724121701450438597461981370495572643583973805973596575138201954521784131322368587031914380062539193166272358841446236275740339057897934421911777065594741760614598817088401358040587610282023829373121124958086203464761313918616446281946831499171276771450356423016148137369014767238000275102020684634515248128899437982632571136939337245347333977326291434957742527117086265069929609404393394143735435018395544299401480002582365624121248625258347203660251422858258805793529818408738622670989514315089480338618621184847194174533148473882733302128544227390897400693979382471511701690324807460018625705066679477809736040660330463269824996539339569163794545451098580548045307097026418414477481230863555862603132694328330855639918044716468276544552249073512770832268973402545160876541217318197799196955027725569338799134850120127271119507228769403532981123433804366351759418570213961929728565794086595499358608387786992964101368736892186565606758717367616001608832638932550549457503882251960504750290761469556595448506668605322293789574601690087614500634667349248075177989580814726370768312578615650637996968938148160161557747519268938403726698389009358129013960673391623124319614407485229902229414878619415132348871779330111047010662253934405690066623320741817393970102944671965312083995343209181007885294865936378307483898010828725918349018254046595702862693375356408438574152606370366554143135457424227920258214994993471711344693524792616649457242028118757238941085454319906596415621801247911067508008453462888704094088490073154239982929147991356037437122238457745712056287316958607608640686137965269130685259070172490365193476440980372097394212346336405430358196413700806123038187211359478067043770812093752338646656224876646724296888847254837150061486446421586021277811741620781121347180135374231011098515894982833647866270755171817310339762515323919507732250527254971049334247052897712698486113988457843669802391118011888969395672518135727357750828915692380378955511294313154577317742487186026126858077982007090798529845872328593719353883806745085926127679695733269382746851135170429048699426241371306355121848240162893676506966316568812664100351665536628055863875928617409957102439007306710351240682946952141026003396261324804386283068335135998968381823649328586602627942173380190466838909350798516778593178187948442859024823474631862830140365456967212169461925265112233187193143320170335887726224624604949855246375129406745022595734275459534961144632267428372433751317486125596071082889226671882673764749744942104928510807393646336675989049895789175949058788497525196903243320670543652984314629190896828207015569057800757663863258010448217500904185665826189719801529888629710530762538661136927300419798110872328977691367857776898675571531109064115714086911574281832812219123207672661763306299494274342071018442078492670464407807716506531402642402400234304245898870369681056197111648603510847885984379345068080526014126333836900253207687863851765017168779610742323300892096934389730552118855456582212934743585661321207069098935724082794126612216254882132730007852181484263119224837280758239336230792001839881828764320618821960151067371565730259053349917357631827377080639934996139407661247629610462968508875910076117748958878223621380969110009136912495193490079593490448852795032335384786982683104333823355050665727924187151642575479344908035845881259962242181498520857191629585055200203175367127396014366312459437308668897526481373587063920344472590709647366287541504471052359422949158722563051983515327511573989422278283762403405357863572197508803638870820111017567607533112763842509224738243161195667768200816697916065601729888144816602895989836064140465017992165224855327150091605137681372139195906090828545064552296486312196810112398963270950807050099711393208647919283965264788601564965246379852568352349814422705718699140617511680040125078098332570728662298744142985504361072170132639874328239698887558424222809371534731886076115415114115098737235818103988506777692209369445124296545483223295120227701550127599192187746916490966008084307362458323374210891736721014567896446507709231798623722936697312129353362382051772758208224221601843428855423291114326523437344454982263620671028460501844956653398080524956682089920048291838270601333564958584395972655527445832780569478182150864560785391571358974483491074299023584088360629244537034933571351915217750836727927908618672749995714685284295199612576827698638124011734852314507939992606493179782428831902615836308685092798957885275740493187371723444761899991980045338819391417083900542971495925824276933358140792078500665174473937438263184475971881769744417880931464268783706610601395147855933543985338915920480349137994606567458828702688842685754905440152910650806195586041657761818781173992974918783971749614398019599593069789491589754583965183469954956485521531925952886770037367260171769005304626516379685605799994433301103111360121610844808482872307379581633967372126053396000151833863015760323480195980197436801786517184318620755255331418814154137937267625475761203573816910378777746722445098468781998181002015183681513016448611663700232830230556831430996267730237487124535859868322841919434738701455865694938441296456417537034585748896742051643329689501556774684440077465233873406622490927267527951388745682718038432138203467876923152959015722323182995775565577142639614664010013607516427762618272175290296167458386847176001955301362943181240530691962645867747469697725999484703883713088131795363458685507262224031756932998788272632520185849670018169794332799900623839649636394132072217281478456049497099420764206831335652702985224147856608079698785170683376530452549457094862310645156988206608153310909476650795704488088487771543484546027787078164666471432199878846887060849538071432940134179848704943468668978095789171224076072591220277190838698723404104100590629420261670170986968400814673761852541828474478082092178428345186910190981339689897266279074833914396215452558525737580276451225338312305879816159979056083044013440552045802389426790767694451604262000574825844251135964579982546071795436883348518929036079864518217319189869831470116123021271712124215024013208094541191595185088986892836265660279131876503460650923085274101342993923445800150649425817975620566794296727802069613810391550898808919671887363212233151301868534949293863710870800277586772534056965126768087337075122614132159146396634316492264323410605873772958498257914543616410593365341187173338747961413253913314445874315310314040885567703191686146888514041610329143491077105396239316352703070033576663707802912419008277620903595209224362372931350190260343733424037241548760107023953879732659714390557420728629184259614597857302250815047165044170996058480443616703208789511845593548576230282509548211279159847899658376987314589456852743436573870958364792144359793197516353483249682204459756747257309693213271372772988517285832020389596633222661746590065460404971068270341081173588869514009009830537789567353106670016798103076281446351135368861230082488454178316991450749028010246723916582887242487244827912584279730502931304806155949068321307352002257276541423244924672297891920795698323725609242242350344455879662766508919683595859787023987617102448179856483160696807674000678777613097250773924448648011166659163435558440203690540859358588895534242782866090873422146657096433176617164796077788775609098570665672667061754853209874762403138810447873942375918858309376402135264736587043498997368442927177259236677727349768822058034902189814900129424554151758964874342511504344418867771444567475170343313331332935423499952963558615170523129117495259470052324160478649992977515498921358211902783762718858705070322488160211835965276844301987487739473959627683691140589227910839966860280727091446464278552083079253951148594396196782821950841487211784704139398849283962205075634396403125376270233528912764512661220711906438007142562613217634281257240038344671785106936501929556616098519615449915815766826880674652846853855830524287024904382217374619383017153604529199879368693529114767381287164538033298568601345849353428473096122784999594683999182907941449006889875866239249091697583037049492519167191755723845450937335547611315459920701539936259430356024500277946487379628461690195032339602045322323278008093400367034503815742694181911167340408519386762706826483434535037046151889844276940576040444440187652848076725605120467200594254026609135818968684876469430975669301897437357496028629068047880071237958671484377700462144978542003784284081981694424676659717027821473087485622494933325825064566570435224263411490359098425727553053247461876019128892326801250850670338673881671524689258977110975074319544580304824548093962469459682749927432246977617754377294078306227096804992554548852691603714343622688026741967181256420344508785675200095425037857338738777797427476159418738645584972465493710356355476958620509666934400890659938418524937444172988753773667290791678786636020330143062039389437862261414777032768889069291824028060037558613209823623765573549881936673465069593699138346294334304350650855190455267644237791163066644539662369264962889514782069054711107466144853961075423949134640479822651137804438998605955350618792624889855496486912880875606504118297785893941649076640840718526796013826502321664178867272651310712090914970814399306507896054296905540181150296932667869296019836909960855279364146784036447679808185616946835443560547084408801765706109353526857108762608483256485064047770232817245776266089265359700298091494271982135838738562678908106984021715429034238281126906312450516471723680111386234408550762264357259746328042935522510429252966524647183791358194128139096668788560271957394755944497852549324672315517583716417668055818390867591729135456158118390011605855263322983560975276406617248587859590673178892337036350098233765401280415344734497507395642439742720435893224769148337945395325715696666130920662486395238374959173464433698679025771397974620136230664235859918395787197266881921716006032045211154061445788611976036809914156325977707300352842588655848205121375883221204952505768534293868006527338801751214145071399022393752265257355355060984501458162146529551928162081606638091326227824706967562412269065691112162288510271667877554443278076011568445200063590712053814519371573363448006535434644846178862536942858013112598075663153013226793803117895905992861482028193975036018509147717415142264049241276776652116380546995969952351173788531515653038080840562512756075741524279467577287629057863105009658520965653780638189166868124387852334102623848785332957792073736412185876522591845098492501926734482356134654602363089798682699532033286120185248160920014282057168173870485933319697037157595360011667333170516562840428199134835302148671841530294939651259363898510058212530185985029699469308719046731478926942530415509865360119312072216888616036799922345303228886609358669913623940125212314372248177183556082571879322642796640969776045527404753817305491267431502968762771505174186701307820491312383272435659587460936327572196701502195977638118885555470773890652169694346685073477987734009223768000869376756130830154312712737497092885236391084056784446471233217658181902677639291170155979609400836281610836095571795591275694024846344592361379916072295553197297221515973213283448992408546665413214401445614318141844711217945136093876962609199277091998524948459051275219609305830020018593082671408660191860116303801143801937607307574435094478167870199510191575281025805150961148487037910031672429577961311786497862627977187389397765275089429194495680882302735415707014322414818845290571789239239884344208631986518785037120852570562960993696647716149639166328656763106652451500546715169946029747808904706927242934508700469744950192399530754297176955429343098447078847653562833578322614950434237829374441965943515963401550408468723564389091123901763855445785875368791001150265677782979925666436027847444275763541296104138931239834484507278882081962024639035831543534763297967851897451777292677088966599289917305512218564515877472533644361627078482854191021169893654466943264560889358563100872038364020337933818806022382509069892932244015060961047990936321895465405011696587130200285708494800228291199792808419422768163070096130812989731497145518774477634186267810208889831710224160513480626457158215662888232189721774950782193890944343028133682463975850005837130536597209944110409245216783811847361227381385160454437612816148432882506212293504812943575373114704685661021542026450643453640605550217083517810458396299733549257742270574547490690240709663937311984454651930415255078540310201321897467877238198036805461038867238405835692060079480065714117696758353672932875670657687992714186424402999802377023229666774460034631783950835020352546977636346966737713754235000191844333303748315258911160705657814132669587581255645497071422397766755245953560162098353692498222671731227298324046747364200843863238885210994921470395836823732369516793475455390208289645158415533490190739239633463091483754366141535951085159502644505041529136506929802776172521146408479467908856215635988217636261942650730628232367393734902926842778146593409499620920947452654791777559368605177467375693900422227573892081702876183084723477908450165790753806267279875395951078966292826236931769940562421071041514270041014835686753792027147469062441999459076537106032186610641904796644420658187381660593165089221122339211526942502865800076967087104957692920927188039807817911790729391060958201762265267740290002785361830828963393129629956447486958447641151019614310561310937300388746200459060363925327864557569604307782669015973975090350973525735893101999860898693480576437089435672449224271321878548927508527427988540728226929107329803690761777593158384332409419539993209811848330595446285111942278572582420357805559152986597091230090932104174002669865480584020028534829900182099030028933439592030973980787865131175850408588530324383597272233824625287013300416015629146901089758276259827724133326487380601054880692398050191505800090835254511104139649092386880893393398640511728030051086348809228904718450769512577453776494103239394350656730366468718156319508055921968317638550459928411030125629851038537167601755548184894513977679782071995068742786985634434825525866950626493965378445394136874181286258561221126706575256756732821569572713789710718564369033849291477353277412515857103754091294399676500006115023497158730107416473751657998808970970158559727442350653992586276706020624459775102089317974109372637693926453501279568000820632804437236265141893914402619478975538913212688629256321184384088062261309366718968213630632807788371018678499920018217153568918083238716394828195003334218200037945824197220125765734853065478105044475475510633198905274007654062439533361854416176507394332658577222181720645186917878700070771237293250017441123349452789613839399924801048915087089369341908763053648542536977163511241955182650014116910322001068510726894298400704475269800834639935276258419941511862500034112362874948421781950420671079194271749110674976278050868947730331211400311110948340004320236807971432935249316031364537306139620108625478803758701479879032445087799394946214189361505206064406453424274497789674899857971002255944148375522157562326079706450743936128360642175285439985762000477450320354890862739873866806182756281374556971595182014267304854652952049106415623143451521703045355823056326798883720615919300105791898236420811012802849432948260320687101087381957894714472712818544806372570192415751278795081557971405891508815042141773595807241443121366781637858825078629224333552588339257594330124994315837697981922377932441332450664803384886295826909762043640058323988947585737499699971346316089282101432026635696491060711195880404193118560171774262291130728844870010745630749154087947018807153000883011264446367752593473107508918564661396154981071474984594532279865045464305210145390509725855862862077952593983682770974696968997536727122420092131278058261290217220946749796936841184667313932171842600587280608787194212373511349303907016070631020760674534055218513968950983799335582909937799950270077227261457872509518549469846214592099267149987994614642657360222689284309182838470703617287489696883389345824374653367071316449626752714337840041905493787019492299510536959108602218842185019643237276090197100299478350050614846582735347703231940521948578319286802060572917082068510940733005919847465141024357890257445574055855048850763463718491596534109277281953942327586723042986283704161603590640531274023051214911224348765346443751719161483179450342614785170964593403428968875925009528167264931917995197976766288564389071019792766111748626525437301970352155080899632758307746214177357987133931545015446133100915167625593087654707647572339981670344843179556233827503648649451686574403717474357251504373177330878178744710082156956143517377981147183274514051645048079515193396976107573432096232153206663484193214219769244318900537595883537084624982275396047535767927302088221756878316746913105356173933608629843580953385236248787311093890778319044357398371055613444025466292447622212629109112464366850689595132134221902741445667801234276530705969712252239993280974107245498826427031925653160940065686497174330344656135302539697401868582519537440815824572973324838617367902043900330899405780011481313758594740615882900333596602543249398784452167040300308010694993554329311631180957950339451184685327567792639454171608551573384906747820333963593471111628130376440055909595202305400684769895322212591769295080704655154466256498511071069839464124192468594382558493221356636070045386971408743729255713680583982044874789052639976350408240361012597980832994865456077246035736731469464989409603014257214851508100486200737487462377318183601146072603456381447571293988341949373947435906456800446274617971736179045801679009370219600350348728681996948030450049071480320121284791939735473504708530102006544689593406532290189616151911468844889300172504841651842614896573013243637848143821252709694617766044947280369402919574353138285875001676776632346885442488168325717781810281494960972373238332959379119591449940030214224259197168664483977173468691216506940717058720684532892069070033029798012676869073779674790759052435614964323135857769018270157068965102150680393747064840676209888518853168060627687854504792140837985940061878422228500571351631021548465476390392619721484469408708038216503324933619266920035683735414237906501750911392434972198136574199235496843194022058298480475832444145034931626262117213676731738468430320059610411766023440294326222358670495371563926830671804215123047052815589515761777216223062478034677245338605536449266141693191889869817854789932336658038191701071199781422691049155113048936357109628831524033153358650807173696150190576927232647445368670023220218911514599535234939300708324770220780709628621424634633650081990186584451969894547324952511519536355470112413131774796656854694431641703749095926181753195543965870413568646816571655168265803554930857815155156741478503155676762295325623149809982022084000660178283414914782598594316681937532828549422439944761302905834441628530107908078141183452355926746086026045302316710306497985603320268468376937677422879880507210484151355044586844088999789106043712279451221545762467506318174303532922577169281653798958547049028319887680242538747373670436438662627974686485705223478117451605494159536747421211587764883503107676954639378627888869202331032318899430685434217254225648905743559080786320114681567846402005478886134535748722052115890429905493523508178341565097733820386499802231837356684540026632819636226299986233888265148354418872883212146352946703106030636774855301827967483853321587784754699716046720926112956811198001154416542314753544969511883698134197337245674098789412043342292017541301206715920944907569032019304442136322990163352498428761674622864162274745634071143784993576824646293799357753830183824985563043816106374919228838621327857591982396870777070364116665931721123077879150936636031630613015744891548541961145052776485256239285875017928396692400804451456586294371641194904285958215247657074988576592387906087350934132935680087507352281776823650014729519475391085762315423026862024562097243734700118873746326571299888625742687504994120079681712134564563554150008224329883608265392847991688491158047266124517571924586867347792184929385367863434389322326907407125169414178426957864890394100370195089065770133185574832955222153380519792416367455651882189013760366446571335036798561639788209862388698985153643258477635030264299759793444430270788122603436971495339821892015161027357594857636846760137487184412050303929878369018948993006526898028435179163007575771017370050236989751050298477719349196935046864215027048376313276414962585976811552703696268461163658968342442415619555023071271327969306122630600051772699157863847938132935569161185633420749655821617904040038017612286059598109477759887712378843162933641353026779311734894564786358528366115196821256024814260408081805984144593752336090914720109984381026811347647383809510091473442534809558319715091340132354799080768015004626004153831287530683728939450023584943706324382241269731773787474433863882428749938172893696188890391759757202622485657728840286366142903428620764117867485807087175617941481774759607599242465752205114947975425888620646154274483139779410323844214596093748725995660378796928531610089812143165805113299302696392251464805571134390995958912542700843626204345522976145522517958020866446890053796572003288602244001736362540096945406075893343426671344278598554953847581757713060619508562472831471730140946283250264691708743552707526914939941906946082517922604784543070850728959892184256345124488479447534631047571321006242437660012709768954273739235485374192996121488951149747240508923064588633932307288487510301089127746483586691143853000127000336588773875484227920624590178072991522857916459245054796376287971279693089284846873844739519910154145472162984791135713302879719424926724316070892779839569244361508872443918382015631503097935030501135387909035373927309013845909726510819204899442632887517014187405940222570116148045524115630940929382914755326832629706175002319193516065048334569329867402680768305714939963950779222970552439355596848089429326398293503837151318755961916121008234728557599768186908333155176842480721149612982859310550813226490947784916471226098212492712635274250097725884450269754925608280357727165363257850731985162719519982424127962907320450182712974590086926045545260094311646356455661433752640457291747267311628669318509365608521087180499147771835058966256426208606475293207536571552095408897326850342018882239445052798514024474468996485303719110663295749776353390877697475720739037777412005763191655212738315451540929789824859441588326077018928801530346537358963382498099831475154495138880616364476093450400891366054761340443796036146110548629939624291202097823074438863819368417308892619807099878655186355346143381681463358306807118887732426822606857220641544865469015102112254883585851917529939573410887875528741674589504548089322015208967625184636080800876118382445780022743106898464167151754175578009130303923951868524280081500658517622793676391239475228156819364785994014616913834546266045859209713371303725692555127558339854286855130696593942018062724784155093036303486855900215590962081755845595433781443662700829498543333080734252715891020646390063609984197725713959004362983800942623477856845922876509500140737003358846080957012979784609700903713965060201455005309760787762591384986014691637120465582623566476154783935017357435077847029093034069589206832235474232473658588112493403219414609525936738651425202401009776656041935718513553632897497098067856507202043214130478668691445432079837416673946541887017601412071024813379811461255639738705962329797920866305614123209714531582372057981163058317230181894330709121149087033859208993694032324819021852630493287925951637371935925191065815688406692012469509142233466033399630109277941763569587146343267053966768381715645708344950643212478401166748243163304237000239918688135653815456556145650295934101968411805641208288468145366531689790440438924481862677675954131714077436941088448935886157663544052098165093557356637497178784100507370513560640830291488822906697554511115315303384518734441417628729341804956352001363219226768109151881872764063892239775316288223140872423946599811404321429130134660962766841361091560588189392080634117732969826355865657882373687896029462708700965365968339661363645912441445156064289656087391370427882440191461851478054856740176597216581667396281637277245974266371604711779295856884821290600789781415617226400079855896799095339348808703352325511711002026351568434724462675684479785247421527146760820216340534127984214989075392842156524823515900438836989660776035685920961363574819571294939787172044139058257350661855519282876261769948603343224648468135278903977178651413121726786098389894280936286596090748498483408895485424187843822483187264101911225933744648850873155982235497421455005912238527903360060188950445858291230090123688354854636297497513894281728028398302316495068134875813312915927258810889340232195420286216730931130063552401200790577850490553659609937809455273778454563351823132323145078573607446240426962239969037503624529458062950191065845961643715922802892184912613896356459963242409663419659919243208814496092607932770656326842429043251308047330106325254351526417776023806250869613437693549294502115077860840663167738229812546211435604984295335956575411630708674480899468102686412852665852719357533554221242423111718725889813842960898307890137930206934217626215353935631273726879487516271981622438060911940640851326005271927365991044310024123160006499109924726118698256700029256721195486506387264053634919532729268224434933431877008083269004284826640769905537210893115948389429257364520348821513977803670453598174772649858861699450206622637121865484384633103715011251488979391825857348564545445376647874164794691330610829825239279751318173269366235408548812296243801256511756087216245836399185715765977090520245611355789412993494272104314740028979406802800114550622831353801011787660346204898110313275179401838626918303745461422840073048898105544546593277173747645376063973385528774558576113923190299696339925972156272746227457017850200179792553579220492143582591496348671457634995217402545152102487191862092192015244772657237622609125328231478644438388641678540297032239606702004425045327019643135310653840274585584534398520614722759129392239103155507201700114201893879004298068976989019888984984848102013613965274727809391916530438465569831197045735713748535438886845322874670552054772180613190051192650290598942694059739409901598445851860679066988628148683613676354369285211444582245569556942729700987891620688866760254812228172808890720296199421935633531917421015346490906247155311559836426135017181852675493016905259073956789577613828022924019657455808820244784365332166148697868979887698401982957779225537611657026361560478034383026846730635008646694751651947995145319342393965086899342899739793759859715465296749860844876350571956566435228228404461533174609222400926060818093466374485110292848626516582497634665781298092032321076734321659266020750771562415609304413163582762864089368312754830581236239928342199739599933185070270087455277030676423563041338473424105178623970591198540284416042066968880817799602630049862930156947592317336908840273680330448600921267809537864749352174756439857396213862364972169300430593664907952031394919365277539074674733391529293199271080950747976347286787794666121888087780222970621300301555246896671516941939229437178646568710306776407787764769718050313302191158385936863087197560639026036261535222505713987726058118566987682318775437789763731488533950109377478201134993891425252115339008731794585599309612397543986880725288037707931471583614160198346591801615952207990637433373691831932226726844914767682233280295455686115762061092680103379515292587286914741823406495080768596016734477169317169643997729077583443127367628823853949612118252425520307373748393241136985543572586330225660327727825597562643385490638531756095050405272644111396633019513139077820186085866485601992659055451516523008872710184102523199625082210534886994276439842858480867667502560039974860717649606722733141685126413970878336329237754536764639274781649099549360446491835104431223643659315361069913133872915521573449772780581876413252647381489360472503644092068434834461363350620698925143328917789743299532322066288123240615082407177974225838573305227308551269538160992897283443640031772543455736458841743524972301323757727808066378902387894568950031208586450553064554343980912915573840286338372944220471060125065433453824114754153677245343703447716772012462894260349010506712317146599774698649340786473347714480845272051946281237106900949833851507573540584529350631662744061573806834801392249201063748375561757698173802547710428315793021308947417906485816685144121936184549581092839081429074726420014675790592298200569758754790418554128805364389301512184766648774500149561486631134904871636015663982446461235159845063044437892176515339389052097023011932726787083922045887039802409791348932646094839762504036059667288630562385216999372690436221454587354792837999743783966682417499194552470750251971263194279764571215280464102460628967277527957216319872045618641487764529149177518955163629892131684643025945591782200436585301363823553948705530360632216549631874712211890515256359880893735372692194420610660380388664538505444865825001490935717557337185822797566155008763333956753814300388001126119337387185611160937502246695191823271468038843806174234673523084036132569867383557455977292023945660158271263811027558839600473108706180264340665526621532141026999257111134476663942354145185551163731740029581474612281772448663141764664772512586947491835022876390708042110044022012770259755030921200604669627049759234565079403514378281106760455733173986607089988655875289378633578600084225994451897685390582900039680685341069545239966135377570005684026977213820481025222780885259785011614570645454307368077598019604926462192601730939731294606101537946227294530621322461705830799858834901322139177563848655764317450127336199280488870076381183538358019368570540283543527241057798838070321806773481626970653855502744584200822216410972700944557049711081707133812555913547321019327195479908760699213865796498149662557673752650347864068079113862651892365001728619736118615828321877536928374478420556560823619633150750697892457160589070100153949569131362387071437853457088610652785562272335563395796420005476659478062125069411318670345954818364385197604400166085880988692469576039828078654841116709422134815500062151601247282601941789248818245458619360561776246721975840142100346417833266389622125858853623769586329237568330444078660017919792744558534061416899731693496601293049841886354249477986034690633441088589117636577834045495052883068566244894727916801447724782603253847262482698685678122742918146204612281954750013828585179371911560244443363501693933494715578378894354625199659327388203334492175992079380919229349158629651547837235599479706483203704086104136763092311701249678776662928506540069269260038745539415303022999945862745697624468956429486472994454111251313219407499999950225712265550782618513549613406038537944516034838754507401679152363869581702304614009072625843568397307220048945014601816764448329543073829789138243876434935050625605021233565005411934023628001141798760313998051146718803868765214459706278790503013138959872459796659492370864160410023552029125556970351670463135019124974088334512827810212368762033848245995728103624548974221181428263277515185301856990417926597856042335179636718021562007539890257343229760499048936724049866032209053085712922661670818595522910909975496917691339698918759791786997219977782579865428692223703001506489238112039254212119393589875990214303909051429675461113023746091199562117388272611799131545503781488480554887492493646244653541649518938065370765258671708839283347422475297970025886609420414537314572466224445069946362166358290431254176609935908991709963144105530025748647514775117435483572166235374871827366929648438158389406305926422647564797436795119703244199826598652475145765927048050623959259322557365339247572062266377705509561836883724030404475414539875246327594843235511107807065884260480177465360807406875532002639393081863742904950754063238491188039233503718302672914882511693433569683678121395569500200181994767135284668969622439216312225345779283013916146802741450410448706315521221271101695379796369039221461375362628255648011586942020555143374013410733364586385055849543031446322081424664113342520036986337285676284151118568728685275212852181173449173592763006821342759130118079876907650909830611730644015934992222767919078485947160399324317014338340039099763659705249403233706590854260364770724991596529551380305065371104743881026106648102127093458111071151047805983979995070307539887315620350689113541069115008213134675386136782580443982365643912152767296166691835791041665223776926407182566440613059537906084407782267734168844664528641307454300591691348595637937597924314364951587787191763279557532276114405449756313114359907087821110626465669932214572480001962351635867379667698494100046232954957876879919148298414054535927268818002643138336086947784716969848266533032971928000343103511055111385584051331571568040974457957507036648547964986825696626214796124144825770051078578804657363214734535886162956370490661771878037370389442548813436543528488191613383764021020248250705834838587156121842662800270498802203768528047279093603369420004898149809488843493537917870540112896288934227473558976725711591883463838785676286888679026087784833982039538673355289412063120086882461173196469133170527507960642614833636754393763702593670614011485682633048057038882304524666775418970079679935350416788164889075481533314617608651546851679342448292384928167957605591899313549953379963613828172165585280884099300549275000626891934138570694655576781481184958104827637442895978067786671823177168254270158002133322182607853457695035156908431864713351411082127977509909263392412162955144148082307525727317000237143167588495713335721258705495032815669547229770578882624848383246126268965067648806617544892616115554580683094552286552518487504425081021176607279242748010941873521449715517120292003242803956418017064527433867319873843134782501048730906277625803367840090991662693338951582079013064000407425794706272031421088442032106643825886695566830531098023345411440706743548990870480940423439701397889551467000811020344717252577937566246973928395718983439999475681422338466844559420878028228347728430230142834595775316818748369790099381043707992831953572906904403208040107499860438908115142492555346287436158127587193501797662426869690312661848635120544372166155916188677867328474114435459527222382505126320210350493266930649575927741630909583946375613070844276379011691298082489328826103036077878755828931222502219217402715998517267542735242050008270144042522138844954891473748179850742490457284659493296175948442395762843750602625497740455234087557871395306561968165784339339314177796600024440123578292222789005098238700629008010408790859651828332308880489661623251197464621276385840778070078997614242385899537072804364021083022446798565935544756477043381476961775544136939492526102964564547572989787059697236366260114919745384179128144225559270927883547230855576140639502831759083587789618173795506102068786733824521250415876933306811127605069434596923343951121356181569903798589637959398492223795173016725897330078303043377250559878966966549058800144818175489916807205633259522037722822326011172020244022044517211131036716217783927366196837343085189084515278294974548249222293581315167790147629897629747441243616534123055275881524463445720261488012734823135510877909442382108590872061411764256941118468554241921799870963200923403260475338124825387538994787903604399847127249402359368870560069738671751987759237909998803524755852342851285618529526011842829527964293908265871876459615449040462506217923636589744313666806573229436602274221286239490368388517622743875271162867360897399522681828144247134396380309158459327826645728405814653830122996036599852940825585651982809989990432948714994622845229273418660406874559041575084801262703482044529101790701886061116407444951549439205772751911244685201945843916002507698982027725072625187254710616618390821301602895123568161390601652668238810363588441186365717016291025881002114579924325713960002641377613162371046182017229483276416287706369582433792188464453362653858218135617210961115289919039965662012269406499461578380145069469421811961041385739943960447293641995364890789512541176135093523421834087534029345087992700315975416192636648590703008150233655675072184290414755246442152682900624823459623474354803782985867243279568664211854512727484337594927485720523261393060864595112650127443617317572992600270984623722007507997324613854616287835042074497566290962752096242545302390329941119171033319189261947605072290297570012471682991609878025356696985871052891286328917047096646883903854899337116546846510457955587793775540291526120085588320187541546729831993033605325237874739812259488055722422831558465317301273224869674542521409594478784104566847347785843420518223589628880769004017824109047271239621692948120561108301128025417421456080036237951898848048136051778674933156910795985211046281665862388338782745601875584081265021349487937996195769533345592749106998482826850510998491873444197808954128700250591097030510486356576607017905131413110100986969173463755102537714632872406275781316090529194257133824670277437412034437338466624635336699545065956187014170415614561812606644118865730771334411098911769943041494174128097729418666811201454491144209920827117090487671392811600622132033195184411693314311995483176909042858249014349765938882686667821643751238419003190750729230191715217714401430836437005077057223306733695360245908817345429960063424976194487499157205412154500093524721163841372102706316117547444522082144064174727482721882266147083733043592320715636538238370126655113353514034146545980507395884184815189095600484301097895188067738073608902421161620378864609076278245017560442822445275440018561064329225836726992123564952220578775292416482754854817898590401282602489290361770700471916190163777454388079087192376321059596850411050062973764171501753530919692123305750501738601001973413525383059875757774395802138046986066998704256412566987529590882800225389745140598974514467160444715127772337709631042219849693238045778194382032577562554747739251512847325306628804315040657756122127270688600492559990433444467449690991600398525063924747628818536079954142375804433385589580555683608955504265329238581032834052990350343737481076703180420528281661169808166928758229296535004072371198839726582149322705404166207062370856659339239606792643960131602607643745427712127424231349480252487339898420259862934802898730751253270267558759523144571913044884122610982061933838459577979534966506939894476363961942586600397940380011940311552445563283375539550364771853555776197006401203700862787868971793623772428318169108633592994233766562069200222772684227772593186089902259395143249973186011316453130505555933463090033573915581475358180495283827765758387578580105292907072586351260623194161178476997805291718464590492153481106356832587426083842477939608351515708759113248068646075064307746656858433654597438214007187870584843115897684419176122544522000620762791915012531024356270519607999248366315953611672421443165707886075246101204149532809948412246777260882441524270045515838620087150108953735456547952170102928888817272579374578455243419069711966050699654312947015423340176093453849326072945096174028138701740274438735161039079249957946068389980773320235122502910552246068311539579567664639888296552658592874567504224648450946080241883665498364275719761028831382954613871918118605837787682402351439638960587497215061286456287166295713863586238598407707344777351069363886276896151116312468814316044444050720474637332292836302037425179794319282075140209226311015992442942558942072480881534411024130601936022767371571076900174319558521889227883832121521727606344445436991010564719843436806490161606863487529468007004412768132227960222848914213662112067554277761405864391561928622154642165519012754896140769784118329300188052182882338647389558653831294698073193881684586444816528006893045539213091123713900322770373002175798852543430755268626447228309024120751281651287063421968494277926099311564035614552522093170470917699823687761303914923015194311074325500757792218430953400613075141815293264403582182940600926543990349531832523676537740671615477281957792708422348083738674401174563970063145527432759553673864026190418078864214961599596012547709301545186324287231854099295545069655159908589844845703998055702216097287036789141318248011792703259551087890999088911330886001439750175251922856162033528393984116398433517477627096543138332007029624011239088183462037638141208527694911298795294931154917494642994373328557428404518162740056970023057635676882642518646982385888805612211838761009027713393236787048156864673889233721071390393866994308770970830137478530281917093260575409310101619976312286430028477106118144216781164350213804359313240141365476480114145869295781997698616859602864254306252177192465472906126869549429470149085934069042572700271569664685765584740966530925062221987222763227272385389889164816750671917847693975352386828844601248068358588363965355602100051901255668064249411877187224901285364258097463560647480971257657578517350559615943583811164107302717304702811971815420419139469334774669269367891810722149810339863919349813296729293005063898638201000141976071610577436146299299337099317722537001875991851527532626510689859556610254731574652877639486013297834771276798620110007776998346721549704938958182256718440323514865902875845691602132133067186969637216997161272846820773697327900739322432337369256536136329617945114345341241902501835936328014342760854780099584964005813508414938155279886193554603719401029608155196375917418374348654135190833009103152031223781181467348433731744550867466470276002046950305259562604041829385147669234665901720625335951078599044622512049472403048715423016858373616199865513850118391399514728148818597233173255031173261816993664736886328783432567460840454414473950591071570359203554383101923380877897357790743206570250837972271352545272504769421964113630744356325579507468038635472254042794433842349417696366521645471303436409863140876216442467009820177984272010049388824468277802347083287640640474233442973191010697028922527541819440448731553362822234183241856225944037344847733932236049595701779182153425165601375432697140759236743333337063606416211232459232519049494355179872248174650223750005048123830900128541328510283268327430838556330192545160201916280113283580779161378766772907421840317366751217949575596284011909456517514166332439002169246761778084830582090787160863966422155343492003511801597903450792979737326152847227318137221815963524995535616157657259396800966398147928066783316207279989906770604053103079114883558074802279616800016898537995478122451904683743644866061978434022839884704412479263470885632481715420808738523506603713380191128094924618163360390262350070033984531027110095178633740147218757105367342345413107632102600836850886804141780326984696610944488257688147049002151373813899643225062323516509150575153813829361311332859903036755733082514383172636620183513845090454076337067672449455972255990045096145753692866439206675293566976250977737744966430236236175288904227362292330831439318245154123528627737036573497812573676518984957329347156002728394886860833238310968665199496504486061733842032112000503173476758643423053346983808052537490484623182852631093224555017625093578405431123564040225262118291348386552098344879578479700196553339258838015455981287197514134000672017048037377655544590490098202998108591193193121896536960540014349262489710622803386066103336211300562846893640930710117678886167333265645007809053848693501848359480191842412045715474126772058597642546825615976898680736843549786510691802105433493233999725010946353367982859775677572840086407519746229645062524193581634873535685876120266591431710833184779971283446485989995732459352924615362266585491753216153987932007308246755488818507675128364945402719355583492381698439421612899586792602968381966634519778022407374106769041888540424208583211956614976146854099993268340512704105050763563985225242845796634110925557054567063286356357707184701055046645351863097270123633541859837945205939367118634184077372788894603168928590681086627437086460352791557892532667992581267813064621703001540545426601059330212749475426043965623751272019710223983813284544862298692685877480399927732179721260812921471395344657542349884818322666722893607958181992763231332914416767403565693507387497781661297912494486368658433338671759950139993060612712711212801018297085175804309637109028255714667328550073760989205024044481425525401231861749299617886873399938871972524697828046634789663612745144921342747162076626626205394510632991678259375432351264708878131604182361201900029550555175950957603194128020494605984701158047125282342352364927409521767822511001398916809279192088272666001432683857466767666708768179894277526806637053151032325038661052649073960840108413441564733710639271473459417464574626179707320301464212838544977287568048262590461819111207174965205851054717600097960009443322335426901406890586839776500976176409655279702407421195036510100388809250415851669584339730672641526163829215301933202795460749445796539374609430495618495841912228349150929360466342365761924623113180575850932719848817167917647559329258013360251193902296711705932960697802459715185289697653670586252222750188927464774752376739283430272239805054359453370118419238604457617457489257583513147370193129354910661824539875946221666516408432955429292152410054295384805109283522336591561958017003041009648775385461059467755095490254460221722604523899258477930979721346018714713702093998275304099647551761031029861833843008141573906996119229702865816472457745765001135477728380292687769082518282696902491873418798486780090372091812656977529610806587643791154065374220645113889968952697207375444098617272160907718931645272983501479412606904145247155338146421589924776851299047684603055948396391642095950881063385723759639078161650468644215105208660186627046800916366423054713073386642614355576781989135780614594788672841780244686173334700516997233533497565157028146556818165292529708955670415425811582123867432966560746112127821715459165429571111129510951441642064237164607061437985627508965728800740527066925560390054239054672560096692568798826262660901050353087623633114239999254532665254919516988888060240055437935112198026773191814205107867255975478206969382594495626546969273098190780124022669767692172607465301007046503309467830984573821152779611710940505812568757939776331531281797484918804506878166882484803888350893407642761829250945494572695378298475827468677748843427842861943537278784438838262176017054263764621511445298653885248718492123455786249871044407250814934023967982645228681517340166422205330554621096950249076426348336711948774762194209828633078713690580364149533063030498699511186642697478165303931105810621922573261739683266436717245178036407414897111656730381461388885819294296996276561525801027671757379471312089959596389822661012463615398743567681393617607022098348917595663632958299071159448557600278229463170824614587170088710363460550368215426066197420266127717289448252511303507938205124153800521141337627295707131795592864603929817515443136208872014520998510724607965801808491029637374160626667735074668295213181541783594630275978551630535673071552119470935411184019724732964617407753435536065930589296115266697892541125013294188245859872581854655634728234374200541382201182592500473705099184384627989548562475388998152722910989450820157469774864690048374603188908086711613425243132135472183394743699081274271876915816191676314522747887021743167863711287820425886962892867440148169039632591511951766968956387617836575107710674713697788160564793531239564439987169799237443869582751804937393305746256730297921475360685782626642346947607843446947038672737983333922966094769275712402290532500442815345554074625342118376155844533641001078422688543997822807779642697086283902239949572280334892279834248451650468039177271834033999221924718526865675129877996660727255397320459171944551549415580129413721928153775595298836089557493033442753550104899594114217220877333238288491659819098267233303607326418421807966012414809492166847472792903809473535426154720120842200784822607332375236306153838318959657406816173082512755711763722946402220101937738955683229225125358697138425939565722418030161902568916672891164058548914080090937433046612404072869814606836781516044819902862914411412947307733376084718144632055203363475494930129013173736757219488846507960889596236636253480919238102324915291686276634288659621869142357177025575492420680669384526967654296796132152595220925218097847403616144904785698323674434993395165610046247616344069790512218378592583139263605558157015822044805442556768812674021066603251631258305989259559511183906697099343581818481081508896995267360171500552037797694559671847462627108894405562524953695028328518760313066996961507975915175670936106936783227058873642733149714107372155427925419645293079408314833356501016257553862829656234427599507822309299416974127397422886851966253173255662227322164961277246695190684141252413852257580190777135487307451519353987615817213684544039387066531650364943593784985352019075038159078088219502180489719712151721237842008294756896025855748886688789412805602368420046163249317562057430468590303414134400732048383379620805914575125087706360455535952797432049105494638813528629623988173301878483563772038219151446714338684913806488258727670518546979286230770474157210888941304393389661825997493539355416279019202661186097092020209292485810397678094074382013499498051851748067807409818333786429738851403742172030620178765073213926336990474311300490554369402374053216795966269423225063460383540308021152653770889056167201245680945141294584442212166669791636504300554179833284045254597112579511322642508524777350391823261931827651012725530072028096778917550274542796782702144799241462295470697499007479586819313998507108375063313715633036795065389315606860348553263838889647664994439787008296310849659795658093051313412400773819193524889135539995420208762733531603803436018828900370423164296539287201962509234014617460161240142746301863801940250079141216149844730238353835083111019957148742853784208924734761816746302868361527774221902037548953149826206290696376791037093841400712264941738852307447064276599156324877964804895020262388892975307392083777489548976375151429072640889045454540706729351827058899559481616748821617656130771420694351366167173020514825577319972186405628313010473081475170430009473772987274604289435583591287996439077168805363514442512256538328643053506237073080910668754136514860443634656004656246556228527229110312848109734288064014869048659674583638683046008775429461955237844737945096590739389206190405619588729757987892378739463738949321926296564155232020693776624500703369412644072830666656366375734995049019836294284203346581591840605457401223590125650453761107893067496763308996201116744707673430881226555757288960417754428184701752929367529667340022870489537276838829166182275801377487989918758632633899471116080067045820665469500207811600143340951088061012012275266403484651054806355944595058957306797309289768002674148131161861254027401138749336484935427711496073103755470057011874303283224964568232868621205363585907396718879723695792540436798601483601588053432860668710302393538987983175146319240593542511952368533678649690002099530558215239130808873852472742922065829385335516725387810580644732117303807534541845888610770542327844798808981377127461930396571700818530189757026127170217168746817095116763774110469172283684978024708504236257009697339969342737198835331624467422954266350130740218215619745654404951192684103874735910611035342907609316241259015680195621496472145132392145690515913966436118902613328690608779298005724617669036272263028536297898396596864266340556762295581587743093886112937294760535097791791857086704563336518540950499012572967213098713578984656952848008692430291492352041412414508731868337249836326650755828464972082940475188017662864275299417225718239709471818142750753976190234346586186590325281318190483515455638550367975887273831113449734194891372909185745454352923551291836552162371374519623064336233838608375882063301674702047595877422362729822088957114567853661771299807944263814158707159399289357328754211552456545151786420070025113709393522144031498570212783517179619619472204292409114435642482188580660198658520506894327084469085800603844170438290719955115792857995230699451539798279968477450513504719754584578561752124261600057487465451963948190628071843078734954798347338946841450560847269616382100902350661902007019454790668545314167078886714921361798827714832084776555192614100008720736982059396615688035543525719658499293541257526209190131816441393656461513123271417531212088460553664169312403307874074229614751827931136132329206660300345286288582579981742780279947808871188558877141655647095081067655887780727518822797488063846144796359386831345520982149656551833035252059244280630054440542646484317323961219415047058954652273304847237903908317271880762991768660294955198572960281043738230465769882189757425739659996404849013196835855132117892888117591608197192500379117709208003125931112003563255141039954599214010267098255230821611927598423918360580871086095178637220453203976666543952897673178422686331970637672228106816613018786852259338959586098618204154528111155281351304048044782460034925970535514508200614813550052377563103268947819560422201571459845909136812852737994708293432746108103632933454439712692030947239144566444229432213698314562577474521760890088060241096591425894203002778774490225520439465466151508904279344294474920952832897069751465416640327757895144382024297520986136820199184483648821968088313827296015818031936519243128638120981486047844441420803700641985402034212400425178870430373944446385912744399547710944633766785713856780912379161602947715567040005118446975068932679181503854849705790147026981256942593555199169426393677289385952876322448533297611393199687610259902159726781140412481592862806278601458880421583795345734237591363259840592852384090579166911746094597555903083590920483165423989263527755591464573123899473684337737006554717925352073020451521521119322600368004884049282051613712933968626768862028165030752713639616922094171927923431885918903804470633858732646251329239673092287209852255912719257744542322520569022869701506826444857446344921076869858451427617296800396269491181403670301939945772822795666575178372677017707055152979044106996497875512799946784980588611914248236137403733168209792669430799370385598559215672735112280822102535028405668668419899059941082101743508862188968713474685020359070186416002795527941222480062895313576829936579692606431466770546827972011505179032555532252620214382633800712870959097809318659218401822414730014653050618562045885337486718947975376916699912767384708936385000004042861521714023587864101356851052047622207007439396841031774492846920737208255474757548730984330860489996656860185196712767454532153419969384510320973295172095894357445259351637809569999616746773259245144718483068780831339103124243020229769652971150376054809881772953248289250592863286260844085333941014441746372002432547134982161176402810128217891014442853581868462075239195368646762374869126850748757932470707501314986676227669811447244634206969409526741032686937590873987268131403187564069334271688276607845614541777489742498393148623187200867594526321788841030072360810141133996452951986658483087386717132194559784130445175574834346926277948766428941518412767679932564111224881484039561717395889490416304200476082773408358382338866224579697254685921078754635636384316138705296907885295019281360012545250835754919714359914754365657726669019351902750513845773500081354666032318733487762970845668714522530371480410863538388820723999419570255367859046628031436617993065606124925798652422480714728114707432038858604901770921597038356819398131474532844209159470346718281063200837391727508169450236531768998584113700327360195770120760269638458121216392893876848807830041222537050770589466658375063717532628218954052386711118440273432666520049193052807136125067374974732030987724865041889836690578502143755888840864923393743917719271351052353589483977475947854737992677429250090869500526929970801123509302526269625222138778692442135155712874537832437824569361221075680586476378307013285899025733684857877248085112224496226917786077319749278996526279038874687752180995059727056989619546021638095765400518349651741349060366642616250233639114359260062964827676161528892590915686038464103742731978193275952386722254903924511420381682173208907389054237955155363515791241965771335609443152461622638423215161036290219901581262119622326481652468124225185810635065110929335475068086439426158861964391740094994986419907745643562412394452732757867781543261896498214958342369126132429321122562939274850652189976708817529033341833950297566708776712147252376419523967708925478388023107017838423495484032106351369285367075438271025186761537263293396969652059055794827219553927218908920819091792416551916391385116074397641049788524890317262819254491356440745836621095115204077974845237644600350437914220565267056935408223613904115780468316916752180614703984103686774690001962496437708211048629930085567084732352443659477641060197899506758465573726122743425028037792264832444184986936389628018278084260862243206880176110479980770715156455669769273643717966121662002246782217429579460402121370048958350780487774169412513063050971356242297748593937857401487028398288660249607237247884631653665373928842260535250145557739559509330207630465085988803077643203322790915909581146042786034485750439693191149859779064914916466597866276968127148380664269033260292567592263311434749095323923714403060247900686222459943003233802247260917972261546361728077134604625799293290929680570598197167152465949415692926919838631681828371641898270923090449454936962108310247302204781088418655839677105052218504941521123026954595369050287857326540868506874999468190159236999605239928188635293823532681923572580057394270251605841069561305265934461280844990863405309178411339083161406065738200092246887111195518954905032471301135090370381308948662972843638103044492047215840638241835618329420397207242522603733192251631681913316962800206113547754432541447369456590979603341238262131758825876151579788707418406820521482937072542663375203019975721214552066299384918210151125942495320107709152943736081649370956538606406601300966999348143880528298656327006599688193717484781031784522119393517778462248705540558883107746775356784782263102741475608921510852008336126250791766095430386618493576652949708561148840754512904097803438470316536919016963660966281955494850335762512506853876951732243203778962405418863476080344555505563833054699606017818864739611369293282777541098258660507089508917215663168182004384743117107040159596939542184255537217580614190226875622140358707381802166407703275873967638194458625007816494937257621883756507112715220211288406760327536982972774119912814886979062030032928866790037433297189506295592260338322060730404265341461614172884551168479631514998017922096427790691371740167865026509508984941379727001745579009595953404924191394896913916383615882040941793143190457946720861824347988904911187270891161749105825808469592018353587254083430539313474835020904571548569281968321800944076088064648260182149394374415492101657232129850487186517143617049273228720394103221662555191838918560907044985633013383647028506040982482910800476736189966543256368256287501820804005776864183472229047131644589822909672783545394251238795936890157359585760693564948027630811229825311861499128196975434634515706733123152259886752508459269517935781119748009048818771274300886504214544867694759471853487001319032001358095160918302012629349373657841583666889001035162207383499049879057605476660718523168345318780018764822766733929651489675148489973459730683204457323812738991203350745040945787531417067072607118608795131808650500561278457597302901427571110999127187584808236647043532439095646864179799621953178307044196377095297969019233708061297536108722263052788402045564311131252835596722451994579206301875810508478370560160624308272308785509102144108072937767215418077813489218714583118810972224973424986923517997508194778394904982519898259349684119003359617252534974053786495057704840279063221615341564510057500998621631102007953784452618269183936881252412469911805022341727204666170258170428337164289512834471865057304031572577091388666695223449531019113057618481144148625441702977435864142452830779415181246262408925589014986928227800344069610090869717110510181842992429225554732266903472740068451248774871163540291222813616078814511047655106979161940967812196292454403418768253521549622749446572810315852436464697447232579545882833876385574577196571984232662846251056391318478461026575581258809537462532206780975633037941636113426901146945495220728508194604935312510111114940305065072125334925106429971679644219755570772675463441023047005098399051425282660437033259417203705593060371393041142290531590633359546006218322943501948117480652431668704415756476040511704394348168927309541938174489579017527406297396432689226488531907989445510852302016690071602587221788595025533408535103688295604574510292870118074099563422170694062146580867176860631346213795752718925090759385787572817411258612651474257715766051269843023720107076921425364510705589424916918036341248466610003791231090765890972367757177341616493749046683439423233395962507894521885560915124771739696899075786786769445799994203402956816798879387665304733730041301988935066552531746693892021185302165409591590351623878871425192464314189295643510278954578777432432389917216223058107614933489820866707805255279948400515455309336740026164687376852880008117900376099880023800571586404684139887068318675329940576410297237341956015166678033489185592883920485635684407267957686025540717859230459479650791249477544938425683628559113042197333797104142299119798980252689969700252988912825283168607328890657564459064218848479083852152088719563917182546910358455606187132486230680254321364167313640212541856454892032092844179584322002881109135079561243118624460580661432043550450850345576609016872150384535946900784612639350874769029592747658380905013065684351761068758696027801281355203823766930287891890707530283357028391777321803731147749118968254920176236748285349339895593037906036954613088615412369919022322247540608016701194026192449276377259775437975483502038403769446144389420588576038573587417348762464867887825751808573366779531000456572002175903301039407813571429189083814999397232619125148123587408684866201762408047935501631065289870764948141031968430948669709538874231283918099979820614621052519899478195391232667438672007196714658639506696910023523674144516738174776276176590859628787779381922310234644862082204525560804557260529568228977834696195268086952877943304402945563303419632201751431489800576426028675721994981980937680895547860211819251477031782784170140096942451192525171550783427325056219234806361868857594684488627991026773390388397236014461720336584728929441233340717462507788686219101624633417772616870736989898505816474651909764910903302014647224509856036704695956537972893243491871219465904916076138955188609706005473086637860107322205833099160327947514221671854802853424832690254178929524378456348607274142191037750771737202199570238398080329910040176310704705506018563495145415866538664935950655660159670259431637536677666130962528949341908570498940545467727354175568975425617612186684381474878707784149040457322825622719399704633750990534823178399050836612883012079617244223992784245167910480799733261968026223764875164208564421128931904636699460950434727893323060470622606206624735887788386543193550082204470851631061813201354362707144634679158453556514905177853003262178264035733145476036344857014157720791365919439208238949533715430957627722916625317760992883067972481187851834980116418144308466794798933578586145297628895047653705599067513486548998615727929286819306213988676014887824723494993928248631868152004911087484276984316197293506731334528845931322327869065105118443573094390930059502600964571305971979507613565730017836449514652044160227678462797012473162501737595106190256126721071945404794618629113484217637062277533548824537484618078287489169855366391689346558527673589851175253705080111637453707885214923578335087111145948815034557137751193678692745878396216845320978360134485353476159204635459529703260027974308043884413800249289500445344302934917969041537050167467237354880723660648699909914901530549666247914643406028791724715913213369234358843605285885210229086469572816220341938659042584467453208998909521954597640291171464102376288304611107194685695313151709546001391919266734630803272717994025787087383295748539420982080247948359937359456676271078134625254912813478601112297933117181064851550166475485939301265595841117830844192212031651510648098367451261500347215976004814398734678324952490317676520467222579313768787277546546023447690648728794106283577933955339547879110078253422028758657238372312728336776566146762726745840494507443145812043138745049382741596053452920238640191525549688973993355197898897620475402718083224157121413469284614026361387027034378945576977985613224540491868297284907069088623506655677090554836935797822925001493685671092563502319836235795548095805753378577395610064222102314170080187326000199355642735402916774509999409133725354166572175366833719938752480875484036192953245518704597867527112113873735992929483264485559942777769025117399721499606907147850216682658947157755333025011615276492603179924020034885728989875449542158506910231806644613578573668489088028365224795536530142065628275667235827380524761265669951692940571825612648879900562426087924671454383218642736906648871053768169152387866932856299308801348245806393073925796597524083597002858558450176455363192828742019741361696815926321662295498536101334441160927348653087035824287077904560875763832476675971567876666094939748049204816558629114899193991753147233833237956457046154232292197285639323941197595500939116133335160345605665808992327835285297600457051910953507008453471849449264075706069455004515245401355484466087658870768341073757331139139398319586489741622901093937374615514638421949883144052021949007212657933261580414458053896630897186383058369921822836983147306232061930175732894053080883047757993116951694624679553309126262490472787760551160638808802450707649486104163569215625667750307554525322828336490333441500185875877363897390956899578143943216566271410740342090515155250321383965680154281879478852826851831570737358983621490196591361861268491334294932568364239661881479104094240012984972640476324135932407775573001476042707418031496268623063401704969957761967694973540900388059575055436024235839336578285759091685084144758409017267374707926239745852850930919990717698278090811532800861663932466158418665363816923372657205080645003856835178272071120321089391513721163535558393985115267517862375909883090666348989487892791411608346844504772669525447419097842574522107536670392280407162643119601887087043097556945277211854811904821520222776535552417283733290641122176705602031100998569482223862213371979928253703008326853628588185948805602677652337104898413910000816710318942063499440605373926542436157625939608949391237857920482705076950954320588865308993901063725964313830196934658560873906361975452664902961895694186746812250350232053917379538426329482180418436318971001179265115742406808858862838743067882546286737455074757253948420262911796214632941183273444436321102250980298341708607360695530733111974183769666900157702863113973766106152332972203724173473576008814791647634706916411190711441104353738844387886878742156033870177628804376595766334087843928601295246298316961333902397591484398147861150216646395140973236426529851726268639068504272252168706810036486623677511703734165279671665280176615385285244562539874582033075853820078771896813953048494361247105803719094511620739030082677984933108976587882109632905736934897136647755350773749851447591042789043560781936165451910484801702365146999888894367590658601654464780544745539102167385643744037268162878795188044545855318402613826871535974754762836350100966379781816353920149711115575888462446010751222513122334106220284864902800329555273902534274958549074719867495218819961653241567114320550486638672468959892698720351646568110086224085120231788127743961369335656475399954383093604246860690800600026168206150696799430093540501024070290012538564610822600215896274713957526889518130159705542593874482189261782032433236475901733003229466953881562731136400237687768599896313455588414403744964448370738787699157433129116380942839426443294097541704629029131528445475244004828186456750772491040332573143453716486232549078345468545741579453353923501258630964907301628260348881413730218629435070346731307399326966494680380892110273445255458846427546502316968673829230879264055138044954491419567704108419498350642562452076402897817929843731933301867991645652461548685538208930588540792613449929547238039547863593691844908110296766316509707997598011319636596748726140021393741729190309374588121138623991163541021861965320914476436548632619740473225503127484085209341863436488305972252483442607056581602437646121095017695581903195753893775425715411386525616178773733579614302759385280608576378806094316742816991313944254812761099174031175551547883466870153967039245686270060990983759176207524698971628500132872341419106179045460746562315664744602094809581484352741964524285148300696191849793368808786510286761374858196270713134985901799849171343670193445647327354476065373721714741056541253549581736814543197549327463794187369139209088371268586211134700480711155115344234845350570045889919852587629586558281445779653710052032166820366866330301058162259575675968374678975059858337307592979254986864012368673301307940748172919044283281573483328097888103078052582484824674811873098518096485154612855386813828196307790477630442837696649812614078026408749363104822101692530448049673168270811459300701459197731518762398991173493095467188735231184671681277450706291915818005572034848456084193365695379951851961991579656482346503997911210101688475116054870983272504615968573089495388070745885717086010471436378515187251974006628539061216850169967556759107997432610095259765273155318881707981561577630276249626914738690984181064019716018690757065207825962857956980928623355084968278191293635743001458720354872738960040923485925529704575386573344900482386060283887155979115315217822033758026733392472833891210126382178840856466424977688097274353037101086145945053490694985810366467493031484678232857987489809514605599254223733686970637229594008573882453915690890499934251798254810415279512503049395322826680778771425905779852613862989900696912634752768584847210238562478639441080092178929981369379244695789972360616962215817839804442744747479757433347059286311192915514851503694766269951114521466177156083604328584554415849248997194890488678656639047790933056914351649261755187548733818923840753926665809410225562126718162459843220511217822440290194802710169652832747827606799928638851323050570848752858177695946046920603671360783139130406493027704057656558048888975753204444372709889498354558511098039942796962470959575983063259999740045385571154484275491441642336528021224080288487527263101675149047722730460599720900485785194270064229752030109975426083261428949053617565954499238568564597869009026302438833121015824497068442811390212057064432670506641168600806363480549069085603000041710245923967343116509655459237741148396581041426565284260926443631821141554976645764479842760818093949137949605045570842388795027415556029500751117694233582837408832895914851889295842174106884582041115835536771965401782160889652730043941733642676383660026941500898193437889260154493726735284918749759084792902078003422141020555792318615946327361931556396591908400682893656664121724771281369685266601212972645283880191131385873042023773211814816282232110051386398619647010490650771539699242092119856760774286555072839471057170541977326912879728548128554921392448899423151071391665729360661045205963642032029613184729815611422779796394176960961504765071872477422605758505149264434202753733720103291591013736521952266910375462506562060559666558674124447754390355213460436963581458090851275821643294901809866336730897331694219076958705901735053149515606719421974269747927778038876296138462265591710990081388928313123839653433997047410008070438811301865149520916778573182129039425773835251348655801189493824549637983358897911343824152073276695140540617244337067197453939211664147101503383498926013344824691576719786680193809138675797888801685514797380108971733692251042755400630201538327110386415861122330888130902159415944677909956718880709691991990373861932763319804041467477592342788024561505614216422152151037502352202392821979650052273628546108179889265993477001155628487167171612496787007002333122239427959393230746456036170484078696999567463516004487658203957382428988204236816587067454325987308377349816844017626018741847638285261253444952432943190889017843406959688268787684431781498204307402430430984654308500194997023734632063825089056557174626808812700971482800054212748676310171734115421538643942752283683886643256923433329503488962704393852993428818616421591660172698831514533678030994991544981736959538119042762190303377104204650368192353813036805206246733337703529164617704023146050709386512515450511545378111713156511473146831938195109506050210701265205525011877951071702525526793001058826504573763482789646031497856208236478128040902527772344305699185607076629254368887353730416959395354950191156165445730223260773693338560031350529782983896319328494962728740916805371683066338983469454712631299398717184166759481710418027787507660809845309934312808058417936170211896158359472654741919155383893266323204134661318155980985819177788725380364012555985564385645499535603069764681512576718946095051481643141332384352441626057841348182478667211731056715221603672520181505751680008523183487663549951896379219734892797067227540223955553703482925006877112202236827440202724764196572853664784831978445794838240745748065660696639380977834128147013704041037322871135536213322993820155934426780431663708836471696271829837572231628832964466243942801259050897153138688711598939113946161952084400829837433328959699642895399717152053998167195312441642861534352057967765995539380178968688211711975294013564681426035007266288247338724327108841803039325717762461101408378872553777478697884830965127308074532778572399956566603649964913284248760140590332682754110966273768598792163739339522573385431520098803490647308304005756102580991981266175435935677651423870123303257814322935300111006469581877585486785666170646035125550115333281147308938721191188106154449849660082289802258279203608576296528529038804151788474522219603140863011675328369807800235304456398048427991364572571473942564820834109724884608909254054955594314604896323688490995748899519254495920654812809133865731429255136443322635614933591380142326642596886075178618711179377187727032206943275545779935514250742375526545893550822268436114248131895828047018004601435876199577878914275926125617621990311612862650068695859221289375616945117024250820268076945362152500338940041462588774924162033225136632779015718873453748487009209340538128031559665350883843741806550160878635740113864500169718115901048721377810658139750129943739723761974746939101868353123528998445751641954425718177736042288725104571183988074469327191140584759152529752784572884696069475633105042923837013708772507677466542322442933572273264798620551629399140230486809853386055386997075503314584733167997940398249100651367834218219411660334273685830653371095583664906229273208149861688255612931941453473856006596679671712883529495607266729234004628354663728725759040491186392243811422468823641813914149719682018853684143915004691609276785217455845429632446918102230953888295708589627681933348093963320395715179772302872236373370878688544460002974040007278251416407000432892242823251441888335644101691812747176423992492821780299682257071007745935872829951735904049230129316960134552497794901455382977768655496657932104533487587065007550213378633350819298122626710420440783754777709015424965412652750836158718872239672994514356237398569179547716103535427222593529582756177532345007436354966589884310975008322554102686999302222894770418592004792941862124819975295588031658338990541640460094408606976832126250078123003150461190035867515135597330518198052484911744726295777024201230177567266017739769312001732034595099614191130570586783947673090332710204469584068841227684348337118550505474545607866098694738423546601801479032943428643958474251825220287430488975410472208997247140681240594830058782027643200689398425285051410918161743889084668494802972497327343706993840366641752010930142976229590222103269670041446641465436268941268083001828352946639584632192830260047683606252265221999659781713372835119493357954527514397926473370201886346656057945984770296454785652562390900768731309224788218668066636790862949138451697603921382771839702645751192774613985794720194451375912941546317593033907507153319486108320484580844530988857424019649585132200598220159271345510301604648008309839795980425750134500445265457305563049627592135087365463046275277173751243018168439125976545250997592052401085374777619579461214277531004493815393531451213582272206196262996482228819907552875432205785017601737731665554828559963250168805924061257477100322852942352372062183105807991789335428840172440617489994282732092623568624506498693282979024750981211683410368005691772523366044498613848265085655845559408276943952267746546799151076317300999732882043449133388324031774026709939401152024534417744961186054691777418181355562618027457442303770124026758245162619524465705227400751283862383587901156494549818446419672392591544915178407360796406150713801403818959827963553709053687657851475776232468415970817940089486671629482024786300391409405846051968980306281072345327152768880900005080495708746695327666503505807341768272586665037713000294728838615421979684176725952278329614790404380207594945121526849030132011351097788051272575915190654306404515572570582967325253631966496526172094454147662609742446350981134757028828405157564627575721003947289294467523488614136423419464003199860313608678074803889622075047767269618555399128673122416324300438200211099335220418285864408827427134631589349863242151720343415915725277147126901547947823301922288164571966723713127541249871494956569305602315897044294075919158376973270185912203751777672208541666716189831210448458761839264493739923949600961376448072891717944161656234410320870491077697656146851535352678611349018555854762585659169304892988109937724485427213822817940121512991641393237568942567710429792098422310437729583002400983708367133438729383337252287050432168687230449980093636998531480075897464359456084499163294686831407071677561423235526031250105840906292399848872165603148542518051507922794702652396320541093304859028419714827176266239570515379848268184893280744210301518514921867734233220783055106900909041507020827904353695155807258225669339408476156970731041005253361714365406733420740645358420418199605985545372578310379586581081909095765519405044238518148181462167472288083849618753267031686288806245151167018530132696232490212016800395004684638828380665028234581802472009794862907589228925451996265005387302022191522678962784771013175982876100968803943398367446444952269901956419698865263549494060335633197907442822683460817439531457720333786571272013680289667339576546968535337307223242391553102912450307806192191713124707993159576115714961311138571184282211120557261820082790349629665775131874726133079294505301013336946105436472819783605327938941476234050101782523032159633101262066970228279193998288068598837396810753936802481656642207829616947218696672285647201717179798921666653917158766691947340045825546807352852421806025875643229866498587220790994692015339607270390897491172374644338574679940466078292817598008572561923965501689191703956085883761975026821300114937181535748613158128749824985240910207731533590282222789810488143720257171129885326290716575443212207971192249978845564050041126893062485655299874399793171947983177930697506403591734782105635320547221714651793781038580280390902046635493981695611460699640261461639987514195075214248188439276444274081151032354896809054755802910535155124801805315244787603676688493571499210086820747633195536178050378360973292197230047345226130002270571302059542704867721616183844961931342423242484829901039602320760707483932415358897713382517311955061395412024971963674932143399402958016293157475607905927958376655300749902857061313278692204932283817299280657727230350256065860781034121851358802925281306277605254386772335646387139421794157061332527349586457848592961037685160793039738903838967302245331399505603753207876676872627400376863345354302745867781657571592575373100056148916177246986468722521404851767137815726045011940809578372847056898689713170924775836468720684845708946779128764520176576579133665692544777585252241693453435641930828482434664481957747597473911790174583327114404705343033100392536900092903055465422503921708200372910816233681751145792260536642152120070736002076411633983939001848288530159203391190193058934523389687471510715629594987710344715390214764927484069021928851109292790578068468726036355582565528645168719817708933507582344804379717957831980274513958513554578982543568197311540844548996042115845739041518711037385005380144052571715235992293307539230750704379148079939618025535549529653200769814300982913126525398034567185207222529881570897037200886277372815547745840717214310844909586564826413262594328557561831037082163426322601992566741365040887532279303980721291387647185915833751117176742369918353674743281004406656014463348882025302024442946507289357113267813248707478192102602047109180770310973748286505601032092148200431324958726929200568475542190489461157627487693083629053923759818784025852209320371249084581136795411545703986557623336194450155155695267933285378765400433010631150216575876101356660754400460676938026924779410193079666800996733035339716763178193077911326174781965432699629822083207835459773319827366442148491380813270915177140285586546159031306117958762631727308514625242736499786300948510854440641385662775266579255311998279361943946501521003265549115212241787728203345135517997965258623623625702424799469987201325006857923335034212911836278603829423050448850431109745003616109715474277144856461151452354955309854705434535374565204564921990750554236827634193944405065636894110226641907463542545388320735900675356381746646324918634911422861391400176002069215820845514552977816715845064491010903927626484322904317434298192032238022907931002541251593752252751396771820426608288351173894945361936449077170410477836688339034722720079513700374512036284914610324968178250298307823014554922725733196253125487217666396927159635517930803888480526202326974896449382061487465036029224271484557386144381716122227184432327511131021986170025128872077513428861931597835981524179247892553851058831866080077170031060431367631917776108531223478806624444961562779140794497042598285061331535285587561084489518356717827965981668595192099209407700254614927271557975564671368528744441825430622248214309904859064432960693649110949393860095973364031215726645694880640319129006439014137814678644773323492137918412258828519029048364063936253391639331873030412563488320634118177712932275429843067787402907052758968159660735834043629364204019388570903161543925343528781587690457646435486875378021526065788129773619131121481413979984238586055521856770777985800331142421882168531734217300803143841104819154002912865930976886230141846849493939688528658474172267487661753550745221431300580254778438831833109656280053811194036277613509449931071214292890257589541746211996051073176245125878669852035344002748599576940059179890892254578119492579351502286800191386503935721453341659580981871632490687973427761380043441936052691131387822333209457045287685947612072264495069186626090744618936901355950802141472678284909789004301556148751329507137828206341062034970309717590302743888381557756811993683771227183655234609024255664206479748792381939149582256678700896241927079349454102608314651683892632290946718228227141629865277616937182795371096880165620445028283347164186333302714838036993871417466914149048248758370730201958173572507282939039402631546645132466048760457514477264445955873519854928258598080205434468595252748158457899908513106944604790905954554881469518631311781005942991991712050244254422568349474204749565911800823150223515869852204311340921594545694025635874206254396968065252328376640482985553840903684549329507573144184237652515282027666847988104465750981255445233054335878754382171860643754837829679014320430179369291834554163488543129980708583071810142120976139960426708623699845624816403278162885687967734325362826474815096981103395074098071002209104960194257574890387154809194865481068112567563371915436487304626076866620312477676015459435749613356237989351166451007552681750357300745989983588755039658563857820863825538669763957361536431596249009848799983184607377470643233124829235069397765288456974576072485902881171687796272983475205489373371533458023369680459000562354333335095858302378244071391623014104732600481489171770762383031669454347367513280831977417019873456136837186020094088174814011001285821033800009279283378071039601481203156430870290181348764739264322378154227102064443625229053714713335577604301954747190501666344986919774196024057095082895434720602803111386085125264544019847204958224585555663770465639341347690733801874286112854421761198797528833971110574940290203338295182095394962238920569199653289013550886557311281587108019858092701269926617470748250087495120526170729997980777560426642976547328001078157835196835558935080160884086792860079298505208766329051368311717471975490109606300576557983483321532080807482369198892612042538681863287172193641067375400953462581901578755319493720143222259493293594874776391781173705513732686723790584635686200203884163053767476290280425857569806759922927371166767859675009111626514189574550617601089466687478694392823618683256989816245892276029883211094534328417198469353316652990045622237833451677114233021018005488566460597093844308226940990501910020953966092644999031928557073220689349339644761890694825798632322977215686683386453635223330663993290450075463772833840201777185342058134362152002563073904247333372914627094625092595754449387565715187819467098545540758022614984804932871099711320287555107311221874115429403145369280236795829152607718494229430789862168064820523574202851307902807197101531395325779940169911674512617508288481555096488148011084418332006563585890078968580395246005123803677413558339877987641561019314425068787048271398196367944141622494181691215726333333044013209719650032373804114232465710906383538796713718629960291265713711624139937713861312425655734309630525259410000029098181638419232833252513967962688065344165808533994005796653632613391198188937124601058735177872179286588526018214911444250588341325410244074589494219227409696880547364748282773841719656407672460770165600258651156436015322062040255671752538291097209219595042676223391612440014360912221934448126638510177717511174807432738291217722841369162379871700005614792382881532748645059607683197845810328780854337829632042320900081575649220722945852509062657404123209451779734729396612295630957495255262198321376536543733770748261418898528662075625247084430498866236459086322118688182591049798339225987801519852145762857466469133452816013839746358748265953266751150314867397493053896895402600968944784935658433448003717745203445362333444377738006862699362917730513030314895343865435294605044294777005822872212548895497806428672122157367834138078998065783047808044211394215819324774544162174068393113868919855467134102337155060669130570696277580716827556995113264807747681960875246704499470634979227287867729257471811646007025758027233740572088752600222932253339208679400256852558082530086688452878618246997297712559237099776585364587435952612424783087071245653416689045951024159029069389618270201438542440071153931873165650509170739749959735896357967842051646209791810403099584907373801821979335239742291507766693102345930877112421137765151083026559881150313927548817669294663905918315444194577816119740399872868407627344226858988515480398168879713666847109915966196296964125637774089455837927079561888658573878485371877476212660313831962729163705704086646348643102344499386012631276215577834260102301770495157616271295689714487411925608822761210728360540889052535380443572898823231785014607866272849342527186661504638110788240836612578686095284941494128937079556987066279115259899365850896016104644584981482764180558622898758631068864858715179719408129871378146707253403590352112722742306608988336825084941701498415375524570936796295452315376662261293061390458112466380772256288684571571504506655201893190169720070618748992638456546543164736581337580972184391379141373330217125953989109655748979080343089525366760309288710640164061013528822559526121353465747499051094072009335846066373599271453789729929811784770789558086560589104088843054117959955285123087706894208524611691901218500384152544457696945543526439100359687843394323267769450842026834481066204239868113178790836142365896693151149621855109634068817710520873222782486342004210800341431952698291156376815066134414112172410366189150659990697682056363749392438412257079260385948853740606959029926534175579865959947820774979482148847536025552774666068685590313446322158562140975098604442862016771287864226099760760820770867214467726595233893024986511051267000128934758471084271795483891356219834120040745876154124528995362308455887127764050388335428490532964759550922285470090631228612811708656281169428070841702137489383452476357869498486826589470718821747431508353110313329672904900086739079580261585169826379438987413917726597690903594148925748303938798399414983108017704786712801044035972561028078981266649098415210156835141071805108862606074844224992129742357285312708663270643574969985202806533650861187044797040887631319812030999216714155881530936582557544096564320774608787969297076609371005454146166522442510637725678950193911307003554475243352726059817090878080550360181586767667284791521612416318620124423871175206506767584312570956040147275113963567654409296886353456683268419112546752312906422396273670643411447734025910647909388549398315313908380894314697455574156552975389731845352718304780350469683119623923778307360567110043300974674197463393612251289847182522726083558527609981506071921563286958214627428293126443925049582602344805104689776525471967880680598522681489690192337003080517072252730718416976072535081146977033396100119654242587458962383411926745426820047866047209424751117449400919532285494014354081709230846839690414474840862169973233064807101442119838364978825613502505595532831007298117467065238717386656049494497899783253034986394751805295462962420647514492914480405109983217266165496112002601887425781942050907008564604573435138401483105462466004231226831584551840941563375143786613745568369066614246740159918055276143743348820775414566948380823364634083121222007209146210484464115607934493647457152210188697313533205605316409855740290511641725383755463493269265014581426466308329350492346021512544872366389086024846194809122925800409085307388967884625981701872659369438539795386366889044268882774570564689653136451983736296863276388631335819601675050183933389565786615061915084227521239724910349166475099783029712934181348105014514147526630150269305950447126892708960573265955222912121915749588113491444396342210149285321175916495391195881609272556941279672482712918741186767474787490541407029905857041804220969098706142983943539709736906182016501695293023152253956491608452373414512204755351464273244295684838775193207695618082114849144309656065535923310720325671843997320005949307281281406790355863285237044630971181752092886832165544647384467902824700772867610075088959951348966652751090192602856956762881654749663057736474164875781529083964468384435009911723711214693017246764578090926342852121314777121862724757375076529091155190426623413496279399294134640953776260741296659793213026045956060251314760637746005123320515914710515794005172813848074428557505597251855127292788190269878190364301097908435995560378209042209340300640615877481230376983147080607803244348713554502796042323735922830199452119040489713664286361127886602957165001074508301526359257930939735335992738464952392112236149742013413437085378110633795780404708317441684593868637210128719727047528935985896444100168004705861856428939088422936039342725989663714475223014653399016745910980098971513962204125592042454528104856642827760570062439511426111433607495337555568429371039872111385925420806907918316655372601411160325669828862562272188908293457375786338408036747865573801523170559678046247795248265976977790772349119119058271038132577726022391310871559514378467854348323517950200664806664301537880574427036207316191808311083034655786467606590014524058666253290078226037179446488970128838519532298999393361792252442609524607919581060196290495920421944543734930217358813497074634659323049560817806759992850111800693234868342467518669433945981527037732121951761173634558418287690495962331833578602961110571131221064027446606692238497683699378502908598091906518705130274817266342992114905982947909444536425916307771868413209401186951293902384891172188206532090604411597303843072881186398926660640122991525201088721705852694080255601502885206723803786737663274487961808306797326861102566930042076104325663528413610254789290967932794418976196211267227810151611035103120686323262487097751824320036314062860843720176271192061584502905502151053023786736096015236804059953376843589873355687232607865293689368045026425962463328703243637285608669631854737181125485252558478032716264305218808892641322749767998854627430822295631686604324899394385987663852071548595320873025838771688876729300072214162280576781590788187330164857695096843698387898548028926213045610378565816415594697448134936524916250455093995152511570400094068418496233653287242850870787232167069297635147118150568952658965734830230173555590179825789069867713329969707787617068191474729276239588379926447917377729490678255747471521232316504471716654378516209589372261925901107955320141138163215507043325718513019570175486647472194084639270903919085450424240144763559330324680340307803526684714214259508286539699464805735901430226535390093882667856284984534380458341540414439572251076658608930825057140960683656193047806062219072234645746925253350410916679551251626694441289486085244100634445402224447038335179338881435889514185300203818554307981043592808130043710214199920469503561277570530035150561169319498804243814434489224750914070133861563749408113059950745436465605916560599804820782559536020505877443984455778011070053817919871153334567775026885367897571443044756412923420142463118354153206363381121720021782648868637978073364109851300537851545001376235949208723299448435917016107293001825750357915782710984908907637582401023679296611003848651178576657763023960638497127806861622427313655716627869895150436001363765597017636159696196757953434001266535317607446108105098413576616112566090156979400371768800749128470413668020020945813305755767071352389834477737432774613268362134996002929099279063221434681295361459333993695674405863249369994702257319757742730571611828660701181035287793712168534611529277947189441677095239002754976041222834617356469101024241427309632450697765190795885744794474925037076495605725842081011301461425534240321474794601214194690176947250118719011114846019528708712081405858012736021632959396850361560807003094865021358278492199336310002625423871976213529421344833601651519316958913118690662521961418569625149607322980606632671065716775535354045910932653317020429694369706818033193083275222438948293597359419158949666546487865626003808796361703625207442135042464639218278336698950694599986418701783570088955265233276826589318068334686467820736178579298289135215743145172731277380019069750594494282701094219038189408952891131132746500818653936846150864801666188934121052305491305520536262767502979390326432826734526679671345839580799055367383611829858327536068352697977838449338394671919006173639272814835191958258489578499416347793658345711690558912660915995879185192940062300562216363877771362666662082390646360096157134638639485031481757359343051839209330607236354990204170567319318237592960775488869295339592360738433001454205631266034424555644999193856864274630918722894193206903143765415836276488575926287185603846665999490693921537147350617594505534940303303910932173510637000953735504439423031078621729451816410565765772427378668944482788087762447290574220085330198993124598046205107921116105685400045605790674818920759011506984259021544410539264507851547743155560129485229111616131298657441355064613971163529669919640859525060136908460995725631413733952337293106030269819687603280738248781556136266649839105302140348711931881400731033083191982019112174444599429238920801654397856568366704303685686611201609920209136201704638785852241990031081969493037313036628811779403488767406354063862311238063485982983392868709014306187167635334690674155841152106747588002662841961408878740433994767021728891890268278424592207720047626716780776432548230374048415686324877066952896119048679338193574084759407760504014195771688277461062246440362532052617383981219390228693376230926774363663399249664749205677236112963819565240805620753721027447613801342150942379264225981661408290607311815511037776550740601001903388338410908065978784559784247515513963341697095340870609874692787357659770681635887003008849882201496492347833717448434448086283286597938046604300617217619594287373801988817434125267047035890003068425831084356785646915172960500999436288869960617404428321363673759993730590948470305563997581887825324602965961735882490785770651342675704163246648209860504514670436518756222889395012158617743342979270226859846138331296494833024424224443006497103792481200191579018676891510745709457088646638875740151730392313197588160537151560476799058724424000487421075788072663795648776539620957912988342223853753933685933510839487430081673155030430477654822910295750000884651771595928593211030830460648335698528350499706225032870528913410797151304533362556423001063664058205048493694795092818466936049950363949485421524734166577839831200399791115421346271676672655405604103050861256108444861991313979595925170667238077350109698647827487699952281924920265546115880652879035773263147853247882992369975249747708618188817866341104655117658988357544772133483669790484631147961777945415904603012360729133916995243643984475326538697575420918032906645068641704648253235125502876906421128585281666119935336783388654267682802855617253510354150434521425262478759306033386541040688192700447848184346295345318571072738983097638192985933538804309106857320353158045063683150670993665591419553273843366586841390217250388677079664156498426406021001480257300917972570530902781552391278806496001593568436810394653451269336609223573733030728389852972664953709474892146830336123251103662850683088795137065331261600594148997560639822490634096203909898999465422514797327836654386187314096599132390662747784950534320161833522840900622099448596400287742468524120252094718169448977903021626925149576245219640261730716307749055222100161867377820132120834809760944763633280039692481154218345494254893742560543807976598551666820185486280220423652731846481171911429771026897646063280515696628563361193012051594822576853739457153242239817910449992729012488915029305103270863888017674728966409925503377870943846287109593989169718423532839240194939098648504405549687161224124677209028207652488435418151376583853120854357768786608349833671345005417686916510679772948092442923270077480079677553972401605841919862327795362252899794661141510466118288542624601934061353427713332655161838945186807838020308876859294063068931066608146206933111480431003461974962264635965113081998376865999202613826052729715636039880421890180908946686773452703503961751628646321237381900218231337494331213165505560711404641729992461875087926368592403440658211898143016832487344479780414952537367970242138618250409467770361403016934917831282055677191268766932421978801599086219526965425158661983052541165611708950013099715108402738838776405706087265447835487461193279249859151741779806724802565244879136966094507920679816314137533538785322097017275205594762356587108371841423703669204440421882800016405371480364195167391756168927490357599982444640521287615668159608920031517780040222108114810397095304452590669988985423364674498727874836735041904404520284038157529835292994490736144199733062280548881045624178946608159980731758228308834683652214777301863676986344509234859575441995530699379040062508868021508861117850977022375103319055821724653641616292371191709789446041708432786932071359997364141956370636342107763424992958624104126877850450377014648002449039699517042709314187233304242685676683547790483845525044486508033427043976572687065896635681600064460610032483377742440857132069436332151670804879258331467515349316173344946522576591945060583760792392781426044973294176785782772314696550237056171698379732698090933826834187039109036714860989407183862922657687351787623171099348744185943718200413893410184159687017602349154268696424100044937275131512514447209968474897058621513295860894118099950094858580684591313824559405148587178618271832967348092008139115086485584352604590315671575743516149883727276597322645838406447020938710816068819382460436272511783361797702773255845556531256167692976641700712374072410193222283732484649355761892301625601639666523927510043808518110969079543614759538074944800411355167934607937578763544540975995111977173295374564220453773016769726144174412316925585629053814964604107804782224064374635075924625949156808103595138625464142270525929847021171725558791946657303643855607102729524155753563370470069314607247626961563799017752557062524716983772389261316551193347944765470136813000994397605673387849826495175280020868926315319978788654180956526984889787816735602740933328855847408319069620792270785932422105121888875721518178543562557893627662192651780705293083179900503469683785630725418788635562987663428269324448241037840778942464991282105016769755581979745318473377840074522440473001967120266069591732772476421920790977611120560327693674373357928655716462183675432954142870968268344608483599058728168014316564896858738320615283205598499890172408924277232056200866114273121166990413413574512322359193111794092446174080884955291704526069530217310180369824795085690534288793510253358780695674385522380792962507310678139252802277719629281437243666949344006692118402121847289561426500003622745738573352930217041177572595745847008057235314380026803737332355083700359499174627636699046036765105888851476563070244240701551829448564239169395625685748111315946089178552569000859421098519769390087486644063221349584968912402410180441002417093666278916218090468078083075730557942306794229078726562019910671322599748981124834868171950014247432964601074780383485715333110089140742230336569141044163812364197927687394147960315102866142658659976355996472249232942432355808384738955253332140898621357890949551047927001513895566234233261390655082419376118011284168261214695365200060342409563852700826930862319054146583888326984889654940118181245050431163670787229933212663609536094713905200071954280358850259863462141261157976305401658209162429698852923594034987066882582437359614579366195577342224829925007796316639420950796319976249215122391773849054024429368706358845887090857903159664827639829215095706082799364997059895010683639126378337126698884032209405894806614985929854961499623482455105896173011350663776562803593198182708155350807912123014138175969770065049153541822560653937749583492190651400215129986837957898112723771189127614020753155776736277731549107814157187086192871918825926308036655669197157330019423835160936529799637688557341395270692311405620298093242079458091396527272685552293856029790140456872011805342388204266098330882572897432563955083213254515504012036175447500616158758604710765181084420050863958571823256908228211649986147010540991871538256584352783346821155922648213985658595401313280298095896535891834269670357327511255376957193521875427561165136454037703378745039447978204580657948241102785190585419611805406505415905095380940894886542707053746044070399381363028256288733962116759753767743730087787990538972727525678443795405469818739620689162640560835139051554738667424763312317669031159867342183226188342929809752354068024874965918851121385951016626163951339553048381891472272484881720826361581247059080749349186887718958342476536667019864072007263816805613685177877050784282357470707439824717727213619395472095432916350304250250110249403952896188670099406069728327112736041714612320173247556894369084704860324477838812964666559361787161839279827012096358874250261141029753435065057601489602399785526511408198800850103190851654773308217949066441932333422406092381645671987205336314261044218656710939106191329686623235405333697050383630198292122814669673708412989042840573588355351656010376841814569339458424819965843367207332463686080671550411836054365367265499055725866105902751782574061972018095921826155919286248572241270890978731798954002520160820100787883162172719263052858830600867903477546746564392431205942850424645341443024615154090242521914738289509256752578339457821164096509059008418415572797546852258289472422687864119416329011538563954456497908145058111535060799043680878115340903465825317947919761917689452967894599985861908743768570616101927119408929159706862662873236905537368090905478333733389599672089756138770427941257427191808592047729957608994716399840671262020954647469494073330077244978932864766649628500999169525312972193519966753623338023700607706543946206503607949092340486876855405176619789034350349160513360737146025916002734486810314332544296038848381294838434862156021384904921458743388773210142655714124910255939224941658604629312230604992394680751177388117320597698234809712357054412506174563259749410789989898305277081367475890476297809415114802893630197604234409111802019571894116915261487722672292621946015751911550185799063371176950587232455474196571151265090749117643570907626323847973154515077572902143200468064216512755794195753137959886063916093864801386474963614041425693835421288805003082721142686979809467070036141952037621111917672518136539457093998397028961849681645985111846685394367122499957650794735486243119862910217666335358569636211663309230734756916709229085153425928947382692670733573736612373656921091556757131267870517477107387291639731455289794392093255396714439028054908287705868429105805806948619774332240618756834887239772260199812745755681088996948298933494689028531527013518469424505084113924090997295924361587136832719737084611123678463154760581170006050494608799610952737238932267999598977677187087816930291617496706498451990557309698630140321084854464049712340502277134614972335612393318267138347823738845344759512594228906540154828153144316994219885416571913549460164822662009096860052658658669115661810645192772552108920428098932807357747475197799726049748366088265500837102128779692681688085383355865281210741789054386399817886279780012099957234189356965914986031695489281213147308666153848722429225820150817452401871347276456991116373133612612054536248521763083066748064874545747178199883684000261754828401007690616417373185565362106867155577025709685467831635111601551302388081711754691311741409011221403429259621095527293666893099373733611961742543637283058916439222251047440646000281524200963702099108888388926715260889863518962434563579936932515953863189245440395847181345515563322848336606031346883641629013422446636309144658105820718661243530581442859136169262483504275084867852408437179707011809249784764880558177523994912676240455707481456442110369350444024854073241675911013203783373817375910543199440582331125123500941890174950826897750683651804548178897095062294743611232016155851791222112014597924407605770736503234908572880074111350843251473273207609432101310490137386461660264897247288339312977627649162968287200279755412275760491990611690973811302811782053142518958265252143519333716961397180248665703839344874194775428503606768721181353751291206972239862721995692626481865422470822102364062980912812808227281323133168838515581458268211414720448737414132083622460044402358614059627146314092239268980096805839688314484699077797560275989900707811372837357150500906860972665754975381636863501341414127800532559618341001226501234325451066917694196102864466660550142845439099063170997852803889584550621328586722507852392148588680846669062253029561662197864860961082156602356796049918846156471755973933580513361620696902340657896166490449294708118449852266321867375409050835793467050348642044290127694878070496937280283943541846581202560594279055513870960658851722725583219542738779221871353484931993859288783758277653481560046211517906601044678129614674478171378620216395253818362521898450492092030526281656072699305035586966963943570930343787023139565294845379877610234666861049406038616310992758952409743587132680195058721371409885702907696037436712858705046601675725766548859445052102583479018776891529849639024612848289511430901167916086683995930348916796221845826416735781728197407844024981059014542398338637093153256832034820752799084552473091030216924319839544729257416754085235251971851320189380583423685634689681517432036112644398857177563536710912533870318035951671227155584817814471477362726628983132734845711257846456363020838480526278546159492425993550159212210075195214279206917815200246073180209736055165518347128301725091730745309268593719521055642207015984708513137168445214613666399543416431357891122334878111647429529502372822124948217722585272293260189239578854225349100648217706159793013888819287541477055860405687199169796477412913488876856079036138057751466823765018365257462250021670912198254899483121614925487082349144057105583782108649573852477005747522536725447760485891769189677391099895425501880127681925279294930761792000506535700616071163017785909847249406276799323471745005117398328714301676718391688313834048904311467724113579114403011632734825765290553052715138485170348355363187319811087951919578564056975075009804259233685704437997312277070820134437474142776494387351557277553479916840730921273482507779415916055411370056642255159524915544884428485296923724796952331628254378509164366261151316274914844627262558060670052424612506369585932755209032393505613088042568983442517762310139893716356064808931192392708911407545410941953205150274862372966751422033427805853081966839192585446116621214015885830200787722030727362555501600619691574644508646636010849237261892576368906300229850722311236669724178630334222820717139770663916027732652426364518867613936023539668001511185074788250572866428634889973971880654643194384049283834682634106390389522740671051691296479098147262892358680890232417317762107435889890205141400049922384549020734866966927628685069844878868889946680865627403409626189780949655008284245244334036128224108545009226867969922212448799134204390173390351782551828370730709927219735062477414762892425737687253725929945851699472075822882757257397353748221722759462428386018407163319207108949035877672109246198804447029960586519431395605664658646498448039294985982270104783000272805762992489239804159470207146597839914147962841052171288172428880717833233413861443250887412601568831844346014617361589139533373431602281147401481537722439424318591124449234844066108102564991156699346888413987868411934280793624871234280945329119449967286620131715419687627950543981232083298704060613869225463027137258263200872284525019331332190966831772656915019968651438297556207036714665091155144229547573550218366653558888545749823424223335100349263936065963010860844465867577203601916442837098705274838080194365595158886223655376708346929818665689970124177839045444851629653758367021243854496782450745362268382445520752604705772263642694495925432462100061466902549589973900434861696969423216296787312251386583141597939404496260650791386921220005728038323603691868833091471948445681087865342827918256153873739400671929209874624818924341359729700392045369879663933665952237110085556577086578282712091305233927735621613706818729142581850981830607457941561520493170024216296253098355433925305644417468152384237286603247857664322203288861599128510094611549274590819289496755301003022314603295354493010356397169899667953954080891185250314577685845108468738156751878991238407674859554184429633983178497380655590135955055978269882270111294827202761708911677737034184086906142340795075578159404206624962940629032169469722189780971042405192585771883224751042755340005494876633643178937454062779557817644703715002680642609155889686496700097221252103676179529193548155494684893292061482609170054836940511124333107607849570098423358990856218831033270573774339879766799486799304274388274690251880241008668291735006509313677703599428756096828753169616498669276889485865115759422690547190177613982646639067867710662130723088063671661283695394691233723724162562869878636180662175805344297124488357670284080655299223948575735951410540503368751799937867608431816770594994460140964882022148630792582267579161275275882751981283524257507609177080095263456295240116455771426609721602811884507899742075644959077027184259551151463037540562276253713639416695765255274833010542648514134334516432648075950965721537994585898457908498229609134156532316900607907227018309102121987921734772935385708471284255012272458419438274960746843226468595052145860125034858946257139397401165042083068896971381443467229999334492326855301900948346000101933214061663926898411053540755037525332783056948731290592159323459502258101684780256818386877802856626285791079440454918638448571779289341016594032312365845957531948479256494761101104961183805685472620079409934306130882306311513681703883903703840841284488491866848715331173286730263841355995396402389261358346535246281819885952617220206389300460898042225404372692642155676208355904032140282818526975945429294430513898614585076128840723011233414827686705268209636468032411418774589385066565549048202580619286416234825488020335268907164576592883879559032823858929193088432248583122966801790347680712525881048747852058117787015876038026104987736144085056975813064762490885203062911338442289599705477983137800467616143131453960283926909480319991802962682133091869727725364159157496746619763223255731164874181743553213844159316519760656813826175990714643812566373076746056453815109561030987731954071488418531719834950423673490030256458293727995913743781028195886687922129771217152394069350389795414711271182580224075630719890898294408846682764717537117972915639079145346152669337714316675249295617058072797783962618999323202996291664369757195636437971241133321301299474284829327496680583660492520018549469051338961163649968471588375131757765778837357429144748436022627828016289834454395847152378461497250492787893549633415263756041299690280471613099713393565932150969310418033120949199868181162575162008516930766664779468859084643857071765825318381804959053061884481714132465504296225383658386542829888260224167974543717960180704252428351486106323630896341175738966979447333299833224573608167078525672963380053345370194007785288998463062377352158898852662833134777044190459585577321284918712075835455216412254575836536619860295795336383572022241137620979926936605089994230946369021335162053816578269778939962015261655795396759995280094259354187591257204704022529721423054079375312105745643734979618615257057481867515199933696296623540097898423311772872424787083389044070111440216654799111392887982587162672255337424052905434634745360533395288734873265240019496689186672497462581280284727384733713633680089947638532561948744479870103775568237716255824363253738810695130425687573630714932701702510747963516734349142845259150160099623080079822809088817322768287246874892415445242569449872528000092420487257909969953079991393001715094351540733217395601398950349395742103906735092992330595110847621305290750909869189615987546679698647513435939671490308426239313104019991471269824742410701223335413825397514626274207036182929536512946366595313071164356146579572035186638186974895691973391840737213751355222224121294906354164144280356636000697527727734440149735020857801265810776526969482112175040537946127602982727948322433396605374264304235264925276034572108429989856891184554794769325826615815004978759363836448568306483592738750948001097916452439970482195904663645051621973944562017848334073601597877911327769418373412365415831538914517099386940014935890428837084771162971369627887812421054898764989699668908993619907923874319204357930734742353486661449311916294682968747155066974689684026167400379491863437204288857455573109121014397407301508497565000959585537834739323828737879798853375861001096414073973343484639575451907840861548793835236979518099441457485142094650275106370026066526477360326279391732384636241244223286509705106568034280801801907405254811725440795631884393553237620002812959499482558233662670867781939561906786996258971189440822691648298102730816870848990219863313640852318720166970988895027082346378122372697719532936301320583103500732475650941660252515754061106284224246227610812404556196000065006667177752395607807313513468847720877142997825861885953752215904722991167429794525703368884977591382483148376593843648105710003025149059048401488163922388962726893983297224163765174809465514535261185828964527188696469751947455497413264332607649763014236179773637885368799111435247699895535959887290189705200033645572976061306172391342419403771782721789108793959970252071988419198733396451122049919307770955756476061511859304164995360337465266856323451558111509154371948352440699191015749017889449797790531387925374939984703454288485318035190517595455416661907695040293060891026697366649885677427236505025337085039899018553659460492037095015071898650341444085248382600099598936785147111131751638880322120669448410206313935169043799895568051068725040357322001114495447388536469512938627984204317220036810992465217222713130277873653185766281620319433342132304787154280374163073631130950334964944154916325672338543196653227276698117454634622338639888699694767463799014929199111553412300026835690874678582919838339296778180839421490012363782164538864115623526882747005260697356552726523042929099956491319084913926210728531771906054027529062027378258570389452993652480316189570938260343409861556799642792881842864047546364674389434521688126539003333517786059776809268565418814196051097632515194747645801541411345757693777270663580844775347170050450037267207045618662529147049254316510040569296276089369592030627226875495213538063906095919839698718272371048972668190285168278676854283434176804429837542734916209375621913638533842612142825016960454217517346602911106594150655271382724675861783700278517511619461024624593702444978560477757246046442286120773704744757648547877545783543726860587935853678306425931875914214424861911304754598382984102183258061547121186553779010524271167267055730332904062445508367882236184813750744663637332022504072936944575543869428976729606750625763595303228606318130742275356231537658580767510272485087100451524898491016179226444521843765125876732265596728479721450255829492084945430908372973390609446071576627373114221921940459691709676066658934645071039453532752677876425124133784882284625819782165722994837628935333628112390371724831154817921078551776183562240953102848595075062513602890695404833246828076962328657128885184054802383619518253664666553687894369235058683635418909016978047622952185473510894348265852995310300581353332196890371144141998226748830685134692572073616879921096240243542749802757187376858161649471612810753086627573276844130394921873606624151829617995750237506462530613478034394464347860665767388401132458524514203867003392552523598903320466769941005956951002963727930143518346397608583700881652079353194425367116691247556349988481048457343682907926441145200920827750787766186509491967381255846887744841866766578078762460446115708384133691686692325545879959743569727603707998817661295145609589397195173588292959511956445832351625934731110048606129507707385498765045790649217116542447848770046255464302715969587152050710385280641021297061699783778144030041048958778296796402072577605118679551152929463641115970726478960134643429485291822753659010723500702129362377224954856296392974593511049509258431578514658593573269498854195429438831536834871986888334004927873713973277418269843194423017676393432813488884655219644785170126171273310721038878057194800876396179230854484147604235682596801267582833750540521290570429991755428176251048284526380387285574426535510614426056094602419087075170035726995721133289679509208791610767610151004228284420404674898899782584323872210320008114987825086512757359398634365096501159779007273067161981021963634324352020544220266988190915537249309266928522644573624959795823875248572896590943224477858199609603850503951830442253070661043456293999326520848855141545530130835278110755596717431560210251116979196515479066352084857911062422017582833255734972573423192728958112026598490162717341555029823529865554942532089337594911362018100578621899439804772327277147706886489622755731195848993350381481356582305690967930493266202808092085020665084295505187155542458546678608985811825083954663815297025422860864336445237367163669921643321495195338823863424157053582435189070762031699211249853330874498220828924263328290639948877569729683153075116418572016857635059329728297867692583538172351302231809941019643678739222162960977806693373579950996360660244494761598022830351822847599372340373144222575410925037329794387563268976935611616031452689660952588257198387463662380830465283541400837479732145859812387104385302092913826818030149272703387276668621580331675703345435428662666779340655992414058864706659554084927175252325893631704429879941251461128330260415674227300923503191011032073847162248712907272017226518634183136462051332946701324528978173137425737851524893321236996226075516360160175346079924300263757803502140641697814409842951535796606459187570497365719751258390772209251142481627602483199800781025858195586540483037558430098911551127559795419446879960376709333488703115094658228621298852815859484772416625717287511552871108537912661993579828650937268320433948329147280798241676347923933439850330133206927923831082665579015737117607820846006655048765428232053039494173781916508614906724885888420785480847545909730952220666947508835516426335440833889423325759027767143152543231369807567340846218869817551768559627598247361132974619109795663991038352657275959012671391990168781418099179132942518065352505060307027226091235377189817839829561359843799117645418560885756284250872749819245704997816375889767802837761739773869545996504488675414659204702690034067451705513626243464039523149346241503149760225023957031193051326004121729004820656290114075883819723110068955828576997922300734453179626081593591155691626783812258285137211707062439131289198878244377215046565530674243575408902394431555943907250574795662594534019842114858630430723418498523763465802924837390025477241383273789458534460230774170364979927598140461886419914089316023329241332549449860663421513097646082010413873841070334763291177539325143686236175098242593487835484395912634465932552294902230660493558957610637155306458813912358107960754702924287024251817977311541072821919887128525632207066307420176139267031517150532311712984801165207590309941356663345887913405626153403685494332805451229169616090377804395442381560156157788019040360584498460465167535604858965458691983635773021653845316007888313122410805811043481183132316729633795052220624094761352438693152950212667300519483337472003074846623754079526725657471902341704174936314663302210793823411348677149587637077968846776142672147985405896955659323452988745996390751483027795316722127914437378433560402900562758474049536632735341895586522482746536966179705575741444765899140778209027338758474133545551422171951179348421161085886144180368789960696727507919468152983532078505408850140907244559398728789363551588491092385715697550218032102582825902414710468190693711357357051392089395276101396155049165989681563912802902210562547228932885603372984322626718501348033035762103571557733529264902072210122819325179287808644879969278760675841274634652259895693992321834448224101267605563602921539509187412697078535707695111440419222494954741162619213240441804015787995098917454364778458835783128140513640870270270081490855899780109553660279858441649505632536261082774518393107159308491647430309421935591159141041429326135740549601892029971653072494269641209584376413596894384424252565961658621625274916363990043248662444659473858399853293007858623238824265511486435226428468316135015183013512167535344133550153851425006454654979060687486605675016575994152049722712189919393561855767637095394863351677354423629612257042728947627445017743874213662536985039023157606779686318323214774906610054392469386736483401375212888836034572840713532648830311682618831689899842550812520677126309793669052988902649900936791720724410607524732798477256706416698762309580510713305845993182415738355086821389598337517310080189077837374530567689452790598394388764190371413404323559923037980543419454425941676408852529653775170586228921125349311361228533541504470816456391638248676155985788792907438575375279549771186667953554532205426492572315405604055482952655775815874740531480061040814001203162383092560635118990935648214601982303803146387674384018834393631045578287527357621246601024194013690336000252190679254831262970754528092389814621945921849500921070910062510962613481220257766511387131794627355418546031347012262758705036551093187678944590355922234346849249537784740450382050700837522641697202054947800361926343135790116229381079334585626692579957496065930041724760276475825861847624818264057500349037194282021119695334512420454040999280548471792903077214170401499036931029266670996423452513516098260805796139746472635525504433560554663743153225451181974092396494466480018466273574438133271692448760627402363044111129263869408209307126479864957623003090124010614857937496900996044935422117243483925112723419229411042374046036067705668181303258272153050944347525516829219431677309162931461699687522091409008720849372237913894832228849544763142737626935982122050986767383357413503182549467695100399299427512706913225696926882699595789092589922613639638651703842050604098325809043393580532612768122301167511930280640983834425083129237758928995569322857231896790119712392122667896004973766824018216771236334147043113643680707177097574210011413057661304288342649756759043676981288433200870513727909736524288664539499951671583334873447595476802490767473023352164088645481787874944279955619548643706560668970353156382481020906518252154159338534379310692241597145461873300101474733430763644462965079161672223825807862077778860378640897845071131805739593954419358921640196474770411468901901265688453936085274390930100861723310860475658553506270968656868450744789026137864492262710914441959368521330930448187696056939774529353577500420273101004001255216972262379264138653675692702758396006044705112608276174385206158861492482062138818881049930420499434463551272470808278151574937493031773869238292193835702595766264228908598852478308029319344537436357363287856208350707308509590429431882425607963511465559049709778214302964084607316646469362173156270754533590444313662753819025589509698464160054417617567934557825090367280766811139881761884487254207335924895082908496073232997530866329100111373674881593069432820432851400202231244415633559985602964672673470296667951122053441264766214924573951150726111617531266710721154030844439628493038135002716360972878785786397345972045146992038544483545729543353990580742288075894163019189780713138177960086769758838521682160901503932578073303166768271821460772074918613802513407243612613887433750342377219019853535627462463827065939034642253600576791244496038323852145211712061040549107646431980516778522610844956053109771259394377154653562633725276463292517491177720571881325365112827494547789158786014844659416326197409237987647763343319515985082883471588847606552417027370585702861572089280063855368318969792633288364783048973223000698020202819181760321289655091851454407760623790962899100620263735662411544371438706953953800540875563896085962316117682570831989067371867631283460529789088242880002505848498444269956705490732835721534615305706259629294416251071445809230518035375216627485375360662742330271312115983451154890126308902442808667638100336131610628954146720355618874660100374643175626729905798339909025210795339687181053370376843978836498777166459410956764998959223418516502540920714243830367345288988973023402105827243111652187762696774483756719356815983198231134050390369752967068427182015987910378660473096480833961896995501314649386609235310315139312973711559355684571998800677348408476662529305895703078300195188156753139503536035798895515114272929526488570645805446457409471422033632436496868853865972104402772569322013636928393251310765808757391158549611416026614076140345521305239959034762717506783930060675219585852704102359811929793344750663697452852674588558364084498297416761402424631404006150073017408336376002859751490908707717419590328904898102175609966164520765076044550517420545471313705557609999551407718622996088498374666768267189961063537850757343393833966206592778273743615751933560417574217648135245275734359488606886359935494014684721117902893234456068282543502206361195479844898224170871220397291971847506158005917196915839764148665042704224883141893273041482716019306874831899476981077467666325676814590206799763901342145970735601236406884878758313497651956546574134320097075889428377668420965577639983940034291455440102177708826612066787958056025351132267804319045713540796772667525579719432711986154034840401677817871392461054760851918779790503676395342552623946272039517772306591104864630333762701870075198227547426388179344262733369160673912940176165412449203665359460260478283666400924366976488960452909609418142067140241924849189069949766069986184829011311231637909217342034038580099898124573289689936116573519791678523173115346462460653364893473539292573967225571324315580860828428163706718881878136167319199915739481567354056635371214918324021491182239532964871573889827662320732185289920949755318883334824789585168076823563143119826167237671409752907624682474890775234867953558918420711694140816007301640164236628788081641716621763266033577211997608626117494856083853572583722760883557968193341031553279624629128777886105395647719296290235668850368003050231388242909285027605186283504511102916140557284883597989826443130397768013490525450364896509370144527983984230745619546307063410830524754544841778863343551730518661099896021827366971513064110500036411123265633713441983689168119646506522528595272163421994246131858894199552188111478398329056103937885426828647174927059070983114114090623214644101944894089297448120162649489711666386177275166284546812448973561862150165942130794385587648734174007853023377429681664379234482522786390670205426542995953581788943860605016373932539522768332223555256689609456813504334839556207935545599832384417097748226740207736147956867425451547027883295232007825137448549724358811512152363392337252385469483608344093356437529064585939528920404915090314581874155013430362684943360733599418611223326251196333212744655302844701756364620090720662405920531894997587422954362164461900620267735544951241552469112661470674938238335211134204113380131324795322205449703318923081525642673932717536889901609320030283786328159506346867699211293435068325719732593561017558184609073364841636820147155054404074713288501624379012966038572309887328673061044161441430389251864439284932767009689871589410771209160284422254872672220416723112662109909597295549045545952405865878742916572468233125571561984955643808911478908520271891909996524931138690059536496594565498697587796053260300467269029039247893494990558527402292284909685820407526750622740306028617463987274232677362315103436442151439757169423637748232356988399625122365767268723137604734676819762350901133352568040618596316392615867345289014214859602987538905543935677333810116119508838265495485784811453415364555406742334027957313658497920958035127553199156706630709728689022362782454318512483774031174482241351681096159382950043125442722429438981227352400915193215321477793211750653747402172704403106567019560476077574498879337348380784537874824088095275226345438479378030101634779288585784840058353594003394450209223754623213377250308120898213628413309032123737935650373787157340556568181477285109253266153864783844120005650061501180662817177867424392083795810408136911193484530159531478341548817046040033219729264750088648919168038984699897021673538167651250608739614732326354612723833172901121019908225146034638216695402082655563630839282441715626919922555886839722353858738086681443283517489822655339677362981051145139047848703578464154451719183631184943874615733640327724606497797801339604820320317622225429710694511109775765263420269939207169151480577037743097470222627330350763705771613827576314526988705853754254022689140677348744777218681207899971723584917980306966562848871339226654686896884496599879963380514557182155756183515034648700579889828561876418880711359198086017818078596126982136114879171159990183614815533278370760122134024869437036556234802204383433425802915212486660290216578278485071359229645197575344956983689804018223949442226010932380905495145651887193152724696533594561348903736346054541039972073799794110074175542639183125555083909579660498679445850065909295433316168690103238586069222641647686271946804305735950132242509226988122848697830159033173127453660215873304633613822630498198047541803638640143226773339671636609852686525550413492057714131059405822560751782178878461985236405494429686789575492885441107275844222598685383260428055709438886190942729241717545044119943554072772499683823701299827520010001127085047015217597710557984479098854268398218740502635989753388228327655405910971111043509091334256150752176775604934119319005153686441808983269658181048623179525984162563519327738004072205729219086029521184342506020277654147274715525207858217782103146250047786412702995974592673152723117768376957571403635181002445796291655736070022630841250535770600898786756288024078539125292892297447395224241464171873763180407843215311904729397533595177761665946851895594938921248911953010614887468429754539910581190661050601465639271472016059684552600145463147205483283491876971040269092907540149248595550588596593854835143107768879523774006351031489111595522794515226829700342429075555357223727023780019563325550709240458890407368933673689366641599617088217602189654798496107087106062291489474363194487605106898377744496642519051001671246811061160283155390092350789584961021036949921349776839310561059448136027744367306050155540167070433929373940793468444902426035547044207435762505542429897328424303277618233791472750901881411793527411869099394148070019711920644190744789202681268690297255439513696416820444023307120414991382289058922693942681703364232393409398057514939850476492053773265352068399908725815843240625439942414002114454715922696951912886930771646862548888487923192415158430814515142563928808298382015312322697117776229791115829974705958660777127377436496127367807413693409426677681031460831522299428216240359280526260731227874454167496644550714884130098722255744299247292454654092458136908862344776391713838014382433909540935337765853694049775400736099792332688163983870126019474562059274741729009409813236666013243975483197032068188652703084709186845821868582985473241746737456918552410307240623225896629297382639901752707655248009736687932356637728240308877675029940237379408553289456970913031310753584909692548568373114562348305310205228771326960361807455963966433413300561083328203010817768936376297713272166873449013243866829668722339838205034814323412007319035313220723628192223951822816768026525076172675476475244866539263365323209830417845463880194854451554436204559987492965555840190289224454379164936870209054750543493456506171688794882421264177944169975805877134750277462292282378193287327446617508866261916877987002578899389855479336353840014081807559501994468275896596430036910047076998673077597713731279055411255253872924455672493229456034549163371871276711757021689463099576264374573458929720176674363085651526339885136411510519012772426615848048723435120802590567585724068967282166299967648552079275513069068034199077125516363902033203313644521393979976014134565587996932660642585392684581033139719500787707924921480455940849276562381153878064471182656845641624133085780840329761418504577147145404397897039025806259835991586745651857919808894844964659517030125401060479017975423752004567777989701279785103127095689063302994198036027533176012434940083512829442274570672048741482871815857813555849899210313492821424045662885361706539166860878006079915805391336679930714400581125059260136356660634789179142689424067315854517823322031786414049395034795522032480751758603242061528832290326272285289707978643680763701630006502028993853239291790980984289334993214717510555867652805931207274958724141583692480949001962144000940759968626013628597635113859071805027013839036829356141228933976425743072695861652859782177707370540775110430770498181665783600700489072852605499559239991830171975834688054460411176635870284582355186397355825971420707409513027673625378093065114519717872017289589708595649301591354545161501046358796968616429908725604776947925849067150666320623265760720778895982524967573215847236137681578193356898657874257705866329442526043849946944442865712360476137471598775701551280304112402292091355705836988003985466547702784385962023799408867172359947270199712680626009673695512329607088273953901288110889980690259982465320313426940998051755710072202806386583201638277260346581378846709765107801468288344195091676146162749971507079508907788261814953852219622555316657991121319117039526758125405361790945482525230871401820687873781099874017076317052651251551116225732600413020146133094484815481513399429884937513436078037382028011987477137399723922555104441310607193392341752636994804692064123314086872523162290613706618696295714857778477662956159815163610620988909272589037837400512708067843610188627048765157775459708803662306748240815974278163020131712988395636001031310240456812135439016078737727872243728074997817151638654229603450823543041406834254141525231286632070535114515934739637318434891414592895652199227719268971095136123033893800764537148794138445637804226904069846177730312132322014837560541769456675216967827222128884148811095932889343878271523525463541436384646157069961575072738636016896029131090316402326167567429888165225434951962728214337588403639246001517432467816041313999062758078592435492145223348298815104074535491585235549929879921014805362644031415998864534728820865546640800983129346546345132155604566589250307035655631255020430515640992586905612868948947309435939479174663907845184265652810583108326837937608154192272623828317824483920975574708665282316645813246335797758403018257321901485238787229111540262545945676907446369034180611359689384273997535702442574770176032146285131462877640739779625031742541434690732142564910135756989064878858920494116499308430360804388211596809973928367696703661766298746908643538259784915619306295901869210884800751497569947441673560131610857870556697800163882116948723567086254258537954448760308042253664190896945202256498423029794229765019069684634873004241195285879256101935854474004668632610127241507101539885973349740920473608509907970015663147597549729743554096162141160067349346278828692179943354771176724609445883769079043736500828638866538009271922174735569279449734438131587808592592841121834903977183674766050359899317904475290291032330970875950846893848235313736956173009299083571468396269290825880289795469226436605092122584655110943085473149892784386955430254554555983553028658628905876213434072248246144361472263101153807024089527879061898303465761705542920396260186358006788421804414279832113752227477958546473927533164137418617233951728679086358123791735177763399376837609393816794561118021248612575962757524577360870335648351312179404494280858644130679714774624319036853299603671176517069956128174255169298726661488594477884036598301139274501419364866112674597809634975555393674471096849289504234554467252243332455112563377560749753055266763486465679246665012470931573495661486603695903612991545565746388329191052465271756716311765963660524101784639276199942115955817481724804622961667067094148376473837907901232032512421854259964571530219697119172838143927648109120622378656406153412179512480877666185441863885509071414012814081956266708459659038308014120691329529415610608274111319574407916722186598839293241623319039106857577279039785340802467429739234838126383201386686287406145359166999698530254729599642649598515654106389665669528971507916498245287871953085442941460711885336471601480088074068947760960573564980368096731970031611966636473978394621220656914029329604009281102280672673224031498277458987773892122895278869765342002365896988176464795010345536892881977672158277953060932651281068745131965615180852590810084173823362546271411506680073838320232832602154061362151356624753476921709955938201213985357261085768377445499560941530992550590185754790531392983112746211036042911798424677161053570544723486207688540553459719812564612043797613858533607733020332360511353250693973791069267918969856387917949869617727918690048791347614204710444914651116486825412192300487586712126413779110853695799227034458717741851037391202573961640889830297186391925605196185749627005942585465571664177965938857267587284635111917943700973272173345021619668199956987565016781742908731471114804587080068832274858220017043642978403955793201475430118071468228547182912538704130216887453782883338070146332984112905111900448592959365793091435452932196141220865186153131889710788916359534032077646151392177706275407965133256110953060611828743455653093697042968843266328292484682050602085205745877118797592350036276688220479879005358938119063592616734851722164119008326453057441999416709900829065043996062490698798446210396832060517082215759662498466329694670960480957220620196141296567424577307411396335841597344499184261623461783146263697674660435902197421275447875020006205480822747839478518334543075224465670438873574405898764743869606005622366120517630607755239358408815646270690103206556644488005031940184360630466690003462134229190399117947803723466344722094906277019846037147080273022016700591681133675791316683167040063579260062206608056965351901299216266229561340063716809918996729160169064921486662702669585842977493997059090071488273817170928199782286928695218182684952820749908437371649016466642685892298752710479717028754685702485992003964167769085820743064450182583574568132633114418713861029448442688901850654290890458552948631937054215195882057684547324877369136190571682389608650764114100437491302591602111462820810414153032085174460763110919127704669246047963682119698936299676976589026881537172205742153485668812160997484877168469345372468879099089780601561338137863629626876928974143153254058322556023857285536835242258034389850310043017255166567679311582145031153085551021997914481114641248259487330011971098072058167145189490741828016916743581400128112565403009813487130494800593769525729448035129888005666122166460322843080381716054542754480015090866850028901548566879727698624840556266179559543731694389526673008962581383524493065705251420973715888115944691560537897137044254227186903912097202853207634950011429811892062044707413742864484993841240066862404911654465762054792052215160661864973093984333089959583156907733336121189152932620691251519912051294207609596180243740997341257565444758239794370105107747903465296364006591479507726306675636606440611005890369962983071575640008164189321729365292600452962511109260376570282865207653636351659624592351302650141963995126586310494705145539566985387706979202390950734944194803646042426419607776938221485618072649593499877309373775066422359090101610762324676934898272835442978469011491822048653382419049947449614679293420642239536186593039837506650031177299671283221955348925498147092488886158954788493902107665154609429002810965957121691700846537678596180178352182851034783097344550130210711140936236642239573450902903550060425732306641801734379933961042860536072859057164034604412206451588974791281269433878691865267168897396921365948173915824830053290262985956321686185328140251449769533599597688353188773208672606229684303850159801469499467256468269904288875626511409039697600094634117718236003485838781902139143212642610299854733036382087289744797402847922410696027875277183850333208464630563358971810928779019139764588255128425634720191539042710286106460791465642912065887243944104573621014783748180565573986808018933192601272872620806750166878445869409134901840725112746783405291986613603651744338124291167717604844889212977199746899983595438446429578981341814418485933685786228796827297651343888880154794376843367984019284860621545149690199901860437571867211901254151418464559336284283681641297108666107116422451994656615349074556225499321634406384296453208964842495287032777500579260960589099197010313505454071192717376287313675888257890858249154276470659694746602340910489386214110928093145779172492320689512509596845439998422617248116062398372978519345218018480733035661311161136490912953152306419616512549505256105780449611914626706742977438893158284559692722999381883462220331699271426879133745644912144275181422931500549142220734378796356419123988189805995653418592515756843566780949133161191959633447682609210620150007393067337245369734675365568983700604691294494896899564804785686180211047571229628020143235039991625875193260397627378120695373659191063280996545551641082734388564421838547993843857178276890678416158364161171819122961674257757909215975477041602737084553060319372673788765608959310722696652839897296804452837752441553725726995804323474827468536856222042136697452369158545523246015606418043676031205175307601560963674141767853342628974381365630795890852401370722748455239731464582617396158032765026522858252482681634656326263721138914232777935057824358595030919861741777236004751931905101297223802816337428241654076396019571888687232532550700915244768374164854356344983939664896402364768836578599851774586294117741376576471262865514538672707411738801309013191181619344720495793574454815028022454940361443656926765313252862929804432084284809309661568827022320268672976031476564282686770469629252805119734959824526156196407206512825737367121905677602528163784849661097451061016248168459023057959901911118400574644279671589701380914994450043432876444251952895068524910359261504994373963339965169044949934190481789877594057986656675223836012293452362269325953999600763679281789522165981942066569092005573527972812855348037304430071345814407718093500167083765963219830656289290063647638496815465185503704988118279940709160918470075192160441485817052564822344311166741548041551802699468082506768286477616536042112496387114962120272615964352082840081068462049506024855894695807216496739091119009980966273947339488708855677180475338120977387554979080292131433511464763103696369295016531102398268927112178382120420859059134559135791789837176391287469417065186581849279105989264606257795769571594989417573984150470104547243336885396097510597817868645771927245216146055170956919852555365589136216633211373996474571979387905808719904633552250829241153805308985851620611480984408361136309832777026482078331842831288242106682267939531406391958967185867399420349164882722130946470063628985056122791633113359009401882463946684290193588660614177071072969849891600495578143427629703604239207835564195153351419013911235988308223814838647572591140029576937464266817574827888646913118475061114097121046578588952085016688669151997066010572026720918501679936921546153781170769145800490342850470339652993310418412655044896967964638909486753499142968644033569118517974262059949351093785991540928849043707978965499552353644904959500167717429344676753065976202848723354248632616598084745061525275850428304671784786407682351783909313149559940796581399257713214801871917996963643496604190576826103671511968228606331301742191032629894324614582201250061906722296590802821061124781406928420075507361844918981682679274110108105358139630811271407719471591797667079373034780612146027465308374453739628930842592013590175320048783690085305509300744482254792282018411993239444255144905561366339714748694049827981234128001446156700807741582216912400855214074504739009791616123613113259601546760613846588976742304942026518466586947104554335139455814280288873858567281991904026155025780892113043176777562471967019138995240725193882065747004390734133276880437682690648365860389003322576658567032202901642612018713544981371373256614966315239547473464884667908559861560045287425787199031963833532226282427247771564601093687231491541415781840658796139124834094648067361194081290911525694706966871013113056792237252327359372623339210219818814669601520336582567998814460925451763072453895884561745630029895247219679813386220536807819991062055058670847317020174925899747364077347167028518306727112185445626288688973657141111580521731997229259848469281079469325218844076455898931688260964156786444930719088876019481192081159442655190867165228135140994643915160979038536469097295711556935350133505007334182582135224246680129536957372530312878408960365043886904026066254183280908094329034563119797801753320059962747636566619527160460666532700013691701971040526346073557587333332114053374062294573658455994288160605944684995627615825052610640749504026449184993417476510874712766954762941457963077014138955263427193910603028296057602889082959552270737459618862417798186638781207263816120801180005850234311975428933010393937670255214137772009141501174839699596990003742331329400850472119657371488400133413078203382033997374233952842214711586607449409189878296281743096173793388609556696604435282019628753220923819201583364585874431127166372589910162601211693145410669524824855999241795424291018317301898151199510812943012070411032888011805676850566654038846179395766417832809454558017134451351388457432121659096355663977818242919333853232044730716772376625709811829624529606578397458807697907695039442883121599594505344936797763653430632095595751143047142017509775819602106892666016702335104589063095461552068565420779003990286758921969136533597484617712297870189541401414039700198339040361438220463140485880283414003872322233017375703064838296423880534447335017517668622700684393050771675284758301915686076521286044224240642680807117460316372501089829333558330882055116248056998692841688538738266416541419594092421888070438088623819147224603459498898442481196792292087588594175510032228880969082548308742704548605188826219122302983077031981721408620763632508800502503092453222566294232834584780097356330054251113222892237080874310652370239282189674435625430183762994180409673147727462082239615596775711564974755626479966026885111682804206769002525871353035718309657079741038517128211427300869093399166306776533566630368476490451918031896892386835148436642370201741772313966977991370973127881476244120704520158015296437007704654593361758586525600530390031508995248659860151296279984587930229874709278337850848040842472711732294254885403681643502096463090589319068017504000626466617341866182584278709600018628980295897836028942498439318561865271297868815313369895194131707606499486258352203849400833641713930551530593749136649436786655887577781387071871453340811360884791977705171228493906237896312098939068578494257484280326408578560130043558482048980655243700797952612527863211700924222978812825387702298395965500426164175706329818415242139703723979753285076141958706140680769405451118185355356836541079446167576916371747401301189626907866229420800314047144738501737927501270246544818704170057381294217644986915416826449692153605548408230506282622315398845165409184689208145490216733597506372534248009527485877994031972343886659809248778831848374674998442801553893776432679502427064996214844925369578204689348113393075201862947903605358716239300088212307175696191272387204144852456100676271379901334336414476028347035638548188585565069900945578235794438655122840443178451193420198111541637559120523174060612253360352044497496121819840980500743838422006014350024200292933297853099378622925746820007266382051507696946423351600406313973489656617978073048245254094980655389614223969571794364679865410769165990548004703005275337144533627692634497644320142942307058803922628162799631998619734981561319880806671193495315588413098001365180836874452274749852641425732985771270643894351933362855804510209220249416006842984670145676559204986772915266451454242556973672852562880061124428682690134477612803939278566292986069439613749107925026944935417889795944113056167856947485502094301908640590735780557982352372755900698059795140599363909942909506250677612301578471627718141319930432084420737037663916784022293274262342264649936462713518532618135751483120469788197748461958400244835335597236330776786054024614427477228706405689296588580552520144613425843547064049077206762557904538056852703251228614038212987210731133128570589456834334305930919937220784270558478690669732126000781211066823082397404709215050452459755170025319543721662395311146410468995623084293318913532353398352001760262570747248122472551978581630923253032035625502240054139245354079812587926503823276761480706737486945381535970798431200270618830253618949433618129824068540682346906811539279375574582446691682256764258766234778994126819000512831807131435024435229980336823077975290961248304137592290415636414236573042509981608242756250972605346807900502795187994116928465687273795533810595851546144771514196668903602822548068218251139406094336175232080211438045619081154611458048865677387241142752966396350342544543738245429644963810868450822268082601714461638090837545571316768009085805903792225213211043842950969541541471552958038668318147639848131173130624386991076018186799205165867292553954573390450841556073552423210113361243232427154988610972089203472797651506172212628614371741177146517471475798098410122375337612687558843024681822511986117882512925198638306058728261692569377178909183925233429153527002034094654183646999274917658929875351835934353141780389578206356456592040845749599889743060911106081377055624092152218756961502980682585537548388630180921912851591772106029350289849776688660924414241584053461348237951342735042859656130270212085141966764632442927523281032026518096537090370473953104765166639272297400275897974413344583915523640107882627133330520571273902582807603877864200296549902869701306564553577250803611649104934817553464540537286207938427387747253772368867326625438927701988027034587384762079219066108305878578197255969725136653662152592325142575679318105962643559155194493218088492648141607685980426626345766280664077829730038407086440206878056846490620926241049343744953938250412489557813020891854799378602755819185056041523423125946246406568333892638958788044629532394569277885684611876408319175973254842248309639751340493424987761753474035463432282607559373493567367517650173146030453073212912324625056633348582739040698280819556048341125899962172263831514120692839729575978229017270239042160239137573679057426643702356227235827492608724301391404718709022033233779782123484029893724340604962831260509503560407418107054360303048262175384545098338554505812538043274235429976569593029425877614536453059798177612840551391907970236323448011960645089781761558218217518265501796384871510780979771094509283388045803840652007504305496165470839238937672979621501498573662067080242764400479525963612690430479820980459423593631980782708374962072446968186546394294818033280552700481953912243132547073703477516787452721788346977390294402520544899959225306977414430302619525494425751077000227125367872891433406723077540800668135189562323347558383116049963845889216794322278530085958979674789161886930887133902565107124968357508734872826314587665381922706379398133055897702630891735442087840667844268316857151521393181618648039237473553798880839324896858590541772532232556156200001011179989376186173111092546012159872128519592595239707304245548873888486915184063366439136416684424003799801154037328183146026001866572984957618111408165567736663611366118825018317048550828159057181981278382498502343949671369357060439099158598355647825029076687481783959111270846135316021465748113248623297232569429242430148185396941081054686852720999360956727919902914840373426846978793144283741577955823712028427483129383885715662494621840888238975818012704170713682669205467789212631655943587057387032844919537660232943991235656506164295136600841637025149973806627180957013687381646286698721816932313802748192968937728722621259963045468418749799208532918918981285542313460436096374753982290318465063947871394907857010999080784142933557803377670150736931857994110684429520203933224570523066801988258077484962179262462813713263427010993616299891266770077597846639480168311505562913428613042632942721924922031380728715055867973895654359456618305169758715620403239040994441897049093406285857434977489909958279287484457444144126565520390487536107792836034177528951388751567048809279347357961733708486983764971012512494952618905093744918148305762929137121047257368939549198936680621471318725212671026358985743912348808790344590151267240578684771977768010234959547838162420295300712739061161330625563800531107989207527668701171505133746680725254197790562862938500273043265523762263093634014112034567685614772699241132828601871671689915375100767890432361667803594140129234823104702612059369516406558714480484150484044060087109639875960733195502154175033956097680082601251466300822127002007390068787536191178446395665602064243275726874550401820003305234152606716799305775833967092112391433884024865177576750687074188943568341415378058749414602860877282501426261695049703423212969430413360060233325769748212832960205941523577496232091050542674800185804799985263449961067974741635227279162677487153357105275302559470819148875097407340777667292385782835848743119856917388140848634419285169359012100946587198408718598000253142736652883763524340326151933936809922442744993837692471815689132678201793860886931915168547693810803866211131631266457515777801583469356419556348148218908263084919970908251595759325040507561473593420603772665875621308568037803375439963834057287882915228419869836897845644142610148585070908270721637370826524312318827833441638248029288472977793148061483453686660869377229544995567878885247363001914357941377248318449786588294778656433218624734028847383655477152933457640122284414660762204131707806805450827555290692540670331697412604977531364684196147328167620170849424483006679049103117315208645554808326348712036542000497768097416564204337508576210775405987661337249382002884767418097453210822065339621900984601767098515703495044047886161177924079893695122454413801984278253545141267613690485685436055857727520057497278465895272349948047233676472241654393650563191048219037401259681637864499740853198412861256164072582288954577401903011710521425813956558549480538903973215268580211806016696327911521945948457192323462189454170291588725302640050797680617529992837512170476415608639662532926743734639992741687247722901251132308482796797420364010074672352868753218643595605171793816200574260283152723883583097429189616221356473732513471534877549195801967798870861260732036567314779541952866048241336713942874031280749087577883113145731806972793223485227252807751240680030671536534335761066698982950590817201588915153601971188983325323190045507143993678831219536495112403157362777944304444630156221845006649757317491338624460211172593340044704860717078600920015042871587450855846486025234373503686018559066838216780922935764286743253486028875200830305847961667828173318463380002621046120688854295986811894252262320346999646039200632837388183037337925771322365005301654858222737609018012717191899710375568414973043001332476442785484762180492428270957432943568348818482081819763344644742550150957439282590172498835934045661545250678417257846934035703350188699534078243412505515234396806973566806824596872592710193040080941100740420063024061651284694625914808237706615191070593650936926645342975669670324607565589590428047393006590580403978235545255725995751896923842415261582022002375249543387012329548602776417741974377585837273791533368062870897110848092138158344388261963571844068164950550935275397845071921050051336178846904242409058039266923316565216079363224556111979591374576660943313703507940729798857056128166038743995944211447798176625278261496677313643012160141543480371529852650683145049404017012125585157492243817409263375902683249053250655568695581579945018386347499567282607811901467645254523677409180883387046101844103346992962732933553028767205590936499306121696188108120274516607866814049257119550170173014117679435739238147968183432921078436206905137290206624407987279036544338840681287570500024153160939203318291186551870636673493114293037946394945066981565052406894409344010426904194998761563847124087503230059399743924984491323505030300928887076950511501617078564956477230075358647533104069647438895119789954307671351927596434589077305535327927656793165976962427476125442472999006361139234488490356723658834950895231831514309608459282074131765297567187595063076933222183794136582594586872137963426005919517942339569302914573343652652792266700801550000585579761003232406691657610656208351182573377546336511102679924125351588425419560306858124836926824805255897290808766552921783776245852659121849582123234797495512208945931270646892886177384485026393408100172409649262226167726832882656728039380237575946267306453834582037894733569275314461134001960668095019744780346155426880418043074818319779511069516619734215777689815464021347345654408371140211369052756841777762711785027694496487975405802676452619867737052986471529321215350395549890105581885656182979036853309987941828301071319184716194645217171469769554806583683213441100224100030339230720116780215103022169580836384432990567057255288433050254244630668905300258131461452455333496803333882819066348680461796158465932213769217275031708977512554531216114852855637549052888672936998572893827998234702641284013694359345060745460538403176211356498579734415783638209591964128910753754201956986388618639308978951266129407904603911073891291710976695966183903109775276969816617932530732404856610868871780720678479891623710306278129454566153295902928623719954501913080434739202528382165496888865902176043212332340963581341748065699636628759681231310110752292106949428914970775244605055069106475871914753543819747112237840782597996395587695429362137754655829548729678211652248005488214471218945414001060161337490981171231432261801104462753921949873125085922796700619712880531471470297262166148649112468501337531693443105386271782250936168740759493030782009576322717965244866572355833532172345792553665558906168086486898564949094570488544731950756628339868444202243256099461851851678963417948374799911518525033980020568121387765453580074628278042125781732883514019115605673541772642975370379179798512029421040792668944257802228846520791421627816016619614176678889079989971638325029851335139759677423521202386981730859973783229528578972626486584560072588243150825859303210418307448705875508336464636163152371644154919040086844223313191283515957932549492853005979719999456685074389101263450165985729461117579912648316362309360084662165521491831965048630507833184140102884269621251256387654004154716108324911105000740916963893745243111837851516807072220759590320568487274213403461866335371096464785322567937458378113994965323614904932539039116202559190073936049349220287549475811393505945674851537395522698880865808272671363537174398296706986488440878543521739778655865459264649849521200886806595899808047097007711379560698778680438139483425933063054627577765917620936132348193145097575225460044833456907449315870955136395444413809160305837489355324730199631071887686392003753423919825174942150994560779551722500124296163549321329918069879219119897687609952091320699982329802926559173739939489396112301809696796019487210009077348193182758208407389071727415961151479139324991851758706611306092345363862046493228797936755212876215608098553921197453111317770103282941325274121533554579399860019762074880915553719711425990929350158961688980146132073983497131822337122259701321669004585823328132886038015658002414299902077512128169651886174133450513967548180480389668281816621793298121304471471633164200115341519749244097692192175456950315906782088262197188742043688433303887875432324269160418150571496294184136147881070850198376240794612027431763568007159121950078576445805132931473930598620341280071008483738692877139601518425638033433772494712060306561547501544916096693042747010606551118171952684517614692736163248935164940540803702456055571218657764004930774224103573316912803450928317922070842282824239282603341806896371815469850277742849749988342618900237525654448520267011142513547916290696190827397596994611389256922444632034572100897080666289916958206922264922631376168829542764448654055769816362085986531775590948784766960689884492125645362111197450349313024744842242822741285708027355488033524759157520829575053702004823219328993853892455964906612361087049045377523337154187365854459441533339083317357291503206795039178598381969008822355838036069703317514921909745251687253909799323765239242761790744622607250005784322024645274552594389309354488496477501599653964908915394071067271575637359940238453870693104536614212496568162998283807627804968693921348590945063088906700128041264891869440463509342548911470932933438053082487626492565791281067236702251514801005307881486792058446168346497782959936257821827283022256902349574265893995374410232858730581918038599124470558964881779439665562680905751025692385789754940858963629481768754946241591576883983173105472357367910116633756252226690601406300035759128385633916633669746740721440472811034148632487890775835953118765879811720492054277473713649417740473335456714664814545183159637200214041214844744142813923760376105672540474744365978051068410133876745716322457148024333077208046768621271649926007464733310089583197862702439097690979824064019824711912831550402588701383016733204621077278637797175355123606965038627845917117131958681558132773068460587341774990558219528487703114538957220341769509778896395792763116316094038154297945510723223229461959927831477560693912190567983917989254336104409612498534545125668838579564193629837287790694106874067617795524035339053626932467559287239088049478348183859988953016877365100384263689710229988264066980457295439604481112265128517361709629616165869264044766696776661140196004883122761842515943518310712637753203577081403712768254075653382859029305591845588822178327801331184318697878144251548729613782943006961734887835055242150660398272865931979275315981514744057203486772245658396810570930148344871076071503451919963841616380775350678391402716893767364044715337202302957357202721839713901318065756055812173414044352943449805755897812439553471774259119793090640735380157329948595174040788362079273718303109182582135685272710990824710196785361414541608010655320110018084631056054939157936047951349487568635220683987465832240249333395212937289625385039378022308465012793524347904016337557623618256059836958633772124507597646020942967114424239401481009198868281508884316541436744641818105077763965132982231473754342685264982147632315696413283250404553531652394171550755923606677928962031582052887207682861324644709364048393060594408663531946446657383464661422835287780997910049974936525343504204046211432321006339034329167536917898333579719554187035368307327679433311256328458115297486278406055939094937776949441124848612623313519736998189494897311414296256817859509073773702272637979759530791312981639624466044389919841975342847045488517801765241243771212287757960724656832225521224690386801423592678219540582502974079686177500345532557413223226517354558673043080254731134384405924410938346141723102217730548272797817707733749635644777936990036874640770871120646062485508663986339983810492563267273154999474921863530837791064700036623719892159481110688292865597745042884493480654379524427550296519395650025854642971855115704658266296610339788056739453976170599892083752516060617235136297639567480787548311022021705113601561259492280071449254229689817320039641824320865078394869983626593782503491887537779134011860036154652333956187964858827772270766353027699350957770196840580046869206993084036834922817715956809712389301401079870220053431087128985906429566691294549755074274561896599598684105259883155259127612595782242097232540711754224563455218949174827550014798971512892941263970791663166367661018158646016556504391409095478826423779239784858609021166061139124680787507637023438994768817935057556383145557998354723721842220823264466512913422286579896795248024506786126547891552565728824815240164984576350731314780084677995664036147948482992327779149317692002702797226237689724238525938188679351429925006880177546855165060706879867286374875636862293590210950291914074713445210348178493022113730886475256025966060443404584716927095325461840253730450462606546731117972102548591917195732646801869099035136731514244484660456197778549059191822842344983715468482722552844442809753321791167993339204218839231730487162311478907734895369360367087128377770137787781522247034980487750731796554095761897530138720647152128969951621606434770311400446236320642267287504300219499684520207616668334655617601421252779946516608738777936870172917587049032281688184742398476422223070367982798270981568124366533943894299941927235418240438401370137271997508872687672471445585739833236066180129768769737573745100508231605069845903484650348877052442628102430457811104906447834799921677171389780378616772971462551376782380181738317243912980841272522841140012103092193410653052605316487599533619124596192012624190259565072732722907388154017418500268782862575292616526563648731748364859041430571536535131336079900364739455141678183564502413827155643585214199684764171243410980327465244121465404945398076314409411637635417960868523730272282915465567447007570414442237151835749637040681785309180235988608668659292598463631382490077193800141322000858402276997389263079265338857942443980873614689109819994290705929779683249527292168991366741230493767203724457681996504418483948792799966224854977736904892362143200412101997152750004293367954541105170591461995597837971467670676116105272776607812499536114000916518522326531261960594831922985023043675628915643498596626289174943272883463882561559851110163306260553757685444816335700139886184649029055398711676438034967874434630877339930765357614628981725165870519283693314244200466547685466493278170664437988992852867758914631783855553066454890442018931379976468589493995507494848730984678237388246064660953759383749029966180239320854705202709416393758457873038640246758174545106248193317241197964713937861727356407673646042969664595290051657107829601715640291974990536958358546117700537053265494826989785208470186936271349462482029871974375224259601777108132930803324713462705965803765290653557279513143120069024256593618395485433847591705057024582549238858453184657285364148476109408787474252717549717400345851112899185957898428723556500559049462920908938076666237681995555369217635360766954728590895921308852756909492623243841600019078373961212819343971636557302017020054938356901304943906007236391401991047113741724573897378255081514745937148135310085993241812481040718201392811581435983730275166101283344485665331114172054772653180652454040906191447482729157876149467370025970503649994220037000551292251543967113067191994683075183536671242193969805935484708752920813442121201500221501941011134365328499135995033983223344807733425867643553700533791575031351724810702378518742607132569982688304117666954857930507196220228485839271139638002536654168389073649885391793432995629459092382843989649427437151996318620616453188128091363902625569662458034902277441670689268279198025723384562144591427820826656708759759588889561686206589408576912941770283998917801783850001200433442215956779109001332397878930344729847817857926750726241653679966858887016432546236470825519671573567438854083743114876149513736218563320693389586039828504056942265569519185766196526816683820976034146362349573688087104961509148790230139362254666510752875861655212583650377927179248919782500466121639757252907388031947996877464608695061770303993097681498316085533355756926096152615228641862361342067871146981961135158803400928103503176604051133956990867126704942728172460024544999433812899795509742597715610578614431226278724915711365472649708063859800375671254595061621985050936198136348091403086444304214570118585187795056121239995056762822869028386375151602542931520143303363090553632471018030285773932780328986488226423060548065356936628896547441060697384468830720605982226794406248619765483253379546157482896011954149602005684566188917988031961273682808634906237827823691574914155385633788434782417230377373365832931430879312174352512682181298756235327656257367000015393373265794288031554302340330187677784750736801284802170697507624449050085793314619498801253872854434894501588362987715993982000857506558520146126592961128311736094242313356696803515247788017495670598075190026660266105676277933158890345291297020311851971061886699666500722603677399445400183249748672875581840966288960639298283780419239573902009247574783686692568916047837421434343910442372544740028789779948113392012522408186131040492356118233296146719916625387286182045953496157126863169702664909018379623771062032404136423434168835512990656859318432611365123715162693566921150983230824609779198868793929198618277539404101733198652654819962939366948293308652174847253893836457475499620871037766897598287889146689325606132169139539704684872547162302625709147265978371007175617291339450639655788978683203607472877271418479033737292839254918492532339228180521695499635142002548938867705291222040579717100106370422759678523878451016448490956051153008727316535472530947562093110275365660277707328951710673015230408233631116981821217575274113647459444561735325837078043009720245468818509786204593801177807228622444626290292489787244422180090799009224399505221412293941889845834523999909535323922752048466862508291860904797631375489824497476302289833742943342469671853596981747302022812623931489948176309205907262695581381732861450043723198659464622155197361491812076697006674723024218139521168069671562564387236632671457946155542795403210621700872050149299913826216964678287454979565206168949583378641452533014415660975406561652650006946066217774861297731487366038630677344593258915636204723251116881965299985530494741590651545528542887375174258781739966748858057895132707276419884031599310940022284578780851081068194877103438438173583130582200083588811377610356235705341124741546221372214307035906556941880818354567025827267884298435444474815120906053718819838614574712893237455439478337275564346838413458417545152087013425096688048173594421038938881775225140576261868638497870802878310777453993286591351037770373527589656843169746569184489374943338184929167949943235105305133458620198661664248892680489045462359331933880308255604140681589509882044153378457945303556509604091329440945110019710987392187391694912350628938998115937459768548507660599255295812268260440388635028082655229833957917597456972628596663056781904408647513227425468968973374355863304683499140094078219659406695436203901637178661531517637323082057442637280607645201414833406648232080223443033107808264983982835815484526066973079329327926324102162688836914434469844370266062016667691061813469282696598287586444101430545806202590509270083483063930240923430183284746941077957024724632656109427536698610421322056141059420610355340936741824567044358277896406793975464378275928378532646045125865856267687851695287551785785764137468583292004191657704874026644379347632777816435863383451076824215738397426447728243076262741287316526166456727233314666264852192692294862728216191434083542007209827992199275448280115745215929002243844632143106163029585040132051430561571416980323391860696707956170475546641604457802415232508464902028897782654458898099223416593688043646813278639119760037721986040444743532614473775110355906124313828820649592401066327220926925111360397791606173638159909855355670871726127064932943771439522639281998854202002629850979761261469025036929566560344526078439456500435462306983540285388499158033952636400677554379612728577408965011756725136296959597957316874041250998046475690762852530357773576560633742746379190582023935594500228396416101531384169647219384022086337734881636435061956255530850995349592061541595954263021015226728751604029347842393910297275351855784602543335312199074236945010938111876152744177328565239465150112135761720728936240828147340804531179283347810750186438455035060154802243032699131129873687580827689185297688529187133995025658463777425626718717454755617421200803385410168652691555618466694263962162135364009086774241632249758126563152703321083484665728587791197012686832076614769917781666251695153121693280735211422068374032427635792405608106443549795235919053603466383294668385800473771767709188354281147868502171028875989251995801105317805479729930016412277385514634994387895183039606374480365480908926963451426826317868838900365799331922698273538089855490763929376643160586835804179733698668856134992879143521621308635218893775434628489223959906269655859506577645253695425385391962878006070244012998540846671398741926129413903434680021056110132742398584908366794748465829989005096409928625555897256290032456754524771955756156379737144271685231927277822096812781843663158409610130301305752263636186555254732890252293996726045746820224120011926559478666254963934125468315188853014772235617066189610073093900034666275858431090847489834217689594058496494391632711111331228392582515837617094549648698559655686271027963900693753979536003296790417039539329558681955071286179784589927855072570094701990799998479732435090218471965205868094086068603225293545851237180340159186581329048054005366179260371724135224324927731368750861394381010148988107452353314794588876140350227111642225283006849526875551936633810318209167985002321887123764563667183176742114623615843728309113196696493481724266202850188808323942174511358239210699570521177273644380829718589567253718643352644756053342952611677176421113523564239892251831361765669221761217714846319978797152671625459899321118233062227028211781916898244068041667896168589265256945983197454493448502866279064281978925851115436719986387585643865050190044715050511809926416918528462016326888339331916348082568794866271907950935456432827673793410041455511064462370438571545227844232884858913954800706950424273273347601373607184993975949484118079477425106403998383595292969893585158730353065456849589540829315615164695685794084485723152251757815926341270565157658071268557581735740403365971236474870790397990437439014066710107325645019618761555202991792531867991400022831973435091820517730722789454565545939302748524215428814466674173424866752423456438728108056050325060025207912940219360130721280960528554100876254895531072418417815882965038753153926426706655223688037683282169419427476628870397913617630214232687366091219748952750893841601963648244423403409717582743540939674987174211372215131873377236742986247474189663547302907004260556931646695385427050818597850748657446596050682716369969589084567462859896480962621992875624805241448467406455905261136130678895472409368172693534585326986900178780582047119434218433982078325581460751518358208442352663060958001386697441802219221514410036555949678831740687791976916130614577713235566085863465703358389078261693212044549096323006096602445282713468943227379538442821434236050953608596493174666052222410664836226788423914581608931583527225918665603850862545242711878433073110230280748356852085743829650605143246604889395873458664013922575480217189425686580423618750283360711130954001986453644539156468446459325775840045241262526950344053466342235122160722922763327674641838620029287063761272314934531855613842540200336524643886778162753333349630680572258217443935265124102138347843085324306588799641086409791565372532022145924686054913912408281159060960248012628490389172361259115270334867419402574910676366230751566545562552950921042105619392267498042097723840224470704011922319073243440808072862027386177857093598947754708685774790541742879612971444476376901416174302935720616298164461077454507219418600554538299059214524010135900997255163198372915023577491104999104286774879373574357161941301626653759237137946608732977420146900250242810957661068316293499546962920931263756153448148879925324528888416624136919234023526530517890624182583183851474297393924634600922093237873980303437292359322042283549642490980622051651033659615779882360853519974671319228083870023150109042716820053424573305942351620105111554847950851789123892360075080763255478837368412001330680612611708962406093764176844192268783247331054080767952709579702105885162238329572626771486404367097284123684460144355222032720975919076740450473845995572088748117993639084259960973239449706071439023854757638825545912847830924562411326482317273446957680748845068889279830533830489230913811067628479397474244065865847241914314064302423942634536158181869902469396217588150246277039125746497673078324332094540965894688335760730218651498265716422159573088691573126567122975844206527980413789331195460220179064832361542361103475517995738232732160661553089678746769315616015886843773326529963061260949868831217677735761786420083939595058108098622991218193847278242068474726923813885644590751252183703716038299926168867019299706723534292691887502122872829573452733886715270736667026188370981676131725469105553320928441981463963870027424869274173951663087369822063188608393190703844086300897744457891057668389353287930964829668978386887126980166120126269223451624161091778762911341494104760572418363206710682277325178128312992517064696863955851850987587956029209582935789644076685306609846082316535589255164880671269071324012572934878003587865293122703964122088092635867756702374958073049336580311531778133068413739131186118438092436942818733886724341053584515634298493660136537578731822208733858985150338307005238123633265066190031516252207086613646572961223594843733662632194278293402951588304633133391288509786541886131074238532853789919836062782942691915001365786701879199367133232057037802257782216255774084192754069582398567697827561867367393448973782620846771258356815661538213860016597181846898256374397162430421342898183799262225657945289084640550597745153708185554981121101868832006649554294616654327352032253669682581662028944606620986501617171890764426778735901956703236431752971698185193519550103774945354364423411863633929891221223313662001651232887468497336312042653368426199985469167658408801667856087883575351903120631588272791695159731467714961790875376774615666061793862708966830291664645916310104523783791681125551506255527471278705339545559110538055793755441119181563416898175190286632317609537962446956877752144015850034992249466685604767953080718094049636214704140203499841187312984386549457786136351255162721060046931418640852238349105702924414627374273816863716567789340032175697203718694578839283293414734164637668263176797156590291603508753851288841904737729477865073214280456961136057107598800302115793451047704750085638121735979190855981817130791442452549400041609739898663107405379674511846682144576589282094219377206892178951095970713209650061582894236992957964254002054766924972562503295729072469581317727103789510399022818727951257969722169048720596344558155158790902798984331546602923526591929776109318639700931279104648829930318111774866891605805905589328096031766584993344494951561553911533014206605999279846770445536810657107039408008323474908684297187878170680803166244732209598961525322451864699221665293613829808828480551152552341532358731570490042771372194753571775745218187363573698059233304702767574490837540541153327825417014470790454571955833787230726821521131092455419441135564435850411446312167934860255346065170249574256448038810928883898959501672651714077636653320344858106388027024704636542488867446515660850439655576911664167421536067464846112052994038604190918513025456138281926786661585109671393857508787936480498483570024592722999503891575371773239151042644543396017336873391127904940358866655319169229146295888488540444637660585424360935778215111284558151641148819899007151378592359467379349191707004933816565006676958372275228579866637606973050958096258255766017072170405704060010464703801467158604007504345388330929884758002105058488934125553246239412959007997453157139660698081891449313292312989215244255796973583161733444818936886779163345164772692667460670908810444353623379604946569132315155901294794524983131561500926880798053676791873392681552820191122595353931296430708759797112013017005317938351452820181436164590919628498132689693291506622180553217265354782776086004458919998098281768866368955642807707418477028434642199840532002237279824668932439813745187241566284214744905927398303345438541226034747861641006314713781071311764446742511325218831763871251458380681443895601085633728797401440199570579830849164536958552717467026595018155472334942210896726312782860024880773682534727709031014104779585754236231567327148494770901163330389113818406935765227950608502144856047839217309471706549262106064505826019012703639268510931708143519139938149981433068743375351704738358974652326036201033490079058724903175959980382404128552967973003128533615024313905437070655702028940743030533438652983248125090818455343080126780425596296368289006369177180009243693089231869024117368611670467127829448516172760302310634497573439055224994315854430954898573090725115296956889239647091520231188761600245681254746646583421837455611153983266735092609126003732221098359024246655652250433674393142440199654652092882854052509063485619329085196245825453278992244169782132729223127964702580814350587632977162097796484254249507555502687794737558862506418938586834829025856309041838870399507640131029211645201744315728336927943269279204083647298854906643995102315994046108506519309686785954881003160463410302760616791663817296006704643127695544866629076754383002088088169168946818815734624830548334379964986961602468513234704110568609187644990134912939057973743948337073236250493845581502019066839751907341288149290859839544453719588160280651029804509733681569012059290917207040807782181689292819617632568461653855436746404081308432250942672965778311511575433393873634261999527959191444368693810556965472800873173700474434475929639415166384928233931594762444899530154015971807459922263243274086096479770441450062128824539112731754365217574343154567763871347686572248875463328523168197905113195167058426526033505697115973160539027144225463479470352815718588548873300529160639565183493884085504705303157502373952491236189493788984507843645330931246659774458465293852697979859885992515283419960241876751156782269802806524163138314481878836800066421831424218524516563631297410107722584924047966598461071236349126331950373519542793978635844570501323959879442146034382697470317053893827611851751254231191735631858888510394514237251027457019144787190491414369614116538236286957605739298465732165603336338087853200527257503970559131660497551638640978402339849409664522273831228124338019703125465852201453094030163077945308988110693045106178401313656132838312395102383454301991395848777696363806790106678462080471695759006307069203315329051953815221424395763202933173610572500444235995449239185520276566610679590442501407997365436735592775630122393351355292809949771068399260710941507871034192863714527719604736513538549548410355634711694874725076859763176078425891025327193697655064148032590946358257342987065093561196643335828991357419441193955298748011142037181029479285155229193010363740591931602148926679252428038485238419984564462105795345754775953642132404028426367437528299588105263195194070358212434315225983299591317331763939218263092413639269904093738562774952408645368251370249923307320612004032750032835092833468258909909953002409765942265628184650791842991710906864883621681946990699256170696307863294974487142067141230491153086266979515404933072563241592691509254134750835868264903026300847537529272439857570191630238706297379937746213248642932481310726354421117049776118693874838859097412075172316720590304046955754328001090485811070489073073132714254807744051179134945926707584968715789537845859103624316945873156090516439959333693987913638428274050328012207940344264324305913954744171630986450362771283886147951614851442591685973639867075632140264056668423829241762839125444557494166807629059682498417557596433017907605226411008945677017566719514772934665175661082044190438416320977484883499427061157776676395323241436578163432223694880572048583441204516867786909007959977891473921892969155706645449822257961577272046487710251549632057409238040805452729691474847468791249694371623842574430862190474822309496237758388101958268461523173134499350700425352568865663710143799645569319246437492380231489667677797078679022929601940122746907692829545614428330834943296130568575087221157369635155286015376859037297767131000582713680640655135211298913013680590247624329514162124019839373061323450100883072133996447809737977848551481854511405850844285148353276263151964920015320580734252779357203853490025648402919607757222018242479530075202706089470964482994948678359444262302694169302758138060063969427761687413322131002731800535526396871597463668439720743080967919214871791832354574480087885625958563571664708112911408995331116604211075167995870406890758029512742050190544807284590929539160774990636139207166297450387497314163531473292248369575896737210312959415921314970542891030420924941437402649014611900941381426309880477235950621269360986632730120818424946698929874071265910060654528892731614419332174334458608369260339568968103915122613100260384635924387663593022968034853923351751894667481940876043328198258924793353656818139647094713179555961140727805241227555976501277163126172853502067041204385698695579760303478812509172984860687060425199768348312948064983247890367878149064312527352809936787876650694863976643855494891276598288581346017063222780228816971273598739444305921232667662840150666309856182347783050338472718496935569212577629888853064004227856631096296762454391085593243640284807824669475027532330591052240585699360600584647386354278526361609637236059307452726483486371381033790067423996742374525403885284234751977749709998582977462406028027168976936820954839496637488183769226081100054199509789987983426901804136398546497735326125753547789353849074210140455652514428085255776710215095683702899792643454870516436753221320722919818721146832072212116424266909643256367743947962687785322171143282695029308413201167600083257775522648366326722375856117928371738606264987577479430930091828420845342593922870353333199994580550545045824402661819326192951655587428504653847664218400505953304780305674031222408151159772538922680167469913420250230581311981054636909532629771141201887028790894244855759904609544051618465773106114359750581458387005077517114874946073639846002776217029851618831474691715750754364123360256795035757892422005807069303870069832758057772044087710721224066055105939330651926847880706245902609992749233961521316659260096418363525538675715389284250930623607358964641162432906986570503331855800114753253730346234348217047353789301506246240784604178999623464131867244928763678149766628500312783842446847037240598434021386725083278920280229503757632432017239989505247860091910945721407733670688866997883199387841175880721065770357851193410864739250286226528865707952862279135126608535438756155394717379636708134248605701095979740180197192101939269958713650665491136694223607558633236533887939119019085701593348305834249385821818761847684202562386445501246994295365142107457652120026727548029683686311742509028015999374222851865636003472826047208963120356125241424746829076924335076031088075788740839627723179437987273582261325919135419903935056667065021425145617352985963003348625014168707703031646256953318728518897765963995254445781798332855783160771394680922709354511606821617185817529992849334435054819602746011819265018173037536559505023041026952715740254715363050630949966347064245471915229400290562963104652483435017026326348160149550668326072130004218672298058800316097566882281364832769687225937597727579295330065564633239270267038298041054530804086885041507927201360066755980403624013857957160359347731330416813253724156684842980643045997842082548972432361437300969891440261041851455972069533584531694785086564821754267898435416631225865114958707492853825553064489474017675118547523363796041241716221236067659551271439402861317568051465277909038324475154862949789030673410153809279095100034972982578545547730294607770980705722510617230949545694507213491867320753253458820969039752159189366695089050237732941778797537454297299265940209490107836250828253194322702264919595357676198062025074555090967190453965753058621140267036384070304179141629147904357834434706829276112483660028419584619428546939450606462647629943839826773960652754164741250499260949170366870072270678420453025635167828455369343118168834123775205127831396820956801977097594867611331282219208234801103003373343206058820027207248047274568534354257750840539303483149126350077904707472842050544666220649812174025239658662860219662618460718837123337326994506975374751035380453328445164391619336641404052526711274964506982236032278911357764474117883657843982017405583609764029050588415997492769166874843522645374825656046420678989876362768304448836030844378852622802640694529484010953202876005870809868191897947038941773062452748393188797626869557666024089067624634902061570495541855249178012150461618359479501945353613188429292172854486911309309876263246688344138496392840923373600139839353898818709917680793269012248320958206171001159880327654681654518649594564109366083976017110379204020994971137702602982124467811880348209376658342991404137062854033099005091830270832191428665968042127228833441663958049949482786855536769149855688544866907241737193648247510451697018250202120806040455252718107283280073291031339891810816411416572559555951082316791423384073855606059710815342835269557835478503446626521343213708236669686921772129883175042209356513195656579439434411365666420523154235079270946936091913651064602834308505942783273711312902160562568233874881637462703386024821844789881234067642864429104927776320619182433846598133262397554635578681534953227208844630383126756105070215284652018231332316983964780326993685675674920929237376765422770021951161043041977514992935265241634901558336259600635766248079366019870435720635788472299222924888106061804860048282902399275621248172219820128384395536683075299896542726857781013129211907057065667185946960381467745798424555934276252951602054000215900531493189080773521233627720019900434023332284124888089192610047899756479933145152852224296840125291369862864648594370226581773101343875246674954076151107105428395248782168242397878451426311808396596738390930056222143936065356886677907845417349503637557485443489309515312063139432035274961032063355781551454597541490742244075758806471876924397892559091873917450964363098083492144564763217610282041012617299777007277398665449290529623481700734150506286813040800495392797216649557330540853279775997339793211065274086852674054203199143150606516876037815156060599727483063214281648547259530922783972347379763848502250080176184444095210421515444901952465462938678374373026479236036190832699888687389631031497730197321380468740064093638820260469701892755454377882976051783670744950010557564505411451078956327853090926853128411066052951691568485364658706629063003348916559007845424400868350054936750146123252189841857383997232555519774440911237601350758741841814647346346739825682478236400953128084820318705800670451491077672378506280099697650566859126974157892283096843143289787749851928709014944638455916435475320981528343442130042458399787751570690636964894511620279608605070050700220492127938674787677085083772281394255006257739382731825180041591416698467174193292062830702900047331652547244299769280724000076067879777749608196836296642046907367550333367558396465777205317047253567744294830951778577315799648562673680994410330912399221432552536104710349592287604229125896513517884765577663308834855491166028631355645849318343964637035377276835161847129229095392662208200668799244949425724963413942030472285693035776878562277127580151481280667915918906562600639399776773963912612642197851205252199873261295195327507567026941057770287999726909594744310072812192599446684053001566813366759318864931870860912319491464219756942012899636708683657901399757331440592900104651472361980683058416265187884151708852783595725274086974306447001366975241592934282926367442491099887943408146079450967349939877097374725755910637946728182725300178656480260327683980753922353863684245575230496336038942858373755131751252270574439969042493388881410054600183799819926128782340703990226184567167514249692917753091146330444156422896630709820811596694985156939031725188492783250847298554247894445341999964656158739335754536612705983011946726105261960607817685806704459052267924038709105992753135579767473757386571010729119494806084637251599715659843196295152879987986913874667266913776451894496000561732905887409976032794219149943960958199740209232060934062298835011267537979321425736860891519441088657838291520402040360323920354540218529721607517634197274071296567984161994842825542303963679119043719524181541312361378115778739231423414101704077760698998612806368124326978852053851760861177102938356603637578254479816189969263319411412624450210417405379088040573402715752981620578721384921975819624492327874021433936672935183236984431967772802392319930541686330229939799812459323444383866620033125107069038004764825861929755144348898403765909052938993899121921315868214197322585983184366460531763557485454507642437959671257518258575705298973248212067414773322128070377772234258986768804686029737740405465196555878856759391896557723189215489874633283525681031388004590230285333428936634741683217529730129307288272938810983890782432908125442079173852707570702907087039307774952554958952236346378224874049419789142985656787031399300176546373536012050890863948343451312512054764523108665515615449979178814590122717314033458807437812315518874460091577179525718611451813701369931753573773258802427186306945335799766611540822730427483731967669441684312422885372465107148938065469374730637055912061505542417553281035086661249376528540873314653242934134196614516817794980278391354205522196394921470370936707891288115652817469239731671477731474121447723873006258174346240290086131842421617983600087599712773891919845761624485996418705009046560331079855266118948942082461867295747436078704031649204832168448622239217240900019273707568335048973882687388859655040075822523700888022136817143933214335906160208298085040970306007788147407326181078485394730773616086725843818956749799344512052709437830531864063333839867991210801197419448692929288887751926648924289243786702243791748697916090105538573363196627323640234599808435050457332390928989904474860731532739838026856972471660838400222746420293481395037350557743234440769375627605554388665246562429845125367582883931333018356265457814017044923094231741660337257277822541638494727421549995288627666456402021227414023985877555488479978158810047511833999602737385393154250000246097904875927327877334573449303891983446624306653333562045045208798427252757895470845473628515518175029571099787403869081599315394172289718310170904531915486777884487189681426190692482436691247516657945974644078516174987633979342639756141216155889632061183954058462413388750771687674301571313587916581510426924515919902047962197142057953466218795918913985864562732423263075828881678330098386672331697025192005057765041751916429832532385089944503937219192822015734704592617577363596485209525242527255622013943425783076045330853949178576495445570868600580067549417714480435921326221109027479655693436035118224096278825517196349958083132222201206465334724363196506116549131096201906400146415780226916255840696855184175009904145629079785912463324539168438167898232516880654802630496115174677398766884408910374747051094042422580035292576294482199209083300143715352288214564994705302080933167463054832019032722828978779131024134204922894154548164200667723874905285733252037899916045231789515278082349303941140863510762106883811910574110081192604185421899255533319829818272950036628586533533021999869786644583434980766661398930276688309194175386128145081191740824215645009776181727558941574655651134460465254201555719235439874959513915108723375399551679883299856954725543097308706341850487069985765455869205843452213290655916211240831602710093479291061042825654254269188116622865488974567505146417626242299962540403511698152923549283670277250152515976255335302482949948484383812908861243104351642225016911205609073650212047937137595014900777370132843446013797069774288003271527213295373602735464604829665199816523859416080816565287633875086319773873915184724695254987002182252920196237880704691774767041711011885590463826570477086983110378998291752750205132816449214090423991560959655787153908759494991499582211533529425642964021729219216608963825540995155996797527280697392097102561880799961376182854607098724198814370656433757074252479742305429064783811204123265749298252021618853382283235461154644706623136540787300152606359935298410234181686559259300389401373771032283779783601861473172331073633958980742929258574194438230917072398851692795403516823647321308799034747378217108932061943564023845630867083421315604626087818524617969093238371709518327950221664656956667432052202289729274883807853128458958142212116563983416641441663143864011228344028721502199559515461787315979352815532857300558574165847016514778439211750398296528691411130108161458498272491733378825321221175928325388786104290179519472304589432902997653280651601905081368481730559728406038525681545015590677268982255258712652387299576196179456430510473736864450173930370839042720778414908292669216111777837750621708868346424442647196526838012933007837392543859756378948179484864365569037848213034547332521783301819817017739187666760762901965112312299531517401149471943689024115462788262735437658724794173542528257794025086309832645450290296205314561749001832358482807657760770918047970323512994435587700562360492953814808977489763911147017761139852283300621307882474414981929214418556916789449997791134893398361680925631891496609411187460237354893029926360965413493990621036673663270435568023473189089996383555191352277050335004307289609177549826225756758824122542924835691382260526933480706258455652028729061531931372550862481249168112597433195861729917658023470404022315821257739347989195258829806581848963962954380276904916571126430047566614225660389291990860070525609048590187969084653308599316722544215201911896106941477528743303575027626340391543136592731248323016508740093309646744327549187741327900932266658331907667853379826547177248596310243921328233722227096234545234307467681951755457583863956757977307208543999115091133694292324256762976132694893491053583978796177205224098872661359179649042912572127520542182314760971384939936653886295274384822021751258513305129474888655372096512002205591480013821712852980061811047587993504460443808386200337291145696151340750457373136933389016827144438770838073681998058840695486905377922414054181123498345795720158674443449460970552128824954046363831315550654611156742025817051054881591993043072702161878321381591212934401812278331256215619430730756123124579199338664850924861626392234674477126377174947630308491532717567790060086236190728923687218330785745060711230620391776000359177924786664958344612444950609243166326057764343285879578215185537316416573607379265426140636274149649079432335188883980384143952961626141760150113311649311153075075061757418075190543526864172969702378200641337337376343433524496790664577444188217320607312627743593906668870254824505627678021486323293971804529802192455070531977993338788878294436480575045099376716627423183773081523396458274088022410859047755854680812797088380161808611021090579027795144049057984624083871811836001633263020502175699411233116996881308513180553075430793938475404452636746660678712606127593576811452145687830887808143238702480316071227986071297184828592908781512257446183960597446717820455205090190459541922235889469279282589726152275175161208871215561051599577833882545434606185228388100639824849592710001104760605652540283661677879279054920250668155434984326570695758545876035101976620743503765626743027529699780773009618463561996531983333098344976427216344774050239508216691287658056755329280819313645630917796355954415570971469618259292110229553105805806186579511031438556193471755705884012915992336920163133184377160115668137273326603112960945315776863575448199185323886336912924655488416776146855338741530613622413042931744762838054063031186348922620073928138748853404325602412551845755052035684381380704216457596391195310300002440548225142920131434272667197155280416064578412954046236254842502570265972720187872316401777846871651659211643334314326150751979678301315057482589274568093369802021970901107197047923109509798632463655458437399074599593927962410959015278836772020681051208735195315197537285204985823265609597091520821338436393423921536157111367911216944319083071122150159755253827925224805009949401444773436639004023004017391173894337010349358295935332586284114265109736428681794305839993037698840592463817052806222765048436500413611939607713038525137474313847610193214359701583666897294202917826218492735026800484372096535646196790403960793081370220190803169069188646740382343170951109031234059200858884166036890895618611621839646203098725595937523361618742767986189782310614353817601075634631434175088343243615451895716671995929012745743781384065409203848248117607277417858058610676114458694137384900703944925037575465853612595331996377903272233684340907701784705332855630831109520767801379872875273998196109371230066099292715648792992457970717479820924930178183470413100189376000965500843310671262284543277027997831317916765116404034471842074818553889754802132749847318346158253664483452675832782530708600960978429143761477582885810107750238885888313586749877790601966616513324888622621429949599491070041554692849039091763020634973213620501464505081583153260797157479957918049983559177031070611498125897000268642695278309020905563585509691855866456655511498872182704435468463353874894471420708598159009775773595332174166120294691203458228740851520101377751703583156991654506427315860861431926395597048129150994679376564732385312732172732956188704120742328847930279464339339333093318250144916693310626159520688719605775375237994081791046984227502453406323787916834043761911139750719854790303397331819819635282779921695224850129033098751434519069303920115796025142887887666658519122047767054103693745112825455078625026643225945680077154143159029869255079357352718865837664887081724299829073705928386090786811662785394663892527598934538059332600892141940241549338686420999898998500499237057843845319249734697862560011840855584838016133943929954267237891157886501763332685991790643678270566596141204664687854672960432075744962820075941154641760888052473385185977182303585651770861228734635674081932470798237107800567572543614249397762609203551137677289708355082054113496668745037508246298490393365846868950666474644618425080569824984795066549257270314066397282533648436794501923420908738423009516258880978138533179109532135079446246282438809887354037665421563332549483954632143769875316882047019781947885758844134394785192561257226675850159928345351039830222949688614187138731932116328534743078517688380503258873053208145593860061838605437376350536734020860716874144231598438220900874370704698270702829018785444214584801659809413703009315908000226806944559386709161773412563825568524237680340524756172377169109540468569492352503914341379422487439020457679067457274143392427816511360792987530841129293180889686188130413969963628466531404069435523929988347824784540266714509664367716115075093207138520808105876830248504021462979003909223454668305325477781763948865452756900256879369709783073836175836309281052376402347155348231867185344396576936395696774805680575777903181706488325463847448257824730779781409031627386613212115477292598033669302989368544690531105739611035800941033500389581986289396117066919886982319891767073628522958932431678844324093343640643831371071418367294981245506724214915516047227116357262919728247376109333831327548961638058515056843164714662131133619014408122827355212408958272086378679605442796347879601851726090907854084435995933347659390218375699038420484237536721426425568243278179146237537125867675791952878643183212715332072270362605210371232593293567706885493550333881227161400976918963506276492234547633008227985115519018809064966933328824451419725561047969515635317430534946335254139625087896022279143161232693363841712227423301212681380997256714716247838993719686344872804892984757333605514951556541277806218620050310413183867836397399632338325932693659949757929790435583889230116375993595088084923304877965601483733659382796886652441308973703857030587216154119232584647216108938537956891917509800639120338514393193140133411098574592023761858944862038519644183418031440713837637090889571661275255659391339773710555792706027848412569053844894593429508793282728919163296914108651351379066025111957118044894359904411347312334311744765368753114206485580237244760941907245290566769991988900913396842658427823325084083046828782549070284200389842945301750488648773094472311854626232342310514748515305526712408380600996836708072905157577869702527218167153234990086860699381832327395376327992371523773048549694251083705224702373810848104209453657318553754773175669549589469235831695217976105428408404095459930970876188800318359719366427887714524587114265831156141115856035661226832184715639886565159108754699564390270336559001977372842359877344822609307550694612244347548430995160358710463371062494323289484527532808489477970851105000297738142450941316838955974830200736211789850050931042478004531123128940417516054534161782529869369485761639008548662246738795000042450323464169795230308334500898345801558047267645079632629754197662023568120049352343341028275254688889612896379189638433219934980476173719797217393934128531412950730488560376096161842104218751630762248978100761623357652096579842365615131470018938418354855939744980974828662190143814601577240981449342563666499592053415827893848386170444996704585662015000391771078914023507232728978340651438691809697058782115035300510485039930030417772348859628627480498211643574091130031037649536194055211410283877963033967576121079006752786680071406657467540273843163039212393772327528145576560726067220133884135125475727252535659437297470149781360475116588828770762924903166618961101067242190228435161827811484144437801207977318314967138320771902609351246668924233911925448714430154581590596547268103589690146270864842851299043038944121974091874774363981719451347107921605040881454095994737562270625417857767376939773001019786617287954400947092249520667735430791674275307630133033160483009569571085575251361072938285955343876146524603365611906075266618832556671264792163544158568011348402748513481612384596638493028483104596455579921038247245793109712874488308970015526147799371091695929262610893010297492557978032353809280928538918673590734157012842997288272722438374265883577985178335673313787303988037208736553485509502320734655402886077907923436624348301470784737006924554293869670785023232363002103237108682240623607339958220946876626805100202975120967777343320185115165923286232870078414926546980926972167333986532185105662634728493976774739580232892328222704175840218993588365539651417802204872774516778121392943310281402488941127668772797024164946471149472276369342525746834726248119981785830100378517870166073261920541384286408799330039853186477369108485395781609948288323613546326351376510354938828700210903161755836480165643094357779152369190199564002389581943552586987300103131193344135350201911189735905495935808379521814736357685262726076812205884364000457969187354027615286473193740228122236311755783813218788918441111843340014597163198034401118868145116787715324175765566696212148082366111743828335529174023846500414116437666380910246209567206501064432279852200858451869241177535472926198067732099294258248875358926531436777530945515665603394285322286591172051513953236808548850749162103759725174726273457223034611827104959066969250608513322546868594546398044899365915638004536011336373509692387038623488400401628138857636580983656503176711864145922004109511348822759466317815859198654572252536543765648798801757450483384193000668574862821303700262428666830356929384160179258241986976829105480012217238064636061438616718916465509314466859645162031071294752647441342381216727094117521192465803454218975039349535784230708177395451261699821781054949229915430289643434397967977719309830417408695335333380204024112885489425604864174560645117066825560799324305053123192382467654558061539843449008697044940231731660352862325354077232436370325296844602111148316414761564373090397836516936749536213721940428680027885785205024791191200714600070521744827831436285790974370762490939244972077117466985309102694124376144628306713153550269299213901420854975992979660722648787262646217952554400822813138059276548865899493623897861515115384061081096316092448600314307267473762938591232041295458643204219173913270092749852172627653213833312055518419758613948553094995581095901908241680408537587935742221994701297968495041935129500770165067270735995044454502619020926716125847586522957023739893722741822921200380496194183202528815564596534359281874441865963157780303953155716350441777493867735910031639934332997519664677674668338461105789003084883184354452113188713634761335797841959680362870220878007850183917889071463479434833756917845152188843727587529987251401468464633747054978577551920228192999380133304459954767109916619405679271210670602500973668503308217292543004385709508505403173223163036402371145413794482981477214730898925623086806792171485803855343949005231271641890532528371039204579120111863419999218622281853419971021097030033945368953021040142086264778182206761189706925859929171543469540320961833211625215302626695483137842210776572698558532820412041467019313791740357126225449905967701075628522589726352360191451210741684110395920229366488846499418627326632963391282517396704031243780881056796285607151489311573613524177277775447459051564193830585874521260491507449292343209557630415119650486842862429363508864175031998039343304387758569261177448881492075855224142377345110516897185536844548286961117503136328948928092038628522323961550994547289937343787551024576867622444728962027031626046079282860030224042210996658344683204720948591056216813584874333872781679346532750906912043935562542412368204346290319193455738538912567317830979112775918919745215357923932575764118240288644819491293233506727422885222691077286131485645024925641572161914484667105852785545948765410091840988513693906696165707980237210980844397661395780461159796825236157951041608009259864270389766113530342690310300667298305822144662157500114696719501261029917947115786422016406715074959848389375182166016641766562161283154090955237240684824655473754175730229852066934284917130464925361234164613703321568263901617643929560978995404363209883054987820326060925347738186052763426225510655984112401766995958851012726737187286030072215468648554329752016209686518208077191751850972380163935656021651763705149255233273180110596921661782043050598011818016923155969120500356837996562851533492165339084241195626895942639364612033958646677721151168563871964444670538991820810241112398335911290771343444295352207803344517076497943531363694530819875373333340890213995153171822083630724416572990166857779426629802414355330129196789799447390433982221500300932393131010611211761937530490938170083880015131988056173966029806873990030659644818244944896679352426083198798063846320305337385622646844737566443501533088310878792624628939000410943609558556942775714095031196500277649869766063014020984836090162320816507568960983459291427927314473899070280519218355602530560014911666533582007123557677832719993657782314898135889010115353666735083787942953856126110517129859377146714065792220993196086288603355004767178641181194096653736695328454813051431472463648124528970173474473275138885958706696625963213197703122249942590136771573713008024884451667045201927092688718368881567430041136366842928919262585973111344861960584084726147828182613920303814946816975583340184937897268438898592497162406710059006417039040007231255995127109140281751982247334429373374117206604818044185682865966018218204550182835445452610118242242532541613687334575261240092788755659546815720409395925238308890023965130536095061766386047006681199322868258192358481001077725115326645429476892034870019852116042430637934120982845128709144367098396507355561920610692287346972357463482272897214566698843478343703910568550587278390169274189356826466344490888285245777704449318013077583599906962730002130481402152201359034650071048074231916375489562370570625877647339352230659588573933853825035064678411208739219985888865491992496892510083285899533736199943222866631605553838965649722114869160380955007618996146707067881811836172458905067801788828757680173292450964697157652585352592524709977108831854402355464160706478026354235980988702877382232090554059660303453466160959247277135345221394037776913549960182077317692162053214464661994704788492696823008032214644626714855000948910800119708467392291981472697671016290216727476038454687931665507595585334388718106415261071064779992875918357219679843025415406049400372314051152336153580765160504445602587729857599767410331661150923266364866022481883222098372101253038448687956072816289879270008473236819606590595719650321769398515712456769273520677149283710060888169921615733205844417346336285520054032112503233188532709605349719595476285060331927821384943247731776382553908082481065989563057193583226542139168480486708367327082172510986191981529608726628216984666976637965024540875646425405463957094039767730462577162944650823013061111670754814810739887875024709577784231148034613690472639533072373691102137979244902629789813138062665423423458000308960676570071257106297933007742073261380531658514047156802537150191312026817348348505956560409564189884596784647209819441382473530354063465412260223277114478649027033688093212277221024887791737121444784461530785062740324244644626595922897550730895137205494970641544528490463978790932453825384489302270817025526805850557119416290602979754820779798161492629798750228289293655223141055781951445358384297350662347826921466736441056489301205350766376769297360074915221663402229624076662452325322227314699762950871056844193583437143624554375712218024052441236739551064809434132663721041992742133927796463724113551331657687960231881608281537592801015562186511905476610482197293936772071957291106147597214722996907638254035083595122388666100905952289821284228950124494192533980248423228442293716445934817744380102209663030032942480176730502435103217224088720665591796583427611353722571228534778593929260354944253844995193305612488963210760007469422140132231062719933735662052198813920918950659186339174679031554199282709081491127862323398514450624108237006511366836721784879867357250785566163847671525421488375440785048067710799739363699008364228134023737699381904966759175383619659897147510512387299473244630054566258081818089170327293245809878632755438118956588727870951795253291580789222528330818948045561768427914246311759187202336873119245877015448110770974804609267247526822830254797338752646456103232699707267176012452557391797344572350868570998777315918334062828371909718168753019005990312795799033768885688119940122858111323586520820005896954807209256059384103578527949839565042471565708524373615106468329145781902306502852389281056022804456163359648087350549796740397580792915236300837308194950848587623453411795566474912815801485212516352703404353907597553153663821686528162109832231034252557832892134891182203403724944578657534320688944676549579752142555070936050901746591424593865815972448516576396973298126422728553273911677888399126936521595188187641191180365897026011342309187282541339233934230390956948861375898922368176182106148637106749414956363854118725998339453748090687536868471039116514710065150339366752308829419209088056703393124261776088491113514547251927197896890434324458381431291032776194390604002935875557115359623380480987167000603374388674755339392194659538721461686864552191242639832067655160877871929674560877182836452970966576324545303358474194299164083817270965480872729283444892003269975014795508065603435032388170919012176905126536959809180413753966577421832574668305572624203937570208798452972235468992519519391863635351690762128982042540460775572221405172232212977454491213178716931739027990749162154818486374265019456545835938056651041080803819495130028413045842703466081209845071717196991601607333950675710115075872656316486636037678227050514613193194554899643089664672630029561629738927546576229631934806455672972822022925110138629440641311421738815331496278512526499349426322414134044779629266580577693937198497465303695460270661679908905546549256804186283443982752046439079318256389372019689617930354351393505790243806308029759467363915426003263463549748800934295358551313098188029488488919346455372585197018320528951434108331154036799501552020298890434320365714929562745510472209293605324424084858401322564970665068712653554331103272696507313584970393695269077382051616430955432140417947104787089669144275741299635679662091325204992454204429175155307317873864976334644365661699263985500372633863912505583193764599556953039124163751575122140646135015280216999894604429758543557981891539033211123768741202281656380644085274578081985412609351348592007324463122067203297829809698853872323719841143637873323550417638949701681922672396742016031782063578142073541536404087726104174368745156690083604494345811968935395199464869556348159839832114918162191329457872281629619074535704141737640883226866318566340727689261873039852627788460474191166894198640203438508188846918120913022975119351123161071784677337082169388622567047704005703135263605357652919521748049717188978414122897614224500851284477403886929859971952004533851203130081413647816489222087100662088555050520563535730101697888268986748016857696703478241662890760621096420399556728995210769141796980263429379304001555901558408627375868407526233348085847946494151950472353236814284869174738098539799258294571058022203295149029299579872255164835346813980842740592148902213775402009208873463368188307327212697186822242039138263368876703856269144470672019363327989847445241232724888528622940047591252125996717214640009617449145489718566623167390923527496493946555908599281208288919458664564788025040034791768592632623031896739383777439147906649726237480059277197508901546454003219267118781006962685680443183234320796051651776976474640477386546310382640690737025065625079987367606315525144439760524205441666919446465589527079876858450602144938166376220766350046164003542729798276223307899426053495228895348282820167999852800945959357269526685622586124861633613453497577100077558552643409025520194556005818395505381568531985521182225627387412119885521053627875139068691523106172501098244703280420354059987306558173545550906026366672231263407359659934814819033627648989295594885102199339241987735335171130552382715163362340458793263569933519900757376328087749322757517394544450276984355705889480034345965598004769292958345454210158770756211839139442994284914759039622763229356371552493479901041433280174532605767681537206122491194748452510382994145525702385319230260684430803567847644269457654718061294278435545020272835619951334039550765030969775700826471859355658460748985131798975201736748289427356486729325335512883454245369433385440502392281361505330683360457234989017890529476863143081531770883802362500157226325969957972802432261482367059389666507876398709063356606983077764321295741846521672677879737310062807734812516594806845792836883955715086316186325601753883966127497184839358970380758338316935516287029977340303042844630957523138270277567980985539899008045184707733579233500752607116973466475355426319997225067742823468806166687068026755434797622739997700341980135645370809058810956145217259958087516682177662390581368029042950055561075735032285411480352814418057068714346871948760897361647402528179395229502588555883288292881057246274747282376785505765888848710298534080001326789635898238860525849850072057016831649332848299316268480609920187544783516892055966527833187565530860218962917294012116825127904437960901364508218924913384460801812872401907255459633682796968476815077912087293162087295418879686661178242069149553401866298239814458409104557732982415283889898326226661093479896883820991298637255482141310621874273066946375870918556943958095513892431286092839478392170317194060735561967710485107170705228928593430706995515686421107384311623580542356772703036084467383927824829767736644257628471527862920440594156372423065007215124465084921940358714488130995410880463282208556113301779663830446135900912562508959258879639672395033579839598938348687989017089296418380296898990114308542435895010290300128602324881411264310657429621241999978766664733182666765950007089294762348569338327652985155103346854905925852639656755487572236810710085105861900922225886942692220022482347764005748217304041664727506538851480819112639437276984837972294602100039813721587834873820388878010904754388609334227834853301645627429012433380933700334498601588244470943579120535105659156887433359226664405085564369132904009424547766473261665386357853376101156641946183516907899575227254753301867632821370293224225870916217268878097877326813159040375927050170814561003520959928369195750235691006902518960833903409300266471522240080735161108081429479500982706665295187037592062624997170984159373315887695998171618385515597207604148078219992968673170365484115925406269649029868569209794723343956468516221076149230846596779316120541792239526067770979181708571209454975101641154768248323180661290245095339676950169564768662715280266888101497794207158272094635065643071137430642056963087677384935546935256370262386067954760487299883654759509991187606179483813756254178583021063070144629281135066973960699423118385706571807148620698331871620016616659972483388507013862799870312713994937322285918095828212339383592781742531441237245095088939001216901178096067044422667833516080997777411177663799637644543265063092802558856873942597546702440562592072527722152512058783371009826101234234629614772856262999828625395956275120582633689221865855955629965121060329236804156958240590202234534199289585216353374408793257596770541856609305415556586354627256163016530051071421709621909973362172778172038077594894642854020206665825825090001533600389513210423592132706751578300786488917499721136847088014405495181522350515363617959280324011590543564398627452678715763968321963647235016294174073279401396688213803894707700463944330672384522624915527171072291746457585143791361377389633586407673149704825282988412897815296823928078211070078283206810684021884518124006672641564312839855733638827014401115560694136179853033667702709006984863113320198809325201159443240232713411705261377583533454288083702042837921561552511917559575460526515084346802351824229273230822958898258394714964265758363470954226924425957843054716092883171078125356419230419285736927579565500532587001993694194248180334609587535408009645474226656034628041180845020490133291018385626072720612417492072889672673076313516003850534866758492483580902118048540955630087134953313911546226087338808909183960022764445758740614355011898585595304569115428601809343228847813369155081515440649956016038167519055613151149759344682270504709173912684375562956568928404943559947429365937860027369629308785269927973037209340914402241668426077649403503761815084145291638560338298786728570658799662771133680725722573027643319331123813767532759366214735208026112237331717264912901898590613514394853644762364250820706792059672854762725363016081842300218225417038491653570507938621683401765691358836560672568725300702861136260968155739691896269736282371445468714330872533326909092962917977373051272343398422777927072882567541050900843258167411659285352019053579397395878829462797587971086202833432383318822612792471266005096621021674739088280888392872579949357626198108435825609865540222449105246465626174976564965400246388464754057548739495827503006712121325219390676273774316842983438947179913527856279879344310725836677195912734643237777806683576000728536430453646627153629146859058001969584565169501745627914213979806324662863825852659582795794410887464727779337798143330499813198886434789096029743923915586190115067764444652029261022979205060233330202275323532215017253566262294836788081737582875424589512761776368987119870903900498509649064925423768735287146312184311803240636003676975113253945555794992686154642358773593667240707692249539432095759395064100272931858061036169843633425049740349764651840179056741755912941382887008418144243841690949238840590446215491809118074472119920368708548518166998653712663250712227728826635051912161462581018960055939927367973183092004705550482476018954133969084446229565018190367389545409465506254660131649312970067674785595557316424978438487821804298456865571028834645569037849585880604294662665992101048528271011972499421821722712659916643029903618414112032534072929168268456554666067636101107670563606046779166818362360154812253442166395683931648562367546247634257261116317276973972467974289435532451560260307128267525826803464596441646763819773680965547680090847931439091058719302627595473844470711501197536451745899142471237541085308549408171311876436045626611803983291759405273752210101520062265945707701237135797581316114817815749002659393816502638986683845273427064048436586978818577203452052100535149678483802691987348913625568370033454897043734731960606741035264396425486946439572725850351757794928652855411326017940795709554263008082079238185077654846960146428564668439597729533715192159141162395734675207819147311701454054534327547219261415523771701361816629538044058356750317282538947503492816330723392078166120343490690503256215359552211245399979123874384135468937189586803161568125578725056762755392029476340626940125351363910333434130669247361807716059704525814718108573669880096390570906927539460829864010773978533973285749635416857413107977782955149578878074705565707948682537849955397871098253194910458652169468131335411836440340975154737998521766852252894826212740903930946353311102405487573627551032684377386890763722403339132950633120217204574599352286166487585504004507176308123558123242922859402704113294680012037805815497172590177637927174583515716675163582633423831651688067950057903520481155166727188094334596930718302267319518138693965724997950038877751552422587684904558216292216125386960275118963027088210884626652576291659777069876969192968429386366412984460824028790471334886172651842641872005423612737824883719423147448912378150706846561606746337139699543439366276268195681392890430488394897385628041531103643203273805289112868066256415074768785451851808239220062043304915806758626655026635424746366933444619017068062417437222443950126208725764823647148493630881901189570794737077605129964056294151253950199171729145761215154939959809927984709850839322637935325169120731323860118289380995547757471827898963750920830608174235845515823435878006233485902226686314543298228336133472408832005785296049319521239742016347904407117883408730838620076080581350818625599103318971284943135201417560114926581995321742291574799607461547836979499333913285205085066312254587915078225046167313208775859255454218663507166371730917997884086838870155555227275772818192447889964166001343854557430341906982987765113212510258573642235683259329641824454253461967341326006512569162438968690807103327712335460182917930856144767492935214202669804936613588387225698132541752950709305054405084597988134758040526221577903468823994241210833678146841707896819244721607591029101427729015408599747421346981030525103635157964472538083848338610812097092151351015090858418436464018019652401982085333498274170816177986908950446422092301646127358070022857258335809865025722009812668015349587870166212176477066481168686513872923783670320775955782206603288818696650211351624437439687828104054249545998455589774841613269914306180428912616660913273456852891137506984033914338781600911372559243587582714686088465904765864928338835661707141700834171815512149692405520142426788644303939306307742616664749058347256340903133991437645913437563708645452898447452519457962775193584040175022733981223355504354609717329502789224124237081208913650559121227895746899170530477839049686871014759183141176206325499074915000563896733615820310539507374306464957408797724814374540900056204894681897675017904336789833215857250425940876122914611321240044321979861724595559525579277981255298933991469889819911392481587586363561959522457005023737775408714904366262021685027956359300908137558897707964356376294700556951231271848337593624011656903812304373396153720867946836817696849013783442366422473569272476697352447785199277357354632442165216923844527366042826764618006740721149733877750407096612011941978349628181874364858739828714199430173933939024852090897480527432356512797155384466533227006525907648964128086528120243786896869538606686410794866827723771156645151280518517472011908826590311677762171289215563714776052432349144807908033842500787713546759203491664448452307439477517695571438852850793636749405201459287327925386168969090910187462411479178686557013494661516718871057950863083011192541257106338487303566962310371266494001054554717491810544830125683805624043503566871232019484115627249623170960423987275354784137982387210916620685372765524820128101002693997596776915060668914160541450641640998612216056112119503207237161941981368273954638327639430780141255660989490876211003586016467876542199154452663593159849465683504732379914263366485189567933941884600901970559708951489889347793721339394194473921817365092869286213094782416135132707585799659156520525463469014064308550374845162249821569196058961655698026059976877880858404335520383372401375096623587288243097465583457383283641575460966632342534825882678431502833536153710962045970773659067477313262670446784023694575576075265143733662236008338514049280182328707355067890626039165753026718026762352675625902710215347278320635013271224621059488631918480994815072256245329760755486953919073490890273039192622161654462938167788674106581782547651971436874283488278135568549912801926024714659953218460234186646010143369114294292057894774305242992687466679650858557203964824864837644277308531245353621090000677075681601362732373900764675262343248918681866758942663342101896098413277323679147843260650089613417818420640824351088794265463768457042007536824768239921860232364090287046658255001718136460472805966680960202694248395311965529784391469000184962072983025123971470653764295564685578845369161372836287745192687152204321658819830353547295162878970915779801868031377116309875799446048400606329098052262420650444438946788732468651767903846777296336495582891082394298793655852051857725832578266572820433022334888572973074605608550061077873321195215865798886187308811276925796863408127055477798976579295221651025235620505046208792940968585129039555679046298470055592745655843558676046265682379237140150840365398141134893188178958407564960738317698897106604801011700482747937358049511245425219311863566846855786764961404629735423594836770526175518007841900107858466160657672426483542397420015220775587000590104757811305873405265897861301405676954991057817553350353458100291051582715869015459674530302982372712965125254967850033526694873801768371080707324838180510016310236435773736683476435622597684015692828451375468163514461801077809688481801589781443863996667515967179869708398737650570492540538113627299825674543033908802120705234370106673877283854153052151721062148638950746580493070903401525440910356862032441765237686565048795541382225364636409744497390345810973765971950968932128100047540215172312191349111071776570466492317951869720381881100970605467374052552352623985907125359200853631402808249759155277271146032224324480451970632545708484200584238118392278478535278956950416173214349732833426777804153408549504694727360159605954250095789615637706453225946781260015423979442527445101427879040287880500348705307200947173293045290105072594858848590157867545606839548825308258176415166965035517308738387138050612154549678322832365131658209236379028260797078539583372462907012649401196088397117341453739410449091653727310238339225390914992193239756193760982008604781371187039780633592085289277862658841663875504701934437670580019655028715892438916552083280665900893999614209122529008239906009243221378203446735899942784858870134537679223241201652038293639378189521519090294971338246716106720132931805699852542691300698937861361021954338508587361499785607493202382855617098399709050150563466342502782867312846601667642569039773475538683160593123362227622285591890308831162915431165452740788236691698680289889602251816388770170530415614613090070888781157020996568894326237381230777185338054261410420192901402052466952460142050810608955070655521015112412871011108396267528823001738223067589115365868630152292173638008275369680422655292076511754803638821630901385042367823894171417503916651140444273500936647520563978310263851408013179504582251435825682132716726424644646438821246436956336839582193641646431870779915761722268684797887109036587698782979370838951032463215630661133257932601206429618568037836998561958393041182959117253437253742766197776286087144141387454105991123142136205325023019929379899977198744048341128816375510326565603375098855416852558654173196012812133484675630911075399402456629234281838380893941674358409762868578958116802588648581652361754054541976965920015897711790017543124469958493373027735983339034088341556463412960590470827369047450345784030185268880097696933592657999669520178038064758876638934652758382428126436419017081805365564423463582338055278318124074670835952038660526998963995239412460530787328318649296964806261765209888882546011539229256355052876721827245085747955461371087766502923747058477780681519552670841212555928602644687887369521741387147185872646090670921286695474581407292573934393799822055798731189526567368794659061407876095341148641092047286621455880351337817248128235284894235021131984309724528983955421885431384649110135500937029060609210430876503775051853266901924062427714629378628381682536272817896172262811839123327203944480710288008889701915362204187468543732547768404631230839470601935977840613335238525828447467157170756787046566581171437105764041505727301127415256945532382789108366559550942304044915365454250088584703912015945654134215861036365877049480224995615899763317529902810548732123867524495959065658443639162921793956061827961597625079225471202272319139586304113464955200415836176464568984058628482675629889705970170785847940480205722333230799162406625913418317799003760551025002359933591435956624010830454355224272050112707774823260919639237837280111986906439455494021709791216611393723298009139454767653022489245396889739731010614333078302316360646439784087042440919632324290190378182159720005703610188507811316721829956398833447632405394590618900456637678160631607069499437422955453119797699857490965273651025038225126238651770735343039792560338265684810893959177375331569272003696286702318090064738180217152263611852248537850233649479258220291424714797671514224534601065736291740993910297789830428373494438336512686570554961769482592760419548777161247621923485442139707909258500642008252278334776701268530601841665582268365641231883432177942038359765675974957393784450105703415947954786703792257914603254352793224654185447859607412837834588566259947707116252695335328210374145961999879526869378639068278890440343212460889013674659989216881524644022751758917661023869960689008624498246710025096012505110899924706083244860899438759184829830158383798932871880943449101359633447085582602180622095906049874897306730253565466233648212888831774568528415123655275552493505931881082673375006245595122679274050564624856544732536651526890199385465934371914174731110577162323310540677459939363159056694329885167340183596348712524152519581047199721968180435993245436068552616471591851728864428612273787708538377776998817362819789282916995019368161120395798658837419744672037813116760735722363296113506792597944672680154111380754705147165536762471910409372537501068091590105602310252643031462067248909350583460118942526115069294345749388958617428639833517446377803480538540913402748670173609255997425980129477603771952092945737642094131883335776736933283775679489038841941383460121483064631626841215981632704431653535021861322118041758901439105157948251553462632022814270097376937350419749365933685064329126235367489588504593299847427859049974968096101826391384270581144550151210563215496180804248724737477846316998870404614821758434710691156756590781782428313678405329847864400822129253195246215940496922463332657048133500926608424914205682483409725525136278970559609538723035846344910237331377798444502774048036118046087290499465667150519428638574112853523980080212851875691563246671864932689921672558210892466617089596448150817676816076779159589425582945606156970216254789945653070458773190751577079886101652097117215296070831158648468057972643329361909403194420730194644158451228901618679095181763702647519982651485262074643858559353389213553141434609894726366659265231072357965982136928023711127655782839311414249123389015034515214122684914027337372711632365193203385599505766869787143584276861928937630128606524575866158898425595779693141152948107854645394104047002578363232380428697592732898465067419420185507241010665300066885971375743356839336064409060611045904749477439983983438586483177487349659337151749984270428008188005439942055519504052907708746643425248059524000130868631871366579821056972442947045793698782355738788349035621444464901151348612312279063411835277932604262811877766378180562868383624015420781715048708364612103084173427913315235484526816601193222803760237331755485273574761492332761691027541303313808897345644072551505984858325680924917860579651487145005291561445880801388382356343360064287160410946527760894893929084354913761515334950243450930581590909765585761573993321445348678802726330054407914819139248394386707566256775481590090842917020285889989649404178997961053753025354970692532247079855135985698761470648334992409288676219587398214383286577777634122963912780346322367380098074395552461160341548970286526047324769442600165462422306420033586323460769705135601112085910167620751761072795634825936575848391028006037849137380907989185035847958807774982751806944156794598392498613024249326296519323049864478428087603865754919040677577398586984038367599139759702973603663251043894391152407058245426160060644380782463560187014975541629870072929284117241054056735627875059660015171568715771004682820013189894722708858499925358241110146789190124106003628513112407176344625156507208038210502631459066417517704825554854730701880846350826761343243581995806630490304188114651292703413538040557265464689691209631004466993286639026100815718101352658531507115601933287792546140384345742217738066931155717752480651997517350418621626487252693897105424764723948682487220965970722817564816766932587414166406235517532195281709915028148514922300974282348344323526216389313131266737950015849209281961934705345352251199777154792922737567826363966171125724074924627362196753853571258485928383652869248600767745535467760627597908175496144378894026512319181526251019475833590946753327051113059709259915601793120533373340426662052132496473478081825477603191289834306106931657412613717744288437083779712185685666538582262335833663739928032687774255941964258858721518456939625719179701717220068664090356021514461402652148932809403087104727089459162090943003017286009477092281645458424813397991828013276289868125848116771915306390098094071881955881507008120340166594758734558480864113377243411134436538190163540296992787015394915681668490112220494656107535917549929075784201477605731913110461928249708898661451523260159853197062133863679348423029722809611235352324486019025323216580653739307561573993371908463805471408694558521858880978938786922921451763675116745815134289549612710777253839557502699177412094936655236979402138074903393898017843198960794380921329511099440921831607114177190825182086074801021784063623302275018965381013622902445046784263434166209705474134908144704931729607735903926137146544209951359096405051186564027847854423445947914869509110633743268066275637196176049576213005039801736097909900541113312040920058134458210239483639848801684520306901562437219426216570131547162769097549870736807212633708683567561761307360081358429484284169750928261806056254323806649910607389014367293040700496672474250846469155297690363307810064669256883284192346341692589487001275001947683487820369861325774897868668436175052980539319074431546763982619442618192674377032151178584984211563343783379031698513065540015645058262061962062447636556162518612972096949679316514075214432852732175096440246755947076209620198413058774582786976972218087421954571022726333951406514564756205224693219943420769576428018494279193821803935577266094413645458887193513006948854976679116196706640068928326477002634009986048613767576719082980421532095105376477519078415076038568938122213131515054321944197834952884187206743416877884985419873731545694229673196153076086420244615445231144583035012696884616337078181168891663762481873014000395077743093526357847296824270051890648113569116364492499539618905954333946796725635464739455561694267754760419686149188907339421111980638081887039618678807516200036256873412630132626265518292815603381091816526512504438847947805343875901386621560894363846352476076192391708771427589546436254430171500402964309926693146872685261475698542560355640332985249615219649306536236312891911808461284803654512740145275192425747770775761961521015392427877509835240895000119553351192768279548423419757087793113582963072808462347061891376090395338808216529881522366017510833666834303581517792907440698215638369840168037411768221656745967168052957394123193920836919786381734060261300799858240384033023720332875824039191247963597065330483669996664615094945244978170923753255319407034760003157211393772852474520178537253021778830787499436187859473890932534923757977176618698186774254173556216314825182817911041155084427335902838649950707850331254316760202318774673405235368661728321184098968400652197133370634214343054787804446798349498869054266238389614480462337074602152621452061110106029946410470233980119153263584453440548215012702864044906930143931240934903657419699530899508956901627918444392427908028797680978421605627085321281207023055349372636561684705697901031051666731047667985657383546587366291662820365316018215043972696154860863587464462581219260391998165401295366361651942878186426068545950852674254407776859951047380423522973119964730898744306265975464043480263853280187148259088848912824759314059710658367705832465987480746981236339437660367907693136052753468247405863637923883240588428325802490917822318549897215312127515736754638841413524112220745781220895120833731056315941281386644115013301217830006325611469282384134110463575944277915743054716226571821562574624547687215315382577275880481601193363380754948756752351544600135184211806901198290523625021220152533655930119055871495462405279845326238136935057120351841747881992013137661960536515739404732965056438786740333620672390297691339115888170774202250103417664905041843622686910904105005411185566093973770118123972352544554544012122141983845248226340185643755610043622456990921772203372575363247161618627627652809556638103207522640932250342705625912532597077288490188937788457046542558604145540570225524451967556029569288149004790213890439842679936043861168803292697566944412126753818560491102643030903101232703097761212535531412134988237761395182898886699078283551512805596503869104004749804516305391468605502299168543885731127190540464990526146042633679817923111111336340281621862141494849785132374051406867597266353402089505946252812161297477057599844781281779077447832530327954983702556403317539510632699378036415962710982057157136721211508280732198020614738067826907879581048446692711810989469342362555778188329908695975895442254335116089857388676833994579252617994452633106387478003771771862582188785668233746898582743316469640473673655824805215108020144138106631095968953039407324854175969216306775283538503766706194781611540660480945941819771254676252249114856523389172560945806790290549052276944342570414775686385945225013941097424796780969340790427152687632812609279413729597734129034603297589803228596755420589760029885337955651241442948123175694798831102893073991979798368800912997154107239286458779350936958885180922308011832174395974046965212498713859302370114434332808842178677864911082660960899397894093345520449415911657764411015674936264270482660198342760758046543641630899098921539106248873589407472794775834299076186846622624074057611594550836658534277387353855491944899954064621062194122845802590619136608621602849723989610548374259051359638456624439963325762787626168352996107186333432422338453157802331028983839490251053530257411577375591350664468490871116136412425917321034061248377489584675137017483251893389885495654710812620464879689530281036286327966550839772225797816732995251357013127298390921734243706024821234337703597246323407695709438463090010133164407707455489523222387245933564545648032406731538219994657199230200946658246692117478584796433519061496927875176819662007256235037262312367767626932292334395598331050096845114181753135525467689563598104076157405492289340932181910800803777752226215284049255235988988075432057315939263978312946218367872844600142935371441963523386335416998954682276818757052300560494714184973088600258889448231868759734262664935454185846537480383149403102277204757202754210700681803036894455406126277314777324591757587619671914505466569325593899126830757902495646007566120640461056297665739198433848235832503361150686869416551524081120398057314621710394908906023088571464349454164861499814352596678519297009044526400998966277597521481685582843556188897470584231401945646962799498134503612710336799465354293051103250461136311646019112331394341419248841062659809703617445089290262330409302619489406139122041521933018215339560921977142001362664804697157729344690646708105627446973003797413845987490559535437584085498478628045810060388015286859341377404054972114437923412604219975562682481179044609494529240841915849657233095584437672869369558442904966903606322035437254775840586862444150371134463966960148543018965811541248160014486492390385192858553223429159552012211438809774504206879085858556066463868237978586937999628757345012948971708014874684571519698686564973384199354422325939742530213463619883332472728782867856529762663025128127974179517280398393721780927622919864578819029039453771211755588736187907724899859828381531264225427096778843041773285615745648598279962892876944843043758451615684597495865073412143915176464686273214463446583331637161263590187635381389091721362711385381666081429664928877509769892416846559790938702534645788562334275072904127453952993708250438333886602265032183963095729500057100531387342075878658244774857874281735606685512444191719143548969884485696050890237571817384207004795552158210267062261739600386478099598078180570444816908893085373987220670409256652650862967501483138129882371285364688334176996533969190094405051432259507198296109193405728233387603679166105644510308426758075940717539433184774480949795826025204574073955509130601694277110523275433168055354012810455985547920607215786393893957305003025150477544832965125456331040962415771040828718634622463355966991727556427110326606172541436941826640834059194817696482458465750793308424921694067606160665768932680215754855555257845555745214659561937012288632079870084169060172946345562638207923313681913029005759007320679954111711662439255714700874224489489115781902297172089925615735451217825993478970756605811034280113661155733732508383081624786120344007678213221967817201039335247302956116588543012630003130839771027679964694010412392231834956763751568028460278889820678097761548056395821557537484551932961075452538289039518736466091848967749282147792564459450958907867215166738156600997757735167544295162128919677047552460220167891708843692726775245883021189671469078787137732522256391699152257256023968166623226491329722200126973510107269847274226708578129415925839950968449322107730442707971563106181072823426502211787011585692542042190133463050134102431641942822769806444933651822103409389000637667242546587338205399373827592678503913302713852276741339109755435154041483935514918882131216009658111990757707510947326834816187094494316292251017833525611542077724197882931659805748898584433537256031334710341738737840784848464610099698997937262029291160317006415241601711124224229085615979267850759301424845951741251248752376579300288489669035210965686429161210590635493565697981102936750359680433096655684012074105226945387801764367391017673765779410480897905489316119492112843695978169908277487336463077223657966211427708269276737836810882646509396960530919493996661226983807814957012875533118942758221834169494816777735814178345336015662073826883189715426334378973937322290948907070734748695003419640167939288572102663441649302740104314845245863513511089524768236467418543527381731033681658765509176120224938018147448751091431121533814054491720549846494303510208041248781629818811804861569234622338390430524241709411586401264366850671800107228482396906226719660500374381319272903764020708856419100206587873904490932413248644074125157046926471840915484350463932516480286978651233749008930794657997581348893217295239642911164408137593337341247148704822620997761390745344934831484298028235224347009408219493621882596028637786583440876695751873139175035826636366912298706178277855505675714085610589724561120148761128624445577534361109651858095579740965232156475409265903441495362592992399956571114339897950638340577698626534070038341135932434582836527655924506659472750436707347639354319092198092595363558132233532195814873238531387368533736179124357162787062175901477748027822040134292672132442177298629722632685483185390895121943906337544467231399030405803968718661776183597546067625581639572698150218251663003835162217236688991264557149539256968371273869560863237967626217516201302770994725756061921172122603353241275256965838813788323588046914882389304558510768756527770004078956728466362889417334282426150975799054455051088586810698178407398965855023794674476122455552108007403404042342874109195185268884418858594521111720916049781566928607582325495630650849777626493742203468071421690529983733157406264623638605432520961642882528631299545894923748057100047632770975158601493009820099476275417222453874791267662281504839899708486194119082608929479900670419428952162755603379486234730671229833921099167729379725084461230386836242413109981783633536912102227283324532044809846875810726904391305757050495860841293135329324639470731743725802621161049366704219764007338840048882686790860172245203521754028045714779612088730906127968168841321013969097476464664240891708965521537696294812864211922502200900610740713077501156752671734356940595283794120973190991805179839184188633839561096615302147806719747380768947780479791815971299792854774865668901158072082094102683427080537523062999676974690674710812369717706357416605363490054832324874528131859244608469825692428723827890311119153867180724249472328772748271093404475039839854660970330490676709019173992093169366940730575478027779921142007333648452722236679911451937185246541542378810095842541789871765803764039320495975237612078488639759391722975900513019357150163658416198800033871663611188410373342062793198289624893101210266947996861254640999212606287901898562560016874800418891648257032499945515191353733633972391802451710824747300497127113883791886375664908567129214849628984070283652625530081438052851594740667434323538760761670129068720370939110564604766370361265633176076769004396800643309644908078106123523230171284553695464897732049545929159233327500365378623901441586335209880129682646423115556004559073528146798072887803900897287935567240060433942255297660262904227459772743383506278565831926098407161302434948924638391131904162332499814240340614293823335783102205320792947262651996746023015632017721971673894844153495991359074630930460143307197098594721352574667073685672793993870386167613591207840717489164232730738880686191416581257169826934193269995500746208910655638447168277224289504652248749689358065844637143410565547233895831836012504024235291194779711160115805169940895359285192251519766279855938771007554695381173680775237333999508105803359899394031473497740282304821230174993671500473805062457832268162610975664273246331813000781671311664626118938369002526528561099206172518650231481267974568679226336484567379975222666284839601837400470279627975756928121038143931175127550656329745319686659335457450293731294842373010388256291960069583492604391489292334417831675004026499528097196003210422552024603307626532722323395006546237606653109142715859558142122812227959937779682246981054248375697284259539897741395366171723364962399527839616568944117626212709374003863092845198625165022256077312748585665703899095302878356406858803573273443429515394188022120731329410506563903908474216036600812820682791851994912403642664748915718064364505043939554491791936442093674141785094471141354075146464176753182830084877745831704960974025969668261519582580453442971224057642855087221019561149365162881151614961345312978808541832557233957669727985490707474028728678969167005629159545210059780336688229165194808828073872391772447802718839100546819094795924715588316632284610939958876471757548054327637334970573444520965909019041295735897841575587418077119682177493628050934017522831328521965086577037964684821074631314973191996896677683158121894573762693935964069467904544528085221194549576458262035510177078986356328914513021025427791870141061205330208192861809848643284137930593852726494192657824573916704734677465554933452513221815693050206749886615508514480839448471382155202508694404950985496403828399452619354927418055104399932102786202625280144671893236114604531619361160474918319100965472728088315311799964681491375517944434999889997242427474049197528746082831269757523602078313060071763296412334293444171341656020919509879231811043746334803728872984969397428663849806599266118395504515291999489268980864063115229759472861176751645946541988380969634586599171248088859389671115850605861928579694142866418248636297115637417202093486107628544643172766027799500232684148674272794395198908350533492596831011290361483153871783382522761064492354202807520534769440486580834677813354638681203054260717542664938079764587665113584622063487428576610956779968858298205374408377044926772270648739960893228542100162539026886811745906128498976340701361608689622953543245721106477095166532379705016389116974484491087818625366799547120807983458108001262315454817889398920897605729575560949206152353083229958735689387198692266815022063453509279775237591401285042393050201768299038886318416929120558336330696493506718018882352500721994113743851502060064538974915927647106936671536066235332629187205730081095564727393370635105533106277826404119719155880807151091695666058732500994845644920415249856706051492609000831411556174854148376341621212653451589240159791342367948398227172210843410210697830256613625845080738638093225170542547085221931704723907245426809712137362047136562474680867732916233292585959267284566790306867512334024113736739660553931218018463058594514675690750573187021654697760654895851315568207086827963911418582490639369833288374142942626803846077029496643363575105009684150190129909996507501506376172927220593495703679605172550140546525911683620144253637038902470927193598416826969583493580812857123598233849211069432353382286794971426831152215601479506664607313434888229874592945192271944354894612977559926799924315970962244055929496943380785415462682946436875470256446511471712583763338504623439241061400327085646477657221461314752879877265843079790643569537429324302447885627384928048290855829926092329700885263973635715256140411754966722739939726186533658183780374314553323644364478493205200980363658564141778792691066824219505210912462722672187761118231757847592852672713876051760092528169787845180027807915516653892454957800987910953562991528851082846392423052583610360579737951476557969673243057049380720209578725619063756139808981715103180925862999969424265660888545051246374162153569239564116362417737845374175373275168488184517618939387206840607058695080119943042613066266763266040052910080578041738943815817680109059590804088651368809483171620146310876966326410276518373016570857515689761403312896337322441338247565801731765999999807318331355446972060884758235382618486472611391463555189548902098878981226191276894575412202367719581112838938332955162110919798265528001347052732229031577738459545849301236781016817461301466272498625339257687434151914890887050517805961462553403095352919600131302561464117970690987243836196740055703890763074398419332408611106261205460031784416539802245148820713311954074193653566551645981673360887279662227390083646097028322425447609047241509186170301963769352157886929157555236033619295970370192146832583474597585466782502563349584809081349227004849022743994462564207891225082344787428530704576484632146749077878415307008186585517758425121822758912115162609628080167607370981807896884958072659622973664092277039162739603944315852849739998745611493526910211164942141264121983452726417144042411016133025590587367534581479790898711315735370884976483367628997121235747198596682551124765094780411456158740074668756220499473070826231158638420018625778341859081747219602750208813591434515664700319277076318630227124147980770945921718177256065036068247600479298182988932611324733972669776839310302144327414210144841106547303794728048549698961172665521170184569615886883022037365686620393737923276256619538314942208346140437656558202484128767978228417887159035305083454166187357008577666553480708357997848402428800619688276932991568778821476824096595873497696168633340964977170440384885667024057274561375775803559624757900963428090388049789140289760208850217718102772027823352933305201197686991140578807137629300229245004033239641768487853886493989533261435100327312230770571727057990052344193034056900444898835558017967516554580584853661591682460321655518881592931626737862110897700316009869892076319984901370864167711360779855881817069339054090965364850223487977072675713144610883212462986943387900941179471187938782976603919999873701326370695685159490817850535097319588346007428157541676345127731336786374897378180905884849657475574325299753378378841743361628031169244711805911095873847945725939925173712690111037055627578914806921720760072926281445635148552224590960386150525495714932414763608580045215882854207155117847785116420405538598098670730224351842224937914357711917098395974794622600647455875538928423249486041301448544022063143044797719447438425148698208054259291402255375254749880943483785281219371787512736482221782508058081856141483782147834667650450593451936411603703306861519634942525277340049087231443697484446978482459188524987964472975778214949426008975209973039006412392900075686400033635473613519016533056314438775058688789760966122964269992504546005162435936776180914822553616902457397047389476686079018143719738289864939494910048156987390332692571680692071152864333814259962169191741741352405286818709539326598150874799754237465188677143754965044013490232992891932315571898714440437382913526370373217719410215559997969255468004905307208310356383269132309249648759119824289007964612310814315917692787052799314538321075585400483189670349054624025602738288738291869045735317257287584454138140023546158971603770576372006258095492007055142037808090812135161985318946495255370124664423250892565848749023716100185076386320222433235653514055343034478105382063137563946548747183290937559350470884590203985454016938151951843279239075360923667644462512841530609433258102186528205008943491863162590667117474335699638330874298527361963750586541893786021441069184699353196875793416508219414058379531768787215315374434901105487550634670943289735578004574275958281943359129849578156140835898269752812163775504738712742985963093498012920930023667364931914305402421341569327442826811570724610147572500918040965246745103579113687114571350981589772501143100326412703088591477309815065388332863921453116667405653530179880822806484270052382814426174500949606390750299756276939565243763503445383359276638337418379777275190526543280917130954200171640699207035071571904374459686743307271941589057631799972822776280046548922485407732930362739171249064954983644118936184905286154975398350246487123157479633356256289465397727878128832024808807245493975026261989363553002325449387894050756433701309702793162870907108311406491008654435307643918480981065736557077281219219892478988201289591330252510313548024886964492027208399804478221566084182118954233154222067400008146311079415393355927867061870703213778798623395210647153697982763464949249190262043899396310202520876886937372476826602658893388825836126462678545999174784194423601342257838841939305067139776311625581428487974111880570693595896302454869171375888724936087238021507390115072816514976125620991343471674703524484948902011984851380424625657952369053391910056533850031410413172337583509031484308975511482469135963209130797256580475579398342580806687256112148037433845901783022929866991324702611552145897111408371043281627797455601228923590327960081711873578022729556168024064920535967815067104660862745638414438308428038347868706320445993782497166437989236821761385827151142319542649910305105746736831447362533400725124739586219530113766992074347306831595432513569069209418752257485141307543451582793429949142368749044966263700546973802019405815464007617869773669045314427767255747500019455691126230132995508786935913865711046758215051487186018799487964858696546262934962123581541093613784321913427200266413367151178466529615434114704740536482357720399314704699905697715018264151801421779817916508842410847427140590393459328418385718345210365478632830506557503766731118082217699440362235690861204005267679269551148835021519347320657433772423796169517682434890450214217844831796696750983937444382949146780004295358505042926347182051367591847710061297001597510905577056145524720314741648863672773131810471545396215184069464452188113839107768890306863195214707729603809966340280778836485428034781896032960609325952713257794511342892978779886176076395830393314466838525276806836183518847111041326791788614912266390497893179289200275020428811182952468398482470999944716283166735238142485424308898559597676080020837615716351852451783426812632497845257600942960600575500964497885323104285624842412870714031371735791598436085942120918674820073781989750045955342786822486797200689512109881695623831691023979719088633587543411215237656345996970573979714245303516805132801272539753437557373512383452132277327453155290762901458499114485761095580654751212698215167929855266108672994764801621270840432144168157703718870687623027509517016202038997288791493666817309239631157344798537372937816970162446837046788477038826861637941938461644411550403092112177840740373410804847242455437310234882632427665103772001948316385323980523617550011713056965426831456833059923658084081433732825991789736007814286094063857776615487306940251142666023025316535827418567333417208279801159550108264877352078907493434412627492681697853903116110310814644744645407337777220221462759939472156127586140881728380022937423231042258444436886938827594826024897832935521885648601960961515541165611802977949094884073493522628757529858706870434556032480102278566081013921611834955760634016028092880346672372162423863912802830354913068033703067761793721343959052129890437042979335388929376841742926564048743479187669127021840861749523229489688997415945333144545139905768818557150927915350735070481469759968697391958228189191178702793040132417422462347696167168122003600384628218716369418987878709225668871731440838050214353057645374223830547960063904854519147157916560737935108628066038782747737196864534395634956127108180715776620855714575832104137001013335183012676599856249030020432238642452100670526831944441051000648926715138490187476040711507227405467237831315008960178769446738945758311655846159805241987181476033954352974691546148453464313065854174002881917326634125123588142597943769326305878719745955361855219465923817748436075779044268554633627540098216084026663955827059481038733797542889321866297625828477229262667056587296603661026366121126826596304978447580570356343933276166741802632954421165228278071984390129817008242877510760512957218245857511880527232451305825745041608682527784476207975010711943923245712530298141742271383393988621703556930919598567306163673717115120742390238147044707453128022444507565310477839820636751768893383285683898120687236210152120477359271540976070039734438626143637782038614786173984925261088606751378613190452035694348896784935318155657035661735326556818987075567405942360755235749416856266350858136020048463896761556683003779191040941124747526705511851376297094453961371788104672964703823587667872013423099494518447250158801861578540677366689555297296254879796441163535236361332828925139087184751268977933667632612721273003458964304975850907039221967526909845518302933931787748979123790783672187296838443105073102390005723306001561260878761061130296660194602645754073599795191133496942212436053600116879619749273268638795410308682767864838175256965624696936534012315158612017658029888953931001395377712292621437382536554001794811887907605659314377182639136040318010653279683221209395251392630998858047443882182628926329694599690826034504865767379268990440669184932742128403042804609768319577359108640054120145410696683273276859962292554344562127313440743771198906786554265647255433420193612182979087054949083948372333247402329589014232875335774513305125346961518789022062780551270649016103043851546294045552183194329700601971108086699864664950038622385445709871668311624864298942971986779787771845208797721995665549644574101336354198204836013352433592437252274789748484671259073511505441604034945593515152181363514104064052588876671454135961318203295129693849771990060318199265337865088646879488477539050315029446843948144539227464726939314160421055796119681402617240121510159666730492087661508096796183115556597083675140518071310860411813544343749990123864149142976577013729385935994823955531169252566438768707483988320617725999151042874222644931614168325195815220445262294940754102595764442233962246894855806560284572137550741654819605331043854012314009896574547407586498343441098510132409677055539237204277133737134894113062017773693892434589938797784693856130065219543389641089021747482122040199396472607450528025342602778306385765703327820287085903815063781180324248410040875965332405393266149318047032338602689540715710377476037230494871977947051571406920894670537197796305655122020595704476809807209126842936351181955068311068319227872694149009078041972028749576930308660407066849933266884656347155335083226659697430350218240972210409960976293374962231436127757592171285878115809276812394178276526735484748625070605024818640075609902615610894573278440796884272368754181906505283070831457124044834476054659391052726699276617913754338424475733069116810973673142499217470758902130269195651214133532923033795984116038539813956333067925451996338391705749481556733117800469425663513313914280298464556167011993705755156328266230301477835220768594697111005109032343132688183827672655287225599302519419696847922534761498172753461020722752165275610301375072457088887550779379734313715214261161307618904678903619517787284015924774070322390640021474010575361962981693828682222614755479989132076853719578366558732530438785857419564483660053365184827650596292334319804286530539440703206528813605459861209434362269177582298013751168721403798171972714101154448352012468229305525479061334239332571366573788449935369691541595613804795222697916628867962734007960328030617083158415889031225548537970185398645115204261506982783495247788722857148243609121576868349199202180876140597769332069523177630220106626756878481828132260008131401230148851528111135409238903570521403253836177977536955533595702431752194159746668967386252395234146263005529534720727763042611282487574140278242733019543180243419470121022770828613346772463196690922255294394111744769040421013502579696983773720856877796697985897861242794219989650297478223293498398303002523277741870257445271900683609984058201123802223279866717182140967765002066526932022480997379806986190361261691284597750411338721358602043395445375353087611492146040307415983835217855337089803770321251571103633546896585869239520539473485704694008630299365823958059261862705168881001748975501348739582465850755999720027835357638950294419486692113520589954602981707729283727286945160828492946983854680504338909597598012419052851909499720597858775656325977669796101060051689717970367141990250991090808880453320197294820750721671674804076779343787160293406189720720408359695186702776987645162705112836541648637019250539431349080644792925021904258849498969409224870163248402256726898341831456919151867695761785931592624265509393990347849386319195375679786905467301293606066185601255938541469255066058182213274764953467592493716512300774012380400442916517008071459198321055871221741404208649147020336231320635794226381843177895971080093725579112750407073502911109053988454827036409634550569748261540149579849317514310175458966442926297255532819409309459821959874806846480182476920610990162877831875534041728065747586558173578377002741985498751045475151102148678152399423440593302603751312818923816230046194473352145274563392457457766391830432357938634222961640237150531050590836893010004383397210598441209578377444962835537623053011685271355314219917601925965836578879735873471746318840694758164551830192208288163214735543015664325597361555243170979964297458113055131508011546372705085626679148693109873208833169474242329230657955899556126505453477096978099844963983538742348494133367869823465377072979291898322357840748233972635654791496426053688076839088802812294409405127593539480917548768198909392172804463869295720646885634135097144190975303818116049367910162547332320928070919164125271153748803453242737771534498787315465536691579308498903076759233891674036867758826710509951830592107216972904163890213748527139850311925095091091231036553267328175244085986503420347695739162655777271555140419270701795690455192030985936561663285043037527040476165560857590980060526730075778726868881797613657157052934276757032869412122021445629478047985221844036815132104268123502798305573940930666442559737555012626736036779139236387656959437811589230120861922591933699035259415323945324623361914038421054694168203285358035305866895777255543861134725501033455816578500527302467551687921995578473264200059715054189401062360194938571465771584288220464477082168225636106165159115452697022743753499643761363679017239224055946519347490635052348224659092649313513084699192829396406726531626153872279174929942178412999486843478051669382333142363458073486683875397300358288086656077111560874026780699292426638100398725334425829387653730109553659129377760462306089191467711143562862439093816545212240120209235196672780556172128966369588719310990378624321110348992828881071474390746521257710054316816991796694051135940172052677416037997788718986637707574780837526278401175529860959331620598750401190713728151794755391245903200115746903961838079903591631182111099167778635390086860432069529987400352397049121095367048513495454475624346596641953057809871340255508507499095965053563654361094357883659743298227552431687127579506225213989832875784434346591339816663556752606812830823445646654860396474088967840514414357535875606138402342103720485525466995660372610542332173023432874169912678006159906011120001921043939462156353949509047485728711421814609115550817472334607579562400373683227013263186939197192916565378204097972826316271052871004081028266484846328506361215346085030110997713809713075727477420086604249410080392108386017849514460636009601010497252786069147000989411737458498490101040026454287435224523470971851240971134055926368097735124387443755926292237058449953791120741468733163412916999055865131021177571590885793893218766481692464603489490403310957524346517486811887343149993451549828753125082744449543984879080959695464447328231650560860759796579126118905985106821984776098449092075899658531427939157419489275816751881936709840872574793220468980458766902264892713032586808667688751029357471385557741580462754675932284548833331036184605951563155953851033008590804791524528991242632515004817235114809743334912202321636786404857390005510040905757883877383232935367696553813064007388628031120810531107956960294374119654492087307889418323233165417214451611208256136050603730916537099032764617491493989837692513117941123221904027333308220598194972735053687945517647145955447073036760431215147473718883382509252997835456326078176853241093840997227555736597846874544474542527982538961895742892400854557391577524347555537058623944471331158988561382021675188323129949720664501069799510224560115373015542519483725180312809121847806762222714404296168248573792763964704990171046784138325886750491952177263569076879258178632881009158626656061270180441346310426246938303336809316192622186940518135071922417274677652740553358795592785817088097206502019380210187642730606442694079844087891940298485796514390172090475485741687104822369547773372723903189994019797825839120573371431124448025961465832641578332090516834616878353405319851030110433690035139825909444064793643512674859429592384167054686020411185591582287490790106649460048075314965052691621040937777285729711607953455170903666008709257782606749905318704644233863493813663042864425442392687197066703616722454366570323880968239476209333086951841352638782334220050384907887538643978346825610694284177407851216104345587451484404953895614812917114775723801174686668962140072676542274355348385767208985427260453831640821894963691511219544010295437984328119050340387002428157301712528442593348794034367005298438465655784337685751938464975576615178844498870523912854870816529684869485915647824311107852197675755186786778815909655740955253332168224329466935100955219659038788456222140880340934541462947590231777464675540104045223539290320354181114421491630357853568431867859449327052371541841422608091165735511165132775966678769069098620581680894058184201572598691230607250210800261346350671764780057031359485778412332850783894576867237116339962694585572350161958365051243659473064589985200102841390361205348900848333554045142620023122714513781089404088033059115189944606778093813725809493466588149849930360086998888625920021167986598653528083131264845828726268983236249310586297780285587431537532764026094274121799715701800476134814922007806917998082501058579598520402952021266329969216903488122395274207153437282829587280173304044831443153377485239648723013302881113445904464775741397937188297552993321440047504031047954918475184980267571140306592597920631355357803683533122020296369674565823051816035772192502367928037913820041595652644539789674620421674950608587721903243276128190260232743813074438109204102339679867785801047091483196045410464500855666381176045745229349499987640491462893753934556240710780851671974414961087894005494946809012550159160020628171793890241068392470647504106002968438385849400787430962672773117974125440485776924013763512815072307512464103218093601936137378744736222082295240598481835249302173068397974979560965275604737213122415561938296968301038519670225904453076318680056685109167685100366688587785025631625242817353406593851211158274488169876648584109155428645188202249687079344497344464749458079379949996024881106402314052124451752022779177258828335428675632187024864061926183644968188552870030032634332127533037728632222235179504049818861668360959085092471090104772525826498360348439346196230247164061032250821927220227121198254971669511256967438074190878511609184340850653350933154218316266095366545312791414322755543952230963226852628013166485689305030997614443195934494464528152832333605397148372897853899547480272911381846797416820447231584727244565107847540558921424596798340824133993185412783770943530062703279980082757102657865333897053311663829494274480100585471887017994151520069529695773303250327047338119355893812583467744656542573381901110152551642644536911217245801407093892701212362671309123578309311059808384341411198905371204630213991490690103498399169272476813595807105959147454675334988688891116944715823341951337383489475989438839954287885045630950920156297678765847279730749208737145866142699660756629866727812829240935030498617304781889092393076603976626781427371414419459434244921377946354174137963269424919248830986453402928061227189990544362121355991987081984387518526774206133284287337226455852328543171699991503487148895187095852493849435135520537791412546431667626996041630835452917714879715771251378534691299209195617824085284102172944527181758578613282875501189053469768942565131051218889618792969141253462049197816246093446664811837976905252137776030556491720024805122817206547864173449961260054772519822138914284758685675420075770137455870523779403289496623217796261207648655555726333455240872882888520364815335702471981016484736558030879733918708109693751547837342823169174344890413113532260176051567978887400268320045122143024366893050051390908529573051475418175925186528783532882966098489938484004954731211293577411048783808695989641970729391983140678429862488044359780106018488662383603112079776246397276122408445953832884187184537902649031746310356256405359520665640722507599454817421432646521955666127518724421417456992394147352935332140979546548069484821180433796910702459350188787879003106533096203899773251840019908357280093738180084821578968389696227720359799182528220051153184590388870622472466184849952969611272844698437602780038371668679906439887071410073828792073428469994503317628430642440304905300476914169118228633037216583728364745834765359272283850671933358738878092342926575516404719482951496264473385175401275584799832422533584207394525683228894428218416678244546769156725409565918650191682332031495381423892686021537007540414602555931433762214461931752309699362802116342718300688615439810984093151474145102976940799104544170279370627398321665348403936037093459280888452208447305494430115557931694029797389775353358499614245923229758953861658805620223263263085998889099801547955121034540266030981623568157382469003096010733390001694612337779946353981791276336136134958184640682663085540916739203573430415075171811624149800884701184590780317528938106628376697456969660871521787638102347968281689870279908649648369838394529693870139660549432755559233235567573544873778954273831302701492348379634019520022538140583801140554655415369647808091146682345484951753549522511386975192570801350920457292302099532593555856508157775419211709234594002969622569771999688922668121863144744654053399973631900555532719905012908420731430719241040965540880356156708252268024702386002601492868496646570423436754351240600003494445388594145521688868062444315743653728165686987525225842202501052118678275031295269327740515897728355328912560647381742155356324672065418849343308099989015088070471192018371203619706871630550989334259976858307187459780014604127203921077786696424995145882697580404181788387059393791840692398631080481910072097840535969374704846925225074988277947960979129289736174638231785701479381139211834578285262727303113223585844874844115974674280191080435903952847639983944610841075754783100517978051433943638513936030020305775060398630767765500638839782174817980657612758498253171570239048996308006388708631783613576601979941960607875549676728287641578650826145328006728529953089374767834736685340217771873967821519839720395252849598474383426004024396938337608817467248884623181866858187252058954938133229215558540947651292696746066045674383100289199964939471877903151062234169570427517691213139037085091224074102842119945884097617209755682160507171587193567759901456674264503263659035467984314522154353298346180973277977352473943146639986561801980254670330747283038528711554227284326117500353516447270522905716165134704395522427770612801374167428333240591622595440990884376693093836234420181322499933225714797507023211911357862683872370526925844794554725652070518850108866061336566049488012743187218397524926382911901861567269397182752493252451051953120286458625345861892874084402847785820563216584448261519738392018376758650732572554298654663075705491614361913930121398971701261490636812232516000434454780439476912924260039869586056717148547247865404323638414185837773738344633606597091890844477367350218896255483095535587317774556051989795142559411975192858891038762337495290637483331374721338427299043108881371754089054810046286610481627720828063078737342849154834821678693489808730718211874697418636457038563111320240345312900122940934663857477285794539123262288502548976044245513925717905814092820492169497373625255352041575589811370820499251896178647246429068158067149035677879631789283214729768639821328207374539620181488988405967956242590707540568538970506096016768038555658267265031495077679554459813377648183102494621810092016400348408271653605233239889824928495346979053150844929662783956567100263134197793584809840846873911912195043048046478896386294759729264551335352094391807123361488271692576651988493557537643352090159289244952782103076025250584372661637251765671303024761379994544706938082267943874623539353198580034349687237956110180415384544093032012641886652131061700311960245159329740548320811184290565490884666419634182222798319515194521795537486256061017624955199428402862453614463768851608575286040613838519157671105104806609572230810511346033749087673049699708259242419843243279509559702095663614049018043147780924177784316831459266977263721096399065962065724807267351418318463998760231762812106305654745286003020769443958637473614231695283221242323715609868302877419620288729561448103659870656128574909432353726456750198526679105647682377969540383839180306767491442400772435290389242518292902235403618808402028933276522002276667764969772458730074537816393533898853540818237737394185755322737305773941554756333803667946836276226263915901494872939751463852997119041291511088522333993267136964843073612694344263581827318905732708196355470369655517666035135964360031354032827884888736420419716157895913369589427227062315337774895525326538840286427281799669598502104766810817735477103651542566400156636754470942419791520133416007586478336619721815871534674935452090213695658287040331512810022022500927461073640316945335918950085889637362938839595900736284584990138982642056292237682761433879365418871575331478785993661359709276274602538201843379208131951860747065138030995542664435935216017086117139700743601743769208248276040668125471657539478737587113980436205958888385038755302085759020322591066058795790263205787296457906594876755314451874738210290037753999472476152921117274796724109714298810712104198795633721881951862036532260324287634228969125121030885803639197371709268586397194903292200392651889683490330361381734358439216932035548684114537018771931886212417580022553193682096357839911007853001272556740400959721489831021655657180021858304882040122549126703608457453707826095300504529106166578046574392968851997171694657213942406023564828024130856032559248219580939118338912608225300553093002822265424620596541611985302002216326556278294642251472067753258297404214300894954014727984886189420065597570570041602184691306548719156247933269045052237475308010512392790209345708847587353449716303712986304992747723638137676541361299651901697744239954311555339768850595022717259476474575803576231903706787019260922578871636211834991140735870534502192148349600735452127489749899325492344393182417955432297690108215620963314326707830291649325127015365994199282893895429536406912715060986485826410052377025217415629549328366805784611834396523821086895981017167401598819053590793174688107933136430944835245291592962993710771762371948102278099356203503065275280885609628391484801677206673968349408152398296678624816366379826088184699909629161732899190451290264818506404339688241599208867653348982753738208401025244884171558327189645977421041836662925354770498818595906377866582941845796637861179591886531610547577680872262716725448879284963472646944941122032564699682851198557359210793709016233330089503010507151393481764103950440079770460202497325560209033351684085649188928995835332359276355288868730625762184040752308746183778286585725815732017912860300418138878554766773448295554859337384784527741234875363177050792663578944938935478001884703903125132683684656774377664736745362733958808352109968825354011683374149149652003183222487706578645537259132500974950463047141086127164127534405114598766330265890587513211207737000799277464818625133796536151006451008366561738532923799009015750898658199913284887360038949841598170371256771975529868737678492559797355159099760306265073278057638639218673152222146729187847520725399917458119185033773479198295610802673849043170905737383241204408971202293280282026469966294788403822259272644917327713089732582067854583492555330558788467561188752859395258967969888184561982635586637787498952484278057917179396908650625633907954068895494056894429220719355954005314823546801897213588809854760468223426750767738373023282102462472125670475577675907734811851161762951384200391297656146396037962261437034820734829129010213490160107361170667956387914301259146486477296892814538699105269405949499407279280696191337086612429205417807905372886545580228000703978613565123653330737319072309727819572958113399204984401629021763770986395405900609537078772456569375804522535225887624920605308313880827701732896004852516184419741092708613642040100668334383791698363019460987524029246710672773196843915650192026124836483269976425389105110822389430614977967562729074300975382974242325281726493349826523955007308950572720476306356263724671937161884196999600088383299428384135560663415063585848924451079955495501750550628955800371938225208478910608154056862946664616573204782860408053764557191285453641353114010966430728530929142307397757960352786503581580454139862993981606894401254660822514875950226907446661667612439035645265680063228954564725117821722568232512846401219758599440884416610354752599114839711344814701289821416422197417338007451619711587749320620567197945640698730221538555784208007913694914110292809296890517456112543150709801765471367565881234243210831242043415888417924594822933295343380285484698507363826816799448964061293617658138446356044560355614521174693987277632235853391395444527919753342942753569934167256753985481779456058011190418573778037654640729116974370315735890937695895290118427714779729719063740745010663765167652862655513493880318567152090349194930057184456781145866633134675218626988298692441989559823828278097183143804685442404034815647770008952567311793148295826385460606941475730942288504090220949109457265544370178233543512321799644101584850884531464944851090384807212365891921874970236822566695385197829578972783458318396351896571289610961937021536342917443136111218157331473444598401367018233379908832073944121949399327414417080504643577327362676722665429610206357878110297127908985585722493908693255907076729571378696976792885455260519122726206219513326131046517863841767442581687308028295034620706857504429478846866434611093607013832603598744820760171328085134951929378854667827908285070625482800595386146505269904681370278451281621543019809720823050909706186141605918953448219361159453860454729217187496480223212247374915858010294755114958558465956818632386553389553101892887298443477585109427927048435185022492513809621915447770457740050918844718598535325745360515501112346219198466699359226660995781724016902983611675428306385894509737751293163364839949406899205192384970760635863451834240562065210570350735152216661291441414549563010174364941143904013843891815952874910101172746803946478715740871074828785688176670492886211057851663859830201182019025855814262444248767856915558239741771964633316132202481949417962739190616247490980947904876609128728029831823837739281518654480336827523267891658102352963655189301999046113743428855714622887072998095033372598976578895392641089181944858356846354320985098449268925001107719744158921506092113709669565993888914859244139676237243976520093955542919436395991068805525368680368809109862675889962217448339719674673111355309045578501303672947935872581227082425234565314751325213278284019308198326866757924387260646907601720169120086568973594269695825505230803956542114415550359562077774855904348597637782648947100245463902854303451538438567429016612890788436915776083422116526791015801304972353487512058454824084974373984028798562789876584133723781872444135470847108496025434635182439865339639338753085343671176007453557464393742737446854665846449815097431777516443573884657279954769469725755573101013992904670956669447870127443515854377674561061689268158559916509315631232889108285414255028080317024619266809718357744228079435987097323535560152746587083768252454549573136387045451739185414035231224579933512054184727686962836493066035741552302522115268629821540479899588136674116568585470228510379246915401741696614069482476605995750667979503806467046909901152864840007134076839736159804929583317377007415233247354424048358205149156632880266917646991964431463802574197271082725563504733377559456412518106933333319584013155775832005071903201843751808141390865922124040519040022974156435121056200269179382927286732849154463598357128151569547792114566870551454487663768177914443237393958618286144493602017330583309435423111187971215530596174899431437049054891540271366673295961689234116892185832434783193908537303544534964915143385452927239748329245707845071724244928285324228020447764394005004358166229736471270663376228651911692791036410212078805384597242425026729504241963853176181953165661821954714412518462462780818710375012100684923125011005399608681462497295524369627194534279778972312592052389067209630789270168245297697689331886815251968684865794029265259273344693196850923510437143727629922093169022839433096028930867962719249956117294991292256144636801166437302570927012236208865386316105801544383853781014398454091719007974274655894652971137861745231633084513517692309950522671722803619744849145400273471125109570227458337275049051128329590259421183538239047417919265216402505686322377027185023473672470943149335597973064750540026679523937669603497620451849276598831374629965560951492355076435221667241483679283079989570269084510404391994705558330630266771758263604911846774108423731250329517728231035544291303205762395096532992949155467466705235794192913471837466698176299494737561379890808591615390805921490575412426545235944686825580648966613705245599007007866869743486474153567978935964848839425617766166570028389410621866734663991317477374351653818896494447034379504324691156758589539786826697340623376198217462608988091857083187983070546492441480946034522592770617132489605663233509202964637659916979935436004534009061384127652553119283640478488250640151987735269069414617814008937619272564403570218227831639943363344110556621692621614647961918381992398703267672483272001969300944439107487682071300685901660970140123058156180027503615927263451751187296558541269856900645355648710583570273701962627163562578707102501072147613853699179348115514859329806140516313048265294178863878437124659672443157613254766249286265401896335753876035365121431595507490409939691788669783231507964017263947900159471327847854865093632050470268523643728514822948542151231080192578304675263302722491147654850315222769129047434014910132326858069126478770535875306420723366862863861066781556798415192914222492804626254941303759585335404663408020134923580045680539193689908555595513168657193164652010819545338781818649893120318890021589556328288798064652536842430443133469716088653500706706129149838690333642107010282144433236877039245410592870842840238727343000566247268541733082237077995444717772886801757034048260288566449564705638932449440403400025720271249948988292151675627780001273388119504041011216114950457680773767562929551155467378158066182216877729101008915567158820169770060448960947624092651353353631657878496067746378944107315082888284415456516055979644575836332554211974398647863178401896447344410355833039576497870284489626210226681758870475401141345249128953925279150315535936136634796365037983141931431636564340988956367598436467664237984879907425983583873186051515688601095140058430068524877427915558706766073663982384126079522322868753871506859167326989882108371878424334163794346462771897108617592700836807846393666957698464342168501209940510912329861076405058013871455538143429249604112665571508720139515193836847084710831044297443128390780873333997949180772803107435258898950095168563262933127825633134212223588608258836078087959984767053510015477087423443266465505441499417747058685372905735103529419457969377481817695883020555647075175613259548977492084043816769742404799606112988399491287087705771969323210683118860214974529757902526980664712642082533714229029304954723964245810093473851900944648760126545900021123098789876620547363427353123117401916196120048177127374420721547486596402375730148065257401327161345458930154687380452410179740919733289987254454412703573265230402828505554691444677116973137348014987466250490204374380679416055999542999325087238610257053197117291971517941131602155574553032390499869975249545155351858885718306132117071294827327781972351076625967537735229450191448913863142034770203876196662920947797065000984184870225280216740402537559708342732756214997494408906633844829633515795810436915228120681640364513884912951759517511421157569162297089752611148394823389003683662156693741008532798174532192793343955735089631279548451781379525237595327132636773618192628432647050672168442038147906471485772778622853748773118351511674534785852705952370614203932478128889932289772321008133815883073690901874548525226421270833128803297192105999602679910257786137817048790132656291074940420395924931215451785982319715481045922263979161876806230797254186865321105938158626369066740300846009223379023764085723855145597202209288911393538805987790897608908738579589708645736173760588356219780962186691729066180529050132299754620834376009576079404936498747381236114522573535159554211672621074576585610794012522709617363381494219607267883364925366559257028554698337753371895636595009832872198224662063058014612266577391706755443584646209092867170520688089577672498749534459567078095722569860809253653248491252908157289300375734146249839929827525900250342561535349257418671901243546300284696008483074172016722161778850600332584532346174712069616882246616911033667746166166885776700676839829496609963697025907196359764135130621667625644216950810206293002297431873572039300622043729913186022699812202300364726717283000148493812045647637834879259090698871162959207593305158871592974537212193106255916757710337806635461968501356373667819607650143116303423589456087833106430727507848392967243978718300562562333729654182696272301924514025585361560324185351199032435353509623251444928676345930793956966166557673529577750045419390767654685386454963995772311263118120461514117862738275738494688530718614640722764949520664679716210455413860058936255733527201824470633386920795627479290683246070312522697787948891575192579525641229001098550737219838073814887668209108831184381203365953662179362687986037493274087655687167694647727611100256929358768638276644414681804454398851298813735020535214446073178687072325555416015246476677719783162423504878026850357055138999046040042612109348163999952509938917019067206258364613551592701275388806626152203527732926763733803291661267160288598502801544637832921431769797009326395111190055554434657114043061089497731952872442547420445649380756273163316670836276206474353705423337456705927521297814090011674793965318471520739699612303252987630910144466893861530838097075300944418242574843513579789897614084333825393784079923178737842992095454452983221496748766207100769140265644389365485880266984088914768030757655280506098892780607979278144344874549589666458267436947092590265775355971590257225190393564287952754094970862244669379952641321193020858633698200546415107047395723472726930638154763044357482530340778891070250455522044584975172640347987311992359400332195611369033140301912620243152209949776520088504677519599403501666383992842752095577899537605414481863703027187800176405989310374894079437324512603530348319417775079159460656024513640170595126369778365017679982095614538811333559891343882342318214960379754175372271234808213892376532117258248131330834676499359734310216906454874778840470654546999581738308731825404396050092691701487789411367638080321283841282558553135297999545887666628690215603263712038280224264334526654992268484186961714657320167588056254845619483016223918829351141807441989848794562578287205453043270099428923462913297988847977695828525588894703366166233300020459664909613769138732697940172820977948924956941639995759439451840137930818830114585456091293904324249595520623174935883442571270528748958842102817006763241140798043428953793579018083801735737650637506462133705843112392211494707845591097637770830980521625473461331915573193115135755491519569266824716149773599028122780102843688084762557660953179323168762225347992744369876124830983106586666027437725459191758958904205614899253990980982406337230462587218319503604830585327696301179591913699703746319488145488956927664316720991123547307119135167872395522942678389738908487392985308446021306403119284447410949309629590923647674300367523914623507311870600766050489284442776596854221481704936720695042838519938580207940332140182132170590322560313498679722643018505375298206297057911048378239364485205311461928460241214999441332063973713332783123410152240822555393844900374647933312568633352889769971603041124249409500001896958936235506360858261858210174625997970085842015958381031862763550296702040231491223089806806345643775337961940083232264740029560747342857366653065160408130907131681797715094702188523135640337063174749803615507345507874340970149595334374724300501850565672174868149517990981606810764910103569801461044796237046785708461542713468647337425608585243411069385556300471120187409738389948526047598465133293335109760023645003789994748586944442222472414351730702827555729115402390084466236301598636702857179725402254239253188370196804064755602604346124198848346527241569814050566720471350036755358264618866911430199659147548481752752501784989461123573363490387131318156680644683976882916324976514636949028882959513064558719092402458668922699402785874100453683017664294138391907714042106911072316636861597074381500244634972508730217323974239852282531245718533740324495862139931571615013545301986315965229253276508814886306409625014460655977478548997946785216417398987706061787984585693069496158497226728618578828471904688854927143395315515320968112121256958212904848010515486398900786433985462520835655164212272361535159599344511956085363643497949147904951287836900000305057458884004208148861380390106026994111602284801596985774637111371891147064406043677488552626891914662797049695988575771893580072480384511547132222278804956187900564899261437330269833365560157041907924640091393633591367357983247241532507112495398854445611663938118966980397192388699395159963287802409452704894111628504151417516079653268161610719033184252062782446800265342979357160466589532532522452677811790102597541627976370946265090561887072461323049779098461013063072896688454958057881857545844928111135169238715443608239190475389699901339252009759169706702735015580288864912590011885784076100454856197378202875657923495293601539295729056576822770229901055295566848895381515985005414420355756871938608998212085294603264680682547392831695911335584303358539176641919724700732848896233269563032672861439260840582132121887652688495159952890631526587942887000077329001372674149095834202104426946703957447251613533219384405669553256350046789272693188680473966402230339611568725861413402345860881137032773048719701941977049141658980644578625473446540074651351996009885159768072638824420324636134997331170862953155485562501733867771957263668564352172688287951817974185071340822622211876014560224863613516257309101463026047883954574492786642632435077311410842746286789781155656389650228262869367016825236588730481791528861290278084468165532149312006738782138127950164298376386194397136399047190860748028463510584386743097222807293288845916129763223154398895030297702139628412260493573755236416005005687929944003853602086012790967237931957650780590515734086711493977628825560852049071625611515777650555036536038969165215849841603369636023123213286049981201869604863759691615749868200962837874712664770221170093463842426107999875479783257277645644733620061312665127346807306119041361545113326627801958172936458880207136330289434593675514416067588281044189096399535537119645857976353848711572184818401746705857714665602901809819394398665856523685512053387082893519233778856290819489820167715778530098960032465685750784534588803832633419679378288547441713418658168017229221242146778035132445167487955211993456196719529013408616203341056587870132161385439575480056691565404116378558594612101342625562622303534877990127503363533634047561119278696065344624351496294176321193764993357774326833594313300302882325743514311936769849810828192157050242316964645942210269325847027644165694567632861341099549672173585560979985622734778631309009286275100481891594386411609139934352986623275096629572445115186937926604168418324452513502346724498747354638707759591811778546177058357226532274776453147283245797664313161348406422501899226246258116822625043051414750255863062221420354623062927493417781196357563641088778444243225992420732579913232384341654452862827446019308334123280648038193806079061574054540046471176382699876795788708364118908783651658723883137708746593572343329295742017952815861321351183740205259546459974435843585933941059558347465301626674447272105211613482863362572757638673240675971889410675032019822737031693473701047677313038527542290634962924817229750330787099266864057931035577044121709347505588041484424943239651451513677911690462295444485464736750237590542356115005811462182828650895053037977233264561985377862269656750734233258199070561963504425733345589914020457842638309917768428606483279944572236681926395367907292056461690372437928415991015501843896943468360093359433080224994984992815178380536845918315892101150812926971066668529472838289865286749960652514231992544501546943788182101120045022665556426902325486412861063237406289600516125982429544517440725284746449282390290899073517006262892184775167348597001214084591408070806437092392533230784852714591795946953414143436145924018259407211064571151707242127006056143068751416367951395117503041776976786838593696630390062121116664833821096259652041650490687169513069157826968460556805757712388706652239512969317040595869174823836289101895537909676193141968450928994484090544839712952227414720013670449867628258133556093502640240912934877156622734519679370958079632526892249861975906878991159193383710343030038588326234492417501133570114114393829315602503264064611653794927312677582289047931274409470855646272698783350726510965097395671441190098481491075160638088546520027083068740132652318654903082640340346491843753557042744174317051447831155430035427080896456358674529965353270014239806365701691694318237866081852478311165522236250359617006711454347590547320966550661754874207962946241122905908579063401600318049923004234246471480606783235444423084936811675814327984024640118592807259131494112840855269245238655783083604589220509045821370390592590783535533483358901113193367858208240760421387955761607884591467271506275871440167710504383010070616028773508853447671449103347301923100838416605448018105347202945048980242054765315502839539809026463060067156453934596659392183072158154785660464093287476106205682491369432622424605164909008712722227613450722475159136978177827001425612669326487712372187878695594355973589592239820384233248945026364925577798185900833955835314036560205280856779706775669902931253406764385008379793090044599227735694406480229967882327989339074977874857236759344496540099159577162179776115688879387390137763524934197554239793727815496695184471775838544863006480900487374071029823731052843185351401489486621409559149170078314863977135641320555792708516831200450390371575825433587944650947211068618330342281733791454443216328889293511905171934803711964947799080223205480798049425083108490535333319933228735918119649483455390718397826139700789221442387808141114246870670194884590762368834384700184966177294105351952658152605315827561776564599605484330683622097796211013007708551605896335849394478631840691088736177702542930510067637370937582604351459341810216865233632813250287389101140959780921925663837230866215191669180903552265123801452181302679830229174415245271630351346891136823896853404454248816800002311079742807012752658543089209962244037869658505899555169648100971423546080945734250362733576772899373487275023091623756328773986525864426819246360794556750179386522971839779493222118495182571100923451486224123896446534936665807359587076884055790551543745341936436568910988198736768372674443284802391784349820858872978511047449000125905379586208850227916404282310230526933468295274137017800798883637795079886945830794668518534848927941985022831689233799579293273755850260633218153255745265521158527400034272379900369340042638004213677015139345768205741571265535641509072923658183170739628513913986952107450472022673240239897059442958767124060843667195393935309052258322712379934731754442314917407804006556069430802190405158068576269576554887451175749056913304291433253035863547207450142522845253285955412463370854179566720301044606735707040852983927311474393475278076669094126596358454290553726198180586113481449528138689630994838312527833042863546654475757399475109558689676046787111057842699090686377144331628640353892452297094340536721831776905096760574040103567341104019655400972958206063217506905965078822180086191375688348456879078913580081976150671189253701869021315925673387507317831561798948040215619241179895455402493836546900581452940765338036255763903001895431510365994056572104296231454504326868584294299450296118131532918211365741755686578201055306325404304550836920493360021200814872182812779767671809092866737993126554084455742811760164997487871698275539924853293382034954742657468345463482538280803569870769430453584331378270977058890391473604902976360756066001986132044853611711772061387745897411077914212069636402009353676997719680350634375759668273988646280876009042981302408153491037113666415481436325394346746710118955083656640486655854876264407593337519278021523386968476460520826803764563279467933805284852091545440952505519979126042912175998803931508124377265770697217210057570094060733478949729560632054421844417425999354761327771898942401084443885800813599673012731455463593219911887643566949387048846196816478237512190728555059775523522793078463796073102778831974751063002809441183643639919613759155092943873605175791553298421548343767565921922363962023488514907503971271406527476390146905645404480768018691109998742239431685813248209790384106170230280609255306069611447697741805708689571684569249183155183522499471777293823810716784084905940709521737350929352075783089592722726899074900909679214112441982999977701836491448724542790675193083518673929581352050554971498395660339692507127604003081878827029785173849645229504403243201025366796326514209299136234775389684044458468061321887919639656188089690417524781878815315013114290835378310883934516157863356605050169439557844184404835870893936013732600966880255997596640277040387529236878714100354984669891054411410390018241075975385153101719577312608713234836676422350598543985818776445404066234133621211167618543624204457046114614774773463706638848155986992791902815080929466379041089591785891584918994209866559004676354138959207108243996549361830785203829760056378739037531842951971960062287342960100769500264723539940701365268908149650645399464556652001534001204941122284003864729986084126001578418112649711249015173003438780541092918169642188414310004788640643265705965269934786840139470961931696080615382065099777319172770794677124238538394212019216467413198466783071472837738128380180042888017491557526080564805444805605922704693942644773529428325408730261797089430727258640407007159586156202278255879411973526516468499297698063449139279899307001409448393576415044203972945762183943013200215961611600237348031319764013861536337984896504566731792791026658365091262165357324766359739830286521458737730360219191087495146468098632145089211797025581905226404781412510868312263328686508136717396567121309898332061558138618654367500594533365167371945015305675976137918538950353410634677921214847646354817725924457180940415642665265000144463334814287903110374480107621583085260234527986901761015697452302895998078594028927018039602267233553434553902832664705441471693885097552157843058830985843235284674350309729340443231371120350210393072903069362004874425863968402649172374119235571168945741187498726946010390018928859263712355282807158202304752374795490265169600382187658248127157046999916152969158108637929569801614425651525835500952408262704836462677381835902310365185256580002350490383778907476962993452115767052902179712450038356395812937779303924399360944463599894242189947346929159075234790032779002183479052346239799857895009421937417218992351304646356151155271366663314838374274661690171485212974106243875947940751653292908182720499957555813838030477540018305372842748593899013472627941763028936234959012077192855006872185520417422387589860761178141735159014069972191530913634545951706246097646660332629835333888456834383135239304293739120445914810281411796788227920835978612807730688818072876869600430732733623162419175190166272918784306963283050189277493058288434040926035612036454417797248189990192621534176459332573480865780463065414049293601815369845633119651570237477030770380520807727756324077407238462844092977703720708965346561232128269848850367675474033613437333948983336425326885065668026072340902311208930022774119473672403303357329654003795006322402124452866767564210244274269493871557538726473570019762986451115335977459374133556858314031261774081369982506583049859171660063555645089166211068869143909054271534175005012168282951812164217884908145091214644024776696443221202046540244266846756990253917348471795736095474967800215160219729776104331516492511966099796957873078235808900871964188754334512118306301005788916689201706922267094790553977319266006824875345853463214264525476723963011937841148349633324450501379671444200466352055616836441860735187331344110739779370002707898651007732418335586002080766512708945056515435049065593954175890967160960699307393572023282561816856411478791115664713437480686358280201068683921381713087760341316091993377441098014808045172544074360207448509359806040273797823738858152484780878098637496985101116307773873898821512801575666827628144696203382578932224599780492943225734128712376599828390036702427569911078736639272738673595398861674948857914804899917250091397223153725291300073785409847527245348273548696156961900277334048958839867598727487387667740647531474710589889359115436026925299748200360390749972733300686246556586790108072405905867230110550291176210582632979369022129938785905539430424951435365045768211870924376285452510037750224208183738646027756317924031894513195999402748923999733738254966979000679415108678338645727667312195192333348876387862009955128214512160591315954465530010287638787171485712847740419877314647437184110929155713216091141951601312536721390747175839955902863094319354700285736285083692653040601063710848826712811175123849379683230598157099677838473362547788306064865893606865909073621302703831383817466284897435951664202924708558639138479279680357451541464180614898717761988364988650265659786917640588905179173618499092399845698379533203228964861944443806536083742596675075278412879157955309880653274985223314984827012742586090370307414017743769929061339334600517110883375534587106558024528911112579929056373464277249578118252538584592491989260713921167332865688400875186596621623885143129054702592083741602722237628683540172116522153855432783528533426985798948689260228170164726657863323040360300694015437928028636361043836327843316525977907236285085902093156339658961654508992942652597794383849978940088093665661495469088449599150328823610003725931847650105702996347158907178786337047781109591428074122382525058835009379476927918114259741268063068755057074392685373804890472966286857090071309092953198809509003661898785875784284887620107126529887439253275988539301684720212161011244706840821510757090968581551320897906662278987370228476507806878388998565922191367018026182048117146620737750946417561404711093110710694307641460348360597414371318078214716918117248094870924734690132221000103699492312498833010690818165457805937142851408225205140729696893779865647324570699819174853248823816113001633366459453168726146504512456698723500298438911659345433824625299838808164720482146219500777284785185199619878563973560615635708468945951059865634417510565024439009994773081632814376801652715684608859209178184551574057643194522319156977793826034594201801278448966167236641967070394510243042950929974796735954043325809098649183847252585823794009935938842010900269039056149564271278643499730856720480899170388512488381214820995091020907555823608412713970172409282916314023398650641325868235523577757309161340431055030322507403073053953996583512398353603050445698341211538156154697016594985667184186306852160467351951743065525351389723094571954134397025594836353406459130993621792675008096822392621524274379371860401159598665206684768027594309643835918071915268257733173651114235722238978663833919328929962028665180376813956631314781168290896004082540036062484538438199396637251722494915716497901258676870897401326959842206880003489483401211052723848180994367509957131154302921014095412595074843540981409729333005804029330813607214957191878952815949924805613463132900591051357872751002670822853330612763870119007253163922566340066119894112604585050264811920526004069747030512465883413357416263457967472272352810752577018316246105105253289682487175091458376461161224812498654017469421177486338944299490861576999301007657443959403697597236495481601377618183060272971627974574841720299859930374040824696764984556212858996843450618063731525863119726178679855311532318050391224803193428161446760339810115504469899086761886923147422442417467331024416645635366838912721388237590528559935546584912311146383024452210484088194083711976980731239208634750781958133507381779005598168619812051875102469917205238869843041865559314864164906262520926859589287098592954064713285759849303135805637513621066407834433105659135644191601566855610338834537612830472023163756096463768958272353882679713435080792859977432758079674481457522183113600344463750261236097760516904062674606065310056287497739489375410232405268633442884866326133998725483752329791795665516005739677748556798560033164357892341283137822897642468616332497344409353409189982489351995975472563264044177069616283723210442004324557725904931724042943714322796578368065124581284684405087414362243006205249435150954648266690573705444904228756927156422610737772597691482674934070241199104170659365105382489067775987936297226834217673502313499580181943528790634832116486105703294955024984811983136971852263564330762089312766845999268043555991479847631046164433442117725168695900714203339633950852004283387393946898463851581128663591790406941815021440312183330405131092200856326838086227145752288243616976885747721446467359210767737763291634912402004770641148645215814336905864412164457714049126044237721281731604764018545936973254520651389734461891632899932762326302177253621469017228396877180104576608946731481573014433657921907134009671969154480955601959675029422503699212488335912218137183914934154066012116016779916295400438106969142494218920623946147316647706901992273091540286684622399284851525068945835996751887391990217497179056460142722555882893403053489176677101047491095860201944145541573207330607634051195867465316698264710787914743253786128378658840144247473466459599316929772158596528056050932376416988365281642149030417403288927650385225626539864203628441020729555753898093836628140233349754440307249304166738870604270627651576742907226744064637546150074258132100316610390555895626439221910506673865478515467054159858501551130795392226284367106507317231365644279770466358361541577323096973967608085054686171668934432409810329139523855655409381108146580662321662623919983288573450359118903283730733410099818460218740253024883665958153698933998291732762840551883825536731726934752315016999931793381472023030398918160706473205690199400848836760305402354486044997136560560303841952184093473596535208008862094008739533311423354350910069037536459664332044381609277993884399267366582153000322409336491997418055341743235755244182978095145442291473175808082551345625330318409254914874332690974459141409389280837138710251124004708975384455600985564902294411407762468967956795747737624647656010446235260971734656690362966354692472584508893057382981846638261062087011091281413629203288006624499074913066332655972218287206397597513928935716156397904535776991531023284152624314774878312323512703884628031380182186843869410051579456598874968282664528942244287112631537706465056498304922016434590215534429704997944625745856075949957862393181687586130383123711770650702704818719522365154540377160702740321382179333148083739788186732151528840349883112270352222643304936346423779091061050257752209675854556043847618827506378017599171941340007328610436447394178738151126069679830009362666848085901385056672374246685846375577018972836051104047172090074519984842833759858527442630717081904862401684299779791128015283013738014688385922258928840449817986205249945307617117598642482258783065642104817946440713840623166363487624022420688506934340139637928382221772878100052370441408486544679802014708534770395845509065817805489902985791159226019228136247720985993803853791779801683634714322341494789556722715477495929581877785339689935881276656068956460205815604147664312545199713469415596726470100277216456784419237015398059021543104718231047825263636652172311360346308846224592027357737789468891418225591958943043830603010253350350296052696251923086366879623733363465545911977502911198527267107590907706835031579619599284773948798031977846407416770685399681237973776116975992446209538123502629111952667455354104909151816497598422529064769840284185887090717122383932304628841492584280213722110724424790654397336697972879916426744238543783198419810145535918167774421786373058893109585075994989873264078698569255069199664163246374261737497149501693473221789132299047693489712688259531654062260686174829404638132679415758028860670355811370167443373070075372077715344705715262317573372904565077651313891316328657536081812418910089833950809205850960787840531219586059236643395253943420853676975119777746594301800528691622170870788907191564897972294360916201121617867567343161591689329586151577153361913569078101014047047039119671882104642569963636739581195119313423346110186996437024776078599856006186408175760394260918036504727373720646975608819931328440951623640462439436265723212150108885308831468969383794772404999495201015678693300659347003876731057864400747037787009768657141091616434403996750874530800231653426960815338289147488964789401306593585884595327851690359340003799445886954402370636740187459561468070794821561365783412476361452253818104565972763713053511466490223303678946969443737672300917876703353661067583731482915041677081736391516416043935215285035830915067257191964680850375115779896100024867324739550664382000302479788599384158150519199339770394034838935255003172095170822211586838029054803354721928790872641778651375336015509213227283003544593754177506100415529163652483768601935200579532780527779249550346063261961280860751872781605503304556344173238867714445300703772307745039998113914325693557009983051105127806485732638588151597378016442050934195670944511445624763467225850585229517166153563514991895185951915629617257363854893110140916297514963753996866278927729932071013641110623722282383511592344654261406498391080871633909874653141356881021303242027051298900600850071363794704177417597808531645817608427346323057515374145825455683496137661857746159871204425352010845268331041800364915896747087419281589135783370039609631941373628341131800722228470709605822485400540392154370886666922802345384593686547997795286781784619530709265666549967830369188792540638101842109113549564413588738626657008903939807666095745935162543945631311754844115782279708089816116722569384977246462317678887010968902014404677439342415640059890393981018112534452608207888050836673869167332228085340327345162158322704226884663203862198347062071798343923588368336492517769409533263520486635287858015627235974768178684140148379893610768873781223126087158123594903664409559902622764878306839295939490197687355217021145108288630114602961966856421521265141155843712929014552267998571551253041172513681082672853030116911159541023898712462221988093040460808932553982564010331972120300949119686966275549390547905585673192430222800966315699791345473778669779285969307603865605201151280975620242743869085546122271840269223734379798479439619201279714146685462753995216362722687505080598001825481504505919901914904173442995469709928144649842792670370632877667018038525736461106326810993853391141249760513336001054208093431713886712153549290311089626263419931685982038850787132757298502011119235686973343211418500489539218246228031486060313133527718327262240828510632641439931534015060632071389490876363655461589935416898712603110490826692718441472248223335020610850419487580855263108628639159181130950360903926081070478001652820542758573111049864835506711510470206389734540165847227883873123793896715292990309384349339470040791228491156697513261223937191127867142451190618360467273408240169832278030395598462606164331441343186289662352815940338377047487409031576773157346297649575449415052656157014678966296272298053356232821704557695156071193481427869904331038528815268032526116630043530496993957583755866600311006744933333832437583406873492806500790691695520319373218906784522812693878217882108897770668857433637087103924025979835520544957195493083184771039311885666891606414562785328213352797011485101786447618258045440933950758454997399834674368547344855958278540541415214923938620949534627178085515191871886380548450701638821958786686746991291289967168886597092462650982860740532598230032085069009236092051450384578694742011552438132966572432279488225041016853165043561574157492545902650885640117810497965886644974802271915260405812520511724711494309393149542933772537371062872311069149403896974063042002860160161288080987648273211247818755667196454949415020642824299943594387289079444496679387789457238987140146001770964313807103016540729925744752987184530290247604742919916898627113486147577303975008358739239444684748713470628411621592763244523324466067689806866444364494965314005129971595450980631540627517479095049155456022068042767978331765566252500672536286851854978829719208459211855617961436575940983567322648753789066324325228307764987856983531669762331471305471547730828060935571430279913968320636619427867080140339400418166421416389527002785183277663190564386047473164357298833769781849083562068034171436840420312617712291646041489751878004752733616213774420723950860525884041953903105876026694328250086461712452703449655787605991256272596237078599885986885188476545974147150479714217749578581496431015407912428864780878868224566698626856625867325058418179069075161461621802097506464158886276483785680216351185518827349762054630427422515555226317724456563946855687741860578515276625495125656958038170123615410733459019472440411396552223993754730741112595134215585771404905156349957154348693751317410854560021777376294028369412063482749402384694518439439907501130829214365109739223358391161881092553930049725042042876616465798057631746573634109631257448596057583308366865305184260684851061842944571321547446520930150694922198490625779937490125885174118139790070749042517781817161547814963632858825180296107712691032626853169305355284639384321835182572787920008110601392973795345014569176877841853961105489080432193820281381332039712266132839624154949154515499812948663404648570722775628206387621383896904628741608210544847727826677379280146168342218590362947361882500539376726992319678547886280419725781494760087516090180162116580711156436602741710417764656701194509042395170131876259191920696720222808794078118180176706224373174751221958812730859424847975179823591616852128683979115577293336770788978703086949314723226240802248635310961542976636230063975309354058953701768497571820502563082527960549752065669669764489552100993310000712839198434637337591203539451545667801469457274587600744611684909325341145893450238777621825793428988481678172239106672585444590049689010223616515039558829071299019476222110291998372235604846994792331909974605471747998794527203399703753610934545219675353375205306173524373714497938287080557509326256150432847122696213523910115272434764124129505896331847329342687920935404849065674771653187358827612710032342470120339346556946321961871448206184688061559051988918183245491699602847679942276496212879247812990411020921101221879973442368930270349542243307850041337462171381379106246704628457660134190939883313856660261777826256517208499062846801019624757742052386713271395906118052442991136492095746493084317877066871438957034596325891662258166113334493043881542562477593102522720439573468993172024257661671246046615969730487588065059282132064813166510558675546521491776071608791388172883301512866003079701770025481516115434779750254511482793803737724302338132259285042860237222919864218146873580129846432337278643669825353910385357906319413142837218881847946088348019567614888888533545014346139753734733574847498770810675803799922635958624641289691339103184211082134969779333702371417592997867075107499158404240217239199795215968984345803881791331062695746001725021513512809959815546815467428127237732259881611068766041988842929858931758367877257627275303349707203619500445349258543984234853011212828568026862848671397701881722240221015063367934001880605316444876787191568697365816660427938582248292911218654608756048056013933454002755994688487954408263084958730394364105724481324126592814240591335919171154530718618012988405612658071947427761487911445622176424087382736253741599091436958334664476989467628108273616280253933265231038501564985475054054427553877775601632777616647257311646721747769896463418494872761569795052502093751333863029260242757046800923985596910519735763331775894995787042973067844113469329451795370470381932817714903768714545460917292159997962143370364389438280966504827543823902232404555587904787070789745892633019056400213544712925398779965006076647720621027040016122551328342542851600694210647221668020315571671075205200805223125773238234807351124477168134781178680712155347412127834230544260840802130001619278771234739393595135424912244759788503540720028926167563802218292981213112821897344672923150046740378939180567559369234425545023417927812242638579605708251134418576528123724453184958444659104005736371112724964176792375293080593011264485343963817484881214766966776154310724392244510326389870242167533348937860627512841331117349016108333202136455310672059921240414043745241842081891109660752921821607525757726231365444453278206013236121898065444963469769381625560123109597086522704522719790721356562244645228383328589603788638510142909554911613986562163270564693908868412691900760362368666860199459562302252548374280181904092866253773366229367440425529919390188071141921012447451333956568776444529418117491074782731410517287203581561897344823392747427701720438262094580599483555947755448846830870888652605816871259811146166626941943645712292534084711326280399311717858112842378193897351234351675091799749762845490088920523312169494565314394068779052850770936090664385325499945207096195555239837620741250289208495068887600476238935800002827215287413272750105661282182083487594905750289876515604497431593376490040078170394309589333063730304294534721863976403417858240620730906248184688559021293542967141572379067383691920081195638479341841596994912127619894458674931994303350944362671031317266353689940548146437092338525125272344985327214968880762705220468197161844125741445078735634240841759756403043378671170292039268741763806021017454741151606155654854133387064798292666109200269886038996730745902170281053003325764565087004568143020096376221496095098428276034540871776268105643977218733375229032597473900238607225373034122687626689028372161043663893056340753860390611943866056730064910423965546443611037697110130154672498082614471263414872723437839795539374570841302258175950382054721762361311972816179940918660626705422314038071128338445801326101806644598419387399356605517816513281165649867969617734292470632877305150839775861152643723223183676109056257077822859672083754972330909973132231874745581270908644692873157039845294490802038456500071718979576919588403124308587893275967116696620107618301681839822133545793128924197314215318321761446472953356491653112775253427809920837830655383576535206512726099706454732909904824352963874828684325345348845333070301858448403168949070412834469788229913159278117921487916520076594116330331641322482060407112874745358502067700146618386688542724484062179018639150022964953539489473106180274988555872724932872218422735307240986515470470310180329050070835681212105385922593949295414928490819712494535283222376269394407873485367023839893740423619633167567991110366799303472183820271835858446637454671557721637796542702051963381406113936414399569874451269482482503413228032895390993791254731600735111887115210466929305600849202809360425888552014109303531012014376589049764773768856767851947816294036614182946684478961261639014481725517915938315200800290969334543420253567748857174268013133319442766636199901312973978767135646050944216657910455234947932762738162550095708082951845926390449796552859371378429053516337052488104230797010409142170363300031612852960488551203065931596617050256628485773545363017218751245892743458549196110904134130061494993625490138030626448074481213732759225219421740852264396588700436036376050113262187805935419871473275516195012483146812892935730500747160270457345750964286584069191216695077413340171030811203512178643095390254504469945327317765924958621860311168351989865958812509801422860534809845787993182025002372585592566178066100384633570996361747396511220212139656011383378726428661241350777988057179153416254476785658481704232805705886103375978798556829089279171732448403972112884522637367625985283843695215499389893706706792985382944773726491368060330319102036249114948115861041848494060030441750066294074306328276636215658997168327692393579958873258058852287282571239654061408908209237883112445733885670185782450960160038215128371387894635573740110693135350964577999097930464979734650879512990592795887393085389531499713108830915351208348631249844625484401248639047934488314931008097231019229629994565325399248693604167276650608712916616127472125404617443053548620594225205323835325837157490776347846628302385411037955752418160594617710723838242410450579729656760514974670309562950027025626509070295151601586272034176904938378946070543768564408010684436900581461927733936536075410240402457014660095042844882853946437955922694181398305704110550919884847370335847242098385738965565876809195449872996567534470949043497218792107029285165656799667560876081776902569827036718015299761462841109603309660561822706469772567541841875219969218007821973837910201726229731412470932461780807941333499054223242980489174664801500746689143173201587246982771564978573831435263729366784875724130302163768980680569410920857603964936236776225300121211149946934293960430568272067195938356152994858456664640879606106738987034776949455040542095889867772875234175585283509076129464174060219098773137964968817495880487540755528858893151328428220022810944390186043959813336911501036745801365682552175223234570567020016119373604933940600245162754355303471037131091132928173886919716365449482305901716117352480396425882351954326860097867918650114370803254410592395409851957193745930416104949771314077625222077182347622075847567761864814416008303419948382451946635042714236522621123962675772948214296216881265396104101555674445337313020603639366203699900006512940751508781889438305182052544880407383589520174758037670172457315032632791019972794347796387980331018371787804519758244400338549203722506846481446777739958392879214035408046947734923044306417731849034140624125900584762184149614409331219907707113393675637938588845321978141348111951110035389529952199223089207036860070997351027768065839831623269034320761015367991247359152128814788107606015809916891542245543914736980209828082851843704259818406070606109208426705035973016793659564765906009311308906231574758093995166715433817332006742615102932339704317731848367421893230744281200311236560975408977399347571744451092615991104010947780927802581568193584894196675275068086232312687135703499442395294295435628339405802259750462741162606585254356241409940668339761699509293331267226825381151203891902606371471630873433036648363393575613455986730536432488655155623708723231052707164192854973569850755529043209693477120884613016047209964129398244689515777399120370832700448564064882983551393373627436346867702475053957606104722281428786204007794952865355330359720839439316400527131431420826264162104008659129084481969476270975476659093236625400719653757194965037870291728425134366175229543308740914850645298417231805553760326567091663301574831405875742877481701907347965271319617367662431258231328010389212220533381525922545918611918781503296160258310206923691718359240583583374237110341033600099427412051554291151961995689308796438812735301634587435531985540705264038326666022618762912315647593495855574786127624132293621470394936252096911462391341969097866082757154949852368736597385178434285804395794237373441575722064894098945066187022557428586323492766568633679468086823473981142689680408682306892901930346921393946028573571377080702811615105745661308848912803443536124564091278115598404937060002770825701669376828412207274796529003323306483630382217259379098021468857947473014486268097609823200189149764113923149928241829767132013997483708166977919512505097333963047740022755883160579924456517321845379690866110928740750147402000493663763048128849347947214380592665411436974881159260389580810416591278427319718039379316414203635695361508599642527628920071218343345305561175212848820601185571699758878572433590796686464059557313191493904384622621078652208332367210890360564559622821537424433847720560134158494181063727458323967885644017926774099986249869496953114812978636162165168552937094984925786548914685187341651819177665324872107654337777384931571277507755563826973258056258749461203231441278980259414595047592778175519425243428267681636327099386247794322585367532279678673668118459625100766381615125039500827073645221966431189115919211454722015188643111332719777333442479223408880129382563883241899335119590191549341670649319683198881409904844233887257231891095065368004593531097947491933176946555580474637583437782473805864022659429418401851486811947539313628941058680004239335760023567689956800891099350209598226550199110067536909518626517293940946393591438621869927987441098099370776497010091688106598993755611981393222006680156098279264542035459808250544979803793365513591267006848090786128586802763955643923253582829065841730181279595255254203699886874190134706866660376067898483708036656069704240593587430271837878171200068168584224573520605585195601752488867680568971942925108806330679392990246904591936517442236780414930721053043355269526188260457363665364099607085883943862260403749720655965268530238428485900485844549525542574920187155038390417608373423478355083999901439867776496416556390321470424997275398010412659181761870864616045037084062937168575479765154940308603113294353346721129154125041073656339439218682612810876014985818066811550502813054816465443969517677164610056692560334378137716418378085678152401102298116566237964477603460199200043389009920511203544430958421234107825750886351620234198720495047113626738475414732081799782384785462216833445644858407755485014052773378237550125610036118257304944275680298288123962621388512382805215117306968035698892591756663895791692217474644979530816201867380610302528127586299073527675738834767941837701626721614384125064955950778705213707780101696053216040838877386740627440805979160332320091535022372775323113350117932356184556774788384996973144385811237106500008345698951961108547205357711337921825705411403798426688227783864591988859562778940244542756921910204978805807988724674643730836161262311147110517476114111567862334959743151368023097910649878481783479706056339818921285502723335065891484898051453837159196457429040378386093900798102224288640500428659641217752343213603396969834149405686559280628468639328468610247039271388696096465315304077675644319016096681474492316427827066371783276584520231060268382483647990485079342763813946953525267837009817905506729506522115362932610296762618218525916228258945769766235557677299971541056103860626726160616421910749423100377531424135760248362597086159833765254436017449777781389923410543660253842659837915370590262770673700572292003779479437798073975201037352914542043812257854566645074283701847310120087457955823530974415394342654243203223575798465820265502608927148342657731432204457116564615598218416065133500943908793357535896331743118450188448073605994942968506843163315753254142089716716732750114496889920896169003064096530587266427587354470080140870072364380359025705561573069588972521104250735946508143108205850613096461660756249707604896792413143658943557969910814665141403422850117289758839008004993340001117439137317748532077231948058085157881041422136830766128091327255018163200600799421424841925716586989521134685924329499222259618917035525722109544649385969206228580634170250617801326665182664166092958064007344739524651972168827509635140709483857434460641228652461859130207396985023958606870065700942951651273311095924546074249600750264500424167963169700709722265258800141950570079413203415567474649906152530329162607589942381296245469541467296284294488078032217073396239114789070805655007704912007457588153399174246228758023989157769965310770531421898692336001484132359326286599729215165817931976420969992349264192495798622407784009053558632080426002957950631055538591220684812283812517266187138869080609033415567659541684798471856299005965433343860952055845426213994360261008820364096441388370017951776402952041379587762854957365398626925926438584866159813350442788051561516677611428534496486813071001961494729230933441329029017694951058501207185922933512357233838705345523178882538987652625965039574458359131167140519738762130846519850898680993114258626736426362112533091170366945824690525800315170357557394477408593271026795857988701984669546042466518950459847727098887715292696440752948970229334534182503982373373929070761928406751869957658397006782846619450468218734338450758287611776736356372707757345182954262547115875173131278673259367224255943219218406975121176308179943713242984960929369693552078854767725744132754475464234770628567055443871052836720514498259670002150934937825054879702287927109396059632667630176229523484297025302997292964947794228320613800012141336062987287692434565160765794761548966073985998328273404811956546690791660580683962180556502930233812437264554859935045862744926803602907618491979489909424310597520945657850492958443255393570402569215482246732185711155174305253815975444011450532717430508131390895359911201627832993244502136375706421592482382542555897667485893920983009995719417049565087745093061541425786098846984089066481849721783753325617424407207588259609555460477730503549431604615597983868285120243559324891079568186469979515954207508042240472662028691056622634197332771033004209714796834265301416953370354031208717963639578798314739691301093303997103444190727780480455719630653253270073496590626536217856402327548696298452616707987920459438219909430337720972081567702609776542950016646048502928419409977101031128332943069428638126370343864668962879806319093351938086652195428608808082996486286801278058990458034263910908761039464574367356558454525391676581153393526294831182625687231553794881543567396242240391347938624725618532257215141357208290516354017449904380291835417497659965077096371071098353940295659325507073357698163526850351512227839434113173964305688812897341101376030338944355934462927635669552998889283767533795379140520639937492019113742722284782830150129227676853693937183528769992196757477554131317278993924137876260899257140788434791218096161405537905691888043829655630336563766959594828904304602197006046453277381047159494025779698675048566733038538557019825753715914894067148598579336536631841974147671799100595080453043276247039447332708332307592732344305002100532549022647085194239023621427042131585656563428069170080656252534936240833123555655529638764854081376410781660243249013467758149940838584684574183152699746499357183334904406830460679954137819855270735366690617553206566370539394675600534720780749434264340431804264471776467077004940860701824982169901015536554927099984190811868979963437814431253773311564050505545369446062825555205728196071429136333658694057001775547710148980712374057964255544036898724192584625758104516167576916839848128414892106705987628297242724375395108425619851354540974882261880845030603639243997718969285741700182060811151021467098367496894016231565818532836304944628552734020108657962120635093608764426598589419579610988347816933787292632859306737639340573427197315564060134108610163799607295238858904758669385502987816100533650698000100960114597617040919348684333519589565924637046230968473635954756721296003841782576483704824706837024022707432241154644006413066643522111699250899263979533721183089192873632164453643203801761460221716924984193642479245512805571259098764455516064257843655664365260573029350243902358953801048064849916506546485784353273375902012175218758428320906706417176410496101003312243256413597718071018106167051318138696900355537398226392059983244207643121732143471421686693238740075095732032473013123438322578070871930561342868229075326022039899547780390133794154230525347299610662726287070534713664132560870556620608404814923918069436196871985782109474108199307842336299215938086230457545410721385524436952792706376218511371915681902907648777309900671990240513249849789561918322349761439040310079687922596205824502390180801489759989082115953354631605142981439238376249033294398907486094671977802425106156718657044655745885419298717175409845421810363896473329340416560596310401783160716784922735458170384031228947977923333178129745815762490623821892922095037259748454104126990346982157004192041375312084259571628149161647387571357544646601242772731262815680662452845565679150678472405782859649463785204687178480116372553185896800075081209855565351512078836289844524918506777820724648025305811793768427989773587942392628415104934881582882356304260842454121973574472503241977232680975288577315711496953754788284720538972683269374371796300241325298850372250746743667708293048874539677028782938467561631550766558566279672281252681340638823807514449696426118153807821728683046048496550386512837839040456507087705564203640329045660158947929635486879032340134430014812737670767811685486334266738258053437818276524184707702696333098529692732565950509647598896630600519462057500439284123346753942419223172216479158730037770585447213902492798680298350674310584008141646796148651961276299264683576682109031407048216731874503497231995595651086941921789961830294434351064967158489348750250656695573667033329413581926502047639297775544160192302965243969586228670832292099292519928685353033030212295226143895574649972445123923998292551152195705622090182674000217048486950444216080695935540683655410351977910689063025168684622091741341769419780567673737556824801977545790054287917300257644125549238205153406102411645622599812542430877190436964668142573983273035578591376040961878829758171787201467056743673744943819812633460299327121493675349857766965003759531535736398067971954584730661865397799123648712669064108727253755782700576105614073143729700562081340402841125968492911833323014734812947558551687193919603340546242669867831722482945705413271841553559589141339782592940195305571560254522986625542974303705287556476264654982119468289889138264919566020852700453719041838607778689235077593484995854211938895822588733232662281208113490640601977983557958513215723614740679671634430709247763753698845279505417242100067751391353901954620799363431687366126826520964712671248630797953585712508286505582926016605007429213204648449384826126317231234375070035245598441102996971126139948893823702774383481753772626985502497677236487703287072709084102915856492607582409756752479810968620914527442132193382448089621554628060719630606650938242511834713125981196698756330221012899176308637310785397272885068784502879695447560089086741840613022582649662566973966513925245930643750194930344914236840784080545834011779519235498871355750624088407195059307633370961382672785613194599556802394697933703325626320920598272658523627925387826801322164611944983035682458632844490066303421517868823313106285914683238331377563322263374395229539141187019908273126258942535905428611353605380533309709725637848190722860115009843547359592229761486662684025717036607356323494678429964892171561633473593899041831078138601073570497202375283220590723640185518402785484583384906955471770729841665846460715568638379909003554301715683811377971742224953638493121074036507972714980104489487457979081034266786260357539887233112027660184567271089291554791569297919293318058507798601728156861033748520983169231164946826279184981470570417633138090965579167679690042376179401918595517448050805942231844717986307756470309800756395537004492905928601186886162753877049009367464788706867379761549288766631767670309392271367496023890023038623977016101652528007480718885510790568746373847087922748947221060993051365234801864155930689487840178321510365638390698688068537419167900578207036456379036923806461428070130657743269456389322545741843361830403572936628072207837841280944612969120632907727671901646601695923949795541063331004111771550922381306272658291704336688940620301992480134972956678321433501195737862756429281606731663188613204642825727961219279413901500952780239627011420084322475547297579190495298627480453577369542549782283588302622478421613287511035347652876080206102469431766436629856476597539794951918247590221296192771849538299430226090704031977093135156286462958723969610742185089817600813657231951195165482976222166946812062246302465004823226311510800576433140996447549325544769702584571083771547397192428833587198391859041819359298092560987302318119746107190123111225371343583024210375481598246462601903804824906318536047926456157414466948095881324782191290877955285735500124967711079829576707451224082685049515038466345344730832490885431043607016910072398439806799764642681436477757536846386713015750932340642349206379406751630138396112655382577040108707670080516035677436118233545218281534819349536065878794060503584066141158022335041742783183115924531394138483036620585813796023152442223042219687846950700629169431626466303554525446003850115583492905680072405221554559077947153123631707993078616528814103870465101826299477961245152978452892901275399838295763437572932226326759758143895526202882439614891267425294956131646719228653498774777916291162424687528366732217213949167169148199399118501202680112935235343619269826023436708257803626161296606972857504881860902824396251723031207309278526993776604938587102143653688795142367572303492933055301601741833315997966344639497322371952648867041512384975505057103852285244482771561356641138103860486983075532164399119272311039631930493728446049844022426696142411828509160443276882135640607611156588672190692585924972515239585756247273229318087165469821392336951020157131509787350991217114084452801972591221136188942514543894098317258175102060099415348632580248720022980543464734748474574089383506195517332836800132602137741725276384238122628970825507272138136913839867839116354142445607200565646976592274683872523887124845196756141379970980552927345056751646156985514570386838475634882760634487812869106340998854780172105122891908821548220309161709906384082931617706504784015704164566578116295244455890881644110886301830197087414349020772529115314610451778829799922892096772293678913240358855687334328581067519827361822533005029101987205510491653278172122718117893320304843517264731133944466870316554561746053975666033053996334498409271527253780551842131246286191880910725332567233792640744650591399549315039036326320832389868161099260159678351291765440742773782010407943989973721038223511972974034184254949120198146586825283321759161076469201211676064576175801486237381679194625874500973608961748877640605473325010852993645390947865904821369491871702626708137196230276923530292052382607972585398978131148265020724349509464197701338277721037700556601051652282877195283039664492772755579690280054615230707799995220110484938830586553302800853299224191847735109903824186013900442793179390906237911895931675996204295358633056940840247664290511380706551495887805167435381791881741605961749688008421171254033938807764341137719010887155423425226485585861177616356277679515808343248564289276006444150313618047650045541841683992460601211712363888818667530626576158489945788382378946670047877841659809428123502747271393485262834104945636067014884888205671125939396862135618693320355998554018132107045752985661018813246900254288049553309224820242767563410851691767010889626703240833357054744724579442581668163408771881340879313546912655074865616353787341043976363236430565747589465395645400868461841143819584491585053433460492822844891978715123152013864643524080246193413161611414934157323748001626779622321853574328439163269012318555935860362331913015903777802822762302477940978620740763345996834896728175703064513048263440420441847287388273109979820742266377205972697001753734171788763845555929120592704832379276564700790875225409099800922270611425420380254145682711395328350159827543435720820753361632914078218548455340826777102289027315756804013841112277356322027605281499606304978891511269512943531186852023323384458118590549486217282966042801007584113593042246115701054722100727421129795469976818406336135669778339007892148546628476639040857676533503619278636188470288643890457619210508422748198445742786539225127096699795885912051993753896573136898492838100049153620285551025044190951060310126390025421830553004185567092543302343016718455113460657540136990943420377455678044001733740324597977516339218344425074379861368603465195518936247182341429327593805543192376088747232501230150074556447439851131892193149285978879728941960226352342442885243346924776650030840425074977281827786708504999746750323028347519209807781438465003388294173221087818402477760095510331712512418324821501311906419095519764816639930781871795934831124912082794420308158651578479518237777726568110554090410002093116361807008358045204035814811626244384233030316919591544170261651147550433723846699427781143405489114815855039039800106641839605655903774308742658854806293002208013296841213390202906313407582634265250108772018185645259759890422216905064267593191929381851123170411835859887444361552318628008413976522984880702894696070540502427153556527096208979281830697407211273084686568838326081673447599704798937873300650139582319775934791440030701043223098824016339710982076529259580023008042956610432675311471803515359884664840069705047349674079098143379706744610110846433680618524940415850837990325503034441121361534662867973047873342612305532418096469612528165563146065858081575128198046936196401239771553787579451937768117330726144507000001403615299704225420663602855677268526095825835186272064768889119150139276810045045690305093654368321272080267163702772215453040160348765805423394171033831329050076547720028916376239824169229217625726844635180314488282759826941840905584729696407248677143954097133624777933644230641579705245325556330146297082141538988697358588193164857693413607499947490747725509686648566170923746425966423678406163606248492673788547327243276227806486226585248807404988572749806206301573492127888620898217999537462919903428088142003980356640431701785063976169546232013639175048637218695536031387945324322820664578335774204965419264392760609318932874837759263673790256832537944478547668039818518581533353112250177099048045337837159866398755854879810239224307661666876162182951193206018724631967230597961156790724626820547474344369040603135983735896331639545739569873001997374818564821206042342855845483947503500045966176573629438973406618953212228024407790009063129758832824662374903427628162897751182461213370759216869005742531786732619805493344462578715416387041648907508134762633818461679500839908463253387427971751829026891325989931392873078987827453491432376713393184575529527051104049041872767050617247353606599075326102780042663195172318191336276088454909193734941573994191595137677057013608558161947133664394800664100927870600256815147466372621092114230701261489196028752827509274811518642807578031855428184625426421806893806632937521249226279077754758434843694211224327080691025449537845051529306573529218750262534364638051642517861385477263970503168542281133934763614507797755850060829847470711088095198716535853288675197188249545406556301692759153379700899904593545514615630669350629135352827742404112811016165820832412393739073551812579939328507092401017095898366717874288667934901027886020877105442812256583115620945281345071177849146991587585436566504790330528419291254878069735254336777038264527355993713551458697044287669207864097320051952273129986984633078173109469314691202702575159542964142543084513268038728713267981323639762501568196022304845079080805945714382973257083191755055896401888839551060258817079748976286485107499755081214734297142730707790309737200395901092534754347852939654474126799689820476037685549208149729748480038475980977222868824576631506015320970443066340429469389080788669202496898240456026258315543658661466099493417812889710039116061950611239266380013723732917502349750316529078450666820097564654307870320523560997943196445626001398670064154863090424923461645684467411494657306043928294288774952679332627142636632798469785010667703319800414417121680210712252006646841820941072753193022609475536811840554662122331362571093272678788113197709791210296937427860133459746912470828363546816250090958610787236012328466117500331580475396939376556189187802989916675563637550251765833848327119511778856046910787624413023895775960772778582371769283543157248641594840036197029026229864442036507134237787886586168292137948155694848955220637618696747834500220543138736828340735494972787215699511146346057566964883440178115408624521902596392510026943195393025618343570096807937572566387565424258643661754412217294339274385361548823781417707842570678013324397961651350897914787681731212607883514006963472643742277287602393367734040430811408844610377022392146552803649135390380552915878706784878249217936019533773113273265216167371552300241003546812646708695147997346397967008050829678894210758009810514485050007650545450063224917845144932683410010812291403780275200117334891622182621482956772210062004153340568932826142308302112556685059403943119528408374567191461961885662879186275969752958219058338627614131066509616327367175108048560714214285594467666234678062812277567773504881146428265935882189968936241034730568009495641643500374375225873928356665319109334797399703767308511633327740212747846763466956748135881678957045469076656608304356104264284980544069093372797929120956291268194741866704672064967991263904730333012109824896863198867346678399752730566518810576921675666235654300169325378784907124401147698512178722745430739190900649895126731945543011937346999921581213451083598991826988984002506370464135341760905295409922374897143250197955813874865015808487236521144823637360293456136800969555200205323031389330673182370509754878448104833468012962231333854156618431391650794910949330703600633317858673533117633360821363139961723446809024588223902825354683650686468616249080503265341116234097691491610888412095836272010741375612410880591817995565153951987828581446561871228132148202291458277220031272025418429880590653242531160242914660023239291588130432019049397885211324070041332472420233610982789755512899516521014465152206186181523494991893836350285066794820339176736140559176679223404007621425488697563511630937705083594461170432186933144377006367261269537706263166961960835481246867847852515416525206069787900440304791103654711578207298417502518891209830927180546926525564946997487567359986923121310735896113220894455767681691903235400737792137824586496239207790331405337293987224425687116156726672144386419012495922022659057776176502155640878753953245680018231785961790095103020728404938754208187137120616040729075090125761352780917084031381810562690445295142985749990510786267803673252036719971006439457982255811172723775798296166018794627472873365917737000669379879175749693242860251755868800765696411455895395265188608533731020234725629574380918264400077671907710551046691895901301073050289010082190570090238758328383876534114911880987715038833095787401513768547158546915406324101637736556757889233857914601075463662177348231794329186899598589584142540190354181620463668781393454425521791597842822579081266735566927971220518946116771886570773610583977332496128149390484013446246294682427980510825146875677918059533230384324993894959166605196828163607822631113992130074034186486769440682167308660460455025337540199859826995301313218291091415359280091548371093238760108466769901789754559420073533895950711841178653302763951548723454316846948964189842194763389145579963646757521715382399746363198529688502947528977468595963519753816834138811037950105730714248498341302263645936866911367336445515921807805084617473360184102638124743682346285644821006443946348857854736305945204526055683201681485099319256374841839399553228807686000111027590189271048168056476452387635696174907549643273365156348419578518126631328748652457195179939214422331027814067744519325139382747279376390024242576544842832670633477739950713600556623630806587781691923786286716593621976947116037656437605633330979343210254804901643058355928578108443052566957015695011039249439780292176263294532591800995975706134726604239068620283679769744709028962605095041457098117438975749596532901241971100320548240669354931648620438436088403388609208518345085279666015656424389679009803007845579476923875629823663034480058773014849783882675800464383804605261944281386807943532493062734219497633088742066384594926705658979101350911755525885571168742385945854950223170956267202242861483160590096086111997149709666156368654314306503355829728498062571182542507408704833012631758557266245652170590626550424054813459924593857125865033895982841220637857688923979435165153075422656624833442151929248600966165067086967797216424894850775382542025431821884910048030212880622779376823804749222732365248979605586997448220905929843172858550593555269716862784317976531319536651345932888163016577292182722860876591019165228202750189552583882405175727472802768705575665043635669762504002336627397458165019718814918246776134756555124765391783204016714071387242647986287991021720144858760489246646641239828709529951744383425818681960581160072380421805164927288688494862134032983733281651332375378297465588962655927545584175015282689265630389005152097411326084072213461040449859393634975526863357218985188361547708222852812081137838874617446728616720311826361737438198449126198063754628126873805692922697704239716033856699778350598704290031441339026346197730123442853611483320632946157087281741639283762421079323642091503565344505348494491075351903759249876737221363646292702679444472704753927123708080671032719427205735168864994483388847809377186283989523463366382576458234693198651034017592924468487297222298086369483718817735122714887922923770831742148494949856503299221079545007383163355585536390136387596121369609136159756650968558833497936071651649013107745291223053779283446319424151791272064157640517949680057241462292374094623850882557040782514489761123841244721897437253486461926564964737586605410444241763302195720053284193698818164857546157289786911005231564199729735447873787914070523645567655486232987680850713696725440871531684527712966128732136810403727354914682081960952671640191914062304228051996938457802846289435413886318724583679209994956948282582065397074849401030986740611455986774102601075721086959767610713971959690833411723571522810550445554760051773093101542581601000186909716077367727264240215282476510450363634178113873361965084755805567848204363033176001462388819309272749054993752571654662445436559995517801798310068916013320594994262200915800432782169195984607039121533319897925788020783840400403899480145214905249317679664957509463143905214061010238363092464845645966012915951041968742779679805956449280803203604151604220003380206976247284712294772817714953659478810318627296638055049253452887655102332120500832269834571965679751359763498730919254684549595434077535040863608929298084660448028855123870119547693114688692002755896825857268030543150226691678003027236896305627296007714115376638628446373159116348703552715459144854843176780429601994591269640109449190656366644258875712295284215860123279752811382882331296882836979335698423534744620247789278640620112762814995113284989234140813524787720033156772956844478421346522209133665810463355096741662281861493463994802355800612478362461000431305217480827011014953741180884660195401600403387648832473421455276675914725447404432028882339288596074322784166548612505039847174299837880400941887934587152096338864135698051096005800575728305110783022762424966949636253383679348785181406337722770761297965481543111672305645087870262718478817105946054123818654650249404558792204804907568156498335969369368897955454662437962498155009222452176820295532647494010487543829189153713974307756091473092055985453958308998180972638165432749301625320271230321778835205555608764256151583372593835395286239125527302548724053463104028071459167962920531156302188814120104400378729124993983278172710565326169549540430286900128514378668993482837522468146548933438314692203473703134050922604425422458345774278293276027481631967258302756418782056458639463972445969560051322823563806665450256377191601823208173364357322487286785155765610019006169286757192381598478779166025922673771500091308326984987895260537725847842680325228656413990494170627835954127687483831042107899068709928911881348343939781929093039441662422413797461537268208806570092419506395828750679224952365714549353887790912071863655578707245687747750349465078568967461821853361162099284644337160753578051902686297036395637299316440721431943388760334000611489101391528350071398512064138193520523852428730378059537217262658550178308491228754410621669319333163099101706630553561049558699248272671345655666529332711684150112505575751284600339554047977066071185096006455923351024809340961687482089105062165434884498268396353250379950785237003771997988745603921984323701911079099583598843828213194931825664791707998054618055792540019550645990544920508117552313628981214209116069624868228937711125897347283341034822234847238925900050024286239828230216153360912871459429665310623350773115969523481097716289736498605503583788502278248936203269205292531235524439143293781557824688000960014659203030088888757850826908391256833265567785147934585189096471619895344146239928293001439839079983554572654348633801866685288816457239590449087811140285398550189127458562063768114209025549504858769477095596996645080505434782716054396177856092670000591515385761802523201857424407906333757297127026709085627681226653914204180219596143609337778588564472134519625231222190425800029092675287139287130912447981027661845808276856733543699838955694948781041292172206399571989721342096773326445645969487097571780282695086228644280920940747512733546975397525311906311087815816179697496978916351035115275835301823757486366176803221279411757259174700003977240168475439639159049708318195439715314916091711387352058280669360482522450541267159897616499175093167212332982127109080680196928670313128203252161360739949421281139420391962176472446298901300389157106846810620247948201159141033359737261094805578249031929895354919827568964360861797876008884443068456337761796020049744181382432818466999301762655220687176772681057235294205180974652895311576318887323205013593006724171088753327931414212218376026517532108647928501357269799484575676426862133151923197674295542564661085478958112577973172212502910618382775562191261606759258404762513211525420525308387874213288906013822385134739770566150921403183093166127327665827698999462950037623650016967242043363669988650849641584515098635428544102297123592439062251679675360313235423186786392290759682908973789661146357191032716562170006705439148124305261596222437327524782659200567496168386128676398176908168639887011812118567959220561814328317338641153668655801979770832827289641112377216226700291432876030607830678283172281280434797374533843780176890056949318704392365670795975988240694279878385463630802338966016594282729172634292703234653080049204468632187459473173176341928198525366413878874463517914051834400550414041374413958575524019408955420139029970983720212397505224650893577922562052205722627852928560766264753590494128670045690283073361143739379079933865184414803935036028084552443103565091816824641739260839608194405279689542670172639540333153700752001115261785889244942040124344624911819946935574343322314440377382760084040170559618191696966116388757895101873787205542745174290782587403397995758888085961757730641922914122845363051251681238893216651588367441491662068419387774665530791011527513211400725551135050942956382614792084511927938398900540569726385583994969354221110219981901355652251855355726594959961577774960599629246097430247634340555679360797759672408339041139793254823888762024407466257668885691846217861458187458930156278796710680776747184660793394913193739341735986647644850436106741008071739810199276597649931373752172695949388461789557478450067506355480735475820045511987974737404440313878254018818538690979256860933958197169522197240990361136933359898684935136979510081356095319646591485921167978712732817097591563176365435337625989361048498423720485676037512401586402623622262620142759926545043598366794794145089474030922475920974922159128140793436150413017609020653612972837578319222355952972479517948267215496001575755764284547641868397050639491604245424017131344194303420390481868707718295555257444472192702070726633301072094934569846668596519942112210795504706705419468383388651862482962606524581074219930514652239202636532974955705387317263609565869139630313591516928136271376051977879927825777241162184178137234396366031011451058852363087348156130766301007546092242100207530297047328384125898958297385997208417078560889262109143080450541201126545897929261110471903732411671040085036862666432684656033391381311226890656350115087521772336413882548842461103011262878704842055725120527799164117935429696152089756277266037298268610917624832997542378449586944430069128455363760303656303199668470341394069723134585628000003689232053968691466552257044792854305254592879354993844089422599624163691903718264044065838417208790187130358410901113939506732313148017375324428988585768976286189459697194019283289449409540444975250952254900330942350474015982084466487629575987413897231888275777178175755908002333103713475284316497151746847775891118188832665228404775949622609055008499395255389728867940541765353003741121592102329533312264438299701552043312820056840744731288570598458273162549579303970920311155643431340380958090020393459058060559536477077179288155329188915714512488645918796685779675760082734712050864238470762386089630262315689662512379822657003006050037289431156702863268626402281512594821120066472749893215103887146163014214150597303454401903340622222888266212971328383853156110298423849327533849310474818343843719672089533536480817814751584629616408212940179856597028552111206696482251228245894539748005305162316709149135750007880948665408331025263955196366464252943173635076315124727287347990562913861135300375548901504439343028966327803226816017047929539502275802926001517917736729150798147884699603607787016883468300756064864031099346223756528273223916478288563915098018602241485550260318615342851630690481687281840035234471347028822582954637159646747800988100472283584134028239279502898170639004471980111614016767171137823546718144797780852424397016543252114553313395973630238663071522701599116352625720761763540550950734364111956101465527626051500656900997798310467649954569096556413431410859682476846270889256111629158575448818240049151431692009215545716100781715270932064848546777297085825880625161226399272132686510485136402875648960401135897771823299824546396553419124023104952467826187915078985458798419629006160691426989768181373775258012103540271285258170384899450040812551155877992409742049573789172338653753133081170237349324761213781123151804405956674023904930864798705710440755048784813654791526763648396704601581966745001267300826209656811392127686651745250734942128716367282601610766052659189119462482061135864730543038891302651717892910606061137093564007422050150706165112889184009118351304555039226218024244434902073357167120170057857922184283133936486365534252407187264568273792785381156551246818476030304964253429409791279763894168505340662606806186445437620030169690129695114480400143131353744875016509752822787941190520123954388094616195284746356500365587406684109360477862683838160969363784776624066522784875886311402480222773995231550445232040577640997607422210588759037182517989757655183888923768293650758993934214723707663210971117749293266543227438863602643130100122512918755522104244970950727855405217160853809426184847326403344130639664390433070112743522629094262509608082820352374965539166077541359692418977999362117279624566522456189120649623768588027785253830034811802389094313094900356789181762199890062127767433078714646603928699015078880639105135147779340571618554294784140235754351629214980865531728994903800575550018354520206845250703518344458425463274462725906869404303325590555942971549290813417421224789079164024149422508391942159759575123382324951150978108994069531780742455560619270427301339107158215320904002537156180080632467749949619777759588166587197422293560110235712823542613557464459949295587629781926933408654751556670759214682727185053930413418297334135197906792693703518553471002066088911871157114942964313232552410747527066998179465248142620711724144662794888482426425331559565339706523366741260994679445922879440452871391653905315303365787985045405607369685071807928090250487510204106388810426719585161991248120798953681248680462509757976519194628570350210608776934044073360893717217717290722110376270666555767178930117974569955954823452429536855018666290701820420742666814481935845857596738777364946472873112505718577181332205420183241002392569661115515545834659412713235796014527325783339189510445426252705992520163763342385228872683770072485063954686305108067993498053422652947903307579958698905274012071657265681385256219619094907114005821660989690517052203158147288666990985793966281240687274661713114645232108651625524522672405425662711461388108763099993589474780780748459989339003767574306495211160038312919481321652297988784012322252780031564595145693662406252230960369417971618502016272745716812635013732247806841122474667499660552194444109913151251013017864975595984772520568801532236707246060512690130919463477369478173279739594782268150842687469512028414297789968414421055644648352321959783085774933829285293362588275784857573402464881423554292529794943914450342454655435459748874545232118882397009341478460976200362847418261326158072612748488338856618658972010050569275216323617721848064935829469738837092034293942714542348344634384274810784250243955905850031865144094018001697206014656432186311413497820534944843654471592612950291914022381826176384433253569345026850850129359254852333984900932357456614409456763765709398704694898458245619112450034155004631994789063253849116780275118698103929505997658584267142180859177101037419887447586700015639472418771416761115755082563892949460988616602111050857024591792149006969041805215026338588180218017578775897278397644652522618603630865287100398468113493339209601880794548113925763804995236244830401882633273029965710284652442245015535719128933843844978535220279421617557817830709458692525936561277101344384082494969712432459163561135410948570109840254833269797913645641328916810170321892818238257379556562338938964734481573619635139949823046663015383142137435124110516932339678907464360467091865122478664779072129637799964990047187684728348703450295608917931717995700245841032314443539718455614162353089647556758389213242677282129979312846176217649165887169032100449567808331808600669600131443345973891048787379809748034962284421867654544544038178046948715597148859817145604433292970603451953031168778386651881805416654953625192523722053785885016303617494664565927397670254854633787471294622690980810238882029565980025321037435734393357131633944647032952639219076745393673972794899536852631672359524427716490315649418855976834267514580705542954548311031976443059503741570397120965716559621897440680792609081305739682344787395280299398643891485200977781953528664233526509087150586909213948445355981833329848146260912855726422633238361106224196815025861182901140824777258212505091389964652555802570093228575743971945619197586613846271229626454036362175002087326405894237127837986575545457836265060444856339209360191127248395981130158969647230993228432362062529756567765922401897533998882065225280634775837776383249624739829255248672161970048033761261974176303820855136002120680635479256797600867839634423888863585617848744347486896479411880941411256984871060243650757941159270360063703801407639471484732606011423840684356514259610099147777085647800768241387534819691615057816898727171051643559923050537717530608688773987131478361424440399887657511618266640610702600305435270109872812707593919481720549941653085924494736446754670835558830881182809651431464316260076621049918263007940561177841362070327767668151991139384052145155111689561755759138618459666415252626757871496453804984155352028594742954779049303040098231427327481225755595600710415336587320514835368435969508180531997170770269493624340788975395332708050281595207773047989543954307864171714880535241634175604322242281985779000684135710001634662374808527333569980169083222940637224411116950616315306577565497517221568552438193666426166652580057915949892977288812418761272057468861646779416151338867843248626978427434669711561440750791256689560948319533784252971039432027327920680096702165468440501779864296117741364523932354185644781844261614324003615272148776514761840379157245950171052620369630303735223374145797393744150907829359246488891363976720675992846795248538579597738298849161882970675723042028505442018606991011463096912041682567762815639176934818116219830497937944027053653327065883689301257539529551394506153503160243176981517459170778153350669234919356036637350913134851512417561327310198085730209756526844581062947382864105732804100230799630728984803296562742725088881942594264469793715184812972003194542370804499735170538410163149927107199853909532643501664228351079951635459727524565157298451593698934763783032400698720307634409737750584050727488450180442952277971333059722647399774758448707552507987915985410706342356236078083546598371511157137099179602252733080353775227783837660823562675384991689252889061705314888997796900547980147434997234918195757056577248802639068550369097073391163736747886328489075834686747067206939366146509605424031832554887291666455184332598997010007516998999833687574629916189406999834516023828105253183703629824828528403692504870871413617674392843612482562196995850160948393664772217992149609566164131389623233442307604842390799960027488454238974670890274178457609851556901504316797350391212558934482094786856538862979757111772776746222595706061439417014904548857539463172220689727916846713129391113801289372483200134557117135185383022572673990667797650096548874086547356051708634307566357276508181887360001155407900704938338317658100975970842069336035428597209596395449817752722891024361054961444761321761318569510233952622177154580635888400061740521694007161655678179705790580372701064588879264221554895952367287147942047786531477767194876589553318689715722375693156732791579696571046327805661640769089090087413794316592269098111490528132296514830614179593039802742468530451784450586847719754267476619332338567903738215528124676593239502806293499663328532892294112857870030220863124651708696292733725606196074853050158605343093876738688814974221258739560537779612428476688723962770376016769026916801280074295499840392265285698789082938848651174661917523467775582920446669947559462976508201833160636726652831245180737727241303136752581298599487800704539059642354433217963871756412655458633580898272001474622199865643467357794692572077173620959394272964995222546760289964337282253757804926214760936591723961091063613434282885464879416101946145983108638961844132733642249900615463172949643021847049133070181733603694798531087212504509241209736681746669608640387952195514840115311003320116754877565545983670443032669724370763841552281634058615038570195446783000495685566703472916387037380144497834916522172723802280531873668489024966119484067993866145849180522411944670923366288437074394362116071209836891337986478089329347883416789328207839832267488885520741407455708012452408856812161452563369842226875357890139541153365021646421058333725618279075403610238617813706204369587310717645879478635164242321973433257323000172323344653397930320837596666313127789569718359734333955101546478559431262071554245273535618433044002631779960723022949815166228419204111760154064759615521617778985602992706145392248763392575589024388378950915957749732367596584985277272742143217004696739685899083710668256765136502193642979571185702882977001201061083582940847569993351716432630141434280763544370130260284654595455896313045452337181846537616995848371157555155838042272378133796346392213733952296862932134833912820085681492243291569755188954574080299445679064041469659647728838894257627090708705433477973919720466360730494731372664026853571081557780561138663812142814076650350929288290152910632790464506192915797163152142258545920757979695407828636029336675347174727678279821021448476555655532108081870329962468508033414395361792122056202625332675835092449782340909721777533930594453617528793981905197759693693708564958213986938794422405669704962850292780092895878540426301906581893449622830110930696018678610669617987216110938611234947334343951366774094140049064552128529819478326483924633353103432838842642075749520785167520306028284906125902297803866277524210735875162519952273507713853058919630015275510438043866487652144076441873189064690584868576914404265078846650277531912358149189325938896538222387445508891818939593686367250692270529275648542788910324287644635355066502706228582311442995178808025981253835692470441799010114795848124190128382942837790845806737904961240656895770811037298324301843089072896679816762323833649335595929366652017888311952837023572151381642840756761174708323221279510137816501685343363655862256765256060917241343927373347041195394940030341392965733112905243791860252442809773148646896263959869486456580430940785648270616772454226823567401500443596805343159487646379125660921724281625030438470929014090599588949627519206805961813893638119865940346174828521274125368258790419279652472281266413973366705580300267783080163340062890582865884795892044376960059609961757827437627928276498298840827852723517527592108563779850938356269016879708771484863597907679959861200242096997205600518130041905229312281208715297812500103926719358790204772830441302262857922946194764509279202817843726227169131503855390559728827825709618727046079004454776110704326922666187220979099110030426916787520741881297610089826766087578207912235955762788823246702448196356875360268999892623369834216549798161704405055151934146201155007887779943905657087092848925759489230075344232644042741575834444780998584822049717523960339452062233689285753080265442258660182795905396709657653031719259210542310622788401982932140726365422814312878758421474846639636608453641615071049328376041183449916663529865384869967406488821767432103026111082025707076801614307857164236323175901072121463193516832592269313290472694110673535055954183344127020954523746768107449093774591842815402828657467291300338933130227326961792659594199817232394067968750950580290733496432626010679457816405558978163616792356351448456589477401508005276902083472377084667206683728327203898189960441707514646859624195249515314808716867630219077966825558351998024346350335512795874037756833864012468532489707224554538438368274117804356834415615047948053066124176379359300199643916084538086570429743058652126741729852998284460019583224898950038980300145680245286080970739387523478499935249441428850146346840628456493093845880664274325176615837163071952590613176049124423505072533059723897287114221290813031527041551330446318155752521037036804725017412659317678428660623427639234376325207774720276268665311921461979312604896106803700851087631981858733825632307177369320157198444083172613871172633855509801017870218898729240303370484845450539144838626137274225234175257764283052729112112989839216296472611398013230287959991093720408798863221104446996825831440516910763971207586472916495870980463829344735592648082450915306116051750376271992569666687130306600880622662098381410705710729391352193808898392030541929895434102014581667230788333064363826910657963404968532863733253829765215844954851825814646959903990361990105044476612206101883253748665022272463573788479136350354847286983454870071207469409588278463608888311547159917013854756592134112406856725601968630850236182944059596943026725998914768301461234084161937290658775591939954189398900789841374182073182125406630239209305912173548571346989616878622820983613302845303437005561931929272403170076047993718815483222007118080921151988632269719326118778881679228635205414923458482758471779189956920746844895236547935536078971490952001343630274435897267188635471078263002030993283108873755281505941517012425216033837516447183257940939009109308571892105932028624789795945160589842677016859296941882291730281704915875382159853028245099320114186867720429624674749322618834731852733782792512936550200852860653049829015406854597578864307594218984455428863061868997121905691884837258972859942924351794402351695985357347621935163704239905838271427613002742266326136134453423615151886011635967678036060166912482549144223103090560213784733339347102294300375267149631264467107694748264886688759930138418693193367815576311799754190428836699686268152194909414756585991860401668685058214320739398717883332959861339987091616481024741029064171386517171621237960996369161981895687470880076827293632681971551984910285868109601390588229645280881748329654728683942809975834957761312802123712563491391212656143444046738974100561186089409188791399689813866654100721939034546762270952605761384763007264844992936363182518185753315781175050256594513466325370779747316210600946906352139552359796475318679688766263415300780551079861149008654561376900294164447151709019973338446778650829962311798576040399680900644565485107296059380914606190706429493419358552290374984308878151904265301860350286354786717997067460186392792688376658343262355244328831710338560667172462384729977387471806242635444861203267374113131897680608737412424529152062874753479366281830033599098766325340288138157230229767317703570952888316118789283431628508041929779038015236093498860013075418290590960217175577638954493069145750558295794164393338517686434662936377968807990898925590647257484056636700828374194060320101908900701530469290737220962747421012456453163159038052251452891661717147514125989812401638949277916448752445288220705783528836489534074231270153657755089863954464752121195479186133925007172566290100864459037242129040386600844098887097157512992666901204003891871143756189223274695808441664459234273202987628627450461516204029923932228514662264928153221835514289090473619123142021018045659764527426761286985269780752805555195764143328905722986926255860464164232577047406144643101636316761711188695807655863452539910215809311808353186395563512442563371493258696745692208822185031789641018999501430162398377172035212409504205728127932042007783354205587017203224592818497232054538263944066565090705621567749019306620357872634040989441601708241509058321076427721034928508307383924925790601805036767051615871563992410271917564554086418719519468886771600400934945683614649443194370064820682967896258527854023129131757274248043204288647983844203446092735626242956736978980301199996086244295618366746050723824097806793913615377687941588560963626886767730141265333187153484935037294838135253396420921726179497710011499701469868065012504475678526156240838338185405402811477430313258172817836187193293366071371246904822223657276910443351833341401052079124298692440781370858832175286106943947356366584369681085303806328479381147093332030173983570795657344140327040749613840298595365497343413388857253675612590949393905575974871614211041895084323815232740135909992129598522961110233841674406932559753063017286785164334070030523666362721985592156194428877669565361389052637883829606788155835581708233477144661286171844714185337321550482065579550204461738081041893655295651525536083484402987986579630929661528284410277181746976052043890474373793305580049789158055202687161710375161655699326274948441978466383597141407874766162272759742743118351567604668642426233548859477468920837494124614236915704804648583964130629281471595193897071871024836855818521866311826898293235386945440056599193719027239532151411863286423014086564888447435933160134522385258923204305423883246798916034075452590843656643678587664450876503681558504925747516620989380203346975306735402922577333375581882031390611534886719673195202443633892697101075157737011809698541416342692737200354640831782318206441606640525996290194516148888869723607324507931683034355292376093691469386991115114125336153926615506829885615393903576557497827556306241859241136154676448160495024552210988734695490908821884684092117027253051227750902388936235236301753529946012892281035495867920060238200521409836956010465703874269670495421054645349858151278361182664215542704360926742029777781296940832849320458388783408741894234431298852681885729430739399868067499776643389727226198654371253483955696642858736977231300356257167514039957424559834582476183499142396938455744916167795401648698254062864108789314412746580413809239451127236743948466065833645785387380586092058922642967674447400348725372379217451838422990466378610541061907110454467909628753063405266247508014346655447400270563388873942564175965045382048169595580376376230108903435711513367612484879034086029806245856880255514145365596585779862232819832422672362473174041005129078146021891866636017572193857511626830616857761920597055364748088134243337237469705601704556175196336206904901459539880031544937246810805228337459571388690990857982421076435695610414370941372238879627219201304861827948496767018492285945083593671946492265079477268180137232973622491583097123938757685342456628802231043533779798507518956499075146560681651105569752227886208947191468725758453012004374338310519292266894137387973516400715712676340543529262151896704350119498819369336142406071026219510322131887705211513912508621926893690772618040518311241073848161349777196355600808554056142434006649531943580985469736365788401405845378733767876164417533578276624462268446078455744313791617879835843698347154571132128979169953504306252567598743917330795130445275792751293147212854862148440217501370687400361482140097469032824171123562594200080002561387839075030699486115193953646430208907261059331480216275228514976049975356338128565477974761700649013884405336216937550624830378006516995983637531998744950400815669050617588674507134279185362513612741249220361093920569207344851997086486482445769734442338850060037164479909640670160131307445094341888281967452352540532624931747770325062076195254840354791834742766679402718832669032311192681171543615463466585677199572243295934056378984395459969270648744124362218843416781757676353175634176815793171903221173387023946178569843602406146589139548699472793432414641305756513223835105709459454263112628877770047019917192569958574119716826014483074909243632878177214673928945913128129649255481948879113577776762798802782756048385467027706122286827190670618082363140525521627613903634451194559309153853891273898052352325077959254956821008828931956572354861430281984733690834815866072116245406218366535471788381756931345710748331044069143040448308092329613486773954878147289990878476750874540824887688472175592568471897020165727394911570938930003246863979243156255136181617590390430591727233736244059298179588561512840590965667950989745368438115188251213662718052593729185278243436995919988027467345264598860363021921058684052616381922028269109663243982754688419948533118795981336025285884488347045955326248301766951097865410465076027778848953852556534030035479324101946017323318107161774983507271947547570837230865525684842119662078311596776375146635284669637509177901192836892071317942837637550604866881324238919361554748428220985994691024940944555979252823861432101274956849868665094324662163485347582856870500799243554604988683654285391729933139737908684967539469587147167431253940148746910156445753159151304670604669276519994618263396553805447700398657855390755486470082856490597238108487852785667447376302242907165958905321502486777699915279972434215611360538232697801946590867791594173700072350987889342194619235624913415074507439658393328220326504757879348348300650028123346204826914314273572730069713826491819838470401676350182846268530712277546286748775022021327441172002631529432722471640477798670492689958024947980697057411374584285081646705144320725398740795326157011143627311417165207165946485697731959517122830706798886920894780355572665624428210622397804478894640061231819207190032666380921958501654956034982895781498821892541092537526282044817142142260659170392661352117950872087770000414825616391268004676630939209983699255754597220295901160410529635092503692217582934699085090127525405153333428614756929239965152112256285421150900123306399376159255921282555544735341932670340451858695339610510983270461604789814452059788790616094910199837410025539785419281251816102875860811388182199566611527443383636179519748994895495612373358523185231742154213627528918751242182040389056080124479278793573675975558401199111747380795408962997039995957505634651287440128308600212562902177326120118093295472893787239023071666419333871980924718717848655351880828977243790351721454170635724758186409258343656627203155949038022440990536297271942940428580508195821556023196893867746131417851610845230141043107712073108063857416461843145951813663962000626647558011139470310650706947403118101089143447995899628201280983939680677654813138854472662399642820042795880056341782542984305622291683419859293578477307052115368510633618624961126392193437474406606190362961412954766931207748380321756233009768386620320931227709372537552654126512918359512790993625252906706270904058137005436316102943034774804257542351724542131361333908025277557917113046361422987789073386458040611435542581707925365259872981191642295602752928365790250661220076353890714554955602680798869033372243100437974600509853533095860097545442543999634878994031517273970975315323507173594937541672127685006194839117197100692981798466010513002163262937933797040593405592035241727845821852512963229943058964961851915958012442686715480035874984409668741294463927117744691512195218178679123116704637932493543183290801220042778119450121515065275383409748660726369433461501832561104213468259069095610134884793961661778485500021671106398425304074858423988833195948974302971250264620009093043142070481930677988645278272170353798752424377883972541334664487708303534550015624110754854505025079839541168727510931581586745756580213666919222685049487217628068183060932026135014128824242886592084245556582162066169743795833503192463917005348967289113050487173773814495758651086386567480389895466638440833522272683812042516455608997824636399026164106032219101440424615029920772619059185973811553122807751086984126517236965859166432941161818430860867333828685442433343075909414533764707672695013762476137159621223655588976256852305985166662906321595074488668533032983944602667089022477402367950243945447057570195818794241378176705394593289230755245017807323816543326311317671635294907408381402089539448854404784966431247987963329132193486340687255637607212754827172963993192608231597452080224794679907773613345987922857000752299211911123349941735709059107795415990854888033909152634071685579604230808486515991101343104520158055976339063902932338697502717016894366278447880219967526527612163303826618598738657171176708212426100299377318636901216518583487188300971670078432708493275688631389796379002811041666554399265582461634745245944075183741940665178327847705890629779987248490118458870501173450956910390106143080545474750862601858680242294677972963885382731566814654838970498610769850389806495503131319377028291204425385386675484624191541141204684985218380901941697827165370989930373694536317581840472512698947415620291540830798083777574411556613485647774891554741062805971374553715776576519725904702221161163839783551757350859813922866682292537602462174623201474520279432663512863796885899736987920337650498355147944067614262681191829858647800194983207220057365389616307174373056046784126785179926902809782002213977937465343103276388936221459944091342377704575320502272458500449564431796512844959666891546484020335401876050547868793378761081843189750606992800133436740036441208580783772859590301160036842802963755313427393433366532576515702518932511442260675634414707155705320634327106170259177064905062795397698116833955137505561133135891107309558369893385001021152356636958995028371549814797525382451744665410713179750718113972244743657183854616383935619643832977497844630630309011031942792169067145700544169436188489393983021365714635066931994783162452643267696909282905712815446116021849467524705270900219317281062633117232585474431983432131814216373425686870178841104174829859580539103784428441579349251181531176420177813615117599901962804633158290946128415843839003014152980205992550369665003871601498196984068688975464138258795135655319670454329640499496715140181752611142096475972722190452900966830426448461381292407362660498248880733016817420164735508130882500909364310237396379858112381055949478677658086625809898941285301096593197431938653760386567209699375096926485883415910470014312685997916132553027108246251646840283784428932502448164600601527555542969917672114366121586028755319171935257442336758971756025229099061102111282241003540126775000846487580317938251568519885905440474223379776848959214236337811135487718809552415072733516913390081394822386235042538528635873755331918382468041685066980959325694394727318621969823045903457583263908767241505899125928033172308734292343335950908776478725804633568619318990624003503656324412869377564812483405891779349347632128411338702625737725565474905924923435720862089239485728443608173839795541754793269329719120874233241416870976199851390350588264015963305557185633353730779414774705688844073890381255751746842795914848691426132492574172378529530461373837802366008534209350606353748501203007190016268259173535690928690817536609002424786015122664731510700675083769156532592646675195106832810992740751460421049909002555578804774664528283288969561046949667675929429727962533003332880612745829302562542714820383604058586761217987544681066758066413811745086698060118276614560360222149521171767667115622073269927428413131812518385976180611127958301687363328593492471181683268521244036345962024300343925335102696518691470805966699529601229539293387348377809875029192689606410682618442771376653279763125251314812208637088095213911149486070798068513343260777998566296515726585531738175265670201925076087197167965741787401309852340020449278115453359706385130870755077937064636733595735253228182238290362062930243709735043337761165462730740218777380035203178524781612864664446970394610131339967175302532393296506774985452852844444058466567555795055420117567472995301802106814692442600792641244719312634435327955137290841907006121756956915058005798910745579679787350251232535126037016139654799121620562983577303150623300800403784421399384636685796556127681764104402528003226960827609665538709271535902804413639130926536214008547665295345016932637334692645074622130045201539587034587710739104989548513056104584246018884533475153720525732445213754879963880342204856709781346934035771959614405861090948028068794567474316330995955293425239748925681011598451044318233533365699334446130893666239366924169273289341492844692335243668064576071594805668129566498983747489402423703373468656959989770239032889175882111453839207884353081058715178437697529853228352644027159063337347652807736686724781131523039579147122196974943718319357234788131117065797922741653762545712862484510949833646324798562558560608439732966492889434214485722465429621043472952904745019956264492896741916187413595092113879650838647006907863925636471535703155967800897088563615467697509323352206457216702493654487446704275106195148248830081790933899960516306057464360432468873994199797093629537167174128407409894689926607677711334366323775382470949840682082592133342894254396355462545885724562249220101219569298442787193887890106873957528336357368598710013197041997044719537833652462124498117612530889486988668007151822589416258149487749702810618516174387028949009252770931490815132655451709778103353415615684597127914684078487346493320862788904568240007505061373263181134888711574231223354036756873661835055130836858553995951641426589276314470864207232848291867766853224470524626825396200770806993951823295074753255676656670831186038903516858732701570183643396661383975948651510589489098225824255668307681296097239030857658784614149558457381824652682774925524373041591775722650772658249653369710170231663482572644172965880718437902517490134932053288123563752961251120682478195560501223307119559616402669665129751842364689930602458177478158589435866636235246173023990168568433005641887438149672616327935919707310581719351194358053603270527318028394111672898783695909317303036362725586781061046169829951442147288443844900677775753453289913180572205184825040119936623468290452567250590448872919048624161948661561475878308893353245873962062476362774718899990700160713114169499179354124231735017309317069626335987802603117675646053583290527636175332502918940325207099899695591877914297252033523051390948526673973376735299088383473367781132425937869468566564699675744610977033375441654378730865556385274831398692331205338879807869080044014072626480556713765205053519062531839074900968627293229943042852507619819656484924340664541213556936779982430613833586098249171677433011966291626801954938299517653001369899001196379417027652286377404894329413052372273217654001417429538718510608333782292407283839694834999583384246121391208827016152368009965720159691328744037964302855288120704456109385915775827593771128921878256162890789707201023837298102249648640383331023335923215742389489569925570250222190653533575926237504495787762540204456328813989268713825363648784276776728994483278168738352759746322705922381659224879496897441534715424229528678029769407669576432205986506763535641313546081546515663733021959680999239808321518767139673904896636792086755517833592105418186258448230625751535797225642039054042694910803705285384162754134682850850524641944383730481944606059911112062641358218658430450966178920112012996381454001150923070718200042860263129184954893206239522427557693856415003182138759713751650708822960610895579118531636575792076354728432215274076808492465199299143189065416470744845485143992900204768016042661471433377107892290797419708594911548532341328507099905631263284690233569473999576518731513601353026095786575301296792892571442762261532436496543007971972410879896516491294338917550918010256478345865837838506726239047910357897833138692893755914327246248587810474347874517279486210055765367687092410443360626774251429798114835593928787251638231473582088476613157968953655381401564080319012259088627536651055225318731428516115691199115517807516902710488666922040851461895314765914364899033014486633992567881748720815004985133754830444152503532910149287961349210537177875956385412926533265244219637079351281066874643420457470185160081767557359742371488707377337473067097765374430025012576127383406888570955580232210855080498975298933903507783547174816865419311436422300864131243922342096835970677059442919620680807010853157378105922260734540986366885566976137951926349688145925128134162326560743882886217284118452332234975581125255437915453881316457892202108150758881830013272225406244516097775482818237775308326903990906480424495951835911907037284921605434541277232132921655674135387759221236754808512012291154590956079264684862045751212974137397283212153489303947656489436241604419729457338179088057767421342863249299212453799731916100254362724162849208374387353364410847260774115467725496886112985349045239335782113973234277979420479176463710503470369861030248091470834899003872448068173405066064070658911894705793964555099166491818723475164607857447814287310225690011854420784543071360453337088858860608961125697576233269677556172213599557155622659030472308249723355720934463195751891778206017455851659383758258279178914105891666866219806924772391525761490575241814288492354790407143534992716311663862946642844953037641463175186075966572918920288891324946027724261313748614244235642341058641380597978732538107023486945033444532495631063435845102521747037409161334201379218294260567618271455535516615836143994472295864275568207126446794617623370453911925974777228330718901133757788013170309479680527693351388156545631655948057835801677106880567709999787789421535610042364780383279752919071507944583399766506679767117029507000899697774242561228346399174499625331055777045717367440919807140678157807540611442172502765735856736825532685249971061164719449323064210913617863894776374533993803752071236933680843911040469815196548282608069410348002280762805692746297176327290877749665625763997475707763510887628565797049456480656076486418974589374880228454010133729588155527136350447700541082762967747587399035362912193928261898474896708883492898366233519492544928491204423219097045587829549358780709800920799282429690360939555242146550487381543330404692074596180589960601116120156985182982556273252551459172374338149351170351180312657179145065139650934377587011115870273218503042009978001936969323951816999270964070679793154504379190798434719274149028206523838159897369615595078407767584365453734922792370038768521083430883079139330602736412217209234792275717911434806484039930383629867218063720987295748030080103395861013145719139797119842778400954918298572885361176388890955449762951330718091551625982548657723735500328093330312595401407779363220407153828792793887847976062770096014197388392849086155490319774971283844775903505181442239235659482905554195647868436987581459136366563148630740228216777315591011368209634155158356523074680207053387622328413554701860248560373746042152027818347525548385119338514250641467111398084238150633034414793441388861691073150355103226466490738103250816805529865848351198942222544473718536303083788518899357704810914872359878990128008919406283533713900227460404006418408796041269494401271554328108674398799900578584191739947211595041621457962238601340377312154600877302528210347954293222469499248005988408108054210616582224263545367610496996456727815627560538190031695494361557337169443938061155098407412957633359159871052652856010507246710794776127595402858630264969957079887359388585071178120266017796081082854881049163061093422385795214125470259136487039874684726845094556910850182382224266128632555711187974449258326953601662998156773159499726132166916231611660366135880750433654508389990010515433565086701879206587933784429431397276450821136553686012815111740910325188850754543689327849739693239404813521082228698389719132373802322832833999528465673271408711669313445649312925047788090895636827612924678680165705383027867111318745493157856743011882721793272583184825412093449112980726561376364403048331877955050662457976479974370440899803708882600831828176038348261446478352435832037000175600913841869874190838007336163007529480299613668033869656446140082119260879789899476835276993170402585373369494989747197616186802193098820303633018834054493372487186828999884230076648413599076367274572682291861897703442597925257650886653072027385673429914254686143474220226641946378715913026615931516838383833824722457332567229850641204214595939804008798551618566990015468011014990378530104064529784547317028911082237386231009428404498780336187505650758739629522969521654891641159467259979925722773119012199156517962236758061186575635652481795877016904058090052052475271376790350006903239325251151213035662745344694291185061304622462758755797904437445559403828767247010294687295881577856564933317637938011754225170487220847898723213012529776944804424273515790761299323868002877020395359081318784799408343782766272831911076051577263562158592506529987432404761071878252919738287418182696915721639112771582714668325980087461340738317051646234369077776211303618140085417153093971406534770646192718326801319262940096856592030244680069405405759878532697837614240322901397525264216052934878036605980765200758325833785571613499340499375328966252029923063341031638669165768702567962830031143793338596933890111374226543779033197403945472545079975473663723470056335403648625658312393115987623491412997149978096854007755419047765195582857059739782586219417613202077492097545734015030417040734991302546389463348291744987048703321526828161927515013958829648135263657651002239673466195302677031320689142630585360778610912063057900708811479235352004863974477566003977853274681403090056985217316584975299522570282676674117370443701618303790854059430776880192896458961759926793940103289192340273357901578793187146230720883586615866271722132886441717383331744921872775657020401475340116796986779636301932581943419315767283629746480670159042452116569008730737871988443237918915743406871454534605651397470279855385174884413316459480874926821446323513306226902511711741891581594359885090550817361223495772394803765540869364935159509740728547107297866467547368842181598674431838724121357701863385252218826049837538572388162824426404042560759058968468144400889510739804859929630077926611002694011001417094373967456489610661854415447445463517839240605241164392836058099302253912046366946690725723441759213620988551764905761568680539317583028869092358167340024569054577156839356785315149671407238983115428178132888349648481706335042147890982161442932026548105567520325694073062117607595720448909207642109944505195845011759920341238609156616369613579215659356585325829188830696094407447843054271438783409804674861120210717166676980588929500995782639641918509011718379993361730897860686736715252515912687137305796184131555023413647048478557854288803562931933307512869767010308095167957970781293628405996279212193062216126023710400202841044420231217925443177768139862875612344196666081773955563706094866822602523983453216382570724494939809734269502286547912967527097088830689013235384691751215052240689934781058618636061430092950079947776455643624596514076254798658548223320775668404353289133717464416125027667150114362121834831864829718605593090890147170818999695932609930885682371953999149651032637508675199730840720497149551883868081994033384568509346634715274761706751235921653022021065161927440742168519389865529905414306045470686200737079417648465880752483328950616493591943946888477773651778861121007346884457956376059044163761105965946512468969794669913391789100270969808717632937486360994001382584329826739519937678043398526881801100638379740229932785849000221018627988672035806409491808479433923017854137717291356883780828954162997039729269700885546445614874036910102449760331122428639009789156157897434869781605513775651989499807293973873381749982043802055541446348017498172033788781282013666822341912198667260563141329579863427828500105680626171309185171679693822528887755187316371464226264643605268343724781334174503275996739515054357321694811471976317476203792584316250854005995239627267325847040953874700819987726697306956483929615135198103428974189308226777528019431326626577316727619427511167824337449518943654345441888515807125210617241897389268926009128978891526717801935580925437302778964148760881577359677776877836558023960304059486951375353755104852304336479233132220822476335474979490633115228960303930612056322371141998238874959662047645285437040558699406158608875594565138605377495140184393794529244750029012412849813166759450455527567146605085356296699707883496656919651341191029135270603547231820049174863402140870300042698876809055257367623640355628494628448924768396804414132189912809530707432352881041580773176084791579366236959189330633496724490487453458803846164888042900188253301252745391453970203493863914031746353562819623458402189763664547449546315610190587245626854796635839086481470665457126138342831603292132168129800556068497991994821379975336959972172755918884711275136921940280782941069056080634379329640260483244531088315116346464544545624258287141754895092349946618916292655900589297856886417497500640606439254022064962310285721131540134924224962087637679650656418467442620307664870004116524822303046362461440221614503621942883841499065134297229028488554014058365586627507783811082054430419896651496104673925214577482791872365839226007995867825604901085175988042555149524766595037655355284986744747617217749173678897922807921076792571127883070843509451002611401853012066478417789825604479590192960435016209531798181456711764914781529159108437078978705461923410574825685017457149141886994928039269568841846078227100504947989595365360111954750781504494424023289788179067968885533909728866531103172277245886888057006548839909961451228992597370181987753118832670084867389543491628351226252835842736308624179773391401887646063076829451315221818762513164061282011612216509793621466913154790292585155538210516854311665989135409776618001259976766426526165716775786263995762375750118934714462762993492796406225630238201413696332658946512066189110672106208659525225589507442044195548508748644160100813324588609877932137932996854656413652972602649216279580727650622239353311113431431394190940332671089447059884144797187382750944001536944233176009487114484327803770615839765974591277211854572881490058473527370972354801304466377982407569728349352841772947681486744128393403881633770986053665319124856293939063756226477026761343190818499754274513175378266467512882245103789372602364022817353323836170383667024877461043811918217600799383342875506291510728071781910542896183847226188938805099904982184046881119883554238670076018656512738944649355031290780203051502232288763369787476131763338249777534086973046385441157374621527394819760742116802326100834634398241454127272806839482003535319806082136611534861912351283835796994506770806683514218476129114987358805616379765329736076529083595615673016834975768031403576697766269204393658441817422812488222791089866649236827490603577464902104319484615388263046457762429022865423290542640914802645246903275616435132174293089503132010241106227950702584288958168347914750718958875123463297453763124036335588308727812953313244790457886014362906500159486748479283416330046310838666131147369073568943821312475796145312417806695093865530194504164995963341386996530891353343432506725775415967655056411339839368066577585295431829697200350186516213736626065708222079848306498702981590933543581808111994989770368117862725932269339265522764003025382694861092002229863515467949636602828140893886605455939483032064995290772484082084311816784650300053345053429749441951449445763103286376728349354400078661815131683781280228186546598888727173593853274006243725334510289264627898937826956435990478518586675387010531549152643564995087764009453619180975658202398420904881695813078969386409027205929624624714497524285400290983170674645546581739325052688292620685009587671416355738977433013958215037516612832618565503764269795271157373327157915983121046054722472741239991359014720254977958316666544816075305810939736824927665770170814963938218654374529741758519706037004299242858234182378282679933388535871351744374878902664556002919602919479363840889950143454161233662336618706870436863418361471653442339697901249630551449604852380219823415244182193953194312612916070873082598218096539380755313692395010674680164777997106036132939772667291723162610912836930402953074492100733376685307276309954587560019239359645597903517061429098564697903732536305286248018087967997334480891543700759701477125309609485249255429361094044169115752276806739426755533093472822712202072005792479628297888309097889635526712402819518523626572004213543580327381256026646657989867518712664550635282262994087417511463698827653998887861604899258668919515878401466804112130776909042815750701882514558127759163520428929215521350019622952216926814450689648856181213686071915060676135829499802696138682293793973239801098515463746107755179996657771480998030878051712370915986042337225882954697038193147919694711166364120743962793500219508383876137304731026809565202144676685132541228310224751326833114799482024504009431183715984125257491214835841957606864565364725759738428586322068614179248901383558600229736726133483591143810978510709483313063256164815304018380357260388888387979360310312923284127824874142524791039112651119282284655763626444395722888817850737510873497110684923140546216544049929013302675188228645945828763313925308806581645154333870271315795652632438591438507587708906525798894468754980694111166615486705815422960892261710779159051913897294665170351875881266888697218408089460388903577906505682333359421769345820508184431054247017939454913598830286756259198495435715623945820753416595022362069211328819291639826127855889022462398434532213439380610785133829596854461414572701539846637034355015655345627166090769706659660901670005168478015290161176131553956528147813479126881587472167855108521965726734690875552712461399731618627567444874816878321308611659881911591224316611157192594252419644580442804595072551155263533393067736664531728423454425052626677270816370362713516179692576201912554186120502602535696032261277802927552532195391764938468742891880575673716867436331523945032608615277376113630435344323217073756705235110623963251551247667940756242483178817324636568048224899728376956487051360302809140083411227276433003329864003215956882941692491145088039065392234533868839793186971112648355700025373862597023597474164488912232353676722412285168025985809797733459616453795710976796071201977993791517570441426626874098733585493320928517389825700458127457717993128781891964578925647624509200038316461719885459154817118873838516606905966701843261352869489610841695537315246013206254646945649615447182779609741793216502248588499301097068160223133084002998513042556889743296334741379767631814484962884985063613448280872068319229259174768987402339142062582733758909159293154130009405435188805813173978500550211404444621045728025953162260267656397019145219412501277675558060780024917842391385212173432645461736084658548417174534534585329125218515732701806647822409125630542060892785811279492633089818864760569375455085928714635121461765448113790124982524388170819010729590076888850873679469194549230363800085751192616025468571650667244690344109561533983538459756671417333013006681229950209164389646785183800990087441089859451234524205917767065980008718481380955553685725335021194329345048066829012606837616854367102333638725650330280884592983864369330764011848480025686570794564735185150264816481192777870573074888003860540238826640203870690924332037972160821692580022151513389473375323585121704616970393517236602449824058201126947635837464409010291606915571131539770110653614125532446706239329018766520551629457918056996602207496003258229274899488667852459629259396570824423214587519546609587651057699222219328812249837677175866866008942737420687348935948382252669045653244091243279920942867089370350703491806939490251528094688463786558881095876749060871180464436793379112613984468742976821737710320684047740119926571755961712599325176327470019904300921139399914232326912118876633520308078542031864593752781315094622615178612215844648432117086152276448104094743151294219242348812028591038233167759331357982606205377302913313547320843640672599157534342665075410496170985507941897102127016616851024733792595671690037689524209365000900854047764870299543384403316906054829803181412689703407101865453106605976445756518513679025933566070949966698878256859816272820753120872895653173590497746218148856042428661159967360066811183658406716542109348682476743585138582209245800280192992966292667473404403307102946306253989630898763665594608021055649692944699641383454601347981610351899016448417205532005043189356255914890059350691805554800957411458686995933520842546421798869575504322450760559741833246679210854230142309361119189789989334170401594514362105527440656065144597890025267969076551490780838278990552652891626642328350354853632023510233762852612883444898741294976129044244013876333940136013003363256588686317886685906115503022786747414545029941191775781380802682712784221756010847453278595456554078877710434975726547719690683975594992749864492787785121990641975591305792660551188257647665272915289926442329272595548705790974087941717551919579470657881998153161038486039313246346193162081374306192842141796140789448886144788765840574062579326477419713628821220927159398201568608373631789463775275339561728861062494889367122224075437985607217447825531902155022464242259648281245875113317548527293647967265810860152167824863922135729497338424765560196016886514997892095193034501364239663589955397823859991070861084745970644804352707455643152811138756425078098363750281264012019790362363876825224004683187260954876067482724532454175102530961584285287489096629063094104754201330717631534293750121665747482005113957203040612781525047485960108488137717121301299232582299606032191190217385667064100814047289419487400810487540764494767549653881550938343260822780981427741705399087701317994947348956313657586540670897168312191339075009132407774439529710180523121465494153595482296680012230001096023535853142818115633333399745798915326563656267836876687095250098683978944148976645181076746735107515172318892576275855564053907864703684463051215441290756893273276675129571795501498015805039167402115252789160320534885611486448320470952684766467814976184965679746904195831033879569658910175550225850185850050738146635293282639722201213196510621636096079752471765029734416358747353658211636438866506602892249816182965348602610946360833006802387597380310694063285513180077541435957637204303218926116667955025952179607076050807555903983066824946476787452523952312490166721747034700141071235643120071145278000614175221946796128026381815272758932608119810157704805042136845544478975091635559913409388294186880600289042227323710942569143740295260109715258186688396902748628715594421971027786356821238288699543797090178384403794607346644937331260580107638485313040777835923142352723280393052785593044934550098025594554998695783865790411802739240861746199317287018478695915618014348873024820279009741181316328107195799743557997096972553033933703842469533534144195399233182852070377770491826048337985581933769851630643224254796105585818178389023704336035112419224079807813478611634505690039517436950738618238604028827482087580745661223137667126877389004751666500530037038395935961769351585069904974702283771954512364004221478733210197687477951144717629793784370385164888921108852575255137645381362690594457032963701634897445656619748383104334490606237190919379729236673703943642447185562464921183363355090165430369649957234144796351684500469801794546680138382375697409615118350732103006336522591637433997338608102586291726808909257675552381876611818766152137302596555841664632318032525119042545462603825892545676121326770363064079246132944443742032562776527466292163299426655410135295575283255328101593774860522102789558951629563648103581952416431751204208494113607008482836114522072589409247817788883815777185385014673430196475815847236953627688561616456267405360642164259180327317406188470409799172584782269868279718067624056635163486451891454601815956890654262486130728244414197234731517915298950551070266446110159269524076092682090422328151494317556722762390302455878683912904841911029556842801165054344683791945931051579618170576119452383285259828946196410077615163772170478229809273588428099160451042437782281147141488541557819021955457859104657643921411533035732438986107838266569315466378404568129440146957551776682668782419566010995876448459202369160946276381582367326732333500781990494717810663530029555076865820435077693256037120278037941903794834148961998217029272392293226143295306085429985527038351635611603508586510289924393645921812518943663832148199594830773866507895379181069204424621346289882328643009809076815730136450540389689407423124687673507315671830898815136483229935141455514607204604480726483052587526125296849776626731249708003146076973448165617869432405567881244289282055212386950378467216770563552158213673114140419334786517780489970168730244603193687386241489534968610586395978084476706843586599389801940626380593657690766369069502058738181293421103942224927139144686872514048429080892831888676916587964623184505352291399750426549247589912469411943883317457653620623774952147126376402270717679220441005616627320961450653798147673087209188540102155587205407162922187586798594029562294746667166373336352480783749029595928260429605414613589982844363022918416357086039338368323729440143016774596581158073147047483996395596050793772793742222984909543490424268688548820227089685490830972584378239784824694430559807889513136618838913579605810416216261866917622786611828056483775367004536448426225350743375361139117725766151835530151906596187847672202100355513124504473220012605561893229934054579453253394202155329311050289817786207566264852830889884597037536870213104069524139664010627012013109993324441163597627148630033496685766639494700811160202912511270663532076507479425274512318547571010290556587670685270260206548566433979027410243172602782881935581073764968469566280133272288980501504799405420913862686593627020910803310023833514279077439180586131676628756707872654026561251923799720958420422910020061100132729242706320796627208827039083082230224103328926521878480151491754388633493612560004975817664456981081137795689357963014000096052151599785414621180171708731954580787537912422316106486480922169290611672258072262276121076057163135084015047475493080595334655894093953394357842682034955274615925123563440675315352357275998687080913426640401682023941419925423442188809234974194255219102505972472817150511639681038345292159656106432548968650772166866907702662078645739481079036200528439457689322045281638556889877272683266468081024337046060241027681839506874946938219572274197845782006168745939928734706172080600578457875384303390468700657159026246370503556855079152044562484413287608419877160997147398106129390234418288210973842543326204454177577076436736374810203258757061923737720434731770917845582189088412893087025165235405144051351043200564833513792502435689064146018661633952590383073514497012562718001066580771545852359420362136351354552513019710290432337873353445576765063708841717524233459358091805309447399083087956501347252213732446188162439551239250620726239008746609436793585029451333023751128595873041877732249070654996623011871819776522611300684186378686596236974322904226735405947995288736686979820132821835068024384844449848968028810474781209257043732558244132860957165985490573164230936953106159046346641913535454469543060481371543691142699082562193044480972232132399189733529585347456082901219736730217433416346882430130048852323344644179385317852810165338894780154246021668941192427839242147742633186902047733428398227873226821000504020173221110860245396196965557147040249503555104935742566983191687996575278682110355270858970569956238514793646689084796630996581873136626656028187138179651144467199331372584907554419294791058661311193721081609722577797287426088227502250805081893957057888642690216559893977619623693319524972028234385821368067026963970379379183863133080461826745113786932012504758076060419828961355535236499211699822849517349468946920818507409972643266449038643962709570764238413049915482118311986548972568420107155145258688363675660483086862232600450319550604979286807490111442070499405183765932132841502849363053733749643324869789298051508231975326716295363709686624400113905805155444825294209273742138751132884384473947152531583433865494590530773231730507648788812746878145805924695890676894296651248307535751119788519413243603231231453722900623641587414208672876250414553049947628718769862828308145272758601964746174388117924347767537308839143478973842574985066960213200729448905455585469325503089933744125452388565110658600594226306178849241559858057198038646849301965411628903453660900249776742368803989202556864398301129261392555215369672623163740532988388049672843996353708902077636019269199467130689236176192230976763351497690419063672751196172046778650403198805083051466749327866479172282377761361119841772902849914315516487355190424411213947665313756862805925685305028518827762056267781402440545758635316403800579941686914041323302904943435366724763657034160806813146586829201153630156564698503797333723336651452752169601052646728366394320325723170569153757273015150190010076477074485515714245855248582374189958227333967695173173479024927206222555570497748274120955979901337861718217731129915313788739202190773487721053399119232885803445613811346125561452562905341664176721951556336499005308507882971187245867166136463104339793242578320483856337810613175822784878837072464362596761582607058943619248925010217328989637361785667005718080496680211736389375911700887196317327397713568757400302360045215053242293779005560845422406679230571410270887307759886349814411366169967193413911983068266233263674799846824280358537098778900132058720426686510133213956266785589089074772204347180875299877336835949172997920861271344015989594146277293302557031824620691918822159858364418762998870758796181822597990410578849856206281143237009374537409936299110126206422775788552758416252663966884664310556729570213004842544293607475153683573037806815454657650113724599010127367704540431544015380122455275587313247296049260665076653911335334833457987844208051837808891208529730688531796508619302570944274669540285020303463951348817649327647828263303274724048398027820397188077496049778748400661629513642311789240146297329933065144062519275673500910668999064891866119242779378385602099836212684448722782984636651384412340955426027924257761886830012679803052274637958384308467542250988897799956476304474466857785374606935958714832668091887726268772410616524069437646591198876830158936680354770643870970473795894855579166434726879823051412006220096381965997418153499262933826793376920837331410095284489632586880338554575031980591375502202921586381253133739161299390832893481988871113596687481783960019457986190792204513416845551871440638595946315706920662007197319104246842343855857633754513001884780856127703634460354728470600849517176397516757649156456313779266524578570261058681183986027912390520949781304584892674842955504558198956022487535913147394992037516094021529547593343266058317462189545171303747752622700290407139200482313789735955894100303393522203756381231981362452793276690624471321755912344255476209078589445339507654609417325307749051643534679136521235434288565159430866335336963686457177076781683512868605533168027691435833398034315287725009549161605676160066808809001668924680993797879846675980477231336305804743514701282601805159949776512267495625363085834362348791242069084673437032643081889174039354989620659125960811742847418274569923245476483476661211071845295234352894453619617704135048765992028016903435795875697337078728270715968820637207041971252550916082000573699110940844566880918093638280987626116291940916732059744711735157950283737537658226060812681826574754824907739939891047749222216801617855284710857962341507491727286378013275089805487910434111510731892929404003119802337048867630827521886138198492928790381379698066142929381865673566171372302187903192791700122852597484731872694093727582145895880648364390751311315476849185159725008406584341105402720130452373955173228079337537976956235186867743666067829659346517073068042415405655478200314371337329916093926262492211615375437163867929513580913294098697176788360625000387994294715461029710953228298099604882622873074852270213565923837290071491319241065917479176978082065409045842422107537074800250790139045396327322771589476182493950246644560631853258348152885338868722256970183823673807974944565938461588428237824044831388432344224254440974826706647730654237718482601194442159914235610349672141445807580985132064324321835342905833965962027702257613205109471972297768523010325647508011538603294579747223599680875981360203154659319377040627178231332106937134135047983140096133993908829960910893407883287057594208825096072992695527819082228906416999014962353359800878588399253818125127313399383568424225445532722946722463376413116233379191289071194541865131253961189598146024249669803175365586495325883890753565994867123916941339012007011476968916468636056457664125369051517744509275635849443006332156738630378509199599165031128402505683899301799374525913221120972356563202879341725370825141693794997714786099059451049269623683229044084234656969758126476180122188640487793333513864694986341770765755696783844261111647611833264584793354347297265318807228274592752076285391905336293528995439366201251059450657879512989259454543564964870227834495287263268471891491944833006440098821445400795580029477102471856147764323175406588969074123572021525723620742666945993074681131963700523676059918024628669032836590161556019710537711916246416574168437660749198011873697564818787498585240094814931404907300779300676154471480373923760361884894831747625910945468780183472457230426272108189189844370260473422785205839193207863144349702982389275748494677374173202412830490334216437846989323119491870252120045587284670225143556270608847315878576786981830695993255904219022482279837728023845317015954672639382132849238854091834600092391660796394996961671986909708837428316982653081719603092479788543319466528240401072599797463157793388495852225265095852755693905187326429899475701872266325582684386830668462580178586729039156999975930766085837308995852708848507979618231249185491617394194529009336993587417676344755153860814464410705565654872815196536041508255869203127044028133793121089485529767165699108981266451468832024441920878614183515833591203919379664756827903711106922876468053812099234588719017917410712571166280319992382339653935123817388134713195592942717261055744519007852117083067003652622504394820478188158055928064757729302210482601797921781918414818131440577620313162228769367927297584353421609331297033728272505050502638092312264262490905330517188166505407256791636423751251601221497813789201198616113751446443007078991351992872605445774808845781552396959785083135876157905301872411859129546769343502314332480391705924444624365334523858446369998254743407220167320649427554649426373762840187430444474496401427080917909441583766555647838613923026567499704839340388550356945200968446779022061974948907965970357728646848210886062603649361780588860200316298422114581648754180668309251758654538320023068949249193956052027149964615043546978100235630585120182113510668217061290686282431797496126178660700388592518368352838244090586172808490739861904522518238185488256258177076034634996014236116090150007135524027883490722904937727990626430347322887876804968193166308306535113339669602727142190338978181054826634286256816483746364498939065154320613892378304665572797764145920243547312293763877446116194885954852912042334903110886189820270008884934080841351676556613478142450637958641645896001845865962991585305853015432773098209030314326568211357861759189795351735744037395383795096709758723886399714922538743270554899195118714165020973009427507732341458024909641036692033251632862332395846430732297081906600864477318121599327638171499841621084429235404166114892002033976548510055394752333010148765308923233267423788129274701411331799242535468870660667157284767964631273131859613135980841875653298479789106164622737519248704386177592702077141074033563261046260839671531725242409045882629621545610183118765856493488379355246692770669824444476166356611772768391876712942757651056845781753626495837711309115064198260451679994771960967358865938202658742140250907751412156219549946818615932441170525774620800661405998689521987413192300386383886482141528984899121516268291417606404101375724835799537050646421626566222182202971281912536312043019207608379023799182090230832630474467855678141688653811722925898217542927647340860181195287154602610644806854634985430904318759334757864198466587568420160873184263554194370734658851926088003876499224973434895524734144308350805521654946610298348683344406938939531165689099633560248875917946126920727745030626051232823447750640137561474837110305627813195530247931358679967484550369055631331651324516718340767226798714159260918509382823650098090549816652124923027458560965692340201838699604823064886888920315616774871214029816724634264001667829558716985282753629364343532530732360821747171065119365159922616194385488478479260507737167901064190516609010142393182223368529013495894497898422052268595385856022406381570631409135873291854940074168716710717829097247072911997260919863101265783488164896783042940333382490486786016696699863915763870683977194304481397718758557021317614742878953108855693167558879459331096084859174285207008611807523913388404559193916251030041269860191521676532794639262476999524970203053248062136271748896652574318417484862426950602124732596649377048469087093306453211353574760930970738929018435335380398038116200338601295214110225297680803638703066008940145914177758830195488634287173034443517816463270839236413528415000542147076277240537814527576267405150205408290975058474980668999524013103475856307120452643407833093840525697734246473364880585085445349778286459628710580909810170307274128492914396482343004020877453490571088259434635839437235997761808427947045319748774804434272916831557156495904307599141682191842877724473065116535596107025313587729161204083695700221658780490871817723370983343985153422005734616928813040509230135147267448669817901692254050264043798821256933552313558172512041953276963136946884250998298380344878415432768467050378626133971303399410838488404926268016830904023418480166983217198707371787887181584301848047524291199342702594592203105248517431746900221514817325483368116009600174585414031707609549985404643393122935207217365736648708134493342389770890927114145556253923283409646096380907548255863792477902292296614012013035902861998724498109866904751610538452381035665904638006262604214469554054581997390479307542464700993456533388880445122453974116108600123677299508539381189829099520402996616175420488171568924947400102918374728049683300794200359125146618735750255801010463225486196612705930867165395998712657131927122441590646115556211532831766747222942560745435220902331737929036611436138025182576154559887074728179198428310190543631158368979415749719443067146666453920914659541705168833556705375803981945356360712765545557560626858026178055521938777774531045482554713939361515864120537425647402438482670809889161071597281542422130122758032953716498860228181981872388794174888668780974011034143813841978259067571221087405155361339786505352498633594836249843022755658982214628096395473798496353374103119572265652825654074514491778541334182523688474831650838447279263874782128226355030340988699496496848786212759704187978863922053206397778404060478306407198255963316710498327328345317644903889365696105014813745284481631774245136680025378087601028037542308429352452987639881940680748684306548058452215421255759275569774071656926468944631734632762523668004794622358864587556332345359193673408840898023508339839786389372731297789903191207668591073002237355123202311539756792674813640974306160105108357249647162057171681006434334942059833739593479221117484672963698557116680668247482823873939928803352241573402772364494510656394194843776276593711817249567341934934880983743091373758234607590986136714289206330573457833597544779508712395285455528300416753210765386235814072951242661170113880937094641162924649753337749037261970392578753622565498927846356085158332421266289574791189172511043353441607176504200733314774828462300819262857115140407644047319572494006624219584003354665860988811711717310442067099281954612289808509689937701249734222418440446251462193692828343142205290276300527526310174492719510376766866727281558839392155052582130911510532647019474826667034600411996873860073732812420377227439043255968025465792564754550613361294914061121451085661916641236618172894322659333944909629611450869188125660745503132800305521273010808232369399854783744812201721824106783395455164665413711282462077904693039678751921870655491903485637732295884596681227206273956627884534986065169473812829390665272591825809082976118874247546387821783632649635679022330268322687009851651847036708712378621377317734165750974923796669655097633633338422274222138717814273426465628077271926740077861536212536607856616885357577170884805158919349170259533664261621241053754818084581424502608771162341741331155312727533194090840394610336780979974197392652401834433625898178320576395643087841697164296518573589396692394679625835140515153516058120799113650743945695858984892286013674130543326218530885322013789477213117221760015713239365751044439840071609357644964737666603503379170994524301753602375014605005450353858782901281728126136750661568667770009828546673960747939013094782123795234483262686823394661022816804975553997499029773308164273286566234620181024628939771401588129794079080448368683622687569903345622051174448266299256388546808219706623053929496327951458048547919157813245731357897933513639329820766019716193921800367459892492550760694686078089453545187367366532044355920482242559225835778092837077337951664289173871983390127130006850789440437143860665327638557603860931949687761286328494421419327285909482824560033308593214793519887463730247820584313232947327742508489731395359204270249140866100176561154170676235362955255545058182545996418930023235816647843110541206625067849501778041030248583079584073307165461516031543921109871733622165104134663095613181682562649381339439845229782653101064503120802683102027542771920073438120615523405689596677265936795587550692805546780281726169176841514673243869157741318854984284916863727209655065544390210360960883841562286294176612573686193761019600079970412607304150305886731564669472114963475084026880215509051564477933681911826660786952215685734881176278065010966497806685628300195925296881739188231221609374713152983754831201009710298596722586751418716868527438207878369053177097978533168098035413541615609380085025671731694761045829227522241208475627051474275815288958584140807812603021115262358827562670899360909221480208946187477016696841340240925338941479359586887404210887526800561198981995305086855740489477265495989839440805486830213286203021693283412914448169982790681083899289188343402668577956566063518201504855454004951861531100047889238869744750110530452503097967648889798920156321747537970979476801617516707885691639514804605784323950904601877777061378978352018093103933859934563345926354692444920424811768748413019678718136977644232800524246137578931780060596491644229954213728739472799203044406383691692368841291814063288155294860150802409341337112272384459137566245717583640479743590449873972595681429742470829718257000829848930662012717921102709339669085246545761824636838370318019801660586191804243113305436319438750073907098201661984939354760841485373457173181538974995089146343607740585924553312535081094032997797073090467690539867554855512497101031121306699496837987744416583608690882286557944584293575216360770027614242570833007221573427816143567728175699473472154680488375019708910132522406270170994710985444643390859252443884728447135615260875567541247694495778188327671044900631559752580574810669341784875198751555124248201250457635501267239343137815545221573128205727061130875999352203164950351018918591391647987332612185447488631240757279387083980287163496874856808563527939046419717133790258317409266886037912305343549982697471547345385019732326101743155584722837877418626952433338692860591612891867127093876121143745771553180775915930945249245988579189868258409779813975687330575448273019939342095943320127174569465385226036439553718240699184521595522353979793392747081545645718816358143878465810456982327954516783897543292946247677363275555985413907056481326377777093604576141366044271161897040844779993541904201105043833059695199448414612219970203243779393567532218762821732370838996183182244484114650430378208566868861055724701212814537459231943218615996462428363681673398683505277634924783755829064116828688658324829730769605612153466251807960122586461561209361820469804222836620066552313824937332735503302011337631943117024085557797486655903491327614218466756921223580274928377555775257064067279352530229110955932293377316335431215006857848620194138684225985102978363610974653437429963646833357956430587392711252960674634297538737047039964836085739168594190828372087319207088761225366611776197223873190185691032594615422488795291950303879974549632926168176672057346258590826057202926792999933636262327028838301193750480068538452353327197231420774053278519802379603801141087075475608325116984526429706006137789516721518602807772237495007450935118479598665813543470582403648791528412244613332450908506890974019700076368895246418022054550953251402718222141637542051568223426163417289792352788951854015748525135563297055328473094825462253517280447779558890915721353752184754152676157428095852908640813482184142175910185985955441789277463209437624833486635948672316535768494372472067892023741367950029354963786800670211150076660698039851108210827406715120882053406199900171223152396201499219756445303972031434604470670777129140134983339905789326983144196043690893380166021579221886765097615931401571853831184792533640391548268688518493937271054340714615753079563614380231030082122715991705125520549245307275396654261733679119400256108789821520286132322152863323540824817264846000214814834532711193167443209651804769849600825324695392204837607991471542859377137598780274199701191625029269172034476497160208614968949897321675604053003144735822749123052910943235809004728468490721094241094357108716339434242607629161678880781791632347546193609871644699813981866788795060683923496623098226225452479919226105228307011931992050569978822988349329660177826921783748352697351219125765865130719867130125176699485665246112005709674627130681408414608923947008588386720526114417572602710774500208747141959056663524409758814899091409255291719776322780190126484229161937521948954616900525101044731897456479501024054709079490669180027591427033048678024562336632258808548027621108735100409817279417936069538085670830005943072237107297050213644084379247030327150399421590621882017137700389748491854455048214790064269614606832503737410464743473725303872535614127201426581912902571175373359365258664375989955898069922364024796768118574251894771019433301176451537413945708605227279239458120400293749089878749482032647017433884284685087732870940206134546299383042077105021689005980671408764522371331398285861802253500921243398876977587860878281321281915925981335874353875710105727979122728700131020676461633740688905837040812442794654204853803243583527242952637672473403998966674310273511190332263719185227786615414156539834221997127493016239984011997593205025924624703142104581481657026157559811638108584674588776097982816960410212278169579177527413443642983417916088303110580081275649560162304703990727887276792661576608750405206211998315211539281797515198016210521483602102991911878947553103909346028871466454719892137927233957503889823608085251062950865723630691735930454347884663644819931486904707532310039331615066426559416284519705901045948962519685554026910702507907868802641267944046697906703343237707088477233292605218295360628404287424422166693842646115983831689660340294600454760993069602309828843306003696842874829594587208029363410093178568293487225229714207444277376636085906755449983960849024909362232077815860868839537672241360413783010274179200492049838114493969153915254243958188253930727867874138797240085011571588556498099140347842087432079107965405717351013084729383968541547913445680079981987922391378968740257840662032908278980641191741933696728310348106628745769131823119987604266398492085287582148399906717142208081699250889994762415964055320279348209264118248117882720396249291055922606729455576626447927182686206133795114560989461483561012988477316208185756884474272864178244471979071085762117302770140695724378187399247615393992515183452799475797916946536640506876893652437665373466545994447966656935888000256149781617116196420683273881256224346480552975145510007212115159258604451202667016361814471465168272013532750500544158031422202182107057777902172837747670302968023556517771600276515053547403922084144895649311680459219357458030676389001685435615339728370220737503716876436637431561709856665602948705024465614331976247980870469993068861865847209649527318382427804660545621259687887480202272074267421331744107623510368496673217084857096498628939411719133261647153635510947092444351600371085716174734717164771470026832512557137663319135407806867782130658082474200482629370008065302529092860202079372727250506878160545908477439722733135422966993575522438116282987555763285776310345235679191929959867103111302826933842932479874193538615592495714403166201425827838840579924798572052533613367753066857483600742764716808473239446585056593695920544425089396312005433071082263830341062634287431264313075262172939876772782270569968952137755017981461673785983056430502978170269435164203398091505084014936041228269114320423589285416880032021787266261712819485098259123006251514022206867179675245829959236939561017895937572142749414470118685691817054575114131057159337723997949356306090996596597258624093852476263350039863337810329704306334367020092716241416951287777193308313675045677255889273598670571366545382175596288637914413725340147338411259833312122169216544131129250194460158059266972345419521399015426050936577044126607614270227545075103706018580088276840363842083338865722137354959007522950575210859858103353669890536038776625783547073377516748278439739553552792968162456006961054672629754177902989488341129413206215023046543755975267558256971636862307759230352125652301077463343365503142023322490303020871866160012229723989290113423454088232673988000415565872413137871163983198529150917601818606922102051059103577947165901375392067954569108094638654932046690758993205162575759900505392174778205312845458803666050101216962693494491509075626176561721414155955090144696289912214533239565492503136772157619900874035054955023937881640553428778685258776690398765427935769192099276617597926829829940089972140502558655978100438074374123914715867965434080405167773073194444097724114996942639356449431020717207299112560858527321393138538041493122195805898294059759871384936138455349336327141062062170795562902029164865940258320192599118621228545344084172779503944527418359227221268174934592747546213743685591989039521767105842508271713056749546359115114531156466307824476504472657229658942564130451264617447988387865107658458257023198516724608978028036672649659857223191014444036171693384315966884158100638376857851868634137020319967159467525216236176728679167550139409642589363939349304921611422675425706985296239598380870138911676857580065376416495964052954008012527102840720419787592405289767654113932921148662267793369183633741930098217231333234384800510322679893476632886842616164815458032614033719866335796263215378847677857245694810975230646970100889402698955074440547474363008163017752345869562335584239576840636767637752731677412802669697634802075211943551211025609956995540569996132668504171060283581726061614074634069606185796290988185751613386474609146806698179605046517785571515688052956945485028915211811104005915648219902352768529894101794393854359449265041060506909660717027556854389793697345457067603567068565501944383731190706024660144337642136339731414054551780518534513916938992837933687171030054043707269309658856920021883304223308990065519383212788891738526876764502261680068837781771234693824693581511331073529061288979750609050207934908775368840908754951354890029377363704583124113280720987675418512850161729570250272398340791428685690725316561825905683584916986502729423583783075580672891763954746702683861688811952419120680665742044923879047081484017049718637239648274649821055042914233774966106331805767182067256728302793709964026814294770667113175383453623067040924005971087320408777504408887086985306774421278595978072195184652932866492772637443517656089060550574242257029681727980205072004980195342095224765754999094075444680717258416305486345250217138488885346601281080378334189283776396843556273240074798309771678297261438077222798517370231805281456680000022323910215347330057778406882550360134220979911665264500569327710315546746020986655560408492265156402534974503147699250925044022689987613521759207668211856879305211190093251550273639237587114425794413942487549508125083996865528025306503370833474391673589902599114295435097673178487485982490215186728963245845733431018122361075404634714952977313799779010302176061129880097421939727171201073311412257438226998365291189167167849786368791592929531338177481401476522796537120760930777047878030375575052671321711107373040012657106720097748069049041947114182891090071743520517313698424899047027223900275699738118268453741247827046081236764344647805787546425714679267075475471956054527277016832916165060799819103975723803797497805984800268092997839635485820462175858445736595336395922120394328535347452206357394268447105487166236481367690681327746091802330799980550694611648030086764876622737237260029139138832296761989237588233588459829298979250635063803867525145990619814369043404817906927703363037057562968563794111449892470510847601726081989504001721993004678529501893662197741271497975976026049586736593591703650370830360028398122946525809922929309827636121278981314425859831245669921999814900127857950916993332576049142709821564209645900051401888526718707147782533487226782074540874432409029256528840198985571713384024169476147945795539955488343925166965188316051441985988699306729989176673691771584690259855831348596266333937750726586833036351005991399728110700124802344114407462985581709369735128279556058085058306068214522210838617439317496979677393171827311976929358366687754309256401465479064993518371597774447627783883860340223129637457595625889307452556682028538185858023911479914962905501910169418239429315367554466126062908699157985095418473075761572055753893813174383903617272982618762512419086148699265504025374577123718018345764035257775601007883666719186658013375177686713751490398367821820221212255732268255745017486242708509825325913041842483137043745438229447275046112506515480381297794876097715781553632343224470359046997217666617477865560891193119877406766350515098059418026693364356086711588700905857703176168476845971415590154120375043450404221698568218506097683920691888589838749424616629871406047770047178837421864521695957816582508683507011384355332735773147175796915446013655759460638264041591990961210975749347408628943540640285420862289466201524044053757058077735969653766509314290759327888134734736633423153475968063863428027246818928566804872498319025243871095697799354991370733631660499362278894096149758533335498560787769572959094071451357407154812486462255385669816716194834484094468616981741293680268858492125706089658216037839854680352338663083039810811298932159545684786567017497133244205117783600513077412598812444136913674145906431446485949835716979405381741320903492366797543899572089830094509486387139259735893440464789562414322540465615860190456464678975930768033713443983919686796658372208168501155020427089995724317257192017679213799607612909162829549089426863647033061660131664660007340730653469272170988469560905241872282531648239724338724962844108084805488925009427490957655362554197501407329507991131647674674951746049364132193732406272200620547057145216016931610641353617113292026186014862926550476426800369310971710140125689770606620022346002211423337504868522363260096159263619090809238537105706826897868143111205122674387549780868967880682599043667572124446363694385514219918355754403121378308961972186020361148116571251309694070678471237697094582532808920803544498806653656070393831043236536920635423166685994261552594324674120911726807962872220140500877434673959615277047239590903349209886591444705199173831110649503267729021974242405483364978994838077787180054814086780871432973273779852049153821537982362483973621929000397238807680985971116391123973306536341941002476121139034099386876738698191544706312706021523328160696560721789581948049141645509624708802945349275683504815996483112391812095780980780786571408284307083583705202510536311874807775942838770849936309999338560589482013247709865924837658552361259321762726501829215565063522731460914443587413023280444483686878757927530273883878808094056691849667412562533757973958242068914490445217556142564508862400048713128478489982746216529168790502453147826805635324772462565621692449284711910447854167057410367800538770580940361213836564484163674683562218549054294744711339011299768276547549518280519277008491467127525545767454980886355849063431282253432073203236196627023236183209389590204625431206285453658592514881410749519613292549373945545090234993367443515033523833558070656718849664625109955906666362346656486617647743281112513459218114644896921785650857115041281498563090176339149818020069605824853225464539761106262236667767180179147283441356216561252295202772082739722228634890314839498521185113634094565988849401848020063019780591142018995995416831035766709825465037624741839342974142740870108727552282655763359446053202225864793165550209903006369371477613624113433570599663556172565450970224436674384949216297847827361180310075217057307292070771303862593710637515888184023534077352564207323288807038545136574367805649605324975367465385819434423550234872038328449045510417895355881669522962184123029504396440364854456712532392229548048145370287188293226102082029754256378421111048749827317925348580161340189416660278964694117876755135588183548956068305950044770892232383275472290770653942177865065041897666966775714316725664478566721530516910226344245653599903106062090157161874625726501967551185905519328734584263994201214331095975816534434068082674391929342486733961428090894884292443660972365074866068198021669636018024228227126872481115013063006331043081484361286257364262248371481743265820041360235956161004892513208316308966964897258576862693740005683177078982040010834394568615522140179994889193488640869540689255003523831393364474059948126381661214657325035004219848699971178299245479997072761186378290228227203229715265512725864934148951463008948781111063625132014724843750534441104246710674829148897138828335957439594390377225506327790722069281739635684780371833454810539028495491592810730737396491008151078721267660073123691035160763471250848219944916930578779386237529040839843142580019470907334506470805795770410826244370182527979753439601219559442944608114161927017917401994203056020917366246189108129677449122673425523714887294034248324685030092086455317460873622766102833968402170743277212021595376343329483270313120517434603299104013782494261620989335516042674185672413824460905788999495359789076669345378887645407865381307212660499717045034151161211019582440448820311973223278555994591313963273412849150142913800615978838515940242441894904923968875779906644279952363825669433215144234776156410632195988833392816143857968547766936084775689840561732322100144854657081188865826989829046485174710537498457519004271904870759991803482245691809966212157502041081092092364052767411372252257161262077875934105580868680420754349082565123553195617870357812475979767618501735561669290873872326545847673841284164049835441383187962613411581485682352841186279485737563530867378010460218097736408786150587952152759182342536728832483654321232695135256779342908238973013405943497742801977513373418664927010819605994584311354598355313022572691085557015696986802804464919378240116728597871819469440970516397227095408114325079946169625009703349338759632570705876487239529483906279665128143384526834692864423187101107982584596908085595006251195341445868600533989371310062171685407035080914978232283533880220690233733687115170857736063609453652841801782645039170829500517965294170276018833132652908590028297657229886808490325714607130324938029666799698046473044061135342683853602556999065653081272291169099583107223916342579215973244087098201168935408701982039126702238154533735914007409139149000690511371422559330663401042543474786370761291592004104939989538141475851765116745154945765229297126664068066567393426194161401810865040575588135820419807181575198012432954353390968059671314980857883520312203095033161244004050325181085628069983052336723052981122811658836977853385419529760556087751505810584171487764708949823255927823508220892653575839847922591047523029296538730272241243257305268902728490560293050561233320598913299830801070993715141452720590548310077902509397260351668200801628850348554147191057124510950750877435755734363780772255433206619856027831319419195498945583627457255514131401541216964908002608970572320436277233865851612661950133425930493863964165821313228996391683247092584586571948144724865698753034071192075406182963151065126330310479497792080252040826167024031671041120639340089611503424579631659000412174701807674302993400749948551680888547823919990300324624293608649367648399029968656862986791076832788451793247442987109663061821813205437859091449703293878620473559849146848352712734242238211318167116013618312548004408801525079502780720381708483812806765206040959183329178299295269173113056518669365948412778291636968682475044245572977650009080652550369289968336949375215681083451572235202770568075502491471347644495094985459007272327367420084344659085767052408791747863191538577917454960863008198886832246482044627299001028397728184736270430263084672161086994459126982304033103153008561045209052360368482568548441344060137408489398786744367935010339837733989234504664407013907399760136006219961595065418670474363839361599404766081648326790245330527889296041778865276562920566379599780510813402316639565063547700149729610297629542208594165445665603525276284634124568127824118595431280228891988998593216184980895124495979204723352383399110009591901608326131082523331365724948902544552895602723027908568306028520365162841307196697984207052721616117968616799095016902250746109415665196163179798448680577843636762138354821265278426880333386410791752357073367564127435688155480812499473375709944868908069887148854361989721025747888443633772901144229277691834541096512528104279525384284164262100335911861846126138136955843901297659920787801407921929992662937303860076441481181650530190022378815953196582513538188790188049016044845503189992077118183327583078805409816220342517922357976712311003212855371622484596867516418954739211239142570108017578630140684182484384859588423689793683674084412772251971079213332090406170105126573538655585097625456568662985139712226158693988885385200220629009456254092244274782503308793069865412797347742749432406611465583671267228647033864544520662012303817218224526263261515516999610810044319071660808196864994168570493732942589688574791651248236726239368312151224186482197178142848912944459453683521599259076978435697437293953895472119701330156581671416555135226366556535340105748399547106430249247080534538946283444185136514678702006024260517388269605841893610154484261186085567389770858286991282342021842944812444849866469457293085542081650249810154904027282120130620584835293714835864269343064652975876599198758994256838115847016954349984414019660269701372933507659310028911099391009505868878058561469089487757299666241153693455051813208470309929301586849555696024696122522056615884534198655443928287291276554017456528489272471299811710460080609610999144825040128748700475555189181227182575270547733312533690708985798991118586744590848527199030492253286289023689855426399733347066696893088224105905804889626634468006421972834730987561966537160181854946936421994450898294437086740644731746105679388094438219766743772940800269437593615276430798340281551434353093778201142412206390830834925963092026632494907913573657398607393013197514419263009384968573781215393092713712202241903241912399922382096582477915348674836203293040867019723700998463251117497783197042670859783242981342142656873090901053702448809931002662415521925227545909781459508978297840922103386833613829710591824606546691422435440837107288782883617445435307260461548461585462453119053600290681520546144755633747774998052837971956079046263711633212340510967314670540513188143375478960057029069891235107544425679566239469958720508815229593818046231788151042015082161963943938669089116942224194298633491628063826341389707464274847143622560865548131998461276660158205926530607396469174620091216033185134805133107016933485655248035639437019251836094380877341308482998637073144861952673687513868409320761487052711222754125977370373182468435056791011988713041487121172229738704242372310412408621829658043170245351129548998512532659060681791578621279583884305042542102873374422506115034124210446068786404990309256629216821863061873369417072667642071733997702434626306510668693083778007592472599307968410863523700080611106921351554840519534201586325606414699732013897419568307259013408332754627296041481952706463841233794681258879601270559577282726627922153038584902114767936151848548314898615371305979641906698496310082174860301999118454697476358896504885384399245493001364428868281054461064110847052695962365826130861371847523862147452757376764919544890295348197726965164323211238376660417599356414752845973406519305339469709130250638767660366341905719812411578582965339140953043490426589887969100036939661018516685002316206104376363449099421062148760055777025200775705706772244223501761334434502412814003459731161903376802073143964582834910991603469950297965863480279943238366965787364000498007680644288472724000450376187197311576215632872909924634809847219015688413005514963962537720255461448298406463854586247129001854257093219196719349041577373913383720878607343718080995752504067765450245733737493005999286794243848706378284483324471561463244244094077114828056246048071839678468788875448746759920464345950605537228339547118642267279765751082591088280716394911808342714681832417492010460751449407939346684681219689590470670272339873924531903695810226780800747625717345867183636017439235223075621987935048055137195070687505861017949350245639393880055781098951602491216154254922007550394769703934105997345387736393461274423767668211214534788059429607726055068734812453919988388439188505314883152717260139175293790563929403325686741856557410778359112863246167960571746392639031896382372494786929369409107900046553171921700769011812514544299644484043661066564725925655887737554346500353671085131060176471262959290346561299145169990726406094821946789937835798065818825229302354102768846858809230426748088855045600443711509820663852689962976108704051139173122567337272692896605853855760715148009431395489519318469683688222204872120954228041083091116394344128356421188390094235650819561047687618851447247078576605151432621670048351096666528386355228097364479780330592939409763495334540106355795474276236800693648300912543371951085823055618222274583681487977989985007087267226783949021709069347257029670145087567434911879717323942586608138608772733275076021488504880189415967375564564535894506698023859996577072949462683991300954082688783269198203918317540714375578359123304180228026671531991692914091421836501101805099024638629123155543028157965803859899395257213368765562693175097856515984157680170647646551969859777157157448891033700061446275612549723839541193728957353371621112387474372719417062679248667641209416762949650579534779239457109151155727110769773455391102287551629565270570671287959460081086670098970633723913922247858630191954507094793678685659674404387399729954771889954446949869637078662585180348475373136136525397410185209934509247211160504239657321169703404222126771023017598375109128941766885024449899743760268401643196903003360715972592723775415036949874014103497202694555605931350465862756404030297700350147518595058107606266952683664416774230404425321971400004876566443519540462534387879141231994196351897642652159912944865116049372008439413657692287316433463594897899768042983980449202158142529517292193275876590908500572742958125316381859003899825445560193431474067460639182660867505562926680965028329628714958022631621975261381240329855695313392255380365938028581206164732324701808893924290702672238927435229789659391830557360284746104852516500951232516856597195226288055027801207675325563656731876837898001380279809342959563376702394452751935562593146936541490005269301968382146701768860038709403908838291690238732738512416231873282312487347689547629982565104196981222135545036472004139865363161570536443626161615033795734836487605273997715609740304630206633427259848668405429218398472719580850855237856236600057394854460727792181324390903852965139878772226561130370257085925902594317420248690870849625700075119084570215334184813380875067274490501065380249490551626805624851919424459213187920663322102480816725762539267044708037674680183272425658327206211118030180710554832510210127700429406267091467860832983771721309997888799070264104253689585634853788958865331412305259537260593812352634900544711099916846624546064617869936742571752026453490126296195448075492042155777897210847271251817924851000473473174757148277727735387458759852131548359045944106540475517282205550505855645795055737880765741394172612049336216647132588939681894426385929744909558428993510619868693227064225120529113316325986593654680024934207248665659898531273422461263041157345789305136393760462645498888130259263085346190392837989475763756977062797677928792365427570756890410569071360101839758859085958360967865846839316714392728124272195830782231882239714004336254384658886492791771803989585007338543744865710926976574754971839842140110255420550413601689631752694952665224241178600120989905040255534173825008925242015020001057956242039784956867610892768821771660164400253778708588856687921723853004889950808808584329032696070231960531199998925863975260904207372022211357033977602846507579841382266473404406038964849555252339740484013596051278971609525605421285595884594641747842777346010272225854504187391626630107624677099153221000182540313602079638115068751925374275212026458692776903863732596177230573853236718838189307581765818708477788983517654028187187329490748400376925684639355746143932458032179808214141310443751541936407683906521686086820931369762775453051280967799837437027399290863955332313235155422503013697064704750966287686468427773993340617613564462784443555510005827860203831274266683482497596564572879457697991990372890959611360681168076167868572472757442857477599308612476186811488966091432280968916305299850029274640832489477861438250554514131373914292532082148934951977329723335565193563987186176002813305389810606690786972399794314133732627777094381679792148073104617731690125216342883252888812247621291779894626719503325552682790899410632313500337084085206174664253488073541875960990078354600996732340340364041411921205405398391690352432760413869639253650701097182389254239407606150709784435105666164183478454881386240668541160522515793449087124523541333231937175716102032664501514459405164172747676707079081910547458124901029792321568050264603874339802486840006168797055595850133579302523172314088203059145888836392065961160641931408067150554704554021298765835447272422930143945783029898101982222249088895391996636922173052941134461503488325236046678701710052585492619398882159730464730760325838297516382826292994767541512839257337579884949018484978489340417201400265625112785173208550900780102650866355717619081204739509342650930448274169877801490128137643685876192785638507009312979542733157463900812924352926454537843300956091787635499472747669676950363140717056875433805022531974293331325534682956964999499353972226112003144305850496491170963798426984630380146111367758742317103330312407334408838374458628326202617002245526351177147235855232005686291115038723879846096990228627793053416219418591594512900880577962784655063906027865797438351939385118683951999949746880076127430834870227785815149466320637394026705998839231730016677280201568768045287231852792759540192061210683337324688217377137152455500406201296219117328450712861421076883415439977570810522144993570052495029466383741742214318522747810998963076462570009139368320221990358067672758335520849901712422663976642397753628428029801770620684390268579887858604020814512148250766289529068427686276199230330490249343344545926325349650295443373974988065425965959871438371093759929823914148695122894478253025280249554851609397512609102553720708783749020973430223039434625745824104920077158270726083830796047650208414039753515937827572273109426702607736151742282252624094918835960445529345321287640873080672087351416535912557855686825143062463367419457793310041538221542561381189510763442016052192680535677148933832768370441640769886512233761751478072930526955988930632351283163677181757525140470599081694720282025780149042741628423492281078876312161471657547287770115086950583705477205413585868584689556113931570091230247980962268740563441471357625538546268589618227637475856134618932835249350231687242727890567668615470456045675005624310227546188961681414294550053420066105293714324874204110787461915835960614546691712129699505791950797611011266655356571525299468786982739265543901313446733160907110259906852307628646811366765353620029647382762408953584219752366974554065888132325616497755593818396611272823121570618996425670957107749215387702195876968342143656986120932144914242153359251867739777683372561809723410616350193128951650792575260973845521943760851960191988000449376384927401956607009418692737306085491573369912020009008922803093590204661017026649387103595597335925361358201451752222172538111130853727569080071881932786165037671548702305441842570392940048059944024137829808459520363986963290221323107396042160510377550769000099118483514348419793968195922924187186972976223746634417493135836297601528843572030916115508553586234673283856582891671712050894443749835546572208809591962201625426692215539007576064658241765660125738305287168308246861633372785873285368895762369608833929633763043576805597873503589404268427867931345197983156887496149982624021796187846071983830273263605446100000816207618253192087067466655469604453165335424977587940103978886874823468833276833984481184426596083449752299231238564263492978079277985978882438070834515230427285432493871563543705341346647022969285436313529821560993248447620227756618915498291369061962423147129590364749979354356434627467984753524190587808250950724491105625011421490886007689834694007845905790214890633166763221008144223125206532747616061890282865166261390011231855023223610223866322351488977172097706914329045029310081352999860989051128593866071802064307149487210723398123208534693880796945057775708016809231782575800756260697284049783818706923622468808971800579426816322393624077677226545310320411606307034584484957447624520613662315162164604141802710453686880015059574721903600013343609005796810496769097655646808820416719464935366080822309712078398539487831069143518169508277968479690446611236399207584160173682859663689413236191968217059732155596029239568055851127810840475737903103631727835546357745238398302496416507287452187941344424255796089984724858464800134319214537612076077119597424387913537459685253558009775645485081682565093033101591956442190838745750523931499318760697796737946148606788471907475826617702014155931592541982948178482590593857954457776431997715642630993444017852950586314336858341907757273811340275235855972228189789798589130085200569415499765398461514311471343404354069653965018516450388408303925992493062367649741591384678963396228293822245911031130423490451952753732193799821354908648747663364967624464492076482768076586416426182930824886853562932537654907330680722408003403958335326273708065341204351778069990861238586010948041662898564026346040629027272782591886513761875763081788173991379701442000287958076981885335591777978741826396424857478488101775437680268158269508630969953719557691500595737944694123052013485118287493351424308811720685534563550327403367448094918702674760546651512891721305566238445922169030272360259500174202807249940134061694853752600624169951543043207779216912765733484069015304950567942915166609472372248083459985154581351954940754600564664872837314005549230052890147435284901104310595523169326500877685221283669734720918466435132843119643183713024817774613541473822079815795116110893625234004944325434635225465880024869601732631852893914001080357403346325776646062045917474403883585215796734650533139994773807740662895092779696499162366036034715826342093519382685660242577904379249563442127680475533237191852300733991351747051861128225366775743899149605743710281632394196053629092072270421079738587261432539051557465825963946984775977065971801116975785843818994385611115064584917541395237365369729422926483325234802856600478914215576632507123910327520104735455269636292872848092492798033526104270492338053190480405137713057209403840831587337050929036704172775431995924306230316738829168541406796439475102421626065856987241787065979207215978355997642955947727197541603480626675722357133643647649265052748211412297283623102235385030693812050074963883193113666359473037464444598082681094522408185549472551130449526394877136134652443858657989057224850759009710244618989072036639985934470064581163204958524647836965865424172794679094104070818209128391126135636673323929345937079006086040229142784462068651235286199004285635994471867937352419196296287239687934952442966357484702824613494186668749087948864797948392825618006638492723248028629683426762414591241348135404130997032309602379727363903652421651095062445118554202959712074322103844115949861302771451273248124521951234965324767517668227076415308643011626360008469410167979725725684193348228274136141833322217177359974805273193796575311728158323638791978843574303898035790633087086601582501831252581031963664914460643330753065796294465156872602169263087134694051818641795184661035680613014906573322135680802120323445586085214240941301152228910563303687218906427322288141211283170954640368473959322188367302957865857169128879784572785420056456762488450376793314076278904536958662599071213230078228009954434747833460709791396741162748677670791575618276558636010266973981743833868599339245919040447126626122285180267031767848133543870928673197497067443967975054224596111076673764921616585122108702734220322597498195118960794876268485657943873617869266621081523663141478288233532500836774560729233006107257385557151477060071381934432001032885806363841690243874916739766894499781878725853279509370933206501150471342434215853942518385303157774480125334871576552924055914409815493572267711111878292083055461833703924297656378739764982237860271246440638558163562226477724875103396129905563601760148693077562343853352225978000555506526454640248111467069482267893529426474154321205655901329884406726612403957661711891232559053555108798560072947113223982764935218987998405399336395201915910309844203670748981312175137208970843909756830944926691122374785406544397886650475490509600952364023204404118942898026490356998930235291388930033042666173665138330189041360011813582875545972446904828304378434766199441854963909799920391286934414042358891290866442064789219094268625777751876960885976290001900007123575367929560836829060820432248869362070524879454934190077787419852824935081639816230363357461247663487157480701448800057216117650595440312100317293579545916300866619314615845912002421452524535945600152762000704443196195839154870223052426360769242575280512671532011634468760263745027045505845169326184444097734746389120613148945989014086130731895003830928475243260559939371899595822498753731456472588057347052705621790158058903519124981297424565348038461276369400688036542273575476790211566211546307857320213342423320703670589386195626302694242320173524091851938821317679099317818706616887195196307584381590399329188166257842500707321342690890896922754785106034628014348742808454419576525852201201287309598067100713688083640395586490724027983097703961122109656641884890748211516736269945724173072625919005060120906853412341676860677489041106049739273420087795258860565536260686853879361404617582289189785617462698330436986702085570442147492697300817030188606386700305271946657852869005995680666066914674922498613941689751330607239962551124403482055151170991150664871841544114259175354283898300946567980139266145577825359254755445206067515901890144156737371848199667060019693384695375799842907586826642065668939085385013467233273568633166316468638122275893757689063950118099205270277439741466971781101566802664927872686458716590058317923685117286896598065780759063459477349327230018143686361721840402495415543275771821826454872085656590986899312441625408849548955782314457909364323326676486417278256469314922464749658912220893094862978075636106167228707094800998468538056708879062996378182193858099835033527320043753142200626670963415152541082843161813906560362563611875673442072083037214434559359184673310227066540003152025700196595460549002855833361688778321459851399592848127922719396591569512164159244940552227442084253519915561531939681116285057325986746798458628900835586417456521956168738560465406292510797532234277512584465416352569007741297769128719125083675139681755051765571806542239311165921698437649818083924217013199794381007108989078159061642257162275949973842323677088415622540906912946284692775247783264833166839995124787095427100663157847748815666683990298027845958602968385242696065426926912862278081457169312807510039350278820298070460590758492102858380067283577156378078315270535268747656497669365368925977534399460138935594617614256232900810629511427385425443594135633418395671512576813286842536980476530718397311091847060127177330056116495238786937269993584208727197673173007430577860235276095885329505026837079749601172965390737857158055002506502355863138467221093996101218369023586000481734634431952663996131252995199786760897520277519993236376697835559038286928781818448895409640891201094481022638676118354243182208729436328863877057210907809660056762263791234989014522288004046844694954403781876328283374937198188752594964785055978716971925354955279073258296198433499041392432926350397584264649689286336160556506841279138520355997226257851701403133599994319149989519325893303488202431332726040640876620922405840144128977625268065159389557884575332919906347523545741360655637273069548115979737143769783403439203861525743415752196639318376648887791519325241182446101457938009254882386261427187058117907733386834110105223469770866361010908144172008208224416376486000027899503921939473367005081582677748761258476156080525525381053875633486396763917872306147562584852139285186476435191127855463620690572564552899026585094295760023894189743911264627188081080500887535620760473095588130918405270562406842159457822531207117331681783025339137880063422973571333942413848962332707753095612474060451711312950376679097133656431850069809301775709220935140108519067782185016482145947997650993274794821331680554900923382655384031017194922359014061466156959685768545410234470608579391373643071606090086835302132692112449510225520944116278250540313706293818581663719816963433014393168396692023038612937904784819078643669038041601197961965207692858295246905749039293613892528005679937669225438273634413116128187186890955062954936492581577871260768122400731371442562723129872312499077274208617194105866162602389483453764557770539751824776231840001875241519634465702428521929760737366961008506754146776048887634455369670631134014869394383194444470408135863841045534548750605622167049470111121689822762552678605535599245033488181210807967741282747226833901199016937467420362503449338110231851718227261024417694677198502043413004640706617910513323595180517291581305940487007292133733253546181704954009402745147051236106868811537672918398540937886634975463815709185822712117921306814167468709444870663554593858997378109994236203317321151402486314986696131908819431934241407631806070801842746179506192154611349658611911536520862123036670051622061912133398248759483777804141986811981454986475009931990471575763247916866598973589206813492626376683444513303836403263571640637541553373240761045787329961552640968159141408088432085139442647249441190815724748031265676262043306519433367748870969012998994068295354819049909727547359474207545277597046882789250505874797597458607393152632566553450915215455036295244351906044400273536164703372189305876783281305848832501175028247542204868693063487555564832527835566972139766405916101552290014947844913319625921518588185957147958743196501134500024781512526811531857798911512062284612307134830462966232071455665968806933675009109696044517860325004275174614014402247821336422913613412320276890677322602928561423417615143055402581123934891573061719641074823422263872854890129148437600610062728221106676804083910848265869752695731431134554524020242543841280219854401172932516489019060332045363066441741081176652028708061838612093134825377685994418393705643773554966777128936529666794649417625964451459706998384226912829948834024865937171596850033853217722084955854641048474246902190628008356814143948824230457693222795833618881650370213836662054571816528586648685447280226989057646409115191676487348248527652726195377703500776484623672166380049539478450887086968706760949565935928166385635302674113041368864500751941806400888221033260922127207199429384660491466857698548930600985638869751091272020274713356342053951805888819088147246708178110589733255424921007358209962798508758582607730200737285126059084115970091175285609146214677414989269330666789134301789087831645732168353856065097182830048450125816147696357407666120875692912558181742326527322433590650133991001015892302831510010081548147960374512669729928728582958630917695931592846946827358459096524314723822126113356905321393931446727312519098545190700584154406521441520348072115132346804448103935924506407930005837511466481013495613415892227926946087361425785711186472186081801131291692319237427811184608656169166065394744428533092601953881053784141717846728145500735644349831621382057410550316566009561445997839137270313929821248942416265002682767651033418257265857892004891147693629721772473740268767688038530678136766352942664746987038293767954524215097115242926423188567397426558540084104412576816402289916706275668665038574030181022622767499492713247636998091607778140769604409764372229822454090272179607691607662942728821756413739865998377799216159081265982990975225537453399712834049969715926395927348168163931098916138171754732247592513033410626035530351753538323286744980475516376639497057389807723103237495754716130035373019386414312730257818803369512915546443561215341614731288767230762926122242224407784120315195586738537515435214732912600984982523876885410316170076523101663601663118673409322606055683315047695465292440328389143917369855977997859979442072842391767693194512751842142074054308480858986357738054296042414610739144399846025847749129680576309647085138297971109037845637464204486834703481472648204517587609358872013737746537482665761474380649398917084802358274233049921612604992451168848388761770155604930677018138958790052631395851063765155591982304713900948756338758326604416538555771467945784486402924485834898486319069720097745298971194484140083639363755791846689070765491380662230383576296171796559568595167610570889596991049808457371463299042761834264959074247310730672349296963339702511457766485874666967759091146016871902937319962055424984112319996338733087422681034490994015007576065713377759429463271863498134402306697065540219664097613713520212974364227382666396770790348480216187710025298340114265020727660275889800798675939140563258268225994972896846674686183389196847462030182983724426019470009097249501320844716832041640410197742424476834253586855273596400379456535595513870804161839712507875463557333072750629372016607276327514292955860467487647623327386785728531031794315492847981361029344666266096018538558368406334910847965503403958091104424798041468951174986458077362063504167415948257450079797555324727872591092928438454133644634534963070970882218878328555460920935081882059063507097994005428977213634913304711016152021675661453757050453210996504479111659949297163514672575784017592278378188001996295863845664555718540497946026111041898237553419035965850712558101190381545999708815472048665525890238388843098157701311644679122669328057193454450341364013754701676637888818372703781449613979276759788752113379021887830369928966411461203483687672049065841367084251002992492817954259433422819483649658642384202520001430879446568246833864579650432807580048618992170525499858232966441457318923465544319727613345077834528733063979374823967212686277426689828556344697627219448950223286912850365409455301411414349280649364893420030643659848686959132386396807084459336197297482404837468507642045640876192206617051839393646017816900526912087297095655953568991769131961905954763170736972349807659274009872053755535356395480101112738116638271595373917826768029873801026186704341616814241280985758607955272072011796123895297420304003288566120586857572776297291186707890525620526450857951748620419844991279369790804739500841383205247234721478034029201489407535325882986206102419867009038258605988254042933859744435763437944461627609907976455094105904285610481575253700728637109392278719426202959399039871961243517750788417886646402230462765624790913173648932446754640243056276374637079674481293158888227984050918915699348931061247658629059772228548883607523143348091852471705921928876084534959328062316002793725315311331777437859192423918578240136882263942769667985433342118783841148645794811764445008484614142504126317427142182282025154033950659817535920971164014368631734362139485377223465143773518244204060857504224524292714130895149299568166913551365878631830240544116682197826622280132000258309870759271285833235647903543355416313962584982515355507370530643783253016492438295833867771522858106757810141176981691002251148814883303531748825779458796569631583699621076211767581546007536372613400296510463234739326130461156146246488289751670052461177961462559673467179042632530982317821849386238616112710609709294931199052228154306585190160000324046493660660182807121610846241001404053616900816826441542063832201599846926194956364812149444290038261967366472079909964335956037887456506372974321297586171891472702808474971023211572241899998530997935629871209186805758331978558122139272564680590701229131944491384929747934957125210180128532601297344730872084947080961149191765899835647781623771711250078691461334772211698296066791021017256700963485300364363123619232887179541106064670496714251357348382673178324348247040048006966701107260331706905995587838389952490928742238808199763813408576070319591377627753274325069498251791165199302976853717396730145949409313645828429981506904887333223980950135287227459662407189932879588734269741979199536091201882945332765329669060144961766280932952705458366603576026085050596868212333408549673255110311709031054337272420465856537674094197431359041429201229389639559383466485957923415719548125640555376126430295430306887588629290014911299778163420272873894921819564019696631465238177268919514086108869367348989761873946656908818319353585810588701336286673312362409682239203932774404168948637193695965402444088967635849462134197042884342982011951862282482480654305492850781654211228224195880606142929851571786144060241794376366096169376250314997572801092758713859945256111598966788908758711635673521591908313396466433159558082927813610569340012721022075471430620681628490976076716181300682785441482304531499171246851362265131045342240497837585301279368974477360426452944308837852540369162207326009318593410745691781865003237205421476087362433102856386798899998480004375866980971219107382553675174453109564762576829473408664674763431899928209527813561001921472044123738907294847776610284699795334226251382565161954357089652415233943474500582300157113407758509152279863152716429638411281099903634280701011074693912942448955652013895912736604173210715950547618416632773263084222926631323748736077138841261232746583162157217108057213953380415367343249055538044567889564116046046207338685707780180259685496358243743840277675474792925333748128244127665040216661399353626698267290567265230974979256515754330301838378755973309844133136815967599183756149567946530041794846788431714387466592969717819733497481788246084000998653883545842003088648094907992392249353773921696564658797436047356650534583723432449189324594736051226184250969845686434689456421310539426066823474081510087181020060142570271995840487217166875623546888795225106876030955547992174834221717608695492620990636115906963546047884772064654430817041400034407687370431511572999951854712915827876031864013379953363540661965825636041197612420821579486509015147437535344728100053477199824406234040496003842586968327446762259088535375903759049446515253356965153859046601443361469506771844625099111366108460518918614746193306888831001802915058308287294921528405225898923883244480650465473952505882116073528653677671646714041702259801591273225946664158719547417936654598902653632813910868186449022598033089226495253758138475541756676141412021529868121581715627792843851854373912863173668553759715005122016536674012885827618825567639347873009279477334275006740742483777262509282030977192819713136953185881940145152524297517945636178155840167886166001282831352314129325195024408770749518557312998066344272311060474155083351362538026631687278575051477436519086611920586451403004302255703738320519356536491936048501865595938174619521210833752916426286673220360970745319758570367918922992377338638173638091628324159205165016972385112294962811412015825616603313410735740607693672977696702297976344162045690102817072528007399750705145909960161966331747390362105108000796719406649159684906863329142829488935803376483107625351247805135600516667736565034124360850310018566052845992814404910577417820951974507622350648909560285812829883731029418232743802518928856209024483266589089266801977877337623301564214903160684840590860175385957841186886785380019032169932005747094669641582060083417802891429229265814427917966126579976013380690789032367539950400536157979913643592455129871336170112672067495273227992741825474400648288910206069302053557964552034353974591876977688724878882895026916130167604392183999518993592852327495493793517130948420395729804071683132489222089436825260306881028504290620406437980324188223555829073951047794956382305179504988013247712633876989537467099503973593491875393196989196934609206283132842931654061842436428737626394973694826180134609551313661633426962008112028526855011578495371252982827944843790478321521899992912843037464430290268594887433838557093540281684894704678819234506867680098325616262086844062445343612172435995353586137875956260674802360576039471731694586635614074289218108935094454984246825396138701031999051814947050859015041550490180016414943787291773689903128844283172939051255780362003684837536317905965482016784165151297772331515247772689920607711268872166632728035116805754424354137699926889915895205384096177660989440327374332790944300559004435718080141738209155691421143137676933677381257510330436025773663898505757323060506076284234747964769161612438162010298752972631660741760209280166677621170825267707571075250088742724216746584385666432634964889532711448192710358598674518593980292482788220704561156790033114480793548961655041717873969831832279866553792712308269423991197114765285237000082522033082775558491382766808867832844335590802189868395183165921491571120452331692862480867665629768991043949854525433255933945526817891513873051818618831257680773003742094083168046226769718737477869640722770776070010180549732231556507413089647125495258381650601702049318056164997727001867049328387203721605678068144465766844955864785754757161739986457041270028438819588018823857576200627910866965828836607314858970045809018638053583471256889366652498080901460707578338205523669252202031095818387134466906785206051161605436093057414914120794011533296134186908425294273052325410636061220855746337780222957615711978157725572940973332272925787158037042755584078522839530568994519834152350546087594227035754230391193616443855369010961353405920038308473587449875323499129785132059342326782340568226435476706010425490883967512920558971721738072770826505540634681996877615530606264527252601658405389837269441027712957475791085185103353606967480613718064747493175979007998188240985798897324707027725375844440148317060368706264604826107224468345257495542690464923437646638754511766260502413989629833290768894971035967436264421876165692222792551200537993340133354587783507245622131203909592034944788655005447793258852736767877612397394110393770783357494624918257481916927151308214266836877542390527759150907808024552974171335981329053459233427597241960577016528940367716556767540961821496447758916807331517770177072483880839572030168409845555217402109183350250854805191265198275265631577623310881387188269480846423647116809967539115723628431675774321932191471510801439323714743653675109651059355275135594142842127821862825241835945819260053576669742818095269818912727641125968911964280208143843846705085418330700526377242757603272650293860952543635177757245603203163852011525518081947292111629323802062708226005354009912637924486917844024623684032758147739662172375042133710164739486264506664001983256258276752687011521797998237788341475364082223816107773784061256550893728877337926637825737423933374626749233601576778052436770696807365376324110504857802913095872241441282256701203652759596149244454182903017643854432354764930497943346934308365290767957719201265249303075874940180252067547152475869461024008165130161873288009856373436497519197186532943321379743770156486428727690363354156076761325296049645065673172516731293058688691292994375539946559040542971577027673517004498331215065501270330541548308904237846312481359042411797719107125030093294113584211837575567299273563606011205609688193632243115488231275807751525400317241796132857166674301842723305719040818785535007830626985533406247817961704423654620214624013495348812939689709830389568876020554237575369270847456248391783210367886682578780900858905850483243296388838817478708223162862726938342617128156140536173686693093530056519049509745108438361162754769801052705017607619758095756883930530869068900432578310061200171648545166377393611238547636804397811521655828134889579623456581530427370995307978557586664968065844760442683576273020904684272091344730715745303643979691493206535902191014340928444588475768532052328598258180237476548451122692041011963117420985359477433277401821541205814427676065050745400321500916415501963110070493886968193806121367949405027017587940499733045560721200344589422549604857813297349437294431023918963569805252801271182785632312940075778157273030991614716151785889316398388003926428620380070101008917498789459760527603193505319202516386604965527384892941078265442338691785001464543819052758094058322758720560952948990887349241675423946129525503257643787606100568603329070628023565211271738745029143698422587886270736764077250128131379786945869570280907685239873996707150836055597765372324478167092610101446200685407177137102126038063367642109621171756747561126774199410990939137569908539850080839874830096126646872561741720658382529474906705589417123362256517877134053900490930321086087030819422972879071632447264917396517433636133956143338898300905194403146491104060948394568305441769967569348661154144795963177270751594481533851051301788682386399227835313249106243135564029629278708465103266393065497497051010021211969815988740157414381058279514139320797775649899232020269089805394509749460545979022618494835252025748921057813409989274356306682972789297294930111036851777549690843792069464134825680728827833068460282115792141514414811521136752574709223809550500054836547237521360272734047580406319637442112042034334330944157698141883617782949893290920105922021198607794729380962066983868501768305956938651202342967985018802636463801671335205325314015293735190141383233756758002843521245238149916998697411485359897892568577967301760154050415359930638454910576558373060491240885699501402569246237476232656683434925077186510170731853465362394878661317758656108089764438008923530112409890124742778107076438363203124231313991759319255667109590100253182248385198376985070921000235802234899612177765126530043006574296540852977677184105215115602647570786211296508416758172651417145269918333658306878454250088366052433875342759964205117591265779052814948335436043450797168235752355249347280543494264389359563522095092860545448809573916212598969846828481635572611465020991741466700783455939752730799341506953633175003514818982907151016558699537379629542307971448846955521287312025827408640581438407554320535086410858304806193857790038831074953292583570870455795326104722145177520295415199496973796536557416740843623667300094140827260943434029841068531654180686073768227463705087602654841082118361059415175567864767911673870139763095441313705497750031768804651823056161165463284073840970755734580091445754284698978219673946649135122521511614507546814679447054619134289872435057168936949920270504526230037046112039487283758859265165117343111397845716235190490543403052470469411647560170309730611933921383293771298544236567888016144864390446826709506002141315787947226891389027993639159561932907698346317241348740360233172632359276489731252267880895073155194610448496102550006134285889665256414166277930111359411507420246343247940131672219517828988439885563495758857282982696878014695244724970853976071752666400140291220365017992852302928054226002700885839571253151474589616317499448031039115309549286294435863356850878601562835533507523515183494635569358056825613106603401008441217354460754032576388544280095068236672607498910532545004062675834520965445078889156260671861537975109903252341581243018722203613603510541569272513931885055414505227717473864469835862871949262068490698174601432059592078186103091950780959127423225238546064783717766762899514585004402350212786035812072198108538423325825428964519521432519318964202718886362763646079927685219584187445290411149907006124937851861711426978445991617703625446826922158232616213151575444918660543518005332293067684772848067319157524533444065054193470135426387384771283056044705220248492657607749890789467492884589475594843322664925404919282930428690339046821999392335468982323461932018933251644425750149901301437792468781061084767275744729261745200203986371894403632537047460947213411508230094614074709882878402949481416228475054185064817053274152153523554070453930281870453750245222839408097963675505439523074632185316960801808548791845968512773298187251735507308953161616407364639735973914060766537198599914753422617178724249416642823131857659736830035321708335508659098482083432306855549053208875519319934234620567193802352635423850185723546905811871432949561042465526421904722045316378145697774387405950264916669795634098062955834722517375887398827831904267612723201517891503387064628926025981985248624802807804696510386582726113452990584698046373446640529091218953489819457170536545717664398441088406080358954378029032068647948207858020452976923183926464466254666890051079156267859459899931547685418844437467408335610737381831628941447725475498779319076750939820137622086186070266406745038631484900667675110676794590009542811886676961319747306676233635813714259337088858995389129069107048564693681073167189572512290261434889225048402614845943255618879492866897378108411399929431128178255386843384333737771131456071668992969816725873324052376836742793739181220094632223607245798276947686416633138314868453327280898755775195682677258213478113406584799629158630405258260349138604070015790955941191084303453330243017868657070347099209010442989784852822086474569029644195723974943599820206097341211016686804009868770991256965224642053566416271584908574224781629922996699837537167909675816751363924588695327701942217732950517822415999192035950583810267357941318851280501104062816461912479379610354282913694714508249538626064864375978686406196868538756361615840559697730104434007841770803467061220835978969322924994563440466381653145149661348789580770758103664584334488210519210211571235610884549915570514953450088467630262638588097973231953259571279433055523862597452199611507738799988622214478629568452933802077668527840944617056750265236989945906908234821428719015189785249848098608234829365502374313036585150016918365185886482213828073748053422256369569645658035648276931979479946981313986347341867828212437673320548967793816502068236441310450271273852548139876441557052045371579081854463546539220775178778874027569785662876223042670956743107741285121774314307478705131147540365568319062778973477142452225799360131809320256459353450851432672958489108893654062606373870313896864060631393666881968417179482719179490343305458838211732667989933903035571775877316983901180148256846853625129939643125287371430419383977547111959783912973679677639004534599534576298385156077269038233453088708785353492524339297273117434808140526730771228914546199248696123762285313100022780067401561170427988715445257884551697068801519487305173666220836651064086635430348194883905554004555679204812034317880567391391406556899309318419647963188496271892640435734841661615684500946099423333803537444543334272648033444241682428415324863437995883256789102146507433335203314273527921491286913337900129610785000236527404907104578492850035523576156423385365751922328278166321355705970167587794192933748893856034121281846514157801484214222133835360622031477602576242072460613229413852248869343839524833607628488286262517316481314601587698682393853323492226152561461692810033709542184997823829141682035497630799108451179307606951983430937309426633259602332681202686567972778613795446390019973155276462533388526034681918634524093517399100931324013984773071630028650902377646885048711765288882300400753781890127062629272284709158623864531203975975754876919149509186216337084018614558493445546239902315873716916353349384249910115873819720597265708672349730284555700455253705085934215292002396340171879406139068133715780473639579775539778193671566540825923950443630832511684735147515531078921369763390783376025995337685719294237884484049703621540708340170012749737431475192813778681760974515833680515003539329745932026231391607868802302357008306079720139495955919438480251569025549395338395339961589769815856922429861664563172451626482144870928766694525946073298953746908596932901311801279955959174466597545462516948825276486204539398839851741161279805583363213304581170593718139341375959659253259433707602076966191236934412149429197300298701974258652753618328676639978583810538935491728984756806828945103359589380457648842367282696366013313122477121048228770484045575515099032951924537516777591514974670516603387710922803696477829172815812720734838718220009515206701954089117037302987071281580256660303635694198039987131700501495223284493637772067839469526391810476074757350537097585513042583011266667272454677157758605381614301612502255886289429538399231911648684769269975795569750238541973892907314295202447383216142783014370009362056123662069223501920321958528910062152915918367792295377018243265876680685729180590159432187620590938704913983570326104167725364947225720243606985981288532733853889745776961976609853466578759758598240136554909616454085344737743021541868161959494959042003326038398361867628456299007486650581452159280194409895795728017157454232165201435518326350563831086457961843189691555874881391607419502614818881978667607726112765483799685228585674731937783540891360417040498983386491766008643924201852508522170040363795281024682119898529812282135649114163999633071875587469116718486329718493248351939060388759092834091522153529478290922238852442668681108326416794142364993260205153805721323681596453957796615738467004326397546600955110701603711810518835469147029024198668170788282147939339114021474403163389197561235839601270708787893720588793994330846933221642838637657900460384209376534589394730524925558344575517844165183900443375170753597542931592674803082543002334396570554445090253437271957468269144094917572980586565820096444383226060831529831680193993762984437191691117242193559232497958968137642476173209756064684569483842561192924363113480686849216782486214643307062307157561783875278164323602178053384553642319064167655972552762164071210628114229357810295780969783907928768938852716113898486949992280211059160376872175115555658767083184515791071432689185749548657297656127388843122285041632246293852711917288871558565197816866595259842181857689046628306084002395820975835783745703498376038094011605572018342813164490218398236203477456217251313226552848214839893053441347741234974414790559537547778839351281449697520842333194033894876268973100717557837952024945173793659930184514789693463955388279402664633824645470916304753473457198695607093976494652495184477710942857493891220492271830026359254437546219373978805102160842922896307266027444426642904220726571203436504438807406481501459072633153812795045009224004141043204765485491829405137783255915160595645831906397282057375328566450923476902984596017525153512317758986544948177158040178120982685585943955974539894471620951187656705721548907516462532033795262611110868069616972651066560745817992478679750909890703078078651665643233211505800481168557447491178160348451731322021174053635288307113159128433820937396354544397506333341039192325820673823292251179782715302561088531820064268775033880102272223051903719240442661860612994144718074142575311330283215290968107764713395414295804658716538888257668090160275969519730193652114011939567971533315722931722424837777963161632471736139208600060576422055632019463665768459825178092292647936497486734555279333747684971407257271418672917265460408212194386731934124543944725189742726584814681306080605720083908441816911037844689018996484138358065315620904474978876501239547339010891732832122301933127747311101370537150254863358711992046318449642440917850509343079414760205603297174615952196514265325406639831234268523377196529281888638644233770637560980994218328407881646502917880823112838305071097571212511912656994536165110179932455281909039926359585555734327538154029920334805889638954850232357937792297385015055935363025478222985747476961198393747010983838801453670377712700765358753818854523828891907878789654012586438609440582703667576454135194283657810849498280827771123103960358985508263837125380627641723339179750978042750198582535825296028410091320823179401550793075315105169474167562037288816233686468729338460523680345544622865837709712525271376124333761185695615362768001409983447046486350080413125333933217903042400341470893840637540345991714977421432548777999391933056990254292106033905472954920173137287097698082493157505590855806532144463634060069638741377363371084682840709098502423231606196274113679458150646559490401773642958000516172825950754850957601274303955979959520592157166289667792629127003727283931732606486610492402706127292598219907187247284050419168427325210998734023657420209304583470998593563294472788251059853957151741116014724442447710374743068839008897278533511612313229718304334907787804410196627212527666786548346025601822156923632734219109458250121055226566845691490119978102198504145205587472299837154362900896498450089230359356089558660626310004548697543306104996776513004029680546266845657714384097276037670254917658332057136294190259828226868545040777186035197556048326278836633393047929787958539791046497164195185748469333621394770800577369554630853940938584905016211466724043264851527614363941705459475206688288524044847338780403487189463925564075068857435748160515811242087207940716904588775440685791602418377207679771762568964174454830026671217881104853112881682288763195806533458215872237236532901671316404009441611459662327406473652550007195722543830017145014452907900675917657199390848228973679068887708922626731680972677525236863781510751872502339755106710915776453024834252601648256902519011631334325596865643461982317846793695971155420618333765286784190960732963720055643909183991914078894495672486226240653915911771271458319183596327924971050926324408158020897397654930464120748616487487074339986777126080425840178560435409171723545951688147017005107490975438646952837483517232620323993655264200713072206648149586920565256351139991434144018631088758403461641305429669753396281264798104405988856263148272626953942559071744619229076078309354841254014975779990091327999691633239975938365265296722459383764767549665230945162913144215069153185664052494516964677306866820859874760644387602738269932667652696830962068698115121269187077470094482318838642490561178895762316330934111238354373141347290141713025580072297971293696339949019453645912699063022678223684132307407779874882707485828651294820173551342360065645857219523174436014642161661930953268755766491380237446737681247294388037255033752602221909393314812914100316753176322033653185748358083887651715754505148136625796047824179230894373787088741837890389448894074846720581528701306917586926589514861821254888665898649888515858228485716036341451832055692112922152248587953603279868201239609753682777385219384642787247540023117109098108577852901109610992233018252702023409823822919102921103007863947041893341785817052430050860681746748461567289407190232192213676491298619917739959981175987074420415824604895464059379641547173100968565817291401899261331775869226929559783017046469534665996006607479512087888027220894424315795132506401795788643512370834859029375985268889420677173260690592247512608727541927804760472932596717847911743700254526424526084379726696996072999716733143613669259463731020874674886696084402548293082122185761162139932302853787137743047825281036689484979506279474942519378178649497356618496523123024209578470758206462703171872387699840920862882303862356774686572632104523995771372878654575245230446691297941155277143608491008481970524298595479767888582285208703549013764185915688757061106938142739792661879957304506831669089615876983063563344343126915231145483621057794462221352787700228583334885294751312191243900345455908636645995391965330685730433076065678310396287043264509621211710227005531932391077726087078134025219101777088344073491738760205727702759957703234008408986206951565539607174867795228495192723223828701777323912983505062843573794536464238181353956740642522041119922377351417443117248101833445867492411289886720999856441839982842486052509391952008248707846672547398839190289962746698764949905799069996896550891759832849441715508793431957392607037199893383960945620314039797887538516528742502066137355830297730234030084388019101743392691757309511634792857712091916469093921620210583908615829124135023038180760354679518838195503685850879459441233677932697178168857438032004223173680142637014877120732616250713494644500838302482506560798171244367296490466557252703682129745235852336157624038091121539832278696362775216426573221496619236137806878759487949873393188557484677114366339345227338091531733353287182333451620077955883722000299521984013005115503835860686257881503339269627271282075773272353730419109915771677036022336941844274700280341909770430268269504301816493225493930140588530178447511001661772842231032964369031828758785657945511225218352897320988281174836551169774596304962851059682123970158552875969676624376776863560596972672006653873769685986327627116115348806619355476686267424533557717657785806021757918599347001837943636995780198554664750352637636077260241592052073220354028131077346445854145677531435628201195928714868574353638090561825921114427247218655945842710439674371442418574150994604682169981853268479602314072232140456551239114478734709151096592278365250670177887621520590393943548317249935070652935073089253826347538078959116012613951285052509685413269539577211724545600997405176394733020798975747242763383524475396954567499888056672939704579731848792045301704171803515576150733742472673919263378858782190689683893666065657623434221385792541981224403199246497194637944424476025823697611315912506479406277667827525731388373659106182200426066741722236566183386296846677204652863052508808277770284755946751811324773880108283464663556417849082183137828999710473859009081701830668298592286742927310278413788524733678059247272999382605601214787822211441213579793074060284890581338168278634585930082720265132974912525752693462666717571390977387417306965134400007383798447104518943097786856313736564003008270699470006336099781153977926247493679067462655218361077883026783663172603953179277672824337025261070115523912734774148999892742639353814241223411225386289649036736527461893738748555442670444419214528527134739552641792386807719242728339311842505069577003886079128280509568518747789539338973749984633801824511474122227845734808365062237077496324937719761102826684285123780902970561338194396129521644213672235384226259508359104295435685090817725530785538323146391682655034164935642029242517581175560126483459652165109683849675975295243669786151138691306025792100461682840293085348502811366014520383030213198477136627144103086896463529415482009462531451989243725050670323695107660665642617835746100615230303684702009161352710025678307883576163255991710533052177811287908502297885037750202022993465120517729466957050080155131136860426590455108979494970430289975694464498717427070187429019640249877779796152306013472264443487186751331079852099416069267273442097480661504920894044553095884232614278299600862497689208247346773092705444109253224161494484240182949055981010926947306941431182514831426132745751849149363579234723666180709448992705094462212600305068173019082248880488184556652846448513974486718583022719364479941529882846694341942874016863189920678473200188669659944649011507725405936092687393844046305261748232866773782531309000261753853264720284099624115084184352446854186902620684749631467991911721456519242923201897874443992906413513942444679501766962723347724397302748002152326506340229198660591479354099139748865473965416373993051930589013211070326823477957444107343150776742266297610869498550975489244106335611447396006119920559836760490848556494017475760865380465165766537532912063428621165811054819696583975967799568794826517520691200158220370206583686288972461125423866296962811306536225315109425638107719145045056795674616535410420791800053513012195370886033778757405166930363401443259868248127796756511582830891257368066319143571478031062373114771877210314719874860077139474056604176983516822827451190566471117446967757108736597365812858111474563130469153464519226737684834732987076617355346930285003660174409011292890309006147237933656280842289315252003224582590591578074941032337458058571994051888257005083289051116214160295613770701302074271673819149345990250769004280589489676774763443989970931881681944475713520106659858592887089246622874321846989657332057504911370798669225220333132159712351296992408027025038020179736125275161844222510017576625975904107660276049113538724369500818613894730261153624344251108056301411965344165831752070410156775950603458597307952836494943160861695908095120186928517048548903735910069205323161842777157717775208536191301693842525575617425301029899987420126424594659468069621414673269051573969260623207144771903973134493061721104256696715051255939285442906106562025653189774178377914606128988709927818827468155646161495403748611781852831415841251488624935400585377008494795702540499774426863009120001177583145580602594396567020194102000342871563524285062903755363890786597155528675260020738495615739257662953046148033981538809551015937585976105613148700094422475569819670073257614311181409240195464297792642639994236747100485696901596751990591245281208812611025479768649455649100184976962442149497130572083380083376670818523419741911150465751976329883921613722819899766945899666515532578462670645188105217844144916969318923945242311417030591745233953131636775366281431074677272315304956986642476419351079328383885417856796772785941623462243556407239264455052620078392484081352406061620843181989795971202440724199958723811736995730565849493805436142697648670736306696202878551766659302053790091262359850227887767590734230694527549855658118008583412115388062135735851617377634706113954736516524679725417149281008729315775796762745160928440354312211576650248365621945671498534217323756274764155247296186601887458884310943998782750090382175244836871916678632017941421590388092159630781167548164749225173027396019464010789461108770715084147811683379054950180247401780935995316863719941758211259432344706562056757277679291936984119548784854583605341992838504034756079018873142847351140301042752078225117845216993820730427158290854945584621209857147915225850740657652881320287341256099536659304385953762569849034998554193972440744825444692505042270838228076382706666481965947819664876417034271030429205110606030203716938058448644512007077226617152174940238801378200849708191857852251490121025208392673408694156029748458407758826266891795081547265133689452610838552032311264795718617417381170936045946754205498101988044893230868230414273974435151719762432702882981105649222647339148823630301194521483964103649073949266150699205268631241572949999385545073610779419306533107666243634684400488640814899024822222652105988976408047155780670539780768911843054779616039704559255998317503965665104217316283057278867597800953614757959788608570115258706475842869464370153325475923981667134714418148020296251782752127864062335783850681423251997371207301398575494175158625777719524613285899950124726821459134489203781852907827435145259224496410667025975020155781692675814608698852740738172530976168394526393589911049695048910484195969650990330017055309681830756699107999392120384798045090967439770042600575967060692893806541647853857809179842458937199691123753514501402718470637890223956858682752010259260993132377230439081438829906888686700680020338715586463118567718124042795890472194723779200808580309299917475874185765009757434580410618286614978278189767713709897722268835456340647696357846253479468486847007876875206316597019223514736936692195108738931539315315490487530743012120559071999366596195130746233329200234152399077060707563951933749078651683493480107879961536414104017989855871066812654080581568836644832013308342346494131072831628094862772078265022421150408733130290267119227625040545801137316005590105689206420015673260066914641829189632410076831089321630211217843157266759131458284013030490163235751289916806616883026796761112848113978030479798548528790005529814455989155778333472605975428744745261481265892595710535611059355688992622128885953549395220428992681787023729488720035809452690236493251081852226716590025630506674371230157115439963222206750146910358371005353655091127014632181116320283940045272258083527221111861547211158488227424475429808213529576294440723989354201868507691604246195221655778797071758399003504876893465321177813846298432855539967478352600714310747470681958751471809429356195677503873981354977883239019266821142336313876640427372601997594832297624592765069996095201189914503031069642106537554838664237040034509586678524075105452239780951067956448185061091389164337334639148053418830299106391819764256186795430754571527959910624141933630849809383183478080440544170536899222593403169527885159125986957801295178580669999878344046434843654354773037288023252232023540620452880574492467337970915649794086315150736781369580937503138602798530618426830453071574834054978952803015628217663082001664798640718672373986520189587316213941064843933223939608745197997299480527372959506832586446360551096196780026937552453179073510033687266679135018012308946472982740640589873155512259763310127778688600627704981759693857568224295147228232257443089868440436017148854158757941818387975523947692593578847999671303953963499335930767317069540542639197324938393381676475153295406750524700694416135811927668941078196141863012398126554533909852403937073135996813619016119973586727591419171187110362336314137743267566191860306402593549158361036359320548553983787952266530756224933915815960135312198712716015249748982614468354284979382407080866460784531764482561249350100194678599756627489354258631820984503502346880079693821829947224053980234086566727450065931577484801737720202479199531309664330605341951768345083228882332051066507706632571853181733052248770075120248755467812260412553006817766348459625465959265381429686227332536038381145248960920361646287581186924771797041716545824609784907226882614395297530281353679147639133679977366249367045713670607735057872474890872084850502094455408448651963001761691219074436916203719882575586615139686034539160559088672423026348912019040390048627101701146507244801754302790918958335347173684580073462984283234510105839493654883566086057566659011786452843483453896714299035017881219404443014998494689377796471396769011581622141956123419399507445912310124895756627624667030263854442744512207309950553651381987556381364340167860337437264352565143475875765719743120376071245558571459281561405154286319515032613453140692425042785051517506843241107236304020837682823130706445106986349792689970688208711534754939034919661727536802832268292782877599257424752009319031933440133560597838576032906640696872416114085598982989659347529339069687266319999121353678806650933319458904679279802808114738184019480608040860474136339476575217797287139129362603385020810357164793695730698320171776844482669952272867947787704014479353367619348935329002044143034761696538609187536239545494636383793987598418400778382875185154942399232029193750539659497891562065971326179063523382222141994647916150294293828245250334921734197329400779305731571858570317065086142592846720317328044144078423907125758145755232990796272539393950688448037240431794223809132462390156566274551103144482150085515861274092988291868029310069507955151783506022157772608478714227329055175003906042463526630017776229814206085607675595631508879469054005327084978587119035710916680198391862283932077507571767478432140908797899770310604265363430895905876759518464434433826219563451643430761568212990855030627046360740837318649975494764700442572169322601941481981150988605069709885614095827505652460510186362403087757395742884653422149609524303426174651294719006561516617499974454946063636600418966175109799175989933910029814921941180652094540517440951335160879574535273830219783105453735492439304917007292591557556876475215231028708899952303373055193426029236218325312518572411935326910862612093200352379636796748385618529042877748733810601876125466016905230628887089782206750190686087149845804896375853739874963662024194239913981299564478926455320488466744379018410588393889764896588124676728410522105241776323742759112722708749477396121321366763610403661510778941196950977442492503483238793387032726998827309985968361605080458518019493862998817326067180103973597924255639454915937527210823718222260822869666111880825859165010858875879194396701036261290096511034061814464535981311784259060104871986702858816263968962764136004601910078815867965991322980005194643755250445245352826851241896450573915195323539102254577530486033158305064194805912189315558822952585593560611036717108967501575389984449985881532184573290198498997827011424483105491875218267408764283590135188464554479858049031230193943796408645359647538761720586627100490136897910146332575111020465251769121827345413846384231254140114543608905354902803846749148886030934166391756525271168915719313576991687393028675497793047005127094725302412867117647301455362181252790564262284874709814636849582345134489512176168502316447200474915024102915007861478313513869800978769865868282984403152525540555310168311756249421303916942412122557268076150975456046208595759492259355105359217245528025977165330717884996732015571410475342594861346708508301774299549352082502687172189048006871750985295601395191620728689038737149575723010880097924701748363752547192531452690568265778104406421708174462952216704123923288390843233761937325672225728840067958276127007603409845615628719140860597020186635508178596502899705768319105962897030955595324693266936460221569833001485636153118255680639205732849873916849726067378496582925442035999352983474731395454750258208055890998551373244144612999321012138728940890338794110323361243918897324188999776520436695741787952592942587555134384380884105917618583283374238455390257560608520686554563994254099351739950686469592679608812367786080297999492792397049157188351773521626124916087818914254462603624619341026843139067505571666478611008232283563529916528708154626365034000606941650296284598685580661510338146713612522817928160707939695496562631877833107886166969881508065843187770473253169691306048504727672545562706666507849802633833350884374258980421062558133525389373274409728453248825000274632086266641585461934778694546786534604910022543327011897751955243176835169739090973887101915570155299850619535145125228981395965480295535048406704151809248306655025650156177301105539022963721441870823686577225532345898553466030806994683778422340527039087870272826932732853058242531046929447066789753734458793939590358130363335636448764734448574191092604792379820055995033620955988814092517649029353353384133710781438898189656174350975947440659769174664404545587774963517776048409323686606160070764483682846335952549267214223811881929264517902026580483008844540827719472308097895548295622194432900755885173358995363763739437889453558269899959054248553276605516739088797191602762742173206984991139831004724551122924544536988212500731741249681754453222855680114592608613193218058621237149304072830921694533770258131205792455190296618149560031587922276194323671022880088601509975559684478722140206155119619447565205868308681752165667614879581967683850521230061969921813677375836608946800283123041972797920127897798104925095771092184589299987742251269946157282139402687671630087721332726792789141347778537264579169810894227899848258040299238046453953879507449716252124003765769387472913064607035865156628205475125069449216997192616427525537159488523089822170321085794456380928273110487008697110137910845808960690863462962157371356572748391182850797550559346039107464772696628445330940764026682338821536576605934389910126753289089183883439797765732885324312222371026719108675584043954196594927550649592609936596358082554418753121132206418266879271247781397250441490941014440701490272835830599241685356063682309878303729320834304177692600176489851260113282864345326094935710664943251631668834442848658468350108834213393916979120250070954322714883744206686663678865803639563379596891759161213897133583444510906751985351317488010874383101479297952232779235138389922527940184434168170606621451294160815571741157355362131298151461842915977232319473952940122497474447751037608560298865744871092012773243663023286891137277685102539181463610101877475993740001405764719045493092800060199624488944464037379177958500934888252199878369356888244901941478662886000725250502295938280779651073338810233696319164979742114950706268804884247807926053405242201330068223945380541560910564509152592238181137943102860621814339772606594497822421191423712877238388106991062364019615869923500622196132756226162142803215014841145775240967643467586067507878268732602168791173822615406685888833875518030496690697960146222401625759427975164667520580425609413050277335191486897562781549293224692074254812948083180947541231943541277938582633428233083160885793133817118398479365853154381062711342586539364940150608256929936379295189432645150043567005797692610526008593236845796427357807891809107022638940040185299562849749190458303716609226587085181624327888709798134370352329145712435001589541135141681288172517787406423125647759074861449207820698451406348662983640009600602589284740720670069732556344697695482340298573127334037792345116863159371909674744872266712816644268202592237084446393727160627460399243452912358298169916985132335541117958990055002720189110904377590421722097185776173520519929280351484317622842146708219134915479485644273946377153930762977654485836421093531220858517891225377719705689364651618049350384914444416998251300219367557438236461392728165266690976862970619033356336852683195206337621437898498105292907289084864178479832917862675391753279643960072925858438601111072799037389470555670654278249896200177464522718292755226920758739811264578133854477631188648160820050965347058516135893198715437655377621231481610898955302960440770773041026453989107334749663085104521953112113278146636177029083489136759041963809968939303825566769073723853356364692897262226376672677027774684949497644204385052540411350574431992862712424590265815109517025883937670419375044148486596018591091910127685355833717172202053256264195168141510186827113177728582876930328464442880679185595037158137229012627341347632966951945788961878257826681344935126599824483371409430414528491072249325828063040493088178676148178656706358825055718319388777068659159285860603423480468270715678921112082042442317497430358132648419514101330148946901562873963819808104163302575592192505227789791158059434425693033430449084940655711528330762328246774238446336110232490079845339969791035160103856750521927664451142211916827015358938300344605586532178384096760281121249837981035981802128254984685775470211008075862570097229494053869330677202011092204132181561082891944005867910815629028703722114983065097104473491761175399405526880901421959637072640582069836435024386136360229244349003632463488587426951201977096539965705579937320653098148097069543051783610603851282258742956698571445877660121679782360992526915514939296137150768554840044926006809930744042157425000592588808124438883803372295242631449912293913090550910854449650581287052505611882855607804838075133822902401221515836083729124707434395176650968554381658487809636487921306675259409894623647150414662756658705964745015757604670082298702382479819363165802253983972750074757344038237994354135177803281736697283655636654968030385992130236838468744352455686849397748851114790425599584108451926516637364415498674309703820625099043240528219854263173262424964995980486145071641409089373653745559953601200434000854269259716736307803570317052801815126911050104089732935147483902395163257104606289446409748020641117282710576120082254925675072433101271708407114627609437876200402185621695292959997751559698337768419758974953363810928537962125774758689664194369125633214843873287914792780928487007502341998249362592046319103359903400481242675502067143032673868935133304559951982830818200373171201796753362336915095614310626145476057352649735277584423044350204029230831198436673809398567419230900982596749593187049450395990324146411549874437945192959950161294427291097468317976867692045520563370366698078008672216950821899097876866614403998794956197515732138328585806038746137878590592029775238045839170918010724517842438548267152335336525732395806210240115546020516755711442853255520065371453834054221924155455856760434342653075732665438421065155959087216239961117373975420665334185022194695359411426816354702522767811456672277045200766553238252560654734562869912754700988381810354401336924855306075938096559073555745813097631779102801403292748280100573902169361429533352739707574718934390445392739782892401147904230731902976760143748246793702824141842901497567846438226128172828505484382416965120626198088885124208898517022113871090603945292874177464564021102522010257981731705072037387980280450866952985529173006360894713206867718035097549764981489709005085611913619756081134103275491029063013857207197889696435249485096707092916246936839598757576661917256115574188015945138135191291383209932007079671011957336842883577617156158883300841808436160049099338831215378310085139000700753100774220565461819256325592795826085740629668253982735839062919928268178870649993884845835915300816927665053763530070020439829885673968088720736070167975661887634438357475375892293754257427396784875126184316551195662170607124175676712441447433421616386786437402982920448267455224295886888327258091349762157848145044151638232865992050018380886795978872594042597168231242159641924266649557588106837621712303369429219316984941292548015721885071929177250064943689435889946703813362061483670972353346867129660796264776875140144607915063903951790484581672452352518275724559021404264329236883342464584225123551134315315830170813186211889322033916547907151519701191306623134398121740077032586396183990494261190240292540887416678895260155730355449359937164550750479778094526144174385173183726460716400723903099873674924543022920842730694912732858584205771732799927033443485040401912625611595749531943149857502612301093944796318409775147630723222907848648915951912648585432076692525070873166001471363861014345403881359165884900720689584864254774437399248311368785588116933955902166777042938610501420174998336005467553398952217458672670998749462136566845671958373776846612803856305546545178938884954166926022606552697240636672460525190473601498986836335821607350004240822308580984944102430559983604007622843201003449868072128118635176667300435729887247408281156004306764016595319463778499004114156921791776797948859991608796439522386409713465106566402855083797325923156153041200577818101935556116916155801492593362532068748512544987213285416316737469023317845450061257968922214023076678235786371289835383305804759154927621066146541882967198577260033211933453673123252471832545723554110092587978639199826991611158725936820933194124210474386038265273760799656144318687942575506562114368511809700101448615843642285109711848676238688318903973227623132099344923998481660504824123634480931264823673670607083827573020665320075374041352003328630505680451742330788147560977696220744951222320415298467186501792796189247181555735627678324637297630217700549289780483945247635979783823811239556272140294417963798405885530655945451835494266693387705872083821071173671570303040460420970196829473477950145134096174423816297820602395449050346689258382778661563242919336604903290019070680570628844006697394598614263057384496524402824730382100986895660105225399914097144235478156015956899014009498740509554372251565809734195204386468317875613398147519992505484264771748076721545022217306307740781763701328358294440031114625662350467403810272356071720010827020494835001514535458887482756980881467436336962876054789655339264416447308781789296511942148577363449646878323927744257183255749614796107768464734671905445808181045027120341014500495873987749107386990957202804029358365650488706835928874195553215003850975221487812383056989562235739224144631989840981708913120295842068899251434930883350352362736186482912984551753591929825112758267744457179815394627152862117875434572681123480185742652902308844005790571942420199043400733551045045241576102350301307074072980637672267621614161521278690472928792570230318773457557021667098693447599902552146766813260264660927807629408835804273943055433989341449616056928734095042064761865080155968145518391723539980269332122286188504659466737350193529648799042107528512199541086280509519400325495860297213068916924764426113530227538471396238097325207599389476966477869444011303689896955758439269490282849178012009353095135680997191467226954021981606315830892706733429300645927644476623401736735150875955170179465791173681776636454716309941611906448789313044401947766998398979421143450006883279991179727999787491651063927532075951760693162180826013538085958297840728508311817345484725431802511357695231171735037079969237556104159643473606473730701276835144203519033548308042540795170048464143524014410805378736760204713066495238439458673184476087054411036172395770592733687000852547836990515300360232263709547938646398635389983823154287963323310556359957572768675668304513505190133335219700066423371465977367704319681488017089291473290767355655965849533470298018143910025251322231282474794154586040228066489832119730739486613324989323490439439223094276185404224442568304464961909794149382680334805922016122879206505016086905022221812022894641560994117481145696891707325375577530483358821032473257783657347538450409634553565437919133042676897076846673691580873966240686402911720927291127361022903956392282631980223293419694853529976142665831061200172799954458200323699826195736219580691402905995184555817398311302396318045006610566438122230057109923757894985017040263541101297078915258406541118038975597131566561283533879110877455659515455060539771177480808949663234692543913280699365753333081210437285431019847043535474651465621287671445679701154353352186087795499971178115259019968396285837261104955673679278082862897109425547295559955157577817365611350371400693115304770756220742441362566516735488211626426697748552436174410295927650406648922415106111399137081192094550186465233156972429927653014354230989471850718725997970288749851019873863757135617289516711511763302961106579709710707010222944765377867302658203499876191567045751828442615449830227630610372848216531609345578815303484474271985740665693798498370668356689062408215553754740518570540092850132930379328093792033601044719692752728163047530975571550164308197846999044908498763299807754079166948128813410400891493625359293992099367354001386211237218052827500380859473507995552779950100397431690665849038268006392466768121226932083600159809725401187380612783104379134243203345710552638249586989111789350513419329240565175232187398305268931098469441734646648599261977918836505810121197228682638961227069135619237809758146640078744955868319147263559923745802829278317277625183886990554826235197382908604415640391343547183371173204027938775811549269458701529651582117424090610679099824055871843071016188873886429454779766927604579986476890936394834548520386870759751816614796767812427106642018483439191519528481299608829375662294489680352916768103434507908837732237561715898161112400854948938698018050421350876132684508614123260547296021479246947711429738622853236074052571961714796283561436724250543385165804930161840312869885453313000395727342904756320291444385238027782985655246621012602224943005199885071502608513874148494221640263599737651964716722393118681346953041890776303361744331888016492846489013323525988384671624870020911733835411276674838596547914837903533885288147194427273335935018540277679057011405052599196352758098666391574334831327198904768665348814429393233813097749154816842522316939739427632425446465766178279743569730303670550477895346053102612688974777391957918287167004879660659734898217697641046607012025287358313064078209562054510608932831906998644859185174908665850354949632532107956277849193117263492417685984191902101390771827089151169115083863815154086856111068934402514244763994628125881450295599898567021967287210753154850803459884378896189844074309028506246884560587590031607384632867089409767431268913215870644488698324967985058420092345121775876457866570205658576527119225345201793154436217861213242047172950338397266079093877962249748701142240736193455339609936128571376833037793450592585093086429922980102876527847092795088442005948505055733071618255169273574876199007060151476158387336672231103282651020766114176695235239852655723353894308936298901865548339491259466124031347799367462830154312417663917309892444409089288656801018281783362720450190401795906442900031689438278971378639164497037347788497496328826624377061943101575446307535903691871747932031895204117716268095909248902728443489576379913900179230229679865375075071894861906823778559825403815320671126612951239454637751685761403792798267247595921194114229926024061645731324512121947725684880748064834054995072989640851965130721464903441796791266954122162137765105977220432178004867787327683121698770230191483952792114627895665464454527672604056010167308517570663670597714892900136569836392505887238282214750594890024509727264481220388288840217343926112064937054297281786019482303253167899946867865092768837951640822008417786356137660128227774114141969089540633337572903753351788563494065583179418756614695505668450705864962020205493355076675631918075108080464781617614903723316751784158817880372984973554205651493430774485512367439309190203902839854437488121507886477359626265664187334535436671759004953521005833648823069598713653386864141628400163316201283209104260497755336985262777328524771223703926610455311236356699253684555382656238275828912836986873714858571007527139686728594538364588928851689892942821089249723111526331778640159664512059834666547536610100241323154831290980318447140139939038124536075281300524667708355159509599067835306340304738378230512087072904139805743854143979878120017207024144805613048198733586950664948525092537078385878788396082866761526538036163288020013877330699116959730855585244302162692092221860532920150689360857750708265785076787660766303326107933503674557296043436501872542725073614171907845936492048198876752528415190208492122017165360997449536041598909953656813000299266677866661099688021462750349015027117610054103911657277855609147390989496626096289460553949951986296131991108014675501564698929442864548834962447172839006160262557499978305926448529513264932928801666268425056979593610662311239262011457353756790481704309735541780026941289216241982107801736469946821174690528238869002426006440875279229321992456674040432452834093490914226129325886690619603154587674053911827059069475733531693792110689041978778616971000793821296054475242379799586548692193904640442462504001290114973709169101377073641644189985459492174150907097511495984638594198979409405119853957231184205474952519586402043549166803785970157237415287911837499865360959130241993439790095193694471006214909486265556227245917574720330438543929140329205120574946474579205838315054580591126925410773327635266920413631050875861204719836745538187222490047718459491413959592497913614642209338007850547826863504275503817500777276436953110887035147484286826693363536540341653404967987726549909379408234445083218002538548283969360544415641624587062178004423106845502290694066021630174258735874470097567707383746518459996931997177008229834206490239997520288177359382258381507868197644031858492535609991385006936851263476245050035281890402226813675185504668490739595387807901953793569238661954303479708561448206689884602273209358573741569572890763220451949831602880035358079368268431990854756978905712368449009823590500785875286861797324550380268812218134705248100604092145518950137331786335004367649858083865537115768190452814123610194993447257354637987537673468155482854860945005146567401313158455303100118848780069676948376315796723111727401083579106777551187164013744591879931105941332900136327613264496057935526586815629198649408164757910496350771404111557969007554157256868361594342972899955132440342072940817717369176749806694009307153472718896301736619028243071626843275978721646905688887856940687281052467457166032899681382567883234905881145977043595491911582372534186176234639934649275990318090036676890001605673196644607234168790187445907743031532264574092706706598240137532589526832124665983545010839224587639399755323209561296291833221385859467314390306968923506113442486527386120616424039141623576272666994959319590948561550889130883547412479205978070502018727830579006015266830953122705406804042923730134277358341762086599205537201057494045637576217905531940392928173343863254407469396741910674305230942535844569089207675658769629060424968094941590360864314504649533793431627437614010838408842225782482683878248311392199726271679109706581680474281073939350283568862250136656370810072000266904874230499047441928636333965255404691583570509300808043451050470546837587423783333740710212591340229734367599875813848175428969774085753730340100416630566968857521881369632293441140953683672227828501475054078823732297020089695552568596055562932521813655292114542496120834929054472422733538029640525836395301938045265710617550872734404060545559176050625946212108323066525739822514281501652908765068668706060455039391544589452524852621229681379447014057311263606904485763629902856509653301096259110881276166367742493237655407530138033267433082140964750652013896202679966461752249545487010374155201374182147131114387399779963069001934698100784287942989769258464301255125755984543859150588909613118975839481125873933493900698742036973979136617460157581920965280521013452680738250321122256029897363261533149470188585479705010382810976786652997531980523533171155843525989955983723099889399059959204110658155374535894579497803451715791201434096186479179418542794761420508244652615345364410197353358210154639696611649346373282222826471617171253983288236917604899356399296585379511406467632023605002698342771345662656273639082523714114227526851057342778838011007253216618865133938050890493193868609132844465588260002046076173618885337770353808953690091955076115434962567904584168817462260324244920926976287122620444029493268365720439113151677353286241056083071208635617318544876156865076893717374183615157834037965538254248274851168697811479392549305753104652701871835230039267704906078148271138582005831763850356366192570107527494915851500758779223510258340721589219138986291778251249714134653825663111909096265593143739665172104038250263157557879613754511907902689286420662653892552779503996509420612120756697124687496822560205559939747364839684930540259162776504857091874737204115695237383374073920974674337158913283306554476645054571427097519112677561633309216908720339538283644218454949890172168196584157231846069161559887466753669293186318531245005921331685717011338814574636071656375154780563698345217748500798092499150416541761916252001512639234871294484019541471746516148096842766988456819560506808431397981433705192296220174970400184532346373345664371325987477468798025355824310679274142415992150803943281587804442555629114803122807416127533486896314320023033242469747666250184842280809429064601042108022408478989233307040746788896234477679997109137507875241910557963244766287624728114090110996762568327436831116407168111180518463788494127273459284693117521166077651614624631596888834362515139670398261818645715194498350152474143589757527227404977295381845392977555717951666486419382851981034935539009873158383008003209814616846357260485693305088869643532296027188395050408143702958608915232172540145552679502701968820945700395500991466822117648402280500954974224044907812517972706658503856889771775677991758251437291526349658003376303354845865092572711620122739049185818520628084974159747911988361851957168530280419234259704999025513952953961611579335021303977872798124104607661179090335256972607613672172138701674147605110166530101780145807958249997235619501835870763928951572936980337840456628987627675133121935792238240090924145315066881185699330680668479319085407207333600959000596482882492673398164838876419325611641416769531946141592581829668334589696374973112574808573745122185571682788338861709633306083048531520133035743870336260540732932363566808835938853896873847207239093553360467107954523483825646807841472355214559552436232543131452740285745336860986209058074791808166890502329087590108708553357539315281007159113233377041797247435548640891698373201090240287192312722411519944799087129110745989167478482132817062391697436366054107650061948620849974208386243328534535557267208235272745089431344744227720784683726203860027699306664413001310952998653199227810210526578749295983507626410360621763334867237547959158819700737437139816022513882646449258925590440197289244360172014890025334060805343212706186432844403881483854012874224585624194864523642202800023746262127714787811662393709167777826159892951890245792136085245724935045029436782031054906716448492318498343905978002924928311310576948749346748680777812018983605095394788496022272377609458639508611369843051981435301599687244989111034861677662232613949209654441230226215169532718150011305133038519284389165410278130461597380149110655026144355804224420141945238323021112821242632788512499616911463590546654041027094781568561296264414008230754616510867331433231192633741001621132738945425845669968379418493208125015814441056923115247428346628020184843204184992370308134350198341677429571735845412194131224492182337209940616772682348559955137316781632907585155315038018128187833134695345449097892256729715076375889686795425711014426391029534471390218888512289549521561545449321259376357924776332660930058859732337557650895100784844822272077204723962365161429261015842353739120871404801104166712119103769846910562838013987308545193651642811018689285458970369677242073735718007080048383941576030700985333433184766183873653940013740336681510541002481598478024181588985596741580553589982671724338064303628129081958652743999130483385929968643233387270467703515024965736692911882982837986752609166417954727389242824977280939519877948373200696957775105844951822676734703527321999421134044770059326311893868817975645883444261155807026388525339171784402571412764807762637532149840165833210327163960594879789887311789081745808134359165799453542003267439021924960126613946226713437630262764547209809749016287647967463329530516518384872690855897280826145958617933586990262102102670381635644020388442625993168491448214455897607962358476547823557511632161197483158042344205345758424411441423205513563232657430843283523547673556921899446918907934169671324433974966978834273753052039436238025854335943519466813209625899322514552159402053416061774323677235546302959419423176313060819350873080651869580522400542378661691255948806214489004384849599794103764359983246494572708699108664705763686503432586217264600843605479605240722918351842063964923873701369077142114964916462658828070886980798491124209718569120229174921235439974762848268287591953886505823711606452077705481372511253051833076254984252059856308555460473136704221131187214479774275809156784463963699781146748315602993219901082579663866913260612929525308294947320823403872018525286342923534616744822486184489098940829748881354240249311343657377794185311751168114609106886379489702120666217406588315664700980789554639295724839595903624628439952699896267186914407410914895219616170808113957646373479926262662882654658379090446628084607892853369420643371882963440130499922255668950505220314096460133007686853854122116517565762697869184736619360511552159887721542285516219549935322853587627487806930175503315582991866554488907497564673802048153295232120440333826780168366878064988432150071926157860156558898667043330657676634306558384200991357674102900322000758104992777179998265251774818437726129374142777062978284638611120821670619884750590085733353626777824593724927290942932558992237811096224062931298218254653148028238278713960921046570642200074230792717368406075543551622605454876218443420343215118429169335764549001849421103158110904516063212962242680257496818719745152709209822247780806614598040964302610079166090883346006884073271541566542779987098649582452226686637055583923638557052427597686980989759767188061570949413343906387398664513713551016695325452279759855455545172176704632782219667711689116872395189509409999410054058133594487753523002002059640187811685262857084137036074014498316212261965897338050074923607669984431075036443478118228241190015220485913306345052352826942652868239398043069578602926102908049418976500084089315173826828565817417074426589113358387627894723844119999828723094617334938259849068218542466966832295405962715358643932624320910108261057896077554658244783993015571557401788344249976765626114303938192167016525461008489055382673380551244805967003637945557472614695622130761426906029755655110028224709401428091294915213601252885926169747569820408580804467366875469125195977518461646719482922562067400940088226520110442007960480646568353596515852964203199003865764000709017070587048830857593557196418655325611838137194133500340015569657794446686720998269945480783548181898050541291681007091101412079190333385182124439568725648479780407127195511305035812507145259544557826496759281448888089801182263071304118296116170760890697991612414690487107888200973463438142427991681203340084337419864422405535479616388662582830628941040982301239902071061064151906824425658886137200109376295918765147382435588443415346070694421146083447155449279784938470583903851437230445615496533487864201776515018236096475466144972039002985730526418630223562059595643989908112021612930503117027853322305220736311388765238382494856646910450580473573257490527053471042045805886256711392851344453170303957943090076795746585715176024927711037893780232738571981912151803616366366065659569428188758814236089262303751714169929088593405219258311476826473575331952526038059360137046288740926614691103549100921568438355944343800421207124284675699614520841290351898761028424810984887493794039317939488765748157898231961519808466059123985449586484463610043010919108928791950550729560966979443083845021342218275626012286041672557492678022087395192235013506960073505301899256114599422075560655189841273792727828053110756632273872278429331509548931681846092347529726305260583903238091968417675615021561208163313863287399854194575580745489676436254266933638514724138982461838999443884967836314719721700581073569862277419263150950319632754952467203501078640452566054732901968100094828674286440809941888362334867467482777134838547544606381184107090781404686891373507434058925230475758661907725217130357245420499849287655269094295610373448407060458340450866053647829926913170425139933205878066778666981048615983779549491225627097526168506992243997735214776768082793318680313739681153647755195491627890941850115805395839096071016698361893949768217285326793729390224359107688421862722189058755983062059325047940287883357909162127314939715181884977073883336094833866724514290707717333252565469121429309418313439862865265172087764070380362916262144006287904961693964522085455740653398853925349539976377232705712864817707232300579149304575529531830109366436298682402598034859319178092738942142886222741445700641897635758462109583519554926070027243026594809460839456092378613153135568578611088764185616083480220575166849378459754739613228260058929666461775493803708348557532436608158450243833029059188281014045400101339617607264155140535315622495473537699081238327959452096040908966292008977800264409305343555393630718626867439879474005715441351040476968443913419866127365412654655776651939388917804038087395055416544112595640939372613562320115265066343296761726362364497848197578483077273561534068953510663043351031287267361209758921304778147129882244161096048111315845271988937662977336565037604872506433378029753590595120191491828414138302607576828053583062061655010399811306916749137920941194871219889343758825382161886668236407361633485017625585768984220788174982858598166159246676873199283455816191969874576917391587988919610283442441945948131151173841117529460727028252017367844904840383739088495832422987832067561623924715938471360552182318223944702826803708769675520021125706260577818403234930105810261060673853057287919655397905728023647604669238501364724101095794580619071147002175646228985111157238975784437099469534586772343702160636904489664515095334319905971485307408496270309080503990649020861671377497967452870094655118067941525410419575021342493358791676330019307273439516195813463024087426334490048819134408330629684581213354731013719447277286516179380285353616536664150767240525654894647057101931730993984892048267526447572624106200239890064069423584065872208867422020560732805559787578431429695199224700639554293908926870961353285834374693646552936443151900947461642478350205905863091557875855287754782040914678783157929118453414264680919757823999109044986672766848530516855977646920556222013568783558601466643823169502662526473208719142743206317355695115641265946059816355330130648660416088991526467466290219229624829681224520171875756111185232185300170142925719688773973845441104521949912859702366825579655652918087956875095833731360722448658068466901573985625597457876107364806253640731009619095576143018836995553653538363524746825159089751998452283719895906947373322761775706001083716556484392761505602749728228549752292902480643239652339500718157114614314490387717057322023101911299055583825326723431150785480838999194610928776531263728774515347431486098849747410037972007421477605082643484020889948512462223415156513980524415364281399070502292561181996261725056575115068179219359395822636353421006065522686567982721896950865339700482666223222300121024637438079683405450231470948694976331199934837174472995787820863848414291014966353892280761174394407188663049824126466285267560508168017171314349654738092696303089604724097169179238934369550599305789144938743728555842922320616915167190961056451412661694286185100842306978343919039232019173507169429413942269571702390844027542313178329118673825385154998416589603484068357957857577546297906687987886080154451068331613551762427224953174348350622974983001344732993790135308166913708869996264760316825833516894206129598065136699321751920158078179155127083142382086140197520371273740188622444317700325817784518531059614578876155976816321076020212011520809388186976523501806208677744181332827132877828473958438942583342820790364029624166804854729399032829616264897553666208136203067603897623198461160659900261097395438686963628563842289953548291465623653247618775721990455529055095184707178245330531693745081532762619877884213693714097312216701660603942075883717991668512240107547048182120522517132487919146620148222614321046397110425845890814010335520723944734801752858254397430774646930305979634226479270771351899041115026743603880809644483655949668841288206045649491687052360929395994362861035942771685154562606380986033204464700254807595216694587011374308353426851014030117284788584940972364883339793109171237095350114576239994403554562595945402540976478297906502532622178929186108031149465538307170120450023882837594098471643631411708847778018514026789110854630155916112389876453437154220111427159667581520932544747408608938014468196272721528079657049409069073676223192287282225690303231514190302970760956473211182403336949232427015832754719101993161021907007147373151318452546906143492957413420238215038301817387523690492659931063275717027598939727083985442524474009684428580143713555995446116196792918391371503198121587411526287925977832688848460042671290071480911759894693994801302882390137952175855166394759736166260189389157411549941072313673845001284412705570525025292082386442655083542357061157150558418273181844900649037899965253977192372296072961514769989811724625242547388209160422342300037088899364772747522753940799040474819233667600846055683854016357979347434831115297681594090918477077984943182746787545923529677650974555579054219403669663406943888517527730392879221344927089740961064752963355480005741663068631212743869694420739353357283111921723135718780547386233473593934456086422491217680351829125679529603308246950729513424801352279008092739896564599243119573803304740404036693511421719161001001552798806264376625739553718326260620756417256300107856154506822874941875102008765219279826657027557397972639740173806960775347583206084665292557574346364897010563088466720008059677892222944224615515040319986862173812909655585979288343852992847521455394285592053946359621883802080132638749313120439086400745190888958836545557976609042664364743027757814068681846185827592761906725420518621670925695671919635269348679100684401658410529299665442961665162796091000530067180764681748927638605624879398427175427509968981341395063726328319709747837891075201467793340682002211940651281747315181261935910545652411358638583709340273227388006725110474152443370502082348081933024017355447644673986053448751038840929277862508244128711315477212097028682399823659900549866819679386805797011676360876024273728580941661771462996098540160348077390250076982785983964406554018196011974667796769680897532524967205345041287001876009573596749659180476527190034323893670327040866221603194453633596198654239682950399377904547631882968879404538010416184691926742670574609781147949226379122295318086022134206214761996878735473496804894129330282445655053966706405459565650881920978007141120213834128080561057543773112476369178205086588597999267281446172875533410995878433101190879911470734475424522670507724282128796610706519733575518865767387185612392810195795155130930070308888328025540034143970909471512000118628174607578483714053759743399770597505909826637484440571790627717663802574008152825612725076354485187000566101413807482775431160629354119814420830261909022804019637870175827644179125582808082907854583457663220858018427361060002919697662078863808941001581724257785089530753597534734565180288048778182750709119364060503746888493975626694051227216204675773931456379965065715477296414324222840505029842970984857790532538762102034894005497690595457866648939914878270591516334501195491453774462801060864987500696366521669809910574834873201727058893380459911468268215135850611042700389645137299842272419585160389043288821157759441659905159383974181177019159277888757832666522029276449289904301501870144740042652915002756896073429786933739734353781317924413906587656970682018501345553562443699515952349627472063324774778449551264454682577107388181594512100407754008721262456334947653691207339031923875490817971622304751317173687867000108089286790960694797348524744607306348203913101353287052885511664657404340308541365456297891025386722122892640589060261979259629867832257253040511640737175388708257700143505726172430591921151960712669987185302444160832648630463450987691428971981798505462047448138107187364203378293757646877060718898772172023379257629485181663449175380250268047417753389742764726721658202276463543591325841016144715023263437508290062897714030844972737455632180092709592369165216186640005763812564472708423933861481566306687909845231883918895537157741517054869602869627943361118577931650230486187656240036203864406001733992216930522064594986282930416634438726758531696103956606712917398422962758102417913801421680233201129815466542489076835622810736180168326115897131981551355265435903578466920833805299314485217300133177744818347372017648945561317004630902893148147569035979444864305515218149660827270724304306284552243688859291470690913414844413075316174767766694496912140074272161313345709391806960948350557518215708688700381227963303946476775489954164860554517699563159880662781241075691398389527487466398259577240076471512889945798324522761975083842790612680528987080370115504535899724999852779967615112297497306005328541983570517550665752437909508762054775705084744805398075853395826798274527977871568514575411811765008487393277852252490781261108942264466294413984690748116077842806544610047789853943707669119780965029440260014182057905698378801327727224717485974920152450317007837825580709708633215382356696413624593744938239410283055555428795371204516595120436582273020354573711163961481082636366737256349276593736952733912460354249405629250436631313929137284412999462488094511277328080897445496656495378439774000200087633111722658012529228003289707113756557173276755201868022913558293548320382647826723375418348190867661941896589594703480368264452620963764841137163141276147461637130544589645333725517335948847724935486102671379625160651211415470951306916711007939401323006550229514215139116337117237826277947797541747791902844640933570322915388125184235665969870904674998697435910800593545384225838686763414994606345259451198821011715235514961907885404420945438207354738460053583793580244405843325158956433084782303991119489015803393745583956159915036650391178392331643956463733716150816542446563708599663930488556941620271313722556407019694962203582224525395008053857485877326179068345970798346043058906700402434483393075489880299639341226334611651122678717907206402682471446387582081831383355765937335615923922597193205327813974036929591985654108535362979340919654699262311038227130823109673661216716232250053514301630112876051415956322923387628770265554501912381361443066216735418529996642507602516302009266478110204556947328679960613044807385205284804567643144264784022821963949330807014744597020792250765731327933038145456425387607414472377201951410148534103310177480597116576444193178111756664514572521058471442319146973803245437647671322826583485086532319907336759639481235333518321667871142220575852429842225881112324177947400026739059912594988229623723850687669192252111270431490152622526646185409890040526870082924496977245317903713598948905652489441975402918928607158681853057451295295492310317463372476304126725088385999905847416394277016992048708039593317357802526948256882206892449468598115925824644045324237757017112291748556560679691503367547619876486347725744110454041295095457584274755145244771204724433142991049722200960768853856389123342353435488340599444051879726184810158371773101124931891657149846954673935957207188745054852780027676597888795178238609637623865048115768308271973633589121729397037416887702244963321028048409646204787072725071927068354832081552616287578373532512155577724633639081064729485921454730204725015356966524841452268269826877519072065320287334234447002405954005797449374429263685234877093851757222303113108858396745405417312768841549942884279582439935682009893154860196462447983642311931919993769518634063969713668127386141709010874519194695680639057269971436600193063601725860488507470360831297222546633473107516908881051773472916978869919700570212881236897518794585175915166920695010203800353215318101267019514907534963996791467114647186384636684271287170166351985398525339863008180758792872340914389888882537386473767108846885814239620889820504858484298035377520690943154747033947646554714236278967314351782990091079679362168168485733198435860631560245060187099991394508695910192024728021077201758416104985046257138091941663328039579316725191623481821266354756567042241978792696964699464931972351786613145699337184081054868284682217650700213225975285941760090372963413492974989000744839962472861731445390005661751684977072210941026388622204558546439414540794955665681241160973741080997276908113746569330301926282668091035903326093280479920527029424849194860608223717531559322626636951231777015905535474263003871838691737652660207772341457628141268956015577969533492568191776164983937445410891939828036116427095451931577675651275099919931330321375738059742537194997989594130058069611471730510130198059195620996987976125376746711560679016175117036393246420241243086032146833964488909027115408953021585402669903780601601606258018166115995214627978247474483773704307201681119007691292548069225564781099393694784967321291818851195147604559995577685414966951941771334170537068985933523675701051397518233438341700665721459920446067245567954476352831038454378856004847480158684686334962208610858752214240811531600014711949250002492667321867040099121914589121284178139665534460595624804259321836956797262975034591254020605195218498995647008397851467651957907609709063612396037233867915540636269384572931661929034738420744521747457759441758263050983804002562354386094998950445079255327499351104802185807494511287248357195666221840699022812119451591287073140415632498054441172242709285825294014113074609622816131866233535159007787012418018509819008564296249281005376152418958757865013631843321723660783331389049310136949847319147805108920089386696463352797448915272949699799814872435859072112157159742730561604027637361875217387964018650642797166130335910225895790246324357775953301123897283560543773170543876578339345022972662354107385807165972074278356522666544251729458551234291799651266238161201970684500510259236153244756801854440408762265340890367468052626327536068514565056853893699644192121182361312643466816183651449105560848585228636217947640424427016844242782158170240868700759682003933310479252006124555858139937829650378162102523837256763063433213296887848247219622949489263226570055180716001391905596193783762078623976240868312674147127267486260417380374607070463423973290427304954716564627152379718863588871297659451318632901799327431759679143155173114488218922061350177160907029769867056923897242584121799968098461108902803658060982345150775343139042421738948247138879392677358025978170942209361657289003403459813427817183711799546228919868364829277687429483853977535640775755364076426629094014394935827383206282193942581583705262000399159489440782852557102261685401879684224893174674841467865145815666919823841291657687922827625085733605251624604370172855547016846956545714233102806009422558622796127371267136057208361816289049342448165875664139276932545505093567596662970575685690870590279633591526150843742001437804521401170168555733791448452882595942405436458234687886382072297297369585997880644783454508604699877504182166655071111084319627210852016291302776143580879281354258337276263639533436527153504951533456278171831171399534188670238719480724953043888923479193185342508142707245126965503429336423447156837717505297600081071420835253537701694035998826499679957036744110775818554978034581773497583798209702371237224463871240897495460819811086299823881957246521445386715710429064978162391123814150008227861540064925515356217364244490507709311687969221640033949253019097041845664223383066975491560737229178998334272611736482760651078079312569046407997384909925320163067902684040112375084159874700513547840692062796175588694212127351306638013948442769879137677860673721898692839473023586003263119688874888153728892213212654070542821907329706555347285990956261074119919564041449106586583130330074057972773157861367043895058597671843991498412771536866657148664269568159431297942326199869988299233343261801140623661078445857242677761004096640159629848528421424012891561117774119978631862609149049380594240361977522137863346036858155086780373945869585774797256904090652599206269644400355311843056103288155115975441255764846279013715191157922036740086281370172682096536282439400305118543609341632007434550238350473754262309779258473724449842936197133352178367024276436085580440042838221191484161795926786284080669410851527268582879140269829531337889445930050862863781647261513359843970991391779078054949954863006816378793018024351575504901375137929200796864387184519310964486637847545068672781968883661189039608472540721287581932384118026981088399266516696037055349732037158897220513526733369968244529634271327855642861105181361071063188945473764950378375677468404610212053511279534510572904153177727367891509053588672376245181593192180664255289004966523640842233370372625460196955765142094082279706366497609803858935335996780847564692746749599248582572051356285982481542678347612656687363678538390624223399839155595624731613032644263909153970306913414114225727787765952014654185231537375004990346198961202350631631838220165731335533782694688521613779800295377145879084496570574622051538803777964615428799826126332751160640837604368200779686644804812462420308702347382492284823474193614420622368838612701881504650985330770866474669641154728843880836246294455277987523037885548219806397838384893075177308439711536273531943106081477599686295590990744404900295330341958689741691709088173878737765406335205446867108944544510252831939523085411889645998376291591344649369196413502086010057891758708921579505424435239454819682288151886751305239168397532089361427629216294203406531850530953373980366365418960986373409202977481695598923098227083972872414053297654994510147736486231937525922898779955700467721515803612170321994395256987140536842107982849207284047190326147591552093770305302443191978313509519770673195048871351767614175542618143741521892164442725466844089622868109105301853081799748097694686967412158202192140672269021611130914649757607986685657255195951229168728621113309494042866721558146637823624248623835286650689801774179515957379238373868956939296391194238350537754510110041741104096146052761190662689146686949578731296750352561071186480531676805748585647233309477972981598088241124942284828646194820936166396942404502641813371799546248219348800918693250110961106441995722282622828030719874713107041482561915922297170769095147861220166277141064716751198401633903551396520522194205300180049037947101700537068230982608722830882771903933097754830203573951933605001347652177331851933201414643890660164087044315849394195893060218346896834077020791953887856694364700828036095227402002123428976849701880232703947763052356090100218586040689661969081652181921097012025189617171928718021569506614849473371798553963845888118875230541405310665705637072911120083879868745304730755904193316439325511891582619516077376139563276711183347836313038589281297428928847179587786593902075881736600585108522291620567546464924039429232207287102431664758251731001111160474041175060756137448189787638917770675650255641737248405315971796899261501953078693504255633363750693224810918636876558053189640922532790433059692352344567446878309184360076258211684520805830602357790634834903361030055588318194762485793425663347701193441019360618963314049054675604472351117348202206497128728499106988976577374617326900602981337567329259859479012061449813980359812884023645297376584706820083045250429599956887241241213678025434294801182905234578071383870910908380423643053628728976236644639848269582333751878996146634684567464907951385133071371468807939873091202758862672107480656360990637375205092378552773225866796095147863180910671254186050222852694424232200626520529718573476294551920843575924129200675906238563137260331498943670855196643595491417192263951805968161652100524824425881449267802791045432111154929909614222136482416528620175752466160394630770292795680391443296531512121210492051778773196919049387974907618145038992866013210221687466440278076121120078362951437594979945159688033554498430777642045547415622026463960097451163229587834428599020311601645952326956084921983666016957131685591567920989158353409955230752159290535654029734227341494534630033768984889270551263457185518113312311332624091076256895162039478992899083740204169095216759951452102865403377675377245932788745613251978939366558136315587950902684082088757316974968406064985538634676235342259753564967604043449316419324809484023179174933215121582895471442061818059678799763346178223290328272807575203895031172820337744304927968216707462683273070968064893942526139422744000290995399448142695087186273000968148819252664396924799015869552796949019200242739512769296742463445944305592997000339848675856601760434183360847080769307183516401404409051402874866337276390813826679076221436788485350482053745865572112772862598938879176463032562675699872711836264423440575337841819979135418127903574329714891266986036182423510672388802944699338118803999821146498195288882547112016693600665490578031931807544397289731663306865085681012266979501845201587624663174876116657019269453302642104723440608293185484461052559062304706288334501199154865502513818022078826519562561330304046369769474403236961011824775030630837007021380351040182214848883877825550630072136074863609033530895469894200376730529404569569387739941620790570250324371645118834868284507268227344647780228026990643503735033131674332607397847296233284212702304366226159124899692105769275673795175411094439798516030838841358037023195894967394348987208412818684902475128380354042334713669933600343006306913876874693564651205845541435170371667088207735057658196117054118301284386775986890459336440151941070676310776417835612105387438367642599095490145751055478981051312664705193641967825782602158022662899859395289934287186712835897723039407797403347989902351436897647453117110681436757832208075796900624556490785442471200835495859675092253641777934098093308127307163216889374756539794612435347511110887289708917718542379007495091118295630918973576251136833671397490301286682697695479804028797063299177784047388947620339127836268113708860731137533009470883522837241770713288212606526469516576114640172465327685135527246016272788993963168789743865060136096673394273935737853123095066439901254639220504898404076943385741237496197381434921752901083242110081859712459874896086897522657678798219057273855926538944088764138113724907659033113542027720914164629461340495056756345802851434349384152450916513130973957325036486249691094386018353183686982159402941984996570023824756562405130551014407713424624359135590669942904909084542431346301297472159157551880183607167287557015137305311591786094283913841214925964945615477305848964666267420459941437794526046947105416599758736725714535587907820955072287512895204251201579837763283730938830001284009835987561440204936027938561646437952649139693968266210289301279648774118269421260261410535685471061795691999368515846209150415782327538686767109955182604889282794997506482751331372994370175621598909561403007057402434290179843910698370808556207164936787872655855847408463037025161609096671187542475127945500386346512253037456231774409001970162043659638127673530889419103718009265531075426776268241789902506533679552308892876751418296576746941404971818899570148114546404451641530883617953745114055628248910733590766050956617379936616150228428162627783482231726258135183489437757758323064507184725912005295775737098140929109496396550820417126135443635093428612996802049350653233126993138452841313891240720237491200546144408023600434797763228970959927636605274795095804472786032518615200340175362996825206994796482802328686138270305995451868739204740328601803868869610313370205031055207029738687338276964340944840639727618330791894837711268974516972744062984027138612438408673623947229187135148588811202860316662901544724300987207360880660829650145022829968585042523904594940109345508873453784023068181392205450685150811495621917108044591616444800042921341855184857173496949780387409494238647683109251834466942573490944566265217604439365918822011521413342133362851282171063991596037980121327261684133590944931663215870254514542366569384087129557335169035769221023601467426355110077465812903338402638865961579710456153878055210942551156081171045862310798584096443842308375542942930805574132983764383640792595527048960459121960462133144086082356398759611534330828412710406402541563288426353497880765393822115561444122549532478834710740153061095780524685669520398879248118495599424424294349099676050510765214749499386385929264816988062220035651985596776671548590369145177950036098799783948727104875914222944218107533910212632174748211113744343272255278991583627407713443511311640228105473593840509523693984577184473050415824522901566131921525932800125064780497352973206326140324185868048588923129526290690306503764076843798989365216592445380608279587069151070752543751623940954046007832237589467164373462895344777495424118805145276034837195920715847259805382276825918479257028740589718799690539790698054478535092303853456084481028131522266567650746384213005988378557334406999067146528609029876337647946178267081142330157556090344024023270389391987428060923884606489442066273307617648061012522014290553467611199589610514545228056282089010828484117081930775527069329831881223966320553599499971424438374449178669395170860711149001933364090092110627116208214600496482590094074089298686571756464608964300577398345864709633192634924170407107595338525291345340729473733525393263975451358989017328513044263094950548062851652960506494397721697034844253424235842744171393780499678293860057092740230838365095886517170655885719466841209235395549046641747422051173079017287208009319161199595941481514176249326836890557717670481753463170674028949556337844373694865048608285837520161428326563159922028467546372281615608702812277833855642808495071551958423180381493165198589734579615315737730568665292488910687282115470534734902882426838887586348841712193210839990822361991851129934251621736426251203079241867552603064816800491919695394663028935606929006626023583462372206763830277881807472755526802509842376979668247900424050610265658963570738742142041932775697606705987439304169268914341649969116065661741081499479113021307400227182606773725776463450571607676507065684481630911612962384486537836220635235093968005225379390544217935052225528759261276152279161503027811569932695840940681516593184752004283687804834252149594594007621263032089992341534459426230471201811067452182250918602619458883224742002285950103270258490757941009275296571750268263084991047056068333334412967033839525046212683717358976431404617078371135295531191437923964459082341834334151397775583723655151330545664493252115019930184804051160637330463943803487342421384075943926668916451422091391953585612047393084683832076528435491221755530544493218137799873847742842337333044936976331478759021610053967387129752222720986986774620195569582708835096970073655578861087862731718665262798994932149241259885635698012988498035347653412072069493760254269223958856635000844310944603430300948916879297126814291878466656335992001510204661659755849375680446569975838514551399847715587501566109698583104579563382762030226939426789767788012517450096936241590941128358964865264539300389438240713752175138327802656689116291978420348198510743519894445520439948984105779863229989701381673311411635563362348594767827817619634457653280596778656535846367528595859501729401251658804743343481595841403493997383595502677120619227543607364509756006308310056245437915786151268480728198215748611368219721364872669170794459991046548638014779533201624273616659489603785184512346490766914896329997355671756862643665093915866950996403116355168197418088314868022848419087214914638378093165621043784936893710012281271667270463646888102240949944207783847470149511633530398351130781748708137673690347886090575294375465845726181979999744364419090110225356408384706152269221805285586890757460610520704064827120806541733156514505656061871968216956553152569562509153449576603964332407006766231883627221251307056655859388463197202829541657615178311299825747207219323632974221357828930039525720682696862196461071363924173073700468477965876424513096711897422201852525236637152553819624831161974331987301221144754669264944992235506982093579314753577304913800404535810983581007280065730332572177372072711963800582892959712315995455875060447691787871948779234553710269687066243135986040855237759267314369367168381452511322155093148427275632598758908175051415373236857048750518756266637905456507982684874918734313128924108071995646748159740999068115833230353762909319870562541812453716446465784383813631897341106301293273030548933080224931045679873477589187127941050129758959021766793961762788760373319644536677065260010716437621988429075931289120700148454079055542978693132786937253170954836907322979151876920443359116688154002406434387459562519034013549878114360798819956766996607075354325321190143171343514555808783561821637470593719903659094370544860469722381503645724630922220542809266547281180620873048956911825224926745983708703928169276692689181067394083408341449472264290285009566089434089267969027759925207321456124831489144294020384719754668468339325170702170557180813969109229887430859376945653903891876631253476583474731327086572251898742099779517784119278974167019808080819478637464314157109703902295669913540594790943530750948050213327846461200917443323239923610418223296039287687360563414361021213838777718793872707479368656758764065500063101997952330852080224880066101584124184189745509059000105379559052285408941290469963300339617109967033401921249702773502576670517264134806540480695543573762378634685684282005448541814447603637873103932973000021516565520401096801411823513780933153311416187689185470434744271358400445720316442275175942183260914234198122096574002603042625011161627094202463943373548081998891320329381050765984893151973989658701650433238345375755000257441308963453089955127534041033004569087319952424809068430712695513500654525713926389931653716466962630636642300119758002848526606133587567632191604903510698271379568748650045250009851689085536994695351618859526392253709453055346262762974349359705391685961448583795791593320729523531006695861216492446688682813000118406357525432266553505054210139198196195210357055565929070112570156127609970539074892162119515290335427260857528265788776790143581522394612978232260923058337769250410299597931340277257002763165712443463446467431513011123457656822500551174310434810751836871234840567336389832229540228065713321595046604658471260313133306814020413326152514590246278836421812532701555979839300115858146853271916477899946861853462176447566210658105957559053147856790603413179000671480990193174397324645109246230868780594323435361050203131182448154873805153640184008045586126666808065421870568911128116629701933533167347043798349217875361709975549112253583091548117346847070199960773888350456384895554317529669207870406591246516438134898178320344006597432860134352338948956026491634012650826847821987656251673524902880345438877032459732203271496504750967948464946174535560103188056537285818851026350511752670171712540705368092312710221878089179328105888724448815220440533083410298294920678821939366785398710201902221525098623008627229445109715152671454007271351174100669499497267669128011352375446733685052176608065109223424152528496672731669134587193356758949020888865211065319075653812396274726521609132051733124524069495349209852583239898477490662850947721781645072377639804237032781994418246143274933377328064074842761702449231640737654709325777540076566443841578600857796389549756075201960976222257980650094397697623752971186636497292152747287528345938098944842427749013106021352428287263918025716609641990090801455677638197741059205003277267268048649439575778683247000696857234842745836147909215726013354574655306344681246251767431354809408998014490614991764843548513570874575248170834776688768579571980773918782622771103390770936278955336803933666644680086932824362192215373142218943580860349166864298079040816878571737060636145035292050975795155015569569308417643452393725767339361128370513153164542339462821471829011334309576199580710857374779656741122864706056165806996572618673659531589345935068862542075707444344865330107491720941650715385011332200570165970472503940094095862917577623013916349109262024799855150249415867539579301070237212662591958003634941337361682576835804750214727422843704511479504053743265212805684121867821250720297742287493099873572988905016149264581268200231904411770771235667857434488857320480935644539629476460275289812233764693921593993758299255737858177813914324114911181350752843836615982369329491419053484600893242451877192789901185230317747023076155008358248411355964087043251114807131933116862544871655056336269604838963660326561081511109611802500442711244952014977681152531707783583189991137245469699676271336437551437208811097912363601247134337832702961875706363998404473815512436235532864364567441670783335209792999006288674351284087923569955024499876761077197667316150294845533446091390968445372503772067890469671953594973260420467310133871592951273712446541642371097413974162667345450045435649052403741461519868428766963181474042952320399022766881398343349974747113161976998905751517119037083411320093666463633610756799971342258351597405719707511924228204321813146011825263958859098331376009568329613064394468778635049330657569390858620878037478345180056646041899565602517736173691820288103429958311081804745347463963851388876726689479343932502023920056635706634054619271772275525818728086416638122736584607943395322554844152569839238655855428168153480274919738125562117469988515377546239253893330024639277958111110862629266431495772929904409042333033975814370163138682589353440535819782636430422245844103824742583903041260692821879193437219089653852680406222983091222525296408968832680194489402283533965673809824640230112171551440722348988940316263163636335938083071939754262181709538258972828944324492656493950934756368437267688379985173439654849097592615063652028378263746461116749799854271733779081933848001102898082266669077941552482759368360250069563569540795660961369078413030906106519077652538736532949493143391221690036863980335501343246952843786878404813684012035086248746743327299087185300160990597454381404337750692532130139497745671829084553763699663066385045699075916312050044918174883140185676548046365849719296902394888391112922854289066982570048322112849078533380698089871827440560764959022581520385815647217764822667233063794005277863797362280563667131457396644543229663602765397328147420847909956966527682745163948176417915434577365974663491031100979275038326562380844829154083895958476885718011683223627616088450525973466933361555781382088021164430242462538207393004344936201305980564013829023736706653662092110419671623956132296537758714050740832368233633584730219474437399432524004342989156841764640385737533914756837627791904219958762303166967221184002673716945583904750182671015935367991730569180416904829639136031240709724829947783571441603063340000881885961356872248117569448332518714370313319888393879262473967071940454319713433654464991411669569301387382048012310420303258412350393808821527001148842905810393892758445504446170413870514917565551104482076870213677373654371265226780919304973968144745092535790952132141167076196633201770741715051694409361193078540595062968368585721330082670664317592407137603344083789300149531530743367632070861766128089923881892059458160724168449640779270697022194918730488077226912042137571267020560181625817750456590954954841367421890198921606689145418784383994976138780218658740610188052056371408085689470511174357046911166281814775558000521062416914030541125829901211172545682509534124352955020481632180774387089921715150674992595788844250741390814066971440434271532592126490509809066913017420547145835345143441801210004252207659325041033801383329748552809551825824326947098796746269747226839725614725060726582916453739863181026053754817834639554188391419287816067787196585133915090593410282050363100515386260357606508896096477612829676599754350421996306518355958549310849464450717044684667061895021418834475403600743294296966585574756760010408668064168261115929847421229869880957925839333836719737594182368984334091218493992014042075370783513911670403836076547065232305218140372546851251940945488734826490420321390079367115437342078120716631504842952647232585970561173158847018801512557474000728712871708157786917974195733191849606886386434535938368645816160100592212788427610927121177238630521047780428326957287137576040884674958550382194501213188009596838824576247681184677261914431891763567252359903530608047564933991057970453149447786181600418340607912749764910223138137741090277741688752109686069320721612272443904353678418918724497670944287013984308699851117622258928095025040708194770929519542848891708086240858837795766496431196182999131451102957156599911371780768446445630182640189988065788198494519505157650759522046262604799984009739598988598163732796169996440850602550107955206769305108258771506796269350481425069891280345970393832067901836826861504070563929450484625426924707568924194039128535064870078941853594085443634250748207518535411730800703344120937093655878298479532755194231244660602208140530186237361295723571955353719798937543955368956781876509301253220813766769090785377808695756080659676383835170891492388420593488176550041061732864228865486641529528569220379500261509455970441223798526250566178625230290753387477982515597579509127992195413644195771338821616649457066668856468287187735518704426091537387568437563032139240596790514624693481653390413771466215446913962671793478758277682755842475410071878706369339208931176935779616486044377424576439573729339325719001029084248535484326683762620930944964888775415752484420010493653592348064355350764586057038871438557481811209377986260196307705459901333595599424057825713154125392662727167377907833422908901284728130539665664801603348399149477835474208321581056210500184301634841734630103543620037008336317362994680383148371394871221920711671290863183316923678470713092816791644352197009132631952240210210416626310337266656706878853071248290463600136426621213819036966684922127634011615582881978216991284007981109182108637518176702273776708324471900591602955987802782387610440095216859653448781623215297336647885677887994599687799304891219399909271751208777148149886235658625725649265948202042636862605291373831859527788765666651860560325998676266671721155831633773922845151505190110484338584786077402332669338133689500827254934409209561157401497752417177748259196525548013281046943678910917583471989438482586536747545468126361991809314911425403130416420899119459737825457491324594182090060157547111803410965239598176219031054413708986308734526615718552619806213208307465566230220007694709671615822495080308687688826535647552248038138793864955172732291003506252507058076121852110002890293276720792396488511609127346007640951256378188363657183583802822383346028594205976424317826853862379586236721204215977819390834222067623861544527912276022469940696395033254760853973538791228658705623793329516281515806743772387649928512274676017631969973075766769477238029978147560121015922860682602042638532730085418164992347630236176423102948238822668538474341101255829135412137446699745220361318250321941781133059915962380022575605860003359054766858622991394971545972061154744164579624141383047027181677532760502157056200242027535355880215103987067742209176915891242854390295965679553687508709195775356536587034207455120647137106198997691530164807554153799519636068424508400520775081434786236910756150816054199123092195907925514582451541576156188493356225041566098090266164958278122727249753852021484738971559167200731484442906569792702510994899220741315171659638536900357257683890459941206131806455645326317997897965035750529205596102850679729796775089038344568041423524244610936305928208972379411478966755940627612347650458197244939461738682091363497663286200447393164825754736474439820339522877832645093320881278418219456896210875829305114813851655403883664990043628249377774283274041318364370400900824471179130154505103798551975088678821493633691416203413034394302728984369758507679347585650790073682818364828157397191634630452972724710661671802172989562631485389250389467620551082366014235420000713995833935418584669342437435643667400477451974539225104725942368855993379144411056907053967624505250272324593931388906793213350919266996547458827137147894340046245699000581213739712555651036633947941521935237386580731415014172223876547243622700626085847295335804708979250128477816660814989324534976603370158608032569566582728473662054071453940377463151521777039603370819243501672746563169613918841138890016845266784023796927843113555628928063665305188457679992568607716217838406306811435929853356907994092920331109824643431140764660446105316100235452134061804736770078690932214073933637349479356315463572844623274080690689994932617812643384096596394885974667132475240155664642225102010533743022553084228549691605284499720758580398283856480002096451273708959797972273318918881484279806229693206704883324397244534279643961849910687437117110113602450992561434140445045187060839433144111962851096985516091636249036783833745801164768392301465155508924780348752585339082060205380700168497692809586605075083773386184049359471402191297001147384977679641387785199956691027739993903991034753775691559705838010906360698119407041119936150618695792591211987188874358825243599861123106415593652416416384013583633634250796748558174205745105705859140514396625770947720201068801325111394286026238078523544118361174241146077945102365007928747774311244008161022976817536516753555138760146933422696110279918087429098412847555746601613779430274089114722797565189002492991522034611323320605030828728830501248148960004435732624299633764070417524798212984061055141186202792206096488302653024860409790228603178473371920536917247700901023164636433366260522461934162917299422397986839160199620565259535042396198304768020348812570945891421855507465754664880563877406722657656700226110403936505679524013749552577121117116580078301263151436117846680490873139193738355673406964955780444682565581809746867669040303155124501045328064725385957406947484538648621192015921787177788520395773379348670270774535475062954246370812099193464567607992369040395956206259862316355335255888626664495775648716966340929071613606689535242571933933773328070308265823846111197338735885966235755619475969820638153543619265398295932484653688988138081440738771201613520745661616132186311695820606249532359326978033035312821331737709144574545932542335944837840675809139485328880045702271569759523845784076519535448390775678464425987046636397815409454412934756490676578724305816269978122899588101508638655101911218034776584326313242746244667393975606376471625050488387679785812378956103023501590657232927876952263042023345918776516338729186274292253771072998786943036149552873551382139324402221421088669063428447093887722170361650953602546310155572422720985467360009033423682826317062681121754374040009878604015678008180309574382592109589960863247692802385234314810656103483698608130493423021441435325128930664423865809713157681713635510417518996962359491608909067352589443249313247910197310826934079798910957760868567673110629667239069121315287523528686693358937683750309483716370424573168366034787201550435508545400930262486876339027314100691729563155278947274753858816977591510097342678622663191523429982333922007858131897345666982453934479273719544537025382586895653083776742509551752904616205241326604476052485941751141533222371899473028655797486823374750636507327066340537814938307620540891817425523381328603397774797763361224670211146144374944191642246613718467700892024558062085941031605576100866261061832133568821495246321142256352125994206957071032164205779098088340545708544443377507144808667475392676988194304863754001156327431311462870499084205156719793430859273657876237475922161911586671323024086855792839968424710877224800174530966976244494095121213632358789752401163067605869213226094318000508117573601326681216834344866623663021081144385664674433013383770833483485981652774370929732517668557964563068528536077003042920762432300116586244124556496305084176301523881209608815413249341849489928130310692478072768846086267768285126658687360503361740305568919223405522090916553431007174736363530004170643098982029890174740034496492207749187146400891331630695220265271112459312874324196920851094499249220645639924548835075614186216487546748675791107014701009084816987746940216713049096345866324752402685678032647468567806706150277849089067017643111018015685623542472815868754607177614752146172710432516469246094137178194863885440890019726288210094805024590065565765002508455526564288249624802638064539227812889757344562599230182290773331066917921723842549887344123700220151821583599144265116430900574485541490043277012492800366613565603864574477170081538189032495016826316352759671972363434780775998550173070133244703799832187627318810873659795399390085211548260474337266702152580046062898342378881980258998898507822918423969225692453176221968792934442608711785046250012991504532221460803074301535936351639720116694385571153210644260541724804815092618459909277607347151522868990356383817750156587352721645377890486413502190073926959529686007078508159377394871105450081306301171217746401747415502087619253967864014837861797402542310239120525530849147515439135543543442399541270352487549047219006380923294045477373489631590077713612998219698662888007183689041198367277288687987649317766686259016355633441060949842035181270579034286621008729117481208072589666187591915396039925970424919220318786224977984848376958173540850103973012730959735309368548546546895111950509555911314722873662490988055346515651163998342638330594851990075742815946301769844329400416339555425261366811190493065386406011303454170005179455832975409548343074201024131753536795555044260372306928298813385547473588537319832174483061958902034609245110439276213501787680694147833151181096979104173229081246982231367995978070134634725502384868962652058830364179687273534988837041634742340429151190986259267006936940595190949833252703813380340403071733458444815840109376675613311853712228606211415302517466535215669149221495049588859634206643877964681990318392065469479027358693679333837891113327148155572154901804771234997996179086245071866862632225420707002758674936607538468634216820952047360799697481720940601405610798409296121533966699110650995006721154528701456424011177542832447141340968192048214875609147099567657875193102609737464974980565903826984962267014768053148916098462735959768559375009431774898937842094217024995007450858938916592761569270470148384042203482051863373794570842337205606547823540465291476261715445766590568508260886017130589907796882504863500008798065096484215907867942870525850859471984336564942763251758147189188611920720689826910078986881360385276887514906623921451783240505493120380022924306389154267740975467732521445480804517987505856688568706227671843591872636353744115618678798025833820259810274515543615652941881964730343504825967256093493691416983741161337756788910663904857512051318243407976506413080463956881809864528800879505909161446516328357503962696586106832965912696274514062723529432223681175693220418976509323622954234097472811258718774313655512332025037919192253722732008947931268840197843880961262465514700494222445769816231002718996039850743772080101813955601058324923639252038910023033315517587482003701472066865897972314047357981442167066742810612663360911851596866681602774107002719036523568125873746168774482341518605609354251423504399694624341849755534609470630504970513205561841644644192387720516979148691080772957292931916566721898429625084208984268409596546920669956033350345686616314281646929832245924802404413069653439103439578729138480395866644173018067420301955035133695132455567896439446416264391500593986358144591563849382317931643664490320683385689720908893902255456410198075072146623113961697948481265554173150911906683912744761440514629476382519909773414803157641363265940623083312844802191774975505970503913400724888424781456834603686674614185226656131590002845196023306986837934773297261634126146000485415552010567176377747094030540307690192658388993810926297852131284053499475745091155157105566347605295404707837748443075894523664410214301376218157562965841024426949375237803056461213974525602024622478897564113764913124779349625487664511778851174414788660402227535128506188589525862669196840983557514449301648243644215907265001789821501850445696612997911272152194101277376713385016209983651942658225957961682432566543569814783388858177358712642181279192194646261098165006152019605489227555910479874598768365058425473910746460340465590755491181302954384251064320317503605593556693132370411864597062911300742854281694480712298900940329129128001103191912531560491965096438184303818414491085451674619816834301444347844948991116960291917363129587537612846701066670162192768705527103528162124268478894521000839411056355310428568089308425538376771302123580207363888111522944442951679002834882865640021367360036048875008653689025449058215384991032171300130596578124891240639438123133747926645172976223248569308752888412503058441619978384574593727923688153235702673741697593224634519367401013696284856848830832965398604087239807038456991944571263375701316752469597451051683438816918190888248807558107351755223128312922726715175471209970564126696326027038742605423176691329141976154991052746070550969732430617030569680248845713809635601054815662065048075632091430664110191533307342985275901680378333995053655730710743435111166484180868467012449060448514209189333513807078769750185193793914883368299666778090947265798684531499044789339324455234216667722009515507568693436679928908386925075703635486090552167798966654081255212356398788133452951018305059158594053672100938044101561549337857817801772974083457681393529118220044060208669124227616692215314455548629627820193863709482331762713671199911301351607366727797882797248568319786709173649449495925496913590411058684916310319605489082711063618816646767801033494774197094471417718215947125027714303327204317507586839811152452030401106563799556282987565905139947950760128844416672026478078306655195522250031589416053242467403960099060029344403710880398595971489899764318112270455848159582786105163515905752764127245041276539718786337952673957617568189430748389217277277025149314216154943680569314012417635495792123150581551687921075706054633429344744925160774133242448915263604743852347165315849604953712689717012207360269841681396697332953384214600153490003858198993663194833834570465713419231820561324938541059098657347804009517641810691480485245590202201418049275834222283025105996076988793399911172187229014013229016175217934639398070771509641332203754158572455441276044650677946153510125703558806594692606706224430158898253328122804241633474209110535814455465567791714141228486425752138706643434067029596206150895572930662402607936984367461955752683787420819856138002858549771460184626638561570690039924505737950585925639317161964503618993890126214950085853736222793059599304172018801973492107767309148252902116139228020588001432121916558266226051408841819510142355828561514507296858634843859104000163937666743050006588681989575818255185640859779389117204628092173527435443860463906883393802277962007324389148253091396239458899494951198032288572920710613247857866543572188284650636776161920816486255512946265957394891394488698607044991520461854217511794397102222510297826289542504117156497566970404076902988677348183272015235118992857170592598846525398690926404127366291147587197607894429398416854665510026198004859050916592222172156535526497442495665458245223665585520244809119406933928423550168397972114125829960906408775059172248237654624704666628570716115607029816601826535577183379442368833679312145810549923438128045323610043058388626723473125945830855729455956119205208279440083543635272649610016073364852715791539240726439928599770066304377801683503514456472945729692400952582249676101244540231055942989372644355199807508938196353022432361798751964735381217901873108255194184612408479156942457963080383049494167152127336762488565700559691702773875748125609249644687214370818139818460158045771883827362408617549294801669373842889406551828557826333971506781854562363197790151070835022880767240622599260860169050737174764780965829379496479283378493323602198756134967067289745364706519092035066009495094897761550359370553923913381561704703044593765219819756476962899012865583410778801137719763889918891434052936949854883254145749218157565408902895203263252889622457911406384013375725941261913887994550698590098119482778472075610323355122855835672168447381353080225376810500577992689364434859337805313946591103053522695274186340015973360745686885397023443375140725320660184429486495936995468456662542304281464194809788906512645018205700985752534459716649021634726222483377985426419801031338025272273421603974069942896027450520330320698546695145313334325169726933354201522679287184922210797163821691390928662677637300161422566448541565423309343297225481459832576857034177402745463907227612443750444076838246677943757773745405155331708106049906339024149172563074301916776913332831699510150658369430984582581268321362228651817483643014156445901678726116641229311137375725033048077975432217458567541908575054770765789171140401193619502265834106194027990908791947881189771025722946631569615669056640556753072381438664763653630648418976968547371107729560718520446966300821415771325080431980189915683695489676448314695602213319031578840463271690316228804579460670784215022064851335382149759605082402772063422583465154777549848712532044284046749247200907435436937060057234912274406412246719627044480880925236059821537773777133231415153403691934496322098674329914753650880955858882017892541561620555440283490619648533854248139755289605269013365929678667335263697335679002056633056969274720454900841387037141014289721064114429290270550636593621858572363053686938760740035777014569454972073022082710148795870590925990074624817244839680748331786269153228558765531106111265201435189431534472964671632229425525841952362168341659708555487445247999988746572828245314076381823545644130681047201192314270424315580785705809656629239607203513637421676777390600525938617329438398601764032696422994149102534950425504543719572935300274586491489399579354205340581170159222037274853450260174418802034398982025893242187754350033055840739640257143909033595884058227010062732415065490128922736077411404225300750710976303405969049345547379482829044844306497807292120135749996101271088296929092407809450555476097898346031555116792969715248726708913168189158879882386781394326686544962737094358725798289763930529486399031564045648612846595667288989702680973477769219968056084014589482445179235847261828114040973231262149370179947713107212106847914578666588247570923270342785146818489593845423481066775839338060141698693665651420493543481018995188146136306347755584782952405130238058414446280304757509675623453223713362621407406509088185970973889614749186586505717014333033327635666608581918548815257476053011441095095357074510445433618952040646005702657759864420380895810168323559328883523225593513751676329996968177571757451866547603535454989613471124360126007898754888003534061274572542364713989243508110649849655633288143055514902175767065402053741199607547529086289982082291712763360899348163344143847653346817126772822657342264441052612428775183065671555052366796886563173900404466563395764346641982145043286095984567289652767388855388182931009415691142024576081893847930355992264130123281134352749479474635595533841451339025930843988389751379442436446133843939268143749292731863551681065222510718301123730621204051384352440419922030961590470101140956203005510751367745577851952603386224812382172318232846463316010048578621598153629735434431042743799859653626931655547707915730242090369504218293561512988984467963276207385630823184956210473299818349194588057369673587897098842682108980764634803046396931462429067528228352318576973437054788506063779169816532743216119344409197418402391868441749703533963084480609629827914331828946965615712779529421542206508965620357854888905768132204611369557740904641909651960170025211914748376610099010955297820689385816121370312228301803868329322046288397656604866870263780276721353221838631175493990348501451794985566466690205275663731920400999431921323000955795098263115145855293453465712406828293093307918129483147216468844162416578433973909744325274475987592437495382700427335613562972236954671564360793917679280618237673270763373934868306512190706578219089645518435429558346516612827044518197474710112982140049940587985359840951428158001147061256110150431903908877647834692657488025023906902992203089558722825105324602889703926891626211095465089670629362321175865666784471499374411722286403835826163012826279336649677974291034714918770496404897441418001743598225776531593928947631446043196418645094631406888568287702619472285045549130296337824278420801847848302484154348337629356615837935583231164346773407246547022339270941361758710384255935835663938678906896789678501040831795354592096057741511124025028140452683590416757669374313802061237756784192621863589010439407497422418750128979100586159633502862705005483820325946301107231820163992408574141588989448382092155552853312341192079220049109811209613512254700531277350790077515840257414606580267979449880808484648488138361587982151674686512992989754240357733940235542031689215170550293251993424119722769601142092242913334264675321602970629153403494330613522273198423789433852428588928081452264414796179143366132471611791823350802139308062018882435613044412815198919359862133333805503087311561793870147422449539766635749312832786433986129310480872661229900029090888028076935019916518855163825267585656060537030689181748352323117862830821575109839492594964387918905554332237254452923894197256407872996297017777931311839380534561702091483837592637250008636988914761957507695503687368503378809434330919448584394160899925229813515763467422611036564495202486212355424904132979285518963058211708199357058661663111794517828571647162719238861951935758272387043402083462819301428071792387111245374210019202359264212174415061655135354840324273216897878355065203024788138177658099959759304525847672553476550151081100395049249193290350985280463454600647316608381258251906574787667019089219735199891907905592993636328806380475460321749262828483875615274311995621310253301621182937612554062597944763888177646393005884382304595561866883575409072174031161077974213247258212713860061671860862620578515825357165393636293735518777922697125108510663603820559227796959717514492404035542986399315687975625058152642440145393463479693871851768646075298590243231508229011410968081214758971262124972899345387439519063706733183878661459030355405662582490191554225083412868432095709133201752866047410017854392572397051023877764780788610414741253895068236382494735449674148543922495120401500006339861750611461503437586774997215189542825986891995287263676832395153024692270567178367517685321741200169866455165851357156306844167698725813762727041223351753530807221291404492045221940331440226796683764136837907186320457519859025360150429576465070122479995620906484975416034455130912321424676488987974023461343214021201461628068284237474865008194921952442171315245396456795481148611400772643862303722792301095546302928091869692104498650000758439058645512257059495803196638339573191849075895735325363038906042935349549620983078480247418889969696703745942537643569547598251961364608550771296122497000722342461042596705988234248193401264675476441635058055220884958593499844639779537051439483455509650576477449864593811400737826256441945303637929222435754308303000899952912775360851132678505589904720133230166455838034673458881233623807397747248966275839681337002254494956328016025760093000343927857857886497308080802017332557324936983816313510967429538009177068001695970044932818452439888493771519311378284045841507989117406031692712907127438684615751491865583219015876290708532768545504907859795987362821929686668345310919163072308110377796250847020373863712393858864069730246292439062929089152383240801157722168466367951717327807843492349434737800462958816455404285942880556391660777213469479529234010132564088602241631737301955276865566028718352286260365239154450288824581819345894689596714438626656227889570969363570213176244079746737383263040024746746734929317760558594583357916439161586766693684272641970794050140139071934218377046846087208353702091290289977437552112027081790273241759351262211300731100381491125415947962621776616249602593732130714483356163476264385395518028534964079806316862776073541501481155081218954028267176510722945375121025273857357208084526327431224443531339808922711235081643584801660318835545371723699409896818839505558087256403474991898115901918839419050717599995384187243082957559014698085964936577604867935965179581524794996429704243501740260159207213932063551215498216557876676073444938487950533449958708172834319390607795696480820807778213413739236051270748147384107156616773377091499322174933188488074216466884196940070922969141537288989177070524478150304041030076091308044532485845198171134379328151586239122446442961337202534061508688255149226684948862594248639720523252668977387987107219676371716103950914292743647377034689674024341845567608816434181271511615061578752496658329059550457253737558991916377184907495399482162503352387716660867795097710880790800575640831773412847984219733449890904019136127646170163576150194916527253447396998044239709324338189868554165491787651027247746883973585789959585384312419111197182282974740001814332318851820890460968829335114471183656558830761958272535855281882221113254858687332132429481642124976376533370181995997282584592501565322820243662795364100270322419409014334781837846440970701382399107859252793679722622914964591907143371757326259908492796159087398296346531551397511109897183548166135545055651076625105828045327546405014087089973184126917273827433512731282772665856891368864682999203621371357406520615242123863053785696543026968504987657370748268440619830072627182994974785498594674624804300644887409928691023470095092554887386674763701699329053050980115742356065685341555049578113084316707800983418509210257321681738107986590952683689568571487939776795202640960740826170255134526421942253443025234248626554846113938085872609213847444770434031869595339674963079920292654072128363193559318713304969192164917331854963950787266371515298209006135429232493142883434964462090989219871366799725140185567844565657968050384379843910913739804826861654835657959376880002398154658870498334643117724490638463097670694783727467179009529732258239325747812243892267291458374122538998413810662497304677132403249318001655197577624168873427293865378663610499012568897851504036482409506320456320198496538961747744637252221737773715310351339227700463162834741079635431582759091585316879058309589367512768735889816748299190355284232505240447858056277245249106106019101764024097108973711419092237710013384644665993760670961206200309481491235939096073974693076103907707857039708716291811001254378944186429366721803813014452960762891723172996899206783016437110321415869821269858761217410410337140284827316083039480590544117787391325256077232110746523942703452056083948179190854426129993533172434165018569468848607312787085074050479448743126592592083530804319084664352718543089975511570701134119932015803458967544278666589381484605066285980493180022180076612920824349343161417622057641263311163077806464156097390667735252814832951968261023515267030541375882219213610992935326004919774103297363863379077713968506155999335891900361658081057480194811567706502800175862644469929870818487986281032333396541599062286923939442088672922057155230707399632407557853274527140074228566006802978846547052990430325430776919980732734434498837810663160087341396647933136289688101812674330451570274254990642700571506152296805761572530718456043799051005178967873995046208582886575092174534339067346888140788816181012289922914075247211144318469591071896456027967567089652251608858196493291804000008748569073690486048880936230979748696648245556500346900007946170350030528410652802769191222201914010861341057860895875732909670514699629826885392886935364797504208856407658711317342049541032288294800191780845573960677060795279901152149828522061064595453534033162779509739115374264739391634097253496825801442826329040846730431005515525175544581223877031519219952287670899815803341865949030451801014950810364429035341510478125934619928997287882198873608103352065362040136544376348798279612686810125781640266549178253822067127225565661858347771344089376342087856225593374950056204994129493188450468570319917321917721905445540865633487002786917794070579580707620816138992878883847528145918567603731579501799694821493286288210077794211099411180092276899316750730486228387177533921729050325962155554424143212120244448156166784674119370978222286028627463224856571765160759162206071311244376130927853387987279980231383393619345188361824828789543605340605085926908362949962810098431125907411435972510930390458998848089252517230472773362765864607069384390216320916801053564550394616981710579499257128457274919811321572903450072381498217779242860415124405229021630229417704162107474609277731951336961577365778724573817634568094588363809857726407623450385599609375960165754732925386418309383129101755360902086022525439257534057090216311135719643910347710799694752563186501902298540864878016886114633413710410326154055628406686990770828007819910380920301424052885388283116803719072974994469403911518244624799464176727370396731938839987836368622433805019642800106755640046309719226386143809108515558998492598125613792599095888016353899035912819702305092691792395956858294197065017911724207743404910553180233471499263126694451486476060313619938423745396980214359962914589831723369707662181354971317073260017353092793899182545088487641403544311896446520201163035241067619197903164685237405532065461747364951493416075189925568222259615317991087525435283052766471832762181218153864946258956725125222154865325168631805424616933126985317521569764284801422899679021084398697213182414013379893297682759564928311428822046716340315029053627226226979137646522581068474188052874450120742035746931579447183946691198923750359977578329218430967328691681406258139380654812433481757600909916298516518429478080215595261917190734901917119155914585777279096431516544914613358282357634388393605805752082406859220514891946757809178455844595540116124437968065052846104579477121165017739867274212543760912478231541316057667403653440281760961301261214824078137940927113914536578880168650499604026949169704930865501947819762367726801628744774725235887201605541736349372535874157478857636710789640034703570113320427321405295561566957914640334789419503892786720316921162421521066270642940239501746880642715899312650865818221123930596413079462892729074923699269270027352787153093605749714772468000841889640190534055570112683928612615788212096477774156405493423847737984976988303826586201840124086589995813822940875159615665342129299094975667257732671283459385918762227992041944726808813732623366342752530936026787800035282386099653440810498338315540055629060976566872694375440201214180563988721379971864933432825733646651808165785164744691909433553625981570528119528291428122799185238411564930833437663703168238367914502668655647782638317147863761943165342933541671934046914137986637774921921326045215613426367237243633286570538680965164598471902046225580140644177198436318883067950828144283587616529744129667176848683205327777228967395674560427432983308285733736931359274248222298769588192188162262666776725932461665890771118747037849998979192262879277102408385036883614886391036274728211334470226120628593101460876847933709678269562082282215406314695379935161252881244222386879187651954541808867454465227262336019782479927740863580622732801764039545737707001011708326453547210719297729400685384301365243096830611817040363690270087783421932377734945034288771467395304859920008643574590507513612096926993633221876202289092717311507448721684679264543794452028280015162597273465731102325947711492233106008966042119104287488802476241830934931123347082325147696949179327583864525675461675387289820165813950869035582337821070883692608176343539807270381565644367327976118233917437372802438198335901959835603612184183186388499365571462387075821550581771825211027751464670622245751080686429336933622910504463651737186250809172165223958588240226448701086203042143148846617681023182443145058186031857522682990219520749780495198998594229614779452828414872644270045831936303837042879577881853717470721526531251280659186968452622684588593696567883044151376819397898349158407217146259103832354258693013052621660053638578583888357630111133359561067448547836016599014915177481303072220961530897092868610648828371451998971409159077789223490878457290943187312908604525722423735716807488103570498385901031128199136323337389765664916764990569704806092222968077354015905179658018851105587608439250720694787215944386155823107336814963899428171892516041721137442606112359071703438375007771617089751147368253462399978348475855041198731826789330141203200614462500159457524704983152121346412895283345847684426029672203723798243107597346079962988674182326858221914102852382164308837553984537389868608184893770082693990552380109512339280034778885706657370921277457096785136991442940530722038363172622447670821896790188780485624713188399306691361068176526558224740135986865346980740225955501037514862000251705912395165282591999266900055408124347848295242253412885069735983081349993821357669450908992164538979420854327070746868075999093739992066135869886037403945932445913626100111499837231891035224425160199759248423847948279293764852930207004540488759885318795289349469681277432884926279759216394881564576266146936923937985446641418326724914839330602388129989861474921904225353600549572695082596688816826140593014875675859257720205996688202506712959839559066679961050711962688369945272106566826733879025600821077299917970845062793703327566425138334081596447674680943805684060275707333711970672215925069467979988867476016753360443077776362210827648068927465321755785020672170985281197478537273475552673098138533017989792691352182684095422915787284096969993903539418635947236209280369657308981321671225765236094999169148833699592303479570782311444183149831530334441528370203174912604784515885809573427071118568411031397607562870416023625889492560550561458715618741173916169541584086870106552679392540897776617714500058105345666168833345694657707572410334973895195061670557604413265341581287656921742304791512926806851699904336643202013963963902977406605832024730529252538261665602488725851572169544642094710488112258656976216051649029847888181614346202631080813329280850125450315482310478725936927300896771766760704813577487132286825923816817950178800468804371161241516230902992740040540925309845587332341941759987092093791538734236595706002623333929159804326164086382604586568014898939132872914069797164659651218135428158195065980474620464037467993323726578156109053712214094966310644438129144870360564144077344501220427708406545985415793059050446048872818376533462465122090936948386920826347473335053115184466135729802976408104667636947629125760463108212444620720023655448998130600281649550107124764032771306545596264451892737812700303297345600208880953595451408197084031064381134072829923429760798412646707993345847727500324659083894982130453882926920433117591374206041535119519672953629368799439654705068980866525401541220799370449387860100190017720923572781771301912352325177398648254763538379512970548798150908921015290674445705497689352401109109485479025604340965933517938927869559118807395789806121529686758846546954608994922744636691654362245401432716169381594681938434059259980881506933109805283599912883836417937305496112387741821414932285756457541973618551036830773462699926701857445504686203720995596697569609310952568199697491812115692634243462636148405872972608393030465250855663085308758325091548158315455098416521728408604801187965191154329827260556015690462981320547642859251059770269780772241059030561786770957382040386136395001544264689063192801830442786746718077318921764873465329437204217367732018773873302175890506389598701637310516850356897089365194510423789666392824416665356724611754930214528554573344058564107446237243554012231199020117865585429949241169969528978521479069388684491032092253217681848518543773562613182067079967579140081329471974751877697583888190449905296943137684857147501590222204035035718226282768738542637451078752091869985271335467300947594256872768883423241959916483360953886333917402158626904424637432737275077192805457953291389015382235835725102409293677775636195032221856142416801258327901674360455198701277860770598311991887609349107734248972146392331732032102635892116872004980128604849987478864548653708697497565852962703029759214658757721133526077525772666435166167427965385711991624671414878117159036343884506330956230398320472337434478582253978438388343524350541268689656580961750427022231366264915331090869913631913826752422824299538382696050439376288384832088557317417152695622263274053968884159866472088464907893323128902751107566980243595299523570396707291903380580741075411278272413005668773639647165784122327404173536225559105749950785584491211279608021016273886220105996712628771885924915572699944062884379722476299451366743891611334889683132358079257752386990955392220591336920108644021891871748141173924230052581701159739330777674218595049280773533583978310847985871246855171019011446574490348243257347770070224911505926346107304467324230667287819067631128234915017670685597161331895303564318934162089107406907712985529527368391275535201277113584023484081558156523371209221220528560448038516230383500377666067287189125162007036575449094855053567940520872250880346687935455982558473444683406109554996130066089981718636608853000866751752832449459281680573351860803942533326021324240442690187849243470699351266774546663163071945644186307382527856288873500527331587555980381559057691786797855988501995735910090583387020075371370368597573872217340721013583628701617777311148570602905182382404833422105602206316006738966868527456731892478570239966992562158056759527144484812730226199894289624838617421257206272450864547438300509591634437602799698738037689560338957877797223934971426909289724346672038835643764560187815863798168559025130412674277013005781339751463050356644074691049552033566865890614751390662522755957039964660364155517583042790904248954002881986713125440957671298604166748973459666564181656444642563776143646365629294684285797108308885010133674169446866580468916011027658907681272708167128807998581886756754484800376884435738747394122424572902005958498599904694885796057495749503339933506738980059066977226546543142508458665083990883165179561240931589019777140992297118809284392766598359428466407345944755113524444096056289992771159553479320216961371307309160335164823798628689580491444178956224537328853850906809397202826404684668773261591948773597464115644037475746739427798092237597004932016710576868895525641733927434150024506580755605475460882482531463520924168437082559125805247129992101881229493628240126464303081636758404504742978382038556039585007277030918501816881158878716190321759039268500034713366910433689739294411680701897038210804454668020196871131274247253505452805804959693204562798537759287531675967085030125022894253334850403011352236687022094891302185094921649358245895197940770496365617789966053754389683550294641124364256089166807612311000542330202269889773352413131018410826357693621011576313476020626222031018944523390186430571132384173558733786166364917256709558594339361178462269939414583121411361377164620904907200890721194202381841072874309661626065271897344690188174710803088005395374506201340105751738179199335301644663009020233893138591096963476221133012413982162720214986037035658307037954010788162457325007917659116523610578124528752615867540974843377532721570437722267849383789814207833848447490986399826270780415429104177379594635328092256551374632153874108062988615635193438451565192963996397214887748556659290353713513921245708351181213885228389766835663262323450721957879212813020774483425788533346599527695978997902722796212891351803374811801482764749087129498223139644865299538020880844408226087036486383485842114173596361968306843501068657510020011349230723132892963104595914545804057072158066973997530756230793889555464396507979982537836589540471723945461259145186121398522373939255453551521995189416969025988485383217398062584451626868383091413813029130874595362684607106998850576831521990118980783406951514953432130404817182775545115860344522650492429589721080135917716308083965645972778925902287371144767613224103498272875237591019392589846324782180019365512197185731654489730569475637069353504238765707023466670050056112195426947222984952314393657433169551082079525976773772788643825364134214570241087611740981021256247665595842488547400696256615907937987892953104751175978988053972696863927118630649027174995776221727976928196703004788556205732033030901334317933868011933251499263229441061265324192502249589449594741891972851825105075252519103453456707687914586984667446752495596124686266925032850862471739388717602949051827562941986006024264324880208081592857523676553325908740820876523637086930413449527768216347715613931871014009049406804812456960351667329734275268068123544130892829767406006281086473581494314765196333426896264057501409159962172926776766163044127269624985714390194293500634231143258068533667059545555579706532388282669258340147216141946628689277084235291381923593335024071467330994918100382758206094247754683853856401009767972926536304615386332852134841816837506213120985371103944131781156913487485841737335991130303889307600353210815693081051501296603110743537143560038221727647576237092449873324800617746642135505256330461294216928339193930005733286789039776312468408688896340242302247670639207364068535193028250147614969024721383471179909552469052909233495312491314515653175010097250608142257868588414726070285415512773235163949201300632493461899156842641720226537264546139089859176664292187405118415913076664320399151205482525093118958128766858307852588870886758373590366903308125812631160907767233653746232997002821337157366802567932628460261430967185042272656775051337801629915554571536507397893940464306856258237351715319645522834263982547913203818108341823550781763968197494979843333499574746609183320724012382568714469338407053194939052159248552947066176563263069666557177130885388629541710118368584641225031835845387372626568104958187167427015491948283637591016711518582719686966460429214892440553839856250806683648351104575779222866217565288494342499983147376120405004721205794458002755121758115900432240965221199108805766484573323416562974837628412566704599157817052404257943271740611610498243384343765624150202704749628725290121228078385348351358370689428642648643080507749647157886721251557871627742777887781261941133304152621112215344844568289045342887990940499598007376644149423047779859719231906592791606837554173256638115142836020363478587111725311822233732625836741746930154948305241107579018861667457659569139715130424656112837147269092571297417874168409895925239922996029328600266887415467287229899500400302560452298612110613659102116519912982425176329837718966399988386649002273914710741461234339789274535866750446565489221215878840105290613669249008155669667121307351144622746089982617236185478158520481410723084548653075714656472558980976382570343656937988482620175453366491816426916442452219147604139188981206375238575146249314712523188056257082947756189382629293434987495153174317698559872004671206952873212787850831521242026345649710537062986807048695593280839191650350504401666017335997509058296838904469128737407860688996948664758691825415685005766951273984524193231411215284953273995658862351912970755396523878705091743788896616473125880626287373923387373287079947593672131664680953442215371967152373611087946955002550739587319911835557323137451747894184034826240796319341074729183320894924623448464937316303044510796337577628212525408236182808211624907236079311042033872571678277054850933948534436616070244508637379185544448004015504317773655602774259716867528379148195037170344101569614683135287619672440550941943977119681810048555774697569246479022836898381927734920800789437301505469493145553172130002733284119230732218227078736817740923032783159709103886279840844237482718554077621573281228021987306657111907451129333482912091410586839154831177505022579049218880634944618986727206497671652044250531053116689366192241395839374798163901968415961171383406495530337471107655426398211786765567991234134419488378669554878447215500487067105214020745823068793304737573210190307971712660304398316334290639653480331916375434791015493188938331223216803533897647280341184794593285251597357396787367996215601524150453961485970000745339167279777782297472189926021884510604069007398013728881042016391160842430199575935052816708105047898267066247994171104123511723621523536064462949516433532584670356465997323264739361748427145305621225303291638332477487295385884768216264189542216358775256514233447182477828464809686428809074129858519207722890945320891252800982664169302385290780240513347512786757959040712070574316497955804000881557476846900761794319950493448152784150287898067914818019596400373997507400207676954539058621474757866444998651613558889295383429191492433311770539897799027816762083838179727157808318750342691678578816685769215840690888751446634138636174825940043235192885979371965152170996693148251752183510640244683599428382475412964977095881542178445640382229149884782617412058363811830978773900190543229124096573697121577763267801085523120939511041412313925729074321104877120930851406631915535165375670023118007645979238834826215613707025317870267118846752725852658499705925464986911469208594905254878676821294375222788317877246916728049620781687957400325890203396248196654231120489557618742470158398986711288988603361292060674658445900000136731106041532175467090276634839467367790772562944176961353238736044340615179894902939909164589069405983668206867966766515396935789195098310757132401074507916749665196262501815805121410700962202393191015780244877246538878259511810566639191375453520075582000071882980664731642843901869005496319280692076963469117044242363905799605778887773762985767080149525724485072745651877497053260915721456671502550748353056028447411033887158892533419007853572364308920990244077489320510778682984352875149812258674309840412274584444428160763842880506362883317759964731120152898423861035087747661365349382360011863884672592759188744851521986785613329797160718742624674876319782136691220993380775949193841300187417459368449706873207898819805201123550830437088757327640477873753942273902308124935363833868401588601871862660071578328058052431085042361789020415341459409129644759592870988577154138479152654738873852679136327189186267940233978302380006594397571519897002873584065873845885776123859897584468476348559262014860447203709939857930068998464127246390609185208470521317585846004720021776830956528650507895322798834008627125368562649010435849612208716674767016543851486204540313741269536289718166186026348949071385082700475213113444266774814506377092966494272113664350030690009934290300274151139077439658386750552038886154910006034628639332357976820626531006578217733091976327310553077259074209501258435588783445113624865032233364439865626330323206415020799607165672126543517019235955783738038172824359647073775571863683316175647788762765180349060351191260407777174172813825413239936859664467279251360151248733811678171761763346699439131927752001501712220733812619919307426695503974705182130027802886791977916706682925104192765169024233481498234375492734524892282609322300811171169269302594045517669806723248308298339762333899236473385136756718490704626445240880159421773939214150629868228728254695440608044856235360584771560630835562548582596509814629489176291798003487860141955364579257038522936102538452401061663612188182886497273037820398490231011988826125437699070373861651658307111719692197578862699949175969189075398901325794305702547164947593588135569453884787422365171110777820075948891941234344360201926124978039829013205110004581629321537412646839936356595311833062327388425998147061874581205455413832236490611945679196167898509867758755160122667349155984137495651345412542432406308598526516492286842434958738915256018303300067689934157148786530932156657509987446852139089037948485923639470915286864749090922388994992410925704779911936409724648998476654413673416570727523130709803044261737936505280305733532077917411657617460473683899376125857358027713229907898991216793467770504708162295827266054606712959842595177134684393420191789069734020937464433104989726560995460917461458783048065035083169692108571696122065843475167774017238045381715614328569001771571599764196356931722063659721802218465991155474501217094624951259814291007776613203885053785121236516642640517647297598995760203638087199658353260815153897431388449294179205766715698011009546049668578725553797685348886828370097165824687454101779907342706988302222200451527576929684138955168140061614057149188011115798387341092101741598363662611945700088550978963755493123972567955113262193316233163932456931871347458292288833500374968235818987928498610495026446525914996092067317632624206326458345189386688394864844604162767641797739495579479295587931364041178649760282744282640550499366165401914130608016430301389995659247969490199906461121484534382135981195800259922540971741115774250543054612750529354076351787300583455267578036284342640952512969218647307458355588883155555390307489878295132159521423039214403045545928358223722577086743894718516363130570332513703759576590310038984844926185309946676273576970479777654660824376579145578108310320505252423668847032023721804740614484820527566057580498566577788943223087602295630502670741233603993365737799083029879881772222860117640880537518550820626738421810695145044068532115030536411844301095794336885821771982824475895311265131986892407423204490832002067941158085568670538430040724741874828456781734793769345466388868310786270466098720668442116391047251094147279166028650453027740374843712732767093968011929922180098816502243849525053004921087185809553427509848899668394768046385492469578332422982206203290893664955698567399969823615276703263131539986407882671928466982264660158796138363229974478456127792671582604471535050311764001906908458282149600933208793468978890661479482926821046035428448685165979544312394993340013315042115830966467930918991943269070240246819159227341813861341122871451144966835073992274813569115424150409435413659740611139866245068891818771303998199916593217925211019551741194845122621879053158470069240409002262495875715373369505453883532936101061477604897981584376930975206551962436654980248248485291919467495783745883557594860961102503870602379264923811699392769000069128633065233380714229813305546435061997019406905185039099939610379656728751388312894760926972206067241112201423681736754329224114655550507119606964305654019708177891892151936911878908573308825964221325390854171315515014709172717040607715934440236266074508732751692295316568579250502681869605930818452101063571337245098055545636730149627449072415027263398271175250160737934243277734520749725827423242801062803238762477154751516592468575503390950596162209811710428880161955199996674139726131295571890104060554177250598763623292241460399704384935738030497658114377673138115069268140089308412814691463761166597640965031942901113424535504853252962531735608916762095509627900961390395265592709885662983161348577777420321481850210084192817344290308896485132817290684421243169701029162362633381384269857166159779031858144622472901746649164360037973469367933336591528777907942316423522163965919712419140321532162157050105303846543611946760858641697932062761264811115056363697513461509816090336058976180733021131282435822283153076294022433082600634231921070948560929931589158687959788412384408229008778675750454221829530386451845473231089467987259969538376771520644849993916760058041144804856527115099364117337924947200972399993219118206248700067783122264966387656598097475745782891119249936356105541302350311590884126023323905280258568693511036163795153337950175929593356054010214369046534993204539543396517803403936809520551842124680635325084980448683441987335582428584730771943993572935901013515092372905817802846291319453380756893120396036539106829618815141995886138716313955645884310259526288240466232527516018841266368226569071986357028845074685032693826064661268416673860982074370486260346403077850504728694573236352794676237781199671494382378365526916226276248503554407792612861748329119862864771543116248575579977789331043092996887178852709568858598645494662952095091140176891655041950845320468128268664053069840049114508965108542219422429669461406655933275572783098459806599661020317052920350730509692311063349473313612574879771103203947460017210157352050988274792189080755966400219659202373789862665818590686258680851791535133609647794366867484587041010099032082922607814345885098895859391813224643808823160531197236726263126490492645780218179977335783906851066452075089444842086760221323431827892530149844287140853548997806201481843598786227390814459222688811429118783050105811848759518562855400099674675587434588323928209213037246576864996008033299335509208111670961276751265568752869563605136858697202354641381084790978881752976295722539401187280992727386799028079098550177978682895733681662909767582056033664966753059295174999512586536294512939771728858523967331365660737495218222326641020305667071741261380688220959366937863459842206089495876600932800262999827944411142793651598025523086726627962117596122743282553280952037533317306811195108769262937825149200257944105779481164018730487164815777793799062078378531295409892341326714688648198447970479770803751074787057227013384659144525833314736303114265097487438697132248768968617221169261899708171602849061154621363343062662984721139904743217151526346622990894672910208875912336202879888415509823085905973847943781308540147573685638380014739660397027859550803463943400926119386471390248991191874541457582744274865270297344444146070986270278054328211925603526885087347633455778280188556599641479815229138798853480729283377148511699575751545426169272951907154047035400742626926950968847768999007855755005071274888498201889573830390477879763504921490971617350712187223542414563321720231631735984039597313958706026556068101037392294796893065370205215314616169957378315316936861484271500105437687582774174685351787855837464798079528202689325135659175435625743484143136700456830645925906075285452952773262357017455335018544827772359522087398158635591772900512202573964104033160219227501771350824496404948539953597876105619706393683952148467991746201763838133524283409398067445997764738662913139409597268320862127463670404285962919247959271129066638522549132639507639395400684008244877688316665660026768215309272106425960436544193610523895413654872345915898451740920630357984998129255255028566079823471570140986220842814380328458906171743488563853165243700181575685870222130322168402732512010734434464226483224557303374422840544967706342768043900824047774480659125339528287129911183019155284745651192370736067393431608520758924069492667706703873047245888870776456289263382509492394749323142854808159987724436121897659097464974852814817439836388305947609427339824743435439182447813556012250849387339399881913865846488321726757583205900618703112583705612767289614329520478860506591652968319092267568543119934031429439219849766733198465634989454306713194841996161231774876165542935474296706253305305943139244162991414795881445299800560999270664402804263498402860083035580445774825098361648684398814315187764097227308771402351425643596819898196496500465685541676046156931068308436712111399610065225864127975884747979207180561282127926898146833620800932166379722993136428430955731499586213534929331708348720992646581680037533543742589303795098766158933862851313230498590402242550047507829864161085570413522785744908010493659125751365861594137333756853379965212999781770650814974490002225454296475574801816218397047714835626885146313443300514697784253506201820323821979242638122556907424257601053363512971645702407840399929090580340610723166012439706509928758439611397833949731811020096018321996072427607194179985825563799675202825180868897427851353442853084980313141042007392696390078934026189550272461207109048966739533276479784549618104316464162957883254080399904866219640333742527719333188540688747746487290630554752086476733789615361463580060296878979255291831911345941308820716154402668306824655340396290743339145784574141679159244346785844853164455221520693274368943288305955771131205431095002664982165178923075766183894744007020894475029039023933309054425412835844860404089911932866184528660668389119650863870223410071929615388472312802874531889498491167195445035554279829875303623818014055445025394699807032671460298106571824821544849226912152557785832448205797828117313613139974124716707666476673599475193899010624904712032958091190402109162889093982502520357967355048991566533871541296632772134509243620307457229575890744909434013417280879010861949422614283383058977401944146428058030279144599610495149331212820981360067489060409033804790880291176668891413221789137787372277887301746259807723683925713565457925799972914015329292733806548787178676666865178275932932700461299518488914430995426980826323648322536785024606890425518215919557960032574174287173191827871883680515568190423112148310550470528518587648356647059525179567107028092884277625864151157868396498111718224068612306739015352746010428691889888415531695056411278060119816986154293399887953697989950709633685487957463243631898728936199442236578802446149271737714654994629448377491226740150345650620202426064099384468820003160728161561787742649685436705919109304200545610587176819884282873732299719199111899496913003435432936788644820071300274643848858693390501377931905442395072991557421914946257192186462956085564781084400706278121969319587998973206976599792825886726707389998701724901816890104891653406444754176078046831272172301789358024767447105672705434081652370169920163298525663204415022144125135230382832040984720019634710800734787020642963738862980831972500617018680155630493723756257514998326169732360283240073665026571776197942811241118285419740194611477937542053875996955059119291415988836936092027524108937835442699208141480557666949909613922251960587951635254165858873042635711183747660930600366448511412035332210709752185872527711718949392039777139009752637693357351401292345269823757703825313141430931953718717981576766379535399132264813337916878412172158104915159918315667384875525984275251039071671484797899983736486564447492034942350226135674905254014819950129646871781551410155670623815639279305414319167084602528197887435661519404005324882735201843929101241174553686224684512498393812388040148149252185318686648499428364902703169745301028571969868709908974554594671550667780795683013934558997102657801053171745142198806291548210702407327552981431351433276785569556025940932118066692764320684211162864425496939328915336162996190509594789315207082459354052116762778513581132656364898783316133217325734925200742365777944334576843601773025070320408129425833162042222751668957149221173810702094008541462937054784586950458516782071810405246220209486162998295484097617135322784473726397050820162095657650705251637409576219856762425364421149669507761056228790834831161826386200142954609227344956461506066574472832711190285957586621262414387715238259349405027331884351622014242403140642582033666267626752134474113707523813320628898077486254700999913636862893794938443451295016423341618445146423356903627663119012775087824524546249004637351939464091942299730493848493683429164517228446134573362181998660104299913329803397990310890435518949153716531201333016277029801098311358528696915949553499073174137868069054756649752640451171637840172007388109784957915795438607439636488183378665708797602231752970290129852246599402843110022704437773163700350794953626355714989224095105023457347753626853721068395951589735943703712947310842292579947470185089936505385652859019534737474116718502703622402397783641323486398312323896717350884673218595944891015418500269442195568935568155960857830308665692161167762133378931760992759005253782104767409597923959856804467865399444927628171098675111465802352732133567701810320800045730395896687727302002825263089810680550143106317670037691615921320075087712968687106533384931702265807338819679411083789831952560634738639384890403052139092523982140503256567835923300240473302516993123530475486219295416678359629674914969579211269144026743575505366386225490725485223799636480116776940308931176466014254944306651873510005914488478795385557981942855048117103388819438930104549551900870155126469564824294707158238241752346446025505257444198204644987909007921116436602031948187065312550251471929348589110093252167579014191694208105387376073514088059586384085643802458668115745396181523632170654977076992212068773658042565662030746668713621187141626900821980277690272695033979017592468826911989855246349775635418776618971522117689932464382012317032451940420816139690975794269382315916883489024485142141857526031200908969093647927623868880847278736125317054043705922057477482890172489387777630325120810326600355413704400291957388217931701889269806745113593937098781431760269711371862318333380815468017652366882343809194640774015730205996174298627355855250166381886903639581053407832933284185003201433711221105238538272049307097111313781517640375371902498884877339350039350308844728537151575754891744447803219180113748080500682192045275587221967143008575407966361648954949229208892093143222476902321560997200461617912644138543040203612414590844497582334331013812308673154924800928099786961319213786576306730628570317219960056514853650504058429250081217169656922412935846835829212672553225827106599544204566167231171069978158109717917289961581223213627978038687406904356346238505030044087078298154564923399864481608816681393137463667261407674537165791262808745125608007935386642905370811631019656842710551036421959452856979779948837583988601195752539345708017350372692425953151881662598280886438353020484836546896059359752147812357109605749396707353458959817173648880513186476657511678291899216543093096634281694823468326389725911250366317154002165543419222216343479022495556636478866648596896800195772406751499188567747304312451525626448003599986535290822619951645732463964776673800394589979403063686172093719401534895553369026934763564859900828863145680232117116981246168744870460635633937264338484308272673342766580950015164006113318854561028165918239747052060436142286622924233328758668943016373069858570015338414674582234187239770464882339785897311714584661048919400535377065517363908685863483579744069582166287463381637781071681309113199593800170199942325904091954849857864357728190471142058983222504739829665619834134231903744357643443303680628766457762848308308293004968806419053007254789724550569355873461520356521936215524392410868329637254511502316800314015164458698429395144547777929114044046760660412092751636615125386992243892805780676501169648233191785938650952721420278004303640515134408899467054970593241072677939248153998228062546548382859403048942113304085825276080888440829825880112066677787208233574999496415552619753079359426605800345346513427814466782483852848419224636729199139188123632655045568251019797185043173043603140922816118330913104085612869998785138095047514805356235300734786649454966814097793295605629413397814320705592102871110942873987926160739808697160080825016111738060831064201060860410424517275397301025836406104760540129869571697079028865744115070662675582315963453385787383456283414822842288693038811472945431558701429633951448282628624794822134585670711066675799987285348859546682683841766126771240818114583052555648071069648764814094810383322381141117194945732941495784874625942338375039526798232028912040997095081711019222266381869015473662598840259736282281513554528194992748710101267946972086893024483184147750433108999725385490134022305623934033357508977442183775963685017179758370833982507514219445727194817198650528451393739124565741791036740928690811841223344571252990970897267537773018978629160609977345955558874023775579899814259833767039623397892937279716816858466896170192604587586592976565296700168102102343780268571251044254461271271268563277463549975199070458591363602611986653057856314001024522111515191170437494396348938728867617440627809347373483382092124954822514306432922544170138927716863536988142764505339990377399270254984512673240967347484848441926173005459125039661576376338078506168095244557311766399041092360033386434750771782344586123534187084974880415402426176892203205772249111285150688313118372453724348969139900247894656619168246918285590883155465609471048174705013723211708912399839873609046303723581855212336141658823453496078341295168165768030787775809676744520043250619206846365989826612208940747921356312169580701924304875552443090824151882007571926428528951481772176125141324737731173648866607394529037923724631635937845396551569867962214966609071576236787599978806427992061430634291022341993222418424899417514571314649689628139660308415060245219040377154888422571455795956177426379161325822898255220732770384270435269136920313021412914215053366962108992885163133149260360479511618715330193933600686730907856510091873064892334953791716110603778573477233649577139051919923855167473324030018093727935050546823103248313361761549894171807079445822020297053015800362363991912663285256324271709125738488823906548408764283936082321897907413935804946933138043508675738505253765890958053794790735607127011778261509914682999477271921799058152518000994433062591093214338616951022906393908813021996188794779092780177134735598151671843960848527960873498015393286584182053445644621014744053615216470151270145587886955593588660468796612651495618379277020949028068581780879937290194122343339590544273110920638511620661085474289844788856513956587506605393516071821582615241261124281485930017758331244857086756573990752213965927785065775033686346829696870422785023836091730383708124514384265584300536680033262633203304751788905031184692276154901071183821966476587774702955495411447781996840952843074926856505675843478823454380357374649914799035932625982150685768891077203191238839857630226057522780488678918391404964951924188708159245100346676055117678988272093446429668627746072667744943196165123399240259066902213398545545252496943082365874421848361838872683604072620916025159519687316850743911439584204626985218294819621577964072598752219995178568892379199734667422429367855650361855072767970186743352465349248921745431392657568073873581914749035341935231497100506133369741074878807937208605426851491223015991229971923324428930566035698193964009290076123540280700063493860164373424596880964016947817332377723153581479553914311573075457955024160683592937149686344458799933045936133108515130326745084513567638945554546422128124474490594913286387483162927489516470399910128805776307949100644520869075682385250388232914657848444107553486481051314461654087236491909290038342348680944209786718332664494383102479935756950891601963281165228557076137254051167892000145242749422165650313638063801783872394887502471879956309331307728663730523072836944131670460404738280335768769936393740823034112599501761527354517235777654022247832169419235430046418655240463793336036106946596957033800520293566696350180302663863842826078262250724634875347393774709766968425541994064615849792658258120897100275518210901197663121408502862959414826864726300236412963028792707271824893862769771880179814142416500724892303480585077197114663853627424826303981431232384387150247797025547745018384627558752157776191684732770842025502121468353095982547689881223923694313821052485805008650430981092010629040098120320658072200536691991724653004135725152023336711264686942327103404772598438287120318817658587509937938322041648423880061426895349586820165777608344414136569024377667032299174195189286818747943538855747776162223556175649683466912530024436616575020650036848513801442906863844796180114693769289213531674199000665616585662536323816854080183623753653242346248392350160197382120146099139339992031140535101454031037048834901516091638844965701922245205034375078845190950152113452612546753345874070226323753966637599222414176434683435992397772883114878977181287632474368637053321106280122280534554871188858621261194735220716448004840469774379195167532993131845228800090860419205799811864784843482946293716132237781776691489854957377115703493631187791079273310091421235200975134478176429496653730763557401759624416159957264772175234955957391827514454966486190961052255668931225039326372673408553636744543737430570302375682725963111830701978766952606734337604222711711691421239499298157939123672004097012925836452060765523936931873146716733005585782952251905410525507040611986983982845262559634759299279812011816018191044414351051295221286868016758538030644746000073996420190669824084859222242625941549465808916990968196828308279772104020885159869706318205909136140068058072908289588589070958463416891187283287758356921107279021828114366235787296639064952132134697418375008045468951178340698444932264682142185171253286207452000218346793127669789814701428906010308734203344563011152109110287673442258277084347249324560577473923495037416998161528497128874249980179874015902232923947517522711528826925993702567912726072653091159396604975961285262477910778206862123352496407263107714299597859994237410838256180614900974424847984612425630363970643378725509367713321006832749104960673276216160128649520988427359949385375319623668198352549465983876516034053670809188083256871734212169638567580233187284542097217132017287768447014691515531308664207901851998559398552600557021086063583204158278267293082594353678482514258218812903053459043776729567906584313716222414180177060303609550051175681752156969359448681181178473586271184394289552273434665368873329099354937718322697310465856133370635967305225821009620058477962501587923733151734621738565134982768704121578070791124474805647269250228483756422054580234891949525655500849866737849256067336312614374856400067220088771586927419566734619172326429756367599921148185518478955570086821757463669705248192263771908829524744401775485919956917071564383125566360270555448471238741470596095383866382319173829728717414479489062437236574624486946696784429111591579505053025969879933036062004925593378839301455993910109812912634613486140794308934344151960778336836766010158543010004517212526105252603056912364853212313848029572768420375174768335329830821682558603711736302777371517838676212479967510417741266944220257452083250684096802636591276282726473894001450835701036166385150948183794884370271606910600923779032249440554490747338986535095196283717417920316238644341135183508209104822781327367663457326600283063830816107783845181870318033936781116675578831393385293123412431654091910791603861771004534891589414043474612118974789371089726738554922123225495678206829814487627940256254228006046366630638804997003272734716991185424451083229451523719967193694404199062857006357459283513994145872342869740165756673155812614557172132793815794903218764434030236576370601211108817686653884596692618634500556339056321968835689135660806245803674286585646495649946219576568468930338595633649895667143620084651299777656761315127989111495338939707463201500522858351670558929550813439974447464163259093452234837455456362084062351610082885340163279272729008401019671359243842674593295927402289171707503778013375490708630245814768078971949124783428454100919822635021249557539944847055592451105217370951873777446566964999156352148919202171487979873582684754974967140843091865014241849651296464651825707371706835544066828535270235082950625351498163387170048739578042785120110008036107316777308794384277806152256988389891679999543178810640036737945907530529959940104875481762291894859974247991014030287809660121036213011490872541951311749020700028199952667249132866487761101600749739468902215168804518791965461000313328418125319433901996151118405895209310768122159709864652865694511406298920629003106574220486968500248344874618750708199360410537592013746719636919382231253043710230384906186635587034924401368448279001477771184486021720658913915543885947302008980351751477270561103503000247370374675266768798001209776014663530247203640714698836404098830076806309383397915882389701410672153581471487946261114969544365060845856108648504506262123767652880404368340230143227321839348326889210590200958510885105368951188663797915032519294911378519615552823039338212736553492384184809034327488005177760466385543606346686870557338334727932000498398041594329309615819607218085870301537220934207974431626358064124941536319142056680164627202883466057937202725649569429163460823563246914607453805330868377195973200323036379509249637786868648508124510828578672958796067788965883542244656587365922658908008070186978026959271376008612698607039011415087253815457551020764134570637717794032444482575234014773865610309537093229567323255203499679491127775202538989364979126838904532106399985364678930936669375365874378865775474607115708228347897631262123957216839971467911348962302414153904668217830849491049288678420118029572349793480698986429631433261651444798288677320393898346679619807301418184747016517431294194445607356905649192183787522444420604073282098832912646946909291450489882392376269613403349898597011163624932807358068134421868008950387880217122777293606653380553355192529421014806897548393271400683107525336033969158334687792359752249494133129548098564462583169949441878770586194287295307972529936514806646330871053283722736869155379661748492114131787115945063682108164488596306571840744075139703222191158316610244541312602075989719047009978345657690659791612611754210017127648248771358935407310148822095430084091069378766431530060796499099343765315002448006007722252488592366572088208460166522651089737248893497962969412298392172016032210786216256980690182822077617669506753319137246199573254474599382806158360048269115566036930813595705801886704359571688306389587197234853199677222700842879675178739077952203299934970170868054389903529112581361627728702259638228202233358231593242595099678648888906178302327720461654732802037531254526855169301809740096967248730751176352211742589665271493284429233295961571241203822595701677028098582858768340059335722436076467703451276110575493272938013539466956035992074345899515286596921130917604390258571393630732518828882711289809064834649605350869187670997339650137226931516269082790845303301646448171375518858461360544018388066824233837685590494677648289344138203272406500324268629809731186412231283559743058880083602029577691402985756608010571802467235357403111971402207349257921054493512574441705382635070757388270695951475595053769743393417352752066411900620044792664157483378461497772005875784888972806470489284461758720801646441508763924672916876914557583142603677578551364385429445189743683872225965879685792323954778717145546469227948141036806887877165490812643036198847901865167616643014271619128491028746784018077751332695429190816600300874247888377302736647291223807446936079870794523300380208547797728123584316799034958969020407108608288939762445539769342861896068654720527138031468799165182067344596871101636960368632810608721422780101974666512372723683509593482565481598999746737129713824029730705909687275763147273807050824075374795006705596173367692066063726342198474959544531016825747889103574442305995681763620969701670136068866707853610346842813193320046593897874212677187360620936427381334440617840812497511074753652375767664900288815474737893693522270281520073952865715816884974102846024141174034443601028394731528093886071648469091323244057508155395455567395466935613701371042586154253320693137590660112758099349221825981775288227586239692641131093334988717892807921988000020046745344180089855943946047316474280145286407357821612044572468051520203545481687157326200192924998077058295470894563746883040920160251863490568182231012504367817455831569869240647966735592894333278355821289759141287880099152239328251989138020670481012483847168157697546510931543254336161299701161785545151698047783725722824330610388217000853528765447812991063695447324514925813649636435654202239413797655053203636141862132345582146760711020622945706793766537405421329754146739147065157650742147206644397896771320414489831482326232100929676413456651580000613085156626416444187300716976185180131821556404449339056849950936036553979831463889654474090074515689879465467740864268283299832093271734443957501180199552239970082948358333617547845108996493436427571714482978696077323445970743732471148959789001719056377557861537882327557308651568590384833067699017288494298548897601623458465636961943063881353317856712865487757194027234618317587842479161032029137917173820008116253809874087138244781157314768523383732354198447107837348418216087650162976544581433769806956268042764050206810378402827556896256721632022208950657603605730530376672650380716236741760181560040904024910359213101378552577305140991700196916778624747827705169778969834921038889256547467792616220275679191393449449821372535139738074804731304739222406460782789882784759994272169187642418257592165424293036422846424924098645437876717669029258554619012585444014493199830805297014623459888163122226588151365490594311192984168882928382547561640399231886998401201518865674343810007680677094139024382903952296586474345070374253447690617677302595820420494024544365474775849986686782532062028817964737343219459114889677008263496719423568611446036878832545836440964726894759426226738182580826659859610614685251686331714216212856220378065487356951028919286985187219198720244091445482158786314386869945131119664776222324875259132597503016723357433711751731594200461400421532855688286425842909248177239226029144766438759453465379869006150492295146655304289989292557598077808822301116554591779161000829664070031617279121136488115657925128078493705812253953107256481792517228766937186868393538734871721610696230362175489347705183017636040986606823736733727309263555567993783541045009906075906736545387644002866508995634361875990280887058520438055044049301131820094614705038239391056639935690040052665105034955567870743345372923402453048432569278818695260090829793626654135231316010818256990171934207576652727754615401984017785388636260725724061552317030622592925933586327781288880170111443019117068867019036216865598731708683743285407146761271421249344581058344784346345748150804334891844711397197030506183038836443155024571028334879091459415269973397605793636398917930584019891601625778157282588864058872179786589812862258486416092782308184460030788440251048680311989890160696130008349808866556675568706782401630951571103434063459352335586770038910274211746315808339546270608940580177429592179505402471127737103387059707434507220759025624568253414415096748404018904754958168671443489194293515298292813582327633973999851902643247691776762131635228707052349716955173913694468750855692450437035313942394672795943342425827161450501948911395670349023196546419644934590946661565630813587600516222026688701298493734005738749626895950378261924541729774010166675736216777013192123826922341386901572032304185499825291403456697859833106386804462546407196771048034608086648567600080580454954379874151599981418443106010045895746121286387008850264368101390763903123210021659965193245902047550725978410498436809742907945083891901081285950041749941452535445728090957013189910222853138848007391224195325326950884137421272654268115819828311698998097991658475717909119686433142757480418871211774964181694091070130380768947572671639927202455506769728881606911250379551614638889369625073972957726890670681837649136702532379457419832134689112367766355571522773336896927248678163088530919263568080621517507941326285492490199595098780511820799339165753127330858142749636504329349847708820840364136419328661538740468739771150151383086183239634121180161902999730771052070755293374523916238870384585204782205755248710537915245523607415220425232456255368568763684809846429594487461996574630625542591643626834069412355938067837830099645224364049539386496501545079722380261439833877993315396558140005898599147795350604888822623332949484017210257887436778783814751540589811266994724838392869027271545044130663337789923854229518060285855986319508680625434893711505044768952359513707165246414800579413823556871408188442392025566045778397366096280086775052708747140601581465269087988607513902242288030929083723814049165345063652363507055165006646069432261269906476752083319463769080116980552672078594450816526085010271852705076534624372484196783957280454160800266850817691785661749293395668848551852413462318167603779315082281766270449590007692524086655408271816058410466861678830729872976646261132864191218709499038957326737432344853207425107115745234329289186632287207460697328872225010775244001046915312880358737478944641896383608248516129508697707370309136885404989812811187750529953959615438537213457024322893593636824021020148747964730210088385153310141621136282943408571174510323696214504517210352631560539536454090178372140028500087933960125614278422324355477929247801432448473286321773851829880324640270310894988912543067383720876382941717615190165341314325465714725457586388204333603146056297345716260806118957993526893935569054384524368609457258074678030315180931697386316830350034563632173222984076387753383686219566722599632387637807914723506982399834197287544869632511347406661392403177565119356697609476320264312555933685762671754775453288433709460476778425205740752689252425861353910821098883167200721040413337310642768835886778900452059679385088204082992365130066469498900712886397187201818210252984121719684470613660606391420639326099735737116668448630122257763126958492674114651846887534328277795444848186183413714034498442439791895823473479816786378084308963551240952844953573923812634929749988308970627555304982664232846134312576054464087402792131198462032917992905067878312197231642903321673541088175475769155594072537159402014744165015922861872564054312052292203034877008612029105091259681283102024889062712730510075786896939548589353086180379602371507582321994733601465257648846143027293381812758501169767624163657730462684989371711587935111517425768046334011947547930138511328269569816420994810236836682053373331670821970332037990445633910979781825122419206180190134260732903354867996037849382742297640171896198255950439871548351003518563416173111642602174088538095581563513476062514073232689797637719355522528564106840359928247685842724491433969062889944275196298213595221082305384357241588750235382578850770655881380199795292219413268849585741950132827871235825176268466104329764788330925528602329483558103471331720933730180476690756588292670909578858389747106646021857809651557670318565496291923107600484762136823235528178088042191609814585425310429571747832966269228011957802047690038744145948140421433713442489266901689614094771231702849742256207697440722990986275385272961365769411834825210968641969658065023439488000551457838543590997980127142568306261191982818633247672401395931363502995049659725578623088687897337315958615230832612338616943809025083170315717567275971865258043774841812237627582602352909091638533963120017819574791673132011182053965250517851983837031454841695333744617241402165248920965989617838706064373672344803882348705480405509727186552555120125845605977523278766776688829521595698950576168852301982301396398125149417968618206287473387997618642560880959002897466634300303443680251297720449026791166747309457657706873523064020233316649894378480862245251186769294044910000522799668911160255942128384973840105338369290675231110296055738676577033321306391267589967058541136477223883907767644110110290442502220020971386303851867981423311537022273995828786511185975496880728695200436393668983234554400486057796704231776502504063212147603005883514388088639221633053667367135441508503034249437292899200879074120792295515170544758783488491270449502286635403965665596508354042589259336407527729522783561133740684384628681001268139846156536570922178509189605356550411811435929609307965144167613027441182835245542260363953930844098516907543079460551368361697398465776201802381691582060347271546454416457641846659452156608436961510373395590518364668587843045894127013454998527320666912295259801778448059132626025022075653151879638696022453361159200280704696472524017193607678178588355800046088381934801524759826588288168993911867260334248269393277929315620599166020062936749625281074739664862202584677748295436045601071242549447636703793216887692429692836326330676142697353727302909276598111155627789753595278477304209672034187004083394124914117394430735871656981162187135817080662757627618929130514210192507302473842203137079621108947903643891073933552480484066852679373185294968116462318634136122784302754003837895523820373875080503916800714649808652743662849829247978447330196687460039200059669983530041660594968840331908364633079823156323740637357938519912799891759491964663238045965015392094988906774578820624635714044804013174796411735449861448426764899351353605479701858072359898795856647587743085330201166866822054523909617518218386796573812909270418516307934904767529544856723162623587831988140120336860913835699981876222962766904758420294155314590167511655865936758684520942789145470939047439630935492255872333756319282853755709336967182060378654691158210165498923361676934985526011061942549550231264411355227968474499175504183621497329150018542790947761389948082241831612508692408899027449099951059060884632133720385273890837005247859808823259227121812000532480278227135179727839436239479522595604048501928058044875768847985140864582788147248949177536945960785446052110180983197986349489719877651250181659097205254481513053641380001832701494002750816734053637141348789457643926744106028038335467193706453971098607149767547279222521680918664677478144778461678824835067548238935342166876835492484037540743869344893730004400607839967673061445089026345038196157760229421327486596803765179114046766624195350702879324969293115174948802984915153989955888771074109280886809062062271125579204014786752049584249370280983924012850839571028723914805725253712016101406936159613189532563542489083721462316745040474922723194252974952019526720803682584042895546848589587880036670746095277471299833279494180250764162302540625222191447910974651181156286128430031346054913359538287853117109709458158900839712755824503723430174061863362480747432562856556423533529861721074949935823859955219058996353571577050678968540574093056026012446163549106915114143542443380374238102548438244334275560727089465133532938538712200714925081509385280812594082374191940202396556555089763381015503939872068073335084332287641786469279710395229025686040314796828851997693350740679603042194613272934424523809428785894254923005854957007279991161888959798393315007448667861377742696407594284026221787094956509419754743234266058608592860244137246129633387488214652843485595128720226272513971517711078926022893167754485823697375543934185393929544729713578505916959496796853418813967918389272271117742293876069973786977833351890668483285860124795316865712954827553741366310897471386806722965631385238722440977055434682286642755831020229978455136121001567884498887148161149632580059915635073613459288687689058422735875584937623488258252233295057268537198316811979336955315005499697463913409692996889946454895670041232327127712187796231961380892447160233696413031756043033366988189002373479410172563463613093811006201571897307878386431512112877000070248174318129349346328501172463372563657436007539436988090295402133899407485228364484669071679961906427560274200105816184905509322995597346820305029560750913824437885798900997178022641965927392664825850837006310453338075970889038008441744705340806559708661567641711708681481308675559449868884258333823908087854179138502060954866577875501507068763024010981178399103355714067452325583066425816980499186880496210212556321683674336959277659215584462486254675984920590106915452065659405796811534522998784370853035631205605402260552084490336338893101627836283269573210790658946399175232027992722496508948175834463760506086994297614890550553526052086541651388367276058188145242205074679937090440811239480446615639468919634853773654876935540192801707304426252615878342959997599308619125913152430417799514213721795429063531816800451414179719353019261316430214367442268735581280284980588738826148317771664513845465163790717562570637640104828474970259899454040500434117726517697277350356438821367894595077028029397906565910198710057382419247606186782391602286993494860143210247908720942006030975938772708616801939607617479751747796718000083751710525116347979758915913992651836450348608158773132268223370764293789469491764489910716924601626748138399340623032644042822482912046794905453908106713181250515104131647188045894123562606868306150108101213587431686737956488384321370130027873044319603837526597451882784215222871002835901111342290887315701846455299484598649884500540725026849771220725068839353954134832741667851926885866061525691829788048624388719768224859959704883835776732984817374275887842816670998722977886834247208354763820223398540468365024867892260220322663926331159113332883009237935978578418174218412280876742803552338141057161470432783400652996638534267428884033963241048318037761262824990619185548713389306995321308933600753846284130328109204234102348027699668447048765749848353182865878027995614492700137191863113321632032735393132265567326966793543380772618414773126493912035509948572643507900137477952601410417991144202488776234638003952231012341532238403366795003045006805595376400481606394971268285082291045686908394247223806751938234650650612024985798021761789936065145259547662691554895028815515484472922588994711042652259542944938988420789351007851192115463694593743554668375032855953422008934896994781165384601816064800754535255075519610863087995934026405598187845078980677028003701564215840942190977392395416840768209837401939620628097259874044701135446593067173474206663526775933464251627506630345004094715783840392360534266852949084030697988153352640456869272455601268192397519216741060800136879994001019415518443777144914376291189046982713081649699668463372096851086676212449332381644849927799772877887913279669534229066237980590169904603889514036101667148877606864703911447800463078938130844715798648999025963613969740095714216105542623504133282242727391127389521141594385832992875205658680134126741444041988356254616919391748806912113397775054446731836576860126774113567103098304843836207701563927697489082565074595125844321967925370069333971098967676383013380129498987594729627145811847495190698050933129418258049505373164709419290500747926516018389562368079834707712901768779971092262729457560817931726890253390674032726787902602303439771827000968512496848318639215293689454770753399981000767361414553949134815533283756504728069251464679310527790299008233244255741036246189886483039963053344521235185628518354910554631147646227951161735920656749068743982630759782860582239845173090391067576156352776747484701474500108931645797550490733308041635852814787822274021213888051872832412910488377598254055862324487370702796504988343766722800819594051620580361991913565642985223139171600271295801119637440003439523334451079462232528614621412765497122635938912580501699313517679961452157377587549503924112625357198806294696447089803458425880328347030486945636449639323486976235123070034661133858302714771117914516287401192349689636537003484181739030904319562244799303738989812515567132416630587652611080798409677536802091068083026208730905328951567526325784510778768207804112905728615252258974853821372889002941880852230851003641054553334945966528558348832993271045025349136582516853395600617975355329620689493927821500500124837837640897549584916656754569603764657701997676309694071039445299089352529526901404829385207962428132204346910743337984406373088724806606886148685688914311862447054702619463210738140458308395014332904411642502825376959907765045648292438198837212061641648328655017703787414403844400085237941231108385775894790561272845309602003452063748431001378498584942698045601935371693349241446336576822167528670936954808335679270934756880159597688496761265175621000454001579570710576419538165199177405570976739594310609101255045954005710266187090588284291422416683617955625046373613535339921248370474625827114487160291285933516268430033849023691403672232196159235308552511338342499193954077451675287859694595320012898936083047684273222433488115864003125899108711851833367963308475068907449877067782993236145851710337299636376810239138218190375443447539731329503419053039174496747040505945843382557191331722580854468089916348841012204775680767664455128361592789676922180766487868126206111813958399826050373974986903574158794257716835166632418820417467075765307347745817758711139068442267606419670093909292960282986287950953002326338803199857177054050353996915371959980715152696260653215149108490517986569779025162791688450176813050074627867377683890158356961134702939354630593009521335654747304590341357412771463946723723401622542491458958004379496375793158367199649767855574366173372181884288705290021427627783570416401431299905501708741769513697662054337751864122841265280868499201271474807478286674498052806327283409663674665118631752997676253462466597237161438104778396822861500617250242200769055583741803973950047663978666245398742151316891588824358057033964406235642216344416216251626624879011053185549262641540125747045610091503771735839533894025681554767812045700620645892892726665780557901155476586051338093893314630970583615348123782262704017801145239307342128101816369394528804266763076239685174721510209298068373545442588929371573465223116423665390575466996753429570640071695791101889056902451187891541342720236042041984174680048108928495106279586775406940581088548293958127109215281592832205433643962934708370215976775322160349255298676765929384057553816198953091096603487242817800700260093916840733418027256488113323909250738975529068262036708999479273605051227607520067405311283736237110158206082445543275302138679603985166956649151859198309319170233738625458762116826534368523579440886193148334500367646902698479837960246288304536557882891538327386138487069903578792607138897128906311005753328285034535178306037019413723089006018012723105717419798079718044550857837238548054246464611346433730816314124323618068384425068110724280784820204418890947714316944536943009972613599799443769960806255739088022452180680418645329611595563971660052305930007098127570569593953489575719597202563995205797506361213288241017733746487236883136586737096071839032783827346812675972812653771324635631674642926845493654376035758797922581041148941867090269025207285030533113060833659126868091132949857428904573615620541414262526344126075919497943384476778432263836703248836678758477414597341884253844091233494022145478900516180136779989253137405574915881430522095514529793148313862975613760264884169162543575407102145696403773440400819057911175460303828183829740320274561103167020526794409852607581292691982370279130186602605319828994729261408281501029114336843954385973467310097402554393158936177245689130627407735360376426930688286744214089935970836229417859475452482215715591668858318566643557354979170928878199967493060157412247241813131039250809992200846923810410388117349969790645205049599348356619480521114945879951412145327170717625689319053126393272947607785530734133754527366187034413115659982114135876082806644344517508653621850312436005010239750266843630775479062899072110953235009048211867237535319818275339323415325708432196966887930201829502254978580896265341859359848915831786617247688925447881369025497754689238877571449705314143133210478981252797987753270984115266083197119291512082027201428503221063317097839256856502529252505865220711830336898312636970260715027549464951557160477787402012224220237648923619845001802805188632597896952330289055210395870476546638170992751193560199366625720208526501830300076832984360710768617126937508735097556416554916664656835315890245111270475678204177209179896264090434713195138248879112096440540422985049383643706988268915132854313490937106197792304997545029522658521963825014683193121407035045881948277175959337213933894420890712761503647451462792579057129143916805328663344012475205295255968322540857489890829038700646424508578498212309243298538612313254947365838592202832724108097471658244329772943899056024569891900109853298363061073644829713791648380931534173760007272177949362736035217145477999231426026730492030257679649401482299159829534210876122076114995139843164742880555394746010595357678430401750029143819220803306881830738652399520950300174126038405617438850696417478267416206275055522571370883890628185186072746999190942297518164420293770074479842836053809840443226262676517610877346269479028770346107340120193819292873620384464063395316040307700212988224538820165789051665687759708444844378191634270734224665584694461604923769966457253525767897663513008671567388621488082587174017420546126186985575210827697670788072438838499101955025589228462070366507562703079326664735536131654037366656315830832806515978258098980807812061373849392438545842121033068562379291534599277899766639414517514580850842303363983278619617891130200644862848906437476455606282856647688012581712214836286184332588335184264993967549047032708297318214455405951396866652957953552485580060143096528499081889906983719188799554253023639462019436537951699222137299757670501989513867222074136562246057046496558350034939634188639702972374070737750334694268321096701325181570030235764665758277055123416012520016402210078638612367225217776049777782180454069355626847371033601107006666161606600943859718569684651870785030197581000768868930447974860850417181062353009644274180146711292998368001477167524990946568960659614733550456687939490094077089516420351018259460323184823458364469292353375357127323416529911191465998439019772507806244208343682078277788565083661334122385466077147117730613266266367934152533735791529326930076657641523756444669503551051954495323353814348902479990876519156663279798061742308781925562568332970226137673712068467592631467570746398328525298172518629832725542706450612922042457610473364225661688006325391129102420600251025987685735905142804252214236311645526361902033587013899186464147316962711266370816254357011951137737626124634342084767617757557783069058439045704947683557539718391933337129006936525144941517385167406533441089147700703177801480669419407136739274997783361027511781741526653091420616682896659003821645699897283127004178563750693514260002236765426433809551061236453009980703213565912775360836846280156819641451925678131464035392155171599452822519002407585330226320645796755601976320293698926755597102515383498645489886158662623318980483337434019277676303983181153644876105012625219961480217272790391484762580143933676184391873659778649331750221318568809383359902949237871604030179694637327268725496976093452791050469951957115157081434639800788710586437801207419991737468264700776081198712304416677953757038839152156489556695296416795691995130695329787440679774871997179724297033290585304563281217016357220548318911946365196799639242000041847190626071626028093357399138610729605338158976086840005117342742888005131601974530839445275223509957042313731869780018829374754172457226835452894103307405321764280765928765356130264472028406994414252704401272354296691532089324884485276789599534375024466351872224250869506328187457147514469313344080717910549295166637864341281822406590355273316788336493302301712686519935812783309363818124143463896798690734540603826769851273624913541371982885271354378504100671244281462469085268156840752541247088673927326646719733588760782517454629237468616627001156046963001803285095789486554970439907864964789196340791248475106891526259985556961851642042104375493775038468529016917045947479504408752436157119611539867563442671740396075598720901012586413404892981564770824197523434919814619932543079614612674667161481056416619750460789679593110818397723658624095189930280940321191526662430948043014681449147156161515845147619568445864822169494050829966377440342713917269050397522724824617011754705034393071200820872438031116622041118000472653902871295750918034396782617705562511852602406981111529293144725008517864171360993441249997440639229540011182948723802370095591535352034394549306986295124284303366911515954203115482950023850420139507060966767060631972608932179485794698156862993124629283364540768227507994911035263659556974795746015825093331466716838600612376085805450563727417043591025311449264913937228553432892103408596583067431541291859612133513994405875288274481601892000438916156148945926938843242952674250438888899960992639590169499057119480527048118281144179692617784024598174645396777224569521506296948722985303140042849545049480065504053362152869878070410105366214525516100746360224432677971274492659664156114197114466277141683457115234362239044727138798761061578094945671023509941791002294801066986523770412181024903646507184297206430097040825339044509860535003654781316502431294802349242366537189514852979489321768371974200245025750022147022008272027758872184971208022699593330764568741609795837700251975772119153416967740412883487707440470890055542108294219040502369411157043056802457534882278135205641144414629145163920733139328339567612975629288106997953243878114659894613023602376169322951837629416910593388475856407609289074912948506985180948293239057506461677660479287146487418032915305725587366791952143118511814306349460136457657624848218908847500966212194151134620429282609774791493457138894130149198711289335334489010225847558708392176894836145749607939638935388637042932479764339117602500781358157871685884098671876658087974795916436369756706610052986314054186328882606222973890151581790754405409736542249429635737976441457605795586339318122825197971453883528774419724997624001317704080330159082559987001623112545813481005798990399816693864010092903763565263162160765507341764586664377925854175580806394356571910600052353416220441209343898334897750463112601635854733923737790765146342274393163183293825090018808046247236024555869197423321658295795290954838359857445046045158857994676602062517853344578109001045777195481521197039842240932665803482651576904890917448082501188961703475380778296280659555355601335732740267088327143138602805529588955200013237356232980206162083227271431216450697287259517235815841548746246007894867367524991343149508275771152834863210589789542818338355429616937018230747560696559928103600627111678437360783261870564684252647515090685501983604145244707880542665244027694915477923158559699686146824424878256938680366067091235491625785948278119477419545610087891380212245651238068101207627648043991478044158651905627664115321252021527477358671825341848713860571441338716080963602390678553140066543004167708572992240035761552972501412278623144748092750583853084037136321905685798744938556514768135886192814026443540604116597768145662568257429748307475287868013137185975898739926511975061606441988648511369531122458229706898820076616111446334827830184574697049328028181843752666966302503984053152396062269431541214754755690866616973358603550976952426247585463370943810411252777567382133025520152604777481177829712125584487360259365598663527965452543137563076877592354585549589399293150632206032181726272998031834798973100925345394986735715151715430863962699583973630451166476361798193039416538524704856619550642811949744440471278247447259173393426558975190170716655966860607569034568256909645986165617312401738867696431313871595541494918177203984729896365911909541932851425497541271714495634177780300821164756202969374088497839238464806409536738431718711579135750665828220899672755642405294945364044225897621983576959390056536432592301595639659364603987869197673191572289594669056981815972949848555853180482577290599072205773999661997535565204779011816145422471415479704949455100442884843280530877493036699023825840846961684298858048182133849629507134631228832972278135412623944440335416100046131603511429871974344923892328690120339169663420189723964118020521866816470654139479803404156630635935182572033425007823001323777461952191685729631812049486708099285141308626702481818736299273406542443705529605010860494222722560850247151271495969470577381849552754655025933621664138701137627335934294040276218220061915043054450429008906801801425172948541971986629911218416312245594796947532197291938526109466419407275642242364669921364191850764695283483573110586880431545445184080225865926160533806486575492071960368951273291471171012529016480173546640688847580582552456929837712080301856876169245633977111839118982866170081771030194302282765137051600006564625925184884546134786022576286566160184068957433458062309793502557500529911330533387673521900143192570006816701481963952587646845811007303016000291062585733206495929205112676611151788246962729240821099926979251273169740665011271487032805997695135605929133045106283143734340143438970269861566754958136738966346295492773423937153606971183956330716929405235148281624805896115344457439401265733541135170287260870268933995435151155905344071288241330588490822554796712619872570574637103438738852243523715899303895197978524569273605337248356087032843758659153686104356310558257912584425587811785343689076227437448810033432181635068282067754203556064201941062247002128751272178387102277737692652909077679718911318361725723614307594452815892181694482472081322441837331969014303884193619381664438897546508179958542815335606709338199881453406763229684132656598044278311928619600401533438077554271603532593438542009667220912956142134573990998193806784555541366069399672390813351926484605568340242729130799081679217454527666355268313373978604799024497704507356059882484073951848517729769186378420849036852185516923010136137060164690305941991667399406253868898574874990105244194506357215939188963122624605967706407124868974339527256253810457532619110027354052408676473157024556264582037232236311187635621426451447687013772142038431638287004768764061799682040620266435542481023033240715334486405137688426133024672622109431424661268964804567265369400825969158764017108674848021037363739099897025618058001876138957531945947454792777571496542767946031154640055690671792727203359635735936480200282386142456566161355522574969569968294216867601790329144006149759513905467336490882596950523371493595673155043276836955491237912805785852838512069379267059384439375425705502187773276290208812794017523338781432675541022052260493509441606165303856727699579296615341270041524254049771608209593816527740094353976131839411532827664162777691984420071363856223706389769753905075058029056019305299723555157161313904403879814074002115895570032230225880543762154090452703244078604919927678719532044960998919343913546524493873308858671050437906839535602719632516268205929220551016403075213705464592300779564642172669308183323811271317544085651629672656826635779369551464714426819606436922300221884739884925720222158110820125982064229677292203968472415174473657850398758405769275587077559126788903201745954960995382713970697599415324359392515615202920460293665751927471114955932005522828463318488141735257381730403800011267555726722785960841381010436695736904766934982087513762886438496216475774037513331581079784798153793699041922635841866512735127325842638916272587561221184700561091163026951068259544490234201878256373655545204148462244401612856150549674979910281329954078235977697906343376362722437458038791722523026981177164388989680918707691171372011905986037860203878502198162596829648015797821909704225739350278249085790575784659902506723312941569735049112354929020049911899048973330964385026252924887960613426247118486286891254039391839890323009056707324363787796070353960287129029478116691204485022889212101241772997561211525312708905120675007047659145373794349574755136538976273330125585432033171548491542436534631434995916156764142584807112332224572675059438505491462752025808955048476809259972411311281825846481222650655943696196291478257641549231780194368721641202357073895535955077916331463424418501357414587184666093113576783221835051455681998837862617976105529027666359562105578288247475825429516810036368870061924345547402157697453196016969745248438419330861229983800220366203940436527103732969622623807617895947568591973666820018917130813300920373339592855740076763217715497928007384150924173173129873921868393972419610371345970715295162399516984894356155071536328527238348230641570907543784470472311034389880830785767081097101737789407334635305647739632336992653593757654318643901584473763370962340803670059802507126078479785574117263066385157749980364471177405635904892956113309672634681418381164744443498111419368832507979979048474518814950816487605262245071450182201448427654084796471674451911294680927939824314064002669045040956819715214505842437032022296900716444434386567100182646293712191395820660241497167435975495908337259503720930695314298099845927724987417273511347547332429122296821695838160436807143676781757863951813358050160428781362555920700460068628206347648169982123422661503567614811290930991757467508831150758818668467185160358645038213853808381856142512861166056578984380971982942077516290713938682308020259136799437562846205611612911585237704139952992119293538714454993573395754290114542123038143898164377283501710729274163248689584613999992103916488737168179409976623242056354429708003908068000959631093417843312407047106182009534576721160527184778711345236140290118293709077767687576682498813097138320218705811696734771977572990181522586505192990131652039947900571699081872884762386513615892898768051758882072389772378453224459017300661725856348370861647142105304268448447058033229644130037910063564434633201456423757412202577275249042185938275898245553057121983921314998158071787416473738381663043373293110376388415517293890292347879244436641308495429239322838824572581302286330098416931643543935336084761352949664656248342072327688292071524494361160208056380259499768237114694271831131095714436571390014788613202791092264739562809691687430182551624289621852648627568927955221131970397865793551683657884419398992159640993058915281739589024924811925297559839646060407528039387340242568305666351361461149730974610573622630026428523598706372663575448446136037663408472006286292137601281930803243716619590267855787649852181124164817603017635937889528486649768453327176689940011783740932649870566810357636716913176401135004548317366743826773243205039987107119436689989889390338450699853133170505991269327783414205673101670447587540241391468244841758748285164934868072378818514262516642338068513347961305213822111875807253297773224565643803854282603397175258266558882862352950717941312302885485011450115660250772615645644147944468393175617921914457771971853511499755317754813172812848509139446780436879802870204493951528355228681994252061452249505313769785775995050696704210958679310337384684611556601058119952637757815178684159289578617710638598179022715605296809971441444746767013364787126813595415182714212101206135035205191847681872828361873307670871673931000069775973812873646846503464247197373934800897743526527531569388840003927124690232440795762369440510058151638333098402092073724262508001367602745823405414780206689563981225099552832884602514438789262660820995405344451908170932062486850152848001044781447318744694012322290996901765225387783159258400618722039632601900469890130808844366288327119858092690072499455653844176414072107180957618045722163199349503032999117195764919218111454294250912123317120403185515972551129138503083868409096228046836338108308942037588518462997767293973115777022218436278507974517025260121145489412767358262184935443321446374988287070028359083350571329683566574308759474694297608504260254558236866517623017242626379371840893424445180621588151107762310253297171527340611985768208650976611784944729465178358083029244972268876960165738792594065044995710744248180755115867721970584734244049849972570848088230969398495970229517205548233485106787561630201747288847880970958527492463128630971827267773922684486443810744437900314197191236961645464376563773156600276059888003637925557812411114176705506911282848608703836496497693161662479465790713555561668798922828988726448885795545530172406526152933814821879336106322557973644359725672094482408392703926860174778505052125110421770497621002812699128964521508088479560578714284793873315701681105944728979504561436322310080114579238509009230655006660750906343351691885742977155585930583135248725307118766979005416849022726367536288464252383943478935991860859961607818141217386323821098988945716480282316085253287138903495819615064849823955497842451939262710352385384634249989854786642608166434185525773720503344951799103086523682235744762365478312103949427537347478737221266952245974013890491535882096660435183140344479857520590117930370073570781616910611022055836346167073557820639528663686285113604890458796653437399219861479454029065231561101048755818475030749347903911128361208069422141632823258910785419872765402731421417290831153227484027473983194077694113811418747875761503227618638063790035992423089561435210911001791617909924100154947115703655069887431741862715671052223047800385153452497932707165758617227438972959734349773043709606969110400927342517953190698559304179748103969503685966042654442197544731605623954006051848899942254667287890314514686519797580091538945629569722297512701214113444836190658161360861952498050013779921821800508315397457855275200981300088916629990998342772649757531077114004563573954148731327708884937885271081024279122477740487671659676234614234101709770213575680971872427813789699886557936011490043951156812231630624118099143418114167048962683058667950674595239849434848018947934359385682968413363222922208555261027856728432288437649147189612527154742844484450562205189667857910145565016972865738189519985114647862330464665237507341448711596649386389802655279953309605567533651720244813019810388831959954437635318456799369028087176538113891551219403549632801969969795017909345978304500800216174041585508014981999596981278398922240188559374168137435451420957896382672593217101913816210701024366561289906818036240314015361047771624602380000179251118212719327667963760551748662377544189908768513093778256520332971720122103704062079222812907084533334017142543159813119437784259684999977465219625394323457096721276297279845140560034764007148366967133528814135989277279151929623008626031534280058464736482793383406201902210137943510431597750378170831163843224029739737363406751325524958460784333902120230976640065036383308533836256421705057803750462370796204449921214883914509488890257368881154191532978546575065035103648766280964217480378233318639636485221636805931233434620017684378279784934918732152823642939676714826143083182267009079053732101895873572669093512983949075054342634588082391941991309243054267319557378256211479160948921884876447022385677429604858249278384156821725302826647399453458269236860072937977879302818537931489271588668082842162174505836034567818836361885424834311951108769731979580422954665080871276126945112916379967173832249594434753500197420788776211133191833423758823634365646281670059090852495114612253925349087755337806085243171987218469062045058304132301818964161149547143241562498009255387047132564958142066042443325571972337127387813887916220967173118889880390600181980603745845326636833132235957741994611418848320571000039827652077983437493243018789018079837327318346183692525593897114030212107697160017033784352726343837114952101316532924642205530725739535994599955135343713049996629708719715685419607456081532404383998612890558327769026167717430213152431266880381877608534357624369803256542665516896971053237938105372998726148036189890284500130629951420974920982206414100179031579447945407633071980191354121633062734785852082868459993779582813512380124448351635606583802865928316861522073396555178538592357605888299622849035529700420829653475050921229991540377673023547761947122781326395209829397931671040484994420511909364751683346806422484637518586334352795708187743695804305345942649416926005754386807635214431795955175211468925878043179225148061059049004583319296221757872480883804399874562230748337647670719372395491068536637361723831688908707146418427188382476061995176942139684202296569626541042131398316932654974840617820637790711097156489937114622783169313140931641901690486836164058438752475482843259831803678699242589939157344942532980721939382832221815189146608136827596225267942666807185611103003515909427806663154023516729754667707750406906715702939832077477201871083636056015131206943203223240726560587995103680907053310125379788000638576207051522140654733465942886167441156510888278633301539615288523337227451479035542447220222146476029993441306338768532924534847965150744891643116334383693547646911740628013438063394191235553797857322483861754669462226543899399785695967604259872761541866504980661251628258642487809800130379277048315343470869596891145251052753905933242887426561889866657418385581859176279373903470751951893690312804739967957090508427284233603925877980724583693065531309604811219970246084829936612674314103197557659438637406074519924932210152956540532367057174088636109678447092064018703596322312590322561763884430064986015543010789400240581373178345994551276871689931143390984948786738522870550484588424147863519162771878812338325762268981163833985875055515491318444479657447023042974187894208450103992271055765573821748073328312492722507786191856172503203884392836039804909925541120661439531843736739028833566889798366192106934230462255715993906227875472370714185027753815019568262095999214727601832458458776988323035064079579100615788897967641838744080756787374849820565227331476659646923414394175039817112464712549149976642035400631283066796250024476056684028385314051721447062309520497184115871991312784957173576793489967717840648204828782512939291573549686012726048171450905418834239145436128321884297159970874867141102223136578760670928462279415425417814587644675053512822643566642606509951719703465120781815874631891821060491489993920039997253525988789095606298896025332873591557218844974842210202958195251816399694863044407915840804148779840693470020952316888890711095092540820699836761033721181946482318387755753081809026444985395432399683108777100578039325522340577504972039534560973737774091454010827382849351029922200118276823157531444755365826388077268681851725319548021587208773616641623523318873341702290061566643549984619575085940851175953736555936667370728258273279387777125718419156140858169637531114854694835113196591416414936276008087458166053803511674525811104951412674846191163875543925179181284215544644725458178347539506686456239074228260807875535596676517949183367468733253286964861776736976070677451328452867336077899033873421925741688245412432772430283528712972759793432760685206364753569713319129075573131377851118774842473863080149336760705216404081264706373426243441326283998827581134794206329378703414942127626579653449310727549263452092385509178415429944597524134010793240621720729347423039717836162538695598279927604879694681905282247717492546822956300089979199286738377828790808342364044178463934328754727107524881483510155679836538291383711855088183832474493165265302811504632809262847607143049370295060542468530187619220383370444431910805875189507987297700998181844158395947418432670524234748130161138954767345885569927531747552234936671746952313741459285901324893259088668268557052329808051833405095281382392137079238320552631695201132586797449873518118960427519288594330107902619480847632221686813593374613117723038100682890566684622811651618106212162269462484946827783533835245963059707230701623118481384589581168466155314467595651254958811797740551390056106158630502755957446034478130215362580508303850011330652718379907173976294162916533206986655734692814883984814307077214103749572256518816057659279110162119847633426703138474553838749352109279858865670340351275373757817953056718408554963322963812311477647836698647382303168848319187323669760881134047151528611383779140389782490907296840699677091374365874088925255178334391088919330558483946082064068595138134753108382427419277516529568586763594532113920608357887126833625666578842104633193187828797516324908538649580171265884771865656548085681071379839293121075676454355156618500822652892505622041330455054442361411395648403550137281230680718670661453685203752192642525387465062302547888112450181031128085174462326643443637859669900335045921939149668792377639317196371786727749636105258872467574687430702705016639217765696629891169437920686764747438276174157859288178948737785824634150807767478856723512905259475845541352604278281258070005708761114663898320814985853982307748539011419671154004040143849302397811627661533582875655932591330760170503067735748281271268999989874835871402276169198209311763706102180307011454003241587023441312449689921427309447827926992812474266531062704172007008393122630840085029700776190941478653604414755667172005787830182395676127401178191105581338696730228424665580552337976796718152438773093923703349775225504361561157924920323142749058709934258492212680453236287535430578352875439271703751865093458830128217815951676146412343600149979735540880464058815800685317969465824724412261975503188780795785324077579128812516206357962743531033270976458938472283642114156299043932800799773992204721963234520032739272415462472505366940579340482184428855221503836875658841445274828346853153042160597139251787219880461906257415073461311589635982179396514259051959794420892476292023017235557915857967730770502009871920073370341436288879873296584929897285992894080907791376910978734485314414365830354580586361525380157259072906264481104337239687492848031015229212741871800641169797696951697586002061312288860956260000240972701754931970570246667303635329090576948172013143579897493852121377887244417890886293059136565830341599886310864504686918444847474928973770622915100121992727656884163508723094432339288849565738433902843471068852524491607552362778735484210299031964702182926829680194504370296633977731596061479515709075936856763613486275287613865170671659132670465924159227024012872135176815728716524686809087271603289173119404304783873945930101951599538840707974756085578827983948098093630920022997283989022403955187801308147984898958981977725059593558892956079647302298665600673872390760463076606472855534961467583682626271696129279971628097135590828882816672841343346641633906370196865255258252914140202105546671302861553513805973359024986658802068019295116546827534094340005557302266879952529930313731220436847382257614119217163902703082041338846863913777265618424641437812218397367177653937011428834955325915823781968436647748171359006021044362194961847716127089840476790185007025889171590917785404594186542699637429473585152928280780386419199011079611911799184237356636677732029025616559234944493058994550132777361693456339417035636352530058835419114795535902490915780667385930462791936071921084501724954784326353419069029982694250953246022048323537751114555216283221925062778159082774659919893847063714611905086761735670577849843682248738862720816484514946162554678161955591856073583379006551628624212987764808815992921750559575962911625759816988633255851680703625980385241937703913669063751636763315654634528003218011129319944596004240208445460219381983314172436030761899503387447921801640406448086465560729951557400316787993718114480466304731771217452161862480402747569810954621902467974914131850796337515704726551225273171391879138496618994898999657705184810696483180780402882172856914290850644542363195309177514012062543124127885561019837407296098894475242660284667602171995565179898256534284052501418902843031202315980519485874672211427430112098396590063352287055280193535729849674067982538372342137628494727366918890593812123333075870410389689793126934652054090824834887431069062777075885864545065284941569851385444056350090975291712647721694257973760575811044598332891624341633427435577653312805104659134637923415684742972595098849720434528730492854078740048348678242235831850927566590265626792367916440824866564830834623441030835585834800835943742963031366358352675267667227129122736712298984294943862112067098472628676040222973436863735453313979518055206521210383794630149364502589048849319004268911213817585168353062520579413926894576328359170782249125956068285251811036097326902120182875339970423234353692772458449954922803515370567915728531612525864638725227019182320150713206617983398831861692879650852738851013528746470758299897087606792243478251699148793712796536469439141028849066780302431159694820917214538599029855212905332833283509181869658179420085618624646468481649013142454685887080316508763258572251012595754992138141499886301904517445204908129727661151403972951256902774173082697126142539395091543803594187791209860440998980301539615443526517497612758185452841063387997056823203645366972628684473509997698591093795197251061217811435533526144063156808700033424885538294034492429117372475526357446446387105559509760085927994081729427712884558178044170106571957143070593136607600279854999003106221407528462825912504625574293113315412500873787389943001706731413254136477634726971562471106929619045575609360379835350892324246472957592275678001665732027569170144467709618410696352759818230770293192479191581822905302216578053530854318218080326647339871855426126933240388604329380254879982859153453949198424445907478289150879032780538271106376890526715250230119484948167343863280085067663083025863414226016268681967391206684292096933998831644055445511417647331967840286171005252789881841252486303269986585206332199047950375741505534055708610754179265501723586229082306266565188749536539942557529017439573185648058610657438457879887294060406412731369537501000533479556110383897870731379531657747657058780788711420061093298055149822132827072868330806315205476387765467753167311590828226160854807080234383834551798227673624773340383045552358776876983882216740044361836468161007370180006530287914317662565223211901762264598817190769432516665735851084222650042793002829604837943986388516932647170814980446384261254621694549726928897481843189640661631157379958742517185116451638864023301505584779319571191591275284201885695355276061153389110850577241798995786759152910501555891015763874190765562343421693670892456121498549831342949947605334715069767501628651878206929024299284986276831390272695084583046571849648172061181628275690598396885540140891275849529161585911341596831349892582982489908708110317375082518892448389062642393900457100095874062563711715573340824502255859854036371830430824162638858167267488811104874714820526847851880472676036604787312422736949059375965510613467752758920084817644510098110502970131049634868251859923847302705204908862908948260852336098088768282335053568585216182258290051267769266956708218089027682108665183321143367196268462904446293315052788529020784257442784594598571923412592144263619374692974103538428060922862373184041366011513238168704804968556142101126563961991296410662106229806735605628927629949840010737288324696799198899882395679658487144778503367893815810245324524536432307834650307858502667549560553934691391152455287449741308380735979597869024413184374364334322770550468314818237791054506386022918597838078499729344991437254313040624135463847849034061446274380701769536131359800154329739714175872824191227920510315426843803998346793662488790885160726041008175936374499199507262473928031522254446847333911907812568090834150526056553180339283214951851062357280622481366124210297190796871037992552656903493833040972064988780496910957138589731431853359535777294851071673388551846781689476593743132761318171912869347802650464609441484716479558616667916694766723474199045536218872268979934359165065107381054186100294393241866349234142309082808512656903954004567630208841402966121110760281461249069936195426710408427301042175874793456782842855749588418347588265232567575894073373639708420439870433696121761541731229859356009746033082583919554622395928346841184670378213203189235191110578777098664301494259237914033344000457624181266971447970720375144911220304304170064789753817392868125551491663238211798117413879878961299208742796281401983359399314821421908592549975181042227421298260881224729620921697692883833602478211458344654087743148300117342716225431948118596320885336295183815059296361257688073831622344953321514663164515859814569656532287475623020593835943164056517613345634841535752086748945234882202490010163896759304397465990965065164239884228081853348666616677241498211644768004633387056753025374058726768534154034207710394667714238188473638327955327155975426291502290601182754248933779520405640361374496440314989057339777940806484943338981549472023918257583693497527818611799607792595447278571330048612553905618519492487944804110116464540353600708058303764601752127501826641650983370613056800118625676445126270512126389081924803794222096390794270967504586594341942024693919080661784476014066158618062944238733568391115192740022926233051816724393232194509355810753313254210286446938102877966314055357727361539818548021798463487852001273488861253931950480544138727330253911387421010846634059806242919161944855966400439346166594945029962674163251833061035158169646783799540977274398799473535230857927316699795119309805093893868460117507203353997367181953192466769458129552545739145819082010400098648542035437227852179342901404411698478365942586697823015311310010900244885214633354456716533511100268789221427730034614050291950255657488400513841786596896709950292611381723611306145100777204478635171957478080847594404391605522285335373201301804291024259686387879789872218304650124964809668313148325825489289287918983691316619624204514051252947876322058003959171154690915287467720525683442483934197552278717391985804931630570776312563308031209353742129081713564072507567462370765860008892883563235341425036076453438721007093558310732773374015303946593409991588854290895834594389886066440445097025064686105081586964081640936477523480142522327033248654317810126449901219811686059408202578940699609729385084335672648154117227676732959116686861207771014004230141819304006072525786068586389519021257712686508541827040357112918244320436560407419805724290870254867142973314183691484457726027725249806613890437199878917226111229163115416403990964391358969698638292438209825268344067543952183560302380658957797494204717728088535538144375992753410770307437947638270779176292074345231073987020130302761912550684515098384598484235140471712108635963146600983957051296405836830156883359057763002122598625614467273602067820065275746656521668232000293018690533107496892999511638566387545883509013396494451847159296631634289675327214758913358423487191897124690208937404580415245746474727123765677858162383140501284184791390304739248089073689992217457680134168440915575113730355051329420134728911371158785343327617831508614880158806174820380872346606104802653641678943194627279109910485749136860209660584399488046832315664894872752716878161800546861264175841178616450064078698806373782893205517251085612399988296233332910765747953441447551712887632461502677315001058067378097891983014879238406242862761736556282038548994146418308400770158171310163847830563243370630841119089883466497033200244669429750713561146164900701282408186555409929048642738782972353216951098731350605232146375574294188054398610493569517992772679058207264570026717627241653567102104968658368245407151122882055586817315477927176317253922426444868144143530482937343185714071030629277390351672253482157608979652281478265613930397960484376066521208227194980210094112480413377834536020107962893787874438285513425502856067274187805769071811350895694640416267451162044884964081101126982783936775651252068923925659550893231038322548157492176187845206283432460891781650941866164349984785223618350527882884895433686272322237872606429552248936273167431878126840677392604430012887265981186313518330526597259654457888102766205216367732025628369074239644605292509533300642731572125931995221238437007187137955935213071753852541809544744858974732824339248630716230361491801460933366825445065744583353007172853746682399999833712302610622987204230121187743371257753990504534062557707865843562994742044116850011967727043200986186931798451827590516406573560464526442523680733603830394600640266009402213009161002059150424898280561989121073677124296209245068024686857971241186965747327372024742583707493001277841065611186571122130924828430855178897426772091559161838447597123124668234091474453540081632155524304451035734132130739612259960546153545157107714853988720527004015174944301091599080110795143604364461577571751611096304903431564868439123184721520780902633254457004655064708395274069887494058857168864823192622051255292637420477700213414117623987952940459815436494118993706972712514847485031972472098746986413890842744171407641418971704862687251458349535142588873340104573387875899622159413655628873687959386763873085083895385432180118848739202696406156612032719372715106498039034092245723565356220321239802970025102460751661564082610782061131338935309905371521585475553927175483093195590044873315289009127059384405077940230443333947775387062415054163431062662935714312312230182140899253944387175741285021803713496539974326109495686588585861838126704113420458843251995050803236061503786675170590585372296023660590452140563361831590736732814770102946139035545842651488132823206009988632995098192625067984907001787669784069690339402748358909168015027836144571686564293410171285032358630539279228558945018059613239929707831154399174428540548290398629164463061373214224538177972710666777023282231715005608550663306907665174920219730304758957082867505429686741308939335481000305757797510038882400959416354686234208035097805294004209021248076783726559600502242740208932246976204968306725757967915474405134610296934478762374532890744599923990254630098191506641342150665787277977036645154731983087636672934347425886763138809582033854638977781974794328597382190093061124936922422608489303104968492748899681489808498531833186587708272354535029619876681693602067087356231369853554155038540767432083595572462893939216963869109734644032492553258076850770070303337594307299623949222236324282592651087872369250420713976164106504471095018628002758822052016577037552236710933963863743760810146176235658919095187967397268887134939866319602347207433859701028122397966924199443487584855010033692269330340343199509305922082553993761398277096261561449647178727831473263393133587545008375339791250666572584406180213031599026528960542026515053496616753315951286752377180390021914832322502832828348530195447868663282741865954497094940422680009283746890959316391194402905597716600175927658297869826803210964671144523929345425978785145444724841942926980758022648328229025000812172803588241696927453811258101396629886351618550329099982785438283586551765171902761634279083584864108883636884840264678648325439759506382858117306664011630769062992591345237606768992651471011759916809048197842439519319979171695549430470878660571124081136896570719037296285898978832257787763259940242874317717951985717980124826349407936327813991084280443008789108855350131319643885975970620133618033439243741419622759303491943458104524656223229327506804634187314793676544107222503051059269060085982342615242590127852857103300298827943734447731614175346274375696595461070788329079623447816104575834570049157728963125375063978313187784416864124339990192538086727924869780044721301646540772890801798000080660512710857927471031684367799520867367123775914169236124855666722893782718291890955183949330359379182533925313397228892070029809964760305731766714785287022510982928386644685452292408701297692142827360749215724912656773406178046511156597519456716085520186696532972680667360486589053989347050877038749908666965799051295770962499482493844441349565490790990872923404292535249108681332143381728858324031030516602761820451573934211804645861829926764867458324521094899604146458380086845333400078952720678862876593665857068825732381810756810366071148236134319169360784561586031737179367253447226792273841932609549596172740361414432910379240760359551871701146726635940301803740875851943354304271619638670226980946163775274864711136181700876938339512030811789591760613146006697428585801164449647038888900989613070007891586209666753823187927655997851993656186162729614564310896947831169520570930890987690146871071393539622696961771138888824958463185186594222886503499918817727498222498453535545292418345530996118044250382044402351933504183554419619559354676903671875001613749287834897199826603857906520403552725663540270560550504014194427546200834287316705931580811050216672745103993105595441695263633210358041573531807135289358594525156920397362059722257900610686334375082796164744902399645338179566119507241521050381600763168442927676889374116031450153393564444182705380910843648063064311545929097197537834929036936073377402911812189955800697872254653526325975600943883389688767138138015309410158691613515017172268412306728931966724701277922318641355715114524694113890038258193619672443951158595741998522918358341061236116797640065368839573734815700494449695660409170699772860750126588805595968338275292192745973816606684715129648726405408209005552051662078251639864815274774553426891956611999229648396869478542748528538696829144589117252551404649351638317537985129765705156926722048797064110187896856877440475089772529773721904616999911503884855469031267323539420059600397292065757983359605932340541510757428658328414808689924250404858667169182597030347157403793870416873354552950339909910761539159014130931436859918274139730204569114139876460433548353194461344059104613687738435320536124755951524144611513502676056945846881780528879301776914247537431027788926556451034668921020776728455392766308726972304873219831779497733574305799357580632131731276132430125337291138491390926824587465778449120548016909430942145672249808542775179010374606151244117494785263737255131578504579469416117551600311813716162260142610413754567798371284722747963543528832335006466206349647932287913192609442432142895900584243417030973381000123539005525622698952856732109368772514900487194072561309224729310735072865419239045433950166952014916746394721205959096151412078010618637115100179588733311406647124264239497774614230974752615172669016033591374007348261563125390264259369901306981800081158031597612657150467986314956275362291859179378695133524325581978904712223492528155671267950442638974478658388507666854282093934478802350895203243382647125796501319420393976980604537645031213447616292148733450067432829958491629675408871121541936336001981629930456353781184604166950725016277174125664683875880711290368321503819247971115465804765177210824098163335801176255203891812634721196525125940302189440291948813313587725960108985208269875964398600816458038771991564946542570770806503572024014456315757381358950956182681862862798211034276485842660457494059810714024191488215890250067672993097216572950845462374152053050182075781511321711658781633162385680998948254186860805018614983600986149223784999632638817297256511032331608796546807841750429790038968072049185356074272419161355100726128717404126613193225269703643428129348319609396599014946540473153311215271360731888969224258823990866183178067361978224918108342739315975256259886938560297050810318058012435583779182888308044818603862600229799004973872892207684795453069506904517910488514306069697771814993649834943346209430833287334403490812734326797329251970296907140546055308235504773743487557152025829351046691995317301755052457198049945513431040385306696293499416566497992844726349474204018784790328093106324977338107141326921372467983350040992160422136622317276733526282071102639178587716634836664235366079681622640258108983115901229856853216097656877371158326760708343423734388267928229401919894326520241657024300968841380244098619552593921537443772511500101200929213176273549502445122438918384373436600797766978210807888078303221382482966142686766564503130104485839653639639546142668958548035773203190599813700217461528425450356215998624629125872015217854580855237479206339897667766089868007297605329371873597962080912875192813629483343260001956981524974263542664702190725634826445823635543699823180606245461005103561782132859696096634369754254816693690836290236339767773351495152543025749542401086673768493889322316465568739635619704958963266095916573927851080397239634307660931167098896528305271996126504907751944308724660121934466432208924018190198331437423019440804207900067297766215979175887315463574054150797277360840067501288535804559930347798637705930889887230741940838382767310868236072511569608895052316863380744117493780200621509840750933257683570638806094223987784658955467242654240021744405387333597345091916621406080589646719914722859866954641069492975467891868545649569415093310791721386833048406086204398397851728204887346182815384836500673228881791665029904656434142143548026818455237495201116368727472817966692102334249012356411171324413058390174005756308074297815044806404637476034958678920821867142819189026753852494381895155776520607778421310930818496478642630861861302931417943340833777091409197823638802260328830532410300312141392591229322802494229475954590012506280631211240266070374828320680938946424646622410632268770228259073015475506805623948901484081879285441568145657831657001038351438731114794988214340822123009744254649766815032816306417099880386807642509479045745507392240225071482754123102105450817501415798058509585623798707428607315970514536448155834509120548409636528734112000577313470717303578103448629319249910309265492051762112455946917483339278762812412469556590034990705103429424316674936448418777333685041802469546813762434043444011696109511609227984550189544840303780244615458244486008386744731936237161857498733023282986328847057259589357662531745810653163541209665323313655818980037410317012601838690819300645543922449004578146680880526266005939305587419086287023123407964363542869039942228073586619613701309608186996208514801366149080532371946219666621185657406898537487049214916190668325532001704641832760065377761570028346142157893181810731867184698663265709802192993612619874227137162171033368663406067978241776079647084546801334279857573974759674674022775496420589039387917456966507074870937508217642609772976026236691837678780970530487271262954591627182459814238772315337159404465021306496755787590578520307172462922001422621830354584517641226215216479255986994072852529339726898431068931131183950597314612080964646621841336695511225048780103330253944979869086422406706525871133691136705033641419272671085560376761175241776216168419756161656781019224471252765062440857640880619434205247414910463389711003894033703112069733126633132650429288110938549634774013722930009054897726945483803189983555819827747134854017459862314483400853171976733014909255479798329123120925478543186369730365332506303861000225493264695473376174681950039105382644060327381310855466265201529911159852459328951846363098938586300370695556081774181537099555643741410324406804133663595981038904271499934022939316880112564901875998565674163607657711323175301252723183244333221395670768778919655298184591085602413137459694700479851790428897825485247438723639084416152137616648460382659853411923890748192996499204034862726664559602690504929779052321233785285263836685050454263221731142219963243670423020100193616356826007442345086652550999161633453056404372324947924460097171481286262449435035185764285045023087321769055752181805339340483894249555800967023965889555192593793162339261957184936777665852056006329470108178725382276134915945176886836449594316522928203293440284371065488212277994920332539652232050909088565965319180543888633125501990566290328868411592890540908934870777456154405933855223802132257670753344158926699121515291317746092688912968187598651216900724414626876708648138417897569768661568061684496299597008829229407190809254910341366144856523939646061759946047681669095833888746506942300829470861903574635923044830840674754530050246059632663474939812251231411431273974842074463872277125639359348047545962505472659709618065047433092061583575870021827580374035222323186300464564823270314815134621328631228658543598971902951995450781723420385997088131812539605827770118482573914687577128537339941947987011762065704779597196357415732946421633071897637414569333203345730564615106856099836001778365349233427690905943473212622940550243230148581083718685407466322183691073552762040263089729158688821610313861847410760892859032789594427950022496552969604669225004755847677130559221441767889194442238756727818780718317419863899818522503828459645436521848718909648682328445753114278177569069460147459056397975482795092052800021335818586281360654499784169006441862258062793006928677872593344004233429168324263375854673993443846616065900279363674670030569817647986548007326237563379890927797395496135467181766181360519305626701339541253525433425628956779439253705863496023562265531401935959736250669868982459293805216751562794239043155277467822360970608277153285766692888474436145467507491752720333986080836126681547219479692022790843107069603978760093920872063818993757240953407802187118580733055103172386210950420146248503557197874660401176744217012295888607516525322602770987789102265284154723548565701105195866153080646226635096568671591918272060045138249721832872963673253026802660607818403805098638665157142075117330241781438294041374646604827901374180134187184098171514811735605918961296415474130671719296883617893550354718973302144649496588154237948390791889093640973067997759254784653000246557372337616186758649197676604385895493333066799796060324560030922833502857704989534196447811203565275859728862256943126449109376676324632317837981331762663710881970740688288297128486732039505252672465406051934423458019049981876192125349035909295914589536007221082726705822672832361279340652670898737553964392491413156988978027978866350314263035099550366207684691657348443262691890335677817561293214522446076666702778066093674680349970406016788797695657191277605241671107465437903172320971473842377928583149023517860956691082066173015678895934176289141231625111205938065597171473447251417163435996514755869369838016096458098282999764997243553319331046521690081705007893907947105139388864400330080018917451511294304962953442965691534954754859387775278306489305189543435508221622950919856961551667785078231129791557054489693156252319803711720283709185527248830521776516621299702667487533206292777125099146214563067777105807362831556236577191884348650059381350266604908844164476060884247773534810027203341982951125727233031967303008045419017209620289263814150133086247152526248535069229839242276331216850546298424320209993680345233000659029104813532305530961072503955065798586841693682689615852447498914623196827691847419169012165957289555686514280616143319236731584789485361573580262524232773100064656922714402696619948922496738238040160966899881513679114839091270234736482320326589106075586621942512868822195369650640515427516890734682479392842060804394915471101126706107094141392780092184549530698856198922207767079475331069105905694988539024360812794082946982073620265600423050890732687773633344608276101406495108754063490869909601550168664952141148813197143114906188924457918558858601917361733140477000376699062380264432663110934714911913291429696649095965540032538211832565692721111247462938041301360099678652367856853263366691720113876059918987580133192881577760008065788268912527142709627232738552748605820999036810819814089014127213123497076090982385514968870689357056562310147063028904075596306126551550605622343962405794538602330990923383601243307921608425183213633300051361523884255907121349933165244807567991498140586753731033222215451115264759268387449087189615210508527797077681334327822851400927412907178002022327702240353746680938830713737972851153556085999772545295947590397284629310407708353467916507811169639559315814743942902888629455203204989303138734080279120981648261639289441994400007291724924256935816125190826967314368388981199875896296946952978099391074587839668640577168370354114956239602116879693361008941022515578812371600771045081460849066967161343991674191601040167329669476193927506238655746754132237333357674407587859051308422900862732934952815223460582774635050228606757444378790158672881062391943118746066811599439125298738646744372030192258537947676147211484126869945879713849979223491039194107563037813160213012958155906293558380972948386962402854298583170160772200852332643235575121817774578217451563851578003402831062706864529445998450258741285956962994986194611049899791105619630621815534945680057438438691576411486070639949210615194648468289329631733132256394920276148813870989499512280653930109828756938468992673362270993828221648889478844657919399909564856284758236155232797055710073047709871420435752329131887928497947386921560660625168736630132791029701883007629082051605795158812768548196330205069703557230759434433560728664097093909567306084294328533169615595726728285877005000388828484847065951244997359268685632824196959305548345763053004484809107927734366697214871758040898027053405115848933552170650179410694310441086041516322854066413947371598238080548041161315982150464831591879078837533845648208756835901914370507503913175753930094857424284322411039544550741527285988916922542424140628411874546864736985004341462487115655624576577920799509970416160944753627766318373402725756610184033804227298096754838567782508958487227092013520256330341276488303764975019127047222378899709219083119695210167778119938445720286773024668550923874447140747395216192306324070023835002162490116384280458760722577251509395813346120375234899106292868116900516600241857893536229036655984708153738537541291490063750822458303467163138958277203786461287580482198820840526042913369595178437126144843175652964422722619177115511771950422078178727148927092994458290744916939333093434068361604483080795812732256517940865056522578235800113922178548123668831588321018950436834023104163194338379671653026834130328269396627234391929244916338716178875366743996812468466759615368501338158076949959560905205304468511563967221053191010388214316049899227301136702049296743918945402735269199150711501430303212107875749650618308685668371525904862601097583747253175303511679923179243010160809215003155720034061728829010790247180751980877862010478988875471415207358632178354740987703463558487127430888654553522413000572455522316345956588762240195437598312643680446605016552556983770379003058268216684784027311181955048406277771126977817320227829886948672776788877329893878672082009911812804585730136947242202523442862873388593813093806915986596581152265322288327546964420009075738121674764539929873598889364300192057744737008887848954379135623378104084435533600258395299020725572085558289337828862604182918305657521891050907297834800554142419136097305466167639831019143257346559483532170072958513050835597900352467035599714874083615476555372604219706821285678007579150574761858643458437895435896283851330232500353920166028361800817947500409798295035150968841055501675051117517954711677399814304035418066587528356191724652032795338852476537255577279632041396225343822751930152114802411320210397285091909348945770601018418840773362706617443756794302362034112659270956841420479414062970605099591266546951442231551924436928783319385000874616015995951756941373872920719958299840085602345077299652034007230365925385986736810581145917173017148550906299663948977435536135358586527547078750280145237656006690665256456016012127238895385221229059324695722636960040381672451099199446510247865392689551232950884960507935224936196103154241842929610203184431228041891553169721760042183321742669724724463268441489443125951608573527369022355729277905814635042137625066546930267891172493165924519030535886430375858355552378964086442084052480941657596885464951673302694594012250646257327180452587704040560341757171327611704505103913698214513966083043429117663636413356881744088948494589641630662684882725853774418437796032620513678869127686141225462539690425525232772218058644740584754729957610625603805993177520046136567474780850182025973618431329071531569602800578203223187683896997427620474334850815146650440645814069501423425421168060302699080031784888272774647172843724515435786595512337187842593657123450377943361782948013071074313515595591364295241197576406614603110539516741275935760228037622713236134338180544142701537814226882806354048761042955979218748873049423548584691363173703766253615480766218076207992706162425223198943808888952950898883079965157716511149253672174205466588622286984585727517728233464764503584440098014507856610817560379112957636068958225826947082324860974681217049807857382739367999830812294327814685382450285779149958586403591604875322752570065840428028370658460200872427230376025702515446803562672981920813003803002938800066128839795475010619631737349027577649157398784629621564269721229920294371287370587860848579321383671322244240907331082973704926391362631528872072894919032360722837515392777872114694836614232592636985765681243221240297538707947108484523526472097393464238616614811371762571848177832557884360345651208961232399508321356900255138573050811055073143401082739799083298406579025398380319039152386756833251067309253023375316883492792095753240518045970823955666532797746488560915524254205721451814371647783567960565979993372607718333497839790981215982268438441363683634187123467773206608707416400886268089480135548438392183853846553095804024679791938671219025237793858072229131513629433987501173383501208930563213012425694623878093204690498764001424712154391404480267536416927928165757355637512019812613400812848006779413174749751123838335568048465662493627230451153904653671169538409091786913790106193757742656959517702306311552622736024232798496460279782090511850845661071320845938707518117466714866457169238806621246643907930392542699106595435134276079122633524617271406983839385666458848506987062865435174002094047753955331268521613851130567629639620228891758444565196213186045471714201153529901508403379959715921419947204673730264527658593012161066938454737066097747875586071973465120693056090970518655644983110113060192537518148528307041847931238613292386439329020716839503927381393253115204084398283451412566606814855906852124457327496995302947923217725164690330757310242308562487091784826679639822945557525277297996570813798155320514782197103946938763351197095686866442383965608846096151668452257907995107312731375803086234382477134634163614002234349604187289281377178082615284711255434558196051005296054167814361493330136785966005045251443059506415327660631538133069920758400334620236610639540406999243781395377707420023355400899439457871630400990503183915863310175150140821880505744886436802863529425518109518716369124209234010933980074185026611229892775743864454118723027168444671812054996659386514018488569140534424459371125657150068663225769310879579207993336868818716811312268395688262317265244108602664474724729558596047415904227208334119132201147141074989945524802625395961198852540790579483900743647121789466166813213204307758765479103008952528162847636673294524197040541420166638255520827581654307393385940183756014770323240200497350196998579774433231263789022146224948952063906780796612663663807515699926008916747125311953071035412027692661950555655430797289173088619902416988289066498846928497832719438977720709016795532435181912348134126809569525820180714395859878207779333385253682945250004081062603505447092171095795266534480627564671235371868439657463646901055071049485787337495013681092407300023475666916871139662201601931625517796918853800354093227150716730391532186066543223777195053481985169298194497638369248494156546364308161830667578097242552385036468611993414618889883895595508812607743733441217478682186892342024029969470838971545962953628406096376825736793757354775622837496255952304574817233480856014755981369046190702262473677245227705158632421943186585128189664922886115265092404495846373164900482072536792560243034860204006883314239449147025431991834965379673289461514222825056993841256476276266544506954715704839695551121685503668346965544107631073724904195214749803806674026402411467459662512328569252316324916678729752968833976929778292816076645399838225907751800284671472489029180860998846220589542955720244408348360539470335238676342916126498129380231973231407228320681450120935444439459459991506060827272751309889940809962300892084622621800077240178236249577013727548557025347494945608408389365143558992076566660514754754430235839164277734811693279689496289185712990493799123999067229722599656889136107461574165819968459518459155946809654014446733492970094099692533754396319861366569607958865961454353647027856082503771620293727344280091662621479910356943309145806227771398514782316523895699440592322316913854430754085546404760470271203588835449152167076154620223840143909199284478016198849869276208843500884878345279683107235302344296565619278755515862953492654413622944422210022698939175420852457010563473120736320468162961716339761306895378809746695387326418378321352501992879151278420308905567354298334682823412530178401340694659503149474888717256412044741676755310499788104021063605020537165009667885924044576547106836895972808943909818329323518952951703175985517745663319153291088695951038002422936720375347246714434038913570463978708985842334883050108151162850923062381203459551939944839146028325035229207143269003266794470175061888463751121917770364156000123579334465788165467959467215090376738507952264305739117337501448881445821286956429191102868742936031996218619950370050513570962082666478203518307262213095522782066888727494708790248874303623533043396359394199320002986428933900948877654550611880986689145576364629273820025745512350203483617926244673549074681257842326105442156814258266879370174879224000265460969737461189725131081971699427093139099626645214321804976693105055409541997590730683437429755953875287979720997164848892931200777001264417075529310165691308228266863433670153263032877683300561007956237050839017000921672692493164225688656662876357918847128327137096800928380472712418911842316416057187475114447397802310500865283098128429190204574993544086608411203961879325905929881775090767518829973223521103872992460077842512138200759523421038828492397429815991711743492812387634558373734222251321715182274066824962076027530759865299920338634413773515348990131135896000491991223212370331085998652887346728337899590244675327420777688083876922316722855071203424494483757694010008500325811703468027214114492772330522244841118581804520051013133068111031324770838945970111472697799420778864728596050261957121546593154216654623028201871824494223250995343649669899458865663803987713312540131239671787658672701884592206264377357492991987631009077363685770366566785985399528012600104048960150983275588280042869787446386234353148407661147615925027990892160093251488731070929064664813132822061209308436712334740625096458710133228687169571686804069728853355976878440948829282936056235707707448287322869908599214898575976893112948242957017264681866098599732916675915012383011363151231022055247872718971342683089146315009735116412258825035081394187804369307896878035135908438324551551386574858220880648551590015122671726165227734618955888341347878065296885111908018043345146138364361048923784289549986932090113718673623562539298314748696895067294172402360247566799896160631469083554717655684442524866169272319475382961144032743703571213535246165432328680103512458133588506933038278320708865865093546552408159404207505322794066993446125445958307536913264637530694538165876369998698367349295218637381381211305104142705254381401312211028227517989159643949954161731714112133460896617309837437528537499769683500208106961842900510124306890211232517113896195503771745496106479952512144362921574072915609164988517266195858293218223468219613703048244364827910025392380649153247757446864048493929869416358138130816104647082358530085931286111943012451852986589478920811905134772754924710400933804313054959651341564196695695332062080546477591362769910932025649273906275736953455526591100278587314244483931524639426909821110670683137769282486842960451684114736652675525488778273750418705645865389846432342760494456374279143521662546559729164736874001628230076088098184256978766395312657697163460307842261209616369886377719619403720888661703114174757743276944653863970219253430955717187745653696204649896009468258705669822329695149959893002656225675376393450337691912848601997240267325397978326021732382183125628154799833587843418514555875172677837329800505747389288451311492171258104654261896699707816198326255329646955319890508898706088360111733598992159930389683897446918440346308047783479863351462042563475254452889214919551744154622984801160434704121283042767385714476333028398763696596274677813892094522838821111240751091381268469389498084973968413266620724081696723771097660057459443965636956591365953597985712843036494905727046920732291252994007862643026387084765659975201386706346626850376689435218573105275133775247488425936731456732613479213623265555188870803709525440021856324615507071199791396703974506890995468637062263189200728964807617483624074482151575272189016347937282819070727209736055726450360184301931187011667724642527460738430009998856609378937657648825482920722268276482067361742101745971348816801732799446174883962666521801129212401380092781232819126956123001600968220426038671817646566922378094485198539787435275103472398583984556923513082627477470104274470701291724567186290922758797705788871310389204984626204174015906194379875975180799640729942026742916760520761856220913073131136905180617611377008674563713402310601677638312002839482988681704042686237558089041398216724959604585796924908304911027171374094123093124390535522376107896180372247188394839619435585445554990215890862202629525166420049506168727182097460954131357571490693320908859457148226340126659441409256165249121622298877128429497009729560960999628585361206537808075367995108691521611186021154166123089852664511873607312287769799345204855076277979947435619055943202547458259329300863089725578450721997593457454180106493619339052626810287322340692130213038775130850855906213427340899747449724178364847083579724361786771435844708634319062200066598740894550323310832076907995166057688657139570440939976274444702953303564681861226876379242444188435070462284324861153745778657076302486255024439961442111875209426483672255360739872798686408445878668897029047466397572149429505068420325238633040331496652012038852102100045138837413356101824208855572505225703609090718845403540230703093363277577787359621090567123996374067402826365519480480899841272584750572943481550275204985459227624083195975014193915134738510110404209517225465546264681851029938545006447307476719627601087312292662727104544307745674847516503083911824678787038741696825216612247950797438145151753494123666624602807629664558883755962732683180948028833788462260153358118013358046244941342789032597963331270334539208275790355894373810370110362182797504775231302073437229666787526497621109786873639615735829527023691489438605608629412406628944476774583624356624223877986174626282041781168793116616875788249400994678008621512961686405574943136870510997337463398391469381458985016592368349857343485024474635689115383247819128125447793088042651726445868048121255233154705155216222140451632197098647849218336570958888441854313802339187060406239411248154652581233358642175743158201209441009288360210404342603725755133602345658443019585871160509376235125914793753502163509370952848871453335768673966368873679769415863551229422612785746860744386519664365545888418943904708615923470543276752625290072382527896815883299667156000935212862647254046072615209929235113000023565913789866708863267200089890286056335020162463794915975314048629062466314061579712308579810577852222756440605781662762666936501698067069050535852063919248444786137253001326599393791946012397941706827307481377773796110878459395885092897417527484049766789143035995410494733705813801569149063953015140641229723192438804886639209721240495069197737474404050345769529601165777713627340466474509756722779834976997324025061907507970590486205266935183953948747071912144099174449476398305784508765139612960209871756439612991385661270504905948431723203640428703778077946091177805291029075751394552476856491620618685512475816315450866177679183092379226946566326991919779398592888419163804123228257730494354279641720921720502784495214900401253972102376654875059819022173225202910369580752071796287054392497090755547683505024103636098812058595427129665633025061111545220786828709016983653074162599287794934264115698939202604816984550736835215083086611709796699080358142778481317267132412215161450014650942560017458437668045041450194922236453782666915308937587675338275665090686932893323715084807113947582564440871925199640636449572662281285786353092995458266867135426733104861504390990834739687317736656911159370869647562851680855685174357403550584325541841959305509825350031130463793704363674502589251462751570215011501356390766949038752180883775591862502781386131039774666644168986970432531448260791851681269813311941045485174083682934382692397273463871592788435155383932180103538367104272892396178002899208775528697631003644614151656122059834218510736384114498173646149126566449119811137512436545824282444308706165632132259727309250829786902263519837142889643075055881475288806888565074421459526286748275105229590562227403868576879960340059459506865502902867629306021547351774477502615076486434095402912918499705915316182580639717307700105253932257700066769468948425716547244869511624052298139465975418593379186508486017663409663942173820863693318455388093005164429268510453297670471056062150703864786991619703469713497511842431805432301799340904208606370319979813034567870714463387021920813827557801188495191005567135743005643144296686841969681777531270028815034206520424072180543266808150062184054712048140190922053070623083655230143403287969479532723182311769358281006567908894364303957042072745723963936529568478120066144838350209770135596027009607563664632277217220554568179303687223516269258137131377950717117208564234958238595970768339367689465029588333384079508865366248480973433759295000100712024700160525699402615445672615934559017536881034357299148669311602757554344861224649990044842982904840648104116791838911378122260328972531344406969807928017820399488029742939181846708126713287037348460253984629177889642956660765650359808501892295567617363883129687196342101690510860604065079996596197077971603930169071316855255908300743454405645075755826236840453551691550371130948825589079684925941064432903086212945594158025745402469123217182850003741694616759860085253597203674001062991424450187822057403549175255613653007512360607061414487901788510206057514819639795674416932898317734860158832735108744774784852076275752573007979346636366310356366957263543839915523026204084284147151503545169518440197987332573991293559643383247553888231075710120067217203982729468468880121077436593359360241638375697628647952224937684797661860055917119846116895325594398212750629554556273053772533421796792186140956110259321101145214497583660724934708763922248675353608726326792359069217067929450812837420602040172967339771768287925380673022410506667886885069897407180285802491982556058925011603485853593278497741466431213593543743516152373172520206020850551095845636125606243362878656066475313008933306810885135589053193733079845158912310627255082294904866133111370271123595578690818765736284222790298102313163216329181233829005960767329429714720120887122589789936353580822302169372881651380081544568231926002221605754083451304306650929750715357647097605323347571612743063884166102540261550901522579195390033849530315875527422638348615066978633678877589759901048233019638529859512284266816819375189223778074322790467469798507452623690481386301481213066100359124070748834212561414371127226238063102689299949885174408638074068443416336991151897172900091098258117494438649185848710596396436826026277315998728415066301920757613898125248538862841341256127484166483812204592853341942661842973251097241967815344589825611782260545789924043017392760488969350679285875131939784741519872042329395505304794575087597619123004575798969188925296758995611538142986944093121918104891843682974679317843388278200680883689147692363133974876767562802817744038697583319334130566044465884358356234690480100631043903533018555361145385402067718750601043682514021911659722846951614556084096767232334712455694575223034876035339778366835999926334933695942948452063588131513706793665376478321774247460838417830076827652406337718591504365737904886855258652141216355175509627854584766288223026566580015355898950502928330528547003997775063154617091021565069826967331402419463216570460752971413060369733152183298953971204415198987365392219352043970656969614212135141952326444127574383455760303484455973375558722052920418744690732036570112009189478132158863932250422302227673686486667740649175637230526392791668281168941213569702152057573304333237742919073569766457520642285459438500923035558935156904060559119473104451222846806478154905529524380541169979905346961451706236642791492722641277389736346056220501453612664239738464391716738468961519412905556008029640534801561295131623059166350660350189222153938413703384155903925324629116979156123086919139926553619495086514154209367903981591063600349228186294078945859246464657664255719285817035172786817244678308280646735652341700421191121748641118455817257178220063229862228790098559819109707703312110192288153087182525754815593341681559700417539505392252103348960608054845022773871235021451224552588041252009964292119147587224100089147841515422045148685388566009622573090062897137767568255470217032106860800688408369879410857541504458241892295495496778856173645464934487037441359987230412727398587993581808495676585818362347587415868830281608813005567005377415310061810247031583285819978175271970094353867972959964941787865520234885510547678273339255554275406704363728510103962921865184846700031154645934397515113262135384549738797787349285719003333896343435168192564071732931504007075163745887770064350829351332313459953364187333145547605004950607137370503495777743456994230722009836045776556328753391158387349080829921074262508688658175982371429304712993884823995030098171469881120169139329648765960594712556534900640583111812959130166310582811424160316024653180361752875158926080774032226453921829744549597573983200895682242291578925887573856505308021564370122016850017646357234169304986414336440585880981835770187942087937459438496361205322425655592615708090725288088386897264405880974442476408420586849646182307088412504053599342294418963205152316761126737994242030439859588932993997620675661662156845745598020312918026054625883517557224712130476282603513095477865382968275504213480485124934218987251200645804657753820735199143637883795959665618633344893697723789061772696688511727096581018131462750154040850509121868284750348028346290253844637345855058848793289826038343959396777563242652959800026924253061525060718932723280700028882426057476704985607411534513452274986542277156051820849848810110914833931103522649400267536133311466996487143083206072748477128615302401581802662925230427857776360111462113979051330162388749238733125782100031029142895567894323498689676071391099923415190577915516228628669593933399221376520914402231994792247783818036707418053831643228365147009234779289423736781129122264629523245604889423010949626705174149877011254453835516481208820964771029553308684884779050619351153559894577528322897951084905797989444985726797713426249440802770401013217941611074106073400359213827115982863945364559672748905282766482960524025671041988897354868552597022391425141253758548061020780803215697808251089251901215504149856654491681914064456239950300005528042309048342677028876835920825052828709724851041737829669050345788310372525264951241362597523711245451206700495444824147619678038835504508614524817302383114153566502924089036778846402223681583191761790976895473849143149187953435520160186451665982113874157255544634966859733164578914756402811273168397403909257204685198171647828371996837017820292624013305797107064966356248842399679640699179714013009652849601877852034429585555024882427925042952406869255763237097833816406291780655230219021392608799206665392543522937150960924596438653369813747219474348419396486959583785675490944245625837325303045594158575923547556543187399967812611026275692133692527420031529904202010115463851742843251012007966191918935407377418907972885988436376970888192137530924377776595687077107922815388196230743006940481800090197276390918679536753813281302960681471376680734210334381948063787589096204140749718690805141435612630288875083461682798697295162306782777159169794853169980330920812600931301368283746182490282119995488365387640664914714418610479109705546203687324897953664987118983472963798176974106476807860913728043016456611457829251503651012533066365787071195262737346400480175531949760856705671562806300887923234972264869774372925653595277076091439336844825221990962559324347887770659926866825018792632077274966061779963644174758366653880285477881975495914889542436809256476546236741726819036354684593134727783183539479698125025959532754233997413212495822224516357964856093501738950386971757208540126626062531107062829339369855938701569434373628010910281551097520989328702607838749325715336944732204217230789190987244680735150832386886092338524097114723678221475227495377037923521323567794482214655293584239004791738701528816121493952928498223871277414421246987727367983271621007406025509824067684762023199608871022571550942587792389625831136625316769834501468823301206645699278323742094657059076439428513354688708817946806404820665679014391279042634713857941122710092479079515427372561344980758792712972579830146916927054693908691231643181055969313223336002216048440333715745055104173041366471488071639607171358984593349470252919597058888477091492368353541911095062570348963979551355712857517570045062675758839449141940072573606781769983863437890850067712355352502934767493807111642891272024167670618924821221219725848994663070176338609492360140411318288050293474570714086361351085552412263200825049079404989185901007712200987343806707914770591280238294142755531874545970466754780145405992271670165273973223920706178869568716500343593330491344056913654217034563804232392146551452456814134373941886762192019762609805074326698291169908612815677836406285479147366499099105608456038487686388760115454662802074414574645697222380223428054056764592228601827482480378955861538556603002992972783281703322395836078594361976412112318259065879085039070259720401880794309847565938166663669415082988827659449760237400772860356784010866646277980934091391569048261566530326305659640078055611827068182720104347816933162774606239287827835544057716032694900885191370017533064884894464308340983799068110711606674903088014370018361036496070183697326527188007334405831504271380404129708966242133904887102935591682301197970836640961181743332753761105185692743892321262865437084431891805360868871953838917990770647743099095193418125334149853100497386376010916690291561980176739441712218012560540915658812900043932533295266200077686446403205210234130618832397999104903207685608294816314902566258851540155029316367446849146879006481870792292212110966658415210243659925388114796630089644917275106674942834728660290033401092881667171295334799958822139555121075997376746632140147799894875259766904139204967115261392090044173302997693626730931838746277553331962334226188243046330121472075458335352212183144759737926928730205817073010084921314183893369028625644821220732382189273195447543540560186492182182929372890228257089464401506407934852730252302291519173084183329911899229809659728343258297967419067346097367885366166703086961157630031619165641589429699102191016592085092954434223195363723621132346229314677863719061596978584258857081977738798994657956463669183426831273942158314905375828138287836636841577014501568159727248381774267018475722804096068363102108009484076659724942553373287916036394213427001496044463380818600396602121573772706182626735840312052433875501992446926675263267180866693795127002595742026894530224108674492221237216745450682794585449986276988069722568659300240341553422541059832206748647048327333699602262028341293074830419176496780900951210803614881166506231110388537103302532479550841759610963110412555883908866554414733603407868196364045987567511258023871007498435133004126098706659829406355955086590581040774281275930465668251919191932062632540971080207300314864394847315668408276252203321057106636714809273972263120385184325324997118320900222744375367738853963277126294319615205212482625389930232146483391116740039659392023090648660270041702207371295262338968956581872279163093898951443803140372536988317099288980652803413098360265787510278479996711050099378316420617300839625307815725888626963929497349179698747512071885463093148359028398499822657442074901731584416034950028093263892750503326212067438720431406929616666638475144869221617708941810908391553137700344297681434929412416739803306162286890265861395758292059192140780553458532122074334542012168079573550298364707906356396346449810546966986730825910474853489491454081923466509014408299147930375154581274035234937959085266263943315989314647845692756255558391858505277308480222280875591562958543121635972463465882627454966210179660799669016742479151955376913879732054097153602682636777822854433113264427409641559650183074911500933891322198119259015225210475322469956580508863104320790799563110410918454717692780920353508689943814180386339409614190668358001724051063075559702435021388863619247243945665437742126802904055671693322988317673009906277955298133326917088301608225273745355872257928341170269808058480971390412010550903452639125172031546388694540335256862819012741204312951987469583486100335751313036082111649275159923022623474369256360638126886915955124833408302977968228784237651817633473863250909202719170617463763959887801780386527150975907528019864458208349414540477039330434721557994996028819474753613242916403530191815271034326849089385337260354876313524483865338316442061068933017850558691836164753718795379127570311553352569723184884667520582383805133520777558439975894234315285741738969785647014505324093308985323496562812264749609184087104371743516304501394015439840883548097714631208846086665162694060081635480433643133333643630563984630305660452386851245166509803028900571320749879785105351018761527266731256332867407539864188043182137600873508214482159976122342350023104766929531361673018078106547768991934793485339414826458163642829278514018120775157690673602908963772666592328042156928802312176147318997690892750421934248911939725121224714784768342182260677576800330986827976359575289349145670044537118770211183898645752697316262560146278614797753210025299788608108074460451259649891805591192979156695491084246262434103289432439550061819664060856495441627761411683591065506658719828102211413237571889363209436268658673444365322665333927513938483322490812158884125119054822670764159376188902593570802344435543543897121881870013502056078241087640688617486557866742370890039190369272707051412043573505667498370539093080682876143576535736039875478965014000815319488888736048410303471285112747314804174782013611439292938339280089964370907294012088342941323081148812397182144652192401300186348548641311810374894377372010351618254998100204184512921529269053623920348447364804463598247202127626599299995420293861345567270510675203387106131521166076544589050816627971297014651572112103839325332462493105096959022651146057045181481299402626410539404773583780446949109920691789798044289043883586619231457063206323758298613687355831509099019768827341257360719968347940980865186456138408196908377328485992341022771751865305008383900299906738739850157572081664111787617384531127872355223606057342077955382603112936331018426544735816771179517583715239683351696045364444035940496115675587114654869607178577616581292077300766731670213752911923569415526289347979431822590228553142660538555726444416329362335827113994006668924881818573974544016080111195018739702851124764473442476411053331978538025943795123493958300595161516245897330069089143753321477700434853492402046858101060819550166307258962443687539708275777118654704598783571865291108509849446793104805672125915015406780329272002584968419410676065379374401104421972321200383086400899786031238592976413949313425196495522842613367233659888757294944860597245146098469316314437444665181709480667985859611235430732754275338454050474339915018416806629913010580861629399110335343096728760827083668316420666559608927854671709183357701561082975064836718636524681191255461195184726206220608559235708403629338641197429100783474227341489366618295540176996804489334197924062595650012363474545135742897257923787108394147614667040767276787535547675570462055468110171408046531139205930118721876145578082708427538059689647734822182512328352669461705378297195571963430973998089160126077470984067014626974906770594347312947866727837823844023107551589910866888812448705850384964782808916851512075195744963876258342770768567636450175957692752882089136654680305793791326406117717378547096020906393271708547502685785560209709251618731111683894687463208986546870241774986003864007630472899535764847131848924668223410595770320904755199339251553429204137376799658465792485807038645133320821106631400567766456192848467332371066818612724024347503130215987272482608133896040960468290358181860048579006654232771188732414242822669013792266479466102834020658090319147253674233541590987726790100984727750967141042668952631361154534067916684551050317541125290318206958988387336315946979908022389825503518061603608432478742565127830991575964688997277030137918404029775794635536783320390669372762860436945114147485894102011456984680762094093577152561647426669578480877286040525221068298783819372270514828003246765753464753025180698033925204682549924234411316231522669967263383354935504074375286216466243745356291420704286800383689541360853999373654143748318800803769700157574040474764980562070316602442698746131333222406088754889192168624919964984553380134177098405010345738602504354338950707437306436113097299680996624263510148445041451565812542201817641373963337577860295024212409382267279017812064174948327252981420801395439269732750935224215565981166679975227444096790579681793371655464807267080914446137675514473229120693595316960210532806461533065902497135132224894340428299756283085134051791063817076460750163174023802751397741563402799092826226229149135160408707451820182402170244542798681674696953863255427037696058743729479213793347741651831604280835097480339566593645142443266998967059802246949162340238080571358871823782089919840601283164855750472048144420927816267477622817008362778458361900800127860039718121944027898603969706948203981603680361965205485549489334201141264167068686395760635749606625273529555009001272580869231523524971429856018383428706604285590255917266551965512163988330342252715095682941647673584834768052425731074390274137132386701816790946285874846356517754317899097925921618604586147660172335425292458398854957827396814124554337960385477068056002277621275824057645859276466208799814371064143970535213764833814383397325261759319788976748756193589496829385330911224833358808885379679890478128362938571098600011995411937534765069308642074721992558811827626249356158666407675571926649816065178518484939901583131251021959027000406590209232648485410234510936083380213678649782595652464137463819168123489137550320136658812508869237280818160792935868617135943067154734689866819755800072067842995452383133391024581642524614443852276270746488741049269926014739756730391880050019327090544506059270921335351972698395447043842952573425525115889452706014101826343002271614884594829283628734214821008850987324003590069006094349838082089509038141946918111916384344088086873254156833024030985632649369759308641806912093195057536721170053769522235084224946927238629494376685194278669119260146116105328879628512352050160316938574838821743059658517787474699678346087228665039479392968165897064769065267792721999461013392982302983001150161414044019160564277782780243077701726029229199631856911696959931251420996299444832688669667702531663448566971612635130412665960144640804253589930343207627873486842207320107819961238478523677744063792828371837677351220492931718755923289633798904456214195302761358415605104332105588653367994117171832941429235256055141942693279290697171962971114712447041037820859499035127026501729152362065829770008102201684092727640765783074125294023289515880816038315630517115727038474562380066116162895759789941920369729877406629158138076059867039530088911406877713007639967055566028491715108902735341852144110576358472403006509996914317045127392892546793032657906158991094689374515729777184391476283612550145395559975018380919715585992295519536228610183976233247229799520163840430429401915728370577055371356753799683680646148965885786877889456251180757510027813682266467593757381555864360646275458961653727136358890011113143176096721079553502171771894003808005702553704680838241429363357806963184857288814624896562187094817194436832783073391579612695331912849111714738098619753598815549123728414224760123361524558616202161561947482097815139842999752159897914854855612086730765715996746636414445144009560398557977442232695904478538752847520256678172902961821089952634646624447535194741666306633252964480164704953061580487696630913708763714804668216739633029351110443303304678132012676851345230465514919681360749556252666402039532817815619109480501299148607207269507639094040283775984553637211376250596705759868705251788289430783332702440152470441033126601981328502653981231296671908767980903635994875257100234843828574288857513929926393426327799744606699745950785193649147961589774070251645756513667449010823609796060156572913144998667246829199618060303021063764226643900149950358857976070749638893968497846467203397107164990866081317798343153379638929177281160661657187003947447626559957838254530222639161218180519419943896062039516586632828056684627577656244246289559896045681145259215893712411961194907165474843730481503362918520534121831982553206238565772172060892724469620415267290804669465517735085410196374065656441168328635724294199736433631125224589383124730272242762848316897486268255984542116240760939598474716821195426539274372625886306393593245467274572366403859737015109991373362382735372880939741990943744550631371940491813818325994790358223907033774998836987950263733453380901257829529798993831449374123252945609944996451418497949202921169157520958046103105686781765217737544608954272709324216539701971263819331115917600539054979162654367557027418054644090522238003380539597555963410135883446714950485510500951268542064953893168552804333058847069260154555416300672970060689727108420675365036110585205039455186264169995260752016047121218889022255056309425247322229500957803461923691313587790114680812885668846763535716790898390178151376473034462345358371421764833315281408051056335910489935076371552019703945016731499456744978859754112739870051229482671439154332725564918258028781628988591117405537316624320237909789887101497363834980131714525708068889398203435155488916833695426071579603805148319067053887748700343319158846116506508319185805440894506829382181314260191946364189277112188502770642890207920679409053035396527414986660101273958798673049514826541601918929792723674103126452154274316755600363912918113686444730450297500829914480921266145069935350840270945441763648906519679788083745149355711168074114293176518382643783570096378833864884800000759043383092590465892313461249458484720561377379337711638380308921932831648454780449059929892409412093236328688590441903809590894648928541001079440173910106898230665858908242988520569254390865350778708964880944734021585727451580898450994135573588280394446068662851958245297893734591391895334834341628531856416524338524643396039775817355008235597581037414214293078154213229127165759189169706924926371305411827133845724863037901312112897317206933385934957940748943778325232560181130308580519802238849853483302640023759544814454888559944290696911589252971597643848308281025370420221582471708349910986221989237751819612957962934518291151853933229954965106363529020694835224712808860817679471027103042146630070572832496716414291641261824536717802655226976317998613392120009160951777830755044192294349599528254409098906879968735472596850356179234360149591906959884186666584780522762162733809978268966369064992397123128755322396096191552802735491267552139397835271651968121318049794255862978589911553037211360664484475572376753892881756296027036373367758049410385699703359045793687529230383153867099815803559105847952545194932192086324767548237444867271809298395640757186970907085135001360147147781395555751292637505292685312243595174279766361140394070853615136483919254127795794422270790064029058867290083117917759093328328161113510324786883811833219405647979109014208663191523042020665574337576843739579884486164265930308292006057711750892011716862855034446811754780440421286159509388979600677273817399566349923595064793301965231395335075397218920163658574634859237826922836633857657646818616531239039194926354484780003628381224368842187259155306280556410608917229196430239607898496076692621170683704339414297040195498027269850890235788874413802698776676586684435086984811507042352574839378402482156775865030896692613386063301758402985309818843191112956563041155953099275373678025098438805519419124563492263731929325054799678960828897719618395510941780712891568783911043134341481799944714118940714472418475946965038770060523587141389384500336663066145121511968549983713727912459429142766168668535508795967307126973636748424154005721416291305753569931404770147769430200782754186098681292439379878669179292351369899701244481195307215444996049677331420128227296574091089830568612781140203105319947221366420361778850952366782221494439610259340718917911614964468423206328170524614531625794263630267017188882055520273211996244581137899530654326405778828531493497712882483071499925838164183265099003148341399026987342738117507938476633893902575666985182800386783377768792791544456841093251365708765077474051975202192417895554309346463921499349944074956887181361674447180489710890476149145735477921375658813872854100782092516987483049974713875469212895751284908596679967532227048431462531744415603068416924791232427067187803987490214438296228966253094297984159192976552247011643604491926332696079199243606857330688796213733014731757583587799558699235921968452677724226080852523640208888425877840411594881731856482790156738538460902635759785416828653966536223840049839615575336423144516401225330352161219433384086541977025079405901832378231516150252868227430824151859202479443083582034202000591894970227822303469335513433581936961759356325239731559441389581515211103522512482809925202712385871790562755834564920174862956733024470099780948892825452753234280900701157165183066863740245585754346117601047315733640106678124573310999413176145652025993232374748541522182178336187987780317431694155304441228852322075912606883827797606806270055728084883146713387147024297136603150327028401138124200015072313448314183212917059035483873566238699478528890609287927257915017279739421473737937636133134387823373105065441216003151348564149585958899328318671630033025326269205869183003798967945814803211379331720634490208047683720529646164749387400010423578378931133171378185169198610563004762691222712799386420529321677148399861619101476770884862584695926262862609226662058433366923230597225861834515354145861613946160005780676148885925893192808591902265346825734176710981058668105740397445332667849208630172393922527608302776489634840059655379249118856505062845901728298154027969942650788395243560834905225255399101763495431901183319352916376393069582672555240760331770229923711112151345394767827797887372366446390797290712173016685345223951977998295800812579535941034543573558461826900916059350409065665798447717738748172169669989578047083613422152756759760412731658328276163600086948525624982271061718668515673568317651261711774422285358960371681669702210542202795496691786142771809241902769535777101825745167881206129918469888437577694288973259329682501652464064112941456734859214398910141955249157490698156052965235034450757675925348832679003139433934062604285121073823790202927574882725807047696981153097235488393739924458628950070442786709905307689707960235802923579382695549574845733575992720999663187473154447547951385510409240796285879483239325596994913545976478412594493717332566687638270235852891977483629717946849742067395609240317033830057499946240099073716300741398147334094093784956905403224105986056413017885556702573116514244022981176443561839888551367435701306156912269336151070232366089157392255626342068814235360090590636514559189258888144682538270135518059606413212598529564609351581954113800968272740974654489800000238574960450577839142260254378360732840430178535511688564217038120486322165767371697134464688137459238369882524714739400187919321518982141694218877177431723015980385521922169949408750462937244590259217848599475638107958016244326224636178393679485158503204421412810574379194109872600561272456278316813145915160504179419306602813686824960020931467633157817396631857721342592097463262790611807538571942738465759489346781510904584557786010147767370850098303243455935223802040481273423027612104859906063394891707258680932716533329418306900279797208498447131143648208085844123098014642633762397791289851469212299822883466132890963195973899788696639119130676923706730431246023006173327937101409554570218654769243086699328354572918554486212360139344312945948699364434730459192406862978292777972979391483252990259529733786240827586293605534216138314113236662369726754532106831166307882755177507232076153816249217786159957464294826811885020793403723846633385299483514050794475077575774061255414035528782963554383336093275424241138412165212871296922477129491315337180098725736641145628243670881803257933463629105417216724388924101973564335109558289316954208456717175295100830052108400572708982748940237417025172749924718046802008797434918867916047376260859299348596218870566984316868033606210506779119914773705334282275235147913347270912955893970317755811657968618503426763031034289505477512530658880050216920610148187803893468275601465538704357868239655479716978357957750501312258302981425620099161860611141360872881568552495052234063165933847637311890639324493085454846777203634865627003408041584602516265125971168775349575650138559381434184340971401766831264645876483605789125868151043651963842831096975805907389402462346195963280785627877803166740347479962148883543999305799774364150205968976788067680678018307974170883456576357934125178996118141971540348550208336443977067742219546205594089656215728246180928203131807509082125788146279744047879972816801727548226448999092562024312855630239655159440857723433300154128293563646367060174301808382254903557187743250753774389233574737362747437748106513796624926115039146231389692563798699707270329742811213966051568561357415996888811284361783733028487242404068270074857745386273696307423964916969830463282507849863273110755467814513599649736430526876933708910357592145444352921248268610801697258862217273027463597557056144718988934626595971851111019779928955828192410090877856980864617559238816307658320194425125975046353142683832034838919146601465769578742967710759475714230089725258897184119251422507973213535946771953393652950558999693155478344661234798075616150063766846980823214830848591145221902585230301640503877605303113701469874545924937125297395161738355173036558030200824491902298105607740473276777647798521606167270564224059759595990891518110361592535443324190650787246312861918540245434295343169490796601934689488102362243110539139487359012018938854896439967137125914037032472023833378647693392513799599674805676600965991737368225446341358146128942449698023702858720386899417770910414562503190162549572508419163971113212661751203568439934007896816091279119912693638765540707671055071726436783575115527281553925042264169385551635084355389438762914967824023837888181095864710524111404492831202682820352828509971227275773938592115712018430109723332060404811448354410668999108026039681002674005851289229781790107498076493496315948640576509357355906077232083450402275679631884500579462025082608470712062276270369089486797687601064920432050260088562903898572576522269983034358783938318824673749763281951112777515020201179621171821555798868138303965425421176530284735502828031300998917544239728121899055971520383721958439986064587516394691791544374369898345988239499377350993952061756122787930653299627758222485631292402893004366148320880217797634164315337764284647330729815107809777019409739499325237513065450164044794996968147832473015978322101779607028187890885621841204349566780541147849972105849791315430194089475892393403110205313658321126175390897881629719467713542762512126387854824474190428280577028051492488282881895173438533332179779301692848566422937315047922285587481469137982887566501788737317004958320354411839098780929913127164847680983694230196362189339065534567450300953793373552873757286698896203156281132433897674347988362290561994898449395227968477433001693788656355141518512876268236155641338246513627054043607216005197533894045842532675862995014500299188499867986090407818111662220805788578921744257781214733299067706310621430483992986391259797973882532789475024359552015169546190382213954984727412801934907462890310002985330977630224042811532980150518354237738248749019260395921875122824547059203728457708739573140815139244979266088351869526023993909126546528488017146403604200471209569487961813660239971892505480253273095974035076568822001009628351491247918108486421976131980068918285716564070977863835056399669637377347668072071277912670156411906515170825659564118181760568798520721170041020238258913295137519124986049284891181819900862424848192694637616923197068794876332586347961221672613712530365711283284086133006679633902813952229418251045105750140506665102227816247930902703076771018331424100298569459730391819365804876213908282136222901732631348021905467548713364548348453187040313683498668026751398204590994604910072270692819187999561402814076063053835066663639325071247286191422490975446447597859241721955080949276819825484888931434303251415001629841985706994667925823620159719896238187734995480188564570643012542640231970948173275485812309751452766702331529024428349844353722528664444608251954787700963140846274775106358520366516581743536829352507393178010365210256085579430205728573558983734767812032838082266978868452658812328156922839891165820465543499790898444340452411098108911329834052629709057334143941378543929042967932320482980080771960917619424212797312621107435871550396674723851862639921161452825609431184629420780486051467817295107226249598419948926450142503626672717996557793690970580677083767421051958230576233410614049813520611060921096243912174896575401579333222318699646647615253803821838454894583848697107178427505302893111458392588934719882210274847729661165271820658485029160244796652381209616027484216083127082277609278652464332835968783080165008770511103075699419743432748067410764863923362409874430182419905431521610849384583321735980317970048042526378896546678275796341007196871821469611983939253047637012267598650050975209108329383788174493745266863040994498428333088285408042994327134865393565098376651114587599401245498949981540824703563518840413296303726790275552457015902248115738742916372654678902881908417157718898979162503317765183895907426781000515642308564939013009949204237653932762431526906530970580043143976544216108274254079603957403176693729964118860909964801298769942496829854879805148786773821195821485430866429924406262781681089977472842845668357638508093823179035979006236667677696819333238850248504449143039180306669696219701595399768055825632550079982719108969995580565867002421269470270763881250390082336276050070549423627483717000426893136295048711172687568654017290262119453985838782027290549643190422370051041080010137360149835656815649128163368097924669215227112923396290045707656753685255261943611691480259606490181202870852169498641750722037428367357523029687524827813311880337394859954251814458549589219239786757217030813928919722243095641798819371614726906718294557839353509449471247748030265354876625910545941193166292369654391110405882342418085549494171531304195254434967729089048738754607537145951910343486894747019202070091039758468801200602215560720056635248796986466954451528069516490319042517519272861467588191274522585611224063812658047357392569058291018303708740558035943374081940617757837590998040894055509093260910414071969147015996969935430423362063954770641710728322543285362887419683611492891589048433621720445816687759576284722837592834867766904814518057079999253253628557223789827420556310704352292989192180008647166363424288970806133254243651090987546427960622894993730792108370327477959011803586363678941283120071773491880479030333799600063638445563665269478991095577079878755417309161786606434414805079852078136873071459117680462005965735625144830586227390352088501713660740464025500933147033548944831473240253171539657452584321430205472193870258586075399538759466203086383479329310232169264181380256574567891243116104991735135526991231399131647581734306322913725512891234516948616074969330148259964287678232582371328230241196993090027650505593239931465005317290099082980333657161201614601302687510032712480174696341743096068841110779145536351083293848387323163992735086068249325956619860840560324064035628551050433815174953603256818585562098577070442741350995321348094303142009932376749254699773391893164452993378066409340298501694961994898312234711602759807989808996129223365282220366834983198509925393410675206467889787074112966904268817260988849478167147004014906524833863570411792376389656423742805774967092023882369547716619716359393160608982432373831166826070567085281997901673609939138399649264291833437133001541392322758633491798626071584005340657592797174233778026457200878502298852487702424113527281762115784953038931716316714465281828491813259276623180591610169972113078391717193064996488702749746596784543806400300053568723768602269850825434512639797054544012286884922246799197066604798772055596798965839780274053119932707765119574218365426294488442599549683637426756340247643825704345471631448399776953163901345486887970500762745274253139889089459359734314332280275456000312046080164534627215593918519375323415970929445766599918571139257259460212740110141690765314564547032181733590272530943696435971128212003729834496587772937965196910788393460399379212884868823453258329517393818284974456935432323161812017436247126012295827405540016892556903838984838257853008683655442761478123548032512798285889550825273141217404822547799159645769102283212435318700783573614114462946042492446811735755052117684923678560678881078758313947509067795283260876561810701500476904339418149159621666920748597033759308396012570210448708253675705481656055255580015812924504622640762972075304100198673465229938387005097552139892974110732184751722532155985458472712794300328716879224884661899027072240839632881069493721473007812847737019885083819445703431226039512697946848253317235672697989324236285902439705275337962765919045406989081074185361399188788713676873214335823617175807530462376081980838195117604415077075570492853642647464091296832646856895094076444356746186936740322578406110579233471715397290455996054832141087417981457883826676786231475110120041146970312377384298387612227304997481604222086942162418807190324755017002876445623308010810890816131404173735439572169350680694819235290911628141564305380090849969195422001710680576185024655430738156890906898942359775867099796718314719507635722602349383715129563804863239115179413181779788776043460771520525553380837536460021907860536895794072084631113458666512509547975211367635093781530780512086657347243860756528819091843919141991099488498445612475325096679718096050044463413113927705335729619571169499033510050245724320106579658673164846311863351614191445815888583357912761942210595984662621399581510226476760417118558697478308470999725545830892468017269255920170301223267820528359302439884326720710869006550017660061833013015752534872180889300493919830879106059769937670382832266814330499131542543578089293209117907250329806411523446411223144068885487194116960783746648529312299675722837387049704760287666159430063834016427864799951757232660847698236820141154318740026505711819424058449963162234813198744037853100140400177991721301748181923236740469453316287934814473068245752276390084421422077806796804602991590362635261786722013616201220490393842373587048351882497596885385202144878004950334458981637727819074998638883734195175815302000656282272175559684093688532383785803450227747353006002067125816489063369132775418395596726856532959396430520120357550924025598440340483009720299948229255767697857405805705880699509183136479905263885032679964324124210695331930788708080844443808980753149031747807252322926561283802941686181869355591216379932702196857261168154370570317097071663355972529735075243319079914028649671941444913773285171055326130883073413319818765693119444860375185410752984152702612812198168005380639400767344397777554994811800930808202925193223274927461972302640618665172726973167020295219441154562938800590853117484183895362652856768712667309945054911776666178311060704920554248494832923570093939649714689408479484313599570753730967953239555036926398663705285763166997445755393129541546581198307480243673684947557326596701541138217977941978979223079567152088530578376881405019321041714970158488645471450192504385732547753833359354662362104164916676886793152993563240846391466895025721509584025325695247614258110821631248537573108035423815588954411626091435720049898555872961646747475080220618544043763757184605072180387139990629720091007372895472938030703458772428179157060765934980901755769838946782916448972866219704003610481838494895230581613913395556120285399550323513730580864494164805978576485560719968630732620917275690999915855153385280948281102575568757985259558522053575991311958923951178011524757190145745053567692993813607209414737325860744839007850146702252091987289667669007819457682931174311564520107363900646210444078327675733004994232431975656832371642429135332703627202428937741280601087005024871065677352209943888330153052389941079357028508192514042797117332253348743819558095882262463583332631258367778883262778607786951233635367326230325201750872304690919264986315624827284285356005835686388764197905431594849438969584983093923858690284979739133533969034016743424873518853675882657101155193120653681870333546591520360313330647953811121139570119275783951987249526806328223249260372719226270654705002995902612127323234320412345800058978578505943215073208706923163005442148627345763390709034330235759526030727625989084206338647049879947228134895613186484019920995573665168990535661070111926350363909787616454682881719627905635537118928417722118762739347892782953193079582055690958057919106665832930103242380852791175683732569254105252786014091203687353206657191505325638242576829242806448102543475824335132600547958306340427705676680627553536280165289383547557532173213444896915942491553162826728542590623551573648892627473205220821811101338431931507550161480254843491093718983369105131315587417605751359810881625070654205711195757475586020806265958435763118724216379092524335754282595941362677436126917428751352438086655414284830017979120311771791409619987142712144472228732055737900275656019755323440751920453498008294587469903260991918723752810556985608738993231618697521727782753493055267158975748681569493379580544308299848229909998931684434647831000112469912146066833628035640143411953296419802779811924471281062164330173465038080768919651766212404596927840280300592734627658571395326371422210739814319780770503662209973935556110363603473551224522517074292264363713615800632098228099625422882417468474646879415871615380911661061593524477177929765638640708644840853644588333400803185884153461156672123979490497329834362756854515211562199929231473659582041396961067807899821014801544453710579178843112659951139401385896173351128903064829687773613873877891232377398156928269473934595683632057254256319205311323987110395347498063062746327165272337485572821435439909547997565351248464874974312922437161002896383006698330129105960743372941107243522514300922969704006493682234750676351243727322012905127218919509673790228565322762425923959120709835241475155880072663323226102870662275827591657760161560488761981523771111583303815969510601605769928451925960528294634402797801825264181111909844150617459334222746345651907749465061997238220803747506682039638946566838767233998396051039983457023861302965336639790291603143898558660191026954706395255914393032320764894645063941292897924860352441860724801772221755735712840175657219647175118042011496414718681499287425338935286246976957274536919004590115919161970764634861721841057349944303053191196186309322704515297951072371414448877604689894319048965814127872348491988999673741768308181681866614306255687094509094109858425680863646048924368651302836125157367486931591730569072788655764061730318734853071042536032812910538381380557867756338887907438575053293187869465111293651714606890038522050808797230489830085082224222457824084894843751799554858707629591451377154473189080136046771505246450535401983486131338841592841901487295953367394852521383600860756157629459748977958428936808639345359653667149932568254519322722953899990243217255525579668811820958011961546992158501580140493586902100711020353383803598639283536023297755713301393416149055479661827930261895597305447789415917684296829951913438477493185288680349773329271752128782338838125981636484589127985417880433450066997579561202629105454482679636508381509721940178906242257275586827505758586368314701218722679074592844604293274562625530831124718873581091103483885758521942224132887995299572951107716973280469693020256312307026568054168223347843340676072835911972909537583483568138237934400017014925703889727492769914790671922485314161430796110458739537924541766286478068381732604196011976287704871578880429741934093571357891495293657964639883154479468841140309296215889069748315606595405001237166627796677251872025900698013167166259762954463066659546192668820302549422219450245508547226582296375395889652183986264674533257904283249825172854622361155205936978439319307639795475413883072482293447924748353435803672413959720275823307201045275699031619196410111340644656265714911614699382470146492596612978724441425788947806253872375817367036999273334782651003491986642615855567285935727949765965324301976633673724912447756558498324285211256856475840880865631453608508151744785737671386521262966006230682280329945210967687955382420453413616308278473187193567115294025112746564172108948450881134788069855941853490895291530530972889918147618971349932550400528606209771183467190958563412541662167509097284960375767566232022282804295618884715530099226084980613134380353640429569810268370283419146515181924171522562498887503583030066240178435239477621782379943414045921642289593636047183297172633017086324680019346527714627175825510043901636095169853371429911567212300880059293639818158591818900506497015071496079429760373847207308841666498615795265241544956957716088528863025382751663028922040892760515548141693517926407335393436730107745657971426946529167305430766037061857109665790381813414003361241733579804968537381981011291001072765085301104670291013228918844726926458639147836597331193809331735174891535807217045219524825797204349308493022999430723917389295222002769293924931357677342535291031271689074927443122227395850613216422629078683207172254174186558912198406174177485927038370660615127611558087123855154380085727766744290900641683056138870650632393500716268795579100371452369651474191861567755336881262387670573953479889792741702459037132529885287755800015854612869262305355357076232250531689017916375933025513653875027429911514834139693429219785584781503149413943617088867224449801147664313841504507188702237760575244865036994580270228217098449216346328623314856945560112493201088933962932697201912892368666331138811206622781258495057774704472894365503285188481677374111645713514259251654129765628905404410304728115997323299658729156023029809176585509860853199085382509336525232271785155544023814492922331676465369523577271718843749632174762590015495177416212834297526701185830765269700976104874712544107108802723101568787068092916739466871325869949514418845577630502370059193484858794803867250205056557617881941200901555330268433054588644419206535959818158551110778318020376956583160521185641070159449839285365410594882367903520997612327865337314241148015597162961662827828544821957847282284521432212374378601458567668277033368047592671749991558280885584021535529346089724049733570919968046522331203328229028774566182543003460406666407633629751164630346693561399452013862144666943357130942194933247152222807666586215657811676974892490527570896063064111478733887285826063578643904114291077441660394408082802053350956781437085241555868340362376783148284545245604504153166060029001780096702538390572745050845119116121286303582818405423163014235208542869240435047885831975158903175524221682079246695653868924411101434737111928437307381115999601696410818365946808571165119922231948114569910799462092976802097246213082183139893919848308740685279414904866157099331245010921643465121169730819998697593920022576971613440946873051110445797865408447856901461469562322692432854036619381112279522655393014808822479616829908938712845099852632499029373805693110248279711497859326349763036252328353834656804028274134254364423482945693331013866277911841966356185952816731150251342728325326967021178066957416229533251618271984332957376999125391036885329447873920110424058630174988828560097947010630771660209935629122722785376159353195122191642970233956372226858709065646726160141326004127110530000019048109897539228790372575145306104106003243701739637627125414257377824762980884727625648960515426306824999147192515776711768815912781489182233861841409657303008967194986450638255924507047313554666461669427576320715234339547858413078954142240428168119141766035158659818581962643243987295564064258480001863745524740860223677014604792152717603849767074064968363507593132020121041520670290476470478333689998243867894552121926599529072356844819978704443762950898811366022737335672356552739919728549461256294565312957119185067076202460732332777104054230347657085683617324788331463349614059107709910455805489415448472653292573756951667751821867662221241623737436582756621400403342273768295897602891858138250222966109364862359014927483301341866971259524378395695285851401413758095213041464317943327456365816660699592084178065403082144047920731516103252620580368689857103513715893013069005764343079131890397295054592420070171885254434347303692605719425675139776383330302645067373156019419885134168578883928409028089336985452228028859699390240846014568992325764328958622318795380972736730324363619884175993382273345150561573167916715113356788230236942362366076562389545738983967916103665930291586932922089663048900182771719276639636045770732154499835473839870841527661914733357256511159294405680138555017414844727353014613535962089733647077566607092909250372194902032857382390437061805967144817983274441778069993722171661293387919811329904212453628360142285425726367951949212277705125424135860706709833751788538789744737014310597383553463988768871460958766080858161929448263363133511513660132143399675414523713351828829458573388249240610909109952366994524584348830397728926694427736035234369372192174860841464647929687372684763358649179764989370677490374825749259769295354659453830798160400828761784938527432763867584554197512676947606673775801450591909123563260176849973241485248170116213548485187119596099826811338294623134407577091477935962582826926391615935637847941431272899291769474709560064379454250246682823879983671487980729428819406484738993739341626749917944894275272870253785830978004868763591205094908099448332545223414471135873066830389552269785125920117092242337061630814553937311074727813294831335601200895767283332234140248372405356882572635306283336393675041546223742469181266282137237410485151833003874349457314456667830961788022985210231628445354963717680196430812565691044109297066957035347146681312312801597794052480269400627225385320742214215977279003063215487456479690241593745330014001326784884241357206585046833595035017067491121084721265282090670759172627745479118284885618700936146733722342591499055821843999117650965186989871853688073870590636100474405115056473586296666455421047880038722963155941259621600891329837032119752222390448504130448799754332261521379187292001527323604686488024295515958528432683065097054205382259718954685732573819462766736406573098404394971770144700772843194332488176721298955864704506065760086173351313815287885467005241575583590447733916899285444301314523752048341744921539084313319483441716470223415319628148614832652183583745371406623885460394237931093488626011542203513885490777828360962419013520265287237501330008269021081500628174353777267990408719881467278023128137892374209548950990359167419981310210143329397793606206835955558729186062407602872150655105870515112151840433740036858712682682449292518195988024366884363379192983522127065797921922344671534492070844276427261962274639513732349505181500764930936066504277797135209068537187551065828979184218040416734808438035348256581528933527149818061023484126719511660163616188835441698130627794964336826875944786540854750097146021787835846491339077282988302567968305979575812232847535027012366028868455878496314090943509567329862952416645891835798879002906158985579123256654682031523409116128075141062462882355372837663125668130265258227564918486701853007202368644531595529057120068163322944406331804313735862893065566738454106006787109034625666862267438042704493660265772404229446471542560245262236118130206724252855369985214004532055701112940344102794385655228874869203250775442809620421719793560262137990274874272682395318112097272949052225916029270809419208887999155116790153310795641985001034234280441989889317856924577066656139437014856443461815945437643502625605202052519359894061935681816868566000752501191511842251836053232098686046815163790360266783735019163048240776452915929964783462057080338856543971952368315980316271106298434809877481681919188121814913221609711130569647087423968335306512855846270717739083044098336763535161078329924619485635576796854278594629015298429822409855154263113435338522652635369924019921017096243512609215465657678731449340047254568443876403092875086464065802387482280601508657923457843438064940804038135621856901922491483005491519304290430248825071422700698968292454635753263451974159160502399119546921823403750461432260964329707613986164771883099570777173541699874377805829301558896601769797240024169233256470197453288987159146660151197789299426456285950927202031472222391529630155976554046532542581076129354533919517429678539288036074983991298787049569650937812208672497255411068079647560452121160643934560740747872819379042131201130973707952340468109203021019570658876321356914874885269269123939351440418152983960333670864338610066400762257984526116827450416112552850647670481687835077353732260818557679028721905853711891105273391254521115739071475346700544466307308286271082286508385814872608302427429158742557681608565926815853152716215927988106122903698226782296053690745795061767175927189926399965244358354571028009430688316667937014271701826409723704509636144541673983372533947002733660862557927860422029390721273881577185634386231873230609143834604166314859515707575744215099163618809322476802102795204874587118420673462432236107527840721228690787925533251141079560728459582442199427254238967351055238517559336643763960695608033338786634706783553479175078027924818421904463779623697444937547246020972555967398137711187534122942236417155632002226280261613065724963051784026223788121535466234921126292961695496710886836744416663073713564842649622475248921426812015240378740473140544285021655403879311275774930588133345125076059576839844719639532696193883779399040727311034385799539130106058213361078528981230519608173910951388151778911917563186340053070579301591985826236109508921567031874383605011380059818249311236172191741527313239946090273409215453517479980930254668002875105431984962253718870332662414087261870204736944991987117098051284997936817944588215127197597212254540076959800936905660236278354424134535569092959496343455393662343320884108024546535366185086905696843240871211506613811994185065557147770187985024511416340761210291495634972780136011538628770474160184268998308241226371279230814291621475663045571167671185333947191257260615160252756175115246440900659019690781259526349246102335206093691760788883505928812213848433090181024905022915376031200475331698963560037906993500948722944231049087471254265829021300351456444695877703710189478907943524052563571277532040803361585028287381319116739413151439823043488977390958849797898923913815692132747988888289440906919226473099333844862577559689915506928865851774693096409345565873548560283129909970568099690851358601889481140743222802980540146994896117234701023912709114218790231582229722785081378834409397543191888001875567328768544997554548125463998208438186273857832572287362687819582296024030563238431893492633595308840338414531011005178798773144078053347682743003625267322137321115673081384731366469957304363622265928168576696499619352255884145040623022504351672587122170702787652791108497120170711939145954249195042953002917678010769970933820923561465296695594664551317967665214230497603327615531073330647419901329377786309443169347685032714623556452603721621750930290074164853936364140237982244053211764402465888424636922999175268794836639399366729073070482186333312538954107809728381837746212351223087197683986815485076475432117182373767766254226958025317061572506526223069729317990912942069769690999766516245953979230770990910040708657828138416499064400715205656373602210102340075725787794868248481150697404854783769276445722431045491502253034499680153388727461572656470417523397194089967037076676948286351666726059857045093647979903797073428210022937896133957149494839981993088955478003688038043526831712158095275826517849410253992214870409736268476674311512392087278620233662425919429910822360730579336109098046065031156315212550973265414670224289291801559024752322678336763537535807162762521189150691578342295293511642374928336846523247363269624421094925239037864601933627380669060270356568686374754705524268633378308904384490870502550756340599738862431852522348944104083414201754579075067548735894672120538396799755006413071822011027918875304297261252165651982461275744482745044940475392530319978287837772372189392074344584482960694271640705612450041253987387895334459708167395355295443178913993967884802931675816785478086622465725944584473773331160423463187909375245410893744475079594025430255514511081932102917408835846934490754218641398737643561915838050012361900757308273159338122138711942385506776445810000095829543664649151370181922729209672483623372444828132842709457052871566810399030553395411821597481098538977283281451473367265328481731014733670463870432147757649973838923155309471870647486839210897575019783852237362318237034205451172821304687100459793887346492836081743919615287350282885507300519433407329905297279042561571874249488012678383026126197614998153910237233075295567713465600610886738283693642992575478661216094751594872878022380868972654556145582165124725018937813662126451382407531522577088316351197026387007542079232065986753542235047743242187773227088004034969484425115531273203264050678363084025635698026571293480577431271855409464277982541695035887881468266269895968207719750030928705560121388252879472353279613482302054462693325523557620606568606067689902340614295262631644027646613647245117313634228953042868338654001995334430796945438508375897604881625334865604221735009952290489618186381468134757376872058308605495394716578781605869112684298691390018045497948736803132869372359825744752167713524413630170635387165040714499880364543201744171214533070780334912317848831707763825695887899793299815322695105644773953220460121004660248743550506427559578289755359200639188427037440406448828885182725743168323982263184290536064122692759424082121722798720230085163015239497149099843958740145796114236116636500894474552630990090028246999897109405430098635155555042221794237058776701759101265219065998013857994545404361978993827219629047847027695386965839244342749517424139589232532565186527934766539335460914286772052442926397193813224006244288037504076221662285430957351059403264948006092242331060750556933334639062326486590744074873309528733534773443145776828763520492737249725190562175100588060929812553481160401244991168925468817327466838830447942210260186185479704920258831767666591477464325730244293603532626820066598826882965627410602893244187041308002232408460140022825759741449749987021139862345313154196582948611609456222040290196284181359551251470052031467878900731867981235438761973147618250251010688733010484874678495321726518022232012634851713355335870061037800582347480419542148052198786965278668449211922086047643284761901703980523789918076469946582750692960934836529575585880049548993178852652540583420904826816048870901146395047470824743768206247069544147389944285492924535321597339835042730216987472753623806992241322108581186585881261115700298434010344340654444032940430276635164875443229257375923370573391057634361759367112716135397869266343826577237767058109947129883790282339574086996016672251394410450851512051165926541574858752978852885150542464244828637864802448819678186679342697126826417445447442742687039274201376683481902091839998596551928283261739530654409166515784467936266637918516421185931678950549276113021677028155291279674891164153808179018999504956724168233279643009362654764348399806963379061725642706964027415548584090117002059600978731043373463050203534210515179960793815537332791887060846588753848340014897903450550636230170733261632676431659195698674541110166054534026821690253288498861129979793374306800452745819797056824915068868585715191506110427049684506985172721132362148676288777059472625177293126135660470201811336390436397134808059192858481834064392191481730177121256118621924797464185897075727404684179562531992208250164967053214376638759857443585215775673002135492482488576466498078949642202982840138660919266224644581727348384861261924055327487113675276121803218335206241233644541077259653232099832980648120886650395357277187620044275737895384052518286524377986000134852346569898302931477341813309408546040284114507761602253069931547114726145988178873742202735669301263510125404723981499457822906961691748469789966708709290435927204219889026800372191858824476272424130422193731141066994690893326287404424444939372772800386826981875469871677941341411077907152937926789063208035690488860885450873528510750810300486082697580868756914709892248086214128845049059998197422462569279014590875210571784004130778416203331320907538696529218677064157915052804088221151165543362443871729324533728587422184429634708283172861823011109919492936658434980531943510751277517102142876159040861101915251545047756026660435221617329122540488008754024550572623637115620057237284565969615450106534976304774777103076912828434359702892115748862473261005541437979731428453925625580720551284656049328078215124990664376650179869745260102122239798425628829215317160876659845210813807327983203808207299583025892332323593807650919824103858390721842126721824226709189022290177002054364837735883991816478478379715619943273222846752639978862167069124832731906449793922135731988745842134847639501598355082082687911965605121551968433543526464190061777556570801723597737300041848016108500061914211076621830774375529071777914982638552251486591382043151247799650778725698747981256081129554714290881560856270539697408350326239355947677271840202383973473392971109795024252623020987154759053298803914852709774959632803661226477030295928127946420907220072798055513681034376111576947865791489100369254514036689551204895744219099082575693672263921668645694841373508192210580030670043751871639218504603158563498667254189206809016590411393098627858891387014674188243020292137872872022436940724861963812045296927170178781273065103053254861709681727365028041606936481509927437600199380485464988260083550858595867796448205786842218499050389618228377370688507883735970656899193629154853833592392167549585539889455617447467355224899746636177438463531289122462502898559688549340110795586918410411190250648861672651565049729033038027992757777925176205584318975637329456401886096996869646231657676089452079441717570744965004019754250549132609869519458404855701616601809548979629669584824504696812968449552042264754103084597351305996844230529705617377550781614458133652110451438288052439069540338490619961670194570747026731010579065673206507925449294038020745326885909716117823346127757111278847806030647136621826144191254486412235776864404746898277397813626910265451364081665156927840564566772273293052391687933758723636768209797245258592051324600640140364656627891367988755360852290041148946235067551356380712287742459950826971866679851627044523587411845627230944475465317878249780491522830285718951120839988353604914963826945480421814974893202849851721235477730202379033051154366807867266772285985791199446167424624567712220994865128021502837716938763960377756935157079171261009058737256055882990090416243896176200019625454753879278899681519997967677066841396760188255391088013715664706470282956849601582431307246180721703132358397992970437835820489087774185170757387395875544125619689640984243555255227247269319216186805214749490301062652016575044750355931044640130801332030205261633419424070180062913309759235963112715995628524139761686585904996241277362833852963569176465600742268331256870644100830947960023696092164723886839172506221578652942017371501284950243465322889097279299819476913649287155803945533140632679326362514129189913121030819264776765415287038322733533347312240237896615217743568790071112947505046096010352612289319604436233191555440197018627703836063728038761833458187573474988457494919204597764014615300867247568931130835636091803561555000081654737704590294827946658711480859389713053234228405874438586003415276702258168897587653784291318850240143398822113701822564503155114986328030253227687750767768356485840345670908086264722308284237426474114116060009504777580668471114857397100905992959207720498366493787802576888729551659554361303359283210764497408940355681927404961963486885188132283757412203093521308450231665208709887481289262082284466411996996572147069853776368884401761507348137222337555986023936969293237519599988041274658364958198374626073338735669650803601882563395419827176551123722462564568900286540118180948762232645123469802223829346046019977763613738991324088642847402266693929062494139094409996399334133705733097247428711123976701524390621848466045319395172604627378237611676186453790946836410462713032414952215785480474937806098038498186433818062878727641132006912605626049301967883832990036527840765110762211019479471411021242656060392793334593940469604472686846629417782566423163511138807267270906460222014100048759669066517642855415684452431171863612957111356204883473290649079549379754712743468484291982989753735022560443631918546515634183373382985892685937693006901688987760153445996220655617034333841107703171219177496481551831440617327269958504004849516520726722017013983692029266358188361098427173335186035872122822651959144126046890133437815490851544388722627324417612104112607351583092805064216400225904853733290610231935035717184738189080263389498340351088711824003751224074511965879546961209476513633256525262841122407083918575723064969391169785356880693314030383129264459032532166456372886524403687973249776674893961577622561032166729250783451459132869907423505996938492345102528925479861201625479711134810872525235469116867646357097132950745239984833152931930817044884779421608737188000571189878897875506715379863247025699036537385427286432257481580559307199563634576116131505561148112981740812459613086436120480689082062559947849271688754952554298048884237798905346528986352650266615380489024997576997526845230556670917396190506878936123616683313845601746560090443034076706936560105729301880396544110109509761099091538703217936561953751360435915485682094310806616802012630143332769292787553863341822273963619987027189058187507291081253633483023712402019321820434868398128895174813936417094407421048833955467020342798305912604845713180085889689011095173299791958148791385628999284835102308917036925021545277703432979359612595505132129823915504649935654342504032098847142117241011440539187016957871532969745846159238038300659675760523785004405169374402334931677154993375232597201299641639359756631058178368471164936766896858045543101418682117038834215818479261807782043485347816778240457812547288210018248302706443040009711570838675017804769038862053886324289465493358816743295281871042703018481700023646021611637567649437479166379225108587710346352197790029229914569998304432386192948916265539287134796231147432313880069877253550329653672911527128857407954127048461271481619394658755625230335518010750770544710110696742344547292780458716867762071578620699059928224329706547769689738669552110575515802534410539831812075267603274470704383696036040509863388361927128734523993952056372895049365915095086804475623897989140553933362299820266792639376997824756745410619246519970056770497624563258333098442216268551131156855447764129481601972791710541025537748678157557362416429542739494667080876239410988626627682853548054947522399756045560995215640099521558521331729874830046454698026141441968974642947853428653126212341435729167694712144448868213263483043154684995161167914417636478200080372103168682991355402404197424964893410345088446551696638202611224089752415281292909039426633407094356630777518787052898321623832046165142491533305743285299664082389425220633978133884973454732078205365196996235593124055792061017848920733579970612912966003297636588182198215451551813921161278990038238935464856550365039620168150379034926418878827456921649501852543836118232022993758835584617528424555786585248717004887631273009393234141221808461367581025436596683663120327642894953406872060942909217412557649835817200979154761791878403071516528586660226028568336936630806832732742182341900447566785971691591385548133491879346246801201319007787338181361411583917077109829920401153609657306521557933298077167343539171956067550374255221436294028208067621665499317862786783092078123481317431036194382844215067368394143015038154793705969445166237574605293765250088018738462342918748080442472138595768217402958843575601354609172470130479817205938999814406776203988965154603415502368938722925227520392871864755534336060915727321603651744876226882697262642912583973491778668366367981610980705304182422713062724896089671528794570942393314277524922765263648039295813077172227610615842196325976621433590531468430256201165516965744437889342304480137571545921230976895992433833370551955013235132921711507046325388066777323864988040287330236819983400675129946333063971178372049657701438175160165812497473172934999411854224758437341128597705375471069830541582918901829520564568280304618335278491943706264016133628968998556534823477264724429416949376222452200777329204913251695607533220395208561172713999530862472702156266067671240842986527714117058277053809796113085699460453864009776224113172017227188096169404790868134660873616411922105774139088273181230394464593228291109594943186454138101234562296191762170473218397552373915703323446941985831373005879431272052389355286734206075103655189579407088709710348565079324628479244315414308088223261962238479832979737300870888825170845696984818393789723313007350993358213423347404510860678718049295779635035750594703748600172057448015521578742294663527396371222379396220332002000292409904447510654386528170308446551845402013912570533509793488009984620414753591945148213008474144512203189036096446347238856677743367403383904491421678363898121873181847580106971899845124832068846963754958835492073730838317087519315360846150350802865824675992730826051000857194750877441558400743200622613471634878341443602658373653144731426355988633290463864108306933596234225181402879753393036951692683022099499791686111658859538999460998616333566668336033274631494976243319068821978600045775129344957782814761393145163158281730283401006347124550717112370573775046741230258340915683233831584513418226951981488180208447917117751744697917838689596511555459932109471377659534722974531513323296558816808238802995545345539580115575215317099877075339612316651105248632019418946931731549238749929770531140675298797709291277389857326079242250771876043737272861045377447687196037478598287648729687067297081285142684873670073066256206686141908817189002135999712765162481501914123370874005824020682446919239979253609143921278055359705330705246124573233920905365645764635210046544781212242072631246353225559700122560701809020388037450130885525224552064143583041047551218030951012432368666900851071098543935897251933491876667978423125687576771683349813567845545456374401413614106221800359105214783506606457807064977052636530662390373144792266415144554480003204374626493256577343573465941844412174549115511127747402021492866627206078951592810019003847235415448842922821015151727246392190943252859225302371526005042548039626625878824436908398013854223315299208095061457533790824591838790527183309761456105669371960365647207503497915744884040429098249795020862572286748959025057016896663697709537534440258367050169386019609835362405511374214582575172702550755838454954633911860400026000573974386537209361507453877888937991072235934756614386780941923191652895890378674097403324063978762387422762809385741053334504695792871099058260330896785011993708838130182161540978969533374845169426048971769401265099969477476800842066430281367079169099807434256673173711010780641343601868067289390081446767173725499895449695738227954234301525701849304898169258062183236102500517191867694862236317857100992490339462492237008204230931544470870634846842327907210709135803700760532832682415117716902320937056388341312098753257247695707289158368712206910040666128944386137217777020601098519928010599032955430208060722395445822145350146825587877771433248163516938469389363875910815882577656487026195408175051005813315626661296181506688555095686884519454113811286507806984019888252680383456242011993020047123976152228579693283261799677288981116071542069042369415417463036329720554612687345481590069787624092579334467068083719988764847792552327701762970270852578557444126245302600948657758702892534904467388507491241427148491086342611877940465584829327221803325976907493083485705536671343614929871860124997836962494120353979982779591315297861050366937266293249289561138445895239208234474137735209665265456498067637823081983133754838751767132222929196613604348663206054104096355243454148209572742654786295583078690100996652207838056341684611716041038261735095142792346414170840806955925908351757884316770386255525027351013929677716132938396755682136154005181624843597185453340636644229824316324101347734556828709109130030323173852666418666153091928414661552245529223535016660587977398224026807871003088678535286357489083474518108958827099542903670683801546324294209687511925540423787794951864988610861432271371243825791598193932509300321341262862695914180401338647117575809139127698779730325071407683784497216886163747079910593860084782068585370068108543164803243395754230149741665484263259952883385460439055683797480731013302744959798756439143681385464461353511610871457744389003447127790876626144272568160291966011938589978833066410399673040019748377563415610058847442461237923548055721911777632530909314352156396513416292461912989528003096995828052741201462280459500504971313289631537530135524909786529851695590561028258558175024676735258541367258668156918820608182869980899616570701160514802397152649167292987340847972152403406213773266030732471974933764768026618954959929033076416338112878105842277960305749762828730900170595855801118690979169397678899604861181000284515176834389225907778521901173729728383572305652082638449268885279178721574798964629923681391657779596511130905711738624450210221395529474845824799706724264379200362698805402052846237813565725051607694809031338773103149662926988191773815894583696981033779601039665870840672704810053976809398775788720660870170381707712454814743792256933229898176581124910073835900950975316994988006600849531043303100043666892290036282845313790446615398424011172977434442233292068317657736006634006763977843541359766742869260936806422266023816154946002805864785932523827158551736155138466459312427807690658716939234309883949834919533652209803379475145032287164740165960505007390698067135185281905720157590018642398823232711612625666251025462073878598406824157467040404615275878714254529075237052170702018549395441208234929816753191421501442924319170016498644318802982823362371632079672433841993247570821734743360333430034959908930743088587086570785574176988747490422268262942427884550376245835105187963755806244808830197857898804037251118686478560482037448283343790410920984604852841859365124810309483381985336100729827512333563200073090892021152361683546731300564595345747501609613781595052100793914172594168334452663675131611842810635725174140453447229240528551146128025833033336060730392225242775338898045519560294056808769140441541468420399320591541581768384359635984565756474564654090148037511353243822333812046000404330746878009479619866182223282434729659118829198795114139844553844318448172104584180362014943668824388325402950646508781469556810610195272395696370279118988142007041555652634448014497043168212960909141206853463817456488157694095657301262520627534577909961160404510572395206330279174263444561700506799369110931966705712714458248245908104334976951789520817295700441079478727455041600218739306470415463773220742740034600486809194636108435435140764483129749775431981209682776077041451155454561384268509038842683423060090259444334903257217761239685293467887823751592643070515104925919449079264241284601738722978902056951045142781166323855268265786333384831395642340874082894672760463470866740225850932661874440074511924191066421935905992329219583827457275426988091301627725980714430904114606193404350934790213239924569414223996883920903597484265497760288394153393361140103584808541465014907212464570485203670275557837802969413523897444553946777944782630741134668770420933600121941724104800529914496719948630120749368250592521341803747999104246673360949074208383610009541648316484463228715833571814296078095412083120762909656243921815515823426733190785017962042492696096469310570738371112212483985075306562430909114261222166537034194832373576682375712161837129460014681466933501707931989143530602921248712984695282627203376645785260898450483775595118377623915764197538205755595097555224268570001998528101680676335217605448581562855212389256409636464205439705856064084039271899371236954467656200601944839448677539967616111351930588342026315530183122347618995919434730610105342747073694600691871601196787239048679330701800801190522811682104275665437173851935577585417799832159837242022748558616714704928184669838602426113489168073093633624688163827435602235999166802305012680332508044451839724248931465463619744299247910464728944876153521544053635108877840077335136370546097952994730435092967456295099649349678865410109679980622560517213548575386312981838413960639890821372104611510751164954277585911329933205728485842905244057798817265205873307292847115301107917799794291426044559060842156554928748183402405243948914974348650375290427094302729558749308664799162086583579855753325317472046935510470284136783051274207484337272562308136258527837550348184141600824896834354163272383793033584487278910198502544349845827149317964778208509387358740598950934371321570104942248369000780608884082555189474935887635576162363397126560113125579555191747597570000807865421868458038008325114629763945307104848570720035893861716954093865677471370937520317931350006005714367468492230117467388717294143822977988613655107242326364255942458905360153470066301921543861407018648573367091376299627175900616832634477468325746963731673528408700495504831961817617275506179643601277436280589729921891196225279716209563210324459670292365090895316381179786706797609046588915169021845521503036470135570125686877514988565182381123789556917354005619106746730466380179283227776915719469351391976361125741301691044097227432987206789441264232643068547043078965550121781071081562284471736597986323134056440921909434301568569270625837465654472883154011316183387370177543390993731992592956599859848684385440899881019153445090256357390254348989711365734048117692506385756203630279163119999312952769481699199773378343505608924482170830508689658016301598760987657347193149457471410947833612588814081196675700600426863734929402492433610069029959465946094460552346535435792110422863326198664738923341266707835334459126292287644932825166737079357709934442295093470593959829187762982281032903135343177655712640373521189648694568749823261404413964496151603996358417622685753247841539526119505807385294595478069900192640191260793691954664948365078642614385532304946204496399851712638733148606802046138933039541126530334611544542758654618773864717855095776381940644571257125880014969615401043109074470149120332784518699619569919162690660469906267658534309277134148449029555471432504523240984956035571466900963602270598459366688330235823018056382329073055975501648552156887007878680665756271472059593639542981135774670317954738990424019563689743776566532406938256585334109059188251054984067723533343635848300315821230427868484136366103034434886200837353607151285427372088514482453785006493608020749735348882593855173154233757898719219028000436927773777740793098059841145450804622746018768225044821108912468175694579489793001543530887744898072238819857932796554504646978400705711355521164576222332765889344904832916778252924741056444071842727704642052018318133189222477827496924597705309950172982461538783281168770406020556981264523407940424421628777958744333782502872935389583861483838307959993626684520281495183022165806542448654625855369098928135478246509647527695217951956119330550365376621005384506784180818742716402943012030258944587673202647223463296425419480747703737602863628395822768907043309460655704817828289754737079571627280420719676841424645588784648644541746331985388193660126122254770795826176620357722823543052101508600070371706234284126672351052634095195906448154882898359993760244524791719007894243409662987015259466874213841478705468050078289713224516457478754598651898194997980507900479284622970374729072881041056218352270111131723022973767854322331037598588380936947812706665975586472755295664544347877400135357969526312614641620303833396007155206472713145479509782774115544670841506290231725666397687033539342076284898845124668849494312117015521132065609668715302592007110590061735160252627598939812171906928854206594219120228741350440181163120143953446224748639180419471277514098008814747251806288156303547506368912727745754795159220533470643753463251339257020319672368017985426946128374529659533697493232680620817936240604746324860043347303309456452602406073401433251328807769852515010398889635239633858540706431744300393885109147507792257775533914428527974093724964677240191384726352762660528779640308775776047915649929926438677676525335512182563754118130444109619949322503480220692119395153475991388654056349276262704133470249356755437590775552492859768231346430647325985779580928184329135580815604148551415069898835064238833125455084357160182735717756919455533578826425542017544791899546731262440903956815543704986462453319615242824981213774210160886241698069782556146467888951569094944106943687167206342497002676718486151091303375669638586608226046410961011401273590731208302081182408550654852916741506448776712538950360501451597263269858632650019542089471945257381536015127559269493618687949031187251066896619570337383812854381723908348277628498416234177494551686090962585664590479272729523244551384413530628917948939162116786369234384073074146651961458163667366213179405777376385677412260978220730162418307553346955389849621340072248389788646180190617622418363266109590671982342455356725536513093311493588898440133825517733283750143766614729669554428988527316454332234621848219893592173321908171636743626048254064704337680173844434878365492542008592706720418714024146337784767481639657275561829270059752440782017970280859469241601085524807908700581870814673627048833684041561355530678965010334714143388481886758652699288764107266282140715737145623942757671224809542373383310371703964881981438582236538025000595345484342323245694051994067321036170308393639054965371332506630651565757499273687922085238859539222538038919501528551399287585193997447351852081405779583374751266693857296949217683359867214477251935526468001775432562238109431590383717595289372664277850823401848094112673010372264715989748212529061239477958721593159746656151054024439786658604506464600396869129530604149762653352400805250313770958385217661414377234509786457896610999100350209013142748142291266745776080180749376647997584938547363875371518666321227069925762315611798101963425293970695595305346049137210961941985576692084812499039344521720806174870717409038357887744689953821425390987113854323631375779528600153320041042881116984076866090157727664584348626741227375157524740322307584818856773986095130910018361859675805967252081543224490377352494427363335955506607117540036953440990243753124779571442616905641541052608307888886830235764138733400520899595619085808438303800401495910599692974708246006068976929361934864968493467035149753220809927617904971439765149743185234716083417533832201480640733862207502796888096606839873533463135767530885511798516600390122751857314210530548961481802063956751402343935622142314957470598434720121162438342832829270942670233150507792912200911425646366053360651939230950238913838530301002653137370702152804952208128512724628738774934584659401733383516035412151578712374733787941152352042907572412710078567335876633096828497197230286796844921383326273463004669417808866666840647224886145338234288487560562604047411531678082699653069341093765332961322882865500338748234949719751534687537930985097472693002196115574678104194131405976259621049858005468830463638205861599655032481203168916603003202332357945548010101161120967298883159866979225456965512654565580245149620820483139648018392537145421502642980118293091777225830970107191150104419484581623040453440750618177732795154797363765831343081423027189377369354104239312662866519273527257704942378271504592695572846010508286242677170597150470167794231958886727824957016115633225252857176214249644911476313675305703169846265731540926383327757307670575791053897864215259505811561460755126568185010447311675876940290445629169131716577072926495747136779154038939993906683574981220104738919979976097182802153883406067009485350651838057289241404718656136403334805158393665112626348412732095612544966571366993208596606639496949515581170029739988414563597709067320363711810968528220071840027180284420772880963170547040911662178290870289457298304268678981345606269490627405240451020199707035314358036877151694402000892730190447527795169197213905126309238042158780757263910997015835881665127610784014634400171488764566498823016112244087475772623592690413166041778569283561769622569344509393949713925897916260022881588622903559997509904957902738562369382744819392122512539763830078338858289471665181589818545318963108227159886814193626705822946976608582409709361756488590166577287294421201639188675084806873998635975221276867461036370293920993695436903539619232050081756376187211816233770139793746988716053861482533311536310080196996366867538424983570564547450718533778247175999442147950754186286487745653493425231196652963008613345156875580679775873872206159263501334880934056312310964111283531904115152739000855331004048899158837363466533220567207867426761788872351740072009376202994162946809750828598470412728361361075145931661564478899772341954775683566708092711748710077484600679818961477770605585579708074737702732656677700733074739066129569426192980118789765223347274260511198204252880106329400168269547102082286859501693257906170099209178990023024675353762259907022533491938966820764459913376640749574697824192238973591984381775437508129197946838239315106089500624103313494293031317381230605401717086826209121384541241736605006388170346524975215754699955101807449808444007622822831327471864546054746740848571682633211621245317524985729409217192902835747470204933396101778036510724331160718240176812018457952253838973348390836607313442354991804844149613659923676673230052387969052061076263173094395972711362401257155887383314601787866586983593764009323952120568756581474995250779359652994757032459127293050043441662209745657827830375910642857257306571363478077470957741093583384946896644492451001309143587064790351246116301380184294792383439372002284678812962963904681266039697226550072008654329840668991502268172946900031059800901922234924001120743828985591376872257577969888242001425052079796438525314035534302523225553468863279200346334724585283098779724315139911099292525783992523227999423173700015373423294473712976771488794683169407299943051395987014651924673934121712247333339729695246743605259522773858538039679874169206562282008723009685683583400771701290158172644623455364159132987052596794199856865343622544758779998940589501137219158142009768864697497066321307945090726013467464793315188518832247981529864738526771362856060523079546523931563807851626776338860695518616389622647037122413211489583918649477254347835838407056128918170876901965571892486647235129881404369920313743868537997495477202497796150066851506039805247227793814659955640307387892637780917232832915233540714153392087199718492950110444498911162263699204421268843890974968431895239121236359441538005652877246377057009677521720152778135121721493191219981359551590593054388782754155009748516398202755071816193084876803954308652114291980171831061489420589536873453610281561871793754424890912899113255500263678268255014777034783463410653044092478903987339607914908024808924526254186117320877139593085959069458519572688924279738513993494249582798681146863952130179679710381484562546366165513220265064278384099095779074767051232033221491650673829444062789638596476199168199500731548037213668250989244516170044393136675344381910213270140054164361161362242774746562019225937916937734349274612161913134442084922636774690336881567610360752755354331609472692885094680653684036389365142668236950944525614961936149014669926594858169441154462871508533206321773030358168993403928391016385718630745003981822226137319245568194825724004378409517142296574918370487412320772770697492674268584809093732828868768027523233043047863916259374518644050812707128421827338374328745584270745181940894395279567012167362159647029094116369217424816113557431150018780251722392944357307172240040574472894885586822160938526442887686666183644303555981305702357958860063588886195971986113838679138266222911255033224766350097860967022690418072656689162135360142000645548826564945887111823971925891973522208223045762543297450690488497073467185053730401566136664434866287442355339328082462160448678312717750515012361283765168743198158366891075241412711580566543425782069209193029226708493859824800966208418079399122668266154539253625212527700205344510090074763572879161314598748625227837207879916775213877961014562942183343282425571350503848362915257313194365761231540500420624004195305779110100073979911497165230102136939029995258797584333959679285102062068511544119703008362634048530721400644039083075857535120710445686112500681413028920005040295181277511369779955808823884319374390998686632639055048065665836684045379812753278600677189949704525591430507886327148942532047950417029912452305819766027227856745447326610963760984606984776283274359173243484398870181309793815362568213059543220781468874489608970989306213254301588304369734525358565508058641522076394202089200660498115195450862551978188868810156304581150823848044209339221624797085531602356035039663209844895427689394187077038572469738848139014059301873539171735489897835931051330631235896477529929827955349074728558197219920115621351924187788868560124537970626024223270112475171566469070806380069526258291336812790056128867105060972350543535461782061854770632722160269608594381340359887241387468747084767479373766540136950247002866718665486736585741152630296859495666118754314985598852865635300209557817148761995192705265576298126089153391824193944692399531269822223499374733983143446467941202160573840200818510090554085446284846602685141738702701798934042929857113328958412195533553664003939515064728037033535731015440952051288469118972110429660016456086170168047587895572391902017310948831032766761472450329775304470942929022402163287883704607268142801636501108923733017737527317708940332399197865563095744001694673049869179069182653946581971479907491543585667708246075412405681467628128687453675131274600595116605823745609595286127557971155188396660221732465241307902729880968195533278533900110380131271823673731399255132512907502283081031001774035104532545909318627287293251162960698521325209220920509413332204050718397220642942554434604376061107116283239825586869846492305051681249887316453978823693472333669993306241440987056849332860616745288049417007356471199501047239413746230225146795220457175826114842437891406625784975969261795160065225018154554115129092719975907330494939737937013826384540732161276637995049582787063358653643817861005156946900557302588325371222786068548850122363825837090816533692201009673527256267201102835777535013033104348019316848450893757417927314873709623136607501015316997330265681801198008245423661031085435659139723176642481354310490214695077541494489340597949489771163216385593776820788007723586237638018279829773629082627141007613147623059116054271424847391656280664690732313877661108207456707592937456813450018932116022555285134266245992597728892093779584277745879790520843519587773950522559636907684587617575055825075245375274802461431006841575534845344962494032751221771942395888483479087265481519186511518861592822462365219281043701954298140934261848275756253102740254070359628254585450652611095591569682758558385412776608255999428393863335458287958723626795311331435282887239617585965714071603419983957135137650199502870265019733930140283995462022992298765725553560622705284843199109735479411930135540098095031710983223245580010596969662917314086367385989588165107257772473496180642803428425925723841297194462765320247319640863335221030525600947615769063313486209381109628267537666906925339216997612137578669475406814469592085416872818069425430939706630541515822462974573874735607004052638762288683262301259230127770383657346324232562211850559251650401898736555950952745527737094459266566298667110359092832162161467858008453113968124044163199593200553654292083380310207937959280660177418169658510522746717059362918746894032733649802344860129397299040024697203043814475344523073949125466317462800232537389394427391044277075475324967170978648846308588001702035758268814255879481207598662497821215793911041047638002950911413636428249274348233894226767505969174878594108328926896768229514127746979980873535323726716703696464870770607349459076805627044982446881491544199059895601371106071926720925379977060230473341654005291403485829237938659669272550645983835724932006110062824795007346624684007695911478148728237209661416208539474383063821587846483664395441535839104571006002391256883001425956422774373960295274823249795868604914782242507237597666284546450640402628242245154756325630502128931121999841409699056060425439545121873125287450035182786040237589379497942525838613848990711060327605988908312485774974482217262855901149924837396632601246819976776103243255638368031923037671188934265605694664728065834823781085684509177212572278369955933753571689758641180401400427420460702172093477643605610773646575918792340614586791019022546867665190170645521867977333879534414057296382448631553203123220496309486788900510009502186901292989184016810897207462571569621238357249013260836188572118836804889311708772697720452105968691446932462587401670968431990862240631714073981135727336673151708943236835117369613736089012681000101709311578226865030871247481651255132654282272390440405231877894587900899768465877465462389469200691804482891697885537176517480294686337126203066078993882094406516920659842496280059448449807872821245735228344506417416672061000839029627483557346162557450497321312924669820734039657714141581112194198383389731610161653619308004033615537721093049009387772991398443907974566397318291249338594829480872129842534931557474653505675345425475706051708526431256332133364027198931702114751029210988724466979041600424173093872142605141348897993074033754600885762224031980479568556077787461253601471912743239010470534957427275307924375501878179805770113862466471308007068038501660997230783479620850578917544820182645716494420141242768718787255142509780894348509995662594987499820163665810625062733828680182516873209664344458882419982424898136252042747941582682926653931304111964426216764976586194203360804816797950007557413186055686614052458308280486751345969964988995413605105624695834152938836534450406884020620302253384094906526308233414662805232501552179117544828904066349649848385175230647894049412806014777645647328964279651872449941805762378205646071746112970283189720030183090404553134029589439595306069165302220152159721631665668225809096548791451595369425896933320957300963435549369998699645904669422003989076442905166333100060049830946583847508745172386818778645544621648781780774896831151127338889128205652665277627486382633833972221292736521444521115035220826006660502193443108572273830267831158025428722507503966893265044455326586287415735450899244281363013983247865191201997778118768684246632539428287795152331269520496727652370996545252576251634421126787936547873361536942226845991173966710879933116642171590264446707512809690204157672145316653199458675387991384011299582182074222586832832177822869895699565718336744091168792237697896110990326464607009734244462161138105418393407362554816972858026167968479948280547936521303772633921717565574534733678697065178300620976420870011053060164678604613609578822689211693927226147903096372769339523424149576627757820057274968163530942495433959124714313748411483429084208361872904372782135416685473831889229381181056287631745699175296293765217740743670334863556645471016598210805543030104548283248988074774724601079340230461762401251689604076139853442617678648939000738329707865394274554673662695967339373595569397192269761041807483729219939429045430038031548790337237139143288028568050577811568538198554464938924746142115197119735553641188659190178105248309111701724936863884498688558664986672293128365250383405542396713471276439738573819264554316315530781519126534717624364327944494421853023043889925475390828199776881705453722757865455792989486410404930231583362999657062016997760808497025953259528132322904844909010330384627819843480384047451712561747194271410191432501047143500315747076229390300449785386410316237002891583667671824801763500248867050384530692895986935297006250177760091983698035585957219715741279975010485274412581667917095431139851397273813878985598624935458008254402146024575322492412131199934102895721512213145514544450537750655253467108114775978793945422790440521083329645561892130318478040174234870019371632457809776056858971741089016365769997941479566889023825389703760163651227675950907431322695064734595682145285448247733652420543257852188345403015461184920662256617115841180263518725815020191180250349421276198330563025340095692712492345650693360741502752056982123999596618559132683588029268270713717446077304512299731795048518916388022712784009903819369284421786966583224485862877912630038498320172840725172128395103740613066030227703154256997085330340945999272855875347752812866664140237673644998278968010396732930324483068623366515001918748665375953514475802020051233549097990726591874484295867525256674497430685280045474925773071520812646323329494590293727259736804888247998707786804163571404310598946949317722956744659979015488915973389125124702855042639638948849005454368775153428622003438990978651587225220320179042292967555554651169532372423837202802394292150465573882338253431240484652772178994023412150402404030729961369168652727951736457005296583854769587947925967511382714848264535389304777483861038039615716045404789680640967897486447701905386723575215689670849606745722327243154449359596580870673674954765637039821785150585978098340002745340341889598790445048668073157833461181281567081955509707091593425226740677313212345684543608667841764112870480463515035443105446195276973900194364427912379534004700890697965112290325498894646897646325969556652827037978284673756426764591241359524482702750537698019577238111539585165781945206967680747277925468359169195571923952584014647028483945594106844187076372346183045252359142669472271694763611155150028804691669273666641251086600066326770464524246367304349243203081847310438151254939149473873932067281783028721623611543939016707786976942628087151103128028027118571397715773933213699444117951866474020116472645265306430990831867362785858546889625478503061757101846645646024980152475546283011825475545611691764441222944788785956642088266738338744308705800358845328642549826071617171599244688325364237834553327300010644381206102932475428749833859238853409626462775299733996557708649116000361655389021719473853677837298457781633387285495890513756821573579489523969881812221750492366663606220998246863415346734613006838558440855750583174629254146222439458544606613939619110129123941775153052972276231037823737236761840180957326796224585910937110413820982051325769035422800858608322408424528250933323028348026339331279266051173154067294003592544404828335315282335982351893572806178164567957197385270843844923460532344277624470159157514412433964170673941062691664914706815745104875152705837100380047662458249239573082972344768877687944892728236223980900468870893653670597951008033654695331358728063922129411453298895404858769015545735608467386273003008746616626285049966865364730636976778711023976808804280649732052931100063341265267693144824464222210386694073251188428044960143350939229890118193275039562520141764915203902554082711394561940178690540052685532166374792609299199964396685159714205357412493354798841079990654775145481324740009087470028688906878586786004069665717729121120587707832058935826013781772092900325502090950632514105935565915045693064165201964734815587483084802346587464496993671464917970906632617843435514363771172406891877128423313140717985225489263336916930503308385328962510438515808391887545029555486365772071084018732968350896210749122411057950326002115303398422066965541892027301525081987045555638739835889183949345969001929065339493980590274873737184012176405157358369204023244564121435200116086166625306431495286949964492148644526196562983773169511588635694192443778526731545124264551532928471764952232104560457104288796795774968301051353701691123763770924780042268432247577832860197130372818155589710568354456799901339212909645999805654485398997712419565902242098966948599700800334935037319563175625420762603911046318919884543192123568202306014738638198668174001531314374940845733209440326033807821154093762532373733504149071472260183386927071404340201958942325132851656124275753189904359536060460999686407249945866826969816781762341100607967156811287037260499487457016442029851720736422016764609811226125243119297702809651912974004749600958897766133226715433872944748856895101500024551610087827698140738289138887020374751515192988318365294772112201895744863683704691341777640077306289458082813658190546194127844932988909746510457933582511182763044844294089839653074230405311699788021268590723991843617098837728349841564504631308842230141462584560522756492127678589403491385178828553483208340056205152399358114773333498216207331852205075779233701882115373224091058678372370959196818158302264721026217658312007897856949874187058611565542370287378399155623077194692922854538745303126514972574099451123131530978331514782792143674882399392495732378973652213911257602710095994653614828834062849573141449643676107465069248699906268916525818387838208407387743758431925814272949910346733346382285199565421793166484349228037214479329738801808273202459341832765521213372451321406880001245039482871709355245554193047365738315232582086344560241501705952873202518970629455014456511876408813679189915273257414924877378648171245598552548392483454110446532694015216976008304979649543897501459641916548001589145315174156471031004188346636143248028021206648916807434850283555535303453978536886128621857718379485525340516754536955021191907781884923995554596492267662485325445887299548047640938137352121781454329003074741877523298577675422557128313634011345780426286184521135588290275546860562113752718227001741549615339944114517437493602474320391107506555792145284312026747348157346980817215743832789550957592007966251916353782071438349872487536192927441925834281611864477606042101782491197007382335880577923151154320555888797134921153148277990574761275494812677143889601272082830917904146428322190811375297523955624428195119225561908078188894890689317070446580712583031820548758545553207492218536698237510193063324153318572344639640440291549651741853056152760079571594012140639451862649695266301263079455373797822910702547924259708506111049846743598828384686035622288948499828638627112575133634371490358040270627666248023920508505877337490805429892830554919136591537530259822770799708502293783145980175824651305246207825047869537283661203585812094581147829976302936122780995253561096061009637924559436601177044687316224320653510757314482116232093606288199701818452840452530387867807265919151797182153541334516281304112165700247698176027410118405623821797773045744756464332517043046273646992279721907909333969214090311746470835930158537918571648798685331631143269638118695041437895199667405435171803400011097292497111530404098073830364319248217835063749596855951149924053856314935588196951758244750218040083403681972430811545885720969547596513680685978165134773964136017243841777834880277624899108424342903377262681928540277159092228453852977307961442774377700701146479803224839497575556462144043840921480866842566668051597056026324698810945699530831443353285097199347223047037622643625390672627988827377038104609520761475025839676173596916831958567668433765392034510866453193519666385254994477459068901391766955906836077376552476088633813047000325358695059587818403738146109408439792546581162051886762540079425389077696398181421313991618890931863199111278563441573711890442519950208274947293582799405130941444342859829271363768502483026129914518538220102012108815223353727893133293736351946126027024830745935008547627044263637257099932165466496464406558489562125875462369256082834060616038535366357248914700401436123721243081543567299640498098840578119264018070291105179182534705202508603240401613791805958061729736754602590429202660979105114636463545501339069998306464329900966427383534507943239238796086659100369810762837429951163017697445584147250186751202098609420333072956127688081892383882560372082334703746241880627831925252856610967875357560065978806552585384538351902933119261806728929044088273855581069068273259082041278825108395013121691631187321823614206384940651240641717182458580358179299225857355800426607729538650854174207480608005737440774142918253479556796326821233673710229711423782247434607329835004933610188661505893114438651852391070509851464890622007072123047318060989832879765691919094689064069767742555070976153468405055884466741495670640034352297754825172351875020417705784988153484497449392568916180749409697262434652770230953460771765939455746372587465469586913776169395169472733204089278141977011884743701548754890649271678914285319375407984414679566461681537006893697621102115668362864461982369994978017522069233352525219666361200119450941129198073689411132554345264618563247277491702652932514258288450955921315115865050917896882369190321634966628005239955135081737781592629271889155209002067907576402197228618942730877671499253954975811770190230878737094044132966013988370275508603695756640291563545556784914695308649704940297922851111283735724126532711642451714668465984656074948833188323616953103047078493519664585362474187582281835524886342241367427750415632405895336572264433129175754330591256896110665122616736149374569689922145240760677436132748885660777501546778489417437286097645160167283744272908391920710930364349809233316893560753213133803687102786409076589098886414131594098378817644772973741364616140307612808461098889204813364044946206892213049559164818170406299865721890687833050929827136289927221404156722871507366825370147555400948491648416270143842252473852999632998951102104915366583001419836818957014436698840514327488306514545385825597669168586963352153267871548026823222519317694710281718834042644624145131221576224405395868885937405227242604202744516580906729572885731365042011564067494912755548115462925242261991887152612423445107045271656711010955925428442838917531807506213168067193752816996120215142708692951406910707119497973940414648741842173068595307848560805723007280777130962768470045646925041599692783768232523427724394831264972491428951379106212243842350505097452865294313056853380138807268119228379754806286547844063432660857888031297680224631501210464976538473063861358701893513768866869115251975421262627071638706144710494488566051466900740508234598601042159160872600490419796318250155326536462338169116620638582236949661399445255773488826210015948646850584384802946317467497206320932735250642051688914567667951531126325884362853061537266230404050543984718846767175120411801033984372499412228644732369530774088879715804985932212449494861183797803320880070609155185217214744260158815490748973216221190434000711031847615905227980179937779684559743789016485584025143741099824987615710811668042716194380011080410329741335964385568521650736357407721894398143635891897578793007181694086054916956573920750699438601631933561253331522595275720458275807704328415512621270203790350019581427928601181284352720255415536257644349507803098403914831201523415342032479621931050693654629952246208855444357989187537882109757623960501290767368012626897731868015046099189325361321055748831100586834003658318364341184335783681946006623728787733866412038152017249634458685957976858775070774360483625028069624234686169660482300261061784219791983238938448259958095593204154518962022368564070108099886440548752739227512304917010768619180542994022519661281586819904031677518600579447222685885456220900909717774483914801582638898183022182950071915370655614097577904279210640031565721386224013028793374131235352337812374401096734115727527883752764611498039153459966349382443132038666053924151214435744646870488820978849365539322395121787808259398166497668023962501685445578662433284561066992348795299355640418458671627794183705237293248109147954837248061245687843582564719958596062036233290599527825212372008275904993583212826116260472956030302824968179125858512321973544818926240908546715784345844408577408689164053129220997727250489645777334383219363277117438686659466546661304053170067744698699228007630576431260894182278725873091316723569637357288909927608227247796347491920178784036369565850379195404508919655678239169484273349578463537463415432531839517646551045209609277951470188450800077676194470644843192109443236426012041608051154516576215408633770772708254258592004905812209928258234583588191776031525595528135602079703952050140506254942271384273678492124400692235420594498782433874593359984845898492297276765013737834404303571783928648808531448234515064218069324926793826907078071550417381220242399576318755991443420021262448306171018344767373912599836699241972870813755612489155099452883807061273146932547003676626920536015218426164807889207319383097656374768975903428284912724046566863390396798584453531225667782911654448932477514114145237721001573625987995493181883959104074448159775605376847047240045632822333601306925298857538516145206081088838304408460170029477056354860975087797930596662532755376453784167727016287396067944408896211958689618722990765910898855936900663440886797186402516573495134205629693656286921829934069301936332348633869855891859886788740271386017290404974954564215712848795851089600809174610124711368062716178386766666710066159561164352060862350158223120529814894116346102120502623742831123026724064791935032411406866955300664726822753697181573694281769635539154592336641417259335780395107880082149841504326218844212567601918804730660815720307339610866211474217762230474151599825520104777375163418500737078396074865708687747462581265755162846954331805772934560532041988203052191167192338395832002128171302266352457096745293162629683256784610729645816608411844954021684106712509078427537030328199411940625855327851844127903974347129416148014844715953218630393036258737813907688063402336173128530050892042059344529853485205956998329050806149310290367316464226362929113656437478449803672789797932199879452005451013395915845222915142258874093127665053163694999366228021427729416142152344781102947702397995828578304308095888164087571143887170832743104516929949041924681301052185024640751939209342126763091860339814757108606380762036488154040249721359564170719696939474111103477276503173837535714232290687412369628245380964244894507515341291599274304493038932548860365090340836296066909165648632435764721996320439870484793362477971107820492555966696049679388177318647309967046510730504306672979489620837465610201321241191858813374651690932272591136294410576993410517894267076862723213689682248123144567549932312637611924183118395575034486394491318208330878139283803465461836890239144348154507928919328126350545385021297654480196114555184864433192051028400648722146392102186885707179013812984596799930941670257133745338774079202119974385250474668896801388129264115451376245992231138526132542472780440633852302415120155201806973873799968604159929277796629282875690157676920579867553108652009883102950592600385216842107626604989192034831830037066445813915287869015809876524525741615072376005909585920143698920361136869563027679264345543477939311449090627616280257871445971242448717918285804930124428268106247723238371808148379243746786445897685211458884271227241106788004916388329135142083742269841017064937322992751017384506396698787368003643333647977996987096651859851864508019525659111316239209620453413094521392281160240422345493807395681567529861920843390371702814259028288407475527643101544896307615964750146307643630356179060083212537484109846330595686459511413670028895465859200625104801505124242994627097973629388701332745368160433943958661587011732620434471953434752516300889264892601993383481803744806942861712251598257842284414479018532703965313892976054650493119356160375343610836570125595984135208858144851513463324072654413074818654921262784594610037331768885679663772256146329554652543620667196182666537218359959520640487373447367986768479356690049865773728822893464101644645495645789990942277176055123318443745136658817254946968897193824625004352713091539364586693037163461610554745227029531274589473439136719031811194229017046140453970310195630216738110523608252153050703282837124344467882388831655869027112547636146232128419155293322269151534578607691638269731323909643433966537195853636018641379754675660861679407101844128298270677245916464648632197201906025393746644747935639359589156331088656050016502059469743845493721162359751183765133466298710033641322695673604189312886426631499639261089935542445669033423946763534112844878057374606722901127449980538298283784508914281369100215259485672979534400489885635012015256943400401208466193204129162170377718156490324690966723761613551511074697422699163483755042623169220947352632410214381485633075882118692200205732068111055350257627392501847736193887700178775589555516288781930982370850856539093119383754263875216990838019811504971271187942234814134561965513166238389438071845708181982786711774045933283986946891238753458145039572217164429348667002073895897824010681935115994795228564666041889639939375309746392035535927399841745875214810072774827666584135548276318207659847622872779935856823864809698964395258440555590164187654484652315608380343906801230155458747362912808393737516299682197423320569670054202638642364893530131447323561786232486626479004756358603225062392293682383488254285988807823689624970326816348770198538378850799674014771818189112072604828307274811453659601178496502959025607544141302950229928165689956237919170953395467970338354150428774523269439827983547785973922250329563499014842407323440407862688653780817367752226347635123336166785159706034403487159145598933465382448180558146694646366105026884571623299183577125732802062268492360577677954379456089853938986471112451839958898719165634722318095157722429214588275801442848602206460588280236579448010136952485683212654030504208168989012005798685846313648457567290620007369182873253426387382890008285402767424846418325126920295352711068248720737915569822681294445183624459281335210795242867626768962152727596343218414570432083704952993168984104467915591430077903490155916869993199066677154134217182911449178242785400494612878068438509430893383276978857084981767185425466580308226843688652364715244353637620331368543009163218942883728230671757255056950312506550184791596555805167261837543511032877988663261143731384964038393227696952982994314227546286147780938224383713115819743457584534908006553341664156666719248999447433806497589136765781471784648091936356046162610496107340515914711779963293250544948433357079115942400361193611388022668480353191598630754776673996826483245205488855437963531851091932060530046234174447343279698813138946518524985679020761127617889066199205738156766410334437919059319452090989672983694593691506310216822418781211500100338044813536282113017567975083622004940785788955908622676907878079848130507097750133870284079761486103318008807623508129438762583879622257782649645708735955234993066393525443547608886724708334759027439921150010472944927139889388802238900311120060201282352752924082541480888975623824066519106698748907320886632355366504333647135612102566116445503460090140603662916851483008139640985121246850785129463068157175262233279483375954322947611351563290796086470165004300257485958297475727526249881894275658990174959016209276163958343316403653427809588956798671290045445442862623935568421579599553840345232300421482144664444899597166469743411400931663611750633314961511653821847847273761332792923648933961579442423261527320306926407129680090510724234315114269679927674699235047934065111768313839323256650951316789089088240760635798271990343518276137660958641358651801940713119076365131506129318527939156557014287255803497779725355318831910048815376131530439949150412583750153061839206438022953065899382929075267495867526797502149058051259495989350456121716225821270843993620479999387709502535517748167292482390486041616285748537324725354780773983664591958647375342387810761328160999260568705930487922957978174026011567735420451048252506043765626937870230539314133186101035477944832863750239179874248381469818189800864286930682642425619420974372982193186877610958081298967617617378770621726833330861743777891224494727601880646669864117266927481175167643968880030592594062320449575140158461105543449663612677523257752601210578019082564052287811401647869453050010226843441909211580315655438257581141761424639947177945144663131923751260226184439535825350993067904010662819583234547683722290009968762751025254567632426846162098136992174408103653214682966913143466719095252232877017142353672249976660311569403599556786506841934294092354092633090184547247078605795147746639090928340259155943296081110520249475355594955047785139241489954593296581408832691313084329148173882973248551732368409257036332220566133103747673509358504313772579666832177534329994535545316131781812732687969232838044946453248705043858149982583532022630315753077546629022083712369094949209155347452038291804959179863630452957025026248660597146066528292343837360821841887115528130819746602359565677750241348977317734792841250897061657490520535609337599780728231537067751163428233659519884613061193003738632975854082664649626632912060810938038164302636755404966081472810126546150781513530727867448484176342394946880448717405831118446826935040065560160619171856477599739012392578346419790050140360797701507661507136023673550140118099426702352096558372253808614305055899120860149671629059687610573976941362733486205814448542593375085105550613794011020629185986273990769510281218961731473129836204300054240928510166654887768720131399710294548030302688834091112666535532998700841287186256029086576941382075423108631184266020297775083500685679066123867649354375772544483316391343304426538756667367960494748779861189971419009349969544809547331697871220204615930209453254437714707218665585027715234580312945681882692811367708849787146432344937870082759088186991321736316899776064385112692636716121751323932790539784546946912188215831010874543041884730225098109150437841091126307833105230635171581818531811108576709323438270864698566105668863183681164957055144698551792941725975626576024225259430397593880841766068763452904398607024110592330780114041988899362241933685248136800263202190941234028862584707138003668730498496923078151747278975225660152642428753460044725887484859417379663287046065243710091227698304827986124029706033194072401310376045134070685778421912507541414915287949728787066540887271161336357055259019358649492884261874773667434255892926736954821763683547354149645202029394062785180701061124341961824041455953168324237154335245467554386210992948779528571021651426528838248653059477364835044371626807140814118666476113128938361082808552627962458429432640992825064423860083362027658614558064939744691156476979018551656592836987610445638089003658000289601824953456565625547452496357298559914602325579008707554356967868910500719625203516920349812575444846922315179516042318900493825495590810301127346169345720923497869971615484553055046724828752872337764255212498111381076560763047842359298620494098074551160618594246155630283837326224388516953075621463226663072542708633548737203022527422247451530583896052233885531444734286607418195909787948839314927457737125971143299810442197544869034921396745593112549707514425993481594469575099115511589809502317896601401535722559036040059008620440853764273074562482903064245521993705590873506465774085367842917612460214858425679253407983487266531192438678154869091352946683705419606689667467426412471495990381538755366876340542063757044428219816926413112689876372879190216171240060945336998217433272269213058219362439783080510795120367916505384448259781198816476352416894338965984574439925154950234079364480448951714457161455557607179475611467226241807039200953088057722734836879198382978227986334926587672954066948848850389465828097065160318549333144059924309812231117863621051675823116116710748144996534429952672742835501326425235358644726171310274391275201119607890285836388816287714061639160128929108899633512197036287830816228235184608810535319895389927505831326988514230477862676111360332851477170571574668816851790325263000049033843794866862962086801690204521576393643970472459543073454388167693123024798503851333143991120613173201582400387911184346075930656445698498355393300331131645815122338267587148811164637213530171348594473330656029765881207648233950604936406620939921305108349370738464921847858680991021753733918638415928198921880351495257982778444900732989810405114994975132620034525308789327492591247355356470217433742870801309690779969767777980912003567127675974270310418668757562546767928174459913346383583943309137141598998313751547295912285985095836359145475075565007714936736108975246144081515065870524272255939470927692527020175691696624698173253835331475774194465668504315323690133876161039909186774986948787880144101159494892938395932879560199246458803598760197036953317270699171049088151550536503357559524589440033109492955535343014397224617870119913060631533557520381787320835080671102896653550506315900092623118978750221604036739866964273270398189235940597140282817782432879045671496038717482743806207918620244201888076046902064278947856847900706258328692428910264931920966086963386504647373235571323965779894989996098003567036799748973334342635690034571956725022676282732679833007754300603745284455315801593907313767007518096117920679439775937163831913468660224184573225872420177935871632443023265595566209887938848459740688253520570963431600878112066150290899612576538498802320822001044246702444898731752953252012196995692241720320878157950795905736218679267784913355885279226098766075108623803502809525732579407872738084449408185472403143989044085217484552871588688098913668608555681383410381139006297780322869741388915582677939547203483132202217588906310742244176264231596781756940962741234836117080072249739394872496005316182516278280626948123193120045245083417859168515163395200613221703843560878835607127035204557460183369875977851845340314267507525137680117250890620807406915736402819658983482287120385031465707985950289367911011324994138871631926844912951042794937724706035263457998655429404589207006744439919374540320450467461393124378835809339938655495404831442681951688684604712660456563712749758823541402261076771748236829456249638472297243258494312987801011184024321920510385886330207539581167380292000121443234190045678876378504882526907458410820182517829026459700998329155146880368853664299761295196318466640616411186874136815755626074093630086542525612987073306814439913445384287812418149215040372983642932196215945643117951945136759668699478222839623220851359492565802556023269645441207682622152586749305747888050689345726984020863242075654805330095959840574915932232407712038875791594067194900686011716751020154724618192703160940209145731020976074845365075444393485114274481935778354937553289031823751505585643725261587044712866473421597402340443361810624767832052307251091293837288563423193591236826282928489645869525836416193890001653628196471774908487493937728311520817438259739252465898681363906757701640109360564535331641328437878873213636820163173274144208047752522520400069963529247797080734294574625894298860010484239555165370977397692100518402303388453957701105218930988296066948072427788846883315961375166002567889188157291095463664513049498521413708388458674229195501355587657204931507116566499148232740138751223531965823765992087983147802546147750894691123436175034538668605044063984408479603456917374593986171933362980261606218170809742524765344524802764286213502795701665466807209967585430366972707680602773249463388884384878871188723573935336038421630614998169818569009168953196809559973587892205371876511780561426724053861242295597645196880241755247257472751283361541492261525247923309608603398677462136277042486221568591948400440445400530781467383688714347749312289671544102951079748223975237538685540353819728202707679297563516653073171453467533437964519579692643008918357818931878239701207115622376796615071795797720416344689775255895507733452305791080214649457408640403596928780024018029662588365792377785250665107096967603368808147112973943734651954746182750510120385302292275436694772815828898291975691574883286032251519867513244260721735820561328083519525158623318811780999387486493785089321151655691864568579584267233894038492256648790130352177659558773235014064767392649310410807451705688298015420118109102514491666857750054112630986840354582226441850505594776473433610519874847579141702490946423020105289376997104038380549700528686458524046115990978370390456717172028595677259071211068204738595819042290656200039023862644673211862550010059594804141403684493478410491459715378469648717962058428454224971684168069428726406375030730376561000597703066070220994656068797913708223241178162510224695688994940748915608842211577262001202250004011431382670380596297555431643330031768098755081996743511830271251734295496363380758685493079708598816651903571772325561050474815785869928097785566077197918772901312486441674111068094342512378800453829400238147750258937760842026158836835912084261035587705617523214017978368829650169129671554357775959657271163527529728181977466218164606647421626092802208797000991785496745991160310784969884899440126251252983229721931306427081095621275264091940371456741951005186936206789380641203193370921194489081523837172675748518650875336817178301939727126981530040933901116467133514571960869065143762511371866370296511797256604300061065655874145260247900285667160780955922508458625165731939917547408776156724699058030049228116939787634840064666858225787331470244045250771773851818218830472703930494661413907239684335743204982916714187002418511794522286379786165351109080331733236155561738965696914011614880275287170392052067738533808952854554874705083812862378523713206527689860894631075815422001171743077665083151705710370083353463064187715433628459462032773616322980715500706872157138055561502461666852406476176225587967721803727050889212416149974605174757446453712551895239641283942657250754725654696797580156843997870855622539838436251729680661469713678354049956177854002480368976008322322576808707064133646183895355519699740631763902899383916737481910122643052730510321650948659511842525108559169119661232010025881952853369001057245742895693998699065920990525335722329359062050625120549143912241015375214206111744612719401297238175335539245591989288281388448672478340889124168787452580815117716245414540418306660286483556478673360480666034703271326179214875896538824324594941664239918567487802932398322337823065032697428213923744526993629669214179000282413665408527139178432656354262609885428244998956432575008762672942052381429565211229400251821492260377445564646442178077468529134823688553608248166093890823503184678673800415400737006562796878988890603984163903165883138486985661257969069215791296941607362133559780757025808816489133171728906091253972612108264642256569989258805975432249671567406715206191770165548570992111063279754425331880979050024427563571486141774884911023763938325497894915113357651589239582605742292435205967404442055913878330885426152137683755441926742547846938824127925515657755829182321200812749100844187447017400663853868068669331523060347274335198339531919694197785439342652731566348485629126985624815926233187513603649236178540710288901400508871357615708125644260260936043477355814628969825216149940047355868347723769050791912051449310616854656902516496085592424104255774732322629679446694443395943431186728032401146503535629289468745102130672872168497649528240506084993469941905153813735726331044947262675740170688309600706431185157392344441779248211029355338291376035933119041817556188619832584368779172305629225480836747831452765180272675080114894757351246483708608770836504139500250343382010060725841096022228965273324606316953765286704429556951194088454708269078769153916311087508199711202428135990043205963304412148813654700314924642787039298065511628135128266161190321667314806597416563450775561695713950475280359360977472007933668357121592249898141064243875204181130639371492102653105815249964843509540846968078741291869659985945932557800191472056106553129065075231452902696984418990184702696262726998646675096182035788906915751482489139825074882221882158950897221712354077470800477740415609805645655494574395770959501052162343923694464194650519985119917703371336983099445333570004873984796402952218344318071615290068725521300503441689295199480237101931033895185570429302076729128762234998383859399582653065846542596982802807435959189319316872891906657734093617350809361212058516852928510310811036113651111971272569065262070659596548016006923438374114306820231248139865069422524815001546450887326983953163422108455302759823704455903682712231357892674842426051905975459849049304233911467451403111296908904762640145066802532118845211834906846447797003599350342802387331981266666164407030370727471950993809325687686023573278879079457978885129869008119541337216977117499988797616018893783898376146113223082870802277852039590083092223867046108411533668226580176959570316833787919865150024541519709424134182993894797559424282336895545519271708500081160075365354179139834510906717052058674896827244681746904219261371384331773525056247165816699675834382879463784637172081339785656274393556334038880628733910096536319763228545677361211201650580372832770709353587255961959024271301412321217196285659719112710842235223946479420017508467151065794935270568404855532699535769246901808146209739806073309323594915424458314648953591295175896924285663361878655489754246028748056857604417047368818976555040729422751670824959988793694837254841917231985197403144581418732650755518848540959762611718834099952848877782165240741465338127497461892074283587862509279398281544818285199100125933312598240247862325064134406415518800723475381669056755582455561642812476234439071873934577453347068919812797779113229518888721158552430230270180200331364972925503930913655714536389936871857116273412235677326284140827595837539462619257837829243382761668977481410181667900368971414924059674457255208055407677728364880563354299757228185544368132902102569566077122639431922445779674847672039093997969706112024739708600994488919609332044929814437426541394090762444599313704056130359453011867667082523951726547598921616169806736881339687851357132708786973130577673754306668308779837593312139236996925177756910669087214088833061512154513280247209736730840936048138429781295238805078523302094502201470612719253465591737390258543970365603527726630221767771896193065043892726947852958243876237891005329940219417689650454420123307553711505267871794853111014523718190028177187437952401693321060879077101909250445173046507869533195258572454384148646423729171914099645483211506684703948243956773900022261952647247963092914312370077587621924159493246570533353461097947357048435337255768538322353869455874458102236171911886609971400116856250868473491643438884345159498781915242577944934063659253136837293887973325774256605099716330713394913901777002818854813383938703745166870501851725011266575935011715725210469615071527192866436198980727679096654213996365307980217778418279949974664600676238738282147274268317895129651059080919993614902403514115384159158782056119519885372622540957449381534096515701780989548417811285665645287254701024445014278307458477843657927201146222400523716091793064204070768478137862801871698780384725479281814472093832407639802490160885769444942705081565862090104362485108587974969283885825739178310648026651783693158123729352929695760421883619376560896153635023570571942469738134801363792582135877211204760985352947866213478112343305071596949465814952396195007807737131294395526830995688272551375431122781674824147059486943294421136827059162874123148713285765837301302957885254222215566389839921318950032949760082896097561631238713104217227500725447154034962774951481154073145074090402362966925372273616337329742746553932269466379387666660538453275391912577757053439564786556686634419328673852166257270339549699312998963633901612305054533280118438447467439428030509392255316727230058773785552927615469148288920362921730043590831434633425971888744793277655746302268708419383849816686683880590941932809978157743014925729859316016554693448655101697646463999116051117204186120342363931535280509703352896579006890760306657684960148660615214395269823188729250574609250414978068239214468391313928413546301567101619881490951995588806163439130154092272798871328527771796538744737202862361739543282422317922883178737444728871164927025233975654829224041661266754262563877398448849546417375553640790687178788679252341138415616152013136344327888313417428586519142391037398766962946846308876909126981979354523528847270807257625135939179289849202671287502567745000660457345283597578950110638595796943346858707227589674150875324510543520624510939848449081214657286447918463427313873018633227668977258384543363917873268329470223947468737911193875769507544063639249108891417406209028398567313812798392852852423759295672471458839172970810825725476290994015224223619459320241941100797737774292325545804692646075805154427354206778995388687617152929637830423383268158911702718985021995635544482119257926302232042003250469888804469312473079254784809982391554214477061095713496285131815833603595099093531375495132614925550353042576142518282900507800830805551404641317749088839074681574468102108501517007696837528123244764088530531021279101003993775465320178235321180944187734115655720047683304749244078366637290398731038519137825756967538820864359623559007520782337035998677609494878773068844818352061070381395943383084435007674787347828606000336062788487710639609839161704366912238646266532277700074756886154585258831382914079558080271301823023169109812409662299934258468611713785946331009763457476666712868964789830558356145670152607284890836838798912653945269282231572433968818101485234121172847011660916692621258777979111170441912978909510998160661767388758164033733081011932380992639976263920703938620175539832740125801052344739925028497037836036728155628807480286910180277183053193489641019129175610868032272317397304224416880316839828717640328046386629372121510407497866537546346791229370816797902673069966813587656184187985482470982811720888396387004446158314901723898419431156270408542278423801059025271259661819130418153443968594739566382817656792393504006561883682355448547262945435907604770130620926918363757976953848350211429852326276283752487618182845125864230101641246486841032564018410202291841351024986876760023021956823234640118091951093764337161461184889969874915121600089853379042439282480255148523112393194384075003488595829041975772216555746921548161724848585871438928702759691902469820984023439087851514353838767850878864137914965188861176549970729608035979239895549088781901633520701009391925225848113290346395896406307370535351894471467181904365424887896641398945340586396588600181311894779268022429215841909051431730657016091188804860541057446656016448756434665717044817662150120119043404391686590285327447307649579957743418154541574328286161486998524546682703887375712040651527264219665132306895548737252190629595668782961598803582529924310845412033214360020109749889647909441368211113410945343006007551166122638240304221420561028806314172928337496353850093844773471146229515321709695093712342805892344416577774620305762801184296381661760592477484856788375654178771440962642751902443467090347273487567137735227417601825926877602587927408831404731120495867296856825838390715827293145476596120277115141931361389889674100725732980562430618148886241924782466410653403267548810878220941377318821455977845354311703909355563486815978715332810527204561099580900232148744382002505886430999936575801711472770505109024889452262213170730199152846801063157426564236054862628996877691989976864112942794869520490961796454079308657187215791995976202005392011040214053050529065919413047187154946361609317044805650602721248973865846683229915232630886296695265715797058416697184984887866339285591561332664198271800720769306870505101979975826671092580193636232037660775898897285544394342752564467085780710834481585017646411486677937276495712415392417610353858125098409671602420552504868560850125810044488024044430321847313285476350245214276960421142277149402632557252808076639954255877719989714745458300434220960527384775012891915654299438341753049105303778818765731820477865383725219128814765668920663203044036262122332658913373897045545072270276527480017590803090180912804875667231278832584207228156631478449811488017452724186525384037394940958282882505892017659062998629129996241272801135906055735725815959384497295757490462283571401048442501765049339219250238455371900253198530640474889044872834537023967010870144239847989695982859689458906016191818049186326588449424436694881555069066109595849035429437120507501609087816210780303636526981985861926318589787879821677229864705072698492019894914807342063174919969765336441118801897226202226097546627361626393289592790704096950413114551796962810475690170943431723554076633748670590422317457916647405249827967023429139471277385081510409235338048625443811147834564677098985127818234821736575413827629439875609571332475874792899258578930070787867657266749913210551058580008180975554287643241233479997520406849036847067080772964509842353490700654971234423276352005334835219181416804635952553899888361257587128583889670457874268916507331340101933568165767133491673288323159423999727787149796539642229013238146153716814319240336564091600818370277338752933458731362219314134538334351130054453411726268157516064090888269021327478812552606110536058498706617469110205620180806483709837936150458409242781615242520981072240340975225406694267630403296356903973931824670559264241168374005542966428900129487855197916449188626370750959193631553278619471820664463595422820245165977177652743778714005772379342714026332465252591308655190630854781645900954851934974314554246624809313234765435278399674413937425708345633002261001270657692232238393637997102557057220414490804247353466291919036626057011364036197427829491793010989161672222391590290781031508710631337097375223305023769931642013509987207782435061648904309285391920002223075224529626880430041702107550814808903787695659269239260622108206687378054936506364419819203259667560835889288101313465630573702140099311068346131040441831485785487228463307069447907006085487992010410594046573749745587472016118784289458395012076904388824053436017729736557227077681712093965636855750963717566349193383888462997842289258984705080456584031276922038933725240876846202686913477564467050585848308951330897169094128814089078688567462072821800940094678485440578722161477316845305988040828410853811590803409143470849874776685785250298056415118248427536830100838102980718442376647036466718939653392810442262045365732179691400605218720647596595438771691523213938264621253456481803908307491053294902732447826354001485875251300098259926515636663858753570476085360694919874308869414563353059232638723516654417836045793221799402109874465072350423081092987170805830028137714457090231276235695369105808748102640924020511055957029144867930167888545423764344559303850114769369486142991702901723911984787241247397532238177413079188631658915961511148082136364739956145454030611991859023935604172116153872332885499427745775845421203934421233539943252921584352785005059614010528846536909266446919594839383470696562393148923332685819464364917350763694235312191960279869107753987259585927679948781564840574370401068883800501046527576493026716764967201703263490228337254012947081448632350387943266544107283542408102165571335042365050181107420753682834672883897215871542500019538959956387350114389646294264382488177975887040521268177683604704001208998621195559092407229642138099288222378686248853788871468293915339056574669920460637631507663386472636777081826768964797979205943165248546668898457453605962326954540659792606981939540399891994318600883186192684438065473188748715284948722143802527855060826371835659751811749643351834858127907968791546344535430801397528808362183329945107371189849247758185106058298841228446449596182398380144833813650008466952306049519712992219887436174643094140980040058036234532738999493103399668232628812791485434935349049243934583453272437037016306185253725870330486419461378785757609912039838612668821052901991489008200824903858780761814984635419652405817620111946374558813917617288984612425691401477922592024701227567930181330738011048956360654153788315016247733034643175114671864838515564013765661061492459419920009528716550696349357099193374240628161777483356936300289767336581323498352761057906903950439725157742423254422381809113671007446786795322752936829925364352713157921115845363221544056910284157094510983045390726561126534283412741820927734268192956793425158505835702069937680801916363184340811579790123305944669214849175403163798546156050773498568236604152969083938353960301623089344650343440907557181026405667697149438771353667056237147902483389654845746559448275290068157345136637158889414510845530235248100386892123537814944393095432348924113153884736578363149737887415873142069751971748922942069690496984563182240001907428464652441588016222403624571804970578800228462294557272290322823228476206178958209021804600828361078457632813105014381050629907134516605749783954308903782973331175104908157255369818625295098064534224784931286048160367624612575100429394135643547212561486434860726530244254487931076664983826197892443607822718057637929298043994210376387735061316149106952775239823162426526155783911031814321229268217486823054872618179965119536450163782117824458377702243601680684475719714764239641037626272249527667463935638780791592768688796449996315851593177571012668186381769171753702858666960142487086037836639607753936901714364490901933169071793146164640254565642886428402109734094154022098135393651844692526365923056838123453710167475722373332849633131215954303743086494710906390289854251849094169992490079583859692699957179077492127035410035189011252108710267446353243176923417945679694507758164363528921376557921733129975957087306748062804687155707101290024193717649072267741324575939215686405842087484782676340485875608263230469789726517078658002897660002980030081997365574362218015972828694371896866096319129482219455973260674901491951047448662944780728183151157684926851831520634088004254777865950608856340598942151320279106273358617414606879982368577221933508225292171676821796261946440888235162416989883918174361446136985592570123681265014223229626877904502434844217900652496748676597616260388944853038941621143274731965016446756501610353586330022308363391015531600046197739654250309904146324866253013512197875760203491879010211728647915863431403996471651637743363784088000159069095510068190981465334001161789799439414149350157358973582467483700062460530402221590152214621611823669343519838625124142852302410951674991117486680077443628312940977327358844738702712479623128413659682103608520123646826082581187133944970878147496974073911138203838931297423606690795276606931107667914317913219605291804139280288073487610851140806369736096468004441030249873714034817836899343475963291578580799258767347280338610054173920909272326725031889712581453984528434970406702435912716762659033980845779059930775948669217284881822084072194534865920829327320866442130186586457887470864851456953991403877795409880850378145342465278654681100177196982100437149986267764534578302462030244287251971093503318824686797246719061180009970232257371619148215669617094356118109738898358315964122856251951702115394537953076838612402450009956281997105548816264668052793391687709131183161418859635741574090591810731539662724270683994132377551897348227933921651918159636729567043593730969360895672555816922662078650032759474780393391845685079755659328637167045158289938394229270232343829868635137932866113592132039696299426938998200691896275869921744750962231996884029115107215883607098750041219494171069137621735456223898041165290011964158798516549221945586182464352178503535321599166736644900815542066763440519197060705664789344335459412897080630208400806694819897973748865707069978385142524768859171891622852589748832828395877146564933649338210407202130750697270011131819574849428068271910913720581362776706247640827554246432725153715257571318611242787454609818343492133877110478098732050763380247746020605177546418476079587116908651303619846064866553134180326592443207041780325121985087707200631560020056352934428079152119897242574886432232162351387397201840780686490959539236076275749693825543387888097020082384437351474396549007005889295526394118209786883428620959500579821277622980429514000408315121327298455166959019490974046000149909001126941738909332285161657220142685607561826540764396034934254551865563590444708122372035045246582339839699091550441088006922315029672010718466311073552850644367402093721957740342113987890876706342469929894156231079158234034625454402913418046794127938531514211264785085048879027747765059134482572034086959047429015285469501865807150340535476800807411102560048123200688067944126587647753271623317281475439990355269121361961907848781160127000873978054367313139147850534841464053453427700749387401611449692000048193317781952520146805852247839967706646176939265323086928882761807738908761722897642478780633842106995250390201999756943982216116465971617599075829143575473311560654881237882239566195821009535887628370957086430192189076400837099913033807836937069071608648939333132175388200542920479754491784701936885753939762232983054383903840688063647459514788517527693190575262660789844422165017469221970795837755685440635800805118168070671138623939601268945102249882505592527916291870947693035075241605442829295915315356014425700488003437845925058522761283615246660036292998721200326209455363389760267425681442981035736548142560988183389775446415346949387241552601687755775713688944470415049441523094774601955840646678264770575344458326316667120437610251405079719796501853991010000435961909628918920947466249680076389349470107344445871452678703973319306285939366045594489175992789563589527851755205955044820607209655826722116381280576594393170709029463845757268220108553102827479308901400185826619302494765072019839241463776265576879619972548536495608325706713240803177804771826537146216739791599535260486299755748055321153332611729691573373116817871674960970140215041483300598719546315061479920347470566003105595403407406942003238339287773084698657469016214165147042510293891337270133140001560259097363924530098136790645399738304165939885196156672554755811530311103282022490769566069315804330204611180632656879580477596003665234002244672250332378500138613014025668967186210166590976269829525886054566189967281169122543432592567818447247565233022440187636268415036019737057175580507326045983106688976226569977089034447265275986906616981922901527916209264141251679666315697370218571335083070071680070523768586888307796272363702016484236717524067389617053742909674882185125024102519860865440711357085411646879089963107817419775481168496378515968092837289486950705359668586465009700926599616131139307598299070084024890987356504375161413762651149525889823650974597638416515805330981585027270494599000329690009682683011293984147914820565384711040698673791063760597959639044195928322925104164683459816414595205109363122662542315792062323605756679234726516962436632707090269646433230395953909579726986254688226080481704217312253106205602623776516689224096797058891095397762803763033718733097936562878405521253340275271989976126927407455136725865071476518540233410374216056851221696582286242588025213858699238602140111110176067969578841409921255112084890111277424843879359287200122618219283971909650235261067937498241918892794823490224241300719455553897024495730849037534208841470250491140731162379645396826487038865732281509641491599284551033289417458476615505253882371289475675223357389581813239369968274304836683782558911084088302942324323733652115775506353082428477171911860762470874637586310652720585905676778736017455492431839862098859947758014548102561218381775520708363282296923254638088947880259088052248897111225359149686562959026430411350106501842500979802470211944708838115573281087631019657361869248338786172237561803337739614904925998222920020135150691372389937471212842218230690036109155159302488241516178638389589403479191983616899336219074976678886813637763461271739621105136515124469269640049163693962070382534694377692628838154443104715427465316650385938551285250287952815680078673324455839270882304955263284770271188307999051380604191243490760498334215954557742084007134003593993218965721475093258106633428140659221375210859996393604932023432438720400463863180373860131538491061202796482966235672182970727094721239108095407592276349612743587606210674452896832661406295251978644712463744461060768187484914561636868914897265497667478683205906974384051920381305612820120496072652680796503308948078526364533074351918567800317209033146258394566224340154386417743933524519184269522919914071290786436197133606173316714339841054749041593095759646827149903898634957395442448648518538972215994870090518091126555610649864007664822251511947855922133171870699493062737229019585144569288725284829189497080038942936422759225089887187648737485500646406450671708746640608587808071452546881044660203573780362856290371739128057287500481179150055267505427355746724920544977544532874175083362215201689259166311683798038847121879658153908458672376798448165044173250106574670605203904395249921631501007934343706457072072255459770303382810510679506572309580302657893867448546205298850428664878749927162182754285643080691187208367029713929230048876444671154137319882310853867018947934001874123814064576738260161854253923781664616861168784185107475448237621419625941718720650374015050314619120312203357324623015385457760303202832642169943688297048355148434746674377988339134827612489248176392593631336720424158235488219572993255661322692881957803092216202360261823516497766786668845844109876282413916430626648945555019904902719458769473261050649525738223209619605752338269154240387533055391633911416933975309659650791724070400132676288632321419030115895638009487373663428442986727806127357361660991940372940832033993459952238724990640308285598679045162521463491068469432684439211312207428128798466940170532057907739506211889182817187802916938726582915209865476440490995713616821074087444829385389754296417618140299470741811250989331621960717881224900816293952374068938254595666945379353297579014372166058058651943176631852722716419880969897666746330499121734870375166260448195225371799453994140512366128491975798638486789372110563489381293264768581031802056549389487734292121269711058735743268999944825119167883782356610046855840480054938278177546116805033648273751795378397035586045437764004850885697622821370565711943545144515975050117011939628291855592362792773518599537998424644080010558973313127075425789144612229106155476776497517387309947222393107098853362372581824022035128703699193921159117671895480081706999452551601633317902340371266381039545720324083909246188236660539302100926556900432114001863234868943839276154808475907892594218203197053882648504898249907314673960484435629381962440329513460119387591839162977329874181335336245560406376884928452276894883454666499464805783103502375023958859845012746165199287150920253356019022406646112581568866829180937578809004314192193397894651380840537567735299537480792431279626893214955052226652023347089150435816553425089487466118312612211177243853013998181696084805623876420925313937559123722339389069823673543785330808872944805715311991411707501762041775657343558807338571613168355873542601662215918654288688310084899539043683498411090055051568024197737944674204814048292034855617302292623249788543883718821771669345511610042774020269864602589009542060192724939008361481907968842490762548207055888593213312899398707255923359718172159336113150247532031680890620463073906414451431416551230838037344378629496611752711466202556033337827118035160732136882636173024205016878534349656466823860579008334296707067771598565309736487937918827333429009269950692264815455648316948260521099585595091956080972547632812845553347576635637236234959012155033119922185921167307710928955650047571976406711848564754513286300017127796192137134189482804068601302233661080038554027908543765056591352595415344650945952118176926578275223416686130559584042003919270350427823454369834795504184697160682437164460843768601262578795261269125574110114028438236917092819224853630448467134331084486862934164916401143651549893907804627157535696628794550901349539117059166350097674301273636824953237495796418362453424976417093268131329842206724289150102234211232967951123705300261114946442969921557260516917896152699754224432610212700952669437442746786316738287428794360874627392414068917922357083286272258335240252591513628793173311293382352221481990214266946775695238214578926163086429131830273646473091167940017452641516105800383224692893238866966532109090906439779902094185272299332837713623842146141249718437303518615234152494208329769700555222183778002710670528756040261183826980164316126786237183471321148472390694752866378118307759010650655318871659265457301153701322374617988519168852867567407461144533379569865747410249735107761266278805585833037892260629041228104827461401586117581034341046668445702514647335888648752923534798109073214743757790172901166146402081069077698363954780316940576495329759378769485722218831622919715020201569338233891203767158731584771974830276214007914734869801381166558755148730153076083914973501492326383449464627277078295716339897937032930629561555029836675030326775895301953222183780897869860595723168097646136022212653169134422559665423500788280122294242483930448570484106447822946540980562683229499302760791106653589165160764970329802596269782983489854810433956777059732709151988071462437157970695147006991326677714893905597416272092953331465163724644257211616187623088136599242540373055378881312920501891603899976845180295864758842948001055016781897397919016544454233804907729305585344716565197636018987513169922700553974549532691267118038550944528759553002164881517936023651405404215718108201686105062132932646998520294618651672512832836640680854556350250489564492597495899719374045627834881332207161614607048202774696383726790469340131833944475591268933515326039944738890943521158644105807154446060889945342252681705690651383189597166999431243388506808428048383738723177018512685460894242789218242083211623810188938588978630145095852178978614588559716319603204503777674515043796283425183767621580595969723747065502617198986792145691025596519386588350793396660930092407938138110954909594335058281180988074326855895219722228858631712634793833194086302381339957040473603955457194764835337569233975225600726794744609156921671567317209037850028429459256872104809970959895693773698710687913158676427957166148134759928028737422736320341540422740494849630864898221905389318824999665855317399675725716445188905422395324762539900277096270716636474382130749520034113409335900322077488942558731278846427509770625785990323366699454921179556413625303511787658184664947083480050405200098846542691620109377902329617425395278714657393262332328583726952232253365186803013042296848771836449253724925581201023457912057727589054218199518261510749001909211365563799590739080637464495690691751158962640049694705872023771969593842576938489099255113412983025372440494654117215242212653691059977886277226275576573243198570838024723172725720680252545286215026936138759148352968221252552589214382393431607328357337660368515788696943269374956199599292215519351711839300159251919017634282431506831844428413220253592136468499676682367061562631668180019681876813221440809160521804738432086450042932862991576342598765603967945845226480919365437363549493150015877407666093722231360173692002941379055150715674067014291631149505078105542547395871862676434353117017684700401460950961198151427102740580288342331612088941416580556890998318129817060290536803060830866628341188410731673496026060199279347819827514224269469278164308860591343032310386804395644614592377892674083015922020058902043476196023509962769757654969754649261745612699617090960258417808382434537192199973959250146304342301240168221706037486976180491721014949004091625285653853484479929250201017090778705824248719123112832917483953646570666733827866076493496685108319331297154959006179562707802822619924386240080960842473192969792429566439505599251506641049281423460193606133571400237022131061640166339401420595678451091246748665123335998921804680251259558025516577093869361699534925746829909980905927912869853740910624085511737766018416356933382289424455231839737976451052332515463120506785522261379238002419287234616091420764080330399969401564863439183759155307743331712863642188078910873043243998417475021663075203374762940348544306752500140414207146956212715093061239188066467608928418755166949736477993809689093768352375003985628448047606773940519142219297523871992469960650066039431467791374028374625881487914915883864187622670399757665555597195822040985592450321400471700968994237894066533532711473236687756864619173179258432724787156638607497103082658353094065229845733344189748948127586443224132692845053786037819096511432913379304884804668499880493267384968904828847072273250170159073055840899297351395975108213257622786390620628677435232302002746250165656227982831542549985651697926868645561998458472959147470702774303281488542392292077894100264861982681245149615388176680591201198631495284910181823019579846985161073616843765542490025719787811193295809073159941351249276706144499303086790040135126880945448836716645603693262193888365742192639991724359309736762074719635549018368838971892175785410713801738401717617847230818895938631742362559796776461534859109280695098944856383984352595711099359220983743805301248015560329490122948695319403241366749040362667935705022843959959535047104080029532915399840119518262699534222138104510334386982784881623941146501051445206752396013707325602505684121000339830788677261649718096280570108765755351384346686169892316002087002361457097788509667444096095055935791823495328371377026374094043186516725322857923291668015327041998184844994947308392039532148928346299715563052273237656941086094744978056742363887360013863660049412496329584928365347024570978435426516336473214139291055497200714899685370635884162119386823180349913329418916768357744676167159726583943502527075266227074845693899423640087260133250453818735431291208183795453642218840007248984161565118385678557117179411575433145602041885572274232830151775968872994186562873297228154253170220822307189626873997794881884242677695013699085040439164419728372656922798272924215533061687088612564615762950492830442276814573296551626447726267907486043832282929996257741534539139305471462434296968393329157641104288686445750056578064030367975913876354268231500962465296997140876102165629277088552505936983513966438283992277741101465538479341131073474811339925221441176144437367969833637453549866660340447905006707165666955618706873507069929029091814153894711621747188775683528535682376430468418668418619575592281153239015789363156885327360967226991165279555540804868194803469586974831478278656711140619990768653521658133393185110007346429988584572066423411017054026628528699537929009605759721158396116359547752722665631546345708174468135300433148994564028268633789076493427627745074256734852258916621110787642313349888256303981060413811318172088558554438683745114988970505384895462698687294975425177425332845885496073097917251906418103225001227498383962972453265765110317386642344118022958875751832227477564857495928123639849138835611792874328724555337596589199864999655322592778343098969092831635509155022397446365386132774403828492496375936095107187756267880339709294386653966658234460611714098218846541303797932347770756698771323126388989800900275764881665230822445762985877524211312344261766442392962129957463941233258969022949620808169917374865208855506360000125827558767494472451789719959732358487999318582014531413878658171159790872270894518194367125346030378906281316762011452368286089819838577638126513637898808369841750253870871294766699032836036267002416232246360020938086864291858890268230480683948474540495261746429429603113513805039493911789202689829188064871716351052746911676373341200876688231883866434756976722346219812706360703495775101591583646825200763009986793722595535082307425258977517996925545454605936053005563924520382653321288073904523759160088653370920208773783352026957542479987232146673467280066499131326292724411438754468337964561285187786003607536790656642721692829677827426063096360994244718267031471854566626849066305520868250420969158835440751372602501948588469281902794932904526916917486334690212656844833312920456200177959562345035708178110662767952229409099186185963025355081297262851133648668004408877476803157447787414314763227135770308635347461212847026507454651282850084941811602942058426248834987481396417510852475409911397539619791759519045698538661619330423691316376040357762292759600546469420032822489436154095991684977781763216647343126167796067990915038378140723701823592218679839913974572887579636177449485883202530142199269027440909091315995165374291781714614646641885548911363790012759006880352940175287261399690199517294611258432592070894679678245579088910700598388480462337900080879599516371605932093495441677748507634200595346380034693989262166422386111642744403695760748174366363816642116924089943826089397287341738958107677494996555741191879758268499163077521044131572840793356053663061424939219973204392952296293907578270794002311337675817392627375242503777130066268034117919722922580962039312355683004622976604879126407828517094186328637197599332170016677167582570292261699719556734365167204731060083592683473653624210748740497404265444915973726336905416461479789111497516745208243786154883777197443695204117998533361710372785095729865109001658322114058884964565712692685613733497193117213475101951012638749750452816089250129928858566853884441844683012692138726752361940729557084797357141027314572699258794132508117585269434059960700227406460891380234353169151122877164893495626751222675655144627198825569267935786630155741308741406121641352560137790082248860450039118921994779998716172619947367422990157798568525796937322843120654381764816646751989955550688043099470347050518721033706294729970415042794516182700984708420730269728874771039379565758895001625698468072734851172566074462315524169593382602729688050837515346407099916796816313022295013330955691570169121621853252457765731301648708601156781112558336782706480186874289262388137222272684979382524680212788134000631784156402640454299500443075914625904605022725622669150083774947170787024663958165634686707304215829616723922351847155230014960126732942323860245526500384137326751884668648626220283887407836228698502818053562048406476053600870943975419896500893280494752004529191914197502473469421968604001299690661020281494804815044330609652870221987680026425423388153379531748070032549196273869178447539142738723117252403215106057609977266072588423778092928037928668049258060714559597657708722278892119771843945329872548739847902298129000739970960927342854696468892798732970853355989637919783091691633569123889162818548222454263667210133748982638991180133428111390657095379395555159820834286885750234379669970039444512108670630751429126901542495981131443164059483088853575747174045097563396125345190115972098059718811650258884140990363969103379559894509161964210930238747841120806554204754857210813380598884191135994697572251861095058558413121811916719213930607251273807172530913732091468228541586436882679285975591640400785184736906110608798233253923577397872439290344237091944802449475325531531697030120644711448674452522079950563383707662238923071336697730923892469025928436274356590496275737339279655182723920677937294754133841376577758491881907312082239291107404774751783348501279912383409447580212534593775696122780655674987644149299630719149978371073741115031000520181491666866497235025345664243041752036553914209934370424391645133063854546958495448540302866548993545998438571511410172880143135342227924938851489333214769996478915520237241609301994642342166000556077329780491278729550770330674385149016248266734371942834817070463337745611171750009204689304681242039560835089221089218728255307606323456739967286444705435479714370163219280649007532299218985287054460695621991639451467515905823003959844242453160055547978924758726320234212821283797757494110486208887069058083383734595373371248009140440556059621377807015595496463476566044682444741902511275038110975259494348175750107471414642821818872567600521137459075981559693656916930222809871383361348875212600555829805494852769733215316079207761540580144238782704626843534062414805528930560116827469460883757154681361724105737674652374626682753587166210204389028964418490401206445348992603099554752135104518344352110988348501502482588307618606186017288416220226296805773216377428263483630227887480773758100904549930002906651639586529496808274831193149119362688262047865770560482851008262607559032467453647311393519117199091382093914488237798887240499283789815305482191273189190995474389497845817999658161607070923179993720024990988422544977370139491363486114196756646348292397057677436672313162865011911555712806605685349386257702429309529907416130639521224412286755170064881200365693551159286191852765414624099179213761165947923629400809670906218770355972708023208919067930741402988293123087534411848516886307649494172626259552626225439231393143125091577720029595965220733015235201614357254906261751621827901755674302464425601713503409035113996590816816225712352471356336138202412416868104768194347356767563153023085967272226447601128880706268367414895119638491383402308038747233761252704800358379275643257056979805522188648910155123558857387763428198049445290636673999062015872618164817268960382105711216252446541853992183198277641080791540794508906470970237201540639123641537114718741783619148807447209271720396423078084301839652734682016740496191331862777844836270871393063919162585589087377169538932630785408573414556586689542173550589878034253261903285745327752610964425461954729613776848382521828262795475642707861766598575342115866861320637358033414469178006135407004590474973682852480494663350800715280229556873133002847700604836393937490602061483757598205665316289640146861354394555765630430801642903431464124486890043944396592900158171952306295901412558145622506346358755487766797680014271054607733625200548547535632956529695385497797791611828911254543523322446810152487546937920882605011436220070365394741677935851857122501916474752501464607425369561296897585049078329421176147081022830867772178226652511684757341748497270606862491804111106605158360803678142829842893010742968774472427092354211225415682986508732821743838711031391379138932267936754977836857311063497874292806219648518153632386729263550549390036861640019187959684389016402440026716745866777524995825804503500371055899950773225367873557127449598320509773243411819712395087855362997263247017035007200541942263438073522653706737256710654233356263611986815934759857480297224158838345164883406624436740043459180029849363896059633944359335120868917198007024450336730639133741676937918067265227514136342376386088317394933153792515497194175644823617531143296331982455049235896730071537842810707641518342626834752105083539342204518036026696462543395809457748489646443627282489779916652259194733637175073687556500468775486816319893142481594637794697825888569849649891518946963974506201704012718445860448103631933729209185809577674073987273233207935285889475590861007821535714474579007383621403594870049148808513568508533879552066108108760743335379944158566605369917647299106723121307898444470110381688552856159945157309160565100685212418150438135538017384405109840395450400882599770518710954249066498121475500171073564077536788083935343168642712140414151952875120656810854147697553614928360456503127330730395823413107378955597298649340164803109412444970245136584834492861034254670248130019479020934057747078102215643065674293856175720880895915510499928428240944826434695808408641089408065554506468273920204736896256609552936356363967606870446109855032212492711036583786604906596409974136224549500560503307064360109308382644329564620995553715988154506326859755740663070461124566868411516707100229172371270828913714531954666368127968144392774797126799043369079974608993073235956357993751003390407472589753707802224190675203542610120591196993536398221236713429550968347409625986574846074671286408276062717964998536421832956685127699741454273768125575681140572131701368406154383742514388206288624679972428259683345474782495499620622309382268672982287566233371519967761883384441339911503398297359456231670867176474585663177667312868725638693113711019957976473561202517812912621122767460576764032283354981635238800032469026742376705292165927459825296851480721271847787964511341304867432514739094266217118591112922791608294235131781969135750391766525818200119027286536279000306128942657112824909816681229061871254162658563727732066716126523926679535031070113673531793194825266884929591177097610325808285195657247312356054150702593815007123414854888562545808676673578840854377350560087954049867789877262798844002813805423528799817768766650384447142037486445549371853613593823924638059730379841346992953343374800884830199423924952084978923660511502284695048056126101379512500552075729444911059739159343929057998249614613914816875746419677459250045546545733655121000729463419204209205439281434769492685638738929785500494245319474158129094134141823316982894997278477323144040640179643582281434009586801589611419582272168109662084978132748314645144254653753545469739313123533778236447190121084313819496513049294951771513344623492276721126654995410403042118401853697321141261713444806150471404424868035018039020421768660754298880702737743926415064394559778660726958536387355136987391580404984877020380071009803795026917274793234354099467363022337813010073493927872880395019795067416603916598645423485851596998375607236599173589906133973889356530967419527904347518344972313638350166263902904207670439870476121349391637398408622291750850703174619196715876661397092033058843774580982029113060987122306940425922258197957381887098154104484523239676791523988134924115059062304535657475553370587168878950564847568466624173445789750532964429598713567068402205224823604752840958890364244587537642517674325805680931891878554106896873369653032476230407426189642044426334060263267174570821308139237970644415516604755988599747467475171918928319353455574334274936310097436649167907348362206324338751597209271901693128902323611683102032470045206595631583573448687241829851342695777344885103893183795279446314994187634040160198264965919869925720968208748939520489390333121998761167421303407529479633053729238021938087036077893339728122741726777861959494191214793212864479800598617621428645948016213064297092866136152130091533994473110255183450282458091174447923078107364809946351948789313417905589690615664850935394932476841806591942085218925703769894923339494612570985600753202408831989880305781435729434373182705536090234744835489600063201048483780087140983169539851558490546280638277277085273857707151387345908873633324975080497460841136154380282122122594769606331264238763024218654855087034445135963877614924628876113414929055587134057491459352839760100864397183973574609359094313174936915838019481829889344715745177345983850468919288897085214168329474280371116465655516892109180433408038815400193581977448848624539220484168650491952020454287080802384242222118594955928502179052360153434994833905617033458351951303074281133137458128775174994983980070760422572882957939762546915713974450057237057821572002636929995950312335244041936366992537515192933376253325242616807044798602152628711726624491876746895542943273940157631961717801506326213467287695735148358726145258931583447753059795254723293064830267391700580624998970001911973865371165179072295367260409521613326595216817962205922818408660603454602792314370101827461783975827016116806204600307111399849330326757862950945520768375058354155469965115515466339035572680898853597841341895775374559552399546310980761419320966503841633937823504114553056364907120469253754166568288445910940798643094146063541596363840280537406552696658495704752548177804702109366724100624056513900368612594030124768661580496480352047326521543251911962983152190128765537334394055714615051588633389597201624690437516816658134229020147298390871780514629205651360703668221069787866538215816789329271706143688214332519474889999972032900929076600736024106812938790777504482755830098423138219213569995344193227130817096410305496592744717099071251418402795418011783970822210087886824477082832320340752464749468534715949220965825297659120704133394603439292037858564159219975407824718453135784756310970083746891147480105075813452879071311224033784106407398232554591455856987982808704546549500242371059682430672118968021750007963630458449166667313299633918546718622127322504907575977529869418740215128780280980257997197567055710687172953787038062058159748055604642230918223708341975818712209560995598026314899263321401738370760318016110232855125457487323012740588345759486681008934395024066989608917090775728007544618779147781718458774346209769492732581101578913507399896689745531359445511147286652179956677787611579307689783720826617133332309737193768523243026478214469933389514439512031962097604270838804894856485675091671559099880485748371436306981177211382816496426632526569289553022502665171369829579698419771767305732965139512095292355975054498687503468102068594098877044183870042062493818996797342683745051118915764512224735037468210170362643550223134125906209779817463458977851473982357389783806385070313317500163217996947912660958710816671187044652373446755306098659603426571768778496862186962739618190485918519317319282402254695782164855920030874746886012682384983345051743051231545338991111792142750113128463528895155011446832055417050337114845703696710043798988636050494984612736173212274703193287192202048009602293573006071697971288771874209701232063219060765748147893915504165674953193261051020490240214221911956436675296462312539795956517671785966073012129862190587981581445555597466740689138539494663320469254773188657093879756946550480489734409212032391414406894317020833701362470784262580901049208106756340489553545909202667042436634822660517375691881803608466738886631510169524526270855329147361306216592456169943678229252829119724268229707663674105352539627100799483483065216333360421048610381371818289479336573482045701151127294190977220202175046724521645874435898843193954599487029611317062027692561663597492700473504132490046138469596201933920911228199677327896793175278103585949634148009340421737326580968792687389053321347659115355256186161549535389360493061959214328824951388327783387216149011135851375310096434274569968660753231956494003362885819402803497517279380862276955742387127260768392017099791616575246376358727816103037663609763121367182240538631429694850210306672753081026347712490866348626225647453179016658523077996512716597629641215558335016938619156436923718288211375620667631739827338045035513494989696922114317842311721397248119644997097337338801389053213078650082597977149037311545054727468013957845289903069963002975121701902970053171066463147280281737479781949018096477790571214143625211871929486725083928890670187199832944067284239466773860557731975418256154092761415709747217423555976965244005215028187703293649854554943063462146916888729121685596709335974229067759353097174272342844936654433452281812382939490813557312217507876800469296205430366892175886770077014298188644719918438186596169076803893594715409693387297046435266257261828046098919832516753999390089151378232243059983533474641797871385368320080451420719645036175310759610586556350786100383731289187414473310617775495666511768347728619259590077094719565722880157636049130608947890598605391030082652011926176478178973598063280886734214372079759807220974952152965849014368804617623448811409876389557299832594488825495628610156793600177487079126734963966697159149747353797584236695200758158747138421040441625604708635714200557785075924466676751287193155109207805082066931660267224491620532338562334055948059990065591020250449071810499496901169394941860074947579475732201263496326440108171922238673131977989015458604111728011496080204192213512804805132281949371597593494028564955742453437052615832696067851543220569557852815678405305279748402052260185807777509524109974212452084261788319668535740512518573270344867338690396022426211854717424072569214818392859268466403902564009469514404987207160285310788436546472614734274303466124492235893448793402970483756765227521709686713101097062149563888455064692962963138646859900438953453549822884659200491650824138011005738169941008264668418767795951105841513448137641724238273243742295131502197872911858295798692245055990672308407055025865944035786192766773656916083767633538284433028523028015634220750264924415677874668096649270163779764475164195274249475403220912985117013403114467766768664403972596060787178598214138671969833557967062653993693035627174310379791736717290335423412729411690422230683059678789026666305573373428421122314261113371223865596831611725763935657288082391065942082086182935351579606599491565048237085194579390003343848374160095287487126928837805594483706790721756723723326570035436978033473565441008931608730791531375430721215520108368513574433974416786465489761269431962613387642227537309347552165670194987591778331743365956971764840850120091561517524549502129582322482116395708742607716991950629072179099428001611083674686432137477450704143921811762132394772236809943506795214823743451600819750950735687896596041860596788700334595178822766660910503606644408956358112578344329319220655452321185834135262490232398057832537463087807359004950409041963594044770866381652051226719980656231711860416325666957442940082770877822034707280147591019284504746721613524029920628122439106653427255583920468044872757012061191338831569468474275155843066809198948527919819681554338771293936642781020442597299277529785203965309960482592469768027547810623379029048304166911627566015003850642086871731321576171277879223300003676030194092959042562220396535344688737811555641700177014213452763051016741005685202428086245313600508694259669542246409695782253751409020744425420271220217072645512098471888448557265976952858566761225124473928487387337561213315589311162297581169113336185859258903494788609681429411336748322373520505604184150066799831986342304726340710902467693822626411483988514360309297853934240634043077352857416064552432524923314733975111615051004975089399776477067048302191638320012494230574257741830088364156359179163390963247446008598112417153850724528236497280087236195077090322085824513795523110868467524690195344035279695739697340647219052334376787012752828917705649804564996457615585223484246433426653887034504377486988672657179091219519663123471093056455885448311821888244579161297580150047639942314621817559417151851511915811014698679753953762092648948415988447582033072719183011481005698856303060037086371236331444935688137327516974685772306032934466828633768282371313646234253981900875861434640509614791067594203154233301787631657991014160623285789656411176179760072800802529733450776981189847550236022249507516561330324082766945411525404290982956693938252263763946220425713938470787884675586959749794098151613957052131233368883460509559701120467739446068741901366162619127234747230086067550922076210490169693006224777042187230602675514886561481023809966214925571129121715458482597202704525060177826786950148746824728301238982532473337902018201805171866993032076037636626555619933734393100499894477955021675958380350918121741731185105257029699794893621248145143517736006515361811963699229179149309207428289541968366237701315396896466712368651120713078879160378452514056449162677900642332966168054532477498421842220623945172012031714236912783206109090395515487433790672923808316399569796245702710078566118157204506725096551205923998959482777631581867162637921746621959758693022091256334877022340254100853327969380124410754530562034360415655082813598459815836934867871399109212553011318612227276532229771230095027817289153767086267877682356453152592555594970774949767353872018565997884551599593300258559482569551470161489678909514380044743897152806972019725260093438805198110011865954877364428480252684635221160213349215699992226172063548013128736570598998083572235355092453233862593663121963059920382224138333699507057098165373936529308605082135648059220736930324956237678693732321409152007390234551033998784666509710854551462743483457165073582126233375656253169980420873989852658451842184778120032172303356729225554901464600913014712935099947872108014355162804568572111458668769152864381080858850447689743600732127615709476983380947677871314890712213576949552957589633198329422228888698110363970591240697967864643944414482426859510574780092562474793496109097764683380019833684495333721568289685691856144569103290971961027261811176552694505843412515336179626965718488554063656440209014806742192259557364339624520179467375642484888701097123491840732624946133612107705087090733887804486042079218264831444433060724670821237625235068258206221681096101426202562150404294517778371929192471064450644014295259165061994026890345446394422573558736492757807327836044493626596031561915071562677460555319649993710575897701007407283923027640804988880296858835105420537141200673549187641528328292273785598558144441836998422943376181018935651356722900424471806449223947795760883766938711415344332831695560438693729755223167102908765143074356097951748069177430879986968324135992012658251249797653061420692862824682367806331852094399269282281668595861347421724139430422305238589437960025989242534625640363979292912912774782872909350136088734584186022957788874002063829615013087214767281245807148084852222453566991292742600810968141853558468986800288745985867538996084132396286808785853073361490898800326690091413883486084388307124536967558425901865817071090593660319570468933889860197484153089082364691130525114341382347019872484332865620026938873749999473802487900041790574609041075523719010185358283015488246163894180235209046613222863805436948603499133756175606079464297906161633055660264960480395256888575406458299991920910387355058303408647571592110523414313260424730682571512558699360215093210182944257378239314490919441732231705034732302094440046604008564070110127309218509100086683013344967379675814561924303138968813728512890844779906158032334431921797398704391495817126560613554513270520660118659401945569080921511386160951633516249970775922602926522660801197439455789129981382388040132688736970569034718512781440411195706946860572298314420183520454361089522865448841318546262270660968854072722401540493351686944332759527338215834570233851015097258189001704856521290871100277737638722421456843067562620747567842172222828230688492449976742550555920517278686749313361506183876158475110330423235363774633120969711737898324927171139620417236807401714697332187432279987331243923375940514897710138390204419322578469731234773048011409392071177719696154253465452617939800372758708989797539478610599517353292278483782683739860143911860181963282061267274575946377718773446090550486023156502956366490156212214473903382065426946513042937286221278686575617029966376507842992284986959427012924459835194899402306715916615365774294646881004543202205049134457758234181640471477790265005081390307743002274759662589191339618045391246057748238698211340709584089979856560995241038493332483300179778563649841275691416770771845862986471008491570196530199751849459466859427221634855292350288452652806871295504384620413154338851463131600916505610779114251704060443511262915154654714010738311743183676510963687880026269457095030245488546473266425749352623600026867999681903208880094877169778330333170268998188373627249353149653115884043122789786849089114892119208233758921298022711324683971176036051710074765136934996751393307368666980313022674629156958595312691160635193612722042459429221365704369739191482705340890515914393603433282774626986015324779115388707853768647660747959509397978872877861588219261700475954502536769258117180324385024352882565788151733437231374516234913118604795525818107738947702579349506682540496665040677615044594298598205864433243338348713058353629794491995144219422647950649443593867466910879590562185562187623579804791868110657402438135870999758424450012144220666080399791788516905237310552764186801466815492839870293674344926444845792080529989600977307279112074042266138231213188297220079285123869315078202964138874666645825940020583931449794120592505425137727069299533842249957517747288429331820648668114798671322768715389443640977683396251329887787315330584868212425841943522473379905908019339085524411406107363444536402162011950033015437417688857997575614337294653213739667207573887352937443154409512323879643267587565151111200958903485537843835235291700755464955489530007498186509898980698943401575199202363735008683513783177833750404952374180341966494219487038811662078532447328985261270081119346421270078192449524362842388843630282760201023532598349228512808747838992312853398726179211515721238738150632886807611425080557954414409460389534748756672864013014259745819445566575018622605867550966601578801894298127424913415231498193715702740392230985529419245462304079646758108594401152892427379551391619706108398814922064357966153928910968929164799113565170212707259546975151633964338859990163713618485806966388166218388793086042350830216757032873610063419226477019254839703981464933410629429486233888805107936087784375156298543305304511896967488276018156695145788089954698673591279300667272025126551945410750476051148819528017389897943911430921102776706427470238697406599901179323314919095805277024987830211533390472193471876842565384461288273575927562902988336660572924025957702122525133388411016479827362754055583550575196199213425821639912468455028431188509911847056000774510281672650038985344123089696588359600155334430452544326600096210531959890119789981699440642267293406860916395921760688994165615014873508098232452783515162347379421403790546048921934786583206677818563160622068593032351009713690852266880296309285521585692991770810178094728962976869819345342555760339620683266340711374770337317070252893166517151353854075490827448340812322875541928483725979972337759215860566660130780508835604461559788085699162532409892133991038362532010389673671683570585250581490894328164767962551652317442700722781098983904307169474400022126487876345858559191403198030075029392262916939648913958530401535573570840480007346957292121423530293283133337563063297250471663516809010146027389412396767261326417800424776325853226398025008248547499809289809872443741539188730593071302134492982301522015080793583241203737563801230411488136801664495088002784792305968642037392819467829155445910624426890967431329605263431106202803202638374902806211451319802630518184694869929585564929399351315050477512214856025055778672671605548344775775165629250719081932923332442790668159563974243315153960436065916213631076131924284625990939331651612152396097202837708888485517944103938840782942104364524332989958521333174339891456685019731906670211383255818115639268141015316917131394447275804755178367759571690744973025524108343801033102561890482002611548554230041428496453058528971960018010652294777394886814792849269691525778860000538830674644959450014151105771744720324370184158098965938045787832470700779995272277202880536533104137586158521730673788715707685894033533402790995016553233945052228053272860632421292884670979313458218333006512746699148998876631717812362592298187998055023020548224102466038504885358120155238238334818364447834121067745335305217593722509654246089748534721765380195119787780878752847806349276568880328733521855905060361113431060591240777532380820169223098284027963104538515067509626437255824781544042051848585568453340723244687653931288297595119689463211947703985913983912840119818746446893801977351390790296566264458643981345857621887114055411526796541976349236162685812317585945719436503737324103691715138859225939324757744700306830280605388654081577960745943247885965194988498530928451688411213938168094020893574798387608528938526658103764496403090870188712848544258422605046232808640421052520461994499154349582260889738790219210638453405457496775634493222219040763937881635794893690115623810600641292794246763277224945081809561935511802313142963274541948679835249133435175317507470470702882542910731320467828935244139521031864514369529027674341017614443140583778447804540354871684322386693569362422173951767266784387384273000624710186132432185221299874687329566210075366251926806618555401761219391616233133591709168334382955082941062528863032147083487841522842189629085559135125172668171232443173391574413104415045959565548108750408938495358551872541306133433914913183179432778401086813914884596438206778292714750072263923917455450351331574692346050120245859843095826717729093865495851058486478281981408870432324036220904037768241829863080053019604420654489948891122493712867741060822093770778942961801536039989098266337536847087409422522243510830145280418542015620968452244768286065966525305667976669201005334747207187219428325705811579046152115184530804402129919188342856070903133307223210778042261906102003356698010480123621590754025893595283398047381157631941406977914773051317904250799611812209787134715579995573187320722905640771879243745559532066245594629882517105621873767835158590148659304764357158004196067453010589080546481900485456854882877734889104527591712335875901668918137149263605868189574865627770571498579406500503613259289980462672411532387247907318473274457922441793915779186353361599721766101630730787449111755346333381882223711987209225327406255091514883395531000219200240915779286283336034501055581684507524936945179744326359977396893293637525790297255608862358378269133168850974481068427275031386375840838431517133307678148030748311781139056472322636396715607477136436926919796545388922192724239119960019025853890275798464692742985328128633961151903579953016771641938616000106593074993605707989968771259490418238433037702604205961774911415879096111975205611583927084976237677737566897696631610129067151306186253269332205105720570665620076507382708863848241078927087434240704576296948038994935703895084730163739756313612664588991066494682652941989474821749121918076464096384597850573244070496912656882001618438170502234843725112330891520625912781740935300573736828937722672655462726832973927714086840418494153981144770207777346373141413872919471914009807443453877622834116107743693272193254093577564932603676498630966511559199968719622853800660754140030440946864876195197648371277600133879071817956178007102833125146641163568191598392275316640530187026982840724103892765594056045121746530582066799534787861295430372600482506852605519242069139786215194414619030886270043570740816056947272707573989739779682785136187649203021833240892205127203756897070661779613584106850363404809119209240686102748452762320322061128890145991229942422165551801385888043109561597353611327130946809516824634105065610336186601710999046945773856735070484154789252708989091719465517832355544542297331864732635090183341744756726047519724127581991460584901519723596787515777538066585211216882673081338175736174364832999653321997150364301687243989041974813876747513884330637636647985641648125559146925633678536392326885230421049210685833183575998627473789222790230145106402914339125755343884673834420897936316085531650967043827671711420303035781798844616542125929877801605383428971271397190559047021834750861397105556830244909423425449801642621021070116653418264215810258344497871478480127865019841803672702339565681377967989503231083508743060669011702776416525289218053307354497667939336008600266015090479599377949790335710802859307744250400564259179288087625961470299689928198562354206417142570509680004812796440847821491634015347740037228485258041236128871421498211252286482672731240045972383910737925058785347373012410681582232015973388716922409155182721497305311438407022776621275129834153303717513285870861780732500762047328391359053123163889831922198660812804310969399519162471627575394603801569888373977581681033944043979067714821985028655094393616446086719835231799695545315814395271215003138757475815331636380817079773396260072992858161585763757588030882804771894301722152310028294480651486047458708468669410591471734132987801945153955188505032654001489337328283928927741110267783864146362793725547890659966129552237252995222652576058928615182069988349896628892239020465173976969912622611006944063725617614901424321804718620729675381557705285315231342899635635295206316346331690881788023830912575177644997050120205349832779595295356567331463619337135151239133662612538015419077910032892174968629849954495270634920216508999715068632195389098297719530765309137234866681918637838735843966981965917431180260811818323024654196283238652510491969833089022871146849751328144904627852240725190349409025978336025072940972462632149858025080832344042603621604219803650708055496366359108426712072402910593092564673786158057686951670066690877120911937995080349107660676942606792851379924521999398971905596944330566885969154381990056932218027547118454951120255234763602022931594319628983427615860821517138920572590729422284841185910820719694981086227404129994699584848301486757046747128620290233123453089639720735703353218458479710107113376967317257579426469324696155504340873286460212986221183077886738409216833825139169883504749545417047859970874151705237371905511590950437954202283239983163972161258008914209135681962000646300652722090248703332278286354503405872698815261206098378232943620309361109878816276207668732593669789852645190302156721501323536658073254315732518514070735290695151382753090754746043242619872904894752442743036961461674605418230915649807699491302969015405419861617765661652101198028897821509281742392074386304872251645601862789022390866426434915002276544062632759837824627307291303328971326386027945656796721249959057891033652541769594048287051220404144506968834102675910625760154471584520358514329886995307165019832211387881348402661013303744934609293682519905350538506067562271996556055538310973417220091939770014497953243196804694746465860689785378354208715458959575058350673021247854936989652170941442111556901189111706857841023873988825779733882420138698616698498438913498791800639774315626774667921977961258695968998953310224813916521691431359320722331395441275190328436928037105367623135238199406593884270708192605219380916339358435520936284450578911271081789719091756223882935509864167017883079918440271201409187572491631091315928306143764975927853396070240979106972063614643108680728373965094410245375666220246478325971705114641291716044098369083524353974018706233371924601762872619637979210482247415381024904850142153502383452205238612304483963590645412872219564273841348623545084730109512958287175970421784246059423043915679349311199217540264364364087710563492971187245995525267052594879173106691325753636289620373506456409306439859720345893540949851392681830678989836632189488143493513369016083665851194435700039452799124195328902302855791205399615584803461268581133123102591062623705260405409819958476694779487539257299463822757512255130083400606197236060925501987161215550938234146975160043129527111501480198250974702761708000546766007979078989525524800917301765523875477358741259023112612723567119169437174923081355986626928171765249604643298781065008811508431615233981216215305057526277700900534781842243423427722623947937480488956329527678438046046253777683254953534737637202393183975511978152172269592189770222493351113302813076370083777594367142163355878703646355020654118043281677402595841521821391150351808146094149999122282500894451990728834042873972214396801778757669754999960569526535909788382186881211447580425344255672633420908767663885354835952755007495108004564412833661954248898165700424548349002883590452856153918958216449258648865146788544598794619073412063725191682198804221094463416941669844591228479905023154141021379693747463467793885468641843630208548693484411172184709866366847810172302593044505940362263843492108359295990468624877632593720262366178582433673248288059893628762895064730577148751631545760922136543611293881787514044772108399229552856919457922754326886075849147123533921322404354583970474626705241188720180887422698802744248235045500188846011570534322219150664396817488220666022452807099681537274613528933552601960218439318866882181829268969048587446404251525581725042490830371885625384744369521736565483972515758683211164317440892825775021184986071508903620448753421230156326942075349512016487070816211641174983571038781766138908370510606453024253347736851886599008780046753151077999101874779676928167105905695676628390124026973660149059772197120207442331383175685043779219535743334042747044016322518900787204033902587908419865406952149680352981381225510001505736880533242991585709094225690448272703203445167374290967385850618273781469408889888284294693641244459953421205145196637221855230912741541769310147587503302673945313649794493497098996538217826750632915436821152484546443245108587504117324300251936136162270967856372595904400962449074719355475393102230597696497728821921130610045015464579236968737801391395218048082728533700558781049228357673555692781013766555124734591599288852057590596381858825354319346097859062798524331837591681267499798382375918796499057116997591873218754163404334108925248837221336940792366940701103290825937900633725868138624127553769213980492663337724125944225674203004583906849794557102959378650780843473139176323519717428750555375582974581858652281068004287110225677654909917117505917475776947521634805911714650695580975111310339845810590263429326012211548208769593129827074644701859854693767166561019881650368216449475109041288896616159867939976393843038636826699369608964495914539409378403287055202292780000799808413929704589859829258825330479665712478849391151286263788998702664618777899862846674707959774880022860727475011855690737624312097408734225697869541730547388712006032959582435586612491622724292667924423009654190510434641325510619611759227306506250921513177927416916644117707952245572747828290728191609535828553924346259376356255923566257350541960213610964802136544746529490554403929183709338692817773104663074649356399829173432911279869800298654481636367147451682093272675241493183404038796402416817235453345090318329123411389520461273595194244477686440400460933224027514777525231365782010040482620325384869315485703605753660696241755152319646454591876609837320744864423749101255101254261154822469549530515090262963827496426880918481667264077558643088124410012747891078100343545327117493565119336927052388512158265668692666744826866271629646807943057672360947238177434375284051865649478837634920953072027278656566884259789497676375641179048199338021024252094943679293865952058182058502417207757829322222743822847513443892168331524283428707955194572519896368845095889108947051085688424446146640837792125780165001098962361958537006581085454513817764981126378983525173217720187062721546789651471164493670024161399624018737811144550875841842706662911632801064434929593344832001533447813925367531991870382138375744020396890666468479247218064134578903040467983580867314711993614342796141241413847883035815669253206295923663259121002676742680808677836353190724181629333404229375039650376535212929728727744325568773049091206403591388372241738249213172773817187746742318699712592911641862909235123304233085050608290596641067490997061856785709984079273358866679011881241080827835386640440049333567419479552937004222426895825599459122256525510649759878102955160304585053842031656895485804805328064286490360380138273962146886928087736549436443177996805171079170250576259032917468903961687347052157957134746181104508370048330479612551074868878814986141635531373635704230948257399653200614259683290856572218406398385696501222877242586570064097295244610281797086431514832302024282919131953026540527276618865396559007121155692985645909236463002574493395049604924035424517314174485797179949014082776805830790930607499526778704825055550321391938770201775767811773176859711184799102369909810933756291648285980139896262643342051642722052598453310901655269769929137520666626945875471795864725108465201901427528687532729600065058383936704579536799116431780008954755258214697452815110590473074029150074688228488008845869958819697807682406911154192386846024827634492920390021556511923490543750083634107482834444044921582140634284853615550211232336084710611547782968839229319460361258582910782320880767074478431942396586283278091678496882084233050139023469576359038372054711657502864462327417425125116783075310309017268571417768131859199493028664403266862510748568214128235600259510603282982284785787669152824333381629668197583274889148298535066464508887098500042329256219725227155714579082144483776994449576046823046204868070587054567877178751584744732391508352610873492330652812147945352068984481014880733430904950291797839928010468176427316024348069824508489891992220396073516785664001058981318395007988379499987539590311067131710985443324597232774739731237121449907475973436289876486311992418999981482169453303533992483315618324968597483458356295727742175015422990146338495808748599257755482961393093634137579719997223717254683717193142973477273262979720682914696381552867910395033471569255903856569793784607540778308988636384189820361140897662924431402743860810234356262813749385123916166420756329549363061154598912997034930229038266695840766211269918207096401303128581117297859061238209085547199465379984911863521541859171709954812200794558786256081590015179458093589820972306402917650431817077144014872094178460493464182998086020915366820857862134400888701039719486515409889070067926914547623676454016072562162889541951626937497538505345025816431517569742142459605882785764097205386561544620966254420815246941670332467861081999206775978985929632842316091662988501857018299635635424099683939027440760620645452438968518990788548302825701732395748772037000075991424917852175941455201983723644254277248547297841860192989774932719908469569148736919940966061382958034758999122678672599052612680349391350852932030642521656184705060865186977354095140470052048620499252429163341035705529891705229883169509312365354874723273456253320818431948688613398569129957667329505199347236565618089691389178089081132520841868128437766330500567214273322328011114322895289611768820451232515869162599900185864446804919675553473416261410348285969659692185943826363237272550275142088685596768242539412239776429431018330606581679817904361341425186888324828510978214206156608305613828687771621331508160741513597293085339564008778565621145920709212236475242092296045844540118222981421327376003776667005970807589474146533766541084962983319996340521918366259269031992080481406713855252495090784518206934851290627364800571894792569232570991752807734219209828237201362102561824916658945342905071417002250648855800886318168399552692772214598796516856150209577237354002586562613714871318803551390234747541156702561713863187629892986508253654491952234890977323741778825918178140334037977658171124903057499740404878299669410642275313770908683908261725306071384370577646662911432484921906634521461033533046151780164622551508028821767457978150842044681455023727330425000176501034322694746358151217792756019985366532511047259829688232416585751584400841647972924237076117550248552221144446275021747093259479312966637755580829210090300425241627303035668647554908712832607706225422181252844666794389122638723505977563938392989394141586562900117579520363996852013024802347852796125838986157852173650153724368702180566429352964265164905714266599170484242722495667597375248797328956142631043235472706957891817446730223720419081874155792953178257232718551238974281948727948217482070241287279943555964828246362675350560611286263424257825914031328528073506387119156074975675618765586420192283506857364115259865897162243046355509960462945694408212803456960975688900832276585492632611584575844246838220474746928881548073491825359507286671685684356477632309266091605038979945628439243352217496766959222038153715660523732978438548003384404283151456395978292736754314640518445718329515594693402286510523825108830333565623438344251611924638060147855860276726980277169986374285298946540895645199090442291852018934956659383132556291275199478746404987296935107545841868772323746004718882965715652416852274325428969657233893547443389792903638100122880456173823955527448356835164706163138837034431206661381873896692014726030592081018108535153077486602000524602585966789464134097166700703128781949905648314344762073064039001343144953035238016179271454450407426854726128513450217546610674152918651274186493146617492953402806861810422986997055248072941837533379457761119207130212090102535284532288667833593436497330704647590576427838446030600490261177904864367327947139857809861288546515901661002132618751136937268100063279122790284430896676389336892968526019912634022787947190100011703766339248720033924656354142143061312027532362288194782836639358740071304706325914008280194826176127828283783958863691704143841419375358139879831707653347192774366818628837347696539199242468005693506649724100429764206787343849511447723544491610853865873728791252733079105995885016842189115839436706682597822753809064138315580237033451110601272308230613575473771237757507336701621455748932202362772906559066849982135527315993508853658641541507818514119219012558569253641807724141998192611544432497073518626917573025207202909505660135658140631974841507277172386590843518563015582885055010059148953791430541287073029939227239994916102802746681796982984844011260245570138619419960837235032484697768689468713268068405601565356387295137428067026858937461128226273469960456859031742088468173536412928130413635738319408671677617083542537229571121706412198556629530116400161309013564344975202996331623283031060663950955236560696175112437131883835930682632967730230042173810708197541919385391782712446186117758489062854862130739709730277391322658013224657457280014754044316261870463216599419793443292165493197779680446902732616723251978267835588099014011207890477645341834251711382675450449154721193067690384694883538875449166179909401508621063349081046831495317118535932239039463190354971384098363417843243040276060611674725334473043753827342416545184395912923643151323837516478970826102907319862611618243592149026415660861492450166983072434009989141514576559507947695982734188683144296481977347516778726430661919760265921454452474284264497997836786599034336195975394732277580687787884072846355695258574181949362338739877786489018469421319421922294718181442596335290855462687107876082619107940779170293264376280681957768324245203605602930523144478561469207018898012040778244505765233643231631835466679191486923702433136483806754523054331379743264671138672130324623801526762348473011519098337206482265072982060408986639353318389272805184366493849181744090512359117735087840909169201954632165606905322536590511171007153729257601956699773368156734339484873221416210382514168622466588504244770429848930898134673219776321452448331809741995607998942700718546451259264668914743371513031486696790425374946291408849541808591298333854096780532987777713523081868620639335914685173300347545128008082395275369132652153348265366282157786422011456562432296363567551966157523544610416901824426018986607521749356894273073916191076164329455496330480740769233475074820177865711857120736598004797711389298315213428253295456120642668768265263395496867935058968826295413149563709326740068535069123780426059324381767220171250210595772483996458195606596319776152141218825436945000722124386153829524891867331604559480481120738652448801229421471126694913634212225918360147055101911147687195320647383357023048074097062108600736522854966544741844813441257935746856792758769539698573353934830014360131756143235808745835005187817921430213490046199814521413600078349360706514649024568513916016608768388859549952618497164969564866046209763378812586726637211839550623076819281219163598517412190121768939095307014710333118620892239816145088346034987276105685780301183658013402369823570841782628614582357032257826708492477701569618541435536013783230119325484616792612604032643053524055778864470804666717318533849379212581748169013248862834249734527700165463238428528489981396669054240881551776941810716829366953024839853518062845094205592532175013439534720018565839164870921164291802664360683025266127956048274446695756387100400992987690762370582872286110279699621425183143342191427917701065004157383582253999871355451837713598399874584112495559417734661056781850342768789713540428013762966027656444693642981451710539679797318600195896000329180407559045854309924368193903604252273364257371568092547204520309601091177870152052195417293831724804723015150671933707407670230301270488625306698052414173909762212229806918468798304459262250926434550177013718216684458029598151308185856776830057349187839492772495761865944700627348659277345712325679241239951901163905300874953927437423622804970611047018861900862407938212691380666693123292067343103271381167858685403248795379218562757815578273452999206594081905742722809360462656718866605682284499589555806820516652823319332619159537365116656833308805244532045705528601730772816040600387936282386874501986363167480588704147586907792574534128885339880769657474709274997208452214986338748746030871902689149328444579626878167664162727242362225342926615902857603440490178734549717710840727724156034301440432398008581652540048682755597782293253404406961295174741810452356464245609292200388559806693142756900086413651494243659886010705830535605579745825128869772172359414283127737261582890240282477173151921006938916906517984661228060832903577630748118634194885683420422823145254251677513913694304515021227933259479192998748752889798565531493900062972656336725202642782242865181116063271809272308888420065497670365311937672584842002404142776606211756762851885397247618792626695716415886190103516006226538158316163326693352467953171677867272821203758524636327958370987201842190749253083867361146673631643260622182880924258520006358277581146437164500365071299339936605102011634433868211181691260789945356908319134036516733593663820796375028436332298893496332346679629257843336415375436376551187050979443421008226523391121524142719914208316374391434587603355637699200263476021422344803258099337460217252737278392760273397120753031075943512562639083376240834992397563311375035065461574459806993553929558509152143704314394437873667867812473042243750247273677028496928146939120643706684830453286979414392539849031754856998157513309962490973524070769144654621275904294349898627496074797679618338421406110591475706678533739341401803157323667109776837192940097976739516673040712419136473245238571699371429903349713983317001625379759904309783445123949561960770114327427577562767696093666910180979632913178944759135846570272889250392570643375178601120607413883832438299308077237258673574249561122521527261152212666297844792625869425162991067790741634680349540244094592271056757077534471995071825457349795600057484568079608180685792351162371721249605414717056904431610447611457474653375761398848829469457311809719123435746576389027810472639760364634987020524840359406829003399886715484682995768392642127173849382427925132206110324949713313487535130945093023494044463420886705598117449050354206438222194681036149280064846746798858158176768056798847389050328699724418199472450307958909933955296231402559735719282021418540398008073911038588518392322601307262895267510353417286972163121386820728095752371795359817685325432090662063793609985306975132919079114268597782254049172115567048604503557259359127882780202274378225186566381130385040264722158670938533599493313471043351474309597594762633623344434487189162662916365617466168784661683808520906833939497383373411044298107982855083532057876116740652424201941416765384375189379755111389839770495541472571075389974211102873482373320538200840196682776563350273003459098723206056773902681178633422434531146507839795611323674931992972664194675448556947866246621545618914223123954812640824096046333959969693167175809840106001714525941715964592073825355313300341249103410703250173366458263017285314272850136905089735585018372906428510597739532094868010296971951870801321716011007459307533156524092732603852536595078217717748761521858185490370187383486460049595674482004249527732380237821956816578189277815747483777465984380729559415412662820221418424967361161386547119249512973617548984371856921300340407064145999426135900092891073198984431485849808751118432161429676606520486882969467234198186355757956344908152635443972623025340538915568485223306214161439692334705789689927308121215939370871054408990142160271457632850616065235296448827282449084569071352865485185067449774968905424818804495142740487164936548146929557778153592444447225153319771410237624345237605185570374549651200927311888253855109771509978524972134996586287057133690341973416908708655395537736705568896960365674715421998388049343878633884555935230565519969207756324157674672596444895075993664742584774097292113548853173606175522872670848402349511102020965645716237389892209110624636737795298844087936616442483625724945122683663648639196756281175397462951585802701111847290418502977365603588382389927326312917350649795705659067597450949614873683226192174015722694656626765024825255736798181402405904016131353281303813522147808364318697654743892710497199108038959284993086092915432432962257429429562186364497880728481074946168160199547150667871458196976352975182735758278420851685246700979257030561140565072772903672205928283081020786234519118106572370935031801437692604837220368530115530213594205939380554780257106265684711030602594553820048948546210356585047298303850787858550294905549535492643441175548106851467846713057796352764177618698612285899118187702116059295738859029780758907569425580248727738719669035012559015784881916219902226911223056411616066468168710196446450628847705825295187572271078544144201253296953234169197228393481754933284375152217706086411390661339887977636936483532598854679000094713904998120589161856552058714925134254886445318885891754576886697717055438786768396691616323167276402450221681396206816008110867783260204500555593410285552047468234257380749003288779629302684623924648470832708360265788973107899647918279259530829120962310590197255544457366930628129402903775504818023315065449058333904158076875008261296424449682447918202194731320445075938106070056400098573239754835670205041711114633842766875976020172376876985406770782238151070264389195826345400330875871497426771267686458634327446993713789768244116003616874504579083584116503734037379508632807258102941853872404485649903598594942999768511941271584127596259097675927751385447997775943336241651974786247972451612691638679931029485740972928633580704112589631931874840325074962472782798571868729376006370799124303738421463301585995954399653225435700068595886510963894921004487464123352738768113334513639731467374374989058401949401843057660019652457941364077075945488622737767797496357907727441139416615126046628510580662563919417192017572126760815036284661221807787513233578969940314744439169169831769846893326839271637846609688058751008114787050481749127006044939303129420319872049692330228077635879680566702456476504722158202828506420943665151019612817867041961689157904089661263654756151573282080230540774364233919349102592466172809445045179442468379487813587167737477405762943751982488840689584577994012891079894788284114263723002017300900187116639085472078158682929983474434256884074160524484950922648971921937904112654166157851309717274815516050244920940329472133245608484361241339803251121482974335580335570671942056369158621210718275131253013169225618052148605382121956640886658558700507452825616729008086265598544048733015392057880154512191716908603942526952645635291543990641435671081870680620337018449634656290077330631746202375570214438279598853559171873645504759016155034059590711870572340635850617986721089312560771622613564786767287069466542315858730550681914049294505431866108473229339040781148418236180442844882861087640484387282950794610261811181778391519054064393997135747714374995171561156090694076532630710104904664661911754701121135011383765267095776459738885128230912000941088762383531837739697336125742964313063884414232941358583673212269938273330227557082651163072283436583908256727307460992215787005024726917914719521704302854624866989256077287535147384090408292986721274159596000246737676013676416995284993903928767066909288686010494986683241100349184684997088423332651598405793754138928429170216565470627352473052983980094830801095694786256955841327366299678927441776998658377623789139253297785553693359108376956853412003652601427238538980379103043014578758478788822351121455706269331715984054071449784269290367537351337520306835869517277550014405103792053815407534535772512516153074649926547670681715680922625356065801405805199912814136614265901421549599645586505299773884948973440095671827222136696650660044105719147933310398321440373941718399854104905493230050339838987798579375538984037094932793677841168813865052838073566849300273440163159101275390376119997034886657522560683149634835022136781886377137256027531403292999909880873363732217598587473925230250323114010701761567707992083423728655447260015202407627841031150618660400930098656315188888697273213369027915476923502838223228607041793172593582077209226907161707761677059254262243212057413664367775748073350526423312038913661563884522732764418994934851386743714828716922704308520988615455267690468392784582725559161678446184901886636174027451201457039613968443492029027043112489075381292455245836955513929501990808872210955377926463224091464720452036435518462292288869539564548161610209957651183202656902029227533193077378021856305637276216181573642523899106251967409082701984181513464559268793014031533655984566138295936471567222921767385468488050197947633169834742660067456879060788300033317276028539973205189609825739485181140917055446121375798064239291727954320479518049313039895896855075396004476431549772368799449232443616171225479499473747209821381893511106182049665912787452759624911287688661104922091942006385911045523937906114332021079448300131469104796332389787756157115553872536561617074886776882097043959255181377447645300608247252946967325306028372361023675736584965967066052106654768582997553844681124150783274588047670943309882255082184124975638402986955484744593781755699424107502954462348363768251954527543875140955794068555148656674025289979677829718505624972488245797967420750336495863054553538257562944129162646845624285914304208766436670694718451152722128043744415887586574612376653175140038175698288399790072950167147963153410876456724498452944750381030295253824525803038525252628621915882044317516780427899836947784275593272207359625379619311969326560770673088297113380804806246718659074832133774681644769091355410131680913037293356597650389068821312819643816465302514969235052619490630732429994546865395208671082315705816623466370823744303248125645133795823251166869053959213010197938065033260287742096925692333458218504519265150185296415762717532808938642721258992041527785959020966378453084461380230810751100664861382876818940156215699826687602492212198251742239476763194442345894565930403512009015479509171569818363420164408448197696433551045732229284403960364226766955777223972994580519796352676878793286534136783731179111364183361911868510959237955073688986705565149920547270066154695640154357384450567081375559431622286514137172335128769810580210022973048947234193752626357931902179910868167452439726258856709520217764123767324448138782566258723659981473602051980809870598943742744011206896620646197481848316472690494122039247940417125774847493217731950133229123589539533186189316250449038828699247211932270231417296053755229759167011975041784549249841160169058086877085355240166045793702203797030052660134866659922998596676198694128113336723840058707782810113547620541575990026097886154869914621140626740953924300307297335027401304356616738007707592345059974457609368680652096836875454580190995346446381127920296840228363356034552863736436035532562902924557479913843697900553405514184765995409767244041247250778709580783248532807853170300524349971935358990923002212070169211549982903290977125762573739766883312640905843520935563887385446946491980545761877534212063193669940132409109928714745439039737281905050904477466665581864168390503567192964427007043698236899913858383859404358067467198437538106225250692291490010704685987561022023945881825393201759873786588884271495714173289155547837255930730971476903595486226732201906327719239833793592998344075585246459215139615141098419147289856694666133793312666140398667998479567320384486469698452536845131700379876597081260338115253535043117328644056638971870547661984409224659793950898458813525178457761097405549655272965824583400574656912838071079825323344374348022314321843223077432197271306249261332612515096735690514452963090367989582572161787555461402263836145909097845203419019109101475956505656386397146852769469360745961566569850811756523240140045539578790569163762780018004337665306423366980203903942139395057241964825269100105136551405431126203477357895581108304005048352709314908932682675118379869950076972774351802763155015343048756345103547341088312888177342725253496574895319361662885948713716210600537162920751530859848706537851245193433052003906500997805374285717063777728310197087473794888575719357655336229749394764503653659886318416046848442463252116527228076359880933874097758216247007738176196514706439224474577483826218559361722353706721066242011358360292371407823224240458872641862013543603326843388963454636779862413860277371631042998648422077168745150570954991378436085958618343736863161065706365144390499306502506766029425038966501938124099636915976083533426637169176241198604816429981657856475271312166062109138298495194933037157061885251637487293137435899714908043465770382019134789421931323215006502896193195166250129036072947505103742279668447703207998872981052315879905319134134274445602267013467114675783209237818020069531196559944694475062941669711095540281591857785494927698101202381607630429981820734191094290974707073074667517784247915491127330010921522462599937925169271378079768014209909172755241824268767111526911126861763847299980896425332769583140937018959236048154324376656387858407597683592128553548727670979861958884827770708389063061184158111141191912879701538779559059267253065775022037138822970734195860004720343320186177089025801958273954154793777015664161156508577378751869174569422426510053236398165331880554350281768729179546876048483287770798535246364796202515532597382479822246370142411440665907052694766550410365111250528929282827674196805588890141272785275486099127943141855471721192393832634436188682764928478528165325591899461197042282191112434933875936906960069159548327865458520343500056428422050596875006819824715338983733518625929628073465300177689996054151977721188621132497179041095004489946683668762168798384788943497588900648255259973530732241580859162085931190070348972970530631866470448163664284833751145739172630452015962344606572532621796543186205551663564367184430549100841064479799670965261770444016179258702821629677098822062944658544523175727703934637427775004470011793163245146367999260455859335291516038153806009665614941193489136307302570779631909970495625825974677879696087057451536797220048843075919349739467700630244496716290074519345612866656023414239128077098839910896911301636043918138913798409402409626580507247871154142888720065639463694583364137385391827413508379879556957994759723749968713057467993389707264976096014487278067581996431969162209912359871908315746136624874487549123285008170106839900132256188392472997170623058543828900950244229145448996334415319823519808078051512270450810393455766081339297309971894190873772727861828064032609064288596723476928699415857058479207322373243733401378154518039142689723879504138940173330677277808559523512523942572981717217298845251051345256433291644128175115892587159033304292654756491539536476481616519448040963497689150977511728049883873168114444011097784469547263139146010981153496121449613076983312404337184611319079739295867488804461107051662118684254521646018899293539212967299995826826578975730517621581166089401860015368224556306199460313196974890654316280342962400061954215587084689007808155743550001859372803798358761475025883908296400185577487453706122619584054888599359755398932206605383058969193270841363833643389555984490206288368528560202125996282223704194396340918464284813965165063432146703581817378841647968765606989408787484357099893979660897534089962553095023789534400434308594228773831194347830547988193251133818632260265850372470271168133991837148819996594344020786386473490163089568220917759817470526714907840133832076759503515041729279807702186983456422629696928575327294334242628357752070777942337797343848492487137778276281654560692629593477468605415935787650004020269355355055114275786128993651533135672371579090497370457438866545902579399917335180956140288962776841921897916773859906276653706922652124065711991389000468740103869947061650298501100395872737126480204402966065843110121143873718022111658158362529988019260116767243772146820503164534060773558265771989366365932086310254989900874221795044057733919138945831979992831579045190221759679519506495910413726148216891614829818506344219102140491592202799186541557659919799607016442357957360910622449792349570570364641587028102602698223963481224388341447684537263930838558389442251304412408177082458886012047665291639703758401798196950420932999882444048583673973352652278171134903375568058569508592667176780555169381457334315813209712747746802831296508175723776934798770017385312227558876759842573459052167507594905358157456018362898866529691262291816555908403244016660331989696800870722727494476370898246985505060953860734995585229323393845997479981606358045962164387555035295510378854005758084742410480814226836238216456933374756693330439400253377528809858316728638217159375130158887466645984011669718059781687132838014542992786980175717917553205505232614387923212985140987416946197954074683299379812290375423219888083414197759864886745391356314294391519199909538813647511542151459252363666970006054077213013891126556390458242457810267279853872956053601033613167371431314334709563441140765220533840273281486047352395454466149071028214373297015164518603567161060205151591902282110942058877418393169010863869601113536260376713957673761115330334148332055163466361569546852592799704509986772669977449157558601535792946907540655409295670978803515770349947599810719250974726234265245151783752344770584105059063228922999274960372490702221263362387617202953915360002466322406097417755227543345851109804700270401760820805056716079870375541745971600643595474369033586506976179303923379477144196781036242566811654014332248767311886875983611542392777033328754417378619018488503148907021356176743929372609616577079447339688501933510642457148170989994449447620966770618228829413861503388725940702323700820921227818640268435162525246345129450019634491726486031687650158728745330400071090952320006825623097899693669875144749291927999580525980786148016523384662919787013275401946367590254191535003124168733714551751827237242329974862958394115146174793270664795265759497823669752076782770140333132572453215928454793625894573869216992933016377356996326381637612994928358948728452593907921246625187474019792421067035956437414005572237846335781031603603766530317167806849157513108434977569891713113290033373509081807275230937925264021721399052412198663833118930838351943463620135046308358729529080723105469410342745966172265422747432041206057150948418195273516701454376477565049270524610389534411101845559674907588807394837565918741063016073442605137040943322596129174384982664635290242172621542922580395592097261930536404979985484379272557273916436517509168022108780261809019216853709654285881363386982125237102751061810844729246399224318284579144750608562989975792624133844292662594825456768316559925887927468693872376073832017682670553267491742947267828826840190144450367137719445020770599208209022072303806212977156023775416202277427652646520376341196342480466473684161055473371807767398546235981430780452146435296737669858963322997918359793983533970987106778447584825667319852349125495306463031674549394109188149921612241801326245253320535556968620094488603955708972495256498631433461715181956314590575483966458096129037510618894334001225903207500019611637895659767219891865361309058874763647933771176432690789804159373674466333544361116627927001693166024671416831677626923073759661124120016009890739639366169641660590317941325112670852645668860886630713614560506257127180979099767699985566223889151538754253595111579591123723573800053439869218497620060978953216070943709286981288928016971779774705481325492589492661609194699663685589799266233936496745938131484641617029748238868166201091916275316156312152464659744914748497512000678677114963493836757472620149471799227431823091399225238558980298744322059590180770170843409273112532476798145775208911545077203611445455341053599903274229134946408333876174395654075107387047201943860930268618614726718643226329915130046799556597041976936336386863697675422903475104435412000265812186062746690315390988887797714359569632697282192117507457378732356984049412094114973769955161050745442274400693904803248815932207661226020112496421234786085676483490479816640546918913047821724569427653990277722133177996596071762606857805452295438623002495045749950391868180868935340549996308883906238487831576896729239143177965252697289742787048881717613694465214184202174765727449459429650185804186127659695416981195291386160286054185580563783547365945884526835197479196637104557707315493271222923883375834323527585331435586168068397523262152402598293407160606866817705470358949471733475729027525392387764109753600587636825012288671577123798585050933139374906270177985008156726364103722255555495262807170326048235281695781899548768680079677164253336153971451395627968608407469469659535681620861740821500399424573962679571316608398581510805291361052044314654736267149189102214731691863939673078589122492579177731578585207039483147268711129006775873753393250002046463723153842491588718445490243947554487101916858327298611559105237917610152765419177452052995079561224133488037082793093658363625670182907045421210270555855380555797597452908329482820348186826947979032000231347229489286083626979399427479134435215567226884278575148806511345668688184086377428187248850064709772236121722023165546721878927843049000632837615023331567069907214671248847462976136468989017423393384512801864458168306701801460825845241087197105790778173834182709464867748665534103082713781423132539690164359362219234816097604687116732771477864900200231915917949276041469464340150937379211847454203851739800621713733401493256997926413264827313820504562191486480982762241573666099420999408609333562672788087347429643108247050608990656547516975527533267981840999627458774953005843758758914646717030954522044369365610371195135534398402007627630591635888595459444661538210841253875742854263621500018723201625027249185344555089186898714537396888408908709332620714995336884028424079791261892347040822107460150915101147982663564259854137700061305744473335541036668630872309845236192213988967175129446172740707578525541233528494960619610636796187975373059578648591777127970706531809306644210331245363545455421977009077331475963198161734840005572379291101284014612591332083076945997556221043620545239585641329605307981521025202453958186235151802348948226194949238113377730494569262621044227522638081549286182957378441684813619576000350910274320008601059623270514976987705286940176115173245837691403171044296204200623763771353346968579870247408101366942661244596684115060417404396265245097020161574346039833003008846375131083778228482775168354451969356185982567475352121426372753538657909018446727478023908822650453785007918585231594222673200178198505874363668686019868849827409532448530344366890258655089110255928663728826991117001036619510066610589582545761260348651265838693288569610175905907948783274595528559276451989374020744196587466030889007785182690772867394830490517157035298819661391756834011587252581239206113847257910888369616792398478832131328838513729260836837181702203031043751588741639062066716665146943459614129891356325176996764517347052153665377217742677030634311057477733104244443568704291182958899100665078683248473569829150893799990650728493410977570432706319545154478897058254021936712302505505963337485935373242185347801148184076386306244370493303740453484722433135169337334949666452107132274085117528916978874116284066540692183581642584033126795182405712746895846266061037845425910480795043064216684593986531694029803378079499085943537470030190724964738984692745732195276419870131540390509783001948748348746403497276534716446895560581007889038368468889615139276055702979784306717311947358378145806015293735663471213291692110122496245978283756575285087993237613674413168439338167307190299843633914104903600942518751681392659198781755758834039172125152934670415350677477287747870853536697967940556664754952146717578171750597329510577862733911758615325845142682601787330494988819407761973127391765797261227707183221710856325960155981002262609684603574693180103291927922977233311895278314506703351426705593150193790996748467565160095890124207641137109903554336068462784822412303891122280392688663661552966462585979640878570524698513062730800850851591091880136049987120580848474381786505796463304841900483575896893315246354138623668957327778058965663767097119426585502991386280640720027405068744305197128634517068115424266930946661739984075253694616640757230221784522222203395566124534167114754883752801127422523802142015099579116432496611280169259571291333141173522209911548937529103834088830430619395460706756680733548838205704734007640124950647120837846816232853091239535636972326027381179205209288885307547899638636746679403853734204462658300128366641303309268153556427202056661374498232335244585822917368315005041984293600323064034902620363370294025550464831013999338622288681033996086509987511898016213471438874222105854172294801959676666894459607772892771819499830283257281776667079695935272017427307229296119579863350847272794710393542968455791549916499993799562222416754468529482331678376219718952957940010749194464215568601198436391755897348851091950340831655206755749292907363367626450688228455972889148068064670199948218337492792520336685586241167165177765022233394641717848824228878018741210166505407236254577936749609378562523338960846445707125626914552060659456493469321762653644887361711079366578394374208620817529956141890389838810775717884435200708377514879158783183678475073378964941383170142401724791479493608939193670126336247844722430012618795507636591353084016555730165750462808929487784186874562559100259222611962499065737210427870109065194195722379576689978393002901411016914436896536196835701951397394189573590409816027584854802843834710575129138109891628060379730246651248959269620131643219441401472582993636524515842720337052398713094667958057803212222855021567044804386927007969731635733162339898356668578177432548854755065225752877700704269530548197104740837834438990847311392837210531808893349061014791306472524379691759175839873108889853726117899523925422826408637309242875567753603293338408805568037205007306108269226402957132367679553071583858049733094970294014499041853921933580628791944847435617228742278144052443626929137861780176073498165767538628338402500310244889636412851619362733610149469646061549002460698452904907483465342880997117106456581052639554210801210494596713314581169106148303387815198925022651886500195488747501887166017025050827605986100638412265559608815859348450463494960156387925559749302501251010810682336732939634478830097527284612847210580350260874291860066411338570772749493708468799803270577381815165561632451399033015255686920019738752890200366707336925185210076654022259710450432260278571027727187178451780281114465879801385247831045818923803903594256141913378521447704453301570238649482580379300238220223584298530470191913640777254909627710748493475202992222905527207463609136969789235958916480276600294571839201122604726037603747760172149379251099580457916686467237688574712514636316392222994983461759643222743519287958095529440613336553758880484337742065136871102406055145007297943824992983221263624385869534954106907811084958791372571346710042984944292262011210696354571989989776034726750667352103994168241312985661295116071907478446618024971300338797859764692829855547012151580075747259189989736821405678080009423274675486583556040718524400550269638052445709698995358045905647187365289134917345594568326899185337972122608037299762669118151069676414833197970703039098896139768923360407835930532006593242575468803850679676410934411865107602374398029663844640826768631214818921692855669482932307560206828895086744057005375491425702234816249972171203143622071492253206283324532127254020559248240406339540533131052268815086523564455198125006575537266103132017749694517077635472391803752931345537055027443041149422308592649804465928896624179389478421648710574173233401096359710203259127000543299424971812602353811802777380370126978252954193723128075179008798253357372667913379937242500411969146135903254906400867414194248348806136826126822065023632667022470796290406378946708763386293879351416843381084478022917552748759654822545738987899500258162495796360097381357275767362547087622113441200874444712382736696793019967173175126837484029304175706828816465908231133714351314870602413677475087318418871058739687242157749567042236383249775382775851609539750505791424987110802698120430154571270306282856790856502013150712607171477082003865099202540319256826011487644442199836105186579616788385030545678415442472396505251056294291270969302129714507064701805086499521698333059442379069600548536697048107860497961972642948902384541419382458311241769749336007940127299370435428250426674667217512907531494847217137551231922736565752374120200505458261927560826134192002822673501365554427690158424087353328501485163330849659973716304606329547359097060629759346469793672619837853601119923435968937208643013063954776519026577214135189660372736904615208148494971406669171034132629587536748642610733053920006553930785411477957560137430807229713930088406843774111361659348198142598586709310395955166190088641828858395388210241389449948847277505018895819522461200706300071504206940018083359273148422699819263656642760547306928678054086106073784069464795129282496587218932123708133321519866026468303306602758639935840110574487911628142728335155209786674635401956318651462461242051871298241112728055044423157628539303749182262419819218727389003283711433308983087237720700347968084195464314224160172801518975819984774266040418892051891173430315663153244399636822120910771813652729954998742668459103380158672195063107999666299274504596509914793352759758422606879866510583153933533680556603981880108695823417015125372858762663672547704809810386579722907115996794929454338806780755850336055418657918245610467433959258370907660298213786269897631318871244467828685135869946612554059585573174318424706794679345234708523282609581235093843158065917156756221974258699549484162898974535037761193827110892645786273327663096661849943788951485069740639757655902753928925982507413500144466686627789078410369797724345373465851790569690052130804750973301144928556867989280556526928473012945019004398663027648628881885794967390819502084849256972993821028519234074700464779352421707997111731473060365996804477030107886294243671995799667131605980328686206024978219358482539265937121661538045900257596537081038368262577801354048885667769960696641851841302061005006174090555842265893259721078691837048992534690446800316248711045115376356012150226309738076173834743378770068941943748513623091474356894386813370200116343867098694962849746809774252936415055278622433498956931643422618318998707372264162788327744907829547066257790158944862759380951026572335633821948087688963784261326446533850496621529354541602465234835771278330146964665180517779360928882571163573413271470498882154874244872616801925153958106257873130478825231419866684771420861148382015893575547701223461165730894177547716907577508994061425515927839517101645142546806915995560451562853444104996279041100939527474871643385038770927056904884524617723121447573537410421781931941158583823857088333735978812029836780476874220810316036367388550202201863150061824792015631311176469432590877121829288317061524145397622878610061351251051693231976038976542864297997835951184846439862724658495811344476370778910162758608597513994736634040336412985013595561896573678042936814419826295370318517509511091811967850415174819529476182369608877771693762343846386047404436433485855493412827293563696001840205839284271918014402019215333380387867930139741947380822897251774508858485579944945622847124374729660797046582051181870121080299126416073579137482049248703767740364486021253239056862273890955063479846984913053202407075244785513535370775793647307001694612753384753425362201112183017825959883253355996863602294905768536311227186606611692897180970584836160601965390991937270273357121867647165919319675230465481165579580082056231606369477434353213316913428259049020075906079940625962991083619834023730279118619290739150090133594903669791457678757006417107907793191853610998565207528363809845180693670252565812535128484087279995438033537736467347277232991204870920346576286311272230416543501754218972251430978823579533806920928188002682356980059922816512272217860649835548338639887248446265995432589156034809154096509580002285138099107939453223554430002502342555747824876320692190439433537334911311863546529958391546091858179153267416858661482852675295574723060240771105622703983091561704417894479741597609224366657120436602750854307816520130929814313945594496170609679742222865839399200768174805331872744601871737110385981781381948855106225866829807570470895125109234938032923299488738471877454701692181684379417575906344943536345991513468255329398464991802540179129193245210414959261545140218947618920976763094011956382224834866829989691649416864584830441023567196022988412672458452133759414923215922759052003197495135874967584386361332462013191765028449828661166529190627089158007690439828897927294929095270185845533267775320984718453294527428532881358665484970706736725674212035070708255529501919630101082015883484503161351965457355796364995969911106185921565063402811575638560751151835001582010495595116609290233895377796463809792798071635430213963844043789378516766205279639067751426421951208096296682834041591523475887761070655713438239318054743537765283631818260667684731307129988101675561301081801016671038043818412556101574343439444687319138131289484462562318388291566198084463609657758579274784571995064095978049154032870776716753231762220280027846200435400124444121384072949642902069425437720099351630571649526420765336211496641013590381406119776304216381950651672444331228102619937514483017137991523256632414424213443207906259437114915557608886247623444710696844265064913091231910169790793227364859411987063544338217835849609311070584008939987371213730818168906715661021818129798098648960147522692293409634362357281386759533998691016429093578607608562656068081327661256059365508453405468297618777851801234725323575765953917039602433989463262940396263817360026692095175386816854801016442554659931710896744409052750663832533400510203881163609083201467252057344300209987991777487536548292565769492189899921725084166002049002585812073637643928342995959585075470162006099275574532926816310235669129391788210587774712506979840369434899023412709488494711216874191296657968300804066060560752785268791597531843629376459563746785942550602027987138302358828950850991591373695796583595188744623223215225666684753215590854075262645760544370685217521584410187664244502564224879244063385812831984921071193407883122640582727456200345210267787676315192948758288580587470735889865791327178948361428163916235760987748302027276290554933805491764853962718330652434464659141219249896336083361970330324249967528774870994897725470076386017111201466734973585747544294215174165430234337750724689459392689599967828028884355817242261038635151771099378209595563264977044458473794567655423657732482563437706692205539058900918343574596945510726031920604232548683872940346853496450498247558791592626217408602893261295755349841165236269235621103856882172263109276816103582767417049356844736783833334489702121421972389252232591486344426185123831833711379040480915538055396044570150368544092302078826963346594856246272028675652246270777814838645039258229126286262372627524394946400410478769581715638017266889829063220658156777574788401858262698560786196951681627249049883692429732661045567087487871969705560800523585761856982641245905916125279530743371959954829539136807546911558562434694999769728176709589432417992040823211879763236175851313141030062629542730982047204000874866667447351967302984520305324398067105711912955959731191685557847084072008864063742710503464357384048866254441717749530222853386290873387382055915268370309413824836082982614496721083877534919882966448963173246074406501323115952201105659647395747709737409683111951799542315792949510961024487985015868310332144982957965732885136837578755134532539911445780714030397819722634257557039304247784100477626624420765692288596063146502137008899673477713147818243180024569903356609069619525014854719152809968773333456525467387094717621568075739383382312537630720139924775727119190578704168121214665149628933009428237791304621988568959190878715730185630464924480563880627334411525433443124062384320949276395709811785804158331446077268273386871434511670531221518147608967170701929192014119482231936556334936762818190643797168023734037928270289283843905579769778212271401493856409025142595457559269517226191737280264443943278965205576534522266020883241906482766998300058652873079195347211708979256820381375315103997253900376082266561304756007805508589868818998468060936818292847587045125700550774118751308664198128842382485948968403119040965048645774116576277456471689553823931865788598333575486312448417776702274623683994492458044167015227281854532537153779204430897508372357924637860197882996346118626073605596198005310640992658152369355277260047409711340564027666759797760741671235781078489330971858742260335721301513676035105100656687691875230319589222504770891691351429930167816001934362473005524599839851710489195080857667364880650438213817914947874670736623999558132349022595131462128511947647141230522395315247272388312597310340433224310349244256704754859707946643760591506203539988829638066668351632926958370865920961706202601453191214104390694349608999110660125794906951393511149622925065738463230951392604072948116378833248614830668346907822935153693967393054664239551091599088162470885910742959537431640387434955442549506901075186036825618741097411643300900565715928117227742836151690691994356123985854692703999631592863021257208156035101665004411699480077453697690760658471332134968750852673801365630960402442411151361293360283883797762671263988053200232831337974267485092389814229247996683180156984478326775010420970059156127912094034529090337142786156172219293579221079882617265720416545495155128912544402226106445522737322851737655201826694899126359566752285054986017690416741487685911834083592212199140707623890985799458659160839152794280831265506755182456885058457409131178462636685199902820527740744661947470027427422000218972874913839773815242740115679239877722760260411834499153696054309222933502122743770299232074311140706583572033570930572511836480271503674396069290427811036815204744035578817171164822537970010363715705600337088302688014016511922557494338573292643404214489780441283920089922257325817706223080550459218730017789895540778724512432595269417092216473088216889410078986465839215372684593544094751121583600722396463334934955822293975807723288135954880142816337545059918022370072117961568870823203349151029510613950554030058235169489082035625968327683132363186223478558442407903221404490170885905486849553593032557501352730223205520478944666211173741322707766262306821729879883371146646100888293913522787696955535299174519363869599123540067559259149583627054271422581791808300648115487688552029978064887964719251858407409708905325817660801360306898037050236006320105166678947939012140618160490673965211010492394223922930282820483471662631708958317605387844149055594426699256973632215156783408440976580753788317459104160304408962114166533551795853154932411060694036303381180134389593614382777678278601703173189902148249577371830285426764228702366794177477205090704009343812651359264492814359900403450287449271902896931432849324794353082828584245519321598694466574896664978181440856182613842790153518626221363138662626898607337104371766960379214468359826927819625312448295127751468959368346601738449529298019234957652335858352275138460976206853949900587958899707030917064340624974046192027445896733522146930370485406069174351622773441913133163146904264201010924794924142213608564312452456213208660017206609373076601916131951506052826059483145980567895594961079622667268498721450115761677483883494893281738547021564105686399706405953629355010486880689491400820610974296332404526667648916606563090069686962017866966203605478643903053661781437102737839186855988226664757900026975027847717656792021053085797624296695878759649667776978028979846925541723990083599339137605303761183179934187703238455471947383341652671216027856895638570967953790931103966356493548334008871279679121470235377489396335335050815521855115052055561491291760753036749187430561479336021488555597789629398142149511831904425621033809094376232000924179533057569761800888456194296699131184828992071226586058365008613226336578296004667983610694191256364981293052601286250243871446016240534671760309391085454524644295718994546476436681335814101445363860366810490016607984723012970813204992500262409845430605442315970872569803711317236975076798592109973463630368654995953808651770774531487719256354146406907797895937952169774212758372953476930619557932431759001955469224827728178030959280765515215223542744252214097210177577165257317073662340251499714401003635447226044252279522992504247150518475093887804994025294223888409394297259218937684621193002374879642517123867973506788581578537525928454466622150476840058224598184262839633227625695347448121300935121791840687661355494033781724807930203448065240165663330223391871845762915579903790938489805891911638050387458834575324855380101715739731308459794416019868179614756142080674901621071036648567558854921007610990915635374653085309335698594525998796120846464886672397438268338200137433599775305470224681120051984867496952005037065639661177014095527475101989956519417983702207277419749618966303596031135005826071719589544518161126900254263771224310498426732997223303154484763239805651532676815355268860380000364515478975493136747141496688067348926376224166544053075531816947227090084371773405019588324546753519052582689992525533676478046187454497600226828262332169328914424141487236043357509679062602892190135135970040684617595656133018327236690008385522950123772747882470025918330193872477132514275730535817416018613624585046555524355598770666975559401399660065997354856038885781172210861606646876257684837709851239727810799049222241028073391163545077479888741110339499891072531742319077510251308888809635630699108093870951705524191986554769444208594382599746943621341898343005541338694029309836481764526266060507842174073750439696643521433962908676980890228137884430788390314385074676538462813049754134214416447804595588724451645617035253213492754892839600880813243993184322330973516021677485193161644862515209742581933063819333627754165577813106316545002641656727081192071010523737885667653871888383330521039799640151130909427212519485895140004665422351674418281439361339753037306684259685433619104358264012279730691589615383254615087170875130157265682446148889581862022430177196891369753457654731941758225972457279117888078279076892958362744938565073427494780532030747509525453322992650588225925158120320072709955925213738871363887643025639313752395884933335474345740324454287537182003837239888313858231333493514638993042217855925726040572958543040814409578552312613995193566346759171468454372654903106993772601016170536934201387274143218721345050637192907502156470149380688609296870936148477573154403672850471214447643244036477055677139113781603039798830258334391889948326844039800352134484908624152468607779075832741170196581488658574042929640306370806967834452556433949258909676050275789392633043085355060047593964607701158763038585367054559699596057989629210298799556738012862083748591114414972279337756959189548702930784456782867554832201396208084193015081518951485296018755371563517891801474067539983539706836705442632628466119085970742637638715571799384213948982282756508589179053568586080344983131232451456636221052596774462500175130827873402020550010834052268586542832363709241694509500761514648228196001907081058757120788746817604600997039162885780703473476239012336632963989693578424985509947037607079073059547828275075859003420703734507072645703026885608745688303906603398422072845006794303361379916574028749201472359949709047586137098893894693387003671225106154823931424403628083607288008857217902804908991401273061411384062163950242955572946069241560719866584579362364652999077824976682138479252450734244266179851663716134681415159060783179701439576051407328096768249411339408311285631254737259188580961781591528673003194094288573751997547712999441422515642161306326643591464159015171440503807578616674941391817155674280685385858249623127182683597554213221819244013126486172828876810093669759171754005237543922977497326216064284575507457902886513154769766117534666410096714845870105742659580949980367296795654589264704605042539226013676225604333956909318507245232496437483862043766464352799926589682131532917163756973030021149325661432480309442062944811551829348571920624825452386409807406491497937854234856755545391691158236538678646481361438589522261226897096102652497600862737259684726202111517962276067134696262216102654752249945927262766709869728454694845165108806248807050816792466001645827480359320491076449970879367115355197142614206539003505361174510714724689003421666926624766425212175298642624976265507261449734741677447773877592176680946217124215491559480524735403176209736382086435296146122211392914239810607951246455760763063912314873287028383942969572763673365696871809007119446148767974643478286611766152330731716640087162867468888671156902720304438406741650012660122393080420100421190159966253838438510785579884579869112474859802621113010572404129569169606693423231725966992578499028648858447836818030678472467863510481448191490519849843553869491725429793321366283736016370639842662994416356392967961987556205209383304948765494734446561056554700922799421858825872107421665715558401483489646214630056162630037774926906195106670898278446309941753156106960946726440043955668359100708954727818036718305615403425972478735004522537764632913568845668540418020395538681391183465035613330210641700680828687056283533334370584351155090596802866250408351193108741421911563473579024909043220228843866263552902678980461312429240585005586067486485085584295463449255840904301105997383419191377450210350642877799436400840412710271679213935992690383201441547830751972129141331874899840299882511460615622959929143445788588502947166626589355518196205100514521837243923029451585771764588573192213192346978648937195024341219897541424298763442775608708759812909807592305380288981071540893582893723672199198859410957832926410286012903728502298979473219189827393816762797281698607818181135959549509204621563323622519019441603490028853062699515617481694881774227967054419931483950711994635205892658728672733873618276471251859501421258795455258390010245330317749741627874150427479766093161574153786151977518815235742941676695147853795999749905972582981575969265913196053751686817095061547399721136232441274401733276403895519284288375787541670584599141616964274464103490256456167102453912358697007253969802813668956884873380424536501607693966339470959312294684733605091168592503481383014691722063228451610698662815859364884060780339125000296965016112617721362214603393088906990439748045663959402344459753521800071647046099252678470701810952854999618096883929105640602601106959889362754232310600493996513357012740694457048311100393919911405780102871534060220894043473315670314271288297326836267239839851861615573414163289080096923910479835055774129797145771256541672621005476065061999973627570421176856138417760949150591388027744337107030255258156755586711085523571218433995916189700534388879341490994492584855600641170320232320326485590790446734692552027383397397931681760330410060726769578428163828960860185830215120820580663732943079473654576717766375433630720585078049902421446427403471600305700036309743835605218622429432673644960744791348779103354938687607672960722704509100100820047033165268910721976738763113203044227546875310795656429667286739952715396449089326227670087569434290458800478894317075507552714710278440813739843505448767797112870578129203749721648399236508722245125664881081827824550345005766442898023749552030882232665556638210148181322538982265881676604774153468432757149402586852897957912531721117924059600374217981451893873704338412041756905325357630268352309991054373343941371150636572514377428361069227672805200866845762708173900566902980749380085989535962304396330949026670338451141100748961609588912335891770613744999204482494260159088843916153328040674105879608470537430847258611381555627791125377390479809137485162940077264902531781457459020832909240789608239803117596817800636833819118126762749556065053382335026591077384547514095350074884002825923307645906813491437848607516932359501817536400101626927108450367171315777267403639365506810257456597900491444518494930068062868687472339709634865386225488292947442066099372020131054349145571115310678421880818110396923372723189664988155192420238469922403916560376170471939000686256983104677834631117162396699953430629100382022458617471149953995369616180573068079416131533295001983648916579982917559603606931547784516643253259972616192666356029373028141479072974972462341552572582307485365038480837036066831703565029938295873403915933794540007654438301048943708364276258622318257972526133147644204213714266391073708822022058907423281682102351665457948163874051094041683507385345050161443321133534417959828494811137394615444332389383696788194982148360450555556892097071029716644022658139649976198000947968861032481400799161308376848383181702966353011332682498739391618995496222966084530269309044091262632455009085537679069933542395123058101982881443228684573087348779874397309414446351602924900761575141670699952773194922559771915682249040813796559745783405732118726989960582667843330612197562537277428119821725347158416884031707924338202391638583275338514384040032825484071826720904501853873128535049483387219086812702870292344787714216623956852723960675855661250199403376810628559734103756688100599060197725732518826404027783035939181542403088926463739421987659885780147622340745910085953496122648001124133598819914250114568298207303797995278925430595986097758580598101766639035904505397395185617201048135371117986252169059624091046672156166528152875537771643971766846753981273875772529921635255541036248132260529552665353396001657214804118990043226535331507464423570903833823337682760607785256409272547491934272739314625454706625698606041959088621001282228020701071102904878720143366242211704534768010683937968003293097463813199302760673930776966890768979331484853825999578533649296843194440379661537806083657123005011465059332931626346771896997569132872656791861422615401684177870110746781475558801503473634539825959198829366307383125453820951452376143953428201630355128644924377943876824561752412577514583659736207047773568580764088667434349117190930673712167827276412073041998054634875635109874615088355561579836245714488256475408162156725085136879454971018780758878914048971622100276466374433543104859658190421817204086972009347690342522931474269028110155658990414947970997970159071011947557622784586887770774877813438260245288753204791903072496978419474154746508174742603979270167559263683071410934317252718744145797658013662190939449712802599326009940025240320311531005360062478711625597303623595714092012084817839179778284113557375709146436738071049026015676256396330196902234221579001860732043974406374260590717758672835320156701565916454326630233916796023398040519145907847332216682935775265768682648106389481661730304273343093482024578306878328315660173209907868570192465926551062888400176039710410987773746711745938928692209478432896783245717849787814655103636126692977462922706331521022560043788344919576200375183740121545966990599193217435347068529018156134911661044806280711306065880290832055490578297234935301772278869002505711094098497109433956759137034836825199304902644006462022076519902957569757324827711923266576345653238408500610362378898706594782100295963075079572339713432918272458353562975227502776147044041272780141813170843491881649747830453039128066119070524397605552401732521812778324055385957990759328129972252315368956896234988185838012504266112085056693849657725815192590589258229161204765854018393785345132269830283650375641495857718155818365036704597246620197161097020304301196992396868201446448788879133667950663635852855487154775702386757880700144401022738754776674897003819909491428254300700244360701444819091659120584003547216304786586829893786255546481878133079332884956201961630298743184972886505586732242955906523777384616639349829095951967477707026829778454720031894479575516109235839522532062419244606429173319079545704898980646106135345454925934125147877778887703126307985023861119061730810489774415492826755592356797606401643790755355237961086172580421008511087585832593110603955855543402463949072326857492432266471940372740128045999089791001115633581459643818377391057393162937501144403896076915271194350849575827175172350292935598210838080478215959729827320034660342738430250718940909488608782576916313730893351626725104977660542733272421803462943939700575731808751283764654473596234289266292193960554911568607854568671901170367399014919391142093266724419078846108265735004866347007427320380020431063322899950140983641266590546116056179545294844335444559642626167991059966006918217420315334606992774673425129401909522335209919708241129262109563791150577921171276646613110935053061154718562340888099879268475197342489627762340094108069030971913044493957909079538097969928595592373420251522718759199505965645286264429670922540096991965694334709203830300082012899227941718036859440601036582808162401905474288416601313545487097769788156878997070607863779465066918041254547334341330940906162294873942153240021019479052423121806372435806646112127534464120011281124751204999670835832539598758267568150055178073226565569796369377542900741669407622618740517808651916524110544882319590092389676503622717022158520285682056246248435908902246659035379335340933802795658636452893619541732031161581907886465809223185280705489883560889579450872417463285337430775531399924912283012948661561273360520392898136328896864813589299864417897130969032073145351161821876206649905414687998484900818609978407461318319196750074236585085387390967133789651402143468851061395731687393720868090787318574684539173304246149831729448688971272438037204269099434727174178732723881495535617770603807220133756314941103484507590321004024462722010662488324808775470980008299460908829462646732812146240072868355102693847642560799849440653304976424658255099768319537472301541732972142496510749359044826851886268104123015614910648540654332570760245184199862196690685500354453868262537942956894909856845935933167977324332577565066122173965710008485866296748070104854354715334524205980335542719552194617972519926424408351078068980267858236590169556820997718012256059667310681563071693454679372542893563468941147383862588402917585666233440844868352301306066014396150581944114965597503013763665042224939821967509657951909132346081549572206655787836167433022903225079674236303953408880644287635712348388009884729971788892814191344764838146972234190905937782557212207800830458321787956520262958731943517755541773987907986118012734896962857396588989304994025635987038383367823524047649769491549850084894245658063047655919976787799384774633885632438187863579540715692967025791800992996500764652595443065715875210896326300138126536490402438510774869579640228296444753231695228316092189477091176177877033562021119842418010409447276826041412977035366965458691016975733564134549644147366731583147135074387796571713229253525234924096886565947281409954333353290513518704990812461925033448055005250647951798366280797763340645678923692149252986010046527458007235504861575210052600678254982143995424889757845048166328635132111347065147449454157112980462860951526966881153791842043502866091163554094669242901682602664786876295542992139880743352609139751702515966477306951126788518302941992572669939821087604339020278451837112300129226873853559022178073755738470539260023197884391223467266865349741747841634951641086603602565363088087957454640676444638614776055374370480918490419169112306031109650436088320556726061008377542003499746150684571882030835964494844566956447479675682951578553996138389279202082355175490060114419222387294237281802982315092886309737327870618695593699427530001308462730434687332377261566613341082358367326435320658630647906704852698705708129375265238491912915394271344524665151251046884524814764007223105841503087112115181510627577589090327858991252038555827727569237440270025663316754432202781419794105267870931858867295722339383596435921782740307064544453341287995468039116274006625637992366865701717274430117553913005961959549522258560287331304569436697642300852064327839468673271857544737470893329622959093547319562803857260252490785982737265189028816495717156832767699689327423840260275919671862343304420809189834421304571676120682613761654205764550861796661518445846934020667269901582830514618864704347017053831006491813984316140741096073134971041955681240873630609098610416077790508190871629188381756653707422422384267140586275742066733698838346381189463016927594797568809385880342590782077060943956151699382468451664333225069311492104070409033082976445415511231956752237223718786753207662342425067204297039281442692863238159455690839217298945617579173123261117411560325878026282791034377961499986919776070357155638219799494332422432831308482130004567664307678177556425515033228293637662292434688895372940471546287639093290063489542368511164826093047325359789458236113880786078270004135920837571500729817480428002878219695215751528698234870441991040119832695174711574261800912126834943764127163126409308218844375394364865292052442172554068321396099383746101253525395583096182764654449597517702989059340354877807167716468752120864115183708328137227506353612098980160087453122265336970284984445034169799106090668892572273455758082056865706827344700826439386913949944963138342247943019220901688794660095756928682681008252981800378191119117353892750791798532084321407905960661192635843422872835715240375923376883367252607219799136057219703478981817209492063064279478125369156744380942420192528567246550881947667442279226952375250160206682362544203448445767259603380390536884455208342569190008000738030217607953213664585325503231979228226450406312293582742556315442175520501348378568198194077162627568652419632160136358978120607265342788365006180670560676189806682270411443282468597486097006488772983232196961084204869606823114976364937298221982164186227826419214435653230458719713840835826027315314958300479149763609077389848590129459113795421354434245905399901988011652988781831226276565530030813992861766326083572509504096505331693071015233630188979515966904777920547410644157943561377487746129755924079074269636293905095959588750844699168401260410124237810891421474147155775905048873483085988161902985934732490431384883660138009989992355216792081212604568191917293931727761894230011984867102261290662124849155222383524601465017519037355417712292726230883198672296308376928779551412165698038995359794537085717846242725631294523078642544842075004122933022519507846687181103283225092402823412848368705418434022218559632577033701980432939282347507097649127115884415998657191623662141522449711707272182193868960091456589308727833673795139284725038441472030225843394489895270198867645471534449182456556828498691410717534019256207818032833233972138000654053556067514196471701415385679613068790821472048835263105000686037475938115952958965182771581972029060580636354525698694240010427883889794197944297658107364649824185024814335814909910594932466634962819544133565350674779505028768202410836993539353714968765713020702871212201543262701367196777128889560725416452318959063300521874416894278376334238293141549411735682421361727716002636181573754453837955603087609933469519490250548818726748023004959475441726062181256846776891393741527547133173965952285330401595058579327378821714586836111484217695952565595388788224008061879231228747476973305478874218005007064844563493469901119298976332491160405601664652360926153652577750319986439817006096479921258272377815636444287049152932541009800227994799167349293632302705363273305090558845800117230117001659258517831229907627836518784547609804662636226447162082946389661929266558483517940214600306491499749441623270450983500493064280098244701952359715421228626306661523833090386875410856104894097029543644429241968351564875929593028331701096895787597725144958282605393815901803109369167205980120701863442594954178091415705557707470063379444913589091822608828156942104594421228436038578484312622509647713014740661295266455124536604922220421788639225607930122411782634695176711484185045684665298696814757337910191135042959194845829841204843469301475547251730770390123012530440747931213663430745183109109540845720012087906641620985257612499210877044608854969434224654175628928493726946971845072215127835143911699843663169465280156931682611215515575023509674430051763247669859362063913515323155454788493812632966387904860830000366357188032073386961507187404337592436757116342137194708897331522791277088611333983863969545190327752066943801573503589179546754604718839519288658778824832858883417708567891407699215336421763796569211721315475515948435320307216206595293755005961057290884700110654578053370602109495550559790882139283773461620389916495350966086482959698098245067176526268586004150240710549454569515911085873596499199562626241122817783510158801570460496471439117391507723036071308129222948104022047638771500904917758846894113616774650877105185529745475302402871568073924347745928771526735190464382213809627262402847266428011815019623790076370712327340526635909029705539540975872457660972430667884841900733322420729200441891385990680336966507702100139274334989168610002628789225328926874869571641279476106886982020073677424773514400718361812655949808562619138030279789436448871758926654622759844979868695515629387380809252591299309144356983250409331607222969607832298374713863098688737306725061504440618125378558407259076019840249074476166691295352847717921853791660611308174610221290978435487576443464215527072997716973022508550164586092600242605181554315361788283554667761270449846079843676719225341418595134610419066805809073563368131145027832749367316211901578249358303432844068317747337936889314151462420764410447158303116897102703335860670805323101340183990727469286597625322615079641483116979431538398957792289792537063375391006075694878837176645203340776353330826277594011735610806327826287860445647807701265427153589594873376549737826705531470936012061524305455867368228035280866262890873092747400597810665728996779278964080359452401968557550277510684462407486543383209186329900092126893071017462995911245931424528595749915327418142382032528286015344589147272920118346807871045128822678545089662159665603387058490697417458052217076223067668318049732383696665485006579230386688129992871776948224316753882207726332769634875062201579120623695538240329327402116101306675786686932935649618916421243752557622100237201152982234602213893246860552875210228607649502838859875301688484496504947475102735781202749199142929071438708239561928632489103951097643971679125041981636732946335555734056774770275831720189679234090129326918418554713361030632251161942767088616894986743187850972587952703853466403744239161469222182425437129075635094730060146327172193863839458462916583107365330668210519115109324577155469176818963827752194968406147932667109334337915369930070239250602149221899806672315266149100606854280646463429844287993629493682282498356319500724842062409664287537844900033949658098261118530175719610375398099744605844666963235768348826146059373806610947867582592586071155311640125273583699675970244506303716216669264197417716583913650212275809077105944170844831095830994107394096478950859645134109326098320131095702909157412334829852874404176652636616113188537907743923915865065387428671185801344706692071414622747582196966804353808977246525467003308101913794889584142109844785894602839148063126736997516495553733234842500224657390246693482228200694325177084161245716984306870055647128213321193425651385101769285311571402969218172369425046871603967288876562290152203935467941468980566634243956773679134385391523242263822831456056210989810000831540508866904031105579463035038038186643116751297308017179702749872743655590941708407923846650790645333464144991160954450511402100174160353888481343576755202785675663463462021821048265796615035522188076487343970017904651145245679657897033931474811732570138762426586967460084511756470203850052592790050598965335497798104091883481398874615362125385699640552233742509837210755517790758731377529219538728693290790735836394979244217818143602508797524270146472579896495605089595632580239190889238227777659699644138704047178137011507041395729964179924421333168912346314782410766587529980686354375510373664986925503382813185431455616516898086494918479933035746452192620663311871859952947019498306639703687269365576093617359747083109789102539432695142193549963278844253765144532472735815209527853521676571460258014208390804117417813982317223891154787172922926046884271753190611749578705106413942273223053368799800327842488232516497604843487515757458306410684367794241861537479778322729517804327508074782414479172462551440888315681073923130898044329102224037805458288062182699445153513604495217712350190866874017224249113669399363251798590934888052299852372855346425898790182368807434745279273588536759988612859042274534279435451873639822015996992955737632035244542518301637571619195043930016178049087047529591616532541702867624703193061621814216046627700760245493602701114352362436088916959868314611392885608971328056963214734868691387766115872790791594805311082249742576325427189403392634776256356523185344105207487859568732234888498329702479345838765610559616513585007833809529241347966883266141242903734721238590210339724685368190071508144019200471078487236013530062774669019265114550350095303037889600840894190733803661930983878999716771294926873373778406865922155723058167974274053773511400650365095261358902381570717715533846539193146856694242440982833917626235059725618361393460479783117219133517116674984337869679710538518029518969178295789675138996860277273284201033887344637877081701385876953007543566125322919668529022568363758960880660870809763381758072335577772508990442384244857054629704873722405700199058096097357246468878960848274460319983314590518293567758183510302539890752168589287778173461982233464813259002270016847191258622474039305919075238250268953555236638662637543881399648210399253617253128960426186634987264157999854201482336956028103656717526771314050540675954791834712948532383258175058528601252342407446121292112227209914570605772384922538637725594196053041910674091426148283866483658012249138264838157234281982461791792928282319879430796571616850925536874657486662344135741828597004559020205614112617719207052067089309460178459512566602529569224058182442276649918281165700618757456747230047486661525762539410329237039516062995679214106734893481940875319854116025423692060247392406683095106605930330204820648952278605888118986552288186587103840164421779970112526808352244230622072508626557581915479554498889170784303830644497248936085511017918734798261254995856437780746008439984409124919595486244756973247912971955756323069034106053549248390616389768244247631823419664998277870985922952576600151765103791205905372359331792726566698394890868798770884857596780953901024268359792559973790185608264281880834167574319432037680033948318684577866429098810727178373028722417806845295543803184803203221044939753688203062961506177731583931801675860233671429986020911176164398433925352474524185356964466900927494935319436242674891049260477278953573624481417846461629299848396968466459987236209599116712535737336316241366855464050245722554955364282010741269726254754978628231985940516149163306678786971915825475338023919062864231608940032486658676806581677407485830320417359545965627342352117516906694404072455389682523339198578253051783831597222812047816530448650049180085720835645914676625725794088612224877993061082440291028505739006555964354965996153147115142089254466549869964424899097407618501143633476780324897147327696479781110608857097177794516793794115300522835576366738543614505598280414637757524281741205407663913222510321652141744416776767517836510111401064810853019504343092109826884280664512603194609172326393771915142362608734466342542715682356672760189272980877585048831155831733290995068351159227567593359037135966373501956883850329255439042141272571925585727929456780366765532916503837356392135694172917004462718773830667786529188887165977398892454063588654399877442905428700003913427185138861880049694737266932019430907576447436354022665003033198873285435337815649087027039226146428982508639009497362526897554570144724541700905674318143861744062666467263310318571084260713087124776328646919876938670601246223124766554686975529025025279707195988879346689199996461173696449572909984023294032157813544260952913026642365763068574812701891560291951356223078335652252460315091632731832734153762492890521415719226221171192210976476705392393247379914106550669290012592473355583078964036768148888904467784135213303867224710446797119807672958021971168817507090400322468178487781384207818014669385293189310071044708079273569637386651674878505960323060634344016481964085367612553667360310506029804777008565607551226347058426193784439348137048083768065068952630889956644178497047151115939562234334034256259037700836181666045524046086860939174431352424846254692200647882937771873943942401172065665085623763930524758629170582648480729325626808223351918139919626777942088566002499549008513259585633015709757544455013874154901541422311640072296889199890781342070676596729133846608800499360882436889250837438307033067972293224111927659819879433489141474956817457202957120152081018357384330486034030048791121289388471026695134167227517898509669857533464343574889660273210434677565434645179848021649110038571637284704126397846870456528898983747093100896526082328898464058260865424569831550580609000022679224972835281053557434935271199216383889048028205419001018059830736631749026664713608578090028312339646150308924193611437909816145138982202657852209078307557699335068124467490228189859699975580247766778231300623419788948012852536960279721084822787843501044169618754413663460683451539670209923476252422073715990143117228205547187874522060849880623291192642457754890265761127572035986528464259764657366552967091204025256672582802117868445776181412307329310629990969323299641137310180208694127417792727043546922543179677940273156306671545695622940703088743410558296504560225032531512702830933805984563028549185664690561238306737109858667666692981016612645948086448222243698068177145769101839304671964123194831327450146448594014970079467285322201734461160165452941753927326250345502348994957873254944403843151336648759235219247989366806090584123989835053653896209651425442148862814693323221988563161504688756632423191672997363263441656361734698305866927605965306555734970198486756901615784253897401919204377506342471957017419681283920890130634505474008850132916543059000655415419128527153092583681584671905902732537810675406184632910508107685828004022344900818307838517804340427571086994208569433940058522273896443680724141252155797266557721392830545153823433518031480909577956908020469664271518250455618301077890646029848379563497362500902323932134680443026480676832176173911933520096488237070904304953350425486480988583754885076044751022640340374102700811466126186810439545717669360416775091883786986444646667409263166522950240481164675542433237328553568764815764261018619531483659382473952095492963998504397411496855700441467147319999453096611372218072312957419493891459883901960734633152280119286893037037311740836844760663357148972791689385346231445184705560678355594377917858458275851556286460525001463123772129806819140236100867233790081475905135756424956951874553705157487784209229424291637307337110873886776238018522045789003126352211041856702185606243382474557500835323865516181266740154737328237816873811474178157647965873838156825481037023709686377350406884935361360399133747305717242943619171327427919564845717572522521363547117291830382534258228896444900610175849155360187859772013262185395110081514447933740209482082105063701562077134527609393335815874296376187182306167567945413985598352135973490053720469660309687548034648357956523953412026131177560571352858321315064524465939004265209894083587586166312406288945400658956258054652004415742995965116469870115665579435412942657617541911495724411922163026711682186866289457428828998171519197340379865780507939416225523698881388177007340461312067840140479119540368237251975145545674002682532025709379280665297612451748363911095737223038496015132928881679997661834164623263516098859250619920986554386559363807127581048330197641575919260063570547089780691310119525329239916787138228093673629098727157405017419175125766448752339668857405633203361502314287630968268730880675529889302407615867520139593120716063434558002910576859357085867963380307584963721067340276522964167436078979748953983542131239166611440767718088039941257166199570235360747593280263466250892333465933369406304343262083361063436883743581198671650253738200915950737291054060207662582628161454122491553148986234855476971158248985185496015532231724350967553887122089185062180574432779740095411832567976458898609499384672956798452317769717708197426693683647382589990385150838339244028588424150201348573248969962574755198115672768305137655113609227098128394013164911499477339494075668791259333441608928964572432232482156481279987355572934105206183834783806220266204160360485749619165147218876065565031078121072435080628188840300379809275710258991996488853740429561597995015155746637852517403230378789595982956068229110156852694135498227828175454980003322976703698258778963345638563443830238610410211692956525750347001517299551871745636794570348591069577876294853737598981845030186558091171805449265959895550996898667579091838409183932820665595052618769505236453644155553389153422530004665037827716645378853079853639251503475611627836607458543026117671615378672486741993671664171696410623993712623836442589469109356228322365069429353318828662359691113880806455786748757267271444359376150707191288342988753474284514004466731600462797693558252564163340963305287878867773454127827027290221721120631175633504165296434184386947252157507579803299602730747584965989147517263595845449044010503132378138727722117435815541782524623534417104997187370159580423231736672739697237228093409941140376906757337485785092215513701269820223045922592033225364362727972234397990275241265294893798874250682902920868800316403360900842340371933229962377934431898238136033975098175779801778715821329400963239060178408456630829408481308449744447777172039115692416052600235246278023403828150050960876813511651198568621959215674599577785252288461384643074358142661085411611774546307002158159043047030192479916342044650739946847038886248425019157381206903189050003420318904363037102494672169059028740208530613121876365146517088761511986970570765243143431086216688719289858858866993793454519409052714239624361657762600037008829864226402778524974208424016087624946245088966527532220824982092227438089110098954640310230563347498701560935063725532850805222321452982861224667113321431662769660637924144438066080390531287790009333702344695267583456192512842985788254227534640875521637402485852297144027909054619100037038978351313750528152364941822562008217704959666246477932596350611017022266256073789159875272332286503179862637040386545800810290740281585500407659801689820636779588799704239416461311447459196400811173088997433330859176928861638873059133859228448330388553952521183029490025805577649249876011289855356630167319642384901202393232389905895304260084447466956213025575184054144659621677006214400218877794969821462645492436086454557792800939500993352752640872192372705306616518257449024209884216830035642059178799678364903477551347421488203709041254556690411314969386833192072160566641585906250644725981683626153682217838371882152514490206371427203098586912649912523919197700692673970273376841077390863943720839914791877251966108032461921599194276350241321104701090817855718367497533026138056431059396146063739821808578481346603930524037185389910892685164247216218069250193444989728227751493598222021057772174229094880101181909462816691216397998090232732315894205401599950084427384929261557798524799033940089343955201271894553994089492512029891267289210790614335978669363076915762872554309602903570767436140039400541870157092275220437478050198566537234149841801205677686797592168545199888448080131518829507326274923646583758579924149853775225347374531030796236215889291670418610907621403469054054103369902697896867421563046495719635197536783239644885426779452974842183482792958286032232582217116410034111139368122556358623915221139356660978823383693065479895872320419424218115504680241493242945502373293837937562341106218288335537636320150497339081695896072348831739810407429641806505341443553320268767932441178621068825071289021473516262257666775797804094248724838281758678000440966758471392558117726625920935408263953261487312241759907787675215424074265070048242932443323368243749785274045742058885780898130461671412147673132645192931257213702105632807130369083833910416370079782662404408954263303869664689991990697630694606426610847573272111144666155807849693030122370640374274492685914970004922782920899167061764702916192037457163271531248514636610107122872678091527373736714732616609445571632366792284059849401713940441850297678207621232176305351832378114205256191447416043658791622413338706005906370296872219580850453636192549403044156199678651274572316203766713501962432487372758689598937332742134360919943063111883778281489531100465877127754159395543356349356264180731969093803695380242416871902986377992563167596960515984094780296876977142918548362368427242729113573044825048127437988409848296682533046562305628689667536551391434270176327566924884091954834086904132231494310886045424207615939393901941814801443358358591655825567695602899617832287601473696446779843162797710962592084172635232623239885374372770770559699725922567917312411228519655396611390637281963050214886072578722078082755210456706556728323036531271676488713539727083596854847978999535730622597473791491785600091781670493084090063714262030178381990846525265487550735101566784863145559731081773959245219419211242495492223829614917442163639432356060674809235459824723206639347463740684782749892362953294734807204935443414853907811394104890415123867198096710471978812475322045040724419740576311396000951351719662263020762278956844692977356800137242180919705330012272491527595175349377164156175365146731481544059742342694868287154203886813388314966670020325500031849559254854409917890410586748592079019399157047246578577295120480448677576358029968546011676616437573183166778865241987015874952313389594470558755822858138394744261926419689908453482607408188535497011505713310764636517480132929786688548966277689572189690522688284943248157930874676360461517562323180430949590818336354191167626816269602893213835514270387241769872937820778438312196160896819275419489499146340834692022054288336483202062006704890959634757806286598946200321261714319666108177832247649135725712565054114261645068524785904641218088969168373506618895538006466059648990556671043648380311816718724217121215934286075185411495165117716543441974817317427533924092444328931627252274858751857385294770858213832619144900206283496415380644525681199446715042443997062855683578761610625605531806418025556510234939590806692680681755853245415142832366473778695198175150290712169606791178301957727536207810954351240302206825443388041718273665131446890064778864449901874295770748305806035202667887195447264005709573451929315664040519165644048014352937055138996168258302793329942671625215207299229780652780857213071091352911652349829371567020781465555200489359727720459618045419690241808880340034632663244236671543108801159494282834836703147143656791803853964764870879377088402170736724471251836914717578328319709545201609358298702860980879716155996863768623857193523098314561328228724026636922512465127873905538140689897464744598187443733223614167799677069609056693335936363959930206532650291510595977000491458779530266110015935392738863194503838248502676641291019474315527786894740126783710739567174314363818596172225924828415223346400005654198534038016521167902421942377570050586491443226134283989296877424482495889634794346685881628669073463726372907316699151956702926909631622544229979221985251167380202349343623455827021909389211266260001789235263133248195116930185154533653974473375518253103960049649474821870053687268492304981309647846230605939789568850637704733183918242655074250164205251049802936313687285320302345848467515203593563746925963931716401071582297062755727234734900260739439175670664482576165642627423894924933475238592370302737090519112867218444388339548677026449096324026472981758674140865152137604139979027136377280557065199629897590739155826641108959529433700378119442603081053965451603426037558342235991765306886817088617893654096637435040879708406128021495256070029792011588495317326270578978279555028466996785203814813176971919115762252299199638814058530252798229942458672801076966731999094487422253564842784848587578902433053821658969144876531400688747037776389208284488890338611020150140026827580765451079288007839815259177733924019462924133989865028351183568874009839098538070180156787522773488290285654001353619285981435448858539727688006730295193165822700840171005641777630377938161787817731817927743882788902365266098745874312762291643661489634178739163311040446035496585779870673151190942002303514331665428048322379069052254387059520366048511673436691903350359015222885400348074313425796897064014315068524235656643157977500198233035226223628933131846864680649595012597416729825687637239140167551701619371769791703354499275778433367204213337673678612078682483235878217144184441163309165543904407019817874166826215473967725670015146586362235878188375131810935924094522736738844030465920937576280364400396033693677251973064870872579818445353926140657933749924077041372921054490422308755866041656680766552154850155868221051487541109456456587252440396897627444729384650253906419775319839422324344869198138462014473120724970449160824881236478004492524341656882102232012457004856042270987271878756015881290010880105603763338128806671990116573108697595151138133676902834751435167960661136236618497418298360349519614858190144767456712716632762861348301450145427652997746426668478788110503990689735231448440989109636279608446597718665918732658544292674494500181672966361376464407269056910907040477062776519980299728267164614716808242331301110717908555420176997510445670997007389822098874889015565805456218813873280282370496558364720311068661669243512208287563205233649154012893601120794231812747887213269536309330673676359802219214487340786799100421183955096330859310125830633259006577319909593329316544959830045545341363603794977505606054419339892965307192087747848492257073962475698081179622016494819078806537730619910919485635997123076314561641250528026399173530576929161090409380397841587618497667908057284179073345925056406593944329223619725677093345532293458186384619822633216069804182040164019215698721317292120619041905953033882905648990684266707883418099118703624270504086750953678958324998031387514760921497215365800018450558755634066229683562000334903390231456916089861827948349797621370261813714422334076335162835811255414088699257074821053839966460475928100510611406964684839207956750477020301371175762485391087079364854088925779896208000598972283028252963995883051553419633834764548162111194335688948939717065642297419020867723947796306010111959036192956453067408268792075925967553338881473640611289155648993568035235146125915405747858118418421885780500504674012680900968471510418461696970760994465861420527797286976549179591635222917720563082295018529810197383170894886834009118183452764283565474463100106827959932072290169937945069978833534174748378528799817344827375204922050667462731921692822472314093171086285419027322164871646326138384933864842183804738320841713248176672159050169955386036021145287051755634578316400192973319492860810155711127586702490336307101597554735689295803987626756136909835353931798531938482489012709115309331267649948423097370685866729574240223349641489677492969218964305154437249624388558404353359477809532495296128893626899132297597683815123102665704134657227029429647528937737416744623404287201753549093016821845309867180694216093859113163599083126079508141369899986632694729235571591185526999924779269282248272341309568942451043489663839181103707076720392338999242285260441945533685284789098710398402087023266070850690191790086131548404547127423149286528476777013832686620163365036741150470829928778812276601671880827545424632219844285952536448649381203672336482373222397213198528138405944815640126889716061835690279957382588408052775125522258761948236594955371985252427849062747824775006194432876788005697299053846849741058430775774166162513850097172940394194558898617376086364768976444857726977248505559298858641471264773867509220087025616172253787261463930791175394127867419832340118685227271587915818540338392230209475956989645626210417440235585330835310980601806138159138033252562514848688374519560998718641750676648504129614087091033327857766475878272210843808891345511103483293269955504671639562189058862035395746436131073750157214584094884012719318037587887868551221174298926912292603623835533139024387339037216617867448109347166587986079873176299189316481786408970122296791043405909742149696224636662311154803006277216864273234994741060383038808689818159327734075866513209475350471982510815535521305159506316074430121941270293455365045426730501158992028508186587976785495493843735821633268657206138451144653808072280298770659192305477284254472980898042602867617905242276198748000860731816781831555867185285622586967898392867473111866005766701209863555171794673590167839184331810269238222232740861170689616091550863419033978580292804251026918823122499553482724308798603611494865233772227752036805189511481455581860659299902433260627458216648893775405724398257620836607790303944162494320855537271613801244890005934889838577213664383771587930171899953354186464428785358546142204209007567178418077640408263385064600407597908743995045696546763766862582846522675274887160496229778042999431184301791348668587504068294441764379439981066692035792416423750452384769557572606452720615371259471950864036572187898178473548999818088322439174609257911933865199865793960612298352450633015261941411405847051621045168523297829610914658895763231981258105626604051773229458684808013432819054569914349150708689737697486766792445166784929420482392186064969948699859210967718333097677032544096478599561572262963963228807316859618064783068118706803650011783586120213108179609420671398280211679491629627319272900269980012168618168476115641861821571114434701960742124635087842406600112607895544874587918618892111863137068273338806916999216253732592225304005094220351534922776686599863228730195431487683840028647113566229053716597624304071842515928837367102537270301030091440199254276467451278552897145815787230129441254668059951386311537514001025315215242163096683294734711630844226470662337776644082991044693814714824620763479988128733237104232919994806743963874230498869622843084645494522262904454684500944089556095628679315498215134836956803848581072660277355985996151038042858576386638791188492556065396108482535600154667204261066152693710066047489998997394846214928687484920782684271894390320474960456463733978658208535678020342612231384085477032300208094609568063169689709472959173760093970341053976137315326100009058536431226980317002010906008704746860483303496441087964742118503719203867062855653837624570874968198343135002877719477260171129981392240057919000291037211790227320626137737683151968093862546326787009433873794151442295343991135094039233426531060423038937372038105082350260070139066710123149174678652610474464799830936564792230476781271226953844875929212798900250759651146637482640004670033986180251888089383876514680706661540171933057276433660439134782396462106647679646493817790327031362978082937476640739379626432736613392268211976634003260154476534448482256533984766372058585252066229829442805233666568264557345471284806250845716035833271884099342962845018593967518588616880771684631663988636562370938453187902953632208593694702071013326132343686458551773838895016848567441662617873903737767173388024317041103484400942502410928690511172977246713485107555970257281340982478243418695629031020673465872355675124411720358035969508575210803890640763638695033631601149002788846233286196757078444140262595517144448990164269330740372663187020351784945626201255222984549289084772910037502279631117747155359671203158871897685592434731626163822591453328259036276736355106844640281991486550548858399742417543467925433301594686460014321143293402802485178870647510678944791753443027009812611429002865407919887520543649821192058601719125115743524053418451055425345099720638421837737584283099648494244542487987253761571086730550531201681943688949659933354923881740960193495832008144467714132280818545540540455761658756844020582800128189391855748954417401164947765318938307759157137972279554516192310195605717448001489386870474024785307278073046951216263609252897303949586491841728611998435091086285801788919901595574208767742562051821986990447553383933901678962578089602248233386720590621770810636822106464641660555911901364661874394173824165238195981628783740681466612530816028089151678401440870564982228416269021634357505022990487084885383262232144473940450370287373785237180313563201352612741412844089192968626547368864059277338473480633117754028855276482239982706374385602137127973580533534552378505190774489194768481283166646329082426896049108842714251943972299333269525640132396061177643331880195228892712497894509968558543644985614660497571227576341043598601164996813911385255480154531550599810683224675556933122527895980464997370045600004059869659473389924395527912420654867986984872343376361664252918386175246738168958926399024539186968543887558503942057740524946228198383178751825498629244039777078196848529545991835621724953256680382528778604328688886444630367915741009543403140547584487369010489354641034784211152306521485174064131330033920619614432214492913190851079808629308262761980801175262918746898792371853880576549385740453736489772639785626388691122356093291968800318577923641410609857513738968884544640946892391737190948307341591732076036573889076109950240923726333516729111275557545961268143689322067927462066706003039786425719272196660518256263235810739962430967632281807954056189862839626442028934547116286191277890834889737685452988592259592021756243443243566429028532036820852885996225958174510673080372194946247806864745498069809213235921620886188766172106017600065939789039148095260207470759479341855591142291656393839556642428197177976770821310866701967632106144156979576164032024899135493759515889113838499207541650518266014481347984604915097485472685382951779098032406573882538058435162176037529564119115963147588554880736462836297841533346521611889329240972317280920164299907185448396928660137819451084463131374357445508272614603841864134132958287954834890770825877413032042822722393073416015045234193402675150202470317753963246531265889597190751496620045076193392667036885044573331924135234837580553285163628701008109126018805741580151092459259970731399808969890161689757428138941279489973876297219572681868868137402702845839159321511832718114176919599761960841890991847810776906164333162092850075168027843306375968796072703008854205125524090709423929913733757500364856252688701890177981284887734048703047489743763439601985784023659893783416124074909776742729272297665746722755374932729171708616638482330577127363462105786129922240146914674034618567756792659743140054954917353487359385561522005586486978169145563543895188682567228212096586503447694232138328903775814177681431700138998459865394509113531164233755620033224221550927913523421768525395946243721481716385833917786896483157884559761190832196943428893972352909948343039477291640667805100744903524252202182851554376465009720612023672887400131891325649307673339763216086734236850622563378426476047766469917197004661452116947015371120143238509416830081724192489846117154021230946582179889321038629741595253894223387743752260806480813000472238944108367624169292921060327334966147379528626428633809258036685465094744385799275801430590584041965881264050796617787228187556465550135348481908589267671861848724502670544928626432165124428386291939400175683091117368650951875618901198194174156782316647872267384759067581760831434540415144334546773907810099655641881725915852789466243933816809817882425274519300829903477256393480796749468938506664034875918600784735212541699511966940462822225356294477263786781184879779295446486615860161162771463930197164677916843836404078493662078410959621824091723478383855089275238083053314996623399969678083891521894744298063516079314536890491924347684340198981174031400245024359089732893273795886212331147750144458614646189846666543280060554788924205685435335785863705268977690109731590467228397117312339414234801897367276158931894915024874592436591845435091062612581077423729415958479275163859240561220084287117439612061058361072285691669044108299134085010949618538117704713656045736720375628848143245079155177947595934935731649361952117353731834093246656650662077759617109907612384290600909621491507004366716330242280570760440096443048144685280075056146975950785601499142808195964761169736398000337114600660040363208824481194787535789331187292800214829402307502497003799093620684124599419587832378900300418264855538442501962869164459340026498354256910356847412424962300639481161246077077965403434389595391690486103641483162581284970176196967133249812443058373961622563734181553413857985167023970832130196508557326756609593676517643202738500309581342504065003871527477478709931077447396819319595882863281949485664375647452063965961785395189566464434676794280895986911952308340351554357010383210211923502064660923594977790773474651102747217735685196411069411066648215221511747514187620335346997640656945474392302260276310429462791151860435453084299382062320625650409164511313678405120861283254430907130925205985202695126680161787215438898106452449246786568000349627470019450007730343938059305319551577198310051325299041496451391984435717268771675820680847328114243373127223310633320676699520882580741242544344667446367351216309977111569766120357009619205749179888374096034611727174875570529690071435503164808515520332975411043288076388443738705553277865462218487250605418718675346369987378270487318300296753853281941100746288986694665583209522102509041914780553242735913946632258081656952734436731126707013020045113332946210149710001521250651840341907634069726599999704689827399852979338900520060274980546117667441091899209425667053696250304456579947652789368911558678075515632994205033737567185914223568581137725704137067491397411439985383306524202384842365641144679205876277888646715370896614022997854729893558337018825759969698337158735037272009608608571895124848517812619778085675942502477022296644712647156897779283857253952846587658708668923974736271094990211837429120943926194205106418647694651453124661617992897938898274519001364321060499797253028469848399965610793534576619561523003389230709368113230651807356721409159047993328350912035373227480657261675034812669872086544737687014570662842673595470330477826133603589936324776223647253603509207538525234873009394793977385566315880109903979489713879978282991516290124791634209847987621164035975701836000461125540786821450074070830525439980002514812819061119805427119139964162739705548965155075008703573004826372233069577098985412770510471962559889240571618607736174301846382243432014241261118473744652605342115451082337796497570953744485980736590466767946939508053222517113654662590425823859114244418830039535294544411717742372550797101945386162519146044456672430352849002295176088475381698001155650136899014786555999141175157444652358147754393987129374125395876739891431002229462299870320767672391330121971330608594835706792212023099781439805724417858584443181971978540278121420801155995727633968231054337263275761145024614241203957464959347482210571305636505547078393761976554697003842866978341157482806213238871621899430290354131503903574381420777691084093247803554968216584406579358061015637936706484228450776840924326548770885517753875908641009246184404563120679736548127346958762450917387096770508209309337112312390263873931294957798653495842350002155317590876890118900548459784844020456007434862385291490409984191998753877437948293115394821143605880361215553013145616513218647572326507880302716392467052718758884010290289822185360909127088395993888560235490778647960585329381467757979006752339596349674455543697377435350855011356700715984690141920137098734031361946361469045997998350068655622668157994475235931707306148349501282736810269061060704858168380793109113120250999967618741243323975040883570121392487120368876454048250325687634507147296710661100341461466336782334321225746571747561083143254725557753364427458552186393347045864484201891564145806047040214154354763608282386551611359353461540912851065327349892573699367393807904835690072631699183580622654872530342960619803529036680552526293656140002533930341870860229658785557841287606168597165219017979266308615778699343585191017728432671666670860389350577470873181358646226194527545498711708721051074140583818400281569896728670711360898593754543787201367681318720622118500301701221671016432698212627178258704544157907649173279229128750437942111387442742239985694454186813145757362750074807000998711527107665143948975063000706372243350466254994091449697755236614617274345612991369154432261677321524591757222960962037007511996727594529758260044998818092104008999321172299145619634079234688376811346302085220355156323936736087656308291682072876137367848388523143855418172059583713008050297714993310256205061663356414045157362321872495423741768743826355808908385280631917880344805944854238458071069999304668067725659802846305463888782687677097670772276832108243952045570068471897928786743583126130795194117962811983847703752516226267343161418932810396652921477490469740180031304121595173826711942866401200334842731468620418493621735931550760545622636787958960875589795769722131109943690475228400120142056184917702007481512371472890835366087600035567855417578678533436654962785531070791046888811037056974051360154283988702460455885475425423460029158250006032616482896443258850661910119706463714089254914743793774855188041005848109163400325902312152449111876144133527127686544550143343346613933802674281612402370250538045066990926386089068808091654518400830522592777534612659064170408774227362606256320918612335618083635997770073034595426042733644111870855742316973022969033024838009129964133076891475560771373691000440148866672942459147358934022748402981887814826178702787712301070551924699315991249840064419353209452261961226135135635015250891996609009164955242631290441395247728214289662607573356400558644222510762489911567097427645870735273996607831869975982163412482697319906348192465190775127204286447458888783290567932164634687210488489814064714699729532270701655781414319015446632233521865754150596843325347691820494618968552987105440387685415010725897444079369898141290296649616843483337034804618726108577427819915361703231298862918909800920856502963834041981610443065167175865277635283905923333240630303786837183695417031591164067891363664996725799934259901284478172751909453142324660019457675346037144994724265022888054296510440026666161731806132520512576761819800991710124010713172779082135388194940965402347262834748440940129853165243152210642402006669551474778013177297190707483164617294721284987786757036622786340350682568579244420171556277364871422717308572073833684610544591722590002675130928663859047906380137066617562522392579951047632820562384008211592970444556534740181159279535145738141159554318255602654276583921722010274962280534636346909797415193008008198943609034793533955149402486007196854806254402342511516085743619850522904029678831441913479351442416385500746245271239448700874528891012341003830739574595710806512415729468154181235423953643761521641105220555136013596650293466117557140160111309464157477178118878543936130446168281118787679590473644906148811831838705149691728226733701288355948363724636277953721839095363854896502642213260771284378626006765028201898946820115865273540392075616681037566898936021547417969953144469249914756692246717059351389444057579265504661044034145779005519396142323630133129163409262072601379638169236787874551551026927205318442023798092159726654758872109397169092673981490160592089471503898187580126929968301009496713037238373949035692693169126522869398925935414872973391905259584305579971552897474090777112160869969075895844059040915639071736781982299728066627332936219345989120683366894445884123965580496278047088558524532904890077182796573603854589392859658696809547330265592664717510979518739766471363525542834716754849529909150780266163523493188489011348811913661364061148186698846987986730762418999469589203387775069332498430312383339668481120010273649293978869224933392825874291530987367073375784295776650574626588292756216759824548640224406019601205641641180213661479248441900331195559630041027754268265891829447878846690506492211553772400280355829055700124847390073132585717792506323799983318659283012646994538532500626181001964338461260866390311800245624403787489326190624743303040457350524617486603461951814571527514337636597541017726188819950208992744740888575220127303500163619309710205116035719444950584383929418583214328511201070386369731243986117215899336753123805522348330408654009084055311100982547683372612760354510651900134320589749948917115336263720189664206946950896483583569360318379954446170833479099711054819835069391441984883837692912057871624711865392875273980391129441161192887235919428494718075762789960711426281985062759010073860565013860975407756417785084556415445834664031491522458586539118494563825153168066625867249774485775432977186275652826487531123951662924806348334695579556454855400848265531320887501475727280133692929213946064646258690888572348217311638116081157590838104804350608674828817159331669414866617388220111312203293687474882257674283026833659092798908861136976640963679990088107889254746618964038611248104339561920727774745228169252814074084822086688831012442048927546407147764407436735090367001043010414233158135522103840688500406744148905296721462302100622496570043371592304592220262952254720403845948081559471419994277516419447123492629913106434902923641751172827640431066483744738396188225857058946593650124806036407698795706718020799675878323299404729953499921311215970786059976813595615103833605424683753507913870014281659344769161647125279621499012282631441977802842573495044933387673242753445832215539696882304595983244189161139819685461351159370746865478332553812195945222208563525548378791208773090722962767555548723831558850691966560078649210430147366878523816847364723448313653695260934825923278700973632616021786818155066574818554296933679256095327182566626528623767911368251338978247406524685733919338901864462062811951653136973837980348698528481597785338088295545008045498241372194250278376436137143004711207092215645907235195531358313032359127827006404445792194201654441577649836695885143546694069704690405185178062985396683308011882604788078006837019280499423440262416788140782520882359403224743815590336878557835072524232967567979483856034213898782431765056536023720556958492046389339888668434386190237795203978652263617274501763602541671263501419238774778554521545715318964492746831165832588969346723769384452616436550686850992343251543570869105265425656682565926310637484458275130680823297359964675596415049797407602479353976671166332035462074667012900955254764481444881363997957493689792567184860363232874928763841116940536376856391406324943023788351648121875252468459946446221965610853024931593886906817971252736810263849923941354314495931351022117584711528156653650005635397929559105851512071714819482930480121779977271592745671656840561909954666909952586185019242631073206092602746168426587141431957843688847264940070324604789500275163104101642183100279098310827847386952974241285237682810065168811081813698094379619446977317454736299282416384301262274423385327605604443970659235513809841367530343839864560171051332635632474822896551870988748601977179768843913487654697345209195848968731874532450269513694569895589109725136185619592798980109754812335818586561277045858166438166069739936534178212426990555600596554861472850431489116345067920462431405490747504759081215182410331961543211841821530197506790421177179392789266751487108787576590094682489175624087795379980838722950440436553975406904384255234376986011926153894343227925721326504616420452755159080661869244859445860864731323150286103522367125477382478541744748399562654529011088630143292709146296380328716102657133809012349156653799648186090898576356933763884679623290232395074055692942337216174457652613260505532330836226042751118498867360503609346890648388148785488587099409533154786644040081181586455814514106856288316658437718378425239724909369103072393321402725666505882680239162534524692016265218518491713639818041607009157691498742583228987515115383756655330552485161910791693509993664232742713283823307045240076936185031297426374015783568800068975773297802727225956117564449351491343357520351974212301010688247570800854216045039870693627867361491589462678016514787903839445703280518857804242305750975560798497053827433393505774340908910416564555084224156581897327846180268677538816103299031428713992074922673762145989476821656153644353289772426580080234433097280498272071367304077827219448844295777297790463219980583935063484879196174244259404209049763583262990251018311633610559385079611765911332489356834460054723175400059481709831350653096069169719709127442650813526698967154961149797294402925982538601488517416197048073740316241548607073217621691941167364012874840297754820692984748773318384677388432869589149616029029840428319528367791564068640875116046015428611706548707811481523417759039000846688152357799169145047219756888874690074724958007999734281615898135736313686268011655809490011350996271367609169477929629088995675767300673047622610063292475341067132362885837363729911776664019253497709669750988007520557094929123253321204466379510358241900477815195972166804436240604055829174906485434038873750268991613449737339346136783042201841494528987339774599383746357864298889941719534869997637827761696423126449529443791977945191075071255946807642241370238798335200182541306728429887953870835415694698756885607043713923600570686484216221123569608196684481049283492349346449535920569809586741547964025125576845904698235041129777155075894771729124255351954478725727342740795547570979016432036245289294913497936729332036738341739563278398286328765768604946370042313613981308899050514172080412150986139502558125005257724770870423864430824259094117290253689234736246026946867793280757708774295633284668835990824312383680833908865484041963501046726903982171663373353725516100444252356683930253068999619025696524779404018259766061660342110956353808385421152222746514705209431263684638452129560170195199886652819461595598936737251361941274644823352316263543405676710646012225955604047568032835421091018150313706474836978115438471450602979749751352082000903038551523403421666141253809128277307395948696644986694322816543435872892194492371338803419425895264453052002149979403165342213873575596583666808984481166380844104430719035094432398076890025438943438391871634426809933065911942005551338794227285468842500651140803188527923661856318227651964870016844513833158034893479588813441474549108613427380707514567941577123763190162919363093874355945101309439822015556559215842385517270837261169831454919016370628127148402941739289157756314796369357293947981779206676924586037587728667125824040433969691825190330874544657760381252293514804214233394073893039046423205633915155866022228311589941900202561145816194125202639743000942618683438072400576776117312871595836135610937890469237762377510425738754344157790840844669573308948931816375748038496167379448459714343541735124773644775574954633125051603989012559234841842441889721094288330047673367088847254122406406930751652518290473707222761052446456904671446977332931032371125500011446761973991349267725305742882971721712649806026679670975731976895074850680166945902895582629996310643406833914009602097921753079307914064519229456528058857528954131263867084883942596041492890036740117609748236423409912370981611136108878692719425303542411948407618306589825354597249893659421767166770218480679282267922802613210893456204908203963134528764035613986196614616211514050521554017260912037905281231522983897614403598431829380161364821667831742781281858387995514948562718623729136125634644981323392617721139142198935898134651314594532467249850592756389768146730271885057480305289544796078850329419588370094969383885126214480227418849084533206768675542763568916826025003155623372286343515449149235254650451794478296167911126670370344386680771625413057875996809946479510119586375450641602457470870347274502986330440355248806170157297531870536740580729278309487684615870243260536811999747817518643765118156340462699484005388587548529885082767517510897875200684360274208454652757000724608862472625775050327131471984066057867547197582488963183717021044800243279790754426204526463592083417016989621624218491836593362090165736277398979919150637086622685760387010363891530550849056298363833886914713899042872727552250244291482836003725297819568335352188398456571240445480011124774499363083091896813500016237062600892067820599905108603637104222791278305958232377976716032878007677323355682186802739770282367308351966815417742793628610459375221971683478570223365118271318372708211669354566953030271760758672830214621976270288002210691889070615739295596501714953951722694686784002676396648018720966867919143403796896827504527931584076048108790919661892487309991440113020422233111845822569581369480931156567767545143533609721248284617167494591836806932660312395587174859009142107471764674632637263621194614994160440253259884795031556360711276928587107680203070881829261306179612308106134835949868702780002898834219263947675745281247117939869239736852761967043600166624334201995345040993437610498685379440993324203110143021339237802889616191836542596951145318979853190856956568449718562707768403347183476500252212906664108446753769968733560113339140268984845895376533899567667238263140312567264950050186569776770413389952092593092683342061961397803592680567928289320197243400388150404971551418066674315810587297374764282433436930694988715294625259287032312143508875740234429839709719239508173618550393567751565273124337205246713567392757328746084958045083619305472601055460969683439813845096682994860531969689201364474701749672292834656016480240254507933995962790197155803548709241643909551958931795424890171951228460685296582289263691583855822753647580666444248717364382709962759972923778182001631606158018431940875352261364067696187908693493356382428674787566576846157572723749933834022980216323713434198897602723391162183317256395095775209909330290575353852976465155230138444076639733607905672613472508913007657772358250437691488493698313448675366536497782796008293785563327192794502934159394241745617337918478546130520538244248854894983754478893978219969071168675871861793762473413338839696949182968289435392317061781523577702766435143605893655609757912528039148441408223023992270758052797036529665156734714369789305442268726328573695771604192242036337843798583730358294758321368718726056497513577400835902285022475198299159764966741126233518658649858523660252409697482306380332790619473818220793519381097558605974282642839863473204675287749645895093022614892018792105182185425160651777576400110140211338256405175751581292475328177773693675151049479896333928615136496666860649233611867462167166899298965488971930528943620781469913736309786702287005107565016414546407000751521521385416125659054257057548081081978719304259090725034507366707013495252825737548330816172956187541460816800760477913291004991872974326232265334958040896456068800822125259706629747380224946636755392620789567943632717384320830750018711639239490518242064778003222480205379608331242673625204951832741664220781035948683089124648197847195707331484983763936855150907687848226871403066418080877717373946700235379186585158437481844914608582675113482659301768409189936508120732154133870003251319467211753089388025002247080344391121568525532616236878805209943134947980453906487286768285058132696156046821121263853633961603869636412830488448498802648272234509837767074147806930939759861151878858825683359784912284989566687992189274275535132630267850912779247739717992798153647112869814093616813395534683509793199233901493932143016945647142978092115963290090174718000166806149031680319429437264881151230692927535773868101824052835169484431514264320016476480541851522418118842624509746466177062463850765714865514298989100776697228336013629200134274815848592273069616028396498035917033169350541634508931915951692407144843015911436975366258049249330058594070024407781080022346528702323089432210931133097628225907287545269388526524826574474024037356802283649337482624406605388871047691975661764164294872896534696079893851219008348327757305747328880587660809960372333710272767886007941944088558569267528665789945043507272776098532399309960686127889525590430816713100922412660562123594228722385271366059094353250276257279688328328496551265814803283562776499903175752264859184511594130284161624042581085045219342903485505924311403445550278432854905206372245955223827495486641545062260703431832167807494922150468442283730917802024191148548314379443762822978648164515419170863358102559306936314538128221558788623392814491503339074746300893502279517362861020505051380524120140825069928976718282776800200157337069033753950678102957421196482868496158604534170023985313761443032946313478507128497450082817629769595597381792303575061032970449813440977695763132706943789610866104525230772776565792201429067567011147871960790533483565998143307101542490101438849842047897201812096337765241552117808190766869977165020774754047702716773589279697979573105038326958899805726643407573905199626061041372121292194255994208202571932968349195117448763564120645901185226940196604596890188064109210727781191435979321581506108213617184031462435298975378048475296344933657602624082739469707069240802848598440787037275227225217945155455902163810549390628174084506092310819961674830499319673284941933683267296841245908148446459889542541700803070999445861222364619240016247586838667790634913612026566935789565710365013402244681608362026105263680401495644440090620010833703589238328540373963823460947002673555435370261782035052409387950736004463378747854460986401433531976814519759532987517582403200702406018870513991519753711652331352813158464674563567849072216348640849146509630251271165067423574488427068253728031100987519441797522672574426403364677675745943162042877583514735771903819029528411062921885851664516651831816567061272221822528431140697146601180426238613396276658363600269281249548396206660938111212714459261557165933575687533166854343726799388610892177270350149543250673237422396618917501976998703588420924017829181029143744962160867970109503174772521581230894789994989510573089941471149935682846997379193860997503120463839375368537517646081586075421678373626305683699351906861671001663558473007785749345204554236340805400539119982784224000368866627150530752729616284098429843387364257093115138580332861411368501912177739641656145452837018888273323123636476034550147394578879352260288349039232368131125809261973940722799956589320259832402781272252682362026366002439477291155188414153709621143210749116743440280791371446049632344025913925162616630646771499110561450401848083670762145094559967918481067134092690451561932461599916211861868305694782087176972912926719306819005926681469666024091599436113791908337334744074301881683661808165719026187068050116949425266461609451925332364070592668186898041566761344480830935831360845552763088485324633631657646848750597550306880359431045486996238144221278878962281394676207004308403762185037035911029731955529299836222586150823248324402328078887141620637205832034214467211708595255057777322928967207783411747720618649136940458144694418518503309565149917357577343588817410479781437976406485267229069507670404807466651788965691988012924730604378242657560849384083746819461300527809658364273047121480697974874128945802126587726543372097719574527640935313025532963996491418644543122840360234848928580948320692742978273236810136164247227715963108646604399583251056187420725700021272254848493742600984927470281745533833081779894600381551186485028058733914408204315693219804910565820411721039783022432402972329506790652456006188555253372039776039294935526935505873812610732704077616849715176912983274569303628116362691805489765161264081150814048557927399135816462211511693244242943162303232987765203816131038176529624954101226377623812696256578439428801173650292259181230319622481874001342436650902501388139836379144103464847831917645253483231485144952980109723847510995330282490168459763474394854562448986847191848414905971426274369763078375135331230246894698655942738044708914272558991227599559420986298996717630004440771822192934803582975534135198315741721825694446840052221357090228700772541486092719511572017979557187497358222905748056119850327959016363922386921396483359886757837274961303014500315188336751105426692339823456082903075320216052722839489179036367845833585199445507293585613593598835951938063674147205045127563554334396055788314937003488181377704066402144204747451994748246748694913552188626706525628699157737122976914584945216670343821920937711279279199473778321971490862563432534756562945642603078953410725238783272227640548708171893637584727407772466480105654176441297483236887066006425921836656897279921674769833932286385494365492384258870391432417306808154443139756609126728689570103428738545185965792446424701106742741155675458770339103873444682110917304996794847283978702092992189048827858221924002807967880179238220834574703261123481593481775643900416993324033735144139693155771049574383363757275153836966906087885936525499604537270927015198141840843348474472003776158664628178426660578083994592842351832028752791805251005767386405104827412834377972187018660256214811713378891248613557080036664364197641074087367829799997309196430252076195185069460776848375625573038271885599949125030571622723882185447121762132373193476135153147696621808310434441967589248686912281111988048606719440367310704202284111242762451131905204077427041935607815177911333384459593592215673798380959473483336212502216381318238590517302840037962299568701687415847883439906256871047470040203677585765994314489793463650000929900907101271743882597285703913423576863502504112006746878305148010521021378851264311955288864659453758332378543579647298463528915233367895886194871338832543793741299077808844407983600900551932494012545748316604192201186729280858178999309722485610093249671241693275673868471819734007744201534228509467440167797524532973907329161887854804932764961825669156603539271304525259654434532415769070841013715258479672879723512340879334575879100235721421357264873302076531738982367042180123505988932016960770445816030384401281016071715551332496699688517875312751750557877516802555303428733833789412748974237924874344567136738881688991252736609917397575772816203355073931058637647852184996451045011274393567830395906878104887792314717421737850986578960957594890693111226887330449704106110299074384355875319482174771824826134292733765180657227831681753975874362467889622280657126291195968771205913070269290859246582589370777160152800186443346223578304040360105534937992916015006105262638764671814919045038723892348087387287494689228537321291298856252362120829512205840385708683003056290684389353800774367685904446417329703158172849370915418892844748872221797599924063291845180425338827525219982252828130366193795716214194774509264931185865787067985881165687802627788071281434507530290958651466277942699867006038377402969160929120025257545634879786808349719598666124486677117913309411856779891322708086522227953923647285575882756996201204932882816468293044077384124904600235810480211088976022634510000534827573817118397186695748034245455032101594474847296434197669191099631591587939164057806150174725186150616035466020918308626368283481340414808627075500917933532934669093227796966998472002332285440120380483753421727843745081110982423457667587000443120099689346475843495922176940256461857931754058151703555123341426706426877099923537903248231341372248277153402905431515777804501057689105687750021557294924618048277447950039725472507363495024027780497905410006222840059757120240468385052645136800873899494657831258971221015440536549408027992951614230493969346383655045553921707001761393376028710576525454483583114045580145581627207163625684242330271349785643659641635427696985632563266526062909333495385730467816557935058028368483329950630567384404780816862778769369805313844273471818499990167174758905920442136303162237914671015989270809157589510777155234233081515775755789380978518929372522794695286212485751717274450450957929883265358785944017456945414600612081648681795649134097554515123631602750588912725760327929473008885277800146929876966142191868114361409816201258269504938716822532431770229294071025018577162490406996140233232487562300220712575822072941993419659419337487827397723342230336310365540507042180124938400321493729596410375816426404854714276006291985541769987755331747658178142067367582803968259429795864348627397986542672932159862371065923698961324761773723486041084815945561534597929343281090624135011241384379521189686021672830609456104688177944925162225674717410589182946117613510648605513933430475598076720061353144405293551029041795491094544062130686950157800452758135039052095113662165309771530978553748164906094247683595103205687340009564226016559580345065674717966975232688982142411320786211742180181886835132656055916519480121894289963532570182055524744744783631397624990594039935891082272264614593059677763423832591209600919837482625162450149720977432503576052719518341711824843179044332636241110797167980777765444768869617969421809849455588251003941385760767675905301312777547965782725800055267926052053734780979258510063577916097583153406506487124754051266078258013840035964305431834838872486686112043159384870965736134666165636227451434995925768528272706251585713808297259891999686512468779200136235742873687779616941167318873785567772327114300995879195957132786431266142699016130217422935228605899575966653964283005947121172755184343545330501516369086615929764450620876510275033563813058511568719224981823028219174989468487052138492234028357454660854492487894814460139514558615102258407333259931331104835739866524558801451821489575880095646999669657550993599090534061369411245568395779848555151380599697157145663136943511806194186520716524540017197893543751328860955842796215695506719952806936628395008504464075544492784734618884244235120302013938608211134990566818879063160085017600154003492260657470164296600314520791093584716262181261111320740197357366417715793217630344262690285610028323685343592557533321098946600786285477639145742424099800590312177818095024598794983092634029111661539436959760816831450788238977430935769672835819329500408946147841390859604950007958184060553196370416515218867025288630956714822498576768014393954846272105387374363901145106089299332304657826226998471878717815061856609405154233749754363758820333653411435531061078071673158896338860848697018999764116230227946399699371103334560350115786789270233603577282336428317293281447883549335026116365754471298918372778991001541343519141759119530738332908832995179007178937080857523982213982397823683399096236722004596021537382180456745351267844335452929804385293628132180557757370516274406646874231553336193325211041836238147985554950318757471555319595840200798825787203763379764759574690766691514147944395507572800214092520177181681927154593709901568672311263821059546624718346630979950914097717117714702822776088986309730295181564753634387578491243071316953321771372944383189342081815926900955036028003064856081302981240508904908596977891046478479946686133052097229975583685314873270319639326448123259065381911398029222001285820379979067921671473399838401394664370767759124535942128342947903325032662996643131738128847799644890541236602751985299182249662076304792806060955744852276026379717402353792068437895338946618474899200446832658245367873654478562044588312093611646217514814448559498644510302743576995039492756416367006208914822868293560532110906055820167422254110082819055585562139293268448568031647090956189543660749200081124256058043098803586578871592793068644721855306543412113558466106811502110653502942726886296422939005650273410559752712123533954910321409283638775091612362123398909113778196583276359032072847911342748612805052266616806871832008805106675932295243456329870740538931337054242984765528540740646437396915378461837428113940894693333650103844328243099215376317714928466632682517506383414314453570054017247679019494210853772622260177127487231333392325474496759258143189805908606264592615425644756005329243779193273565105132898393246613366221109395674381280221526056898127467437488067074525971299912781802722271743434689688738395706098309850518060151063514693800830682164492551742599494861616937148855704062623884229646067476646242169661061344833958057167490747678490033214252521008654346255686988901825095252162189555405157938612118857299003735475499369961285149429039623638831111399274366219867692058965267704351260699306474789521277189030350939313268771681792119363051935270102968076831074077371982174437917165513895214624010910974371126401254306740833073363300357917963952593903461581719994959707713285961631772200809381534738836307273358696110923904545916855216283099501059417025080792075220770279789496617542572728015421042870383263517524227693406911581696911263098305941749036091831176894070312863997568217554220328937405796485313852148460107929050376613554486945719408755385052123954761377421235141640645544521870179764080962154579512573828698811091679148009065341680923830743456705487297813595118570391753457047669911189130351223080607045911787679726550273733171587701576358114211761903412158453943098423110977204313437285867511042839394939780654245844806469954662303707101344086378879616795049330644141168144113659294127443925032858903374468287852299316010740019726022514720426046925348458137639419797447035924127913845977348182289157480677271836208378718457098357517537816893993032841016201651739323724701191093233043555055316816222086460457806631998886202042616714257444714426001849763255031416433732893033136158757501573922132571926798222495744742811345533364982584798298068807758320709983767319744983489037669802691537931953136182191197689291028177338176011175042057127777617148397261556428076246826121463878002327518539144622527272269771699398034971050608797063843324820238506766085089345638102507737647601380597954093803333570005578066149990360513357530047774251100359002311783098138797117870689182670724737260209164506923276746759987371991177729685077735576277721220562009858256345728949782905169895945724943291419281104578100191955522123162637809797066960143836501898332897667195856825569014373909770567994914256710962811528785110727121356875056040186240211181433803557933562159442890858485771108035628690487459751264621316322824914756598743749313152218270955478123493032263787876532270659026841008259490443308210088955934910950027226823986035978147191129327787148491841648308165331142368970681081587876165847435462331087089813129952950214636920870401400956974431180114057748246945829977858770357480433076420444282180656795397254399789683279357552232812419665743510900295270855550732630403136253841029768720550777608583930167720546308542239158726665675984226435961371069537117630505576729424298619358916935406267773815016800879980861299779690391940214039860639814204688257087019127494862372250399993558148458725583218202911834441320817587754570431853896124494458399351995682131564028518257500737512303012460260844462567233935121463836119615040852292702794261890138117930284665574518998598175496183583799263065086386892837952577363428971012266975247559616700804719717401038424937624997246231212935174766702430389141997573966607811522869421135409601687439204667365759638368888656724295539924814959683126445669156812195570380806049899326740161865164503611554297083770327811264983359061626749844558708934317948282993160174905286839958333349767262398579150915952263113538725708506117834439673036992720390703654779644633500545810908896071844587979976371762676183889271806270972639559264373508757350248203358354360092010142255922075994257467422195674390682760382799167918549073247919656579452883477911075624955326984913796601833046329514498249857684566248804471204485856305489816048583645853852529643055693908716526029420031866054317027045419134054334810267502353463222219694510875902350255650502059273292612606417557271878487403379406544494293509617955326989653045413996434285571212178514729375350796043958454181904923774426684589910132934534874120545461926766613402548223075890059473082201090495580224737763986172628913886583784642244824713263904677921264276834787318116709536898174070764381631197173036243979803671071751339264403481001956495815725678906537904594784536301217484751967046297729792332572373450164570924055627207505254459896440568620182917455285277563672421280776858820372194636073652529850344757307708430737677153004535480526930300472248215178490812826415211314808398544942987224947865521301163257470789248806872321395498486922823458836406174602063346074930392904872991409707226365945296168555067206458921053743771458792428838449883273559749433318005328435248822225033482214588773743603165313539148120372479050770277053470974418630227823029051286661730298947761261609835432127038622443956984089368676684182647419790468920911031867305532213362585096701492537457785610468573835614912735753821195290428302867531480993012917609412977703198110109370324503379753954933816807667139304978263646314208355541278608303799798925876406712139386214519504531467499734427138995169121778474967618139333672494217397672536367313110989064406309097408514336834696937168822419796287454679897130310764668838384452969848077140684579328365101586119288958560893877150251153571336851257308872998818401816896816716478496364417123285915416616747788665069056718670761930938143287931012446898675076824398968660019370962323852610438395069575115557384138521937368927325693904456721617931271792179830633173010384035740386235013203260907260352933720755526533606785304391181416000591517282595341033291221286360893806945944171451402885366178766541752491532942095492667850731149999058198203640293354722461103002307635918226456676894552423529176635811545366967369385864953980536604463142293030714689607129544998546066574457674312840636464680684365590188578870104993804266145447828442721373934165112893599160338657350306281558042552244406115735400548924700987728705928866810821275083584797407626137865241456276508263067855424503597947814818737662090880322634138855704834747915572637213317620813222501812944042996721837825356751529813377535170154517225950557615311064566143845867472912828192164515015575292086673571097812612549609111573273200874425163146379639125909583747814104385647163968933407641939784381775874379684890854252355114546239041559343807637789754065408211655370736506795386515273558806861370497239702061299688278514775434753523249816408151814697925148835661889026426299466169872526728334013595067755612090065372048010973165109253125691013975045676799999695723839990383737267077258369298650455126276640009989432690722921133948296669507543935879531875068002974881912008371189812753706728034094300283682266943367398705261106562243449777431337847328071183665370141430704712051140041966499973401313573324302866802628567474909020845970450478087365016365265465730975998152609743700180291630353791460920488099554424420192015278525762579273094216920780741318689995841835019718279401629547164900301900727687106250326794592253964373769632521812260784833167966923593433937926099981533880151727925994664142242475893500547941517117148234297009477854213774893062062406420305635239916498751048399987026122135316751104311277523195757605461299291625244218066406628349453809212238909012837972673217927131289368843821804765323244567981053993972568569615674642476805805350390171063331058427838904625584940846534220845496746970530531100147701763308921901355530834916916780392649079254086841364427768684455842330567741321649749672997037487224700366225554501006790213814210729182666990559744664782740352851703915292283934589017923013718972405343062694398608476265520850058071116226907691131061603324423013412736239221617593763922914074586279870020814794535647964923294787258993973359329443623290091314326430897836883546391393859628857990101306609124670315043913214137641596520884904616130162811276535605165536462461937559310566408423238793211622490900157192950339659924985054944178414136768357750442611567292409169904458112075023261329234570296906693498176068651141338110269497639457025145230576027932375311600804928649118045453969071136181962225757886729845442218802981837552175994596614984689374958003279954516175134331811734551172548761421463819786910641361618366831879632244942558077999800028336066589509815722425811911281792247391095272348239079355815503465233197099386330507618603146193245743783724312971250197454891315792799861591375571318683737085299386434983612930785622693233462929466014798825191116595196279651003609771668237943193475556915746769756651042451528661506279089503344382085843856776395066721576736389391396770621059371391438452528321803309202066919582628841839408841706696255787881376236911529348438667862698997285909775545051906009369364998487279356722859311561764765655059808156890359653852316380089827586925443095614275305870749121266213912037682982451844172878439407012824455320737831845962072442019408179349213893106688644116444717134340149999198733727474842532100837827338650254908630575548784025977291628865879034014240194650370437536274012735345514295934476227025575793860399920048320560108756582475960938422432372984980061620516473637023427716875066077157243724155685954596161055697754804642097117468415724027954222567130491755208498290553792616374320279087447230286641123454922324186291418587905593723196009026202818672486768977475580772198756649791857547063274370276504207799690599600963619472838240476695204179228298750034371499023566441698697319172111525461918888435935102360551134917569488906508211436263857131735669268154176599123804298151246320716793222125619135362459010185175337746844613180791985548319793146221351392494440744473388570241390892756472972396229189073760272133717946740203635243852152622401234725321345401705199524682342300292739603449127762634470076299790972988146020443470155844444476000509661116972891524303141069318639996176398857598457012179987499593715062118830438714591681171442193030280019583621026212814337423366936381111089124505232116437363701471546683053646314992530355640399563797905687253324741223847691836516767092251819426420205142440584964846169860511449531086915117771584733478493358000503336376516648404413308043125532229710806950420551215892996717054050304578580911264632888790230415240678994556710693059334713797658725326624975745826030252955356104327523064210501353187750985171338670013094939987777103486610809413544779456845236014249643520924309914403775158531204019629219654505593904621359536645804835693037804228170922070703309028159319161717263813625406487334091966420124814861418735728118106623005452230087163081119424702453046614333884916730390207719456648230056992718672699448976030855059418044493145732843747891023400747487554668650676726543567677836288176164242494482883779314810593296804830931665411904605628093604260411094215185432997286069767158140249926303029910210820488676495612511612074371727980418583360269509432831168211201426148980963414080850138125659903888459193895019400619788404820806162430944071658627419877645848979850596272851389638592191985626084005135827438817860676433772771346586736496231134105387499896383638445415245502891379319168901721678380659417858450457999293926806949226235278890477570624435422247950673944601635959954630746333083456428847337458425619547402280418710321434172086716568403290645097741818284438134287806524802585987108497603030781903947276169270069157097465357541542839055174846586338246584013259324122272516113814937441117131276949398034528827288131023961640895105793625204680373207687337914275673801691393794000561087465204366253403786855124596006663453892632579795516923135032564939792328661283175151762101458947194235836531538241796470096465300838144417109339183013884693149546870515989428819161815675319491421084277972098760601355292926461679090112250295486377688842659183194805423977108785506058835520820558574144953946873258606340658342729973684925290011337315243324919987549846636853118375798091139514395825512994331431503700704454022396318840825504575036761212756344992516684847321624696640481921698188590971223703531434682806652136406214514117071208122041372511101343818779354828605367931458973322285187889974936580511374906848389651139385833066068438345033593141317991376911055926255252197774072184759551899204173053583883205094057911257786741947238659485092433661254643416766316093416346971990453829874057113137597041039737161936175418890610335618707231568830194143658603207229345450708083046370570487795526782708035051583202836942403511742100625918262112002406791349871460016103393610991728218384907640496395613065504898168654227349674771736445867248878471945105571767809121109960942808889391488098869386466031610310358397598429845919288834278185745688900884157500721805822880832280424024010986375743436841991293337478500123654500680733087362031783868537901115367272477765332371266311408398248512630969263425925285870806575526160729081509116132810674756428373325451221971308604387602682868594150379606778462203056710318272784785625558385954852042419860354258625424150835919276938017571633226537309548827449849677707490077272079784694220202057093128857451055868441315502201319278659426555064871855716101006411900095863706972827214270944605014848726517980784004103971523780065553258361370199431526538668546688134338197500406329297323020316071385857131878287832639301670334601422587207050400562310239413847974348680814934820258032520958161973716985994211271159762848313661997474280699556115357258784073571789178969945286353083758351492224179279888547451582996236304912728420886452302309596371323027294627627685348437771822805415117426181911803445595605867272233423803511185771395025724330950524256105314226429453772307336527938363536485110356610981501800997655314435801080521393394729071134392355848796734988562454665341951097313607112732173816945200155194066777410765727248857838514498772564487452679453276181063056414176845266695931428652347007352112484113431521202221150357879131299158542458615182620485231240214162630856377099522273442567937371497025006521735172492911190168863279956690384937712747082333616374838459632179898288695435535904237155010095345024766696196180125940907713337770436002984387759258157535661336187213508148320356856092612403852460140490343299265065294126659790851459993084551781231550672932763826104452570964674252756448948956658295853766861511074187234473502293472980344285946703234937131133529824762098805724114068761651257260335556860595728300943457450679269040886514702198369356518417038459628706620286522081516183659892485821632504209573942033274097038280407892478976829804256227673332494530018042959325069133037985234723016866410592250104214858545080692544654532905439051287846165920996457315475198602532756176304377348909153026218308513585375775728265387036067983842878438467699739033785382458775953792991417004762426476570594534624558965099244008457965013955771546962548786094675181536410340992842164385728635304510787053564533772047530894689118512837412226089385376926725858648127054648240407893214578764996100842959162651381090233958374077601673360645239180416356902523530383280206769345266576292223831137592628709254139258818444077343274926810154162535214673502722181941757771222616273660817418714128114669090582697353333391753870195514497737262877474250475985872637802572434059990096334741080481029036943753424192792482258349504606144582729146971338300011947965014957907072986793655240344829857598713885254853778168429647078500777446630260510441614299470007280740682232877941280851935387477286912533348919412116043494362174141696316425019000778767922839704408353035620760305234812327053072413828037392368262444161462091371980086068515921685542159524466142671410143828070608792714986191059018527225499355106492438321908469459001713678115505804072542075685275606508650711793651640448145461494752263595924689916205945407163125401477868865310202711060676137823178299760752354049496665267364526421136664097010827705595927419005432838333125081092162070822440657950450778088330905492220506467873749748257733207376031900950005203071150752131365593627473497914751978859768202745949700474836765933305605783857001269388560101143860955040084315034339280420799281383443329574325455358167830262624591433886672033514461342175026599459770631296892698130134690110677647188537972929715423588711006996354471131360119934335276027837211296470368843716168754303284932339275949538358008196535879485139027243647545448507260790852834508887987469846855048896322157665042895413711906268565020268821649956523168442200153158374206058456865794696413272088219881000281525871477577367627838778699318040343465671196893978499345530410433256198384797669426151823856304235328783266159354209811028863014029085895532501075590488789370016256134692320145810079125846637717087204353954475869265123745483397697162512342593043310458614787832023901937621473048846794209152260320344663736192724952716057624722428415870209385808311758963713867586172463129698903824194621974421436838108034906513626169635927809209502507565163896191426117181762694023117763317563688545387952978927448870442613740782110576624705301811480235647104686353953099664707663737331386311473863160729710888878898396928328123166644188285155512478456387896841254724756224590865273548816786897368997196703037725342725895590327064173531193044429908175924969240776756731508774538892768822345765181027350883972259062684027985342188713981161795244535356955483858035776095097655943812997582359378473296417742986368378133992041462517952603864660144845064063207476002108902509065320476850140076121565407378661967344523830446621792865031147330475197370567736087881623060265059649918849209000407165916129203024550243031458912582984447880776940675658120725237578534924989546575257653568668312776915369803569825344946355177344341871742691537150352143059035972525425893512272748441424283284720441473565156621215923830280357848990359623093736646105132742660343294768292400261184967889659122406802113133418411844684919373416515038404600316723434256622910304169170186981040615145096090402237962659376123477375599004399984189289438029827681599108665010614522531017020647025636965302804353249848079211912015817335022281472990950707293129685704012832820968367037533333104289531576878551125564147693339798063053592738040165586211038606920446618269407347112248766526173444552798946760495161415213276189382194760311778886892367898721164402748696027289802190278905884337927673332789169943138436959019365388503449863309614692419413875144739444013812314443076458434530775502300047553291852029428912235538482533113712222263896083546773693729828984011089947606134552565666810937977790519540400783073248930404193914013751882021896828984390366049743792956675219261752494599908986629461050608562094137784136590028536149436036902834114677725242002897747539475421241806032853710268196142034082679197679282365039292820077906628123542977256553438334409721411266206351271874849797253752569738579985385289226673822662082427460819500677969505640639899023596007929244182326928814078995736946915454415668945704182549697731192567979993227407904417311627233489562704878546383747387730381769045935174958320681586245525433216506885282936590824782693229818967935660537072943385431258297494481695913532424834922393536360944996042181565905821987465339361860280104169648680549859279800037564329976216940196682967371260026831981161056116204919860805812393427248109535691566105156024111251550711103522174963539701839169725465090591304523547255510557118113287061216149636393069166398393491706648637544251983538832921165074092591794580217761999772249847261180607583265517022736811308236458214094222181065358361535588395037772059044447107278841586534118749631779590420843035206616984709244216429003203486043630963131341561332336110339925068555708762270393863434719132994066171436240420623466269702881941085286188276282797382419470899836586052126233080647256095014534864969549562473427787695889102359210917940982125690540764344981291671776562214370322906751143569133322421849129662015691059304547009590279004387324323376081931520855778668158921900665638349529141861822333516626846676352091345498058833680171637554161820452996973923791521944300349777695655667302948079068736764730261978539051541122195167761180265395582800275231986105577263966138671505904033936814925446707450574466826027583509432367914375268341142975779625281512344379898722591056514308755323806930627555776216765993407944732079424151947575990103698393471811000290042090701210816348211693541622651306349264489385790227318851540254038356429831067498838452423380352421128361305076726864730401539782095503861974712449439311086219944813403881093500054975936143245730367955952186531243373360603988238170319219071160846735900774832614753695686659402505958563644991703052274132806769380965120429285375550237329617046904419340969326062883659939429086465240946103230268122136049144120538171884362565294010209442322910874774821717993426672547793726536380644910282051078958610278582786493107517763539483096822520361448913692764037685081066383368063728141309322959896349812823216320378108967611473702755606919407045580508051199616200839916115158168335583114234651511880240516308340512692564645711740970413162139080859107740544912317704385198305007345751550294407966709274212690528952612054534829064905748323157478000515124437341291923282924773194993092186916465503310579651299877111435250543820778002019359975556975198333906453184329042805023384505067485676300181645772876688827346739532532101672609877945537323564109362593874127585007194233595636148148308668167765686148523228473871926316428372600303072667012538395821325599631575473527832601204089856302443584556536051864964581091871059040019972397497126117575104518953911708205638753466042185052256409127476837616108852792109378979221232890539769718199086817901760258158400915681175228954680108548339721500974653405956666415292381351786237401219536004163311491898913954388176520868337947996599108282945433206677708932240927131381422331893875066774551849735143977204947138098548574150180214386227791721292264475585317316945192889925279774169634528415283834880914412316131532328273061393958460470706593119400754410562884198261374967642381785119821036291756423327500533262748954214044901794874986575863569041332687635079515499491612831893350381570306816380904639530227618810851097122179649527214695223130083546375641753389532133896493587586874285190171034118012942742313613015648854367401991380337240928607951018181285613220133510969418301788729835685191817994758838674065485780394554478758003824026558505499604347756171062356180690253982920993902639067455813305425844901319197949135905218808751164460567329891096577370578505905814398342636606252961422371451228966052552097111264650872270401957518037395094436030426218627414743303357088960912623186725307299576989493865746600828975481438921520113296927533451377748668683138405118913984919710795821134776575349734137316541845976193921227551256031428145375896469044713724650182108088980150726477401813733593889122967180175034347989832870832778826111311754011072370163687717736107477649986386602252307484811247186756467642873726762011103864482179675251032596834050043627106820740951379267578074793618976000972135186356426001555715035111950844062926464066482094381344168041856601017558289345661412462695693762185205136436043890896298387521922730520200662734920146089695123448497499958885626994817809850311366306644857282718859386518513462396347000504884616281350810485302840430489598970670708032763028811673553808515251312265110751923264896455585029524463275930736190909896571024368730600187740170619275740837007660294562400704052053732001176945536075627219812772870840734433845890685133869692149625174614682559259491232983122424161579772219342848708031839897083440091435732842065333779674358590997039474603450571947579366870652545729278857235170803601862742550809090319299502483084290719296591465906019131906355957710733095468050117738170438737495189902873087079522372491157766450574639652749820837946003100519396068948971229496709700723989252900848084175278798770130885249335731470901194219112867859211870071552504057215287654663061100879418376199571205837903644692141800956841927658718380503038470085861831358011387541828301428745935564582288304861668139572496874538726607704694751974024565213919107369000887762463745222396607550594015822641179200506621238218610868508046154736833108503318213464375833302218987023763320005939742266922148310288865461686623718279072355370298098171632239557286639632334620810511134650760411301058921294301966782083669945860314224763125841320609107232999448774704414800121241672003114552232084808241569797240701631663366085608840504036131528038737232534384135088925755641747118473545167725596629063067510984946398410315951388865158453034067608875493473066145014069330531001708901729667519969025667903843407610903194056508255448375942148743819365415158408310098731899181338993313509985646069280668719237956953063424681233832622053670801811281203695332419864192366098628841927690477342769038414528683119693434284421034087907881019906389884909485194443763201023116728702445237498255156524692012823331485127651579392032636467765806421681709131115643932531754044395164985962158467067064868048268465730034537270797392580573224156295383229344846780981401049342500252582552572412485873082518170463441800103972622155230151419139457432942485644621472399713274263349446137481943194668160986974487900332808799653949729409207552083755512350556969870957860849371738539224156801349861342860696298459683710552243110013566853131149646663701126099830245364886580980883452719241486110868573532016195030561252599706555603105937514726952649703433705105044917189798724471276378403645787479112290774296930001153234260387290284058503084902494618895607625265069946849548756919340152790430773608706816737499485005987433333012019894511587892684643282949890649705542951293249315735554955379358382749181438391260955995497489103368368696371766726350010725173722222574347197020286898246327399370579516005715151086132455556041952347339470872240570014667031834304287045839191580680404480447721397174949961733304415760882700325433674644318518759941257999921910513234244765928607072417563080897572569552959325413834347492303930484487117268322152590856681676928821955189853624013562088550900150606367844750438528155547782136036045424509943451014550352919474523664111228515900535304486794812875302413388046217634650824184769103854135954555314549737413977124955333122882971226808012103399141229219155764457915145976107681299539971049833097680964470853531693566113939603018453649819952682638367372831900264932241964612018174634753463323760411891080736624516340735130963129412889509612448754690721141240338511090658423611505706207738398830339529960926793468972447774260181334054844762455632633984264855361005266648314749976619786365142885703625862777788132511871969137710715931960210245646032689264668135770400719406916222877520223771022412253323715371263324569881315497386080911862158543315553254005052902952875366365216507387321850108463116855807486835639594264146131680133627646482083509421354870299394150255746593804367937305222448945746229701427164329093399194995902215880400723366918378951019856546362491894926824919259014962722038583652205758324451762045698913703093280592627703300570260427524182716708756111613651583213343502219228533507531879295955149848190697799594030633402794287991827644333745118374071647325675540450065758164711276559299576079858003479506324367095697077144507027455692555991248311133269039233106712234455208458476786750596623438975019327757539993971326928910040032385655307698684418398997593392377720227448158272733442523247911831922517127242253052351728816655750826136124337603549780031438916805377151476370781987090367681730958285451935368830384977313460550793317568099152312752316697216980087602995445087131422397275591377772836832304156448512033966853434878597622036820936826793715114200547351070409734576353966971961048649798699740109921483351128425485593697176847616546892725688232247443502658707880062474968541468254187243649009940198096705080667242294897492598450014774703424609122607729484211290941060046593277830927519032552338431853140965757651501841619812142655932904284057812353414343153823961497160004297996300758134439985450222651711485580402925326109511752228471871549755389413317123890073163297015239055443208722127072719817075824881529300567426376929786510044526681110596933321613497806718284721714787898530414429443642911829122264439509309761006659763260698531143781834724720247100808098950602527411920062504654177828371553341670731143774285561482304707759521040679139560211430489565176893237750061165400213474643240481256920362025018299169991895418248204139102690247043837891371843928593811180445714459894829602781155493607689061142106992818657342918017325050218853805056353985946440810734227306870076322311353549298104250185396113994009403817509505667893568609849362651539172978363782003912303356397623435710990496548964118131948773032461964666805650037377971341668069061495523727947579061443820343886350497288094253220753108163519683526889858676850864202397980927525640492029227793304451994114747669284267288021147010274377023603107247618922632206726212624446434574772609749012203707997050791796868158751571925918818229275075572256823284795637425896567283853193222184412209658014654975133875114667531524738146217691355562530073918708088851259173755571912140149517767080159388267709477770590077258839539079861389593312077542456123444877668986317617496043503233794582753643931916273584224585283008042576516260088679545854942124152583883675116985511441704965934498703971443304836987849444786458552040921268997689686632441970492152889228989807502500155295255859118273315405921710969458468670271776505739948773269519534309268974292263809879875586863991566930007397695309325022806267139823159976074229926511755155006297500268929405462107198181982698928274842207782714810442934898010024223303869688688024752000041913058821503389140332661647500596203896991145312693262579435976072675068108144981554370693520886566475104350669356010396509768914265958220097436169539674343715353375419909247712603197763308948601326089740365486790910535646025286070524985769459690022157406939359132855523896371127501650194546733567768838968460805918673461759799463080334982290243544340237008775710927001707491221887543572831456335076210056971754090493248954589178769112774976097110332387989367394679073714505363038742428670673210644948744077989209879319164667516440438005421469505172696611417836853937329864829407339684763715333751276191700528371585405189564282798873647224649891523107723647131435488447530857995993834472119057053213629739531569370104950865551686814684899455229703059944964856486941601385007352630583726115566609841772558542707172881010826311233093926637332368430464235904475948144779183185580330357733326509144994585431611710188654801655625530962314750219833786613412610148075181692255141619081447608806414612350858624976551288592974408158134214595803340131344225313005707099790027842431960562214857788872326817058197752222349181148867318438029474273571922398296913172222528952190014130726552946749042599930352463767495784046489274671625643783520874718541237516765114471526002219307655520999641822100584200738840673960332146518877893240845393526659110298252611211476087756465598815575433218559961180339984914044374495069005074402017031966043575904097596556673115073219402749843529761147028247929991828431644564513974000734614505155268275610196299231391446565951545838713333401758353798569769946986703669031455728456453874148247568602912478812597676309537009218776522017693901099390736812194759306128003743505257809107561806563603199372656633224036342924458219162073853775947560210085933317683953693207793933486680556705751831424140243148448368378477540140001870304731138888354679614047206850476656528549051296713174686582917833314071283478209202999432738767012713158775203051504408238982745207052584798953678724579322686855570291870099381432382330853196817498080992871967943419996778023607599832251898387023490826342653800218692758659454358119924624692796836243348575865230165634294763243068678901596247823728197310190839306425979878783466569338705879980945714141010591527643595709675585527792217578010014135538553046423776689058921620857188210196968981753410091120860575488257108379838119278678659436800653265518248469506312434177397765575321947653377469353506325214047194379680176231258745213075117486319735362621386383034266961335673816545401703294664592908044528093973860930590937838259007003738586094014506734927248858145706834579582496335496412339287710680392417527870520953459928302678704634804739325518615871592328050957566946350510817568800335796210894425899506831910184841767671864186842917444251735504574390069878647684310110263845127030569633940304105597510760863042181334048230033091146637059271924048052570305167851895939069255744427381669184205538204084473631010104182576452052697630781799488790815690020499687727988424174899286977076396286242347421948235478157034648302415154893450243598208061108544704114677370080297636456531905015160263402657643208413857558928757404669854962526690004161483741552481106240541211699250980891628952172354375707947585502615089765800821549090851699991492825530552843531944196988515551181830123141461476230012349488127902671317286727053586575575912015472010861112123928962142114821725936986687606006420751528164422938874288761933722519934422696006255307758735592278863498601979787291931857430221973394702162504305070797134479677177814494813961509667009993677146270494469261401944483137971259477753424183219467264658872089997012946326750875079071104574505519621404387113795971215137118867620703048477733109715722446955347229282119119347863061316344378311888100290687040390059271079411417923195586905562147267576938390369536468544524023947000968224463488710353851628898808391101339510609383703228114397562824402226742336544224726794784220629673376208487453936352077620166395080718004630896790188382212405541605889686274780855828904673406788077023604147786890648474874819797590308746194648402852291429369213165076187077285952503452919844305418518255218440136338999675272657648279542559971869312723535324131213181315456336068564171119730690180178173560783377545918003054577787168991649541314561872914558002516872987171186130557927889656011615547276589921632697548069867832485155139767389150618679279189212963235579961567101339625380208142315416534360111546965538968519286308150181345103157134409586297739155070103207658705658865992604776186481588703062936079090864535960100073301569857627838904805085472173926016778667645144365530415192243607343575943160274213128952493682529805447247722074870533723690343398816221159038459570229063591566060134643866842929490465797202275569906370689109938068196193866119592213629736638660137214458191699872328872909530559520267417565018457813204232078369069771189586475694434968884611225800379635428950129329523811064378287009020712441048017332004733831693064553624458959756714667037750011740352665961859882004664142993507039795681021548519877724911377505366606949490580497805034045995028141784702263190539041424066694534714751106799543888611811670597338365709437719150928935957753848791733402896296929057397355250467295723036575311076558096095188086257384143178947623954883950061059711251814056327151270240218273545035473313268318812415910028449715795791543636793560279090158475331906632877817958708003085281802564572552835844423074729080709221914781827954296450807799386299714662391643720042696575896676031879440350351888763079210936898149840882189742646166115444075334810347620195743674616763410080982629382763681950033452467331728925651697644859218100267848141707503873221962265138968801014308001114933962235502003625701850957179442530758794066145346435227882520014809755826784022635895878691383886794328842570261848155571645131147822040071715816148652339135768335416298773713747040192626292353919496265246939310479854628961095583887381332270907529745409683152379214726396862956442373698378736977944057423899178579799223693727408873457425224921643550314221991436329892216077288127597333628561286230635444660390631510021550216692215998278879661466926242364818491896928695275808534743583499059563564656228612049083490422880642764328802681041630731144430838808151072936274660960650466874421917515255529516492213335224839150426550232541976175448880563797301440798790099427876052763585880709691258164510317288824672915541284063279318088276724522047506778829353580133141256355569313596898530985817598282398518578424089584720882521270411890158156132648182406334510012152798967839975398314593933279273741979509580420317070755306046970434321770658089504504447644229536734556683282948741901575343261961213571963538801838352784034806703232915907856516528100697303623980289075894981118220568364126092075189432106249455995013087921952537105701687907178948113529137636896095201274225370456678651686950954324774216970996509295172325274755095761093870170559739797048380072030167262925045561426626202668403095767453332405585024259463845568212857069425106714008875884443342606303728471763833904995754837078129227268427671428767454201721241470416471811779951516703312618997582823324838260534801665247529654609156613852660964381807191931750890575365962822153570556915611628207550984821400038448182571222739756206946160755210485130296943867334995828296233803399849733432752200061258082210953810689637865905060754093924981745030855031032743099640560891516131449719022538838312751191911142977968861261375208412787860207262866772644069053595666884067500634908052146836649048755023838181128645899759565951913025087902860117231612175195351876204810525860795213350845386087216700956334330354984282759683623302885400842338510593225460244015910132318153588569722348633200473045246720955028376978758006826544273289122373253420946790621794129596475128295223368007473451429774429938405184632236267277258170553946227196203529029843862763554256765975348368317802331501432603179860943367452955853358804753538695116922122277068687255704189977189764720457081351544456946940720442779463115730243338542022806893687332497322352283970894093900718229080234184281032588113385084257994350154254324750649678874666729260292898824203442045289563923886003725920456988813317989700528033505257595960455635478936273406367066386811329772030494043540696214483994614007209727757984203567710080061968358368867698033308334368770013300886026742946169326312917524758188020180205468299088026893981701118547614506430876333640943530736714794972006305749258945471233829927394836948670161692091046078577440702308959304058404670770941576969247946731342419069697879219590278104369956743872491866068297572530868183100163796373392655383941026953406097570693038963124785503153009550437895466805618588618504915257154857107307383798644055307639272060874404719354434783647605575598927005643997685919677746729795022446721938858163079152727911351758603438044082275883795238729676059572920463328315069700770629289146718390805124558985606248017044919213175976221131408017530051507676661478183409909271023840683756468795220218265354923243998249783211179969395295024921872515934955542876151144213296884596506265039680798650372908035716110990445069935090894514297095768223923032788901134488634535598358863355861968746547001972529912735424887199522084142497919148431367079125964116160659890918075444318687208853401041180656409244787967068581115607638091505279761196497366989206971609665807339483426110391147079347552854135990922686125672036813083456514406384418171401272147152001211482704856521130619314967357908408729151875556247607102778100090464495719840186491603075449844654328726284597618688700825011749491224382348902882911779048237784664756971719023001038583509400285596648076151860582535910251205414738025745041160541924157395243966870529904126739931675561915816186205670745467703400192642434619544291414357562418570551577585296987806098500578572125130702417285748800947520616102644845306061565177132970021659418262005567710215263549279525403126980318597026024948503036555998178796498211641531128594758275913395797035875436354302071717391726424676161331867444764000321477990488049958089202588490336715576305645086550062182272291242861736684230515667467119656085612768301496610688056728681650548826947438058603338658420522052563938218149701552572338180983309675145443391931827044282793884665490495006207252816901789744125844358064789092283771566278009195808607757147798172437242689642018935567364542510932695367704727675908992420602276645015204725307505487517905410808297790622556036556158435494507442058391347433499503098191596913782049022967569449484341828196064869480796745026076218612457968821444181656108702108362581434932370437304432043489244124886707802226895973223412575893721948764445713762790379755742365763946066508751551162345912271355024970210980831677915401496401104620479063545128955906007026780583289228170201122218248678862299580292177926904147129384969997418793443725872482042034692438111195488164878088087373238610024930712913825791018002317904286767301994822789334659529641438732931557544674543167677497057120962837035788802655660605702484308843210578383981296163612931279047717497880634803324083197792830427267567725056310693094215380957765933115979991130218069852603365665090986731541992945145365175697140388003145948521649465920721867155960972382953007164274153452154034379006165713307303326481618419428871659149408156061947905482341560759239278606391024874232854988809686458558671776696295183103103174802418857411720636354890107571113091341292419173788197463240991247127937352806197383766699224276618143195861884124509021178936250086520555236740199743038461733664291736216634895556865024058209102973369219916835968502747912164549550327982712409854702809061495905162889615171717560533066999811759332684669635436154889815654722835469409219775243157987264215426798052976996784997028606017613674343792437386119228571200094854084784967456587986877474099214600590411433934348213836247975734200809460414579831600766706818556236364325352436779973587472538558458786041183946791123745671919504565025422094843869596747499907135214289911624201529090368307380698421758206537951865610446600234750421672543972243850551025403134965858630776456002512543370231784146534244668940141136612402639656553422371493772042539171292253035195871174272701811594739227232087387439743101035004076065867255725565296050537783736774341729132917512844595993277449650132654117474495375669350811326524053073455930861088832618063851455658290888842172192928978274274846758726516182764542867592594275902844098997557943639530769699289994755324548310275104355154381829894105691345067491537321593290090318486388263920872225288606426775861897495136866778661220006994700623739705917265940406316454059361511710709303055720333685541307888895645855712375790124840542487490796941709641521151869482506968236483546473715536660897450037017093113423031342413738259889201856130596240617763382099192528814861355664722953834651888773875119229588219443454194565848813304518532178636267139120659215009317354624689730358366379218649692659046727177462415000337484978996501471050525936737488361215111454047077849674760246379345924012582012531885901012681079349532146603964182207428457458510464168836560715748802810997016869513645743092862870682695139367291241865388144542454820680127073649231876883452434704254486018309339287044320538895081910270626009365809911953343336032336440803043416592174328727512335312153209424043727527396403101841640614665897302151050284169339586176240999346987300708628714778667515988281178917885992563086276964378901236011114624947711310350785469009411562502829939938783639838955314169048849660442328347616904686180175294798500231152148655194610084035876288496682421155777270872913130823585406725797057789273268244799669938211084950365936979406348152143652047229228650358463934442337644128983401561706733215251220067065016304381512279275611778784207332193680883669859877244506429335096025820946149519995429898579024661697658418633410209911765175506657270233153834910670059734692782219272032583603447361297617922510704880102389649309559344530954115397462686850511186805694940270328117796449336493837875834848202085701414362009018598218638620372641111195246035608934980971407701736235906748579716490631062129945650280272169191188591667406490420297783659003642356486838938800013028324056016820838385494240280663211934346319077174523861956844340588832197939980509679616517698985071732856652237528584639637303676647086010872634927739290193167372163461552220777749069682861161293967243197001994766397154979200881115238505724326661240403612378635013958516826752663805862824160271897016017951465960254963257487138502404866715602093582934028610705045711022322115545146578194524147095238571842498428114560117096578387605399704397396819879836156329123982174406377053949158894933454007267837866895683465721940615000463290465449090305818931313675975807894742504041176593771506273594494878544168653621506009500068518160606956491333327992362094223980392291756592614641172745239750994462829417115071277195815335487361140980028422338906626031398884181056677385473045825410867138787180720859294881132113892130696940237471469155971068984901170520484159230035032534038860030987856194361515764780145559042155070976926213926540216953642589405280345052138977051168565591798288622418453896571223529503174950085030747140724133850371742591406639258764489286067876262215335501416326361217580130391154949237058255257326868035286291157591722650096058105695633314575300944369488615028508503600501926925392433975715662787345099383666159004603975215906961801595042257826228218835762325715779170597395361853590755168618338169717884641865016107505032463051360884523907392752691005208608428217081180314325642143677937862681509426246992681852358211545951585752639283737888994552494056450644539564409965995436580040752331004483632497270854508627318767352141824366547229037640959805648085593097350677843449002682751790370165508766526980784707862008762690421858983317207599863887471187833679931881474516472379802832317260718108951668646328214064043237051678243326989555833621287553556612174006970528956308302798308872558370566976052159895939660196451963769291067895212553041691333429375805230620934483967649821488578965959399474285814511683100149029022226847528973375535324764010448795762265736149429213456325344429265668463907690353853009608811319133622713575590199428857112455604404285080092590537550190407874425342310435194828534982635165537102030156312747210297976849354400506399128074484732022508855476186846466408124790299870375557839818103823155779867419587955873910255804462789181573002187442945727636328067287566680118286540977532333180644709106994281704511320966764457304633481139923409463500233327330494259333417411119227755913791316098609833158015628509209682807665601388832680365629448689405558374685615321387852181793009118094595814949553655134555763205684461840362382751958510927264677642908721212863960636133570512428203078992142569765823601792960394378186231759360497700267297680478438807559182849011306645524157547535802519587782189564056625069988803822407841722885587804303932667697744708819164305730807807462129861821847988604342556130930044726264016657458203297682226825244613321022191566806268081395798496048510039009039087786061617864404232200666672658264003034629689399991759852371027748741362162798367622134552888463024052333287723938481029880825805115947398813279523502207266315549326330765258935282356555995089007469038821265802242100922282748586597904103045469621094147914714241759117538585709542506854440716991523188164278393450429140885271970222641775290475023827893652960793043919591778952758483413050948976673299749935478265169952947441590137521281320596072566796624890260350538902637074181828136176782203468801082501826828608187519807622802306722108910437772807010032955132573927715079364869538630335510476806322601190551837897133105886639977898602941834052265860220832841945593390245678755350447562926153963277408150219706197370270479245368425568799058072512582451583060950604177880741972033102430742745881362384416494966557535591363936183543433705077211687803664313327664466164379253399296383679303829333594871845170692738845910475806687553825806364019904196355468756601216746686504221636082248616638234256531664197226357470474329772310222192979055709940784141397131093785031834710014028660011899197849047188048923469373150326957416497732985792110158532534870740769545235450986130920911997909554259939392779231863038801231605254625845763902653957940189605048013695430784795665346853138503899898532838054245716202014010833324363431031982801363414426879845671267467269331551524948144358042184770664713295629334549038762904256881966592480108674918951147810499781277400046872654207169305410484133031290161927706759630413470773964187871694079593016166961096270385415395596326721828001091065356272473478758829954385099482976130354014097982105467331759439573192809188864217551354066515818607740097984422084381056186461149772930338144787288420901620310731166832788524454253553283814109701985560294847962933879023935984589274662603511489550054871092058788517069399652891351650225680537562554803660305967219214257394618107722506246221408766004158330218166990709947113904036591804033146357829994809796553720554389490482855238203843009478067034858842277611317637792944045289146851221075383488329814260014900549375989281309200757028720341750696181336147033285653679561980867827413213622232922000770316357545442613933002983097414958902163007057833917537210977269735966154425084435889027202738026958160096479864292255063932676438668852612720876637752548355217106567979977180463576522395549582668872583120622360645457216905316524097080460676095863978673588494768242783339047343328660530680323728211778320596101098020759603628719536827694119690443915041066849951097382185934607610240496996495482102279818264234015043417928478493563128725306287956011184690639795911707221643688122411657846576147171627660761675132469232577293436296752393386605795900937868210029114087540717131067656604521189913056793936015590413288141689734570540367365387968363757451649912672083852215945007260603423945829819751809524144150624328531472526819137159473076795388947369191605628792569675894655183114408831874231006238146574146752647092865660873977501805838602994019584397648149688623294892675397830335290180201070140178458080029536585046460645935340400802770519889702314106300978886521577847530299310662403046596267440347169187602676604619476711026671266253943738409200732808119802111500447075177860606525340506660948755769813525918644070096992526969324079672253216856075284233494739224903007974870061742959281233514103471708841804563835165134689564859837700357294831348975551634732771058764049564198271440600740188334052595697383991308209645821140807898652100935374441597916785831300563232553897327812854923816562061959673811483881539071934050652872511485653652392934078408557053100731673922116858405715771347044484730275779807076123595560877371958312887490007163218605379160889519666432638673830645931034875633435114809906297210147591816368156528963744054670182656558484325156303381608109024863424352671532910797379275943457699686480430007361728485022065899109323099697950891699978127170473421620652453242593140154142654214900401848922859225364393150479625564581076939202586209988566059843898555748627076712352974267255296785709103689680938569083477430540475201938676791039316185907992293240039637760808439688313211250541798600681064095728028938605311979321861030383059513151431363620678369033892628132613636986414151883995422708589849620149097014045628896873302545578893881155064789474315466119475076246407003072388474817280020259638896308629478116146023989170286654300157523629135954069505168761501312870737105967311555031398041667860774428798111392964916030674914523298401453478698949467674734418253945659043720681105518230547647897351833040665156819051679330311853418885876946309077009544244565044023346997156201372749377375948481980237691591226933700921672712219415228435832146093627047990968047464892433146123274226002937579768292305344139292348354171182528398785922071991617866972659050635739318379780796806849282783860311527779559850753475557327267460362916825837469764636480600607078705230800637085221918078120183215699501891600675224295106504912670855490441695825279993511693221172916962112191942745959422988653080882023775218808497396953262428751461722887295387800320928282592523192406997496963123326007654137832658084260347799043324444314654441109264685337428736695078981513662225145739734160671961758213370202851238043063649247722825954723552402991261965015487169463933676192331763892784973401500118750280175169362743023787406879960871593680468050244568910513050776420816025679792824615209643407854108801078495731005579777691251322223617162320195268858652783562576958395713742441833358376053008881046449961365181400127277135373045681639672480200080240393135090597042042210755279008279707453791641766020213867189649530319954340378569232482190955884697818272225351990831539581392289556173166897021715834660506377913978409476098186531479322447931807648647729389979044395625586702309248776013244108911407743394860394242212523229156174132600046925301934494989584710108993162238264290375279626917002112701225620604989826286422101691991542933949362254709636267916870692608968924246768414348669578407092989580080948114691044775544818546787499451187069646532566843645931526676585294955822805728063910351678682265395962108879980386365810222119314665801033044722827351786613501199885919483063340441469702892251568118776943447946548602801492728708068766582502181000312926980316897750040273456912859620266081641554677974109340978551023648460352806152471679247829193606132041209675086004796742950335313547378791332541051288900901725842605809864397502802782111462588581506355972527176716040037642976518042620740156787825576082532662750862622487855629953903503517134937410863968683281629185316657724053213749952403841662004546966902163508875505780335702814505180268351679447540861590822794190944535774998895247295354561092037537760140243355573699603420647710205579356323907498162768723009449266737315405203215722934237759423043649278408359256797639719430930281226001888580916442061600948333398524545253089357071362745594660691089559925503893088835960361026581029046674281463065130673846123768467651847722688291916655224256257642330221404868023044912821284660957313852353812079402097156229939812314377000965745445018901423748953296548180349693182577932569932588065491453272452916159946650791856369424632255702219445665896855242072248958790375960084870146655566067663174742474163393026771787408423590337026762807713047105945344659629264983587996941831663202387929710998814044724957010886541263146386658624200346251673076606155165991387503067740518760331863883512617938920802571496819770127800409739479565344691437157948427576760521855717766175787827549459470013851377501206912973654811227991776984014515696747503572436115049013264434196076302329854091862583979937141058908492569995298925886065499511741178624923847141514595104024445886988040927173892847139815815033206580731990521525227307948279679162270156411575480089755745284491440728754230026908987919963254959544774571711405450882212888419821945311276328370460066940055655685274627322082212957637349527807086880791655170205713980097801013303468114932701051257893162789732373112862985179826127933166053373853754268826182008753618882275375226655360609675212144039913762093939187382360199331244012921266322375938387289139710770773611786556000825670173750585953578383157788768128727902582238302967617840202569593712492416317885591637730280071925960160519227622017362206755450711482888837568866786229764026654574711924137470158739685569559125332598471675877042821809191118836671252092239220993824742995401912978048234320995727999268598143556243083190739070663671921190685717214333004910642658954111888545956637603483967161873136546539194527296585264221016512187436664640581986278587716766975669077957360295224987750635712048067119835302380634350932680593546659885500741901901844879735859027699570960549638817656627448457304038276115377589265688195050172224678806017191036242325829489580587173833289575870362295700271144838161813773616524168311280030552059270884133086498315881097804090554966575007830799220724802533149242102066760337683179810313881631444383161088632455629826728265528827989745959452539906761577847749681480737965498690812912319182668745427035921738075639784323779411649071154480488665173770022212797432400258607513584675833031753284384892371391534390203318160156958445382178302481962589654690693915082142291847138244155631176598925429418761504943346670081098130186394506603473462620583092383568014311235354033056501348737591024416953758433503399729614917774295072812475840754642240584071833980436262688319798478678514734904443872187460773226153292459369514209545515724226686884131676875502816865026781057525871499258454219234522363034933437657574325571590811828812124381489387374640351448391003872040241323796410083019630654265069748106810155478189268415046596073084653532145573610383780515906059751747852561641213232810221487187473427274741999568373560625547308425871118462522946241847615968841622760803178408289645096172384496788441831650011998319555608225872143080920430380877330029569802121465417346621132957761741239709887570088685823644150028810414887027573793049190591001276481713430255403041699270724362732556720121535097641244762565561676870819148675678500396890137020934226888186440229332052371979064342305899924362576406558757396513764976206103554392191654800345772042425310792320476381568913205147980672210257446432645977532792806440303919205569097200345870925761406088926125716138113891479139142790886726993547504743741775988410320721503170369626866931971095895990453855025583694467244001111362581536393546589079083898488104162712174161002410522455673841448763228167106705703620585345986396250529185706370497408357116376373493676041140176837926376317831828709323352873292762947731802357628821011808951913064282348991088069792535065319503744752665318574721824347080053782373095890624345398819155154147707794663858655326882541664664353952519496723986078642310347216244353156550565655508471164642272483192053354443952995591824109556329697586293012054800679179520105168426864418347335535740858454774327938524022126372311186669676326283484125052275663829943047753191435987702069668905489041488579498590849193249988109860923089347263467720783719525920891321312810224052379210991728701643388142987817287177100866563432337151850944212550519000691371128807251325503056051904492025117871797215197577697725998005042159685401829090138799670173079427193781223307623590944146576329924473850341760573329435047753603447170763657013791649032872015543625865508803292490347806174430674204173194397862261540023950380268706631830427323547068733720042624290672552864644943840711076775425804651738296402598410341435808143967720598109845097886429852629625422299310407588863927726039794759081845433977431070116098194782406654408447724280767404916406245342781497733163916021019897347804099140798312442376396645095060370627044497143119252627542288144820103959009191199621703234078921833421645392793296979161455691831535431795726602555017845555755558980926743256488696660019174068484039711297977656630375347434039262803239987418271038699291236125866733811190032846254584143721323434156089533913039473078784933995036224245734283387066734495218647662855853811007829861203991865326570920242411815087935089119684092922750246835375462020113046947124479403607890300251219511861004468914104958467571007458278809648494857747895912685712873095910505348574043404556185398943929216460710785262955026488851189537590333314807631659986963888686679234152007535285927615312502193690538012228511111436031139950615773655647806162372671336196934823627790260072044311490656380981033996868640794768469657589251877543149698137876099246583664000719420493078651087391565348916157032767170398450689015485731546349354651322105647597380339782784897552262821037409344171394247189042155261888751105085489861310542565035104336017078427050802606182285854932670741792062786383865076683085410233128592181952070194635033399386267739147587978291059362471074700927629246980617833864637885413470561771719014548416480363939862425744959185723848655996211893066325703192886082520034580258550474057805605690370275460284627468204905811101123356143358981136204950373602986838434391630200398617799058110161185937623870160885607501051893174733633366450805607865064620706175479399859174721186708682122584980811206748505849298089145003971234113860048485045070769586229090856601291881708272565433759587893807326739323818427284750007388928408707272014441679317800521719488446108014673927522650761414259312520073850336061474252592316066961948907697002485155664371369199249667743843174152204274602810474792983796112914966913838780588707466014017153096744057532646182783895635467534877347817533128166641454789485681052797482537350609050517200447135314739681593002260959234966248272660388865540948899892701724430573014258507402573737904527775121250837033949421608460889400373062632032187918417063776743066052148953611991237641238544893960342606428856535459196096924570991334509849754623620745685244873041260717975416334561431110111415380968346466326170779099821670404837368133478090667164299805067806689473806059396705793951488416349232043104459607551939263142298561797982619237318217560553250381716977921085475163771161684296826993377613806564060055021994104639229334921653117684380454950611821525479535764434169194288033875699723774050888537613595158890262117242589351285621032211160183249450495012586999949740432985302974160450098442944351491349153988227431592329999271291810851710495590914874195264596514528708824956105577840770798556395265698822772893655027720841408033936221917858322047835496425189958594178124016840214769005274113600517461193989605048818938947896395644293992588194229476004262067270507910931865460289533027944825317016585653130214038880777861321340415534211560266337592538914574256845275436546081287475186715550561871847692622115219606968051910108588166512015679596386279444387344112810063602627905737558582895933864906287522712461625508770941417622633156123518573953411797633611856120234120941017016030155656692338784620966931167539929741726509358098126788925706650761246046592818899098483157208089424488271285973958540805842784289336756861564491622732988673350973285142370369305395794425909770391924109987187794976729070064330751533079371208516077993045820607971334306256853032671073939177044514395483500068496287591966131195912032358678439455893305033108862614887766891187990032234900066453957484029972148826596940544460504868396909140621645353865565609501354268932150942016546917959149838849922059543685424782919113615533862677470426558821365167295831315998942318769222125397768182551011101954593614722106102040470528338586921950385592787234772857539676941641546239500358923251965178112255439816531841532393830995284860223740140244822271090286340095257184265001577969055642129694789200275303518208815844624560579166389186246574783174923253556777031677185278119103849711707610687042543014106387322975163123571804586280171348909601672631838977203414315807141620306143320296887742016804573974065184735150426827321614197356526194254305085354221913539897753570374127959997427842319345362790903737661093243587758845205525653946450434561395990777689807717645671901695940238418986535089660470590200854952377243124278092927128590105108711921228988381518073405828115932448298826655370945247249660665668150196986232094960012965960022534347740468450083663045861232354295420950527960206759611689339297931693405980107246272063354556129119036635899902367607041604394863859405516881632104172178436797392859457730540584517241400557895858710380668668438046019899399502534779777142572657811332626849708291710997570055145445948862832602943647217987203340193199587022463015472525667739953755097599523329251004778338548063708474223912722254694167177060910590832317871307253586532136044379271148278457670599524275367192492094851061114360956156088740827673150611133924458979820960388345965288361778443188033725069677671088280066417649217822032325652388748454808900232714909586725941268640974771722546154136428588743240393670803262024222722060224412470733640023597954558958508418124239993591324328528351129206388214081444293603207370997771203665074130971019292580439331172474430344604208355633934172121625358678380030733579909840926603452843253144254327424342561882388978987171110312575703833448641737457816714047402462553194783680773346350172477037552486365422647770961243992807888426798000606941566460546413906704032425343410541363495001030338814640664292963416954685154607493190614835933350606789792304318181096809012778410655970769340020375633660193434969859375997615344662352863815815856235705385404525379226118395221871700034936738467067854040441921383211740827359600115679962412894626904778314452214148437247129195259404265266685857840475259193904281818736609954516933954940850947386344652973952300093947347565331221289830191222038283853408305970669234606450966875109372140171759660429800709484229897397769481627326026832679621931305240053223668275182743630292187070934236794670784449321116823958810087986442021615684782186185548602047399222796750940771216375368996680473798678016510903312793913252494732764637014033769162618601550972388802911453543593042112774515455202237187688076035766088489392881953045120097614346716453042774998236216471395170805268258677653080099330437464266734969414180768781790008337583605838433387345086352178930174235296064382143907966938184009821978449669406172163713911013576516152865423925772643819294054670331244841510640174915251277947660653596634245637201196127283501072826946113061725523524750647354797089457762872936216832459620709347306350963406665384031770980187417292323828719659367305154802064899468505783346436765228068156080448392440151437191159738218736972850234530878750168859452292482909133478140696261002482156207576691541905971898881019767336222216403544678122973549600861985366825020486865146902956153808507616581989496179406743714252102981768884214885077203124475603479051573865954306382105868235280864135955216586828914992371211210999618435283381638075362401334311971227728590670980616501947207580796358812617394041804932921591724553227049289135989164085299730160372275962204964604915671464525978762279635115564050687071805991129714596114102658159909420798405230721496228577631598943090199613805301117295378757587718093395058554049615031152617463190864868068694750826672620000713242531893728615001477597465235501536768928708879752839127397485891255058763491525309010613861630558303179979010820191415036774965257016799369469793120330285168063207394478099304397622610412398450610299822192191274445712911194562793475651879039597567913559338047464089405377248783314705837923483513629415625758398422487316058745979662226369272249208757908698099946273410044690584522738756973071028401555885822876225380955535982024616701738165979234761936937960184121899703844680296236774921057772397134525251794773515910899798235610394630680754215311023224219639064021177945498585475096509893967036511960620023055467436616277893464206750697402906557280153934472982248787437967304472784001540712597590628802849244191500476590024015391528302074217880286140270043463299621380288810462658884544500586582585551958601489430191938739868357618722647372236863300032497209506818462015066191857594279290547158406011007763058240213183106303291912396699426825456640612426082622854229267513243936720302580378869545913390878805940290078326772605519397217715835348610147521304446430610170160405501550711050272306679512790420162720903580482569301782189694812888002204462332491783544286783625998117405541947812891316935864757798647334217278715448135830196531249456377037152299362899531198645357505910756261320001182872705025360932979787672329405128229737531984603557085368389436870954986095644530365336786787679289904879616047567046343990865598094476447129061764750293191972385971812661623811922597734360075015775370075494686080286652576604162214082313815154218965732195058086841664210455241728468886437212683446263200976109345468870565193820983062816213067453296674125158854636267831007355836553864628737827928263635951210406167483790673558716759810318021551102048852119919555924681900369967647428437253339480519042600096962766081674290995297472316669115701954902149395278474217684705144625964061745801685690227003191527845488404710883006472356722761468934217389434725443495871931324852716500745674306864909852771006314016821170482680005375263187628238931055886956857732825589101620782372437887117101976551713519579636979778665844621036147044131423536012151180471730112072346540386306332400927843175947868133839464933697065984279855030620591742750024819564216161514759314202668751087096853742955221550975530694057853948386683546206758736257594065807724160370617910896745109649373215168024133985061100371550104293630527274255539147409523495628279624869609850296032757768867360676732104264822652502519242622430412595781373234794930484813260932125059423950978108466147204925594292741588750176682645669791591123082444904502829529424014861728702931146632605063425596136316402783821491834745276717055929909688999563739606342495010460655667584914748234732737106618896870137188847234688307615445127335262797728295469106887857381278339093593100928623165176405734478910657943854095429165417553667352596380774334177226291319531754341809783140527011720843996023031625615882664593154857166782190061161812403987065291196211936532187774060530803634613751814172036607158661219266596601253686161853875284278261464526010528701430962003241671513540869907728171009616022241761261377194014100300218808712624318653518372564491957706646380181109213418276938634714565803545893706351265879959875164092797380372822066554931279979029872950178317352555612854731976391379952035423934701637613658518011753921514912646544540871752283384879992581074986096307471774494454158910240641311582162750469557824895950091462451991519044485900690826423843289129214331043339342346484744574081153548540656418369612623893920128104398153286741337661822913435425433538684216520383772422572473109441971722841507862397429938437622455402720929076144100979348008987341004540406075433158448459058812202044597432033316729083784791756243157670120088714056405832398556300397863123498586019146479458950901597404088767756328100982847460533335851768280351683730681807846074006411609426414917917047273699637367089406830747745882588013575186162053566947249453096500060546020673445957772328917127497672819076891008685276998382096485078676794728362707854554942122798738954823514145810286431213916539066174180742818616847328597346676691124116328446249562961035061164946745295767741705256746023604047163183258358592394127331185480123336773595598773750039865790341920275612240175772853547987705965142104914573880207363947594741862273666801214433339332591288747824459399092698520038293604825740973948723601591311345109391760288024380723233919055304936361867671880050200515769299292164423255077950739612311986226419408814612622918188276026835188715457349846470507712953794184158221323140743822155537832160541685109798259355631603231337354527813897072554566418826312438158378146582375819145896860805023397139670580860164122961360154652345787767924188309247600501464190967373842746984797326783868833565833402331943834270035416231418995631574060120614059225822500447177042399989566048906023873751621529111994476930640798106183044659839821152166744661282738805699232815043476830128085540873096676061928015568043886307915121070152954917122525986959111761844632474487930678494682221450386160034304492967608452793942578151261696922230740502764170110818187135436619285811287126476837848839846260514846772101279816082006562930255612411983809926685744715390584081421319384848808465567429247637914463006776142082356778702658920937059731379117057229532865618243864096431190552204389056330604818274159850148590976568956180992599887819530424156249088949543974263218615610725762664357091040993261832306265175806263094523799466425836339791416558654924299863112423682139651283162246435240585069368014575742715429405323276969121541251426604387634733816295977196290265836843616466191727490283120866427217218651165319610576946211946749081605773402085684974165502374297772490511763433379205667899011126712031461892775830860903202650637452184495809510305964861265810553780163361115390973338261692059772740015383221466630267965093317732742445691431479427075835392431602943399174185667056586736774716648257531173079053867027070448944303310482764323137757320564936665752337765042613388068052094408008647631298365018169501823760722258626914902419996576321782597369249792634458234644230756115113244051889198581122791454772460301721541694883187905251749938959650448613947293042496589102024921278682714710107955756228934230171840343232641906144042107489467603887625208068697775025952324282176644304384100491992930802671481482199563395885924804366198953437775241923972376179396971128151177877598197103359382059331562943224120313627486627223577662656027766473420689175648461745934309206618645855199927482997332799516703604857176454905762767871944590835736078410274222529296044574774983449008056214706333080354142315423639036478523585927204195560257148146816453726538502404725357014068914577932620605104239403023554370906122944067839007242223556599398580127952718423111899385457870923091408881863186119100241782804227761122895826576694276058338520636922156136495750482335356619439762188179277188583875325308637617062501659644279934662583638649591606393615631517346995998082541986228078455614343515762292270822781018072972843716901084645897632766002914699133023575057911594490113862024805691083774924101073898056351611919078480894100137344680338478069913312971632767852249912491934535966880289623513753565516505557459212146780531472570672999904270064577733003719841288887104208007920709352526564307148536020526163258250121204012277855913916989392781285387336454086045995797829232046176802890754399884992990032339329912297713730830050029792553188638859840219062140613061916226550460712802747058667497648582971250561104328478783234759792480547607132979818935814086710952381205685951690335471331475454247736904811734021142214374963671714666814807707504839123608920696731761108316053540973533554201545865595799615815790704152100212910357145295712616395852523227916691749534728852208808192072629125649842336872517024211063572366392679897526734850818322849322860615478851630510995773642493766720468687127412426610477239741856886629758147459547329062504727407579622226323818374929584120252015544077804500982755343016110902454397985948941463699990636707403406777741041435510059944833422013005588312355899204519819785161324771701523079242216217463354479940897404599466097178872553152892531902811524120761981254403118288814425656089489640899885219660375071615319190474742670602668353474080574969411158582587573589131581161379566061312897868843490320850721261207606901468653102511730526360204768778131938326636501422982907567840336733602068649808851443927571448779756586492498817930129388981925525250332624013031453003607426832976713406122934349547058093428085094115976945174203865176211879840783109435708967870416445323084743108960455541396530981259298127056253222756807403566698840568825411708611287818281294513029712172779035506961158375706125882143195152108988860599320273791929984664954036913207539002256290501199851983834644289405834272565228564609733185684531667615648458342363243395924322851351687663649258946896680922404171460270638581169574351801157025620758116624344035881490166865430371905349641085923109454724156557451539517159105046956851797944176668602546779453273641479044590613503696303588937158766230678281111687291355360000464279967431796627449325606253709174673112884033642464073960187063168588939886268357542785712440980976178213161272588685623265637867217271202104950279259446977021475499583807106645621000422784269519342273804885145052142463950519786393663009197275812290219749788046947776684723644565636549405562900934338383595905115997746426972384323125387291124155855335795504568753723668321459961467281248993528726429540756803226555781459455059373037327634532191009747475530630829388970010516019231835790740598451670523111527738103310071271316688115807522679057619163878027532854047560665239143290074956524210864499994392658493542533544196038376320938200328214142675401785403498984521734970967706512220925046843862199809695099454934656623135493793523524326230040514703708217471070532888094873734135427386498935554420093316238269659385916592713829472392428084774927639057948289191353769850507353424671450934642784316775319919990637943407330563869072892873914904860069648730331192550200299459198928534847405026692089202564068378772165314690364526361029967829308200015121080038407672141969548698595604620406920888174276558585139512311658894153748527240894996570607690997214380614362066037611371317516659007399891509831652614425306668110704304178077061456766293188852264556531154615882249262640912272528154111043895530664854972567714330045289793271286534969517397237104872631146987802048770481274839941833037802888256679587575608315454866496633021667443811682258891281967201909860127028555645984946421527605115055881250318722061290829173150882821870530616648340744198927748648796318399446268330914482681160288294477628616538982080801526783614183721010274271936400893894285655846493963714468146726201633074221874018156691084262262504277107324944409204508775096110511340682779925330629470247980597703933768289184067569533597282016064319241574483960990661363338248966985500549023558948353396706048499608300060199513039301537820704931720907361226589744135673043346359675411218979841353571007032243909333008205304088357433303513563615643205645092876379567704311855664663513000719285721253726609866049504787579508466447550842384872489922316514961729776300612724405258211190038985041107094152286516095733017800332896104846015836320985814903357388571931609662599133395732480410801401634792416777253194902091517350564679501677302552484081029358195376143629113976933741053869918105650711611443677521158465626940184745245572836257746894145159367178541689881835981904515023175836862686719334861422710197874771381122305025136197591466858012228181479403836180027155427285321804046966346349699675720627726491117160943235335448658617302148271301699104338017894709292226730538619462437645214756637115548663578464895334987878026751229335262661958762884093099448552090750529824532206860419653768754253058272788832343842668479044422630956857040874066635476944449296236484093004644768391073378585550766547956317239313085520948004538706673369575074522383569233860242978241100896648580643695778324861011234266275062760466907521002781775248919028285880701067738995592873338744182197844405709109293399276200459334135056213989918779001252795843428434173724372546979567212792413369917626484215944874861661543718854167525761609428655274407229713326821400405551049383501330253376359291647801177597557907437330362940313332952328433069717080281699741588817962749388515970565942674442443374142057037305871558249456461626772522368536959580621083948786290047044889884736718298463686175122400391022810284092383475285679853683059628497374150994585130109767510831945305774200129981355225115117148482309752019764442411577027687549876198771004032193530716714506442735197899396325058455536108679196416181371961141980876482865298533043793379452988061989907944015657288383804061826877673914399118568371687313469806871159437828320848841300571027059068775943079688193750012218603023374848265568365779150464773118006934899550217208413056014945837863233344079803212827700006361425417705275636259560740460339703707705910238245023172847395044626210121502448109355594035270479569798980998734363412763223138969772365279763575654422689561092857305338612079614486912700017971686385418057782026501440588458261464278728314655357896253407036554937000052119969694506147275753088218453262067137981412351659229027252220577732224537376092844442207948231123270365145627384997957138981231492504391141307620114036667064222309664466297070538478121183272834367081875346747655733284503962191032407363735976277514751650955638492999696352518197428852159382307281949435017413771544357999935889849576949412216187986188123824226352485441124071373668022101087845318742774237379418036962606498738547026884355265428909590917615933519970988210338376883478241250251540129597676957361542686530077544530132137017459024039914483818641672560544830130499659574472300903836828451885022334836947996727071773522715509477738348717425951492277738224136223397294641242637212959550458586288106939255073857662475887047385968558348072805678232875781353227666539781688015583360320904299180289232711749557831376928560375237843498465424354672632354919852378339102654585428612250375176465341022055725208157195714499212375199290538673459465604719518103277454222720087137135821226960562126156798962434263390651585434309069902240237588741846120646603611518733899713275803187976430574866718819605198624941451282199677702428937037187949530598394163170135136987498708569365827433538319070948719085115582625793755295329208618396003848925023419119089467456459509476637645772361498789106765557727554296467386465074327812475751960733847108068996676041011257932318974739697884410625112013850560214686734211357588513902001300760265140459936379937023539478330480208291312404096906235627981322703950519274379799890035256918439388228909042953162711904487762490079664569264048181075138518098351119195255157903890593310569147986001144519009127925859471537924763078374323718610673015893993286165834199407339256810937790681446095652232082817060776175350956787397259730321418432032537180165960749295835331018863014972087611188251854527421186269599370215309453752847980691043643087287992761357040606105601281001461602663516536220205058734584230145637906603517811611272431267443825027142874574691596599325383362981848141302169715527392295008241243952830041331246393262265328693766489567659355261602386457861308839951152916860305362518038162128289223963182237661643821957370699976380340284499939977653032868007894140775751695380305609112755231060643195865135148766028692753112346584272983022457438989491391290171623914937752566398749859261171428003401775026511152859082857954905746472448594163605528139624758376360658442872437250859710569659322362783945062150720202897356621033473695695184478051989136344192534452902112547201671085375332902697962396686622096137887397575539335920528989957422614855140751367436290520828100079126381375248919204546242451787744993720975884222880107471916813565498373007241371207511813095807930990654818922737443747080571395819247284561546945927097142293943510815993846547966064439786641469706761274439081264374017746680275666159226768170983363356312891262204154279021811336289464008535879015520512274489423268305066921626224649445527051110372899322580049357226705663969427719230209222971714874715439240707268557133783088853752139581244453326573370836109503191177814171431292377566871976702045242496869219961301464144472044031711383920011590027678812545342582430949261187800488323741267326195963459634718385901254111423541572012491217900654108372169924506473468314139875482765650568294335954890324082779421713304360063000737102808782246321373926210811762506452896582927556955470285472907239616619033757518288035929106982032127394576984057540746207983617047954822415117177122268344096632980985752020830272014722713618640387270356181053893359476004289438294058580839853963078535436864382365759516070825136968148213975530059730319344475809144725929256987892332471024899624081045391781047447649954333224138520917982397344224282996022488843709396343716266016803216770350257504479236584872460356995491821439492860696702761862431508472000653383163476470415530758189079300692640303588946226764037301621940071501382187729582240566542363896951052548613193396615575395268015293241411553191691995218188036242606836352275461601228446870212413722922543045816493341730606487660769843279836972650123997897874419411314822243620592987974601546730493942980938408880235178908150629317603347355656601527501592190023388220572267880285044828035549754041041833827761098100332510477085236292019658457380348503663703219988217513718559163914445329879208314327784362595933804285827255080465819843347793048969689596251244418309288269185489721799754693343231276684536867580272842737024461566790623929408874852015818349193299535075161754024763982748636832842838829403021453361895594233022754692253333973446397711560102041358473238048710146010548201833342245172541535667572218204448992731397564188834252715829182458602700117358481992384612158383697254585607462967335232414646865799271205743640886747095561707807374754408717370713134680584751738163181932489897803884295259269994558118895542759044517839349307201900693318709155566039334435731810506073394147426330042644256983856515863773013155046848254831430914005919811458905010402469575843513831407062404513678597771659617088676428813307646354391139143498060757909297671896453412307172362077357741889552946797857366651398350324446698869146493620599907365139221116401089189257624709377005865469257573232223393079016012413081273739945793902898572727715416272145170421023071930540284954041252503290106078535592450783187125621956115956026891536733756766829462432451241022984588260103659134335281785625209145038351554535275414485945857899530848278710569530378933841832511509338898364741660962506384159282927974311076776153006907413011404468073546212113238949094592713681305560634508593305696318933913318955038282422270199047231166474721325619215245450528529701007544597096169191636674636242804993156339267577967505098874304806705201013460878345966295146489166906655546158034935518589122993489723636452654230007746212262204688873361427383213340176389429067816173781255100313970185542718341371920585074736416386272810800436590943984051185225617954376974966294205851247409675811863655002793425855490640558401131661921581190691125223894438472970332307623940736142278818090788750048077601087977354653908065807049437351569185508622664656418696663810986024313411826908137823104314549759381125984018051116369798376942991137867287988249006677484322812362003480537736493523113606286453932164411855258078062714371308535167650966339027327864469354301863525507891525711693739723819188090268570130176689694924193622491563222455936961585141981805135398720775791037704132223883130995917752150529623052185727032976986307223975720413618322249382329299918315006567100661873463963474274767461377808619836958303981368578060106344458101284606178043560095189984721624072873687483561133607426903003840537668728048537150358208248867056619821950342626899780959986041792633489737931219138370156750799981732135921417851057650092487730361237849082216585265836457128259532965059210001357393041466383698657821198229439495663437607178256177335120095396217722468774659034200571550306259390462427933347770943688657312294297672076363317448047051453471751785801914518156024078755620863701832435869527962401211883934131004439751645092387473940259990541766620221991241413608343087476716339592297106769819823398667420210283304504730639756595147016667013713782450922892147773320720830017804224291814135239527512762679321057210828123463774050385492193781593293636320181661344266896250297731285976151768842338368440882437479604783788761461532847586117843235755932730408002710182193613642191582608231437672148401876599471135467710340531714122685161724562948762601901829601413963038142737105257557210671534100023338975614235070449304045013145132843322647941869993144301966450582890144983897790121654541014749801139083138439160297305933791120881047078512993782458171396525183801370363157636735256339498624825005724968982335039376106061039022883827757232275660526342832162562765088510645080782182291105683671037266645205157048029278477295500513179873198572552143143185038106449945863437723104882902394188728249038713744616561444739348962052944227217448901481013362722389085969970145167290848813529937388766445260274964162879641712613951393998411999580628042829859878538928723393496599083765988716178193763240377188667915810212854094357228311408640533773957829887807736176295861271267745052473953985717172313329561397460524589034902216802634764349942356085321250396675278309378409195323508520080059103392179114460366602945522158073519574221325503689860075947026412981705007245024598717742773705910538579448833766008269526852695189534416045003154699142200482474330781974375813133979108301515637634497038438783263458931163434788865560396844879531839627639297132141080630265229800694585178231124910887444722339422272111907999904773450905872530513886550459840767223820870546960511227531384621869219847470341162215485565877465100563205817265442577804954617255059613846237735621080057155767376613492346910989235649963482102090649507153460290270831317539980662590884074383433759629804938904468542109508989540343930188966377230747334002382303532799497328807218274982441513571733025978111448862815606034505070068155638023295474732339914794746707558517653866593611917137665937920433820664459343850515521641107778634925495660624432537197159514541722566780659335011665348329396686310137979515104215030794841057418923733678986807898777688669692448375131532533150551716609472215599617950092224153068431535615722788431565593035040942246489628811556379276314109562861053982432209797682537496855214564242489277551583161927584104114817166951800064764511950408088177488043105376027364711748192629219947792510694292855224432286240344462910442875472813822886873314519811209112845759918567838868589012070121404591147761089581684409380943807447039127653130252337645213974237661962021534335273081680411281251313273613508914311994493636363622774019479291233751610116192689739249702521702716479855731986560885030201029305702029502128154944489459816872309482269606531178074014902205259175427638808850380495652285474280055538183153394588553512852949520434479822869129342409013266166148956887605291516589317742245059742349498033189690621625980041642829023953916854996175979938488632082932943350854667661965455857610491495744308110338543275402454718469725034523150942426814902389975305291783986737863541154004065077974030715006990162155371181412766063454618113743900054538087046505446708786545432717729976627726651348870207846932294774224878041342582023126320655547717116471164376085767589297006560675059396876924285725047964564723837709353166052877937042903827530568736718791730062315285159816030466623496324772125819634689839065655402205017773685563023223465852830777632758179502645965962056023811511526652651679418899985294173744820366532381022729238544611514824037918626384776737725967043216917968952152662806256566851289926325814806644876537928013457444939805766040402725214467570250372174163682497215169676624029598506477067430934539519870937614261533489580316604459706278309118457165973327618748695537898158579996118341763713999207709776356859097847343317031094620747454235596844730797185082694013271207219228810713885520471570593668159667128856462657228248576059724442218423554425270145663140135790153936261211680775654971006679560296281958725282664166649588363352899772560772854900848886443840777169160963962172240770023243490290360618498923670411120497770655779695726867728033799802062426904684269447878031868258977917546002520364930937845059075428005826841000462428386302186670869788626843411332891487177051626607703481458100925539995578118948914128802377703223181647058424440533161498717822769326319074129771661466885056132534526616999695274226524742796201504277935654239397111700927538425203860259942653046785523442427833041388465008806890995077334050857397874212334151387654119612721633677506812356174247736150413469103243187048120927553750184057372183006955981619645117929567744095234539784078500759625195252524927645184990206337745444721765651771953938512152471410384782456566786994608078476227167299680075185649928989252719177704715845051768145124286918248215510484607010839753499682490908520837482370007855380563668641589437767586719229066138594785664564798052603186631134417883235666699847284198846230484010757652193844765453938479249829610489582561086641620774322190802424989018308235349244170644711237837939793994186291924072065098765756942549670289533426702668162250137821198000532743977054171657578094007002561255548465386406281340287098378301184274462244941060482199013540718697712053019054859055725881740724310668802271382325567159538378559068321999066051374384299568176612764048857631356434088733429841971047486418429773804996212346139947832139444273871557488156480201779375121101750361745649071586916307611604684594360099838194996855746697060654420039636660784909527754671474434704756632327906969055176869210275440679444763470549818881200220889239478139567135424807225177121856672331612256385021477142323116318674419344178131689654721891726208049886276212037368348315123487992409348755725904958426490680289304275941885152117708390934673666791715150931405140769195517750797865079403051726650215758736744423974129553045169101728941138005454740520820235471105152557652863189874188158398888636806055793453221446872352071862190820494221323063609247316302098515124785647759615472517109970344226563476548238180915037533633381861046488382525526199595879845440480802871930362890311096885909266131808034148702013483211054466882895768363449016034817756737722971272061885591939198386890072342414114084772899625762460027736753287040301893756427956788841740339639768376481456128532329525646583472134244352649208603901187056602204893328186640437535208802796261895952861990010624730611617513288441622663825842925365215403588367383219874188569725426838823644672754750004392472263496645725715727501194058959573214890732515891319467302270073590953570624737647521726454572709889461896360828874584783277036513627810548819093191255221300921602956739726991083839477903466726999836969816887409381166645037542900615110990882550461502137784905127315888603907535873867554380960988652903982119190026885219370371161537124274080000876602396809058342535509269558560172991922458481394816858109955481983340093371457840968735316265399429631791461275314284069805686550874193702114551053954002596988992896748887766167557824439178840430792778363805178577707026762225205510968262318072764047171195196284347138138379329894467696486950870654198265386913165663968794533691514072182591783285945393409815545522915851494369159182840036305329508966466624473300249517204579442662050316360770864486308102585893852182170251667862545816417738680252823461758659708579297526487325857062019052103573233760063966583587981709193158531547364504937163313220578830491287354298919669732338833089731079247545957588493278966992939234904909213098312053959213978660445444709520161949648449469381790202950976498123148590374169324787314330143005950266412701590861782759554857100128694901191444461190267157191974975932249817773478501038348719224740746268240587473180267107415288796448204405225426584076745272103645104232225748926332295785687304118375162345508146978872892729231053615731237307574905619305511431878526723560802301419466366620565166156317075884895257919282921478177226814937885820850191637202369016672164520974410217453403114928729805966715737271519529478491336828111257184905112008706348103057443254074133007314708123891176197274857657594945894015600169526847160356657586723375277472144090337565689274472427735346561362026738604864632780667496334443460270118666480690833070317357000358415367340981691033538248616754708779317408710000697334181854351023893589261518054640775499734914855760216323365367387505917983581348730115460011585159823734113430880770958848572203428641131131188672738957225841016981681487677149743618868570258650189693917690087820835438855280626601352817008204071135411021021866352721165977591017863297473106253126511109728799006362935033214828203101875310182836810095805624279777546608015037976102706084187398034388878465213112330467166733692468573515405183776734490206647206952031052209780214364987469637366389668931170047454663450489680924973623594896331605685995511796283102118316618889556661220232238920006201196208640571874174358266020526797866004868886872517033652639548315279693236505739118294896805056055767423260193827521967984900706783246610233537504490349945033662090015437748438546196414383972829507754219388274922675236219528425573245729295834220286499714604128909543830522253528098388572988685467759064250314583291876891137880764667856473392095446928912778544220572899109076918074152952648724195478828864632523550651478465497315732092612732098064097571427317900950065245499732534492098597600387474170103403981706641107460175345959148814107703597097111499387262852309849605764201021337103190304773919068927339858853082821175829093035444980611539716901444359179162037215542502147114474172134493124266360602340690374900686138433048070583813573891543643417150323264606791692949359025310297980403045777819748585295591718767497925474092048963130992994297051582295464049378917088866122166416524956137823071572874652133474920342592722909577105126025865389605298270462350771934997686363074381987526939833588884468105802802038709013159378132815325397377982073577526194426826445053306618276085961396372858812303923156668202827040474132951440390308455320166668689435296576165133600323365192382641040465123768635066358973194702200142468892205232898665047222476373209960979177255952084700599957477625065600280214491727577749319919782951872994028322347659507450199696733565291262241875098489544894729269682602989958299999789841396811003256840421856943014981632205476123198709305525255882560119970594909516991632589172776929428433858913471378252408200401855602995046984857752769756116559373582049741715569159341122947972607857201496990941906583700796963583995646284341434009054834646702307374451604301964467972754612813503076068369974819350010952841698497330747528483844088843016928127732063586510995927716777850220979960103601852769754859919703730669455157860630037721730941000323821591677813296575825785656135285246601775001958190614214420149909913713959720522186919777562898765190433929869898109412522333423971324492654246676864468184965363418491884230629308195492161208363044130090803500645932376936778827743677755398368865467508110313708439169032370324145183152465324301237005552124764329065215239048042396896972914521118009951328877127206597004507043173436188472692689945764844592977406247594600921314360683127757857985561585332288481625573543295670963476829567650172723985544586432412744284868136357255687981609029111235825258526075435221829012302922176084959799423761621166606425106120796503671125079257909853590148709418410820203888992965405794564523925232435900487330995910497700459426867658186954850665413497724579428117423234364382475116025856075456948440856366552916737918793800924255773681801618894818935786611670387187028420929435300798381414031908490129404783022020611011342859263788188314281963183619419401576958196935018954721105993686289507374346702374784771247317299165668519049663212589469584115496377958159634657529611081132264852333201089792895226662857891367252251079597447694028707881634909338278577634482610294811331599381081470608410782375369914613305195273831280472007115525442216038796427945425751356544304331407673135674332183864592637578094730772350101453873699915767712661224542470428194902640419024557464543157375379240671704396840164761969992435519366514081231513297187993946434840483703747841584048555064231956971979099240958738702138891736961668103909283022373176364139803487104289779359411129363352074442608451754074171138980371681154185897883116251634623388839269559658467065617047216096217010927358241278910268065966313334205518473848856050183357248697300122245511001566461048057679012545021228982108292826081525388763207102484130392802645581115975076783888969603578111953369621477067142249190473772443889867932632535906323927461278994811452192550501822685643185354684968493160137396113017331810793117088055586600231206375986571780635352542950380708071650072755648585676707424369873825901381299913931911773798564328626816753708284571454544820500393571315478819188084278346114403946354862928064240069068415997079210875786310657732071437348274592783965755953105184438931970604081447645097926747609942659007105422616598209019928119891971437869065287437786439004493343370029897553520605205760595837616755475994609225073831947887518373727957913917144538879094354634088654382176632630934857260593817802402987443647662089884790117440091440607509414578722189713660836516392624710722151640671087128911217121931560093900852423871246115266732093686996222193278769549690257673975876267981121725917633931523333003381314954488510784209616412504916468390971053960316273305172189362684557682920700169677489831824902368509600677919721192482568761808629960403890961141304279817987964262587175449498601176434945295505473744656908421530006232676533615493312499708429286697867786014081995343857447210860698177794442568983348159532829224975281602485055748879563160754990673463387448251726237500438996239153627642429999977483747270859307439004845626824667306837740337796620784040631816572057100957742873259249123657518936618488283448009238322295727227549952417936086403420295958005967094345465873363961120387303687504932771160906749244025279828591723341713616189815626464108363754499230920758782432942745122317125298066265387746344653886642824682125903773504662528394758709126888544001905771334629032495338944841749827539262120666646884676384411112834041301364718754469310850312411747617441438284945752586595333097704967281047492343738936828417047059239863179799460150348173453980892042346954537053916688255476153965789771530099696368742145428370518148143486202312178367869681881728661968627450595394455495266589295139208284357242053671464593321560104753110399904915020904987814251862953806352423670998993136121283489958375406440322093061275321664176001505415702608952817003852416089576143332957954342363157888362542926480977323126716502214504943292777578024042538710213736543859916086634720405543860223898852236336924200381237757281139350394134778067575630652944139142193413996171217159151813072744390635626666455345935359172053174572229260678297788477926740326850427225567675427007195671513840733162401656460414421172197254759552443392506870890161420388408634755994338169504215126499101906548865015002229417543226637475087497494570931946442054037771916889768088842611484180788842417381939873645656232341171732611782852581749473015090751924418351158346417992438269571635228312069554232777863099588800866982596730864537471094992196760617546282465732679358751011959619035458278523112650313669349944401005339800091308394009965848411313350382974176589297537535912273438255512288506820073273419945836372751436668724197829315509508193586445793702890460094534460991012301564144067911389287566130573135381434711120549166931096264993152258440006096602527955639199897292200773812825642461009388571228555454915639625956419295490319932343677995035753193802321397647714493279117121838401358533645566646784259337442229102574099584755872619109740486433003301496435931959935899400534170435098355729358727864927740398060427660467484548273728371704764323880472310936952172673864959588214336827303728527866322496936633706930968334166854599337876733114118283361650012555731086504000975479634361733240133288593067994479265596680811610934702653485908295256772244579085864095990495746924322840292666922891224245513052723415859249537523963894544807096530162173258107886095926069624724253458210727106148556897468283177704403689297285714835386268904282092704652724036553216535337466146283827962009966886013469941013132408517975988834713638250615463893136871434954479840292348500573679400861351015165535366581086563828873869636658736051332068262569582341184364557919898308541964949697889729706003738653855122633984216187441353214270856689155840082190797093200435223197652184384982779509631592769288677762986180142429823745916407169078975400554900565442207422941364402980803491133366227194542211787535350594656148240788234184147506886143508689851762909597161091483561498626917597386517280767879645054066625345096811689153428156858147084564888491429220198370566984718557385860056662160351665397622561471970780869717880069697842939115693005454524868301411436433182686303824989794467172943739435266650811083662760500087817613667086985379365163608098222083454345275557902277540587701807857053870805331092234781307150473846449667525887209859956918938576992638072023797082471547143360742406713968092556124943333537751201744436372725311334801227432433541037164593132882420345125987062520705219227907543296446348464055968484291487572253510249116152711292956301020617099963911158275007050820303381267072117357639889389658226342717946095278961756037316926039190434369314941417116922802854081895356114962455828616392533104682621055863638347603962099427053884914069574506034288618132658136881865269698183698366102494395476689274868008879539273471606748541281771110406274121963209677474704340226293863797752104853080467151377011409742199426554513078960545705742534330194536385562739629429733657406278520741120083310362546407227402757053499955695788197546198587205033343811459611704274065166592289455316078989089026184276761153865839345889208782373658240660309522480442127442702684902041201694341483099709723262297431548574505753180048927772353078332748130762998323675700123299422822403254196643972162486133642776502370065369840627139222591930009244533306963368039934383940210448779858034377817765029891752641383387317847374014908487989223344904523972776107665541836160617698057485185181650708445330443529182654249042056263526470230468847106925096494405887407230206559787015893951513247711528374397018323737512935570001777715822460769158423780616538988306124355293430174730169977345340850683849847332303539303531931967981485650326103190619726681317057366469087846758326641521326537613113565110753233943771370141086399461885814497852569650927760906134557509734488391357292183378659314915764579644014865747631294221805092129754706360364808321833472812824223795654904192965831383782241747931283630893319795342449429582085259149858939324988204810202282049717312571718656914555596342586370420743483631667651193655680985312049172376101531226057593816710711035960259887360734195054011830799551048551420535613188507285618386332847589407957394666096766421063024844907513612605414568141057847178413420606777260770543099852210533896753703390019468774377703018946983927760744054855367516221226456731299493287331106147851468246998142745814818248388268209518723413451331845163545597514770946085322444291808842450294221959731619518170649055368719910853043870094034445550946836353998669810180458461786192624868276318663837067277117086383150423819553523755409001713347631271564739530073772449130200429633440110433678893341130511253025915776616446260290818356092523655298634484276332527309678424900943002482407830032280620247485103537181154694704414180169515298654228605783629920618810104714524130388205139910367548074618043925228852672817981065481760491388268172983160592589952482633325473849705841132565045633137944753797988537921347249903217936104688653862598991560940970198059634959004500764492749514959921849066585133285455250367029396393756544155687398508980586947253302227925385256265773144458225489750685189507045434172450037954056554639380215778060605356447363452930399444328097292109378501429503569774259249343494978857935513431772005500700016034144979753639652027389222351651606022321260772107838283806881080126198574587383952933608655834090634571441755209539250965047092935733294541468006778561574603920967078502775192570968640794733661698915405779446336642159252902241820517401559849122649442133624623739364211521922351299186405212483115807946903548787637543610677669982525553649846311826851958022144611822423398112346522919826953081864880446803613323274656637500327163555868119209432551034481728432304979823563135830655452734875611348687784693944616796465236842478901349376738571627848834654098458910785217916022239635063264139102218353059276733758174522935209204375977591015902386538941358280504556780603508134023727600925732152600482615464561172459842805901745448094788395616116155110134655243894406536454703183360502842736948013454605095460151856811673080872093902813680342028916793199127167615140583829992887202621025066862974615943954341450111085380679962744823495941351612758912190016199849435763500999045567105801117316183749145848434279220228161468515570074230915539927936410331943681859117056993269913735161163366027943782380916016471093863115131567355190937684782567884836865506213505096133132089714037682499380614085571082843639942150518734236509804864344921365723815424828525531362818755925866406721988908254285496129375658639949617194964175573884546674221810628960087700088191666906971206794411732942600402152063644701868415650759543029859513222298109311403188984616211071007997995991254402267212754212516090253154866417938746419456079582802344738553066629309791592898612501852649088554041934420520619543796607181372737313115663130611199419350044174014025790101142590428902973758632711524946687429441739133883102412522516720406025639746250122066748834310629870477258160218294650045536669757908590437658005287212580397320576610788919527655440328824734169886259521367053680313915451537880137312501185530331611534768362711654179495206600560776400208480804633117352712578843392634785824937794221354224252499027066122023054277238177419677587594088723314962126128684430632301633450812473124316729775897317870162226522579006358139909361031137376014246319355382868823201493926178483748442843648739371437808797174526504207988282506835193830062835888169766007303274355788436207264272835962223746996244734449735937186865839176117235847467545311802468648290146486161971320708576156478560249727713316863548789209078814112714452833755301335025517599037527314920531170971762378757419577542050479967817357948244691449133719219988115753557080950447818444175512236728257434334563599030838082806148008154480263421644989980084922650426427221394563485934230389366691045087859087553347556322654246024967971006651295934953397702159590836484783740084630876356679623651743942348328051867456191682936345544363283827525932765656470453255522207564518306499465047310143329900537786011143040819929032172615041082769276301345791568096639057598198506086860650262365504301880723620643378076282943348877734842700442164983619697193001178481361258562256845547940258308402168204503484557560672614913792591187245749374679991800833365910381888410484720487781984089089012708270367753328991458080803525089992984383226293278467386898718622263682288387302379301510453779395445664975687123487156383483676098132570932923635517556751242484910841928086797806465554534239725520393387580228845919113913750102991780515081641640560369402698876666530836857882320021074284339400562593828358645534558635169181045481570548888911240252766382432975193349259988421189716677917392952241008720671428161334471038513154307729352197296171581175515002281328243811238830961233601014588092305573584989779468012937308563971148712604703845265421939913961315592905521058432581673830466022588818730272288017170506743165238386201402675825388087424255583476594555834253084530609193821315461256117098633059181304858817470201718525235150909410665646019256853618472001669932761270318261354850450762463768045497988337042052708414933308970256586465282103866987281358516945109155803805239306312517122066811698554329935506375169362912399620325252318609724498105269906393698907660311832350923009285981491180577897629652596274955265479061808527127245416510991078995053437948934702953415344739886512119974195785693093073445625806298527370624572080032439455031984163404963291973476651840100770658754804733524484718178695483829114538260191718633912220758757230128503864190970375517962239975826182058577780728660378494754005914057786684514290247014475615259340113906206476955456447306631054434110491925965139289068841075610574691509866975324489693104321171161355545569613961995657402693259332566592441754350672565279841652956015819427826536358659982052725732579736425972630314963889051080394061488048492632579022692295055261297315810205752889130878023958724120449679247357592152230656802728442974441145852183898055768450600736404815250725108953984469665624788046466597596657725591563603544472486602248827967540824480378748256630968342110043934615263151300006647752253735259596049686008419763123170707212714651391160965707395805036574015760714036371873608977227303752783298617485762049718370631893289271305495135610824655598506212023304746282454206635551127960046998163809697785502452339627436252745685559519891401166020648430202673994050433657196755881649561984459403122135596496411404235928636425527083160992904436890715604896599199196669382686231278060063837633519155924866699565637611379466746330141713825845877494702678312939276960985350507526300395275587909408263027944909687933445585648745054770190203304910363998284917805547390368604663538487441414757237032781470561991250095069596199602717187046565212376879284898908502289396429286974368102115701784724944125881178831279120490782140519456493518593209881763991487744307318137655027832856771354201834545850498048818044811543682043321669869947524199385775963419845577668348468866939111550885615565064184674807511713174114760531967063276208895166409625615483106812383908533121964471232544186495740042013766259105316666053394033354448230777322097091062963978909382489989702149898608104916360943393545710191623552686034884857735821752652405912512229866304401833507251392381024446369845558354408411010647675331944374353638438193336692145908968692604061308714587630471493703432209665258490518002352703418450233836313756289223198825924625508847700033513454505388253877987021768760772357346541463061362632466709515151728861890361956010688816672517089645033870637674856690124553950174511695401579088798899053524800282992211206386354856788186848261102017840699126384566064928328427277612003978374558260364888270249770521344146092929298735883442420934022848210092853805645277313340808087416144323228765462638692069711191899257786506715053699341845501793385993654801929538843517409311335217372804689402041512627953129358195711163154735551547990252759366406524191720631356044748558553673433068062853140052263222993240415709113300647563541028434296193131012729557412678311671502430768521198719160585222696164352747480655932070250750266922079432633207417346903580522952970221344932923398748809378634711430458324362803929640502153265095272342299962144867682716266203681826909027407002620133668316540581735391268972451690870529571341455555438789901488958565458316475704511221359844232430623020705665033464673014297703321373724380534190297789346943376664862025190900471119229704096388218013578049754018971415513290833577683605462558685779567594341731215858325397433538023141766504796329393199609187095314995176102344341044140022326525898025125084988222311777235169591234956591491367049541910605980486358053820304104013924096950278503725352514223104614920495276708630089835619053721621056573458936863288203021871246018601361395678412474090017067887942369861521290369734690939907560248785838965250617757576526393951971640928909943526512421087383031823650077134308487985368112024879797188855143187313608209608688323009665845355652444644822559757375491907929720230515252874606073777581368168791238944089644957308038069048094237590502249858539183394254697251535767501943769853819571410795340756143261214124873871149363571196434369548695576774894524485009974209995141470577988799085155695584622269267241131139425373712209035047836665563630339042697144288663024655525356529778853396925456857019477434415633736450777791139448007569337981443269064293888409830250500965705474024065675287082444771457946736186444964353538481565246761122047034676593054983963291209526356088862439459663516552334948411242663273219104985817454679279940564423417839439595412167837654461352199801308795174552235545907703126555827892897722595521810760934587013245622970067658340538642123154728723825161832937710439248301281793407674725222550144076407920367266630911979524440504799414639706968355260400217233491804169047862720940535097091869581143714851541488753920810588307349797880678635055710098274221199493083426631592047609216131575388604291148181467495563295235740515623980655006255301226751292999645278898098970458363798353005895180809582109241059368758019266340813965324563323063082673621973379957272124041240231333435541543253237117543412476545487025488726673604030193167718922593109021872227837005514331246444899085405889913707968225178801508542870182031006397508013604302353257452226805055662684127784547264972847581294065894351220227541970217013090523809125871268335033611437556500267848652425143628351835086173997378150303043396746854489976843986716877441820208097238455761324239998304368680125385050021900493137650430317239282975833522119306818421057025871601222949320990051171192946313135257150789611660646204854421193009944914882935631951673238195833816507530037569486101348141854105803243333794599396362514483398241121008285999840106216651312561250080692522359291671593425708293225321145818060525354941290922489130974960885702644117819815840360432625707330655972454844859847666003575187568762451932199594471366247289638720039874657380539866971512871175970320742619509454445748407622261978963568331241713534650344163946155549713852944486838024830648487327587594187956115207884393590401667287033661515316580029897061422838344263012377437052050744634151627026088758196806565007351371388764054691956143759506662150427172654664237174758582743729791803669239926995268100891082869641596298023470369642266367075855429639565919126643292359991592971913036706417015288859444440900358734191209008398858114022264682987633215806901215102954208399296574799776092354456424817116395990480276233661902396437644061512189695416276397494427260549757078338752036606446890342070446272625782025964024300200857193271143017082976832911550562549046910830781916687321176720826233641828621443520047503185490828182296148561808045701740420307216655129929649964467457194684859221148366633427443504130481567734449455602906732953110418949060474073169404348042416285137814615842091355630381141240841539329428447197287528970408222057433137020385679633710870227170031355191003974734052005768256899087373926905053521872990259219398399504278775336178899719644849515906156636277768438427730978426522848070660622736080947377310483193596206026385610690852209190729038259054546080293606618240638159971201227698048663430989818849288654987616856960115025667785007706074811162381380251593966068722631917758280423363485836840901921421875679175732777236459593453634163359166228049256278307490052448231193452326322696377345248349808227393467126155753179805333553668937870326515823715950801532359191167968036513252248640612361469423224477053921601732898815381008019646292826423879811005046924177039175710976467904984253442040484240479686603520089200948851240480178548502173239326194886188092763676032473206243932153951831112114585866683078946717946904697560579784493566055813357818084967469635639803343159840586401782352000636740568758749499672720935804689411383594120921804136497877912013423909959208283603703467567445945212353053354873874421756536586307159651825047531414625203958612138134710985978627080458556913174854114881817734140299649475635968979868575199121914505552706029296055745115792027060215968398479551610698296858579742535248066185951677857349978149927845897195767152462166188941606083326672430655921966693257491520240977674563803977931254067929536059323686556605307730316616105721278497123306446956452130018218788305908196036121765256060642598136263559399037264188645994660191619364796651973651182557371593149900268844292883930547891561045931181560732661240763185867761896048822528367844447557824661941526574817860115704050743524826015086066671148059383200291758974558050155153490424316629141907943042285670977135110739800826702404070821671154273909960141504538839931564406578610822497201425565022319528043992005620689223272927691734036045504109094775265841918161478760651427709298691096414347278564917343185238439601259661183162852399011201252466088110103872800558879611212842482980561448450262924110481821733824090538523079857926050160965046782840616060565989844595661342649257941889746245338529673133745795258612512259321192083740580657044430735499435611691263822117914472712550684132349724697302696171898146089884238109560000608984575448070797331537915928304578576854849084239605597749598760379604283725455833182306329963766158715400376660023195937807000986042537841984277054833820488900230115865571943798333056045313387372140426488653342902340882448058408127136713098153821702270983686433263183053349599126043680171973881516483741787309175448190434797520995116135356687877738812835479205087930744467825459965636829376369368364088161058450251531148014832752532661436416909523706040707503970950877244926598281870872718063738541356528325712307423264359745875273207037572022910092977853022769258857914019344293826177557138986113301886920033057329230853616268180382363403501449403600522842003552659129998022329684313691251444423481637853022401451059272297544946519006394520007044975182927015712467170734480080866249332333629011251812982365013170497633125018280920688955560426668151455192259305704587527087043050201858955930103424449579386562585034851837446658667290473678253833350552429251766402631250374407158315211887841169236154482993399893509078491617812846715882563068364647673747752398249761762394646219373645425525641305865388082185605169113437348751571251247021908982427025464823619808737540780017790084438291462518916590260024347770590417496927322393542971049400538427156421349465491153772538021283845342945922823828869968901263078066629148377259482188742802239372601977958624368335086416978724268250018080106760592829397537993970271006617121607433885154055770061743433111501622026089354954855711229280107150734032574524578368917151277177496560525818626893302681212689276798335620548016382038489154769369096240141788716200928852115610271951050498633417924747169462567211968011828947406287017315269909943179862461950612129656886792559623281604782087480990621051461113369175680707401074626593729169602706641880158035535743923022922521154720630720905946401796898242001859328166925143035842503225041611784332772660567809288049559328583493566181122099708541007339173650517928352232307471282427983452585118037935506462326606101037482623586722869414817490850124812586478973296729483274974244237635219186274025481727509251936215195081893475843607386005907105489236879413201257347280879119048380384181855956292681348285323924456047694935092102890075794346267809108004230433753349152639251839544139659855982445559247817055954714538068605477117897225263535704449792068504485845936763370015106631684004395852372789441984759466258461756880348445337436250333133269798420636933192040801127169520893548811489970976734208024515379606741369566742162236882292466463981969292513882266293286852942609291466018568431645385830285035446846101752913821240100713522073182765126487587515716840754136572414104053734050733240823243502787437708505832894542681661521276225713440381616186808828026572954261641483515469218095067961210802369298772109706688127859784105919269846969669821272749923407202714775570996091176174032521764546068082885111152006673273349167617673862031482137222241588481395335879006131343412936892167495764678995562005533287138537918487433176166850097437295422978587508646399839174161353246267974708136376408352675845728293160214683732755935196602814413220562970229299092443262910339428812037362766601690190815860999477211178060526149393314615548504264220072138288341476584071819376450381194586026702823354019281832441268974004184524768727919102861353024973981752712424372809057787144837961525333443539570145015581465333389341917806096400419022855275453077415410815481387674554799857890308741852365970956254851446982373102882340157094546717872173657777651211032674780425520083130422492143605935687263778319820616141386134293397038259167578744937444690369708857109799792579411166399343749548312333629120673133622685636711942145695467494597250664134344603340332206725648868456181377082525782011617032489566684761507500085585394254203203959760928482001849956731396443421832678579466581145718328406849009956538350484282024432957517395291225437508002082754072331593162252558590822035800085166604507282995545952351848417964428927156542093080182328978909520509291274938998836069286011535442055786871492510002350643173502568244968661795190643240235442535398880157890532931065927562597355513908383704333213338634420412709496027158359853702513841078377593717998764950592814770522166300544809674060949935538561122529141882019327493175482136737757262265597227979032907800940483675422359509208104218888957262196276107610272474354862173661989190642154655410089512934573554627558205624308702108752176770780476271303309948398693006033347176090658841694260217712819850325019381913462030797736530508679127245941168106788934726087117450526704854291595763035035482782865835606283043729845238464397242624531282894475490271653022927794812915779890277245049732676586213208451871360286866492409760774911957623483251665424590493834988377835977853319329154217026469240833036426948908593732050916640419182441633066421903628524486878129122151697846018585332947738641462782330706675674788805244459243484111690544249890513079659665734732222667934934530757294514832876902991255431675571602909714846841348320982057026216583383328130580085863615604384636861579941810121451087730910322574639145355110145315257297000798252279146769723229732742276688013283762239408281038419309062193954671430158463712392801189120140706656707928029537776441244151005805572239851748377516821264835176671020692687543549709160046908897991568957353286448197078983581743658032347253339404704779611132283279413067271391803812000758416612015237403872617794015618517195917573044004718689466886381598665813937608747848740179713479471916390456297947842503238599521611015583507882531557860200519964364922377891223285438272005426191275578306707786993310900836001631633286916223721961033379001691297845576394770631658520502764963910797848493260989938425423346079386641792286631873330631866076735844219473783746545924068341141200813020598374670312035929653295523023757204328566751873540317909243857489327775352021236059724837726482011031915052329727686219724237903943124519660690533264945323961750724505467788125856807682270114667353392231829861051602317457358734899395643254647284079896759879500336560907666004774396629932711323428443249062569799540963214507495499839383114819503485407190858398014963843997151805371503001036694514019135041340703018560737392366161437864266861322469608587364249745526684618405669740076845184763390213513665150344159670284335974063452341045887359154168795692723491485115007358958975417729852595172053731034626950479700243431105873873406312637396403052267987789143532529774072027682363811337850591251063352451547271302297507145941303727043264380341026161958775406061372163667605844273188827601893181455951621764449359116205135331279173592557214636691215260019166522195796997992047836674603528724462804874597772187469692409992953120216431033920058017697361737438065813156425083083584384413468489603365438397589902954251394836915709415725186632280180259988261323276195572821228741208516194078712866425356327677022784849966400080518768577004494312111826983266063716204562437867216859226016976952760923426353083909287302703296287029248378073389607739095943349620553686981136631070806449759123272887776274574422992041330883468252633227168184853397208247255140296005376275712228242219923208783288429036262167511872456880161607094846824929332890057748467054935660563938981901040980491572977509929918102989898204282663834008717358208268777601603227445592595592916838237384640441216321344616325358133961908617767997568267620972658379184934870136854389296679625453584253478263931232404276433338324088025244709960273172229043293299143574522166059849041768634106184140632505490601174514941357989216633098138417349706976124021673663218689588692247201525602479231621114801062263494377977328196357272166250367007734797001070266109575459350178956469372811301017634953367652334639141024663226734855965583164385179030062109820911099697081072007288073421581888619353243629140559825571377659079088412766616578107148852067941255520089947014458975989413377900959049485607314796321819719005599915636934176903316123459630328398370918115921828669105831917576716452230427935609060344162689469320600860619496524508701452112047624886619158762580382192170226130420738482852887135239316026800300797175812066586033826159398332922199527484921042306742483403091908059544205917749904252357348682241902049094058652983673239554104442044655085970172639575179984787877250214391850777266033448394359013395365982719805723960542590383736923879076838926869828660617247103408214621780610576694075480765221205273807617516443250204852967862820770251623480986924253038215138336261076642810810739969844534311000261059477784231150220514522496549601296435527061554258355575875203605617085664838206171089682447580662784646907085929409108302903724358370477787265678002429712974096367307824109126200568090530606049104103298003083495259166589319390656883390830716278702078543448019310794093545333971734950846936803099502976053273913701929093356408329091953482090822699291070081864460476435580441913496691788061492924515190998322951980380671284608581666741300489424647876108371686822862979305448089385142846475148820563487792505759788442409333653903913672132515126131001499817511392537738632247390809463202626603852404712972881754710766243812418614053420861182692793802439390028494200996674560038605579352882781773846543218743514823436705020932120974341941493547033221135779325680419677382065567324810882612831540641963551862105012549237734350314448467509272681723088374603882005856836914903479434168784223531231927341346475368387863318280295549875035436699081239730868946691240374047323065639524547147406999944029461256466783388001659399788951978191482425750875707893696157959526310469535929632661052731057455264337120772605619127248135186804921942567251942901962844077288357711811375177202970432271641347278017721844614349527176373313104388014898983916428663758338004706351230304495167882205929172705720270058685783440583155785570356439464199488184573510828238779072858213094568822725725940536745384047340418180586030077786012158151526159859980217584161915963168442818284448376914175295260469869139399685665628879003089622972704702439821253885212389975194661753842455300041906530304614561902202401190118282059014529553340308294923931144115990012997563697665088635852112903552682607386534449261109158892542698487999309924411316393261301047851588202608536439580798609621030057104423221799155478695130752775684657626160505899927557107371529743007898493059738326497927424380730282471035070879665147337075994002113728700697250436457947530074532698388348598226630842033787109899561806309759460726443335118323848347903055332887469572139878119863714644362267678630182738616016974264784463914607288744806903850376789399990613140942945997270851501917955937365249511743533206394321139637530491406922988355955569045956048328604855552418690878587717820270373998417365703585770612148659512989351391058764143551873899516307647179224103798766219858290400153584203973004316376098687847969023400619052839096226412596469627657162172387370425101255927308162524021641253665275463345024778330476154143214832156209683466884931136369124623761987969567448235515158880318606130322066657533521033955182180367309395076218818459150493365576077475565047955029938954692754789436587276921228592060591726766586222880392807640945755960511279257057043120251138816444700142237571785300740374479465170443658232009758358255556997543677893855731943989538165532394068141431913996825737218351611730659326901484611934567129024526037301528028504327281708663361427914409530450192405333335171806237644738215082172794734859609751255046653433932345541309633660856690027841836154703411107875620219283183352046950913123920166180655093820130525945341137696089215572323133537763867359727429557653069772498322843330206563489021330706356535929248204099257702205441603189372713498772809161424743252021017423310176005320675279290460024346211432009564728466903421598716226222274939850640687610795512339587268451772717107127976084045690601793925465599327647065539679614581258140646141539535158889895629733878369321518037129491511581897169005651788288218471049178440863785736237676052885551072282161763147717416436964910022972296210268790418218903697296998635659458478114296659166078248836642838836066323852866541808689727368600624522728728669662512427984011093663166496997491539634329493932923488107636792039453611942735908580400385557535103255010422960526889163120195524739989794327168701589986267996931379462680742516268298079448671039155146519498397665773643345939473721494528775356305903138429193270871579779884427838650053848058538333857292311188653549971989883721979698742885036972107426270681261231983725879014022924279948946571212369591025450413900509318817804858341099535259684811858359131228176544918477523715387334342646040239230603069983903612765612019318582139924203488820204453755230374960293955175579750195524896815826890783736882382641576903366120186930696083324185926455400332984291130187042557701087681839255473789471724411547465650900956326969693772525642157286311013090076930289959579484171325192234764789662187452362576247158679112763305065823206002308815419541647791572801094292617544883769430347024992217005667183312660216335377319667096130924166368492462523186859130552357345687137493197435149597619216900347730038604443707742191996937926120194182360882602644362084944735562326225585472988462077194092375320551184967998078798305213657622895118029695568443571186740283076707396380526030678631852015558622940285731069687304221058846382454075473457304703509438614874142161693158254642402092932061929339452450921176842729145894644768945812470523608220216227154458145714300897178551598174940421370111497673162907306629937417158747721569137762791399753353445488939900672366716339163129465048366130671758161275263346144333034565493157180942691480129478916534627247417974546196377053148513387048024058438035760411939652684820452197127407397903303854433889034879066712885256643618420050369092548995864461316188665690702687094572999607633053422943764852879686405389016378268801946420468733132110252230945654538742663469135536562935511141830144320489841836109753774989235542689483504072463499130216991385668507954336564701261369292983014245858367910479124771901078220737289105746916127432075781422831244218003572302358570700795440303487429256457300127299341413567198302937277062729422098149010620187584898854902194926958253081706866139442224125571436387380487004287137493236607382822751756170109016178055436882884328001698672665938465513761498519334568531556198430995615491861335087147766124027619629347148305621150668346015603095776690798366485318017059837672240414139013809955294252081192826168125737358662236746010449355115617817222511001337004315885558367102054094604093734290207999212902709546417113699158286289693620827785540520505322269793599287955091978791296794007009413658589412691859851241648020907766631783142039265693753538805463386503177802138864885600752995678989355935598994152440494412166632027885479945351897708024395613096399942978132795463282758939608612687852083482955438556726889543112450899596721395387369059605325060084705194680198350755709038152422803749133725895969786493142990458560007330112204326516053511774595757908474348504764956890603937403402515026505003369131456157247220606607943806182388113549174374783278950198740949390653259175465108747891869115274099017992893662802918708406411848976881399150814277295921886606813611886725709881453108230122922856364003350844914712927596325712068194620115954170524084255671293864285845799266559467526508553635097764358271435895065878549839472706147575670874091527492964293507457844607196272708519108275157667053886480716307739003230880324855609162060284286787670846551866170295690531238514077360238396534826977331000946086661873673478660908071419059158687698208980050605215713851914037061669235585297756821977806167684484397551810519656574943468501436335601573222314723422450642230154571881356512845378911816208029945165295734368102814783270659765197546454590567557478588074737386477328523289687072195673443000911877632388308179584068771625841086187845780126444632656045917871535262940332994889940948094905403176059648759628853071117935488211205246300561289238671740566833854272667635550328377091076804974988486000705156209614966633999740795304356220518793630508199001779480067672855208385192241720426153593028808346966229491023240159447407820128762649369823697385155601539679589452889168388690986074988766263242216693407080313013183900755891176359938456638638205403490911348377949535325734920382427138599645124723217029828203575230096462102640054068302174937906784382999551312319497263406520097948473322667770433015215111910456269667590165056517754227934843516561360978981763917973448297893688103167158346280978310841577519811579030520185018874730107179178281203448287657033147391820912193778165779728396391338110064689553950337819810443837834632791330191688804603209799632415991166991965814712984664502647045199416685463118088237480430440835457491598806231093729646451769735814510772952944200482260200838344057710202500448871895986961999594042493540650371271271338741364052932092643512474073890430226248043335617737131926878554260790848323072630183792478926880818610910251926326042238384979701680898135123292288992624318764668874535069539908033582039622412870294181896569999746045522846383818297570321792685372706515528368879069288909296599921042051731619360242568259067369779755007073665345976460426762934104783466925800045313280163261646561747827195209974744841802060434789058742846546047729417175422560391986042977378626441066617227666892341357293541995357159381513836608423662554865745121438111652930971500766711426088667330608888411260507549965694700928290643077028616486573323048066798762499828505405963449908187773809195328637760974448580583614464800402875290745963891340596583604714574906782476544045711830287571032825788943821163009458340081756430315307982659883273607665281498855529062708376402974840895219938516989834957370593173242652695421254862036876512966529396137983044710544965966009078345638669622450477182724029928601572872017713056133577572091959125702797983055354087088210384881246943605923906695178558847140337258044946031014875099701335504673177046250270393933209110904668915267519007688949134335713737315747455481169676848234187661262470567537489329844445163831250703409288439474195453547197451045669759653093462324045249902596601970457904070114701373570094603686772584867144277266239875784602177981696807181124323930344370293774254963166708033111553276176428297626891499470225199960133555677010652364755835157819154987309232152644798068196069214594622049087931004643407951947080052508907451779979586757181960650580069764672894709778103535015350779865128015784780472280805727429660199706085545150441946169173736469195082537062369833469949453417797846745397965684182383627774892866507248190077711785931705962611159127281602611711809894755776752472068115221386375315529009121144911295277102303585053127029715176033341936325551631655852870151021035659032409448874699204817835432115036936801633096282169249899020678622605316020997012996853317093964479514737929408473355636181423064829544479452933681139366084249155477915722555197936687024413324293628567966647637574719655953292286861079792863037039403900340032503201830018934695272852153241044233581535035427145637459060833802854348117308689118299535410810953174326832073712737754931954970352662389677557137218124672697972153984447025184607797311762659586687554254972574328808184344471457092773122019483478336893616312821449694253596580385773160349982441056243836403583471968805488365823566218644810769222762186422100347850778562418559002434547809617667649846096786448838758192394516271832574779636335173538144883261835047071871157356932157336327873432223444479791328032676903040023836593337170118609592253175677064808086224080146802670549672676442393019648226499183237022177188509234472900279474131726544160779335648612326575996023834664735335227931884140361235740411369404873889987575497087968986056080348486110924741355515009245670951572321234506664795157393118007379197381781236866912197161093512017461560437131649477044667741622866998769856911129494620224140060240248749913098398413472090387979057293903552379974696566095487064148084010192894988919675348967183710538850135523571533415461394641785100585191152542948697106109231559547862588399462415986667620503114645942226919658907556950733628373451126627882198016951706705426029317028722391095565480034584255769845149510300146722501275845990397595953428646011739215399931294944613913422885451674203241986788502192043038594324800718715948961553124028689961462499803287058734207350479729678366882656209166860324634176871855143031255696797446597096780154349384992745934388336218287602483108595596053619427422466969374680061186292681635148815949265389920678133955516217886683649544249720845335400215988556712423059416316985065270308749644092161800042759139547070868521084800960275471515740020524167985674824893774226174817443645421738431656224206871867313005271495778081751822922448865181657620409285343080471456963570373479954028711772495735501141917345675536264885960764464928472993422128474016935681349408298170387119017687784750871136992201628704474718383004340861858137276998647038916289288156554385836246848079622440130306051603549139590018457529165217519923607068518733122720063990702512596856876318744962671113347768613695224647738329209545789414652061890392342988376013544414606435722656609796947481244066172731163107309378727241666786740254477140769402565369814349907966961565396127384559460934099475087127054411731486207589641134917594233764916443830453238578346899808577251280970699070113250832367339288066551305992293117233204398204420204363415209883760166456328310284204154292225582725520236667093586516094853847727938902983535948720985910417985663533634831375013896734958583783026486710852180010936413904784723598234153735614014330514350994845123981825667036611155092361648231824539856682093989747143665700217049432412058245158813892973450648390235627892460411108759364966746923908629705715622210572446030194660166468845866219423758433518809033223439217179239798487256663164126701702390387623633065948758211541808417549162530106102115316014367659567376275628438029427316540041737012325316807838017515045609887786277392313625596404424614066656597011827340253997383305425642574056509914499869275688511817208433988879942390993467635148837036453816110079283567600870470497205269784859508292770924846885312208344231498924102082039578521449511889373823478550996451242722569688759436857624760221908298080524255007219184366629435310445121327553417730765143736044785124878049490249086862135818723205525839901510233781145387108652413837649111770175711564256784866612644230301673304207086132903720784762194548593380292843800584810096264608880959156200884924953808065764698008099740520343828689436597409874289829758644070790746958536401445854051615615841908297125721611255215159417524039111883417063079702029724170916782691396059600785558271116853253045553720215865769884246888707033917532906706855281959080022554151770679373965226532687604394074179642244280526505027041855699621459199983239990628988279398851796582384531240182657335487361274762159818212560637134886627730293570920363103330858278392975819362770720702904524690827669882492798020401836303187405279641814680268964580275153714943968400388083667896223788740872690180440913540941776247198108229487803201746680169830655942036149732783548387616828553983787351606239520800994494393499273357662813760821869972797846956400972318406008782460304622390010642805019940660354378934882542190654110872493838069398313801090164014168208330869088613654140423072030719976013164749319040858921393104212905779989182948111487940062775201313771525087753092561871900422038073508726627131376329699932363598642448348459760950653588805802977141480471163844690011199286732777317977565231635144013561779310190855050094768233131818104881825197587241979135701236452702843647491383766689483542429133032415850545901622343072794631231315804250292449324642181236459502001520308156826222242218438695341281043944584938074076124951760555388978271239216695870463579975729820908459782648448058923629217194985238239280469452609374981538284899473388957462816007361625885815123904725515789966266621251956134840620329400757274132197881334933229857661786138092776926922309817161813543276912847202276953306635142151718920905792075946996691421634294006553529698031336584753260437625874028088693426430978757040461379331953220429136851852636702725513566399879525447694295722332533207987375270614370647292291833983603970071865582241421368976256850481566596602810878545514676466784095234556373551305269118392698630763494370323708232613783891654463956787561296233214663417874432203664041809820434207672513750021277427630206321590055110139185354211735503011850997267046302747232682776342180639387735502842537786234125886965111876059007852902904516540146739424193683658776262176899106402645619724553062180133405659129335269219006249800727436619948752256221567003844922110779642191196848580579240925876793226598959384607407727302641025867328111890736909200572122669377038391083971007592387500424803259537669786024447854897037914566646850093546463008737783772500636088059511399693155922345348900767628921921293199837058523254176117747723551806126871787381084764168045449063137943292461714006365789892326490658820115638237225370171977932591138388763041895840144744716612263573862343259802440890035650126069351179924750795642947668896639904983195306764086694034821310862701661473692100608820419418887217401771132065359263206743998627181280009503777530566667576678059913656934278992512662152113776414502373002500518868753296609810134454931643681800599393475532985545930399611430209562508037085287472330900424611641929882307011837506274641605036095563873603127969223021778620727902592686117685315919124163967638717223559037000798867458206232020178754263043780165915474797349903403288451768168916626905989789425277961312200111089010446034585932607598411130301543050761004850234425930439739069688127919797868528438042827423428928492830474302605497158703094890528091868588655342711094640452558029144832435979630974036569296281444944931887762058314697860499035708960603324619616719143398306239484713242194315761286123415055049446618913987131496484343676632690786599605002240953115580370547925043754300586690135050766811831904408719195170895124728072144219004583597053749293391155630866101540582378288135110694280864445650270414919127704359220127682358463302278811592774676200980738561516302143740195017945811851504166597078924511299541698970036120446127601484615015461492361341114622977736736791368245702361716321745943900635277208869671776753951691463317497601128955250983333398200428278824303901551963861720390653283923689470793375979067692531390768394304862060957620098489361074651456648102263561805900153648524439543315936290093151612782048799051238441786888019577853730641860708964141159574597937849174752633173930305224360082975748123226047247997899735775939343893278056839017685064679058535270806263419435797055887805179645439575389785249828691683035798451550508668148305841424510974263658424237483596441443582795406194008700055454928621372310080582710362840976900657459815323947627892624919652118788086075736487308389380539830770482632131513179740953185435255802411853665034246358042935076369621164149655554769764235649514809259591531342518533917244062431408380315488066758098119008440968030615858252464234054947231457830982244985989318968967229728954574280184552797908599209618541874155555050321474411853584666118988544623474961681105154147891490775944539341630919513327739523978486355186751086974591483316545498834492141981864365609293134462438448888502021123090901350238497324624478187078634214406800359996899777428833902710478382167726217351024740500310365496125268679756657634388465784795145895720375983474253513690617675407172865610739429172134553715332239393694066605917353876377988432142498290812449134371869737216693788679064833597803832111112703089186987560055087762471367936125938827008262467648733626938835122458511228670719539717759485603666504325882344066314585945347224942801351400616987263878220517609747133343390988718519080507978097671789324194417431021008665612839937087360351486494596012546042363409225093543040045978311281262378395063330196495912698374538234982644568101447767947214512052956640850108763118979814165986061701174292231393268778160168505401317865894263598226539856035403755143428825703631876104206716605230773740717651840520789081875720501143912988385384506581227726082829236312537623040571986433346781284197338162550791491697055594550288210004968624107878260453589379570631827847270075011121359883419459538151231943480531870873783258340513457548874016693186507306719094915985613867138120728976210820663152979997190320742121316098904600666647444026492700275313281752404460603656633461879229461542723664879546110395625103091291824230202121356118574799699315857100880168582270812435468883529168808999485539426316258797356834086081965453860243178705811575368041046956834938252914511990681867004843623801399680553842703414676921861514485334775904944613831499289624843698028330272034131633460506520261419180105807163906064489078574134169608354520540681668407740561816193342528120108584839591347025132780035278633216268033059059982038424112204558677084160054582714319222365003299523404128986526862390453755653055307359836426530192432831557801820470946896271745346538987988616559878577969421072699961284074359975982312625839486122395129275228987431500625935620018588693146484310562959719668823245868548060689692433331699783494730697364979698923168709228015615366920580369513138034514084358696098322445621310352566794144488118315574048740024574887036175339295228054260082185590219841114241656373349459809629179974227973985156153214505968298111178734129820360432538678867952819199955855441852142772062553769334289841742976656971339685593815547733612244255476072068090868416511838524431853909731976715398100704986443563128652346290317803163002659003720332891629148244686533213726004062082042473382390120006317973998231841448235752733002024407693863981812250743203779801821880691445712207910829059673315838295000427918952421203926736242672144508943762050056221673781699966803471628063234683449120165965428765440849501395604634999389516189152526017611752138478750208657800462291214253427805407433053314347278727452418640800961097374663291162759728112323517466244774020970633002110990200599807327377490062157051152797448619644516560497617191027929464707983324558470929579938663057978808385385013151465329371728584292364318247298278199896020782657276615385516613916259395937846796390269573212718211716261499412167897238677490304863682759850311465748874376314239523585795491106617092127842420021511644097120422808257028541454030337334867661640315419405064077818870207066698416747933108100964059211141169904829145123093612298806610222327923976082883864247315433387251514188005468833179515075027451563337165544590160866101904527893699258841387073212832595089717198766577653541445964204626015637407163799158833009830388386605718993614439617621416442396332392801685229481665307073196661215161783081341898827812532939949246970647782161069406367551353321676711584801534398287367111924858188573014876867861815496503630789377406658549548370141420503342650854069698773934010315348610363437534474093087990180545216840547691196678460876854595486989650031741200514286957944117554726988326359115124118355398786482514105109824777104452904625894874820978529358000910158795763646971675480307374336063495935645482997729692307877760870846367910379458924007949160372801948583269115882722769645714443241114920038115624266179757316068990128749879714412022201681651471043670968468606006401500477734795524174653129134074521473377950659513147888248778883787313916068311333429123022985426008116444122601809934120178062695631713025817469710921138883022528344960433970333751888324851415844675236957337713617221735520479856469737571908958413552955799721945084194953134861661853940641261305450489254660861567347273848070136564916819318455510189648847952105407034131841612343811076299294088816449169868757016821123129169185836175678543521813847571184846039177428189537964359359090641764621411884579349041724424352364390643564627426105651576216631609289219953316795171251959576082991923507056431569126129386064218575839644570605507429217198119892120775404431266378261852851160429201359181529433688917674035888765581139906794942812144414732006421927242057783701501189067119452346526800816281670384872798904824998636861100141054671968915494351111844237344786064937588293615181547589894360532117859675734730246505645877437440043469368147732377588205827158712516216063739785156649291123499947528785079113889275009768373678918311196747063324142835840061979433469887115924654106911447460011990410163433148478801980915077430687592086294790601408304009856702412646501984167399912341382406205284087258334270061626863672599256659152607913483520005212261170829537307349753254157974918618638861331334063545638709651211832245564281714161571954534361331744089341027847520784069041509228889120252962959043314437853605632415735585220282269002949840768099999268458673064719864536955633369306599722654035230541584551248712362690371452642312146837049622247340555834765470830612154092076655796063546176046948530466142183734457668486884377177020073307312047758877993786096108158957174652986716273398373209816756556414710024784779642085734839881458340145703084746973684127814561850442903249049285967477777087359418426284794155643999982606440073418631341547974772521554107139543238645930711476092724495018006705844000448594370345101748651355840711033939206092337604854778800699504501375753074313266882564940423857813065631737800969022005601216390845598770202012556499158829423303063371030289872568419912519557913048290014700250438262946581175313572843050072061867502090204626807085847491886191495541787437730745857844645761425375134936311100365680005106057334566638739522444544833615855581874594565266000709530535397093751365210095069141321515527856091519713067534926101321237488387514101384851165788776871388411919811177423508720422760319392299122566432477639104790476548371933238151249336536535241651927418349133132635673203126589397528676262016009456937843212886721344938518634641505753568836087536743493649798787952694994983025800108168716871902645032683850606088712399673807231129981098046748815268346423689575089494442029638624686981346800282136964648052794348618728389593430172600188792155838000774420283480399666851199365894397447942337980110641399734443138491610047740882668726758792041636214328629591297530568736009719496091754631121219738593286391004032373108254120320062617635537041065885511655946986651187713333520009754274371225283533223906375700265033058541670932173518338067598327696906346924930293033228298867257536819677309078405661403329125681509745129700331044047399301223365547227711385373447723748696483214645151431069431478142567216298081893625008116349455145442376572984604489941507141954877258404460744557570723714349812633429661569479491331899685492288748825837487434662448719388756145579781109514498081289771241196433867913413198897492881264712430557536316625278696893664389521958884926750703200307466091248666102600340438752215806440384468861695334603381236067132476938065856557489009887965205670991098660048781950288509672408244269364973031363175897412580590766736680356200084994540730002899190476379728321332782136343340073775238470366423704993033434330171065190630460420772431070087841374542220335426758872733540990060988887009400201332770112222704894496321477149507672330041171368745825385680213395613291009789213659861595618849945851683433749386811456028216310568929959875001520747844800546227525204303578001144332343320343906695690463167814774637260830525599959002302321652535241104044634881636046174093678092050362391336056817522242842059720543766773557251942457324715396892430696641146469062763265085749910735940215611272455150198984383708245537413599380228439003491763146373582977304060138279144406715326861593869225153733359514805228996341470561166136244591984518387597386355621864742248532606140761404885430779239886415037799087285974712123185764150932357279013471993160748720837424073007379094532465825347643600179807144983570170017696881462684670757457807068440032961993301457937824442156044366061575495466628929641766304970802225752901585515560204484116559604754086965098598243619180018793033820793258156376708084658068272714719682060756383600452493428620377480580177366936711741562556150950210511137291452240415927579016267885596063610056343513459696745205551028357696030643327608110530411164031241022681391766734841018095427111803413097798515604989222231165406575645415874280407676900040069140227954372483573023609332436288516095668626617720897992938119795402966622581267329043283158627590612110305379336519480841919803395024685689944728642505038145301725045558198316401072590108570670885749081695759901526794532073402886727910499996048480676219038187404121365478270375089716605075459984748379707602080172968501689034996943611522049830992546258631166542329163101160570673965084213398162549337267666733978860420249821128049511628349091575130662910887408627558379175653541341258159706528122002835132842816603810969918899745685967977022888367673589240950616066333010175234927167994272769959075735122918665296256110981859311311897471846643097038760682934668575775574828735164475725564773936579604228162411482081734227682208343341598598749744961641326102950887591573847092181200777742996384167114498611883156462223695323902611393984817293555390194190038921332532430502038034765868589866733497632037128094877520518382928965619170780419595638047880885136827628571805082080563559200567149236480953243788895307341060432574087447002738578252476758567475486129428779388353611750115031048520790246121287433271032918446778146400740513243972863539479410217552829736159021003223681713696938459427208866431298170461589468197915528109197389883256188156236412889354089792532657917584710528647692483253286960436468071039196977620563720848590003233745888553082829371826716596040976789591691331118724501721672038503317147705540546675295779965223132496353795524408268009239547882390489482706518685835445366835670989706758720544966241900386679334238071672707213616475631926423335406456611075901071303100792579475639722727419112882171398102149461524899016411809548807715525539589384814870025860249451029082742936271651041327514196785532077109338207089527031185222909771749936855708144035682149048702380983650715933298946235657501502000063335250738444716058763715707348975769558832474675454116852744097454480155738206064644942036665235357123238760416272494674246409981959249576339482344143891072983309237681225062773291330032580960120796236828900347915222147983447098010234903308731423887875745944974086990398342281421740204298114677596216281656947811345878947640393076520661005316640221180536489310367058386424499539025764082300936737228003368515191511492834044037373552500944896878251387900702699596882816801278673421008791219482933807847854566814242194439332914896759672785022919679772109324516017755611886364738338434569514725204005264596192042599963582561610270291984640831109567257434738059402774585885910813904801282731050564601812421146306424963959072950463403750342013390312670061847029418989404743275750701331303361789740614208399000751103376682080722304341730165800352463667527935024777722744512052972077837247369495936724176845061012147893136382118007258943635700297241095762068978335777075218613724691867456049983298376969600712949848579178793795665639364522674277587574806637306940288956692367672809629221210979468101194405608078695976662272978663468177226282626580310926991818301261768770445382534154864750556623669679046831048083596899305072766045569442898720666458048250839070608869080841277477040676715218835701710114974048045315556469233730257585280754315665420980770425155038103780593760681907929486594673904171504827254856717442123107440381425434128071213499456934794227973756326361851173667764441561874682575059751465333956783406789558871880958913017090337041880028244915841120105080586143730449687957808729230677717741761975866619105086337189405433050185368162781739090379673277170696576376462673399119721430053494264787329560749848729189145161705097114274260957307971548083492862834505578827615457169138798417098917720181714334049408326026300298092119261725791950637127259175607072895858886007615029382449197298001256720531630950495089790669571676303615780096737967867428063817849266265151834015093426631231127222220908416963378836529979202535418757517469505216100266007483122258251730695662097587134100432557403306153244173691475423587875970435215472552335746685839963819776520642331328064922674298369768054122769709816950326457280032376331827517980867009981256054965132428626382730253165176536401192785223651545668534544063404251347167025016214768819767928761619730612666748259712423717936182067784776950230452481133358768062679136047297921602828512631652201390895742113963273128461310859778557156721090530379462897080336870523480458782153820925757237084687989638436915883071500645458797705739970882195252129417844002355183176778186588307071145020249969203123052661248343426273494710461709848538032465881203575234772850732925008276352571558233889959594239742529422159528928065429197434196563748697070558523624181416987747542930748250142778128324668601473939976009108573763584867003919499573887831130085583381264151929466626501047045821824482210743531410059303849234808306134227830062759479662484432873000286228288687869447718785796688389088575760015037961438205536087387807018832703349774264210879317063283437325040204434736073126664812396787067072162592242019030925768712044801089650299352155851745741674812655953845344899878816392076268441841083252815962487455532404893674837614168236942909824697000286180964749991487317864102242619666628873187974799132461769152579413239019544202244699251646573076876926002178497879219701478286260647845652249975483289681211408698125659731076021335991534027686508970661786226991759704139894881535565492235879407582201251901702204650712579363859011402750629498720619358924263213387941655432300459113106610223604999244027221064703249544820003302823438895495727655425913141778590159753660709122105597002045407440722122405402947440658568291002390502511768799489198697928026308360408103145419544128165646028810057817370530020810353679197014041767669823905731857833306307545993852059591533095484838868390430352435904026872907041289807441357997633367333435901145528407300148054832126312518650157411019174920271281531729961479530506563055876190888890749134844618407958432410813213867891494016206201362433094757087873428061270172414620768468937505633093244250680034155880553360192109823942570182357978370167853578255562943679846717924741840358315532323319385803358378965387586944653323912185548377671309110455346580786763399394909079249921205525440094216896606557597667225684091902664015958551875971473898692843867895615182169831497026437069405369484764565580496327656118411675501384927122744361354618083207777259532266145220041016671735265177270620478386575126432070984417811594603591366680095951960010090283534647959462753278271181798097145403968512177352420727562591664416466904434362890096700739390851735473563557309062663359571155080512534751667484627620654113133442417720965786281827677979577089644093429859301424931441361830616697568161925609171171780441084767472276149114434733305677848739141089902930771808860860520049125665004085849245421528118378550860974454922868526073214685233233077355927382571852219441383542948891281231048083218168759735973880110201911557397267669513767147889093985853664155252447158864633139063573579827754652133446879928049203584783118699941056418723667408121033496632797830096091131357894117508405168011467067488896763784016039255521333669181382494687378572952645392054449865877420730359858848623199903075429898703282439132353585781252000711939280428957730197427672659780099622435104093397153289253965026357514970970758800974883900355805237035544181865577704531334234432707831430473554118628542939522771829565907411377229001018990991777053279333121593149121493247262346714504472549779709329668248674678923873245803729456952845582156198646259468462184725322847500673465742683410667852152113053391696515212040943605948596541872026708401705150918505056537140735265915862048473889529145234015573870525471929182245403087557211812370893988931005505557334988918855851269824360006996287803498295215394757630624803033208355764276831335494549806127675348122773197121067130900843953126809527135775797047352461173866233897749909481923013842322619518898376560307117070334493446665038653396186075258406692593933635447347681286365363032952364205493386418806104362226244266113882651088152084926509849475776846023504398806132123619871371981522681028375095409627494125263231657153247594518319349364880714955817349990263223747094931856202561370523043550732086891961807303547914225992190822306587071302192654028377261008397285827615534706881689110859712537427093902906761929697154984504638438364500739124817777036244843351538915375166351260511547154328222013607076238182454055739157941565522865349657783657470303996864740398529654911265215658111206616929718590034648772280969132723419526470702151178916877661161287252372791619030177135121387517222473542059784277277750132740331366793264528645610704117478915717562095440795808264212760648823693900733014925250301520370568780063988115897186245939378612221201971058851816413888864570946243773811344289000179661215286153360539595277716588400352064003605874211726852844172775144101029616659352761517093027612342015262254462106412054258185587502734549186614335036793391107125888913637932275595292215112011302076590457438990501640225982934048436539755128109324611492871598814808251026842935589133855693966646272455907139373591410320765218946965703329314268887499560799804225164430706754747044986924732535070160596647996014858258614270402450187863805099056275993872199908147317002754554045019533408031878598715665427764034203940736287334385234260283201537072417880144252078361420403206650462554439451444994496583425110446675345741783258947571867847149037463138664845889843010744270675369852697099486538008553723297061046503427277801188265645654731097765192239306836619491279739176144306206324346363204268027198417774756753971946267576251904929927554617164498290761376979806504193576865665212766788812622445197475150934949181347709984328323505366636745335211834653230725923769972711625608059991969513395138167077607949182727617514846863043544575971367781885713932631408639198394328553194511695519548611038907802950573864772506473873062168402756337943041898272194682643815759345584101791876023937318300415389940710730474213888712275585676827933349406162816566947944257530391106620627273614426696924922172146915578299939550500840722034472895745157850374646765658234308466240268301403146972095475043902124228763527578196188445299357687351541785412615317865557091460874196344847048432814532540997385635369691180041598462372250612281068110482109064821784219989526026027066080068778515340654778898092996775528931493849950890884216561240215297249935875297460477329892641669741027156919330253672615622404568538325959135341512077353075550176015439988056821485733431981436240235937055327024258866093628738770048472647816792961110654401926660604197986115178252056644374408507224683413693771919087814331109077055690884461607922083771276312420325814601003665914018626845830874071414666065543530035246233723351921281744763813352081359361854768308591591978156419619285565910668451010413734623629634679839796401467008069731371116309351792835644949374681935165685444692768034726249492772459618463094915501054571833454310478959004892271336100244991576531438190612424633673414962751455256345708397928473885275614947549799923558511813668516603654139322363667962016993912384147240096951319997396015585495445003276961931154253590645011784834320249494967716892946112365897530879188751041891211715615901029364583467637830834744856074817019702439340493849754314239474211957863916720398131633871801540189962788793654457617190035081152873740804247576594054170464339747111430250181085091405093129464402463888064266587328355307226188060644964935650133944961603979704130637168118373047412942266879575695429909253820943378443948969508102597067851931256507046806851701758289972705258317914836178727965783940850858629170970331824292191116979100555328621000697880411626296987343632676688773831127616584268249371906808904338636044617416991803645677117967310706917989067944301547363290480137190013323583442744997992871663210717303068647827580079325257291080621907220453123856604318752685318096895070317834315273056229492214413441985554775476485364455134160027775256192447642438775989474164803492750926572259522041604189580506841239311342024578624375379500975176865059727719090630027802102651766829624172294198977874399907696439891100749542219214648040402964454280279306565311474298641273335861772264228513489435590277331037564783666435067478239856528981312945657940164305345343945099886401090702701100762672747595859891812837777250269683106705070553103575725895640198289137823476045145251575588842332108805638891905539098366888179074120593428414692168386314111403220403349031502637969913240608623671813185740160888836973607141538429674655328340722147278463912606480709447376481348582416502044785652034338676391256205225873641926008726083766383395160317957994053677252077647166104968904240175199258372348612162921943264112853138038361057482305563852843205928401818090917546457162145707436278000373211272660560996553410567430600939452605426187191629458117550557536619174532514669070117199632637404743008435151251014325372861022241196555811178303542299124829664564595247021505604094564808656795849612266147278084894617698558087965903126772649405579233076663641085131206402708890777205780842855588997435927664044802404692158972526217451074617217064232752776171687869778579955103531718591142557887220816103417436253449727045152859077820488673062870992922676101922817445586270358554062782812197979351165772535798252790189981720385223015017361041472952569558773054241129681761844024886193478172738882510218067178269649780439288246808483128278166078013778981072111147114726573198473787822657409814020678732502298527126383189600216030405802570012663503990140739705802190800621175511883881341922361603665840560296738953240112062590085939774200016488169613044593636266277390182966836543859437005423947598501685269074319869091947195104436755554030904496438450678175896449088667311569843899618757733937100385331559691198587936923513561828190171870488458711988708310721495951017445484412995213062654308323744117526999181570481818879187389375183002622805641193998821753697490064155955025829896250607771307190641756241279432554240562474342594777420282642822162550277856848895245719953190712056466656658258444926580257921925947919128313074666632673752996499759563105538149776467899775094849314637410112233271495046692882073977539038340945250190662056599368738568862286444540019574592657630503753035094398377852187027448006921865498534138247478506155813083740786803452389243598836944289321621991131349116375392111827009999201298961050371354554016447068538647921200225587877489605085779118114531926984006887727418305955073243318671448393398716577710824761759657955996461271906825786650090266676277028685214420598522034624609646645640210500660254486477553428715957233449391349140114930169730207093767664176576123663775077733346037960732024460115045634627146577571951150017541463725182608386803575568139775138540269372303266388751187555167642121880103347455206146644570536557286936272224726611993040676370818545849485335307455448079276264821169273541558628960222914184346732123756185254350244634952061315864289035641803675936785565937861107763533952252300214685823739111221666137458778769776795373943337927406274799353981833755425051294632428580488186516500156612737861224437547959984673660287345827267662001996151330548520098809970457244730537215092431791910344965244772134872035030219029306448503159789056501617456245269742927968766856567939999467164746598943099349585887156450842437913364859640875959135756838951158422359252872591501247717880277637683792119372573170373627646358858628679552961396280544484405187053781610823951199784549824018714847383676338765008488880054019040990181055365438824477059106764868943784875710195150621145600476950121229696148587571669235927744960140334431285433515141898364588585040433130522517284365466160086418517339127318016060561086987084002915968998608116059546003643833367015733495044210531119933665526996564277927209021373472101522674105229316449375699175222946771438662131271478131345933668885094123185033779669180275993817682218229325792120569876996426335183221307797171583602857869506719608223868453791826413753154462080436477474408055161372818743536875558846974308454023315889289929587967571329494456518038427393413393871405322707404475455509202835460555525826100533006844655034716020962766690674535884194049545205428519559093662316063284140557808124379994840409974600111988960235472955428972934669985409108701347736472426728197964373256010458629215022283766193404789174474117635989541072145664724756718867512042907898594783872173141758892244186806801952137916488631792162501151569883614014497340209080004403613303966333995262056583256088349076418416087476605284743446568534472731715683360333209273529266590980743729634565495344245213111482718648345838246959822386257020523994574739295425286304402483572754942778639257845424923792006798798174347932665565754018458901152601685059618871049888275719605591668035844069354135871745975391306207596012500117576693806652498281682545386233277649104189498216559648253001640214201079257428797765210967776537473314482085677527467281159041804849429276790838951617947952692511205037567028665801261202339853198752163319596172858448137040979830012544549362617739113674274967310832018471233413770554161085232443417051429011843156031020468011847130851789414700635391349233800518889624445868708274237465930066706842922113801647792356606432329743783909915283183352254253158125050138633029554774663615242586656298852536553312878780723902026700959471398271598256297879978395390992884324422678386997715621468757823333032743728497305317339049065419571141282438820625648125778200302235149131846941397684397115007340783068683417478312934911820227472218088534987344973587848891928535626744017831988747937823633248050929817020195644519980505842671947272985980341671480916663317942330983596449624772475695561690547274900349208947732320633457809307052932100495613944875967992101520173977482778154661430219477368525636511400682164113054701641819430052325303643449142822885560845414370937665448434731564762801614671138732584722661825219260549391393001674166012506781313740868582792361004186863520451734322579821152224439152696645893967035091575893460996621790641974167223572450784328814772412189340787807095012593549924135072055748143179120896393765463361176323531655486093684609562048000453738167803595736805845206674269416354198207723053106458182637568789313818796783211267382987393555297482375361182881380209894065666040269222176418576371112455639180369375038844591146419232517822608258375011168089843366265349299595652578427397973716405331712503756086886448841611472797847947968386478214168535926617099088646921729268486883268471212341855770716220665089217480661101923666920558059354016213095193943200674546026086779073158167792304826451498055305797674974975618742223935286863735505573100106484038886563137099978341715062061784913827759886628471612985359351566617872560847869359613858969566661213731915476185085351481977254559985211822089632966163432335190411620870936774344877177061503982419688844003893250543802878784234705039241830630041068432986058197401620953768857700915645328303212714943095834940249490234212515188030783589209284025847462366750621546442494517612235263856372863842017293344625577804557053390855273866733928060507764561773972984206995449900073201274036998074089289020000920536520174795443819804024048851053849748629426894500671628136431689492788989838305792449020383234076240406827931712477221302521989101295915651536112959498591540752831980195173200603989200943580217080236205763209907984025414932360301473412793559628767893582534400793935266898780585354580155130804882503894461338968011053086366292107107788103549349863963861128301940865537757279954559063688670757801605073679546671140851507584793093011102313184791780326919139116033978829781746035647677797029743415312787997181764732750205553474410165965888149152483068709260146859127886118245280767204575105906986380531263079411520972468923701277035951012608010056209151351103425983167369263162305835625288395655539773588729791074944001072285471785998606480909150892576413994469177462169018462211097997742117980463878076670737968392273795770875539797380679814619294038293556848313106059766418301064485602607754691653357494207976034497306103513319052239783415153173653481244002860908360920587096934484224570284541020949781383745153740777623367606712100723839775162086645118841556337865186584926211711613185994316270327667246948082704816061558273009718489599465903789587133678063405389406854748022913104253477836431139546278743001917617086466853625227409025859466109275876604556987372574548535714722697328322844966597746785628175849297650469144790114596217063177881054224851639109032650869202295345227983148894548740392272744127310753314344944096117728233319318401676990740937744367956377185252844846138352161780130570808731450131936741108568545498322429343822486667332063474802493353083609714772779695741787682923839161017115084450480971293206141920712129421509513225206756036146101644735119345311516622041314563116651397505949316972422944037226464812867517217301971726057439159614812244284392534263996132260648241651323382770874383635332070108103166534985869290968828869627579265938877872888944375897734169215023391955016443835304932806540011279736898654935563657666321772164252837467796148732328264310395745033571992801458701969693538642339715701498153400090967083028511996332734329533193300756685370511331776002022875683355009300848956644276904231561462637265864615183375160940639908150942657110966530018925725669077052176135656074363735763406101950309642995987528905613318980313011522553303768356615415527110434217107088580321811853766836067301080174012101375860470062681947611978209404980008864408342419074480699316336959189051860645245520635548025761227125775589700088297997839463119052494246119412303558477992125684617411905756570542988757436281873047317948941590732899298704498863551957261809498400548976973110411582138693098795322438427088157469949704978424405669335833380317966454577329009590368731919114776643774699294174004962584410101873413951808931475173128970679364727383044527783506001545784543101132638326451043420214426565029575399862757828849958128304709300597183328244634518847924190836417605490875132735111094791616819265425390896619344103033581460287863155301183802639235995651661787422500830547448468269828427088132912261548760198000370357747524528088463409310458947394311074647164400638994462564422039549558995252797364402846945007354689837721950867841354792259574925236558375884154597709925257469905000197643464602572862499964242309261101211092990543720504431981259404403952969789311874154323890359841140117091303507657954932283229307325582820548536756224334429355826036135414283302118518452052721092452303429658874163004031444184062292452282161181246400994281135745266149728462078374707872784492008691718675085695216654069311072863359000103886721406434509683807035363989209175155028586147202975572512530214933479014954223103938604133295499403877306136585313115733883284204361789770158050797190769701295110242181473316800769942136869804907542925244908344782432747325865460869907402524892931074704336544881298140919755483066700150576745318168154788990442577894147763893057123565198639851285850953806432757252666212082547942655008032523555632072511698908450750078386533053200105995021207835002727164595610632547307281931782124742527154463933526553346809234685157032783229291649490746487517280766799900263165627808703719863466896409969526945874602209258953076472629226908212873121274057055460740587600062565627852084565622783038367633195403620247439951313866202253428942480166372676917705928455332521624094051217119004208836220477102279015486677130750114618987589215096814999352888455170507395360338911143069977545364891092146991253437183804561578169565702571839821909296949567008382365278627592601282898501660077034810262769830456445821845260456956606742173135229900548006041042785791391471160785624176463129487185925259525263146214369527395182617070521509950012538435289792243514849490490253790122436330437149058482925814595840355971186436160102588973685728418494896670573876440091593240065473492594416890229599870968127177933793485726049072123518642063079092374861946951655115457781854954800385260799704472829560094890448152680995773183833138521857958054052760273197470058178031736795944155433219054473331692884432792148631850978624254470902955237004397432407778390134236771507688409836481373468489333604385228445059632053542197723153680430767572046714770859223187984388187212144935650523699899917456607059592052086917206476295539858765627281747076631529091032295933413959528424369231015648450345208582755008349408525355126723946763561774404617868768390397508174802608086157117669913940690106895558088090715789105619037764993678892108344762753038457932909306243561974125504646010593241681842875326964184819327780276670352709854480114750916784217686974485208814115210722144510231584615250599634519457050779530288318880327515658663220088995992516879990624647698177705929101293835612262478519826286890998383064176634958642523881055817379501232725186663892559857970241340741841504969701910352462883770065163976266984732289742439053941199655487219831689547880337860468521675026427385286897436700944825131101731810724802056194382412447419783327001070925030207018855816301889012311492250409507338060773337701456371067783686259999622159992417144858983706138517413049387188933120824444907731761710455568393021952540745052622105192418708960786692687121670305313545851762035653151565428446726009363045835570596408210663363527161951099354246537408888654651041397745013600358403517994619336314296640454212923136751648480084637766742577995603350372166441119389909699360320196667117464271610491981105479772653267031227363296096458874302172012323520163862709621156988787466857358222121853497399964306781090602469065368733620976674336893406329070806185689588981033449514833831966590297176828364085207114910285257654485039643152241405865901439183358162046933740832497960691441822463450835051495626714429134127918515309234510128058836086080644948108725894351405434100022910514311180810781598632518352806030452937950824240023407466043939459316625133161991148699620748827490263715544522336654279455569934570095648075043568015992219821294335486342486531726739452138764411042402629505090517114953254213699628249127113863723589243288900786974168536734940849476998471975453995405886876717757389562957409898601153366087844200833933243589655901946545675883378482858933971833899448763168912383114723609076531231491203859291313670435201946428199411555308828323260397663820091837748100434351626560488039057823690627256257773786674057858267950219481692201179908148335672414346769534542038509964168924668093062824655569957310602600185738734340665058185622979587508427004429524636549338911603126944351751959245965739761698901248575581876733656333797259934442535838891674488913759243414970065917698408203902616160943805987080991721659969639720983029235043816611374583683610202639944708509443402177696953740319807950212189177142267868076382683150882280766096109474811935064615940768344949988932969430780735699908106288566842745585857652896298611824648811763454312816263431691414264103930121269546832823194980606693104981892323780787742008453786011978254509824266650383416769265015459254751759026534230321574636669100044524950898337370305711332404402184885037718460904986143872582164061067101995295594873337271573320938491628646862348069650435514489229820508455815907974454044855662923853891860725712845106913588218239429835945651874365752754678962046994054617944498150111060566376019020840738569628519001286101249569941098100695927071955142720589846507847940158434575005639346314736905667969346830814117254361595850665260683089600082759057392029314013220839661171859450537480106315626266190188096319861690500500723795722442321181360307286811157125609526562663544723192547446281419364908810275812843220946970929253037299342831740092911480685992203687151208088009422984235788947498280242892617300538436368421359752262371835316503417534295716620347935730171448509081670503863519115246013085174213917784401868428466846507084968845280600848992462071036644915122902969233662612498801039669390565829839459293031470123495522860320963278695979814217001206436115356366581404476862996783502022408632906522809800445527428949653103647293151829755911604122983599880794160710766462565860662566772107369050698644073586459970330347944262556304292457871171800846064695774731434850922143322508945306508333081710164888516788947267132686515085229507083315777286930812520240012170501069237331206999434624007356045537053799847371827766665171210365498157727809351166973172228965619597435719866306368996495557471091204276392324914980545549075703612137694206738147017056652129274181086641840539681193644171662246278499428977569927603861500578269665470382010372508051783437581065580824560481737704205421042027984888200020565996111022002783512041696828116629886678023664758586907845475700726291906411425385007026785335464120928833610999375246009530054307998783701170327308203196505424714785006091683778769903716853713695647910968713417314222932202263569708747252096315229779026449383133315389118438826901188049559375406013451513549385794844176411452650580002212525701947697010887811597936548403651276834694269374642808388091016176349741967448646394554275614085581747202948394285260536716715237765708042847218556972057770815610007010152776588009824296735106989182692312665736273775687683487960213394307395154267437849990759302209407813596366868168379680648416428933933708735124785607335159489819499086531899802135210727873152487722746859087659151507874925793255674620353008181200492241833654087891992114674587747847650439706267225044696637052744956274978552592353441432196455135852369897914165455072863498746765269259652535127483949489645818221081646394552740584137646640848321658692417945128677048025060283681808509352330687199885863568092527077455919043175650821663208116141003540920680402738823070781908960783422647436832226878618392954906256323226921831024902837987192539347268810738628820744962388740572842283355571139320372148288000794786296391121122182668275450213078154081986374119085149922406934157740108575076744996568288960715930629053355224378614522876842458843866202065102220180214672781618692082991180228037499502712842962824954866778075606189829245218319770459128873171742399665876874214523021661243384227861278194013987884209560905572856863932723548629273311605374297712226340214753852093076384856998426245628124411202261860309755797393890533383353127857692656751269320276264984988020150040756518834709386987592891230655813627733223064167725314872298153317435556687882732219361882525434316336886023289101842613832045488586257753149803062254721599141384413727724835209465507439360887969450348737485439226500244194464149229044508975631663898431958507836402276063542948785989792627492771388409333135129129506072127764976410035115114181982972428264272001530429881488072109214335485755237523143585259904231696021861815029872548007083306703954748056023359203110607643894245624666158082159568431052769490297625702716645820004632967017629993211164181454949825355061391284005652755016943408875392975410868871538634205698717176381580043501455346727976085147647294224303602805149550954932300183806571058951799073840214902640166439233710298733264131732153314120386229814277810540092134403928106800525034212648688833289808256418886192295900120358565438151404546746690504811767276090992961281987919482615639017303354687862044872083939943411366171787512591459768650374104968025724752361943158548011121482695281271590230345432408999203490319542940596585048375465548154301846812746594013792968946044122680261184427458005588342322845825202261219987949711450475022545186596299929887932999253785919986002796909134666395765332916410089715797229142911758378987858886202135909066594559783433268715776101255590551858564399205671315300577726458386615531993143686709063257977381334058223532752541938664740827959967889180427721990083516130410276334611369373660252222096297033349088971155548068120420849462260085886070125144183918239800960276264558027814759028286803264388729040624281426713362566307033581668007227653986641019975862169233487730585911124640882321427653369255780671860421943584595429557581710475779310844174533655100411788911758786741021088786341075628373895829883710114657606592514116411219267806031800915853735746425341604132422199695823852702757205412877021053225638120240228890113703138380644315722859700818336572668457329083970550769531110405349960519866459622570849285080491648694046034714449562734762398784912613423566254068346768211592107391735291520067203341229574019437499966420813218286619869364946615796455841790650464343074170136812975928796979956356229842877063025484551859356583907727575646559546465996951917188014879926269830554280899888546264566652136834786087278179941762437033996577122854561077204867511513370932056028814531987198422140700208531927720583539639895045780057046293025658269718862079040329120162029542284773577336283176690781275425905829543135081882763059412862348186573269416856172696343863874284064822972530832464510165354003199025276408504117419004821227906099209741324391060308358256910154442103873410653487597644529064972075123933834601461276035572212520615069495473166594163945230534364511810195673268730070770657749385423764238804313687640038854931010819010206658784351952890831749360609836297372990816477769493379110351849031847979866880926929154953462270784439785650491458112472513015050113420204213347022543077107786339600393230436621942940840910183814647030849755634717761098028895384896390825238413072072337406597655906681035998440551584464818243668305553776573897594861115292056207570724499642762208821998590612862822577660739642339405721906728317021537962244706535467665713037514997644211167200243657342250319774643825827327835818346216034636237296753546640276368740576557774498069435286049826530181829772556358029811337258038999908697692865591219280639632390181733126235084503924546405601440976100139179012957580477252610292356878694483517185200128726579916529329024815179000863662701703011588345911442421864502174569658951668753827855596492833650255361415579830447919090284572772563875971392945045437868934344432645040352691609402187808277704873673387700076447348104379694864094293014564392606873512616893001922640798227244554254613111599375780198924909716124114970640351630057893824009247275727715732350553295197499462657403992245008272687482159557769352649528512366191356011930784605554829368256414028046396928786735861977024194708551192606310160131852377301782017454235673204052293560029706146448460352367504423323354115195633540588098998042845861087436771425010570045536745573574919442137572487452460076020474909947025538856526267536285444818440273566029388995904859010808173764763505573240709093712955517226153130521688826506062875669000225178199718828607210388342566282345490892068375490196274711634287206446634526446936455132686779309933478245933189016963659985067827089329798204804317659738004229364207250727862056035555431497095053476110596395268048575771778787214410173729948803970231132884660545911907737685442566358643832820803550677977558479066915242200090878639738901580026559624517180973044722866806022816517153342712342200465521792937841032462537551460893716017915541087417643542860564795123577055293784657451837646620173768236412247691873427138019480168220073300873011782219608964460800719515894519685176991891578829773036631396657758335766510104286425262979954858733701691369520975615487041500181827268408742661903481158321069368884432863083389283309903433855583012928445889929958859905126541691472968566584961295883866589636888459237300291230788862866361815627648679467961357300003116947737894827101738737091888829918877229703037058819833985383233545759517397696339698615444705946093948973099994347172865908119560578733599423189532053212253371649899127766470296120703203341348658351069724847159600014564265463685960734847737421236797718742305432326863231913193379886279964501220451105558794099580439461335568892946861657544240667387892292119317545736322645248962615779016270142019835412397776054413738025802281146718187088064832666489331320259384210581458205067612498826882263361133890808844652725626970549173351933787251309097742244602848567550253913567932362168099990236436353085268238958550338108738753836852596935229407874640577958430142765669188767337089875651686197319088266270463351603354877044510627893052779429980861601363229117379569827183475415037347915151037055300621589463363521906816996287875993021819417431436731769156806379705993552513355993834827307113537733613284725662997517950754545673614960421028262491466174159927401604133267035012414330388240625268799153012499655940321651695368312642227194975835186941563050657407499153567688608893624827318685981758883076615670750930128342039409750594907299946802092181296029955718365235348290309325090507235035937142048588985806558221698393111045486322722578794689367772885323365054340429754467520613750047743180308429420159138172135624449990740081455645699587390126989572834395658416323319373902041844512131078464729126804901862414849560769773607676922685366184625666799885651596396023533910984432171850562105084424515127616570774468940827527414127068027639843377985060036884459834593860469534715446699877934032559365551940558274798564470264047614075277600921057490063151915074617762432302571393830633030804770269539794691988349629734417080342295674200301128242991637499945570428045889018190217405042459394542632582928593622468029809047897817689943600437624400440959579682459559780631785044090788451403557852384889301395529203875835431148399985547343057712567728700147334030590341125997982303259252247955638922188525091288222982621631529266166551680592979611287542991476431093462740622851301414817703484387139010301350361783883069483389253494981080862783025511588217743144513115355838294114052446410377223658016029579206647845018175330143901140403223632189235069767406714853249243129375924242305644668490556885606847698476084068499468536455700961375931843975880970438248784740591559683209522543321840345798907365566302048183816621020077617207788519996185897163830942045359872573101487429763752071041929268434695129743194282196242637496172037076274024862362796292503465416404629549266718519560552687376141118440793760489846893932944036177961028699574655304416072247898348399955990830253743201168622814902065089144027224907751368498542873072615746168441584103796369518255836091250274549720842341594981401101869491921503247071777500649644050062339761242042827773014216345322347308249240322442367698940367560424302370423545799863639832641988358694752297613450853376744659347247912863885234287472232212601540836865182106095607574752441059438721590105476000588641169354609264043056257193895051743616383286152382873491616250917888269101775377666448887624511580374008940055475127868979272236132398702378179740083371012928304548647430645417943631606462715073272596020111366988318529933549515934477595944937510400331168273320417645492570281077129691568913821243064618205287740679747002827307263304838665776349556832491232437298200156145823617166705398232973368630374806280906258677975843263335835253465598987937301960891106863338848550280633618281585257597367217755034122168416829212982029993670212980433922573419922252511458291452145221319023486870439462457746207628347629567861365560119182806667982475750021025872317187166240195787644906879276738092856814139202248497053959488865359801927072485761974344406188304230120281251179891286698637165448325642591154614850416958435494390442467742058054692042646602802260407793366618240079093542488807967249421510953199730034666021398921324608568368854329118732568104471058389560968104719479436176789377591000240800435755009507671928672800549355923883584170241399769177050730059553868789069175089680756096042119877437458479139554409785124587869123109840887701403522128808984616616176511370381118334913771053265257362385997923723856057836385155845683401304682950320440399213514536851741041425221928366647182446220123145880151147378246931336653511293445129806715173005628716867614410191616396996745291923304277784214548073333386609750661779048989612937126214972404862195290087112383133244507020420605318014584626541901663217034187917740556142197530996543648193049415094018645669764136186411868771341893836544228556940784902113924621220150830184702358054803653429293471012162590371738849012817466199659653844579166945272043897583949999739794124905858897529597774545307578528882290059105419005722508724995110429164885116109151707236932954760870156259083445455057261877401523200324553377784371152768983184135815793410711318889539714961738963681122325477203428672781997045682711698022186461291381613417287161936511884779016697396596141157460961453473623832989625964632082865638823220734850798397513540603046510219075077893196745585902837721018935296275954357695749546331437133579162616019990941593271306546175648622176435392137758372736345836112049445107856287050592687864539475525865598380835008857189731354034297548300624528265545399756382082831458750456915117587569388021099135188208276775312246244782479607442318084959031094920706060235446163197627850405581776826180841070191847431384362295545243841960685926307834924779915179778861812252571874632983043031858912542599474637377627533646578570182145818107714551005088489786834105451626333344107773752984294441380031050632288309467964010158140854529323052836090374686414227111482116631244991514352382100913001140907183090994105603028402084063411664591882830448846151342813545821289348702870418081224913828399366580984369279563496397678670647396614758279165463021256528235110382552173649549939914427282496592515096117704001163927464700747597760105824954424930340983699111596000551564357416628829280978637254392836094436132562605885957186090316921297322979645859966765820590115901731890489111437302024753421657702485989319350890087202703703996368512681729278988862439828967853209310081520653164092217944932648276753159255751238257074596553627780783863617649800002228047177225716645706811068804120186955440861085871578364663091444171879759016633491329534238405046742648946808375656794565937664583522159948063875411780851864143295305826439311365404951935316494063269959965102883625392694500096093325215268895694252206265932873002244388048632518940386241524703981432547718950676909143266117537597355552010877598056911315350126205673556918794409940364697553492939904020505480946557734847384282466526380067858786195912385546631777000533313112210849524558159123846890247382806707744538600606542682903998594943898689669406338318283487276904303745872991453182017299659595020942413093665208231174631095469881389281019593256817982720062597851517927471313317676284192489876524732068365367630518667552074006116817409376451812812270089442042052576490564849456908800014443931003840873448707472350987811545161341505835739104561323358788068900882487187514729812014562111505236611799163570445417298968504314217850300384710154568836807571872250844179477037445815117517677993513523888713408419101609273930440544152985363999146829616039294542023066771789181037069968176376879381104013111844038863321258498008596902118103458371867205700742052391071348165453341078207040575800912272556822042227540820738852939870121621607032445667202458732305014318225555356543435986247203538285273564834664579677754763304501499724497011503785687405147492008688086202477039904796298573432620290440766248560316606087526530650946105697760966517969896607600098704995176680462204695459512879727751464697945970708392110270971705126183688979458037292548563350462997736604222197596942313784641939866058889861639815525902348843503839523424681324129349508006517087843405225532632405849672905661163487175486424915717767395028568152026624389567040825724361685044381773690943235326726844483754802346560830965957155211160877281374683386721589949229547004285107796315669575094409978455466162106612266598347255255711204285940264763642450121320093805805221887335702178873973908127579583638505781288265684268646444086481944063609295182493809312744998237116156588427923712494495239900012723872675897505948943678184994022636999297844424837132332970592999987538753629501029532699648355468168408101234200592997911824567195905913296051872744395797162014066573872240182609160820266443611016282590320136127998499089683665283498752000067404814111859991199546727791001551565686287298498963363014140210397766007322351094602803620857886620634770632168009996313489708572725846202711861638855996344948967067480152886353195180581666262334632624343710502353063114539992798511853697246099208962402390032987195180929288151426319309633997665480343815661150944346139613546957673837730682061078100608603857329455374568145877645771649634479798758606184000041285495831192367113812453655500807501246135046328406062342095251638029530390419118432327274548260767118746169765393834796610382848868197037160481047758562024775162336058957153363344574737981766357207755344035758574990956718407281218207917061085177111384235913213522304963851456781915378944081317958764568049039913609506347604106917973373597318708401687813073718428041645867958645271380782187197893929734738029653809323832840825866128641927240931296189715951719452995922964405394835731932468934254604476845921768934812742888717911630545052648261705096553770728094163329690515215549531059796580048016672383278248777848995670891889967167176351475192702036190738273560208678150780745189363679279653731678158984200222242521575576257228680866328675346566800412588447140881534830673696626617436503471183621373411604852311348450716696181769905051422290439578153922749528849006403947161968067467239948760604994135712632414220347048293707555573655518136310455642777716161415345348672662145984766586671710639740365627228399967370197954530404137808304304805155829452619878670110201642392635446894005264240811891971901122481478919802995825424098508243473273403611205168394421143143683750686960912800295282771804359553343681622983309163137068162486456192758341314338781182663435303580280727618807041013509964234899912954000801823679850551876906591554342557967768576634134032578807402789975332720747142469396513021042017605146504300589960503763749593552598845795661572285712483206776338768418608112841983712951191824187664705130529450300136078529731185580136319174664767561145749393710995734471806951797746931461704913291653798729925718667530791113107617482812046247808898555615003338021537910704935225570387811346209394883713099146308008241165655938031166262605506472606979902179359285764206556115989573469297426628787453529614628007073145671767546128146332483007739413857881078874866567154075998381082796692373464463820565645790204390143009007567502389333497309233611091625686656911337281812472318422470503456586405375106483459910669995283975195631507878624677790924496707851679336828313131575662188780216875710341781017851114444407860036058833885416896811017600503326592608355278551190775242229253977184126201725971741416919124704696421819755317864469628029694950726454065264889678982232551419406817469615000878516780641615814863326209184619789203776917885527988647566981896766115100604554102849978056722925715551638473797083867341860679007011296109822100749033679098447704957226821086653080278372591244595849574819122805872124547410788902949751435588309644061486760836979228556716996151719963771632457475469622557454752540768921440213833579877781681057954759461119023126315539773189837448016841881962786329670908825371154965224984855516435337593756832336256041109611759327550392153264612345037648706752439998860273244207707971159128497172883186659136698074598125333284536357279257576330161659752676254194055508916118806752240881495646752700507924742623185828437930662540209588842354117716900401881785253827068864520256168846596914248314694158415925459541047632791597901473965999894118135131562311481256304785731174268232784119169600782166455727816823101820257613100928527258569552960927429416758829584938455538642511801304355721931794403657988383153734729693147067377215790539672324351710241461389449786506646981439309758589309174312777818041607186660390202948364807920915209088960380176812103701526447090526861276386364383469034885433319904479760731716521590245654981090799715263487177298935970159051009911564722038094802107544971200599256383889457456761513528529594734735551680742562993248143254916170402044582834723523145496624644524277391000518701459630298083609692601067674923447816168532363524414794788335768441214223787755904026735059098656942189803019637982030239990090537519966973719572411384289608975244256230753339378964956167137607556161624843722153401705407328281080586838349091504037879994810137607206455729988596712813733749806964433351246259719752115903448260846390463872157232960971911955684346379656562844221517676607470248036301469338729293208174198462208642465474275908657303761410256155935758141036622147742303049780826004401947663529321218158778466548222242765858854451939584846209388080514284363323287786619469220623301329408861874966249832530022676284149208733270128227978178849568678894791132068109135456240021679539186307045608510895543788288044033142870328867062997193219317576215258369295344989432855575760923869517207263898788015148149833292176465807550012456981128593760825319979367109977762190891486558214144326130477654190070812179138598425151308789500306791920690787749995922084917940670472240337794004191753299891306405435787053925859727721665549336164068564417048156781178890708535265886037897970394260560043310629224456502525401968264911482373001449383977292746183109399571200677173775189134070038082191428859253285393770748814724299926707212573975261174408564273290332553152208644048921217386383441185874792781342532841499817376471528105568778161643924301802373889188184582961288970058253235393826369175609764742927047656859437303619473607624880285950814179862723900117774039622351504119573803744874342577066467942059645618328485176106081647306269778869729258844253250889949824019810950523457035677485167596224857622729363341707536989242371010252754844408315882677033878358128661295638272469761644673478627364795663083768649123880526893517323278110508289296522734347363276891465846356167411762317396277569845034027029896496033127144894731962780611623318206224401238814811273297379072388825173559733592691898403013723162078597839547408892762859778675703302352678229839285198160208818978180167838788758819686284582561565102688926045301435707280239011096904460161655787091323246544382924626677364497146226770371726864792712682395629699781779155943329433506309918508212693440290548435681441973253413749795441569512912013961065758377794765040491722353729945450884521731418714238806204029783586823014027053145685736692988330186435609592528036596198864332829097309601410060364508525682308748158545471765873428657784354336721139112309562274938483445607287067904454371026480365426535248559140526293680782805300601434719993399997369645149613099067888224177674189545715218481995943411952333926104292435376013325547573854037602475216390272638470079316405776053377835607286405970415604220504645027913112328370728483759084795606334793135940545334801103159648779857206643176229903241558986478250444625111640302215855259742944053455161350550291178409877053555599806303976314447864822988545387747885800751199328352586199273046998975932375357777431983015739217189928480073790356624581453431604999267562033007933714848325236744811922527039349849581688851352650538287221169529707289763738999305997694834627156547540849978449362138176405351586225991003206527171899628965781644379813004408825310188777277194556107716571329178560604265555620157050804231803096746673492814316281704314872675255901808608912679737803242652346726356090649942443584231755919769568424449575037197908850822729285899917819361563195194059558318776194490197186376078699413137207140711857462199113898968872605401067848121878607653058555434835488142574519058377617392604227144126545864684289844681972608883944850646197118414973629843262965181891488627442214234230094797200313521039287380776955889792721103553016741347873489764904757197778444005238963691441859293297499584986089217576107552765984892946409858690944614545098623518020609827393627104079911625780517225705354230195259625389195226263561687233391453235654135571389263572202114891613115663231667351782955069172705246910018211523634823086145476567131093951965991362359756484295661830949979691239396619048333033002682303709683604161581429565946762240808691997914727631388544003716116012164241141155414763562846376608776072307220282665525990375418997089390729615890791621805267343147002655829504633595799005537891739838933059741472564085843441608650698663510944416827721727029481887782578306152386668017653534935019358575519587881734678932940148716160233029172794824889208933183623754058844029320846946268513308006763981434695836810330785885338774314554659628763685571955004825943767380737573731651813190588015591387940444446062499714673263857444785733336396883650124067200947565078321818938301538153223149533552518630376469785285418793254812776264166051813795904648821984294519533826785466114435775563292527858823241832713667712588612436065403231530204853709963705496375313426255001979309563986497763233480307899668655034935319110899758053118987947415878706301076678682128106024889380526824777827292514548004868448864024873977073297469467226395696259211006250739900994557432027530811857343643997680159049573002378623014691253321849746056037753232229502263140876032333218695913298849055723230540431004159809448223050268733406513709873509632317312894366640997709611258577964158687277791275054014442568643804379933217564541407680185771712828758222786106888638130844052297972273342073096802323188763625615640800141556842603664390051435754298938825784406321119651675578009385381551317402432363003387402030344704512413976373898596027179861001416732802205310617677952681767735541160670772538621967284378995002191112997390917595495867404807932222370231551037823872848843552349999891016564798217302881631710823545498228736801939093035646790543859803929623355632464231419838322321296857901894628572530633702523603068062046775936747267750459564746525289651432476911110779683148829647615212107684886461560695721698027494233933452829866412040103601530674093721227010692502416145907979261134843604389808022164704361275784554817001378987099382082290190974188715716306936327615700274075639241228775316848634789809523167881038227284482965601905619434674549046730182208300587397957457319751959709531220018367464070708425325766800069827024243303077808704692551509436932700611353876705128287818903437446809257523197887557485410343925976511117920094407872199434739658532702417094829872655733635261253958666008995594532477744848502567049505558784085771530717104586342750464776195625927911532432802788616212096670748449765317434766002069645790349557735152826398898761964541397871698907563325644795007394856028079732018173454893122535668756999245434903941503422601645439621168179368634925909775086115118377107631235965781221918007087270399963178540925907981726958324890624888555702770269736794469962963652360990479472061491857044105741657271742723795612629843457220633396165723347422742919104625498017379069535162268310915243659174794651737989586738376397698685322814450337200322718933490272869867819261533296513519453843107645386931760404342982494029632848886898381627808242112624350268823654756536946790535944513983824956760062268311513229178759815480629668172715138433914811607740357521311938654264288425440116841199389129138622298579981732125038221619756695010944941144562009089859361679286564099245273086450256331436758984146061913137101445880214181827319596792684654883605066713458198530106556819960258508150203452132548750494147952437813811913558581584403716220648584236466025307021662501170258744412741382859029284162846671666938467654095132902565910794468183591901242006117187718920985480812189011754148043227300401688580910895303259054224455772626750968307203850479056831910991067782220963404523400668808533039158863218580811288256570611157813070756811414821524556983580510840329616184163583857250009680566122967320004904576455998274405897162738913274009808029093890895918945916977103849798331293779430251028666066820999861766353768191927893436888260251802481256214618417138094148021905128642734711645678016106976741672192410904146677429380121552001856744699009561821986692066052217072919960667202652790196251214333748443469087177958192165560017577158293037965467647450810328424148823940939989594300803025667788364384580078829371884027694341175248105159957325261007806887923556609005292259741956446803406778033682270566511428486193366029227353316343900480175905502301685802476908551695794665982631304864347665066109536865067038664891686472667146595841682261647313830705324393071345734236871973048102672202642544916809117039713482989295218781857853169429901617095579627885871475925038245529488417271871085188510717151772219579415038367582204227579961025053821563875384670579243458984290206933276630183355667011324374159774123463280293081702327417999948741458880323431256946619897242514630626571416570999040750466372875758445474005865688848746356422904755625210741454704020834053175706307086752178624379024896953885228483191468592073275434132021210654300722582233051435037216704876762799801693661191248538469549042685760595069327523690083785161958742908941410948109242218086462999905137231138824850340341968478702950797692405089589454851469329489372607280600862156905206893449435089194520153460194219659015680501421534012888379611433990127997569600693772357828749589619889817271452376164332322351555070958044858537873455078702758114093356697080416113180574822090496335196988083349142035255027852383497510342257042834725368756854883434241260938955570931263804430537448502798094856533614234081080084424174034297460530036610541031488902602742894261561160153006754561087219686462410335034364460778824401459180904585530537312744851376185845775804595971379426928827655032380316406156146747934166406588244796091838360680316688659222828182648889675489079057517670468766065285839785898994638700646342005475966996611292788968252651809153512209328480894564911310660293796719264556851491691269593951855096582962239159558526351712177784257158129256566097620743711296595794558896467320929086061263952233698665278536414520404585114330768513225300267484308921522036555913567732982246129739034626119024482528207299561966450324439778203458888236317517423074819135089869343649072201111422871936424587462130549406869449567460081371653463143489375270608482485071680637107474601587719099637386495397531983623308472547372618351666141169527110886644331662271999000737152489362968490455146153105748894736058643427673473492573023633229360412354282082569923464064771334899651246591897388480265398135675128930540612792118010073950475709312607523483762325398854240033177904857260431053324413797641052373619834123565532579977473097720997485053674435377106376463220172974807875699421980399522016281112253010580592223452222815659501892398355441809573345959927620725883250304995091951541386311272991970872348982063360449217892028313056780379517289279929362562131019244363265041497461686684160402717981652096328494059176430316761255580290738280206622207180876628979323081470216522116039981204480682853033338271306772440848074455265542511416452884503440951221940310058107088591314726392249763047964823523908921981921516902462785308552633616678197003540781020449153980832410809111216259184861425579102043326708169400017203971670585150613396608429730091624912604102217743701346958666383340274327289081917365989191574921953620015275928479708971198795551856569708884908268966045459121175895265168177121487492963716159641971752512775778704755988816914371500031025949426557266081998810817583950683963682089030440780650350099676542419480806917696535039602970367578703367070324929351023086015879614692048659927958230359270400450833357475906125470989720890308319083372332106419489357071978655594084624621386462300788895585551594774512225729541103630857018687669945419918526929088560963597149117743647583366279496929362678968054916987890107400162513787716088464305241269743179826190273278532652122019559542351330202059372239168566408004136761457706033139332673476959501514305963775526766417688994966122990428004404657014706725038131795845147369123484698660362188030774723925563761289697322986588489416043620296894369636536827723703975593050719631693693985525214099311651393803800487492401235612950281307460050712674674713102604044629588302536752066783757726370291727151667324733394717368580476698885376985913528189762112727867334464155256928355601110489134504748547722528195450234998405266230565285978277850187327791672096936578540564184068655226962522873127704879565122216880759775692697822437324493075067425543562529540396956679292954674886425917688610956595563359061049145770116414304311886852068140830485377532714701465112229429657850833205084930439510663253145112393973027753982809062059802926937788308371833633747866169248662973688151771731002278790885927250774747600800805908991778954711647763923561236436960703308233671873650814158781702471685420866248869632215039246898238345845772303654412983018212031837432746062978075558907221791971479114055159004366414217182181120441452625020231317991172691877202058246299326768076759367273780662464966721082695646887893074540546877335030467182003378514279946257333426114471925993667908597813841977469618215644602485733454609690121515669059961764390864960182470925341704119633322451758955071713894631212532047896571264548708774983295714681479223618934121324556093920860839746329786708046709751080466824550079881840170807115089896485742439401355954603633469515838930555686869335954402286185485518311136090422415455633178492712400517645024194154848191339286550171641408192823828885526419058416206470767617530720668427453244705563803162632789050517966715086977533779223005196131459246655580267080462059729995375696416202646690198593257812172615032849640647350321023991769872680990420367356607935420004688118700080052642692315752577162509490710279389695711562817365512562068876542623391383441035528955043666291185942783351279012650835221312750773207903201925915302162785152804999404114931963842907680664507827750033817742803883555512740211022886641542762416080559641999088284379417828861862612408927690449069571280480939496084499320066757731481332136939434477890583432617685056187631581609659484787907311317826439471038770888812925983203016855647803836339401695160611456429103186125476637674702603303796113132848423792261961389717275447989594374519303502834532141425285089667623950713301890878931309256395032299498955754902551268108540383619204425434002758528044198982803047562390712732315049427556106634975072075007198794094797146287496694663026255328415322927382078285678549392222280338013528282745894200335037994965221445101660999585233984172351575040610807984589125258479224696980668600329798161079801493191690874721917990494177193685539846147263448008835163173945818880331370350236057196443778332465613541068179728172345331657972323813970191611570172707112331511263789752680063610931284519489978144959448113674525661767233618520409263205120560776656658246063149523253151697040875364008500710162346122562661519228987634787177103772542862364241303539584998003212432613311338339295322934660657848050493297984380600720582241979443948962220294142411341189759010697696663821692858605368839964713434887530427629777569060708776415100482488094049928043000652544830785933316179811444044061042827476629811920103590320573908685267958460786639858334237396199048469033757541243213193759790782239197327729220308911132069196168180026607880172124092386370623771209655184599903070095625708181387802638949877974367520526017793071561910057342592796050066294417245740750076918899232549113431934087214715460830189208083159168705837518492140360294508278385452807688494159027914702222446091111571275759062260604059265500179889688658797364216476779651947120125465126319132556546858814112355699002771806595791520422091644871417836406082003563947280885068729657597968702796201768546858582127251809596921404300452499778920421935536110007981042831624113715332389068862224085102484440462412735359357484923702138696301249121165290937619857422653875502343756175016971647093160427548582396398977602230837165144678561871022834529235517968808231058819766773416345160201530818691758094068746649252526356485500825117484195385072710928481819019935290414015865688207010865979211734709050625493744220166796568482245763461724142883415787524986420585501892816662807780298209145848157310917778464540485259496780676533862431870911784171954687097123986628563062271789175651166767993981037547394768081480340325581947260623984290822224024167551402086532614338937450579458254201195860766565741545883206058721971593995764691294515247905166837340937006843165471222889325700536945049942396417827983513705328735909557842132699739644722865400734401293101497386483342350174768081559620485663656571146874200376573740639008464457142083902956369725383336528946299675475305704191608000972076936792630478082241546633973963722524388034620152567436374447854878768573445400018872209822884930462640794913442559448002920192573390565542215914338548347204826559409068068900026824751350561591832236051810570684651024367422535830940831566913822460668746653818016808271825598678056358103183058951676229547830154243576433315284894389473184274455122947629362748785073824801425314756028383195418597278190658451542234288429771885057886996411589566809444491550978359721094905600396849097895795839169093075034912588041704407946725551349163594283330942500610902522448356485430323320893542542339804653814210994765333751441094374432657688268299766673703260547629156019261297948296076705900128053082259239095831632699158024372541441136917730855370889899352950481679990533535539579419666744025321610851063932920072084362417014886656655653573185214786957857850722286012574968537434046956497420376387815847788168093941097873023221817400802070819232257928700790225254512643915594175773450185087312747988557034785709727396350867597976609622551116000925652875103848719964327948789096314454852158091013136714569135570677712551906347512079372669256530025254834632091831807599870745047085589264923820118441189762398575680221003128012054371672209169980021899620803757847952116026380787160015860885332159950703900926045320545245887889156568804999168992931161114340842811946969739634542081420391298447371778673418824533358096707558812059134837713318740455194622186685029487452840261894448849769471902389886964524592741926923653416680299063718526044126405100947103847040441296201138908686094266142372516052614919884710594321019708861781447735396139608476644117815579183315261913161315760097367571263502901008118600680484291876396802553199608970622528929749395127236240635999098031089230102304628672174791039893734882472038038722200248172500117818455454706327116775261526069295295713954943943105589202545190994995150117543752114725816158405756591187032014571276254186567838321780258298100012949055773731124405054092859810485074712992470661982709903450993139470427602486505853854978185655202630128476362827543952258758242611846372036409417062341401208691541319780322951031458757568886455292331740033206960770478796146616105017735697511838460549474657190405084042775930236826960625717665454183109984332219249863835598426424596855527264476987242157681418614578267907920277128980499450743534261623711666913612368299556495936416355810898263827354062607987725317121762399502692901100189880764008167201478443611889623518179162061083036151135454198312494824308329350921299465267586059940231674576650302446099369345142738757572227031516257588316704578675292765968257219676266011440280114546763837471448401956885276861393382272257769568856494854556591712978093648538423254421619033041992626689054551693849823472124707125380483683505233130758953589342616464015511823325313610360908459075910203459670477752056828396806959237909548932655992274621704551234543673875537008518721462490889166032968722418032543111357847814515105275192211339566755544238400104227256800228690749863179616790417323237583606260923093237918340694017874719042855521105998479753143038393392373015459672245176899475177067302819143492047559262384069725594438140132012162571063901576460409267543449706549800546809642209448972724423340602014827846832066032207208151229012145806336310855730948231754114804424215815316286758106594075214756517347449703536518795115893397632030348347121873685511006339422078006329000338875018528477971991531133818835314487477037515052874113307644380317959937773023503280725327304619584120378726687542970759677840962944686843294429299087944968012451397465123829036730212730666025966861391067418553257638118275503799347170688143914461381449980648117366290102878558285044371837117650202159388193704641153516288719757140337473692732745083782757688449147400793058518976254034515101779726551107387954710794026577564039607792217354156648814281466969723869672427692856772799525954692501967164713604793905967288822749003925300381963832449965480552858076926868027695617907236661277312208932697765151811824073850104614315226111577288890413762406410568735441374552183902650344243385121761312658305088697018802787793373779605330114658102203850946141025572139406974228688577645368234253655737312341477443644944484453371712822664811824518394590843060458558034139030542719428124261832802854640835989963216628771633391900904239333689736090968457449224054475227493660210315400425883721987250761088380847878513706179399501269631079238353418841859698943710178832586565686547962068961085462269719900046537693750719041012601572080158730001760558993219042248407217920280389173698956843406280352161051262537298110957257794123097434380597602484751538069877589140099933838882897410434420946754534061630423760351588347797058385366851881728252652389192270682940497488099435020040326868906556641369002021614761431362663870076901970204508823390365768680306960972032006014042300193600348514479856323853130906276613083651147676235629105910138050640178848046938684076026872888026495537577255872806397896255271844245887908881051798627940350277506013871016418495111641610221632022593552879452458202063051516431304252147064570835711597182664901826582759986014236461574278350731154776046982224660794164170240748638427769238060546076523417456003402042806100018807353676546953707543029815130722453983124861757543240981336234800363743770749597899928528019141046239984693671145521981436615950398516707919420459810071254650911513751655562679384624402635404844048664510330631283673532179083421977158507753073183748268214938104855383047987571820907061168939248011372113442984561360311952438810845936115388932001620802079465213075568757362099717087067769868367072857673889502682597910606790734307101977666067289478792530914135397356463351146493799336657420630566759671061073940882570235171335487868940285101831305446859358377789904666703599411182530424223885350248721216614042435359251325334171005200800837180549133396338827434646140006069463574883568690202724225586504941612988384052137789358773707687139084505756532073627141617098623071578566702806646509155278305807535992062203429851461982835403425565033541719257575985990565316096370476339884181269550649492059714920558024632518272507295182792465775734884250555812142722094486433153497890314663569414467613852846783593515856990023226872211182348274934990655540391622269609610724352804509914517801706291311032594553013771949650897289774458421569638889337581283348533712678247518152051329749830513555312748781648455130333537839418750371638549778819819655850390208526542895135265022607339570063613416314669376216998163347482334972138181741221701152217851924473191516651577372277243819628185611566761543026627371934904545298276029715258454930310146767114022441794050969685513382295140847130652607094432680660931425962171310410562777619445791909815795760071975371176371496064260417930930648163060424589913667965088298901034632665243186503682988185041504623120924052112134605272362562207488247203944049378172259355791518143487538802971240534810784485017217054851045595239289977472583762488342628652198037954779547794905253696190343048145975451960900992258451067637693134014566240395742585499802845690704788457772283868108358037975270780095051910385851170020835929473029556191404193002299879473085076875351392502832053704767027198547924736909975408094470389713216967023321963815770816304264749343986243266434029409694697160578006448405628408444755938742522258004527734121608324149238812507776204054074772002376365369661567530524763556277912119375994523638345241010283377278398277881578702644284995722001791412536105838279344803657237439246985357504739452864808676475647655046363766373028682061356617939739715172342669681943622742417348791024892468250539980778683733546590866968286950803543712097850774949110421199641129249688868423421368299068189461235783382079668309088273121052598011307324382402253381314605265934618119149348637871042915123798701610849522811765737077216401270124433972816577996440918797600018567754402627985241954671887974995574732386970348981602601482230931534798486294030029666121419875592853521465082404201095772576388668773736639074204691274857778237874984978659194837290111998001032409370443815259398752139024098658981082048645571365784286706854580977108140011894676412549339856348159445975171737847690480574202953474748229037362040950151739213687101854827496136762772666041254348725399056200479992189737100095060269165142363551745611297096369389531103943971951606640133863111240846397786334661005911795575267503654332724154445488944209711668444561538204590416109426900392221482386394580458399293205226299647880817502084457379001111657687099738021874780276144477249819817998226569414830432434503187659226315276585857471322161528185926068991072954311865174300352402046850528400153520594934242050919997807532233798392460648223163186039139588984693793509081243402785294821607258237006559404267684510833374872236352644110898333614092943819261484719820353449209557522519519040234492572792536368864097509326589674787187889701160008740843786467283585770974330115065381546181456266432910565005700224455545509075597639660509791431467189949376329846119484561727926834530555982807995314267879382717049325739894232754946869597185801041582465444424896318918524330053467862433371789680607027239684926908069476265924048771656814729260981306560796816002233127271143210339654623114109218100417825727181512521922243724509794027366419422589288329666365484619712483348599787494730498280163826402119040392451154538002955028996243468011878456514219674048550454830800022117278837565617726713665233913942844833762683445351959515261110141338557900524828649969692365338170244624479631918363931601772131700025258048608692548563117930571009397692091320934317885244193123540572508578886844752241513599657111332333155803756146603661990293337725954406190993021132919243481679669314123662779870847777526300560461532538555347298980828032677398474503551436202653769073809746737185054818703997208814290931957747579293955659129709023484230162386140417447430687526855526775313875220728869147702186274453832546298928444287735099339640568550226376874724786377257808955784271549893426239941910351140898111068205221164013526913306372615406111385362150861716002322854930697422298990220589223859696103594098083527412252475389785483073962210162569837368578974523103511035308373594905929392505186458179893886803136182309188634824818590728569678257919461500439824397055445001000939687116001865154098457076998151482835568808613703992210381546806703666026493933213558691378759687403388099719876395741653262552589811231252893225594058117977568936903461317261368302158564061765356347149288401647390414053181377136521306456597645623142348693353392201524763802789881509368386514902356742862219818061033191549740946654642706157440578795158631425522607600950408245419574643994088463455308893152448745111580113734767920476577421885392176704257815308573688541846677762227576690936507772487324652046527445101450137985119925707801896291236549374035003969667116428877061082614053024473414504502064581367900661304035715940890668789972363218321494230601791672974711240630263419312599269342731698869435688336303496686122013583447441920066785095278841119046025342824983252687494677502316907606653534652519202580289889399946546333181409527746004880159615822555447127276765060725211207905506717330336358897360438189139482359925537958465656355167882922267700193399467680385704845008163054390345784639946540579732890750659690670934761859345155130986505234126252822043667774055283693336418679211220562922165035911590932098263320634252146514174449707479995680010547882920344045773560048334211478421521509279236519160513460816681307698008028696888369308463854798908418222624542035468636000336535293140725340095331987032201789695469073975030643175571477133408167330449775968138876701130971220786115852827573262796020026778130353704194281011582142449660608065678726207882106677357487659040645214929746472149031306746155851662784115647611754943973830644537786852393869655874300122335091376726099106125420482623519718608783121711102418500398968618203302028918301112691896067602905862427963871286763990183415374142078724352359476525124791891893414246405573446202341140844691363247594047922055064408876025481508068847836322204693009005526006304937854242088492015448923404270907063822909153169145086193296643243234176173204252058052217530314025528778324765006306407172622821649563716455661164392896208868316240727986925309991907748427904329455504023079969367226209994460716301785725856225429104823301171234587357174895279502444346672693184416403391243139743932091268292534555833152951687175818149432071964637070820689907921142491706884769610972450054546711954780483306735281885227020567673731101858069903497974953401219623203146661002964760168110196198068327682495356844612217189019286445679682114889694516669864824379543448867668703535237544194582494704783465883065403220801532115329806965721774757877691368620644350717182065004394582999210322754811414014494921290674304456341615383102401868121149318098234842323678982898171324936161663348447258176716453587388402620554334431704469402980370056437045026716179689350174165382565372581304108297656573686104293365869440448845605348993007411229207839985433762000772102422211452847345972371675020702146779992110085997217177222404403997554719845007843939426360198464366807452123626228656825258893159076776142266017696232747549436488351260585976027042786103317472106039573030898190109859727243425695716044120004588677968099171600062566676883313320402685777135052659743390470589891490542753791269143461464613148202120668713369026797268444879846788728989869209291379493613018202315748798721686954310746623320222866958090288361875487436476860810082133437125211492087592061713352975672075594231736911663423844623076068755966256404138674675173736750698953259069421869473298389231886721367001383572806676151466558129710616320054375729568376483819305999756552974588300456386983168008132467982497007720406438009657214422629355863653281610626660836511674040513549072371010710349648844615416378704894766478079633712855296411761687116123113592125520980381429962961710875828173061905488141687994038300136486889003790077420492924634881202913504928021993366160875225225184271694756533404286895801229674651866175799586762777209457794530762734663676552534380628379908430833295905079246611650284877484363368559461118906033445761431038311882452454988185311138353536184151423313198157480092734692374384295933773263837477408892755237427258267449436602829362357871025726290325022895532864318706152912104479484524089605355126545708447926263864558165890838231624349587395927173621276138149447741244654369202543451206073138633455908624137379457958181779113630556063983524318633882836236783555837537153751312520208734106979024557787217328138446036642488959937108920833420337722075301149099619035691613222715371916906932253454566685022518330100637398722987408224919882497651635883916233170395144792706738062497041886747910733382894767402036626002647620280778982226631787204779755055245445073056274721047847010665815499076884074588751287289383971254114760827433264421098325573206483100524935137283152673796295103312869090726623587725163812824232761665489115120257346299834567540608817530030210776913774756677590261928579961886214313573539076434511251116359361664098406170528973975802158501009164007298763297526335776471481055431667144398861182123695431853963158280939089330713888948684421078554311511646275819043192732359771784708692211097080902258173844919038273598262682105023982311126182515813939544629216331796912729445598691353289952245374558141628776741748864920165151447075356649178020542830739418402271724750361013954082608427530306203199175615676896460385319471146072440792209628077490846375180341378322797657454117914759529708053555467475722078842589986084378561732002551396255623953153537483048994670629576227611148112026174658135154840110083178659761666021323414292176517540519524871429970497192778228092027590097652711196132030178092374016347838605484770384671665916230206071154432402958985027988005628179282969236432804575015385866478384695806408321840676503168830888351087375924821018305108638481867373095714826097694317045185647041005517288650326161948002795422629839851431654341907638793376445316378393713002271806988841354897945511374969401526797295511659859602787931748281601374346869456527685709780618458410354830175850348818357038504193166441108318255321199915495041666222144784008365707843651837664333138638880217797391958044741314890101031372486286190069192940958178130803024648242093599538831991856774363563028336515300840075160280727771846767883346124623452450882928017286425169892621671190308250172864056290552485501710107167485589184905303932207863458271309974758203007616375174189092696122682976309810570411298251596317318298161996473049736863199398721619718339854179987066307792645898711834505201873589040363243606514468614969672309610586492468987263384965415567711886351695293573350986456989916775452670355478481341049001950391523642676194316177074357143802633954442328284964525589508954131292036293483246669043089431905598171494151901221734613454712869953769482348959910715160482193607705454770594325337412814187147979775933694179516293498519606802236369783724796665521739866995680770320005501167640249898527932653588808433737971169187558268733943728588963100930757161408132535123897851930354168389736290306530839257287529853775986516146664028165530015824933677054095534372422710846770317683061194320428050676933790805634371514664746344810283505590737373988186710212591387298393713228143762003295095910697973809949674679294209220690539356891926785417310939219442170194010416511811891360461512381580699336869342249002335903805847271190062807874391268198783466976897471246037928390370179326928236319571307854053275233959050921446235454662043925934524839616610585980673942346473842825766622441081313132332896750660317069521665680340319719308160147598339542507155538116315924098664009018934203025022366625157001650087986827985010809994447337893780807678334831518980448909569544157652423007999543890644807014498760172039868283553285596904088228671278353721053820633413840280230604352360197678763361038579470046451352334901825755912090046125110200868366765257282181349777417367129060373972231384161483135436071649333604907892089352921707343158754687163211987834116310508816914205910649603992096974614460747291543764496206340276568838998650414978824597973775765377782570949833881850879218560182076125030860464664638016702730519864781444565350582024209775835338737978936242656339146837847951226116811122557553503807455364748567480396591169478995188747178812130478282372548898520203720852912303212226584440327680183235698980920024319833974435903916855230349284086156461239087391745302057935738480003886410506758018141239370802141179170561135120835893801741768072715432611113824388912251989926993730067206108451469101142760830312061477497556095952419044005272028614078016501732736525884998112849358406144653630599307396847813030112721729609272872557931036852678783661671801689689128774415641143767269536896713420543563282728515204246277390292817449425247173558292137602769603768598508138167135359583152428558777175703331548396454745267482745573451275351063431135830720334131098715659686198265980618574185596065793047789207431845842120070234625090104789476777468402747738444066437042234383196221583163773254954713273464012768100413502228443314065778330990378085249438529301588889193628799767988397023076350076148469896498674640415050686508408810815930041443098336075883480660055459420460877850219549572997247470291561212366229925695646734621542261833805431819093913113090676046417795810756312474400632433357736428256849795578318284253512354712312361828976781515324927183521225708557169609118544718178027538632848952196773725378137013809541375660984315254073977015707371688682201487223028366620653183731462614121929424205431270048051944577904510378698199893630276187263729018336785345746339947376232221080896875203783812224341794969919744917303663791849212619207067931826481177337299165548962836462559578777736149593145415662993934850671580271145444101134891459711015767490259025156172012847289545912890792046885447131389219664621436017894235732835598071406657266049422877725967636300402473596130784798581007854328072272594525613369881954364328931178190900828862807483503429549247158630091595089655093848612594005135579974762223484548007135769726859367921394994865562010735515363913685191035749374661317929800182208920521545981466375931311252766490466180743792260697408250184010233849279661160478047587110444203950665119549805236548893517792228119653689903906221766728226981504646315160755303418554562820634975329684357276115935604814963995362028150225424730910345475746843153000715871950490637360129331500261411987567607718199066082522383325227746731678602720995738468099145479725980119838615335783610303530302185129544372755926566218481821777514206128380296938979649652378733004669020863365059086855028711544396476539726365074633468376221213593161638087782807190225669138083772756946905616838858241087631206435495663249720919362046871205768904369563794171063497648367390812033276006418046677736248028681239654249964818562428523762227221112137361085629665550241237273515783383292833613992955680049895046620269032120337844717115277306952805715743890507080810722840193845199464264782946743634382596145613290558983476392216015266061060373115248835573339765253266485591175811732784801243093051147572583718727321244366728596133164464277310722822961810946941894167113303431961152401259473529325391538165911572919271622434184922824180653175889967249959200754224121546376851120327645919843251155018155150540392777897875745279689464313447985652081598882931594336954380271945138567276756164967426798419316285451148828937957877609487916281518531408009231745930873109864703856703920818655533963895200282691476137464648900795798713401527373093036040275301948410591239586840099484889721308123257567908676271658079051768932703463011492723212051037307132109397229334652435042705698538685803741890905082810346318463950609953551954078525310810356227417852374388737772299994009428614255562739826932901889007030603087134981872198759587189713886062810600467516387023904925354350082282619342675130336281869262674753536515999670102531119325297852004985347704381275546171873493223637466690675280261752557203890578905069134268748689820369260912673594679917681870214985335309300146646955603395360309813567007541453332401965238944078203596457550469584483724752473321080706907928344437991853131912700198901283914703031246333440522154250101845271325642800229685120560225726747881004731737697829312235621623528650589375083431854852048181622996388353406528523587462088146431426168160155996879533741847802285453349999194445850315604016366936459457063586078483588889068524621444263388481964854362617101865987420296709042545225256352359136976302379613028463294860083651664637090731995259396931858937172473869875717396327246694290331179233698219409053819912889727608217828283460337980135157797630009667851717006633487619655236309710537176727626669995077677246920751772767379174941022133340685408563175466820439763435502283796570835926098085550456800663690059419030409408892954300909495785777940402266294246668681778914268297129295404842633882445521414751503632097459322394601608852699124820853932194462805051259961876706341554553568009771265623626747769055580650450657192396133324392076353168895483843413714794427708172469764258513122067666412469750543476232544111457126201280569315171658889115821400994347653436616762442971922242832929945667231989182294522238130061093868834953734734211886680486682972900445425843722512500374715551336731504949582571129719647280062270622259439973099476366886280141157582702154854208342933275940012544311353122841796409317329525726278690083028373985189934187226747532079804969510465673335736062448940393038342405399475894915931840182745405394713815452283071273685532940313719311989348242949020337432048012122901104282126574714971730003168237508050420164404408730501554714175472019957273041016373097492498196643876756731519776757792843033364050762861734968472031865144376604205503812668173166106971299360129295018198725351902015720303934193371261375260777193562100224630663216042760804836141549690228565460233709125732873785758390447195856305066834022814330359630358912855559720880168982498149816836801149472341124182522752928711532331936476167828944677580326945995162213652428964272865698167891261823984655896667748454799635099747676552768746791400148879408067901841502601455411859564168306685565709177750302250057229800781344419090450936339554827395339692108712172674981189229489021996549668070108333715333383497928539841557534732266478201259112222643167080223827427946270472347462913368509375461538785936862995374286133482001165389186209025238260916866261539548813187209935666351268451399461590282915930122961825024402447131451821956578052303874433944278378609186040338940377516033671876721002537174286128440187824993218090654508209721386700102323291502772317108275520444292662936929432906468757033048135416274289001917445134313750449954520002091885714764243711447251991739421273786195866646945515754661363284305970807572178766635602172209473332055763541709179837828901854641555994306284788335400180686805443399861467915131749709175635031076159237003097791199115459877980940490755732340035529146075319938477658578349130916303875549402639623163990211996652256039851031725508363707474211913169390723901269930674630247059783391132744413031482791189695775530816189043460476140400120158531219797213882407695825098664821873402483094789153595538393246608279115285333243265780003392570438715576032183709788547483818620861459292318709927991256492459648499129749646598839750483074383496171323766231158919876603833180583290108132698761665746797823216383926185882467064105570129735645357089764315025709754151014427999732253462065541053203891081945646940193033368887472783178656555056935983748541104175664093153492884734103995994865671697631623042567680293604261519125638416322962283063426058974393499496496672808894794272597839323695695019458647866248718028970564649565370903174581618176818952209037999690879928460273175847445118424087168987149349050797684028447803039722579221284551498831901009115684452687844326794091745783472762318702802184145992609055671344333141572804847598784131344820538934633276662390084725761904663395931774897998996268750425724408958315242507749145243757062746759712012592902249374005556383452795656473734946201021850899770656608439253718725040026300589929339047283148449877564677521808453078876662629177488146556702133498219366605943148240832525233844207734040461735973434926466668097503996103176349508809508741649415830884893591174600674157636851058857103079953600964626529597418261398516489390925318351364389045351892468599932408969521992278896668290796894128233485528471365457575086622393764563872553695391464044574281354492044533884107772487441008525331717850734770658739686030712456723480999300982541829162032700900061060011014830905139178439402528969530241795352321714603308118974335305524284300806317384494072849194868124595293847295134224809329555058124221885725584474585103640128031203182617895571060102357165735542703637009989734417692247920451925844587450805042734152949943830004634973346170520407470285976199175976023754969177505143281929244829325471935200451959875031388099939506968525607450638890003396332861506698706569187980778397485756544437469551472920738510260601306404035347148408642986751926438347762910586415907890014853745053313200146971690930384552588844644946004584312446021093898360230314835297880288501633999575453044071663481077231021756787298532343481886683709156775818215284781908508821403846644882970078964436531675560863730324913027344283487529629827016988734696361746174923306514703641109762972067461498107263756273439710270895509113656920408499328416421773060097970346799101893409583173231946961825814627848079374396365631309778497114904558695673006024052510274006148314746686872857960179425845669881185673486000255023368712827578435423960903090241323819516622598234302278714781618340954695955734763873280707253950466359420494117611851961533414984725392636272363732865074915284888051948146451279233768196190389836912477203061684195516112796669869495241927047343643452200193132742755673353374749097530788170756416078995995336617669504768349896466913216521757523896121264090883858720754452153404393895947390236224847524075679039019952597905999027894085998222476373927556210158975695988311256915025988764998071327065670661743301912925637150232607423061046693897547017926623184119723854408150674069558896670773642621823262688139100834240952900553828699619652332359053342793737112541752801425445962599102599172882524898500114963687513714641112437681455625839601437261810338998701729894576544262400630445719313503089551724201003367747842400336071987422438997470144170930340661042351852863395539935110305345718581967609906682570808827836177285833123367212916006400182241148281359893529821456969814701621948927613162226224543284754378593431891187700150827820504684514111232439127518372070503598170584636442202021087453812670847018904476624385773623238233167248177783711126827263307854679580853767862154968255348245394856549661326187708966662035139127381006593313206671377700863902434570945544590387523857507823478210476027707556699842992149986856258575421576800998094905046657821366412912937793582693735167208084605606013638545336873989941437298673769565462809803160588436182770112211749572640088777732000562706228515964971572205220395529022875499923642538859404220977362817847211783370616393579711888283301465260697313740058484069858835830599766282986982988497154779557045025994716275092033442556564419605569939215633684564040931434120844663285727253710567001970793544642337776484514507688313211180175219488866735727617776254823141279070649783329359039615186123174503136845522551441556710131423770733901632036058548254376346773166957193296011120950869947949083524163962019278344179066503733061106071543547065401268391222243771467584305294119161962883945697775832294171520381621948545992688741447075125557032644187429639746014805389055872293083373077718082250991887996512880071479872714513565811271056274215008971821912291618077425941272571306222357702304067178967700720506197511965090720993615620092652834543997697064291470225996722684758223091429339775651408144235431124394785294906578078324938407760787996332049581144330299364690846790485211751111192210299502459353690246801053009327300087440143722919487041552852342113121990165588850454659179568736742606164947308279363340885642835400805662311891786451453744713236957508587780471167384286662388515649501419854619729290325298897712897088680154238281520196567308553949868524270680158129634745012141913474254150673844619388490943934843851196156064204847558488085844468229555273468160087387204558133778981206152761604446902619153527286375727163776475321525386923981657192147024277945005847690811810271278944733696269298164260909791579773779085321956008410566528459520969322574814865571561358741302304154639547015188044081963200848286127393057797692085084484894136805867752895212371678744429998233173478904637285958732025569897747432608859834938494295652764872083323914681118512705612006136458252920991030804744143650193315745437051768006675285408291197719747917626804260710934096662916029596574296667376839953268974671950746491192711267041806398730721121475879888816638885768874707609940827270127053153513311626775810410637204068418394157328129454177920375508682599244262830102254270059746470851362021199519993037182534160632161834569896409639365563853754887486233130769122796935725032432450298473739191845509731856717205840374172817140689229967013117097642806602115642068934955250990674705981286563559961192011032486227411836288542603986729259486085642424304045041786319610602878596427925685979162444217231243949942520614769531065973307365718457665985673735022638031062778461593273662763099307686075976463378285019031323258637607335269042702992777072338991820127054494746584452375716851179878088102980603393830067197754256272218022711879839806085028521412952100355049295367959573173016958175272213408732091388697567020417380835917092983287068592484599755910387672452427978362808260262366175866347012255110404964712027512173084306562396395623038369596443326654245389152916251671122626880607671476395514722284058078717793217806445769343023385276681490099310049256900492179449560651277422928226975706121797575033602821637336248907216471574303444843917341141033040327144746557263097673058364104853297328832701759340286333653393174995215751198347519061878619294441499229558873931955817746464809465961945802680080064350737923833647408777741131365479791970368253758931779722716539207842295843726748833476224115991405632783717486734386058160394017157337509648302812697986245548211551761676203881247198222772819155169060050956089053423457909756473980211812000321815101654569027278179206948460011723560858862579120569374961818661918842551053929558180270090818900189424809928323956011203102363511761342029907757011816283818347797151809195157574921049793279597188754165852374459159032877307080179581241174688175115022226466196058226535588390908228821703782705857251231556435099005251962009992725128586713412874526789919505392805566190810518285478120242477950919170589800370830248033093213007343569406035731918457778273503867087273578036803326700132926524027920693652887341778428364317673521020422390533295256503252074128909406685811793751561381452222665889203836038226700937941704846751845773057919809018033438426161050830775232983505808023162055584518896680873936209799282243027244127049292597267526518660028562990007927950565389294851171132054787963237459911803242488507556255957770683747574983902280916994776072044854866780095350467044688428589849057794801089998684310247521419248615188688075542723332259833421601186953235243878584553295493486676639161424621785256380014086131391008648148974732714262222114619118121357768574037050446235689317801893612878135996368977432444611227194354681399123243771616004238354389247162902587474768799441438975607640584617640536288899382742046490081298223846913645479225197813723437195937094035878952951112667632023971632534590863173224282914213544708235058938727523430480350458081715747751616494829109145346984498419853763319799684337054105990506783907081830116607258919148335849667186648555706240922951488447238256358306918748144205500393310943569266587849088377043522524900691121149286158248279718068865348187505983593724103060115167081294303817471048767435809071948638555595043051051020549212787584501753238939857283313251916399921990416461753758382678891236884574967148850518264988500002599372006808917473631376737380654691854669871381930686942576690864145104488662209708782313582350370538620687333062821389248702297212286385389720057188309247033953282303727215683335656466533172669403798185976971775494020967454803797309676141037293613244293967839435890420522141443069601346171914223275224511352968715197731478068527830302270970295128128508854003637318318802702462219042523232600584087728596274016754411699828992393553618679399423366860474923975751055695289399635195259610264149478385502892059798635359040688479506425884841430088788848764360949683160641258089499233111100846805726531136442279885172972651531146198824452447048498089240870209167666989888505112048037234948873303360455698530696004666025978100543752553076181860565073547313618003293473101429063707122816058358614490352833257714551095538599811269046444589674074074197480197734699282746851210128644947193525158974707745269223104283149121282095299103621147967423715864445057045028084286323966331662121131982333180585544356843392209282991477163743244461126380091861367358724550104845181926244861159612407201246800256673264136193052148636898228651781002022986859715435091183552281410394542914107345255871632115065066794726815022648609995574545702546517683351019317453233705831944794115037819595878344230177682348357761360135197896082060731712566357594122917112685562186960593078769930237656038772543295166905374267763941697820701457864800177502663726503903934438711709922064488724438062254829390347922654670813068717170697104443760967046126748124693159717193061330980531696963316513815211312446948130244821308464361289563906198509199634763449955561864513085300546960693310786549484762126645698715221436489387372190065393460955089057814661787957389255492593674772753996182943332572260585226000269269387072292404278351280084152639623106073156251429589658609036588494013322360188549534905063840725357634097897040554043860493837741798082870787549640747355982234846241041855579064203842150907586523698812316134988242553225720530895728269727793426894878522306824409242639201615561997001269189757925321029443295773588971177033885140612574734268126198273413942501404748447505668422242605173835416045295693601628327702311664751671052603338810640888972703452776072859327706638259466005748971057455967981073407665021605534530392804132366097789090465502999686434463821524098487630770659597910210223911784033151002813758225990092225884757925036571166658567151925928852873557610801241502657978765246634935365266793147115891043167615872802953204896479547341682855453323365434810613901257058399421761564875875045457683305237887953465403639762044212335341446131878936536350802010232788472320215326075842429081178414655067022061744952039327795847671321394660813320428188717996790861510721022883269827928553240585430069797198759353195601462493057730474892875488193443202896563580506118342360756179856095247686545800821605781207746092707057681105351692420343930150132691372346887248863501588563132619434403674802756326459688755914428013474118047036289477175310984243461897492192616039804835107950285136165193574219158615816768269599602834696121661789064940623136732853190805592360951361963969129795667195332293544889327715705481735853044078799563996872316074224917286353701156040097447342520848288471331963821307794562111098183772433134717186597965800499372217124223394770975952244963324909220566880595399791749031488589014689953874111448422756099846337800031972109523494715148381469556412469769698446290937721477970095698913088721716398345770433257032961307712582162505386029325231741155597940217354009121823030623572532643209421988833035875815524963746891455799434929726233362282757834806686123405666358934576418568567866050807713661681453498916310364043441912244042497199591709425153785421775830520577529686023619122779539487782656620227934955136311610953617376800922395320434184332443833128678715406855070124469631004459625893767181268039737195386511046229267950684451980109303785942416419122521744216473046657961683002241778647341702168768096365717663571922730008834049523172806045666037189932756624692353697513179378968552607977916425753329762405976816554345518202309374203470619268221219769915486084036881754644791013421074095866415334323373955301587686719799997537863806205545911815656827527968458705309187231919833559413007105777852629397484310274264353050209169452375894934309438243796836269512781010930939364303659136782797224227374555244946110306213412839023885794115742982995547337696828664624276492966060142869287899963968899334178289479874805772334887709826546202912771008258960511902623338930609434484336418085158907803050697797279684295964531632786069493643133735925515121251406977554575632437298653484468174737851243883912193065732194607922166150276940490225707424846516034080430883767494835979353567895802156762525775010267710424276437177527644524369636727539185906905492122717044765729776661102709542298376831575211672033710639828422547432972958768994972713457748491275953901142860249641673623602043617515228422134985540656455447771784515147771353095126718657006071337448804843038302868653940680228316395231622629711252759361596891305439028390855312738210627999823283302284289444166539795749991011984588145690046508871651492823300077761359954534643285049462541990503198446498982210955832943925478931811707999446130329484664467497367815540431718392991867350277671245275284833793378973035111668292344703167300296213514500491902015542337167836820966578201395897029693397528896072013783374139419292719624239874442413817295749808760410176598714664176178806025114827289191903218307534812922953142675489691855401798387993407729941016733304313345378776984966133424203913829712361931542246791926832891441134824360519055353620898513306494714785284275736651688311174944963101198755228061199506038212633171484361529263652948238002726987780236257556076704049325659582820781362796422870188504036295633189544672060788386374153643099969145999694050807686081419567813413163007144553426864570214546092801261454848326193076822259772523277966255432914935144748600634597659520606703062705321577875017297473035735541890392414003909084776636650122134742391043447843157493926292547135683869670363214792880904131627671895016984811893986505415879392577433838699037888483223505851167385273930371689642773444003960489688858549784533901755430940530379708808402430522139854513901116893641910902914685037252138137037150555951054680311175185301991865016371982269095110420184466176734936010027869507638624000643248217636940735117147759652418447361429210305265098301558676991482255276848266897686258308704784434779288752807527928553435937256406467022713741246729078436565084254391742384501524730579572866431892395591338409203888404104546843271613736744957249827834357433198773911208365892314148749137131598350859536419374555211866711729978305917494326897384510134403926901289234085374036569362771055247372893191237999591914310249532967973771329675736439245132187899187893687981901952148617774640766052377886759324881491313431283763749227826115722829753226461968305445747773590431027478000991096051641632722629052752556031966570559996625533218879268982973489479908261546119948378542220917595562034840389360674574351397959380585207352140065431529671591287925868171946163870963535425953950662430514974913477951469012373606502239638486525342687819221508364221169931594067808393197632355926561999430904792510147454823167049413161813678699166337871124174264377993900445341603840440547625048211868310741042445255459467462260040739928225215528944132542401453560563260439649070374426114698677134671298242068418235171309032926244770071371299976229370938619060686196499315995434172335246040510401494903848228966099810478252867079950179000512888400293563136085121238399114880253765676838310282826903256545739622644868972158637963480708103807866932871723431889762603772223709409479956774013631982560987106681255408323684846240766242342232771480201124118860569472169549346784540045229758836195967035155964529182202658763646493018628958201296956804578357005946505741164062697217959816111732200436220951386751892306651714920313390432706920810352743406277201505171148939170036604605418461834712626146030042282513434619456688033171434161332066125975419784401223988054948405077226843470968182010315544031603017902851674609170171999495781579816887532033175991250863468253596513902888505264916241697416542672296216369724835071732757427537183877604823713294298477436414432925614250903261654518081943533770824959609308587011723445408746000455050700219672282048867023901695821421724872108719723972902541319404822599499489804840742708721717733623595947210444650904580508889390130414369070609409285340742359160537738508724711822270384576535786098144961035569458976071026645802126129806347687235534915778500249528641412089833632151928648079018322482973706885064202226512578400596670043186296560875989510680692232603109933545269085313840193593824363529820663082372249103550811668076943930494631682345339642897014354172975667472622324572062926899546519136997916204489842391732466211145724029588600191970973989424319518540819487007780552349796816399183589138505064213957507041802738866435031947189822099449899420849518276138051657674076386338284127120354083397257548491125859075823311236907429412963885346270481376439461892853202407156811697276891007041569227303306337953612849636518590315027262071567072167518259211432472308050468397293220227554634881476368218584708416988204564844779607069471644926737761149850694066422689699759125229502929224632833896441145786031529295502983967368868947106800464041826395440226127884035076396585700635113829596116331894234604097663110933547728975295282828202184056677688994918048941811953259218487053695430172937962567418352484333675667928312792753685779744583613284917906968543447709133486419226135059113864604588295981238625479784219072042174771807291787204346589003241674576376683015083842531439111736644884529009593523904742191139030594920444399514811872700523149161714601280196256073764032544276301642716638843499124599600019055937509917554474994053561740744436058657120756096533203402773832229743939547397724951546135634587765598095158973784815738787690204923559775640602515789875619802565422702590462361565956848681266846705271778234049868524900771840984147356813359886687471199567185452164265495174350507916974345791396115688680229509657180366430113264759174641993862136734915767344562629888264291094601306497809400528160845061108965318877314204838790554968443799567170859904674602752817823809042297497289983362289420738318477967521247517262191294625800353167963020130067481596613020667123070740253443488655574697563150750409601632219333990476166290930880406978689642957751321767320759573767094472908965305109490426605162227867913044234805156023869440189828983511903082017458577254829419017419513648258617853289114520181483043955633825921609736427570704134641678783770091939418258065762730022073413500772497500766534643741771209119254089880060556269878360910372923291788041721531478453330317058691483228089432756452212464969968374811450079459314055909978246296201269752975459853966329709761042790074649547749451433505235264966529561331608480821412533898114315443972786231046590706427961836170919036752795490565610666643717607576940584338457350167346014282257701119019688538934196246213627550219886399046217597177176182568932745418434257908759319615214624142702846289502570434632489237472205292013876367308551481005304407390903024909363148852833806650187595346862580571355291013006875215173931077885525302602531050293993438446039587862831919817868917630896579842656400121416100234992699364074350173394240163637080762398206676382656017811505071042231643914444470139769669201294453603652342556352232777123667768337567663629356653984114400363229715828737701468568511511750324717100513866888927409330074906844825216601794627985855010798135455305451237051617081893405434317139744167342291789509952054129707793588102021654284995967820696953060790494797984382197274493555239853497369413735937265495746219008230994835075741431729878325289956862752076573120544560993593193283737829754097837299593648113059272003391425154543003637014044698992202932994204229811643684548507790281873329141507532209489218924157289842050181640971479508241263398594995893082561854679767567969405872212209005689157559107833871322683639734588887342406525630945781384590446576352559818812780726704126613423140924728678378390161555542561895854773141340511268509786868841315749414997582803827722007040019562933752367887301851464468394466340394301086377147953624111224442206310442793143069517150029838883945814537889657029422238993929010263794458505832104385392337673699047139944208274913176949225726213734310611815805224708522903964781529331556221101212215649772876843876456348298443592913549942807844250662571145137634724094489220762340552305562657460299074998903892049916913887107957183824559754863772506621241082883431914922287519656028678039012561086609217193774414885920998517868669125727193518505354256632545827533891605221841926787787008572160100345510928740115069342831971432863513712453996091651745673730094851304485050071137395179155738306489088907516182745614304598197422850749943539361659877228916119993818142844729153324601011905057784017285476918345599944474779874618524667837568822337389764242031681893910356734010259335784993463104213880461175420550627940719096760774434209298255850463975320736215424832872158961943254028238657417456312086476389511287380534273536103582266898255396614406965247042178575827087735046265483322337815760606678841415909275497969953327969600569020629453631817884614910499111244022274171212459361696998184387534426478637937605237166684784008258151432078537707014436762440014236490215693036321594238473958662428950770722247725103830770948105735363214298674075767515495084526269858563598693356439240901407141808316885397715296234351562471139977878779779421575677609217807064617397844864984568836231540571963219000663544010798730902193144430449924915792969902860671742099395098873639309941697435075121794135962449644137019322794663085960562940830836416100509910366034756625066725325831622190993207940116642549888037078597813724654284773047260684352006648568549604897832543712473120110978674961393214524268852306297652497664338112298652024297329270467523559249221843422412914344015295326642228898176216987752806502454775412269955991114675926856222868312934343448657190175320611063527068841075235103483347581427409090144770729361243683828296674486973530915425614183527195337938444534133967634617044867380346475466330266454672255085680506230876916448124877342707413318015149832964842381246321115341337542074785391629445982422868154362835314034213247759561433886798814877156855037309752460384953071427552118877434825952041636148496567529854786629665324708310677541855072925786485786919570920172763848532444546858092204985515530072983861850149418117436159076277206999724266957146406070687736651576853974638042549373544054884790041105289273316463800712648848379771904612114707858458770214237341454145463679367134535977564419434397530946800679913519870568449432174303018087758636850667260308404810472873551567409234280164655087975791508817416461192771326452254490800879331687106376629984270107954046111774074818888597436775212322487203887759769102107319500051768171994469711861440474140449186204532749093079922039877916546128247148289631111597096192706292351457508890444230585902351613000950833801860089778236079054898316427445861683179176764881395181236973797698615147356332540102353143691929827532834798596160340725477320326957302857148004978983557686150217128621664158668411545694430248530215499420903235834771971033369340607829030915636869664503425620185244489924857125585071972034934672366628353393511523112946149276402485450294870568511798096675080007016630342305109539609038475967009328797677941894895509115525996708237867478479690264328322916843553199388740363000657434054705792805849009301433037352074578412922431121690173074280551267688832914006253672801180372400793804844332455170523817725560269831186237729244461230000212537479029919797583586678063434909356920351589856882824557557787205685006875772420765275223671005169287287785718607422753729326120872954081372078539438891810396239762433531731704641432194365990350749486130973243547143608436051098381962330873913408838463936421914891724501556555906672756441668476530034742060766892475658862215769824284148505663575414822125139473380541269096519507049200663835420428496318496688529805325278321567991012668975658054151672564065821590999964423914511333011909013398089359633303366008136969999658628228774725867193201515395512186019165141378583445331285653699639422632130022552229290023916716164875765033434013173615389084761912012782186870186294205741787483516957451504051305340204623832152378174731129355821976316070860438854072434544545386571982190524055049163202455150746346902356571119923622201945417452360177074571887200405814774860219806983463050803325242550280588144015475906231873026533032989359356915179126474863906408541446214765869677531319953981578403938754768330463180679191657893707420986477321472815713008033842377238547330986163580179584676796003771267722096890107516432754949260182656937346560748681937381147003727637446926822009978862144207134361259263860369802664199168748399519160009651749967516326775723899746786513279344811995524947090110011984976499017794699791073756953119946772494109873518918052903492628007188012916056325202665835972003929373673811471089312116697270302398803523082900319882311882716958398646758987503567467534031703227813822343578672319418085145299717956495801240052415860139210607912094412639240679429364137408871920036762238385924377295551402646773852955576251452493755046127829770863554563814134044678821566456706326141256261129979831584031267376894510375000575818332677308698381887650516662761405853727781082093389582080112207863070915878394503422912855695668789039781668117887728440157441794187476190789162588895668808493623098888705136440331485608454863878078149852309302712214788701303849281629126396781062861026059684637160327421270063744562663171817388576734105856172299822137507737188567344316386765587234199577612143488059853091271780856678887744106394827757650681145637853595908666512236552646654910521460728787762967838356892112592305066513032853758312995805514146037925574497381199813440559961302420740921899574347150658771822100884492244453892441555415065192410354716260264867230010004818892504049580492824475356725155060789001272802176801892648851062976146948925666824832582277801606008015373315176429520278125048578154889287235565499622057299692868755808677680279362154647538614041083486474240680132809911205157848715456841838802902602330614167829943707319003235796971543332455231609569857929071111148661415205709021323516099060288179859475742716219905908350725307514197343433572591747015764003869268466203951415439238372686366509823108598038327414614898090141024543714346296574098784797969868485689244940340078147700678161216190618579701689905068611668500691584134498840910291459026973466918889314628789681536688909451327658056601674995963882217807577128614773342084802318153634098183564862909771776663018267971949079159720333194396367123786190628215217733595752924969459378149159312081995266193110710728994007292034492377335572038797408080009250645259748373277225403793372260184885663040099619259670810169588889222039222281319790709209032346998985187084612650588696623508114692866785251969150820313416428602097061210465470589988349046703555141953266779696855335591081142061125003849543456070673405796436670130791674776667972372786473872544851887496652917315498837504789276376090817613487721652819448166756134711839850644574611928603861854653533769393797438591088478685585447775425775032235505513992154249294428527762226098545111122931089725203464126699127851408753430251532991447842601523208821768412248113448101879067037673978705637133186140174127604675423521335180938392531334574525621174544503783115691003184920723826404229021155919838325341349217031427099423833209609807748251618811506581092745626452856614566729963504628504701317029018010800507340346457137651103573083563266440429001520170987711463763548162732185926050404720972878717167136347922402693527176383544876885581049771021020800763079079589398902347852999357113204402056782030991912321288326758081847803138638464336538311629962161128015452104185929739294784014233955272696276432574981262829057370772328724556814171083939067605508700747326800014199412675921818085237491770713139200206142441262111150147290591325452447132115233408783127194510581752254073119593469394765953248420775010878682177968535015439393440270519944722781151808372794023820374888738815561818530196624818484987622866236904687163647905385047298876852060369761468689431412723408678676706892365103430246625026799172331286637196530225583205244633740164371171815861881360433699234617152920132043749181016851558279628816738934564028927233456335441873068542173075900266923268720689827877985957990320439483648982745476088806098493892097992322260543163738510448026127070751423189708206364973314058151768035057674672080111012087896241417325926229742109504684824036079845993982765939543361521954107637393579199388178579097116798222434670875876565610656740220569314222507950442853910551222911137753524283285499678002024117281664514731166977776026328976790377676602509292256718404886318067770295676630388296773109701712866690093592657368614713368623842210370987691248921483987945373515579108425196996041201912704305053876944708002251640816970809818549030819051735869951879898710597178605310061142301086684569922179305235159585864140852142533125176891239825450112535119194216427302345503911537708462830400292503764949736077984654926059181962676561618416561805785934025076247792402637222327478918193094142796971215281937032758100691243248632333730417871551066394864066687079882007689997197334305069931654212278883330987351229997843020762451294580409851142234765859725501773386353346664271835266206983925917487340323085921105188639449748372326903015164373915842766652401871604818007922671161296516601158609817582174708411788661870389951944883625543277786621133065491524098532617227525629203205034694380205207006032278276509831384370674399527879365887458226471077595449783050771826044641147962619176879785208055327757233456670768312752965360418520121605753077536642490038482378656012341707067098974637827955950915624470455718891068440033580941878449842045860159463300839486975869302643957121999060381983273105654703884970268840175834932069527853194285403900473684387621163898933289586153656759445677256290223499399967280162625255299276403448334443238731503570823794378804954873318515674813535311765626547431964593691549479931761566773173099634239586489387600405211909749946955470484485097815695871120960101205108705697846417711153785993797257576671998541089306524731171925581150867107535950728172143942344399313158344984902766152408248676701333357424663059429194645562810244294992927455425449997812078787476695884090729019395749284356373126742161017029629306755851495445217994422243362618727777544613556146094041244229812635845817689561682522592467950151263535969027832340284678419043436104178240968011146849871973389138909557419282678518040124032519783574353579651858763470082636975619545651085331683568798648443628397489422502625657638518752728617526250386782845156288365401386973866994004298556371006225186734845011589737838355862884242351156487939153199661379229260412839203345880835941548318040903360326058032392388497214649918115374338849963400891110135732742426276637260399923682779574042636936468534410207667549967271690468431070301897792888519157310785845470423543913362149189344108709276150430955710065398316743086389430777084005948289119692602416618925556151201244131165411055077713236157616213364204200690962983397679270242800988063574098630069641797010824039687861738847917408089669965830712609809253301384387227097542303183273397815197512883310828022206847875389441625407806534586562933861463333825266508997601466109357230296063835498827476075850415313633354500780164822698135938000533317028645555899366441535635795939904568032236921828655825460145917143918374371077248479594182238544457293863078420474711378296325115836272670073463273081228854513109863261509628727116751162911480801255776930439273356627837086491246701885047620967075152064160542543407475825226469116657351187332776426110108536713285651815865632459798237697006503418034979375515214217702918039323716105803941374224350066652913522090560387960251696984174332247293101361670588963677671451327323385900233368584888253887769429669820368012660362030404796081020046580790162695885833799419222825359657631342164902495677050053341693535130769214063308304146779560149049352419622863153589572053379641559594642972965302754086720677638985587712309681400985582266973537769421554198570648702658574108198430342799712133784162726711110455838033453679299222989878169856090412100384861653186245598885909744581182788236969347991067205168060733337287099731101544857960991710209286656324433858701271845791322080524796274680293433246165645139590610485391156524201034923515853688997375905033772180670890508039688150968697536498399420282357676777279560223306224974786224151685242545674971268242868865577713707284238030554903312419341570129380530742874174992366226716324389365581698059337321540362369507613094088982894467381363728945952586386571515072944014097904755527555335752837217834483898640840436033552159399344639092423544641967216879537495337070896444922494487731698349879685241791820553862114892126923068255174379135755124964229355240261997953772272917654856255149111293848752384033087791939746525862944279123250299453205159151353668324664186233849927387472339726285674956514831761142585677838025425807139093862975898564006823860420177977219099289433885663732684421316197338616881320632569177581701796758598018083490880079902151717564792027223132236048457531865941605467682496900863585754975479127123187051674573826489372618896294223564376249423486766102208743205515520192787385866161691303191510170683677130606826936590854888616519859008039273984366188841058667754369028520322108624345633309701891726572338001096168024096041113460899690402863425530551000386922281130270997117180997321481782441622860604963551654550850814254506362057802198283777279259826352134143590969830186310750330851895573010472912324381893018871438646458376601692576595884952971982354424276625635563214519845702831793911681019137122004330131535341062949872497373008868839464489600030490735545951271736522909114764784244451041782939401408520330873369244988188415229613086953059132948289286662267018401922179238709747341751836542844754947301456768035038909726990343829381036683743134627794384235508349302813452951010654931567587760289276945024278920697202894675491977958944582988436836090291534271724344254018530742214229846186188697383075351023679565483767517936942614576440842779918515072664122260433587126160505477163340729406290907261285539876923179443529050587651556265162288991092412092902472546350800780338645660105027709395797790768067257472938267554467897744186829030670506319656444209056848299839062271274571655680612517432843270231769910965965098548710559147430731632093790210068168681406720548342047894754632090074901560554305167221578862572537343461541287542816803890126791327563839714027512543624704596611211824890938206636890567717363639874130715686177675643113076645441176896986205894286254950940844317699365447503998938556742266521547105561318965840755709909498580066706789714471970201174435624071043622879000048139818402595097752652344987662517923101816588753243705878555442342082278856555560766899716167415940888111295643479411652880089655155177915149703331895464155864132761117293701487857695915886265940931839559155159008053546297685267709761738448380875033695448832020652567681954619340000433788708518566799321747748101094067244410007520636158861708880614999533415307931647962148313240286395901380878985062238221130882251936678176528328478708269718634445587771237708615125507175349853703917360737269307219851996505146224300825936998245196775656097963633156755370043591268626137945661648400985666029949633716521343018430875856074184999421487591775737790331653508909004291814757181034755341950116895484070350254322345842889084265348436390049822012203860552692844668299069611342936748227854781427938933134351551076289102869096435010968901239374644819312846236304175025527900356140904027114846097678873721118280797030201433006758522412653727495587863901452745137224678397545945639798793754934877409686754835952495845757790091305636964875329220709927259802608578450331500593272208846249294265449180575984522952762724072060712561511289731110668171137203237644152963130598568522218330603019946102555727666703635137486611757123075827500928188874821248633747070576003330032277240825448809345324901359745169749170137034802647265323424160087180215049927857292850959952289260686279232192952973101916746105674145774145895688985377188796020740766944835742076908342079998727087210516799858240649729223638808121711702378456930298856543099982272266617587503767687039699401598175351181382505619922117292391805258281166496978344217207466632426760163466786812363324324264391878525769658624402166617616137503446420154768937705788095835527762458954113687282658980564451694655762186447136764458013889871670125395486311334358129554444462116427838196880135878912108856632335239988304264293691215429300222696589452858943198396657336643605069155700103667495654669467833806835916976210307226632067263722445378446063229557575129092900200827497147502633565666826559275893311498505275561521052030763326130461885497382310720924976546855673337669889727726874187368625638191178969507157831880968745362021619444690326806365500188036030534388298268888456879388949430234519176139147048546782948249125882604304070266558374867892579485663288911913631641957567529772921010609588875721615996764890637542893114218849688467098581129412187421674589586249280089545982647128105704939650004467883833489888581944056796019438631910918030276469709060936880299416947061103949422729437000086504073405617763761661265459605575743555691000562074600636929067705611836492422818619175161737908108633197075844684200125475001981825068967305643820558703955144837352523813123733054833309760533900496836513107314635458861260597512900417496366872175310935574150798527514207749332935064020768846254464409350594377060050104394586367244480697564307128761441404349116296705041394485835433012706164379414919291392917253340085130483653008127792346171632945354400588831830848316107650158158440655213780506543862025920002762567508062863218251163019571196640978036065220282741589675910988839812810119883083655122342109778807878737129601852332722452232685724816787845723095680345142084174005196817312237623466762518950587454399796863387878864012148826876339559178338032501073616905112234647577523443226152184082583539531381875461145097430402560832934794818104650007431519483647662343481804403927609802282360350003820712953769460803387700193563134582888668114403182258055191847035813797791150684957324415221995610586177439221776372008539152969102544042525130695766068432163273224751603709734391284802477439509750581779321019659085484203983256840269981749031763219984958457559617906270045378582425134210426682957571511586792552158606870589403705060596515619685114893256348703740644775245604275721074018786357592528906755013307786003787703301468203405766617944540814981262055523833361127060662887943496289886361372548419720962766264391857143179065860677838460530870434822205592654432998121618543394269398933887455723462128064045161689999528670057722733905131632856884596287197690388671903980582714786553705823452453208181917365892321550757839161414280085607597662944894761016946580112422099419012282692607077960840142128966093130124160249862996972434579705571120299554907555120727157017829790266300300291602701175046632779574765698900175142210582942129250500223588496152897846108797418280138785513980628788858854428691373417656908490341833178314836412507429062935106953047803998721018217779601356102318975368145007869204440588057618887122213283783289797937524291811300381131887947042058341893098068343108577274312038409748155642363547437884427635959226396367462739492015163706394016323312841697473759683391362314228048391592782159103527594926326319141688756505322669776129393616344099437404224433907908443619031785941835794069116553399464508974544939655886839501637456475564798030025291912808150776798515777507181205757425814427521976939006591412497790881555057125192263606637599994931857330210960846830095904218669501036870703411090157176890968511023546470082477135510929221005063166763897635244960928880245263305690185527470039668192352554269289418995479007279721018913976364104974097265744231183311544158113804002276419179173292453999201071387916972448612144861846306781721130325332189947440868175738921425198561243957632703557548813036311215963945633317690260830748626037805231853755773745044422103580251589173565441832327744334938338843366791318435256522291738582197285392265639180610806381940791139972073374691559553956655609941741909594146081271751049605978362119388750834544193223318703061516609410387636078424260970913189486105559845013874172124357444308642925600159158290244196794718897046220951826397852254220520693661335453185189463591963702022677751448112168616241568875368835776280333346032119495020422812262208563182978753116004229543055802406246264014038084398916265296612254635987462618862305586089891005259994719942704323263868208185285993750365385627605265746504170786474183068858224076740133718329418271605758834622383576282606856780357574105790038969134259534818547272593613510071059883858451814774076305101292892132255925757428326990437590830676089361276399490219221563331496115444500630775747206333834832856795300064901810715131243347060032979504313999179652477095350758399462446453615155306683044062302300007661258209280474875733932230324390110903508543017553018156198656664430226643195263985290569592651167402822643678800463905142071551278909563801411332010652926379572887169674978937814820456219570650754304104828306243269162331366962121689561702332250970883423553090858847342645391531330923248875685112336794494198248924232833775081516011923253254161630225022230431918649306749645332697498957552070936042455103029090369049394023694799278329166485059967965990380558430240481702944130642616533878801349792775970224035211234255828421035895076790932120502262172740903274333502710205390673267383923061790624455078630695323231645683983034370537201877985293643731973812740360503709175041883108089331360860074821263892405237793720700404548012495162655481860585656268853811999782120357116148518889702816966225273205526147341126178664747752004093648540751638218197918731952941376334115638484396799446662373945889346761196862190867498716060630184159294175569611185270530395828538695386850053558695011386180539891781047411476971696943514698136915968341725342046091760369534719092311512522546253107588744303015283042952202594055388505785637320678371714945447426267000526325603868165576920342340134314382802058779408353704964306130736879950902953993616626513996249262237560412014938364533820166179975925049150454757998380625165408289165707591453782083937391498778928918652192587562909562221452629294021598168712114188905059098382031254117006997203750769910313930869062766677599064589257457752001681121828232462524267207952258950557609588509364949616122996042736915526991719978817032221373205391883661096900084140856613269925283623083688204022694709312419566786109190201644847275104018405374296338696843208495331776033568950004230758164477666963343168951534609282479911506262272403930646368749989677061195582635494878427734086899380279628322074671329022428973733496212187720144636420811321416286595866195132155499191239857453191134294157615669857024905796822349316481560484562721450337629900492110371394168467061225289684661862687612113717867609626028017727334000262274465393815235167254906746282908839738254948019840103957721551373273321710080006230794059287350594004567037212557735906426732280566956638590721958378179424864592071885516884330903529073521185833218745258256833394389503248212479294995204227287438789967347550139913796969338682958318508645071312303152115088712647068901679545574999843033762142807349860492591105007120398636349142809474694781366761426403514464980981477523656257894755344993520690358170129553810212018670557896014529899716441171478351613102068275783708385832207176895152840924128652950906904756480234974242060670666038398138383641111031789801231868413839179840340740866378290514939167241459842922478071248511631628721180099909699925669082137863464224577947297989716135494300082969010970717076805218982417168558967535386657450045007393255178814220796269305184302765291042577698045735393384232562367550164608331651485886370621377117099497257935796898187320771554154192343884120680945143124729276903969599936751549803048425587014191713363445238635411597686881603267078407244550216613317177114205138004579137056741840919045716255958107471415337454716453504423584548807080983384812402681463686712100698320867437682306621649891659776225582945885716546501824856100018657340907768749848920168498167193118022827804121403052848995883097306512066331258832725348119703816262340563136563250945524755552467887480585337945687427213630365882891720645104476317439338972513428362960751417529411149937636117529844222785387563682761455422535695981188522854391183344432647151781231551966729069217959362819857484602182082549643997015521839265963651990486598822780325124363322033016595115632587394234530171517332077580453466501630774657008913573187839995322739334836516887301660113482604588123518085401388175561922617982648788190143740777987925371749780747355561881939290605820787012048121625110965650868506890283981645525350781789705294008649388757335902580077437916757782339093722153352785332636976441087224281303308466579518944266292379029312693564738501515035330000953869440791588575961615257923117360151137486268780702001805424179221773014435184272527224712747768773565813362948541413085194561430821001225245732004717477897438650574804405411312600180453962686721507796975733040995105004091267781709029332214277328406013412467446169353453578362063194238817957594275880266357108561490511312213275210950524377206690443313092955526136603785070179337457748126942128948067727212228334432151184613610365433546809831986538366107993347105132185715954328357057037150842981708076414441556538582640810049252376259457749658016639876841017213546651470559401841080708960214754250492955783708158051801718097951511829902560368001481910647485388552758034032394364181122288550290412496227057769017776030961360974843272896582422630464775427858770879430608831280781153022575584461690713714258102391934840906009307481577102790125627582854667938756085279489007459187885831086487009792175957755879287668352627508068039416013176282470722110012370529909816468854656851760137643495679237296111278974979374616048007942686697858927760982825344314905291646955774529631174203084295158012723574816677344499765545457232436720301546901322026304796073426272187651377161622473799768678427033191543213213891826511231068397221350752458552952280503458450679955103600750035415185565013365825560100687011286431231977383787550066621851776123496565583079345801747668923102445579386721939914311595646255267853533868132593159987501350705785984705280751991894014789222571241736563656469497011573854863523628662580469798624085115836232918314051256089874128435347555188334834465923661083043837355374122390201228324479798331497502215885935285495680451805451976336221924666153569762361305090170834444211676571186130240684808955595142222978708954645626924599895250134362537527695606875572196376185567654373404397237695260990248737315959046517431670940698698231171487798412852149394825725452198187554506182920251623208595624644266249697117094004208902663217091844456361439307447338200302207628505069479128904850244142305257712065558206967304782753180720395214021301374420757291509761410341978335361983060529828335864133910840973176643344408875134631573498085589892888041562000848029146728237738616084157522032459255900884103299699040711686222130584554722702529088002956339755040523827539500492713292959488730434143223385079660854122158972601401644951729525622732093717718008378116204610447602975295163363907056156869406882134530692759740187050066262750434015872650798798506810884479700970148572463004621870811720613664891370327386586978701128548509035414135931531207942377909387035735372822381789625805929776857476442740612498418297082331499515548756989973584494700533689122205129225636359266515867229927480548200421181778126272158855591111731371555063019552984950011212045558161301973913371448820344225220250937810440313897534306997483513254852736626978700019483450710988032244310348504146976749326637282415408102251632856635113946769956906080200198219852701086261959541468627939603220180558359236049267974850830932824840418403403376588194337965745912392812244326720790753915471497832268282606195098806317156896581227601396683797468394573322980598363352250099545145400799537295389540371411195349834815000269575955062949907376209169998981923278485645042740124900012949390274838352774270784990698683108716907163113445692205081087919137498435969776802907938590630889218374964528193477036146703499792623062659486878260458008981655995103142745041290019256678124995540047644495357767109183438455452200581152570898927048270199250933445588948837259345573809965337879310487426463060262822924327796717155299040685326776665260664167722994368563348287977508246708238305729849034632254419387267858066834529432897630274767417099362487702575577613403042407959284564030962528716450649834217396631014154743564148081605347427756301296163604172412497137812310010790528861172208091055044051988389844854586709116519398054546399287500886455524776721219017209968244698775064980548876469335271580130513998901870836275456025370019404152729206911129298388855141530439157313125510240009372912726607827175032705009712111344404143234422028832640262073957255195606750620265678189216432586200588588179863521267787443375084573630076251551728142729459406805241482672017654299261436956719025429780078579618714250681660003836277174111528193540582468390016022367781111529760086362131166568414947252187148145080608393033708224195367720609843161695052385338998274679474702591844441998314428842491422777072975296628667672306347000602761605034859498953053342992493113650439791669824421896765998469405421595803754439358940511611670066617487963308106123346341736442613971928622440562237984645970405546970647492639827568027399430058055279806070423985442811109957722628720553644481268066170881561117139946440920708315343426264692512190119366210134542939483157772090263341765123257486645914893450876451597104329558350408751720956601036908452399722272438402038835744658595350292237456084518803438374871664408129679452602877093043740737287690939206034387653788683807501009785136909037948561225231123854129461393642603054083182167268923355465545819780908907467924358546432720188577006259362971374385728423859798029273437786154884171597844256685133705517323362075310321012097201547018080110148423786094747620985935001314679729594325761668454560712422049319958608262721845606960776132391510358770531534689812650767620336660632355292567869741838825321767716708538936869041723164388448430403900518090622632827986145983321262822257636982844556877445385368261305915594065377808627265146066063305389327956147906612284105277496643292294831021866842487933582387407920133950513020265886622637307926483216051728523184894648036464995879772923967185753043939032441227233035999238141746253394200541245331048144773847478434597460315057942174977547180799408662432906085364140542621180477353555493365357031069001477045845112617741553946451011395058016485920832970769399502132277188103963873055046505933710792702525633842274095266920783304729470367114472155298383877729640246485844053893700617982837597438415290372465200718376431533753656094912259109622554823114399926403694881251726174427497388488867499298574155307874397244334570093367950536061714831184002986711069170970455814182032343947142179862910527707721695453604997415495397685874141925522187932372191067086103816384084243723906691301000263750218618741863278827988430465729168149530045806270864019103651931052808373891977497689092175326493635394636121054756475293065104653115388468311612358571117781085384498866211638385181327981297725488942356528013611611652128166410817744432567484587744323315131487658667402145721012073444473321417663863703339247234357930286130714953685410096736998572447094555922913485240616603451455289986993678936736900767270318493587091268663442754586517120412294646866798418165783593306293750585559802415609276582610176527025085214888498304323515800848299859005091815957689400634088263894235521842586775533502330417716544620728733696697677989339727634833075710236509021509787296217734046103781292757667525543803652576434713153436230187778811520643274308462015287316890927623239377646232161736706810471359760788035974948009412202222752906850221209947842773155300486039236424213158806446541048240303773603972627643790488864090112832495283406997927459362646806358751140914977291004375734258387879839542885688673936235096465699966876033261298242075130025368621530281915814780128081364922957667737170409340746271709502404067181518945441780644247395546436579989536139729824657644723989578892525239536795746813034812951271375023361935770209328917681430428715195301632355128285511956004276536796139718003167416175269130806067565048709039256992934307190285968212023570932252177268695983910300420126217694765399257178464373305581215030708744556195685134499763034238205432741799311505599195119373778129649942634407501048559739380594987572536890418769844522287332645191026995667790411688685955425001813893948770051824381144814750459357176835622206647366859905854390742686773816046854570668629024776621401649598237909560385818671550478310574093346622936326891075838253084097730506580801313977158814524316627542391139177555419357127056217043941850875886833094592526927675004232551149893830996483291733912641346085270426858783605697375011357604833122920020939877582422892382847930125154996391288718919033853685628373101420095188257507700921353901389599386390250189519092049352485822930947746856176430954607470897610925596818815817429219633370143427413833410991000167361218597165039535920989858053716804017015792338187047842107576008558261540704124618292348563112065729447101912841850376801827492787985293605707125245852638833274161022086040174620569063452729862162723209852657705463777628724190604032446700468363983005808449101055395633078301782633159420925677595209356130247302619797757179896865330815822228326690752774453827417628248761157941255106022926993210460388478100519770116476180814151513177385075038253213098768782504222825916176466795614836262721456677528792793936817940234228803443822901703140179319237450158754191040336301782035982499894333755430768134475339104526767888625727517652528670989042827308789185685189213957947112850930592414658204145498376856401873809798202924353055254866303886865573355133460314519142482635278818817107107789478696445316221705365593140236794522226567828023079996660381263187111544398723187343485562800205933815569001893351555185204006090640004613812002496984087315529319805689593211011673539412603041413039542373923877221111452000193023230724801414203118510973660165617470339263533729529995587725876650367045433566017541592613344011911887793741293812254929930988776774773641618245465693094777018143453163092589626906245815607649917780531820015850301502981751921465328626835506677383905442265391723157423689422891349692524256226435687900097229959855740044890227697226630165367795216542019615693894380927967995281192893343797861503856359752905397658574808415098874302456286745334081119789152759658869943529903880053187330964174673566216549057197885466821295135622921039102206696977753058008585939899002347217237949585705632180849522827961623476025625517812020032443021537960390724909679714770081455349394542733026356746130711269840088749771998999860024019974922605048781018929411689649637398445509722128402581004848254703594365921438505757431885682825094753112514818740809868829287195879694991749269694513163504631465268404510032318789537016823881695462422774169753463035626882177343718890061972562274049042510023422049703013433087779564668465188136235282088446339738331357680625708597018006177861333248632162108352684916164608804256814303490795198650916767662844718128611040567370365620994052016226447869717681396393354430503615701331681428452876706993902550122140588549884701840819269700625615064763818936737396729920604974706107630862163180413430820259084676832833235857485272711222518769399048826603390317861124479124521904893618081346497669399229467777469872361679883508705238305126348705821225335386315026851326898353623344447143840106795959046074717712030999675310466873157865392529587656519198701066807056981057504327923721726440581910685916953604252820335986003769378113582965406574766383465614882926998157249204371483317296047658722649042118876854744161612674905556243280983498687179476888786741379238301614948514941545393864511283647326046516589042823355452209546378645222032605936142833627175780295887217668163973415437595899557417131427915546379164546618510698519869847936928286327706673534078319318397923231237494390804404882947513883201460804619210145953722575624393528643084609330453423010493585542363685128085206304228718086312887082233631610432157448124923447885112265031622279589264310934319602750738668706195467253226660545548295489560583556527832640941233730022828436953200485632831053503289411772674280441973042038001562088926032167060982689947350527387406907935759033559007387771740959244246217525559516373392672805735554995317655518627732018746505246845341044133368927215746167281246067564421133201589101642663870916666594703937092479986370295777408831853264957412581405188689029775301616587232839599150718439335709810420868434442902828934483675438424106874103250771175747775708415886528946374800972124790769188206577950503376621867115377315802960171275000392993709018726473657377142037489095013758477727717518451202498379224224302886821898907936426036523696849083396188297592089675911194052395745762556858455834751907002963109626666660033237560248079871793033972731445926420359990982710075470967356059952792742936984867268710639459043721766130757363135298683883606995193255279291422689228139342538824852128397795889819067279645076418080887493682012153089003622544746210968004097574316868201101227099048843432208246327299302187765871560989765402806358433133236213058443139025097270333490314720139830834127353154066093326438760006830162232557239877507490640854144801566631239323396149755497034494516002386556607922522989027842123579741026139191721662614267677996030470923073580833107633029881323748594659231946387517045670107253126823344989541182580268550009279609352876767854016645694291980251195086846244834537182283328072550525415351158559745852502019728544510858288852497982235570788659259218280467499878843469372676348113051095679671027414532472308656444963579954586368112951972852060925816173971027881153500816991711786411907897979022811103361472528964192875925130524224786649386737557656580632193555303701881110890638657817101148589166010514588348825932945952662862339654166635669717899556666050670528140349750495632343439752047220913932686915874273695180666110615203419817226535073823144305351428720972437484744969024928033758414456965830369707503450452395361960298111335028167194139494046111750272184168973004960823312146356516650273034783545210436271542956838713804608622999691324026754953474173953828409324308949593079370577863006920322975161043062600144909290088387166802853095947021004504280394706697313373506786612602301822647857156950649873531635013618571513638085531764948705863702811319276124399264948814968703991628550511391716805029185462039179868174759419379129052314748425544618425316331114236615550989836873512206595558564327683072867850000670243792627096822784332955896279009885725010084845949988659633724108634567094626763796453658026334060828383592895652784011834490457367871401636867517355095294849323354570047035645038067868550204772381519745612842147169767868745604281032819499202071347989364123383035793905017300226749280823038744154231173541423280880793100027026724972118706905715176529361813661980536491453017158067389778333655200261739745009672374847953893035671056699290879560293219392928379665518851300549615149424131642385412141363246484896128304926952062079239314209191477049175223740983411871358626637678486609954549653759012741745021261563720813882763261097005095619361678912873231125310890605633627153881449553327331957174130548168138678590129762321575916269868648141148913592641929125315294965847404119995432746189252354030917116591862388848938547926902497844581973225338177148179452496805642963505311386627557757596628663832071517531863725965261945000691829119618236011346786767458928711227112237620191959930068746493960706450945137893682998399815373931256710772845323085601305117626425390208758654982339586816695005584861395660190545383824779916773572378283268459272889168486719774198299617416982626455076489393656191108761655385530073362942202147529452638030382106200735144957059205108717228223927831414758695216512532125452659443848447000341071668602120865314150456792687566923509522763189839348580018726549796866143475120975535982149085753333276606277801849985534612516247552555033542665123906337630230491869267783259282525506653503367281909150885237241035445799209875566809554152974354533807613456910357965433918249253442671936239103170211369536470704379210493524233211140188253880164630055785797173438647827432190483914213057451420772589465091196960040612495930174425354969890361213259651325236350873420286044373102055164908294685033378997706820842052500770972292814493319200709999124182974766701327880467886528807930829611501636117689097069604250173116055572777680359876661611477685510660087614125138529057539253126657001940956444999879347273944034936298677647736783743647124059083156295456711351505924346082694067016069724418478285022916942708557947623311160924566347058943568162923275630429623438373777260059632793115742766488644196413149738700883066910947511290194286190333196964322641651857836321277865570764580498273309536163326499606012793380578305495309178006380560251508046898617069175349277128235044926132884674695247268935662860836212949127880880577506661271370794512768225829377892340748631695070614605482327262052689522285853571711587446748992041102568539962299813836648747127009424908372213885201546883666237338877270977298330807774378444104400911831091113550313531171249470375455068011610788114240072855184513605281260611005404022467640139310966710268584718765661648453410278175010208990580507781788745234266030421618980026536889432837565557691973040883870876995656539721245949767399692983929993072373062339432499868228596238470513239784956290952869713526042602636736259179807723554578669219252705886451108359295658216319781244379641868913678395103522874102210788424647540673046044991534693546889913148312076182434891465111706598541057750125854730893234492723530913689135729085702354738619784549069725301989872491268553136126134754377943081170075485532739865074216945707014871112425583952562611626322056203137082389828811224016344637126109471607445931062355455412601285692159487636968438686397246732203068588940475993155410024811708266891966224539739010723426342875291093169461353560324938487352731720240522036633271333352034811251548329275413478744550303858866588345313090955877597399386864661403985514696233605950491651565510834046782633340800425254109220005176739028142162503916305161655779850982579917917357229055440368786046511997825912804664931743566148479204513806378784762410715344793748295461100373736262645664132966893629962667249541428793055997945453647877182719747203370890142038883164985370563139333944742228548002363191369815461673223267708598833376109057640223162447670100503832058038935011927709979716644584045971447615233393168775641704352502270923366737330788465799957527140029704132914205847404011122068432228396382877499988756908540874637590367474564272323960233383919499573483474931942004718878553465547610310110510915793980133228799962818173886236308478163805146877648023050679125948893193428236810049246744794370950816230271094581756904384741447483468025574107391969792817450066399614456962592353155454442630690334364458308367735808778633221233417515397859887210121273854974283780370090640666773704642532202457296616654043931144945040564612805108019881165498966805704008174722653327575552741821028356465480420383635761389032638356800692367052955652073257752679704646837851463279159790922310195502616727342350652823419910622692012609154615528732871628293511388001107471916191354288223256641388212062694000487062616377610286186785057893659121402205474503716461708483339611973395468706696361502018259794360508671281573482131033959070635049724391445190545469215482632215146190770177795387577147866435655384162534919776148410695144910961798811897083000358530575343240197149394410622322616920502811440349727940131107707152742370179874895293185061512163604460463895419547065781680188230366427975564746714180780895649239288669794946910033006694426941222456357785879538470316559885159936685150504823155963474371305624018848784296237624362198137426831349492069837610438338124244730747388731246416529498387506967400665194409911866790498495769500439302001643505598320008377518099618631503208215075510987660681597654940663244582678212740861516007414577346230192726385345998386189122529353085637671941609735602472232632936962761699604267031657014724813935668708784711735827870595714134476883041480829709230516330758045741598650980773854121483483196464255996513310161927480942576893766169374605016532320914636144454681772332130779807637206882744820314815339655592899650814038670968289112685636399282365568909472420182014279714523182429787650064277724714312063149211147031492270142351150849045886184411119255097080931895036184931341616911583587885689945646782183048035337413794511057818932026478595467478883319979293856731037500562098612051190285639774171009077944201877888905489425888341158328353885061693483951791734981116467579345989533143029329828406581680286839094102598790927984646470536574509409395657420728488635005711650413987354774750323706158284905858690779562757990653004786862045834965671335589980983172429092041362492843278943667573552742447829520453725807978081907379177008874483185155275011141357666950248616870284248909021943428704820049634595309006677240083879912894139889856463791868368964788280164429596489043000923684568093966771787320817607569771485908146227079577093411000144725966513515154921544257428764630408595454892552162275601931150193669073479334582989930096611681707510958114787272206576947352083931700292628805954914854686804923670471736548034727773065186815871551816182497800559615871655421572955647539254502152698900416565324805025491615763631320559763927391591033240232188525035995814600356543707483626773576728441931236163927966447123419772070456483153637551332684051681382503871684767731707789140071493803237538966038469138697441248550955748394533761468420061734573286665663699286742514703244075748673691060788186846075671034791117061616739091244938314767596950344987422718224399430544305088951830046745732047409881729423619870277339303653059626536998889056001939704332003986390483605008632061876981526820494432679376441563247774315230085197193265275325279666559480986856597970339740102379225316469311421076215235545447612373242363750147574140128965723907419735756811651885565812229311667487766434416617860756096437222180056385277051062015930368489067725799300019876663787855170934771127122950341259609012770211899710511169338728074260576617639713962779155182560897261722493451856305680637560416174447850837552725427196612151702627939763341354874047386964790032768514025500848524379644142690444397272622983263972089566599759983284782900229682997400869886360274647206325327681901669344176835177873404826614508953427918222911561837140018570601567489313032240005878910152272834740798549654622495853628753688071987288049460227990619956634787225554326342228151989313418945537620508752753482905731544332299478487088556407636470782537909728501931775579816735418537228329742364614282923767437500532237009393780937747165868410030882235623222860142084771208604615158923292039676424556394763883404483780483101147042111808068810966130208966449087373968440746333333718082184333808605024345838784994348146734830641792503063060110581964396942380733601335240833314490035727237283634791289674406166820999855496919816504491700379015045209364857035367658716845545239567833355814016143123688612439397450518382728468809781650005789161609347881636389671765828036311939063064965548703314584903779748106226846787259323522419094895053802014482548732992444442740843843342204013105417420645832438075260334192810541759715849039691067638902183585374900153149388537250244423169729706392846143325584808691302660670868571498866706804876224075886681053127687016489800888871899397759760481964347636429564945009131876725333478387123256264559379254793764029038867950301645842489484052585283097344887671281092079288799850517324645939488101552557493757675128177530100644205782865733342427010399043274732348308472951497376191143077201237971248567226171579140964257297633193556431215157038858417992660532557620248248027967106828614179345729221786191267941686655992081566792366266705503207305954631634395121266047044052251598606108927366669907102080709870600659462581511546105492607192108483730371751509435425380903565885262506205855060451891076186488589029590324372014172724553805685308473863853101502134274681058698014453818073231342076762605654057136101798339183383202349355688887736495605590132443296710572373594937770813062269224266882519818566295636385574990443119686918641980990022396111375623526139382162278259526966234260702388564976152414656247936553904135754232939928717074260402860189151903727261077557931145663017776336319584657572288407326990979759887546432213526676002077827378908317000657633451054978535595527108417066151397408513622260551244693341028613113158814251297528923979438606664178565979780950981827132735788126847328220113881752941490267079382979592239767132052588493888202417885869764269823602851199746029264835133473164335287050223444296433763433987237954766463224975968776751823909214217514331322480046303039433551442382098644325805258816181580859852340575178348045958355966555723059367264186176918583598614883191436523691324720569439846005632296986586557911710772653299651803111305905979165204100244615235390721544955361934769946625341391855646593508674325061140248852713123679013168196545849740003020692700184062156669294674510073514461430529352340489080184523683273965870230036256051017219798019834811228359737108139281547578020238879147528088199332982224380163581106961939461937661195472608164199972373326595135603787924777269615684061584808658472583138181988528118202730928039623718390069806770244726434380207047430565895721104162915294314377434086326479445053758691699619279001229128242442827447300036194675408088379510694717264218413053211452763778116052523880579369795270435568846819857536078305415936463254980356173195233232662765144158490768654814479825051347234403366463167997076662109654037705440174259699748294068704121311574452726548742155439124776340721705173110041563126090086254796490306380495124550044146170952717234240242075835067578843619589048402558817584023327711887464853479662723200809356593638486758269625987802699555725593228801955920375754564360445532366075186297904284676635524049747920707051811493299865551023726116536765346019236050285044087009447428442630550160634444128383578418856556175437756308218722758105043570177826460941406070494950961136989751084506235215023255740712229338962117117712245055467411624210712539819578089364255350150625770975476727425556664242862898521301959559831401818697105468451029583175668640443421676473701792294730862452231020429843263199009979579719280589786332195301218394091099356031877266917440866943142214753840813791387949434614970052638683114272935737743014685234938450472137756659587342986884024244006708035431038436313331879420122207463720627604624789180431126121344609894825766003207930860833509790745882072445107834834633812477610569652354714338140203160650070096835619164678883109363598011753190356946755499266598293259179062724086208828196260825255424754681577213140168525546211023826641233148701119424149878009365803224785466696670728696510964581646441508463783258069500372749751124217824830866694887170975388912004801644638778517076313517571290945307988822145560025179788419372066090830424434780644397104280331023888368261606854676081555692540933422984734503843464929436336061870722105576939011793055539735297537195313139293893114619877047215999666021924573678976280334952546114652000130192728345050597435206105733319667981314414341181741212092382158884482038859761617906818303328159171778083848001378680776253293391794993737947178352583025901215167230822728572687193869259393059943297390151801770483524597409169273963453645164008518180537369147197352903142076550056270472483459081131510891881271027856969167353244921404821073438387890782634804174528880699988960516913427329305550682852861201164237675868716076236171339238446201873908636302445356048478020620552845024687234678477752914135245925146761086963675898614024093218557522918327021355718730406188846713691483875472510692347176550711211423913197870219364866555165303370505815151222561601539994567948759351926929066441435235962877750452002268982251005318212999334059280108800690595832737659285728971627690241101877750472756676657373003626546994095761891062707102469898189787435956146742965850170042986021227194318723879033919944405265276084942604272012700011316749949303288269943406198451970613360687688634460569267703058618346603269973361515827218014361145845821804619248602125628605222856139222928424903665295691176845585247781007980433349526576592013532756812436346592222445809029148240881769872653695573019092294186635537264971433465083727751385582320103152417312793369030102896567229448025814762953530760685576499367068176785656338403322289271088888315637144626142337274238776869634155740849581089891270275650195238396684638472279322628598035877242159215521451364135373942841971054739939776066281665191345142629382972429403301108013970313700318815686532911268552872391054611036365972377268304718250587018442747818079317981537976691112966941091644727624270047710992146564836682022406573341748285826276642679826046315198950710871673719493776709170448297080252930526665153648877208169179647256762411212414644697479359473371162026747771138786718700391162200115194511833753432124714603131874143960500890112173793378530344530778797428414593609962280193378233369504193323908161301210197979093497351939635232860136392102580937448047812143495228082682422766601595841957675342803269338587738936432915685539967212387248015469993836762264431097089706457301416499069783597423833518896290316606478915468060386715424910592024283825761129357841087812504094106127188312320018713315519583859225819158476177036493605995769071511758124749327154279869045290449347994141440733642354388761827661394799659710023835496326589737685384275997704212438793609517863450139305869745385297187915594348721341896903151713640516281177520494758669334915226247258422127729954347282276296118103745131423002779018054091383579629439721490346800514870571131009611803756909660887025976661875113396126869150017584837724355379216345904030208733322573479824305167278914538695973463656732815430615261332006255288065571535566545375348457820293612486180939108213384904457271713668262474998224115816477270949249120419995932111349673954135799561033938473085338997679434105553758842307332408190011474102765251570919106471835225582695932289123706676907997861014542827258478082141457780285766893043479538384032828205965669743764169499516223590349416493718850731492826208646564583191656178119229472127313647252982133727119029598305796976539960501516578714600658699694780066828244649912185142230586951371970635555062858319470766847905577558430035036467488282803625450116360114419787625053233312216817380371081438736975161057679920540261138682016019768787617502912958277199520394612749010332389214617513457253258992077961131129659738012322312624570850228922371327537386324512352648979850934115614743249141979521862104676362451707745539898331695545318687989235410378706090117777609213387058400584908433362739703326745215924055781555977797659937609730780740121741904535433472858484875316247986515028320564364368662915418650248170097395005054736044558162568166081045298200970417378211315785946743903404718204297958053175442733588396821683361623795141836767571929973975064556829367463102104728163913701918504782171828769351953202617294938696978824238255060346126918965824312507769802332578217641496471180498946880937711131043038926006757352479144586755870128004712291003339808388483654057606696009528715166507078387858734105736788045788633009751908454821849606614322610081616251343779489952438443545831243037791241118342784754758223638326712226669572094100799639060262187498852970947143827071308060412076087586295296603442577395941689245357533046962643904432307061885933224513432664088770618730240237248468741220461671289268269617486651553792044074802350010578822048325118281104320005470367335457215827983454370472131522433647992826600457097253493167713193222075031330870619994802255599184113652307221824049726133668242762062253774233278467729294406210084564520817652887726849105620021490258148864317080912334250971361884156988434318049359280865891251823107486758432683494247596657899357540576568866718870373411885237567164667077609498848762798867123585913508900021881064716710794194465617287693052619237534085606460492613595097708462328912962892499895364749969763544819520360179102449281225158551470327548624184897313260628745117656807236150674985766209744786057105536838893910476113615570082289389723380362133066624999813550124333342113097933795041030120086248180407390186753829776944203565427784844684463778890181523135728295974886617276981873555584212604742060364711920716040555388706029556447687931109538410443566196368029886971152581751378250791565174066936508928861958067702106990698515737723085520730511063650448367604708492878284301337889172382602305780896876194143490297179329199550773156005160799915439639466497377609553074135210459452802804005407551101299859070287862188958597478392715276553554267956105942882407695118080771775513100102891370546503647284796548083842549017897307588845653768921723363318361982695362998417871436630722607154199481778042663615205432644144883870930542623423088725388925504377231619098004293675535751274966001297597299023523290996337441590523291066858223925767029657725747987835882343597585739619638456538497898185342808737165636212067593046374638170429484838445645193945790463257151973524335374880230448307269842509401502477529402779346898995439226316584737440955954778003122237700271172194536877837179535525504703398331226708605311717466270523145142257420782361796773965031365902539283479418897700330667479365046869179869583005266777182826912461031686906134815880251688285083566521473363782894755104512235081055366816537541071616471197555393384284662088366620210415470779844209215083672009592813746668590240795753312353634492568078822667784606767060653238764865176107920190853082609488907469636913911189037088044286984015755754852501834906273936425335786013660424889999650649095665610143314694574953124979488103043939173558616684012304527508923222123245634139650503771819927910316818859875337281569611087741104619126146491467407537842677768134634069232240675779947284978541393196842192058761873285641889783869535390377900700802965209494280989268227142745667642787536199482325135302499032170238255132894714448057371364564511827580344102477216095198101794668399213752811651149938012518706191779345483500031345294619566982097278730130982395171845140613090806053474097887491030220200557398910878978788618774830982548532918617944636775314205968781912924345227253398437883962466491941098702594656655420166620050883855082861446249542576079124070428414221388526858902178045568329457535438506972851194634021079616411402603376411207453335799826368716943878546749890347447590923749223850670684742915042112257314431742231894725012308212658162738710885220200378431360955790151863373262963227403876694284779037258036619169212515026376866357141634976958778873370193997669881354334810372230253458599376804825762232412006909163446688702670790576448710700844752309809911813593919141418426821598220720579827143651280387707247491350101502561364869122358425134226106867886132926743013823454073405390873892332272539702302908948179496371791298672083632600027056088277091820601940702443963610596093827557132453598824387060381709907776722590769608475945665938155187591615139852442766125082319987407871116090725349606121725941375852690985465072878322607690892563636420448076209700502577721710247969294724079412806465406648558922721997801360376906769435103260164913664887510389981307652580139691433303414324568778323518303092064349463025165199517309603537260325278992499787585631776205130228053100337405110517292174311338379745788976965735442885764122040324826600165604220335034890780461558094958507816032713539654053498937683971136600619451940714950474217262978506302211223877626052015503738277283461753540364261602370680629326659669992630888591858130815152375209210227163867089478403480735333262138192532270398375116327267640779317744155322269956720664438649091006089690944222206312131650637177340769272224770212061094227117039402225287868696798347208610047896084624188706074734172180262261444370106103842776374784047562807409338737725560971515753072797119618046966272367781240469304662583533850862577032514871772512814241893377742857207402658233314003479114936768315920627304570468729839407405975465917113735951738249539785254216663793384291414406190494775982668224660956733326722098252655622553888997309112753665396628577142281530899291105692781029748865684251577320466155557344175769401229112814605330014849999593205856835134548166856750352975233899122017284997766567327612346326866186044167971386190689293131343245095517093816899037254143682172815475022452786831578777362458322181130440010598044751353743609239240420028427038370531128533564664783888980105084216706855462530407479732081653496895847233152137146324425903465624144138461018736894062622747568231535601767613976198762493471429457265622805209790535214185342626362826236646196769964980570703385288056992768166470901714114664370958171251726276732729927888251687668028284489427513590876631517891273481882474369046661905657650148282961429717373850998110708954681699735021266131189925875922196357870356201867011082709225095749761304264246210268069645510607167691186141126474332183135078717487412684129184364391648802608886244886169499152596319802733522793445586701537770778665466455617193097417875936565744499442663487639263432761986240756478504514428046058036229397489836099500150935395740837304054757824194179029310550839122960311059086814497584093224669736635040288332113997288344119041707257381995779991886128668718062252592605104502917354782286860634232332826737091743272645916599328857243072049578147354521138546286336815141976832276774482739132804599269662902704718623597359525501190549822974228975298966831070348735256236047032790784769217127217636904531223610952011521629748870902564868515112990133620580198863435639145929885613536408162986732168062536334087637773381592334429422964333131032991587348212153117731281614093564262162515338382353859436653027896029249514475703931581357110546794205545868612142010874432303792299474480010492434022209268199536893882764835202976326428173686576843680658135814747460835922438612313266146976438254903081606221869675894803424184419859422554960269335703172522619360625339214385794400554745511148439758633291951437650663937908191915542612072214541697620181301437799676625895601566981966064106005712007803246105379702275668195682047051504963354309292078411524063397482424336645579993779871354726706649942039758142953476172841752525396564406419633416346168879709911472906052397623959266271884916179248165773444479996716496530013511113511538494516294263443993266168825130393946053538113434119631419830530171152999576720316343621848395691775850828743377831857002758765362899272340372476585214704994673515411747533391805466806171990512471591286658388996347456093167905285037306370536727187806257235225795761931292306580515070264851859682097370371472677656846016971920298586427224520722343369190315151059462710596596220615812165458602481876202731049113708733004877257010110501167607030199657620290944362671500823802940270322662547590364834656255688060931139330247975605164721549893428115354040591844266095094208644010764852667776240610843857740641181879383173852593296959556325873980031543841608085179849903753382657878029755530587271667380467282639963876871920206907057105231460686573503532412592989420314518189285837494462478184850769580003367610904518675312209785265049527239005731298102056004974721144757410661756650027441035421138923134683976166405698700807967102274899708334965986160674583567986177758150732791999804305983227760841757947823009504689205161161447232227927847651572646996358215628919297803759849083627072159165180173206777652089372873222500503848839799597113370408473622442949692533422263056550613619148851579938028242757626033911696117845356392245421079146167384011843597528016353739273468635356979453601829642218893027038932866448249184173941302544297200587553166576764355982485846045910756466947405629046582315939223260606114072196519444629705740057571202615324943672087756600425386908404150456115390308484047039232923621165175954128159168339635458612752235321634495704513516604934794423918694105202493832586013307074178155155488205499955115125772036487059975421828975238780922745753979156611797052526902089644543278540148537149107604677667125508629154285094933249969982480788336493382525456199679592915921145632478889425300702510384814312810188801055819163450893483649133799559074962942439186864440658385738612803994991804648725351986572632476099379638846693610480681311783382844546439895269032386734758753018790416181601262982242242633142782958100904468466903947777530810570444273956118018137545198917534202118053552072151978259624177119907535615958063407290793024000036264049313761381674190924361376937974550386815928652847533246844964283882299095313938127622566532731845306700619676695682537568684135655192387783899985247808171911826007537741632338557620038841798149273215885026846990217530615902756971155631834460350704414433288979937072392693188138222136730106576203233140665696150901467741265608041269936576925444212156210281749257315354801104971991730650644843493913958036544210204642425865769972362880224815349650941025281644990547349541126999981440929479966739711549818556415888141332582001713892396851158441997006902420819279888347102395468770570350153866727041033188320008547832247927230888355337414399841969575258536169546639749094534697011516089892603589212188258268113764063864189647188698820908909847004010905641878617350620157467511131688970392579289447867689667055004485599484308871167805162743396623500171456088297242982058766520899369809686519973606262834495593317353976575786271747999185439099202355353260178249380739806247842318150259659783885962058696852222197654003075823319089974312353672516409567704177088544566749037824626791677654167318259391728754188054526435268067708895682911029736120674089199393369535840349551693110984396318258655902645841002860135633899842526569424227139192911849549552877540559172662404363300525163795326642367912451154806170005297028177541511832402439707112205739474565390503865235154775833338549570117358958758076961818874304810411521207661234463668705422629911662734592802265264279319376787814139525850397697707957911122757658794539697981116721136903169889012502650910449428085502195614797077947325520769048016659697875827089254810991131944538974633443358141069603067056398425635957673776539386906522987165001259207074462119669813630070505881955452043274976786849044276257652128583411367723080858154464983557684879051784957782474648214183651157500179346181180820708525495173745612915434976648490186606151317884141889503315707972634003619453371276148896265163290122999945963813962403255201063291092597103557622207575135002253646445469967811517133138537846331734808977469191784725071886244293024220057438818059633106831820697270629207368707222557689158406043984514917224158130406312359640098587261328759589905609083586222468706226469650393710964914951398586001378725129481030731264737629800564533151505651062491939894827024035633752774959614911787016525490692241239199249431649057479054673298390652288766650341154593137484586625478516774352755357202267051752673791176581235241127762524449522298856602787970177357253321325713605124712816404334958671075167779739300803424401274488803430792117415262183479743581799498771287833625920540999843332505702019987771833651320820511558407679966597614961257185108275144714455621761039671948057079567157755776702559594487373776857179948495566720231913870366890415259146555335385416115844520672671729546900303195110799598014147870610596439005592882819586632171816995129464399111372102863552243733782760584192160964631774097672591985487844595986728029592837445367067509076739585964395567371979418806606664063997959548694995459792903602701525112563540435620335660847995103340748328729561835525778719379876842142145593786472882110358773242421378012048107309636906777036383886899514207573011415912506021121547035832490923312278371975169216195517864515674491619960078182312893753225429010388575154827783887237104141242059640345418274473522849307383670953634512043048370679466128892795512565457007822597520653103855200768451815324783983808632213025289481870647172194384308186176342055345521823749870209528135537402914847133990358826736306483629543088481156913382383894161273936001942394636758567516771432438756986722373211804788518991604215268407634285439627985409799004536099854036790348925251899509358269148331449669770909648166236314360427515104277144175020383207887920321400215734863963896655281161293376994228628605062098614651362914913390738115123788042226803979143734746776645162113770131958722229383561350559515911384867356284428356199541713751166868614448106995701127813669152775408718976942266554973278519116872884492959883513874717410527532965100395880140815131376614484490097815539723584184458620920290144589802932117054411120470752427038640478394151208527959769612860388848795101572251257756732721448585732912262190956896044398526457168400615505358454344385284198627347770637673076449521078240517192498784406672955554981653361407672050380650251995362275398298319861807669070092071375888772579886044919857731848011825386125924470236257130501495914020335917230024229036139597301668969753958161742630116138691518297796546186728576095075206697946414318039505135847668196718023784777266015903735546835677168706739781143074009204823471577649828679765703647246223061959032134646524604290208670297016588431658879044475780608968505255206221039582852630938876503617306773806238892121445508058078947243193021377008305315870895337124553952341505220138338768771560805071381545567399659749062510098545783284016544091049538518982444272087179376658833360774004165645890334916099170571369710261354252816141448146062062114292435390456430611969789453394504468134949075246856024166315361765345741315593014317071922311701833849620323379661697230547097518106001244780096500531421738068293938064828267066956259596651662635655969713498595948164173708212358587728464142700666333783421414182347293172874649707142154800016351128541249590162287300937299182875078373338257810725495992870106748510971505510231066030905880004220128673771630194211824140726962456800612131962758857157460998482292967431288170417793514247754828227485801312579570643574335681121881431892796474934162180474593549922337834181407473448216994756625580530960039090262046544276215812289667855185937905537917526671112124932337889015565694561734892043761733083423246251616942503784055676363707915776115868389162101748876321158202214049955478418265843032582512944376368222811328612386720150836754814337732325714955049561317773896759579044859702502790521375070770819521828224458532195794867692542210726014409451000458927947459738530855649941987241554111051561533962690533359664224278081413144847635391643422394766891740437328767222422078516455472334103905006105658400017513808944513986196327097880063626799344145295449505721410179520463295533363521215637769026970916489672539558077315858844560571870201700721527175860038813977133244914925747924655961821596371524877488859156740402557942532989429807313989449949893337559921020631438892746625470975002554059283654885762821946201858655190350913998082298514073111054426644025693605321932489341706159395045515234334330343734761600577140346253219232589376421868511402445557068916837181767054370274323094804317886144725728003367422249178691446664699357415093820914001701391015819439468031155083906970991247753901683132737821799218965026864252637288921604266318704353128880204355564231522550415979111572305485081544044158456867006867762119844667364732290112633912131069877625022784534066082255977730972652119804270658464618288652078030524655195801915151899845082679308163101087655001596279886976634101678126082664865199869924930648177444982477515520241952313820056093431115421449075799744307951876789608917406397249427899604120761954178047376610637588678707412515462859641393618926446191420420902151135254383908671333632188270293971519764722168665935077145922335385361052086923250575940470579319174796920786836753751699033918812951175885560687166767664073852816299567753226869773623831410178928545486545889695990765472818844467148873613994594677844346183830019917031223478442491222692544520989602093556676102404465421580025722771276574902449082269360716299545356901821300522310721725524293143094096160368927656953705698908601622979086169483322709865358037480425426667486332783544574940938907368581469578471838481488148899254847269459412764437359272717319889128025151721311066006013421114817265047634735479550655788036853480202637728067541795697028779675941096907762868895404882724221874202073196828425307170412237896111287719630320800775919557068134051276299093599907332533080691794443168929006252780588030130642119496087581396983875325217236115655764953274346275282560415718471264564829191434385192717984629614908120276013059741643966052036114146341059229438710035073424746613532550158305655346162763934955159125965010919318592693611182501564462629165051625001565375004897731011313616214309405405605430017869014784205712448495863448256225260672346632815089749190761582694211406679042689414400319117386575032285640777438238666331859273700064897705507167780861617969793291897142236735124218130082938530926174411033996305213672967217580513929224739657349587886917230440233693977689459314334729451248738312158311761393547863830373338353590852351452431937492226738141800329108933349109648500902507924444455401444274689878791150905050534190802477565990883012473254396433363953462620963495325185193498394950016327031076123782250707919493905852016244364324126111137966266794739301403117235135457815636969812725464330008637782972382228318933307382849974615480781191047745943312566257471712825786978306043998904293801285358529493024878859148859725462043091613840463209257712968685986579277280163786694658008401525195056335296849466620412911967552272026096683422233246900657440203733826657178613497176716310045738853281519781224386314005296163602981127848011837866221217011756049307419538741508977436306636904356460050505554446827991585628449301650560535325113446149357367961867523809443192412661844497134005614858151328266933608434847792501540030104521601831658374708005848123655524818584431693493144298125504708594234120680604459486636967202026869079048173980586787197163545852566800121240567102672819929404851047631673690623594645275589063983683921749043313011504189077053953913636490058271965681045111700598675636587473954405560277382594037456840680860468737267159309844886746613530805738723326181664998969549153668715018474145979888227223559657593379408721679689814795671017534289062721339261016926659485410485298844745564771871579635534516873357465356736390299335585040074801850681715110732328442234164271325858987190956731926068997527670279418026002646875086098767152902790129497484908740748498166431102662620066221041112727334621227892968316776373637115594942489269470738335717022481994165027784879173734465745131943398701314341415637358223616434437992730034534400461016605141230087586156258834498102211862379851811167671895661230040355737678925330631567885043371336152693052556065124770636734311884174586630996482234526908107082889104709321157517931644190555016851392612751381141731633331600891844519841664363583319820972829910135354332375354338389087665223815230232078440960788331112304503084121955234697725221907085043972601936985865440199953670863646840216928198133266104501634074419755936837746028590650349514440133379708889671840701042696040387633300843284692438778782763859936747215123149145322221500383332574159502858405990607267170760837533413901325241568946644548661595385295250178578590229718368647509359006056676121196364905758447108712077981666818905204013458428916605567835455264055814973872747054921964493769304292218472244441343814559282091917960618486769874215813720847331546317204895208102108625376052432836092307221986168534288254365585195740796932034467560502767397105904712240606404324374291311177936581978039454891046518920545345503451273048950581438026887630432602326868388324718270555310232210294517459405361163474322517681700987397455651402197616539480523306760269655047825860571115514196194287041486736856135324519373111851542252767997360234210258351146299975722888110612949260341895029813311296777068119711798957475637969928648038344644221405809508729305274884508979479844399518452485498483351728096724391510939048538558962030979902895408034163763326258966412402783159144186714217427050523932389317963241693470936722097503668606427676814268230770670224069218797105818210554911025655413135843293138348720205202252997627525245599934249898675243078862669635224001437466938283453718790322614015762474963250069543716230308585108004283112578610462082984368569444069651319420108066766823323696929592673665724865088215264107543413337183764510755574676494206145928249308971814099778874396051750446761961766050992086933284929191425344293163568822561896745524963850578190219966810611968407482952921129265060392787808078437108508590032392584941494540880711959407262903606599274990937080276433419217638061403074494701634165162111979505234468669777689665391990348560749372289359641594159281434530190303288914884217811066466422603102762681991810719758086024102035539426079536717401237983784057691137135873147140254555938637849288248605506011653311871097051785809173390872111260270267989051899117499170829301529383079354460582531626487922378496010569160710026212556797432228471763593638015806946360794438677822200172295281732704966813618904867709742613368093175991080103080601325897401320636973208928215369076894775221157822520152852768043984114231968748050425684905009106688478224800532304240144785820722496664994429010199858429371865813307396479186223813525522625434792775055879897180590667670730267235571152197343294120239798516059575383158713020706247487195200446735124736572696141902394278702928419636822856610600095662322103066703305809860077160252182325527044353845891798946125468787094794026362077071271103033259272697993282041054210528858123456449014165260298590282514966024880210346388035736292739664497530159778381251787712205585919866740288997088390017182891179902824814533284659207671102234447007008437108097458513355572721252440658210374083147391846266912333149216876289759471130605556698670681438268732095161246815581784366543204380374816468561821333601918587514578991103206334708736452355147770727514338701191211452297421819437138066229799863251156699294609646498408465281947783641094743760603118023838214860298820159884603088943232631048586554851626159904269425883472892623209077772864022842056319085040141833355221349392986586672412597642499604954625490728556482640048132332614867303788379191913130385995290595899005072711454773610643809815636874168149456993041729181699526771946847558189136756348576634988990316151531420748208217447845515928138997749568864223984410388261586790933593458956769247245965377356533777183075164414108484673660580993594915891647728997427767606740557727148408010910309272033490008017593804421173285934298521986138222395008643706990005981383918131152152915812920026161344305556909074958373192317867721236544828199850567121471154301513285296216167270606724882439365095146207596667043467753069878158114328706199486722835265460131599805620917295100590749493620635316096478284698411658175633223182410070221011083024338279631447986063359093614542134859611134294485086161405531302130948376974090733578427254495995632689334074080331514951803065647358131262048291724489889326416349195556496460903007252279244398672539286691112140134195386945522582906187239045143240324513986340633486992763244306393810629633583605089967385136233202364176423517782577730009741170121914814781116794937249643337377147509553391427854385140311835905918547860740470940736167890699709448979912487540404640244649357237853680470672165062467461587595884869745645344145105530893614418860132852729517818867541994374772575498680629703901228631184085392242682579751438784381287455833323155391209937930549553454185601404052551182018301303628392770066085903159838756205048493582095624404041853490092011110435301766584535743898233017804519743680418486461265669601140495521819160488438336770919043502077358461615247265698629127309936441394962428615698896012430451917486689697970565003353629917796963527633861586772530369021238827132757583708242054285280380391064515846084524330619968698558859813969692612019833020387863440547652047860340704458976473076756722964025338307429625708178713161394108287592048986491605041680858076458854088864864619895383396172977458302860610151809272191141715554943258115998555619656186090724778989262457527473912864821258185383311259400169754020202631807160781544560684793066963721434837050936397690499159762587942820641184233093003130992334544036883708171451115943978858729796957122057933113995946362749315189671719699676501774848716103420532757294726704892780565261828930784956424246686131684667779807759762836869815520807723038846997983128687132299113510800383265036419520987153775913535196633065535568855387195749138137957387709463692408966912937142840127020785854156790589696386073550603933566570980946024846316086529466350383353119327869033209715525915401771960793075334240574758516364356073107756623990542838102289736044193745615471233037566124871504829688088735669837127131488346137565014978643088850307522068211814870240398593629770776834925100697471718467059681588592250660255747567376590882640390217510400379250058666250753601620965658961018329548114482522433103601884637416338297637670776915475154071813492995714453537729213480168163255703330860214781708839048412008638397619080092506725371988917506692607000527615282212144242480338100134440921932522189110818296721212954337788597833294830369418924282978788730242666300752724955768417087841635283223528789056905243198599856830961795890301800747031985109520222908145797421984399104474629250096280438757163150714027631218156587491893302537877602724821343990472190617866674445035551919242848203952188226929587895308952339639345875900851196084746361182967460692408386875242779448920313070958290942860411986954650474725264199540983601047046303144147218530080120060128843368903400798128100098726702736516098647531174857133811414322975758496561164754164416858668564156233334501844387248493416601731143617212387332052435277038944215749151091508819261103526417484716887351585115598085303600503492558445281881269007006877493754883464432015422187298888848297524744864637984790496490337788379065946927333391428877965544587550555115536630759072625763911054511029618728628744530558510624379448365655450596841109272355992880776026173266059379257674660442772484462484949129081169912090898929827823525624094903823081949684407717952173437142475957231536128904107634645229684054763605007391522842143088137225918576215721282465644401723587781573002262535206065543774350679503274083178613388532435337447456481802471199445528837444123949274593781483556437032632254122594975253379179257897872206031895257145356554181199743371915528319744840868393197405783026579711584695568934375539194784946603838701046188024833782672646079580643053879972022249935715995176005888313102874884616172418130355338376659354847320377539549709816078351899647223702663695403273660543911876659756575571903239393605340967307171980065969431315193333292479355147033697644182487495667287981496100501480199665417833476631376838083322991112142975907769435585567044514697666419712517649365378448080704382912891590058461685397724132861085740238670798848203556754629999599826175362578011961324307337463612497518431066012313799621393564698660115500532675308990504074833659599053787468111335598331304356233541806470525750555152348057180130162693328601616448158876258024461282052221577791568782719503539081876388016234954379690265884379812455425106223137542379751516461949991440725563307971073639886673982039936938675443234126551996211796048846534838824253093627654401912204113905392626897406651600838402299925449067233304622765334721070063776579522497002380834784712434151342447636193793348878698384720823778985590225239014850661536685270258250477068024809553397871587484677726073958156545371363943412233890492921778826691718404821035950178984020578329194582467105662728391574642027563332497493900849205138551878131418562654957147014025501084405103619012134726108783781382835665774223730974779424857611452906558970937524844812869388733930864298784447180150816870426077054368260734810334107833316589046255516732374389311179166015140526421803900821334064547297751704680103044283075968201578975444460914143107290660651052368986102900851952099477754978775800863949811035377159124770417299414655682868185666133616871871420352098384085056597688368022243785625575845205044347520082587789446984405884965731885095714240433755228689999452544699215246500135143679763388220290715897023713343054454621700339470888106657158307396846224280154478298169627882799003683976447960837853402588724932477772383389858048460264776966930658987986078049288061664856252460658118295135006783271937790528132976232014934733900085399675003900921063807910786806959288979245521003583027005393270499709225453043126942636060576142186208196790153336209192444668616065751836440392827616670283105241124498554683849894765284908253272767971122128186686251811936900267429437690825521429785923419046843457398334561965420234733726442806368539750849645769414648638321974020044470979121295910844230559593605168949833794216998819594093707461198087962616570835086958555018482760518958412466541816501879749582972653570511512162539000537561782051852570102639131360755841924166604744332717793806284020937758395415760707452205398876307436413169412543312494807979426652571522367722578691063670186779215178521254760461301095912024287395025352620242825790077816657913239995360468486768680779538222908948884742025480897547257027828593828407779841192818068145566758190055169625747129763144027132825386699968180089972832983890104954046488749552963464103809792102229713795169891019073432722287828589457185439237986945251125347594884443292266554379182540398086545404373273885935920210935126192743159109283545891705603701934820568453917618706019796974170048364315910471758953660547381038926881729876393840903356105839924460605285495039429498563181152579644160517535509204561537584293236745211692085019383858926085433229696894807243427134160465414997480413080424393851874798583812007841536868240851129510665400350485004765495006225372402029582184756720436016685583850587944474148552981782076338025935988070441697201297477689119151065806485086608493555230890988856434690062298010240999658900652140610633444299329670284332912946208998593944348461703481636005064118246891935215534271035226293517174919274539575906710657621280406960612455777830637088215323737623296308948114762152734857588995433147275417795029372274323622426158505768218989663720422342066426329784008089293519402920892947681691439193768463940794681012631608670217837070863015576563903496333121701954973034301581541553540057754052930703815104577861420598844803367255613466713123798098362105540138080049983490655184935261550394843886886734655441288239951475688482059583178220472766583010306314832316214387031989572347319410912695967656009973334628502587230966251185675084905266372360975463220352867171902312280269930033746719957330108008508896167612918726619599643228333006887656582050586018845474834150388612762549194242465434303014984420380802340850877952019073921636112028314966643418912065442462748307512593989488083503775287184592840896076840827854735871526807497633059244471181566695299677387645571222974741456012560590287831006769843587951833084146077958089025403934011497212692974787389236436294876200441378673444053935693449003329889671660250824013409199607271019176943104897599038668757954859434195718587479387360732978917454221417099095029808428825098615689403397838376270625351741972292486350846240638068438286342684992232936546454125350052521609524327702801945535333403728272260420719675075375639038722878340532118363193929642059521906054911713753958261410118197047353329040916803945495875355296275913080867954467707177316830947869453676444274537090772924785098007825619058736271581403422771870267603959705051100939933812770479845709635563398293731044269079509203789887022570669024205270527578347908181214908632107001997166213165827337845831632271773788958879320118490586452791745642657399658125202253508790825702804340253506093089656558841007795243669603900642562629339339233073547186629566000897121649320428472227514955670539538462605623112509123404958758060900369180140948795211565636093778210246994779226155176718661171007377746095801969121503210797467887267549028425694196169520978960362287293184654825352073373207016126249836938159018810956745915927086761505962937651131994543951512884070857069585298908000835706789397212842744397783055495078653226073206473950096815621339453372282748989311342033453668601813139484499842784461990479294337565004436392585272662321614422527382314502134884427165100988596584778779907603860865277446618901273062564304736789113106196493162630441249698978776066328210948770559918919714260662044941035257350675758014433521352095919235283971530598659177647731670176808754213392400796242212223939240607790293224648429652856861244039709345128013070543423725030443426790571425442975291305577296924062278912089378148796723537503277990010771564395461116040049972710193270526287911338375409996665117769388182561193034688339587033341098521759459553224462724682517889343743574968804441734567296670617914293623840760189924544700202784093189384820845124060308923606589241953664867031764360504389119452838941663946400149641963048735346262089487303116593392571932734720777120495981137178092701887130497756151246013382760286832638468376407243321593366719544897221231394191616870342999314960618308305879910421062687029975689933364470450610427447136250531729840669307912569474019062453800644646758428439500507870682690333269985350438554845607754292185911699473946479032809605999627625394255631101083882770539849931864057260244359755872272526463096052252366543009191929039265955960274371229610927234214140901831312073503858570911052400249145906025807739248798351535897953673768979580898457923671092210051028525156358093632305155466609015261095561737052934787289582605255814110267920004595378397769137333128422464278068222546870885471153199969601735470351169889592224942672353917179556888658478066894258314502694384978234671398900280573642767435520768333860653853613368026392048409781536504969879216617608690783413311837419443966676349228480972490255437987454974775614961913717333256489884167403180641354303583980137207107535954189706637786681083825612108138204616240657834322736643932929781865863502865660478140171476599880888746420040563095707316053763108161444456632782410137814782825818657339737281151442934300902062543658124557859055679904456221834276775546807794390512136750052645054429320052260068150875531880084804796407291337950896400698594589530635073885439669252700138270606856425919197539159155394009176146286578965960453554337153780146736705670865966629220394479761804453560632232344433384825469866092548093542854624005859980907065394831828884907819959234826505881910433801160482916658796815346275200606551539942737632447077273014041077323084986865287490376727387549039179343904676060146600203998157394182883795422041600271500994118524653160880922802503877060686765779302668695139507167400426359859093510213518252206187872198796913897114420641151635373614879221026626526485652207639946418802155397500941885080440905953015920479613538638470886987050551779731485085654386513203330891906117999134254854592511491039225857922873871742581204274979080633997093046278535682571958055351410064919381412337977284655266015004681554294127723070643663253846551944419029186641440319083550837196379847736545044566049513631829566644200150589656141429389245074586686710837397329689610933682762988309658632372976419543647536264376163254960899288932031990724656499698960532318892235516163292816882609680227336069044811727585852681068950911331678702012758175114400235415991670565935185900120673992123328728976036888067319807607738021858372656947912537881953743158558599179681141648541307144297738149875634864559502766277428639880176592164207660814528232575372351229099867344993965798445106985310133117636812979980298614406154439018890262397542266189803078078193881735917509432769038367427797297833426871544181816968185710792231185760820321760597365778397445339770863661725092873872162176912635837991100279703810056786641805441053549632242465963802317940018703395024433640670882657836099026691103660633862363030213726482421796079941323184651907056884695385273839634740463520697974926399110725075209893027079505605396963138523281393719271726884898223902593701535438800387555328526016481271978291057723773048235533893851694273810646437122279921184508242779294643499276116866383667099168228284165284799154266116617525714349385231989322340861657229283125306024325727311627202547789547460740805499773615872901786069620601686376618676823788073924746400891908485778301311648407245497204514458525101172950569312819761912889480080908774989269308907118966107948499389690673744925764901088399507094313285180241725760853518605526531181997224143509506028789526478959412974202665552386490988229909927146261673587186753801020920726683508889755680846814358229672928232059113158926764236651630248211838838927224490844553088687024395051064136256672972765697236754721711247844282252609766067762987808836795176398025530023087088042315147243420265259755830176933864484053398092301009580441440190801240088847462315158749010979536243027545998434160479586883556889209819820763503766504030797767233295405482075006014828895893817437738270474007674974040566469923991366305177740216887849779859867162680665263537486876952547391571901848027512289777595244290132710134970771568467429305543009189245021032993034649930936513060198683445377608042355883303556280138501363877649966149554891963924270962757981119059062997995009917009218870821055994591254919425581807996339940913608144448269853941827291367318616494702659443595723293761198604805731148705098146629702613390687051401334232249338108293902896129969663142332115318803952311357124695146158596767297931487988112099676874179172177418001876343434937371999397556856878387880550420738815009280457309144706177406984171789978869026690390121780924939902620591051649315094818598857252138973180491270762672870261620314271177769135689408972390017665069311132770150278762163777049541857957229869128944103854700376617790990281064647274372532010480896830142186601468760049802735174328005946807395467642598880544674034164922423779477175034896438692396370553034702208590490959655751292810694148867281094443028353587704842226105243720119401357987446231527376530629858158183713118730447070931066144068517347862566396239818979285394944009156371542612942678752415655205626565105755461934116479446807820646628606050729482462235005386241734420174560831156239669621630990247107423368573165739356256278372019159363715058025363645416996514072466424733802133549634376214498613069366506826573024137047656798944231786624537375100639563920513575170763871539284368074233484179166565229840088468080065902766807067943830488423839227006304453874567328199926379632729181552289391007028002082141359022449314747700521206492588365697178101289837012917339363478729268344230283004423384007290168108853737405785486975516914983284176177081380738771675004243222450003138729289465531451113888265697377654100188624402328083056744491581736474872742363199242560742441255490838559512708511491008786877135656955607819194408039655362634624669302643070953460328703997119716913484548148622153991739329623076278225668825728767851197146369716383828614589882202256411150115475715385076815867094996403986163778205387223961775647033696952843354216529514502802709007164871745258606944050356309298779902588771701121176657563377802068384353907959226958607392734626197633239261682308628385954118040100964335862157926155359850371222615275124576365148102637200534062628606661298784948663590858523909022243637550308693810577479799745081725229038979888211141946277622185385026116376156954202955539511910187155101976384902615114547148877288410450159468801226315834626691393824933002023113098837898563633257536924625677802253513511165606321741656617355856894402655527929625685789107839761003160059766161940896856710986209911149321959014383226232289105743092347513465450398370069156060737762216530832714912208008362851381846677439730213303809738066819655217050093020124140284647987271412852826605272480597297940290394200110403164324821367304686050116906785426083453003169275057235095740131511448607511049964256205856198281405898139679203253265720880879253448469469133291844340055507455889981843135150903956286941500014183435131896990375066737581454184633924016955326931207174166739371523854907196107162967230052719525145741053728452909420507906115805390855129813842251739256609866529838302138158021330828431360264753392412052086677569829043413417710668999895371543398196814818721968379738150768459218524565837484446545210759025942402800540253509728992262938192202657110964756838541760334913760208508890521060098240922890330458016258876460300713236308945348017429948277400259355801171529790723352233965898926689760625912964385673164334730480565052166255604134139723475800750852229247513505772741486945244314885493188665867355445864567737332006129068433134298934286256358985523088338914875178853591422226270102495529964557111801025842769858879023320312777933679304391798024674845958421655557091641282107349935310164453266319390673770478763767616114216273320473603513977638216270293046461660483762538810550878199622420468588974317780668098723348599719748159903980884151089783638404964611752074487019972256642531991210883732356867817748654313181729277251373201521056272178686450399802701260879930947854132461997935123915478999551925769967327524573112333338921259900045900251623437248241416466222200405578278090889622039224898328541405494140412227354831663812212993139998855699254710087930783078723429100440813926072362187802311324111133396014861567860365389635555309978253516778425426988049476301998644596301820808118065961097687984782316987498172079268115468500734797767599498616456620275748186452018135323170215272321355095244604606287832536726060112696659146792010825099123004512240727152777324392073225881421218882845268044273331141453969551162242706432815576580457021677749891642906633668692437633537767772981995395373218485107864965605650064711436781874166749129028793959654469292781827702876978038555836023914464385965469006568825771030514326733166996704267633040225082607024256531826896914266041960662127123423682657255862981764160325284521933489564387110432178083749516104165845166705884909654495695685466609923783145731747820851228576748624983462221726841053611177926351378377362145218006631145662870101453381225551205622977628352410082834644458220508804589002887390497793895789128419658248719168316538313316718829029341927930180792000653085009096085946105478574545932880346299846173691467691128585203648724557403441265869596796720597441291474186434825321767325017407035374173465217600244629719076305980262660887469574566693667334071800282159916960433518833202537365344636601990454487042955616265719361612883938500427578871760596218497585048633674016673819012104288086333474801504381082886160263747023441406631859586945139931647584349560604556930951897462345732739311003970048449612437681223969296725864386125290766392922334620409465788938033778804172004181084363547346549989374216804531990553982615112030997304884254854427606112857932868369200499411155384764775258743530815785625726930225849214893848214663231342258928898544841307910393917657903998210293622829920480903772599690550381024661682073580972005618145142281475360129931652029520341061316254783276325750919955093648144552782165746877602345848913116193250195303880644722465521074175738955201996569614097946359549396325310041137714320193229005506495867788237663645581855556705579922520296158326348596406176849488426335884016191401333013675278662179818015566248765801232995885813115905949681632741460958982902160608239903515444414558034687724557615279384808230194615118384125050301564036408000346503539599754928547995551072319360266479053879248383233955866377711967561957136382341743793505344427446320341483042954185503019509803587214875351831205185459968875147325745151435030538643549823219541321062479508484278850309995186318355018129400234527865476427083382646619825833448690153573717757191410297009468130033113225932305468660185169016235258510492017080828208214743114075797152050980283059487109232995978664211463733801154612407618940830785386481447793306250040925676215177378653206731596478774950010477208338443814137537364884394110740468941534900661058453842031138325064127221585271632061540443955702580328073420127890078055906079026292644541172111542159665414489909550431108344800341916803373388925216142585879470846351945416243476550402893524456530582274200296641797276466843836554286618843452383421319189926757280264639844685983136511370396589902898378470261420783250827909416491722104341206059228073867636858056684762270607901907155015242238287606158705295157474559117376764004080777408998309582704903560964179673210350064006634441233913513985180163905898580392713685107840866953925951285210151191970188568618538229891858113648198019046195362618541132634455533034418560959352602227935227052009163185945167794594535869596864352101663454449327709728162889858852691416396863807168829122831570485486858797701311913580315262857343617594671545391037251347969715765352108129557977169841552594703887581831647633992924474636749457258553153496033473464057531407514091162970399964579251915682200542975628157928066993038971883583985702314562069778349699853630654248405085869715943506074636621133983525911539252038407869753834387925711938692165496804753313052428177482136212744260315858473994128465306403925731879334802122345907338277459398548292230769240650626181389949093570438707396591038640749537567567649762515191483122770020599047144140425197168465772066973545363477099785986727189793658143671115592519269265293414506867053907442346293658408893077056593468102145305189352026245442034762851222491815354219818371622738924249774022540342388414234458374459091973618463712259825312680980339680102017634087310258819315500413600252577795392861872168445093112320935804241791405071694626706314019873404202719440098439215048622528072923971315695939828277918738014661595387053547684022544509887784190458812879915382892366810625851273229077671860300558225401697858257441503621922434001621952642993672375690773070619623492673536468448899924306456510222696446928652340791144793420271201611303249341118510427136921772233864934313836668316828556224709371712278378348104636630793100082566119904410824999510061781353926096648614091174704942914130341130154493797102496978255456697395413225216418700820473407593942350668361054717773143368957240314928247735375071786904818855648202619144608744830908102450466170962091362450435339197264926734604231049670418230902579609816021409786714894065213227744825591738104909578742018381355174987814991827527541628076045152685900316323794276780955189683615056262985338817212518654639252172874133583297754520285855279896650435059258052730684190255453255084524576675463683752762677672613816201846391622043918912156864445951266226698613607417901934019075552269743259137128541448229434552402651472188966928056208192914582721440698034225572546197101565206733106508028499491769028156142795199668845454373967665977029756259179342355521763283066983874625455821558338205055239980256785275413059866401877931651614548372868705154428886339071167920934042875728368840503890158510990165882061737314891912759426370350126979203945398799020837735379966440611789838809303294178528619285355374050204133890551688581315590124727043537280570821183467675277872246264237949926005452475839559055488313654952150200157297082901834275986407898947359260337342907978889297208639739275366439215439301460875703312461802048050129453438229335322754988345213061503092240387217295675871821946215446522715208635138659929379210777592699093986004893804542074331316533491397456249359310381382494898091788709907231595480550502427154195106815628902059813164468746964652554501567859053480261372957261740901667074987815218617574928478598538182721536270156132622445903088090036959131590242902405977238605714752750882165433379157483187093172017880515587102497022357765204255986068061889859291023786701557337312730420450618947299299774541979329845647000731872183515052800684445857285093448237199205760158483220650419623203681311433992934619366275465564257829419396847604091905776419704112807716987625548532503021144785764703611334802528487148895109953927763569118048512355989020492711699848222364570706532569930466896790438448344603467473126053387179858806818481605365437117188094088336996886388748633354050574086170178465903789606019770420229081680386616618723305119464377146445257942460180558936987816652356053302609639695872970921340411214170976389756287046873425898043880412929924065280189085507879953309363242344009999007933292545657085400817963579633659182020348783603253700601820108547338496395096711495900242160803413539093443494619993484906666662512876810240664603599324039791656878742223728607497196311226355132967075045633046815723383955984537322657061514119341406798887408283161286095103270132009024631406158691580439815391838389415160991617918973713384227736838902350511364821532442488242722389483282685455179930592026704596194208395294443521700055660150680969597527522947169568781307972657575181226052487843591995659991189588575894054663027069253120444884979851675790098518030834105143919639038574432995695734294682908979262408447296421641175617965606285878133678818729818942648239510928599151145703106737956150856974561785446817333165258475673237828927579483756507333350016273301220712425161650896338586546479109435268774081764635187549596433022342848909289921075349362819952888033073240547812816429552345797172053650979001075767640074610953588961732079015526579716864081757088580725089689646807264102423245369145665462665346100570880187001354895467245449613685769811420213257827318957616073703282811875588005754977005761964747776767845705277101781776693065939268065512559161790031023468942527557342396405106314258699982750270694384562976835907870268226493795644893922867178303242328251051047229271282216902346334449244912608774462519752819671002108022290077898340816299988681617792978212022705868452016457110223756281616083306250989115377995738210425941812559018124107802531873459264576749540532368019954234300243476427585717282689749315139788411110504211105085414722269876556158105565595387990193735003426714801456487185859404654472632243579777560995268212385669841748450498091798619259990192807899579410635573826249534251153544271939229232111776747800680100560501626939168778801851370663305401046257261356619052091878566567306229094302796025418517058844464034638336624335932393921477129469626936634896904045272865579641669267499222558771180691385090052624934955051706185344194950228224341220983382336924674249520397140844690702835212196483002799441742384029561474864685420514126882440588040395875015636422083200377184418353653877695280212538979468931230509227515365694389792083953533386880941669120206029071158078796654062642587144667369119355517192204510702476082340136664723134107106816246829025683649087235896470634418833452454374614076656348240485548648667527224316633828282981998492063200757212394587692611159862573723925579889179752120646343599466422368866275513858688373457898654242006904953201444010922305607196793002004851106417298680575978022847185895847411734920017844573512347067316164886693885484162603204735718945126176192380033776053199767286116176215699176540824883822140653453945666433795665287200161594598146220014595479894397586294724242278325814041516460398107234716792041911175161495904502878328951439103227975302929375881663109738100810291881216884988415606913562396790117875036848900520692405722009812358589277794043028223499515980840893881963061966119825676955681972434567313406799247825521138098297121851685582399936987373065243451980417344937470309309052941198430024657991582649994906111006211185246383117886330230482430986146702684039539522950108581867283067432808315975832973703008838803723711807530635326934419999077797997343431045126392511531987553084884011463831675655813808864270798429511889237604738365365599879353544616749261751798292124762814447915020389488926632426101461819232854220827416680879456094495429859549134087331498443947866208009594629412341919724450822907505492198898488815601715218798548059727456653131482998356084601197499759547189113196923367804962098032545238670072010941908083102999846163251043660538432008532637067330905173651104517912502636267581084173736574125563622012185188494013056777501394751746990038911278421907228644822210988451233958585900817221549311761021861044085481047231001609595664853623045116868057758771649701038046346198888154020209379484922265374712482707374485378365291931240171924353337541715082337927143952274224400526871560411238039320288605029783332646702783634752442806476795251482681130727525441232479975198647172256011425250390145824189307907532778697909455438686579560153215609810413406970777759255171729293410025709580003120087186143513619619906148856170651725826226929196077060806083578382369286790050575843469626574150843859441892124421694501876060606999301788845480087421554497037424543473087402160142779017460607929894834561112617472038219976215247959535102759019503403415105367916958918163643800994722576222082869261464118496036974974696701742154434896263421577899767979389383981820797504764744325635498105444259037813643406320570065054480674196333075541628019022304911059357865338702744733331676185279609460514941452607706983497997828694295870146627116312562870395598144234778741604569975096440165939090249413476362090965052422245721257341944001060537760246105440267408656619699171621349516837261919829449452940050774095170462047213229031232887173386060126799216873447629444583165391908455769562407097928882959949843297442912397323953212998402728673588400128610471703267568295174357785095684425045568139316101475137578655914663644732601695840746914973600221704539672791805473376521389294043241270192551358382721555384852351800591647811541950614746183941104652317436753359967929025172623131750823771946836263607799249647691288686202076960117391759327993676595135674226852823417423459495561072684210414028508765291799124427706312445932041662517907177068629666248221989184391317137849702277515921364768783700703940955415071336338896793254907168787983986539881101655236225751501838402007873743527076659874498839027560986718813356491762713942571458468739294039389868705276587008898888732437037386838038293067304302153265650076686602559710263270724973880106228096896278404887193932724229789839839414779214112303600901716201422974906018526009266851220812215571003082601777306421326011960992784264477138363328572607786908756124179608774505448016669430990304289685491487516576640107727470351946507940686296265585317536427903967655684976571806332498205928604512369987821684346410156587936215317486349781434658144240326899071102230970406287751133996128085471787389626222355354755086749527522893001815474941807201647806623130203963090076355163113716752754131579472625248053248091995431537451803107518670119060630189011569204516292965678368266743085266675225607562120318208106724882450022329244551656631319489402138202350897210234944936023141377905782048461821363968516439097777276515937749248795209166517841737993297928415900730634546815804039335550305631473513827285157079955058223050210806118876103162311583571767296308361460603683928183510252733347271766989410941384001793685859295106189776432603398277875264250249139666354929767068183455022845615414047499193455586735556886765387701742329691834656867769917175565894992950539195173208413753555772105014968353211159417135456216615214531338637475480269830107230017393787387142528976182455561830203836743462313144598293728941257448828073581708715691982441075055088225560345465791636698972350513963158524487185312284431170725648655885321291011659929746769830098289874733081999380001043337964187581650627835939479157934914397104200117006330826634157974542259730637079224832987329234352763431971841756618655111260606678951965424796451573024712735208645999567536511433858098891207347226414623319118093789294847327503797162365818833924584099336495713813790845367647169538248360938885556924924361718591987450751903478987591174519337617797375758533805191754824908127571563462888533418217327794855051607760286418941271986430376879395669284412772733726993635426279492578634030034002928592911631713125572630506010696113683253227225764780636648781380042032072685952431382675849599681815635440529785880727213876449892491882297626404873603163714499263317308635201434738993989156648233028359007460977845372517565089919407659110478600935939950687057770673080908039414036392380381973691399693816877695995542283846210336937070162722932786743962713393952363463995342044194133697781492437656903371028783009716001389114682585365466367117140075679641261518474421486349577083628654092565845587989683226880090660698819787773283229052450214923820480579653282129096646493776494411587366258964413744581545103822585285293640030756922073061020017539844423491001169512239999560858777378762582143259583332935635781007763829669615336290054244519627662880286412645784472535704392871268752982953440361249124941753217497212270088837467734084054368713631583400968968248067394343812695699067841647542599772023295923772663072948201316468703439656102906220644761360527250924594612244633378922031402938808401426226800164973998480308514504384269573646539888720920358114093978913381824739705455333526194737061254845033880663071561181053176269648035416623486743494138721223076051672580835147847596505812635799093619816955073906588896308567864428702349460262347273485390545871020194587473798803712095019032729460687390466312610863996774314468812017346203699990106702751061530977805801293590783041341710667810737693369078302652738625501931958432424122832681427882295332117940963650288235424997284820569582299134633984506272803364879119739706784647107717899496172985768652988763537111774517101650865453128170380808714520338733905697859867716221915965783142768659744417440715149037403335104917377494252428783614716369633579682066222205720619599533809236893727797927942254075163632477120391857299248426348322343517502042517647285100036442235154702475611711637490262738139712057383230867103544504368475328731562779566809576225658183705881751342746674206515542877620800182484945924654625361554818149646805745554288055057628381580300409791978770358947291042095302462990535018284499517253053941259390042010208450344536591749106549720597885433306352241924216150636831336039084013283036617098712995440525830325040812327829479496164481028192118397759768882902627253208467519186078847335492591199530577572051404934788190293132510670873316647651844930089842664800018197850698765547624908420545106776554175585214247083146271412398647396016123947345129707553986559810227891605626848251763209584785777036830849939354878586573132231459183964435471971090052020076687500412016376314417206963390338846540029232762160775874322249588335505681490093415327343636260779762468592104457263293045532316618902655278246884861217057899681819649908658394857008228371134959834080848304474596233917930434931713337809752272634592187732134674169528977818338526467063237533938101802467100262442523108590340724921983596243081588829007100861509657198675477460413834526307258276627447724741271227940915510740864919128978412618664967389677995544544583442282882093062663843019288431070974135952542256900525046580303594208260397129803176613294467499903758868298618354574370915616293631522909555349496626339566796033579725203624863922541536036893206863521628199256184287241584954772493454040874481121386830035702918966148774025813490499880003727256451989026927305636734003684257661326729972699244761654505830468126859697190895217037988989206025363356548711025720533285370987650927652523794392841935070393745555655111669457475585775056621534541821676811260340840512551945239045211628765510668005880518182060497500171411746509072306051901294294798296877232760365209311032703007425389275084619962697702136778986686237819056921076774049300354704484999323996762795369133705831033233669783764944432221106675998600822878796963834604829700372185850703030430815354511139907085292165641674225288604864902830238532014600203468506303280422073568896857851706512807676649625226566242399696293090872502377656632442057775463803104596846397380077442295030312591708636974251741811724116341597217374549654825427116114453864517536353402880483015493793863665081635778297001390425869782629859837343742671978148106677343327170046531378394698448040048746805721515524786228313942131253298235356481659529680094284331380681674139292954709245126395455581825410311707839355308261817213360811210186386764422161446828270811000248261443181988552419391482298619373630711933813862998714472977353989568250393425300970016598775173369671193634593707340615233398130220013180456945024149941402001298867807797493889800398628096343009715710421195155995163355674597164542700644012726105954366502155202857668869148909507926425956304842281208175239066386080973978104765594631621088585344429561659778835180576864506559652288766432809746032869099497043542670713884510569042115667019418964278056280965628367485769564065774933952609005153398521011332874026665561619725265614202363000469434869446382219339952668328633464864070715762325180666302640037793340244791206964866711149742530429280169829385364626898797604846036033442415036087032859380088276492114675621700755739694762492751026409241771865891755618839340285054346437497525258046856030467394494298405267306931339539510537774061151531005032209673199488141360373089705754588617429147463317063330626213841090990298014648237278284021866178378201801330295167377213174423410445754746458542258903702487388759158533592937719764520008246680294193157024929623191464481407566637152802524276024051587020820658963305492762564466068440624285333333131779283696606801382256127880329889575682707447623284746518235286431393001766759660587997006197827618591367797203544026806573131198573053495385658626715084832261308733815890558050389812236513986809987472155776196591510760526095578373760414648727027696894797195605492349732532897748016819439399522803203748772907234145218641842368259690186519060036766771325471282408561336604120703318119932974320975404481712630172327373112814301133274636078242966159054818006219727453740289559004317001134652987199786369717341974785461179973249714774200078616654978370866661319244178470696373967250396916153583901056720808336914441966591445719112585099981353969650784521338469025933871953314984877932797884697218968651404414298521949871088481140834027210883696307348834098722167336469629612670906074896092307508432401899801927579096705541765699816684823787151196875281606681656835369046115661064828445754840105192664951205412075142676489089574939845470630690720509965876157410132700457479020554914717963485759753895778750518629087523924431833392799272066521069212751698687699523392700467603759880464888209022633758913989767291605060488124544224117670694327122607270782479848280720093363620596740833144139915171281307032517837894636060784826532696498805059066509842341867973941472437500277277210186131134702984703131745829250752674214879102349360757595612217016811166847097189113784119478057531930972903276870305223356667465074128288705099077958233761197268345169698563626382869844818749866766814432387858914022824794749490637948105736161369932244765858416837176588771981540079398699644576667116325910476299247223152855564215346748865301558025742182823720696186196581931066780691384020496035725477675258888576505683966507545813028202066909823397417976288425519126198774986410386821607072558648368999976213291118797509398132082919277273669023495256359807502304843172884215666613130355868277415730697606280186368035098457341483459041020370283580236160945676225108152521850117346761316187703442057858789172829382311707384241435942027931103858374161708385596467493058828786061972286549308293101849154684370183741797953372172988760179794374977733517819361654851084405708129742390562407297622156916195898127908340671546451175121083530192892148359250954853819335839405245012183061623309011412604479583900722689686586142509134537817303448102730180847836062350777624825619849558344680863713335010919021235401056878438827498479926652725505878409248494814460851909589987436985274644393652573605043806335718165936416935892407437325594338201437211040377826774080380238696018213374109770764148041566262172775019945646204680320581650387611116267906659290577272298254751162839979971525051832103969738666224690371741088668264798192621028110575793138175104961023579513754169003551742640870037039638128646341671522056532551586637266338917484519584786967326237145973623096960937760244955091903512425774741335227259947184269257256382053125916793215939887162896727245590431669361233105883320125448228091611733237529094593285288046656299727020210606932205532803337610592897614046206687812335973603713967154247290854313499484611793943858202007767115899792104783212557787259594769416066374516988035571428550919101886496603716183127913385216398475598552155326706132232840492471156664995955159464135246718185921455066662042179869583086296194567058539750754503974504478412427640361881245037844560736304050441862251235171984237507432125836123349243102466363945041154638199929415258123345621522279712753514007913019147845832657922274088112082230371256602711086527015835700919756342998571563484236573694375027379252651361371982325957922788625259613612256375795904628408842700023798139603584457208052555966933612373577772462555657860982723364367818487479733181112584428146846486337343703161913796210777878743441408630893300874278145739493931188926796190730089294923477157048492910218870274860709280880043599760990387397916813981859560778292525800121832575327565404173253911156483800171837232532888288435951612160530615357678310419607575915608213317459987235663834772624269309196149753933395381058913356903670145029479356244884565556122872741475076716136378202905336423056272718120364149205971664616182896643554529765467441488785898663365891420885429216986145727723498841052810409284242026142177082802151335125262081717008940609462663296399303393108370623680700134160626791582857707840647204867164880773026109383429648530062215072517824029639928009754789125846656229712615410366314795582012540233875455119886593729595691045825134583753325766086202047497145484166849026323498091323326909702456186928252483220919056496241301480565920907937622544427111066366341128103916893104550443956002183997310111520714931886175912462390563113241928581355353488625888337748280796227645739273691766080491087025252269499390635631911606389741424060847860234621701632590874640214392077525869323809890857751715824804247230540352802830446822795515085201695837264608577671641209143534416731559279613974420298637949996296936414851040701128569130012418221118843536848121407881548678781661103847496148813655922902439603872458805054022781628310416705583828435184098625617117030426753331249594082867875320826895541505444161646978915234376545684070777256453651826347284419939694246929798075175316744753513668032807122259082847789794940620814473943656869734458235506558717633991630546818447864758922196085435247077247908230731082940473174904927769614379681007447956560648356379845885898132932912492534347101785274585819623957998147311847423160840554252000554538727721555979723522359433409420908243718485549391619674981117658598618668730605774513808278282614152466974689026370113612917249754895683065863856003975845772532197959107403710537525287048368900361967606498087066913908449317286978071488989714529889337196862344485679234854779162278136181100700889790601338130121488472881947143033192074632673905237039916803126885178029749643345256848703977833528883818664857311075210738654349525598539176304732979744653437581169800823748118990007993642876527417752543856262319513916403975345489510421544435458743302501117884402339603039464953496022787306703218443718877426682505399295675100121895365171107245120306659747452149436167019982930617307795873048219090405519929806722579733200852934222978813043798391152110205972972068785119682499781579670957920907663089625235764913233705450558143002182395814266042216168277753702362563279569345482676807896807075546501744243655614926897029885470700296001568416082845380112448303559104672139577461679781714612079297749995765898695404851620809468818837213839018215218040163901641269295166398370234772260466883452600345289900298453112395350746015135432914641676506859373488423101561054360667446574688734422350367282907054986436032775360688097866873395732865463121494885633157889206618665232450682591565701154536100129603512787445335502720073633800520372805385639503707209684349482048812997517924077041225384375327434739112738788367894746201859766328130356155769871292601605244500124942263488157838044629324732768049273125969610195418740358353653441461088560652855327197959422409809876034027647938752849695117066489316072259604767252224321795691676336492782464480619818724462375960884838020967299100508302245391968950737225105634789478439823523397756513409963785475910353672912796533611413872498343440126294719052751543538322320324910810843384596356739480639212008380361931917751037047464135906307728441813438209665965913745178051855975721719729333273732324153618294870880550636787343287171797717300856943304316423644177446289175967617766212729277222648250828467006082177531553461009995665222853560252909096157864051948271251901775268340500775012044659968583571247607923547030498070639643851103232608970808537753806537016838221665822119890550325291899120019417517996865124521634022640974509518091189167739427722526288364474034840713454603606264841661004487735532101641104670458141084143588499060001443658299120409071363965134621849044474485187416660082333113462033410061188888305902580434059426351543155190005523867344844540326587792798580951852108006995437559868515959675175599444910744412776406676793427602567921662211773814124428237331219035401877559618077719616693082796066163265968304403329353604640268179824832918660669313850941062855883011689461654313802558910246767803646520430665307664934952474069582357740496048067155956271612795370202057544270391254035306459281229742781092975268085432993977785012665146500106815627649972783889947359281124748741907683519202437254868367704879070315375120383381366972254180340139334223790971843354017342202549415912836107684432741345115727208540489760970318900876483240574528924723099817001450752071598566411077426920359245210975706864955883414585981902822022697787826445770292620596246742987431892066677480460516710057554654557033589105323872637393536790424483244253356276932132091045280068349695541214314645843173862809085208031726684875842598431916360458134757747781804964782311360532020559127011384972211910080230190891613694292795249737416725191648382361367341524898665167322397484094091642463985497537368695001341249432149919124004072749295700154383578606139939059692912138412134548777320251238752856577596678887634608840315870563579617722401952435601913063297341466078680896894978895647957513307923127532098852230316629913442496055512131763573529236333954477597902449481706030985154293512714266870848832318581887833390119724693495940682111076124132545719953229103907738271788428726904112584397265972356284478059089160406153661839268717285408628019563450230718713023322187299000443207546549408169775468162181390242615961002443993022369656555849120944089283284648586776346606382151807309153226680100235406864711109962736302334192999716512842663334878720314453681695884686989113117154223773569890495517424797475919638361653081661399582553570259898399822165243926348752669585392917621189883496875730873836483198551955261180892427430552021971296783411030533213258215250008707757792919720535163982735954899907464450383712431273861927067357690276365082416997921955096502987485261907786040697307304231128845482697556677153274726593931831899928638617504754952332640056394663452602301907857508153710372825909718736859590881450545773926177663690548424725234566259557983047730767326779939804451870590054515114026524189890027616141649882262334072236926954924696467308186895467556488641450157259175712985714000192359716523640545633541678087353785744092287677723998165552871058996672075041238359868914804306449464002176112199554057025533232398515676158837678415451722564145049201499563587816252223224311951158117632795579137089766301662042391289940630775683736493693139699078840151426591422203320428234870972424777258061167416678073541687635659727428625897907386467570475939512612396386927416643257281221263634680351781526881125934415064362965730994382272779347566217968948475720284530042712690824486320305520626930977539011436696067796334023615006697785236995777501262786098217945282635730352345291180563399275591711904206355064282143103198032777148477653307447220145685485313879751174619953970253836374569940766304855927866296310978583897319497692314448892853648431098984518495225165256236378196555521164106129589169594778992923326369863801728002322465224558437145994227539828099974392478704230048721663415147915378616415843521590118674749389909149169055346680736531028019739567690504719776567104694972361282643487237073797664192003875497117279480140074370118688637960009746221599103326442649607221905448594375603814175258886420374482767364541609163781041447979756937382524499549012945280056716897961869798712278762110138337144208316819932781806937473838451462708270555422770045557326586553762945643069548816249703058319011255168542377099706604222208338991656115237253096658070585713618257698673104983906201575957576528569585737280938019332122084226004192945940327857845373765592565903567613414051476394827781638598566545424199845250828646764276700551439105415300355734470768711048672821224885320224089586644277093306812284529531006731123617651860040825347394920309212001919364600873524582396647003122095485477749122697624763449781785647355364459186575067160929457188143977617307943117588659994329421744967854123815828814197354310991849486443475139715020595081658475750899218160613616050517375881753726326950071079261480038716823398513272154781710381356402843322723762520039246469219361712775849188954017166026154703272393077913507385813330494775436624484696242277343849687944277062236405285170731521062485479631190554481159643189083382661360192871580828017320089583028327583938607066231457743295067493341517299532661578448667573240726580609753449709166123120187251310467024364937509499082843989153305666965381802853942253899009677963604538245328231253367747287473862433497256112859925579626734719528047857755699250386247444869111010970376939686628707804867576965857777187584711181261717995832134360673487853948818930878264779872140350312477521688649515621484864592949606886410700276006232364702178484691768444306882370777040165316820340600218856090116790541068093423180415445286227118413744313092784962955921523894370470973835272632247179411761625235483229306602956649295208257276880042002717202377208389229693957297994178594074563235780021591855778005679671809316806457628902794219077650226120598518724284268286620446672197454146952530844318644022427646064260814009640723777005932093346900254316560664613079360289615755106490518381358786176455261108733015202653282232009727955447512103189471202316499156006326790703892237772922912219003441366288547729669729410332844555544331816771501830822523466345117290601076203113193123085696316412325607646007242112451054539504353578752441702617752092359261890043731276793840411674110430953482667389367228790149184676176579111435604885276143659767619163947907397784503985938945838858492182257428432424460855441461368445854075506982699907720212980833764253794705613537315051116843838476864371139424406839339786131004192472601063701461792516772239493701082846287705996125592966876682610495549342987750443157088487334452235031942940031741244269479997176598330361208905173604580826910618364021596094318269912319853889497634724856374436169144226922636206473156302891934084424702561976330286054180718610593866479981255737215083078372606582666873075703136445039303656541253411781032307693168955256821789713640271250327914656321782197194985056390840886300900913457804473148378890910799051357924326834760054097364894602064355726296822060604264945303065271865784986210672234533485864075947160535641841928600455449378381943322573160606619010688345380220090171395482086644565179795012790664339507929136472789720246901042587485216611951769257580224859097559406159992088788089148876780383185928728205553999714364041939228635458108659578374067257276819013757478751863097372481964836561771085877873100102671938417418191069783302065505037222641304266420797326127887613963302113364454810110493838380610798772817869905968375583447078341397787235628711985603118755253939403698147773270065466559184602911578508045261385460505430203078291644044479241262007837545066011694606364145070985105577593634627608259711613922722795258071520706301543166782899787237265548142888016269394989292534210501898200047006731600252928487450140562836468788835643032610500950258735598975985967511253354220305662092892528957576313377086237330429476686181294480770750733459524159074637368826108598211358611851516395621779666721483484675771921061427013094276737370842560976911902079027971357863177523475582632501319744114895039716477536643759350128275073664227510636759629234736893811601814867099609324643603574841875191961896317884269567122427022179767607128533761430425265557626888306052060753628534539295956832141987961303189044004799435226146440469067888039140192393501511923640002248785929411340902399403764197848708509306692496619627911450981182682387035983800790696922036169086939844783087874820845795819415786143667217089622360403249415260800818882294708438970762387561461106942810695705969300666271931620698449773839086735566217522678754124504515684068277913445611799070103549288056417120057922771743020033951969885794865222853258402681529920513073866022360761977456731840605199683368950512119411242346765188079163959026779848808366383666523368776907750094267874730742914068927694842740769440434762573749253341470053714538832891023152498340816813493624687184039753182436978523750584390711781893443726718104710360655190589309246678028541623293906103019663411214888644821593142334251566575003184319405999540218261295580145539083774801706740445219086730166562252568065622919280370224437773143138810294389586780753111796326883320246254419876785443938020209399819383471401924621084141702988241796269496831747876639547573804307262996800324210450351444785874020021604554002062296270078036531985417433387445572102101065785753746805441709856804994450896346338148009354316592490490532862842178256974890071788881298337083882771440144039030571457794643711698668122193519250722155125729768639123973785662905467142815367814155691470227709950065370150313438866614267958979666861162742736762818384723430833164436687212615105259631798707329975935852955232987849855776735691644532622427071933318752748950522285056212943851534403988529462510213157959361619801391489011356821478966816644910362747125345105082214980996684884209825120054218301101186425461926714855146635286589470512215163630343892171401352262579295633654106085995704310009998842704133359928451019705134008227841762427700031991712012990460452207963700168612966562363899129179650095693318403174896817251711612135609705347055503356737891526626130145502890033786972873638428016886929342562436036122521934306712173558139736488585495440924391492070385605954099719715816851348059511848490911519617320827448638489304702978418978563905232038316378244148449270191703376349853681405424000086600694430383629516190306872983919544906887264809854090621989533827685468454816248102155949752614503966904252756728269561071601792043243778858317533492170613437719693671391360950297661981842986364300074546764684889366730692203580589386869474327078120228998745094937628437521209872704153442483427240715451627331526399924716716620704446417274474444812117975658451765286777790733633895942743761512301708704256377082888303274862652491802908910455217932314273289978348568347413743082092047151645544790666004212472420376285604322665614383697116824073705912793285330962945242198995649054584461625073336955172963377309770871947234726446883738255820294450018411759135073165785087182040655338117576051462137429844194449335398150178829573149576250150396301691403880588840486852924920942458594032010106038972224121066431174047403921478547355210061527259558280747115593216644361905982776230841263464834303640026562298215476214744881878567399667592778414581670044565477216288598984160307654376525374392602785303685688913834334121558450757227598242496872584722145055630097960363072674348832951677611374141155020071884850163990946071548762186855144247873645871044221139654439691265881999243034635373634063133821877822899293581269239566758637147884395853752358651703608291828609724441455968895904284526630766571259727982600794916753344670405332135084154879921582401204027781605176880793869306103351336334497121165058267651583269645932998270616376858031850830802337986349235647104920391913881179694970186739356191014455614899639104859251766333895103023762655426253946249038313841914324034171990126271606471209212562537961441942986140368605338021400490898658415810254076690921616025767967325274064271638498828674565349559509407922316458414830624921512069587224402680918023336016254530950214485573939618150789612030503358449020584696223682766109568626951776166762535043620778201057368691368013361710292499172535367975779005850539923749984078801721323783364912204157480504353805313861347057888672075631149530258899482147327816629744039119221839040792059380658127761319456111711837126168018776308671120514388042717806123389772472059054872791442865511844101094541415699205876392868747196990372321588978679232889880771664704734151723968292773332696698249835005097865216242865508562947493581765789835694979343527927882816689608664479275239511195135724589205785891831804553035030456004674241743227311272860247193009220256931897554299783304974504601868434012961299735787837547521629340959826052104071469867610866706883193325234392544005062423116562982296005039052320703267133763129360147806463364947120188653463610995807182665038446017642224716728080342639630477483952001014651741636017814063863799340230652585856327101280742672403869728312811925168025149257926354368525958443581994251421397821635462213316258260580549642525205592075844116576573917692594223869820360621960060832822108519260209630496162644044629896736049706300832286307496770659089737778792164068919968265908826085417304008311496141765602354651250855453940352788125647570760764250984480265230452100205996059531851675112964176589793750785060259250246284512381524944524889157401762895083944266281669866591406042542630913414732872437655523048677914647101963536709391698049836788231285085954876105789166800761430652249488432421197889878006103901482280288883183487715453789616369394526550078369556475741710099977016977805771877873850397089173716160478343364500513295128382076302632313949174884862234752214653706484921772584451630674787007915747796279607843839808354032462264840234538720814722572001588147853828106031127395508392449955142617118136821203498052180044323788387933121674655734685189988917723231844024813384417674265160986531641005870505123311200605866443198205887655399266789079337399948043210570819331751955249072327480178376071657102504295637612077020885232243436646154741736041123478979251446175655359912463534544955748043410442199103225656635158345633653806186558602543942544083049642003644983621857602850564782814828675441124293309566257259479446334335583208622781346871777536376256709598217228565435114030522672381325077198042215137547444778858764262012013033976905663340742161029548778034662387305036197020085069646862288994840942067275121388327842984342064929637985590215650549288462787339230353315396796856155445286467756141852885693062588846445991082732086660394789030314397815164681637711889578750347808885400989018197148551285959757051644473371112964371964483805106902933277390948771300705295814692021974665578158758370042593214643508980320600970333017320103336298768127362882444229148610912152801590747173537022681370447647731346703117319620681745171058852770885768332227334421021323606132987257208991589652090048941189996531817821502329875778066038404008777021746813952831440565955270618452499692064399592594154699621536577118989744564493448388714024850333780107111266996691873469512079916352909109217691937765635620378548912694708466571177211266719084432966695557125556425838938886610180210186635834466289886998852458727739312496769944120969804294506208254757762942945761115333302956043397395643589015653696059892055363433466091287032626872141010489722086787222813492349259485661513404345499688161759065121447454533552759136372797272921497883102330020269554900648340896749178094497431120644853801397474960707296707373566395921716505668570466642984600946234091722744297042563769598326275898488375000587080500373760992672589426567664629504477982279507113813420749193641090317128488148807776093455897211037542812458558628655954137761658340019081867767995899490209729887590985333757736066677530866867904486443464185516669007498471082142993262783869727427017942763643400739793919527672198418396039773474284542927636378826986087716438753519629362667638797459603612510506217960552936654689753014493278964024098572810174706676664943380514932961015802905711816685715975641911822596607847784649751723698762683636964720843042018983094182683989036437652012740219323091129926460953304117698848147387048342287277434628617412581932948627820378774752602822380135774800139824816218687908324987182291827550523645940102015600853281938630144002343176591566636418600880730064051872279729678357101358714481742933947670414486001291744653501906759821957382975900219956163709093211276994210025838013392305870087868677813612374459775146071205007212135257916531834197224015325558437538558378717852521350065653020152776224370523314070511341486957227174509729609284259663832865728774510572385134233807091704712141141228636615444207171289301551508482434296271420667057585546191150749953653371024365745707144130898328389246047379595800112820334523280631959685594698464787760601433534353873979224865273617421874876607585321557104726149979520601115959260657128235300763852249000925835029273219421949923785135042802646090828332052461118451090171486841674198417810537605619938812205449271604974436774141225118489925826595624341680022215926615958785498076591544943130000717134192987317849252968136614873584984405608257119215637134649319090396482909446823176909773925865710180830520987288858305737007046324148778192190546098248300334232282622200034759794027520058302253379218592944034142333891087772132501729815616138500431898764428335109981997821475786599736524513185873325750174091374735675533372030286537603786394427201622450740335823165228591060021633630233095018877960126251404544611854261780667233179221400202968279750989289839606928179431854273292230993933430509862435964697586297434433883880615612638289155911076673689520326969970493887923518475412947964646904265735334054778396162265906831313722487275373655275517653253022692308969575391956015569396280684852559911057891722738592385332980535410733126884842680456757325247826962330827464743934814851009246379918700211267288136764806995343838111305347085573302860290550055975737898768145764518329352926226344867617984414714082407098260196130574700779376649067388988488781111738289277719751566758703387166962919674696909618527618477671080643821388234107774502703009684749879809100690537126732367200184722620637865226071120789173133893038904562061006264956266949302666933516143888427949232312522889848716269256344396847661209451168478990070776729759854863650242014576961868064643706860157331413457605142786640932685339634506084938852093766842236126366848920122063452880501353273762109275675301776257515671219619596108179553856985932395015893725843708851643014315050828573075459969561722475971528543503923781892330411338258035477446512095788976645154493089977624549674870132379773827384533758563886845523883122517690233837946332613395089569224871219539982047910718449023612339461481639818205601094468406793010967179036880639719878474003631057014814792445893188942232914539166729144149035140326695223212319853487500184365923465116005826345314752980038825120133991766906699581767936096387293831764309997194088212606338597487612707123777735989682203305367264696251286839655877691532889688889685208990538332002037040941697112553079194653695769973430407336582185874940936264378511700578308558406347400123724354339509785352053672201247600253358488490232215175271170647440932863414394469442491779207482208692533644466837491815490687293797775228138859249753812075714371856304068851260821712195421536525955861720764007570143268015616720256124225783322839709451132758105761479666241706599904442564176994394758963197807515822501652675172950479668603205616847368986664764155416427867901465681546887673228827852114023652078626181654466230730755137139745713483153048669957577647565196294334839208549566462734709764069896849945568775993113624411746068989117044558708701274189503279545740009368464837258735858253667761360739385215315406370248027257360460908359454017384088730441623881831987156112730212512481096927496256141077204220740381295629745763969848315994398124037753807514982975701005726742894016793137579647128352719665512775352277733809432981056065429983919660458549714994438388108790670030067600094501999538373921493820514840498142118105328585948039965559343641036981995600917045746887030801981198761741964536146256054475402546705845835992977710640931745946710708282736698431931151561297618834936871494049465473993403803338604953832915097996063341583475131180736525474995495395900505788649298559463714959128536675575239080200988417812756503530800526062240140726226713531863010304544312236065185260932583594375823580065929699079813158895520706995119083365083996504118489259505417801603498446448182558311587553123811913689151565379998811004222056870389305667217197236819321689732839801809302382489466331683323762259564456300813756534767113362629593800311725839775274455633518139101646073310670765317264604840237480615969892986883500548417851578211966997364477774560394104033038870951487136314066595451852550474519812025735742376302296430482850737705088498679105542137994856751906344767573149599811861491545846329364714855570360956165111705079190658824113706788011034167653337768156205616045940292151558914364008551971162010345417715212181690865247548453630234526214282690490283699691640223578751047573187668076930998339852896988950768907858896931171528098097677402053836020302884475744111117728090773834385758092164815557155377938941893591818416915788006739507305282367346962243642144229021177714020515747359375706592694366323275124004561266062057244311317072277623106585925197252231627148583211101144038656024732924761260459136748251607640223576571178341520818472789176481632250003258387239434456306079987962404427380974143501832512218457787913299822206660405471776417374980024148286220170869851879081543117381630849252584708243048001770908366452090330723112904779081450625279738365764082706245532514767408296051871444045439680487008533333551339692693143358947487283527212379503715772212595196762785529106761791815840542672962522975321682821369938792406483600623212182589301470536543238343673445995339532236358258678986133093641325742013148327668206679723812230597298563001275072885818395010974263614032620078343854075375136037427587688513259043439554882976935743180588124732977331976394614359030524585384203719240074861135219295286547296677030790509746985024857087818377037378875569480676794290359611312596336818503156466220195498973130855158833859486268623191958829224190153512527191435853623889348640335289980071927089831723758054903740751473001298967036603802622588609614305961128615138171394962943471639534039004942614228866645984106820332576990032701458511017139918614340157090712784136064746681333310577297476793790216146125843796209625169322464927144166770956879967016785303496777394877034324319804137729324655261094153920065640672607042932428211853740368959751495308601512117817957656868450988307073348914322000410146277991108393329801371742063090064985264262145793154755400479992864501863169096117748275564546114710155182762406006629112859580455420528834000890281081618811567592661589546858196186099787748036513138187287442951974813734544432365170849414796898594214099568141703732022355259736827544059048574317030079725147101655011512808535976736678225195567308569134826831009494664621905291432696913693602288597493590249196493546466921376516974688390403561849468461777917407652376159140431075143790298542011222935682187441916858945135094155698228167037785185359949879073629841699904715605040972694370144469204869339387153284606231925303037555579372706964768007977642867605698307999565456505171124991242764257165397504638716361950617316140459892798273782537830943068742896426523153292493111281637468632330040152378363355541277544199498850118733061653513436432230603816196672961647861534384181990530861161587460923063355467320376643557298460005192240831760883592354471586351938977637173644813444929917729891476536898034409691711783066627218285413813778619668953569144811114048763895578141506171007942718664430089792712575330435895941930620811229930352137642669996844030915291645998751861703570399654266031334494886700128418702065790859825156944486631045117347602286682424440650494273985454798703988610247508096272798259505005033389748114823450657686560588826454911110057666360441488419154103007776119206153842882639860778206561079637493199964037433175799631259392363619566067061886464538333546629372012374875973810249371553454121082590568655059151610328384974067527082145005808049185294696099245720334370963513523193463153216605293904253301345705309018404208178317288831000974798293603441691410734595171954629651939530841550514707051409782788912240941010523254086736654091482668815964599499750735097429204833570850377446486248025747434410646818016414177773217418501714020413410342480481796545463349769078474970825975846434771664728934070698425281425945078744189761974612061653840052707206560297482289888959641423529118723618068220061606123375106643554765713530112968388822304448692338530327773617923600431500162935717064773024662995172980163504937609926930961672282202783789460184706430636877566127281772828316215467899569680158337499545322085995589669300696714900257392158283513910795838767414767363985262497840069669184529573036705996190439794432088933971288297168605216123521142169619619318341850070905880240874518580306434130341879223645729667965804452887402687886082381347359320917874625245139146074766710223861879540400643368119876473738672489912222834286113574612393871026332980380582456179725915374465319800080194997138903507356890466408569712458362241543983850403521508803935879660845437581250010858688510621669688496238648170838142007809797548925960834651067597546513959660323842869376014096855009929928771776889760004993763109173157209109651534599813553591957089730780115995510016585462164868919010881345151701302421928079685661964555200135357465709330991311516261142580685389745160007496832359437161659837068423020180319515486477720256750819201581664422813712978264681056019566370393944766678703024119366427205237179394811291894101109714425947976916026842113530392597991379685008430858617836329124507556212921643857296817966844493188642412514382681536568092028252465080745544062003943915429691673390109125765830406135454047517065881629417878371847387120074436877641974416096904060966372730972553655725199139276287850308389734818555501461873428144286680229490259106359009230007946113641619158008109923127466499907491751763014115061590831437806826205901057650589042186614977726140959352918988095299648747251229978649616999942239572654071753711321707356057480739114589593575524931342084084226255704168971173122410676461473021811085418473911810030990349895890854501081719366564735473385670388471547714095516744990993093328342536506583589002049404935971072689698229782184433557990045200974665154568229286555306855544424479947903394255471659866245623457897495669642607353207531920622099012749115453586677105656400743829579677967538750166765474955349671044820822195661662791853848754240780195825460904258793842392866880679646795964582112241587882020040079143863204388847039304433857988426202594142220887957402626463678322992113602597298196879784350510072618325473905720795639927043310266662842017409480669320386110451054111993689299020080540637956985638177264237691038853290468991580597198220403143409683313171074966107743249370516464631962731839915126377987698050968929447438708239938093821353711193898527478483135536267503397116576563489604908740200325392075277244967565118188965637822491156770318280289837635308337008087059472505059401742446996068021252924558425473560969356824134613635905217863911558479260777411800038556350777629833236074427051858837680791558821600747521409306666136419437746006434228408032002296516822875490535866286483317388744146672638012110949864981431649809444533976397116780130789958882383990508827984239547000626009944143480894944260371933939397243242234450432165671493912688815857982245435112464212641119084528344480109190067336903310742107078298830000626927940154391707012582504607860785009225048238927789701416469279632371522336268452936639227757724771450036474137955519032140871778131862148563234920240247909635779953750227624184146478658548834779113579158919696764144405192516137015103231555167764007672791555817221854018230572749989478405744508784356898925263594065170001439873352100460845564065405101856949819116094242706455877220364311602495399080024633989775956139581635578229316028289162978940884261051873383733055227086555899443012121425523257591688521148925214666526483249614640080925446852235006769588908596845363980502618136188719417875889393230638748196744681408997468917868527106849348509323400139788584425528477146284755091944208312004575735049604600983226284548783763987240632553615245345983939378433690175181095879690004761545479179243458144228881002370198936378032300812412280483516640578635857646934295717579361986107254270521248653172207904156434668395958532613189764118590572473911389255717476320576585654081640923135104916878747235509917452453770845352093745468732323668420886615652421356347147606500531716535501131064768049998095899377263006622962638002789055550615449557294457479411339440254250003634558095555367099498097862247478807036740071302947596799919633890151141275303511316522087783560868947486685996414607887342433452651276247888821999766755462370879888720464894741339519556946392525332066335171373562407441851353892952976983308692170783786673140125716233629035783988412879109463161826797940911558967927488064561610523300851304151491345642208310520829820079159795485609916844170927212887755793494276528515560828056778678989777065303763108668702563313585107249985081886801610461493251924112051659504965843284500565513733216012087612612486896066916933068720797905155169602363222382661864281826149144431758150203824231878004522834761917203195794689910809525653853966596234735276432705202022085132240694192702588401846074793624231917804385170647317336274859776431409777091790963576369035688697564351779993524522569464235834383688852871358885141436264693517273506565810062000708745684878130720466767424834175940787573891679672312055075455469393301735821208536106123660407738557253382380254055795502545554987276633594728699944756636458968625510459637263016305823598883067063869419805923797224439900469757083411003472678765161952794619760277380211754076137818083171473678658172192359960754896220303113874593700432563714790097993072397982313851251656594542769318941767324496827330775292146015334679531076723894731298543860208399301945127861139951090422167821252781995914774415145773272351414742116553827105633290760468929233605966218140558152211666975589437791054429408307953630985509749547508253731919845703179565792222171253593044805615240048473510783069689510584176325920027865916239112294996923033411859561927240929169483574509076918562691560604061091017049986639160066554180291855665588296298652217166403353811234633364238577845498811421502129198333633643056526258800661097184537146374001369267361131191571946669823188908341050094865038381311363045503071396890717484353372476056688648748631248390605491278134655690801630074337905993634715376005458338501242041996906539850572267085700092253102338364319954065355996046816321585570724468631618961830013146111026845974652020174277096194770999978631755837865701557162311443655801751150071585009712306727731113736751495657842508616471654369082745709370037578686590690737704485618777545961277946377867811020004897659145333216335756175511090542789785232488424844271603019387008023292324934454719732823635169015649709861034408921394764603812115986266188602801710353162614667100701512143797943049026928356594197416355913855565234325421602276500932486076814093702271628991630006001727142916379199811483420986326343781045098000917910266319716652664769953498881686188337794693779809293774043251606685045851587368575383599657925916306081591309558562556373608491190622968303699957103560641700949481955518124495663404087780803202895849759449035940172753714769668349616721595301317144759673219483133651697963743243983739062238697058302093814552685647685001643788722036178232525913938422713238402618751647851673018012922650053032693438147558951998382231325076558252208899155764269690620828851943395205425591489491993990922628740012213314376509091195101610448920037890083860200699212985636577198250376727318001968776136737011492245644708586762321067126563465597527971098315497951295153436716152898866615251305273923651074425493074654549760311701156857059626490241830783096044011850808829264350248420081316971028648634764933073743416767264982435061296838729071299244049811273025496440401877112859211087480053659535089582686177191622393301905402692496474441438117195518269261754710436348103161723558631958866030017893154122191029322426701254788881940548931946384693836383763440731274108668777447457765471487743151215439746450605931634448218676252163012410753912235892362838698246394108716094991778972349244946881075170245498556839616804963203414054980623215637322868546321739197802628150058346589162622733019880024111671832586021093693326472970942766396436736521358287051322587937311519665676972297701198336180252869715918827482511920399180675368494232060402556553025931882843327961539107777514048531713300270671516200146521463018803378135787750849703551739869349208376917917465258794936942129485401495480850386240328246971528592909867797951026662711679684578757374964794682243731809761150180193553793229919340173198444124271810266972760065477235951452628402564842793660707157416423594599117046907344824171211238733343260638290154896353412190154009126614809087049981208134628348502870723950030422778969704438493182424067679627554740855308871239786563321905296996478694586103687202162281185512854654510603286426715940789840757327988324881031128401956902247098965299726332571887119414961717957668835751895688904216896536717723798651252644470995500156060006500001655937142830327025663171862629806140984374243442236627315335464779441717931802124256722538706973375896963292307567203559326305541695032488145704209615812158551027336605957313977057300142639982372719128532362136564779485489066061682497951850633179086303220995571130785398469719633785592454788349736506126102252579633039645988334584775913754362841280839585249482525195021596368679263489859478016411007833329910083337172557901246730044361238329690498228904414306164439107537915341047857873369641501852578037176371524903908363054543072448890044174284849689461379068783895185366745162088789912009637328525083289606279175908332488146302738172525308550080285391085722837291118011811232937912558232759401535038448673862015777061953697942286336184422939425728800625197056920544084658163546454426637531503233385601413882126440121271959932877692997744897349215451550904346361183348200511168609430554589460516307156680437483881759064775108851784735861174096424756987448127787348895837693035268474596142039963610042233090923746982918977954087790096769651171722587031580701118708457432188624372281964699789887708379093580051407128864324674896339522143923305527208198821915002704823388695849072955401460829195078219667816680675264650748874405140483244850763168949712830835008973534778993147625344360187952976344227318776708341811773338066554174343469369961920020386963323261896939172028525096976604820659103575209869398802311092374052925552050710663119438254063611869583160833191096582611179386502077039027429788964856184380403072192879127146532448855578197760178430116627283613253209909055547356268888498708392147513085889204385932985488637070104189638587116946350804639786174070877949783818231237876309375149859210909120038053091487518805019369363605700717472035917487234798815029895807886749420450274702099727206982020264111595915527815437494470263215202895507498899183487915022838146259755885992632048453481656881447158465380289259201789289246592826332483497950910257397685358659750667689137823337857479554801520233124214069462752490054761807503793220035516532227129020084400424097976696718784229786054880184612304476464463433872804901811725514734526425035846412917415155189405299553601894680431373783013118290791521691644651014764213287227472241865386272763896939886226460094900757243850982504031565481907149350277791718022098160995067476595599356361816773149430184767704804379072212138846046206429820338014300023717635494400620743701747282451616089600737813315158995698712430378292309141544501277178341256776249479250750436025036223373147184304606023788087129643219503916307166873487832239563497885329426683554426818787644333009058260421774294056433149445677276414026720058921842556185303220973259580153397109868526138727832252958638018531394033310888644122698122439083550546503184686883151503803969078113582803176706264726099857334042221076013121995428855332694928667845359922484225964749312302019666313597207305521340927292731190928504595579602053414951990889416778896242380921399260122397615678030137341781336475552676897584693108883401363217144665560017961537573616377531031957285387514882004113474102801978351813410262567116273956421784007689891914825587537251774551819950128127211966127777279960833267160474931555912140182012879402840860348024887503762133001461377391799230803814435725258248451451245298781954930422934274654352487966318135943472076326407561431615044379571490988466205473083409333391970802068213824745514490538142242954811222626650542481747949622795536331130722245469696806452320483981510881602063043032990224538701328225400193880584635670354405493663714389318843338203688775366122528345294364782589971199214182289513403228355463327435255348171891678101359592909857566956122877571491072257045080759292881915798122481301649116278943434775783010713545131018068050554186129439420377204729002811925616250883326622859668461010808339903320504132886656384420856718472715534120852316750181650827685247528504835829144353058968755844544778898430639935866880093574112402295057544448709135039944856656903731763408735111504683969687017853262020262109533691433715038626097706868018017534339550192078610544727816419421800423730957475967015818041230923774926021170469225053505612804689846825269522219478310055544102308512335645167515058992198229559555559057611625361987023638877982399374539016684708182841145986072622575037062106416684123880425649601014310136543535884939022899440360390550405352565300221234599520182470118521503847115184061734946505718771608928080884454888336276501091778450521680572226864128136139175767114237913412857163421970224235676672598025619943537407624554424719254966933434582205768325662952274091190361014631239206038320440971055365969249762519249975631966577215198397802664858835170240371724593014127536816699105179983076644827119541939458728453810444865955803076933496508387109864229502562204272945231569827521150247810811009469447713165601148155973220892043506172488673138461305436041306314134592412662641505618771148997172981981303940055008362358078347082163211142521910106158853898243216367323377106661511614599607023347813201536737661891640623371351144936409679658368067118266813771027986889672856560919897526778276749574261105262123402093491943768107846176686217196526270787796263191578996954166123227657618287419021641164755984410486565835756844491769295282456665185842797229977091416809707225466054936002152078560253510756818033233278300797081062952962721516793109203895470311199535842696954143499067575820686340051435420810146824040143593793888909549714275203417815879252746841160067713555375417382217550514655902010691199499671808895844573639397109711586006303528286433506785297018979093425507692112776333527356722002853264625620852519291024764228526948894435782369199408354409988340109785693025962031222763228659974397065520935722648134319559926583203940873423929943563721525092607152484699204831474704725903621937268769135033570055238744972254120773717788326747552370972860340923270754805648118097847837159123812003899146268964254711146469850485545596116301445228146506639357892228909155308445059845894093212328727825818378019672001603691707263928849562740127347221287147480440229587298810289877538927198940238979583673040289376464844652689871414280986149109554879685888980558962770138828302255411004228226910448242151649834941119550018726896603911427034153099419903567322192449347735019113242818341062794297881157234530955330330460729566409323016322028056110541031511277671516239253241481624953686274416161921567307745784821794379352900398080705123717927605963329651123777055257559427203843949697774197553189542447714926202045411304315302974218915640780873279445681466263201732179777137752063919720864045111013683895411483560813263793051811898751917870980646955676718889862540393833163617691618236990416491043722701075455612257894164851182946204725738538295514150566742666159869692774299258625462216661154175866827162903748953030560259789284394636799052164418623170711437069336875279963879268975055766984234888636545110400825561640758210144255047906438105195173836342720356512898414041209829468354164901595582263490032427747143997103364887892933678476572594358834989737889982372113646840985903382019145534741804505979250189600563402093351021084379680308764935180084722022204101271010658098630043026317443847147445467658855948857743478977953197542377392518324241170334227653359410090178983408731725504223590648242805435029925075005768120427967415377968290344301394424153674094901297735125692167792879354372233092494531886589692155238766660439361051319718220955143616764079652097805690741000884501722367785547942200595398015130068240814502792929824912918606274534920171927587861177164512021236826220813162009892236468381759835349388450180837372578184823690202515694374871729827470314960712078071006873308634624925970453453994356556831180406698290619975404685949980923121816614114698508147981313518956149636710630607395616859404058413594143602005518092815039357049678137765776449716339590109150009316833442378974742854213935537178248851581217112071860312893132257849316264100451300798868426025993451603277530295086006734611494867817560729471573444918498676069587698683716746904648823077448953320115954832338056100924520804199905575949683323368152961165007467491474827524519697497246496562219119216229383152393378666068653341103377559322270565496378724569869760542140268502222860145699835293762938649037213412654365279274146233806463944983549355424576963898204677422460777411076573650737049552883495510552554524851462210105881664447319753408470872370190200276875117044545870622669275306375743344816979754143112842709356757773989815706570327461163649967046704431056313770907076216696430752051180769023466289160026327773723943581207047350424403399649242839407728864675641810686530532413600572684171876084806934213643259618750179630148782754395709388203954807660889531423348642340609282420646101646596024583593026779620732325668025457815550742134084009975001854015169975203860451068603336868344995534166766410702070851944495489811677489120157735335655845524742968330736574535430780644274747565962997090877857457529134498278917218354197725209481080781491623755663070826360542864865833782005147479399704926983096434732738441177130224460309625992891550080069810494844295198659865376759041695918737111653499820623081099915854069204189556323195539354366783244128120052458893033736610940336472602122861436964914003219967624348201033925903025027945039080129761810381992859940951372922991484807902193003307429675462090698959387140750943302745305985896681845184196133069337661485718676950567681796351917149292476363342065955386057240905109572456286632683630591748290019138640906424566269487097026954559960795195859466707290196867927944884503903319175891490316274440610002228069889137409759217330675421867790431647303148706019285824439120877839014576396713141360658848156980900042121136537603648810174416915986617634898024541258784574463487561852006745623687610087715708452139853971187201687391560465624176870163162885870637866598807900510385951050578800406396583806105106266994242704588221739089983491904497680089590982138190178198991962764514240832541023699980356858472980701329621603457457799461626432490348619876651785571041827895420715836249829698471946022295581788485509877618129806226767786327784656585585700345588609282677082336562498831423433131984055152624501641919855947310229374491995914609574660608482584721971152236841833386071675505176575164941289901430850939178927160448922752618371227540547304897026490008223710301931459310886130553125281699822474676111026968606734348133429791333171164589896635231430678506637738054944414680747506114586734508648792152881390625247611467020504635453185503180544213556135016076895217554694827457256930585102354340264719207782540501865608975255575096351588085733576729952523616289719180544860173459941051838632831878269692570526213704535649064616681972814620307407900909899429448456341631328134002020819082190946531663933694729342526128833780092417894755629982709022097336132581389061683976615284668536625751288099266537684470977318671118831416619031938901042729421227739042537157595511215508722874064038726471895705793847411948166967340786408005668311798207170365037018819820247665055359587120114682493554303329076845113997993535950467279181591417461997698860665501537798455303157183240528656642248699024872918549479407230714305273705113472135133394520172858985734915710794652395314060936704903827350642682079945481431797134055941061755201709471535305949055331376082334080355587227154245597037945378814291835532256486537694700172896312025574835750933215949898732815296530111906571891763062685878570676515852729439599860749511488308873741287285114245257813856166581835227617935542873327558139028463058177189283094687072866793416725914416929764397960058060675640837760863741280034698757536301567824253170678823097936345507198202888192939399120962888896227821385393613432914773769713526987445982322769560127944269070323023104905646810737112596684159512495872276274794458637571942861527218940141818253150951663148565915102487906204489433106653548650128317680213842236631546882776267644190996222297132329722264190950473293426923904781823986561886464115666159291788098358770910210113134847307931282700695292874021886674005666078064413379471628793541588620371115701765053430887715499157754069782273664156780921651807390443974375347329640724180788743260410446443809770500723371379977694092144173952382929995547374135390757717530611137661827979127566289729220375066604900092061806470373562221078082947346501648628928766499982362172467652435062041018711096120681084050512432578066375913765547456799665108901500938599999723422143991795826275018378660120825322510501662860596216348461614306135822362577057802498905780401408104076890702874804342445974357551544394310241014350957146228398617514929667415280151893897210929654506606087861729578876780412264357117812580038808393429514793185269364717860202710786496125802213447291857094299364006584353277951483931031345712989635139535288933229353318161953112707938277147020192117813238799357634404928239185404026314000527407410923531936767349461047010974792935467751792497063252607992603968322238466966293146011257729421979616250264174908082346181515112555417503296531036751769087471819062398071061959647994321383995860757268486743620477071132750429406739473210895221842207120576887626885373561011342446098507606026647138258451965454620464193516111837414941379191617359265643657477716411205969400451078342889410575418509533811396722817970231352337438717929005138271417140151130058665215080145181545991877964692564112678954200473581132469707174443064355540822722028607808274418759679790411845241767999000546078467750207167236709488965895799942822663311448830540863288881752108230828094203834183742137516590880295316224764553111667847586581282173791315582879169273115604915038263366923681908705282997173495489517912867982915470992938726144774110597414961222353261648537313006068054880812593745667612721990682812088611230887199933007593562890192053810459428782149903647515178997519323039461899594734095429416916115504693725900109719144989620217309419274835939816399525912721413797232617413353384086891669420026937830202534635378341126903056557341544715044129780762136054531938730715413762330926486448509876476925443452758775368370544779064500157269222083413399284685159736369478231849966868401133194739334616633034734856274175732087847261118642274542750934009313837516553685840419664176382213060450019845559760455353961266504931963462065875836723893547195874508123068860782711334420975682897823903854916465477618177824763152746409331393113056513577041976704938341679863934581951113980618168522812773584720567063984464330459956551323340836900044188674229931944221441077944513070250498322413078143732012036756172353568288691521767083420478409767021592031442677464317575392749441452038977989082077190695578859434696586544814541207620931342335712858780794582732563431920428144644248162264710227519291474791867505185587329445303893542594638384094127699280660185141404151501831437404657054447886374242716042453994024695823607299273641131987942199037871993594034759972413079956649920099355915298131852452127470597664495738688608694991470119732781579591290057112828432151221990112164783022731395347657862716951968033502437611815122448223599710411580752421750217882459801469917129046475328851389509420839229022907182206976961545122371115670050183099750135199790833436593178453943354767301890648574656852654366386281142112799201965377846891386996634801146993986908145304187214025620255490605800930496609206172422762879595552169916131907920800953829173269525931884809755452940199238903659772929077001488748398395672585151100864818961704917965086271821067145093998825535074948593804649275146772037180294232802936970356348658244337523456827633803798762302726068060271914449835718132647875620530567331386209592865788932796083323247115812791255492359209224136564885966566015791041802081854829665500372546594301288534769866702383795396452592174308879001818205912814882505117961275621756645097028787833810925741578403102265669039707523405239190689004808028086965596235995841686384789504548243189275791704638109374588839843330281098883259875066373713570656124737901591315572472650420243748157110724294492151728722315037906223067779711475119323558467207083004650194105199348902759647725623847685034822499355720597427760461848160358326606277462152616300180005377333893647753303148841409041964290160784588533640604923016548475194839108767275852518824989566732003116623298194008888799838332553163382733389823479141329133117818970546810249884454763062713532332643670116828469752679454680514454166287164119054993040023765102412191140856304750106455701930509168355025625284192760170412542935003671792127666287284482540878304527766286443338520088953646094452798985458724285769293062798206887030787146822109402955957721268789697086612824546751483776264326538066237150165175476056329382134756606558253617364215617936928055892833673622339887866200557351667198900896030288970026741807717778877353213270620809470772084043243288683389063303909556792512305566406406602037333369557373018940202909870480926732788981902130198861079410521459443102036556737672732036127478223901662929289252664193649531280591246308159708222031439662412089942005140196920737691988341223629463953707380242450875196099875388811531033654066565583928391736981740870578259227502362220234300761255737751822297240477638078414044365498940350668537179484573749197052383750192707415858291679656853643160944101453976523600671926421471044928693594723463304316193579713363993219641435796027104533828801788131555157376074979056778711251760057890871390875988951670592811222384822848250473965007388918070624421233995284477050168623781391916685538805512086283732882991094680970891187406710165817469503000938716653090680753178851054642940040265121914725733115409475560363483931333884131193417022053652568233329562519792226720441862865373231994949925040727525791670200707864118474784895530508324475532031787972520546481450848599460405475126991273509304290681608709279961546686881423449289037441591006617685166802489808184455694108988033712894564208678621188715213403909425946229222889451614746069662773245296871155288049623798875644562487106954032247936551008929056226343720201675642501467777094673531619508080674532161053355160936436098458333398086504285636306660900215563200366181085376275290023223295826943248218128604119754185775919773298275214132526587174248794109854200562791815750397709064174160633632322838583582507242640430317187641137891461265940964553670669270146939696130755933136827499142603315993541661832900856983065654726695056828815411780621908142817372846466864087338625415891520012482642791890795570709060623811634494963584486701721857858691477122074282178829627528144875139097126433237694685703193627474560338657340359685957059246150231166053025783530511350538149541946321581668850419608607666959322529601058171712830160812183044162466071945067287043326570933601510789460088005905334599028125617604051479713900016632486062418849641033226789962282249844522582063604324967802072018215832693033265562907964711366965263015242388461002764899615481520744807703945391322673169160708820495373092483629370652022161197843343703259515204327148883337357504265621338998788456188219707226107375359822216541863558183167429682580848729213227863285022367690408537058949305653136559185239210722028361340857349641246368063559496694286606142996964110442643716382269730223789857069417363278851775683127224677371299443114914380874018880335986556593221177680800783398561607502185119213215830137267740930384595449855263147037018269257047982641064081059497761833066828286492090743742168381837639750293890696639303317935784891186747214837103952996723388036543965975323433719393508086670221405303550795370188256942344023510852454475909842715106146088161186289989359182113032268663822095181916933398124147222766935106798692419085530143104727050418478463635748791344781855224910715893966411710374456593969134446908109573203100743213086939526726230953596957636830530743138912866294229164622878519476402807602343083933094214596241617810465786358432401592800130090582540362688174582288540160376214611693352689050701604428009658031777221397884417781244311841467570546690057868112389829540673421052536374334348078489888035619975611642070829389266606765309942311616800623578868157217691151153730422906403238984124642147873809438518977986027375217318681045472680197728732250267688346689192065199257229872193370889346231993408117493735070952694616164603187168197730090803869264036838761996634030552159968058853449478778392294138054993582030672996662305428930788254773686748419544061226750656398045537460910789253907670206133879753447538843951167032990257535811603369903409523329336684591744748501082563549992737168677766779743438463834907494483112279210504983649462314279976541349943416871854670245554118202464857880178569749779007944828105305135104937392775575484394035813000427458517816457520438396467683938196849676358967966715833782998415075958871550845220437246185385580712196420394540525035888890254161961337953327745324974378864512650165208979718976032620875837058617074630377369240550384118127922945745648022967604862040652001129469810262242123199587598963069891280298357151969173992837633432889561347147493240267687181699625979683937926018433438807397075295818595618401712877874188833500230684111705982872825457805164883951393959146103302416415033389886369272599503559032321203884047213834935655908461951919323711042063108627745288333916945991957237110423931462909831056032059019608534423289349939371468541418691441255655512485635627792925458608957292568524373920986232367841176409861530700632572067537933757211350465602332499935816666117409112015684535270780542397929506306632873488804827168963984733711001108151990610836940866936323950072879497143660716869534321329137405424001891197227428852043845617469543269184001679223768218524298875863872636599747743300290531950894913976704215225901903767587995309858020421532572541198372866265849048854670563192506094311455977438031653976402176983645474403455159274435779315969273472771843608836974414721896359472052254420780812765236283846227161117073877137318841671838171735089112195510312858317748171481351692760880780225598639505365798843747055369721127729605493642404328949455767924593533118901355906729314674451773129236373422200271037509775638466729908624532000192087491365951957918738455714600441019721282839769565325112833346085751187351392533211518302573439804117373907131964004977058271682313288179197021861413473253083107119817650451102728229939950998381834334081056048966660835402101739760602387064542319841009689903027921887149792355918259526596846301568011091556014613960766948613455544198620523270650719019676011332175004300451829044503214607513722308045210529339082497516136986097011630678114151639996978804112735427828341569384260146287906954816120461307870264125246794315280155149663505488389696106542592742486271918182809144331968554380689106915933623281675792304808599724028199822538891253317695103136448817243078511776243128705779422227203657877008289118989408295234560358598106706964158792360490140988326539114970940358631563439343826103090506887751121014335752355827889108321204966941397765700264998111413214748662354438092738303797965080568867283803142595378387635200554782430796735115183701390537621203289851460192692382347759651357984560434448180461489638696079069712625741736712441509782429727982622300792863025912414299445621149709281421837741607850875445805216432327632660123597750311250386919105483791282412260888974424744143516449056695840975651951612500663080416569895549569463080843498516938899343305368182597610662193161866388115038162672631933607856978329450023033880549218963456285764331052731284763444032500335670372435848893654703124356546209292054393693210369321038594713270052427401835897217970061560548273715931748944274959603465463201815681515189063276060070207453582808281480667047239731633627814013899017386221143024928258628634307456899113010859823812751063351415200799510820422401755872996009993903277917524321206217672675402249807548028060091094165313098490153744284830689692186155172055156023802678168024968456360807273097589483656983922817387077372784487067000522669608507515896419372325006589921167070136976837727376169607397996279317221004810315200310231720610658700008763167914531009712402663273263026863493030101735366945851534172876872140793634908717947699125594311692574051247825954849075056694967119473002905140278096397745948518914294952626517400823634157299045035200073348038155812753443710850625789078661139560899007833186452503124493875026938390386510166325946311759194469775421619333710547328491532634470060920541158555095949301167050848212194918221424446591426319117528878712516612703302589153227512831655193539168250081583059259503230643090785326507310680201820646390779331747437402525049006404846793794543626497467625886516262956023485743966693458683551987350513386314096371114689539217627591738442977106624115526652214666218966781322655962751688829428643609418631329097340136606050853952619292053828283177810520321008739006953403824702414811652313085923377258414649190358638182333951029110845862179856145724503237803236580405180283365452599239506086613152791007501243063417204449106154804168219991506246791365508883552648730771822806406408740720392469579028769366242448112943030784019971702177219668738967026174148492652391939113815600491330279373697715070878779997857420815432970589138972005254164588777786138780708038040881852324069406634681630729964078541902369139492356294314372129254894139623903987477426063266143622988501838383051438311178956616561235968408376183184691600397392637752369939370814063515277581180023320907101466479883741642374419349962940961628084130777913910842774006065247139401096965594749317541747142340625407637177384790463523149976449389726479522428729023815510873604208595793461249110828939890737697878842603531536765923287540384518511693071591993368364380611824720710316873028519893030943606603919764413142004817441104476994578515914556335142411340362819969423444285857350147420817807172047505637707519682974013479119994585471070940828217762242774445922827240914700656901472554268244677501154438679996468235706878804777632705781444868606561158146800416648480423059319099242605266105255610195983478499153630744608554442763637252097003505223878067944389599825270932242709781802774465036746707976561250015516377361409926105329324542274431653310577160560855302814731094460822339794234627333427314983036150490849203220158649933314322280528306194183491548018391842391986864568997800681418500310130356599867519812850954710068610639492533131003348851187156456493556913387485077097970694807997273706054896948449189232366815230460685179308475388919390522838019588668984332626792287551265775622221609826417428618134512981769222144478235798550879106596433784816645772701862118935639334730405155254981783223740891440581501124889946004021133477331539158033187956667277211442158915571851960612961188506389940059787485073269463010433457353085352218576765099686921955052282990099375933987208785449947093769771143734619429395003476450180806502369592645057492215749630282680120407372471619904428776337752272339445251840997066239125781966610591143276394020448815256079131340620963717212199953470858111409655171391761716401472198710516975494834024657285745062679159204757287546648691165428197246669515897577736611229008695560038460630687971409937691017025154284548961905737954510964968396578991015877977524070593198640559733099974377253767914146408971602954147082959238177642150584345125936253743787636373103860995750320769866910925320919497420340124087552854824844512113563770230183855558864071465717140400666872049453587512886279673630697288108610402374616987603084087084362016140288985418933910935308984323454570714538034823707944116195868796193326713521348368179403586411218816652082245938366287997623051176900353966029896405980837908878580897096815976968773401656817212368699081254901181430905280852938557220148132024635353477452995603984076166914427952344972951811007588437067820712597838329513290956998418642845585759052245670494562101455467336871519890437261195707759294319987865943211909303400528868836700159391437057000238811131119667138491108923553328140754476484189427196204670489873021617983250363803689683173693544924986811195311367383535219164386743785292039626715431936786487323316987793956281625766514253212331215753180953803572898539436075817001387946318965127472141851970289980873478875862719460236217299154494191960327823145689880604126440726561500034914900754455288135656519515722779869345247126007222854834785666384922253752484118008167171294581921080603400576821421332250088261796914077878678023484166951300364137004089626259808711323033737834207381057379159622157792827454389892626317683022754233318590885525750567267487400474604984805433231436047990985662541946701886746350111859612008583574221392501171379023883618130921227997471308784577525827058297887637047343967901723733936463435107740548930623305514876072988256357983363087758776232855909284847435867156034957715024148648377575122564905403741384411143377757965159257686152887763052065143991327140971164618555660865864678886805142993573678267842724280026813389779536281404918830542854129816052561624919356937140003428506979450501456153301670976457665336065773846639974073193416733233034120619585170488708077532181445910701151995378979336328244852642528161885379008256823904114075665236888657555989009724798791024026382478374088234844009917566951542671626262035588276639848312558780919534415561903914875311984749580201472041354245084228565861157867596574032076967853962890872068983051366415739510769988450795734394638794419290545350210951645027445696457471424458445035992655998433777939683101454796855611461110708246252762403953102320390061510077542389573305148935447716667137415753376298532877825747181624170475570080375801477456280434157342211492745134800171328336774328513573360210519709636533269817426084869283294644786007151686411086864293065840509526952870310810790566135206707451495230946072976553940695200295488357725462109102709772493341290077014635708487327393189136438171292584965874167697154875629724632837208988316904818319275002820042382190784044475123670650880001211820918189204071011728584325280512436334445534597733996441543838026033775240100569887812836556053439335096270483600466519194252221456056768741333970615050741843727400188690191317516104845932553133345772478372599663425075614049503238362985263246000031151489123980092068715027106588781313967153277727019682687328061223098003473382152910126885135424321520409659333302180861884589637724691738976679170274307629848730951446416507464852405447268191657720522171760159992487215160267974183493737092206434105149206845416695137140051779307361405664881140724756504155009120594086191321901636705897481184185382653031862344191985828385527263189323682758324522867875867498346555897971101408760604791907878224028730010648753017117692479513347197620928751336588968088223233599965984324916767517357317488077371739558497974452467178941133981751582751062690759531699808580434452908577994153339204057640888639645487261701168046519532377628356621888192957569815952065942067944329684909107919941915065869929313699350630996406525797695268524408462504877940121687675988431269252088040259257532724269041240776037514883804340815109354605074604165097121564861104384375041397216763689653170524587997104834366181173983205579454866174905183403609366605423472291416113298870852242421087383958413903948410614791388951596359438543486641959599589796185738919470198897511208266107472721825127242757005799548792877641281294939145460690521032869270581138648414419782543928011583693653289395475556128237963382674917759317868068750052027976513250706109958460664787809392547717439352575525085006642412453360763277576027145843073550428898992669184621652691044726700597618550227688586534490068854191560106002718512116605517661921830386981861496987360152042032916465644846570161136390606302389723438171682269137431895867150547699181738042036697607932880271929977042690894936851851174766508761028736496629539695816014641805053284472634926816245097271718863004006702109431682116224821468518854417713312826155857023598233300087353983739687772131301278916124955032452263360744130366312185057780834555625746808711153381686819410891624540314046055580397708036057241438019114432905788308977206844753628132297434273296980074587045727039847950556093746760479865185376851588858781460923617714937979656212971859634857726592128494063484615834821352914768313383717530712075805040738883570716924342243865186848890200593072550793963038036868911234383326197240764147534130308566936039291678428434700062403554331590809872141955119723806680969542663163537415539790773995084473467572153955081344983918894275166389792376892272755296334305886788162727323905086368590687746181019813901787687786296141289745594918823585081624486236104230217635894066823777286444587740621842500828457296265420396451762911850550258005059143691414370735298418943718298076669151585282943245301549337085671277690655579955932366283664466970335769570644676767312523665665377233623898671263921709893891819915675470904768086603288478146697573174746769681326943404954093983001943634597434253293951559571862299389296808499375439061703449387866414897529028425480250019276147236235287295032388642832103838800869932151000377947064714048532323613088982007699570680296772779849789804208610041999845536413994028496265815826505457612338398022804942865178670842474024932487077027056326344445568523323063209791646781607527832729615567298760439338035420432032895842328145483287048114838983057731170948170199185479957287774646515593918640826817649170782769836117302334818865923972113085311780560902685921462487483254680880763620614508726449789643692008055581915796302858958342052310740709809499960851728766495772874743821359839266254261019272118685479798491550015475945608195548866708315189129535258870269098068991221072275783691549136190815427320926155561231084237178207298334726052816507182313897030109400201775906029763582482517072063472380703841309573199572869053194729515165729679125817291944149321262297000274382496251777508689402113644216736124788018575945522201145165020063689633385679734180861467553796950706041508742101193844601965329109959661903309254127204952187118584236002698748288930754459547205746663890952921299001635334878817722080062758256992581897775602895835125863020267496317275713309637988670617581434894760021020733561593549991648689509746230865476338214785328593159233517010187679611034982294397967416151850367475747595326476134849863593798317530168156174249042627319024436225533678287408262451121533422144528722158614083597504894706593224027201883769019757107384187107550648879763941316405114594079870201992426358384536804710954084840254279569228196038346747344369839519587763925671957633418619462082232158300104240519183159911398272686501901692087655637248007595757714554377063146943027498372157942345963205970891311794355013180295419649297556702168975467425293016874915173073922131392798712787514790484058197697477656299607217931787773232061506478545293363103488291082223784570997051038502168811732855642530643024745438530423477513821349229791128805759544914752208970557050794827278742431643666232069600326947054070495660674756665222562642260819472034762336755938543730825568577623109612131282240879293062353361981334373291806796746468007045997682418023659517262443647697220082324938484163990414929886740684557888531658860310205660573892750973829369074809207047121807657807151947456671486732961512104069547911185757696465499604323861569094736101195864539637163744345465970189922057376475043113390097130702026978751341296924553592208364983486787509474724088508467142853792740425878312562447319165205837589107470703482647785692891136319276344954001979230975678958673986378353648150659229481846576131681108294639099754131484101471466182282654081354859791636357050413435019677974058625576877280072015850128550688495045812817376979386751220572643507732601525415803854550221740969890204460687853652563874616612069625007086026142507521764109492860310722380947582897345584021312726360228261200405272681953733751923638614324807931346089076246859266845445776995080070427943669562018275396484826739338346781779500511492071649416391085913308367920145679562082320790139768445419339738492017358864646195851266247364453673438527766207800948686991199904053455744077074138542662728708321023773999594024338919354115110859467355188260348693760325728093963878175845405946354453087935287944808222817294213568724046451705756323987113516591544311477994015514405054308109971945969948175788974651604822066753520421322935429671030712229753073759155374561667282046846758548023076162783248838372531424770879857233840059400781369317297787464522335962461917130574819500722316329417677717059028094250868563460579310818878969429666746531207710060539173243541292208492442279088488341011256732991847248097619590050467242711369186171330926898267029676289876489223887322028839315598661351761586674636340867485018760604999374642603486138463675084383137479037534389574194677896324668520360341606057785030501064241180043991979286369350353118425587017217608661803667563727067671145785808455311971379202660169096656176236178711008387403691916004002039382079142033195947218552646863169196669211219684009284640316980181866136805584698111951313312405801136405105412151406827478454002740726054797088776245934788808546081045284882036071532584872676464570278961133972748797096570127707803092405330816918894177455459280248436173267215089383294371004539880476374842178318085346806750786019158190086987836561291984358815586564644622724261026189350979958646861169818748423665086719188522166170471893275257946745310874087245401986112734914966493970678178494170172689111257901744624840750471237995313001115335443643136558996852428691469441916411542538050457116194912594898548793939009602351701992118917230863110004681090241072914965310873340982850081592027262883622754412833710061709010455643522934392376771944940992339152029679323318247731516890842922002339437056199663133558689056345263493110234617234268999407306526427008084215687890888387954996336752259948979198729290667365071052251876914630478849368336586737289250415956912545322572398955635743161918750220285149069326310298218328029820037152478992807058220398415262132115229595605578204781543850394420514684319547821242776708114736774095186335207821313495382892088569982835501221622339798467306882158816595778228921099470787648792997940631769698812503186560055659354365408866234544467863331830933852837648586270935352705998249556269576062821501555920239878358303226419249139510033989336781020758111035081714869770027981590591183446862959276038565230770023594459781988456423664260770974209056186583457338554859111947297629672394624240471391791025903237419705201087704994841113734577453327815858312961175048114594029868653774151094781641201673571436688949334864115490859307284138395442857237948406988008662642014495502284325107685798733917522377510504866270061011475333862111319035423869031178940157447167354932509280621623733158128684172527369192985555141978619758148661551271338134096770419982878287225356571320929470477311058343546083974833460812860746307187924232338733788851286483464468824054060072420070872433083939464722624166422113121666252479011167860873616528534776490933335136321722135416892525167527355328193815127433926694447980306758809101083214813048279546623538607716999963634194380813710266005954869082661498736516648129940604448721861447414637821770931817454474890543137507662684633642875686657490815768051200942504728779171908021444991024929226272421889723971924848613630982231803749470831135115134829877843891006313914893612263078137299690218562950633770332981098688541319333450196352666294312503375331237054247822224074399297403083896029497270354143690484833427021858745371800789465038153586162702281811022937157007325489071619346333340878446219393131907207088491064351918338519058974379610863210603766756832361974421284587574702530346865649335837435848800548330732103835721991018872745510657699163878805204962849143953751073553452963828318886259726560757991366669700955771003540869939538502023805336541715854831852518878312105884043519096599192893693040286078403321734502466237653738574311663276134901151671623597814180114438711937427760020462364729943083290922704952313742645115657037970220456407138371574291188154358922481382945109509601186337137033531252956643341420559337889246731424545133862736663849111153285888260803513114900279487696102837057405541380293439453010620608242109043577976669183025748196404128692349887874171162115842915912592685140919033161335993609803687764352541398044183135542488836824688804705238467457493260081403483626195960936946749736899906218462237891654873563278342770656273604458982646253046930401639537761801278000147660680595027962483811847412900132867385328230713087430926478783060948586312775366469483918686381911822494598199885048811251077331618596082600121041756404169381882060364051801861316929004917082499766882263636945832172730161900338663448275530780899186698321430578249022733464727338172413556152231027569769855681655984452757153407311883853549135645349598454312596699482513279348200214166921090629643569811029050093062479769180263711835645053425711394887702317429868163688631391773271288042753428699957629893471332182346255728381485490792663434667233702267080043531312575792007135729106454058421423380683485301858746449148163575404973695329012282144572771213484901944896391592528297560290746607133972812962221487820902482696153268694400593740267085913249772480183603159350864330258872906511466803207046695592060584242959348731157240838941082321341044542367407290099104120617107373744910976939783582685791316399576102147454896925661662141004437601686512932448353232886001457560257233982917143090258226006215560746008654959884416112596707844481498188970040816900436080484876907541737104320830583430489502679699721156089899025248796263685999240454864501985327896099051233578810617464836461496118324052600269523278899300842171391296205502704008776974824732286240191418013612039066313447884966399122528962801875973752681075854803719926541231846649678393686135289827986239121513700213636073467971957235973049882049167707594779205801752961893840691244856450358245813505177429306623913474996070861727478581834799767291227784443083515650730753202766787119898983707679356070784373129499607961576890067261635217567024995994123381321273722534952861136202311300722461286882038947692640426827222402348261374796775212069516225894823066394112516782809481188589031931779325964500032793864136916288157796888431874824087967917666833371517904606455569199428680874025585338423340393884026869365750357481094570461671299459098098548467035877537864243990706800660296758954228858131905908422064082134282249356378794450619517805982541854020353510741467849963452952974208556818599846890656519623289438846910139347123420099407985991781792104143917871153228284898253609646262371998869742352053352960516690497609701824439643242665492125862789681256225604734863777649755056861812027365329627024983666060284316732949150570490630172966539932610410116444906126932845687588289179266945842072846281691295255442710077010483246364029330619588648060844151518236323516829342725511012942885074780853446902573015518822907267168113716850760119062437025237498339759422066777896786901541885605513681306032479545874740933861283396132842805658954887870199911451116437120311324699973374544304406733601372897988865264408921421650325331871803087724900162507037305860302894149083833780691548083876045148394450211541190623330572977573811319500385453065790567444908784286857862932878610560916225568578201655571714193772694539954167757320076184383271276242718195978317250003033315461835227426336021634591691886860183322921656466941025865026068646171917461633545070276949950905928620819158506094103592765333612398340024262228908024648737723760579989461548075720191258471621090421495293191601010491909946926369723130266207568926452184938759747851516728589460957985233075601255722004807568868002711180718164405399224984387568208237905901590359554223937617356260068409375313956992746599129011969568474735975516179577786532449075403220343508611914234803781552309357112997920366072796444796725430203769893387511991373609850628386443848519854946092200011050851937349399360203164463014795308604684159442927606770179646666132924459521307225524682166136908733944860038223465367118294305739814084860936016226162920214496433303411110867845329248540431245136249706609320662594736288223618795818070281087896511274540046766556597049717982551343820043497151343044897146396870165588243442018897426978885771152808647067113177590453386076373784469771439343399118784260580438086635237629127859772981931812417381454136388339373454719002464153654887079230392398828141491810195682204513001482013606395501603735274778548353661453288226844327608724229988338863788605045785074445956102331429765326212531027035768180276625238049122621883157422958380085562472368538450968477944196104016717440089796918781402576824778350122764021789812997406017908148024398363984849655463134275905030739694310739294146805639921494308890867783840168786189478812668178239518432943137626020783876899084139207683552826706967542237672729727479275907748888649491399141918461129088394800391499316672585669639390804376976164528436807953685686616384948431015527122285055993154531275316792340869397224025953859215035244932848512432396424626060058156195129850281151140781736349456734105029631759683810071667171111698459614374048605819214818993989651594732861459265918911489035699471550250536603342394012994507789938509743724265365130565817430339037737098822597589928095668305234357847962895258555716266254593984454157523347779316755287378902365753179201933227513389473578090583750190853085402475298612479733921461297366463499594530177387423028030141432458017827615473139898028126920749300709959420785341799405963022425190603002453245148204589840213831223404842376423402832471739171826777681102825518323943125062573638776577144616680061799954937517871497646098489132396356515165062606470851400940783665543268112371201720816657353316516894511141425627235277221849091429046968121261178693667239686561645104665624095581541955025010634650833077734225689256958909280633547817668229851989994067725492944284771154448929016899171217553990019110144603148570151924302388814715645812716935887342601127125598823422661236913123898223049535571952851113934481014745057165813276872249330011855029004198217094297622004977198932857037265763901849505474321116376191014783146828478223257464861241403312458450218921446747407363801238877088595831762765426504568675763528689653595252219814173943286356774570081949961061146949075888821489888622319793266213528139269653597668330946109148480303267646931782852062136437079924637516325397975639736131170495845452184633229809566967357752254811217018172506637048321639845816515367632069309113133887904268622107743953007390986409380689183654265619732134977112917453929401760376236378520409772893250648141201705058838362859833630845275154548957169410995890931852186904126907119648859750987681839954307586721490322024113625238115574142293963816650078788655503108809836438388591212908001145003888489011742890170057422186862805465486617996586573117708084200473688244225617586227371511426089559755553168430203316715982196049267065113502077231084019483028837162399646363624376809734830110406546711965307104789340694513529988241832869165270856612939199624183048026741631803177406025995271629523314539201054310668411244068077544889424716193637517307051783564431984133664837040958153624720999482590457359043055846295645708299363010524581056420108772362977993828473203309031228221337535508090678804938113000570615150171278103528290506757201456702804119323769338310199679631525857123385215859054008266955488303305631066507472323778801340666488006065888559402085694623972464334973215323348064877315856711901007870744665134042146983490530809464077304635941431299211764256521997116928914809524005897929558789368058372342505456612963030511487514414076481430594440336772529211289134699325120806455412860822146851797120298996106809973213871575963063509293250810124304322592795160267838730233117029880220828344687967748325581066740434538533622906795410312200153666241884847465790832004070988343608556913858681159477525855403622764606699651435275878578377011006042928166803990459020401913148208245998059256013166958508074773816005366535049657135644880764249000377376261177924466228033654066735871294075744678583925748123610017730903081064176285441710356951621797298260858893137730579737510154247961207506051891834518624760783569282424117610617422805850811014699797566133120154245264765692283635168813168143538924771642659551155217917927386939038511712495626125523354281803924984689728512169339959341385967824647136916822635333280675228771210516624679959641311295830436205493861116172773531203242610767611731327528049527663447863150657862709947566030703336560573905374628507112519834789030948202766661404601682956615967688480473359785374793257105170232166426017432384762831153626345997951948279514873422558007120991145359768476127109375251172999734552685079145575730710696437466285252288715203008572787836425196101389479563154212694699722099510484465571625662205606291389353004557291962774925051755090925464929170459379514591123061932177913978050205877321561300072242184664808001213707748014086697177237947757643122490373133476328318757900741868743323074346701419254853115348830525975653073547887991113041361098281061334600583024461261297480056832728159886648692280531269837720647450256754675744780628506699276346678061154866502473978300787661173946687517516420752764510183774866447417849044785149601930794915092864900535123168761637275696269057050108856352785610536296259413042499331165344477471844056257416543488132635844760352039170438833296106739510258784986101237107590260154656301819224896289224847977769754505127601668748461742877777463672522040302064926818026024134476755097655522170827185877704423159264768710633670765676899993658094438661975864499381142108876906393063641310959616700816295801944780852588563473208658200817871247700810190153719124664211782866172229530695123657129356284891329032910561311506445956023894644656029411717911032566886772766434026479700413660734245682955869760355163894874042647994202626665023483223892121404536278306145369582124826587684539697197387959596241556165372214921959555783919569576074478456521975866262273060118893816045330878158845659217587142586454115671800390538451729897868247438059023168730057645573352251336803217275730619398380432208039501104111270416572816673087631339264298848660363374480067672076015846139230897557389734144616408112588377342089688892376148618149552779193617703964521120426124040367284258855823357362886946230861127135903446092308858148340918275768995122449818467308908836201705193962133043205815312564937489580203952947497391847984907033240995041991160915739230756631627658220416042600091635243890158960649454603172165387164089367817125059354344617994510369853419764128263568522573063987901101659781423405842568401208305026066531210090536866660584257860369143760582086952496113457845417649555386647084019698743797805671807817624902733050390489594196543332357427918721220310360616627468673626590193083856160976031416496518668228153803314318342772859431361456580028334654731100066917371821435085946154315795491117630780176696915910899529948932124154208000091653956236044840406854371162227892083742660035101215456484059045158769343542226919273493557979491915733134045237860652071557711600254670998256869667327041158516988665093932972188679640313682798596310244054275846375459467009051022705488943949810048239191252908975114889902621606647539131332572299907208100200914237329640578655096727387017530399184678916249807629012120961807323400730130850163441206896159498068758277850461622795705061274862569391270296511482021147150107259517892822335708332533607755198761662425802275588034254052761099749586408472046839095424005661674362524357194877318675017031636269153222451826205313962757686868724307448033761079437782785084094173440843392598742337355589714145358040527720797735400771635107877747522779104168402118647996214239600248197097620730578438012716024507495256719004570777547666290778905581254213328476655641176454827718362118545245996549375810837406709090171776232636459898860181722810492306553145494098729484095138702531588286100816547771292164010215701430557709074265310858656987325766834402245139132137640961577290681310680806095667857105759356874429585175620435001793452635768493206042208520454825322713563508448020911225211895228886716446040146326068369398912339740540746827439390591935790072626078907939843227416681570792978182643418405705328541779729196608696818657564069280716721959350533301974610856661537227881796988868475012843880013644140323677740608957040871815842240566159694847912722731333062232502274557342637458607559793649334024944345979833732139068571100747982532540910150874479398016579596086008296431851074286688152741697111739013384032817072506476340634319444422671512203918015035496392854992407987760935212726091541804864940382861313175852131333198874046099523124074782043873574001515283428533140661440290466340418441247236641427042244134258008851823815798285588227740006633237263399296654061637650376908252174432644562691266305102944830700344065351003184922392071143040742020781524187307617023023973906129365157828864982284147874674132602505898685895576554394555601661734396177276951783054349957734761728415323874952815531660655480293696903136570682032684555405937744377263595209414793196451238607101873114174341084432612241098257762614589586363721037533698255791242495695566752468569469055448428898129784669416897390024400850915249450964408348875228123379253820842738329647796602838141028150904842289561501386334177954808584394866915476171077365949730343618261099260415180227324193531975126436303829887056882454502260541261715725467954119614826141586480155623773336781825603678526551683624715945287093568767212751019443899376131503146730065884069573348519104495980322441672372081184930864756539976082437739384915496420181587131028989659540471803209331921240104977510609137995236071507973073221650737446373209813841038309104529856826740252429784406681867903883764625127890782883934078196036440612070034984650702415473250096954178478981746576563304080969967689256782380015838954901808298552188844500426650422657698985458375434585019223495585501458243793151432197886710525078305759293785164286669016996794468668725216980451582833881322907449036029940384839856715840465058861458682712063956078279640801158096354569749255790425543930954767773815588651800117645858734659850103402150598224843518660894704921088917170919181243752244716734171156156704011608375857674487467965803371374247837283616286310891377888430193299891409023370721852569017237886761074105241727504108108844664082973163609008366727402713895046412896932318570304199452042763562188482964588839343560897169386322900627072312859551234074185798110634291371231086486988521563838755694182132658704123701527196658206821275098177316643817358669030703907471508964667314643571490580635512076992525770634911512916827910454065319391550097398950929284302803022821982652005497717099238521411760742512787153129126570166546402721232389893239663653716748717026915962966155707542697848274957179942857072306286864717152582248116852430436092966646087844663239416117689700747998967620294843969108834308779037022621349490955729564588087536253287056587875576107636896029123403598866540719236275976376610693045688990286945659473609700565307912618048577243058737500257813513415902882383995902015989614310504549517668065761424295054495796115441523514609947398113478781407669809617270467593412187226331866807534556873226755972695645080448619153355874183770012433502858692250496198156505137155112639484999661944580115059625668004979774804642229126695673010981515836820906796233849783181849514339257546866557171321252450064450017986305746137384255583501798322346449654367979605518772148378406406203572133988983667099558351581789489030725835505367409723896959397765491739555658016506702466498989733948986710859676123131158218053519873937805539898614356715688490739909823485419121616520632453478093489045658756892240811535497454457673218276410962674120234519060109425859909146685982586044351686740174105606369516265269849091292368733788614029281783512907912997092556666972287573988935442479926236083004677279058601210433527968226960115574675063107902778715199602685058747634310315249670723304435239127114833743926216771112869516798904938322764557819951512798842778987267717433136778996613579520396928199086326545189443753849010937708721568477773709893015559220408938996114379054703434643570485077233672503574561378895346823972936633242818048984273010550786251015314951449594376596267133823332248339944871407220335730965992170195682824993444533125905708725042717004070270840740189396178619640693836239854847556553237836762594694036954939968130597343629818145601443735518280418816402794621644781673943428306146452608052087986890099440174459085681281071724052624700505855931486299311993803246131753427312018274975965483199824984775505058612773169273034458469432094613566668249322884563675770128274693646367816095697410998694067866470250063620721566672789384474610343998094914942123353020183746538259846612059755373972627574028207126637943010374223279514527140510132343065019133316591497835332825374762927648900467789890463009166161494697137987960558216328996299424862102661835264428537310041661083874514454564362736843886401269216597103308809293045824261449942454886808948568161234013796620680594030430744393844616956946751699046258792833255848227405364083026916348790152819786277795402434355992904962587527026197217731506653965227637270173874687341988571822553690175262087311424147909468595729314439710033585101543602071100223246405537937035565096766016460081589656981931054146449484442703289026553748467402223770583334341973787282181962724084031678786705596974500768607214314222021224040756853184141292310822895019380633569661745500780375727311960139320883895423200831493387887379754373974477876594572712432035277717476485002077270478292011095896068425545262323491961585186567679778868847342486717413291863891657236148795643707155885240921647078616177822889655986353246574014478379025877977050355568697756613396072237412383124072557298034705684867510070317177308601662774472539238305871637049799996825284481820910833297407411228728625284757022803520963212394373181120012339078312862950779428020569554351746904147771800054221398064386771241949636618586643088607299209019995468498570145597262329223036464380838981197318350837084549198500679753286644596085358588368677049347130607857440166723656688179828848593736233407645475203165291073959022015254999655899037296752303253657733615597054375252856342806506469273773328991389850527139263530359189552679867696666817238335717947461776597050945614112533440642875040428523938787565481125431257877080089723101589455390664374903718018520806837959810363859195911143752333946822964657381292735086317848496574053246781358218666769674365725058779849575296708273500874056011146977888644443192668752669091106781514228538728331250413747652162168506316107401399126803998120168016321618673966711326478960996494924122468175808607991150745520310976162359467646835392515525227116606572953685892694026143751384401889382264776943791752295100578965557025776684199926832327261937733812421959091894631262375825190746638123173997955634649937906222564019230276028689759484126124520213944596031096249844725275335144521117510981995468951205264837657712409944973502460699060758463355676267465831751897923064654913660469328757786195746307634508450197142944879578398273584956756645236011176161344014824753571659890954025233979142445876496342849936657611679907554493515279244036020878597959953432971339232109911612404078327775450084655874103694271501672216364680293535073321805502913115874117590740075034027058267436994261355792427981478342336008583368791996297882786851674041708281495097723372923433447329603190001404361581620953395245794765887079515691674481220772237769459040494832164435347299640386758600265819810624184923403924293642498830047332056156194972135855932451536627744454931794778581848939772720772316746954329163242547543115706854638883852931140998264778119435054408980612283679390830620156918273161965932229606526350182736168778997518002371714518521558999389086174808064054962176015968258687979256058501637025594204904143177186344985008419298170950293014163306860814539636619567132011580139463613943731973604334706231016076900201044336191018213565719424003380982545188117496418560791866874668537475799009075670618180396186571536977473416259445767178710843341278963523967006354645861429090302793517401434907927958620676458114579987210045329524087670039863992848991247713030235558599619461050700645276662008158338875056870825937714209338059100447803761514257330307475173784223476809866080384930024741696162138028776105153016492318410627733706140298788467302987576989185064888123519713311112596890976352433392858686342503960453554376776071861475496507252015155441575003254197973654674063107369241486606193073917832417986540558450549617673259912723727121510775482209815570427921422297995049112202174146327018101671205560775706156209429389083183838280049729583580675691242646907703905596403925888020319266904049021727274143756302318880268403266620839141234170844913976083212894755728343812220081493059280123122255019654900402110159339666288311802643691652876331636778012055428406638694106426658034608929786796433136005695711220224373300414221188698279490557545941148945123161469466986672255010521842328202283180535718771192552653325452672410981039959354005200370085349419824091193235517005942785957310129089071595690865917138976747534739668203448992471944042459911858420501937275243937131735171147687757578748874043328318971840335136627941601011609705200847982319375952239547158358089342182924428727632068976057564157232556735099773523777504797360130039222705792541932858662909370139151056487878209456974765032705147072617243416952320948825804792294148568961749659140164128427640479885729101889524816263936671100462809753387308100535171724574613258940280954449348371729354627357660138307219443741428535039696428512656581057263503845587311739123447688015199556417232809024356617322903652562951696370280900886161779574029868483995122261295329566082600130977166753841716447362606243588205823976612331328732453524335827081647390234980176618866683788383367235947401143660314814085890414559545230740723225860413132382987625715776114567024519919357298334315168263656993103689120026210800662494919105575047485567668967698090780624662245012908151840892126676833304114839850775786015128514869892087124441444089555424041304856646506660239662401250510372106026617778954739378474084447726261313386964204182490718436169991211573328368700520673070070714322297457162889771502592484822045813467424340465757250757854943946722595226490738999930284961241129300101034866803197756553574288905942001831703226006531809832570702952281018271272062991649794211318365323488174781138062288430798704961298072270562900855829925413953598106516929731212093650461768104235421814449678355082922407204940565662405035808492511970778075504382890143113243180383285785933016996281607915934292033780698983965739250982472765290115212043487831966692649986745489897358500359484061380402091981771773120449492250019809366302015216600510964953110453457096428390836993184890571983856263176942862466798063176370662403340552243064537696942124012748605003789044886357677279310578303921268460453005772913579166875613923578107845878635820302576071839780195705324149382947686242376318032172324353570835188545276078470248981038223169094260773037400573713124687775292198265555984468047535072591201150042166793377725472250318912299474178215656445311305182863444954258759478398534975175207785331940330873376348979238491040856069495704502030986959519405044253422938083741562867832590548095249451872669408766011601960166425731104738706966662348063473691251396015981100522043444858304726583386705091127473138432192682093364621390960036485313425920929080030534991361529054767919105830753029394630174100610696368651367618919867743381482429025525395418079559956685436240208499781910479214187259902313474252318072309287420969134237570946976846588073659466870488678576921564622524305418838079828315107031927329496540140803127558739705235912448601568083786945762247711354921208948787471253074494245005712049647755440701523333538030394061588421968778771912095206172172294994545360980735591984344989413562899555994938023947264453608273072744829680543711064386651983409127646578120716922168857732886715480862471145776879680385887244548756232128780446938058424909497632268342318942855009437567942804479262732471026645368603494624131423757185885821844978447576155853202193000943734417219161044622189599175613472394337056423111287538522643864118115016275092002680136506371335340574645288446620987088652115975660219996758490714260874939733909917192181166868204700904745622047183183627884497639910298156610013193958809844085431408626583044397595552735582042460122129812133836525467694949895469494870576711361520167605241420149563438954702465401243535789590746364300116511084055146947944053125742389284759904586604447638905822939731235356809403018162288442456322956131657348836146572121175760015746748208639569280637756421629849136535614477939595772412150818017842372892720470655196466883862264586819170766081242136664844192178973326505455937751904233645459164540565731164183780496622194467413458133051000850069876915050421857176388280196127023955711528454633891996429414144224349014085532775980095681744870715682373371049648452499893311329134490124824601542430299866370566240705810036923354705078544745687276544691248269312379290464683359470100472676647784057326390575034047610829199801537494201793919136776122535278002487560274487809597387720065881091950196026584095786340234653378122316298974257031239024230204955172289855548985233096810012041953970134762838728862622746812402676592797587192503595747153854268180752392601193028486394960123509757459247087084766322708403076118251864419812932570528241345945631987076153611553776331850478052582979526759192154748740898288890759704961020605407386717690123196556818443592272595802550095480945544611459012265615365505551881912420360394444662988919754311619741624044588098710429899756542886427681848526116038060592266621380800598254721723145111017935418145988007525844630902015009171580116388537156902759185005591843305900330185108558543444985103588913381664292595673458076295078669519203111296671581497915827081579755818336398715818474709832694901979323312492917034310938747780831026412643286863070238303368920508905241196459265594652621991868439452603534815905019856135690836455816377116518476207291866460172340313110526734268026433553986908813922168980022904407511906887514868302448126687576730078484546735913135421720687899973295831455039010394208391963280789110816565577189657814249880325537191925530273543071476641139947306587228262586141863099437045494984118337052936508781779545788063608694764674350736799249946337694952123905811059768191891612012616021815112347973162995707505075599347906397447214657617582900688148624637840815175931755774720319567513046718573418018465002664521766214091017522328919929401137798383105160762198522824601737863217611083562702906428206874545959618903761183391667733972193694329859863645130414107781961304324669681745806338222956211244334021273506716787266101965270676322611052250869486556550614339738799234059059369609854389367135191177776642260034504565947429034298721339107344674320362844803463602712870298617233020280642460392541267348555093322881003090239266894452038204061172735504770410671286892657569975577533312806887192491520103309651407153411952288203087028141981130671337518355926523149725755176719635097015803993281146554525084304195382107643514658420645746678048602225000914203346874356147978535834479074011662527910423532485062738700205451543578424289179709895018666609222899969503932862389974616622084769797630136294239315250151356908019597166422999483590478437828909520527284241113659429432575958948374777290021345398799782790436255852346022158334354702726919600190539890923601174655558287477361486150201752190230265016614600419833239309462173061701438592889553234712834509297946859612713922451838091121396958607400261219423465775451381270669096518020657861247533164848063816746705170444598021789607436832493745985062467651273245152778354947917983446585336756381773763630957884531589896740756404765853451384557532151801969330282463680917042665038529316401130109631935436468287502500552073115144064562710980195919961540886401904868357742146676479458379350507427976124047931131240955513576235812619913966837442032699908394735784036457975143635296796874484021680924052712548167182643446429887740315172056872683147744263401510194339133393740404745115139674460882787581895196921390997440756439617325160590672050123877871195673418307609688107067213302001419654520335088262232446053230393251595659192346193324971176216678048118719913733519308186978143578290927236194028722997165515615392032644485473469335282578388214342291893899638459151195621391022198315636347061516408961008591410277430436517633970562931725693638837323444718457136172953818416317120230398627272484819312636658028030233470879578495104699134501458842866316044268038430610759335746295676564696608007123654805122500072782894745046090695063962132714284189454974340664171585482571291522528480383206001828066811487177141032856494816588069753965245773217239341911844463726129504338104985735602116470907071701889276869353604223930924153130787787388322223150116846143945788545778623091191733550922509638027423098277451713106243703245217860929976241694500152087976255964918264141071096451114361472448315889150504839093711884678051326514869494514285188301628010919425386222371874940462095248389501758249219371101157378978701198168883718171921852244853900292347166904047466072897557380154549814956422141247464856663830770178184315081359137636507915269983302969200964289394424373264449761373453690900455480778652499174488413334078327991698561446976475259974863469923402796904149389318012339261710921522732831099055772682341905709565778789945809698250450609658977274545346157655254388732073127166821908324171934360519290842916075353635744477271117820973771934525790251882317637012843995933872606375739237482283840653915731573461337853555428347653734097929398208467565425763165427897290047265836615390935922239276154408950740281126360242193644210780763500670243658702975014162715249588057827973396165313505769223572726497517068565044875349436496707653868826871780142268967862467444175606458396522585075964808058025487956366933651089182935985083887414451148689111471948956549622587465451223192376028039003506154388178364822873577368934955238240943044624853951334235563209362015250355604482070483846802628808420044484843246213356276473556869050536622606832549860194868942539725481491788187086514183761669236477450723823450272483073798390636032782690379258719661865360669483289377600615623920636071499248546563442998675571667539829099904336910879886867147858689464775143324723910351467502738958013156267608903661276313660813052735003053588017216791555503504695010269419313782855118152818028599178076390870705399963025975682508074214260825514711600542410082083664408083337697938420248001425055007059369445917206647103767447751258569596461239836058566741955050798192032599124146122060922742421773592691518802602090842589597249315748508669706008424429853499890885727099511494054946585513911749210883305499220893505745114082889608788570307775501941603040995262221889057049235660603955227536887531970944879700332736254042819891379954310827081521349677377532127572748454128427025974980562862538951531911915543972806088873782440062539483111126967109494380818811872893819452809756305066376295610507682947378555334954916582476892974573525711139115228792113335955186243514079891161449652522864095993343604269219883551484398518952379019614197970466443215111057549447149448083325213082128840515332054291508848154948992223743340580976812182798979845512465140927066694012985732928893363590499246682536114020651755366682003990066465149705067840707150478432627882958160171270527816288534575864034366611321043359803010446847369107420917893607795251718591373378042965671018728491535628796566751488950385360717680991695096960556193173547503215720755425683071482627206634672584403020497127809004582108369309255417661721969848754848869796505547493088381546814387033009355930422677524900379256814151986459934939212179763924554797133066198218820239113248993010113000613961362111576689356650280576832857092642172305881739448485199010770397096146691299832865516601837725039298890057836953937505704696836440152930103904064764265578077975717089701066153953169062264018759290975537189226316326795295267552144729632596193599213071982032234926061078461263252220736744043753506804367416898419496726614266209553870575098726210381080849674213006251507828300649482417355638567199393382960010354372692285746237430777942776345591535382085828492194761834058704501934553543809162357401649837315085117832236233687740349103993947827111050409184600166307899459290129636093618540649678126956950667718086194264745019856384206809221482916574763862681733853504839497379592568565558060129421826028953134923237543685256065222005176387083489520404338916938902358751047015488215060647761379577823353813225801773208514363143599092413315003959012485836697757981059101449780816517996654525535368809306343830617867487762701489795100322685842230105368945824305052448549957363084500273202124059129123345413188314238707683278636943957264300888312187959013284711860413514590016288031546523322418025581297547807930244512349974094337279252950331093775215091775470039504484248958257262892958701825149435253875430817021371000059095708253900375639521257626363036392338361705489659220369427173456314293735102106270519464365948495652360956108731411046719056973123782827100434240314978630286728528114119608874910334046122021954149421207687966133465921935400688713079774832336442227624227457754902799971050199445791913059200035065662530647303566222721761768668168482138173390922029770415205837007788350556021935625901638972347474076111580059338495978248606272952924809748555474579056567401710669864016801579049237723272180649780490595907872063129752937306503579089647073414809202384677859241134399638734815096519942517650233243803072748661631412123208813787908870407764298167612802550464160214721535603451744397646253613505122321902637417577182588623117431760407829172347512331060285288339290994422210997229997116344536382090664421765665352382235776447364261266820660858926383822227510739437528174811228124026933100480679628459493974290607256265426482529259047968744645079465801100147647041986250339176158599760046953548686037777038139533155626842117931271459988836174999130949475482905344296886357798132314246155498706785555072853546008607824809455476149413660865505900592070295436277032398760066793988884009454957662174047767747503573874094333054671502961504008542148512336043238833380004807752702315823647086609918079789940998481555935669548722515254416558620692670938554336291821900109460714470751495361856216254673826407562444837645333934033755717198395970284623635622113555323861795529717271585257883305255750066284914830352157467427697134618584767832813019163841918652605129277574894853809736226373237708532643534039556753718579921419175012049220969141646290612246763770048634374689080194487154658254078754899313565921309599960846459619027896171989464278955804616629472104403745666041121888312970423238252761941167393002550582069292937026937789141810026231803924232251576567936458049871718690887026140665878148613648937241097992604108584438730625725559502180153684883813547328848285318519464175628812193872776505900346444142715932506284551159707987908163844914086139094515331979698576770289740088668487376029274183188371539002959661190560652635188803924667758975273042327298423059265705385125257838742649682917479425067227210291200899667066847948508041597274490486086041530614613691522999891564135385890634875151835649688070661624454796801997505632592809994486414294089583171494458355616803941368892974835165064654587559328771509193748850366492114715088232134316699304472894005884693304860542427196552888379087180708286532202978125868704384982642042936341850429700605328830612709284176362346964657186497031237465256723759809214425216924163393423920234457422352067821346098576204022207498124957137583210637674993192150655362560451442479589285086071560448965970881070989346324029307198062629520286615877130474372458449240174183327766075479259409351522844268944906250503127486144359383949483786361751039073322716913588844199222132823265296950571287550641214006318660835378634269421957998733682814576727209876498968188886145893792169410705839833602956348127473533967265901542729981183607315154504401155292504090461677732463779848084179667816596747263283397523704676202773419050606684062325237007825672597021221484505256352936539745821626709459724845041569987229057847771757063430470679496978849486341037081758348176163293474131009582555470522009219923554933318391227489393690085876553205351268103084208775154098931748190662849794389380177856961258200708710800528104381122770249298139533731823676106079471010149514386746054445158611221966653733200908187125348147967294256123251726495568685746768153528487710754401358204133422506132130212514266577410496717462422203173912101392498446863027194421849655201728845514645698216421722656185912659145495808004726189180845681946284094411829578299671145407420627973716145498170312868109464684237581189293026116580622762269282975734389777590366947321197653351749743227079621019635119573615803441764905614324536567894554224273850840091882708661826482808640842761501576088633258095667557301752836541463698159076106485035517279197054799041868790930275409677658532373255308710383403619382487362665170832423413782019555266865337632605649739316597713689257580008767995685805243642881894107440299238160821183827499787797443074294023093654489950026305090327489820225074979491856496918188422970580313571301408756193214475509945529434540611283720528248731620907639379772319757385336194744147846313981422454935577064053999104582091107580703511618401010827478947686497948678411702232091017787102920840635400134481968165016197095077075931594406312208973834000709849161111251405903190385290093415196409113368832980192949406550793649467125116476956755826085630238161770857586335458438807769799538684549870809434191944587775020521573110925999087296290720825083717102049811531863901678650186669713919862155346833211459775369880282802216073482348054435353513542166243267054966911670319983044615702361646786217133702521445767947264159927314072538082829864298203704638520860432062161737613838213788309198903648385212018341489257778497269904425291456601733172139435959252963195619730820758014754619223560573760404025478187142195976432539885209465853370449742400239373395640465076493677432696663423531934698721838268537942568557879488304453235311637547907711261838644491477895730792209218005804361082062459702160471833791047327959984682629242132068877519515343623581696382089904482667381640106764967916172804263224835007078299488541271686677253366109327373618371729641262937692878642614326082333436982882129767719187079701351268135803621498968959397058382470371205918487178895371047346479087990107855208746640790886691705808381603140209704766273827347283721372415511057893980794777495692621713550231380596019565789173444110074438394327026587877582839991297866474101247233257876402743444514657929945316095907191449408016963525295721897510643368837955751255276647612730876925518209938715070006601995184828795925304645823500285815459437175355147227766989408458999725871928272160106942603068205153945568375685192069407103256600829609405716489882570429453863788729234122838972199950982173541518459251560674557784438975145236913843102119341787456950721456883721390782480871021717548571696620376775005518782295793132230882501773399050245457194059519076691575787654635782588008703933375637593433680770340093430912702000900503120288851627572272801182907356186895637639296697914132680152287171339844021691594185406741906774482259171691655745845125971665672665152396340681721412714809694846070954290244503554471291245252661113735679130936476280643636376223839138214538422186532647183773896437788975201625079764028023751767421303761222091003587124481370730842385908597486512694838906803106043509478617313775845740456189093397568693827788071255698441758714042693517228866898288930304383098253012957757217383942944166996435217552202228455503490420422735844569338503104153213170784169076370598463990476470640278510712267611167029464761900508766430592637410301239422173457494672471952432016552808407858056737789958128577368135095216710612485195539398570031819288934292734604725896235555861445793900505991166054569440629337104420620578473285960677511248583157291798799999657426349157086232861075790913558162703123142866045632096684602703756175010625237313465067252119545232912739018822130412115829959984744484951768194415903854133413797777413267041199393794672359766712635971100249175690708181134245696837910369320311009051873506055580538474274421937428384005767981310307459258267347745690213718012639827793448479829750784537550657549910403873781904664774366145260357735284703702723019795789700311370949912923685617651469664922212377266239527718017414165619966753946769218488672097614181314122466541132938373463668172242381833696920533615542775370536133692086752768068417917388338584032003793778131408476916382118299955401227259329195929082129697364984322685947375772529188930292790091771439448758460516188401026993572305221637659882149725700353105995436239500908862978786441941153954702448159989014795518027147714361944383206546848777155315643260054595007921176084441044444494715571042309898651252973070815029606920735947382940206862656312939002981782229010623220669297001941989807020690986392553578306421986479215343266377124250749007186021175095105770452587515975152946997718839308207214714758954844732867644913971799825341663548299993479491384985127043323294616885203580245704290690262203728878489045702043745266154916455214298635760220967191673026459791019273576068432284753292298145886012867408134626136080805037577444456780781341464140342442883877856242515746149533288925602411229041160496249627967723508141822193884785822002267188261196836228311429423557227959202787597510335984822776965529735071728119448825233642023491289427044115939598979920453878015554099883340023671309731114357134052180500207946246700679850738494041548366611375367894998711401357154061144617401655367257829641625972467690048124952741965109300663482293040465700718126356301854120824618394910266529350112973826091384437789284397009834145490552074030974945017795167336856408588602922025403930924423746010144427707174043161534853251296302641743765114211648490914788229375116820226788740267236972150867360004680900840089355714996124318394009304963202933048307228507195414548446382260573153658095750462348718949501196788394452865893516677247162946526625001321277029422170030798298248479290687483528513608389269733272878528167420725118391225109580263337018171024780911540051964731418053572028909687782249788414850400759474207340212840973263021492522038321354027616828377164645299416529176369814198047463837377493731957684331397069283872945778416970542037186641469874216419506009752612832808078913190405996295841235062647713893965285268995723306429432767629423586234749399383038162263699749723763302293531096797222141627325494836588538001867329889826157841074928504679210230748858967908307787931222781870982378591149865804135945318497430764097989088898686190322818414348072567268243853965266303566954992420985789045498826005109296092908522603941876931204673311628178138835791561902780953384405118355887910245998737513978155471410941033882210018188587459330746149723530994569659265881903053498882166132343016462853435973829705983168134448042283753393882951586926212255411272685427879775912801974105073120390798429425470698554360666140994498094037636400336372697889526401905417414363237159114500489279940575262441532687903096097501787752241459651137234159571274319879535128330046083344325732000309967133624056211592316601418010377257114932664845988202695556664243180728693077099412061657151183801206806575554991048629670079317673282370976242327692624823299941697249786601905215411526902843990508507403127162863254301991500538714966118060733298541879788877068202671246690907547875483872634166072876166170528685279998074406459653852684953918042020057895873455172985639108068269914475317661790482429947412381759763406599202689723030334923006913938453092416789145446193925123811069642785385740318980674134718282937541527674087825869277202668388517041695416382404961413849180796690326051655614609350988612235216935689080500100167909255136775676930654289462995948215316742874933936660597888901924920896816134359844334706262908810607231997384125525406878138826834844546958848509191345380334716445575848891523671025668924455887398378039706290219813935688389371448570156929086559137715063679394814106761510361676603520305702240441092652392842242653887143265981838564850730499939982245955797811607666064218141726873526764769713984922316910833765463497520650003840328787120875728268906038382438430093376563237491515276140900893768568045593497214199664927309825785312873940755502632219942540053395164840687761337152885616416467417875151518034838037995520275784084736103326966107176682894486023500834419372275115158185290700098708247148671312279381769142193415439095951749829745186422516489498279615657574320982084434043981064437477548055008942964756868952037603343939063612303516372220145653910920642930538923578192698449577904980386691243896605849072334353518315302561135446423197459098887001995389531406806599083200948775518144998492245756175463420001321284873091152667561789188254505193997142237299358942242159263530377304922686023810163478086694379039058161019418238140589638795747444118036012139460162889096700926871822604994026958209577734403847428780990789361375387622319989753766020490369028311350575949929574360880839477807733461622389102993889620192914506539862773765221610286353653946498385166132657907543058990923691221954033170339987669565822177729910960880278579338352318378531971077289758136032784509146738252667055100975919227608493112142608891864485410131055849329342465198595444427184714113167639161202331645327356093080264683245183962764285290002482856623382216287305262115028023913711120965270429181213425695252767414333959254371279245450181332364946287098262073439994197608433231997049168798398302244630577116526260958989946111813166217094720054703873738447697397363894828785178450932758342461340409576906712836797113998461922273834693759031696753138524641830093213261422220272214973796928141877635054112655240068755267216067778513917419095068251749995276251740363078297255436369985131095961282063587722979237179088186893783357017728119083683386615913809586035290509981312722284618282862728325051379936763048793223349718053010660962342642069701297665491269039631582200909316595975161581392471275564424816494740734173113044759109741981358072305216465770452850430815482546612207971664360344387048269360555587889044536780097588776586911476209173538561229604117693936011261777487663548422080073063193239761715125317845073110877411160384676947372869594347654801648309635720768503513985571448506341860183790250263662297811481298048704028335710781224549034329386311957493374347006984757975182533491865781616563206316227524451334142018262609389831760217495100210303038828763836617585047619813283384398695267396136074679605433679883161297783349759678744816520721857260803136239261599318610494322757723970313593984064969131326494618651632604014836815778972509382130509712795324618192440637711745247151627192902285425424639756239640274201667118825202900727075406921299607476935714382420788224626546681452626056985402326125264031304487608968359649628038811229272900706034345375070842017031220962281585707358786555137673910497794222646923233720156380608695758581330290761683457765626463981440856179549887832837146363763650365169256348139939498249039797698271147574972769722654600188970263457989034454499196963696107459114257576224449030167940545466217602607498364270716351364849375889922946932390096444785468634104437012696651346561603320009258151452856368623845552617889394642123429893758293680611384025748653818304594117815761058503636996882454942834708338075167296985713250947454319399028704282823497188962027597869262191717275038447812356990538325249656712141531210005632372668634397044352359991376491095283459530090396027875616147174819445699724770631480273242857765752854450940389546804371164096038922556777062020063898540957199977189619792896284467741082042223500533007796523474823841293047948565726279373226580738514309147947526863118104440630806016912881733786330731034698845189861408097360956639957752140894040186001509288601238114329085444133009848116370216236423743794216467204791363574389218729450751915339861250530451562047161218691818916522904860283419848112694253063772505122567273326251267164875845079025297962155225443662575782524895867532563600980158896658111799909049939664633411327061455011028723807666229877557376559376353842947828205791872371242985131446719085172324908036196996271439618122484473696860289195177098865193237373954309826991071032941947310393954429212679592121097970260158073027738589141266221625763202438609323769251279680786168973776981953759006773850538688580701373217293660757143548527371604725735736891485194268187244399937684557547567592977745557241733909120183895313825574755267669690820265768794152994236182324506837659481842143980839891300047276811777943361874866353661378168155842217165818158741053057691188503721332112153479016940781448277080019951798295908440887537404388239025708545524944176709282297957143027310765540077767820086254471653111221475434527020275238557561579006125044140574669473060255885987583232038284841299260847975496012901593589171176624368163574389448866969287219646653314570749959904660000925857426480500729339215550817411437202907669659909571669092219387146014496568982729682677635665955977266990581674772314730573643417394636433633773120915819914100851658176661631366137523397751553445770179041043532423174550573945998833367871959106519861648739058318042640472903954743121241901151067648760644346422677574525300592589599129379931407212906258905531203913369437964735665965556506527065264718762109114322949975705681505799228965037259732702121122520849299724578365789277718787861565089876792948567152636450579999410524654791906484017884647923680860022976609935035969971940813838392822169462671739382576608711119116898725359107203972433923488089331502013611278100894961193920999390633398894297291009613283062742397450923225521561862903614936155588951408915342072155822044280602879753756722891419835783718049357285097194902475729875285190354110689540077231798592249194078990326575343349465168027152236111672826035844916221086040580596584501807626417524230328040047951590164833540446290655458871242532535037228148579509203095709131464975357505542217780550193789535409081091332637381820500415389091418642578808691472605918834446023600524604068326146448796919647324088756009993729801900854053926518437546740192635619659671162380577808925681420900489174537331979821462199708729767636839897216662303861162122500740460730973697983913994150732428807572068804704510142820846366068452861231627785506998807070835709437262188488866003920542230546297018031818960781095842418225670540758832052520173512398729155225735007219223688362962095777754710300204313413706127563606666623351885525260182163938416157602430446201171253291933584479076866968286770194803306191722769638941187788781169970784766153568924282065925710750064431106258108263676978105819231862176400034581816499541325799164272397961345495803213310373774974760605463238700530197421452591407764787599699067672416289978353040399027216332324604623548608919165914294577035852035014259339710233156697618297058384663737904963516075905346539449896213153352531480668217763503086215191570597859982420648819491133726611619875891200351165928922049773195511172976527277512784773116750901798608342518563807291127228869420010835936427096812642374124797317901598092671133951081319939673107414735046663757384917831085314039323597752969797586898889435624360919809745459767688557040078377259641756494748344850578256157923758728349738248056977575847443757040969630588629312368282021942669268909819514678903628421926930135125941209673137930278204084940109304809516988872276250706187680218940799548006541814247646342902841783041625817088615315074272522612368014443256683137891134041420905654992521126207884191357778337120553661409906606277382419897343028177930561277160558718668351746441680059538585289982678086837075973044768182191609073722614714889243193811114335973178191786687222126194878875059909799012307552139109549684109335412597021074719988555120414716497218563801571803360537697798555137052200069963923749673824283143755424811844821447991059628965257999010140455807091132126530809669888261929835620843885028942856390219450192703983849638056109039117292593186563971428112764467971580238207060510321502038692058028109610415753246734943287217337738375616326861706731940577049222622879413225269874455275083833686439067085233735828628881647479020450666028582281927479502513627663709772812035113948152693697849580582750223804761358299000487409204621835480201121587890974191733151667475624466096026156416797035379474590477352079808433598939673048043992730419778103551627284858348254840755038674822716337348122875263659769473006914725623807812440790158535335475124537874781447317334688522242250479257454561433639741170798748285306246421414055268710840388563626207401028091788371599076613219478462634397662058514286865088082030806885457475315951595489701515251619341125749374674710402065354412769898210750062127852898365545033184209030279483080231473923176266381123614037483771788956083586758533979331753806817656346192554724211723676848294318310925308496384947123770697235631261021176370595641243251482324051537945946795364582675112870693716881076779774687451658742065088817574941946064692860057711535553048729414319525894633371735576867550871172358427026948826072825208989320654681780222970969082172907518141729301605129317485187390530544362319997765847487369576711379333363716254200379037524969596013226610903033421771017504719440924718610649575908786547252290302662942539614664721137626968411737703930976353860490798952261160323699535839124095124683826845477060015803756295858656893270041745472473108902650439319572964281227682029880751578033952849965903380503465202271017596848523434476866237154877582823355677960252734181445058061075509200993973257941520255950329333527448069033604268554602484560991971924828519045441727071873202633345433378814138029029614774052278081662487011233528632600272560988616123694275510436238721406171107217221345784187598622870328147450708310993566329257342800904187680293997400747392482611368290400326727259158995768004134584786926821969449149621036467536183972674046692783160213642121423422726504490332609040983325584864199733694470664116702211510826305393027358066913603524318887117254236808898717589520309634141344945452946389771613061195926068231482005693580447271190546879589436279218308088741410576228505892336764645065483701924169328551261216441202982832968485772941542081498014412757653524659885372255971851887848334704182876766057470554667314634624047682413579724961644428896943299281063076314173683581508824617146833508974324034154942300776212175709560371794325680845575732645005614054245450524378989033815204979816265634106506304259064395552377600123396920647025248619126669713691393710605898534727077818506738954860537894811906009166095805580800570979545787699359661665210060279403057919120113898692196631807396135034402168527117843065835246770688699732678211342242015554556109679137118019912711685298943338785144303145695947772149708538196637375980731059399348220292735680133182970238803801838587652031093459462966131964047247893054401564277752686205905826723268659163889595713099570250121026661397412462584725314521601983112578491411937259724506203152018417834297542879513036278767048939656581503944377157762158943643591594663912682833393801869899664768613931182681347229627031469705851133457056595990807406606213270439390468117145747018517671454890300949092971748738264537202671927090687669794256787967243247135582748316830612645869735660817435576976185003795228790749070685853402238178188950853532132382190129167109835644224076497935244424932681952142185932002213281313170348953032534214272484142782789294640855516609029046387352260985182634560705757237951148911064973618131454165325663613258648665225539380285855517541125215820475912600014366463149397890086712041113746593568667849940649688727545630816533507992417355012028074971057617055395330060070126830818845181568212347243724664361349536694889816232441516555813279600151891325693578491594957629615313093487889652107361894815023765445008513706025030606387202465337064904387407017603390799609088890803040451830758181131562321199715167025293585309320457194463178165513069589310748646419670910415821758309862777536660338614398562432991300533329404541039970190931102258023980356982974640508836023421310853876069448920866674558720937120583026619987870331008107374655018888670568705154077674334352596507032846502380002057299153700128171871592847321702486866087871697207836215446100694079323505534277162770076466538924617007292945856470516278914155366868187742608765975938005402285817737969818609536934020577403862335526708971263390877674538597167489712396144524121081020928232809839947605029176368097734125848154346435974065258975797322985948690261707213998921772218434222514939106648808309524341559705561897573093366194893923258719476660021712389552680529213648284730310730447824182023847044094728886065328270176597535194110442818597012688840211482308160757588821790187114899584260106514450709615067281618177649469415440901825861431980565413333276307630006795285696402117049208847510359467618334557305718035663069406373481587348565559944848588500484800682744425410450994662569467580852759211764719262489465982187482947052871553259741663164379971386056543717271044148421195328973103879110481212675650566160191862319295464089703237442629842644666083623704116157347619659538459327424536880869235438940912852964867637469162685226209385020078384550975354963315769157402995936515480501548922431945257223603579881232440543461424324495709972527274642226984139404733671748462748224579405279845627050683309091733705746040976231907706673703133495615954205335840588548486291850743699262861489187011174075402664895896271354311454292325164649658900475727033907411785113266304187295787716520855288387356772164767389487640677677483022498900477158711762749091595536776957580870607593556265681954537066388583030911152023746312816370905716599248236458202889202466394157116512811265031326028477891771535739573699890246910838834120339431407372548425280196529084623325735252832810962933900460823392854024978739182920016601101645895665942317336778052569666698411670888805860817236293035434933791888953202508167245955364028158522743003362200573812031089866337272478325925006213427612693139488755875277704128572810605021187044428869981951324384404138153170434517633081789800710750801537535978335944631664380280003953344327853605699887660685408631830046686618680552846647770518286812247268965561573033751464721616297681681981093824171106037171783262736163020759154245422676513854746615536834983804151834737462587623080990616105996614915863485934155628305529962116962400786055917308454116690545735767082974247085199350941186123162608661622244195780081222632040104186051500701404576031522742442424899845398656923881160903909494295482776030556121453517250900328376518672325614874507231675121385957261024371156295811366800694226734942432785720167281568349255374347792782650634363450000843775532712403917956098841572334584510490526919038596696580409888931672027762112603825538801868179390423451172998698273472445020621404215339700077051985156633798826088243150531719960036066102173251627338562901940193269049550633918266287279061627815913031396561415086930906998967366373867867244023788036836341719207633540735348739044675205856667259820975622883732825094700880735543075965264971812192378015466810248996507784207135850161118632581199080356533189432975663447711785174448277857392459703081668398549839174865002870338315209064776117705144753570483791928840665714036597186764789891153808532137536703791324103280846537082483495731106095024384254966037633769439479683623170999212314027409834405486791318459673796710870492582525219204777019982297246724482293790954702347463454090773484638460748041517857925940662205737675818522883240460955807762008664766465757187339281600770024372844562886279399494276711802648676337917360544707505325588889922227231735405160571525130818014326930821089101828999929556774220396400172905667890897640121387479240824460549209705118240790508687800785881310120017700314019390161082808563910548738820789842252005179393361716986993186225232266668121607591332458692223907052791811847208414094011133191030659266930675493763394599479559085889995112762555508616444153061148347467001633762437594513541882931103884257217113075586032198692958162981726375615371237232121393690596667269454744368997481186648233822094326055634134665640013741029536531137122634444691835686623494929932745055432416995126774136017146871800972548865170207658816103127971690619310475488452185322906668086103199833929472965823646988509924616185063273594547869712812722629660030677282119602995759058244834273551977829727909918313978552264368007849417503030687235216519413119455036223036722391821005977601434636141694604448540069218459914402588823875990788118434581748917494733973151694157508466079024596867176651234675958734518568880946115939782539155547617116576167377803429888498926121186847097063519119887298027559792453902672446425368851672898139887293571401125024207669377145749714808904532834028920445641785139360894303645791915667676848801881866105425952445679724912963902380278944641617960712066611879924858751942726785765195076743495786265399229336784095587555528549797743906879497566662237772303878182210944112701650260448116733437192764200782294942520381763179801543638723682504277776141876998410431372345391234252253145386624518923263117091405799721618791787131623207832560798380714693958378084304956048306858894147152070270637000108280847883335249862211304255879450277860551605850984882804965875953794883631455175255071241110734307960597428166457324918482638765150813683497884540023138626660604539200029788192583720262659410543181397023578860464534014388302250644691403769644591575498297687036952008713590753713621765850454893049975016672155117406026188866053918479647703254354061042606653199690787290484664204558460871615988375353169572342588265541226894098596269333316122311280349991907704257610895174529709604397832294180100151322262961840616561289102723723867896294673697956477513931858039378799544141441124845022485243891965297870338465304376472794095628153147796686692656481448034228785627339660029242830144887051611681215664062112614353350908969522103564143781321585712320700451100200577739776043346329031943788229784062279671281080082800256225031900439052336961353635149819125455381003557834859444274980540710895296571071457307629017346861796041296854816296324805636923199608727113121791453796169383187772404331944888231089471876239582736319574893815045776151649752395712256920584315563871493314966744553161689381749109957143054372034923726080779020788126366124505849297716093469116963053582347470800837486157462635788814411946095262494438142368766122668953990100098745245046316223899404396941806082238261654146129750691720738393820775748693644653103801275559794188222567602634354493654498055174690300215922190173214490898879209602346394808806468265688907244090226116602692245224583207510338786802689378730726090672330134599246135839516059877479369153823281174558061685729479488469000335740780715239980789466687563372777081202459726871185327422953115089088297549942620127110314740715261491044291141792790707847323272363178901586961394053616457052443439215624681674760687258511128604531319172421812307838041018878171279716389464234300297471959773043850685775076636768110756328702557553500061807005412189441560884942259967073602428412356802355725065556905788013782500701282507845664784860988150279983467484814746080666685203044263836653462441010129067716150176766751731019650259827964487759114756342825137305136659591219329006635416169532404563194373015769644858307672272244465477520046468070839592324668721973377474950819819368981731991312639644540380174112034485623672817464520447757753178168073023894948510958586387443832795685853048546247308723363365110538576026690180287661428681647473095926948321867757407036735706499511506859922496081627844728230516770484691567248136776544687128133282671680560064311499686894711055636960884026517703155892367343613622989382978573192760651990427447757255413027826190852212303735528043460345910884499597834651152053773435704264151459394109343837321606082575876941744306728410710513504620869148945071897354908413126453440485829805447400208844798113143630068290718383297846442336597584853950531103955956240558156759475577491743750078100430069885867992275135309096365004652932093106357032886496834927102873826625364592539489419974856099551328583397039447232667719170677380517963312314911402527527197982179508679556855268610104329039317974291202532948764117375183160394743533079289267398535307635094384329589596932808098751554568990224821582567105236615092384996713089269216507835029361637988860470348955732314217650548398505661500874543511949849705022825144892582766661035286353817229706514453188270859256868957435268521013468696903223389993565961839115915769160457256114886164709342619163312014472726306893153013599213574965224058929515133708135989618065491436136807648759940904334401341008446148120663405459088957374427936360939102780521472922740798114995446831647801506049477598152075872420593707609483363055262945126534352658337340126549162770364627986747753130514738721480236750884427492085083993031878981839486741566203016148292888595922908618353979269849908308738661293952377174642583775446021401976884232625061842304278555024558815490394533533380132275941788136554978868190251663602499155766534097227060470085023225123359546006728655339335305559147609167727159304591519253595706070097594469221218415852376788918216182619163529456860894050836992110004252937129885723049240240312585773025149934422265560197719917678080678309267139061740361234180629910430216367120859759967398029908382763829944133286604127365201431926351906675964827992903275090488873100875400361572289521499280874893258459418377489395640825503045059527804428195767525851976522715769932241134463262524966770285407811515172927258397047869963554810498446680571776963354545545113210035443703343014084290033685898785548019345779655328458970808288033772248035970068302744177817296726680492751547892656399487061546623114728854918242528407554960053148685441471837683339894704780596760605507312416882844053177341651643106650833698835592858827160563261346972936228627361238669739635837493356235789580706343682206055345139899434235390747526188648814158430900051577611742465549911558500011163021890902720526191372477809903079721565188020367356084400191487683917846535229806880403241159427975235013399808090574519399492464629492247837059396329361666497195159117854820515152099146954706974624464431002625556805383229094139310475859851728660741544516092839285445438363124651083831562742160704918615230241920365451439867759102041723179570608338811910958350845337822453064465376353142490783335153297994979665291786504017202118423058330619612965294790570298409666710082981756762911390711652756633912497807390059540880938408953258706251534552748406556795546337168533332427408813222947364840822126901099345615638737753249578306450854395763388656863534138962479643836812026277329829948304274339511915784414929962685017653283948327240646942405734886531619962114920605142286402742522849640181678276542514891767190273960950000419061981647796497172925811281056570847489444267566543555061816525906123863399390128188225447936682016593384657967044339626805766558972769604978839692501987855353368729389482112257815023265476713620815173269395188652423065673356810855655748907299214984010576901490856215988605486328447698949825137648199629103387633666838665985605632849491003757946309031663660956065110612748703900965338868489573297680673839760853512109129277761102471063337836428187565784295086744025894776723995398090112366114523701588782540575639754133430266760559486576532341265375486351848876259434591037507279434811734406823715022939357379976060020953594305239354247463853046245345155087873989613177179075718317868758465799632001735240153830657052317959996955583253948047851494838515769533859578264060512362114574392131703126402020537053068172681336471796591677827053580098175743328488941822509869114567676018535716836792341325761178084647155654097702669800764501045570667122833022491209684368393161287812223319979268684164202135613264697111383732808849717728737058588184907618688487376789987493848619790672852029246594261637216446044703647168621905687552280458451680959476717960773965440171164725370442352661345549187264290836103965509925224828258428052852682441918945121869472379723744425519974578898617033437027471625100025287264076073195218960399511443060470120637778033439535621794669236804950502512456325400146722970562982791031657530311678861693459455925080895823341276116351069352568311805383466355032615441173968366574449383371649819304943047293234641890337617326752529165224017113742864657629996492937852383946415415825527612456401195493726421293049950296154430593169387683403737780046982944415070620331807683785042488635044090693138162734679491002409927765542130159679143455923962453163359127077643062222937009454355775824590331104234508232229292952196087149562643378374375811982429620861749932167462781417412710871210102695706210693916581896570106718965227277059294820789432281179899751321033301133757870313999994117876079664177278581915863443572444434634965833339992467142127711985160015390851091892434145324358280198465381093343269359580581429763768490800960602429827579894477861035755980034943972234465681314730248023072439668154523847191426806121093762017408459127005538558881000829989237531589101177602853475736335919568055851734666590257862326439593016974880672863442408459244669168793335219153836918925488827584685742587988599159471352313424410627241897899023624456682848982535892694179705537276444588692843871306285470335799025844128213154929091663794805529184748172795309613580378719627594069381485586566330147949509271982600742757035043200342003464159852220494434104082866304264197445235840051446298979716558278742321457882267217424983476599134257855888681078456091543929597580624907994992046096162658490212615690288860706703057184867796575667936471548621876194347092342633284753528836428240772042648301777214529154373203013734829337489131380660147967567842806597959154669611902734128267800239161725199467404900127897616030475041262417919164268760109736412914306057158880381573866590474601459922206462426024594251034603370217288790943465951773325679592501156676146499265330094440316846370179997687450997222058859401472456408899450613275036893432575495926157008217086172285275841237474604252440573516895675466029894359748025538569497715985286084518321203557573503480163035174017957332936385751442100112218520417683846170584299357280166878372476909454492459724514397047304713304701231612086536212919603007371196249601733036878550069763655293357747202551583232591397384747988702544611881899231201859319015896384163293121579501351984241554777178289060888956968017032483887079123528101725424040246719674574053630882788161932847881486452298010914928905354740608460894534602680808720291233420469758572102828265413690774831885016461231326056159498510832523842576964374815915990866542626440061021983457685242859030470772704554513557170331367205244156061479807742086545328914313886635536483556094464896505127433637869714899726953608679180357054680125358909798435682959436667748225385646977748159679027868655332669124539820914267388124147911051617611171066448142336947443680815112718958984647973216321810816985405150930429459747528297557253808998983951334356704992029071437325915059406550865067814728707649686236785021068494116077014565983236845737918683302015364925812874355905684708363855792108033759060613474233405976590446193515690902113527725424272338652175850784616884435007151596188024995880271502133846990439219455108758179004432424545217900074188308400819021243275471187910215161422746996367157653258377982422963236488237955482503787411352987371841304073951287565310448117589494857835382775184472535045555740184614961285181820161647052639230973264626569310348772626146108219429339953789447795334824199950126280115947761229095596988478091662760982613531422860914476512316722023017238812461902610871497614459309033415034830083822877745748861704565014365107846917189734912396313902788270613175519979426503994468593090336170316184416566331056109578130723447776027386100634699836036863523330991686484583112929683438670026927589283389231271783487281984924484213755027675855756182660671029782518367472326261166653922044283515305306549136790819826326421921893731610988686714690750930484280380456527964938445339857477994971625305812352572759946726362850118530968224416153888858328719532601976488052667983878118470702003086116398993364550589295992536248466163567217892914092297424659208110596821211296207952099962169615466625770746357949662306581687355070719526668901115411681386410170446074017302541945535317572688214709423753047238895171524318464244094256243218076720121060477296411952247990695950395386189317287900632942696491581878862520285887394107417541601869137691522230077225219189655951119258278513260338953272683542298285608042013311661839431107837469798519086521412900994344994620344870596795294495710128149211118993197422581704070996574451252373400748778268991720148219126559121287439192495551799706726351645260195990645673599752139065470332081165608897260380978303501461350188763520261623263519564780348367124734094938816712194191129326538646856197062005683938223522465058872858419552675866147668321928177380648301871018563544431151389959408120954569186496178541785969510076651698132451498196667234746858205188696073685079030207852882646314992858292732251069609216964141045135171095386225971975171624488134677428107932598314922329894126406957062037326862560309601701300007332314512515307968386524268276040985548498994197887094967594357398363062883100518364776416114643113382250365788444036586620668183293690201851137437813771100023192706376618966255100075872075578424935484132073501959618997935295606069322009478160803424307054024431090801552755110565544665836832072187519577845114039517340856946184036943324459269528860835559887280632616412798603856030692380713265840617763304399362330013066115869946450106093049974136743843147341852755583110853944354106543827603748570026280830778635514434385920691463383216238776999701660403397880180884626063530151731167588513321593659089955905368194659254866956350767072030962562630817197131058821104480828956214814914714523262901525735011360890770951667794039340320238615914374365773146533162787259254360087490035518810552758714215748279909467179044642822521495933878121328982177064050514534307335946225179310919758863430012418152344248041161389511690833446033762028846661879390880979348982349846654487514884663207891696596486714350899680333825419921375322554546809801024391572860206233188914575209165058205488863816662015831978474229811635977382521485946671065337634059543125709844625091352556596991886062581241398907498914901936048125611658301547180818335565749893511956875875326871860056073133720773827320598447745878534606574876766738872753724513937606698088439341818421526699697297930888560196233946660297118758455275427505807411273090733472813553225407806627818187449272372805279232484356935502331774804520762312899750295044408777000095482055668735794067568420995444227702646849015297258950282739639829223611259061735485663089582090295484330705501427544971986176480700145888920690432700366596757595545365387332329172844850927344160417140554624593615016771398600625475668778755600839971509535821144357614635815090899547867114704801244083685902574787092885728392001859323349312094976329023531189178309347434776185766838788140465115067872961945055802253448928042361749216578692614658213631499677467721340511110373610467531520013382119170106702597248727219889411235831092115800419913221441359748734498561752240887370805973569093335646732718702541594928913559889201661584902993823061181980883296622935136603371021167066980828398665218515255231798431712790474422581060333210565003284973962718547127674914401258557648958945999395728151839360508850317314388603798132906955401785279491480384730657166871668585610473346995265756643981405111204545602454090672013554118813516483437299587128847837000872912467999513667780850048575967758984783444010210940683383072881139084764326224464214276126071733195283757368246241314386646559222922104091989689267635710575571526231186011835517404648503629897896356297548323632056248371403590556822776269413859635005826980266129711882758147477039203345367223510609287474906489265880750030512935051215532853022430599251044002314268402734590291505303623650528871376362930030091108701935745484494542924876301309964399567209617347865776736396083023572670501655746567570705739908995391620597779115230238087798611969322284786589740985246843627474941320759008503657628840199894890707676087396344441008241612997473692514728425479195226317215022447200604504942029592014517957647447969246089963554446562378057857181449529486271454762373330451466078547235389946165830176066717836140250893822685169061690818713329699719762527107375024330738240449363526751586321724411735954108028269338608572546758059748990999319560212343015553675057268098743754849211894390578033072984983444306625485806574108882423066878602415139867134308280087102837478638856592234695986999187467412933746053499247740428239907063603778496296340703828240452892676224608920089515930722283589032814696538691958778141255923830112057162888183767424830295754513030171673346125114026279610241304786933179515017027509791164023928971271394867280689847607799823912549557805041184837946729928920946090353204359782542821871794792052247719930384662007233629748218030188330692595941233198030308911399370518880679751837365611171189016279906247924192672493339587419558272024935079449407781698507035165934454791467218293355602498137119044079170201841585719955967057716888618984947553475551547161953298686603417152204894465161450937035054478528457294198606573691421759166896575957433247629041022607867499596693511115554372507277662690433669971232750641534719522029590422820197733430033041542224988660969086042680378667643580616871407099956589223650849685765733370527504104587539377958985421449199109385403342043348398250361542365579607309287191055468608209682122464215918986095568050614727697962390076873694706137779216639057275013904354972762832954361908966560318307207368654062049726230175198213813480189738181161539140831806696905480354583876818424794371007147723015996788086622032755176009936821329794679460029200944815558015923146896789923635766138420663760718566796144827919748337704494681784554188777736196104995446311226748968220848371312425124660202709125299295986944380881290692462622167488268618275105741915103029805012127317724269903161283653803709744789897911205575797347124893310394604241429118684070561863228165281816814741123395120165896284946586036142043505087692672314764905553153809977681777166604073897638794024683543896056378449433044362448547079147323348504180300612752416702834871121118343377732144638682042207247671234966544629415149474979620300630573525438559045852180541124520302914304075103951125795539382729981514751097603413954506974908532852539762865388404441873579713032069008446893640352725181299746947491229735412376298886848738531449345775019180554038349712537293838270650481496344471392123214361890504358703546657577443099248164261575776541738825865182158795938808710765107852875535599620677651595472892891498716048118519652784568085098727847849741801025439682933883550531282273102807071942205341102844466411704294851774481045126212109163966115757867402677190873117915594589208798642642701002493841706467120679681972641629896644175793449563446341320320284251086535371831145949645786646594964780222119874891667806895167678832792741692808151551058618220788368381611486607814184457930087610356002971895403267705105187905396941349591321954236761607397459142580878832076853979432714896059107747696736158040166356367492501932090583113957451065990251441874377505500990714449681908744439532259098652197391320057512792927659616421067900452490499020023854356259803897731269911506148303560683360759821632602841743929389086468229968430050187376596359154132569658595727436355992413756516368742411492980851115920084739924681622114716239359913704113940065009638175009204237051948278458417827787239433315482431091996071792387284897178137474700213604249652228497105744739855405957052811926402396456195918566171158706901574323031511444948713545601310972551502955346070057757854932838721803688302221165585795510703134050737358166007702422863264255792464026329162536518978756655473872910166911397268641196256689923720975035544269136304339745681915159552314172972267448676821010343251843725469411387575458195877591636628694949244645233717266519026726567355504177906058733004700396995222268174585309632052141122984270098557915668910510872742041349786872117464529956913798549077909075456000965709874264896583144645477997229798421505662021574076197386092954563764625871374827018279225513811175409031285304569965535579083988052261971079282748020840866224997163689992253529243415662395629806487915618894674298483878056268834163543728265888475652598691660902869261606793195984327204170562351657707454127659196089055440429478843368265285252802601772757426981141244979887975181824187993588484261088688260715624213654163691819451001216775467327972414319866329925455968770067371682131672762233844076671971499958082478232494844252921634187882256954821626778940910738352289065517185646210802139624450280576092298474064062986303787999348141029363503972490483804240455243229422979591348619383445905271557872975883177629952832982890594881201320021267777834459284599963357619596694736202391044666526627823014916603768843281886674604659755326408665769955568557982541883034299836707535764435913026802839622496389638718274678111434992166468805421220592080362726093364804425729451116127474472813546148690949839125446128186661457680243874693255483344745295735339858227666994558736865751684285190636185078908237803050177118959793853771549778816472568313860249932351222955811451404123958076810960128020112363696859002875416231742825598659929336574330955398655283190751132964387327649009185063355330256774346645965083327195716995020963559221731292700729693222327020282799571257041630151172181126006072301273605240624301835685845713549622775828969116228984790667490456189877774616320055277970551819169574073520743284402262410006101928876222778031787126688852785223805214777836877885596291368419861113417595654392044208530949841631574682094755698061991847716568444382112483945858056174052508096961809133047321307000177336198605939827527674946074728702558312538098420972731013846904495371288448881285688873759969384568605550582937219297174683229853855327298986872955279362419536724390745772975478473378160515044013935003977240622159938171886988364021562370928945443855257355033005274415739621174703410833025056678724378182845020016728999798405704940271735903671165688450264469610480050814152770773866222338079573482789405328719541260224255745245235147937478457710745033462559783796383847408046014019543658257355101524200055664754934816160475950798665734516984224639356025860001178251471476106201832577703014924702245969372851438354361777036488330552310711494487720312216132210861499907030022822854737467178464707154161927800138163177565648193808023993416520865239452613840143627949120607088879607769366612423842602041882305717741676769768174411688167483654744128730551428175726779413362460138689715385180872892128507352283969880273537807540930031305693077108288462768295708099299542889225120680006736804772939845644947622319575842341102850518541358712116637435689863868575362200119914375983604050465851568671396642315212055787583213569251834316361319002379657147554335361760215724976786380032230968690396543371172368132976714263044316739896962157468742329248360750014489232721561672095637479688546941121757749630553533240200986498748827007098379300554127102551188418575130609216405256086000123759836643503350740500413671459398033326108563484437436167527091991520183266456780147524211749965379410293050284163304340574452248599644316860951185315506089093343921905897699550359213785224267854430429939121743614068984392414106494579667099040974778186084562827599107392276934399291739990290108079261249879981816140918902271093525579805033821573380401463452022068105607248980396276345935815637569944514611543353243703884805375348922857515220979020622939458022459057903531392478954364117933168649205478624015944610431304307494194599335108199973664496849527525061241316760951401739048414977245687972247052896060942751920156293642228567504970849457405926536062942843922015566921458611221777131276045878233273849935679564217335790306930391095060330844738929019088436651835230117373693595040977164096563240593686627046246084085994706917360957097043556592371014519120245048916082954289292888497454627939980945001456828150647459336825523803119267140761203437325430821329931257338446413216485964926232227346969324148252969680630665310520458133656903361358952587528111901913036579357411411411990036871733089680952452168862936562026188102964343300665489611817507456286657804248862579881904244406454015068246238862593047678589236499886852735465627193800113466062186757593786759704946154646154964201204375228167966268623182174671861386117524832916005656386542675506784258705689829502023862188970248920413168300856036304031045606056984651405236187767171036986614696856306047458886854515589683689162971162583822814569129575182694921895568775065473150213019166532743163943954157080570209351309880966660580804474707552513513013897305410238193124087301077764463909944736371634460491767010885867690782219901105665057660053742542775460552081096819214694320698741306775189451417062027781087997799782300131381675625779789933850755331914087339968410658122772624760795374630457582552872306135679191611493878041019090422293942859794746772918564574217147720765000589463081985153136627642861435324065096036878820177859348542017522145271377288587116912337744291176589243547014620753808371952793384565004408571765998245446441274279620978518276538840122947163257744872227302016806390069168729453165551421616850863519391463610553509226957778433701430050389576031703040337903935585173004128038333676191414448611324578979047111467441866541821497173242748265868056640447344363412931629735923390744612733878338864438248704129183326773094911525534138157374792010040047901753634020191810793423840702328537158070180694011488454199247829047442840000707348127539313261453628684877055549416512272913809953292435872495245309637050217978031059224344925333311160044065005363954708578136400465647702447555799436164721743841749284371416723344679142421606920048126326857789479269589414125915318838152803192041512731907745502838416264430710027279783604088392462061190915169076049759933432674810968984490614800465776499738850825650515108743051380287484033375167930227705465578635056667539981659466378370984268710653412895580168641795858408738131015266221692460816434669515084729997933260284166853780689751637853959980278618904401209039803967432157060802597040834222901652560061613793807719843197371217239082694338731991032453870109211748923497370260927989998060529668636590945325554735761698003713229812154821363659878099735713153157419855019294236950880909981752948682813475887440147456071366727241891021155263679616301621022814486898000747062023831670117019791671723101132853010063427480825399113545659080003885451271735341424145773534300644987601162354408690159837918297303021324165014458197758325115234526131871037428774856715969711595540584098652743836832531769268300712655338129691447397907493858946641445319464066502166996431191897272781679141962555647984344100720903428943781259930196936888694547830876934085528344140714431871166962617092336204703384746094403431980651261159429929513740053697867721704134850835879964313795373194650832943324508004078022696139885605098611909615076112982361738956193337324510982099654224452581017492182407323296607513353224258191201275588451327842205323132914435110472017441664412785596339017802763342936186085141738442235534587311622374750923547132146677571170791891570305948477711949603508784810860973002721664692964250163152800488938147075384508114865678030150191662066904976605535562659476386759254001179663464150545826752585842369883516217122715601026462210953639982892387841556796957436524783146711611789649897862698284839347803387030746166245050766397865679899422826672947055227706790598999526977943614347389668246117630626024247180922818479382849986557510819803966103607284129090691534113756760157750544166360743067090995023351586778541268488416526955706562991929357298701649600390086519216978104299017714630660077034231518548718179160107667834880222251393625846825402013369168058831199276040837045826411221851478159896024038755767162062011117020737927311425218847740849697405826563946868799909872519999722901354604764525181190241185340539708309697585910685043918117419261019432951421196175336329282389935881352398005447307982357093615188608842420417228119722837209201195251812645156974929699492846349955654654606074267563350189198733890975852525529638670571654236922985242914202547713882099435808614924357734763017672159750455150994250098457632958183935715419174009874224544577843507525586857954226626864163551348567077484138592186924857776999974939081423436070850164844154568465820432320423911780954440294829731643564480847595439116145257998463344061474580354036936340862343360357959346036538385460075396253213808475872555506650807490866295286592416651475515644065774528621430925763556514093449341715128003590817173650530215622605243570500892660827620701713906139581507417513193003970835459915944670636613954605014400848900450819937255564692885447516115015452404802207322964340605757224783671014414948434488087776349378869437972293118738803200836135732944678695802740728093280528189418939507632275219512938103284575003156296111956049953885996376313932973974558017269654938894066171255300511057587606125259016308969534063644141002455544510689142996079791722240096385423806539045529137909226315244070049082472291293300082053957345350397384623300259070708715249708504847237399849933474152689128120032954394414283313932255624309527602704604448416282044091014098506463204947432795031768142197910702236003328443932064027875738932601122491871218683726881729779731369528356288903916453922329425872862128644457183442410048254908968381165779590186828477131414962940561476670754677105148782847047969628703306409593560573831625979567233152895076795242120680005336688363317943086298817143257835275011363583917641578211502582778900077044531696773578047374108695536492904630750235305808469849068747882903043232307310246186719991693399918046219916566667295391853618433811346369664612673804678028252570132529250201691376906671943714045179283971167209473299331738167108898953585794925645019503373587929549277992068982189714126715293277480990355080087383375947193975357319860325993831730442293272481032483761430819949590668817954557554089160110509845549896723260139073200593376010650119184491234272054483336709785748785715186115499816714122641924618346524888248164994032855846955593232996761013540875294617431643235405932789290359870316965009573408239918024972269416332006334661744183807718162076234202592558096285789767587210487333695583567673522880814490546817863206421551858423281143758065099431068056518191075548688700346384560321291701492018044945939693546630668806643657055605946960200089287575379322081746617429751053468738923797048409703527487167959272549793750908735898486227951587697184430156523611313538842321245904164718467515304333309531681000317135649315998968405826805770391843086558296124634450400698018884012239522101737451629311042948093645192669224864389669069133431199897656684310558763223642004083858655587295785377109422622914982664846136802758962989871909243511166709964477597494201805770836457789975128593228041284629300997756373248006931216140391217360042038727405587396607964112233974594383104041027240534871447038654262155483255440849606161656805659850014415185179962786146074637886079606622424099598840686774145584565585820101299444038276030868011702364746620919095934333748906151896346705054792467047104477791172033246060075714529736021836927753782380445054953323761600471002985875776071701802767422074171928383392505514961447210893407876116626317716032670719266877422247997043124817541644264368048273319977395090859347084108313380020702196903494416549357821692180696465962104036178583201309667794738521038690339767132249485466837434926126395546994045247461026624929159997349132421699422560816191462527338724524336096716786251752358569320898042974815645100444607114099338188473975588351708460577036172053419180249415118509841409942696059653303038436117854489127507592626763565921538742178617743185268089135359035709886833461074424507024984889426951245773616753272453059420180171012487624048647461691869680640743489017809652419637937366469613006488520865364202833859406657805010159986315562589262528324876874551509852347649307766214007451415325751833898737771278827966519116531746786093954535462839722492669125484006221270323374198204287200977555664578029808717537243749010052902778883005225556476774669101483790932357705129851610585265242154339259041040749738670412815137741203924224471478792106302126858314064830236025326786519335977512335783639643054064661938039037903069645152243785510669058656359220189342538773779390263025463893361833486544600150636784869187919836856642895826936805049303526141631636218152784340257815319296296423703201354556500669976106063257500921681148932888359139560058789494938120228896928555365655494560835919306098749484992409505474938079126323747714893634182032935379168925082455207740463561289347403800530539733599680810493293847697621362665099334147436012083017587100780739693941974833041198073826428685731854302809641703502538592332077266311411747255525095588329744717227272435055496193132340137215342536945649774744521191156051588143781936723858380700014873015596857426542595351270690836478167853384475491810528555288528557772636025093766492937171263427960965181200321646552771044450201376805996204305958184419822700153549177463562216668757704111033719398140894423747236821222607240292831157120844388137133263061999958441543979921820607234226485601077219497965155192954790136337110401695691522358267560684028577212474439047259946201336063513549345716739523152851406586619535945379335170751481374051496210340571731112297694366593267769298238255878174050375046349214134600769121087539415140824415549416757617805452547525936472804654518142562797255245072252828923169557643339150510321728194760446306509136955252837863643743803316450415220468098566985433790992587466258186630922182136634002733195771686059375282135616958627515241706187686523576602167229003129038888922553848027629806055455163247406266706356944981167006281189868302296386107143076624700326543909104172727050032771684264621377377122150949792057350972665692975876387899182656036845559530339554965277303507957575099383886637338226734326215559492953364022936905959386395307135295350012272279803575071625076439417248187815927508902775925116821586227255287306183913582662247776283074845082900204943296495694692138631687559538270678491497392120936981923006802711849464909670355562007117150057580177208151599776768323227306785126522748586253134145316008081650348973141129874574550533099554066101043467344743300389577387568106171251451213340199279028274086695889741334526749510450787143713782181979277021645703691434906627767573684387927241881437897251886244481278471229774575659190198674631525080154897232973501144872843361018780343464438178277845400638333931050754621825269157824836259403917035042159676196949029673871759213088762568380534540223476840968583144092830885390917102215982173397037765115628057737008291391384129253362215321117994416168310984793839058354991221680526433248024162951207180795470393577653051311700492368857911004516855173538052104986284787967372693977735242094626249236585582728386115876557142525208031941487217377851995968810539952196624076697854178230762916458433899771102721620665348306000448357776612378368542918983810475593157804282699986938521678847186075569512421463440394995683447352631769340354839429437751563480731584961103166385465388607379482344661531537279779897395366619141955712723227323757273886535433163153835931753144129169847855948730973928229595874402075664500395689089020146201793651547028211820712649507894124442008531920542003053748560594834975149533536248955816392055784099458951060530321082952936841846469811167758455141944567752165939899144151394152524510429556431450587737934780790510296117771254038853604284920142993501925363533968506020070429527494352465144207868301210357182243306158344165726611945804505020702715916283183769828698813664370395930535448218286137662378481749130797251246562088574171607849524698991361811640890767940323244067472487814143639984413778836199644583739140077826067654086316892874647720116718797864172708124023322152393528149806595164972130380322679470964721743771359866664435047118955648300620604786872229109171729534700381865408120577689555055557173912613307015619705146380138070249186185965887120900239085782053839209578273097239542857507330645034725015722160750917769803322034048565665546830042263558326601299574047602321671666253422406092084681988829049192899922286870775302626622989657894177035842638133113511776631215898673256601360542412177985240221550118931921406666147291500063492808257672264798208145648067185172468783109457141900085009477954391236701653269302503779806999822848446649458768639222903721405621806376767487922888150263835533690029948191016265423244858794637328177597703060475794157605518544904923207640200069496353028387976532531544984129456256472911168563469780549760125356647649022058221882199579209301658109832176853772763611009966945177413797331651576136910158960439136670973769802820097615628936651447119373086568969950327162472274322177445658970202328861653228249171510108972769224681279768998249143278614312539332947133489665387839688474340509881859808209477883852509358413603930092034395579542865006025333433909354715945661846710046573746711765698213347950099074551929284153410897076686781359406223369761819652579714562036232782029192465724342466962587984748510129204488221081880962044564794926133316686383676032618154713622551342889191272194823238279377619187002086874544666061096924855825486518312287386626892914688911952603789783133556889604547408596647529701835368150938805706592409936090314925253598078973757072838979360543559386906927948758402866443689769025427533932533986416221929263303761698252338383106941852130255623290278487731283682406012175541602669385781633471084136858964808324772068435865278503391202712655840742425937499190392483575499771117380013716737671469748365540731040629049580509632059257443859336774533730519043804445716749370423348801866484367358741924431110824474686661897172094163056496450169775921603628543221327849292880705895692887763872287617836307140929394841088441108332189547219625795866480744233117118199116987688851590800374709433406888240429494304804753665086719065977536475697423231016733667258838610677849966717381872315037675380732731999459911873552552396376876036792787386545024725478222082371145881289018903918860777852431692318080085101241121533204822617459178534884134800836325671707901262606540555555004727303575594054365650741202449883143760759912081201307024402723598920675749194218934430074489202738474805039568635087068626733722499909732619014063480843964755362466108291779274811273565523308293491883899439439547440232195118928589707686446904524076708918453322498228592263021437921708682552924087065907368607603509276001182097317721548023330351799807240952543503977105695470458931353574036383193382240398385337987081090418720667828955864037067486988311391516464468751807103192379158200932629595855367140151728015743085569459889348905217327251063875448321615618291237159091203779890414200123732342191398130061408630645575536563347501909627633110976324198452841970512095593726382356786003209568186868439881755231791207470779459044324437370385015317883996404981675828793606299419998894560379799776502621883699216056560699258387788657455027920757403623899038818641661100934762072445526012150462867949331797851552617072490763545294301360036987415586817879305984243810739960431414955005255750403085503329903397032594668592816090957895755907774423033344514436813547060609714707489283937745059521967397760045731143556621442363816443373478740160476011043988607731825146408291670832258792437556175809112240426896571853280443028062081588039959242321279620743298102914644338820666123516492027840963639819392984259137924329003182954842195518615987509341747709143435573637318308764591994556022762273082438634151987137737845218054169419135134713945828364764228792603308780409786692712098091336238056115623373998697616917663571285285802215788975390686178696271280178449150763817526746275888396168075815876938290293743432714746474136939234051535505893289293169859892069410340141460477243034572083662111182878482311012381376875548163628249816711769367903660232334396202615094365750202152988796673442858437202106307846679998451534540833478994242711949906524813130876913149974788849719023240115307256412646692180269374205983118861492947680158874873832121657724329963093203291367750255728631874095405820574165850517441595378158136009366109060641327010630030581587288478794119854791224189113418794204441409238519046136191445045006679317844872086999771255239658007778654585626595513880818929910244913683214814526881168407040113712634922262478230078856267119114635394845696569169994311520935458980165450784482470349294547250908790819115073632357892506324244396787649122186406174461287087593059315984919890662356467123082350433646701730750600837190297171912878338429598608763485818241647970818050986820709330613221783070500094753181411590637864458240659077339004571942017097343705705573523570028959563369272220675418912889042969088645372429032963021646408431225037486545320150406356282145881044319811743406303111988729400069191886659799778175142301695392010184284754708650728553449881295944569814259649880518712394380756108228113360652670473945968998412424781337290959018652844300895338932183228412130129204543509659144810149273723921230218271611576252998508073117114311864009054269934007833345827447357548842458682860707952276974718818315776517554822225034331382174567100308816819304401861265188750887963267002407952348686633371960687582926949853149227907367039793598089212376148284657180381798470707378522037835575016694142115546833149091144442777322084753065613405486252081218125259708941564703104607660420775373911954588664520862787556753694927449651307180806429047771273485687294901914245228281343475889521668545727126026241985359535865093918049876278931967484849568820744855780240932715060873952117462329791211717600913651260317322626464083185511867467536709608785385717497911771941801886884716787228556775658350857586750586799287566954075848865699807379866220637098886506521031233417356420282071452477463529015917404759426089056474671536533167985816384630250286618557370923607209287809972657728091562733870734712803217172110514628300861753786949974340726278415381457792318647387049478188355232391870370921355769564332301377286697402016775855312992482969799337232185647327829142258527594905269559697873262746465824326985718601033125941090461909076890011295087364441734436631394549930607759831851608653494293928944417595891358515663008062275853197732567536747760469712230293113816368341757507672845445343110443182114430455732457869107632286875266159617847931571318549561955422700106600034953354443867176031604054526041120395375225437372984613224696550761389171837571963304590363395976903634014685387309688867145430643255801203157108609668917262436049584863183017070099475702896035542474029455704635115952191291223746154482736498891034901374684474048421395417947165466107428413846868621208046390294055151435583905581885966466035740934142774282458416148324614091423497630107340317946718448447007989184219627610618116740736216482663347973798013402970806388383879083093707731333747230954361989099618514955658934578192567664910665211440544248234821872786213296470832147359047302179647102504762287693140192370845811343486975497159060413712174891545082522970945362396711686924815883454660935658802082401115978611023929649668718720701469118341627198686295136130568131114636428721393519364715571000929374652813756744470946832477414723304703341280250626476680936889403793364740863487766237320474440060067063933838567531820096523549934809560914570858144422508374166178868778023704619090512463110586564417834012735180941755078695035295477483093373299486995426887328709843775364097138082670888394087385368315545645110348387247918764158390774882313133128204349140348147339459604324548762608965186843768511960300721823703699204097489057511195858549798886559707502674331887292017478564322519262323421940627620570739861986912565559150315694837169451802042179321283794362169166217969550648574646211013299046245229044299237468256333915932409238803186642317915947754275144072981519157397815352154541466944416471215479771406584958577062256186168103429502446766684008195903952946273345088774777424659780941043033348008122943672169704093388585249909394808283956565042002738665409634919874571823238171435268238360344704898394537009057752690859948051195672073203753921772067691649940258834875020669475423121854643727786136514795831836901226234918244483930228848278690341776970994060877303123115288046668709964961338283331723121498285165294083680076801448130016085223900741683482805601412702350956464983384824099259631467903922766904738590747724166765180189538843156889219215200848461204324434885085394217566335101245603488962186119601615295839792753543471089859873222806992236290587760338837253178143227548744205986753281227917693240221310250657005525285374296353680407948165379635721499318938669060045321374629117091583633047766530104971330638923575576258854616896236924685472288616868710955805209284764045974986389618099217330481683929966489989695075462375624759081016294150836210326689257397022943433330506918611117719770919540901694975374636359593676785566099915514255194304307496824281182243358678031634241754275266688677092284249853191971615164345420047666951884974722188946690944946392247144171710878384770465063794597839565314338267881784189420301425920745457294119068798644947577441334604922664102241936833850596982557744192006374091736430398671754235845172649924627453312362243972032213819121204767693941623725604579304151215093579890720238225038952581436629950069737837768190752039694327524944068166371043312814233913790012075204706080861257453037946546096026868255211375251846297589584765356612920975188517182983715451477951952126407357927826249626882450954173040650528255235106236962952628894537634677061497038387247712112297659356841847542163253991317207858015647746418297496500795486187366060527713237729666411277679289363153365779720803674981642808025122098201396973261900701830348849712290912828296856717002540848706704004224008437011300662246858537981025242711948636552439529718332053975614393666072258685573840380457788114852281137349875291400391398653498279929204493516380531280256329068935237647438896873300911567848692424909200405598425268620152554669224781304603388450946861930581827176109391165563456070650173012441432187729334719096269817641011609247510076249252545258703408858425607410450222423661002613027175358551998467647074184611359394080115858143526790343470286132346546935007611629994131323204871907103432924657042573890892273424400075295362919408270980241264293912283481487947307907255316963613093185720950012434569110977985253221073530707429435309729866829966953963834344561706544261437748063763578821462729187716351510849118108289643594220990219127843529177401773253595589931335841407903731176267604881513948218606577797660182308639866293230857235597490859309089080791184768850591192138887803693269989841669050999117966955124576813351477059380357132357691067270261025312355068030583378343652976182572434297967434069118357163946193404074397857348993476232345591389654019192679279542348393020514219459299347994679205340100558903213273208104994395829454520114331098925683621702690393610707388957947092381147433272172081705892380679485458088790165205440307742227821492736537822908484166741185409059490587722029253988486494602542493353315213651292416648170509414686288356246955329131419973806763481760029258995097952655704586231882916409986069985365703466269495721144364272364753189236215022033404374154436254231305353252929236220100898694836491109761898668929222834999951330115356948651341551340269318344118502150059799942371543085764637019610815733474487981230259190458385041200934376774631220198230673714693353416460368836143685654975295070272206220704954322206108055148519833385125776605866153426753385910341382646048708724039915994557646408143931392631929604628591020928725552291161068795305036325135718892592483951476554515450311345991546873646298380487772160079004935017126594906582307790092508372913416571217092007086153940256670627067061065100158922455625203090459754511100598570846119681014532510703406214288762335658609910673948448238095157516051101375019732557688595422545847661154035738514522262558880716260590589934491223280907880883666169369993469057865773263434794110248360647674059414855897742568839845440960269655218313825645091051389054151423041125456374186415961753374973943702159736182445822104497767648815056581978842809388731379466350342649571737625329670684105953536384523893267164332743063920933630506242166215429308058032443451816980020479044281214298040081080050662313332663397407507480499675039055739959916108871552267779104449966521625067801857330618150927340161741227282616356328128405469687745697675307289863963628969668052946094504873151720889238196876790397530734954665783365739099897310725331364896034599653012425538508116103882131888586526291197345634204946433976138793066692056699999076037328128436842963634811570108762726151370749590801339145999710044230178598479486578111260667507658950641457719979431148727864508752446182429099990415399543619880208562839677527642685210033120034288039658528851569237575926042016864175120780858001571002275970773438630098270834288807096465706467815425515885928842307394687152152738447889179759962143788160587570174207954600195951399550291096126391457985056307585525080652763213496923544098987717315670067893378667155023974241653915317663743883588964831967842591749998175236175127283777204911714394561044408013412290752429646675892564675920107984735840041035632448961086845616132251008913462677910605094116479986917732722692015436274629930856834458843296894792177109233493045189491821986577365860841552167309870035506143241318913277849782801779475220443986938699947065102678851161145863139968031879408520785057233878074366557103097415550891587346529922619706330473306422295306064533010636763236881839471563825360873211218546881817290674627623335759220039325417489361048234294016457109849618767789696791495917222377958704683875847007978529904718715993561033050413179307722116136283459312734038587275418132993662190834701061479882887060542436058092638906897724793864697801516312227384444524891540612094762162506341442825746451285235801031185009679462344209870356886961096718356559342091352419934996829275822577122956191751355167952935677732941599364102778268166076859480370743746058166778741095026323781831141544998177901777637758094613375419607260069705552662054254124161711498833476268436509453299833131717937439781110058626855882732524272846157088322215214631062151581622327705546578379924413783083231746763885021478586090983605400950608874314064685714752072531488686661312938783085839729311435807332608105982017486487737068164561055981654457367492171766256337879826131071688222778737469069101354678810138749162332803001499711069167651463663254151576730869993187906465405360923920031216030478330387820379458337335719264853991025292528898269643117503624633284416563911004588195808564249016526438590770309339392102219636074867342138896743107060100084883560853865326911491044425385542801713769610617850138439434087036090500746000067176191040584438905859209714991306681425308388954256557804936319257040954043955387590224316205519498677261545772449032213476362078752091953725559113959888518113546560036871400754132656437738773428567329537651950844213331693428883786252887724965952684427127723253614354340782303996553471131132223983834270358168769439854753801755039570612419755954344957570803733437777844982559973280217144140140582453953788388713539074426964539501199072503624336517978693871661453920931319351287276976829008907979099416911676070357409649277946771333450800931619787839195201009683044470439037320536733602788758583222096247914603544586203917776912697291542860030145285110263514539711672434870128476816816460557654221344290819466594266963646886928298207396872387852079773220782143880994893762768828808379934794834763265786039379596905444641174283524717168956678800704235011470175762823508036956056235943794235030045567969618314176329773229931892472984164380562636552151835479178672370112475413009804835006382127350008096180256186873017149653934521927671559191104144186486900960151310535731246937239790828450687778618379655960882989383346099454126390000538986697302354849183469707813599225237496014684691147423492201930625788076426917601020810129692972732994861605146863267928159058567274956010717227613077006859149613751333499516385852059962309263001302284930321707603593723347564624272506006748761510653927476844738346226764652878733840515923947478815867100387196931457326740437320312398343617465928904324304775124372558795505746207573185500185352142002919519930054838124125344028571689534160713558681348781698368196025094883174176870794970892205566725164066989384152009612955476142051776909520682011570053512337075383881310688579980891609642495010793204393702327948592238970779043657309415295645476887919506638474175356743626236434417366103292214842366346315673117629757445289980316938768810704006477691498382369267913655657395065002683524139093611092354456194598325799117782663353053486772450981457583573348269986709886020279764600682932257941839173143879973856851822724037969974369870942021475462501961784848908690742378498912098631642810549073816111906464421515306138504597785547797357484718932384256924880425192587478523916428971959208994554073267768309269541998819160962753129409103654323032012292636996501447277241200912792019572107934438970655820961501811227500474693020167097381270755769522769500445910726050907665041416718577224961816105300281031255281756805610170058158034157660184503772187436268563949708366489414203671632965985594638071814884769935260986746097274799507419050163137139173243166937652907563346602351612703681784875999418192846547502305814739910527237000089678406569939476845347986691141405290219671488891368102249353384561049629980527516716241558383761980569223539434099067581075048792067885711723855868059237029967082423505487099480063781862497152812333459938031691679990263884155589931813504985799603491391507718797735304282697195809838657153100867884364036895431862205789256513376171094691930961690636073508253738391557130543823208731885360615213646761810607086701102084643325574814540218698922724038939336294929878349476010530210737794316005607278403886428960214957199354150769812254527767614371199132545344204192791516668807247914816815721728950862496115677761143147308129229799302674934869660606559571168413096231448281709556384182097461001692075551167067688467256422972766035383785789283799786080138322189631348364861502878309702325200028744640209121019587454887676573409404124994883154989874778878357096137039691056460495034845544332242210784116571860815846803021594761737776519650971272130965459060550935009138478440669093045016019144133692169374355938371971526123444134699688422031296642834003793315814421969544934411043577897768786342182602825142534518370374720655818389792656051844587573671967041225379573569901760341625905447446734591419749625343432137872082611557446332281207232369006577725077152559827182101457598778449138576461346115673720940798227836749043882689017754761840105475715773913885407634938544043419908037959239133821304611681011476115887787816151492797664731812927197145592370461352489668682504866784434073843588232337482944173168613552980284511465212160609430623808350473989833561615197481013107241197547796743931997686917126085020467113900065454470686680408279888617992328962467780038061502706440740518147339525904400075091476204793869241491258607312423878018189142958928776987738465050744648473866935331918870545131671267406402591448480413354422891218140533635996849316090909368760737577768899951818535941892772994403522178015101139804342911855259565095615505272377577908470978931854433986514417516853063578753540492371064905123592127084597775197621528659455936288747159583855309991334149994853847995458733469023082412123001220572555055609145472515359668877123103417945496685002084092892878078959760763281407913540140874658820571979417959536220951212537182629699452107512099687463445602350115972113011357814142556749452225709726881049670842594372017797969392022535933850777338364903830469064545868929596111676299934184058110058750611023049016959802607989909799118234753305245529083658389046559989139264599228309614867078746493391738157684250289779282580548724436433513283546019270938565463824032981170804057110181045704708502618005532653873429601581116264041862031317266869443331189897245188273147804998252032681009893841234999195531778125265123937730192124559933242686293305428222249143021106138953707996966863922987698171316767892393312021900973359597217071560727156725154653199984231770390594522374098621743538250341291792031151224156120497244234731944816467546135791150901007292900275999487280281390077165711554520284657142274730763258326987639035872727417389133071392439640164683235730853672848854542600752024047509532579992225678873314705248998057371845689447296003941385352342405657843532687104622900459865183020722803536732747167179229239653235886224560298672301878267854489022308804329746319914624969606526932910460235138328676054947164415445710737223955397013700442096953581754523412680879210586348608673904279599684832058652361828375872903795147165541698491007680576024740129062332799659803266358502203245485232999577306570546128817291492406568662326387524687479882347651403200009707418612770016118521715887816809359091968867369498573837810400475844683856637137092935108398888145330562382537539767600184639288997586394803299861531616803264535601667952130401073106775487221618982472848544466500198045840669337065638535910440062720839357490347497605963609987126734048532631129711422079580357267372790670010192141874023115147698669912151262211199122394161334027850350003501827519927949985691756865131396480233541842962073339290576346231684456894753106468621480043079617058630294322811944266300122085957784500351684275998467150250529657488898243030231714976928852012296625237754982901414239814895118658224421995364431828321802252879085593921082280819483092655522295460845642900644225963409428249218145744510922166854568952187934043426475309904320108658672982802235585474025608689718406683929699055364462132976511471216735375672590366985879375071484332269847539851746779306418200904057886734194336281043257850575826113562610938322091269512207047629367437226007024180302230744038658562453315933118841219308068441337323734451991001369153244025846118191263552139154322961803757848522252670502135969261754831742813622431721241620729024127047697893261865754192344738348656237744562362749234794299358468832030579131239623104720820379643997335768388047638325317218401265230328498394164001879818478887707037705601592170680350848070088038028724610743879339351044902475019422789026301532588640435235334052658149488882464298329498703189786786885628164563404587004852042022805475821508497739775264373302121042009600397130932975075634595783580952295849314376204429604085124584235349915340617321073645291559317342544567264890881661512129197416238534656798244658310388537078800742814557186829755439665367393858576380650127920602166506093092201312777670746057146724703305938167852884405016330277609463002563274925802723421014086434909055653828705334436567372397169060577536109258633313527798760751266974427640480994469314047320536231421078806628877205068257353194043257944967766244330690297708260925416354813452974004215453741269942436841711881415675156909737905044334429871442218476231241683791861474021136855373564567854245507252329405018550226983860206221370014238102427428368406901709797385812895387809148064225591727946577590753765792826443221333713185348948835290472864441421120238243018156880567571977833801124062357915636567571733183863901389610823792315107119898256587409835430811571171333129256099135212492572744908566060459548371987716067483197108216278263938591476919820219880919881199037600355016720696424760564082466107495996873001592102816074062917010913696545899154850817733043904946947309853076942568032596090962973530746981294084756348761287887520564046893589280146067441217813968656394363897276666735176538388639530826001301207025396683661027991816267735060753985124138888987096053885787233310663437185920536546744559627005870905464013085321851510730052419952007779912761167577537877525023082812217234423367217111411782848634021982622072173423878579289457048290155733527457232440856511110292672664710888727687843228023476725443624148802032217204153722464263919100196198623015005484197184797476548282465091964191900617072872270226864476449933505332031370825857797975671834929635845769891331601366462059816618249041844585255100091950547772706623421208428295224991194000479840167568648942129149618794838609537639145168119159055404557800617982480415334028955891464012877506772587764489880460834585392690356612621765966266863867048985546488467976949603822043094101192645231508931658926421768008840152981033866745903955248083357898119268676112864177710546641628540975150844382729297073726750398806736518987492894897913898785332246626759206663710541575685597129256854809612342699933412989220635134940167198561742107963438178367900230752648058954322812435931556820899569532003824574179802567593662570158308286778097570598248610591390422418232017861467168852172724877764650844894401109200898363548960186726008845350428110887932893414238993003719174446875445835141164179072660390484408634649190212360620941785755437036033524915974795499566932733905327801138179748659104510430841884092157051689753611873913691962359104133537721049680103333546493388032306193066086649813933535768642433565135857730886744196657622014335045185344743254145312526263183817171410752254673871075325844768257185324509746146599494860276446213601028751514060072547245170987449826823080007962156967441860540856550217820687169640430718960380467030372477182215959510145833012208597248990922460873552480709215878645037000327384390686236610484566870027925529481785314951319857686895997470667300355146703741287482874038556902450476242253804215516207632202717691315358097014694113076670723691220915483848280152860037545785703115719454986785430504115115476418861832447939715758703225225867291409483508094686287171735656760470422393440039223798062990108227550519922714656230062383850893813616417275636764716892152099763081070395201095156146294357489102996012217508523236038444908298170143194589221690469512374970618797319888253073222783407202598849249752302241185896090967614923912463519061171107588233655800451133381197326752397081294049100150210490474979695933627196918826364580589517022350283634768844430483240087418766922289799424775273989284650332881474100804850139806192540488486025129218828900278282875745202287408486544532090921780201644179474655811271963838266106756881345107732888513220051572772681313880744892903272261605692436722111111649063397819351388720713649870334791917944455082942315603322186680364791008788323517523713028111682937835811668617401791639395325202192501144879526176011284609587193110622944103983027763768456309630010826338300535733088074938341920634873175757997688856860443571892940855703295800781106187434572864034530035144147250108391564938751511499503084077116151387175193365660038822141514174414868727901925769339812992936708649859949686663283378458238381924684723521607654851971028414944632333431207826814623467105780808309489268234444825261558962944099778458668659272984536037645093501609000241560972197663395024861096595116115135005617117317228196067086003202014182485803910480410439039639892602227253819634224864692903295260057032680917096254265563159240185252122519548906238205282632222979748554690248712261867940086790799037727143748332450178716179446352203505317068758041250475684990146301270555637917673300832424790624621172397822800485504843203790380960236389715531374164056177112950769540594430407158492221602733494504314352914473066977662107479430322127450248344576893955404276093890801466877342653617193909781408690477388443800181399851219495021160109991105376620347467423035677132161589607830702490156213929044408180631431641355506897277394285226536353942801563941150603343976820880852792490399324562075491973630028474295542095986432913565948085536057238680538969745014957567532259429101146887196062429125077914366334752549188431441285977062837717443729399149493057047740929688819886675198454597643628601908037397198006533158367341229222716041745812063782948394046612296329419510902223016175383724177449490611041974356249764107968852658421724479042731944235371281847910973520527249078304213093327834025659076141964929691317208024003701911648895084084242745582870551558494395232047276420318135515310901380077755194273424779852055070234931557430294026149697308188772335261182279702861110814979862639486223289832643045140313857075756720917918696373525458312055216370737005114305470151935657859416138886480969368952464157791835071018957447066405064480992221401698157351389941326436310348114817026405826423197503002827307650644051327743900484611333889612787474513085043433024059173938478282164862287346746041315541512411744105889411755027847762081229779521384851341412624878183265532073397162900966739875803627350106114185575498107262183157438872904606050675605223547147905921733444770542916002683708318864392133796407601694127566663919277258309338711772999255894260800057576330890098671268944145768076154242744126627874577891993376217375740228743252483925035757249753489890450465012064383637851043904395631117602944788478225245309283206822286577750935732880368887689513706054553109457924063262311031986458579916779786623767417528293276684932229403134374533901717569528056182941635373272066502994778209769241272558427824973518159133044358520395528503813232020605811515168325314448527100526774040940271164210573640969256304449342946096932159815131546590388963771760684464029662304211765907352178839867499232844048352816820142315728071392970732825476054552036337994563749882237779980316409298906594101639991559526755719631965462010791934573841049008477570524239051365762614003700264640590048984664185393978889831520562665346304191379618723688005761002257076470163737825577307697278778639051350457507522478770880822439030811518778656191265214122805843186123352520622723575170113561381082479751849993082911935361825852661427791251115852159062795861237103308398435838726277080212161224601561385272748905487505520342870939836489150187103418488413075338617674065479674791318195142126375711405381920977569175935042854923806298270773354267253116017736969659721322340581489385630908973601627978748593413354682405419947309234670552126703243407512935058353448074949241279333173342561552330606695578207862469030629782496577453170306690755245209128107887478517733725288593933855969406820797247567481437009254407844996228203181491769748860344468132799288470613292860644354707665599643809259502127003134913059676552841580057364504777374821640627029910035777303194048689152579771701124780712970988492772226390159882542574913517863075226817964533719001659109973605785855326578417704903607025424257796719867395717203489108362026984197974138525209485432948603574954989859614859749745676692891087482658044069493112619360041705708069121523053188688996817268506183774214848091804870697378230109159712091823033960757473863432005355621057007476607427215600144583019903649175916469878068396720546971775427581483827156022763992571173609214058242840596882949463229702566358609413751206904366583238657153832791673821543520006381443806469148914692207940097264459818400447229992116376814813094485640254755210641863986153011919641241593641801773293608513840059716917665596635534387388510389653465911918342366978734156664244892855473210823658055276509645502334590641456948008410048441266477000412768542418426930483356113008588718352998744526938824768330917195131889772105795434471413119006953607112431687545319701720020567828657933990418328835674765726489487011372096338675482932653177377806022794081883660498543298771205877528966566627301834512933061732321027831518609275840250554827155751622423788014570103260288090911522790147791884441754619638635368370539556103431915183820885427765209974709853792920240783406737541664502137464840925325576164845480583112692884983371156994825446806448103165709793167255575959618628144986418618822974168180588287264807541471006742990864116402668296703631725885775930927623223099747421977679023297029864393996762333900715297350334753751077903465726388225623812764135662300182785016531244059355422162113352263027550202411085797277078574373692255777342855407445504580360687543077707098654201150848646267118016108522827646938727209414816925748205303792935421984224415425084309076601155647348161331594803777953818706600028853538138626795956975662886634580784588843878208383595192454788698407239004069553746515980493638274128857991048584755596124227379126587455333628037268278186387457383009542413080908393217852243070833320353362210065164351147720347605739459483056995538863244796141344526884233741787173812205684842223766639258888592000087255629454877913923179295095629977489730930749401297869707365566553401523564109492379464468420798308545282062337177894304218358069675334103023688206347774726145329053972751703655620559877921428782255277029957060006810031884764977294469396044899258074535223861709247769163066660118170290041359670791761951072502017068720223421366388910668065001817886716718668956935261634734269361104991032490123173367073543956691004747989013265349150725167929562852242876703180637470801787295888826016894229002008164475406326393768057285397143804692036718021569313648740153657742000775345306854370045274192028314418186088150704532935164786706300390250167399059649791135364227647418998296544519278635715656527148082851899696480003810388424483973039187240031315467180306242922416348577043413768599791755193142889451180916165350177788816392882898754380003455537866117962125047856407845427915082370990333252971149049218549795622728325939276508092207494708189875429029469583481840121808862910602703890153876672810039088029665238861554355809017434241133356094826896266729209041203178736640724024477592167814954298413920262253631963904836878673387332822990633117423690269938770815996244064244438945192322123461653217732005382880952772187130819173807542418969164602259270702712525930279267776521569771079726882081706890514065854107026886563312067430722180704742312607353838318777256671106598686242401298335621796744012725611283606133830356059943734592274959034808065540904120771997785135000930736865527825411110340801830882552177915801493862503964996156312827241765951569984100388082542343742428229101547005583042380332335982942726315127329145368556390772143721990820178356169547142051477280751153063022333460763407340858271156383942077569589874153137593036531259299306427402468857620454825618285723856016678406486918949047063269787070152482996818365415112303811528016852422919862193090689631462528400576092770021164686499771392909867272243243714053771249228855372270586510409860859622063446078983112241124333741739552919302136423816967674277836213085505891801927292957435614780164664413425906868430013499393236378773843646641141183784950928860741607143035367909143552877936345792549705295908738750076669274727701997442975428380086083167537135339552977876016954688953080742620872214058789014358188228791403922151656796655450463790671956919406727963769612523388257396004804800975491238064184298637739286806830541577140426738631471299704235755027166776595321204295379489664380095578122495117684601534922494954666808072402940309521677765381157273718860215974766199842401309372107438759310540973075106337993705576098069994119990173776042613553119697885684121208514147384520586396777754110576294485800690235126491213056195343044325686419673631336890893872672482209029304242815368962616592884194233077895317699771403035053877303108485117794695315069707766798252106116479212416707623033102188290402776288090169224321729329658565998061160963803214085799926766720788704177642807443442111750475338889062862389295567941594607199702078245459935300464669284706347521581823056292160003587123135805421529213339641206682630198389822257998191695731479888402579865030590047178761755323208594252602608363478051533441876981254173917285695463909847164913028543882464579015623168226699223982674987719347927845123065898629599525234877666232555264673635277247215849467129285185111628363276474506858263792677089898386423396897078633364286132317732994623902633456135879982370404324205041027187734442962741519496198728195040908367021813164840279627945416731471830761620672632330411762892665179902597305203128591667834141434391450444748723099975942588894339542297577933203828001680877457743069757411275296769041460233567697681564681223599595486800867979299905056814073498308715510698168267757826606771959904719792308359257020889989066071460958621170238682584683742624347494530758465892675849520642239177714399786142152901502504785336187528486233294198705999724475072591360385279190570052866612084264357980770727500147787928102096068875354824277577273473079752782720354940173778271221145436778903984771659252263836860513431314241268652715674336547442979849644647075437254484921195330554321160167820037114266220632546520225514322133180663205699772029123227354014769353068007400738884203987611837573402206939577545401544280948321964401975685983654300761360634557517316122791818146243603718472753288605458576294825488260043125065001718737744971003774926377085011392436620276123962410488032338793077216123870023649970751779311545028937560682689684089006673288706522626061978361888048032626811765016308072762543042852090494495839764945126903847687172185731457423954751588156828720595798351339987529576852511311634297485162965864403138015119773545480174354944960356647439863795272932463394169434925450767003767686044769891782814531405234324732167021774189063271478066179755829843385584446286133508855831969551733294448327628293846973167180857272962702186504559556463708733240039664302507500756586103106759420412648787055634915605807208001810894740413829498751514902319255583280738134338454672333334498157852690877844520150833993646354928281366180399251388510427501157618159223658023547636376040849319646879512138838067726512025429715417715683717302539366492070176831618865591380794139449475167525914902379517922993553636992094323518899166652370939699988369418244417650709882678874711775581048904616710537323896963977363304576791995117307828320311778204583928180068886844408839270251619956401192303774489202557368801870393128477846050239703163810262801515181286077352141394699680740746020796235274667960349298979925043532910618121563474663338984022292608910806862187660900580423989760087218116038340589851979836845810679649880898480765064319816530962719899100506881789464017214158964911303101084893778412024934386580835924962838643486266844898824780978244430727552738979360983636906466423400864638377854044106944385155620237670141501895546829030503694524407005792724578052105306267599872764808173732796787384017928099496036206400406130317826178271865316001764254689663419509374787421751645168132527123039480549313358482689787923799265935199079963189389870926234728899456994882255820770065794896080043994819896170148525747380270958544565213807296172606783101577221885190914820861636163286445587438938828296827174922182821538278867236339586912613473877839771244361499537531138231614786970616225842626604461376066931514297144688188359572080994954449765544996601584333233768816812657000810730354807767292922525310258979989191476648141085789459174077244469945616222019266409283140952907145056854623120190149385859298619134911140360908511792100792217607868050147805769676946531469762211037597692125767465779434864466033225481235044830295364097865068758890501427329441471264387664211627598573252935132380420407223347186206712168927719259597205552442151736064626930698990978065674820762949441496309295419149382981021852354891205113819185432901618376862603333577454284181027727479076484114361825276625423571698697040884763587558766793456030244083838164515053756005872439512100534582866662053687265351450429604850366703571203300792927076432615140180663791585930350055719538178610138001197603990055792656273272529484999801888758813428053916573257371917804686997207873960487769936581175222238036474410874834735282518029382057140436728253715760890439725803605580923269850347237876347556525525610103517028558840104920492917489680899201158169641292594482363575188056322763552124641354224404337993592357906555960493860616494969730810164749466015345659425266243290541982266536333593305636382749480539657727379287266258126521172469841331611681799324460933602152140993371621812565782004772114936658355216225468013920978989620572620934598741295522982981332857783841560464479704555632825445366124270915998891125723611993295136025374764839755321444056694848538167905766159958399145781680974786145418831699115880135247467707982920948157744956546275313195734611114496418714460407572636086889621755436101118841883691655866503716318699266659584494651515417768053087162357474219613690012918764168982924887250508388365191317721942022832173989202668828342277755073740571750657276903058331184350026942398929875393410947077718966024978705509956146738537168594315789329594756086103165928056241738792917542563094233787958223637433256694039821571138726734395952515399482095213981515117988338708779034047421645629052088318752987731776827260171791229535843114070866750133551547711576270902508958678063273680987118285178451326187576861415689591198343998739372432021260530203078057547324794339196654844588604081474647354736285549887709534108539632031648437750907012468343573089515147793612283998737875719175718115129177490981547762544013607076574999733584085590698460395703934536944804565584361164690343054335976431740193054549398186238723936253023239868360826497093905456339622560456737740737919939353223962392932398791232442624713211502163948202503738583544536871950177133579033969126633797793847475922228508737725189941004294768807178379589065314812494558638721206728426248807833644602800974124465218174805055865159475913420230181502172403020677792712400643625794295908719280302925228780918548038514000852562481585866406760528596340342985641747549856629372000230236758827868261897679653914748067960602873491335102099896739400127790356348911013763541346812832314396193406993076366917645058087889975472013728116999738690857247279472482660206087270139799622331042491711146936859059615678242723029758298080545288251160939713116388845462291161108016953298828893516653816852127155845472717398828254564408299189658883745312713228705433111284944050737615530497697572536316028813764193223961879331870432548848764122953056801883032614418647683024494872260593685002005593400809365498524401371616103993320257250904386802106575093789938901228839786543541761723871281645969328181869591624425831012329211464955799769404966878368481526107846385474704733807091332715634858087152862892349379713501197639075739146857944405857454134827430335803866408855177961364983590917770641983149145192687772355905472482591243821748194952489119584722189010966382212593454473751076648016664528809904974943360340390981303407122137397745664470669808396907689590767015906864315333409027219919484249122015725028423955388826816436768863053918670133152438744588781210178695848381239510816462018122426761360133930524919829739482688204715314922777914710362138132380866400325915605072875402246250700909590420534918656291919559933526877252552848346379199431590904448301665446705462416505885279512202564189911653789751238324590085779147470128690971757814343131004735975412280107664575358529749030495994896051897055601497510301667727127554732518375220064619891292876455839960606068229726733520274252681156423131796205034959931799996741960262598790366771638115640833047716151337935160791660818380255565234568180706461442981060939798637976349735925344687608281639417154072537883022473048379161060453761372321625289896353470908453646138017655566164738281110654365420968315504495895552942227717917684494380567677532855194393765792286830329550403034822606849090831227571706324681941657601419885599085766909341166439718316798083156124301270203341554548020478253158001470337798771491705664064517330764201131326882663582593646247636996090382859094628023978384325411225634680598415112472927461700653070976978700915706571225962162476719399133258302047072209771243919450156239766917579811940299207760759794728126711050332507991482537142820718263628287885378480318656003267861457492719570410942355606185149200092838715442864565674590310521418741633267035793002577776845435922339170480983794116005387239862798130278698478220824431599380482819074217001306797513537505280643869260461948738999649262081155929151132452546644430938747127841043512765716405360198459682725109569323092942717615969203571417946318716481135945815060207353661883150052980485490167245584106338933478135664304367535954615959043404757894506640477589545678160598403691860003522323752760475335698104232487835019762760636844527756532807102198611740042973077857385796113723684593061816283570438225054070462057263002199868328682152863642590011235950033597063275048637084463232008765452224463381040865250806849938639318203059507260402140445292160020339213639916782288339228378176585881565559148806969891010449522018855628463332750912827010473395772213997291363610766661211494476657071699140955801697808952079078663384442679819892424673708303192882755200517694916518643176139149203034963507902345966901134706781113436093130234818851924983817889706529980001107415467372250555944035822693892283273120110016869460562728999807617986210506212420811754786442397420003296359778689181963820769174200295576031187404532736087383804266965131828909463600289424230187767128022467505776420078203348025144446684953163987979024141694153704013603320391975463621236688494667986751360111282298943112211203162435327353004407855944287933546473613783169342610525813884605165685027148026571846207033762650242502552499486692997698473917762843190221526523723709991336501265343315113566250863626729145216455704689503150523733577896220884553170649621093616711742203622647013506102385076787242518391668635859051308906363315893518729704121432017485099421952358179790121529896014896830777907904475588756931634959592292542065375145845662782379416859230355816666653516077512358190678861854761900808613616378220240867347729977887449730081436603809975066462739754083260414291478880912362812164350141995706777840477376917381758350638757266512866820683306686015227269636225111258812086396024001056824799825569420698497869092055065126943786357208663389718719452093099281150881824057999902227280442629103473283455997616595751341272551836856946842774039757172728460300092205892729722676251901994930240272540515895807864514272295618875988581042416907822928338750550168001786721802280230047619414464893795831587263140693527707021396010506298441870159629047628116843395412197767478745642414084331565748416807139545103279630169928587258175109980746943151182825798501592490096112898244721013970446623185526692407033661623608241479968436305612824160234961948158105214058305861590907750174401420319584714094113047109580610662472296293747180259982432646952126240999136076016917515444292388948773409853115877764592776147448094186355512709213568040745627121240563484520841065730814227423583304593165516633122045433404684141953805144389038820854475805254869672422593081467940147599254101360296059194291338383927890021198885355447557255679764886701801114226598281512384364512540807454097387252489574934739587142383102653421914958850768297445781163206503057217212673273018533257287898818376750807065542653285492431505963723519801319481096432288091586573120826817387674007191352500766658869415418281164179372071884000466346566888451161886363122987071120752998182338008993074591524569736868932195367788139518301226356936748086336147522477024545341179383461311931558884714636175026562527765732918342144324315199380003311782444140024714730505008746899486602366364938363053704076805800844231861449817618555189516832205736688948961166320110527338432440149673267197343958822804207124526043154758873400529521186503052727262709634876328914461230876595596250433308227277021918916114773892388054648233138834160351189896537715040691568531246139914220592800524596936761389923158650945250298960301894793136573147296003661175498451225488779236948450536144390912603882456111754923359748773823507937471949832877433255218844056160664153063443667449202866835261143514071048555397194342056666030942619079440337926653439456040350941304811661789762913853924452680940359046330702501260274964731869873231835682017029084780250131224599598013499715939757347794822245409482343987286154467398960054420309244791817496044942254871324164875751771015484402307835775788027093960199948669093643888207856063029065098405373352783253546375953092387442099435297116045497183063492738502067995975148785356490899548393346773789518553690622340777270257179109311101545630266057076148808805405750448364013174615963120400525763237302355885647334200447909993671156963668163839035676190818888920756975110117881057375345862536937417012923559491632459282536817706952779322849515819408975990498018971564343456584872331480720209676922788698045267700373970976039353071310098486992604491429458721203754300011455319278956315176346673114678883268938294980897205198908682226130352563341274330960006503261908797540801288837738843892262252134561154173843652457096049528392615029494010923865688520850967281820594304737485234086211015758404735171225499315903811250987748359514896517873809275495240671893441844845762508831591447457876209245664581665179533593205558908583559139812497861654351031805644961647576482924048922274551377198543615770328284591851678832561852519095211959257815255888015301923815136308299906544221306701045554269802641587980465728614421885273054371879490785255492837106765800517115996962386323838397929321732985755876005847249078232582257602902386729804296804091533226031399972647952477028274777822493789547651438888541780144410681586867193786654880127458213414480393845996816169206952409646034994502878753107630429564151204156780812262126306571806131051613443991663695993626225420880669599992859356419438202597753563997216093061469564784219189259849759473923013900875939121679191735926552549745407585412210698321985394181960689628619330185551476319587256794375475766487025324576575761432188272472963639330711475833828873147109447166709880885651975671421561462795886954153193734184885701807617134163824352812228594164790307382829487880111054395860755088881800778417856772092350554009760313788661047724545675355261876080468722118298496734590168300275365942672903080952404821320352692628940286624671586293480727536582733522935004602436926458647315574841289677345474623674011606388284822916779923236412273080996576431053645235525388418675722723761028149038119226870768328965657288448185016152012990004431687410463566389576692172966518192341176290517969745724455185770714340757612391333748307344626203444732360737616800366281398967046746774110605451096142001529183630230951153878455430279996868455661124100066477265105382484242946470116323147730886880003833670975812846701197749974317639035773881127727573855745685384322897353451342495717052547473085178094470098005102725825561080577993481777772751652829619004873115553300121240284579925811777616893993714343841764725758022508983593828181155952315220870522569734434089276712936290203889714094021182440189516090120769636614255436200663946972875412338402256386775196920158773584882390456504350139258231648092101016438724369432841822211693396309147421056217195998511305321143760883323739274750468009231772853621299988407132478020138357288394645901937725143632962517199400243152391162524017295124475523809218785076936199182217595295629261455572222105343568751513191212258731341972894783563693044654974231346342257553815203319887572389729970526602149917512888427306279498936849386643818938299228849451487577614431463859183245934081227304012111898473535830851378898140287258644051503221661228050685877472832994993479604278202776378728889385113869390746982859361418169249522975262509546282116588113879605878403362049513731298583709220016422957446841358978926669091565269099901342972058652455079964231821855393612892466775548265564010027396157409789759947148279686750009307917208819319623828364951212363310210221119120054281206707958087092488803903211039815853471132141961075745057728295905919490804818799343166601440294557429064064453230241647380642760729952964689826578348909961602335849589203124566661360418357293879891677427799913056980870960486531078735877241141881453129038948264412197425297722582644004797434233661174898640367753073436264096599688448187459367146791845582637880460299844712719754049041124052824401792837321705992918302289803617124079575367844300186818579189652793119466610515861027935575607888072586571685248158143131689508932308232563762971547379423232214332073746996494800684495652677429728015297402287564317400368730483023558768165373788077255274227848561191461656119769273363932478209714544858501090914426533998256255272772305637186333487840258815784590818152122793321550916712091056161881659833688831265458681273504863350512328319752512582417828717535717653943366331405527695822073361695180466465799716958647763178935175078887180492775550373822392483330609710859026908656865011692845633136937640385582728188253078865641061219871010204721623974697106986696918537003222433536599042929378399801039991356377884163914528025956813154260087571642099310281388199303060765105089686596489489712867310186901532820390811310856309752493268759200265277072644513353210348833385160232717399785009718220080904294410064298907393930428203518219828453454704145871702278769938144287548618505376081490507811347342793083784896537167186787159361529106522752896698384694611070010245196024307159411744861252179787693391559157409627769128492574585530000864916902730372091768874142991315823724927033379379931059895607120890513455705278080737055242340412871094044127179847768062560156744689569429632661402215270405691186794208020492130192224675908905011145743741518452393104493016471326217385563088809093797689342856037980726634029931037072812029660863019973898979148690575557200531866310085177661968019325805552838081859986394523513551136966534490060399521106566430103245296377938139154685917934351139542107482983500287229682286271049248825092304706218698459409892310618817583995314563380046213870357971655539202521019239750679999033940796040155125338817143947830710701336253241797652474877920581512775130225206948142295447245277831129831374577888865946938241973066487517016074847103014923705952252552833951838364236740475142980625326637342295348005361293788232328709865387390664503116396974656748586277765169299685200429467657883859187614237656872895175439374990266489456897759236590155023881668691081634792771704902866019708266602268872644950424801323357369251681098169784676674619001186416247187881916730982289146446786194221728894344015536832750623197210253854396493577625144654459288031064062185654654311286801793449000788072445457224702473672726901218509054592264790033011595202064348675854922477747711481317862658361797371403431327630501342701530395330598099121333691432017670553051544228939060854194354758513290778906127164034847042384667454604174619308651019526330822682454943932138635483995481176373942015286304963680929233080354630054063419580650226489838260811070449117343088964665901326466190541007300077042338630749844513351973905398146045078540341366296253032926133737203110785551976810610519661984457945467021131889896459666254995200486924170442723193264198650945608529033880709230674221630231472363525808348092029510809693562043034170635692198130063185105333610769891930543743090934173304099475738362380055036854417115627220490248802452232345510787738122514254123709550903867417663592217098958561397096118464250844847226132993434324011703059896240835012374755356723601539358149873792323781103554964334824867253083057430206490281831064807328093877677188445900827073119508157958918943550392551287980276104265519094494754534631133899953177142044041844576896230494092277893330996545471601526681292456974631758031676533017552524561366527521116451421180657533059245608392130009293168927918180981847063310812937283020132183022506454503024493068173673426272046105943242703249362165983732412047170790381901119934665690154803468424430696863542233277049982357374185470395102713630528681147624510449736642723112116147036743756341418399878719596552906000116905212843355067393834242016775495736236065239191796202743104791215503179638415629098397250498624459989619794550895917682971097135138919934209577291532574788945711494431750229000848420390963022713808482942614130243060581063345452403564234109436609042452260779092475344770815287353080546414085093714224181939303867951338240071818383413904024698837880996956608174931112403742654787228378982284713865587230048722559734934201894988137817331815795025593552395130392914008010261603973508888821740325261118712141572733624047527807585269847470137347429902449358233689489502551374398452334563337707629282439424452958387463677060593183966461607975479925870224550370802700461379395889741058565833825715203499794099498917168424744724947570114451158199248485334750489489277351970396655474268875426505251301398013306933791572372184523905179269361023930361975128332427836799070682984159805389517654509065140826237925426014993285537362371990605607204386333486803592766094056757963004621779398916939675538711358500061296175531721062694503813739390860995340665840490716625475011684298481094332076110204881283069440858751209525195991228144123208264157276283586762577679995996259276478796325255223223646484619350658669080685994733841783930126532503336851348901112807813517812287051780997294089848310047280727190045731987388036121741759985886994603514711916336802280477415839040440378759372184501835088147523087521373041657603008175287854831772797855055973535007748059998862613050239132614237053066314113192244391021853749171377605262145152203414164878126670890816223539146105206352745509418956686908184044475057232445084879672990498018474422133239699689338698120696864129344857406716078352248151520313223092772297887454406431052826677523677431286646372772851741060053964404240604766940942083598543985146444359851557384202996726106407520840656741786672450884700438582155707647504930838596938418242011886018699417652721400245039636167398695407751785665237667056816410186170914299936082273513170915143591944587540682475794338162772285634727881022075589452517103180056766542968376094157662338583215985872440998365539470213849284218231791769797231292606591688703863933151323257769958374429028404887703939650708004001896245700660957859265818030128368576230487793442179734665049848911219527045105094221355121165023575833256962915976991350879940982505660963087812226988981493610501049455766716629263897481461095863206921915173235381505027627353911798674668783781419307635449265955037000304824876543094443774063320871921752922974432254461615975548877901966348413266927164328947587383978735117255859142280268744363729124855666380522043103181508802695990181351902716328043384330074124670445228655026305560786083151690653477196273523511265651729988846698690607332396183834200708870946269121563051230732288871158940138148375832979407324041894692639952688012358103937996249076417053194964019527024674185759879717592607293278427435024143229205847502270131569987879831546910119652800640236084678347981578418378484068132224910257275142323621570866059928479521495645296232474214895722367908729345692347912575407528494432562585163651043310190952378943299688860505973488070475974793602107357258604026653057338272537297464732287033288046014416992930335591520107604040276823328976899460455533712305542464097292248627268087060750110778576329829637759765722230921617940482074011913095601364900035775521705876099651122906232726469308690391884376887791390839111717193962177964240700905962536905220060160472563520315831217868482293874582035625668743247301635757168939246925613698014966704649333650144263770677324722570972763127956417549178999599891951445625643361864974116282822415081370641456281934018139887623613816079007760035924593214627602904466625651638285547240334273258087612615230358761735666307399980286530077123720515343052043041989082472985209128163876378015116707909898003488623722443879564668870657240340715524903467933696364932926179593320117582462589741478562366584947077336805407789249676867573543884088370645534636690032350945202356919824133390343097155367494125150541819202460194123598937672816031714655890121822212975503432635622362066238007103027972762274174228616709895038467534941336940553117006176712516400634653508720276198823835851065366360937862816320295667063136881622687569066124657941271194279811072378070587672417596995488927727833482822997221850829707465514053013746917090425246486930443574568870311219602780035453686166327605664670556016919380002047827735097549732142061936277438046746182209180284707548755478949196932057919413709394340566674695355121156347389778271970924910413948237426358265013318902729839363895726481594051584741379816999788014655328029256647025799369118529399852389403379094869076485631168901463519087388522180398138202628903959829612226449416540501839591950903915937007350372187586128224176683272161888350771600035574874268452328785850422324850713436316679169113447164939527036493684451572639825051171427162394385110274463198554282973199169466380371081354522338875919692867788919110590003294157353657406811731149777064196132941677501456526843701844012193063436562487923575133635151705110817310539275149452189992553043566765120984875378601732417417443324631342722503004211124204321516270689090175946811205191389333818549646441749804387321788156869804589415379809300180375577149385264763503400493330371838154220389220098629159838733068150088370959088807321206424569277851414142849515089226250035153081513893058276475005696927013268223254592450078120820742212819676174353371404489622702505521729866161220684658407414371360827331884204404807283537517854653570524577695261075567798982048246034708985149399323187272000015446806996022100481638303426089009285643510193189393249874691458160116530184973278272931195417286886715385995999385516192643989062513356914562934648974032334372736923561211283187527467268096745067583318476688008025780256098115825014407291148867594984628122825055703701526252218188957397331896660942449523447957730076509679839781530037369232220827122205635217150595471391381294424897479897961730964922409020271236334077712013819040114064409204867801570646063484737610488465628020726949627046658707179069607834960602242905412403223398875543655829929149475547181813991635164943770136699768803146512420408367941136009958828942562890401705074497144738088349799614269378076313387753229456243041758385957304465475351856126739894065262309364690818959010616761012850803317644443325771356007727796614402744697684366251218048014440375236076100499418405287024675248122307245184786634188294464697132809406228905769509089168019925387476349429272064381394743179442883249931340313129102089443645463096188202621978741846184533085920669883302368144539871861105313965728388779603940375356804792924050590033496624170113000685030396509550381668670608203051494365351427824089608903881089543085285585000407787535116354520743166742455728903566797367470473078458405639396961786380276224731387713361169080876173520734773807554995308856282853122324551696937100353655188143964315355318027016810861493615172301508321186086706179790240745081330953163072091756278897599289846741628408524942789562227441421001420387291153922733549056054560051493706434485377468913009097161709007736108682006583147284338431984237450597218752682694786589018392779575200128268331758830398181625231001152303950316079306175800032485835192314241739263762082935563451592471710190178436133421106193847359517445505972156290467236254953761496539110077711377563306907775818386707966187081302506002686064901538170454036990127461936783914320697302493606081770020714641791297418933470257857794436246208271989919746236675107784511169622349176360277288657598959751682698451789245134026966595486463175193016089741722202064266373169827761888371919832948279134048570510586422049648953926972745619997161250568306212423849674992708159288298838234108407303010903506320211383334895900294527300787995261503453211824728127527998407711959279604107461443895122514129805000038838726950637074084620807588421130799047891348622840004681081216421168283042214818989441193741126326290032911626499650569376554397857550968888408662330326040299946252544091337924531579778501971307338605158994663538975547060966853101865539385746879177816770423837460010063780804567210167412453590435787981623519031808269653970721575051526184115269656429862153514357162984337333243401074097447286835462795950143796488292289970319891071975582674865889917543573866542062536938696061126043434314054443629828513133234658142777544853501821665637215352308287697209842895495458329732724654825577504642989858948676903582927977754201019063533818652211595096789105256829098641409120261845571017279735927776073060140584989908997860986193727434206312585888442378673979291210830274174452806185471225089268821339408661807478020182197650536034773612245368739177278792150101998978844343797721986186857920367123980863123372341062518768906389478310336798218500213901699978781290967382844307864600357014871169281298191857591134314438321336228207207044131534385339470547001258661281950273831253408531247193687479441799646876309404147194019731695820332556325115853649512520945378021053565948388012751427068043123575588160484250971222420457462710512071272083950788942066010425762563975679351901689968350910141073849522971107849581943547203447378046590189826372937011648015456364569183219761457424036031525002645007428583623023240179044828024121248398480431332504994294332600115066661566104437936853686816636173747659771608959309869666643896607192527595718062783128618969649595366507983332902690975759950487277534871865547978255032518366265158411281376492487412125086698960359000377275453340608335211049705475381455297128656668832641885117053822338692564867434232279820647284915772461829865418942086782904033641604789235627300017971780644030577223342332571382547980206136530356977276343103912829998982365661879937570208964487920168343932772310702646918492451826746468165882079485781292620949700980379554578011642470391680683213760936455226805742341644441224722076921606478026469360834597989978480187128384160136253558225011396987136267987959908481613593414216130343326281075558392485603444665462356146984681842363998370982708458275576944815067081792319196453290233319361969281482032539841161610878573692780118879001586361046857436434500029657008939055383872313495514499402896692181163872124332628991636058773784105003971233301531116388765132565787922202906117871785275403491621167379198819135173191497153790545961512484632275472694210667953447912177488838504868634703853732722897126531538639344800030855896381983393984644774027202552612022870012969602649407553464607803902368481970429158960748032018789582090123038265743059379516638498781410861873600967053083574670993816241850827776993742536632953104171879581613361859084533471233419195159486254897383340172207320409285683905077424029218011204291280703658035271593329929611789018023884698225309017896555995102205167958005213002018745889956666084178960558255010787167625103534408541332833532342183497922275245816373270312576203627971587090818903224277087908118698530880766130764188230534963112966147247455268335453774403366410693091256775101076206356945049872552134391965787472699151802975339515154470210640935617512934967875426551601871814295603853213255130865158259478598478931831568141798975953228556528773336938333811830908318163812710027089141449320328925381732778428906706866370368371501692877813896367731427335294501226011014898558114153538395547521860169694659421040960290662703442180051437346194852132647324493649345139664971310923248030613102980067108543376466464042196027506403932598118016457426369870426265920597486105855328095542874005860958604842591136521007121844823524869323808794080730002472733959694795893008044633709670290292351414794092960652488165742469217018477711116667811050270268700736411910444995773700873139341487987887236479330462147289713926121896946953681927331499925633965672861148584902678399036641000655653862296916230937883329868006104430287442869976047223422292011712390397276157900213872256186586339651374389508969807434556173499278854433942442593243987666149022893872363931073025858558765631569675619727088993441132305920374546303859363907931814620005883610083732234013650187552131641518064031236077856903424965299247207469976322390354819402233746467444829021948899956009974788639805878108335380692817357783583890461539482571976478871422404710332144228405820446586810801964887976641779053006248447527777009895641438554876786375462249362907755567707224365188913986895130943969624033015913718409090297706924807955511232294271276191118454005806349411736478405936346113515955786710908363597567399559113130360204744430713393038293513672508314894647553410963562302455583119615996783852827907144971854870165270306636764532364769070654855383807101340796257272472928336063505849221429158085331519105709636423718719345164659032611647736915567932128428004698214415849183534716420907103555638167999095303531190561793526180576987084197665521217866306373814209731902580578459011270499640401329853761949593136305939427991686564544411937837388628202530854171926063800430450671232169491173039228591673784666424571605968841143106834912499516649317992411921523161155505696847012889302303286838981484218276116835609401368337135250560415554795995613393433808443385505698938296475019036018835293684415177984452033342870649119213033705917138717199646027962103396542722388285795766695167753118942645050050947401559969297953163175391425020718589388588165739617681746821802009580392173061925304265179053718878059445811816057201210961035978853693997354277621036832085049766074223953748353306755099949393122907666993162601838113970287922008670543135768166795748726771654661846241487870263596103198768934892702345174643208153875609054253051084136917049777823069379939323308660761565615091529823100794279644170628033123882422585555965079633811480328015245264106294628131354215272498328648457633920746856927913402580896175161922045215350199764942627975527356116151702657263622749726449979995525469149748326761656381334499477055002227483471081679399922004692530149497271021086466051187865378084540902198261386122499039983604138769707562202731905614504616409724331334880984566476274884015423988525193715861174165195655217807375612102690988669379132202813565192564054503321195730162839238092413447317563712980224492491652703562425077651843797341218186514911431956165043143519247312996593424014560134959329745748831277831385863687704544094743623190256359113224043184131579402201763930828476652249587804432172389660599652457809249351331742368241252468519418924530917915176752258949789028695664203153843964948172484710657710663536259954691673549520035481905846901369432849494329950990963801184330115006857655473214721395326284642495700570893192924544240473710911344647980108939504568442506217492136432770903336601170787886692110258577515288991294401032770569723618378099072587394391861579443536846784843740738697756321732546124583572114757161247566362436504895602268163165551173620936282707004429953817166760808917166308730916740655111669040468205937356744509013905247466066562772030463910950653467121364131808933520960240054296497945570999696078619936302320620767697053592321022511022727239683118632301851432723538381513455416940036193145519764999571490196017939326684990892802694805645987934305014607470301918730753275462738189914730627137459702547105311491569563535622979446240215269018932630639644773958035259670078007236199401492131397750929233034547647376591107579523678967262090677549013094944076514515788188920364942424082647883451573494012487354757694015804497094038876325217133949909567099985617099460184712912285378413010772710153087102557684017203643344632625830218193308273606907682841331087759768665700649900336087407025628515732642001459526481567842246325029828042759890768355620392470442166974739576191739062393176852377261195691060233133649691979277257890568221210927595455811030834654428100939142436009337257649428233982291944000244389208956629961912211315129682338112782273940668222252145393177982845020961655763248807164928384897146980745907496472119974688086861467986059215011657372819137346835417017025590861825064277070205156021213981637815925315006061681812434644134871815241476316649941241594848979897121189722312353067871770367771314697664103733116766357751927832390995810484069371921382651842821884672369156792261365946290317735543123913873766358992966280960584682947302526067074232132590447592767795096504571560056289734835386936851412444736268556373059767987308579710436048301673809254933896241417585565172839374575388780657217374842238980792384894024583934015165384741405754184322406027824280636592957368503136057241958506799294496136649320233026215084534687977026939739689911865208404340429792708692613084972314842724737455987364175611876656232043756415545815636939178133316304911746429846227107714634690601841713562518197815294327965409502212003901312622115194888558219124289654612077811787767168822590025673472640242867510481322576517855567158180646004632740193019511289965565502558349923791360873105540605328204837040792520371750790654653471516925057783675163436228933927893885109406813145303081125557781052369312246250343632100989372656856490517475342704270601186685610680617467347375805147874492662031369810607105982268415751793829284692015946652914665755028850931470231117357760235340766293733340056024845486752401706793141143129421608212042509939331847147842712558102063844808153307471461071606561032689524198722405618957618492279912148488862437428102959324270223466844661159851095664523786848970101401308036844322805865703297654513779176407047714990855368602573742159557387145683043828432278017307849994778081750583198135822122166460148665962855047708142535018598831420465503578849608144903332221654740666605208871216998628498522950319536807543611886138094180356554443035394495450701383065834162166057183773270294872082709656631416036847236018327422888162792102790430726492956594083639473492925109681488818105494581666698139022079572877401929445374739433509102708587114402093948372641613048838567878230172823083698586651993306182644914867494113125177187233830955628759691593359859544320711728211427983776310711080213320762212321819184867823433097526617954279621305557667578164895106073288756120233110951683139263562467000811820615219416803103562380032996957097239065595449632409105979715802457171861771303210919589345065407602880353976465864648276174765580427289549043944711456384512870133524033701798914601611411307841153570713819547753682728759906397911431556052373303007023464865818567613177842910601443657604657843357602150161403234157217049559938715175320244321726573192689268313188144208071146910311002131993121209283526985501833384989049203408696657356870006483229584326214492619797420235055959322667408374240638354935448097993314741403584295706214087664230512859622690580645743387508081838067984265523314750026189913145430078116610132659855845070857041693597744049825726222069196421566972110252506973532849561384430684431417667281542429864083113804203835064259983500209572461711801548905769577963061636654822178553171826777881888506495810479831356564179539571483141922834373502750377625052164700559890561259424518870590753523259980092835755164719100004617913376290991259015813966243506707067714357390307444533376928179060056062992311885022808484476880932035350123540530846530677831700208967234692635934752320450606574605195716193156077470037206119944317753309546251242158199773368533249631094374754643764266080494367275993995262147199250569160903257512668626358500336961246543518612951619924306485572126362925606976661529961492567613370583662252654030992932922124236871953312294962838473045075100769619964231800955588356836575592903754668218526411433344887541568317206510289368469123530306434143801043621803094524349386207782058055050477157552378814776370957341915529854043053279899439432514477970858756248379259500003073887268775307031214459668917291925426482760958330089156758853426853045723708375042073568481844017487882662485597821898501365549779391926038482434707997159438316678708074433697565505955144290665075767043695336345119085689669905610349573588137373633946299509421171092052564896630461137491605020074986904426899924809585811129205874111967087763856844329413519293589054563976488277859521799199000199979976789985215763873119175457496430335648418259315425395022597011478696134623300294520142465540507867308131574648451087467801190940140899917742247210219472897189223326645176043018011593231733070940821303064421081532253451792324800735992196447014608627281141170212341445640602051040008103250142418548462020635937728443755077943653076929342827444928853974598381493050678795405096467543684872284291069002444244389557479217219371290927036250347579109770380282845388194942962329912789790086446417334727994387272088204796297850345353331589550217422786727558934764017656744275595695807737317518710940652999041611701585347167497017585980023631903677277097413782405316962635639416428305217593764788665243812236321619037540751899083448561227973814555554818727353003401536614056302122339640079957696977446056237869606678656518755036666469002324978457380690556382295909203424634595118454841052141844647513535103317862778248558108025445938209355142199810045815746269141273794867669608184215599304522037456513840349832111139069707944527677498775192842963868593786177672678445698586984621904888660747768957400867424755570298235447559366123997561859858823239382315560480675903625571216298329446612773511818908320102208529844758787669375523364026265367241987156309130508556343034955716481453232912208761315860685869593116984187067674149235405188124664371000895863354460654572774030510310159248309702418201739281390745131811910835214136050895260419459630399087681799285785007392500021568097220012898411992276256647648388734964487865717921662197474330319187766327913660977867633986485854954577608541830658973059043715682669214656757293250030265902421153967820306575658410225258535118372972508340929654667607437961909520422284961580448526656912566149945806526383939367231919062728082393871889143341881386371416965966605741097024988473449114025602322116110704732799928078598577921626895703046512421127135030193557575253794258480892909422813535869874794078213601769027935095816793686406407297827546380688482184914168319338722336890417540388250856258158497741735994840143049647107502445773445506036828795970321295559203029759385001841841230197706004990565278320141490479655303521817098158823310658858252677252661162921848342375131003689227373085324703555576180219535695841885154812107211315487714819768744606127554379383148889327711147406061734758244123758299720274804754631024712849153678338398875762631370881496028463643105775936455679560811564871001599908059214844962696343682737793387426435232791791757492999865760002296604730018198474343442173333199330205195565622847858673597479948599370560131961832696666550304824848922486301926266256605261854933649319333702228699936915851117217612589013941839020890653036965400220974954164443412437732011283324344404378314763175218941147197342546058316892617233875550914052830379146135206646069607888487268947515554205824333033295900038472677851135166131988037095727146890186026202885256030193679409697936525077644684342980625069559663041128717874857573735948879290085507327452567757319091905144933368727453200526398611634125851666776541304557132988864361842356098307581805725703799160851483639614475599237652063142511433678986530597759456479915345388056913840161686922673961617170561294838981405328130654601357205529231380386058787709090221470279914691201643794427654294506086647200004736025904160807335002762593702323599812184543516827882710353234774647508099993251915477571498392979508096520256721407557810352768929438372325450462928884083234692454499839264494619193312501381575771025229216807434591296442996528169664264426957160502887053560947784600093024444189105618021687393642436484073347967836839566333960492815922396810193373299927537835385089202343536096885732475271936711187311179026465863487053637249523298647433729114530178954358788566936173058130799668877734716592791314995712137639393241628926734461803207450358913967604700101565158885324814095469861027263866137913713140621875675998346724898306285142657079575597448168732642019315824571436021217273547226522556454691256843543184817936572530788463970514239454833862122818890091457827616890433583929291682514416925518914336899701067679041344488413093438679179621861195465042317969059678488587987001928283871656665063886858480790261058893494079955678326264082344666901493688834609830937506255160617480658306408804334084457539224925504900318867188159464857283573126750544846304663954274029961130589540160523336529778621889287911166023516350289842623675711340678347367589950675792050511105270974372669278461528018717430577657872233161774152305123225101522836817012044594159014061786015773336712053887862075866777688213416997867496584880863105657210973752948356052946217336726217133607647326692528842003972656251272372418520173846802564756107196850105492588890969513740204551928561260034569031669334948689487325811843625180754664014781472209839756866011602441382181399248173462155971813452168203007818013177906460619991150644417500456713394892798562440169148471010325629273201643693880062040460333780463456021740562988285824200941715133235045387895488286456994264432100650795691495968875090830970392936229578415720711346159055207612957046097967277479785863049107133217834522216113034034289824516540987607140407590850939598043048388243975751875953213294487964201419593796592741953795649876139753713862869940073609438378299365514288285426414476522606331550129658764856047106012289185526074491148514278014503969462198739771831309938583552333442906918570672141105077610111284759073893246234879699667878499985468135149392648913828735490218678895062829345123999586680653700743510204318293249817008436092387644004553328213633616098605216705919374150311400865166537538568236470046914484978080394539627254337636793917205823101666544427210078888655589288275005767136269287420821296672769201062898638567657454840522933662100115162178952959349130165338294806059759655263175309529432384621142736599148329772585184528817429081243389172166611746812019685521761135984403666960510056101646899120208693902681025369051001844253086562223868021031168588977603287367575634947156536526175152546107920768707379708493284166746218518711757776361745948205574769538999078684918928812263637128493561184477504099767730745345769841660339687798435398197736197378757134149401965124989981330988079771435410387817067611755827966699494729763266722626264833105203789014474498678625721650919060303764917505923028146727652542820687575361133356020915920658201088617856011878295339298336365456065967655106704026601677046366439629815696835251845464596778790785632529827379242402817641219220058533570429207057990883490185327777653057138173928246388040698838418773852414995232852696964411814950306600366495774356556021469066561997772368279499311617562405310215595851526857535509178568403759605252494567952507439510149829173828281829918489573323138796091664843186528043454001918139838806010110872897342931034507138512555333453512971559140783189995322422834162166624708357070371445027611423955536241641935408623535493844407398433261502142310334016252672657543038070709425560026238186125698202888133122921866400779183947735364195028694304213396497984659268035575308004470643939655730102119789460051723722844096936104026804638667385551841708630200429085567244673491613124667219395040915356642614977630744763710602466468780861423374346935646784004451376683327273436900583980574917822688067314774165330103444203491055923262792969843466027577418760990466062536212504263597862937194811407395671957256837427484722434144525500867860096942671705928443601708401490580970170593115950585753035128838850782518280127259340209106378255773023489223849483876579070974368328001447260039049595827683805126218928951685334115466514182312185143120799388194364138566550022507526598449167776706689046179711604667435668299123556949488416472790862401141572527330198453076300368358683348639088077349678216327848552584569326646640489717808503842071085574726642820188216702728439976076382041502296449408693150989243049650729211878781788368271020604433871600067575673099917038845989424205845330939496811219110395574761310291015997410450457820926780989591724739654803207153592882201491270923518605702597889652618179322495653670358992252716580736024187925198519534219121096888620076070894567350902090596230714457548783509979407060498987650032737487266017893852798795992555600523946374102165067484224350854886804300179460765250205359285884710017399516996240332745203209886186814355680477193748883488910992029262673120793258490676688852384272180689012218366695786883804363375148804023620997444691783828894996796296790243583851392670902893611941390983879195912374580564483977068042787435605737606710272482888800103147365420762172811293862355229082740036639194416962006498899700778015479966715616110781187170349400142887599860459996604099107575043436082874329826872271993095818509282104387379588161751934615315780834855491234264713330304653530341304262228923529736749394648467734408011287945495442378781012776825742451662084095558921573093879555204469726987929808564029565466304310767920372892582440373451177635430158557119163922756907884575028397448024622630611538534101242974455053912234619290942959236894611646937940327981875860660671763071150658053708085168183045604387702381740518513090958961357159052832569389620167150190677798199067986044827646681581028565031780850500471627153361311004678631005804951878977274088291245253513148162378195981751493541184561893460343488347093545469373409855051111826317593230754599969306717213434958712796339646046777556398076024720211470882341289745572684851344924251646909537388363407631897957404460116214424788932397597690649769975800584073006809745101073557310772414765780994503686226167687358265584869683463563862687899914141222673525633783364642158002546511406335305051593287370620437810587955832684309895019048819090015080903167034155643535864243399479589242277971748528468767866384438531216231157289467294479378452936417671334065023941001310313137840863540017271499718245982837074056031575502489552489375928675186710797312672879438105817158958585338714322348476151602087783957645155349398440398098074586701005523854285100142061333041506474884024896774400248558417613610643651210355907984343961509041903334674838161882486867043452069179036688699849146028821352109682771810625705305087210383551337057097922876973482183778213698304228999904190554897936313325099684415264289128858494771085909688929124073798789962226309573674901783243242660132143937234693135940341111030620874577928252830794901903111073311790951776414554788163985301845000656863054280514211996817642805815155689480528473212762920058584309240499887244768566147720439613663789553044518322618986891289283138176440846984296195166554663077747755447528774178135110100369685461348293210065499240961915950161432541348870951674816695517926347630713043811090020656881883534068099810068840539250386923536830090955971924523279657786611846692189017847628321898253395576369556432405462735018731191490469225608030651393929482020261584266226602209736048421793696932502825112285470565733589357510511889482673026556237804618646351376747352072487435632127049254267382891652008371789296786940376084652095331006169495564704513269303532044515928016273172355306085356646624043927599028462314615088072988721408537307901900405537602172641091985917083175365083466262633116279404615062952046384925764578111442674378838000869285104957849554965260487711626108565101521032585431148989692024543488650807319764229091743262518013823294907289793349487431195523422870732374296086998032523307817752815484602581673727579671209763550221759394154980665318584380949876814712364309787616238012295048793593473927834672333665497666128177393923748149489285290720832298079162550760578041011870296713932950227793198196780574870567158967285269714796876888440112120242404873563472713218946759594780919041348971240202040745448504241597958404913489333495521248840901394547051738910365636331504319879976627775353722572059197730027460706345571573645857496444040855101094731813782538094812427212772712151490761685596488198053553846484483919415417893436062751222743780631101608389449299164404674281479471734449121674403454435464506804186295366904216600887153819214974009801578130900514186535809517159302686775273423524273645675288207281400103059360531765914247567602546571060602206448824829265052565248782851571166980509951357199197166140584237550450105850792925285714454045446134925401181310003258105769675816810573328385506541410105342093125353711052686643369786615798913405677690867027050781395759620688023253423320466633288363943932270463491711767185754695601806055468243999021370211726277689290856884540567273707266222057910756283596900496049296031884673512220460630844288435097653590156193468786186965911397276162606143723647115277537304483587229612495716945751654063599120766598825678650157950843979324122588798765966060043030226889188836608591844951894712731347433000000287938966669330098272001525171606351479826646927232265213543874975586974202820540825343375295010294050042740470683163908711759350300967340737005032895083343144577920356217605104901890080120715929026730589705200966953241782751362259412246290345695352635225653201634812557901049413034997463065787002519610494014136680136194032927444384692140194945619231057818574518732784357818574267349038699952126497002991543736814107886336740448648485358261782929354948742134854586187829862499785389796506701681298658116012116189302190750750750055131584827957596401716198774238114414089753415905379681303826956301261140954203693232232895760184375542981033634187993386613314266800823564398293639270599175075703147026548796339811065130618352337778480514156503562676281041034730593220471095489551064229969647899648306476908343888020708858301295076300521095987436027296312959129118487645517949630616802167571492990046204997911403326255521161513438361890245384995415152775276563495344224398757378668954556007402370018149719845514563751354014829153134156263867644977827269049301653623809828424747789991004758987230687837098300563721802625804137381559459714489916454238622739284690273121995785932667500550196152660351277359247299953592385581930007150894299075335166461358881944496218729854941297584096304142890718623303918976403374862351420350167481979559004619098073978555739246112384929329481697030098469766490756752869416512728222137993836843148449089080688379674393312976269746626834622768311145014590386649846703490932075013176629455372637471882007878456569837732058864700514607328254155531568984306934424819889288986082399444712859158847510392848767208171505603413185131733515600381788280482470002649730192366749911172478800128274023612118418909797851031847203324249436135751959056313134581191406466626590940975205670778773239457195171963906154107596477496875738246923437958400280340547686574136992384424142794160005619093548367499565133469213752144762563903534193460655688373874035539469625408246884572955484432952971294573191902647445522168484079521073554045904424565918569463045165980673739240819079817654562761091944480346442913990523042690262675150694115883494102339437914496144283641021816792239368208153436571179274971094671026737499576839121488678475106492486682547871897640234302971523578639259959509765075022449089738748163083579790394298833429655966273945876746920043482708352721213362549225075539110961894778649838087305903973730685910302732793194227668591556505290225393318983078403059786356831358469834287347661492552165438348151735926596628241960593185058869361909633316245452991433942848283331099580167791440615002700570365910286392176099793756147637227816955359918014134714127335419944281725609535668394220598174283324099695355063939068200134988706949157826910258860062685781424455872766396454991889246986737149336213918366167468545803506683886909807473765313106203826819207034805156872843794877225775606283799348059281005390067862914653335479327496453388814278021475359483593290769421966272593316090904542504406585937177938443137988753958683898944067188840369213574461319678061698388101144617463259459510091023112918404580579654759915725079316710679623110974362211853511784795516218260514194348684965085462684091369620095406883052184011228269215575897948767356294232525866816427314412783631003621873347572357813435037654248213860385437986379182303113468309657398633083723558247713858905415600791076812088921012506045325834907465707134917968087504869115095801758996539522333895317437022324488028091547224701807764180396750327014683388412812773075600165553928225328804656934420692025645791833496629425943637193732556294913436624493520779407293079445322442501043853954506693675310515367473616681120224872325103137116715513061194435240456902717880727699493192163798673883580478250408747814080324709537946820642370290741290846365998163468404335628243756242139601430619066772116218000536048663383346581824083128517693438064736724580171408358946754787986239802409126722469346036191563400920045160613858774887585401245984940682069414109977895994657850130362713937322809521670025695669075557414537388058018932694107735467974824995491632956912696098366431189897667608218384992536777466314940742991782271405728153995007407772251331911956598319902339594096193621536332148767211492375551710134334656451442969622467486911244762332271347155907559519625807055445990323822379430509632654787765961840308730089962076909140689165735114562290975678964447294814215344877252764889088635254342208303537290800611882557785160012646886832384826152540731593805494388910227212647379507621455640356657178897938597975686059423848002086737108200710992244240261418130337870375665478460636314005233594129300654754505046792716761459338847544077200735448382162806743179094601205552563762153997710345276630496611308012762505369428857358216009192744099626566941452444577441704354223838068846648513800794979279852864588452459058709322491357389722724391394477122369411964371384294317431996556327239080303317183169604549157925641160683904436120576187227884025295354339928072043228974374143595780355290125032096316197099929094021204578985743377284323148672704918725988445270114759685323456654087914670668197115067058361673117497147969878128112918566299835593690489208267052893571239050307987112334984593857847977150362330511862028199951294237789014242225407464984381353021459535335444558141800493804896461544224981175724785527911568313476476230945527125237285178208084193779335624371406309541196373864967928244678977174783934714181641188306255481125009045629879845144512416442164217235776083940415628125117607549931761090463617942509420156426492529136267920841913894322748001714582736635894096187811845466839943957007471999843314791466252530847946506558655922958426839215032589254924702693546942140169203320713358546672056336588362136241570730485460476904982209744294193393987880335613025601827272786612962274170194316378461194505556665283065606704044084428315556830748469436313161543529278036730291647661206516341257931284813101878302020080095899962845498887951079544283580074968425951590211959413021897977297092482126399090624985984720526728501170397624520327359099646599373019563046871893933457436270079230995823249398177323887909929500206775216396884344380786982211967804290191615182697494547282500246491704835066048636206307071874423385107173311406729441782200505443049715034440799760329399427040438002018462883138891961039303935363637550442425030289897927986671007389907281629140763763866398130634143205936483421523816731661245952892578911597565772002342703905862860400602883237729018949305329398851925256833153590118915736944266865847656430161799307358398566550205194468961248132551842356677842918465694078725517305276721384787560841590520854994716235110918668546341252505878133628148082494058950626825539000206603947647213870110908355116788302781897021876509221575254023096835564441697785402109151123652948934610933810961112549188186203738429322764703053114095553257859424025401372859220591795206655884352364748827089494847619382686207908200792201903972527872158609009627000327167287441619449294132604004164601617302084549148270670557241372466467819929032940466888124509734148546821085867352368547652172832026806629569155825172765053429648094479383065934887399423025571997774457370314219014061855055764282552035085696482970609537047415603073956290741067339248187862252993485442740711919637820775891576863926720486359088900017209175475438642815942649384586862578962245944845345842708711707967569978501104810070481536627758902557793742892143869839291301287745710020466768148054901915871812820683141610820804765493314537727497457682826931791785640081799692587813242763088087823063907792422860990725100548047075160627544420336561940380915704085031383263455755293122341258165899593466000330574881866183249896500869697880740062092060507157059687577149394592755980297004266562696187228258284189605420575221300660116449991109116625686741793768291269124057514756103362582727557357915005654475542237748887569375162857398699373223851864010244294475160041544521303898539412520990818274086871585227048622556960722137325170201508772050274196344790665712254876699162585493972530485601104031552036294898255049652135005440382805026182515071593914372414286283391861711152321719718191755824950469607687249862156475995718451435924563631669735047002939302690391665370835360216764492062684226515268780042356675922566353729720269680495951567090851376321866937640348237222548994947727946667804313614383539373863574867426516889420024280407960629427498596188303687222401805569238625200466488138518862350051603419580584774442286860231474795098971826057779558522214686898642113193300334663788317688245059696636828202322279967131091214736820776538873987362570146163518558779935376579235241472077438090937665038452268066831413425070567025868211963007046208085051355847951859758592833611045754767323728507235516811120413193139990821166034568926143633620640636951302592205602320468963156922295502989412039571676621754313180335593728567083194450822119805596601401069253350420648032060444241216794283142024610829317920597793140986375105859199718408349945324384030576482573197901966147958756852015471271970286178715645507724311821990304186629482786798083993128396970471498183746674956348159160480451672358709261570335868625925075184453471881085633058575160743642865260874524564333485594818476718241042079651876925174019928374089277192013871747010699107277056531943385401023235702517109665322018001151868730606238800309373137692854924638690013227977599831149617163240629778044368867608097619219440564680657432099119254881957828236053239126457803951320128307308978889687773743479412602970746077920712425113678492867669322389998926805727899270201624582552363378872313812595564294054860317668664736808985484195523950967452498134499866822547256080961832882243837518364215916058461536661931172886752872454117311348290300108916982619733938279582337171495294719514097545360968792103890775739274520083401426363883236399516922635001658571266783745665484115602552876698686575220911662694707487865485434520426281957427081322786683435167571133789145763356266640642922054355834202955111337142740096192260643599402293901786744569787787945037095042392299398313300765743688518969796924519692456566441874099459346771561875010558581051799582543997995595381611194513698343603074399590949143755388626167684579702450347936664885931471419705637166801934597115309258302487993949371482676299644857042658558272056449724549133433050689228908302179019583673297094789999426020053117217993460155621852475365474627942828777373454973130519514828433062816267713361822660229858187934506902576622800117236849040074660398822431759126285480124638314207601301092171498561769984485085438231657651189012644780631357544153292704511312889499803015211487937142656784315868194054669518012668908576578953881498530660624959866829482360590614468256887150043579413539566399902865012751365171331408136045745085616443518241880499557999591469233144156686404961412123191969507898556271753039392622391872631119222864968037282003490785957679774053873587328645630689504837583169602565971704460379383681458706067127121667734738081632535837140296157175776619316063874378623651236881165841584365646197218451934681592571695415870340339108937895232330187150788138775587450929464635637517124257229847021642392276203352747301728877383618865236185438895115660810758790124610510756131797980621045276879995955707372693328358718349852922206652787197543435108902864901664486587975637974468009488124352589742997647851482181013596467373282207461548392841202483687015950350349762119755401142460853762323153287769432530684495899375837876898911360868281651370756164414232958959275800928714572675669482590798959836139014062476483713793687056726539157027140856296297505916606531904810478291534251377214660842013374656088935159182515005291792118447851734765091604847683437506770896471164489790879152705278783491968288554478859050539143726463306770539267792906554477410845217764078912889639371540518063410965002706960309164442867030086695437920741628696601682063784700410184696189268441168771224172031492356808008008799138152486382928570979638900781636229252985886055056543902061729850067913189591344975997755613264742948204233715460304628447510466228995729042757034066705196359925955629282207136419532257677605460597670809409234529659719314776652414510762234073637075850986144988103767906415041627383720839785245505325209411889316709240168886302883218026352810897528400875099454383302856725258250084370452301913673405835139911484131493522105586697265405457438152085724486794026583179609021208883015640189607446210426745926428922073446925593115608991265256131240971162890618990062254239912263068780292748283639531040847445771401374393998223702549626023537355779463690420054649386428410200122462262969963314514159542677692503712467165816930009038007663476515627481324180350738422654853276642051047466380062077363653100132867591367642264011669934407301386163787575221478729977934971483326104254844081111723962723855476586592302074071216898527482955336684268452262083951286224580963586469496665789140771879961125074773014765752368359850455076412844005833456272576247194678175983527229197986211017576186212814935996297506239475893424421213747948028687531355532756705379523343363800624881950412171029263150334812668656958712143620396424896330430575875262420821889787234720073422199595656609769558372276813982149800687497669048563310534708771791743216180421873699770382806699501971273997801937629057412968446174378542469596606335559299082023381295532977552038331139042347892316473839331746678231252300895556807876062548651693561064459313092616083543796973276361308212659572587656853084649304991937233687453917447796212283055618687848806285194324181511669914386771107846915708306096835914008020656885703054196490813504478985127467377256127169651165355727274978247860931935690886748408285868382465398649740561083163713729488611365569108754285718695449010871980472233017127220394601775755257126641751354407411395200506239542328167955802462158064635339994877214328199869631294983503867046014521073352368341256018982253468481855164873615385034692583051761938642363788682104045354710218995335214669893350839750415455994275702013406008828417738136268382456992719660351309166597907855526047361645557459724502548515723441812494326697606811757483553265967288528560111140595601140725881331644093759594694566778002829548643946964086188254080244962230221151999027467636311264774454413975713710800924472221092981893991923296739885539503519717438776792946298457823330092529467281340567111304075986896848429853121085808835306949012845468305436201056617592646051095195601767990017941585866655728727478251739697715697037185760193377194211296361753276834015102888205294707379408960028651142510173854584120961774969343338659877674135897384014609249546085448073992427064047747002746625396681704545197115011649712666834959300577302343979760791919846662672036438786212323292349109625756581878551701509968922417046407075447359163254155413225217218732714599818390193917179501525495256817911609264822610117732840759760761870626113027793072636716448031513975318672024840738976321059634302731803456746679964137052320767223185965168645445778457283709374146963419513838246228843241560380366604630076504855115704899654576938265363906788754066438303513316754430217284552779493175515068446112406443678221695912370310354186720924478615915480151633467938714187091830989175632329426132084138153886234031667976372738052571567372311715832147367120039263958955971581185357539727467088610621028157107560964272933468184283843472694972395659268602771767384019151372704453083056535645007430508955923130531349738605775379519278899857771470756963233045923107281976635379745266124171672655999172574960471567543656754362117191778827055138201632607433900154290507961761537817728572969393319136131177331910454989314700914993511909566363706219852561079608177626080453026631320040024189836546277648116493987605559514147241533464968838967148356358244249334568783255690435207068598628374581960123279128029844647237694416101271794049816116149932427398612863228552606664492554684604015843330297103524629567339861246059502070689575045763611504457335075013055641451448544917691104096980567747831689533999847893672512768286747445784369833196346957472541098352545312383997961641380956765729688904341110122959603939391587628564913335574005877290198732591700902557674966835541731336338233586426087338140411768776621555150728491593897546292293118402530853421708420960552042282597170710595107688334757577635805342566999549642731761834564359568036017346564282305333281600601681630515250489977845868548198104806998952227660676704010446489316351603144578054308823103427729986737578610327297885665155453406295819080170099563260424254264345332608262588880171035781892443392068061994752612497576312526977426867750979732301566325782267505882357304746739741217083832365542660341000951004651391975276862413145990277602066118630483198915978283570508698919574987243647442642973650956253508285661980339603178834686448965219879268280007928217184624171931857490118008076083992128392446095892303002742513823106287471588251113734203604746315592173489613389134659693431240667203362805735352870997960392381865359189974223890065055319839644496977035240639178517939023608814531285590365383738337927386760091334419057925985271245556630731456559673977303675554184723894250740073234662637070443697846191438625962718018102904362608859237515881521282846980107110358575028977454126002555315666145217982093330270078410128455752858552325318240414102824428927801523802563765441439572385893663351390262137792002747353965031442211766154309751393095610386203613850426902087086091823117616716342895808817179279200829661443454842491758336376580879804015104183542829959338865462418978927526808332450325483229339513374324182924247002202001804511815746807112623949470037296867088661157235302258609587976025273968413123007544967591259128213383081797098109225051950544770830031163950144674317615396175947057415428312723745381869881147932906668069270950292291727315637480229004715535241003298861641660201093940605261288289775275439181680929412712065114342439424191944400067930195443683583982527002092539497435163565554841121727521907709266594056899616823995579869196266892522467825525223558140030301193124932139216293660347561092600763923255895807211449676946415768498640424010818706725610053179353815193249138229152942576688345966302560413461361143710610265856120007751421410747197441346880266097975307665181036714129920631074775451662949156551553780464180748003907735820233169095421217550246598745077195160497337510965337702124025421790308533412217081750576502029269946812159921984061135026957445693820297367155048426771933641117376879148317320716282480340583671979897790219115037330084951458543520774378024768182527667988757044115638555531228513281685928606281270664922784403552024918723675024122572791464966681536138741874402742520095298082721800416635763436402434382387190378217457252073243282616715280590574902422197986497364496342248560422279978942494567524942278879472511353917991436483963228877788445370013885928591502958131985969320770970460045283200232547590846105086580042702500859471277228382804873630186496101694719449611441271563885517222038954049916366251335958707027312584020937425914511275567291652520581275294522920309278399638274150826121109206038214075120232693023178767183592790642462884982064276847238050321905708933038090025550665316547451692251886834153100931643444332295075804900019866756927718826685309778540348770087609307672701702266694157151832730697658464022649066669883335324411782011328314520728146252235314390282809609012983668996776892141410253034765023226787554514232100392868622356370887933371192210070343399803944913726493185769033153800760693062441331663464474952404221845064068540568460167412497572600799001089476934594168776879792683914693757624428721103331687850516153449232884855000049616647275830078617182183171381401886415376015566357349176556905902731155200372464077423379855079629773076877920360969911385816500576048342794557141845168765165409513013978866627682183442083256070613659345011502929819607857710240685395532603871614739775359997860805355099196333492909202517114903041401630979788866625378721518845660070075480240398190243023725553059280335929912587208929666177872434712212177481568937037937527670463818218643012902217391700766048717174054783426015628948212793222650117490619406928764802317235431946272174680962157152125891857323729212137081863359231598822818779368329871330117452620126165652786424498546894239196758263168601659448693335208303031050370630535079252096682570661650003908628310017523382659113198955213416113294981232639703874477860524847145029931216210735072806583891141618368732892514637248029070965239225600969771172913344530535371802830602430574136047135878227039523099065956422213529747087507902089940475217030271768348806931078141790547496555495157982063045797354779746965337158057042698327482786518890760143849849675017586966811311057353545490971095694444920723933729094693992906897371077013175882170836385826026933585892447873588618220401341283884434624031003703967749525478819246069389443654505367207082792489611808155092421780842945718041091706904599195049276998243573267533050645760347916482839565085672571369918393338656542709562838278308503135139395576388970162185093131199832454532343565947189506829016429613220885566299254967637283605704523466026357615280791694117282201041887755968760798250255020654410766009989208097343979552563444586656576631470081720610219949463331248187524339986941162697473118114014507542762717788838645655934658233925910530851122477516633553695995699578552110706795208370986249102338068236951771180944142145265109416628354976507051851270767705472817043360369083233271360490734321800406076279235585753482451083407292976943324161996221030633063910776050142908850476553514568740316381415751256778755729994654827965140014270390899119201086323287327672728508801651991901352750011294218251917056970785480348627856094941695376801390874495756375916616859007167035840797983330081658536207741699034549775725049227018563762986913370391667965115486116694253848086677749372821101749076182344894807752475395839351059254845063316449923762408313384460418073826557130678389754338637181851928174389295533796368916702627520468508995200800786135301274135807165161298278830129278085692037046422129889387323007895661944263041248057487434657059282099170169071081539721222053088346088812994092015346421944364057541291749146278654789198157004161442621488620235505592305805394921648339961951102413262482808567579710083530905748532240073845571390432396968561421843166010346769075093413730624439591805616511366672007911362204516342483705007834766466617646615126702649825547138208056267436794191133821475448289436930779756257246498991550753479091561574959562732299426615225788910123409423125256613214378313894845637613018202077417070950976780727947479115947309646902013883473987683560687207640800842435397221813674097109878056158823917929415066860564379828853324758674444149203850370609862284523896358506710546029228282703869694558340727848709587970968701963045185752045979145001773160560668363083770405564221076507206989329965756073730987980004820400348436120281869156218031579576193789505929654210689037642692637760195582246486920671634169759210719591068917622467411372710917331610919793146082268498711625667558145380515280727282753722558852107949782446133815673150076535708259315811252516015942250046518327937319610537804255713436119723715245825622096065629979441406780474269373861098509955689537758443820420568586637204005119474198524330930390869739994301826886602752780685776504597647309332941380150710936105782907390894121747744266886285260266313660956765395518457160427397545086979775066303476274070522714914769195813422756672666033150917972359720128334596944317215529106094413503099538202793813876666788775738012303658329152407533837434487658331070198757538821717180697244775758626233017293069252703534410657690722500657138240569774685218281876770410814628432844934149693771483270825646419718487673796610933109035201364680629300286507878731729921446772779597416850589696558736042612888561654756656544644302142862737675148661163455911114740654052153952424258475459651698568961859032568535376386702098686200933579502420312999482079694666620691089220667123588030700074609995457568196857287445661745268303271677578110908647539444601213029974674393860369216253332290083104631022402873214022479030581743214210623004479981447129943319768795645901439421460809982031964025906188661265016636209101932285357614918246407941699896257374855550634297825579788735717451038817734517897337563350067154199318747737067454850367101378479602858301813224344436722218560026857831350945689128760787086759443171683015778292076054281286447662256404152457759944411113850520531223380266123612452379655185953452502576566458402711837929670218645674327079589284567788185979532958750995783041584694665468058982249614417127723392295624929571340042256738530652093101537606875873716721615627588470531676559942458177970400525245200841074190315332452905796092407751735343351780628093145669228988183112706016785387248871911362973142442505906572604528778510711039584002717114840817447519443941710325137100699272800075261528476032825546037467751873610251314247075478630219362909121049339104990459057815766278005430458272398288003092389713053291801922931968531298139590436712687778374760503410253170402350240654864137126220075128055068246204564160540796671668867869788309874064585078188171782821821816030071402469819517352178132390972045425884429012485507447411048134643899589317429029920543878190142527488155875278105555158338024433824379063235032542490148517510042613367823168413719402966058657332594490696433078832527748439087956453329849323744216840909092769425494173679497632939321547111810377975950333338723501956939674846607334293770686568631880135583603867236680328251027437946036436963729741317586543804890880681126810697627103008517746850100490711743661952338304199532395761274274229261569275515885158354177941911002409229207579625834998842223350082851635231978712919587980262229304572543590510900646683086665422200923869871290772376941321174103936232568090372257872067685869047429441937721632511011839058654495138268482243954873977678857490222351034634919224988097596527540578868964860189623230320929829145642469993762399140354346898774656768730951632845788330538863341988116712924190809769765131873009458001133971184756123688731615145255699918632850001078694024947673543780211312618476751506041959383921909213878595200650016431138456571993091390687101781701267913507846824461436521938095257481292362709413948962121725644177390445904509347268249058058288816096137936890458471515548170750324224604568199992216485759719682862150274221704175527908398344619884363290644350296792990368830109819174511370161132941630975577437015078176679969834293682314740633454949945213460016257794629790669712862477591324145841101086359278420777724768574693235137167126796770294935323237183787682013926587527815624710177138233292238151042070081360628587721546065815620992564275337317275599266212262922010672096502100453925208055229565682773989997272541210507164469956759540314475389397984359732522740853969443152759176656207838720664539842069807142506727542299724020766015476914925811326933245095014567564178997069059938296027920315658790685132869962144240792266627126998817010815754242343135680930703065179381217301188845318107246322232255554305540442256379232309545654233800272757987387704053455105862825958113529228582871190043900834810187020195474840001797871736596191209745685118146061264409513216413244695842041924697570416241049669628502725989833950885478468083136718579636960270880208343749730690537126752375217464300108281105450905514678317570192692981244500140154259187348843970717378407849909064945044836908501787826655904636884940250474380238047742029481557501888172369991364121323515601461943140058965049998199165412206378613422603090199609503834169958385321988714514390442861204944259764600290752242115501242438391522808533245410531282417420247140049170590364282482624671342952629964759996982117682202364501397710597716877921873389278563906197882489870834687388528979269970469709924703327958947917648066591477745745719700498817932687485610855920430575498650452259596855677709745292825120326728142110522547475733895966383107544960187996766849644800278639872574529842206834565195393479271565324677929867999948263018102365780062219124615396779738252165289847844286022172271753140178738515978523559776434197430898944503435644385652782012214860222878427872189110046950321405674384956616259802310760900678728334956897983661632024696670539386294787244247993446448932683762149534903814409725076638431434783480272614905065561244853859601481384094323695042894310170308765548818855563357531334465365481397080702622409616836703811319188785163954532915624763452940708937848365626181672415357577480702586626115095937003002339081736415950158926940363654565066675296235207171491311727698617994029947753613742949772511602860615551972195620578935113997905194558973377514370792291451194358208088100659749534231764829421313372542007294200828250020644080207870901001883619914836158505754889321044037438820162795839905126334743644163085861515050443036275443524699351491021706817057260571008696860487035203105827787849546817190357759074967640561409517531553741942821265011334658772616320046051932634212978883660549594972719830793358446190815474936427547953696080436575171744035022738231212317139346056006553793467078375797449773435055274893820628577826726871780076170830637312704740609819093558564673526139535575430820917125814020427506739573007580824898748456354419413540416067278491974692671715372068312135458797248603481778286710473089162839060477116649286321264683579533582908007441768249788310119442854315376144857237947706453220376504417937124989337887334583449596571509250354906039584662720781314869316302195363522366482290163887392147556637102606824354909154775027173536725767780232904321643207988228322644833170984421819457209104130874036204766054638431524986070279708137599949446912642701782952361664804891114933870250080784563690754939576997751108130446682914704437340518180188055605617543859953662185116000594248524292238272597263941515345373464999617488081366471589460362401493340892950362449556458692727383623923554729647848441856882655928988919512187995201657349380429877891403092602732415119016720276717090419848051916843425127445327350319122070990189535984856586991672164002648248532850518298945904625001523058251614154918419562750879519203117009235026806132433797610744822048633498457755193007639009706208338998692229180510394835616999466114268250129388420011953720923753445656506175873105020134588882656263146843210284027529591700842076058715694615860266796537997999225567480343474530632026967924038906161576518937394237866595813746561584383465002441252715048990481622654264021431654304404084103152214408800240490252317731335365087666984782587345037018221515432706600626484629322376885642479996195166340696230543773145377117937588649181842164327089811718181718336777243131231859735716993476695806439792219341883668037035386161405886193640965280248147150584967074198313102865895698249625875861134823718268771359539352799580326353713214789865628191111902911901200017623083809814532002396162596911761612915945855881380387678754088154776724737281111043625715959564885897964514774562271680790032732510286070496248508690497205065177862823735947669965680029920716380743564029589771245687163484695127992966072549453551463115993847409225310256408708680480014078426843702416900243585439898003492451434648541410141540778883796440702941790030509556516138705487823634726600285768478336992323540625684901683985842763794508823453075478812311361150440553126209883552537021269790537120597076449878425384347326606088992575241799791986705253597429607212160854085142634243917753692495304522644217156880786819476477104516930330306323979226911198677089296161174673754773174192405684408347214267777754339245558404379007539821010970774033229947538343304076943937073537312109491348409316107852534922649744543022518582989381792368877439120489991874284205156031955336900009106475029910495104569567817958544260353295881225509378780981391467018638589745921639457252459686347091923912164189094155119492258417798844594263577483489262575827766033795502788387556507732263455480935214840168572507269608871884834192382400598511322334240591900744136355687238721664613021527996632031034368096068805187920775067263437321978001295712747758803870394104291038012426320705745635504727243948048454915465499778518499166529822359161189386379118099548477822797061764746960160237156645507798174022056132275813991537455306060515247276727441295034063658658575027562084883507366589238559289415034182686580364367741333280105889833637753730887479128373609259637645730383320961059241627245126534037501799444047331513211530116716182899168419202432701302061767326766307572465789401653827086548740247801467570141307853690488125926965185727200963430280553931070202882185035888610698125547093125156773223634355329921774342075083653438056019722022229679283996098402536043629140421506148926588863955971259025482835874041953130946221349405759620950329372008775111939404399211069656929424153839644769373089186147334610500600352500625809866532640817241755784599556263016193811772005466873203234746222569825674381891064231614986591774011280586817375181371939125683884498080062173547167600261766553293005452936354483079987462389467220155813278465994629166983491646181974712746071119485873990217394349281019330882894233464860073744001410725124625265934473439486146457606382614323389263888235323277319730570866258973117412435881667083309799563373367086684090207584503459890057676117750695577107317829276672710627035096995174512608335678179751848788073106063308213757422575586842603417985213150660404789364268428497810623836284095808457907867421776561936874950520893426746274841508211438830451912256280538512327220619388982060014076612610360765756871537585262657620812019663851799032284417332184318061743677291025072020681353931189992664674179079767081041289976064390831652494310665278090012261353362615520387980593621027030671019660068205837873563131236622118781135195611929742806235854551521219909550962244346135442934842019236306114922724552755150292688478478691086916727827930756554711743035604401185047554643524678201641323054555532083617778367136489269408068305585112572791798258874153026241306381050447669228924895705492806290230480452926211852786492831178213604685759201085115383227838030362819844558265739078431115732714881987986173731611549231102752012057461628029884710389475372067689872623836475904673394896928073799194123929284547231450123706343110765338416603990773375204086721500426765369513547051660249305880563464890132654411366751063885048557845542724591829698805282729266476549547397082449531836287390203422072816432269344321174308341102424219397933148422776216409372921056492834841343709013833751309426870194896896370269091914271246841548533591990053230434856899193077986808682409613783737940833654439673792063018040599701321288861509665421069167403794516958768704456115606999134627800547522122613899101886104999720371441996947912110907943633323320048194385447936976123788048497011186946227722669333999136320074137561283998793105970526428539763992466953189100665534427829797743221616029637155729931817827460390393581540211931983423707992361101078967026252972143126719970599712199880489452309518960582182428187405014289416835389183527244389316687940921234782389049802233258586005672696924461770041015090966936141731550537626629690904490889394338534218348338637321954508159549746578980812296845628870078428340366563813120475764770971206395790309522520427306130730505297254515134949814166556679485232814264433283287558120984702139793151289286859699174071481005108215064081782266461831135709695940910484505110620235262043005591198273346353353794375717876228346852298906678744997415136166471551603627671730611244777250933441213156246228798602257637414677402746090472929228893690616088153101130871630315049429637767224352222528158804901844410466530261902174052322699580856933885846003692328314065499784833310248618630504719946426228914536329900620355657176671077167614867720443045425255433823803088532713155384124845258737371982705240807448982204605581430462841605430203663685964320721240413449910889650283820732057418769750073077763323156496202552365967351508787897786305374232481222509457122439194493153428818169782804747275360235018124259015250263225175974555205066386465474304753770432586616606044862180658614419599606839613515915210379596393918273989276884259321231030057545703040972166092234471761412773078482677478418046667887657264519303425384932077465105270620299387454261085126598211596643926845336265120068870335526517182488036080051285113515201901338872943074642263734147346698099208990147559157622355361844053867358450857072480331097266492607937556394248098952967278264930302820238227584351467969628090269528117095397390240404573135592220036919121832068742870629323874622538512259296478080707957109612270492071797288455405237705102446480194476962915536943399417784700557804997030804032565771785994895673481502996423739689951835735179656218429924886641807845491536405227608184706079943591706299018626879307750285812023106488002440375164004992157768863372881946756074048189242857071636673424923546592648600885770874356028193301454727185417055309683828482391613014698883864283742466268154794293080513315309425504939522511134780263418282772875926367764047477700572974709657732732111676324960215603109149573636696418712807018463383070386564035657314912376848318068975696021608053309319818168608138777023125889287612511958604284944287347898504456196720976925696961213636570203439558210897946510102387305067607218066853117730961234435482224415984153955619130805268637918034083364063973258829983456737078895399751586556127281218063934654962049858969269284469867751429692566630019801476235148241160767174676262321961781730752273228866389537370234524386197870634617109699204960346956126885299524180164784944198200607285481800452203661058053042182652413990297220211641731956292864122313493147741144182357411213315735593649387571523175753185376542595445867405519564780831883867253054974124134722236958438738422794407302824206546847580840610956896608756607580992151403902147322116544952021665629718136491672019853840523187584071168648836215357265249284029160447931531925883437903662362766600293359012190967904771299211927754482951930784286992357620619747273991085627563392640041801187514730496875761541691646795640829713635955875902159354621916439745127239893730706830189370332241212030325937824580665295612807341581657215987139135782764683745715480304228043902265498103621223643088346110517902081660523857051985973855576764423007526762435061153032316690669247271751625727177648308379551971750855111071127647405746574520813554683332413302489092074663083423144042610863857404970055218724550825043151122253746677638251515947023973024275717768378282282642052276516535148053359440576932939610501362799279380896972539553590029280603084522045951231884697904477756151923443124286085694036802996446565646660939427551848780219812823574552888497269859434448125684838984107283369631543251361798688482794348557108403538562308483832750085614290346363464275067935673378159870192958407737192334287884383439923229824807922821248545999276356127291533101338862965554099419543804543834313263738612429345351631843884229408784386914522002116532348871000252023992762955387659622537201616500455937791534422035062789247120614022703909841415631113665757399416599954166718575221965687990425794546652698849641528776368487118853712909044151069021567820223999141736457144233099552652198854862402390421289709646102834671925089784674163836293541950842390147593505546143660550485465784071798857452803512966128455029813133054886857493354561085071376973684397660803526032295922154208018759426968018302835319551329803240208688805659464053520638211644436682492352368071298205683656893951055593203575235409457377194114142809706884675545547262938511331103346897734679179449928370482770887831976051536554032428604730823143691817121920813557793357416781219364832195198151686694717277761455763909023444673104882519414378263917089501964828038305391707012226438476032037649145825018295410743344600613964729655423311030684314876923240890094095326131290601728564660559198243042791399918999018020091945458239360119972184513396199939473052387539607838942692559158788827152283017951916837784409305560251884680159623340038965120189956507501665800876517778728820328358361005206030787338768190021686944935064646197826674507933877005598963361489132215106915113298326127127684203353132372847753149386792787268742800399538379044110417858635469931243590390239152639630050156480024301343841933174757336357065091425909186587668130328471825206656725285584724833304107280692120634698002694200240158001490872962923222018786341183746625256350108507245193582201074502617962545504625629782225308971293332033851998514586130037412707227016997219533149876010947479984452350289321145932067243804489909547604896133155392558527972460650327190960113606240949512853984497056694242034035593171010668809784478337184455939899106057060376476475957790762702745940708972251262365574702105734953172146031767650744542425483901370271696328856804239700373354043448469500689183120962525120450076948673645868095459496664649902390358948876659769915679725078759160018875151845470295970900696277917455280881855614888476541679069037122851324851316726003844766336492361480178939736850348967003050419628371460476551777664725413486550073317650859616264109731105193085025595075070617047906671055968595701181547535910162225888039084963009694106848412031399993252613379393172801714758514357060877008453349477106871499777878714349329669904994229066993866193028640276635772079489373443663610892657101834262607384890071250947708776553343329750924819934901298935609447310883221375855896810401469099299580335528292980392002269075900077012328039280949455125956790388311544104060230285122962896431193119814272308507572212671744252351776794543551893832403513783311917734668512531482585176126411707755606540648998076683287414633891892468022842623376906965417852013049935197349483972072845433594787588818175990897256444725220305082916222041163301933280269818198576846253621179585233939813904080632636831074704422455540409659722307096622496809520796510481264425054515577143862877457284745326332955461632007751018115876972953846494303484447231881807324050736347685182180050556417123416725344648905648837770795518528354888854409051279851886528240036827129117455387197256002880412007753708373687325100269064420102239465591700731946073672495328463191741532111378178050416385429449929293080102387856280519434626478226698274857255202032032504873100576257259700339625208309592713990938251483931947736997804601342275712292209578764735093781780739244129052238179995700520380083310855809687611014688239593638142273874991046169812641212846480656134666895938660202002839521147410724744987723207139674004137948095320038443051444914543644095305023966531789706061302125879833359828219925921774747026762155205081978277823461552667241202133488139952903726057654044187819205155211551134611631455924452723927539218132442072199474800418734199560493387274189175430508831049241865981853830288733223022618892344410068943338592349398917390410071790412656781535079718990105058563923139701193774786652255325297894323369315811614813104668445925253305819269473270756546716714361127418702949321012362035636393555573485701136019784549922152052040596706354079941259114722804857288067425190195563988355718264389668064032023281835791022617654077685415003706624765132250227653129918739752219956948846564471314627930620163207195927692149653642640199972916615438895581411586034429656857961021140004386407182023924306878688083083181541819165030115147318965955442104358018434953014495368991210340482988745782770494163934632556634790037235558473289124296941606809861682800567824911396983083396672852708501193636385304825458422886649205063017809213002988640169997556585594018944839852174636182805140372505258597367054350018846836460263433711661141249452902109206593939948092476142275684011860355103999083485430401742608017996037314628237064308702557790652198054429400293522011813585258939516955033048492687333170324795287150706752957786253509960885846210523568659653289483385053298540026892730571741882924191576264289015941309901043087545656142128339517037871405606993736311156058408550251965150919381713891071531393880189064927676203684289377978041598675089752019648786078496255135747941253670070502075599286540302909262363711690155335978792224081653079775603796462626125653908404550640724448255719627860587000084647019199991585174251598415924031858598279853368306576850974473826524817297170431955884934131366951809622726746165913269520408263423138449100024430329707527433336245725933757161005773296773736595789177655905722203333517217826570885209190556680988001890371373299483139027401323761476596864240467938773938839567247609857178387534133633162293673103214462021849508108451005471621300526041913017107097138960236526594521496901441330426107371382462797781699180028559664300167284671177128333545715125508219455649851919296295385660297213104431952916962905690929633977951924650759885656709127569755175385492385250107087139498785240496488050135063468424063344078637949459609571279399464722714201416818822628938414275237386693065939009488637548169789046839172171419880900863065764770108805731059631364691466585500526889449133806750735409374212856880996594729676069350494111935173889326763485258516533383928271385610565933179426005020773945006575214214930746620745874176071655408514567323826389281853039449900413959745353305146528778461387215363511464913330454313916842331734864703316339320567414353504583250410986766715532175316509551137166772363312215321812333757009944645400332116675695744428506458615652388526507547728044346980360935765521962517466358942592283374194891503331379731581451274636603674446929988281572796858849396053750775807006810296752400411275614403263280216046455760008359938147814791620937942837266170432660279763083309168770847157923662206746866906077154678608218664350187887948903805932649263801462136406926153474582908515668149853229983553574246912841770682200706242712696497030283401131954875815886867900447048374928320212982281130608696342658086989698630618325548922189099416491744875596896681726761766951408284619289014614398563551125306845813730309623891136865316244398535196420038518995967124325431842303981160593520809827626621750524241700696909408765580803486610007215283974938339178764778369231985226698585998013553561642383596412330833399999005675769753112087079274228750048552921397184470932501111253833674372148611887524276838427118057915679326990161108992789685615962952337499971095930132718476971835584266933300222790860635401336280690954238525314468328533001635043337962328801800451381069416840577702181948527119722364607333165945140115304820704474496426749369021153622028680147202708700247215249349719238443471933211834746160836823488691827023295414633699325200589388283181111686162621242238080034960859520585013448448031437054947389807299093374748507667098451000206325073386776447461259774984856172864202362027143081937553056515278950076991151030295448770332471955266134536344622921896481708622304775530080586940811635202203571265159107545437659549475804603686282675818623753951306918769055549599205891945289891709264560012843924355745415965517660497507425834490852986967803422123901776966978491988451719104930117476126590053332826956568471686808045271441254476810817285209984721664243867592946585732369000709990492489181143899399495510858474159719962156475880369672161674249593063214479507048170832697756479073184549088455769854099825977146906348281079353320874651659010011828957638708080486863054750286308220444482764068083097141454734922214825309320565247138493525443972593342293080300330082205115950209176668110875479181460559581102203476837343820059280896147058622795072650545463948292034715074467050914953783990717480354811495610600012294608803647006357032614655725624740167531823345144443578089847655317543689865391691953231750012932197336251733085678781023542910587280031447277343249668439033705446324458251836390006622816988646600649882043309210597702308906347433322610633601608473020880579149444198795468253574804612540160464024751466411702031357246882198207965980618953694276563941747839031082726746881566645259155539869582954423134848502119464221802797190721702414014167412671258796282439077469795180860630265067921663210679302279265445408206579838593847098889099927463744750468179700624783717842112856431339048615471225139345248829691168737692997059592502070942167130494681309253160581985341784097761867797723166663359606652456420503730415553189227270139751123585560095465087185475711562849878464039986782519702455394727355406154548593100479703447613045275901471799017688176780237347494642486489864818833626021731814667942482811107207321207234472601833564599750080880519761733673943764366261309175598081411604198712320806347466223805971318879212535051183226693220922498417653888244734805322658178397417709583999179426359675379720277015248128900803524879380205783045228472587282429131734009728236594283580476866865840452520944657623299107261792920338836135134586813121921131634351594377911813883103262270682528986829544320936637933073028003876920246400924114434607025660309668733954724244246741911089257276107628750625427558504364386879519135054844279637435279729736170807771798600081336271945258972214015187609836978151269356605956175678180345938150992048720091366209141481571506320660070035273713178145158066312804169552805623990745985729239801722112911593951769871408235044510631543611702544308123197266825089543843062861235633672226935141209744480120869390776644950066352725122536453320000209257430738227441828506685343596895748913029833028035316973530623431387489745920809541207315542162913203536567713187812890149085241114486112372472159273244496595393689359252070721502760119945863360886745673559525396655954245814679694558365764397405928946794534153405081556020128521932725170979991504589283048470249882574406320123916747321083175037139317772713887443981138363825422053333990635436634155817813016520671811574335671508407683445691695833061691697147464992772985690252610196869259200220034420040604304670359856939901364500212821928661746831540847192003497325674616318285299758974932369232270360519140336992185890055537851904103907224982026523388547471624771974687639163228908992104834198047175851950692056545598021274195568386232662916007308353964303705679922146301879749195330639374439357307373025246024386649219963203479326029386084384896764334700910624361027248091254850201829098780351622108106512490381930759659220200258358267204049924841317608394902583866951689119619075415506392918452729271930707927502622972722509029253727069120054805228695831026948114943156405450342045328482442770936664639268785983407452869502548885741361079144071388854815300598249700171295535989292650363408538502423386776520627808849985298658381047469085743660041867018193789545723084179307657627801633725264955268657236419213563873599040814205869350824844144860382017526669535969390711708189246486568306050143151476196406943448631136285890519406409100467296558428349883494861803712338439166991091053690155758639356424958983862021291152730787643105943847112823904267420192757402031870661032356063018966686882072306510608875900633339830924908554374239809211723075765888676224060409536798434993717934547367927797149004548143469480499140766504982209138817056001621425473105218831180328308113468526835426298813079859892014433530337374763224195925600489442708054000541355973844391133106733395507677809710724244547990764344886960361138991651608880966287504414085938496400829709553621753209180787525956277316320984319386256138460008746812885580346233509944659093391702089166812707476615048408441362341621563654812357134936746639336235159243877377649032207101905481595619429967999965459150767897670357350096663789554136935485966994874698379485584735637692498621069179439073711662139799401114839293226172652775610334743783497473402308818329617709705684007811063072703719181005775117503475582923876746091541577851368920805722167792566197136026867960139739424310798059330797599449623651308828308714652290264239014903932890307733053999593889232223003985573063332420676228908292247208598360093895019987730134371061454913727523748096401971528590223176457535375578563382590323537571434751655748703125333818313093449140249432299586119503163544024653667064666218461632209973289201980111783905377699791007815228885897006948627212479381862740072457334260692858504793968588061585004693645052547142270553278774216155488013052583375789464838555580017104233228617125215230839835633684715674497551935536874215384253356987779918783600589326259745178849377005146012823081832283404358771528560570820385380725162102647316734362467967365799184367718992215690849004779649520753761019460273051473368512842981043125725027874058200317318568465115547494404240291415182587342827607727565286147260861220686937535532054416587330075244986905862497062978668377375972897299570115052080688446732098531514800301090208595986754799834847977606461396660955992711233859536937437001901243558766588639551547999504509006796395307893360293647406291796896629645056352025538504721497540614379963838046818559415331009531153920980709450736297585521309853882346219157817971388919842567654710382726098568013409984091150781766877172702805587707383345204060984650114353910715682165161900657497486652811173343886027891371019510201558796727737549387002308223568620464507322031819677181813232723594147381298471111559282385165828399643861695464890064070609862336046010164004172180467677934631028739335971413420729404278342458278366406987626314038097249974438216889973027054781442894858326960367418906482293934891051781931233673502738690185936641926355564018181843257011584398624841389674261606348761913336323012289201056354490256916522958623426922973518794003286618904689042786043056305277759989973954787086412628876447350587566351698896364784764339566425735642905423370251431171163693362968155502053954951182157012784941201494374581392581483095741767536637497745873713272961615113200446485340965716128728924381408367496057945475279005563906577089963568221370927278062260964620476563527265218330769021456502284970401378151689749003674869063284648391019225932611942861499298213723300114166591846381019043188260824445704872895693780644584970263997813517881408473825469987302790573191668296623181066741528782041923279418404293067179837828717739063086087524422926405223623131635882804651278340932625921091083801908467367732986418468160059168130033647259174180219193521157862079005607529631221687593330777742464011590882829783021149080035061770816682465540778237823854173135258491132532292127218634995186392233062702338819884757436958435318185601454743314563639153600495676521112958887444109474873218496010112820748984901851819987420075376820229598512498116544541521860235858410404955995067491273101363114274114490332658095476557838617922770745557953187205494868587256893551746255507967338631207326493768729577172255890342375832318139918408103454637144725878504624811990235531322636459845640452985089102143257040631122734271744456630798061898819726729715186349498647651837745478905734984613474322939207269373663649615706639831958341845235200280134049959897808767106954411510135887359662863510835501200537765910562284299675223144552849986664560539581450575486813616114448767712302207194900658665429175432685794608336359543914410543329127006151519729657621695446435215910055632664821714449354910143735398940720371635424280853924079331777192657561048597180898261326207828350822276727725184496791981132486639298570228944225296631220176082673160329680964029421181035686941333087179594073303461178527945402202275451099877097341917637062353820554977040908302924185851635817307397475789236893032063898563294707679967778935525400396603860503073580758846972955116223772439566695775848173640426199674014136516010163429456713315021696046041919188529259642541683279727991567343695062824774803793032424230592893499079618155323697717989135682904716850911034083867468882959901770795810066932262538319566735159415790580408072142235659327825916077972194567608194051835715007380401267109002434291936068141487625887824413299720623682121454112302529962464335588369033008172079651173836134136633913842831144812530572624068049908659107295783400989352573756255963582752714368314698850514590666838481812492285357704299282090959545896359741469602170673989338671751156800828138123492860673744962145478670295930702652838113490382920310622735498290029183540335050320409435362836387972296856273113036210434654122831361855738670480355910879788106857587914399421466606342289561529212028053197399670852941241845755835230949263817530779254096607395029464603878062325244357626656091265403791428401519229464697489463332384848394797607202274382658187720832618331980479691519406850578433535883610980311608456709813659643726105133773465401690275022565409607007547084781005438793004972091353700204857450774205769444185226721180910102036076990488235604773365559854448919033104946758013860600410966064316819992559498235766328809753353766530420079279805599644570290669759967170556871618842461632067012484533630515661455605172603280286827380358099951109328339863215481474297117973694252097932127634030996085212913799377081841790243641081397775896225880697666119952471064156766558197309185578484674822674469231771987994145415927786612859355247369078847562853469533805057855472191156079852192138482056228812048203857071697048206661992596299837505516511703137238481951009399478329923381898414885833978796017737289140356746211227730594888263301716136968789113288720818449346919582264135651653886561275969648977062724013488297456539010654848085604890546364497311298037795908776135873985697660541830980153482462652153390368375527096610548799287680801488623772685494888527443810384402818489691651974100158567022340474857207714108366099227657516028212963614113002412624389268829036189692054803616904200087115240359079610150712516606707906613344856597037927181030761998038441421847553306710370438036293668751033596568031311048518254151219420947276242482833737406997591858287625664753582134333316399668866479293729492817345014325049493505113227069787134464509545307175438451460443051712065257102583818873237352455591309993206845364186428274518398223683177987933506998212399681073199641935507357692726727331624462522380574228059024027062416599483162329852225059450964594545268690671858654679465573246835264423277574891970597388460597696198636925642110970878771786103597019649896733735085999129480174011651237382030272105960534981751253330512089361660741486433080817816388346794247873994513220042074198626441342724600851379063109038292667139322611417224948823034846482171067485597179014223765982247546892510022425884567457798993164620754618427557420847601048725765493487706880758337552500238610961352754512702367521498614441126266153276922888027687582951761635521226500717447059313958228522312587778590483842461540890869286658069772946102040974860906340824420642493238279252884892436178466478197926468121110901811945795930967047121274181013243236141213899405662361758295798516452215315585361525844264802926158702062799205333209288310887317348328600825189733584207367674298367698104579495938198705985448110711215892875930433256061309554910383954321026287159739388640953135135490460149098368436452472692791760804205137177549585216526839241846691057152162401274162700148022858784832831877384122747121836728446971443229977990507676642531156311188675002394374625169967674049401706281927145875990257723709625778986408504896495598191247604716687169555555019580266848210776614358356386203143908744166417867112806174967101380784615426936337434168838728159683344554236454203827227478541546208759959828504966201161339004877910728566441190488646192454647576284933937435338568151734357126137255977508850333257489098439722541569171103516888152102862494757778836766381631272205603390327060022298749236993605006923179530075599538755803988156932516815320221450778466099635567314719620418227929512384647048079374418574038735812862566502641540242011639178899651077499210111882469267500061663810014988200280944655447226141037508178687181629618564690757722989902024863409961428826536688854419099806959381012685717846194260687500859768053914203783375481995546359098331113344753773444994100833451087130556616093964265331297374812743240082662310534641249404933290106034025893267724399587813363398367580593660241386453664103804838123278143948687093467729350441665221497338616805159825801657342445673203260873163290201308867446152304803475394188250935139952392608837081312328125624886984847742887003369441196762777134229852925414987465297252885501869322271063182484932564785236533073509128149021418976167458237530525461564000646699027953558279011422513055505006950727664822587049843407217341919045935456936228845193834993644542879046189787805742495900857379163303937904772839075658926639841238811553227248228251354954889098521020619587554929011866697525800963432396122893144098415526889174235372324721226110921375401227397151165277898447820959374247071339266719630268583073793176249762072945421507766047062413217302385317911500828983901430351599253918417304955734114672041546738496221308004681812620236963962671599277239343195233462377380449664941124015391794163839349127986121017989711121706570031856467359544328978897835353444322788572555106694067552916731098176734701005578429127903925362797697978871162895894407157084527683186018300916511606785068805389270982519212455485329398379519799047536503837055097401089680254736925881692291645574636280260500864864181220307853917973139656609026567339253088451610237674131954198642900075367433560899883185837287526878918900076989288323423390810415333571168589591432153661537496596759353365915024749746028864845093659069172883885174805418017303605803978581874640099051378968279199507159961479232730374411276830385584344734678174438389779464955007836036584695920968580432047750254185556663241958673139769413873951302026535297152807084425749596398980239247535264918105030127062881687939974928506574578567720703745169837088138151413804379999875510029498530164007780198914490479126473804794078922230282931547703776281125412880480636461358283481487523224374861234829573812871860453208955864557018879523793673001142115227740343278457442144285056915891015149928544902817046601730706721157222061610723331143282384391776962918613335426507021066725623875141879423287030037616425184253757934298132516291627565369644172762695653307740795757755922185489037458845392111975712252246958294828740143614346943198738715965773551950071952530274604535164291904218456426578814895297005895587422963070782355881880324359791115754579613503011274731662206547659463152029679628867607367287096519794275693619720713456862517991596931737063354935953485229027336100199742118074844329008065499707822098511116490502262015663964452696432196829026481286115854231225468030107229273097728415772406608552317639804947588281088563163557855188410590762507615141855399933228176853354926913654895930521073962497989349201299141799259841944043131710559575821519107498671894476591784160582792046601851133704219868705703576915251584879923730903725336684892665182368306637210481622147927914926238973676815538039751252988788947121908351566869017163745789192767407663372392309397565336116759773657927164147757142197957807162293327790744108842660865069912621011386483199499856392372341391570136513687284874904675001002296774896105213481936289689770330485103651324612445487671278710151854344373378793148236589816774056551414752735101667804976339248307878102345224804578195659689231153658764918043609356602256213531021421300481484403720678936631389859545708759503308566631426086083785042930997469465487632416943362627510778959590718264522516500307158640000955540608073324969534612418580079582112689215652491053864135194401670293596589226166735511648401605929222228284744663008305870515878685780324111666659007247496917437134988176449828253336071241600784300563464908654699876326473529424022953640220228886210486338283593206475826129408631268671092693681295040984512995148444289567827443403033321128678490753548066628176783831298146805618853610280322322148409158064605696307512981619896161874724726489735255264885891451511971749946310172710214330765424232939998609221001119697878964817345479858292663001784616647923190264811997782414640112149659696689350411315761278134127542369125075199029032596125674210605819892707327961342803915831810846171450839370562297766863714443140051425695975355854953502337527797623738067084364463391429203252947681314749535264893759288551955710087887913721888412089373964362572845031366272979206836039618360382398448526970627430712638193878930408587877316821615445280351341673572309659203577312908158523007193091539105286682782093994779468757182903716887349820986843432838477172031333310835785459379095909061108299916707258027189310789974179398019187304398603544906178903339101767662308093379072471209623026909356439626458449926156937166238196197150343934572674770244262172530033584207574711107779335887509885051722922671594191406732392189849132627677944072421147664351323922841297078034349936951544560208097133396267175171492874420465147532664261051083781344319156137755594597721263136274171926863302744024920239603880302381295151732168349176523142135860333368585581582878545368367543089445847220158287534956675375366543869054487605807578929948713745003897110098464800225813192558439860179610843620531019499958833902617984822791339392441919787081655028650571035744900142056495219951941397199774798407765607958201323157168779885128859712483411156423805220588009959103055027268760029000745120478213355650691594091935508859581694157815282723204521956855556436692543561355861098408632164758512597586148663128845670540694838454482170936513869240711489807766503985624365804814501096945982558514792537335368777527027902532635651359885752642447223294009768016743931298580601921653522629234590264103654146790213750462674914906038043248248515038123503789081845242413738721465411087419905576691733925583793473346896356245535526736496441332367085227748078980917748547574912041293230804983448936046789907265961458719276947339859472704343258590930902630029722482478804100740063919789827765480257660864698552851351387337661645634447789844742859796682220131022046954610011873996741134438234191580472337134820990466182376898416637484490737451383965930904126116117562971834249136082536527555409207667502710036969800648789252165496348821027686722681773971515251566814466202935466879636089322073418929940078301775455329766057215894580706069969657717417443692860109766327832664632818597765165351191117236898547116540947144632303989175716851639314851188493411219960906067313641225317727339932055034644447484875209496703589123934969105483202019480901970282405925823915653816349625326042929730068326999903036430083026309931980273238147890612687761592008165859313329533870030406292577058564569553934573592353012022271493789469919238442030212350894450548843942125435022413531923062072093676185197690641102944976733628192618999699671859842154151099254204017338815845133920998997012492570512862561289549882429001156932032674252021289434171192559800303777489497156648774914118080483060167211436989635747993056502646679720691124065181535268200237884564898008503430684065325613508885743828695625166227998017585541595327257885852815594677223277034169628821222262428942519003708804999134988555162849722784278487968512945820190189263807366361012772041419846754380638433275056378647791039978049520809145079858020539080757388617795143381517833403293343796355045720039263571163471864456294103758618363158791072907102005986965863631904420878546609186887563920109849152793446584139334241661391182429121784933170165785511234808635818760805018911055788612567183199630380696903442285582108193211495057846447131924901431784625667380268093458436772823953957383101773730062610281076452523050795446526950719030788907189354465390714626352014834525575473300288329938300741591910096074219980858440590681567799566142724053468672585597998280905843525977526386687100674944061554562928718553303528047131417652053739981740454323390724823483319721634581933810551351413110941433427898956629741610543042889160208877932226372505988197765179787388830047740480506350805877182198620996935903564389458723719370486736252285956841186032958148351436528323835550004458954456822817039601408594888295229585857966185319432792025477360521343362812843441259797768047017470558478420441226737532970252288877312385942460052955986648784826206037038288881644992522650627444788041093417413228026754530553365173697553987886356069829822673488307816741087939269888116381120596905079435307924858255262003063505322947374243780286731604118738408847068023362396385047706644168273226817920507841346068171166982445053459195491498655281478815250421641245965156843771596753611592007286700420809739099698623870675937047361082154933057669046458886837688958091446288238674553223392113429015055677376511396059317787991419089325207103148790069128181613885231815259207596206392939116493887515463466885920414124495337264084924405034100236117403861885442616968796736683267452387104383248341354947856518368003564063807017217468551271873599504200641091583609485576280579358657184180940504981813273764193048859583373856925817498276918164481373609901224512413554213006382017453448515176746090406144000682446287617498793605941437821367876859661928555415061807525493319408337120567793728924802488026381309538726269672728472282931715923123764538642134563147437706528725840634056362604337702300874569519288617024850470183627873781619989412457344443898357093734241367511137067362884053260325043811695356910540918204212185919452471157257321792496586807634581635879846789224648774287834507917760691723139714327982650241815569396446866034656686890223894030876490520605381876134952600142100771054671378279278542221945959536266361039134659397367033972940926235010529559447747631620829198961668776018013423296003199479653833928141309658496630806009644564562839316289984593260765233224516917092443351999432263681206447338046307991916652907107675145001656690392399983641175780534605458296562104979526832095332921022155702514934070396839091484515331841904978119915261874286435382695850452606918098504945521555267748748778284966054504604670330465769838092186338401223295184302161271685229792801902011472215195941450179302657853733812495180084859842055151540927070998642252366041688849477612344456695572551332321842758795628786656958556815672543796151180471284475552455481897561154657763263036355461204500243493669425072996558713836110008812222457262716397742877044101450297343450727928136489975102779943794006978460324409703213348119189419932129451329839469156965745947324656175757023685663644677568689354961657075945217447388827614898987184083996921284173709334109113735372452736168365874584852622687806781811451114321479009161279931164186808456262278874533657349285286955597751671143945040537037678455995825207854957356873651569619330382590491172225028688810597149101268220295797807091367067252054659522080323590467090319458787066305649161445887805804288029702780915688787414053791846007445255647998504139226019979853789327809248322099405281512002089167878053793160202136233779872180765439493611424324640612765704618071232413911958751455714727558442597733139285562287469161331877585988439794987650885585553946454996219068253994610582134456320610311801291919653098634407154192487980821463693850200349077424627003756923719777836571564079632347257289084739504749060327858680286438244325666063883857280975433470212778326208044050534250437871145704297561777748057357926652509518847548346148958003110516236813237399047576172086140354452790942795468256245002612153333353113466792986576751395108692058868412772998472227268393883784007372505003684827611073507109187677593286814067480078513931693453448797413838513078008915826776750661322758101358840082335207234594306691130223810048757846043127761864623019345212722957468113728568020299088733372566439664946568613238604848359158856779640314201395074857431805080332348174983889116599821794030701560426277988757051062948518777626405690161308941437555472188042749406546211878163717838917245947395805644880759385625134304822981149859821124193354450333471316320639736015160239434422244940723789962087674587734388499178867390661704957544240161067063660680260453018254516721599022828957198929671894698964404535897881068383915424447368354635785826390516381659123715440297295040651189368181313649252187001993398765917861181164595418229812668463679243779013018462000280291292229043719891780084773890486719367812193372193932342816908551454421218230143751078881353109065175117399329051159692153377887005585043834851204752306909777732475816682764125743921290608864662062147884864875285416102625291703517595821849306377742071577544863618728559364557361299027750134643599572244856619913326593660506796276567671381062503642370271361136844849705380022108363268056860716142574381909048312994541106244353908827405824906948645308488241072403576042616377802350941538666005693731170269157871149212473639723099065044607006077795741097859331547992563932473464791382629715634780659837499014492913514628148750314454951229292333072781842628354805410352405570848815954306974898440776084467487633038621767670702255450873757209416149390168411804866605391936208550585968182525167789323478893522111266909039994867151644561509538458779561804676465997037975838848856883687179038590962573292920258880889788823319583969043711852006855299116489896919445041275442513971511807582544642528333649726084140553106075146693263634028904656784990626634787434903179837781639452753149425950038285209261948647181241865834660174026046164754533255804597240357348421716985017735359672691910147492128684858743344816005306392738568245724379193108829928682209256147654901372604425759227217004074193172954244801741885637412432583815268655814674815892960726660814519654798971959913268172560274844567672335699882626647768136959846189524889972340362569133336951981397617471294522301714096630192132837494927953603369160766297360134248283557595631935294288914682956703721394102513566635254132236743416845426667306164423919113068526617428396520080760621617372907181534248165954855371197635018271866084905009816470567014164824153746668860125544630244706874378222714085619589855170247286297948971807895359482098639290920511401021055213190393660770675804483931944788667968933805390998938532414393177529627158268395170373656177121336739315691234550415900373381442625691012701628148075751988526598604055891800223196029288497075662597802770336763533088572150065151951954506699722235071399298309841184041173917854881485688028139620940466328790209735385497661444963880108657425870527659195898295783985392942965085260865694597833110303335850217604922069206941480891958890477821637062216542084393859202638443459396017397856928453533981561914655120600613023917276955407303107579942460424494434061700894075618883146583017864553303683140947829954722856030804536291254838011740641335625788311000269589125659948610383905515689927746076528943749876854490004151376895900537793714498454125083765292751739760313081367843159908426067690830096591766764924416417428020638142178895749570218272127563674776127434927967636805975616757103766773874322643899102135164823742112676785316845311163890100470608069429817465470852282894164565356008221079716092525296037777088750187337719579243251605781699761040921390851669407703449694467476014912860795794020958448136316416908369806946435586236088539895058352423546542451367756496768719245289017598471929024063640640002679295387291422081070624902468089137078262003091234984830347780949943101585221168549364457589169890692007001936051006070235825747000723018835472804065433429259081853472731580773348399448017743499615788245455228097741956150525151477505847294087993961790266301972742300941052963038597858012001320630368336284353540885532686553246950396122186081722999402072355828931716851700602165815314793684974880584422559101373707642970265534137607579158470723318948060346117454844935499555357981699567031099103723188779320880232718824732478091563771304258675033302269933974583445013902884133537965277733089591674983353686955157843969371679938432207039206142891417871774405324168137247653267665091406807393656718408030832441621835484955002751713600407949689837044695470976896464092282223017269176718218919893099839525766954275297984401877532340107549500164278767841688859355972450959072105752048203845703882899841285897678565715263506180093857461905594968145800015626260140995901963903213210368671854939426408015749667170400280326024869333748177095018242966490907836595244298017613781961619090227856805736820401264573340485540141369511421204543905225782357441213064584133016639205543618398494052443292076313423897350307215819916756163844824661445465822961943219883101644093862219900164755777456761366553669222832522091200051074527112274414290711088448450436997342859975250008840951047369083041904007113119432776403234456349379229922666412656506147860008560065879164633496387310273903789493969046194759805127793684990595134443104347324233498139549394970519170640225902079385919836214827976690385724598638841465195256430939131747773990942606011341626201597225885243468520692353272313914471591729458754253492392220766224124712676399942865320665272466248815495206647707405721322586808340945809973706904589934021241729551794477789113234731571870596362891683925166878484794923301462370505631976275976860838174535658148649926699547231824975568932796024954120512463311611663992742274547745309974949402648537579212146738168867640384375184695189180383120843355391247922944720082586882235557079051860561362011253203339764625978649972914325899134329112765010101220138622963195981989746632270761532554973647483492719123959038428307604839110609571299157687021409313137761305646310071314875169929887908089909251895120422925890773482634597687054183625726329193751961020070403421460943971723247684384342416062577400831786831960072566180987373913506189534526374630184338729898440809504107545678433226391192180004409047825176589429416286367668215480887952029459513869768555027053488439152618233243457031363691409822897562215413335468719524393500820726158777215081884053947396073623668715347857117872556954070012082556140786200270500186414654661947581559716644205855908614039125984316914347472003168053497994692198258945304180876951684781231342098781862667176723496790604838667493057450799135632831379905198371431675668524812698141224820166679104906784960723042044181948531876729445496940611267654932761887994695472164155599045993332157871502434925213267934165370875092676543124852657355334146581082747755015885109907596692408588766830323814110900447489516598879905325373448997967602912624494264802869882769992103517512919213876379876792752142157987900284335716336169963097394345212997978806967731530703262561097506218979047421881936283275334094292560227296119148235751210380617206649962312202645396215595573845798215490112836559215081289222872624730131929561794613244843878776016177123514484680272423990101533614060693824714499188067647844095430525205582255589477979615606812421438285840253177326263250722549165592771713410557025423216184001791078738939162146037097243823025268585625748827752129206754395354629928176947156803875951002211118438693824735152505918277828282267400041977500986850474844963901791246845001897518712319467019048204980419486510077050378328836391017674159865599803637791937595109746798116535763375291385445814311629522241701085462156870340492638977941472143403903262576837482253047919818152206236924932411221771961932206372552840926653099979706059894041731540738139044442013081157670174580636688692661002887476475354530043335479381472859574571105398813842406318235511906351540936089384477351826383468839908920357510358858859221862084343940918568165727117833788758113746698995671146717273915637139307273991859334054867907487991017238575836483399847942097529098218471031955847162445122525240480067517597357282221991498381207614113796988815710997593717608216716120463588079980631713788935204253099057526703378838597453783782813739929760932358075885400860258162620279403478612606080374201494909777775605188428607786935430393956001580070609814600284963509704677436856739103577547710831169966824130556432777466135811808866691063676826902317618494995589920669011390985967606950483327358126570061026687301095120311591108619948356948779076977007963395434760526615818345308258747585150389604314819536935825657172251215811601801218119471281584300926422514853081799930349730565688790073510929130906897043381788241955143810477099850812310376763196057404673473062446948455623527525994678254115429025844713756363579264011583102394080539145232815051586980967996131669140531277133971141104261444161927476230434897030657048779926277502079241676953007467647200576186080454228708880409259316195700419484462110535834065908221062725724936060552078600663622153238965815127824737705728363757982315237277659857620197633339842403579549965910048722932808267652767166591840951980397715620119710324966094229536157640152353403995694699556727062200210972098813895512938858989503283580735672396611458589829155837695921746235406482787110045171310751004320514979969712867051433881801564916193230642307293120739986362192676629538174429113680999624021985100876024842512696130381889315910111224172677550874120673677831423684531134548272930961771298408626805285843297480686854801554591986811178463400108587581123566712814655559244083524872571869885569222076303223748898677147992934092178554868387233672678086426578903792164894269557985538243370846219298064239703051544192211525990895210956446891593562694525264190903702542769281293141740953088681116898416894079267244451385905142920630280992720745124566431279696060027820321098456148317970192996818638339203167992157665911266181854707989531602301866029422570112209359068034467776483503888480040253606399481332365923893798768277381132989770907219815923767308796360370558252995100899858968607912212061039089431226260281947610499520664582725531868954947158291348942961956852344796083183723307659054555878101729474465455235786255594899234076576217808541399080075334792161685108370000166373720584522905831704817082928142285415331614661241892595184286196547526143076127323674756512814205201414283090609645321719817597116470550513878367593158706588147264347871243059383338522410900249834554523262065510227854221615932165603069459192715563468460152941082242564334893111731999953694722381946976216172267147708516167453162021735659097570773415147266552291846894709332014152702405408841646825296286219661125302365895539132216569901543236182245128347352277443214130275519654465704646325030184701904206586974791848900226763355178847509339729496163304312315442383380672014685649943619206227892802845893891881196835131704928245087265336941583155084469129421460293846748060124853667353059301895133244960000119792774025883532554920843765516128039663683440257383720134340114781760322195049693620018769912588978070668213622274900145853782402465230170677788887433589950207850131207165853890041273243732698744605201587038311035083526229437127544163538795918407592888384136496481971102126299636238275100598512373745612526872686089460821786203578148216256201050853067635059696326147961214417497165421483849092264774924084784963200521384883490119268276714666758016936910725704054177903328036065948746166901193902459439275442513505230864721299133559795581551551891497949362233720914190646687621312391012648756644958200582527452625313854638154965216285149567200100236948527143122500629771558525324326139061496449028825210604685652238201283580303343202567741555824849365369805379417779610007815436581236211550392315352705445186619735291628640417175083042282404867181097722666037998288863049488566501210320392350676923228404016796245504933474581456870456467017171111246087857020144634077524304167728358838568793642798243108549815239154247688455868300648293235283962274784933363770535578106600678377360983088102675487420914753520360439107793209137203098555746076754464116702366537456299150664463802029566275826759646094796231753741366472926604938469281174591805282857084515527323168069156209780104662700522838214938365865114255494673688312312194287447331575757560158072635934552835545465001851393271280778120866990559408617027169727792158040862349894760550908669034671889304234170446586026720357360388662303663785734870319327203786524519411857455783530373072870821243726385938914673300101775508413157837402336016147580490203103442359588973633651509825061948570296360644325915679085707581927595892186295501350442217068334247999691155851415610532595775591053858089203593413439602420024674354477935850183225911312076204565357462208162291805852895736225100072021351588991634274832808809449491068898122561918537721253227610349250737874295763356796130298320764843246382929283465460080261170835737250022538327398804223008205854129932868269945106089699140989079016123142521187777349459291583902876046898292868171471503591711744994957415365436160643360591780708348351359809472741858191002493267513158779959729281798478303449679799930956955269597153056733775824974789262343361713999184110846376031300244801377184726929114021824460298533962133184903424482017457555374873129237520842130144415214561701494150194907822805033061655434844085732568020758781472603613620129944730741449448450445114965869447235549888651347785127153192105611842295463580344510601252245477910063649486155793668155928352026914909083042078481915067941940503526543554604726971920151993149118442331841329940251994311546065963081455552037054795917004774823889549859479619129252295669949460358734424799004482284363085634939292635872615825409732861878539804667175865759300289186692446763205853993552433238410741735643299883814541800585372358088432738788359120083960069633848713145546801030549227820455870947389463910726657075495912386374602794599629430977699475783129575873874652947445776918343188423600846110233834874969738229151404963230622343555649676642418873513688576860267992719855729483099399182824715431334644008124849156781950469479311310221658883323885745534599642546334347122961900283113526128921279052080971794567597148998128194052348128426017465837265491209029658413057095263213674749766222644812188936752041892198715049565934082638212570706893523177641782539018063593073633016790853057764966790835118771149061459360366505319703531705150025669016294697904690986916442429068227947909489090462395024050930531704255418422578024600591887152365343239202668500867237946237645667426777522327839134460017889914564889096579372980686682084521696895690826622931411300275581795772825000242800462279056372347079972608389782115058108106291511231777034459300491670200522721809316335716746696094877110092679571821202751658366784854117982101330451245991617789926812548082098170570695885901826696853845813064239163037737791178128124862130062009867978156630371819263939909567767700582471414412932247312633489238023137028204077649459280997980002227655844728969952752011181933206235279641046463562738340018499399901965878626540012167912402694503560290317176280517923513991030541761995471608921413676222185175762809171186091010507008772814283732038019814155339835383039149842205560446756550781314908792674847679316708771655379749867020149878188773296924214190208591534050162788609173216241100155364852889924377704679842032817961188875013131940693359075398323156607997006653223851475292187742706532010638937738973985698714821265273588137814882757761866324806429911734900067851509116025878938573319938562561580487988110362630439330366234220427572605941594667828930289402377313524480072882208168221454266004499655781997989454053209821475736471446749200464567271161992910009419350585191514744339846265988000129509310834830001734205893803464688832106644452461942412840929862633230962022972016372445170622178861317328833646725864221639515840564724367968318332242321934843888621222615052181573808870982143158595660409132405016711695054559417485850383776023733179145220997199657484200224758397632366505121343615820772349892777444026244719769941521261194731190108992216747449117477245277885148752611399911454101423233756939035817955681599002168577133064527267438891843661371096580218051629768113561741318529597091791094467669635950995321108575689654801839815685759377134153517178202384291541829104810277381673934575684418020730988078421501570713212947103433907352232464959694246316504643228468178304789239302883452352391081904250256308620721687271346903698395027565621374840641693690092215907306150797565918762449199796867727561312688032124251865626610054968421301249237003325545074829241469530341699694037976688493395015862765184834691448309687131451503682743055479905980754814241515931811309210200230713814251191285046881803444515339623337664899906662146489735890441367589236908513442842244599126553505544870420194274266250011164497586726233270084356595860428510495012440000268954394420232683992340807243684348898716314627030122039223651716982780367997581981832426794190097367727728354935251760369339896153974624501624106228420722993580113364612436610573046293484117540630821116450504108586090516016863490546826148412645465825509562964240139364387140537130639847765410438286263016926784962303031166588815535792940271025558124329222656300678761339104898001190840682238668457679698716846883048806486473264571776412917565292213026934259068544932343415241620913564153265761082796132116940564642326061617460449501786698912701139442349375742035839996285717123762907113582496555491894105186848957163801452847086895481370831061328287619731612866534146859783643577913581214331138582274781065409101130189777657390705310393330295149704206169651788517888623161287384786714129716478448699536508582863436457825117341041041666327528932684881999085716693479581448663285808927684696626574282817705531208586060094518043707463034667477767494127027623547158838935349612604918510157645736677896289517260682717922397353759266160587126873279513008193584845830216449351068925068268375657904712161822548515624477151102178463435507193459549794077770600485608432690306007096108116457946736294798294878526989004048403560438887535331506954689709751649211946788439736592629692632488062797326420649424565825420418605416484927717794272154477572947256924081722074418195251085124544584173825079829278610358957381959351536434602917637751231560286650295476805096458714664607495468175105428130078750825426301939341622086219045764699906620154285478374233918386627834563424435840637437819642307273631567888796088545017303229911695353038862741948333383136498107287718486587545451481830216464308615816090406048268170924830654541126717270065488433806252493295476321511338401848605782541837815461965044773891667310990833852021713116642750445182754341522595379858143106288899419478223935929849143156526455040291503970825345251543524239710674099200063524279486891709677167074001246862291432315659636245460391626289399039740914674570841860254937806496783850392688309405761086155930289103807701619088257400651903981986356830221480859455522599887959986210873637036196039046155690361279178665436840655123913794005365029761271813036382257268985201014820363031429620382599419336880922264474454936646085268401556382862457620870832803270944257962553697962448735896661062917301321981790144941540171708314597419243461676362345315000036126443770154585299436596573639349361678265274284570422751615769927727180533699005130686674607670273543951901058186875601996626432910896256528334453574946425640518468691294701000473809004175979628821616053579622697097353816599225642819216285969220390807829947040483135931201620269682470629923220931403314352847493416603099648096254254954377013238377033961872506284797730194099325919310044261936739370241427145691413080184241221986843652925563756366946074898988780147819606678545732575481592347963293401184718167022564646262656393729568494742349980183076160018782871144047174795688560602361773235879573161544256467637109164712968362421621290990874547490896711263404880560280668593905620009101893193210500802046317741413315036204698878212582729840539202159922127384424038040321042626940186288854100816553711025376399970522513730424790419647725871007715398059783308072117682978378183177716207490063773103853643988487908213605334984624010275304229813435714840900428457529572502961500520988133995019072349719598758637154531707868370736878630021413869928425645005653869614685746320841494031870445675986952605976168827925317781256333849886478658022206945946286936692879546601672781929285150359144732018051313660038631432521561689803400135129046338670371762174051552147213794822599072006739696155330777786181196569670433377719357234620423970350181354356060681690288450960397288901062250292108669891876602867334072486408064422414332299659914485957515183534411373662410015551639468238240176859805955843164537649914154460154756492637942323103636612566255305876369515121447036415265435437642813212273429252043092124800942237191528674831812148742783616709763302184343558958622771686725574534338979224086130674387663284905255121459350036094028706404301803573416676624024787563638766028597309984522369895643540857839652053664023046483227326401188291646736687903422834115306213079335252676769342468572940114954046547647357693733312759678000608985547745131200943795436792399016780577555590659097140656526400406969447487442999860267669395721787643357925410339370589276021821073211271482485965829243340687421884697098554439729034406464090891908211198102472378784651051756495037890537284249074276043455624665790392317199232037336573329473556266088444243643604025060297122074243689359050473444838344323608312993711823753386601341402970352268599835139075597981776088081612487038455757902436620044304118375597098668448739084602539379163131872326080911659269639193890890857715227400351956913537784796809296937364356902376500799236421708288387565182903077840661088809466035346104051331278322167250209088090954623984794112961793329588486167890755193854931424967609164530486890303110109221401038964518720941474373431343161461122120715532773908490157629180533172118930769994590592270368516916425633161208589064666741798599773527559439852590404186586310573167852576727069974725021785219358701159355090203496841417499676862420118655872541299296082252915803549937711399539173255337391582239307021800179270582018902635051556604911857431591230120133881014774654764447676100835878495187001555902865691054190592015120716117599385396603301643787543221865329131092461258074591222953158082994135279726494491380181834880498210241940233221418756149335083901579596026754808644035180118955669599946197497673455784912983471588047789963431569488058737518307100079818676887619214973693807563028565584017125889326317580845615747530140820646566428614122620056107750644853156102233555929570987706207681783044388360171881630569106169420885067676560061042448212376664247116137901939303387352244340193790721177047866545919867482954480442906120109691554990370284438805660774856500600423038694818191184875668580054279486489492858526142633846244093146990545053900400570733796842440852434840510014522738179939553299875458130527215709252897140595577855262911857385218503379936255622545436856205921137664927178774433078672412654233940235796541362788330571784065691472915428883572150669386895084879039825978803470713383707209474746420693333915872221840314217513653458366796816020626405341014172528543562899281090038374911154269331714561101924934943661947635951341310419026821473384155806567624397428260861660394053685984628046519580410898932208058245422358391301271112695522018943677277979657989192542712001578427171050410231257727871974383131496767108262394714958988998957316924711687839782616903861981815819809103284114774723764680761370937907342414583003095530585939201697652285399053318542527446582741374609131761739908161124149868729798370468613555533681436264871820037674096104321802329797317866590267467777258255297509665503090224227619691789220708960250565948788636681178100496394485031999701031048183387950071166128973469789078914235026795087231175505011216141332571967979325755285473857375336187414865080719289126625567960214603981565061920685645270611171703986214191196701166687448837211334981373763889415601730937163145676663009935170899005869756333525541599197737497466227215943144141081343964538243905542318896683570061416143714101703251511355144367141805267760813798824262289419899776139706192661736636112247587367477442089695600087779859931810832776711026133186151736085234838828637673890238170564404315733091786346108087967226038088609779816972214144376209480690704032004871666523370990332910728014601596097369407304504246627262773187273051984283687558614747517832673477756688498521568652719711678895002952171474809402088777960521752243514091519898122624112365992810468237932280375200268359197402731353274619279969219173527324417300904122557363397453199229698027756794496708185999735865775511327799135884997376135593638606477694720474649179287711835427557939332797362851841394582915243376218406828619330258087735076239475709323314082657950009143196949485495854964025597751588642760965492819563408500541459447470105235971029689939266484086151025543425643117006956254127021953961936481936118639676945345163017170625733617309213794930137275376895042019837003385125644222348060414628986582694320070014743994150798695562072271055171698716225035728716064956520930207408668203480801596293434114396868220309981035505567069299065119878555692839670835607590058977159281623581580125916686456258899943735444617095595059788958492319502410959259173575849877505247004878492561505862242040019794865279012404287537036979950740388558572080674865185409519209598563856399955473680420352044622820082119158523659386473321729601376576046273609793731671810035750633312196336650339325496676111166343246943411266975712430025457865480783105664831283991763864613849701037334557666077629834631044447803395811547538439185916251543976625127684408436172720036142825392361222291007099946278894255232728914468733433064591367992493709708136330593621171383613717598098875698259271821115762351003167229961770226490001185296155795085371902975349809090304412840183646247589094377540052808261665760161328344249287036771254962951901804384869855610280862224552669699098760542842802080726680383677873383556127842467044685002877231579032838477698790329387575667884914431975453051347924431259366977217021780054569552991268842534232894690320937507175469865595376688258785750581679494934371550540079418488907368753613482966130833591955904917056364082304581323875776635297340012974227450454293450882058958374830535485226406671491978399036568527428003007320486979401825829074959861129001263351105657436804283579522145748112232025944163294289865307574655017806875443116623447464066199695261513446062941062555487805892822990529779237686234405323559099439480589439587262397196176098494211890992391625427649071015222721792118109057324328599680336351845598064954518862751644469339295838119489654878447784360590195919345406756932235963892903237501059821490160607535205646761411196879306201730792279647342941737456280470601596167373202346295255811378281854706120910116118643122206492810969139762858040385007608901541280240424467074538612080869110928614461672458004156998012560345463441469411958533122756667287298768511536927368238198484315446435587676073797939089546200840632188544988357127202122028319492073866028186963076569795603230485251846615689194390053175870588417474466526378613583189819826186269660855103372357371150145834574991584380457053662656095877635204727641533745535158899359910786304519366483183775767815181555556175828212167010319837688146931436185120432349450665175270800373433008662849669508138958168306861812032921288831397905967001693479094358663696277355285520609266953623466710717082397500182299026876076632812022591085123136305696313347702738351636430353742243794661867946413088298441227661080229926705325342085510817838256230821988187395964920402702669652504536316065558400038508325045173165932280572171139992858609857302976926357313296749260325699468980572900976289667950705213882208114888276115254660800845081139475619061685438685521885469589289125565987105756369002244509072763907235671219550340266772211322339494172424710378339130210584222853035534021544254639233445334211156475944527440246308966246817266675516383285725876662116154214839438426262505608379903827519174459549221018545149030815543044029785126186907631613876130866075747969675701765415837935748562597298705151877217946216582577271217683828354955690926411448245681503904689599359408092164574710447334510948807226361880673339320361298454008289885435332752748834027777713831635277795321106674139115961497904302974130689234777286153095098691039943912620682790390265608433401433423463009323981482283282463625518285328929572403759247508920001258199387367394296761669300906277917326614435326696613274591547304256707016748452755118751031785340317867705133806496466034118988556334861538806645890850083805116177693106156820013813540657009561018658349878489843520000492033916626799650212467094484511144612036124302402223346605536635869647132596938693433616834405590803221109317406623418720483134813858527401022227288668709407221348707679993636204413404973904694607092428979083274464822392702566134532570977070562433104489659841906275329290311406702764810653976442839585140106980902313806457166487650551224550230218683957901516159638594513201072265124799921898947650118884422202434992068104803320570525274776203318454636350297382261785721152145746946353141966941583060490535542822948689572491233619799963164717436992340037800431509263446782571475507521171259679944799130796172772283666291242034933988238960303074099718233763120279298591888206473303451426669393011492266224547829876454047501324029180912327412090960785624987082220009521514666631247001013781430698771767686616806368368852042800752014955657111746751817549182073110541675432127041452826692387897913023068804178270034916349557614950512642950286861435167772403139898039194596330959835025855572495053890140429185454079844973196055056558358677118682336324570103679625821671759773520403284460354261017423095846300184670767410468956101410806819663471244220725109788345942766635926950139492711279188522791342568334451550632199034453944192424045085026997141118095255699415336275249456107740622552812049897556637898543382162556414879999548748152729033488885633794761639731339228785463602553729123639201307360418431839088373789257619234784735039135270474729781215780980132011345281137459661679304112180384949494845433142505453175294387676038983839945973725876059122131026832786755128653430439261815988018739705489178566100086733876188837467323708923055863935475371582602041343706884292686758613042375737830280904303789661333410508885377025231284119554307286308843768443004607313318337087163296403698505048025138653954193113115661085490251534500834844454105444926782393617737509094598637183764632842864915488767486193592019123687859495476363782736683994161218905567609422038489981954521831878290251728444403260490160593055503509705884428035932577323458319969173303906527037458714605136165819443917765984202178349216643655939410882891296692751579247861109318119667343983774933254042475762855088391190433821859526539038288547014407101097951640933019118943988859340370884848491152800778557452956246328984709226334232818640003513929060449692216581192605340075417438735321499030700212852332741755683871529571710530056453565255063578809565408257777879277479387657360726535166479030591753984686331780405276493413857705439916895487651834699441303273910481199331969029063823377173356763824429003257394357854781807116935690766350853915393304980379659295496095851301740070228447615870404024419853033256378095570935193000607363611571794017032841212320627483025084794981750611069763062952310618961653456164463009008568476805138282208491334456166599533903485435163254927592879208934772715197864422398862567037414258939587419868312728208090215996015461585873127058033886679124486037462613873209802387057428380758289768039648553428457278352979579481171601038508223491278770327335362011607977682596520745373560106844018795080366383751247365348376353361656156507702671011253865612861653678136919232064740391904429646635713344674925386984704196145239946131068052029314897037032235523333361766936997911355161146685833019242813149212836503062403747316515045600755058929479703456382886381647251357199112505013310918931552340019558213681344361678763817557533182221759022729762312316058758728441956087179672311274607003883413468324999892956097272687002745689945035467580238091119706512874261024992068484622968584888273884354230351502858047973285475927470831504101908101472288903415823380072147762522646638666626646547847204213466887181775006343325656952177174276982889601393766569557552167229887102958330444767235849955368536418303320091637396056113778189217367383269724044201158973510150922304170102285824539325485118656762634153036362909664810620078603555523972119076639007286097164083886883827844899196296663743380205459762500231426905376217718199595141783378281028978438207582164791023283278201992707350934858452035586005160899560729213461788154743152194793909833852486436521332594366098450114454308770080935330637288707990605468035100414385471264102182451896649448002643155657115126008678414995857178452867589218363465169040593664056649826415456488897887107453182691066439248460184120159422028574384907233453093642096853371593266209847788498657774519360813358722965486595729845166300644114121857252415733682580985614143801617850815052667927249448011620351226675545744869937647364786266654060111500014770439309078814270951510494441679348982586879159844424496444630023481388182913112477563225827309861972397953693250083804446879273286335890466329296655525883533624765480362739263193696588529728676080588432817621488287440412883383295137596583810901904199332603169101325041702245657128991548925439448223397585747162071984531038705654149936219145605348712414453373488914872762552138279911859281081556105766516752145721782335886793835982094760104931551860836513168518151162776846462200227130009799043092423767438522371567799342504525316826412052603227605654758286501188978585966149463766690659751065629103910134804224028630241295872627892460636282237623305411062977146847217574741738718937742933917616964433179561711820403104793338960748665973328773914662619437291415729055979394256092442607785681141998170422378996302828954523222604131661419081462880358813527737218371614202544030410361258940189108197211836659950163721866205164235246148764737870942053859405597190637082686745359738367440462597229953488012865890228691010419893370178547099605008598227016161220502389106058121890880192550404598159654209717386499230446523299569362431362996934726606801326843618974316360117066511170184490524608949289780997979230137778417398368482689944424781019736362775375889931428276702702699396913968126095260012385926029266204279474216279067321951372087077326335953910006705009493245511213047374941241660232217598172682695854093169966085648525162034651811823974831471105624608854247891793622222672179812779111313649095059077139774146607088407137139550359382457291928215073737498635897146300170658970034547189885266591188081980007518969389668454726068553847121187636775991036637423406574765161209674787520204182597557378101847070645885174391548063094650687756777695281016131165236770140630178876064404318123017929000288872093626187916483025511460774908469345374578216217354938122316339284645117362019803951175552564015614149278390585287714194077715108842593444112302341036351492664139614725805432387536223949027948685863136392225677163838537902900064224222058275096408759702256866207971969371657956701397290877303938649882129327189891285307188752577257205339758341887253139127250666677052846675738040807818819895249692542689103258775512572195512222778958752520861947207220509589162912044963323110151083326155827719347146607203424930513581766929959186540861624380183432547492998699793951305429528987643435222455672793452280020421363079529243505315749013347467563000056588281453450962026249748123765802368346479179147873262574720651624134948576565093390280532054809989940417877910331033612827287924648130584324845073571150419964664025271038346935921809444120039326793241627594746593274815458384233292012609907610449218041750683090027745589079912173235578045425048558664505544935037879449813164991621023374876144953920044301314244923058572736975645397337517572671468561486692332679776230415345353157929071740465853746569479132350195123140630450254956144158166123699023076102898590641013990113597355436630295073355823121671424065009421052905962402013608323270457836196498030764682888778757523322998914655090488178829832571836658010993631680468696105463385338325176970005666792959285252317235201434454872345382524934434622832933543216405177772121186250460909310633655565491977839514685008046083758055953735353402541268247356907561528921604503317885782967675087455384583271074656985742756301603173588361458827596879980701016319517189909313212815219671458092654879748719650157292360782264499319520843101031126261686983371445471489561960234150477558577042043600319972768055845993540934529594921388055537463991803743352389286651656994360803158396166792725723571178008263816951152737451748932727091752743299090246068298864273541399896894278958027593764221226735317382316367802232966325284080213963972986929012903639422775234491698818031288036506668624671064453195228801574422864802987490171218293118259163520306990535769818363658837029580911744270843010754271100190663366699848223124462048005004962540156970899763011874973126641935334473784814917546299471071806876208391430645992814344811596761059131567835256955967098195334619915059274955692873243655687025695598429277707493279710685764980626431849517691480214121483754553407991863658392506390512937835028010640395250060255663673139373181508641479477573292241382535590460670357916064450107154887238139560053896030290320633437280089067038597597409014684277288399219551913881729231879239196661150363604117241414971561402479378902001341887693369081519757396869584833743597256933338825281127829636665336575685678151375838050751001993389756860966890063248168361116707629637833876171704075517568769315618426604312598059701821115420339948568891306663073085738573063978178041011905875356928376622079322299337295310846285607204026720676592526916661266770286385889817505961033842302315890987868351262120807025883707116931797708308016105715701675430818687008927140574247887278602772887454135901335973362688613571685934256585709732189278338542137958700949030384553334059116328126074197645479511429224165983054025757642811999118386794336427634484723204133728088852216740291467402852058476152928342167598230891897420702963736066201253737899082471694150114817287594752661805112593237428500237909234655802953944414654207590182762988166076006213494924991816019593379943872621019612211027299289501997908035730454580814499686766754504265883131122340928450479838293252214505939432512719122881377236599277628896720977166929858642854111768831583223296911425309424557559792988354748955294625071748309406606565447952070785070400374360990387896739826992844902832864236539155256091352467315498898831240769746410351587742365146379107895399143017404868223771242572381620982209179777242395073851677866103981415118296401981680266174633886388230854788105361169356666984196231496341869466919785028723389481664298001525720700532759935356696185219880570884112333640544916896248878686787015881367768969379675971799514280820181690720132430479852331222050715189769582310628740708421342101557542531423005904692697295192520536556648413672597394086965159071439297791571790485863906380285963845851227378979323153562691722487144815326808246630439167727294463008018929193012493516790402226399215690757581801570824771157863777135666780914513052265974283565588307936865382246315419709260233645040960445529493922600520003602924773815768781680562983203418959300717994234967252753626221769335264398749774375578320523072639797346941431214556837300043465779293599186890606609714121136299855401227150743319134034477021857575980140903171819325731283714038975550497543504895920612136186569641289221355377706135755188219403078350036608850379923843811841667131878560886357491157969181601356766668551105377628891927318934336992937726174912834965233937283721680931287578854036767567870113479855232750895539210395345507327753938689199262868721411678784560607426159749156002749864995445349285868140552745067180802494772166518160736139169628054081151716019959421332712224067834380892140442828937042757990030635713714984370981139064827395736865953209254003540051156793478838199047110886142541966426252541843548083397441201170551912023610851751458391624246775685722870234924829939784245059760366178778891230654859014809268879370937862174508468684141543532510757677217826643984474630510828204807295111359902133311779194044343421098968776737100189480246312159807514865675447479069168604845803965331044734477013056059638537803165690235616999165143861775752373293893791242805138683303980388513352486954536859677878564296354812299641935814343824977359846184771578948148029615900975713369918843772372567389125937143344585627622192222563525350096726636251320906263080003749942047560856728932841583092021670408167521154282103553914169822455944525550289668840876891628376264296523308683814294698176441329599928976761790732462465630669876502263371534779641376022616655104973284219146920347658225008293518861298445665167373062600777486789040485797473475456502929750149642608348593031947947831680424005869430402540850525178679970434070930775659280850275859993237778981419071059091620524531385560017163344349376849935727265369128302611163535265188873470961704020569687217736093407732437539479981549242205836609361196227288458619856083656534326851724387918483370054597338294030433761650230149211530089370642212131111533442964488031710969497142571639419899608982570558879697222969967847735231629892017129961980769555209574942876495549162402655907371499415291467139184274209908235902495696466017739560090418214657186235523461641183972517228070994066643065586977865039839297891842906917893970716752509714722692958179673624564035534065969519408797225544525617784816575471164904507680098991666538675304806229981714603518765560443051421575887134951001126183348698185781643190811750081157189677576922402340164217071174143460335440758607700677218491404006101532553980486326498624067862059104026987990218974182339915294630702118635356959610132814023407940358371821471593949921920461283182659098405584991068764692755442180554158221744952559011091110931971005112941609352848681181684704278071123900882103734725343293979498908790706065204039251772940416232026475908188623768923569943173801503444048238454262022033398319726157913002665475321189095976583734154025216173691313413008619359327650006186591875357874100067555220767312896138801419487130383383560610596437241067713238225346233482194755034730692824769161864800409701111890913000088937443929371569920928391944921576454178821321642032827508901984882352238780311481155890683363777690263629334667586011835117455798978318174186733330485008231244517579806388496785219456705349588028678932209928289359763831842364236200322740071088538353530390226371750450357833988942346473335308762380673311545492208888633309715725142291763557539338447705517179209014093838302988733139952136524587065280233026578915764889710740819952583379963038944908236978357107320645530025484265786634909748193222946709215315590229392436973844660478894057744445258841870543247428328551645727955803098032450622888761731842028669915557413573417433419202549204865844447613530125186648764556201365287894748965775133968025001672143847206404617014882542297597613684424551784023533946657832386841705324146529776359976168898717356627463024983632752525615705567199527838734399019615811372218805507526351143947694848237074988457383379868779330652540883012139818498276020563398622461428191020255022285057021415814684527306694787150270759857515593223591252286030547598547983519771542427325689791705036261806606876728433954118040117879577267998659824740735461041423920320626567848958541767045461981406865020157595871740519468855206551670393071399176726891765877091073742857910677118209565423470196133414420311370392286076415124698897326005293657761812747619905157786369442994415770162899758730046620292827290024152275939050191419411232125524795049953428191482052753788901357937352437578860425231957798088332854103851122918662997598718774546500963204781798033231240333907556463640447017276188786789795559945204582128240116077674042088692993818119327991615793369462937868819080023214406648115444698293906174603965200761037565788756042028616319477248733033002094227109883456887057279617370292413152033859733596389558000040363146326501037602981809466465808717398646811949448110130640203840084191884744199485745302208089356217407535202556145095606379466317888489668991129986327756086086900242373548451215252121148349233346676369285471166292152694138362156042823656994479420930514105341795336032231653311189881833376638455601441644361760806356063073117114048113611173332272273803915875441607538949411072679166741983597020080551111868516019392151426082622057102858918684626155997885668955221930314486451966169672850774853628043746224603871545809506248844350305968788042040608014156474393611288944268053289042016007599939393605073175634787261759753070125367735590213283344880903705162647411326471139539661612733166701196311961339238683307841970409087751673523156154885700948349869591605585520613702644333482125539321508499480242211739995976071660625334443112985283732764433115886339229541198763013729502145539601706975120911158504845945082260225454664529826354070924078869802980294474685799854297750471712534229812614400829722124446553252286117463194007384564555894922786686399013382814547274896413703758518808519422837023723846314626165529627760545085003588857194947481668773434675728944072753165541008007534094759653322192697521486538161890920809484042790081962403157133019412689248590617336037232015803376387324453291660768841243626082236636587192908905988428829295986336354610051680198319050161062476713122722530305259687478652395590655918333405894543552282234383064453110908757484118013284590366300541073331995305075200823638359413020566072763074573315808624513782248541090144255068575861953377666645988302849009646843667497663453744441204694394612574719999607742050711307364105031829772194130639144899223298078283709827893961718033766268378983926571136266369936496937821723314742829833789868270647726280694459933200172599091109071157816812347910736168163597864938647736001153083648235326829708011262165441209264300151962406534746035545348158386580261427429433051739868575734898344940351987096174099674867352297422818859305164855913357723985203096084309580004105138813233107045331479341131220496756274732842124506359616971713531750246751339802076523376981031834075257626559242606540070860495400592929347817329324042090520729413562939472176122835959004755959581518175602722500904039498977146718114647621666372002827416584122016713026140756602868115712546667093926762827341469772564552254607011571701781948381100431621914154549351911075203320287559643001830425010566755556587507499839910938632701870414342480492508306646525184532241839533622684460702036480222500237048224611551046197850819152308908869958626455663489934374253393911948413334052746580476463857229474443082950960168378276168324464192440874790177302141408292019330774638649135768984160688765379807873261394199405585633494602233600546006283614349288927941783254484039557636497416611635313576156200233211321717751651962322966687918908606148720231228786669244694515512555205204987308568451908433770256870018947160710546154103075186620335175839402722253322592210351539670626851588189111455314717626418336838324546559515678064878754886406514215150972858282520858539669665070135762699697165251486273886678012736518917842051586975224495180399312003658442393165269766505922299222431668538072594535265387655286721274416360331435643034153225761853290839481260049440451572598868584424031434124776416126782382137615575146805309497080055875063340154142271583672902529820973449028353561212559880938347005555611174755888479681512850854665896427696909326737325736830335287564823449800126248867312570889726926612011374618675530507194177172385960855528657324929246591718698531580078692769388555088172980557036485246473058805957701235348832711331625434227586469432517297345333577106405455528099465039966965833967312406266211374602069554437859235583308730145205042847862097394240983354762570202530279429147133759355375509472731800753865891051600717880900303897683120455523104571090857149419633453064999481964845404477346471844115197646271988693232103459095127347821074252631271293466867549322797104632859948736375222017197352504777975242564089523446751326151516477370861548847728580166275474973118782988395959626242579068811844162520426471727860806971911012966197113400834736421535224383573735125400139052682866183319766299709601633356323559435630051900601090184873621736396161104776731550904244798447228497801228562532199734627719451896971649959288370677965838049272455379167941934511631990044366564619822972206299030554343992083935680574200786032635147448924227504801907081760617690943399540030043734748554203997661512848132470416541427841746572135864634496990029747141564677676728784574635098644644066086708259853765045551790812821044155729579656022295482923534521928272941654366280962640380886571561345505085453221391322328945800442863350222340397840387907113227370127120376346345217253292087914777664481201590570446945021089176217143429598987679618401386785410925469806283856429206307780052232086013651632304246883632988543439552994571538589262472962774294072004144870333555978349599254090349724103975844252563707880005198217811961261015265756763284557822602777650744399614047938003480389772305864937682250403974981012260325177928426003899152822168050939132143669215136823138207067367170458547485520397557548667691722386703739121411024274962010514862193333097818261590679543148012683922014777701475255185070660357485969675145481748070937268902282312303398413378501563266641645761275032732214683954002403346837756296912740262015674264411594876714619031651905727238068678982654613990704481345865020161809661553626984136646296097259197223870536764747919191256152885148273312071059365643280271520661544649755219272543574389021646142905919011850655685855293234004609419563590218638314355710575204607225071630465178063512515699083927487794552233130311893833432128194693570307436529816691272368042455080618180535193542131711845394573796360944994936661506189800457105244263904803469775380335882056210131023470990561468074653651113006340339883588250503596875211554571633329461920208297959960852726745985430272452524815251158246694218134174890472683333274726979532626090608995948071608550268206811097100741021206875213748886695079628357791640714993571837067417975760053813345351104924927368895144788109312580184565222327358802992712157312399389132749374740970045661958943451754954356565100044776622173340541378931653973465641380491047453932413992071843029032583594037430512794742626678537813039430224007604032443754859556167682241993786167422777238401878624991130678822236943487303068066700178158759342821607225940808979432574828686572938816880201363421938404171052964403337606022535722829771429775248982411292285593677038568865191826162073141733415759800750010641984235816810217979030400364229826747383048066928494027967407791974607155942676373482679411667409253253082770023566849258320387412547542374912114215319307190514682886220769240770632168574902791504450875763038249561367987335859011897663703490936408509816818836387842348183152555211947687055641316733415414431147705624960035977930599556094920364752374889284048781885459055511833414081364543254490250654255513032987395152065938324071459305534446738273042991160224133046576765719334948175803538662688218585383980560698957534420722791105336548193476058655153559400319328042590879778843587448487829707653525462943795957561515682898425032502816159641280130387594980970641907833125543863250069602343882778253466293979904738957155502225254223362115686042266275612385050914510909801897210883281884652129612595796276603726180966210245187052031067332907831107707881682556388807428541015699340376917293484677620658392829718252299885683941114141869813361828228979286983374924669531204162328943931724692796621355228225523609964887088002801046359521088776750729918040689890946513540128101202559390733587644535724608267070319420301601056748950956430584463258650257198352115011203602626621170924749090551806497400151780931803939933227054730666885069301351207589220349758769028059807130662991790680093043876694235260918493917427484190393568745132186201088328165559480686979557253681673550859485966977276467756299700784343232906007267296934710844077576409755573511638780546623084997542302128861435092331662963028077772378351804856031763989421286301755330366762056684126685571150377291646454204568489031650243161581250375801008592534647443169485274541999409633564007243886701170960913914733274595012546025667023721079612154657995632759169548027035955619013081889098440567432306356124290498324921331372241996981332900391641408193260888104244688746050727673401428700446681544729369555634745637555947345400910153012171732377038203547038823018294715231075477070591609887266054520430936250248497876565601623934856435875081636291828420520455836478827599367176644982827530912314367725212718167770940226217873969605947206789435141976374823957160478571384899943476577453325482386959353241921863367576674673786488958547291086639353103653385987067316499886292260542438781566173595970869063707982833695739378589098040641406149818445064730144633568132606334481599556172474693454430329532629433821536968091090302616576350310543551140356074672426950363326445489928144228694374029846968120595617887228886138669856017015399367896042315328363088420775849759339150851945423529083742854926599163002934551668144929720406584253035154200902653177016805247653869400150606482143524177626644696067002954218149414451466326138594273682101445451841531806997882514597022403715925181581025825222885246845567609386255327639547689630645552354676582939506466670242223290522698824290523493310803984138998167596219179338910534060791583998686722445248467835801269095364906946027669108940112596510423284161665800072866204386677207937408652879132782262498059183085270197115558106010952388785474175186083928478536430572465713769337935752331587323092934464108290325064179937989211697566941464515652409856572789514536514999797184089553668735007785602051452808348055009053426549546738616668527143448716490586536377821269727799016709760755689077987876109116639627335000734797364265299367994038238753627658030212911766522433322518045473916321790111867340178092256286915231798667368779338865203149996589481972669732392556834108591411710960257013495427813089733401074778397665966497086952352880133082177856353386938066408759661434415100392357308935156129563404204380200956330204727188708292954991623452284096584821793073474737595007697221359650238711739867100792122501588255052593732165404617552373942598229454608123673328250346762168399023845645967905150936154467596968150929687703635052774582862599039472438332750097269151843691105539144980212648344835564502636455066663805213406084759616522892479154610108930911100494199093586552632435432682596230176983209395341960164001389752146228323044253785559120893748979435426960315807059770996191295713548847581564442568192162872347356049803492613982738119870755711478564155833409254390449320367468814598981596153354830267906579917546406405281980450685491068249089128337149498954232499802437116384728087495191996660001086207259007414267939893385155054327415394979470995327364314952059607699708886998288132574573427705569567568311056020481855686395269669827602777922065349251569834584655638373137038427881637021610402605073216231488942610274669309130320349826218483495750263978413427352948801215779923807790794021743025186784642715263071696624182104312313533676331250132004753042230989600611170600845838403638085499216533938578240326069695114823021639519748681532354976025954202193882077533106254770753442808453738177594501988873498728781521117920911137874193949143361104955200110797085583637884612795207193369715361067280059515576823280679553612887004558193297235202680630574061717654558844263653528129939804625380890492049609982609371902165963359591010851076595889350623408388471827893595776275139374515785170560864341943819913432203437625481884567848207529417065062910433909668528519348637952880115832204205389636084552291495432929036032385909574755291544502448845719657643392220157228503462378626522719074714445355415901838223799475320107985915282756615478643051228058141071268522619777825136334872558105550078218715857619628031788507387469173414974560968639936064357337403418719471287188717021906576829647859212910725278912935022174539897671866069156051692950568128134213867218351939534911412666654713738841091327518422894716217454921560792106805756750581278703334200283451664662092501276732288216353084850340785354861497802658732035863675926886465175509970097968867635617055727881765254499451944484502300371623806651143629661874333850003447462605373091882131564504492217164588333884022889576372769511295752592671048577472278933588859808259798339594696907566272975445649487699187795547906803898088848392319234560918984771562010210194640290816116151926982349650797092976227595385825644387235935094013778637688750028725003366318378525254118662486098948788558048950292401326299403775653439763131473053752494808610467995699144587744786105675576342261825903124874085219569531728671486819570703947295960930907550720031519808125017220307251338953570389757506015992307161151155937289191206500725686351862070606759711466357799610028727401310457109235958449196358182195002641207509588481621515423144252089287405745052039881021342729266221785080128402216934664018476067909055269014016640317769218776831967196644259437483210219507562525156190419600091392033073164358928038148901678332699184259349938660515550571708820223402697025872581428378911335460205714123291458013913028388802352843547922689318622235812577649073604049972549727850252599552070857093873466547558378419508469227829240486808319132854421740013604787920275998507091916414993949062116444068199121129275036523484899801134263035055421422001262944567330990818199450012480070952133614733882947791762709856537704386207641272133558690249252236956662427404536844715995626651124095523927669321153911467900499397540163394449399718197847172924973850680211533535317196381940522707761834270589065147080578733332217068913054936721916312921742031253818631439306368713636759436531660205720093201963878000187154280339402866464672871837844812623795721088039293626100798265267859726381536647677518193525265023272923813422961121619551998451729886768355558879500830863879543886883206570469403983215800038598167086126520548999025169111282361252662359573871368548683902064585160940593702892656774225463586111217584663264324953174262978868198103317106386330691846873114185931814963125888969186015824716352671282910918031554244674171502608964441261382090718380608096111139988887891682681591553613880150499661105249749933922888687231900010193429810363075568873983428536281485643710894657328469764915191266366760229761587151157377961521530021411527244328198198103995249126955365898704298990890145098086099495859889582439321837791950587630935701690003791060425108909983835049535904712273025138730993274767999154427842240443331544986935360086123808608763561042315837119504617205417103008465364247938098055381844334465482470749061392173330890785109304686514533906929902573853869931337733416259886550135468438740376329091856633162825077431336835874561096219351837000742198124633383899045377368306494048948285690662924741214404176051507972354586842707767966582530251859448123301856444354699162330153302264479048253607256920902631071897585495677575084250066385546291143103144856496724367785142309863789597576083526492649235824508961877872937718130977209271238821441260595430186786461470744683457865933290522074043662382305484792560091642756747245080125837531836042138565236729231783555818065786985719929251232206961155417743156906748269874713543017306407108626290312170491762943807378099448033891074062181255905725071229765715826704600343021261499360493456075854712836316406730708475398476103712977698693099631045263404524835410527104250851082784344048952275456908958941764037224408471495746596245162714934671953239460334549936644160944354917185521647745540985197899461682072050345117202051853838470004720655281459580450052878811748246539765030014943145199177594827468445410456464513654467270354891308757993383800581737206823670111193566323923863736490173492115839400316300591936218740211376680223005424601681572408640197219136858585651245469459746580276785763692300336672109260725246037311910050035436524297925355745029243362612653367337058091615017415509909775494742640167712484644673891384249270698451278550218095390290690700217358251630973956145489186978903309143289237183538524330406855521803770659293521273060804410705114894259079201179143131051091266279270704156909595212837207932264826626518331394302346300414727162533557190432678412809739324656277608311640206829835402334659245891047200635741787241888241150981297712904160057773046128791694538504717873903194426005437047197772494632499753594840809893193426784554456168478360882001698661988674990913784006470105280320608676452428784555243278413336520007002356796592248043074304246684325820004901976210358721200612350432903951493738488823992098423966919077597529094039811435364223024060379364616303597021143760405983760411733174885042096391613692924424908214688229959494197146517706569430683305006954499911784597997171350413691234208964682279751687220452478019970079834727800811730036706100050817040319679230904920489525472875749310327644209316946966455297083583333251969614516387812309641695491183461561933679069427310364608472461368117474952823940213143134878191891415648295464267097164423720722084642298086618756133201025747392995940765338792308490958355681860732668559290526140164161340987408214873934377100393463481585060774913282890741621763156699544237740455937640876383094057191503232472638031761158719461986519550832851011042815105845412974723256801698456711878493908988280518227914721239387012079455269713081342459923103185976244634486062553079768370707799578672870902486481578802328789486523063559225397988104962413181995681504668096517990002617846055407391572405578466713943954508989229311065441125263554146308537128995682265204820501245939808934900064538994475750805484411384686483504580333320484868218974578743738079999615597047095504593126123702045860640474456596090642932526841357964155435658042326346944001367400030231472757420998929902744449939234831968989154980947048815593848171756235956715606586178944081468692725954165669950648971534015016987422881713756674123760541166378778606858524834330100912712123414036191448728668961265400219256851171473392044351379087657917188269272733069205747627178338494313238694974130341986624427592204139696169039453525497391496687645632692568619598805233002924474340806071591321395630594819775531680119388648793363591719385988266011890305336378251820823256233714461685642111155077572878350731554283138434736573400035909908343108209645608868483208719071854171173160297666934305811271748157654945784976375886306094953245293546630509297642241128312727142307510765335312640065282135221115591680460755261723774085071092449653560421852118056781562650750333900836935250448107197566847177984938607474601339406966748480521960984410581729827958135246676667534145098915622690269350138224391571413075735881278862613785238795874081608944302832204178460283033147420921618108153541465019311411082883238672659412339692858460418613481852080414192046558104710835569057510608545817100233416540633433766382970086113227185056423953366071486880520614795520499675442968509613504224769843107348284422443442697993237547975316043128449027969780781028902588977639414500258546230269552506630962319866971145851693827774551251047969225824217752564463048783173356574705401162006137406130574931814740108125535818849253140902026803644628525243770323883549339632246910907132843251077218774241910584922245896452026793308751971709096828448523725780632116138544024135248804282079186116921695764471082544678028654644401986415543450206831607644037291599038992622626513678135748750192264970356042408184354377162836552495786838643873722484219509193901989636113670296950408645298708834037069651610164906416475597916659917043086998406089192990044198287010165401684850152108298509947466279933025947867853610899091834065239289240665494283068868176196120714688137273143152322567278007980403466846399811078815299377897083378914252809215593231869256761895046516367376024263858120121756162068278958426724157195087165502793161457591187899066369603680775220963416357367147618571114813852888657465840935907662388322227715301367535145810799617600456696442392262639269355214388714784765806667392521498208876513859596589236255468647630912701531336651539737619183461055568925319282443158742353231965009805737228085030422808336065476027655876667023227274638940964034187948861595230942170496856481971731996956131155903832191334255866138308825415181632095859232915243809779143019144960531965233774177045292392760920704837128752670343108536751459927494706346026326024468041282406882871318143178665503771601942892977643832479194519053628647964070770637764282645591587380389068034060489044672761754676190068439792978460693274046278380899553695134878058221595964514042737041431096085853092353242291746896603472771090758431439179372749722653524745131497914717239879100263500544574972265737245309471634271264620109745300438999307333103416924003015342070520263534720988126418175117847461691868034463248466627744173413631554610026277464486071743517040601997613603385312209012957918272077496497430828461865629463335996150960122556967479025422181578788790863741774146069994481876052780334131481944363662671732126495859216963139067624683196125695065340141622909999784384374927826031563136007971659799481575643256569146707286738166985038124864154025245918196925087417499375656034178782910876629920681465745338162158344281098634848242900984168009133793625078155567497948565942770992647001380492467550771359504019496128172136423525183164184277672173532429261510572903298617597173461247970500081621305608546198317596551200663876041379769029135766401107118061027613225731894678743209707526315682268378330831998195187149363853316023016048337198391165458218225663807513033920584879998582691446144301364430850795823405880474016774808257560558899120563998109435288044043039947526677586575107821531380412223561920914360192413175277610411750961418065147792126733399566517819794389785967808553061494359652992020101899180211272430491849776691326989352015743361775162299619884799611342447426164717840097696777830841835320609172733221623834675117331233266972752569606782987549979088061802362054605308482927423444863600492038941476986713407368015578693413610983095830922069552280057673972220173318594805653768424062962289305474003775975952883623929696635450071271877702075730538072333428462567776539493037280157104820784800526937540204111632445398019259301636894756065013558211711576811050727842284233278239981076801001269945757932001597058891893978809416218169120455624640714084340305505163242664152531953811049717494400563938391207830651858523691435719635213710514544098522750069475517962001124022061263612736843061091820795865982845787914241012424166458449251788367225217009942762679123095427954424645848632231889694174179435556058855759801940896805266256672989626390727599069489098048499302523440733386850932255937927898810631611483865192491340501934927079846523144330173992620688535537409997623808322699021623647852349272213057371768819010434257194373714756919231215373486768711231528522569526392240648298311065563723048702013728938256699419390589496582137529317017752707183968506611519621546173340501077142421186008601190699774424984870060642985122193945659796145664406010523814892004130557959621215614868596288104179486612186171062097048096165090978123089392162753526912096763427627087006020110522772367820265861602682962578229022692802342140345044515348110206437611296572554964066527267389517921263241376538455666448166234493246957317864229883289355308484674464096060427915203932789859647783978056684388368679957389054647324763932893802340312479541871032398118875141355213378868612752421211938964799877320783267874253571879227536661820128373381268540309886918608134691501395877178840719229589198100786128785857821265404325417575248930217802303306444229468856665150532345960517894512166695374949818833439721530838755468948472993625007413652578663463355242121642758291170992292143814126661122413766900788306584346345952935226629972885489897860814997959686665486233203723590603864560624368707777206890225386969461379771687392032585463416479600844666438842788150194926753629007851545697016514047183558587303805027834860136999186466892147769873903887516958619513722609055651208928209098908035865580638701975947389675764729255959786327644959837889592037512160954895025359812101961168420813365936360956032872513681694851333124360116469851299769676142660806882559577162575921256491399251890153908117724085135329503513512449962849586019060698905767978064304151312651258048383242765153883855549584502444121527558973697591638428477569224295357251371440086898402093483565664092678555011169580326385103199240398801404943960032783338257150744421365313731324984941376147901942614493354716604669153136382594927410054277509634555609600171961982160908893255584835048506634120140649649569077188916156164449197775035321408284739003416369547738864266531248010813212670888482234328073441191514963399223744920372873313993160619671854404747701005085762976235043871809486511093356568684634304968733503306247978868715603637734013001151174740569894773352767573474552019754906763568490897515821728523257566555324806253345576622192976865279885732803829296858916525135335026884789720565129417207194416920253560199490033423628394336743143094753503728175542480724558190616373438220161146668951065930036665433887456469177676617707065940248650737984953909631166208343450526257300814857442469841804102580053668939724595046914289301343362265568705836310729775656144870597557143350573478316972829338807039480574241904785228971746252270102579628482523811942781671008843719132845938514594829700208590685760292220788442559547958336337841121102964388066453404304712225735970568729224534929552830780777918217594238038874233867752732388001444181750853954929684455359390555404787017239511496829235850509562645610307974521780300571428422159891927853009340378713531090539901973605204862757284864190843666482182146645681367077652536743654894969603743210799287004006486129286012970108021499432756572699557752465557546811118845538778431354407885600742940202202466664962587448652449509542541340683871151622928657239633525275094267556046202286599416030155550712232550875780474021009988174360638717283264527914339530980060771182326007770270550935848614094517314162999853883321724672297645962832493073338192851046936053254258827924721595776148027493195363333890166069894405525139917814252524339554979645739652997475636986256709021797452230902422759077972975073795428861061636735850656379101058115345948316713614188315112876725456476174955900237893290800301777251483613482242886869950657717774259421252278374991769137858653436027029126655514803891032364694902621878730822003103360259965389723473922384605310762774739747150096499134660611756460571882875338440243014395959830992997995141290228542935515946543020163380279496848403901873594127386098946886496288963976070509612006330599391446807843359839660318485672988901875772798935728524306506827995265873211660875585493443235613550517997543736242195518376642221272130885740475591709145407118456430304117722345342364149932271717868017104236928878764858516744472208172200707518130604093194160632838279623433978478202498528359570272834162321348115665024360325219771854591113787896500457216088657562790170091869672651992361589843616886103603546435389174091138665437158136332011803615648354780426487606341526766674553167458140622509248940589108295670562803489205655560278863473269489438527454335267974265379669340043136959339006589719669506607473569356907947042275575586663605808519318909404156033389737056370099414574941646841209757147157140097715876867793451697079212328197488809704598200694306128919063549357975857461300494813806885668884419433957772494419998046683156189707954249102849931947544390100849978493339513924789464175582282038306453016453142428617862014075452055423401341176639483746182487074012564597952737844274488237839009064618927264379696572825450987056550266623681838651984121817378883949445498628711899943473559462913295667057663135937057506829973126546683735182973928153040272227039258620028977737169575072347009258379354416162942519167739148344741253760515891489951773273614836579560356500003712866737371434643537806643898106966939490488913754147115944512237943005935424711046102245662973095177181663193690275092570475981604245746917152140438085265883820810643711699991895080081156260342926768444215676235185618142179683544426215062719093060419205246536936484926627681868757220041912090436292434320510188844459578813638101006844874285696335744298548878132119394685540151711187827257411682200383106818508593400092589311026799968520031403364698080434058569923330377594711682280574743644526510874183432857843830130238864155687136669547805759973767515281367186506101912348405816446833249556484282312917521723761657708382056199979759195247653792957132180004763737886718268962282822362849049175085054235440396741860888028059047599030347020067800386352471366766215530264796128211728778179038263696211998216403829312237377846630058664385615679279300056916713128262877058860160317354366267823553243895572653871019850952002408475986305655330980858857216221815142306886544113292062181712321852856888791877021992134128933279125830662916129162986435623412773113906017670071702737086651983784550608630735434934851883682964192787100173698939055507016676322728220808068617036545840199351343206851575881863734763847136802405818234440386608447265420494542476147083024795788492073185117934328325573226006041484635171577718415962474735012218653612879101539067622151006875438972211942888456001567483092953812674557449414496515538397478488287187980962185534300963273116467516398654962764228228198890905873811144386787571831931838480960192758071900409552423188890487943551260523994877317655390704912481741609644475408268951271773076175359483130772132475199050930175875316672925603707450044392625782762493546537239747567857841482553214426448974314145312502730652791501072939928424946988639459701768554362637404206885827748334544483667534378641982585500258079182569994487654098363717422145474405653150108028809350092450804429196299808323181124875972601239053479231605065410375369004717390273881330952720745485648567731009445852648502370970289175438095867969030828774758366636172021773876044690497819733946912237234430741556516990488556544125561401720444671708968706992830064812903841310883109373425107426268259730722422549463206077848574393063832975173957926903928803339868838481277432657092019664640649871925826451631871074518751231925351615298504328091466601689912753739816975284227294943389566285120731027828828891135014825887864533187071191129603032826717693643191632642976056180524300962712848763891926031702123991772437621978286177433785153846490843165138057191647713775371742778883689529579415924804372200426644721429077353954174861169896910310877212787753226657105985103595777459258700782973961659099241708635024112184304545310779673675812883805164804677811924939388366876703274768099956601098908291392962041713349946171921931075735046172458184129065796948674272817748345417620712789744404997724363833274243250634185394526445196737084702559284265845002929130694433154581685874062514252993469728937395774706229706908146926013820869049127824543375486502648323624075413738797800560054657642864685367046092820155361014595712767190711251507029887091559453485935620664462485970737062634546982381234937624047154498828035601662668393635141949288577462569499058356740781599233579581305316709781534019495490350463329198702175630587022027507746103914308598442649277995641321229052352056129036698188435668062561614208450350687232842371605248064485052860358451264305679410442730482502091949290263916304358842856221668522313310905668588893039451919092530080195362733500797035394421540811681246260181133215351883847090608052139864494098909266546452425882790472835923465943684895753794946156368849569329957216246782621631475720248346495257297822412986345928806774763198654665142999201870872895852957297081371318370113634249112701916864908082804274729381405648470824323721542462471108695523320896248670179385486917318905502928634642689233934968469547058011983073270033402173745125491947344034946376590178351906822278013871253572282414231397039131144678318725085203441651127637716613382000537403444713914653484868264180147365333618935985035634096313907644866191625731742669201859048965450101171859347975110832663448833003093565530181687582915632699295055334838013572945069766538570455497087551596206872713018972883722580716051981559023418281991244701861037882253961275505426017093281112332230094784924732503840108291548098630103207789323553118098314524995777605934663029916394121662933073801739341267243722278002577577640912374303435753482773898474560141677624359008787653678506633966347454955321251864272620461631726508000555326743965869405322880013229745296373665354632709660850239489827320415529226549058415232802906244305620933308147725404236122748440848433740134239062435933723032983966370613881834340802509428643074347375130476945785928727337481689332259133019846553471906254583076017307488931175920331657252653633294496441896512028370243268952064208953085053187276956501843799949730525742551886878299915043577913775546142852249856394817239735419895519633409530412403383979681099132662153654291383875881058230955332950667185819533713148036476873111621639790901350235758193419243000501328254933917645845993462714937018866220573542569841721614924804947012551451432142572572629517889204475034906910072585819611866405699029741631839553849332873087558228400544154178247158483612767606615317940562343175714058279594152216284661945067208205221540176127698605650770452607509401589418663535433268168335775727242452616877552767913341962295186683763378103721625958164666898690247045402512370109042480601337755299886429146702975289162870151746412759429601315515612668048870885307401212740960686348499867293912026531041989979440409722346662977974351242653870717565558642594953439898481145673430968148291695163381038963964732819748171663178039704965284052017807867401896059389109970588675799589623677066158658569625140875426330654997204560868428810047832988881212489810822037183345491633676504273524712886369574398236159913107365099779438742431422962507770552173837344425365565957160778589225551333681368678562360551109276503836978966409830602666899743360008320677301210285349783429977388561501572298238200087165987536252615624573914729970783213829415633876932018339050632395564953172844625691487050780067233223700170516681620598008650967260527399581071736759760676296478690524805358002401330567990614527849366367445751043068939182173823325758392156506025555547071729759824728428256903594834265150573320620278484250388153575328637851377431883887859447900693123860910212245697826297655278144479711492006161021875374644612182829156098762109110179694997666214059810390490628338529925165686714674220812610888596818068360607807554579373125784768163518526589718826776575219682398333426649722486860040485915739214611820475062252061824645336722494432097342302731996347769693943694544605839735570501905208956788684620184426340042007833192396973085491460655442863886394793178710140951957349366221770184159980861615062624350609095751881059931708641606091518950641211736396278370292028423367695107386815663960240035234623069017869005258967449559496176148407572352476102658926574395978208990742803550882666591732617365025748255002391585176917994970898425185201524815374163254715080866848165600448100213041388265641661323719552971761002881185405186440323698391677868194205914123379390808342277428879460147143502169525191788493317736964505249935051218447628130995759461611881734921239466288658218357789429350634117652671247208430011757894926878238616909386100884615767562944395471699351571034766060885598805136365747398788339836344001748458292815399445307274852905387664843179759247484015997493007544024901590564694833917729557510540455663797321916708920643825545380621723013868410632977316706652018976094065860243835217082338485380294390958885292402994242165259697334201801268748508681938234947727154113258749256655608786986675526003793316558393067611173086584865912206644585063214078483671645886330694928922023228771197911550654232017752363311799280436590286453103851301212571454528621329857491311200611263988146344356447173495670999509573629770555157024798375477304634618337482836798975324781351854756405273164457845232053331969157979913295318339457103385519913480063598068094396742396749818280020016894640438566781408898831956008731664000681863250488275904513802613820258413356636357148709137558130683328508831609857806375037320122122915217731010910269582986058290972665792452522270172495252397227618973808775668914499282613628398046340625529100026668140165394254130284365061868595454762514552723494164691886024278697544266930154138333502294100404010649756335714600634190803953214339225497358163271816805149591805150158602828345276708363635821977872463158570444646643419069807741478368567732905919844150125504426113668404441329113045730377191623874025946552575516280944324504690302367534409094257383024676116239006544413720420931923120240703138738573486135615523069454920101457665757216082786005034789574508854499949415863165870524350413692902606572243679152712028816333397686129455235747770923513571041591138510295882371332679967670770899547523220619104782326066195691585896446173811746973213950108601422686195869108553740648065257526243550141957511609833217495164918972886621864699778428786141191240997114906380134148401673752754543382806138383457322915596631590168915129672660516525099000022808575962794424509246541274834955558221301855956769389781254456486469489271179166146657889385041191896381333227047574188694524257401918612495454020219705534684841124462526004039627585797302908946130686667031220665655654299982056592403080030401038618292357710172900819346313784822650947833171776121369235782115597810528285598915364606624833136381937320152448938617392714909011376197370293544205339146355190095109699924939068046933410598169605290059735455962909565516831231033448053125552766053813183225675445726654674264641490268728777523037913938149988503976837319133459444047100636516378900526517808685576225760277031277658979895431518970777428656876458207100899347839956715294706465507573920218200971184155008042371562933455600347971222072397031313165348625697398042270428141395279981260961266993461645429313891484012805367610667638614034033864048956196169825634838964335874250127879840084913588470608981439317011802037538430116774994945004406383952194609325755330465948910130980321769107193372774415767232109953014358251166800651199230236013341901966176879740778790393258091136437516933331462840800487955321536479910980460772616821924226376727179720821846638367470472728487224334257471741842147058217756186624119681229807276580510698757693993806282347090082300868537220077794941201145812387359502693926953013877766066642091394596034629898750567130801145462503102146632768318183159896098928479048460741640388702484609291512841079085147081133412589233282526916091215526889497953382634940291883574802324801345883076384444463108763291630746380577465846746432594170768028601258334162726734376201469199204578706901183786605484050715866639418310843807014832566322129843070248884875676354691342028686443311644825746073966121235653829487919381081204111327557025909592612297312630036732793737749300249467160880239192572683636440321525777739576124601195741796327504539764111040455082713334947912110053213672710081228268109946550201876036998743698869195640739594303995375694770862370562729427438841076981627186589174471638558829008859444205782205024740933685808386395064633200446227285456113775346045773750744827755289713544199749408886256660440543969427091330681580343654805089188630429962825810093864994961987994777754049913244312592260095371331149971841591710583738612312135523126493323850821538752962258036205513993380221359818718395065185516247188925630523320084658198498040986918197104685631584567487515160739616797918933857410266319886803318961248663536433455594406948168323108446312016058278767636075408424197512706704243917316361261731200625461510590818658788237934966000018013546282806369090813646672635060828370610526992588114376667586607155997411462441455986582768158738888487143408748616820109667006428762718783063332894982122314838675317881419693413040700533992554623567829486596463021397911683996717704909114075730801540122191868638985690451579284037532768348159384401020132080509249568866344443261396869229386060947699869411513849258181630808085473239790581890501077793552710322921848881736659507799144816327755281806963159448871706166795878438151410348653460812617231790987327708075452206561039067202917802229014673067843040468360743991426285780036511412947054443946893807574023139161036993022652360073160854251155428250179707116529370745483338809652662700635836661942468134294480860708434085203973983975765880355180841013014872450549874397262223662309929437159277822106071327747571118236040873255704403034508713030890960263888723139633514284341773970742665258307434152286278318387039970876235012600662987463919703638998026751644639131293788347184637456633038771470078648372343624795431416483336187740690088198560263301236026797610390617797785793825880477597737206752600184182478176962254618265716410238881987165046054443007013243386005525633129664509249624049542752185633239840997083846664450924943773978438647357872990761238369288827896993548053571237971406829573842836375902483058320741611204465285167102952100556300246323489773453359893613174760413892395668871616024307169796974674539631369431023247444898109604911617945045424358748111080387687085070625251589287019133901372537189515832997787870502664346160521473983175121845908530839013821418114149374884255931851350241012610330474535844613228451895977219788193797775986720469413557831283155426720470023323213174167026228870844364242882463393371806143807186770500851193424639253583043063021449940617829130487934729820724323416904603084763989503313084688417522306217055289629966939214212675195736228889654803482536438694770148562613698734266129233898706681448060585211497333811359237853256054727000797750303280028664717157411112695343491584948065627083064080945637693165509988913533598962837480100620216320790695596633817229176305998613930704254742478603571334567051666473603749888010738516016987260270917833034646141720808084925169712879695343235155681648252447294728868274166011873086401778732904147121821636755359287325306061973968852668119088217202028632036057408195360683816942671009852289555762217814545495515844564314024164227612050052271130794917506982029803038477777079082565136447628538799727880910886366696373826745813943907444971609012930039188745632183884089435981430363138513496637220271992953393235048980657664440489420787633029808470395778182170524539863965340331089834297142033141956570068184770922504220023041795341637228209692852452296288003276039665892554630646741686824604870622584461844862905990637385968003872863213979228636137477072203769033776479125851839489356117289964978711190513715703584195989365335275499376369645095777429959260478735450185805170368335725320664284986005013416506934662977917534474214789819134102870216179647096520271376529370496217366911186086957543809296753358795473954314365422164716193606839913740947275501814304208607545249479695127258446456370727678184359058409991993943801018853557334461287517176403459492618643737844897468617391179597029124032511380317080868889730710345433254046857409716120887508697115468828607558069443314683514117962736581774653813470124150080857512311555471168995695192546100094184100934506375651980868566396537114121103474458655475179148884385621565524649628483779009550972033419039149473673054741826384258332821792638563441053483894360849851686288979444111558858413502433144789314918363352358939514817457722224695452748564582251709887186912795628842385794019201614073907757017817797871145032656648556145865337909961549038209785807448697465806986586196743781390148145492878458041836531389073509376486124576736331189709862623046175771028011105941854500211350913746449540798682140427965349218940436642152574911268877330386817374820934238819788157939341917428914112864882970739355793199662687963300109109606112315109823253636728281075999342113329430200021919632394239916571405316635567104138904109240267062373786613951015300762530073393698244465935291257006034441848727694677130129517033489777783488209837864584162961362009224186658334876182463109568766646951699634185330790493820440763865263228477349600824538847272289468069962288740007945174825178795106345195192474536700004584423394653039759567821734406743792312194198853678298843830998973097550326165121060650859673198255620109047916534127381767051081528823684438438717616961542982436517348969210396397427613233011958122536726733967859164097605139494394761221951284438542213044058722679134818929426536433421927976663675932421556054586825623523714188568788292193895629139002267038200459769061949365194651264404220998329699549703630664686014132520077132519286958727109404890361983966629815969660111162065071930941429694702729227596752634596463675576125768921996577864271460197352111468879708738346422807168930907245711921596927185411214654124691140652328462471676935023255180857476767765562618478853315897155053121800732972192922509142914955035936280038849720291339885191649023884621393149065628886961055455965102208065498694695119559410611302313626449484264048455854306691410694357277884464854600375922176672215476147889440086774030433444290326752917850633080419456824208641645839287337973291880070828392509629841789073580992753855423775534051445703910519544342790971443838272648677810552789044235234174563224277067825633805528750897140887661828858145716804722896356803271614327271291317050273281212377524912460373619585887572384533805356788587028045844085011220464911988530575820410701247732512734235407465962935494282074496657668469866101075382468248156731411300420392878402565760100426110344812812834614150407701658115105866418095439713292290581890312281639851450160136110727445670096587522642827080706756508909825800781337043818703916413109537330397447211273299809441392329291453820122572778734366844189728368833448415346669633424799117395778103154384271399673211344474958925627342386739081899725378302905633078969464116646653183297990364054466212623903896474618839091948924724399357218742452929384268347818531228430327527422815363294552185455678724250446905319386562338292304448596519687711496335991263217090371786141487440355467415395047412852565093869449182865529420130055690091046267527626320659514852563292836998919719351387971896446056996626471252356817216620972839466171723588714286435956480793775429964061129185328701687046984297392049200094974115791555200339049209363333948968938704927293296435549082544863531787997193759234427679802908216755198873000656434646692846750259842413839189384351861424148786376467303696989173111727228147307627426323927864906703204352030496752683619899201235005562314077562058836556363805714549431195749034556007215268409273201747148952888709030514403060103536374862138231730132222440140265189085664800150542755424847091776983957507207594682290048742194895205588097701038238303416210353990123438690260732495445386299812952730946344715896145576080498808143149370000335215219148599451621526825087265388982571296596823110422817377544729454698041391663019611572406875974350817292167329513851818848352445011206658959656376661540990902932531050629529452983193688555449927570413599955648225902789451443064576172288428483496904441138919871011954504132802455702477165530352550268381445655704682301542238183875966541412859126059752566823277423399709786458317305600870507422004001010773914999603119767336821791214128716124213131368973749041504694396837340127873657656648281236799503118944935996262815348550482373934103395505815173227201947750720401525177820088124665382629181163735355630306460070390428170776645280471833388162675705255381253840966235176892118490426408584242240894760803315719256424427014002167623199661136290084173915482559637444875321401201866822026914752264720094731346874674946167633723409868428754628887304136162781686539156912881797973132074980725404091546411606335931560202454933957877730879630280970896592251229576514058228569846068273920213842112523507030646106463703093166242203857393528241022044796992551871968290809893826715079755107317366923273027395641705731126992161202854723399844371038028874904951911389711861561918594154256914702770825745764410757043382547657702438127827401799855580221764375276449459820912421950648602937835417288370435846443692727708645667867359944282732347750988178681741504203582064636031967594767426554613606916194240152870003031278032260267549946711259221654341521608445780987175025336188554641921633811840527095302104379341586283337292118564426793712690918805492813811818675963119645020583832836476464281342957986332147093656062234812885565413129546401071060024428912093258932161924689152732264830512219366256463859827926789572215215464966108412011717879076480022938682049568916693571910535305958262535230968817038940152236681467686099412640938921363257153098879612436518117668131798456676169461000834304478827933315300788583738925966669104403142116234424105066378446247083093259496819689921116687305126684493448128219661194340714798681290008763118550748415037133264581124202976734830132562983999097133869248941876039393736618284147827836706036606612234151827382923324282700534201148255268402706250094736628169407879290396218407551980306624517313454074788158687520415883598782326510789186894142359037825831350649399478512534216782077233982270187177454904537899960597883863693895128176577900276814034130023581100176956084735601132422362647867458108451500862378103380141291239136959298859008470908648932799963338481765770463894686800475578809204765715460142111592190071363841981797537819831158289788599937313803731626107270381320373798584547020447417088173368484466771528025505392607345226014634498034955980247186120936550318892759190484395616376791340038798335661816590117946070618546825656562279629869165229473563340535386314650296783941603127498295649678995475656781705078339259830823418849529271389237042931417876952673666647639023701457366762457950440996985346339632503172196712404964301154491713077817426344450113642256189249397703417127198205271067849021233987905318592748889454840744991424745456492150808349199561197855586072645566390016164229970924475312664086757402706834122612793753973554053414770154082503989013125147042721322389253678916076713505386059412529633321562689158532206932784113862925319168209830578225220896191086714549217488439806862138578815127529411492336741429675128926929360874309132089797498475858647072134357181739042308346652168444881679081355128411508471044813827680738330313019466843723114545610488872795163313000179918660654748602048783599932475251391392359119015820679728659198217338737475089279425399009461611335929046046687004108211729518825002604863326883448957130749315789297174061720528024249614351696428890569577884659698063303569287260970913517711251814507831608377856780007193209284652522780487697501212074071275529807463365598735144689329489785111578744366014521703791263362310801161900585777764910714049799687879448683925350526404081713925965621124229897604828317124784953893479109655520685535484458302529852346466467298148180844752833060664462686047087341958301119800370652151867220318752969995327711114678342251570935883017216995281872687373274591239305536573222663161827615959654051717127914205546818695398368334056703133772744619507661261300674609550843643782411337191436119903250725801557276169929503398493871350736053640106483900425841917353020605140967219649396448186084617620033058634218081990924657620848338697789097328200469147678174567221299165160869495982783862687028572983021466924793438263304294994157320852192442845371328406590250046556783838544489893761708482036748925860968431707036999227771347377357442399445178093736346452132935621499554671027849660755746618955503722068545906229591401944556525995564754471247778896814614281398930152820025530180900323387969179277726409724538989029714369133647108478787598822505891073900456433373679466139978219013942936172612970976959876396378775936787827997733725122163194365829761929756881861823114990831316457264061593412261618681229531320252662892611449625611306340814398036312978147521439083935046928195932187222213512956228745112911606414315133643914287830669403971695103394202239429454975714923009415962589844782484760399657518742587364717966902482236675519286041445193173371514906004622367939110746219475957782999341172322395591249932299437872744895411745888637167770683659340862281307110519766254870581569451436643178985303068153177820254835952077807182904330863437306464958107747416731944345043339503264815040361632193919680118235822532071964236566895285564829094485581862544690672912270618881097222200061870430102440808157531893276494027305798625901247381121331808105666939415997039917765738143812728283558464051467175353893091889486981214006634820648120628567794700619089161267564914306273191676808419825730400855961856527673409419158806872356750259700482100160364871099724417865385483285806274710647496512665742475274350923231009730080767903613712516710710915903519119553587557891369440658214188608289639015127859311148233414768891947661530987320869607531911015225337066532937714822332078840334810239173447726579686045955400389201896511789182780352369906026748767986569750679052479490378001902044461209567267211122392134289368138990680055357317468091598313594399599051435547699651652188053416756866471450452349713988449481456311694052522378111458288819832143296357970837680290077414516231455576640028769391742277951861840573721164560715004454677691881658920753074115175912713974101415304449784518526510614707942171059405106324018407705564275858421499327640628816942507819426737940624633772184081059384762831916310216388471365067036774014395118001966486971887451609233033135135979774562306423071695221048077889665133957379929398610658979735014169557797068001403574538154153625238317577451984886718055693018392245584742198878206900599060957731088139976961846158057001900084515016129432793425455466601234422787671472045493583773772683098575479859715867150782772059911038130448278652681850501997761908089459971353817094802816179904028085148989287887232169765823770731105332008710910115405029049485415848142012484584575828494320119649450586001191195330178612505486433260746772114847192408182775590358386270145207304277108922612206746732388673819076763161843290238416304233062001210014430801426381477463815470088262657949887518935182082942085233855395741328433882756345245821951512610635448374297424259141554943383699715049135716552322852460275969741805067164330411324462366093060838836410735119008616674715925656728047056453364009374638654351664430876480064563471549342218163398930906686978600180887999534373950768257780538505613005697237593136863923655985527197318951598252309599175031694683567436455492406975704408201411301057407544575806521455487040373209286619215149482613670205845059688312263992180250309553740045634467274059785036345133703656677358550085535798130255290680649403989077803533964315504990012373052970754979192594036217318491417021359811566901900698606139250677902698674834840106215582325137993944682587951742291350980205800581127337289902893819726286715765023166678931684016427375595736148940381227217057705983142783490713581643023033526336736595176993304739317561531561197116242797453037868037876573174419076175258696169179170191333744435482379297592659865663758251965307199406378391194323867040357698322765020733469365160259866765185859797788995083371721868041338311488073887529183563774835256368321533011292497696786082636025806664544992900901562758803315032415912691883895865074285066926762317729119496218954109418712073807885676713868813557916728692488217907830830110981586620091215642060149586792755397799443326308824097062212746015801805543157904746172061217017946470938138648524819437153830739925399162943086566682371834865003973694292616433587363551483142554959672424951998550359283644470316671337682890253686699230995716252842219353129894455421910487693060751892232434032038542553818064281598251521966218575726566652541593466440392946963160586695655396095169765665835279445070710961931759883797657317095198426733430580696000946426495558429627172231648089324010164036607895206398402617209739222555881076082931590778637470965448870037583912353830673512835099403111754287793196439758400937849328063172479473870228515892330666194421745165830239869173909486377880322010074371174860911423887511051029703320907529290964918747038274556066004951385418147377767597932915887598515822132066089233927464223621915264664182958897656660233135862738664313815207746241896367811137210123127403182317309800035695920390540464525875242708615377898263508131944825399126429151327129977262967232552614645704491958558738011247642818152975686173292492681380911772609166008288765253083427207501309613254156709868204884322175585147241970105790580050380017972837847639659938340754288735417217644195835409586034124266505153499215669572153476742426275471147310055333920985278724685938813010416374696106269834909834298076704510435272018753542005096052518524690368676269158032026500242129291877794339532224961293994732091600226404298544305718738925437052595145990192604731674181301896775149577811539939369076424516479989926695545443411328099605581625870208305351510848843051342129709360469056543889760734983309229121391989886272069065144697127216675735114117716677674485381012417966660852401503663227858099872160296997906329348075200227622475546264163029233210154356102423463082947909406154202741589472871669131586955567837998310706141892855911024896257079781678375407903342189746026856894485907993080600051163153148036919639082365142081943565847989097897427002244412658249881699347562187480947136879713236273157029747049517670620506900010536405779743935782069468495857452563825861075504031753896565456178390981512465521894958341287310349807544214657033843882379275589301893132697174505178881658261833938987095684710675120941433866403078963188113656940057939711022364472577337407757771555104750428295816418214927547467471602845210158859199832260737325290235672344608634933112876655213831215078334994069954245671974436514433280544825980023614434017506650266514942262728018634499908542819222430398926047089870984780121644919521906157823756612855743714846049064919209547630240061623457315167937927017714278968365740779679017104144893956689060663592697032649463580167060576530671680108487825901200181539857331339377558444667181466796048018434679980642031663216906255012385767541520294335710624520785528255450174784589660469355837934195510213089404504743060686750255513587140909485823099011351947092490842189519103314505654623265409211034645329703777641804039254301212875668984266678705377798124248691343287221234643559303929704964085975028696623308559687891676309024990168248101040882964423642702051963376801810945875153573308719197703832462047852992711877935381077834117811657072025181235559495506916179990490767122134723310222062747544568506066754713841473898773586510291800006638860189740490821577118106678720335484223443501073856981124288492069463941165294549462784129596479030984726896813656914277278995128415329168952284048400647945777016354069885934933178106293141146187080461946922434558222931938873071214391234597851925287474929900605739342962669901741934644965544766859804825208480742015103851198708467082438570856328361167320584093367039656575003301515084592494926742728453442303204668259617772501145468500870464419236041676938946492893719525673342820057199664823586158811517208733184015252643980131099457415286348329910543625775700501394172035473789677152681058848450780017685117856648879688980448836183432902196588641912642279427075776694596285631368355323967140416377153629428817244885947780158063695967113544922075632466142124775183568351417542993805966262487993590721817227408998613564215577281407899981583547832077022322539766129112015039998948997134180685935635792584445118466041815897851251994842194736178814877803180928035386371180614290851770320053281577211223964089057631476816003072872818700589253567702562488301609325541952704227418343895992934566203686721800530800189956072567160249437151161060668108766359125492053726812604399865282011750542396521944501765857337623293287494529390063430375347515184155820284695703822564907457547381816822512183267346857211680802864864564412059407167888473242643488729247322074986479515014847974898997558078473596430670842422507916886308847252520901166893425097319116082713419403874072435020123680109848173887894650342207883925422685037306011793251515130032076903992910322187243565105575419651771556852386039177066738145956243119373010529690571447854748839034508415680797301809007855656715975330710682683732279911995179881457955463560028833300543716576158175150486643696520980741335893419743638416173735193317558865558551923677882277819892566416482094553356717367745975839529428907686376009139225808592843634513528589755519557570647509632160645601430035931221339884360666396884305424409430233561107057477107428336624723601639321253667207438356376360939349149487930443023597200948126393008913750573175028327682218236468075569205996637441615042151670646606346624221672891352186159603154081481652587927233781450263829835408176227190649176563482726286306845351172113289063439623460622480993299109550842125061239384219445716892929608908420443354038885675855493279405818616241717619897638319779625876891104809965955479529260254823119797199218477600289923864170941725620977524499940272295678505619327145926429491140886983129301532057763310526444279681517218217608854707615082859681918035534571564587788498338401383785904647241633669102564840659952521266093117154492230260243619606950931835190273638415689039172219026872010059080533662518764233220073046847301566437999755409994058314231500184392050966473775165068004520255238292804640192093305793187336941824726067706431957360600573070516713437571216187360879529282486304090599988530274830345095762509307739910677582541842939079082170354407232701737677411557756325217692847964763939813427142650800911072780426568383889063005816088736895016422559019122565844334735901261082205540079056285990076821871386815501909812323052398471963563658924662485213448921696065175919930973528125422478181407928193554110155565117903118574094159141626240378997000235826889758347430364613492834050702297889508871645076200305197017651364766065965230096531076100740156081317638850130571830045396983374717775879776782192815554885553050690570097739864652144213745058079581676798153371871402618708311114584937973920092253097171399123541128318685599455462154538904775979145713629956260791713159686307765061177288613731578397106819504141029010235201393965305465042449375255608876466389200459106019649894708005624248316566427591280976614922148039977634923818317604277930957972588566459866833504134581406662602016506391278822227934338830555325204358638399736305655815718532426234456024991635244831593661450310414393739031445558742891224861511206908694117916484943776884191168538777425151844749669183215362937719009888885985413391363899806377289180690895798544212579874025207040338852003754735663467489626413758190378768833453641891895354135659823756487739339159233115743588681887481724193949971918102433173189830088961639608430135895465342879071747047982315316935895111726979732673296133341380754235990701240106192482486425993031658916133458651245506054810734898436467432072743504197214090791291385597502836658649436446179189994287684461246296809659775842750169309707234602178956229445734341440288602885514099516934174109866895385930742265235925584604168148608581615560407897218480608055070547093191749750724079629565114674737154916927838978157773479383851962582571460385463664882455845056765420414101307843974413910197974742040474435109108379902995996233527273677686394669538375007833957197102933014932084383500693119876443151675428756956137763510478761468077320792494279587743767436821005316975315597056931653004650551318543066447677986910553350433805018328646591118881469445347306421004585148157868860179402477945741373811524604942940527109916251417616499735683818881509920585733067053647837516490948414799425371654461896179047556084300821473403306543735219890333721020290340793337349968575067813476310570898475166402490171790970332089473182792168649014107810184740532209347082668975267650178574327488065821609933348016111053932910533051435253829092735838695677587473013913142316102265922379097204591800634035711697588586641230475899129386398837321095921843741421208650477534226259502853860213301798466868760436848079487825505344083201161219828165301715305132219028382314607444245833591542936628758475022638090574716702749081281519175310688125170580780044432899294360753180917514191474100783663959882410317215056566485962990349135538327600005710145456963599130614672119947903423116121414678514148818734394469327327689440939016364088641102642781845807200565008008116411012767004830972761962419851842400243286863621325267967793209777180149055021995095790020124824703122281018155634439727880258465595045666854704809689368699213049087394320775577945724793318208617526272937302509840772426157664771904704729450338944242299218243667835302726062623765371067192051529105414142976025489219541321667006595842456509514714013996097149331791488257171064861765310108851831102437329589871699729774052394076816273755126266580161436912650117506589451798429443036363062304845546476876142712593457071253315273879879853549779374016416228369132477551080763404355654677226716291172356751415737886790417090110907276052038701022870118777180626658406656196997387968566192374582550905257136049034516359001209563850521666502621264999151792866836463978046043549007340950806554347102132546674351548337558074398666902947997489759249661156897757179967159290381673023779674171009605349987921369947092772143004037289330717195256997573357165353642022686275577782813199055176917942866139850841529897547401587421680169017730127667683446403433856442519765433559614510459557562805860144214201824654464138188634947189757300304623455226267538676561604172530752588708210896846672779879043880412492595686649767212155124864441123456507197580996802082782132376519790158376087397786975022172183821234068452458001986568927021642039802227596029037931349004719869194135552453998134938108135530004999065871805537226238715573898603436564244627033834997353191858966402613665416805597505602386503732553029951071879402153963997877538338060893994250366142763692893335326048897975045059241329983370461116748580736530311634547978801857354937217282333068165977780302090638347925418855112298284111423446880522291203946519606738070818012789928540366105760194511812965735333543314775078343922872067494841254451159699338247564489120104086112164410095731260181628790434605692592150089858511695203541788190142979795988874793895675578144826632997562185646549901616986078636564223393966478327776163046222426922843294889242200305080279771573626192960194597649521880102595575930490378876320985730228793472651522840881687600892253863796711729712551862588995299441269330663518789155703180225987415820262050035112962062295547660285738347621553522888715944251024360626448316566649007576373253127099278931379735783068609107961510474657202303006603324798826349587076330460967471045123067504576640879231901870200751062019941255492557459336763398454624728123335128189697608845457184170855555384525250446314210539756995706258411759910002258938261024267675540273996854307715757910887912804301451921804760317719143282578790263229023433337056088700179502205329652573707747415176304496637101612294325764623408481309481234407702362190952018357424248817725544118546673078024377864796464345021727338147112580197462667150743081865851529434277261987651847449992707884147536115988057793209966995648401929041295733506738944182025269729932389121101895106393501890758527564158579101020596902434870119500323264565505360716951067917326275721606753830674912521048007742443095758986484279981623175290590360345078276501398822237925008515115080281688734518201852244847627658872317818983793091884001576482069042347600052971741601328805407237507247370838737499666202486168869511148666353529759534450372185027812017952784087598110505083512554902455416945517133051832572221223112252876105138812478882761390954123751119530332953344604657645819429641307923351237495238596911314520237713640031016683263190976981251937486976062192982911631757594443704797229625900323284386172164496867611831746636188446708724600145782407647216811325416985096871080381898091485087395808603686766839933703737363943915080072521172658715870714445637840780414312182148655752262954996588868251785585923150008923609546209957575091931304440276846556551174226847442662904701649646591220705711255134393610086217435027379854855352518348655471729966075918281998279354048072949149079082382873873482816027989553365522064723271106999436830882203795055295307569239491446868315207578037364204046846560087341487038377225551525184392764893891495160710488641468988661806052685630622526711890488546171766371681893615566231669561707521474526266568747060614345898624810343226473594540691208285831201383964704019163154687729724857276533608277971419524851957262687996751150012674287063214012384239718784458772394999298955304580766814097563048635324513657456847600261613291983183525964718650837728454190497964726062893545240678252549488333332903788918882987212441181890271452742098749303167486921543543624812457300978044517005945289766227251760689713141178043203054820946508479858570790602760248066432873375416173699125428927960332691815386474021864208456397451139077814056938804265330361677002125196969469046366933380272493443810536156848631801009050123314914898661833004217324573020278509863871154629110887495221841210194326089772598784498258704286260277326319043366637545407290941860501700369933536236584523639299840258743568194895084116028064280776814129288459644911506421627005151806222271955713718773410496137360914988943346587852580873304293791361319620504254477579340381020317212800480417696015482856279930767364214428875831872950345081153527656087330260755096139267775629257518851643799065078394933714971609250348376259522301999446980792273741952631711344059284327058903103692639303262810464776693065370126447640904284250406276004733776611509145479210498872943152074693140643195371547726038410671054765602265764290623350284065725532322105786031143896479706680314674484137746180681802632925275089725121051743425588824446383692864871280907671704701893261171525253767687544477901652791586681359223281210519585374941954527835044879610167436173009798013530525036972454660940357002819075702649599289559441014142624482682971577686318209338141672020248153745726297798082637204230129363775955632878096620683401585200473927442594278609147413111190403572202811037155454102649050452240020570721191798117672584001345551079871224399606198670818500135985280200239912694366714213084456124706696255214020994328610707504342126290132716934382951799590780948635123050399650981410111862833060207965784915594745990084367807122885214597627338799966708862190826013778028847970889930910834862921393402605572070781292243832614800743334791492972429412533294403867720588949350246742391500763434929294793373933504676098863297604034528659070062149998936508422816206529911995851809208594915382137716818301317344056105854957487459957009337495733885374264864576171010038332289088019857842665170880306421706112667056180524749550096841158801198882442568253583880287944322282393854683720553402714132580530040691270588586537136779929581100482511257354468837146058508698591011276121297568813518743168655004305596624066304503540904834251439797367849580461852490509827061654816741818567357739295657616139764622764441238287243478575456540226244843334138936030623542637921473117576943742983219809092786379751336908857499921201675320083784551975506842861237550763966019438511949512230051519054213073357045483388431996283001226147585214983887057368671478101051821892192773511600932550936047430570060631762418777633243184011927461305767344227559507330127010328595691411831550644073126024045453341077778021907639857265733701028508720065894712207667842623001991232216060833610082274821850727516326988798073309812297850177642800002019325951470929813427687402586144619650070053061849546953741330185683004793825564197007129073148883830691487994811896351373401838948342900256939247135231454701604574178794926711054302610098604203590695439211920804083917101768229227825880059951117295224903668336976580042491197933408909902155177879702789239456321520820511891073860078342303327323906152211303923427847079445253826280534600605245254136676100049775575530242107109891168475315175676508794901992055393162927805032759858453104603290128411775082491144986712296539797338449232521905557230482269051871126686652972874673667234260057981023348742249807082619054905045603686050860987191004162605911601133528589773433441409803862711685841754530959764200702730566269689618158539683851055275590558222899074037759300740956456532042155032324678003889262109990588338708541791832759601624825827883532350825999855195732679516846153996620992636540464505182122064187435783754339127030038325211864399917803039256203794881350967624693341819739733552241135812902561807800146127298777217188181114401477080896414976082085856056783384911137355737125936217671993616621082909132370720634707703700068630247164025592430777227505441746021741398113401060968824963351081046431350128452229517950582593191948395020917912480087398164854372478177831840249238259785625082849501076260405356524589425247896198588268166898069416089134623592245685695481048315030944286417589635874458451077208686217451617436839871494164908587264776466897663303337752586042563548990018217057830525098602155898037237155030765074597199142157808911381720650864328210213151433645529166069670817551489846303258544349285178325326963740094808152529170676486848305642596804821373268257013588067388288037419993354708094185494148694852640096935119541409137059302201380235133399545616205054434112995939508310001338127471007133418734365140960633622330162445272083509279412120283708484339107917495971021324584050435255396916555009525470384370406122544253621639622447484845081889892164364564268476690748445945075744129219321151260808392733625793776910300696588740681381712711667267121924268183726154529414932581598725056346048079957422307748915077789611454085672489073168349305864163656266029887825579551765222122252244354685335736984464928492973609839181058462390714497617110112261050467502664725676932634998446474078753895602330123257415212159802939906860455418858248026464850659386707301111686714260478715568017857921851820730437816316223578424952843652543655957505357582528113414559558930836490638005559431355763668683667709909677597880990115231103240574896330186456679803291865475450889347801650968433690012620414965858181036463377723150098608789523654769809665294778264933300369335692159473780113148475378885180677266308167929111202642474514054475495705742891522843656300773791008404652975799868530806796329883840589722928729867351970810416980498852134219103717582539698771608082052655224990563633169219643765252619159225131023880481229353820885471024532315789863958914346483600366242997520659047983983685892500623826476086423988747154837959108878822780504919162749064107509146770760172064092994645954403162312456298601027920567842730015708097343683606158018339684424277269993774649569852410727577357114348394900071711382327165702882868081947666630926735080498562379057501942511971173565444820454472221088992736635012392338112584975131450618168608721412126156347958505651023852231128080013844353638133786696426516507270436762465227298117091227453710297469405750975349188953404228261252533935386542788950595052724610722889716392259284227766588644937853848898501234491600565853179573059622198313874192547414241859805661525672733103138308264124967740361572108738782104139429127372778086780583374517246000924316492816356431210986734005654278171914277838208347494807910613324563764163019395036315019786847137191406924631401208155382613659071386387707678224525120976759860761546303146063548124174975642062966660316312222745002956487115904504972513938229519732256629130594565983756647514893927131410953061172193820568645607969173378543583003916113173064275478729595388880017684249358588215537368454606062170651129432642240641819852569440822289083664901855307344364139100606465331948695678619971089810739869228724737356392507226935248264159145822296617397224796466615022970425519676023492133728544257840535183865442504238253093911797940420378956430152823432270117377140292297182739969982831799777507491375165186445181722571852000907965941665512573857677498832965879941431674466183522896114436311125253828850633601846750343575782313132153336499245594047791941121672187426886609954780246321106497223805773809746954584363707705191358834195276954695771658560712599661174297959539323321127177012524141713976588054499320942793344091867825992776450414659320450650522569280573391569159001832200098416711691121213382522324756906005808589828240759549555978198054950719381161961145949176911440300440925331105422046082182962637728959936672646682398811955555229046590269482077299399431530833155458153967097518422462213745783353296800307055880642530545496372028897907554115855456524362144916200261187285768986688190747832746313746782982788768128766076622506310917386471122404108619234839807127741185971786992050956564663013494503880409018371117831138264390195845694894844283124437271834469131530540268031669111977156232259834307387769326912474644212019093684757865019786705779450935589007114509498488971687063464998620482340138456156598548012799987706797896385742144974338692572943748522963934748876215619388038142886876199938716121431212456736160014329784160382728833258549238171105302427917413462712421944715113168972811961573400460355748545764834067847972228173137728407606268094967597646278030896925968964398741743104046912113159374459216365241292951430922767312547719670906289613368398815392429023817424753714954402004318282512753633429534385457529919923621965428700269736797304670365397228087390354878201717104426463929108142675170451955515524787863557989072830730182912323556379276530373679997833392523148098028231730214605492155765343661429290597805702061356489895392289607493792700608699120462460271908386408629493921438235240901669334013253596916695484767432127334858270029709064611232874990385536219671660968882683853326165458423791073461309896172776132452074783722769424451110657420482030497095423624163242101326014577151539127694077876181418366853253845208966905532945698282838041945719583096066533911271376810587374759677736697727929957984423990471760519673380041343602786996136015809616101178032717883296245234464806377867364348103403884378229348640934414434079662008009595783498738824539746866896125857473927332211398071735457796972039930678639113213866076876644865267752561869972031261966782210087562593152696759727722662504569325770269216691264982383183269894472957781886653613338252093792683528543958258904017633453352388735505555400682784238024665296814732362397677737265470556561839272602750209073275590345694861250267419732560741846798359644365805229301714953575277682195063907858183230232445872893769611510737294775025328855482133029349492420887265242578344111045973716301739621672747893484082314497318132678955155583387959543757456527623920891553817685577881699031523162342579422647971442264165131925514052183691543313098355710465699546316462199051722932969745903586769625279714669753302351025243760462961573705714447032230897637032613516377451427212816060176043820442307667239323739462308203966691084596886865607582265573689087682304495293267231744471277547383774480452241385759891813053115756317161871570763465141595396932897855821926785608286907783242979572382519018873389081440110960640136863314863186633439197774376958912993280438036902481566039497114423060399335726951797640887262323434114432187845585561438761876548032321591516538375568388346392577178664907811158697285306616152940630545116338769697320680163274012090377017593497488602678399418063710745671042910861587229581340430160006337264390408030600055501574401525972302865599361974992209998248337769872161269258228083907011032393216824566386134488329186019458760356169239261517070215135191741582305729539605475966324888006546433806915202912275248894582793449137556451548940978204919026273655449844204402017375182641424127921671802001182482733682661195103668842907954024199743510241201389161242565159287861635092618813145241297711755562885014946549397266525564154380462255996030076622839061652645148893714582451730328630286433131795537932863182667133765133660339125144869705870988526461228149075692293349249329615559298201845209424214412945952419036118652547884681052428850338699406356882649815389045469391147249547319734041692859725761984079985777462308560261894860891113270531500481140376943333427570546240194112174592129008248748678094891588263266681050931397835450916686948367809127242103483299085984336296679048713568160276114594881222372015862822125039016626344310232105675116966459340660336740415638860009212170909921125423767315392176232627289251517870270809895952124306788472162161726618327830725201607769478318864900254899761083150838849626977943583615240372444883976860874013084654510002891198587482374409367676681965029419720214817583782202744248588543316503317223324330688408061157925689538081803753634551802755886375263381753836621998235538261205443191520139688895363872190256999516965620603304759698648795358111368776891084959339677592829400867119798117103139894427165512613531026916818493741477002782193992956106459351535216173504482551463581004024430737503745117916100240112254229917994575649369075106411031407299458248146194631269558862341963531092533465004677162675760000326324031374554086335326177028493245167404836553992894302938466389666404582228505727769606651339855114066607490081940157240403151217025447335973227080470319848722406636400232736998436559234563299992671574527707688695420928463002008448929028376783925508966217721025385336433370631705417220944810365938391663723673638001308540596141669937114254855769506202011252243046533947709975765839923842452208961301643491874428403126081613336444121326876236036174084513011109537417437750842141912320927271406773180637115732419807402187771237346369737669506712210304738485254253145471980014898020360505909024665140082689203290847924254550191922439496714928453710392964402481150296087022867909760206159974541840681757680477942784755972099008397896097611196597389879261666142981628262059647439528769259753633227334295865137187476890254523249490206758556018200316709209169736460678163923052694024859197379028837317500343576158362891401037115017789355906924519027437891662552009503055318374904432374338387045976954147173436251736452198485182976073902384021554997758886639687543479560343713095896701681382802545570443676884737345490171703873914076830226813420427208191695426190981568053829231836146976633735285167434165624247211979248939789821228573684045791398075913974602675451067786007119681469357824783725272382314608456544841099313523901143077195741951949306400127207565869938552917512537303964076138393000813043486839894054677343596081142852024863260420078857806891303589864209190607798088346488374709516139058929331258746093240974531633911091063906201274922384708674391571016981687214322211392402896477046623698185876282537122088425068241231034095195551376531336393575112943262851221413211746621798777747315230022472065878614971577428675556327252508624908854156019063275866766671095021323216272524592950421964529024082989885094583942774535403744412933059322867751140749993729265217724678894652955304492578816019950284600673878579621566579466429950324770446794068679367777884575297166028546529531285675589801466373404552410526849150436051929642653134941223166129986791206538072829596401887192597376463032234802441893897394587773969253103873512156150041634213980529897969416450940317579335659179264560775982169599920650253322703802287746487304612549019544307558146706279278933749199992671543235802126014060398640445811469325725112693519377691380972026399935880093149466064304893930997075668670259713841377416503396003135538649601224824951947102125743719054679327088092009545474619001018452525967962651102197218343497035524000405010237192157516534886950791904231253174853625856804117586066713630129610187003695730614912546428649777236924474339097366597057837611843432954447983252539053612701979840471197227208011830803457362117533800067974932971336842851389564084303939590338224119934116280704501527449386263396817026383015681370650467016706162675100711814321622551001809800915775521352736294378774621087903292611392992944462304859320618079261008114809847218438990885983093947971333074265929319897723582943728933483051777753051569396179665438621852161004525038959307210470835885457876325173799961809940167017068476663194113053293195356677966438361315299059765958685789771188418851304153991299853546076218832662228365066826591583459421883643495807153369472234649319309156493570754029290664628649040281782994364123048720269670508555401998104895354866536913851659194161844092626077404514045998802472986582844412865461740659369536065749965469140276151810587881721348297009606528214719336691475798368658520034944246038403239557760645369731758537399586429984979196688052927887014716543205729788970950380723393792352817051374969199940474137259154589730424447001622857772191536609643839301187259500286366928196638290075975297905994988435693737181368140443422478445320903632508838927246203493636467676027887389268128611461116930275120994432806345773546749740367172088155918818923689931591360325634241259409826952718562318462402616613084122408752014494938944037186303370901301778489291294987019651204860129320380596413564406043636288730613884754001401560602583070918158104513157724699140536494216294694216141189125505654890654596914029490259094846091954565211260126753260947070230908417689984112670274690392888942374173688699229577053252504615404719783524117907509689847498325231770009253563750195916661671206745976007975811175126317431452215394162104785097810556690706962119340864868669636133985407534015731921547094447356466155688190684817302848653938118669454347017311205868093642524773761413022695184576213813197617705216103780122238176227940425947601403064425250652452806979195511073625012506951943511930757573264091133587649985307186429521166606559883741127292354534526542442061360413168455087708773700738072115954074488334140256853093506235815432245658363240453673747632076788804949230661683907752514015532774846320265106800528566730244370410120926571685543876709942208234375901024542779943820715354489986364410684288619529926590814453842572317660631671706258476233587662378059269244892900298130668011290777111440791028904267709615065061621839313783960150787886295644309995264688589762503067509464288021323894781243193859588020659587782180250615880863557463252343245899350619845010766988518667333774209955676553390557827300174472805201540615544537497688233607787733082055824053913727380121441782813076052342680824091586696039824176860164533009093869951753158344971876801933610257007517867279577108100923816130532423259682655767263775798933768410226400390260073290703338132705263954877674752595890223622077611973350537534357145432735925198625690338588486389539158483881853653545770559384897631714679819384180478608942988739564367582025397722451465656920086666277701515292632660281797138145455721476995264724146192888112933495236644202352060465721292982805680568663400536786932749777044408291004852316316444051829564528671682893569912417995325500485800658537186903513347553754822765059223440812567257758909290208978683570190816349384277426817875054440451927663290842809266578473039145749182521509380220614209875759759589390681815747481615193331653839507943889104053263919708246183921510792905761459913578809714202629352183529586819306171386320060835990374420076352010281655636934010849439676579390676143919059930097572448755073319539420931329557202817091471354449373281334190289484646863355160192608373587466963502854170918262931727862723336154564926039578803830611790922013647787413098341017996109738884968826552275520766609517301387198140405599974892157150588745128502093152086771681861806246549030486039164211321412679510171596208623565019062993940489504966671954827726059159919957480651988298827961902811793819426932058589705816330455111767625326729309522174160374941585025160822692235484761664269988544583909104672676418453245868470563734147774718030036323985995150880966221769997663608427089007521846667326883931429069997296247097010689200965248428712877801495200373961957598367300004595506141421834904074238030617222733668200970964617336820835967853554223612575818772581840482872948357361135260348601698882101869949369605263273212701138248357446616708688931925126770559771350297383815391384296310995661322358821760739630704760933644311218765896761568561813727598056532149584154413040343230179431038250512684930943626918798284388141541438412757723812837126539688832517798789760544561432854113077793152246066080768917319481958420122779613244930496071685222754021337806159501009722394703055807906327824081200725672818658197440095468769055731594232269394030481639069421764066915354339328371131424754825865021302688042037908297891071102092345503847415001771837326317825138095541721983526121202852509525884179932306669952846584823929708413126487862975570223851316195663785616381414022896000857186896175362301674838946267516262919988021797540421195781381982977189973679768970179048470401007508518236233799332771320123019273315665268989954488242294795887293851407713292794803450777129871669706160750191388366147414254702553042505983180024599487173664894082565186924877709537981901477916302189443458723846311422431028658744202800443561076579854150679242295094684414561970299890879574581847168553428394892496928995392798132485415021830206440798075423303915781474036802039061318732711265771998643336252054161912522232544917804840627623711896947976395842365234883608818851664845166398546264542160182133077699385880545606290275413135285359045819347955204973669185674283842333401077551773986906303797268006088510375010937253673749164472554810592121144796174050726627131079276704654005257128314306293970910809930415794556316353103283900549769871745141509229374052046611192504641487048423578320056841946106461138694266760158650984954863810548785790755905363011986919133126196963433282539735324386662940874168844160181137780983849794243267672615306401454248337384290562560224226375672291954831196185847519761228724159595102056421337133453179777164007706560159960275545533252158326852888589606751181203095599378144761690311758404217513519039436934579966289140828695471616602379879231363722187896923932295936932218500226439514408800750087098594289473084050502983976058468802382843160921246872898142545468865632503746939515793488888175891952676498758011032746227702784432874175898808546385203311948027791813681378242200670008499564168138320881947240432640269838002358095053971691931792825782191653582950362250898444362003342292695794288550754552080899283673437168088488881301723846011109540269358899846539060001829446687026875226499592391300823254770208013368662331122216469687129258694679398152025418409050060288816592271036430248112179289418482453286216742032628774368709539656140683611070000933613156444184704018690800232402406689540566100403363349951731686611042109660491587627002036757981043913154438473408073012839445429906232243630771687217547148075552024819079145430133949530407396244769521679916925910544832389548257190579582720428394032574855622896833775075811685079743860057147056268277704494319433020288433343231563688741533525495518759361751800598946942008246283833533549668671021355005524306746478172301845840268503164965897877695294231689879817898671469174332133326232799704605521066138453875264117661719811450469176037355829769208500155732446719923064876741114175514024036706370928550132995079089133626789906850759101538109647982874909866336285689057427061931076730754642364540972073735721889022913069999982246306710766236220354403570245455884726639567142997806707149330012211362428857267384112533442135502721044495249307508840841926372279990628741498553496318651834453999109361091836681541491112851481630367026192360762622796595230950397639085151628142085777946199043022240263663263628369204616367889025453908151565605147051379312700096802001983758081972881255039645837085899245591541911649432984249958188338056216731022693481526819117009385080536117497177188999087836849211994410040517070287316634799529441014989637123864706152615444412140478894614074410815245630982527078427816955430631578678824286325367198570591061578930280669193105885448434398587055112169508930421081283606068405070378150198879813706131817170879416802223661717927868202160708248261277481800941030606905762488500714510209992877390561611466602867529840406808288470920133331751787024961796387902144600174186029575279376528728620914554080292007107870716325594669001918963517334400090908590242268154181801293729748392262627843663736005717869953678204747916891487232775818318258011918744563697831678218466048640304091903453063022944091569678800488605996734836703012531426003382786511809167602406440124846570882176268263624531232388799236861382055913434526786416927114517536168476489406701915137831551084633310241432986843691766606545659433098711691871494227104478913398571845654678232319869157682395205223584694319591865866775802207155592505167625578878625334351621760708216259394296709006163462860970599617144998737096866725841514381242103305356127993981466938714415827776772212343086498722785300947931319584152557546391902443608962656848297114731278576305587951838015608925731718483238404954391768501259631492294381095335197656319381244909617978734156044794322921711748689669118981074886075857268841186314974716258061575731427891827544244030861849918364516587340635629485964256857142294667062876415772985375182079269190806678053791980887013792612894740951350362812303352573799711038909709178709884109357510632121174457952649325788852295736250089255627207775660113569634260135448623127192158139465465021742384213681327191299181126226620494856096690221605360455965633636720052923793348507380062441947597258466593093273324190882718752385687957269112050026880053342305584342505665174545152533440415049512008539805273841233277185021245647819603375112210943681194726502823121357766669396748644781419076102589292115151436950717787961539180614349550874533150980861568637828242554410986404962494813350602974360796422392109965227344650976843502259851365348828013385378317808212853220303174708555556869148460759875521991586901021018702018450006643940630171967837467845214980105001139543581585295254203980171252548928436839654471892862515321667416611520483077418252202117009802895432180034993295556677130775147224312297931308465048597328175089963896671938284875240692328925570624409812847780670380499126340058356033204787798519677609049462782137036481288681333754229844197904581614011603390868721839863090945323218342595243482081914081961945477205971232635241007351599335922869713260307105893496792054675145181221839277356653513603651486823607889933448641564830613112571590105399845624355221568300817921128874308158720496853562563995149432382208868192625225645602159159037016478714404057354031425272125345942959997825038560364989261654767781625595863669346558427937364833246595622067553053896943933551356266935749131934265716932095280339427860041963058697772485008230278996065447292092390448574345616400471119472724785508680289697423607491458670790124956044888710817460236636179753790103976542098677019785624680608477820002852760025311003390734458366829177479814889176544119441199114047423965127356930578213732868051811659132232039136054350213911789068294435813104693454708984038927707530611938217198874249295744645856131194256872565593057671547996670967169547489859019853800196996663006687632586065617287608491863990879231366164336021731762409543709914882087166982362689286952753666428970981397582261679833686136644693554796213599360946835430023703875225097947656109765722099340528081308518061619847536823144193330183592989839775914682007956313553289696664812397303168319544976562736571761747770661330094231761458827959742610600087684563328604435424550856592279893303813907787189432063146132083811737697846294654414646497002811937858151070326292291490276605952066940520038666597145287474977215162209827071819003888591889141785081558785585603273998024040197655809047283687819552751707478988141138057086474596505289912924869358524037880227416142916141631289228976328019974654192617947626541323824315714246968981731959911396278601420776467445339512732670363368702163055666152883775544338603703735286636922387386005821506951974011699652275067853738781247935098538648376994415655907477545722061880206741143408898012857558983475215534314138043990728653289695704605871439928354276034303817645477849710901609374623585400802620959075952734417567796786098353341272100827812813924661576659444974050208332923398079680180751764930367813287717957245340444405290507003940460134752904741446793829657960999642897655370913611237239538052766508595020981910243321313679086169300360279690941556812254223146313364397457803722296826146641943012854925307702451013722968662550213664455291290043174542972064715568649712851449667918204791887007001605039573660853635375924755003445632720313492679326796639195602343605187937949500872976127628356572557759057085125028244719294266172680552939646816653753360992632701281775375938509324241593556021945491517757854384511513296755420285898480772565363047761936054465343722472150876491304387685926520771756485191787103605089726075351653819289289504636272622073555771885846774879385085979767810204785198811033751753385269703875907604242183277840537257476808396433441802386900710834541618870898166977608900929311215640111333541985791572053178447865993536022332572085461644780488649103209932826018507577995899956161849848584232472194238968889838905664049829721633708782461294855528690115474266734725271962416416465842284767038858787340551025364981070949179748993244435197589118958386778539389745039969192605761339833287753190938552169533584038743189354608550996938063630136549092015443036398712916634899202627910870365107873714764743601581774183762635319129045139495603794192064670060273263235179870459437211680966485699753623976366109903007074398340268558047567842400661256684451831529189674837957642588253721306120328347368835893200801973566651960519006572316335759877079123093257801325889893145544447173493166369619250566454017391620417794227886458202894269201230096695480588260487677338374682046729159305935643537212100289700117462328777763209896985404251494431440902976040111557095412147441319970432889629171157383588977309448804729491170653946589093886937155780330710197015063079418726768418944113955416425622286677270336616139140221468179961419245647474758492331920810871903204061015406044084188882439770813603764373576058087374277311733275760737712280404166224331107598808860418337775212697876215920088112487077399391399745003312382265848262520190518792343599591411648363020977935358282584854114812700015300305792881329797993370150406900136266142808178682217825959566102277667881206284018859518531656936569165744880566013042422394409176907656517046025151016556914274697759037260702973504836858679007483230573019641702116163592062670328351537112631871880499362590182979698593284928363023195676152895789168989785196828954171033209525392310708888555669197681636828778986303941873633333494567619592418288113025327163873832587574784471783983156996021627325415053756801371822526784448539133862367531502389319833984643920221955446869209429373075511755336413550759173626973846421563586068465859369141233812406352383089195095658476130676802167416513427254470748250664627896266006640849247585463551743904905978339080464413243341904493691473407583859081476228550827014953822864923018312955630140441152362929511178745747596849170984196329331764072914100626646355768273086021052755265342915538995110347445400181224818356246186983696587186589716758357354725577217380904398385471495495132095414067139962244948590236691644086639537749363446424374756384984133932466281051639156275723079387279804729754900889060356875542996761927151047501673540031632063530967367091669729449764659097609462037887945580210710830226417106316470545807428085702247067479801182905258791092545278362318031649898349187216070702127137978396207036654674897026188900226180074085846718187522549260081984505868110121646502498044929262515208509182543201365718381810058425000003729547079837933780315525154173569359185398992480954374989765880455376544433564564424170721085297087245979630722048578059889034864466585331282705295139306778136856653575209305966058804729740810963705543240151936348769653432746683776815870779678367325751061544300393213205107929492673418661018460305183285507859214249817267284998013076254607310196515310143111463792898321935468156356051908794118046598786678485215401452344509409336512782384498161449686445937200258771434103343393521325603880211332421991020175214221879665581732186247937215129487718710625254771810375266630596047893350206083811362799011105970962074086084978513851042604314550798514417566402632239646200147422398548224306174307711985577648883440580072180564275707147454931921826770077754383595078104971802181066491822668324889765478835856405259916010862239062435848001568563869052544387939478407356370276939132685383009069410542379278946860346060647836283966247194310619847943776315097065868282701576954727077790499988081621570395903172616546167239164794310689443041169291120204303066314694925034140779961932257053653692769782244869984899035551910105471158314852538301500508306189285805036550773269704217057219315040564909804552663298441877868856530376846017547568669275619579226033755137797421754912075634535383888955053791292776814794414759649066958930881935851067541612897603411989185324435421714205489173804802073916694477053250205586950872984827819693828999425096828494586298484149813242590784361781710889286288597065865785859885265965159496119260803597300247400198312956946698104063985531214137760044076192070659318755671518247589366012843416194861441456795426974022720528312224167366036111648989086964564112887622056280319312720189540179978508870152034465391625014556653195958823815632129198657555237914601858043533730482608382685071243331565690533394792113964173102862104452863787597716380001487534115487154855359309245361863830255828440163289753584220043152638613260633063294805079989457459437777321534509624139263613709244322194588088790345298931758624580837772447737250277520623593664423450489345549698324458458209643548197251822459132426425417722580195770783469827229772005846900641834098086992611393317950774732297019900347719437939228674714510940321097912268660216158736200663216612254692690847788703327738802513862434880023016988665112874665180059109050780090225491712613321576704903798366808974662631260497668987227703783107428140069179302189652340286763511521914650350342829895636421192810337267255052310410807502558865675320867249546216226557800314769296248025872468640177705875268121755257852935578489302695081008013124472645345638618145200934413972767184514842187253583810679019703469525861846372171586554217540695121720113921904568069648892146582242931873922249678409436949487600566397616699442993493657648848703944092675290345518121993513409582237776678328447419159770562374980789943687392691380831778006026674687113380524822051394551295327690580585084468500954772628837054835459205054655454733899471595289410807434143835903909747026748166867720134664436693892345224570310357111735256332366003151066718963356266106698896503638934205742144085394095486083600059441572207062541141903240025735123523307203910956817665924151150407250191699452871024972577489698273645442941558021802248727617576205961573294142548921007098158964945574393982926127748536176507660765442551836124036829828493931127336038995861723079430600064994856581942786628561397411899993475507882127157194243027794204336339079125043274169355245984716081659291224457495691403207444043113223538892094846665058516347865041641765456339064285379298621815807597729699415656391440570301689839539885073630113412393055991783247145508442772720944310196852292833676260460860953599913185494529986621151833099317441454879408388286165476752275455444760097218090402042021087801608434137281799483733505694901320111281489698382041115893404916418089423786572884753047843254822626642323678639886876540689435863283346643327959621835724152656306774065064349431391341356240797147478400436100684358702876004416124287210222605658549844879673553842403451983746974101346842482582591157123172358856579234877248943167744281794194198697307961927577741634004561375692560792361234765320833567253707634058286732733333602077143109104917025607650071094377642875505171657163658810355803300060126859082796908819218124304883373711451210655715832140227918219006938526815827966876317085229026324549591675600749466505742997221240346582108067710275368074388925574913065501774022084703572428892677877431341192568159465441296050161696239978418630486916568304133457186624222647197825434132451627823676162513890317652421951403322334389656444476475900624875290118641478578075597717611522240317527764781248164835321299879139616253497981563404243793203504552993659310616905123407490234919358362705155534753900356545392899398360251708650990606589120148533251281541993077618842992942221967225305645085078682378618646805078473487859761302977166245746952517128514147431418508945488282679248791847583996134466482448049448050530197996012520032037540131562068960139376484964511931236206374276166424564196402309037570705656572178910915173869570905356223370354620583161091224650509125744850761925443269804341124219303355526746541847507154487997966840497528211769624848844412433919137789891645678808940924868719422763969499384211747332036117255536736265471242108271157259714971876113627700356884180143180721136540576629760506924084790865601425639293884209837413806194936805402165412601696802367566613658866424212072129277223015671546100325870641694507892790337049529568372737094287682754971446352320245590405752573546364672418053024147207762545165553039564161123628792623563089232686214511097078452808021960004850952455018602173043811360289370160514959674260019094127715837751559558053832375134315834636289913314125826471909638138058562392685567402899914653560625130814069451378922192956143530633458475099473391432159335614146754768737565187994847372285880746508538890267290865945554183233249988250109773305514942638809493569888442231986429684442029890483393365239457469236009890180570314586511724047952462349577525546583597184949692596722719790009631500073501380181916154935220384786305780035990036342616366048059225315214879278687895671568791894141263816534073110716911000999231203385415276283787037949127000143512285618587084993500082059704038834006499592013168802075479738807933638088977705348653252234463497165065847149884547433069874523364299192200309756719028801755755119142636397269566806044309305627572614940073734770513760176483452581655736819957623734070637716394000070744848055386733814387272146176080178602554755290913338570571351674262670399048539689663405560551645944837928263624294777019966922168758385910778336372544671735815409484034108342377424535112460123754756994053612187613388937250360212656965780157039855571661562257492260928429994223353442405902024617616293171666023548050917161749090814400201401613039803170298410858843050860451871142381731987763936001192100532594249794809512353301570089074748417015630867274649604609386180677491915963505663993681158313680801772016037634511996551699789499527539330945849779466714125339748071603133557490238136210530596651208051121530384678716768869868432254218055316365661284251926056495255289172805429616450998870430740592823232770126485228642062095838777357169480147835373335122050030826305275439303601195722106605371116343802786868311844194250885519122356099594992508726553885008055401604710536324794720566582069549592163584970301536972445183005333731291176325709494898630893453662595333879572848952278707272252106234968330826374147432863046551754573638875006559925646393091026530015804601395760524064935493854964067413872896506423143759404967518147659573036653430889099589550252188388756047157187586385862478557567403485524561843716428149137484602292772664886308762462452631557570578440377679560755838311995993586278996087187003666439000588666103849071712817316002319919041709627922878647550345021151310948927849103548633489384788859819495800303806252309424391922228914699367725633342152378206285780897556529027479438513475812575062217589717816372743649698259281961249029227971953858125441204499437819043868096511847415813888857056324055882104166091240040884649436173986934150850799434458696891892215041376038284418171510434546809389845017870858713748914796254250220256578031322362395610217975223370286964910890238923478815557716152607182046276231712519258311881323436559867478595380950481520252713283948529609361724462866314587657717863798025192965921924857972181696374559551628380452232528129970057725030603531082371137205222569008229393088592754957910502197855119529616005671972173972076348483628162104243394497444943025509336833785225610705066811628478747355751113841940628478111768043228012254320945870048219945800138785686620663017743720915315995233772919900569933763799747683920576270800146944083561838400355675758298933474869840449086384716768359853665847582989016890901230861122146244983064326986355763535705684294609178473149206078634007019760206516762089301141737522790130409401579302343100254708512832517309480892833049614597729927389409856830461554113463404970884654124555494751943362042709003670046194737171239940768044619021326452766359251917396606062706136807103240352351712053201754941366340711146576106132311025377066718765286259189811729192783854591546441930094860780497023736582688720467095527248337886240578517306939429917855571954493459028742297251165298543196126044361530931652604917267594365528757544493988602642427908098409659696592519279923076359562542273259383101865746805264827604990682872138783177971297349607082649578609706409347680164811317307424491355085247162038030138975658576241591793319644727866019205282763028433551803412706765951903750183160459968654241357652308822817294443829230063196476102197638634854824634782449159694113762461030709465907141748965100729964708407391019385880619322966222149592215897405909841255049292011535813986069692465189622233798106280937944659498804696520052407649500144636612508908458585773802008727530466844143387037875797350291303583470393660878366230790245239582388034314340233734890459307089993655637248181817733069470691792259467254460502306445386068430508343185574345944979718965656023142516929002937036329400287072930348328503890112711491349151568473938682342242316070424876168210164807911771911840771282804436682913683523692807676803807809836227882442129021155845046963707844278160320301955818997362388426237839549484060097248688627645566151933317484095667377817418819207831798541857792364939945309421666438470748476682730300496922564276336321573270120756886284733046600098862795683056295208389432919017545919999476789446770763736007825276124684656901755601561469568754617315704572846604754742922498717233355833059104302650824861763914774691253666547546340208172583706283911184473903885763466178322365185649549397711957992700427152513422031854418628163314862277584266007225749296274702143275019861698107235223344557110569044831206262579663481239531341162126202688384000294085586689315190438511459003931463812178643491906013678032272420898825184229744946460101146315154665119559174471377206423185791065034300471124314613184017800524209335774391321574344194896924384776850085215276080198610174018834073493569280921892344258008270907561797780976378523583838454895361721427219540840516241747930923374558168287227372909319001030312060777546698840418272141860348476580459563703953679714994755079113935601545152211755771108527172649526716478716560277934397442585556591987222595830843389378722131212489319291875906384617693564980871437497088165315127578811170176758935071983800063760506486887889778386875867513887292879660272224073990521006169539679493601861777874582984829030224950538048418847307395168394878989464729723958690925019609354376298220304643867669813013821138782729759780046202925263378353787037056871259275424971283726078779462705986284976019053934105054282205306305709198663246831359945480816258966873525678122158137579909019953348459161134642348692426236765435477329932335097216185037548959821213620987049767255655735190582616069212555948978381652755133317584330327696677964753691591788556725413074656260036822103039077547410038034464949753054662757809475623557216577446726794132970824175489677867867149990864696619028374313562210633345817842656936461633389942557124750079144359885375581322003044035710587384402622649207123099801382234287919624135483494829013113567363767844800435275540168026145303568125979354866762648203800213881982694040058412167771833450283485641232034142391743276591561187673321352152937211010148027116486672750818632735165779237159962057078239502077015889012160281748704756432594457953162553318985369437728906901088735250064524164956431696427490392809584609566549564267651277671394408841041366991906890849900012462667751278035742269262534688410184291972761567611070553497019878079855666783370737119303806187485285006725237094963441812585494882952604673238692749914855682466550561124935623146620550411718886856294227924123673019174800578692542644972906016196064988538389079969757081562661802983936609662989766364036877371745942339190719491991136894802355626854118867769326206879097212933589333258914538209497652664124756718256880060714338478854585262622682248414801753435169171639795036146162184246102279218755975539261045878378075280009799448259072085582295100051236857042925023058185296624733123243535735002885709772354187294224089322851179019949216243100276556910854831217118502639333822621218881645964347320435673217116662917714746324922039984290966619728671806033245330792241345898726313125449560596713218985213020079516741850081331863727770864041006995543058066974078758202021277890186088298948661378721598098871227768882682665559152200973531412550151655945902097542558148948527919888882024023242577195038724344613656060449781932131700228187684044782598335824542556826777358258453098571276652672073688901144039321270744682618563503307268376374534221542609204225213515479666069242311545548826299838505271542654799108534735611653985262647145156522902281719989869578554848624036097285325120027408334904647420612342041595075191300249757232581869925186675292849378559869135777727974235439833716591425874061876129118767796727997241801209739949049511619307281078263493150843564987224060465016975566831565671487105316726882297101261659503998325231160242841131441936389828835017410599753901620302289531766342006262567049730501888368851250817198982373735437795136411045070845646854088617769078212532839357243293979349557383007523840345769820169492220581330360758960142455434404065546769290224244320409722377366251287443611209273217299045057683681863490190107179731330486957229098806107831495553678553275329657423587528547213034193567370383329817622737270367890695503334039123144460624873576210608922124444764553350358794124536104789524906108475766191220901977218980005811933943058900744034862142221416858848872420931509609141638539627423341792832791546607845753719749495900983770067956912964688295438208089133023008822030814208441356411380573489551188704668787213002145455625489098002927327911496445133719866621703343893169312474156196942169570594722092486610260614771500842039428424697905326566877107116876877927962832387045064864918062270603593312872605185207487899149485233488749613872497565850321346089095257955571574740691158195419558521930864722940215934929464424613259082089848832565833604941395387422410376671642252237349140095763168022943642995582091748616246425496013833990755637158484977448583658277561174664296188164447621500687799636580836651204910608890328608988871472283940089142764564588124886915532251879985532323333670358033450647610363983723775544040898819134674427002380021408797796368213445126813566874518438992738082524024534263833372971605440075647571251505928545647423516817026654904159004269350382394272103990470036923068795039029626506128007681801560745724593003288233922383770107344953703459982101745512723840212839981799628521482469985821129380284332272594293078627687992116498175726132037076245169697123962814071311522240835270926270778608842532620403762079787881344924018925239147905165504925586573133197165914931770773626579652706141433259000768776889027701019840810144473342125530192858664423478464829494831732606857063673339098525191668981350219329790350618528581629341484004808196869864871272576736928478326384267261733944535817141397771474060084683830248304923713491549488750413295243055897207545306683732936953549624150229406815101195983292345146607754212690788354951498327446937516210742805922765101062139167138817095056860669381463341711035924845158883632774684858298460445600078321614408888860208113372018706786163592395850599790310221171469072339894593564334018899996898858715627486448582995578413899668840319341726587006632012335097184553420491659690547274622545160541445742513210240401046682576583059711311738490139453412517701577885101622545994416513813649807520519683759712085828416903350349441484092470174945405544614989179119015326018081922799817835143685463911907760670325146484714152434098572287138135221511620260512140289093100532382477335791806129365055918509012690942046459546289743273932193295443459678512195518282027157913532183599323263248995649434831045088032665372158779489033054369483779885166741922641923824772470916391350872502327867326560619557574494542305442678400148041769283208803883721565282757147059542320082260932889670665710101887400040699185309066509683785767855357664317999341871493679142246615591686835025765158129105352024847216556238205152509163702615362824330689629267825792359703726118005998614790815799006004034309066027085406841757909632719805262049771167731108199515358099150530162702876610442339818824820662750219972511469996746607332231514443173958223277109282638443147512573335705491318079950060527729289553557514212789721331100427578955751439010879734371034172202528328816686146620656602339522534093965087899234361980806684791350852495225269676003127677544189915933413005240787360532334753341686010554739695771330220287938003583623241658527330465952212743458303026098477450793855509721724030361233817309902781444463971358074431443574694427505674324815222327120248857968382468936580914983567622522460759161217849965111743163867914444342163139339919800155045430553446639992133440920893890891527796184425941120341831192172342442710062282254772957205458295055379501384808829283203805279531709596270996282634051896095784025453941073194332005657867929213604299530133273580261704109370235068221530039933988642196693158716684125935432646654047061158553186421370022848123604929506614102994365123588436130445403240029225976962219309347869127598547970999915742327279214889248824532947131358106893122912623150512803992322113316719788156761669326823638785778888249790582686764200538274618746013001126096869917811511736838628258123057858056189015654714276918307492203440612188354168007511333418667502716968329071067294228947093755819454152959409429957936785710945286331251295702442048593956376914674862389266306300052419499257206224924180812914903315730782548636673399513781956221641080750129043598362248169778169262242391946172242151524469313282922289060842933633229536423225339155255070897567854553816110538107560436296216262677086493984244776467042286996114348900348760997392427725412580976078816097762112493840945924665079402778345607899899297420601553663445243314980744328688843339120558580715753862274308483120039018073258344865258899520472693091088686532524313058557956443444996246463942614508893859592208050240170218168709177475215003735687898471556390849130388229889590068511827502262793048937357484843381481825592622830406495000060065147778354241878130739919601122742096637040215649691594389543318856788154005146719336090918199072209301584551846722833000825802281033655976112157336599893829133516949724090286390067573777663535348658027751020012750616485350930527025667446366617108700984048514906840158073376019592195130811242992925270747488257629939569030097654477825023503740578472059683793805569873893042409002047490274376427382548061132237953475248685497456936225229194003331744095706314941214554433775729769425033445443375920611600904919794462667285651828303151172628266004886991405816710302627181277900447306142112411945473131597142340182388849753440340632265266790337833105272175950542615266574420911314281103758624552898210556717945153567434396915816455547047168058989011305915013064448367873817296334685050976969964420121565706436144665255081999825835647837364428170990741263639034842719417192274962926975677469059523423014975976623616157076017382296076412024182247572045180661849006844535221619729195718973528100887790704548848065273602472463533999897029388995673170917798385742467117916649934888647680631613360441706973766081242972848696929593706423236787109754636470727760413867683543869013596918279482142557551642816481184155590994459367130015464897076780125610999889635090111567924749887122446186658970281356156146949754021368836507106080597972131461391220368158864235829358037305906129697772600423981942560895084475125693981153593140630508862979037135870359268051485586686577823783568571101631898749300591833991825733865717132168527922937427343859057256428575873268672810980648197057739208560647084683593764728659965722036425559270989282884182225669430545497415539265609664848329015352973681408778066126145610451214588764786673301935023530017973049667404214796822197258050650257306174616454334435800358218212495266805181788049277837221469035397603551385100059294540235315292022678420133759504943330706084579044202457737467659626271259949164780990579727684913891764038966029028328399174554326589923213752408733878558286251023355246832154741824200501063761448629514917255828320624447508639847901371456532869437916638249799971926116446439901684415092389159267393481525043141216394080194769120864320606212450735619168593537051044018580880544615338118800344437207367390033498383255823300352568637576511471291299491356204103166096256170970434330442032013076382948906814882521259865320175099980781105321010754768124668197185445601520840332645664014165916118125869160586088859351374491241872202252002965624265258037042186682662882994188519421510064486878024390928400381548971060856595083787407249265813465825889027549479539357418459165216771199711987217125941347866109718039628722139311310972522745301676188562642494085730645502670941676371671866192909524831442637435358927917863497430494347991564224781835187189101124395306097085111130133390806064023536260809778398357704804209278182412973633110399758872829627251226820103081747852225855870038170901354629781570720476019927255832855731992956894608589050817005641579286346532193955492768772445157452183392121316544515397973569279997610775926913387695736607146907919501864989190177124472984811859069072454422776963773008855595119553855748485051064240434866283827295235585586831629970593842631953502813477152319775424351433023949753264366020349425168538628110642375139635875050687778908816601545473042423453270075534492116910129502979205639711055788544847946735293850080848030864129098635746344757704565766905704628393997265705072753542483126137214674164673823518026746746519957595645730160394462831937161080289654154700750753022515407072131861440421846725450101540363383904732908233550262010695168679577538673631017852925111694568455781709321009680404829990599303260788223446777698259444000229485357191088047641991027757707834116688315033928811208176052782156317425008998414279121610754395415316781788491268560376063189423523209812163664758006331641473310950921267463935985359313657451253213691493263314067577516559803971950804228186296016534050732188454211114432684301139573030807775898273641021570718592156945156226480795143555877471094437752547931975540880204059213473806749963618091792639081475407122054018388092023084170117998078116078825533148837263687453843549209745884860612824724732720082933309554275874469920677773916348492302749126432584688713994854549080084181400568524644078860005603841864775165495996087170893232908461653623482236671185819882595437504060079872011992545431748769025931398004082321185751873498172525186912946658623444865569954039093523420684500893095631581411273360066093747991098051074383146071374977380428837812649071706365210397288759967061038486713373204131624490480964869979937342911815351063713909836730730037268178173881837352119973827188863879187086248095063134542723333469906456579285611511402946864434900433894916153308714839667160214018280863521736513379359927658251320048401380648848905377382967079605336232860675616860772455748019598695564128185382357089476109896832236814723045445437978818856692994918656345028206604281358364275270477745292590776723949052126428131253054828632857999597318773662491240793950681648318353560357578685100327742611178297245509877976349916434440928452301345149915913456690278152494723984692491106541490323025625792472599593026221538686405281920329568134555875218322510280504218975094092728673316753264448392162191067633409942793448739762640243118440884127596790765852755449696321993912899095738503741065509158474533452925890888393458295184097578602789779907628401091540363699061032498999523360392906083774811874744293822403185088782541412152000800607696765445182632515667203487997641756692255163745760000583938060502946956703228274960807335288173377950710602104064675289857341327733863397634942896498169279506123428257849014594886398089380646758917050739073097981821491023490131025755745453783768236552387693978385969283359170483162710504051085677615323536378035899184945152662765818480779077561507348838448187631657706730244340696684977319143974395866168603287240830124395800428501121391468571314331685150778977324792663763249957905931238241179927571650515590901135558071497310663150532563867274070505305420804961427725874234570115060670488617174521317945464158750432740789528913101672239606231645865344163345379777287359087054527157759865167611271721181194932333935225199796998112820822790172508384208086367487868272555998446376861315060523683211512973823896236480255076839484432204978100519453033940856057104620519088438367215704196543384205245365708115219290628323094273919486635587337574168572514996543497357784083254332019348424463095044926327138958239338604166322967860497926166711127100361008885055435692905208142199482483744602382662538575513461863888275614462096609046268559107695901515620220316932427115988420331470744745093144231867700465946265039783811881031034484184696445643324311906390692247305864965180433357289720759662784482846741122335724360079845554358421434408130482878124061736339806319978752745338761335379318485003424136615806523219896598491964665127623518204567768375034132027902939220606911418300905599974928222726732488432531111445849694631885744754125021872308616600853514004749647883562632405063361987540355160476096856320854981422780812004296072168024878635949128902674078219233072159779947574921998458053579416135672334505717973845429433846836356609765657026369540663643907202664287066738320262247435308251535322200196903700296379796580324194394312230289075115588905339150606045529902616124181281486992416027101999553445569883216297465152832965976129610865359062510681964345938300465205922435784727211153086094262862115120611272447781501601866007370911767586223819095245003065544495779818212942167435435051677358548060853643302863472506222859231660297040542830895998052045849369175832172658500201466007806246906369805023222264452713882871221816100316487501565532130089941633414410791482505355214229989575266214817761082956505819461316641031597072515960251304393692631669288424584075333748810177722313183645742178608464484226401172506364280813868070903217792038948057633283008265682597119321000855081608109454092743914417649304077290456283596380722823533506212232539901982526781804434530646284397362109975702693776731509776856348542911793780724635465618691964270253901569520825010390841001632543267445537033836747662932355710910470642191198717237838903508390271252400387893906889658825771008686661871335248943325576823302434788370398811860759160534736396619388368413531820757940769197970623061339169175194040434835544558168566676475797249188785012432751115768821411478592413909932942202698721798747092240565932562281555773436185298733619507337484572365126380549074158652061578284978259143384194559129225991355689270434200927977378722156897617577041301594745697538312321562695814761258904412514272294270869447898749239365300556967043956333263410981374695275946034438953555289964233824270046008705856079006317721767246811001130039296378310284633469189274154954996447212170205489431999454009620370001195093578412880499882303609934087594677537966776446124598932707657099547097230822565156091161371315855284194268773126808476781585391925060012715415265252120523263099773918066533186997412264372982536900066701262882830871304332777513935471619005330558529636213366552546824646455025432326433549570939221188236864636437841495461443224096057438055900050426992136492289059160601415066937215257424863057477204355847983922318394246146484865551106877324312361308891701094073069361191312146010689823213062110999979797571859005584120664017147682295586073369985199897636728353354740635123973397125550398955238814186386465429667979899911136553911813491849612406920447772452752259728730725745175052073597435759338732121806631367749290026589015195490301061594433271967037446392621500139350665004256499582526684977170488490651666036226407178593253662431060130719262820613511809826315542389221698281277031703832802797015961960780290671960474841002434283562832928761684361507949553140763495081996453061481615903910943883320503767624478797486326059834612243205029607034752890521511305650849983727066011772352797125768912948360212897692854179998369603350220257346324759422021656691801286277029553838575329028083926141916089481874417410405367435158320620057020559288311580020929461386442671569648394334070340624089894164078528764128712223632505439620091305248093535554375300675657236923089619429151334704838302292563557736332298136311290330562959923275309682125711404762674618701457447303751987430262712048428661707246487826329197902874024381200267166705783218964358715265499136247473733366007657649261039648788756172549992044942074783574329855773965765748637172951103410183075953764149165757968855758221386626769645354258021161325956953234331612732704642059558305631409683949693684631678471131489037631329268004205040687059700853760946707143078113958065195916931913664574954801851835965009315012570845299950580564397064248025085525545506991323620593506745453744377739148089282011574642503332523521778913710299138526109245456066246315908109262748038440038772008875334983245923687615210703463268479966302368043514378686468217843599445143337658986357548370222069324374731768837279330798444482395460669780080775073102602133715796750086809248575113092309225757320518640275976694058752226771695498660188289750955181299470783511566748705627663310143973241340067191338873770924291380729498009670983320794090805838122288983022993321576373757007816566297626935528728804986921062838182315423402221154752355660117871390269353690087124163705720577346974806956560387182031139305756942740622679739032147415807156297297188289711989999612773314107309898148484441153287220740598949745142401754792616155413731117928548201461174693250869654723850731573768812443426073280208586018193873196304996843505133624334706457022760925439737893843764959409336424376731971858368582805465137838013523627871762574220040566273116683902677070143607618084231606063528748369010933345880190668115618254043042044545120805093163834680957546138581042118484863134495380689957351676898157214338830060015957792957013784824243331142822495900259326951036597155748425443168755685580009649819797390863665136328143481432887504277116283951444547972683387909277715310860237330726915808705218528731053993844629650533832800626979560702311371872044734558982325086025902702083642225763781688772038796271635054832778044620689758966967540141243931057394856193323295161998049717788089945506652753589602975104836047164504750152918444867044379182267571538712878600601293796645448419860139885141036189326899653479865759940045542653805396614851607913751629856007290416765887601781736924017816474340369698018018171865797237551648344062032988789039969927485720469817259354075371289086065839547524073006206312714459065427699751957323221060916994439289844972252324441557045001041707816279831196055976374709120150401258294726844819182979272583647788982653470647939801887943166301100152925611894263512406464590688525011167443196173832575933636114508402792410716492167704818900011252998516433167109830384670381552175082638447244914396843837567207060271392479424403041277926875636500182620765002119846913735405270974422451897062894464659793477794465016385623996093854877826380624574066195309273136440706534213854200595387177023610645952887922127403693302763111166176006758266413957256119346591063666147365172561006734379608032687766736071350962214575426519714267128217334514036862941487030263134860579844336924323415550649898600946786168405349760950661324671869282051728963285579655975561724860414862932542843523809287430307458720649795928780810062672665545754083148003792048249563146592184313406258405682551216178560612574714123665047136796510378320365055936691505490315620526053598876892954772653803674029222687029708566388485130859143655687067883538343232322122631523808725662005275661052254408417289649806181547889759109809017707039257896386943023442976877807635042924509046701622800565532508481071235810372147575470997485799863549738799747427212119750997788745491441354119890472520016398347806726665215870911948406139046686139315163564935340488586125355310482025323977327837831642617157478128471394992358640326363338829481853081450435621358522652190423621410023777079614207841743254421338320949467359995240590079750631700817941350722144047471839029137274397677240432596029828123366734084604370847640489499408727111912412926983178514825404987250374199423181763428639733424344338616253830265881533542871702597442946557575803698526897476592759797725536308230366123050969161393139721533695345130853280533369478213399372917559208695962014836217462141183179925114945452808981644687905494969281182161316467312907755794545238029080353294214778002735959796697070505964585388078986359039368352339962472904535489058310760554212289030867485764029845593698569081434589069503559590326565922430818425892267608045733475930227939946807331160225295605230101141446759710776486259476213394662129004923737836026656550186955942302221186959996328477077306507727080738064509354112813650017698309467714649668515601128510615390337142526027420566441267320145311276483024469308452583864788202988128473082700190894435931200897743090609538274258290797361952402904994899212325289315609805165432672126411328010760106221884596705367372291494540436707202568766540694640504218558862401612465970960912619221106509620704040702133131601367651790043720734515192922951245910672264805747608026839636174959107347635025389122148950918496597074872680302527620713532596424678349255117534032832628070429322109086373534953826049227303369425401679286556079764123652524629633549254261289327763070150934680919668839536542324652579430448093313828037848889107682542731337031434603149277182938319309079872101696944612432803102160682612830260635924791152909355644834768176752523926870026092953596535345063749992185492953754472457991718422825309392242643105712519029075845361804878008528398040683628773527613310287751684612394240888104969515283435952958439392878539003611966116762214562234469268958290388772268132096923206310633553731576514944714808626703041615202050876280224871730724383615657005246202552759456680992848873589087380008515820226562570172882348413523699761516913897050864234935479476941497053079942632716977673259988399143794163207586887320766165629111817645945640629410060428726191213932417636740468455609352208082097577880256991437448726309314375286030183610340283047405974208382750597799237461306025130248135735788583991846626405350188260169402991292800850240176895102324790157209534090726409227692686285679145298070323076510228126127741075288714208640492459575548906347750494044931703770117911524791238859004394792802200581969280152963916452717268364007980098455407003633813181096365627660332640588617921062205990960413689526946340880058546699545990328671215595442166674778829655875700194432747859081023487965792853115848331269330410640640548975773761516064372745152228356845724946721847162437888390801687327172565142820285459550385985343850316138758022576378416963598545856995639191326533303926739025090094692732180313829806733085823836467124363328768330658332041090083658250253720918111644136163933273805846255693934423710014398587255625601244659581260417486249130051097875701721524129244703152389436337087695786796787476040826698531644506539924910503956460326655298295411504626888636925251668808510115385714318388074874758007727065943686039232414922730269075460676361119801922002657055097978391524320139855972297209113062370138975003855126477410603034412918988584879760506972701876385841629734824059992314674116091912087091535953186015968364232843277866429286795908686207315877784643684363175827487539298884385925523005624640825409121247217058995265365041897694388728808452662034274141814440710758395764651671573863258810901394064602980015363256464578160118715644612527834104088496503126635846636700422440902509579090436999881867928819960142125753970220454346938758644817839881247879398659381781670637812974216944640204636049263137435598750635927104761677405663089662972437765959193920045386157374419817298689777248816442910558259874143877854155774898478696946022414262744225172144514276731886116003274634380286236623329314323331517694558979896581075832077192418717059141085342852292996262016306810198642893225281798983525379543589332170140008952573224115954721339367222010153354529846909391834595175366591735222264331094322369876474260979610557513292364580568188159007827611990696183702756884642892972250094510708673593918764368742659167883329242982068761143634760644462956710413007982067137894428520860740276056494638074427506586316137706740539076155055896666536064645466433997581880089164653610888055741241996326035962106169895239069924699310276871032662495989188380414496771914950296730578526656498574053651706568770518760182027151709376693460645550219835233464164685489173730172192600982682715815792824020740319987552792989755460297337014515984481730200702196843756146853807049506814921620793220258198571095276662033811550838495925272908132680776382942812545417438578379779155006286072382597051164141788735692802001732685888795357226323154323722005777579977198895529846813249141484931241593248515309486776818113627691722768455366458038867111100293291875368884024721759809889912674314402324619891735848452000316047361873379638752619110575978775376910975946385131712286711746227500297193975852617931925703732555686109123431040817986238638406682645347900326314889779963919461000415279986974234208053384349255947728582926317324137242882565774437745740254867444285956301352062099687626636950522363909949546310997072083869412242940322295161762770739158539461087088853242134057244147375704254549674091122296261366153737417445290585884569129657499820968587380400348988244320816488506183146806089433450027280552228912035201075900177482516845925311813861392421514605486181734055832180253191961198337142500545791685285533204414434123486007180383048220063213307596329883412953905631617195451283377501790003430009294832729735929993417340502498996542644135512032089528195275058484473590086258172389106054978720776653706933844744172250459870916874339544444471626818533259813138153555327747119581321389405708424762861634151979390449092219135910263838175075041932573913711627884291062784265766840561566829043904392216464367743241452271593700196963335243956706458807170882893564289675262836281540431871058184891986974436066642291341860649398918046589932483573548724743636516570568752243061556670512499121031129485427369223529026061656070948390079844135345846997441104881656175004548050513391722798760735308098724758440993040963670183825963449144899019062769343359225014928954797941206202513822364890580509283699283859800400054582363799407212107418751041915059103991293467464622628290532556447581948838250853153193912453069262292722540320515205577428371202481555189691250700383742238331055019567667719006072448196198877017050434790974702657477001949453595334673912904141194953089288256511976231613003674805667524349353728558826086663356223075288835833521247164964108324247341512042662151735786628768628981359672497980393293288941042525574909747682986570343582425156121663935805666266297338038864302663694139753295374154059744958857353274739283924912044636009841625495550060949524795200187391698602391259187026661564870930521101660116880281289124598572685038566227160619598715681200365938255064606291114454089753796362990555818144971389964577721845078416392953061009380979147574094329423666558968677134004769694156325684898146867190789944534543017385288760265308746485803642771273452115361567792951435595743783674614935560520871199426952812631383727514244298909359370966593712833663834851600496818742432483204494743878664901832468467463579422004902607658159314257886006829377851684648733954509906418845768785939866042631535694724963831182176907551280219499063330731208373228977014453940363934054739360660808400617594382865701707219031600974442740808239730994445136212902778275980517595753892149061238482885364698196956492153459984334469471314322925636655477081186192326832393325707646533094729822465950594458601430609095561988114213043363356642008926609117426845944682463407846137298394956192245398046159034772811999529292205311079024981550992136681154424580066540143197910983758932976790362154204224086185566030224911039860079365977350528719484170233997814085197918586369875487222821216671824259850014129959491101557161519453786007304804186686485040523554653155812812486466593329081671278707623812108493489628043534605183049313884910132829913029008014726592116191513735163607172423073715610472143097374833393937676797233678773280018981070249075172996906833748250797233169730808347060309303914694395176215911696861500391962285218028180572466989358557133313207435199669040119688910142194024295332896517151636269505353607454070124639828520945428792787978546582355048223616022678364714240312583950710756053978302320075952087708448670272826681090415654277711663683377505533324289358658673134403537563341683617332295542126260654882877630725616240976229682583558099400997462285586776325734180993094411924228387013209349727106505255810658921872048091701408860926391611906501517145832260621427650108304754966361945399052486998041289368771308734184209511820879380601711261743727485363030263363509561020731902832905657492007388366598437675181593492659295089245542552394324721157447035724115871695216334007978610010431112006027824710330260936059596341712854624465686642014987135873207424813253369288480682717740206883966606154129301078506355482043217071340039522820310119363568183159423219908576116374354009005360915016939172421446064374376955445884138375885946432072071374873847785726825822804860603563743468727101732957777911608957617928507005279544609477386032597901779297385738118683774835125592170149108623266605760522986325288066311185509019040763392108334962664274136587092269537998574518073289644054942591186934549798009554392353664539797294736165647210968549823852534180479436832589273657116865953066391715075144124960453276127634062383305807120125140868873064702026632387600658379492931735973744570894068432708156653425047009232877170182171564749552260880601417436362153288837819490342162215890060018498971098221127083307281903058401790801586530272224302319681744438417237125034813025833424508314208384871470687398094645665059509366948082539196556241067393839494765460902267050415737441511906269771264630038102649502338161915089909078710961431283114157644586366455143504503017226698699006583815786025312962029027431252670531968993922903705852886299999196259947646239615285236023479543281568101725161982708188166774993743118898139063942521195479536721569900320395487742706602865801550658152096760983252579294664045160682392950320902066041772217167023543149258250820440529195207810320348171564698234489438825089224175368494280952728322664146373789246122964588493942037053833879816741975021340764728551693652137433918862182923222765132319100775907966873142973863193181930211231954509291932728177715249248706801642283360651884413883653792177810165071795477674851694007323524577450820929194901276169134429449105742044406864229631396080174322896051158275976332845295807091052353970546670950376400534136487420267323482539923751987758462825791485862522234339146097838922338106761765350562307157171018478832878262206914563654341792156878866911418647340840506283804964681982456840035624654092886104745244719217108821420135600126547369151055830035739110501379363857956706505449524742912621032963812092318426990572130722994351321078364432013368213817335811130935874573543483524584998597038997267016857695511760976361494210843390540527071142160508952664744733824073597343620172565261919966386146311281029555543275172057926608790064716802388766329829442468608100231189241875386669755430988965865770892115421031946656658970235388871466614708064913975934768832987864488010052307997974395616467065678517340689140053341296188071158726696497255649198528351020145857325955976624262023703223325475402334082744973565852056903118854864179617850179128982785725385628439007053104338939623510746736299626237281087950675992741546040510248659210476222072059304394181200685447091452582193453020833715466830005224488387089147173954811952106031672719189672502142633120018869699538886930430836849486613163428317649341059130926649301800605303221184319926858064275716839796791009234927259371940002080448382432009048167386553627455493595887953376827936602211307364951046121040183498588819477874049780701018631863759271798344060529869411628401843715547912349867513708858973866600227541167289560670087209719228660165945468193079856657139079637997262211270921503526171953427900558791602839337756043131121373765079508087282154884117623537327415018920701087739590179250199293538546473375129113521950719678519105983822075478686661763398608837617563706184917344847895446840988299833422414769161880099718158467059059098865209182432723211855038770207781566224770717396950920311258453919047986683823764241219543227941970493411028636133489662513607609307428072457574483014182296932862481563096745769936688908321842951627930987335244094453242407203288605555320313772892496521050900652732182287774625326605258142592642687601740982431773968207093583127727499377224411667090656330226499869383286335970464975432097066752008285756892211381474674890139118648589582789909815692503316691600989676975386914210051249178259827239799566010491503276997078528619387567850746631604643334643618586632929622918954022591943995069717051073838030429460927566102035669932699670776012927632017906210924918466106273309051743955383722975430575609375591507271064853734553094462227845813444849054016374550178089602928496352099961564287953594675135017079080874295559284236017068836078580290827590084375120786435123359225266627381341708294554995684597538628923828234204637057043302001983143277063046806661839142554672233593708513974517118742946090476969856625598217259844212741002406427252559573273056126398274825574363940585989515099211431714582250884413146853451222262221439267308689500829031522482688773355115545141092509835150653543106840438199170320743651729496187223460301681408346234514256359382488136421888691465541077562140625470936181212386184538334605782974843263664695879792938793431203786257503051401779351804289821961240648661811474380301499168512404554653937759269176281652017680558556021209137397065166465925500262492144398416006118107153175204381977835475153767638953288685346886398346117170242328296691595781334712677390477724322985951397408970974701279085019782286693257105923718868321660991541373353173552443314048380472093303250331204300385395351144604550948658227769427655242693742411233627107589403494078415801454979436085547365803494195612334131721810117316901302335450149506329031382022453078866730173523722131359895624596120941735294759366267435032139050737718828276857298627629975184565934499221476316411934820264974561955831191976950822861179941428016914980499101642931207523423392335290365877697921267540094485101288495504610906849735813803467077296082959031082730228443018376082179142918170580483070617206784055235426949406234504847698748619726121489729555167537616147563371370349043450056942877418160994736965675166306048344025162093246252960868479701023747438280952588549271390315898141603129091159081075852566373174002591756656474315141222308281720206266283525499893733777211153229240578600086954904561941148176486911887607080778433860715860869845604867139418335589324832866356796526457826636102559421479280893678367812169620068042044484416169409503760164428886488444000773983414506768357556058493734370702377729856058785157739430014052985828068633322518703896375314590591557388469478512506851911941860464590752840498535279068160083810360702625990496868219832504647698089774888772330927173034760151111104901965054484234412550045041731481193422566321351902061291017824614512375155048008195923320128103040048928089113421772082422930364353517737055696720162799076769904982282046910367522070900025184965010643036473598463437776384672793237985778553972509164897070198818911439473751999939424664356479370013584905377578871907322449125554703876177118531724749256861293302516560116863790914367942167378181378411278959595574200986300044038730049225667608812264705958026739767297320413619766768016665711638555780737770022914805570315964211339381763804981347699031462378067193927655491928380336300942137225924749575916792181849160489352655847421818986881188093108291531185687600231787972094407425093722534795997936370330129467362668909887724422217830582261741567860130465454972303389045161768274674328550021818008057357451544776625174206976093652572894451902369862714244263284145835474792030592108809353385374843797528293314806252447464650613338062705296695509474425871332807674172649263874698833440732131516287674231315633568560974507198567720717100871026443070762490195872514168091026669519619277125469383553598041432962130307345417072630963945984402923619685566743370207902973070849165421914890921665716392636468815629258881074372526130088202241900121538767023178510962415410075998408825672877850768722125199417370396353888130515209281698409457113541456498604926839959738814086714964943185171445107881362044930514874313560645435992488425800870586254910227059934545141381533241749596265739442460519888542344592394015711897755764588661329005120320668153974775292298231192984057815325573000281025784846486837612447566882460128983222047722492078005030075842303891732954579734122999843228682388299544272602558075546464476485997559679512785272653404567891644372756178474245092142079901126705013483850631844747791184157559734824491922844424351800498961347170497984907154419204766353414400632481134322757860097447398382618520559207329383262016644425487316777024738273473934218163721160085115013069993979822195171904849968404793324323140702573251017517544801786460221999294890384885934431016770184519130360567653490358517484597240227275363946200379991516838513750075989021890267819118388447046467377694370361700956240838081794174352685169406369535347020179668424138792920591824513827270261930115301506134219313957273067972574500498931168999467454787390857354562636583490777046333567344218838632437857577204752240160303190990947834891085383506122310017425355371516008375894368730854482688151492353249179520377443508586131169386238380061660807357897733796852919487643389885778259600529637867522565902399032439718784024717444227248658525522861884502390599742135048760578865295255697139856613977512936391855470526577337387837100285286332095955396190911083930041167224483542005937769643195176308055887311777468201929157994729744070409315265679778372588991478208019801757571272278250165689797930852331149505411621488230845875411361551814391614421169348748476302946667684510542646937426175175977135795557484528905989952182114212843216277390151267563669690461076240620401695174707718600786733482100505529041083382526442255944763911410358253474861819110624780974760216144792684139907421502526765812255759326733063769315836083332032713834871044194920121011601907366744422407873614081177975949864451067572278115699416725318687708607052635073694833222820251162021143776914990464347360814618845559363426165755155904996704815006582219230936782916472484279869097128108114267612224196657739776416277909663585929873810654060609034772390275081656779413978834082945883961445067899962237781939067533215446493138156579763490531900570250683379826806390508826032288104200036012569084087969426450625428939134017399871531262012220774292539059463774218152746494892059952391290943688026770353400450975328226716952071326395508068928763413373577456592416254763983899002120976064660569852135149647265228366325591639795683682761452135852296624511100721607871840379976109079757715654406459197462682544711582405207527896940666933462083132695711882104533781519605825869868129074076039776627107671356162465307898464699348954364369091215133135192804591966102982630801595437615303683955595918536047407079532710100366309473903679610540033182080735139976697956839324309929508145441628118764188744142417574414239347356482600667127882222901073199585219158127236933309064940346336336760574262291648209085868195237813389280069156942556464067143698248216982794693860791127960471094646851512358011589814468428611690578010416377290445199289474781776377247084807292394975302779176093280022374582627241062094759685679006158013189946848194972021357147512762133969800546018825369094077932012088989637398245900951816821639403068904444763241792777755034998551342179175174681247318519561893845043621003185647712131025836056996854793186949690871093105528147066911015998417202861892601827476470045150506550329515009136193094684397489607948395107634730556120454288980880178246374598214119848495616040884510726682497521914120625426495854065221829872795095037905536494945882928755175527533543350206395332090749091405773039925218830218332662570807743477153566507451112394933760589199002138289101197406128591767061743453398693399488389566248175117991067777467627140715629356372451652197488159866140273805134475064913588839822157878516052473241281083754898200781804805989921466076448645012894371793229251797932785966208384830933160265875377008253583145052522988314558649994725263902691855604304919698756903905919349865474873455918060948081304974743940888808004957842706330124575607591142809062682669365268805364640349825582011017763271855918312700510852163979127118174242611964176297880331879246800438946415521915341623350638342165928039237765708900180268964589239107309845000405837407967185123267999233921006004486938334801852229078890188129998881020866724927103889949774741097643881041680681128026151404081380328836233212741807487095969089247022238373746326380691009813599040011619214264562846960203551622881979147470764421422735926799662185898236408361994088942474442590841133142406624380845835161137505673471981855078726632984199979295910966924922850432730915689012345528234221077931358557015734535050708833863411192975416937494443673302158926860301420414167236227025069236326526743599266969552197496126057172722480644504398492362716493606337260555454618029724066461453379923332776754437102228230756648220520227077445276121205598993464467942217039896408512320624571530227419387717727633473547578767158400098514521378194687201414914958666307148540348489702295713859024089156057085284739852436575799584639589868930255144284183601169920066646732787226871470425632422890654110146533526911400480806640318625726175216612725398759517777460038823065671460494754947076984918491617648441624543177286390154221443892211474138485298581074333428564664623974168144374395526516559322072906685064179233506007813120342111865123820066653487954853964096817379619059824660848189645008619720812169819926246345696749830907427957486236389025433751212068895659519295861259815576132157911536247871356449542428759152669444081422903540254677010664293651250121202855626204759564353559997688406057699523222692073485174492790860731150450012369362242456793846449134937995657449290394635523455648940907871589541197614122594735421749438770553143992726876876994890552692710437591576841299511256332208770499264906169938531617458485313973609588065303503764203166442101089569904892300010434218434247450184884152846004276453204469423178850016715846863004026808423863314927687972543549762219596672911566159487667681157826539428465268391509581989519206011273354399435370705446285858923299895359155341421819211062190684983472707553483561850006793698408072493331729041232511869553253028765884496527813848803021940269491045500258284010117591309042381682048832252796051575887820446080088487340087975782376949619680832797083152292899289159501744756446310535569096822435613252413627674498699427933858150570482184260880494398909564179593742688024809141628607550881378520964135398939504559363056814264403581855449564284314286060580080109653879202718694850476356329172954173149114411894228547854161152360952097194289129432180693471566085604113823272462861288039856302173594103461736011714454717393017091014350290927860459327390935106126034764079898094128102840761599236648375027556928394953152902809716698056190328421202863783363325965997291195673600701142069841925964372447103159950261457339429194214334697277419287220255830289463973336844446830711139200080369721815873544976159240259638493909652535679536325450678698970184854374616196177442256641099053572130232941313797002654150232418338500996808044645537728175359082832623516635510251848128694054512418055417022236937241676426180338490113081642344388070346262378639881040654204503825930582224567730259598044109546690589530571232604803637025522726712391971181390537049692308697179313440309455226847947253453161536044391350654905065740297943744546435404124374186413902583642731671571601128721902874871309819659297596400321837356735232463476776681720513428375181703160491355316341608663407990869101487296556176470934116854254013853353728195060288345585575144079895276980545407957068488102546468941998860390210936678128726176949754279830953106696435549471833600525840396574190557312671952306392128163086370067772081522130574577946489235108160535535672515379438700560731580213125184279731768878965716167913144219832293212846402130170980553451646797612230334376224314962952157739832434240675441831249151795418516639098306443277444704611181720229587881066728583684007807149808021660081451095031438855728293821153782840092077612067491650817567535794016202715270613032356468267875217856208991247076034625674225548219546328439431165447306248444753120131263974795485643984556980571601523676408291358121093708528447764122230396749329707092754591171531186447611787119373482858556835082305781376970756108175770278723542427414689342273855493966651726616676251902411077155399494423418426398285682904232642894844345126143028534443039297009184789599157607039025107110677650728239254999506828463184674150010102244805020458701345681228885015986337889225532208146625892593196079553299773865197238908120870076701165413216208845110644294862140588059444699442956369415933284501074379399440849937188378669981010759329308653736192808148869706655145645973408279075034960924673751585512607568032401701554663992547547269307463816387688389604003005553154627503143185295317973763320179013479143875334759907331769245369584193240412161084652108760636089095192873384610994223553442317246233586364172275631058267238147115514831816162771421474355080534329199010662951276340878705218098124841368411529746340189924688735067042271073212622944767204844838307601033457939464306895546048530263677287827982631765469131058623138018799414981522867798904563651803230338600278492825280092455857837760016443317166175622975966048218133891772787321159241490782753123917184333042184114764816562467150400653583308985304823447458676048450443813921394245992862415424273586061689895274809391054091109230673297375336962473120568832615290367504140374740597078482491784668177984832727420599665949141039572448648655408820264558978281379511607886853899835592620518283521786046433323311395516576728161618074625686698067847798241950119713804813263113811715456985736326906575669448535653591239073707814752141810241575393846454756598052713001942805481799559548334416956920031741315683526766026832004831063401636515853930817140633785425092081096591782565915182934751392301004582576543162692328543817896543427829531336564337098367609470731939439821752379861427555888925391004028815747461547015618683088201924803405612525435725773103870295229313672183265568914136659656473380935599815064136729922122841411122074632629834314459645658049857265910687566168383360190459812646549331437010433730711121488873882187012755939597011918327272812110852367159907493053376856047617753539637880345617063951245131976048087402048343156253489029880207693345290749062439957845447104168064396796252213318328442483477457894187025800309064054644781360765828592497961809357303021185281125907546130575612321726644565468304552155997914631945408940951971306597073663424352721445245799424274026162596150660252576308659844777539556737988132505606382255613778683482654362975868610705442035498633483746148087758223608160523489995851159023936178910685235302884646632036870006841048776496444245368662780204442916841601735556946216716192938480249432015681578151475350199652871847989760729626793621257904146395142703454289169592481993676334895238454900611393750904365778840010487528607176232862926972233681655797158311153833130277206454027728234492704513877223230617415186428513958251454821077204373172896461844459920109516841608687478123170648084003825428545185274046774660196630730514118750049217792415066229883771938570922625075034239728882463119368991628365536531647406507107248986472486286499124560757774763122304176078821537790793038520271469553205586219985638864106263495829808724422646475472548162065533825789548391278501162052111526086128519581542780904720491127334571701990112826032649743818503115205259110285351349788461454884803475192926618202904565325375015301164873185463907893022900876554984017901616816772865586308580313118512188133346749580144215366504445596764370836078692382866198416829760559481419136114301338091137007785164554116023569572379339946336192604794065841327151714192229196273631406250565148627931927426612550972085650021784382460579830273043209980476146259946882664646005689039959959353434733470210052590824507959806304380279965676170001924039499953808360567273746260586517731119364704155791998365557080438883338046399495535063502632385025050892619942792554012368544293310708999719294902256983730079928780419402612313833355795151461989668192661867627037566494064369094801562973515465999078925651270449882062445726892457662309793480932783360951681763151089078341198512958867924764648762496460835732445315858881644299767183193352924277425476211051424729860258301588027730429488840057367643961842655872622733176420282739426560077533945195184724796345436673334458951751165368209583986880510936478961380016264712123669693237967649456769709796446279723726054402278730115872992789735295404342515540110083369862299562511874118941276476382407623711181432042315134243511682446745994885589459251209930538436915555975759386784944254483866819984008993125155278985910350763438848485265152051495341602191912277334575908010016097483329231236042330848495034336565851799857811392609963462373168596042333650764872658486765273479835804188129699821908963431237943912898376186121264353914547691753944585804571670381380269905167161336893105913636560436877382449862184178866397570110706936753796146707970603882688893449123750599616169183071426916243222072399831824559522693346282075205969088124614829112703483895727830660667433712253409919668063479630198526161748389131526486394890318142007225298324493653571140615668264641433490450159300031604127319840793726291793650640612239347392781177932568898574987638918418779038329436433109821902710184311209303921127534813833108870313451647997017651905404041104998311033771427486350683907922042098673303737568536005445101176981265659592010135717724682661542121000165712248127191361027131623809306997744730939670840086508551462056389762399268392263154023261037131489937299600244854431853451126969697643516282385071976288545476484193461681537097923875211500016523549942694994660372485036614804570484771852193726898751432835533046185492320413138368781271132322686994799498877300127981131632011986175787250510067341975453364905373183919391416675510522730054464855174037839240743279736563575258408008495234137799055486956674945150037362065491457331423288782034623431093068575585021125622425638523154389280057420584576830388871324693569264883921116383385819385447664329499528716233272343572697106633687866646337541130379303466800138645831678191851917227067600892585693767746502796979594629371196157737731907959274870592518611057332306112150579341813307073175446041323183594678632715491402421789613090092545164145729520983735440502288076496211584239308658285193030493524995186755300426998843433347900390245961887175278347838104449578741544925448128566763553039531937022205434329709946220109915267730193038576909440287503299761207900792692249691722971556194903766872333897808740779848789150704889180828369110189011274910670013845367377908310023617361671698160811233712932742586071336734907770602487979650880063798127935332088312462828280412647553274466131965713983101226653363249006671519017891927078537313534077187336202315204822223062923469323708382620721270698875857947010857235587359414815000717298447914125804688689858136250884874808876270515710176702746897437925129019065355729312858567683840846338324101547028087558473452228534249566205959802102137783438913497169403288959810115576511115509779410554607215745071322957483941348882093558475339910388031507332230323996154731622384664673652173232354767359939495609098887810545184118342806931181756172462316073829803907485220136449960386786095948858711670413144298604139208464115197826780264916167425978162789254275904773477518083703180160833522210068124411220840774847924144188596668388612251530166975514319960064840171620019351260122415342195001412076911550800139713041016755929691559325893579060817211621659572496810476980588323484195222963562734483023713646953973946110879246644335708097766817234887802079736839576324034532643787701561194627862566015225855271322271724886167052777732551512397767127805118073587511768805645126886020920649601509237969620860796488681132263752526628197383907457479037595492077130368450255957390515120704354411105590286541026191004250275538355048445959580512396264687852869074266038182671782196439906963784064846337657877085875722799769326943549726093081137043099823591140211207358618945116675944025013403506475820084651451701171752776400696867141569488501167022076441528990914783954245060859983915690284612988877389310100067865650821920532918557984884007141428317666417544430878934702648894550758702910979992624594391103323760011526480251765342884037571065075300181995086885102325353836151471110799052285230284671193283679497580826115079153181027547099980864197015036044031866237568072431347942058227754023349621374734489668459950738278542397199963255831992093577034944204104675663003814626163049946103897815363181800931655139125359044176715824625382035889815796336869784438808832971301662088279200711634207013638368916151107414384521378392730935977984314875260527282570700066953474411548086446744428669127417126120445239666741878607569393803806152290933114541949545535288994459627043682660167654556316077102097707352917316820082498287718338986006587890521837498255467615378845982010753680390676070662492585549596978703183402939880146682323806719163416462288548002951151479266095560045345495642698690766869852843743561855297892852100715326609019447396158935652953269994766774754153774909503153975414579392089895494628478012210061440021668588425359794547466640199183867785643122023609216454175793885295046083850358780786538248735758658601126822605933222772399837148708736009310196829349103816056030550892387479067364472940519248449223420219029335169746816895133874447629245399864865153577209077771680937314235686772573949656452815145920976261574045624364297533180028852333145247662178405804953733204990754506206159955910174866270365765817747081982001725397320492036544700085856023337856024826243168597972827234411810321038091929556884833289542449171839542201062281854934279108895002445516102352147095961746094639906430104320101574369657436762904159591724202065134287711150703363138165836184728344280996099017720960058939145595371794348936456507173208025111230078889447329485855683751576310081675624124279614135588203768837665323745933730828132818701416979399613878343299063215853795651730512388241823151711597187279471948871209222997339974951493814199519809903255915915086718318101180357507752989340201797841296036379462851795636798577900491237767639693874975626341556006895837504373591463584201493173422085523864895366691180036461102672535271087499135953234485776142729126346888974780551299101441905524829726093732813954375627549560001035343657148938378104251369882373635120241675675673552450150974235841054216690135597417952962951058335269654599313381385026193001435797706563808393454149991503384307374239493936426756873282117536603818480103146134307175347149175301377185435989219893238684740206691051941184301700271033321453571044202161597907553922504730356977972811221500342968751212074771283086330215128349992406165841969596433936613213014398601002870903620412038386736878741708694456497909070846901619637722889613809523008618285805708014320537335017618020040574650821378439533331529994834074381224343485537766709142473550473053397504124280007042575507000924921037228213314979345243208621829599505585086320545536396690786855116268232638978172503078625178878625855731701226558597693737593840736084932058555640643576271259003940725196941012257045089020193008758636985757008057260743317670224236516053235979728419791574949647200589366094662944182139593360801466654279503038161686923767253747302247193761179749977582686207529063064257128298828489134995581921944990046312126745263504723661154732941942813596015760610014159778326128025672218376614525393019962381610379433995159823994104266933764532169552944630869882835412173912610491713736594175925811430409238837646854240237366253456617791379876124783876514787858726049303734193611630594928487521148808838519260113834005674210081311446165958773114402671434810494654195396357442080562374895848217560888931902793232659878826556474384167579255730832251685328081229147624575245129795026516369990521665198385763213245227696731350603559108952453334688523469869925511230543994261547490596875903351327103689040554189992415336280321773898659158609974157740796387908678564318407518268029816629476787434757556352504590064671159847942946781525186050727603976840128440641686390505000736583304345073357856141303010306061285773880739214144649453394740534390550877119896794936489760315791677299059117538670077516735372539196890264052565960135184352339771540362938625304000054046239234294146929831307106523578154877306050176261396574341374172049839408426204019034412232280547630552197206489475785774742138779802993297030114113627913789830162856865499537467755205234748811669170835322429499326341761841215505868389638641453643406342232823515326143063501117107144468617589820136847802371899488840199631603893011860577594016775787148448011551797692733151899824850978826716486260417737526959538096619647664903699367929955560655462182106745406866615069525951852885847151953114404813727686738372448601293646385976855990996993010687844603893545924735266788935274592284492844183926747702020137916349158279360781718121819184528910216193006655423567464220034828563336680766590700312903756592628165274010317861289455341418647021735784973349271239526721285573378256688436065218350027760711288118505582983771350780402663316693907237904557752074192692832112189289056938785646936418846433771517574333037898079773233771381481771945677276003859807298956256507903268949550231951265903375144251847149134515452581393116256494959903275807920467947497645248631043682152297135136389214149528667683476482038338787960654443207947172702380818239363522403495188273166445845983810992396874578803110196811015256940874324200201802556738096057794066018252008499066854596806912249962134159839388591006145601727374749275688016690904493560347196359577893762883014967147961821914607036171517486840180689226561685688216845856226897680318758453027040268028708313514668315449121567238080814020107726085563872484927843125799194899403290003476646019554161554246999421472523377379889536919339294116994276031539751136870264195509141526190161362285151767376255217885328892188369886025424518430027147368267777224124921844147952463713489437316202500105916589257482618552571231363323856696412881714016409496519900455389963077417385507375624813530320925335600971361728390136761466359521643219681410331849454717252930221012794260654639658630453300916936459274537431852982026937141834662240479999341844247221671827942386285528789628996569815557515526602210860351540908336090693974603120199088916174689283312930031581833124045716513901631338132745098759595264971138083995759110572641278103640082872596995991036858992064920085651662735461946360181202694655568287794725526147910702865947300610927655715229216084529804196674643516632362636070505233378430113700387856843728984012082252219732551934379700379972052805287364558504083471199362053220422227123525605422710467954033866622081053565502893442950690001242844342349269514915712382909379652325590836864467677699672622376082634265691101156681123800200246366876829849160068536902579743626031131328864521402348379925300350516467337358556212578873140627623289738751059992159096828691092899969860374719546567605997095106057058702561030640450716083003087329788828550189988107071662750888859424501602306252487322521919404422047812093769079822855042439150350210771240120576370313690007626144446531479694511823004903520711427226572880146042555579114150117155061380493270500954144172355228798306624926240024034225943759807396222496773532979306930365247273980935024296230026990429832223050617846144884175214714216915179337192929651754569522199325282626445950009475892173569712682677169512646243248718538812692048283234343643821821139031810529656102907679918968669211925118418169857158898038288782866403697704455576018473482967477809883963227179993449903683417421882496837441811468966116563954732650090212968975502016489630295151894913401174169936831076322970544955811193053500059473317183719968281457691103969764238384340128391904667356190995115073438537768765574969439916890044751551385493458429163394076241117440726058850021013301092347060173929365667887941857948397041459835416705332602382005567353841332217280112254742373004566180738175514639532096077655525327369339434675804647662761413509424275880992291491682571806940680938033372596202573713149145244542986084064767240891588937949642066462581371190071423391672503382668164180004447978563857462840352445780129380032590238455784855267717978733054059661350652300637770865943639809216165082470343292896097754328759536419066853874144862962906202382208283139026704221033599588680143806983355640550253799521430272181677242392405784844654226369860053305708021644239927801246065711384007588045985147481544220219279096592532770008624736554527354082044323887554310126928365569790642005808081437719086525947028724478730282895110324676236925580168310250365777281645354633487225245060787195584553882664063783294001644039950785422923974282293257767218463148213934739010665703866456789843396261353068862517387753125301600303097738506334894154299173097219266826506622870724617895465543139313389636043478669284148591062931769753852803872916034644699525763529868184395731089217786220367240558863083047924262881784275167303938029752071440112285161040764945344042502322620356134919764774421282156131031175001365965756207991758633919967582756601021874639772330803530519744795860973334764144190796473271231363804296292045268972862711159064125459715983550270636150798358572667794869717415563101871277355190790168296182111669932265766029883369728728047037875967541109509017349844621395051375369359294711855855607926479348152004216852778236365821090077598500154836688623480743067406294895959073658893133200939694626770498168760343219195716518297105146696566864156620612102499594663185373286731877296931012023632720483260158251682412313836922734804817554075141898409303250469118071126797955105563104017252625809038284927570744337766450909402782486124432264628285980704787908100721030304067036524682278612285452879994618014931881319812277590889633390704575810239755642324534334945202155905565860877895383244343814702336967630480764907230575433876503097316194482390453604603307429382078174391900899172426550290370544282940074658215656289038440810527674699380369863897655005583597564653454720862891935252774842738004805408786300507842267754735598179857663032282149546063623004569727121020359863605576445283112864614044539069930441047546926179572294842159900622291333971693908987398820530373293362696986991824558386882825159729595396787995444087678951576753151646623214988017230518500324079655345898036030628800666496840082205565922363515132100240561767959004551195739977961626511300657340779426691941321796475890007289990381823136928242722129256383819481957691429277597314013369473904824702251667271373086140560348483381555539821079747499566125141009362623923937105033366135000715070292667610277908236855657906154604500725089693696577176569194712664022986327144842070880926904351744451857743253797833060326481622646800668330540678245207049825426173198994433982434919220807786409067576015758585995020841534559779193157976125245201418457995371869949257852028749506407593396608911824650818175954144246218646326191125154705777765113937265686311543043063717406186509958047237419315328933191047927704530154911546271404076426127384949004809223990292383841822300462229918275070572038601794216678656372419866171487761683202669635597869631425688600708009974211764295695859742752983343254920512373572474718274271387990162131057557704961928848578265270952561135205851931289731333945076109018307317584925890960809204878201356171867407292565722738046432627637001632763253935784922142799265436569554566630528724998862660786192659107429423677228480996151061581829783941940575834875133369632491473768165378955260443268989607198709537340108298391795162607394245680143145954832299525237030757748573286502284316607693447902222993291169655492146231681354870752464088000225690751134530344490653865323767074159155147413474386922655692405970045294144633295940540528859972852914004055274852908288912112073731411144249916339104493064354902596256613767790362288365302777054133060827957795278976548638688114249485396578552875650626318374520721542701846042445815451088933960000527985709261795218745071251869735785936507673044996709888698828742865340517511044641998860746253034746847861029836879579337337695761207954360936017446003466455117483663746619338170320863082226384211272239577430753741296919584578951110963845091300391539016604224412528530811890400733702509392106088337497892718023630266394198769716996446327957356191093708608107804543773683552552079209417609101246867244724857854267339292843905027635558471927295966919621802766900097091711834420162040670100066889430685011639462601796903894486382365565932754339905630291913777737988881552730441050641333707451053961182924158050089535105056000681497166580666382707923584772438717983726010774727172048485364462378862800918652964083396261117933216168409202206911852404668119441552122194329148944292053216431294381218130907363778045691980793157348076445503583473033854654665243752396238092225876636388445524945161612966801257668732683074316530522371718532005268549232776825380897155242322459408035987138882414689645680345612666578603591565438604033281446918759693781983176001793179596206164782592849253044805096477361950970478864332114433174263947637618742298487879971372028844999993088813917131622329006180206729169304244326005259503794134452655650285661398116434579778399653612827787618952915658043224444075466535321639651878109927835833129965768827365836715638594538791561722036019504718145353235360064819135072727215264046398566914208033648355560619835884539567220295345590522762117765409929594379676993612970424216227983976455995032051652474944345957782734940480586230390366573712331476733427697847855648823768078738071652969657918138035806893053568372530750312928069173616039673947317143525961926371842390617746776325414229695615632542037684373502653222729073596000076670154907197138056304600519212505167095341004446049571895602491581959915457519678614291798740415473229660452786197818554733757426061931717007084007555398709736131034296125988110294823768413416593824522103510263449687688106604932408481781400466084309422177670378839470649170366726823079328147281047715490472562303929195794744352626615722342184410887610713527908723571370628296432736935564796208474184584521625876288417436784647768790802998687982518671104534395377350302773744070888838343758500920058616011635434252467383039053220834188700453352276392638083319322708626571517454400867772427320815637991757258409339911261346687709438380477576198495708458980229498542638012927614090700990330707274169887529546142995799631649579522763560301464153167447128920666957807293060763072172378016856700472500386901158727476571985480709314580711063428306146924483659825527426919147874800108786426806956496664160994886705614761371720738047900108513873479039074668036909787275756123849921304313985625313443926937351042682568406868812628502545903119510652476073042401313735647450687289149455701192128438682896545777798617064043225013616055309531202097057576475722905788259876490776051589602447460819171688569404844172800863675084679191721202253234760508002581422470556812743871212215890657312421531327072770282147011325262002714188889766332905950633620708362291805481687405069194963646188399393481165548490186738965531455494013808202343371039930586339043815310740969153439654878790400095512086006865211432830870444654348778181140559200350140316777965248630609953670893059286228421862446918688662387490172081386056033030982440153271721678547164989120668133783538394573821324891677483507110444219837438186760509678053489541682562198611436540959943268028710938526910343465058228308584049172868317462044805850792506740074056052588689024241229192385868735187702290832806034953667383738716690314668547183577212239992913743246819891980104177655642061560775584695736936016739001294748891146735889278882907600169463164975866976231163710597415656128170786019447382422304801518905906628062266425528400448606449022854799390069238369675732166674681078838722616969688911899569981444329924790708296820610008928787483748114652471402998237393132612686120876623489256732794795465710073813373398317447618843994901708588653701406861989451814098072923024048839539958477671458875099142886443231611438664603225748586446478555810328080116106843038802191025156271627797824461784529235129570633647924118632543249615127373148523917997331309559470655207069835501293217373113981383411767364744773719890715650442863615990362456813911083412687425468056053613779255074901995024107601373265461089009090141135207584195397401236094795890359248422904225143438148207186235386943076197597538711757911307555357432286489787076793743495932029305179949341063684862277897917459758230854323990578666565085615492783564533685597817425046988852810568608729749312655115628205544239475247882628329432580156455679655131108038441690244822479615324051798752223060001530957894962982661160193549733355794772859170047106140458658087992244438499660410517998359221242259372344794913954628799885712400528782474227107082305931581259509431097532008460819970824085547884073945985971394486151830555905705621438089609885671383429674531437939474084008582772504058946868483905444688632980245914776990939622551465570575561748083894681248307857260059690583514613185385994564799858908012203389562187298872591218053052083233850301623378334602865834414272394221375877236304537938002656727989066414841571294517997665102106005242137321990959115505477529422851424237647419168899110199410023980967500917835567440396072078120716137062632687883035063573477989683705776678110387815267492517934640575125104734992515486305361931772860597762468548678559575091753077832152737771541239216999060011138360080762017424282791521352692368589253168834457528758804310801001174702290855782576381110638654036527976278627389426267457101370865256535825946216354726372438842326582207966176716087382551528789992277260930924820801843813604813425636906586999822996784492130049692811705509493156522870603660306735428369682500568880631288943907024434503322576366159997334436950181910526304894774740600502905808018428041303911505874653032808498554786482161312619890918023286731158733394918730187613123640270840964791937218997190760623867331126509222248758726076396021391855425047783207343952683447100369486990639607995979721516005165306091138382148931797930819399689016049571899075250311579951301136756923438595922362744050617803058291118518972126121819019157834624612193780144825694810871099926848173895719494511470076787971903326790228317289089791444591171642635810820068831016875616226952623204007283351168996370091459136236607613170523787364110306320496921233990444369741297124909276102007468964966116417762962624781312779778886443618997990655639566568110343956631206597670270878242526692098950377906421568660503005513563222658097247349534010998806107427792975519910502589251460598916727624364425961226903608471053114694875327613386418436664299232288332959490987529115604868380932767284234340113734271371734660097504910236700789980627311117995699580876957101620309227833862832375661340031510746413838634579834401489870750780105031582803132136424280860066829258715219833417424222904122768260894044922838184572052402731443918355816163151935961475934488578957012037220940530858429647317957134189098649469708509720437249799214127907285155941183444838743357017028798345396727213493822364700151540965614455493769509781716559130313224533812019267021103015650328198200301903585729714631517229618581392213426147458991465209295553845672769490000619458863951386604770635025683348391899420327728770450971006461030961490297357305647029630119268202539987739454274434151511212540544420605978258874435945025324599300439584075319772972158537361545872974754907558034433902312238826440919585655656092894273917053119617105745410428635946175667936121137038234380040005307190819759124978539945324804996082140962999406159946045915681679141850071925054978751588348022815505295150280693884754715336304994546382521045195472169533594103141144442517677466890368972115323744864337681683442588803455056848595409775617240350259534441984517925774912485737847440657132490639445536351048868057895611773944597478027435155258997841003750872374111598775753188754095573672963413514381095589817444601939911535659027564379598916139307820361047336357651023344576981012065698802573287372257030877984816807799407217770367032187415883198513638021544060895816374898728201956573671905273147778502978663099128143359456859858179850651526441314556938317113716010914065622158822117566080413087563970594818467931474104346120937393460825787406206089066359222487860201376474971625469107340403093303653894762546232203418611418063539273841390679649536371817057892408482519991411734063773051507587221803472425264269756714553228370284471646028058854087670759685408353591237092437777203064254678173053439369947517087531540989031947326683104502019264765948801054134061463927218188516217445817874896538825706025153127362109312992986228530362426872964348429860191657364258040760942108564683470181387977654443350946053697244674449756827204536379336263264180393793778041134861103766609046224613080758484536655444264216778622226110882808042387663278414410708801406129522414208378057091220028067816355492679422777616243814017163319838197293534211916206783018703960350708864695304703645264220377427671636419728870856685622831885082371885018877236387389711974164859112491653985553633828933798106768967833101217591723554948303497777021358586441771076508340368952680961357122981808902893723436481546100145840487626053621147714108961067220567825856843585334992219439088882246398919170015702475086005085055295223480570115701394329912048851359580646988557656509085468004287373457474515110072647001547643922112692811785081942269327320462076008328152154471566577685051327358743593040724451153757134807924526830478010928904156172189825536647399730391379614890699877803596007699043266033770264413381478376013036988494353492801532242720888569471365127348178817375088118992710851977329868150051980685562457905436160116486165779754779009907979387570506341815155087075029273291446833586978359845205358940388885021636260730180384535088568937985623327450301217450566676465452240200137980932294938262176404116931304802538509274102941116263621233647574820056035229918750340376964383893117630877888541998429234214091493163163138571874623572876571995297722761068445516547036787534243234120098934454153888699761756165763917111251837576827133576667977864724994905664292444001957872804416225756083090363128213285923155477995016743938124655884763780092648535711335824301148258934731833750808712222663769707826845516576961760980867492379489110524601177385378231280158984836133982333324629119946424946765969232769783208113664119722993467045598408427336159336964832024282857427351674800539718365765030899500224704699854134101594176349533683537776368286912988080287415869686830734367495170671625662370749176476467853921852541372618079472158590235449945265800410679573407199522425488838455872995588757790537446571913670222093541524835403845395981861497858849324640901343106174487078833764847547907134755330991230254502944387837052628449279687087436268434275779695473412066712648835200985865216456615692052160395343906900422375493071866485297040761352485128224773736755790301320016479126993065759219770343014947047927346304936115175676837688582607984921413250656734550081946399629833528528031865636290855250032136162826475202432739920200995386661109810468096663094641932238250553460557580771765015879016603118278384761751174925069377888483886316647719961211031004865958853618123885317735949744435299862259418427006992286489253519454608646443509429361284283716907658966390936228127271689556350018590711133169244814617916210474125096258246954393642599509380166127408252765462042774565770559314277401151125829656250203704808056597430798879914745683364132291675015801685980450381429286636680012732069536377870669879876379056105875038246698313323282406200334102528157602183408595961714560765006310325080894146215787083451808533035723672762563430899075448623737174555037834396410169086362433412082238867389619459947440263781517089855755897099589559180309819645165127148128057144828856485336096893972389196756929564568255468642611246806041223466394732143717027765559055386474121578216735283575408927377317747478236975060502220769468764908727665977842762817197105986120325444176558105694562956896938819920725929744897885368182569084391155299987827544225735312170005601557582287588707657042935562819705763286980790700481232416052208012979104779963349435428081046498440156920901748090377842202339971127340518802034969089409490474927032379271774037664089860381140066762111751295575015056457449342762543819235011044035087971961543132039090309900177366294409462931688396404401061931246019104661621414024176362452389775631997324349881427475324808974630539671192776339190030556358685213960903473115249375180900598631773814634811397029494951522712484625774702548731870758624056103340946743013527858903311176175373134676650730428715745068465703101289597161867466737149884859472474804785248568195043482885502343626977127228438277295284193344017143494122361962487125094544383055178554303941376538742399272407192647748402373272943466105645710164073307557721876122472588271866267133120078867215213779580745096321961633541907228331592740161700298728490873985679031122539084154441729421465253202288743121644905393478048782578039961586729778979268964969857900216549338196717612267619241038027137418268230948242099614944142556113792378388765043810708700841254363468970534166290116421621578262725551025396731917368619903244921706167111314800877250655883828580845738191101072008489682935683400806691715924497192849443454470687283849638280595695568072757380301342674224364255267617748007595003213048947671263871076305704383700673486235429303788884649724049716194566413899357968540239309852185415116347592855678859976200933623279551442478263275038866732606621568292654995340173749999351167173196870177696100882827520740660882240651408358831056010264780691829722248463371212313705456735279797046470207295204087910762665567716878794807457864226049518925663180211543440288117221176200764295989744311008710288337361958016007517570140087134453500384431670169511529907172352098891389646076149418740686573740881239107953569210654446056614030868786848417684484878992051559879514559191567109236503212782823006243924554220202100528945631366913626143101917320124637493028558522733648108670562534284190397540592638058793416721389661921004052903184147805498936407631722719514509323892188595832636779876489993435043140495168277009406032210715229203810644434307958992156984544453393466102133032138295806337352646430033671590831965236601987898272208195631501512684978394131938898003994085613515067462154776073860429432045836987245433359184476422723613126656155530675736001605925184231995931408199291555911114323664915429408089699835392653740822311555059785019544727544348873549703642945284680886252365875698523779118077840360083983371273165376080416050169184779459686466176208060531194896470064396046407858653083419024332092458796859278177608735768238160822695181410701162806496507980452535056265059009154569270941319588289319433972919618688510204679336025466972603809439921383947968343080829404380401126129972325157351905869449731707951535362254028198389798522881891983206461486733798934497770075472880650046946691317613369442812475701272193068760012275604280058295121150537904319675196102838955308035085255589451402443788273473824099837276030717952168503358675000030266147729670239405225235867221694158721407661499027722546665505887584828750112569838300418891588547465986195323821648434530163288617540855775928103540092323727761204464224216392853470717328367428372816624578364896572115429624885443667043357433336552033782790621054860383358724971224938239810644726161485783271745107635796541408990305777180322544852098559956977601884218041430253879718582470112105243456605154362055200811835976784089123142778602325208918089403454011088960840574128399703035842199170469631379224129371730857831114444668034735651571271859678640311549540827413867841872521957627866006937015196772140422348539435455319584711036889329022970572363153695231836893717935129198475734699986562315153769605574365766544178909953029638807197597502792259370981236590992674521542806036846501152024881884426124341915158666721545871518403570738265381888000227825040588461671456336896258247946977992773323576787987198699786708161216682296223593346638492550866868805286238570645617929964931478272214981706451216557410570805019212215198182451354053056260780802444689896656383673167628444254342409143609033767592862299618962395270356103732717451913988778017774047056196833519909383310178891833787692047568782002625323290379871833306640854002167977977189174261827021752999023148839802600822032377928297376875357738801918485400958636622484425632504323807795885627813114864501582158876205704569367587422524025107375693263906066666002279478304622179652474761328666023770107991799822524625310352643362136986053186154932730936588768943460846945982884003749074547731756968303366554055310734250964672839228635532766039622152845266211260111730960350418179452325426769806570106958896584372362314148025411815992376042336569081255385681843663217442152081340445289376507661803579999803329992073458603038609273876598765804447532125600236837509739900675918483337848851344336391821639269348019268293367950906023086772932297080555558891150702363822800314930590308554632204587695270977271924180990662125148487111081757582834366604511732565288718381268078918698841642496072445932100453646285184347781762687599518867880831095347500049812784570042295372052230594939530200316736686588758871412101612539692000513517452153642963380899109931284573862097296618686633919877621944009261938923877595387141500784387891302694413595995160745134101051626543134559703917439489301617392479890568751808911154401677725090780864766108616891765919199134162017622231675799323856266923254220144639776847434231474290548713711092728577427490430474024295890518140490106325540803662958299855731203576150184042359150012576144900269520712557274118042360856667780554258906338837176246017062266985711882367829789043214728433211024036233983549868120540423698648439606003051128110344381336522355576218199154210896649156996353639607940931518821817392499893929102911007359239663206317752183365179660005001260652823595535940173689631454788104491735318771713400342492392862359957292247835614998304598913689949440683998462020132116871353630219845264989969198028470502612363354644663360032171748976651424148122022214426738893248333148471416540055680020697928855381796113422511804767429111532212316491842225040073450695051677508267724398976156218543306163348225930011625990867135897466044162092859071882861196435091681736888232931530837996158002621233570083998388359546216581453344712130259694277228188509826460616690045533513309676888718763306280460686246815291870564368849877469851895218535752376717501642581885086730771708569023911062646130536222708895170515966641919602326747124186791496610886732801248274823952713809575996065214961225775312290164118047952351165445292593656286935012323853340973049279689697975573976716480289296609317949321548913682907123630521215769151290580498228756758819035599959033905335090489104402621667032441667608400843300004422827944176501540936994501436785774548141437849292465732093441169275530356409752468852758017891098177883215304977670503348475553616610113360673637521928636533732414291392497324746252943748958387152201660699157188567439084502972107674849028442845717574801334760726166893357776064473755497568131696802595956929302305010741547995332261121080347480415290915943408030517566514826734813005849419498203814288441277632768571646549750618612797936049417830223255962685822854315380101390667071648412353963054493360705992916099164389670566657454581102171779048327621539523819033742721585087332123819901909478190469396167750526289169425905286637819131178935066886516061396173416958904184856588786757849978845593739204566381810804424344328957961357649828271620900366970046087540063784106081837122078632662007189793266314369604269202307510937810223117460130860459735699707591773093983170004089161667949845249859558679731168366276283544647312887708978482819344920714013510106042079462999276666531261981403980444931025949959796333836588144327954984768355760311163938205264531142393607910266237458734616172221462747239342223056965558220188817501514138624874653917619555065099387905354186506120278755966515305065648493898485818588928286415384587420423221927832554016729789979422269693228386744457505309883298520630342710932470652890592799597121000085065247159669869528741760095472454820390263012967749212224962393901660468683361351037404795437535163837696599991960121565171722169103906893310077810964872960887767660631993588959876222980043689758193091319829984840888584069497493548772011316668063249723056233929907524575950152676786038828382595623059646726807409563120947951527804430948055799677068138409640282919037846604143040841429713232481404381050363823161196388553836708445944294951430136286735798928656310616182968052477996152596647383411591894734888446245854004619109527257768499479500613150412261627731991283030268161332352152385412907346024530389751374624788774103151804929051211087351659941493712316037025682247479664338846006567382233758907274712499624163048941410496818906388899909419105761820138694374087392352480412937458951883541888631689125784967395747022905497493243252121981725050972015914941925436583857453643292683948954702910914714578183955780107410649907661069100782614140488573281948749667558848233911923984528937296547198488652345671524128726316459218450929817490109138511640426785936870464316962107537494184363848292545513167340595794962300874767785405150235636099684781403691841036428869143104498488712850269637499432645901049162095043347581754937048353106891181628880783488343688499047872464498798071419098450727057009715843933834113546828707905289542811684400892948467927729503173511752693227836931071648602249978136893891498919912216742345682429722174939955645138775707218635816965053548001024971356197104118367235349395824598517801968426637194113463760026636955143866911452078280054575126877525674091989954552153221730776978584978707411047843461883275401357745310452362263951460780172434505255518171530826108079329962102773382833382007275375841758311975290018684124951933409664416184410278843922073510574919641352897854520059940314200757774544876719516098634262687732258275548756767685254245882482012520426298504830789490918220811247533399871447335106251230565958613208637280898931754321058159239366640901135052020700027783573702072334036871569768209235917765563977009910964724096429992042299466263723373188876218467405926874791226031294430906322446068342537040862110026216918646702265932267593233856191799933969291321123864340420131468464157560277889303303024303872503715669709844280206882133855582032358012142925939150069184088342300196995065749430208459277015181930277184241053297933087986734915544705867723827768387052022393911851622515098058781998996282305257215270184947463085754891545898662305990782352813085993946619667145144427742382209377103150140390412405960968602419368585540678665114395113118811985011264116177014234055090554439799204578929267183315826607457973431661383113050811465388687768498546799135006831593603211072802417393161562137213302548447703285357417391403709784745414315305645542343697046187230891125051927860561182732441397413168319211051152265282432825356257384379930016821731996722257384134438357953891085648444589736554934437940463622464344944815222643088846404127069568370230214753448696975413939228940810616485447434001146652073810986652317628279123611206115507833248253578044657398583055355752081710726255423620239898900755617236900650232119288533117071673717980546207983856679459730571335928646491307331177974518943879989845542554067815603060836526598984703509364654712083014847387382158416570528426455917645290204136439172025907289581075852062455451595647341408201057668013282607337470716448233774311732500681003989280369785597652964192207908254525243846536384110902560860791640250793519679095278377231254710053997873347948183321882761427615521877151715807700796941203484037156890542090416151331328850480225003049800078199630265541658330255276461493161848246812800291840009008835316375520766401631615884103089262234427613280554912979451400047149440030340113768773117971417443860295023577761769942172320765289185944626167397955342919989134980584699417257091202822570208767365407198405629939736138836522070405701046950592455669512962837167784480461044928399124957984961280363391752283167496314453618348812629204221980776483798278366690797281648580371899366435373882504842289539380445244406159454655617246831546190927047164469390665398514565200746708876708539580126528565410864786500777845033464978613743726938522965146586993477520243049859707053002643742846566490846871565559659699151453497740152686472300731335102888969157708056788152768988643698000255063173875990580978040385205863320528623875372215847122103210994405903793849500428923939347067555074738518035720672261896265589846472228205552991879358977030535314144003155736517605012932655920578706620889191189540370982741465319987510064628105527294972105235580172083843926653581561819843687543080106722525560512856789253066818199147393364065686985628072216850174774472254386674613327245024065952693315616268919981220957702033022009531380974185511130139683901155571458633663625708905022329413311878148750807176322606424112975186372459215691014237154128011546486446103379431455625098694722619760327257562491880252453839184317263246256754230203412042403641677176202962898149564093989013284259170906073348461454139810062914754272446723538707781958149712091904622188731927911055805243133856335301484102312294045103485929586384782285440699876890160095463974271570314884736828294661060384260475467413385844846772085679625089892856760957764182895664767736305727658710151429979862313281249959177189328771055401306894179770139202024687396657586368990812871419614084756458736686020844577169649724206361395034050544642082771247319791176356807169356092134215067292270265546644826681837188473317221713551507703975304640170487960894842325921563308482862321608135441580490087725171165131784642594276447258048765105103662741139264272295019860143785944135320768455903418002020787949899068041042784877571231230915010676506695760927428195186918110627261225582376215274863841770318505682764678285625354122947328705645751113151331691292616775979513503775070969108933347930323172896582728055101496044144731393046411824625796292888648182629689851518024220805380741864249249938127716288155857724222375699014466418528651465543748601224374198300243441470219051404918913795504370496939730857001818931229194882688640880023041923424559065468539908243679357868078850354176235139186657480560237337314157163844061594114931022138307715068957166637742621659944626579235907570427352086856593627148811482052274984875536964908443194562074818013203639446720023527772152664795889688505160204534908865314429646963730947471411224030120465906913824856870546788922681376901545169346600337584561927618946249853017342958989527708924690260318741980008825015155796285399351298808099183123688937520521250563749740872051963999089746295736163534219748156116352365217539098004875862842382311078240986041896328001601318965225833451374430473982867750322799582801949715322705818398382297224438278228865647616208137734667587624430744680401299202795298759752669549958480623457620170668385555764479345499408608547211449101615128622723395058950349320304474898859375102900283409655178730838964070544346743162363913631646118049192213973382292727071677419296444100735528882158299596239878475363702014168689475900837069458828094084659328914213247944199569499839672864054809304940870116820744872135730345199819306943769707901406311973909501221867339456995161444421288504183503245219220536428493939949906125345151295718342343990762649404467048834670442009758463057832248735156215453733541068787519566113808071710008600137379055415057706710817803194966005284064541804724401499405040797857044088018250770245604713230198093464911835611680367370682160795085636151960025763740995359915023739853718679595069939887812363479891691588432443002682147225009184508247272626325499129158121957339519159160252988409650860062383675218472704978023289815484780433913455274495542250806495788799856649960797648933935271963914855368613518590863983628523618125667065247974758852428126193125660007011905546456004146053629155275471743790406274628018588290056530820508088767231745197739442934314805875535244374349939191830942631411924053667785439237422723466277102538712574571070994804968281669394266495351538152317885106803779594782517370091584202637015400300373339708617529260398940458559532501800333216343118291152794171764802010850854467711741251800988298005587427166084519265137658235312969454976188856020121678688678887392400429288722963683899996788041893771867750248179648909507648420263406945638966624131719134838150981040099579075592087888833154470937650371333317332250194065330325761661969037363112881469888974294697918319762063148424026176323308784639756290456090812789570274384542328103986520610008691000763030509706561793242719225903513609031883470887138617020714543451454182009710434449638644304449558846863220061648428397150882709036139858473322147257084087774568609408343123944017520367096869648241766838966440696663944597273527456813888494317006174687919589939706026007197955621246701812170090465328267617193099078175114309911958970998884272624921596376948363905400979032342929004048337840801204427296192049070912381532937182691293154839326903508749135860409379167822741158298220679224794066717976007715035529474204885985469776870551004959500112781703998175647312825511641213797581144407621625719911967037803865322434062347688366961937873489971659499152772728093715201378877725651347863468832951921424981035715635602150498659862213608980830859426753064405459223634988336800991212523606655649105411749865250072873455089654179166155454715478158840058492584302374249296103462196343717910078338320817986382396227981712383468909798794893051311533748813880199917012993181172663779680335888963100973722677210394239692473418860949027121875866061232459628198386779445006973533405226327795437496400807727464007800089132930730775267683960883762852764724087953613758884301149820069909857803070734071406585230883727818941528603596797437621519769618281137448425631641688388466381954079972591515614271314618473990598710550655240518275568241010848388360549814891154503056313345523488656697198662392741010197135198141468653830824081205251010795328589617668700963807858435235850659109286419305977683252486646444085393481757035213408527022241718259976049868562195278482006024337233054328831828599610404169649062567734307309165417357483665849158736476354478037414708877552549436615174430058207132168975879987638601904540800148829391142796065454421650875867122655853407236960716757081772655958743353885490754067128210620257948809412530275581056876685621020246877498110857771862103903268056706974582168995154639362659215650501207003831612472629129491114760022048286742825659340712225390349054262411753733369450884882338028306396612181759291916349871395470637675876376020858034790051340646674853646732088661808442748990842024278973600480085060585978957047078858246178561739688600181285680574936486949555388548269863348801061194365951923550865068579411211769058501677572591587728243911779593445652872255124247435151881033305575948728737975697169851708527519248062342565852753827779255533955188323578911165987781371741540593595332853465788636835268235830637222874652908532060959852235911067452122773012760821345725237702304716291167821036769232634818901194292036662946073767764904932282200759828253457738473425251606454809413814962930227155932518484928355438915607305510949654780023974129982632161092765221341249985992015599171361053377978492217740918950732456901546623080571732374509016521310068047536244181592680490179676700811885964139111942332466385136383010679135884073694302761252664867516148856683323429768183905280980272331322308746252573360862819528826487788388530622936641008434487487417190231903803058849671136206923269759688089760415158291921921773913836420049800315509534012401920987816578998864414801142481219354142755062196019077110284342851577777236109202970221569718303592131667011308884832583956704286733551993671130345053916205581751860919579285129765273580140969165787693097136180364088558848385978901077328777305624856378671213356001197814462199375290128675557909745644216997639338328363337719327959267336273366995022807716586083840873537806442772650993985742001215887930688220132622993417571727616134088400981077200693169358651086270994572677183917826533437825552831455765566068009623769339341615461878822042988476802433571703860250478042179129020611188958155731705488364290592142844936888623945287203128307229186461423101568847695512595840131362971052065196145801248619907014415117337535812441247482662003034784281028071830259423566890590155045302632409663043815367932207832894973846918959747371615367432446294115326613650510022971267156028017433617360116333382896052632371218940236367048762801674793342231508390996387094524356946358602202743568809320684680821263901250815978498627902028282468858984421749385228783984394345601405758712514077644545871979560521099408623497881721191658882513480221019092921313203096386652307494935947480511032208445317801211064813247746127578850234261196318604261554538013356069572457864742027365242551713242755150869818420187727977092585852325918128165221175277538933919528876576891356429832799195507804959521636811861126693615071137756468184118736447907048368329808913641437393716281954077920743450023782206908841027229908261658140337171590080796228040152214972991537690954341679225428179727517380076044325457970964977313294868103309692738870663888492398011137439261569191544181963578160597367541361069070291119749562900213606548873364673580136031264413123698519439354306029807495577755874287079706779227913065805088189479919441488113101446600206187719610558871786546668970214694313946731623713473059203610805777829064552965988259753996966353476044753319998844659671176705184833254176771058614736657707888795055270288565245556226291397663154690067587790988884293362540412680498622456154625837212519816275812990397179003768999966246059092868405071549509025979975611338013242607337198590361744210534915944253711271593468845130412404141037958393163559430689383441206343272881554608124743603442080207696789434327387829215962843078245623834686484109750619587780413010108689502448458344292987426159456415928197004573602034236878252479292857060182082758866727130047412159317606701092010290788727960463958320915564975060677961770112495202081873677275747015126943543294808045011752541411041356533668292159776358387509763679136554548109070367656078907310858737790047256277685197738278556790451630071071506691508517649653936738924162399010523436329485464954607624913004463939939179220914100667817260805217967020510049388131205120251786517431510603255147124377396049510767453025856634479380184528292940644122436024493993644671066439523514441572282654721421349081811821270222907821767620800121922042947571189859196761180694131865072594748685981035342552155835467783274086768412181601001287618376962612712568440229113157494445573972380322664019632126017697022029267386990334814269987464484102907127502127940453743970822966930905184253390425474893211134457724313503755463126457384787827547410518243292832986131661296131408424342605679949847196062774300498491152224336593548428418903730737577996925142350858471119601591369102434887035924290725766016697588135789045628401142993037978917923560158922312163352765888231287010716854519497580271038631912714096123731091906426991245849837574993724889423279790654154396203427924293081887739262104014091688847745403944769161445174379144477654412887652883986431014569183441370321907811070391725396973038463291600025213932178413914336239187262808275981377456869699639358078997934433274649780034087863516597581431977714296272516825371298136319232129882838307261029896385473257285015248627361819044486958412774122216592793461697817763999255775331655475496025687773549542654764436785849170232784610123329366437496609520165470325209966385170940653253841489491463616590623105821863717681327222291323266897896075575404638066750883986340773222927689330408964833204271093978649993544038619780659343571148782130293063848381443222151211973626987134272260557231646999690204340690948696703535130367613384949378845469859846043019541413889146838639643149042625287666798489824082265106366032425263236089967035797024276676284672309909167520699185506466537906075769166642447004979424975082206708202574685149333893285524133086478815094405351922437258260851034953568459295655226403542918068231529035728072840657608586032158102828631220169676886297643444889562801539713139442413150069659643742000059909860154589522988584318156784601082437635154080515516813445414536635674226135579858504277833593868173661533803264061622257996752090612617526748503312493390664201066026210625638601571198230649580543541795941013858061890262200411538708187953601110051506490419327021306373811665002757553163939184548088330835634694107778114798136502215399093237877399838226392868794337516034988029953624040219426243652715150734575546665204923932115047930660060543962352453251214442577092082119406206720328765366269637368867121771551903389007670511234144585623925830246361790711437565036820331277590998849855348900626590002962270024317087732754528014732108797147583790548701862896903797127490885489170024549786686925701534964378939391359852854181082498079315650046347808872953411283165947061474647122214063068578488871463070582708541822356395656354171981596067003715762639060812399356707723042779275416980459836664164651825512000530986998353448814825757955448012648921747215162911290476282952324763687261004712661075452478959022253390711221682442751431667833585454647252628362249719525489597136990068394328869606466392100851923432953341991971904636471416100390264947179166980887630701054465570082307684749431010190205796931831760202381286098564561018375000994662825745729261411535805359528036329822722594321511916892477937699407346587130171255339371820005131837193138531387363355337418408788151790394708258381613273295545649959784312194518779132632464735368379151130178046869442648886137519299751541915194220207528058063706512432759009913593325043025320676036093730976710881819621217042713023062839958904520896346082884563830955000309346489163630893533333899621280141992406081286159053493834803809522572645790629070145782109889347404471144358465235161741641385661069923463055717738891000058547029772188489278010754362194133507015686103417684455765232645468525257031161013087404075431872678622290283586258151685243307920022521448362946144056764787765949829721301546465688117117736735471211814305325301843147060166954972758667708946420635779455804894461228604394219752459720948990562341349908390104288816156613085817447092885542744307621521535488740224219517231182069697047819902814939651747566402021420115994001336525686645182850029122548609180432660372032859631309865942684489913281805838393319842052226226398521829009723817904634096946347586123694679010821439577319725835524859952800139720584380111497494305159373885490222133234263515127945936955136726082039700786791254920446383437916897752290522647794684550650384001653774295783022311936848458042761257151368891031512755457250836315064606645001294422647315273018670715453329633784825646172638196664512708028230639704221208715587731285263847058462745444940716047533766232592172988472225935946333471150891791360759764903454060976618416027378820405410169985785039879878015159316733453396466938418584750575260611859114376477285351159415700021160439503822358902920632457152656534870874173524369121841402992117470349315111056740934351079355415793869671434460187768771820454762916806244574100053091384509344600321684958201343861673634321490190059870313416199414225996215045480017239169674816214362611924205451873041362756216489959249344794856409033553058798442246001373974839460155627624269855633461375761446964475536941253239545872516900641237326785332959219486759252290224916059684608640367043958552579509887720460487171035659622436572214445961133589186461758562793763343834663918360567797487708553600408489959258728184213613526263871276119188485280319110224570452814636286129479810669623788131685364483052761844887368062117155025555147987730818746732862849050162153640407749180568456165650142822067129506730097681961749604462145977214222334179741609311466836187970248819043913641645175496292265872929953713726481942514993944125478796114084603686498049525749596654437980197182398946768480562634690941227107281661384701911332599715182915051914074995803526858233625095458797519743735217023653351162612162414631386194120677079979668217425882098151943713325295264311902276660288551179030810032704846754715176334672529910614135082001696262934448764049794690212072337605499874618886404065495373034472093567016597509100232272018245613938644554438393477959688367584857574382526485579410489424028384850717286564928302464228655017381382383999879546615132220192904604528885184937276733711923582110976399863581425746760512778988467002904742342587733457925734955447483354848648043766855918554052778805221103524904009508817599376775611000218653718437271576463280601521323899268821812533732314626668986963876810266759056830967203033458571504757659089986756314129556724328260646107041516472815344868864912090625666317078700862557026560644524430436579826271313994918996953981233010933495783428281420541367997422778533083491714977490019830317763368075039372022620214651290167573090859623538283998902686596730781572845974740701782171292785547482577863656266898491719945281968160566844482656027468819004749239933365189729234421202975707193896428687415465151146701696473862048218763838115519742179783377492894574505532941921005073988197732253643149920633346751100278790420688774004497764675643132785078493793420757180927029329232740535839767494215700555126819383027958526549902934436282228110374578652056597528562362468905250465090032711698224215998133657911973124129410516720513092704660159959019746226150350752323612296639454282959066961712775857036488695619075390829175570773166177946796588578268229939443923057304612188101222700342851616724664040438214714963815147439685881311439848551768407221650244505507436831639256297581254839205274124917115357787409432814254873085431080447976537556428754799085464672689113569544258571782815681360227120383623551150072633286249955030639671537485051321382013962716920045151605378487176795789391658466592837246433367786723986617311259662985926078280640124217064854082620186671120855830006045415073766882168128683081524503151821526121972272104650648308789631385930121161199044840699691917007785585873696329083411114260870161449770550738017635828042363400234209787085729640319777053156908267056876348330209373391267019737365102709959593043440812163519080910645913284886155226293638713979057468157945610205659890840951565047702937862488525236186434394751277070631063420282487445175359846175685178024560277474941777088590996159990248138195033409816219781963239055781719061646001746989599443303476099619950442698448664459780070066021748738947426564260110549677694234936874779228481671096342097120773180261603347222747286740142749451617486207272336167892629398461113758387462480208131297575575332760621388189529794631112516238417193110595197574595379509627230708705813756630725004703028726198700376622375539023208173000166390253816604397067208253647819925587697092360459713166218823873915736961530471021460119752455944567506599314688933146177722025790492741396730062330204992693306774054276908030621058334044998472292712577113457792864154786309989301900657515189280721479504097887954178334708983227982271338088894008818192473685519728502454773752272221705537952687243101008577424937088451596706174111305701139262562557970363392009423985625479498095460904124964417342077938614105234095751593999833145531041874157501935149584616099382017595814905160403934851418945344206267638284259299418462975036092083300646767091451466471580956999084356978406455622795409602788161974208262181803886121592985282803373006685579773889255173165501023790916139570782222651777167714404862330898357199877046536903789275354328023837216843548562127691670118820752188463425545046650395110910017500257668321731086889160028066078537654297980283659476503347380615504472873203673637837059144241399800098300369793966854067371949892635091910684998792057504558484951174260337830476308224337606816991647308233260371580237483858077117008211084983953215757760413964271310480794538334680973797688911499298965674548602838399539815599154709849830912727721901759449066318647097517375633989651092497573500233404291374008484349585683189384528182424472469085610932758252455673875327095463761409240787152717466902731320724692031392092069398362990101512527811144798358692007316133469058691488328602813595753578847664885555086702460497946953605463351555836881409153539167006642435455704394449659232338556217416491225358746859123264663301088683625290162776391008115434916574851737944998444247179900457617032757840716341959130727441126480223797713419419507563884627705293171567052033751914805228404493177358141585098503015178425169941408092034436299888759228443391128330946152279472223714349575628304847639307028679356011426072943829195263587411297033320496149643745090361614330110733126485672417970007636632470210728031165607540889313179139404851397555281193472307340296262207973105489245247386189428683246311169472257585880476346457845539796411122552066463812378925057340322923854223080433200837502834810961554849074619972126536909341750855388296782818658117693661409629291981140296962838675552810750679775723116430042080031642084941390454655894423297337395682500839167050398635286368409370127110292866730990711256317533148330226132148210254905783062517935640939206643722061609160305943796471592079356501421318781676298628992963243020416874584689256859186510755575643348976436302086699553032086479247994255453725791434479346202305126961966309067872965728008167788312173662632483132289248424078395197129533541257256910711897401712502295614451249481599002246334566804866980500683243647227115776190581231742272945820055641173981440461709012697191369339483052767451660817741016855755342048421416324227451886585196259618328901013654717921757581474888797981283690364711628404634738641031936791906833429804782058089818678222975428788416095183297931078093277746120160744723166521542101341449237578922962394530126948192391626490248208948305488946527118465516128337362632463999624993768655118220271659569274131518931164613468122388542855937537368530641070296058134875059156900218198602493362908947398327583892080049134780437152158529285397274606407728432854177045424388694177853535388117100106960087434985697431607438789406647381563289870335500859321943288481788957648308608418490089858419267782914054118019244401114500045215662201207215735822743720278042105536618919272515444635451036561738811291640282884938100634343831465318087625219709721182160158501758191573267445323610577630931351934984348861197341050115273333829267326739417199501869376138609097507275822473457016755208295634862442295253946654622468474131597457244684581355805266613552491890063644295575617521199108286071443915066751114836858988351425819042475867939756331185909973423281240436326598943405094638525513105325175292420847495496320426967537826126547054882244590286125083592871773107082960805647070557435537357072107592310264049656126427836228886885768637668198575918326880588569226531410654049469753119508671025182936695138436391525018045865701587976982119242461847431956346203774148308384101904488166768141349981084461175423517640896632665819729968712716191899600710629179321475067426796743034898593441933344113001370682976527706146041423645394126361859963228200055367384184389274775622269569265248000496087997217768352552332152177927457650175272217610096550850069828900508850993219785599488939604283190296389537088718559241686916399456765515875014400915863880295665662013293426418412669744294333670127974424019765552482061736660738324691263030568796737378253219366493117833396413288693369797388225157811987630673188836520032420614060680059313345726231566271555427736086799804386632409598004542656904756586419861223530692695935970091262953082678084179459021182200803557282401850459486271360149197200338669705898389168285311878214802317354506667958914231876852568638110216547005145486945070086271837013662925651450761669968461222980694084940555653785911389053398132831567601706256615445986334299337436996016464445742205431594937547731095034403801307982106788299290566300723518478098846977281953693210969306633933384146916633840940775992925125829436194789629345747461467631087685955421832964231863315614604543100939160268544465887507466650980150210568531071008702885480921818202496590484731929066494066074529731242553210744673632048294491015746941366037866366723949446396526468263969484948220121417121289716282691339249428687421476128519532915884402160097411947299537687928006121531128532208121588774403496601872639654632096518850217298028038620799154012132299593800660476692114904463088147504912901074181518091212941610259893677209525176129334218849014316896059367530619243599837871748225918377425082944488890413225523094575916521689927674348663801894213029079336412880711214174680186452349656378033651314626825342853333183892380845380758174367837321128174541809166259757326064854516462314685530434128720056637249829732155574015688810259995789742117402084384296570888786952024837134719887834251815585013986561221095898061658092985372106752081332984986859897853736871907694247998790309434388520979441415452228557583678211690785630540580247501055099443378582523687476040648220817178993051087793984080314770172714981932831126515319199621320411870649968593079155972656155787303292623317534526337530767393914677057455138365399429287553604457271447069392237609861100268760224483766973085072721096715685945009549204123605757204841013927686197000308234348522448643075296540973949126307950388036468487631277166848131378934526646087187040172037045360103042278834044931901799006069363661323865238608340273394199833943102700903158436174403077485322192427278396239941642913436929682734276295829574719062522509880345149697970686743242814841679656085869196545131936427701361282297887594930634483941190057560559063551839137502922207958424519197975959573808426236986450233684045357877516475868818232221959608790383689118280265433889331227415120498977548244825475658476119482469867704716213575255697657799496999511814717490917814803700639152105264113551001504726870984659162077587061108540649195989302015811276854840631250512363123298426048471194799976951156737680371312342369164141567382514793664102365910733733905116176968345751659996864571707970566796468784247084730111537105513503138074650369333327793535490586550919406429069180046879422966343025994811330981068532352143766293013657194430720232082266199027228872926454728597484057289016916730599277145395189179880990211966506301791190359860081742570543317183335324617132794640749921305120235118452395638371871478975041028792490400320733600544064980683326253514422384737871914748044571782304592598273697242474789385295640117177211523897468829720279765843157607621283984355367992590863150228431395866815321661371200137782591213017627953948748360860412718734713963209503888618081204372164847875112290784540364704938249982700940204658493629982280191955744519373207345920076063340312778238945321242870837974080950546557749657983723775512253490021821390188564895859018000800947507658787938673620352186014541003738729343220921648576927924708522807647126633540833514504626495258089371147021635207255996884469307237969962064276073430615800096997070390297766540813022248688051060905135677987781007091026137070023940885466052179714905363597060757566522093231857456581596915648210992568412497640401949335626662471719848182452223180125495190051683869799915641856596351757052795087697673544556349838397509265216374674089467886533250270947211402768983632351267508315611137496570971930857257142745639566736147130246137571587540690366398358352785335962382273687098265494508760864018262467809733477598105963968512370472572405852960233224731962548688448682493215468340942943079528430559119565643874422810746461328947600575440059209789165322293501767553200425151974184718898951244335016651202082701034937580014441619067750197341520370335115056674062486754409292773527894691892766455470739258834857770467765873425277584210296959850093047551862703091052745847603937963928975115479509024726666344656798670881908910264132470951035079833560918664112659474502644911668922333373422639028732114379163717404130538106256822811865130782220850495637714661093371424208022585829923453859420626276245738028041942874161012667797625845232092261601444619887138137587291590943229206023377233821966708060971336746025385618049937086287042030508237452687308479876957768048920060589731100389867198829596879740478828913439495744470261434940568676086131845361169689587709833396589113666940810412820561455136858181662026838278492949011674121801967322201952271714140932091263649386281742473982142363734939334522138883765950530871822451636547537689093314444044651506458820081143760250006345627765984287335992238527802934194475586336503788651477174383643015953581155584782623991575311583731489391711911016388070013386502874453831966949788875238028725242735059893744304468784269100393375723762540653648974992877228453138212302269332038595325650398533023195679275920210897727845053376237442581026671290770508469668922212650705624599746484485420549309888349939398783499391536556722262846510620202447465656461105325973096117838248474275182423478141979468129880912851524325057637717542252017271243166356955887055431133811126170642096991642664729389127406637639477001996189691234488762169760656085036615327062083248446262760876409938737582925152151476376162662974109847981096611088930158771281908205207201569166270863089685798020672891129162966604519637516880382967149414586081792898071883424931688020043132573678120423056695840208318535940831152004647878886693052877339101599855675465493924441151363787784767242681883425518806538658138387585068507270644518086548312255834897449432388029220067791432127998665735495048821045923981682135105848095605475622907872748546620369936636973885100312803188032254465971869830986545805643433083496815106107436468707597105961050945424898553387470106731667047801149027335995799553721427951788715430716420520034294768856469338516791500979680265580415254839324439174701250262561400144226766496822197039606926726100814280346733201811685724132571314743953353663013808631860205841205450627416758058501074872002138628130560878494317233471310323684088556061767595436166605696984552026542325154505890801231591956024749358586861403164183835202525408640790814369716164380323120526488453867246861949318210204482949903388752266182154348161353160041186649669961854499848176720697933510850255399760640557602538340739455358755528436963513904513644104596813370991478670132132846134665786428846271801764093029150997739691870051876639922132025560053178557514471864935919738938194624237855331936329113673992434973262971347986849408920793447673337342407448803102329810433455624803044329021944448727544419481975917128060991025971114226058795433830832153480284194575678095848956572786061067331978298171004422304199559408083525009099387258708478642923800023129422581216882705148240626132019665557177554094320622350503697899561489056974522430288343159159367000696667443014407518951634521535227627907443051585682852820173843633635703436820685278840455271683782605697572187804390383804434311635477808539670693784155785121749669173987470977721324811963694301393946450205437219137124955199273736260614461092406774804821917189969204082966086081757573637859051657874514053412105600533574638346556719283460648051081875894400716442765142558181111322452272817289219072114245609796696790804640311452082930547043368273855655300833137012249786732050716135339776525651406518376265107564729130077639117955643972579850798200165923550843605770556589190051690421194210068814431282270477360341845363439218151939543123219315595834685063413951590480224940220667634419498420038528430657076724378546700217354148283848610095853239923070668461808040954376280967572083019978650351499160086648677228923807754445939917589765551134650407855535419567680274467711324171857217985308543965914243460554631965777710716659795485041726574009116253603016068795603868492515531456044604183288812370231704724700970927478066972450312050775690478716687615809365185941294061175847245968274610648488772100350257515121522566360412576062268488668755365187963066730197900575269194689419905648817957414545798355635195801433527443302029395761997541560247542214031338621863561824351450269142495755183391787377099073547893458510176715846387516819271400015833479241055387172660305209891487491769884715638280090294144962390746201268659779441874774863029984813899631949938594402631582649301498293936041189426656048830795446356967316365604613792926081391504886873603808723580042859967576241043521380015306192282841435061632945759624576843251704926695332457729052493346848239352351659507081434242302103092347188647886973840554178866105747197776339736966774470780567808128887783611381745791805001501410182213619613548954007239830030435840050286335016072055498862855108916375499476415389768223037558799749785096505860406375405221044641176518960962426417813459910869005374999855799704371364816155168101200480903629529926428971757874719043899107169018726604913773904569956943227121523245303471186330379248182639302624514031035296559715439752304303102569186790515078902035615769362026422320041070413067287488934258180203653145926033771063237077503690025253553503450446827424230488591818246923966979940431508605645626922808421816058228375538245233433526603317897019084515060056071014493409941863851922928577880699053484886223120088930195424273457417637198493617836412140189402942101080166724992431953113730182392648851775193644939912750987937431832606427298149590463256001558432776785112323774158441315684485604358987969746866678670998285827805124682557014406112478757847425267493002297338506827696925753848706531903138373130510050135502826881481806442993212273358640954231546622720799259586457874538154945575818386079150896501823307556369522942605926753404434106188584376714031492855745041146871369518198117514286283381186356257445784195818642949964197474946320642770700315909549367414757828864054266691254289223391597421676465951721072328833379109503445972882399670428350992646393379381643775549813047824500658947216166448267826958629442849179154760377339904638036216278255539178172687309294978440640707026820580001392808933439016262332374994811920597693280763356268492945214706836422868820336268620490302597207358405702460865541314670930757290726839848361885035109669730615172713129687032282128888545943333287590206905835516627715631702970578449494946696433511226824417590260712877202258706978443307652691196997669752193793407513561392367703855002267884964104489056175788632318012126081917481061936784828291941415870323613899009481061208096801348310604916689399305640195461024208646689691847587387604484335204053025777248961790349844720240296039009545385792207545069075346220578480170553773674229974645247601198827290959859971400921531083299750301277731682907618501614992448358503285362685171061346102911860590408634264388274394205698299761980368693783929670304608936276490343158706531981917193188308264179570371470654261313855322671972072155563756979672094241947873813202401628720350102634881091377368264781063413443516350161223835065121183992760066771301821067845769164019888843046983340900122565465631253261547674787420287502943799434447912824524132368683653890805990909266011107550142985535032392625261101362892245390099470513179016885634925516422132279175454048504533692617990234848336288982303422472515704235140030144958826614379428916349350096805412670643874344212194036605612957995702047376912939120526804550853156238091283813646585251490304321333336292974601366006466306695577607140630762404070328213601727192403470330329878767812197088252525663795516600157215669257265386594622654620553772220961096672847772605260388418992109832950780880894164954589484751082094454288925333441404005202973587159067077921166396126408718090706408954665156869776734361138772433690473916353305426256150211833597924916330167958011464260302422849987304909550537329075404986887590178892155731506573167696069998155147017674966066375585358974523128611020536581549242044606967812796567430907115040015731280185844053074795047685550048128987262122061933577191836827041895138849737153481887829458195627260433135031427317655662892311884600123827503623773075820435813307680939993330719909136289212971050479111252867576520132768301456779069646245607129754376892456975910640316089652585296676283896908202837171182179961967668252970282719391083010935864550173462969119689099767203377789396487721435851196860001541828260343390960070588779617298058956069558275502623052321572016827832562679011006847083221566186438114467191985840369401382342214512437864511039431009591527073838486479751981325160611894064523078640816404262973630257711775123983309517831781431507636655006406856493793536315244223464725439765099501459834291208064927710936136615509326206746169686535730087495046945229658575733847146375759666150882724445815071163161763206527912268905444514606167101426790979962562479307316895197443639523527743229664753770571014482809287675830447505379376268477151571171948631721672145244725044589032374169620264083609273775141182126655151582868917676407367149232920362203634263629417527563782789032604019412819652930841164832984798030161142987474981412603908650677153492986761643385368258542448953041820095637053097027201326292598077546378347228600605134229043617908939723636427104454759042979068967311443834271184201473658526440764248638060848917460178008899830326029183031683652999844934667030670762472047809103235206685735828744454509903224796416926556069632711757869966234310310363389694299618759118403580895395073717499236327518833008100312670196441454356400522750972831977312086044810132833623128704018239062572551824435601886985519127982892373785612140849515836919823801604329728411454977185866256778823688224577621285311838835695978346723056392132419803243337691529026788012090888931716753646979653795073013536898055967817721132405648928657442883387809791833772462020996999389450818824263683285341217485365973528171464391240970202649429370894978743476757003996213387645906200260829072551704910212024774623673705451505143196745853561950823942432635241776276441243604421579796190094180368468063108751322690192680177617961761678399023583717086976964426223261993507628160370331975359800841916925156648962200116812963186043115174134851011647418436996759361364294671783577979758631179530442051825396687085605575929596026676027567803364831074038701917171390537242675174192823255637791308047081250594466387166617110725389414767986437864603577220399868801942344173255509858408363151266032866436977006647137373840660940676150029064038198254684714687109417380627927505341912436527637479505983741303704952199240811147968925318456271041157044149453727893404415230398202781969982542627164659543034079486936264600146754877947227313095273984371695158743714273436208570160009813602570238499316039268036497302233809056886517942795554985367782144287728169067670185779576715038064676689404634880963342321424068278994082385228229021688313915685825575538424588979855459302479311034820817995813482266666146462823160100388974904662863767975485721537124876097102045171648966516328896652146619799511172561816782625704794527916280539099851621250438751055187360140627197382730371424669761104079722835928374368683803018134925292472331776052119881092071297330207435982749282641759493468444649009839039541627516263195302791733924675719192290554276682123458945979351340489893659577681359825986784841448205075167293065610527321286939815481362097608785783261842311675741304955924335782597152551167227081918976339440491189990641361648524847069997377916422389548077954049730064424668781642663230684864834185702720627381905735229339375115800630980092837026180001340363234165370963103064010132889322277712577563298041482685009220392634419953762225797704002582216789841453131676328757099840292666123098284645284928133569258306894977138079064010847337029516739330532839741363769385663924503705213253066776266358213719693446349960080486839900940753374892188462223326048260699870354272639790658126117626955773492296077935124692562273455651929746903711844610887414116786041701656545726870343319033013481319920833009067486314808827976177372677519461194118362944333976973422227566920588150537500516634728814068283438714596485139800919487008514760954814654844540732361623292990309559981785602241445821884100912677783909142474516391031295251927417213895077724550005083503895041043218910921128117384466307568553655765442504662485394348063525260459466569052679885318315095323038204255771900393458666468694657671347509073948867076970602336906609573322079601688431871544155900730962526719582292092197160324859408125307989854059944967025936510882349861547109419939103028892328329368931787310929817069801168997104248913636165104877962067787501086725176715309487105066224715192759340064730358552212520498409713472236513950595272395355411419736135941044677283800727016583502010049010088479571925281223080912365689718845062075159314778992751669408863792421587759360168788754535515519059511594354753409295066074749353675406163158609101308924687358489932404301730856469956674284183479706069093634711452030201867304966939351796465986306269789999287159311103382682953448717686395403329979414272595875844509833029353243970324951826035532412592390796924515525282059377439769624272610277241045819576422783669154207655067080220231014518912019520955914245953080135781859681046303548818582122363296144401777152280193726706959346327847334423691808986299945607195348464675030618244601738622876398233166349410174573052508737423659873915850590612801646690452985573918278912558268694959272891416492444595571646415785825646854552173030682524266308106977370407467111097648934965407244563909980209388714844096029869173611149738593774079090292962864150890865982873412066532914198237078944600516000476492387914092148648353296345032245335729306050641245987057276992179868956477683180037717608635412297533112172277388868330863179259926432397776296482122185234558951552577190198538433896703803507737199108603813967743749194737158748109914679949614470482992593823226519810704582439674623119194336218206449679209228049495911611052215014498539548866589727893157089534753131670778928049622975425105362048844517702100087044881744386994384979360131366992861673374470653776926574740279838719149108293346788546707357215818640922096083770909934658563810769750619525123209094951403061386365512366621220981453779210354995090668379941807770064236689109240669509383114173054223921487843301279163362615236878696236361003327896306811530454750487725265270124989488559545414569530920824849294571794318257814592732229842285087083396656789340089372953346359675348229253635797424318454600694189685805081814431024755252281059212520124479793128508318288654643246872227371780581138846594529776003647505525763315948958047923618884824832243441124097609218167949685209601664273479881578465350410376958725069756422032351890673515097972765302897771559701488922005920833425721995927097925454511122228096879660145581989307459950981998806894926788692287964459902689458492948797446050500910788504824961507582063221289632596106651118888093160923832273241814527025839498474824363238032979746540007081816946146710049642200543284957184206454215184728606435990508585775573130134732198702194717059726129168162701535928200980235868487131951193224047380509628591738173842820483553315823654980742559509701431435445631229330117352214877608268661275091602621660142228343832948153368303336437439832699244420562311296937616445701788967770506544541234418717021331773734869404280837520451072476046779139261399923969446916101562900423668635009214360339673894514103751408450145118898195184561969089125665429487512118662962289213879005866553949723065941873741639738243118766084895001273994307173511343032398699248010606466079105664403610947889195259793794628504212892013370596206468574453866721882796841261569720685372284871835595482666592170147001944298461892512236345185009413580881664295925780805385398230207192803913654514772532477186469979886194204879909283902772726564154073268532456651280444430007943981334481947651375603912101438646510448732134235155236285676482224914372837370349022052473173619458432143916046274351215669625837039044755116345900632230648906099254193580970062299949462446392234818618200268783929956587255253792046209143977092777536460857634062476293252386079817813630467328320833543198251464791986914585182328131359695316939946257333764340291898246703854604284858566326223776396754137221247634057064548698675815089541016932351311950990138132970923196958130547707834272682843454915497594452856753326504465957485779636947974528663232279793878378262328693563416912692436824206299537492669583353190164672108820756526407306600319913101378906540534725941467825871024016806641288450576476142033845580326809098095538374051847597975879856562579957304971137783443799886837924983616888682138064385387161160901693337406656385766978995373365725417724674893533469633878922583143618437625171876700988647202002070207727738578472668443622142297516548294207038091594899625677302271684045653485634956826083300325805274910833968052463052247648681768887167018739286381266991848309895996078764387477149840719062773139382586597076401554719720218314227344627112018061225102287659139283356206495771404858658496269641022414981442267491740046896384699832474075446424864582586345568410750353345300985767752939763837165056900139770950034641145756383652945847119551857867303782212616157115039225361584939168518470723632636968293694894581987571049499745466526342275461375493324345580442120422025093109203564627953253311542820025726442555265260053923775424918008073826794832030637001040854447838763866638943470824659212216563579793358727864697902098514266798980777706645771460665385768534449774693615269703538475989657227087200399714472352889776703681141406740596552123127583364593837791947544979899746333836522828977545362226784070897173138580240174782491943669560147665381918477832354662479084858052620296111940424309969140293836406491927130724520610525378058789789518707272852934148030012459069134940077309779427139029387860267943157687765819650222418362539202791803988708933600169264930380036563632836723804170965633572476638532353835372987658914057579522203214292685476004121217549095605006069165474905743034798771970620783281192985681686081931784207283322344497404221348938922700137456389111378161138584758643479490399246220832786608267258440893289057966708936311520266372847720503816865348111500942476663956760296529988129250073885051551038602350697742782287335141681722296838121705586337227880402823634861603903698908861035564107887412327954557681456348311557817851513276573001062998506104387298929655754257975402105815468500964398962735197757773840961856186367747302922000906732999138252725531478118671297814248391824896516196281047342493583649773158411246787311268960063062102671784062035826473962379770851864979510758912227602029873362654844518462482107033465843467409568421359746723861422702711317836194383862906038671232707937159300122179810009737643061987662301080180330546901935658441144511213194892378716486173709909149712190066199901055731735402997749065671255869273183526476295966853841504814474296854903228887453777604600911048017311409467140465795553816494037440307045633917651430487476806155429278208184062110326914839691174069960753778792707882491952569450325789997594437930944111187339529963064453712941158978065607896297640809695603312131969669792785769859830211662647827687440242648797521113728587135395983711090688755728803348622224724246765723301475789330497908206233391372028145429357869258605978872794669792354893304040423680286794250807424377116182722224737718006190965948730208270848890180162032858223818514187640718866823756086774081192547016923595600124145192287361722114087054444223657641452576112044314055731859053660400970668605457368868914661764153740318596540884083682482713573298492233789172957473961794914369591921356429539130030321494917124835177524312321686541628043079739028486480089234234338256130966107348855471314977562161150016925457061648841016019621465543054952940534732366524407320778414823878110023555141380000373950723403261302152080589102921930471506601386663148375537090929088363046638986102123156448939973753124054897958153032792619154501563818257736189621516702804980781505018904728768615109765097163789676004692756121744541487778157006164833033007782324290624498787844732971682966754133015678698647363710276129602561448388667280415200956379872185605413915077571308065378107271594355194612270520083030094583736097343177509960815831646450109388772486976841579085939169905331225421208068675225583727688542114841834110161149878858609253237837435405019319063438637095831754162001164659371381799009154679199162863990084779871887659669792865108010093201297103310562069578870054184565348256585460934439100668484814937148934763588444335278975176675785703650637225884053788099054138735480850691231431804239563567276052144614001567398807994269219224661768581790706384990737531846537094380524337049929062457228233184261519260708451697808315797332275139117567508002274017162317247886170135125777045214124041256151641872473026485286034445805522481629491470188183489466663679330495856814967715411561238737743055049961179536770787290233250048695643533809754664050920211955738823252828871139345990782604034433858837956764354075226825755488558811402866476390394785067083671910856008054541260402130849310685515139145013721933814208619452387468670947540905853904963266101198076522230326272026068028472372555603205981232016072980807602631010449152126721393800772322616658182243718106753585093930646226559859357048480324608183619420411370634313617648710651082580976308379562831762315858155311716921043913890860913694143252033773598236800452925823156044654983684970699077194232257998608904358466234579657430268559287460550978024810518114969301242488076860094369447808024409934308406565130170650339405605017707811073577409442294040604266730555354283986351207223285516418742485501706432312874272956217522664944861681975673986756542935807365205510648238130589739532636656052078350159146677904067305316848505588035794421898716390924012150463582274652603025566421569497955885388504924856348075291936717927904785418564866064453744817522726196342707179571279547091321471163141034490977527946854334355994865012871566789403863341231461465814532269903477636577084861508573268315239969267835490058175073041408865360860162424967031495529261294247796644715995228795400479607945473068414386993997239417009259771555961488147587035221849580979799012791784455888749034946914492121481752032212632813644270970457953102918962731455084785426948168876475596007352222555158376315687957247014022103866760740648148361866670240839022499790914130041575953682042302264641117836503515981176943747598420949182821302604218742911248422828661862707710908170236174642216302915715946665618050668289991654905817368957191345655960407682669355465038675112973154122913660623217753761648395750804377289694703384188426264959803549193037611088435025373621698291733089352813255171826002461450121173442020121788112541274447512257441363725805741854721147598616482916701587494579673881016288518301275360157235299995251640879209215489142405259786916228125597288647021867256811798933685777120448301978161430380176934404722608892668856997544648771560505045029162798636008876963365234064635882037703724499681532799912927166188169587066356056486896758914065856829208065765463679524503565273109757266020595755536774545374667221450433211680037913356292299549456922761503223825915103234256089745532282459931041388384614498798460994516610666903668446146927758586667476542310062120696618004876862372402202103226426836224276982294044234376289055360712820068198100434325621945417596116024411597123911028628804969795970137173397503187312049694175681814827637658670499901980640640367995575643528305050970785759489330060654090754657715990213774230886663951679905608585762640474962167034440497732185079258341977940074383469729657691779911324871941659157992709381413576868065309648408556804182971104167395768783195155662932686851304661599139353561059987213290946866997223119937760557610341929086547661198350382838560688640877278640373775837246186174521006542323485512793410847121025880678457745947386493245867131653016660517820287652617394456699261896597598128115062925400975401406073475750445858889355044402088987545659090839390137311748376170490691041801591010306501708138190588121418299899981296033913421445320121037515269534340310518150669265683275750191509692275745019838274416196938119767574662614688293666492225764836278018827016332440483540579455203944914074883667481867702477365491891657751097645439661750432637466719993403763592491260154449896621018451017216250794397838314253090706358331565346973278934765313111046472189140822614559712406051394536818413274084875889280595552831344947101323420018617849147564281979250486935444395934779627995847988601788507123468190494075932960749870122257406959239983574588607735824353046150078952560625181931043597457826241687409356536913518767341100053571343671264091918050867162168965023933031677680564354242721246884092462133587421792402768562528278366162583636192219927863172062331327872901187451323655377801081347004593761906112824708209337793382923933386286793239172612441746355390142667835056207814533377687360036423560866293636024314422576305164336255171674913213714636814946988752429407833542912610451267367733004975326379055843628503311450359726400997946375367886772011701571669630018697208517878579287845412377412655201937965303278218054442546127890240097070497887390241086718551585740729932100623616503103354830767226459982519857672482563300476437511965089111240612485439476284946997983416250833667564267315301882053487231797993073820154607560935692614067114383484368876025348368779607840032996513274539909449911403216862292689070613986220331301321993487503143851388063383194382866498065820558508560428050749796581963371115437134322283851224173779010818851448501067903204652331269602877733833073571326171801654612987284409923089831413584713805782810056643587757915925870147737309261863735537506474176990509981276640507735497622929599025655158972223965272587316916418337123822327571590839172433042332246596040476699521038374287705030715178103939933511741037136669031828207843006333499629816537580861198725960484831912718682592159908308247517813126058211523756452111928382538112462379498504868135795327118924088145527084541580723848616631419278292594876958915836691841257658827088199890543152235724409191275768399990742706323852757773734075921803393111004619916580000193163358812028765486598546245612820206131476725355332738275665848872775939271745007715756640256763072455325188152330610325109606474989432024851174739676363103766558754443788062389966586306946232750295984128235290282059122149654061455939351328943331937648996267548837502509419274274916287504725681329287604433844223989611828278535703118110894457626735705254826910929517031437460427304236377047093891981743689797403923636304369669561460363685375671861513708878467631396830947177351287761289258348947024539175520934435282992817101096217164191718851850787340938677152957822923867797211126882043616188124927493637756371687314832365549399686447401574020537525008321832820297397992089517289434481271984905135267498482484355595871613046094592885217972266472036140348306622963191878695225889946705662625193166643308730338410986382534271119333903888931492871092552793252470649579777329921149200012108811777781541282948735293522124771865599152491959004480172722044473232561249954513072839981541858826624761090080758259160113214971933654015261292958597465520959879640182429294930728386514470352722948308634448071174311170638730792378715423906381063397585702527851219687727596725973916057791225795503122992530456007937070746829299668336447192343050399194841294233933623874902462431760416839091361840965243777007580163138162632400263526014078910494481137350475348693113546857444178495248446191910411145805334727593629009542395460415178118302315221060448627184042102328220489091034471188710043036561918871239193311932447521417228318748760579867869678387526957598076333448520550382386373844325218778393359721648110426364468318803395237114081906105079797347647614142381820608751347967721974930920743490162565101036531991851792743609679459837024540340106090923546933949467203848901118469569220001759959327046149177376128915579341311608808125738407515629331643532163663357906500762539713959872917634858279069369822545571532712512950900655601720817463260776378703637144927879427417711483923434295102795426905481700700656602290011543173513283372460674657455246416904739651726084792625360244445878868312029199597934076728063667347812511024955894942746195068580514781904909758693133058330848607472522613623306116888096709379633316869691831748092081609456954043149524500578409549240002286419302967518326354375335782548855803470173509509337720224379000304850742839447335301590021304763801892742087092958332350243652113422385722220017972165008792196333588800358526854338316456969717629036765099078743418636612596711464119662653863509952827148512726779335111240981192423697284571052552600756803141282624312591256575239983027097851736523828129836659508983098077141984627728651823303727945932976962667330622713995938416626059056129145711110961370037936392548197908618977144082011982139444747167580181896070426001468994418309534323317596798565551718335395104746867424072187087082164236637478890111795689143872379519844399625375001774523313275298472181261783774056433834782166751604729884288710232324962149742998288898405019896373923838551975852886980328061393647835019226748077674117326745465209749665477297933313330325856087948717716544250222064031444653135663631736921099359226963380819875908424044985604818731503400356358651289832093267449766090605426923491511901855384892556383850550072496267046702254602430136557835831555643016312556465831369103818051124974443640278492292639847750944916393150804398380705421888346685792428666609565402258101981084764839651337366023617969418044393955516332295251576609397578676750074391640853019797443196041180878138146814209043787549610543365052346304995527766030545241949599466641053924820853040047279492327160340531896276087502098876318779744341038529175890737128274608863555000067902831902325578961489227530290881516734921500857229595330387478885946403900948099269224312178568009164174258284439593997308512082504563558038218122062345843983868759958312276084880893278748121442174775136937051963187341189686274773768875896916201226570224708102651632865344153051813742260580072022471455387340188165744710622208744679935414834681288087888642423163106299291900264383849858989011778998194215547354346804610781715512450880153846972178173931527417744237269157890397275067258145692893025927729144402642831140873302234955069033593665043171338144977770691802956284450042674392969211948177281099471130685773332486288398463818544439859587139351806868873389079889449676553413992963873349269615800251663249479892070975900687360607309289732364584845318113723001625372916799432858218279708551963374837779058101241158958680683881561598282702942731135522355236892264504826726263690472337542298829520194058377153554374484684239993458222353188828853731188644927950868876366147175999850226654840454827615120988513522985010752201039879945575656955919994073438129629423450239400482653099557943295661180596309171962486090734514597225568765661365766447301932135643346597853986540864951613012902575328351665678852503382794486492314956842133328812487812465298604386678211380305877477817698684872015471937952052842262402543355976727037337106845645054203503926517391870678756805233194798190795524365857174367097996306879565905321921656653462914811749898841938637340002605365140434062331120552119181193747944804543236809001365060395403069862021852937833671942144523505005783028477259223878996778170108496413250557119160380053276521194486995621608125701037416197694577136878623071079183683545491638830600876033793967758231424124186770202492199584150228901225380294837306041029008246295763310369670460635404239501837148256761657039526045500651316847562288656802197881855259652572941344623502175805812529980727976856758069323227827563662101424618488487475306253807791299601040816616957091785615439968557532390767292808829650480126713805311410802857822619955117606550200318728451565035397218881902413232707087419690891558600747375788478447444245634469932522693447610059038105498958580546612478063045175802767807441865262382956956022608995842201403555576128935592222058328024629884787348388484104889071736653019446416883932738378668685314542963665038977951487754452673834546742737584430989817508402759736444244430883448638404532959271807967736090157077165600803236093775437058683714689459512226737900304185413903105973890037478579026275669767380785070719271896054888204580724863449675893054444652636044348844809300584244198423023079205725509875323496825174577938116617809555983022890165493052880301654204252501724857322859925787029135578689379919746402532199868936053308654729113962067896673088887356412980984818634354876249645892136338423807120659569560985359133403853310257271909196089148538994644250793502196593650082158070819574607141511085669745802940222416386029081040247613636186181826937900755578160392292214911975131144509482915398858298283939504673679347171260813824445658990600570282275369830933291618710834684306270281708749786321868276002870799139918880216943685407617774373420136874520918830765386958041156584986478220448200722029706793017049090529350573121728721698330571209856757593549317948296066149002230124980016909639429315726448266387194970749030147606263423731691384537484352542207621298092884412647140232654046608356910470651082775655840953318138913240327698784519797141956671975329553147883296423767857568843331019994737594327412650531235932259805523506761389895492985982406186172478565084552115092477856719383380088339193770034474139922898986923056379666233442427759682640213610688589003458752032266332936135574029758527410456088710224758770413091962172586670814980531103457108350110874684097819140147773230194984418971528137833598410276343225185384030940506118477427598356331699928930643627131473274358810266050515153737173046471745508393444663919731652164234809938463333169606540687447514822493464479593609048004525551198754332709777839712526242979312714798963466533988050547643968525127001092251161726516141562946193986323858837586287857795497346350356260047296099715637648502624444495730746404577573206040212488968528889924335633993834468284026536967855683932709449806262107270954328347781469088436396323497947265780860489954905333606986395698259947341601064169534553533623744056365917288522405450415432862977113921892841495485145448109361957374509933826785173858341768520227836926394435460557609000702586461212509790858475996026489996718115392131774025570550057335512413639944849580246192472643542238771722320911284909266967798966617520344291924499008514711469151393640510524531852365134766596956465655754924782487606608937363025749016556669737739386056421170247240866131134404238280831692005476172169218643685275807958412540959678253607277198049733296500824000382056867821073559913861706163175892517610686608411832863855926854208602015571074480686084187868976881462245870443449301443542136447233436588718614882052796473490530677229100106390131131409531054225205367544911014676996497667754111762163473414435550552889458797867453669549897791508878239565270108122803801049122364258239015006852951821750109049209730609410008468028264921878784863518283313717537236589350763887359739684215895633890785528603266600491372822595811942099551897261131977416269831221935009491522647523697299659495067052965474341821299550089618258683533404561074429387838449403054125843189871268649217413624378455102076476796627280809365591569567899815149680148023273758385631411326809618557633656516846314148912083315180136798871003093684931757317478551293685058381046453704585267101147424096019297276323713248240384256990787847196478030465495715887928969483735357485196438243433444175134439333433693671681281406478348092785493469676688254364565619612458350747090727480566654908163604114835160579862456392386870867522564066887449134763918353214979438230750434507925594581225271660762556343126930427225861676783372463417570579763211353104360482567694154004383663708530625742966728980028525349650821460622886431252174220349159415261402037935213033030422873800742501462443065814463316790515051599293311204652022299009516456210662680699943060622777852221016796538631112684925673563305868895943118063597127251550869424161787138694699589029369583302906037335185301887880782228714729297921267428400287844814832995677712576990810279683985313122023489339946433333543205696974407696586138787910860628623198749691644525068338020852064833536696777268011628633648910713510654611304178819272206535959876245641680070192093005063281295372630380968902633652183585351900635695860496748372750163761818302060795661522366893071317007684115115363383797331856004092946662561839787468639680460607412717064135627305692981962763141475143725325257511558576830036896526614317137833856149374705023702243351740285005447496573329154105903610782722881974917035597623414919974653929188411859315824803326568896138941043396315201296116454962005882546427442469430431802180208157545043493139611794507840299678461454914397929456702328177168545090354764196215025739299168915957669971676366183891048271098039838533753979773605704383436159065478925750812021049554175630817260531147673479724469558094700167766269325486317311015769380339301218616318282013929751424058081695947649947160588840461742551012045304145099816342444506860983229195854971157687844369500289000240988089098937287668752420353557234566234334565758838896060551956535474494447125697408099231467673056461804358648416506933168854554401417622874913169940229375928425403251905378652494663170939851332452348465287968595462095402357546205960931490009570838206008345335142408976339423000553688036578258382502665694047595293593420907692672417986909397842598710001831700625105109708606150490580546283767352262324427805285256768061664468450725267518090013923767566919649682291448955580596622194650519612092851764401847419953127441486638554464488537594282326023950999574470109967500614454796824708616369177651597346239662032516661540020420541614828090026454232973895584613625044857216240872309621151322969480543526241305160499970059028729880834172115525449008391314640254515175989084718068752040924362065850830923005486989078769557932133092980836545127865908211078186611687929917080825459469004522705029905158553541426731076231566672993641644638365320842347369807358783994856061307243809546993489179454656994529844521629426713440692110473265218483266886993888698146058632259464237964280057226257143378146016107786135709863495643204241139247119699912852627947378319126702156032118201087479714850583355232493836027807124335986579398686119549314158425939669925260121673380259821377641145668481933350806388934047352300418554312766822960082008834744381355881213458860789551992384482622348844801821444434203044153143606396102915181819281820025343284190568810035060319299186650858621776784813250674464956530760308744286846778324968902434102881377111781641380238507811394269950542932281655958763889737120788268652296014286952310475357185151376963160758343127334516177961130115642430343873339473514391470597808227888497914729588351547834509480329957194401843560897566427733380057562776449769433635568107342818567590825623710286436885756471079348251614709928072519111002713694491138267839642853781285009281990999619945496795060450225033720414540811665373751154546668054024759125651350778409259723535155551346056880697546251255781383903010139380159042914122878507627624965042659555629410258108493160892220299693143447280573521119365496505101855829553789504985102457633120009866334720704026734813902755689452600290943409601398835882075834508856744858982756070618885879873916009236566479798629011457539416846578876234935929292143954471955042471124652517194937803169898595870933985346411844965481815798836317958827797510341761996606090848199309622080133607043117664680598828855485824928819832528780255023157033638833669033098750635125708685681336479757471406138058812516083925524067796842516205155868113191363757356516239835555158703618078282698725566255173691771188953076039974902025239815969633937764828117154280262154174866759046857351687708094333514038693081963943462155696729833871721518214559324109395255613098539519271853998582543818606484921715274643970248898234527157319122265767454040673053518303501394886329720429460895041467460803541507691196957811641343749232658863260329117680604487081939908338998468648202115554526241489207545149134194356684034233014794367223424484824313950355287066951174173907550904038873891355641000499484051537962657217312332897379187251895819411782280894613940547523902240265936310007652538707387097536853836521521559588204013483915189629086056651572516100670084306278694305601909671577890843315180600674982932660245892440795447063508274907271757627059366365438113204315932964059061903497361290949177289461581751219469860765282583363420508390888300862985128827651472796595793378213266707516404334552453306762266990030615732465699557978279166131918933198724446949399187474502573424133949024706476570051090986108004944129712107529262630204517178136372164588783664180277240388888530084783680472913719764379895234023046946698619314857844741887203605020335454472725680759210670229761937612369436018976092000720017533026311848205183016293135619304045951673283229690908771005709650401266738121013696854557049451532161612908581047894479719699600956199994361115257869422569493385024038806117855217524668159400177938016098502452657953998308098533562054048349304058731898104543942894083333648440748083203909139106260230228461881229058292944167520290325432229117817953287568232335672167170544542513440314380255815123059073933593475896439893542459339377295761274578557034872219543517094617334108588037940874564220873340727682897491394916679717648711185942866307230426422365197161110506449064620841575680008345771779925179761101551131552128298739964835740555163239740242542845193737205994492617456041453922006856410620851307364202452406842464247382017251559115663787426264205297078142791190056256670712065714696813509562737529713146626079442356777286073614332056780031623256378035061163053953037764648684239800303104378204734028830263528895606592569996645218878653965287561043696449313897763273321147922093153947132479305595992519933463598948094896081170369572925110096943247459932163398216696338798193075382818973907880619849400041437235538323669818409186640828286117612525553701512849455719512970761040387672021978965207487782058804078686305523175860433154147918328548467718595868529849778433335986002785085925851616305602151408844640352343314632769045307613686682042634482131460738955951584085819045723635436272117882974405553489842541412360094805114404743943201293491209471542980421073805712493528913828900257088639335364385556548276709817677391565482167714612270483312979169616282065370854496193945444226380036038932647322661909759451483035341044780880207600478436685674472557143554112011482862649104339056890407016355308892979098079862774232821600045866380681546498068837640248851385872662153271861614331271616873897659329984289976748723508561660355878707626549533645458813004392723024981018781148972296190710250885211235694976949371110198158935146933170004742290142006600378324619925259811494841102135072109137334674248429861694614448481884696751364785784278302396567365864027179568971386766270742297304429336708897008978967304081016254287801735975411541512174712728716755378567459971614024239503834705779084303721155555083713110072513342544720642856297899196394604002635826910924211278932813479033997579898773876904679431082134099046093480950666377519399865104598197797461176747309671040745683870780300872786535216069038329606410186815044300376538430200915476265009530643960734088553448315353808966696729656939801626020817611796832832984589233588945035153539908172486839168956511065871960480555184987406667919422810931363849391721061594906242823951118660259713149225659059398239371314423872677383179657785112117977848414007937576180351062233117747837345386303385833112622112462623560849060642540370653077407476918686949391365770044227060862891183738261844892822357476588907763172801841422319182827167361088320234715623654196755225455737588435166908363496805969644845098838992037683930242794539493225948653808439449400545582696142076811943834326381019629933483065215504154043469886152117498096055895203849578259845608118614015866002210470240139445919075396870114879380671103725993754648038129377954542144179284456244803432983751945924461175706300175848569469932203330007844829338833175914722240484037311011606325087589601831070047531130260285439050170602054053065355286375245446129509641824306892683059830120927827376485065213670947861631956451321537054153411032876042064862212027560323966227179676259520244446904354478290682540350579626117723700840221633650334957513396038847413612502143135018512415693467993007522670360464027052893673794522850956741205347107857736665314113255935773624279159855210701880219720766156581686323542072163713292107505282952542232466191251867536979606212541545015093127871937283543803551529816953131297921757163424289624367505872837161650694151975095758366268049291735011778533874052115214355213192945065191922641739053405569856738196799143217505096123174185043239446838341493622115860203995334240764056534452658829558214006758366332109748845716553084193408669640797900849393619202801967852873143113910240757734867872299739596625328564457064165455943487600730980638201495290825621023296617110653373350752977681820708915269885904378513184018639558468421824531847462166486989798432270734626132921201689928213395449119533777703018295753375462924477251311789180596853238699306456766735429196128367087509842362112737630581827490986712769695378319367905366757467299604814266825823882337503794894698242472803099561186445099108542729368507875384781104497600960580217016831966516492589545427192369220834179735867261536224136864794340301765310507481782422866798277202090938032027764759343718949183153022577237237048670502351802913998762867862507357066750575246612408988518143460476645857213584410707892436769365219114926658882915674138640541823995443292616094688762381852220338097773341875378784166175939230082762024235550457160809941661469806397162453797310822496929049680296077220815194879102847957454116242806954043330994816642333875708669462031084850058043376964389307255092911892163805098685760489526030320666635169240966017551945075195865829993287697681474079807463099566758037202312333646202564588039256432153363979337806297486873628707997546418832290166556791457495266628814801684859038411970339086161821176047918453592160586970459888043560499659386484571349029832586881415097682045743514645238262818128234767471062118646841761427724472667047764819201301077915849556846976321652818672719151153750255089152225659734716313243422067804190292309347988820817711885070139722578824456739279509112969681403182422027765261084915935582441545230370398297602701961895455550111237182967873706679050513305405749821889455814586786191979997974494278028579941595368425390216219290962108638579227537174621999855748463162218151233491823217243393270322389980567350204184060385775222777894061462333266862890966946357365721542500779822530331649696898804980916800867349765515147225659389829527967631666409781805046322657166520536467376586187845399808479114733504380241636991398171196043731012870606264369049163026819033529758171991064733327255421500113683804226645886603737331128290985832765245156471361521826571389782770440514590335061771650446155158771723746585506405912399295015810602787607846756032257254025429036004163753962832171069743111705483459678003417945840247474551082809405423447242961362673230772949628287547225708404766121458344347529889894417029624778596879605380928245023529831420564278551570965352057796189397085425500532272308952444714872211298705501852184727776549193638494320966238375950958371731405781497711762809134682637718111435254313457862352791663895986713932701567712788187125448589680337726439014551992014733984527514186927836612093701417149917367796859971352866852553833649193814168985024564608286606373296599162464488987131881930408907488092960146438981435864677472471873365379818867718589067683337727104174796497423069414746012036739831634865931177776077585688745416293160864863422675288420926405212845735473231629877607030346665480680211326110008376488236360364584817800899158772494268642471807017169812793205437914097467627067657929721715948690926596556210280110804500170345467623777961733314004861288729771280469888068800388531728293910965089838551326287038326598365318153589940374953672918272884022073983917397320874488172361330178030466288504628762143939259838785974970482977717014111450720301942799399679005447563188315182770492858172140784241732541634003823287169489977798501585779369780113494896961461362253582156006496438304421913522454132437640900617283632672875662946400266371579819760592558296445381947540969088995411759766988023801519847481010652932403410323487054557997098122699773098021348536952248136680440178010058076830064949514455477182490965429817740273731244412648335168806625808405548996850252621188741830860117944249362293299092681784236696233938014902067843581275585585484052552325071834063267463971924028645600673522315042902588596915143946684999634725740379801471556483584240054767297583229753676856707671405753402189758420589035999279018021985923678582351919927508273898627830631570720477990054729427122411505592109950063802148208270776874660192838705181585801646905982555587909661704395696095150898296008541685735748835449618479669434006976647400048445610852134635255072591933515295207153765299029191690287439740999303434450059967466996987157435828289468641987557338632231758918326913999525812208065204101221116636540624277207582820548004673975627167938476725307951921417672916251303202876547450239329043654175073478365024298427081062477459861456756172503230044260878001699447132349236120248812898062465356469906195196335633437214913140422592176757649905644631820184542623330091694012316258601453439282856493043030777840438566196065616145573352119196804787217695003623902533086292623677758556822824793381333685174552161725571376521714040380947335814738674087531369396850579698984424637039475420053005682396540745642406357914861169131586329622115150319859910756178062497235826430723305945785167545880508286868536926155225664032310862241207195062462806485161783195569028914095204930189364394796177277470874116966586748473549977125408754129333543030781017791205958686000576970185515408050646001144404332563293822646199071129453154520196906108268876952209488965538439515218536252026397350527326987516985600631624494364606193722052654571300705124257805465437855432907989173741899823463530026288777180906492285114581792460638723951019881803405829915816849415517459474234885414248757107586841931166014781663869630540459233254372196889984470624361369422155699588664874091447006064559708765389358814197386193452329239632785455296896920497966527483781777110748199037821584406436989512178007542814280182377675166605690974404823277196998367439388240146845683726033676035082496495468767575817322403939302653799951922465308019984429537795619465606787305000148449580543962244985524350639675682108827462953311048128261553213560279885713022368965668550404189617610212467274211722623234981208290359317701967959191438643456354525152474548858642437088690567995174781627742941502941035283536174604897357458260148783329343032991025813947520319776535372131137655486894044217573601437398677541398727384350735596325708196769870255770152737061261541611671181879507029618142070118684914143532147158364882273467271810873365026656152021489735361268054323717667514541591225147327650539297125612312230619201842698955378419487236834233625565067352332410761301063536371552669369011338647005887474954215310348814573441385226717175566261446716735750847636108581631101601256736664794878637961206291140402345013090498629637466175308168751634067077725119784709976324209431161196840581216804568630247214664662444720832878470864654956680249367127559264925324995004271776530684048234549193386320663949332113315228332859552160184499967581523101122596682948433171508126666621991420176082694680123285633534684690719505097965545985373440786974858357138710136355671708898970254107775596817704431269356793642336069927910641951037237663100543156335870025663770804373282385698511710815164210049326666995625219526801933738074936858515429081852319527840369929393139572500190897872007582164545439081593347360362421307811538411576497039035437007705780255115391317497883800528748368075627732153303786964819442750021527420357901672003986908931014602470469465460729283878408313000735954677119287708994527641656839022795916204568020073725705540826924549429498296062270660317797259365035566461107442458572382476124742369610014873722117678288011027092033502677884054278398355278806859985487683508565008039289262222163838496626954893805261257719540875357850899249552459201119497793126012682002100439386275566800170253030401186655961683812218746385848881729098446344288681102569708889886205256468594611422027905566473730946067351629687775296864920297610644345560037360560164029887963698039197596814663411481632310026408960073566951482604118628490000959761522349111225280299543855066408523125806689608046025239229047571620381218025124724302224667284618616584951032756456483001080880807956942663188524466829878202746153552671353161369749592670159352272984457853978214890161656513375259365617576473709736996529715678392326902315848645877736850845117348546889989858848654990769615027596104538989337351792186315754459331053304682283151097148466297495928433464236745922990942961217293030342600594187361754941028197701003009520559421392543865109221198233229647322003980402818879556696900183457989402974391801771950937624818364860941360347865180654639462260785761535633999844621746390480781547015933157965869029041773281113614142776478345270952034305751882006674370939457428122068282439024843579102069591551447951047139462658612916055554774118373007504216228010222294057613039867049247316992982218370458586801127689920138277343834944128271959704226084263456381218142403783264802131414867148103861249216136905415633034336648369609472178707842997565876486890227052122710773069756741656375323639078789828163093302104388934814095437434810039217094610866252008959539674995140859134160624049244768418057493961606648319519864985353315585341809412180576897007359321642727515504305415241557520556362275290813234961234923586264919713093766808218799789096369422669960987782599844201684863376457680501620206795101175855840601463049312624217064776203643654178273914682409887614365516038808423308133192665530010119105939633484162331046175014788063971519242446790437698620224887871435523031526102699409296651374249222061559311590559068761246024123978875012108871947644374764637523824040010309924114664459726311655434932701614229364606107846379402664613082795196369865047849028018115579270901265387928600547714160314749540386960903543087560490678090960175906489346507398938186967362617799446572104386269392070779691163748167769812281944995803660840582615551869394979405370529792971585672167502422616938284389940562070991655234315764312966362060621777776098237635802822585320907239661225815864366303828824013831963096301829859150373742677600936314076064097313862303024271573184971471384097679444224640875990103647965657908925571260118999711538951329086773673887892866115760864248054609825559729206213251451524641231147394508489145425696879043403138293853179401761832398423302641313602971651292703184051648167197854908324746886438223093026863558486526133765882232448279107906965217007192444333790976519483912639562257962871276519474455339833825074407974265010712257152176142644601437015493506767128636287666253799128519112647291838117544838364309531225361794145105707393602178293542705134949909604801449096331117757550417500089872726150118642645898369883589142365377852582665556137529961792969525234933338426138084304694427333067065356139934307627185719540387331610492284232360805454642473320039203774537043328177325467497128856561184163076081615514271354094946389032097333206714095764625633044359569358305027423003972386728702482132139298166981414969499690239472755841184591766855803884548031998095931073786626758941704263264515250180185351383784510645577539827556287028812688922705497031688323720289593381296592281383937437231136166261398517387706066362329085599916833864777951505129254483669520085639151538955841694824163879560983088970088076764119753540603394225119474527647201526862758605979909846166569851925658854028486684885035361656380604005520881638440277444107317159257158935174983719913808926769642012048746119596859041168932017278616270138790398733182668317803907417874774273882849700199348053319820846930180507412587806629192459685741488921820915341218798619136431494925446014054046570355465224969411354319763458695734034766810937003914189392511225225166061249388503048719359917213360107503840696334009950340938598829390568471072955491706056494145350345620875650587265062922141570906479380117385598753850053293092569314026920913646543403387338364883074034328859058538685167554279805515907242457308657903883537045658794196889833602555693077333903428013249330682367517588746198046863923395760800512174019391342926071712415157782666848332578920025094539538286892620497797315982525260324538012836369626741984632974588273066940172646527266726609543096465200833338930245118598253558675292155823735397175120965332840970252042222084477768396563911386329156103263281329109064786791288271896921156832908178632462274739325165803592490886746529704633673570505606939934603576342178331475967799990732396626395961727457955518453988219824922755163377629876056683640540557218913465823859119329409980218921319594328897054146470119795473996173589879397117357632420467808995070567365153549560551019757362560880323640361312524805075404885459278628560933959809634130212659539287767204379494878644719494894085739031996110218046381583259538548285485359662526863800028613216585652121119565742667909563505087560703831088019761795297784274453676269849521579941002439968598644729243212311173836536603563039496637492014214339614227913717373419775984001632785147356249045310848949103794675433560374165954917264564943082279085537945114745934290497989507721704313757922904306432232504255569003075183215688251443665445385833666302470758183410570417584461005193147055317719953139526564844766787605301666462786626244137783693021991055076069544950762806920474222908164539161797253462458725739236249667484720945452173046141269267132516964193600037923000377362915734786391935910324087020134502021691661850925092965626022345706429340674363257773780476519345619216376713532045416871515179967710382445549364971595477164697325716950894320471235339783285584298132450477644362742209720677330661727648840995229487678111526277612248593394254763608471819517993092033481238504811602937620750352305406088314342759497973044522153364028684588367018183283028081681869693002319207401831904598214127524785927568945911562558452906342439761906990447870856397106173196873113394750961798386085102505795041662691167324934315767909226404586052925530029249085615844925266088173914318449586595410121086331023127525552795207575519810591947648206512238336409252160699395751173131672592690982893115348753044842905395826593314993537714842817910906439196868251206754530012671040001061725085069561487579046351826684435884808724748135104220864956733255894847198026295234402912909000121254702558435383332349118406267909512848866756715099889299447784014286449482587413830939503392242920421661184378966145833973779396471553231530409946316876161975246166510147262970109689290454616429422275108575868870664510178581451245798781414575721858426556149546702421731109648021153089698993309124918943949873664418542740856827979084853981023625830411796952460069960811975457372937750434538309334633485480517082452251261845250694779113711172928827413486382706377191658535267773274036465482643504948772909196810199969834129703469543989548652063954406458079627220057240005088461188178489254021237296292774838846901290629742695036580159307218358624044523494318168010885677898636735448265642303025811731906926756396466596013203383344423710939697145054382077092645927244813892012085839058597292003452322979190202044362806791885716121343476371107152043228946239096114553080611093575347264181190711465115494598531092847429571357796937724925214024796923879717743545845386731152134723371535819447481416782472135002060259505187706760730278452313349423663938502950437093653578288047753325819956027895826651753018568266520310911145548668280561817609505059374599060888773101778443006226524047651255936794785860739164928698342083930191279303468499920184977982170084697367120591395390238653185279662445081160610604122741271254642255674833136719313380781254254254352142258583198810827062841544925719449746397880137915170090307416529587906727476456690363695098134643752681260454495265528731047586114411195738214374223028267796347529435969583246393823222652745283332487207708454173905750185216278893134497922100644182220689464128380220974873287821690455607586462074591600092984406801603181431169333981890080617203595411794600102584811302740666445202991158967974115378550815837575533805175269326743001612463846550206354362871476981548548122052898947791481494448632945385933686116825048822061090471879061836250530833921410481647660618188791041282401229239587890560464233695851813662440259102809368814076435552506398031251187280829295789233774420487500732284121969019518749492485284040975405932905741896335452013362818910672536294952847197306917488698264044698461098692645044519120441427631795260133867192267319605239973292052100045022934310686522325054509930468685552425929167154806269751391590609669559132387386715438960669511506389488247930338251950526771133868282575294786650075929338336010317709875133284411436283488023889981190734350106588992153061110465093539358344951528857773764318316987049611467572144756223195568649782775172876969286887696009212310336020272151639995551214799049077875948921967484031551230424114821092642621240102778116718289586496850642997883668077226075657137890511885429702540339026522519625990801745474450400401013317360068519618152755467047699121203154471022308031986160676561102305294694923653332319178078153639280594750903217481733528830210683510876049321426898810810011125136738090614037720506756029896621829826809570571047599853486353488100343895063966728771608576691835588146246709955375646441357550487879185847076344754038551512311344354330676349261040250553215379034688558575499836820039198798776727017196663555921447920942414594570207857470646257160879822576187829911285292746890272312215529233199117622736324718374612709057938819698491240552380191550568663910429453842538424081402605321696467984434610663598572802929238661494429519906292859556373681720115714219793619633415325943583236731434750151256346412080676785729306902203118543846207365849958084881247810920242309095650938826695743121817270420671521423438993730033097987580900973374088345567435017392807268653010357209592877238936655990400561326233270271333043422118830234016765754849913083695484773096844677974295748203806648137887363179423680646261427653215070272890902197914600393489537178340311579031619324500899497740188890265930158262701187039464475462728176593893723186748635253035177482607480191028397158273362349021996031804644885241075972872756429988467552939906348014428222391650772751478752671662645900282857494834100625246458349216534742192106189243996208346187670638187878287476069072740311007150882820181472874921175671127798144071556255951670717472330923651684812372865165701220932938890230399198882341929586509870056943405727232560438930357011254032873474973228676901361556044526455284718336857937644828024788254227120181789822919861061241357178057840996539493602581621244102325086431609901482118929289345788295834155918531966384163034709075684256474205105371196877242452472409920112506917356209977563369080849416338452972781473582854449747069200449464819241064278055059195011742251492493921820412920997861767204003152572614593782746271854866854338505057359654903798484695555576711113640124660468432205561195228719008898959626082518188006401636600538178386272966762658967217910608606002932256073873966055291493615241896550771235966802367217336186133199666309260605643042860782107899543665903566375204038628924651297399196440261095986088981873265008326638378870723233776184917872884348827836667078422177218558736801745444441412144153194682889751750980053735196036644194754673991769146401828623049196692169161196459167526139105852568602563026814092179858286376734878497815857905878438054659048254118321475443372548430207871060315780826483373473306187805824717420214708168020981542329545299799850947083917109118039919171248900513735559687665735060645092790326379475251244161517097257564385977932041830190965080672249408976332369575252392914087045274987602997468372467089019533217889974011196647755151791139115343352150253058360262155529255934215443438888955341699151084922423246317253093647522341541180949850448391770010454975534988786246028275288636846803539242868776817939050598963578483452830880081443589474774262005124530163421467511203214669475542725951927296614548804969052634627616773337701826708901104569525843595844396207794795133398930887867944667372528950866662612706053476827236757100701458233356735378952187731091241553001778272393151940307938805918379534952942126485967548084304498442647046003365978917475846993889686436807267500472282554723074269222517862319709518908308486958297236201263583514590289715568495688490017046684958439656868283012036585715972729573740451148013956849944057174101164080982308133431180988148999591034764464198919252415423930544449015136042409694136318167458287586519237795970120007648671907395839000975930611113979380751590405866385958747528474419705864354212949143227291341835879686936113150588151799618192857628227129523693967944327633425760028736921641992837035402495978924357844782168143614894582735961204594170262849145976049822195384966377408545694631302597720815083229465706723415067697374377464744266924617570909221978293915209689316813587976410458510760141958946253004746605163640665992633889774567953923094673975232385851762932656077449198960629042523403357843555175042352511730978685135386520814857904753854948538605803475332512556309104947486853329626308237531834312245132995745237453671086379257316339384983827764662295186841562683952790177283823409050326835958315596752526614208640801387311130148272263003056844625054250766580419219386200114486273497672106772922738458816250666049211073938398021735668843440987323268327133735937341514549075308098166873175525962242961487902065753550729980846860801759653032984153390010584346438487529304959344379685930092541450503235234209921726465652992764650795995569706973263096688084358193878008007560920059102301313114813781213850645395941497815228194061967593720582575907208291622421064596447456632198610319154383231026509944701568707093651606476113554870107561336819870016486150603203659363406787451258198378344016936387400313689875498577479772347382385457017668636157516937180392781247806696636564415699540980500862343222796914813529012033724438450519604076871650274336805006463945013907067088019873076592520353465498194321793947958867206097055720003152520759902558523454437930935073135497539783458844611691198137666679898753640965326248188615856816552550383193024529829481883300680826145409297539036055603189434750515154822989856494155219900974417001174000561333449697033010261497225233320823819606626754881986444023077140986592424944772711602848791734272068264249958122854512095172939191107106502942046326153250473696445016331754441084732310438386799560652764201327813920365585334950551118815609455525397327148160885876152249635770754981518444828421979576065242557957525394231064166633440349820010047805464874513935434588179662944455956561370985307216281569543162217038806400292217419238549959406164200637006454944105552099879059420307435711506144561092609295988538627461010562177186146324076880587675780479867373014962049918921575051220204631799874697029139010770575756398984833688483091606042516185909557340708004050221165463106729219641181661476030623711222674436504703707338526655650100921590802048587431072099595831571779289983377145422548998928961399615356594902762981284140334050794979967859683996624078968212408315285505112253645904932237023142497729703791857220308328457243481240178705079193920105057077276873155733996798799841014587585701794653164175523508535958357110439568725206041218008696166643738639378230460248265474920633709000613756209518382692561051525554741285538756313046680906648925334356140734027699904882456873421224213833974043686192111316577107607034328694661556329132769536121858760231750521591852851861601197812557749710857697668510690843941839218341511748190305081167564538650373896142810797407528669116211817470406302223205699460586067947840740676879370487249129977874161404488286072747259376012017784876748341896199764002616840129331492228600180893841321201725360137012600398968625523162101573642107905012614062500907833212105420257267567854940353012998663430859611187427632351133144986330097998997480251881819619086007704408104854746745692081004612569020904297189371413885798989874124198999430559735161994314150527062845868176928595783639957455759947667948954768348745170132985053719722556299553744342377827775593589596427709284765479700816817444205274360853007386104977527112591094461112488576931331629287341691606067825648882670982257084071625906672283486358606556859580688523177340327830257503582987435989399822899248847474315161172814197476017465535882469148265003083757390820992165243456175709752596045226652306939086602749055410434919832895414894308762013853119310585527989015808940622009973460774387424181203005365925665852791446746323442010805213042093260871527073500417774270090416974734345747133762573762141962826626855338761506944607051185054454083125302653116756064815788649124662619574653749817713799030797267528463445387042155623086452642183878445087794726868338863344988722539547704497523239147489660115322717435274726613537190939077264316260190547350561231299774711972040773144312968496532529539078583090544989655639364377115698506378134449785911220572523625426917933107352208718728548851839155524104366206532970935419816957607434932923943715937765918843480175601551419092282410113108250488768429429056426013373320691969766217696958234374251481578028457311317165480418635889040250990740920396135098057885338296420377162350224028166654035638838512844317796559749892597591007941032788813553362656716729938165869666269975598215042567246421255866930220763179578740105974124763827344444281957333957327907240344613163686521466531329799447169058431251765502608269064364875805070443747987006195703616620172754457039514468001297870277672514952089160737731271760948077849843829826312953481487129984581451947023858702212907637514707401053264333603363870491147358326629434633701469251533460672263717992980252180851955515804397795112438721522149785945414414225405715498163373783062642374077386586970512258864968265934943998109582891131177851236855092456553904679563722060954743409673661909824007462289827610871969966531691225745278936307851931655368900348817511603739911429391929124636251267501122037143266659246625545227085781635932224392236707897897597314651910239890612181232887161717083465472438292848634623877988554608978224161164180190678143673194070586126161736926593859968452710345978295200509608717670728998754619194978632314950725478011815049190554331729668212413295483996276029264670431152816140000576658724304652437895621720482809844138893673662936056022780884193713405460879315400452107496517909579667835205400266034887200016722761005989028997692217891653263637473717062971178292616633839028366269800373323513123905136330614858643736151425640304032658966469472699035667591962049431743461244563278664878557836771046977214917901796180677514879974555289825551523326510761553024063708430568222563003575190040008711005030288530512068804285066502530040019056974951458051136448471079240066311710993431558951181619624459026693452990876745289906817494670534086489805138375384818992606834527969283364893892388642969567527722720226407583500399628681699686345902247267409873717043412694860481107877901198392712320272363712542062842912386601796561845724044704200622965207294504972445701300721702061130731662999242951363685308430400874108126968725679785519120316177713282595581166938321905536402895414758237022509155417711951697050660858438605585609701860870223895149346372877778732887430219352425903445903100742238943631038233402154229931831571158106714139308327813601038946116076918705431872117989096755573873760699448321019900000301093094634392500944100832730420068116383344944942279688242885410128008563466060953647075783999625053597764890992418836333566182957708204740215855567486090495558531509076843713973514670398600812550102467450242646703139371164644645936810786355771845359187391588888539837858352294671926774636343652429156990551487043502589061297471278033149662962778299117506785752492447384320835071901144563044846143520456347412712306955559244044817782892093113358641728238301630610341898649553046931296740546831984983584670312542003065201408161912637085525934272577685091132508266081851454777921208275695947714144902380595397322294814130352918844431913244678147710572874032970939909707024089908566725502069088622523491467631907736021092472951364441485951019576234974577894582384605145156913517300387510474369106437930709297500058279078999942175086558165999569854223669030646200387136562564496092559685458770796922839593445631895496739143206806613328686599051738789802872895940565285431742971206871398123230181775311445429339105888841258876370496351243541986956416222077314059836078984394865339998737013695926512035034791680268279929984967064354925116429028671086423335067846267506814618830743237694835258647519205217403266018331499329617299112783502911669406976923841754489225557686640859134938798241309375591385195595536377622441104913427604459485652136209422142772899899236459997023701961293642301401188648808227131463013293700376011534953077438018771372861803867411657823354162782699539091521028942419017155536093941756432095171647930966782286255448812964252869317616090510510979713791130995316990784080073665027142926085359797739146749159274117649584803188496354631727496018058564528279972171950848119461543381526502132894971027434555724219352917229960651288321979418936823903170626596872249445461881551003692747810860157574220269680967560176188850132658499894805485846219679369780829624958164910222845401538141871345011179858324789673168020067433620744688142760357474899614896131162323777205645594494430436964689649899344121742077577564132914915770778823627453703712966528507032722572988837566315234972221078277897860689733010511758848157716376185464873427236663791340947444704689801850300040295392827293859321149813381118143495516969718580877636349755271043136679841937717648200546688698622067884087602007467069778997488322200962745367184104558973217726312850428802015456693984031918972859989732814728418343322255274485757562378369485541591549773355395617839507248916064729441940000532504277679134140972239003736661055500059880153657732251325600026729696083740323757340975479186903322676019853862843471758889616939469185181966048222475501783683448643062525908381853200954528292901423540992156104994542904047447026152209403316019973817856434531157296579166447017183037544859350482535291919407343185463026347269867907222444538214267241090558750307361951051573118723555757311381143057714747718239210353690603220237707646359396361556780484167712977288219957899165244147400126552162460885195561410342405736613361994568468138633304859391548494669976581953195322444737583633984732504219071995873468947830950972257910197395139918417421853238179959278819737355958167410692174301656582656576735090016175452133361960020236120403703072741578988332041148951405405028846299463363606073996066785652847517146633864151325769468067188823204681033924662542637392288592953380256450400599908101599598688485896295011543126738774322533847635920465420703028225697345321313892370492128715060931389545005265399736606543198439903217221058130978636599807724299215238707047286319782743149179054522897919042174023446423623972433615328347747212987214418185983715367999885183789101309770194531401452929049679641414395382451113452238949693011370457317637673593065695693737752746494739441014923406747795237528547708217060312971072004132237837711447289454236648263786955343385616759069840628412950771684264843242898410602378555258102233418279890653193945297702122446050470746738438994789716038784292064266906897826905826639030746274723156520441353520088037728377427344171505425508181851908299059060731884998365274377391319320685966203722347416878378912424262397981498509068556494841380042176177560895779448882536667401907770616368756376152194555318228481884313586288892799246212416468122352838360466023379628466837583991999511942592939012489802582100086089102493652655525284760537387103230262385621179250884442231920289127695430606933833833127444841905365482606090161278689966701777200798621405430220336411619672494393225718526219968050657816128261858752286119658978874409655661228161075380945681611720304490695260693036991462752316136950012858666386317366286049252115684825432740689050580314291938886076410729413029618595436438218466539429886731970632721231752099258512818714920082688832361394871843317314415125890213021164145404895237079348839710166394168315210703097426823952792319718166080186760142434658219129855340112128679385996844989240708424917233076075845491453003084394146453508864638995574975330403555096107948192897661552194322964753411869664567246466908005553311507843455503871881666877723813256565541548873797861394652426288186628856928162584921656843810374373941934467408786418045261676532693160563130708223972698186982620085953853602668355119327386441119298502347475730094399439299410831941097276890039091636735984409379522213212773270254811760960371572963272356024511517982576650386962166651468599610733833935961398586355203206105359655885872871268145348843337762084646003898949670562442992579385369856819261322548403145983500547683658288560863391908878181125345638801943112419116094013087105999833750211222862698742540585736184385363922672813723028141686453860210376542177546779906110757736613934207399281595553671516481631720978158305957752438619356047366549219980173786199510654314449888574128100019652974556351134834330649937368141901419450033127179968946217405066385634312177760978827219186648353807126555534519883579661670834965793120350770310022118174966283102489053670558061441475012845334018884690754792368616454832074175683166623468611209334722987998082133647803017375332716582892151539794052451574220044112564504544519722380470559435729687827723098806412126091827198973633333171493375535092632397714369059208526267036282749381300995896316207605446089750899233226819052418273762472653053972155992211622384807314044738853656587382737096604062709340448480306800236298846079960227043329229237752984383303501116832202787453753460442572728468737810334285676621241737805586023501488555749625838479525922833015200290561319222994509761736524896900917931490268929873768583952488713195966003041885440784438909577441586963035661259252759692182030021108253668122651931956662430882757697593217545545606906633079345951099019418392863689283155628659690837412246131742230273694741139970319971962126774638362495808368392079025230465894334515791335093743281410102848252765598850574728101742615748884081000972542239311050608122446092326629120983998518402923786540947263522026659435872145073920050289992033053120277429383911225639822234758883743108598146626288534058231937885392269785609996864109785755101097176482054507783517963195014743176854416500185530629259832443520800540496289201681545322606312579016874240845646971775326183167189585451402236477662502336329876163293897912547688477881943964546585653473794676146369262141252167952288819729755840137265794237101978607821339908990366184381941263649887671524061037893276904736150992767607713431984638627799130885762964193275346905773478641840023285978932282461178566545655628964302446564341640879115518245193631771778862530623110665783172303472950653677001316710967156445658653302216791771437978241852780495831201352253347188242141666246730725923889084668732121869434162495730643558554817965572276514281867120314183972315637576593128004015550303917786204384906017385885511226077554840425358698727434214807894143378321209851922286150476167217040072231143214709677278973857877218784523146730223851011273627194192802658002273192192407501550937904815240947109823264859442927261616392546066781373725171968477528321043471766555140956438590205571427844309775473063947399417895067886317149390926549631920229760630965477457489976045441339724463993261829636364703399224289979938130148859518063030251204925935673590978373508919159097731142332694840689177084954143902284227231088527925086807834062290805340742983382186260647561269225975822853502321349813427040340538051631047324117131520318239576204273437713821142452309839399870611402985617575331569494484218971039413037766964082760289582390316035776646903439147466215742118335126507740294102368977179683652185533965863134184706407120513857518295907419401381764335803236675640767841050035163192362006164640098639202130509727870022327795033176817327149208341485137415426320363279897649056044973277164586606572496519184983794396993255940210832839374134281366598831734522154576020971627210778833120292579819663883789977094666457729417035595892513546936326638552600505114041878192545604842496935130221197383967405073792351648629579410610573533174905732626386858461024845479736481026968776938991500154300999690426556785794961908661710544686221952983016478109253546078342488978614508150540503214030964048158232882180547996239201773455832168651303388143021393222452721331569972714849836371233647467433883706860346263294963882281620575170084479483256638589847889520919732636820469779146462658438219594159983289503190300383803572638459814881775361684258581783325957866170769020721170046198974270455923590242261246722430887452559451182721942627909318866049747086313894883701104279808958185766583166989494567350909664106227127440550354136953241495864901369871672574703868740695798559290194000764716875694392833748593514551562248036520618615467817516458349546124371823040693335499517215298547510339681095934649744663826311584112990746922912308528900066419681569780348813721282556399424719226341403177570221311554718821605179616590266772940729115956592000159065558920860172157954519498980527108413977233861599656776831713011236597678612317845000318412305006945736794022570688717150536635301244213327765382079726528144940251425590239204721667970672579697363927170261883764425400591394803028949644814645861224829303602942393277757537366562479774777779296850936299888991605638631246827079583393715128464646116667725758777378077834883027909581243270118712109663189346596253823586174268662852058108013225115695978775316390552403341817202434644422298106882114249539372996123601534603741743093607117529564967456902438033092608059297808923820192902950600343103030575225209159490158808239720387577295340289189540017534134732741559137400381446208751473474854833590385221196583386665899899140018799297725537834510982381796395005644429434566047315733007014369457510753795513031104668115583275276873375074064934998495143952568120694817809869493565793179892575025337123481422466389179233379524240890406208475861600844981928235909957213749157465894347082361522460746119844963387782808897927964145515953885440523611529791425802290299099882780566929378722363474640500942247401740242613184211904715307933705042774903459360097710808809413490987715738634927765462066618553291849133720616890321014325644929055702075899198378969810101856468417203909626117378339854612178102457242453245000268022420153779648409110702331657332088815522459697287250931521548890059241487133595601360297073851880000575624383367710037708578151213485528139152709272058372043270125513516095802654718993030861190131781432631529539231051755247502129279894377244323263747271506045690217877745823350357032795303113379279520784320161784026484921173627685625157970185971844122052281141103906293137863079432643271690663764179609644586015125026177073638331480017269683554206971427928438738162232220268977982520805074848391112506349726156568946166261167232155647440240961171200303037538301171972178799644486017078038057717117121534926982375507927029706808022705862938217504221581370907350575171296136378070463722813400693263551328463912814250249145962274830116968638155298924464888611581288790706742386653657676409890530907222941907870618257783640071225406612656021403690389243071945136210721508345545620691628024747050113974129967266514000557711351343649909252815510209765936214083584893925230068512868434409282662407375989034649337652559463892166165036453037102757889256865920430105815331953416501050143664109708947375563432148526579810878138796881114976288596053334352075149206500805701297634926606424537677177220929940919996590932546280549405610001403679959705729033363824741474605572347013398419988538784337377189634004066723757309543506622402184059340039913754503300395847166708424440149046350339892405148157527238527260727364569331237742740266234596707497158672427530860727245952914095763328323197146246768974909876661999279372008261054747050595064893467980520582581967468367522279939648062342737263291854013136489814261578492584157715214044889170818758971574838167545578861086107134411169450630262412907479462597520342953742395850172573595726283403703732273869416177815025662606917806602087937761022611424938237509096684956791942358405740434925503516007463237147095961475871020004014409862039106778109282001294950575650578217766459889316653724951103135109799852112061258828134032082336033642924090668006580418659247724365158286604727397227715782314041245292031497660973759290615370055208434123576093754833362295955486506078298217926624695927158225176180775183908958877019064349120944400170864245110349950888588957544455329009005710516906981778478146341690693765133544746899421452617641104831497423310582917613434877598458097979750034213555378688637630500328012169167770553458908094193533816369239532718075975065147732843169641111661350004261950497785681381282189272988511938945712477146431198081443726775991020707004009241150477994023179400613875422489903369026550579102068879384713365527677789805623202440394843566658008074597488647856131323349457803636564962506267176672108060629258990780444108324820373557098214777689226863603960731347511102232365829878383788040876241693430019382004715149693608158520298813407242505448212589323373274608610283562836362792663131967416212604139385557787600803139651527456825283694862474295699803119242489895179824047461994788493755198882956245815355936942914862323685859093891695917295411372687812810182001033017871337965107116677480925722819989596616844671618294018461822407473374322628639593643994156331843551134415229173891782460609389592693104836336337430535360437061319546571526650111112888151476234572271771781011703857246050915306925894337447707412989557405034040820157979163666529808367033720411594442219554825110691056452708875907714789303875024307969996730320838103051243837590435469763336035465748385723479139690116433230016019043443755127293371439661620168814730445767353262132122848402945220531116197275188214723685876454183295252989967949311340460230942907954870677612717011416584734975002854206723104000332306164983395619555674075392946143823316210445858421932384014847264253420197580508798071170850459155316640544767027585100592308398211295901687857765723440220980978818991230063835928899391929644081441741198940612381042635009504046582423242132742189128603715383288689669996885420517736341863296308190289487964910299249849620569937169271147886931648428138068458691967514222393117371068695681245952721823942008483973471869470923467571345602207692629448338600223520016305650666426038523686385748958497339694805232300682383570319531925040227242341277401265057094145362184358420160640705785690154594160136594029418853460902213932363623296428726249645112260718228861376401404221533084992872467358065102013510511918015075221460993353435492476940701168666118877697946556868565408599391389829657992895955817601012741063262800065136829470882734922699420949453014354832954106403520555895778985302667638966912923265082626476629854520821471417849279703447002856217241062050620630933533074812189589286130215438416023115269701804131644834893368876507013868652191748361638051328806815142725040364298888415595609033209307155248575694958874438598814997048030969909522650607712059328855152781471349259871372295993226087601909891535242943668408958712760233723134469944455386272344437184074708409120571218857802089004622977712229331517537051979341605622109211423659431150541280696490459114345159787183789207020011194311514376541551808448436022307595996227209170523370123888067942147465273611703137870026483651753646781458241305069535297177215548633933299168131566807494395000281008281673437856067907860888306160594941948283227894070292014632433451609119370844411503003272981886832999588291500760524804502910299035438618706567042969731720091637186780164275181793754285512526035568655216660176411727332032230226244918901358708206715120309456222113317238669214854465488256607341184988110096139236074562945907158641565033705616481564900184916555898390819261660772137719139116524779886729905735792959789922891480892354231825440297695782316002935575945924524805515322626862129375114916675341961137225042730476473659510776468358659494338952674561418693869796712829886677107233783928350145171817047694474519603353312541105567617869555984316847439770276170951172642674580579917478334882524536124104333497240262569061417513625976211220364707932788970687300466234422594096198940774046570108794499006185596880497702140112197070972750705766389706831311337394895695940206678658527012519914123578213045647844238899213163024185410310381260346443569919129628259730628624356643195455347965814275672748879154465089691497122876997928418246709502362219108334849049726763966587679773507304365867449679100381492153044220871528290523985169196619377197891033568722673734406757492263728266899444262640699819634830365915741183834883874635312349042213156518050717696211075937932105122992048681776228464079218240238511323321114137665450550582786284042216218956742727121154795908937669125869175913696646586011651632097287606369796276797773225052461356426828268033700331961164861729955918426669200906608340489255663416385988249317138707395623589343992849234339765415592988800998428889467769669849882848800551666010034370715629166057680791168927038435457261281197031420448344471129737820774382759687176070976984072142664305950096614961997727104390832993865310306176025032118391579318200357425402731125919515342185974078955969627215367680475036562220258270541220179608978401901045248461384291414136829057352736416144705044427853912645355807129215291843312276801535684396939495597190270304645377164948699917028005321457656024292982241425627665196412261927771129213505335851645001262978358824213248263254245474215984897504413301990283859590842766076850580412566503124215298221624141861543479181741843882061241522834544902798702533949450303412600066884958428979492761966070498934728327347253143964951018437025226734502560894449510876347650437199786749608900484142208709339842189595741228370980989681842050212467381584465940535353670026794185194325993787625345677670448416127736219438463037026519967926751985817224764504046457224165324082364953646306814463441058647471610352140358651101510757053747550704230971896864822228629260505336667911982658060095272630126129893874369410181963363287582401402567118657027990150805150897923021946635836330975292819452652021211774657750746173376735861836694041271235749781263584225450640537672920322957050945279707726852346845858490998355388655027751971949003033632320302193223875740181685968260435327700508476585303898485302846624125501212301643384141190410708262415720567874080007817210985997248140055834361670582155055939626182295078712605946566146387744189149414349523919197375659978864892028717969014089791012690609090983439477830229803663305723720161576072692578091211485879426682939752552522073817048557800981481334635673378272798490732703699784566472313127845517182531960938985537157992433895130651860176549459421906671638500829922925309665439180984148852788567908523046615181230698087497323658218327051170431938016984314421730028810429627798736384953419501277254098894974795512246435924091449460535412375152959322959326382121643544513523436685994042016027782043270892496190335332723998704414122771431802878091863069465586929581510303041021030042510704159918196571227119496844539833266512141999802416352525442273225696196925228697899889799793352055616474608009916173578740856582392356822348330189798684288263288160473423362067416448989971000560267722723597710723071651711865208928033911916970191299851439786429215120915982624192593399249269953774915368463030517682556953724111430828906018249989686853215875450700764287060643717308381975798104981135676211088316516322134132136573147925944229900576157610186585867465507439826788106779846560509594991054883185902385652455630502476576473569909038612749743018021515675499956941140955945801790297792637978547266550787802751717682176321470910990231319864230039751980868200088357749881474398446501959371405840555873029334651965335854035002146315931646165283169943590738364828303537497436458761060560068811621220020665333097000480773243079953485405056887327373075338636943823802636272799702195938611052399470941787998660605049468219395452548665889075934269872606617197538891811809367569499318420461652431554630829755894111304016017462681014663112518931623396325496218738561830586418063831418828238390409213642786905261983069230020958876189690739631582525924364578889798154498247885058323977252649909194852011507499106727798189223672558177038429988527225785291040227557254973430665582485472136635042097537128670374536577500800477941222653719779158639305727123166842581464350369061782041075247024384455939630049046935270836443568248569582720725297474872276073711673554073272416989472269462832678756192563336276752223339650153970582774600379116877528139043362077105474038192586519671106322872136132133979935432103190804430703184534370711843493485839238190221606693966897625944036056498772941221765124480565514523726739779843271513696194846769843463505230529601288267141039495327079532961927452596329265198726320970276201903023860354923977925974876602729536813212988560440216542600723104574664036251271001692212254165051261065439406049188287384143454476975773337352888805388638872453519910493844001891603193622747478161622047182948745540028686343895574559528393690342452528057269214566598178971218141932900281610054141268778328800561624024223056044998815312197018818729100157195605754941665637536937074682984381610006740460770551255161648346698424135030133645216802469624165538051276110933483874646791416941561003546988540531647800181604202765203909671832727883151932137807883177274267038713909453556257522718045350308881026558019576228767224256204231492285044924445468579812028602630747963260093394360753749776157414971948725602627055836752863572429914337905957469831225754725449679133122131661066914064869401899744423806349133099387825667632392562591190051658687712181884805872647933403029321008510064726768985222350266215350309841778882814303673735100631039957009601676437986727550073310765573223396160071765995178916219409761518416800825354415994545005766197495165337065786426892156093290870706142231502191068720958818561263204003487586276147799826624271732367466801974447171402155369559893254067749951096368028300659560495239259617383529859682199730036279275917190414350027464711390604528761975588299566840214938384777425025366112467052599168194229130281379348298641339802847281388498154624983489403419918780591952827174505549309927928543486679832017823240816908745659205184266025290970004524428059277976004264346385543116672299469936444422561349004750162692406935158403916100886317792325138998933287205045749464794133993995637709031816022278551505229051211368106894184320227963304644539775369671965066075868740173360139496175081733711375165808277146772556174822686400894924986454929234785295969176058191436076721288368353353239159144222103146966028566805894677324227933661345918782177615341000088429793070096424828829472946788928132543670511229515580053321406750006596946697254403821080508393362151601224518468431951440840372906759742700668980095009273524086838339541443446214536970634718032152415116217328556515693371683352596580354089581936380777062077526014685759593805667999775640599511248729378835448479381329978690125669910711766855905435491271090245827012785257398716184822738047562392333579813682565278991380549469174105855666381804027776508710022291292172346903446045224767458006666170316160354187274802005244766730753343749530894212635283833475984440470777916270426721008932893678466724740045861562159714971275421224598908463878914728276001473421503582294043082941668936756713462004991078603755694181374021701539159291928612563963412622288242185277990579174363739299537054457578830974476215999928396100396477795223503420522966137665846872341767639769363947832001756790910228432197396930441675381132500225419023189237518571029547126680226187037990058154952458734397831019386945430975088800277360080421263572559643254202140932027953314602331549576435216011664667813919395568815293207772233637837031345270587263500112651015968783779022173079861666477293807278868191211439093550175603658830720404161254133288251990430557888955376702068416023867712610229539946539442576436456074790372307658042719680117862086916516743319645565067485148452298564237204401732389620823155884166233229100225086627794159426225967507351742310970356571221269406077571576113825804926608386745423496783263558344158128747877144557226127004837229219821463987026109779302259548465827088858069471895066918497382284529177861939751968331194976080757772851316306372793409269704095820767432429542187457713834356344473952161370865319093448749378021010302916197419460895951570670260758498407355751063144342198294067237251413997614002296107663321568140443658329891098776378296644780286638040362342475091515635369122029619883279271180042192488371033315591620750759489726349841822880744363728575815595271280936604640554730272409375228372739147704559414003793509418743759251025391650598606799867875253425255879283215115241976916835053842685842331924940776713269509165122221012718987930976655483870475554907657058503953850330554670692456670112450487314174008508569966421269439968696469790909535431468166640123068451230392284258193190690998900380612752284944169543033486152787634016806589673241754533229650817851136473411516062541772098563326369410912397312871343024912181835567823961355514318245316878140069315635556105704622883507466018366577289574900924383116519794927113761590257394990479765641990887206345351915312313414754976186992052971285012911455399861787554742814844546298383883943050589255150937474862861636181765035762801184671616856468598388477990515527584022877296800424136426938337815412642277822460720949782953959661702914593643733995168453595133319608513001551462555532674155816194704614193837221829122144868923020582210564159324767441422450205544730574148863005791290341783817964320046667128957673261698390214335466176328913512213566613978896843768269071446937476298981639792839499789749613008815352014462810905759084589109240858951738426774055376084544738607865195688071974223901964204972608087280321940804311736745489187355307663311817359296761406694270575862177055572782914540137962985619329692269119842156573487000850727276826815866635137116173519834131643455355013256284681706492024456446832142923857701094322594146142177959986968416660350579785143078892825183381621807394582817053961365909987317576648445967116407149866297067878780681468226318551293008815793097493555714729031763722989136534739184578154440882121304221545048185039428657634525538592101282911107181809973505514286227659182265108477261674512410874044409389129564424444258346046165122603522043707449448404804723726551098098451572985740373809871110348473505070164870833752427562122853714686782912677813959410453880001621435175384443921896850592062951634570388648916211457026186694782058678764222574830322147337258581533025995959363894318249009069980114951419034138149067383708192689530204007418002313942845182683512458773484502681913486500635577076626883364720895976069986274380316992185263044331927208008324493765511463029397589445982738493800853453857386618999334677864303887076086706017715314516894635724309278393315705109633587126362330688599622011053229266683847666364207787781837240242042639485950639177903046052406675825601355042012023031698681847132109638978331656328009397244950156553211863834548440294018060159512387528250030714926837036208397047623788965704061891016013083322737435357022108539416129571389973094640431892855065045188275666734055134551709615906986322153475715103528794109563253502047217467115488786789285224734967925581349301797867984844186456707202341468557057676277315779686465276762326248400766763358916697922536913117419560086452877095684583187605115001370645865627891693225406922503540860985232995762021044702589884744747953269992101800126206718903345338301949235151046148862565630660820318424913912941097634134153588289056317930007254379097009998194747374159570021247497996259812110136182544568239146675186729774239425999262103269219602978551390701619813435518314646123003090559468550665864105760148543998656975681294031006346033877928751808497259631681581761091999972333214381808415604104555936718410519461340283051930728483749149262215472121390853235341637460965840864441482414041644598229049022361836088721553817692820641053013787199880623677335091430690778032311826872572228328990169733393846078428321592945236478186280069941258588426591441170599401618415688586244047829252884298919308530649731870623343366104213549876007036597709091134182697293288532380178398720174560055608972639737175383113193659077679760759867423531479397827594534851434322682978029671245658593967128372072943466959690710351022499985096866546020212280382069243724437807854212737435186957759050259410044392739476528684024711435748845484269097270810099284022947995583579122309097298061289660164888889318281865383896414466534299309910447353948878077939636281204835413762569224022515770599068241055933122568368472178505862452272702278759619865196642338603209020313997550790738947632648386104299498719632963397036803244577103282629907898473433845187224597613299701110169194467772193739047782983006159920174789763687205785969991316426805526797334352774690528856924332862985426703363110623624693272389612955233707193761393225901163810847797898498349309671620173715951394917048727601268382012067675184100008648138380867137587418585089916557979698233866584873554162420656977347373557212610818541547295432989157511824281345322622955894007926920438493386049348820051954866405344148738168253633770139015771404294848806728777155093787147526770195070263974951540847232752217388324139536815237036770591035637548358478437907192438885530297284265426419164187163815496518734314737264774673973465949183328874747443286311618673886534438637642906423944358785511317572533567547637984099174795828081584204239500773233442722652096880372321908744063349533650713640499282096434049686276654717269481346424382078980755250154798083860439519328060494494550505099217051627236852144123603280944440911255878970652260589283678198281955452490195190171579938902560012052023874734091015180788585006411280577899646522906661450888926381630953121631872684704614336293675925116476961708320445576683522231522645702844168565283047059395102120829042581773562029756086154123323357495958310307300284810211967057996007742188412771681554430326121056253141425942730412877621690537742909486421093573455028284375240627388190043499155925849194649420900985105564982272591343162573635312348047703845566239372643016093092726855493682616850601645177933045299793126292975942809693481599504719881775162921380342672505431158101964481824951373548304734888871298900324421356111581913553543435008349785433624707749483079257437940082156752402086214327470159597948871793672674342233674737684288407485706815180116117751696450029080932870760878885119174830347079886881609791046135275663141457635465096781146157074247826093996722839415737822691433531291079116481518433453676266461345437932228104102595042640042502643769995597291579397580200813885893273954157216056738095063280720601104244801931597380192457759438660680523795362512011760209679494575761772407498758338191913735775295588187069820674463612391520246802178264668773742771987201684873998162218747348600118338371662438274884802321474187161175382262134025147945795871994126635639901416824041057134740009904091144119574965371784618966189806305448917330829308798401113823497542392523824704924088929069235453328871215362690255488150523166531435105153722674768953166886586086431798409224030143381246278263640991246344866489574325345340747507773088381135310488464905729056834474313640351528278425239938087149140058895777457173557433363157319334415798992868693607279559303980030537147889429977757492208948948966437443037775454766945907338493156771106243874670311629963907384889144212572223399607109285603101310447584372057796127986609877101747475365160130065918642035514853446280399628743062577668641460626793285538847895485070987895297653699854017241820785017237782478455309450867252697024309220810297200228526767045823050602246046668334183418721606984178015854968443703684577682839539121716176203292464161235777051039477983376714207485583895019701278028943313484452989007001330036801105188108469959745798962511703423174849708644092383770194750896285917968637696849615703147900241070082783091389249854542917382953448188757341660809784475276274142879555881315857271535919257879546384222278008871597815972617280630898767839278469685862568788381994906190541348151570108098799915093057601200143164653877922500411371019589217376529257644099104524742167370608720337158879959136416393064579728545278405841416669460654864551999157332170557817750479896935894905581627438039400138925272153531365703659946556412741189400366766719153537646666059958575591449278451211501208849031216010480831012029798610397923893114798563032314412117925873407723744966925946105916130645664068049153149029295375230030987844689422397163608086905585274947258131885177897324192351207222854939581283707595319380594123027310783040668268709140857392152830905132003789830896428593795614131844325136141247499601879313900902971842638770169849563338534489071765150621172611932993564264565662989249252334511311221368841938109220097872871387775990839634442166556624749802689915356702820093024366662390249659042156601924500261291866400865980158957188722144000008694171628786668319396349361400618986717845034910714717500759447410111518918979227384411610569481558046559036464962617941825976768198016658793472531940741024951413326449483317751449264019411109606988526472867912925545199920848322171944076181422169164705698023681764166273880702582547180352617364630771614909981097821179751097647804894279445317476857767161762494957166973182278339406571328268205010282841914346586747905142653150389311512977526465658778906309626504635966529400967512335128167743714320490584975946538526971326063594628600692895368195657937120581508064108806469231551359492774794706299269248348130304993279203146568298479883434522658692906579510853543712872189405524465642788796463620173053902634569660138014188165952304733056890717469381045881990553446301125251557925433931534907847082593743110087898849329937561061471401934310538913664005143111529551182137377221992490218942027224125375574167354195408181224846987328802586140614943065355249610966086179078690377969651170174257349508388619287594886944672521690189837698548781061096073978176530880529745565306345922797633145186921095291318609527707973914718937976522466804264952940657485770889414456047867459489733945468461771456770532223770800009486504840423516893705078295989934536114500647885629814153160269018340095633611411604730548015741471179509150268359121455786301003313792703139736606836674043844957338498157146623840815762453603471393677982003048595077260089222668095496185072917973796351514401242658906305342890513061076538847138263824682211151770934532756245127709607158069798929176480461699001696568693619267293556004611925763288807215121185036060255038089012863312288905308565141583916369769442740201558558595827242849641607457771126223798889476258913863362121060995518149910276438976625471200117252413716038973198496372194410917333252428495543650835289593165072445618968204828812400886175080956197720728716541174183982226272234208619432834615581493734108909101436461358374574427395810710480258600246317538836491077370922182937040494656631793990643243664022800084879067822226802861510948130303184269513500872318254056797921417055693325638118939446252684051511771051589762983856857165328109936211567222626270494445176027219241206438665736409531815090093399666836630336291114111371885697302525835881791766366407721705778207167070254852288100801069604535470424752905862204553580848213227108182494329530882994149412049668894245620988600484675500545291863125938344847218637497972307619185682401201878474880957215272931203221668175031223239429047492789974945387289645035944876289335658841818026570974386835751136059909619837373166041438739099238197969890503627180183463820659298163857579249264872232013498661072516674901851084724486208389012858851100239555675816729193229003463355346740097316460661538708660743904032768150471904165657076669394007183970133387379496304968951990019028614867557615136165124616350320208126989762124317929972433028179049631179958119752337364853132909585589643502692286260280428279278085349398525986534121396878197889157324174552783103371858728285608261653729428662813678626361708470029413022085302169926457219753148171743815524963916661542828366531032731947813251873898176516726330788469355051092525614450293797289068216696249839911598096578379876873604308365501847740255257103799249238759361259894668349400028306825941759611906561244807230729014117050748402906677498013285042931656241091757654567738958115858147938489330542186848949524187675491921930018509895676863638854449102432701780951375212961431317478287702068465499919247064863038441671368298517879615285552662898281307577751832895592544002584460508202678220604624387640206010637517496994078836014076115034843588073626523104291711123016297826612565657022768488155088030846411859103170989651255327122533367574026986295440964036779010316537112052006219145567697203097079144044723712359568702793431321116915738919738430412549322640404788455675834520253614578976013242547970642000493598883319783668068821223103693349071042801128231902243711656860170852944821029430368081109022014219306064236511465695692082148453349479977399660589501670123759494892104729686628250199345683265627298016244740874453577617380767214467679946351912373070601166755473490906307874513599585174821457161588079708013910589404950477207604607590619230516830476444445330734165970737746779926708971527201776080084918490158221395907336337539818535815296084214325132195609875153169993244739869145472842697098265004067067715666693448517318703163138971923248572665691817910538816734740815365933742391592845086711609573266826725096819800122153987322466506839234736787103818363480191216036843427262674771533714179072693743651259119611708091981017997724225875029371297549705767494880067920778788514908093373682118127213823299203670947736741901762359927224270353793084222067939418838053097792620031160921147535371091132239047293550117985072442441169959378073632078425396999704859330643688146470141118985833622273569517678891178254418758654050335764752933602380660134107788498528763025704345860809102829125334978934045945067345099074799056963938061890733750505212584003675435051715952505109323695176344799553780495731698806445188135757475531955598484819753748700362883094328803894103328352274476482913410718945128217346763465298935679575497762703643449705304846208840066287360706895153226237118219475961481938862324706930634873763572617041909655564054858853343768975766364664468897651449532559582546074214784306790539413173098837765822758388252998546386337524841651206906930990604488944908591276389297486785124431203106476433676217805333011764619027742848136043603579136114889707860318130454481901275240005480176834438464088706773499370618631410409143072379811282221182011632566281756154373651311914562053061207523401691637041531270133782362734626480613510727856806459615249489883167926165064529971158358993758631082917705654899500182478988875070403059640428174899566002657739495474031399568170640394304486167791168530053044493153924226839558210208166397980701704599026098285165298390978504861011882725116030881715410273715651775265488605780689733104855759512283401693780990749239762618593121182284216265142673345230700251604578112147735961913387862604343452430584221148363309404076559662833740234274867266093420617519086795284284623972793302624126303657843583875378771955108318860118993204583649196209950978884918411925873175420912548968390410752519252792840565136229149020366174947332834432847951948071097630061426757283701400888970195952796262939644179004369028471102059666877939056058124471450307642027127724568735618584064567732140786761798962721173433977546097728484631564593394069411498414713100411621946081939045850839289728752246949027071654511474819441049655965806492793599670123436380507249412756802532415925937040744932283772026182248442167860172027420052875813513612934190627798141605448620039932035732817323215375387803988832776875360221979792165606483735206055832667627044767253877457287299057244635210097813970353638627416778483744454267389829203947159138180352990981602251714021950623072532326186857058073343779403244479808785581014659767675559196685213052355058479939347253469062980209820685015658449415137442908434985683773799323778205024963603727144052132148688455886697900486917832097654744093618297559890550938783112771178013897993535787268835111621130265078549497466151203538749395331511378653234907206845402919237647871178493070703826814378047885862507967705865131823989595710858391348953046554248331116091964074446932472951352369631208717563835251524679109194412055351022217421556282491485828496682184748518870158744994505347694237080274930037622917278740846202658650299084962329551139733704349546634357176390143696229293196225222543976240235964880652684303230057409850803553778280398558548701204896171808447655193363460847185769490969404756978415165915582933819128638636788906070819946453324072923603754696380595959529292864512317017092534638409046953313015205637542113793158311330334619583746238030455043797326856870110757461530771825508959072749740076524014382959797090845013382527823191610826564843051539325790976639801257606041969688385535470753247585697091834153059669308005777031861314531879607503510448426150719435684206923878729000289659125890862430329725164957205715114841499320923168029337289151868707610639164651909915548161728249483393190935571611994904637112650299508159908362441707763942233912472339193608756142269305038764590588907133272913057850563165121863811004162803746250676204710528045493030114228472402279350786379862307546122164257309186611323602891383707584996008405737278008742168409650528369722585762451376166492796254317382512071063620896292577349969260785036621918022338502212123979809232655414037067081130861080467117345739450494540586783367602203347889954184927994505261507976119216134313574501242600624003935080804672564166806308051675240345395879681568969877062187100754765157711451280196361200769584985258799512567189531617808970125607282225348623606856712815990781571403944648543185302368743683442887252747080167201842710316610327830437177201324657102974707410985634262573313891794182006131074287271561438452350776490130772888778480200596066979745660817834911845947252247256043315175204050600124838393385968164571382327679063669432038974008414416460242563071112882483982009408421871004641258143170485807419675841840360047073666275486718624542121188307401672996217029940199801836833744562092284897420269352218739221020047742572767823962516522073610360735215447657336555390198317831306628705757814010220085747129345568413227646841836422938008067107323790223359470146681691779240471775104170327585575943868251515721496834318290603331531293699677156795696246744262616405569913115284802346318266579735431709416935868795810088842519152667609521017820405334437616822612076865190842532202955745958779248071193687169260067986261203112952830476925563565900486096029529727236007716064597236866866247129969060022779354157914596777362905583552324270945045743106401336209793074427992609392881811266266442097872151354084275560491873112464092429092615677093223507053500179546865340356164109782401520675542808717115915338019285071534714030646644399397480199673609969834541446494434869122358591150010469261672333385164916919168612868815422503704042694155150455677416628841856632596654252637635669364997997563315521359736776425005947497198215808321645297823337793440874952393933596719413705181546026494155060114237047038153144638154631011766348812440429633450872113854755990474898876257672496475485801007463815859494359357941972679483453391961824489845615672085380047939979750076955052005247518666513569062250897896644930186123172589940291119547138852208996757314353835766910808847353894792293347472900137729933376311945801344219208224545238908156842796790429410514951666633362656331619997197828768369098659955800914649349906797536015585404523990151845120628718337440514130255907679309605912925181371510567216872530120988550511040866732246044506232683862218944628491959682052568631886550055172844571062213524788981716548410330940337000250531756618680710404805760984382151225653248536795467780492231583550067162689703342102889655085757452017335215564414596222287628082697888255155437832994712261301923788570691176155161608125331809109122394270779161258291542148070518910772479329801787510288242191063954701409425787617768551308122134717290593990624008589399916774824161914742843668031509669441720985306371705547459722191330177112233744799406071623128291719286906020638420548055259718016891209023803770081440399383186724932285011871756502526273041729912933888469252373405284654535127352347635570972938216065330460541222040165681723365475174273821072386161524098317259708636885304878689858845230571755337243304494068443222884028653409615242587480964482104835578576696128075194587224175262183692267020731460100886076183664581753956018563651147970548987126010699805599773729462605371900206369000899940779262818480085937737045409475545382694574094315727427084659684142917498683314179560970671422612126346717290773916076457640979705589565524814548560087304733759870971269706047079410805147846365277762938559222477927683459544093470363745527150240816851021023887326159587384438870746346389696490645121557110529741177657711212790465957387323083091663882576445691330971926724469810135921353391970160365570379844650975309228342857097022106599064944550571577024304035592989338869787376330548239595178157661416727508282420914806645078052419903355316858238950875520887868334568213054108276878485506152723051856476664281098399709108106149188779476110123528295652916499249496588436977579219401709566065380267811998298170032509964840464798576340536188051074420818992691745286676739741527332559348092858478883481987735069233647123809084986134667816846650352957133355759281874804451682021562582892050999948576403333041229772575602585503683660858965876767675092073807758736166496354156591907676283398945920779279529456065937591708381422950917406952861039453663325376609831751798337436894609082320731408295680509562653024549951222212283837983965046850980081188839413941329679418915223399595166623436801933393698279537425382858965151331622358219678545802213388213724531667686966014639386159102251916700220584609731561054805765833050420859868015727120492147812591478154954077036486423417564763951824170556947926657607017869458047391184001967093679571727363340121339050721455020023164716275950023209976498436214589844064206752754655514792501888025724259516843695624862689443585892681736610348813538094355806161951235952476606273636630958452773115046475310946271548944955667166021740739459397545698397853829762609653877161713566993040891385618362644375825420481220126271945830842807964672179440211835106617929881800084828649322414095604919026978790416735488264651132735970307811503786063563840508191167380136220971123040858438210276571478339146404397102532220170224401244096557091675208958872646856888919371496595087716184394963950103756716684429775109946448693644440014853751824228646026677537395969911236367039210856888501254445369295426321469423475104720225241412277985819115262292120140386473706392347556519942964063489723843175008705376991509987326818060763387245396052355869764864414074838640105488133870734427769426329616535580658705492026929586130989632282810067630060134028307520013684885050562662072105085046663657638694802091935804893130149958109470281108097588087834511179223377980360856833639359596250655071197787412265232958711967650237816359656986714949782649554300498186280592145924257899858897995091477268715548080645047404945081976261494264396443079978772531905000777611122981430386928483043555389663269396104432557277310254359256543182827861211459503286623456098809842386065749550946734859823093998269457688938354325690670855109600838021226718944632239808312057884360910675548189062807706425118182372870253115129410866038465291654421642708840321198905496630159035615617059665451519069512499946930435347344498337361910983140665480753406976436983931405113918498351189826856365032832484478070352375242254575593535949892488841243986193579528601996757406041382132932493929418079110459272227256031771591119939650532701543206131368732666448552703393216087830488632702778900360307054086400189573350648394608464240741939336244125634046190906038567378580666106867296278779677650321855395752653548700505649692480303776127277033007074653325451695611436275122860838713902498133115943420186276453828228430514106384360608445840629034985074418926095563250198806810515537972282798949774217529676744319129314214461261710569217047280301045738500636486482363794352204740262920077411021652544284838956313558201958930042214704973382989152940407115404694529701582377583458571932663556389187378046929714874776772074408221014423983729827174406996700682429592280145369959323000863158102532525301338377358480110909553126251394931889489723751817381927057271953399164402637748790653136897903135328561461532262054827692751039260922266090633898496381921133513296049438470060042686524821626357627631685720343038063122942794205910576542785538163446246985809815864605074156541799166345059348768588366617745148931894055006566507085484211868349115439798070007634992929221795646451948520816387754748894036573397432206545809690177186900089219653626204995427468546304137960799197820969816897581846921770124267917495120039444116875992037202656063311918755825222016069414359934943542485202620101600301836793852995627675048162124871816875461199715864486128842287665671322981891599840359970781192357441984354558939898430221222575756691765356873782993267903198552713095294935357623716040874871780911064983898098564892734297376183794815360429525489898130246054122513035186649676805655536241661608235638616021829085001649593525873288644621643332719331971399708446610783891201809204991794141460724899580810395812167729781959053303985891566996601549381070958210944935615659807496331533508037843976155845422023393404592008535791902107176331134442387614235655813543476147192080437973280890660035932670600572042369818475105702451110405855385167774313647283785031710186136068703276391007419694863742413966497462597674810777066388252581039732564551161878447566156709919350735849007176845071494445229877598965732560337129432043923967696545301165277697944709464267355941859866598245475937983019993583438309510712420818169654753862063873654362324066103851530522034734244022657609386106260666460334456622914945390270194684664837633687918361742728902112912090288446887998394353826077516122764699180300814474808263751655684608774744015494030794674524196079113547578570803668010358173414976363694104661771807210427265625601551252270965836405849550009550811886367705828608568916282570075932079506247599810355804246696074700704633724145270283384258713581461181814828012009366921940491639351238918525890516999781398470783701056853566669560525189928500495096070586922966937060098516078288385669797599727358288398949827335515920802730611722003571469174204207526580518659446370040017373610173611704085070069275112639904421743252946072755751307316716627308122764766478772454307914128757193539699173573934273564882660943008260348487166064361967850569293068301471782698587439753707187249018429404371840612323734731872693290664232423099701893085012830581577970029295874203570077897168006862387800957892396009705675974310489286922499779585824130230884869321781345816794447665719692334002530096238544258613031792494275653586070475443162230221688181616346563336850166323985459844066111517717254813556554053352694400351239986361898120228941383468793584876946662660364632114826682914098927161126304657412797383726466422284658279388716144713352048444837468132255500877849986992838085241702175099974578835655582149353216981951198237109386442322611844211923804488848967139627653584515487081697198474733268044806281073946900444174831628535479202808666411286262462934599135291569596451166746188320491478604930398996988446991721769013310107597193256029974940656424625689438243820295158661673777967373451967185999136900551912226068987889987267531846305548041754708865420027267416117410402097506088675579694010741015091073335456679632886922145726390004598365603477851482656970373371919190334226880730961532478818676511648583179222166515818706212613393331370228903020495268751821073405751471767963819190871185521657185005945576282349064128209652392199096379491284891204148281005723366486312215873396505408114428927119267152547504312753955416459607154360578008266856236032824573944045788795590317201366030747079717067966821378793174000067862355481425545395370876809300088487634712053929649618894209389199087173766917050197964195901592031278150594264906305867741265569523172328579215045924967871446469920779898035752701412452352515500208961337954108713182911579375317004183580251264012053538373518934970752883758375526733099646202527649649471051217206441976525607383833327768423027045345807310729286078791217500352556820025650225204786958114339379886727468406132648006136412196414459899945465964690331523171408698760677942542776502895766099042412961999125588860860611999790945807330775405137194606421637005859825530825387991432326347766382190618834434717974361794506205339465926923656997936988346130887908372141937630091189116135301709590677140395094524811713277092951440629815942931162658830129247290511026779634595593572915558336586717327719337226262933588100137115570609122298375390945644936193326159904540159151792855792412469334069737093573567375779666171051527654671781993911344380861175238886010728278609675481220976226523863450748157834579715407425934507101226411053442862454433262375230289071723935703737462745287211973893807118270404940833837998284769699776666412206503785761547990169703687819765449086133728708265531561048921110385240314956259867106429754297278644336654191023079440064168015072195966978413065955847152450388155265507251487611876835653053142645584511099336829778795832861772738510794542042446281564387517378724138662514033783088320870656777109786042394016423149724537134620921743124717102365136174244770972262756085548495351777399821957105187105319873505659334447600773645820393137436310831079066222510693138659863352195739021687537370367848044068913456959710171767866256363058329296074921856223150068982140408493848370098357951796792564218337662780463909955092139647054280208735766347857064033185272397986202819436323308123651775211411954297159663351109794457149118036365528497390036947030350355862142698581159786987202929940363320789702253393204650797875564536406006955272000199770833814427186660019521502863792065316720424777165820528020412100093398201544980508463725089694852286333541779903218505780936823839399158429906113029604229121564971928922412597345285231239446671660834404770349271371182524119915697997357832571184561752739352797024504113561672934987451464905116331708769414117014213176855873725423250636214032285985890318021686211448800865584440084884615681615008332983720820338314116296370849471619291505671775817470139872064053668446142092955510887035901462359150773858159356887444515125815712434511856519016594983937503292975151686839873262134886153118371167682659120161297645854422433301277326579145102096413084201769292243902137814082335815051471145291693273459250210403735055105481715897424975347437291740473100418774090244641299043220229469031686744500434911324943447355708368774873315906877290227739728859516191744666920743445061358820560444550849846094722124126088030399788505028095213485065629045850798272288891084544578123258195453549132863907694222117069878033332059133730125689979630536769777021161095971445016790820315214972700376844773024324791404475332795787844817930733297640718918165130353308475399044280501335869214973556555022666054276612564694695042623468266275347673546586048752347806685853229265615269700999967737910756979720355330108884646338015429601447900213879945774242203558322265443135150193047504307464071773285778067254541093025824167449454002059769935894669063159340071668182534494179265122797395113754695206043292383696311252808804508836065506066887684269673029399320639549989868424865681604701316014957930765482189301197491134946243358362561083892264422873635790462553410857417794446613864607233330693787256295642430316436303612998976258416796724241259663377433338947209230839400996590351407712041507200699007281841599287224434731960025065146301854333605388942882846288997382247428897665106246841399510519608325461253375495896865718110918456727953610191712592136260960307642506081342060521661267614550865175824939611796419696845208980311428587621791061809143010275765506433346875645744654279055727720532632677009208781846462915204840403099672826513302348137470614706070502292610886864272497197228542583194660422401204831330453364747017008332294044275260734110335875586024193827931740715946747504189412847479653212868918842575568006103608085587988623343202303712074655710692739184887687330008399230371349699779176256521196291236396967289344303328200078865604653323279170548677030752882918768616625041618348205826259662512950437760569694396838848551589421672127965258350591827347818587988623287100836774434802935000739129593428135579099125615636048973289255195912751035967507131327797836562373316436432309577012848988324605176213964571010702653665794816894604366671416789516028728788594284462223893547892683973713464856023799705069290966752096881294787938344164824356018270122601149210406466274543368249997325057976184742854351039446207468431695087286777619449399478092929458763746571979200076228839703678146135048990392545671567451946455955031818141497993029083412815160072692011457415465211987081384997571804478669516564681855249312715739778213693264015038952858756766929292318536858364227664796449283671282228837642362156161191049708895911251763544217643724186740597976532585225773669649424424789063452676260948254105404775970688524206946653708772658522001318419394467309455506797513574110843650621366660804743775790767595666576530168601526082921170741679096812577884016386119308785677515094796325900716202661522835664047792571760635470384880969163529518292473118506238257043742874315876213078196387824852974463879639413232812474710174887229380723499953434404447911502533604301173093686672118365508939539160544801419721685267984626520531730506213543126011996677657167877036942427296416528252833728169599876115061794924955486275523379933422370824756246408173619585816605074223837033649111433924031111581190851560055891725625486113615729263595790007342245846939452312516883447005483341443909355321311632924393037630250574929493759711533364435643745014038389055272888030727889687123603552676438388449548853017331019093317997400244369303196784575714433585921976651117028426945532055363861532647653814162923184049193604392761120085892202493061876940286595998196778925348519718822176131031430683253965327530983917873197739433957163206157761941906404351709945114212169113989896605155423943902900351287977861647892805025370211458002630011643263795165913715489713076347952894039964613569028501328321398323030414261741988107443280571187725994068553680733359601048913434528177271969435874869165928172798972286956389523147432208323962945637041819885460469989253321797351213564934013094758872803758451712517368287992747343165496571139455707097830727297975176441364173624523704433511769493427607258610332156493783365268109378359209915164046147624713513619993842018885166140489464187073248441206970644750876223018220108218085816925629894821820856057190194325644350331478283026345680818267086552169467163491652842298118518229876809534452475292539891978865887234296299737281688889577917710963600252127578802690753757901529622048243842936082006394840632499768852410813211908125973447721649394125019576461676806046755261414383220285052989321319856541879313302986544255382242402913740600451264950968802477518335807526040998471344758356374955395427742315538430378840272725277443674935238498349261950360403834069059962330330580475046183176129040479141369053293785593518448602648079272138411118877608314009935737077055610832463970781937464399562731846178297525191625729695776528239117821947953504803249674585097422116266334847594075010765726324289291955264728819518209493803498911064866159906793027332283186990192430022580718736605762286953145392535643539551808570192537134897688719891666422721460622506953438170417797362959973219725763981444660943882366341000458132970658671528444735096834072228391699137092884431233386164904080791920875690512087776608008011122082338036613920636706160580727713451172620935369405438035920556454584691417149755297208972479062079469507805263220605588411617741764123217183271966153806862181136666156987587719826155718307599149541739874365337255493752947445448568728126417251945501385414824489843773177307189952047637001468236301951420720523658806000445577740366557405074370382096864678350610211803549448614435677076861322450383123997180695019361103761745661250487315694817619007747198401481256692356763453995091899320271248360554950771202902047735019172866214705842894489202161480562765055615766027286552499474451556284899998357357790528491190863095421273434756000426137804766221308510601546347362134916893537681141274144277849690773778308123964532067754200536036669541443656084985083558851745020365885053431608897259083173494690717273915821017526475820618748654399845232114846573280758291402798112128804574082524557469647447642132193328754989428892992377411389263485901300500400486937395570623549515473335813126569804754771122186466836220100151583491341541930785697666586676524452218073320683659257045215210786260397554574519123601104743906042317423993699083520764726135426924707652472311798747100336988298194103151964659407380238459033163036922483679825404438828921694874727446425898385451050971933918522639977741087379037966852190775309900238024126503900051064056742465754260558397113477237921512252883648044450013937627730730932847244027137577563245029352129099295976676778863290961290615841483762559649307699687310859717961062176197065417727072049543155839971186266656326452647865117870827956024175915440379538428474030603864073714200416063428661403924681079885270365198878500705857429319396837082405962224563811475957793577411201242216121733163498055176465684991231389606349869524662904394514987252313791367740583948220297113218487802635021305805197660100804685600954530021848614739487039797338511893355603489085489091849346363626149928472243688515906085841059402450094119888570744044824570577771806905938255673811723965932946755022624506046399699818569427132694107794589934324826001414391097842380911611680420314032917585892894974546344129115516323701883378355124936105447129265595093468324066166653060130320682134465715542015906233055863206362304430647300960461638082025545837764844409931842955151724203526836038413632783960961432915293669701754890698182669131441545310379421973204370110820282749162318031584175165866993079266176885641248739785388931658763557347713690715966256034137444145715139632048695060298145062968138967515262045701080441744380299608813243299106635493443203978213101020599562001252725660564805410630801176026044068548957023001814346238004258322834205413165760169367862640783050849245459174662436321901660813736798131120242284477409696960778111070617885340284539484494929588092264215772651830497472295118639288133550485489169163573693695854742809378061381028080140300881674381519525248658915229469598068008330986282844957311910373377382915961743921900228954352156213810962542010265641301635275921702776584279814506850232298443018377740063771147437109459163486067538058448821983467770001638414960807676555900869689968377833900215459011004839923384352818607144535887617358874176071793917095883749299217583347457372070403563077649411278707686184577825185658355472626621121833734698897798518391678455200340185189790806629319379015850497668380652634488966445791905164210830375367377312131837944903099835131364919169215226675973992259954664910647557576503470390435270731506048912835759484499295785113654963798093068387826749939654742772636354428809706676606589919384491676427387902078650781254220132477166195486188242337208219341139357664451574620613828591892033384235897631943011424533462271946215623604338878575541635122746568269073595963008046263213592509892648306364523832373808938700385951336099057732701596729583873238351484213660740889171301202463237470110065349997751497352343929384842571857866456433818558582453697727839110711030300347669255076024303701032578512921876921928548243303918209938212132185751754594529061193415994778219945483573773571993876776517504036412766618884042393505867455420584217018966802150625687732886342210645721916418092040709722532539034458939608681055728432076348658227490757359117629989843707901381458850781877341870334200182758953036601187382084992788492502901965726653359922142843156656919298781390141330278733377481488466279113637723561995763648069463427492992897552376176553314091744861527193156183124959142013184494969978688319977716889792053713320565959998886189700779157146668050140798558913461726982087092784901734546627238229380417997643097332164966823106402674354604079308339992670601014638083407882726341204640095170489676639528361150312512423451570564160959775449787577379907244780462280403417656424398942086518312760537535155433448860048011742739535786681540775815086967010809261255880507610356694335611249064556606803997932382234594009910999009826407218378930346414228445481884493944515698289511424268256304309423665777466265859574972955025628002562051677242169527841605123846426242464818981713196647626608579693663121622216981690280451087319184882400436861899040154476745961465066964556567108741468423134265932381815500114207759963672641078162900749171294487438742074225554114764287491328836989603037781699757268666520330893791923686403324821816671119778384357054016663095853109302459101402965157547025378385413217225875318156743170772242562007563054796060369152783047094138360158323479103146769988980147332359758475342077414975106480657692466960577196170609057452066224371250433534374710107982557298902020788505632374236007826195048148722241063568007324409409739162549028985296700644164958490382684105275534380922363437099609927618547098112844191297315269617160064601303339738680241644175412955670060901715519833762284759773418577344681021634791582059916460979903080120059580217288547352863200353061727408672937657835682178041436308779798210407594947443221992197657806943204073227053759066248015830964803561193962416649115416732172404632245313706768687148725063074065894723411511981534024947252619628871728873508227522059389664832222352391490864497347256249913669767308566220123446339573536218235418930185966142512190910044751138445580499340641613514612984753357413872406089325055255932160278593860060242395292609975529537754141896090361152757615424301457531379103956294659851721381502391525633690456823405535889527888145272622369799256830480125544490823966979135785347436967969289417738382995765648671622837355380989780446054062789875722191146111384837852922979012270795491658975523641816279429141293539463757496511657706297022058756918069694934221537379206166633789667211082050783130902224129790597760862953826197267250372254614844697526323703913986404521971332506799265237587100524144465181306538369223675781424799930804382098471066763851910397924567312088400334790016423422533975231668362345771990964678838766393198356018358307284802083260883703282722702955797543097400109792176596194445984255901830396481580882516374650142159677966289648383142579524486301975609489824583900072281814291711871794945121903711700277426103089411040334984794413898546141452550488356524743827520067841575259035955427879750054954462977403324198146963297409405090175169974352031170525366069730921989202782345234838305335031715724411465026796840258030712919339791901696085355476964124969543353908281380412221789152146072102756508237239043028908118961528555821257328443923587954352834243504259874195396667329911923842241271987589273611316727921933548453163422965718798287196007421238396071117829056231548196210619813159065861844398613739864399068242891569297634050089047645092963892994442473537241129018364550779411771243221362131449759808240557158240510497866977397085470989241392235593966118083409687663907804984981148130848256130815391497055280533760657347743418314775112443259572440410624487085287054560562377885922438070961217669942423120746620109943362864614173858597880494928610279828301324673940668663992673500687365953924753397340738907007407350218266638777042857684526557734102444452930859413082095198690500973316955081506985280133585187282661382140806464589430494968919024670860993410429129907301558005588258592287804162140860470815456497029840597875825638799481277904407723205333763819748635891347041636380124968825276342415725162959376498961827497912703585471893424079209686976232476536774158658325829200795699694169940231341970834032010635462559810117817179804028924662218382823045688687685738174582572729526611214265289894792059358961141939722202131601808440418265236279343308688877225099451153593405633826500854850974985637371046705718252619372489773994390224991661296895112336311750979540198184056838702559294512813489317866226566017167450008567695495106309101347137633930682038586968631828056070362114240637110992484187164710209902347089008664174154658656932758459125766791631858704493175426514390742457256892695437757289094659480593307397456577489407626993622650519645347955016627864098773121915137802690970481306809263525965171246559733687838032870459865368403083914266392138760595998707970334871869177475107754608601172930417877491737067107073925133810341292161033359627024059812702588969996636254609967336998073403876876562431499922007126464669738323186575831266191070342950655188454286148814703640465156355047337440733164554505181308660137429137484453952193316778316492526217166448332132503005189561613908966402751013257960439324029477422056361345501261223311621855539362880387203670066018109136779752912832307849275362451238001298858146847512329952020144565346802823425997955194605513103363104468956423035566427065369429622188340540676831322478220324301594968983936351012037478483389790667800612070295299230362367020092007759734241272344725782358216162529561339501474041560653044746492875242632247190955297147990908806371111861510840345039556488376172236805393121760674332496650223777068764651821899510357743783937394296632283420434930466635865454198629335609845085414401425347852275943595268303451754262680510220820787796693157394937310715201678943894284082634965993924920053408742561078234200391969668606962585567114751160298501906135250609968002476836830609026030725183546833830868633545580825428101369273385405731464304851040009970954016169959259617770837954436940759513067571050926471050923155764055747339820929611529613795251837105389696687474642296318526924049250877080179997064764893715276806744969465695326925671581093554358323831019831664194955249864866035205019810225294331025041270511341375474006325383160182668567369753080813797277339910227037233128388863087344986185929065962085102006502755517279201976069934015944613013473580577209016558092267027157898809291454433451905101940942562548819955037704784543140990410102398437431153376742960931165181725278384819708825512518543233458046785650542409712090224487659291121302234172765739853194890332548431142039356732746538838046475364002193558568551946819886787362500512427266598412390837138364487223964360732718561773404913484736593071623887541438080071767211240163605554659422575543039164461357104780932358960359745297378356602164937279638933562656452573834414773072909621151996680779285061255782681570334635084464849975151168739867239242486817148847984376643933217219756336043674717235109846030154484844200341128069575642356542892646867760761803463835963825340484123316076265653528571931231661429379344056147186232820335359591010293551681888930259145218983392844636198731809133904945875868957105463853480923198743319551191319043976660532912851541941331351160965460195702222622236322741739037363408496169819304754060804254260507031337659348236429920254600198045336236722586217728009742864817809934085115600741059310476067017004460114195016122301826252198291514915764111865685413586919734891464301184362992171568697021763351427974572529725769225590329760421801545859808868600817407454222087317985982390880321873359233632394375515633224789706801088948616802123974870724198241917056344561603143923217156819619716303251510330631558723417976505945589866916302264187052544423101928631957353569585170177563674922437548583748247809914432864647163476952579611323469961223652948406800752665427287794266598752644543759436706958597945522342401764231519204147848559645474294789037207652858999828117291863232916113768866664247154598951942027121608453903452062229945080195319867494323062680514507693255173237987607042837346815650414015602087997818311616425071752606810581489758630152121577095149936430429992833464427615762262716979208633560442169580105387787096056753042856313741777483806389107022368073704945858842805457385370864748674084813195874175535335643885216713451511892912550684440675225341958916090352934242782393124488696239851159972112895271636442333507867441718626341720146250636990356861609286649048877800535032917691438465737724044476563033659449649090126599440821147746737302507535672577198284902391826314284952040563432207128160452344748628678384984982453578568536316424216875428846168867623896100362402840165904600966649044131170657861210152153913438278747872075465176714176794150248296106419919013657519925422010606375070356090097541949111392249220846535137599124854050245299647412497614442648655817581669394877980487888041824049407456907997877277992481767371921042067554821119048701131133508354947263994556507916706912288819761810905928926615650722966226039371298226016883419433450137010701796239726719731352271648576219800570178665170077144707754932435739598415529505679416226382264259148732328036480271354147919688455915885449488258306342301484740821159007132472377709044734171528269734021609937362545740247464159210159803232233908280769299967327939906173417953704065797013403117847366328967401017270194249256298082782115519549190556747578865494928562065107227079138492155628132383321339334491100491946706257323236461236933313483281572825004615279256385110000373252572668819969621993336792969507879994740579624094694293561363927737949612379703681404605957461362913703617246516087573011551836583094428795364436831226516843649436764479475488206923749064001582044809708585062099537959778446433938032222062419337074854285629230365649385950130147447694814776054293757518436413102571988295970327874371720444800757347806640048626356595263996986608548863986013746285750265985972844845887055108985452327237295691355172504336467509132294153674761993027508296749871223148501776748595572764191433582909180987416842849387575508968379049589996418902973158744158429501129406034585208988128174604654706933595244396068956659907665763931253345663331970538510441093905069268868300024722668158266976269547164273565771862222613721571589394797127209677102156305231416937118905433467957972798616135024485628675461804478667120746176798877567863791929841945376800247196099855066776567613592531089726867673606956102811161780733897040598383270456608935567475427636901056388654670175703491325887168091209770513508827929034826965400630234106762224951394688090852355289690779603547137211205821290328566794579244751002709888354840040120083181699135997432231340374677789974738173617626537426601680334543914188052115375556303241411789723800243211330532663540192389691614330096136508194691661468549212225483072878944508263275409477368328125019758513626329400786871740225715953839612968794500954780834767445254368721197609219468610582269216853785878135277305484772257164586635033018662974497874941383776710234029180986953970116608096639151452542555833606650965754483947717616477071361291744454595778363704276305714896202629743804128787017265693197468449937560663066660839974354434846897630557878388643318353316461518180175888581624519126858960417445674861707438774717402029193269061110308377837892513416291998413247137643119501811790669396407630213525628790901425989961684065756352229194815692221643420651868800262392891666215976960667589858772186194036272946248291271488136310849211259142316788523536189677369486583579162211309173020084706115466578903053688492697411818968564093149184745835600015060033746501983690820687914459972557865221635737292129108395373271218073583586587638828220773151287379225783301329190125072324248422738329771766931125457907582174239408111823372985709435689979085792296356177855778890195002899396239178803083407049389693374110100115611221986450642791164637723526882134684141001735360856951273923229201935247139317483179423276665784849279510900316611425714100700059801263122718490751375709289787175994090405081574857439053780061793675993091480302571617040237322138460344291465749494779500867461646055323484594623558288828316750830324710483268723891756526776301018485803995426650113250629395148841351237268848379246213045969852562825905722039203144766244174742825091989603504592700366364744380896811748500974445153689114595714075109628746712275900471162653191275986173291705210750017902571069543578672192267077875687493029513001296257928830073614025592997746195196415878766077722613062794582450743966410736796646647736595812142657260242600003102153541500839815569982356631869178370610470761547888007640974401352499073427336082287793699192168919968108545739912220352007955195691632289721388745228117021668421301483260544424137382087178382944261775799311544956774608021381929074668173690363245364727507502275786765473757719088380781927171077692667144626568918408758389030298957763770316823856575099559199544127881424138801788705086709487328305427293168332343043568439230049074222134509254935018799251944017933501179044956959443214821311811798328389589198460695696470614129834114850333394616106333294264800489044464354940530108683250687778388541498460020670458143930447356818866163959653352495569410754491786948434847303841195626066312684744364047563903940680417783027682792933009703839332555167448912319769257516423797403164226415425442214968491116384529603166907593991876655925202178987842881006954648454727585528252703420373359405924720599546179171563367528205824652385205405260447247409842181597396646111210257953965241997394877868727826614644902470708396921039209857291553763776430635218960348816908368635864405747559235301033302524016871200912058451696427475857168115648914655906244679838104611015424519821761453727751214443152104051051109640881659702734001996241882452328626585487037488987434668437059446632243543563674971527303376408746790445921925113851239679818971747414221067908806564745623255810531990940459196408438713443637027267784653029909846139848622398738510494943792911491851218697329039670812251119137091852148298057474358420590173570059442016644041062253158111109676174670325944914894323614635643163285117904132788163758554661437229048509258747012395868448263512563941445737555637185201361359958475114896619233990811392743656170290208823699302711388609206090347321859715481071594878489799847989884322745015557897969416004306076911041842174322493525675429602759855196698337392232978617915744668669650452590565234110958468228297299814915589098704157967635901235786156787247675534606208907668291154339769444772787121098843160161835512021029649148019138937983766648465790689265611457606413454880613396825765463303079381946312066387585119131472164638706069375546891036292283136610017571016641884711417923997388545774287564793926704468508356780858409029513408710397861125069359032474501981827169595005533059465118484459062257835235132978102380510745419556972973642647150234503017531038472872554585137168951021419489096422664684024559113538535265725257517138225133962574470379413566652116382598591039604094394636092543173709688528949808826055522822005319493681501756853478732504496886698523178565704709276944924260525483280153356885194879192990736534905283399121103053848410380653300179948190394864228909830591366168738037682479218303953114465286728887092120957291302850318809406447149184587409210875269343218332316811011532564366292692484460604400194211864382622652640146356794986759885170457771054239866747155126503647050305783846271978264419999707844417425475620062144676633104285656554718847759481423918039129376649919147667687573489668911112215848044711069136200011998135194737770551700890244780767809446657747388456089470187155534181494583499240947619120254798070387189548983038229033784331210203413125503633650426694302340289022428164019631344814755979292287479990149844611834971859491543598418488070350613223918467281810578656963607282651027642175362909304183650106539275010310777427381768055583013729377915109993445780990599397583987084746526419714284121558502605505593621396475731317846231900068335479702405889541425665280645156616574397710601351883106260507869524428485608458007141169974341760461002375898468579565836034059900294538295321488056785110206959477413802784558654319470510185775836494563052335643052085242925204874164186683935123275635812545887474036193459007532827788603013628689180236860674276973913920965332124827175174549685632947822233701284432939428733544797418981350122023856722993270116999938941493582368594323070803619295919276704653018609610848552907097591020259527637854224524239144358166326513398240852535583094579179762675172207807214590652721561099404067362280447545360026926964805967050874418765210850193798401068094501391272436543700799834431318786899603753555833413545540421750735443577337758094651736482459734326082065646737217980730298978137929621831304071883796087365477999906377575776781790779318150535665300367168593068820252698780460304428873228986629674566531060539856555799464960805806972115680116883389451277593783867652144858486260262058562645222888809116382804908045647559199906932691894257703064306229265136221757651993274975925784374939074006692378982257253627120590377481660673252721021773979388625629911850850606511573501558467251374802379977066915890480232961856537487884279184818551328040271369966309354560942025597159833072325579516630274143192402057653410982120235194372935743257256616466327734886833485729336105719157361039751258919635707274579591274209887773596226826343944324756766140040667900205426900714357900637225647964857901665602860773655131027887617405187678913881202505959794296581515666672136269070768745107977850333786415347393896337128950201434559151504475128701361841408392783503910108719030827878925928733514905713642098143856541901943501538354059693313770148323477029250305178522542519691572350246490002069119096011434634236365237832607314777186172583657783224420757089869865353694047534672471009032284945850426018400822460456162327856001488627821718784316716951442318401429021617584620080635284125122809875218811433059587646912640416338014734657477919376973962394209599574421712629741195134124203494040749120218504149553083708206501700866925261778263401422541610339991245794294108707288838340459199409105045424256464086731027641362092736823745595423564775702072600513567547088464127137349938658150777534358780470555807702146048932311892171875736720784212239682240090120064229120033816078756397852365787330941791392361426862837284590601406665306843617563840668354047731849578993333396942515719377056377598729687687425057137600754133218265161568944356305043967203341803272621906473731422001980925761136244544815864088726903234173738622244881661406112171226593947142097072965753661962446851491554093194421727726406802551353876563316759357684605244396433501594451915064838001824449852671496530312362331677814909295856860540983252352622308019443418879463633726033921930486490816309915094327932724304729130120610708161424261963700406414029377985015385969142780123200725078930069663669929400125186943677956558960926964121780166580330624132500952807217635195574549527619597231763512522698981309243574912875829394365283470949475265625016398678297767500341388322133884003348907876771517389515012700683865102287690354011358069741125465508040351840755670080612094769470928616373077507927370345783059078657191165630314656293508697461035748774642530258135969757665653734400444526865587219066371282411427210321220072567551272164464457633147664543050498417663588680814427702001106767005856119413277774712528142071139248464482316804058947547439317923155242946835039457981886123535318409739823589473683589955208147286798693951655190780953203847837600648992711469076134106598598819286428132082724795067738441938227325007920567829909053942249760993514889970036201152899269570144709948728218793497724136704846771047491297488113180244725546611623113363230998539548171336178287996499519548321320836739590259668731115579698911024534634248641662068794050349548994229911562634039401728928658399972195861704014415740398882155333862167223350603448800216840470246620568240514409251213925935504198020478031644612534752073588045477995930152108392232965554858050888564362299742076771300310896789638364859987843421524156261384606788088855517084510556876479220936366730709241231555840576144716276471878822348952179320050689505932789230500053641686506200039667741515549729915047287467719152637086230583226356053863041099900352793955639778384138617242637002114124809600939179021081719467346327081109044334615576895640698569002815126980630341760986293921033083448187309860527934383724420158528508437218300667541098382405996104933432966622033939762328343594278433848529419329732901608700696079689204469794908047986557614351489739753368435072215577057017920503933779899236910332377837091356951108938538206160617980780462172457361759596776756532462129623964323751312015078903189278800604615559334589677673349353859297617916047073471223095434942480129312578311206500426937739450806779333469547636907967163205050716210647164511676885815752164893716388666197694586375824311938612486501681313875562147885512299675168036259476607164453329669267894434676097102374710002486911136620976823035566454207148610940083794389431259004742479649874055363312162850766423820751563645562929662035099692580118032010330501046760155262288896851030282588835945100966230497596463121986522654288074701795182183228047835201920682715158093149823128270398492829880870668646544391966839633743955785966045350161398660238879346987929699010315416688257903458573058091794370177913970222897763313734362028522883609928516527979060085692464580435587351254003952474626075044040012930240270910570306379780538740536541178247143999652623335931764427337806745765033507688094996408867091727015535286362037045954544598685918189521561524538259720579638049699245786377133873151840620184880753912643417806223788306289713549647890313281286229293288979021653105350874627846192663214370528541977310679603437768814868237046284993309434873081605153240202540884706128655371587599936360633909462238169524016130957492871973724278152488593804658402043451024162777227071362149350685249731560913983728349515198854519667220557710098896673728852949530518251269079647528522971616710617540920907389025221631838622058506257131616769653748600114084345279051317810313923305719943428433941019212378778986604329164900987833574737871695847869825886519237303949649521914064572950143436518218420292039033915547633290745110711060876648308991024556867903463050524746579059997337743742483095004471368729715503756820998449687059614134715182600017533769619891794041209500847004302804224252369206764493899428921690853928780838282058471980104879936789197642301337082221758021196345948118566392464376301958747883973333078927310760806348261789591129232757092401120524174422077074050634630975690563881580374224844572586220615389714088527824852359488737546086808087718285143001700374141155990444276889068015600872357172501968360611879992905899193028261991693951334032888909739452675684165927286548966797761294285916805155215348339374436258944773035098628616999611786788219229348583825604183892537864698038811079198618004126535818723781386303379922659114853167272123285240705175795321238277607045763102784669738337211296776517330184688084311337510042210385226989865869410208612309331807962008014193209805018175971425238804959673532900679882912463665820651826627190475655928509846801145075838176351259827006953655433404231715468558948910244902128419183537983245241837257788554544837779449185182856967551292749702502107931898386579724879278361743943759168400989983764564259087718831554825464609652847964242958198496128907515052841305962942056410943535856287625221241987456898522434767285980620839105741808950250815801261230940288351122878606377262911902307416350164372144498654569789643864544065109924364362647741129294416120091715950917068915370522901170610206100203321774401558381853859801530844110670985086331363591199209019762288854678819487495964998296823816381021745966226783901863492467076567410172660297654928944193793097351315439815491063893852297979656450258511513883222006978240673480739136867866734865495257223776734532111305314168841787725610684759586184694538891803938047452707418058287555638651295623942533960511060503849346118139924292729133403588740082901083010984659109706370990780457288102899079198877778740355409779661178257542851958460943688721984176445877895994922497253860478621570180046237254820751343675258631096501560291355196745301030249840167157779804769297949176676246714349118859739863978917868327924217982935732740575469380926997728457053858094463720709382612917157661528155666940416096810298082090656172910398080442931849665886659923719013106731167009691825140224627001747610623715739937797478055511398773563101493559406458212612598784443620665576282257458822771926887179785414155670235669204265930863192269065074591541251286677375743492203118389926080351667692916752801603407136322122845207940776032672890655577832610745086679880146758551580760802334485927492734865521415765599525777231097779001387103106440016094999697813551014605724222540644137418957731098539387576184409527720194978957382066967310435817098892464706157903889702069399119220427095780034133821899164359986987666313891585153576547635573384412109725971585868710122641399176915131723882721192335032013383624470599246590873867086526337366916316947188550104342999545826461595649995948218702807922840111681477295610534178465961164718944624700297657424246624423596742487396045811263263742774827531430641664033589273271389535465666171750853563628963362338402089593809640323346644893261418368464318943914665169916030513861244383624252644671295714748411844389025149228816958208562571928968237026326764107486022709668117172861599445596652812185352144296592815065855706302574643096367065398112897930062217272581376031259365699162951906917815532453155400365755707465290785721657276652327955224865569054863509939648198866623636078880519308225874354604239171070176754649650153987973391720813225783474608336817748450725855498519582683746088372292339945564119225622390489657520503790751461666399341228399243639196117242883921941623220792115939038243703667105991769027730492640306131906404941680891651408105262358357126071448072823501785607664903352646694285262432422562687191861567157364884127007304245519335639780689025273440377310982525214322460592524437205858990800921912041540743774756177200480415910255014624143251234349313546136407955339124634535061798387512226804302318410994236016105874557730530652659921939521015009405489257673492791128264641140390991338819127732423176193801437994617469177043847792203284073227491434630335585304722076419497709535862641037572574555998840117826406741521508761546889015913510062976177480750060197540244909997807537317723504786388677776877991469424047952532323461375114400041492323927909195344450096542370934942427024027295771075436924666983059970166934790827888686125251798596106316162738409686880574182227288273744924857963690812357729730924227355087503499182935092972905736555540853419137392685961966273344957956299102522937585067864362803073288174775020809936551241124116776034799916909972888007131758074707513447543926492155736439631456850451765109676224834492641334260728879011223525131283444415845829099939911996911894510016667157711146890528429610737743361921535886109356137223580210015213711368916770202836378359410024143652475717810532005123021376455640775762796360855273037828871166968685124594287492718212020195774758939498173821079015523958629731643620226397461256965887779721545061992868772816716089685811487213150628886877058805849238073945276425122066713419696254575084280280421553896167434642778508339437751110441896959572782737100706485084172748599293248537158976304629436675550106288216746689866295295953831523638381938673103552956793779441457528822764002749083242899661950893373305431781376105443216977320744563945053492480076340720221158978724723324380011263203974472731804656101518824058384659093344858493820864296973880272075900055691889435685769245435673375330413518049478334795437763117905993606344569586095558172080876265027202218009250826792846921993236123094979651249422075189511982639448036365113734319004647360299340816453026438381562208769871793771111022610079319999529034782062969151847838521685502774526385931805793584122100018226826568913060101279818022657959014489444548858084425838525559518515578963875704792894672038181376878231537657430473085799516581644552185716648329229830937442736421803416224307556936278685564261876171171865404808026524645536213404199773559666743222951242733114262056378875325554237123860606085833919459543026466060288764740811076816477233913318630988569542507874246281931233148462279811945672151543660265664588175047940280222600272475181983249983349590584123187374325879308937110863129351322916809705823687859257959921158353879547365152224331801355526132692522666724286233290689704021912474669430761962847021965307454247224085126196983726375573375361182143953947976905967201012678684289173661068538993819014739120404113787883182071869028093244844455546234301642871760375392158146449002546023523532267019843414912527028724290414345691213096939110358161260137489012339227139612164497986471969907753546151638600252928812329864964279605803171986903075066174197820313601612466136663345079120638247100298658930384526902312296681529277678562515921375079864686559117912068580216977397899827864255775522674353008032099762919382191479611404608774701424894986919173436918648724038158082769244468846168963929633130960616657121924634336659549236626062382922158639115527774533943927119960736584628957178502222347942208922026478179244513195442387247973614229241726703202272970744226167539107999592227520505207071437130931637717179152713072270942615100431618105987766075171055470063641515202172821121264598317489509538889547395109717626508692046131043202255598922032975846846347998722045567549793471718546318248646177185248912923581703157974157572501126787272352624400364833899826980318350344642204379382011798886267072368018985461469502887278687815785192848381223962356861555836027184186836347495480555162698119157718311835572235181516877001673195466706786397648583600925630456461540247908219855610811802594082583256145842078703833555353106460887519599003742263937300953409431197084278489893949347401030541479645920870143675273590778221645874542806750277691705957144504233565148486766268778960632199026455553509304355459885271009233520882234231893133383487467765572756408556100844118906083164246817946339618136747814610699090464866832318060126977394592520732170258630157641105543441290133751861008355767213848606356771720084981852629182608502290984195035970013809465460996890240520512724512517840771573358746849579572073165067553586471922086863615765932636465503847628310655250835438092750407357625172877972395837855522523289775161988215152973584710512538537918479673440774793154148762085171357909279137567048472195947643925969080183135886844186742251377279247808246633536081435245810669144996069947645292397333726342756736457151174611640724971389435675427186151032279667412151646638980159652144116211542868468643991537382108062669998041877280272996999405561640351494182119940263730084177209704812397071995153749228025937785999451828692342792112139906461775552125798350499782699152323401788594953136237533096737533538702993757132231435520522178136082573327349602276405382646656785233675327444839778217595437065140613338545341486237555647817520481272388283248677172827374124263391851171530910788529332484240108915419170699497271692859339731815553964888435394128774092296115899855432502925857624511262407136874851358761554118855654311827937737100010225488685876284697055344022387005527415846791888893310309384646301016658694366527047064742249429234591791251530881422669922708441109531063306848959640899503798757500577395484401527895566713126578125122492960688911337101681560862299854126988823607680664322310870968789079206590683854881194051728359777594034294189784825047554577616986531683564762372241710671554918078224909227705022212874747973746917605491463730440139767736188828269704790388484020296777738530390901824189799747621063990352632087945618600343592319637979558785770693790298461335775305633307383932459101734170846371096108076130921824903102258023981741916782445479868171963282205475131375750961598184072099065020184808203836275064319299022974451477605472503034205246273678550987880193066292917371001603582189552193082966507330613771550548799098323028986675948792501031698282940250737563643535781412195461075322440415933163660759908609733028118467901603818393606375898286491088387545645831358818263004256216864325642269008098436627023493959079087395925893936189082726741075654664918605344482799725477017959175436272797934940637952003036634834698749004457511857522599802947507595947696944333033699482888731495776727142059970095509191171894237020861979192281322086343480016433979649283454695148396082894660354390333279984196659767819472303654405214707991982967116650909086351593139462292983970708126515316248443994410098797537836629431377787280496738122420313684496848437737691044554631288308079513780914595836686428475809146710376997677365980332795674287959560724870153270650064491843421942522296731743057216467255498291840519663263489104521776193777465545306590218999916057871864005642517045565150486454966396503812061586347810862781907375832171934674587423796237174133719947252941251375971775847464672189395234780171539282230172816114544076169306552807680290302738356755554087192897431691777881569504963550822897215815384853017623682722242978083540406214504773919383994615063614073653062399730652908644542741012914378001059449033147933122530814535326648610788420488083146241764055071980994383442315811859520595745854647032677590363729066345588237699057201526981470540270042510128932398669381842270577807930584995760558082743401043493830858784193806736516722326468314704652107720801175345374525380617483507861061749959593141484480382077298451767471590747717375962432730847200156077580844472986299618444258879494089200728467698363218350721710447877901310001905132310584231222063783500624642147758308874316965423220220332803783107071463996728910417276469617572893493576757990628036443124259989151958506178991192344712389765054406026162303670455909563673756644331226913701987794863800901735541272840388462464215458912552920911526460563775006961310285240109561587140444622397438657279889192229522025376525100520770441875343291937231385997979970458579769017852125170528869205824896731725254332515061746859874299586197046951709614486025964259517789970156987164347479781886307192009710513481932596073842178378475816782188224589502106981808242595285722678166095736978016959308761317716233703653828550496333142032576346112563968283228460518452526529140855146507866905287946435154396606454843920444931306233366715396996269860126161936184842424939563947944331753112504505751101555427273014771198383485104741240957835067873398025350550585993370556666639853821804998660809799362686654434059787465197723155169639623140784450463711830815143873690270402513206989801046203819635875508718375839463883579972595418601921711971541483937846286126003740267097415585676989944108471153403344614846168826798631929076537690042395946322189799976798402350595730031505155819956102322016328127956903339508413238802510738070651749531156094343258956437162929260674641871883152251442364504383971601262416691668071942063406563840619713962557746599803046431764293809876868630499860542480572211680224370888976577591069008073149147664759898654719674508141681533538143614907217256910921797850264181658802869287023725257466699845495093113237893728067926997880580724767186773590842228902992814476926860028274086295052087075746279889719291313866182643633994284421343778691883455981107592819166696761541519749924565614283920747605259199354795044246770057384187326169757483055988143460045636456493979993470548023140601652386355052171337803604161028005274549235326257659922013202554543436760443390221755805447964560386120509747301577678001158883531584544720834068637766141683332204525107798348418120076668367633490005867591873429498329890845856323064247145646261766137910131284698698573331570802464019825826994916479528536004689431581744364904150861576137990991452671851361663051236531202944239725394313239170275810370319798749458132542384353810785603520519565333850370418312760724587728049636686890149944859752492070493638439928008475171282242248936939919586865381443954252867844873104887230879931746850031078278246309529071998206191032703783531161551525526445490181645223832152113404763849946002966227917950451141135662503341465235785284946414194048916780071650951695574389578837842583457850963550373210054609481164118245039235261871418534457507804824129671366985931838429069352112896697122198765291986429411046843044651810353640721353759713545345749051936814638678837669832575109464444232241945334837479497734689095923088251196904550747625936416415693684796795846207247023945304826985502471120268612888484176282925024239041814168716431003627059616033753871763348591110675186531177292207511087904359247896555864672018423569612665734767123944909088003224570825887926421273377201533157723741685399850182064062908796217167278142927880330566843869888459686442644365560199699028685213258653433039611556029600389403120586281985788757607982562222635655111418872476043760232947339384436165752534628009178656575783262049111313857673650135954965052968766216198028384069312999598302877578341002368312621931920716372940136610615637007554221767693584828794913750924074268353256473969044618767946904456414646299342134650218958404040194679268710197352664174934897495203234287553340283140361919334789571971999595880191793702076093405962167147045173900038335896735837740679321439547971677399376729472116484478616559491601391875720901326143198467323772671322808678110909797406654317255783628247876253177707876090992289744015930111821237436865358636013354938370224512471271227024935703648183625345982010881958356878707152176613568939410373355472227856171618809900977842459056045780093920920753235811814089994760035165280240543602518044746649003572384728538217829411638663726087366628386190456154229506305491780938927835070850483893917743451461847075661039902457900908224558037464262138307883415777059489797217132910047674402849018765683097055008346391320706491619298858123714637257010186857924771130842384639945476014547940644802735726593260234926218798990438919463220014883264334655619113417697980251753648266359142930884956254028121365534799692625777770761608782151723438560272560161625820569192448942783629367836483565756276766302412999137673673374448770927816693368563724465412732655180016035907141632566683094291309880780355286344790473006668610094729768956050376079620252575953202041692389417095118963411578085434687434420092261301094014964467649652400403075240188297984272230099163662002817095873267403669006505627460800771932691332516190834211593425718546798778912037610748935012184100716517870698135423201151369819092358706744667472600116548418873078223149658919946961173975112372478324966237281679521205497983010292512311156529262742722443955495792274459024307672200025890700552199957575356149418838309254562324758074315695377021795921959761036692331143352735222107375979644928210984283937723399229857192208115100347373821967899345576164956114069027766882254692227350115426509768132049665664516865318767289291637086217261275943990553315992471480664499677867484344355823883559688072560492528431653790779501468904212445064798591586953850978703133066816839803169592274124639200919697398292214195803369445729076207691331213731726003101993781933043606946321717404327607246254582552976807596740704072786352825306742466838969689181890384188532868867417205844387602381529245545978712411459076056113458655319938959647793262537259745991143645693223992138243609811897271412503570272378617047920961644674338292752997906502175556659759365543354909369423827063484197687832784941529680815294245796260329395352999187028750923371033889429553612523115756082902491599568841982629781425303515048478771774315906746893220118050000506469131771837053722256437869680770213639816691562971761514819374186143468334405345478774150210074107034938729006205131674836086837421767141041288137388394511936740036613536205061896116216618671744543538076260241348537948500138858998358577672265754457345069105610158715683844559524065697336921429355052256596359102990321532616258318914193196565825113553858020866718877147129209316689636584467354513553740569351588742660361148124763172243412364601518470142914026586958561411029814389605418143137988207890542653723270405879288601189605093564839694779506252593708659894497866083468160396801265001127523466740598337208661981635029842616309880533384976478076718680586313836376117407513744515250643018472193657488465092774790273276670547583219222773405075366141910772634529988193537417156948634900507209891448739632645930926014480898508597216605480890144619382268476728382219473407650767513247429439282638968427164740445635068204506288978432312340714638847490463662239799469831673469297792012538204280618761378318354971811175600321091204268091057427817605761263594050342311466276049440774159698892855198112937921468720421637675630961341253089957252330772796031135192786747100565704974544519369990260273590723260961564551660138547942647012325206740412896608833182382880850167689681778527839031545496613893579432731038171353416459423775984819545594315083555791610002144464120991888151971533622814235994520301311536864422917127902660433761550760561941800426879469948579165628850882703343968163584757328209837874075261739209397443958803717028406972858537295358755614623835240901717224072841521881190467132617551035512192240033322966180675381085142848772869246806753001837240376064647022832701502548356005693501019584574729844587074705168947283069610267799065841126508503329341164068162900172019369539321095482083001366383483430461434492833526514389505589691409478966108711517249875716461640994761848242383169413877840179771717804781098311437575304228590376271108557615267508186812985277632170067499395707553097648718256369612343234158263895758904767137058993511090850093898966583613372173296873474475226307960146931415699864779681556329318014434333427778485994873109820368278566403141720083798497196567879406839033837052348834164905811481846737723949176280176960487721131834990295363335391795187282660320208489316363033242225677132147476880621376558555215328148488181206945751047400151337918668269444046433787691439296270339243067292790227766067352924122621736030034776047746865067192406776488529889748867090497932517400862134889919376999782297629118281904610347727971619039566133377768071140100182389728131271407593924310844270182234554644832567874688767909887585687646649663588623197003502391462105482572940266445834615983651431415140596875419703325287555476947478332354504606179746458798122122208870336956824817374995438615496563975771883004493845008530443230006917423117808469008714853917164192913098505761672778250884473346907761976048908672031794890277209266343189947148431435789484699285194812970864474737253545941486921561639115370646296544107870769570378314309627177822521353938493561439908961909289499228165609156576630306170528432134930259787734053752957076329464120075120103178876583509826611755939963588890925302543813505848949523313988467678987663104287282317047615457480440178384994587605514371452212708273976830444495571900472286254982248875113559385770527017538501594095273786494356670967229880603257376356810095762288753837957353089906944604329477765977082425449232094257469723471912252389075279375517189741354369815236466246581199949407630353032272092252550321282074871875029677375929289736527426869852891370402019007190025647701897813311686603718471557697709396791115767068982048213428885569988083242553123841429604838963855777706840409397736501340734457141292905802079670044079098225050619000796476979287754868815285143550234711824185817766885967252132293186016328379988915948502870562636510010306751152542458092652650749951164530536710458983850053239494909803543396278564976595990690727559265596280957365833168840909636185349885215227252098892220532840489112697102833699991644199662714598375337980855159402245430494042822342577032344892469307566721706405315723334779870561058767626275385577710565941965729245383671023645946668373933264431074077059873596065669842403044044605480239750382741769306261723189296496305133439162286612573695936609061230821451850029174948470679809043244072202621503252785645533137116169883803253971848078783383824590247895435467520296319324783224473891970011771313590757864001009015723091706083608503887279171781084750438966350018575954931362908632774619056580149107539950440346245109122196961573466317509231838551356517237529400115062060270739343321167783119717488372743901054440332825027542179409804060455053387975483264463656913205390888225114686167700990514350856788337597169470701690685222103042141891362107704589131988666534539181810116604519066585825294285482681600847406568303849096483095220283491288121657823874337410787668274066550348152205027536426044880728130518582793763277897034828936660379864243475308069518660222535874316076313910678824368086019235830169570623914723566621272829338058240479649573368598446061974871391115125287485594722712188158244469350692594268251516704106785442925400213704854273606908742596566626353265326050428929468498028740940504177740807763116185359349662984794223935067925307756539141235414636751742580412136443249438967992428171655116592060250058555795173105861325184225464350035896501785314017076522705360528616323859765113241908802824232953384212152976894023840422795400104035100550981547922367776282442799463508779063663621667850256115858043039813404211429528620610431695323916690614179715379667323332319241436753809268921406023246565695815245722998875851297292943993548313849150367544687874610952105655542947968222512670944484965285713095550955473945056292572973953208678912487809757655225723715346739013800296137042835108408732830337165175428923758630470204241499098526235035710723586057844697927378294599390301771046087103881516099690283645793403479384885831939674055734168229626753710920858280007883915615851968667335603503154000772071860709295145893221972359036325354928364207776426988699133060608907995127095892071543034763299168994125876152475422233134219494527083754962144300651134297787715810508953593164508721206140755668490255037360013047013240600268436439257897951141289258012744139987566084216525391535465362326838120326462269870827953449159059251313338699701930728036179484634545780601204392731752763752633746000350035994569488614991478344614507646227494653237909625958165978146351124582132225609191215712156636940314580302266933617980337615890615893228151762257956417469731113371156429829402788662970169301509648360190228257239397157760577863226369305087327558846464709421892472678369894333664400509506306475076472552220147536663894245839971092570712634161418358139556425823458938012579021513623685996239176927038731222925864557687034488010605397279075564901018147530470703227454711423390658461259388187587226851085378192675989452063983383411932375893592463400026539116132668533643339783740122858149034868450266795204762560221104490191170754511393955006213962246658646948583942090292571701962771629341365595551364223530034137563589312370212340443848988229232857113735452873280070384946538657244431279617514618635712317421198563194663414323413288773912524579985286709311622192133665054294650612152327815839238878187003033454126996817421647903670944600841531533360840315304486137588696591894370157847516188323908523336341339141666541131789775179379562700772840259557731206268895578099032775692193565318766184001423372712716149192444710230329077573170340778086697324137440212796094039918358157299496884215835472084816891324857156939672609899051409294441134395673686837826128267374247590625303321341900359569780592179533426007564368118228820832235830793722868115958469923962625381546375609408701229223806548390689167976282084740672328009151175159482309546629705289865585981304751665115864775867683153962648801222546074050964291116411715059619916855228793666845754120272642164937904606630009432955699886443249504200454494278327259660591374610880890318664675280095460596835100102866930736551757983155853498317114963976074504357341048273876121365941485457741235569554377692220188686400316646021333595124543598246619220605859850864186743950562560429937193233476475065050763019387247599064721830384254861858154761067222507631106537868339122014912490623373002016267873907456709244725938425212666218158063503312994773063352642616658622670618970964275559291274976644677792445573318425735294842439050461033115416791737619947227961453303247865274600467939086006613872895801301283526998933622261746401218842833695817092285263819702473576316429051693844130639383693440292697714797878177863558103941843503955010749437127909759231693227685678186610773238608227060336268068886958923276842679663827094608916573210111536266080709007822344659275757749608879300714011638049399110834129462186292633687709227796733046459058696579338060939903697727800399998815323851083976185610219887488641937030353854867116970051567146132394313924860660383621562999323697346783608438183718244250383368959692101428835828798710733000627710871461640638314988997280733326483686873383103841908137038343937362166288467548246379824584187528060584006959740385347890204555836119505148216418785212616731621836329541790123533275539045631818056628463725957595094958284713159320662850857689323877738285591711328470341564983362341144540078026640274858037053078555228216093860894227544381487010197052171814764349828437244112144624140188250203842887733410854509548514558936012355823151428651306417872224557258818512240113560061055657241795710603113377909189498654799970290955076461453306604452059916412161311432919980351239096395731823272435599207926425305986493261042909419125944463969455470740537497021886251782235073007773768374362017629904440444575536097730624107184889980542130126501118548460252127084841848934687938142820371637118910384327067870371896688752609095651890929172842958327297129727649418127013089318432660192153678197753140625751765332452020422650306022408698179516242392707182315465420847624812691914983272575257104682368171977134753104956898694411301939155548017623989302680567939029869470261314419678680111600126163658580273631853723562996836534702509029090427072203507354437577765365927668149512951841978185436673590450407351848889826179100814913837813909712231269735556631860681648938404817167186162147687494358660144168781111932135328502151394032915711169777837545418175354988969079233960244811765315655758181045887104254403395737463428810119409864960442872232896314500582028928699948526415026405065651789158397862906447204477802621487084241207543483650883955036301695021368623016878991953539117408120242171501853338163754432596921812505354033204952722968604673062904167662532145529421386670580643859671880977905447224268217172203604671938928610783481936508481342771708654452818571198947787356986182144219262758402237392311931063338168837878202894944919542569634038333247061188986533950957892027147715379157750165134672011781670057975380430401040960013405571577033154492015164854496923516466402501413671314349154254843862376793089281607997329929743429401957287150289623095500104936221426101379050226588843562100951447316209596959359660899055320736789022820815640048856079482797814751412347011261443009968884596138150783081092886485021575316019403282727517917636912084741798971882869300245313253380582908022388580132934409413616980731284632145790155044005838978771567529910888358062635665207819175440119385729028236600224586475783664977472931426435904332146083877952738009070813942710246963993900500249581518901688083278757879022248179114322495382431669804065614410530542427771427157677291234815009883966573548242495811304672089099722042821865618774228320488651681617346595587564922409161738044098360282894832326679444095906536261262315199359304451394368510056026873494905531229596491524116276882330685067982407141754412145966855330681819148827591537312077471811500742295333788597467174564071671484067032918953560962598418359332493384403060984607938194199137240431742838443852150389374058194176901764516849008147153987932691176909627903927669128200757012664106032122168495723593668954731187959086799333497134553464990544678246240639280913007869844055345715446878369079203077809027018112118898550444320783329677555641171886070789547906060562940270994095819795775621899095114449000013835992599459939047488552090268765890145981234853584862973759812697232348277548322704656134790517129907105861849721138539336930951029786183213221135553740042369681104725863727708132944992315457430590032802502175148847323887017353950461234279286686832818406332697773363191988779175624517305709031908564432713332514678436970813203248461188790126515346950306809973261589173045992052912616032046873152166907475197990717327328630921228228329958926883703889053733488790811608893813151823855580650943821841583984865792518318800743336312119416349731443032572122991838956653531204656073791268466493888040704200114729429696200763385298469137707406687085810553006157432897799383144505704038033139245197941073030148573223460581697797600674080504212808438882982192993437888433332833099302657102669443492777410850629769368034995180452822723862224117120730787534167506714855450572869900622495113920357958344712977767322301660127754338241742149020797576784200126568772442270849753497335357436216599158942820149337947708567471191518355581533203067811851207111856841182704697081481225460450563830172813988076467061794239054018954301777015269110728226526438272193977400202050005993712621245278189384393825106824558172543573403280868862691561754194570754520276606857208540006976276658512767457629688370878996857515520414142940693514179742668281218501400019455145066145648634059031704971226473793775475644028074000884189803879442869175334601126154507237396848723447173268807396566656753157210060324820583355616386469057731353541821795181312942704306748000544983668520635604977327579681035034862828036566975054177751367776361599580697519180981895780502766804849669848719577262844054917669775671894992353280381152773063433746460659609836690008136551817025588458133035543126284055125106399009988007584781834520345559959130588221591487934143438692035508045720143549332514124443285666530615832040942647091541753268894008177662518783708669885794094629384224538133109562806716396561370909351579952145461466750495689072288275142723682526709339688540304391386586534145463610808612803163512454585573741860788838431536244576824725540542996081227104406113509911926477799110760011988644231730587594559126981600380358597591971340109801622072416854981016187068375601038266856851287172026367807030662685470670083936558824174792589548803344202363479985403980260858746232076913114158372665958923195307813051868208404784754409532589518427899980573041211175318488751934119468453451011451316789196054236179889809020372918923055971680824318947295105448065091408182286265441573682574737307309033598461100509492630856253043721566798875260057711065793719546732202519358464482699368252046511653202152665385644218673756228538771814880994087662411628982034053680126654854351678228066430939526640436188213359801621208464790306485639865216319916323022942240358856405739608105531974315411238875272500776136946346941086865547121037062833207610228116295739112486214384419810280345405609358587939518146770904127136249717240363056473008009156261641638152912401334610080676405788168029542065434956804767877883855350964896610023462803835601764780286920430025792657113595001964410994763347265629809051179586684757899751172009269519797537491583417177024154924290650101396816896907818550321492520313258445260265770574920418762345033325441555414136876529693037710298471153178271191421089639799910003091848338051248474633823112051071229583355884986592965985760026387775408770419395193299525604475431683081076155394653196506276437439833636798379153491633527551024369606297751500136619049224961351273183729364362694175552052195628881508951550712707127589341442852645472682608304875251752756766257007863953936209616269589053410793681405442978653518535164188861739871397664034446671160730513013295775271459210050794501038516978444758815191059272045510866324605494848419418072319297501682147209034513836617182768020018277180099600136232368775180341377018698270841301898050696723355471267113480562537076915875472775395210517442205669370050790131370109443530969685170622450943248837336279721489118871680220010046335261030949628813274780328754018230075492562212617665938109073038889722055464958685089423257044501734288534476419427698018362235973194081524925515730041239400063127656329072831478868788654695865376875719357240006347384990569555677353136820628715822431105053966294266631817783585611420520712524023655296016005675972732288949283038256089079120466295701110836432974584692827936964996712884700182932900780385075708899412684923364069695525397265829155075146007241278863610836190772525766648548338344891738698920703906627249838157597864380477382502505420929877783776260632823588937353351112854431267360208851873013825622532389167536329246061772255408872439980480162131180236352643944154147336367330506979734925071430404106176886563325460058681452770427538275452012069885866723644822516979873599404704543325344098560959889413157692692237786339734177302593127661000023779440062339405974802025896443988831894292880080386106644328927955402164520812606482120715171645779713787888547182729523830896623042343114800002863064496484987333598738335755989043340416288251627453229907985376935209640459739367490080272139442369383082962076675813863205044994383092022698408198797697131341495195900095047094538940878324248510412509730466696840575649473929209536767589177989533707616036474594550344518378182076037510027746024207057088056508237347087920602205138881030267589348543962783815768316860761861429711024511047086672914151870887964812012744885990490568265344049907912756479843443145105192981389658842892535404274383301991476786563463746195211527655912308509436086443163783996544981857329588117450106907449059924595516124029585423247189591292567580999416254983787930880076441352426707865643712141695246251944235966620005482588296180781237976109513518795614090077755306374786018705997641194373377702994077759568832590384003526388818081148718323628555321282617413969291111197661384805504865739000802624221229907491323086769272716332119166883387126464387604978046785434881029670151080287918229521519155155101635542079673736632055346160530033868827217863665338441430143116885203609942192842077554855442584890021445451843974969457531175441954915679089012752216941956465805398199786633084481110026232261264095810216839496073195246244296426659871074279055737137791630632387551759032092889319396189188615681552972886085656591309918386121589519256368235892921822044085671172409025703071585992867190792562820118902424012409968557833509140943707066044224862892745013631839670025869580214795678746609191461437010486238315951250144906774284494522241480942970472271682954651773694087199845482605989631438886366536714324742867031973520361043818057532998232464928011897789168339313974674717146006481887033146276251801961024832455380571763152986603940998756289015798388603845709673344652103525339150672040019757241666764593384747741934330363506107021032888659815457629312673011709291152493474873546770833857007463740300007921706248941633691025771870874761567830675290318002975957435581041142806552001807172799313344218314407367576642738367720834280220434773352802760206064177383735793939944490160637408521036299713341452403913220979622034729354604476868814293359421848052664318078331482618557164859209752865151134469634151282824813337715198351507203603130088024931213778727589735881090378493898179586364323613911349967525251737946748567390268687694675896504523060179869858418711717181433900339248577552672211152920574047201075066872746079826236813838329039797406919767468243619323844480748943299054301267632309100006094874048402134902683879133838200307183501707350756396454796812224742126825072196514727579373307098797717842065015786224310686877267313105674741000854865584246092061217451656956778479908273936380319901895939256942158590826155920147174472598792009049800660477448309724146918899187315740583175545613180292635228014766568677819447735591943768447125148845910747875425708386632272836854147665115415464403333324258289155210790007713683432392003439498764712436768425335098355380843084429704012002653750586263050324508006170395271238832520262192321030760650275541472945231102158258751033085684396870732442156684547892393866152506770987555677553250329242153757500041840994880282017011889620695195199559463680850378108169145018260854707421526199881026772560768408897162480521450668083664172649215452008613058077126835112345757592415401575219621849369684248540860482923142734487714406744403305285575853946910546878105185189077289688226179428126614747991518235757157931383427864113777135392004425344476114773422546546953867961864960631098928432593962857513121471869044065318382723533182624520089155355535417489465028516804888432599482151641420754828698525556061464390328265946074920767288470299931719800573315528206603482675363894033578576642378285554894414076009888912346490805204196189379599369119263407195530712677955465874577899125109560133307055879119259864352040782527514888838233287815241319858056144138913926105080084868760606449937057816005046756086035813501307567140590168705475424908471540673355151380545809550714089902905429633478517341898245768113984738962441447245277572742784996923846309424545881738690837322470325190679142347719474368896087119734638274033545717747646716436821999044038475225700194795395447376754243785138824515889980284400092457851593353979050500094735188430989081698611272392647251765476034725068896766888759814329105488837694968535785552574250657357739896963254238244546469874892587085430521378654694618677192053839447979568962195745267404983884535319391525376651529936076015976750440388725501985107174933663547256060144041111588311312501116671491678180046279292077827199642903428003708196611543344281024332084383258238601370714954448443598338430022037031617688029693745197575422259511874456441604517996354077067621168636239107414469136322418121675039706451210794242700377818101998394341339425533606126701042775607703775204465113443168653194708087644320633132804649793237620327127425920874578948226082972384384545503389808886196032192390839041302194712895236041263956327119256309838184164394551472042418933436549977406513564080523751169850611059788946250821673212503892990822593335053576817389638710432128262688531892711337576302603200685757332130202543612915142569009416220823043498917688855841834227869619009133025542343252017571355072459954367388454712758153297944101967855899682400734464454325301218051089839880272636071159100080280523111045207866388385316828748801989101015986153980243661771766833220724598322078412119374140183377459112965390013991164208361075738090289976174913386760635927650228522250669418283487694401566581239912690539001993861346456888998811989701678995832220306397454427277212258981162985678038409441012706641931847725924276997847258863545550335250120115365963652421515076484232308029666416196619149607273905566533737966376506326721070050367330859833778622902816334820306385459986212834885920305434408833797411937222561413415383625248866137530063536985459619883834782658930379027285042594010227872488925771226196329708680382431419270108749836772184990600593569244766860219456785928835492231312339829676452142665513152154891719552840424649624190057053926733776708027725208164329460300251627775026567091608825995895939253352127463105221688604714406481886449471792022954062617567267131202165742401317773611542083726430802444656699906948566052929292430812401086849087266629640320227443823416303050733866892434024271194869749641959426611561813955553067403341132482192523248186819893225256468373981368980607416633986152340425124180742252983305512408329577704267920758075220207850755639309170108181320199760061100658391463876141146682656153622346736405944878461991079177871279637447881248075932297634946984979156348661862563117344887546086914943185997053750049990736508495743297155207417456497822236331691007599767429861439167620273730243390172900064481474770914300465809333925302355757908021855638019888277922951618809629175163407684738611349025868407101351603193738089162715038006530114041051069297161769075776874102919570120751556144111071803092834627485941627277949245092748654697995448252985420055326552022288475701158643208872251842288664013964456396692322794733136778515531286137511754294979100654393873496276831850212552958100345610298071904929056168750457846747276635637650885427082681429009714970289602244698623243869948836222320620226942343668984347262435875143633859222344238950702693382675094021684783088786338189802488998356095199497135414557265475363112826438932024746002522522815212280977249312397470015994017801684027455183022552993287935773042098096460539254388373126147783807854052634894285813430637916456230332994300238252396655988842126334200942502112404860742269886896575827620917684606834563319851001496610051365947500531247400090932553662275564355500372700104819939956152105465777984214090060064184080672806752388696923544989523063675740800436514460497880900871978683994935026052567603535879618588216570905675989521259290569457503863470032222139603752531025758734234125178515794697735048627784656437409823462909912589550524466371398063678132068584933904199930986502852600117867576701986316447415489404799896695517186351338076324929711301152095904614499626495341635458572466116514442890139107875117864524471147399423751208243961191513145821282513038212219217731610046687110941361199093082141788722042610148768918922856388138458259893344108641203229000518650054353628307034393179436439056527140111411326031307292684939748806804195748640401423354889868440559274978243795627737163919609641456741133412048011281492941029997055630648520675158228563633252884389022986319027392915052201107295059847335502197777673777347927168008036664147518259748229090627171234258954832736676138143162073917352380193333214732398725914809511682271115430908321485658685895303846804509579514270952919011814203292775484660835788181519638436335613803572201190032955381029273836148806345586282177221426545211206292822652349497245550391121369386487586079708716943943996870036791490425826836335608502867073554101197870002598686668070045278953931231190116438264410732995335632788349945737906885540660660216831113346724042566987033400414197458743963928535169880879591736689699012814465720158176064097956517040893847528876830396747484732433861597226559449203599586286284002540331289001712435295844319147197864499921041403694258933581118027845620395513282258769796382990046034885308857916422303813048135585877511763868926223468792569516445027251874767437264107902382536233259534654667221923981357191564805113879843494724684466172115734386811830285182504429471106861251855025217811927105436318168479201099604425530408423007860121755302735378238894374302494298920861096570557013946670330120856646706910498642388380074711927102343516348417502193665573681379179085676917263600085171845113382808368878808654979349787536531328698452321759746839476698371880200431638871776207720589140712830723711352367827007310115956004176792023626278592709631173969403440934699227682965446590077428221447173071254912470057656500750733195452979323029226326536909117848708239505707834967722893952977064722345021416420446810742894491125947027172013852570569972512684427807026665186316375436909819100816002264061360633721302143815790620441770934149905623933968513104384292691380577987559013847555053857318160146181837888071999514064295571724647875181076813751078951089078984019926406246016462852064720214256961162487287679628502585417928907727986740335828435045173023208544041099995075044789578178679177024224838745937985259368721065427907518007537204557188922643322972506227093108220096974348181197253655831512140597325469220434786811343509316232142915282439231649299638414740957461353339187918564474392091664596278151177640080619820006864165870346949161734827715638832816671093564173879572040667455130499251912622887458638893087101761770089214789095725337221429802911898035889405632524780751369540405977534108530546419358931502196348360003077523151160732010930930781728376602415780951546400987437072014228682662429621484505512173022525501709967104154252680204487311208283867591245552618627517047716038205103232540253697795815431688580801436364424653063977275912346707677964691688324630227082836945172692040063262991465058275017822388072097080960950716341907273700722791860353729653248039511378353610789334676426731226676550196833813330912814003612736409561948413660157661266038328658265678441607806733235071931376231464577732276103494146899276535234958870570568453448836808992750815550248748842903068432879251785539105100876670930310928618827054134035253417707127231262029792082335750480907722847121330736781938080876480827931594715418919355377513271235773103726309563041018258485118368887800927891001623111995411756835798528921339651939009022695399648488619213857908089752422174217315591269702011160670138895209877079444620507370546883839899931207863263883397672846522083927733926184676309551022502008650127314222168985585744955129069217497542783034557117750854152270582618611583578059334794874760570876773478623261998881206282899326728739143718494955664390465758923743427694685581263211235757553021505450673031193218022187188544954327109149717161452044542162492203293295773717410992025517023068377771352409496544239417446300511244507487811888643943188406179357525507876442820300493273262131448387053513865492675818221292214537491516729328022821395603935817793788836258059200791706194020829156667722846332811672924328433634881625865701085075745872518093005363658254493750604662481232330531731131292589776231127429958197016270361276573335237571349796616490261265877406223759976236974091352436323405556938973171377973283096669374796452513670183853663365110880704699501005778271496688119720155882598684168272841857014225726333594653201405100644221433688935300678583505287461539029484816745594412445751008199535670818188782018514980751773054721470938754437279005403999499748012306548979988531731982141299017160942584172914642815169803786611947847815388113249909228006984074190585438398395701349626956637422832025212281581524299540925186890235806460922422039137619891093455724985828800266761475576333899513557736867187658912013550822210516619812575290066093680091668150467672521356299159558203740785815259696757419241196922074372032199638587402598334058250590746154685460636878404090856403161627352968324005372174643214952705707081004450636692334886205078169212109167514158904647412496586229210291730692056875542335813801245142171848880094566484955544278704010547581339169638901668639659650027674153980761764664862229280578484915978199996395024976595880858699937018257266071536721097670325438777996298526190601005023909429195186445898403670233486702184456207910223045945372061650681401980647024136656955709351694398281420466497124569658344059855012424795782956695824550029204408931300281799397023542022105712676380642831406054980674061094507754570671859056102987123128206225974363299134836012844808678642157898650619049741119895893139858995902397735507270216829425448208442354425634078159869858191645230235790657657791757563666076638937859532321746712934253539633150336893352193966266466072702483457374643713493359203243301020280435313225455260054822551691919207206621330404927411637199887588776561019113778518251811203194760796062160492222755198135387056753752956229200915999244935063372581346976043793596888225534202469064966180393362354745131611523085855908084452322739644489502627858478155475463959162674669683802868023249841227246737731214691439871904209423741236241985569383489816468719289456625318727526375051443157459516207568294210757827096688635281241266473464170838483731730236124548314609249881831038274077146312124185922172725409054838135047838731756427127523947910771142237155457177280605181887114095074269629276464972422103740527643934800964669977189781669120828698329493903536563792656010240455871106245474132054342970776349993851814797014048833194682086195569368666987308612757947994929477068298257531568881597693887202177487550224011569807395925076406461510331755134808082654456227236505489327097640517530548029955372569211806500044309042145963237291212536103098955888101329057140129207061399339232408258388848958693466571754799979141757936231287235872289455093066756395761593788708311091055866203592043962380256218394098389260849689507543012632352612383568853129994513972649144612113607786264018905337670163715240645828664390804730677965713904152210046168576717776601263612763362621868008551939943063158013854097546132571026303776162690424746959859942353014963794881584046887153407656843966640927274433268073082547278044147831680917166426893226243563698352732119230017064437482602666236498261847157456099967252086101479810678381749936487369498569216340662070058239616309153278316342941822021194688691707410399602947474608534530277170475320812907397969147398887366201704228385892498311037379662037867001954118079036318596231133188416382469395330667771278462233624390302648714769791294317202366002378447452340247891319525719630705537757441553203577131307059468212203628003411925242051260981221992439221005026724358218299653168665722149577788771818960545841804893368366583994256261891180927521476383641805596279615827924265578343508218179982366617307407562709597474909595554080457559112102163337228667028889245409196901005505808447866307477770451426023785422112084895822983335079896549648179922159991456592544044481394233670814821536080860238733671068629612160642244536628278448642281091615111459882537651111122893971322254616905551479601924935655656208798724181750407108943680678907407958996805115406560787633466102918483463151394524081478571380531068790970948938207771542546378216735325067183690960874102655947137297354348751963195370472470551145211795203051348966794588522187093635754458640808189568530054446033958792079047525160877292563244971630677149631162757899191086205055984099341104823724243245695637445698788964992171089909365264252807574364740726353934576125195369941794137531904920517294222993500398959419339408657058819490190834742197710422009351825713367727723746263121931791668684817858062741843972666167527023508128462397627940554828160457061858152845939172224801216473271807054943302207331879721742472873910016543778006122587730070001844467778283946409903706469376839310399170911748166910754885904115381918935049974687964369287486964960964974887116251939262359390147184763619072686597654977389257926465141991690451689879638331921781330007899042725248172050793607868552186945070203962996264620419928440813391226249000401045717471670300854657392561602615045431090771917172226313172928628857152956388050579521763394945189047348607240911990809416472918802605665681485928915625859053837298059057996058962886250607287223873974258721549976564350500405879998049329785117903204020856144268144234802712991830567121184645789818561860219488437793564481072210649559828431741187752907576923001702294335553589876021103344194496585746277748137496547845974170452210229461643685450359703665022466653146222774031025683540795781351866224484086317673354026215313006023226587206976838719923634628512009341737241108278050563728903083901627017724242251070399731612687083974340389596595977842728991085150439430303023630069841793223625907826323836091173032043383738193944449582413151288255445283848959614697397393193332822848635232906924379447913622679632264302430836466614031026186124953830627912065045234201668544112805998186801071360062703776242339669056679638263110831322609805790147275074337525283460705377046854447308384820716071010781654890456281022724039096712922873374608360535332018663323536820471909866787951567081154108793483197408066955578758280623428806997057263453118892101726243583957155511977008268632325959686601301349052807474280297954741079530455544999633564337476262577821278175635418209662208496915143867973823109283461993406732189663393017199480237354901532533342967560982323344703747282366908900083775537246742562493134841786408025295008356516289811708428552980815828432920824542007547944509058557000929888895364267836724605478935823038537819033589230953032840827273155305165379339814972831761753991936706875250533546219594438174904548984499985171493926152911801262416602823946297094662952984138943885622876781720194454841237190147711131733375369833240552770424768364941541479930545889331616795966074494455595621442488240657061185671976918622757429860278726342745455814207382778012716752447114989911566809422561059329489873686108018718030314095404489378629335762634703686713271501773247308204968897073031049106311586948764951070253390084738453685846969936463636922580008270264628538417132393245211885904826290903035584701790472997621936414448169091866601759600636949648434797010948842618911522034243166182664823910433472619775448672223130810202263142988732613800195881838914695676502374129591062655479104736689199501894451909332345723148397264003006709391950331795636187459914520182424269371335538775516429882761530730794740454105804956252865448512951805503499747780023939173481928061186468205074975173732271736884611752256599970858445128100362649224293465538909590338061094691784269263319194831967962433720291520078528264010311405869746023208902738037689023489933036448993106923874424489339276053271459881058725822449621479402248094921229792623259124860093089308696561113114817995349870969615222577138870018892146711336657515468449987060134518023360013455774191806411427746012383654892365147399669130116008173875751640682258428190590762547152697580821935710298715097891047307659363021970421457021863674788233939252446454496839897206919486274034980645647366286952919723432753503048761452304267472785026629339980605383213895613305211674922490362022671512580958067647966467172047653211791575850399251170934982714508173443451141142557591676234071439895229146706973810626433587275503843909868468127788424317190116423727170365875976519459750883228479029838349951465340405822893084707217964857011092474315848546016780493653122701211957556648490839914518422684784728606056967978435100453701751043622207876391232753481098345233942205888979338686754958853593222182722236229717384568411426197870784460926705499455822498887361570425515966977799617555427179207805303161905231013380549116237271764519341312232324236546741335228779016448714624802295706976711889338870743632591241841036471132689865165695925508021895195124425977829959406303119344686538668603616854577094092233934127578598445138904909656967280284168840823107336732863695145632048210623075281956372655981076304545488311092652822618170231693501906648085649093904801740165137456882843825531802083895610258425483837316008519349741125471698838764648675679138541595312650410961177100847890888256965721535882866980234397611437692756894713117694130580633960500857331899258534841903576960335037048664998966827304876500210931555662882321951764625565992640158154935231094203767122572401674155685559507559871225814439930422697855446653492570779430188492473210450935011931781530014545872361136634250522421271000989165272116971766831114048751543711609958141249683095423503636142603612892789116882467265964516426321244850075195425763754701731349213138341656770751504956700115728923756521203840003126707094656570520003006160299540548407756009791567438092766873598649188493383916918019843974517831743736239399080870609299873426254155060360927271711593494575490376973386748452010574433392788656683798439963057611431297739700249005934510475741753276569942600773745974062428927728890347856307357162202778125485358288869408651968632896522563370667717513918144270895802800467145301756629387191528905906758852384110225572965087604848874262171180070277426681908267695414814278908830087253929821981493633959875259889739964667342498674623267574890217608895705879892453411338811473960582258562810726100933876719813347869992797336343536395691833021347295017194155743056131273759760997764786698426596546504221799822281177972060136962324523847032081941861901344183340959255321460456749247697250640070799579571240914804627533532926539047870403551573043711741473073149460060200022885118342559323735988240859719864268177669035236129638867971283954809982769737164720576744383235693287564125084942312474288456140185537828921530812970714886025800961512828309748596788688509772612540642345041171664112328951632293933520947568149296565738956466668178272967213259184166625929092143066261491017299175134216363055343151674046148858070519470961788358252654022893802053482099600456253210967366768897957455133360648260659779831951730495181931121461400871584473948701678856573216758617935640652732273490479226710091177548735932957654548625503140606743001947983747944217379146877312287459616053277663202253950653030612860696245565572878744248572048740296602502869626512772126146488349576544311700406988780732419532377795967947296657919033298777923669981604370430403819044256205941734498555505617837387915872748320688038479350934963213584451684086164450754558710822905712247469939268955697384363574129494193186350541218099657207682504806802524779982048279179586824135307948730707571894111686819063296702253561408672674875979718860103299578164247041028484616679650094077697390911076076329087381384488255249521675294106948132381464055907736758373385701612186871557855574751701264403212606088707997747506109929464140100320756692833648883228049593845427781225447972187735227845675307887158668936133255310649886551843920493460019584995699106315241024535103620503754777574495233670082825599056018071088915426754338444896140797172259633344688792756267576854516913975758947767197346592484280608999045524100118564045849297213952182831250939685601253776112979538170227127446112585866180509845792841022103604308304563290565713895120226002268354679207712704927655529197836054699845804201888543812027418990124245654067133727798513600855474461080456066339401727587481310848671672203632532125829075771464897913628964942475273440064540377971946248657990120662974855074110196230187687897836264268899995355786823166761850769176367413445164611118352454603230580245075573011506905733670858868192115755393200637156813905012454110210761300926576731098313387355734868262906863244913498034566781379585714608439468694932056471824201583808925963804773225797622046878516091933105752426333710032936740198298693613989781559357117777977531072774475979418846496896077647732430815760592783514795005435957919685528098593936746931114644206830653590239333557797235227995954011067549097554919005162494814775716318029084976696134248819475310081734741311561100857274150503581076314575410167677190822807730189338033954415930480851910669364081921718708521155592396762977375899925615963119889409580908807240886665262151682005279676362701847539616212773849459714249828717812176259373442672713678318911335689884810408362583432007680362582783945327556036657669288656858599948742332103541335805975402993193222759186004698891440527391748677938096281148045709482974140495612099873515349034414841842066930068154891271576577282004450283279297210275328921466503229541685270464928964624340002132244205626239810568714598038549616771007457437342550264149701689077393869350296758974552892856142282230260935389502734878946286506907048204371352129104893886237836833551161127154660871324280079717116879125554067818048956865481487991699603817601514943537305285763304949999952639180381123445734223377034809032990436497313161267560371928554849224275300871596515327823518852233705617020562998498811785608118087663121743252762137398508467884004351717773055046572374789787806654712926174336829402253824272567461398709625663358473001441678317614523502052708635962008298233244189111039002014036896132048265125702126358045291839925251422988425136652461323006563683247381559046271988902377257704467710025112062488139501030356515986808072836107701757613153314758404261875618309732527949540575508947196091510965498588370598995882536592341671333631493948866317347971119785385146213054398586357469402495211569527163731133551284532233648558745280230901155104145045599578879150067644613476567219758932635720063561358706353377560864879943511331706238939615597868038749664432658328826428535960080580401058606715401076025102333821400715933121513045778838064306058481133061503618305158307063413161447909271487971109555057144551059943306417260833860008180326183768981382496354138664740854385798525417718461410411595247890523799796590737831390754381322283540906161902852691284967917603272120589890188508582003898234487493197698692947060107060079229480491057376397343007198372864028002173657568075975919146789843767702373547085542894672705571426826089249286638193294887264889030229832815666743480199942828620181103568628414405078607501377873574392298786106409155637755319504277822052698444018033657058290944916242761011538899215622809721228536342885957985989451042194438096392315779400928897757332730108023939276281390597372086113820864804139805460908275364075438164436807989394921508715605484486171952030760256830828101321403899285737930968287968149904444353863331841035938127236268645313038380788990744550992899252544577102694269816410211635080693589192195936476486183187757384918862867911185095797244718173486083124628583308812759343634945316663453792365707422650539560855446178515886555761591483095314750029991547066760766326393582316001316286501468528807377205694112934585881259638150519576749358787033789313708566928291187327488729030404897218281680099595754697153941507920683281433875342253108535948535300842443628992463634199130652993865129077285681872196989734829988877335731830208827491223308070982482078418638716471620598570576696220947884327905459661755199011042337923846187573651173961875493552572134932057336549695263555603632875641782789281203332297884844663483597432688597034019412533125328093652291570498215630122326640078908235685193425844986715547715326402910158838920219572818047337521945998300051249245876328617675336614755882700877859672288152804543072483496713952056167340069287747779663974867327991879890675964181180702919354449401910052729621855956087735886385477952053828685743986720627247263381961822533780322787874953963165079549945248679822487918391489869471235263364114826468248428100348008913181137431448624670944463730942915085921844268122362735444707967765444922818783680251575661974402280085750647559267686222954934282216461651312682398504315990285537062972628542245988542308592359024429988415608057733718238821618778661113857712875829989703663272459402313997967778040758009456962533247738442620653113737455843094097854907446531696103220900697799059425281147711273163234834358173132334716761014556670354750045751015796796361227141651497737140272747143627140013869587057679580595898017535244136836979678412013022474997128581278486067319119476619712211883128595456930671812333419968229818944093318670155246040105511246474807315595732100188836804845731993778168606784462487034051552945195639617357793363740947299012069718192512945519925376653333865071826117768632620642978865619312231487383812891003531112100120340077362755510032659166204885946935871646718604472250591565647242100680815958376098278378338683371111352141097174957264747286421039025371631579835370400037995886811759235394428752054271933021917723276194736680940870168777831063658577021844769440526647930579399149339496521376426063883792864476770026445810553726666899534528128031581176425929605945923086716633271714680541611872150052746177126049395240341242630533896340639916651613419862024049925290185500546693635620316759971174403087705621989666367633658719012875429881667020785055326790738931378947745993054036755008335041242525665794638583402241151168902413001257317533567896248440756850878312276561907234022280549338326431254236594245046327002400561480460738969635583654017777914251449260272530500615907107321649462207543960187886775136550733895247387924790251478310835567071705591465706350187645360339909299549645483638128453413853248587474189363284546029489306794165761784466780979851005552686339922457751223903324035130902452176826675007582378956233671863190039403134571237561804273106666655901686502354709932784409221949381557145398938391733150870121060498622811245149072589342928211286782251909768569013394339811570398953464963001933489271179256899349073519562240346448690270103256095241586791881023710184176229965570597417901180194683159054633741166570431916215659873586113566727933465972292777677884192923585395353862322500242047428682213262254249998404657083238787206200626925644691215219603214360442847626431913768626030125580145943823958901637397651308621774135781891822575000288274928580926539952652564218956363075493839042231488889417431058106420132671854584507111337683285431990133981381081620632401350838737176692613212285570271563038649783286706833660643801066666859685934639501483369274540127463824080279663786087428952321828684735742565698272811882715074771624605564556005856414662964269754385662559999664324551153429290152208837353394657165873912797371829699764167057236309670582047695652934211349867628915117289302693167438767191890614151549288452538745290407028224088990501617617624918107337298622392689437416019511672762754871332516749933662833470931967602369412224888281179717534460492729309851197471619008853129843433766824054478148224261817857024827130810907368509452157708265531254078293091547168257994214566261705261929237093473675934117951217571832525668859124403078252918852299777766489452438452825833648338798128055538721643653119105259845140844619608590882273575099334821233828005987346739963837499862478711180577233352248661610934818911586857381760996399399040306983619009164481888601606053952565105143724606837128087106126809480469642472778922059931504897399512755608463028950765198987852129554541393130737142851732486855645257739954314321027961232308044664737170107904824517405015201322232456268108272026950530420668476097473832309490204042624111602046746658671198914262909068138552076573721964179528390978682723665906363724827439093542755648667745239960579264804230407586159171848329697738649565771574521005933657348061624654691883110531037545370797083150175329288459801484273553579834654227337077419889504825775577788373592406120160555822514880313388810656558891632873536414051443229491026640821780581272034326194645706417326547632477782011505026340031281570362793941821666476158805119712122287695053241752238339807103661444492758664796521692970441589823246878400896795953435320930153202880258132772403192061558048258153611316952494824081945911585752000200284384796408694578400981830367008700163212602410565425798639163413784791243678501288762187076711465131031096785062906065220235720436269567476909068059874297368606467675553373393022361111806166305940747954435199003952317298221565483367836601934662468555000479890351772401737562594253122190402969766517900653320231791429934575925254143924140006716566481415282935826154031378176516964095100945710655855232362522742456335371283564492225671962261517137268701300620756795613013759587255453834730114941015180793794181700647556111043811019183947558443954007415326129749073737837431536901168210541557402862867704929850053430939043761596496317773470952802763922493935714615315188265843006457569951877279019153777732909150268430979897391169702949866327023371000550527815648898675828926136330663750726515466735921130141983134813086163372386223363671773068903049027793651977849507917931874727104873662454852397958019597450467454666672781243119773824687680316058642115269259311476968768029390400029450503085565816488573836283448156027435137585052602400400062754867763682505956414850974414093151348013628494208199906316606370065150056210069378263523417040937764327414272434621131221552830202780916468925038884798122417576566433897408777663875559226470460437115859146955912703743571199622854903854327400537909137884504403279036835922495742651620553721909634753851487124054208113271071923106942521616223588930500910954809060349117976228891315053943408502971551965929914170491094250955264020911124381132937580738252180094276953352953363098649608276427404469339602895127521544631251698633092121231318226924634932790272714815305632700171849403342732892231530238933400756958580524034690903193451404973229880702187804192052140165509118038222460737814041642255889071315298430960252012197840637284302776816378471075864461944679519748401025722701647178952969904414537177399990041347096863494779129537210040757646156242177065128724669022922523694545646605490108377531533816195587185212359712365118832100452933469497782695472339037064120012197683450344905523251241368443543336527456310559205803883350469587132191205175247633774416732479945464745083652063952998371513485158625877762960808244044766404824946609496070924583002844432204217477731949290514668997923190253361287955650131187947315417306691574393279124547011604033394684880516800196286110512027799664366837943346350417140145758331452701572964219485993946708216434990487711061634300860797741089777502995241572921169702850450854794776188663545696162806366314900580100818911777094323005937664783935950057138912722435069567318600837507051359427233184328985475710081035438940853076774226169692654962410670041557218972653000803315148987024675657152341596527640156568348547566635202751388685339390297860581762389417566263640802210486483172543728837180128235198910987901515432262958856615070528785345227344625141100399491941079062401246443052072926316533194798673973274127427925738416986770929761237690487586394289799782968720048353421458014569161879803791589348400795324101729379324849167642562410990493751029794731064090975908794955660608369631023882150122897125942952741299971979407724556407028865547310922424580200195842849952273393292598669635151293204369079349462202456531629115197865324432450845073376418366644691687014447415854512053353197085322522168987010133941202513676696594882925982798169537058782603388059344473608866762271765562968287627456158463510079393719680363489575236641094555509511853657412254678377654957732647839130284876397031823315568259822796465213843342600788443937732512780272439667210702259025104311509800755024636598822278439180366525540906781160053719054229316115804362906553924610989143474240479147460486672891035528247089104559473705208452987088875964529342072517191590979098561497840992666983195835256087628541406188813456263892737828292650828059895550270841801938595635677444620922632297048429286228052069993444548407487548861346175638126261684777581371979231290133259465007314353858708271586119896237193594664563490784191391211137903385816868823632807810576233813893810284447998391733064197416201564556357087251779520702237546282495869481817062583905176699694600508466902647628868409706376371445936926434796923450082065752023781047849239681965715028539158355535273916313703470155855013476071374266792471634894201208513578572060706955717168939979136132146448407938583803701868384510887851812550180744014954085784110110126203871041412491727659283029260416595934222493237447404160170053695094657782521905112672304773245999522559449939532073896354479568438331981570648446747329610001639653900895107843814330486202562921558819148945447619651007505108456066831659924858004628311444590339540192774330158255164170991254560406203361759322489236958929845470399892865491381665220376657092281724465637559496653417516169942922116064587112040188580959308189511514226859101534863086986686881362043297395363057215092714239371503893511442122239896273319181494137662470231024208818446345476593669644697294668009072723473291550909102366541525812141843039671484893587612178034845355410197239858835554224121078183864386056859835517805912266205353222581536931818645033708991734733575004991187137218347862404725533137039545331107392257595824065130186809310435147739454161969228964300896495310320707584057148126142260883755862516057111724052062285757146821974026971145522188678359820310937454035347613705458808689612174437735290884715918592480791487377317910846153801548468905185664574880870530871769996429175425501428840791746493817063561630739302900188564997166072927561564048494949475937838440698592352209054678291859212378419569306998657036263452549320380689753796754203303832832412880607767476004776480271645439622591248265107461651528677852279230950287839696804517300284506727358375972773396860842616199797702582352552592796585560830410230959492950655170275971081706373242771180059350382718640896235378656912799142355451537985047998289517384675056682962318078926607815929714751976432250793979379214372868777185092529274967041657728946203188596110891298605532338581003584635143017294646035359140784744840475393290458113453272834613865723646711840923040450506812383877239638946547907462077163346832053565683042460322807003460559742957859236735094988815215901005014799141821786786215618541575651981790064438533761736531697284640551261932577294399824543931770146865472344121559428761762036011917492165959703060672804057908658068481183633593339783221815738554535707568817588225715293790082070178787464143805633906528239331242271490649883752310784176994859631308075871984536130137464592728186848096496439201070415151982124764508513755080505292011282926678257099877393912238737048121981285676411767907055401251201739059995953622798150315695007310847971727865082823358142048203581191267378387106374324343706499090508447947216659467410704261614354053382869126353456366582778397410321988131796059792207604761968132701346282673260109794765793258427971935112799450553480174754927485109799542570901268400439072547727946797605078939981738781652274153771065778769055012768083894517532132136310662955193292881225796284453283244509937944654039875499388683411413558722456503398462222301619074021668666787902114089019179474795463151478200585960064599009906688351914710046891723930361222164034481190872736825528092993446495777449196532034847381415413622527746409918272520282386009182690999179027966320175937929574657724158818172641341806119573194831020032761469215078232501004077198661822065979080925241651080954148709405112036146435570562950287923632096350089853761213545125982516820155553938110551491573772601529141844144716512346037362385398113318564291904381607804008598575049233941613771507873219173953852569000972688333870374490906191032676397463451303897608703706341845288301440613585154736442350707931898580947046892998163119196310883514661924037242561298186288004230367988276988320758006059275113720717851781297820352343634451039324491787638816767913585535477649904512612772747252223928604759253535207884882519416900009381089967301685342816175766088725715850367275711378463137407740635186950355562348133904623821422454265451665913758707622538809185672364514181999209437954332063297005511423245790369846541451071255004774963601660844094762009644152885403280984695625948315636501330913528665622860430716460179702060424822300203533516031671982285002461482000941126146324583103688421015611438293600041437546801807941334925224948844725527287940059313031890804081931490023427846605830091656388810837024924017661026975031988261239254870637646561369300011720121166078678419625058523463390057065926564609121114447544461408653706111677440055895771504229695157769486226396312085642068258106655297327650567602036495231086453235042908168600164559964010462657435457779500657469859641076706514909958073704913739969861660713020209059234980074177750893930792253959426381039093688760389115845225920830052470936451490739462772071469918415903199781845309954338894509766723788710592363814124435234344076598021562946718864311191182774360472748356619973497871864406521340557740559921626000545487976198462604878118040625652440678619203923595717708212006500783510358191711663503671714813098911843419048732504174389091933753843257230425639306213972196289944924849634796155272138023489035398148383304738194758696858638250469534703234270969030777640931783681009377557643434407614523250577536078114002157120331462581313144772256205479418026412416554675597028998347460077498610612406212911403793012725482518441218523904191351422585769695720957921705582545076543370290805331171848192410562992992704833170708228661127273827103023472453452040617095725693768329173980208656938263913571657261905813196019878000763249120262606034070442952429334457459602256756757447005824616812265880437630942579869888768719780148779977053332350994976393853812495044599699861862809183762116092944205619693022978742730887484609190368613294632324060472523251713748663179789938488172802342754222786046554511893565243641619685283202258974357733632283731006008393115007139142145362388481636773677164880776683255638206049750413630288615615607079915618747312637211978590752840201845341573374011915473571640749125359223796855553184374235612111544509847843361600986494939791202559883066166719253552414931526239131493828949028295110736066678129879026421625024250001406245431951680899500937968138209681230356392729371034708079846432636118887990679087373525243955493588152750541385432935699311386645002220654315037184874532534194948625946817947525281711385970866106691744530205203692465614485142301379821741454331391227593801997709383351841802181168875039009680015245243742720269734080910703239723684126846349584389777283209045647216378034364723354443052950136700723126249986417999851996763620543093415131894190497276676075310574389989473841873761127070352565332811080174876297336275783386546089061616296115912733852918752852192308208265293278173050139225766944020080217958116874551636503647632375485389593676950601202830508976343631628390416125595930960076956010553605611140045658981726563743170888303482027442776155998704861348116550948905116528829845618312990678292487318086756675477131000997756531244059907460879487364523703160136164025893322269016964098838005936565189942894163249770636875122466220686503929743037085846598333339240993139878242292682174232469973846386350486425125949440034705825236378372498994860345666742690293611204158030534164911574025896856254288668453662699690165329491178431218636147785436371856261258314588636374882817954546927455422828265312608996847633415403746744166708665974465774858526822972768909386477620102085438131963656639317016524038709411248994588487132316724557760041752532742645776827635763557130541971609683630639889139345280451031465496683174645579797688082289773618163371301114403100085961204218170247476813461896682727253031608693062772240530437222321952401994825485798448157345698092649956127801350818176371163404081547007007117993681408466048181408709266094337103548054343501866308666497561781273134068796805282884346185580528178918546192683924782241119338689267631186617500492338954200356532308311634111530855111154920083073217580622195520428570602946123873320488798262818921371307914836699434788291051685708636322157650615940104142225584145049862238644534582341319124985523702628934726937918211110439881204030806309605887529113354570909493152608326458600229445386852019724599501122456929578313061231747344803922809792252700885657680162768308118167992847578927928832868975390915597922663092612997046545976318915294734229484537641290268461449322012918631022507957381586023592829632163498527579925613515399081913617549623142869896882435686171685744326242750306015165024836560078281362485230894886723725471615720960841321140461465731287161519517054196841347194445982030306614856174718543112853083829838620664247695074805961949270949793544827887719398254242334377865841824833416647205934252214064289712059773697565380194178876296439255945095081832748635536382276067009993819401809430791692063526236844538296453737351584770111229440492141745693275055479340832278950017459781622558902737162712911488102064972974327730431919631114315931867813057534040701172441980319357353609487123623483373460936563528536902450273037479687579126680291297466747668448736823743974690517008386721703950385205042757759228854033933616042988061457202794682530769633196615689528000613478139332663989588452352643456958286733651112703819631595885892212917191436870328413657056214263564088229054002688957617799204053522261817161603620624288518113143359859413141018879673066931404151674354011522373088468084983522514706586518675682251536687810174402811518699249202203589621653086412422293301202738349905431944178284187202017908567486383155114536388411964915850004048762482783226419771403812589042780473495036834783759286775798162502181307709633999185131597609163780768476533722681466725661745574104697779150630556089628456404177040586516653981151101825939384389315743942630662511798302640989183788409964816226125325944789279111644023552590975744976568411912261224727620681731948151769646958319037744439429974234933937512749147831999066310470205315094499447185734070405484053143694074399258938186765173914549192231984063807854259171684751533467765534535133232111423501595231088876565841912296678304103909083504209706216558682416567714388090443659596232004434704322207833532964561598694803420107326687343162509220746383278024726103966854234644548365992602748476019873654553061801556172410007539065488276405774908690576960947779013270599812148107808406807854956780271019147829419213775247931212331544205090139089426121898246129843739494628494039069596076620659310228228479466896857457249604113678165154712521449399567180146672800010807476892423949674572457723156834761146148853221048925632353965739999310989391854661570010937358631154130543460892161882060096824902980886752652791911056724154316480784828381511474595167259144832456364472010555120074627417488099291596024513890124623590694021103775482076834652712741269826468763544568666299416184583336960567136060912696618777583321268407518624432365012924084442044904652866238266153209346726610474826679829388011754749881037027901532512637205316491043838388759645713635032286327787641013723247763559300172051624151588545364411784221943286160254757709620677904423351060275918228303839695303190824172051294000515678820573993484169313842863912904090227974879074583867134474049048889261731513769462604025768529649143494448597377318158517884241804609801758059005079357423151605204108436313475873721859365833063964808967236980815618990320206837260161344311941942624245571184005582791747804958280787307741434351236834049145450264512704389425274636422618076324557206157460494055553826448852121366867372119238207893142421303343053404659829747472335609359273359262138782728971033420981137827101964886907383962602597326051307739694192539953198845784859827717185761128559274274194107531726664351635687583219713198876882721292639777658901494872561926621536762600970323426927267592881754192349591560108018278490236698347399851427666056079055588775809517123460561190383593076553151224230647761564849477427468273702874433309372188046433169058213738510728268968378857440615000732667937482719063650769570671831443176104002266857471631813426458165055992633848134762455820960337853237698542515552434492119244128164197982591805066795813867899776842477717022169427990971776575588085913612863543584638513647811462115990371999225491542421198103538097028603600520608230337585445796494860372176803288279381248109333927731130659687865379034152462095701449636544252896252120989774810837877001216845167667787217958436965332207747794982258480792131310568576027683349171381670582111820461672955179656375702406141749296915882334705920407260329093716897011930950766990539310210516631967292640024301144935087730001552417182320678449874929485956904751538344982340292361354168705073577254627334408878805528849395738710179122092003087850178026116924408648554284522235671297944151984552343338071129754747298783220002834809153510952154483945283951012190825021594635120064627962792825296352082586822806609701426935434030876354747176511710478443073544496804405329730100165314208592616202625088623900635602085676625336397169492299872796793388529091788279215554302488445606655545783978241822354354890735600064447358359624377827747879715750428901954076148565544277809801176031110188416295275932597912239627967543486985764422245214372927668773578741315774964115843931831902983565551270008752878624809551559928472082100842146129804963300547832251652400578793232369386398019277491811355786435790355213365778261214735902877194243389868253216844805938695421661669738278115931220206950628395070925002545050063935028081645586793925489043043266243591567689373095538906745429576389797727469560305209608403023281759194288697551059428174643249323440571646577033248108769462775728280018125821098475540551775645943185039862530782845894440375884446867490696912975741042906938307635251045005699144439499643193379133368238553993732829463843528851090865036171073951031828710254919543634424458392989675675865412263519434699319106283009409234479890709476754574949902772481809007383510028150946252589148359328529959880023943953924742498327860921654595135444103850526979078325842843283754112660720804939231829520832109868263483058770035302525157077583598639012890216582101188986381150177305073488017125748857965198913146385139342520810118126099327266757180800027169741393894782225381308785085657215885363939822200820990426467072508402379545880112180671818300522136138451714806231669040679155012190599312601456458466472547610305260172146137159447679410476025643822557951194378074433842029373283544921216158591673743625464587592218928834865325153369743581257158723260879506886921454655486410636337776945473761771093228896916443502818454828622709088251697599857702313933824129115640490207676464156412401414320091113762912296298829210302652925529680982152188039886983865184190223228956282501386649082602727648023485186547840727723926847413607980112302997438346735916283871143590487656026954041942990897937925177511004666487637077761870207430999080013225602614149506532676249726915800629749440119433181153043991647940318322284624814813572315781939493275144918066502820743053533935524729216706265277591571840974095200038243787824976725085714854225947518578776751960991183821551537819945012728284022429743839040867862427970748072705175547116870860593862215772734233092864593270199413260542469301460089674097490038121710702171590869312046750336706048092482094997040810251506415050035296935307475941606259229281850847712815831552412456673706471575045404031474466498124609437195835264003300574799147384108701482593562900777031401872259878403133049566455714051349390776108255822283368791074523197750467515592800046006930260647614549708178135569720367062804245521840454112354426029919729804490937839452241958729507876838494016417678659781537134612927008587938656339922358861057072855552987135304228420479987049097089594829975533478955359010330497582191299820258788021523942773323493199582886856643138951172904068563595882288178188388113024407935748730569979458349767246577366511191314220457237560454991438981511717794317985024827311578117537996877569286486711899893321954505791784880996686450178511186989949341571374026219717595939887550895140379744078632796066421954018941683916254088920841768688223783724899608576936744638930346893653537028183299983361377174070569794856175732298770185673520293663688419364930738720894796874061164640249072983943734274764404610992175661917038943532231779678412803850961331653993797211019328147145833507614822646147494963992912188521196640910045598111625156183655192928359721863352208378489454449618674281125661242962102567081831147383904355692069493668670480903092891490713213070057682932950304568346089288929138491104258060800144017324151945023702037554270588003316231879171515357705157054141216095482189498733245932071844646897991730586064073172019645463383948718741235163349919925891714792976995557990866973226752874654330704434959494313039011949950523353801546521274340790610346328369353924869234701423011788014265402869757428920500600440702205868195458842063538327326375795778440541156960760378233660807449551228040099781877058932150058704259368369211818201920715622327963783979059345425061399543850182277982079651082149039753230384460194419283811161461752726503203936578558827939909794312701503967508528692128283321138981430371769614786432814674676146354435507750835913712544314384648026337658583711533951059827610416082388437438430987259798504547964033451072025346396384752029270265977258589302549640923809055070887879997944243806285889303483446947635315585829995690676857815086905001968698652709686435745245448326909191341581076767863775782081281231741371131103877988481833684899800199342499151613898358340613768143006294084203230187775366029902285316626760523762778858223377951679505205220374142289977325873150890310597460716304483457215241565368127595340282530421593941369930104042785185447546058570081596642389819137637597287699343519203006726196387900539144676154788031178841610779734623498000065442852452206682894728868115243984568265549859026049622376152326416662465340466967284952075479680801751871661399605522367444167299509375642931979365038450630636806213961820601290844361248510981916770682558487118645779664219866665920873103317636509970644478865141804169209658315522327439010970297701425291038137333751909506300434194587115217581021289788145918424059771339721278513533481826510414586248190386979164837415101593629416283913609883062783889756931548180157106559740752932948934945956614488553603233622264201214746638269660239298575905205728180415564945494059021636607472419118820024391027617226579241009699513570193947813685624887176974698414718251394253839686286575787436428986284941267060393503176350286124265907663310417704082291384644917274816529703609491309545459000541210536714803115322513246310250263021690556894127905170703842433848280371593233003872410541243701888231366042208659349900245847031715645381795951579166653383406052826686994041376633560438218478599487071681893225614705172645678223865149406673945992106428128439500094189564813633064006649092439709725281210855049182169609350485939897756244611509090533083781940270668446065728559489251667549687591463067043058868189173818908801604405666923458695634766860133717874099557789659157279662594255347995641596250930933659592383974847782821897657965711383086899917515727275054992326338164756520912497813800158471683741086560943617700331048602219362962976222943571273949994021924883102714293335809433334651095815718828089354378372599925936853978858351069687190682208670790835502058300927739415840646157001729840819241427422454605437924179282290965117042589406039919134023649043093184284438035838309903863657817438114812284250196372615926220544030332199961010085072275293806284326066003681642627672963930634056555308425593222984879648361994716735867735035760247305486392660360125341860698152135261611657102846612834340271417584135663831938057190168933880729652949961161714850802759555895361623304033932020407730157918988427593348353180397611822227075417847135476381277662731214256359592379717100958225887534736809206050718630919897312616725770809129564055992551087823139647896033241896552314538561317778731907343162833886560358987287144757173082049552885218213120421669719313891900215849945744400590071871397067422534904362885862758748505798238872366278354873671840910427718049958226353214787315569016247416007750312775662066399948307304691459620631703219612448380849727486853048884991288835524336502323121014194709609177571638109108367693536257258190641238572471759153110260394455035827526388660325335479733087349404278368354891917163721970686363532837844469610475098402395678931188303508587639495280729793459691645527096633723986854760884523025665726508324400209837726314489085614336920110162464234824721173821303300185715130927753534912032893246798477768199318027836797855275533492986442301449888404996900945506119200985874216401081734592965967594923687596724633510652817716274338694936312110323842426309470017945924354509729016854154519837497709458978642663643863258227124395707376853039235484531515623757264128251043644012965378242320919631048643772041583990629065937526992238881738215295365314079779335127948169715082696198147970731272594569152875799691933421375933044922729280766881542058941854416904754406542090647276566076797727167739633791386040128724773108709649328585534972129462361932411706418376659678486565651318214172254642122541490373339485872760284560875272278316036627596816303841540161319795495924426253791739494993776059590991169330378079942329681889069725092463066224663369871362660783410429920998699193907209669730062409164547810133758284813814417499848447548308470139478793222244670600435260076744271400223710777370577160362402311599899005809041237582291846415543336193711110309256735727504905564087335767695809311642608011041349395832298857206282843937496652958373787830001816687702069116596312985797815595715755404623807274254564499138893724425058211864582366953554851608743263093186550505878278041914729783199997484517311953781281230968777456111749828855832365840689802023517377796007762520556678553601586782808721966316520373576923734928480161239098389182187004152349163469065060916594400318642602641974263022654315865432174526172169491599478102361513400205729380536392360660612233405452092769098924384601730407341648575292746925022707980976435655107221987930752678123173528284103368479628151572580335256245973389036835182753618721343220024376886832469436607952318314403014717865634874758906302159167825087972965195675961372964453729955083072843968123030766155411395518799258278915647724162446004936265093901593440287135856434141943601339059331153740516579821994201496833892963891648016009299091236695260997171563525756094912480076080763028814674628766356889039775604053457977679326494027687973868953187988216089662168699636530869710651802114988982402574037745519164286953469674207333601622024534985371132248055217407065635420540050651725862031843526069067095057465876663010203342083001498081482375248506107854402682236657293983127619426159288715968509242485000743413231028154793226617030695274595654385243254401537703639822941483524546344144105213118018126241186609605105728965357517326784612853660299961540257468939723359949391882912003038555109305238617157649383298476812512942182899067369987251888391128129520549444867627813194734333834621316186101807101606450373595212706532250860780049777515984723191481491852686685220102498070038572005635523340789040023111573138902956103568499772962333878657028476021480767861718020960016547785094980685473808357947188452986172079057477271673676384180832599842934527215858395231782955452765843529672877256973476484215393439281831697935114136103559088342133896393078359435666809777910332769381897555823019934742878197003688682332461588329391643524331498385703600761397431833611824091626543529580045083424886893504056738903122003967180552836816645360359584704836593718674174745203567173516264008595949811320574279629571160783766258760119994423738405156389472239065095207064668464168425320156570621669665921820704233486610373202549720443132207644355334324802667618476870208729466800062950381726505229730204160648202741910830341418351318849554675974371676819754369193454404968838304421532622518759327195122286059195203371266804996646494675978424647800139113025605356907437496285800737730489590330804567666393480679305420489807209109059082696253623516447988308111243131397003109868128815254642407341142240561476407096880894954868109806400646669951729219305533960072306210027860567089978476608155840537280822931055023776583593714089783853134324849604414786477034168074795298111472900585999306714581029077026664040458331196038309068006522163992719958621296561879040148288276831280174682429806446284592599022383857122946000159070253301379964307875905021092294935234131029351954670608497078442854170879917262953838511745665738787753704526582622069097834570111938758972789651652100433981668551695462176308303812571747689992053071075706717576776890494869479159335966878151878897944676386365580154079536354352459384012769289663069253878887361279578624073534116304938274612633605777107308574194256709238902364754488910166027626813106562024201008761425627238695719291455321375705522346752888972141154928170919918837333321777540034958738394618577303821559046914430174816343527005147447032437495285667638127963360726188517287616770910286249050060389562257025349479210045289630004795736917781484120735275472307741810200805460484891252475298095646330625094313889455332913254058068412930316771722926011448155054669158147715700033171849416007409387891662308965744469751532643926365070057027311940960804005016739812985606472793913073460250276878741654806408811812064256445218221212408394801964222269765211048104482165391239527986543384022565012059234470994041480619943613462141766789228385225650038811371489689945495854466065482686114159349939898574860709789557652300147598777668432432169234358767330433244766593754968714392951319858290513337552035499714427451189900829772725042434908924186675828391068263328605013361891298037575492075523077936583350882204837139701264199460372408862171844032810299813399405872001087228037963228997561481664109813432536954810827518993323291602952134477368967846403914142750751120258060072842138987506367909031394259538629056346986230645968715663877961641935979882547953180803733661427122694810375674993636642654065137087565842086674302632867928616466655139832746247926655912129352811820734579895326096541226399813073950512441232311229857006248613342760522370896400379085062437841803771548670421208925191506210824954493051842535465901641882926276215321593707886585363886014781923636125179387421099018916574239179624411446233560904367900542917139166964294229431109540386465875031512494255876028027573794750583676456891169808578957355841154388043519428894340477119426546784428384863688406073200769115460530435212377560787237381963690083527951538091510535742142845579887969159559624249880218441616946236370012654676821598754445633401111626242082058058168109930216752739466018229206094769584634831191937667070702370627085237249160462671629682551497214398453335375662028821393937481877164344252386481874420793346210358769905187493135391796738423708875957435729579007029994822117177718714854579757494615743474271281206380923044805954925844188753304787590897409461067104690315998093323944818964979213432154881090026404953738608066077755217941055750823770552500226823328874006539115536019540874389660942636868132253713995159199930032046697652162236236136843107437087740202925776907212812744270603388234633035473661146985255761907268664881682247145509256185547643912305402987805920172366997264470402111910047635336694167551077072622845256438285153018151295191323082528159842668401798015912368209891394682426221687049151547296050439313996284572006894090137442617749782992304554865350362707316196210541028250409809864068612039900626539812975430995806026576760247905350699153581717800936023491914093758616214898375203891163986950810932777542042261379886078324430994409709668452314816758488098024709278978814406018194916011632779001370630255312642996273249631842599506160078323346994693889755689886955140321803782042983440619500798144395902888922767144286135808262211627211324230048524426207290051256516069623176234192156129651753410466330952816924112502708894872490039181279551133958018310392723815229539554557181778946066590081990877669053626538610235947280647891145695667386174888262361209335743917442265566603251991224309477909402402022170118994764422818769795904532493252911761479648971331441915122468206295586818625537860023050906226948723327454976081030578396574395933888365291825097671362195650838652720268914514365279871755706254050630389231112282903172522655150921849368759595218611650712500104452007592683703877267162401876769220529827279952586942029882308670094453078279782646663571820584320727760595241781627666834967233826081935098501362018638581759537075277009013679750699675845546487921569493517849596372167715087082891803629861086454592360363518565528170479159332094746874466963810890694935349493078111115014473716382935990226243741699061585754027024840300462989487967005953553439772423105970087036882851823483814200014370150271432409539406496654983069808080389287425664114132015671676773829756399084622773728945263457057799597168640897156957855960700507845973972868444762314129777711124631703696538331414000700557447387413205779677171408816429340607900626506976849214516371684994061162322890318876678931068749350900497740827826339363029155005782035767586448362699053571106291202203565936662514581251730864048185594403922937162632821107920201430188975851244628731594139767169116560052191579372140308463804207222561381474434000040314548638016868016879649296893692486513274752151749764843411120799471665764052318988976269010690142277352573284959981810807471453734355085852383437135302341849958801722995502486441472893300937533315440199821600563067087443195997336935448675073417912272157827520701472556180704780236960635122791494502351924727647977553498711274712068321039181123294252393109997016432235086872348571309186448583081279363250297800941015997185354950075246586466032620741169716249060732329359937933202947772050404084273592815676913753311450623140037622799578843865940002093011487693434184133940932990359135385988165702207581723135055086218241294218142292488096426054048966461949815538171809575335727179877576359194214474038273753774662175325386499196684343482889860297606680392917845284298763941242433464899129633071718650595040760354965379394022609301864383367711880115264321484734069911395380464117311083682750562631379539793348505308649993276561195626666597814095555699280078427547419002570488509450381509644011671156412186379216611230339656473541144137913880964827038660482524888177065297192758733099245684372398723318399484432652087805924732333037822126512508654023867404053048596154483527641002896923609918290356142885792131194519357042421904722678219710669632423376559176026016718919690349093468132462249003801405680894288529182946689914543395565709924121672423480722870914439820032062498455340375867047742242027128254026239515065863437956171869268984581822639383571922071773795284236579283204030488280285372714804864022359805275618485956658130095562274892580488503984695749443398021658656302306337234729246352095190921893020284476924870964131835870373731372880244731079234202032544284936211511231000801694344242449626126697928796906721780139069489057450448401673917557854452685867715411753222516710904193467463719991632536146091717501034583973614132904865067754986948041101903784701083496587794564751386403920962011597520377856067978864580087742642356383474677055531267291492608392022936509940973772095410046331951058385482310033899053570436632091439449017545120719431621922786384044739486765485135568003094344141493252588532081954648495253779572728436952593362141406815623656474030837949156915709377419264952432971867437153874468318454251834089419474143597153493209185222047362312464587343196772255788228945646115099861638085694529306134747891254592719840273187945686031137913843156244863489626553157575785197033901673560652065956611031362697976847350350337015388113184736256630768969365890481772104383350232369046464606562246817049564425033624308916420488808040819235796016980369886166530976158951697517762856459571736735784503319234137681135044328213752112610957548529784770770768782541568444031876999735004851475139845373163845595627437260090914928220974130396579260745925760608701203546989318838521706553908782151267421858716881632101073514202410389015006019778225995267959352799505054317814952687497525886080034190956928119372378134053470991258746000202327622792055005728107675095565366242070158228835678092658648480165210829811440596516548056878261010399369770035347271404791747114390424094434103098693069584530656087997415354265434004137792938287642257172662651951289059691810741124822295054170476383354644966740299477000878179595868287760276382712707035124948499451959609961523156084782765816140687694301488987933776404322956277641196425137698215215526742124700642358405629512075174023662417651424820548918555604888798232820035120948773573921430012359231149758987582751548977847320203077024683591421634714702046267114043305352682909436870206132893573077625312444176902248120169264081714850876541621990622439928509624067250504121899776304725517467344964093772837239288507751933348830169538406104424605186395074181340425045523558007708008988044057931767982689654095384266393554830960845419548209000464192316566226507120096679947722232645843814828862746322328770515581855664389331720544698329123657447396788174397779008084632260973525275666813770112741492476011597296961031083498280412139718154303810241308762660460051924647729596543196291713155482742797929024699328684012839364294403093367376385103941416217160893226211476025061888365513539893098639541861714988001613637817959498590890067613537908918662998735053401240683631315184186140909959538055446469754932606634867467981955557902930125768871440208765233027288567706407725636387354050784409202439358997950267005150049180515978010931549732623724285699188070949679400250381241026554266753284581652200374677698469754900738715903736691684711592603033545191837157700635462352081813910179789683821006577503750598395156681307363519159809092419078430592964892803818194500930243550432750482623669205788773920536300562020382410026136389882892037269618806627518990646371651022026604555064548784330820217294261076947030720774340024425690929085871066329889888276191464423813316728032482840697323114423389920070588159455270405689922061212949724737005526558638186783493926030930146934720232532703806487139403712239525228995287899045017741827984855930159702098473729264548489636451767543786904999537054392327937882819938885368318086928042526061941172519849459261848318822027542173089781631970758461844591415249409664424911374235586293400523932756673625787960673621884014871079325776904571437067041694691370127967716655545041079446758695191722705883101187233416843275231317857108585788147016470562561826571325767110377174024507657878424685661660449802570404678192567418010363114943209868906759261952628227721332451364713200163569942254763419069522719171597232296213607511169844730682990429948188197664559983402216119283948257553032924264807144914816329963110405564022821421216599120563009767383801051007308249495920744387504910515418979146043153574575756256113974117423949955718410577228554601629217912821037430823215360486510495441609495539075309500159966725145108379847329994739535354913972051275288126286106114559551345304849495032239709379014697564329418177608658396919214969279604526044807423768582445032095476697177231226855960725205812526847505566676044766900702826014133355808131997459258642216357964087428820811146952446372448591587004494049309154758760470011933135379868619610096936328324503738982463264125047453693910874558966833655611666894392677996216444459412750661617144597550170496740458827438526068106153146093541712978551872969402683335028459998441292453118679715796417019997628099321976228299466010071943401636155089151722879925702354502342171698234106255451184515303640663791970582893214942531367623286197733198499488250892308810149223326420337828946880574628290435215993357008806238821858631266262856920284457743956324475871884013567828335026019091859265471014464471114320695438248687331053682580008636999233743859210066541108446070876464583359218068426544934759472391043349046927136998338138988815620632462973426973636173666614181558110066129925815607785695206038065336788294539486054631144322029665760178980594878538882142931658427573423936953432417676976094003977219924586516783010054718990792103392268814846204336655128331957273128336900286268197511767358885176895383667341919305392204215277243435213885479516368914662287627710702226500824539982456395065760742709428250437245774133856589243982865779806979016790575262330768538778406514586303698622711892066940423081490787826556784573234085471961422178947873189712301173086831369149348972866435831230193647524014434786743255605511508893409885612355028353062154447826343211200389288929993398801007988773727272018463823692023099859870902115702808590736728498536548322094614731389181556917576420881590879674100963113375149984449840213379164006207202006897497520263920990285262244003410830016179768603063277956505129002659153725776268067157129445493751430033665346413146300509479503435209266925691803120046617093259945933789263304026600566195894653442855000482164424021713177422328094538779537872806996091870924281507273026620656135249882842568825547376243566290758658386026506048635563511609397438313749571276921127905704076373291798121075959786261534339468235795088477836910485893429358612867968823467246408213600989199592235515703366239354362594450348248274482755186748580820806298611668218328879178278791272701665872146391908044010034544529096464324994996847629545164944831922233749997119166732060879301683883387271148895239670918030501153516715473805329036337127471511754615982135357727231200493009542471408573533579623269764951908738394231121688699761053230054833803084781486131474525579903200442233031613699251843393350264905150586131458802296634058412670912309327481981172955672749528457504541986712705090792791259212007492895723444703562854681495757226186903202223312745877945558108310402308145449819827590448055591135403224480026644718154100694656786134937878197147663106046358567700799716850510649704811022795353427776525621599054658254230543781959614397227573618026246451887652767747284649832209720583638617412563362476532131260443833503405072697688473298370537568351672256787981462843947791553370475833358351595771550905104703541848557548638119990969597945085739981689147591191685002516145446911331152399794774664501240549151098147843330370771052323764806542423356034763450236529765463921907932703326881582568639425776684943356956342385757599174476617041467589711078828391486028703020917003600640022402367063059839470194521504354053483634500075502014816447871989394925346164450709944763361160750255239435404183178549323773651489185642600859534958052994418547870462051297968705279873887371911980712795469236600007048846626717474906622258545119481245903768257438174278003018247615378007653461072504114090455993322477600573612942839890614151841304317561275611819374537633781087515982857301634330710259293420910015677280479105354744328863312329659537006595995802373023173933668855980526350647317837233420530116909715367561818057035295767084157674937014430795442698781256565641627376752483574046503791157398626924671329309941998573530671099700344443952449123468849442717665183517347681615437549629064500305048133375317718094552076810347331041689681902849858130810498314562912130729563559702383972073732728116443215627382860863243808966547247817247187481382338303721664974241896202940003817234787583166732407065320409478186167793754516129470603057720026890020369508071588197520230963194332012699095577845724247400136622159476963731038808084630211305567990311975602944997793924259562114181527599730262149241436614234395111540258783917198982002715520674893708224421543190023105677645097356533894078909037892131079717983883515737996502377913731363469890231408778669307373348872363451434945205050140603958221378767681906048613324459840835064772017737773121895668766185131073043114458861674452987609692456639908844963943127195337022361039389435613926020820943331521618921429529180845573555481240616292559554081737468656270385828515165756729002346458704168847278092453807022584957550878195077541066946213260861671644278889395895681613577810428260460070042950150221968697986085056344536140764655462916238703902322282015561517997274235574565986003508059528527681586738984608301218899772279910634024211351133892786170416772698975745887965344294887067095297665834394783944586968336609021820247992226327275208584915513057158045805648718719338836233519556167815506647263903967587481273891513114100206877623264306375622756787896288382044897331892053552363178187442105950903116271984666816365600107128772424061753515938290067432017402774268422266582849847339035555127005779042948724722849165197069048256974751864058441767941280842647871791618099302454431209217225698846217626119961336914759050034982193223882836298420933155322959894610713305505820369778258632489014828468918988915696962467171164720415965329643580720231637263099374114624343532250241608617292124918305572909811077195740775266791464168454603397018097955827539946552289888246513102003117977603211841834233643067804944445354825457770315999345273421066936785993384871652374516907043415590944533102977790248621906182760208444611812487783964272682086635719929262985144132987262059874359070168199332896219282450460931824110424294756200550526380577211444051238334296049200707058187889913016818889238443437198528608652794893866672002912265793375717205165628843099708985259995554584686047332447520396722303090562842372428415303354107975615117104166636331527381500912366214134944992095467594563096961676067696207455137459308910755032462357621484227052179542253050994679793194439231583093334880243189049638073428275886896259545978273030448046915023274472499986295354749175239798732007897787378587159601277791976486597401376557791278503300599616402930745532195887846829921592361666701945353128431949739230963786095592136356399844531386794723789077635192822308525449817023096555478115778498613302098870900775649557167415424067725913207659062214966646213723924233241227117574650044346403199064976537901404490994135615741056817600186430645201057740160477097500450560799026295091541921362677503521808644985412419230172496310197061832779965420239319914584974802463456782766933704039694942596199171615691877705935111587047514544403069695008337819818467572038437458446023722655285924833330836090751809361930388929863222895928498061135096338231851398876370200789376495300905961566714465317768467366516403731603376543905448212087516331357394358490661728372722967859273830825516064920249690944982402691119138235413815693317751991780169764940720241986655450181043203052047309671047940117807298579769007122377915043181146248403122085044244832157472746609984621163389981714250244877582382048307692692736565278191251570252802070008321689762865854361486515197572761343774259436939491793750776535247739516250552141606052621739887652536127128128108670898403674346546276349451641330618720350716912305830860560023937101029660229217634300572104679289756004076838569419609161235150509287677516070726316335109210346227805183348594247474712209152674235043925093955820533893482790754650731765983392515210854178050059619455896054571527021573611066343898026512691798878122412399853598192768658169632377238010534930180577301604920362824220398676673692097550212598212746084915626425461250766283466141695929467694308558113630497447869851278508365835757515468118725226733454830677948118926492367606999038077496960516971717250006125241326450348993336374809467469905407968353843231873278120123028663609826153185673513187959477830906871995471151004590794974366741737596115378082494790495368187423327226189565150692755831749328284803029679308075447884074157834861203546283275462323625210859512353064306848737230361014706997119013808645116486756811977991534380135070756701915085166655130146587574659264859951235441064540379414415014418500362345737354351703654216252354732971860438429906032149107318982122204343455276074818872059191843229995537260785266127524458464946487890558306250000725166372814041558482427439107725682982766501497167281815447307669424872874088782210777258842916418800242561910458789970913926233697771611906853520736446125342967291979676242553961038027961707185194805985697533050365056027263965332228529234677028509436305339931779002728483980107430508169870685297161427967212732795639971011898222908172692661930272481758968552108914691782697734453970010194795883718404894864592004858221180250019719045433589190236428013576737922603999029888790001902277987351962003577933503070053035469962561214020456534218602289361633309471594070961972254808942093218283223088354564584857626890984818253537820686617581342342706138073113545251641781716840308103401035353166957605646603388154437302685540515605761225505947488363991354741407431372022424530094939733651350710574916391053941700474350585985549898518473928444214815129706832392436768803770640347710842638205102384698472439979218397977024448861884549392688551339510493337637440663679022271162450533656005573133891022187890545583038066604700560245172739341843796069025354321549476843415656972141915909548329013084660249719761510914824892430949269075964963188129617146671930285179127442587000472065769797365102066840428322107918327910812785255340410496161913518489452233634060235909586324783128985071520507773364586704565138695262216664338324684337349833608735858231972513814080654883061914177971376581831028878089980062071568096041967415879717617329906038318356402755657862329148828348186120656133022355123261232249342472685572399917758322187890877077008494490943238308513469871898449580176291514397919479691066766709090901092266004497822785917660875888897229780370300173980156158504245212741549648341571779914346699407316467368858741554106851687402171287370203635373290303373855667540287923366016917608737786273996103114741663585855294877624541403855250309695819685377877889884533603818561463011106159075334368474342205814363905235184502003935328427048701551666176876956191346729903546353651401069860839524978936291128548232950893432432688434225533190072715662806390840541789801007066302288580734913419238658046369400824343804414556394530013857305895363023328199398126958719956021226565670523391720085935172843614225614566621997495591619293687803062619694273791759313704324471858772064880132485227130624400527914257516520312092955132865532233175243256113512102329632688910785628955378128928500397481977530167899925439208519150171663019605054035227462293191692102537917242572299699835597003206149804961037600351278687915684011417678124756511775340538499909724699958782996032864656040704134918060388478763997645430229045256199994451196142126147029810637779908438705004458543576260690973177524410332192488864223170420895402108635443182576884652675261716363230592422783032010904637800326407951315031474501374284928899935377284157224037689383530346935735668043603290590211699586964481939865193014867639206676731065188173013098370116340175637059753029904186810631777959034371895543151546676251042758639021160843640123703443799338673944546242736742517643593729007922837110589678245459345896592814267124234694388922109196459124500091292105074539723811222538693575736318948204719755498194678918614456788666090967131229807800867119350509121944587158849592856670021767426218296412751782209870756111825871366268854319404358019486857998203250868339093769667115906732080677065720826546458698300436837824523592116777404364558537689906744777187639375110307970774301186221611195930438991164129272079821706615939109640366446238966985520051821904470552863810633105499383996180602984292424187100968484697248939036171895764860031496763214941971699948881349634524133111456296996304056693922075796076928425526529636105123194402027747748904512337947809761304767919619082926395081371962811069717424400614072687920738476156588969662293383531843077203033766521304406459550519224317515746915720365756878410204427281126528340465756254431949026198397402051185681412232759627099145139425142414938887760933303418467376464810414807234637321854825781548175937892863613648400107879370706815373118139878419319748385796976265974634142887800223544854394571813715259678723772153391916269469714519220005451609820258035519270106296502973361559078328748989668379060202180741623943236297684460972019295175387612410002023563211974458853576518452296827102889505892210866022157758425527405382876947889345043829052272608602661947537881505069424948161939778684682495124197775645395676504267606241242224439411039789305816149415551513254599883082480397712582047771015371299542628372412648252379514784969121829340810471669543003036232052113817369637445994290131846123835025848837688707635456356148532517762314616215206982793181753047572126924204108561792335991684148475869917790032584861097674881445049070306719316002678245691028084755350657639656801127300986816076113185523090865020126270522873207009873874784559764794186276236220720048086157854930228690172372635127571909665204570072423232224797953313529271965342330303920076220370187011533828268378452411513575287257991459813119218834029748343390479788159371910269102532770443996950781499448940740849622836283375861352605892790829428118813265038850194865440765479973498505196682556002167211388674335145347638767680694675440792571807041091577008166375405390305149191838322882741189068298888944262741929068513567973832937176448692202125504163783027517080450495639388603687850513917242263391550230013144034972741397481139255205213666615840100409736124285029331741200212295723970235598803133017339943515680618258963064974936243848714088119259372480262776448301307605120188669796752022364487073718065744934509200089408535849847754079732755406711496795557835415751664121847732074235157016636405557987589301735620638878877418233878231626413048297266124969979444008515384189464398161720659042125089642420245938466577183871023163383008576431987297976550886030648452658945982920476090679800004841517049713708511043647656503045398558993092730420133305142585554853626655180905628811619955062508950625033129781496000881927250340732829873193123751678855136822476072869166348266488092222285866543265548288940512157120363897708184056210750160205715341750186782450098480438356116229875830755139592243508331800052939740063474044264832168689709601724343197493599994776238660013011892407379532130299605422120557188299778724128258893278821536032010909315875786394206857879267852919123427276025611206818680363153778204859141514285146638083834099475338279430443861446723759161140578867156967651506627902107263663225327799809854711908527156206324231116968329709302307568459736922272701244865535908861301507015225555325933008264396524493870029935660364879481307658092724051460863512442247665844823215628636562744381747196657865495077481125622531312226362423472095012634550982068740172474012271776812563961417638515940568823142254157728511526942873744414947777755424004550770552408012177812116543741364487274559735655101265534645317056802570198401268727137611771624987452809481962939604169459376124595494637940136147012124456837432329560538164730812463041485647241858814856617863491073179627200785173156044480838372883571338958135735299705565240130232215390610822434618480400629026350242687154028146910260136270417149102451334968170200470608582266205644942663527907770322658200986394698652463098835479845337039816649143539967108806345849958558083527822638889849903997393767390883495361686534679348054947070695691019748759753142137502976264439917266427524496651741432285328978537544438050025350700558827864651709953135056263402884248933245925271362071622444904973618228477325228383539524546344047460792343937866620939011521216232768791770459522160756055133381086662083684853576952595264737402855860746788582723241320655949413982040939880629841442198601480322763357284044527778796110051266977976801607901151663625048071719355426045769577775620046094569292449663188950953925369517206662637550017960434678014840497463808041345164609296391446471545865699175969819027157246271857253888608392012205184558583030786087764859532087489209953168327634607681413965361878609786205151862924929571086815629673935615767600866815314753932551588549573399611058970260094294551500475568380124569866264629279050789956395822557490392599891283904685897144863532377808679962252136075945458840692855024907291211075160441306631261247572368879665047158068650096468208019608011846560932600311664920536620559959679922411692460851334274600877147517053522445654641593032516259489276604380466205180728536393629294168574674509901941646714047124367295683925272587129382673629255740299282509356981389326943483131711198482522561448134040089009058115624858799534329033615094381527496627800202483732343212937526672649166291217566620349023133013459350255204394316784994677647129805966592823395601044096214144401601963981149790524343005802503620027398110813154069813353399779041005065706484193834785268362530505652849778545294944319521102120822989905395128993361841884674786009795920476565241223080144533085209415604337561744401875481275468404761690404423323545174669966562331290250320992218644725743155716179586764791618423925062826231474642704724243571562996396780943285961236841352919352618328394652181472074909380655889985285850822467018773211987345808630555178096925339159128041788722003031734796508460517035718928990649436763386358417725082105396922031812221638008540038760906540693015080304910733630272019376558988278241848918832039800300679173060654414495482667108027036073287921833651769171826307298856184039258202630894746266874817742496438833611290308707279111356672449568807901918470777728064986626881903717312588141547789005691663092875424188253664026882687668719671024324043727002003820629799474253989688674609117315011733654253365015364508801937626042993588016900507542031899247106352734409516918824882251732529896466751653972268291261725787452275561548404258283997741146338606348710291478824863958999816926713021294780988899845196550105510818449210653003604010397813915096713021374860593758988264651928324920040704515641986259472035585469112415925717038950299136559357304373197448702914523766684949808658062702055891789379924548760376322447502163754827161746155646823124676619916705013675003893498773047905864131941239060625553057708727134050899343724752068603450020606467597205227594406001253265838357955096720798733667343038235471396434174340796216776837408217182969675184613320665384477928752359687498009878125423381289385723476690742724521079814188180354396705486882464970246035240778687571879726332187664197220914348655952914741774208465001606442753545675842258292597601474020138743979658075561365674010878180969942070288726563532217067885756400770158840991732863717015299377103338208347722622591758703896927952240179991820035710144198704113205144401142726719633985666830734235131612042877728406177700031149934520331312108049123820543336145489395212907868364025743383533119741495200847303594908198369555558922012768631365099196446420777913854740171756964528111941196784366088540534564988443243506068331467840105711661816442852791030793562900529795196417789529342446498068849492431185207157916576754540241889738367951967687901183580684772678659501898923447879142094684871728321001123316380370726092064587582676202376705525455651238635940367471849880081854895833060182386014236163876888223154216112000599443429716678863619590600631185556553503230144977387784160514936738230809338778333263595294088325252950006711727077810921456471685072412443798501875499652630640903839691941721806767042654979986181702003376993468271361546725888867712070553784657206172642363748478486349285208407342631147779531546021037110804231609980722886110718224789502814138711361425698686967799962462816738180107928052690294346533789560218553133274489604559075384976252772587393654942406484688789841107948601585995943523662704078198062634887277526157368599256153475965191887893690172517820055394530723110250823388982293544674527196823193048785345951902971025208255558490946663066888717344105174243975212467904645265409581444067527871368798816218263516134246767371036416670497216656093046447629118559936481422683548962690242129215489886828822443053199621318217254576428830765460498339235296500948972410338411249163524594688193757106873287846147528519138088216820533370783666511014424185317788722802099006187205637721493810962302442890841677962695382046065575057775848076134848568134008609430373577241517288713567722327530949854174375048899525969077773403921583483368595013569843069033892827981998699195461611923760578226400944209951100316912291025641419566604889663178611596002234045094833842640693772250703912022621974442194621614998476988300063100186636408835994240267218353261979945777645084033526305128704225908685502570704784433472368258201752747417041548838239669191858701714879165221989651486741281436203532801697364206174452667413437818070250186585384701723133281371072050110710118895669844823658013902438820035422895328421287571037912468616863564541309662575334302989497553308051958222036207641444652044523766897922072567301460814705003938686422922879874549697672214721309726570264098023846248499839797992769604131410820215496010455422309731401831303941860083967761585843142675664374880038628999324723224401948597615861161546893157613672386312038019915620718671219577880043704067125920708691164482095841045422203042381710077508808499845293869224099894748365336123500526368076341326528775675498451935704161472956279135678343458044793751549388960350782896267253971740864830806184368848323772760395164120541442540194800963914951141362925770197163522331806988653930607262016326239134371037809098682304148194477672692414193010180243001450558199625078901645170096685671262669823242683365645678785529244256548240011824447210647022297651615741785498989861012963949770171810090037253892172860101335139711422039494902995645674914026240816364106526230761329081332487791746963637610816811071000008407446244307401345200079068328851152556422848181551730587506256129177173832564101123139569095468975276458356597740066056805009324376234574962499261260993235347933958688825510929862131687873764478501504786319068455556790497221452473532273240402183078497928994044171787886660308870143378108798889257964918509185867241015633334652101325051911708045553248922878789101691377072854583667290879398878694514694087752910767736599684386793165116628552866975041598202051898914339889334279129965613548425986197798567273473772639075976428817678290016808691068508030408881522698024981887934069245907967682393250609331871964678054942546362090984635269657294910947674908170947974141814176656455744153610374116335270377319806099081971322842168573699795404245728471196998583710386707800170618793842220347920875408255455726046343580241918848736003579531969674712333997150075527501486817269732809050954799017799342471478949199129133524304449722610684974203086511174443032338041042819987178388829741708341144867343785484001187033950284653294176282559440479646445084841956698017607811658018880696107238603258406082128612539729954097621848275260759535853028321810051627362004089848314414597309349430394796437771744892595620947129758655076198468038160506254633419708652298177837637066776257601397934218136698978102064611282939723175205897798274676851587336445611034642634336390586864931132510811520077612801959386486503345052060883197356041288374822893461568918968317219113666901654418435603613148077469793549731353401505348348550034381127911649407502562167490535173533066879607561051420121085479146036186333759832182640338061806504892274459139640306030156354117757275399548560150555908459312526943757653886992036779798580220655714177051759653865413852157032201737152022870433324759870168831848532509914100131991719412517800201294558246114598019814473200669960430395692329505560442024466037619772996995978844503766614188626263811118989194307761180992316735039494624042388564993098809361357382893510669995974908949448148131248060890226393261268554329794007810535415731571352103474204843001168748917744610453540063738370040191580639586416486981652561888867746184162643817624777205354614552676858759157040493601603878552727439136206684665527659043169363191318393178604387262028513545546268881301667443544056318415535258449704925807318474688800439087804749417562591416497894589116234299698173994904031550403300817743757154145495921507823530037527060800843478614920574348689769506623845421698565237977088670896995068147426619197960902147766431538546309936615858325041202462853248430964968217807959742550214394038208973303107029008822643655872510791152762631292404338338414676925515367936314228004626807447625807652550329366125267181531433455776797664165653522671989222614601920388791412178715864549554437081810728886694496473789623043241037342416140268920262387408815321042815224960548935656944680470102773730925249305739982846313292280828470823494596828606856849625736356359251800326232261063972051910748976380114924900279060624207938985351771479085798142106739097107643456697866123179255116536571970901602632113102886948276831555884899722811974596404939063439296877242758467201264101855107845020888357200299886909717968576595970896475426575695774976595380675920635768066129833046824074714413686961507533016660206735753120034128161038784538500923485141309429991003718189745074375645649377037433294384536533404867305270894458736534416777977390820982924915192808145067353094835912270347927220542963664347501295340379223125837018783722206603091625858016872783026241309113612118315528085587874477588586593928326796959195532057210543442040001435855266800968031939926002357346173439066238237711721022977631457703284339690936701175973676363876054614178404932037393712319846401075483178809733303499885688187657725049511612602318308271698410810188368054685990564993352829533313260047549204651787842772971213071758006737921388666095072344806687250166992837506304534298293714787785369820958595820779809157936973838223951803748185473579555213471261839786995455472841950829739420423427580667793247243094782448105874395236328477295958066871908862161490499543175134178789898727442495400194580904341025227776334133279922517156506941435349600622497655317088306082735085708782300422022586991820029266892901727991598453504629067550958022849695827912999313676105197893816285066414883300935953482322381869262942431289288071484887000673036330445257810191753217025635349940234604900964173330592716657789461693468532572773828132054957145779211657368061710717827368022733586625333990814190496947531923515718738168239249177588541309137034579938359916833191300080432740667419050630709470669936732828599893358840227103955853750630595844503263983520995149722435887202959776654010581569677140599109962630210305960912620608465173650161961428409374816646945395885497386816790868457001331728879437511681744356301256504248695069391350074585339724233628468250449931455554174562742780654994699976607003263340092551150726470183483464101223112089458054507513399194092783398551253619448539617417123677738473236966192032331661980519947682012094961594359051853496021897755713621246478059825542659782238307180899724269526200322305710690031008229087379543526872904197937991304806041100627721587144490278615842578142812305882282408910046715559932985686496407714655648667723789803668499432880608713459330899306323316752151352976117419865888133047226439568735151407631223765196616582687907043046871558587580326374852561069596843613218165361721784032697399701986329761358672581638329522674271038345185773220004931270663819902359592301248192388186448716401240289202595471611843040496880333219612504460606957805556982824365519900345074790691994744338061161671655058894906213868306725778887459152252843870489411242481224868758675960030504012551153500056153528569536753393806849604166866494453341185531824895172858800891658732669328472865530070110748793225630373680834466757012331400296843597583445692398713749708435961668338411742116615718186899748166315360539038952973413328167179432812255531829919944689133377337446890257681949676411256854600423384425250527101738460045904929989215206707013361495368909902900553135848603012949301873488270781816429074323170885056945151993917408103106665743105684988804182252896763096437297514572441626706205096675913565320120586131887823970022022826583347318174517192578463229738300881443094388003534286615853149563111895346298355281442617281540917647602781795372037593045104733728095685727708941521503372076661434476737663157762922970520643270997436080564708200424805468077967243313036967751971246693951573941577239810278891366405813970002942979616384690571704812895728525277960130960501408731378452997708434439767006707655617448559250731968678127587812455291654333032692107637802242787423784853655140703555050721632522863375662420495656043176500542682831145637140212855406332786086010730285271376930758711634247904329825415369014953714565227361858692640047277397838743060062615404807365123100463079265723957325224269856626827600121334827263853693334085021992862621298451658008709593244478993410659342996559525900862851294453209065117387330086153193099557402495447754417920724790789706354148295338388850742537262181567069844953856042444651153668129549401424991925960037574355178280162437943735548387736626324555494377754700744787635772138752739553216756084943565635408155164304195802321022491060875982443814942841873236680390316782294849358276461529524300239685157105509736599558387115588347562762242630466747830384143914274576154446678578758807023726654966571359281278976726123707753157405548957532297728030790717828319594584474153153706509638937504236836480758121467000748157742971905190279411818748218671583562200994167379502603684455060956435031519599386241452490714587306141425146111112378823666306172078542033716741768237995091989307295711220325828380743689401023540081216643746105017847497042113460442600863044890076026045744007533287235330762274084466459801533385271708472679964741697330406681092115566158649453050680650647821586722142987507668180550506095633319052905509430920072209470293097736265579809311302827207358782786721268532637042338524049562722406308559832832431278867532308760699571371722099312598929851042053223083300067108328601915013290338202374920838467246151408546752870521670397348378321628441941201494313535417110763093576559525944883659124708878667044710012055206151097403810489098616874275756218096951995559471768320284592597993879584336673980208121008898250255918769355247390633375046723562812426087691732858842064691219862396407935670709286889200989907301822826699264555077732748835367287940139598298386042072329072982397407519639614169212990169353312418459556797507454680202071425433499022982719658628858721030342698121209293092121040746441959263464512222837346207651094967242380411067231184152161857944411760957556710584857924506863684697695396078912283842552260162247738826871713603932973584950125603656648685262047147708237802122383526772336278376548542584189392548398309982980816391428870164420195412442853233517736676690571261663173984144454462272918719129845796925632126150050541720287026210413714959727528844372177970523934881060182640402038660583520221999082724474670296671765356161609901616292931908787587774066242752549592562255435680492241871049029446499651500219811566656410677213039639167830383104403300054045240351307222081322024427382618456189817877243587567740889884263858791047972829169736272329578867406761856256212282317763582246219342224177000588987472346808527322480668547441837444290168978809698368786828370207395730753086582886807164515211666431245714884124675874040670872221678642584160666365350876225606562250320532032667385107155468897963607023099906318181542351716179039423445508976322687224910453431363371006642874266044767007622265886177679110895490939497164053103605532966037081268325643336857165765790447195680448553552482837893173815175427896467223377401577600507347491872632458460970614183832104821206422972710807879012580707318785276372887703360495656353933471616968470773495220981132649429489047314792659147191134800697351797732968061697659772113405375851960837354797563910083314146044220597078278264462302860051468512364296386547354633441575865784007311004301745267251441557068553322166548603155284313605000077392663705338244790837149972325922503941273784155302974853975409020974211275115714907847289172898848324062285524417277692373067127886692593751903019368477227691232681461618478521914856679449930803830662592399996378373803685741971679636115771640382977021980085039181515596655570544476541458418024423681320639093582288341173257234205928235153689107060323046391267037861012290795928466844334836364184696291300002492605060109785280451911848038188897944932616766515971355241833990221543586179392142759814646518525891518862982673684244308040040158623472212150054522105513880382670481431465423614707328439705154872937109813730233391660376851101830701039650108902972151646038133878920750780954378484180980827764625308181178929240098099366447539017209981853756610370557195444726627943932174307447682506799131529925595542400289847240800386124765338688887366592264372484191460414724764615580920012621423163026209316567099860812385188225519279215860811164621974677147095946317612579541289570853998965273596322705948428725362287318047846314930763102573552992022740721247724988228108688676641570388852803767182977241927126843626208112356884904361418237262777553505833277660939987748285942042173078820895695667486606735054981508141155407253815255147083246750576480060803445581373504625028028462433773574753067894189347339918404198191688091602405663959011980624164372096064529625395227270481500174722428670253806457248010160617388014511625461629991059705260092171825074801600462355856371445146158597838272828040406856158662864087434791339712690039918284090645733657923444566558705238775663720983857287785167824225167401452887812863589304026764573818647457189924789950008814429452648139889468898417296423513359706226884921605158485300780234166150378861430779851985309764383831725555643604578466300516240328462213009678388687510916405430855878696851962220635736505811202130569413935499396499178227439467695194039061021956193665552774780651824461888576814528865517919365184270419825230251281644741998323761814982262670444439464149226462615713054088879466477539076105723715150953300150788025528981188175462860092645898639355669258422081626742206777675500155975749123330542888810349609493226861945079156678950723495996847206623949127196101742614618860782353365263724413934170749263279182823810688997215545182806073737945595108344373481221919275511604793319801013260251251771833428255645246820555997653546671122043831027484853229085766071589402042512942329335737620572432467018075445563496216017408698030186903154854764873446753419772596933750128407250827746140122202651233802142905880357543421547550672248300850368008992004553013855092248100419835550763313386205343456537108797814397019145294797942329185456722338877195348759189532384188386497481774133178351025380044426644112126578839247440341814331826193466014235088619617216688187323800930262894651800398624954922335180754028165797393682152694827631057043723600872996130347689395138171650224237739968124898788315455469661512065604693273863683681173423578951710607998048824396722980077687973063018038167882463662115375205849044137890406145227975160506406171874937032611078758046675702102225248242937728144491387338557517171596116879831986833272574163869046602949882233048901013197490328733146034837041108937860091913551156913236677091754519237278740616239939635235343681313754294998580171050214555195807192441813257323949286949326987286475716062386151347429619676708380116847116209188300901989054333158148331707383413956504045187671367465381855031421738321445438148917514174039239497562389779349810986216639181785252924122680351397300692313464370660439457871190458775303249710902177572112055295704140329315345406370542102848192301933751122100917012353897976215849578208051160930241867702238537526518678431300555481842443886612490000975788486129100277599343755543334093606080924578795752692036203600551805057272808462096790788335037976667410236798745602663732459900137608310160566023376053728879454405400841563693181019245839951465761657788613838766996654094844752672222330892592201721781549504432371166076524004841534328341178750847559579072285640610746699335612052923096436105831484561942069181315985467756681260402585910902383450504958878125009465607884144030589595542778491516728142362503649156972604576233148083561405156910757570772498412524178487561648871940271745638156360941468807518721678228256042042349318441859658732259271979409108481364519881422347033387939968828520604897728934555909323042009963813096732328132338379874881890464279799392129863188579249410961981026058491938284317508995106944051085362722761555660174657565087507751191617279167039369735483612830596805530280989917105340046017092639701884409162012827727516435384405702351637494720911591954798011534942355284265429257215859205411323656304856404791247391951521516878620560977450106073900824534141761739428819291145598759681463095699389385091060737829260083309762622025085397287305612510153171819596888998462465976259829632892795135007344510152078756900199883641264760753519852775260979439839505425974952971362834133942328565230186958866884356610761670571054226204457450755364678318804324359994584888046931308022195853254184372950989308756878244515922802345780220938882095006408285166807679887801198061023545974147392169124576692598316006562158798994961685256225675453354377674241969877447319856063579403237684497230872691787022795828330595571107387498246941212082757605736079678817307743835342742201791767146582457620945985537988995288976488856860171872514163368363038555189801085511208804659021315848367041745533353489790078642364164786312559888740041888812803626478457960473402889980586822640983163713761890752376757482694558214816580539366205061245530481419647112157271491571483776724410475272804117090118570567201149291981235887748336926087724377725304849130273421668766077339959179504662361516958478688619616362675148922391384872832579356167198817268802077837515489339471779181977958694469151736563506930216016228503134277258999886410522919716605122523672554898275587121967092490678166264769185609585952035828031178011578315801665440361441738286921248225281955521014260267423657089401273710068939388698539096308487374148835538514059989820326391175381257136726824456902907497972813568621765134627246665116682025332334987807063278437157947598548990466336114143529225552627831432368456820195381113042673637715231467604407069665405991350748362106673413377006442712492328393896730586588980795717455646161753050374534376827779440385379608738984356658175500117061845809750121782661700047752162261579587217546366127478141542345650595396699561567249885913731118795245651130275703258575547000430467924318962772230958501884094259852436993023717372516649247788560628078572618881014215345200339146813705865667699271548193425161071211167549868682033193904421875256588277621044052275835480198355772528848752212242312651818562158653152136777927780994829516346568050255102283933816589449180719343433572694275928593908526027039766600446445150242477036129946310708175784389418422275235166811980989572979965080550553174168154626010167687754047549436688224740622423397690335663227075224724508751876075286053609150589133892353951643838293546053033019319894146092608492253486121032949873946337078188948311439270791401493330614521035296478912373075462461964021361246499933437504762714373797899601031719000056307581567671286625051367460158248886866839022654659490841653984663084487035612723188262725428188087065702298254380373196660198623737184852816791182776910925019051579854513381920734001130237019134007112258847625732882494081319781424957302387588966004608098433019416766408406316092360188472072152914589740032768439987823267672960908944801287602346580836374016482264990332239129784248920293483766068893765077877879460292441181195175868191076470585825373277127993115448599844461602844952041933147177479933827409950043799773698468760336394666298186559831180405566489473320654644843463258158197290362979940530055089834606472794810903626124162892635749163255133552908850550985687358561168511511259632030008209119252729208829498430092972415467507358412912266554229093075510499305247621125200412494594053351099293635794431410785177030963720105089953430046436584169214457424126051055435905128884390153361441390489465956634597659062064903962358809719354293705903377124514851453514904377491067405247687566291899539156549137998778201692961369170502567976870318649550721889270499857047731006761417377831680411278271530231529187854056441338039095524567161789963810649537579693181419598021551151805934802617828978163891514670010774911699877358121109950971567890546692984487552458988402239645195360870591174149325225644434244223983633049087514637277113449785296572056546285197941085626245563471488406079251903424379297647852446471261731327657554053962255368489216204113428471252651795964912779720837802730969648092529900983706640269877948775224071321867385987808665470403073589422413534548478739656514266785094365070560431198870685717926658644173276897859639378595304369027359819660181718232395358373925311696485601555361947819062517482814843745751182577398518504638515464064369928567033096280920304302901072281251917717004575265640728504840610568364396414446017346122996294394467532188552714178663303063769802026386823147049728216370422991703377574397026708877367724133855634188464244801509158679971487358017779832038573634878974566403311627618741945352988659081159888035219961630094441044890597401016758462240758426901366362305923312015560805735476905080296648491126261733025681574588047427966488309562478241982189507626569547893643258720723001168264363824357178166659862078585837336959432943453031640012042521724867701704094004175738075298800794375843212842140392603350196779504180671718247553405049793191148347143720344142197357018752541090788033010180241934196389613981847651399008287014656234165701809005439859977138693133008954292690828478015587889872259722344548239785326599526645995797891794654769914845041805115115923609231981866432574890114725948935972133554904827837576923559468527649701654239052940825198498162549825929845762462308017643677124397742756137458320866744341355352885716061075951427821137245657795303130259365954060517694432372543903088438047352303324259593730248413499223595281731549683034538878604772009966218032221625559732275961067539450283442319462220946902788564296573990754042792724242059861773030590117709883829330020175806556648902200509433605983494472125015458264812984588143501402871335411984950837231311389058007963925575111313756828999247486440130249587733494133072668898398408758574828187375866156719496019522928526871515222467857551244146059345172626958970018673863896831323025598895479051586289584968422627497203451393335443941211614813692858542840004515868813928074108125565502832850806260153319257891233779425200886039513948566897442712312037160874921937098091782035274323632164824755729288828398180706452739730101311492839592373175913389851436083194496803345567963115997024865859114846344700794792382136839736486433645035606236134419369500880141104864176837830069781442704232800376818913082935949948053295056299890157027721176963257259707740716458972421554859727262105757756011825486210148564244278969037708320727287408322846613400670730276256532673043900350522314920722869470298029880964863224304014748554438582037234463460709180263593379712887472996260650199562427328993143521777281810824147163077590448566022200446702727185215447834819076641623839697280387680707139508724992822292150439240302303473193715687724496614520872753096930443802437006797868144380491316176381319327690668699844244291570798694659272855832542807475656580883161796972130611072061304068854945308938961432818783673268802265531778870795251350235997489133660253203522510075612489347350761568886470642810567847395169631199886726118032910445337462288911861799226169843372968746232606227932087943414812975494795595198057797655520895246377128493522295743819988749287954195383968527234256890218018962551250692515600299285696177152794757541849529305603687938113036523708061620971795172688101190586757638112067239704345583458356265885848913311555326045492055648131452579427315982012903949102312869288546650189096766745282598708641325806780724870041820693515457583715109103715297776915103350393260100557645785616455577414667247197065756004437260233328098729054471542365421555227512355628967500119330418940974147148950396243334306259280829665955632588007746338943829404332812454384050996768062994112164034560742287717967487219332165780896783539870151613534497837901882418614469540012942599974099013455848593213682803079514945562744620807423282009260641566282105226173007148785859344408588920840891305061226084355990216230106866789511809489106834304107664565791497648874897215428007226001187136885678708146453548790753534764886131562672281252979412383375909326393086848842618874898495136334335915941718412923194919209508801721561597271182730800565669265558803768416193757144931590015647757131795777395645948597134903572604407967807742865490233699692246233276115441427462125914809246553554236334802911757410965608513156744768951817850265267250168805433909622549392671330812414391935183417197562169671935247696102162001788988227178233127801259605588682071487629610006423536777600377481696272720429091156423055018083656169101552756786886308120267272759890670588115562466436365801168172107103740059463174328551733510679036322043605193322502645060775709065903795655797723747876868940760750131946762471107842864800838751469365611109453480908453201425712269831662263727317275080552225181661350554545972822735887057405309856532564838243731660760421409287724476848556268551676062750769881974222811966928532691900119578840642021910953415373751106447255631764760547151841396283803778780031037982387430747991122407982757459399891800219495068565712513856326728625612915131332578025519898143383231705946856446568768215965632715300619053510740171323173404595454177168588328002592132523081170777571781004282438621180702152254021548856846991608854578350937952765221985375871620748639619120694157679720333173227764871560010860870807398678773378885348605269174463263911780660089443096660162238325687051249019295022385710931671613975492862144421792520492906324110823149516412344768634942835598060312879591800570667587473792132933624514648242468613983639196929007693272478684588824780018462256629848968670159474440860167989326059438151596802101303866481585479368458680471799854771024394757994589325155855124451303324661383355591540098735670464726321731988399438027546618630749725237602563518961919036233694494962664632561073709411809649686510041008480252434923551586689475534658590481816779472380386217268177513423437148837066762736979895187710897463522321830566464344705985572842577026654882664885546005855825697928104549298661497274973501758309808767644881811681485956661771924007902521958321947859184067765025236482866504826200964351010820388902645279624554344964205604442474648020312346415566286573713428940405680884548567309202185530920065040852875398366434527386167787574057882433476886451307137448518680328757951679136451866649703064168789524881855398434124550009006994316033400384164909100910583008521508023592223489500912715900219949202929992983111197803295162986817915570458853209906852747255298925427862060492605704828308521740582910808623335350826233676188732590573621809250691579599666715424628526914841462059940698211315142471728254318152099413814324514370859179504561704388393687162942438791522784590106483168269738006042193729704625046325941161316598432670602194529883348338493338829078274143814582516077149794020757525707611197060989852365675924578631919569302046942369319504746138751147154252338764301027793864712253249181531304684788054688416259026795799778500124916414650690508659497114347682461689161009202547360993527875743952943409340737288518741637446220322772631720801644229600451452007575664513523836824834773393447816892356586611461011236674201864553524451792362302215475012941281322822026497602310566709598641733037745046867211000718955764358489782233109382527454559743590263494637375631395239746736639194728499776290364430395108376719374116857112372367889772297479588312861500494394514110519568796587272231110541561355678664404531859118855695443883622720896154935755492149762338596009096396232791452150095228147189321078711635750736905332047978218157375805233405043789670062750540089643743264509563707932712628616890501604462260955693910524663163224285484066265762851041413946148180306672943328562993777825934175457466253839516583412126869710345703124858370011622379201754290642776740619449153734989653046460479565964534320116266703657497253081602796670738605685852689397342234591828213518302907976143346478549411541564670380900259535563971426206855040727430561022668229859104631407172251381295478234139940104843871594206072233724480425245585827133207121710186861321983508531754368710269676447688347411775054883957196107899909292328069627292230992304701669510593304830208635861968361004688840814846320984841360956671620640553475188226167181787661603571906798052624806564091087263802972606216092646287928696538384312614415436373147717854830800577286287407734393707100729581302158071414930611564098979922972047459307217296708002495285705908314544897386529254276155717129515338444195905624961995132957864260957668136342460775186624078661451762886165737886581547413543691037588115133412326391591338960690676775782966355331686092082980704115701094852204188657618202233065268175100106632050720215440218241311435494600059454183926559677691482822004511738284497454778277164563975707747401035008705968365168080166418308309188622919832400682342511596720698461420611368643986002703916552103423806451809244929333880567364552058050278965477305057103277120125899081583654934104508060130033441206755349705468177462309743120606017472105647359516049865974966559320830715099922158177933351285331647176219623409967196839896815909909754169044087582121931975048664768993611539167530239326856746965555100746540080057359283342426961119162684108062711669628430626521098392795590828850120827549170795779491676701600121130656360633044340657661994985148008435265304216493633494523461432339702327621237647731659827190777457864016030510444831085270295335972739839843553732415109425947847281028229184297222364836525534930359555806841130557221480316869018923069911933942059522403415810628632260256406250023440125166900095384736609196368149479113839367368565467724828727113808142616187820003877010116076210233597910879775079932078879442093994898096874631258376807263496336485169016362496902350748477669120651824225036474440306053570210743029235678261045631635847577013439773351447455214199721715588879691788370313637470778752612336764748623969090492357064526623353359401113137766216645929946558920181591629619274612808365173080770041963513594372728609611391003572730785212226654475487781813649345823830248854998198979882654731642093906206313332903081304919034479597650672210050512209928708025645198331353960671380026454111158994911696943563947548821749137904527136294230207246915588418763910724261681897568420256948856184352469857008269090657586781754023584907267755674312117025669315480869879394927449149958103002774277850952377460045995618636784211614301901099999121596631387907142819308391521206703076417261751412529510870468426508428435531709973159827126880826940928155070661781656013271127096301003572502340165447257310472344593411961942368016132078515528270499316285187336467190599259124350299140485133879301098033461316117846478457086114997671148792234999624138387965655807892959891569449257581594659884670435336100810811488401854431522134450405348089332366471019785546418717884276563094135616688928622447367732563778966349032361089357928858569623059189873151069728301005648120900338744424857671800020143787679586305260802706220778947241343514551346534093973662004981369437954816337024641321248088360815055740994599104930835162384902652168889518420481069031746730551073374502287691716923282171263314252716899931145771872505867129654988716203593129527109749251558345556512184354964321758998619319062332512171263567744136528149045580485453784839315947147669389241706798258508583438014181009774004035723833776177495587329742133270973704346037143053971204536883326771726229217507565374593243704956089125921763437066102336194745311720519836016201331761689471856864352077909544507012128803003732338952113246315260174853207465111036334608845755673394815656537316032553249276532155996953088237578909284175344668373835686645595325105935132064830471973927374139942684209175877787520222102019032036454227687786505130735413706382165133884214286579080113484414876063595693657315527270469009271552682414741255092600399037639909979129002839642450938322117920533308540507044487784891923987072457097328050098131205110829419258932232935657254251396031109452670479010317039343629798371988283120734797270017291143364223936285114572930305859492291276329769679734705092976884985051882567329964590713957023964016748656544419926464699030428567690567633677110356783547371051312119163904466678297042410454721724882105367702077501435989888232877641390620579312818088696745390437217121590337546931718706214279596149350907505882239172360309499422872689821089795144267771845267032814317218108062874792594696273036145312226185810930875947892055216793297038860002173024987087676854746403303761562234216392122940545473184113244114158685874554017314955096702297048155169563461141993230054881753419058310074368069061877689756039836584764236223840876459606172529462424397531117341300354631491602840470139487627946857166696429846468373183826792514043070770437374744611555251482299420040133416352412454940932399918425096960233421855532634486709976687047131814283092639022845402661244974361115071241980209831740644539417214865668855849056429670839197150421614580538155251577356059686579066267869934455812206101256730880441137543214808600876631301900073665805362719517535573416448519715465274154763387772285357393584237187523315800520161403224530282863417816127173836775712234052243019731077056941400668933807847111694974703782209720787757297159779488380343974774423705138034591804210679628648617238662335409788377259874372737485152407027688990291824718475659819921373472132091162535305469224250213670682624768025538975102173896388307479705485023790657882266423067683511883694924308988922005248346643321327279857008394926957398771867891820002892440427959346051138117888985974689158260167395501955384309614406647929956136089548519730251401600663912123747752539145298259862782271304303285450468129113969723495758691169679549595763826304604917622700168556905917832260721153700461728226443030182206219584992861294303925397896986366452623836695202213958901230336615655579743030818909233618061386021369380036379030599045650032870748658020052835052546151978457303441113590244834124782481710970969201229274042259787650969297167633786981167235035684055534208988056167066114294694196624468307641334338025359465184342110534812870244964856601662815874071027306930184106048298840360054866835676942724855143166969661315601101235806568817790280563307158349077694600517670908985307671291215941570189434651156987888992227730484407696703521761434722031576308168015424033726563539531787350309865338312009427852470539926243833826431577182340276922208449963741480035567773962811952380602373343591525100210005560461617111989935012030038928655710582601031853802695592059261026547889727139571252394831101189970220919813266339517750703122604840261636325986909433523086978079979539045661465711288525064969027265932933138530650967551839053280266910452510660668671800000576634691553631725005331783249770528280717005840873708112033635363923936022796424238286262463927735085072722512026080499435952606411191152332753542940762085726097352003155410556364659984893787419883527705317882510752415868632425511967573326751539450205445891251695319017541614509392983517006822325814329832186171150275898468015873546018411848125725504902157313619453725615753362087144810754517981449883163123462997661810835646974033163782084270000793877222628757210713495300259069349248775111104469025296719881133682408178959713754219727414463571790295974511245515696471241155218673222035271201822205276625378198367883452159700751632821571029868147100172152952211858452545109054804348334642325174892672323320460037916850685973201730773665505058422806111203081724623099266204992673071301983008419562306476959146304138995329546556575680899703261952031000337490727450939965356296606542035959347941955606490007289832407280243646477306644938817942136805908002423293272929005597202115399654318105863763759734411128983626395344579034428767022503415734301713671334598585249923709918513396808016675499496836441522622817759880136859474735438690090809930098714962306615214134010542188467511174064738992829978188029584993126095869904122490210358387073096743462598516121772032384726752537124654020081788209040577173046814533356981413423938185186866359698496443681023939748224308030826970452137445678257892366466876902901902829433793123803885675829003267853780347781829300984307073758856988502844626642837017985924257586251626877624462134198504483187888476405925407574505300464981438465233773908784232441078670104623255925603484874385006484008500980144122246136597401666610783620574073012263961190026175163124410134812180447156191457623181992308842128336317843705565844177858724547372473358079923974588689046703177523508660187485558012094361333310602780817373201606151446000592440168252515224869444329417591798749911727409204602791157531687656542460899967173723174592270133389100290816142025558021224352182318260868881121587033680183669452044422068483622714952381706816129323043559128590419347909089665818752660744174165215344848680160771991067269233609636889965903362904445658350134786656258819202841727150596590151126685974423630651536502275066504912454852552857023836401420926556495042843853047341109075032690078347996447344513291956916974133425421341830350650345673871992266784603133100215010624579970669549781733139212969563287516982527584278368324529575592151731325161095946971795259003566110450294536691011921931493608084018502248488340876009379103820856021220697173908425813674931656258087057880741691163323577286539299880135383037743888599192260604096311427039486737127983688377840511871160067551692020626298759414420702912558430634921925035316355645931253076093216858753605731462996937849794299614860813951107940202722534769162246299114239885247710588391993254512935607409644023772452068415473024610606348117597320330687067270288709887814228102144885455296868724595176072414104918416691795061846629224833330613034625392977445843744918825461454469731395014569840336044686624791857632876237378321030374370913442738494601874862320971103753805747484710324441638915500894652514966242356167770831979010174348117090893479018351645631731381590689479636215145964112315711091686284514355129218367020262752516501221249196496997045010505787488894567695275888060964087678552826664918151908858507800080816027789393465271747429583857604498616233796296274242657729816767541599477309925011951572717021690295720964626294537469452900509352175691997380386656542444719223519599110852628419732681367405572747493073243663108907333756422533144091992636989515099460579770622388890025519712325033141318695651674137490678051552117282213898671507740169698676558620448915037018722182852990866747376756853429840802822343267356920045554003615816860842679418747722840895081101336545109838068431073786830720473957602882529043259705517351633868314561356536771717008061129113830469029039923963845358907852456952990048992856815396180086253082148114437407332502358152284203843084183463575964228240722348748328431061467387405419876246544186431541535182454608023090355546736033248827543583292004000111025282467293412862949007631424923390957385735029622511110070236714029739699538789223722579605032588845083861998888414851224325263281202580767706995141877158067456539343878829809993601917408728450665620895043512032840393689087816965878218587708612494565790249992485119947671674649160374633569880483514033992347902609473718391620773813516736054290111833480528780629916463227713411708565319343940004662390908609459166104361098719863767026440674526509520595850401358381308812193602597428910418685887476442826575369608680644384506794713860791964976822119164838461848602392473974295466290660098710069728322176850902975670153103210846550626732592304191229042364578898732391412893303384962313096354919078204921034575618747252843409563693015868492857196164548981632073248119865946170575611308629833480093633084694452116229904189854777787582800634170633706535253840326976259111956446490561583890865781337651860575867069027891557220274789994826477534697681996489391430354211819453994318046851414091440920837667270191569330983836782818018097340134874588721398268788509045289348369532799944041935506717792637824639536723803857946175399876044139903226649779853713794393598079860910316843069950852148010566705191136151829469269490424778902907619533230190706737013023354001148460416699986944201988939854834146433018646154250628070498038949773586373814898561035252190966908242295819019281108303076328697924953368940402480915192146274729896662768552937657738333403970934244132980650393039732430752563822601174234380658729046851820025190064830009170131613805453030499090899084807547280796224000277546414102180542358887266329393827642034045477465650624755524153738521888486215639758715040421037446339063112863377814266521440063745732574546547662475306304619223741216600610338037275149719642290286463386025224431990609321970046133223688603873580194158155784303354659128304792445295458480683395128671253391447632526380184319699073328154838658829765726771803147266721216806636811670678173351844996205127420159177999801368180232430107786168469001875590897688851439823857017836464713890081912605264888172321128921923253937592038817108633823356460589162912944740482771997099931465208025467303496721499868001317864490902482823103709827175460816233262956858817590578678884562976086302104691070704570685479759391793976595063297174951070631145654508246143123534007723329747187416576966549778258048262664921464514485061478926412979875907807145196760815010537014211591793081085589487604281236508366607609098602042746592328860297183807181557792959906418895319825417268606916480799213948442994160025302201529858629859960113969119841853257960165271313365210480657798632687120931933689430241826369993798539678769497977224202550236536063284513352101969770379602631642257329994371724641852283371537181686016226954261327589824879380649001207919084144737428718233783496515124525345030792723177125226987106404757123793789582707362936109626839180531885049302044116312568728404135872261135487734517088043923663710462146293224378546225410921839612472142419380854635062837466215514775197932324395912730994385054152506017581267614203186353940998225077504830383183148990281940433659409075752887173388337771714612193106950779720393069428821758032538598238493169854117959566643538891540298514374985448264144079838215411142829144211591785546453487168545207976732080220987072142923409862852785935891616057112769880118008721358921510145744924965394981729857101510278798848127697919799703252376714717670035226713902669814835549966361416439032188647434864677174861531370600079260869423791444279349443056747162208404653310179429294240587768676435371728825243059697429066903739666412215542961945433725383771905130339765564972831581784956334732245163261158745574937945932897139289894450528706479553343011341668249600985871102568739239607134674197135516551079262191205636274517978377915495868635489755690885231864542226442748021511091000862827665748897043994083380628371291480979749584617229373128374041855361395521106355804466822180213449425009599790372845535569251031059285552712015337774126128309118226276256928488939191233404018236390809751398707066490722813968738304003432935423711259286420301600235739718182577563536769309515825590669154943235783630775754130036368365343572773248773368023855876506303719787327537252547314352197114169540888835312919919928702867121229787009190585505619639877578065722037329017555084428680906816618143059617880048399707862931567571813240604561330262457079108698876990069934830333793591499397906045350235483272241050286769513534181206902304713154835619526849569523627156809390032636884978857806832706200581380407603401443769453038816376354610640238275520286242703559737646646702606317863253981244344123709944043499761607126732144875354933096554040949275111976661235209184060377517897714958929229216183344622605409074914926875750471453097880102457526173498736216900483138869387333293430863518040272465273350649746666068366554623587324771762568566753305040454041325571946360444030749217181921832532944830646507118030813713658825967870404815062654115143248756775383758993185439390044394010962005752162266487547316008097116863263184169558665715033585579918282650378377588852553559121864620997719267980997479585567465393082644408806375218933723460827408083571601541184100626603580788921637912360763875103333911251397819463250657972203995366339618047839047874881896915500986745596722716799429271836189491481160295538385732271361538781281528748992989143827508702270553082238529775283335930669408631242295968909813252883026951595446136443839305284857926595562934055354279334930216436321033709910572703751198530189553501886499166178933192806478337282616036460753892798559846144728763887099266139402702278608373809521145684610272838299780242890621081295961528054099662262226230533474778152706562329914086957115264871397648486495601466251669734922804039963017623071102355516347548378130895645472757023397605244717120674639082927358641740578607473704099600179977087637563161554477833462331070113432842732623293971164873368612071673470799680270242850656857617298463257946501245840330605060369890236865981253178825670229532238805996605198933320691846364125083832332384502418881366657049160275452542790730577794426443023510963029155807466438676157369020853286827434526775896567740261326429294448990440597257116331887427594457130519250419319674711241295193756450832125044377660290582179627726506354041484956677379646615702910787474094113850057060878850472860985332443993456001057220945369798528507672741584384532198129282331477076552984005431268687924921417611775465504298758473255888357434992416796234474967982810861351436731439495801391107629986734246552786059215379439768590004827501199928501298362188244878690880109056210041502245836508759577608441291778079500228633441838596846476653805101881623629509637526867182460676022702351334467688660864140756859840341409314869152342083999619052456386226816810816271857167829910405441285952568638109769687350124142361997585341362290049554780985491968642094709455743516530277821853216160652492049808692622153626824646196987652171772630278348712407841410693134091054530573295281299209929360582594043078633007954889590803428869929983273790476725862339567463667341621062908790862539319511779338217776865488931961890837642715489299101076923758323178820552180033218237235057347875507626358241584577077183732983831269392576326091448949564598619816053771701598529044718778552933447264104937983118743389720254947391487847569760969459549148747556207789166313241997134131709740915616597573749619140440807526909424831355849598101915770261789221131635884954100579321837562031755596412845653495167814197655817358534989212819323782920273763881156723857896349505358408839275052373643590402855665487210145362932762287245583831684140532154595001430110202018205467370560079093347736274532047921528627181961593067420751166365929541611564781662051912172087916615617265087892377667981070234274467548031631696769753219746687018312244318583730498266665076422898149610091892580136774604097810099200449174892806043107611758518173374163355586640585410679720991503445953171812859037635323927888379496524238570785915754316599175703897816978215260197061038377248366958323304145622096911700897668452184962198588751735934960967606085285472891836520916113976431846451366074554618583150737201258645306589401692189049463562993606420506879766117028776000266336411269447447016061189411642362774471842853516042075368583981017168856566035725292327545746527398178691392429679150186190036925600087300207126069168356219535133721520265001051376098548735711935039354445728141247852170752940798656169455043366660697072263747369990365471128455432535392550531815693640557385321797857958445586508200473448259077832199698294430134154467599465993526565114418982655620715805654149319950666424243809564479880263571841571280061305572826752379787975970487129758318486336583119479308648057564606264775938708981705355963484226644781078712156974789076784323393780219948413951176060358680338560522863906431897279841987781179635245174756955976771130725967260477586270912243154651530869994262922781325347786254677222929957160926931142876835441887123560028160866222696903568432198232208759914759411992937307100955246627584536951419569681236799055068609688455586648995990169662223581197072746089619237293357084188618064071061039719386207519866123828255417883146416993981301379916564906087651109954540319019720147174741943758487458981781627849715655742703848170518737961489031646622555987910234341659410110095062553071419562327750821766437663554448782423873750582611191352534462531045927170689509696285149828885659729030754151189100526317615676642115559286617496738996309824794510785147199697184687410258034962147874458907846735311647035957444335881719721680111470549228486545511709912815522382932731467151167051561053732016370311841396234759965409403173015381623878511155630126460429094090223362000757859410257564436803921552925069392716966022534018671613363767931901015940997292681554206311013323109328967657544983912419161686048571576003097070363965849768516216373422152301051739661759045535953100905463548197041621480195447639339127787039378268011206375823785700648976122446077451221736523669042200138002175292631569375226272153203599430756647717442441608194203464988020013191078048537951423364414652586666585275166256576959497259770725850253613891373107583599642905519095676061365910972747435592921260810128049815068481354435284445050959028243446847052098369521585038777259834115708258989880521209732182400987080406409329436920447652848296291464984172965863865936422673125942983774316136507311064765192514963561715385781034947091253421600887199387591726771911853349045452776994520662295191623288957510110618545289810841128832586163260207490979799862883458220515812448867274526152396478451950168662853414754558757737231927229954757800530536117782665507893461788021466748754629723799175895106623572344305088697544312949128631134298215177860745340711432619985184274379195802869802526215000041127669190915141661235937369011375304478475135461557137527401970228451252912220528527022635761904200849149723186012099622103554027730171450015842321366583624818581333483382376988220213896797978385570874290786508341237270466066214378627172059160766462244100488188541681641008530580607413655239750990456602831529573506710726675246041212091427575059433115808656257161189731588518067785057887536586956640503433049450418589353989590041646761632810451804385814156716272460966031496557362922497596010758016606009007640535753269901287038793691800970672571057135118901221479852569199601065473934983896240487771281155057720240267676923652658413808440059385748525344677089847604266058725385621138343173070437752522161387251186482466968231662449021963727601984550958276224754526107824960138769592965858666434700215956011839905931458832588782041820296548172250386694280019855201948317300882686750633381754860776376397905897179356563765879529519555529695435905895228764947690612496549442156325177829873702373412509137750397733410692945667128336539722716516750233978001290674997411061947920548167691694610711324268199101061439299155792210984488512647251726984860672665409258149346073956023168600387853010494406777788221323234130005640631406655763774580627041587553909899835253271932241535426656815405466332723726272905696305905620560960297554029271246288317049025749610701173460935448100898340072202468684520622023032674797115052715813129832814171678705678586119778990169087759733798081561097356186045173326672945684337403711550080232472266335010060700675920993974107149713233810406492326201024905988640947760384394682386155457670785190533088030446600658768070321679656048935497923389355272737353788350842288391825585586346618524599662831829441837570919730972763206459810398452843374790537419502912507974921836224680654143508490552951364670472783721974745012845411493563999672958850999692076464059716732794299793491448687150278903639479887089618394084534075079912653431074263609924926689915129162062791271667488070700459074075224550020117524046483482508686035219031389487002931958778411816752139075009472178321625860241077929235700705499095024693351465332133425132404018191079701924907169857649520557956012404737661687596346418823814596333538114107344579471808896704127746148231723147421659536465880699475477284955554418288841304211975185408247540138462449006532953772738844512990656264690932441646631917947834313891297174802776773497744485146667619174410980752052395046181903425658971492746453024587700009670494056503045538494540724269144199657829673421399646492062057300334618489909282481785958799727002271716837206592789439700747812090896901556871383012167899177186613125820049076751469706983243666054919739671651330081538717425501914865164544068158861421014275156936886623453472879671489163383062009235484588349214963445935740641926383172137602218289334809812183298278642687334134436273162578284040360403375839096561512958918067991215335575604783698444567894982592803926636520011831569419183338835196667021328758409246144797891553044803083482508032876844315522908142786064384118355250146379791146465505680504991314026769447285717734486519905712081195847911582237672656893717004047296183824380633313413619457318485785078785718355063025523666154144847972332109058595306917553768855882679245868868629270897400154144530496924069395388991710406537602284440776963489560881963335399014826572002482085717391617522380526361197130955725602360017127804951190195681540176357696718156771843358260091993718052154021382743396800005544213188997866619653022532193672092400832126156779666434905386890666133091581827832006171595942041179556872112721258398741206416764265599750725828237309930015020353935178118551774815222842145013745831963133398989510008574026487111131616526686666309073756371628892659766674927442534344151104170030142079923360702344978698770712685619556246422387649659771610044012707245669460784996488459932370068777904313493293024613007989622306329456044049028205793237656452250914446307041452093452655719787247377833502253047143611138073181412116259205267226833119676354057540009328623914501509433284735509727957955378938421831672607529033738989741879369183152408811814775192270205698125362948198905355199244409533522540852491101234724773107957958033736356895254064117019696842891587857676898445709357721676726843346586587186782684814821021958491494815575358924471263792746310281891328453142612744922800018854834481352402503567225085149840832905229353174890596421616059661615879724938021698021671878125694103761922100782388462274871961071466576907586057331495367294873702209597257657046529841901061158656977888100606652318013908665938191655305259312535684572157366190629061923972334112013329592860389837113885077205292409381146825106568596865491742270945871081176180592968683874254314272649003665812145044618302517204933350043366459156831311227368068982553277039767155898521445137904810396453857698508654672694387391456364889669496084789683395380667533172225113441852648096693231047896620048028657258131523482218121041632982892218937074276959853660417653579121407091426991463279439203676347324980534101725407628159879397761415355125893058685422721748525906504294147441637171146226323247654693038840727123598512688088275861416431995555383732488888177925473872285519413305363763961477444269837633359706087465381998271574607027086895774521975472752723678690063799710642808394886530494652931701312789082323694718159621215493305779211492874279724257062717197886892562283342844839439238615142747231893200340624220815366323265026941759036456948612964524583950387749053639432851675191330427231028167541059662969929322107719513543260340817249323269167594399774560927271203166500950801347682270352607391521984119578166922613470817767356635011281024681486936861369083759030185774309532279903728610269423868928296260210867592397606126271364084183482165544863134193783312935031830984053481589274447025213964667779304770602167455298788702043108953222399591645135166950316879716673796216540157662600914020924945000633931643774850455805975555789473663216271531606690606024357453338326777211411364730641462310425597040846498151508557866283822124274297775696957378475354540395259714703568063539215014603405923901478164618774110404200709032842867249360509536473685148688301920398956916530334702810028651772273510447773358122656911752788837110836589872411380396636034952350177244015791760059836500436353810043746658955876057310570055622406648308684538989943634775869364098090649641036538225941421157645314704506696167059206034283926707423533543771367235603247355287306103611678138552789520077269626128539485107941701805579289002273657760165481827833132823721433888106821839291546477985287186832657416792495146415912655140279056491594980835471741724165415517103689727752156966364424833804692689136632365740650483387395810146003681274745063359970138862014518022538830986640719804720909921146319576588998182933488144115567438207009330207953156174902731458456075072089989029869028217135020060295080891705072218581737921082528142586673427988791735644723107214078212203160874973462483340235507930820711068077557368006848341873350453581556114737417903378097700791890398652385895956410042390554114967857099122078327081087043973901073772579630767117815887062147172288006265830720121675895048983761088117452518366889855110453321624263101201781874355115554825151468994887824578543478442237027944426108671270533624895142111500459258317697612993914701222699763652833342767349451763330674623516736438872956990222735949404435201726085009943937850225792109767010178798723769271731600825592825680811898486677047910617552456340329506179002350581652396241629598660501880294821717197950027646681073387848674012761530060056189556505565311452585460592850256158748166346080563873810726009950460043779841484104986317675749568712919628438021056776910274688801614570507976103410337995231557760539910798235979491486654952056929473768191177909603269454535722582858386562963895019454260729236722764195121719088205165657322810578835271061756713824964259706131338420024753288524611667434237870224352007519236592931823692273082032089013412201898543973665738120300764041185581281431252439647495504794933074313221983329933443110719657813063169753712578702654174433830474259114787516416304590087121621077052685499584352203426566839558882648164356836130389422929391207394677567207831682033739363949059180099952070647889821268971617600179535851508388271215020610626748118650265333077802998849915628474065608105852195358335375923333746761195343393915859245857642326501080815767267876034892953886751591241908425396261519870132750902871090046489433896846141853386521029671664993570642495043234366766757666188184637551622673391398341629978234104869716142657180575431200505561221201767092001383279499309401856631030183034899350897013442953663747055387186212517563735380699595718708032850412331602459896676960787146497205271715617725302545107004134606724083645294469011531217148818343737878250643404408987006338744353387113367769046897205222913923932177805058502301737699483818346040874524264488613982043983564478052572746716373133751782328393540618129225253978667069557664541821146711154427347780964190527789493854285875485162640974366738568344379626567524755994090673793357698665293827449934938959542969462068017238782206624462583533357879931555259143427112814384413402802058020434860490468556481348216083051527781101268219014507586049269418830879823754961667523782288543172892470794848528735117916552198293452911904196116819013341550021922124791219842078135936382268920518026371789955571063238977476747285119453949823280722185284023804247977069224746785580668509795162375402675829895324345882559684160097400036407419534409073942929224184929525734723071290217290298546554373745635258092677336422780951250221205225192741116251045840699065169965951623095461136128380207271272633736151775687733975640443793048356742233213157321903993027209210519430547295232682062312652903801250037672389433907376287812204508457909755725105483154466355791845748871658118395602891805082465999260101932426614718767007806540059228501233623458790972842707252646233143661272748577246117071489618013000361985306550771324035276580894093393283588877908928321843927872246816434045624681109458441223808256606091238048229444040097208273139675782107597301372360655475642749225510598658421082009991663219301954491288761706131300096396783683048817489339604407762304243490562781487966280007065944913768967967263513302347301619044965263530422122432808475507581514737147778490099111892809599277051893588454869979958636590287222471025244927235665263460722825148867246261067487695404652679069389977706542345713904655736450821013616489349343111144284497069226547937854715738373472612309783457167670634350292765538158221552814311293465937959966124911412906694088615652378774202157754082161929933883760026415271251568689022927737523825679248641440459024005210626164966209490858704073235142314252917131203683604096323615668295442625710150030681843718833167842887947075435107723422998581232190908731949825541133501231560698262413143804824030851196406987998917847876221602214394108676533002243084622886235455293267108174290890061264077401312703607029788727977151696669234536743255481493281935818850781053431292303950302209939473954734943379828847571803158506202058149485946003254467306804724097335715552551195822468554755586128252279566472709387235497026862189447475844369849940764543965069791716922014308826658326821671850622963315261128968583985418307189157008875156463015595837977055930928985425956850415932806662956429745012743859286142751120462838133909720649059934133447480813382068179511919172219788518434250347370356583883155903419802720042502746655684771439150252544411371222954889559490090602124122720590982690844363981379074908898910649432817978638310244868282190868056209263147733959819177034034946391147281219638623517028362297550700525792947714400043629129206604487936395249725641226078202534615489115167706618207897055038311648456460235319378688338990789187999794321961713825159442312258640150436806637893947247758191994682956259269971146793412767854009432949421590301537183149790824963466068812491134279605098067629444083770014758773528608102406045953726431814133427172745000485732917934684026045036134388714704818944439135863651620669893799953001293228753249694469445271056143776808215991296148826666811381382090024293977447854480211771190089188284120062739805508570083013881207258979886079257360297819908499361547596490209113305197937935975257548156543664041966345333572630070899602512388727067472972800343673707497679479806161350149899816765373578690949316099037137781402664240890508225479876537495472348938590398378537470784664937267767315984095611161757439697197745460275031944459058058054484758081199922129277453726086267708536226090592781590898975373829504425652758312570239000845072752886842985333661956939732777037496861818737326017355318668370556752538968798710965727816612785930213710138086295431656170717286150654290250108624373000842038824361534735517010959602278942345490677565545176438810258250407976681860170348833068680275721300060403740673117132780150684054164053608314586845107706228789743959058479255223048729234752620175504795888535996420166227735454189895797137773854129657262504593626382675913930432124966353748000172713411253649826041536525840411567041653182439674496986462411219877179970780314619752497462077741313543673254688228162324223663582464218127175790835216835783773482164107354836717653652927284076784834403808577158112029269719751942098745626401066126323780512324586136704138522437383479223389005846828284404987147004391485181677916751604848462710435083635149102929679182658359634075852510076552285167623755580062615552489266239769596503794548376591869736742057728832657454274085609002665313825075671114818040814220120978525174563210696236084412674418366768148726224321887534221010787297636945946755575845439571015243640501678356483454168570556067441055333070952794299129365841691114793233464984045942351019746597993916554175538222220432106980022364246831076261565391048674791092560942621104210651375557881703822743072123137790104232588442069212610943139150844747747667696618833047132408298691800808906708787801494281531668825294611868110498265607603605751779508480616496030097542452057024875856875571334751909178366338434176460486382146689909163999765553346674942449395846009502009279259462925440748439874868549169167361655606848500861978577359144961595611892418585163944096279682249092921104361320995625687045559337608976945893224068843435982815670404232607966193872196657086005174965524994643306201504903871860814205969361398799315952054558655576531660864868120723981700176327586110239929862279122343120237122831450102630493140681983696142847283849931705568065909672604616505050068663385729584898951183708226306184152886634800835084892006491634464778597401408680275113985178075761445385109630825059129421572041113010651546937548432216978515753145966024938408232038201794493129398013247373615979726352475271788659337338944273564603647377166222076523231553275852757187017894015978762414296433194762838330595342489734096732934718191871186379148587032121097744560556753846821832856726561310026094496312356899196935282454711292392899852471131340951158661328720566880654535730223216522837571043535824835195534978086420423499326312571992067183652750510515403435245240683903896861550212939316177494327987566837151243657132112850159412067795540575613926266190668982012301256985713148742903637132860202708594710006134258499087104542305771990717523947684825889544814718151952809635652279721644985571622239864952522575421160188198922467598466546005922094164139284082917234395308129284194551092455980408145799669766092572184640802052705765599840206869311584898008246391512873968613703054483654944363639428449229675969833339428841978902581939737226300896792242772775617226921664095085165421716515641912933853541734511517011039238470110978891486943166744253156676028485474462453706484267345184886507438695382172351793029154743974143589222607021767108595449642410260518172871476196021204430047070588791281838479668692917539204311830600904318006946726541616129917645826859951481169472521668064284952060461523581866742096815432722085327476224671875892247740629559252808773438266126622540855712103554244665876204014559604546120437419101043499889209760479304609756616660450005327758150623763966610950042810979884191000093118655104933005673898848649105525759695277405811012750480279318316660924390413732038937889437980047132624131869180259142587196069601569276894678064378121265380707174663015086441326075959174134550277064929768384057940037613919771911913944395423302110360193822207188614120937346455906904955723860109759864986307947854250268692707140182442589002678439322230705109838212461844170935819428593014761014122188526018130379183227290331599247722823126967587566467541713605915786331268131519451109947408238036429204907260526931349273749251137835118430854458670435562067216811539163738906304466577027168937835217408667741560185161118734198428519540942057731357770567549489888373520773647883454873131534414226402912866251392686885355045577149645921485484058272787750901243642049998204580377979949183475179254280562051945938596258658847633526018182521783197287445226180690593369977646166227829079682453449453860798336161278610564248031357020885651373946991713804415249543732413095765966816914016230721061260055502972830685868219745174836049521676643868269543438910706273675282015943723939543282940401150018560783969198644493622939244035314572082282147836526060966650611874033520486121748897463435726175009122522242995314890879600764929009384568132265786829379268130226492043934355445995458479442265873278143701221573897087911712996641923447074270489060672271836257501220154314995132390293870364335545270384804765650705513318635335608097980097406191001005488886132123211496046459161283796925227696919113322097353602285672451811668864408200372893250363784075475818005694207800252909443871736510963829629350336273710871373884595269054236533588831075857057829659651573210866984485635780579278408318762570714415773985622985334603454358317465934466241188440369096725882378083612419751715913641292546176620294511924785507730448573434012397456068874612226958090040090703756949894506711246290859572892660037296913442295065506265454759573709958873768273541990934893557580481534582296919785740248902507265820496237840579528045420917138032590463179924607066572810720378030972363101463501233973834101662714086134440970702141711497696895281740732628203142632852309665448278527031097775570916593003829568181439457616585384487051599321537893671560202400075366097314616429498961495106143609532222203857875991571125934191443448528709132870584533909188094122112574961956163892290661533632482654425894725729018095088238668831757774560707225203780886491840371077381731350849627139131563074667433344918941942123417686262531465514537738442379936818924997937157850145682537289746218879269304045972975733029732695052425790435203382951718778054539256433572421657019819276606413725594873259049346790383312543929604601061709017776867629562418163739517796370796374716831173957029995550055855723686592259796613129654362473840534647808947663500865723896150186778003370144792528015992961379850480003196264922371210813578052156035599233351952458924353322627694822005621951175115477887167452914115720703161790711420571943536140131704809486572056617287286619127980172968880608912016113000951196607976605924902014588043300335634159973968192392458059841853175127250795964812137091703979692805433840216884834385590858598396217222942204247988279764092786228590216916392146226904190458307762357356303430489296099658247291641259840618648923504528846033655865602589973325989504300372196623273116951194342563121742906202133409482180625419504016557421882769936373629463470145664276836484193197937045925559162914484514645546436164268237880046362632450588773092410922253434083843057802054319558871629685960963126066782128839091664500020552249566584802965414002690502546901570771388571850017420575397562622728587309012179474673022976221137282893496295307962206188592446480634708526373572409730729160235509186651223267295028765780733346213529963252448363732041517983092012194638244060295048059304227143125757983538367999524754637058768234094176362637943212973901273710749794730417586683674395072613334498559813002836639090441290233898303989224118213686401948895187894552362183102619938380357037738137506774437052435670521240965327550564620334135859729918231938955647792334493004520008686363837462649739225673545005878429324100413938495561625299496370056075223408606606891754906195554151185985446335249203941284770303025065469686503877925670492038402852608074552109702889004768448416773492689515381879951486826805807791866787610220834520208055424137136748479857462900950060680790828612045522434336097484476338589520366606366050297808561179634043740337640342836930773409570464225675512075400809230280092088536994573139929622352708014271095935613476386595440974301198960912358660623810428157193879270133616251241707412272402754658653337435091160044374579355126290104239854383290392908617883669889163659665506686200106538480194837068803110585869792578201928649748498400282637106104486186191318061363448453231129352010099110270835971391731690085119778680767158364963702719141811601970258343892374980293449810538302227464472278296263315482046893090449228125561640316539608647829971690922771564652894922127464636381995569943664296224878342653098964094842178764127524484387152682308219026420499777621824438543807717628737807423158252218315703187969356102215293605691419981336962491859356094691992707711204113842610719478667610220657078213010417527399358699508242170150320092096660872758507245723206332844640742359847296396370654740076352405817206859787541496672276361743407246785604540809745763008221991820743798478070163672847896150949456012909686791457357848137349098660614044837597438296476572745329533942600078021199325814833555838696193575261384760532568983124178986958139415856203099903618966916959316824813058960765146214514125859164186269077899255632346476110464671253790942089756088158599660532200003586528529301802794177280445916936312553186985931799348401554625790330005050043310192105196878026395574545907783809025982326679856807523825206000210021176824277968673903962643978100208826888081939547876785878055343843041063133735510755885277702622895965028919427310603627971270187879201362819507762244535275504562329835836084369326813116804022266109779470658978433270930505952240890507485471540106529086829817133132885748981134743558928850650453727509974464770901219499839316366232644751856931411172810062131169417921939663435773066350408390783999862900477073690075893143417113699021705835713191216571735876084608365135166753413924955940506540060128069071693951672429516637188260074953556747396006166871151941850063946639063474559326141685982715249148762657088739916485414383038629821115495442946496880302485357315724648077388514000009313539171869784683397505531454991078415211858596255770061815767306664936285842617976962521080371932647886535593070213680628252015783310165706448981356991937251776010907298641524336082746349694341701019222671760503747257694450501093778732911404517908383214447664591377624461425485036872145561234367284731462813795499486599709085322628550909943971324942313403477595751974491732541726046417493698112294061177368312916407776599450508564882348959644961420926933035620266749007852279345406631845678049583358910812975591332544771410061505618641195045887179202200907820207855485288728929880353961416897613253970231906268531178503599394823617194315716320643532665372370481835155266443510133713610127685936057197445798485604189351796183146545730570478481462044382643666906481949884065707479822798288907602562620930324118845370648706378195679886929950952518516039677164633331614639653305383818488137833517861518328484033532992767973275634586526384400443979654118343443119718358826424510178029335704350608458404313650359377287567297548407896726617077592093765612410107528914272733714742440673689605525970511995791984176788953140124218571800799442686859090230366012800448914973365550857185465191085894479393406665337835527808552272575172087655076631933507378282360978020017295911310504922075126470373740969535521315431975163066648688997723780477257136699832075148741781942619694412445182214823447228251184364605707451105717949580070974995484566228846885931264627268368053113432436121851693913731257798831430420640674061668323370821082073405228629716166824804939935891230335744844359661369320569380682345378091272966669551681884530447692096493814642005504863340992095542947602532903800848362505320323894933828784718386715350961303299379544222888242370299622986244616025065939109305101515834544936079491223053386526467824157015728447184719923935759815601528188209410857081866300075729533823203535984315599426130455833117091782022988975634370174043631945477702177002297635661356779908018719243412569759543383374176688532553681244759164503854404105806885530585636676388825412771730850673555437716123246236390677514251971383159846452592664649839164150877435114411078246402957511778433966918043011413533232122197769966254842647601160614294659992627203747153073439057248447692312515978641902492904186395217042476021720302708622937507629877942418287462625764321768262627331899093289318769952678695136229637090355003227733481304788977209887142916618954736003272165017381160060066509563319767674724430270843124790656732166056416615613707809236132282054195622044960132856445242417853268438231056078896113146171497752638537549008480664414245101909377632028258584546569231667100029724780806858236912068569960284184491856120621481600861333158645758230336119855524953022910310505817466352210173382466274733941411043216318979366165227925246872533362125727765598424700330254787829253006662851329538740816875486238630228408320803776022691287865584961538242741087475182174257828238130319701730066158648673321377255031196426761861652632491348018403072669123974280605143274924368821739557521859848610455917224585778177706858846656193116263563875573667094947207440135384245782230362248518911536362955556832299402028135555329133130707267846375217676203010348938683442314139586475218365439863767910685119944249862954424051138406869449829956553840864185710524435209946226547700350492630223077441063081445560887385797484262604530129694232339815017890583069478833016181654534298698509014606099887216635971696540222217179457548310202084293315587384800122395760583864275539820322696501298324206220714896464525052828651402721836050283739115478358804894761629832921063318132741544159412068784180742860601669313343058743647310844908251706233993970303253029424552262871162392017864981058863347409360717457649876523488275177791305352393284385181209300001237753023925004724982864514700073447080072243948792249691458916706559263890858299665920133016965406553456990750966860031297473333002539323218577732633195332207000144260498684674640258242046679615025816695889304628245236552556959494035441176572753565889871232888758132912138561835434062854893755921447813802003852048417174223746123429316535097647420929800357574956685351909511859344167350454608535731060008229224912211104153243160138083293748831278080835702688858394985704285164246322479023414848719128955081113586380773011635972199564017209990454971105935936535608201348521501220245686502629675825685432821028581594615181333805240498457946950414186697023433930842262074166150901298574329555345292047115885100162565381151341197899039209358494604363741507618625932937463960114929719247790713129516343320886501268066652823042923565659222760282664658259401872719494281117448012288218267857963424653185016506147700756125923717707319570052753157877172252508754582209099646919662356239667457680604036669059637507852451574984939740007624413293553611120691322450894751420212030543077822232983574946874551876459590144282406401699946585115233077543723852712220144883175722300607429047508903449595199212707745564283128281775030464354477101445244166416825137078936898897360520127396470548484271622552366583471864911660019355640942348680315051462364333494916737004200600361889071446718237480376851843311170380263727717081265733036181118010703909409347908920636099322317746231717544086410555977409259817981709071711240604843324218527421221980622853578811522428728388460125299535310584396743775501909854441092777356665166126182038654624612459669784606209218757035517596164446921852067151184374219901253173189896438115611174286409950297501271641302962170222511872168873664190790690741282746128932220157778469392554701448791068000841935654973344824886929150067362272494971079800015036357020524795085108130975230707964090370269352167455664440788428347211890972642539425088313200559094461413591852473913982099524257577039773336922761605378618301380718641022298851338415863767010745069971599222210238268777389116077767136443901166746651817826875917365375846867173125086105247295562692564548487382386339666042896259142975767511151124812623741782457471745719068182825868232262123268076096414758310307899945133636578609916503878611515306574327911114139844605221888939386793888773010327183322548462559933532638016616283783336861838912859838880255711639160758697504906565184126533341027988715216167383965999197559258085915483653637825942811093061078625486957268706334983439854449632958018890134426388340967617971480382252073542450454846911638037942492133356238974371471538632874930308493194470851386513687530855920447074101231518006927184615951317971116358418262253519707125488255945865799420440507832119934159214276039841046427152581587108366802117299246204923415339596671151263059252251037103564921102924883369499842794610999177293382655524580345247316528930660131691958471099588847006777772589326663477014771868258258881176719160914667360853145790057773748408393774966022504385339298350602492309551751287913237991533233406802889118143121583391543337446755460242817646974889754798351496416523135558491426418750349100276822183540667023244862442212738557072004244351129067930610216219755450029433761651257618543350146046762236230345773420865511727358082992643371166197059722342895362155931745709141476480228996075068659404064893159132655274951417311478475140471366949592876642099082932968682062050274386317628167551260177780581430702354089362628808840424595811246295588060535124529454302122958601485725050810517999145373055490232587682940843206565950998208590231167355943457892057482326029758294338465667303952093001633493917315061172151945789026234681374372423423484948511712818366464517440003538460364310556469077417719406833182442617211743016823704806323634656096230632612400182959568812366395418575358376972226325406235067944529554949098124672377196797102846610328905042389747166702501186827353713811257786556350301328016318209661818237684562623083375288154409703254034816704982972384279339381337742188400198557180160586543079139722274351809820410931272383469825330425456456142358710269419197891537352132806328418689898261332717894787908541964515386094329180257869364640317347420968754850437894677404413397238714161680491048496468823397100812506305460310340243794104090560891197123247021180916412992646591551851096017989003020876180237909585296305671709761196152589229387684014132303416181129691454358912018105921418320689131425788058108321185582555276571495257076738629669078117553558826406486397508798389660736398653698992004886843763678767291130695863683304585810996886203104555805001419979336853339405736927319361347648880493610297798046132220152731663807707183206919721911587620518075631674038706908693495756516766248416569983394008424655318107721751131110771335982210448993238981317218718214291219828155053856117220007873801316169485950070961828023873858876040904333766434428146964304011603830936855971448146162054077677182984998849375355651863641880975875300619789995097507901537839407775632959235338789605340711016898432353043242918139209407073054986877779520642552458506477554009596328885739135610546936953909745411583127049817778488349978761423033453270680474127005296799306279558034435952748936607212778813192646311017562652008416933237840843587661327936302912669715109110660356017664670135926913448902687625828197634045123693544371835635938278083985577146177354497896334581840973725081287449633581241746582382003146043247928881854065617860432323983556670251340707312609529948880762558019302456188463682144938877180736786286490167499336447727010640982679960454347892192647354427239489807036114079124086560713039624302821347830877724224581661952462610198928848760928481197479302373894867416425742011393030266254108424481572326121696735003990934797656126409140961694301320569168236633363077787935327124949219010842516805618079629960977130758129142286382223747697992457258409246869797449449230733052098861572801874311040617958580389295713214210475086067564029405882482554314358891575852931538123948361912670110017470311225788636687884761641584472367283700870054456999395206951079165050679912819250133033569522466930614934208785825537441359213715624998513415770574185569396573275362811681939406963081890629131064901994443556747258292975873988011426738129238246417545567355773590731541187391369775646452213047071291319893938286417801139163638359121115758899773295334394582729576690195313982753350649308108500456849530635093835691398062664090866084565174269252934725132067025349592645056094110512698320816372624988736505753057955665426302927580805321394692632803315670439461822734758687659620090950540570884364475085873272060795494727266204758021695869274313208207488616784374755190435735587438868095629928751552628807884275176004910972071128011707443413340776701521957749252207473661632716585785788872115285097572671753293169867368539941876238731242100845108236948035970100743249785384974316261114802208294396730685649684040897192864714500890469099329322589968051868621368648589944014623182964763197609703343393341258374135917188848963991506804664462215045765818333442530681744861120346081674186930390235505080290524703192186704865310540667348357442909168140026814963303325690008254591995960404210876724940569851726598980704947884889627979758036834860881102841927356746980218529857824785154783963267207968211033702564434177454226745166983100233395312323412067422632151449218743664540809394994627279915638953514744344711320111869909303522256186149128580879212091739656859139987375735276919940362093671452041704429123028645043411551662740504178733685812783809449812569967774724835771780604972461302391408643829233869220805752732761916544799607839828208791350118467629841721358550478692339590936641723421053746380957023497573730075419801887552391850223623576557146782647473458977409947567363916720311630235371376682076240991428726179550178029388234737083000451699795274807943755493695401731165112740769749447605168217539343864228729643644534566212443772459740946199067895689270882308679227928857188439308846759658769974353734068614554579355791121202356138855753672408740932480824648259606626431866607692184963487240900424203787327712597354396406515508280694969810082678013775932229779561577950414241050015284095841254419926637364670425467810095983954473078129930330917424774610006405265474240892812435713421765687577246819074039089462376575676821883928984764362248671867588798537310681412025471123777049705787708212894880062383618838387681559771234819495747282480710060467344403485048714298112469666635494430853276979541105313300271397568435269624527787023357944524815969044714894307357615812363476483802160825063225945538183322124136772265426886086432412812711775057071832956317791651539865574491306869793985193052897841868306878157537230995537927954134363656277366821071217642717057290517051772629411934031948264320643908828681342976570647264210944547712280180758887730733609382635962942282783613568647386930938467115543352505380255130865232747903967687808876447617775205479105508007785614523424089591708200108520044299343318342750337851519172971337396852297731230553406104084104426404409171277806782916595581286151478088864276504030835750461052017655808529097086135011973147436371459336110287912617682679294018055187679349398724522480308639099690553026318810048594801965892862342654461014966169790354419990174021963324506553288733900145157281269467567438277604697582920517931648196678471304207595377161023723581433029881680160703596358956052220432100768640546683081156277151923800244813437484258299647757271561968466257870100265109516552009622022192737379422842050957423484431684561879635121125776637469879433520882102978050061454732275863823020903504336926844647604092238603223149618096889416007655752066808482996014761287128025285266053227868082652334416012328550364201828454329650736005237655574689601982531219034367044123651745256328472704359271142565614955419327143598188716300905520017157054353984251081390714620796824312529434424653901260406379678397684873063373839825532711569330672074990635383713195206762603575038979821822356718462701484681429190006524229463689062036172825083820341281343296147932155189124057049974797927940266693505228246022803338204074078693506764000702283414933082116297916343635028092821010425382117112180838496521317017651068778385736193359315201007481027460887623473264978319938884003228654924809651972171971618810008732830102810838722935643572254288044565215050069340628617843370896187537181412391004489262072402440613638052434956257723202418616214224787527609912126068783900575310279995840738817832965445886579953667516089203086905075560580274661651334956983641649683276164155278144984335856951241773788436998511451571870171778704976923745052886675421474389421972463651409139037587068685663681363372836441750897148303862392500058634124627242052339012758320736619395488767576963333208641974631415249132955488028036918323635795523993758986984755058976958841788890057524117551471933784059187716904920476487238795336857573753231486447206197971503580642470929843184225492280597690814153438368374204114557516923263214872316240785089191576141165332580184811423319784423397405199291001462864733682429930557016447038756268212681070397193446453168906077579008777650289743900950712831617188913903095155429837449892087370383431217830664853785534792815574308687426467402098873847761651303824762348290250861650030557228926059467056019730784744775682818401067410082060070666338251451755633301640219077507082398132140595030065731997044672040024968572099490697470209727854284615619559513110518288022228142427064439352908607665605710112048453080962665499245401082632545960238110515954319788577497240833851241421645173214007847225807180417952034537349459607402466399563850352016597238293163215236172696514450990543171178737384399610546089863551282580156656090444964768112774208954649779377691812696934408844566923740166125886413986155352409322799683721778188164454130215138264304200638179515148622057797465283358025895415087607466948330773833291946619928440634155385347925553481744224695847738917103409788524525168868633107517550603400476658323745726657603909183136651894253878094794989970090700120869691832318812435669921932485151382564573030563348014791829052964530329746900597985404127617059814145042109251471485535385225624447159621237703318745123653116936546681931133245647797286863637816777236082972915344852741823225630710689734173513148914051762356323703163245970009919398902651188123441642332259435436093312699191209887448560759648301228572267290028234874452486240445818641672981752073691065972307250228117868804948201933780972978583531092885435412118427779725460528815399987328008395613645501431585555461817798706851658028114138985297161681563003430652158657632451833975241352580850826066517816968041594389352498750073842979623658070952925250743169488211560191656864860005795042419973500807323609609654842738366815589906655861528123682805808570707692701387322349697953434200302387741153873726007751783297545052820689557324213695057498093489902560349972582664742340002981144304154168147243669663111780487739191933744248951692644467590377958900866934856215294433491056649462715012589714412785636005310437884012305002835514918392676853301569725922001957413532735837241091160075973955242279556666088344731725546032014346397781785785394945379400410281537181718909772582101856034791775648491507847948339637472907568714512045374794992136401454343328999617425279434429399448389996710957189561556789217977135482116188394638875563851203251152795035665112475162396138557661212094269071501157522142436090309815668533554142577132410916742512467377242607560398599396826220630719688453600476345767289564812249984901507348931676395891864434412095114241265450393213498558185092811411563421424919175785918392514418078083595071378239169432397050581484818654746443297163342034483096250854773678800607678446323352814424212283676469486761916326448702026422803476401149718934836629710134176911501098658066069355379281269315258491212344155459414414965531131561825629311107891000337281990059313975532697711400833808616249586500812225429440324865534661197192452738852698527452475187905724908644728201773300777054788406693307422013114045218197209667581960271098950513917445154575713908700752592596056307417065188308632297882189335290548643010083319487045825198569639902252922028830341833738661055003122223254063080962929990298456719676171949147153669580221691406177923916333149613521733827875735846858630949354641217831315793892853384048134982937889868072450314301694539096591427745798768284042268866605620511935155579396159374701509633852241432996597827330726445539552075612858173963824203712038881746032453978102379847067162974062603829886461995434729858544456527905553456226183282856609987938942274985384532311138193763495205476971428617867734299310975863604625433766142701376529468163251413348040007877042616811214581069352556824783243931457429535197270061477789530949358458935641677835928828221143962102632290688523930081773676276248566780128013065511460943302570149712879333159017582841373256056077824886991428021196536370602903472541992410319605031706733979862967018616052909716645942194251418803172795102590991579669104118063094552314227388833430776718345167140489577318899129978304773885524716030371391300973291871425789937774720387249075680134989365445753316125478659949649402465749245846858650610094654220737121467365983912179355518147824406329103106785504856543189889381444306807026264303528303121800428979725565659247167583290323103564768209608488872256642571996114251837074842980536173815587116640334774283634553495806981148596874697295450114515236593562018665157216489119134962202354478265344186531885238984887007473517108824450624202464921306033818061690659373239487767163440414775579682241805816092017259831590741973243602295117076213786334153081563471005131804785904213531073003688220716805322954375859019392162886999909126632974893134717598111978016079361875088376635649499367074165844505578261817579624676653188652018208364940047213407515952208336752722028568322433966191891826449844050967801416289335750382166126872885467243553213819896909814261913381914918256304717823057531521529498538244302059599954580857934290295095103483025950188859340064009093916941916440639712109066990764923304357920233688077185843542919568868358763619883227997597507560578283236147446752299422433377496987479806934354629020370988566387326887517192697796084634961947919525627708862067818285451075562182276198536622456654739893335416174070974446745218582512678724564832724194317908686285141543221580638386078433905298647941928432620421255274518676661748719883507740061667282212812326524173517807962156343823141508188848973487028103908903070472686421253412870434540689473753461324075126917171898153694614498757217109185337078274367719122229714808686759153791167748784599129970650667640808788177910619516060210295053283657428592894132692615859319905249892849123411563874116734757107425027027295184528817616317743615020636204882292775187643192251786967886696810761078041989127608801771070248340701029020273078907309459872694785902467012159388556706487252325615349242893368611308307726740546133587023451851328104662828839493482280236384840854152778624658741526046738894733257128219268958788337098983343533007413618247635127158643339583740665813054366571919686496513260920896716881303613406170776589882205794727552484540677963184100730647141635710439352629771869540722629472966700531682796100940093291179500391749322745513462217726064235107260896888950695983810725438944078129898118919253901488750517154313012957636064841125952617803988401333320410989553643465785324122221323606807999287584774882570840964528220141203030150068483002784585320357513321627062045539826993552809618303417842989077752367893443285061293943171205700192042509065535369923928990568178056613491307472818656889400948831421996260563777351846631504891074156461155378361804698936107699757094237239728581066616464394294450581429898880630605753516030300836830544154960989080970607912139247127950310034543668294558984193911519931024634322401094114578028029846300178592287040200953944294176987028035987076288057185170744895161700165632086116123498742849567366101429932344165662805816028910728624970046569667656232406993689659827700117088841010611068891840778858261504839730900326085887199185985001034049930713194295530379783375918377971593222929432300086232059775316031529758010922087028518490233139435682876931801797923316498898307108883463198462923953367528351491617141128012645903248100247588458076425141078737020356914870606259933196428206987217438945760017287777788787318887580002069162524732871867935289363378054357965052461959119233104897222683946048791212844320043299940135510830795551519351947383333613205608850603606798236416426555866617472280331782406034562645027881255325218879125957329202179399083475745963146078944428285261586415051112475066823437033956411278901377252261431662434732810560987110372813459909767300230613952287530280725685410431497721851528880392229347345049302477133161157557500990293738587227436920859507096474143705388156746932623219717092899489404624495974113526660065293895528331558389526714144733129047107072553625753887099479888723690965376031015523674856570116508311728222253560391227251679165503247038555309796775320781654607215406745858164804431911334401407664781943404800584934765070958651553424306515296961183902816450203528116433544196725084691003268756901732239875640320148009211775807285431893402554166454075845439608334873863200976975829164366217959180024494380552987808755351127894830484803388633595403670513091506496928160144209832989576623160041323974326195651898523186915194897475641451280404075645956557164851508535983942388458981556996580692147807483400997799582890326295012420410819728816823596078661217544471752178441434977754728130640764775884619926327646113910533144757610502694325338856594941088611386550875175989905081390548722161358736726974773629783947824802729538371343748127454367613208485510561571762528968147561811933377043709798889548562780731167292907258245353009521793884592418447558027369805977627473571416192747609887968114317268745738341809744282084779101289094874215996873908344152050158699620968337695338246982260297093130502855099561086926679042003526566398367711051182526506430930398938722029908457442333948854614845696107391765647286925929254036086396575563989380552100700574432638160673082976034686417583821700202740430088559247555012198297678325660874550621560864267939932043287155216526516269218234954395079161561115641114698063857624415325142975027599768587817843757289234370506263636297363889812004813003942232459839383482947676225365565595516384743049859081724460313351137238737874276819170999490033075171578740816427170069152221818918507911146603493706806972116131142345086476271479866686207105644608995095387984060451940980068649828212746749946035572692629610108584914389835259373908276003235315725784176564675397686211447930016742559273122771606213903346324365427626673052842914592578718040870954766907678167004639828689308709414885901565977106965076289944587649177949297151095605158106836243401103546389146343304051769203106302644684020765466728164958502207313571204439227572041682526385429756270754139988832598906878392495270241208458885838917013925762087515051401073163178434279499467332188592046624940774330024191960310200405239235821244652746170227304545913144987675427095060251448493201961935212011274780036389339740652884111417196252013739951449289173298472940624339601002901478184529877533192801584926419933253231812876400709214015577379284404337543104465804566384024224132796989964983299551736187378606665776628784719561320442576238028963847225676312730873190854649897205905343301593360676443735485668936112164195963614221524480693295575604958396275870610921031119236644231034464335081769201119280113698854358780990997040546629920581623457446809918295354992367989709563547529207582538945178815811954969066639631396921328310818857444570456996549120882381372430689698953674185688792652909168286413984864078805390885587327218570098989571493053452186667441550130320750335612425104192590316403606234709289258770705652576058843245334264047569547246051835173048545740611554453652159799882441359130314690965085775865799509123200000399311832228992688793784254173081900319633842670509204820332181936622049197202492303399005468714407108892580723246978923423449501412505925708147048347288196188086522040334673379568389311114983867742078468842932740856447078151830493213400168619422699233001463319789525924494782502780743007511880323161524103351693318293981578455132002372838440537413329210817474408954446406560993430208992988855919031121623471304643223214909856807664184085439463862705710410247731764331283410558031184678976974036735181019499851761472208902872013987608789507277810025514972522396643542653966560993993126777415936792974867578161596083299916415603137699970191129069801545767281588155222455389758895830657921994121430902602351282532952032257143639068754555229216148233650926775164914579756762520418016776187260170257215814977430754004386505667054336966729536433518758882279472564334978117720815585005353467494880566338527906134199987421600903723169016600438988388015989361261823112852330249709602661799900020829430246175610800384722674256835595590033848011703120130034721165482211036079172031628891349728715810727816717631861316078995091763454179050152563844937485624033413469950458667181142731668486949814284083286645886756342315002314366321036728363186870951466864240685421588249053135179579298640090270436608410302262450956435112527916117200882176213926464283450849617917724495718135727384706784175586397229292992566799614846638277633005473267747560955236895608567744214825931337987934571655075888901841228900633189353126175564097649493478683326722024177854527069919583502402596420268890991352947200457043047988456276811422154680149511294703335873599719116776871800756612452899988756803975173853435521295599767366863393049699210776445051165173287685389629736573511779206285438556872197203459779056064484943729743712114460343010381872838993560948061837361051580843166278722359290153808760624992688471790887620120240824022863670158302721930355361705215760030661566687846034493980068836246059888845225745349511597838510442015179073288603348118646122203014568552979251774476531372719014589820052093762301724118125604349482812669890741644724847994019855874759198797603513971936994832200958274415012257812244932167606315855886089158168104296962816043831760521435076535202159021171416246054697133577928844655946607203473820784058607814230664815377908830182740075156036969550158960267852885213911953293752937043645091217978419115015153501044579011202104418360424142608994977890096698901684277550629851241067152496772487360668799714648907722751857364798029251370192874909213262384718093773969396371092248181689164856690661713033110291883564405095990471154743540155797323328053143577822085529579651468054238130662984879524959462807840511248711247429099627954683259524973348470513914658796792537629954730149108143631516285560173636629831593349754471413045420270663562508846436723783064586209268495460643310219676480182923246850682855597719714673900239247649571008734381745233030423226283876502780579296880547961851277915584030822465413811289319161565565751787027487388081648134392464580605631400638429780912786465383306945649514320256700517203207217116805174956628293378613766393180081448310785847356509933149850152833446545226194948055076792479546964716348566179627458466450213517553673641583594439502465303550519680725959275335396385808375675494172127706089947531761531735398427193445794509661410963029065684951755239363293489485753020142403504805017621536768591975604695047305932159348318027089725066488332845875322450362837559670752818246642348878483704981677938714346082120910119463389293208696973092491430725577544911926039218900635984665327762951046559434091946278195525488704715696859126389578209701779307345165098179425788517007931855377947293010918807375959812527334761175947694215274145620424373913604002970375120358434373532850269931357913342241210566966336762694335702917802742847993829893160407739079616422325481978934007486428744538699486845224445149515156306111045060676891230361107780571462509956240351014505661707590653572861771607762059252100613896822549885535059161567542337750325299412091692574007023174138049369588942908272015660764131249062923057534560669352143857291171966133451528644737295177164812622079091192871992086045211726115422964800660748591184087726059091318488461483132258132479669628620738639312784704108324518733250373799741283460821795964031153893484707728560999166717860976316991827346210795105602465568503033153152254682315828340926843279718485029819895083106784260566714345837434823249216476612567697361711979985021756601984580465166946082956735502926858797903272641267163288136024385842554060274133288053671902621063643360863911618153235514231603794143212832225257044697835938800315713318523412162519886696306552239871179493656607321859434222618495992065580177790026256270563400672353756614904806272657144919573936459577371093214548375808994371549220916029575898268942593971532285319088438607052955662797385199564685187956963403041749706574391739169637564294669858537688600156949521580697126837030552310213195099805783438027085208560474229778518076792062681234367342351064832851381975141060016049912016099683487416954393160818106587777144997052858914808927646241802781723969917366604298528940348147679667334359019544983062880758612768705661773490517231003395362178394861474656095654626813044364508427982967907466481174826474346829747226342817314165020429614367510320386101790090482747528033139645929425330316593798325795218969548048976425377094031791037882817316570065397426817339214613259849739908687152391368775132174162959944598024779017055439983169047604391259480813859716672401360403775641668910526546331386460862139941057127167765716177197914949415331721079206931323919490224263606169573822540104899323702611102150247425450879234044721033495262053733893066709447418231909725122794756086229523319942115747010627737950107965959937086523051790071746921870403052588206675192225225556344874309260253593976597912822548644934433990916883015004366045179241882585540734726027805187520431547833695822753103699098568249127275572491950231397866316946804460212469446749413572627173876610791275528270014637049182425686491879088471085153834130187862005142538281885358469899343013914853744654662003177827187197881259617764917356772243747019121969400465811078650820306260327248503951848241659779792782493768387126317360523378363281103242842820649911179952936966367203941713934800965464851867326764253332292682993719537159328588577708351744454299403070394984977146336036714580663614312159505524420612450921642523084196420927546868328685024785297134976916416823217459928725394723316989411760212935565891205752416298773574430733292241406947974922445409709594752497670432020843746216006444686248044418564596615426788743555966643320847924222454514306371129775337348474777075539581347816769477132506493794018224474248047936963651785246808147599321815326802565844086292538388849036923036220018346292213071888033126386150960303885356130482239407808183678356749126781218573518447781841042058008950305383205107847399468882667306067086499200680509255950221121433101282531531858944584759150709979936645587732493002740420157444252000043476520259764639854207679773783976155636244679552122948259971129989840714351909484214668063071171730975388465543506948890235461009831071614167015515548612405049781100094264278555264621711810728719462118557827707723398009596448524080177965089894168660316978409114648474778583553265491710323739653941748895425617248608606603795433070702766962378453499268613677020522303855844894397614604004463588761990338207297758349338770071443811547184676755401447273942425170408081444269921037789788463155131202532272507174179535409433134855911819393801683541142859517274241068301665916554327233985076106731272051491347998062415573045496192324864940722905511400385934249721953523330196898726692191930699091111808301778802414455736624969322930495156760337612476174140217027811031673195966875718578528488439630979626897841519708085317519508920289208720335752463235885865674652484100709274715129212115558143658495060459453213425105684331603083697116713743288257739594793582454033806730618212830792258875049336514985024071590699118010024785890775912190375726783071131291707568840381588350115918975841471697174741802163330772770364207314813880806508601987273927606177025545959636894533661600011559609573276244225778593119571391698231874778311161938742098080893023704896761254385544047122475319317629417077090008481099245777054212693721952508280822601388886937022700039921131725424693187340314493677390804704448497306790797871061979022356582022194785577361962111722334754580992209516344298767984613244678534556649214659591924608333059398258091187862998832190332529447916162474423213920279068654178615726263879823504336608794586385246905364562398672045725151418123008149239491011430985345215192391883829399100681889248643481170921758329918808954499018624950237702459427574105811736959471037302261678482687474193232989655826769435586492165805415493365606499001957452533696801750157933452871574744617533575034575627475879605653774759969553744956237310526683573922896480977362232013429440819323553402001915458962127760609770999943394988022061001700726961092850986274369241928658319771337168701999484746602759731524647439801918719836328762504308023269735038393311373466142361102412421620937180574071680316057923849832490728043332196945283745202611702518354280305633522217829045502096031172092430955218862340966253368862668339427170638604330087614412354394072694328827091525483175665057077563003068918365104049504914758335551097118062413120625536921507174878518105337314728155260967230169993147091082857951320836665879039601564093757255364203873083767083322070669929669318567657731015187805230525128627803010143102310879312200108667378172176487311152233584845194849452701538553002841999613831931627927039076960524152271158319010013554999895691129081742877201350987214558817719922566656510698429725554338597574011190905647416683702077037267263807272280981465046687382049434119952003744111189435003394024460140357600168611298399374091987827429255049594234886216629152421621937381247903302820246126755888871728877499303973584650778816384394581186425941096608785302623122434368951345055447029356255540301771449211791907901952687209406983542708885964787030432485774362108655636367545160183918807757393585632833885795333460410035012727344768018755318912034506173936409730475472649707465015566799913716125362179443743662528723498994408782313766330489469312981259192414899438195148827782417340560439072205775823676822829371690246113674881867905644394585980054867804690352152424825314611064202456045771936005647229029591064102842822305686411404361850872224491639678369342434240856584493456602635624800729182108682294696508893887207271676664237757441961650735610407327983979294133397958618804600627529986202325869475329296243621796683856555282271289405564195886146352984753036396121074645165954653187153510229444751850871592816275744065419402606610424664530685448361360350525713561792958305169391204906729235085555877132612688079950993464237744181019814625189334315578108920571225055930848984852738170921193446872328002852818744714149321844151405347049576671472124978748456452014946917509237203920443435275298024039670097614214103798238659558357367300839229405207509564365727191955179396318838032319486802012305068532843853231560593867727411034336978542361230533180713930905021178618957671115868327463427574380619108878965937441246958897803284337770425467770507580034612637343219646639712629569037185526069388101258847071857899948354248329669852790876565077879699656754151732175731614115005782898445497749704082467891265982712847608557285511185379662683728179976099891536899374165767805382826460878732538642562148985608333358124767917763766574768410347748943340061912845727665371705344649080764005005641202276618115747141708094399317894547593190465034983624138658417287931495581231223111619408958582040566566839468912167405661402045415942686893761305294031486158753236906898266539094102722215649161903544570079799321182957521433591667524432993078265570848573146032575691352976682853776024851374719794800105470304140201891987372893904326885426555771593361611793387955457158229346060798527814462985509828231400227416391963707083188729705832269998438963245291746575532393394648261335039779600720950409104398940032632437312070898626454080553089719716272897016158300946266249724183667266029820506466364079864324303457029856001882702550220585880509781258168991420360267032919052030315673847579679262675432834457410343918892922894535808602609872595498157799642488362231192653962912072362908251088390187070177935713966634628980266136344082157710361916794758300316094963813704290413743040111025020458252402428026115653119293425469728938954103462919747123984530601698194148898008548619614132110811738013913251368192326851410079985927416907215856051891174554465122474857951551051035234023450582839427102889096913373016552862427750282989146221017035930633906262579518268552770163883937836950910014265573493722334894886050847811897548021706065939995391098674144553920155572782702326601917888817669030837228390610689978316422950500224774012790464612508058483811018536447806589086853846017268106615239579493186088239616109995880390319250004617033918184063538298010680736304966009968984939139427268944021758204276027140569360250369596350358979059113949716437774256431110563507745433687685088922831292757983359398897286946441489180304230868934292404354028199512055777719499468358153648370501905164307597432827520952492711308926452411723494049306116015229728371082387201465584525062166554415119732090663112207560524804622980796239619709663156310535529590485995024477920224420284248630274069238279798160145230797233999695626209180514203997421959791555644651733024847660872977769232580110514589134975711751273656427851951864000380356687675133016517384302157131629198870407056026749718212782008841788507119864893290910545788104533401606312228644420411801340429580176783904988742778240206245114123796343308471387256253078378165090440668052960356996552079696188057041182572792497235723069560784129729264890461018364182832678428012144584041621075784217582325311846266503558163717039965032835529334560689929802429162986504586828130467577444605844666962173469771006770987434456828999410420020018767801105225005419104390607389055872922026698559372510825266594291267182541709416174143901861614729616321217233307149626242814910212713484491634854108890953852050311553492239895736556937181283660891641689705885583976809024961335969040643475618625029179044921002189041090063184880306073327168559271959668928432918203608186729712838016974667347785622997224514563654492236604243203948182571900095732637871645546781024073934704731109679729195971073677100719409254324300106903393320162580831020050729952433838325124253725719500886354603048599015690774997499315241365883600874728474502706413876580978249244970171184823100938953504090760914646366526595921418962131280572285564883492238778079883457906709518923587280184094436727695830974818902555502162596892513858137779654208476425808167509352825782834339723417702372814387325705394922744936476982149505417729752924423277294925400373558245264538601812107559517600915644469707011710504588520014371749290373370813646127601798955690652099203482427075837031423554530301188860486321060101124786741950051858946832105708484755915674082353641170149917873312920369153118093787203688407865479224090530677667420755477906012232969509190336603725102907877847843247861985124543642733255212745916173240328662752223475171152548609197861367629369526275500958995999410090672229663343521940222225534118495809525258042043317168018534947571799743653525738524230613298738061944822945926052262839657603142381751487995647540867276971705287849434568973108739284612468890668303838354260110814844021264291703851745772078867783523281491411289305952804944568781818862431532836354886082308759914001996482329891168141064782330543626250806920794062906845851142248158189866461086670525803651838449640900036972849481618157423771314177698116175269480870922446592174566272496277093854798251237043860236282493090205681507004948706487819983077736050599214890866474623428592277265930012497801155797654585292018601264431265076053369739134423398616451296380825292486847597146152563106165701303104744215799284192972856342417388566890355646016149355194956014806934727812717555798808167598991446389823583909221814487560652331974546614859610584390232332978101870480380156485317499843939531510040555372988660214839672844658991843899753537324566151295919041151926962920520209991160639312356251728901943745187340411769125442914113446324455501259084807925501811598895059995621642425556377724309348699035976478639744497671084718241786964364602932420887373756300353662297674530786969833821184282254770656313644628777917321677699964780128870910844236964273861286263549119272408555248749042504856331090040223982622965088514731062974729820670935694018636273518921482187351935287310393445045569092420654743006352020184501565670191711951769507932993603275640720622057980408815431545067457280376883203440798637248391557517350213098165366972080479044677811618431239600610292782856029856069331608729953299552962911257786371855220154032852126128896249252428928219572062354827841005940501193553256545416367787827225040782072315034208631419919859968016727178708655256074272141320906245436435933475347859155156781337880835800629910663351052251922456607313598354057458747623158881062883092387192567623502511696005354585075065679943448321810866968002909609158748609696204791946340226196687259312757672722556446396570756363436593392926597094436042293478439693759075686524125920238399165084889320271708663563449648999864149603953485729785951905054737144295258192139576932269737283712016084511001727370965230945259730304644730181084772536290181246068042672878115981579418173874058806586813740552821484325610493823073637908750829803877847645106680993707024432211337436422144751831265637641713213073075267418533401927849272291502215954070571217870375864692700101128645370359862444975429009116928301142115836595373456355985480140848561639735982819961342808675473587904654745092837438278951062103048981379872553499759835966050777107601262621880532279937332343259153420347574760011911141736551121813445457931055026318660625988881145930940895610230017787815007159692795600186350407556235878705625212632304580539566148550250906539829811690560810188602900957767122390567638823053085469404823810522039821747888648813459934652306793572858899183024848931047522716538360588523565804246462934309497184201879171854906002659448530100417547971927988008322081228933561065632944382489654564441854358913752668358710170515239390014629938066866609579258801067396605580940996144146344266148431042399530048725299077833960016629255495470040613166058084867610599325308463960007318421177675211260835690023838366725699109755391804449661905846290302230936182096061783238640024631136053863380982080791452312112135714320844386875143628707589108822170236768224524424846136897377202413267713220547368560197912265844757328751325692832784159251842573499878625382291769289623865200668025604222349513885340453614912768416988258495845136018567245031484889131977066071882584306624839706096412675605004207961627069888862264923963366075631707964287771315206325444426880419694833948431058269412648010758984302260963620921545340447535148273350177129700594444727686357624170440858049553688907879984240518265308489823314955872094867808266430904678457934972937095369266051767254645013729013912528023597841030699992439435521949097241937605944155623234992490030895130174451309727910946854234455549625002059601034498568997682080581610771334951387110540434150422241155020445273785003241373051456679990559859939969821522100137371911499700818881018041614240448549350477905590469768108675413056997698918699835387541486871363703959723844666638801758030397105348282224919209536094179667096996556557956078853131452677187328100640457306749404644040017294597100502271810364870763244768547076113823095101961791728720644169349817926893001349891530809581896148213044455962733798866731311149600794968162955002595169973631680902537793180007226284746770962560784440279951558275925616197470889233494446541406294248587763216523661889652539717396286348141580840014758715702922836978060146665773407170695721973649572613406424402263492173286514644713227904362173539379150906031232568890554550363718093508743377044979276013003636641657864526421916530844078206366717931870238175619054288180128606921849208114859274097791895094055408607599911904137537643099319701736410763940489069007628857774538173500410820339613976543558416473729822143842924560754292649496022304397494707356678037357687135857817469093052987340551737085844490487757097297096523079929246667572568149585790795323385089249027311475052395067144317703566329141657997970196054708692762716296851787992589681025495637009899328079014299521060167200260053995272113814532674505809143912838532774271729058383762103657599708031610394416224938320828831904509047905603637863292727171456731762240264695511744203258166150480058313287830127828394147838721374621260471851370311057492846783019057435936520092838912496522991390641560820600705489944457453908327739050624024623077121062794765498555639238112420588063849922723856702471702832639211284843041400582598608772592374255934890172125742289521456478514150823981019452803130344750662788579103442050357177004067656176719525558266071749240778183875640023436481100431049092585720004710894228753809194205636764975148205756086541485968127252335582738608653819636358604760636492545949020946767293897745962984999260207680746862767652490137637135731136514010426663837572164965866582918522489004767611610517275898084498312349011635604049422636230354628728936084385022172537043536842635971754867212609724365761953239615123463068933580565235201459586202422037854779952245809625347281737565845867145581702405982002784075723429347154283818648952347507511505704641135257074898550754669879181570016545320217423026980603254802550080800266099240466891581739041338190788583207336000126626083824279547081048810692015587563095235437447264633116311141170769598162876275956510800547587473614276577452793317484935627817779200162864005286682062578085237164536528478411264256216312216008585280872398177327039652376859105113820997250663674375292258716656463615503278761292859284251640960054232589860535379478641645674972150475381996018879140752246075453526746168921295260232981809628016431301020660507334961056918358399254891386887058614417503668302247548522014543783108444016165223850329350364431721206278207880522417307576161453777664368041349051102622379588500402127990396296825769585977257138102814194074538843593652136866422793361154186421238499535312971307637430048411369009632971817370430603859116808360711517814754960733245785761157417924261442525242212739286659210876913073520257912865373295193156337681243907151331363559969572294416911339673208845122509935597894151225318662836349439508539756749383479007627798328291158825826362853066360638465174352268308507993330109859517436468263314761459842274280278820709132786920509006369706602382214490321015197531772439330157410470823989565611332924917901488525586122694185143685657407787229645281309459679690076988719424884107724769375480665571238587264646469371004903462305895154124202258344157832459540260841103334132751774480008300575900363727985128042090934069281323223872098516400493673839012080605483814699279179530261033967188217550266560088395719579524546345597771638136388167421334366499100394325906615824468672307427683782351563765521498750974892735209265488876046825801247119635936715147798305621742948629781360932955779499057229364385600541529543772574605239700897256274607785663303617893920785427171376300116973446832095206132912882215465348320818086537240304966246762255631099087535549846782506187008343290451141612452132064258951282459189492103552883526521324438591818953760821156253532594547050587374537908975507126062751538489811817347904478480046122303714912759099590537411642643899675522791990545187584284873177026211960148697488781117873096442838825653789318980794100584740978246230740241692330622776409017044503727675079468396840332460560114526991190627484307054002022255195996017076460647075029873256853945955150344444759339964239944104347909837503033858750015382583490732191883516379233097696307057863922473074305136240711330037249914720771698104341118619812541259886900799128467803958006510215479319251672576284876727381305626516088269288742180747776530265759968487642632536474748359129663717393118165541880891093049586846322483849326147760872864028022879793234856263611985160029683918537630734806978373184226202220183533987060294789213977341027411396055477620234495987930402633744150916007761891223502158901932252179954945354627337236192987293771906646944300426408445944129241292931668767336606759484241473494751840807086712442761899514575164670394742664233567893421071896753789994368569509893335626173621712295234425962901551996367507171544673890721591254024168899519766304615893002899806913931396533385880376314359566730727620666129335188101240796422679473876206497310799217379107409833375277907847591453103322677499823227738470573469677174418311892642892636818228188691266208592270765685804996913732913352559007215253723196318312982386914060162860297764174235944034253480634814731032329125630898513659502822106398473546332349417307679870513152980694630235347245952554155183425594258757966903562106098064576836144244712043137595907707321500027892857767345828266782043880709221365110186249017005285655461140116943265327246087268531288667495819691464629621240708795446360727599910500804374085791080449631587672997523544571378337621192248747234647832921774362390378178886449370561205064504084472267419047574360106258680601636576976314243312849518680029195147094901297890423326211752691645727358931929499607239520569031694565600813531359432704675819602733580421281694525266542294468757487676011479445209150538421184170353600423127042880199461203194570372325301084362145365557237223049085375009174347687628926404699892784461532934271754985900739680308783276947971182762799315763045027513909558918128319393604162011652571170450324154889174926639171753057138869862371477205759465089322919860953887016799447326393175080864471261341536501592587522128398998595939893501226141934989448855863902104073778575320166413950152593618594441477310787589571118634433412962993113861189518756456516750325579932406959133680564360291942394308108039668424160181980316785391466746865115351604036951629463140901581933501742663971740580064887544150676700000806072819238675393638891126349310766696889891772475869428705848933628024107629734132306803415283143720429367483650320161216465346312034219103994000579857469309384912458177180996190797252798905386308766768539435101186305202533760723901248793174740641658840053127836796610317117489451515311005142148041635006584453566467609715884029168575323379695726477746915290031029425655335759536857076649019625865442593722478901866667942482764678476821204546259243260405129879893859988914014107574288482203752474322725935849593759150920294368587303514587427230938815327611248186313528426184600556592100266245656956169623330328147545425385388548478612434472197148524342368524605217000660978216748605529780692140700593246620613012593946794878976437240108430666031209883799505176997655332132224809941109081336317255592815734325040393529207076489502537804107412054491989665538332357573751010214164207743047848150892856343044756844746734244698598789367824505941264289820602215747699106474268502625607081216199206745452292099450263420161938134110333477577018942865200785258802811455672226860692179152765454171667613755294236823411249620861071358444694249359186653138618012481991217806841959550573229604085309141866302188946335602591245291800842950992773072502680913974402638335097825713539027748258253499347705931025466339610101752898102637546955095016666388683727817174548724927894239692609548649684809364370232280061139920469296328258273785957454172043288843230004044128478007765298932271036007723382704414901795335281584802980340050550974281387269116208368887058062912579808890462529812352789522338659841389610812773373977907056291705099697538484727203098687372752336177483629910299992301434929779453231585674099034546595100495005867491531926245125298768795571593113344179535881595850106917483227719662966883097898480232813236865800954597758883661634501766385009584523094559883944403764193896088951436499940212835979599570780634162409196827580938792324097525730396745547640430973136263007957983755208434184670800581658078932376887591854416482149424870474886758733427766111946789547886074716467443895143991168208327069614077577817024703439510797281653735957164741376134513904833229680289400675906397262890255169786212329753028993927177304594130054314368196853147432726159505783563476473876752478886641298077428060945932785565233013253241396595731715674432665469939603881659090449679733262259591344996590971140545808550839898811671816676770807327561386090566861599224434944336887517775686136010372636648954551742828988110498028307247208366483993673847900215335444278372799592636991243963344944144756569677348799877560943564651420313366489689404445962406783828150605496078969543192007056132989729357008141047818245702772804675541259627340420654477173268520360191691799404842022464963125891999145916326021813237080038205329181675015627099666645124489420217944207575120353272502718711718384980244631934701107629004188995976370493997349471067842631193284042289234896303963461930713265844060812641689781891854613865069858377708140152101158180301635479426439073156505664921778326242156291057235669042300408242907256573575835092203852670703252140724160089236819021503150717213745033181632779141057011122385559223641657664862381663400382645853788679063649381360407375688185959944318857318930653996680985763431997526214904040984834532325442154403310334678599794786572609322566306311195418150949447316192330326987397974228310460860673515855192047442178621608852958639841515085159716381620469419329786612409246978670045225295127991335153172179597072411101559136330354655552684830366621880716492177054725600221233785807583065272002026240546326806962704668103896172820380811007924300696996727736443282031709650049420061467588038942142029460481118036271739896791526803194425255998990423321079154844622967641057387478474026759635994445398097164686551825897135598331016114564052055563794921786170609723517212371145369568777624835166884751766676498027367689133357560614430128435199714957479244354741539150453352578857246073927849817770788198326702759006835209207648571176074621903024887096177550381815902431324817589600107669502051659533304548222698888602883670231756370961302872952845377158535633790790596021069370351411113374538663272632664102913287389137120813267115812120225642290040752628018123934788669636738238701463394020942205914578345252086492508920205662346966703926518332418365804083570050316839380795531461664600018500214096917245041813251239395134028919228317371171667493404411833046119337335298624955714046547547224952905230730780212113506504857534439163916542371133043756197110519236677840572111328316153278613544719906831928608147670792017784763001281336121544649469490635156447479293232245652539681534420600454226642084235293456807613223392285162462798018435448474151065041607417113331853809649427428983025754711306366588642124657820312573192227403742876720202559201181199123773909575506677490742828469516662236930140028616651224198441349838313194542012626730352490887507472074371324760266382252117780449257099146004742664646936901187433989695247849027322069140539779863590554031590059396131232665162059071274213375848280934317095633770036925944542897346076714544691208525830886100152768791327079307973415327440896949169766703157482818367274175002129877579001629506268210476425521301212669984712569056686796753723899980310450043847923401292348449998250746102622621402395943803279231200942615115433231467408168235522273863724832828701341979357919215540351926135734822413292820284274657734813986606013813245696204907942288179616101925802151655186527904837104557671987439735567177754780206222459750940722587102040447612721790982299677334766393468314207659034035482025107616444836215153782285786705289557075444863058820632919845082944933551299139621063274587551238774546111221581599147354786001958438222354705300053210220794436323260399838014498749231949333628213921392396411800510851544567310499643843279307176965718637806806143351562272352537327746694782143123888308818149549395880137749212755181461022765188993240675779144346285461366427231722933779149129424317759545903348184679053288595957138990458456393311056819537279764813224304685854446562958871999654646676242381368357369474389910407494239086496148783083787146312615117775940342682797379386203429966299023507510336046073529618040318016752600982683092219056466271880343593453638654336272122929640372041403506264656205330860663735873478973524695692462977400111583742353859004376568329805900105296375474788552799945943471617485740335711137292389932113406054276477345292760138149497656155153131955787171325434655206568325275356266263577638152407947229209848523084603312627165358623485220517334465546773857229168021911419842895820620400453196450208628653080053603552348514662428695908504088981529981499106157505961828958752229371016358839554934357461569957246442526957170460488938010451088743323894984688577818402189806594263353574606381764181360442314118306227024611313305858207780687507634904377932887971694824535312436492473236813741689261692708064181273695723183553225691850479776720864892627853043266637185884688889254386807528568956731635964899591151298059583645648539096567527389322176254921381498150214075675815168588852838320403039122751025877465550078628214819390315787932713793490577894107357777985567787910504936977833416595679574249453544884070726128125211704926127010071070491365136305191603864307476802282254733046759966381857093542604182078501573252751197969131651446025161245243896990099629939854506094809518669182383696063184710975748347609258063911059843662790870963968586575058401580719171528366381905551314238104315181133278984791089678896304338525807052051738503507006622350127800981299991145139222608730831901769540523654790486410742906427918200288333071917870511883875872500118335094920871954013249623883895252541295610949093500421701791254585733724059429444556720840934888360991408754794351507389622848246333798276466118233663099213204210669842969683007273466807617364082911957102114417522450019070366746644106774767066425758944593684702867746955397447741558156465794426738426630467955603994547373110865476455299239401861901196447632094760598317554995663256872742855586089520428409614593382390820903727864668581415024561243213394713316773854354296769019971677423970881126184829032451816417244294517068588630193143168385430124360963143356428390982500461366792818990610294094218519643698154941156725579216240171001619879437827548243538483601845289747557426211151966995348259281506529826171400476211605483195992410575935736499094654023852261713426304168955822797675619710741639847166279693232074473342893933507877310583247062972172755036897601132934623707054555958035084280869837102200328578136716649514557484369100919180362446086944746383219320277992955888373190907366184349858392531628809249036452107324933673714444282966418315722952366580049286728888819805751339218538010789098479563860417960774260753658588770408446278733843997005556866133068602188544733820546871839073058312156960221647080195268313321738488865443620322653063601779129290905888977245341528558732860790352911311204470641313482205708089438712889465637739207090429503361726086568008761018396662283864021432359725034501028290927213396201115443852644640543378445587670197168592982836761453287626820202946364386103351983161086132828435204216639355329885655716823061316981043028934149714094621896075555398031488488986850262356827503637054199948000570700380104839651936281216629776993696960312976158542103264320422723489487603508379846970832534662290507296781855652587008272106408879371974493982135200845535141454852270610928634985252961274848168566347871729242499124241350753475812272730424219158243242419316907898091368058101986009238629169652337538620225369011515482280356628162352260767438192522957899612096690671559573836953443053814580680148409389848454026925447317768898254956890821918383282605713216360773035535568381839810879410049711573510783119560457363346877902562910559867222799817523087721026220504214697977346462513302166832574407574086350979062952863402553323166643688267409152034458579678652089072447061028171639681220487359205271827234229565777865424491799824947025096057543936950278997865774401941670889872292218502748739928971284095006021901786642370984971213941959115369290783638012485140966832283730704797537460382871775060585696628238918662979976788167177914436356067860061571278959822401583593107077988637371160207147835990953647214556126618955456946257068138896571834983064729818674054878327013014547928142175658762233115535952160846863678071555382040187224765367255723975037941982984543571032833917540126064296054169572176263795701202425565864624417048449846614071601946916855152259612356594852778524696251365468192099579643046404977139964907449037242357414047344670995115038625210508686155159933047555778527800429461770948458321706284885928137645079500978451481344540940475913766616943629961477560961964850600060697465415531966454633563250840230391165379034093957763123712437519616480209448436171871082858356951131109519574852510893237879575996545219145759370077917017351022745026552384051272897244413083659584171504415159961827577150032560815862579932892990178169995490607933942936754965440910974259265820968477620917892673146231498410890929188977281812527386755922969908990620633836340870359042421291115607639925571700817775483250736753577441149335855844813446187414425086295797444862636824689753347751473599318284224480799315632457675067506606987969568361443108933015860047885219043624566984135103001572515090277582507683401976793417478135042517586225057896712723717536448251089941367667070980915537906327981290726771382542908676839205085866673448105139155934350710111149690095489694101680686493737408262998978435350145408279188134864352595350390988094342791518629679047551197352176788214394802888373933533088668984557981396040720994544166492747043231437051338056567332341783018528420031729793084295149360469586298508881672551964593485392814795484254807389707157557747444237359410453576156610929172741799997885380085839485149906583873028544924780523772749215912481736300714291011717281827868300339568460620327676129476902388405451182188493662032064085335281036109487207888177577847018789188404525038705529325065362261132436492487896774145700291242236469581474630570779004007702499400590137344668506549030071814934146142105075550897371421468249574748890482505249125899295612209671878969983172752416315257136386546358820794424403413062144003902503953584464710066895761208275552717727336356384414991995803230289964273883528342823267238795023725631775798883430223183511427278399873212807426046816258581838153051879350665989456312009847304884969642654844603712459094576473119246507700963945647561204872439204102536977090970088822580784856969089681449365096468785508137853343276834568497022447349984301848020218120506787313065552340754118342748256813558939677989954479309997626896962918495509790537278456877903391605530858688849094166004692201000953016883753092606917978366127655437190166073546403970322080157932631577383339916948029653714753669199967480908649047150501011496713836513066192230552097562815112277526536949961561440872854372315274121532717688564317817256054693119015597737959701180203931552024719020069585233117058237913754124440984159309210499484146208417221012004471691469973931417875892966002924474075414314550633633653718926384388220976467534212274221486879384744528801005927591496091368595833955802732333225226553756009643451376081718525633819791491424603511663837432498856908628303010834563090940661720959121092374005805281716815357093373728475837610504198362373789205060873613218369028394423057131273789823499904049540381422755361899470554122457656950263387402891316331689254579685302821280614990388972824773495015477079645258968986762513458616715353439875009114576144058808688694787617133927955020854913441189083959784999035709507875998640332427229343150339083886462059056614757258418737468156353681473652602453154893032510564135227116387438880252162890201733454281696370805675935862639023039031288858781266248460298031456211981156305059058467302720191888032482190052191004653034781716656484479822025487015554489289757484173351476394992755072001084272475845776162312463055533190315682163487907907765519152936080141097313265092088829716876254873339686051054291274065004113359873185903864669197445338559205487629479650038772704909094988673177011665910598266339543508660582847513783378608209746510513886040046652606654679681313703174745178844802225231751252383723875856822672578774942505099859371818891537220285640203296194321556287338626237910152381036644271333943475520236767007098633297203228280250579598514873081642034715991787690227231542978407157350452012642544176652392597188662856085372640918597735627316304802681687268473851508104857580303623483593131566535045046212702538582523031081781400982416373666386207238934791689437457998935580293535363202809782819114675095802145113619207542716262088314945593889842310707535777906945737856450272667281063965820878706373839676598143531703345399868697174904155590867341996888864778957944639756066908192092091939655386136441596996846008890349653040289998041613927845221851228541175184210473592469092061389779619600392710576840962806075480378593361649962610732021921310333226493915840302699984911990328685833858967619223401439979878198581483763020053976599304129997559818657660132930737762667932194413453933407179948366047578450428583431638596413276217785900934543535242532806843094986791355094551323814746896714437091386761806147858866299242405101305377635391772756766039193257571636739209199131210633167703412443161354796167676984812715065413247520613321619831626224681139233035948559451843509833706937940080152107783405708626593140311634439403981559003959501700891129389255376618865548916617579878607175292660975885168985201403007531985561294592376973397883324339621486883856107615680300994378082570262722233205067318062478834775002132640238790823054148523862017201517326103188646414723898708238870060241303856369018868537444778127453751805197217303011320987612017011293881079450599025495864181944830235580161858286721906715226090703601165876651855829931728135204739735447493002695633124638458250698802774771825196874636704240717447340922041723026817306601760563203681924707866324815349856213360154208756011791441220251068586973838386423307469026834061108798632434387239820312928279360269812248450373248291453708339027658602197982205371151709408060806396239315045046365283150762638132889551735068105871992639242301974295512805229097049136899880171871398202063160000178197598719583324729818277843766004657702742595228613088592321638495247072602454868885005359309805666668512988803419189340058927751435999813198238970478985216454327116268946405940717248350084405497281019654121201365551359078638517424863127946636619173989068804915876053232264216792092103570280535324866955209245741808168870801078804565266256148700607580459985584642231543902825250852382487634915191771595451258215369499867888124926433675678962950094106262059659749361010699388368795578290213995693136705958488384428483829649284152506448564466001478376313563379455914257950345464031082117712360487609584921857924043903320277051472842632460649701485058175432774296171115479727882935132266594007848456462627869216871224250371224563113392466283488022597122193716568282498361632688843305267663237050723939279051685171216583176507567211747774371813772766020309737181799741522916938090669136752054979633900853694086842592985711901040333609848005144835672129157233878739513472412345965447933007123874556446293667324613804006148105481203069611130334905207395221391496741770260709333238368315886646770227635903981314336693713629095961940779788103788435248189213808115698979056280270016537744314955895240144380477671657724620988703773070797790294906656460313889006130377314017663693584261515000575031439380994304193768715248313723193387002909003118149893764604944403007453094696682411310386402929926551352680852345729921678554172357087039770104440797752163317156386817981809676054776686368114501356075266959490717157743745218465459145597363691449833718660530388929633830308884248974216381138673026512531870308779117553238612384277256493814411102944050204777164968556777328433876414828395264583721047828338497850133885545168722011553601168345470374750494302482390221032575667888325015617912839993943864325478319547183883858109370608784152870412839714855743093074444786283719255993104314658453895953378298243994863670711083004776947046864041993935117176631215241588188189153690224893138999449880240489654187125183697262818826867392572155693262059650924973077410644973208949099177930110705511111109466083148098692283880628049206838841308115216625650185901894367449266855650417569932768996245368461448358672822655316184082752677782810257530030456478624245519289782775476177029067674389677317990231131826209197525463017839410861162783138063295277542499324538639007376482459982871466280749981238537047978567184822144587315775423877785083052200923610349502092395069769208470497457405426341118729264035130760130732232376869109020916182781908988000419404093847901845282208473354803578717448610684556651407401978615978189295066085821749185052868061819041865354977272694731690115331339710884866883671768695272351941426231949634682763521469433711474236482106764126425298861690014316195344714449438323162149976940995895993715155576998645897640330456337567376244329180877277322811537237629823114073186674905744967871865645479150815606524526650569905759196696719060591093781350972201804350113526805571606167493503905779885827339790067737372385267346919188610036245193816089719856865262320211618316897246022274687316199220809133319025247344402146293293147531717438286994512782185393611634318106935563737856229376142688357731534914943629061569955502796525666172651573129023746532291254928047053260162399610595659397029072728641566958284640155204873978676636017812687630109348286095327527910977209276080522070838700452886548123676319056007558443815692983110020593318035143730427515558108837664486059786209203975019278481443893575155038819072682366236166530180468485002245061895286600083394110920959539219081156814477368145130993131070471485514955622896147124822624633740175971513031602891148131112217564843656874569654295408605033498142791178423041627102108265613903068822845363737060587266284338406636995373654095376300540027242498465838039744410135253242346771006306623149970780490643608337042230851126624969168687357563703006587588650407453187241933685647903133320405556214916267630847138803853130704347222855991809420945034358562724873078893154074626425831833037818347824973182310010750883706929611456288568194061929370910814527985880660061913988748613537570909714327572374639200181228316711579774751590960186920221000352337553422298550978424546911306472392594081236827316027900225011078866101873807619490895802332306467206283938155811072893884002926155052649824992193232973269199192135006944204794917881315894048058376684856874087424424203339110875340522911034364160852223745316737062687149903968724562742997313672415665246294742841995179052360335269336224583963984077184824905246199338379221843562803848001807196993533582686295914268417794365468405216827106841783710249262101010945596047138379587044275247287736723103344960573425407576151023507679400278781544627417789323174546005673862333934003885377316411887010842739182266570426005074995851662821191654878004444918051008786234198085277717122634194265558930041987320977721003820751404374164503494616608857435604761947611819806967537040144995442671430240267233076845252746917146679131034985233063489094274264349798275886764810986168345234390607134939039275014573597543581995938120211415982969454681636344777640093069349407802375458678505384140914220562983243431671000896899435770565886264048879657470522423850885671872204605019734599259625217873180819105804767284496928088343869340314795371863597687303155473669809309019664602686994456741473964790555291240518214183736306911230610083683270626151307900852460988316463921167808183663436069704226748552502503986359558236334472699046008613392679982244793994165261638687294559317338397831071838790841245042846061914039828010897752542943622110728403339568454049800328383094846745268194177215916843077824290506714293293397921978029879834876603315339238705174810148900762449389604847887604531559032998579996527403516640410290993152918536243270639598810261015982102559132158341176825406010907634619517614205101218893293448077656885396392057728481986668245154961253440880561682311797811210100940537400190747509461559662969140679618670414756712568189639940072542721557385323847389189520403347826313828635675297281659790194762360320555814004424149138979567558421545711027450456788564352272549422610520056401295905923792221398003248800680919619563260657915372089324548808950369374081544078069805248884301671621959634977585664297310859676147113441169493948461660049059256191158015681984726291970407909245619181960085322479623003024925651309188812243941920865480992739994885528531930112346681936048583966374239193844996494520126758115552280687010648695193966703839149225997544625481370571585100621307624803479776389588403473680721778705516610163757028514721734333776623259902458681587393879457539349703881877521701702770371153085075170181701860323835090201754361825612370878229728979881555256247494988503143725694486727381057510683805501841236470745686467367205200799938862106481261457672956925707666838601758615510818055045075275598731063927171132929864508091845201086324697646670206092988910792686330674350846564368507887724264035569704186700212086746083547532719197679722580879934223104708761541230562724876347996193145591828907884718243145803385265345265470232170884125209681543381313313585905189437486717734189440723739364644909641736726755953395286691220628673686011954098406070549990435174453868234519897140880283437302254815149084271443137431266484117887011517468266891639552212506029051753942632066494027898283086488099538899231222522806429826604753570728212385472337115659719207597679913545884257933892444257789525440047640526735726977688803278029383212458038174806913223850299742132206324802814005702372058007590446614943690114175433152583411996557707999860120772902470725026097451191558762800885684384821282647170073871143180481216459359491957034495844713683964079926256280248871287544299529173737390223171533416205549327254862699255544792092348730339133956372241142004235103639778958703387134313132532025279834000404599429401720326078556942200775671890594924251171754362455232047408023890826585333755119722177745246826104073308084075762186056404047004878182206715267701358455371332837283909255752364222670703579616489819150914058111526750105478805040344376913006054199804305233667856195761542582126192795327147092122721417048717233308001418321982891561615052580951930601000593724660771759655336714484047291384518150719409468587854432065000740970249594552116345933543346544676995628980421236490848558964841204916003352235108454477425109577388747135145588256937907302464341225615181519636713971857883420285198270268621500802891912102986035582410872953313742279521764613577400942749244924158016676631950088387608303701420807575006470177427083684513736957134633637014655414106323962443140682256956420885493307338100105722681203681555723329987287467904394426120843996513197736463444575364423917792037025375748809628214600108086041672010398102415647304565367607739661010565140633109523143766897327398108420571294625025508241657397712205451237217341423589471046991145972645276741642129464817010460496044325966249774324704147454864223656986226323447469671390419624524862766709779898336614497636397771822578884596517703932515730405171440213889168228391149919027902510392952676259313972605292024347960500514867436851065937862037176779067792325141494219212568436851152697742486065896951654629324348069355869684103334239827389136087244278684817782069090766376256879692409827319329026257301473466055680756337117219235325496632775389971263755228538700079433756806336783994653236162382328855419333267946629234408385053738847838621451309552938053930209626179695355254308747665029370202361795621704499944871415481518960974157033874430511714665859950204097331159703762239926689053823110732150936296514730558906376339341257411812094544675676742802627105643314534902658519870471803580289625776220638990905941949675925744842482076108531118871841272606782343544073631322627062613810684079275577288988657066038830455541502692017346297578023893412114696705329652501858119135399956491614873111439687153118521860851898848484130053953979198922879748591531994446078646904803514840572139367401928580769500490800766522838097763996325444390605209115407609824471261821270797772322925396053436839671774314496021608817960301569793217522843809243139859609560278351457693153591753877171332450951673952783348215041480874845855868759735347787820986956702206777879615233795812471766649114294849050583701326688849823733705805021163399172005186356599204867866295697695530466419562231122685681382403209200580932260001352710498547495085010152979082054589119855155647684445943653104648897527431670039263114074567843429395265734015214345364710347020368985336862395155646207630946628823196578777523316574332175458211618427699479815136427013997506364849069874387197236777446949213421783176765239238025582834795313533845829916731230769381219357328947070111894841017933956914411211916070045954068624762045449643649667480706953434095134747514030133219161354174282589711666227994863697432368189302867490658118648538446114526490691028017618980667196387241706743788132218391586722800453198894610377134191761863877981075161290180653730524199237012692069063979614040303079262187543000707027938078237535396610784141258137924094424373037145947547550776087610006438030348352989512086127088522436163095350202338013376085871644046535325700450494188752034799900080800696967686615019430712786634158490511571918723888247832535926689068874421573349678051608606852043152330310504418211632810669808182875193941096397953295963057156623323970187500797410106062571498215986635163196706569181681993485918035437087754463299893846169104922245698531457673440611563621257503719653460011137578729481819683589565096892416739183615500820207072260571337030029406189190107497692903443544684515834660231670832792655581181414173351656195385402000190893417680926214131575687228960043831848246177179978239640068489812746134556309396773232365441879891784167328774996252080621850750087571761690024504805239712040931282735248469938608458541912996255150308417668964220744163013158920000092272000952859181822557113553979339168187118909169125114126076948770735951612252459590748912316182950362561942658738332841368765567588920101986223745748351584930747199916283624711585662804599089753778060837487391061840104697762956020882265030014149225812301964680247974938316524335516679866375848921545808537609764797708640808365543202864436529070982319884805762353978569088419308291861986643272259384209787031622484562141178474723822643665268881827509170135864690875989014623597617710507213119488856550866274027933166236139531082441727107258371150044407101530476035988283532056447293049563452593099025112909960220342558734206267644968710673189729666307723453394354937561914458016414349271350523600993588034054211303197870117582494988851145921791112162316449117242971587651746373463919925615284656944241313198903899591652543467027136004984497318297956649341260612108360938458733807628384731071566764332361366083147060232301789589198101051156359215780538520854080449226502172006900019755190244914763647903119190753917620971037103121286176942722498988595207292581021551663466812988237572738070884795964079530219556072509326162408050580525445149780488703585432297153111178983947845030976616769690611529867440812109612723340282275907024523333471917521245406335114279331974493013928156890629796655071672565500117589435472442575427994645114597184859049147573178934302770459587856316830965019519244628127360268759871604763967835917490678186551375406348004558971027362154825463675425723793014473390284461902294655795958573038292556481036158193550363535491702701933436215477238930428629534864662274402185763086914932920362024872388973296586449707653453378622314988748394642470537609389340523679994274188580549642677166117043550470290309054252154619069743972156102143574808315910821792583921009374037723006485514140927179513911767508054706480429941296764555784947903015375825547573802485144107176415976097380050009824962219080986350336639605820512110361755824867201633168158358137758027945254177960050256008037884538068453570451603581786650842897750816989256230643872687302134230072778591980323956123359950148702404980687379656865515499067152012455336319052611748692670063124639182105131060344878704590953868234042452182326751253557156306776997763982740135921060133537985640106311035394324751753087035992995843464738361907874195349016569631947780676397861354840653606881726042513298711735234169086066560329446827252779688526873067381444257733838324820300677083010624164029085923878493831821712959340201225391795473575589234301052426409690922121676616032643242581995972996378430389608134245976779007771313493153945920048707328160770500554717595284913741271027922145698625581766539974279080592916737210732347154935138274683726307786899639871018981789075413006441762002290329105757282370812142390521431589015637070612870730190343684269516141479772884212438601336612589260104437516471985722901927259081409706431211224523956388146358870572991956643636142438866013819713705128606408289192935982987019502508765592217189724545449358373614599547148626621917779549798759755767397201053239519824079431311031976425697484473023347911208219162375790771901333622299826266797727846139056667134459416767656325108980288229276660709405584865581083457468453978060589754306887719203068572244900025320284126913968371101444491509931395099999605990803977587090625473214585654801425360736070729908478650253680374188459020159694937371188095935288970239335632232595800940539149952848343090263962933464835394478762600419714510980047155830639743291491419622453613283618815574615853869106868129220582705048692542967064800126972641416446337534278022197985976430491412464846139694320764847259859671203181939742880817051743256165607237765241736371561690769647575997626127258354625013647954151627456939654022174308778730944097893824345393044656648337204390099169406433988255262431966819547970473437182855121022449270636314850260629138611092340014536512171436017608453199693698061931463247335432327343152881483757029924955899600200095529559046051545289549532096926503671768703818623380316286666803316307095056061293739996701603559513442086143766704873103907253386434648357565130316886424623251231083469964461632698900172224167070740209996094087169130072193204572359199514803359843558538071353539960925511498292938989573598203287502322423782502551565845524683140609310100239633863260465272963306103339846609907543997459968385094970403056800783994998160474617142759193565130650466484566337265252471351789223923352810619168913968560963877113200647112107034704968348680001443399734500835413485758426454268888121914151690967263360314949140325732980849355847047974062509513616328247857548729870836661923433650708956904937816239903248249545634711098009408097488877383118254280087419579199258438442504778709829566920447182789662937771788817873067377288023508756769701532767395432312713689590392839195497578957343694497565921735330151655387074757761103337469748435394849070121882445932886631743823327197580504316197601467238129836573384788449545551754541363137104782925441053544716184174615247054354251632330317408004260702626678623140302188558570471902462015306303527324999802228862735562356126750455015623564530510635453659841700026247108047675729530083067395559968393282517692379005921710327697754608534065033638332804591913834283035194994820723275623776282887399865943950674802817836832589203046553930126342005960621133227476434555895549993409883028688244186876171869833956322975156700593030903400277583840568029926419425289340358958032294566709222808881004563030973044578702152126973800963143358466923380799492880268528769159752068765978745647229035547881130692743542582277190077725899548540878546826812808399619423378842715884142681205856393815759008273737370038288004606831663140460655750111390025542002118473027881575076881153309956134939028128677996478880041907002636153111965616092909541474199753949153180656704144973681231767077606121572245698998303386639098221561302691579574969953534656928809238059518625255176237144757297416582451968908745164592953109902528498885646207033233352353661404542258604344879771402847931606284545999476320091457091364362395048591031378678783064694278327286168532807381681056185162566657287256430605964298829472100983708374370623609851030340153407567514723831028209746520099929636198253778605590767971777666203979908767815991967076825851779684026996941361961848827286096960994628776936585072696966706793226084608125715410478895868158493174938423943819727784370017232654413958485912604070739675395677462076661952553610180369942709090727282471149157107591882501989890105816153644438322514620484161516769787979240370621925083222850758034066055600699573728626167852828470842080949638987174773235860786049691233102101911827740931467795193825840574554772779622393518048250429003867523710075325473988387915933959010705075986910301537634769160432019397135198566047284214661448813517433820445083208378068677648660458453433150534504104472254829316559063823035336329563942099775510141461822470971755354571144225077746232199588884109735809405456189357558924597048872264336762637397761293260420029728471222875363561036276969142933293979467504364637881025214057469343286446327907807486875787403716014395698573693104031727207705795772177471657369877740135415363675012947832727363629108997173355299759561038181674216793724855295882232540886854542587149660279164615640147343995073942950123803295156359040711999143901134396157243303167380324733525692032836698876754485792409730119327314436770665796696142803382981754380019720608727669086338480626778974798465848630859231580624158809474105233140825253047391142035150177698662130552885106525743612366704482740843346444164304464170235933779063353504227885448629644460748703935555970313799153600100752261666613447115823998332106466067789227777958224734331169928775863043278495341803010942577975523576116896973095951852440120410204500491784197990668279292146733533896003885230710590955031108878658246118367987487337047521238396267250176251267848641243181350188084428799917641823456450270056020490443559242772817610509972559619701022796841732555930122703168778376089685493849001889396205954821681718492411865439402656590945952099546982014702276682364861524887903594665014189653286313710629177794414624270676319240954292556058982342540844723897595023197993743818649394089687798575675704548377824080300133681272888088528145718160783478719837535369667861960598698841545838741427049499772984901900688364512167812990670921054405397030893729462264449913475159785340265884729706600888958971982350425122500847797378229762404241456083964913227689388712802056174800324466973106853619480197535528549224532870468128546376660403104377105446978462146853761598697112408039980833005574753824521833487397568072511040598122632709361468213078341345533710466638548614156389573033365221408524708039484059293668658717949400999093511307486534031572314450520867359294746572251485292696049808352592079185581429417382318872700925955667765037999296981013281483489930131525024908787953328377797367677956356628970822814161744630128313996778549301433644496068841550774758698937037045954464512307798816022294103353316217659838464780158080010697576567415268637420040262868410304731448150853206363200735468094799991424484176378734334296884600181411155152479186898939503471381689349865346109775848873048342226367545340024116916599523629990666060066640137566220936303003203856867463213256589853262602993265825285291205885234068563087352285496633723353569103867479937606432623004886856051145105362965665707447838564316105212728332220395878945004547844718086616431587942697218623471428933957499193556664432325866047862886688960277042234840249816366209370003641340473420997070352500463041555613617473916698051471001499335489072839947942080571956383656071801123684861442392103337061077538080791082133454238179542804627502092564574889907978702404269773718513684241659135092823325965959041744894769450738475994930570047413484966465505580887903859085840683090400039343185127169884031179233664594548604906518065744870091581898665633594594740531411358717487795951109615090230666792183339542397750542330175115023322780429991504067825448519017776645137919355573758148855480766052151532250057135901828682969912830313864348984655855660546347633453523772744343566349534504238971176337498587371774060809074395603919799010339602657230694174303980925429944705363318637091344836019059120487244369659733550255799349978159217532613641058425168713099472759635224537617560557670979769706172828375090041475836294385483951240502858534683853990657551596221929028801622946695735987594729497409587922438954381232088207397033843465550710472295053095323340164706125501218606785262440835518804342506808915525912755462430031022034982470823014592401639948353573197726825964788619938733512233189566395083734901511823699091972430499208483289836652042796932784458831909708427012573557078419701043431984156766886200627565612831176172015265611206742525656290116320711719107024550288510441637789930746902683146993735339666849860717472483427360127420017877890358327799981463260668773224193588218853490808987957962414474633841911280901368412896610955402618359378275146162288456670938902840073937498792136303978650932654426290160184019188824127793292948702604036633308639318987352782057945641282448279812873948132897464787601903968185591018694815055572209220748554685509889958730264181930019046876580642089291567111047772829928025975853450647433478959630667396147000172637590727904243504250373454857677162012600812068552127345384636947406497566462381915895120890589058989652411772865364285214212816072080275155048904785544110258457092826777061458277277837215171862422879848704061844639074247385539842870675134900714619421279444638571782007035755027854606455813866718224742726625569894027786105396408448014281201771416105018704617140466272429911840935751838630588532303321226777538672376326115550052677141300471510782988562112542739586612587986954591206995551339792737124534027166210880677886817260174924149299862492458731239659643275213985341670340308173703860237913664647760054099207250429173701653394869827473055296124003822331468523368735931281181920049448033878379927268341387556376064899378747756877547610382035257857363109421852146452552859817213392066033350886004520889510396793139533183612510936567764062681550113003675558484177184064144273096731680217509603699972264600360361939754830881140628676161033436132413428192181529080047129739529712961767333394666302898971973081137541126721271977544158729886039732720311364557560339202436857598817640097732554325390870461805046205401652094340892325982942578078717860610201667596734190446873124082874664871366207270735938690073142206109035698796092240529515193210657838875687203648074810497256442505236657599896472579472913658061082749964660710686754164451739871668183211660912408915730855881550435745592388765460111921480904812977527290046718584670829588673105878526473473091166223763137685764495273460744937472805827017696198458444334670529625883197867382074903600486163499295439136483346789017910955656988457186836815187489543285613509250195961723692752106041293514497817278502015178417709611131409174733512338524235229376598983984676299807685440284318929614873792972723868125218757587225699464439150211819389797333070884119282741291960460164979489443213935976387666320362645370386414759640378170288458198745039549940411114232519985895348142916618662968672885645970521245334814587208543212408921483791774311984835084221922059545457481974877901370879383492555580615559755793548601136362045558382312963965035800201518146655880565580997402494893809963973010704888524804873379762264564840064065646078199731455489853220197138474231214123580882108304062390667915851383338073747037260306898801667617295301490197937107857463412141260223994601348018972754296386408878579104912305332762789044974105325948548182320438867446761770593405319377440299692063841919269708865399158379885226108923939644150795255827120240626767058190528560169397910823297834195952788189186057617780674183907810665562595412921748628633131904055813928524129485900683165221959085148604549534128388945435161950574450371691726095038723027443425636397324824969248402403955710213725328380565058755315690311899887149134873183373011260920406379738606641623134676539074103172335061939462894870850421917762718856398735131178489755712058832145230184066183681938596781844528065441186955217664496492389011096260790163770283343083443871863323433051920839685391634025207309225417575578120308719398506827723669104205101460356961520541770922484236839449158000373154149160985385663195746284969976523116513400244787846753303261489330484290375282188505995279726856691273253065564679350308332307489609734717260755607479163486575586129199471940922528023290255716598374347062960595686467908055887863639845129197972965645541933767412139362138055166079889012178010259483516811090772249448514846736534224267707696892405878981571283540977474999907902430533216984486239999053798659234208428694703024443907800706044698805270853790046138729376780130879303390232638636210014739456782328494807748127509281723639573475256152865295522420315365770210171688747138797801707162169345928224604219956084026994371655618900150917289734355101831101646721432873238674300667463559858709391045057130146141673181453494827224047950742281532862896538416418698780246767824627018551273028110240703541714211813758272952075607323303194545680536767537075542089378067189935598961865454224820927741290574007195863967436301780110739469637182506482144597318907601576859420390728502815274373272552403808181971930597236513993386502793198370712779753881865289049379443612910811769393920443905964512647482951003475352022458139809126511673055933060408356678076983800726087449206988466300236265597329526138112523941784440949323592780300883709142687926067490542154877675778999258780474387013909220694091150594724808315786200278177136431248935886522868074748904426780720096560296164975725426785343821035883752771764414324194253241734508555374475713393154317013880987518366857446049741821377088326989939379501183862517911242061410680150339734365154624583920547425653541064716322964505563793185218770472752546399471687902552999490208216087315068737760105281279515106701579031228496621918371476428388041861881276762797828011346690603305698612298140151843417979529626024351702824570836161972095442358076279433826086761289455620751490013118993239579652468015225858420840380454544188208734995581671607269451614121759213752110428679072386200197819756333575242763963042085343239980443425108806580301704108053874810908979643731483155964802982151277127399929103560908782401373535226496447682076018295954482264941235821321359055759404565280208171188977692529489523479514974436472910887116792810729603867814744622173085656113267194626328902631903552751775464936014648951772354080338128299818630947061826494238257993564887992680885135838930915014242022590601985861684617315333307212448802618299847317723928958391856453756630008989413065924160940393699457505334855506219608355991396298273438108165205562247310813500163287952633358031507211717112336407801893305386606531444297696751427691794218310499660409487029797368001369964746894799354992321474794399598872656421235700135245335448559428280445195197145028743326629028121692095891026691687790081524897975596476094091496133511066757220311940745148419551123677581024691911429206573536662518158985735402961382813205583513219120515103254568025248358215975946539942516047314381711734229475410561617858273474952580244917863676892551807472365328977159989558991069001731308508833065846513231926912765432604393366740273405107144454935133849021170261674633876126610353783965624885428786995467947073352424494696712619994651711754437701746951494987951779294714771139827008556259234488441554702241148465934577503131687199421359163458322429963467869448203990068275047090015618366777219364265956353695549804307919523126621217894167038962981534616477769129502296220227620518249093264395196061459386524129241588718596769601944660910304996278127308886934314710793547102946582684624689605871761673015932134257824013962784344521681394449039609613644228633250392172956539471384714647991255038010194175636394744860472402717565616002959380437676292868065971001437643202432723888109964414370606951370436764022608425467168651065995749291882894699501287707015882669325265191214278473459032472958141830737656922757216169150646469238890210460214197769305451594497455444405712985519148062133790502074060261530541024893864227364479145252019442425005232636642436300768993021427817116643716874229893158990523347986793840232529300313475143005162271416073362829681692306897605498024331368780492336264024121300332027979294413540797590253172285996735885529403380189263322791452053348933531205605407416307504486631442990365843857887800012738942475281511502800886511050439876222549196366608806959068633402386504080674320838720052297342064173448864812452000555078689024891803411598082389963807942168564933394431458863283243751951588819376416623523780637334496325206169784750381412337739619819229087705310342822744749836509604635316394904434820295660144830872693718616573086662800177537273917793668940871190405848960505324546570333730781340976604989706331938750497500042772211330672785199891443977701242086056704070847734327506385205498949692789135548024373091553704128071940308564320048719368042550018525330536646180052558718840871170554561945877288221986003398628251532773825966929819336380568537786957127579543944641723185701654092001759582653878345491514999222495595647850001953484252414836766507889885796049417844669454525879585297072831399656487327694501993857523156429298694125074847715410533097419410333018490273050763087989055575880257274976591898884506898966355448676567108950257005674198557435529264335792421793815993408047517319724171133401325409842230908784654793574257284815111538991742398456770960894896888094548867168831211266181709060172740172394100702996724826673261685572327716390757950892088175894135768517413936480667045344625588891575224317610441011156809340941464609876820184838884642353995984854068194484010124584158697916260209306542136132466729686824166994030238809275315828169593309402863749197319917708860954901548565020818046809003181791545466997583115956287754952130588809990297948229293224972980865503296511623070737397782215644039056394351265798055337610010953973785758119292288354258950237172878856781466359632952317204415948521972458797418043459541187150967947101227187081971536299778843614514239589893427604737388115870113403162030730585475486498912580129664621786711330955866587749489783097619244386350289607834643706303170565158912250040972109243501414029368288432123752637368436463666470612891753854967210214240717193356385007456004951296204905760888621136688041467334467024645645536363644187061610514293146975171920960250874912957602982062636095678680353128301556908201732258146634173137746033546788736360606903387365206870281513421062053962381678705898756899891521328006289220182431506229679873977658705890995001830527565796121195458708325016622044086615569612032100021751092526739079483273831934108026433531859917456759219471953638481330989006858451255614628537201589428516986443619160839810915468465418942290460343428801558077184039915720242967787065286320873390847331396535200871060297485479746123744096146271495537094840944246692217842967443340514489544641811274609952792122734807256812004560406900987489979301325857792172834431407429784577839302273279096611102014380959923851222911679409330186214291373466694037413804649389722277037634120813411158142318564392639648497034469212520623490503558235028261234878636538031070785320813141308146043615967896182866670075040948469600222328513323949946506528623288172134931311465952267141162464111423679968320957905484817909185886824077641022373253458962119949378343351568865869761728872229133498934794849294002006996804457948710057206172661652271823435092106274932502454966330019063542623574524139732859034813530100441854552628085957962896094153189728695198065185322687898287210831792478787485971633613841468412489086623881564292364080191469481981498790889911116502169055464674962902774775667243376208481624906848739385506845207457847957076706894584962618272517219470214131781788621477094581554101096136699832705945376210567259368569825465864411220961901245125279295011367109064189428723459756622147368693204870476336420036279802425723211767023741129452920210003604629756619717077820105908927232838384282817212753210322609451103094450529107700584364822605147925998397736493331252793763863525905228351887948394338236863299709799550516947295207035332962921166142365923235140116265274677348233011407711481707602646959625609007582121300556980863917685451419058282635098825036023982375912831692842844793281976855487087190162297599285891648617829772027378180770549609583139206737038065163065899378171527831670797642298591425738816400798694526183876730076348485297326613925134534215600731712599619525303235226568924234614104632384936396597837555516611775698861657486788481409251009884820041412833338902530107532437123580297688229347450636036069992248114172989839266165418490901504573219163152472530312652332421293769064525519937489192474402936150864706774272358161933976057663926240007230913087037325733648034400441936265497427011355554403506184417949605162687541918215647441409918268770918767718979492086717722120108276040547272574228153576087791359748095654650114946893526460617413512759389224502800708142894459428849068606477186550375894029926878505032309700967600963023530045619118869105515155330794659546876749004797118500948659447617777855015643479721806201032342293137175852364490193273386189866547296458125598665485025466946954134060814627128212587201483915671592547882303602947702624306279274412167308108402851728379886709496037981429787826873804295121995792381378440709890311097243501583565174039047952990008099259448200414587062529549436340774442224628032588766011880863600629127818196979225626095313487667283880165549693437335836060171844997325229166668176325288552114046011568761338243881279708127312513057529283183656542390724748718586241335507598238377495091335486549137380099447755659282595694432731105212944264439001014465719176474395822731039396121337150540862380800451231975060976428020343049974673089847344782396679272712028190531028473217078339625859819688944539349230098738096620141091953249178763970982186910818352296876249970607317968668384107686425478042248811456506259526160730818418745852069371797725527877640732640209641691827531520572628686854595570606769345172908606017732430726037150800057482063401177935060487429624740241447863651744500150046560369966324563642551755454015404121117669665225298175430328524249519167836110698884020475295864231292771601902096387784832005666156057046950190736128900887045755005098489919776452904252363534469987821729637161459405860747828471598269781340329745995383528996565266238659630539181981206506485210074834321636362157776178229680506905341711111464344616733817801667785009498536873400885080317066627578027371960068367813266658936070550127128326446556935805326406769220824228519184972044909627638724343712764055011651363284305515612310981987519101164871631792860697321694179642333440917988526541666997564984141101844179221288145934325181057835374061789783533480074907240040260632924254197317240654796306959833054613183188445594558175078108195512189015063083538324210338796008628831300851392932329729989898535675445634344572833840507855423523569219804092320970510368352614148580516629938698099709308871518960694097895355809249266977149403547884056164456630645669819710600066518479434982626378168069151626873926502967993098657029402191444459271450849275470261086578285208168077479822403120157175453391994750758823465265576941584503659046315800554387304518616220249346003607893598575265775709983224094189042464352940380020663312761151343190154709310917881853794335270418420345431434086268503442293641123912670123893315255970058479114793731820743458456661661223539328853596676264120877029637359756461388349895396104210676636791305609209292367268664232152665116831433754689137784577587705819623052158165640411422617284103168596722106233431246518317626549509682326579295153182452863020649442556622607759983748935313751613896208094965341681654076043693711325417993345853810264173870399420292705060011327470036282866694439551774774406231648154571594761760612203188530314761409505603487791884355203817472105515831360866504157591771785204698390177990135686300026045865009304076452856796424225592432955923456843108777401879421951073800384025829256333365007338645107474459085589068901896946564765990985744215081307038414355241432405967290168113852516511312038679229514134268392944312881081221586735406383930120316761088616273607787876559195111668661823382124414013772974035325619777980728055635207342895817925467797820797368968699730445882018305187392169652296777944299856875743538203711386703367741101872221353320770705116508613493174309805194063067540328631394752682025137461913765774254593956159009254049694987978908875508645453075844649994385267468925221768265059135632190884043307169624137442441858775285367156269718505631472687139674466410694866326451368221407605374363558928621226975800580683050747516340490163437554621705008052947301683621459147655956588899667744981527409852384221802629812328063539465057151269020018713868123310713945980680374552032631585681101099200906103645690548103076913362856572219478202270666630189792874552140101241980204853492200454465010973953440934252964811334987714253889280462334383837888748562286177029887909494158828642762035489602327112373160646846487270260287093380697368686330806636487941285355694608533039983681611140528629398081122636775712463199991755528041701359703694514419165366629839491034165806120566043913296858125059332434731948492460441204833157528935594676194059552993128629791194179445618485036827215666062227295009177863804374340397052549568231369565885711276936497963231551099767225212433413719530061173172459662064591475012331196441828297025772384981531594428526850605761607350191763845506812717280888687734925125950374775948538873925147679630221803935839311981246190206750663489116048802325893247527377823848456400276355512278736434283924696652999222031372901974447840631636811079616434472711121917486014567995291511477068288665329461889114751857380762406924384189064689483471023014834828862483832534097956084728432183108996251570663707573731490435782572787461239250543266255925563356788455361959337502075216847302225303738616617530390553737454348793593406559308237374725994620939391831644502027251865773887879487186286996734253350148415368982499880020499200850077769137179809423484823593879300303662766220668747842996269228250271207627786158516264983281368260717083379344143247022983982414248874727403104705735144807010149695533474436374301270620589936337155594668611866247538038247574144133731433004680902076399506151229103181364543736168698120381559542809137977494111424417187525192219009285358669662606303882718397736791548424026262089100676635904614865853093914814917074979413280825402561476901145247955380223612710086562082879432497657680877220817749755754265351823756896881226433147383000047154339908822356768968992282896912219998395960422193369404795677457213709692299806601467515400749690112634313389506623545285219720456191110557208133936964413973807835272052934269636818012347432713598992255311507118278744335422864490643779577171594297865461853541664338460664016588196133545042187137694473235043293286464488708792062545719801220785145229893502271909295536377180421009180257114244987943650595661818104632894071945859390718890636334750239149485325115489853098382953568992981766374666430303126105787795469703899377558743008338957851706690112474425546682317579130022716096498059478555631672640843216200895278736233604489649655144609479046638104985501717738725338218497295286015426771526935594817766389009315085022943937568328212893273426591372863763932469791823810351618098335987005379987634446834462573542995944077931695690255782618505887571057280184900962724399994316601867248732383020285900817812539129997630688644597582280180620537819525275655087199459990116652050043613648525327389025478389512035693566662573695281803331762271649222328761960208179735838481035463116453797805895237292112205093041030174944451272204881327882174516347078826036094641714607556370540273882975266048976133370098750561611056295596840566738224492581333168232528724466778064357423941571416722770683904252161121927646972726942056131134769810876176091763751434006575083127242236920570073661707192175385525642599254166544745227621329385075865921860770597847787609468989668573236781458295807894369985856559832339342809754925951679900238740790345156527168811289037894635060450641386772893405860993172316905538712866856231775907071997093269612836084111725646276304502364549060178386043935241836175185276094100579593272246732617638719702071556356603875609773690385854262556090731025809109399216363861282078440351975157647883768184412794562705739987021283896059712326170754094482376458434571150727818986911642911777968698463477171204175196880051041622253304975924211523281372600719317464428065893943959484603510333846706310459488922956063616979667045472454192299375627946388457726948668067020929978259735531878369094224494239636128372675536998608374165960022362385024537211311799070512490009907789310822826630268291002605852758745147568992851021241454810434356775128821121582214930804361338493175338067786538237104485745374520624731597523994343698950791745020119631010951367211599938717152088230620392884889795770921849688440266196230950173008097471936080383692549551884065845529498693082998289486756874443007316998405557077546279567437627030744557070763414168589803137054452985146513475081351670918822658792874644808169311656992956009722423582429749183636030287816160752096821833689455453069540628799407363594706566524290392303566010977686127363899000657538841453748257755827973091552856422770851819736259756007385878783963373876899762759731672421719773849896615223523552794025332830738076674424548085729236848487636523836897334158435049125923860426823739268337374907016638043353363531654194818559649481964626711142377721130761865800531894540967159477543730029744521296950363431886783873012230918390916632542331283255296810515685512266820951034716261090280929585980784844239019913454126649547953923567422440673147436612043537944015902783727806056675305145341888393222889605321411635252132468152620215879819211986261101504502812464568600498515849920813167814160465210116723887725657000642542797088518779241114461670550090871038027992405775750409453930230444983301669398016950388032509025231362689244219631851058063934173985831122792151250989170893194355133113878987978716866268375428804228018018092237851387006683635566140380807697342451366277915286949565678930494944205962881260209533366580718256215480207580294806463375970159655459892643030533454091949256164205011073109960436322511933140548840341225158749889636795791026915338265685165337634550146475090369905358813986516223942590144896261008415885257722542343820747520659787081587121909131604482244028605695539979274036021341459267385476762772119327410732673843203797474024978419576395526651144729564688225295269735799527609037785319653453390868442439722459285475668157914585716792817356833876085537290391755790716302231423797254806470912861216462735582757971413411733737669765772568306843499003693178277721333797664870254398426675862673185054829734531088255302606977826201879513497119861003251136051697087066400561803700521784105133568690828942139115718615937683126697610811018611514476408675049052184242178738259280622423580798901702364460335667403326656564194078777845298061133665778918192405766594112447764971981661368830759328478143170717178561080099474084466944481829753399215150604686848835971446465267963100058506422451654104354681266900687390735220196507234516598661689944219036617487348736769323716323610387143317494739233800854846390531643226193229666623562938720324688445609271822468015145659001472419526400760068960498458657123329884055017165501465814339181405693598388807749617318318635818624862897830956251754360675782420744991254021524779485834953473160010610262005664419156039895194157369587708297629353730436265112437204407272949865059419298558204504292874247854841638896075682410150350733550761532660505302738651679258224305051689861474898174432180859018949430673440763368172067837326720490148666665605038152027624298103857459646447813723976740353654878941718152434669415336142341628903125270538629054075117522311876087012493012543918285515441420055858081116690935882412579226510228878303227332929874074959675547038812421575502086102086217976655531481210660457979511787127376994961689823377652008484272482162793845339612256523034559992742551290052066780966929040600434899091012404477824037841353036385867635271130575472700347056681272928901493754545254120093125547550521684678729567517706804144519226553494774260984033705643850497227131502723669357514044763937776117138410704217697112891340712229143590333976987133136056772260278208649847407326172222580039529893731303043601001930632606267543894040908815292223504574522486366017714838380459103562869830054127967008144370469830808412122840625466859734920485045090718328846858203128264208703586274089500701511403827473773288536014963638571349800279694054088814799148244101789607987944518572881179122911069108638167918786736112354790603120252348055248774713627251620121240013989871240449961011071143358284451611136140808466870034184183050292572464001461009606118422272300279921652790999688486099958835117622765205126030508714544312949031202929847019523423430850640079179278273799740613161843420404574501009227023758438922881538054188522426412877745040424365279775355475397145616566412332718756945571577130536151081970529227938500393526023451310940673379142092487421468671567732984748519534121909202096296017258769699451389978925557699274771636957061193121837102428082668264538268892815992519540159192253698918380573855124639809577290327752546971318907651618570144190045415652332889944940278641122675756057286222690345786647083121362179787555265774723013151805390992296157172158701926931163274034875099071169867712051390635142985338124436059528287103297992276822696351845814195144086099475914712185126289577058071290387285827087999704134891614430371256528635876101728291902574468372270679561907601152353371258431304929438296451374737423704840257170742660084520212042015470658985171822400070099947128374874436056344536637927689158157378168625394178978625587344591609591401726300063864481045977702406382982580990362129908403958639417559846066952387589644649437060192387766486671514523644786258626916244626731591489852649839751547545621172552528969374522263694320003155926245074059751464710735912430576926643683834222960604024001545010943461351324533680660304869509860520030289839963254133922874385739729025267163859777023937897309608541562190548273348151951494198756838998621518101683925424445351651880794599835717315260259215973247556576502569441595312179765447392489463139729725178272549913307750220910257893734339841840806059098268759440589702902611160115941419360924151533190518205528514359503080596081133633010476468212286100235252343690623010350561770146349206529913545523011511866911022214870119968452139335002481891063598598786455830082691228588311839692142017864111439131908650285613707447515443790889989732406516584908276089451543992449566587523957502356175362032783535104054112712639590485137429029080310658222660321977919535974549993085627857301793220360186078550169522454131559491103402716100214398274124689547029156853045103103089419778735039619294454264163662705675653239687227783415369697397147440401456708988233285941977576684355375362329741186744083955329855625485279249301964502023353918389699585494455997393191803432176067183425939046355773977112669007144962636436907963137459135884902032276896450053632120664741996692758016008788900222452021120179398145845153575185172454525059343080994968206137244760086312124604342090226471743735796560936907095846252411483254737296322723635829163603349885977299057016530368105719604630847520687704502297215814667374223393099726895432459282838007033590967762279862161211351156922692616500899730080420368235508133105449395461017335853619112135383714351306436112659988622106039226545857188216257706274550060445537258309937533187948067278921643147121661176367447732819060923772478986752233229276542863309190050180944857307673126947029764211819208903423588333146036436394653715946582051141315368341027051060570167349589048562194087520990131139242548356999486670358250545611626957244021438184128166257185054460720339700988719748032991272035829018915965512215963319819040815749777393835328484061084634509364674461749883491143496618959929928758879151014253370124611604533353802389239172920622935668222191063368722236705269165160739852570490664584508214681146511797721088273452524269339080148316050757832803085923089759754963643251715983682901944102542784323328210192091799877218411148409905057664883831764725817265643689911469129483012074750918821643843549653777186352359755633690439614634435672228188861962597243719887255132111370762750263459071344928908333133932164501028575472398582982588577242433122737069309275607124120651283193921845105445366678721394524489228686716618568873053127658760992229153111368015462254990050032285892446840197309852778388847531277176961484583655078114641781381925001800625379296403913360269490910527832617175262919563404971655827297076906484129824224011679946130654668754873265063628740594759196472368949582232607063537289605672371264977731163979722132863703442145282934291716738164922727752776187227357311205139992185142101427883432816431306576428538977745016862065612219326518274000229284148087672151946748619838714315233758317012210348471223550587454245994854020701009233183522916963812011153001715703620516190253499671726145888280384743617381117650631642494831290647218962651888677265316351775695295574677995626820481376021085406625991456426267205673640649350253919987110703496481356734328132822587294666755203852277746590794976047174205198332468053426647559494969877723718026759132676854449379991912179922478472671155739765656156567957944278133217401840062357774136064036375896469429261753274437986768316278189855692947125508739060364997577386894709415200014705910083258358067623965599287940915406938234374549882863333169640019282334687916676244067352431359195244960230657721868054146295819818193528328096300007118440720972955896582227652224695358891053979455785523183635726797969285176752994833256993660986796203720078793847961001241400393617513458756626387410206665661251003387361623488177383214535764072636419335333527230050853327567819222467528843571911015881754488689897654338279519747578056930493735571178953790829105761476167699079686823040630954952379455524978339115735679067801696413505746837410365832088312938673799154052884558376812125649767339487580708530077479580151815978936175845740374427480758393757381116430458016735903927413960241972607219595466792043881693807440467019766561358071073887213040456202308702810584999132272003860322320343743078640413163396404643159686812230745773526185954128164419632990796202658660032190114339506682909374345815239836793295492892957520829250504205133229613808724118920637367119847784745591017405618332519580627148413412772380309826775721340824819106295472885277624080407158241849945933811864648253431511748507125288528357866020920390198848300072840883499679397872702590843130816455935193318839411118776040804632336867934538089001811266680019645843871689409757092426200323622812324545480671359570603682943514548568707193162364381781202619958732281377735475811523215140920569894765042641856518517132378694555120796466689368338237726877121636648256291131656736863887828277347131532818749611775972620512524421777806164435991058923565462092178017243074469861848231036088791765164158178401219007470658782114142105168712464665938034987022425363893888063842857834628181409805354760490697331500770769736584442948795332418187767076012439721882793040542976951632957715153170713225795538054418280127877658624893304720836490348976417407372682820786524195846074554319760241011101111980921784708327248168001586593564917490480282334751953605272343247553097513049004013420772000169464550514213928137669486314839365003681186211255158778726290194143071808392396623027317914309940438272017868355014462031211943002270301017222239401933033577471230887405226398673688379440370639872367936020345419244270111798517919672155238127644366237434675204000379937893209532660497392628995922466957917465432738726398176485664568005470585062676453729568618516163280892226544587440775905211424243360081145167456575593499679145583889270232991159795141221932828692492757301679917615101754102708051291085385610390640714639008719034720309364741266623932722863704750173984058047617175832849329941237392866907356269471843352075491149666184291558613829648233447676628822548777875293459873586774611731181437328146020470495656712687023643137393978658794045744136512298579266697756639004551698314486965152071985308727261855963056899865602841551815813408060348165249357573692885431179677618294493588811715358984405682515758045628029392698393280571234266756464394918033795518325177849629854211254075435791285211425275798751128781217158761567295575775836795890293474786841511972814055120236905280213714048376819184090148653126528459370096090066685265122062275419125345079427245804068959962053910929446361197399731150897084488746487328958447345383794468815783403622785260633094485071944374746197921489609034260779565398893041635844082311453082018542510260856166832795879163150622914800119861235670653617579602780092042522856438867764207363155846095911580342553879673733048132872768712993155588543732244784290084273031029047100431818644682154916417299087909600439443141775700261567271571253478596485984194711082744612349829918678250972941335789259281063140820829995250821438411533113133804266472235531901457122122521017689688128930668247649505159424837307937800309189471814189469723455145719963540877235667752351113007148954724780766279941322000006948159220360820534361759839209846233358562570005441995219363061394037022576887801521657412883187657229387824309733879967602500075850901086249320217139934730916550494057568041773149681590915772665905734746372276837964525500212859676663473256656750459008334465357294358916389245725907388530091491825725259185163015026801855601808331180228182959392294429295456221474087478440458374458142477009789609486685264521034750478800734666947477612830561240934642016725005908342251797089774530811960277249621587985431829552102904422578011459830011374154078141350108210921373803584804137214583028828387515557179018949677796454189050056145459893647428511821501421736061825188461162958317195356948497934661124592780578451508735379218261749973855260511243796084111895814015815568881180671639019808080728985061050451853020984983052935379364765080137344413918813120239663742048762974051746092045836526969758882808780034129782590696886232912748517655034723548263412732310776447604099744341459719755368034224864327315600349357742408163743795259330473552488575081405967784171820764277950398381326048082351036256526373599844338315468335910828651806889478622822691332830387578828324682441573362473639533999493548879979816746894954965282814468286611764730230433727837040285881245055934891946627316297609934179637246910317383348852891904571215909539133228871033097575711789850895172698932439152238618919737624121038174891624671930419938690774080023958843207019105751374179048740813041208797029248495573298685294582583219319724059809577858485494669695454699455060304096902758951483860471462022955625811342699969960212985084330498883675801859271377843386309420786927956705615831626261215747749867802641710019658789915768809927000070854953438231440568709402770007201987849620753346168796254303331819991609046044992099412463912972112554678890125239503936278833454886059600771604578985480609735636932530876045084477975349747240616915158438586956411684750977313493318756517709462241435604175719203125293535373574896989585934758669475771309465860105991586491013845617044098101022034643761304309621457043498804995595256163881934538671891562326005814596486489342213772338426049870195503308458959639136814055580323704715640750211011466134638166038895389996312334628089750508137301584912873734686825270680372542167482660805261261472686897022061205293760854288769702123192335218906457310475545608939001809673733849799090601979939856716216812118321474338407911014023977477482800944749464235063515851696902184250690823086755553365923541410190012218552460127886566075385390604459018808658887619358369728556495951458236509612406960815209684974090521904790294256855043764890752033687853159542013632778109979693965133964563632624620211696900313202592807368227473186869847639745782419151800673646355216542463790517522526255349204015704336450562485758915234096495635954058584707574621474690957726950695396236989310792131934626310986754326656245439641105181445607618202105194660327213158122578177706340237761499949239102258269314722538053112464292400289274017749617408329111473274629654125567366011957763522789427777947361633203879454673494449407923172475477304675867075784847907435136223393011751014647629842575683092286806563605371063485817135575224824656359202086722044924414780358881257291716480402208589692328925797297123060307335388749742317878869977195445558941573431820378467405179981791296994733642151407127454106143896941134933252919326917634355557929590040004634429840103320972080445239810369379569343736002632962912369178513397904086122769353283685659734629910717905575922643778770767959859927997027012216712088750299424406784916727813281987755033982181490702757741318907917337122585940311605883440606483725527800993495979330463702424194331599860623279005363996720182099514768152845639670776161785725011490136533077292111492322730968286304507413611788342292076840607325295349662796705162418278050827504021884389765761178647231034125118580272404211774817730514809620044247389705762306841435020494968007499790947218129436597731124693571736506979175475987647622118933511664586718884011166905744970734099006317631217567792006965361431728815224537994803345446469885613249766031375488525537487245144770587076384729688996947662190396107761413864891988278960577020900497176040183590907889476021024580663338983053258761148600688465392161837477548469190185444709957347462192509082388531471182709699669665371813999602673761674205695721020577863341701409819525409202841575782178974183976282147524624817166986101033619368058295852004500113476183485909933645139975643068500549346915875110305345894355821155354867012230107886649399144753058154275640553966423373671718360512464284276252543068166465428397180861470976552876624358987258811261135976370789873077968805097293514910913115909638850045753587922655247571335476396795120611966410648453817871556529662818111587326252419039656237444475973345682482902330905844387967414265962664728753293322466158491486452213443245778023109107800060152016290135208569733491415533607197992549540047509744228223164595883518239040310740405989342945470606171925645106064742251077974194269866713161271645898119279664768116172106271300068069014803461820154429972823654172784016649071404288256958093025712758971042783941556769045927557436609440126739746008751203565306929963524360240799672670673597297091946163874266112165066563898447721369355812682422392942662854693140568084567583389397243421942537608478958544375055407850161976660518747950062297620672115751683350126737602249918506472776038802652431595465453086666416719534755571270464329461776237042343018581484425306257627441662423971448341308249352309607469006020578952762357226195833276991591041385225577355468848099150222474285884979040760929563946739285231749605689953964089676123374869749314513892216549312614762838750465287349971283715755674372877031414325998700815345239409748121367795769012724573952821148930419122289699383215972446786714727971926316090921785332916714028040818759189404927397307867225870039234147981138805348171595491285874347107613204652519190579029861879172534548408598118545779745740962163473182870312341262067599948247371545450327664579206303563076692729421864171830150709268972990002572718648236803172591739980818228877232632911634728658006534561652043778440583804277885043432306167236556821535033670409496219915137502247491305859436220810225140293043356703829657139919922133446108979181085662003235008946876821473846526887022670786247200989290961131072638905231778820636830590835562264151036624879771143861329766288421955580405129580873869744767754209151709783808765147531353123691860295466224256426703598232609719076275413704984936280588959807691635219974437687401244439536270956620373432474191520065662459688758081063445397354144619202696571010774160786084230015982048342236623070174349032414041819120886415237352726977262766087361870764525843084579220579157726587953621467053521877042443905247271109903652821828450560834243814821730675651701293345343135694195275698064186705709955794149780171248695026733648724366079884971377874365716158760050056325972643676728885978514546025299318807560566408009692143228269866146733111518092544264978243415296760974834064187238670797846349833725149090743032902048859990423525744506352751990218611708139881579848166834369576467827198793362060276704997465967467974843628174687236587162652242048906583293997247425427002060406377573981328939550553412988546035119816425361582799060306502165543987657443071438169508106347412226458235058339785338024615643282300100843012228713197039349457988268169734317440660907604187398494797499932081758753966768959362319253754708769414308054703509930234013225946385396200337070336788527542686661582119224882265618283728267589036048244101635835175448137080788954530518299268264403513604827022755528986726060302882686295903314438544570183136943374138439772201045403181120122755435117150953454845968226951653914005313244859110217709520523179285692190868419713868246512005989926504786163145696238619032158730006877272935576544212913035290299712296794897123084980474734063247937940300119777601866197959433724224855782128698034946736245882575218421931850183398106571920271555430502087893246964363080982859248599802249542417258807731323287101754973176920020088525435857924146647342610445426744416637132131884169602603015350425742402206444910797177206219928773484669472265048737718391140995803542801562965197353106643033319112271632653393531557429940229158642608959939718792463798665130407951063159622674859365795003653176305034577077216641395442482030746727086478271232462993572534310541017445226460068815282344811812418124782832445792521437077127190494935133681017012522374333750162871923789317900183790093250735205580475304441992180870466107542949125664252878493240244407159616806538751805497523832035595689188984259805083559925543879685780430212270955709380759740151486588481058080622382248477474880054044868824936638663991227976750370971773269195278792771957596123080934730957614458585675816185081459063457029287700044133248977036589306166054673871146519848444681538918514367738088051657224528050612583175008433392459828454221223910230458174835230814097022891521946974917339716075158953849821328022634395290126540974428848804357409271965733339879813783929094595878504420233749296803590936198513755732461076430908298247959470613253464164279509297599555093081995050334210839327698365161253569440330782588565014151234761033641252572867293559153010399455859077824562651005112831535446010375996621942907902264685063667442151230938377379955841298876435666793866170908335566885910647682626268066984764786941282879442605846114499127109539156959474381320090696131186870601320501867201341441495911201679537422004434512588336740578758968462256865572786946753810879168971150184727600624216630229687689952853033356267018392658485189077176099128078804204855190316198440923088284543849848363995319026870478820161011221728019944711197337866244933816858795650280664974658071293119260092893837338020525440226344424948339313420338410275881633604238186400137157823727344648524580981110595629432614332813185758933546716965949580928086011751160323030361969450640689282000796663772410164123353707234703516771187054229687726603971963302202462838917049363209074186049392993882606244547145244719405060673418197370468903802233325308274670137331229107488185545741603373663050791995741461404888009352196734670158948518714369759334344290212698990597563846442899279752053585981427276349768994202319458865395434065997494478944216442820697743082625905363343506471727452644919107701607277771994328872967635219439639024289067534559933681189126693721796734576754183623033892793422226099686696756164757973850178549718204770298672227870341650378677427332220484688174714812614840302458686689703327436347900625585876131904999931742697035621110467056263200101753635481347098822854879943483479504490096850809211173011195102905567058721719170199808214708190589876327277909984019924404422698868710676808196276500634671322228522632386414659208478208170243771897597308687055809635358486103198402344393412176620220467891271278081113282199140072166254606088064953627077436634445029967706730374064264027471384058574161386869999348139016237374927759095793705358774157675958135330175163632414503451145039842276606559280687886991968545193045340156387507797115678381078659609393789236712783244263395055755155208780760238393155270995625702524461350037633697284391519581227597620713887236556871548643764821694995708225147074844567935582844893750596708253062421273381841816007560806617287488465657772954261930062677769560266700861380665443024653527711827662745801025091636270853380059474355397473187077518291288254076316286034441529373776179891842494568413194164557764556830051218964440123481044693225326605237073095559921588199535618198994511985510041826421310320814216137006306005597620266545795939973706390973298271079789098050348867746030438851325497425855176139170357215789090194248546042039646237164005522090432685311573793929582339365145980079776631992651496419631180098443322857563393459447129194963826802276622867996120007534382293026942469085903997705975423953711639359966482931117111187204875020397442680761407774721527110982520189244591267708575281568847938236172264787036150294159114950005770568668694661310609610603602419396152817939178659290974386640464368385444286033030338687367080345435228615254986342764008473980981849834469704937091216110962070264592649537402592508051429224328860728742980503514311638561431979416156989557928879718056240949589300770939615806588279820896810171732797224688485022969795519873356711367601571926268454841189411708119174369944919791028758581149050098244566350868306584149234742870777224497190161018565183910825344750516432883664183704449848764252847551756207296303882725615582097723975441906615800149960691769126063522940065221037909128569947269290873803728716402576003454743872163826579950608749581981490572871433332000176066102223537649296275787391142456107532729282438524451260099195495035242954137966563599718211847874781975870375278045872091448404007964940892308515467406602306970409349108293910430764265313181263640220450307544298414739874985745309438398736687595836937635311112738403186570958345817734284381797685680936360985822659956818721468632459246417316387338339244368679228756529760011574397126056408968371324415121268427813305060396381470182283429637964040894179440707935154474382197503731916104761409391173213941761028461483240502841921932189245366056705720033359315350190956494010152080891457230834724854406626952150646436462749847719282033483888614790315121513872448450085705350255842834406745622373261719663950600804303914729374477988123026000974370707962340574196647300214315144451337510455077174757682782222163538776852066217383484817405413375018188623885876699215125710479185200597879322565876667285916258191636478252846051519892934435694174772925476014203587032322400600071297225741928190558952253819895012486149674598062024734979899861227964250776015336501202726268372149224781285935583014804659316290268069044716921845109872848271474681967196579727124144609265358607299453709313390746431438389124672129435422998292213375332570984206944888591249020846163373538240787310741267364962461760355847343114592213161799259728204305026833564139219562792151890394177834667658433168702095593460102459614288407548305259881513547101743414124317704038389530249090984321997412099815251526254657456702331765177057846209721201704295595501252596393665042650049654546844229979171699953080747406517187337988648309228119494771877860709744398120539211965396497206442938512745971547989849977520771814372390516552210434094713038468282572919383896578782468689320018428541791648989335472663623163244555422219490977231911757549697997148375932779502602136071396967178616297078889785410261645113839525384781742555668373309171805594757833023897689841711496873191481987830060998329326081263871040231453833943275800468145747364493931233628564551735464291324289960733205181910005816787520926111758569950545419492880996649949001174427569811184740363913715323207057624580029459704124590243533734649202190231863945803419516208724881706546309120919426782787846866208092155124797703109191131768197399920860878338559471578886429557799921264290328355522822790890729855107095428119844588534271541643800190318675358489095135019645611984891273956746355123243636506198312989432147587681125947616906927139722116588581094438104323215821497079975218432743611186840951030159050017465715166961549747601683288280235262446471423037460701206729541000135721284484457348340649112006782938033766754265147079035549104354047316584364371581343413323552539324170812730210174121122034798171543443578766534503236183014309907464472109869846935811245326127028771955064746544991808256379572059169365521487397711605007300865868421017033764915854319880845080942785192518381191050046910849128865403952944424661040046291149677375736030333286396177967472675625574484784727125893162788391748018583983368420323441866104353652252297342138744235034581159184441226086263319859697680430917054393418029833761156325956214489696842922130486302864772177730961819747636280282491466104984913892232242874438068525134663344580107079178889958808430671550827548698224717416735121282817265049721272582759961205632214837657566069429081711569450242513216570211742909844558120055559231920318132335104891278931665915792115734518625618685503939030753738632696228934241332280615904612745236084000972754874975332756354351860015556354237752855508164100938109058956751475755107939544312801303355956471307300307532108585079672518591015492694875152061138119107361567521794675996568558425653834996908111040074463062378325442374450191114404986392291021005121254413541364437441921032390450438900182708303647631962062318118276890482623022090246157693476726378499649309301380118207370673336160582584657848006496683144630310995656424631095762478701073495220264417385325874111248601485427729694878059503409311920425503885918381670687336670928855130686101503689101550104939359268742661821609865269850188572582762073725038633855527407520958803388979475710485404534682876611625868299859992266952840155002793019872616028681715595041950056197036728071771398108364845048024743155604543611748826046198372462822436016767670419337313590886464026903240939243759629721739503556655796750363065894399308418226982552822250025459626769626942500967631359421353983445217071797546347343860517513515425421372597797987434635164778392086199733372730807462119426544160596310118105287034489740341848767961261548009329565464328405360564874805612198116222922636174890543226918157895419728590774866569851327114564056783049333474357492487014668208485583362169014492338056156933077433161721484265742764787109174055551437466195772400145284441512893545894668101409155566399521770015020267802922203613281298183814861830639775927580901896923332235755792910333195767163585498684694832818987151903123809751637363149068532775851855445683268418487309535318423925434798141885892612430023682221895005411988472108471411957235492182581390898831033574547050450475033275049524327716529372770993194806897879542407420202400628589771389961069210730170510236803597852237512370816445327591466818606680580199155985418956677648457855527778763738866364576935299947274808851950593567992576746058883636592942058382650574670600070658222509806995808659431868681863350691271624033568206019415550763284361149876368725077275251078914552423277447042950112672127930676516246023529487883554196295313581736593031909442356563013522616097235055642728647349405596955159350771989350069418071813737263923227181466285254267019154999686873963582879158411303272133587355587977172656728105395574301579108309477111505300799599999829826123663153347712308527158967250930434893040838894826932097624477147798730889791186481194785750007550560175545632006490200293683405722264931344364933230172428821139133060253824276727577093545897855322429210764545660312032244825574161458017228060592493802787882325264105295252034231420143109936901888282411133947427259728735122814272598703991640604765025716441060648436147328941382769071198638497678893017702225489785336306908937038837150448318831718079091397440674712528557355392889596680114699217525960462644389056995521999181098965031081422195678137406370691540700123922130442949223745691796319020478356876805312030775728880308226980540220813036696660633500798987904060239151421274744858748917923961598599000244630502291015750067296099852837066167738588558848062004317486641940364638026726567499564168716293114490453989704722025726337263284201261497224678340547922559272135567270437245006786895306488538784307670495288466123024775650761827375979244473066990255955432602421573671947246413864378133858922366958280462870705897838549877091076671982398239568253535699940413450873411827963227538478264274423594851148028505359643996501565469618058075306946099149919254662354847249407720071024290845983159178805735389874834082252575609458382040579810755194630221784989988678902245111962115393758907697528097933024094199581398480429304168227841664874797209982875080898314746242110602773237552208355056056435682390865384768997055397769316252094413269641931350510743567426139844757696313098928477076817791627342706303596191898983483780480847266148050906552344791856241348677242123625154261551473407749779312173941207916579767492853501816712901587257410621787076276118619416043061144179447905435255109414462151700403220632195279165228776310859534449119760166705154423610403089024413650397404606168637546687125738781818090150940142594458508170761250615776603052066977497620063868532282222572524323275607734561494400352627168559403707565840936094096368620107440735620988432025472701658905781881018571937115518379805005666133959637958803124141397850566687989930852264569191498225136805836932604329226223836542684054864401320439248031472475925332795954957382515546335966163490542234859305255807547113363521221950146925136032934285152561592803061418812376635505345068212607531851696932296795104636799846400894159785553901547407319165930970142331887269171675129049535415572568481072043590551367414795989903516789446064141156202440034714377561898074906793301795363334344285731905626169035101379691855143820621076665911376133913678520376866312881265130293475808612722286738784046488788923560503602842305837894150140623409154166273891480455480109329006242300199946492122262056847303966375168782818144156110534687122236042545542564905858126993516819889330182901767641748171257370060587242838940750251586267565659083715557110076911069023575616705689423968040413506842067643815552837805388728674658624613599295211227322233354734576731889841245056417764634685029627777864294783249624025937434338482481519974749509895255669311591932690233719131767672583931222206083362164684930391307120876654842484384941434301991107651476567006781111035277024423542443706433826003960900192659066078151544359645423554694323986660416807956021084571696841577008113758003996578428381957270501127653873345959610390583740883059763426448124800213020237171600920543481675697811221432811196160499326076036581085494785128092918122370671902455787380877735079660903863006106614027407027699655357444253311309467695824200859758539643611774908067238708278831124048237701698982299027961341460984463491395803960631368086149055015558586224178055536977490670792081675308904388344896915533902592808633460023341602166562501364095891917514743607232832405880770964815961188744057561510679162979012738855247587210708957339111391015480836309574361251865608086553898847362651628723645296384489145013724566511813828403567887261559799527146928236894306986317068122986988882160460521588315386744620481481559216781237349041739464471214595698435730156620204226594111993978539735216534104866036151400500247870513086633800896000411538588898834775339524131749618259343523740734993554890262281126442917385765323755288822960905095051297870130448791394209915498802826641485056372613201014396353140555555414999030639689671744439979980367869852823001053500675074996600373800901977002940591935150521512322782458021856235456692925808793416286552554025436146839262506501125163029419049118281193998690291484750033575210324274862946572196120669708335895152592932341859565505568199104249798585779869665444995156653749537041284448334686728231697488978167960057606233350034728123704158713735266703317258597618084810050915168716952765649023522666093221477906275730337523732492443325925421164357142115781800817487073033245863787806309773882204269442800149538004375944458893908540189391030979176534836403612676922346094955817475561750366855524712613162036667799021815831387017167156541575624383534840413424596327057374989439370646848106197637115787809965015215636803089447705852862791981202045386244691178850149356015002142386378918770988617165394933641418802539133448318290240368126690451124188846360341312511365400166787573014704262601553161801043889662701234539532605136749756068272219697442794400461707444459952152936077193029056623425406325912046345638971829013870483917737006634230708369118826106956137206373286758911330172442324000548483106005357317708747186133565295062035945601910202905824096446729023730305530725265069239878841446751633199871490460132904660356592135230995177941694025517652420899667762369062448064765839721326536128177928492628871501653429543259152994263872471899830508213248681740409558049059718817102696765132343502180394132342399314488690847529697793350940044095579831229011438442275538940633483871449297822476108120948620546443191248056317775247459455397677931925915313869873420756825069339933330887896795270203569957880925517200438476148100650564493352513602830061522526843636102769269547733655809192192076084602936267588795906769969204999480132046941189659586494152482323305558068080836866294205532062773005116777366816155891256112319421406876731531120575892545788065498058034116869786968156152757445338591438476998048261671253864397717338335363010341539535277157575702796040122881415262688874193049659441788448094526599012782933275466414210640914502714978735685099816982099651477977308257186521046872393545177668902988764463610335095150374685679718237109877506618856659082551568613156088878962439677176137132171716613026076868618832973716624628988587591560392823299860905781453188168497735796976971570856869298890663430754791990226954751156305521243820988821837198444439453245796111752493955945390591092494502721673498669901025126407504565112814513627425361374577785667275355694144184277454592655659286158711374040300590859191632504086673250679928896062005145335027784997485910782559343362577217376826668023876202188578940745303783145912453812839829236264686206251684376180369270274078481615429962472397294237828198783081191178721130967709411784580887503886139993868091985072133013124011575440429084998007710360633776513877095186940525307239294380892000461082412616766128313181798837587686967901396799317708576555060139575094744990765480154031980506851314262313991200393287142283462921664559665224814398901540396247116433692872321574015128575200472806303712643357533160301894503758017618223118994591263993562204429767443499091509822752503896286194406119999866956267676438413584717403472444751717284786711460614603626142091382980972374564160555261580460370665743197388875385278522705779067370463221836736960683362551477700970601782375336254789083669704012908395338345848781318480378581792516316994131085772988227062207025691255496260287939998593763049070681617347347381110303903842859890366233172320481656970196586630725147103869863601770135591221361038481835628141134086844818214947499598766190050727036326830609540919755949188910884009884574560790666473569411366001693280292947773048804132384760663238897798815751742795370479983179261021867968709261758360896841970889646940321008063575377774763985073697753638026821710551034492037474363649382632178082952151989198818189435736022947485716241621950485479091522729993168552377930767503806487024246088721071320165438806091023906990930559660848122992240466150985103554832249719917909456770960694285184252642277364989376060952695200288158943519903557507778222795274294820247710482050025070034965881907839682131264988223049448134397983275279712527718325917463491743293526386044950816869748379213198133300232701471123288181727816248131995498516261796460016756029092591412392245489410316358079013485725522661747221916303577476711806769551577727005216360798959716325055590335981716725492008298858064681990090213466571208166485596481722451842073787495737421227819362304302213158242292201075046012553389397572557134676783454474807713831878235311375087993274101047393864520627672268822282674777285040983499700687246870178701510806785235370697993354583473554461962958422625508088865973643695408102434796401192055600230635845949801428062705046253156146544025139331592778751874588733768341531495615328377687979206580250698569636997836202646648901733129754246128974249723039329216213377290068366778249337705291370344712008858238130415950242713180558418779297390538161818000310630875698241826653337908680827764764892248972295094543609396974126680826442865968138211972390965095144563887014123286566447104001428267631866036999240646689561625106290629795827642318236786395184133039893315556785135302621832793648516275372048125721217387776234555039281549766437070009647742653605442978565315581252419900976345225659172278113738976606440031406781490148123400552194042014297972394642568268526291872377726377989919072717823014744247106626445653211962284194518142659792382724298379614100403547586266549904364932420701045585900484530652518911403403024197970736545000094446581407248006541047075944983069230963758916409203827727623525637193784534681780751972843493595788857666710406673812414691191915161936421063960787282076495243843574178425983191970705545565867854425171668763730893191449911761813833132302576101061020349964016026336563759836713497777745816806105166318529246774063961927915499147387309723428380840614743611585437392617561675933340738108379885384606865889219489991227497379631336283632767539412111021532534171943716208077319744368128626671190977112228055016676641453723801343744791121296611610868092954309775060676408447231455263893828434441651418857384539486252549424441547059127287344925024806205976635053310229101199859762630674298950498184096594078787360334191106054394636349776036584495222406996195141138618930612339129337740241867952500494737715869659446909517662269736061290649403519127630269756035864066632123256107749829863822940868762383668597787355346731672795881563733129283663079863962867529769301761364952771256427279614617147385069866148231090396405565493245545688777237637910279545869054769452371436482041084407452003627758815595360901116029168888694672321630078045169112980330502295339678295922561189756523704713223835330505019996454410216478305894012772461890975128247947514863347513558508702985078237046422599547603573804323893847104514484864715350983142898006908552188247603662941526120242719075991500595376807576266759874797764032873145302816935458349931664821601956267616432826621079990142577380285273833362683882766039212191460372670024714635770406764217347726811849693960156707896305950415394423037136535678428983489626327894739800535468741355011911468067295826017454179286163795740709953577282734168474447941957212179486733480967491180149583162639079102398457314856137054157443457687765110388612833835995377651214595161872672725769231560536986088251771392159846412500506594272813702643432511606454475862488648965086554732605551932300017528390313403713115530306586980297532938915263980093560529284530180444908253691663561190998575393564846009368673890850486768689496154810837777846801362868525685028770783069672071298579731364956613117254944189132908043853976194962359374160198351182188890220720695824442801333388519176331995996651578141965460554121402353110170746542025177192080260238075213210024820670139043521521210984021234743287164465742464022953589455579834662007442852829930800844582457827760435304794151035343640337473529206781805880584786422108707567011905865955767336895011675934469023708088929068271023961487426891886462559901381559665831362295389512852060136222921366335626976311019616694891384476602386690591722973325186054787648599311575459114532483162209198013177437764691799084407343796446287401012643931807083761638197328833816097210237323900283873687651245529769667132004499516453812412348359637490179240431125335034406903841755790544461401578960209082174231947676642501652597977579805941748207188524723084143401560960216306525617490923875843299563955098269204238592789257066544287393337130563091932056048861593615706475061066326474937070787221902817527957436792254217259649327633614767156364118025897757808984572207863157179119713261012994282873321085540426757652636526013416976906208398563969938039637112767813243567494094706047158999315877853864083779290740929167954000631319307182922417672902859042551368605448433708369093962298926067437937481059126296597250357226987299797688676592134021291333232285207239810177107314523814759031225152513034124246188189948313794520586473358161857865308723637250288676110671980867344712416246252564940353115103778016899544973859264712354241688757065689781815702073730988441478293207325571177363750386333205760110271308631128921459458151272663105105635127678172211680383887223101839472735909192994860957529049297876473573836779867773777200499462184090844671403663984500814599354041015274906632001831916693406941742626788295918314791577781458274984850660561405026643646548939734814383731486845295919734715530029092137795181563006736114124145315500773589892186188998113387386709359061849444841770108809170511507292878081073472470304172216247533210680926569661649436447076799621939955838579212255811299704301217338219220149922931607277219814875711082864661414925731513854707105299672137355615569553545216643825178477775575440448360096324047203729480413199655264875727495056026690604590464149609455784789842329727762721548897859348787881566780931308274913783885983823497746787254734067281556065284025234947139733196384655452168269128237692401800883017746835722499984211144354339473168933013493547760437254677464272865559778515387636459094644515144443191150958427111491431659834972923454562892954341338106588009797278123234303484696225027682834501527435962999953029073388558703587543452009794820291104113265573125667728628098617777842378695299197428719437396063100393047125462830074155257059291813687029524147781937521819008103972865616218836201627524592256560686812663794494209584525806814234151258979395913108798680653784792331642467411807891459290148886932991396765212813294802394070420440004474779035677169177042438050883041014571812906540053943797806399021098923760681357081516522892542497960751988042111314421868082686539384556019905050197968939157397584823315365778318917908061707446900505068268441386269009182069205218356415124402728422420071758596363566656887070782593560300070663388732834305864290375533801476699657876336520788986355829990465183524647760208189919584786699949673561929898303880487551642236331557239397617276196336708662149465201611029863158062361462840573624254591074901445934523750383955841289897011244576581825968482093721606987424030460679890338080851163328318514191381369208992172067325600509824063023991453439922683670777916683956239554837157160742829372516688316063700589328354783869217756287433806361290041730726431792390186706525432149532495565806717625499219433312801213196439666490088780334504152319981035303032721195814628595258893785711289942390268345120200705364335855225063944565848089669744102822318348150262934778519288059018068357010748778442959073374399129882012307194534717689564106972899950940141210745654164266096152214778297744931895002660573110706860370246196157350695194263309168558019697937017922320163993481313583426527468800828836750270400466463236985957218472790420348199420333478783949889186576175262969923805278190138904745882320161702299587186148184269295684752200617538411330214880449008622107814746051196559491136393442023152577147634998031168915203523182444528106557372053737912106371974996522742654800121290010522837105037260600400226296128826017576031624818976147757661657340928985478139319790016016171895563834532921063851098774874821815787105469843000155375901183791716191993845565320832080457121010925786242845572010361687275594003852206055862771735343854210926997309606702346667632057213323446980451617540446982847246273992306483743392898522723103785946051434492279544377838263067117927479424510017910717779718695284375817730757079272270248580984583430115460208281071266044353249226307339112689399832826083115577209832003477938891823900161792636772221408984688967803700779071286337268390085039201828774935987039514824312498239429818540371347077821580433053650826071104293350008308423925568619451104745499431467538253312695498887383028819447230445419210423264025515571456715842058873366439782617416255795818384046818747873914134097144044598322978088245232319107422540283466076563235949771984240527541095090881464773964917024002936232106253252044982396990554462604276110585471535954216816003772127353835224823195614478172060201920536555944041462469760345989148664097492018441112030575268592939098906699688204220019732668401626671650387748171931848633219619663536119468462860433421685913115854760791841502272650638211098429108167587987822772166442884432119820498384428487416159000661192437043044905507173586739581740627259377724089509080293027062942344400297097040233755567043325737958115719193538431496602395086577069276418782974248854580365584455499629853738771385160939272843970516117524036254125541351967778537194152221326220799811297690799303245092058519933427296794292685535954939005587045535515462888126810019320794182573530183246801528022246363907850131710007159059334004118123881941003057530535491850337571820027481010421366113770527108295535186239423635947905541957610701186341850328097315924822992889158279562166095340502008415000551085059496959555991613382198179332530871178726277389638156258306896316401931492432773223537647032596883367491952684403729334613750754210788138204811322606947386272796305098316613689215854731271878392480261005972461652649269804442835205052319714131205075413308537328682291135567693693588304888344888809229739002414638740141363614433139585664027194346266725201908868451159043595116923978751646063257513611084123323482510841866477151471308851318272834828035258508623426829053513554988509246472192091086637663271547214615416916863459814515633842178151176392623301803971735210714391708186753847328784087978942444939394761849066390937736054309266375633966878318891887159312846786080869466766780547001920883710447437614341718706906270764384541422793099558369507703385212824912852576662950083637860045017625677113835826621613201214903755719659786976387528749275674228737585121310863147159820401355174440321403677201345221030082214858814830363851522439094728398794759515753763954331921834260521064134794235658954796928736682094965313809606603661418561604542309795405783249076790680855356338991886538526282723430786498631102305728861611482372017799862974475861735265178081175086448738384208701409280519118705353722935836372788669412483336605647498035496638247431905271728819202603373145932887742451093346027042894412005354656131814070696410441194347378787308527427828403379201327040755642852925912653743786111910263384483258963291397107846335158212507683198922304318991693264297296747290309224211991974713172464326207580225394521110796669070653852083371212267243509950807296739808186758355990788414523746844687466545812604060033209685909242539927790191802020608292261363787720102027387498849682791239510215639868981942605697026153189022340520448380594953719285378061656015958663224023564215897552109519366090202249264682167124321574556310879763296881294870468271203006098551940761912885599219021043337384767364867807639166041478978268869021410888561865418312386966283489386355294965315064366055725721286446541120651330383352834000447240708316991884166802004889563069479928405434639962206771715627427638925300228432310743649101453743472221480718465011476646999821371386860797629963245369145862064066170488276730446332030178500801327323759981816577952659757071807054925301777086995612297090920342949898563780947378659725874922565808178901612335614155403577470508904819316767238666309756937098161682130197457874245702000016758271659768200512356009863952308909624000124170526499427770311199105222851723744949345149837419529025516415904157195393410102553590556287948996625897118859845985674741915972114954067380507632518671653977517241056368991156383724879474011188304850644198538755240823288587180680173714308384051020758408031588988570129765777444305503080726772499479187482721446857325369952042566543114259886369125220106051128770917035303220878855903574509811500049768584709368932372548393013746870461678497610249312742033785371949941932163867509382786223326717413916138238734861306606230123026457945679262062833101886990378422039098802421802314302554195096652787326678302869148825789076813101565738998067154712887673668527422714564583006233397072010950731530861479474554174064123899770569140189000936577299610773638446262511199751082555590053296412597500223649962389079683078707873730346350808395687611061367796901620690245151563809204643550055142188688555516607648405770263062479748211128359715561087925842231666397846996883886138584989370465194959177923274586419696592959181976988075242774849335581543196285568328785043354757504354612535163733861453201738536740160439148971956879142362580947225552332536269655756839794720225587821834793255700615945653403255705240976898993822525741198249079658972910129758296086259113462163198580618448281950936976690562913767761795349423126757222135204994528150454974008753153582296076799616045032102125156721884882441608761206544823832357866300217485223742975260688587465964443492874207780877698644062243746761754614241418752363800139930254602262267217178747354448342788592231918170291547735975367551545811186067741159413709925705338133944434981703547346277494544893391654698581355610603821632611366957612240586405480659489511209082410953848887226072656227923858336053185981921743625412194260248996873257672891358426655005953390407700419623947069964450292332849052101493436645380555219658495701313692205312252463183754063496890733687296414819917878499794514590743483312307547139787345337564343479630704154148349204807781277375954615948245794888838431701283314488931948341200634071871642472820454106386809469668487728204366006954227468789315360999424139758331731029060904359656771234532893191524440591174712936595399265817861811484565426232910051314204524877642333035258789395082155270877391707940901570845354333052783438320401251213344760140491366903555475349260121002133368632870179052254453141408175430128507317743030487573274552783304166648805921035831624904605795285188905011341213235549537813303938933442549652782291431432084736504333050728216371066915931633139109025749127819922273169707833362606153286404881325583207663128656342616004831282010078896531612585864062765539584024125971662085014577867787887317784515907168550790730190611251289947894856659371199642291158760940155098078167703958255779583797171395353120464682009199542989804077046878641115739811662233821202788395091526876499041336663744832906977125205577494738386783486561782652350426579001139005788187301952530411593318610450511537696564721722545716453126149404650650148575117416541083833610344370762714836710650014665400963943879047986075020399868553052588934203112485621945944834346341673998113802921806528710579853939003603884523155831004196342923429970477092161553884529557628928135038909423507920317354767609344850133309144423992348593270122686539244378182038193727064054564282544401305902616342588692009301774154761086971927298566783238662098660092226405748428219366092062941338521123844380965051483952124849777996526464505978625247268408270241620193772122283945239807185508305953031494649207417544144900258994823315699808084679642289254551058414905369941959313412067962864521749347524030628969349085417811645032037595703412049038824976444404930428730418665142745675667376418130263240511718143006000695292673403552073235269090546434711006168444047277364649112017761173270610899862203624940143429210934766760781578173988038674476269451084179879093798999065569000841131699075565167581287179550587594558472620249437944645902741392956051043869334320632593135028914425864168636450408889809563914508350320579045323165701998723749105100413226096292399518045659656316353904926163601148140062425288227030418642440665314139989843306763356384146406635960616082728362777243063064915661515822065109332112675502728388952476989365467193455222694826695368529546312239031564245520620038041691983334061938009045667755438523908220815296426951419568737720605454727289991715099478518207450660947122950049512021171590751953643518298155184712684974818925761512878027904308201363565434249801124673289846576968236662169987164887126948198454741615211227025822039465321832483081659044391642989927912364183130193437203848684714861798372414986053933824292832337136914780143044992464335977332168185487617324811878295693890831236390703976837841266192301545675513793343162920269143143667806513679025901022889308813632815797555573554515796489335406677364442479268753195269579553756009501874596772014132403133254433079479506883081613759534452399419717255293089797358565113522287570168354334128880615617915899814678039114165187942110777020756144514796755800562039039973787138354635124863152936992793745730442482860481413759879200603825924600771893441989180599925711115002546407334940079781753860018476362646547461538200872887698770810675523203045466741284766025250832063620978213335040100511409347001934823134142654766427768034155222367522962256973596407701949277736706471608046625452622667304144087363379839872702256783987801220325680948385549281624027658331191478194648206032368942756326347272817195626741772003792038423010879211657076484750545466314862903246566817784862281333144648294744462670041163236566904078367875713389020800153652996153424242421985549619371300070476505049836331596499837523736837106077796659434385773236360402693671135463508884274005263237495920307981696255306783941124245685766327437757540516258246442371202575166457650329729026355291271817896724502810586228510763072847453132054925412413847853197040883858224535997436416050497572114485261123278835371049012615380845193285650424471072063476800471306239827957974172133195625010135825989605515542216305638675763331840728189016621648374797018509301241245522583128513997896714192121438513672735488099944384997599074775010449703323235844563696979570255364559397262633980379934411461671151395741826964412530022565245106127412676196580331145770856818688477352002232078036484660367291468086189412034183541615983992573476118760073594214552663773010642834068192346819061949210408959617540378076328541531927177584498388108653319178625659608757679086214046734795661170397279347665516244784320079939159561274162483780276704462630098873678943725799873736566728088532156979398734599485231180734317685763024522340783011920276707161892094067958179759902026631868323101867283055356139279346503375282392213759365518078221000702725312511473607174336190878867587750730715903322301935083571089789170534177180948439658781422936286474306559355431939072325198668047480567359965801345292840998058140320059824552068150366307277468824936102207779263295134761583139401074527852913080117197928490602680924907668257121955873399198106428628667921627392974924656192674524106348384213863318345749636943555791199890418965630423029878546714491706033374316173181078147648789316487088175267218271857446304507334434503715604194133576376565675175352313485549601980088130510721424934663899677044282691606872245695487084711491603045323783676487611245541838100378006270608664580104574715294719633742457732445596959958772034503147050193309414608988939418125488095852452053320034210209661512292166471735930698383686826233829557303730960075236074451089392571500739060424586775004588457949745715871950584206365855646030755525820288941965654300293027265794196185041020676912032497225239126983955724970238511123454791589935789443676212925482610030847915261484370032724029298777943147799504256871494726476828555079192915300372587707218260135017963710385511096846445532544256813495831624900044654086971481556512125641216755580379597106979711026700093349205021411590065519426581487014723009176336787940969875845465418120317249761317492211022035348341193276328704435381539465547177297006402274315356376107231443070026389213248564849271557548176248229831458882449747063682910671915773034937563428423526657791194600246893747725308422328872773597236211791506865602094329842409207095161083808896714498745342444137990003131205049681457379090994151920843624805506859599157883739624446798705404278503779568272888668572180771959168425011106179148739819681331223105196861094137021195725502663741079069172693589774908537488420285800635757632201844249336825272862380810905232310237172319722261205751574644217304158006579135968712980412566627552136777134212766721146719184296333690020783922285157706890138991417549881484334478887277687816727487210714207843909185956610278002514074857209779505486278688476322224011830054203243458487445005590589029041984940770707029988856806943426388931413543461436416156207479314776129598342852929709760576337220284592936996157068611991405617252852360635560102607560347654302939363836464752912373914423632892397496469786117982629777053589773836976839764729566123845541550885733670531291974056632865229062249126332038167216288098563709545747352163934779504617249325060483807744284948326624820120524175251135822864788221240469294122853127687274335274031299416692132529929159243849810364567124082809269318838964309375374687246111471511819911557995699954713854535309688220445124176592360373561385046552306526311398281591906597856703377199100895833685936532266490913479763457875476260239508880487077706102254418529897290201919394312215479332183342795631301998134725181100586528429532382995968322822056871404920677363614216948157256565557623086826800624504495167034774102076988575577751769944065662986673746590595888111330327598007454796872738682212669028053617447553188218386757469850819385829922898219517865716406781652755570763397187653645880369939835380540709583150392367949810661494296576344286697411951907750020641153268604464845427278938314035096077994071338680287158404537339476630012234020881793391552450349362915335015793717437658661583322379708070064458381190598076783347026774483442389422517431419754643474138054943603964454473877834176521191486964406525178133278851174253744215615433477951738001493198543015736092750129020269857028721558771995199609238055005966641801312872614500275637713246113042935609947904697614869570971595149046674552019370108696424868889407277960954654365946348405681278600816871268590010316824133389647073518597404081696790364925703438847548953416736462546816024984989273006405799004787930108275142981785754661835729133120699535691495612805240767753219929521353905518457943670931462443637423361425134588534259693534305220588876529500070161744664904468787315565384947485478771672427816827133537125225673804461436129721254731528590103560938718527485608374335284945026564898296805360720356091958296120458594400983199771376802126972111605600535573466684143423251977582536823129674406492805865963693791181803637701776670428967285126476963568648244155167220557973363527056517689222829200324172813380387141297142299057883315418357063333693091171832293571138093553704592660378490700774406695137078534418200356855511079303222245087057296038465927459866670144168152024910199696634175520266238085379765360029395320173850518993782210970223432052279985344188213475855159717387494425104879949106281090409775904361817943951530927735291824377570431184406723744652605301552255123861979768779002738458126869484679392459158569120247003275922841948999115500708439110907488528509923805038860761948357285149117906496603791973486436485776354994303551271627268937861533405662308231591881304231016976219393683120864308300916844097304790173155950974731561682660356181287433760132561731033026141716280195431345570964431657823637317983522509268599581969979892068107620224524714367780750585508447046248703427640540314228773755866290815926480225099044510056680896814618286673510455331363179282695592530844312452191637445508040381462619679948621047609195517362259991356516257536994059842819941364647985664752750199275797872195942797340382607818833211477435615267360974343692349003738854975476747746794741308537239175437861187492165196923861809554821099539338479090336003538200571031373651680273237008208129857389082008519314037715298433440532723306492103528452935836972748155219869312838292403071875340074762866044114420429459151645912825545061282862867458058980340160607662037141182795618183016567120825507172496199973863940150734827307742105789249228522122483954903436734525105614751296357435357651250674359247188947380323787954989736737688447868334325295952120081272721934962654995591642643334597783295791991205658124804456802052229510539191982208705393970671865524064310529408722482900948866720132158720925462521844121649142082982581619814227004590128195827105328371496193791493654236122294450474723171896312177058544553466073807141980987498702062760562180688678370920944623949991232209716877935804535765093492982129778291848890942821519636682129088299615381099195969770451442098225077447676359821356270003021689278788349757680550551296147889912374705608424973290108737147324085089342114282047104682021070742568575821288074583108592997289861948946314574957968720359802615067739931323900659844250877257200689429510948319966732324738042195380309310142367298858722123947125181967267410681210804749100571500347509788295715570643809728504749086461046260784056227146051284737308648355212767847881121077589618358739821108638465299235259333111234158046298634073874502744085131557326713281127848854302918674131151984132897491619489449883114815890117529473735735936253682379116106755613740993341103150468404054391836906874535180113867124503932526581800597059837112347542791176036859339909225787541777188059249685480072753965818157252619199401723499629201185554110738265554926316654074289018816194131387013136631409079825180702996322121730961566748122351598960473180026886022837708259707835736654145855952575880327495470941107223891291395967047098355913413456213078598209682926366773593209439930883582619696831813858035632471377502729378626059590518668772029873539457934450179988663568173174778663321168739300499974839766219664831232301865220400434071435164314723741532743506013871846801798147341613240333094372801586796566448974652961075487421469447049206296485371960345889006268854231925838567014318327672460620458412677293452260956414046834978731613962491627911339471335314099665755544427585031087614643519322867043311311634493456941894141132968097367971227357195790031497786076865178667098368799601506608009564159890936774739451508432410324740854109682140809164628843605422395345661666668130008874261899402930673858924419995056673832700789887231931792542742530597789340403395085298684273007887206020976995172677223735346774384656106792279944743712120573452137831669829936448131574660580803924471892569530182217797629781631208932151383001138476810630287426295266872793983050529308555641638769099046972383122969547817578548727728267757635554945720792008727171348829561721981428756134673335917749788498325951440078456331471405934755930561089204151845619060583425469995987455496156187356405268032323993966184050231254092229738544002938815295734046189591382952116834036683085220284764506074884045659321031608138986813654742950843688845793807114409537518677694393323080496127817433474657595072080544610352452173188174580942331317460060310780712451707533313677358760685769210916335657017406282107536807504236583634172696896649651040345280910087122967755143197377624438287917900639698332400382371882309347314517238869821855964467602119506405252053937937334399689604064022849558006673307033047150983273155975274361651678256013789404738625835469656936739327477502775285742772835027607510101257157820541833022559421271040185264512173347682866915839084277793356040174430964681135919756065853514279589659469996545594796824133633794773521735949126039739259485076859431432242886555721732763515161527422208226948217483821323987161787403236980732302886196923408791076902667212360159136038535873678249148394731965549045551072736169309359357849974535486092892387169028331620281944545910580235296603729687017379442846503028747887185854860134372032895729198150832995893744729617197458686049502011765956419092828324051651140975926229559133681862623774683840012068844122878236153068468918469366586163077617894010038863756182747068917860076583992230684501406669637178713069592625802106475851715951166598625040776995412763394870816854742524475468911093139991005337066546633331126987891816074895267578728472066203757174987005959368727571114917081152985167372794129932876334851035422446652784661827839359980863898187095820524605476318993349277543959154848507176790936739274084813180195917937475097247184888993765869650227840656232089678954290507762197701484494317803064617362968808959259371421471552251332389316677046402606486309371130234574855385818343923508279078348054099502925529934664787850918016436865791142607700731179859539078655868340039319992779459753671072843235236257190557947490624506358216821095908854607071254337861021990690429205075556553536620055849563067830485300807819773510173055795320880026549209965093862123583249967028823326984214891579863774520353902918248162544374544099601478686492552510480268962831015729819884380263547789965255731844987397870924217670367859845873254818089770913297318038296714802164347238951948269591816291711929139058699116652661694019906294373301132245542873143440075846773948310858152350076886229489943885657938934641880306839025751063365977834793651017942709475750509870433136650162280074807855105409535776114625969833394904657573344805216010468428224252337975120652605550718847377140057575501362496608506705411555330158133760590848799051354224864018168107582648117439187576845126976266595334480357063941662300562572011609933471801515444959236933567750034903065395519036571354624812141799081701048482870496412351707709977424559055646796835848973723060813515949878297192335771800539488664910579312279776146895990923412217772067321710304657556226599532477463870215841819950240052164232867165444248935282298508585196564167926137781875405718213857870098774444102555136388939069769980754574226825169144819608553028152737334834069637357966752664709420160781024355484737073382414125551523221014069697120920889565497097971229280690505420077601918144102770607452776836287281455593584981634923719590133736060019750794308335287714933515323413080602894431449126656695922860740192703112092897825938879611873851653056885380654423704812517189881444333675781202867794215588362450847474742975679352111397252108795863402898733108584926771045567372072528264991740409946408355000187321773880563201134282156516351303028369426130277120285509126375225950380654100523719892674335332514834327751516609689797481277684731768099236267991275533216609889516154769813005601091053350462796711930550012443439822000297752433830011816446284847060389984986941641448473041443172804514192579231127598008583234518388369992268436502401767964483725997991994337076864536676615942878676549650017590095847773600543883059821255902076134495097181145366444615135519180698467698676782912805545576799346790108422600309415264725702712380875397765589340912494752309103068300974723437435525933747424646513269235482144759543986781841744691502012472472891114073125897727531938805810288556886617785105431612124988082165691443936200680829244112101650332608462137829530580595274767253160518988349826777154484949560991724656638297193425839626143421698489413089890815514357484615372250489842918215436209422359830807831819540450489747639841236994641768327711802047630578175177758784760739245278585120689872425473127123397134521370274758353055516341322298538276938346053384745192364187431833629540535431150404845723908850733340273393593497908085387178964888348811716042829174013518540996684752953847629623966997202334801894034128292076410498839503760843732518428788727942682161534350128605749758167879384423026546495644892010117240121181838293414802374522260741728039713295871904542398091932302707094579547566977807045715533958457650019755645044283039468411240773942282435726986345357407751964889049052302427638846864188282037462423148132596873072263061005668587027219847697366175627046107952435341657803157777792495291176412889222985120735666677130766604552959414649687616124224147122614645821077711661460557495285374660422288743657340701606923451738048312663882077425717568712713609669770744136872383377718349011005570945244973097243759736375681036541704704816019476098890678841507102429387435135871924828751542087068759139003445453619679818505917733495826426995876920608484602157708078926770803993403971752940160053818237700541528698472650891447452679105337038114841042223458545422610966375741431911593620686061990038076252315651203877392521007940765451823238957436472121949215850325103327390856612117919541694772094025541358496756836949421150908864901407431392932092918867894177275760031197367951932995826937446322372710905805778305161400289384353752507137508596776349750327426871528366394437444548278219678444050066403448089372444874804468099610744263532405220615934910850097133145168753732979940841906000525395140876444885831682465980577343868449650546133674624161408145634467665097699724917615482509683833144759372612457080158897042951054408309495176639932416623540273153415438324299331168604170759880233843422560097918461492144331688016185913954174736426618546064637409184006662764687043982748382435059157362739480790731690254786616861571905203820461708216984345101486650537624825182627311596866896270468070328095701792632869400010670533100983920485818212701258962492720445097707986138022223330313570486894989069863350393639198149138600890994182962997343770386221075051206377169384894686254065946146805132114866219895768128283531237574844512495324559745561519977157015098156201576276128810154185891063337873358335408140566616979971051755831575372323848001535423457917731885036850114433695832021798732134525169188905840369211684285128768234693016285977144942633574434112976096415615510358016921515313037086594779694628694858297894378215644676406372840298460356674923153842270422920072814514178891934010037666236918087131725552624569072725626490446762705374717876801907705437566850246463562530153205541126404334806123310527375191048520736420509398146467420258312956699025825114537964821147270334343061708871261688025199986364245353195119891883283319439051398967240480941881530831715548422108372444847198440355405808714201782862951267409562113572226905472489909568185739158653452353538313053356274788719732760318700433786216756939931075497168927441272547617323999018468371141172283697019028095885637858072183652728305051553853508481263888068698825649977128642628080559634661532572290821919299401753461651140384053074924731594587554060145499683851814737096047269436828556489417519290967914937803894630643317612418332311462071210788945682737304992115402952457062920280647467556076857775783899437560274742712008565418480636039804801647660964397433041189598957365807841429328724898147806881508258573654597032987114743517953139476126242410101040210363290198193081501848065113475407675851931055778751791492005747082628813269939554074539117814764508569764141175676614238309442886265969106787947771330627212855906815476655342949769743655267511679918181329530623832695515678762989878041554366971161696630092017533886742753690472577889411630082198521127545720864288183690552107474704193437132693128515022151574913780418504747694645496764946505060689823460291336421895055311912717921634576963538101800936797365291295912606501834344311550778525629631482970349651422450052728606960772903251663023544261691009796796056833327983518034593329943216970321781073701044832549377770861089274282898901048654484506302328206154877408392824957745696141069208612956237946545527367804493729960928600671838819039190361588472369821091804698165388211706662955011097088307924143182525654327456153562677464128460678707044851214560958370568360145413727397672312132940262041882806512639329358661975302811523653979986672404991602163229774062569350491518747659751975118849188794948224581384034582538407989868295026732290523067185615201872667455716711964843985072595250622028505144378562567598289201859134017962508054094448452344105225675487136323453966690739505691877951403474025576059320800906821452471759807407296669927673190713511937731688081059691730792369655596780138117636010459771488427879870156037580838363145145767154316991363458308047911136931936625033434392977215792134108790622364800638659631683462699183753669517839800936271026560775618945667917111189421631209985933024255362602968189608719141495404811978501225038488343031525216338136670396915311850835992944659256447824261219468523965662705971410878071148307708736255390439938335966223468063262901816932430659544113063032008523180615941206081468036406329340712666251905590967647086937311290993047777628440668740504982332326490824080853235224067628889609779132429751205132179190350089032725433103515985409674929916097664826438685675810828632259642326055384397107512785416829410910616593310384937813240195921212724574004938139303482341118152786516573514943107501797364208548157151895625597158438246652486344864022449688256438379094069964797953357788490946088628867092930931457689084929200878905119779731536748226129266874669100833562549697425660102937625925573734323974857500166910087729743193407607416475160027367115347919648427652986332328745407811902992136566409221002013369339880056721655489984904572892451448485815891548808615058184613592822201712253590559591359803576473118786502024597761657045194586373084170262303291901971715106690018265890436065009159104929024878541819989631802621052207387963013157397299030481997435747065954655551955052662254181495855925964051522467251260729265454201075375661808215285054779799699453622297552482979265562809641547644354043960453227719089385422642794419243037052653308142703784166436355613215340095913026702569376547484852797975619944464809837935411307591343818354111959375330361234995335264347512885288917348661524411741382662055376001199748656227244796150809934423176747089201448375874536970657955940416766591856584003661213635098513205824699575050835976539581161434031636441876193876013909589649483472809065085317852869204269888915869792270326888110396119229635412370126860305085726886729705352510469412877067229349618725716226803447145477644598081479118414245350636950662107096211652314774381192141703779131357927360065795460717838279998161508294307178978429150650132646181580738036580026280432616418345799657591762934182805012353945952324590040067657560989068655192574949916544287103659038392071119434242169998668935205675173089474816581221892360318042253983202536093521209522274280701181027432277211979537892899547831377963288464680588524750634289232027871677470136201463704611291611395200246580857173820589818012641471699919948581106282019488991038505776596098847148130967028215396987686233652352676809307489188178237341611128793535379565690349475429928728549662580366813956994714747252657478411909797943014272148715579400000162623550558793901515088120538719038945119689968191297440380408116052902672254648253879907220420400301458891865541506606476687765435869302466782432068335207933745423907818280243807204622968247373999341384124420806232591404131363553400197593318083434353902823586339140195430591405039915177233535852163577219166270101388924794831581788956422189281472707590781586993286018916838607655772835655136000979420629835787212500079481518574808410469096723631877310807627346877940755107788593073492108979266243155793923170639825667493804528584543254126137898315207164330853736341571227799321795349985224765589869966649995979196349367383923362009921845388226780226994667153343414723479358176945438924495869230511430162335440766878691622191557622655038085091489888185559223235874531896451839607376894253254132675689446336594047416583531788767899395206602571366458316589009904169725353977670570335817035924555652858158417074353212002093100401046805937170686140543474366341993870348239414066588153253608456477343034422232503940326518307486794044649306769004503127076974314249005013331113675075204492493840365301371875374164403831870102953080425933015262390886924570766346414388487287927196071050543378799043980442208869608484639048415344558813131575626749205506030299818667872997941691448253021891533512688509602055680224990073362076582587690018168866662461485299510686969995307224994805595786597432527704854483513626469718463986074516839694539573799176051368162433746773801962251013889187263481560272982787016465993857777709577958119491560035133220592728683913187192196967345387428514901497962313485874409715068057572476272369158497022716565873914365375644422209869931146366029542319723455918142965546408294795782475160575422555812439542428946660149249070072974069782107888982453951732746824600664138907916338208403386555532574314099494082440713828253210129219380829407264949757369673813146557083770859013089547251106522122962197984692978246261755900809511384671293883011864752784040812654325092856394412333258773448055166608921641943618943080773435986608595643356689677257384550271099073668468047251623853043561777224078613109916714412846083368095334725042058855516589956408956460927221311002093649869983802363253163404349042577262546004017864538087433787679738603900052172215802971783874609847149707419700684773931161945190261783025744181156715575755602972812124206122990592620300935351541015809138846049033506776565075084750920628974714905472336290013297987654755533446437411560379322125902828430565517095103090413696683768007457879129521936311538372488488577796276029443108794872638143353949667566782543997532333419294071914943787155519611637388712935388939339180783848439041372103530042250555439425662476820111547250867718879777948931916028054461161067282412288282107510188687352093052791543210302802146673064083023684424149070136461157862745273263942826919425888521700331667881572375253283929449106959317830181405214652160294727657819889166893101552948190705778186728039044800484204409573723248518628161983747853925994565273751734285807912119767444869321635803342369304601074148824148414922306947555128241616246929878612927977268455956166128504010396162188397809590212403940040274788682987142848605699312496302923716731729504561000620073678500192046637217634705344908842900196426141930368710242166813379422960324787597760290698879906016914724137101557592751231678799015469092678436769356403738859186771645978586764959698518542239263094982433603316532618877725173763094071939329200789863612169472759015724447573911756434805372310020174769189864958976769335777361207625579524583196113951510073708735241385612658494404535945244771179736446202315915448071685529527274253934057939857723972573799662342546718691799783525542879980834256143916961777694750771291335149910253928944021199229015260679360664399852594707807298818434171946322579954455591443044086102864726580282631334431878390225854682429861053626835879916855307893061648197035213915934821706755115508786871144691924104025482272996684530263080961895434339304039728184727187773985140316944516853313557950612051399403701593986755860214863785469056312752888316432477261583683365661938681340271437341487312782036389479739760717927731957347835296605539424713569207778878768691727221592435994164058892872635333597414143606223710535629053710952076164940315877451463838713934253692144320197668677853166855036617672780318963666462805380497363051473735078429923282555571311964802923693235170085597017957033820039794280235367616891906432471241892730841900113545423271270013243344615272109577434190493784318347817331130744869506313405501342854572078665919039531617890792361724899025446707835987576678216591230386907299813803292021005462711903226871254220108748321976133610242313687093081655445784444728615301165750362156909035842550209293509525888465037613321031240837634384495509435806535950828773425770079863605830123304608134515577912826187761911797099884765555683942195851496922080231539259970206861840224628065625433517838212437711840115233711763310453365509588445350860730449678264863739818754429871590405541091323616941280830217327983777319410598539973520788615283641046623835964371888444762068980367357820752666234854153717283975036341790388630084960106289079118203611385169520127794405456399204056016851844343971737502337769670324477977990959543007235636044692234820377793122975444955626563524127531165459513158734377540494854410661789921679603615493160261750191908075755625795308477913998023585356554343808188739778202880394433857168250931533370034271861286958269722080654147547977361014658730833874982425853406955416042373699544933492164317008870324437217485499502024972982178171122844445871610748981383285864524534079183710378733139844145838995642140795518633296497678248837504419727917605631520063752441623549632893700281186576704216403143396072177637417266741429114616282492873143693222861940936402084377465761309561090747508115739627158516389442587655870723433576426446934853666731993413068770355081432806146354865439164377702507307015346984885664003926226091789413680688404334134367691337944029235410326858641530671236528255717855477929364564973030161338345303644652016674733891342479434835839604034641399039399934998745025157547302232668448244735933450802666782157548207448906516307237876613846235846296523766899742322527661923974270173970620164368337490063121295241378462675477444979499905611194321262158751116721817055864238379119578467509422832052644944065836446717406979296706060116312083601497680937985753060573340939124404969829544172654652182870950163041391910906681591179251952617873133153636386472766129086731388463038597842390864667229298600288458745673091775974851818748541835932325100295300177553505169354986687435131811323069509780010406283484933138923256463202389878755943386473610305739580336864087548996276876383018084067757909344297690837449608942248907475273866793181102325285681541864665289373044873419431997927822254879086778051970396930935568499931965864278717460119898680886142934493226578290868057950393358017704720993773132075197187165252897500451799342296844408698986052541639070378680265265991800674037472104665362967366791069261170992658339067262547180313898418046194113280507528345432572025640349011262549688078725552224949603300916377889518845369412625705117898811057762618980804952321837728668169484992481623491924656571365482548835739935844538727825240399936086540377180816890925287725969578659261013763847483232641497586744462295403405593847195401285693761839561665191693285167119266713898347126870122460911744069355530161386713756914387367000612183990065647669715027078633366294889513153681419058508406432042556062319417016202644805182904596819742545054242045231944679892468315352355733009008671241370630753337265097043081813110139206450565012538191149943059241617611161730363490568636180469943990500013258495012158728717563185337486357153221834110280934489020154416072976896817502091136879619072884410493514192569916304851414444652905849773637428493910002193008349320057464243889846988812723614517995924690983919832308885051190918490243846978841534155335505580884933554013371628343920076140411619579861801372215461334127437694992271722375669046356558189254580752214016441776206001005907530420665330122996487647362655127799954348749367049967069837546943714308289139365490821609596324145941159317064905104057622838203395168389134124513323294723014770813562617033735325485658444415341229342792249249573496044195201768182253978087808910456506892874264990550459690598877223626965671739048361363076652796092987050525945650601030982742432505421766100617572141131933530224350752509628140100528763925162330311007803554370310322118929275615501225361466725214865080386618752144865707732931864063337658713886621223792533052882258184961444075479036320851628876164222513218247265498492650132813453959797533865567318659912823713206270468524894864266507075374858819615316544714814630231546029689089773104058608999163240988406467331331920031107707713214459881030776605177125593610450736432434640223969804374433370126439325823977517518087851978264952694037336884210483888745873870983521616381132009563679828614275761361636422308231044085651146778172237403621366482383946092812094545880259588498784373417364353000949870821610008183175034147616300549027025236522394521197535203606138909303168155698823338756318684868743668770509325554734327432294114381691794260887917975462381219496169273516862055841462639824443377847075408566279605583490760321473818180622242032556402491090433899888337330157347696345348411103990299596516192124671518047964249900426610642496568777187550596580787887695581925375901119999470303276088533648200815196276717959486041288798924516677779517646607349675985843818566172179522310319235812619668892439294020608826587323407960356694888882493522064735997065892715364648878052409440164075754954070012626559474983846308020729279563692276661630075347738713643189194898183549420849522024203689404017220209866309730175630405383697435390344931999250685938277853189794116116891596723212142974971712544142792333983407696255834654185469929683260185546412720839880486942365471994819590907631039787261975765893169298358767826094783865050327541519537977409625066324771158533226865884882393094135922434973374545862498857299284128664523229574061229537746191501625460027590276697582231897090650661451070694247861836947277043845487994279617414444715929833139160034394198222637284259202474628824042775325344265161988267910117613753283615888170286000205107517509989270714030703154916181991747578325207239218318097099384014768974087917316825251426717749316478266654918071983173031070131820675139889744884181988161349713363879649988673767478032308418533617408969712401394282917196795819718630961915109138171484848434234481295310012181236383116806436393280350452430242849133468502933220798925235364319717705032138679881091456467523153169409849780056583605046216366439035153736883604550287002359630471317104588584304562120163964290354226505367365503980027366078924024964667464928940713702848249177326865078790013827982203304546234477178241010891321714847927025089697476015819387448410317931088221826919101464324207095615188707917651535103507644104713718793524924373486622636345203737446923664322781766913408876316843228958959647314665529711648468256332858907369017537629032423257835751249969184657808626274527519079755925455145398882062291537441574376111268259498771337690543197182811120552745539567256348639718885988037691068781983510935021557128178764645690921913212471025058933343956285701502830081213252447993547760450892732040995745401729241106663303725078448157521660610860157372139654373613152576014131731052136062316804267759836553816818032123538901652674155776878059034184158138964833023622987231436515706881099518169596086727779452353204648812906658780929133185185491388495894786870673060534489341657267511742918570715730297559775945893465175447040075841189494282138036358492290837518915480553165599511517337400284320202562083086288199108475266898216055730249611979824601941154596272236137968148822230352458368047001276264213504003822513896590652536778527651978066567796253810868933761111511345708098927314386646244974904892315025754025950646849321783656900812323431267712757994683038558076776708671428568961814943783803609397704196150806720322695059512916042493256818851302779771957871055631706964009694290243392147964176083735847652201910927511888415746584017558619226531144300103239139350766774696387577970246161590806234521434302744267119742382108878318739387705058553583355350278610476753835558194997754467618254042790038595505690297516847270626332592715498774235627787097876499271306307631555042376217774377064195479242866715361549892159849911706426277510085416740112960403444777055410432475174842122700229555244443917239962676198018613043563644530915317871798870831269286106863846565357387672104673357004113628609470144509325081998015771794411697019647586566266175022364206806038868265408846662658554506247806044773826132959522010537593140803911469490805129034113469092940982730080970190176408994927963565260549158631500613387983451333812174024633201074701320194397907413916291836351557378246780366262075290751816164635080927191310551582964628735388105430232756344582726310787457770708543267188187178261337644039920458673303450947928499741643218280735796097627896593985573436181354069776703787289463428695102654936159426378718970575401749212794419473556796685554249908010855388758758543075870825954541479558904032156711564248849638715704534222812194772706419506702121052439945607001088072772769806576117964826302267343435213502721566007997725180208801047994403970185661470381753733670788245649332794127097473101662126322673911494933220876908617065675627031765915062956262345355581521760318186066545621984555737449107587664645890176888489353508215798072696410225209326931260550331688464531513574635142503560818734085953368751158961223101006488338950789885429163268001915162685626771536408952003784469128406444671216139675356477490157461082798445745010895066402863444570970688248849108360929361102944858830770858594954080065343773040297877784270262164713748524441602221205780594877512525885886832628154446777483986582870300894302909043506155269612554610783317265223740803385219726240510127340980765499599857795732275941385217220368630700393548802133665330809070123507026568928837930349641810570567284805206799733701350510510408935811580268217288797125805261512146203323909344949739826325197416547143213118933449152787047869880117646170651573658726860887010725782541179061636350082023726139762789169421409104481977075159576049648947083687385278331889759626409771252805894172176789656819961685853044239041285304385443347497935555371128690521366269497083316950518962908053781775466522024258958216042243693412687552056417889605307753817838027856156550902002289818146108610277549934396819842243143644965398005754258823053215324394499924977875605524363736081247796268675268749089558806922909201419464957506035050768998995741170374233803700626794151218130535473244012162205444690210754160685882025074106647765924867959259901280605576925839787676765093657641601587328070979910731183963620061897858423986504186684782597416043594190461384319991314951555884221957158274939554650277313795443216969510371838039139519138482239290491870862024975413496219348376592533578439656333404148954554973929282546466389553818631112263415284104271161487170214630740035592785333928159628357112681590885153300403602930670422662218066651217871599914568829196755974189457289612735932453910992820327049190649925181609468854205033140615826775251037774326688856806814111079778436551741672385136212795159851380133441922676276596269567951183427131581168550383771057286389720828115549257038656112725759860337920095195720319557388591299145635791567571637343441415190073915468989929528823055733675033954458611586169834716666025850808788600801558158396137763051378219830308829745534568639671042498778813899297624189424460930071336767428529453315317780551784756480284571785033275915382194300750550380880277399220740011447039500015596712612924337587276835535015353350595052133820931893168569720965248778806842701374362746857355340750443303600114794417135739950084015460975904687506630064835294658283253660239284733984123317688458681645167027174173503564606765668989900418246998322642452902858050792275205103112389370429736414952573242123708096450048960838304420452290339525375628293444500703272043663889643402740380294731742633604928459781228052460752339942041783916880360778657861826133589031187635861260352322533451596246746247556771696084425978751448468049105172531977140638650156562147320063706617103711111473172713713112743502705836546822621392894430740391859377512088231676667044501040669480538672514454408113302912477521230677471822510384691053625538182962610594631861677555663580482364829295041153104340376020867841118410625753809879761676689955544511874570217129839218130167882647559633444356253229973387022315055691728899607970498250191714189464867870572789813798516236113112825874303766886732528787444946896331899803648139031825440591399954186691934267806873943503576735885497094275782965763335698842122207823702537173829848005116466612085310857493537460674093818238667060272854313340829811230827163865954528790851777567101389499034173202814268390630240990278862086538301447882569534190726867319224700226903354258096395282080902398681000974883696173467846542780203235843421287640105717327427532499173237265522272497693232262510379238412600197943173734531879461144219846611819596337922724331320588499992133866860501759848805430577657477384797250560129096484531281744840045188179932125910550082810869380764732827726251306058021994204523570006866457686894109103868379066899620647359847442987616491802478940512396037714785813150242623433125874894385102734828619179186406872517933882054777042778222210118719978155847219847043541563119836640322067083340681006088991460322524360707967833881373533538209483696539458899638727996616283291823545174433404403215303642759842559880472165132754081881302706706818984351671427704442777811933077847868422399278045289754100847455750640595973823006767401662127917693994157727998181682283884210836428668311645370664958542452290512181720885033897345179396531302250101966232584896862711999308963973799520549721948609153227987556568816534335360038709856474762109870908784704267124095619140198263768303923290942590722798954526337173562951494789243572717077465918996437819632165214134004529217726322206357951458928682718858446926649995597202245498437170315107803066852849748348258814995379542512473838573670123799886412150909751553667337998757335901586951391395132043117951611533835357097758278048376603070146936412877306029889991607851227088932980469410779339626210732419927573897591425304623778148596634533189887459465424100182860936189750823566214435985734735747029395116661858406487393277863712749548128616462559060018228196633035748564205937603962413254271396466744557507624089079777506584063717490572894456797730397467260932050952661045681119119618239400647658326214704059143383191003880915642721225230330888235276127141544236203580760773059622937457978602418126691162751612226617440601791281772520422690664624604630425132210217850097348065570201371525285694301102652611895931802396647606042245048016643536209792157864774882089489864087788280570051218479963419979831171943920990295866245576647433322564704270858926632744192787169243218106447667594667643566025959086588950016288675524980372304289619030446927268373846333718497112162753435374118912475015537907033818316572835983941225505754421307532601818491986368090997863717997863092923178882897163496716614072906719058134167984609224623899649442956775626769725408824672398290802723824060012957273051133749817661012911346223801326190950877917533686996445782995126752104456433298831546120067478913405086104597030943325110824372430868988103888031377501915488307972114047470652221489256663473842823108448657180521747248536092784608477569427990621419431009163685164168218840302419754519581507445741957094113057052367285306362057024893759092264226276210694329729104544024385305741695837530196613564441859698299653508271006848874829590371686303599786635541455095580383085704545064968593724576990355383846129040865187519557297828920732429271929012057125913080262817538447796105090834941869577713501693365574288156537286272631149804025242793700837055411858731512987348702748649541491553822273834322298614027083535328905474446442609716615732846637561957712988010061514733117730824114672649009566054923409342980922128668476881848313836807121312325808313117568499312773835674901735423801092814538976099253169781389343869491686794072202391687410674747731819063934915919174896546994474166749402164057269030790750912454301623040535656687395925733441679969657108026837111925811720993016776341973804212313216692805585256283388647046308167868209071372776863084533092149724790784992334767820692287691793239800274790148365930215926857772393494441504661177144529918891048580862888468244431387475517197684319978074916960057892880439252304878465924038345257909267900547408098056787147732897668998684827803468501451597868884694787666672939237803709625584019227599396474243470032110615600592424344248768441624126646080677791591220981889293426274737497376477635806430585419530564533642124565251022125460564258627392797591029014345737016067669527629270254552656541781738688962158057628762826499941610367809123795816761846282729202555064526215647615054434227505439184946826747330948037692991289400902390809778270950415768602970741073925672228797429975909086945336621597658111881232710554060151334487668235950364422095649381639232368358039404642562679075356771650278450947869468415249480170482476519794664870637986815352078811107614996020064020479054358412027784320255925894479924911265031770963018294880670261765478856722464499473100144086562102711606088249717447912721933563592603635209221493733597383249307455252003477591930545862006325281828050955104108851830821159318778458856183565515293867276089034899083049071036278435437547202544699382457971260434615619594655727370515259496356920071258248693950381226382141288104717358247139858307164855822262196259150549332061160633137714878094457409971294871926675733589012966170561547451997635245754177844686946007483399079113696206453337367976736315257523671664412847053884536440977268971405334615450178319002398927376649592269422636289679463996247736010637187387476088152680713603147705144493082287372964815428843969560512519951857230674967874947362588431825873441597649963469891523107405324799517307030151942879376673200967556301929269149682374383068697220688539872161752313022409487418621595664418403930820797825255509049337044289041200164642231483075269325705470466246580964536337954298915773025052009605165421070291635972440120282604960310354856102504265895456706829238785545851787161521120334029756468381133722569188936711174584789767504679129236277903796457846528258343626166767030027450471688706229700742650589400787670500962810820883267135368674653309167224510470735926787057603527116968562957929510175473450467805928819836235247212079446414324435539115128724815086507544994897733970369410471814906506112315271645599420530343111008010840964486662644478663811982820361479241402960081664993415056108558343628737511167038342997426430871717415411629804540782738519935681325065279682703746015561060105304085855841648188493931902289458150713573380339288692659747655550948811229735465078499568203748926346936041611990900249260549572812253581203440260161744615029269771574677373046597450186932208642771367041081405111457133707286866024143201362546662979405773830627903808501851956607935170264661199609787165650223751122934180281066019293694534266750027137442246584680151350500702843534140473290026539901405686961030557854937445420127490668938739579463616177562763419954250666825936497113189017475732369320852975101735499857668837652197490195762698054315079815897784409276853721747556215394641361387775660958148916061515960898142430988575117239051540274231441470744848754529985537531337825954526057873874458541861462706715198682998593529157132149603600100710442949580330677879226933785463518691330720470091241508345565887278884732916647637098012421607936085518473901599376704901871525751884516796738976256883076096900688316121310834631673206985707877237806206870179146167808474218973994647796477230461252705838569676313360075333360449782103339324804715826710787061531900386424488540467764798052745850452633372327230120176789206695186450835776107746786555507452322302552606156019284483122546879606786082241718311605533449380615604618670341592947212389940171949195745612126543520201926615063925387150934288888460214132092779092270894322131761423118426417032585027063107079317558974620886858900678902380270348665991920720325362098926459140230865984838003380028110316555593857548458746718994039795127045678177496686696923181447756756636358005735424323794304611973106052919319400741688940749673554191618665990890436190752351979407351809003000401838995765443411322732049163723975857069867097332399996001531120804350212093992144488490016285531228864271246391661935687181150608797348866002685095897481584083410545984759499899997907111380336785745922857669630654584724850509135608032958114930075259492994807482400016925772021791708902943302816369155777501995550763472353640804387884943595464420981680891158527367919859105853640456196431297712583603466779832276789294847321124035839799663774038586866465551140299108911321294868073286170070446345026349613760578577700463322625577647939392879827150294647156183461057938582942437493311382323223237799732441744544227558522615852034102222843333904439322890463454485410188752343998274791990575248167126425807300312250813758128099234005253103247497329083869761881368575967459431138281942063009823684194099849072470978836310779815278761326193932725921684545374352306737078177172798506406432612983564199886391984040152616473946694262876827923583031885515138855004537846345360212867500877037367869590657187336460978946185235653575235106864629833622513873146382300307026472465162465236771183466648198528976779508231150113706754413434501127174077808505073793234414926000028308446834992136667581299281620282398188213376661872006316626682651311286401287821743769536540720103711926610802041668704530924629001378712010283524260690017843138873509910839367367410223538332834880225652678401913473944842831436553632358731820483573390275663546800774915983995340054970712576819605594491164846225617271266183595948243369628524297373512536879876908860880274302387705423534434582628040191712127699233748166998108167507102714345995311870412940014673241826827071043743786040898285249648446566698216074510833377763258406677450580029045142864826082572960805388538302010447674285558348203810484839600519327234222418543856549058339521623597825705659282309345342356772218173464634731363463133232074160257933280546682322383209812607183855749617233081115973380315321588086028046773707421272523056496574760428919728242266310650708590020150880384505585572913599836337773516703257531131126191798541419877373324462584073512872693507159786904642696108907115871641357563932146207917451198937909728353579490553183222266904311980188193599465711715230529196926860142929530745376655596493051092390791603991152671758050293781762447151040958732046320700499580244523509867814017084674162165088240196742035096008197904720215309030582419660568916467381704716552970618454451208583135850985163619829065915513140449910216958523831194741257802433308451180021825974304944966988633601110532483937881073388702977265183770880264173875902222377026517233255154015280240549979355030513047089774654548787256285325917510394067906660075390969988473714341795180194389609498686170631646966909133255157551841463136773594169157599490923734937492814468275295630295381065718797744389261497678151019604865260774521870911060597221575991366564425391904348488744791233078268302389033150274723964482189103490259994043953063031470308122147237689276438515319815922332473538185679784782271301530546958335619034836921204976414929814651829484356109796245406438209968340330728834782158281488471380890804843717750456774952663051337442786790957775827112663333967517562323006655966802047804773908655754643978055016592370060842827203981605427492011784995381970974381102870517634248881677939732684386173811213962342732322253803289931986960909307792834933093573957344955391133287141550352974103074129338769681456821438692979838214883213719313403508412798064315569242364464098736212983954434586007133188964459690044842967869593738336728645420105848451830679284301126287481040103307684593503371643890860298096040500942919253931638762356749339941391721409978039443804066343598791120140357074281918614562012116569693536228183066341272696571559018058814086626967277906489405097390313673707557351595492775748997195738696712314152291731211765711429570030392103552058713640646927108693221492124699194393707534892138118080734090689556948201972493579395451813685091594101582956266221851901855913398368954758879020314206371672736555076982722138413244488743659189888422009151439917244115306902962704219330974807943405324275042502050672156582149994506665836288012778888510844832097366761189598172977055805433821892698123551670811626980409295459134507533275484695405277889604108955902862093732262465953579523733114435796788350245832301817542134807689877403757738662193826452933359961696461989022523162639842433160885023046541723640511337162506708694775606654222814529625743336890997658796559787318088004658649835831900798875952695900399705858653661485802289338474247546405159846430238457974502832521114620264162201865808724839547568647096092395320842509140138256136473205804431271296343548436450893692523626957303158131206353511421972880576452976335368293668329021895504424350040622501578140207058909568251310656860462206185680076950815146269011681332334586090633583702193831783483413765602839763055395744726175703637648967955963928207490170552176681693217603060798874481545934454203146216640734694352439410219398008880245445392931479023672568841327775781825909260637985328108256209736654217618516524259979987958253640572687590664971777954521417026513515866136782901915636929324231396985605907538876297575685323772391721794607788677346383868393580729498642360269955011651086929941615443040822499254717855970349544042499528899057001654366792196173876030682978838781762104737707759105392862337845398102758752461883333513648221960134607849650181329208456913219648033609197860952630273905601617095621623025756902827329447976726062239843747040121442860750623832496348830008883966202307361294048303195629236437205279377896514596050946638965703284404746618332139711796289977711414399267006604648757540688559811146117623522748445999311669794265505521986088360253961423808531261889236353002821038457759517656655771665629724462061194123800233011230347011124592591111786812270742084066421816362794062567479503167169482173134275977048353203400879076317123122474587903633923528844363020319245675865921488209232895289008814913390213987787227381551405063181120525631693872366156861680766740108781999673539896699966778320105197045791179578366538403421616336482985587411263139005099588752940258185668083349582945932683969906569158862099797256460690257395467297374486333459312063377238114218012956662393001401864676571485673150680201018477776908711930882236680823169553785787149346369555783340258461816838181720676268202714578353922196277845215198337977077973130457429341641866665176822264337869302501629179262736986513591090045705732251546281486856203849669452420130525159358489146014480470560017541744237458234698940174158418728345359536775775583820399654924379584391174263170336033151808235370412016324290002643600668667223667699881737561760225222073155774796983788687364535011501649829989240217387233019269683271408969881766388769075631153916802788684107872205537763717854261221525091561589050212401255546407059562121170299900755581354505648013194417357464371145854941862651071557814124535196398904450046799184276697136119918121385880792920082152667140027811186130594773789807038815019345202415222173997738069485473087596715569722697251305138656655028422463845332682855575374495857276498815816868914903412576125653191373212449504339495670269015015613277543591785239860403288150229539589890790867617336219312681196987803428958132745050878237603701999993713261565816104683782111704673051862376456034379543909295741352738341503800699422640097680928554701540478726906948313968662948863809804003440964920008801787835528472007798855316825474178087299670590830158994877041332592628174496488721503620443400982865328398648039495492196588102868609508775051769262758799577866921786297705648890271792133664513412665093878098824791279936594770315801937172947646725173578810818915469806131462895360919337425713576525766804571949294026278983214258527111281876500308767880884474785230722504143203448729888809406282539514839201230532468580531440041202404474444549274043698543527113377102057567830650406107803654750104657139589189495782557109252051720206385381944280520440604383251157485671216264372518518306964352696858833604201394639701145234237151025229888734066614672721054838940763441564737660246052486950656785329187723853294185841006044022709437768484016547555651757085079644643457100307192561093817197471467712944994955771650808569611766013806934372561537268679005622231173797853365140279520994874830705043553803466001191073473199861820818538953982219401385020751896161936813492040501889840062424915234481928256438701786880994238896215013194866728354595721943956109763660544291356804529919317083511045069302441306672515963128639466792454304464717924104553845642576261985699095823375006040179309453231037541602315309748146202218485690938538925494110191567415747426212091575070639721262003826016936089514123550652886043374337073471689451703781626226492053951720041961138778910597017991002731020848834666316277989754981204965991978806449775221508570812452308346548153523833844818811540367937411874011373581279438328951256968655759452261190662387703148504967774477684993862274899052103358593246559397430836026409960132128347068127274700731020450956280055792198087145469978165005755143605037391365475892194035944794341011522512008909525262715213988808724288232300549747128147647585394720804397767164220466604364936319659902603067634442147033972206354655419472485570022434670624115540693301037256345000369463922141650321703865273748102874548779674637100904441531716458509141273811220440493378491745570816540781242721934510651696646070070234680158675717817312033390702620314398433065387788328758115904771028616564637154494803076269222369770131153714341915619340349179608381169238275416872643526545444944799088254289509374826426522905112248231276531521163975384867638597373775745433874715943096214479001547902186635902509550899733761553188003626472861871363962367445525173818678567716118119033664717597713572468336473840654284735198660647380478188768975991488747247734420671232727440689379572243333082641622151421693710806653557606864964718492765562894703316222289226639473608227201609816169312091814094898152965693821302124612722608504035696581008788806224800774640907973166899122647831860331269241110401457176114990816013129558738812961033146399513392167364027159286702086256308400288851246127661590102150164776129209161497958075887643305467113321110593252006421280379225911730011652184199492416536475451164058169755622912946356609157929463284768489861295601540814051531085144124830350017974806627554444476814974523400405507994505776175212804944548026553038784668768503037184938197929917415203607939358218911169333826531978335732633084852684356181353043381633391205680529218721175961612421233069505191096651676085560179202373290332345838636144064140287822917248609097273747116969781808572520410206365405220663937500861923739386020703164059383405461609544184508208484952768726634081795814895699695634206783173282907628577980846637150821383610572429941576232367383740788165585272265383708376449147598792674658952705836350972687007289861676902818802960418575650253118174964160584466542315818961073764667839329118457416014669793263912938256549402001062812282582701081058466663693655092057881274566568998300799101215662615582069564364060046474568450830232275433832162605948002212193722212948247489940309751876568456890230298888470058411923584995977483747127486226960094853388829976913538481613943887130049024511311551520141198615460215781548159358525732044734678642163514815607889381317643076560100376648519471304053448373998987910483772758372715191359616510936173756626703058289937713000662798642863305907871716711614867572340138696335398142932930610283528194716433401850142657034936925840631043902000098562342583306423937745141477935584872623983582064135461629183600863059802294896550138944138630822700204672500221065953253315455363884217603395509242361056634361670392199969876603823179283998411758132949991937049913281812699968077276649326241731437859443391509780157145797005761856068267006510089379249960435508154515835878394622940219990261467852435734923650830462377253226258191998336693187899235656565530347455763862493964539753761297925303414128147324054308514377889279834644195922350096910041742107956743282288804024846898827753005017535244832971717873362865114690395438490507535112405462494804281081788602345550949443417634422118373370745456686466438969117075395002143296106010997715327665600983014064013216355377742845237186207905177445052293889272072700441487070891172495154540604768983906897044569924123897207472747129934885296592176203931579282395861722455463090340083433021952671914109784993449819338224730091190308127952804618616956695686568098010614972885225432718818537111298327936430771874668506938801586679198843872577004541528589187704912664883809848813676775145805426517443384359378968701520462674907604279695958663775899307576774017929792647793421198619939691843253521414745492377118121947868507693194533544311704895643651248815404497418220689476311751376315129048088886928616378745878234838768630145459682591532048209125168011947226211182073061418273755581910356510113643203419008784587223224035356708642023211065343373676663708111175296736018514620439113503629701109253116418999358129409471434987615706762600959728721887188669969835943680263729765996985046131005169223866098900476308793979003958912388887365736752792290467509895297050652314833680521741407496601552232200119590039574598218950884401977371084989710687367182812961486480901507711925432420403462600429721390751456508981932319384282722533655676378945077117733532952650478419841331032897317784482430509122309784979155730280956236145952965121418623181266773778474497220633026267255329308594998964653665705471987336651228948547697308957194416478575768418797431394155488929119474456045264316728845486773121890659667305028678744888166727023995858307163518518630964198969951267420835054411444543659590875776421802134004251456194419852995207023662740746175364880745328365259829931278190826292259323000206086272748246199171212915911894754089321961844681643332323298803133972841316487718457872190840321437896052744303413395816243003590421669928400536458341246762299600941122906134722877992792127610513677442103526168730619201116231605191375300330741071783396432435992073581953998765047086596711039891687136572338329342069576868155290748341798191800552101808589420999452866595226512130135408747328249158385483819191990429308831670874209530298986320257729942751206671913756203253776018232924649643484970437242694214567515783531781007339978671137813691011989223156822654267321076058964797695044595085306670192067702929862238944213737933289862675197055568564873412304600763407883662668136067230605138771263442984605056083555597785158441379814235286611958350291424107882889354604982695384116432305292223524077273449387222539254840147590882621680060292825104427790399710776394277890305095508328410025112600165398334191440835352660091576640081201064264116198548569976898835511713274144481886183591357838041485510807618807006673060499213189339982386583018207542567396766907621432397877440974451733647781580082027220138926003140397055436929862432437460440320041930647499861612112229491211527090174190440033025279143792867892094944660007708577965671198861914395892152143416270303935040337067272986005993931157795112569641645906305384150079806113435287805838005877037552796369575913790957273633487213803819988429146109836665880079529025577017255545898851714281697511112489658727265019070233705126106020904658975347392206341748169837218909700806895461077281808069775272349450374593196425809930369585418875463990458961100591810152607748221682298132876976811168066476696750825760770643298391338634357088402194730378191481463892126509975264395260604484227171297548729766720950441562982378347160004503418433634000030838432188716770218458474987634750884294730044982282736082194891416886890243519271595295758238507513574287774810519774158282914765798170331563288284352875418674929939443778126196872382282918679071728782265497336266189442619698884240247030747573372525187577349219431721528877471033871109236138949933618702493323238623909038794519708652004468105770698403446044169322208125883212814518420142657963445780839062883695917195466056085625484484336995143947802453910141246208533576803205014118227117251291204063953430259999943687763042831262376894745889239908077092889792559076124534564320530526153690735069302195670754328198126110825671332216237166454518288198036471190910482588184756328907679103962578379638739091476212673688699229621888511405311331597524022941211054817953638288135713055304206671263009036532167347826784891443786147109424298051149671436008472079101414012318548530718848585213019810391978388554226467598294085746472679838422548009182068763464596238265244366255523564682598044315000047227120343436184388356456659157879008312738528286476688277313275151481254823801705096419193331289615293260494095163422303645620292375812883441317418342035087523022341952827901998319561311488705687703177283795625485623964390247205091350816532612019729998355193630292928718107056888560964222145095304609546191612251434375676914977456241336291464184768897267567801372357155574424920659582442540598969373567686316196797813968567933879689738143137471670801496556682827089653964318290022412587473011401911644342707889511821850316062372030792886778283684266646104402194577059768360787014228797537447714540737199641633318389354018948669132968358166949179619245706972569742246270633253505229244814874654461494251129905019753287762189968275369955028037867321521900132728944521345066797687835001635924266259903630543530172840749052009610090043533452704330809245910669337400045176410827005020175832666608990174965828780357826153371838329638783233374099325351784493720324147166072569145893768155001635840345535565928661903351832548862952875017403971450331681439984639904772379373551373492049912679669413454332179409308192536109170858548473735805814879194300112655263171340815509763906518632654915242503070228743722682505374441190500544260726035254760345928652309995503740293144789786735131541951294892821619754618889406242562793914897541270078967508559748566873816422853285700248311791975977963663662147964815880373428154944349549767384968533521890107566086994088383874395795425030632683661046206031153833330053998951943212107800257223914850580783442174796756280541755491370345020457219115565795894589840788833244495403946244794169449301866792058058463743726287754655968512697043326180291454570083004654592229909413061632404354749805062439088069305028108600243273361360306994411527739877204821178954568003965677460453293759833683525440758627188096884205020008541938966061707204565792138549617005690592585812761747798707143816841044806264208047336146479571745973818383212816888430858129021279688712750055160693694940546710486266924954229557345938313068305320882733411779329993079023777313381978152331855606915079695116898579457372108847617802549804712000402873654764474629606072467947647343580073627008357780256076197548780761529265032839605467846698038705586088230673630173492413654750449158544569803465051999499530076437961507199075242772120088871777991337719479555417894960374939863521874731584567581367177064060839079356546282474094113214221577025153672527905824503015590973266815447807932403745573559198769599045877596098599204788240824590254172332564842459340553513625834857881126273540432836985833276737460912061091946640021992553307224116271727285415497223005309138056803986207913904888224572295071012843048897297231996531091917763110526539258269135156536251585678005385916041410309680434250880639230321806702142026760571301536363472175872597505303835961537676715428971965324085931402974725866921309694219139220045422148273682341965896563500997957552919637254146371150841153960906991891585846331323634141219707000314783753977611517190424218741560767521859530595057819556302535916694952946976605256089153804630702975774374687896980982346222386637558495118856930930090882535022492215194165879472898839005733367172686582762699643091437616496903955532104155692937285188811457935511764526082900609564469858626843454549673683149892261075654667274105770188108578180622344796664002432125394265645075124110751714201262769760004721155640785991238341546724354843986425288464862270264020547002309596878933715274145814216852461766687025460066302626736549734734651987104972411666844665832679323315270016107030383758758921781705709791749967864194426332701030495083973991067959237538539148380180644711899760057388562929106004788762895881872070407795581956504377184819542364353189897020903476002934129323714135083594103293355118632512955245893777300565130561621671753153371259298152078400541881706495121591551811834851892019315957526820223363246918605013925352569063246754532272386204671195352169490965879955798752454849107160079717289022218792540754702499208348502741405056933395566935528609470397186472679242823797294548128818087570054903394698032498503827323691365506435789870867627016387677297631491802670251288920531054109152916552284508750691891638366698177955660280102930449654598447380978918831025840858326007453450491616813667508693724717428576455123425393023013198236960102283002136915885442475631030537666058643417184808033586111725593284680439360172653833449833153250514740898949830848008866050150592531970155065703287224426517102014197272585402926045486713633509952891006750572482598597533743763608799137988433736220254984992411068326501547978506074626473946383201227988869141344226168332316799904176816351828530201513398038834438454255469940755478596041173865488007283412839466396528399831650806743424402210644252744508286259550816446471262371640131589796256019616948994371925992956520431120691550745724341345677273378371572812346011181644257895975611774783601066302066081025744490967469306759498578515327320116607311949710359398434085048910496150827543478689742554150110175573417736120427046233584815244990101700571714446194233001383350069590821049212431349812164426248164561225115186658630934521566230316388823270620969358700591982995009825196330557526323506866777639888434012574384375162191518714633236822706735583955530103845120105659740481191871050854365380516255325030099885844436218671592525802047959796124666241356560607827927049637048610493637515719507516851021695868113135945298785721226831933537757460769777002707876383498643874509082193647127774707297981025528555836942425785446569583771032980278426415489831893451585596736397277276629009431341929121848150950867623859522389338533889177715852328591397001601749333074045109304272610694545989956672503887482241612071374149386873518549951430444375482471770083376553463113320017792138549046360232047530968198939305491841235142574824943646674305855695171605031488320025431759019178082074682719848455088881616346549711568324939575626989647591074398861664732513462963889072434571545455188427760869911554377598816003261514955950491561730162580279863355482403273012088677240385849473117278517116030240303690611296705407037244125957255444407476373352422664608393050067463759405556339008117232141691752689302127907733143708179349951030286413429732594671260126290307674435372244144583355440558708352926322334446753551701048504915032322693563402314600151503320502439061738577731846128307736807804614790801031950444293446552965270165391926215898837252291108175384285724761470165748627369105960368295670411136016259828500605626422967600224420657086475286617724726203040326142548801553829112988129575771629160480084734164421841877267214239786596231116784246573830935604675446777923091322060549219346599470215522474706008900538524637685962205155409968013613974234835227786199978550783854121576883710268106251473935892964518023477842459850199974906226136731684152818978802830648391535621783646568374512416181127026476078856164106145235655397320119841257101078916802340469658861771129453319789158190983938586976877330108453868205969649805744415855624735469470243078141870832468145769534331244927046860961454181417204729174171699547083966971704272453774313781750369470415428984851033701407977868535469984162221043113153548801123311017124052461071386583356605844586802758684061828033355202505983740255913703240190729237257099423362889168074658870134523435445268088401971828619638701585344248997262890531239567905708441666343564298783652139670575735994502442275750785007706387474662456953784656716663385312380791934684880633868515267864152788446014247777865749563928389640523110128804839841579559200288125654165328361185280506262627802150409753421815402316321280059172623004380787716787452205007813999121274053350672477334387448441626952603690801017095473365196268535373016843110145902336784560717822086687653774532804998614354326264104707814449044034703591308522342985932559940027119415549964452571629558099720354988290910890255957448063207492070227846264524317448415860924334418534243484428566454066466177164438464276021527015095027850993541733281636238926259544687306178448966186174820435794025487437006218139756994106155233151409468256529117942696829494392785960092379651249079583159921998646252270270689854749565954061145369749450729651216039279202168758792125356136506964824802971794412389958639889489964051036260019910311233617354668806826470113084365494455076147620649733719094581196911883934265346843531181242232064825771375588428202228971196703554050375994039732079401474266586536435921246284392534540894903078586040847385926412514239667575679006380584946426733707860071706639885901622715817723669022807564914154541217514023431633108129028600758786345058957062438388621960119745799477183717676600519545689161156796916231305091815619665869546780818224686123122441550990756900157379609693200091810173138106924128507628906109527538879784278584211575873624405115442803852503041863735073757135684013927749974798525001732849179774142108756171589226707748896433821753515674641192970557912033513279916347242919257468824081173136590601921430542291156380957729669596456136397940701680615316769132284501814464797666117007733569439945645546858817846400148234059952482366872915245098459254174029308943792586019428264642498329292750094911259776656845615279523947338944962236055433814899533859706335243864743885870847932968360319765028779366802407388061748608924901101260328123600045267645641900756412783589718545622234951738796714909503124535547575608639335677059842115166228959958414442382551013442296821070448625478770850359791124198278127987048104850818375086420593261832999031847843668304407324845765252662072703276684136642529504654466869489193516100522855105405877927926072242525919614784048326854761488112983116532388687387236579197969966069569663899742289696634810067946905999146883775669889237685809741766622660226404876802499202900017160232234450036319048113642468295493671090069536802165835358498468995678214527225914953454289588643226880069340824120935561789757562529149558366957823321410681303309981645771271748634626012012708226926634099739263727430053335787262931331509927957686862522840928994386256250195333371514746494147221762999466156191280102884107547951469185931968962412429253460084290739859762059663242624214274551664908798316783110281293972359073192586454282722898939777086348122585152930570599909312897719722852411601497006367287882879729859811390192281583418031792518852485189466079879011998761486705277422462948725458213000056035643454573653488197551419358390946619332796636791753528856561183293531604772255232775691463936605932518479158779946172085708918101308151762384732723622833347715530710193616722541988586960144938716852217395103379165094045548754327924519328567738334199885288276753000620401013425392797401201910991483024138760633907524771557026505953919370191832170673970983927058672922216489721199425491997427946653864397624216289866038039199028971355101599599352056197397357062153350865748829252242653362018694426319341991241944993346029329427416012656404467819894850501116914276503784205174501476009967781082052546563988433396081559580459302691914952341589835385499776271741162643555693081661220673923125062547884804821847027234746950221555771762775117467353244704560763846640191202742304353295338684489211288007661800296237796097077039405767594338876780279261047478234209436037139328287940547171274684826370027468157452018347673628197995928327714153152572758107603657110453347326093845867300690387757866119829724281666224908519075291240849184045293047517333850790443465359633263520082471641390796424698880178166736698916388253652793256014232539676174960570637123178784011245281549493449337176629818526857180655961037232732186545151924141657538319885612815813161737693477953503352525532122364258421593201523310712878838708585280934006046838743742848696357854012217837062421388560738980012730020801505359246862374249966341898115123500830784732845819397690105849572916574005589101841857705466222685467170277342911820922659511324346586425909254322548421225175020254901713892260785460255227270396086195272782078460831679523490436636356594464037997523648755348221357979494155105912403905403664508113559207299863002285461172300956934329386754086275354696200592733086185563068849716540506072890005720647303643284115834617919886605559423457480426248031985992618269527299060119070877717962568248869736313270287694345555374437680359567169579237700932068874166189888558285755519397395864662044680522818982408472540686365804319161814250360669792704433866362452628767537313081735885502527398351241641959638076750473345082915670736087450908483506214501914349359906378303881489236146967799328458734999578073903949634894008156527664672200519928946435957021675398835775529348834040153102213102836384829291145204192232073075899525651440061001294056268734677389391927073918061452304328190534201024173719935785942058842806136686082991155310648996150805922860377908288801911873665756518858134884996289792167586613525566127397194496036509122627063194717197546240217419921329335400500474344998296802701915025430773695938721525299129677704974182619178376233532189105345884908515302363933086666013096797595202756534807447940727059789623406059926225851293516085156111038550200225685567308608291678993163559692682250561139598370814740318118374929464229954287314029175790490105825976054490767172102331782761861218325811857248482120051727290786603664970406474605441318323807849846157181470984326229425934934667456214092559094003643070806388730845384782140576839658419839424421194564056662084312033673848343852688491746957247974217508906021842782460526582252871226510297984951970669160446935792835377089712637775924521958407614929402742845598169808337982878986673471726078824288906252755020443005785536574944043748420275670519297853919459680427469342094616882977975410059690082165601582024705819349675335794973364773712035725208450880956584385664223698841527689997053011310841609643180525627987939729827173309961978355165394092865084005963880554815611992256756758910880179835203715655498995130694934650052033859328050119647944082031361437110031345932874388822227892196749400817452188917031132787260843239017786595812848979264133359340332237191981210880140671444061042183978480640453707652050678102936590554753603734965465380369968943633224966141522008836665780199604180360450707077847485388655265340894998973400074512902245126648902258247523866259465175092769262362761362049214460845790218206697287672908096268514132727631263938375968780303928432185952100950153056366524528063063381075747870424848218598974140978057703736412237198953751300930468995693438145024385832557840964082067427259622160609132202441286812970165366115020983792801064515172551731370559329479671412072775342116067982437341071343587522113454393449362438258689372773265088150379081565753567507717184946085173066224347624530506620929084699280839359320185967297110447349576302033651199582523601999770854309395754682832591087739684358287868002578233166784415560158051552339011474697534479941070829287903180733453000896871732122527916375199875275027799336810005188077915183396593227023695402094537868187132042151806984009727150119050331390066621358928603246502525352549922424588514413997703312778980363548324642250453370082845300487343984306164359362681928224631299435419758606359646548294347631789786911922699578169004880038281863213243214021100073064382927727181037073862253407287780571633105444775409348512744217256101776447115090129284538110065300215056934331022233961616442511409095896307393856785030044413563798132476320199502113663469630420243998196262410448669761347208218048788690267084502931393850006803949901161223185025476259835018955351417167845643587510580601374108520527002593452525605644356177380711809395234022019033217758277623217032422613051144368205962205598273440681588213888451941342172194961976031584570651175419275502998803368112362802769206361146936721007687136067411330966062541849258734036395643122377312579701513593517329331079082599453493749199362649864362024383459889693908818497777380430362869524420619403184106272305393428390465124233798406908855774743056417812035913613850425782062292603743104175479666660223733445135496488478186295069360157913735196730546276930757945522204014477467385210018165676194640697057717836886274344219005496849111982371671653775274755710791539866154919277621969655884451117201798788918615291811115984027171056492548287766235789216907945677105972476962906929133412473903089558612195144202769134055418582705668456924454036382354221553470812993996380301579891379403426099550206578589404055956812599874674273851570050078973073976399552305902676849024395275796166510610456366921690778123884335657307808027164988116744773593554254518455676791406483382968660103424827852455498684386068722665529363845872692493494615731241153542538154590385547058851978005026839377940357879380032590939556599543988463567351521129712992952547408079899966189782786166891819187588497702314555830167860695544989853946177111847912112512374530408030251356677672639159392974529953989921100483153293688103028887851712682960281916190001665987685826116225769268357833940104228191834009288316556874880102314089482065279225978525040231911212971214134740877688312411010671689030794424956403283717815370299957338694098365941543219389777294108603330672505817890711858112984347185566259045400927989578714180212274866031000081176544274689085812732247030486075145377418771224190014799744987161050847270361413444713155571240515749106529253930385561162820425285255409471613526341598810019261854945783227883538488082157596245565031197774801305879850476107276139924769127285068478506056368279012455113904653241525912501432027597300953192800880462165660086451476445528846534402156551200937093454948708501965967872496142020052516835562250238242193631815959956513456565938471509076300708279174497903422200745068058127729104707669378399233683334457484756009854792063562006483624779206903809294129507527429851702356243419664211060954564157253694626420814237275700657524056094496774798737199003325518960916298642017689636378852950695962816957471811178178255290757106295657073047975757382797254574917999449319509935518161877387146494754941604664810044393635156109266540207758776608308926358476304297161711758012400261437175567804461182390611506979352637471907261166480977503209602511195317728886956012997856186050227812209309821547917631913633688415413390991755478685392381957862050967447282335362620682685168133678573818769580180624838795347518169677145240198207761901904176555114099517749163053217344947003128423832032467104273188183167799815916138253334769400835619682155947471950128683627522383919552586126472073261497662241265308561194640824742402931077597194792170897451386141627155594632873668180955080819704891289681536680906599083310721666822932486491016220229309525582649400378538700000111811284929773099487381902394921429331455489900852363327488439493779959933850590734035666059194907370884336223287861553181371131396963295073350123175081742226695307126326171022283923638755838472244508214090717553933134176471795484178818743531471940143032775323709093874243732405630882540818297869339782746981059910800099071029396394194808721704636967578614750527651182553737764266224050885984239645476976254031920376136193680403018741402454763971489652653459381240439728020962785730052162323034260569190254845354809743468647974780037553165984429307864027853443461477051265550831214663038938867950261248150448387193022730610762132377811048559236747840206950018711942250194946114221832556903021270837836464787213258995428041081753975677647547015268902001545490842038940128946945540862845452023385473019584908872541617486901455507476610399498293308155940262682234186357447695130585231004870798094121481909926592244039940098419769081157168025096084917322607922354218229484715154558178186439815276434841082598486182284501917622612171722846897325298606255316012268119102046204239751063254241825245648276654241671094907816872101890597426329191427171189227420472894250556322581952856620629457777099845614592269208566138824772854979252213918973501749012275880808031709705001782958845901935623452972595430543792999699787961629749571789124881695375180814014155703714812574471209121593178019091066309592473218637792343033810166096974938471429832104524491907600948047009604937722040914219483104994671455879030705836842449534113551154771040052146596420829502794658521248412444239321320435441127701040096192590707694299842269646470894210448134972232971552211547177768920183729644226934801252722275276772959192594513064923458570668655059015617514900406634989878905968847808875950671945214116806590424069072538065903562695784330008866734080721808725084407047598866770167976352464443823581725098344747754915104071975210461247132377746588162972856983912777873366994993576211037224836814746622770944932218101428180215757914754090483479943626847322803698637624640546518909978967319211684249907473036663042946069699321208871569870743104262490349231147297592683330313592288942204991996942695338475744494967834787463934660482986842144700895387180008199689490466928243383317679147283219253182663566111123340860363454799400632683269208396827697549722686631220766572669766498228321488118923084742863589597900460692522261712260864919329501083666309930757861350038161380599672113978990818947739262881410503463131918246568956262494102245613068161801029147406622377852655922142167972439047447552405124592679665735550402105256402073722914659855372769477262578635190026397134796451161553725084371974999468737643681689892853376015687974364971783000441740730976743612564320835743669913861046993471348045196083263604535488538438693680229909784719165791759618705745292216859129400694800125169541417430069610641802702380558826509309391102898825793682290809959995205214987883210151109359257952460842888719613392355337147897618676210134973002984198538958492620522667633001259117958288162495794660222271791796718121414171498570510426075365232227679946503321786215671864451231969919061014077537738326337834952730752247660866870306832110237089918513902976150609572196092885758024014927152386117852970802537212762375076153280756998492815742751181603813525867953467324534508690643393402238568905270936766095526335197645500681725585383334746447552459814383261173480438213733877641710170664889169085438417271023005251577402081470743687263088106383336090773009339917594300250280393761666265352586102057086969637589328412744272815123693529750158085525306991838971786883650665315407086525677711592031060990518584227351274745697300989335693430802131389741316387724851748114977822752389642514084327279393106927443749100739186536620856878873948871816214418992155583969765645183978301663416907162665011500291070531670869878683108913541717430106390919511702214720052144198251724099126550228897469893802700519777672750682057030271529419845704655886787556367678815557064144252980633140373362230229423497739412676377776955668950526003589415175257890601241691777746899953843635803368887561243749092748093870590509428287176313045729177998821588710759059815128359054166489071623973581799918414253456008008312440338113029337595182880316124211419888097720828542485132579785555524566292911794456016991574790478079804596638543361463577140413644822667017850272918996757205016366608756756623550853265923149376931645429195053536527522370941630126965771720963458959879807645525879483357568717621314104953360518605667059492680026332488940045547711780445463698810298706341807233207157966132194242422721254646081060687501825288911512501999152312428723745513121421556388753731715671739171664807023437989781440761713461704847670722534133117215386167323440865724596304900960381164072688044277102258333933101695588232251847649728969528897442985922317041660293408105499049506243774155640008814425944085117393522165185269953307351967189236647481110521535850991104406153863905507454487735819696887400649719742615649691582403549365458554048010733862305116491732793488892673958104215828196402112213925122997137517112591469891782656974419432245856711505824788803622403249414817837807616580514772390502470161401560719558861640949392986262576969323785295286135151430294389611904498258671996014509347261248689158166670662726582433734398549236433147228256480971936299849973239968178595173599485639006926188107795587317929138235553776883917472956735146707745023751420417719485999976254686593438569609653468090485083590167850562514823423197831988098958903484521590132664855756571652955681245629086996211114932385236817839814074984563893204866163451423186870010265666423151599458100640354850912978235673478287988376503337593041375911669097530060130749458370285317827313178990599196319734998071385778834539478856015324509690844295543524882893342789594828046979879073815190585658536962212852835806567783354455533702024229018783415534914936114223874073585546540274028879669193208605452825756478123462898363207767414398176673143806382314311016299424786769929738451474768319641465334675711037110221706351616966426534125907569363666284286536841272616219748677421057034821029824463308134224919229289727858917681863798387675959777137780918056089060659684405921054776231837000744366059087890326219752224483732146323125020212279227030102624182876934486432978607221370118039685025053225087472592325916180173009035174541692979810654363898432621217235223617940561381783619501327436505220002488849562538674821320761750881742683056883880618176789456686224811762611453671161272697336775883299997270954331081932244261447252163102796140358738713871265927438766534062208039685116841629843295244687583179126700453111200867336413368917676869026575994527958298458366307148722906598469448276235104490343879880817773617668278890618627080669189965447482313371473006972324520704382928873690362484453611091322238921188530752910269008709031149157179796718339603205210358672414835333591772100696335074937069231156975228314513732333931904634383310292929622160776169390186487555813521950419544990369693289952210317955131223848916903938236608087439630055076176386627806266763729921931421704114363002324241594581937177290380523693337657310945184413078423531364925000519614470189554382471375546670722985795869837725724123178963993864951393997175591310328414513456998407420008848871236622446660787150044408253377328962074829050913480196780536662320808382626656509094225197074219661603535358416553033800427243521253032883372398273294318716147813233888524531844063139792064533492810439224043780399718368162671725215706046204190443238444122608023667977760017506495803873590263752258334582118901549768052024965752477720875889244584186077192905740815566422348642248559915471702606260707544155166239372861805738968615474560455640602929780777777693542773653695462611182068189132456845511140284209361193243633814153471513740692041925660103471939015508777137580204280908692870183624619396604794014694976118525862303472283715992135046255454641639481332625422856429221696339283541261252211906730059824066945287314054933433439200733528528305551660520779241418090019457786457048377503148429168294071453041612466686274753696434326678194406688456412701611893003835003096923481765042320835941670323173304450638079872149988219510756422528861180196144161362802488686077944806286663767012297359359996230324439312593826958427173824023652220721587262091899009064992315537650033330559977556807951735904502547190476338552329000327012920367102375790990708201857529789120093512932731929506485300687580832371131767831730666878090740043818646573947139808833835162670413263302055713521974063058369841337497256936634073191270418219230966981502895351492874321565150296559450874309835533925893471218893800600518746764924296541020168215735086483149281272175089261756016234339039211488365863390521590596623863714949979449585305733571447874773790563624179963603200663535745020126869034257073807266384593184398527726806272673658956920319545022802216704821091433050889808630155371656469736739112009206019781049021895369178266728442037244142046195547528124934709438644773099331252256535263392473885727031389358564948504035510413961819176165557483591256246026016580506636448678135835921852518924842549418157899426686448068422389828563666516299646918704192756741753397474988839735438944160171531629937705944590756460023554435945352928578063133275036378500477554506827116320109937804848779667435650970931078566117631178594482357111069575739113118200147373488355758071625350380393466888496924233517310552641915227870380679546432966713019033023214084769269941138473824703396996840915006241995304910258176438392238107738158965097749614884310408636445268065310426370751788890940781725291600825008328476519793340061412559137583624261346211383369659015119691325134322771212587970046590046917568658361413111863334162702783638485036211103859038316132944909485849875664687741155309069385649451851957192431996671836220560018919410113734198991545473587235066360181643176977125305425987411504641315261018562773176470618610648305224880628240369651016668348617619840472547194778060289389538478930116383588577042691289481200748651587588744197259413402289794619645904206793455394078749475468633582507321899372272721343583753602156550446059471098730708972296185553122162619469276825651682204546615326076831223334255796844021519569121445053974757642914437418836581046107391733424079431684792036261990780299747391090904950119004828696952316706775738736926635421373949536457570036208812118972908587024717015318339160686640744279218046795103573049540538481151084863868614649672068879754697302030412931891941748052954116162241758196779783797730430109052290536763746975313402657097299848761984177545420956569225248754749472542872104254166422853106831818495074926491222815663003072482173975068953645911602848495553875136925363694824513168238452660148982721555711031848229031254744147215040194795855713278704646112810283736130073451705144926387697084773620989614418679835935776787930703423249034763188052776940425969975230126646464974319538981460755727906622149843370482985842558579308067665851407192772515684565375319720894631522494767348682327264989419392943256015980077930010820563203947630524956128660138744246882016608420067041374825427744011438583076559156376048905033879491391076432564290236067078347603029787540885214844401740881971517223222769836659823603186399469844916436030650400648891474752151067639929318620214279895590858537485840911906675597913286663834654928978946941786307490496303698735288805625707339982248784875820295662337169298462308373940052640485428247183236543071925746611299021817904951417805001414228031071159530330341632068351956239904487040287177070571647862341295180342930097383953329547432933156313075398976320694879072244918734840165733183978655972163247166110821770518470967018780882133977657762841883057030294610782047670284793988543523080395547266535803302620726278501410753628813104619779835053379612946393480058713488048007681700788648137795572320358052793499965766951218394393570320947764914350620777516732715813920967598345689957510246319211856582279171466905862758968635212158632452046424268876684257340656088693284622086961026239039127526941453077390298434087139179225659875959870633840282900883049539073067423216447433469600222003645881751712662504825092592309941249951242356727817507446776408407758281289456130079079314342000181104071184866987502062831519593698303480070441094019593951650941690078131403179814238353196796368942520209110499206240410550469756995671687248469062386481985253212532121857905912764679173540089076211293712604481280516673974453775690978917285203738473249130920187694352884300697511358192492851052925878946929572462919295166097024620655557340363055687056101799449850802824615574058921341367873100521420513696746222154957592608900532878873747783343310292137999647568503308372232364890406564016063337352820372549902208129235543792289440800321208736323682207594441773731098653532202212450662024405408938660120259732202180025000322281453106942895084757719822502746928616928960586721158415856452517217596719253747158151339243359061574449145106714036424048690922436373536844350909255130470207086379364639477066305558567022359385728701243479485704250837432489881879152909566962923480389618630557102238452485147721902238921928050149641119195364237899624885961992429755432040367046038597898093972823315696557679275586101763328807857305002552337398211757433984683005935776747215309478198200465849365094311736634071695836437042524563656586507342497981319859789040465879123635234642075231113648533306593094064764500176001597384686068615949002894835341569196717839203596904235573672813631952738830161248149183692395600058686769331008724612306915039694812191824217803032169499196363056215645000743545203197869775537005976858553892105960589663340668473692531787873442702964759271888882660039120182509170125187475469510395651781618838748382316504340805876357412542428825581543421482140585067901260760352583428598743409933571047143384503735067587992998452531001620724901717050318714901765266914743145014365759026325325337215652385615739084846375676594150791444517459166711654332788668009612413768256591517894765258169112747905508696826718599834617291903492581976419613290138640364071868514040661519757771628547178939733141470252570887575838810366955687824429788322526907727628305401221823238814999667825159661100621885315734669029989136085604964621880128697223538542736598767813675352366665755718706619013036905238043251893861243249244727626679070421028220567949807810738509482426242061722551738637349626849856089850239924534496797323860229811376993105513664030618422895031347356456514964688336359480121985319787713981572899385479326030765992597887161873106667458765979679817061609484609348393197493494537986812316183853873025846618486886986822986263275308917916254238821007096010549881854603009101056226567610891742075576398728637421623316075758520038122389779316310391629145727188091717132556708800548784207368251815035699255014300760979974069145993793611372503052207915949326677392231586860962702560973403543540417388715952017972387107429455682135581244292843647524868235175946775512707067693109413511690195071299907013455429648568632693534249478421089645405423120687852628730464122253287905076836779269690218766080088715454387241904425287778758819921307082959079635181662566044595675837445090306809776700716951219533127490590702980855333156502586432756975647882091621103317727408040595804245891224150348159129507126580934187728020692846550076704422720779237917419239142747880062935666766461729794296752967131153191866097649042714768024643024544011184730279541508916504524072699638548901583756566501688605399822134756511856373961075259047146502642448933700401166447038061724509241472285255763033907896134735408179938192748652577855703700992587890337508894849109882138324438325092727110304166860259513778998953211507291480793400518543980584989034528199632476198941460473084418680827019636637228388258067183375204099646668899621314144386903443840136199085980738251575454125053491083692221218636776771145385358566027906782946287017309411156843995799091172206828002343168508542697587775474580755858329577367502974428555481405261052807755799923900347013199629204450851930228622051128032862936803635671326655302468956783162610185156047902486196748742853374570109323375175958949741992882175361810139247833491804230729558513147564003951506931008723258596638278655689851270259086605001582357379608281109075686023526698996106576632416644746405202668252729596081474717746791690617178860876696663942550128007973850290304526018654152625118786076988837980979665120490086587083567881997580038057579160520910621145869265790059117188256242936381707355752212016696520989103435706857999544926948165618663195217993188851693856263636507609826986134771417065122416441171521204335358462862523886753603816960194683868739246717274762730206715939252542724615716219293146686974481788409585466139349261322703658724364909496362543901949886013819813425293266146482780387475354137787756176990842038296504511230495195927044462644824082725017875923473368535260010907052109976480563959916154475826363511190932626943264287758097802314364801779604331957615812987900956270824099456912590935815291120488808731951246327749657506865504289790847135334327558257620464189398053560093795576524468591828204998774228796472782473447300368237874037101356875990012245588650339734909654340411659197442143322000015199533472091675058965847452113800957026514422052787324172723916096467082339299050397685873063223411284515411183277022659049459503403677506124273180168941641418745289241148077612644416557977783604731893048653652000229005651675402408643670305063462538665889768655206202149266780676435329865966262377295904968217725477759666045748150998612668963265526048529407791423410511608938219365094252462557438016049772376085170589000512542232365736794286436798982928762885429889197955288789512033839993422657015341413361780659547088531150284282551130829120863419009022598289401552598898321100774078954622382042748164893917649349998978160965400044166154339557154776597267410988279434258461586305080758433858648667585463690352491347323345166491725051520961150485214468529207397847522678389457158183382049949395060607275613519431581563223884880214945420975815871812744789000149203677871168369235520653349958596561887020901965262668604794898794652287452981400891317877314571795159752060218905787865622777261063777786575349231424480436700242094507145538757562330256879571146523913429992219794167407960331904228162516383116623055409936644561889668740906884219880114041284654158130951089139646191310498204330715720612666126336855982286354195268476644115272841227245208667213929239089914106431050307164764024341369577272514580000130895251168103919979874242935194176338680725451418048713264648503052154015125341215404286354368758485081393543341254081705683671566036453718322688185103606048829567046753313489069525330199016055407289285943602842667865392829518458358602567661203093438350912789987253014383547136806398847874992134111272379074361003165994638232217496260103843882123799552532769001125691173824417110144891250930629153841898517082495062499526597006096971999372742569450936209066246734589212766913665499679983301086441131181384192431311652945272680941156823597006843994981128599916292063798909022518737576576609496147653067568610379528472095311845028163925138332942094702781202140737734224473105510700598425355067944733729610701611578301327216674190171973403835187800906909004851576993437395671998059112617069074315530476107683035737778714744342772288132755355592800238534744429178519520040160810980439684143220949865014901197714684762436568770685885211968120532268023143972071051885638175568822017313760909752776749534442368623230529580894796924412234698168940777409236791843774604296187969255694535462737007871668891178298313934203764733916069682665174610615918669254339654291452852582999679502627983335395970425017484233475577585346321819633710765996761229580066677715157778157819666429648301840575068249212953579645816214629063499140737771624980191370033608432467597409547420987503210872881302308655540814586536581040232856110224037458903564502186518863337513625934113220421432112750242401728558698782034898248466593242938532798563020252689390084114003847500465839763282203023902245657664115639953497032227785220870873037553368656819100690945020900132926067316173977291151569688580778577721455394700750466397582597335672960970707605980753269234709199655967719615584282502205549673034283656631210943990766093081979234525124863163768010721370179738628868946511015348141517714741148965970676336406367627880691716538317703540171210210592974464757447161776576299063158371213510576319934168707189390873195288763307413405290440452868435106067946473160900173956966895497469708287631304698957887773082066937215530816135638791008400534458659128089345573361059463404979778164565541189986353485136833710945922352014353302158466239362352712059109013284587511882959589906826392895481497206375423617687037498095925903101308038789374211497671490253023710258562350639573117863754102602918287496634039595885336274449031933559519840310893949249189637903971766976193834715713884072257891004233905446210344200467725476265338554907051388857298572115058870961142249658391948066862616224787673355287270689655386795349283483758903193715378401737351691603107879676450426628355296267275750417794988091236735419652726504627040202022938535637474779027151929825327755272428249142406930124636593066013148909243561240937177054437029132316194324348513657032345570085089233399301482288003064036369395236033889038602853685095302508089948563991074212460031416768445605214468358805028632109092713430813530994149242644878934699386357074092047789907099805345516470705957697006816296877659446137128408263757598664963311146873294739762403800256533764884863968801364852619831552717924922930908641436907087136152113294399275269802334799865207839736061805334549208824994433222344563646837700079553487739748439484248706976913645987638198414775700039302956693576972796788345180091318382076294782085889288223497128805337776075561880503054461612659316433581499203278339149787139446213167381011940589432894054189668574836871796889068161304365107364514908758867519031646260789401243029921430423552997855250162696189008894346672318333688733020013327133865912069922362073856577892892756903232864927417057367138740122834670368526270894568190516007708534075984880057442701409363782571454487025392493326373000213684674460802644007442834951525741014224762802415569880805735977084849885791141108568289174361100783289199610804178280156026106305956476097648927459002713290659477752532255825986269812838880199447009219059610152606877834263718469118539586810182874946329808996067707920844442605817283804151173688732854390321476359299115559658039360050015208429807166458858127119233588850885078272996656641413060345656425245720625047072102199760564603768783917571274878258140172257414346455970379434942555222655070568663649117676673116364510771776367452370090409074452467582842111462279421688159143446163623049070409761060387870873223079685040047762916951115464704822957308812585143857204515901214017868240990475841916591137938233251859910138106536709051525142293745207892174329519465030800185172592374702778356100792668943431733231541889491921381543746616999964232814709493569719351292836547550174918509649151285926161221687978806387085707254363299139821206200194367365861529844213105209009056937718743169164522183214083366828224036396318010699420181393913873680641458414274123913845767771337780150438585722129956288968017492219849824623148159934875912215469708761038735644418060493046687602673274964721655242668274926216552998994550534860637389276956998237136537048115116071822034010513096768125132320689346646569689233907043845614602591078262863071541006484644737819906525666365650737752530124837623590185539996945351173952254116333850070324026877785394107210302699243122649853933388489545335377906075818802099328841033913985352535946453244800260408386146093827498976824342187766890215992264227559317252753257696085039374720195826545348090739580177219797851383783862581545849792895747052146785136340168911782341103594444238157598064882341191147892429792976613652319243310330882190255578535630122987536706838312918505500374436178238602579955783248198758655878524402632353694610944351520164404286874377075124773258325686981576172346395460606566126238703847084164131901579196911934649120565360678596054967543722582270626072266261126710274061044737196836684455712819888496159397506748021104225777083991478593285805415298949024439273938303347966128386502190875010001246785601818001169137178846455948842893122298228196358237776857939641087508780201691485142194901052888840162901788142503819003568890196862334929587378274470679499663614098868324792203739890426753343115702312323311671999867215504467716287735732999206823340444761301420696247386835630816891805783616726554343110828756827636311631767716690780102092152627227730465571578718151351212234090438783233007396085157515377289714872646629749472089502322102796546523577219866349775751590515814749185197779957192144923370443218871832089774886146283017559276361385712899374959903749196298438789839407456177083004556517359630495581322633999534696645789805409948592782213135575334986773789964187942870764452462381790245474309486765485601422512114835549470142713424556001524016271484705998062923598567449022177644835225523646125851109108196290938760628536011218166559047962124028111630082647441914298303092351241623767822912088634631205025945025485648345988106656232717046769787621755126376790828154483043645195554672787078626588414311029586577244950637124111730099652927807016024171183239653979584474552311237371157074133050597022286479056492175202083447073625087414405562459424277149900480704291234649572907016970519637381717437981840251430449862243368958689216434685658265367608641734455539656030233751394269405214837347935263713523479489436969389860230213722583546504224745978981662006348642157302437476711412478736168388220645286459727318102357352306011614427364363079680280385724698085275947709032343987551258045662404248336735427435567230573321051221065764128993285176628913192913390508485028842482886455013137642522590257792384938721475789711541529468000365970028241619011500743256949290343002472502593522932090247969799018521684184396908707191366011291156565449065345017047365730734268676791378965097577340576825454216015221556063151093792231378266026058575280734115919268069826501396209822009562129885537384813130991724907418768169598234778544567235570254599191005155854245683987705719103792967297220109876408224745631580379038441659620791552420248370410844139399148590727788894265699276509561188050133219403961745010630250028113224201038426653445100299420087662883759067102969874578447976509200909019276743604153656470264002058857206836312777154099535593679731152013186381167706846736656303282241727152354356865970662372581291426140324827334957437726326222930764409251012601750554420048448651768888183953975702025279369521965003228585602291815312603533284739509543326468687583790989943218838396679813683920423173941959065398957771274712740749009360185573067365449200929089968408723635244682863581452979504352623992703170111719213620671996041639714398222180477978405581835475290993854536304531580090734282209676584744910949201654472705277539209232883799933626592822074834416087424965492647360203457878183828285322816887977109289048802876026993196716835472256423412859614698850907037896370137156911085494636366755455586996864299563674991604393743146651403647186590977621899306748198013214943246422690007286552120338604342924160564848742669852910840751947373177822298723174336809839121298589028177773916097707672364877697873015191143025602714865702925562342646427082366234048073977120028342309481443795688826657069910115038271305334536279828705568700149769251283740093653655255413128774223744528730064836709917231674841471764258735305377968323691418156043100897440123470936638571945323477119363250840206743181011947701890459144703455757538555461639776431308138886532569012044121056830751115030322729789011480815994830249774158554965786320032559485343302779074551394973337657031049908479571164616232096024036626855932297916338163891027406002241539344530904604187893762685109408212311546356476687155298780250817930569957347980059817959357706411087120791340143619031040417935023255323296153245430582646624461235384721597757894736501464949513326007785960734129738283442939381075034387604014188974571746832307737017901635828571476128234736196969147897210922306821005648149668657425659512361744687175994865634839983243194326431861873408356618344720500351392589359399878208180559725769304806092189903421733464598646886934494344797106108935116754117514062764921310112351160464061058292148867552260179502349478246967621035885061746662811999536264851706087807702033835565446808662712900213977043607458795278829118374369050667193127694873760482516604513020964439830163194494736852924945525287615963469089647868214341664875926791993905190065953775740480331271930915719573681070838301149321671983862984626006725452353843111871761413224078767163499423022468249207561535822411489236949728709915306729699002125863035442858608097087265857221385024979215279571079369204517495356103717825733515840286243219566743038244657306315813854866025091459473969914989243292127778542898803329564374638969310799023361860454879044229922320267614215913105150232003578313953069998740919614803433595528733085633047810951700122030554165521148352608794555962637855933753906952772233882384090296400549907255042852256707549893590772674548562333849530069162272837936672977152877785585462037352693327116997722617360551849263715689429384240393360801816762826012220379067333362190051317470956822506964837139984630521738481769274238914626384258785311901743142296178605894173812188161947651163370776267097364219913705401525720194827057510455244496463534085682719513521226903078204514473899574915338501537031580294323444029333934253944563768513796906753684678679896616239425175987499423245784056205067890959166596775055087102682600733531221885196216757017734383908283944305953589908153632601374669776856744826244502454642142005974298635851610299038353044144116494694471725810239559558590692769050305838105030871549147345789390775624533303110778517583422881325286205945991509299324598525676846197137190070726944340308850549359190887790925985863328957910387671579820693258166425782408408328617507103242860887793243281612585770682324120101569017481318490959969400081835347382269013081290052898892869791484638752530731055614355360670707765029800167218269300285416562112985271819438028082099324391538989602791481369896926397036891225949379498527055089185347724366102454340572342785316907367899898330749382631105334171456012082911902082530339961272742608502752343046585347663624546666057245700566997227909374567040555765896988793413358976732518455435019205205038551488240915839877934339888009483359787873633944810440209625975702386768147697160407507790590788873786101679210625374442266838198185229018756743308682481178140627714860212017911069301998543937621675672691880736370167312473858199438190562961219279810153607725570193416900198190090442728841963618018066808413047119516307897406940199869404312522007180667395026459900726787441275423703506187615205700013237511199436343312256540754914642824860317688688006412608449911096313803094102084486030817272156813573597928832719889464007076800745257021004365886537197705972982276293704432367605428959091585899470618253934687066316680880332392734578100554286907978680848634605187699504212078032049581497063636979835241250823331868222955491546011770044272408843285791061535032574300825714265557741784394856101608810018750637900075192523344765064415744333842125306109263600774348941294452466013014485249707733712077888580916835929596926380941078995301641125187764172640383122356544063968073590112184483630113738041376463259960910775377433856985179389595090385252730297234851743318038846480420257958871578836213832693361958867660973938746855179645601982724399644744028062306197330432534892135988164658789983892388567023248013199070758422841948576958783206140329704535087887034293918493544852231796992378035489080328850538494141930942362584163735640828515949319528391477288509809164014301054488739649878554725327500968631646894663261533871247854768220050555932519314359442322626827212688541744005333161619725296862270637687356383230550803626239760137591622266869161232030542319022956073482489362651225172724072549542470154970601461984181995633363700329068672318514987657739034674424847255306867883635820438701884630076137207424531733553752016235517993625553556331414325857226894864970210694797748971685452568778596085541850363032338285298057262835262304679870700310768070596426206186454567346807762065451597023813896180066196394847179306690779755901890359315149115019710505472052647503638638033190257727451180707123029763493572013292344933897624722524780985267436902791799694199422502361748858030024053360291673447009817983888241694600813371823663677466780815419702861645382926641092346397825332976679609146248931840037784962819097865471423109193443081565995353351009733871945901163721177818282923750300622460079275443356409080756653310508222546480355030316048516325853823254733992215063799339012475778906816918130386922271076771044816220643996112002069413930009081809059898024349332108282797425404925417559944657746148405679920151091079593705147459351823314974780850117084056926798457698052701137902468195966162132175504897011370119228261657709572842210875347170014216029889307061227741510214713894335051983377137066895558959179230814386378028050720115251610852500710215504454115933299100031835282784521013989800569726896543150115235429959186191195492730399359560546879616490565303936526715725169937148986200260354164037385258335612894313718277756633544170820739932480182038880948551061567167674543781394782936739175463109085734591446337929695458514792773807986015204947120757223668959725770855226258431829733545386193585147120309460287823624272850322513078368191855778722545143577769716126789152283089194984393261022058466859786069374766822674671138564827562088044308480023813225031158994334649917618126135119678355721702834234790525866387370498183624794245241697050765698942770544942404461700757492669752276309154707425709409446240272337780336943937588991679194958975936768720343935245185184661087614163505956675370880650217832882415873159417441817501458691179995311875199017630004930662523081984621087416751498624966201004375010725359958236045274861885667037080422801439932212561617235222887385550449741153035674139446327316960273214850890938309854657625601845348933600940315403849798190200684360956403887932444637804873686306307178447524372989046253437008104739815448469158897357595495538880401069011865764899813459180557049340911703066358357354630773228348865491781233435959331883286329764379445539216888725037243927366941829514975701142749488745871034964708049857704450576084386082677207226496370752767546840343299375621912336232615157185282072431143504071458365776908482954639703288677495360455454005995839131107791972450148506390595098683835452942720034030361629400481253388993733099533652126864614078357987711355454503455044573255397762302712671256291486874680923180041922357838659308199510246429595873035295041540552962491398262660630800101163386475997669523471903733254260710856450058172319129585805801457525162607765458283063318149209176227333376217963289662571490631095897214568382628561380361215450842976561726000477922909736918497637876271459794303817933538492108941870242255687890510870359333244224028336902591377802130444166802434487863629412024135490875612148910085302912516434339847853542173118912738648995019066962982586780336292553892031989723569326719470174822615938879715906929727804588921585888222779532586194439232698937818877787114797206835554079561604917223816310536986794475811498166160766209922056571214266993136894639001151600043699867894864764521683075760754082915767712443950162593820987336978547544437172765195719157027897297708387841453639106477756125471709467466228196554549150430917633953728403054419694925793154657990403867357543088408799712593737337404628225963994491351625657798048898071974462788059009046406956140315431459094922276965051204765197539270691877931808087644284756898519233316478531182886480890450658310340652096520971897691737915528311688041165508067348710538189301061019273515495152099127671221728464180148168596580358609451685286229057996240425222486356136351137302558755853252222150401030106875391053844811162051924919574425248892798293914598133111739493037004532917227386782719468684156584179700704449079190198082466440071850947525918191188249329362634503461509643801799089644334734034400737043202490021887114838454187354338604302560857500809409396944847353966074568188685534195215754381070090433167736287397128002233315292049713639467841718161369406935177702401150375348061298293038746628968227544966285968015619753375099834731413962254082289540798832362982684006735827013840405987783471590278720815881386040571839028147077809188224662104249538000254884616047871674288761849700939420400688144690840425191136241524434263601792943812385395197005488226746362743374676124626939474976312463198953359236375632861888506000585158824764526939846348285781880658337142693044810654016846574553152037365978766153976869752884874027728942450214365426656615271692979605172163667470108570672750950480235998522136482905422058416097693422748867868144424355880118004398159149841142402563992503097152459376233593993355305027663037600074529562000159214299314823375864194940676155944589542410779010430331126923966233002978311180248727504827073773410542261852961957336593722846090375441391337821062133495921270151454534809678491488477111889963542539710589326174724773224222828164732832513828343473179715371222242865230693110668497846493185680056531939554010875829071815383413693501646790711161390541022434153900775239945259443310169494345159077055024801152033693380248869400885471332221551484134838683867709005983195260797224974944357283724466175140676368980935021775251455104294515692159320387472479042651299596559156598792801401298624186868339451818609680728547143584417265796143310294050257169977464903613921516568403975626870643781885399220395085421528354308835026870323597964154084082770946660859138504462623553546975770429814233971559777026374726150957515369018475465409328967671346255631242588247667593773749516995521948451473844137420320159752134974467646163828906253804600952339433311638799905581214954633090110164302503560316194080200559465864669743807417019511394665225129443940431256431541243947186442113966261620393854668454206244604769458230028049222514686679940101219843810721705748945137167813777880667088543651642904502770052505633970714584085193731025387288141498379069413143566547125293028887400054532659468916467672534482984866064447090303478142944026149870215954160045400631139193428918088408578515669070478683142533885847921981205758403168623865206388697932939347643410373307888619107004818003794841119761755449841467206794154294586342982245280370973126131720904508446877348523532025376506501675475738889976318371930391986678399085536744484451826029990243593857381027689244893449596613563521341991562173837709386833131687658449258302593527705247168930398834463871284452982026495570063476784095494795890245970191572329908358324246661123523132068162961274729376064799828816743921660546932269195525440955445761798174762222434966069418559163096368319146468376017577953287533622371353427107213684964280795281520716237380364268533407383378328590497034090748288452828683392493390844308404111788840202429464502289447528956361753360021891040325777548442917217546613192579506359547626854887696729956087944379311742022129282711410382614475439467053196067991452946167903032328532637495343294207588866177355612194436275368914872865046766165001744804872065001684374668420875477810996730252202686914229732515971757723598602928217749573997220498619686645625154916861265486964517378383063852140452340342273868661386876159917864438653290681679644594081356281876317372590758683435115642734938026220336589179224047243380750472310174804396240082725926836301454396113408681190460833345716156803821277265058351985469674773622394847251392968075378092152159145591043961376004183973023584175521735287910256010931379037141649025317201471555981509814662077775355525316734760486892262562738775991114572797023050597158624295871215314627717233600657741708965664211505992004202499831846830746328381063205140313812391440656315850972464504621185050523715161486340658575384526436650373708792955690493334162664699558079483191498248807360572192540305857385405798222346958909525046174197169139420645999748734324708276276773049405868059127231341694704987380659987111714297906916121646467730897888824920679987264021721214291466984911047152485320599737176883370344740693003319757623502500012955378191038762332401011325156653041305168141699890673631520465704194637139083504093918013464775199005999100275195483062072373823110478067348241107287433010256150640481548314514846721476973048122406954492185519188929206505040435332856064515941510708577232908467864451712392738493078992811970267208657590807531213516667687047118345246319320126023194888008771354729750298136712469269505335430855407571182656440994583914098276038028098417266437887806921456718483895553656349733780738368966351194908093062825283624967039322570842049305517982955255346209506793650298342030618707626062884234797038825197739959892438591632645716537953663297541755451258513835998357477346431734071875262588439687604852785369112899621829528144863991739435222406353955535616654942209228081880626802525390919734564561435741686006061150942969166781839758186392696869785674788334130814379258621361629311607902433573378636929056245496822438965626201274330299045040698904099625049374846139726843931318483962172198126226574628523133948843558112008146371871861046176013805266318243081295248959019998596349880589502305607241910861667480625568188542464334607752813422631042722020252797050972708000916312536131238881658898547751163213478156598997283146076412778333563653031912663981467748586516772091703668322835814279104577822173151914627977533575658806618404609537597702757195496167532077264828545167191488135768433579923344002045092793885907534791797028483128281608636695781943861755798466743847592107626761311098712364969690839861822609545532029387320091438428338772678870049044552072985305356473510992070419836203545799009782753506007770531739318794594312986585811793950343181763293615817056752105986471073524729842944146103123743803967074345272119100520397094152033440862966571755197205217873311966099708457199395667184614785754200491792416486397075797056540201600437193118428696032428758384508358249878503268815198090030485164672507382908768399223658932301249305941263100185312719427984076518523250721973775519894046076666837085757325669721047807792638544905950427668191595323706894417657222487330525975663653204601151586581504401593772788076394537721462916710441966082354828241162100698527657004436574230485815081915938768909853109544770590232449409059645465520427102366670093024982968181306091855906751723313483475663946710429248270664710572521258708341653986968941445761570421186089744220223069044602174090682063502641780393546936789495216169483112907535423751786285246631413803194086785352459334164581404380635373895860128914579570501683536405158947408982959786049518826940188430437791193631945812262984531286874560986432217740272725250041119260196140182078813418176900228227564253442844408554896121365082840809130370826282359426075739106542528214258175027799809444967373855685890203479062399814174867709242803242825810696140040297430357248951125698797994856364157262822817119748010978198043787220626709364403696780189220368852551625173261397486049683831881081993552054043431887474955119001857539194525404207354672135591321594224304153884598879224774339650567597453291706991686463494467639056085054750319482612930098568967079836451247339042324764403880882020804483091496318977029800327745764682535228248105200664859717578816615799158850407191665245095008504594913988021080475182046170065865738310411566950891868970123378613408200339790037984552781296322345719877844189800632008786996659987732384438671605379236264106266029202778742860018354289849886631533818123601865199133465851000345876504041019140694311535304120725587701021539963022168172407675466214759061462871796235894220533015855752566534629241534399321907116733545887553054869850211583610189677238088206769565165648278645763006890002058688462471402313922834939423385314203964102290700228098534320784514500485223710900299650018499161952280895024528795845154002457833377515834275858623375604572746440366757389823351735241457104932181310977271229424861384176101652211217577735562867939108929013914572378768797446703006433076930532887828460971777989685198828776419825317614045252075022597265122409262151704477717405298128884620130127552482687233212224179333854580299023938359700229010619519705815630646208759619307356255638261882689554665170234748162154145086027248361424990878341114705157012405105517088924337505249046472835519652034702551908616724809264456094675172080055602388489366314169248179214106777151573226550540997391366407973643924596567948873969200952520957191609338083989585849888694523505793562378791469553408528283115065577360417085461826083463222940689561423307568955059453463697743772151639884023779062921856661964388635940234496159181515701181923710628456590434211993440360206793531741759622833877584229497073499475056848477762102184789574565414176752219443533094235544086043188564579096183999758635607473333456407459793969162938502275421512033162754381118464074621134142482720480162908932777281571626918203898896059460659548477543474008531324887038587987302572889922573925314724426347844251322419780576318609386083683694842565089216622595062646213534467134392542204645211224043586301133559865557491868768910696914364539872594434208530046209407953702197168754605408189673789707669490023860216149659149142124096025887540240711624388944124653329976611080729276144909342581430667366891389674335074861562620853364915667393341465056047493916898337284564634131084840915257656311271133319393821499161668003176442854231012331278140173270241704976920102752674188409115297043641868546479438593520094940125150290701050764257916073292893361014257151363400958325030364836562093533994425821721598753478989818739619301986464638194557728869869791502333625977222086218321592105665604676624106043553843357157921523238379725958164228366948311610975184102797980446072325675140386789300109865399358912351140112741750774046016191826723952404242157173632493978246574450289927059522055556473320981008582596925664464223872733703755946900387590800661745680467403498319153572571243798707279969800255461337445814780925486072023083618069603776931475055023678698261838098483563977189564388837594139603232546577260244111346661005376597991011905801546514865307978459811973529129734470252193246545226225481599909293306817458981115928420058401321283932072574001318210125659262742656798177587388990111547217555816219577979523723377570692876295200840040857448351354018298640078887349301533926834583237889424068517912670484405157998482443929241388619632688905463874281226147393750448385196860054451671917562435323594415121170471735168648352999883137477200982306488209908034550309505750790515696855279438982932200704233583867709356543805691240098797046826364885435258539696256253061842726801227858419312636901139908429021333553517929294974507190245794222796222215286452855681835380300949143029430842142118181611907592845855135849808641113796086214292233724907793667702129628589478095303411969390896640454152278163399453119717174527581672690197601903481736711737032791204055599913646643388161733357093937687843062101240190760469008156836905387153788707931893994491341277632208088101937753480385468513950917247713043311642873791314662901272311657637290652957006085568528680828461364654693702477293464484575540715488671621734275914556512594180933251432569732552115066986138437758049230234169473138273004833853584139386818405501866037341981699249737459247136968227637881407668899308563655649851419389767542976524994919941878759400534219156923198327238689578196889572872363523289218761575167309564042180595345894716001250859162943055294768972118427840885579304247782760961422734960329644777633110283548916647846767748534547726052081347444553663002401526154512739855821542805028029528237926414820518458276686608576498325701846493344529981504043011920578264496467484510333961512614162839431055997010664661126938997860351219472486950199281542047343848153868885102964316831303437436996309905761388583463211103333395462484007856771579416552492891949775234295812190968434117600313132355298040860892558315704868553440530694646272931881762630900847960766322466258482803819102221953926631932792463533104640830920040440995159169549771718334320504839878197415641804357590739088402769646346066440143521382892535095750062758682276079393095927628329483005401569776227415972011951876610276763035937455491975997509401314491367415960862872237624455937342978092676435051078580662199281684175194186319118869002625481724598110515926918362411144606090974303677790991991999271145754396940813342554653574647274439474151847869541193401349649065748653118132611910464784462251522901918766961329837268865772823963239288556433201639212937417415542732372011329805320188592681905232818015228102776185404835968831947967248224363220702992277227053485799908923680870809236103395552192661976416853429990641960169204883885209450961770015721856484169321678933223850866975401788200341720684988704722103870325984892108723638163716886939407957689663470805985356021351827625264218738378753975968396431857344780963194877914334540607560136673569138154699846648296351072229798742233535815347591043290474774906063482108232133177778284437700246954402236523710242110072980428640770777437922824554149263278023447995666230290444438596459000748944514054565062979596887108771019994575488938733576889978969019752796653812379170181921344204061602462474429798141741039150084652788154430301023904400771348985532420603449816749429399394185048519377680862665185224496759227327053117872556033218054903147446158775680474610174097007594698549110627889899652232810947860244401377494223375212420740144145353451709497263533317470296199525312027304400336873218037248119002465610780289738695229149118788053732401816701568073690282931686613631454524130877248972451006991941603865132157147465183715153249814820903327141148839014370214907280086853810386523908312434877787911245438224670399953193065640473923865654643441067952528507362926072154699558235080769364842145041255508197189215446783520313369803361484910759026899247901644618676221226016354456189223591515505402384246794317410964027694756536396429806739242525222711560751558843312684727305886268802707050391879568978909136884428511547710586498434808855827595050620987967209569520773262811848575940553732406178227518154623779018356296784083268344448117770201418796201998227837569402154180581923209424150446907349883838511200423312315617104516811411580121024040341217585510352211110097779250990173109619712975775184148704110067203782469002369841394384334031510765742302288764547347264294297943377582624917367425259839445845520077465107054322710736815498559979797984349155574585488075481236514210784979953835009550728282400460612982228188855594639688571519977518930258585815250506576152322384892891330347911348907030430623169285519592390879196680851572433724376292294299294897025103371508223553751270941195355607166854051679409073277127581057065676488953884942978634883974665592814694727472661372672348653964749382131868843738058983630922367603232140223135882714502412148124504552293793290130878556519094088543755162317794055610835343291744825553012462941991171423131425624880748937263065604497732696697907063255635535902353982338643820255501218744317807102205158146552448660932017112427988038319575194091722411284662330065809593139686304080101162527434284424251496538944869527888279613764360061137782048512409204765746814923665500099454022362096606297746093725251134454633079481285093705250403460877555979866569452162595021865784889308834104553646028071798423518121668163986819939822763861088772469203162887527304053473670929670118351346215288737252229262371953172072079971946070880571076357713407067490163933502350665100273179505226426662430344785643176912830526171262091515877125307674670407320705748878444167035860891780133140061653128101056465240925224809938831677324848427309381320579573066101892117242251945518541547842171760999789192847294916003931448938732995780204424552091553054790931006734762808481760476660242023156660695999966107649485208725908082910711429753850774933582068250086976901449305437487203814980334765983917542936672812623061119919597598747926378185098620112685901867980137828242579526326133169942304711790004899092907543983101875421423663281841010936321745219136384351280782235398913618213193007633150877410841258527273584558283368471707058999188358344672562780747618855791898825869912619286324156715123929823951774543170807860026920012693157853790656221250540246360191302173944079917527633730533524960735643754240600556837525206869880043142974791671656143449295613645747171477793712694923276452808025828978608558970607095630292807652421936389316433158384386619280653099877308331803248441934020343020155811869801370699970233343645514891563835458419494615816639304776979197234196709504348885146070298227179070012073699188179064829934088133678087669633679051905508568828943902670413751042991772642655823424422409017771876984871224467725696653306665257620487861297868263134308914007444662148777782330614585804092998173447799710283642012315942891349833444377016575360384104476421816902388915587207550909156614868491840107826436370166665446901217647956250861223049620403852059123040973452979370774552726035617402651237728517502303687800088488985463207076391551326017170436956269723901873992100874462510551540387514843505103434502865946393221265523249824434095796672293397955154009737522855505987790117163545634404001219314248773450305876739650631206149128426323894721903524611350181722445371921756431593415772486583639503717496991905194684296645748392875859698022196214893816722292258847450617251080745428041826275163504870181967669235370542807188138403674283659767369656765854604597026031100714519394189204083511827738114557485488005028122397634066493980321972262422147393688699274636321161650823007488137107603499837489365705517845731262047199529928048396912588821811483253076193320108415895396523838610273503029639658748721910071941680044606940393014997695021194262381630743328307629104856140244572152519396537009383305895106329577131297276975272608209598887670120382086616620449665091245052912388219299229989111708258596883115587033555269386074863021717607565831894970068198068651216141693705323209321202456442717137492063945985673088877548260178778039919144069393167117951617215242025982310640748420008840029631135242455340605381721610118270288783078063615791073012898745713358411634041045634491308317765698896020820386232917498612599878783424505341669060552839851530414807286163637308342152402084542121001256541965424797598195073989287807085965669884634457997655616416714597067105167120045623594518095826421612675136963577938372988687640469259192290295277499829442976714163091898027488305283029907025976503136425860292638615047638269128142133056493046086730305328007575073147186923682199863703582900887235793066584081260477775762026566118737503896715536422657002883569300886644746112356405712450147606203403215784947816193538460005857764803069323133037899185003432850944537288360036615734592840103877046646249464421989448094599606306127967751922048433460307277384088534783973610390156992446669080944142346680007242064962948364903701464039520845287128442821152187470668939473076734089511479575524782736292421621752899522124633297990292569096342722342430691925091281679273227157192024638727265703245117381060675912978904329355637142705079475439449828820648444393837783288358101345303765729743948038504995220787848584274289803658926994440040571811028350994443431929049108411733486946520312404862083216154170037029541121845789671770342714423312399283960960616912736920732696625184548850548958571178585735388546273551222031614056275539905893343789130631723391489187617409959129414695222180572998330767276293530736875527892638809559666863148284946005770942491023374300123042236941465709198204454580450575670055393070733607940944430484619308197101941788112262542648423605975265345563046625507553109088198601652225314000609735489737435752679905291166653403091251595992991644753570636006539132880704672223722068497994935363350062172630542037602366531211196877221006752830872124143065120354456640010060707541759126653935111553399280397222459423819136868776606157756926497963371417387160993667181316580667233493655623388351095543332578152671643698935565298858321226784541601576719861729440790983518289169063367305287161769740984841660515941717727776542029800193048724845021633016101526659392814425057518214184670881371577474055373397146148928194439043464692410740412819268225066436046704064064940927810610503427732144061686439644981505947647286668714543355259540682721484111123884879328522174307420928285894729014088692094391737768066038425355151084815100247435592940683006648314916661850784540105247216158056155153147924315679127338464158825305530744294543399296482570135206231309017106532278851322811508818034272080776625874356080820202763465084345699526879360921728738329895137266697993093617049704785570971453513218225239117196311935703745953285420136137455033668792247751232197811259463175526956497392372179492082947248669997318635678748550020316989528001736111584545513951943619934367123515711077640462255216816448311712113885759788797791535444752076361712974230018420333512209284830887716488143662262502249460348022619945866331009788357481198932113701189915965352336728099619155442926054414519151485137991063348203360514141737820898172580893587234147879788554229233814197904863514537193761810899528991611219438768777542913341372050529944697052818676374050694812473738013340434688545642206108439707376885869401905201694462382212137770622093530402819770730879895692533882752916077112117132536903608219221441039884868682336353404248420227108555273589591199753347340769429691728612342846457390554720855860486083741732579929758986602934926634404344334373937857796860738099368762142804002715917627773012847822248593224712086406363791060447305022650602236981018571725719022348875616843805258417681964318536639848305313207669299502409269557152819566355000263974981797197014298385663514682858915493563194327694852600361471842997537258895749156402479204498955893190834076131964231598439592925196419762080525372861275719610438600151920813759075811862198190206698848773042050288930308475180390824824340162681732295854549527807928999419255926464763815085718950822582805450838417761408877003265526368388411392254557454451321019179120478085760703002273904565790813797467277179337393552377803603938470161878339894052669831071873900235164531295309076073742779189957840880566906997410215266094670273613636584695744092236294453259519844589558458158676516599415484645830916025384949777298157012962087563819543303082925239038802596589812351678442467195938578966803002197728158432146400733579493500344928075285447967423883687343045491126935474651341898028210892197412143405432872783675897754987396486613076634416105798627955227586356553529765934930289387321972024018886908138139463873671112672344146496026975450010789541937522618967686491655650952821742713903475998273392093388542716028433680714693072190059661448133186109464354673611954402168954631523181856971430156397088989629298526350016269498062721320760284064132627837008829662538705820568210039127680394123219983054272228345869080997497309753466550788794060084332016318842702910720261356606656844900538611044915716491843171558167184251015843824171865058671454920860059310094404087274173491505388796510144539988256008135174887520076751854202881771852172799311398939553780894506587596085971814790417217888857359900197056180494074884172029364679039598514308249602839183172326677516999348907138575707599274773922797148896199032374215989579854762961538857427243410894618952519809800955103665853125343615820275172602303449279008881671792746690434021133461958562943862903922068550496299711479092291724024109236849813203565111785878698095786124081400610766202243152060277410968297439402335405185016665110114541756570352592459997886925739498701046435713088870615871318866788457137922725031265055139287908884931315498435761279152029463585672508234194786923339434885057565528940600301697726060058378665580320215437886044914490852259195757308331465016798723389474120676233138467257402585196773999522886119532193072142271720370867523103042250436636701685301966327797035452501999611947670756935751793953819569056876986535425790830127380527158537943361344168452648071003162867168252525359729560752098108822950104306400208153342172748717773034570103152526513351449611851859809457448215840534502694999190914419570518712667347003075903245054280092565810959445324419340173501667234858336834830271790588268097754240700720580796985161610158726100272377505263088259799580300279335659459684256929176319619359987643585192915736331334062945100981150338713321090298909025170944978025411954500861471495446502001998054255681233758939711520247142113277524250711909781483990777305800590963130785033093588159187761713414468371712977174035758325836462152319597616724494488641938378824801743113929414286000955772405750655081169631290459256436751038120130273740669315699856649382358413492309308564279703053607537547237000426008318743216195972486236774736169698382517439758849402707977890947887442018850533193141116453818412376337278807656095325053745560287851408493408150695368854407216141199143466296557859941192308387020195601992428943642214158521732728035514579928172976333763366358709054583208580524098254409718566671093324586119590563108304857861761328729043363525648389000013328135405481236993622829184016687174035558551626300226082106934997594483596063906300151433846010778866546004766769958552270530349749635426391497997752963859631447063929026946718943036731235157906954378716310526943048995666280127269948498109600442655001897509840066570617325746192440959289392257102013535849012062879670667255938367088992278995808424389735529047280833064531471706341030219364060996960996206739372856554092379833999905422571944219414347189450060059459550745678654766852938383099253507956802271681032880673493020653877205995745107560828037664302185936415954420533224245392155314121717427161758621704875407586048363790529996114171940810402804470027994695767197163198773197125632197071977626314066731930895721716548311635579923184713505789221446583668052039021850520397979812457734536380197931734568198930621696068811278588125658371054146641282166727076801756716622654166615853556568123257485185509430402262832227058736313727138674425285693276526015737371576886781592574677325529402463003328018233397780959301404978069352835665922854093714109605524873271688172537896738738278540205636440682026940178714931371048680955633017547932753367800101636638630596977294379917089209570067148874794984986821873234994730478781115953786853075526841741113484703361263650762147241747785174019910029347478368878568976573853981075193817639630691851404388524138479118563218040933685640395268227462073156653263437892691740989039270341590996196574012189038008164961813515290764501983671498562580680717790664404033148881066842627751753109828585369003225844101574892462163188582021479838182447692796014174175373247960968819565609482752773279004819749293757467321585791413437640008848110103335034577784682691610979895198735778973136447994997102621792570341657941615858753873650209894238155569551315490002837346294294183816161296006657273498487158856256355759654847193598361156886722073371337415339375628698886066965799168494926003119686423278210512173933503388849655919024856322055241405553258494375026220582225876948267951686962936919764452112765611573053779520632362641235016374155561270239249287256141103097291311289246853299536868968175064041877686951321049070937556481409770886524718386439310267598530910166961536794436617775664047325111901435002150392631906358619178360368963608724995819494341846331121272335524282865595152170065270575029424173117134819041216509775793483169836970649980625916507683055350313867172060266377506723125670161601399429099182794608464030537894454229707083819700210896882070578321042620965928549019233684115571606273689077519177666554253112894178589668347701652503662739688901858164680182807271523653348793327779919475614290327323305987669862656477898321907805311760786646409803596806503381972035011775381454947734603356547702151242507166844168058363933013846700741577674732073951689605729532249168810961031953121988073447690322763772521991092720693263875780997280892493931643345369688841346404005130862635693482595115546575975984990216437054180696610653348756924737938180701794418382417881688781364928304244340367172703172046805340256076075997896910995911332571011481506547647221186926388489489199995747866470433692529190276229549469289732037362428686657970552038731649453741619680225084411989169653674496662279960082907809235507631916831723505814532876964814605913434430516636349926540736294108962512241764297457120872203569906882851486938578931717459188711047090373969190850297585200627136958788855922324074059545645228327783477563556500869934186426917519636862018802197443901863392585925537576460373026606529495661445949483131285439910696691221865829435120398816654274308657609227058193681649424268447964038009994161509327737673553906640099685387907130500258640878305394985971847049398973567389198524193508221711209332584906670632536420233799215833408967889669872253787770017268208750708227820023984216761999481856017750857523924341680770083492051782515277186907076942581502721225471556454722445817345579819513139435998785800560565382232825294909960046032403819931273729219119825934898543842797970579357413018531883959441023008800760523494918137075291277197623990860274121377314957110696436457962172768707376056777410760489951046716502808351163118691786047082337096409428137024517042103681340057723129713007964177056875184424705150750919443895385594030649730476512583911402373327864243065296009633291593721329129972580883854231144662474033856903304729055218265065726975363155795742333828601497979352852782764182745051120555553311257224212065326968503021805056339630815486246380309239970839394521581692644646247095783262585374328259375362920841843202069479660316560951306229660695345898162949358470412759808042849796473517725401670650170750253198046331722400399366871978432517427028307670075368242100160044332190446982146174278056976042669511299068595827970037528921922788882454436014747149014079516071378096465993173546289653296702789470436509698547608568059489843226971489383474616372169332650595166998509411440404328813969169985174773403209458772853514147172009374400244771146283119084658560264740733497167227519513371993418101226357098102867668041198663777160948300529853010143759223869670561406685833954000433027833475762041137936919368933192929205062842642535582694473065104495967480540082479956705679694542290063993965657980326291485541002828724039768961259632003990521253462093515631712307059022532514683015051203983713353887928503060869175663085354557892244337168403210407502055384218484976617291923530203946841618474650016232023436997876116664201221396784388045777795651909524880678606712503900516584344512559059915865820715929691472619372481013163141455434338424545143890782786781865045667462382590511650590573433293855139832646752630921790891135997191808634490892560211572780502411780015105278845835883663690989751604415666718923284810631029345989866329354304747956352636384262644745653823822841547396599311291301076831316401857378347544913588886929543424845867800703765463146364760905753722122309677793140506316739449270573502992451301530379697461464314391518738872926550344972770891818578681620552222466229774640774520035617034216842526265627667143697873535149954621138911320079122972668950069321783526763575602081189721104165293088870882040735305729705863933664851562078107686795112462736274585287299023092952240489137626495773303642558891982862272017052446496659231959727383422377650116080349614413312342561315614242396191733664537890500682424207219068253412952460820618214099116775481975922704742030221143837885274882671830316526388660152269583016896855626292791782588548583697771033344738851430155398946335314526932733417188560465555225351564162193914732392309495077591801533548395999554628665815519241070131562379615008507274383613311611262767442339356073381105846046707825234335780128690880159538282509456496279690330113192949827780903446618614743908244515243909457498214064660600433717304139443114816824154047514199510324367775039937508818357289246888219495802070616387426440866489699001083319725949063200938994209530267056258781657028438154301506871070801813330152492405968679452452701577197051007291791970406519732979138761741627550645509332582265190540258416615025213770151069063563726414041372735003055544460188487296203566801990119087323931156558071702940617845067761398002284064287132735585831716043535134541067540309812972857668803176201554976610633100464869796692804897686607441390159930487541914632681876201619239068753866361820472198263569647587339014101116754683352221917873921487595812969495245294353655459320712880093346214787101030460509768644335987343118184055166310170254525709099513596656840309745971606707175261674353252152170487116256239425888132106176081848743576639764963762778503485133467178556647709168384916800374475063710311992645205212466440931976183997788159993441356786297980675680909514594528613740436968389398133060042506157048800765268724744423727924317264784256919910302682557829502968840204287111013826953531334992023695060366577389186108521306143200801157605313632214907306043901546690525725508769250303397749442361316687041750610028371856008884166492251631308613566883885383280127401698841123078847429131486148694245026315929300071134036945671043628532306628814088638729494663982005410667464001549140738783912648945702125051402390196794604241058072505911263139865256955997203650019425012727401056291268530226890097644567099779042956210582385634781035240567260234263234858852848463810801185705876871804317304275718916938921468224538033433587853455704190638411935545281933033229188652977993941284762501578262199272081397801694393692223691121412878788121556263047794506881159752290174628713278656869258578976586863114083611533493239834879653800133258736748476712910248858652675826679223049143400624736290159266738211158341260608002521131980417570175865776006923048517276127498687102564233930137510808902010880842034337793116934883365611117490261376324611550248191640890347992028936046713169193077031076749727371817123973563054159867220843185988424286965073803703798208838809184024147765766292390967425634664598568201486795383439607311762401715372905116016441543905210177701846934062168473496916090851618654334111372135637335552843123662965808403143793163137939331126902761325497396107501221173935457883276003329566211451206272703257314752780556388866980064290527614692379884715381367833473951102985555765057768024369854063931773230943148818270967032833830701757289780212444098012868046589936028281634728072932658636920646349333944161875608787646134216353627743686314516038384014534574377159153723399470138923559208805019342368906859435077989001684772080926829873006858992480221781663229203640673245408493127224200242305761471227880331630149498530853828185170984011449769202719191224196626596006680736305870869802189520554527199845375371524649627086915934056866353924906656598762809128125212490364582109585612567209648610544702458803031817454194707739714714838771941769748951069556717214632500510030414872660195279309027227178217176780900473998604447820584936201844196604578146573995909682898200741347881312783343010746434736797331985226414866638721778964715293774102777120200633046057036388627542834977302777081791243017353262165731635354390122932050774031750004064585571757960701184347808642412758843327798127053298244923692598304325067627667376121526766010237204436625646758723305849972999946989921010789118519851539294452077242437154595446679902468489214259677254489419895827671746381616027899817742952948849343194022290101029865449222230837722187109677819531587741880160809461162781371844707674285722807079696202917119588977579063052595848032321526035709335456622396959853040983823790796953034397737967129227419803897423147501245632507625124231895653640750045305812754559004010861475588634242323310262054855981387935660879815378678938408338425357293597586761294934667850751252038866243297779569870944730969164415515712209228770919976330722186392824364041761573301699469478600346225652249151041395060399814802611485012884947019514599743085362954719481841345894728010088283733825331833450198941593545474480942876744888121796260356474325098148886262360048011818637456044909122464646152003061938405782181363345940588330082255080849783230863698064590192804035613593651637488375287425193317802022148417915676913046282865798389969402429766493102381105637578213759611359438999371911454882012380715490750944266277907560050376347769974107007876561747884190156470567259384231798541624741807892114121772105528942141173848473313014097888571556127645661321993506110837103772685560121474951970052906259670412174814150375816914965721459828669587560594401493881374745682178659949389562698745123805349362488130500911322336258862153044528637845152731323473167236930503235516347020895676972518883878244958223877325275673440081160834021783440446969794611940521701176928000315956093301522426507296457397544722936018418079381290070899321577940599062276411290667903573551768613940265278016322286046387953804708489836652564457982504578219562985941965095446418473191188222262045227726498134964168050771692177184440556874430619322847663752137314151945069028057919644038229853477498511106383974522736982959369667451026524738612302254040810807288895176546667213497591169918367792832278285111550643394790590746330834965361241312286694399563781300272821308585037068695722671630229597710435880048225235319382959073365277153152080974280945483823549917770419407572455140603035727774824126805859012832734323721938311018665797270038990151754435054437187546289826529419157416206241140959475306552330543273415637997052954230104773725645974153105354090370324350289333198083510273477953364242919324303353343714072539703006667874213226392783849969064146972061326140899574331141359284405420756848857968134264619998502129234585716483003350553980226214217607375755166379445545015724082664720272711673629536174365261483352502981121654564145606658467754811592156653462057885322887960278129077223539741353442867831362865332229110064812121176183939419462308636537959956267967660105390266415729831646573430669407112232237109497648876990773559646822453462695628015837865875599113936704188637648349773691302410505319810548254417640756454753451023959084766454220070204204852060220555917169968303078072028742243401883182409713006685578862362963070953673538401492746706613829579817246760887665999927294213809966486276986016592857975568679185333771502642537158533499897187978593451885440844050449412346369369190039181910444138424603241230382504453748196738830807623292346394892266498519985393487724130306409141585443862618683637231944438842645718210597921014122389387062177120675084533881671827167754909245201356971863587560769642111068304384115760627106491286900553927359716567448149067872513233506914052458941810334907294011723505722278062220692603875785025947275802380983590456629458596971086762713053753393476694453519818177769869322856983295942998793485999786457600670090342468179781167225178096718656021338150136428012822504246126139863354006403174554600407613043993535781263291353944183987786002534025041124229342184788928217436896973507223480055416073345902931909753709402259678276925915435548912275623376747717782786986929851716728751062973076584075622223595289419856607409940802320633918896709327842990410625169227309813088264739597243040616223888244901941767989520907200598725487504763744614116377309159711618065226055343885903907581087708294086136300328319679872923544357316781620724621608290993968776617061503451625388874940816859855783047649417662959062824070900863050011246191922428729165382350505521322439458458820922189732117792448575282286281817749524561822191822566486820696477521013494648475658162170107325752752076842339923910483047566824807506827326459067181963439458388872766349651342216656360525735898791727422057912089517846850659519573066736152851303821112898885205615530651255018276095794969645975619229644559945540257093092736171240955654647320458280954600719433318531785661667043460601321486789162323453041461142361080118315522852508369931094537091883014374767784549317544994079955684103925784056916969189573008330400639135256925216288574429842411780903585541238638492800104034872761795575435378790546234124489918109661130016997361624461638658774719978732749153785649661952462477365749935159788577927696330178622951957394376488838851458432136081354371031842615943858067690464456352348232916339262254120703737874148562762658559147673881548147962342651715240368632874681841596171321360520197203078480783485268060078786839690561138168749202924815951987286480644601529239686071202051432160636449531867112256219810144555497135197235224792114928226585189971199927378913694620337979908106552755282461252290402753058104650167674797171338861910998119925332113187906995984247869795823743175371242779494448507699935202904118143382738025440695284096429899912650249378357867081097934553749331926161639983136942491402199759453765832411240999821783082129176902583431146295763094702887418806751559307176247093189762791570343274799906397859924944982684685760558566714485384923357011226885653431501332916249140503159177718513153637818272287727876327498861047351223488055657483512901582480564019431868415408248010031579601784156709243465382454458421003260942816287378441124772687953915045613825445322181783147922147298839601808011161317998459317321837719853790175993978531451001538645710819041686169201884048508327656073983428923789689185731730531052549854275120732683437639302275289634340469639393083423802454943613100709481701707457586193328905085419347475208558498911387050533549517785395441797316586861759848057280465625313561815674200808822889726202771708513203301418385421030204126105298677682543561732800635767085342005237239861873036117464690745031453217540823246195874021346207417630772217928139062063338691892832042323025299932972883285599025136189052979497726066370052736575168382633746434001600221471630571727672635427216200845031929568947760604692586550119783117687576284938976599065983538194075667340385603506364177800853960699255712084773801087657122035322769049502513095234099237991527403266834446223990360543965937480214064419460288421074668978682682911325923357970742357885118040754282349299697501744919959355079208129184252319343096631153866286727739940549971591908654225178376356400870569348668221710985310302548015563577553892822899151195256089665616766281458553544520324171300295778634999454122821456172964925132389950886288356857537754816288062455525503524053324307462593988328619046744322306624107539852051215955133835470898713130878501342551785293374122304444189374817136464483577068736200609404730336891972639972128635778468937477458525573024341188726688347964608495348875327132590594794873719244988899204204176782990192782637050349802101895353736978255973610864297792288122865068132896510236016538403695663458355624546785434966305323294950548296806737036062585305166610526918111005184669489117903268504479600784554184271882877405413428295830981121965437413990444957128177946449196369957102201481374903465536255086766685629066404350517335345597889482499436032051792525680648981675945219613932065160011438932507309276197226398207660589658851830406413288724270900707913023257565529928574232348344545121712579059487789375658288448586683750092233724987302429940061733910303796412168306285318397039971927126491068909755434627681561202609695703503642388914007400033273858366600949535532796747480280270301086007240215915230514402353157029710188449681266519190913378203539725626218747482821069981112178203840377990185857932130387539438944963701406971169648789690350935705502162828232454138401728150782378813891275804973430923729621448597080308641977761187741796285331166056723422537017626222643566308059807755051254334769451725763554951236247280320980530362775435534414463711416808985710345676739005425011682549704402523613003509826325869695178772243745733331140589269983276288016179018033729190802848385547921524607724391190322416688654094295413406407722711662384619252609857635424025408011646624394832064743640362225492701268570365366230002114708780316950029605474244173080930529849316864117816782817866189012774497942661188510029946475730530785667396008560530071058218027928491698838570727373685411662720193102822471640401123492624490250417874349206006884408920474506723529405856873966563643883771916247471139245731166820175376260430282084054539403098471404402297128005682630330707917013177359817703112592894188041131017610061952055479430963462173707369743937345476273828778994718805093303854757368078340980900392235351119491145676206446567916848144043250790389764019807189186918287576519790363468602397331476377505240834254089373957759158741703189834925710130807737144914444954387203119580870438861878852528159198047210622261090813549533947358046577941765052499108317797882599836333362865363568357490480634238547185840943509069182635038369740768003623632495100729617735323269628721262491942759997515570375201638324468712448956313314362249629476140226889317799201969736756108406777436920601764772033486367030852443931772784160454711516501780133799849367989304282217074578251251036501444127677051476344664352318053323190175084491276735329977983208205405814768424142366566002703620922701148704890826571511098726862181994604910298360051291849394271726693645427215801693878784308474619364228100839263305196708192396844066543926839576508384043855937751008169572712349201624654761141843415883917813352976213059902727005131564102980138600290240699097616998576394217596215017715339248621516152826081768864407605237117938475019389312476164746422602673256101978782249657874610221707514038685764025926949755439167901627358944985525761246958869942160623806312281752663105453410153700322348623039747597624169254873227018250648653096479161624839302051971205720275779494740853657612544195192629671292416622502845725812531347200088761608701252063020053591148958581599710930817511198375422959094465399428902215451978434772167065009399870930753860545084936604436498783727775095602380656367023897752868584415526786599932613035009239988078390711829649175429266672316310337429224648858068744047582846966379130834280624386884385402289157585438592460643858312583972750974603026640969967035425319795089908884748791766637862720790243165109974715509270986687158428925804415178771555608957155814248236309176515677249186302461694922619810115275591824461215356852276420541801661795454844133928926196291982076986626702340294754956191828649218506379221013634274819999271407486837813237011877916264748454405232145439158649162992885984327745367900086452689558659391175689912483951145605261665861553070132540041343389771451168662854635921430660299421908914442249997661482583861962103548117759143897048259563685832510536904267487738435938856587740161459175383325408766715814487697908750504345436665277912539958294422225964308516352558526678634720935606305330523920121569647770565678406037738378940436185039711406971624678922077967775207752808518409513549050205577636898255648529354436483977388631696675240392951795146466198040312310514708606226526525972407270916449611414775795129289975397727203616208305468185369176802221066779320899168198825870442899010721914041575861253565731406712264400989747207971393339603489420166636577463847441872219223582868293463458324255740263336740307411288849367217235222783961567749893235251827707971500144745152974735698362642596120557276700225305226055271634870592220761517949383223809247408422085612314382182255582929369480798544945215025090374868510624071796186115769413432757293295927520744921296174660321387143952672032292342163897459050446601892535437068681835478772023888089699423831556038454843646148634813782819990582803251799565211180620465033360755285466452194797636424469725186971914913361329896859478568961740399103181580094143029731477120508622030637471887040183894695157775568276278682185021643783457434790798327333129820461533730927652861044539825565506662408756759886028947305779243935299236288067503529100827996996269521861983093723787290951018501218662567509460243553385848268121246629882119181237574715839993419448413318205709222626569595397258178452310284775507955589606134651329817109179743648797231315932361208944822515404773426997964936853865869364976442219715723184133202280577555087934049043057459052086157911860979355764718481508191650366311821435277204188924486014865057948052695915345895761308296946392404043639111657980244119134730893905941892773380841432888296794824034275068400760835889576771022754511592477638685482594282244034531306362400261565177417346349071279080910706518645773953455173810255606520781517869217187712238319687308330061621296153311164801564599985646497054367229099889135014491125711048268805749495530956119398701604548184715851527718226211524234084926113393765207811867432212099408263725494725836658420822848243511510997419030525654601513588415725172214265798595372419273405162664331348003204601121446897596114247990759397908496659183423598793268010569357162003074792597884936667943071385149327059538304212651939326512266721076964406578442264091287544420193949430291024889963954859725781983037997021703907955676786199014137410288038659596574731794519983999546102886906658817692794097471152423343878078789446151853169703347527933825232346158414233719581839106065492484294110648539905686336162902530699415556520741174956575091998793632647513990212902194691528722872381582278514411978304387134258695209030226517945527396838043465432639709383107261097000682075939099292765946606074183285251660554922396106949609919424156513763807167939316474547023129072415287862691276723727182838888474881844495462593489862322967901578263241674730314422652711086060530745613937776679619384915855588243144317089108125570903825582146242382077075820969013141591983246183957476446144266446799169277899683977883501225416765570309878272001355365630123414081105185964732397629492327715379914845168866024708053920371552369363038137628012606062249984839738463181458617198488808459168143087891763625638218210682304169629951355157334185104158316516057186318842115965215472183076073420912015430947077966173604907680064985286414381802420753804054323830951729957358113480855868672249260016951254287151701641074702466205647447372066639680021649282648635156047535562623598187593164711316003046564655172017518334909958833363044375149049194654887880287383514911631276645145482932264468407331392077588225315426098967525493827303321284617758248422588235311107125336777245198740929935714294445640527731134773114486989482818108087137840236204225871327850739131389049457950358521197743026811584288986399304183226562157445110625461439102471233035769193485045417258297266443663548103998996825278761407947235136400442968764012547528444320528766890512510429101840112960862129277616490305026580209329925431647149708465491143261926018919289890333785860091382528312875315353297377111728432044185994874189224944718370098358860230168828799345806304065086728667180310190912150113358688966688786321431281428114201424387839400615130492273680471126805585517628382735282665007777419730289195122964435741877981734517711170967411106920608585576155369637986188535643593978437437727092163532133301461528625340040194696301748635483431608850005476339872660819070194547536216475390970880001945401875179399341883560915610216941534457515072095426337096688743866181185022071955040820155656489829870301836369377252188651994644104361655300860082202540089127131195390131158875952333360578436036837356289627467484546931873839976050380954902757678763530451213112934156564003281616658102690677136029990822657865432235217611672091448284546055162276299369989816831667101310362105564903870096748308272119319713494812729057498257523549138776894401230677305715666739224000770075396787834392294124433404707263668168232385823095639801894596036187657964229636451662215082572134716638474533887157025117957173903263549328449339045206927177382152812062439801137324672623543577441986052460499119042395052260981912652460486316296409610494916768394185047565345564040523726369181865694538163088331427967067177374742251716181677719115624973632104834922461326320504887228255682534030913546315622354807234932129945305099084278191466228247156719635648295710131839466110981866936676600772617440671489579129677579245246620870670532734103972335055213662130039959895990070214296507023861580772390491784947190051998371174773063806790479135246148983322580931194608204104633124893224009537799302539567223044161857640911932175978759831626476577194949075336197552138821968344075640805940655830056907431145014845429026569042525754627635952905369179994382412984989526357372929798507155681918397341273619269096017295740672179154260731225689949671004522492037765660659490335131456107650918101789622947901412732596274875426757022973933580016792740291337365641534991222783636597748814302535881061904197080075332915288920075537346856722644663197698133328320256766039483746453996251743105301532828971241317528566287327273896369952845471822661506662901313359509681743069048583673561784954692556504486980782744878070121865466544659444961498473908638809966219824860864191697801487207787038173756389125994417527737341824895461240744093356580419253641161277450619012622502545854536333105441862155599032914291669633512501346794474062636081291695844401370686694056812716106449979295173782070238505017277498653012447956221439265447367239613803043213245102041929469883950210041879920706371049617896528780482702487908647415133015360443499228273113580965708605038899140987704869348619796478295835781857484723360941353816017983804788711085451064494578489354219887832101826699349801004250132617597080010200594860646082302000302086822781364601223864406439297955582298463114543939160484714301853026706797188440125254683108011514404650437317913423518634380672314820918453088694557370416438501770471577931625249736614155215318729996917235996466686794441605130486880860313418020485750951460596199909944329738462618474669952049580951455479129046800241763571063907247080644936948500919068773869889381706049863518726138105394974632034171910994570005906717927633866063177191283495936995717283818972418791737047806755266171683503252469865286087816261758765302298965352180230864982528138521476471512565185505166421966199236609418526241500154873494130511741942604046286054578904407041813102138106019564898108096258702610704857569465428984372949718457189774002152034507197658445687604522595788541529069461592781083521689180196138347616330523178647155483808196956779705721400621890439498261605373762457905977739805945830588078380518235467242957047740704405441319624166274542790726072698515681076703096988679030459965121843971303529156281790980724950477709459151937743210272592851765779190471569342696121154976938390444941300408102612077331411053060850807240960211740838184892932832662681932246926688018280677756498979433743252876636778789165398728923277276886032194412703673926401235478372701832481378382130562398459140915726258519723575535639400207551775603015632251737342012327208649706613743126993905223301604174959883214890750872174299284137129042315426178722306464886603666145457901273286422063962391841529493512001466591019533028028848236851163711230943150431843653972003969280112837221563275846645358174889551965885896149777205476183319337214309116792417375306044251430684702920459528173264086790916829294108547749483105372255656216505370673980168702696181569164371255517504675534541833065242879271021130709829281101088680146082537552872976987913808733388083851441652847145121752114166021006255604567323619733135153796557925720131583715284888213991424439076870686444922044461640057591674157382880998732379340756764083119132499434316308941970739587653780344742263068282483747575341007791328564628241504053286432257493403854596651178700336673200277808705731786003452693370859731259141133021223249434483203815438887193667569002407815950384231895164697425301181547972326751606712360613808187922067165608742162324346531521316594896254586095236052615558738335142007575141446006416021325811116020224123740537093333247618932629808429056087319488331536433453568838010548502648061727815102343501016628406047808224824056470724733089448486253023803188972107898076924257185023378093590024450273964952908720338125578977136176834589575564242328153397566627115763382150724617039689947803017686172414827940094741673530895980031724342712807761527200687438870580325409814443339835337274140280228433242326614067474441376370659139077218273244629268093166949830075163090927245265313396801639279800066289087046860815079848739523170712287083452492459811362295353368791315074568524855857976084830318607855832067925189749032539838169785446893940895423293511319361043862328565463123102935774608371923743636756761741510792348689160128733266203985429226464467866715041910126120559941443023620033960266972470799205110109480851690084111038693140304752370519264387817769120409715316787501551225721091690789899390147788967363510684395446915102543825229484725059785013418603844192566896898984417515473297411653431609522300564684610193725110437629650013526600110701056167428659700559647160423129309203078935152061352781738547296171136055587628996760118411004792334326766312520328346454918907242404536052717085595264900083744814425838765327943454350882830610453951007442852835835040324959636645248171765838646990441460220154636649204601937379859293510857550559053990707233242001351194586071935192890101486258937948748764671254140276290132009816758941416769477879224458474070484588176248466029378476008819492235927351158194945351617095132529005474091666015545172464119741744244550391499572662083754004962358246635468426753302511431930429133484392954063899026899290685339796307501233039730782459956257365671775156302235657444818325350590026181969607842750623538147459918128530561085016515393272681745734316711625363457875971380164949306632171796066412965357498492305982071444640885802850732242147953345024130639659423652242532987232639520570096632517432268762499712117903693280802735209715681547949328526188853533227705530504350202620915469266938369169512329425879378491421309572614927017869566324503077791328407811657186803433689505929319842061860904412758869336208743620483887126286045539340586858683706729937362985022438613833232169258604517868491525702894688858490234775779710668527451639399807273127138397470613777193732408349579958631183408416392445695409280467423999369785546532822390952651494434439118653546641837465797924861044739406921499142189779016540695587394601746527623406018378758510505738010961566987318696519304424241785727872322103380856458121758400690442750968109372882666539827358275676046798882289670385865811450067667396014655744885258757276082791575176066380896871569865023802675848020243026547773372631057078924456121180259905321349397835599035687100440283535262312985098011673150126488702408529404266062210226078366421619034190112134522730728920978007495472466945935707264623407352424393814773243434206737834960160498678517426846950818074106755404005479621775352826043971285904813715208798428442865626366253774895991396445875976650006672927997201887157593419609910909971114261825159637916950396820596517351189206821475865040665708361141840812593164670990078196000231374097004003439215094498658824289039489947955851708379143098359514103922633424370704661997679236790354448746847508619398025144164530767209940648764807645037431240065046773915240115236228080524207349191493065484880332057960853251947093925405261462161796740170248925140346695048051627057362639814209230816781179168970964952454919024066739478018961763911033886901602949729082974690121151368531490942506271034334207559983348343179785067794639587330606543140463650606165811496064684979408770307575055552103262768987733012800641485841881862556821668795453527358597485911348365234120411409604289604743514591603005622280583912901048165222023356356103453352239825399949191588847185505514867844250494301849940242876034195847549843564731651816979829023317026455197024490678547189237584985909122785476157661783955967731077809992914241243298175164483322958275616582271405018133436823546498127274360790486335591663060234834827418559559257172349540683847805589201481734313123701113350362693123812788781379312175070075078949848552736368925899413411756524988289343972968612275223849815802438572954850270664296058569282343920188070973214969637357020999615605592854167991534144091155476845253615502855856040982397326060428643982295272572863516103056798446696388927274125977957367750066488395107261415980855115259233529345630673142793785966538137745612052053255714921374167919942314279510370780063936389493461795976902575885965722211047838421441375067740339361508568801481156780676488583020137299972899847802598095599996659665528677413617073812792963454406838863848079868953177506454092279142651911286146049675240107343523776829295895217953219094528791585949057920456741866424052382777904222800440292633088219618984308644954041656424956568675914264274121392217322855355319274204740675244946413280588190101467755821873064634782824947252562591039860898528252379140924673345788006187420364370360084416123208472996315746040598782003753914388292247661962795247113894329313723511522609377528668152774385446242633168305751466868447609975602659464386770964822708836227307379252775655691094083452729020704331141152326815804936429732657547401451689884385949767158994486676032607659548296343472930325499331131757037670165780268416364405156267804816920781928536216309696900528501475658699557969851970211990749238698959560681833469038085202818379811786340275236776315363707940697178521460378860158428788179610782665007426942724705241553971812431009537495353239117471437839082618895239711909329136968196822896487714683344488224027839272126577278635392223125582997697759198913366240990455680456002900794719610871339100458539798663480112146724957254032372486716801519189683234961782626092670951950711230002818216470320893034451279598411549340369762011342687012059833729067085332371419749386308075019678138156134768776709454658310361265689460823907275504719428491058776251071880490282617753966908093155001842054344138315070451699366223240127462359888282744792066730144034490935161863944253191165938403483127856102923220592054708985131505563622601154535333479333624148526304587402347794271471602050873741771655103080469192655577017633416027867699627976714144084104951145731527445528622040018669185942351845000767223184182063011839099092176009971683292069366479452718984348261299690115673091968127342755826214335156952251962295960932592579110264528356444813428313851939116554412823441774053403703726234571657079686129393894303915733432362851635893554218491014420757683420241596787019896273925193565542936575710892632398897358091902179296114177510947538848762039157775865875063515924696719578024353953735487390273617110400570857434504689660879357342882579293150846479763064045902314388508598596554556959513210019419411887467771583670346735803239835853121112616654512558787948659692652381908575686587422567350292740073671534332021111174135293146186300212720605064445975894172626747404787048971141200337876645865250505633043773229818043280962762213931557552317543426409659860305382393386860124715070532425422359840559138494241648983820484084420109923485078218817505413138725181437452854007966971220258241178742326291171854111304866910425286825782781411100750623095146975471747258976791417294275456728563575112084433318022620582113788064422566720393146685514788916517648254724938578154877269427680593990272478978826432083892607886712472558943521556354860073578921723954738195981560601984545136084358259081409789891824089333032462479517730733032510972810459822657999226702898712096966825994280646029887702028286355790609306434826577984105650842459240075181650985691350536590109094932468161673864057393292078745895772431040440375241403142949669408786294857976265627212042709859020247423525840095534826249310975323018049796950452416751816365302735387701707701824670666018181811955240713647284965520584032346459577766615555872183017172632718621885515115188772406226580857695013837598215342176177458936653158951437822610276626883621336872953131177906545905328590614892354348028668967478171928629905698371615321052774200177143126092760656228855589475554079874512418518429802849157407826537438875245240352819210483858037613552679428034865123520194702842680885112737941626310077381554207139427729644338218906779310430721972477248044353029387998753611223344366368376216581059484676398536852564729224807491969001745370453202160184840272451454080935300279749636836229935602501039251725430035956169088483546849959253348690708097095638903100265171377817712616005361816791256810923846147835539765157165285130307590003141306653391134937958744495450645896749268391813975614552956416150894715491653781734346922700265416960204813332007726558993569214329386547955730659581367617556555403269978736021693504729819782846071970530898341948977049689911873037783343091695483493812070931472908915633221169958399543630074370810713391763686159136645427291519748366396436820244850650272418208744789661305414754196197592437886616000609034277117139115324055088263945551879740097205578689701319106327223109636028048175492040372838516025630720282629063987676717173887826523824087459570859857308943040672891248085298863682790108563834486088660397479885103841385129275482996356154906738247850109610572569450343186371746001442033562195403082768416535746572113640865654255156301961055144284875801232639781288904388410310305105725878255045046475721663359529350320159116493203169783040602769564409230544853873614237989424986708060038672087910407157211600857050086312356012447523053111114117644154334154697097503182426158532603948451125297835606373149547324357784646015260425664238563245456860377866531470078057266559543250540630199993472298759322387001684683575636671120326393576581915516564931612956285829160081448535390430327441987411298384136364168608020882085550019599055360366052359372377676564716072894372541196254558387049292626825336505584197649064851440952596611303168156316611316189355036460196075786160890063290656692138486465040530479128477733034659554029675774440896040410199952455708026552973655625197027957627768755558851793768904120617630146607541766949032240006312168654208383024540008734321371512300747609440384522657666060754483840743904329830464408128855560406810516609821834519835778029737689849528133372294294581751237841742392836685856577701092566259005322590185918494623915211973452897344171645752126305746604648710604281922219145114351632245205557797193696314495237700540172518383468864812275705497825286681833840588431747752558981334563862922065963484744815000692275838648953640905889602605080884384224796890618673885456936972681935953803805813297282806849415413271306909372975182007441132346188625847727808921680681100338879077619390089781779883417242012829075847590846020674815750071333235562820645690465895200424278269532433412453066171025737905051428682116983980879135882809549321686709401851840958878166314672762351049531507593067747975051128214132278050938233962564113188490026717043376751420973317538273257766606931301394932205722234238803438657976565091193069476388929828256893034766031083744581028069415210785244599329226442008014170527249263992947555963596893807213293422066526881575742540882771828279240530098282336058395779820548558046463583628101751673426014615219937848919189904902139246181850453123802770540322131181438401159071408298378958315745447316272601061763980908912349414881578228984723183190684184455616482917417415352108852847829996665621531406420875791443806426315808242730218446749226812366842682420435255109909525519867151647415456330438272348212525078075556024500054175590538227722314274758040032738349001293736834371067279979956046573492437037273735563886059777161601787521840790187838570140431319602377392299054383086645984889583339333660628258464494250632222018001011873196216798261807109470375035816596533573512752270521509425267140095028014457898486392057356556786727380024504967635255398719330029592567884247244716193779123039723109036701219255363116062424698904694160103448463147470782978190249997062901355099972227332399550900018491082501306245902235448181249647441930645430959986162415185922902691656288207058753421727472514355756989778586676712783381714771625387388083297999632407059586538939641521407210389424553713391719089198150020249319294415930029019045212927118937467608585593017326415325622696129382018434148459031262060374819169345328262646276696830933636026657557309433025924028315322370499955402300845284242315602373043267595499359576675822615546937127624067095577313791560202943638494706656276680685936335879005035465130756868921655391120501130275296670708680468091431452885514726791466898194979596714152889212524158490813624458411910247950713839954968565791368454623123544909515607552028736040024122602263422001332918218636258773680247264804038874442912977475828344853067730877423237168852393087842384896695074630054971037088414572297633590909121184794933637218823188348582546104512471915259773512873216465878516261075792963195006039308344902910267712373170685349758758278904605627580147119150502793297589870266335726177901837840381912733293041952999103979070533250716624549942194794008549020227609871335709083998214131564338937738422748932376561830459753785960091233048270352691329634636856597244714430227935476978286671582655344355098570171255777725970026600087653618323339751933581499392773983127605724199202173641716066314665737936225810725987768610049399220023503273261010501983152582193840505872377922101162623747561475032507894852885045946915884502198550202930796338488891820812466031236251414241553622539109730352061041927447464083928406730013735607630214887996248701538436660965591214550457091744672421520326982650720985711031401539888417467259811677352314442339398901200032506682760414690759502933714599879179990733027753512549836054704439306106672871159956272086945875364011515385617537928197315828714679069026138606050284905135142593398241219713093546027371687547622385369510612175364715338611486069563630262817339216079918374461495682637831186154034307368789358521615211979460516558451071865891410947463773714369753103018461212082934756565603649594362627381302177227540608662726943033090479636703698261131138300344381169449034218126360853269976438426841132055921076981880678156071686915691185789508467724278154877709028843733198981629565967726416655930405585304495111782201064633880821013369969467080167448125935031859049480270975660105369704806757273817268859618573574277185573847554456273150510564554497386628483625932369891293498893873569228888433224756052820136999069254481215450075690872088360093687498735942947390878962870632884618009552454850872439403017119209484197147060227170283060025321652712469607829343996053469921662521009821536744813264256333527574975892852506136659612420385192405082134603637160898517983648803004994019579563975908146107408574139926832150598016805704658399879116041656611553113885958534812629748234128137680054235729113726313305947936193923839550328577713530181844971439863759901873018183685028755346462502435404474060669523803553922620795336001916393849926912573714176791960586335137527701743208217263470875498901064796417419685821552327455574813983704145839204937661565695272396465034002454360122135694471976151941283760396731949142101749289602407228420898615763355671241277167722132712437830611165328046478366034731796938007150861737268391881188504784872452318227510340171633838759410905423915496119809794181517299674839049780009293928785511144625307851631684480778743160127462286780900118886205258546731260703430139824034304430275406587823625412657027452888715577580820230640787577151013152105688565962243319794490560994927590030224487169925496110639214918277689062907408754956921588031516596692969152368734295986719623423282181329645802760202081591488678378049437717153807972651567501985252613282567749941102688314133504101611531469652267798508699494826237378696841978763547963007829385123985334110206771727198960522444763711407678083327669339751991867636117568752111635887461429087555311462766071656498801379977996807664232691849237566742137832291325924127379935015582371589435885937585243770070039436020396029732254484787721356835625838592311224632277628633783531368314701210584904686535158865914021665585510214678353430238594367498362341962815281553424316937602522174962164342676898044583283849589277161187934505924736600981299794931817496197518682667926116249684111268198145776896265709261659793577053436820165103121375488410115722918521609164224405840167778138130430052499155164796565877011654969340739450397723604953963023201343512401519330001440313258905045335043334667347178467284167714531681797035177681717982175415694698839640995628037598099090687568357179851464315513568578646206312115024877003194153108602984149479542355600396095114833834632429493090691009682975001864635563156812541921749144810528076214840319748685925924708900845153941279610447513866913124928192971266997223257794152740964716293217355145612258416256608362477781104646150902365330870428928540982610102776969743014734378263184343678537629727414801047638303614000182296199567705046969496888881457942014343556566075624177183300940733184516663351459240784207612269354719105345875488342183923872119507547880612635257055442589402511957085918751008630504992131284090916284058279916130882654385924303772946497681301014510561765175156298303260760825712125421240106839110555918541384163978190260811443936010714867691274241348751135321454920987324013855417532200684493956305088298389634863495224231004335308081821758658798365320319897932120526076590379425460998183066718891016739146243878247717262448186447774642872178601845425957856148830828828947949996435523167243284780859308881001947075413494467630376932306179764006121438664148440095114388220979108599373406566807108541752797941136978947128383782387136707857715543503254939787280284756682923982555353719075405476064709796309618109501478233319217712446366112850295839491831781641714528396537448445283565585392350528424818392211142939510020274952898180089341289058799297104468604430013928219218658180670585221989095983029871792997407244773856959675067473444543445953208675363921469391435548092188514382744142607137884074939674006329351166253138439893824831643180351699190772148583382671543071039362955891190867927991212975116658263392177488053527611156430856094342803758811579504407712749403472209966483971468293806764203721173081138644517243684331058384482439558342013107973428082873379723825086751806568645825074370205468950317018780017907107617898848915303772992833395204777247155899036015512550387141297884667789188761004465380394868262798261678601686107550556531287698738769484874219459076539043294009620043822241363825056899840703869648518951520605770374015849871984653040114317172976351038055690249283750585244077169273946807717884107995775123869444231794250040745431032673482636544791101434713046364036419807159853738280916932616501857642192901230259738441840043245832298836112481058396271945987269964221403121300147074729178138408307115086306574982183858829871448246112506755551518254198455145022183284324729734433480044996125122038832055939179660656501625023220274528302818084201883879162210096423937837513390638388068775168797748814322934341444722492233644254058197790528556222109300849278895355011083326034267489173327603089306252765117698943001592201905794830183161738389298414764661435221026940376588492205949464809747429997034542771307719575566939069566037066081324666108537617900272262063707166895040254180288174969977416768780645162386095908847972557501158480687948950069104689654288485397004007085746142709855431425605724571937190373718777919528434674264763713795301989681938358327394020720923872899940246972364591207080159073443472280121428490677466259730676563222701578163124782339673247842389279645867156112310621306527069975797334244833811460154470518535354581836815536017685456889350459117996708954829997964620961657739720563123822766738355926512900839532259727388149164660756108945191604023002580191507659894976297905721433492996972497944472400788769479465255386610164511196870911131741329861458831691902107062611138575483018343879841185085101302351274962676805109343406753907037664590356783066952423876988901300017204751713900300873252011501220984455972430776652354251634175547961517346600661455549847447176985354528183489576969388801497175273311168804415071779301216718950177716400767329546536893969858628297532513242763077699600615189089754606624919529064521056517348484931007085131501805539355421591261875153069824434134958192435070471160686800596766161119465406078526967748051938835538750997081854799432505147943211376670435577307721588832999455770351496962589513291414699805953701215438188409463976590445638140315880527749322779441826026456390448624801447788258195652006299642978980958983262373548908957474606131953477284401508441201946270823035011697126890713143245344664704812068435351893229582298637607665786821117629609896384095020459743448709204699781718661563283703663994083982618999147245085143609462363150357285930783688451936348527687240840486076787694186023355184305175274196929078768845074716227466219500402014396247652674253029389999866642028502169166679371387276430067236895854929878214092797517968444955016577709281955944561088196481536673340090428279088904634247227584402198266208788115847773335187791873083150476740437731190938007378813236572139477948852936505070456998908215567262417588202257187385856647288753654069449848212153781427349201569520719954095216155576907837730825121686179401338591586398160465615739413406508416137409963811260326381282646905797317485683558973517383639082041897565865523040219199977311646093709246304928808784197651225077861381163716785573595625555485023033652888427613191623316714942055175715197112127562666093602475348105207586244674663334648640408097618889042839803331753745581142674078300915128699509148391478651481819684959182264183937345709605303585350888084469413396508460180722545219594636648144946288180959769097437542111682691399345956617991412013268689308249117462028526171072694836414102847558815161913415676306768183004661114366660991129143694906983628452518149527024467269255381138550603928538218690744080289773939142868894058180197658776503558314356121330910126624073769924362974920968841294021210721419894989103230117658517050142897319405775287084443142228973597454638285347383889191959972526932332561817642782089393672251437336032667004578906613863386989337769309230774813136362859546645352750774901435465095763229405792730015357889958689907639501058533824858343332118193043169462258071788925750804524558514190253291188265367806215649740983967426809543670809304303532093286499521222803095557712686614055149067456174990457882987091781097588562320476654340186980587652432773607090635302251012043238444056018987364277534799533575569415407414361461350098600667819371350635538349253824211820847008670868299574007733703844977277345772682584435196340170378261151738748471737602535491032283631522343967263838314936138419315698246352835621852148957396746251451804386884937525783049936926613945037584910487205282494584859383874326101865694846502464847591164169150005350992624374729575450250560732328563543706113096175037129342345883634019375770734576952330469611943366798325207561438270034269847685288173868946537827923928523502454160869052334272091904433489444038641230499569689941227574761678554491376908042021696442690309725410029967119457819239553940714196383471838964150403437549896011463105505581548638025271819919540538200789228317683026538332190934232556491414521799917323143979368338868690582330401089742169425184411717706197897335121168944523753151049384874778307200052783492182012851885482210965576172872992554392460445045006165835138551566572635408802648467385048442817976263679526494381959676197676317813427243778427628756954595880039326180354905145065257100466207182688377183909756071561088692805472078416379548941990693924568369439234080118687439844730989233047771391732825217529068629689223501322325209718195600432499447950462272453049268653623196342311162323777372284285047897157479438569839670725168378007530273908849696663911149089670745858658713311082006134232276163506279261712857531535758623667935068428090342348169362475269893278626274437443211004465469045035904385164595752907721024334298514236740560382470664299743579734468386412915356913012999264257745646705627220495091748388347983855381249205495920826587914908512159055137915295954830011830467975864083781654032823647758393735262732670790758025081002492261281802570611626060741681926094356908102547217337430546247871775120469633301240276998993292523085068557423692577294778089747668449224924084237089254513360900092267270641518958635748819777137101764714223640468615958975047049582410875244163307638398874456093752325855380756204308269925570552485837207268681465995400544402534798285329503735743154484718580710923498898859474106495397586032326881343227570225562194296183424523199312424365140179800010990670721564948621430504786062876790230301073862457225590260461018505617304562621621762014994529076015129697117433112001993370108032897648940883410400414706799818944418621504963825286310600189434174865623681298892673435344396300215750558627346616503630246547605156331610666657380209097492778149830195435372128256962217128951370825714451188772437978441433912242155136444638093183110591620069744669466116710343009157218793145721955747599354099241922600096018673177852664298291332664320168400716833397934941282870931862734627470440220920645107134399110480723873405250342678161063839242316397589986106775488142937775987844185137903575331648544395621556424402196729088653250966956321216027003417493461377163249332695813440771647894965733939381828542920448783000846067518696213846770406087512727834797045551286099604067292970920792443036136007879136505123092607498147929143454718540170265363145944566548223822028355480717206347839592279334495525841478689706455193757699613569442253854982991039682360214078274804268016235512646654925247556784058964559394535431491823204845601744282357598057054847763433911093116348650198875924393151195333240300299872750497411280069071352698372427188646494499433501930209177074387398883943057005957279920501538960203531182061916344454896033006728684456538373640434911478775537782186170416401514849454100048934229782978599753600946725693815340125629745098801736458990627772101040300261957016358674043741921588052622902912335445776313218849365938225034398119072296648526192226300954623727517757403285877694053118467358188603571854931380033852055203976805414894929853988280947417438944720428840436139854169001815011269892406965539256947577068518907439443349046250694776986744673199294968249395356586506433566847691588056065056183464267806448616511338420992943898757589913577586670051362452734999209437200709731828512720743671767645518460606518742342977183018269116027589322702029467732951551480620362654972669189981848745295580637933725305055132675109535859629919903126869678988904989109498261053558276706503131627929867127460386828394842826785455135014292516558646117069943954712958360662846357322244583579123663070622409420784305260169226819283570055006964993585980414411539640409869054082820592811109820900851232964273929370811880987955574701019199740711001012660834933079185606294046717190199707023106561879509792928191767928176529727637503043695206835577630278793541291524437038014124442550879254124996128007314003497576353839721600999300125722225461226758967614811466338456687390313386193805947559241052042937051316066778631916541068807727965995944589393377246056055191789118287274998303903778710518588572720975812712748080915128544919207755290565443140718694389493879148331618932298577471269484631992908515222219682500863608358125487254391077916254907807888317787929154041566686138965418039785148281808427951458810965720313899531991450843587893651848822845695272567027119192115306270131493640005199586384480067426194606393581481883354528511301337959802147340583154511141170235859078498994550937010453739040592348827137497508124178715582909905268082962737770529679574036823126275663772915093744554495150554312099991111858951761060951779450983087561204578641531898099659281206511155450905724816101678297904262785874183140287801550786272215846480450640853617731516072733231756881911785482590804997797918622978681289285016360804750665980127501233049941844315353001743036150859647352346207423869506975822881057368244210183865657516904028828506922250287648795146676249726858262101568650365876833610692140110693588305604695459221400211463987970868950788171042455384420413190508251313823002839641974507612472595124213015644544857331719396512874878234858417953240292017988267760277236636458289704792770296463410534298944376385282701269250171734019558244235402575781773824982352570579416570095451840423926010894484097004983355375586364289369929348650349905960702129096184104236539743603024842586400540893697736578449947244210422852679565607050146476257233596063876259223894942434280650244583140581110374518824842730650107682056729135579491735736509732307806517914022752294292526147296120124237762107296679053722021512888716124333639767402084524962881484362658485915551372730733772078370843108961587262507610081665133567923094445529200486525924935368480989559044788253651732075895578872231344371161174461003042968040856888554775907437951762474448483390157189831805488845299617728270153813402722258572862079047703878876565645924320781195064256157209390409551093392310457097797845513029082035942989991826464119771227522006782436098614611134201807381766391741915916326061717684360433507510809101045729557213820580610478850349731612461769778195574891374144231725236562189592699623457691087198590468771950411574556617112054679616102502333407460172410849948090855396802766606257210028622174365239277718632564079077381550218915138381013274824428056647028832607749103410852429456107581055809620377668179878528020711129768244151073013858676211906737854344882441444006613119081954608241212118871400179839005165522687759651304559567674512384498784471814942861591108403785934910003011416417935139792273195239982638877079732194851255785930821327964350036764694248130183020203232705030211165393406351907866351477952949001610477464135042522539259272933372706277022726019467453422381521011600080592711650219330329471947388301207392271469935069444278789486260965984425126616247058858479947107919806369816418172462142881140423275068133849861320847081467925241620311563242903395786742001904970289325085302401387315558159738608226513306999184096850845206915660472615028501831764866296390671188447827114371263713651370263356110459697242546545451838678870326161650092700970887209159466976735478438719488915751481473381707142768517063917170229143661902792924119957876809604019097500977981922853448334349625774173501142286797512461172233165287980470595092943968444316049557385746583116123065633642167678975761717735353392028646869118191019770951909282741497615286764071569595423676734432736468663250741497515542911439327688202519344665898945091694224688918833158639844680914154986144370930548490907905536092214718407921562665576175317569501714368473652856411811017846461010237142735920935006065487551268827326018851012983629267410801824353789099287224776827761089273090390991244230717093721848157936045009519312352079197133050784508400514769527232572933268249048118245212146869460980685129841613310794612854954392834215660315211785739207787536790840255943495036058755058974276105742946265725485244493353105901439535712194607675276771439717707770005486881137638266183386634192866801244385640558629877244267922790725043139437483238462459794826427239381384969168991371627696282287830906761384003020433205779149616754956593358054881784189625892967745266694329342127716676919256472947060876192730198760266939058066115963718359497917830947291958159147934556651511579837591487843876233338864460103597535779686933168560868396547594165433919841623806636031511460986022491472971519128409464297270537356882879351570579713253894657078400225947617476252198287371969373253345732951141841882317620992501780492020628767198313507732976571606306948602797357125022107831148244086915855095377457776676777976629292852895775469421492264236432498016765615563226808289512331693973873721334545811549659406902825739301614726453493450809925275028804466877541047151660819113625097052242711839959351110420050233532343008143086920352550450987435624316526065436966639523042493854783513789685733902942044900037193747121864355506021905610195960823942282074299707601387644925201606194229853934509356947306036208856792146728830707374553984363665004486737262963992032798361915485569445465316915582998818217769945474323451369382715438566836842411750897399786754139030302638640377902631813198569575019667567024667909125139428435747234326656696086044265758255819086849586996603994286843007519510740038199252050184062692912793436985309746286026183930123269556242983126309412737531880379844128010640968033885206753069916191417926952560968420573794924374432564493472803888497625500102000607950648706392053666885362670209313063899763647950789449063034879925357486027452674239550426546975013203271284937762815244006465492699062468967102847956363758177634182525927277134391161315578476102583551320193556819971326334893204548247149312552759036273590414913168121390916781663859936393263114632372253616243390927138203336814243464438790079054329433820157464824281112450329792722128922565985960691402663188468232914336556148628131138154116956736272149151253510127096842225986395338165117696418657458057771070137211611815931462089814996567767312562080817600953053513034370135852618996655667141871274143527960567693755302069932866543115012318029562473469821522079079226650106271196504432211067871301731117616138226158684305552756193207499817586055905643654855814694985927538760785696489996251646571924208253815063378666496793791804517999601625175878399445457039983822810103746200030674274507720970504922033477719170924444502375861762209042398341409342372403833409788580338636509121872469662336268300927124811999072684653120696244113072308548430520998964218265897976111014126058088834398087366944552488389531807986174798607623674936171333495295198447278716155106069166816081559783010449767907529494302639447428593116199227515219667302801516744927875665885120646810037713494526666134922060432766447680015965822390103509577656134396909417473599033074578701167235886889896817896394609365290759734885288979104621686800386235536837655681973293198643123740732315835056382232043610372951486029916552341702323592465578061016282494041301191753559082489458393761712939102320292953423740332456273159614233811971615800507963231442554219906429261082040446072460506925161221067909262405872644185094799105301501567469700055971346445864867046016956157428698889338902763884947168941659358043551025308718902529116188719980914291022562947384682156525690037320389174184252581648831506215129361548076166476598862447600552185761426109941069552322949077460137824071181350959503498563676331442280297522708006671900867267466158147616895328488899111347207831887485275545185755266993268094097192931025536449337889598497058988625185467424309708472943197800315884785938567705258764653434191963081040950166762462074041516759394103638791041680389442665586870431234243435669860607215800076613956079959353008935668345176119652228074120514785492702534715249591958551980052081620458403050321583734834825002869955385257977338446552566168266380157492423503565976647485156942945268760556151237586432476015556007756015838614592022104921438699209997891760169635282523018862716500362724637616250461717245966059750785622574791223413825259020589461918702792936605871091270964587162890071477962136526515694857421131308422487538445939462989038633231720552138436153844943829518695667181249273642292586072104969911034201312915048487601066542048432999021204268654876699098888320822000962783660921967638367610665064059193370213686135745901532412691131515809721414656230001124780136994151839346790024679831449049367930499604500776043812962279875255668302311445106207874433531306210278370392515349351853210487221586571343641161340619155151712603236710914283303916587099934874410513833366474233256313490809224210276032324293028135772154933234832818064275002905726226527194048032673469525811995659601802614719078013324613920743297023396111789355550596797420213434237093959924962765107982828664000989590914720050155396295179667464742745318588470603765642526080560196164375228799131935898954588522938815284065497839806932971257849698314880828209523459566822538884081780092860111258710333419126766030134023615906236795272667786487737097872666790850129598356428629755464470941638536740033735897367549219670768082217698255379490154077988651115495469191801154089494785013352839142449475798294199751976431437924052946648893937836495412705967701798871670903036397865333612644337187164769997357357694814531536103206577308132965824230768927677245138024063236505868017273636403561993575926875176581524955024836067948257551308367132963262638113335248037056261151620084735055323486912949730665099389620228478453286180273950106684741050772506583615523884171578023914079513479825825855552661537043584426905084332273623149208952746310952584238336685651063724803096473094280932610792315463394905250026082542903813379580726984764963827005078003115864459539858862451756549440692254789561967923304360948500942480192620491410529771858383574521023515632275897810865678554141617317503259965863493726231540280785304291473362526016087135571675390912012067078018283068773685862769623160554172819918253253402392966913203803060015037743268318300871965782955261624460134354018126529773176940976899101348676774304215071820108231072813344130058981545583748793232865075550887326136915518930235427110194373373149477683083808575528017196829417658629501487115489853039494860002329187974160594566419734226300040911519640630944208491502363037916258556656333457569927336038325125087233437194184104227791864689824943944315324371466362566646800165912451804152478023831247133169657718007596874120290864629579450295124254167541767322213835692297768166922419521396247287889718037182780655408792190264224328751700758125962269978723582656961236052825103386536894973990682633644521034648459807787586820768710879894979707396713830611475450320379691564791779844347315723048203036862179982520137359049674891157591514877543559399737450784220258272339449771749903129940596294102158631430217185724647933099369070375208383064125298196359981149161067629818189224038889280996074248977311379536025427056040336243031497021808641062662557396587126070671067077923064082712353602514020081788927373960093698892889391980601732852699950545837438741819811785858400540181680681914010314994069690957656914086906797361528562030403512949438458773928290935381834955725351480909043270395554792481363342283657400120660212969746506394707352859071929370687607938825477178686434369118181875277980793635558454781274625707755549356223612406935661696448577413704940666958454399489353978138820939727682431638382307157351329884407600120264164286637165192033573684999263577983352459924721460241253943572306000232967220820932943209931184033287485347716293308748600228257476000675082508959648735603974193597111073088871673794687791819328661371752654803845395791733022759259338774333194826998556501229641900354395266771957537738544208726811963760956247161380541490850400106779052117011102434224562809825032756829138189578017125582200866986574867366969002254602024657282053789738908322855223882405345816550610263179025689022916884617012403396119474604949749948145796311596936264487566398575855743465650644339240095238059136543425847040720484804896043524253540916008170330835797231372760114630928947321633587461881687598326261091942985070840284393100746663892037764261096592971034101277525991690864219181604847678090008567572186805577764317297523145468084620700252015320105530277629922492421923005341615464098286704895164576376726236357338026479572944433754074756034587486842012234623605901936000337302242114068169040453784849759525857566179138696205187410482308337068781338783917504532962555943611418735988995453742890909412263444310859288809349143245254538887989790141080668791163466055180157693561424652270018056479539689010496263738448237355884079357698366253838157917810953518727672001973878328151457031985231502451461370299157269289006488532506251556730519454571723951039963777733894163549183200213604350797279053795738996785857914668557299103933670898033404064419503655865619861318384711598717115006086993428341432546216758859721290881091503638066119845542795017763549865565216756299394750755618966320466516985596381519270227188540850239295914087272090154844999802105432451096814501788600832645918706261143805218975641999843071901507795081734347539915596695512747546938813583133385035287842635515268628836424813335891446039080521361820774491564865239506287759425985369316464596491737727872568437068698014673059828292817605048069369500588557911458257249184473358610018992678565121471498117530980613971929074960225727934455500027791993096363184104462215877753960939834061781872528089002833072867257958836357680639490589088721879519377556872464095031521152644661492439013586396018009954954347492136789973356896101614535490896659791897779306795024747355780849634258735591812337328118430253799172830534873137805530632796889547739769990176868693562390352933255187490878359652754119829827573714132723343298598349046846935870567547554390188856959882111904388252550156515447822066315235048483366228462249560849222113154614894275682937958768195865148035338562980776781871579788379497116259781858031835190120837727445199095541913268178451381388312220013308363745207879087966615101451605483198518608651881684817158259979945873919634002025909501917565265730358145930253595324552904172605949837394904936766083549367325969463169951725633089037647486224886645125018261386856992496494229249026720579427823862290922928825390334225635179290210039921299874880760976374403835475631199617924994847559437484783603493238695538956084417797204489456745270768033147446605653204982204649990301214315583866300499723075829547389390418302809744373755429691307391355420124118494018348286215981249666662465715171460139690111852111898156279617785040322906229441121199577418280709677092781699492723012660868362729726183776267124380910270178103956466353309631563835927290964596452261406954655984579001171728432381985040696972776304606792768151455061891497910829040815709831110930332649533371878808516247114066641416503505465845645186633703464704821037284968399607445049266152705463565728470222648258975769723301083248169225517459373075029221878137920029668721685976289688277943993126762702973086721125351429667271418257325239492991896359601456257391585867535829892089355722740865316236783448316210902085928876212538107788373132008504486773895575893293747180571902222478677956190092067099710847012618282837262873894699615794506125333036499236126383476437739123092063265449267723737079923741162696245907892602954381103139354152321756225893246988395228840734566521077055558797826310207279496616144310834947208569199127398267708981524069987203452477490139510428166929620160914706098811531968205797647881648797890961338364994765574299311773249172207912912077122728671021269150997180114143925113767832584971044954390340450984623321428875076491312245424923343716689797119563674500881604727840881002348266845768307174303615887492643250059485211343372330227248119320761581296912774618799188884774942078051243888193566067373000838894781221368788819814104434536069485104418778947654519857642882386394920599932933826710609276051698964949199871607026311422836536016755313907995440029890978414809757136861605737584817249586851427593653401325497178378604442909044099076124907031485981984783449618234573900613731343473691756977924095229743277046370994916544342425294292317596808475791088268883048556604693140883363037550004867346071426117306034619231646406980837870991901659748162712843145546719422340098300511251087005912261954295452705785176089575748376579601174257748954444822520250931305405438705061837761816592352284958919176357491818997887636046661606338646826903747165906746357565320595061153945746898006847299000936043280570033203219910142310605614044171446394910973542193356208922456487225383882336324525499423994969764826111347074572704412649622945005980292073785060271155499083095220640543311797889932576028934873589085140976788064883394557761190040044620294125344657241046546494353740452193275112782304990070802305996749926706091207357125515350697099185142121708126353748951806108722679522321291364419467609233792116957758011554788325114998459738676698316707192118478725265043409789378649388633185789371078037616894179756968364171631915362710572735612062460032161405991717689969023180584613633933170169014244689886639253088000922325576471803907525175648770061284931365100953400520246383396860756195906297665781682703335922564132812156361321184701828234369556614627395360106730260144258063137006536218522445504904158909313194787190746079300611390080449503946604317473259451964242030874131894326834420958539742195962993995348335945395441702862483824577749505190487619115203647704140541048964037380688038597673829865854256459507173762579307977449707290635760919187320375781841927491148716636438529821621992185147631830527940381885665846150712163891405396510103398910478504041990693271941929914185071309980888130411262383735307377496438257580374451619659515297412606966108559446769276481599439059899248825387705354108858802238996170983776581803343771377768160967827234307664823583769941101789553853531279534552592534335565290492810063331007797374479155195728017817213074785854094260631617290709333930752135979163814648578684910680100371211156143826294663902863847479057144198345214046201113446565440678254782738477308897759378536965486482502237284320879561151835653438806610319924558708017160691680226830408506294604395175664084314319019154430777073611722582693270407377592091486346205644590388760850406142040613141982602316237095693529465498913205203345889467895360613866329859246121259111900424547144644288193451261860444383932572088837278493771259227083328010585832899815934198258017609870945779812738781172280218263232345008836276682682776352349433332328679846018619644443761560377474883951800762317570858708482708296255265001262722238872344696384879590357156870199559401979275248116084021273185528564961436767401563515819624507831147052946043937330523990033077346120596922109324187908442180730579318550919362432262651203035898069891668528578136439715406294631564703856138756663377499927020696976861346402640278531536672726947995013133557425790824538286436872591013545872922173287526064144972644225797084325549787906746708871771263603123750651467307602801021893135273420059044885044792858642967949080666859503963113554824634935675962014876288858442556886931581493891768113662166515752134448088015721137924037656084509957185165254159291550133698033992241604366199753388798027915536191505271515560315445446912006657906944764066984451245952138491364283100102125116829714566889771723886749448962774227282925975960386432300453493173300241102924107869866828594790748763485943640737022648825353007318486150900337694166389864802308226655330420943650690698838931560388396456972592075809941918212789928007065814979979596955322769564133885191781353513179993090687287670523197792971597225879657578321298797779024576903716322517537799017681211668659383105054513253401819576946337057234579591870971081304712627670242006548221611545369784229353010599012834969856816996225335305226700276092129294807163634890301546286231916710081302688243341834217557922089721248103362312512664631466259048441192937477998329215686670354938259419346781181686725553672032206547454003875198018309462151226781492215663063613334992725550990227323311684885822491968594003859037981761055365920652660132487940558150012863453945274086342183328919401278413371437170873917741083588750805312283782076620427358993974864701879524485545370101350093000802931905074761596981402736376756133706382453171598686445586989452728117948249215024744483539573479407430768232833563478508962123980287436630131354906010213425134900072312209764242344267351541327504112815553967240985394899503723220234966941854053801592335714473106840460408648213433722193472637555728873296779579338635544031001304986532587339644806344103643326714616809147097867981668304630444805401736810888096585832135245751062260369291992698746871603122494702022021831899680023152351099803345361626358620861547359438384684604117854812284420550910007041871647161461775578080872988315039201842013855658847894143559968760772966702446011015421327213694079245143812488552196687863982607979410489373396964382102615950382386077639058881573215727275101947703248574591984922677395496571709181520770797803501131449819107542589041484571457488465219107763469906759147291752734974671083121712733864401695487393495988030591182870097182080370328499806063606645495196594783332725162851938382801503462106170797939650952451929897849273201629693500310201499786073636291502979770081994707963610948960475211235563528720519488737352010130660204566178808358352139838790188385617367106387465812110144965822675766124030515849033130198737440336271476341782738450860489842692298659403978293711431070441732614414292153274832748578491343346222094826530350137046460902007874125767465421877454686623455340099770943266296196238097717238859106132874322734953323907164408279626838152306999162218633510009760073260749497286829124174601022052970429200805955087619566651457997499665171702608879966406595360408587571477285994749729356707545770078585012176912469584134556276348897540315705808028852018866421735521773770137059120553241357411008175740230286799870399783419222744185504011730685928494621912562981895626657556908795084071832786908182227361318637670855928895105643905795464638352098944015868095041764445915226087704625028155688553953089715793928400317066424025518677943769795691381453112262182988701302395195467768707390050000780648169942419396981123359852923661010129618530279588837864671731316388744953781498544351915962041355216807476616793008609023003808242976898792657293813636088621490907913792330524455547115069781494828100418549452956757122835264609740379169281881730257337290495901766897290324325667671617809705996964271176838884625171714206287615144147327844986417655304761266020914542853005920536182913466659633807730196337775550767640845840942167912924500288311319717726664069582250187945883565823926050656902954922675407577291413523281118024470075605631585670200472295374596456527600363125922657913329002220097219446206565774203737329769483728722070155008957353890249234852573469825409317283446463880980975778156943098362099683149482157860386526641031944616224732675744832359270802690283814053150849727428218466966684424208159096479882052676935026220665992481077627117668539244253043223976963885204844746846711014789933561538766934053014575990355692731321749100414967991927935478598024697332785866361769435630203230146175012409159721736574246689239797478150096614261617812668415851391487365071444386492996892109795683787521110577045462153386207704796434885540909788363707012923912671177461354338382426207865769625429812578307940677575515102808592509224771437508888797036483123136321991237283394730248616466884645540956244946908525240227911746387484625087665412052890449027686756308401903865579532723089654101867800584934419659310345652937578604790112229565307559546078066679354864896653741879102013904277066875754577796416448091612676632023857586411970109115403844032867582069821166453782729531505417816417480569916478586332587692335980724106549371819369103610436972681385765861069941577149212656311864726444111470875521547896389797336367464650224622360303341639464494780264225292714095796759106711901760462111805096367400642826466355421949610590840384224393306874792988062251090996485860376562587606206359265402949949766204219866046596722979408122699629505036730213891621723517475602080029449206604964624796586701872218716985696089096930484714047316342600433815936933691117182839659911406714775654194176875807970408669938674943142590080336122492999834778005977443295236050670502368822787354946398752763082612558535631882971990024544149066054626115062403617830872203155355959148521846420423424849122467169265675672906058664408224651651875364281074787811148147042974905251476881411385256767794869067572725561490519200572714090471094589191606411558382965342102808896831957908914295110047217080064813969778709279303872308373491944720043022448105163895173039174410247283993522751071970801048305039699263319046166112072845403128252613307513672881874416235810979327774612819584172002047547751397830384610255279745568438752634959759846050288062061365086978977313743433378822167925921982782364223323434574174052048336666842990512238108184773778153751744990696471136306434732526018454984820031001061422486005090464181194287965348656536942990122161336664906456594781720797477434560026682088638392670186428613597383393803824286661118135565786096774492576179473637095375946515315365909187720862062172803670089527612647905624594262276010483131451786004796045251712059404380259766021875918768268955771599129648506524794327876049624725042210032099313674183703676738072946168019082338513425077210495223082773033836266666166132417199027541062477797069906361236132572199176425896161430457390612039141322401976879375495287375530368893224335145837998604429320344875819556908790909841183160850979226452489864999585820733140745517525725519575789876730702781153959496140505321362072567718821926872253250634491572627271892136902308159109754433856514432419148150603771319882873391891410404644132225767157800680250257125153280404922523393512286898002157606998524126099507974967499078584290812693781230843384168391855359021456525114605433572680135351641569899953034378422792975977993466513997670671985602055012931696359233448842638444952816277452370129416940289002521507295320887736256909040942422715966430246956473147756699951027193498216632388501691384563436815495395181201905480830313480300126811453703805563745721401324785385840054424320352370789874901248526528084270572849985469412728508698302733193824245626601657634403278023325071764054391033892183468378244333391890236724527452718663149309652575115978058772566005074598596701115615145733810556886421503600669118245182015370419408969699366824570818391247540628843524425825125854396988933801786517663801270693858516456905515153172753322085702933827385646651724787899831806505447787082312926270127671837708100848947043620531571245408042232911203395965020303442055765894297067207845005765266200502298744780975087241561810267759270392554094209660891225004963094612232788695337459021567730460506911938248850800726047474030061039216408590174768443393740812423035280951136827408313247938972157870901416558323387261314311724182864504390040784534035043729712218168786839358678293462265956619216078247194247720108353686759171126723219498429193651431534960135962795308469975897361964583308776589400544430425425681747025063035711988580176874248682803784758205701770779595238186487431999274794140790150463169637346768648912958653488064809150874488264336020280134133250750900337676687509358383612443493168237956120066041039636327729363576481500162305537754912686553196703479509720952666405716283065551183016119856792101409457473438017930184313687832798663872074429287918938010336626446304565365183767795894343000585850588738310794372344854097955850426002987099692697413151600701188130836896659753914001262549477436526477335792351573086370696518933293358007948107757460429028723423049656344917353348911071885521551206880933179935214303035362114408215028865678610833125902172894653223653017637139685510464414951316325719045521493716631386465716652588294214157904748504898616019502698110038014867153163547834300137715383977474292458129532881756780057503744194916849331929402122757404216349068386562015391905669031587294908745666435957112130882077503364365946022121109019838019775123927012281886165090682834389383901165438912006352912115364358319096599656633608823468188593532260750238290685946792857990214201405203442684148706720168723030545973371516849786845790425213676588734139619947330581390974745507548786917292837642373219139719352080039943584495168172478599625116659762820611076961635886642104190985621776689611369923995450490463356800999286460776864910430990694180343572584951005409140352156967167043163603801308336996924860787541230997515370463795007131142527041126277526610066919007641075554556952038831775947258434188620253340146928457537067313558798363778543111574060826295559646575512328229819892237835513446739435044611776256734675042007468811067562568365555906038454685914084378690693450841509672826704223095233394984199138594571262569651564938813166524339873262877970926316528097373739548742221510197069592418018321732133693075650059532146707979319054012502065635891717053356946589096051048319670374778609263402590033246637963796096451936499854124692221205335630959804222196738190030524899009999341428447954517476135747648197524159391071696677416960055749251590899047923274333890417635027050984491920361131526326118373019970982640891371856339102261983244635090543059178323412518113282661844052122940331662475998852859806084377272221469126681809618424133045277907455177615887360284398244350641435756206621865665153436640453567110828676773736224600113534238661788676300155231826862589058976697612357129906844229438811015960999020059808912416396285467959206116733640767546838681024809018759946303074660143998151686727462384458078317743543829354961889408113629740980945428058718546422240266903509541536164183997687197943767238824250111114290253607545539950042063121449007354386793304757693956560454124510069852405652105466000090218805482206715606770222894907563236639494893052963614724196134528727228224078921873169115630461144381001728901834502303167904485080985791348259808964378489492782900684288272599301809025520534538079638842257168691473997510043700721116173934968805146432955802315364382906954890059953059276328728955360094908557469645622679862742838118072828816025342703095534820375822397972361292878775025030386891106180719110999097381913182621206250408572892115140574779864175404344940430406765104688239594003308922037019299254885620370167027095527444962188662799809818478140640671769075369167857975848002387528933635774769606274957490557231408278294354633935480314919237550413583870770786893277516255759934952342996312856847459618715446286122573436621215736790846976014644989691949525001506090591811170306192919854354228627960895252863040386285557306550432396183224831680602654126750360268997167487776939767369036667959488570660769097981761538892209227942886780172047826932647167083934221896494036334331395473408504799019930650468392428870509377085414204639927286123030582384567820903435514597034074327378490687957918927472708193774696404958613789767262249242379738598796206338535896186939782901801437916686207862759069000133324320715622892329688278346326716061233396184798107416701946146660509458762044433226668857515329916499380822806142479604328572049240605867273083064833926861264397649865934416843178777243950999080153761147933080800005938065872444975936777681402619572768662509221409646535009919667587196927506136907371871857480567816169075673582991831585954114155747529320012715480841945136839582041175468323961818720057188720595609132961598992128375340687396020866457268846054772623125228646103617316337901611164854201265245473818855415165171433620715972676776735856341636508527506002929917616928080184120182277779237993335037646012174409756219606977831209010685058692410964626602339625888871782560028218308953307325435217571772973930955785791553946092165338379272113134469639665559930955229281426247158362097717589309144771300826234036232713484890022126110648060104691377576696686752339365944438933058901060257637940417288187179538751607219734254071117818135054612494672645677565780950297469708076755753938721424266208370887305576352953131398100547256821857267901157532990907065672580495641749630397694655809938404349116331095492820427073463410290223181025230423023942262078310582037259057313591279830270964547292537065577446279503693983139380732887746951448512420688573915926711023587377757673850139653689077276006313211808987423657319813258469093357728620835232560459716485405051816467494841752958619617473514895215498328237186789380871509407542886580732222539783589124347004093108718294447072764894742729238843405451394239371925135232220581457473010715889638643290308934262469986660428616488930843196210629350939593373445710367855449493673996537466650407999336613047475331376287014647048380937459022237160174244890368669523019757936464734362902932498739424999673380284224539142612279830950479200627137244496370830404443887352237369687239524271985201998034992689215383036041317242835896079765973652276551801328689426785778096453794664806281088080392002211808718937461958591952263917325886238287004411273831322154242006066942390640897324451509354974104737019217365200332593173100735413382191789006672294734054383751739296134753380549643569289702333441857484658580547596807998456429768793034042449311150518305028194385930393924208725495690597258457045965268258092678442920264612686102061844372520109555262054153614447852042466005263789594405170357579392422334918833912392274040164900518317105172482654827313631698329655579351628416691664207347339371332238415982505443286231273638151848107446462762915174707680016477235670138333304564615397106262006405420528505696077086658984848179433366143373397320699904191756005521204588077387475295958363010861704754044587033072664688011501701908604971012271001200447910630137436727618807043359442124176810298075917696452655185760935733615662886474379659541195409201328328320958018130395740423994990215727097697906728721508991052979814329774230209462672976125085008127647674915216678355136682087077175677741466876066667182606032486550150670411340111338805595274110847252700385940106129692246905717703179181001306142903345431691726800376191455089657847990513022149055945857175073972098813437683134153579701109566574214186176918712299713107914108414932843590783314474926793562288471754933361043698769354260817972056955930511898857181143285814669405833435036728332899167133932193837674923076801981148888616990575878781307985587979286000450740311510716472217714486808036050403934969742079173065038422094123171583355372424680720002951374046744388603825609218215831279502839671816683535353727442879767113945685939314434743749942762395018118899382742261500811176629909074331626492121166180742012367418813766430103286131939978730666573840119142596766088365774815009900474571814936381045153838501846025557446482468976686920368223113015695726017414020552461015828422599597697051080467879552281726676586408371058498940847587974507824142356355995006612749050182133581166218990408776408468375621272970021855869681376103675301358082138758494796816088364265690220791622941369895431352650243268469344731514136600094255230606668965937411542134364998956329830350355158034569992864146068006834617556449653217308234349179283302064029503213856726727844404991853621543175378636859729919862337335297490870793077399910342603229282756484652504132278227376275686081735505218718231846953396120368637963608399689369637686911315435934408585739764454359445490980273085528931910493863431333991748333826885025490983762239583378067460092062519498238272467006569619972712373738166726992715227080060270668827889692142504342641499544480715782997460747039046201708382237174208567947058482918751370520339942262837919572874482600055327082764579239654910809369810707343630795348966131651428596409744447865871352612347393478368155884800761790417817288209437631777460356609909597454356017877755984685635089322110242803686064933731512336283010885978232060359195055468372934509608774409442227179641075227469488488590981789140563427056690838697187329374671916381938239736559244062784142279857160643785524929363152016219215352430953706522384860833631518584093790601410388397163620719372877526912674759110149029985061118219942208322225124436747748270817592690272738034601608024765544472125721911014782742311986010507603886232165798833037006379769332506180077946418291803316767508388860629568037471959485419077032656678399184186514159534318079287481233814225776888400987483254153169477502345109951459527090083132024913505741816398548309967051243222430238764379922714073154823926768878388812662150796909823665275802695148446563480274410195186309562893042418556767728738891520522493615138485332560015855142330637276150526844102106621937066519620471162669363152416162907648405869671897673538335317933560676881262697998810185435112569739182773777804005216202348885230068657651131707277505553064738251024671569316718263032898270515719846489351172864223195587323721764252647691068239643813759722789460851020867631118232135880888953482621516063227416779721084367525530927297700897065804148067374322569990700881887897849111110946211390788635528632892889779419132686123357545948006294545239975887565121047218788322606686103165901221961926702056388031912541347142255102937333514147460395583727882746126591681662483943195694450790113417396286977229268426936070717032651997826400776609373596243486577775302081015582382248067165844119474750058591590328952396739366464704173252305324483099615293212634552790438328962201571809851140936464191616612630858522365594189706246206508531092896490723553616995839051855618449763955745205705656227800494254616111539635424860018104841262487283274309736751488673919441869246647472762721975791025331303226575443094832543016053621232757727944339130737485003844153333830663278127865093106737789658067777304272315984609253379005210750027198552019404996764598952091135440717662860811205802779117941808701169631784752752564498929129256293948964767473347278910311338993921197589236463234274567223619432395519406655313808192679345208695777999121068434938838588073137509737615916078508746554837586150421557621663487705785721852050292611968378277177454460817531849294675155529172985168524257692515834461390718422150406698241008531160744856399528336331356886981048752546792142373954075012790866637994953016220774191425058165532126025034477788676353870368142988371244561792938777109574220187002293325286490352290223301150301789207141305368366922505170942984131196915664010312190824596742279636436284924478638123876634255934791921551226317526272835264577751820313583357324936633606979765542453826628089771098914185155057870729749882421712762319558191228676673561915482083352023263722251580925476481454710135363653463700688486668883840909047852081801667279508945656911444023977538906907161610001727988044063360923156035620505169502202065253692495489832793937040285250563713067437042256812847806224506069089938649750341186944831464861315871736923930543673799865544218245582919226452475254385596514191168009216821353154350226893572540331263429893713909218344231431437563630722766673531208803262565938583995663347378203174727782326285580317649966391469137311149285618282767672011509421841968025038803460247054938841983192323311951093321356370352943959726356058827526821140414310646787300708149062051252240185232196473815863076409223068193244138562857138890880890968794274371076702231391185251628281943072470257901062372900835203986407812626157700734670761640895836104889853621506783828577657793071120827213413643842360480419570362206940726610705116865397522038283500985416350236398744174468472383198537580216516309742374200159378244179881030120219825326413935188335184806777747483836360534294503216967100777497741559910130349686116010548143244432441248178373275939650709988670725841097921415276461600602104712302442781887027765734407844417902412914294843348618696983843568849194049184973291801733246665554211546145921970323554841122938528608052496424942902119324476511459150044612966041129080357825908627497632540122069536780792747176591505781267971067403269317916943153136018824882660920786164912483045610589993804163794574676037709519811046300006982081072567072813937962952008526871500406530019658775414128919898304081742643318035245229709597972632196611857969031371319349484508722091301673505336130068884469142680563488741763745448267657261544005723988683663264059233213287713079597959887849448468041308534624045360099632696401996555325499745214582056530845991558450068614859465912449348724285075009999803301271711998669651081656788786573162234792037936005608988657775349108416422895299624500836332855041103793032470886228992407689668934911224561563798880438696781369173809384885159222268873827826437124941750528371256462059833002015686610698222218205647709971664265586832060308401219594322855114131538666435909735630452270645848871468770849902427886952050460147368515398602576889997746676917465890052557065092461140978841478713598737575168497837910409650684840118122256378845875757194005606199146234972721522611026472531708382401501038511780527584261655051439728225123551627618467538285083599496800026967277619987940449593986243950571089461775044647018147625838395623543552922341116282513158330146794801177185228208255120530986544247085089318846637378912797194904861869386875970831918102124046109700618851588499908863095807108231649069180203119731657354319190470836980878416892082217271110286512183744612177988113603180009665629741095741548939625989646913798067882866855481665041849256839155821344772515001287323937054244895982096829063907063376450051397488757554597036655093292546950698895915305204368182243762613107284499660303426587215271685047329052973454570932253483748318217379352851767624794117673295848856020168041400224649978879423037621217597001157899818241193640159425765019075345963737494559458004276242842665029401147184658218813260437469794902317345045698902171958510233798531073068791709179798806168416217003036092800421774874275016605063426124647971761911407979990050495421224594023242967739677486336414707992259497327625448646274901095643576052564865283934195305189207929928139893556922334733068410341469043259692608467928484583948032228986747484959384219002909277840433262239964836307164095362505072390807001023800136405834178798784103385766302542658432487815549721883687383376957990774350933557378297895996614309711689102973196552685737384429012029460622685665127565891662541117405736180606114842308663214792410505262691937779975225375160449297603067100397669311502994604619132408359119557192636028975741770734375512082980213125821672572325352667217664231380134146768177133531515250968720648949619662944108100986332600405890202301114438770778284630907194922428970366914118883437215586726968635930316615275071837154277559263399982075403387249683461375838130940156916823948935879484145492230217730512685341542555656025641628045536572925772267164125550734885255443215270055011744989480745323901184319907470436717621957078328085652680155730363131419740745799161269647814742187151478754543772602094585718608562916688794622432272271999201142524282321062431417558500864946873353651038593476554572560513241623394020237815146576887509534241994708240896372593253699467484087002069538651505641613116745212308132027761930066286429589880922679476273220635980126009682601870269745951198360405756157368682333934548009101265293143610844850129923460890962412072115167153783269365582046642583007780831046011275918968273336515248809507150723434323773122963478559384994111430833297913022606552777244001184829177074252672796057093582003077241327863179494003573274356414504553845804899421749308923065446133278700027449830471246746711586693656484356765653466238180093383427928610763457938065834719950295530656806612113544026391004645769323584656819167218336936091955767195845565481319610855254239671300747386625751605118293056373952145355264521780919694848048719669300123112468755722908054651319851689019140745937775076161222045578537491056181751413443429935754435543859528246218607465141164932021962062183083469886418383666250694007611442179024818901690738683987070915822602731837955063444308934481706362756255201185084043194597989579380770706551290654232161274967013447859262045331557069888279527536493638582885842967626586512008761579028693706169565920968213352928274746211284047382173022805788097807220703517981309680046084204147167226800966691801454989308913905584105206078707807384710663967518758171603875653770743582161960691478047639776466036613168418839871907194616110901782897949628148470702763621644048184112328251605029481833011245080263176336599837764475589533972346397200487346604169080153241296543376093874732206468417261275067361802201976397853680433777641701724825377974282699191442005877473750644108427003778257031104372261620826663459761703336437545371000206994883073181618193884716478552985197595948257352797790227512591772990914759779613422588736738552554554685894591050185929750682520172788823916398940462052987750273609113734774405924722048110496174499641208443395114494169764733402549444654706935233090894522223825240497693574866438240248405555204821019302385938736502354007304540247738557277140268844726994002487359344754725605786773592388907530642738702997401342728407780540502012304834495049026045902700570780560902559776410805233002923255978668772884033788208513485969013706599361276322512696174449662646044396708132395258950862416084561814613379319832517069038363038407268476915577058147000071713191575455031629649901641266973573261487336740107073783369499889513577838443500150802728598811226097667968092136912941278546679466861124937269357170097580829418660446749964686475156474876432229107303933519128772533798207745016198314217095501620588314592899456705142534011661650834493150091837980800407550250719672016535114488300446027827757749170872787844384488814671230156920946457789379693920931884013858997443373134044992876129523231808519529549351697017605715508518717213357039875110662661899980687073864566526113772473578085025236495009308101459313657179301729166481596478460005847196172858903178182960335092920586630707517838527901804584765910644667554708284652123137362138265069986352505242832079241026933573755549938901266084034036785448697848790587041480553295265427101461413072923677394325139060929006767505609678981124439807932162684181551180336210052883111796844628632103638573464285632489120651318356224318840523260091498377800213271762622898812940439618365042510338039248566727514132428154225719773078047151686237846260057206277524552471611607459681513576481641592582119481873375274468545371471079624594854615105009165850865967106872460057489884063422406959722419528525755849398714204430358847022143607832342768181356279160084340401960976146601425182037093028001045253035751705072663971759731287368049605235746229120706452576942516114940561770737935165487617077670719710102298703541030147916586890055906520362286747275260998032628121151205100046741565002046536496942436370007683435371621039237282909240812111177840845150087344582106495697761569525515568496788482200591428477510045853247189038290895759895165787399294920385853812906668745187867329117427716181162653309004496649226170468285445665551779368479150406367590254205952712150732399360379219299880199428581841278526912888349971594914311993387687052754738186535961569740510670567090302738935611087163075800587101649378564916751638614182784521468726918068162965160956891152017132409169833925944569971170364186981065231628787358440851108509618658315002147859169418364876499616034597797400107804741381142674438881994110324419302463151131657089629604770012279241019940949785933656490562565055076964779286601209411303654193908921766185401820823400713731764073102463757633210003913972167703591805819790991445676929912071510549934910047849342732489483507280789601431404780008973655829916365796106231920922779178303355090408046859028514672974815740291176794465840054052555307075309653221303679975567000579936401717859870308902191156266185955307780451188310959190131783030307124503261024065771759613021043105249559030026535594741531760692497622683974902446558822392565525229395276360523594161427709914897362031164880236061984471915164212565355369966295574590804269743416363816962793637348293516598637568241871488053451528051143729186048141656250422079200996071597553012094925177053271673875983123637692639808058970906805220566861533074448157210949923945663898218216085163298375250866035643269004006850677511266784984178197192532351973372404064636233145856024436425483592996141955201747900216056270555179556961769634524276683892136267147049526734331201035356573682506073106464801185830805536786227591086643293935020101334199141565161251574031684816786967188842895084168781300027151358757173191618087428747334428127401722304075091514221346415851019345016245699200623790537231492794955036486585308692811440396691218431794618156280654474535848937599612675582886419022004178112067777271705527246466142523841191395585133640805055824376668597784488222830723954831127963121036508233837017713830747965974757639249960298836133414600405146559406574825031197366329105587543097112250323471742672904209092949194606430473568261611695603073994790490963198084769690762403408375841980707973268914605395134730812853341906068382773428327391302971381670549103446895709119955105919444300850196516875028366214980083111454914522711166163403488255708349162097866606497068460036626631170472323856172882991440223805288501345704357028070534568251985915503707040159867092489759515825204561053903199992345496479599300199471932205579225744951205962093311386601643259117788167548305262128074921980873972759527313244385139033299341080849738037564659638621580406773540716903940245761362045728784234456286986250451841627839518089604084507064274316146719676274921054552306860320855624392420516440230264238345938332802942242135910135251860276282711368985123089940863351271625908741986385575460307130941707762236606737780947955736910197752168278346564507024360729664182567194287032628718420683252658679251723847673633488648162736912417138828570574736129792313103985177893446450399336462425142196135806311656714880134244059267277477666931922477760431176339009259255653582610802593160228942886604236103105836325357436079298807156202999660298558911758786062335191978585432048114514477202956965053012208944608386486290386921286969163651999389614909762183214592125144321785510697826131648287905655802215916957503537980872838004832516543223493063347642822226540649713272228399514923321122705916227512036720088408946517545684286069014622404391271903150895043941592754039922781686284726852921570357118253709354805285599003715787054885499176755548047189073874678924497275411806460909226784505547965728342971876815203377292110413381812727076311620544477219725746316262975211444428930786443293864884601393863143394853890376354232157593659484713783832202196807535651909635836053180346140160802735688519321916626525852752512786321418693960524065089965639180442303979911791293847656700957057091331678119912655133790090923391681195318140363369811900566219354078349903045448639862428661742816883397108354212553816772534789279945609855802449794223485377854654350078631604920209519351607978017402287978706211406792143671597753345134182852470077009840659122927705574362337224262024255629191047121441590809569918223436726440763562504715187024047699967117901882159643899724557262846760943704189932565815930420090174828130338670433166477728271693083645932574722186402954905754169710053302726583064803468780830446810968613190025179333905728108442223368972928447637869911258144250622476418091218163521537028427470613760343609952578072585160818345149451040286579521223937999261920437388081729198685697029119096507032519481062225890937061882832836760357959534490647795082369480700431808803093092285853597495336123618224188688958180825386541454923204603642448245636639770949698069303892281961311470033802233497736174317930710593247112893265390397406918624272231918704812470790540417743802975302643711220807754899812262675503652413087839861646083612634722069960463662518842201859929554756784809757386681890265620602311485158089821073253136865244074540892298897723396096831426803158481506056117005366783380774637970910962682483552481867030315642914541372547933854686590019556863159875607838375894290342168184720435013939027634380325897302350178495674685725978323863533329920809388814610210900766050984674862359464423605096744625580068408328637099610416202643853013607971420645986191816038902883745078734589295341198194704742219262185609974140662295497393044216473185483093861216626639198032482602534397435770136910389007922001976867108644061801447106973796644241271758401041750650020159334664514474503806450618914109200900840537742487879179536937745734394384835728168228246195801689823584566684622580984005668795108693737229553854637848257693643753763771181975835721900376845694654980281317151220253025413991537156742875175276446663065374751644931723372165724781567364412013736881426627392408108483921209104762480384155366191094142887917059196915968349414208711811655283176101673348491789895827798324474013752931582018714743698465715663296757504681888515891713372608426824901702146939123515513805980274217002081224974034181327883081235325921907170752085567400960021522459993304540334773805055121436889204866588090595269250487609316003155943864249024025426993178667442732759828570118599747933404687482195651186881265988843546986674689506733003155398159237172244088548248434798503655057182719000154744020152229300513568792746157062358939936488875306594357134487306367816573184448496814003432706638562420242280030849854937881255908051979063017979607140095529786498299363683253606662270562269723645789674405285306511257931517056473537917263438284311008387052225972454593335611926664701274689598707897757897165297161535956621743472535042535355719199142608642775921078070661378385728472484085649680725374417080478354425483775418110395448952208701814380229037258580439400423628497647897653487106235156307356749026426266681951401203515630218971833977827722113332069501461201549042829524581319064467698658090640473304149026194581070415120480128611157647687559599666102646638273115934270716947028785041304178689481921594741009537628604825415056161573582151143710652116630363579753863381950185050227876864823842629076483403093287505560610062948465580853878449852887834975677603457085247406171785126862250359778933061735377945827597319539494688674196843234663050175083287121353036754190195097841363186962425760442115147824448647123791447972381119183691465031492283004671728396144728673948168058061012990947978306404638294215377586377181270093468128976260925335697536776131413173068356492541012046511587280242184001506845753629466349092576011289532293298170849961351645291601438159882647050312082216625839366094493289905401875624972134351771242260369467921844476253242729136030106544339068915786753794896591646196902289276845427578616093828031773587226792950963851933001134863708910811033245651951259689267605608115323430397049928491516222201146198421593639675022513744896676293704530235947995623662271673981885661930922170745846408708978491783752825930255722128219156193951823729705139698112193227376161492722415712893211223498162269151540111805381310366582135899643024267781914252988845909474677645276036782451408282193556839933891564902349271520753349125746246339946966646086384863397453170719318687039785155679923328164619647136459533419434855157616424604187421753831322515308441847262096893261706953835053693063280409405627299147982485415795841664284064771826846563904324348499345011917232055123820990331713293980271097532486621383643396429035805965843436994723421950597048741173344571062379745657363571615956780015507985156397558507468581755830157959627496928892592658011153029027928890465189987242876981388300129439863874545510879122539110015100797800893051545357162653114773439373028891564915626437199028610178612532375052094711105550277138732315288355789812033424302111328684101789735727035850604857888143270257465164824533466886561228002747855070955090416503583923858379857164728624644410823430436631925810585488481362321888812944275840725126428760820309360988704504434873782662246247922758970383143353706519152959393324050179252796529915404646474389170730096242587997203815943237216064123819944863141762699744177363495480752098366337668834276961364198556790517625687385040544016683023282937857049342869573807911123527627274340700054932446242385089080865318685201521651233424711523254726502218135413481361012442103936773490409868923070033193163130315001602958644925195891419424423886965274038186832108405376228385997855895151624664937635719744533312265515928525112186830742098813845145514864872913887891498378257146364019018009585700216245638339152825129832732504829636496495777168608686723057081992729900473848561207398144503390503810780411395608725978356018980894019402754899555450347458366588784300996670050965873361530089877960321515811160703415942996902339593087564213698954618211137903248675921545663845339942428456993795907609903316709690191714492371722489296490280981454221334228951073355930812646355026603217333324766970345534439865510048997164914465602017591991198722951029682135156892091291412684853110821179578593016693709839699848198531272413397377944459483259511501475127255729476084308652710050004940755389770961622035086502862049790359052672887443858654021837692022062075914105065810803013803097973779249688013592804395923507539987384885303286348142505293126167740076374542385886785735939454978463946128624474619347305661856889760533340544106846999204829529134045040881271436419548771175722935904737073288551582124729385964985788919681197060234640700366865886041867213688935970794510449857675756478931361027590277681500464894648516596780100695726138455410396375437550602533332368434515513947260562603999539445512152955844923392217192430494393754903597181556126884164995508758472637913934293469846752384120204972623138967632765517048228664318033614085530438146346715494140324119892518452508929344135314943258499480290330259176914101212171639532658625739873096487751204550334193163204519612467413944338357882457212747656841094101997205758364768600794711901789982242278241268291684129691780010498754264452372477970408225340092715506277045075932387120901498391793052930794813401735417823084760741653974882048416385869428632457779072141372101661349361983732005274242968598088655798492243586975501986846596997107254800616554044189045322454633949863835290620751811842134041204883801879500278544242061758218992582240319280206863400235264227696631546186409439375681350437569282028321283210731187528246175456044650225437357848892123192864312386545279259396545811953816230394563114109781495325603957602268378950722367503971820502141696604276426637769760629955413175444724653572809663102739916765129007812143910973093195321640168724327593018639600818135016788718162551558330171906378794561040963143479081368658178236352009576592351024166525318398936828963577511443549797286091143311431266434252718652663749972952298082101634756593308637584393095938539421086147233442977390887077115267962800091603649755673587138300146666529356529638742041928518821663436284652908862351173271282122092325881702353952504204015372632135832040530751342303351336324799907905843801473754033930703243418023879168946152778003503383058124552793579199012192396591760143015111980506390804683368862421565463353997973727568224129711102635060402173311566391084271338869892690124995567434820248629138561966951115149567942152896512793849620406974730817305081150840999460528215345682592112296680501345463634205981178988410905607018903849419876085880160242462502934617033913196985561292724939424750021380820816867240974840473454249173542090656931492587812329630197801623067999514132234253531131539757067673956237516383380410924477310271787321996240691605122427907713177523952975525145861600340463909421216314505103673172746012170089376008807110753834356911446673283167079881639766678541446457829117515818921984920651890976921177072362107679784619607083222189521479751225031188525865417329068829707751420648905649765842042726869662583447053402640672388502003034461452146936676553397003128887213644603530679589241237681276845171594351321541309268418083089235525789786654079679780197813705080626313436910203103921684200434452268437187587140962053646074880405069782336356786261348901847935825937123870353645382371907883510675455799869679889985059670800037529676781393305029098889173119945636551233017459461064499507925488838835972545811344888019374356543328896465009711672230328208581037627253155112119342359644728061510848038208365351492441068482059227076693767427416778101686702318302053904723448172538379663415863711370311258480792703845006019662871931797233075949939304030348094193173393227474095415577881593224223730082918021254844902816793516577211506339561794336085530285116533085519256485851534196011442258759360568780161774974737371486725976364219826840883889382351784409800318347350850056169082362195009605283383505707190624988961530277629016633673408153160894570728412062077700220691289529523391435966248518831042835395119373256378320330067376031159396869919642791843902993037160499487582448492572951065948629092546106059786120324621694742416576979160659307726500491320238919594941102107354790287100089410802920050732266241837291876868642952828489723986757648006446727980774233008396199814618124118727822039534658963299455335504845791904944749603384248930819090137666210172803627904936743578295716166689301032858743259021933487953445605338152934680545391747961866637458390292843190209683728512738173067322088273578372235715592327499461853333745600031695451653280153585680473520823496517891552661702249898149637615405763044047842850722935571169054397773155804598817713805710902466137233422995600094919388695911402454275266080393699760668176140608512395022475263705618177859597716893579481868914169818175604747200348211770237449897814626347021951922647638699892202325978996387236690822110862257722159703546194017443980313651959207359028376752631336839522979611106454918363636355093182034130320332990189300678600777120635797624093504836137890351564117034885085389541957014730887843048680972533061739574697823024656260690675459995579752366940765073306987156619518306934607217873515720351176435804468207139756083152713813616082975653222715359916085845549035444997297323818081683704937191654112797798123944345349108604901789469303378086860781783751293657455980998580072701511137898047563540433346175414476592399428094617604962278716708750941374960953193201408753121440803394638719606280729335565471328560447453647244710843220611961618205953080752604912801837935361392039243620919365329870265582657788794767587086886229811474027543513262288369232982180252755557084544608900526400045458319051413469236350573932423925885192584270853147385955365753013786633580702962495624239857942239360220735970841738904152120182028601971621792585618004208794741098865898023080405870571288349639823389564363980063721518102986503367287595788572608728474144946640733195963221648934925555782414510056627776566616427536353896862921301688019847259796884776932141253078313780144580386819945862009433560545618242739688168998088204982782080195145878092042903908965700684377991956018666006999549307832952944277602161708490520573226750474677501194945152309318047365507552618597534023164053356568567435444217577809183394300761723271311930178151535468050041009022029208986529369666131456929926489527321144516346827866150485747493882173411839198947192535078628222567899998758346900730028649998642302681041410893723410766626362730397330862542394104079430142027043833778797789838481418091650903683977054109880862092581300073214958975563480140608947162106360444716284679247745515923971979764191347460148053304264713426758994827016775172531236823707779514933251559307795537875998588784957020714677541845406420037426207726610650182775301300058452496205373755528434294493589874644891994370918135619962659073796908318565564342727903325391919794348325605202239500353064214389169701671784045474621786258060193022111502204328621509939204693233763532450911218509054717676459893429849779987958273070857337551851830810546509991843344101301728853292827648162898159386331487012994807989826861633460954484306971266450922882682738458219407956177137827185493918342455184901097897201467190950813779588190560233436170915887814546745826048598712383397709759139601560068767988143538787324454633762431235323765414577494541736978773821405280311615993258380671994150678642411654161531386252055198338561547546963120723952014503813440107114862999548639296132182440205235650584108776989940866383981339991007036208496600634869727993256977361515553348280572222474379029286122269076305530110426017398987642784622334485018050349559678545975959946997485741086865294889980012768238573081804091637362009410887164501348856034732967582334509364635813273009448817543856046926585020933156975633420179225026007384677863868599939500376220919855914857145303019868126276295277635295292306820355753185574627071936761216628910672459809372447537417091619018878690819475824123765721004096573138457683571012823118532929042923617272560325400626357301497420674414591366090531358700638311527187215950198553324756363056179338057116097518387158234030603035141339949345731054212625988087674425139766648832258177456048208112654175974832444755298119962837700098697383679304131084330567664153818035169613805342008931288720335389572004938635648889262784286047500802296143450456896353749971412210210348487220127526966379976481876376053110025141206862142644913197937644644515744862654337342480610266060788624791610412194846617766931143770134911214110694580066927864505097992311869810560758795170895207205165164253323348517346910456780414941345853442612835366556235828334707252527633355669679848811248291759008520731534393947365555061482385852790953005927977954778099361826924068918839820084900591558959857739719160164890730447565152489845959120641368395890291102464207576523285621164565480009126227815233168995401381743508012101868462169591514489791681511554106428911551256293798866449806812175712559913606681490937917304844870541585054717530905501751222278412628456170998918342629853229950595647306420760112767814682148615082536855528496463259712367391898839130861363590184600107468822442775083683662467314337732253917422628529238097408301230934627154888436539224580150443000822787101452201785009404792054297938346003795371971050091806654195144566018619566362787816415519739998330004890180645395691326312894818739713758589416028372117636180253847601004216922669422276742450146015326351795683647200750579853576801384304948228115077046176206651726759036912164471729769101153936549724848600710957052489971281105180338483967452929506067389390351604198200198823865762834298156175926275671818807372405498810606781810075463901337279972965372897716482712040015467637381364813711010260755053504566927298644010019792166356468069483961530045759042457422624490092606232610147271048483943385232018408128700324385545194095085837094036796333390333885071075827272778641501464594492795141186461320830980010590488163134006520995732137670455524875821922934848418117601301453187263864835334313610628576818535592545211350739375925186697419738320956052328889770537217605719192018966305308002240608475463552435979606567357999152399337329025173389600385532917344130472842043769006615029197610095896603364865480067132496318719509163996011309593986533789782035073885313663260979703649423892040786590994872534511140588256042467599713512969970754585114010400590508591731978877040688220546649364874026687418679394527257141884915972700072948011147900083788899521074911937488938925703812649197065298499445539892840499720788730152684966744300022585705040754846673943019503433914127704452597259588988292242554498028340233364530229621327058894383910774529181306150184608837017128103105579401378348549063867607439507704806878138559279146385424270153152076630157659050833575101475505756368105661742203711295453957313327424124514680765007674020011373272979262669486451108696862059630863923753508128339268929282675186903412704171852593948157156500268773100592600924426558797973280872444652622040277939869476035832794315155706392709690316677327565771013877734799720530374410021893970424803723399597919530857915150183946537502085657212876297222432738692469906168695861395737235938834474610220065347624116348869012914276159089109255527877856057592432270378224344537059199392906086900954824105239411633795568233515162135914287864940761543854478318277329923561569130076634964348820143931464053243758998837868040952910198772435144933695117806591892310974110618451297877490234449312419161171927466355559825916203707520092235957639025176163421473552781694225649788237476652498511107906690971754158841314064578272237456197995149522421441961786753109926067870015454634459717009650427187630343558000036515375467140503855346069452403535357161722944843960761691573280188184801813970736313384066659536130861046998407183151166230248871897030711930556674371801401624914246797788593042000109848709421994583295765564303762564933379890056309930621194397962421528722998192702017804055853953920525408485563451249213261747083736947321046743611293616268909731526696394319456630639840920828029364873335917956040241305352742291130430928630595223182284237904842647035249422518855627937459058045938008178985260138611554083685602542521172224638321031641476714330745558811667779871965249111966883858287611652449180172424317323988633016900169301219995066307490565109020209590690264280293876036101540191962894417129587925300370020909368641639400349602773717360187168082485651395687363080810142284019115583378878616187823259553473149499335142551680835429289760976990196713505441798514664620007635640884685548356172575211619131075846606619610671640180788164019299773121747406964562161614012208272230007770406809832435856072884183154275428573667648115423876240323697592505317683780077275055533526033639763424255126996127058822012243726872439541852494180368983086646168571104463984417538441646229746948597488774312618768463601616847538766083170710484769489394490764715410610701582942971376361228193359177938968934283987595883512517795226788412591562015767493263035228677856188201614354645766659960426138948006281291575385192892322413377398363869478889487083754140346303439044816717994781914056867747824150638903739877820248115554653219382312599491176168074296060704941038478798332874557525211319861385637006830771291639491316322709197838478155854944478964850642112968222557064459601967800023846419966739322634367693171306011403409794071760588430914296369403913057822671079480501516790164655574612718791406524946418024665222706160241926010933298355190574379507874598379386447704372378106165733469339737142745896280777302630694678789294371113613481117411443601075199930775028937037300386730906123265075726640064023298376370817391458834067102585412673298047613907895720410478012078652415675424430655628366599317300062606713488773651312689296318449329594689345558770715287524686990013638032069125636434488995090290983775542290978530354851558535900808095547234148117266629055347659354692495445809169994268234370057263718625630602802637547580796275783459259992485723280312472338401269542598695402438973226617015721155940020720247118559144326171917789365301537996641499370387910621262808601685215778390339331685986313290762151755568415657455468756215894548456933932531870727552860050144782584014626283371677156918869700122563524327120825157512946632985987796515106853499812571693288103761800648060916208139086726530117369792331464672035911080557596768652632337086829718880094291675072079320189568423887020937226690385408304219852260090595634375467622323276451832365609448896579825952318027268720331824063740997570795677454118178735732624470144397400615832220328001761879703540485267430068476574456971776370356834559725196066063777735348960420371114358365668824935700218758980540196959612262443722780609908963244763089642437000243600437116464309349587579908526818750170322604111134316113490184196454952945602294968635074353941142726224312268157767108058742050602064477813299785381365198425863659339825082408990815784937970587207638771368649252435291493713378134721567013713313011448192493784985781684582842136995794917681073449491945984755413213165466384712216547177979196753274657765253450406261714633154902212150208905306415286677003244516620286002816716519783093470437463272834746158815996193905549891572001681223668367871270596218571373197260816344089969120193262034764608654170183889202427574147137625976557460707387267134081023248757027016875293602747658250192326460581770223057538504924101072719166394853087927781381967542022342981564892239328400103873304520136051452935329489300579636520119915022906634573954211213551938448407442263667567549483542967283893661929169626144733929468569397857286996192149587431218634765822244213432665561292794619888900939174427805980288408786820554415545840202323961648608800728701495816548971157200656639432943133273116144856862418637302935333875474381396040469152558012236703784345802322843675225047911423057848835491140323879533975111155504381704929254898716954970658748564119853998325287733413464610123334338031107652012120192533848852216772935086809658141536315403780059021464677533168116315993323153235859172120371664257511763668279935591152733230771928833144120615138972479800364004384872682145261115870419510605200322213703351807216100162683012440591672569160054278215632372342659315863393811460464073663252344870544049862375787372146934711376154302649285318841215977295857753198792538539025888239935670467210461782923513968116704504538410283128720277435362324226938841297698103428923652734290138615318603372893312153229918898980956051870065957513268723837120284330117253765615310730843542864092945949556436485661202723064043054309694342234959688609473470656918845669220870830127042722075279589725100963020143572778916198533679572559375744926534108789300479348466385431659597012101739716226447689774750020879346835432028165802831547749478968516511947662516211413344480599547643612943012207487814605253148544421431102010390661730796821172073009370932490289822621286493818757051447735389493637716149613278583687315447478248791869831416980556230843740641509163464964499104337024186375401907365216355235737542971346579344899801946668399258773768307360613266997840628492263640332191145589867473502636239004238997772496627581664381005519057370942033092651429044343055283947421593000855863684785381978221049521292384484053357912276838680764167137043558232425431082040415543047865551222020895465706579863757314707234093980612609427946190874100387286253493464953226211812632169377338782326983425578829714252222302076612591336748762611754848005960480573643328369992526952836715872303690380319248123405152569795334179300487683934377845445590962599896269518488881411508593224842294197744178898190658097208872365834716329861437502759226612809301473554930395337249637208096145378848840065615098184098692312876568459532752627025161884894811334033191390983468998109005469234521581519395419401440377132207069928203986425066113885851327325747883173416270663846984088756220438185216178348819459251947275309510837152962534792811882801535030638276970308504470029230603168665430070944535717577473094087431332426347277247396722815488595196524907804469356857663531439876552548531054806976032214663734148343867376501797624419477955700373608985685474048668244761054920477162560311648339130410703675906874546377100043534775020800198371620021465091443470250258931888719320868848438621107539818654805658113825359398834803336893275865768140979911182998795147773720473758089259360606238743855567656076898109680352797787921570689857179499480924521865252497919490477034782585476506265261686323602832110638538757990348443484246597506751884740809401629492759935080866948098353080949634817549606229518769156186089084506390067975543721822204268731233936416103599902992070763073184846686966474871366635757997916081372159432142000132736411091215455367926749026501353589491012268383002897969282292347243766544804932904950764533779165582598722103937459256650724889341836174024666303630770401765350553619034258773661797513957976144745676734233614407162410538888563870848850732490728688312493153222316663937260330408697970753397011475905208906261189698452553237184366277363196495230959100852522574803979393520913988101964974733906153951761261600202138524540647977278594981069100786748275786665199905257927571488129203058315384427052341794061776995786523195827422460784696368285428356319079995562492154616679308420679311296351176516212986518544343244226385105871741535423816686783419099405247466136580094911172924033025345936736909639680645254090922522854030627880271073525751670792699499935729211125893885773346748599356961087458420277142794566559449351567022037628437199826720835285024404325206357148991506429685110715093824715657114007703247507552830265508268048960501085409134880245120254586035917042021102542383626098399272758994679012725486830066265653952436491249452778960660482173182883148964078080033298811669305944186192868580093910759681984473621649119275054988143311642934148075140802175256197384306813281768256295099932832608730616112575313581308920871236945137447678733992930833960382490171377229244764324064064189350449018029652298050332156478178633822539280093884424513847395635286584683860696211429890167196812298863915119880062090164673367904081870201304113902044292149099234786715237947752817037916548742468293504741800434794081350718902702602034382978926629897233328286622955575475766220063855495526772263095896159239279976583760398556149398616221408225682000365247783017172235811233668073337091752030537031475181279286518612623583100637337744204485292270150995596977787159371135551471721836855948118509632417464727660098968435246676643287819291494239767352190151455360812122084721535287800111733444355976373715102622007191597324401579085347028879994859539021251294069011297154359853069573604352584067396965355121949253193901577432293630145993462989852542026820349809273149218446668326935937404548111828445331001252185793684878894102268246771527318625248805643848362417500969997322049700110902202591464153926830833518054440786512499085256748848709577352456131326515274967923757183409982033210229823452048682991199682465416495814186594696032141278039662774290243223562368365476591901510464816907272300781567466918332929497622903968809388028528197334158470477466736387983368466169995457577513595521006757174168080895868720228190089849358559389477052055534959306248516876031970978880739358727271481220629737601195918899052006073288807293327762206225208966752136553446796304148105754832096749117454318543946233009932535250363226340174538895356271258581237342648463674576180775154940626161388889377340795744242266830894157873148542430906868139236306051512836043392848851001366205622871737021356538622074206317390265676866672437551068390047100236976382778553181234133956164965144618054107187741574007931413416618287247499802918951437019790288777086267892651915973951516086446502341984109880557669828024189411587631910940180883912294859224384019976245007625903225128745722659298474648104464293528884080293545760402371849706353337644522177752513564338142210655650928948579252919085251121586916088361634232015806887950394098645128956857429062225198965585102704052168596322671232969093902106202889996548016104084845777598722612417544260134846455294199860676386880799415968436398659417442284671941947990854763986689993943064177994650960873145115358450519756885471656535670641065395140401313149507220461336315233144036059847838147397723465518349244210691190656526344151018522758033102158889517412517603674467789722856564507344572757186109457988531108199286649070475310867917172589221450095562832870565293584081567085796035319780963137428585425306788565555225386624888559007514791365392196322185996697751630586678644456030537621436382079904034945841102431145819308997652354658368392290632760496210466735299284350170755636520224797506031708732025101398753387206823607465618007812929282185545191012595705472117790079215039365195064677507777590816248368611756998273937076466468704534856486085313960693991827789519133639797829022943600617570577551114831217496004118012578555408653928880527636099262172114967727983750211547648318784888181211358466220973011546642157181090785178357105750438357808961264644584974284461811533763736938134427519600400930127625255445924140951193998784101440765110230359108087292076545586306634019757500267208351596770825219593536654283394797176860764523587293675965903602879111179205135096194174764382047274571045221397196914742977651483083951153447670873422054974336206012757193845555101823392099292293873281350619924688818432710677790309441222550436957116824112373289499209417248476076520119315125835577038646641924439405602848182341609033166404566504479096023624030561639480973537176340511322723916382175438000668776913934268795726355528767327052774802366987273667248590120435885649761208882880905501455035247873060559993110549636192678878002899768617439250335421827455773080715687128535469914550170309833114651720335697364344580403462148266697854494007895768330655448355263364328016333302382854210225505061503065746154636297241351074407771424686433021751971650593764830285063256421239714187595371983697611399590282606018028506741582198808410598378508823679452071495745548400022085909771063618201342564461470101106317034991815989329146377972351982997494963076778679872202167010391129879008193805016623224344472717008009951025976506034928769071935238140523836056651671895779468419630798323809660127095308327379309573184202303383983686881216935521813794228415748743483792914337163759017454999000722557408039659663552833527689790613085076870078037623605366301330478311656710937023793005828693571191096993273469860999928183155903922494845224796703542773822178836566693643412663285713386462568439007918684303399791460878659147716321799430747450999496641433229740817200332896594766040956427367855657119413398698677293263118098691730640869268035398379270515172379550869964080391453076303623283650341932144466345332114202974109478087822566480952290795980380096561007003214550767878383811810768483524752638375823415420948124140669989798137273854949522800218818117134998143388925412671051856029325567783880614318730190531727884837779668393907399986226948120595238093353101691602201005862637777448415322160710484760565205783024449385188568203806539872290978763594022106536281800717034485234463206421897678104552042852199062220733667626713012986792405616107213330006184231338089509787037885018210048339364620433216768536748479028872342593361955748119156916975372752933335258924090276210890414907109972782855013830113569953164667031248288837963508782087958384122805252248805128223989763037408632799338918564152639036775696048720098274761761496903432204092194163128331490025539593562170697656594227748587411858918804622300060701755324661896807305670735477723610214648809244533329109413316963348201939323107399601519930212848932157701800131725834587168779210710794998165617758755137895416712148378775236180000254974064212518032138012450499995613994130007775643898090476482798153972643163505500780739609769773700052100039144420156499245640280023873939823011456358233026167355503101436317417159953020612097380639178976659541278406820829517684257967356567035986425592199534424085271189677375890393793478639973608507836544738657995577326223798104233155335051833434288773347715999648375823087437422445390364222012675553907624535302566721164796952064923213565211697851103367135275065604692568351363693547414451668858746369848270489704025592776071456601166079861521098007891699220361735288673146620664473431676175211084655055296384991988315186102853260882817707878878694943325758159181560264924436106439533043676821246991294837903982233441207662852039610573239804221277346444707897999460198971120482842289632851424265671445696785207825529438117492459885574884826564724068923392918708398873989950860883101540257640052855432295644740267769257548057417783440766213570797191011208406113556829209264209652621836414618706965918158249649371255087975454963711825529957994603571951636698986309416964019431544707892752515741169095472126790590668846305120525294549108079853311520147548749164088479559486432557485322460839955971985845364401691440357386687500276083424723831063176100599985224563232402705918912895520671005627831182380652404135710073927570084889374695428812353853771441950932363678322761270324839525097425062121158572360595043974250534109692999173165686853635583319159503492061747503588724090883460054888767719338318608331283640443328892122807434087521178354563212602190544191504500940981497815642309905748914577262126247816958921807126043808111509522104094551578548686442595244871121533533244410826753082622475667542806393479876909377471847146576455383037041883266392653157757413911399926795446228050484417792658936313875370307204903835469652360446557262281111831246042105334975435595963062429562649552220572454895886566455813776998861663645191249085340987787039426005460710467884547897662717119059573907259088472519623655198595563344533047430684664680025063818715293704324717827678454460332598885129887088857143102733986382059261122643266361827959355664255035473719016039396784335805938613384996450447868818924748188665992757337936655373385929543456919802613427592225521483957186021508355093311441291548955685934531729035918215416185003081668915688000814672015684658210475998594279767260426870701440478422201882571904653790365981763569625040956238777332452927755865422865889818548616576894094643003745540620877591500246318960056999675835960523517833691201545302329247988361491842073435599362469183628847945145626330262728324760517865933769531967428910225150484344261387483178041268964370157269203397833260423174063941983955781884729395644883426370988962004511556018010926286747656421857813903292090373121771515937401258398820064178343039980505715057614103502128530616481026106463215178913342299761784873448475012216073909890215762726879135884987608309798271984090552772735334403010054809127140913220294781028426099784250961078194982428334248176001305833850850589303806752798022746836505342283045992109115957096768131379045780091614687450983065642284197879054005913520910428084229270024394431504215389292482883426008508471627568970640669506581284567006083761450605460409309481361745902480237499563167952603356453942561507843490551198607939897453863174583725577666710109915109286164054343024012073405667941005435437984052317426019479117848881866531986478404405409727316359322420191851200377317426919247271265369272004865822807520983394124318425297353053319585388990591744458219485778528187672457484800546153188829605273791021299211426759246198678805078090249674296853006488735891779399411266142607455589182494793195233031364541934953703705324272388197348240040904797200715049366669274408167025551245997030471989581386154970669559501856075079554166281168768522704387240634472314626952937299227533205740411284582279839526768997143895110025671667889897231816672452645161749753526512711422901278959198017072736448855831021091882906203206090664052436722613393585126296746515125376048088505768834499542218835444162240314915300784348362062291487146450953754911371478935821876200256976612123339739249372275715551123457435824815474443350457379181690773518816698565324464149233248567515290616027730945159906597214121046624045089166700952815340155203171652737677082467649114369974988075488417768431782447783058798014882145920048632628544579576294195782968110950802832936768839260451501862053930764654302105934519072285218718944295536704877440142696859743811916589880897654383860928154307796519268684680486894144028003062173970801905989715720122878839042482332161682150645567937510149838363168343186984999130057329060478445191768271489951806751800948078673951502318350743616448039252635650960024141773526549051793495732380217678057905969831386715145249781839641945282876616048669963843726107718521722711897870936445066645642170882839849250195556807650520946425742627186837208354382092064527914008091756368490819200349729630110620731570741484055813354445014592189255453162201209031561396405266925759745396192100280704108868173450211408382683825665556821852136905757772235643147231955234105834124237303185058390675074153014422461699591777884061705929892216470152417871623694452346799198944630327523083813238161275292135261696650728041473404206219597349705528956835311324039321832456740383745283134930601481433403547412811813011639777712710018932376363518532783876413065066676068782566837977924890788949441942952138324296808098979012982686942961279131336063015017151815038014339643355971817094144112576723031437192592105560059605674413623771623461184906873400262117717394440756173355240904329733627246059749591633957852314496099403516395317059115582152729690572687766861998447359549055067693482415745382194162292766238398723842364369916449335821785682293836202593139292060820753300385735022030543643495016735034157992950787589792250100292303697824190022626175182129019807687500848420886472763714813892281573496024147235147311469810797995686266600925568897835869307457764624597907072069062698093700624342558734721514119067986435875377121426193042319418075821706044852665309068345665082971862140134194145982171680551458298757073057018223684007190655364716691369363741245856789013807566466361193709067128175621753494955375850416386485022256370542612504755960998302827671268475664496223907275558120603100583580720234946184273410831192919491073128725824850508337418290395509194949893657600390147539864356106344586409059829696859333140074591996370667735363854874850683294765173233064483847458448494257416830865826702062647952704882713069985661345109355379205917240079660498886769674233989644160681795229019305724071268305823403531379795643965998834882934552058510317727441572065128541546915527118625907093706789356167122486283407995320542480500229213563661711821901769640360997463788916723391244366998423940965352948038424947815866011369927522953453771267538879191255129760261040440611643077150023061049998690505665316065035813160916355257574300907072233048157004534451444533154346896315717613377178741362754618681398652417206411819582053509819632422874705645562210779337563865974751079672169016761086035173858679391138574978907089621031127069210577177201048748405252873899393115974628208188803978403905884438555086970050142078442276102941199740252494609420043731018716756444259716872906189795984535707553169742582860263434047211253638450589185654793017091792260276468755381913485402209225047561271273699558919035369375069033138997684965324219412015493746087248592390830693770116490005372287602466996978840570153433907038946449321412643756102382003627703534492109622535086340778721967200337125806104559180479997123330096524075943392952834370248105293115633474682307876600058639870597778359526798797035805530061373287458733998052761983501520730922717139540595683980858706229329577541064163011753228289633160840064644451318547783401790546267831469368106995506122628879676135835209366311685587923918434946113308086964607046286072894605742161146075877082883400249340822569887349179367068796214325235712871825959374071334763976971434654660546411154170508665744251180127843113126991710365412405407047236181102945997252143369500880763082091197922479134119502320838693010272574811832032410599791279002310771283013613143310027373733404278075331838865522971417208755517908648995282149886020902920172665895506793861496505994342548306129760479285705307450744537283012970339558391170188056824599870784260712396674938277093246469522753912855541188584706962808347983006374605979336353541237472563648283604317747134523048932509880169877371963947346732498288236779977267267707955290199794482710861171757964176370697696379027617678791925940773186731862167268608109427082551859006287458184521195875574366946111686089474073454797030873977134548587208713362651076778362290682427963463711924608338806226341578410076731155760860045132123726249946066447198496565142939537935140063807259586161927077234839076714302113649636735150597024951489917122043223850414062549172452812363370108412487925295343107753922215596901702764241727915610510566460223434856952948210074954759683134867072292845493663021837827634701099740720447755539710212197554140084232988543696456702121027896843661181872840035606893024321461284932961663459322495631706516462020558943486182154098487029792122511611861868037860860268018006667204025082749930087183250871860325036422899092582571477404345499818081739690973476914702003270437299959858958984267969525076068076789274784698931218142769292665750081234965047502685720712868842698654107040754817285276982020926388787807283057233929466625104200906099068573818914331193387913596478020089476603679877871110570112093400689624595568679605358613735416254434882796465241953380601942571020108411252958617682439719775510930312582863762693535758701567976531507029756516136751001551091117088252699059307796185504688495963795704473018755740562949362151060144916465522298385955089452042764551009254232013942405089163259469557897680183269284977297579097679160135170185950948693646551803284353604826210808910617303747291523506992661652115925916470575468542390301418892855482577236838623811209091386191077202278278301950709477899345652560758026011156403192198535088722480116405848288694834695077638131513594818557076429206929460750172428948381917439070691368303893179886767438056200550690622606836583310734195719800732341046661215009201891294199610764139080352961383361160148993238241047358879360918662522395625348667829134524905769558966211729011838690007996055109233088011441724190700942381324769646299095615873683720988081504403756702970920817780042867643053630968054479267416569354097415777220861766733094451991308937686545180416782572807438051022358276619183640855958599945927486952463993073619989648599052163542026673109989296240212955522979607284086780480048340351280431924839527801618931724185738044340347346521482985160319925200865397399035816163101275338570914616611506629094676588225046848770006109230046224800707379409103888948330143620967212004111289050480872632144606211928597332009610733584599343643259058429006605780758883147058679519970670829445689501314557905593805374222669758785479805971311644269560916281783369002730527850540061453386598990792810707292650606324260744770705985068065960554728278009531252136580467829535952501874089160147016870138985793055927355186069400284134311824020936628761684409739272534006486229228700020399759985187047654000067121033004377702448910710648933399271007239015947044540088459475451605632932699006838175580896320351236668828815916509561073048617091688246384371691201607857711597489849984513649291784179727506419043470901197009416593353041688164946561825924998319372856329119966295470362372393293906341982703377903140145951534801560249524347341920649396603364172978902573124194115081265860120654330677516628187921813093647166030096898933394770240902573632775805152447850005560056335326404694652903799199241636349188794329140145883036233148411906977747888146277862442333310097557733166358286024144319751740485760216528152650888359907448658912246067365021809785885413340947755573718072353197583787441619174052378468895754590773772223517029811664076362739703274241760223097211958025640570571810823025920083755527312401160424352458174300239018386267525228055029872439283578602364369791357651530323063254526740709960907465642442160404050334588658590069509961622363064233429817804025105594141457372693972002547805994715689815470105444756504110654367395892898233937854385570697491924734874269380894813685433514737819955174357378414853545524404113766437212350603793034016151109282968489112640256405057159921686403724464336534205732026032598769593167250178860857921021552582322480937542973077366838108643486953340796200783493800368683207839937598477384842720428521923566616124055639921890078559259867608118493320791758607738446867385268223806626993444471691448609918178881528763510879278469792186517972489756469334960880808821681926077611298937999286491682567278386710609576128097934427630375657431041940742687302156625552659078541042257284750196363823634480610624511876285631356504742958376146166712538540590252907170786980401960781949688534778627570847132531430014134606242790258114872108539495271607252047331502206742285627651294401304802240370331175680520416050977687188615799128590714416580494486676600903761754524843494570115930281063763768034038804519841070990311193383273754082607751100794692265761645800539949031827837757798850164549043627006250758910975470449723264406329253698306907097940902103899948824421059132562829455744871564330705412674992882341062183885716006185220149606103592144327962538841285275243314471800716792392768413720486472128919190285543350425207922814878657756067729857635142964743680707080928862644080504331009250703070483553890450976855277977620001880094010135917256532583936625920745712171875952640711679076930742697927016585277627367794111010019280998380441738146170681050062654637179925880525517026989324664270203616457500383606346188247294005504196295485766661447347125364564959768998896548511964850302176752371758433345371181315545263927935843038374776981861338408532739911667961175969073795756337751411942642270305900234193244577604831872247544298876263493749805535555723119368325893504857448015364681552103847800542173511401191846968905117881176101485592347989921350419166438968315884134278063379822254101344232988843014675622274338161021454584433736471813461173959405413715699765999531146537480261168407533711036840799394776558757067515587044487957516853547466409509321245427697998554012424499903251192924511265501532323323228470911729389478743469325957728215466267802912838480279807978628026213527928991161939403709081912608746180886101622253643352454988849301462821609696186767733758230392672386622986004753010916379122538017581651456098026371114972257727792610091268164141883641143437131946962918197060038611070622953662286046239272896607663359113544824976489513922866170832934008776181030927085851396265494439636847791939226359902101611869480952616478015920814323311775588202741148349352438021868816254652270647112035966230233613709910364744389546173957095488138948336815455062419112851538963468258397478271146010137175229341326789816877902918118559268340757860036849586140838961762771324553655718974732518218833424983092953799775269382421113942406114846211124188411313215920817464997890603373156634670940798347050227324861851469634319145420375882652493105648132031260162359638688106928056736515483729177489846984116793262017447449670025590429989692102308914029385383176866256562134378847277775876219251581842263019926253323913291811338851490688795911260580895253997236596822066043861071937057526662779202661677337368597743279922351397067910702897426262851166512164709055481177482156622332085637446784816613689904874198671621807421669440817984160085881163092632144788112455368771185931230487782132409903853513345705089599473562437897502882954176898997881743817487754725636539835199653212433003000047810856091433090972204305479675966203466205059324885746600513243016568609851468521648290488829778959154530030660626827025803717716451142701821575095072107237526008251827729203105287399642752087520300029277825347200616871588216844616295436499987316748237316258131012565894781572265259611512698283418640912950829015175576343986543070827862758007517376991780452384549409553086946836207193611883875341942183402104062823729097787620511174229235935157669046330358826647195869978752939113911284967195018457006849397514665409043739868412250551461355772860387413910664823541417547839756330308965425164517066870883031664848406759103965606880289332328302588725745380751637098184451171446666814952660814541339749340790157639007436895202025894151241748765888918683307560915814271302766223407540213538515158991350622165242488793039210868444045555860600464929557034076103044990765384257483581976134660862421042127827053802986792024225901577236346572020358006244091660814139792506420572311499757653979651083150436174164479577753110102392279807887669640002370664053391128406134145943597356596708660908711395179076721538244301193557188862129375940320314095055832104808361263051542989154605798851173734502096449128688250685321842350563110244448079580423642731863895420176104961711480686193243639360861013933979488115443375519107911777905754866848299144524861106468569819280499733704269327629547119493062019823915219016147406371319338187121994626600362690727223382653052294451419691511384995282900271048178362095334749991089876958808431306820726144903337629217427145683627281757140933469186542548296737432978329295055741147640469493331068905008306076115241373002948411033873897376583301567908640571196168606378585795028678618560334301640016357811953608081060411991508255619817257809555086255045800373349796256942103552803115790317129974493036625090719367022875546883635873700746649120606052522926393985909355991972943027396581575393505885148954296126505106196658636031697604997198261318477989848149562995361604833486077900340629203588687120007048631891420582583040491274623552237729952606307663018620027251102420750853807619028408491601453736585746209323921598402139204660803437998387905115725374100277582848959181156185948486600353990637555440240159609960252023952427463990862631345585265905303173797296452139080490820550693838920899906841837460879965447805356339332023144875602023330375346342499132200772249682544348977054317001875100681103773641112263777567029682405279451110144622870914277793944998675534603853850826967610876491446037736914522099614533652823310029436387921996000284191697569247132537566084756813090457734511408459982058498026979633206346043616983817549213362215175895374857197262223604327198765253282235503965184440662193380758363544981691184150613095239760853891835564008065901513639926252874209957195722909069101479609992973807782071973650669167352150532204089347699359613788881747189129419377160477184030175018781834291248416415135178435595493503014778525836765825032401341462930247426138129139723765389428584666233321071653568972053279515077156296491054285803408901072796375071811656022630197816366901107134627033590887441042522695157896694629651503869237152278316393221686843263418990535008205169825999688012218857191941453591306357952510291476366212507859520074052100889338195885227503395448582075928412908745309391723267892584728940389528894565589495177685079842895318583791828803348470714723969287817073693649594271563750266911228791918115886749322723559647285438781703415923423374909140859467190791461052271983616010007184352820981296051419696923924450370208204968837989682181762286973615176220568579554197617145165718330449355814891756456617191860023052691907379559800814529485198494590944720634397446066375173641333082951806123681212078225529534384112152691076528126766050179318411964302174632396215770055440314316426130469996915576657532201391501417062733683016164007063403648585567983166111420982851868377458963841205910806986333048122979865165330786197761546839857771461952870938534752633002953082900159021979354707520559926093142648378906492015508028972341596526814689603855798142741070150387432025174996959552351421089632003196532667027906149629378245093602847620377970659173635711487168567752065688007286527448928581781594850128148833840670591809354583058606325934953384339239636853090013696044548772286251727269730501007036988193954880492263314588867060556832524254361128313281272455479944646599618953901376674622462187880190270743677603354276612588010927192142876180028163583168736292241981076446076337276952896307933887812572128447776395821739851196718529097494994103701970942908606454352177478667054202285213578556112390173775310932874480233168240592929375704805405660673859813137712206366024541512783139130852355946955438507201025217226986714990226286496016790091054959156224575100487532049520067133169876737010237727474772069482110541982685171903735774456379454256815809925924335634737958009978674917185651836528393129765783054311186052137151176685803767496871040505481604529661640737360806553646053708849610918326807599649882786436556688201668671871420693861571995597907479030895748208303791645149686150245745757300645799139630798132497062750748612735369974006872725257114679268238074442338963398291759801818773506446291413621904450212906007095589857572122804683730237356248117629411864149074194366899118330855237147126602114581732086353928244564129624346295968226317959147553320467971819420287411065221326597835941205386835281173518660095887050272638793108610189470752288543275545252978487712324798496576632804994828588872044708851425543692706123762875887864037342760399571399297246934553784934485838278211828671064666023813196258865179676055365937960416935014835407181809765988817610563157231798501713333295037919482494528340846305358379544852486985792772317285274943623557337434262319025616968166410336391876861874370253114174075043133933299142987797323916333358221626841355926746749418531461549411330279683191122065680179977467415230698180218873824778056926990277173844481375201692960180520293805394559000922998706426891799202214755536672052547112481077811111668086800639283987886861993249802420144282462229314761313266463344658028728413976183477177409311351266668394779414946038997821840367038062517455594868798080048809564738740808779293895617173730845831631020348469027364462688208798854008076188412521104929741551325520278950108900275731020040275790768656427761923491104129292647050732633343871284236991648214634487778368485512787285708436522827276275329880565206596961902618046020638799285058110769918074658825938699271571786332438879737854859740219705280813925305583349596087800316954344092757970895837921189357116615931728363981241321896088084151950528515906593408450875038283609939662253323368662573490646455214440202870245875454341938021661204895845796400332483521780370623747183192664141464523369583301003163840398429482857433150059458521107194765551258833669318064472849792518979401633666364688331650508338566882791853618986155542318468553638594402678355681972389207955830125839889375384258829060133677985947291665198839530026977411383249780465082737783263660234937309534078890055336737339843893206120093745753953642204375518920248986443183354183376495967118322482636591022535719640819864806638084892294264606552670526788053998401776256679527807459769430308976899756197673182386941565255665498002874077051852698131755130185873201472917797682650539248248836498817640106813345722558975386993751267653776071170892289460003716385037494606483757252534820992981155322942943991268546313234534037354384554730930188478362302956701310545491667190014619287554408211212882903863564342294704983982646813653476986673048242977297772968335875775198290318208023655451353608366053653788581946066885655966188338782117608683785188284874894761881282193499467682843897437095376318885687256015431185498918522902856338473562307444300539100865030118929862265924422372308970397778563814805664149260786570945773952946743055429841476650976379471147932420540831241911695075325189106759904050889721125563392083523202711311994615255033734571132662877591599511115303932754865240661492741544991707888982970424136338376478453690521842622051143581243871409627857676132626124484519182182900193116537977456874349125951528356918785454001949493351909089480493914641038323366836091941500911382153972518804528924000638206668639596105353469967030401416006110513183902798489865163757670709596572244479180884591196979557127288060664061397051837071109130204026820553935484506816771078692285811897987394244563852286225518081754763880023073096235746472649873138984186692620671728722932463883572023009598624798766795391361595665516964307838967092011052829040153209600681907549413032177836487494673321726735319681836739708261745712273344253508509232589124415659116236548495363446267989112073999957848357017031556682757127236136894682129883959301843350271818101896086226547722892318601719410624854961122057008812348403491153183106775752803550113780921528580651131750852064254405279538641132358460348715046003930949522316215596674459001406477205493726182795715649188860842162606909270529578519225281647841845760534659273787545677816904095493225206972507637822868622800672961274009491515253498683208193281450441327321718312536612529915295683985059515012651362384493844765976421310783135597990457412830107314275439450614144277513450360029701050111887606993914356603783237532004522947756226691997473206630951699820249845010816276830937871292412917579723514748058625287256218290381788446527300515501158483782709890801670596397408636121297670455476135183733828810247772247462208609512767266036356272556595535550333939199030811245793736749625830282781842236748917741773884390807630025773130290738580636803525842265054764630121184776472795640292074318002717219086656881297698404028161131324464282971515579634831295274090994943325667812708767175325739406614566032248479055287488127147532274889558504512779671089470474072901681025951717708561009530227795355735689198975218102534567820171535768970651049200331549511041819492749590121209251517492152450390580145432048340194571602778672156757134166197561374779334268907900104825804366491905104954899559253449358339534993154766872613332230802947077692342054074448887832406371736597591193541370423390951301671927406115917509255303672990600543064897510840022285761059868279323656315353012787137631292982787140132073353345166092329966807422556239294224199706636087927686273188473266212761244981054907375573329201429648953121686536022823325874834834425523790430287886476384086754447552545090438003945750922241728081698977396464913822264291547991943238325167016520580688048420845541256620978415774508977363070978982194766155816970555295452130536284406985743067853010034789744385098267455464831896597431257129233595065580538088830870025127266034789796947302145911326028249483978772767567200385368631812521139653910738435115410458913534225387342577876907425703340330490894401837565930898809130534371308771348538273685197136206845642987370954987127239583520033519053998789547788459393412604080190459077876523335951919171347123562706080050360065864823852329173285811321640534752941448777442806221447019539631788448811830502591703170806952182657148491184418332102711759683063277702192749412971396093160914744037770399499066008870406335074070833050210826003863315291859486725830680472568457714625377702805032360146505157475099634761249605794281838332753306274248980685926592622159951414744935243455959712023776647877405027372378109957955137578588848514418232637567036861635063611782635701452328529651687060141367572242657061009413568761162881912235710954219584330324485907698214875228968070969552121311029125952343877236704304140156026439456200730407828838676667173578075699450819177489837053068740650362131940749749582848936035438847605836704945414050578797830937559248349851676922947245648418458601007635831322366887965920461873697512948531600512778993027278736270801838334543869433785525124543467982075593532472296509692285541945530269825265608643715043654970411170248502866047981427502960560247372299361547377121173743630603466035215864009498828165944059654607300451611635024828919227958242024281220244044179116904015155844793720193628915614350340984289091797812402419849530329928008499844146277504825502518081137870622696305685253500654612817465554797445800994455410615654574047099169803409975424770212652545174398573640397917922878201418060797407044394276014612912672084913296591277365488459041236990180254997386605411599660901387541945058312951967251230759444181461456895115020778625407934668238353608952799921721432057327984547201196610148278629883829824604143631578850870772424353067096932343017661984323114488628556369870678305598702506303015204005864233062388238433134506599242138451110101886520870604145874354962219875850203526693831377206403432757302508922043309831623866570157314681918366637870691000527814483962017736826021872628894287008050968113440757701680639658437340528749955196701747401439508928070747706303320202868545002798691558156323376085590688806639495007246721415935332575356269698218160732554662356207808029876021499296811576214513657559967542137438738963372706786111346162008249291784327130429770658398371301176752129048620146367841135654272295218694831782272896835937805333536477335026650759013408961524954256027609605816337032008285693395446245517840223715974393929241146625556867410355684926402373079662184356240273931403315676926375339407897497541270997252819476226775378057272756487398864097243235655441904997666029492839442767505405927716249534871110548943610247649375518739981205577243295296131630985565098941664359402785949190616389397375776287892808491960460793089061370986274561024701906301326322136107293299332544080295827815017281408868520074369897589877849134152546006144194110051403313430353181939526179592493781273272878357960055490918463274842283270710680738486186033147701474825334024829782140447692632834798427550415091459856420537489967527697291389167964776804573294807541018552482782446897672308430502234616889019360092106630632204453952016283960359745578518493364563600366399539806231287642522842561872399153777645122283312818067234759737108766117870520089050264097478725464506393275733283983400010037539744963909761328702601832266998722060232199926191394513555436309379602470491851927295068520681987957541014609700409091317411917726889937525740572034036241036561527424425046315773618437293811773772863368467137591033486792686646203775150396904931756449009838072317543920219277185731554065281972697037194570571809988729379064791690111837511266036573320949743052096008704425087161806208488782212919518045252018153567152958258867956478967475694631749322342371512632503687239120740269978546703562701823270728424878831017566918591665532658214518703433953977652222386834424494326902474994189160233094375674970855674451587977477111680700293094700352138494174557553742014389579867451509214513612379800561049332622905334596995606588157651943028363231573801576871424606833591185329289437307161798834146070473010349654139694490383471249023566278122797534840009969247630160237406259108977933074821363394159392780934852674853301513952529500053015572046416711009645434700631615167958192605253229463024244649547879110823357025239761571512744934451331607320398127244783551551853561344931543712271084919345140408045433874312681275775777412504117361984464735396546743519389047408521287338190100955196537678245385402623698726404933576466404911372479021160757529869486844689830570797178498594581428071722695259722358242166378730324164774899738146105069902745501245767940334482576015725542377293295118082936269178324767846519483150041590154870107159498110214178876836513071560977226474118938310285733419428969312380072378098369540654735172348039242318530066739680169132124438572114135129634752897768876498772803771252405325153911636166565468316737775145182702317954250397855251273715217556581446104987054785578023497686909753973057126943745257232834927140737320973591968654928367235551575924848065732570716849307803638001731652508289157191525270002179429115537014240557218572252116604055970890179290140475700413851132163528024196513680782862208299217090505609289290730679600627994577016952761948186749905225276607346937754589764609804552711188515429533129728973941308119746305941797478697952993993198145782224414755629110049671316908769666981238807401557244154013532823965800789850487341202812191947547223014692700254778304692557614689155456992930476498931887478922636435170128546214329669826524390889858975623371022276593484511855108925855052213526007577619914352086937817594192598688547219801103722526007541242019130286072729781245776353001353368050679214753116245702575250358086491977094860487326625341934926079345401431917319470719904960895344372155879608162727501631810782621035680262927759038696665700277560329960084968666811057388820019716578623504984459246532186519299701285858753160066330993606509712212126031360501560655578098224176684443629068530134136594366851328898453490494790576405202895122683576341336623183912172795533825899777678944600373959050611499909174713722223506203299157813487281774753297954458056197603949915250785821395596202637642769142416587448886651106844651436937050502292336237012314375453337130118255938292096930482417024693213150578162087622188032456998101802469692309730611466688793158358779293836089259732296536378392874448997088015038125594936455888199634399356320283510344700354138206356276264999074337647543868820423657492303988793953739643766108871444409421557596122132033068554394778578074050700204806251781167084067368966243736002645049625978294379553025624143104714101828697009028925397795168064460185542142223103037644371892797206453530076092575192510666183604757239565229872032423797269121428374992160841537018140588226247177834026327080447802546169067032132025395107837039268558533147260568485243130057491192732731589254856424534828427842653643387219860468818826709715527859525885888078935574894255920045921148245351337435369455088131360099194767176221774893748366373003155402901059643749512657987060862731221453398440184063997942646449083747061545567897822341475052224023241365482351829860236239095293095567010124572171231620038406900419766501988700510707583596575209093980697717416273986846653711408238882695556382529829673641157704929136278243408872360741881360830256678412442439446314165574539111623651906142109529179076845171918827441566747371207067757071641627807679133530667714329304575327003734893926383731077445966842702707309456356545655940587644262566414316424757843614063598697827934890055901690678853654433689985773445349327453864576020780439862375995903274616305887711099818114119569203598913298176272209688489558658096622018833262242126500118237366582015960976669404487110707472620859435796029519878281333263100075274743405950396673395901185640662086362665423585577854020329777362298904033964388640202985272868036392681064620350116097862888015860005146233607032866431118868107218723525260601626767309832009329342896923620765954036234136909376536663009580835414149957660583751917744814351154312232388291665592149512333522120509010428501862662667179098433755778251836122228511065244879558639642052646614636251406784081135310098323814902180394975228142408260709731374320967809655242637130506378293996068448109712625107639532979581984512841541276039221759368339055509356932318650024510344699355675013622153123601458551684641853800566308652836623201001189846595788393879114468434612029091001653844607967528634950332052721413505763189478798898309557347274235283540489695876928073634406975180285748156471612043617112134211884371673149358190045451272906151843851234949976997169896095083509395839139225135303391978738879701205118638263469719635296477945671983101901220832023175585819256502870997656504589344049257881464573592966626200985173349213019769451035677613560636361432463943572078024477785620849873226933288672499563881341950574052346037346926689424572298860570661508379602743190866064683313501251339388557097234816112760195903372502259906360128090525681573694272074066695824760978104131678483330527386063962087316268986075457271307796489514029891880860090143389580095798850806479016514084887125416397349069836217874570225954856634995610606387864187376527560154350679922633223420886586844374283443535778813301422165850099932828564776280825416844260051699915108627710074619258610223363249369450288102128216882241565854395348857330880318128703077139729498813592956190682360824929871997801237089032834238111297943845018180543164308091535609386139163362642553589926719371553776711390130963047940160361187497015682654618632291207074421547421485463408317422086120993620686447773941835428067377169765334037450661071774279179609379998013793949055142931752799442635342318734736585763706877391017180556957006664124485603360921955584795695561804291121115510504829961454036456004041076810213910464144133432237997303020068961918615654837269838033739688874486440931331535413312335358167734658079925595888021632110866899359967830511224536074194405611714305830279677955643923689753509934479417725005872030781190674884328549058796093913396468015870726203824577163329057036143672253896440359694778429580469571464270444588328623591580964934667649980509341183358536386878991613811303414891199180221465432523157245234694496445297502766879796970530496767194084249259950567845940388122612848503173931591147342328920651195814643644795389586585351825409097491713045132463026440038006157071183742597883349334044710636978928181477665368830881605682665965553428477122650929923133949473742446012138467437480609954052714249579865453129173772356903900549223283392434619712510893487898551337572381604833103231260619801173235120857321257843610370893581363345676581862551131134360948376140780735018500806763784472153002925327338437586896619175936368591847394351240455289096036316603024381311342466984287645164586689855979488929048830039180241272430034893717046871024645171464809080519605354640962663940324271407274288782667924113494928547137536287544387269706740917406637589763938572905244919930133915399377788866275767925457769538147196626168422861160093145266746667782955623494217362212212379582908675812542473277974604908608666671963290382473158399714213661749728135153985505470206212485050270728634582472483699415030800535903628254174621760690737344416089330188588331303387950124545797917516550402535680453583439589062690550831737606310286805319037383146149722496710206217851865617883728641381667645907805139653787386868358206478135925230254740582430931855886354756186417049667092554410281434372211236284652562528524047406070855111499189570572599302468206811618019979020179279619995269405402224939594588235491873276484190458763232519520128512616359760367650387917091027398486042216474603086452081369747245755707713189147999266419759981553172945949981140077344207897407252934803534305301685519610065392721640157682021005928174309095462711974105174724581693882451298623366483715136862375395824726011944702144409048077223167248913204521704458022397518878797519383528394437601382536380622599501535486779655325757312335515778993998652903545870694584084215880623811547608931769324715631463386592222454316080802097559949105222770889260358721591968377464164276778642131678947330976301042839827574833689649235532608210245514588570561866474090903723681948376459477627047003734583487012588330224199256294414824024305867162103793698502482113332275536641913779122087130580283298342556371309998838830260148774146663299519218195006466927412121707134827241696697033736588837908916309247251530242204483402871540237188039102818305512813240740970501037497088013974937941770468065145176942269501174466578272890846005610857852140400361400374794698901127584749179331075993111799564396794663353222830237760218262732402455165290475544699286736381526206136704022401787018844033110477073040042700927445273756055705960870186815896814499182501548254240257961400114745095416788735693430615712653814117782728608016213746610640211052712377698878934034323165733547808325305548104042776850973469911372339604744954435827295168785784662069417879380632102330901383285038845504118475257705623905329456103038368788680367593665678785867201194972262555280472924071754367120449552077970828739764166475702481434490002190227175167443946971233514877977490048286447792287371373689459104633445484284861297493706383491687034587503223095799224557110722533766406904360134173984166884985538830552077117442837718030591800663087575703829607269175302290551899851989314429427709689709963448285570491591097163701290066505074814632380066256375379706056740444758979504695516032060771220398654704759589852707652161959899770082894091041057570414369001244407365638931929049110366833997445500480312913701090690662861361989663612624282178754992224016269025567144151110803053166016761134980148697089720727708579438853581512369978111448231314986294490242812445796519544377235773676017129955510434699493631940163330510527776452730457414412015193647679164193777147856750544125519842336722614526195419496811034887095145580415084843473271092744767615666363373962762000512828704423918180523897233986340709086137139508052517374505771410901825821427161011408589316575831588051729091695363497028189569069652695356746453426278278824283031494503088655860270484081072872529217113940223022228243892195715822667362161551305069454829428150266444706188630159704468249003064664019692409315825308062355215893372890955686562029721690231071585432969276228520192001058108332916100779824742051546457592043827627320190460135318369229952730198692157825875129341220231999638844891876036633123755009657686187920930357385123950033643548737787841145658400398796959227244966082625312263834157755207500545095306894093342507719173095354104292450402095393969115609668816597452784056184139726893038588489181751979745044599973462701948810251307168688748476919444674624285990218629740595133160595391520569115993396009783020250489423615918430976154390769494392497779856446723105978583465706378358775384949979003383616938086892842227643668613727459739930878034591839439456213852655011974805875641526559671646552461822827412698430954518479127854467071612103951573118301268134579536025737223447683434562462909680362073740418593222720154108541283582791867566688056470045667718995216861700234999076759889533969628010617638429097734969994396946248846906051127459543334358432150269875244904221508689609406486101933911403344692727255152414972986982261876821461969394488803796026617197631205544958202497429826414460794114492003882043880711670124356312808338614288013334463295861475864572045855557082845799648798988648410273235680562456672690642267015086637260985606767370778363165938228520073633123002377235421358060636717065664456415848678350915389802209966131086421072802824757159612307861281001775477164861117031836650595965833754141705629822300765267393612326744687029460695898161303642850278488273550632005582722976117039682079787931106714779553582450678399545537064128217360668485679418518238725689594152434079658060962243826012551693493102685034689503898008772512291452224123207594163276550320196578738602194297557468452559224186944285045178795061934610346363178639057265750958377289017499044509463035348804524462194466450436339588573750916634067125869418384572289065633344543483347268185888733704886875033405004381469531175994448487521060471546189284847903286227687867139873803507098120802516498188717797083716074176837328489209675595142406563710292365292994138295696748545159497038683210143409624285186586361980015295673958139727137148945436739150445364084582727024428516515308487737818328548822813272100298972989314710614713950216459503263778784671695069690217428783404102236347022306379948672824871010417835211082358468428470542434679023446303345166853404064824418486785556100389842904709959040266271122892080797252144613151487432008706540180019131733500800314938693858351316056698314449705964954610631865568150195455453682595695366018835392481432742864799514036209262590433373415423505752076045394790465109587157953478247965557551086367367164393412538136539207024714375793360730502046053376252669809919309393724722415483006823822870449756594225985363090347044782429071604351190209249353561761176557039656925325091866086279406727920167494035096637617415830895108754505774609294010494730772748590199815206980430468278083474596125324448586533114292484723980958980969337865567542922274437446098393998018174658062418064187589757086424930501524688896499115156806159310786946760391313920238046795338920474918807855459811886033425217809031224886432175023324673696522787138971794903762923056977268139951775799111805033478702424618768016037781443275799203386461194198118139036160127284471973487216841027976552543962937350624780698229706269630309138324255716882662913500919320513892795207777172739946139296543408338177667384593093655319371465574708268374296910920214213423412395147649664136996770387895239752690213926712869925203258734987670924996947445864861753489467161307409248333475147167286726178585623881583970652153579852808222379198939527303441454620075447792258973882598677650464769581329189671207656490851552583813838527528626375680797048044724607349515780983068807674466690945819938640979481047060375680253949706080533628923116034256753164232498134075675054539253135102649763247147612243326653248544601194049530033920421660974540298004373034852155573511413481430794680115045960586795926675516814615140056737938562262183833623175570223406455500108087601852583777813408142330003430625897900908972674642089733755783874522610582695130644130683892214355192913714546866146468878542654039997231562992119174816525648928172996576498590356664491612855354710014869129098129777107280827660008711670344301989856703608292969259791401632544485805913347633833714080433355442530610202004117375224106172933008668075884392634344737118600603106185014540077968848906791969527549396645034216583199608336647599986542079937500330282067083262920800658568342867965478346756494853360799554093714383323909925515245221177777176467152952859344614722136556879283399464627320094266971840548788589811899773939951318124475300433247882943252854744140296189787367087484401196921752395088973373807193604935012959221067043140507598465820812117422235675802935142102879253395827193704025188655673218646740769031882927640913429596988044145779280122923346428590464999919967312159549599972156529197334842109333181251189982070702535239199465816196480665841312526458485052436016204866502707140374101637996214125142489222431357896355037436775097820870132554204760740019347385514376835195928974172365183417486502672535223893527719244080621369412736461986451620829435332324192586293440611053574500682483928669359251090173743364958568990877002507757307689530516613942962142846049052366357650731018299037750588957884946156355427645815085835380269188631911299196116949845504274419049466099118239165656958102141937528940104457530096338608908409051450093627522621433487669038242848081915308930088605107158510130303480880634827136428157301042103005454812254254922265782769218503971044110193374161435100524544590919620729093254541809045758218433579703549311242864057772227470207028201326596669982020518132096071808391929638435097434980609941684648931410993163756223594757210398521792399056701330887372419366667066075210030996942590364856215196236904947563110106087402418115047573347763297697334820948975900323907935944421394751882789354805249725627604284364036485520512483279413498413942198094069875427456729968032856672280132222030877484160915019285499806622864242308842843255447301282263955249907156708684126738352984094283202673328963332371008287832571709666113835637798503950688415570183080754461725154022472447954734862075588911994415755076674539370136292371359886761976968770107699060879989551636889449041024425555594608178747091394260620377384523695979496829870348868022760568008961270971692758390710138966289931106237105312080853619092544634939845396586377971063611236370596021834896085980361053146266647155518149283272025109092518561312236637673604196101146794460583785518353173403564767571418553201507967316100618076669777217821117340224518770194655950456669898939957825161042062514935691700606187464602394660594523582318951769465750468643574488214848727316798961406921151992714971649377092653694763697220987321545543616881936969383642425834917559746623977616460833285384755107612722107468661228258672161810275976351059776950101654671465306735593966302521363691839939407035853120994077235736470510295108918521378253650155556086695315516793327565623948534456032423607530410327267793005619855178878180784164186784493121548618615016323475269808058006219463189579075673027372272616057883748930975449646667362456811013571421901932846109582019910116324715252195169394383904482127285006054374398362501800383264099933365599633545853976200481538801095238669871162091569726453504129151627714706062173583015811163081596156439806905500659447505452427219775030801257916559409516595295292052313855522540770960017499763011308134066150512036471396731023486979240370765974768150352037021452317817828369915969493585606540945832131906301899052803793622999647829087886369480614662938920673838482674941253281796079082865770688437729939066394829142727366133720271712414856602142105944238871143095442666889373977412161911088206680677523003092557448647054387651812872808352527264404528847874514267435818779151389528004288743242503246891750898510410726655095598502020988498252761519667584045577268372155894682466934779322872944127397214410382791680486245094061783375057794221772898960094977948042420125733407995271879394773724966429846896824960440231403435699774310633285770534315642210069207327914889630971348003316782521337442232153051819941207058295032068119391135012454004113056211613102430497442949598963930766153462308231933031997471338469265835404222927327124382516197310585022450417090919388063062959299368432596526892193431530397622880400546198200160964529199971121922108177148684661584781138811245596220106033744193440190017597353391782629915898903656516887370765984835293765678295410379142544649082287726082356395060532050164370512458965014304069118062868699085611877532370882051166596373205398229182307908611775093409001039554990653673353467856059956737622218713016943478397625169436607916512664237404034953118510864168487475694263863025085397990386469966152787363517882603953607566022137619419818742523721098915318022125551874881705697160218775137094436536157965040606145921637357898749525494190175712951046551357243590254067670737304158369686361283164087561527829469138725604364959491534686194774369246439159882536922004545693171827800527791164705567435921196123884540014109755134435939169182930025916039406767709752991611982437738603255893954237822592280013571512891914214982283114802622019633325984296576441309258659705806499961403032660957957186755479689436378043391447736536134223111622501043639247838739844611810141367073355310554116930027051831105635001623677686277656092114263452949912336367192375798343660873449473138845643323113881613799900149678899529423010821031658094631466390272302251193359273582771169236299287937781087473433936802193039222045949102029688778751183915468093526580697063267459114852787226081864009646285413109556135804501677254295563591035507239582673940041468850997321038421603862212538593909564548294732287327466657063054166017254097376666715428166141019364093793462940498102670558692034142168598602251728181935535369969023593616729506667466087138725157980054385515196373976489862391050607030158354229499490809826721567957807182759496112303626455559027967134183212317323220324289362795895877156581394640083774542663070032622230288972131735813298884978491722923579023474689865051229122682033895460538614666676220688788893726900422392546476427321156057965942205072378832447209149440277663133277029784875396944553269004072238124534370093892095526809574789100614901785470232280330328043572181600086354901301113122499657086407433667456875323946044313335223609188460417040530540999202810691031421282862235674583602457075642287408537828945959821155339303778341874265474598261320411364326409786660787136081271630792222484077160019075139820093165383578067238494982392091094896721445416178625765310409736335365378292551638145358765874873749193425441771188752123838332269189283827381512317615252181453305045506636445658441672734329079609047684177502303349517588009602859757156027706597081906826103971358340356807677810070237219254889709549548986225060833114920125026386772754983393185416366626996829522281033165803378760336698219660006857324403190907113420355292696916057532594635817110905466170797423599008119644041807900788853446598358880275395356943688207430398623933228070419647427848258007651393317083838812061698154703761102962874491318934071489771523739038001469224855204213970241450644806304632445264438261697758365644078970949848644545896242774320966793055631132329102113805128907054321963930566156793904648630319666554102104849224359734095793442257846480409820713437566822950864762597848700436290727920427126951105596645874749336653658686287098063179461789921398651948404791809497882104677030424443632462907281910449502740521379542616794876228445128644500743537784815690092776799763596064413856976026866165051205772294105052056079772482166066418085103536792692121447942012379569550654217833584575228228316315079067191619616022712232003899353831793089877222466418661626555838502246915414178015523524412283647203635325728456006304937879097216949945491186575462569853475746837049549678680119312485782298208334623593450089182264003431733862865105710922043700050550566865195969914163486802051002133394035819503033706905239089173018001032875854961302663489314972094621818453963092645662566369695635749935495308310513153230470383802031961910820370732525632259422704054647673203253004186681793586708037284600239763295791567827236783482424281907314948005141886468047710923300892988735888932182110484216771690321054575309651999000460379362752589001149825326046034582190999054390571722499211681191511646167992581766292742910293490938642386853986133536131864504341102172728510862270302546128564451997446716224118932164408538684615368895698014932626525400562337544187355230105827164177538192244438225564502609403652515206031408420501706654846577367528741465015313269126331239291503675778631688848955752272214170636452067923016279026077504982814078678290518165853057156659947788691689205451852439397883182681797142326144732636508085973862683032145609809412971887468139261011296012602780674826972328604433063479473469143179900975045268358710438368436045465138727412508931966250765026439509707155951383014096233671982128767409492030206560080462662611818959272159574154744133849829547696448391515178491506938676715085114963084776458219246404006586574644325589556585892315778510563738943539187355034438005981846989583006818860430007732373612448290829274403396235322992750184517103997988881167628562057017987401966007986902887727596807075541576832933481887258455839324165613764082251479736499217945212720124271865877862605857122522779275094768341729402273069712587395294675200355407208845476625866331680909526482650343903489830970903959973236698558285248074347830824330377909893716053186647180282407280973290111051151375827595621355772985144533202912624066203337101866373006795787821703321761748411357072726013732865201035197896187887224868795737571989678207140270680777336424503894162156270061033886222067946289234860693734341945992255028600195362799664395073455883864008178802189214388921597166261201242856811312151229578558264289461205918323469686652603125980452181282899740664249686511604161292071170360585439937872558207906073336477178621235874173712190231653128942497306198302713184966501513838447099515593418291462877244570515445783925959749044878538097009041198603837641878901553487911823493577833782886420111648982109270131734125682640579164728266137077330733561892394731266459426704689449020962475117160175317090356271482849790303171824558881236360579648282395442135678041720160318203557065326946403861570231742676912831984330190211883681945406477715668581330591638864590843154616335318949435603402521491103931859388347561945568211781026217908304127390268764536326756909329822465508533611056524315667677240079675019179905565615824873001998390533626252450245305662230326313516374453375279269744622629008679804190584673365943558191744699211542996965102481250888574309443594278155089430318865255196905557631175646332604235897280234928354200413144606025883928739548320477211096720673735650458508151640323595027691996279788218474169836565630292684760770710155531675324855109714906721723524314950098961165806251653526857023347557386209841959851736671608341376222546898333994835060602472864362757879090306985635014700246073129579218079029884974936184935296076820201378337153697844910183750846999556337253602913141840887168197390090768242524356315985260333839550886241574507122518296836852773948689032239186394692486834950386725243665166398117056723997383605411499842859130470596305299422074057811632002667490755059456771773163833301482916595656225750436508271117421348221552219474657787557781165394907887693696777746859011509309042557607367249001846822018374453588006016493187568557102840320233133727879938909830387266679494321622238153492359887262508119497292344246583801371046255784974025843005846788691806684782237898315407276373455526058910024907039720205198222952860292452319310520140041555894057618791367462603947696432397397021038338627448495692683621346771526692513886295206935472622591901097918398513163846602090833397403448647948638032371437163356834954223844847715676305305620694343955590484383254651098357518298988602041298429981429998385722430397268504236757503639531881470399916275777183755297586732587099403428176042835547037078549844622806426441574793057315731715873782348654619652454210329919624025247913711730559309477032720167052913751598073038451120462236516791400968012275669370437571349510829805516111287653602481585124420453317888049769341690908909842071250556263412387065987800298570860909973378736478797832892596849760428465934981076324313345810459624800661864340385184903523068186193534851526376140264259210746366892870311426652682821538243500668408416826557985521815488978078741452320854794382795982826226945847349326431271265136923573157067136808194609265163396696111845564166654287001257419357539628198180415445489131723484129992877473739057442852401776153745655577103682833518998836593587105318505652584200200325294002842536562686885744034883871664417362668410203915757984124293150294918450668559610574916328849163835133982594048110471498664600770318297344360055531463167639612513901318759905315192966046954277099146427870455711772974917235295362999029964970876189968810769058409389054757442775399760682549628627884000673581096769695443938247780931913195985029356569512252736430241072250879785116330229868156859760932804374328658919121863340695540556096540000219162324470107019243075254665699392251317660674554538963835623331725641162123079261396695210768317148472092820546092746413847420661644988392180175412162192369916381657483203299514795439556040580319278717709853818740512869556586042061296193898479117965087155673753291972451906252801318295635992402369184864068322145118287774037193967774917198256287649643288815977431645991908497907793022625077684947652704493306649053384505060641000054626378541583741035776990128562007357221837397229982365286156173292990416005558807421327703740996171535928069176739342221376179157647511479288296973424079600612149740362199387557064214020298854610861353780519210357020987624607082549455360081939560994886666832991914231858939978186578053529633095533238141030094792642604510661197875902518312250958923987046056193145528269177518618338812188607352952615133422412904970294898680627499541209004732479504768957191713171830983141690715060698800007401889166999574668999446568305052959867087615028062397583686935462980257493716324345026528478444484842114592698547990372700336192122233025808646656309396783137567704213558935824872432900339248637073313503128036934952390414623831128815350508165598570895142917667235912487931785785091755860180777657227596732083023012856050499142525298251293836377130518306872256077996794716186669698304674403463565299886780266239103108421818668383932813086613709364184637154893262687995136681652479053461891572305708417886085467383145790086912785672852350207352312680805446959352945114195983514014271010016398922624343661305556251838759488491933837136420534831601502351589136253325217020701326488137852683201560717251108157840100402993108891275873298442088639792350227180273879502378964410551490711443634461422598688909181093515966242194716465643090726933984057694390322049639288534831150088670724136309300926871485041874103176410071271953339279599002932390498541281115808492474602733682064355729066692795053347135335054971053031095342342967376769041334423882900967511318151693255344183407023094824661249674077475711621595017645042208168207121509611260942450009075339301325970176839706312931623222034248407801591461817691131605240994969025792161290976649654432340132496016867152556837628224191115033081966084445249348086322815890296883168799853587458012814385763034348887971940930493095127312405243213392442109687412274429461296938831682677667626193721299433355833494630411382073551815682874460996871050503003911034964613566356918941309949018940337599911570614096557377923387519176243572566144096841772053114698275625220489478386849809953469654364939958625229818475944314112091817113104494712381414216423435363270284567289948932176850216146868314126792436020912298194336446562980829362998249105428624913332436720353303531391544571238716605625032215793037173882659465360258388054750909983880578499610439902661136459109241382618526067108131161437778862107702131888627643926151332651047113158367542394058668414947530535632329576898163263090603517329203806723669921914201324634065518844539995069268694933627697913592421326908738116130884359213227083284874759317258755367011421644396458151337334575691369086669265189028936390172429459060397038675243132472303891203149168641948989594316211045651202595914882195658193836692844751668542463712894236155595908568705774950269997390297888079337670167768237358778851325777949043079699101846270933645261873911824851119338561507712756254856884616496702543818953897211134038756823241843764303762178387340668042063036492773266583494788990379745420529867804793079070139650959389380995477715770536247221727949206916484297481941435278591859032094500640727238812218982711405308125487261325543266596889745177396356119238061893125583032262155857184722915866474107489394448061405878508589556288098009090470604909456769346524874103132713324407077177416291055190071793378392542261259854550880766503461111322480624142912594424168288777007608768978796578988390921391521018228601167449870752693387409952725100864666342112609667438402619379667704283321179730298808771032790475404814310598512012819001903569804090943419389170846825937029787248939654743627519540042134991876570039058058851768961707119063949387665271181946056309513883709753226710848998213161036353851383105999206045416124017884518579111671758119052352303608107977925208180386381663966931640282321957556068119421938567698218947299047285229677984812779146936479422934559431735166994288179468298321895415237003669124206011809358043385537089927626997607737108520233809263865391314665561420899471135118229801248125010496354202836044962337297186541658034309260122444161392169634175789266710257382230673528358323283101686698545601020033902851832687337790483832383367261194608201030223325742275037936001324873953281340681932798493337076857121326862388500743283641032714807447248791168506340258079793435678858699410544035235348562604748828559828625709705985041678188481560396117708734606271990529059096612309288247069201735425492031248542430211033913005630958138006270186294797730614464814750999731748167658215623641111519310997613476861411785568136725954201452271619532605455272917117009284699164916044600997042329878124480652281809592524741306391198512608861184127258438198996400294943640749372468175115000930590924780952026625916648084572914629445712441481024131548661367074352150071183232017426019195172105564114266943844228353180719044700477504330660253280300780182260667253635782128376033645095894904875697150918799504236991010889964512045204299222324251248822724582195116262219841105174686270268171094716618618010163103938682992291956571455080746598326777973943564655146663556887916417832183237445133348109984364975926351843960172253407464377790887060804436973841062557303761325275556085410114000277388231045371333538490017999309590094338745012104351598879255860859263121715812792676530741153057105468152798424874628702648486031580525629800922803501551148636871800929222310476357135898962640480217838370044595032356147453149899933951342938986174131598728688815694308305758532153911648131594050521329740835800279226356367374420635255495558169776998846709335651554867861466438932988340467008337624856175911999461701783696607041284106999098832719816573215286055654420255471972165808628857366781508648015308393422471383505424766456827373739366310526700532674492171253214171262999485820521468521876271262140157309705814236243911248819019694737775917252472335315613437557238937929385379904278167116799238079267255107447170456815195588831796447759657049718993553280450952815824364124197336122893880100013008062430929386340785936334287231479572313261217223816573616138005169771346257548005329451195052997341240832060216345425147775619699418712000073468469115767894933779452872528807759359642117630826550592347055493948131045511733700555268974050209078812808748523701649764965924784835788313468139942365048789554451502644874038713156562165772063560098894275873754582455787445091108161648051555248487418027015073369121286738477485049540250583946490175016241389800728839950849666686535176469467631452525083829333643393976351219184841475899286553623391629019153478085022546542821234396447521515489272971869604891132150899863582089290884644177481040761253634225420169150831671285156189440920418980791507802891724655581338492721192667119822994277919856184599019459057163144209722148204495196959145367311427570163224916914926224530056407191082163126902329805486608619139780320145092277787908949195709001575789777276621605606859540745394376062179683599945870252439560391945921368113294841115260010303480318680353075574690295534013805575693586644368069533842801195876457972188493247881206161122812518244639467730699687638858308472797678222226991513499776110351490015686071029347117475652459622286721701776822369150913397527509382600049103544715586249508289865251877849508752668284810626514082107831869872553561834893260869362170704233338797297791548893231176572514419675589004251164359558430529800046050965669971461314569614919724452035085416744803017649046565720144215712627556737636095222159236291714784681363581193057945551238778163125089651308148350905315354931358301443232956051532090377617222806014590727631542253168062106216840648950410179420407170488827085385652009624998309142668935760260468653072543512859437769742666779537417394441861570336007322389739237595850250223969997682651259426346075015544222967475073596918984591455458102946891575535771182855872393202164937137368554947451669730007187803644402748872397634234438165864805968774948030324807374921949296470859796346655309796798328573502350595096782540625539595345777347557599843649084502086620017017369771143584017033008271545494421432272690095533057060287862319885019829850209714161673197724718639477315911889273127163271567215202181293763175470725688242835859386821006835770235128572330411382657674063312487622870196744953229951878056499249226670386524114197968338447172245417795548363459089022996947528763974021272241465091455633117046271069143814349962416708457713665953846771107196045510451938767793429503300106672637507286353700776874995240773108476477387741998445692015021454429699541005684916083197837528115515624304782250454315211387073897886715798362262121868790122778734757992703197595118145482635633778064158877363525043088161660846711204877097651121907732178133033631448297127302823224541163954805952462095320542563440452811648062874803572934722480438697448202490577827072327307073563500162545665629858874756605294368836688114475905244600881701051801933756652495874834042019169592313303140887128051205573690195012126052222983719804978707044920996278420588399606318898939861691221221916464832107875162475354340882760859015052657066003827943458663246115856089702073254686403271604499122790958148347469193317703985100612270931349064712142947366652261916685788507780972532925594187470509031581114241622847003175065849302560635372164088204349555243852512571536087943875277321727351578246743786966379795135724643019050882756796536136114154085064091946104936162696314775008026941191426944288150712915513476829455202991104235109262728618867905205054765033574824566509818529858073288147265175108375690141228387303197491776175194540103532139403991930759912989297611993737054393898821292961732422814670280684117731108727219088504286994721467041921782747054156755331097873425380583083511435157430733606338020298160924406296587420533087023672075987042789264381850689303943161467391155752298361881370338643708680117498604286714915676592300945566713008146990217596852916859168398371170450608436737388533427499991076836775600553700868388671230036485743460493191570419264094532285485471715364397224974889766598962949789674715035790848781916411790917223027740791185921094357099849092989499212044435548513025465140742241317816177748480462416386687304949325645478031952197253043579423357953051204307198430453276101102310935892787608065777529059921725028141899915132182887982036568297112152302463026452849081829254672422832054562568530905260134959251253868533505101560091224242982007237065336386523922253843104272349478230136929176702095033581398218011888299412471064778940129967442481521760815186637290732268875780560534788264846979350706708272909223785039120144410717472511748060533964101618880939046278824675303438221029249262478255292493755574651704173109054143873743478387153333344273628203071125286008556968054120598596714738942531208891136712733099047370538542304281370497522888323515217277122123750794819339094585490591059795117154685045746841965970415765711054310094920400469662488736605694286995590554120456112110304248933693861579941464051508506632549319058283819808713703818951682512781037748049057338364635352426519847835882965622705990590543022496068225468134345069148058102811598148154503710190483729009587030541234233877335333024911147480942248196723093778308789131478794633214962555700448219245848915236922970598448086177298080941800223584181497993924027001085762803760844043496575556638673406904324476046490587093021349605202976025841974098750095656831808141020086332998245350839547736917561327325460753531335676643752535809411613680775024850239216192408449681529778801453166693488536425785352881505057540009327747749285532177013279367913488604711662797928538378051313466113713609022616535842714858315074287512369177092529303369378735089915137483266546012001549462407421557999434412431624091461438777870179524315960047344263577044553729034080786325609069796142334477471321085225605854766591529871210215464532298927805281283794932773671398528979494083801289684517674961907280732171121160260730861087656164066391960972889478412189500390046919953143027714582715133836510696794009258350976865742912544365138758555035579291596031782760976872381820809136650314568293624685570802280820917740308296815685789270607705792818866519734166797214880424218611229938453855270304377354098524408462745070397278015573273720865014484803019382522152305329763650327943243331208046481825143997204680464698820257003612714744923233818474568487533128865292018892675209515447673739999447958681855513089815107417975686640316904526800156941551059490710111211572417234607362191923568448076331708368694403038259450284279282942343870772900954871684871637978421680630078251957322522175433110963920014063972744427933949804079447533201348565120236477157914765757489331299249413843320459611650213345720681120274897512384747299662558421201518610331477591488284692894694242731561410172174731304802703186992560027694394846875766196855242498063379113462890573222831611625515580015125499011079083523420957432137794994477989790307079275838986530798190331224277145484007736399339004227920438319356276108099300109487861062544835350757516116219914246214108565112575338045085965792040626867927852628066624798029261037548519263972922777131575282665968368226429845035682029811785393968661414481085704559941814271379116043235490855397401518697619158324008832872054033573200360565997497736252276302633814205727570949669287043381399267647730287965087981009712868290829228953792822499746768055204952417066585881924115049689824938636435023243094022819149907265952572654382280125841677834038921440660293452929494024000593792522963501869946909667060540342541578981279099470702304219212207799853558279049151400546060515729170825452758006569683258863103911306235569648168019508116101281404597805999471214048253130315761755631656555125103544653379227748615916250743284592561698070954603480208619264035540508527115239328323807379992342172637717809332327897820038114949762041031560537294532968923171987111922178677961903526853978088949731913080508566649993333272951838132083355221421987706602640083370177347010237786727559193763120005917055434741004183256190607130104500544790751419005638686713195059292706170802040110803710522847799531645044370217258108585524997162880605233414439196662550704875878162295392926002363576518874404654704496107724992329153557519935543043605752698116015145261366241155332351571129011607996550305552374853848229578214495630784164776601242877667888834760078445347074550360050062278861852738905366061584561275530114314038118848377923234894630469746662142120080959992570538477212228401191181611901217164986683755921963880805678706383931382652086470549556609422832923307116106151955908761015759263697841573684359271772896701061119734931659108773453768437530041395855444593739456238871182101228253956579442084956472272690429502577355033590993598030356666691183439231469720068377002860013442510030977959142303575777137027567068667929877705217723314423624302855192952627685183349463199389747442217307401090736456146371066853409100439793227873339905930052703381665212903394700885659823651136820638435450359256211180539980766503098569046696030858701525647924501699354524661866958085884752096877789092111490624735590548421239298300433951735760774820325717814897848440194186430607787359737618067904317973253654996087791661055744971501601175842756578455773271046648807747062958364115690932880642673807725098439352990770911839749775422300946845884040288787580909876388813511753910831294400628186064471870019306819429609833402212833423985409765489232828754418757941506593140091044498407931870095616819762914106165223396906988248929666041123471375430164026550173157485266443881143983676682640514140398951699521862235338584686263992635168861483984280587361365187481859150509074223347905014279045969036111414524222016029436739956880692140151948619458198766001041139128188080933967063396771795229618256424950799059390522676207696817041156212190917101680076625052336460452348107715113027414864974841534503754087069225417770305011139968244575868693486426314043232892872252007890097190182124677693083714646143891093090568289414092974027337830675852094045775597241997747199607961243054068306394925945164180520078252665665706838641575621830393670403363646430646121342188301712698680185452752670817226840382544015740191977031140811372018550577847343522905595663071300314573158988374412395810887325948184522135247772405489057687042799931052889736625414114738149061454294840233146637121708553093927082453612868131715377169005294988718072771508514092404614759017321085333628507814060209372878050708136906303101919180517063379348672244223034225852019394921464824734639089208150180496066015782228661708317730079261126654135156311323572004847085103111832487734079477465505280720352892597659904740467287380832898336569826906783908389312475268009943351407398491330167603686164165904052149613917071911541174442979064575780370905765626584134749567733990468485773311415084062537417313796132716781731877317950714189793537205191522149408353106985983731383406276548694580122674788862020123058800823631786216528437857576514614426651066338662558043868204525617193663308138313987634391502059711156513714849367861546534483346850796535451733705288544371348569091797468822400867826151476410670342491028645756016475408022602391600696371342811257762397042893610782875110402532720020134328303914608879142719167920008216655002789044219529596012045166188265849132585981103232340986249132219445596532546190182220220027968525096527388697978884102053521839770552524876830795266952743870251325797472933609128414658262042211203042303668907191750802002166342557728075299399696652259369999521770604833422691178708336632409087748080168291506924563089481056514975844808160767628787871571755724981373856194374852271655900831593202094888395655546351695203165067953323282044188703671884179131636112088152939428877874627071601804205432141668200738438123045592646301878038753754588211162467121756148832846912202298141274728694348719686171068317859634191759175424313377966739932334226155101468626585651662312476392494143884657823914670839694333718324753967620715774437343745916857830550491272795293490693227193865416886843039173321611921467252539609685431040439677653991493037254265977273721871128350693751036570198379044618917114145150282283440236031725718002494180889099558836115399388290717688317774315780351072999041013756110376611674884257012153858040902043665846643215174704012834674163134947353047739942791665017732929454017930966755249163671612730796576852226246519822869250113041913075669525406397355788443126174448180734603595201339210520877245513505063591883499105289637492260326448751848005696135090174417635903694577077023982347981648290703768660451642448142420691560041930662916778092643936621255530212158700543286823934304341577240789068821434426782657633324289405413957254998049176948925172031736916660800277291642889320034460223379988072049725050289706795852378984226795770749834750307202977964721894065141026764997027853858318812257092398099173301836043982874191623069344477962058484424410009036311282639686266204270886810992738878166782310572265253805700604766118323040544298753876922504843150230635309339933250975837245085214800294936461863991899610186761729518798771500558387491979579493818581101200416098021463861331573918492595024900161771012679239359982019049190659717986355611888967317737228367689156590027497462045713524114437090844378916910406733877668716025308919296412600310295906393748416329192712587199212362101179769126997070969031398529169885126262380054930925283343528341733388655252443156543902694926816961761678485791027001271613445153592024345636829961176349697725623622975911342422971345061833356491759129266678495560718836368936998036979767035477325925982196722209513434461665820365655327322084526713028556351584947180430463927232242259627716383818708170406855013414307141927821785491095618992622450031313308763627112483168840858237172308741482057026408908748914648201327079541347890919892207705666361922597850060790098744855656321341626261857450614774055893060512081408596141414334391048076787657258892248044606629480349906885113624872843161606413413388675419929410566111313865432597470993066311835992133500280471434882139886782010448503105600973801510595012953129801026346092826854159352768813798072764748859473445898411128623969247120734148117336780184185647145694667789752683118445519111119721512056963272108888326174184662066371587913363185047131395876740892035650152321726937421114589367061482123118208067595766344994450099299614801713123480343050980993649677248556261342509308076976494870652416765507290761654044009945975876956869756119977657535359395010650395633369813495550063314116162722608754936450604027255470303145151226596487931925911085640574708874468477949268194721477498851908329229353048547461134260614890242822426543459010616817129173265209325166316264286503473489897158398183692971406304732903097972210494113476428635405564746549035737163291560590472876802746576472882396822895785067848582141749513494258283483127838374566238588871700990449968694246173823722137589090232290582083189019934874260343165817036053091624686343093518163574245940121149003558841439341549540683099304749553095911227922771643077543889557880454393723794881398587280251338453319988840401793970708795492527733630166493953735320554168599524448798467381546128242944026297981394788244409640794100078487408396743470781005382886389979043276494587853153630073711475659507127411327288013476747194069343128459792410354040512624508284271699288339626762408245130129726093382529783745785353906908093482176877445033364010592094599630277451917627449879790831775977904867071555362375495899639737776939329236867522620336745251455494383418749972585901327075999380742242602222186389020780406842563469242682495249836747391235628575259430566659672393920429534561113325351314810158582463539274480767647777742131160344627594858185610097610676722300527481383094939851325298409439917798838067265045023007614336654604639108946694777864966502584431421665862543794603130106455422481837639862490100282990840766108485527315057596546265245718624859512613838338696167596737943583152067944550287800128195274515570814308307481446698512739021384180756400013787951043225373095499712615341228229655148953315615202127620123131749836388423911142122865060565585069382272132180728415702838917654164223266072047346274691848347887278388092525639032894669249711196812810085314317449017604503495812797813371112524403357864777843328839346069884805602012808516710243390147044165344734021367750887739050307093917077771373710135999836976151801622632771718419127266514415630902869722383207688143858954945107241342882292535354251812635208995346513328735915045161526441730245198068712624114414132756852928275233814516867155888559274170229069109296142044868328426398997571791451991054266421643953112765809036545001928099354261999802138358384289545169051199838535506230631190383663772294649680775513028343554897254659597847050024161428420727422195772194507580214970943977881169884849531792215104674939081840527755574340464041321522648813819051343338284935120392864936746339955282282376603072071020168360335036431821551672771497128673640360784113067900991971840997782857925876099825293900995528452965501645824779781645265715723588964635536489017041493870703182355916718577152799663916337683198433585967089317473462025964525822799420505665305976347198391223760134249531517901551106488025289566477093212998334902286840133131214905184737389626462560381413373867166874269480305686896094767256421774867594640007438898402361916722774865494901324696243372252669885560093522663356887559700214020139645929251035747493662549007580645207098299460217614087568703852716696877332707665658763084968575513164421904365627742374658194530910540126619153464398357777480222673264300922820138524242628201001947763034796128340219934840466141693716251889045653869432540477168524666755188519772588769210239971296595025750392345468158829018923697018176967764593065945745819752232290499793487605433177770043632024000990055950005113027446028079534306056421679788562013129574836701160015481033673217770394490774929865047564333137980682995652435286919558688232294221404779004341709891640085694880022874829947180699820621469965507851942991490608832477076638422339904242337839936479174151745064609851298994093777504808372751000960841003300555922327757378342628112995604891420466754645563563308803279140549059961939250800825736484544736842751376430777344797527606647021711513660327210122710640154422784075666845074431624277522822681847807083156916350146311254670933057089936829371596237280875525626842172031108193927381619633935072105004267924517335044660554320171338877926500292724227976849687789166413633298983613272779482157930500623167081790614681547599028683759358184370801813113465706788174453522148184659316407072878801261563362147739641908427872438521533174800166330375892207669511152012692424150832029389668016444362922649572761116655639304072120608702988810488480826213606703307274167392691442158409560183555604369761956869631596725291619946118884158721806534438834508034514959085470840097597559645252207018049792307921655372813967153677420850842209881102865269987513931766471626894897285094452191801549185346970202741207896977825435444316344077443246926945834050470738667494713234325834667332762429174648718730149689147210705801339117918399537000098925730024557850278342220130408457676782257684750017554846150924267111062818781006307602456205475524406419032196833848889918276814276250622677465363197858343603427988981873468496618446268824572317940808203685275802674212647040355831541449273186307625361780249558958773627984229379319926181480361226371684270605034367273522880559989338755741355831129068523468717247050073990351956572381158754698166609196099820504788922907791161186456908958689665383351385150800802306205538004705235186301013692055357070517439926059776473183097594559807328955448669459128411181407028324187299477064664819970514033750310678948260760639370643606877325856681327535166745113613767932927902732737487860762434039800247308408389067717080568605442743482169657973375975093491768554490448402041532012157180583840584288119147543266762236690635649527086331239344394173351508204811602827476148575535070364764028527960852666473034227097376982947140042657099594516052531573947186731712509646002604090041891646786217482253679529651534158163197638112888387809942159014936330102879906558644787234249154485620182311003272320228874619794527094235955119309827710085077311803335393772510852187637117832702621023426582273723830604266019737756273538919518081056575125006197161841367998505049449301268897180965943401294031989537468400161315247370732467182168387587629319929406188511892336127886142663954318142559772781227434349950149818928179463021097971507995266010104209089498760073909560264224169737460537404453045772999754237137826536541813706970704974268179986358152250966571204675139734663579088853688042003056893139612185659022319259690863221954900472804074286257070917474750093144520579238163528232973496528628386709248515719787751309316259411369219105002359069167927801268506452389412097234058876099216035056143220003003398040688047244943364534535202879545166127894754992262822920977345627910830410693312410915258386628920438942413946598087189384326641309938439195504164628220409438564637982226861541202676132933088766626355982600046135112516493524068710866725659163571352636420066912749737923485657689977736256650650014597233377013426529216769076135448861418966440078464705416056746135320681801843364551947162764826376934927205352020378074992039483732167961714125839195726044992530201731009005877712038551934228702877792983077058732360332961862907051980579232045940839224553532350558423155340751390465186381075684904146978586562401093875628641391305072320697110943809225104686241812718809813827563936536117114220045403254045026450266918999721371571017422154113422966823402601030762021983357143790775374113584656373099784218076894041440750332439545248078613564340267554856487380961720981326183688762340973439324110626376920708372305066188573879560461215831163966376020223354071428084231512743622655935630199144453377925229050575093689253124970355038934650728230818367140024413546342347224617837326178904832306884970069207440794374195568438212272882422199790684528402088364843119882189678391593091761137596599693539830104015448416805528688396336546218948069433314755838455617588210897034583922481104368087341508075260212104370073291466543088885122422311918133677142235446717185541174944216606018586022957697145671145922728265199538832719232323918775229383810704816435818133246320187558273178697819904774110404577214932971589113049582878515629870015317456215778637202405100396320867461496430935288210677689476698642526448991969270926105554863998720774346851565661439487966808080826442023030342106004207327776976311775210820768715900913294898124994415925645836211466344938498078881946674820862243382269491879951379639512598013256505097817326256839170913475761982895896239001143269468214051522185754985367439327283136539504567377125640631701438804053821986101398421777685310522196994462403202324553687444003602445564550414312668920545144277024519328044007457194871256062062568248386646231578106547335369213472358115101749010371204173005855777392575947163945163152093357212516912530979138970350615556556662614162529276091687208496482341996817351182111302847110855253149614932326222438942537214055339739306943631433311373487717279524090243744390726285559608172956576348509346708745405585087061485042550463354944919799296002344535886541205647224951291130155837781646688018617009211940297450020420258510417378422657483031433076679556014637393640797372579984749951339512184613802749089195188965910275430425443700723497873639912062541475095554043569156342538184747739191937660837593584193425582770709315856988873289391172140428443271799783576931957174632379253850493440724270210264538428925077852414108609971636589029682403110316219787540520939585394753845731576825794457122166385965030051685273518480431198238024226549131234674039493846726192340311148307931268504070677066304026170059212799900932090608221652537643196424228336729827558271746377047573378849371343175777094540533768998244425500653497809984308822556629350378053689041508285645272510784921915085682961583352785829425835176705944654102193711081080059861690843274335341473381231382656167967811915966382335016686732411515340096786716497420450322462572526861816828385684321383523796821780768600113229495665633908249512408915732952718008197337533726580490628440305295358742389807697734560521082526385047374464744125103969721588207914682722636968660968269837584041865202453961562054200510627859470305543927872969159653906136091305626220293347268963395053505597120156400883482252307568262149086504437849114135295454960842958368052966751281723465156597704215824822402480183457634487587329549338695845899619249480619409194636385863640770563771882080738747998577750023538903294131222024192653631561063473830524043763254534320177731212744713548743926987988001426038144811254567463657144652224803195210013461463732001910415708069882735644774019681536296090136590450029820529760386158979775729839406002056797664545900053587162619174735724270615132804031010738392330596892721551166579002983565217571648114679154583910435792634107644242489763608949422871708273421394234395228498744918933828828613552772831565499026419245718645488974427647560093004069449108884882574873728601052177674416509578606825637217057841806600036769845741334460481199784436016954930989900358071031180682175156526860765086365008358807431404308245237865493091583366417295370602731557339959086698620889366294061440332461292260105488740114807223645133642419595853535717162792535958937718916635211822197084465426257998414058063628684698173212679080339935442924329260134093447753432749442194562362181141109343900847526062524800609456466938433762319019345494959892406476966107390539316755290803946504756409064992265382322961528890441940490880968476782972339601712089224146222557148274172624495671512951960398645651317600525409135969678143659360183499364600814235702296665051117231384451492032373122729145557563209977798600244438512948244307165880125956933479316632406989458564042658030032054560179397802956505445107066216401801579238635250836642915689705152670465267236591006224864802564225374375325784454037523339720858131210462479234655331076075855335598760158851640202561262653607537232779110381704919533091666479130382771214237974599644201751354381922680856006498375456404602641415653358929041867706541651596264225532896096689024015475556754855862964894661584496969327449081673596297765978914192120187923603004198916843577169809480361369559253625058683097723041866222396380905267340839911998406386554228380320482933884865738935663549081669790120261552548703023725488481893413471098517458076088917722540607414549381647005048467957718768681815164057540255730358571498479869644055206405317502116756601635319214069109017565855352586072690214985643987531338130735868859618342447313759200432833505348269598097362270920159386963613017306885005083643616183962732548244925614818890092000974494890598210561653559214322137954214359348478211417039055075759208299041476799818672418864499897771101931156760983261971958480024240177909397293918666083455028440590805624427453070697241642429959466348831996684002849593109226955932810297535890040098140742768327455579693691409662878667932788334031631278327960416247960025889496787220431057436759765018512910702674477632507461671123224423253854540677695371349042029728830431092850615622150531750578238643300045118607786320098885861723754662430065455746241421969585155062189454224247278916026740730098581327209834727373556065081318469172775546021862493613100898833084023106085105322100751011923924736653208268023455928940243261143926105089918788196560345288268938408363622943438161887267401776457179613993672978388456768521548233387629222100545198216314339387608776946814915880702382487441277566068042769588310100334945801968501748388608784386618312017457750871253645047881999849179546032628143502826416113546057817652418909941381852435772503172547167758769655007139384105196997006159971671804311093887188175443662045351611100424775536645901161321967142404547385003009663257454443845235444780209591771229346908316769776595379053226159709707812121238502730406192326131250353844208748265505595624100192289175506656938457908921282141274633224469354381697830434996679526834986327252013203631951979512568751891889813056438494582206657860444936333541502410492094776683169523653859802228911519606911960008426601603506414345580177458075464050357702443081584260654302454049239263158285021500676986933051060560370380044900244892982415034160937927074462094520289768011864110247112602262708083910132931286456084877479927919606363569302489703989834819785669301876204806233838361278920679760941806213370800600688376786673679993637416291763049563521389374420693689044212852908920052264285217431648492848404618094564315050688515762419351780294086271689187314326097694615041740360650632957891646164954768464431521366715315100932688613811788154578284581730922950411362230162484736061792400945550754190498611927835956970546816384555088493967885777397724431197579683611258699395471757102085196429683690455711733984862237650920495916401078549250212632401262348772387960037408280766856363858455164744349487426634828139893624108618891770172337343461068965642919124719517584498402476290613433788729481128869986634923238957408819152089937432942146453008020291534931680808548082176320747879677309187806553910899378091267449654287670359796418531195042596926967474292874074081663699981392428355773651954633174426574021106800256544366182123982346260638533300748155547118780411304121803766698041382898005052243414232067545136882038469312042903854116528506501635278382577048977554446190622727016302053743967705765550151962853286532366614748876541038534748554003005621045666302919624434061783758164464253949786204386084151877915259190978060404941382109395526094034983475182867134786097287036334282478116287355879526403136241902577578799502201074764653222660186730336851872722214973586131783886036713708090199141686309064848783849206614200373869125678015960437731162975846936020265980805515198020912351228812810387018335740911404283434059961703943447797703953334742107415684526548934070140639021622139139656455614242603154821790836195863731697367437511393850389687433821785162100886493837965431055785609014432054177906050890755641397013480447588983668563835978333539538058934009229823493574058185001106528246281176401076851964423535007529158197155583936384426294155277134516192200116515935208869303728260562967252159829466943805229906637970520903146021613498203494299079064127579678864844482868095849866331749921381614037513156790313346290451408616432491739823672189670533833543152158516293882240002926207836026922940449653089641779100248820369528712905912407613197063742059847854934209489736241572318044727667118759440501449834427750791667831814546880519462441523517547113058781132475013743890041355360628785614285850358620329089407801705095436920187759485719708494931161208230036158016121194960127136621509556276139948412900896853303189671250940045902142143324613784140611608693494736719071258567280098567934745701464625752788166567011633281242635794359701027731782980422174972012183473256248584183401164705578680762912261970364888180895620786691794162620387684952965449580553889201780234584608541291000188165127680436678783473088332717403874408385347655446141634913009579772412698754010888374252019577269295116958490590851122128470056240650877508910171150619131415855500733340989546257611316994617829053043409073791484183108591863629397142160813411176766701041385643043358123505966435314292040916070581281997447241458380553856098922516778839384207416899876730753275083174526924049350098416624742761444909056227082864260281360141776791336020625075008069057132618347414498228286493003424121443084949868591984971379029116935595868397088295134191534165399076462307978388081873110489337695460499866675202659137176008286025433944391894367140119780150390207548471322241286933192678795220060462897055314590252649906956793397856616958119587339289223060139095610694634250118361768305438394967479396540572293455958575164220817239715685576850754982924188851901225964552014459874440946685639275371623789796058391882653383789310594027090095913770305065230910986257489972937393057513759095451297655606769843871889104725940287990936629999388605758134459091793564112250963769794411296302249136010861449780673246435344760933261316669148114249466639332515436033540439419644321910592045135892959990236739232393976295079866581168214341539547704484574941789165452933564878170640702319382888955789442636696804249463321057510988749865635337047347120464826953950528649033250009394496533051652222540655591227983902828946829412632203983739236400207840128724757685085842878886437334837452231555834710062060276993866575258884041216129838934018222681845936758191628624994995795669707947383172660340457004675907875533709999497779658036233533008392759976718832798767001658839631447036960049794363872465654688256869313480238589584809222259130300444813067580908292591958803061403551941827088143084393722616426891239701370549632511983470638101890239207304953995255538038215132734954033484728228695772424876548630272801164210171603611380134516335581951387593724908683771383637655317863473049221658751908473909950380207515186830963033221279963226743713836159507334731066610644751444109003646168739044361942901726353110502937257704853741449379305332342996214782963370674392735245223828590968858078148114082381362455642555650856371301190320357684395045868771439848843991391131493631005650183316029503422196132249408699133880831101607193871985961888794281787999255610208641733468056626332914621676496363091993356298768676430759835135485363791846276317709038046147538262593478069594842474790119330320865372672012402726541697375410850676764949642263217366617046262998377549865886385241299838576930434252421683094576353345293138311010810191860685413562397589063228611429709499053182007807659229642186801086622621120088528150382410510727331106968413106502953285400469787516476062040518982569173539544065735698642503374651461701166874388390425443683183778196354074381428684887270986259954108800340989669980574103890657482839968509210308810062089037108142360959007811661210606757933765056247759923401785320832303108681579053358538132361844608789367285648411535822525927273428009266614735638524319769157164227852088265455655103453366344999462624826963461030911078537869293314582158373008283061156702151111633354688009872418023065343285409061118518150627075945914848251322287830364963219398833064527227526085398055073025238845113913967563348596137157900858101155528032922624035720559825827055934725233198587177350588647815389892338606700270748727182732572999424178988659419158039656978202008210670649908045933709286137638309130187595033607922158702421164723857561194348830822049862225781989009832177174177651184504105343766645463515019771082140481182052792216023639760600016590793472072810582271870327890254786798699700869707242045351704210439287825629285038146224956882848572137785328999987939486025930904482736872243944698528341421230267729047814738210447383284904184246058251854087715207341964634086457192851699081214086245662728817863336649725778075052983565772860375715604503333573720342466016334040445460021985554230244617413858833749958280139416847512057004140311021295139546991690402287391919997657862108976015206164176319923942985261823273634701583968810948885629555650099492051983560452823495254186990675591363004373601429983187281551961337087663118923370922936032130724694637354232435149469592217984686917546580584333776432300267497755801575303301632628661197519098155473296388010977127934309252802787397679776834598645816956115748625352000035574317680697777716660954348144281823503436911010618750436056968290838319730384500053123550154878886753078588351528513527959667517772084067732109645037686148862500167399423373231194206832839939031413056187967137610903944689330520010836848482437908681210299450388050564725138380625611263276041513436856229419007706102203628000788388322040789511394187586681093250558920897770229788686740776861886066235422421026052871604423154207749069488042958723397011072084608865527543565480618789508725261502592354849237825518149505835174957428717592382954892423396949279177537471284023635668193916455949446887072903595035105223264753203214354608790001496583594704996257019110638696099714707757959344682136799499492916099754340983296077440371939480278883119979988299527171034534111144339918243648065320416087487196663950293179446774567060725064727333750281035548527883277326919384644453900991229194565449178817950977870276748447907245027377039884229858372694080648604798287968254906176109508068530160585377314818565649604820330467456705137244069974127953984884058316048179133528068063623615124686051361282493161924518973120988385593825606896959480372713976132593984643427429205670902897785543956207736020317133596546486204405642901032737792680914426523530972069018583861168636823620063409478434530905639177622069206631499249817708145957319016996978006025352873139157619269691073885333225703962025435590358354662266316439130353998125107635823137677990210986889379768424964768975577189292595959571780438762204552651841075752960156215998309195692089542698228360641262762919553740782744046418168073526750712318230422413905499113463235758058040575452551507752667379130733780381778184350051945416132371746862546975723699924045161353618816179280053190945369996477281246969618805808171424848069631537256335575377706008583768246523117089753861220694727804997530474685981981999476651003518716130249233176555832320218032134470381835878703020239148325391704035402913866388257120627217650914030429436453404028354186474804873526653349342082338487524572888939197092529037250996546751461818245825975220109546852914130529493837889330370551225430302093242748211356441028120094590581672961329094151079133251433855689065258153062116117697120458093335117551168247637068704007317839784385772369702253390463804315075281527258772063551908862763121502662421875509644214804987255578957310146455184675942950919609286180276617031926902924298708208834012906063322416992024448276593017193324965815394679095883991645672057670646929462038422206925841825054770055152507474877938599348647989442639042643758642451004280680769238635624824630709446662071434944727759234589453937308225616357375771438151053435854759353451586498738128259863420698457405933621170389475867811458902700665367990041098230480341266082301111059705227767416204003779205315416521852565899608453434138017322909783335116935041794793142672730684545862405272223280028189141216399958235042701999979221372961185278201180540953492844320503370491850197630942814858318584434365946208701691251373753168635805617995315832238181180269560674494824075409728090928643664834496656853193295395078172796831706583875955474644127330769281444602745271712096321144422898245511994244016739140662613330375362280535570871684665492944971443443274547271309883975246327106033593912630554671542917626366170927185957871999104528847080879288973466447232478303724308114668838771366479203335161695328311594809123344600806779465638112187044889801877988832413284200564248717237816802091856056320876207378218007374194445943257077787142954998036222849389801528904998946703060990175979784719176556582873289045922405212424053803132816170475776174031333532106161755419416886837080739018302796005535217409947417463168455727194094817161557753739068250761049261487409258724859735448507823130528652567115258676499651470743148030371856130367869319255901045069327680299408411987860190343492460408390150190689400589395940019422030648019909713992445336937411598721681374611498147321699145980601856272164008557455129462668064048149453130106669862513503571241807754650990710157107972385337517343561836294551736195880821187185850880594187266891866882459133229646474693647981561945004752571131309936871357267950636639586017393250486979782562967923359966723121726567894459415026309591153367075188846453400521868558457248276724259280649609315992592331586801012260583030343429675648305141010476542121519765217454921393370570361276349394622113520239754382861573473177082171261849381055604247582613346565109504965798509704641665458844939537588752709499310853466486907847011510566208767984039271606976578355312555880844438757467047179056907700003761893503335865692869047639348286666564474561529726826379049737715527091954110789841708679165099649602927202167407106393021901078736949103126005412002785414983884950876755039497747664246266096493778108975812629266047203679920368271329368292211476030778805321995823190770740905899097796051573826022374172244717874288584756317865631604060442294245801987649116693394980397890325427810866811804286629396468530854372391409558114468127388302210324958096230704095568056197480290478315639588963322654175438286642801940727367500467371834402744796972332530710077471558197527730540815602948584166881782783250503315229444238147253061715184279585626475646369766064745823539015786069653831279213692354937939998546992490663283590750731426780594786956673702153107099808711226753593107060666510889857452376263529139816858143562303093747108956225606281145677236639555169232714507649194477249287279025181757183580231626274292142862882508250373213857344192692004375207426833655072691200473279652235930619413191845419359374365156271464433817457850812585902175971655500397274894768369486886543851456300706054787658818380203325578594193026377513496539320835504928774707490891237908817123451998329505352060870396340940847551439644884083095523496002437188064570811337229953538296509635118781246966013484692236451413778947277893567125936581001666089023945377974442792321871781060440172342929172591864939622170853501530025736197961139619193917205612292296501368605167974034958516957263146995858932392500974170296298467826211305277331574401960920361017717808818808546443439347404318173834026109968704785032925144985175316887745379995634466610037012243702184388833895426848089119068181564433770734769223816935330232016711549664308018606736233960198152311712105023640432409292791717271240551239276771861326866150054781906357316901024462562106508059003068693996750929953738100315611171768350436510560314354592800526907714539069942450942045774305905041815140222833626975377940142392827782672984881932406553672129996433721260526595971291116850812848796548331068535931318506437445300295895155551338181749783636080241449299087721337773408776626454196808016835282064948340237721248668578475325080127143719143970187149823951283894350655708775768726457381294957245133361039931692038365667728943636695345925468091715951796889652290682183046388717674818310599270693973763221260489445493938002698310783827065613551396885598517987110444990457146756324371649592518868590951979730474000608322748370770898151114392122471642958503453797534775709121222955934122240388978717008475048539605668366018750806064045466472277629086223724704708532509182814654394185998808290592917606578250117365028258397412629417611061051445871896441502595926186451085778271077214649830632932142660884493728183190382676389626322070930033191976053516010372266828344525685225514894200427265312580520263468091263482491805926962156190203582608929598746538038302132668397980446595635144926323148652799015543975728095328290792945413295471888400851658702034625355161487013369356383729580899077326930827463158225336203523570732229980833826429154435092882400687757837774055518696059521038235070773444719788433633309427064175604155694655994293750146447767904568386832222943673621446967432602751789903209581544537127695292718704862031621987762786084307707769605754155738924150870848221148988337788766070040826505245799517714702870505123107578345582140459546478700413893261407184392597366674565883908867904506431462867885113066345222714087276292436505337284821538310666032816458490010625851100967590185254848080137629497273401758661649940450658358495729374542540573567011211609300871339665465531571444219079005437353460668991867358871011387758918519280156640152501282093732516980289704916543888698919446768717849149471805122774015074874283764131400041752706082594492833426685143090243976465982005803671267453780354642708673869171815419268454441660292059680547099723593693298570017885663716967557412274720646610209854963120924402172369545570397015519762428374632467642427270486920624487242049408480574204251849490304403556545429284416659753055519227039424810019076078720357016040141763890003488080779644815729874727501067169239815981649581596169456077371018091120850138300941204856792676855912902491840344404780990085614523480032844482188844975234696125601872416304946451207249794702975071315276139013842348507489662008428115983509228393757006350139083212257164165861645583967794862141348308518553162306346813328913639583142545114934742897615942729133738381660246353177091975409901093013689743893841397651007448629374995955280005763067973032605334287550527975208963788690763585141540937389971571925850479381260229109096420105320100696209496992047664699473398572606563434433538095914135711725775917360913437237343721239582460982563464123592983276528601331867515511884004183103565280900619773177049768846122792649308600854780718650447424888242701362963447375459958751955801136376133693378228869775317422125743197236153582719974781956081840182553305720235953407088545708280475157414643958672158786087984497953581468174900149655935571404897271532377925560257649444480521986719156931063142862909072200440276347507263698767935749590293922158282371091198763053220199109876217991792199596958684160123491019154786248419153135587856561725970400948733146343881531367377508205869437109375850651187073187814366643625762534564362493690274931169769914718610069667078374553819577531612301196255974616423061130726179634475682895928179583969488444380192228189088304500550657551242484833804470534878683816888810153795390621925738726877092939046392522542997686552386843826890677063164076325527643129075151386822820688725411319126546130475776341459757525151767402565184691370995943401783773734438006144915759727954938097561223669761890634090109200249070456592536280101891324227365259382548890526875246575341139156735930735035754442524980778942318138889207077184933210505453802161757449145430173051000925186508352006550888769782845345511396905143736556651592479225743295755749065403002239222168465546282248488109344368052804918621375714256214046491193617177982295216381579467965433476138486085330886451303130492521688375195746752596135386501540114843889773988249309111778089927682903253406434605379894226254416378377984449249283480948648804694639530974020746732195137035338429766266587159887448938984704028223690798287962703529582942716249575942785149381124453954689210857843993250362436155127960477298404992077178708586145084038462447263202509233510179335085347522199047112115208565399865578899116982342275073147570990581114621960534195126917077856853200503956896920911715504506423309977725887771123621044504239183090266630869689390545843465360031317436457301408890475915043497287980008875130801586654046540295161365281107032238325451520908309148888910371700226931130934440412242381280663792840072292394109543048128311011278030588593254396867430216886585645257953519479630923709332627543090440667781269465184654864254916967355769577593809209441348364613846975287362078244900443968690774200992010181142299147179669860476545693781727005852489624868599783679503356476291397530272817676054909081751343675187243513892133348371063702515726964907257955094211885159584790265053587755929360866309299194449367520683085533087546006167820550243996843192597488514218761541994704399055229490524683445594739585162628245699442742565119659367671195596237086198995833566604855089669626054202257843257292500922708139337257723500166207244231088302426627735403725824054487252954853025281596287806262152524522772832105133451019308276233792754191372330088054780144988207161612113286012612287458866666110244159468880344243506007739172605817930231816177307656365672857279848771949524065903186094488744041153101103017085638260381626547610590500427485438926817831182499958264368639495102247150669071723530458359013354273633858862057694449498929655159940537038524740267158520838848004364718398601110944014120572968204033046049933021948088137293383282439796727117998856060495173305160475850947044820158383352915065446112593049265777000370359618624576116152581357806692309097119345057637028245867482485203095267389538041488926349807112768150591316030912344099506954711408491328747566403543919423888424312610375974408769336069616801808695335166396476377286268429312568574704201270999596912132051227572105826621040745803770398015570687932255046493487100153579260426484762261242682878806809644040116355221074821057077304739718097627286689831119537406111446477507932463901308127385408875876006378931981174867002224484984737478706791509002063774107606836694806415582187374810087645438275646413451212940187200430839166868866338722174053175042485282940519068812705718308760840534099269846136940360645666860188062976234796296850306849488826271956553754131726514406908072771316420898445336698572910795734872262502707902404751351207304597698046328314736557203430615722309450930026705368794454776503386376996892358443441507062717813284411828740883637906621692945461504894180744450862308787306156813043650773340135458382242511442424277937239329087863174090353208359437638465180988225155465096087029255619902038700425095155260304698399699175330121182843237245295675850466102065643578562758770971837801766680925676375183969506704418183070849207059573537887744005088010409130252679601335317965046797909505382146533076572753517662637699039174934343754730960471284359072982947417446428232424699240130922101298914999757204436027255321081598501868114478634056890591699797478880433703005603084689895237287578821796618306061848589727192846541617645043522691396879626104034170132989659872946497405546326747557694054538539452137006000307301923834877038450423540715380422947931558501352671748534084757812778127731457351739033435991457036747973957250150620903925798009134461995032505568876587306777473025570845823879527622354994353344114875736091230685469149587186012925319682579319817697496516303452559533060731028780718484955746619019249692519248986340497097803500071611288693990350400135423895130558326405559249012258327631290186860992415758876396475608944766184377325966075192495636814566589692286000142255666883808826744513158549431412066526477109865038532362765249220070789444440364428928442063163394956612620276105376906425857200706682578760029949075588002619342468412966130986131373595867413770287101590015532401978368009506181697167136929766461889566798852082001958406233938708460698719200113530862047240658360154772111200840505431945301249507078045269101241236968163043942647167510937553397759277308851407023704658184128727076918989734181579131308321764252027422299580103471114547400407693244193247506859117433699619071685690497414221378802234778771363078636361504699729414380739940651440145729597974899311713838311097734654074476558688141822567963744875149218651022105556474465295323296141599769262058967544534472971434362261752048899071756822920252172568889716990576599633215645341461500237831403755185990362123760358729305455055580318242994104963963163727374014847000236152408558299423109756227725765880036735456857279454964646967826443024711998625997403884942190418632321879380769457331359945527621909101745064926776409964970584898523597342594525055265847677069120572345063327898315661326581605743410622489753620506342389399000416993249893530190855071170275351483948333144866033009070677466465983546628156898519892047493506635520009059039115006947698367858854010644928548061125057077858312143844063484827352358629423702421668490675190141105560568902997556196402771363307347417093393497668979828286993670408399464030698873546087585719852859795536605943926652059645065439774998383261601819504161326225832004152534195306503326651657633476578339663643306853544672925865576377518637046106648370982000224411455922840065521967937723357205263740148148530205353894883283621079951641548915568089628622904729534582796767839684475006449451451847220853145025748510779639812967327971256983828044936056197192323772432481119762058403780171005360159114374697388772371663194760600573964660765369262817027885226470107336131229506755425853370524913648073970448352002514087870292169532562540994034282732016359818658904459139687333802764855950333062975993119059120542975889056109204901672716713275230196318750783166677317776368203568877957665057921634611775963083638578276167345189328426354361927416997540971663549831212663803587309831952174051532316319530619089448542905551588844291075721068528157092236991744808054863485504440656573894596379952608960409793413381756453132740875539105310867415631468369806467078514612532794602188157260881945767522609747957126228532147273469560032412460047429012499525744635535521110577478540038126400790982369334428201283501740726310611345898076730870555761082050185909242307162313267924430930973122887630871403928926574220797406638159636126423272891411206948454330613387926399213901351136290509665601243808177264120635518485837846367249779174306670677236677459355315991151433575549296935777502324121547270509680810032710218870382800596244392866099871030007118143700164150888343338139349803451057475422385699933185002452857741732719566922850640497677992758039407629384844924221125877413845216447593813697661209045108253282833869304676774569305245213779075359434286696452557644555072183469906604600791733457373743665046908263407091444701583612445748153220797010270988003447511690216225200961448291121054469715324925344699492320946537727911197791935643536586936953449996174079033928344462722951282654893558859223493777878463095557099568598557861806411769882609656799043718930396743677702826880403546602854701393808074923640753568091884543969488923345682189695548298305839512154700507589782697511384391335026938878866428659730861796860761162119934814031561120043220470476405303791872069229445083700880490180159888900897035394889521923146492461480947580058342549146131631795036417430846963706243936129097263314072837047079514651603158666177557699512284431666473287232099825861575361278795463099454286157035516633068980076591070520877161483145378038172368478997669793853921433251318600085558018144842084670790180549794045867272841640962137132580961592571476295347877197474022705227457328920188479165275424730697575191971486996452415840923752117253459787153950623190835814177169662237205016074961987488374046846670136879448074328330981450884380014242009802079319245556504843588209275355205179772263160177730204623687865966681887816320525240473759238000873831606237554239068088548343531731908550214459507863844630019760486428269613581587426861060243695806230040468924250069666693379500199475155319390294205397847673382545208831798729949361812406042380061336409710177207976008383605724060036818703115809582118424108773377035307967451885908043769198795591390328795361826638759379070807404281418985931312301576531703262351687940016838883063615719623782787520613304208772219410155211166316262830495185445649301176920313901671450978293285546094658568212365000972327260530840242850463764828005491620931334169095908283810175296626531761783467602004009585018589179641774136851366568145782353564322712500009533643380044698630740793112447598150514212291700407174420783837032044378684478911654810778327625713512795206122001047204454538991126861358146369233460872222791322654184164738071971111865615428263663770082424867247509212916713408736008296450588699474720302553431449280002845054184338012760935531951467435773972378639103883676823235382227440308368234694905948463170883993055565139235529359443761496836990861900571496917520564856575773929413281859129995344374100077205214545894026668320282878895741936334518472771643972138547622648433285493924875213725339656333718617283288313892629700494098189789511249755847208391497594098740823078887806539577810436454701420271583384650301887885122336183064397156180503158893804248299173353540510821947534914311671893061461566894962162336629890639091248063962055038511566946995247667008555999588408438332882527275724354732513689460851211854841861260952810335007798196855512332969678868126047247135736832704386668046790762090566496912690847100649011243981571155224547466019324723793725642941945426791011852865514936668484668128968306078575279473414970734462785127643160614473558221404908291960348842769472565450786414550831346406109358929810108079473106818203664425054976550784142154563009693931180419681916010030910346217151079416314012005915438968540380937435261786596830308612910502935312029727589344059789353622097661492283360548599867421452648786771900186087643692026341896887283869202292582142930616028987492041933457954492929828569716699961917566648637187312459717266225614087224583957604092974564581677776487894150953647669483656279238244969170082416319960388877505783009745860725569272013656880582647111523324227999020654457762069332787123293636655866518907089585572588926005231988392001799292732138878428543177429665470671147409804872746429357528362478788874771787555089794147457050372577190190425139691520279288626959880651639166905859529382249943198907053949220006756235547777166613025604693039034842009147910085138844013941764000129038047166172215172152832124681287461498127022630987141188877970078000710306236491424942146436563250872646043479314682696631071033668994209865533147361236622069742906017023991249440797082412182274553957322962150080009807974457073603324328691557434127573038120805018218228272452029624054528420614740385518801543902651522913514002316030864483759609308974050485764252248075146626515275368480669783774634551685150658273703617731662005102847496162981459599055318197070258079147017089793567762513925868282518037273684384591264873206181601975613740158996790403485432609901929583456354279992158500016669345741779710848648260997496374218280154332311884013727736024894751904039607642226331022150583093221961178185765120631692142901404191837511989668582547895708931274932448290094606394777903372433436379742897974917543767279577494593482052307563069419734935690420144609447970091072430891140196370628882076183047945956909080553677258353461895676245496146611004857439121088062721383338991134474877388219344504949742455554437193643922784039920134347686700979229397718308613700332948186757593171351585472660474644336492464601292633528398979941962257300736977104452926003872419348367740501427146269773984523196703510519123686313988471131003395162642553968155038199551727256032590512506842105671470378940342622261096243352558494163065733102350593493905007078556988490526476232362423294937285295397944785066669162132672256159989689220280424770360036247311177081521833788990083095200979788910477694227798780628088647994140805694061659534318006360812516751014109355228537920880297424817311820186485440417708127445237532498365295415487400577457926018510310022640385972023904344371643484234741595170151386871718886362647840057242193065489172533216336270465725655371811053094704503452530638289834611656498108725510680652248647090309870010621491604382959279594526602106614212170498682143671094671885543723137111481259829962232606948020519986851964738466691654752841094147724154847701442677488664932923236562102847158298274221921541317211215860288655541055603847757777882630519856340036256130244360884224816428806871895498053597831392868183779405725938994261794181864853941099893283088296487922715646617932630266698067676428177156233055069742317750187739419732982801993152402306678806440633825839655300945711800227777225326656291600510166606679486713880252179901090208184541865840051113449387444435244280453620919313476914300114054778247382961753919177398534636946783706339926105661383413073316900515641032639558632031872295764337808796267106534987799149711477711988025068980800217261642138553316328856358192522590822763670414811365873934888973725162753179831767718333523488123410675166352931292481203417366658944824552789511853471019552193428837042135660160106033730250846977854864760919115558499480588010339318446518787871336967337369283924482805008593444810049029550564898655209137707558830460050244220278560022366211614073237051646805349009836131219597685380273769647645746845245986326384284150463869892539677044189413969113345106373475203207769724200233342798810482840791589780077690452789460923597174272140272986060959795533246762329332572000330819783502754022567807162494862756617398396176483718629388039973631813556867575738677867737882462918934017823008156544578554728850426944047909269401029151169047274264850500978829231474760353414440792295398578958867626234194374006028591157788340445266181589896296291179981910975400806885280427789801867022418066576682634179881700753932060847587509361559433396830070113628513017333603011721103015414746130990197761358171720601850173364136162301761308534996641743164551737429298627877584575483976520979448235698850955859255391871145186276017479842464033465570399616009993696514384062754126942427620256553617593989224737825812093942079111192544348428454894300090932355385691293696032017425412180314902441624522928426698988772553454666221108950982357858550222635634494365110218998986678796059211904095428633806572294199999439494796428584748194042870368452534869892321563503197029752536261621224103730959701718362674558046094591306875051788618211755320302129440227691970454941642574799505865006543842959811304758616955903330000551533886944978778267495969456554465090952892794023351846721355483714171488631905724901007037927385183477247874653910402555299468205867693461764425201542147311488807120576554527210541893845003628279352544164939487167326756575756610688146384242984254005096087288872076873117310137838827216843450806431390000510425142923193542254569813399395164308097359508100051669965552872754499047484396403035726011806774370750888350942698442752708097323559642160612615407672205896608372870212189509416365119167559181387822754318379699456799316185405841149903875603485289306776704815270009506254920553671442709104305747705735184495994801506440785760868458506800961971323250938119243084495271774047199377580737485546820615714268507659203477904991463530283486536245669020382233495481514099673972846506716557921137646244549525321090534369262178135302499281586094789585423709723030530967209664760123752956330934571736977426695231759041270593207839623264728196809401387558491016197855237379512708669247935294122450997655097197289775408787244961744494571796005074458687828240752573148987626472698514959154828083157958902446571595781245373194006687791728014197870281328267426900132457540542147114447412033512809684300535821236296812379514686590965749221107433964821721805254336714056473971604835959733268774193755720471585675120344861042034784022531991865133128173170843237809390189147003892940512864387332254502176293706299999931159220561531461909901816045715719365688883783275541189121683763259657771460713191598217599458350039542342202649094517097930626558298230620457119473043586013625401555505163559176742198985855842332934047523181769201160886477047384707750449521499923420071047473698645218495629437836197287666870152398672396559565727193200633063791979016465470951078317422647116375509091927608107454899445321611773276960954279778169670982873123386434207065403834362312010844929743594815598529307996737154982099170445177403991747368260824956352870145233383281982159805963672016624202516891322794599520228300501441275189105459877160272616511710001498735137453281960416226830576897444000726745456192503282592952404333156694382085909419968119379036506956872094411262754723902651996292829743788414161097861462078507559221235478049761610116054472027147748970148159479684892402463046937608644759621081734257210151016903611983985498770954068423325248342513828200725722013029836523785559180964652345663285046511626552242565605195269958586116188113741382071267990808604809425662721106909731569093166232354472526752248146275843869518211305399139318961306382984798239616905613122288689241901673194234639219157047706761709683471421472755802049540981902739247190152432098843745956932831490578764520664292592284585808636425929651387044562353208721231522352856127808526175848412138991784967509008886875907624442043999062057479839544125033757632793031042831092369698681749560756621177776895958453427931322492035700828776142919522494185548251516321580299204222919072926760531443301405828669296891976280883009637860128337449119863345005846151794517824116512706962992287382192271653557135691455912867063237753600287430276153529400576415176663715384223543045320881518365982048203542117184580318765937298143645273168244516106516989930803164268058933562380074011981357598753841025398201004531049768118790513539359113697665035358539376348212929492619116529779545989372164531336197166839850201174126180924211601332325926190949754213580128182919061489429476806144740037456112758667677249072290097023882897796667050476946291963028547612832972669050538472023044544155348212349103759646513612760015736088904235715420379389356840775931825179010001668406143144863750099708323311745263285290369721560463459539053906874731456716266152749263868116321539632070873879206274181461617913993716112445167352664488593556905684555116266829691826444217184748209821486763821517028481653022140886903791457510214579694157553088167764925152101864083179977324647881981172800201409662397572433011682909300646992680322924829454362780836895525330928424211388035161154728139748891858157319945926910729439062565441883381529960903944267523403087211334143930554697844260335407590917056431904069721620636589918782856574282480164234957544071284152292206093506240667140205014902279659042879776588174165008919842764971921422318930096532786757926834035763646379870488046669540861367819542724945313980824594114332076620869619149079536264071756968873440208442567958218232692760429053211635958236577316987788419049963607987338901637476884280118218452533238380572517808859681256966058874626878064487556410016335022632849451951188207705012941567833298587376071825879210514364425430017922765643862323744486288967957646273532798479413341931598931461792868981845404956825976684744518632898728645617303298688324275335145242863375483464357804042796744526884466372583756432392160179688463470062107802255286028286224930860304975079961688192643494950027260111826826871891642108617273537592872102266893743529814450194248294668967268773154175813043694551721735696884316938167692163304827828420048730796369990654673768065151521737474417631135357491688919982093294855987102867755072514175902986092943362877027137316166217944640141354844269714907738327269288208219334653001437884702898598447214844490723194236210747284280189407743430921641873340809597076317340542225061027547705721598403267285587562842522401073100064831977605760288605826503947221647321574450441359542353595254709331100969914721737404739055007908600142343628460093751534161536122937968460929684554976199752468360471834358760979563850500185469297703937260449399415504324686505181781923504307719578321261447919752292377106722857070231528607289439329184885859651100535360794710348786738483200009354986347932133916943535923964416867040487312236300560679945418654771622378945631556164751841923903835068329407041635405469754599843559343832335578335256432705323500527143290001781112970960046079017206837058101536929397348818353347732716966768898855696456102511799428500715191235402515299231295253294980225903217220693036828660345595501005229721251524683871968460498171600132442493806252756243873444128490462901502337933519087099556607121981682905354844349056012590961031373158755061228244294817347408491077174019136752322346042962594553921381750587317249467160809761414694392205114160972218605352642519803796840771497121648237927689931521592348103307863897836428138544822714180128479139209945509815273534338018464918571526844891139913928827739829898510300223381802526490483185487730626213255086178674861695669863759399889115501405417390572029635152118615389949250566496117197185399632543725636526715205781861602915654214009155932844706785457805938216189518114173831270166113252183164392344145809565521569774133463746111725714517475706101009559800966706490579447480680744031688876898425545452002360153388828188984808928223469398957998525152501544133381150941519666974843708816922586054261381542480536843995127481325388909598534124191945215157481502105133563041569049387883917477924180547663020809315835257752739544049731024049134430583311181991699675909826783524191592285206318253147285464233392570216472072176401508881248052662530552145149484488763913732445794307452263419952755254798974767529901650183492558566453736280471379830460649410716356138215885379035974158998020687838753993485796865739791100782758002234601287082071590170453815477000069947230275941505421638654770898811433497818314407188671154996840844673531282627671088036768985742806889232813530313738199950713889705591364957956259069672521779274722471184478428099092365009494138088964662584568443971140723365480459179017422038166911731959629123118837234463570920999083203870504844706996502219312566794475893619895749273781893429922169746101998235455962275506577436372638405698293233619129916915381839560364915280969932986700258152815682045024674473089889807800884094567484698101980337278360906423459950279752969449783159127147940268564663207635784305094508879068034479687570947938578093017946111049759147136193953323822947792329480607151216567236098974432367438621273127039935477021518953131834791259591155074466247145164847057993264754357445045305859116370957475617552695590580725062375334442776069693679398538336426051937081085813567839147351409023015853221018693380130163910291941454502507857147324707173814268269485405042507612316974840070007832465826842563382083673642150424844284545750830046032140109335555165112415932729345293236722538242439501102440247635850648766927970984764392051388105354053221934542491067993560340657695199188887025375047334439787393755140057843102280988000749062732558782069893796985922136653679254181204656094269265678711766671767139984589832268314977722290660665637450611072229793971079984484254116669518240053976926205485635668087423765735369591912520703922691169476328879706494070927859410838823808216569645869906167828074059335168265375402214750183049680847204102478778080452796889445380149872102345121893849666285556100360896381970085163244483553058951299245625969349525892803324460544262610729127339949616495365399039733808648514983789699420695098396840180693716216205220558297217995675339033527203063195007555357750436841338128173671900859750628129475784556336711559095918471059196075175478849196814478269193003800308996402918486787796559028218884138806866325763956039653374543770499157624552794686046046883075460440550627183932332790501026257852328629221279805779358473467288532093035111705702203402930978502469266672632167301071453318275524575178560472131186223069425743018598437082534658067844138704670383017024451201222421487885981093211441199354177234195108656743810872704275449656105799382328735901566445104598962549012935816204649925294827188688888815598077317981395179900388676535522836744387234719898001104063222691100679127187819814679460932081384196504353521371970320565314782916422833872917522051705064644498132544381957951912790221960850409976196540785381435632812990900961872348307487662583056346838671139861141566749841701762476730255795836698210277039512367195602378842903283615673345076034279581568554100885667185853467530454298717909452095298264148004612968343809083937516703629507383915472480360978741378239678989214545652561026747823279827736958210091834568508931882875272927308871906092946795654560360012103938912517950211126896183795297713000398820282600562752127063075334452362843075742407820281739633165959713294407091288449933189262899405136144712272424092905458209811830932804679044940144793204050626505766106655400083540901468154357076927272259245370933743575454178795957571105519283642769371793088471899391892939530117208989920975674655381969162340786664708548163977888814664570116626306389083205911817654836585243088186393391591941271947359474651206537382852142486047651440978367900312848902283343499404908027746820716886164440246573286972156769116449394797983959476699199929023291966894447747308916648731496822154617413466838873941429788646502390419700001748750000118113459676652069508055662308849718265605969149539176018293882718770444807216192385698805091468766926593159955487545381814063825082736781063913981314041955826789052659932312825189950245333070377500740991088905572291327258409419198153698572241496381361553465644786849640999575676080206823284711835095783537579676374698168925431512033400817562645918272912182561240277485241278450387853332545926455784342991436216041024112968949811702495259367453131046641140826231578819080445304481910686559271875961815601335020658578373913471312065312181997486784072144809026369113543548134324604655858364250337691665729349926237851729137018286744144383177322710627056468258568600413980428553792340014938009267493790369826405161603411091779225080718634956329089605768233423390660460072737421427495257464983413813702143225118191116073982972846294098037748730361232553002213079013793190230901825590134262820303252669327822824939397412642799805035546871491964472784865711444257156743583456165957231274369117245140230850407793429811231063016172017702041246720433922871052929663926284180910375201621188647819962184149551031174653080575959919124350779246955381550013740446629525880082369785462879455837915696234068422089580107012282405740335212581523421423022979339323007956845228784501838604624759796248202223503269884219553246139459771060852513654742733925019119025221173398211595325545910826583856624754646099950430459155237614083772649606359965010988066001064709585933425564743953380911290932840496831729781038668737412590309383908211233925279009959986329127955736546736725672585278621419018899107485081721319843320986257004605248920346770345891636166702539070493132969240844832016429618211426082480877514432340683354652673598341746787784895369873250145935295455031018350727685469693394935499563425014870622421243343891740137286776486480866900399429017944244502248471707215256626684160795821740918596998896314118124786757325744481733285320337877943555755828369204617631632794646066836759253867625806136988237106094692360664120245009639561153516417195173017183304312696182001242005801134287880452182207920760758660695519183153749366449471879570373385409613421298736470521859169126949420194759383592230343837253315375407762084693870934439655332393147324276732749408010939318819324991024313768995173179440121878756465395490175827323377672579516257203248862370471690062067079690083720287264005624791317337187572757863677773111546143022889051821133753676634993985274109237572068801320163321876549099735924798312481482223823126039470703147144654791763615204154196902705230127805087304329272910050551237266017880818188817556586674119453858341519028996219373328200919065858143463184408467764474812794482278378643876581609143874794065806216989069487849863024851591289206875072610984556240920429683076818611505048897484388785388903516168087783531017940820974867023729429349887542915755158772512275060797672005993207250507083501643939381366527449569903652399519592899227302588183620212381798668895777548195089617803704605630302013970164442539174222404408721556185428632206664060712745434128507721501341087092639140260941217591566084683917944349366800875524028288408329930273640851228570675121501829761104901312035954405078847544296989179281753382195225674773730860406711454466409013742603291342171310388362606399623001608314328404722724712028263554454284339812502205029937505900698628812038328142746204769574495335131783436585017600755011479680546442909419103774366579132075102807295191524004759459454656135567694688864474978357931043827582346332027160014165701974948308093150043612684043005988231816219880220334847340743654166053195174413634889673543610996381063952537149381594518061890699287926686816022353336471298790463693808469549143615289958221066021554931806463699019078959172342791031092873234678142521860093450889725464233044562849154251783380231838950287871400287700620294477619332737607363671371386637994423061377941278338996028189072041707165610286709867941653308002774382742697203707345779812742535368034344916608785853222497087521128853838208536428030384255754295677942360433711597298940019508939159915035807910510044564329148553713605379519171166833628875847007608152260873490845792118785801585162585238992080735982942421044631791149855466369439204646048811585104347667575839797330145669054747070294099918490609557628143443114677365485277087922318603101460794220534673798694297385626302992954816490453577264333034129851840379089421464418277030651986191505870370682631122671379150265499209578110395343971448960284958622687160929225810418534033635284234849838914470033255285825104789639058107612001727452540775226424542501303883798236204027113316477139282854997050059155055973840075517285583542784939215784818614970298394532978725700338663898053814829967339377116876320080730428148591241485443789975869498316605212528802681285930891082079954637684833951862603102238491764565233948210955227005814470778621141470083665584292587994793206121799255435139006027393844537683418437258488184957685509895030370482211315516876104619273255280837597364396974733813443710973445278818916413554940205140605701219267368753757300144055288999929331169776745472166437868844727125047959594344469163997404075303050278330557306327835488749383640636194809698622638577970478798921098440454186407696931285632566338363606882941635499246417005438871750676601637535641768283599156220060363558691471511435518596611403885524252056126264109750126622991479909930651022824516284974652588016065183633671419023017175658484353948663005968581109175424706891341177908245201860239507256766622465573130312659407027950026367030125707850614029595923173304690738303860612003930035246960361898045769639678254012650405850204185284479616350754775801578938528357640629720430327003779517384560610102245167238469513484793630898150780997606116449344240429150707000100442691303117457314104328771979522584098487315651693029204814345755716313414017864084866506351142424542744089823151666507924888097371260980531178607153508152135973784748430561945817544472055562074466422138277501942416111754050672903089594731307272798197051672713572564580319047102765382546540660451642439839185700108817027970623542516093877592722948417554786819395069644587077047905701441649672306113517928247230038671715783807962206330849642531752702277808503036426221295403717117215687170594729145224356433388909049807646035170874217715729383849092601980378000669541740166785998203551075463602242924764149727223472584029394752542124264755620173431661444829736351462200719387032136823146549783079439998986447017084333524401938735428810425536639224135601708281613720039233912212102715659419347026541055739461948687373619821626696412465210203837860646921169694268326056610659919691999382154930933739081269965220943266969142786769735225403742973360468766190748613778570333493510963215892961709508355329768071883092979779373966405638564441426906206162176268680509367292721187165604574788466125043715022211140304716243998721288160616761042038452577102223511597646740287434394934387585061418355541306653567850255803680948764521194655959753417675444107306654344350912559777671575358166240660583246838650620371258123453213126743911277833865177759831527364210374343683677835036632234638285789983194918058593880135862082559474736586091806817309505132997899955760439251277726249677952344046100290563514473303874380313229975272289902815842367351907511546254781649995500035516333157180485442205955255659579895858421828153188744512133650009050500429821386555611530086651116043302716823530198281274567089083468396459493691453051831847669446082601368796708410590162374872278895310108988004079171360965158866406465396135764559785112008771537852702331836905531585094503219184645367195922864529249741796094052680169909499643892991859696174590547600389128753912915265357150555779545179387539715459617728932870874819922289421448700540926670294898957830331203030029448224886520515898966696963288980705590721775240320906437700398824333709655437097906911990191963949342088871039687201677510047864530053794869717715290404846956324561500695502750390229464981084228499597080783224932049682456618136049895012186799362804273981159490597410805238670508990239115402330546162857931422284300342118303070004547880901845334426783350825985341308038667782536815304700994439630740245730566854818992369579274881865662989412370884646216564891424265698269629970358104316694930496027192513402844206299977917654033524712228036986655093502095097102992664297404986463057428581302306488741735513530217610273414325013718492596334541779780706566200464862121699234705389420190306942331834680848547716394085746142778158863768583014334243008792302943830720338506543981260538709466224658444087582228303677988735611623658842347935056444023465172612213193754882176503548473506852814688021331189760243815266553555068149151387752903753351840802051006506543532554624599159553494818571974244156646546833931634811846151405990029654874191998392375357510213417685005541022539892211117320614336677963278072357633478202099848498115303591332727585407185171808677166455227376465470051060094964819191073272293484955308160722955807540036685555990774119267340425604024891524691325334862435719027046738519408986679953075943443563218303313928328113349837667142319114773313205831990680999559627235999028139497697248609156932185195201533915883768187617197964070855375909539625035498072185350710490140619604699733744092795963212669578147500600514820005727879075445542590825970141351409396584990534272617560771975227580327997864239613463252515548593951745397557758133563213805075235586305815217594988676146660263301658881391603571618465671254059813717338106415235057556087688100328879485902054492354289886765815476980319488928810294122838488482911506904411364752206000360033593232079133582393578032245451377461753959738689833877450530977776771837896373903417577186457294233107006509898496288872902749151394996847188447525394208592950602812996611809593610539624141087171296669916751678339095155635335885370792211207640879418878248476260334857776614914551679255447272280144815660453557441728424533042234392887829757326397432579740478697783347628978845158906477182537194426238102649783683134733743982238747519812103071705353447519523265370219225416980241883004169665527905475672548652265762502273485137257672268876842069563629499737658607951244796981146997291438337684917686769598467081684521838331027914978861571832490263364702780584790824945622093708017030595890088719501977129469816286418739553542254459859202004520519959764325414705985728202914214536538285737966534183502946235112928840989181745399971682043450273633267288753077748935241225549679921049310792346045057150200697201614813247709279365478402626215004433025361029488397272091810045220361334352915563257270524502500137051675651823733386157802313956602343682890783072614846068308707429190509288394349684459589888122614220349570776301256763833201236760920451321468018548063919062152161385923168598933766244728488283634656946651788752038945430767366255453880503582883817402187501207026204019814445708758815135996814894694667060237704360904162027516763233557341554187775177155965666193863415743253099429865779720611444014598656317119913460195236005828289083852291474589171525808504244409782377903012718035380985827644155129550458135113635020504250221906475715204109048001702157185932645616518738810601077281880646793313633075879103393640092440030585518650855663329633858581749494034214691010633717745608476910683335530104580406986001159081864358744102741567275568442402974596719401682510170013938061646968634685826135576420333859690202845602128073054559984109333250301313903213915815393613782951498936682708049705821341132117785255154002043538411727335679242363926537986299607873426109626665787267566037947218371986686696773426529440564441228434385233407140374730306732567820405661269781968382514959346564654089811443878829775510791865601690055597198899508794493444855484884339618444788955151607992986856661811360752910168690432143612001594419602968659052904773089777129993747975241165144946144531323334005064438767993974127518033148813327489289916132571464891761043085849849077996256867948981220166598805797280102401696573519556079635837559430567134288842658949649018787544146923921002780554581448126679474205917875607493682466083333329224904415452902216330974468434484371092394698461996144464875533372748551578637731861882698335916017296063417111285323813340648169438698979164212746118696596653392932122881853926698633688386407036077202383028936690495256626209809168476982052960903480278279941780158905079472500750994623655316995772117684428006594898752538155589153409248989815285273573950885243151787409452643837963396678635818509071551316530886063364403007691163110733329708444041799582191385675964814152279797174711889101790270809780315033311720525368944515181451799151395216766409216025763319994446175744979440859058318615910786556617103629450504249372373193458036653001346632000914880633508801726982289585589377402750243968406812058691283094607189781947928887108265364958520598914100092753850910525961251201289861835544670921495528427153101267043358326431978022360493432268469008299135097011510771809852085775140893262781902387432968105961134685073512048025581719410124565726868755768624893803497436538667519046923919864216414501047378146536838632943726383033847293349140325249115870670311149775618773384230678439395596747898611153924253716249269399829700700098649118575509150017734978633736516438889536715145303416323517554548668732484551491999914070230007732864985037283844560185808915290316944005006909741517991873336727707853047504685832226212294922017609166641824742883569620073112596319904740885654163150848476911732541523015827371093091415611546376254425495815052081479771601366829118964829187683057181288905601760541589926659123510666598526370946705176212411827072783253981522008183628106415829080894573272618144924913904024227796017089392417311121159394577574591139713132291010043140761071324238796617681137383699322574126494042308244914559608972439770408513475671708924770294204407282898540994743639751586645220563064342852770161521950107011465469256120698363753249700500957447661456974830763353328478715764287078926155411493837636253728840129023409781657907689369931883133152759885831047700962377751001357430601188845469487789999731173539860359843362644404893833086847955515025084279495679350860094330943205544141553961543166599770346861606363390859873279602520563674083704126088373817454092805336927961773183620444869634823663021885390399256621249260120924591099885682308262579905271120868323043747721952160195383193905328418994198990523614940199643604848320226955782554319394431692254523570245187539388993106450030899532171604826147583189939526534120402288474333573435170783442248481252612572778754727180827043875751744703720634353381257626019074485554370889532171298726502755707415763451070167624738563995549808233788702277858255145135210057643853691148135277761326117583669775840165904330577833503454851807247380733283848461488445016852177641060589241777395360873994264171017714735851365854366614491296527662103936698361815747385867816333405783755738060696970399070250571633842384449731455902303444493223050681419147912032669942381521976199154128394133446070123832634524474442467280305448010944068303936924566691686505802658844299675816510709055882486203019844648524843034079403046779785677353659616652692611536477551542899698068206283728740607025304432536380937780347989937939117082186029114522055246079589783414300642990501738749303906124521861877390024504813393012791617725736982565278916180934193054588419764891655769990266588435194965826006307200083393008514679879896929993983477226602134984039954447046653458024058499172695985330796664420783480769831597480562788518722983274663580518389298492235502642479420083782795405395176613322482311310782814931786654030156522316249962683710759868677218628098311190463498801744491771009457710807925638551740913783969257956390409802004172267318768389794581641690208802514230576890878038355254825847405270657067754044104944419027612698405526378531627905344694635620041347549468762593249787827872329962183598671076720795585388816856507691521290759229086360219847561124226867534367048027741974218014584091417519057663081265454897044677248091761312554575770988392102939961178990175501411776911378940997059944582641670730649165649271297376438171721314530368162644860562249309335924674983035873506724903861734936188819884969590908728261909377363829339005313690404841777934447513116142657621089607712761803003320948262383490226542370238326132452680298887953626573399317049659297097163906003069112734983875558055101459644528948462940685647426674654815265140845786090658538558174564714317925782093557361301108356382425629116047258369356113739369710071503174711963387236953530295125878952020057970781333494583209751425100302940880393399609804368002993690675306894226804374162644149861956825316944388580784917404573323175747084725631999529416184995348656645386325276118066082327525913280659534160536882950639531533111672349505796646416644080329190326734740576322314512194985984190957548644618401208671308290292369379562519255245014893151030043360589138684452327147345191703653592027797770094655705922286375623068602210569673495179000993764738778199589862274519754205433324874873473174066757026696195886815647406368271968297926327160476187037128992946213807291539426837189245917595013482643564222275644454958631297027065767219220754369826945109857482190725380135271308871089405967519685147569095647294355151876559204311257369309142328880346992167198953774378863328711774123186574616177925738268599770808067425203249860782188101787147525897066436959960454444461070200149333303889762875587425252193628697817035621189142632187763436650616345862627181821382751306790969244609574287335340464585693135686877963947941051433193429985919409463819317184549982771324426324334793021367783087251196875490305685652322926906936453292885892525639174712458056869351192191626594103613576356052779007870999287450870873910847361438692171711009442324916856166670218221137140584143095720328217991787884606630846705660200685749629050662429126458107136308927573523605950413483118952474929541215163310949434854156689825751479988256201239158973625042075221687856425365967726403062809604019303345587806364057052368022680337553995455970050860978563007434742137892343566440855897940368985359439450748836128026490415235963706092704883988952052861779801817807149214217181986574054880201274809544152053479337793460070057406945127954514424841789818498469864834599297146894075031961177577437685862554027993461811866708967618646435124541083445486923057197753482643328065173077924953270988018797631944714399402950310829062359397481544013497431481261063029993220121853885905619618486783096696678179083442520993984438269942346182955720416530514670755128356237471965667684870561858228754676878921132308758520333672055293463692669285194680918643000096140271499391095621140742178594722499759001896363522740154870335052433155366603085613202782261715624247254448994961438193811002531362331831160333180590385426248922457836727347661235208559142939026204230397742553317881179013496234676656002737110693678173653076345329237015710810160751538988107571378509016021663336310972382053524981142621613599705786766624355863085466877043890821909366409617001243371003568433538007838079286152000022358646865907557110300201599917674855286609903703607563828042076646996209559709135480393701100051129170899482532619573735958964569880613693824240563710023176052385677623416541605677495200868049318690884420522790968990750698742592734500760128021236392548291294552274867246274631653877636881844409758648165058663787236102704541192976834417778862108851721227825177716203510813507646881882300285773188039090146803144407085029405235139728228433185073875857226867375430810801163005048529126880889777597363092165418938242247695930753203854792067769540549486533845148101128395314481813379550160874904136381847313037308220111461304724496085989447282700368321331843466273487933938437025608217609141806453189001484566843832220390986564891615183421219079621806406358904082272667784424031331881037639279936401564727065089574259230670339456067318547712432063565895580859002366138584334861946742879170119311874796425266049465965774629448211648072162434999122427559300087980540671688764689467611363244528471359578687906633942361867188123742171062867741938589675021829024044060450029056607823802336367045506120880663135033386812509999598895497703816721177521397580412926181809125784598740554013043508900764570556878893641480317424858080514545667323586836559944778490151327032015458379750590071912518676503902037716428180576597376997204956978040900650966563720096274036768187041571418965334783740749306523439018515903702190863630386481769146289993200423383545520279572311042942473204200855573083389943076560334915932860983849787855244563631621542431171029105486722491224639953587050435282337446145934633899748937532229070889315255616080906801872535892569253584037305466223799055827979979771254572076746309632999522708395758488060198938864018123180103672774001766570787777592051131481741215588569671020921412403952971584729517059013810838298833453830908005407272835291810440756424143825320171467403330911157657852627410516805938214971350347651913703108870818465631843392024320591286952673701245397348761278107767680481375997066739053598301230203885899745311492165783395244285424087940382750142936721485978425574941017736680250193336704189237151661769250714966008729082676496055100941110225279602207242008457081795711652632000691786888540970420375508077312675874273576434009981260457737923739401728463403063963554812841280835733501973878852302763766564161534412101323065150804879116667669252480336656466917351509992217789984220502481984668128677208134067492519456324072396947662966248563398072105153298938490706006302582175710918106034826516816956741322464683338928878002472571599381090317892968171967819980385410757292633831359620316975303947758288144099919778258640450069571944551750885980565249703103062000822865195704344544739280784314869036126191556138073405704545447922353092168345936132567139036836679757098582812416884849705070670742317691250719296176473649311128938822192369444120381140139403327097760260567768014523279396136372135904012297855953041723559631125247758137646742065100285022316746469758521385641548336971192269005974617213383302919204485100106937280616885094154007205557896681038136422117578941542051496784461090563009415263466211378243607186270278322150311354892600397604694665434779660596306041825107319334629017092559037062453866621273341581965335705690021231770751502952443503104536341031136603556220756563671732996428746905151409657171721109615200584074019491872681790409846678757731892009316047881125778538387129912528413269860920758549766897478628194395605089034408116942598947714821254832691098782149617887043884475155844026430027691798271363825944895841018748704822993376393384029233665313608897267544283635317690886871653894316005642052258054419725968228026407052691365632773720021858448588952764907385266047053638050198850792008205985151947280901826491309907760179550225755261238727163308094776406919633092259884451695791582070073066724370509687644082620872846358127986905626105051170630459974891245928784926985825737276120478248814588019036723578365650867274618328847669910975667912911705729269850240265130528951023405610297383708294566364617777686636332695398614349034776050674945261206713747649725732660298531997086252435261413229926969734216126515402326774687302953905863993225524425083196594837977394181618006494075935710535583381484995168201721805772280727255677580809143054479323240957535950175722899038746233195636338404411711555470247346239914030375460600109286655850269268162815328936656861410792830681826143696546092311082237002518717276951316424889394018073859883813654152920379942911936984865066802940823398645232392605223028902021554272436001701391740803845352074703825994719334737648339617566730944448724975961804618192668503236450437856010996852745540525831182588099671562112331145926181345890252714363120806949414890767710078740169968171154063156495348844631145896166913093194512534855468511611904309159991840193813102551297495404373564974172492558580836781487230427102014624901903360329674437477612029017786745729317762612815674534042385796173874611604012862724590326125630920952616034104703102527447236654412428463400519133092961720748284982052816165683677548083256415019635018098269321706217253727182634332984813927256736931408386322375481095348074939652469182509790002991005472008785650314462478365954256534068066119852437536272013730180178583268499958805358982571819171471011943344146016637800791632950513295628609973371128433352409539144040854606571097682812895905159067648966116313116189594869047632530311065071403205625451624182481155567009164283369431758271441562438588621262520505470252636090031022603820410766446223821692764246629502712856121838871668274378665690897752480800282112336331687342225462737689186810220095972609670813765078550503116085822585648955455022669726271978085554038476960414980721799864226513979411159878225327815825197541339989131005208087780698975701320329111296546266641006999327179070103630673528009191499820421595554710083546790907396561226313641958623200685118804418781896973982789874166346055342535453666483984224000537118874671190785577703939201627550460674614758067045073682066992258258550404073970215217774395840514010529312732312077763626990934294811270892398565603880275356957772260482129350971687520065232076920056378536892346919035331305801166423123790598399249152035909105944196426768594059963573046479331037865997478499636019280791345834592485520697996453491499827548763319548109345720189219356242507795481165210341790012234479155763790404756810159576979035458222369622186775388956866650894323411486970814439147841489894172450186635562226175412312718987281581853974425262804631282342480765194177499752937095264714564814802606426003290825126729664618579231607983418709559878280543175679597535118633242138279322251086753051634687826820916414188886671095783428407783154038175632031463622998617001152566815026092552052537146252495933479805029658018227573953392639964999997927566050463455177440945336676697255820662643678925639768279409989569054226060345715998648315742765238143215816539414332110702820710069730247955296930584492727750779040532504196580050105285353535724403052044661523479237014525015835964861562649622525587934248484777502911320189291198615641193314033513950872535479520898078286692596859301897372838020667816905665831306494102827656686173973992203273091392976000662497064470142816158978069370955332893356543336479654123521792882196340735417422163832355370196422304577268684544124072744578028380294485105303084080905155424615030614468428679452568933352221627614733559515671012209763521924046914447061467727750818023495077714866852831641557299176575546022682652779219534372885459998644249253375300004741691710793573350195584644431750833267954003609659672111569709326906549511546184205317715453548495761110937520124298216134677304263452767038626963822329332613410191209708289584960403882950033601651236135782526777707935194138218513436286127722230806794850568621187048429321334520355199449124440945244403386853049121774869107566336612795917633033355635422436047406288824197784440906743142572283442026801761703880496186402123043968307237886497104329245500349081083216276094584248067757425580312580856333316587583653695148723346015009761913310302182012993490087598278359026773346257421892256480387789101450503934391071864503248468833728229829716078316437152235719812063708988489637855021350670411459299676908230881820703856468672433597756403847084225374889112746096144260249251374715311767119999507417186989297429047338730675040934172089523318159517808206446242710399657262960546966299945682449444490381519446571189402212692022258147470145734357633807339980960199682746312748135001668139079398575567962267640941869119441546238173765735672544811830926444282691404936733240391794267522604607114724189563923705354747449455899135153577161495137488707532193190766078023405410911728228058667881473204895623733154536528167802344991144993992599547360162041181399746099747515323181089465045104379417846781483877586419793702965485444156015447993989623359494893620333960329864119798397075584820881905974853646852262724394173757378548989232537510636833053687356724966202906921323741690111201684361785317222984704501544868779056934856753341051951289608049309469620566622471011242445604431423942148686468226271535548612050885419916438892723340424175371076767251355474358998470280517964744366923539813076599812622309646871204095635344779890625271388363959888529251730608406499635158241016544594979910789185304036449765266052179667056509171018340504103955503852382491346021634180051549788259933362250779282566905742732685907086864661473669089132122236876075602214292776737299124555392746587284275421077871786379140967310144544506085324663648317084110992912967406477258084787833789663000899470318126416701814229758831966153659521512410186253621919368219952617299046078578950479502374401025646372927621168925350870416884726007055051067661996995375261550449284527827417371786736473254526643103039799890087163474191151785843874292261334631447998808948428328286847940578818613447240409738756213193333367376972700426719048520999271074717128623231080948295498798896671950448949635997935096954064008479671527172637899157465666186960999414422445446629694914169516319216112929255008808053099163974671387589515289379581360433927424227370516399311291174353989941407028130937075942818226440862953137849576840874074291359042133980211308095718968008203097028435658579487405544406389789190165773840398143612385666864445274191122231256415540052734698384598847026169572818527188300585983107508124252636793349259280959041556953600388279807473885637897007255407070878266026582430707795731565986684960826739536362787659415700711690362774744631583476260199830623227677195104323226788892794614411302331679847156960905007008410040757890404777179789505671897828688524342228053859969564218495434461189040885200158377248292246215443041159141538878040555140147754427580798587800630180289377689127877225935944912588543783507422825958215278163410884648645003464825117408339610570237035449335896651463201544235506996549014560511181650589710168618706397760655246155237111311791805943019635018124511755248946698531521611548467472386668115032251393307028800774443509898079140111801578462857584545937015678939696546146082519966271902138294503550959904012918654444635297741042199134085302695347885726618933157331461104771466557407719822211729254876199453208015008897584566701824493599749577290208652551155096879794942853378195966721448822217598902222418148868354061101598819552803353826539343198307666913295259841746713720306185503341352375291873957426898439836553695747843558463433964122418453747066837602612152526051066443583088083023144054616696193733325076968397823366939538372757126905029343551372204787225410212462093238698468125472096157645986085832891316912779797250629109159571895145264143059003697947202129833886852367902162075510546036584275115244162563560357110239422044072973900695493789441147332264011051711460864133680164913451050019589982694307408207178155476330150623695107739888150926618613316189022768636476061672549873021273914531885759554715110269170011374821044101190730848590158158734384547642087473264176636267630519223962346495718279618242189195125698514388760056742462960104231068892650339881587317903945184053293771999808581874392146492608986316160256011850766330322515349943481136392121016097151225149592390586559431347904646675881394831863724809174857294670896883190764853492641171590512629657074351139775611481331903499138975779397335214058808305809308338393850370665058952982985558163325376452361811872684453443773805686809221623036785048325315385685139803232421818396361705164048440856494982611799923466235369375398878432450926072584798464362155728050933808636840498252592416919132565568080645808858220970373918390738125923392236285865729642796202043565961176578706371927062506686035184256962828231409396739404538266136338232572493847121269266824872693178813324913452708359661712852830920068459251179000699926245589871571791815518300116736376012026915172248817905318475751616576326266546417502525045816396914289739674534237393147991550441391756765805990979719190307030668292118636145986145516364614353916015706551288374660528660829779388657255591464419403342033601394792268961509773325995703915965415485357919187865077543234576649447504221547431830753572808161506723058186443156175053413161045109803224705285379853579420517312802729801467241799503562946483375962422827445587812569078821223599530944211226208734519232077644538292512265909610736002893488935408207992901496550483018542862977134170867192184018759547421972888712897661817358327548156973952913330154120328158791834205970970713992091084577647482519529998641975311682932850978873241204269819144155039662834568239833806668363126903295470240959360483205815411431793290468942666476294587968682208059575517521622014077082545194087249638084460161436643959635086584688290605253438355137730479432747079691838742682229495534710508496352948228822037757926110184541567184108134777179060661410771442476018771042328343005252208978501588544153651071467099425680470342795751387995867294074146115481281654556931570165153467682901750191381164347154144525948943307626088104419141387917078712041469950287180527271768857646707417052768393579040135962119255696617169771051555742881859831468004633152103164265441680247767502412298937421291432818126014423386568143822984117865188089065117321744192333724574505334919162265932161329848745271089515607156435412629428827172816274789008240688521124321241645328122178561880170887649399266035856076778930370588347302942827893907344137447066387773874188007608418405363921342378592188377166064790928859216132099271662364645805378303296727170841575822961034266340146229051222138829439795701930413484125744052545300974319179799176577609984028198472268355038794771156161185272292068047130007384284612934681498608202331462333760599858235586421050493221508051303556003832718111963519065513146339120305284167533055375630783210754107085671802608128264104529936558145579842351229340980083760619839198444810123952131139325697394494384953888946320137620485377073003740524326832268130029680694984790390738944129206741517348317750128593022785449409635175178851873552349445814792534986120011209248773829715209950919744545105711440935338054549073757422640772420689395449283614266409614699298445762466991841411700520277575031279581384028612894993167436736713316723579270253463652409989415890420756287901718139087382292284711583523863039406202481924651847272377237937915517489203307519260405744347519518821206776173805773200858892828096096976615515283645891489212051969544876810470863351295407650051716394362468368314905160848235781226240370602031174315631194002274140337459695470608459403375670837132683957050768502147524557247913376812669695252849199878051750837973551275543713299430803316463545391975831201553009432644910544531550028161134340639362551378395548513748006247600589018993163464356659699028561654321246303528611657055604920015705255428895501509268128236636783253369859550310157685639633912744261376098793638795100310973602314878830043872963859506630328788722246484509613354655059499762800050657810192478517058156763546522117906554316967744119548549971207635193234184881460039056115005478415295096058451850321018539872676940736959222325600030322733680024507944833340416755917908546787615095455221942468807629519192828244789451818076590591061323880631250868877753629773063188119739080390038486664422389983182186748141687871648572004454846584459266281987366223679579746805571318287124944557798819342888544581494362096728401595066604639675075012559488554123032754037499885135700639561291631470483174789681834594680866769286535585249310607385894661250982540245021411604376580673710402851484073935840080314659568000663560561666690366365918131448040389870131701097092184282328033379284650443677869737228610542804713280952751615607597715865206298350414056063311627894400824637223338518558969174175356649749778111280329066531982257747481041247186098763784850158651345187691001242577402700212990207330820545359906940749218612759523481493874509490649798645063478824176544664794230244467958014982864779762409882892731124076910875990297355190925018364928009123394850625063688469129886102638219626990889882149364490838676564454580046695232043726706338847148396475626456868274119915552964251069791929018610474169235734210497679972440908978607157597527070043666312582550903512756938570936703699131904131128627455982753869974537087981384552025020145198434455838418194008961734573332710445343490329704174464805890014867839676423590471638402532379268062654300969149477014158202917737247014999543271486356855813783335047665880609877829395568812833339741305346335227689524489239277955567591142870100897044355541462271419570653494510964594602990777193185082613378895598341298309951160994611476727333039135107577964440584684109132235151415525350514698361440605445776948831868621317195816206605805262217483870436655973561765238395749467060534984325309146006270352064842455502112743229881513501937137858373550447127257876217449123717311803153806721857620075388563480347077185469404517158011738787256268484359684869051362664964962646627152661975114520063294385576476321798408335918042724917035462448950942613929886959527724740354455786962345620426422257098829762092598772741904658582787638890456468565911495335719033739442405428374084337382841955858585043523617187003954302087801772146600539483365517463066169901442723241302076116020817466824339141972066617424725085378519670121991468795021118171993224502069395993170546982208696030449280497674301477576047720779318765128476447403341109378602751392036279108795818550248061576197235295187606679939231955120862065959416168258461031680512015787762468929833700792237983232054448450989190674916410052785870137931376027078633585185630625187171755123349284576584526252670731923218611727490392002083876447868821875547059305251616364133514152428901609874867663774449836155087740808049293077852463776374687243991876735825209853126298484984920591545333537884132644934571891417012424207754638971071235642340995437930432333747307855039508321301492124205559090461884427777608326781076634618425609652250897702600725887307037620804375518105639942036218093931175477617820218158729703236019498304699346242387569460523265133607510082562876318489206091921747356748322741626456183792854911130075832579975860506753442642036149154367815238061348747656252726184875068281406604835106603369411121239536029244205085789223379064868816317826077079146193417163394026250275171114581874626541560864240607049152864685436066944498872919570453997390370164644755678526491353802380026260718059511975009882706476417019388130442391516399167801072789788741410484706127610374164470430314308115995916150886718707160401247304517341847072195880212891672980198892654913076897899563583242909307678318988627161080155892594809576096608958117204986781835431631855185012954419596825333727501784093613490682189399202820394573087178453667311193481774397271676833264614250434209872010460665779251795530698734936892387128425167748975947727453339735916238929798665139193611910560748028369242663654867595162713898111584129058290382559355861446598254892249081901124261208412270944317904136268150381561171823097889322205519304074569592402533476949963440149631786234411846716856490435253942989540734955325794438751632873901526094564401781069956021073562467384009130292808084472624352144897360043224613898511161496739621461008781251219292321368690504286271806346178856946418171742415310974899738593078755221342900357222599865669307867629430734619782356278683065009673952434487314900546717570936038512973967686981194735785408347920440520364026374831029253798050732444034392490807187745956766949943341703300173469024351654474623023266783479732428284968238936780270260152116181057218386195123504490127891491433487132720405377322408593892058427152000767309370799705660123325265260632426901628376541326957184237791101620806084181095195085340260667955604582308016828181982588358213125817936400466597772009978688919970615309692302504228028777922865636648864990899422983645124781996000231919290104156447894791480848264874720313323609475872324202523133959264534016673792928369581093383479227296311608110955296012040583375453587773104014245422813820262035384592710306370515339383110699774239593357940177037474288293283421080962525150673060909531887393817552630803248506592681562996531344944597244688777900013548129287976836813639024600194404759929035835567758116640626500533627901787118089709414948676062764220179281584137546863348077124025701696076841879777411189875799480449753408043400161420221120442590582393702838156996584437117946184474750962662253752001501004299654582080376502294639033623468929751091907463323664274080968159850696652223794545830930438334494160585440664197894795465911902789406145281710582392086027127953838685787044136924948041651640768954277111493875894205625292102224108011102013454782703107903642136078768580373578282727998190033269059094078822586762056724764785972047200337654228502125436563749527552989040544472541010459287319149149852796303752300597804713306395616629449566305215844567314592606612874477430562663385064427472644182194994890122093061760117184499879345292732032222419547744755165306597745731917750809589520048048173799604319388922314517781135036302606225267938531355604137696695204221184220933927580038521657331231470344930878112215012545510916520147404480140398172554908468292262577564176496963048886770265587006061943925100493235569052685523081002701706311978833737946062139907982591569511763762585528143064656812520086163361872827096147123460887457658117931512301642298987797382626908718106356500628375503697635032123550310219232884615348580973215984753690551262965053843492890118045574597086376062526579263484356873590146382077062867884226439405344330152569166770857867652791869262795952701878242274828291578049863202409391901291504896783048922053130506660313072743736633613311669559696820943960786797544633802265740049148418824888319524817998743983704780024067935564454261315784727705965883515278576957601464930011572753290102683864645977118040862020569963998348567452377396798085517328718197208884239842346106878280163133116700214534385081730525647532262113927986378026389395151240356863358031202697296674613568944713154801415524433627398394298380605718623983929028229702465264422073123170359603834327331940061448996670089675626549832377488261036804621089491454395383378907631069963734933598332414477403702978437104305030167034871651050760210084892093068235277538983268550146480470097713652625462658389664691528878349137321807774551610738335212137084491083791271716136795580947705961747072277802492498403359643642491814100932457125231975284394307270114545268447866434815300703882789441546225375609309345906382753679440617409974386884969093762100646376762316996766116981681196908155498836120307179730214741172034088517128578317965006320882294114958335224264705595543905827402251005939841510071260556370979580655610385043986762259555799970053864074712862897125635449786591767201867723366650936888927420118940255357218095578068640700540393724365500254597905233373436420866624322639142355059053659539790140154149980929385271416720237298913873554459337715489572741100152275902099322087627417831653496834555867084715699818378061666082047364514080619651159594339260213334687364359704606251713031473916638075302975464701018139376795932971031014854430839261690473692561810624856068718557929067828485367531756072650920077888812603167418998141116817120296022295920218068563766493981030325271225191755655813766079773909510564223660471564168728600832989290234144991988054462945573543112019207683591669249424225296499861162184366333578996614855238002196228443474252033837686091111682424647454476910217312779074012108731454544471797456852589840472014454885634055919255791617850800200001431812357583370855293911079117464020542199921106686423777278920402449468594024060227200872631715907650451588040871215227676435265886644595600951873778194878158572699453029555325029482020920154743995829968973465470416758112745890952286373990345579624333020291491106337211384241610599140384621289069148588915431625426003295267935004600316332921512297538960581036839675711394864081059072128784436447990800698982213568771729134486068724592614472507473232607908999250233540059264968400291657289815862077159437659365109449229873059230335321999590178116219882750451054793032809463021196634112676295282508935350288544192425194598224010047795990947957966106654888574209431423822226465485143801291858431718320809635200695767463222981699493074947484382772596923899534007840681075020973966534233581574382902429370146077173633825992967667275422640358815114559897704077649833326248105113814824728112280025331344362628565265701876078895492145180043688724303441076968184720368119118532593166431225338399785129741079306620802029895477759904309514082128150230932027923325964284919896949054082640680030698390730627697929742425747969794088759692435584963345723580743979352774415068854927663020684439243195724754025301925380537189008641394838609139946581821281623285817755387868935371556221652165802606605189204715647630109034574160994427402640244663774656713315052515500010074524990862196120016910611548408690605604698588831151099151667814341630098219532882055764845652453906713390350990216866155287078538538759298631941068393232548127845921626429870547026553018304254647363029137251470099931346417522035105487732748416773834733562433718777104696581065569268575032043246323764258161141390944368613488568311014757055133689578319745130149583633737960567645139761562259207914522476598502124110607855462955548625964031679156885419706403302759365687846826667346693149528467690461859737492307577363224918763115638579140858728606597941253510549952907817409039903863341967516539533589313887199022369224572562619967360354658440293972884718260679332975662216480446624680860028907840535060975792447288282309466137235501529223658738906059412488447509374086479509375552897312226798679447267709433059588343673697908899520978623290424815731792198782492766485632255368153300453062555701198499302438534291192755398521028939356608088946170605572899643655181027020058764150142737697154037743600547015489746667426473962590383003591665192002000491535411914814117563128474451139606736277237870724226320624440044913796757019165411604704423435221314431016309110285843751525629942452415223788574219144668382230799470387680854682289363174270757534087012216529197054990888359346100265782603253715720309926430486159510033137136185820329232032597965561839043943480235673633036292782973710690885830124202303060551268185510569290155593232061239628507304676773923080226315858785104167438916918874664507850120883107273483236306327973395404428718773158932162210069837822219133450296350570188636642429530732711037846960822218868495379262709090952298129610714242225084482779746302781658676548035072193686477525156231614343818883077493223456090506131424013342017358305896260148800700423179855310726188893882205212365944678567202921173632577097578237939402338512928717695627849003821933855507615616133911506757463562513249414212946970935175048817083139524986142128213248041875852830644302806980007674533106199115951661490842838701515651604836645423511368075222598998080317576095608528331763118830054660004383678330782184004739635869872953943669861891510356670082928185514415831997362282054178889318941364588109158185303978600120887254836581240474191242360585114287958192464568889259343474245965868596499282108705053282668089339366874744808239756389066528470811556027853593885364733288663242071347018114451147879684792004881925723421690070727057651303474972349285748441128972884748856702021134980242171183735454439400764925682519384030764944114805027191943949811306889958841966802609934327434761391056205286026500766660821257578344396993375640283891664002692268186826593627264837050353369835850910520637755764307419258381655132336145536456287121930107071926693306842330604135923597178973168882259999933902854414971886115698998582140395654996357210098726087705988750466413512208612656452761136395404756611353283501904947518587146467343269402756750820469007111859181858594882912678672940515160912713642866222458846020771619254777527650311087998908352525888134372642429706652893673519240340283618907105048579767626511792623531017920990190004140574813796001071989560311291699328416372705752114561288365274432464252389216259784190081364424517759386909663534940620551296090723515681944944419785851008709687677188841203026686180472976127976124514902623769798726928542080743890696183938200370660632034201021486277795675240006567152576392543999547879778061034352013497911445612432902399538466591493126600404940401663522669234304239827719059714412661497647944616992121231392370512616949651391041150936498794243772753898779224491666756267052528816639983370983031634762478402232126595081491236185380330540897251498413144816628357399713516482685474987202474767959162570700385720446936663283924702924968920269444211327950105389938629564362926618382896145562552270868023218093871684708806235372213286825241281458301078164338764565184047927799672971084331206145869327672381231789998871680409008310560761242797084020498399828842040697375791007433716311732792571112156751972014290535553074474970501784430910100049921300090299436501391854512845039829519380581213333962085781550350528411236913238808622306093282072938516190333190404704942435035220988062455682754934060694933333148527558892216774349792453442371684314108413347243947282615796624613771845882439517905415777558993573364042899863019796958625391154109303210471843925945651112768034878255412094196464915629571810793855330336763091726913629417076302515055568483457888211724589045292887020175129546666432843596266197858706358940992891613132461073931288917580952813696468770292917126513865791507613141448024942523579140570857853762715197033283506456228570986042284034263117005144581878501366196064413128059853155895873671047755911898277579167430922498876268187730220748682911460627230304994661954444100531903438843079096751217611611333012918685776326567566827168993734629684800914599563649957919660849915187938039384446108260683797619935809993394564237847061631922093957831894178406553859671854964203729192890404313327627656740630868255682309095452078810188257416361791945033844773409830072016263550838430353696605057659218609433176178564278458464217176336943718088380942909503932782156523370876933543039844741082930809313662240112544814019975721711102398288037879359128502346299479867356660207259585208764532016884113843900175861902145143994654222293162846131899919967393978794806078931568482592869229169755920130678725013351851682374445578400652082407975692105940751933181395808735091675329872803936372292523327364549016787815740366527011317561820999508276737161192921707812085633371114353211910560909090720894843388380463229442727722199918642811163186954971658190526320416595771984192612045014973572893905179663556426843006145489053474649465068087971320289343055937272537132618520557835296548310114616676598380116804791522859293103836178567373597017446242096994877013357747174877959812119641103172942829527134381480571990388253727321931214536667140910293037093919749053394073215357085256813945792377415904536089789861112233377663197117803362242520328864566550481248426627309448903393885061782894917808742156435546050101414586282433597871004469533317765744180804600194399635014168173250705658537705868211747410087548370658246033390608668218556334281812841529586916629568136080955985121556268524136277938288228222221003277672992299894014404027170372158852967822595790861664985139020873612864758288322316194159951761967566818865566523043821514027998277633312893423477916588225202868294976944098022309507203995161505047074708275150669370859730749510402899516157501989330374657345911910912919040573259405743108507262930348800149147495191576233621503098857502588660635101626325460906394019376522156526684468650172915369608591198373655718894915595218222560534553947161266882128076846109805815222369137300709596688470232752701775396388198345828104910985818228506630657603896689088613974610753891536428317125557322401937321246203222568709678537489839253183783427326387025440473760622812775585947832085120661888408740959552999156197299940788047072848474472180914483114312389211206398640391160531941788891846208794710760141854211360571200184627537939366857777813188212600223755765554033766578820742564955511045045422407681404495877868854762944241865550760456989625839622200653077819635487433303029950706064000780071328690845430724548459130811390311177291726046981428988266591479537648142812911178050205009157031583562914141555991376267875097761175089770417959490125272103413329388848625351874973386839853003996705418874972947903265190209367319785282649336923395990380900987245323511163760524845962728277992803144256116641722919888808572830805167615182793703565795444825830410415675015137753220743817359279863778765664801061749879977093363432244671046631952285267500036051943298979663185610322892619059107945727408401546148063381551855646097401929912202627701637124126341150250238879794735913009592839941461759875544034579068295357970112438695745566779404711530343051299020234782707839923206038234513797084822703648935689806114751626989003045146886371654636205273807344554850602067697090828220407037910161350917508189692394861160527560734615836169366645764533653145022385542201797280402415176269609800509835811444399430661977802045429001627837662786009793602637909921571372837712978097731713745668846705519857210336447558478007079089740083578347449876533486082517453848191630598007652069375868980702814312873484113495913723269943262096333981564897249480109588569171470049300171413685327420268281238323633363460348186476071504270145826399323453570080781814970696491782544983847763208923353755136906439955594072280777722386161827776679780585590760155246268828025579613750240238062592669724220436394133139422381284284327004184149286048963976239890610973420715969456590406555917662511651043839855127908353287295631564620426595557904888579992234069021746270973539778022468689747052130822124902720929938238772483619353130968288049610590446714929560273588966695534890077902764259596667786934036004787750857174750235243988435440688267868066071760103027235266325340133962187737715530476310536843924864825232476267600907681004481126270911635182556036700734867570771700999213467991248392995868479605515289448459994134040809337619597986770921544831740055293347902103804431677692683998780303910111713950588768214198796104589543510843590958584966628501550849792468452053905980400346418258892215578231066565060714851588867340990827103344925320636410985739061898308459041151719291880046620940471995328876980764475218125118063221113939614599663721917019603176981912134890918209352991963220104150506273175610476754025377189774522505156754957306043236092140559078227383823720843603124759046830005359177656948905253564725943384712212203139446673072311856582247045626085626329470074611217980304671647278621625702232709143303745909581068031713088302100965425425896881468312924973652630451393979983400306445414338516726740839670322789976856657340271933966526740727144438064139195780771706022075182352677361380898891511538840437504291352663869153562948171920484276189136622908365136466762125722667781108067077466947655378510433539582318952168259872825969604133601362512701137858539007691906084141539588831715527990413702424906892525306717072655782405477927125000392626564440796483157586844817377513386975365809449697237810869093810197458160957007233020910928918097818795013566205508502324636009978624636223469930217283024010010281752064273533093494389775483847090612197966039045407478219780088805688940567066670127414252041267098980459223380239245030592772339781024528243791885463596627787226920228164438145602539483836533184763095716194426546801744094192529109617443712803016327907839477770814929842967808080757311087237031740012552674704065794182284239341790006109249025440967798783639214979868660318169363209721574760304145399469053751280598847709528798448696100240071986069628777494901422782024772767214349304485235699368753865727576704826563420538522917502684045254731958386695408279246928338817588682360569258481418964567511731180607735646062733840069643344330478375911625134990493926252626572953969737106242163953806661796020639119558298153186781396540813894587439405006508194356276909840685504176335220547673250908322975620806371457317562111664709633268704749541140703271863976614139329781305896066499356140834919178279096226051270824378919920741820255935858716594834484384964901807353105015356675602574586425273072286214150311368863741981969384657283264533918852889322988914974771541900173665681026003020691636191554491231299407718934717790516825201158428950050378800621942280018461456634334024871070684137301136127595176456144525601657519085024813744553647706080665702674541488486977895107071812868186011673030403529444728928342082386298285032458059301782559203560182744988525244139000890194898612378914902369860726503852581876639500118115002575225292394027919291202437674026595318553493935291494200472820454553295672462487156668365935774284638257464837607907527686851267776234471847977011105131811955123523269195594648435816932825225579216679223795886003897033181025121149447126829596319908644252807902789974307454875195841739222224708495465758674882490372175649932774144960755744983574270646671842766784796878822511621406849125863424480557281923271900390742315379633221705223197061804957754898294184570428368618475775599242329096998796600276725441883082302824104893807450021248210231970970805263030483957739654927851678041699221298230206094119921363584251985116795857167609189614369855225399813374323662226619979677781839267546639073228596840105116465306639626554401920080895641771938734209280475036295502701093997888575105371102940642661548176893311102421638429006712807844838821681243180011341018189497763617164443447722978785077059499237520568301370515092060392948677427144323068245712584125822829165159664457139930529207425773098704926812526584267069209785489081549882637925601612025090746733669225195975783640152770190832444934920475160713266253946035033056840815039384492001917285402439473430522474316733313547111966341515926708037617276501478056388096884987385996883680062573886431884101172616109924716783997014862767399842748879140186531169063052323329013169065138133667827854129087957441811254853652043736134847036431150502398534988548561487871665944476562472778266308555359543046918133182836670773003876825682471297267996050703256394697832954707660930009441235538304913439777505015658075439610762251577563810835988636025925971173413185784966409752983692274207491030452086375796995403325212299157072975392732652280743863209675223213283196134554098116936893418894269479896328352209356233497575324248576829838081842602131968842357163930433996987993397145899821345898924339872280207349036680773098648130159225555005812923137031078549373628002250793204061812088634618860860805450436467559632248471952274455314286906892747329894579744650561671160066141174723332745201440388798541046940347701397628329775482337489534675940870197046139027097269667641646286933008658822976398433694035432066881175910710893478262017381901336286587583037510022241873336756110724793970182507459038433683692505898469417860555644922702814482285238111887865079302558537989965613130266458953327319568339788323406815694609956934326259293470430992864149122544107396103387853239155482186731377240591277273221078879812411867412122857941633817637249039082129573761233077890561457230989286602355341601332787684964666594636207516236030361217237305505404827957837548553118817649289932208333066209795327423603035527238255157670133513947022323715562581337242539625221356372356060024307857504590655872854604688905422976262544155828506129369640949206654312073812202932299834532374161884925220539096008940269086194994933919189788175118657208204361011552045070881169166659379502455649967439046447629436807549513961417751503198599734338209545367999256001494134033379558012645569640521185066798733025439279539393051047836787815591238728800617795168048243718409477607394001775065221935851047589708836761083249482416763976720390450269959933136098586451579670683458217975806615069343372727923211649425363905148068004232915873229736079797030146182592164934631213511266108488971888618183924602452721421140115000099564120567279983303617166874593634741006557839465588431023273291181557409120383067974307171497305672188298884990961581621098314720382698841016446443919338164620644529296136609048446718793324278307601885998733936740136797058635941944494571182488918456200649467754011864598007364065643840159060455937433463098109688893695941785243891745882241496310576660459468219216035275004668295545478867031670319090278073038076657762543319084813469712330819702425266395361747673926846122765485808541993425769199537190490623966436938934934657653668788360540256366541351425616962084793097491274341302474301223652073045473962237045671805101761024634917685085046873824163323667243540176027311418946567125551415110998205574531504768289162914986381879952765068353260018527317062088783079274293994322733340463671118171057428360472347419857672928321389338353677623553263615909563684430484266824187188871283505032144550502161733018990384418636817788128979961171022002475137731249819985387451496592896939509135253231757968317139543181707413608154793174592974095609769007915334402114075248206561311863933123876944173147762887892167373048128083656499985935079454862056471441532265918987155222226631322227825326898091470240350850670345100136170312161770919458773788932454094578859020685231012683061839331983843555977171551075864001512667452964780603775513002803118005727278171080737004705517318997475167485157642147427502614344476920470207871052561047207209541213518211736525277619229016365675137911122357751088521826206063656032239614520244222634406573462369185558875772535500551621285508231292778470944298180007901068741244616982700966362616935164084649989986015640971427364795601478425034541437776876645125005925889869260965410545384346256781886497430011446001888123753844010966733124380974334711620444969725930823908624843225261461686430313402890441686870027124004233651275960232682527441977753510232635895948995413489676564040864889404518891619948187835454050643148061375185498112310676214221379890277429797809133384191712718253196428117779622988401512257185613082973919955653712527419387757081015360173521272759649346175041738006970705902797953883316688734552504241645431829668686194053200629032411154387914594378771123615722721208746713129734990021742107179955702160849544636486253774372177135489096884591956753589753556181091524984295936064485167269594798232421274939885073201222017220160252475825323453723854163263849968208002241396568886509530458114395439016286813588455756168278847342411379745871555072453476874225071229550850454298456503225528003004343695438776682309856772110192034376525468205594435334110340502102802951521519852860249792129735804543088230389345966628936994916161738987705162369291241680443573580385748858970178610480031356046601707450867499459033193729403066202068230713314734824212627122031597162912167812819671590911487035132855901428116437876666658501334173674257513166053672854318114758913138887446738303120892586937238953500642299286290886569951524918668588178552333016836012101795101280715484781522589558916451538795359179121736043601145189066700599547913793881884788452382139051603567472210938936207157930303368350352277096249443389099688184657364715562852521460281250583074417688626165501345137684909886187521868296381178525321986903835202713100802176284164910467798495698466277001648519784219275826592233566244404373795922740028047246187646148712408300820840266374766449041180341087601314360107074929319316660708557954275606956072422831482063594358243874713544589440973188914886941280092684667197297323608627883185349282624390971340347842852213217904291681549102371249473371506380670435829250453685152342013041807001845160720693482788302986763419761984342700121922442764876187690558927043977630930450637753329707390335643446326528551119043194286042334924480737231976457085747439238737688180149647333880909461074707945019497336077040558685345963477620565317318264198432188152789092947230607901816904784307669628652227364179233709748976397816760396080174117427897220595616747055168775311011996099635193181973883654037397160942867005723527457046908041291307047208264294418191417908461794147923351622424940338981716597910734734063473553229180502869518904826176458964681430363681069501154080129213964691493119436825867608385404910339637522992028110637329823258302141516609462483982461174984894478892504129394965338631968019163493057974454552399575757728052277229043279300020291690766611937430482578273653066209152470992539285204811971745342973658495042272819084999093061681398936526398427401811937265009865773000897375499122007668351749378806070195799251828794443049802565799253413437237860809156626688459348662179107148865257632613045979994522802964328976872347958208971222195088375288476959811973742153211143084924765093127149200977372001236256165732966797153604877816137537366469688684302662567934830513120307394243226781443208328002225858978964814554330753126484287096813067709090238704531147408057224622647257766357004874928383972908358318514543326149301314619991281985707972636430332925823314880626162143495923152165904904469188904800210450701577113323060702504266021068242031695892093961108647204482961522559771076164360669265580052943459367875711473415996988928859116148282066985090426500937746689381051622251382466841411445689074315607664058790469041881319816445597887535115612101182467504902712150544755842647461117193909705062483756742362114366608540714126372835375533582872282586005001129611025194563090333763134870476833883723709446264014616292540937463500422927528876107997561423175901371882504262404639006107390556573994123875281818721425967995424695316044196013245546884873326629743770455715442076800424733349846716979965825539521673632763702904105080136858762422904443681152304292799901409787508976022889576834864470802834313007103854157907830258021544134894198687723110132696812602077306877503667902524136666926548977998383436210494736672965878216195619010321546740034676240849758192411391307641116681077639803002475910220747784907351759598960820544322514263735868399899353175939592296662827931156086839116916291564321247588580976676234629161835495044735322406933619387756858779814026467063930460143411812485264239979144576395501122685597303331313397915929686313060191770909828748784533879721638450253590249231992084230567266825077934020912423969711319840240789765260531337326384901495027300461058552197577716490149394532723879256811222263897534020228676644533483879230386576644875348517624466477737562704153744461323428367832602885241180887689073734827635417880545531965136978179518055580123536692602586375190490842818620020782699125024133408730588280087631448607434677415361895012436942445175707832711420854777028823022127436326863111799669409293852465959369533806125324332953022838874786663842515890676283108915848637665310990028133861123430099830949813570131612895147667723633478177956148122804057074156605610205843663459727414508696854409178467990741229109471196418650446705624113660008841816683253008250513526555436760690731986109650687061522538742582376928642367920089578350287190329815539832456586860653851099003354376368105549696947427928920097649887242073640979569189178316461951032771940123371771217344391997663744064126541173684984217236553264496084418089111027987812702008160426217826187197257898575675616125236910243614617775844036154491521965559102730219847899858930797033705204233049834474043383712893431612667958202877416515479989917425058244071047122935265428265373738705244753169537880861963173357330205525873762474963491273407442576198950472633782482633517408978833965252779654307197242351841582707205149131257108582528695246668640903185573530712371402611992534554045606653566414780956879931281518442214037517391040968076099653227140939548620540331204255662005103356891898691501301311331300113259251375861455093032985537425122554177243582734614574455240871769477583050049202197770357631245408665207076795149193434061321707785984838777405204267288215573978336805673092189278295637222987453430172073498895257464324654341009733465505660534738687692712874631604134970579317439188437972899830225257021467919518742407319796097053687892384522354535388629223798215281026606529418347864011292171869208142620929803793255289245778293386772966832682346671002107989413702185904813364612792599535747133974696142005897409860812981523007255331043376356867029622573473980466028518569461139425992050928220182412178064979258508970093894794861281065892920685001558698113256912254107866525154011558254226440410825807479245723480863069073866534747076342103958980370884459929990428848876842065944598561767606209867876947609064697864158971715614969383419128058126651009991120578617176039841818168783062831362038711491320229803568959180056681093718134342739135750139894781952298875093266978356411929723473978722238768610262458679616404540220657309409148314088970534489517983243644742609316063214744115702713212878161550449704020716027501236729404558873621631710346494710183700337151252156313573271604564250355309574634163493936925313312252672106408835700823503710009168307645418841968722392685286340375980984614803073903837749074232095455257511801762348445537901664419977056553728546984531399272632560198514911260987151246089256699695431419160603056257590603742261118317919511205644006424848902465262302173307883753661886753156030736957133256973584656230797127120223424602233879261049487943937429702567833293097899237016887170344701824652303232644894621439852766977252440675242702590460891177233273661378458002586064074173852882894135849560770447898314735600210881446233819633776549592369405825815432561312455108361706989734438891620144497004691939959806205596209636094505369210073896464706088222788617302647260604838053206445915121334422356578086034918766342849952270917771471310482360977456544952428398822890745495092265388594328458010962973095150643004259157653177807045787570069034531833830331893876122632220334075020937194808034971706938840927700793490978540646980570056226982696229033370443056540725711164253580318199876615648396283940298746882302528593090708353575290051804245070601130963545394122694067654634006308977782633620650133444673666338501951027750629996952563753292085263244124712890059024383130737964984393872999747866857074005393395513101999919303574715863186454518528595433194753827922842380848095579669762556964203728007404678324908874510376249014344855030197175862248340350172915985930174872014008183817916317789270371472914415966105188930367514052508162291134900645573015962325053150730990598996921138692821415227493113683003547810757681589447924061939256750782803310030321371711718907628407970159296271423767501158814525099023489863727376655280189326593018383399663513938316204887355572771991154960085894913146561781693939565280474814552961736556671599679614260221305766439030700874248232492495390567511461885218334248066407144538598871175054368557136936559254448198116790560618438940053928966330427030582248354025268082776430023333592007465467182416249243617986290941756750437506194621753807659694486072128179898028649604321191692750473055223302750745478702833021540882615540877281736377115798596569881263321983046694192352667435403975416966787723759788515168853497459662612121842627155695076512455279635085766218065887767317521061388288939316971706034962655699423517412472820259368129676411440547404042816733074841967809639626281448928420664397870467036645892552673785690560716365037759887149463472455908883135687007023355908707231674365459686044745582887800747003824246390347622929155752140897018015889119861617989271040384023889247472513776139388646986981123526721440603504856217661559673154177921401323781158879495108425328516750812568291369298076108575826451920537409471665385710360423688992093004173499302547217236297059546704210073396736267110800226612436278202157380235146077358431420931798451249688848680311272137493577360515058592124671763975800019550852173741537300849573239094554177952885768943009365290392122117370562216769521604828358983086805016948587229921010407594081199808809198469580694295632684592029283212900537120495421765676056754271235509207678178863967548108018548182733933421613301470033471639664472902287135136900466479507040895266804661615220536539148249570944051970843747378710389151400368886717276392110722033202684133012887933740972181760177364205216797539352947976367903253913582504920820580141920881375113758672426798738860914924962685594692158670593538261022641324665987300156669270043547605878962947508233831408678445152355938404293021288299327851604891337619287727530083041795971871364052059379380457865958940154459213489759398833954054680124206413686432136286073249571881879235476308324001970134379338778743643239980656548750004829578271788090498699739115390066937316649910081892159172070177460684684085186439577586378330997231876466487324969549903160641889861654069147655143443065007820529868278868389541081230184239787388995697907733711387157065422226015547293219581856170555884249218171994513833649721036932663719368891291166436398723255147902856116403873360142166238954170323148705812958446651622498620804531692895726312437190455798532469561354781113068418139868601671975989664139594753754199456080473673497402242852306638709884309570374451598483085794171527456683180672971574847422057889186496907282443031971283653277716731381298310987233845773281364971048287716329576356925664350126229766082203629920026008171746813450173708337592299293373703113919065156873844549698419150596835254007910169603443928885353169143599325988584748227565791016161867551449789566930697372027614567101652706364263187948169106540846344271026538670661863960089886691176042035302851477271568707017692620156553603262388528849153102706847228824218516523294360204194292360753059076497697287019476907037377173766791935634885419714904324793563936188115738218479194281858026430375941705732403080850495906819909931462473558217577941784802362545445310186550226348235176038284963194060496342162543607853015679722432138000965044953591330742747052973706593024637580997200700443441432159708280941391564572946761275784159390377594905795984358494656139241604368964928429088575220292373066325637505872424394928095146130519809252017999146601042379700132614114290880784955715239565735927828877720293685456708293085116153508256815582638106449416764418301915410327073083112998985555692565644448748436884463247416655444050664356473927232377455372761229380602380298748183380551013017788246423241657181579050442996017930367247353588432671582950859022166801468525163790694122495631289318679760101094513540793579153370220482309060305052157773421614150792710383218536793566555788162042290059006275762026832492171842605177392944321940832245184948549797157438472880983191849732713861951166889221872161354219520332977234956691025743432014303098102112348325885174961935944853959375536595034243419144687595000656549899973755119000860242734160315959214491576065540966785394336112365206272095054597555794831838073665928686146665146616616474801893841141128032907447362837730008493427668379581408769222749856750032340017132870067745232294900264691499361883086278433763340656253684725392610616885201731758045479608143369475367056535807928721244923474591996268954299985252164695646543220161923992615892046684376479992293345240489423762465707415032566495461210955671604635418214139812453451605303103469388756292775936142577801168264166780866264712199242947589975951407324350178667454973566846597627550763847188208679397362936241340004480095836658209017434154528550125351618823083031636332896196899544740137308357176364761198760435504244142387877856153596675136339267628287855420905080154371410615272884090728961079248437938382115845905039512775614432691037042216980967929675141111624869787239723454476407309827524838033023821093231183626990682660002935356130436568197324164620853248527641185534562308219963361057175747492236037245802237350139612839483482310691492451706404325105877683939430023928886380023812529169791025648940287795565593917642713583595309143953779205975159458005697051457317810374214113532016382531131139585123010196788607337478381749051898660887257999727833063128713138230632639313342288659793805977858994652713462816440134402549423120775803353658293831485903398926997005201880670555470116909735479508145037489574799403543209029111497667069327466285951712625938486815700108233888391099938507639390010568968213179227065748981948178145256937666417399578197406136618098264320879694371913447520484124379494773329237285077788848964777981742284511102638632533127850002455486206872352378587588239430906488892956732431344594012780435462109737222370583784157978295266133159999762703074270157998501753133520740480642551763428670675738429024796595713878648365076985827273134554684365686655749359400243676112783110002820059825923507886033628682611650762340165371640369021891893955966846914892723191367029744741378258716672180373443446538634140199780096594669047595362962726252112437119066659560501309844147840100843198155792760722907561298226201283089392536089414810161772931861148913832523235668325048119754780804288543926992449078975814133671855947014230796604913178325054291659428415058105065937387756802129200135794498832727941475080163834195228481592529710685868339598878331229765220982402688128027576151512722079451932728221392254521507430492088420550819485844728687050424519837605487010625220107406828542352338442456402268890180330715206198969370509352632086543346050355413711755822219386383923097446907094270855416892410503871725751398674390722794031242131652898915940055057782232919661354518480270270273695870853506455124298436177138726789519372438368473618193267443009365012462544589742608940752646845668439814693100546990614831111959326540746202305686412510211908393214117807915300359836297440133172971413215718479968976312161878704111796951597157294668318371326584023124616303257508882156205771831748460248295053515898859687429989405615622422361241747943392678023095086118377604267314287381179232961499539183887057764676822718453206524862823857780893379204053331093983605297516670127024405208026891048689012848603625173944857679430855886741168748933305215621708840193049295080213584464671276476361051124581742592822532924620494027954954393241977616776264866284229302753741204891598549994277478190959265171693122520142700580526002217958927151075829258895135573615286221975310498711789405327211027766425603568270501064377926542648262268247916276662180912135881879875702194125036916806611679999973102943015784635479410646949081523425483740297804007419813186612751848784397474597190703570013342911545904418849254591471501822394728972175375916063914845117690342744360150926316319965783495426951862306651354759147623942935946452392482453248106419439745057910754772240700561185675695092039213561498810600220667987019064355978837229652877645895871195141561160289270752423892669714849617886274644895512650037560289034118064774077257682678304183342410262492087394403361887434318731422026096153324747989446943966999265503140857088708045056879889467865770528392766814273917224712003562537042372878640880426671309211212938374892649821783862577795547795178604558001812485378014490358289781170617116627212470754179474717556009040705880418201308864984865297190621120464652804350151046464457323827092335615249915676214842864433938803643988756098832193125707858815582786625860044882619275084859325396025700164137184879830792319504025713300328251801604273263775529043223642012868286325186239541692187048993108894166096348533031501298611373927735107499351592136778944890456714213144421086329119634048298984754418285416696659877408725101709151428411539789832073428593111777779572644340193913162222578736271488083699717177295176319876734999466973613522785846146502035010337037377124372515845731295729794527161631836240710644247277942017642701279589081940881387800223990104263971732742432521546089596288947930439954173756834451842790580574393482408671304198032151909327231270661777883683368894552497833294360897868540928094898428928287254093573717057215885508566693562662785501586059152353144432078900820565882255347130150164844345162219345428614490292682227838898077851104597129587262635915197546454304070680107483307097883097337466631853015148834343095720167544914880597611854102868613288221597290669708861886710318546969318315489205207011508592078550262231958639740933074537793084613460811560218833139629325774573267095825418913988889059448248564784710547642895176405757104166502398302849908086394410584883598319988058577509965704676587982245431533560965518068398046473385107301298707843179756822899598196919305332290687254589209101986446802603665908989793295250785909762377482578008595919272529952484728787007888075853230127067531368023697471246887627501517438907192040653427912336771126659078973109426279340542139578667074479830066278346565073534364763302836884904849417215762937012543435880763233210751495841684253957977395886026134053924795984817536975247505236214897289487131435394122135897746154463568182926283079555495400472179735195288836980531576152978803430018159518360036946421881203163804904795646621682452339403026184675659799361285752537075175107114397636326073260426072117227477286105941494384457258301494871519903320221434997942725708919076458612923244264900996972046628012170732765123904741677757658664367011108718034038824301570418180429646053306177294879890823607660892145769911889447133395129319446555193909767012741127612469290205681991976697286835273628343824022107305417163826527700966673151677753751831568259880653644098909247282271313566909215175799177411097351185028520939548558669728423267502160455737683222342298114570197925808223842598474190605830950801370416982362341622937087384473813771997349108142768193056493266297646983879361466923594765796971769970951398036983239494441976520155782718085346445341053475203318163816100782215352368928272432213484896661707863228722781398307174468062265082135546793395082657877984141655403897229068753969508110343007360974219511606645500984045952514131610578381204508428405763949477187095843597160024152508985716854731222030187542409553237387151626766589703384940913036882332558742524885357487570472575034790828979453664925664534316394324330565977997337206658093657865776432434634086232297918532958342224731882556688190342507666406013979632566505145135018868623445124689183203465914112595840178365252058800759980354009425249267884438430327971946923271768390479795096073675107120372987601521573290655193488129289794620901255983621223941613376527597907138255583422316185791081829491988714813559809983296542580314184602825000682308103596588778344117017409037555569168332795781589553427789809171285387926748164319160806082479705378322637472954355429126709536385017475804737024840260980258332630709527593127852165242243446237525740662324663272916319416412002929961808693504248038868072368021188139585787706940190592133198719762296336730126376128233798362169124567476257356026311717811303334337120123192674045365054722332439359657492857559603249427132364459328021536662533870660589316383575975856472981177102432847901877542535446951571561904709106246452768423507722208743382112592227332494066338145109717439428964847861662453801213687593840693321374796930929647086620146024514694534135841569254633744918873802991603031241543981470192002238948518258001974623393145666944950110949272360658553744635345381097171869525330393693890767325373918393900248913212357602578285304060207759006067608207754807005939600788725580780993071997583228380789617837100620606146579218230246887584734752994404972413785030528245920948062558128769500320698351420523898551358429991381485139335657777373228396048794376900062231639572076706289089124892900947691561437144859425501968470055601535516137179354899405644218560095218091655573119676210410877989008228859840750545508647269884352906973083840871162264904219982100504979209652884238011082937394161550602237415934591621836982296841169462155597487876091872340383079095886195880647397952498663412626860064863624245338992021149251368926078845207821403632866397141599399412697135108365701599581527103887050132743144872011583523540609040378320831721158080574903561044321661417412554037137687362323446058144794140830325802775692566353103405885600485243229585383985270475712381435588031877126502183557953147363806245922957266708585120137013655261770085824568902443537419018689423475225502554885680367799482460052799498886145210373746428401966427949230009988741069263715420500652164248072534719135863264062141189166695395654089375784794233342976145120130366247826716742559380135930953880686206339163964689882645417436540130151962869186840045695657465331950440537869831963173118711709060055730578522483743701135257776834240244590514622057147909800641668019703956535323363331034127690709105013869480062227412320136770283356025324353789095750795142445836872031070718576321874426376473425808205636039003090155267474905856938558585218034560865496743351435465760744003797780898110824939908660630883960434490164680071545813185292323711017140418626451822330640753458413311432413569038939557268148376637972920851045614416729621409870791269387473270641791600185747660099831629092711113342844484331437950960758586894221231766063098507689581794961103739672958264830140059149286336796340890245061082824712251234153562378409304966384619530178487903933858381752012015726913274196136337650412894066534745936936144859254662603664819191274000835485223384625362545061548948718602227002536556724421595441981124596165262903614519217400799956198550304917353670716344353879700619002585146407827632265747028807385297162035874569612732114305368235673922815409217514772893490445698489564542264457639380788731886393666815135897981928353299010923350410552790685630558768944769867305930204508618014155718127817016154193884763561433214123798040515327398879098600926964161142412385449622691425258683375579924904015851647728138705664297966264442089390243662793673340640443834532193085893187296698652745714804510703717829917369540449771006193772367202318202398745523468554025967243698965426599940810349333429837150269399465152761438556842027609303876418269693008368554861152202206022518381082110000752252664674195826011721182795844953811457862281722637861093362419542223452793940605068330002517502408699729629739179194450804577299390939275163085403507342112598873726384047857760572486275797919198498593970333383479745501240524821319268796967760483233691496912476858871293512076097828138564256046686089498578823565274083745133101504478050123889928245606755520204555539338544800481381972166912000770509671275156411534581772703212702491034641144000919941459356961088017912195518034494196735253735454572606879240697503543114323141753503200175237585659713419086730193346844575169466489094882166817751940266561367745578841886036630338887906217963284778108494700620286795565634352429007260881282489787668069776701558203113931371940762582574553498756294993789761680746903253581336449027784168659043466081526754969950470372912421823172481654513256829572425693043954664548376176559842224303164640568719863434570225075905742115119569546116243705814867004563074787437575021058002997486564419267559520185025164617722527355727582248992317505867881006917705983925533108673741855455373524036716242605475779522711092772936778429847661227277933667885861943459029101561127567896255219672665558217317595375158269750311308724120217395533355410155695040764529115868019810982820607502626952441584455264119126042012237986447998455098512969237166118180342674755998317823167893300530088891726010440987528629776523367764100082512102838937663001649807269647483766836877625312627614297087346428430015696018173542099428762701209558323638455458018480279096382959728707506000708408469356521208670696967363915553428327946646316010232466120277657437938121554460090547232776795202985129809454561160922763742021907757030075081460517289862692312051408671675955021609183586919563139984770419274116444338187757259218696868536148975557494460026840528069926609100625099112561673182402897997949018836289566148080770005768479013174028056198082689399595782151047119042413553721397544020335019973036420532800511417686236287214629659176350935947585592384844429847671214697454160703051482242948752141868471801655543366620957142959500924348927804996330006563423220812762448337667024615258938776870517882666457707793463152217529824663533620790965148942005180255721788594334392193504240261948195776133844186645183754992681825849078166070569536681122829481634114996763892879452892054076759367387145589767865615881940815281830940004948327180681567001246171606025458904397858380662096947454644166758894513820727502513869689526390462949192228345791664551323330706496827744375137382371854829885707060298330643402087173012770750861140848652997495096685191001516376356955994290508549735918569896025347451126273266447529058337140918759378281961835611044793703050377299325129978831242242395374576281963605289791612046445096541621816492504842685515457696336701038627395327607578678178102577712863397632235524969555336328211881999406929648647041809746571644278846230920639971221131508403098514047301678742256798047322724319826036617670001572860376225440909815357506574211881048500825476910068443186689194831005808900522198428098363531780269628742020750343342301474454199623831524067686882262462320035701150979437513388937079868140252752388322058354799737624612286610542069577562177300792300394496336750317098442018527177103440631826818848706277914634229454785561143441760374297238128222999988366348346991182521717694983008874044110482263875347288832517169492959012548501112932902207435990920752716956252839012511761033069092930992039706233731669854988052184282750907821570971203041032756314601403444314893683513424954918437122290322053412181893713114050248672431305633116946719123839861729659960430981805535484898095109245960929544909026364668463961728622699327615888083849354328221982348041859050892113813731369572796950433798372569182419348878426290340361749412236157363493633446592900843535574794888353889303699311206668344720765179701602481959869098436494055846833640322150832845359306587210314269096471783870528829139385078660659134236738351780654784733988714106396895279457394463101695048675119138865861510017509169523528832262732885297122652083433434686721404933929936232130376663041298318453253918458522884024281173399942314158152512899152989721650835807531223812315256268582940808651540302814172143189096952173300731073817769171765067966837228717011679077050007976642399240486332587627638958409789787776250900788719437213796593100056113585162158971998707425816264055875232087839638335093529806879219993101490055734772218293389623851436146271789821702281772990710851396464610862429638436074962360166325248644001424473274609857620698953626021340726842245794675432904064495171695275231357375131105302198154238086456135163796626723871276823442901990361729657651168837753727847621635960933114715123004801645884388041821324626428337529230945828807054050174895330473940926424417370612058768270859469010617766843090876754915426274421478977881959326661888545849984311452571222932670142429246562598820918114962204310934422287326716685919968740809924921207074756763794944843624828630272498670586394572726921384555837370370835173783783739361046651576823702587739673996987682442434391811428862721856009080041892803611453709818807871213240490897436505401786101344719277651877918362166687908884689588367217368641662388576254650115179388929051068892426398063855262096635692814470505679738600947178051137105906639375750053311404496369398570322456061389177543110469680068896354744653152681940569999189478890129612660531151998296245884084718325872369842177014178841200312623642985307425139448279974779516020255377241153057949076818240532019262885122430199334483895061949865615695461821092040634478563528288277011620355687882865791886742183481252966005513551321683725683969219276002799147179806509369179714078443685752008471742823908207778446887647550053018796058611760372437565889160363935076817000712449181138212555450092006513108857874913794747477846128002043417500473877192805166465598974157793561912419660688392207950668303465059473882397193343147102805006491263333617412730386355628831749602748943702646983289575218182823578717794917727586715584617412112259014246910959066084970789096268790839055643186492816831705931333769034963757488401133345832127729857980757335658146575589141409551725203541345022814132772407337081729006058533070145436181648905649754584714143548262800478183771392542042146952878899877156750235854629163732198243987901425957619265190535050546693183940446685988859859181252172753009375131373382845785032471231397758692918115494318532705616484270210257481925603581441051843897643394186150746936766884145925054422837262617123443408876343778783588309879638210477918398562389824354647965208562436007639903159440169729081358194269857591005941037304130850827972643724899761289830373956615756813823757712382263212698287720163070743028096799998884331116235898391640658986406236121745030387311663033057276714690596468933433846305629256285929856888636523061122834147552060495422527293876065886941627981521829049934656838146611207702855757508617602928998699766130990204508356775306227457445516761728280653761528878403579441750909039248269137130657919089260537437308648061867985160159395944867454125545202626227742911527804111884148127411040481281218268181579658513506452094880093630946814395226106250785223882090117496346177598890006691251504060326787389652393638371642652636100497411238731289128111254721264039697069163562343515028876215982892776231350567908221726252551442899244782505011621221107853063319229433337345068992708064697089459668331061008815573619747878076963872163767824138488526972413967271254625345135445027669550708021558426161290764586026276818706127651570726099343609904742153947017491806525634622229042774301401088874210476439950451718866036135163754586233326755581716857258384577721536347730904077153791482671420708367520994238025943176916983643055793590111747559760260645555615975938852382810920767335298815193127469291995333549834503967774718451872029835728403908659032615331206717099554700742779072067463404639438419240121559503070628901060011032666039398555864350272267879540596956563293920530530511615127362637505470092943903915502719509359986773845598624239357957631388548849003995831914987762937568132798326002185024606949862944516005311109031626940930267581342728089110905781015750136381472805333682959705024565985791368110937640498436625098170108676499884265023050190424562187485775883260842383696513637269433805190530100163746284203258798785713668734814839624808107577434275713842508556783914171970821856634664207260047879833397983709623512031481178644224736466035789751186689461751814413899428955750479954100654358434453912973587724790114948163092194478167328472138422016946558348704922871168986824820571045149510889413461389783600618824939178255408455797047611365824768333064564513517285765864710592493936908465425221805947241654790461118516370521225365994850899535900937717988304181421136104821780309350277851660568799808125595518784776548216895798552527077374140508381949509432700953605468609255073866443723338153015204132279632978815400938958186734196903441420651377377753048433895230339461115066205020632662379040702969246301526482335664060409471630773304059055470304835296628357239313050248601164449109959827309299382326096589573464365786521560691990546443085006582497033367983081691913364347433035067345893927149794547993524216384109260121172546902390613497007290692806590477074765938170603435529008549094797096868325350510172138652536322949789266475665790199216922960190104468029634315416527647195505307284315840160588441737088117343413834113609204898107410623930601768765677735629601808582148061983345776905725459047352691090208853913899275804911527822105226531646409751885664375567731429885813107623586586251194017163589008164046274116413288884621522844918912316494356397559307101978246993102758339756775222798959763088038105125279452960418725582826949851486880400355980543032757479643779780251913349987755398324978443928948439617244213975143112748978754794769278364332591787091760975652611643998459963295145978482838362033371860431176219150945843325236359442683345120085600352525203221521242800481283426470761913384286097045875522095620586073831659924619890412731555381341968446031973388973022014155143457868390664338002387728064116750812970604152969303251587534177606230721898239411176617390517124903408236333254980932690128920083151562086136089467108109940419238936653631086939950285174974690621902282335425760231833756316876004730823929336726784278407376005429266856498036093982390373446867302438827753162478042094552162812392741664719407614435585553565758180522888309584992981187500651481414222491826000610496345364260286354887206861273655626660268460011010732167911536520077704830895741073977450801320968825960746850503795109384036003196624456347012178450129634503987671530100257157090998228867352053570701913197498781628019330628879771515601359736073483015643689985501514680525482434315342393691157352942688782875540032969251339126220410618560956746976477572716405888745976993877882450518631776664230058400851961893354868973898274489513846931598238810290255433849138302237197354598239583782290054997413487196945966650400341663071811565021845994390453981070258602018474070416192875609725256124201987282026089073408996411667951709924199027260643005264337748068175050918410619213427690384026669061044931118398545349754498835720975351407937440562601175191307965601127274736180175013290367360954337575559290235690412694728790172576413583738137978917235117344036869358852760664311024956716565847148873870790712699678097777279228903631345437393765493898718692722413797358058671620485477281569996372297556151861461849968710404408545131746298055775330783985209252967503777702301544680215953808732472353180803593221223743364464457463186025545749476432901121707827331984632104009197653443204905939468218457367014626904071669889388618755441243297798506772213524229238224268070284906552936639172145383825004368750027126519692834874088985943335542676872075082917952918658216055060474391149914405476320975401047938590177404838627796125499729736834390315527928492412848345258249616483439828390119211054367560735833888019471140545495629975074119827467894490062079820186596312278635499721728494541732015721890447168322515704444160297104865095867997464716875534004013166072742145566760556692684937802632322531643888085425478850324531961787470241273515702678348082869665144616075197232154422011668596161455551309996433370490649482909936546199861004620761298231939735844895004880954428673974446033383748400891063569252839996466059179750002128250976273824466286225101797596598115740695262192681115848076767888405588390247597331735483601147385904727115054538405186684743939647079909737462818312711823430666159715221356753198694291041009890635981183548690056775729496353575796006003206935187392574123402820186825132408552603020860559009444763559454714077947363229787237165493256536498784238782543643226730186324662945244424901032937895938736577453726623398566854129158934581629624369722899351917957385718922209054111018328809499504631119368532882580550099102343663506957810940045995591967078268207185732625876195658621543576989138097217993139357141734062990433769570174891799216237478177940243906623930781240962820726656227524348096761773487659086442782976678229095741024126425254745555047285589453867553426971135418576815740015821691028411038246191956989990242377135507081247012912612653613030339359603008947899670401875913634102373101340502076586059891335521673838854120155777777053070404756337901143062367556382734985462971868333266788760103154260691242173693315076947641898958239542081947114658775298503077362025629517963890487002477126919439071257359908725032604743934481750313456305870420120217341841634840327017419501649306692503394110673486484822434640922331622296023837842848521148967906556974595530838275677856752827989190868306699205539807375928072402675166803485666706343057086969951160792966389235879574878846289542955585310215415968493524467985458618108373141788930041462819807462654224102502096442198386969838706181444383943595177654914613443188889435693441941032727006946076321427638566210328299651453433518447144415198567314485789651635811307198228484631532193500453762067163802802087194747736606712996676660818214885791937153537271137099206371711716633976508306841349684837549341707763392524931514247379280702685881071165527291021850007712481867172957955007280803566933791357664780464752808822548492738448823455580067161673860330898909957701331095338663609178771126295056994685936083434257787512848475381267931678363244131870070736286748172494561022467670191844355366310723592805860855372049412037500615494496377257503657517763164278965794462229659163506879459959999416144389607237444472806990791521952671825452605678045939104820559951154884901808051951198995210639054087678402657914609178547496540351139575057603611728230712189940689562892679842347338191187351212529577430681655812668812300297770090028388481830110384352280776751647016333136316992158707773605469809042297394361704096060086861990997287890947515440043218406289813224445657886814177009078678650470499969804911799392301960014617970066296480463364716879326910351426500314373315973181863524522797189055686007125231339678308359431019255387297291552972773218563420654806226797172719241293176230351263079708641870511748910215724060000391297148928318140034776607801199271980509509532721079288091888561639276659274569330261507187574278565967587776607484566869287414313285732110322559526818872763061871494171106550234908243414032012149770852625694379158766561325323968983770820551166600907338847378277694541669475790892047305194111265749110180680116677661953256863545820931045563699064589411095967371135233105136221184654257863289236966375290337266479688512821399255155644197543906135006279711012192196755805696704816163273912014035492507513582939913976172223512674222419626548558491477341153949671188680039404245411650709270440188915043616810509398257788902043307600533132813612077555520715292832854386689853337830848057161958825724528639780407446936985426592358824805694130619496538312459065612968720568047458928083166968380048440160892304092269210771627759627085481555079057824055590049704655095914095573137254190088144132578375304476385897669727866014899599911579202345611290340888277360201571563556689781249036397679028111541254444447798856288830067966568606901175969132860274371987530613480763338764612950874243811557875010408115633529535945397392930287269873327765061375596924489516656249378128905208959809245673970829299913698297297024216640387778401960633535768129183207505144201154242353689017955956114896757127246391124729275089726453158701084125243887953323449379344486655862744963143202795522069952402371453892585750617621328310730733210447063712293531702751786358167282267319550126618828363316914208379834673467486426756791044615245336338177901223080057643267092278189245230516915157391337578099160532934060797452449447428848042586268299189298790771090811318433094021469386453599350687586765859980417484705054304298014846383761951671513757912907680383145860439751465976443287561852954336764254467107758115892774529824210509212113910796222216401775142455119607910233004827426964822051657637465705797943440395528960858646215819859108430937750365621793076394646940562530462514087740750478004253423475707562179443660321835526602493924800656902707376318121176273445605862384271439643580461589223701589621398362369610623509230347254962830093630503109994307379572810721890987267431006448180247730521739406973308743848344483230531900080594380889009771637606042228114444385111677622697631073284149474935727783140952695395003127855958270013102321778993865594788995559222447459819316437096032823697064792381790501993367486728061740772769624816196250929305419063612164048005466330205458441910670250305528858061591286971328891215934481684639680634295676450276788245459723170422898060986126637895236460514642163426039307141978696430249912785637293167854235781754062675036060240684653092759739756858571750168742166994902130128692516348481438728064273762837451069773087731302175897807710506289228294258973180241338900841827594535354164319506184608978720887402572019629601559879243137608548940654644039710318095203992025825660198778838759908416604622622631190537581186275620417794421354965885765182142233114212832819347339923767189356646434904091198348528467211410441692686205322384762995282660012401928140411898719664801359543814082764869384352713478430635778374519722730688149310782623745453023062119383456968282159518154746592180018795139764485719667373740400482684165314036765677652190698536161900087605453569038721108591908558314330590154100836861938414414549041722511189583750116175872955729601691926373108300155508127575837403055446958251613040284987843561735680001639142200020638278287360434938897470361008997606395801576069804066066004737180003535653167218502850250590923470055956959138393200226274892033988487005227095696152474144363394912123078985811236352801367729085594783682002325348307596562232841037086366867241654196564485678385689934282791124072500677448299897934357491863575955121989939236221946173564414186510818769616355608785452897092353899948721543653760549741557534256602836442004356266515599091755136580966130997482531945345516029074637461283147987980699735442105039980890088609741788347074914325957491263365386315714188693080040611119423099753739786355657326580343455299314520153865103881559071785969043009624768017969255028590293001933814368081019636648656532658761028487424034916824616684929269792487450701790801257143448381574216171170170070619693755452872891393889672123160288323055939021229656908181107764042354745820849052151709049918374246614234238493463704686332503635836892800602537516253516208563017717101176844551843358560363837815871211988193419327605569315819023287537159368250686324243196432721456257951531521314650763116289504293826723547238825867993364054284977092584832056756117470259401605107941063215408377962149945850605352094093237681990192425060865060847736745801604350243763720773069068691846620609843957876736494305482256427766747678987526451184266769150839847247420440315691655864907000659828939247189797779053880557181025262310151517445882662358876743923827039876321462890212197897900563021986231173155731733281728305178644966883341228960834452463576088882788346709389262221835233928870537378728278131198795599154535741395646784770611609604000480202231735169614990205400994829203061784067863981104327991562331729919888932570898603434934366041903693903492540043027520666055865800999036476562557937755919083372697706962818808711234519397134347189133071534585592530515901514612621734896962359170406500217479593936668088151242058492878302317573295352446459017064243537350949160526761474594319890889127151083053284591694309836373396603699420144385361067210628124957205887510176369296227836104201255677304759533095785575559964553597322140299599181991540737158396430643746432537097570128065808971200452684744796066682507314570303522442042332324480140139949097229431672698641990033208257042241528608359660638356915131166572450578158380484995883025179996311735280562696335889791982946569590607629577437819189419291538343566141857823853118372993869282097870926952112094975424547640081878328372347474333855573387862835958095678779606565866798778585707897843952023630314454266596351723164934305608664814912865628796245304161602315306483093241548701268360669793629430951100766308631335653364224133496427053266908591383612798815762282609811876576175624617840112184359975142244031407369222630671531845903337055207914916135302141897549571675482324749350641733477734748419491530498735910061392736099141739371542633066208306844495456850764477112201705182869521931838819342687331435407668687189495688322023411592845821681426298253758219005980214158819258951606730223926536087299414196811969137761634118496463707014289541405551730863642362851596499368775928617399551878477471153729908520357345105265585553666426650989839004692133685923876885519789537511668873437155912984559657818744356278583518080513399832915571101330090901016292283828144220135614788802508699515593588502581691950990907474545290442433053554872291977057302914670380140992570841610109932963132309074117028032072986170556381507312213866957789628314216627821301775636438938795135598390346784154111747263046415976605099613211887253694756251741751223183189670358027598710482639055775948113684539580731696766864740703022305004511212579669257868351405233963543143355181972486153887841886650431260230602741443380466072769384186185797052839059447052679802966988367806087891299147520347549506943166795063867267309808970489727816861212364244473303105339336665028018419228982823492031960164101675251422421804802183108739783056282819800437343882415297028064612346232810984716026109815186535686640779079384278125495835599831244937378191962421057763975168371981499995879861452678837949050543378250375587280026194016376069329433201936391434320781642286350805786924705174312111108683006377390741843172981098966472141358710177796546086387657408850828834585083588931067437502582049313229070024774267222931396658525392239594933317566195099834151116220456359336338669515197304399667283786891189689596940417020600572007347262756537894159741008869839948916337658061434400869764244251478918605002450181900900267393494481582868378360780144514141678603087608912150446249941304416937031291318011865870963142615809185479743505423146230447907488694475813280163542320364627018208008750217246876730193815193627097657826949230308622465454822460851388740201050276740209222704469800250098270456821762105490897921865180566146699102983811783391191768092082447157747924439827633108826156725051502362762910470808752859079834346275523817700279544986676205463860713029690850775979792243058163211609494767879372000579770650488429045291646167481339756846115404456141955455540825646302945585783408805065674300610970038334679440551458121719726478195499712093438780897179999906549126048971962886921518005225739194609654317936832030498396194126397542742670897162633101676351713552486398843684206368633635456486683775549371342110564532029726690735014633763288926556196795060408625247828216187458924716083633859245649726560992989984801295043657050285383110831679158607891192284667097028551773621721244372371243371176258236430934872075097708975540445060618441199516408936761663405207785505402225808507434245373327160867750959921570016910371793145133598879760957256232282653031596208173755853445624935936646343660609194847115715151360037968446045329323742382873765042181357720278258366170951901437654130567700483684422608675254540615728048162201732797710227757532800192830143871404307291443251271870219194722446466120088221972728932669384841972918855383007498767049770881568751869929344750288746572132711698901337430322522055673458744338301806149479395501559176375109885155494385893965769632216161740407474011959411920297373354136987985861391476326314168754292635837076131224060947464930148208157884518173773505345154635477865005080276417037149788289973787129234058456912638145408860978177244940090806655752244459955883185181774392163389929291578439237563002584063056093327298852434448780172904531644206135907624049964656427562130413756247814181904446065968405326716020646330651275526007371312909678611094924008747106113068694490393911508371389741004636859048950955818478153873790855364984708988792812872421937105516863493494830254910718191134433026186091285423621717459551720531215049544890308378850622909882463964833327830769934122020623761077792955402896075127317645134008788928939581486891942506456234965387259649361728040474283889044120739196846272419309909834510627345564222122376239763562788321441112981622181769571852701223880871599298752880307986055954410929018897367175221338138589164718063095419563994102057468065609050668327171758491435186881549980323126079781278235259492105236282889152858698514513496276596992112326445679310063763788628812637792007233028236660158181295888528619087748249636290964481939643551453102588152214950826516730756157723209265081788117503573428696294726810420091899795921487907578171139086665947029465277290176084344643717516127495688027827333256840386883540812338414400102105570304892712472902031363906209422391351242747752213061673129554196805351281833173339907901298014496961659143739693162278340258571620684991247063710241953182199169730067028281886895356660927500725045363824696807568066531225060782721997118211661721917675743641137288466775572489083713903381953209728914525874354741049586188268156387464726425100540162625963573145112114878153256032010274002688723858429180142257848399315182538257751545730269912229491220226506272572122495167705123491905067483810945012118195782674849542306582746621602427843610561273730994810210661666639241038781854956883397865785612637689740439734243246307391194983219579555428741103988494802616481116373577810357489297344895566870202148805928223473681370802482490079959084756010210863712538738986728569567766987033146717119296237320694709391245912677299174907622419483111527284261961443349190613543008515542489352473987046038242101070815391350937469952532212200117096263763307045134229753846912578218221635069104461845024345376679597353107309871725583614075845998306084493682199257021253057950078326716473077482582810935443962174947209514267127945850431554484164559656626229436679671362043705494555446337802459205126800390792722285525542924678873837890397834325970553461799202003947613545813078222115497410869322515458435849138937714366926526914370129910780882241548554571558364787822030930052571820358330065207016992678930938439382048654470574981163834485186264039309237640418107009648560409985619725119095896137645734794064265854418509654058117860418042381690772827521833044424138695398398583462657239985797062035327505626917315039559718797444424721336768319173301011613717119249079761034799535469286066271567019269812095534907669910674917006782288408393322959917354525411030003132523317646759722647670747430313698007853317462090967680356233435529191954954988160342951367643553883632001518998357052578135554419917782568507211968538042252744022144215308149253726937419283910340368975647465174732798594141432031896071539846167552751000127119750071448274312126219064616058528425543459376774104327797186764554642160559003974078275781328855631233457281622822306341286782226146839054129011051872107312370776523595455939238467858966518100460008829305273850021938853789205602251792259194595671893314255212319190063394240321011095537721052441613772012312863636298021447651457401737464037535119121104655221375870374115963696096529079756826439127286220813711827863449191801929109903421545578232418285971253297685595666032857675241106427522945537745334722485416129121373443790831951197637188278478207717611722673772473411388112246574806747947018468530077549454953677890321888562650831481414050815958924487948967811240133952592781306155930679847851649078578799877043124220083594492282737350533863355367035397695748035719920592225467191217521493261454422254414078834547877264415246086871585988212828965229321697617855534332824196974969327204332819637817930327491161530984911295857076362125218317428438134999168912784511308957978470445220540435965890193154446666301125455091308872099926868824079990269789592338067727916702413993478972549506072952906387369548120475531324903183508260798198784533758201998455687729965872646839702939891951408641122411479445169633625151041626312474640027036436053192229982938801928593123709108894709155729514454929996947450209594356351615396671673619112623845604616919813696017979715528792921642008929036545533226263269019388589657543680270577050447653495853391652035458594679448954296579162396936563276259255845543932774219952537315951177457791473349297593777422103259982694617484962217812223104741710887827787680425372666705206288427417822677540564611226557969284377548270942550895313285528756419401335680466711604105836796885781660672027434223084278247521542996922771356781939033738638897125813645840240696249460322751816060025630161802139125695073244570397794109183827451169991246605608057678389284848590155251436183972659429407885521858744726119337456594888226758066632265483285015200971483985573205775531776919841359896465785404363173916768697015909511659682839438415417056240620615262152193985225362653035651106107457088563895305646193718416645646456068032517101766027673984088479205507827813993163762631870812672994777336864760256327110207343475999477919682597470411912227351227893627698654596660137742902229757889051216676592847072052798214455478299545796804615320376134779704695452031245778142702617224815480039161465861975071789044119197508558719489222041999487914679064657362619986733139753676862937622836690699984089544710865132048806041264642098780291936599399174970286315761732989044492318563633965293091183669615068423955105324202424771575650988701584257405756301375468634911780968424790593892916946570500945338614687377392046027377333937733022459737065091501952505452880307603917991359496204502133713135677682781900363036424347006139410317011517716615037784482340384640184472378326306976003481455482089457454894006854709787109907462978002302084685662559582319427161215457134423799564978519385230340939125807654988992358770433036110222256069473455980054544138923871865284730266163200385715848092353683281883405384896512090168073341097580914033857229795854903630414447927394924611971598236138156901282701105515850813332441760751409845255845227764617027295771055690861147019127501807440428260623640659089306756889190475460531350746412022822738173318172124911306192362713503841038287508128226623555871895778582978155861795025335180216739022063371757103202393058278345169966007703002388144789840435036843355847548997125407871492564091644005626853163249530058187337672728167756054700605463737046668160198559515317079484456948242500818503163710610652722607129866057659249787992933684476223101727294748927474429726926259846245924078962378573496081733722783972691589308993562466813228019497487224657324581734200134960369432603206262072145997036389455960460755749083787569996070522772146960955487950048905350570652240016300610087333527964344600457490844849776414719122851716009779525019935619244930462277967533871683459681509308717586159278055822783923907390631789532188344951147053900436675938826620959091738164626591316208949048691339007764694514387401719352329213876175797847816714014701016069258202895786734129610545484878783066405726155307299843765459803371868129147150742977972047434834530886932400092913459143900353890340015998192190515249009390065337796773641787538144593848774851104220109393350101913683892007990868663148973985498644469374225550115997468156480017290893921109365677695868991266212031368257428247904457764848185147894752862548135444224550419930960171776014048111777191534383725621064414909260536932055216829424898395868595666425179712739169809857717967833451675579391593278733062313959523346729215400444122128728147334009807511258307925316368886902522355190334076069300418878940549625022823807563596733485464927434256575293597998232198061426610175707767040294468282348353098428281802060278571568888298613893375887926203789639359666648625926677337737697954656734417363217624683745963478534012763160534310493489481047761827179076124154844669142715482601474763274307901391079644526596271667427863727047462161745946619259921554115745310491315731642471300086902597182465558132737029811187270495556830080526674371309461587911069004996947442596591306499598265486103237601503101864281151798630072516886342518022969917333306838737675126614113542285881244287612936436234685988378821953703677419711048471620227075579555013738803381865743758941643661620289439287917324870522251879477067142567238112949872849886261407302084452778197710229704568330983236057564775516332050444853873713859220185194176139711437222374238867822115893604559338128638572487519492859112679369640757348358846072570321202763145143556045553090978152830745202530251999867252612617767274783774760194195267509075227911754415983131714330951710747921583737952485677075882588284952409443647137926819086178140775538617776156526098886506458428829123524993548404328482844967739320146543093129283387552643461474552628429975719743655816360091976144957952196621564136873413299967168244057748107019227029453567129447849749161549983229161377245112800080404910511942112947707306175875149287914647116796429829445509821302881682756793175047689023423896704889863834525506757586758328772764646139806152157119861877813024873822698334232247775529201565387861880266246310235937973152512964947961271842368632622939936218707772380169515614557245491208825453930674571010547512756990122896001488772337087494979463197280596162569354081305126506524177221363529520457034533437864361314052821323446230959180225442759939439064580178262483632204145251719749301745405612643530723926443205782476357767213766033685162875346208847499286612957745278880240334168587542749802804695446450397322106771781732452189362438803200605057255915676197521951882277215553875395040748437260282512366775140736119096928658817591285736341117431822272787443959663676751760152855871785936115590688128044732709784326026913225838849119574884810022614632212897455554630999942871634650762318252251381307272335022109096443269944021801394747597113972733093935613639781774014819419988266622646602638407535800172023351157504043171992009718104051756358165870114256152330671173607350515548009452952554069279468475179065253883043491681602244061664172968701072931278730864905699696616014658936741879426872797819415377261530778520475487624183545511608814073878597120410435931062060829419361541440932478801065275427415251506385486852972110020689041289633910796978042666509490861094533616552252860760436376796479630565888367996917339961090437322270186306756081735602851773238718133824281985449127509689163520729609804022468174069796393914378143935691489803194597677830959450364538216453821771038295882258016037428584603896230146516474946427694071150162704960485999852282111568095938069797358346227028073931748258928547093944552563949337314246059687846107774717652909798363652901198871967723864805051250787303056632446292346540972236405253271488306013992466033887109044796822985064288496933497035711365477720706794955701456744352458959375465452379221613208421803709738208955160232823513977688900148423669027085553237061622121542329890609322553273251666873799422966878548305233044682406388607394356798843169242841872586966847927735446161284221922731488724486994964030636213254448273872315233286814372898931540002039135993596739465426730593877297271371755109097465272940102599997534398978234861585617802879397759829563301726267499305518954941966596603632565994042275510872202192322157132053858629883378695601424134173379451495287144025009428502196717740853176633104155391241747288969816520109887376210867037245317856495068631394152939874279343236956181001741357646598001438825959106175109423519235108779260244625159057357509833973734223387100887320939855315650171714693321475282708079287351896717979703664242683131762480547454697152564028061116195106924279060870776564826691044534639865146439757731151103015821935280811910918828532966539844764850116955643417119837305234972609768470434934797039991607698319769233582477425044408790398906415643281360044865887389069364617196592250616972409048362545747674200976358647945566372927938329433060677109327160961590590604321281833718198489288123814801626774858073174854497384976217359484024008177178458173871644552671872806506824015085796474146865945804534863292259466367327208231531829541307893677065570462603819202601154016034277999258434140071450150758013246745777024022798319834448583876981282982451891029085112502885887833358763829186960853641283139818626941330685631183336191126597153344433986347769563760492388933039035890898582585265126251866005573159766293325353111495743565343532086580230614084630010681844996551812654225018672809142459666917895307639477946790689176146465819043721040323806759908845513862916113301360711299084487048665662426172647555316677671228010385491275002920401248102895154878878567854497037571973011441982015472318407301886539393031985180439013883897592988512104330222826214284219536384613336428101728960100211412944146888675900637502584797982479573835616174033423898024690912399563641685223360532051143084126099505898292516070490329345567176658795916407180300176548075764881781187087230502530003366857244249227364436029753683475997727083970695758603231075970598208187925852917657644167777592601395184484331587286102015556331134186586404699151090712771471526935961542660216242062645035692356291592710676651587485729787754746876810423147145406434020090475389859823623214408969726229109972511023340351260507362318794027575780760893221668026653450274331030661248102685356720162601936687948311002163809617248715630289293051820050857020328135244738924326860395011458907802197736588885294081700877425011380416902494239565164417897359618858376772302716622779872727629234882106538934077324093970882467662563424310820539999966572756987964935337841778943149322631891950878540877082660326881880575855065226211132108421810361479681438359501655415927560038995776532297631568903412552025216289714689658642076196346436866570451716878492811076044271117677952931165872468029126842347175944333502629942924792956249268239923242579333601551335264775063915220452442337415620739888198183825616390219446973718031088329190731310821934215213146640664894145515379360712128715391237447488893461738438988605435646792159989438434437516504490428222903086347913252555149439986288845575346464397667535380038451311261879861222795480601386910965987551715639522456541809733980024560210398114555016222402950369432036287540824998007955806903458650953182214162569882074160828579453753597946397651052855931696764993896648501546970601135467877818052818664213812489825026563606433247979768331928983348672089886447161132951988853027989158590416487903832806591254775307987232635524089574618395049302598553372119879140187556008533315942426474447040349699514877567740217656466236911571205607080141701939284985727250850461064681661176806898287822205541406238945638694732292137728241743920281422423550485600751814456162278394476604057426897421974015940682228232086989094730889906231169411713690216921343743676553374417603244870093908363449813808695194230308791479259728691768872072014488309866220783273043004814193080827352417511396427451698295879708615994308177090583399044330052855558943005222895436271810452687518714063527346048693548794639554948915259848544700402014835379379349889658469886466230562743438089844157603811224987495646100509862114570892782125241823397838254033073319265128362527696995508448212712892225627375267956983241827024989460818206621591819401427884739474305724842243367147355864876309306708403900796165888801217544542280065240092422377411246793746706332688826461714012178755286999232732550736944224937660170314021441427365914920466643664087170518323747267371826379415747569926652586708076591230196499477565413268616448740336769484733360200396394086047751570643075637530628889019456898001734391251922474861117077012446124240356699142876410868528048932368698285542648110739400427140951632200841688948737894368780612899529614295997759521386054122720132011631810302998619000778093847738794586281267599128253039540332119388070713489746761905529604946900105698524431610648861108364160332845138558844124207521969046729099127731442144479437323840197779874445970111692678374565073556859811229983538933474442821474896854962085019732105059069115144921578446368204511970343263941336591237400567388851610501579751713901327367512091307462862679638340504544521923728943629172272017953007644583761500968311578697973940504640195712335209748478924652469138794334799957879355142938443579551001009049450145956509228392922973096923314414590647304597135036085912971623469783222059217531178770712242397255001869488105114331284508844166545588757657048798288717161962185028516388625009808986289736457462938322576097360295633999705471451380924424640477195310218480228637822725536766035512817080520019805209114540339812479989505029547759267752768648234322510013676021294454527400801971965449898443152968396201322535846476334463755578487046621778379000060201932082843179587442232976955076780212919895568778172256661034271877872272656696954105297898730511830404049783014674459857124584519349553850974398801150844459788741385308940545311179067421940625235595747683326373797491316646958862957994548206972348146265541335805118644924753876044275324153728078341147530689213023309897928086949372168758588302552310572967042514037341981821607463902897510100850941488281300779026092609912758475359307293118050457808622850717380889834336359695357068439800040502005693097826420061494204261201796718022511285208554623720744841109152237687505662214606702783397056477873773133893426926464301828677001936027458609057050190548539376033174569737785480671965007383210536301646676144617054313670243098793796285118039538888659602641234775573704544399039105531229093843646438917115378880585730986327649607336107585307263344744587005437697545811352752591005506518575967214197300869333864245654784062840878279519065531112941660120384933798148259760972841423729864810428064129414235159174551656136389909881999429731786342435712968397829451030632492587802482461746762259504621532616777798021939254514983125655541553656801283827835674818058706415758208533728864960949276151900740169132573597763282275863243256170189447820691555084790832976672238698341237471796746102904980042067601386342249251263819009171679792688558588771810594030929533446109269549306747245394721847313947753643278495014482656173164483533640961026071990370775267702371155111459755943163101170002159887753064423303194049198580129500318811985335908388817491470208489805639161093889932288116975663208996845115988649683199689437070325565305521686350269902240373835464223004839649267413488147301179460616196628325766654487396989991258596238744375070037162608373354784903700115651003461063480361806479925666322633397209371860633592558011058408415167807712625125028725759234729677382808523265214373313917168567288483168076621695412744188878501330572557152956176603349705205957733027968045431131209436254707775321534253911254693706343509891725128528994031453048262219582361022336169715250911689572768796335610414034268488107750220630821560927682668862779576133278621616757823701710540381140751533663257527217146991391430909744565901627075596163939677101959783655140628576765992968788117557490204908384265752315320291185599728708260895288895276643619956611549360955226317536887832168092253705409474633856520014269022014603337180668075123038054073500070697939406897167088266585258725508733384102535596026395313977669781117516699771718650266789649501014590247066900231957629935303850474789143242925382168793726937823776881151032732101073030943458472553236333914544342499921885001958694170810936002195249505616254788609724508979414224968261639629282851304514012970237011926843213969226737898546949356844010236107108679661561363935245454786705745241266761302903091416037469642553649215632011023916710852346514409690174371545297566046382281945205981950072764170575852860237417889277229982130973688467947969805349444577571865835409773046796182146691765284700297699968059604107249179007665782059536361662258592352335294479810143599993348625130098702205959241791990539053652266205409019611772793843498619453760176203359707210068753170838317475006569068971959975271461595833879648235229978547233503635843776180946135881996754030696626046672506798697724784312256856373066174042588329845473837406059474954610116796930226008711940649781901975491275051517040555841718656851474758501474877243338783745409341933907277297057444117461657284601362135078262678430829220426822508991171013988714678298069903151767497405463271626625245656256742184273074247665751013367339154901945314888582356586475162524324481358157463609487776764429064872057264871548348372864513916854706133504597219254677738049113923898811160036788371172588622456924644829984134853080425950501406388393809554101852279413500414372772672475517480243172366808258967497554154942850118117622723563315638406834911728406488263308040379386575324501869514890118575395217956823932607812091649562976185786129524180468571970575129354990015656000139391319047511502339184561009557842103874308136169795401132571905412072062466991736297326891634520441686878649979365184501316687119757673075173238047385419372340625717189092276089173135135175964027009551367395864310560606597595295984296590697910811989326965930888740388964021882658453434363206693962663087650468351866416527575791201115972204446904971455512705115682932594952067985973177631001676464432742105208564378791676614615418957812698124619537379990699687472629097799117131869004934162255947383792228560211227085782691123842312148692244083043928904319178903852522530981309283810515069325157021363217092021744881486202316004474867535353345741295238371980074528293373482840717080636642601442116168656367137089360179455087722859964615284813400456010062868909045812341973126801262882498538499211419650744448504870435035944782430036924229801308610792678763951616010336657451623235768519710048408467561683417104741117951615321268310473751002132565372523542890359721135426318231683230248930648803320425508320102327794211918552260480979795559836979022967821675937743424975462020688006821987637335866784529383861698795118845695792401728872786207237298519528253292916604759271901398076525907673678936434587993756777057892850235051607347136671089402881274971168020692593825989745788449333365822691419854176711045828279250262026740782524665284104266091855973673516747094925102605339450614341044047043871515499643522274368194148230909517784103024156359526217434905537545233943867414042877773872548288681039603871592533982499434588519484249033475950375687939528489497196579915239883308429427757441287835341540123554268319314663052684232393033458671898259197668129427100385801431318597236457056975155842003837644097209493373620885483547367305252584879195312431264091692045802954068018623047549797640637503470219145739926717928159881300582259154385047423676103104299840494814047745644983639713024933645730519062380798135292405361273246270233970949345781649127584003927749627231937685872753206160319146250120760809850523585475848157122760260054029695495533144216121933583338036799660337233582360401386196902738562133719755485306344739881589528951929164543776163947076998253587956573961671061401518072124480734322859462765320528746084891347724321853965336544510564815570959507709295568029466911385049844087117156380573364916353833599200826810618599059205838202250910797280346307563041526471674107127018395834320462827025335940536334302395274292940107916416416490275197654358154439195474268796321876140452938767725083947087311926305210937645360307054003463787643775327124805200199161484960490546446882583317503329749090139390082244584467353602427016288919850139600455569852125327233445921508648634102876781645100938797174308106249780291521587721716424540597453994089881675100085436580039307532732191178548403668821653127162648635796983225411249988242979531674388134835141114594410524518907312273378964449540477774839896886327339787175757674250411240503811489677164569194813067301562469969638911557705683814764229206732514075463656236929744117972404982753485658556915134565842702763516104163219686068243952790525453781970680305978292162574502647058964836656895826970525219996878883729628049838252852480998589771012697769757803992362250540524116609594494854899524313914915657414140362199731983029625676694021531444067903109065602448546673039981567774592918412172798546045428445576373246987484101258842634697073897150793792209300914463591018352885055288424838618359048444537350777209319939322002796779449551796406930872468851912802376121544206143940187266916948969004036642265328310228690548530903637382289715138540415555751646584465801424012866537319402443218621002742582289729180847111755806521669988430360248872006352866589021586163720418249677350460739720972533407774799995860130793538052518937549857670435053487967401560669007773635485805700843520681932003803063791840618762979331674392550556562284758119813072436079446579430944193595301143732615430311884703544274017583914317884856643531071442258276559461134416912970902500121921297416189719847014440809774514949141125596856078101138381312974426545661190976178465055838448419183995300895138817799430096368749126084123677465636798618865307044818318109170225869731722340773789626620299900760457155032633985708757894176756069450878214593394716498320478039544981823224572808644162241421037548551975212720138960068741958156355609608099583894865649376784873718355248952620436609418969391068647648605299042855853256804549495959634956920410781234391062615651973398439634643944573815508642217866910469766610080261183345505228939821308928604423577819119895393391693025764578784528205051246398931421521167249886774074703757033773792297788328504212370268262306655242120232135913435588377882109890710182302581657624583095907712649833544447994587192179344429519056377231710623561515669509222280340798037438646623938982857088065030606578793832234378289200123207176713697118932289300384320363293738029649938527344717158180485702689672946351994425436526483910137994127811601082612087526797630989823896871606050921486175350058071360731442860910908500926241626235664334566529093482839184071701238044700771169437688050233646555518366537908375597318300453582516396025983028551574699613037023474174710063718785035288220572862134010932828863154597060048603856088062855397639530243763155718521527408142423191999346441920384585498835916859932418266770574582229365717138698083671495069010658725510536195043251568314441582951414854043032048775899179740785228568503735576867493943597580520830286943156688963157788697162472772942637486308973205917095085945367364727947142815439065764948701445707420689367057718345619789959234172671537612997582458604997731580184936929238644179349262934534393905708178300579431986740219258709079685526486227426967012279106901359345498246623335695797411467793709115724206969172363611272863522436134110309777650368122708129943152327201175550718387848229983356625198756446497296477767153454854620055816890411757527046047906791145835582361484058322149135349557665365811215117377061648924571580459684802081326018370984164731543787638849943454142778780197051062404710345596197142591703254187675304835471447549392609352082651353826152573730928381861244716036395483804033689448635651239189556235977515037638182537879856738986442655913578837908671068725418629488453057729234334011896277563204212359020256007090078773100806121416442879013696296513337231099835260624709785675338504096579434942170995158077010268862099964291756062262704040820593801194459315211558182445673813127036283420294024044707849382360805614759822835587244882972099681609181724956019607970376006223892575776618097012109087682534380179440335002969603746883202728125004752189524885685559751367212607774841892877487943087508585435158261952991888507028447130585804504079720794416820046771265223029589856627367754434097692032100701944069223101314411914614853448569910200089077742624786000909979149152958726296049803190151731114695383173469569301945968790667044036722679169339056200684832573812836361663353460008879104879137479296259557625997279852799571106253752989638779534552200775932661067437392630737968210812900571064775316747517961075884807541095032931567639706629933487593497113307266931731306352513713023951628166540620170444766847452780780638542881486293973142923788695918351841350025503834505685552300996439085433149620494626324708580928779847149936169710241506272228108426323231528324034329393889926536847866267773994175341344138389123065267253029377112001659870702144943244311013329779113141270766613950030483418560911853708120922251083830904374727190788496657476343668150269683755995651531909681969469958778888220793555455846751770246991761260743495218830743263314059301527450424765215678461249309947555958265323299827293276436247779364538577330514225596600810996913162455051274861245364179092665803180780576081785722624427000370849998075067682640145843093412271600440081966401128029140826567190009021088573593902420701089313438939124595782713008005675482166169212474783797328095156335630700381023861906884518108731782094336760653649244394832683508109118965176305195281443798166587745793330340762179285275282107065068658752486808863664095154610354993187337042004634855669498732018162055518713057958518801784623809559589515524037208393535896210878378764260331548520946456913160654041694020046660207381255795930336402436607267403294595943353465471507643324636656028600834735202247693375676816440328506507639960947024697291915163828429548589859325321471242979120969403796572843247643351603578002212950578523387093069005595781219486650092733529163190464500667158338030168823269296724383672723813079958657103236430934631440625358791672218426458263849393170419575191560474243152517481583462399110749942363390306484652274888427388528520964234541379373256848815292459326343254018952620815070671660094139063373245826920077731175371396940956663759165174378515881049219267325270561716942688870878764763663346499615972040889296633795411922522212003857550568483527602817522278091095519291757590729453251219535422040860404872334736689766578288354093171105641846316910554453628858279441884134355328576814307106953795044733755010267166042493822975967773222569142058547959983493955202398291239748226258622756599941901098383508596262609588403489423881040867994001519803706613832515354658827161369598207746323881742054337892870930662301781328970915202253523938933412174622184992457878743556202597049354379210958262533246194012761047509585390075815939403631555263862638204687368292983838678723564840534588433863205090244532693883245510408320649493915038993447979301283036944673221562809719229112969963277898881135172912941773845287143534099432840176759882633496843063358929784738970011239552409227444379434232682908604193613885243023997208586222868354019815094457487576971975383672038819774531993136603856809698246339951570426472563695467086374634135268209445727831267340748663564059575362419717529265759738265930696992971391444142381754650828625090204707850066190477421344242779291536648311164099606017694705490419928026650346241452395787411107204743473319863189272466109602748174952112251123144663869764401219261803123618426846730024625598168523011813608557434748006682670367688658558246482377617360986657474035350838701908228477084199478593514381782466254047553809960914697652188808646838222575139255482921452008479637495623577865608599745969080381261405878188447200981366696683680162682408678238233382871383845957389417071567870449547377270220757056607404329930275101312584308619250390033942491145695339445465656789675084974602382806575696120779277868693239146067241736232957979032282221164440856259719711932895493456031425062574246996763166264879098144936954718845677981507524162619248982169280909488121268598655200540677373600136734896365048121646638342304694675819213454395887165872002872177709592012641487105888164624146374074715586952899334901307996339940108108818035321846283947329817764293909877085091518146313567093652916359351759193355100912980737069682447142326734961234335083808766490497781327165357290731901836924320880901621448797371557488760767871824965769362348062805220013706824755507563916695720626728839945234278338672904462698969956951219892597707978897355981304023978650680568264720000087986562330398776208820657744593428653173706676488515307405833318709079905422494814800966163031096328905564335614269537072285488913634996396990011758456471871153148590865824132001990482130973832859986015694893648605505873486103747022967636499290989856654177180218811251663118546829181912510877938240500694412653738907263704671633551273164432281392102121567632917078509206663465366981831505441695101849379146155056812413567777239785003288344321568200473728823907610201618887030281888811894456368971864439152656396271120081144894051972462882934870930775260598826746659007545348448832460290160315801836193540306707389208559263787765732132994937133777518532965596877627259528741524957182337526881163804781851732762633714728296348453939053308853053456082247042094724680171916821134725632472141662747838340265471305185118613718424666740025318095434566664519899769716805454924470028525551655296766027845960750070588775847165362817621535840301511335765588091910790330396598215485162126398702376661597860996636720222275795847780770811928755963600559466271200754788468179703051045657998373298636088770063263239915091892815308585466860708716843223178314958271590434241412953148687622730842784391824478868873922677442654092349113872712222783100743973953556504971289368018275986264183851404609009146442216917822939695460555700198017851040220649017190432144690252608846071609785976950788070419955585978858070792796279980740841121220532282479812491446575659655488180097228351644652879485397131127133363850776680611867131633736363234526223330709616948319795679418336321730404921320712919417463666906667726801142469973630802917223617896352142357226862915472773111390155376817356028936072573898568316116972245855773391686589415948956014649606764545941037894230751050087343166698209089501747738605626492434609310519147811560243183533407656171112860953769071488509901432359482306003730922326452191144025229163270213194543851278813620527426685039116898024185930937239178770901369024741207718007951818646587591698691920247028422546846369026537222500519242377296137636042248869251019305269708819492203561231913692182123088350407930453062227854661137625165083691697966861790598488432000226384932869018568526071079741879043841489760952020593040971659817413939744091485686671691930274421615009307818669638696776522675768675123389881332197453022867633773998451519645821769271899080361503229500263694546120586010034861521780638855368299604544702585099793349331188623660679588923558909712569298374114146448625262994792661159891687996900076102649374270947829242999721665184114864425601869033996565529674936821462465256554152760006152403178306321624428143815675962817681245217686596857687068433992274097924847524998664074732467275013767921652389577647637014366651584696154835352687600038147819403904864459713255870056732040215105801224138401770010007833405790201048566750576817250531421084122867355815979362637100221103428265077737238062069088452933104677347060727413833795935278570886548945051681944339654325066332961586536781607328847978216609805252012316748821754443364220462771256607593484675226781551609244659929641449746467400565316764059503341272163838672696686987612450417357346161662591365160243984016733554056929617845014622050619347542839137915882518440074413141137953086845401872737549425862709549325064986501099703079022326040971051853433014720922934681211900669958393512227554311048759696092201709641503489584297761432206182433404891228414270128565904572496445108687435457772242880106834086260266789189726658167023055016532406283157428891634149100451946182926420443093427543059420749568297430871445797572186361071482770039578588444076483715519541882178288016045028684275385213600157556499468272692759955140645856497367094741939318162702758615557436110394127666880164762011189339404143673980552319714908962309943569916952269021768364076784839636519875584453609525342277569641519972837849526309854132289531228276410878986335079084564829780721036924136858885097983760198143982397497519060680595843620511541556913940346701276987095935529884828064978586161637653201775659188844415247999315823395276181979974110481029068608265314510389250330405553383023138597820893463115525538293174847243727644016512405136823560108825927273603900172874206234428782414551343333826528521877592878666131204345339989362475913083084782835459347752348163396200856514065139859859622065477492420298272921718847313916277914256452714482678052660097930546571868013311587187320138594708816876437371975197642848243462035111090833042006594782313081030099217934372714100730207394636125730641903166090989690510018088043320072975285172856393064516546682147007435767493731262207127510527129136842712062444571946474312716586578031769750142494878562225251154720400747052489541635575411932051346020337699494711662252638545979606827514342036873176997611925536138536547820723068308773800425338782264782840726200959014873753684294224732081209493285516425189237854315512877227701983211265089898726248031642068428499533643970694717252163922768277236396822252378776278089275999449612837555205471203598187250315958939739638694997688105920091729276296618661502274043553764779104864922380519991672521879903588999261717606949295463760454894486055112671072764030888035879281532931842212224903052023526655178914871452950434621893102130876650947541990148566929702811862608494413884117490036875450209317826949215650165097908860096083958974123031757725132947356845461112561084108440549732798586181947887493117573613584733025607204787259598378331370403344294073092060545072856563998672074402081906337775234797322016106101065600000899945468678055315959540108894167557784716268796748944299096894517475584482926391155327122297561276820786087485692145105439532049184069031667987184835256755160963968040243484444676555394391026948201765314631214012779543230505942442211033885701757002128894951812359660278123428370016419200277704759413207102532813824587318154482424333436911990853536567780597954062368478233402922529874306660865689431321739765668494674397107415231980112571576707853943244084165687302480256099289480573495703439728401215622019110641487160336799290873734110280689391879341553983028633370983791944785139636987921086704928853235698765526194978500174668002885896433911565967235503661293743195566416709621772624465155785781290942522251039305961962132129603228103631754002186914994041860354076400852134556535022009930129235358190574019442068797276901861025073993942269452379749590591917054433990643630898955064185244299067025030996308272054227716347766788759785031333542508601549013890968421709691891151761605365367496372243529845507380271268741247836439560028498932595919875991935650275051917209763087221115869077121955698591682734935104293582590710484074595626971632652600969297848926925694544887341060051182562274112944939207091150255500573396655042565743266315022814767033398422630590471096022589524294243087914918465771754152484860890587494920625170725664921866095098875750451905134718397518268237031291183335454945622256622399614866183872585602631870422580571033262494015830574005595495736780270129227519997091323158429710496664166809210564662051871858677722133441226427915652237886420554843636561351244894623849414263705702916799512548340651103611986596873595443669408938643006140741140057552794554770644618723854166988356306110937362290590778331336534906717416168162634810167420034535816310742347144586330719419146559106552751439896952434546209743273544997783461740207871667112237400431125369923609551592855628364324720931629695194301270131472539372824455383492116610996300813059464215695551791175420345274734544727226444236699456781356992592920803584036476427284857393903780234186030085129865173069509332762269690299145348901683154118667628381690355611145698080481071558327136772158123710768312061224300401499703562651040642605696719951799713925510239513020205126619615902952401542818030064620847761076641225855359755298411061489546414764285767884797684795700805419325504320039371778660287601172153107484399110532611728907134764636847020579611724559867685241552689576826383480786852388809901535204058298409951368659228725183891408376596926336098274657273418892181268537159693550198038826291893551795157760503337198835988273104796462120143853219108824465760532463072204882533710623986947467059268992731603285718904229101878566926551792261108664123903789041577052154578964276861482182347218927775996254733175479714457745869417286953502630352915752865031954181716818335486101412202283792989668099705847498439587383483681892762134815650540744838015491730160154173034127944599471959439682334115517523572953858644010329746645540601657727826153975347483069138220107917674674524001349985699653566849748162364821422692593682380610630726027316638472928570247205277344478366364628668964447436783308598097102937204216398575416060493098819435779537171148336395546551245325681003804848288064275860935906356439213566835751828407968112670159142684782985228895949956728227679627434492526857842434372041719689185228203921690061436841894090475419869051994244904758134891970785355478474934360416825561677054981891831758538810702650049381562672366429896330962969569568441342229655389833375390428810050484577076641059566885644367145318949811791981636899400768153253441273273940771071186739224687774142197893714159502501221398225995529243756949204059111948814802570855754956194648488981187330283482759676654934720803008264864008851192846987913792264976240912134374128015393083167165292649383935254785503966139529681128140964159834650909297119879280840951077849598947711742535487416551128744172692148776416481229502043525123668619907354050260202796764118758697388208780155553338555577454791316146569617353703378147624038823549363980348851066146429428576622543190427878558409579475556778085510233989077485305300924085023172191151553220378068713570710101647742260710149959077104943859397066904354735360456240058451912938888037236831906983275169115313751233294451878860430979810091946943357274764432083728056984195848173593817539524143401612716792484642429134314113781522194588385068262191640848090363865268699873817149809071898321369603644593567532327712279935407643857170385199016676827427093072031776969711549363655602219841190768691849662979013323695574377769631027158282224060762464645260360202205497228175131760900134979385989198414782145870037689220000092843166630114648769009442086952471986573500490438486590670901349475620214275010892494616917891131614589608555878035950419329596500714677115568732592900296571887595555878639720601997967414807309700084192938141984638703515741414114731501657148062101064661418456083774340024453938877800015113630987978591246412595458333450062656648531745787026512172820699281157748329960284923826169226152302044495011809135432867705894619431347487048295742216821793849253040388596569264622869221400373449834872254364540799686587508973759560163123067480892395680076580599184708646367071309139801001376479947781566244233873751655032777632701023233101820505551293568786268717274468425664775562135166191000502837814149462642756879923770674791373872520475563922730087010736562304287459165492853656000094607775339490420252708331926012964051675258776910559546568026024692788698269685131148329327690682755475947499013810858967210308917168746333940534183612482795533263994393733914740475399792995536803009165924216987746603738032414622299342631838809978654334312836978764722754199140478087878763506485474168985125812336993228062531715276049484037361968456924724430377844159950701943316904549933991227329348703961030086757904760447688496682505887749518591719724542796478573226835750401882480474365974571846586066790839504932277239670727982375254132388779421158488744321572061237902453455915292402675399582480026104839544891909534492600508907017338484929959932797113723488492517190861862142999772346947529670769706893708008124470666892244714462556804616748006057946786630649796532374929599013824006003150129065550786824561485428246377363025373014957189154179720904627307997766477461307851625832337083820288082044976755376279151413737025381405896065119168488889467910334704327661698442502757191714624458868913062335399694010684592472492424785510167747504631909889141866313786909236235523623389009597138883796090193417582874395627880940940215647766103984528030385032156736079120969806801499510261992158354118730289691700672105191109210531366530474360670778148141220276679870409883797260649667094907395930835622092463549642807539482063625254638179695681192152953105748215396630781638759541665304169587507779931237352161402341219849204459736217463673195346710410002623248116726581746011939592267777298064338238042039296616398121878830958210841321243943483469986064522249481768938118935414049974227382294173835423797951365541778513561534843503697092159693132956743872345090940415384435548412307074218811197780574398613808876027974835550679287893934461704511798401993278978855459240761666346117036502816110053170169652849652884465850160036848638148840156192824617411876879065299343787469044585351380241795380786202539251352017533056064747572013505000577993546999562927973709905313800247917054653411287079036183354441833980340729924706537296870172394590215751385585846202255485482640029890468740418784995901374765964202638638064251100639534089546795151556055195876221850159492322101481470640947257934188824418797749701746146367258514583273180562575726845514643016963959399901443215925421249461839818183427379476295818629880281744474438308643392542116665287549893292410306304740341357342473581809110899606549851962342017440882670154512277653769513906981040612885937275542553354104233645172194057133864554668031502729003599761909093130803562024168452682911555541930120060311148610692116261609427155607581264965031277502748244450605836608818165621744262485994143351330072551524118003551546272212831610278818249622640922316123860237379583314377073288265312312225964837438761457834719775556397612112274473887250485105685587067052963903181104223625407847148198466028746422153415266050251533241530993070420609097467780674629416347496223749126109218239673029765494477022328048949626576339995517733661379776242298741852383646875033268797009172591596805138916189925808757859008060211088679313926233078214943265781498535754008754931010404794759048779775902332048775205457508472077740316570831431775275838749014505344584181222913214827459194406476693501043992652546482157131022722528847594312523993197372899743473878140396751367293316671727299188409620981421228980941906794458361146435383282149599536671038621282243431336149109959191894116250862386310513020911093171232275920745087733663153159208120673391692495610181986898950573685370160018651851808567609982751640109651217828118590669902889248472938788686656762733246153559280046237364536701645774724125744600344435264111280590864245121855549045780251294311861929211457060690009418602278804717585873000136703438618143644677536142932733039544010601883902567669622756071154375343199152873245343097042711955173327268420951964137594510358130347116755390575213471783126690988761242177700933723182672214737075594383392128080123207886885827786447687336654228528913475835637935078170716011165952073122465637286431051419032807567592865095509505128840008128558145940532939534185850193468613972499003909650335296037241545638049941833083039071218818514374319436196047515504113609529400186407406443393369687227500409681300474848272226097286963955792629205879734597146687932444254242768931643683523511369327525152638221207349968613711019470093945697815891467228364540328680903702131013887574609527381123826189353741943598992205551246747723493801280038993015268451709413993103828641168246781762487621000794604077655321515838367683017578042858715279874324966398182089862884071855333927493821982489416625504088291525508617806520135165598472765021436262082501359761715801534487891956812322010163606490121145953610540100286268341379203367578864531896030120430117253164743966769364524332415870964780828538538686599702020365019469165502259816098918042277739013810301200629961382995472996898893818927516560892600825172595690164403663636427220507499920008306198741958044146942737346792942035563122191967610914871175058580370265032789069089946719334977355327846173291461331158716198154959364959756247357999088541606304972904276888863328282325160335032206102498690007666349303919762229805905708370573021774970577184703901991749252869838569056490220617199884860406396613855053577387574851363690439917090899270613637487567786010908132835359463736030969260685977205021962594998840882547151697120244209571237266821754892709439931962984753847403127245051453316751172116539888701103803913525296012065991638145316384801972026056004470654768240304505272415202884721775002141567779308261320518976302993754065292805748354690042263366611296659398968009850828170709108085863180221518991105489604477715173379084732973237062877236997130267054502905491013104147906511842165043744474776275602910872689888827449910578382048298020846799758622360213744490004721265367513135457685056296852377559313168321913975300798740910009618131160943221960018827416178936680436600020732942945309857174339037137635188964977201486148223465251627418041028345215328381100185859636180386354722242988041609011339205001695163931436798136444608268378361641629568418374220490018265418134043232698956805261499713430937594134179512476522407984782809338151055124748166227504296313595211820261961752362736567532786395442791932252030429912320785477252543703638315424166729565778791643193961661607742491203172779386582357053578466237214444754147558412107311902220833989237171117778168000174133783836100235037677791821933637115983969254564421605325519100767397999414209923868331676398408623070536187726514306983707896635364889109711643203304487668087380418112821063881072447521711070168643861395221462606390181947061084982933167372379600934472750752077135073998576902651056558378668826838454358998250271462747843394486181628769026529282344589510403765148382780626507756997761320129234758980712361681420108787475117164944873997087464093097024849615048599553186775450887943624601622181660887833668852183108523991782570502619314127822685620270016573238090462300770411766713893346367239802772122153022280817961834198275651944448834888682945562542913566134076730477655834556035793776833569465875966933933629939433696714376136839945810135809403980896227440423043832470693714525613463281953860147469357373389864471646615954314386008699879497047304869212671033024561566081814934157513120118500513952238763709331032986842683564506557242594207456277348581915337353621748958406682930689921245389785130057306408218876684731481925407205744140324189745399920805628588264134513964108939801127243688541994778102624735841521097145353121050931650424696509206742845903345536491333823144974668874019401649203662605169064092554258099430822293288319403139212343562776974986188526761807274957011663636438666954547487172622408911076165732946752336989655139895635993650506740377598234941091190711285726268993006390076733371302690432497547128365873315872909181464715193285079583776849622390763434014551014628438891698526755242517382265943560989409339110781483473675346331057081585740452113292435411368255614580423513401223337835398338873402638384677357612413053146308200940501017043001109578270072024368056693830335138897988359203857800707555293021768505661459710447032737423241536378388481065903073048783886071947724853173314856052105305704657093712303424561831704120444888942760765417837927253204203733154678483074523218428249171760573218691511044306681310519439471309184065198498151379501476103315618322530551552923185380549626523899567202790514626029360179362576177325073584248937611696305250154712730943460886680785040474194215634713352879694700873868317692688126804241475130074881482168014791274104559228024575300543208292550506305402669397041369044354171932875967307301404513039334223475295386373572465834825294994572388331347597153956771429629137362180866742126373394975030998955295454471589210325692233542893165273091229651852142702010414421563309607700728481886116572996790151424234025779658050898801980036841167616528883138465122919873733914896765348053184468107334244751824462522665676708762430442635427246983831479794555490136335216670131075903477442688103192870879531622167153027990047702894843786191432677241689917611587537261332429514403092727175051595748484854884482253111469997327426403718670862301135977667818828724138212138769134249931629552823726599559261619730375941788359625478016687610324609596685935487371033928550127072700169886412083660864208897326781698187871315880025945983862785720045423906058723996582463341587804297062155970393479884202312900453235973947560685440623539083596343692357947376322869455763532623167958917389967860856520897828758794833127278773569809971087291962180428374767076309016198887761802361122216563149791187938248619215939132553753913264661005165900493829086398236775959008816728555325308800208090970700139163283198282967005646397228163070828766846608108724940846381978294103879134538516097320201919416833330035863152858211944893284942850313205876005365518239632355880119340186445494278360927640064097119930156682051295328237683173601093947705428792818145812589240656019977239059839954150513342450176564356996855901433518283828800410854894558470073525935795020998744393839685478356093151630950005193852961079277188266362033663021202801124313254962698682918863490934738946279653280499523011591035351059336498003295877424785962588696076299825819647676791912000638127415617762172247468296041721010224710005022948342991357431005649102482836504912518248258762439508520710582170939911995812488680776640318782355825226862885384373320804014888008065787936214126265303319179524998249070679944424861891728251684964219322605120632613097372803523587232721718506594214865258188686327145408135062305394453536153665435893050956169729920171389802007673879040728707491119481456611859000270680317875731871419844235528838756600086982969958840159978826052232270953147149722208611667339315100958897426135660604858197949205008003313101488473519327403317106014211526924096864645594066819844178599161173104867712623197973571400316864886282675773931343554663457948670514248427092720383191844748483765733577597300127130492311376402765906213403229120225420641445136541293351062722607532727746273149143426377982832358677033772101704670337491666338162237090299632031510523903433369133224592266117700418673660443271836134669976443049689000696140965336168332998790293116119694735306286703915151246936556703904052355179494426079844809687322962153603395537810074854726765810385506082413497490384026516613617901884417546785239291800132068928721020265325380349993649364557186863869367211613088661781381511125173452179837978633156560841556228777674541985649961034958361932999556490095890536350311028112797554060707841603821422247394166688362748284015315686590801806134649697695348343044994158646492639969895910485099149002437954274998724462232764627106484285932921131373433244095119086835173440262277678693735620620918635237135294082027165794209113711005861590938204624464971591303920692312185671011114568535452120516104471429596785640896437021093901214649704216693471065796607289340814844691286317671829614830607551692748178321405366243372738556538024272048812401956312786247304822165945352406618333722777314723480038519377187062396441132071157873003449727544965450749749844614992213569839423411708088535041246280572027119427900018768218721683630963486589142462771900498472556504536515472219842012641790742173076395475874342238703883636406818326928418164914032958040296628630508941465990161502253706178264183750681628033561463213795221963923198836423813072773089506516540477386335050835235447369976710144055214304571933049189963044039437236077234103393751272183198983912520395970692338605982029617331086195196939370230624191708227871645476944861030386538200306737695445191359742042250985516082361097546714507725144294517609599966643606516711385769432878164142787097839293933016856310199248029405105844795762440314028934021811159442701916579719565764601729516186225301903378261167367294440247940435924132692881930817446462002002987702948620450085921148951438689440963412917984330167988817323690572168434524147430215524365639560053708777447021326071133485232746849787115992249907371179257087416038956274829387534871739142834755113883920519076673637935726093721204028660125801174738545244038960744627393069912560497556172879857332752884867056844999649012556457598941181666908136005352543303284632294496976145671935514256333573265808335808168878066969596627034180208827370498107971805088788351815286070884661950603849444432719615004826197888065364908918769882131373459478183429127645369121336296013169427426416364895436882950040761915321169508394498801570494900801830731209916620118631287475356115248272114086414298012933996636011512229009475793895223714375739094594689214843042345703286751690626550607810189407666283176713147732578470066763907168231759958951982553210296026561256407859037347059404974350285595669209317822528189376960105008442670112438035177328569976147232025291542617741357514387060327934776202908195796020111346775484502922626136464621107336650630333328105392796279180247170498957029373334491114262924679613864077297991555903057645393410863996891183643380501138558952706432307516722443932893045117839705669326682520342378269412038889658555545141742154760271113272403757295298645469419445917181397975025862259342043536672529760180808768226645127852827046876311911776516525533885360243222951342631051723083629187211447902969037022146937403129497285085052532422020965911796268841229967042402195138307375415272020724630958729915097187843309254902681218472032020187711379711900324344476738889125078714018104786304816076329058316912574924335047601167570983874394199313733818092469498342005011134533234425951221435230303108665312991329153211695782566053669122584827728926205332271448082332569383170772944431017923190777292407186631486041149725828491282958608606770269011051677650581839173926494119717690939302347017406355209642729360947534172306697602362650665773395702059834736774618771116601242897163311690240766097684783861307633988589199250500951318472939188297955617859137139109126980790683100139605856877814739187301713636995028747292321767710744693167757605678579906109393367308896360484334470241395368335320626997021784778351370315378907690936195297783550909077688360168942662637232718998913864839557329887411154694038193003376277480899533591733079381176975941275397800090831896828956989698167095042006944220610802820470348638883149963960819840896302586578497254232491006971322777667677348093576178915869847159703564627215298344334918648835776467987177737676362432562990274561760630839627516679862236760845641662076549738883589132110485739425322835096850946835293710589770815545110103087555904798928899758475829778901331154439307856540026186124072994851669244723733749933165584582060743952982718378635880474391687060468725023830795996252424312957899070493148947863139586171340977725527799838725346231430372083685026565147235790696900042866594475643453222286812693836976617255989750448647307812486230402092278765586215832330862862617743702756624306037269946106400743274277623303156769374354375914803538429125029948277771017765267139234647409958556447981088848941018398302683423635482303131151291027292234311058859461349599743110193589016284760737767073036633563961872296856084718676533441096571208537385950241987691141592456075064142659071172130810656226407992279596530209838818808735224440054159868022397348041760220347493386217812700907994008419350710443325248753557669003692684597288278395216976596883233568513464630432061305476371645608548365216642660741189038762660114004453425206056307638970435068126590318763171175000702500973014524729824813843929472055389638733923167046430532816149819399005103610169796915304693734559200903285871608427857965068306889328552907029245545290880668837449932297238123207434100338526196296923485385465397567679805960474904396768666026951512804099720273295042282658995042667618403967376037592845589392055062153178408844895952050134169442380126898680209268389591198272569884442884350748672678478130984840808600593667096886980023763461299893970724187917229924609659514460088312989466532697343245057774007083615162080958783682296534808167192941210626975156160124723232207886602848095461615800502509955766877676027829319345782602721171915222583887424221451530741564867533773697551772033101979200048864954080129752379439754340028953764479846504868241811437297587205485723443049333873177672050024720490670736879992416511532297748040147590400852400200193022950911833376632769195166217076710587972989061541002290122460571034710445463108182489098398123926609897805341603121960793973776751737345121633223532275919621281202236402691907490701566757918998714000240905486600105915097039928692688743949923475773559512064325738475088481086063899289283788927249965686195752501878627920982092745315488913806397653482619223046523970698869443865737282996833976536827055927882399651348683028804709542332157109045656853306189646024690242676768685575538334111950457099316124445373381077361446823555168294360107094199457326367666287151097125478677067043136322864582912257251110586224569670899969087336980991808625816201216277008996465275489116525969276314726617053763759721031068256496607499731369974143834097523821585384094640696230739522494491273128557757365521986904340210114548551887553459764455118159584507370936016675408728896873629179879741985775836283157557222681895241575679477283446219580854782279065022239271031687445794080533914895224351239097190374642206755920375551257572366708207424859782460755878331314182362011069462388349384650048965226550196838145422009856436876447930381441946128515975571464087169316354025049829546348647779581059662974719424961379323416654552767536204231371389833148291363060079119942294152560007303471682642364727733835616327196621540072527223760814384633423093102312339537203213758013095261023152644566427840894028353476526127103810103793374204970431866050002716843922439662114474179894052040656134363818088924004855262863625872397482866147886637330287712570249753953338528219327832519588312408114080021982196950407699791380805864550185642038128994316037548565302918725467526682044399757765744493601576650354517703837284773011790348085546907892371333705477964776274814138085316974302444149322168000798373892241441958497071995775000217403015026715650018779905848991409117898139165898898438516887541890216092620388149833396601286268410133433208677799534277298420560989069738142124436209441214508377967746352422646120012298561179613561511868663167827910583794325365035881857245225165636023067021734825893467458133333965069740040446736312448557221945202917580236432384231454232056983976710999782712439601637212172879558871841773798901503058659031121451497332979765231103078528375299514471069646023321386723839445841549417844543781447477426759619257289451566258872027135839808877366963468358916281727287288138828549427446829795978895418114598828283180527372379697045781424582178043699801713027527354530786336960288726307114301034739198273330810171548570308853641895344046911876264007100459875983598073251547066969977774533303191515531254100321757349508634446061835252144636692095265743832644693696705666221615332490650585819108780563643018374030689962188092566910344587127322877133206726343502748484642014444884620419814475899004506398818407037759234358026571594430500924572724732087173223160198263079057375382091455804024865814251901831537091632914555170826426851913742500600858536096641079122594189576056047718809442224731019125410332036925794921431921748386899940852911816326048059568500151362068051720372565978531714768019436686835304212111185355077152497155499313374530634837756831753411669747450058465429442911381485267161296745583959810714199955549510877484428297538044237090183774974186633479435218612875059535948955031355131423910729884787133829835587363594195014527366911522000907768245696112129361144576450873832859841478231238783075595390951722682189095285164635706861291980689090601400506720796672476617728902691308846895539815157966208363312128570823290346529322145188907089175058322695512071608755453003177526046957331117812823860168979932201590175750271880583984452744348887867356067366365923448493458393539138604204391371134674012224724778949006699013296450543779717200560421003103962938696211300880836592550279720973026779751668997404847126828627967823992138303443330532183386319786971334745558185972489908209820224070416177909951658695655609594955605531599722139487059683241092036123989776196848688280608138790447258388212775466918394521230571652630781330494837065022801147442545420480530979505504008428213156391541558346849025802935771086572152949205333332723074002842446128070984554679856149969062245273680038361359420861755811659990655528529135429654312991924455727317247081412222537844229741461688193800696239276535752726228212084348131330781318880887372484635877584448484166004996016971193718832806304653374776377094305616099551254795254405821769407617494370219201268461459037835512268265681628305805443440475987946833239664235861348583100836667520760818934226433809272328068040621741411770681290602102702713033505800751290356932340328269795710795688832964666755292673935066487503665198425708472809383952348055197268113024859383810356677507492606501952583061012711400357596206030762358213466281804627556110855355153719684408002212214826599920572364946835941324841809484821773244278745424706086056872636159736124994071854836813156568192398158346035052170903679668372696170516882515897784154644703239769406590162167175055417867727090137059553865503436597921665152752374848263574424020137404215684827501813986831321886746891967875337265999080749413458851416256900377518360236452070543989665828252140550842811926079834135848812763412122750910364163773800308670370191024244748598518199524463061166209908728274956872668975816498329316273336246890927207566639704248918595843081189087201644560866196736317858191143972553641430338631304018001467320613465508507600181627564387526820137356640169326849003872005409372568805419576504229258365387180103843534512334099917748243963458951181861524425419685009117467798258921861198673663678355656418907711863545324011887431449829099595720014423164152372532510020777451592910268191324601250544700981582136647603236787318908201476918350821123743256331862545663126012513128684728429208442130062525466714979731092223048163862554349927620180933154815129778504907864115497418154704043259003681957873430823843964801942789551754086520266978050886343019134951297576944997083626138869364652841461211516633586065780040972401251887931797173345743965205824769788548140252131494028004727579254021271798716466205509834335734636301895616948446165673869221168104734934172607576549555129614002052365643250075774018782133139482850684167624028827940722495148316210089663823672658596672122748814921867739357388559242238810041947280459912861628704641387538878081744091848069993519407808870453369590375956342002444904493287543140711502729842639085779054622510775237510630071123902686455004806472014505849965397506004485676933017667794096869996369731311669461877108326102468974512267692535530227197826503208005738834014677022164418366256317465186811907774066613171147959032883916785672704721745369174308587242759832605339591541319371678407841827436406313721233939884827132874137321606049990712347335928165786577398431691142148125141037777141408234221824629381586880710899684552520032825115563081538814650580210226382358757350191564314360348767452051784250430029243083463602532173132207233463030285322523381577829309630302813281699421303301753258544008152775675724902285870198183444486840871351039076251351502996006488544229891157025530748052057153142681665756205857781281008694045056359737456711917166784618964698644704900951661550934320569132873731594349039377910280902875875116746120781252053898796652495714348461649082350567955529865759872968389257047184344860337862677474540408482089208225212364168429309143407897112527030276332737015470811493871613989830265317394512105299069743258022162750551999964862458987050803709690828744188585213782832089855373258453991085004228517942311193345836633897748218686403356115790471517379586362276145985261135596188674114851532910009500262896747453140918570879797727786536107187647655885389863238629034499489445410305517523917509140485900177586092994588950258922641735546592152492993486839484149132001776289701231364154010325824932973320000346578722857894945381445881648370187361326294909998588634641945279263807961332369648722873930594367930397755027196130794955110219866793279858143470927001133881423254375640373423321491194936576141049044364064164497328086904773571579718523183870148043282988566361696671898870497243538221879512588517522089676210197869975798827626042319707817428983409676331360781683015660244095437260759949860579490566562688734177673771444030673950458569407735629659673922575043374428565905340230411263117788492848998571852801741367034814640492602590846750425038570803949457291591312902738375464003902306835867598534594628907358126788494990681305325191593460085811660094234628947236017818280244887459066526729809155892828452152032157119562535798575393150897962618753913226031898313328880706961268752741272744348492545940534068691502552852848883633327379115458128003586090398022607933663492998129742214759233231533209257859724507458935730650637605998630197100959863544720812066354356681364771543535073650592589730271286844565756103423686535409145825986866346685256293535897539431875303850973459995554001797195125845584411294505940379898500408056356626981786560195865690077733712097536294569217757767120922549043241171752407656298829676556140420346241480154675435460223666431870229152458233385563561105685946761814177406794969782358701303025489004917565697679474702928746249969965488831971092829783604187515091075522660260819239069516817630749953403106075452394916682434641984213652949816938985795996270586416749425395291917637656550278113536363048751565304061522182751460323543546172886496271093211484952626429045235531774103121343292138863168030392692823820666445268706912441525869064446621200935927085435756609001340712981654836618867467238551900871344040133562580403098769829480353887836215471091415234770046075222667082325987074449427763086568248446393974507109811277754810886308666301868547548531654878226948188268905780537472071111125380383897900119850025298769330839110607137412822652997027537390386402026342056089986633314495287391962212464409371104763149362432530539597635618952744804521609177789787762020623000440837139755416031145469567815570743949379912325862750257816992261472033852620119403309320911303558133717046319720485387918621828780048691468970350123374151351305807808264130258298398658108951490954862107403621558009423605653699532562510669737183375757896715501915199008644230497150762853742525590913024574145029678474262545306233618841151965782792530178370105090375282941096593891273330433395982670029031363260830712949635812922259774959866011772512274864281531138390336318639462519925796831809401738789934891053295131984195089734616610433605135926940798266169614030562116588492557087149362709017617753864405545430610401776727419241815510792598701279858169405045054905085022246810019786525112854505094060523115170293416544704696881179940162557282527008956591665355252100079470514728999721140346864973262574684760777492428116793143512855635445267059383538170497019431013797560385989653116583268513896848424127442978426762564067729017842818366727593342233953764446919314007882919043569919873795783368088574377211185651026680861519565683883463340987500143987572773206198496552917128391003683785358441514849984837721415971291328162180989810584709719663890927603939938043432882439553325889730520903554991481207863526714268054123320490411330018383013826972029616124704902816676759902936850169742840521107344678149279702066506474727342276341587626504067842038224319844766265718828840589408676022424857066886342736230352012626408992403172133420210802837022925050251357165361023490006704929119358845720882572015352073576141793220336451392406144223619177533544308267055094462207751142514895362767419677637574779097392388216566640168566357346231397841008623988546749234108153917584072755199194191463889964058209298198746799066306426472254566052820656160919659284778172692032367001168112845660322567956733443003219207846330899658973260666940317891741978518104231863067148640883965257976529743514815077185911319401686891166455968232166853574988848111389214696948764080448920843751199704393199190220720501167271444993526140310364053778572495741769197244442201547922989005478950684908595956652359360062559286754566434907921234567448171904814105695680084358938810335139965116998789161209241278165686095695701443001958298351240499645475715960666446367740077984995357566911049667745135435100862748862271687222450264483542873420969263788490127689772996694677486546595597075498489849837120847339953177698470809810103154775355199687913724076842343640833698917208386083274508994829781852228234949311885647052361070407346802739319943744765930740781632586961211649341863640451353123697309397270555681914662647495580785824817210278351740694091667528594728952984486688052960965449538513504734498649468805895962211734335608061432444935663242668332223194281334082429984966295267073959975618906063552010475064614475623888812717171762057570531362699726593544289797242721791182950663867492778868828059139704972457331509615965448815627153090152743811647616986024796527612805059121662279142252181430808441291526722379502014536380323312797274170020050842242253778151887331308792373148439406596911965075293301001044772959932525197178574525342110314466074767562576149845018472289310803981798054845780595493648546915148955995353992817487527805313465641866762623479598726146317070689829585428946501556859482665153895609888378181710034389797702277595294756403400398572438172662288685702435492897575206613165025941646882064976812178216572143683249615759648161847432135698311322655973037057607555293336423851046633705994652264015958313648059215640859960807668634085917610592885980121764513832621593430125787991686980610072377827110004282945395677759835918692286834930611799916826870377901764737286554509864845010325069230399812267650756275296225190356801684435064774855584372420572708017668067484569686651162923452284164312008876737495637095101317792069240652150154425410880169123267669641124346246169960102614976228493977334598201688420142963460787991304316348634038196486269421289962611332246731233483852074265207656444576070971858680698750933031380673902858519082629100120725426356648744565212433836918683629267662495363733416059209070597751999477813142652595880230239914879149713096750205559457404704756103784154630103788408393974197953361200668375822515867124036086388883851734943486617917351103735795438868074945667914020507609522468418597740737978444034763584454989039859722321969042638710081803104669927329328416750292868678346001614939401489851205785207035117454361350874473468560364448634177117379238188348541930672574716093428370528616482000542097042645989261820895947288540598869194762527743764113685484324409343525286134576338434511806651415685119600884753962758139655351071793483609888117425140124099679654616351876794213066236250624400245163915173079042399603376507364999138997002341481791806327922941125194797077490562048705471225298875606764984798217488153807099015729932211064017327929819554359614530382634024997761460009805346921318968414421923120308847082741485829573857976160367958599487694773174740374057945144491282270418217276989631370879774749302374915129479163733950682004912765471977182366167838348213993165838497854576896104275229434710884364520236334489595829896783895662204388683252738155312752388176022445710479860190750037446693064090848777895394021072285722373540412028889192010977529340723753835430324742703605859877218779525754936777877526796268991793470181415282425339836588782684302746005808306071882596024771549146113379396709766648825191537413770399548067487968094863475474555823500849476726507025142522691981404704695579346522865830134078586752349049628372271335052748671847910913820278592818283107322522922219185574261609360038499127733934958373688970886017230734080708604092457872199870145194087653890721555787371404487065373663990376054169941964172436482602695663309869470455691793591941473598164962677360626378420467336483858753367907860766897589314492241031738572271474578651859475549647582458928553646815695565535357685439917097581092220809880816811396450878863809592856217456731285027935333290840035462925601397459184284019008305561917272839045365217750678422035417970299937126560314369100905674476155117000597652922152839754566112807130016929957959765198972421193342316163740441242639632991470706407161265933833162172062737759757339295743714729312030745856086799339330894654487465358301945022630397888452639643220242863215023402886993615135089462354680019273420805589254361598890069692377518293382387208284661027787068664761184738658727876911438273535334319372755023612570811384124383821206298979167968829004065268176830822875365266012694643304503979235631425174351749459376135006138043924600425650138355064328004034231023751518083024933383067140971395515894315145665790280742741074502998074572080419283673574621335510844197833393059427532706132924229996462111379678046537444311638292467299105431961093893506010200949707654671211447310689349188361360693865824327263655697328084643290022766386694763848811065695232398551836786566374763277556383956395940893871536383403901546177779136028637741564038948556249034015756799550106640313876588081997147045497230433848464177512598457339442787154701718518484396748020451855397456483652885563032555254252169842431846666800098819610820944487890209348134806518139624836198836735995314463972150414128187609039908431145258332810247707058097797202696963727758070575631321781582287527518348536127537080317880152234370743451103738457102272635910678970282105720445983478033836653617016245309853141882853378917107004401577793585076792897168528871146592894946479469898222430313568050692366909870664096887428341433896480318463235079241496356752699711762722647524563404419900578130938379256852282346622890286868255274801705625069060173263435165310145443879449116827809610813371409892202017580609073660404029163806037292733333051514436140085341497549555525408668340184352171610470083657313992198329655625816949680423203775425511881440002510107331487869855671567127985805248890036598302640778148351604917037825554096874178167658075815723353768020252906028064216644599759566481784391972859119307965543395738061964206407335245012011705751094113249230679438175152958715877782818781801650659874996792997221276077961167055247221092226312843858693480574513318888087338153441371113239271279225567619759448891119271595236647435974009531310989858667779620550268600743785109578913158631902497548474913877480302413121913219633036788391448999999821841174793901754775544736474586349884302359586126521555534236203827827647086408219986749073403706758390631711637650072462291704838296156121063259972310431646599590672588758705099381801383269451181118086377269017578317747944236555339457153485669987920018948547205713326013980146023447301764818054271175979963068802069690536807334484293063348685873115858360619893184385382045510820074488693756811589657171192118592754514963267291522062247327387918923780236622622422472420902615656267324477239551526071142795338808553486092235785511052361954306705099133805495085321173975096127911285795514096958910250262363693015706770682356019617112153089374961133918315636029623533897783246596536333649479140410886742606770941476581693841927734671701885525103607700430141300169757499423648198347123200654694591598530325801564351304209905578779022765674375879347363687835362696749258573927156512360839687697664704227201950820874588810852295936445108287948675428722861363388524807923953865318162541790084285590520466414361152051418726694067786410324521753112001971373566505760653030251862167074938740326767685100716301026126832093646927171276367678562976692050513041395384916934945466264562937838382579458554096087798486875538419485002092342303570183124891040054323483147214297119122682303112927258137550322548321722833843028329246957641443675999078606839115421163704337812549762788083400538262896318074275543434871395149980446273304092254180662157269574880407640817161574205819859855672651155958484938741499935833997912728208184514490879919189355510533150954456907745736867764099088561454636444592056934971440910525628313450689342093325375710566520005678645738166232428156346002974395014732656548084653970451263762288704149505516711653657000864689822098793805879052333764053840117821292880080281831493576155565437107938569069356037356870960243966641233067373110403610148259964494071363448717448789458518074049213617008498299261364202530866871135627210605812707007496981363717940378465674997999654749461186588582321132601808475635845988695556268348219260032794016958046959847063616766714880790552063968080598606225811526924693137295580988467300759799519017076642085079012225244291506470422524402756994581590491487871068364131282604417478226348506955818817157857980449668696969279607515384589568600024817905286989211221481713410248462281852649027545141993367872009172837294839060133593518908369189901781791796892440612847403650760769253266204120590604869951484934348912056990936117027886399584319698267524896137738705981291075194304381262036329562587956274833296681703662363998046478630554141135602146624568679255483547939280116978133336766825858700549047802391648340065799781745658796899705740234154385087655627149977296136352923999432015784880570890632418647993271343689099537187471647383543101970820364624244343356737472556399001933811862064218706209173593667003420975577831703395960328530755000209441366054223165126509851424775161796078219110534889794772117633012030100852954043242383464061905263758979519207674199423881313817564445011462256625080626180618621060965827962438492598258297122892831983467869656295308402337330074410667143230599566551903314331367576889821380243927546631455013780173873632879955425824316764408743744723681631349786454200291649320462565120754491206737987670680438452246338463038043388321074161780753193861797660940127590588870413933364621419956078806045492777300380145156224605374965076931159825609813722816929313618989571882098128851818004578198880189290859634857494532246145627603907944932962740682925619096582902483160677660806780934789399719003014141034149424766480607012808715240442614239233529324019473862755059458947921113115850076511956929122704815281627870031098107134052481879504979165818024861482893115099743581760480208681718086681194999156902384810628119966477101060833065264593811150605729736417950884934802097804203824588793741478690172783985404562811129303593616285314401949398213332081263189076309003269653655659367501270422485138243080971395129928299604942327571111434576733004261218025930702841639380680281933148238752037118385092001262670276450984801242074586810498424420571970516008539286649174686283813572068083339272095162546137636918754081229386965593403811956956213464579452668802430793258029380490988174286709422281692547818078147995769368761009526228640382846770917097832749043651597942667641892306690740167279055133784241178209707193789695013195774140827194660678325811392183719233345350172388836895068791610244320356147893657173905795835260691650934811351842766723698757724969846664028721892444835762557579403775101018127137649040980670529906477608031715403199906994317063243766019880438184304458006463455941084328210613599600246086212741979905314230593829315518820016472624399823658095941041712485976675631081833263573757450254933049652447951763785493316683793286581225280931290600926490884094716054869984899244339485752610926251445802862309199052483742620686841055752571229442093710765271740658371612150988880983685784341617954276674443278487513742351614847851284189255209957401284677380783571089287923629272684944484515264055979502009265276186214518596357685201568570195981729919501600554262726587871477166807789224856710478130893530229938984329690990647918457043587583937716458609540627381958878793113061218475591415327489994559209883304560927380468758549917020043067222951546882703096784330407621485996022942875554213655412632447303669572405369343242665587840663530605555353920576820589118613586922064908837746346562473562629340536730906844894214696651016274377974792475858036607134458525156258068500033605769743868907160167477579811630114694611994288595649367726264544097886160685546129319994476925245388749008890910652286463612097490712980808088442825328032656379162251529245178309687824289084532441885880273212712442659118307036669933226787972936618030997223649113475801614185215730091673893631176028619483990152257465404616969153139427354225141848721200100444937528553803269736437104535987622876856142836502737773867196328257546433286028042163649557430337528759815459711018798633685582337638610590891647138671263455450929870908200060873874774065678981236521806187853938526974113503895151561908875849701439830600449966454535806081780691117984559127272927308502937587344666681427542137637796472059085966028560112945305703841572823363254609312340754578865513299236765725803906293358061148701202730681928934485733295271627458410856786806013619878292289026097003006445326840637564689160835752653022525525943781351266245974117581069877917859530542323125978166234751519191837455559972758297606980926053182679060849632097391274650847689612249306745090563768058589585511992983172229049300665062741236075793827519975985448344525680054449871127830960157933917498704699212108876369322804583759507909626309897085976018571947311204666529918349730740865599141644375483593638289538956696978076513693344307018721199829872412612275185894325052214493921938391294832032309101933494827471930704438825829581149228075619909746547260236915960860783679363717950626799436943611679247744533087614207106420204733827405138624539227868504034573084644292232868570338401208825365356421194610040153351033467212256999207839300817671806634160553653893248078839656792538538469886136029204020423876839350451956494974308238224025040796235899291185648005128457277193950855318644462561014949870382710945321705577095080981380784191874850250879672304714080970308712389059665379744460826442923464497976781964484972275912726277245377700721153118182221356644782550882646895972965348720785746591649701764399899038985352479366523436750991928836310248119978062529669298735789100876656301090713816681522552862479562508188284478036868304362785262335696712327399565586246239212841469511271646787441700497453066454394907292131578842593972392612551782422306435710839594278850730361441148449795781196575759926522633004450349145305294311204289884851562447457082319142109319860625687279517817045861311659104642706558924167847020311497162754145603701613251281419785548324807201474869861460184192967862565664196340758884487105275627008824294816965144245794224641141573054525850270400281730756033939843228680191660590561885251141496282501713750477914238594255592886099211201184211146942409846488023086931405727302130343186764755192828711526276347038403730307116234803082125227519953478289142298662286956555119447855778189866343278090763013281893348084276177091708027408116669127540285943386927896544901571959488510058784639600735272164868404963027670842937086378032324320324634380453910472407743672669205830200706036746200705473761147721960334130998838129519938316566000677355340198608012510444513383707727328037416348713737517059754350717114299768941925584491534064857166919580397110957851060533306794795628410361247576957812443951783862973572785615334742745874481886440047646526579851160980854920072265870787380840259174929111217136473605820380087381753127683194817244712406604403354828936173235872848107038279217789687621291861725118570158868505033274689445614791424230157088457503577733848733082045000386760311408754552713769115032274356448918325416988622928729763516227994419671004352106312408873806615698379110590290101820006383672780263208315893253382356890161231433327614221407199133113237967093952872864361737717764663612241610558851885454281889283154595591739577700331303899774970528245476956988574936691884967621768325744959672203278447350590338199925066051858629854050933670748492187490193646400077085813316482229567307154848071093214355868987399397707623771702733336645972604645426983832124097786956942424706551553864429897913959835687482226693295682178868514062120666243850447408850784396415665883107491629422704722018905649392608179449585089548554711070188366386971848443965511713561061558709194313263184913021967248068633114033224708642182832948999515248325733117275400039667850941312518793845693033460246344005370132980676300451690848061502942935719078660261886844396810257540968716967257981795230316776166500766347565492535297758291696304027331776275761410076651898338391917179237089723994626840629512349682468155519742269234875192943324236053689155830890622674157297763836679614581493360820469101296759783737988362723409171812849896913698729570313742822622679240632084377607302985722093429180373250474139399032923432428920368029052416105021064600656702657869929369351251923401361930118760175060781130431459678945511951259921330322629744637784804603241035519944500355146665481649648370208401636695657909554329542418090315356363520382716959823334013917315372468403739567335260391976952581822726265730325878313291485212842265004789782368299251779667384507943874105614171274919812492906766514389270028020133919149479807577373328102169637743843056466753357575556256799033632779601325806428503496067945219627234679242439737930040395033041630832053791082141500379190203639207076952178900517177632826185085430364537124109807172311290930878585983590376686896389541010053363983240980212537795897380534221114516395246925657950472523574774938097817420545718367403867385775864594019645474066726134741078445007591433538688127396638694599323777061514492573825501305684402607624773516872509554098669182872788383800756888324399794253225464692895439636969345088040012888442702385393787329130725104262571055311295628197824726457011496403738227516427164770036465542489802737073912009139082702879048559413179968281206466316447322054036236091638157184250804326201972227640123311756490191953482839731296951523211958920425093332886406677526125924875338858332424980804293114313304655246313855614839803722008942481321929619834268201436091207497384389480603889181296098438872342698793368321471613620506018513809261186128847491765260347357466165088176171004874948340867272500755154451627936502202464134509284797692666461173175995712231146421970232454397760296256169009472719018955796687475509153529367400576926428811097244418079055657254833789714121655353068150132694635256418755470015022484368204004185287660418064764332061298045245038904185231230057662442995087316405580902629946859357865462589461982615095087729830912767398623973309481114607233240793630007350478630122136037089055389976339117070451814294078672384510808170505621064044532367275109208023126738228662521955443462769493033814196917051526716071905237484636071137770071204439801557960097728632032666777373083439629733597797211819653206595747320677814396334887587418158020982068064783434951636109622117048087668509983365482838482974940706078480631370523896745455769557482099040665697384436516348377906382446426380713870379656595952867972231240610456751692088090413455452647763195408876545231885331222150669219709859609292709783786958468895759561907384336154997994941918772326677622838928596175343063632472095912021493999114039245109835450028521741525539225503084153676747654819708979162183574678312873884796393910837860506467386973637812130257494909467617960824100029129150930155290705486395266914025443065515887714179035807131771008017211791781772249528195765039330988734226115093390560962873004863227478044271627844145841642481268474457190344261695650116058713177036600472372673381700409466971231379076295960293988227463451350183711835933474396314101590078024603183204124444278401150990259180392114797697365059356866411427962224945058979252308451792038619769335696086711760538680098445461333196263365693469284718649259651301438949758506434946645098950748192021896434263359220103881916892848015256463402513825395417520437409631315224336516537697377182330250618802839550377765649950282204394253976622655346796655056009639595000586777394724900629519516187238446788681617977139516877715374784005423109251353145619422608194339728413423946955169274208807718791008982720231251322313128500257926216964555772898198205924075242979901044411986117955507651437818720645432122830240581098064922278397380472051867550121412040196075177270113383622549352590917645730969159453556673712963131418344412241384307150482143204462147685468032183473262442645335367518066273451209683735679419388842902435026853544404818817224110879714222063896192711294853939374549596711027847929847380426993203076241203840562280008093804535068821049125906756555260586173813357353493412913478655102190736069471523939273933114989983447849541529805393952881917809465248947999397226712568550083737440884118034966021061182414413049811905661920819551814084025468834855782562277660915088361237951332656703718162966046810171543685749363709158559471768857194738598376826474693640574109784413034545285442448528657126916411317679652279448707549031914766366901563548322536350961485231051925108715723513467698675258266017274786709528420513882812494846501245585507212889541952440505266538859453084848589491049695012685252168918247845744545062184094201901622996894984180447240864001077374056974225184998464725690735667259695461879544785280342923826108111698578604903732441773224555602828409235983291029411231369898685639099107132190269650828529928737137416224362951064489193125293454197708629840077952034257583955306215229818703060449512998130226754501895474124624675315103728259060275902055905029526483481579883867452245895024611914508590576425165662603394349172721357691525443130229645978565036817223216440727292846170091034730306136351452283328546615513351808548699332814230947343485630559272459162110465307871079669600408294685991936717784549395546165882495515930503309126364363680226067145835426507985070854788572728912755773326175165435792859716135725210250119210354679135800522618395353776296580528768975605406822377197202997722705724771174816613084522499646557261656829647599991599251141993682688255522824482667525944714834885497784360567942152444679860413805838845561434484620828486370816721265493798041845406528354950968820827835980068514180773962610877534226746790723793316974987367319963736405486190044482846908128898862463303361339787917781905305652918582481694802254154344486167025423747814595524769996214422255495545846575871425754115700861474571801525371465988989424930375926114947042843494351883900158663563468111076143307501840063802905501647724162471410354377708267002759493632940246112498185645372047901266900723673255948156466514282635551396673716436239394409246654476601075764362886620279007067715350318048696768261901300105971091156241175981964772072628673813176539235063259683666103612867950505101719826811562190875744463066467799998810188644580700072443168751782255963819651648760743917793588469152692112019121013654807990853569384421925048831889970418271362686232453683491047062528998876112145900304052248844181235748657172155615862622148429251498851463649607503800811344393443960921718989529269289886937209251500610610324670939710928206101044278685056167654504249976078234359812836720907911116363086279593714486746820585471326363850551887634125587510834334645405684304175099726434011521181562248898840476183044375438051520259605378943225146245096867396748284414713679872268791323604473162737563602652245121347310419575815266962152198669227615070285009884257961387515750973469313508379326506225077406216904937197956500941396855447200454876078352649796404553961862829058553868408069811955126267936473201179201763740291373424227770234807707693006039611058673355907697138937260731169353169120220698179677986865410086349387992621557997436226102875279964962013974032275242692972409724327750783789751058747156564321419598354672051933243830017032419318496527690182200462521282109112065746080930181487414491847157082116516266947123759350591776322271995062433693594759639072650829176109002821263214005568738499921394640264734328860688753570375091403182778800851135117772902403269301080118527307516299841756171499671713914160134494094728732276816303441950205546507594637295569096988420013112147725386163621126899256583399621169659146779594714611784965294280411261133686110746528373200973403187537234517060347605479182798106128994915712133349089310010662565470582759569736512211321420710750221301911561030094872105985811648559571555853330435708863892200082423057890388243764628849898559038364277375219656894757885809184618586105463198153455016195473812479255415446103282185561408366817321021249471537872244625419497714474619645216799003715833205094979809474018741938134219444118651900164042849341181753166242606740059457235765031193817695467061118611678128890396029907747939613937015619471128311565499512543238750319944598779439467539198734959096849185591915956835500205432903424108968063895378836526474613007509231223354202425907815073158512618312671426044412430934653395464318279925753066912291966303040810421288309388790298259341952654807112998327374340913356040450366986251469909546240572968798283084228312754608572981347387380685155652356694155311976759003066956317012064234798826561218950061465971163961297776455711100244959016429533434530221466983548667920601856029955006236998778698925366679529794896428156634145410631484999962011298421539855245832911732645586995679784343818707231844220505656159046379747165029728579383030650616543332270979625470605897183863946640719099947293807012384102577993740598188792206407460033410707176309516668490458975854524199100217685300013725397080337894972889368569928255425820534778190618958136543847314608853731897543885730874013556824841836298726421895214774657002199425138311247661037360044077026624671560607214763987793193620035340978127860460658038421056170642753082315161908223406392658015912279104619997991452094393634544440285237054010318939559864005684023770438222539214035510146741877419470725805431157564768553694990055643832420442832755746264940035123847682296591782464194501294083651316821357050474719752756760751930865466453158161373095245474885900730834139908582460070580842299347111433536845086318249045341119319897055965237708315222836141409357313340474300426772528329450858411530475145229174278456509185710064773255160302961895931215622135406404347367030821043783956027562152096837282385165088124572277054830574907056487047125252637431566984080400749829812124303334307810368848130342520078047603266726896260904504452444621321018607234466467137210115102803800684673324575202984304879108515871852646325058286984801759400096458525421438916210517308695407307399149254296631212896005527189861087606299644516661332988669508262498827060763399948401646049691710443043263501017007967310309329691492318025919374040153394287287788972938077099909310708788721477970928357977925153086968988626311131176284951600935564277927627895217317595948656075401732568972399864621408821528245687833119709934740574858054014842210415127777954509342816086538862189792413456298492290014796743237333131643705482695463690196748447996108665485847636249974876662559104853620050647980639144992465323948796750394640625464600874926497591575711722602107248563793043731227418347373598409055208914984601101816763212478479518193469154206581055002352857494139668108165492823148150869851958049570170578928144308115212373919267502238961039801551542149928982779772294462897966315799650287455173178254120314749205599778569404992290228203225548727614355101330920864813534745037947172356620708135039342404480541979700722307233062567449102644635350180381056507946883478759585873088524031286456903629892276524464573398766850910071554612826813217161103739829816587694666957760810159173172620662164185277904346586939045023540982539441957228319373937578231629776855059210222221686401623704930170872588665378634171592981493233564049117482463930858319541262200972402235114816627678780769698684536949536603991734380415361993904059746901398136970193732313143481242836223552275377614747048728612387386335996590611855209126583957372696794042812485663101483032244164218873884113051202477183127973676804791485331933483113579130150678335478116062187357223834977393922060180186504358112614100637587769978390681779270333132838700186912390888764189974927328605296992502275435363936589606077638787181182049282878775617946752665209142734055800743212710897998698730097045036810853524415745913484441124084109266359726171886544105321632586589857674117645836249777931674102522397427416281543862736021296056064955054457623487699116819309277606103635375155868156996276688917767237497881086741673643652827599981772973749247299542483554651094065422396868116555416387154921010253023897571075469417448434590672549417207035494939160598679942806509077259262457436951564972718668053969799401428345413846066387369674408991581224098572227366602707842522926014098516313181356261848205478272968526257663865952281372051628742119050227927082187985923818844678401338655200681089029308704755685810490590250349156429666932006598660423001352810264573241383189274475577404684784931194624689073604499595120320357242230313024152315046989428401224399186451933920107212887315432905229791283905439827104743047982484705451439349831047250094371266415356977649393606227458002206603098346741410481049767904987624693721943952885191976104726197505723596380131629017732332034623606801287308589979555171725946316027847228164367334804123011731490461128910153337609344887352054380954828234194389933067378471870259692097681076263554088885898505893249780769290169970430119841215476755830309515431702383696315672327957169039897939006784921507611179195999621368624379206112394905948204996705773159693526241807542143344002408759148477200715815001801726398527542044360047411254683803509148240403700552030608943154192626282456024381228218801833509113385476657144605338507803373217434356696027487813234332259295934691615969886373452595123381796690664238970017250516207080441005798817867935328324120276314893326733136149461024945766799704927211421666710593071038961866908139222748226670887563585008002876364504186957540152431041127733585564447598105875362125457605300328140748876090898900700866554943918560873261375835433077619273783421159380281210313169440823060824648581656885223281646427717763554176420613157654677537513091918781654248480209744523504847515753441338377514175327369459733816535167204844677709550595290102120092410978205089472595357890368850102548950981149269460412314874158853380365618758078558682866336537706240714662201175123563186012927203291024720401753768206060165835482145764847665014028449632945014214568780896615804731731182183914412141868243995439788909602501566983299604472866374772977041382151432004415301526970510090130770841401287806967322161154808034199831095743998400287375039273786621554148742039433951794666364710646658030374956178589438845923438737337397895204612897407254043394290987001265584553795780178901733016949033962204383548748779613478400990594680368491359660811296914410101126919269807822260973297178220220322886294773474657169897707884546301337293008874230551230711005653653285507743437588763632894719196099617354536665784263619074956937785632696304055777760951899722292822660033985377568552551226715826630499274893997564903846963226169077197211899745681696847392145534210455994080005537849414756701203080079378108226976787616778716102619023457778772522083432161829796903321562589850985053895272123280260491847629203733887833613529630172360527901254953537766431480466416635871584054229552774302798045850145047272750418407370890929536640720881244145762498994822627501718508734341455531964005897293447194986238783529272406519755469836069129228257178849518670774310755274633866455791527806927368545341482479078793217318361318246556866281207341430036841125149850057973912146789385018053331158066592262027438303100986414864617415721262674068488037769898585313629926766882820732272490552452956744990490969494735366227852976134268327210276117777172737380913438874859712652110024821952590259308866649395018139596194071214596768719350304799728073939183073142673509418943574504524490771626547842440571652657497960631388598874630620506076773073211152518598479439835307857938105526683014351091168934885819765092942905822194506914705726039862493079838744828408787700267387323322198241109440902893485651370737738415695842906299132328843882382635487990968883833594452793680826619442223864516799752965241230924902290783266496729272588278282007448292545183522801932941982379988801111070876724962963382510803154015806951753022050735913690739079746319489718742924265290327097885023892098069171365666917835320471791756346443020702163104208818809844692747483929641022790678021204813624430872016250333803649286920461863598001832705942165997268275528942469355802203790570946178306094301140127811440756524888681021668567910816935189071297854529880165452398811284863308784851872046491437452028860083184580277554240493635163766209787422487985313627577783741362063046176805589853493621735897614588004006565121347396884205047515029703076454118449976295293087840379074762384346511557992277208945194849100176566757575908280207870091140621312456032983080559998842368283577258769498812991285350005151102918217609713480156496149133220193306075056541582102074134216576782491150968276410143900428766367581442813735216022074424825738270306538726313470185171464154701957975036086606868050852472214418219924792814723257555014662822535343835257229501800228518475326499345018439068453421334069986279728117823317466086911700436467288587244017741655931196869771898372821750273801988975367428877693646889727598176792571669391535228782063405912597136169075959437395592565371888297329860100140282649034266621193535240606245888219686755063335102180622886808093735800571290735290819954930434920707474120181958363669279786861541744456656014896368733596074690793624898991488372302458198935558229732047593525077650613981097042563177597257499327048953309015950393131222831734458237725612119884338847879524928044522074365735664780823851990579058621372167580633044554119197152466784255663666453271413812950294168161804514533593999492865303125343910463261142255676148373758684746300299508744913973489973809091960809032390075637764472441169532494685402360020233146381183060206354360681109317318909747843582415729866100769292041693130275717081611823204834386922420930906266025523609878788231207183011792468016387396773123522950769733313562093511008363598758973724516511636547446899764834154003600163989761311476946724568934664391301561830893779187760070093494827352458723726005826820447891748311590664140398091837343621389293271814373504812666713228306225426053605053218069729311847648733028319463103131767940405209378939338120916757098571882691551329607169940087924940986155664455049330435581921411148603875923872314975160009241204805946298543799510167852969572562655580875170910674824797904403330510686951066951229271400676039876071836772470115916655716630164641708301925966011897360270601098510097128544843798778076658112214380044990105870277729026669575773065802526960450377832689751543317604242635376044921099939193043497132757073960728741608674323432799900737663294423107691126453230761163876173427230889906832660735989763994435025861057705864504706112124278728843395794716461828587699260317525151824795628531880183729843835057597118346331122845273875897966262622991648093593201614041482129939731659881326882747033560965754677576744141925358764059396483379837709200036270622836443355178153577571698752852425481218023369763549535501882327623158482169481184166491724540212903372609895999599028071971415678548749338261172184408114582664074423941340188082654201581650759344024723181813999997501241708430453428859784423330813342791143977063740717693158723519268780368539936021525622836921845727070652912887883392735183906525802018463734163680192621619813872529674977116785208862442483078120352640753961022852891029772777869377160209793242473240354118706782444208688995741527746923373703469826723356228589741304343035720005761850821216350606951914951348961835625492664490967134574495793522618537891745129649777236294129398708467221378366192881172583248967552429863329368759263595278021468304864521159706515866394051797369934889592797535138828136458121331773294507604116939183991928069537425123710619842119821155718436794383901934961709086967273100842328827916464456487156764489419737575967583490516358912573690410589277021907950231256129923218802432292936040759725265170491798734713869169886825046162497733435981024701804162702670493372036716683415042415187398440188194213991850176657939842050493409580542498005946548927559332643409472645319983902924994709351784068282705222325207254541720747272229080788831225724969108708788611718988041193913825209655421944615458180050024063946877198398341971653777052350086850634874114528341380842621708058327834721603532297838447331244136545658459006085408361564802361826924469557401858309671267049245851302151721553506221929835122248133035396198875465665019523453543802893461568961530928849712297451596752085330189693767417394727777219034675113927678307811147592875144893843860075864275236397903572669096582182871408704884702213573370412012102249714771795958403141461464595842968041866617914117142931353245160590994955707152430286167173079384361849870887118959329488448684017293674745431836717207689878232474845335253500008398855689595528715099148628218348144808287796441819459702755240005613301399901554460418244504162817219951887592004088568304434276767662672623724481556824940343296590619477450526745399889443140891166073491506403481507335081549762585006388215203128117634534936379690796024980597290788921538124252844429747195506549153282272017233384662882333688716432119465035958831909408381834665199961732958177937348581533127945413539286242218818359751154640085766962330807120924517905622831696309218742648493004963514831675771993929785715132810653108919941413787246162397878237169152440426503866860750373223923239445167478105212578551626254259263935335665847607414744776879736907587230546133898847486490100924695574532685714709065671879414906374191204947209005554991960579347528865289782658428509629998053188855711346896864191963600636588807604543109345893860861321167994778481183180274773672801084483672743730590190765381015071788090514480361758870900227774177422689557818037633531369453649733730711612795777745719819972552357421893681065098660747050203821923279335577168087901065926408861945518023349488834943477405995246361896723006531943963401538502071059124665468209324450025147698821763227598187384934873308677332142536232423898456093249798828581058480577862093234389169435652867889592547862912821177417746822268876538094617856269465162790388990863503982330164242818173731311123196006038631630540858417417638881419592915179756098475060887932698508940327917039558357591673442767601951808893967160356906856730560933719988667867276364615689779438045075969435819661354079251467360986175042738219844635656975471710848718823897681122563324590695734782381731145201386301847678171335308608760868248664413165220880204328953996575938572012699529506145310881455973572763797772528560099249148820617005476721284315061483894388761683049250781190801025127742347678167003680380910847305486602279578363526802939127247615996000334938533253053161240818186326021297280504724922475816141036790189852452642291256993749850734550874860228185994516435725589168049840630015259429325217806168655720564392866976546487607225602268914757945302856705407549250692505533504807920868427892640508784983309143924796601146488439489930373510692142697979094705137087559403954261368419016549488457576905870000734038104389906901288808345238626693108889273263851092356405451002975497829164144733089872071876187001493642440379382937105011717673616631722473130051145604681762062567374414098386214341736121328597626718719398777718787420552333406107380285684932272199695492826392438160990299999759584701395201246787600639599651999719599489505468414435179385860855266775211985284548961258861362985305521420796353461107023739785356629063213042888507974296626104368635867008135305289917312659674917765418882520214958212806344765103329495815722859505337950303807476967132928122160373518183708000727159689126868784841706588082838647508209074117532902513723388168008028770697025407668865873622783436592834024523628720755736176564184525706967608926249460918693010093674267474404937874848190452642912109093102395650184856674482678146420075858648892258989521396556405990522878832115508301082270718323470452879970988036818610845955829794737913464694685508287700438168859752676661701525826818664782806228860171286154199877753588142334386773874633879201211931766435827531312464306671990739661556176310692280334167929670176315147106947145089283240841013145417863167724088530192593574523814679478169547321202278323333266811104944350867772613438946373604435178969080414842925869519612299426212328071848764368036099537724681467781010067911887844807136195702948019927988333526245141117795423641992129693238584038079091755949891463573375250794862367458456681074883505478255437322876819738291741609771312252777947156672896000036118517801032665743176692658694256115279536241902175398780431252175709082886753174470584138306671721977689778506289039910324836397281375725025099738815453255803464283091575525084253847704483584221371418301506085453687252698801270800191741954998984445723807376143117731472565905558284804858069360311507203903605749527917088554219195057179732397623052272722740300254908944601924948693945015163822774733626337660381398000718460848545311866937316532612947041906552210771618223375693322405092940869140299648787705052295928404805631323241449879567134334341914852606098154604151841323723874970070848094939956526435775255658605311360333405439366321519941178288265326055781311927661318239645272861865749085363935383141340308323962660012527776801971291520694278269302698150215668909786057096946713028534948385452918660435632532775970863955959575296338306231037345152063137693026951136438542693619569236845790998546873994435635320028122153964806901464730473471798002838344439510986213278085668906270344249315272678524989364896799104474057776943660688017212364942251392431194666039780823654412004852420038672796394498485422018810360632386559991018710340196505248723597831448783428496181681734760531217147398112707796753816740318768385293280805750325498112996323587988995144605517966544345288343413055874421474512018101352875477688720835397617833610145938091693628141076701404673720539758465712658349160330859538361026752561793243392402052342401112725333190214899725006867097208714051018807645936453422718832411711758702851730449717117456855661899393943609464661214796388630146571876984521935483259659039539199008175664927626834651983337868020905051878985602559169507694327496416180516718312633712980873723453449544465945570632882184902134137862376613998124881419743095877719739109870783647728503152542724241002318504263476981158929222121115387782836314294220219918981065610676281612087743934801672099034038555468219668833288918038523186636453385972608927838828261804016966334955077740214677391334408342599717275470734159196944951396841347648558621215196578183702696594819333524347239143497854417911431778477565922963068864019433001075730008594738565519101521956858921885570668133408629319785656829845661620476388630059612220028445655828987318235053593123261304027224117827401345300000959647127415345064832538216285288869052574914360850255837473910339559916120963950792913966271106974595586740689427086970171538168164911405118600347748588586684167754619800286026897255627174324180082097642140286952213609575333218300379419719421068492193348175165844331610370116075668752770766015000139085855679968830743680469753697853884500735750649516457711403551167471330903207586174775890538741635286700800415258550401740598606543115103328503241949594833145044263448570692864031327102266025640366177930152686550662098720962361079177027742839773464360276776738611450277917292907009221484073533752405571488745772418569440608945675156824745643809346167154545891189007593988373766808826914283594991249702924711723411991302952798667539291875263366239362709239977399950558468322054192570920517441357807374558404130292128064429015092644787212186464825935127919198353789193131733445617558559239722444498288325350914739453068308495682941507501158598110000694643037424113284887839429128832240555193769981600638495337704159840750547325505655084263125008924207146567421667616386113759737523593567843846738528677904574013964218059263984568578227996712218390700046358859461918127736638267375857616743685261751323125956160705691805218310754439842774725443275686592755234986980673572522754010506776974800769769603651531451349953404938416968700570646037843401638058695013559978764075817715264670070526909408013761351724319772387318730317071383445389603723206044402281828333020751819576559697494638948704222125018481823694918383056282200812072295889585924109722201191408790243843195682227274486636332238736927937314334707136786355294863094747373146536741548142880513360888476281746716644733745025660624970511548079005520693215393155555520273536707606181985475801828703830769764950541423837640947310387321264686262449830479894497503699984475738919144027131517604369409196989745069287717308187531867106310155769938913380330480149375026003639948228571497259372330175033713969944348905139557845284601932071183277475092898256016040351151821363146727520635316818101047720599489726534105216901720538342177315125622576739549209535739778813653192294987445212745969846832383454913243227373213157731558114129812717732153474780719873164786204424134681094527309371853809999740301386558435274541328685850647043275538983747714647586015592703333176467645616776939454643687800891285088763281704049253364762480960747585155345284592246742457742876648905898624394190937220445089449679404700658539736928630738152393128780573657317653974605792454667770368076647865314315162992497698885775092041499281115661299878418348153074949678409914435367737694963664343388837537711345983384604799876238042493006648267728764253247335427118528681299886146482413797265850917500790679164133041997848556303134862981462930778031834103166329000491594606953856450739658489142690986900483030197395251557473408799174948815257083817239654999686487844439724139906832127255671965125520842483067464745650142776608468622279534590270901109027278992202112347383177024383287033559906538379041669561807775358864493753156348041409157133650077775744160382062776382903840587475547830697853730637852429363959679362359120769756066475521925625858926837183360832050517633242082015082972537965383418130997120094560215209037540177839430603773043358419725684819026154066896917062290852040997642603441309750686645208133364624628645197143271390805986785338957134263721001941993605681661606418794958779021234374464269253490286772950487200858691340159850481120864676386077781328277490579124991175014635319890323756634629354890409285206619940620824434827115038526821521318607321473192952779220025805708311217926693803116479725489496677417833334547167814123420896526970466866884744362814431355151284600648305343688694615572951667910594120954387738862853657019226005545753544599345329892160153505625612968544555008470664071879746269194547462607449507975080076258507283802096553046586192351368662596105923747295812472498507735065161740428697747191223908882205620495005082146063090570722763739959622698159166275656471422875607310283563294127372328612691746083480084614136093990531819838905923014085073911567370624660533799126190786825392008905397804786279230374865738946416180363936099707102760689487488788454255540364718627142282379935892346104189359298741288208419014306795956323034196412714504498847826434730568795360842040684185460232864022033922110879181640957067205658304873683134929428420190099341735791498548464352582356905908697839673958415094878822538920320500889991468929460274514824353448632661453880149859754905092099497369607711307353531300389619926957329213001324684727363784613118767999575197184747264063977024982517388198858788425249461764230695181389510703438575018965357084320170168253433443128282675242939889228696112865348438126188581415474283222331433569905954569150067078731983987806084514718430890296614155877241949070331123429015793961223706326846361694817396928795264719244673660517425758307898421812765412275039699532975703013268868483203602629023247228382271649513861934361409660964337267899089913056917694465312370100647011859059670439968905318291211574241782676456518170062514865056466593331658721054714718433216829429129144132157339684772043177429831117657144432779729664885920991444050767146163160266964463002199305606451804793419380228290062081349205342416065747530815727831817252085668354917679856909426833180646521958042344739117044097352110554553147710901883649261766354644566423694311378673160650777482720100995808207859745483756655996437666211383771125402189730733676983414216836987209687614521126324868140779120513184699060840843026809077417431127794227872518798271410949939877824993810233889799277011329497339721627647984227666292064122743105428878329025284041933101770137360530878428823708653673924597502687506853396311191291537648098602032518832379820986203554227169525398824499944828747174624247741991306518470971476617435154046130121087730721561536989964706570560315268776796237323836399157150386948100166620687564860851402689354473964516747486657437498128691981067346341704538612043451893219976197797673108939960380292517364642934040483191590671590342917390769853375548096207331442501856789911083911943265229199407371859457313723541182491983604137871696084999890161141669797589861091234053585387354450200891255080576600103643410642220346567325831702241452500375973931625502384412446915525031566474686956406858639633406418306265651960272694534954885277903052915633699787519215035249361106028373936316627291950068649561357263725978790117520968816915972497597502908176079296762495027371829105089502396930650840955166781811340916903593491921198490637605524743266216645783018881085529764937444779599427695711955417183996423388308784924466855492922149538537115316475219831763973711538168166795526667324176206770765914621386943175755077327545058729676791315927281790965450081786309572803978525042003189637110611689242140580484135229478524794493542857939267720814362073243023734320676271744401595347040076844047868927018329548116533805249695381554233616970219923544182168660477934263832442326012614263202268764092073293040211779184723292629860642023053327954737995386659845872493017051713073251286693115346939728457444034399373608013691670091255642212948139883303753272789133442164030439372572077768841296600087488581490594803695443279184366624938822597008188348989412139048986958720966517462429341952457640238273116094240113261496785762772810935818745739618264821383682117808649579695271779651964426736012660942834194378999500025263597294930476073973398938256992184608319750981970844590304051811412392858642047275321334943730055902692788650705744138991636222609763214621940430977852387031915791736502284665204982200461816631852451124924203738825264274444198002627805424712065743024225772397571935702166719741580360975024227131191250977060464987371669013190282348378707432047633455810505899083507844869833978588239736456626159013250141450532285272486396398493895440514271017648455046932213237642213345376339019555937493876510342979799747641076959900230450404315581139692326107526883615068864850492198978732070784881194814863050405680900051542769079223368662765709219330523734511859854039768192894383151857533107649956229552825328346266899614559086208867308640084438013873856687643014863730729952057245890914152282496298739228807543842883679718137618486202341022527294490744619662059731849607121418765452041519617763587844347824813006378507887899886085029385448783603378733696339238914279071228367585498892612039117609485760669274484892723467956997007660914553960573459452968229839005253790823961851631481330985669771705821225690265953745250981138272051960614441505848149915792030086255039013651541066012071851385547115527355150803009899764131893015252318263483144158556943088145137037170137394948299331613270068665099254060096060573646035140699964361875827300212529303585799221729736304256383109508378675140541303328962153488746357983192381462093819774139173064970803695406102828120989360329949352731705458939096978345451949950839336942644479993538932239462271038549563869750236938279123723761573502102772023514912890319233783539962955122116215645725516485049498748475316784567191580006660078951262526692745682182949686426370096842219448995564335563834514202792717539323435506027145750560643339823510925298548455734826680368873784347359863357231166278163322620405427086378464876879539147472772025494499891091545799892382301028308057872999100556184992267153063568726488417569499154361794601794032369064074996237556275735892474262811442560621372170611441339080925770333594365565100710381876916232057938647333462543774057379946703451653808522440631525176552903497608891919243422931154658712950570171383858541557723607597726543285999844042055648551583934761554987916833983103103272710011730760129149450584881399750788622284467236068013580180123495365545121318814314450144181237108846164310917129527032058939712500593526336312488721238497391619348766227021656607424504724726824147407140467462787862383372795197424986100543108453768812863798432226788304531398616766752960001446727830715417847621636647196763251772661327787252616659331785889159974773500977525694425141998685855130432821321141600155498753943596545320343936495103627849637040319987607687696742477000440451634532080788976783074858894424416329254677039754557451252036114865729181670007352353826443253710331916481450000879322371231180060790390539083731490214229906270413467193268706721158843444484605972065537206782007795747051305576620449972987217701428964350014271523191781170078785426073809753117872784085621843717555349163380724301005868900161617637897596647078696834208592522463452789287657311056587069351478513948834198139457877036055915032863591733694036098277322239197385691556389028489401436042470247176967872541645327361745756330494130098093509772884155695849446832450827875230926970607243494346710869488277448790985489897638925683461973668677447449050478815174504747361915272590324364771036831603422643959260557115719352308428168274509512687330469334304650941890081918672233508020598302991758772223434016109419833762324165947315794875572469442614082468492363683135396005632105748425514521096849572316016512615156922614648353390489577350281714671614731295456253280694076239257289049518181566320565157168577907308787349223700145410721524004641090131076996523748509893582965097675216789454609974661076773518932359329845587113047529702052975927786211496906944095913095993400740860187803017456887309245437199396218791672362124827595989137874331535902257298889692725797530638423726338840259440163706103801262663532269488699394149080499510669997350891225222969280019690736370960896914008326181453434625756615377387653549969765700667819587528871182473551393909012655644452977712267007788117161017334071380096060999024727294485245725540449444169896231215941437566424449798913658231851896875284292207976971311063206242833715482635893534480942956778221263513180705554270133771176254347513804740971512212873447502519579699654478063379013121478463774614904633040289424559612460085399229282488816629124025030226122282675682177224523850862501435861158832173454430301627980254169932653909086698442303986046783992161763353780792210137642564233528844415371061293552833186089805775414198876055068906975464622248315334528714104000334476434421019210800647542006092815489527838498674328631015831948436928982845053005503314003579028908959614887941573406017778765047394291898974650297365896617218512093337745279454653579988134158095609448253530205750451027697851694298495918503199483679813806855666468371546242150608258259011013346132955919997062421728778490497899504185130227206291328722433690281270000204270257521550734317218277016248846371375665459344764301771834493255802331793572175017613020422807724715544133543997829531770931699159459351017419700044179889027733992542931625599959340360543500837710408067266393727443187107176287921915833654118098593259399255313377250583911630922659480734100633676957877797517975341970184239328934983801002698388753299468086583911163302476559201774349049647615740301705500512064563843523411041337722976517019539961956351629294120747100112049082802021577841640347949500687164480604015532324501156080628918200370402057451679225494763821737512329565666873804999390123921773015033931210596563293903776284866642636865465527541152837003289571215152826431190802684914058222671816982708234864461612524864997241091340632195221467558677769320166419906942825690155909959435654795758124820835354587119932955303480961011205872796883385372878113273691545449367832843319117172080216613096177180025633031561512838529629132929418422647041920576704061686590783894533221253476279929840608183256691647008539074351730383171086676934279527170109094661089914385399272800415137076536726223199072890965589786625195895263711811517987908287552395500308742443075652078953859495009421456529721720561925255146350203798461404764804693772158480542181978901405765420861807869300796851783640784850224988798991727540797169920720721498955745052386162690334981974544188616419184362525313038459635094399226404888077118516302275211709295156434276285515452554360877486089390093334546618399226325508706577903925306553490251419953085745794892822117077478977040671817186245180307185874899402340151625906861284646248504196287388030886807236453666084656199028699978108623743048225544337064785748610170191614601919896844981849347466238347289452856703376196497959892043830793386798579931942147291280334269653268825610563556082320575758403916341126140976761200628933898493573535304756753150226925323674570514204690929058104316232128221542572363749964662583035429397682169388821168518449983554921418739443527438509913897291555457918432602948283209740320205250741434349073789239957921743998053770077947561241311251648600940931444175584091160340871120291178902842221545419221406060337107827486154447620224596676571798817457372053117770133397330942952712090306412947132249379844046989624784751956692402687281431773176566553279191659633845368487819662946591165813328806142946300733774587843146593785657672452472483354788932811364657796509514850208076306226712007292274318421443637237446728185784138784435175554152560511572921230444193764989719650276101782588196853304427064903665376185689241013266048235736169852908114969432596889895647880421313716838723442277407133404382045338552799726287041651026492902867756882403823586458782139947393656671271593398873230272735502319453535981769650546343325157933656220128203046361528111839292941280595184727399419820641548167869876963330405472883666520574684841421751713706440278413479506135594697551824817069483738716932741697092428383842460288157608626199370656220329383846141498898369916160056513369192522574948489747459001952628195876993338721293588627414024330482172845217501737812900713084574257059136556316345056932375644608919190791105600485109905214740536037824605680657933089979207223629622476917363165871376646882600907939265343422993677284943697643710015054673760116327677283587948513309747695670386441239524343312853601146511084864509300138080136985898397204215605600401946174615176830440917621110608551049247131821898254769902136275168915643397348715903134235579237032307981782539629655212563541453125662203740938892148680110324482674729569704244968905344519394030562974823523306572945627015806213946698251038910439839678431075870145726841272275066351656036824684071827493071640676361091428191388963483500799389275745876402088465667305250572730832377583116707896686984580456813746571842383214955170354479058572176361064294715318166497525463821536170833497163045513844913077579264082532084845232848041719571646410992623283952699279045793514319212553553159039980760831992481484731316260276962606080098371045322003538383336373643281113265043768163435859496250047752855139148180482075854913716486428447864541095978990395119850494116558679571586852583690451718017324826303730346775429660582831012415026871000719826242510561383252806463065582852784822326295822322984571175986795279306928399635301469085106096495039773590606910019505592914055554365406075947828049736768414867476566962299108763770832590095803211722476808336672860520028561531722001766495807418187910171227036734043815808647542575620632853856243526538594538448475415912952000993977863606030469631976362255354337263616097565843056449156639683387367334021588995640954707247880418957763892655980369326387032983164055910193068586699422351918910409862620283209440498604335075749863464843895164720328732284579109691634325993285769264823637248668644026409831674841601135812851820154390701313652702808297536979891065014213442690171224456509504999135299264379681777368252367884783838560731101923461450016755926658640642347950413030012545825451134379152657665254750133599909971131415600422158311409951105095800018550837498184761424306661220120946757044890016896958336579566375079374373367678861055590716533565623027156977650161034466484447214127887029766320843691349731979080868962856225694826101109661198103730805438090721284413188352208856272736995628071394626492553277665123875098858628318665203844206614437584779810353709188918593044983230216566811464840726619983496475770232946596154591008351869039140013141248779861733039581632819099091579766386434727795194785833384559492442358713719219965672724033537431919784218827987305324919805356512903215137029423082397112659344023006572008815492648724279259658025088931716669853982880879100329686213496129992559515655124525513547083211122173137467550027936414496533363065776441328149492809104436829963146253794623203116530551982998612754575182492164644021827010163332667804279854984407989328396241089952805179708589885706958650696885650311999188539022826239727997253894401783123248732194733927256650749193234544708740887859429688919698472706311713550928742206680239973771734392285593721943022979959978338974395800301848707127929955587262968188813469924897162448711631917061231104237689857020836932767524159803455833590237476318511294338859194461510307683029236704748859484208079123718298179692592570982526214044778630031377161929192728337032632370934013328992085491575922663293878916265631669487602737090839509363133231933282483132631718376780380573648349337808173078496822272880845348064834013780704218926312098639302154548868888362534425287654969435383180555755014756417373921963699665595716983200630752249390807156003809320619798076882223171517013224532223844172381829707513374410014551776461714012378014589630713687835550036250568021412478138510884099793127958957897868516786292699592249713058394652171207216024028966338990495336382143968114686659676726372587570340787059313909842893922399089755850679931548734928508069491227451337271602377938073364699358433319951476849217996987965852323706830160607072001406671257307154891769204168604870048470100903497300865275402101910483810494284825221363144120712353152973413762045048748425190399448223283899151614000148542902437798368060308463045808515822700340910521708466439841245004504952796624872634361160339618909971246752723389639998449372710097248144687115468139304393633258304924563540014589274994629505989860721523570250458820837801696639630363909498566819921129590892640801115206225124906209667358853696373975192545419256572252694317293890307899358384971312385233376473046559001453475824344586542645938111774230261929622433634693264504054702842553363483398725828881929477753794655882781762986191931138263859293894298241454639221946337774306163323908805272547493175373626790615190318672621105006490574415392991806862095177716490699798901963781355012182664981136204561681473331898526400449364211315171709463535275009324008831531420129219348545956209929523348060430548571489772724553693739096870682887815482634317666532784207616462337413995746331841141456563479759171591306681514369866056823657909884078115897099116680879925038204976279907697066700024437211676728611325386456070757716979430018774095905050111003444260501257906847594434464927890505861273195055096018709683492488210248473692094289474760793185794539092664428032369162883863364628677594652571684619660092084264821807095840732632268243199162507677792012821419510074040450800732404958138097212430043498925457708542182390498065212314270782344627331711123888225203228394048461456784015251183773427092843023220067957095809280592932978427732095298833801815938708187662496099083770087136384021880841337535515460568213838827777851686993146895985283125222654514203251382985033417335776870205928330544746061640376067768551932709148302034361857385317648874460709940702937643597930319974265608536443546336569170020768471743445865200917330611015194023204555562964049385177599249361916479544635818918589860965155399387290473428151685108760974801796522058198773215232306234502234127257965296322910424116022162918253356263984696340803663721169476084131786434506682582162973500816166204588794818311562127841361227585043072697589827554912677724273278293879134163067989288930119042911141861513412514511614448604189610538684084454868106465014574530055034530334692237535151654598497918361696440751413947089270038924204309493123713598676951426376891791654815519702312423197664512199652184603446882104998689831265869917909782673367292459479030727442524800677526187960829627289856215951759859457808051881874840600001260839268207692872063021071372526641156974658765245150876320770164654527936219708790249168442816149015487193807132042694222884341499834207501663990081849546569193522163634217930544389556315855602574538232708392823409292385555583447283458189519861386228771216020851252305914931064719982304186714822158449221615629240834372366932542022837836335798809286405809527460221818243341270545274423265715308368861436420385993012532992140287027477888499843632059774778553237971888390899476530146856867849243711996928660973741806809345826697977836492613867339721463776164500619055675174402155582248360218013808666103775198624791551003407182699128738105214420366407246412343027964992109573931770609875805475705169148306885906497595464224020393375843853974016609537784752683392453676286844037629102872650576785348181777372566846646265568389325270323084684723866376628932829614612731582913071797597627247362052655428904077656513508724329473728639720157099391020120338834823181735818190385647118839434979105597132032799001492518982775088363200969389877536804305619781784758225874850406579709776685421321340538014225708620332507389587540744732363705746995234496605308900065331235272663516634675209817304495110193781798964165722697430754501941508504341439543473249571038075462805404161934110690642066670341403078501130773799152134769518128713305170665519855267388942443961060286942717297462172072158810911425619103935654646185565089159114984057883591916511690407474222391311916605000783635444400673750384629636566922551577795291034308889761791818519550952301540210838165649458104028643375800436607125760885849807699579653451448091069693295241448049648083133287319729727397123706069976851163408922661587189494626421782777283696758406273921549385197655563951677329902185848789379861360874376846854155418637652683976377170657077622894914825034395202509671996865001735649003479298840536930369331818836958319376460221530326162503674458167861401851717006582697218844350519387365339320068252664901944807446013373365553894602160112992370365362994127688468417567157718942406603543367994333318805063473433183218221505785677106046158643878418893151075227643486654206942518356109192746844211111341177174900846581614829651117423972440688412564005271732004316508769428486046704689450833196607054155382182430353077008349201077867408250986697548031185865931839810304985685521379778494158737131973105975587895924404919893202793125143609628138812764571388508837929199019147513885129556213623640629012830181455383157872211359786350830068602074697761812913394540042923512562312237116956908544582362147193587661325881191412576081769847614299975204727390849598160992591234244619176564530612850264975179732809618448927609426207104206075172386893487951504544074795750138549854150893258217839427205754113758912480223025630585706972498497377973158193345821575298522179246514718347105628852778230747092928727550589097362130449091661397682925562379451909888171549084307564877755466282459518438105042875179846476491081004857713156811574869749270537904670133339488892426014507282057791815644123209437783012153674989961115030123224536767352290360443929527855116368779893353084377603351322682307983487313643975901885349503086776477296963367473198291258111990261991918850862246908604143478526126244268770712916314922345076485646858025052754222016481850898842958029271458963727541224410532805294438379555380288060906781702313764007748375926764357096628933544342712106353988247294169498925310339899972892296823000152994327293085667085175699369827138700619920888164451221929805996914052544063436342328993537244542226233556967346502525701550319162446362979132651479522832186007249767043364957684633476159364424069517420947176688887881925496953686950754514112288268105269752845919880339365094553186317593521628322713108011506382797389755595228448126725486619934610951959725450404095466719047258349768673437926506177093270019237933391551808210268298779873212421359510179278417491201651421686725895427085852631596425218772621980077735064020308279436325932257362136036860574491406730031720278831692099121985863594305342037823543781290247695712383782059690379338434736094577073391303095960157495950012359955503269544397678552894652289219756432908320895040775832530721350435448997799035653430563537365114660763956020223247921045654321915627718160193332643565447619069646406854889370632001046634166778750201291727227676446116887375108065065745006532482843123370788340477150511195967103698642290670504598036957288659316228858506078142926534762007015971503695389059527850328787395596468079037590718234308713542561688109146593841244517995785233639128813759730647398505563093919269846270239876418850112534581027536343840390180191617703193748671942750935378094061646630079342926799478452516318917065481190122806696799818860445451920640741006428477130602123503307335519336029588286053032314203892007846117325827462805205730675853986779677333817821302427919656432297478288975497705081640468085048438955433987558302383029643638759214838594935805648314838620949721093125349192375876308372594957619189060224204711109585154678234598219026881591519641991144869358199449398339488331591684365253290012528528555417842331956146754816729413123456111757912067350047741646429462838114859485864886556040018856883867097274438461921790544535366316184255753921200036778777733463762488489868783721536730840738975082711678972031572040883188175461831351858442289503245190172984147179590024894968338685435179113010841827606954170432692055353391123675775543323599345603687409923424428795762637095180051236098638963738839846833966783241506634949652813326712280816103076858293687595082732203490395292569980097546807846701024404803938826938860283874020584648064818866622892828183909906819132105733330139473789421516026721560456328786947585473971613935688972158417523636312583760232937571183046566212931115050381518228039818942351697623832012479462917922582646211664877228804927961621215742115206812938830103821946073116495342666830064966017568316893981882260824091121442020012919114577616334910306665875042717644071677197598558438220576777459734480656628897440535542251455252375981128016934090116397876608685059288179302399010806930959120038886661568824247398732693973959523671261040054695585487594072894835723089109519242738537818272418934370038139695077298172166963233021750531199370216951237158267034020653775289584226360739765357916183477154343935153190046175980535605298992520377835148374647860945402673746766237593983931645960564534615234516851842450664149472842893886483916764899110970397851312924441806378535979873394274191614712651663820716226811391593271665977051428790204945863333237367396703985490666382379555034944740359232329730098548779057765183972189393393013837761868501217653141670163738816745413417151185463658258487198208640892812855903178001192363272229642720693773596706502061942348372716720195962958806884691861427280134061609837674031707670054755983155601441138571554891824474315054721686663370048127207117489374437854472164128646981041376040904970687841034340959541988400449877832382308345848640740897262000707527162783006944582322701445148289998019793122508663085312564269595783398252235629917238594241649739398462146681164896822836626254098301218344280387719903084672447479654459781892668823820050954340031747852239917660651263983727288850318817225383186421597687019240384448989315484800958734638894880396015912235572255544073381622672937482648778565308055214370320644865301210745484212999260816983571875981585777025507228082882668783942026571350162893116601028556273178350987888958820398495918855533193800421089543501451873021554225804713532046538120211797973251487202965323740344383710973678225138333792018538530421205041401622097714625293274334657405219463108742034019793326252181906543606638790989829918263240848677116608253266308312201389599561770343843242809868840661169537060683269206107521876324976233472063625347940785436349385338338095409311770937680369992765012926633692453610854553291307121600928678216788520867211882193158971622908411745666668147371210582552105972467538209230867527095889874758338645988494759823123134162886596487983242013767766718800657886963273383785742033100031805214766836604129732907355481189363648284110748179631856828137017335269413843181969953997288128996518951398032574228169479423859469102375736464813907353842433130402370271858826230159692788407051365899982316377612401546988480243513974950168736905924702836448206618276374286625902161136467803979310431326707824061535274132313861121780912238679791503253270351331801505520013483636743160495722862079482893485061804552534592108523456070505540008951793243309916441782938911082566216565365939539967498957266756127746005669055422834013904958002165268987740133165827986603182800313850133358326741708273202460496812633617228000350610601741786339306120642453692245257920389657657097476866378047322562111603560251378502206644800386066172565276405611594409386316847547727118945933211785872929140686495033941157341229020093513755780421020298556170267642874678376469471274638991747156135938617090076462300879541636706007399802554707149786943018912691836963848211870756021613595030816988026093318433498679014824722103899912512889944547239128531366743676163311453647858037009906004593461252459732781776005412423514684474872373468544218401185328249852882792537798114349194408505641599682799705997841834739854574511069530336467964707928188323039564906679674584483230881759496491661270369249903737277121219726834318956998956414806551848573153392714723505639001395730840937736358481397849512207502557652783676357406907580665346754142188877559086532403581878813721012380351773389944281866135526024649102449284229544401678573534448256113962168320368203253030219817538423183067724621244421984196501228743742958650553493718718957503252279949813579179178106488422520443311100362775386143524852122686956109318222600267174740637297918323100645049004408129143523112772929624168410957152659352908462994551525971150208464886750952912211108817341574892928776649846229068656014900665912067409190504932054723454920847461010059828917531938431685960113983297826338912428852177433476813027270784607122456329902736388318824653156981855746019545273421901235077211112828390208848195618409696846951376296803296407820588164848905639417005094439167353290232481580741337389476690523035707827309008295406004440149967724458459961210381290795511350226777176451378661837146887882846591202324004628706995475758299891098947883799130013810397345568412798603745848159975938870364059801117467089572436562799526582397546013875631081244061265454441460956988586123162829521055568647158149383118824829320056554289931659438983837566588373906292362321421554326623071607976221973461330863910265792745509751845743287638806877198065206417566703962631424553128238826353409902121081216927321771121127125801870524167880206382537338009264562193943056711134032216187546751471352227542263098641204750892172352695419647714711805024522369621709670112737429113502754481379984024628656350697887192278841183863145246887676736710795097744559598822772253141204436897501123583634337541179399342981111487898643508733743697706056028242947412624617848688594008567227557534275092007063854037877453921811173075489934473306580015646462226094986128231521037976984541401146881022261484812261004197942887664100971553889591431489750906911332190464390191706484075485768773447820583294415153111718571630432002545959947657838668718805553746186622357643378135345816220432280554293100428313051509678100234315703850775148980836376903822748142017359770238006326927303718014142724789972085668612299153880818682858879986742662174175227123132574169419231609652072159720506208732257563475584064172661389703105132596345979472680905757103729493875739581264869098105091169889647407824502091538819621202640946720035449809883612955725757464078917413942636756963578607720478225009367707597012183865128473486304749746456641297651548870869598050354048293373187770293326673710498861669699151280656991672483673598162170322171331686061634342854436988888113939635415511063510510493604482947328239660264042107816610759614339988969812157825562962875298034677561355431341928664705266001076676917404476272607683754289511349678284157654547883922020204666951686570946115739927997975568373590127352802397322624657296354456357842625901878674433391927436621823049982001463166910364676305609411834020066721401439684309662438319737533491186632312111421890698639002122847921133046368038745556243923861658755140766847663429300875223426225491176735786465431634295613975513223696897136204744942079255195278127298320470884372178329481814173171138384447360992832920049794882947723035299357149495126429510236279879296389927346228351299708736806448646460886413476416156528807296552476394709603409876881595608760662864662097962081651735480673025634387452947937693766485751493707582982660351529101720995966958154553876024033989502210869549697057848040267592477865516151970348226017587852273917489347878883115041337902990137336984596643949825302475200436495061323443143041434896761865022236629443573647570844010235507153910934725462626284760491837361127545970476580569679495760000451966278840504059242233616006443279078804548105805457502720684552981426349075546429712715306230899879960644347760466558061644989115458898863460836462152278374590743052489508101069177138430946840859343772178277231508401024522424530919127936433064264459519870855789205928459653721993628791837073756194114173313386276600638008499353466382945736078486877485435184320193294561596355145475938750802838939031517091088968476803289586953353329201820514643590154451348010323527751692457092084516573467300178375491376197188552084353719081068516501292111232237163002757445867446680994301279382995076102059907078022521290509650889215326936118128982002316808262262212051990179621140269331305394358302612791594861925258450617074327495367159662345905923988497897364708558113781690681669035838118118197797339832314053336936585400500247801190984594800855653985352023296245669701687895414884144749998349475114622214753459567350211696239344489344141669423776914364484914485181532948174149023456585011501385700279636790224147693074481680321289183880006246321676318593721439683592377652704393830218150078579443294979646720600793884844633245599584058098699655546160465274930296350062562905713835317826992242961915825485260492258376116505152648592259158230813132355646282117563853194542600433355118211582174242904038166834099310927868020776429735683832226314104576496990206526858183183272974311062001659123164988225498492893522308032016726512657340430774830494524760395435025903297811997023730164166213795391186131963314492160590613172780450657172826092009853032739462011448053730371216061509424439876435311637462638673909464509818602969596926565980971182120347981054828690111089419822807175324017722007276916971729078144617018577696198870714498260896965446888440004701976242300680714216799436283489192423953783312110157873342720680664471116407714264053472970633539521381128733277307218955466506335217308389114202504479983557536815817644313959203891876337036578417363335063317478881146402726710381969213502843324439569519752157213515599399895844060618839409672319768493262836247669096729181313032793206175378843671887983411013182204046129293622421199967523113852037734620980974240714342934000761215461687399578428914819438379290779157810197981835268262062349674572335372045781216423837607502662020416152138461157784731727195146301772008592380471882228040340785571181623657168476808033615783526511525597505404915224281150780426671429093399169618408446988435589063240038173713941979613416243414657575110998735599408161589916072824789679530077275985986507829088880280622048885383922765874525171040888880864784206934772785848346088015205533034168403062332260188610114731478780730867855525120205973621419343207670005740544821339204937661955920407031382193427224459053211792305191703469045413901528313657535804130153939298160723071471618225078966036256579864913152159670458712620210723500397591337024760669381109742753548794629261218122530888379868806651290542718924721143510675738792503243853550615637615646152203872872760402000472306020630879736156786915032524339011028641597491102926160828871690337049609187317151667383811774079831698767631070483068998849601924018108937479837318807943771269452926673200754534179562324867530220589757234482727104552213005493205211217820779042434654149217304604025792960976394525487440806660247800930528401499311105847915684631707531387635059266996175680494112363684905033037493567787905971628503503472908072560406073006773784411043717093797579290984561860293001960672653953645191466232369378874938805985842680268694504338445706556355318759437689142436581108543411969301096615888195857364025676618376108509609623251677368752046487551649778139983191963602780524857991982362557733109650689042139139598709108067991952183561768324834384498237005948529569044958799524356836264975018193652836004146567824259021597891336727498313159581552788388405381682095021126316111626121887734101969213333000497121988194403188566608720357279247670545063590394826686954657172537603665589910618830345193573250863360282399852296422254384105954377194667697979485926278606728692407086043728968534046284774513585912267253026328626465216033335849684969840159618038647800409364110543405260680701913353809027625554149994280757976697345408273803093791863770557841734506830268002832849159750855200835986324085076991014716803139926277135626759989077043259567674806761235054719860123804565612666684301576966460165267150315691968859127257913186249891572455185088176302336629458241081148970557750264829377226961810399124021716236182530228076420231910525864250650704709645706652809039319882857467283695773662614327521707147443071615524371817847274972605895637383000743151708789077512434083733726974146394510079814317095713810466409153228096550470619780792712699707303362287652859568609841653500183816468658774488342754970600443652289770719097595048198501811018262182426871507452730229516066278420543902832328649445333489725918292345541620963674034320549101566031351498756568544973689659006427684446022782844577643954677212672464099253576634544741203322148264473029079556571803795237634534762178538501118768042968005033464962788590361291753827817681057645900517785628959440019191164780117931841085875150083867625349916750695873477155220688028231627876726495394372682289617429699645923277408340570001477694404146169900947893949345689124523644681303145768876983164035723744164407629685372425715778116041096897959874653806104851810119827372301804300340863557200035158780146510112880343364444936668099918295450001996891985362550780791628955309836308387865349201289474537219664039881510975654797555164440657932791463791163633709724575571734642926914225760164293411948677136230331812898877448464354593477616850948888424555744732310949181412021394622260084002489355153883685423946907251744986248739278368252101929056161770817604260014972477925465401760239842420188338092518612336467241846119635360160810689133602842100352144262759272116976516299555196864483648998245304129292120978908503099792549171266539174560539349394414699628078449720390530457228863486476981901909160049177325822298327548227565577958515621621983864198207393974283394732024458758413544208840848443433306225731318348710453009100288294985861285481300663899184638378673520184704359881150771290746638580603688097976585531928101350633940445142019771462482812383880545527881276544327350152200206912635051046329838277653787793227319704952421508328495071996024154488672384265716496533569785112985531405059551145457899022336894502838501684077858491111234429379987863640310049734628458148154641911980684389858404520919331042087442946180338183768853949394758158132177353188341061359281772104683442725817799212166974960003696222038576912728595678735400869986488639867092136851488358127989006866761327415470908078904226826868942375288541676243452511556480148163015276436166198304510319109625249773912170985230954069448536858340067469792869698715605570232001607109102742560734840520330915453603036959302965336630209414515537450805753693167916056591361430063710366292101858472802250422089089899724586394874185377395243954375917837827506764070527916058264807418359329380633507920264926812839991279894797401053861706410688471690839650298705393671112931814468763335565318977993636771143535467237625594116434410450837631858261070610622915697687729549975971926458362595912759131068671033321779792866511996774433548134939381777123605883767880800404978282108313646795950878550229298876188504417635514158814693045248280105838714836557224383669731485008164166894015132837853843259840537927284557368758402804956973417577254858494297167208543455793408004766915110376041130014691629648746438458049548333023583336596527926101530976985378480127809256293052827431668311650817967799848096700805552588651194575857273288246708770547986244375667793392137433966280444866406739892934844831301301090974047148299882004656692324480299394040489037281736981170173107858209852949081078708528580095841436081031235733152156420405762344669880696351657444478662302958674420645772119055060110806084250909692341828255992229938592364425449393391140678926699565128033946564496125595814404737829877783531461685803557605680631068652927463877288565729316344049794942786452826517930713069082594528753654319668322554405407226502503217940458152895443969795589917586240392885264313974334391281201533971459192378918362046439436927768781388002390841099136004517927913661482640412791582924619750977594646921854681662227173771806607841218402403561640037812252918941990808923159849579830217120011897947232255705891979787613912810709776360872826086473173673010299482104373902524380650683978886157615689261879138067960285775635117748150028047042913028439387798684174599860886600110584118760938538578027220412907422281733970847451789891537933136635246136234705084140244230268655945454343214928818341641122356932223953789117618746623654937354221753023939664882765864917271919892304432549395431851469250881210413319986845831258289677108831775136790895390268147943965580068045179861959693093699678117305181703985075574859974167551540596146688541192087759121374967328878972746975309597572583065524352326777490302538908478512597283020154608245912098183937783365603696565969339779218800481698147269729539464207652281028433968392250752249663746606020827595789113486073962069713337246362270330795854934076265918201838165781347532121020745237348520795578104831667246714530044397945348834208135802478428321077372128025398350481501727154053762216983344343571267872048211084865706427114551449354927639645976021877978952960596186156105809269391330176647174361335195446497379915303193982042475256811129684359653023827399121219907427180964974926616168407024810249286941364209798299413121704185197619367543843091987103528195270927240962468279876531958245219555034348153885954299140913369431102862530384837882889253044640403985515721357293007722479931801702947748370511313626948039017649974282814181009396634724941095786062494298292412670855224462244752528509357619373931984347621768096829903225293765518787170937230250602385194728503897634435957036259615690597765759195374413605446055332905307468476418764490272625987479755767655956352612020570362775010632731061362655802999619818399913645563113017485707293805807760714388223272104778490428630572807360676146829817552387635892943067989066206045924582673101723475748254844766504035621590191816060613969231572953923990073967543748323440926100127350435062323718199516606783655496430063202090463640141552747646280958817316472009425912171205539830691770724922162642631603208961317782331589800109735128275839871515286542563061249286966664533585028501035308079969844026823843007853558254475119674161054942172727578577639184532163221075341759511950346973269137360936252790375173138649753124383170671178330903777225968907325591463275938830699423875761061645655302308623553900438418518485547125830440036343237994715657535484514789918869219343309775348255971069575173867038573112043088706124222448944147126377172278839373041216021469050736705056539915791607550621056146240098705640061150029489727183398991274886621639308336228398938017858569758735569907576057730053713753974464970423218345106860893871240838638108306755684614799229575731538615864305047712459967056287496916994648127711637506820173513322588267980515453881040090358296407529115226513591057466339174543238340321387478729725939254625631778485802989109678348627104093534267750345015075125485140746700077522180283482430334871001448005924734472936733164057354012628306890262724371755609511223468644414944397320528461123360032977634253216390612748862796861312623823825641762520980710842958658050165528748880037226524370525015618209665969791550541469654634266011620791480998893437890866047246020720458597893297748658391880328755305422773039365345570291968630097313538497570039306979942559048907975192326861063204037358249303845500366213919712623172714411322475494961892625326005029275159320370908047237845202204593682539136311565690487234101647086073144962546504042591935919431169099189523367438283488832231475345443621461942639310573794902518420381814984766807903748113939102151673395596762645091772088489926682491982885641709436639529294235430373479025269708942116470726593813768654311722904978127338155831223165869866998884283742076310629731569622696665131097672412302954309121441486204203572819375623898849191429424061615802210628256227125011036812135844019557789521049469584452388704892645174450335583804834380496732748247144244147531782397851943254365729985651306558417170372707823120956433191897987353625881022613387929799272721495082380931147193942168454829540119909788478686993949543491648556584313068889060097632618379275278635751240891441308833104862325263689321851359853365726558676916622583226982354193228158883961152453867096447393549159286800052610862264654761977161527449762861022263880400060741182789734683511596420194618088598390591799713562809995119000790520661333521444550757036849170911957795248457886241198733674413041135847695294298701824899871753383053723345048492267892218707005552980374593944676497821785509969126919064710886405604677168981654150624582369050067626101327441605761428584679381517171684441348434424575742352763625377284087049181617897376778025344259695603098618204093514753687685968784731393753406076479972639217627871621665042134445936245334698698673917520619042010595272044283264025373837452763428776071502088476137878971639802362943085762630169073756019839999328669942347474705244231575081868971662741176342287068359572138820590896659560299713842562003769977755384360301534952382852109204230768104796922280660556475442756562770808724905234291475126986744143390318789011711688013196206072456821312880981584609357229527441255711673122412698840760056844951944290737877450209824796791217697951537878684061253439047474603646295035133071453097264055214620874371915068573604375303276219740494509973586634175455640391548789026670916855479895276759230718903643567159919084630401066244638747866688395072647342664031801778583100097633737899644519087264449470059071451844248283394302296547424326612924893635447354210719420897813533334222417317743279050192193246799159978859220094641019044653427448983919541259205322488818969170194107520490667586925856342575561613664627366165712624964455220724970207458462171302356935092964541013763571685072901548911391114721832152148772236458407387843263930365540590685829061981523129510162939225535009870821933522754306159078299273053078753796052324693082683768174551708688640259693866825273669914735452865868981824940291177050179784360025438208013790623645475354191464935363262439889502002016665477507741830948478921512394445468344456157668581064305613456635034907486119956031166256983949750344837706839553856011357077561574228563519395296547350090315370651152675560447863091108693933226116828001052279827215915295270077402972647011143524103852588197335705995420159035408340033285493353953599585297235267002415562844881078413190064941610863551480668600533271841613972239995291427961701994471204594744786174992329532806441967339538876109813404583858513420010764982839207356192240039599680982336802237356695723901690650825489506344237834446167407730077510518322388299688053567125110765764537830427520414660233723901591386690071277594596218460708324455653128360055011173804001308674226865518162592964719178725471678865844577980092527568395718278466588619368172460457428133408662446232729125682305767533663643870081046463777499270052835762894640200126667625182487494247865502982454132369364036422778369725687143774635785713220090422056279014676844776406778235300091030759929115213821997208308883955812710335277627432454486677176638655989549534324833180928084381779204236006906765807828351335452975846231524806516921612542453470909425416678646619365229910008787963436274485837270059493451849217702354740509769437713249005982018652782892104291160850496524261448997954629896391647617318877440761846175846122430012016846122505211361316196381607189936806848381950692027312652429066152338208023634765195878778540999270579538992030959510714049721172156538199919437695668676168471137370252003055659890968247469559889139214292714929050222489569460416365294896248208339119584466708874158906310813541341059094554510443667428967954589001858966382135218048869955512783284702530036668430519746534652646997591499560733221670721722831635301703553841985590695081106118505994897047734003631214228156372486347458895446844950810760720010139885546347958155223212473307190275793013277816657576760056310143291176914926016351953142918759121606592519589406857477095206045856510415081949651393645774369324454764964506170756445935239859277043792256027085662642270333273560637636282892606877424823625452679696674344792473683028372266702425655768186657450678335250336612555056603787901432920659948945847201252125445541990989082841343806234595699790108926256236668303010244783354952903004444581016131279936432694389727468773842603326162620733356689018320461921925667851415886467954275126721478921321302361191830891783543466776558888822167285556094867101223327835538333451122300029300105130881843448230048681525776877507147636099078068955261239169038039336425134130991329480248072762296308583048609743836545145711029724444718843911927122945370809279139369398193799607727514137569363265139145879092746786465752946670907174960838924725904816443133345262235102871455934255450585929080773934860403308850806835875383287178152766010315998018696230080760734784864743104903667338862973886410170692775947537152699873734659144018494953606703010255637623480607386533207470802822211307667929472024959201516929161361358258668527765061662046245140500613418401212001398549741318456466254556363316963355448601992088628007615390991170900546728971002542372305167817232028392477111310178104084091828641046596910145508494906797425148817291966328664971660895548064525034232502307136489414951218169259123892640180123323922619965892657124212574345923595364991072433937809024499800353061427468871217756167881881310122591211304367033040580625362174681714852001420745316216691043496383622174063241099466676158110620574969312078469400681589349907897081211481830702370941569599041032251427811578332635494982797782068933468555243512396737536815308298551550467242296732700661593407142284397912980546614548606921988571372361619828614362125447962287211314374871180589846740862874912882289514169715088592889428628263117458951104578695911366751458425572602015008427914992567987291169016791375102158874191959409638266143745964864380221515565406007433736169718201899788798547104132755920750947243144157589295585534953325550741223901104246375675730620476836074185827202005664308911750842939161505650602449276571644321237863440170420615015167752187932141185024998343570105593161625576288356379256462000843362456232291055624550885137878632221480830113633443222691220985243846761136647284971657281874019959383157643338756838080714885244478281516231824380487633538791543721758560525082558126914660092325441144917773112235715300437788222094327185916415984128002793778506142257940743202256337340624666195978570214056354346234325541402502753211462931451606426810466187858794978977436795384986697598281440734393812063003576662639921830461423585266617161817532633799416335463331694125098330385140878235507659560777107279727633466066384791667087054922576658107455238266029902921843097803269242191318477994041556693928895743472302992087320207445410923859794813806329370740025217954007821581859276139089829303766149484698545954520464844781908200032017651395148168837274565129070758931016298280144513705043313578580082180315297238664160347388326586718181878780210460497140851232014982161282665510627317713329391711042499147747363674951063603541264118491845914356509246889654901687582090559517172497428054843185198388603169499950385740798173438277074616871146035747532934415257375082652679279644961747932395477563038944032676929463809534198340462674795815936328287063974810759057356174587335448594142745686198860196751300726730572883212301145885422169588615786627737962309338674550241010572415401801661612007163630035361635350374439862122398010015605149079663346403727503012739956891887321885820455993216872653782600915992025533885016416719496871998072969184560861320713981534801502678701266263302647110622156654474955413274389420172082541879876187481846983438760870258312451296492712341928982494266753752068419080863376121870846845619076363427561362292683559785924411524149818008649391227672945611948130983654810469443372128168129057251295289813043028860865207715041683467885197877910293670841059665108844913844409406147342851215061232238198753892488153841783317018247074706437998928154840924689799069607564540779120240650880325396281448378120466654984654002986738977269136426109121381067330374947312110707410657261631259963929403394938540578662050094655933912449762723894439127498465677746648905897828490743957900189231098993755028597839906154772315169423094063225274867229324076041869297968877045839277321221501504158138375772677573829594229425439815084392950572772684913507492242737600999941953209559846291626726906381451094348036142374840463737347374099428228664475731770160110745132441390761514125488584308893692725043291905801240455732299160646039892948318272389376914850593693823256986013681742121482302890401509974418116349069604923587644033034925640530914599278135145878096873576578277586592938919887251880881000477270799980195396980470042361970821444983223577310059836822162323202948680435403176698297664645770728369523961530981725397728986941133333131188533890705857903125789445824696760082976511581734985521704659223693033719453920354276971973428291687773192716699094981175382660582878819180549517186427674110516239787814178735814851007961151462534157094198226129895869512423581395863004206311292920491874554515691770507047155198575960261248027824777672986194464720473394972856100956716869332039125822292978800548174482869043971803623705008175896382711688840069032537439328809861172289207982706060567896640832367785882909947409288151390682398292768143833815072983942479321985385228304886674905916840017074190207124945063131712200728147255401076425265806172843660885728366199672502166493561154294877978372397938364792580386443324111529545907368023677026280142356148872599297224245596697455757329855857935448625232491421319231573043527172073720254547062407768693310667426646870391387585655803827405395916931838803512856244508196790732694856699400231868066561911541916773464265341476140413042271940163154889463896786709174686232976868179531508230717112820124680780175828405547954576558050657226604288819815505121855786120312882734863594928934242776992441576059310854933126741003647800835208957262880767274077671029786062633371669148896214147491233047909561430995021728363346525306738817741560069727405034966062427235019992302921863609263291206406039507651994361250206112232591554102826351298721110983960624260355644396444135290480152653112555283114240135628472410526897871873656710365437323798943880713755607127145665645727423800011021159625463500432460873131013069786585125358200183157396580158882048504602937639972896253488491480167279625171604062034289477760109802713376101174217919749632385062600244659460740501604845576242895530089833721164670580834093420420247151996009065818281510145924777618055180115567771414209681404572000424197293436736556184579474740462661473641978492248794584915576159772239770705690117563308267066998614250781961419451594665114331680682397341464661632119033434661450624328968505460682331203360643542548264229021557624218172411935933792904557158409059451869269638565436313345268786739564146645614713285273283404683686969039161224358400166218266106230624372550028523457804776411285983632879203738723058866356398015312145175873438317123986984401487982556794407749217005008233200609994625855295174772670099921180944369917570171365485061492690413346525824789301496031104386090802970681709803749802466190959632943376382467743343351578515705594207651825169353462238684510865884258075535183875147313737675445643032180085541550948103153490855566987778370917992238347180623785956681620500354966411498373364163665345982592762705442920704599412318471834129861817018701138450260056546849818645640792412931510643112750422038239535962837470184378472155885894912790455964880368397626819489396966460191555726766975071318067217562029583979336639113447049247887035423904564142876169902468354804277973652794606576816413798354801306690548042803535234621206050032269087282887536051671542698329838789046522947244514361181017488812960320733888361078605092151718996267878671004158835923308713365901396548243404618445352768175813664094479856767444614904699741213329127509599090868923865745191470359267242062643351758720131634199672142017724690245014984886208493633249431480459446051390649545818198327143737709420855952952902391468961076963783486073009299018812328891437032183070511568949623781286884724565493586341084813605501957566949979981120645669829435466787699174820561998136275433800109387707599829666965847692159642183903026356725836725093070680835498487716044793872590167781031701548176360309034621551682947885034862773500932910802416258338191367222854965799111883984408022910643640356386955212144454451700834159494933432694679403207421862347674260718002884526624084868598989053816198029922377590730916691103691770823512568067213554321223230743269594541894358815713970362473291205192138799835339090670109387387211025586817055329508726850742699092276253997940962695622742096135337065145817463073314898660474750786776931766843935562961990429353762794869042314238870143392597341514463601679437306949302430885490607207559741587832442261238091131462611683710862964254279556965749577972301730520912352209204786632374627419566261921543275390545485428047595870712137229238824548260492768811908601338426762561559274137804674946154937357421812513396637245711407085125648319594575819704163292913590925985035912350222830479328578556607045000799681549680631902846904031200729267817444200381084326854977601483571007769795030891365525771959608110477364980698531757501114290942863151631169247389193247534541004588626811278731833559336033759103931204856283406543546959093787581752064561916104107353118043866329137720174105897170116515455732239083172011337757302194656170781815444631936489339302270522671946090287682089254080711744165599804223528203623646172068544997888003136498238802947139612108944033677982803543189407420506973965621524363175257643983271241260150113023463460977223319848106856818499622762221402134816609512364130661067810734067883781578018425129106447643734183159427024883401305127289168437676553527386539657534159033294036635008163223268993031396553259775631099389829491985766112988991865610972489653161984882629738529486415319209550477518297937527337129932636411059665480622726525353433507820753845412993075048084901789596876348426258405121274108339767282319835468407704202805178860049938604716988920119104777327859793680849542963403518287350167799080246241477060361916476153044810398228890988210941013522884766870274914442197272825964479440467262708602517161969993979757919689286070508743895045289210251293378023491448197794615005953561312018026849733894567013873975139990943847420451494053410384385919161874632238254771844621291740140102154871070563064827623976016132467155792467627389729627248464999090691830133060502206958611338854901299316253251774094958678818146624918263021317033142821506028575326572708266245476597635961004569567641081249497162631788007160179600383296169985622708571372787664934171561592873624383056261037984022582339353429862763028914473779378401162622933376197202716460349283012397093966152755065623880415672321832639416108057742342016597634152434459198760877441559351252508731946105665126443664130105596257673674157517021241238542851457357960064474495038583354792224391480255966175783771950916841718402340867859897856055431495756065014865545865780543613779352541536120211794866158112451823393619744937601289881287016586112618520602752747282381834936808437842171814787528810884031869161840243187890801615745135609456749536543615363096780171336399387921373158204156818880373868607763126328644703903316767698461740513017950532307308327303209445363239050844596546865387384823820096991421711680446090397388272141235819988309837472578393967293490837661777271553855224860670483630558935457833600550701687984680701604191355683991560407855085602430412030244603459058633392421322177057958737666271019532345494312426326038343411811056965994494771763278307604926903721550860211502928214447011039335278662838050692819984306863935898600165749472020376747014857919453195363214158606651058445046555405596325330461982637770394018544687733161199584169539238541918809416008809050594408003794910786137762619439923769482825358131299472799848653625136005562479403317841508535670309433366101690470642134545771080261340983476239281827152080613070427474795580794223075260396785587847443313112101652770879009243852274689960272729988570938298474213594590083171159226859470914792533880441653866368435498962696156843349274555819789015345282443367793425063531636949182557776120286793040063079584258117246623788393015605260837778937621700167635404985263631704233172559984714870152469897117940366945835500257395602105222614126014948235555557317345992401447757213239728793791231101257597745752868523615563082653130512318563527747834714069719613605535946529847334208690900304558242434612062021003441421882735361523271570485551917608089994325027551243917943817345839381419301787832057900046106522963635874021157376790523742567675974291986553059949189716451209912846906457724559990545245983936250451430233489108757145287410794486916399158187343676346909390958354008350529969746082449717203959346213112507577886783655130232406986613791824289632755602965309471719380476646538544022241615323611289134154961607215065739710886634339907704240016395283688154880906071503349782605582943196232370620259432512783054592930015578404705106662745019581566148443382435189386645952840844728082505640590774387431283049754679690932271452830265296178812254760301055296515563992754186685320819665559485225493598597443240413653900573758882671964769491923015646952299184877178761883027070028253261242140927856091718751777008489840631386589660496150184208014414097163025695778829133668301810526181837167422865230813358641344229599765062206738007275926436263983369146407347238214260853951896639732701361190232724379544682012921442344414096055167601682324952624508967080382617384442876231846938211345785546837242057641270098937312798774235479162676754167471320385864332462886599844818979526860133734884714592164581251998863595341220337283878782052067429144377428903751148167729548476505914892693378182213831267230012513041844244625710688559525918950174311038806504450135188836359258656324647693682482547680429282151715580980992542760468249787751696903269963539136081234650760291345135916213131397942425105071534813301985055351293696360301116288890606217986124969879344962558477678911950565573245833745840216192517203901738081902760150102152594480095130616506240734669255206766755213090792072387196421110420129051566075232373483770139804508934861992385428713703639748534035516735848759201045310152704989314712204295532458070716802005626580699125505654792824941107070432990685243633313784516428758473084217899730552054945099762458182197795530309233772260053851510352564239772626802419460310405477297228973279711413061766195178905183476302810783963470647820475733091290935487942115218785076792449353236304377085567106466392445826728726045082284092515998059947122301923698067311147478784851015653861288258259472596439477636097170572789399586315006062697639706826881632919765759406683148861101867407088237824070009934846975046985427227323132020297648796174202060236246717933290302457865080669049342389535778795936602703462493418516953897974567088688677270989041586988414540866412233331587868936961656689624637530237708968622930060923724645052464558474125791964234381481086750138686797201432149185743827305036854165711984233502846487003696859101729727857062401798734464729773242064933583671365533348479569498219284147565393161063926262020066103133768832529230790234132014952128792594854501888133327768289371380565264002008802018458963113583614118469764160222939602306468591851760467163332689291897973648595117300384074186068381755472266360547855412207276112597964728451369679774545237824235975180246638140750757810603333726500042975484075204268546208504881696536837571316521100069930881594491945943001683554832840724324798121681630769870902636286773889905905322572262851772038751111971892498093941158427944793448842618169799760649161990468968683049125666289247346345092987855081282428350597055240823114798045380856409180889188659340153167348769135792718488556743485970424202133075752086213243122796038042402052669061131205411651870784304577148400834680766727309671915201251880062237133487107398642143635016610003607997288179435489433604806556937776770892933575350373432750166861629319085163697905697827717920703566062093047783274918770208264688196718378158619970018615049943806725072241634826539970307103061717077291577229891723611456106065926266457946606765009413932000813572786645279221447219882958365897167378414304170241768636153399025306963607773856153222579385578494174892518107064140375245999087157031150186801181038180663343374839150177549964096181094970998093421054856843326709047354132507980047291610316917154762642074418224203920408378076079696886770304498321241549883850732264159782766805584428748230704624719938209537524130952781131368467748678916769377184199536802957950836870362030729787683056821700071419385409320761189204585562444610556813095247369314114011899352121662101163846813715052778228388501042811238780371451080163774283287823836530154414700660388213465392697428365220019939333114085326397653013235771037880180667287511552856028557525331223573564765716653733487575825588478632757164254873296707030968191471968435854803607586214550019245474729422940604637844729274060532980516631113468404483676268444944718397815149803003316782395089334334962423782633979890426411055876549337600531870262410140013755990528416453752082480457632578726416947160741931890975630722561403969629691724997255402521349852881834287588420505928414274801460580360929393826961226227852504691921517752918111328131469329941468577912130065242651793972648985814702895819343240625165259517095027893613529219359537877457125553884940209043282708752687884681391056849444322866579086513257412340997434270646683131520896931252482560604939565157045904213224582756190374739951868379653221682261520004702892019721110931229875623917959669753978677399256641087617157913148807378448804297101797671018043649116945835887938897522294232994086643640679819476722531345937493874681061905062027131625288535136461218878415875519865165923450714704477094610293169759470373811104351870376488833295164174188090207344540807854130461215831401339264557943648817154443668789379073658803704525155430819609950858562450903318316585611833151452547685565318170937974339501687904190940817110161294104997415166906059271803866230300223313991682340027391664674545134412507518953614708909103539977944829117184169908852678710154300054985688792305826801767283284760737393490467522230859509908659915521108334322288744673179725167470586731230802634996247230061301401072767589598624704440669370441242765246866414755553982896825129399935046619905530393676462694837822007098914860700154104959049575542667662794586534412882785655505996009511422157904381871075670998016027865128791973515926722892532995111825920710987836303790416568239641933089524698231181494344283421018219059809618926481196336421410082951734072474622189317047176642671096888406554655573813024688075307965811134002748854559462675206255579438188529099553840768990218617806219152585422272828919088793461125690805059350580440038571451335942367440063088948700707591134391729891959005848252551979999076033273463247110413880983564230618224348545618695423108693106583615827048299754164649286431550048620122310162923550255212596345639696580500196919813977665563192854562437921243812215014515049857172531602479002060691530023628464994007330305078722754329782326358962735713204804391908550727373585673796096662481778846508016664799498092133535634421774149481153671417611818941793890093330510726543653525619827006937173759729182653220443774826952384591751262498721243761519119761500567970684760479158236117701128191072464548111529317776126671664424233281406125995382722948821395073416794529566076332042065865594580751127197355580187572262099365150724247557672209458930930029180590386925976298066065739994887456666401019684408673999508879304328702529522587560654905473377490229393278964191549717660537535907143487096916900017748759125460319919165684731073420676262647771575655900919890821999803807870285068932140692741816587146283991555953200483045072847318268569576134465901365239418773109605404365730264356702194431283270694965910866922550620309765198966675283782032636704759219989527200468048755710388693664534714242031273850315267664372861929310643405067459006881280689892051580917405878825791546653760792105621615436103291070363231874565771803360593520299148717953145050976276806154488559724669747518904324626612730213292894721314858147118965987399034868698237402897750600297994326661571739750896856529701014200777944983889572771851572575531759015849315569942527200210372301578299841239911379221182814665638171804400027169571105825142322856718376869817839016481480634199566935347362799971231780260263236716197664452548805884694785445646365618788087675011049543533785992195100717541890027211464307416643021365984671553841797347263914180271427670518562131966355941497839606096151099807850179985181323714195777770515716000165470381630737383604844601965653435440082584270619806173018247334581948745203441556683849686945410687270699389441158637911560118410760472718324617554553019571080592512267674239373096655210559277019295789883026160773661458112614618570865558958089361246115446061445831073968560505822044517443978564153644648909379441618219647055332328183102146528274117853818029803255776432001874255081350195934198966102455824904225141298496406759218391503380594449211669292510571125890219292396946764757275756356729673386896458313172125061304767927543292844683446454089390317267304010035914551088558029111491116202749887658612877414244944319450101183234319539794365640520325963993472099146792765569044001315081178406784748685210653324096283066867572971979931148547282430428251438662694864511047557558649401303187305024631650725879583806306259064675584207353936702652847469008532765870625645611577798212512361680558685460831950290939236439530088239262908436108008900550720927301416738091201141591477301466911336290172330967806703664614147650906255792213736282569957727946942158100182096788589879215736041826473115878410170821563727934325650097732729758723693859274061837695877256103757120996832451257501649946029186747979578219863453013599705503315506149748367234454873016258246859807344862602063908718263194009478286113230337954687304549777053279196539714660530529678047308169176894232516202211048766336107302011143915137431246865204219649426798070992254428489073223658028033926650793553241385391792161446456282439325016753677955384499623516312579452567299486683993296235043243846426943868058909411867611530720993403027724282298389998845505064134961559274431111190394072274755731127047989732161410322025460885024606751577858960292061880553970789956418347495723316169137288384874464134613898386222050622600802060972590553447957700570575258237852068811269405960332471457995294946972044783152201932090716455786054536204964671856672826370252238195349442925548079460314271035404242937484975607843349526998509647470016591174210403018941837035292495751845875921468256017653115422309413699120894372273637201427508569635911113403679535929838315695639052903674636345056724407976904398657838589425868086236285387124463078940947277594456105767969247704634749319447338190750732991843312775187891104813072591597247127702611952014226223752801576023946134983091384819067441566549181537897341123001165360448464982551688966516595715153357457400458557613467595087308962568351917207922124980357844072848491385579172089003327845215935169623518027240498556754243306489305616177022376270226518479940105165245733344607558111707432909851558223414436773293198657694587411530666163085218610290294768617833496078975023499200662579636587642681439163857224804948807270740004532550784859796871175819050490550657177975922190749106514912881562952436554258890241439845502076278209251691022927750892647817813494780166181013599546559789264951509642717226244930587600817803288925440298050993583385831653508104401587940313899995966661827963990677174133558916805284816937390756960384943463557892880871852415050342523151332222393292691645482195083787433785939984940245821592624594730967099491663422295610340168260553339943626987670033880418878231676663230075182163903924441898744172939151472102056729958745459323720244242603002390646974971364021672278831451995305582265635379967706971655985006083465116585598692352943295267259642399014560253157912118317583674734561705557416157024298672354954066886561504369193016501983371663547416971813849056828335061939905054942645980688436700091387188950563913776203238655607388407281277543143835742837953624555395394626428842766993905416955470930768830021347220484921270469702661416829875083588228464136377189556697775896133659313083579434681405224279224210708869601393701786298699931187862674274601903646282541627452320253116353028587299897105462485035400160871710341260116565597935789038303918747464850247169363394480589474140199092109646181883383395743998861979757026799171325365444699610057283848839868114961763043588426690805797073594181196633375772667973458931608779361317518314911199907845498654492486075863755268885870772696455991819645103210880871515345881209994393169139956843232279930401954385289948410143402954879198546921280729839009736330337571827398394246305726244922286726806862076689548673725587460362400153773697810046200223099365274683962922377685201827708834607800946070542662326492728391749423134887668528052831893215551190176805496129449375530825598201056549101264597435348579159909607069428674765667588318201971597637826111871246131337891518679576146262891970305245269795552334876088505289680288055853200511296347224522564504142260996677911160423208739450252632805363395480838978709253591409701167047865797456082618774770355438396862176308506887097526276387950252090329741211968671168073193981429487149607786433303849345838136469131725745963411357497798382931638910003861845968611013235793817065727049688308856860598019061474457147677339466063710205159870329478287660872746219273562008738349637466087311613922292124428418565870824457247658444880119010273515688109351140269113854839605268512256783583011670210069761492782638074741890333037834132472287940724858868832341096335586301124271398837453031069982743507779723928095068836285569698500469199939717528251326635945692767246602210517353095137331048730178606577398175829594360918398667091160518467649922772032791793094973091025872304813131279254216378208830391928517628212449120491988885992106200412010102857573049911109533521494181243338307388533932896788224372074996983351045532177193887007327555728362744077460106716668957979027598017174365574808192268457200072608562593241745514415847837855934909677139132586869990433446330277378503081285544493457801127008940865740124437971069654964516356337090987621712499518974140142814978008144323652574396337534663889354845279251096094399626207700650704038428473692179156791447124246913089305226179088848028786189819487337981839321295551170806843280310921859224200590680385293656850553315538304517078943074217183061396354178827250528229545302818210524929470861088397731310529398021675094717784144390782413922447827441278173519190912913290236255483868242934796833512511904538005131780324759032897027760397934578735550867870414332634654600196292018925883326740699767617887000509981106111694677962189513088849125547827835124933764615755273916866660334661960177633773084733843070779899665322394733357871516629832520952244008274787192454646692364802951773283161474787849166366169782953174144592261744834788093854427415741808910518642547594963799732554349718675570308959287328946451870614415961982288461300175882809354572070702736410307677768985462924938410910314925129073311928089926250457629916178263023617988293222234896347333407042285498470323073829788190185800343072595478103926219272561982139983554874571122409263574875749092745429978707603112635056237044011038866315373900496992947153345226359457937485516471404674679002284818984180300266403412832628824403063582106312563678770680912859901641411916128925165743288021838114423320211966710066476538656059521703335409383025915230457062887523933542633975145212897071000335176032956060047885462723422708167789517753614674056151004895733440646674376187917786599191219307472230103657772352708141574287580429131891102655087225784002736923676050748104983647250037225862487695168631163305229024642564944335784235132696250064831978283969888163048651513389454044476292331191931836243767918165686438036601090213782438091412294215287420801272500498986505531165381449549065888895095190783292416399327363421914521456327659271613577614019774390427210349187789885581720085644968668367349546978535544576162992515137084892113693660498602605648301626184342161219102910334959289099400482039215497166924082580284804427211123293781314008793229380274883961648201813437844778660186682671338374405197894595606678395117355060462456818815351356268240056167492360519138560095143147339843211249273965058419575262236947349887393627566797311597695093432152868904824024732417942672875736931903522699050004169749801354042772707212618807736548554057928817142759781415203458013974778451488171799359548406344075823493105970137824782262567016059408230457428913883332813718617771197807079870957262271042435049631881388135923711370382831531019627610247760369652469359140032668677513067455804457789060982551111355733375652585325903874706336053549539521548582186927264482697506307247862696634368539423256486021548369130453104841366543180283144739725482832512030063901476622431510244177100840484712333501702581468530136489103790098117100297903397992916984389546764265782330615347622887966018873283545480542777065762687319214500405922144013674070218293548829906064127238894315621243786892244381667544222375514468602857357266661058295148540620215062385730764385688934683481765257465735546407243842242039124424499383097164590144014553881777719923002624934640487466646318418515802501862840027167006512038358940915973055973615193074887099661185056837000015509825094470155313248980963910290431266159336530474842597169525964146702569666881359177180718419706006887429976789386651919288057093865114350975265830134363853113076900787245884813049938753128629148983129446369965833055930147798731724885437321349520448711311528679046050411178429077570082961541576939264681271995629893034218259450541053852135125486448225681670399152582665711474982070054574404702849004092877467902272382322872316062257956581364369146074009095090319386308909710288463300890484567160931823065262226152634993058917648247221337014213612362976603711765132639118825363787504264257131891712852297719060282686368475032419818684855717623166896053487796632381855232166491672343928340689706960031091639001936902947637244921945788504705709254154150957844926699341824025922748166664221623668707276990957037859142255530441047068974786707952929900711171602380930139386943252582536770780516725256196340301012922793006585468517021009803316358596272276904486540543316187914917702017942595756373385449898617117173554533043823168727665510664210759396861427937545935282640345885131717043017984747538193819185855717123758627026978142413047391568519427347189228199866996369299522689007818049035480553458972897460009551030715240510543555517765025231597597136691032105720163953041075792717306457020253047641135971872995284189989953400907004843823431515455023627619333349640817073697651589491592858460415487348562189185367232524450796946194604205443006766454558683643971150686113973522978142471078483854712773275764256758728782119074779888217795959035528449613385880584908511452349917356482532363950739801680433887858092976865757846716976459338805091092872303818761365986593461506960634418041754658401684931019385930911217928215303081581395234492402635165828822234266978797593894867761639813620152486467560519970395333616640943621026181843903574502593394020239202269639116749054323990485266553298352035435635710240757037702824747420649393326232424708428945614436494446696892456157676980171969398452319794900290970760789619946997559705617159274406108624598416221643423116278257536699063867782924274708863976595091815733455934312600034736422309226421466941871216515858097981292329799554367710891619416451392361360287734897540484608174563160713166467240223576794516421987783933388128294023851673876368369779501699750265132306281588635253245274569284752358007271175432572496398479678465305847353470993804835037959903662795591739092569198515039100565699649540581702994287581744913047733198325838059684961622226058877828815596937636030726638265682803235437732945781154992117157739003225876176093346314969046939546545092066605582848750533479262473341773902751125589832721928063503518914295660997635424385892484119277183669272248915070141839328665900991771376463432027914984787203122979673965721537061320229027758738590951667930692270889661761655496888943593122063850636470483327221983042142563111957242030552239062219561346587898604959260773404200727618897580928383725726753478492501430942361611621732920995282657184546149107808550077808181736453473515835766291012653799474033670066201741084622803164894150637452420645256997509997610434958407526057899313698448564070001575459363314922797068663379233565230570856756076966784401218082748383139034655693907313661599280184833219144098493853412301224932015225593800710580747243234929998381696161774068369782442215923898433046348476074887977019990443228179235072768383244932687586192131449686937259032080260391534174792906174293867666111498062392863580712831177599323083660772162482242361880903874483065359361664661281913680573013182785065106132097790552154364096398782813470666907559096447148931046907503192774039325444715673714836038448872580888932282215519283533377603714251468359231314821367407628832276992030051805364722450341358237824142367624414489339241604970961288646815487993232614800868719065457983301248251576851992749533458403758164559845593631400720871397239317109870483244336262375545895437042465746420325450452446928807605989044952444282684703053620117856209253846383028783149037739387185235796657187403563140220291153426505855489258419367814202421604832193555878886779013298899879490661464520204178264545281633111516818858174322447514208401702047900462809386337782664633406298684501010627865959173493068315590998423992859779027346134591173596656038889592379217120490984572225681771345752429124964084082271348877822758108057931423436260629180178833808898416869313669131477867235319227529566206466568332015230044178650932792794736274937899658794533759941891783397186640331338010334969980760778247833782103283920800406374425588116640801693593481601568972622204632720689196680257153776674910053618361728774655437921141831672143113858861700315934441972204952643867827666923378291251409884276060881021820353528008764193651199339387487308088130639021049273724744181683961609135261016407249209866837777334186793036831298020574005337817664357435478891717294918143358192341052032584793648672503563987308167686927921808727840811958569871492087932436187577037792637328417278896728764826384504155810698371948160181458304542146228667330595835860964266996868384825992565822236813116899008781581747504059216692524957876225802442347547169942377533890618168982404071879553003450912706547222710151992082764090848181040082190773794386160111717934145348836495159921215169177030199322904215982965903325983648604378282141068605166394960013429273368327157994753860664752914075429828831531644530333589603795273585294997726957952645383401099739282834469878249572664203331465316950797071573930958778417594965488837342613574297122199880455947840305848976006506465409081705578299845858663989077024879196643143740884521007384637737178898610961705499067472489484069420623969330170275587589096549071201349550144385425585608530115468231067232999601382392910575897385267883477747370671023958736324947671814729545149710580176731533094772976986998484154160322032873228093412305632666411387601963330314525085501168925873958411687525874615464677183625639288437582614828085521493734679599397762534633652683943693354214963701323356333912075127978445787601530413302265135175165103956641120606667449903421603674726059411440934094052741270835673100673856587808799318362792332354676501173367181337372291579880165080870004486440921628207329621640733879120657759599624701960382447727855020932795329772158427271182929954490088306512922910707765272655873730727900687812104809750969969162751327146173956270436027746185370859974695766119992199018675047023383800992329916305606185752680073020143014966691280487255337934511479909407302088055984730757313701885516991921034456016796086969184358462110073479458230073481100028942421249474675774529397396919666265744012084107838063873488198402885033209873233011646574471673436463910461271005837865649062953991484836216906478338026534536186082872208902196299030122761061493600155189602853830154562152748731991221839727491853960960115408893072336449775590714409477270891101298751258658907155378562471956337843187756731737623786676847396526689199560516546364233339097128870687573373399798783831712014597759475792560993920570673356505641719736312995341090904122890341257727805380313875958038632911749638456242992244646384924495044659519483202986719346407752611588182456861501106759447552406363008347105273206523615895299616632726213978444621191758843940064182778680532344224115120802830459983411401631568453654362069787854760075984561124885748480991934815272532015052185648156372592960191663743659360259117407848851617469050238324757681186614094758515273110225417869774578946432535574398508336731043827407777732667034584379109537379120514120340551660869283759273988500003692396055626797288030859783318268975848021570914452250509115079181436657895989296752134707020412847886166715796066480132377936847428982742597357802744818718509665524351798392405167337311296964643021039598603302768102231138292406474489279685976648329047658683284442821529305248113501350260282424456542533409389972708322225302503474143951133839672814325142223800999175650294679690471751380184992724387336385929002471324953671274145363787992305065500805258047423944506670437104484059599797755557292908697256857181145436787041186706354484010983721480166451288724215509019374770240439923241005701627803608627539863603756597810902971865410532502035459563603554968974900995911578255025587060401937512138421769374271068895843664012369708230632341188736579375318050224192216030747876954984165679582294571388962397446542048241794913897813843477924578742832892116361857564263334234450116561975684136326671238797377789186522433757681936513545375321883986269367803841057899279749553597192159991828740729661959238632793702850003805295576334709339095360803770440712792661703535879266741186931564619353658467195946410050814238129311729882829264182405593457024829760212164376110323729443138840484751286342395167785801794699746353449414685689549884268065992872728650855652721672145555698757702129117478692359794404070182706083356916063549736009702991047329271887881915865570400809135768963876610339570151754208166928419245399780694809978165928974222489903829552301587219906619424656197901889062531799528654779351659864264922976854329352591914685171464650245427014148341149344661021401764248235750200490195735456518807317268562847247458364002543302381093443371340556630714094139626487032585121671169856129903936517188699524090008181110198908567096745528222364390674264410918670705747120996336509659302617697011497863901794122512472104365548373346494248225492341895667225673308713671216108560119531360592016362226172345935448551014699416523320227703749420884313578892823403676094826902810615356683838305990725294938177322135094656881009534238175652211338988571303625205736698114620554643483845610209675387596937786746955222917668594074384190070804991702994978288500856769851767885843825246422672869942409857014033061023014250529680263128640596272897956007579674411197519003890248590804873196663220742842832742730670645953597723136127533526878102869966887037456945611278904507710905381161863976027998429645641211054872013889238376330772815709721245369994037269236053424424806324609710443790547154228345215805110800131794976989833105600607118634835695528504608410346098566939488085714163194463066865056871255603421046220090925292713795304990116433113239808768708417482132617293267851525070797098841930732173847034062144268960890190640252545403973282028042148698731174873239795026006650420462556871607494999678380577828452291374562893350636813179548901884239780885825455088600476832007484505329743942708208896082352376811128869442631526082116575960266777447068412616331507187254995597773247066488285749365301361707874272035642772069905171110620472995748109553807779828841938599586095513538098769121519204685938473503416734460517940755150298979097223614832849408324901935381800554669715241854619692854193268217697531531329317281233393936338228779377700553919344265372783886615337452412512690757529918570161162906367680634632931248738651895933329909983159828178886340416080774443390924186902201264523192249022038225960611290394293323629229592831407968031246560035909950409469637174661670880223330813648791107832789497651571699114992489172146526619881822059040519437491656909828346862833209198699896603201924954522394093593367390452173698638519369658862872485294413985815164160308937695000010273570718968674172907822343810590328982932141013472192716376566645382907902216658758087354452275403706169653699227143849511834099751670185550370134905036129987285875605792244804247198871086916701110306233811493744275079719502754001404039740805203796780990559701616153419691119726887922917851131796773918674156461319973816150767465882972584893105769633117372978816343998814849190818092170607969668893508835593541922368088931647953875273135146248707899679344002957261012611565665163391941468347586380585169406034673126570107864209056649127197055732354583384925198685680465020345650434271958529162330451042661677161523551961261835859277580300010882059139217172418224721785502335626634139156936763730416807105178704594493266052332420102745155697599181454551891188971952977949846314253076258760316433300633184120439623274300147963504326359794576521844943096472625454673959389728363834795429206667780635955893119974085073340330285892398530294218401252746156104160137157233693865342421654007024023951933509604238509964146044705180140185916934442509688380488994908997657351262423542255147109303041354660880540080023676245305444217633267434285871226403001848974808840803966187086913235088879157989633225995720618569179287436936423654195110580045531869692505037483455540116964506061199051927331583082565862897693105672608166927340606740383021645740623241854797049010662041068869120193808185739614406802713636529092872202348282553628395253156306083177807280461548288201585894432465653450021578455506687558561646670344323957383583681026288592263271441533825161346239534113428895269271189621740541963446869092732171610687475439128585681569011403253373735101766467537070731850267909980966670186194966631133250543767610965027390221543223260311717670863491714345216401874801622620109382574945314855737337477346033543387429762563612975595506061167434438667091361955025214372517693304998597755666875483453370304197451357988452939177763702772800493126280989846957268623034269138907397699623910569856101428867638456151145880400869380277987267854225234943297828689834920906625898933297481922048448876873910385116653090452324787465085016745488961869311465914599586725121299909764031149265881688517966900900443342317215873532337901950121112629757416108487264814371203970967280833180289237905862651604453106537695995693749445744067765264064341994312244196347113379095450057654358848748870795520064179214196224364675046826950063547104652954526737789425331342484399070198670969651505780552178741345934775387190796135678780249149170396969778140364920584639619423451018093939550659853483155329593732045173201867317618142147429055548797457813233844779711289537109733692175134140714013150087715829745506764066390801259081408725195676875387762072703229984055789730012230802748519841782078632045220878248479490693624653643944569010140394532213160813972607255423254058260479246114524715544159628673112431171073920169905372935278818833985317637483740562938708377221808206610277963715652882031829290709669288281820860836219206800845621263929514773640066667645202614494977090635250002751073924190507891606049708080002754792859187890434428650730970731431184868214665132317057878419490802795214975668402250321930460022208491941568759519347474100360290875609750181749228158964607419852504146476818700886439248648790938559989046905940439380044326244779210336452308454719204885344764297476388902512385989076730183151886703503596390185559404102873791613590033352043926551437879699435882681314873723317078304082697355262670996790327545350779060066593669813362344995445108354043716021472908193876172111672237182804518518509150535033991855562631679652050919628173826114693809281319563427801320801351675092812063939860784336720251937628503202618558912222093262568580045120311978313647056812373492226534121100708308626989790038561874330765668566808048508030564532087336390210355886026754907822987085736337101568805595305410101479552387386628985511458453149107282603574313283164538144955077322289021230527974293362330482929230885667367929525391738143294152937906814962533200514850076719207540184058347435824991647019541734999925344178884991625538917687589209339966056348828192463320070561750864822174327361821123933994882248925752067260693540999647256771131173248616260825722563137941576466898954690334457828873699184838145464203165258970346878434772924613658949083421134940150507702854323156147995466843121983488115717668657209072626386832863718077472666444271568331031349068494806170680032658168119383876471134235790744273043223948739387593544267329916727750183542740564386456631544382585932714042929292887487265022561362159974265282006360139664185044320762701455136841368247393500773094547038829827664651225323571501071777480625200218729892452621342155563842509106135747177190173740931875001307146378985878925896126784322574049100205118421270300082589092814546763466839462286781171337439619527526819573690600789073368293325320498043718933783691783263283973935419638124555598752938135232116643956442744831597105505216827264036586623094472521875172603266919438613892376543919951445192059696660083237032864054543762063478796716772722319341845371917923557401859174298652654591540456148709905310265160345626329158506032577354294970361920007463417447743489762583680055381642742269338005032186005097800020006228888891765977805941543299122359944040847505602045356196331674929110825385930332314218840058634426195312174360465402530978560684958820702182678999646313831834953233006512632315110256167971801794589692825231872244698997562824920812261383315772587769889139737922195824070648833393662513606664391774493355643787899935056937755107525148707762186455880801552878113092448915824460795262333511720921526399859871337785097508641755583343337560944801718648293081292902236269992416769857087621328135640147815428951791737365607235525337633737156413346656518469900839446343427350769257927765065415819265233276328686179358847010261411765724447538318270461985922844836494118589985988463280767830342897048755489869973510066633758173046959795677248506965256772275768300894314106728135796798181302772326969483804914048512665426900220450984180966401637642379494213672312536114705375893389668784590928964070764462334997486754648388237946725429617121568932661337039513295541501373918346106617814166393093707015474857962378880629983076063907109861562087971329025208900545010938832993904808266398632234169737214915400341877299650621169265092308830849406696689767722309478309061587411383882782840478136495949385354865701743412784983005160521925800600200566237385537152537029148860488111342953108485243635403264365769692682351473267437464205381550923102100583575016225243935518367498778894867817702423291634944793554188235244321383287606807278559173816492181552040795778138143499829865735170581123738628855037090892200885013889909298211229108164953338743526339011134835599412839454440531226109370393656048953375367501737743868528254677327845355678126867116713111089443958232901368942901185172770879671683421325701103407579497879701403470184849539293941541239957678108311640239654353369311808309655207630327318696234079461358691253618546821849019425681270384803058167770320847813640497347733691088168907581764477232304697319457234311278131384783517504329145187411107200038863059347944866959577026174193350677797848695556404406834940435274190071620677397443638790977829006898708826076994541833896499857065196716701912268188187049745015752770495192296686287795281645746851253044949212228636070111062618225730625455373536862961393236335342841249729540865736522603302913485674682523083172500924709553240724299536932965540439649531579322763676747930179437045108737057946387298891829437749221117073756277979127719703056727659990466310321632417358567556220816863076499451133699605357278813581530550617510229197091625283988218226274558334436601969328458015897667825113776568371935047197893895817492333066211206308916659225621686316992684731033138009749015403547116711136836086775493001014857996437141032192009173186387209236201602081605012541365103356755576130859370918100374151414046678360567601535035432796902055621638073185297344163331830744907549555670659856107698627900866501363090588998509987409534240470313815696920206417166289964864185295655631370645150002956688506391466164495565652527435982125913386834033453995193215292314301024719590360280238874099916998776968616006320209917264906290673401444655437946504533630454778948286389855918424349171567428691079377646206810632550687273296797092544729724802075426527758314840714612844597148210362349369502039953166560064097813373000532920181863282228213169786850880803258234200105737020005069841514023276751456724303321148640170051274573109739840704543512887282140671320140961279584979067611349947889536898973274273487397048925794012443515495968886205208111296930500823749409295105266527029713380973214237516557852152280649500227407630543638370456059122161090627525628754088247669881049745804489791592186686278584371889986192644931764369028730830743047800128156473995231259506753825554437803233328005771037241253386994081003644992816364989336086580972336908472993857732838248242535033398235067779078702943565381273421613730256913488592547472113618012970524201280150886262749592714395472015765451245056781286136495061182389312860942706823799163509793593601814598699399519927012806009248963190001458519513953884951496190267742462662333404633151864045117320002236651258020738401566965125516446334900456628876488450091405916357752887852726168509437575826448942071745490913902370447852004305748766324632682855351278371717293585572091240320392394323989982112333074180440069681949217699228340001833104042973188496406129175702096782146211251196817494955025673430184870124880022086083880467244995012380613432969450202782671373022745464621990312303776174796914914835166198619496535746088875730279548658934645049148955033827690878570717615099978500108437348001041874593305055547633403154198135650909044699331505695136889607558068038965658745171246945244589036119824490258717120925441808549585743226926263872952825293596484102193928053437444806758459017734963308419583756853299266083956923072763322757905344157251195881114483206483432334187225455656869287669131217006411769715904701063081235523241226500574826572140178128808480925604387972166215110759006163905635122827258318192920161661993075042012353407766076203036676650353980818161943595779198458651380581375180538832374218654746900021612569945877155958083601251077439330940469443761319680381877670964956273049602252796828717298404703717088512144988494787731078306476181274498763443785275650954946038357936561515314913642021842690486666724088966300053118837819575932595761050930748563869116539141836285560863098831445950692541886825609873645556343563192628225653272562693542409198562406450457238706296875184989282008736336305848650514314589880390906523570886027767301842110341526944065692390551224118995682803389691883646991627835869601926661042665940828601938843209749573663359013253150823504964257938791062508212388598512839515448385771401535565529201692935166129585378264124235396027109165222973823319997969350512961154868955704704153970148740419067329125029713716191396097859877627562294861240175016179023503486899219762415367500382859336922793655738157371941833635388580650072563794746594250738133314741248474262060526320538904869646608421222260434173695100598105676025152963182123659488874235268306116124903924263562262348517841988238295469970374593647686615422384727607292858045901323086192365699287279836250417024432063464446584989009783053143437280109580308933223887964160195842457870953020925962384814075572623935303945721232824192246553578350036996316520354537251295220392580050103865831107862847576676342810726435284734890119023432150500484638777687716399852129918554115824125618496648403164309388792308350742667623527881431447419627026728413126329109079823658753430803622360152429979871477992685306118894725052591294807689506954777799526355490828562210072030637388571361498268616074695563352088081369036628130807832733419117064883865823307442734385222546884217129949190621069581798891255021417513806122274480521378019901816388249366218590637398438564565100249903996651564541726507850476197517207528429297024048247588941792067567344271871501217466196266850154638968995425650498288496170068578488929649188659558987926783438476661067530572552459421117343151230674017953238251492411259172288845209517918077272109828945358432648691038013139018233525220849904495369261788194918590705320078365640395411847616051521553906786048995907112614276883389714783034339642049336637311179250984587183346183149565753548060031251095933325796451389325945352392753352649766368709854491164995444044946821610540987955217701598904374969337905265527935281539058714363639189242062570850168193277289720673296951215089747993008170851852896655682645808828341890446683717814574382893268502213213358069978501140517901186596675189989539506943127811136844982729264932731166363679952315412882435941195957350168756685777680057007190188267850100931098953960637403182978290984588024519024415128792490806943343959889057537938053610138883209971428309911687201066480858829140446618379649496650869552838431409340247266328991867372322603895431112883089924908083371037450606981133792503834021223449165819869188314157977571687032373989976890199996719721195349713186739150682824459951062870639357176854503425386272172008175445964967600563535711077609367876646224736289898990519183377394238988521066069406595789819623127654044737349743225885194332160167554627460146771186307214306218666591338426342992045372323702606129376321091372536336630940953671100614643782883884285925946921024778490212606086144440795559108424369599709268533464135778993368639236931034802146811292178929728438921874894225970106731609197011487390568283123320949945942592831203690161276609943552429099204991770737251522000887409498942378964898880808353146679050466199329625886302778751971835564104948802145224890626238139561900932523944633553956149846250252471631361611536191686315796147863456176475549353380791164441246252652951255967953686453540675411284715861899706035579228489411865694040862530357341024398180616630856454329130827609392555908766952798885236243307418176317747978595992904513919575384162632723569718860138616785111504069638035277467518386801073735049795638701371519394388771978953332324352668471104562926364003594937845946477450953088886768617525464025493052152584682789059950712199924680082572349399031367585927188143137945112411883899286846242223031603694416425324797851984420445653570134018156536582918498544848284218931060999220158347462421886869705917252161183743091579756246170756075554168377409243012247403205492813496334130959288624458610350647858480723126090158712943451175014800426765932215415741987600343471929279225812113774384985045639687997081099027520834318853935905674944518973978566154128823215898638613118142508091177934062798743175026140047705061884207062987859067961454891787662257179837448251385227273133617216670532470681907064475101326798904699666239663854661368047439864830992825377157859959120787555937316503359267026645912679738247199661941768669985087002187449490536807100619218047996922135919820032903729392235788526573939919040328941170731700233593297873763620114967121860613269375517131448747598117014468318011977646980977872254090862226291070140030420456564659155252239891177974165474953047729561714442992996725716426299358778776430570223008688683584984356865916644959150117344794959213620189228870161837172504606364986778021982251838807814911432453000303184988226570549531782919609364460227692306075074257200878380199362191118941902386157980120345471654343530246653713013389022925278059108983827232002215903284794009812050906899902041196235561307438523600100028906240456084377051907880132227858169704164359015490875812531466817811535012332801993686459363545299797477935301965883351329572243115967183665301429546276502970128719160777309007531154179242525026200030124564667810926334092900503198124161015333959373301546483847599895196621063680815839217393728643063068722814021291910176736557464416304486790942565460549961644566526310204737008239475309901242980827354409282909774279330895647143679704539980128070167360807388858307569173179526647723366034210947893930306239081417623872565447836664097027644418653578002209464899460691565531691118128941844526458900054209741468039299960826558210418376160267298991284802634445921014307681124894961551790335548871396679657178392469681199627384216077165435980833244560037444571383862616600320888440066741552948369878864536970593520838825779968743465186402534336525507494374324387799743505765278357664995082302560963874864230452930494843110018816507904017088321743736228106341752523972964874206679598986393205320931166371812543832712035697426484308696256611904149827141429916911850738031941522431998029460265646348842352308807877773016343563276820945989838639551049522141875376125535637594445829541348686166552271365032408866823379076305918967176513939991395154298281803716025580132527241955017602632708866515328938215917557004783300035575542567581346325559477360721500100868078206571957757714239904424861589601576282941867031080803451600343327408411968043693518411371965679518790514623547445353616323361939223391823054124742472218849076936776879593955057414107114689342132744877312980872188667865509304186798602815319433176915648831556074786599927532526630615064791851757581063494718470070544011691028320361715631032523526075735041862051024597270526811770359756848721216084101295182818000642435289177569779615454579203582559063811491890571404875881253601044928786023724257466010498823214465788103821221123339156203202425726187509265586423327846393467419360563283117607621154132882041779009367352289609604338092547151911678298982211564700152938399314460401551018303425454445226169827305574537091476219269942159622684135100697935335460418437813777092573576717319961545574812141368243167707991595364714209862588982936736409267857553642500924981540669210301595035055797357811410631448488279311020590182572395453150765819724275110802395829133367814685633599873295415695989997920747225540354213341870536587992549016339120053998075995729860357696492412559742518424993717978122346676819351901959250044706609899737922983394573882478514638111636708309922482252130665883845606883027383603375781295891726946669406851848526854507372606119094061111236717049827685506067488894373024225071649899242210970797572131061779511203288590682008240271655412858339760503878722611826529666504215735593793514670002596845211753024957550642561445367902808892485873851296920167479831028722438131351733567204294403544802651967884612974888523517975507136456131400214405395252840718049830077315189465387761108669239478915453527252317713161472413598912143429435357044319712686511602581851792350160199953373926377283940616104053313140144903695981321059049415638789266631727575032406444343765927721955265895808121583436052033453887062763020555525717631340081671206809297683601643067460204877511743882687059711116396767852420754679730846256580306761570690738191885099890557598327731741435511022194091727379317619498018752958058822216624068980521538546805505181814922924596510136321900942104585505581951202683162661927144454260007127102300073071888746624976074775842553474309880534927725455541315571841408398325755432136236554649582453644568632957788010042499534520735022766102242478700903445292802714927430339307539968542312506389990782521466878402281093905058138670250304498167606140949957086866317531343409643375658079826778541969219724109074344610420019832445147855610316883400985500885404165533836349275652797693438699354158586101410120118063237614632679238555485511893624044827369053127974050051073397369012564183377089151185810545537688313537918415606305359256813588950172207545432243473636182983867229079864765814121125975976061700045140785636087029279922753689172385845967345541978292257633152248547464122188385052616968521760103029025700715302214516094892493169864223854438773664702308424185095968492252773784758767871805981245472024565344832738871797930362298883002356604317081741410353847110725110612461127065950275610670808369401557770334422725426221273141027394716811021734213980933451587546047795856570261189561361937630571093840281239845318062260389333736994415827472826681607747946815508973640705590304624320198161641787038219130209034821294956400528065550822704545938221048841378542456274510183777846040636378660362132165975915407257006254518599859320959288435122607911860009326652791065390445864577921844115479400830250010345141758371950623777485437136343338184805607294560324181486788209204766875784406333983426456256414695642297308935954985624110219267200019942309711679725976381960959185327665129434085794106784606560271640980157052590816740102595336116531435769325576133381128054266062745160559334491228627778731286281079244161758628240861775092773261242605934301653355482812193206312188314643538203569110958153180697183620341088650829455856633850742957850419212742949630585900286732691892314738934848369786857951192719768670937832782138512247925512023205545141506259760073556633382081250181574021911679957129078131123130054099280691262224971252822316663058879829834009686213498637340236571216777675783537760671371854699541825086068727873293632434125310161020937108857416852891901419015427596134128986397187107975276109151502376242504403242402958862817732735224393803875469005086609663921122599173223528360976221490461619414108995461235617255437977279320080159854523260494272518588355074311744507629410810399304361852123209611467620350200619752909256082259219377051467233230973147200817983432075512948214793476610247435328037603198537651166816647152182292524348381507311595859845018588282954854991163396460004828777718936344593414818203481877937415839784638267926836703187813861984029040855388702971190281317950047410423019968476646703109159273934289556339504684345202769544915509103652623779558447414949454409001745631428882820266687472363642419417299974256450267778112139753881656921150814745481641545138951264105482496461898917217296100102851575815730366333325092238408690897981356998759771788454372206353163554497937393728055970218661138037457117129837430587141927432515136496090019309515449302519852304608412314034159403873800577454728201049962433343530211137554923643981827657584000754448162580116510840907248106351306994325034637580911304521260505870958511735825122855542903547543720685172614088578666667053453390240075298413601269511804753786269016917179635191779355040230868151551680703226756564392630849522778774784026508015874668661692610495995172140792952817688237159719745718090759673847191092543125628587515836873825190407948256355096097767183846120627245099133178914733343028221596112612506315270297640344855866268537806229186562313980228441550129846883910315463051687358621270657474034195403235097212718110284555657807675962290097040624873226411368763291139048764444956028044927412578630709991947479759409312202950041923150519710937603517403974966903862595218039741965467711437333667279373760190362236139277776818293877274259226118748787141842989582247724813242013968292827499524668223340025421476665593934716529605432570594143819665581672981999270482311064750920903487069289834968194069014854049857358213681908236424948043261176306116238765130327364032201403212050155407991412320189347946845409724453528392539896931941288559660305506993489094157613552004528921566759280085884732555971809783501268640799421974760103645367650964328969211044789569336160167578957457474998285332968813181511269744929698019038510976876242861883487479820410114046231934754771272776212088977854115339205076212471847378042165096584370225054290446729735508553436175625283774491247230629409032898036941415344424696560389908054389359854880370520851267504955539809482070585798763835995778946163449835404952310937711785639681749113140648339591085227234556446826889326733138823854734804013860082383906119820539574486416163531290446088073653822565640305843304527365676737951083873300474873643004517723869092830615435434743676188665426739933510554929090640102028509281830539645559781726100766831415746440068969695328393927394844161867001275103480319783984134615806321890533155375233849553986586769597204819849416298017951062659857579683759847273687230352219179266781178246531884608459498567186241076202340777215232547470569554910235474575773529131598188042290145318591649453377613230627236603454171507018013839169171135335039256906384282405908116072184207750586558206637355499927330001358081717432689513995437020228509852713349458142100951617480664257774794951593609714251979877165250721011187496889422799659389494475430246678589425841390672537661740300728210575085309566600223551436025039509179273238047013688936694135425085360351700189969313766595182586247092391384223377664605111552510446048442861301234050440870777300398319722009478284835412376923047287263541642200035938571170313006101924545446124730040030077271318371774018530785345209062749693812074843002133756108187546908587655355128762113476632380349272668056609321575437960133387385731113984580915248263066936989623154221044829716119856614823652361567690001586899205147189251297259043467528353866714332892776396744475580219440889483251105243339199546605444364412394379280582209617804227582264000294521936035273142467495294439113448501096856241512602119383954023658536313392004868514279488033636197729535488482545398431424465930529071607881117044858071833157597659151277561870888124871338293686024153186711855670448828204079565979730654168753882552402930371426187310494128290413738509835535129250482694161046785181412157270458902241527506022883123453909729951559264744569546207400814192727306262898770471146058871277132192265185272044229402995843386496616686858274437750085228748832762194543708740248219116082023111892131810502245105490632296359877292697508207923600353868954718648038145755173776035937348211398301565027303341829537465220783749360461247448409418662852436394925673746615955611960998224392929897006559651500777323384623759499357162705823106198871145002428595405915528142181261727995937182946190819754885935436907056239094158759180234737180938111675739151906131789528087337341218178268255958070103632679555550348055819889117888999852810244469425569356215507648449383194946833176601628361805176923982589671622841711435787178181146316949139378276320555233853818780992459981033676354140197730662622581318521348094342905579946701737987569834781221622184654300889163851778806955250506355745813587287883556306858239399788696801825928961805036612476771059100669846777205468499612590380294994854332129148393728134191364933959061963074266008682061962962390709979261449610719455094067313552553207104727732463541393676265337161393899622540050152633891567520926155141131211487642008034785761911898921109309903682212125835535747319791888528430523954493755737876704853306460067873372246574599318389734155063050790485989310562527634866573572571333944160718069989232220712462250019091570255119015299445005267325909475030673876171927761558327031464737695732153246517806115779157875180850179491815017852371128724283616518100423111997854292640866019401372286553950836596001396824491515632691737998310671435626687054021680454558374598331570223768443556860055988627754496383685288222728424173916427810397225738297053217609552466527284897843825891113560518958146617655175918283897217360960698747913940453255262030232284931771841661311611934427212080328128368411745314097845959152582587597609547135210894417923954505789910380183028881900500972939073577977986051282648746172375681874568787645656835944582905647049276065421740868574417506814963270237097358720377490738807228619675109303962519072385879294485422443695068861611464963657087966396773779856743665184028545893074796894090775483272719060095913239060514269887551485891644976271763796872666581287224517063222822133952343785173526731065873176833982382974405619565296930713689846050066999114298583512020666662022801565444713953278212675469569710906197136500879426642705556706512041998472651253165837759143356880289249870553900622253400367778651099530415410401473980448624640256659978837199269714842126525000443704009771715938331583965458898399856857859731880164013184941622598928254640944136787179301271664837217499740312237058241837536916308101456440767975653939664676485567390372181744002986455526337007771471841213127588722103063761465764916732352441831034239100320977513388625543095194041576255460356135369393675794831299397641063607345159038531693373308975729454443331157543740244353224864894362918830328725605419952275551525817761698492814578467301882337578280347331773645410706859291593615994193410057097887328714105537416463166622892756840696578211635741215100844180034800781355622619893985738288860509665005520050615403404062673212285436043225138324441863302633569494307155530118329591258924145170899676720042885763864149322159430496166710531431169998218711224093792324295566956146424929742261435056273640556649730048162113206611247477863084657020771094121715454676003087209685031487750498625517012185292952391583199113558704223702399774718869419658135624995976188486345932574508836050025575026396244444834860626151959915072578567681737572170746493294077184278173683095119089439376464891300086698007385997418076375697159088064955286908699301556949746718955621036419413875625745873936497009786289047167089773126563343820726049218688465319989230451981170458787183389539442759406059807246471636079724297511343205202506204943924944321359551799672323943564885889827186503471703813820123698176116566968695501782387712479290733587115746327267295418787077238990029336775429004592951606286108859134985396300966449355687579435211963598415580581805236463365605584247484497614594459366269124634786544313719811831541546898932398628925188287164855307947111613486833575151354904926289654795040392113853332995203788615918730522315245856414137243193513720990487810079191285935147658565079279459980096930566317802329018670412606866333754472958781450374753028392547009737914599138469573431668548347977303755412797035765954750684299852276371983591306525507689458202166640888986173977085110762835751584853194713594225015326447047469783441604824458655287688124845691116265182063901519866391011558246791357512650135374127837315924155489683170807071339084520206196499486862781790046401134708525817477228909048805102599586842499558825400803555728683686531071731659959554759287417097941916031710825518371766360376674942918102786337054182708372241441086711073377376031010571035010297659271866711003286356957985492673178098904211543013641937265432449579438032999974934908908856515551271293676518987601425807515387273577541977085345766147869098870764099183198146507938978224644318670276626524431973918851255373179301182769055166820043933088651480673904498489564759891345139507996442549009542223455506884106331985832350462224182450156685106170044139968558430094835703127601747775869849608905179068832583416907416540311411787456319982707873351653965992653033414308733999186195361113106297031624850616387493461513410681307721069934588968913980957513434198884934614828207422280605873667320388906654890930491488490426949530856437077328855036080309717488099844742136971635317534907658712410647510289140411622222794300812301722551743078126375887490972438417023115236007312467996408911661958435231747242798469362336826059248322972368235595432454512090472873183911662454318776283360367370485945780149447616824847682580231145724257032959231936823648503698942510089129211538928523956344319214581922419975841927770370373832046069908550206446366672006650907589172827037323749599869220183803834640228556065179189377720204249156814535747128601456768006632996549456131796040096129589640931568894742953440942606249895974767644770852845859297069265348698841506430997664466126468207503958654948463430641010553555083959058197032699683680761223452717434935192662443353710136418716059571127194384307935425746659101776391619414631902282045891078310917911498574991248714827458017092106953205966058085434127508678326988537633162496096571856898087681571084311607927928230691179385383163505751207242701790067158664585833915950211805623723864496486439349529934425696299220857962670305439772206618004310063498364141611269656595083450302307738385779695420249571842682664470239826785519984312386849409261274763300610604958515548090327469105373265745351381715736422428389510140653743805537033445718599543255950339690007161225535529302894244812585125145920193665458176216069262018324132934364218388014904252796337509426169111036906235712181615699627681429939399246247427282037436122905846135982356308812524094612760389125565043702558141881373351363535315018755754792808959892882588445879928465910055649693683979922956941047293836057749045686930768711835983046332326219916878175278465931105501853335620602102252729117884331898409880378091216130899234694050883304723698986078039951933880846432904318738202144212948267690449979352442480369580277894427293294604098656570274170477101938219785846103187248944641023910602384694127597651281828312372885653768603615624560329840972845161455995776627112531962195029227315121025344638957476235557455890253479319383984327142590256262444807677014071685358198210181962026274781036248335621404453638376373009468263100689220492751959823796482189483991383490226448984891365695122347640296240217177943343257452930149660761823890830725367280753480849097306079592408712125387939348008115719724951315478809196323058712682877590139676292830646530085632344623903966181501954497798145488429141157566458886381900125828667956704508926348455388618059071326950829218679440038795960361194540779843634144968788022428682974249438986532912500071317705301188851384748370128011670963569474734022128373097209743876002356475951763920935592204762660892149892734846317322908582527160074002476319806586161018997919401476679157911056874896464849027261943027104848102277555215601129205804619493131395802465965659140054628581505949506460493475449063461068045216333588883299906316174682115001126387627930067317315979496616805851010483857340746519986351971504169152808459834832922584122927616328735754899362615567924108926553123491648362238918759720999432462067474138871313864257626687314203439703864143003583033710476144430056340488237919522332978973450599501267595033266594785306968652036902220855288020991802306809918832020074832647371214953320185151361183592143770046478778544640693875692044884692150644682835959722568178126492702516374771129633261511190189109323213646448472544936516479070083201574816277178978070714805666328021738069708430728332002699196153278965755244967944830565312818258491366427226451705589480327674385600101280278973252153722021704132281933116667199799694815822180756244906452779502040641743998172530959717301459426613527789757144913305659269025113183246329890887918904616681844969286259436938305275913366677236834448072947741379957122876201069524728245696592675388306444227589237548215314291470647474823694502946298220909015895169597274577084428119280727507747005685451637862002275076484202117968439303388416717796287895493909853535096675399844707061780727325404077561932231611019032840790943806334011366653235744865170484796389066587440247441917693292248660911400905937131135105781583048408268041754189953429879723394103848346724578073605622921913687736258822353271506320136961159179448828742006450416742164226567626014647068897437415116757496476164983269436807076342155200531635781893610722809163317468395752640832733986879974332422589919645340893915520058864973856439816627502130722346824109522797894188086078869326962594978186897331367971563874312042498825613329674137643900851656601329750624441558433477805415029956379399057713491687389020646163990949483162636394295471757287732697218427710506458402416193914277621171349889856378377481444923158923165201081011501661743314255371688399574085868646925365164115076181231159735806074938521493063189483264821958016227764944376710782942378103535893443619983253742781455968565525103207557446691310010133355380415324981516999674959029930787026163730491643035620452886652870438096253367030810286086458373812965014209448175047560478273368865690248090378664159802488166513968522689461535752264928792704563059389480574466573191075461942370103977111957318424599346696613855850824943640368746330396438537719074021253605439045160758841555405284768104866283224867847427112721066640687949248667125253940468265271317102823567369747371154651852789656990729070226433402346052446293409719015824947161720686400880983847553712222926386862637444229288792551513847591356951750673221251397957165489218107470983910735648564453177799844641710771609510682149685505240046420586566956255523557325820294058724273766442264202009768476388692147074659875151778760650719995010984243938275796013747407272594847546242107656454332116703584942955103179090383746534402631020140217827438707450438727498397680056767796929119464350221755402916147022643179303999278315676431710320185692960863896901826948067080929966710521982273498228868966973308774794764829472736588432769957610463610023772987755839704223106594291615131072651246705869513115631449849504729994836104764844981419712971611013913781279164262772459633836064782222182350313604405055895327828622907280863478356876802865368984557069083185358114328981383229437961677146316697682718550553942952406785803460898467373454424069671660129079432007395062015397856171822053788024690915472359228320393870252313233213923510431260269228610168889174487172327473333395490113228402614345170606425460530571139861883614052513479622551659383160175222252230665328061059482684835135500638323017878849941808841169026528838237259921717347950303788684380942551365868795037377576138304382781021677470737927675069733155797353420329192967864838061186592012832775229760160718290785704985769009851249744352385539990821228850993505145876564725733516745109185862258228675034613269503059627780183917347224182441606386928437760378758738958523263647228310931330300177909737842409173606766233323906115466644074948991557471570613633315852135932915640643752394639273967260050929918549921118555177472317188452136480733073268778561962262108953432292813456614220773756952066590430475987542426486035473880330237301343871695315635115946135977382164996814738911470081623269422255446870312503389348388319297080240725100964977434098961812283863053765521151245574740786422871816852851387164937480767795968098036063741735054197223722563164898520016972799579973523127113884733703972944812453094480829132544606794701063181707634000145747253345777349525055299758279589060001689943016382345714276250600516544838322588625338260904484065890499727731879337928093563123963267500351589873340557199843015484714477929135100071213960383847413105594667241305700280321618822545854932232357853754426520521904902149590247676891840348532116635008656229349134569986266447383095840443349653687727988309349407975100249184083715512328848411676866186309170484390925488595058532745712070816857468599586597342877431882233163660787341866085292980738149799280266386644904587484736408003974495300768010518513288663326472829498267583291498950561951872118730902052378361214679646985600739702033590781990723902745397103950293728968151840231182841759563549263075247470370029867420648019127269632830064691824248536957635479896329230378417689770422871487507614690511724618304374144197965127328068914523426861086213938930370731895129570444710933195823939014927223868553601171650821452209198058158136592750113357871890163626956077395102506393589169028924231480248392918334109060637865470015451140392548654541833850200558031305782774002715540044284496330920706767332039363632954351373314972280611198438659747561241016678887431129656863139116312198427619780879556642341240002836027156070552110422570655913119030234024037348315065130203812244251852094597826319054980404245405922989380384226407480308138164082704410453249061073034833108722305772164624120106638691602859817907471115886318481058925229231400779255528184569260556236775463229130722184645105426025547115425764063172191559212169252424964610977620996860382642145892862127131842498213522325999735563054168065254336906627542145687359938875281075620604412352640770692315328521509580444884592938008682865870509604722260408739074593723232964596827554975241945656188085909966847704500238311858433255090514896096214883054762358161548258399327885572802946832351810823129959231648893184484070676744384180169544465732972832487530897759909815495257456535991982020312009035592025079216096616807557787511979435849822695943128502047047458747028983845384606714600394510819772099335016661439785487910474868367406047735942704366461993405071927434744293868843654855912592457515139098205086207478911564323953904339192914648309786312371639143411152856123155276018252602630934728705081125589662668809779105663942434332959109329404984125587407437310298433812967428077350203086768160049871150026029842624901975952552472807449349994914262270986640867820066180014448843651669089502612547349685853680646926289399796814545243071191841850766591696668431860103093591606522531865947617567784930052166780035004784822582332650672169476062018205816231038876978126499695879283676409097059519725814147553969985477700293945206690890638879692119610526633625680252569768397364445747923507267479507013106151514710619055410824292924485963416213838407771470346353055903913130116988579984103997877302081127005700284135082962707477627893277745804763516222332683044080523854561746692047871044744454536500059722603302628766048329315540312730985788298564334351813933393066650872866200540703326448511444766584394785376905902694063475049609406361597705414274177010804837048716413781388618318137227174083059871079303715515452521435174388833607431003719574364094860029876221863652306471580052540734235814856343219766974489567924085238468128650925051052546818367104578711041913957662464422709806001937516787094824639008209577557174085457248016633199322370719139602520917052773049164418703529624202317568728867068705705719525303290508659373101449031698839057503467569561967963874053427917849762772392744261073247384563354755582796152727060525341397219585625794959691190442504291306686306939395547567287421472513311782313686367747408740223403100616745773609094727054936075797601234509534516855172754760402204681391432629984869795848379960938619389016518926231183679321899562724310211265271179395975909393650010330725335977630938672445032639854824026588611275625686641679046640246619096978478703649262248891722517671667124989342732603663510179195337772082022189867542203596627369855429927204560045179007691222861287268362607389120538636175740752113651429728362556864884284668099617638539970318795197342222951841320832582700426809558928847132749439589308116077852586427159910116740108350493474162510886090008645076378613505997213998551979860651859064565277238833479577642412142621947642148466986647343550802157201336479422816906652142916129376757423571283093369582219149159185206023085359270473408778876377838272815532041765321635464332151049986314184314077148592992142099236081476184624815221482079113559317590924851836566953439314564547585072117214289826965011580932938426215942580562370228550391559077583656112949937362498345701860849366160774833057965548726900817062790984280019577248787951906501469847756971157220453632092100575802889181914800359197370376891617712817030865814707380367739817906640186802256487065086821090617330770262807815974122687951823229489866097871817785465281787812204773661406867163179323634304653322072725385653157245027847427676966465922569633823966454203104756329862136000127735827903886938291395426322105243295912285155775141537441014351088822458352731724231054724330322606187723995704338911594663666729193433168356182152358788514050866276475117453873620535124773010039302198493305334508012490753751678274320942987181083810564058096656209593860871548169030840976437213890327426851433818146589866455008008043625725171263126890923063701117461330179246887011994335019180680725830925949712326788999801247840868439981975628888454529532352984402488170359234700504214813896114153250647685886275005385525068812345681208480215526678321947373576477169474808926834140368439311892270008481850213629817321083981641873113160606400127065500370983401954936703784023267568448384623458595782868626604498711207450888749371462129779430792404853141917598303333200875303972386571684313054355977703297468973682219599992489243738414557440387711882862047557665695175020205944651674201256428521765624842266673000136922826182376530894776252023499745249387550487949274931535989613511658061251667773683277096109362395494656724413093568017440060435819743350975623299558169803356572978314878996338149115939639481169086448227602072352979349925931923861746050707193283784823862519986083181706507508572455088838069635991851031147357388790572563603905521677793392957564526300351121847673593886957363280953644246072905543745699943574591041932995015751297161889788042236358304316001384615499170353172327035350212939089077686621600491463939237655297304358883954777672421946942624633579628504214063089518160382351435392325214725737242417033576932859698046541629390479962579523221834726167618363365598161015999963418641005066934380027719588176466182827761282693321030248260871015072505023614129841807434212132758772749909925125029454353806796095364262791912706183453191099075706410549235506107745482906365037431883002824633209172772669378035326093113040779395463391137433121724191435213081514990128361523337931350586478386970875538885201520431101730017825260473608497542952754876619129231908692847255533489416728534278416737567994168020849098927968584427144262850099049316021846643979957438795974162931115171283720116363979103819717065223717128994330183767465356750338577174344153943119240779711792868538960131873055104288298704459093863121901866984427303238095118350698381574380206451497202890058372535408930327661133076032047670233605073399384694033636842037394490650690118714051354165811142170539472581788588401505882536648425407218664771862461606967442289482615359976511187261570200562091362964721669838930722570975564972766449152518633970292372042973651773520730141788094781285803841486514364009313137942867423961664799609983280586374199742028476935188336782895899729222753554670465598258209442168221195801883215911106472461304370827846420082624460862452441698003500640063229340804735384342065787771804845386097504896729576675314152678413404257966188837587984769279561565631366718078306970996309601406441248103128298621444767106145492832043458354894230000092684574382404330072869947411933943355438685722949051094818497678017949096614469470835447005007002704086632939502096314847262054813870034760382725599310858579160371108131176664732729499156006945151724883966560937164566785612630023070043726923706750840302874800707505491589795694293768574460284605659131592725365480100566741672346813975608618704103764377337023851480158610483964420817351270092822219155810687814843610834797552712034975518178595300281024357602228159335163520594122144021744800406497332052330681303825091934192332485273297819376702811682224259226602407358704702209938009168892111583212114803717284460865423383475191012063362593896537596076878287912774950008057913919586624885896645425865445492678458915709121946879000746344328082377296428198887344370395592080697976055387420864834677066863526780503549850572873911493156713161948353490253233096072578139051804179313168622883795147489001925454874523409199014008518024162121540893351254737948709942774623642508438361823850426426004874652954459337180703465576524854908039148777485688586190327656723013704624033556347251262668685392312565282720266426083116999215184423187275259388864721575824775455983479910838006378659341939355299272888018657708815414839967520426585658543613908933547617412894838282687822989625453039199455884763876461355368291448516468663146354743105564761224788729452079232458431633351710670529344718644061569485589936174981088400188671846156311325403062477985813345336400270736552379372011610063762774284686572804127381297093242847839392987725680749492180207792791010935168428318481381596478849306849963003618756570773639122281372958987227735582384106692235859050578215045828140055786127591285106967604160626775199828968947957920535731641832204946813152013640858117254929649059624072957710010463231409069121794324764216705875356910818140351682874768602293648521424489750308755023227450700355160161223571107936276661927396692151567991860456493544634943603978549819037630643104934668982250564236174645630667717669013959830259249343045252427470845880289006456905609210300033445533203713076357457370132731918166291632601267772189940890072538929633862378636967528398513025584448502631349458386453651456878826455593014466828793327527719315739885890865486927847887511800638296787813515376057923397659757716102219125620760413319732544751831626121745736419389366887028999603960744102760481555873720542972859412290130807507407191132183945763443966942404248529516659615116515440746423553995134571103753340181733246629758836512638382285066268527093109967764827181863665308205590141084157671884626831401810324514474815920970630694660354517111744202757497532000054948451020960974647033867803556750166327796644758286376049041194160856380170562661630106340257841890657010686381392451176168358348061501125356731472882994989846279452546159178383495385001532051566617627845145863764726804211604623722500396477837383844585823526115052301434748410213624167461672782488346211192711941156141504257079286470278607122348908216960694095404087665959397808379667082997528410745553837935354659644472965743608619201521448853057294998451130982155111257446844414713280892675520720935148448220500554123997885431025816274174414059069437291874257561095395863123854723306595797434262138102877711738628652292775433574771005876826513888059779152440513224119903445369593690436986852721924039257412201019052477148134379486567914898623760068744747946329609091466474222922301418311026958961732877935869735273665091336932549542715252946041571086239762822738622794757783786098189002933468110964293141154695901823074564659382566375875317371650387900653123594517144292048963010029556712532381408630119861387178915205297080183615094669390663348603752235798632074330670902410848367013206361449194969233590864449246514445885614263453868133082384054015574180228468802992756318665863497196015890826184952407799841010992986974470737009447179099048040934207156654366874167518145576679017827294829741149184997159294898351751501644027529575713832726376959020398067507390848425093755535661368133876123503514974556586945979911221372068652739007549538522921454050180935561821106488143817727465948322257171937856967555940299031825488283635652722397939492984950895948173544748961956675898142162908140390113692328289712360955875126830750913218803133420810153176681425881545346411182034155387121800917124317684280665386447425592135476322386304407077428747428376495455382642016380244508939958333340864479122806158130584402034914197968014791867430583919805379220407066402311595467128631376157686017231314037308659257850155367161746433691060957023865245457416888372897769339430592806035031578353159150516760697560851888458276431649182776319617437348980258998675977192253940052374593920126098702196669094251903165467312526281017573935885273548500343321787665231208292941251501369155299678209745778639309610941946113428120523601755367062960847503835641674865409599634266029912468251825936481535407002243960065690917212027945651841247386291773344479392095705175960073366962204563392032183358654694996423691927135612456857751452513090530141426179536455196795814272039066581084222916442049037565007306566334029906147694592536508391609862900201981154232969257558405725282477737153773569307661934603094847246973270377627393757917662058050072047322033513644978851778580849575574288626966050413721760810220980814997190854546558389526181883249014778808699768262995555480108750499884976181699818119794862168170824601962194943408978715015141125621278232015635677764355563410349247138994241424221271784868515240477450263965783088634452154107785473231482455557254598253381647315001358631565037020959204575264288336471054835540654571304346422364058936382208601513418744759509503551501828318699658542519338954859995975610247762142269720049228455457714773998679024200633086255727760043301020171717626178956522076724599248047712549663319324127385628894577796505434644424965843076272586786696816420055000673434023696887316847477215444242418208430673117258108256368414088348025330602023830240539241390649293385112313942599994733600255638098447907677770320322099136305576839343478578386821226103794452984680328870464356112638244785183913503949110962691403968957495712326768429371436198149597477647231880096506186621618371964970927804212652516614041608960417683078258871456437640613730476536849350675599988445867824733759935855202195822822690153996711816036463128630231520871714679851002222772838295746765812703652913504444057566775858637334970610555151797091527737767035553671498924561191596377016293926498035133166897604296768017946254821574752610848825817032026469346028399555700323940999755540199324103853756944326954853714918122249309101469596062484181700633504286140397866399059614439506013703289048002161935317666092332439424046590603233889997324383506319440425592113400294217319247240310231145926452040073945853968302475465954075403703886636559622696103910723917141520357354842148858150102182868952634409295121576564369598780803651268018957197039979897659184818435530185753070476368219536463350409841022773756347700122068300994792350196304452576306184574856119529384969848449634761448914344512575152580008158161661506316321197141344755593619885173512022204846052213733989574603241206245775092558798056134038710001248675467563230463307490402833523213677358890345524479959024739704444566697082550389451058200895946460550282184076219339278102208050438148225089492695634450488087030655334628331333154785636074183990499533986970010870707077904008692294521950735099023605942638016342535258546810191308389241214291883746168713518612839255759598038043584252222688024325858729185481239252663564889973483371898913833909231875211491473372349338893262465367050286600030305208981654465459542786199543374091257859320388946203684526994043254090857968552415503581018446421790372041566286438458237291285127752591176077320108779204885302610212070062928907823241422308509118730514862036562079100869543215990436098928207343887189977954132480526719590107369941630106775147295487025864976826874178026351283633916254134370690593288851853502301729723111307062460683988681454136167006089193192990404410171379080522058888813732686467084454662341627526345178797443127807737632017252468482907329345236652371742483972756554731512819105588198400833202235201913826134194278541010593332302489675574160081195298860299086250903892476186913053818039453330743385291893187942773338688219059562334867841844278127000491790508328416281948317586536530977436444193641319813778340943573439252177435141641449810810412743846934675922904656989041152101121205125154635145620932423824085608315483042147240578763912530592895869577411477899384964688517678969074673337032114682321079178905144106555197244259637614913964201346956344228742697578508099590094254323842660250679628444413671969943830778234241008008802373343098255252604566658665015493177226100619950164454406627135002500347142949030942014056920735552847510767056536111499868096047297704664079922165594496446724638420759937412904103894973364490833381134448112983426680063512377990228743644456851832055800968855154958969574238076585116500408900600994563660383945595105018227522082739991792989189003650502506786259403890410435698214543355255455835829503359337586141998704675514599501047962625306694023588791722302980878401427476599524755054539413005035925658984872945743150452987622585169215181132855344996453013114391375788068209725236199035216857984525114403787463606716119771306385811205763555198694104771586692542366677349822304846836702165808231861310447215833673046532572960984340382659771813946204476224900632857861426048263020990643796571749104446303449123093944253672857430147960414554248793752801230263350949321914480002548429361512472286907423777146460983647670034631003668165628087253611656921956280187323234448162857958037836706342495970977466541364215205857973878452990056333738906326193696263819121937253354479841515744590562503692225910692636627144074988702298189527663251662581852592374210865670153671939310812735663706047255493533842838697323760203745498141161267629440778379410810994526470172739133352781686996131130076765706442446589207436143591321993657614039322574088858477292897741917259915554877512464389083418140340659346263998264497463110802532854914452055146904388659142783730339200905907393351985447872076896745429328807960116402355508809152643371213598595431192818376533729342576469682019590491956035693211799590494424812623694135883640288056817207302901203988350152225454725997655777602135402573965075394964504082026655481737826256020659255125489739637037619915712368052968276779590165747779243914067653636203743707829827600360691605560640469453614578386360669966361242918401753747594502736491144586251191346689818605574335364181625521634768471765487829613699883264231942389553093759760768096278109206264692311409977193331728039655747592420991562644855373192397657635521258407540473914588110356275503605337072818286118834574351504977843991783985810053014288659421775984246883243073614016262552042905219005825562956465118513930478618233692066104213250720640237728917790923979891913737624377064179670485106948529014229784511975491802632836619462909892204540853257379762574765628197229074463125881817752398365995793943946996772283310481825263382692555077296530217558484931163078119654844552197332621573907517126160175192327584363262112072317147146003317047506936438430580468550305679427094804070778874136554063188664470504461272705544423659073406848798123482740629326692051999568724428504393491834943535186552543029946168438796419799398175717183273592076250947344624419503170901453054080947346298770750350807076499070122374695184164314777720694417253033146873603022602663807123327797656373601452232406120564699987063194627855179108794168664203303438548806685157072220669496956968367414086065260356961471192318908352633015905746587380269732173630250188535845136108138208689644622308967816477625915427182582225042092961723536361682534705541078998380876490938524983914497332304873303131559006101678770393401456975129561946626731058551124936242478734829432115047562883692344306680716087040263035949322364235877483688845205289297116332286864771508069500816248829247689439995732247108265744507259842623229989013149389404079566038287382281032801183319300542291874161181130352452465199567663200948177332522964710997745138187405976017432385794964767871479203737581977709817386592458577148987497110536072018880760911237689253144685121133052324158940924813364519021570945220063806640887688010843397462092447087864172156844253863909021324346280808795178810987791594624514601633883142263892852213531771314078959468398074966303344383022607221678059733571666208571462741709480894192009529376617737515086439776094311074595029887404349826838609426712358898561694335218688091137669730325150737702513035951053989444649237153518681030866401702672587529905772021451671735398134461249551851778576253587773280002861897560733493196424267225119158575201928388130486989342466709336454123659780059357650320725496388119981002388490741335455782817764591174410671388727601735969917912878055484860348191792901648961761628811688343259792193939210176897802071174139961883462335763068664026467610378862159498677764487987102862008488543458559677236389589384514311920092540300755763686770228886801449041355542150698854891359876868266307499396139043448535745707209271006755643502794191998186265089105791057880738888038835973330823928580501301344680229891369471131090343619848127725521412978684821246161461342664435858538352759398493525473173712849066841271286481149264805711560905633655799597256945396019864462936014764830300859166633844811215272936155055256017220122000486787658919845971284300117802490875164992829509279778602373448481108044936732513343592472629410737974116806696038098142620487454423702121575908443203564874877528184907760406121108615402757261909917193713234160044466745246225413549339171720662975946163376837541282128274786247071942542990383335311222155429302766734694447951997241744437153527221751976629796592323148986318465039020154220721032001814960409265576979241958079640392962517253199466363275826867581615661317657013205595330073382937502359622508607660297685305384017431572195302214067048327048935501723117368302979185940683861346903521710720501379815273074635676472878613222456564243702179475887412897826022039533041671757525606385462259586354597542872704158368022392540655360272640269396559572230957275807478161149149455537116848898884312343298360957536285243115955378227355747404427735938268686729986552159543611721429502679870131492825927185958420024473472236401235047704604595562715269909468553935195315872173851424534478061484526114509729092628178221317124974449016415316054243985829757626083257754931673586586140736755521676494012289258646751159134107283828295812810443221509142658184524923938064033027273550737400754071587681263588880561898619836628256563856013529609023914659353482190806622987072771460085503747974668649706991610840801705317831269219735674030146059764285908708514509102709715353034106510804044417069846578889867756297799569472735162982467101056233164186911744063712264870623602504222493048944949020867883370472189943617057438815554160266937850301890048632961595039246989779275233884780658624580256929360185335656846452230567382187188674658601307678610862991015353995428220276006778520955377738790514631041821062307051337549215926982009196960235881111635069512190941869269280695022228743368559598779498547341400863846477500520319085574829331695250812740182997854220652332078308354586112376153679565361687530906131129445384153036163783997760426077271708052291002593124436938153957424870147005497246182114467774801002279145508694115302130156989077754274113351607830566489579944112928876936265388668503874440591537584632957957528426300875993356639054651737822812564633383478332819318946384204333752801066795411700530705492770858139075471539297003621541976482150964154413455263050227790382169051578180908523923737850425050670287329723595173104523374258248252993968442271263109253584963087574190580165057041581153795346461846540366676360391119522104882752006521008356615906896309272212462538951113883338773794221717721107950307601900435860537930048411570201709744790313029208750555199975792106898350416373573512287342852058110552671953134286039844023809189593553524037889147775563831761527296485713381149091576551204465482605045777523569117549675251808603361000456148282215732919551676117463432511410066560196033544861031071926232289583356945221266750172280281322418950194420429497489825745933053781843287168472492092572749535650091120164361796770654693703145276981253534991382173123011873326498748754388128808971541934663344693942485587921809762429520613177634384595914517576383423795589624779572850815219348644434795597993505542547316154522136534744131941253584342037566260539704851060602405608360851005964131424450911607085014435681066622616492319546715529608601261926271261557858973898566793062823225811934848386933537995160325967267991801850439034182854681667916637578985169998566816450672600699164416101228321500579421308912033726577099059530255043833196097498699360685979912194612711366709160883977377538443263632833152764970933274512760367382937851992786492187308582013876305661266816496781160002054789403350604252415108967196255280110070302220565651288429208044409809681154571955848370384317872629008973753558583239181459434314423074916163435804801319963446373058629813610649057918341531130343224882196825780264202888671389842664299154587046455201234864323170098243650627586820313776261403163723421529858188822539795234249531856301525657941182279331035135631172737837357486793862724104042063480757669301847513359181929407219890006939918062443742520322667225990957928236505634748775150198305835978817162800780738355606986037205852991903321828320198451667760402441643655590339340924201808913585895536071306941889386843324003698654332513388093635401261868067729279266795143921692771567903335579606749048019801507573243432296441545722082047092522611394454138397200063543811635991910459294665241373163260844495315627815041484653496468943896689404528546561192217262164263287706119206009433822806865206276249580059754376705454936947393127222429033081462692789588042371614899397220436020861539386308391607641825837814544170246092185567001630272966509539472757796617688121622586625877198128683662607991180524529859482197158975928239632424448772630205329421956391004354164315205622420873035497518366407726798387279912389894868471430719852721471303265919299137468219788016805587507213448683799123260015921705418495691986171592176579724826562295389806366753308897748309767743157292118132298767064709176441046855928872193011173531157891585093606301509316739654685745833668085749779625056406082084389325443254480168554067267679328692739514497924040289209807184330707254193464059371014756806028787713706190326175838536222302508473253833972923953430486759316687453647208603386397349233277993129560125988360514660634719817522407368394293318466544929619146931121456828205123844816061514534764674162542487296082810585212114882920821556193575058236749496456914361211849364682989340937100577768485799769115415311698379627995410727260366711545068157841679919994995898951558853839297530416060452808898976964939693607599480216348186886125549772281604092410460730138003526672503265761327656242492497427007763924382772671879512683499473348337418423147413755895326808355914557907725124840356460456911395311293033508067557003353889035310667404405393247280951589556645661821357534346053111438178142535593063517815207330633880967207845664512129210489873742973290368821453565705575052325369946167279426657220684878974256166410772186825953150238741864486343183764353268362116682018962229241001688808823751763117433300845023983108695480852800408489515092978104752272080999962011412078198229785414983810593141678332480026896072755104056878554920645908155068561921886542247864269769798083128321639616904991680142634539149710717963597025440801593470086946283186995081754000488247184387321259746107130747460060749574392387144322599561597678440350411897206417671818282694365581615404820057446393372081620278649289029116851063824833872604568871737312933469562595271540585502376423853706888195432044049084456026789612484960621754149261891219829741187064348324827433187966015655300355048351305519217457988613081538721183064970262684291045938644278805547820861044248241595247852330044656409822249647199257626856224508514907519337229970578120269879542334899226780839571157235853290414247918692993714945290743032628148910181105210972772804967063700203255685092022264088578270374918733597250729855758123274944314073558127432938906073960814401741667916527265747986914813049195100973031986185336491045905327356154539476305581483564034045718490957324587906627215353721067391028486248605184328973923601659798885110565814279744765085125343224677083757908730695903775602208705522396477356462500516747310117669704865098163505322925913656140304353153011451728271905068593148956184101908139771993697377469658360280919479618841728317290067023091517565527741473732843748295720189083286731141645505833454697461565921720510260135107505837387943442603368158619620487233363405683527840351546879161667557326650959518483541142563736275103282117350810787727056877152595197137798890230815745154906091268522771941919839835225147290805805180687453533842962938467554103353754411818028017942458372851033753541237830686310680176051217954129651291958792633584831378483773970090622295689164104132504296474235223327471259312689735733564948463275597303189822022767217039821185247940560966825166182975880109710710054416138667336407550085258660760997848639014869944187049412320227973235040316084959201189248971188899494444225657373344960765930423669102969909539617760845849174932015422510971920153929660407904030259909220205275333263121359881694146982729691166449877381187667699737121095303898118195010423825355347482825660551549947705252104681289158077761407144787220659202459768454264841122834100699075478717369437491369066362935503038393785944345156888385366579391114473203795589337725077037661631888109221762466693235439917967093158651469718453075824970342211525900445043828236208407323605579509059037376692738714101238568150902330587731700818606392853352761660433864629865368463990371318856554164177267727411554322703873619117722002722768477479998764937381755481698616232616905055066679682829245850652208063836177815608412207436787910776865964744169564011711942658964703860593471727582943721208062039640626457800457362963176365385453258052487652181906849328485531487909950099146282206986648081002533517571701143904486351075626302592190567565241899338309691653293314929483618973489615965368939303479635641756759738348191920809344645717025852556539581246501269503982502792390558618745842356043975994136555506277767180377969049847444919234323163638259528090735651467737996383753489943288858026383857824586708211995936186714977601152923243023562699017081929769583213710671245601284819735078765562382594644313453051307812893771904176945835767762813033761433705634067480652571146161642207895553627564900128783806276035069493674047246702600061710888993672609464393947431596444989001176094711080578436445173314859928666769737439418240417784861660541057647402559748809284096343133103181612440551961986805172551667848250124411059973837719017929615137998137380973302400614050404126345540128342987409855975775955753606705900951503581425615953603007055092522425131862945150538916596345907486187677557227285654690639844988113705227187423815437384487702688289970003815415226885741573392675820609828013398040367638837886864581095527220763421895819773940074830394453438490760800681763421467906118692635052353270387783784572643739593509043878015600150141731414678843309634775140892622129563535096049902428858200543095880730191293306539750965564684496931544383544716851611796633442191909582408256696629560809782645389333048900501288113578568210270364078646671875221112944815518132382805406908109182343754476651675388648689451996913133179265138792583881397371001956924006213763419848809291306198852981232713689743448868691480810645424782513368501529824955613180914970653053519817788416593034470191903479134471033720098560235059916716537767733099625782813214117349053631316872168725030392937188679944509240237254850602541494373410562526295178058320181480329679308003759383183248333539773775347358059608636470621740086371933287603251097323694044766481275492259537242291350275186455873651136794620415419816296973609068849639139058866985015525870922634883308566352278756534611027671504050786184646882777820428891971120379188970252917531059431882706836961696471888879633457933338602706619858451018753122243420192803760053464744378811349307556436711333284827994325269843852137499390102188665359211472269305742434487421037864905882518121450537652096262864781742907689203479539912702134000582141787506588272787234960523603503469044231816165635465498981571423652024978374039600752417405270251012313873330210891510505112982718196966906664073835880904616410603386989061531390673314966356567940002351692448980951199656824285189323386642559886888793131869213121299757318959758942507976152181188796635443530284668869176273861149621920908242442262190209447966497874983262229449729617102432696972200842879550265838603587975389755567355415669201041704907166043230178598313457414217584836962420878810679169520240320624234091134828006258043120218821090450675583063648978492594151387184336191444505521253805233919690844842754448418209634049871356312714156008664185085780978329371237524563979964002744712092853613560461048643626034693757646519131828811684889589801880439479061390765108872464910778645854948445396055561599641600549701296127832020947990046865308222767871154022041119354930915010375441271441522672894997696465132764696554526424512563205888768973808716166101004913023999220191215532863038400095091086099445580217934048895542367029399552614734924570359595941661988654438432525357581542510295965581280613767162999886610320025394656921750635138725224793824589723129098234541650177754178669759030954396050879669332998901337641740017598971654700919449840753674109206405268151902549751099487833637860012524049037380150972238578038424943181591459492450746153366473420234603686282757490804255286257133802912725672135337195965914934781068731404708349696514925836455921693274842673473237359035721289734005395172982639742193866652864944703268426337902260471801448447433531448457921195145094873550749759133416861475674735250958481844237475740545537737246275311720826061257930468247667487064300000756840941976758653682555051870786740908263102388837256954358039728294484510412581793835587483710370759562569264577851578660183710907644421397372712154912902717219718486265761337517151831445353005102263379991561831500820454302334807308394242804451708808283341907723179679925009483981255655263198460213086185592458556895594924028190305028284793907982555366544871084103591761600996362142817950710596842467291461335478015678297668638806766203786419101226073023999759567011055185198236178393476496030762198961209704235526956576490433340110239265894944112486897488141813737302633282417142514812489273983415267928899178362953977198669450218353152785268158093296123246470802201887262143648974375320361010223095868931205713836926332039035933245202984793682742968500417628877641810554644973156075009081205518569638105113951939755056081320730289629379861845917456565754400892285521173739239104499017497907688566340549681493309178978480686142233724257173779123424749655035855058711011023938120914557666956338789602445146307612198677926910609969488747088953675215881360507603218711704341464852478861895633234572922523087240830685647312626313689932032214297294809709197508837563244835569298810655206256884530537709812248322659654614436694949376396596302043473743664174926282057137251757788779964898202974846712567513672219861633428844047078016590085247375637514762204238329861987166291691285728348204973007064221738100567723052889145788926189788351364042545225072245339510607078508785741445614865715840704413286061923528945669221469250123375342578237049076080571255152962296879805965627253298693210970305178256875895323582324842706422225157790253968190916125237369295560129234833837848009129217939503143903046146328830428269299217022659437428235530017195350276200453166681755205795795120375430918808176355471559399336534871967982630657372444275962506405152209471641371958584064626206898122737343042190549121598347329351744427124103376522222454696337607134004751696968147139030350886128477892035717379714043389205512434418690402493952385875815618453696719606105579777510697817368200760158063804604630408295633236007029383608174531229966212664717120443407812123635272025093059332898882580128709709485221207460632787825954034280952002517723797101776671781210855375997668506716919256068180570178878897012083411925213777258540660551463308774471843371660434689444950525099479269529654229598157068100023142354739901858926509706908178916004655076806224668850708533487374057941723919462772554904025837399099848919164458849703956950396119413697717158091842880969050864172231508624709596603328974088422612341308487761472999614493861694248192229097737962513774762522777586108578343125191902043795140038851785850774184125293488312077595491377053503142738294097709190428603850885755964530736632186462239426158340123702147929567345094882922234905611690458369838286018828328953275201255787796132881651453412143698383476119584482558627123905516545779285383593234266522471362628813392296956650027358600832376414351056047704347214218032061401050571351880883494805050951906857069724562867817622626520059547563954097747098911392067322159577936904895182606027398116071321697530840944222937601589423947932984221362709293552424934593471268244304592014099797530146261205319165994811152013605947829062029709857232661097922421186245343825255255821706958332800402233120225536444664805393585838494300294062597072113922693284798967783402784055923233832833212259209377060315821238516555016452044788835767326668390317285848928077115482962223632308328850239818664336119282019327901809501808832791630777364969616852176783317480427744620771661965287070651626965767528301628150229245438365863760085404526966222748888418584127665072914500973137795222108041682972362206891579648690530610883857063570216694855310242592079206279336405511257627457819847010543147153235616064009507016893255298225572112688663164473357294915470739669601673438383647327236166996108857469997409299025048273634615963034428763933960146327957219104966981275504088631392729299795237710287501890133963068539561344748485286641751543522000388020389002049985444170204493613341330519462252374091618884749850429615269471675557826328701969834672169855824910179752772336136277096817838849953310600776769868549517380289872443409316948113398353509442504555400240685356580270546628731732475418537857986648261323469273999522920429171036417355080272827002347334024824697767461237038672772708041336150158860551363386135549911075159643722014064820327389843094487251716253132535668209212571124247884397278754999243827839118415788110488857274162901913776204338997741651484267110087751071911776024962498568172774291066708715267998702298530208398399043613460460101443739971797773783231554230910151833703916129916487069711573655568801786173983905064045773911693033691536722628104377936129899796853368137026585803364902631452321297744085881565037015560353869508579864839212057219598033801771570055112783726199291307556661477882364495607212539410138011619679892261136127403493966855699856727952666576367794950110391285494435858646837181089692725507215853234624015653622224552167320605291837046668405647745427099748317478045565925530920756814217944469325426230312981953522608755440143705009163852613859236526307073400060574738040372766598818419949523957904022488050602571321957469841579898646152437670785992562390056495880343166269298190947621796248144247004589109451826268608132121313516645558408793267678156577617690189874001782793799044195671276477194430569344448723327176408014598829182680194985538694007138167564706557313964119989773405861710473975734822834057094000107130510276755044265371536873482453024911173897268443514059726959113196077393202850589752321227799754712083499276041340686028951333519462925683806371572784475755985760955297905123890827652921389354560852688994211809009915190128521533610879773829311457320867774107994961733674303917333206277422773101389117570260564266478799183993104622221377021465844111315711857413297240993883280520088649725172740567060307877842012824278063679687236250906066168603453379877398561700584915200310490474371476115021768510803282688310618673998222329675183148374194111626100823770251622250360533197112689107827045993437391014350556283246669956800246135759820754466097667018892590835557040680408578434296508120276030285353893334909591029788422212780531403792047058722228618642589305602454127586567801343143972848968131199527998807907575206367583947159426587621261114171970903564860970151619900935837752272768543948957056514051697622687097477108759740327928571266421344498117772646600062626105783427064738014294103744729492851470682911120641503628061215292779535324078283883830497942803178609352214823165752702071346499904313955439635617184288488533952503923094352364935644557658486045207574038785389357014072794396280838795439874458869983254284793705172185235810936761014669810117121782791811969818792700850004981425772811868110157762665217549728473218474453370478722155483468574466462797445567256421109514676768890503983313434506168975238440630050602107235420231544042754178690549441695195838747428589003663349249064789809331258119470516603433305791972815830879685698528831407412924163670526650611121936546988988354292496012663539597603256475024805852173262174214824872813846967414853377249007367391981789724819791746570139378081139315465882691265216034570687255325979435305542619099195232228855501679759335004348207539200232539262123457827601958040564800408149957944609703493233352557842207216945795276335283633999090437229508118887268950082253617117640160434649539386824982957178380188355534737695828818289377777699947005530505444496654934249211101471414466719554435698826743497755661644741434926056943197607658529642472609284826392786797955880178664038581253823895487194045522141266969534492752101195886567081612933265461845395946517285853559884309810864353347298958266135475983910627576778701448348903549775181185606945838212932122697933420673836148213997092739381111391144484317600786663837459595225795380498491423403306555284808820140177451220020505831746003749185971812743753134514010007222199791724175235676932891905710025919426324735466934714409456883121552383043631045748410238619238562448729616969227207839400704610017703788312560759103489689346732389831096237108987178858465939002385217394031048214746324895476577414731872841843257905178345479119945102169487767032788448144543313323053015315119218911966149001910865360345811355847126525755728817723195237002612723503103571115260855884063460683173359548028507361545688403280696503368163885490477455739925965858590745091066580322724656639047471020002686502704701728095456694919147693142092645663929582512593013044979398699065682621220391881197189732172669155604124601698242912057133652439774955620404501131906840694675138334623475617947565534017670328337498564032252320135501964461113281624649274038127882931039365262356953357705583502392831526349428251462551008954732227248546797699153030148809662567949251765841587611012231378625558597702010860560642254592304454839758201680861343657221339898310601107228433538178784895631684162265597166762996445312271976254347353021774057889226461601810114941620742930104156374268140833630902083933017442001166420584677213721169513187095821850490694014198091976956006622446218550253465748284669957038045964854140722165792822875827900458539466253641046676158485858397222402773947686207763648070872424305558598144953267561484268779685771528651227484855912078564571927094804705787873264005419132163494956957838294978533765300495458450541717757962745474831297317621708847433895775183771578982252441141388369127031998402285492607824540512506250557319210094871034335700527016245078011377362674086422645572675699518597852419565670630441540697002838184859563124465655874831177253279618893602533191915346486268237880921930350737883416698458636652275004571048764101777435271484386542244909213065118774600580111580379832596732511220191984767802523615413733187345439925476998360612122606465066457615969329567674177019774653289740055100462201433007259076500592593509460163743349866057419310381078147609449253341283471400102915829090757179925913926528703019435198006923109974539061856376958210960315629439590064327634359696047159053881504200555244528804080700440182557456120431234290345882466690088644742959602142733075025728568846126190382899926406596740878737472063927671195903987575666132331161086662610279126503346181609874406859354058768371066634524918986743593184539719071063764383058586576540204296320708667303697003131493371172886308287024330764037512741479114012919751068771191405650127595984293432426590870715370201330088892737910356146021491440600269714013200044799476508241768915845574631777696095526875187567547648273416104818521056545419221738488109508067817359414602552311473476788682289689841672448825501231714742779706946144151596303810930824126265765884383121463679112201337554199710190174316144965856437091210777718087096574906271764762985537059432209212687185627427822354880753817293474482106030531258695538611093772873478555906562573306539429580344985525913943519219224588366322378852259020532262285103468488390981553622961302874641376214396898246271287719972356340244456328126715308245670329250007217338918750145123639126812072594866975814398388454296428262821547874377363104139001949309469348055706834693730286576368948425337865040500754832582602454291938405384284532514580819566613627007850524671375879783527402598308188194871304815982010609177756869065726295855704561888127165957510373159372047712909377248647839775167951120568838237499084103473464437169212472786568916300586742618599726472409069963923170928479275274412900694715805421739964588696143949923787657469870977344133175534469775005708724929123969525377007930813727990466149547554416447094934678739913388446032253794034452934424116863951887555649567609342648557023473719151747367386848066530480389685127849229073792247684923204370033133101945678132268251422811316334901374422585712713847879034366382174179111233137218634635783163829565939010253340243207048978935405787001239510548853423430870988334238904620956214501884351105604604248473343106897598841097547517097306723324506899242618730132127661689237339735051996963215569257910287194497465470048071306687344644774179706005016558972959465274975871850811634101686281483890275894162287038531675210760828251829128802129562801851748494752883091666444405561681690274121017751047822385108055595076933689705977326627249517871276382026786867902104458718559072212660681947131911087360050831485843646897368074176704626367261462161490951529791395474593147838656653319885783031151254040135453775481897782133019564577104051008256611047104362934784760184968391474574089715490114739244465899157936294665432671555015909174245372730070772829797455468365746091249741569566001292279156805765656531316266693880944787320974067988108885899384831545441661681189890264175921824519221450144522917936928216042712289192740225319800206531327390374152427504485206477361776447243348787573104891818845801807388081259387800615157402245556943530557918897047851127257495545163697013527481039837857172225519507800082109270333189777561455818235369733842685355836157124558118208613019578249706635771011969109436035172982029084922148118226585125365591508422982642546905629440380576748323212826653311812065385597729077228268065973948589247472915424593096189203378729412803480224783505569175536374344576653101903698466004406274775680645508256333803478109563579629343592573100220018316961489312559915031746819744600527823416317906852752914744993843647699852813529241039265773203825431317142292414651809209278667659786280134945380816508938266494250003134789664150048888016313211058469746029600690787316352055031311105551859658471651628923618913540784648225554657612383951953680815331146969363300570684885637225836221844630690212322734295793622413711593842359031061315389129675687000770036747451830765772732255289428275455116519246539341605925715486640414624296487520623185894406651856595138722616439601800700975138704321987400804863405705961147438460560268944546122814358056138194093750423183570344309012845154325038584948280290328904941557194697997190066745786990955973353134457590450706668166386469016663448998910582499526249838694642751397275578151602972239435483945543402304497636067515881895208533125857962893142169538986752901689761069748248579617818259483176827652330553472881860696747547494407825425106418498330064539391861563526366084822347905995629307301304609774360103544508856935051724939414744828254747987199855881182149511686540265740117473316875621935897688633835767018640475255612569429161980786410315787139478313897307021000253912467666390070518077617828318972470326965043270628550375054867976285295869577668165715425803466026318269951442511061072656255205714703771438309451416381261674341895434541689343176179404551637170731104496476372574246703677418932115727579964492480083577530027555160997483585459352087953140094567024223927284998846162611595210623588443150578178766086715136182956101509397348280591597800997106461294449423512010816048757486117981840615566661242484677472987847604113764889580843768696205548415003069229480838415002659326629682090265167869478217153669414713656183572341426016581462552034471577709517378469575508163682230998327376581717543283583443054677765601134653880474515986592527232094362123035445265584689873396074907173658152446682285905636207836126879068287651729130913065031335194888666500891105830116261980968658264525734071172086877818907929805898382063214210564775354026042435703650713031131040872919089625419054381150503748906541591765126305002871384422176048333757440512877444776550556461333854267184651395030254974755486759770808513282577454940248379652475840430418345462814386015380096292922474323080229294720420125118953509052525684647375503095369774329918095146840616090289150708617613090210978131250581784225814562244920392282567594871930513433983110348524337319413080412111585284544514838489506675236829172580371702456626521254537553001169134715306205044428217819560846108291759059991850636970818300186399425051236671521957515654226730823016723615730013353947835658985807845448777696185067101156886396670443897599235683520097100210348861614947602565349853019071813884956810199769126595215462893161888691072251930809183782977405274419658478501250037498366335943443823483035702252136800942727110893927631696915685186691837219009434766937463648217131335268389245015075701272120592860735435558142159287538171441759952940575673222143893617168972883614165417452153332469261500459441456752457056615431472180775182977164170449987509609984392965678684760033600504554360468947448903057987946297155111616725090378854924863525101163860440576955933276440851149694685359556415588121956766773860996531628024843137027528271194015728369773786550930147947538320824466330354214564423263684512022241356569924010033616529965911293231773378379874020894992465127497319540716590281235496360562795620467632995667505311859459764830151960294704085378167026772180200034209639332608302971901080017367580896432257776360252720376245425450365535110577564725404434478209242796370089655918674807476727845743346239960683242586849251740611643530050429804513893686204005640914940996522792646863139142617889693478672226548393267665184191716397890468882954836924544246665100961543288217369186978669689187508176027392361329780134278180716463429930747517185735824608045785617127488018899227690392343145960121933824564433366231099878180697444824314310346725647603804767690001419249713898017839866783779183230083329504763153463294850818686064801463962568420485173484225874283217205300242848345925295483166258366158758114462753024699634051264250699204571123152054547408692365591419684253597928748449625220233442082611025865336927410190592623470458583072508684408777806904105627559343857848979268427593990621876987935177702504118199934247666001179950073083506430909789622452478879582520903882883269709681482530890332950228087135198028914969562048816730897260991366796506704088901675609740444521184484468546059622317610705931501133511875071081511699402299536365273623748926492349697923768333681860071172889471510141073580756359391771026661705135613447760788494497759652301269507255005220704480935699832925418228521713443863036499906523306826491676901902574940535454291373376061367460511368661442353463289610516302596913050910018143857991833319169335617440834499982534672502582972876902187676642359619654243132700445470877460681873800496888498525964951567923711399947146292112404583582086061155124193674465922947682758653514288037626144558297453417928918182534463914249997392863153591579336181279040426340748253550384720307240880316778734535398541751999504295996548051655559091163377724244486853758857214138519051272736275259453447814534927030184937124279202670551788630493876492346325599444642433676829223409092928825935290729046737492603766391044160580277118236092379652245420354799495688211375059689458869424244396714004500622218771518242734699406659112002248668514717830087405042431277230545122025279761909230028163669731445649685457523633447397959174549713910941985852267690163077982594271846748728153004993128502859226685674188849464839864736207663326291951379069846262105388700266879898463805536912142414510713803957838978426845967934767339723307228436626856589928682120605063390111981908949640955056887460178802855462088722945250385891247956499693826633104306222840985294829916073968827005130247472699300059664119317014324663889604079396419023566875182880701245292789200659206984349639921330794066931110345011146876485909037765678979247258941236007525577054813404672928049551507145437848761808087034487350230699054920235147373629332329123597773942692819543711662809532313310084759260974981991379363529775144456686136829555916012288977753659376837275964997429313909893870138567131847262221476434839602194006964827227533733753582028660351678818492282700549951318994036463981266776725423902604559658973290412848807926465861707624762619867119209282858534059805669997156442774833281164596094012767589261477438913952525590042353920021850964737111238121053531458544610274247659936830218710372834541545286402419823978219619730365163123398290172875084003357435740641032057557829522115686906355125134545875027946481211753397161141362042044828340145379528837887743161615592546451080099223946496183067625526865148030131315068169203941823685363948258589012065560997481639958285760823379668174615685658070992645425769308482053530977534825167760743565675884005270153529621964090452218575037759576626911142526576984522084745360260961280794095832784474674159579988834587606391957977622793470650918842619249471974381224961377521756202663120078884949412813589350005678394964127208260701514047071258030483152690717132261826098046448165436104796592203713592545337840789479027407645234321794969445013962200931225834442980165029058804211824430062954930991306728749358254129268636582364366282841721864715577311884491458078052969082065739916121745720060283024179687635195266384733776291370990609532176011691096006939593849979321343308035101797653193922229174515136329477528312484034783930497944357695658371924194412083344206835589547846831037402360961480017898153143230989886441341343193022543670520814685783426004792673574525503359158959631357349139542534521641114653635288286989684509919085657618609767393128498681207694386292895034018018278501690907095112082879753878588275677912569772093462560468060673827563878895208713755157877620853546856469982583604745556087139500514597026296482631630931879594582745353771459870989368365768726835639312613736564786442971232595673210517841497655900895389332295251015969621600543576680803577585123939291053386819393668416608377883090562994327685446143036458250007754889884191968382782177972649120835741693594774148608078098433596193750268824114832064731454154338499699093428863319207139484763916736714449488721620161988016128347896435909940512624521510604249563782495022289389670456815022440590407741977885288972907689011780370009504502053148644789552079341628073948055028512322866060312897319778144603590208989803942033055580360936728126941480809742209960549284001089674708531032199059569830037297820218574661352823890956512876533094778038493160919740236866785652107613751282866873365801292550279824238731075280965891526056563890582619185854333163827560167323802150024243094440931961187548803055297201399438411487988871345332337811326358351985737543769733472061365823831031120981152226670284329643956681404314270661578879267477983956967745893908482014328509483588400231440001566942667002095825758655466077682390450271727435505641597369341031726348483104546430239812069992970808336352415775292299557752957234526782818762869227409941273695875871288840757869732051437496063168398989262326963824038777017718669517593693625631219885993562489187079268804560206488325899574979719112906776959309532673362109888076428848190608752876815847782326798359380257694579380838085645375683605429579799924449133375831946649836395581744000018179889041230523037883392625568321520850199022198899238979112346952661615104453796093674973331928564047314205157413674253157496341516665996795288914385206705941788072913647740273419958396040945923598256802884054154016966757147504032903385588786162852278462865482504478291804439019565925940476967207310262304150316055723960911010511443031947851193178768649179240791143507710376486315902582491057845288218532882417462273699522891564253014079902163709570297801560191939369260800068569034185354671979576564324311936608918586204015433368690215437512943490792298023906398435101018321901592388308494817133333505575133000219335315939653669571003826600004839000744963023350271102863490620288426573301506259669680416705828361518977883780255174226836079766601255950387300953066468262432699479968148268037533072496400089188299309211489959889125666285098394099390460769712698552280296656458155340408753260847855734421794837569306781318635687928606169170302753536409648905883242600928973447854115762731291144205200607090589671246889892698174786802047800002944291242143373054005969101099649519794141336511354002954481735317301399286924405733070745180283985036998772468577605222515312804207490332503861840159174019791675850289158662519156244164035289696730154032907360553109019733379347623556370021550685080237887339173015950099310468199053679605216487865521978799796974130576912888785727399633365614233427516320744955862215960195718284170736449165166109768979193763336354583727380176741102682005877689855406831825367507600063362652553328979443753938416048932712933401303934367695984414210507124231133820932981989075850000183114236565422214958920907780918344589257314762335913466340866652411405291784141567448296558581416816148975381398536642630840669679042618683406842503762610004558834823267814746321763030087167091400910337929926992635085039482092782634100896888205659358096510876438497628239918951701238382658676220956866265656178631546836368959016747699859970534980149351023401182181108023037503785186122643921179521257350565686403022372822843806333797350422878701147739447345403283583094806372296533996056885179278143504138969487343537412577873483610587232917631483741416622168170211722430890160177358891867757015122820194176751057915460486090054739624373650964939135068945091028479767447119405718367892776750569849022731532451985164520416226569462528172068557458856610058454146726378643679518670146920539285696369814812459053481151619150433390912618774726151644473900115602436630301914298660295026911847487485351892282375245033127248526089341933410345986693605823952671761771055342709215622162355297198236983307804289295037654606268952104931106930835228711932040476075163231583904987046398340335574933040952067775984112910334448211485801007916532399438718864926307706842013330383155710978546150416851285500616321484716660908279072292134756436978792254672347176308310261991016641451265282298914245881147581730045816088299259679140177875150768132751289887637890176719741158176640064686223861493089908914703712036252134371224653006193203362374110050976917019601839162796745222683467285182259562840411607322950397692041920643081868376284518238700102962409971283362312887766261924993468435035195539406335542370284690701265518074560317816274448230200657540745253287390520687927011349514373615863100622514916380670948325101618265881926262796078725992396826726654569896939632866204934715085587344356956628412911918408739045772602240600296315519955633349630321483334455475895237217579175551218747555865534763274038063973107856002743829973927991723888689540351300558826402991602078457837456452288436324950464652457254685549503588190437471510318332317988027845319448107030080214709156528563907261585278831277390866326762537057045308388174134793194695321462887431946621314660986093620873892848459860754349190119633461792154908494665746479505389446471797893638105366750968984020609851652533789115145482110492586731653465052755300214664394955278579626212773370366241475642515073717879531731837512952220723088681595858833234246568183541956287829954064142776533035270316708348584986282690108846205247827795485048633741526582984996036152832310401069764996380034763158851248195946456741739248770531787961908864262851477058964137208014079531954452927870710893447177119893465215215514682254023902394854252350790190615799859039861914169206873885154015235569244550848722987442623761594086724250565340350710056433440819152261503813535476007125294714858822939436323521779228281745482373840319716190353889140991337986232565173937820328642479673015655041512708558434164340534500143326933675597478249575941201135267527324677669212273767776459857161971076691579119429920706669663091490140096638024678843988782040337422787429973298943267599565150469273179261987430391626700978713945926557159423795227035073161983084659484392428182539079800811383727058855300484988501051220368344640577408455981420115639273889858539225428190451425944937946314154583683804207958324550901206869660108274104462034822727774484667548375437649889482408552388729029020836298291064568473245111720237524703473728316241459943611919975900916395099637093557509791639445605697222930432238257986685945280432292338472083939959932126116462102759478698829092689922495527617588584300531337887058874402171150658888622246986325245401674735581290223294541135143752552347625678457725168253433132950962948188575046774611696520035049285356941382143814049288351062805590301072341039970519589830061487904353285798008247534909025953235802751948293092592107612564367955669491919578600843855566922240066712042784885191470366030470699204755521565711826343407553455947481029692322530110860530725729528776159674990193921723491617490279312466458212683429802173358440717825298110517370656084879796302451400945690995856579358764134833045470924550241794498025706643943226205747458832473222215219869968646063209082768853057997283409123056377550855057696844291455753080569414205062647824432716466725419870353344467195951968879992794516283294351390988139965578496241313322654710616526823550167157472191931346556983193681585371434609591571583348898366813770793408966708927765478805605508762164914230989573507037894764652011315253917201481025142820071026742793918697024401056910790058260426023777668313526941636825941804876057923420787202461679803702482999751016372342131566225067323450643646593472441241784881805248954434288788430505599072653909634512486597750248076031310316939603568689522387988794983984606503634931189315320480567336410366102344778147771762394368873991878957701445247065658902136521996504620104199066923783308041809205274824924069937366067837469794182918452017676133332836747928029088508396893616540735342175559486796886106334180201099860792078362061336390398084186266409319443629848935949951282486384645740879057766516232364182182974402462582844043537349611701688434173491253386366832189540605232007993284730596834082659171897573797687082622888498048246133448321252532283921246140573689224582865423186044738558730246872554398296097829097040991631868132385789166406390194179164707192215679126107263444216030546196417500442679734215860205764104663052988187772196130225850540866293550257361462217991549340459267108630813286951935000398120164188496222895014977341554241812569208715827961831138183506017879237396996949716467532156219728952608685142433412358849437177356763143535429224713818094941799406112557300193520053228925601700962918695290432075729500913323484225756343958019651751482744121225964416562191475425578981061703173131834318812170302653436200103235040519434230339766378429676442032296984062838308698315136835234727891502935917577969982497258372423263269459228162090870551319987954553379690688342562935101612071962179028831722109826782415180352488789870005133434769551581840749893371300843438952807016078658218267395305153360019606546512371383996075632111257436275779470471949642924628375589109538328893546393136471321121943359658037991045153263722164977823337628591573328829613023078137579448689179616952043282889903817827598321351855716960980491765337867487456762195299059296971688982131863479551190603951786767947581317755359943058607077002969506698442868143242700280374883996928630792517657608323529675263140567011805612437352172638245502107959463551063898044010181736700135264704818304018532970985363299089340558846634483813375090124326152677530856182039336342314514213273665423275275314349383333075023698809944857598443176711598853953914214725525021790532304290221918113868019057646531337274346151890401207968726783297455808140623499177539439298388170206243723528133207213514479953069459788895447756749660590209923263976674404647180035152625590258366556815199839171607643797092335921197292733085676344357799298855110824624412184798294556632344792805865145806558414328837098046759440105136525285139822453509574171180421610049852409528361445015703969233700688347815198092623923718194815776054114134218319954391152169645312019737959582089944642701585168326712821484519033383887935741561262726152278401553487137578044248927000078958538848118596663941250683664347350357195287160522047326014556006998913424638214865392556947471174879791919353787040758177666541284274600230022847240312855127975970986273896467904866882434550139592053396610681029207504132415617694060132697535521898528720445168158134090480241766926145060368744178564559801702098219860290464625454515344041175727276251317929290406128926129025888074145293122489264651542943956330872201712493669309859143883246541115691721680542995178218416244050908308123080244733871068782584436262271456610634807069351400449765208513727755794431782590511744367617854014461173792288550043251178012017775163210846201141526888938447600515745909027074843116173754683928197725885852070070210145293260263847322443014025888083449608967465989248244535524978961785998693113933956781972206438252240289717906913438076902764003653743522442444111656834743893446420569096347888642477342200715306216783823239766255998939739528403318147124301531242917819534807412560090744885749390758744794744662235185672589263770785447972661186076488666448640628186691412851556700129938444665484526775833219611687336990082583862557912446498303439826681875060098884371046582667351399404306114077092956814202750218102754828588693862392448973650236450044797254290267882566570178663834117231020550739052688083573250499313409541634998024008805990427118877410652456578496009082574544901951205583010905192964865487564728934584101598401634395131903408613858095968261253789792919552291492324945739215574029094193041026303222955714015062090334547516538075766322598067032911857609687515772403928106247258235122435582811803883973151351386126471453572930330550735447736861214600535668126660765602458769669847764577510873700629624956862290642858032572122426605355936763064112491965656157832456080817753757109291145737661334284740880910154609343512334572450014113118436383095397476726404441939893314198619328554500273982516219655989336637771082716136932838971959029325137321874510773021031675119606453877638530787016516516362890394253406214156842231142891702010147889341782527985441098418828048371092171965073229685855475226927504862801982450938660618500137314696645375769507009942726930585379690098146494221173835342928078070870825256854229080440768898498287455208401139671085626937623743053949653499446271576478064724683409890005787582332514661061424918074217896835242092889155681136864993759783213009713531928029757843628097435036700595984924338797511037423305427863880492305616700435259340744643486783940094796883443756303279331830340806084757035237975621848456900020430267850490928800263414407622614481300462787318243176321639919656321793017317664404447593964508116859676268216523488238245326080937424714972756469600596603422923801187171898201320706174782157935188001755898899774554483316196957614479450773249583423529867706936363026853437150575230901733305590016775023522081352987025437823542116503150603017794115451272523837422270441767022422001843585170384518419662304128225065871480294515445445692330600209012487428114950086617724034160934846479096594618066523233572931001205391854456145138090220308870319085927206048615373832642758822851694092071492878081656735556168622195783821169790829255635248333270101799333830637594498052331647244008651331119666706308804309127176346707064684878330152932240441131407035050311070020104985877793779107890073022996763090198268354088501717580146334296842651820306363552306189341767042398599498441378223954234623695708390493930503732676465705406483741546202611505079611291902566149853381023611000692373650827789026449672283353427412581641233059068935589513183200209266228250822085711815097129105177029135130170138588811934680798908723380527839057907532152332598120863891654990489262060389345832262425166810432782774714518663751738631735229716620333363354564863825419369858721434688866847006586499567518277427328098031339836829075183369334567330538355946803615755943847947784002408200652099414178417612220666770274383928447295598311438376394458818993907762845927790438015377399190843196971407152430762676421003939153290250440034486965771812189510714447725310958219054130243188956694022915835557944732025255617611155902887408001497279950412497181040988188422283403745551762379670944055461437925929094916788129002968297203308029507737216614014846953594135524903031961782969813334681680689305011971265522481372775158643204207011973756613791581397939043423969077576040588705163077095776586624716917121259708890683862315251922607367311138781873604341735481659617547874111521765673128122039902113123372935433991738432408365571972439211089198384626236444466504906800538951076652732831293102772477306530855156102815840571790480859899591249375408338097092779876560151282713511246631310913457726656260219092463565689943340054631854292626172197316893586452934397229055787025004289745847853215736297847021278073687747522617963572819537164698210143350142374934890775496191361674617639058831788607036545157822238410420662919146748632593227782465516967311421367592664552862255005729909912235924895837363621541975245520611570555328969254048179804415414405139915326167705078380527814748986071169397910606110530793666711617787156048410083796273581319522335987970269731077572221758883152131003958709119438358434282352846242847859967601232476907059989637222308681966885594363434951767518121037294656192574524899008086882046485129978651702398462105372563863098182548061069785515493026211508853339865534858479044485014477100143376042262082901857174341275452585107241351403406200747623388797427935392444375870589834073743242419988709413202908346296925167313509663766963538120212649005004653055544071412970113718455910221797930598338186848241947624657723374887568588085374727603390348077678377317192413946834404985206356074430525197717432079478273938905228396165491808370248877950395803874814409813115362873096931683455291252606136206866743432020538454423292000199511985141659228365589530998700452226825954121465960974603360187659289126085845084765344315150091574545812081456251782526603528201778272556624138695772899917587639238864862275581683791515202072572135365178901557483451069366319011841130293953283282428686652165521010959848852303509168803569144878702723616983893456252475873742513904580659208712492548668308969216995091407275086735115923408394714330157049595993658949390148135501792966845186077763985991337217375829624071663757323307322109908802144042289147358236956426466963523652847833701319872977658360265274189866727649882075589614574715961731810294480879871151604454591072100976657783233230649900867901114189840518287242404192356357969043926484293412793757185393666295058311174010702595924119292139691811259747313996911708005678798650046366677734535794311071293450034663331015494293876548839221705114607652652137672516364860275851299705419256123140434282043895286413713580396348664238844628701504056216467991120445823144934196070974400982521557697258051174763092774658688862601453696598393030307080133525679821453673713272297715933427128095523088996717636181305907062962934696935572195398892247553788077240714202967874241647997608103114606181948989927576187665686214723179944362332549764500754152708609411435377010188773937792730189977889652441659008579979513020698420289038040656375027082511021315681625376589723614411560881183928936238687195765649467332585610948232288593451564694886696307118713884696609419938397619574670741270761232264023358498603576249327663663982285784731820522135106819856699546449406786676498587661415310303788142904950409030595495136482380367445686244148993037207841419031556060718942391602209925123013270139829026801709227650064248521180549593150098553433772888344621063735617160446558518501070684094410258720532079225017874605418093944732413753223324677908327228691580729610885414695543848564018150935305140545037792500846718924157652541141837483254311633408793695629163004187591471022793065197329660644998991514988580431293654490062741623095226143864147976120052137190648247821460757206173904608887060204130881455373233949355780113142125316129648242001541636981998821150035873609164398626066685417349394529928738823574949516552724236500765283897632416333938655212846363756400558097805132122394582354000724704473738769721292249933263136366512270872613206421202287345404076246819752559431121933147015916704029672563006289300060570161667131470754362355550998159245943724956578338108835361190879237810565984250265806120592001820660717556523113692354669818898121655981794524086428219823290088054065977891519583877605267061749442564297331934881219964074911796449937504727788782345042931395016753055470825094643652102083509593014356925738348790171678907742903155448437436002432578988150663856890779383180791187396640064457445267451662149670668378627224541513468540467048470564855124672744114018610558884160159804470272548590763928633783373385887592015773438155765314853807151118062171777716849896020698022871191258589145835135552059789579251706239877018056586717113686905705557533867577939890733603573720960913176383027072464785828044771558988805254392304515721549916248604175271663654094422811846081914922532370099782428851351243042032518206023355238497204634334877727791172714475283294064789520136753745879554808017190650169424233927058207255513673780419108845415962462523368859876762840434702502781836101819918562913383748252125121220050107126333283435250110267069505411654092941417790727686634456432830032703487782388261663856546758073501361437354164417227952927830112918273486605956282724378151921131969155632380818532543822820090681568643270128926433048920412255758368110754061323380979490814411427301778334294313338063510431994930276357523117724203301794855630353797436424610738804452479874453470037079728957728514279123863550745968471842409090813922916372261221172935022218734952910796279703542091022730609606659849061241185839780806582682216349402993128441118487316186085649123428026917707346155563558044179688521119965499618808630248991307008170453390554288446526597755869497155594566264884446862847530449138116468498010952738439636071443116302468933075119302887027238783643286708640019175415280149416646144861596785359604610446265435594627827600761357879097206840620017885347375065422068014815604815057660747660353319207601270008362530618020472505491437655450617783246917851152250512378377019052368621285072308893502005766880927165309850810866808216742860721936764347014794872549951177042906715855655134646733247341534807734643489259593508166012385287389892534982826618418912030249882391046206432504453458987532954598726861165176698792472750958786265813059316163198552988574250916172161904911729955526993135904883379652462379950067650972681168791477416843506033837857952265943988841398660104373570325609802843775562260055781306198676258627795480367863604952259356148744828294060904413495270543682373665588694961650330513037867781865132906749142286776749677061637653774501425561945504456986038748941481036059691885393649163371024387574303705353094151754373942100480935884418212248013715774395187597498820004255710465089857277945550381378812034807730215183638280020741870415925156063543143344372683209864139558041705743807661546170134514370187800297244726549170495500976182607343227024938554779603647215242338944226519365000738126042940335373737583516928131240246864489378766807395778841280991116997803577270769107540823732406222768401911774633179533038605113882695059605288476261567079281197043860200393021566190188205142151167889937211364342972106070743355281463797205125491001639254423394104677127340355412610017532278610824814059329477407537484651068029030379154041305052883838249693916313482107240020345735511072171338629895062612088432411700279668395861766023689194437844150676063091693874408809508713267496156085382105804808136332022355208746958478916335721343418911069824690723879927565564195818274787559255164737199978275211749266461671115485787599626254071930055263304377798713089459862539764528647919571971165761012880694303557661115868124934140435784709230071337056224979199401139687818269852168345065886108824940717747904700776574516120603858236289868872685591242631976397087207706022203458671975521236029395834074311924824899476655079918844779542734323227982493285576177804180948158429930588545441525536281891226192297081715557454344036539050090526640427813658622830870027082168574373579670694698985841999027589834382536854423074928930768893466437626398634885504145574562599138931380984417583037365570396013842088117387766596182934161796975770517287242038528838996825263596834195530003917040894753219241846313812276631625011525490385135765717239702924599523464650882564519777725653161890192964051171970134182970985790863939974157836800498208694620287549572161789478137118844026026387207584766568346842027162367202148530818887958386414398048940216730117755744063224239800810612213799282691276927858993536694792108297798033007784797248673704295311348393741917087387541974559785338719650136509797763910197747140646926229230185227652048911145089557205887185714682456035829348722629859564586409466641004685471349429625969711475149615080484738240740128085618255549795862932653600337739840367410630546932173470721621419234662228381592404428514457267857704479601588894870080183089293914086942964405992348012592132171616607425710836249273296770021920574058601247583234237733047946796655761145365458182925885073840170174387950436495347212201563391144265136496845135214470263207235728880178880968617927574301846101801182809977169696980159039414135845332138414081305451135223107410023027025746490054693029683906718005629601831378532447386856408994742704920060996724398760047122205120951984388442766219678444578872314845297911219316916264096308841885926811461057398061948378809438557437379621765020849342528766370666463614497464614102470121103251601604539744899333717164231454806552050982826710072242366152748875837052750874676981834424194881899744283854635056512393582048032211551997182868668846995653397652122331954363710827785424701090205393038456005315018245820716435825611560485906703475321136586218166458102202299147132890557252856482990803432387820844104221396125828134288406392757884668736330384150151823338303578783278355481888709941877554701296656504126443082383667430493692458421381052487035342853676399597578954602053709989735998875780567882657075163503327787648697846087792800305926762154246728710246721285394272045595305582576396721277325364850635588586822058532997287675543810003205684160124017556352383272827775333396561251369464176383213541923609940113251154555811840372565295340919053571521265231958518490333631346806218391591948296662567396931808969246662325369105511562907450052293354652087931455625141223414332550550147743615264571909061131177462731583954697799839225913968757345540349446069739167715600247244855929494089518584292089511486445009304576853476172078147451010121039478666275035207728040975601165143269389000719923369367505691089735941620129789751784208621739332520153067572774037830811067603154244887542683191040121682034969172761673550193261932489942287660939767727500313696501665758592102444401367337163355742592845652012828500718905881295893844533472601422269832631174052263585224312550827639106347338358042181094318507443470289838699144781282647614812114262854006265813855139297335925576529507127336677020615060621891297136128327674084903262147897808078036212180372275271441513038449963663564203283938626339399366116375631669067958670511099514906361445635267762990530841597167986968417055176696484811290188580529499808943348297843764062242459178682761264849346622634149064226909548143219007867439303948499158511109679457316755925709164891031217643540741567819229521990191255073950894862768426577304536372245684686113665003611711104227856183831632355191970653150502411057297560688442659807451312694443508163847949939970374271869535705213454975117512947602775799847066133519144915579331417308764530584769291161712194130778931197521684159035992125227563071135885730881990647646312552569409034039695993996939256678306218419987345238590932661876064910051160736863884565952485128433582655361659491183739028844304154274732320006034809069537849472220871726657976523032320101443014136658419879646079094270411713523718117378886149641499210353644477162991182362134639352072242829845647828703931723948251050949136255223264972747400172523333126540943060728072861168942346087108498226964169959424912546208830798849903627768538699364731683384697140462429868796909862183291989406557586612302574485393228232695127578806274785376697760037906077647447759586126753009794906742241908674059400944146317309029570644717327516582914913518246470206759842527341965434584460085069547974536817085903686646091477909255131404530341065536191381544762338017245416064710327050648249642537625649770022592813120748122476421571175138843702483550802049484422450081586441899431515898596390895658433443253720871961586536315543839626491242504232338408967009008567956430035679860361156331961137826375255566538593879482552581457765259870335505857130241369216643728732031502639081706187995059826502977316557840793026398357049912244366114537576544700148043583862965120898280773034100625767281364952506057936766811721376120043800811264966873740058826798479614892494923943545768411395875667475299668048610823862419846326128426208060939873495852950888645259969246241687900969569983075316726446340482070839752564126571681324258525415218317276412340459950698288866525790491088716770355522696282136064740382011441622738839583622008551918049668834251340842210961806254453673382259931891082478577288518317054933972898655802741982876208850140686398868309511323627948951168367022671643075733809671255784718514632402472118870523358919387606035686728142421622735237155107065009976312616884564022730588923000648660562126997260785331849673505778655544156428746484963419588294300273760114866592657896198740275637724573418813648118409042724246678778655699402915775839920135733331429313624475664536661831946367961133426389002275468786897465162230289630552369555228943014391786042282473324971133735242698964632908681018057939014076557825067995328366798820787280714375888669724576261579166478931624113899513060051974966373462985808567561662944207987448143963500989420810431495006834632514653680727088065377053006184036030288399362546977188919460394852056577291705654595015401065555452661564337741699892532898788945060781859721948467048072550605918245155062326104130089324620094526743876035158879422010370317806852629082757197022570267219814635045021755393833095400558596145435171115584540012757988133765244702800092946031601940705198210874371974019018932484053066576461072005774877983049125904421268695582507163155978370541933214348579104814350678657878652715542385002852176154544914441087365487120849536970164271445350640643786071365010683523103033775318773351385847353227902201956996402467075498392883936873816243969021598853897631961453487282626332876509046887328827971718242140114958073684119024455752270536879821574214226119127659605036341223720275452334463934554165390229318477282123157681981187358098309715759514831080407844352928187819010090143818192767014222214517121258486396058066047846197282901775565045052999030744598149911992583901807883669035027146365223009654692696425410088293193837767431658279860268247340725989129561159333602816992638062611208838842820695264885941346791098332027516569367196697954540574233004545712997837679049270794600370690368089629196354432427312514995618040058781008975776503197292518942339246606510414580457111945522796339691543246644438771427662735989717350114703106236014993598106792867244847798809345103193681849584435223654657624214337658254744491672149351335192565748118090319439905058963178697224222905368560029439112566394146419821221301106403664953946128629592566787487496596445708746030461982057453343341476710150099208719671380833716101553031241749571821751857367086386894119203199881519312068879068880436179173701443360557885619425033379844740605991761324003752583301659247179032831818670902813001639958039691437297470221324425210024018158956015289742509272845777339352760052333771709097864395008253065632378542744981093863392867908873967629561672988152414297593654667615457432090182757011384913853567633127175161747920023929144396401357701401322341481407812558313101480293294383764469429828861778508795303822674717305104964799418688953488689454782523106470810939013461074703350320037927460385379316640189185875184053547927056373673051027582341190372672516199570490554990073322698189630940831890157335374556424741088904107877398859255934366745136336800921785673560969332579616197091065843788923008562398662626593870593770763627876017191206801074290743262111332335898557568704039145841621738520325014816012853916412680624136701079648355655885267879223647769434391574570018255668192226139534675474995732162862307880560159548000184156893230191225233850348763612825792161050018202860398163980880278944430480235152817589969365592895513375536089131878734340816950682657909969416026346626816142873204325553306689877457092557506636961787301995894592207001336979304905714056541696295261046361694535294038866802943630107727108092370242314796934501153520434236034982659083221043528513727784250875994149159499020029618731057770832466443287953142728599063281515732905450098220058780946234546866963694445523715835303843153917162889616303762192712160021111788480826849496330086311842786549379576066521214044588262571568876138541521219714263097805588633966356746786285797058843409083664547029416988024341080430440780681212550896835900500670520254254120625564607834923238093062605428336338240151058582415877350838499153078079551434930570976054351026792860864588521161996302216926688655703814856163136708724690468943202901689857886803015607599707037153504869343623510270752362996516782346420626403634764302403919285454615679325001944256001318293340114064882488626671169730660323844921922421606634788393686885860060083782299699151300784170576107832060495054245478311648639004020191034847412541256171441192038061106977099449512502061585902182026603493686689486153897054049955815980425775062925055790923829753069223533364521896116501499511377216769304334920971633204731868301359012709175941877148062086689166665350954253976570144472662267156885065326298781339613057401502075495972331082766626696926768076524736296185386058321359393868905110741278136042920276571561298257238575660786998006024541045085710364586493313323128903474061209117746703148859598867110950943871539895720082021057577150029963605756405387601909518688344786648169928246787079258595554216571731554925887023533583670756060311272399335715701773229489147377171259146804365949942867405105203247059913131128126151671432225713463619142256882330467418334929759313311582329530632572025804530062775468375507203366866148960854002429270508431997261939273603280933922848793976794644926114226048877698704319183356704778752626870654412442122265200299006956819276749731880792313661249041638564173000668809937740697236035729226043594056026047875116243436047208457912366625000659378055240041743349336128515749003807179325071679742084899108068318330365222013479832700924511083545139805667295500487626998905332817089552256218620149287164614856567545021371984049466880821723193957970260570880366947730264909522894115550903786004269064331550349884847429658030799402929558584177550616976653957423038029127496075221632804440142950003142631494373759254897120062467785031342483221407079618465368355898297376622567204501471892269204910291332071002413269985359391329849545018983187204438886413146225841957344362438215303306514766105733828574414409857538838713994239436786721454444591609021692711992063841847125479813109188520411387907529628778817751676429258696526070740351893381326736539664553797132527505025874668246904732338493744984495439692582789292047051586895155121947661120949342169348844468312122699838073838012809868908823114049628975400137391924254882179720010164839709557182902485589716521414888884460394197374329143418958285412964665227419234358603069357022332041228106607411604780680177347024441742515488514946062541542970120733935566351709035744661773366545375260846187428565955522322955992477654830630666642526829742722710929279884706345169788599862394697821667718221976960591200565105080582004145353151745844268612897047706488400602906550193292236953670649621531553822553478663149872781461376507632656487615783684396822304519009637389371758296143519762588737837147852655944556800223099666841599876827303150480879177961151102263321018484712554877862826279252553342495511250787790386421957887936815390804911660733665489039724557113695566612972754318480371319326673486349441408911044686597262670811369248511227656162982719269276291920780666217399620804577341930624219670133868835548620217926041906852220291330379771833657483883709299031218254588102314669248529479723205200089037347543299742759261892593428396397588137411858396731129685400738313678660453149976994641041907771743775150579973749444833409097790657065349429482511556005021744104761760838657767976325174685099546676654303881917444302124942686931234216612727540062080769333799431358933546715065309622274514066114213993459872297254199919998557637006031141328884158119769189666460285536002777812098346444500163758534628983388699443796851112955857921183246031702079263713500585263502812687712920742828692231934039712450353159969393934025011264765916404617360025912664844231007944835672581763552384023054994909850335493138462653167995241031337659996650916243555963511448665802840597845940045790303661694918290644618788635167726141716232334449937590621691451657184984462834258397027661806623533659854985891635189122635239447950691844364950794573905754112579785388899372721987492837025332330772502513789942529006363235880247015668463456227016855833527853559268666793310538549211064983131404691793870943617768235615235323255330378116745653147458822464762332938424368574174945325057261488019474245324356704721211069926616317447172303707505582656538841522738757803336765133216931087740405201037759030411436083448523800615121000436026763497177435444741795482550021745541690944916926826830306600447308828646824252700434790921349787027978248348299734958043399076626128399854752452687960613746722232253496057877924713828966173854064773883613202820438754173505601596292169699136967229087285553200999276669589296722443779658765493928497900389671970295578763697547159821488512803889560224842460534757634356839122592331892300673799241169217978893878302726068412289018034414794438880000885308727469728890484758208227051004822940916692256047370609968283900336250056047093317628056282135110375601942191389852826618435826844231815318482429896019166655038650900058195683488322052960313061970833129779702260610210083544751492864965304123006836232598831670445924138643051963359152635572858491271819794901395011892361609475819428392474058321667542409184750104483492069386318751137984129755935061946718102996461490316874761348177904505674862590197096628318779850543671737845193980388766244457663073631301968284151815402907901471845167120450829171757153198722856335611451278212403595979091853519104658331573449994544034217008004267186797080667723214433802297551573914878107878967578431129299891629119755799601179945822429976015046560996814967996066389526628912895050547446750641694010773671373106087016470788475588660937423641224361109274577872207933637307571114654534234991636148310579309498323961139331990143635432477255783013985856265093220025239412303188523051293674401275294121075907508957550195666842701098653081634060047849333600965736336485291079936911397855032881147008164803140514011424755226218617464074596389969857334583398062572624542988658653772107260898824386662709568542071022838522861047949400125093486826671846439336683695842571296295816038354153538535277662830205996711166444413290791532703025017178529404683380762116193797375595551596269185689986649339436837738748960478343814720675066277167632296383476642193449044304777064725561327195406069660926460902769745506403426760861268471884195160989050970076184626506652465457739482285407727589500351895782525438078685378152210854990150503423095033507237383767917551926719503677077141380588443370570795556296066268186127425625262696885406425518483041885418582777372336171136541401516634551628703513001327979684703666353781964471167942569262076037029605861416045817460214449046606062841339638481332631471203784392671718859079741346869327734427584512873907380476003161495657213025138597175686330809609264924659716705185943023287467777483824739185475905469659772085690258622947572371804550497752287374767834577178121425092169345660081365059068818802006116868817012208535276140709621318314341393440059442931207138446311484335141207639574304767577784136409570212373136875014798250384234341711709234078669325449808018979468753136578488870134057164299023449678339869603080753288399606597805202645989299655200048866933697274821078685545916866410934166078643759497102804251466172057852841083875898010307849248477733828698549129670597349140694342637087842719375750765016070849404400508605961655653071091925678645899239088695792385277674285036247295339679557756953973039847899659357359695289882316226449650299520207162149698023099304340202046422911015739304791475397908700451421875233979852260439780685188269431672919322098708052041945780880225466991713566058991738608515283926313231704578542680800239399825241828422151654337342161102617067061490074287854679327661227514299001026860366866604650446452359170952741341751143775259889517803199080636657237533478358913103804078714555834973493618401432454626565034376407606802634367185548781643081077744765493629504001105364887394894620870416266965184457175840195369718702592992201344891194944523446723389452940216405433366710291097279880810847788146433593303657737136488542661050945050409822462890516079501194094991902925788784123987457432606023022970540087305034302126613968937919900508914900734551524160156318596810195390800215003859633387637744950956752346442376689677419206489591978891244253859032365964012396563248312974459525147063296829921369829759258375578585194756422149198183719189507413796488996998858442180119900562248696199741168574316055333253150362267057287982006109328835479879918181536945714695718236125528962068241053201920446581598625771737795303936306868200852112392113862432423067599988559312972997295460070257929724010735984907056881722077352024399795486704833335934539894254252577811317184005659029159114035499980645317149094712570421518596281726403435612940502184076386510464055038785002334728150591096345079607389117393370302285276022628087633170008322195074793781705002500998985198885144961595755237923997347244284921883098895906889145155873072952917682560231213559940535739860840438064383343974546278965287125912364952877759493910431429933859360392817254314727053615604469988018146226572453068849628818802637530202356043724144677292694895235467962648073842376553839414148238493054439805501264854760899893724409116061094782003460811989166508960277711394884559882329216515192711512573366193919319883617823192616902684811049721135268000937581349675780656523499264345935691154720244731537054447198254657167686698908634868710689512960758471346699832220062117863263725185540782312974034700243552096912792294097684895613628560940643249536383312281013829353335941800365414048306970725224772326195052998784950847693456653912166968970482649579310978715266080963892682174791001094579733604580381652156823044358072171370653490176472913637098976880792970419828042711900120247643663951456652205020164435697741342915637043165501993897183886358914699976930563362284671169103592903210165973526992398211334062477461959606358612474498322849410713409043406502161222660941800098885212609624549510564293422247729783309957438396549417051480480792868361274657621309667442018393031190301226402361899201151927097963954244208837596640229419617697293587228185542075802152828765515371551002644505503901893250121725929155391617603156021966151675758108470756111451694671916208442769594915682386593771686936697944608628429996308813293038725321086813267270345404590259259716365066960883115689930318642112181255033989437932397591794170569134163942653379342674743674641822121416633693902104706680784289125681985238669218575360245719900467987483092803144720500454874837818698656888580901476525106279776722495889927959421867485767355295234317441084954673255114246388757475982737029173400022817210883577555105103510159535050540756862997392746072342780036013006734033281534424865374390886880975176203267258622261016616775198566362035195053509714648171993760611536325641964730130255657374502178496987981670649986734940212763034376854088382074063676871740296791704483541661326696367760115114868025996134646993722430758895424704131989528250232585887045763112266506106779576711829698405523303564651639241732615914535073298952932338401816055024072623184356444832265064392314812693122458641537445690595709250964569903624242425551006674378786638908813506555269840463492114810181332886564426790847289158974888378360697262336190990562295455096087936425221170807034290544060051735723223008800197166547537108211440186465815874512661153992682117241708659618797850791921796910599202198784056041901328362338641013548475574384421645657582483267760827761289102503637044021224616290019826875238370583262535457288104139205542967927372099545285771129878506380067350229406072572405463975206025550148807211873135550904933157086539984646615419076973894865001156392041205461188550711492417855175514429790541859654359528950672327606551496742379800677101723086912009086349779094004427873988871183481748271090211493679731731863768659846306224697249586534195298783121780859879803370273892381535462616016155775508880965831471564587596248345638604106753758248518097033908771540624120553427641917763568041983870478065888999976733627876668219463988293813425660001381005324116766811108500042899514985862984027115687604282824986434527030412721390539181278671381526628684583607986816762743200164589146863385018849113882502825474716578613743111676007780821297674920239007255118917214974168809308239006417378488474942697319870915653597211435181502242339478271468189063217850363986855859072362505262836856964622438249867807113909112480900417885362334775042106536493420572449501346078371825923829667326282477373081409072551407192072575302138023713409250186474630811187507807559998856221797041550234203607189100382319561720443731492931984643593081435191370519089776905173490018664086503181643149998427761178554465564956209119726508791187004103055011365735655472584560152985385392640165524913689380515724558673082837924125474049453035295684237193278909996709898478136685265172074704182624944155476761620229506326451056634197580238731356041117807951893545473772346409744191903012680035485853720583933551318398291364895172566019229179291457631424215307958674606913349868546211040069533653485107904243465829262344390631406034168699973043279852985260592312105545466761504146332748950170412742771077938887775259162617310458858099807144176534646574554209546719777961593495937572362567513281103879837210031976536909769245492260641264682719058807017163090740055070906232303996583067543731646675740105593920185436178314501070439381865948996274211972717544397701456674911918077099859242616106110347328598876315398648104451456939436841888106432249693016927321683951135286150829804790749775526560652758015248461399178217535395825534247962465520180561550132625129718014836709016710625399958563111407574835026241353508758079425733446897525227415183853823422907947681725189018853338892305392102455557256397115253559496663653877517786884614877122667157409352249977768744330043211469838620573779134987066993050354540821204077855802427748740721595471988190806072027169726138223784288643462982491153677870325039270303831294483450012104468923703525474441862806928584949505183995531869891486906785020135640351369440168284945043024229605014962492334931624290539245491863776511317354623175215148756253224833293829983354483481926196218140677855617953579445166623601204085563379353904886985316149812630761661529298963429347979373644872436923738421914498007479998337695009560939893944192331197708764764603151459176516224069644740781690048747435204417187928815899725690460358983474988186198752080466576361221315491597890237118316895859790319103785470027447504053220348798702240894453164025460655776122458449758866015510908204328895688826249458505098545112489742935785286174063517554467046486770102826496956945682106358519512991118455608346090048468354011655863305433826329914884331345836573626065099891463603535815059169716777919526892547362014671507084731667717309676949486112537846072796480233604623844121998044533358281926384405750845329468414891863039976765118624202197995302813957072573978672992712195928410535417455542371059405941800738721331549716855709967948176536517028573341751336098739824135653563868768049838640519907193342423500685516931915311484482665376801777939066750136912357732562903699573215994400464191609825260186754807840017956232879948014496882538726001156215976721378706501051643567459790388902107343043655523515788836702428018553950882752032966477488413993892227190554705463223429375134637882085729098787363328148136443115288534623785602558214755802910127519336760051162280277127762967988556577859425207033887563016746833135849767005906747986501704865519181009705494013020858657296973586021751299054173572283710900407117442657881477047861418414825874508422386249144462106000315144622279243755978668960758764268252030611021641711232643389883899297843252786463710106935157540241591086524924387948266496753172901821607083249339691552633521317019810245890157265452478904245610945663199609391325337688049092254706524078325153925701405701933842739141377436169130340114024867807496405946092115738051749800224052898312994833538821302822116825817345728455804637727073517678672911644178209859338163725019451738647839702368507397558681738108990834881335338012568257977670165469625537928286059600512696702079098412809927570656405524055714460424488338738042001724315426398777147780532633175331336337591610752770538164854613238606104243546538968999542893658603839057992675917433702794179937789134297109455261237975358693345781260559770872215403036966179795697817300801945788787068626344496524741144142804924127508834059252020302519132593279643242982462309595331734625554720474535103435527134606780301725415072771098342595998685448524081780417217225011502825109156298058645509452279983543098942052533191671898847718448037718868713810617276123717341166468629516040965795159941247836372997231841714810483405799193217349199176787553964269151764150962661179619221938124166315413084186248159059969595265661833646380015001726739360718757845263561223649293528595773400691402939490453788611363929948127445124684624101484372922272285293378991091821998674229045562849824264517259772373059540938539940742259939868044420931404243197130571222959368657886776960145486970263415578282728549936285026628441179237713995318487962961550489452617436870381534170777513625084923356403256413724937000546612114507142525559733078850075064532330157132369646763416475122085290140782743241728065794962066058596940599745588519515771736176183601850192039993074307170343741342717988418656257263998838681236349943306080098703587984177652186953532909317761066600880908754354421530729141972123362784436896616866021211073612613373263305439035881701956816885453157082603947376419795670279108867276299534908486206813367907167186885972980867667132724575145214677759324174763414878207165994330324152548274734814720433157676270205612675064390257444393915726312927670580586033554659207910108274389309815946913813984930419221858497002457796909187800276606452100818258212493137408077062705864321074087327033204605870314963950027674203206208734914394561762924918540606267687567759302655885234368908854435591628185518999370514625871063795553364339790500629330199350850575510687872510777899503042765598381397717997519399288053154331313159225770916047069463331467748317511103985295712866123834687216756710104661015848273307479289973448825497951586629157538069364308191945890241412920265937302117584248164778562670090818079277083860971600457664802634858931298080500021011248070719383254246366372842166542446567644214094799004710486480747580222226996634029371067518181956518512289397645743980203030170750994989631559468749120201587263467170286238163190595462922055796962330325386817490204637346380231631800197983314592786663488504769943016600319610482732897663623525394389823937925851065483536432533360306417281481468605296234236139394943116479278809010047119904768959869609725051155694343286679117410682893951342504875496234413905370552610071676250369937601965343759656056152658681537210227140153536500659795266757343110479608836907041566599874418918185683079106729368525379043305708069573718943084963279411588119545265577425618587804249368047975656229051542559683043493635852049632780451133544031695377386445451672673918982784513975423690976405699027397130021094970347239610310211925453396750496166112725104632089265822364997960651985450479878312437784224770877658918776207221751362649314723219906443034407818042919706824391331155761509513357657036586236162603954890610662309944558014507690357675696730857360979780011813872525114833187678251100224024701929469994979827685680864851602755891515547108484970659542922643667001514819029364808623017108086557019478032965680920470310361851075564380021932182798737317034541988191644826688048146069672656954344972657858684221973909293631691829128503566649434380212238340749634861077092861663008318222867475534107794236837451166792359180369630132915588490712874457342025962698883750706061918939024368581883135230845011443565014024555253184957260234800265714167064759693522328359337867204568657640240771370802910178590844150340541483796503670632151677716437763258666627084386113012376328357763403466124710114503608545380190174037462846109393085115464958841508811961568513153180660830241717294313596951035728897885767634674735723438916591142932942695483910667576693140447593147739606844722472399695733299047535387158986114617104177829011407037077049154957986803397439638306479615821905383087712595914773890405942703244234022264409354428379742511790057205238639743321915933550286521499849798478753620681813754677718551912259960290397929715321615805915739526563616487950843417831171274170770714960193279577771074758300802498487442284780186852740964886145390153927431170161958310204580442549355718049627774948213988886098320122285792777088908532597733861500979543818588191706133425830169853523065067612155431962277431024750512367764462917539731269509869762705440548149861779512305435727240385557810792839828231702789864894201843893346226655744796288971792358987520551024454607000250112565339661836155882455025549215714319490957972713276437779482749492557886510541010055948578687298175643381692923251204608987873716322140704289442893265584313954096448071941975572225636206518332123328998219900529127032699283082790658774274739888656294561022617771281536099870136482452075690331815467230729006213586001782725090672091109410093239152597299461289325773059450537315079870122685484711139321319638936370727374206672983381095483752543731334161098087598772953341113814270205972599469953111765463496135426991853812621113841471965733300663123945960791804526170027123945025742820688893690382434002498469652073490100685191678701115377192053868229942299522176746499150609605566999677637025878480924662823258501869553148324388019567092772396629946729008444011934120284849115950133731600246624213764151484598808979778926442524351266917158910271679857799018220841900870420861029050141328514020552345577199164965149758769285483257872951595361497944610455147297942061017251850035354110666064714061859041811352211864445089508984070140169688759203508282929495219697828259269582527368426547646250000614540732708627047176181430813154560978387199608775765953230881275395721883607483771568174788296265118322299642962556089908114197499861094094582066929840401632505111302840911128501668663099580468007619714488909989946401842568792331289976053076666188267681253331692812243252096238220491029001352765870236333991297117735804269139847718604705996747222196935119218693594693724909624875153277278776038208133653757244339745079173809397815234762400230785599753905414707707121894495695878026406721577149263777582299218449496042610666228754511055106408277789627019779417488087987754995330352769497283416764861612750139595566707801016938529367706757654329213726783061537777525083954419674339436385554697356628241671863137052442152062059948530941414202401895087823105130153332792575645676934391899920966010128193139814675588248118233754834454475281538863511725815497371159051063814690889113282895327096282167816357143793144706664151166576733812077044030447286086705298346935182841863295331944994870046392648194789069012298528261998783446384528945958009087794586324521861379868520961562583110686236216548273590027031303770626786589592306576645621317037234640313381942371060976414930673924269073742269324341560896801574873474614732695717379394960157862417839903077235975252456121168487090772861536687926328163584090955035700377689702687990819063345769129216040716792813244888513285538587474381157306240079935620603333910044034775122135864731552505970214490406666927712199659243467228770790647701476396389505060505691899084082882224575125881379152357969881064115453173878138331843212121768041945261468955834073482347575466607243316235088196819227929182792315492694843813476432085215567173104621571594919453193746795534241418762813126290571736780060286837261903484144114287906898673530092532552032101766636602496391018758569593562086429947514732727921625834464990910935030225122702897976393264503044043147160271701892115827355733017802890661659364903390308185506583038554362025502451587990945378995838032650513864791717827835635153148627732199120802298751336208816551378497781974114771108251689285257832027147849550183216896285105342836687439431538637899760678284169050745587631900559992044382187614847591575122105654631228347557729330239421772571978678672501190144456824816049433043125785114029184082135881661021079555249824161414805938833591632998609196771858751549723582852882500077807442340883292684474245991798274496509248035774449479448941556861682264620556173620121607843921701211087346410041898737547713813007865888963980754038927927351169811094310052687187142136823540737449136249339900651786530564237562928683513983038353466501904345145537806039866246520924600180537147436735591892958993142006607709803367294000450387879895376186188979124288873740105948291650255061229536044732705439410343137537162852128840226239031687834226555071400788475223581145331705916414964077884190688834529349910113921340197347226292699224026412701702632466827898776015046418182486002803995149464761149922172787955548710862569202956510828002235146177191503997271755455703543067034109300194166467046889972657204336611990554196997763354140618132950061138999909887553097533674887742937176894263071476820516269291668013268989367845789632119821664069197599517834743896875329412584691401750133994748280506221581501551321182604455368590101545099613270069097763245190530041839120005000283303645608769181163005044400347768408638777695285397927460633438842969133440216736750234549054513158150312451153571951155461550691205965374321913694950549851087520465382876837966468601843249315734802171885107068847353478973728127176897655790322156453033179703207037136830359175354292265438207304040693564069373160435774512001139058475214786307518912756110271360571306233989628356636318952596861137825992330017622249963512170963899177145871219544894363088116213365795837316458907220901028685593627157226646541382599304006008303790280355649255675834865880103013128039582293751363525308056913142878718288427484913696238332183857145182383650341228572130444362744380920817181682148239731310624458859698998148486744628644762762052358344183443306391244097131854230303500180975429278497243437365084937061493955886985027117226835973431216763725670669010593818636387805732478975423885547674510391024402081872748967250283151040503186013023295647827784047812454758448303456880424415027024802691638338290449711788813731739554577799423620481290345404779798837367735202908105654344888367273758329404753409704947606012494287756389508502641210508461383719792913750297417755527620037221107889129988741616958948502187694372373883699210960845468410446003374549222936143510781724415931108044397502190091411316525649831461862748245937734385963817336252847502087802144815263294481789603866268596694894249164152302451947994818673180768768786886042409563776887396597328764368708764592157013083160211117416819829881737946912777102146617899092932001228251557750262420329388996010552685957166757899980321311773147780946373288069162792425145425423411435996262050481356462405955418730763954068386532841938488808177631055292332333292235204206744340669966515913978166973506185630462412770821901980641755024315719429001392882172622398143557816428236612689712821562186007387106822932084054966042277784089730569111635558393539844164747301393102662175065357731793807170191131733664887902030782971605257908374624863575928458161281174592989864850316925537620323443314183551383234974542781819306814795739798488421437677871011528073025037265595998355575733204576822557527257496249162997312133820794955435745801385865403636560778206508045283312890109940770438101339424563077622785584179521066156107937134880309890235561133085355414544431973942763020784658791627868644820222115148617140930668156449469320256382421016576017037341793619388982146599389994869273729483882150871984961681590392420322268956876628812755916519851594840857318709913892130345926619205400455206923527680018340107059965507812508438675580483542990020727959962824089195870402405990027106459396481909949752794164618139840100735813995785734554454984299860610325585815807268729318393169236921467189283752477300859921361261367366873085451763305926867741561532834402474305517868879076356020284753635914013987982213950009171502129237355035344516919404091450732178104074610117590807361116107766864986272256824421055225567743487620940462326909792720865367841583366867282812187914947000301210167809760505368274764263097587784685898773414876630429682625068300827849480194777947602242689502867260175123088876645632653504635131236325431284786127979544784775150268934659070968198796283310894091358569894526467188911664258508385107116265609742772341751069114865213022620820444235726131612821747683377078948309667090918733770298403725153156200283750610764743742970671780670501242489100555281876888014928703185209566928730935463030834629017819525635186598947012809140085622826620420341350006455945642200818642701444998911700304954274805786333554412417236466241523322450703252606754312733285148017882800708932644232056159879756599619181725936351936680840337072930055364785036767040961353369262244051425059983565591144489391101872455072112565201149892683841237595367843900643325865201504422808914370429494188394028258774221325601097598886431602704101328020669043389772899043889432752398069078148267902542351385825733425748823420230014325216850638525280925262846667265793173521367623975840068121912429470823165038224609314284493814469090078680297122110738761964091777102869111439728122306015954348590894387295047394097404236516042981723717366429113862337866024423145986452175299462890912670269097804256279942574137280563653182077715956700898212534984534617882815268323146731281476075945548588947998986547924787801794534832142792489448548993030933877422978902805705603680983703293736817540925491255040943560701463671045094366029594585004452869732860546847841839615619386243968433391717774794620720530312431540768404807476466861783755057587651315171472184916518078249132717907910261383138713572161943010577581857397288445288250500791006425073682733327059409655342367803965016718396617261581376047251933826544892674286600535111681011181759269932776230788182250717907242271337416677269852675263155200499462890849633320774713186064268380455595271232477247737357377424188215932762724525378327081668198447534151277580851739224927558079329175153102484949194473308618054387915692444500336431335581284212988530066425389494752018964360708392664036508766720739399569816494196209479838304552323169865918185300523756970735480499482567224862277796677275121163782410394839987668560972459354180280887782341904329891509989059965711236379423920323561711368795246520731293767661471483269940698626081913179299838920215733094365534620140425146421407903853512954259269438049778203661570602626485485863763110658385317411090109440469226634073294876732788150369074108154450913778335601213759405386572432350167505155655862329793938873366203738294572314644475745561231298844655154440851781258829368270252043434565108737719749791979566269668195147427280801138270332941124329073029196145931923930105695774688381923670275253858346684019958094036629961897590010893033301704681709360125101343471819117308495478383904789244362569734568303554004616774747706105136168562733557045957325052321527407502060108119050725011936185796566209989160047416795867333705876439740855394051689763470014313856321483970817873937339348594480185115196889356426060223434093039685243706094500066475219818925769740477399512151202995578612832483907494619854113330560469707490892585748815674642272899207990738958472580348161653298502820535608864281686337462853526990514448400490886803747949196359732619484252666586540851192774785171399428086859966359452059078426616012633235681209568744831925960617964794649872373334504321633018582724220160969906027222399031736130946066168794489680713719823173096960490711303556908789598711358092128996805478514169758684256388414844205813638544084939726387029312160441617905719735335062854986178917984310812386540027722558314361182432417325744717741751779843572337302427980527916212109000256328376434220912446565698929140926767661067040546583331948581016053118889606320439666869651705990877053812594724142763740037166536050195081959836934364817392872027704044665309185033828817745231789714187694838755714800923261952765172211631772375772895840288852889519047224192739383295293505983615673991281835658144091557422531038727071022386426958823178592719467657534039795322179625056365245774372097275643020409636715281360055728639005602431870048237838535643145485433290192161711463594560625168667000359378255806585827736232214948246463199733376883168828847929931850835794686678607230707630639239859614714495401076307033217851253434947341555855529260144624545048009847822589688909915793112153855587588247562041944267703176763630073832342482713962898587445196584907375719648363563727878927893543715016854854066814518866690608977171669417392496445988121864240036859136109457897902015558671643781221006569065027097345444355188333749487194927733973771075873733524265921173104225055430218764218272931170984074875564867865347366687157363194071451502555491058897377133459626823499560152403262067660690422690766562989398603410714436241276066767426777659212532985938988902446000139195706069240382636150657397659017966036681932220659717665663273041172058094395433569284962751657894006245144177841001973669633200714432039330252982998997838131093517514966676239695027553186100283479180027036351995405985395974279651264928607585239100469020307428399264757878554846871396403650103621050734640987075633921173039035224839332185073533710532065391735396710365825892628250629017831124202628507974541885696831966327764191077679141794372564026335182241206305628407403160724700691172211306602146730461379308307847963722023316615522316028603871953059562436419112600642650825160838989129022799514216153120961074976651085206074942450208906003003731601399342989302207373411045233368595997739508499634668113968308924920254301850739950389581625949670440406154247123248114143921378281633568436882692303289850040778848424358239554907616557859343520838832686530024986837480205368343743668195134627984703888172987239880296294646716394284092235984011472970424483572087886180762878568837368871306932438217622789144173052152714421820511417463154981829499926538163039907309029260059583496594762124807689048898430959781992327416503345901929357216087007217966358451734574215925166150768506577965608494989602109408018221538160698178698411710677269156674798892672361721514830606776226135648631762449721928992024382450293649779742945795835322239239077390289577173143038695556407244685571457575194737135620575819092789358189491757595285063047536301716895580811170342475787623181119962053761731122324757721882476958934071325784619832160632633832626771069997296875071673284299110672227188796462288966957610713582200301902027939419726422220526821144518165257389187891988278738546194684433499668371079123416002730225776031736186577745570951411977017359320970874003029600256418498948266046847767834592115376186450085629137675283812098600881649328920985121819226440444552966934834265050849813073178396212107872487070479445391882652951795756920346085548788139469983957487792454276925528072177667857686569361316310764515797340605591448332703678043193111575763287054153360309296965635252632889670840340079700400207539106755680487034163652629242423771507740801398054702398523349203745258169464522056619922686261603361173346082076891418072084314869902741811935105218648489404513916609334241590283023947628379446382987497308840308089508052946949974418395265936862244158999968752585568766189960502712153520918749435797658459154597132352359876711667349509246330232627941203444973671687434384600449953093038291164651850474710777018147102622357774554546240235313098823076660978519728650061389011312865779041928634615871918414438508206995062720142558052649670883480093602987102872555717552474338653606826272631420402501728934963125326394734290860465262207082821423698731740802929456711405346087610237570130932462564660651308021447113429978796164010713024741117031478379577964726520584027208750863065010500814003233778812799813211990627495257985351430965310504390731089259528322432152022840253094981928757301018674585375241175318498765370313061451738043623856381943631554409156057455594557426996331355747485483023765493886556450766002597229341450010253722761136990703155801732094343259506425183861211421956895531491054628922812227979129304222438606832950845878398805783606323646306652013283970949466086079402688862976444708695444036067419552668295368727551435518914278489959625052309249647303252945525248327173910215799932735094266544641832066436308391789187184288479513470883710044983027872443488669662745892012258749402483188835923632172224455584917259330558556332066715902780340807043049976811274844851965213986960808401714929413662338619017508494060997338201513064440624328693194457861911589589031505477734330765254015584175775333672192709060975098379536793736307375424669110165375698442038720214788898249227673406441196191593214026568151361247093675722608053611375853238968575665049581429482436946186939043734004287435261129426152168895905935310701510237493266095664155336061482695503108103878667462780673122899219619905119506599621436240074335200963925919636658274468940199915308422974480633973681672241257878793769643108574752679119481468532768182372313653307465331092942716982623048968636979339832904398220244967205301740052620532527446617250421368451996175719789567056883030094684982253869509585331499372641218444561908800594488949038305277498138897274924049461727260519467585129732715025584248032401082043779651578981989777283289675837044487379873265488373616570461840484134435148256268254018168161557387853677939818725760558529241520534408662433694387339738544562172522869963159641315175295481923363810460809088519110736815864134094276260200557172564815654025680566029208327418364470144096725841492314939908155845904081394720033158278691824514299323533157548337419292199080615922443545080995747445569082826330202323807828370820888261735723817580249763227438239508290672928021015428788453224745107534315062983359762581668654784770157177622204922748627848630921170024721252387388980014427215615007545347775399634405790193495584416373503821837542293679895972293146378031008896709849821879067997801494171150807228731698628377859481927599573575150207852226635486424985937581032207812090057829281682078196593895183589377761246415797181952078190623672906454544848491177627652683833056474751951214592656726768755525127880843362340597227151916027942651854129920844174941164952321239245398433895957209649991202758372649865003212654479367950342999583058421101330741942934727661714331197257859481497424670832648995455224346158887915283242254192401740581963765033774241169930804251972462069709964226744413005478182259468448952863450179337151440263783849408730288684293674551413387216858374548582526458011555607479925927942830820702263290399849780542574202139209651544612314075275674327024582334568885838434716654847348106949722492958039821705062299517436444657208703412441455019114109078077828842626036719808613999941898373704366616402406727867520149863289973423915356615851838636903540456146711518898528382844861598989524410719690214343549797847812939858500464641951607333130058663255390000073225262896873502235681523073180298999589609631181955294026231352828799293258909353122052830124089354471250561483310815002623311265587666711353502410545168092128751924799586960447661082306191870923104820294360519249797153225749890240292372425148916457905533363426430655085151682733288898363481769243989874073928907741997157721531994089146604043933242937028555035303172507296811235805114673628029821937350002409985810819890115747111259176036149921328422122059632463953980891781687630920557604727697975336077853586858520553029997857694211165884855457893644481420772673855954195428030329567568186354910360422033788698935503873553326129442501787505600555475953029761402647638201383351129911648812964082907707872860060100254120655363326645326079561312829161941772599915740808749488066300440064709291190463391002820815550778690674461508126105856688877746229974178926590235032310496278898237355011317688441540336153591254092493184247481127530240905214040788642698888435412435525720219658292347976549269687096325085349484466754513936945738789905072950245982863733942148156214172103109708877021950759357272350929143020946329119364955032093674652003628137815146707090410138248579517652735720458628767345133355764843783259802140806161232021788856108200189134073427936329364072136960585244279876567834386325384840991725743250469665227132854016562026281783625049434913927076208267909040024630045543631386043246411905374666350739396532229736270443465943661564804859929491015647896939129431115839150856559820473634560860773848424670684603258615767396221139689841281262459087617685629801588446689873820408885714728129155165381598896169451417526514845019360059858495455219825804695567281527470343065613434831363439980667531871556791002495664913684987622074942129439401431530843473011708947287205283037584361407873927952863871544567690549536733252230849913573139706075568593749839990241992013597604518125022767136762216151027869951114385979510860920585684843670274340811627913526450012289772644164869721693165796123335380700943739495156331228102175514134434994159447801274431346674898522827708741396276324150124261436106525853584702124833000074209284900854285601923352302930127669949081858670651404006157000046121023780643299251513183364243253772391194693991015273999031022429790293729555592124926524874829889095055639585632416133464138047081852229638454732874629586829200574229929098485891051316018040836032779394962508102783124945779748953627421612189785904891372090537672411632515577000650686849695228133075690247157627049557956716244916090732431459462299613847274883638951099756536631214780994248318511581597220525276525296723293979241130149475924061677910205392523134326284102486736674142120047383178950966962419433029296568631075532771490666396225850099246086248138714851020063268787776751390562603100894034352965184796810506952800088572995325493548169126415237163314242112809165612230513283173720304001511108236031037392781019780528642434294788328578235355498171354125028997389486459624595913220616757766562199298067071369858826488063347065671263626493935936449971246719583450687927322705578719627357299128678782223656826482329666067326950892802982114872715960406240826894348713013651253394869420240387222821913442467044686490373707370910294607623434964338588112532901376212664069477320791255359981421202133053769816136098424168771498049577844418377762098471973039702800675640367959691708084500243703625976204749954102084484776177151763382103314768679339436071808038947444781924380575954945891423330694106042746786279912150260169590287344272536228502562373895548646753641072854874222671905898633017495068563147467956874959976880723078780553891903005250456063226397068279352409114531920715964635590205426153557487278323991295819247239684176499556789021207900602572815963673266698373138076378115776647220175067459537084188003074053675865766869441808413175455327908913948534906793994226166470771438183355686109714916437121551716410351848965117287853766935653459877904163793485561515741284043152354436004791245383645492448090112493380487217729083446919727366044305889618111061197892373733513689896129556699281019803363888077823987407032596577823667734432305693937371811713141160918339821226843165097984195323454054267968571550635731839159063756548200193284317779882003200094294540064604469707007809470141017273945730537954681737576498746673752568671198884162475043355937514848117300868597135646863333108835934446670523430081779737228061432713872648062066836654185536170864348680027107676661507040343217373941013181957547067117490253482341834661031834491563497052140506986148961628440443364589725154867060300651851211902562243846029863149404896735245897179246934008271386148373837094753651365596904894218650827713114907887956498073824399150871658830167532735571119130342401392025428424760330034719676614823417056443141149716248383016394042575036113305054975501843237667996865317427786970013615188838144238116488168879673681569299792979702147965936992386603877437454513831369084459402937609840814858295229883860852126519600126790796036161238408134108428727117468953120352860604162058535097343212656407288468549212967027555240104479975410225098765385581980536999468602481941097429292113186779122107669367823595600933187735629038261782680679274670927461010342544837355117678211735421534620564606694795470084829802088888585016163804302374955362832420884819840377043008388034560443495780780407169168905917630159915133276574145826135075887127443741650402199392349504494059304836381374991338648800931876388948936531638067480762662965193252688745984807833816388761278045049665816036682807878617649794643801027157664099533604073531823668290516473637195763744513573388378353088418157900383645455359350725771832899384180685119658754937387207117984812918999554157145743183977106978346176828727679459887128848777188074006101439596523968794072418579124466915587962373913659551455422975703095849828484472623737062581816697953912230524625706654386690420491719604515043370885379822298945440919923569791950454365554404432309120549781491769007672212570422417368011716626513218731147198944768348389484160188123420865852154230667749020384230124756857955427291710667806847859493334138009748401004056314542052389244812190734019834667667327600816757970437601082365982664351381219846971480029602553422617648719631661677682898756352631549348088791314605103796481256465968406914566511251772051037992606612526365008982856194143574415884170613699618511112880407871769747994541507766607092730113191899113433213306084608070738660388375869051448426613779534073890852140096957189878442114668081423469101996137370770989508571022504903440668578405969205489738358528812314445320612857887365448341841164817718681334232021930584121375097612429924073078733718692803168803762676466635437307581648551857307772257612763297521821383426023710124432801152099255045583021374832584135565934326106311745543820284743716863733552785848454717672788127413256901195074017956576803599610670736733363560192347470786910190160846700346792082595178963053186767982433258200027405602251085448793427600308502802897590385576063061858849454372986396369240378811880714129352336033814929449310458619376789156033207003284709431474034911424943553176503834058234568889397457179269702620741098186911785507984262075310514788717763446564229223969825114482756269550249464565867600945015771803952471836494176870770056482994658473068270413182642924515250443552004818646796198736310763351303175465299660436165472189476567507700749123243018134568227281849509322281402604567085568065399933027247449709359185836637418958125137186236429932382042586748053230225875338536792097682160023462520989878560223874841296022742927458320911096771479473082799383540769621754684473494203448778407412249922344294990724287556397920769031285440024697672826437408117276271686827693318309987911206997937739068804937403890202842928446900080600294707732579800242627120271108361951687698283054115501480321086942688634715824237602149832632834867845195532213071610419523781212270154450632239973249366753716460287832938628131228462203036330051687266900918556204054756882291802683409536071035496353109873445695992470762391159026902963461546262305290483263403022991527711686551702447921968654227432727052208250250421686101965511094796341892364591633557476469062498300208399078976050078257187293577475483804696647377194966302063036425753571968976476818346574380604715483639403430765114607948357810856594410212998083567479700685142123287035665005023270548796748858071677102836229492106518955602388885203017344902314760582010985196873835933949474437854863575623624082615235591405868859866310568997989556402883774022631314829337253391863357665119980335992568003803074838823199272762841024403399768989890207776162193701597039492952072320249115695360668110856834340159214586342503073475541110167287910023391849894114173885310323555154793701414661480883613491383641981645806597890915804308498365871350030659830385836924103602572073939457078436454031725860587825530620163002620074864286498589688974863546896820453502697351989960554862203514636792526373723513269312530707612268881553524785058484316322199972479767274273303489780689775731678966507713110668401540151613398459492183607182249225320856242961121714207381130761131210586788211677913243532561961145358465849680829222041439906870019338118559775362577478002370442749531657142498049444512585122031869542556752253880181070342142936937393899240261146300613675830985912029408043323315023854988841883402425900889001099813602689992089422332756941979844055420099038813946693478876881891507763342129203174822453142818193353792090658974164219255429660521029669008377830601518343136001929415563386887736184202621532998304637598860934750159378372569407968400402024327131123782106471509064087047514763226314895212369490387829297047581442482705430852754289065018403813233865052227971417217967620936855063742429734022115845443439028812035120270912175202475696539900101113663496752772753468273107468384172584221702878633102218746653188841041201174213419895581201472681353273785899686237828168979220142318959017291783990366640615921961389362601566806588947622293851118473236402483373488568049887901825838860745922770736904776542634354386244279746890827041395867836945094308624492685964400048873457385075673631587151337795460076652407998195978466087111818559717092193049946495496111250616520649119155182755281257451403746529885664550194449964791683431639353402547327408739591748697497038792858551391253630572079265630780777737645220536337474885350972136481149882572557600225398047227395068485053074639254099048273724858534920950006263088506996526052232105648605139396842205730469228987450603271287317513705331108915287484220200603238039200910807542492544416500361460211522465284754383774387735240012023729204645747291083513824272995032409139257287306704445039359162217217914300865969680677126691931469541153587001912774767819208361735291021789100914346394732971741627917933538029228540420221475939715758625327180132951570053381516507997887130517560594807188578690950490450475864625792790496882385383407170574792158487549996349780323437601076781215814128489725026446396634116917600856520565656984681876960594681360335074611459872085362753403987125306515037332248198882224568547502108185524685723981658656127711045190638019297361759869267632513817593461660264453363877083730749292450508435879007126097613315704497782668781067943463290404749278547482000985582166625226463499572863314846699016342606409597523959726670918547883458986543027727589101789207770345440490599908597525093520730646842224433131624297162046418898790656375415355063172416610516291459572034869966388535884768039796440765980848004611773294204521405526546974474123769205991060757792638034900334447327591890087384270379878402773022501912457801411077533011180824182683910448748686630585913346961714452118672758940543425766650833062359501529693823080007543793890118872395559642700378523101870526965140662166378082570793292128270893834580930520052783697118960514192552145497694249413799539041479164199167646356280599351450531172568678159135948615253808164572666370279622733341728276510816603829656390970484403626122712768461046347793888402730639050642033367735935393897869449969435875011956749329370054514058960630035409309183548989776932114226487896373004814143235022786965860585712117897091972515130032816384771561036795166241680645375508963055011074125692251239728527800957947347605350391292725593259656218108825374810865173698406532008918183036199305103585076565979860412141783165613916052035275664157597917128079500369526244951239804174607516240261107639437948353531238095989994080031517879308192201096575857847937169158671967987367286837815569405515496364845864345072471810510156004098980897411091759876177139022384627300582076579416583848276428680106161779987351133993648129608653812646143805185267855399050159051708895136449398509821205873380552916732725068609499646983086171601398486012513381270486477473382589905109867485065255435440261534314661723289396759136708060442875816525867856806736008532467113078074860451771374882432700106652850208516939746938050600630195481621588207796914197420119160350779767261517989488232768264232637893180846842433287680550250781786440913189110663802610006138401392281577652259114321655271130848440242134241236178756305769444533876422855436697127167969783337365631492059805349006454603225171826596787225702919332364601052877905738593281673788345942907448954763682919462836005379562903336868831107413125176348333109588236803735171342417595127976979222697986019826805559511260754466736507679945996917545858412345283017595171460436635888402515458057892458899373629768179884490144430863155326964704523702625451609908629463172367193545315293225121861585287626426330073144245210520067869735936072698993648788207676061910553968637003035780181174958662048644843080979163534615186497121646959514939972770114368284738757760303612622901993756487721788598071473039640381850422146759355522554549340800521567978492539555888089064567497180929091151985793155157161182255361744126152807728391548462755280017561620334105252483922933040143026410741914704378049339338670304700596658023493798782035289266565648582833859627231622186220177723096337546421470784270383436352633527569949786115264539605279987055390655177767865948035525211634416754001912019514307466426939952988008809050070002682177397195489923182448722839853909108249401280232150627513640098018961429951809629478117820139064187600589633726446966163557035115369647143566386316909534148368754855180973306013440355205325693240211551266049098266937194474427145189707901188406483165431528620462421937678488202682859955354782708642929004406126354358785384242442546718458396021907315851709291764651654370897629631325211726709760126315999779960159271325031226723688985458430891078912962495063463631927445114749304237163156440534512450770037107202865014988580667657022994716840855961578284896885529502015567839039885707354215042897851349973723061666301376391132488996322268992399943061558622386406924964788809967504140922433645944085711546508814122575205506270642729936168016531710648162746586853996560862890572880787068961189922135312847678010844478307320835829674725317907820568793559559863160720028719868557511985937911388524104866644977698401018583456536648006518132824697817829438287301035076602856111516968697411313335429253751485324011573145001833606075702783920422742531089252108890195260231465433320523006324900039102214964838646216959060001885420960120256363482192213770942005485271747728797595164682838780000621674252394946152347535451491727957500632538590206199244532679797276012302177645381080144485040081908266996605148078789320185447552594165758303504397033342152869753572640653513594627773807434083492302484894140107978343652085150383111759391863942330313179758724457534223482987500230512039715103461771078766921661485446509987703434429368022281573022699345926444148826987938453279517528932335820243464974116308782554240870985108107517937622542861855004929742843661186541153645103774570115095273773273088028143261959698812507483234060287624260192594480767334080630834669958721349060942115132683142745203423251581376617601429285547663816704618861321966837985943522724634911856618013853323657949914035423909396473139881094584367777949192673344568920908573652251165489984118957794353333422913334565848193855295413452654466056812260937671521747073624913348892437418227701778917726182643436450828830962036041515666867299689086378207132669625355625948954515604247374389829875614756730480892446045100571564242176649142455984231540241457548888823124379577294030707751212716575281598890494909429134635061646186483843475064779387995221445543513595113425028729585915550383065822407106993228190717348078490996800888133378634276625867208166528019536505597004214320721322383512997924399416295133165862507054371566296830776079955291517238646361118042309711790426731228441347617034189671973782223544858731761930128687343925010924506216746416779330972344123506996687893732999911528315540782447349602542721149520686554393541505513386705163203798563680633514109729577491946246952019047855656389067698864239436906855217447684684700583782744824371775832044419271952268393628832871812642800910838941427469979413345110791872161238291927874391749355741989715708147646364985324837414659244388894628478043121479204528034992356375605328714124503341864133572674302167749075927975145285710336491340507969535219792852673971762890002462761483034505628891227921183994425765115559962236526071367523141932005711610668563228411849511111576616419055323562631489693466181677533903742570504630426916830735148371820355578479484696781901174334010006872759932531141442657738794126439123862226543465038120663893981103597303860104940535282197233493781050100233154125361924567260145531098609737916501377243186676200292858198833752642745330659095004220292152654966377538867086192278995979249434139297196127383606919922100104900739074905348017625437311765625343083716993223130369462326324440040326829264980504081317964752903820805444854069855163597989796506129405054574656817520352775972687251304898740178197839333244617280145313213463523466886631890913126578853151013908479570376321036601347676835937990180002114336920971741441866385169058556705497922110793057489312288296698371250315415597416317971444399860993760208992378205835942429195997539930354553271745773686697377761031690768438051142205917306968423557191443893607066675413826838357663137774875036287791998682451289978520962444037192596968101097691480823687026629267017937722907374633380377769878139293542342738594009811060642689987677792539004224210455276037872950061774144376047231892262706282407701921452361692763099971682441742833522941618007001400644571587083893268957412060765199390990304840834654145265959054672828627324366608700654811593967126932653712699534295510787357364940576873849373051412656106577228962031841587014476961525261325492442944311405761933112382843348167410717713388884039046118004789338128576769757137520206172957551277741713577487072985640503829765897911769551934151314208256673363576368405629480538166369508621664384884094855650981438547456505791314614479789471588350238772887700638980404888461383567072893615915976813429846613390070132712960643669499597895546059112751108178211064890207364937105469332144422641713951407796713030244407105330883849482338068948967288153094898651326295862141885755199992729509853313616292496814506657740615715673729535482382133447914078750882308468540388127076706798248849481685958397500501060117362573341087619412643528070350126718066846012022699333022557395794625899934847911900927545781985889200916059612094600784788658033369216008897425774370901490907381224842352097750632347897282648226782833468401581115008111436618291733864363223635435475765696516955437694217515324811384868225982715722881860785450299469733362918836010380505549927169820489805915436629696599412959324821611912992876920463315367342295627330271498347214967553796940606028281086036091865790877469964216304849859396312181094171777479414560406908445544899140085083554908673341439577486507697984953804343197999337090782768194483918897668033846097226433535795672777208729125769179437823508814585164599902826881161697307274555634282763808372251525981593974909541880627766254517986836250831281360928927609146625695521913966530804132641556218023806077821509848521113918130241163106073083260614848144893643318789216064510800218889755698220156073049683906235013815933967120179736659573832663491047907555009418832835631256473565586032776804430599857688583428622698728777363568223909260077835595472531076024617886065365788083523965468485587458654531975723084930695893490103729673802618152879427600092423615222367788148421388161615359477305445389409509522639380384412895461918816306685853961274831966985296257524073036595375820124268856205763135149374927929136457127085630648215789967335153736583257294043597665276416510096270033112234072319738399180966221424397352917506667626379817407984491111778665649664864901257211727147717598944730037508414353749694638628196236816914133434040701279492635611700247147056918329486110102407380997152308314991985865831667977192677776094946653185555067847883661788589310637913044728795554421049554507823619581340724384583837736159824622280051857314887454199008071126715236940216308908550693145743377073992983257492047469046871897905578703583367000983012871568064241021882421658927443197730473780516150653496663458534930613814733680488359696869879233466940177022262964882384732931280668946213973868091632046157144084520279953356254049531791676061236070099035029374177441704825652552995542969088070770445709966390308922517292164155952658850411847417764741506144456080373217395991526004649338258134979725701470905915818885587704918407176474588946472180268411812744335712295622851012533676585089267180765222891351173581544924687126187092166247136526472638780710122858183164729865401181971100516234548023470227756581531138107404690427648858960475388866800427876538771874158413984071352932424850306742274053739861640428474898325548074964728636115573676679655478430961904223419637830316979194188456526854032168186955741104642950932758927390324203071774992327973777725536140483690717582450244743693978466486458878248202625469279974115296746848365300047312368242987370559489035068289904201660578759341579462170038095964933669956949816935414047126176391227732455646064899692580345300522612245792230938756745627422626740667375609526690116355192349841661466617641386502001869913057655698677270269889426110788944450882316422191521755351995686861222482071256203672896049951866518508925459026159153581528832317141397349269385147810456954369689968579702843718884241221496334098760474504224905676492100149717331460848643135769378163792473697712273635256002731642095424575143442164816145433220224330555360008033040636800143287450591576724230409954208210190605154547434763267029558961155580297354457667275437937464183283650038319855481145527223444552755511999099195823471882284013154274137767023640714883118888864311128587422698070654731285114931041232189348499836202793735238109480997251753787186559839048044161108393034800095356816164663079808394239232741936698858984833556633524664188614668236737081065042489552808464726819402441079290667239852146432386593422584079401337729141709998971775704875761707295116959156073061128154378128164394855805373564683477343473875704024033597546058487267576225789508261532430772700081103731630022492066154912364741713933292928223933348144658513521270492562666355524565065929730720148581866446240127209644182853948264759191556253553925892094765748049589482252059375127203844615882724920725214495767510049302798635698350215108938693818719563788643761188708417143852111133938365116143338197875313107472160800263551246866442397241572886302896834124638043096372106699568044171403794603816225446123304286742465380593077056164156347962209360302467028149923068042892061152882340201100700201702367744952987616648044579845401664842863656457490563431615962762269460207740542091469031845175926133446113724986950833513178341560356618770113004401994498590631566915319220165056343209871646665212380790200196138574407348033644585727952399840343964181356149044041258620268743605072229517486784990579283140387705855840602248270707552564911299234218581069928234944818562654627694370166715342022594398049529834100468356631819547793618937294340958163649138098357722084898265317249232926040791918926425875336381616181420455524817386330562728796016691476948369417345314340234396281459697934883345967703320036276642623445049302293905069782827490979670859658308603178066680976759994881070042991320351509186140989822186333568508486104775880444963101585966538136428946448080188140868882243749412880947674511019480680090263385716565716256909283826673160384844930109548751743491483964739534905694995289407813402902120965639986091000162128028472859162976121255016306349097220337025525682739734182239740928473194683495847853933892092952813916380568782517920730037083714586042285298635286366359017880296990314322206300736247731905105532718559050235240739295753180591189393798083698374043081267531934150759760105896197904493018145088384499958228508152965877998183742155207540080789624446475635110760359791858016903995138091618456163889023783974039673906318048688992843077026498515788183341342108714421819770345872313141937919639683492999720936480225515966880038049217354131459354347252456290435260958888748353978385346161721353385139530626104590830225517698877081155640014455073138584899506073858462527881001968698147041223598946696152002111202816851855567166623988207986302122082517925510213385643413890974381017351993724575062465054045945313828186086587688854976204958470712932740767750212512283414859523516467456788884363021374874791855461880392910476654257520091498732573753221493997459501658271777082052619276635395036068398013892435808898256931508826311593518182821563151413413490598822284008634590627866676969424028402509184061979076368000804826457607368458649971727954253895557297941350373114482090196661043283643396310698841963913833586243437718438414650654908402087840322344589595184124046818660071311039774662338995809782045155357863467912542845874068625999231774259815770874260685244407435578259851962927180901412527779229664643506126768661416005249637839080558664822537696511098387305609407873918048174750884991742211818951957623275244676617538799895811695036416219265767684545546440414516469953729904020324774746099282618520526757486991543030887536820761166818799937239738086012242303169139252754900089491024986130201159665549592031573964747331556032396819074165423332520863328716172892724537432027024318954904456466374958743163034069964734810530564421572178965464260467153637758142398661163397042732754127697313118496938580500486826656038030472323472956292460913443312448951246472456784328743591359838309756481627970323627078984423279053492211031430299501104489450923417039495331418962364727666694711797392469985866047567577518537090251816773413188419261313600323073566773078968121007727486418626745790516952657919359154768884531924247772934631853294072971880725659210428553021877198333028526833973311022162746659858916512078643803424903758768035013460363294578594847479701901598937903793637227293194027443923005135308185490731183980374751435146703522158832590648361501282299622994125172982999117292305143453437873912388560585796239022641700452594520161240411270710836292024935016514874266801071289425356591167200709876157549504998055597111379603130457031906302687330498225551035870641865788186558750407980197363849021792084756341013100723699030432121040454838589672919841520664307923291178161625032412591471807983932809961158621477416664428443394957292895933096455738900671764042242936561727867107843413501706617907395811239643388121563646647519581293162731994105095857703583778222819798800196221874363066940787165367687581070056943538684528296781775474270608064725985687896097375166558153598859827960145461315194042786844103931511813980430223177757205732295270587060182082706520318423656601285857462686483418720913797297658830769716373081751758977788031599416967202204087998130365693167257988798698987480454325889735523323682756157602563022859523010209959851162649575622166614012616985038815928851021448922276100419738271569400973871163877685108502632844131456599818749439405735566669631088377198798768585756331509007280881185677964651892882211178297214578718051791317760867476910286600086859196718998876266639052380002541136901732044663966346957198355811446061440456922434871659264245293032527132630860379036673662293168951731237962317156180623078631731410177607119560959136172398440491543606966248922179111310830565876772643909453999339320839939174345390315990122783154876679629326267712202970274576921126785001340193001617945421068256029082913591597997817888498711238338251908493682964580355373342015057086762247072663320107638649442167287190232625584804754899488169248561044444391095965011435487048626711826168693156095920525412312740079185791244595816562827469351150541596338275928532497291152180794029140771178253677464781937745942828225667064446877629272273126785839945302778064488115296213336256318612952334331521677222496284041165298305682813868483855113345470701156251910116337574061496698010912329844696251459968607942248004530725829243386711852640754472952022387597299055596501415211643457838976401063863102096797086647190503550380486173279999999788484311032058412276978063101719204756043254317692759621747697515907111882460685335760576388827813832491040301766448025451356343384478418360377129463568934870441632545101718594001781606423800605445346485239713913631684739798758047548402619183267024311032862724430920451308377051300829706951874879577250614962256558329987917870886709831017892537075031227613558827891077542993844654581536955933312360193688105613189152616433890425507474492767865752032217313847898314529959768935753336651748852797736895000165231010300774884446850081713852342086531719690293411778579322352493082495173486065394480779596647833828547832979786883179150718064943290241019087987970861084130106455362286910697871677775876884145517710848318771984018103065872363658297733130113796291159223689361220417813809664975530220463254417604300558289231775082321304104720945702959998951976847430682468693719140256874412339915353544841607601958695430980259265166089793936958595980508995205476102031482849663249982317625442375759566728104120868490518956086946352060096069428500886571025177070781440331465614804759541996074150632000362760839461950671084794803038292765962804346522697960883446138079091538160790342133590262833292567314986514957924772003175386695500234237019941166763098076286877024876304053297791179804806869997383782661648816357487712945347699044112774788595052005680944569932978333062941675499822272213398261303320088585797258411611487714774286570934236329161749645631636477307918541272129436279814658861587626785049743671091444453972644232871128460217340438461341096265700690239866541620106427745299288265999610838894643918970989139385362787549109015984422042816345078692997592870393659243939547455984182212447616088558596121322104797043177543161851886141144566164964151457716925363758884951116561075903981538808985848589190078256312704604838632215894270780835371766995981128047678849379648293622081869528952575005339802670710122936358945438766527319666875844132643324568687564850507784600522981583245968375242571015916991345063047829174417723405048574628567692932975673168764653702897378235193107760980566003576914324962343674712550576660326400840684143641113780471267502184853974602925389071173743086218041971908787007263530406634529805716688039227038947643248776598243596356196164289238796198088458294892434219589408457134311402692100605960062697606049271896460189866634113522699981372499067287367892645329213498444045931919262124606689788460986974204395674659092819214863354619634893264249200877848131205080946107806239182491235502844693760825857224261648059943873788259818001820544338091972474220425108351162548335065703296630755427797572064786774595812986972437698773577832835864039621048485343105695619422082273806389465807735577472475123380656565290379999696078405503138833969290134026272202538574504221864934243545617780349847104078691364695182164978362265617607279650747645335218295739602612179281878993470843960276226720626175176182183099337301989013346096692878410862372073684430608806084538796450126456126309127538798230792632802955545873888411961743802802396403532819619532627099080966744360929601625565453933550894842319466196423388295864492405326706753889554824896176630257737625640251679316248372098024956773194320788194209599408756669865910566158917687992167214912035068709503461059433921134308983831826605800785339533156570922310343358715186339095399141541928299854245470196363870872159972187363817214196904903922672692677505720623166232278546261039170567409933684528520254020490053857612413247791582359078985898376695213408679995768829544422374622653257495721801066267583201261866317655087287818997995165189242368928348715708565913912317071841783623210959590044034672511822552265444050855481958785892289586515005879196699955208981450412899988938724493035577926158851411776392497615650817568606537341523958787985583460313746266295376398801481793969858018651484715308192532052784605063320614208300177826442177785041381357415365309303404331023839676198121630887305904999931807377564544915557015733375505206834585776103371543342087575660700121974131489126506102021747337928216681803236468085351424166380558551221674919023442924075441451372483542862689994832773552757273344106752296286449114320265888341416475448550649015767096704573912441513589628237099849560516979409351860153909963178191721875819081695312230542363107354285493570504285984039869266544828166681121680151487697783148143047867902769963032955246153763520581271948408373132926848170387968827886682879997060096869792665380442270291399969513524887800108847441334204154539483717275855598344930206341583925628530173644579215776170101658201774000515501673126246658963963018842846736171986100581351040318156417766754564778405048594349668997880462129902570154518152168138532411367786771934484077027945786233512368629667251885437259468829426512780222240801812954505687521523865803537966617633457203370541360623836014932603848894887976677042877490944981465405310004733106010968738064329872932243275092758991164417054145217435528582423552967682483599735675760069048787496188573435271853339697592040531523302905826702659502298920126670261689754459599224508389181061655832125010235837692157178935043202222815334020596931285507851596727129276725769999460779365629802716981509249349702282066242581474850119835064426809272952240305570725066969558373504484471589543600031434122457987049631888882690484781666896576660373222711624357648756418215295804072919863790082312483140925905038706264123767120104238239804922158054450998432600751746326875148332032181892596544243524538290270292732248727798764074805418580005131145007274862414990787035419441674184368371104322429951327847949638728585880693793744308519156374135668209340323917723121119760846242269009369666792752679865431415234782882512246599975422940204036855167676766608689961605449161369269895661986278018161305330232501395338321568448539738531461680371717455769045010130117644305635548693708841218325137994471073540516886814192715862099589931401618061882307612046011397419900434734157554379327330613819496030975282554808573235995185999623908650842413052680749805102857437865001423437362169342698380995208370804134424595562166138132472661528982528226898919765860520508704022319942926136809423570698974078507694100924490452114484380358480755624248519326736979264383000211348016520485186016030065072247501884436419540088276616898464554892759172589753708742465027093985011208939196531904686560354199037088011170804049344568677502367299288631412878684968018548309792433243548397302286415376326335832253837233110815476022839552926941856048301227943244173964065656064831667665030768688262127267261302828456287436677592941120379854874210582900773957911192447478966134414343835149141832770323138249552288368923086698431335881958068226636802182605179888529486263183269877486843797018052894656133449071449571189632002626632033580969199309892737489534993788200288691196183318590156421717234976319560676697862463044083589247153241813412575075543957053878108545611389828576223113231022183827475563575482304431414161544087569681710611174158757068032205607033065856693545063952774313511688688568502609623896938012163197352155710770025362086566424873539861398050970330075826396060217490409923519879664425712231774285082336638786818274270897172205418959327677558939112156054765030465666054472104116945353587030810806599206454039309548688280200377552718881278207104156325654614943070836331569926041986431570317544687674193682335718188873473024859862689744765117195281607064595215114017327337191686669238886475894865122508576134669373420859573177864808468893220395795537707949189869089387388171993000628549387996333230397738840369123605192995604813688837860390098507580412198728644657326663311085184535624782930249365778377603926589963610227364904151863808330089690021111165285130807473156531252522166726634972782001936459283631590506395703311150437791078361139856463807892161676108000942301561525489797983175957901018463861925708090584858755747818851275220572589685471750099226499144953917017053330927134815434031636204563726817999123445338257322148320916380726836257473843574805520636940802766301792796227037579455008371772003735689333481004984136737537212454589086011586054822558438457606148347433526332167623029118540228652035821190325247759959396500017605059620954267536383934275206532091199354240395133583402049496734569235914182926531827499358685178157784191777685478327745272026066898483564771069391689337520643909404189183440553276034186812734648591291487501941520715978058867726022530458525606747900047658475008865450355500731233617001979909030591538460560737753319865514769017773812265382517393014134958583525062112804820472148893301931051381294265834475305257404585478648445443924422345224772861971823021110192479651007017673259607895684715003561121462661772004037270426868797176742229612286294345820866010408424412066723323209423427878186743464180989428714917237026114836521682468773164753354700691153086827976385934632095310453753684244848974816177026657428485854756654289104765307208205625082557512735585036556639650550164953506958851325280923664750639498578756760614827713144122117799695715038336074845840877587981637744843032191861138904977324100232934002331938873394375990688154865249407847668106721438189057257074435252942882385033353420304567056251381976394765136640882537681928102316567843737198610689669359949761478618774097671658017618551912880604454505310554574410451978917419474731931781538973947402068498495241623829338609534514224609804967370245653797795930193119648016586041455146004006349388148361106056507240756552395602053364098003643895102204962843695137170478759996916035666418636577572553728559551152571467950791428942354179623821840344956479520278394259960373946335710146873227295030471395373354461109413756863223835094296948414630863689644213346121639023711590975781237942100423556310589874075186467786723621596281988275563804704606505262125579574335205893103924253887279400930151241824469282571807117308908759999268280110298606610302316114342145965524577942920787974032311015634255352862837618412333938985278668835004194552253519672421111422138914896973935273881005985194183546751837294959943808165933253023868758465025082008405281886755342266550054254117252949724495552994547688864891993584224278844136708526421720520463768655995842503020934175054547862707762311993550261509273299536864576354950414726561570945190920595681719026926657359587698937226576051108926548103973454430304594515446884972314685870889814343286850141685853368915772555107009166377491760956137852648807416935926363857150029611015323029683076093531521605887501867617515366442307287824649538971956562122108715944844952644146528665146038972362601849277565750525123554441028308916792354151831735813689569986284214009261093272180612350558762618057739538807299374582353375139790074021310430231387601446020404326839301811818172882202748531679559085534960354812780824467509855491359145636633811299596150193899621003651529656598599752661674486671517761368247532367538529064121287173985578705047055558894211058875409178298764406870889197188625812075241641255574855482913898506459011708310162912645800136476971211750401405872295603876810680552134591112264628368069991787304530846598661060964753519733638592343468236144218383187123006928753286747377446719297827765959065595658918744406007166624348834734114338147693211795366683237596442742576600535216351432400765131218378182956263135117987023067020342606606418885590020540862764378816679555374614020199270244502978494030073551468669180627341740295906949252360350919082131752902547006476080332322667190967667807922175633449711039921402718048353955181251295688167358141302682880472383064777853964563143017397002324188550447239260511191339241895403300627976292741696006856517324348715245378539708050062865296053412478630276464294333494192247549290104343411312423323237742478728088164993551477990313500394755784311065256066501957592257017780416564130427299874104465312894399325117428032976196947176738471943088159244780979043164126773139864239115901288610401251386343818990712265945757227233378634271749950186060847755614369983145793947495653573166496878520615731036822765878806808497404940056167516500643051804398457929442851121690325282837109176041674091767308213113572049195010066980244418745688153663743013744400549047746689724407680456219257864407935947986856112477749438319404470360565503689200855398955055629424012192193425304683829900526845533081737034208448775995259251008880482363839568710015118191323917059904191172182995792660529489011062719036162625247533410625600911923064443585874158012500820042307332757488663510556534597027417839628057208403781335948450017565780399550931569709975146872081853107379088402934808552391417079332056984181234083554023544179132994866412160825714080321047519476051797763793436972021286951705276489335959672345058300944086322528800026192046490925413973496268111947100245305944500498067501534805953644304666608348831754068172568991249128598715862131349276257163884027552434690488483622378314698430646794087495813886211733071365442921358077964671261047008474355631323536376858008766014138050251053645373053887625852919316142299908615882824709063511674183179935874089876460825214834446760520346900060138154263257662054576038738239350863946672435970132490372796366205119036684415650089471184909492408862871287143459125045131405184869843187281817823706348553614188885642521400565566583463645181689262667118036394367940944637890251241754727256695775683849640007244782774034163604477672530041761616405600942080827467108353183038940726476270888354485431174869609496974803358961534714919515169126223358655280397890720280192390780160063327537120301007227891816388976486611953113347445396373683780595646579191904810698154944298086110129606989824532054119917496719933042555350604061725025311976543471550464193514117070506321534751007643592544413441021910905308372947861091021531600008228160827753399067577514687084436756067741244023811921976383806588836202364006977047940244756629454359090188697062380150622105861378338710768499835877453318085933433553075384602907432786100562823120457281447994924875997988708492994672969177668487190353179232643037652426036209147030401989029552724298337320262772600534918793025017617560977654014061309547819020649815258044713407040931762732221923198443532377544819343109004727769363996914072302945560798158833261053718005832626798287712683126497384739513551682042461949980781798728466522425797868313083156788994600790137551561468768856834149689791136792442955872434777131347756158674042713608852217349913104169882337106753862918332507445932328530756149386603225561826787760230430651745573952240657444507120721652163032444525659517390202844293051256763133877875516597337763570881249522730251185702468407479619742101506153422966814222178204953940239195984814242955965926658402816805140790488723953972533666334041054067692268804438914760082088394057115853134391917705606317587760025777106761002297391828561370480087636913671177426070007710551042908403284045586128591962727029061935367124206503497021868193730043024389141634122795916965314127390193995773439811603462532742602182468455617666847463473415319112660532476394165810882894483431741156619453233014581723169907102257310543655770777011247880299709852499572287113526756738854493811133966499966651582134179853791141307765344085630212612964818037351369062806667484875101289704761391269820972802735398757902805587661817044083131697040227901248065749642885503634263032190507842137802316884779308536326792245642112392899186472136753193761320428751517640441484231552326309727914249139444895246133035163210246103270525668070758560773432676875338892984208876244059491231916682526374059308363102724077431666177722086615737205760045788425574561778641587380574290941657765978927368102501383541757763300331070782649799398811975256677215299746051810513530389154139019594437966498019272313000095274626234186505554004866604110945249631297372092628405222839271851414108434260366237022085496092798272519113623619330991845838438525071366300603709139983561552410098510335225224963800072601136913423988591414441542496315918659312876659914880471385097053031456771504334782542188956201776228006649973955750439700991776377970035248897396303948901442832384436366197195217908363874266041453262735065438745253229693283576375293010852610317344505548591556006755052588473670822875273078032729246868361022887214617836108933907997528257172536368344217859459042337957337178756591390537878653252989450138368900507536926908684104476651266397555609961810591576553107349861017552741777584272210154198134140838598662291699989844353581705548952438600940825325213813308346799036700794071612542631757941603103029011494425913376966389271158365038695959585664258927697593481817542423908695993454795097885913113645050808173455092844091642963436888232888721985427748091796846580630811450630161833921356288826338595934341821852634936857804077794987360335455798093850111624196531425065037067324945919211550621890763806575323730811516383319854189389127166724537442650236802159463750423268604520875112035637207462850098146120813449177539016623249252950805359403073717630343779100856789208775497568278031819458810994052584842954058039980440235294080308748161966007279239571642195915133870008715617217035285657695478872363446861982770688414840341741545605752212206301948030946688842710332406284532216302737155142242330796383833879798877881612088964612375340142612011042503802717898901604103319648545916492077874760232208831377174144845598259322723145972836631428753993940789297664171301630958353229745127527334041901611632598013411418888738690508296839049878500464526064524284124896044059787945208252511721981453045560675585164388189000634607648731586170196142611172538104772095028114219166781283412866746118856324046350333003192955867179538434775824387142597437660849666497510086356262662751944717038781263726069592620426686652108265906467024876752235142404837290024554380923675086252200512464760799024075137349035261262640128262856181962318954071038169186720118800783418839735672104055456280212978618914494141647286094268258403250367535986082400767033187688600661924812873029542775764735356363566565533372768965210745966157666919138486931246193931408690241623214934968336700072870310853922601475710320169719890091226951764087639048259408410287330520057075707394984617215655264098268170434180119260497851175195105137607529862183165412581209704695766812662052882898995965509940318153734416015287476392934248014232448231458184005699915004274538944814957809484101154430725008701709296718084639368586264105698920543457816151765981601393612417563563457159051329882848713896926715662920172543749580143172662254806985554442574186163550813319923551875308699909312786694535046116010254190844494941245113378969109154168233097140655710218092435673591568718723053232440332812581666053828969808637906879290835722472507327603864825130619541443508657702945017459302387783082788734939733698518459305142039999851950067718735140640802114946945922543710829738317410459559124981751043295143965707313510787111677860450871732242269303034701282370306258081779220353722950252159111833246440018773544126215420466691676431351153564977787572314089959005113385501360114147025784791354342742903851192992490934645610143264704850192276212638439969750741236271315381528016761508381153709112778049243909895238412469852145894407081265372538571634180801824396317638257419690829259999918224025103950256447819566526877244742344796986154322429594951196966170503369549041331576408245630201556206209644126264664830841919591926098665357865230062860675994697841101973670955954057270650158996119614665776429872616798963188248306523809640997233555340553701960192890230080578525972013303620503427778575183999409706633232518527441918331688421551347001137052263627526895022333314005231378395277382749927227523877017917666916387200713642938210709764962949643209646696838980463166085099906982495914770362679520641163123340758552598576946216932141745875138133343356616460285735683112688834192056155906360980309897455103105143999759930112979488946127319664656425214566764155275797105772489560525115159254889330279524232055582269131864334181570333539665340166915993482330218180526326087233502967308043359310307977777508146590126526795421167998398563431956284791613214825683597076165173167087056419367857332329865801847650326997606248316464710027330979467243439826567559118915822902553518948406185764046215032561586469009838456152353772241134399177504920281832780982735831142370592931522122185239543495333700162670575195083584141745090827144747757605324496505954755961822939142442216584726901956199812504105060536762513578951748034298585510137915561465168330480131208101858330430570464717694801350493496798167592083862795119061677283674198665260820748684438695515235586493207224962954473664907459976819845015262215957354775863481940754998712294130307902674516924067803808761676210102711045974764568838356305224286309362273355973926392257379899881827807043836172584706561797467966704971401010671299956071592341263540670400047740395861538425208649173642933329439874895682376389638132026576787062989605433432922069073784668536271197044892519236578007980479761113813871352840532238903417841355584208296631308742717440714139838458982490228226367799278901082761860149162310219706785483848912821758935029360989728925579001940367749191252735694199085304750196928712135017924826878157992513888795986790861098571224613567708115497927819604123414746184121601617381599999941351081968882494461543593591142647895492662076597974905024876043857686081494424777367832711853635174795576310199795044819915513084011353691794624416390031141055256221996141586057760826920650960827165950739574775996360877786098923701427940945868024863803770503199366199672627315434125817162712963881885118909528301951908076967806756036515783085802800258890262100184225469454043180798532588165728689396281653294455160289454872462570381763890699194026690456051750830209038645488700563787103863630838485548686394268167299758973656123935818082418502710791520561857594702520144741587572234048836254609540038932382815230202310083278397554422537921293439111420626841809898954389397584280396976862662760072627038322187339268461571570179166538792074164549128482246361885657850232330906774891800448072957238019386062595489660957915933577548852259748182133351555960722472220207119265174985423022649118615984610548071480754237445769739987469280152449312813121453269540486912038271396344235128168059654047103616262647563160622356992664618576727430662632905705336634217353976591689310036800748496394474134654883007950940976900272778608873546125523111339658510570963441420234082476969761414799717041241056940095887385929386033727852643489214032227418697539494134590934328439945794995890077931472300199438350867855826168262148679382222728925278550509017510878896750317951788117278151878792788984783561078786606420116669720427828962624726152230856376533536868830128315274629445377934146023559195057098673329706678414960345991107800151922027555080015904415403836165656306951408567003619789745805917192366591030722048395858377571757523937444564829235234340187092350032811999093429143957446636000930753164915252828427559999324401721667227178867445791890421069383271329446459197845446740090569070553106134474876434860778987419939414503205312529137918949019651781095681873543451427903081862424840940977944869731656287621688295276158583679104999076063653111429723568205687095629964801540256684786616082925285514995820872083617761428081830629104501828683439039625010102650122507295938184219068883995253309224338405370543364831411029779738577013095218217426130769566627935317964140963526153430610544794019548068468059107241610325139270292082247076183199743760647439517664912403798886592607771228341647183606363365759980493200976997672343778857014601260213501950836378531272524622294606686289567186744787296392767872066814740166007110141191020989500283787686214929309331317417167536466033966813492003840374235668969498487746524129099007617779266426020999429535564718800542179708162764946323512813045546617806488424571140617776981473591935756579936292273592493121673140795213930729646064656951239638770658230435878385426014835155594845667727161947174746666997123995405551950789913437620900354320728861705752864975818367980208475633690372899191051476997795895199605690050717014298537195778504406345523281871778212727748475325095616419610810213073193166343706507472728649093496277293682818274132239383246792751100365459056941784366839606386222856384447599363191515497049838944485810813214288132957150282613823358164685320748635043973473365798565329677175533026333296325119524061073443872733258948228323974057177815935146884688337176250188026861537791184277179177103733881860112980712539892859439048168669809451225551383120175064994724795428164867010795112529981519273211315733239317290967573718661330252843890538433536230487434355592865823169987942482107752865241954094832254143389686615159938476007775128032156850228238111025566175300241572883363758963930821374873355411529318595859420069619323526940415785200290520692526528677854935130661474166645265686806724141055931784774374837804888902515606938550187822973785007572548833984895710076029222252154247822143302458380598151757418166677447388964312937613887844565979498529521141546456774572868997795333819026196310649700545979800385071841825948312941521708304520044619024676042888111566307518911169434513994399141414525687896667274589366344792292790130916452455777502860887684570920901354743580713625661617589216292041747195571478662022665568694168510760437772209019823863081770597733589622253021143386984068205620821002507498412013213376595497378935959970898506900077553532843702206934101074354985952701863360730979568019410852872640671756880968741146898721368925295729469306172385794875611419644191740380614824287272050847964790625995177532930575083172665910581597993281804009713631378930676739813280029065960303286758375527071333720060799207499305561363041182797642035536356826110963488709850921977699552908384045368388080600338128345286878929584389744418513813587135946197454947720860571363772128644622823836358430735182065367873332527487021389729236659062660886933804509811226111199332179676418709915470062472317847506220424888056568220165284138190035684702789991254153327372492454961813285115382245150284213046454757835250162389832518709473449350373530275146323652451023257444997788597709079305249219415555072632310016090712120518449782317714111021055751760017404381041932559580745926982426922224013540439461233723644252812277464832904819063253959875000266132531695510140035919151357984468582104876673218322306993316507836571671935615965537316820390572404443517776881564712235553746740763929422115504229691333976102641834159919469339807139080340419828868487207672152726187274219200766350078752811597193551190509757793414840171143615942397784894935618490885063472368820141377452679250346355903147201181127858664424607426186102721031594859867208578358745293994322073646158184471509381323007323737074710610528637057976414744840003153602324251290786015975839830411111049161943759455149375867858480821089537661375376554373246475846470938366316799873334504741682326004293228014294579645060169937427423872785474850127543775453205964064715200591765131622882912225042041765235283148664404746099814681980100433702974021890320444239595860949246095481628480431637762183413271609521272632320873393989047900056849955142164463149737473582533786651773194896467216287326951215725743404898993928584666528414108393409669297129522223995905092486979467085414870571171985828270638034097091757915749304651053880768681441807453143914452782877673160389616608057832444479846246220636556823155805923593725977174167498547701043171729287942845587013579887251857093437777425904282135733335890589675087316827601057894817786178433408607790252216456113302820744274491995181361988070256736229826121699481204666677648437672598136256931857703513165920413228855242986369106936436453288525686351998856229282283710224590048164725087564604393837088094232556259987301197548299786666727464861913647816738977792002875869689624370280131108167960311042981476276370814923983615737999944389028688130403690422570981781942549731074780589825694014728160664031317838436245224839814898869995891422085532329495977497354081643958761636150853978614230810098413525009732458011538713835202359865747702906565923474477219644993948735906250699169766239852013090695037291891984187279107137386968253023818320160841304951968746281134125020177877535964313369907808915856750527326598578064815326332402395584655334856851263692027625481034327566175473491024539946897793410318709348324803380067041258502274085501465215184051077342872545179468200634541609605027690598245863000868653049151858789213274925029372040079851780153316627228739980874991737737586778045540455397843772436576641364020548662602701385472042217135857649720549812753839339019409132866190339260017926107727622969098851939063008706343058447344380404375625786847887031099958745701088531433863509417517730928144469663252324681594902957256860170960676753859078169467742021544179420655422501782351466355248062776900704748125134017950372763433126008822747773413381750361291071445625047112371329398518749102712843975846958107444271188249419431393116676600175116987639953574150973957255489598693265997878541486737252122993981881614966010074569586966594625581565146285124965095357840405498790749278288103672289696553540390619693271078840350216202168740217631275626461243548074622594198663912189341152167974908338940853281955021491452532152097986214964823298187928729017534427175858838335905090608036043274408240515763171850038654322391206809130146170952795990523920747970648918098245586561316558999947001167800203837240930467004735254805318716260324463276013299013936231547894197973554736998921408893381527255412169172106697665971341825333970000103742865692552329242215288077952321835675126312066934372597576378063220882488079878771686542557271954734473618277065733164646571668999382484920993424485599149482678847723878658737677486766585555016627646384534646225538246260881629955149044004637993335605229380630053504428720412439417793202826702781951906127003930168819695100270234918623002031324982716131698901496860794788670312291223965563759759803220640343994238238620225733212077522186457885663077071410680310820981348625554412363776240953592123850518339979306312371406743203680336610358463046716873419456968276053173141288729365857208482311328722140758416702046398267256209481652048927869340408969293371674134774190030928919174219077984587134358581897656558785619682219036031131539724984499960735500038094104712540202316310966710536500876447135796320995690376600613381828678688531778750568331621831428527490809319393429774651314597676009747718969197019300467122574298667792508849910813161563950634003076003985494620943168632557510319008555511717481071696943063370986480707799694060588690126894770763144707279381124202562045859331483840320099227071332359578729305978935022478314885793864106233607995636642881218652144425853074793691490941855010828821517393557205137758605963875111710259840948800878336396415560623119613005845437000463350357353111907342708716370383898133068712648056285756532701798962491274012178094024573845156449622687121789231029191455058903960739723418502675332491440029840698390849437858079053127845206235011329662677466491119378945570323635038068791332860106981344934428604143915740522018638960265338678645032646392072092607024023660506976007811270443712400754423595868064385658370668483617435902558783280259268899005456274164459019369994168405065251941411258773921337750649680529842833595186617602162516450859557612963396062444333972751438484896114140456934051420525289295282012234399490791642664845084998578824695806714697604707222481707595992743498576290724999631342360686056529307286816638413630456558222135262645005522038333369892220458988124974169887036311866007845614845083787765387467474215548233181838962024734059743129080785334596102105507220373956665561658882940044638962583432677744327806369682211093783171120848066349610196560001775146941830328888559676208773333367488601582447439505670502774130486569712830765589940818188451683317115040701059861611321065346683345078844082672310769064728690073309850839449194618273377092902393769623527362590439075619346578384082611078233636858940494722872780493456949803144685453008378859059445306967701774154392576619045016521986066347209358534501755055057676975458313468150019523068179833652073754404496521717154324445036953038225665643090926645029086325542436604070406501114705695083890222931790186743880188806313145500404196440458579775629735497656452674741283475351626720719470087760552476421961984550817216619411324118003768419392396998647957870004041786836387902233035307244035750469102464888311426709037882456359970100229450932996587436525160915334926402345003049567340775463476004256604267982451880663974190518508801586445971979436151063681529917459443910948373729933338946520191830382803738447222248116282128342335366268064924838210288973055891322409065402749599968005810838588929946398673700620966877321119832071822396212550779574041565226139739567821095879181866528673022027852520217984631889993170627172595222052116412876019162108520677287600912510531220522622862031591280401275474554671203126927432307475768202291718637867679245208261338415185857529075841100282601114861507391456118133099708955480811433935561699083176736025275502791834673800014121718043851065030871457325055126195871424590810823622711730461671603516878577573447299367434521369122055322383030089874790780924541815536905263336252877130015749615876353464876693578725120069384777575344969616007934610491865543544937989452420402930755003705530960426922888686382704287074834259415996543210137085966323758696314407055158659958861576230875956376416850052874219901204515646441884649102418034029284685102564694917557619741113447806481246690509273799365584166843215674547862887730367601474324000409504026296526253166885019206330305482098025476185493964944257948079127730977491830852114498530440802849996642019946785024682847747132824564129351020046806899370580350298788690382159938377497587213889692666952024487961975969421065715531191978204707037442369009168028042818036698421093385529715227492357196360827324988469114523586961611295751253035590922274356477691178328523096561489769545848573067530409992141781624050669972800560143619392743232771212447405421247627092071002223739819328629485366586412241460451569967301469049062840509202979003279092949800490023257229074974092295304146915707225467180882420570824501776194576058724142843310295465016739723673554057108508123466221296066384701153098327221722235859263042222486480427553065492566036151268529804398982974732588583315937583508478541220905231375189090684891347196579060107009075426644918710049049876011696552794956738216329262407456349936966401712566139766811191766731086857750194164544958304296598230261743141348335454757461896803448197152755779034437988845041435744747420293588460249374384926216112682462273070319561735870185390171909741030231778589507266450399020785410044627944487010322455724119643167110598749927838346709480775643900161737011135976711472637854432471221632299938283513291336561810392047828216013071367061441011412100108438548244726815438665380100592642932123328300733749026055904724797174855908355688073689946945404323475420741893011433597996693856080614811177271967316428684125995315232099193294254439094385895507751391324620973719112361177783888478974923068136036142190269755310455088074226671792421289897129742026072074136547618491823971521682544925049021084992769077317311478862095521241609700103373930670572252783877458784252134974355662996712002056745177041044921324569616997240035211650540051269283525987168580068944760730843019874475552506888224779696228357330521169029964495997025848417483769490144506108388222364781420609542687488695083179804409856491549485083318613296536288281515806756970861791987947837249228119898259309223033556717180623977995049758562720662252339448688052617427812392678392591892610473096140922002590782761790354444310523834527741314153010046692969054609973170079855080546657954132823920922600187385643055345941518863200548121297327026796832551416844326858841852992097646185547043126456306266688739996745897592135333794111172706539556574532692712977212452868342828171422634750033031237800076739314868463542796886104056083463001461171843206077305564712720881805718963361560521380553183863216275706832827984079152900643980107622328226733404563664849838837534056698224163439239542133424926747778801779716027458176848482628812884845293275580308051971279525100186437614740302742750775063595621786487074218143459177158148431902485585054315935673836321858065229657528010649226285714638526111511795458994672202523671232299389956396183452239131561138803511626885890698755028943198992765244472156000657966271376621008731301504744505680389978588114947119433545328162733177604708870959053483246799425128168842324888909693590409193044006429338031817973194364221858446320816947676673305944579617448218141554983691188986448815768225195610659051676323259494100627736511596386471234407734930296723348087657692292537745129772464555367319042218734273426784722944943975684695790702167146571822347646800360080203930760696592551456287723287232500576597906472462003460467623524595538509434356456923200433798738161672232395864517600974454092962104764723999748826155498056392253405399136114056116205327376404734560620569273302368011620589796321876639557563814068864936812176781242635740379475641139472850961186767796714162627397777956222744583284397336020071723801157331565836433509779412707462849039637626678542656465588647576501852699268032369032688554335409458582756780403975780374760167827032136405002168035251054016433182051678640561068253048099257845360200273913968666475839430301796645207279099758504556859162107904955343189958891926990067769902146647531140354187257193283408765373731803224733826608021594021660792306771624866319682852762529785268029388711222069663106527845427001461677342887035419075982507197918798199328052216754269230949638698114238231566974001676894809984237045437968335352154645422213667400134170652061053225970879142092101862505899050992888994897554263665968295485032505725153260386177614236576254556139893195309595718432768239922917419023250214123652117768302463135793849697918095539399268838059539927922595734380027865106751062433826223548835950539243081994850966698529545637236509529528492978870810771391725810240705734546233908001953906242904440708924003575884569573961390865541123812353469049080808910508223791751391240533697219330467572977190397553719333041442551647955288633510371546176450291030578918265180184095207288572560427128721578244832476169529726778209645106271220920141302377333630943834559136801171271460805716213869867445357161219487244843933701958186776423250714688212422347304392584993753187453240566440144599766563400023174672036471581397584811447469556259732976394377652825204234507312762133685154284438901952262892179781810893744345851136736227965990087259666550543154170791934043253778016718413340444163331486380175404223357455210657824318589718012997487214377213752517110382854956737026771860021665197391774065835595247235269920790079756162753133638263309444539114468239283509799019356658210674632637868326006297271413242098213780019191008371851675649357370343878146596851375134973210188435381347865144749906058815261269626653847743217542990413074175148240273733816442304625413712937711547567906626092691102112053164311532104740639017156872039107943966155081760914638587857757489377402984997211792787147770301961949741935210073276523581486490526770477041105485352818352295619304095142292526661974492608020668387853074397748506825414233436552943144610317807954048676871276098922581597148973785272805353722532856149150448519894291103573700823549360777971827725403252849027824674705345896480379496901661046422993758169419784355587840678739563083939535084566159853374106140029412569363872408308544020257319680947691710403465754643592095904501254346142429554472308384168485482457525527312622617286524352801303098833731818469568978638758864246931964402411887782179683518830434046604809514895523090898284673259747814675847143293956941633502158536867616020381325446168107098507598221532635400547234557330473423565519634508874507368492073957821730201573751626405533483998841780049316058725984948410770186757853631353575968966823484714619763523916989660307266316761161172319505519778672921379385370849907395352210827293915469824196388963174334906630560336031176173128728642453599042296473455437796224314984120757824819974393617105874993693833209508209187226232455847590515367547439195200499655719592234143610837084808038346603685685634794950964172366616129701050127760501946521304190938955421232415235657156523409694455676320303047825502658576317276311589661727982386619165768580974907875788714004120002609187842414251674340888594017870682109907787777389907551072961874348864501381327647663265198422188100199231895724598856421451624538390695266858008415817153760435302664460294129908668003904639390936367867745023446684886860968550654490092472448005175314509940981133308667871522672639037040072517643553289006956118410748968292334234305713396790355627036533309339233997529101602105024402634147810679149275929893509624536203563238219490373286034552840556049487607958615529399083539805948286557696464761543070881293956789897796435101333562668094939215962390879239166880076937099795750577292594663421736962817671632035775524836509346379165633934075034398771197217049453813653200695999019406091894499795193392689427329348571736722667424953069489761559477296901282912514308787357758648555771501613479887123700928328533699617788294396261561637881809754340319046343244200051143329474536717358692674519530342904634946876866590139627667877967360025953704025509055274694270839871514084349598605048625206338199737156991913817227751242732659571196863630109052783137591838632081277237259803996480445698443049782636967596319793661607782522213631692111792197336690096380189435938201930152874872628633185851401294036455832914524769577310787026582937682285588439643274385616401617344423666141925440449770942613739597904065941658828686181375308947663589807807669730041288307166518153192664307516190367765279843775817289771946941340736943326612333395301805055736930688073155613857676874468630692989608339699261115166180800951653333324745822477771120460384274388885002869256185260893954960378645591061343385813618549769462712987567559447620108246074740600279906734522748279326892703013086358057206968431053995944904523954362861250549607956205282511488407696158852154253934497141113232688946330236641724310277104224163302098154695470042517791150371687521357095321066657780106615521130309921798978132764395030068487391296042126470913088148926999449178159841199570168430377441212690394179961091978880039339060148338092576930022742708974074548615576925660660386890115411087884536942232775341121257779285069417106118131315552665677632149131170412142009486226206050961461342785427375920852464948062679578604802587986196752474463052124555290758361655932467607520424705916711780076533043336047129492004388014748427815838520213867486908004868329439163457169272348353392088226585861391735868286586218992371904644440320028097622956489781338483214629735133342142154879571859490433698442032337471346831597991873281857859274783345582875069326007629309904327252256302499288878561753362700999054324831822472550384440598228433688558993507117166154529441107618123152862830100588712556166338751831539771277386941866620783440144549014542990853774735209904256566935147603675363665835377617624790578364991899044493591598393601404144608681961265325571657410881844840130292960206251805761520287146444813817965438519914447288229887237565770555611977716218377614874564914241495107543068144985984715603298406638139418739251989660222037089491802862891858356213312161160572246584339404604032884859638246987142951348397398190070098084528275777445416686782267546465970375554598731677871592609176787511902705644760502782188623132206703397663934766922458029778755370061219281357696177035717128219660939125882638527399351505344319100011409873025744566891781126282780189373459624381680887926824630438064238759160853417281091128764894200937842623224037599613682116747316753035993976846179736154559549672563222732332767859233883711541242493943143795622685364818267977780164315381770632870326960730095361447591776370610466115911253465629462498595923092452523434208226394179491450164931812681456092535027879278092183809676609372619308762547864390773741622233459174762996789822642549061635502722257751002360327875722135976793902263745574199114976763674572610500130811368950901870901123142952797304498687233309704355794587782930019246361201122729854989189813065406736602077151505886483062642433907688992480540381862189412832211310988569924709819255137119726125286331304308070627056971442980323679982143010066232830579571910608353702358336561758280476822594692125522699436788922401482490758753237614258525345780060375138232459309714050711517231821086420028504097595465082549700010100196763173366373036677484195217103493354574349257891152005087719885860722801897094134382950059032558196341169256143422978125348671207284369412598872037103937296577238737293081518930016462048660271719814519971816536550804413242480009023911973027084023488623626455987939321993554375184510541682311007834779775085215305448187514603324084500632832715464731496318665602750990946440249720967551641039184889417419816942720485029186473188620538448693194030678078997731237994157877536936787524226106075245107886652410770611129312787880464399461074392488050524809620435477491007882504174722501527673646727217175079982533568874800578115641824376007062317079581017626376310038738765107586021724198330386981135482152879521203922053817677038623822141606717915482470150957881272721519411134787667870722453667214595797839657843159050730124480306728490034833942009003282704469133858190937545738554617749874240022367903770667378532583238533280545659807159850663195566406243076549421256822120696842846817849067921016219109716206083876096494096262454874751110350923272075949889868537308284970219034846489141134796270067651881942685340842146570417393029170201716829233342106878554908532010224935132215947426682815893791462944380104300633692230761438063147044992796482822947874231484330396052012501114342267615884181068817131509559340059357641015687160816977484332470557280077143309161020518839389242146388754397908636326514191022000912842167040795002148368706703015362506396058592656952738725996489499696248361945494528968084001511778148007876254038697382360208810009709004938917954372238097454102719843727387260172435309046693682818961929578448384020842075726965470057530972301360499022966083014607974754295431142256076696884964021375283506926867205830324223332149804864844193233960977834251873236486185871245518313052210400291473013497426793977179975094461249197608617501421043595594880930263824242131118391525387247083012667603757407717901497978816424517064976124500860281176469281492696565732713718510979016893131861858556015098382793917283213898518887801804744205725872898653963658621555171920842403274960943939512424694147532794747680811082940632291323212821632705802194294908234957661728086278606982562095009101169788750327799316120873789113424616641715321314692415919121248359399907896569420495538211959344611182752554576986828381450275027060613510427690865239031980778902915656601851828577047768847225405856227035827335487818301908072060011210462724443884191516358895948062108011778018083742159637745914995331063819838207758795868116008305120171737271694820434333163943150089108286906769134987405498806771824088271775638712386425192376526015984502879121140549186497889151230513617665568446436719398807044214498271178062716849863403929939275249753208036201153114203190938351428709156512936390497026111704635073089643092449539078468611500668322574547107171685378803938722926452851397519055737807352091339133648911454471968072562843628273566649259570882528798647245067456338788561551011441138601884945400244478802384434405325347615705081371775748110981745156887481085195669393518142579036467516708190245447415727186249715994664412178811163560612341089648449644325640103824328803761408693298572673395817938872644674285210930033223161862979295960334812761331335314609663543388558589292560390661389767413675445549787686544033158029722124789579561573341520535097107802840374176775449595259287393465606488392190755724828288430932928845838451815462498103367456286537874647312464933203130833897810324717029488466772238195758213878685157846474068301589988920371123250362146166225684269058103526673522900459032709862938491082165214330026431212633608057015434549571952967424630014392014025774860908225680632728591797344964716372944040268491969963809158004110244577805770253357033777057907549276782014422294067553813287828899515407534978132582249086375592878179977239222193547763697873173812200779863231958610767738259260032351741862030228158982325758787567266835065749220057081106919648091973709183402601955229073847321129153665644576338789844004063707760806494830971525373333956151039748586739399656989514937719211624875548085729837490258459475951520515743841966214283185031816244691575064530667230731104562901630745506900976130352813131100975865918125278249555640886489472125184073524622504096968963224898683951076463176884902632234480736047771926260034850179350577984290032406275394122402957645477129499981947510966469054971940194463804432918209174622677030234424927568996205333636538090657429516147744887469869960283351891307116632134809681941032567116979008555977761400243083219059825289560736479641713701786731657035715313850472759976852338220821632629254481366798221565446196628850620240387024481031800137353923528666636397545072743007497581339065646801310416691597848662541830676038028659172837583494295207230350574338791676027269858154821915092334375997240383761556441768655064099328571172624025707463272295056645267412587769199201159349872126406482343452631131367454108862385547073276908381949271704004673602133217657109503489513090575212891762837899562347677479433380891103665651401127518051079105109372437861050557141590522762519064795004399136642059953959655879979219296762291077456841996125951930748489791717934452240835180635260332788298045817433759548959726752830439213680814239728361725742268336013201561044109380725572658578565146747577586783423990782378618670323671262268307078496813028102108900903669046297460127102193882233448837666826288681448751809235354590302716416685165812191630264454155167737812367069425914442768076394442235294080669405972839967571567987106601003931855156827504904980742989153248533686397477106144091220048745275510133222220427098681598474303758367407124929452546897104199916964313196367660347309845582411825566449354361690926150293376869730406883423412361074184628074331409059483458231216727780651228505759707688023264044166524267945610642637597824779385965692414768018358919556151849329967174102940638079755135166054652855188332651439637111780053966196312101387071407160081657967789598372243847809601544950256584103298503102561162307784377014936292154025260467898148589254567086338578151445684264041604435997655298588926599339108734840929463495287315216016640576699877935488325393184898516936742165504366304318436769946871340105695235628092261180025294930067639750909104993779740891769646300761536878924412965568134412097446994850235588985661650494581929259716084545614815199956535351122376408850538406761509325105505700500712677070290696267596170536783610037040920844027361751630402027687649690147162252257072054004140035388608909807429004684611418675164935060264611674885838253096902184262549724080264416440102991387202821463532047022840732298914833074784842763051035689053560196978841312863946482075857056238082487380049558567140214831075268598352006038946404726648061746845130525328579444345764500310718431408880443619970227627089887356949132248819926664933944783285626912737613233923403836907250933143368701035514239556660037941055031773178086419659855930472973964630557155748655331227316296796132141043719669021828206263720060395159597433070166886933936650147130553205956523146099886934222548985856430433815423423746989831080616229246177966464670901591081047544506143311868419004040357605104184345320725128536527044123233756230839339482693510765004600149750611409582458624278954808228347547585346665122583632138437295428731016236389775373312199234658052466369679283991097431046879487966872618012808385828152986875810115632972161306905161437431481719047004360209633015499620801421543326290683917941870250659010955307016975884855450042442308386304048610549568423716970468714245079416172461511705193345272857739252308805686823922511893460834414405366021752392544635036903879324157448048102202997080431983009773410593463781340797235052771741984802106440113115436937193195290583768449401676672331028488687612346358952582535206480937576531545995041415913103041523286049031565609732568395098460865844643484234001672953713190473488756435322550085539629867765337617740845939644311507800285024995274772584826831691806949902946457822924715821821030458686677618447200466359196780048841467113296785105968005064921199651452068543399476893437103520270258117410109936066729265980313052398759414609164882419205640526191867649855639915290795315043461235826338157983865393898220112910070195798609128833644038745972029701270026984113684780682338747160574456112576196106103244796025677969771671796349118388393000450130393699951018908610455522118006552510344806055218293493605836372429206448123544838848991001165009847722331346161294764141731605231741930528110666470491668604536408307970893832751620611309046942762891238642868731713310038484977752294230273921650003497333605526545693440265149510648333044528843456569175250493384517414330799058062504416041295974939938620140367014023487854988089216694806571237964473049418639532973441128405741546130076887496062169716335018134821246945100775741887938656458571177389488028469464448357529498642107472773232486757079023426777337481845963214970664445662063258716631421354327177722471653490985848103432352322665006212705747336114876643865493368355814750572283626925122871649289516079817751851868084252325738317222365478505576955130154323509029021953529386760618709345549992625836432266006923856136953338448302071518512543809690995904604061555910218768305074596932292207060234108063298654609703076614223331817184161104022339209095995527955946432564646758176595350312373550066244194997213681566775704976751009408094687445530523117027712796935877351148334174943516561471290741260618622635570416225338035336250230800509798834319048617972293496391961109471594010440756268340796901169004722349335442223938525617926751649950069050113503253997296052838934965867685025405241608418478912486681851337069816274006939308406900429797320159518078125832658365098199086523991018876245372394067482360539709488705640309345905036350489810966932063242778036240715618877861318194806233884478541787653159467226438071975662407701415558665736812268730175596657679220307799184963592545566541760537773620972277698423176016092271773883543331768451776882040183228077889546138711111330988691918434009016837470709678876913514127799956185874488171432792999157863407700392440684090019792167094419079853626897073798031578378482071440436269132389224976042263811758544294052604416989499740688941940532606443382234615900161096408215463917132645598372638180893792518180909168526705362575791658215680097342151458368618643865612180663875057597026003463503590491039644813988810753534395895444901962488849966920401611232515554404547803335519201858190400319589992446113166761757380561757496925051608629317898497213252634742359251793068479124612901853681535061703476991652766847028262584826715598727415486901964435292159873440560935142266132539892758785137004876483055299593274522009793181101218442010183791277729858765077626585235811196886359008751910154004114613417165007563630165526428895449881165482928400547888230214669218906592837220280480099298361819159650145203471417132573917820449479103563780144701735228666936547738518577716675744109638650176925667572891367862861821923910369081560468424243136828094273148473581311146636347239313769691577984366154918119414335655058053009135918584630975213439500974823330121014476688649758423076445546787102559968725425739858993602256312794555929359168826598460836366736976494778781268765139099871016965372223612258883746770719087500959559657625951582481846323373694529233605993676052596504254539349119336954282813045287018809007610862805601351225147224790576442060998594533428662427882459237191868139986484929546905692771837873972165409462160553891614125946120403263147169277232748616157157547067909904095593053125855996374474491894599677962351586805035837692121194068519094495326296763202047997030323069859458465775901818852802290123172648052794944691910435289930635127694122458622562242191161230386701987635968480593765167813797486095205027754264757207269682654905764193045275150140341335000471838313699960637192521050268422375739923385939400118284150450568739770651444274469704232178771260823774935438574713754117570265543291918864360203879581768429235331364934654444520613059441500771465233666243263155391543768478723942034356047321374164522341425749716063934118956758675815045014405345034990382000794381381096200802125849435323830014699373677203956724034909692620487983863823754962659582287452388206877776702379589461555399306794097659927091606254228376337636161075238133679168865961817981336168468109226610833446284051461638116564425699999171708629134852772073060940911022666233737382238643954465966464031274601407282916659982356230280954380347210990778013917063924180153385261768051623384456107807150837381840990818775586607907956126157838226144086280807238524849085248052518477961042826984482399326005833443810470239406037690317998963581481530030401293909454967077751762460197580691317523033065186670144523732230301791314411156792985914692691190476556140476357592225769400772257347106081963761360776825222982029993587116616486110848142321139644127590795896048798579834342725437816214750719501275744719655418545634818484240403271809908722841235369073356814133657746167543862146138657955265505083289112023255178807221452889764384268615467831952941569720127241050974336145093559297447679072143236774045278440800099059286615778418030757502086164330807404689159337215013920792168681399565424730964270942665930638418949540127195979541598538489092503784390318755110587139227044111905941407589208309429486850698154633251320503241440044055919270402814585685812636345673277491794845780793799861445409005874453132690736905629796158484047421902615696757013289288808504857806392751322046571393513101061796097973588436592944535934770081581272029908962015556179518828123468419513328859388561368817178568527253365907534279991357398821063292462280136400393903227264344071731085002567683228965454605127715825331242961660039567243196338233348386625856763404120054576606062927225553682184241440121800316149341739894547825667177070377780297862338535008867801823797387330524465951307962059876316610619801725604765005146743023535631558595397249583381448285225135660987755598025015650520866782863872248484592948233806251652071145728496187911325535723600555629935621203437839713294870365545583934918230786150805158275306130208326074062838071082028912741285241740652800731526664672349944997842972228304610893689605377853011399660607060056556084971296574547563358068719892475424925014270133304659901415505324303273772814455667175586687901343678147093879155189234167728610212597059650902655722550842177479104318637136448884965780944987360274162468898503741020538166502790584281037493841363154868749358493638467214881956448851632246078128038410004652215824484664961006968633546599488274095003226513600939404071583694043613282758034738839131831979364170969163757304502369279388663616909785313701675750073500569778426761666779048482050577733840490197847986436686277203363645520675746566675781508662645003808537622337685411591373561202217467362609151372067217433291192233995825333006722236622053243431705059682579651769168230243916063149799183132364672269275884393289800499736650979210888297144515751933268737295376406673930909734219474688274327343490791023054749777588662099403423775865666765565419976935928220249986975445223067442766560525134225933429411070543296161673582324854275223964909318693717340212524940120436748525033245196527771168999499740045920989532889166683839604010809016931017140959944729955954048844396355837477814560051108851224607116935464474823940900741542243476483976793346889951954989088695096768120687623407453526588550433320509735664477274608383562188434814968763996815975495922912978452750799686641513311243002122769283029649156939291797371151232481315231304790946148894661230675286348876731997443193098398319910873025838702201293992672841628133078724398406147954959068932360944303881101684428831063977443119851277717997702186764433962163586398332968543265766545130565337647809601160278954697942983798074380493135934083126904486451889012969632454302284832694205653284271910257382141066802929643292938771999100697275839655447460813673975673218101064318409278327332455659059357431774259701284095654081147202142613530031032809312654033872050691037514080986744754213690059299268087936638478138032930150544263937049467690297206052971484436841250515621013410735377844191859085471410368738479897563896025768884640997677336653311413074482221581502294906550983942588766090760990764524293266601744247059780005917556926760768890067026882884101355538771199081721959598209750276163700217664376537286465701761361383188279644317840021097291841359131083919935404561954127783040056153850091871991991609130891880112311500640805857713696494044386504971743424398800619995655227700833067456856304667594921208541222551028509998586817547209612084119472758394369864349551791575500258708409990311981810398956379160963087497897732841472027217595519809925907391336441698965916268677277143040721013948859131544711718074750662755587226684534250449135248597428274888569955108632936625988881589861801201633119007255385585716028260910416850657919902286256556133191636836245110854945089712690325450024326218595624269881198912433862787357115005094730713804773651674256293067097492020195403334484214913153923641470984025468533411105466114466955285420453391534033104469032336798403185024087470953026607734178357840238895050035908666050989815536676389336875900589493160430921300713933591122280377318612510199823423399996358813623194840932713907774348049738809145744036841883246318177503699530295878370375542208915485282176298129297761743121312407427997879533038279692590356169862449105959694659991782559224754285402608318007572416488869055799579076787702551072247576001330951349594820369773761085180912506717063561838443611731268604670692270695453006075956087399440956162925263273705713605274548638469677926435094745015515725230097446032462524063731458326190922055899873362319669466627036311615263387411616656066855372159624997158991134811292018878780015013798714772721731027178960246399665476280715917283908436159003923610159078050611130424601818605753676102884010329741622018153694749209979778424017258250140327379612364907974836982976395960487953475881675117102229001142299954608202792238502457658715569637999691908940505094224495735492566479152833340941434137520487303472901863901045261212144619993105268186849454997103498709936651325846100949661998801589013558210283214805954283982284666003105972768706626528264411872214182926802940298303738072434624605686080966648668562447929539967263699199857998028198265469064261080394248616512681489766499027583277179657940485834652212527173690740523530194675571645972109078273825622954018943773978145614233228391228793240602484388065559452780747022867157082930644960138341210530856877648013616665932735893439623956592247214663408349440348500036157106087346804081735828190806086337162190772485207226412089053568899194964502984400639487387047349218136342694287892699749876895490786664479667116163591965716379311535657314241280289555745207256577387240307546417725112775682493911015623783751475584986496107788059294854163354957236407890804345537449888154168809086451550488171753861093765109354638185150792377245355761199667056829455353203687986085897614769786815337616819167499876158795542369712336715075784222322289235063853203644694380150625739089448526753586062730597381434435908621164455243103667692940542534250071572993199858276018229778042259668758305135773991973236138537206132581843267787251279828140184713910491430285239891261905009657871443368491567953861244017428238365227010609777085779211230354092777281404035731064271910469094398599409755597396714915426739753757469612876243032798780469171038943448438862241907050821583275849861215713601334566148636896758763509718928057527582355975918631472933339134252656415603764860259006365648713451686031299603248999891878981087144284948295370186649329788080736337422209408072192449834779564624831925795329893730241874449655019407446985182042233500663946754943798319183756400027017285060330066694708868679659876423747291789855705527477026361265304629426719477767405377643069602302300442482884974166104306592414297398336553389035128673807384836959539705232109768193161320978484588558167313546968996201401252045384654483460297181232023673114754968667778110570798728651535636529546410961696564919160914104509849719433061149700821477156342229796044509181824771179262769974283050942836959356382910195481702038330400744082088836444151437059303064901704363143706566186226749172906763557064551600410980757976920621848302114913275341565727720772424756068171330324077827826899030496901135520402350969722693034249569071904028175814925459227489552986693115542554381887422190789911825806785291807059401347711854492625787735170748898901309412902685133597780108785265816829582168534775612402562215584085613084289321533210267078127367175583531973488014288991289360354424682927932520472636361113524474932616199099909882851679232986363403921275864608687781134413082793560157316923622933663841925859940665072523713367070679653910846561424577906713143384041773567539374061337299840612834312771866109466681534161698171048249874157734119739539208483461360186235558471309222012420084516135474285293881608266989652025393224849854572963834979220818006288845766420164860034496450912446364444877082203624601878606067300479827754280523595341459913839159617936577968033648073675679913106152648627683111665839324072686033693002495225574442605313676819492738036034081053427739719880377195144661666739992094281843134711209525194420104578294370396353124707215333116497012769857930891018584540517489108312637160501584556425561337392429621171631135176095329260616886271812985064024660158903911711055214666859526523711747400516972074506319169341426282193052055432752731584529435748940744543487332966401859591953585553096209442514330957075927118893802417592904852981131721462510878393540746416384842818564809705402932430701870038455083914660002552532407280373880127930042178213500908966650755255348909132937670467425913542958196855940009219629919037276778511266241939952524759620708159388887079104833808599140092693464265683053949241173884173997043618047171806457713203146288189591610034574935738882228393723362075017381537761506470745147470457127182800850763703411233722680987983556826590879072173217590439297378142689735827608410026720789487963900778699522890790764353993815440690019845963661054248444818895821266361643347653643588602943285146271909843160182306026512302391617661078363548932988281533519942005751236794721910248413451173930483504381623520905537585668018741529157773643157804123489453577847045335415188302860323227503434216968040135715987447514165631663009169032358641901428945611261571859614259655226497191559265763075759461769425242021691549120870218081945526280574315729380052379671881758129868050451355337932938079415743056362778586250166523129908823464610915917741063132685210715406258973003086745774446509275864446354015942381713236540360905772819045304143215411212114685743843763268935794078841268711812870554669838419058609616522050633862851731288375087930131581835383477332744338482011312959000258452499601340932057864844271464512073900850538178979524190357015020045011909837640873332424684899192599121207201021104813640775882613765047361603672229505579554560549022404889148132805833236920277865808158870548076696172930346746669563699695968462080091088691564584392821623393845163064906455952186651490654448824747267227090993501193267153585615849082954490073099562686453845803428987945010211592271272768441479947703328753588565575007234763911091098166790147442621570428924167138854521032652243130189393400673692144625121780780301930057425126255573816924350094162215650007842097215130042176333178840579456226657108570202712627680487430075072219951343366724340791574223994141182463435906602711916306699688381694325210131977846054910566402524870381827205156452060702480648688693948926637021637271591651581250337978836116100148168606931224665510276087114375169483352893518542962745429173856684706298627927665930104118593243076373771496234967069290639784877473197186688999744245048099020647761959346217751931379152975218709736860852750047748090380849704530139640390942906985391017548008383693020433633081541160715002403876823771294128660544846173582456574448265651743776373314212452466521735967518081321752340974251013313387025888099890287513383086139088948559619100451525706945556509263817494618532603035599558926944166047054492391925240822238204600151620317757910202139620892151611066428202802179256597111826085419595039828483740759401525708539237767842586856830404745119183367558824664802443457078887766056174983058390810273532562279365923423236217911875467370302277428749216557114829318124284897842014014254320705348769000665065548986207000252103932196248877574758694241075417820907889353467615636068311652850588323414666626426200227287135879272259419515378038031784511877775728637506093295906007779986019109068767659586553429404747955778296430803744257934932576429404907182481396038001837156934925689783474568551589296377107871876179980472693299651902001042198518169736790665830073179650246314097808395817220340293210455671404469211520845381429387598716928019899038949612064329264485021493274268732976484990826613897008802886844470157867494918008625869812003860533312727597899513429519400205808432530808041225066766778155461841217611667954463812684720744292139688391183305256250080271170747986243624903215080830382806401802838478759398008055966365243458813196296558372257778977803998378917718544091095395377767663701975880353121491675647284155733835438753141429683465962829994743286246969234795027765534730866927683409946707333516989440604316342398456551171134185617051959506698181927777876662665279011040292513480467457529496303848980299833503823640690827286924191797907839107882567118864728282339956332859727505036833317296401523356845505717508686049525410161037444541430961283134661743251895879611579697220304973175305087894578327091351397739138775632031657929094767442951713743554555304424276744000220161570026165732869593615073598674709724232298860298391960116769071996726549733885768561950311948575564306385390083732424094956663941014682390290323789310355275521115594942973514665463166633004131992741163660848392723376463634713100056848599930609539021171099391391847898997974363767378927250404936952197190492454444236102712170489562072409724567141828105492668784175507977291666035322317011374659961950958036069313958719036897118577940552015380619395149128054598421813492305234635840573315073682965919029847282862825557708267447529464482394348789578977850071727736492438349966599054053632650524227275829168292402226958926539232301186542622330739514897748195967927810206743254010059500720414924752903214789278937968759279017708178254939883079368090368621784894949118489222572616848876542250331506788957361983714401760998522336583266005224638639594808852508399356003033821202212023391935367212544176780820201984598924615199347185378928962217688828351733116716999429901919866496856981621465693951888520079189864862786357767946726630512600280593563057401630206434852068290603997865384760536351205576701878679522952711757234418886610979770979719472236849796134319430051753087148237866123932529229721980467972770621373762627587173380675113161878378542435658336223446343056788361712471778780067471453558551722555518307978913349530500681254197620874437117661554561891571922893223073046733209373423122203272247317402456212865639718539293015439047427726783425869949085184326023442582352336812463136510267603238931171932497849587062168410614187633693739560289097691824665019321206574696745484100593849297050788833379260898648287449501276742040316682907108960886733678272737518278633002310815928389345836067898643709981035122696227966373653007399089926351787501476765447587733751712323737452185943165141729895214971042986562774404316772313401708593849625612920991526294865632262493123663566012282773175071190952297454504804676660284524762051778960321356089048088305289818864993520631707705594950678532611217370629772552788663865909295374246953672296217383170233996880219156751025102387375977215355583557548445118599946766459312705565154594850657864914816698272158540549890404788075123935674745906475462609555785795958403442714885398376553924009831839660311465064596606811993045372746570348607135107325540449079893342509486867281351766474059354550819071836059733286745012987832732123364705932876059595468521215456301737308008784377128428515598232860221573310046123392437555409711238601358080998950848055695351341226440080265636287620128670703259599498216070894285971715547994348249084866975837120336641471334940785581890082154095686368891264783934645544892017345140007663477715331991329246815068161295034579139811610697757853833810116476458367358795167714845788848393543704741854356709867330701665342862695078997418798529848404430886369241016512814532663002433418649783663312606201604587367573100613664016243236185043824541559235098515395444092814467923394511540040500008223662824369974708152100648669004155809677276816756493326542767907543792653723190256340647919792524525291796740468022836121353066120346888327068750561165082024623914866620416602498014686192200750515217214093649902598838815343532015664618543407846073221296277982639132412746644424394190025015439092383196339429541504666434625508575210542508893255134251403748112028941158620027052013889926426520381134057297787725027699212378872986648409782464764182546615629159770676189888246403943264006975237897539624478955049177822116468700857319990398565685945121572707828162086193546866527292089269008095858064984426630682054099044824129799764713422533445426106190748748805425736050257106420527170281802668605176084761878238476538319613064641651931453533992982802493462806426832293462576355985353021091907237201344905490228506007428960389186588928643668510815317576163236589390458968867317827526782920053017332690110733250159168177394959430895338087242390446219010071998568566069412672912050704992254896753843951408146851990534060536968066327347417035858497738722095363189390582534085880584911984854979677175218767644210411503769782755424771001070456846242735922059427826258733355578520694413334432443681184581760943021753342472057714215658325551814276244912337864906256568023640525488559739308629881593955321191726377333720396648768780547300463221222283833301022992008482603094459648242954101348357995373050729217727726655661028416328382684703857098968776226551943767784813139796376352395888176987993468488967116582458719922366264048418719352554015299445346502498219228887161945633602320043214158734492156706042265669321542440828012521276901445018414623162272589545781193377902687028819074745248290377563214344531892892317037032123628303665193559344552916221949041136259791879238851149279667793179365798604018562724815636536887428311454867057427791288798612565557220085093396114268412900509555444867736404126056579083632891526033151611652951478893403334546125889566393645808896521103968106468154188270342539939905353387490026218392668573184500549365493039701745729252578595826918331742301360063838372131860211840055248307889761129035367474848552788679342333564522285411598113510176024785600901123548234786890085124972766980533318496732342723224083324248468730901179579273657322219453510392651226486902097015435871883767752822332590900210925264211678018010936538127078869957175614679799573543767785316115873850616584476136869710626583589542181745585394632863893164434154141868174208620189763592381680670570858360481438350184111903852119256215924669578602088137206757403905352310328305142866765041472394146231033304327536072113552145009254775205927114451384207036736096165146325627034948342633203407980966241539138121452267441219245152404317020826171812791279357772878329176576939772881805103413662422151200862157706987892225849508060824329242546638291162593228528635654206202069675283047722031715281275257720113980375069522003283282928033755458253175610780848034488615792467097267357172772836218810017396262964762977383588679969565024863391976308393894167278105379387810955910248586973686565274998989201582763190657722815137257165485807723625944182678627078843732454731281654578437558798123874768771233204397043458696495602921565491231370241704866172662575927532644362647541609837812471162316119381645071683833589232622910133666343145320911616827318949809601085285838439409754588993034372457956766598285833010502226288562393798059686396488216274696070126707236336738639068230690319476673280333202401307719487892422831767557448452992621795575246991401667201571562883881989439703231678104589757137819180094676951243284967470444249464990093412959688828263311811306485924151705515880926720995573629167638371510224327384772022410771411814975047945311216784496825915913909051535270650090799486387017309508782451350177077373901177362820921902785438462815609561665071531924049151459547226616294941452808112312468248280238009093494322190256951115428523843085586638937173589833578846824863114985413469392784338472024143119850429783359347646463159701477550512676386553943473512406710240444938410729794930969362035392374892773733286841649219235875806432157714246018554354077322546548104831736452195459762188368725460543665932494585786004035341344657470739327640539331161387001972158311980856732363295554651726441262792206288836418508790159001844458032029782544775173223081203165714720804304252614463176199230368768091703775877085958635357362269137196183836577041068030314564580712596426233613272453560361180058675636932429000298117674850059924549384885961633999723539314395964332743319650247403500886331497926045367691944208656889931896798106383588229391908355136777608289710234386299556527656406527955173207289591829253993654424524952354708659240449718221213039051752483686761017143188401115319154988382383473656447081000995964188299474710714598520340159309672781857623839744291212967187956589103132895540972019181645161017961550101815379494514067907405280031393388952349355560434612532705827720240879402856170166830020729679885264391839464193084546494766445604927302915279632096901665852743788381072378606025289678437072540508402769746114044696355732958705652997495070471080652298953862207928494796486656999902801063332195155556113714007911099138571977539144717250023870728286129879733648594385636883562568069309442527090406933265009623436485853291923647741813980357374973531255187074231702445561427786321133660337978438246479043251799530324955628125797038139477638783728663700242150844605776223629331340841374941986895334058686483862303709986723832146346559918599247883198263854580841361224130315992716106981277554877002187657347614268468878311956209770533725971189415695774120389947025875705585698375971080706608677272262890604611968620660854588244654759114401687086578567003547625191205237729833268504138348090020269943423707399927514907969232708047624595270382736048540341007617294567725669215942971881648260463471285261901696406346539436240717454077044163084438490071063270260681890361489083629425817265442131040332804687193399927672223193025117502867004292313606035811218064240796223404752273525217188532366563960694967436439658207563734821543915306356712390722468009321371897781961217287473747466560914135891866288843195357291639995920641119260175313201340838893967849536744701932260087181912436934988170800980911754647216220112041979691023949583122078065422049727879774507478294481179458354360847543697808066846909705517123908269564483969665875814118167867871821232446770125486457753700764862135846292478555152144483809344908786702379361649066219993336120285996053125105756546240361909023553427057300391614613940019258293321659773680169924871386430099589409844761323501776922930476747346840878929989157372895184521444264965056480489030323360837309739857133886979384800817471681870986246852641746053449968787635049558936600859878943860662301855674934276120069590806589047327020649779532994119726251133986908026435870647149028997938290213800846113738411451152024416414496187923425752872896970253190842976088672830311987523119459763548764922327580954679797410133229705778010559160581597001680955364891107682191795911517177641701622061002774449886785234789029548622868890449276937507217746914174366177749045954572953512197324406479222760251060085720635563264936751476607916552285343342555129274718421245663629059831844760531844290606089112823335217332562377915265833959924235513067535784546267337246570729833945256802877551305113964395313437563834830103232314901016186221842814883433281197207036661626255835519998223656319659803951894896692400989619204015951237599967726313802647581513025219368653476452393316543304919056477480779658222988886463411940938931326376808419186889208751291434558337156017454195415817214819469093939634132425282968368868552411411820002739423293747749684187809475400214786913639413137492792478161538438493548038876071012098018062769484700936276550890510781988740969405751480020179088832637018508852676126483845159021549355533283050617589955181168066055507372351581739103903026754010652213019919301776021007583435331926761621548427266789340458087302825221059645558225879332322478416704020443074330656700414133712786581867423758165726688581952898880760810450921584668511872517808726041974218304419083485002721931290058516951912870956521684553121111918396940738534792502681071980851587448759638744060320037170058979672629859456312021044782691260130036307659815240236948847501954809329101123225694340240707466337362243752564204787862019920962435062548296061738110976885554228762851376087584274321996477703242519562990345226769140721013892116517272634170205749126196433135828583857107379198861389258266098715863899927837193240492172511458809749210667976813090658316522841154637993750310614685615072707314739524198821527935604662914781343834091829587240012206662562067038312836248797405080780107178395842629474276440907389654875170477111712031639424928835817902834301006342383633923848457950459412811610747175448405673871988457521860932309451221343230535885367245230503372118383118280973626554832530211032680732298066098734443521608953656053783650508969395865292722263512345777160913176889536982824534357257262108178879945742819393193683618115940324415714023219381014133300088530849412904166183118546035112210310726759035663750431640192360245885406066588373967559133048043673590857534127754544006917522293299447943028388131343026324543064068464516184527960568464791529827981413869717951804151673973383684076803424325889873739144531903019573318830842793725590183665539528560204532385754465710459946735505732229764939054684497492391823353358499218860901737116549830325889001765832590824866072335879280216746165032230313670629266088597039084437494293921272079210631905077696224670582244561599297362622510141408679593387441115771376196145550142404399220156837908087743199186844953312545697476001968442235290804017628284789235822129344402050211333061282949648907627977111255315668032417218026082855354857145475986774468422136229339244289386365365329326957372245603096324380551252596983469424657001472746939052872155205021663245908740014509044121801028956438617936039190239525766766012376978986519922791698463518959349748327545270813450557959393018352116094881685504383675121038852027816294546581822657421566238753660405009045057979254121008748084188097393597769371649323011908463382002942596343045840946170769645809067983437826960468860231844001417484357599702459706764164100981539148208509224358959073634730245336748201172439125848187784568716376300067496259971328087771675860401757225851632531801285320605239298265644663663393282905403497329884013186976954491561202980181732245589323347131143495238817578620153346830626170746227155260860062972871764355669153216342995759694208226170131855831389544678859836649730825576131694283690842121763059655038629149633024890129686995776421431950874135969110378778160632376387348451329051112671228766483346743821467686665212477765579633819867102278710001068920554283991969774242887666749871915841921155167565923717553050901508089318715431358315487419718047005807521681857868377700822981632866358430500970454265812406833628892118441551064271164150736688633481369223085694786856782905303411159239540958263293240892471951128589987186419395771650982196557472312701797277228452211924025094174160765011524757894612456704009110217873042147505900784436752537899115451242652851765546155280906555472891908014670791134308113842235328479732049440225839013246019498660327442811291831469685063352548612055244675590473848451319062686830849551343703723974207353712661740272020431123702969761060517667494934796721922994776088128305413028712708050443945893621103837422355871246246062299240517109863126794774069881628837248606803830856434752904940190841772995735698900805489935561448190192026941878209034856228523121182982237335647741883494984857416670330192767702934964563647184847956847121137175497259169168623526721389187277744885654557152474646344117535355672317845575147032590039714619564653208693637505810020661687283021054525391375826112754860195772015621509622573824159674743847898240290299895348631345586625714675134421915448023903130831529919230663168635628336024207754391073676152929202883859093934101346896608164092115047553545703755762065516422059222412718500375390683447264380338484099232192381840895072843353595215249878793229344898418263111566810082697362144696386035992219944909136574315276201405711417151370839131687689986322362810375877539105237874359016902419513662577359846692379101002292736497851658196830987006913862483491402331119281337213783951150542586518764049335641028173184590882732179529689233497955658203985610011532061421919555261160386722872935893023734081125169462690963048299261511855007394508189059004921484286170057969035415801050558480096160818541550463815075796402877622423675127452935942825318748217529706421590495771884085028355219237697820746571786877491843840154398933866134180532853120160982950893638824168686148318637307525103182271872125961730701338011671039322762812262131065444730801016034287261262579572082140129837905451092817629174319195065042778043419070183500098967769566303678195773099434030294473548302150572001578271781028634500032011764121266947339728804724644393885137297924009620625093628659945520103947701195470858495687246297970839480724201589479266887366005460071264626952525503612237554645650171666724730027357621255554680038496604750281451784117133372115063439056422327717170471548694681681896417205387239313611817092931500947751002115448900455268346891392814363108503551553740181443938877327447111316135946995691361563703972310212439420664827573647625663177794439419845734776160037660602229296438361555731004427150824964219520574165557400185168981518127848020297498442803849351520350378393924041635316943191555820420706196254843220711322884638312707220987080670516445473597196631127564844504795479069502883764883967984684956830704730373114690020935999079502121898246958107174173251006238404173581406653975519685991941632303400951151208452878828097190621714428550083144155066153933549871941479179228144104688102996806241746792826020028195138775387170093917934431613006733917677226095123805253932252298185503634745168466685692085061723767960711487733805211548540953082949570147533178493872979120439096624700030359260415998468525702205115997083859293169020598083617622739644988037860145706644880346518702643128925956889685924117714298479499706343558409863687512169838409462239835720123070340335289460772598245855652479432291909945524333524296615395928771978759190941328590922257692963835172788061885326642762148519027386629844101253970352931247499092217455183548922983163409498726112841348870768650531981839693456285358169731311324871103046668410963160507921697599493177826489499062829111419209613973804251245717787328141593271656895295174358388397338470210032802616831217290860650401584112376123927267553837899761957133264410595031322308083839868456204156891041925495922707105415125331091932214133995001915527428640235758167542352442338043795791742108020075973744864183177761907671875130772768948288243645151706118157984318263909168730211993286545087258890170983001840356936861688235085325297443719460206544649672873996566701330531495302733845564565269245999699177810347457450186199725938822991151771205208474983363400285203167666153714613510479317765663145866499892921954161517756919796877030281759400277096328206141420427613557514680138435249206254289329803856932422692643717368118983841770215998076430925143317358963728678333853837600304281640593050495212413390714745660068169363655989595282464605113335049270285937637892322785567374350647641469445189364424367877777131013570216138296328293691845647321363079054494666767827970181542252473590526576848021179709683452183544814489119768486201564796338439895778124811172713860011216253162887188214886719369619790904489388848789244738160763909301919573742736836330177884008693418724478836106281960067639605548490822527095806571003500523181823413819246753181922292741401766497323530707068406095189457537878282825831972440638967034063237222191904802836319483147571027658380748678264282632525915798793952544335661635180493712874237145499553027377964213319459521884940277354733060681149445240967308216415346752603519001499582977022276771464760289468846212432395907433333746553914738855488550089089017775144338260951119443156589448972312885583851681639211584097457598420654176037684374119344471907651949051278618018733737099559352939697151458475097474793621286825070505719304493480341122913844275751470129113942779979288475532643496603875143228859745064203114492482310567726787208340639650932498751822849825946306940449921830365708082491247276400890520131831600050850378405658169331850922535339315455789223996835496125944044476150675109409355062682943906892458809938207746492124322252233476054875032115693335861833731705950520901905137873754854442867739995023896820717494928973326503251972266025648791011025536856892914408819898229430269067113816225357151262990452409303942138319892155087622758272980619234048744132291261140029820444483554296352732302356917131327792481829706215095963165453751744071159934790546470774000632346860497697037178828250386439861109574231965474680565389841353966085376506176300408613238455079658571009283236981474027672806469349632248180164012642658393821928012096263077928295616764525399832786312127278562285614480578705116422775466000236386057451645501401062167958881559052869543725262133101902520570170392736391005452777070711583906938532485044671264185245026454510289375277824426893098262503032102861759456352028473577268396147842757459959938661615016838730145021233063273620665406073078144258104305452471890716545776766351746819666066587594547132450422586235216452232658413621308098216904106291165381049776730648461243124162120510767605852135690006788282060356483988142273948353803129320005527970034436097617614701657652942250483162153876641990205358175752518257563140855146982528648422735844653308655166834961884447139644902281803800033239252249676141067295638853913275679025332891690393247449272488568623105131265240586912718441261567997476725420749704467078465595918474177593681954828068090467319722954628334501656731665755683021266295781965309134338584867657393438425863139199364197414616133802952672620863867380527591850835828411370592112052523355061475499604708236502875331168364365782409478735824561414664016930044314519356678024954837501744091717322048893043650993896000567641198458836265582464293084880975619091856094789333628034083150690314851373469245856763504119333803372225895307679457850472403355494558044974521453150331669265554125408910916855432954424029790225951756954525043539874584941473621805877492439139225189241965766624732724552810721837293110526877518564069838671261417354961100034000026227585589467988311304574131260936298951260814550453991152242006387480635402188914235207076973637840685539890244309541093788169704413316157414678132027156249370747694430033195892438477240957839829444639356486832671752866907422449869288363159859846140580968756966005713623318492745051551489858657044252100371679517701109287145537065022321027113750441875830172949331266365597291442535738542661692990665694857966421777604863332413824697821613333001461733244140632597320270875117881056438208611166738769572025010541824457693953060894480658485368517825187840626355219689906105721330524159435885723525709651072756766681939187870245380621958551756005316605296948033350237728803863919905078616069432680002575981836518421583493664300487312660874456597643780777610888282076466523009426325590235829319022722583389666403239863794249876127077895179370905824923575394191527991078794732779500941632442526784075285373209045101076366994746359550510668407992059383484071286067645122900864569365417196133485399984566949770219648610417825057771648387877917303109194549437411513407156560618770943414883921027005993115850415864683590194556471511728930559521448352866511712417996873926057762181123841415165185022600700825091929323327476734483357718609324552447603668110668848414893710094174893980717626946820213275022651300445503066056828137657159994548305500154332725101529705909835631923242309341903943342706492622973390576427456901091324149353736651607501015844751752809381462128373709690680763299374999739834813089212620173432420970313425585021637949199282649218397784242935246302932944556558122626026505917255844193438316064839735366498605167802912381862114018299779938244038325953052985554073320686326781111655032295475212839120807918812467562357131015047275718986563082749056712545586121576762970137485333225308551505149220597901838814338993481216127894301775092501215575335557957066125665398780473139142408145039443268183202650329421201991005720833477558912928479704398043450096827596825676239093030357517293117692681516933316239845423899245340156227717817223414229182771975849706457980213664581802037003625545369893874337689936760058464400531336178611666534897333978402178457803202733039931994065370488329067804100606095653583441853217490439573810502207555919075626550921652374184462777589159439513405457854627555574298052427111412994255173200348344143173891125751140134923784745123809874215247100719119887886639571253981226379531900235128237846802754479985267770146371355825049865666848438093656729462482278521712228551590655672152144228750295206300783712601112032805599466943425583447745183331244946544272153130347289433356599492134295482689150907717920149451936385290290594839914615975184672547748079417139815329553771247957544470273316556221935597092647440239398769406650317826110167873408311213907558919246348779348430826280600600054151100275014011774106050854953604686447335104753434363727421423660037542577135180558892952953837842498404697903971430660650470276794140914128925775871241274248395746777566400520139774532716533963299195374419271245319346736422682651436466878319075323682452072166845243733435991795399463088015117041210693271381212081757075709896805218453631024111360417192716758114780224096324343500617470235654287558263419426393948317416529839551181166592402941411931723440524048767949838668674669120929189031584731498557827133585338533724856883553714162791633907658633296082598595032037875094768073962264974915846120533081539298952177752184132052066660933761828896474491716658769707187220590756682272543560223695237569295828162309413511466412085848719410515336152743088955762740345233347776617040838417419708597516309316253938283362396734875577727848192973828086623110270371504179716134522924926455408831213007736257707442654054778261882456294213561880375750585345323111129251120115874645335807318729618598622464392710409318864846777046878049296289985461372229481966949847616394391420088526513234469828381955907236173684141216754119605921616402825244075799913077882728706385041281476443694768113590356326118285249792378497570532839935093081577328536868053535568180437987550081569878756564723776695408511444019716910809667793616610666957891493308961874335440130698185197731022631549260292595967819228416900495121590102548677790514110449493438268913983752728437203418472700718919715079712199120784484088168447151776028595095316163056057152810809123838644949670512392199594866643674100288882317077413466650982994737230413633511370772480616754070885242134074492645131614816652342729442995413729358683241920249270380896387743257899228867589086986676358418686772457071520599697542519839233394839547407718389949170850735566583180945914168494941079938216238551262839731227025295349096969951790893200649579959087294543295124619973064209248366663841458647301885127642928830805399462763677057341695430675593659314879693644329738008150205230523224122360552423179994775769973946614959602980872082560387246150310057865567121694208410749267014721763771771680299140979804583252400255800990120975067532286334704507868375946141659776315536122177354741872770381592582383722496105097052780837959699090039655753260037297705496160252495549057304641892179567212952236971989510157583881546955802382555234541333198661610466974340562641109240367106349996317156404315875684541139367554198600813243834508091203343680272932360068093843068006302159069197921869361682023804008984709163070373686327744743009029029951882325837192953718087424881510754768852373662082152623846301162758642907031806735697680580738724128897417226900665074001044975841659900044856618642891251255334465702609285708386762933298866056118583474118297812846191549772026659408153305956757934845272580821009498901925432718288832607333621166570095502763397823602699888166250454236952660790302479739667965739584975724811886470499258832040424683712229825892052585639933065673197171760545014031087660383079406050256242977955822586644923555278407331038736700315027717506697866338146785020795282222762803688497246919222621901532494644864407292343938407580778870473514646873612326595162464432652334118237047908095653223704635401089131072290107150393014462640500035801632476561562241506440827625904695056816315119026794293452411194400723409379536738581029432348622083422390161645406728531381915124400910323255241737891180076535108163770887234404146538366221600342113593006302636367898788111181578948377309217137490097798499166654062188806738032011699729918767128710342183546437900514507560568291018635286596570672533744254639644809925735847778707707053794813885550707360540498008275085738186362098591896471367748638188452638675031482559801722932051511917482716379796009798206958911074116275089433635944316392361041746791994856260277854221430489163859280516891802325798034283091809143169103277350637979509763621569728864437966254855766414659088355262795415014099682454897079403115033833612645914059190379115385703176301195711312528271950706348730970061616465970441847393439267844846859017325902189960731933361086108577041692025681507022109814555809034611516363868323344876639487145457402955512184456160564665775210744724715021083129346019480921357661680178614743210864067960720057013928405095517171045762412835143631115785446595456419017213261542686898837089371460152449233898159906673734790199662046039382677795756060693667538113852684690278187930499057821503284336135203894827656319266200164987701339080381898286095295010095249607085548141451271459535341120313006898527809825928409049107884111109376079880370436404839652413227436575850138142918623635038286941662761020573163975004524794276154208120379683597510130073187653508837323080831404707773218674699762497910111745867003780013614317038866035189986314534413753474488307812484491642996730567566865450556524995797818007796440385885572334582005712405957546568435378146953924539856037904475324478305069075362773646603671405076140533965674265017597293483563338466948538987660686785016582070225104885359560518905666872997314946280770808504026966664493916673730447711523255457115315362306141618581582259927126379698079567527606736881237989829474868125524768395705663197194308713705923203370906056286566951628660419931673646632837527385341852682492660585650832430576637458083036206258246452064800292679264868418841106904207125464118796609272720432657860967939789978510264371364269099134597578310347069696539930940960380872267188643223443475082645338649701152078893551439249128219561490015170594708780008938242882690969484546123344239177668022606491416195082054319573569097963521777995743789969947040894857117553525149520937190172224074358193568563848197236260070228782159535123080043157307778339524513391802193796035374599718943081113719510393101179748398729074851092208815731071854861214134237627908921522273718287320394553138302916725096829422842843053696588092808210768581713519364740585947193429970053420939016025255286319263887548826282866582901191043931729687312575521021029308377623522944018239777324940119695867904095157793939384842318417891259400887895284286808828679588598341484734494817214991037703750102264575963622399336053749924253394500617194672104122497323633568905505857728263120772462133789050580976606026699155936793569845961208920453302124851388382301107537386514964784765731988409322820034058284806878204692633188873519211264334591489290858918742619508915017589101876303441773325289866471308261434513952707538447847562984184203586475129735992955295598875619636232950218921574261460253245692492848630331230731512821095820126740700034424339190782063534361222044208150965455597322998919545039869237359598194829303152521714461955803385685586382983235135302123651133996755173583746647585969392429115519265477610930197666590550749161413940852473938460419734653002047586539859891952654742099687102787440405275645169701401060469415047557430334901000581967060779377732659590588934195906259090157669531749538370037627069956845106011640355177715464568513715731850941647670932684142879095960028558339266118650951389270496939918475167377475133746399252594476052303684489440457193234168614233832543271383706378750907766259806140070862337355179326036820028101559599929726603859226650501305273136741526819569773401259406337744573581212494421327835242822406094389723131588046275789246693859012248816405661300644249431258536567628345749530979154144058730989654562543676936671529763066429105821878008626013817419317004595867912544861614874712532814739378365284903903053614817430598818408509098474534787784194646020376501699504741467617370081007159092968213626169857042682255236996277927621978479852948777302355757768501798783889902613928646614001631099856997219392956865240787044035850124622332664409349812035401516282588509802445131640541768552293317342343469679455030156782046088182275879139544682751336942109656204671064102372807627619279694483499544246151876907492323414024626123688838544405759031814777773302136691836149108275778484211274197350593169884831356930418734531251039824053443249944111638185000565046297176262933064417307862258874972091512728339727819888759998098360645541442779427582499212183491100901960380696497836261735606335178499938035531329907195833112309425932540720144939845509728691717623603355398293491546123236918672658940772388144302523918693115534213606338666473795946589078187459458164577307015272316184755916272258847866809576352011502348078292134382475778215780537387527976211012155687078363770036469025205574950218241476866069581265078733287016686254896257634056147704060168495746932625089942600319753110737607531471642713805503336122658607546950309221822751645439610916654721993592872151133437289765836347515047407357097374171150326990483295851638622265172306274758685201794420765146606720588145486165048194831408674385786319248263585608150636969180639935819293224417563022904876039359070599984487627961697953399657400297100871844938634797286825880110572179723321890139473531523408154130204374120759835455158407532369951502346973080774584920823568514504177448578396864154007956723412784932521633749037392776849241979962650599857379975039338006727575748615281724531447601890927465588610528585042787519933114794679856262003812789731446124388331158268930516420955893594302359272610265019672202562991290588332825528868324390413873767857815542310548022374682141088545298005715766466032280466624625423375008195950286365420795903495593255955684543944808950230697497998436633132997863096286910446142978228608858641356038104785389980481888347911786622323940436291918780845608996993055243414838498423210321805562022962493324170355540498102379609632504924971447094724155363856138220162915660192663294286541808825930136125006371537027539795944481048478197085189532120333984302142715234982054664510327292278394995497788151936115952032758389048006460538668902971070005931686791694536290045325152671497185447333316459007518614865843186197977450247214672208581263243613487794335563918129340429366787148804477099262644694354404165191967564501979737801760710882688916046778691795896061289400717008238882060125832378791056359126855568710378213933617883891468506563679764409100564853540842527669566564203082327916258552157018582698653291198015221580701381260470241266839826453148687737482733585647067507981682449566312086277687185561871297531574270303116189230900574513257906801300537488314837465327036268973176408023987714602658133146780651837335309754786341011214486731419610929338358136715219139633599027435913020979349511070408458412266964134609915401372601486049072294219027150794239604285876286400206151091156538277559174936273675738391670868655401994626496607523217766653946554310289818051201569715908840133670379240627490990229556636030792144353519068090451432193251509353776203722415489916335108240757520978032562607222599928022309458560694099170990422089819374382881672366411559131716337790407662653675951164277951644516928666257688151134256030027745218199595142815130956534192716280513328775466141303062897959639974145587701195588836705289926758316315901154610653053673163168968162141205244782376342592772933447837537056049559759317422037865154287293604172306746022399132605665141080634406250941603186592772763590024266016929196110432518334030107796618574549866211076791633015409293198010675844470258377594418747199298961592978812915847404739093646417424354048946866279061912399509583040852437552925229493376337717348923484532639854973374369787820701114323647772037060977972982371481391059426431991446327155939635472585953999762053355022355258427161792803401437271552982633953586525583127354349823879673813644444599599826704634688839250194483536231163782391824242704709335413761350179553368986735379368699118952290518485527781168906542804384726047119718235319942141063371965080555504003811427700946760710010557355460900434516290139122761511509662421493453081877133617178502197455428794231480443057666326065453392008308620197781180994099504205064053595766918146052449388763022357415418115982548491921892768694721342473013846464136637396341503646300640361570477341920888946905899687073091310676948249196809343256488034299367644840474730480378927233985082341094826520787728681795953316119224322780616753025176668394659533474333451765148183619778528923600175058562167496760326376040743875877881927016895114506469017753409338568529993176954606858508211497240071955508630070199679894722312279090974479846274318730282392206810371583727881917475891518422235559205814802069592481214465811689267688594070040429581770021409605764021876740435714006480208850635735756511129238481534986450273237190743380614993050923441522885833618493466734230270348477071658484183908382036291225696364950019997478036331364307780463788213947503994523426813508715687244028914922415801993038575000356881619001780624294998651049689085744111429859045237251993622472532844836955613826338882146676761685565884037439033482346584118038354590901081193578483043733189762859795434871248579490005709512055846904824882394283115280369448474592812673339835372971222547998019378940666115543528715391589476701248878263610892744842104656860727437132436035736552828010257937580228147061836571058707071219193545990759999313099829738570335689558816720132908517575620089972317266691423342485150769768414480086147871906086981954391759156643488194117236647237174483518028963953323237630548951114227093744706777640705846409417683799840524109244969342141450658441502240288841060047111167302510040634145595163225412781586020331078001694771475598108306508536367285627525984925608703577282638167223717008960828948208260554393234563497896667123181445825669516991910999919236448200179741205345724030325683403508835913946416614887129435471986753966418691299363573665806613183642543141509947196327126016916067577498627714073066833257164287774506104620128199163249059637174561760730723250608651404687958149836162018166116153200599734310215923845449116305216597884081720784257785769915224672411605857406306755816572347031909610543235842870017345951485539290017393733484050026827046807206759986703868056051957207828623271627189406114120618356397182631856848215446335190080620463239121424317204535277087246730858402331275178806022306530743694424886470968028735555487944712991273912815667217315475224116246954443057410398197297954363912748114707895314180989672182835188757088334904116220411374508050511611869731433942126587360547507794071470007733338982985489415199292087686877960441917288254440276362608748268167428801144883336522308383815312853362814954234770261932118324897712002061266512547598068229408712288273425363357261728626786284178856957523489282979635605987973260555313981798709137678207884558242340733689595402309745744132689594747356471454014910884330141779545589066257906653432306848498002181884514312284933644648201740540103382205712220189382357132909378528842727471825114910734802440054455548576583228021216787807777283799099542548007683142145735688205631131639684737959001978122930160429200576378303987069493339083057459779617731272162065551227627585023889739918779150347891008283639220276850489165818302448143157761797881183307549360044175258064252243204968569553713005627276940739224869224606433719349709387828649629741599825307685660015039144134964293520377340113557059751819252281030498502069371728846612880981247798725717792523622243938405104453811435393533160289435141900856587020268170955348518361646413332790471044345936928804876554745751313843982910676096257384769590225919699419117616424835333059536045235748089491081741275141972395199209186515995361754798314044012421113306212010785938605357663190774802380272499107212716033859433627514187323392761163192054815477626670548296600906411351445964793405037458847709356513793651460794261876766423625207069269888301487497079230844893839685423950776956623817385999444021975045370833785130802476392458372276856030063693062223412396260921918523904976794980351751305336378517614684308550653620862352936869772839903735698384507215165425928389575142797194513560284437377036102912218435728504450345725882624400736736617726559674898450347119624192074658972673737771883393413087440671479396642910724851052110956320003266184284507335804775633042549879170789995329657144891226896714629244564759894836926982715236483624632283042448566256753855715260014643784625237664419948019759360923329080003877441801402881562522667341213220868428312885133206971628198300513597528543187828138810309956892852847736425511595565138715046807831154771413181954127399765409176956375459099138518770338875901686992230636396273283245370232376099449213961717456612349090961399717666175821481263129520856359577789344015366162360295297769953697315524427660779538694198755864341530423807425941207386382342247191048661779943118660512749118489181694234111579494295417272621700880111460830635612871231585799104416489793169614337227696644639354583042246421193453871354546483872271591049643997108416389957355326537034453045844595457508813045416694920809655224473537073057383351324353122310818008928639753091626843561406403449985388860615767204072492755322666671439847955603308457169106218965126812638377526122691875273766819089129999348656697095726262032440436073797154705440804811162729466409870952650058656685101069877929594491044263837954518605528096582293734149245573141003704674471259876656329931438952933834866191026789322946309797370128030121886289955814424926441350496765359140918757898532625793518223728353456357120770716101731188126395590656474249215614787057356574921725222810832852726305382399354163223257356125956629949684468086647788200425584727333084123491156006491714457490045061248264534116163854752168179127964002628676296308574602234246239152921396658194038609816297647609629964189071180291409975284241504324698188703003166812063226200197490517103218059140563654473282295795155821093604642564918585720996929908316579268711723902419417796110758697697913345354012109508425084925440444837017878079225262666880538339433924457390874132212503012881596990400887893436849551707225218664344208549652902713027354174535677787505560257541320656643558359094353309928562675665663692361434028335909398030095588565662276263576251177650097031387228430381501397196308823623876219802562261441872851092030699792904769540618784241960209866868612271037509300676220689629759545815753836082724203771050651251937009317982420763836158996314921940632433734038291334077725727488444935576018785350142998993627194321442401001802169946696847341103793872998806451726469351403527586245332002481872761964199342892778535193471047930606375622662553341644763319979701216902881609504362566604048466318216576044839648525118251529780754815719179678290304483561326814901252903976476815687154748628081754324768480119406942385845056445988902939550539623746338164930768586777190922919491024516103312968696460175194861361379796061132059019993462447396404988398494501024413824520631982827300838643963712293637311556728620615175895314306171908656321119254150626592854632974151972601436042483248092325577541337437929378023549604114760848462598739416065854900569218884074765037723018376282460649919975568936384981048125182905747028911559900452786057299515511895874284589537470736537073886671790871500975995943802669956776961138019721611751863673161011440023532601173327717455251607026707594914503449273657331268516487921221222432134210631877936044944957536990766078840343781849840998105317996175030262284729142916512830192052355057769054663378630496064870294918164865337207205920968117384645895606742280146664686941052505593814135130395016350824705534284048756319016228610849398523745792261685753644108975045886743362632561324672709426976819007830849696694680176354757379150157517411264184793354090539959603008810874331544487080570592522502093006931920735305200589045139232340695341044945557927622208120446937078342112393970862396591426594536622166711667045983717955678801439660414960270810496363428719789838231887280105318260288380151378630281607192779672084416365880361671919152002924354902321669514618258451224138706225479602429821584493471949912393111628033058062781016610264408724338256965322140533531803259929502248850194297407692356755155376955727444000326580604014539318312695616120927696182961021661153307555761505193427830813756886167485129151421420907823925408749823182730142328185210251438899904291226975082183840446050192060948172791023548542220304152547750769281459189514069487190504426951747470048670163608129961070387789934383691311993647966454437156233483468385485884271252714596798643796610302839504092234679989379748242999019494291477171378461819029994919475952278721463536552447978178380943552245133645492384747532238109479271165640255048692714728262369309175913009025945369972823569264636972451402235697148639340483543075048109186310315384825109942548903222254845072475259452847654223487442921320980902810071252236046584337812202429404820491676341507830611552680787827746074607262833117377598732435963389150244243936998594607182785095967739121104697635366809403036371420305198850251447129714329525437582750101069294091106621723479508768775657211418254126746190463902134645316474440526679893715116716095879833751118527526689095494435359316840273748043519575689748402292808572333641965327972929761710565155338029527760550155126783983467335723770836516978780095844212470137331493744267236806046266148075406158411589283414524560803308450907750815021899962078212148301544552347820039830156877729499840082703725158481308609135004373396977603479779725311253535107175328391516853236980125223506314005422610767911631214076653557013972714183365658242802245828544186457529461795039862797950432228543155033856185403951934825351244612623803837956043041083630051586847773261131336000707616150006208167969885736504340085636927456591668263823486907583340470583664386603767832388372440626144413115336382080478876494538512842421272865705038401810225629855197103128836187849308849646241861034271105348112423980534629313002123248611556905564277269923204981434901821851661374055231126836369235393124250683911570964071240411544946498791895697275903929758019010632833122810778998681181680035133308727095437797484399255770594322162425980697853608453631552462362071553168887850413699018273118976051651492281962252676710730155181179253192280175467753097456163665773976282627645339861550670189252957012716788895099320418644886532372070333883355830940930007964577201988447658161611445943670975035308814431654638465412727068326113408461199416985456935217394537762796180047640063689859722736587242786703126262232840655575684630453495544817814793915766063404536827866027698800889987325552337115623161720441323437217025745059339544584690551504508777924265657372487540630450539807762136380154702578435903456451836357059490509439555404733977098387410621183715402220017124653272816282516097624238462766880227573447973003950381067734385824993780643446145614089952019056405660386634820596104075010576302827221547038230816719166019253863075127042718395945887993531567826552967972145283950718287281299119681826033292765030404183488933991750987867591050469055215283297552939286788912967833715691928061356460009177752835968206523490490091880200229018227124493736980902342000231861517817320913246735449929710036826794856617313222108279229538863126346753352564120609558855596130967396893596395992073899091389250162630033282918417746286804476442229189970791816929849667160112268802337900588675070295893406257560439105536589338428289956724558967050441448511174196885092374318683715638592616897706608923361752006061205943577081452329915159915573115731062444688210744866022750758442857424333483302916701825798968740465932790178734686565176108953920690931939192039553557143204644515089025292531756998333791851097560938800609211525159854095905277001424634253460953168681924020124751982047421500938064793254516112752082913417919661243630783691990019633232960699969666553867155060294402005129215012036540939180319119616600925489555693549008156443001507849530907544674955458853020325808030019406308136311467625971794789894234727179554784857062563757308978659471584586480781323200206362630109573406428343775719363908620929662592336749016714770569272124716521424569531370124901349762824653297327430915398277340608037625358703351820248499350450970329950703510430434282088155545515208727768193908623338663322172340747089796450190016428926043499986812896034359308334984867173849100424718903890412902409986705796161113314811026244865411068893135630510325442284986450700952472207352906339507310426219288832167946927481315972100308756356295791972572743456795943968976915179856766492761512213131621536415806239940368896575277620261129021230781296286346980206333258164899546062244070885108930144764743195483927167562319318806163187516541530450921493998004551468749379679968393858718034587965372237950875789254833826802979940157280414484933097528880149494413333613022404553044814693765035545613764889250140318482151136815307800864602467926315594136894493110773714427366763826805100307974667764880919153710562293091379999797346151815052160403008423231263406445261961043295954575234848965693606085718758864889768632241354167383280610571435274971308514530957777667069752846873728724810118439797000906371999297022240625323504305172015524896944373965122190308581425898048270303195372509055234202709790444501260618818505647469764451937766264580637631322897071682152661039368568618844855686827486575905315210085579055219959588437862274242556012546139731389724499179157679858057114862792246624548223630113973585564819324009796715427586217011316605632538114929794437170048725538375102885532615176128399789823505151109113648437636337170503098723880712832878869424856901781921440820321652576551342468712932318853951756869376458455868363251213242164191384266394161722348453398582212129141507727690594701269789468248115609312422068111207543500942359400991234205131893793529756292638394855331375083160997333257189618187493916513808011502690178679950275572527934945999907682866477097743457479762637559223734890981788501454066254655910311189643332607169930475420199571151408265546820640525922063407320908416667820722794690206389639089347426610086802281438234488524224458456555905202827886546176515722885638490902530143666844981605577302043417302978441258568195981158463786113940885896864237486933011582592122196832938593780153513581772234605765895142872843256532724279162021204408353508069887419067472508973910496268096695653886340287695273838314845738393643577230062213892854096234416333228603025089774168041655041265847163350488972720009252827546924045656205305264775291998185296841176385123146930417688871650386789545545854018088434423383166285760050699447932947842577095020568322746557648822766367649316192778501676763551956179118690791344205418654003153383515405404244232478693202520567067777792721020072722929672772856792599968850904011845016902519931563183457886680621224442933281651662235531328241368868240097847149759549202988868178317467228561275725002836350042322973522384313752828995021649853194243810010631799674428104765271145824177438987135118128593548190456708498499950976777704383883688235200091926874249041724062024122612140469227136634726558907391155923596162260356859736412036925720846335267966876957632859349272531846445603009296341656343217321283301334753212390098675313671748431086348400752746187376433167294828741083172874673238943461651453005777875285982350968693965217331967790539504778096659117950941009675507694479599208064048727797138237250207324906548365571940884501947255937450412559502139155347963106847944681968627838882227997484530736353574168883070622522572632737869555818289403478969429115318633854210427690122128238246210217719914575059237655415022033967515070684061197328628966895841144812318891712946452131950606723765594795420955914243452346533613401206432585218710640022859655433912809732194204038410289119286219134612354995168937974802667919445356984584575099155803439747732106839178380560603266836575410199841884563363923779817517280020351648052839182308033138664077120572492836936333145679054762468553929845662870292985074366910140866573873752830530847901615207616429489562004031076561212044292329680862711632601849317939263273070888484373063895629780511526799665364062844129765139015882269235559398680584403067112079871654668462372929535785247463245407846506374649308623231079467523566140285776413407496192158963353932785748429746716605367374285562613003721954558576772358768468305485887198724361735127576869270113105366058645780652411993033428406674115738996649210290376125457315636578487442280328427677845730594653732826621290563795597321835867634614892343288389852192855345782475958311956009564945088604306296531954219368005961420308750087872199958311529234537997286080403459871132789191016961375098942477603688202322073022296894533098420388015277016245525671371598199517250664259703718050920055022057620701151886893642027747676109761320493983027348418457987568852706089896054578599814118049703783015754731715130640325965351063199580625265994903008893786299628128804143411082963179537300060233961152761311637014580218402672766239097087755993859923639137904780139269875913604018299678432826628929530560853594936442813787768507510605681612968364006623047482708024840866547575319081778916850674327473509305187901779081183175748236771553222455606825923072689014622888121670070944493890692136848215863679795178086718290664352797880774488921954497029875705978579227539628417084193815814598040771315518216170183443222562573462938624390991169951123539164423946785500997745406786580408362765942653064649547111916188237755158533969687126796307195969492295446741267745782443501846434389543946453433447411069055616937201793115891575315059970205745270457377046946994969150647741576495185208720782249012808600997407195870100830060681744685417020603268716791085286629298818347770976575871110266933815189539020849874798578982933692624689127230583701890858478287034125867122092310073735102637574911660874760174915126978113953968190590197345031716173901918507864688990917891981534582396762306016342237553385696426871090861557369104824411146904633019696672113181000860413403027728671532500216098476867106867644400251964962557360488569725122794331158931158726129915149427051377543543379845474526400146757223585825683140698810300945548776587063411272818853799875366301766472834601779841008231515365954914275184253846357481105497552046890093671691499111109685904417003607945738103145794273134927919015583425298351646320729678613111987935280209219166926004724449344869811995334842280356504862613305249194070203873040855201825684858303583886815832315729141818026334665570311606990235500320562519933182605347567653961399515709990043077241407923177085563278502685449619647331799468641323343855814451273740056245680479672796880028993256214938717667374454571764587725895393137603705726110758523575339988861026255660728573171041198001394094967221726944577589477093851750877876843725194134832542523080131025597437818800079271575084457454769188379865778392237634905862655311428600004145743307342660102519818962785840087299899063467742265213464911671883813901052191446661313959950722745550092125144462531135791544040864536415518899837312852325295080463840098207100919734477377871656084009735068363138384092014593179514599887521443709034990108037138099989753765785226223051681777991916819960186435739791758777392474648798854871223197301201237666279927156406379596561341969881128119648503809692211030102997921155196957311518539623201410860027873264549506142380491218408869176787955625976503523534439833734545558442586719667825979614920161145482419457984531987941975636394901983414115801462003016338007600644539687739204787798699163555795479635095507085689285828306195595219790460655884034702628200494613162561044984067889182611332904392675415396003781823533009750331794979957040291168366072381977480619631215239690390284629592431884118452143882182758060862230442389623518311119193948884949866324723088230878900224207951834060107699401116067346556738852511662378345105711052933514418554369239266152029961851891572890682111858337779426430309964448546788095767440920732620418166175876130108509277937369819830513152941419718058682620303882226572425129290766863642443267619501824352273057834878854726146112972683149205957207274878426978021835881605959817918302421181584529171961212974551680087641273964696069286575665666448422624341431610851318946010845270310804824535948208264995154317051796146199207421255846107517659778486957669593506571849854992535113344525585034222883913860131339282834169594289312856866982046561626192998952182051736486693712226932754813739269209698103733076074474662336778307084101401360695988074512707060695774815143429366557960551195157275183968616049340723744443212417677771284836253213873778627852730980663216189775980923730000143768360103643541405311747676353625118316585495493199130665630904996781420921560507357999033350741467330800680042716375118871727827214920334289202748013937073558935714287566047949383253695147774930974352261224620146837401551606565157827323529047985758321549568148388778097579822427625820577174007394569960429040118203948057304583903298482921579267758261274085747818899705907686887744192765314913786798904486230939238776303698233406956449994552965264289216613268513457085856419795228286649807847373089402829218364003897975165376201576819916789542749742513906920796119453055615026448234011444180718604885456017341433245523907523024797851523231306057340075750738917230728173586229351709757386064816992700795491970102577256121739545440899754058824755471794272403062619900603579104293923899262468056409643441610103651028666648547979664849440786193459581955852541803166163581256301469788389235403521979791297383707767362147734007771499220090699808764452137548018374911333267716835018660175839100661008460982287922804032942033467118131426200112719874330432598184590214912746243024773232006512629741556691410468929856325406994323844774816097139359970798923419373365458825668561203230804296615599040028312688789327728077985159378432996417965249757941060396965929263945364327879743930665135722955193731091947596285258152380321686334806097893898487821376926910124625066249195884665131185297913951367522302570480720663617698244498339617693655023241885656956035066099452857470822117128138148377808887601848316569535963986793041831413613566632185508198691237895498694771867166998199805879877210939283028274427412084142256391002803695064105705363181919234269642361198625470043341117812777640271752916991177882124935189022770132578600351254131087068215747597147572988440118133565677417791316415892839626371000140294535206248409851015649268330559476124668150546074085417946806958640476081223865231113309302802374108399806386735499601678168848505469629971040196336430076519404846381284648346308782319267696156521523811620100984288254866622091771129657564961821363660420152602321188902072377424332888359061638900684250148998373963666201353621836731509257837153721803467309372261167980946354978932939258557040337150846842110722999121262813451728429709028251211562471014431256150434761835444357692536550501442543315460214137048723945874925415721733214373608214247245925817312090953169646885933251055816449614661653191749384518970228594673403155727916900981997658544805374927386528835478419116022164413681050445245038467854081725435164143532280502406393054102714272217639976888674316229599336616343916164805780464714563731199563284504232091137673909370861667149524087987976776065930559614291852683549824304363549439691121221593418946114237386598627776027919921264939787274255699850894541823032635071015938474789246287288407493746128665519217366135737320908145713739025025578528991420298200616012446889546091226844274564090468405230672328043694338099972994791139736091950772854576288661944205227830175231176240695028116957147540464094457366593407427016327102313816350384444646130453043315560182647851502912087381416676450796472662526442966901668709900324816363491187316902893563321687126275674813330855974354457181309615234145961323209688843935592288052039086666379393477359166925050663051992120207314005523496254486859729695382920392352386607282404688418515738706919581948923860352528969355460453115877925967730654978552899741120405983440957541671568059896244252077579657071260875136497871598423859161827663044384136702290952448647887269111495422816135026634237527741849088135801498529077314146160775887421192791110988133748739092396194619628789722757690276663471027937472835901510601771442478040831559448063505726301927582979963819422472794726556237574699687966434204346948368361560810728761140983470834216057022827852776450938546861083285761119977279932213441111171358938200337495714792867258057677885670810050634000808516100180086566141811327042556423896944917507851908700377720685826504972595372790502164120803150184441444944134270466116839951993176582478988279407061022040697321060448701383243856265981152312410997617952060176158378635873919708897522345807782372422880946537650682621610632942153239193005813646502282017004260941661710496010640756770625136216420975326267976003895949760505772432875287548777060990342546742521498330605124194278296128205012078493488743678069553519072163525103259754856131587602330062272282336764698191371952270809902313055802368588137920529588683801616794132978815344097975453802318686427269498511592555570248779410311869677433976763097450204793034449573048020636504104377986453752141059352965868400001243202873589613618155013980337348608221024149368142911832301900106653459878903207946323138267638016147914866485665051164133681090186801677799849801443895712685036762612686723180300416470506285986836380989113340180361580630264325595542834160742994168811425563684283863416877493938426550549491479731885245211195847001491326163630555509437339572476107199792487535213610396642863440657946645646396923889499633814942208688384612455698047302598275533574156926134875382022148968686467729134704083424094758503573446388283656141600216853339081281340727790078092293861907880301063632551470523322088729479052889196849095525161161174448924959417959740346301747131040049153316536508046356293996043440994375187994514298652587453879347216908173401755079210143026165597156283523345128599581289241971668144709759342377898216875738060978929060411807751811897797451277723170423287593282201902377701432324601857796795547983774590524345947812864076203077246614633083028066448888181013714158461858221779619157529901086030459783444050909423948717380444619201750431955408642464260269753086048632168602526702716642998345488325887043601977118222492495119540866037859500196835350739626692721614580015354073925006137423256056450135493047297508136862243070606172767855073917939124547651089071103479417100798812061923494934114269951496512637307134304185201370813792731164265622412494705293847834526147066174499921052104129629941227544941053770673763363086681681777930362436274234896533813251111616897229240235273678154399155760064086454342268981559830732773405043540291122106776201082189517497945747637014274756835088815789485791112178796704865496983416635665177896644655801814866450358953887625797606000308865505632907261235401335056895367965795433828379781071575764993136162063138284227025541769090056718363834078633216558499958309760870097994436540995165631977425108226973814548372256678836615310093976888364433167512217609559754571735777228745095958900787094923533922602608563639401806690702222551563521482616664875679518972503835111441079515593192282770215960670241709992640865467155894502237194494184222553890220859994946070307639679385456481593526653428190651036662045590308245722653735543952172138684430084780752138447164174487927889871751878248702015840279793826021812406729001303772713831121931372652549632351755277527681276662914186203535778346210156264373303136559978993464999315965613715030047671411973439274228259233768633864637387606490803517109995918988264466468756224597126728461219047887563129510840203189568917282817694567737618711401729264300099850338712543610693738428454020423383558256108907686998560047497357105830354647620976006235441937474518072916535046999511344563146230787876881350514872951823298319947265785834814624933127365536287021065161664673099589848427322603509642151239792535737117347010916678246357098476980042987584682740456528467057980859052788917614583998317035820107439182210611702816466732651226860982489809739738026663380456803728629608390038514883836341227479128545996472220609318071108959364752987261994684418999208296279359706858150180679772798080881278272444824695645194603942170134025933697065554559144001159707921623085390155712046842673652144456274423100539653237619734922513140388393804425203406034871658192105588330521435015348981260111567488278988502280961774986602348087422958743914292398769920557107543828493961260332023106204405865977223193175541201360419703274347894461391768745131641801346145897704560164160829706330418414662775864958446710637979455354069189884860481648909920808511161472749229057018981924978105895854666993017867734825768372394057243989686717741521912867758570827716997682839866952945764047658398248011664197675482280998066979331000945996892565853678808284993664142531557560373634368272761069209476811962932683667954323375053764840629698867134629784757449015880563451652172615651519642047135581643363011345865317333517093177412034598923150092654761677689669474360957398777741009955236948637074002621922230849582780879361244991812828420748827471047978949040126869267708907220038517781321843906943751502380033371845580956280998939435400716171478580484323851959919398004706496642889753874568317247669334252181561847786468107751300205551296450614125048332978647309170909209719815378222677436360090945884534438367128006574901105797193866903827402824148804008314670058627026329214768420304546004007386494286699587713943362462895921820635833365155140530387571142864498866862943604241789870627205529902214397335133199094273214898137040098525286318076216912657065450747390065128800752099961898826875069801029576072934703780553947005938012915821809338416838073004642615945299868340545057599357833269126780891544261326622384832789166326553039436027992272357654454794372770538502882346320109192609100459987500806870706041913231827082444198477152366322825884817519180830477508073768053457911199077575271921093476732074495200036877099360226523645453622090268729710669240474221997078239569902925504880525487748059135107773443695347475948429293628851527587573604892385838431762150582579455680102071435218295182847651851546344462067787610138018453207770841312300805132760594653720125093655350208998914765755516994930645000773907832713928664318662633829274927802128971380384405095533011141598606029663531192783914576527975815538478671855448755161557588729790432659219140572278816328365327111667486913311665578336788821898502651808730674217397926177966730465826920069233889996717595650703199940023360461349457611915438100366083318346723924542680828010735140564335582071281154817322379471373134176959528984916088938794353959530383835904149755678470758047514246078567257401460693523371497726453067129874270678341908203276099255335008924588297951726322210364126032242370078827731498360720076987070339815704741533509766811563386115920584885583273823299114983604387170283072967586017683062854110159976726502365110185308832179865047923848966381264582304574760905674139122538098301059378022162838145696547138219381440903989408457532592735644537385843484162506107359721039548792727239699293087450093034579990479848253761030813624948145615115720873200193642298453187453098234252003504828277005234398009809768513422613271874393266063477270122883675440191380533912592031136590761118269662409938677769316860866195908106424544904779151841805237203906259374056598996990389422268736546120332025375283376051760907503615934772831357360307576386944855044376224639615093931485493567135867720923621747001788411082128138808122586280545056628324540193666067621223263046532567148506747933369023831763871885121840318555354659510742567521326378927084701941414532967810148601989662269038586744243276821615239368582916205705125415407901130406383253968549520772311038898824238095406742604775864307201986581574542904107924560518361419284332907912111807253863809417253788702838447132305163870020881817889572711413743813817683897100551666609837362430625409076317656815060531021658560399125980256141482578093786056648200329297449524576508236547543478984137423949485034046973804319654262593918367157834614365963106440133653781994869162400269924575426133314206140918792713759292874524471953316030000505293269574081899717349013136080800727263403105258200515145796621540910563754117873232527150272528310270073957898251574790371187341361233492816267986633870426971029728344681073375745899978493387782357562948275737151576646605999551802065519325095166461410196675346479217432024754689951486720899434322003493463914042098843431551948046400437296317618583150254012540477474357878332247842282438226496663098203065800519922585924300223917017272635392496948879967682971088815838107292071346612103365158030665057612972617472868051802450256274032410068345616661410866044302960190197536491654129839970022215036392312997623367842848800431077056672966636252272590417839547943064512069409686711067710995865881014914542271958587120584444976235546423851123525814700794333649973290116093826432793986342110916804287238185963032259127940332302489683814777459537662141760589341345955954315098379333389452734990937516000713540446385884508777136641411038756923739874197939267542633753025911374788010019446863068065874466960244983584425644206696744656109662970749082278174562308757824303835063036641061737874156604201691933427546921834463903918038512539173441378471553193307663247144147006935111990431882092612541928077387964302058037341275488244506701562192594399042641682443253220135659164969409636155086577687850075315030474804228661368708232132215537381506129662097848856068780742326227098638203904132786947181048105106566074849646731504939423880898722126035024801429659030349953258023357506625617232310078866814782924878244033504732743342516817135393930003083772173513410753858935218860927004845864410206810935921798917177332858227889811609224416926959583858370431932077224357841786562252818568103840670159254182879502228191950633213387923605541322121771152273581864506732618888921373157859944684255061625529167739562624046902682894633804146439375938327210377256753825155554382620101943098095569206064968742246271225340462550357068456885376347804967979973637743021343002714009423176596767818922191000948861992154078958655247151524544318079413444438541671398790199472342324497116875331119018140504327451430453145752330753002207139078661920294820135747112757066298182182404983717251899780927751450753429275125739503136201350044946697918778741374955550236406041597622656745517796821989045818665255895795442991888850867038812626503971520983847468248191189808763258375769329057236205949266823700454566963493702257305615091005530058301229828522932105208936276380400491996973782219426154379562931112123226122238518578555655741255235792675343892334603534840650947541112106608368765541356539732848654866774960861526053432502705663702307539656682256839847616809475087672427321196681417882745076524179265305759614517742337424069053938655063138414909216395013305131713340600159728724555381088324290575439137593805264825664578538319724146540784813324332807908063066758614098583498754026674366760345060612698306056120986635536819463892852807869718243268579091769171031173780817789790616685315729084561144478513866410588720192113246878661713502052367862651358967001420573723832069747534154528591295471511542891671074364826432315978173535378987101254753649683178335166898836629418262296185099488178914328003252994351460145548928096489909783135349365561919912803580474805313707709233106861902208390114397396473600466772540655116327852211042118729903134877272801603983942124008322303842010859434519490167519598342554877519762062517942260585696545018382858374439220945550127646272400916608106963457739859084067519132725261729822364931524947008560522623493309545194230670333185815846336645289960107493706882335524634752019575012625202898984085706213559251207957648604466061482476677984810718111853542778404248302630024070273330304563225891139393324053477644785006539024361072023884357596071034711403832749952866070736065311606075098986768121294881016378614079957454909589434732636700104418073221678702656762974759051777402540231797141359094771314885238731626848176475157252292919856648619424162036507595011176659586512112162267219059744636891992409047144502968603453654493960789257351855967088349751166546696757266445262428306848093929383118431655546208747308139941636256164546512479229023797622225206620205135522978734609770058756195544888181632313034052373290054330369826554475970704592021191833154272526982302884055536171811906877437370425075117890852267895844274016424470359775107185560774109182661278785001312565475448804797607304547793374054650607586623661728924274217519039257817691708541483139097944467550765097796965280916176629140043155884318462966495197137532429410023245307766958180048359124894641640019533941147208736885673388421768957918323694893525914138654208258084301952820379730337795538961343081994938610517861117638522111458968820404413500372095548949812128076627094718577181815294840379790128519491061917275315015471732873982648496994729326219538952478155766730584526133642930472777121100038116282826966279558816116489263309909611889453619790775745974634619470504227498379941403859843669854200261728101908955641350380932626173877011752784773262543187793627263708624420943961309095063621861251947051853133458055211896006104341397555371145183304987543422999999248568517604909350327239102175395128877353685949547686322988328505934376703667819336261382504494076112028627829899281394492689588343110472420962259477909761074199666805513833964552610803430513477904261337928346083725346682092798770027033230740871512051032160740446405257788807662506190992962885911024364021818420372916586148932150545023625318309512995628487983058324795449409360874654062535564213798932328660864072348528225656501312017357701149293738229895784518765058422675334492732413948548552035601037215473230165352259073222853167340136282449993799233878379376545779194609257748458851977630630157393363007518589947192104319857984295034029544719945237687335070655782488634367203516241661468130454066581140652328193083680416806693905372861701357575401889255987743835004744961568354198335768160630618017161834327305605324191899025565785006986667556943033320040814721610026026388637410238536834667939838836254850512790164750192644627978011853543421959119383097092827941332548168825458525112085275483708305572701005091686785555940527890376887928361041766358117683084734359454501769119950640765975757276009890384835445089836975911628030366614146409205053030421664145040958378995232033636561725730410563160307601369622051331904406916243494166324368820563789333523627564370043756783194316430750595430780661798573899120933279478124591585858709206274723709606046258335723438849632953949974511595477888850640369662127196857128752257108817065470021161919711091060344324243392828680938540765389902380437810727115919483285644127880218573615017625027793430314624980109802651717169557065245047597761832797300978794279932275250008927847990997358104341904439830368111981051573216167874174289454644780518693113541820857777468555616854431253221488451011019997087659386977880505753181017371113558849741751795248156364949259887961044763693626426505149238512608029364111576046518627135891560100367562502671018412616438030699305867221425481217660526824642623865383238108373109089314164264598073722363257281477529121067706234506550341532250994819402831590613059074012533420727740887120546922785661256552328379505346959742744718890312475881948846963029395180939316561426213904344162550147789148945157339250579776706529413350617764246194619159105358388468780466268376498275503855866925921515416283620794854970567441510804192735491964446582959083229903318444296286205459997840582206121716350110768936287395416463412699751339624063092246127420689224897748901738439245471693368868125608126028708183092989195940818603445182752123680234756116840359955669843271130260986777922835681480962138184161132111208063920285296636029431099772297937731951858997627206166772601931388458740932109995243934702679274258425661652258036023919194105041955623987915638887792421132739390791727486893002551801804225316131148524523042429910963855431323983196613357287917306760305451709074094780192763643060064525067092678737401318639102706040555507981295025945707690174803393298351693933349566799227956697301709287156422935402812968448016771800958537741990448877013963158093849912445864700905569599791344771003083963507090126905697187924589219516161758257156940737208783568120637353186034959047926985982527000483598122634199737882111231428609836143537546532500872702738435642072303268827553216010264189688011022997044020531115166550126265535107015670801036652686045554831737059693113264552827150207272523469968255234664157879951637629535211038777548396589899545397408417409855126303945434772282232383895557592675941285461680889629951491096616087407961445470146101923815437207126715946762716519840787046187691516383042735401134625246235270860373352394601050519209891985142635903767270221579935831434992857833732009950792916925777245198087053502739223993425231228933859556128100627213273226643127440933577589428858749198517860678406951117791988493954127139809505054460688505318903577922679602625305949125730892252175173202394075845431663821822292352497650194774872498454134003089563948870055506622807267478475188860197550676252413341617536240004143327966444531067127192229341174984032125701065468221562327364378090964744395210396342548926320258211951152747605145039373557567498559283842931360602922855325052555220785736739330885578776455777587530381910255664924566901659540346567668723718510384148090996724590008062936469033222855696907533447713573305721414491643817146197239243390201558167484680779155207437590861990299902998374852330115093085845519331474424237870512789742427410311399663371623012403264050218008351094996971498258228408646207993743794256268076133428478295989992663372674448019944137924566438388141853035817616246343118452114720127305903426678769898739318363819837737538708111754364077884296761284472756786957043666409777481674198989052177873333895845011620787174650747148566789284645329641734310388009278745466917089552659294142384060163507000887071634734586388747681837783242461349050212759891730642265538130724292635887403642005934014867798973836398117714382578705824893809489137773605244534806270515143087797287120009869229064347808161355892851910347018136753191159602547944730090253196745778390584232001830617779037395788883002483700929478330363859047879113596567028020984439919082478080439911275172009905780325019219192549750935126850520729766343114775007976329265991573423618958309927264714059196824432458531781208575928857320189130407846302203518355612114895891372172755951065473256301108655054561805913788137261200411746838773373681432044591440613693166922484611557384972719788786863303946261606094276693978116116474604299522195314047888452460149032698977302162190650459092322300901048176112010869969278871186970648763136110440314849862593858212103748243588966128635465846185631601733436366100384393680350985902230886334716821557398773927326779689001920788444464153629927931598334536635263874816602639671982482378883052462161914115581151016399434048063896029546970306794459518690625078450837778135210501909552770239304023146314649922602351822804662103983717046139638517090301909095425452903779012510371602086077491004449507049188787830404952261229606853669325471425261381630765362622824801231624754075703888827521955577261362633722028842454258938911358389650885309001237409798532021688490038030234776869840162630674273787726143549366645050994600320299089583330348061107620836287187034693448890640727626768711961382639214324714865483848535647091891616784593260356692679452427339300240798582181027482707741221438363696959977325882116348776503881035308665504193107822948864509756875694108271678043997397729024602990511527572084974512453608882150298348577594036258428689213699356847290295261446937708851470500602986506075002255052725429244438817071947722482629229055698156572350824878578003822295733190022398025294291838412515078466994434628389170070721497172014419603060605803524462648362559711688012306038345414594286373269954638565219553672922022251535605055767073847215351563613173698237870072127481704001522476171338348825907709671399681182236802997827668465033051803760948386955072593405898346070996755857818033374837039295318223692079419458348289877621802627925217083761933751029692808772733231273088358809807856925709661554159596776746299730538553912620441225579691675710252377329709433214696820321975194773170730371910407244331709748996813627674307694858901573153579068072932715531608207859327610988362658023328088732995290073283971725810741197639891612240592789775717431457707025114158432674561924366103454216968558835554819103768988065413581240459502994072317266703273890595121435125022392531170912942101046761103810555575088533258761186043435502309834322647676697004350340505636109746132240971841705621998220841160350917436714840414499555117771113257198855016157311606047408099359649572077909116612990712087113136165889568781613369212085657673629635148720908499630509339063707096574531707129084377797901802787025462356988885474439136591725908786296694585336417956994352456373935513306954273429595716950942809657008194097669573528075780525304834984841202080317910239906658004438673598623887661453875756919282106469973736241460746275931014878251870466963374564249363277665376301465239003418303780279902118564156826438830516826183374065461587562315457850090681403364276363391510467477663060610323819782572079222847652976894364964510673450880280816047132690450222131810498244045725214921821560968593924934245732564741854152252963832492148631411931904000670384543571477327222348735689054384715602772822456579824237938646505997133962084563891235954061773306311728798551600175269075106349651256924055974222685240294236104442656479550943107965805489768511098819278995469780763269210472795663085580352925157658168015491870204548622698595361833975518961390570375477496834930172098846693989116238368290186253965111151951129801861884718415450118943492972471863216220840093123809114672983229810685123251051527056362091277598542076013464752150446734107132943966406085753316420773377027272585129522225042864993700072512746767081541108568209223112817776311036572963357745102341139788772404769740731427601056396345881387980411050850842810518385399169780251279490874348536448609037310535113265533218368811795529890576929028725352028789780677426305757757473465204033334191611743803672421294419850589926018012636452383263215302053143117924240689654187482464004966866636139135788458430864990091787319259128126602186609462696140973396550667846899745361381241661441415285131762181851163553054621348778256304826148071171994248874859695128210122601319108678515361123801986932189609331254056669784571688208274047066856504213197528332566443127459261798258198655734569913759476154946195353168547850495617528566650485465551105843968817940467247036613094749277585563621279548151971267919375542927017820591519568183662386246073147679251001666456503065175501531234647462025359671926689927408491581118051395299162515044515344408044922031833309690842803386736397035075794355598714204020138625497432566644769528590452780709629833720312539423985412541181964247158286348909142164616645772977474445399294343096861358228499396048280244203385743043384502199083484130660867991827343760379651564307910988689600061174280168238639273978703957452809551955176646123297620968737885759339200012117593301552904621423356600132625861830950465443531121924664258186557798487298593464693019105162809045262609871755044051636310493269720331651716386852577347147783662215659875798699466412276397466033295421504286537507729348921577452575207410064391835720693680806474336656211066506259244982091402162974473624039566566209908516737642592195471837399194887151202556114086783581809513207510827757026509099732531187930086132746872376446047729757950230651692779515111202410568236382416670684311885678976004985322138391994172333007395522974924973213217169616581575942294018397217508331133403088809042401769161973494178881862027526296022827642233071298408219750857210247956501570041348550006386064978061213071860140041810329097035900481635962049669849090940666935733945049487049077085313750336959485830018644816498796702959503762211400890962433372838389580656118104308460290142639429005807445979115681346286021776575557347929885313067949650841963283733390552707553026810245764110593431412419477183927694094516459418312839456586756576733266682990368568425711103480791826908266539346805053409436464499089527700739808859925288374281229334511628083309851849872222473920024961321974999435444587636574791691023361435064716047258081388117857153229791195723551717842434593188900349318654028961636763561949188484696107019480749342767145079664121436716656486369554519642964524344046622332189075793565150760980919062996456440662143614680601907043996845555984304050548883928003482359464353734716613924551529814266877774064206673282407706203589549836290241062467143535839194258521134286488171385639014596560555028694005653747553982245332374993745934204040080571505080072229360752358545167869465778487554653291932816521536963070157367120253895502526505086910299577143708776036756329535100760258713340245937921581562252608419192221819343487586724067277826410894921221148676952737631353089010926308047020166852769164471852070631841327573458780407357996514675051281205683741648850065232902987869868238943715073400002500824487308431926485380772318352552919048436241574587412257829916465369070995142171626290143370795928108106846423053233256473959448028670879970438711141439453044340973286733495438619845705576549079554902377088632156028504368737313686449791968852743567026166033156075600679448980149093532885556510982139603062701322258984051356254876111532110796993825268435363342199010251337704998996780962026681358321597387957452081538725973662379899860960695667965819032180556548815710365244400940099379664870064855395565387426519167266048227238658746947624719648813911432686017139129343020940924722573991589388888629847574031896234014313176288432847542271567322856497221794589552437422190620123251452821814788718765665593766899400477648410590572523592783879535790787305327146210150933749750320180940536531524455488304332434168935785704448055639379160318207965078875757319092737479225505185700124033484726422163146537569275907318146987887905353287604869583876153769629918054982228525404543061876820292598251457609875724949310713580859186019373205297325813335910540275961810447288047295904257143753908763055824909821887428779713176423079903449769529410625581133312819317788119102595516619689006572310830393153882962851942615126266529645173985971904899970795718776538264402039901603645281577245876074392966891403995485494579882849390614699858726466238346757104050770969815883512977321052503560389674106160696456268691483303341571089146361894537917559309506781242920778734343717282294842270669347758605667858768163638033096639359023095915881645802365553631417074700679406869426936459114632644218165492205301067136433303233024421276187997270355098299036881215741201413351348623158154420744462235938339110566042170111357514890916085544366375562285372775774464551993299383361776300748464430645238105687962729799926388408353875118756727923224778829919905517584294265551847837707411373722778352443689855959683044340234025222033144131771727420088172229358374841210778088564223611439540676311406790668879598293358028060068687234891250992697073322878026040229018738514174504538872402168975700374817378702904913446089513393422234801728890260121166109968359022447562789489135687381303637494293149731409585156528220095924351378750668769467730466190027853341322142278634468436263363068776820887749982948208440028497696252107407746674872323850296771826317574984038048981039876933312870341178414493731993053042532867572363482530982837833053613012280692344041329190911140255276933782953857082648267686841658515778074028438167698936603050050470336470651130722731146563527053560528948571670741833744181027100718587938785831734758377135036692321050843354428780974330948093211927965128048597661178016129188263562300468884873240547858469372269673178692877111157352335354171600262381992530335133736638171613326356590859957396006460617169273793954791646237615986730794319210429152491543680720345340089706278373317063882864872899406553173515648521781089294233203411796565591031010487598336899490377846920961934701230939945450966214758903972479436292872965145073530910016977878657094227757533080709381262242599298562152923183682437511787585773510895724197553239545904662018443085157036567808824545725705392463193786623217996764905486668771964789970426586655049915134937737578726460701668164461731339348552961301188495064421721239912252167649073942068378055659263622157210895284633008476050754203885744870315917838696161430256380379639020137373817905912347445837340975295072084545746088940197117180313791418037691135550772496894673104355494950000042145829363044917548558019165889325171922098288902078005153523783732175086709357919080022060319248557648407986346149110742190980775749482886395857981992503077817382930666005885674480311263432980905285443546880879251112659814547642318977558937138847808200427362140302052217398185290585394932486759517652978798959110681821253294511696706022774525319560307138651919175307027479275870424580983165695213503650946497961368259458586960027057056814715548291491772980243115705474962543788641035982699278295476522192009153029031070617308838594285491282023150456847387771091692102538396874568477206922291425409877806528209851622073984221415797971953215228514261470051586495430103405232523908681075988622994060388448146365010041547373839203861203605476226983780054701017499219527484196243984381421793770770919090152523696051300927396882461101551126376408851224134223241930591330104862350017254949169338590528946567479692794157632134328708422928408616524919090429122336967079724264189673545653473957489465519447087854152112260427764288180795669237748140839971668344075005178366259980676348506025999721771162081043275866027046206413743417298766043900429039085927294038357116345729489289061724880581167586259348332310034669581029360029405313342405294746069567332544242920752526119238260368502926848512564582810169626291782366163712845972181086751746058960365863098414866901876702917340165733088967462847388237671614808994626330209167770378060546047580310986717621455829545417218259291188244599271409200927314801464370048531625990768004524123175394785246888381377824814751595098270361615561387049603986865069920585797898585213145075579371006902289588732917315894171334478316433428040409101818582490568891913320697385287781925035061605087970361598147585839313316780032836628096493077815609775160654829049484051439416170016998946921870988133225455301427371639569108354714896306232213836314524682962765121299909687911186327479106475751933274803980787726294256925103508500240079323925992742715805511697699869906773962779530189750884113240992426238836757844903247473351783227335683152479252835032484162195257674461238337947616145016185115293876525524266542107807174478845996335019333717817849409924543465034857785805634462035404732951483033694558513887577056472865445506944214992585578194114549291723868219047583582944406133891268236235114303241136679209631443831794433130826808833975360622490026677389217718585927031992185066967023012047233776077339938099693216331125215346786208441554434636420966822450422668681599589950926468957494057904534311409159559693032726001014076634800113326638800034105529344665364623633812228763258018110845680356565083403947762558321177346566207030064252563430742483008057020975071566513279534026866656107650448977759652676337104631948868879872699423661326014037294076437743265450396824290660017525509911452668944624075872406839501942711074053349452230723148320832860442623729214671181864461919078262259006608301564103790914876481311247406128134145649944289211810412701505850243959287168647795226134808036504651681618384154629519215796479298420181413349978714956239699676570003234828241042695651743215896964482881887458664737143271432681723410880489976197310413453435272366294885489472321300729598152601700794249717635267230819799543766683287155284013906210759102939410223431825861314085012090760670311411000219338501443937676858085659324555698590188610688723195342329426223140704745861707870043955156861861827711819417225581754470966373336635124734307403412140932975397727102255508724597980587698949381600084957614743109020738312405373285673333937391714812971792627311500147238855410688133297341323933747588404501863531922484813464846733802108636781189666951604838234261508300956778162122074913880692631929623559727132463214920725157753913086567385083223207956159942442514575492778181409240371935453197386870412250812870837912960177535872148676166730543211688664732388446396862603055175267157270769388515221461318481499563217463427696325613338763392385314414612622730936990752334084795823001368239538140388585359234926155214277029667806764181493841245206555807667765726936614795859955359690323103230929321936056007872273091183321992353982888561408735882515766375099318223631176092537608702251486509662174471296991281218664731367554005997126310677015537580440626625387728458241843798282998529053773612203472580830974696867047222910195669036891872056343141672971505896516216491609135429315989214109178030508825946026955348191827177708050967475875913192405498679172125228177149540953143859320905851352342954976239036059555596074198772097823414619709972952483740400932142516898965057266459952666263334785862297873111288515052089222457243840321345779229515722067307827792260761469011010307592951970302103128587592939221811242858580338276574946994195663629548571129812971117802880190389837546174215039511662700451777900610072833979924849825974732656499622771069721978022145213712340247539696029110592307137785963168151698208869793230963854906563419814238700537785815469235561587292387561908527929120496663303902767107288281047037284405783257241608378197618131636286069355573588744866406818276385611342535873137871106403107141907448153161455748555468748084925906964087675939812891085441887843049441039073213418392439248177460694369104369719710682300277253616860271624521347827468752490943566929357327613650186142056610529003025319320587532675501526355239733249924674052490731656253032463441155220134655821914447352796404994367618116092965176383499432237228985742454994900280506623326192769040876477068610016767489551858832559699994416804959609253013456825114283254930931100063436666216618218646784405397800421695720063515054957025125516187426540793867010392874834113386216790026481151008882719241636876169310776073997557005730299295771434154251571592227280342480608400976809312783414498213507149387146955280316351379891048544584121373139433283781690985328535395967749038966167917915338654201393115636928190145427420637513110996284183271299514094543397269810160902134706963573584836715384749923014556658498696945057397865023138026747771834276508018888842617095190970337281612890562671600410194342181923560609843507465513939573686294495821001756260590668497210234570198253120092424652825756312535112863674673378723528681158822155036617402195475204813370553217273351972403831487866183105225591743943095998908723819002222439279425747255830719378053854672551510849725386707114535644657115559078582042634600052951886311637543631461966457213107378056596279432433867920761452903750834690531469709129700083538978014659343302232511408665854100128778640472698213365447875042958161604912494715023439575579488124893187396935786120208095048385904329237123934105106367109991169970246506639618581251680192289502025206326770221474067105987651623973993807296826162258536262148941112125000972318525344327921374595753495105598138291791724563058310934046267562065785182401610645940716063387457361654152277916427755744542700015139036770597222975266452659093425516209203335965725574233429040993632324722347434740323638633035746391787639612546347503290967019921807825651055915579196195559133262684340777753546045303604635658193140895529333199688183663072936877115567097855983242457597759330199161256485101321727353589047429979718373637046737316481164156975436141945726568955078965819734185035643184442775031100115507331290771191381686757877616284296871368061609388405582002590758731982214467837283413189655970929460797036939786007358606334874616026100226391615034226607956626250961850775269870501652055127786822795589242522235040502179642344394102684755689130484294280370191472052321890082216204857150342852029218653282306162117058128987335491353662455882744885726020829179731333196906351463995108979049397662311793448823287805871724115338535784979435121332199644848306640898658327333115873891666681224892647352519244542999022804317607642528358199949081346314827587962742554598562248576104807008400930339891508716711072689983639139144814558827369315863610584422679039831055106245673648316269096890514349070305169543727668082395455728050630799043259202822225842638929135531638934988734412349412806079927067957679847809512664487617290151236517081126030404472583747937874675182460135835887087286509478876622714916345012893828214504397119950937357827880122795317357386520700224067383510665526648603176985652157444625936338921071670736755158453007381755956287750932058975335102375287246336703241374253354271889435934917812813515810361224338100942233880145062859325309516805488573254086704738359754951018698433861345596430615022239424914492973338203130272253708799049606579267807342483243042083974299584039349333994473897159946531344278993970310780164490275100869395170608605620940025177965978300113268921008617092881047677359136200512617065557916482876239643165861203476077446851962027828177107415468123147670977369544020123180866362214461206580188719573593255103743398790192374977645895300973333512822955004375766745160867540654934449585403297824670082946981782600874693390588596423244478223336248641805170963697460862710164974693407323948917057333542968361540143421171833809640295469588357205734573170913909083077684758575552400711268832697868723799466749395573350218381511905073477741330609820837688840467976166808529654741182179531437421560239192640493295299361552445016877137042151710858400239367110215473704141436975333000328002316298685763789777385525820494144125561576075359139179347435181143271162080937668010465678185244217741149284293733312931451885502920290105409646424633415708502545733711696584007892826024197726895471892933733163755861566658789264307775761066738209544277333667702091396872668164757416965891087137661962334242737909370403021597583742376947260608035552455278148790214335381964531350042227877025008685680726814147959433163643584189926588847996521311879275819539194776263983458325032586459554915081514616898485202152552257921384917654943612942938572297158803251394805811225295934145753118220193094200823076701986637934873987258781167489847978347026324499236955906616676750196273268739482996387867051967428422288940407506474348207237269148046778636418079851395265967505982962304061390518243271408975865649359318287789146750139690088074499635966586637902829535634780219792551900104716393266621907159242092976505011029741670315993628456526750916900728622712350483828259162559377156784273074968756878465279189915451949257516885678640480718079765409769982121312682639658081022163847780353895058293569124527870115047024369051796274511768329973866022795216639770854455662712117671371851432836943958805052010706193637386435556587788022388109249279916318551902034009760819445736043376424951484886632675940251950437468916828095141767550029733263237824692780067717774746169208523726783093136677180847042880260780507530973704108905182069318601800880827272600507837426497749883360619912738768116680829520588833453745578426219587199521051754817250778671228082762991156115042063294442707273260685286137495721396612756924200791013978425478171214285797652869315543796730639909982022353190729278712684634020292209760747988993788959441160914263625291920844165025824995772945128701010201721468540364064756977866569789786986579376152329270316458544817098625964863907902157457553832137645803688298094404819354503810204661134774197103349443833087934807263335482964463957912368628985089609089350039484939203900215337576517330446741017185024166653262922553828636425530970991504883438768517478184258721272850144301135519527491342576796183647372665823837853907970289171453670524054969019027978060809916700191162319023130526199459740169748381979387155791160183817669311018522034478864721706094237915658791029862741530413503886722677264358018213941946121085557860858105813587791259914315039638825685725453260755023705952343655879821939960093641006521049705888793876516586167157128702806530865535792203323507869406210293433141377609827460570581192809674132907781527940627480150035823092507416002282861293325556731302666367255771785274079592748339060412111315321843449635424967200217101649002025644428013400568588023314645745712112779747887339034125271583877534733073268882577374397521435324346088122521515896930419216748484748296058704184145611076723294586452561738221851309125675855616460598746894991813075596821772136995257202700722185534303696023122015291024846371942627626521960743958461977387312177533580336093797970323515210305216871050704859737676850143745058679833568643353338279622450087928519258683312629859557409363650902426999109114385520893210470719061959486191245991509210187330077352447513020578840466968404782586827450677347597187676500991563983393190812349857501583064906519550657784276840831443779185610098473068515286705085377820305232000125974447094448898667143473108371200767490843000673580965110573970774639933283480950141624045869416296120148535116406128661040332103969354471539932474392470583744519109602575170461085683114026034050879446391366104757435719346433945963208281557265783930143436815530502399594403228231740210068421775849645012770371164830850464101184170260323732987508419944896952463340992317004332475600160048524345746166553539643685156556344675957091959931134219665830451693398599686013532265836019357741659550900519933483486172621176616252015907060834029658906550759936020471889409215519846385424426776665328950249874440143690138406381077822807210108315337160652542286227794871637538902432696715981973162398418632286105034331219102723004070094822497357449459510931534814958488097694901106869768101971705927810481397185651728351681757666784663837365452143372496664358309748486946509768683691724865465859802383207978157235192634125941261353638578325295583867786400566715656017982906014373220840760159817826223571975481186883182781689256725887785525688066255988686001590232482227791617674337289104392922697970614739816218810927755861616336462166688739780969103609380025728305385314990567915775984345624573224146569529247931862058730003471125669570864366527067829145679289041041264457507465979255469949321823689626599317399385830963531931997566604734473670279777042283322336944740217189715316975059682744351971013810959635569261824968594422416044581103847901515886744760008293568234285075625798903795471177855625728292580793927062220045456293564055628285320543423540934247438321959792792137343759707576274811889391774661531321121947008717060011897775597389286707051471387454951148915588353217506113712720484124038858849236399473633714309390796881992115554749328102601788406037623166799822474465678815670549441884603942495185342797488733601888109797289241170955319859561840923580912353411265947695228204598496506869736853216311272299322035188360084393912704813006537286522915146479371308319601236717193034186514161598942394473298604783122493825068492464485094012675715923545530186202137776575398544985379661495321056626228812787426515959601175500573744203900453164270163113807541164604627146177714508669342645723643435378923732071171546263853519474437956943019301279803132279431594714366393639760844364158736916022441036519899569605498740733750905446703108560726785759435615780248645076848463408877723852816260384953279657332602830889716702253839029455902173430415331033874307640856701029568379256268460915573569207184222558325487392576514426361044546288895372169250728568393288515643204080414501409282992229534853010979488607671637119697660515104104877844686136847736909992306783913370135172667387422145711932447767435111744843574085287893064949645448291751882055943726225301797528341536341742339857729214659960335820211210266967048066706635881473251621750242386572674736461636582559871416114723280807984990608185829750887156778758507804213680408028388445015599553271844984544167123919884038680178842348176006374996896195500842445748504712559009685851753231526114122069847503752201872053998702083409534608823282751900379658094502244757561918585355494129854416008398496627731719343428311019658283220518315008729965017329511776797577529287887010995298186613896863218920161494767032133239864174228676590731825176515838610983476901330007740733378946899222563957207222086516428098117038914710362726673892099466352163149888055483698023463935991325181588642057536322067233922896972477944459199306716002240796532663361010039667461387758179388748556564838932769570464716934682211504863950590055424612943908981792829764578898918822892513686978528670690126599695302940029749804608704868400985411384065492706207772615276144133061146344583959235177153894398990061485056531418925064508847802866533444615641655152402527265709981383819553944706731450827581511809679026456322235569680798171543108341157264264920500478889561335840269961953372647771040436751454614094032104794227302359064451042155995647418463400068612333669098684117120613994242094841443338895362397185501214795979963631538031535186178981855335337177613384972651204837667214426572297813484676899143458721639844151525606773817060407846110041558235680208538691487952136495187605662664492755583523048924660862088576877387732905960006460313931569702625054593652786748111984676397136242788568746615193403700411356866337033133756447172353693296370094568517453351889547390605033827093455625522850356440054586576163560331169216582399481084201191058642542884138598487759808664932355440836568713532868624327194873238963904343839100599654914404549247083753412952286033990955766554127068220209223857041992735045930110607919040490812453981427056293676068836406374123539548944387141128779108687462726072025004486086506260391370219533103634344569590723131316849031372913197569739836513319275326004333450175292780039198517481314233475346993522970208268825143723951656759678497317258759134322877868710245652063954392092826222601028782428035084734782176467872195993291458565317502554745188281037914951581473033754737284781745943647701410907958208197343489221925617074841496792741469805889151870851587667360211525831891454412101529341652134121383221961607852956077076882671885466805319146946553551113990869812598243982013921095742984538492434095986527420675323166708427854295973209191494039967074453209637575701446911596407996632441204465094626743040387252205677578260492837495958865115722781865727101123526466938535797752415372743985482471912659293493334201921459924218374101611299820680049677074544654414153573761846104224455336359263675176734450076817067994535212476449933257896845350312818168425696610459345604336036699092595200266952772352845535963748250809215050405456124664633944922427988694102958584608110909626887024106495466340655018524591625148676673566759145855346126075743981843763225752743487062527147412517809148034235209509909762560645729491178872929487443753653448647374014848140148369395277815734701304122542438866172381579058763324768720115875989459184001460801015695520773512281098142380653731091865460037215759230584701968425573437486709964695358968460281725412117560021710035058456617880876800858939317258983710023321193610472507646885166724866537231234365605141823661106056064805627110241554022674856879844353290668108916931362420950436128614249400371471689414052294773820876570373753401649412905985202177923057848641166557574741352368517158773572570380648306821007530155918497255275873911978750202809030053350413955878840461865240300833928438895385366578928825293508393479152257325045697916359957617005452210441644517506733053304919161304443679606473549870117671390021668766020601918861490279845455099428314715062592224551000851769297041095117210304124118601022439339356972196367283948146814170172529441613180612355619694066804706573553046122757747847115072568145397311803131487260251965418143309062994270589500732579691995996383054233291506467474334747756633977489929399119673158915855755306229743510760646551344378563842871495554885798426602431405979444640255556318834964598260920131116144497712337241718550164068570734202499825052172291619045460788285839362962513164199982682544000502582118248164685263804822312437500177764897114720236921987215674016906142366444010866690304107332954157243054879397456651814709944210263463481995343630196382521419105447548279298185441562257278015713272153855090347496052149816152062745469434773015897265140484633030836337297343130913998154017944144602386575437128774834804978394183134612210415225679915677513376686180165824399144000543711403653059836330408272596311422314856780004818100506693862537394627724282716147198762891512341866107495275178005968756503708994279183555541674917973594269625103796805860056832430853391836749886512134571134533150227444517414479124452540016751003055121154013596581048640782277406148298632790229753750246045187738974750154769790947820640221365315642530279900850456754291888477596349668701663600513899401179456274315051284215926542949740775547614986740155242063879184705524648036320533061315536616201576925019441053080408732258641245325379533026500011031713173541949145173868093257475536294367626077200490751220767809834083502999092608080119151294974184832068062081845870044943745948356329244963861385500269047835674835413455001395660130779806111894601608728056696821941163358878424919159109610952518520752130597974272380700136763028486775917942471298685335231733702887716035595314152844522619938810227089530780699521310565266220215082136645601288758320730280299676836293459458566482246142136858843091588370409805261583539167552392562504256763376770684366752796547201089714059528786691626551911977939826966393818857867877010010804880642672530141119026735008195212832953042301309269606344561245773772470247967615930694131055371654905246300416277171849434290545987562979491686060355900626955230265996528317661414739231660256482662624524505821271211797559106860457819840887847851230983053365087319928127867175364453613740412142867754505627185061780124029959908783163653618926580228190988197477721684665018249591072684004374619488920942720514585018041777082415404173747935094133200298911637849053459394577817601515912382452187326585494809778205368863397862289908677755998290587755721208053132291913242195087257786385668753361241542236589696226806935518143906101779992014047573180024612075799267264190189665462142490517500265545237211757132099755317720225185743011944381879168079295732041556717618898130388671969340551841594010032166993402588053361881125448602162584542064750888520774207094062411205428657000827997267749461176952170182204235378452015084914125000837116335390435861188941075839881317308671097940217465824180833438154821489981238025458472598385569868949853102992848111331532234510897440666292704259879041849197593510788782108890101641380456501651526818035901580241109094961117235992536668715943854821209648530209658178699421166083303819945536542459608536232261204674134100524255575916310465658603469338229205391291377131487869511520819178421620025028489389600280846782754408882436079362636780080592595943545601748240251834259625214220182770497216682687350545691774646296992858696183491311555649736052421339390647717342323732416614714125888503748107740633767711579160096866114672303836184822688424432617315600363721568679564134615203514324872517391565666924430674543601633422534510722457660978510910708807231315481492741090565647104426229245625640690625514199915634726885043972193589571243634137596763771791709811347240453863304056628901363656091966818972479155449887720388705761290256873140147126008270616327929357606450772362897141617091582662223723678876110024598108698621372739542926485387554512912521236268037630935062867522455428124575477620374917795600670628538812619295014774104865968691897889024805051688415893312995338686339292865108816897136047539114654415911525884546396507079365476703062147638442296348756493619331287522541614627203101780976424904417305573258042723006716358308464377861044246301272518515604412274368009268035492577041150507616694865248988387779355937962021574438911672963923270262539422931671512346378114963469578296063844207093705589709535989036810371432391773329135991061463197787413306484148054714117925294209877707398053651196364811438053880390724847190612523510602622086249533658069444962658920708432325998447400047497380185407629952704548943560116958014072430557161327850968222058591303683533989830365212170799154055180038430268541821015826635380498093585462996137019702793244786395998666145172427600096743578855230935641437436598708346066401068905625086184152349667368709121026961354386768476486671886910630921213227882630864668340076165176458121637007132821042015686293172654218575141816751391319153085070636970521799269435901929662795592746430753933453304470206082616463299833001843082813892660444057727695366292004003780223416978712245512768015707802280588702475809112636484670957833554088487267434915701172352008865790024783736917426592169893903961885093626108846623020641141206741605230441597512975550835030736291422431600277724775995866334961135611490858158045236289167662227784699106216859991751234160280942193695510123418625126940788183964761632056783668601228839472275600929760361656423815254196245788232690177409065195381165051563481572145104965094867548206126215627090598261334721135946040603571567141352084435724442504423987194271510004653260039777104057011707534513695133392838593605970452903477213971511297676130250853703311287728063579732194353317364151235785796629495106451376120270361714485273073335898751719372126458142888367822185268643552763263204056494156312788661976926853367818092581767143852559458342021373584451271265607341564780159691614242007150884380814951127772587693309586515887734313494993724413038691312021000686838049243753193278639893596825306168448648366094242451713375792045554346164164855979978406925774916520074856879637833804264427021632235046547860475315170435405623531785872665152676501763271992392668909500926535119360981586880320105749271492128419672806345371516978723210504181908300365738818541106581979431574427112215257664986034876979714003974250233435548584145465936909351328361447661239930232011078175213360883960969572528327268671873416480181547319546216829680988520281285816276763026097502258631438722746096187652125991587450134365325831727229366918269680666747771234616579840916149772856222683402302074313032559008023166104729998954823796602226665890223580021892096652117601255569218640353684485694122404571091143512541833681636547705511204913096416830602396578427331377719677226378431535075099523948188700960908602102879195813367807509308150910163014479356478658558666911545753684385390299089497147169219292129806396090400545585714891659331912911025586316530289804709263300406395081515385936457942711298950073170190741360911488301646533623591008007722540804355275112500896202604296010965495436580487211285171865172085313757640530758166799873812061762656814891069998182463163941828026131472079436338661029982335087077594153430581538740108645499167289886426239118868588621834074375716627740043845094773921489690853927507848336675713325047091549498886871511945675846660832364069271071278632343984387327183501775802474951953280517846274919692877621356249442393276836632246282630750718554167421811538391166494005842915031381113578855638708681606713646596655464807827532548095988054187617831151128080230839644149181788385019338164416427477169520315064997607047290878403009370239222053130587448749999968119912951955827844822518720427304463956055257493586246198507713967015021591609119909460929228217368870197464073637049205774229687987445126476399138844315739664700614588951556203878001840456867473509799100779869370906753083548505588526987755857316365160641139405928457529361442509372305619717036161245676581401427729496610126422667947849890003707756917258319950993016035638092907618138979825112555530951835786632957220110391230913133346771134637947979933778621161437620201376880747017071900043959541560080530743284540015825999880904274237671599944819164860508127444548563243039785809477797905941977186156273978640265555584441992195292772124033488967450718741177108336304832068893544028034561944988971393317777290032530872547748400702919123814092401844328710523162194074695444422342594329648736259042934073215593969095440848323860738982671620478364640403988026459679079637576875788387010387659782588494212745671996938766452643925542377029652191071515423121483749879246045589647472442929648508941906153421893354851464414565978522897155226484726617645457602622330732341757373741545342193202263809431464783858561161600882931673085343574891023158990373883970478354958158826323416367506883913564323036098096284069123885416848364367745518037673322525799303391518902772874866569297804483630981295402257517902692730420003681023232660968091444222625167924010960384236546934541869493698654402539958020656746946466061117851118624469106836790815178771551471326373194587697504257428758957759541040228598218825403450008198958107360687891191928972256683468057476187918170245544047108899235541144930428780726308876677377013474748924339856703915877863695426977011785571966279496263405085137907969442862414736435137914264598081015778348653819423444471600351908091152975817458536889066322418999411124562476167291782213096614938695093702299813557109278742319729944399810402449474138367585996985926527302076534041601885329107245769675065668346099347762942718859504487529755971369679631450446912518115210279338398495011227212205110396899269504068997324535117796296058534641700642301340392941367609334438061634362202579457814225224338348988120335103462773530436596055999763561052755232959342512638555914305864993387585783410184236639200400830587191016330640181110052007674530298730969996094897059155989395784150714418624157762754270383224324009116110723538012075705192285139019778800288716113559759113099994973192820803792784708246919226297365962590676122309393647810161507780523668339129040784873212218308333425941697766762130019872547084686213681484164311412773627384086028535150802139781335561367100101293625086878274152570811633843098870891954618099636111784156342860310267620099965532959590290772245980884230249305798754177696223134400788888663174565868890899549242798640473114320567107482197613391603435714374598515366632591367972058447895926802483722482267128312415270677215005581764784940691845413871737410214055912282851617491526909425820652417815979110564326779250335265509921220027132389088498426950749744987233107895819845588387854414596298230693346245920238725036007061898059643888065211734058921048187793581075935120126932261960836945822630490901445417927254199765129388006206442244973077239150433079379958862283022134359361065299514062631133593374193819532066837736296163971121832890361208471198780162166587257248610439957326880599250233287570360080099579421724886350239170905039225062461276323155688057551648053369965932953769337028388841566819811342921942958207926591455654232404116603889993721202412583448589675250643003224705669545486061865491761935239704633857595958034121076660488943920476473672700123579485824396997726515976707357508903071353796939431711630622541515308075562604631058342520195818800050883080778716721946194154245389034184978764402034812903343650714683144296105752166300105363746284559457657785492015208316065268825913851796614142466501526404589630710645749359114945434383842788021093890814669576619507057591523089027136316419491948762669101998024108585097528018815606003498154427326159643459664351265241454870995228667569840635353827427033366797162837458168519448136312085392763084256352976533611926401487596167670151262925287260367678792414224312191239401195042907881303074156650563481425432782478451696907155313310331765035195061553727970257664873605688110442396806980548922642515183876169575673128626019977437955369300154809085625154130851932963636221353723519328654891752703372996470394100673964103386742465082120250193429749016256323405049604407756709336465118200969562945851097034765882780812919376505071407732190041521127014732760103262551052731118821128873108303752521213630199813489075715149276918531377167928647337421874042973844613961178228079675392923912549575135126151924758822283944536084140517352704870003183576323825618870699565020412176385280870054753838638272280694773631435316518918824600798123070471526751781501492408881022798924147496985777886748510858258708541725795983781974482806960429210305345859533872458744828339113124355029525838293874001714593068492943913909653417370042397307429703239829772578795780553093632669903199599670465412474523323426455628045333527853348665975671261306516689669800283213478064881484418125820737214568928148144921264132473200120755661734257972109955183311342330701096333490693887214226409049419459758225601630051841088661801428618736512400433706444960961320277695088720924805350484518283399674859606497135542537008183600612474182201996731734938708815787661321731681768439108888462067472951937962038587544257480078815748373987384963429045547662742132731993827160398159866336740171670122465163974719456181482201444291752431308847362707990856800211049044323472183844932132647345504635858420771461103633328562851139945603586697660128197554850890649200446095321805322696861728951459672887386589986803953253367254499229119185179695003731409779088896895175506206296684279403804826610083060962528670983884736495583822565266447492235527550288530915147491596355600199419865797937950374827392169442354764278049225490120633667368857282625986834718948121627813772516237059968222800202649214304246529592273704029324148202652364196114871319292249876948738198347465920400840315900451281132110353248566337840381059678452204259365625150905627426497504845887704390291341142725094778209842462952385266433015235186110630704241602661604827700255054662832634391712497990726967104880349194583273738355101313449174912420237584307076808153006206378929199937352694416930507895692035155943814177587964035425200001335102768109182017942673035244803468399700198433341683317643009296731833370194796984437649511228487833542224002009120658254695499529666258909685226790328024447033008703951136403299754080545186561213081060633822063895053516472198533297857555818343050457257142805422516750322147188766060975298635600816082296733067626435535792125299364857174528265047356426128589611923194236528644039995564507977706317554949564118095832567182777373091122033275659856509169206108628021086671557966610635155391097765117563146360259086159482887386059531543687514568626707972070753508381531088930995254113099286819241256407751499598018619040159154931905298569806905421996307189955725659342294672806206685230920146665568923866119522144919246931446276267388442185088761026442096938882579221169964448160919007114319279165032573967645086082914927414306980545640476537711818628497536643395823305210757127789543226758147364956315553013418235103806266927473624332535592997010763450824250455542755718953955310995030713840792901503781636951165690204673742133529162298559406475735515887925263983425478647013655322291550896307018571075494290087707195595111052436989849628255844680160590859051585627183646183235669996676263295949248409501486162724884714194323138049135270976838112593347289609330171759799776312109327974448397938934475340554810737237853452610289657238446827959196182011537367317665800118592875864861796345811771815745182665217090122173053556340989381025329139214931672127878727544624129676873417264894322211843081913221650647383055834419204681751994532504015544138129295819843927916329075019274908028347089317406206721321262222151946028368755919061288264247950022263397172557280186193190378488511930756876293067666101955776737154245174313069814870238397752973757091080584069332467609721756111227870062212055560792865913424610093649115180521303071698365616366109088583839549956202266527802199970006052933478819508355098434068994876319428368352406035583091316335170697004847611862432727790179612375363071817720927866309211258488413387011751117642249337623953675058762016238763165091278075320262233416887331735049518325290464889282203924295024292939804499433078151317260500793698139673212204271462924132105075664334862199094829743229484955813925877494031442441204805259054352853199533731180925259931564406808992533488919010605552453696597428091581675502476006405325912945528811154030460200198535276818845633700529820052525687817632434605150711246383090088361696598575623081330090499542060884515075819131702039834505846404347028276977990285169932230467727843128933541468969600500435990914703220889781512313031038591148041124165953434694558835505827918829253656519088088368697868298655321444277323642690613311062933010846383475083603934084631965827445173592611539236012685775804409903795544659035708077431162890080828040217156955593947496144787444211464905241255814220464268772958905451390433489372923248104850135011684675966140509654667897735291324836849262695545824865614970004848483524714620568259408259346938215300087790073475992614150489467874810941458767796010613637842330863493709837227432192535414698685669986283303375697016574797501224488736787273289575093525530822613376322034445468250969172057635532082068499466902735981823840114640940544361711180496124827989649510976788238876326237382815786220741304952496331577324427382159208094434468930246355729075110242055824536185009627658585151363475618412937395945801206800837879052671516683019123189588983008399841880169038031563404628998698011929512960257100414746785809338830160407216242694875600345476267285624328091625015222069126577598107116138546622701316333828519001617680822014714061858077773256318630305020991524552307793260056066270429534979823385524029719812608530947911439170756858000141754703101765266158824173274071587106468568281346236442196666866551634093097673563027391846352914058391469914383034510214171199996433906813679696313489792923336027166831788007994722373067330424253335447786491183291368251758850959190155096628360901490759037890562030320528614902760012729143935638797835973494948887199688276672597857248024389280878734450259916191858592684519786548323139528352134304687128209301058283175908725847583249712931321785389949546021947558205651358514614164914537858602182522438821223896338410378815071266914950748587739211966695540881577527107108593037366578065261595449684769532405447347566791724119724584974654685575611158151041679420042650191180652096594588995217292289285809112546670272913629315775947869529649880773446129288243536922342919939023514015992630590495825202955366481254586132168936818452331885833140479022907963820148771354327069395469256603665071238457018198269391963893621185822670885194083332134365188756127321906558451429851855402819377278553487910171595167216607414325053106348435815100361875410545452744742140938295555029501488652085247027225036559278728095570488962213863045823819208024088180873122327863412896133814309593446339500646223991405973630256723054039173223440208167927204188224052970853946233603009229372032742727460536459400953551114942088747304185217711119100221888393823986876608035802990850056871243359056505665859115124004235320286015194836943172552434059195166174395151084760615832942147050818539015113057350004282707624734082883365768926223961750472232755447507378643678600892201114129966390088535961688283670293162204664382757638092354894822487648029950593122849128621630266987176619806081399554860004773280634099536541727975309229855406750867521364589797565714102101514753123905122401786259675395554374278615025387852662835588305944593038944448476948648695817603149952544534881914375886772114093907693214364047955127005179302643877734804317085439613824676695014877962130448729061681272635354507016788870924647631031705066236946469323355016387269252749967295240234472134256227525006372710056708474344490397545231256944478129148194930919010864749960529199763895556236773107394968242166151904368030018926275815733699630387870140739245091229366732000083630028432983833909710845144638428294305868941831015007233466225989098292881778820465466715491126602568156528370765013467454339718462164147703119821869276279639848824248211706475393224401757836408603918329178508161107548669075022851139249129196785655149977530399614932875108214978363683749227935817210516288599671210984203696943863582809068911743745743433442225705160815983540154433658044547831584666328079883097126738557005398419511091629120764117875014518710123293664338454081374842156271705747982834190525293119698748862412216002355787764981494099975410340548291129441433443505134234786908097024697513510548993286375885355554366210024780477038591327271905158909634787860368377139546107208511472905031084527447118081660516912996030387967887764710678336055417293616886861439146470571551506126234951267662923169696638223048308282531937328982827408002917105177836673079246329989410905235105953428742433812998058272135121443787307208244825699329835657002171678492087598496991865692842166892493111159508314202356059772848336574565967233935911131029140957301724132433866591256411865317195390936207023475265797403268081780048740159825268920299680950551970853676254538969414072524915148396140671216169435074842626194278729295770106088874283220107190589409746545569045618297736401423437802551412966779463518006470434912976433150913079675042947062997312750406569191086324055619662146552418456390005774535583710087804422677240025383016961267976573557978814226293287874206354836140113556792558707386468230883875910588240113431494204855445707298695777542730687746754529760864643904561931290042546184718841091067465365524382128775281606248294566081164941875716090114186876315535130435377079561186022556238692043443301088034633959954758099214330676675609410064096593308864794446259380589183701509892307495032540772953176387016455770856840943819837361486932300963845353958646548908782852550908584446942015780668436125092012485660200133507250886709569438863237704858195686993430745363496653772543550339478332728498418450488202115225253543282723518896348063409120296848986621942153209429106799954875710661909645208754515941269511696582574833513672131988956966419891397902221490028877864177715574128680430920551373543398287486124595260032014882588814269043296998576097539384566751188375060794375649547412317294155086930813190568858004817628884022596391842492321102705650731962790421651251127571211560162795426265482521728046841970461676348117171510253091962245211703815532737045656006797902550589259275311704743012678675233112937297594397099233872156954871319988905760373252520734957062815168417186469471170497515854506391380655914749718592467473051790546126315466374977961848245538528232479428886940841931504491692214947674778046482495189805034235322548706597823141566435568052343285204756955838275698805701620250871574769919585411126801404254156441784015246462632707351777155346568501017272956220722208108110336695190456174740921337107241921149986834010830000352048395551747736596827149796407147255141796803078640409519649243771098212874710039511599380774241796229267656670530403938289057452719048824305495210902816147519157942745952188123201713841961834862837664525555990008609606239480357216272636439746887509905451346599822339368579414864899079780597405057281833657975056954436350008309645944519725025225088622292078144983373099765322480114866649413048133509691560218250571429160989613373851425939699949954904685000396044268739278951660398810757893875437401426241277199600525567814683909678151490284252337915664003061588624490661169599602891604168888606740818576941121555447342052380255839094629891553592431868689788218971123054473987173716724689044182682386006859264279074309918464969010122028761195136952369754673223194656008109177105913539839549245789200145068117185493810874822683484827327650100145875929140512544430085154212855201385985646840970757878337976477319565812210837128478212016775269222223069567174675390655936555280437029433637906115790119277748178474743853810831579290385205920834212631042912921077127405618750088591798201752996372423503570241873053602797471315114326100848263601385446782384178048511151227002142013755310181352243205543853894741143755215946141746646087331698098410769636719825827165453926987142450803286167923770072930351181068254989588836629745533063012809340559988636461945910699757684767325334174978614938196650809895742040448366001555284277173546226064342259089741782619769007939717812030295756856886171394443026733647299206406378745184587909617095023730662646243555102047287786153499149998042673948908328987043840665919942270951506410540556033586396409937019884385803877413487253550788136927945813551495081476681308524126262315188539268546531257316111349611680970590364741396306277808526416845709500933049165723204206007759527523093283347518179033671879153636781838909146185683668964246274112768200122156847555135601518527363669586328589496237393105437616569960834560587584545819927117101087602501094586101200083091323147552121199197804502715296019759889831293349236151643406135033906335753843542143006158831657457455855788141715632284366174769175098932714843948829902257698864265039999699114104181386567093644325725726063729536399460596659684969722229705201273953447583200114787484447475043372200302961445295994402988848349646249907548856769341748535035710158396434804573174111897466899885772261887090230814308199562747338737882598343818388471892784907908403755292765461558979938598454217339635940256189337216817990019568015589069052885613547205680998819602547679015290842275880441908420129940784694179240781883438907600508035523958732847477521231485685486893497102002533668768020681952194171479811914189728306058025211200443804180837753416944837449598148790280616552899866278958157072321684655251189352292437493191093038867671794779815551290934963046964614106204021730040814670623343671862355525421126205405295487073213504123629587352222979825803725357868648371797157241612793688618532215906804612293335496194142105966137889331851887855491335330627655121116252585202161172259081797165701680637478991106883091895985923359003339194626707525514596466219659641033650826651395802314713568728791667455576293205056440782634531053059831585613096661833999874211634689000127537242931874026773414796811115494930091489453580841325943281841400119119037414221869703730095295584615573318781198440909295894826769166374403444125770927912742595821765569656150310710601076408880259056597262965249434585006440812454752173419433868086867041077203203188407810557850550825491258059642509108075477059086153004457616270445303501628900180088702671353729469947169000751265887771889799380868379535868894715115659527225341479351178834278393445764962429864429626692939438319162944302307365955654781478053738179104505648370149420387232715658291033731669378566536276614562363184389033203639145620953717134206704141717788474578647748419430766999055325609213242185755995528017090239427557579587535094377118006846884934899423666543697511053793911920384876513751930406165744484032081651490790637901557670931452890358984320235610342774648666080683318590592314224001926459233523543601432610738880645926173410992766371054943165137615889279975366091993510516319721537059171385838030761462580089254702560223805004483477406925191707591616743489955506290680934112186030489947320347328243671164956070751368626497810031162280587468926523655111763439356282901125851331355867346501228742941308229850278624846036157217922676313480890948195598338767034080609927399842405160056299148996825145238442685622596924741456520812236206557810748498634168806937202482093204341329360570375044399315205031633055459223109567486544250476155664880434011351352252005585099074611985563682607848965770653479125575924841874179534421087549633994206551582563982218412013980027228810686005080947505214053761887952592118054699844171419319429374636622180407261136472366443559884470262197852366638361665105733014993334348245094255503327008296887712122682349644601030990460712031817202591407714488584126154513499832639785879203910639501240067799915458258079641261971716690474330660397919124436473210265952716465110625766367470885386806170596954745176189336288179005172065721432013264740452179434980660915657778343719108267003527916708482114188127069939094363927887228993515328289244539531139080221707849548073991890555736443725868284203606443988423672444175051915458600442883641652775478895581988538497468773089066429803413992978962160507875148092940127352726209178091098051394185826738564216568026074632231943300988636670670094755180146402402167704849640259013545234873271633151079622438234560288203270599870840379204467085933946303575723829383715208580190061590876854170934389353955587525045281655378426008649630743580424251082428296225674169997209278081374500093033996809298869681815815813608897448980077149763996307884906243955543370190746785686347697933076070096203845180810229856097413642583579430382506842345298100868698968743293761760765986147735761153906495919370907921409314135257170910091725815223833671627106201063408516338733125220543153077867439661506318844605247646137758268799123251155685584924783288475324297417783805797809899951252467806265306938293532448574102841187089294112275614074236581469611688568165721699005617172205556062255326254520114436691691278854939660110296390677825725814770236532277883850541392441787511375856384777641214937850300580759108120306032459072324184034504013069628823385660323425829422455193667972908478156292892121015403016858564596741786082343539926254779641073713480493417979373596054028691243482893749556152004868771117233082003982488843848294795268081432573074322102421095464897913009048467992591684244314494371895049861692234354570113181300331567787863854229871789638716109168968473780244695630183093823075159724238657318696137354559217527821881484259380100185222459825007908272454387379432387283705615592364985115045466064175406666980502940493039713340693892314545721922587481673384707583719453174666890935375922936543405731548022203443801794043416886155494603304710872238792221203759978689052040495502839094272907720786962790972433832948577844405632359178215163710932042480550279200189076212425848904063389340492560015609027251239247177117143256032776012722961173469018908574658567416953663714309749417156415474956020190857229432658916773654150959447646671719796831419775231513397413295304607575462691681146308603120455395757181475131276502251697689172906608511774818163674103244772272908493333298496646139907534750552624015184510361635178707760840471320399232639148250018181736559207595910570934672896569145606285697775543511558344287230374207901255951465884367413929672535027715516945319523737818169181459723273087945321506179730875344719809589769741455514389465660783814017975356770446756171871421814108312178733246093543595036232941648786735308148446130862368406374940239928744018235420117001664349599457889611139264370344358469706341432644954940545874220981508811360535716404427843785017551943978102345876079338821418361304434463842750216297059820704752436859242289683906551776191876434750152910813731838790363210031630035531070902708850731425327064152962485664051272522604355717018477613139014549667019258805357518587339207024714237211311513563116338799517213681450317174607299519606908005439846869814615988193213051428976971053000051619607651866775859001320986765089806094572465427725947972285159653119500762213902617484305774306484055846421734653259746802783808846832932089594465865129216127593627083645811395516765372502855102265758669575933397375426808061417837369338385138875676662954188560392710423979798430252532541894531968195540346480083609218507174322291660633682920510825476474516042204978280439341835090138850255686235772282632560829440879535487432760795279261265886062466366044085118696477800304466489194394125758764933355029981030951937268286248148103033616903113624805620989508235707070730807288983796722396557000283062312861413970136119136880945565507552428784101568740211081088496306979246048781543379874551765402042529573392485315082562565012557209867224641230076586257473717118688357420863433336518977936340346938305933239425991926788908862580312936463500254569268162789649693637132874592957996995172662458257415551792458422017705685477464011040753961270596067321422742688641654324836292083698550950490442416527470738029257908416234989712149517435762114305522078016330059076388486970603535921711177740621468227643733313760579063877212122872021156356948356410992047033047217982066662227505443667607337804028907617220224719475174343612536218222505119465389994108492029428625345930974750399968120536925233552176885079829051480989467154936246441397330485255176252326790549315923010975217030019914276201146326867895808692374757037985004969223311081630372892290246887551298737744612631188374264447581407290478192437881699780178446401339286948053212650883042343283545149805168274712179581589047314982750085493508173662502359854144209236816768608901923118642825554042561746720041230014208419976452180792067452985785011617839265339794630034400226720554197653457247880880828236496291139108751839469333364568707779170444268344740645963564279956903678071471266650575701036664950317047117005434577729572521814708429236663028445456036107412733074294259127070477289985179084741198325202932786218415425104804642761802107923334205631898346328686722898028422426853388108858727261107073149447643184520910983211525486834908259616300483507567885564527805491219626105574569868528386824295082331875777461246161506663737818195491184294735725143985891026075106266454610850359058086733419795139411251176058034016083264704390511420889292726438555460267002193105398368321506578718285697168184082543297264726834403044871591620267945000467973581996689990910140812706449183135654742594201906681480296943059265563846897290694494634556213895351999311924302207540868534228817960464325706050621248169203048563414762027380449960535688237727601936015852249123502119484099182792648004872059311576992909125161629810041271440532472039602847108281976142374977485788543949861736940303907094172238270130647350837160985520960731678448673756969129023520179957787277373538185385555782482788431406107848288126615929294826850976220877363900232468679366916716298510657146838054576215645983715394768162469383098081555967565520045552574670744878512522104267664538352702944950111810304845056399689582328334304343865103687186810850571327128755379538305987440785066139125959538535790424027343935104231322287696449336190597314347597334692188236146713340164094862143770771445130589819914808702219104159680234364785908603584055832790677772316830534526991786932642316764594725961128561986136263061421116718874739812877798970839980876379183886726055856684294572547334997787986125730122145841361533836065308631618958239710858166053280445239240384740514030427957999745214937616451643773873210886167975999831506836264494164212777058992688085579514025899010789793593782364268892399307135482306439576768499301444140862133754898718216975242684956701102842308593000661799051985107314718305674230340452492060739980442603481764622348343480286730977259704115777999859373509241416612550243265689085104377906017507580196425843665798869706569939614721891998561530916596262641055124025015362700506162339706287029065201054378073972693528579202273085093567470677499490663798806340621478421905336597840329335179636717548757190568168544997709280036556457501789224170421580509225633552867344007431415882405885152535868411469103026281881840806723912197414524707117216018621396942341668749241945437863558508594001323810317819017064722940124778771737696761513701970302353271765464601543115423306401564030896473434691931731659011812190940281441054000633476421167851749951019750837702953994796089305374280223306647948616483210526863128075640118990640814736406642012179509941987539297817540062026693641255878140647972127459690702018009318445721463857508535582718225535699701755198132542712646688233128198192274532447129380478556499463650285639277838549583930164384148008525227580730752020603427844384421925218032972222383966200352937910528774360494973512658360597938409383313846392394154502988192676243779237681421347596418773869886932329520283559283428798650545673294858111870920888492963209405816151192491529882192534980097713371162102994353896567452399308540734109042524728229578560685404921765885002756382785119607027107325152477860903059056800631323371304138712246903870303511642964225909323519668182924341373838697663885401136152131374015726322442713490150974588083412435486863932880185315212275270531635773754448769250400969135205965157445771244551077044677030227094917249249270356761423517004933258376586799909703787872537341197182228152812707923267126891436568738043498239549077640146570440339108152172678087329233991957507286564025369862915510838657570558494965486595885442255639346717998633082172785817648650879482449098463543676201809605778894416172945724009888540614680637345067388115377945158532489005000603777078065264885794327926975788739099260714445501206101885657382398975761392813474213874340949799454242282917386315668963625275200116035055237094282422531299715038806484512305871580800261661654437904005291821528307265795966644885026461820107769001329407362409423445647218586383334458447608586245708047298193250382834012255943112352620902069604563684148206742299926108694869611358133353987661734698073053937904570337330407140503152600254667888463508979110168026855639109216173794191125765483583855986877702705473672852363646090152512895571439830928907236671972929449150707734049996352233035447708878798826441113544661472997056578453657548250594329637356263936525430455498834357642682051508440845089028527820340101638970252829778906149507091227538423038910422161013598375963282049990860650910324821678689467708403498670271052033662183589581780775052571245422800414550491063850687734904203835869695636250286100614434762895307071428275543592825341875627986944309145008240751327600226674908160605580087914659123984079948460764105323783964615153296637870042195553196956577654009244703897257517321908105354621111705575207505830478978562053307879521404244246240558661789295171334253489228822281338467349727243554953497951724224653656124404338426453884149040205461795997823117204828263831844798747696898517987494056353851647868944663737930061357373350407940958752638632431444230346072408866909564084553351345459152872639443182563025655163781303906870770083264331959597566671557657120452889514256074680891084235657005789076285787371620992167086285386347361781800056504029017865814883379792862055129622706817554301504242793765976657134222705303707273279656425247643609412790222538200995344556701539803507641875134463001288539349172699200063032864883887540309336018816189295082607412271284296938503149955953356901202303954105340335594956125642551031681259908587926916942768509204094284974762877120997080328752802274807340303294599298291841564445672563410095766535580586058815049038526656534932082756090302272576417397277239908069160233724969787893179082933593409519066226209431367874893590075768211429183690318142094342762353001331747260962000484992486831559997187168901431032134904790321404879951560708071394058200835939143237568982993398596738381264937433991685527231078911587909742932615351276814214421375569429259438226449763776832858011648174448946721982670440916945840034960795852069064848050511489944524567737790331576548479232892055222251314746950527216530281099995446548132647278205380842473636135790469233098956665619879755249878510235485036494903943897270446484865635672922785233506033024881986060362506082041869400775696005930402197643558116724730010166560042960112966487433972426075114922585778973384503640784847068926831834940090526178930304009070992972217373345175782135360411946903319080069478744918499407477402590952251240816637895523686056073568763425108025482794111269178719751641243136783355537332609125680300475852169776859363634834596840662609544373896764678513820216872062136262921499242172397570635501615526135876873146558775738685446498495813596801767344838374180875177191294445399082085424449768171592561304022630608868319429167851386650049473915694839819749450771937881536537536835009893794581153194942764310929925466502783784068246907535438697083833861768526016700489486419714391051978928824456033769170958220795921682901224187265424858034510271999659459560305092581985856289261513022303003398145720569694306906027641273951579814913692791030213738350758559381070828212135581698531009497253940784191504639152431103239955977781687835596571973878638951328902072301990950357093211109807473159144388907856162426931047070380045786459698746107931917070614860445006593792504335617966616797882188132907561301455657094790228889780135849633677259730148633096790977263887255816761325039793310987092658208818311705844139200665611714554232340887013795646743140162012777560405493376926280373091090342412127116736714181341870006010403072072540822114754383831128651607006020172238748596536525094018956563492746753724898061226326739579133483651257601085030020606195899150443625382046342553875854074566080994960561480494959869210214523607261894398126283951134102975188121161033795271444030713109061111105155077404326078865521703615695995762574818479624651786302140142967216767383302810781494039557777907674266013256545907517314788365141148608863842156067016092965310746171614668490717575934281547102453812615802284417568549824432725855917019634615300482781501623108149074460906911343402081366450794076459566114744284697912719676747187059831527253404827406429109219107392790566836078531949106533529064485957088418141773677470114691716831509828061783689474949713199579283994193327201182320577164132498064672167775831983338728424571374722022783151286027033969876161460964252819315991428039561015050640448900686342262679183555935897668859224101498654863459525615801909846952682338269074113701139536891698635444845816530838168710897265823200281480699699405615008769620648602391379551588945631718795220301596610161507817899017347980864438387257516401681057673707582030231460325210065869978668023968355359115690522414161442805884279430635215312393283754743249505328697666636248489442164969459552371323429921806113551781228599727169044374228599190728191983170760877969022908446956633320347126450969095924101156400137600492002536879087620310914867983488898285869767704547374980553563882885476451141930119123611264210194119900492937671744948858215571101762152758853811066921377827727913805916477643207007654613797511629389173876791931629912117273224752664869714352267321131967237262628239101349399792325034486337514256413019157628664310697888352113323234640710036534655663401429209624408658170007036904055759852016891713753066757026294661991283540222658119995826624882669802284125171671036188207057184037319441203892811499821853741759734595125233727642782077600338508857495964704970352483174575504519408014462631836526402208336728148320598009208177794347549985909245579498077143430351920317427914944516935383543988413036339771747647959964508779197929593991896778612092016428742762278413477098728516065065223783109835720829736668387288435382862346805019718623124129111766385627978120314766827757923931430110773464307152304394315318406337605502395472647764143444629387691977413808481778951663864035788813793399446277369397542333409743624928236091517998894359253767053613889870979303405964459175564930853247430482980716253129497485997015888464778601943889296370457620730919669549549966302559771201854757958302859577954910806002256674808999138431353082849848157029189556124238799863359706991391611612862397047426128783880724601529477160050708983591537702341023620274710064712682326074992711210919742293943533977685587098463207083834717372632356309731091667719761017395365540840974385507644573320420120245087836942090099278194781591763326170765049744318736570016512200979234506351369035555507339570996848063460843673208067850334974171188966173306326648504761712244486765420215333693944662851027223040633649827880240959070807451842801869919514704520458018753055271040042492038464370445429495307376677775037502481017868344997513411554150420679481522240867924846958617369517599973810920019699129180117293964183055780690464620589990131736325292052278346136273830752468176935823082726241306451389386198337239251312504839134156859901142103151831803922233553892858832912942258175360145812846061441773924162107802201478227195200672065001244430950687871411734821079362166211656292232002476856196726774682268076668419056222557985524174928673195750556729016204794274822879322496090321588948122691553392574956385881787375235607936502313640999980481538777836451680991853018899457534662053041862555630089626562895887297393953810409926083930117586058862919863354819598085631094861321011105016431475214611003036455299082662264919672125220466822208682869268530948747541625522632149962042520111220112505232228493832388943945225005474229881122881572518910779844922046262582227602211831269521186169330048146675934283995356821941231611294377717349829265024721293677870416360389404676268528868720951229269320308219522633307734196104792039207255766884574751125587384586693878860442630051397226381616439537959643160951453914389058238457207501061158996429640872357690498390075775946292470954525399065625983301107983141469128160592732121737811609767168490226266770004986876063860081090647267957928331786313046097647797121947576280434756354421715161006994578299415783152650552121918804665279274063519030818254160505523305848628585321104111574034350843024863659306877125875163889952051385997819467932828271230475513855321554926483353087871307667700510113582893926615479336677945316313866759062460531168560312929237702563207649125578378995790858690631587497727623248471813791739512708602524426373983626365659420294743110558520541186392399994364599089343645875463142995720385680018824524938597158435203257394144813704367670268026268058883320673120145997114813743181470815479838209573105657753015653468621242296105002440313610129910758049931941320733307868439161135601953716582283460734059955171245084186766458409801740512723277128835242138399173180149069740469260786935676926523858851208220491025917887592909496307367170574436196920124115654647914357903438782331974895868338600605862375183704757937526315152393339947889785268087085388924258088831683246678706651231470298666746141942043660705928392090265328915292910226762964540820485889950100321563639655701892660908857804152132182989134271611421028914044856048566623435309704531132965028267630614663040330822222319334785551947577728568319742456562173185201394212838263880477262382638570743187451562636303841096988968543311959863417955364693078974569909492391335423315787338361332355330498387478036855728028358790158314759923917990597626280738790493979496274043630369490111916997159663409455280353794355391526935601077049427273321268875816066856603197849022725663194113088856718168557300134791388288696585342333857623724439145417921647260739673428176357220791045922759083320046956946836108989889135939289196442445116331961262816612030514838384944810638692984097342724746181815701705027693184826671537783136654267635443475145875423447721813035314000807481540546828748936433292425979414684619498085313816218629513162273666387477107160451013051220239947616654972959159837137046495139150238840492622142672351476053561986782522166685667571885860963355866950700199645589129269717484114131488906089417432750996587323511045122158641401807485279401812894457985138553833201075023065385285952815615119834209281114663004105294892869990749704840246049002438888145274657423155993372486005845090740856023951940772606210612961618353936258116031521095018661129464224226074293795050923462876032046131781726548985341004169587037566405220618417635773606280196963446579185218926645005407132089999641083261172119867650337502910474798034235563260499780780530411271638776321547911566058835936241109308794156574478360007653376129402212442537371094306742484039729292021885569583793649240770826781572955917154331332580037805389957633531158042213873838624629452765730403856172604768948419208233849995447459979200586999854556087309304035422451662783334327721747954016762610955410108434653752089395538048006389636903784196699863056482747336429319007389412431600428221911143431855815072991713328080180758181088358582326539024523393975578887849707294974847597890037711812797743374152948947745249775052744892961976162969337956472852264653067344778374867151083945480761346865663513421769033810428035153975358845833124070498505382390898265910143755228984421900870410331678361480038498942820211966766394833899999624660521160935781031316500561428534937185493950243126506875303541920624575561049220370228810572448895948087959108393149935291187024321777983095286559534990262577766357144309410395467189374818928918761820004590416207938254621002198145825018504681515443993974380214411333827247844219532949944480799743677716360089378914393121676100877045393033127455076345012512655803213609091592964877319124693761748431990646197100332755590943660425381552756698839868013698221478717914769212617843299193487306869478061791676019327615975537791892975250328135842873451390667763371737030895804447497222429761323702010889192352534108544116379224426394965921842569993736937862971561999776401839170484079556428502385076936993785450291785172497514748846791578404705167366130709961912701270569406647029315119039215128465848423220448121917385186383163171718689109061649721036129308843306830861130509712465412808247345840886837283512999236916497207829080330641832607536542650319542724080541020454190732449718141120611762517450664309994459460620503913611821506286755386565904439412997439106149230024589944770882274665247962034024587009769430629938630466596338236557841151868964484952637577017848188693249306909969853385627845664040581468525684185528899281936919528211284481633976175266733089548516988730739978603007748578404728870794757714329443176118059175348078022024803568856497514093008874579345416724021936276611977847204086430239049666198479237529785593552707879365444125523983836659031426363228180134993287388700844929604898717642126435920868666667659769875607459464006479629904807420414345955227143670044295498445384493005096307991305490727791350192250356434215175312182317096159283706888409977138625295773071777953644543910123166911249826549282724493018042326814703517779927046971531438118534099046909992811033723650758347695423341205442614858566180495040356907510444664108554180676012753612346870179122576588369082571653808595131200375900577568593872375603649040160814264202870964701745364555819070060867769090039555162188421355590821494819931340577386120355079809509197753975366851297335986646327512640119309302328287428242457704988188088939902312872422774412393431173146839226834343718572230063116547386871710085068519583374549153874676733910902534239732611762945850045647727948049412345623121993203474264909825191712841874177407157911011093818981986247658784308085311458443083886356616844364519421197915227053381172500330642562251364854135273336569507386589706879320462807201792263350548872423041056003345038211337678672208415328275204220546375953040536340115350864978924215359526025355644935484552255450499714424076043262810672011250596683270965190251534873969313336721026629249672973097985556693334590474613133872160500407889069978072166105230508776528458230682972764187595715844443517724059997454886258854752254833232234033926528183688041052972131517258956087798559650858599832688935654461854946013743276297642480039751085074310572182340585135635644105021005199193661797676508763822178554951001092996232470385200080451116168658593559138684286567447782028635667922613862388637701584057170006508904185240411941876247437783374750436734368347559717366221205863349148286115380768368977357207571130962998173144719918080427867885923008196272140601553324834553660068240617907970470534708119631421007854733285136437718118360089211744186793109813106649562801557294293205649757683155614299326999076092908907604883440143212564486057309863666258708314745708172610232257969198265470658415293783135535456574813375857456551436819551974168719482655450049355282570255604650099579283380538215822589565778770857788684858891929208249431150491279057111672369465369159105350889852598557626525439726829137212162477438808824180682454775601195928928493748326593469129079330650090104570944333572183243710323914054477639548665237242625776631136340948907222717679190572429406058121084436552378258990986628305845590299278249564712267396771686757343754772282903872276213875908023428415073034371009515673463835176509757544570402967996312114093795684804557507390054080262139299985837259430990011231329202788526162112149829462678036986376747076078333996222335727060779824261004803964870570048953801203956868328598724085982455064403804271125020011711591683697359615267094764424392016077984961766921908761303136273107723182770025196630244280898416168941706078840099231080294015191233568387465565074582602169487994508127671442631845436666600646954727601625890729721207113867187605319980364976964529619921539110532352141185068794580101693949276268406934602672190147708137164275338029048370629862800827157484190304898631879478508656277639914481426037350425615108602479455250473331794234751011149357143315154869257082780697968744072332315173631031886096585137047443949119908379178300092332696525519678863932184195011607097482419900627361231198700471522216137509380888391136087456588040002486038495748152967228773273474099601983470328845857981701054831460812789617193545007412338190728839055834815618758939251616961122992333598260567146893224479326949791322967013460485066423419819838220501115918434951783264291144570498461761758111805810280276102426846627214498132515923770360130711726975258039181005831968448585035876828946569509711973246550701096783640280297492841940822665321805390526032192229741989997572614990994634277922622227013446146911269706696976454081593069757900499998164065273221627425795692000230494226849179806425038103455250943218549974454401670142914480651246030533793931431521559659101240064373400365720014558546601099388523742671056527488945301896932634113311648057807080579321017856580342194410823577264150237690939648061787134321728981906108357644545685499645800589924118129346698593477585332857127889419617031561014948138427577466949972757840838431164743468318462950805068485629602391129368037423635744822682168592558686074387912243324370955287367051212283599049948711390296180162119230487507236235315251821500711737304372182838321191821338626626041572148763287419165755933756025490058634807878511417125178777536281867589409723902519587104364458709706117866802068633724962010119423908523315799273285832664980831695327449349230033689325600951177088440418377391661982716478769133283194449784337387063821793924854244857726339758150854779915741692637912772774139040892420237591173546431347571704708228995673425490734106938282489422220123353473560056103839635016775450255761427010152528291220127818343320062106152683456537570536375032897216304478844504712864842654410899608451174370797058200834649451557871915031239451579482542434549878629508888096903624221932124600308081522967654726702147674344058983955485962988995537031131567757667171796391031093330857301036881070248509678632562054928902132889660525997244880409300532546254107252344189404602364499986651858537394870909566473546721913109073598530854333414963396204732053042917919925132837886251310034602579275222179793170775465966743641968146280898526672592720805713736291429009865624286228184114523039701733814249616577138275340001928588362991042090119979121844684138746570383396965460366883168805644047960773808046807555731832304566724730677046638823354844631402308069540967032044512410708412939096787317885964772912881603768500134386125758960986738738075163889600077476019677150891295594265905964123188938210087186643843259726971640086547181542511732475958639566370760893551999059288763072208523990545278467850934771234026175544720568578147179013293801762823670847168798231491722741726678097982538202626943006340124062840377010274116546197266798359952755850369439645539048164337388126354442243877482205007292531602367254431768652374767319780850876468536847451773428490017002331975035535893594534458866466794512968642333617261095989078857005395393343720044490727907387385810317724196926798616896189174856475048378503087747201569694085089325090103146108296225703203971867698975539053256302219806430134592574249175814308197679621215474926510349087808788088099948673093400733343645274656642612465614211462709680274655188296891414867603041197220184901986177266870927645069382592127942264767148687006876918067545934778058775206495836196338223235104428172176693068318025732230677780655036713049937215905788535813317005617845527520070176624626138993103039524408438302085931055252742930861641850325407153241458861795217178653211976032222979911024253469549949944020093413013311568852247315221894281905541038965928280855495277113081509882350185209071319696659888009789186508072165500463968630184608224358216482713914068706002038071634424954485325822147024744247620856730843108497655860382413992757268856804620227657192229210142941267552858200092692793082355015168502525104815419933539989363925083409856667978890792435028084877287492893944273237197295859827164060260371203989059024837000162327877118858756544139301730361262748065890749904468757975758404898339429247736630305318344853569310147206947349329397806780643496650193655387968453026789183948741226833786603416925139626854927450743458647293704666324117131062621829177014322389307426576771868678950951476968068574428114909597096329918266013168778604805321022119752492766280059079576500442835734135168227584206147617768159745505852828841955050384829287088321681875802987962095344325384863346191633239273656660211257454806260320874651535002026249221229342480838615499616636938671047453971742690747491495205876764410439740327468671590207704256140567404085792033914133832514141853678910972853105911705339082883120799778264040026573470724202005438308293345322327530314641549055978256559126705555560606934323844591832816566850842573712360110665880771602466226517619609968863369372750452800573032131743011673699984327797970960617530305342685162179370713406430507572101557202582577349818314276091794008260014147602615252298672089589942083359599306253746028414163259463308524686726130496836556212592766177902856636185028221224452853189220559860204595144932963686134381559833481921010802538565851287332794640201649444375822027070570111885432418069378372286647296308931165974476653190736231383383731829667049672746804636470643729280994822589962895244183079659148438964872167974141508856174079371159395904297198057403476034639906630075234964066040311594783382640277137199637941783097342295526066074866971666366995002919256757485656255478678959489418048329468465560885398032928076651208720768280646850169373653553592591681431530979827140521832800488800778012894666998511997371816217700192009863031592238010991408807510260794030510587096413102730341517270014744811021177828599047759250703961410458548790180086233670181111361427207346196141165384975675703626998220723868599176348503054864042956839202812272613534706947824519231925657502784912332545243032790433737808056835399154154856002909738736264582084277410826655836887430452938082474163617378227898730436865223047161510728848416586786691758968448015519791622688818790056627938190993722477161955144338378673986048793917236086377009670607726852694436915633607360697194770960268232956112704859803483973460642861023321205027968973989802605363877145756260231464143254306386257761150639782930576666629594424747483258042986131628153311386682423213097130619492342034590254428552030970444446663303584648189464039465708794751953622960834395707646791755604358198423952840180241039301010397933141404237469150297716661848107254904143276092760999092633555398548048896538750654850046096057802575160996865813686585692411929906475568078747524926499492106068982481539440999820349647421306838776973201548030750100890585684149962480540492177748562166272588959383477696792067518278381438124378342217541239512374569530243284948126565848612030843056018210762379975293480025420643664939028545597553690514383507440275784659745927482154670351155931857581065032681618891506180790196275026121018082113795297499060024337669558973814120122602137817633488699001212441481212508317211396320796628960805500410308307671680962678480119094926787198097838144161050321776246184729900023974393856647471278060737760378122331516823644080437490270601960636581058061342019969174207047241977845326886798201805833105779590515184564474292768742974542739210426023000385175043028366045201668596154289640215409684131531721962053453008827706560830349784461874658775938904048777615605620622216349460526071949591748668264473578989235830996559930930815024964382295137444461901895264667412742677244476734121873190262063213837965898835382033879313602136116073474528851938751915380247945699642403445161385879870659330546958166294967334346038858709751230106339333855782324341796044636813909788005496463819348913025597858967531961879205237804288513382013872220015163764477229487755060089311871625761945961687318405603957958906686660824000227561180421323390156135618221832374810748265927400637012483136210032237084945128909674302676368592219807277030329852157445824395554411226409166744561884516948549850857399996658067609556216431495335429842654418853821233038721207320176134546582999609865271750621316235288951988022756827531809942326584555288063237311479312579808853105767536450711763592585195439189793426933516168918226392205440536990919204938748168174498070672246094238659577048395499524567898976236876919870769066882223394619680902242883406907107519140516748732133468017133051738794063316636352037960864727878312712373562535549672625863957069156013485327341586724006427181523163335780744165109721054899738434520931912503064189382531388599051210265119283444724068657062263484154520026913344962154488931114792435289998617667370366855319629536673728685013972663167388314705274950369722259595929313631445281716264019193284440168670317657847513183340232277861664928569451829255593220931653264608759841521808131558413588526825792775394232583984577418138701009507552094554828487729243769541847561101627542591680030864575741839792999704100664569055102860287730464288574817271664449465107326320619322812093283919633683464669459092403179677163657389370297326154011251522864208615181201506330512881724236599551967688724281959898198743795105185614350334772427098396020366935527571952913824203344820052094234560426687567997506611933968975303040667744362098817310715647863334843154963878769717457684903662363077049380056079636130376552113480986339682609089656608450476431249794457058160053017365801307627039246499654405980377638698479713216089391837628426028695195331278157256854704515736148152090607218180605176823416430377724904101822090492970859834032441185642719209712573476652738323957775315465470489915929008492804210778099443919675427409244980176213588662128395551386039294547280983681697422589086702097698518757366237665008548250371986981136083120196180872233742050270150284261557384418080136101805431013933466841595411327299014757943119003998418080399357714696448258038743312755271626959007761834183857281760790502878338080043245131907790167822035824457472072700741211368137262478592013988314958074842006570357324998423538402042401978218103791669241156560516530486950990909576415021024121758485293938617946969698470286154891879480017273439363275809761506362424985429400623076517704955377084004375278960560665839617140351472997784101528984495862735269365813719508103067220901945549202170017126068059988289650547810837853252042074885104451290179827561996714306682818582956302902177285575617367067122963193116533165262221493596746098482141606844499360827661371902216390785090297748112626746303859607996975824026712012176558698280392567035756491517072448884254663662180728786213125230409838921517259954868714337788146724156694885771785070872164662377465637962220962198181141395407644896906379096746194094893261499428279080964862697363909022972230273926379900756476475948998699339779081979598472487133233631202368809162422935546006472546274992307528472760621460282560649341773635849385599360138035349435523569517215392390309421998957795550536852043014953443474143551064694764760569275254316715723962329520768138075497543263191702433493356860394260611487046789613962987114979866939392374662152828046747879087002718496817011106731403281493678394603594803729263196713191994390647360575634309639879060424447869375129852533850325220489100167764351112630280086273184343280484106674935655148212939265481919180925750064860558452737653193353231997961987788596087061897285866810028159421624141138430573612306913334646972545158468036385626909766657154508268657308691259369501108497141715222907619582684889044154272576121422743712689636884972018459153083146989343584840819758187966255925999558771020168736454677246952517770546013646597576461730779481343429097154156668412084975712241898733524255236762232745082691063020166899274698400044082201481955398874806057202220582468753435245134528925412291094156054418883117626175174091549921453883872109464037876262415029284751305417885986449695349001975844663265271439680570558071467855611127416663826769937491119071519142413922107460289732901666634399785052266304880758866203974056862710536327348765856625159552337736357909130785149856220753690392572745255935292866952590096800300812787891249313184777158940988653846628909481116735956616254974831095147566055300397147031577819084314002116866405326845108539077310266707573063343527122852461005192749666204535906023275416498551694958222363768818870593792501649554025183865591973652543127166549062180695857611303691390285098543217541029015386409234500385859821260237426765139737925645617226030939793285209935417439830522952378276268377828423259823553122913572317575881700460735167857262418996380915586788729749618243116006930149121172274834727182801818904846283865083125880784306592394479132568750549312598953014650188827358868304744411191454076650975724755718634473563632004685433317949617894681901403416716613253706750564006483981772094726134693926529007707873147545332007036251804646184360758281678298583286720480503741508969710408060917374172730998597577845571146679851645500059065800275281923403434987979940616980121356983467281558339520345875993464880445531903200290981035619911579496108699682288226472856651474568408043341718365769538533632893602481691380718912449068584683672715773696254874355016683168203184120169183535945827600432609854529131671429400366457637804946283594251859131419080054188206983051446041603814723364802404186734295717157953352701719739450697012216981327825144592993440822142745401629426915532762785201880354523648665816785589198092738833882172185799230868392279846428055119329875258245215471669163838357694978777708315517327956531919784996859511647781660335024529078668683310229264414806564777471788996503537618766899589883148839735232044188397083476036678848078670172228185876588487354340118137955162804328872877721071346340500106676872544110625072199403977269871885520693187691081514257684534801583919252906306319528331114041137152483716600208783051723031475152196860730637022871913925229171455821091093162303661862941049188036301248753924047530756526266671443358685700410357531373672385319585323729354702133095704797032199450836061053552002062164909646816329187772720546861066273460743732170890296949245446792495891105365979018531821209055333441839925518055996638838086357258396896531186794884369899941050661366316751751375424670473127294508509685928194649715507595830510411427821434290467527209727859939464555584960068513548949973215649158385850596456098330371240688434495609516764014724005625046333525667202072149137671249262811995230799280593469749953393265320062303194501023847330566318067556382830520431106360154943880407627366426501105406474573437127693527002827140633534830139116412566752043776266881435853480498703766937445499942022412313781958455953968301648116617268909923282131974174432110878894197768572599330714926662186163422915009111670122713273880218542065461248520128712744062003253228335170826518721625436580023446927515610830668840299070999561611711264900785091399755274052486904364179478714714160327321777815876801246367945828120820052519889502754042046081966773435657633068643410314606754205743270497835799681681295861196501421328920584810825509300905446340710487793849192643481012929249044749446089478821293898018221256288102327826577610750489134711819452199255817210898735294046501434616451390310074850870054921395807400355488289644454287511288478197878262271091368752148049268503664653243025806086666560477035674754017999513335266109184220791316517280285005852505279807480651975978550255303144708416569318684801460856621583722235893126844547691346257731724043048847770677090141064492880757886790929174746868814829999821298176669862476513499152190268588107999112658751155172396058073464909043094355867108524177225514935910834739835620638414035743354005315581551903876918169053758716859929328920627586477563120116672488103815383118279825613909973849062773084336924539589896815747265955930371537821490664942235757964858047485258690997083802177571485575696816041567301702661285771793744066204388757137242779802908133701410852245633701403179548557722005532491640488353162870579798078427562135017953250878974939200663358414412199425959931591321625936197457983621821178099841800075124184378353487685843966489162196518204641777760270280529530882444495037797627463849078709938099823511913547599324088114313751018459946183052888720172124030709797798269219207849207100776970344552690954310712849686210574453663194200879868292309432571146721420047718883898014624170292561812729537072769171855581391246771918366336093531817409527352274369159827949568976721960752380273048153117096305360351447762151370103546740984132991044827592663147916708456587410223489728363696078377766831952499964955854997365842527871953253109542634580424557768759436095819655868610173617216830994218416992502796542555249035701432239747669897029735880862058822415525262608556225874113716129121373507227547081054887325834515803609708977466757196731412589962848517648870558689676930105097872400994398739146198930234035576349561730703617798251608717805992853491381429686550167718756872289351308231379968221116964223448051260838029374647847935129402012256421225271851893388297441569216946435474653467693764302437890435986080662519596912354895740741824120614570183640746790991574091796738681488132198946105118520633695404103901852308044270415387513829919933393055573698145504443017580234969544434177461903727002761083165018066749897803513870607330587804398827940638364740995896884048168285532110634443330537498068435305379557695911891348725823158346954662405614634861556558310352691460462529767059714961178686341192611568362623907795091087767886683547034367093009882962229250779788213077842812023107197609861130624346708080210089764633369669513099026696307035914344605576791440826299449523953482575618104539347930915531645663654537515006034929919504857103704900068106299526694428102889712123008882299838877025033485637473943687113022351093770351755727177838856103700208026332431499630063005897716877078917717643848383982109798030798162626189313228304625716599822966985486559623116208082492070690854597358692039059504382034597435573977643831564065825861190606396885563653509917584662503796848493079676808427176017830982375027396871910351631022876643120121957576348680911596000564451375111577298541780464271489251125570794174752925081116006253159763894759509437467177737617660750301402867654652395214997236903038779860965492083962501180977340750872585809299012320651126764794771565742819445633602872127503792501142308296165048040691427461334820517115981115207315931043715213937276736451972182494984456605833925370413034256398795827864041374599046738464567468035276053625911124300319299034171679107185306539844302808904646876774791550143388907629616766307467486196418614129339803556858418801610860888401613515307977055044840126691364372771254555523168219214400553711870830795564844903950610785795931201191224290254626064866468362637259180958941974223601525362921778884996643790742241473547434455493679013295115592410031060188234138386379902231149372716406127152686068982555762532596824153500588240280958878945370886963795241482782502690389074328378317126908733117447586837116184520334922372943667091902761109763818964779307180704991901082999122018141907595841111406439536354248231490165102561608369204388970935785995991177307387417824346312226697779046381921333714055118070824107040789594388892872731626519490004488990435018276396082844984787084997362644538325017581393216693261778531187535576033663382106126250657924366591552815703976642120535394201454026207899261634594431320539919674152151670380948597204352849776333404108856714944785809503808443391766540609899948407911234676212929454132284811147480280921709958035209748284454789601864587907682388698212902546324381179060157601444189647308447835893191576434662914311074536124759393820259625774179675014356484843471772204222215433108403724054874008940215438729283788910839582047338956087370559096514453875173802886581671607572319599064885258448487487751296009060195991234877972769946421888546395517064223778697774757960977710998041549272800760712428488264964154524285070411465913993328067837320080490188942513089895459225770983064694870759461447946672015182365208789130259053185205333027815313819356297250517588663516958270204954770310332709251253463800832442007483015724091616288616334483531772547937993615146929183985519275066994952029780246276115239806795409392408044134755082384274800787895595919110974715116356369365382952478549244734968546577351047711760479381106204782351784520783652983183690697111383214592302682748932914016128542540551389775027456928688297079234542404525123637410589558137522824927955994790726205574987432074019340159151732417932380431343231995033545719584566751044591369616799062592263501900380310237948367374692402953146145699724030195724168124801999631495862373394359405769262777838078663446349688267240389786530713497816205521588583196835196631217752982934926744462511852334848941049708087034953871899690288651186968679531867401466423065176370082587947776564018207723268234176775030618884891222871694974196036250494077917984410563968869231168658761262349622580344805948110518096739349936180280302012558792763052478504873803243750536262203180915201168694628385632238684757024520919514003621248451085083797817039335786522647573594069243678247010729633943921890410003837096886036108768533518184967952957111558523585014268464114828777969284864067405609943239406929509411440044704947618640573145042650889355942070452753223370057927029258961745344428998815140267580467302917649540103946892921934119939175926085460123002219629775893740889165333475929839404239238113025394905554573763154333147382268056888872383275409836450358134433439866470639415048399655367028528901166209171126560038659814894899478179350326820652490251066664094651382737483828042743545212932927376514177280005036478093991459122428934890326307106969954093958512098109255668844467229801321898327719178536070909960426779530112233569546150085247533547597878531949070829887017720220273215674760026062641095861931417014775386466943999465117950491258597656259046582915018686373400640439458800159296453206669431314423091640347026147311154752897421714418771554644675989529049812362735619469540456673726443494085293652502370920935083434112682882746859098913395859986914150955585105949406122834915691765676295539733013028408090916132312537879505006655346009286464666597893679815480402032994812884169224819159244511339626484657743595819741509956814345636498670513118882009033127856895198500449200240818732864014582935671927879450748685774482298867252732876522358532873927461221565138887651192980119265074830757430691673851438246090577577680461662423282032518135898197617666296462658107642394830127477830730931352569303717984454939849940216441746214700224395005264458548482916585900528282276586991655400448024964909141278147014732245660188628524385175070290862828172264692640692731616625458917084492186472940574654478535224962853631601721238078459017443264166550463550062306854418442539204611526883791211877060134021897365170661316487630470669378936128613623293236206149383500324312935191668096065246143800512165105068875252007899054744441612227156551471276331382074838135675200359546518714770479596106582687489311723294918872783352610286557147600196557029543414459693993142564077608658081015891118985540505431124634602822885295506772542630227300161455249263457729407339582397147384833345717400188846208475405828319597321369559122815920049096981232223689240410814147340441446349531092881075706379661381858347051281986814780922642841327651448601652735299994289795965314092481084205090161140569921655864765901300829852048047627201388779900571285965419924085297745061948625425855078590259202923917177557465238973685065845637989126699210055844759424402235541471097596673341219815694255627719148836471691877508917750447131374543347018109913518893416044130183885740162452198399642086268051917922342365871348468183719675588900469539104178820336922179375858655787920090354590946083492186542279599892920710933688562516997596446862485298563533054153669623635609196293645073757454463409872029357973690734696702674015164618765222117707058945008635555197677210655610957821358681973048908982713881179465386979846903888038266526313500404166444295884403389417626435968976340893794826864212711192144299547786844515543927481010901988692978499650687583079474587069596585805031711382208617469309518744164975740659453134022134632160152175096784866504577251957508045771120903852993652502814834030826862908925488250820812969193402307825224391240207715766390803356851794539948998523674339811511655478902947427241183357488987161213842164288438426482276073601312426990343253698354118254687931248200477560984656228723095615623067134977160166748725438598765737679877988342622878572801485503265558332192813678348175559119323262751532058627895018929402173085109082544262142167324002071868582511837021265414249161554486624714253115235556118190780519736025899355916967423779656309686486471627265367426109345999580763135206358337660218675369723815336297712181202783158711260708459224400123269395336116514611472048788846290939492182629384656699097775575284409275054307745428130281123115514100935750148589187050328068653742178902458926903028390089525238983507411103315274641644556869980536807269913459390830422397609068421332600917742273297606558786996189733727549539452393803727907936583487449290422291737201015099921341746170048289439448606926694234813482178073390614601414383779278478857173557188690724833828098786726777239020503375525265458814736395852215011391773874772786467491256190796180444605262191255706193571165298416970831201594569243667001849688535480418880635137697981833380319203976886212079116549448416861379711882600938577567318402489321352528434143158410151997040586855960101890929133943501467088788823348658684186350985829193629604628987408899545241432957208799321066109070600296454801072645761515545108805221113759088625104871792535369455607062861054905017927819163454319861666782984988248832048738978096539098064845965647280802932080374382116000963656312341398531197372975258185795571546845079732789846217411015102802846063112461231667660853864490113178390151592416479101808968664242653635651820464202850194020195773291595550710927675617801994572548875520982433526243209088957124410458898851142028664385478597646629688668707893118264309436241682269238300121726972135166461392485821244846464841613767291692066135399058037838968641401231807603874992322151612279724706422831475386307608170451383968233773265035000793537623440470928683718944671505523210190660460805519765874809859236205632866542094651124883639369699192323058027777708772469711610513640255426058229743820605473637891164477399557139671338419677910869507390796687210018424031484093293403740688378218664171508608618679020416938169523456453795081459292592627735510052318647456632996316529676170259433890510888097224747490601361174527013099643349327586654591122192538061641824189697008680606174379812526750722514627428199805568813980065556441804488403456882631422255134135729445157482305666049780564153369518509830744462718476209668090193636189987089690048278660905428232474974983759415987232468516980574610439315349281795218935357367455210584407058375401285899599989503428599492782716655102022126122899205901436683714628317570349141466147957418132768105346040333038137531050921765301422283944498327333588718820776166778572867006369953710988460168746361086901919436076801252307280991819141482321260270171357209474783360416867487988122587932506222012704617942196196598034490933753440849448275346007163634988233344611276070418068261505963229352800195125201060100911397300953596305068052273033280139006056497898310908347392734799859032065063832143273938110624756845033780646533668972819589972894378282720075246030442761637776841179170663808032757728637121380792734274894291223868708970922941069110072745645399515456672411736810370010573552255091242203133387918056153098852948840653745669756391818348946560948323059772935404517980299872413975795640319844243647393894365693436827130147510313242827856833530666476100987622592230917480519602311838059896547550596167975924888695584356628683584593406328724864933261754139068392724158072166390750122509665892826295642929993895494971499124761003179237969669774676685828928474441739777622756811253603022820785900341519869098228826336393849851503363590893354052792910976820802321674213293631115117681140967458625313973288143757813788357526258223992447694893335480166178858597154339269307556695021384099241778628577121708576890099073726642804664463516640814111399410575961777886157315098109784541205839066931445405342904462068890201544621146303929782497062260843016416515111158225511759317582421512201366283954254469138819353268050133838767230962626549725063329300073610222797135246836921264313821222105608279236616267524569665735868402253256180924123205872530801776400117306881552338629898963705566754322284515473799254483551947640651099603400919947857870764572235631962061967644437280046847121711333170130066468007823864848337341703023034552295616521553128666957934899386969408578255533263568352625991132093434529930551287270914606107378924594877564424644732263236523505577460517921316970177774157420249682222916922335982604371712738839661453658129823115681002035956285329226974305640832374257219978514073694111199317354304020206281407730128894533404598418845436118385152074363510858789401582452199644281898213033078921197292671253655534572310158731636311792835834702455224906322127251712982131300518275579008195016283264023802995268961684105286936696719584765629277653808276321703337472463861781232827122030104047844104805634609721339698146422339294778689252812089411440850886209832113990703903432909429473786304933947119243266257495012910195042848122364169509804171171408067478662379944252329105917155900742484032367096082109180504874455422474031032590524187365095223184527959590301811636912423840183674129483845570806762801667947734594624111634639455717508825573371193660024658401724268937503876851361514914735530605844633262996524258243201488795071825013650837825496449809657334147237024105686005020251844325251614206914616408467607623690119013231615186422274068467832395829056182927225485539351142149951878540842363696592271733150613229587411993270034715127335930559412299917313096104961162994272583816061801687910081337853556506001933142505801931666916204114958365359741937742761645289495443004547788138700921567551588138078218081589185648103859056018399690975321256447136688803788404787146253769150959229340754691427366300366508223246521719493629072382280079106318986905259958956390292297371064056206638966198845388285052975099972206869398783435722392720769649024128507192663612387159672036189016554037666548866992298394457565217636664505970325009772197109292750273455095309854392115181942768565706984690065241876032048181099013349518866284082999379657266494618815749953249247599981767356914447589905287457145391980307468932504626305420087649183778755918497580714917171217206989524083423476200540547369519704514777221349223447903667454254664927524870365461716731276664966037494258864092086791360558976129399213443754419027873195026294516680876228432285792760355555096482123528278468953763270456071204660617236636512408111888774788748025655684970979873532613710018071004979078535664522348705684176742458793167925865462228756561097891241764739009733456944221559714272470422036843436171174963900786103883563425405596889239969273687449006554727574701259932277179826490691563046574611422796512332069338739195935622600544910432128928405291366475780829057525210249382018886337441930737305128449956410337847254338110362126597895208218859521128864961104050751112143763491853371020750845399582492268813855259688469178414850724334594842851260439819567767803668282116602255185269184617595059474870716930630333175049967899809899416290905427865042745772721172291190474647555333055759738730642565880274381247569629068868179966657776223572798681209902219571629224129147922093134986122477354307487465010046369458386064593881624027383304633543730394116509980581348222949045076342190352516169530012692519613146604662124385448794893318650363979157805702932350516703783566545580843736995053558727216971346685628619027176437930360409808742816211868869110945950711292264759210216272616272427002616406180845028693508743967889248653410508465120107316707230985406407689396321719289865652157826441252146444640055411251397179811563892508536012139969328597940744760505746217744552751581515353222173753259181394054177985217969930441787426784052044058533070241865170526396775346337737683253636592843549724797952910824381036007240121332457291889879563663909381644451816257532394493218479166529468435471496835399391584971814994192486404867178995077047679248162986667660968022792601340883352678488015024617694053516841390067700126231982661084043224054320136176332774185130629023107913337353822416825457075615577117207590037111773723704854178798382919044996369815403971170294423478920584028068454947321969321989574230018808807137282973068827857796150108800114010295036803530107472740715859177162382541931304713664643860806640045043258365525958450819259752194239930907210944909907356496105638996548276355743371317615375232752375986371317226391145238855790822289708382639824214794364879783503335486681235993521540042068448684952984952624079806109615564551450756745914486234290173306092587964244995980206067665273406986564508742117977111987236644846300749901325279469960032835428538081123773197558307407096516780219194362531644942094284221200592690177804753578888080292408299227856407216416390025684660522713390551763735557306891371267099054004449440720596928779135189382456174485967801447484408832541512877346993207651957525162308385162648077413634262168109251919101997742660609640684228091527519568663472830904949904262619418153360198002652498223439613817591229716589840741806982685391228789648525064223537931153383936111669412570221960323841441556172785104772135410356191320539674282921267121784753867281082133204079571193738235909898960165409832788311104899618209153239389104028126144885945495682910428757043118015261754423897392727189012030760723470109516835715038796677225066532915831965187173809996663812138560376039582014690202388542541251799969440243287930743406463561800445659320765736832346355064108255433299305746021766553487095769386090873501175263471035157844345880229029745769723833870850943188634310749864461379800491380309841167545320052401429573814213860528244356976077079636551748271948692854103803341752177154912639942370194118665011169575661517625604948091948320162716101224811462680265756313161240159797511025626925356778862756302760003726731133727296458113167383802356267669753521088449816967158297689522927718768090375650350056601912191056854393950595076034962209889173251109087955768533018636841424864925769654017709379545553484075975057291400820467964833846696695913901312172921764587107747139943097280705832848183148231570896472126953465776780767145307566806462420727567975241469214100695093483314711786083531143308261266090787483626569131482323266365422139948573772112688493512706106145977248634632352688025065283137218926497595984824037428682922216721698041429028091664252702005012425779567445200733738231863450533206651650070034531890640661127632273387979029334793040834415950696971084645457103668652816140242643007707371856285259143317989763974900445312377162241680667358829316714831206080337070939599188007949375649323401056836346957152496607988729419019584963234612005782019555279061876126034880095594975539313750561018035789280611309307951272565556791002798077605620356345386951248519746447952403033694997423052282673093921678748042713191534164611140939247411126402188156972137973819582995914060711133399182990017000291102102567955828619615231397505308208145657481723388529715603578581719211592514829170022376264902428699796363671175672548394218306039682666412440295285594983535190236160541671266220788224223875900029068249468846472899470654208731389200119061767452709088020614219818479425403236084769623891624410150218306899236290101739836752749522605665811662083858899405349463958594203702188664086316188609891693831906314115808616192024953101853657010015554819390483087639433387395218723603956585998417238590259267279545962022533999763952550179230763472931058480651750015572286948300790589740727332001753207565051838423552402630528959012823271036012196531570281729049118039102859674321138225083248960679076347465473629927819741708575983730372200607222785434646224668860130875587056803805583968009921940038577061489278929336448797456075338596121275551240887626944957272549754563612668114355609374083099511248928851566440736271310701695135635787084557147702767180696785616409390991926544931745446091384443689936880570341181995923437028507591509842795979846459672277323343338326688284697469156513817587199207398171463509294305417655173264659821980093648207615494161168986520116503513393281300918743866681770771839348566513089633469493226016031649653309480658955817416139833477241807061926540504276459846000555323744822583544144636158426855216739063916555461000649535898822260411492443592279308673973551125661106944146819565250690296943491373413615208175571779154641556970325247346833259320928996043852232599528220018656136227989453719966029577695845811257841532988807392152659241657052180606586968133508605085356882644029761945551380144697376082603618343008769143073708576639775280513491583301631336691704087409150378724548880677149602244098020849562355561676594001432633771080856688722618569787269833112973822306413417688267425698957833535599667390184922626990242505447846467944352718235386224535735322161638624568146647162286481527962984527342458780898506005701897709645319301971243753245752637137035866469428490114324435164739017564453136539646160153314256627497379453611259292404714762536330825057246532591125438930483551002933753897435376901270964380282329209520034555449346010625909109579753558525839668623296659242480433108322275957012024128564873488540257123384238135771875573230033144369396041798696917373765415663025737240122256864157670190559582618415675425037161398090202186653411991795865656553310742841738056737544475935085307581727026347092395533900071116297589327985603511647712866526409188220438730375770339512895337158780515938636555026618888896577124302234738003270735738298461828985784666634584018549266073131306529087247679540075623243944289743106160127370965991659770381923516842178778869506543344416663081559251247320161844227197896941630205509397476719461958860611215319161650621898827099243939793952149097183597580128760391790445845460109052414288554301973869695098304627508297079733073271187167393912979628091402669927508831729162026936975655921912675624454846359497582355029499233465986777313821686278795691512902535212798258402295891350879458325864788272507858618896992444569753444951937374755518043024776109026741800539678681924832365341353931216922672338542168623163193358403547960252322633928285766983899883094061503918012376721669166601514300563444810134446917198361114085360669612280952845331682199396876727292020068034110561593223071684652892941430794807627165294423128704409824716504343865498264593978537854952746898144200675916273469950635631185754250083598869115789173388843806316556481707151648494670954324530244418074028926213092530870258898061674400530846542996576111271314886045571664635838505529631475430211446199918575954655838686850332668279456720732816238658513646300191755430570625405616587475019495841690348017424293348639295523480763638527047451062851223902461073289368243038776811058665529772459598580073582505355806400734102849406349921421459663464974426967881353186557079521312286394171096733521374899151656510677105945769755927791030666609280263925533656193002452657977700071999548908940059281900454881146388295291447847680260897597797098362714762206885563169053045587596518334245692286293262180537110790679991470226505879326946159656594266810259534236768415466527330198741566523015360924052137906483028033012701634491224224921940303927662671401382452704598072783536474977734380887243791399151768616776380392363930012202856369225112376082799059368749895575995878808592544567599325499712188593790760637378834858547816522853395347944861645489271101499635890550297537172982294080227588160324574778860471372822144439797717181613896287560392912982517604687577955026212416336023259673207699589941254500909493915695636031462682874507310811440561030649123622722568024129750566671798285227182177584659665279612014747391162710611584834781214219777967588842254616201108231906870565608223141188399900481248135648593196434111990144716675920549163627017429765713852343750065354911231785218541958516243642346323586321883174351762186651688132926171485180681125347915730552281285273593892166984477355748787686098912562061005658101530330479548425438153933950397491894360155119579159300989650579845663605706910246337097571497921401733528776343584908982401918234897717745551352520062855412512146914356498974101308189328261133837735520335420108997890249119679925641179493237682864781501531455235181180859707336220377869099290348099336535185753702208172008916528426377463253976089782719175308917558078406604682651828058169236946556835267856855684676916350809659534170964245252567634773771343036254760705416539914021347871511538224268704451983112432806281104882053833115360522017054891599260953045934968581085496966076465615743492323327128241560900055796707398898812850359878682229498750231138017349340732775802304278246008902328011387786587684384929070295196707825881354480609888820457149219186466205728169544290380968785012981057546485199147190534627994093714315204286180876448743826721926641979559148134366046496385680659534074345533840244865359473817478191108069475077851640373632872342281782506178531316176282346460718314413300023953628414906329219515929338096854464632988149662121995242507662594743142133956787675951570272668743776675615922198171012889224525967296769623505293387295313563875514374608108181765650924465652950072829043154491615994818098347543794646718008494255883795191275627450314307044687851165296739653072258678970619789052617003318803370262676118197813715465528796815422330051158187087977713012787962284351100147008261902690352633078620762343219666373693597956321664153842545205564131346773540933045822937939599269739094216376974393157583734877521820517116146199393830929189770578841486390036726504983877489964297431865506244208253875574006421874012849793555942384542991278427808267393741357215847640111496895255093893788818519721437142545363301567661667426312897747909318577787135929470514871413453941572497738165720602854437674931794398159299283867004228941693425602812784758892688518459326066239218652617475062185165731512518604091941824060696809851116643115131523623088916992118648574587059301855708608961441573810823666949361694303478266214908986188503157999677896743133996217966356726418753091347102705535119601074180989236946674439914620622931857488705238956002474380759301259432853550702291917460180115519892385134017064343868451608479446767368078187948680654513485957870438337148431168178229186649437713980738301203994284520160938616738769200542371321271610387431624326673209484454197937215960001247659602409452088444307681257459578518295609012911870311294672374794744787629529067517822628160433935142784584075605169729045312811015191382688845304729445705656058573029959972176302093929710233048574490131441749753996343478325739495480969335717609456350908804260125682123445806441413056520046537700953256551859322349497362044000643656901672742115176080105719348209720630161577837309072402797001420681667569015004537458205495003806634256235905491139382071371653291961423380529508675003819696211919720104100137274033460319380314859768415941609406880680765604065941892424819220421013339509598353709040310617206105386924707883456913868371853949604145015836143848095487790654536376913877326473132604141188373338330328487013228878551443769180266539033442593984339263842205819442329796454086458249607950129114369044098284187854324487591489766385415573062864731133972579550630177621237936117180753642507283751978327787948804632906119767143578375341034498262110252891892134142556502373370955206049988258848397285038357565293296459629825369236295696829146578589666184496432589128485966745440073086971242019313919721542033477980123054547882166042627928472941187830453145162398409567996843481831452187774379121166010186990692453951459031088436328013863795989887988374684039043649401449776154144198294952344322107661775860648201307884687861315346107572646487099218589709655877829575609636410353931571775788930853734384299072105161688770198103613896904970793854869451917974940157241262081646570503484501091738725339329007697521775234078317799342590879619009080734276842307027280458635489972110679398162405502436834968600852527527513756939922427777571275786529815884725860485174085680844169735603738913450406358768504392318129085732213307874403925187258046461777938298850145285445230553711232039736649320045442313649472459743388984201884527277684136812378057031461828853368892095198437308151909241873226861120248807874855705481944193058727360558004077382125460363854078895796543230953876586417688035611889746223635355069233319040819242874970042097801057100977945348837226961977425407962520999500483688215498853207467034534255808401638769561337526593486661211059157150474415250918295126364712053318718963958518729348798515882199146801627577080827435898163590186298202046912411288176972145547566757243680999987770115840205300500557591092968495253537917736565311427186620206131865205598642260068852020373017224782689071945905290851698256850439608554535824037706199097417485485290938969248416106790539437201301666411135822312697880550002755027619323196265807145004697108637901933526091803116164561509551537216668290651892782546013654797062519155758755153077985664372638094387448483001844581601771473822256295795666002977649305112922437716628118443191022815895134441219409391980693338648244455188619083362319947006586292129431988637123317507796438559341290790931047102701580185764577781022433268085033851910558212274499355387682610271148565718854109744881754362399066389022151351245811209106548553704488730541932216423289423363694318210200702817477633950859759995756385470058731897001380619158479531040878289202300432803753610468713153625192679584259857224697202463240815784090224812293761129621016238984312787414833170055932849928200439162899833370771035961370961788205938920227039193737761204159606035228862719141769460011753400903770122623503612488041713963693546267042569346894793192607193566870789481695147786552924101145939635341400764532761548917889629035130867773212498057143337642266875673774089487527756590306574767004027995197440874958483229944737759096295176313107569582505087230115882127546008429519739815352655768537762556644890413497065159850005964547680681353426471982041606976624779534806582770411575296707908942177062216673037573709965817612110566646489326889441508978837403695515815591793534274115541938612043459340388516782704201077665300666091303208907941262201111554141130687646217825710390490262222126646315364750675049661578268508586242477556686249208190962049427033038177588485906698785873694447969107103845835804176279128046908374107139305377975465525419494663868042552797824938867069153846249017613434574841607329315877585574192730651258541444514278566698168447951206579259776113208134639449975327511707402279096224971357457942577609912019873166635009904789897685042589398231046878522406570141619737347310392090705632146300603666569090151176333604816784501128304167516901428101458455256002304055770366294469092177175420824985029540110551684749838515652506303742402617929453868215696482173012582386915582866340306129564912292521242383725510038778866494921333042535437422297360933574906502706375883464948808259566097560646687481730906681005867942651789346191790958343747075290093912865413607040717631778911008277475580265204676475438555255169209554462409566451767626390359206172784250148014409108715263166327645144769082200489887815782024873324396253827176058878892535078588601604551415683612721423535984651142025608554879981413573999645171666089334359776822605040199608710358835163621471117682582639592226636520708282747839059151595437901198956778226987146716920907844868531473995870785201418054841444392836527205503520853204429249248358526951728972602162472823629069258800018258153959254803678355386783153092829369181288759680706800242147635794258190524050007835191802297008065560261006532350841890605420919538188758322184724525610111719056755927092187901305614910782553353412979807928906154222516923999107065491942885177854535331006117803008416033328126366998553255397355815570491262962116371197840822230222245424223561249823395056110292396558584115474286951368835999866246853303113815128093550787634039284015252067579897019316787060616252687576339082126876485952912705175360407547374706355992876841319996283082273771860367703598937639605860065058632814890344981555774016444362081254699382346763372581062385369273007300989778545250794717725721115834766440170146698817341522540802271277170946492657780669255163289726772556360101819127252711244867000194169706196196007792126571103299357855657415996623414576572077392157205767714874089229718904414778887427790082233657262962195133687818249780593399405464636513374555491662989045373040079232668421373216912747270975687482692094335125272749118631967943263766128914686482592776493596138752191899863651289832533342830287417876600023659795859976817674267428552005441655883308771332330135837198299982247812864515011307144295831476425153766875804171459809718494335324666635964890503513895168341280333381143993197217078205426352186183225406228470669723316373514256306523679525810150731434138477839232514311764747964971198303548348783084554041076037327808167785204699006209878610039392052762101128520921202780137224055500304060586948126208643255418372416551695583184598878424713270955585308297553229248065702659338531953948014567309508751283170607227908550085187387024675175528592958600644654999289993155780419587771274976615123636113662382803524424575866550489550775510546199880343720309412489787365369580504389112634935428474735368192252733351699154516913259384637907910674486812207124408226996176311969780550392026087238879223242717875049442420815767254701545928309205869700911475136754165408319984414692305067919771666026921165764741368473546025541889023838674463319441947419704996644069683602851567552823240270632115343099216568847757959310103588879881112800995992752533359339204496062123666927622979202408701817477699842700084480744816762744319269736283557317688301036288505175329457658996705184273571384080279050221535816441816473911154584376354542152716074004494340858500734247311614414645125563364920059064312071023431023692751014627512069668767907079986083603406629233887100669191330088810008580041543524273943037914886549064229380479714642552187489046064687993426180194701438355244606748973303355300940004937670211569272187608263630141193600221709649418066382960494079488067102911446975337822158149178698716157252159063540925834122152826563286539932097508959620051007377797459166242296060270445952425955499730942466223571377019469373097996525850085223795715458424054635265214190797199576230405700141886013572296571232284041280744096665871722558322509739259132392615166810130639425554004534998586326933142529243718826005146389778607087153779810175615022814064954781443001289661585307779191370763605282594362518113744001158431467173196163869859907224562284309088007515900631198410933402952266804371406207996027700469390033919636623862005704469727614698443644250653938376702499551653826816741317237012734006314518988310167712484116341846358858169001549691263126660890375143491631652330287386596025847145424523176399525853467961843047181675114813543496986737249026388051907167798321139236598608634761107772593750494304151423350771289676891664679656079550761675438561984848523572153671798393586308665118191187768100121664972567594021246867854717848078099201649492967478279557870501033002891765093844780045729181563987987018350114576341295783572278655052594953885854881220337463857373113770877369237260990440502521016407958736905572489268505689809527817978762754493117142389119266977574743633425486234233768960258110718431601763554989800590129623871202570871130427308436798961032836953047315993585798128877634564186731796072912426783413087537151079858710332055142403727952548314897504341703601838657199815033140168226250081815717661787706263355891222830668759716032658036655077992482779817151582055859996787614765461833190184195671280929739465157098974288752940362097363733502254576409516986928681425104363892372606025459886684423848409879849364201698099750069368135329796148783350347203337767972125558546072462589104410126131090156345066431240590896656814124258517760556522892085253500416411350065388350405315724376017664639577910529651012139855659507952725393014758095960883654270650546389293046222790343019234798308681684586278257487005367615209427448814223090548212534129472502026747050513877587053801349277325404910445943256688536919954483377182553547550214705230008896576363029686626019912393740363406191205738990576742854022747173311459481767105227764104615799087278197727943137604151471097224542582007325228033178871713721179005155922191519002187216493058502816267642769246928532714684545920944635442094832062023306036839213466050771241096029577735917329387362575169501633166035826056578288649722723084810780681607679679081755261040469429373523997614653427417402328609363247539379162896025846910009321737978905299260372183306933841090067219928021583837833953135334156576061829714548089421887446046463812270366983461835449068728268375698002961923098946199441603818615877922466943877362863063511153542729952774574601019953060650393024699617616452465783926893567055648136398050676156953133388779280308124038803625654966367666852367023095407183681745803994613420965779072034804128292550912197782223870110374611825318924592456612483989841850181587520959400665197485154463192121573710005287056552039571019424498087599118585992282022282617143381515154514862361403759522965261462470800042020040890215079898965644515400275917841505084154750453912740383364225334797192393408011263306487576192127864695862090983909501690377221610754152959664045500490743854155094871023505280994972849337340403327872931103472263502910718895001138734902636063505158379836220310399455357348839757504917541786315078518592181375751261503744925172025655292200755980707386474165860610903719023374260924400856410522895238900710993587681246588499993396598248064240216359850978457258955568932739984251629514452895645137526648722763257953053887539486749783403081835769080427661060889216678894991065844846093208144534202889616380067068222117445688637217699028287478032411963548010641942982948369895757066983020679559994982150607941437549546636236352407702276538415380594157003325778150050652540154023349302179960243368952947332618515828520664805064074799784773567734298184254242080464042906493215587046108651896552542285631724389500795315770206063399933616075438887998626000280344959644017877633480342084918828515190558314869300874286390155405819808692188620154356159100146116629087018637869570964366585535649739694615483064809430504269866137184480320950541625999633610081912402458871517826790340321360514068363373450411899008575061352750793608142981571271929553566016283886978197561402458353179620245534553034685809533582280324317566988438688155272389317450526743743794525774938274009799591259574129149208752494643968640695213451603750991106482534506929273660842409300151301792097922311839462475178091006385546554611972199538741912936414024950257492414027842562028182218582667419302077283380050530694053763738954530089142982186535324386172138741861560839614636140485749488297194019190020945162443468961403893616712458039590775153813913584541646250332491755462445604098705562980386608826208039285328381489203077563773258747912363056905259751701381734476346781405357082962289599283697275822377312191812440305127438561895488320674559115579924018700510198516500351823372709487295094714024551970355682108110158789046032647935475757872661965560573571477229676487277420628991987979603729042498221296863613583156145623613017700233242231478015850226818075931752241101688914128474049680554719046346916941635438291717130719584818317051527048027644941454756339462564904818800579247529625006228787825912734288005950762722440187326794925685766616698031420977454210614116856063222263755736779399262396447425354343749152462491350722488603153644668649800315655185206314813890716262499097072797180739290659971076822184771786410651088585865272229372582106091717215249954420660294218993725252172029054944451428718743678113248148562292071211976305112995183199989830259164279691620271860557170115850934380560995320859957258018242736167179386770049766326696042125659460669851397370732578294194925378442993620541306302474937186073086240477513142964333103586904389000453082036632064556925122091748241332914311864259081061534552611436499178229976199027623229328684885557266551409149921896135947194603627056584443503814901525927892414445239928662156711184923960899541778171695384877698789902320971523675902547406099023962553188871982071113083652957620197273004711293469469107149309236847150514832009102697970569252311687431133580966325237323469029766274908831496072335869089906392423387070166632252299150418420511836781699236324331062336925441670141266255364889496196573310558461384066743699514515145150956899573318761297476288009156228353463235181646344258292640479903725975128558621687348775905362530533015237012890745186925671025855588009138556547993329760488488166163123538298185798607402008084774273049254415950842227277912291540930275222064728058819614892433557799745601877751683643886368405673317491692463706799805731724025978609667864198824224992094285246935430136613927012950847438048277224073486569452494266878640212164448846306660359517767610131046797886753197037644960044610062169290606627643620506057692813965447989817589330558259290029982763719278447226835003445869101398103770968984367533901810557954964144600725584041772868087663298953676232771853218643453326847390819210533180433597908919596180504834116904466533230245455620946398296541471804652743363888847688798281315543471339970518447348124753536924629249351403264267751884985708630040580177377779197386838756057002269095435686719897755453493441271259199694230548748037921954323593919797769767361477656572940580393121498233277322204765836634699061703292804788888151005345453674780337468700740611813042468162918587192256976483020451265484961339965086959698865014301849338917075962259838717533577128921516518848327505132858258674106557755476931964814254757740914992486717048477392910114598309430428223591374679930117705280909236588143386177699304980913840790388395305677299642006489873501269447311228073066385392004888446217223188938009604250852010039837822924786761603469872882892530165842542631862616283204619760013071092822467056458223311426245003533345987641849729673640792797189374937842440568964978613062199733241456588887682185274317651585000882183528423812181801044177072382385197860727079400653294207010579589442240654806559053216130023087176415183592770763851619819984134855493171498134042412912176719407345602882322393679550035107970671250122182039447793657630459829128166864032436075410947362095897210851381602871498263153047756253327550667992585494325177838811596901458662073151114687611242522659872507330235834556314092057181563775536063499792050332598629201903735612432070567996055541831311087532785643552381788400280707096524366703201910268586667142050782888917190110087241901036477477608545824841667387320068753414970249167836627515888191405088500003166540288342218230762081391370923912253754223958328259835967203371735619760572768655878504408454472839043196597562692998000502738024176752220922683598135159796629181406249632201553183595433645765210984609077572172319236445094044826563565345211522640979775099367438763119791916037783349489765005762464167422350690374045806957093185489213345106834043789344656909474622362979482124314996570259663476311862790667914103718695105916801215794422120683659975862898226674463424630097688683240554260348763030607725824435839324161961943323049947538204401996299983061638507124043367933437307269481615427978475132217467602102812866361088934057064410684345740070588872572090031261945676703643935483728951630920624614192530479675978462824151608600319673207765315171701203431073637832661442481686320772652167534237382141748259273454613458138099107415371208248172707356964930297515227517364793143392029519522723065412099922610302145102886201341374800573897047141270930855750298670206346976492407525561694838405378726745064416908342684588005507309636376371815324456061881412319091226541115191738722061555080538320769988031668788852594347618972130854963716977216376690378897820005810200780882705571677533787137001000383175466021199913815678526288597886223332482197088090116809162368904419713534967970277273096524744273435975060069212217024149569016085268201710816065051692872259372224233980747596749432023175263173431162892469508192095387684714016258059548772047802897145510786521001682840551811201636011022169906879091173539028984689366015482591666321727183436887810602712676636719617336463171938780505109739951190217888920726403055338540720538319726583452657774702146244764471237074952654260253257679394070064983538746670440124550989821723338689521239206942776242972795968112899149152217138644106063600531713576097244032053988936482851013358578496493659567458511297079914491866062877831402911070011135466809009317086788587828638221493433254443704233625179635162521183735096578333721303759898425032221282864110640197194078649316817436065228890724148299762205950803461857840683997487293718977238770584435174316827980847889101573065925365852265978607096623918605737093205919571970298813765569694318738044721384494291362652288481655038960514858570722249250202319804955834226470847327206747839745159273484657647590842651991164240051856545659874202195981058269475119609235790510897414067505951338887495684019278462167689729801362289472569054543312676229680883683156500232609448617137533188999402432785952171113034452369599899299226501840549442124020741585093564387590110095372772588780399052649059943432435283996736591087164773163562914492816500115192000951375790949687207118259551693984645419581893915364165484312145796925445421369974674272333555839105863055834613815595573508033700739427491683334376709466083114952226147867037799892373996572363827684460389475517145669412899679155450527236657552895384712261500326144646397045984850274107597807190868762537601409800407395765192927823368373694305927866702452220130767398734001078253144539830632627700671108195344555306181177953667284288540355738354683032074527772203802481793523396112300853999412178240973871585228464061684773939604675252974819489536583162763339893347463038933734026751713292787437845967458370826761581097998355633286583518469165143605734545206701531543717677202196427694697857292969272938915308123696969860697953445828275518448122087435231913532087789615742013595015536574223326449785311700812533076694998833694320391830392382612773430901765639913448342533421308951860458112954891064509363769603687314853086259398788881717364469795368920524602521330347477168722649694970455572327703305205960844105010377722309852186871308465733508624005424273495360734833369040485739496998159928281322492088982000235571843703590877455625607563963838326935004607287501290751974936020228263329148615809551546479316160120025320527618616072226800527887289081422814053366102566146855389920228817744750952046144798392850966559671264062826454771233763103984513085649564467501232244408247293758112286709781158948281401433626528906808660020792286323079394169065327489511478686720774351918012999251470966956053672344845066568045198275284690701713325448845475182865057724234787878790586864737116028808791942511939150693229367368965801918222835089463057874621044960786350309290763602842697873711006017735294369494430696905238495935584856512652978611472901555598184335806080722065947137110915004248623726553110837751420666658918080537219210592902858249136664244524339075297053526615189441038819507938639710065218392018544395048795218936821887876808250483795968474314881106915633664335628672277117586187437815440212871450632419982249909420286124565919507084904033150729128771516379939694662924379881362163082530027023239178811774520777053439583370871438478425206569018635619047190191575998247810851139590362791366589245128510221363103220211590137276085443264156781428134726721831487364702126638800325750692666625631344047462374887262246407759622388136221768040403815959274594208155908981269417954098292439675187203872330997773963836109028366967990973079228169279514412726800091016074095823904316517618235540182636057150134303802273272227440226106961486748699205476118027718255630565997887330084284272589064493821529721529974995080665667218823805065973201594572844705303262971821371814143947598704350592362620286558216829048981652543516684639001695977433871140788271905474510438156630457668639870977193203014828897877303663500215718578942803407555306012416239982220586805791978711578849415200345738334052819103248267819735435383366437937161541299749076990998708445107977593444568724623932169032758050184595689736456088581098223961816712093108570342908422993890774724239174896728821890617950558479052923404472984512412412300020447301550178612299555364898015178810206850965604777508261275562979863536664006295269803120985197562542262613076022369311017842003785666213664099559212969233843560225882057025388351921973881328405784164978856948075060460032539907152362390957343437180918069537523954859784587561634624403890761071030461796463788651021118709136673481085180726615660934621232579130406797970234997396025424733696990687161097103932384396977815889569042824842007389964840822558768092845687765327022439880910025333773126691161384648103236546368486117193882931949561981026836631206846394093677223191733741955518640064303681504990836271274222210281788895935468411713653554407787463576178035276474798694968707320853437830524410067569374672226067013526309069985614219628130795178408820269001966173420502255186644602917521546034404256792577258256158149457285369855804791687990189537443426219351503947000840072996932493900225337135502925417568052273542741811284809664139231338524699666386203483559248165464285472672963658274199753797628424195075773446740169730146145486649622935265144793927879131807331755906264342121700348182683040047037269223190580842588220644154157984585790421599321597551654611543178733858809605224134501227488214205256445434274480111177285965213477740931886088345467201391631187755753315244608011019104639193896610915502905379476626718032573405112319370945273996636482513592106990959829504764103604594248397929668649204853188096328465849679312364864299207930641717558104841400401876366981172057073611383953181107992272045808125726628977903054554285330518603242228309670498028812915798060026432786730882233709262329591032244220652221319951142021644422641575064381935067590052597397967328995187215915968090295724422800740586940818024545775695707648018723644594390021372294495460931767023512045532728983216786096323221260939650691895737643212115984591355019605960147951659255579678931123044148794277864493939013286713756327049824790577114672702097569348794323324274672640048010697727056137908826515512126460408318537367868173776222982070190459100685182666931354935736285131580417146326158373918915957231915384724911985493764419951226290708243712607750879408955862885203665685444153945246745226688059592793131654399901398729905673163453469326132079078735618731686359890515660915195374179508402407138198257228656796201176937383998511906755652824549249525929906278459509446875186865648519390677300050935404417917492313460381184965771967856975020820014127847822136436626163566165485190065472957168229453664156601970572735945097351132280727938358080912842984797124028967946546420519809504846237745181438507124859576522510728224220048517548847441368180086521598590720320713405526601585000469944800287416353956428875406682828998563302889296921126934138537140817283793293089053105178831736899893116616353684425153884315225259483855762197947739264765626368876071637253849976212427721663202709280523887301607947168648051810992925324632173657921766309405545957007141890080184646061593826479663814685923607420100307725463922141850965591174361734302699589594587651681465505989731418902224858728703823032024467170600271651440462445388999106784341186478179575779866228473016638432867615509483235008335892119567812569430807313101132981222464169862198419166615512431987376932317391431233937568638444516823427053366381865414594693488222762246906231223948244815638027567920368818570922299430023532806312214906785700120317415854495891446663632161778157114546465689994542312248889073793934791639742323815896000698380178436655494896570975840300978275830599502315391848891359310274249207429632379589719577444146879813401790688328768378710324503726753471050323298003770926135539830466864990608421205657903679123249128607608274243241730320436067145850749319199752859143782387767168033893027713565929297044462091738625974108005151365292275925882969321097024101235740056347566284584883729079181236205071654911227427121860202161939834059169356507141439240510787496312308740240459243740337154629838889175946320151985007415359219671002830050370667998522752833737832332967893749469248166819343919150747815792687552522043678123025472950749796249475541067515441864192700013642272505364951491762755526604111283577762735075132991436974729442261814249481332137091335501625089868454503051404294349584634757811759038502116397136611050629884811326642823192430415711378452503519101967886897897310384934884856894547627928556459271888310876470165008248623881789204597361806131297064527115084385872566055175812150314564532763513528257547806338690795025721322872024626315756187921545814412050963568822609957887831698781697529917597830940305263353252862215580594692289724779166235374217939222731702727811299479145999905870422325185123341032270345528559601963775208334354160572615100506150438986768052364329871358771913483769301855709676765897892828486986453294080741239539235064366161009524347550811202718595052928661830675567306403664870255498426062242989987439212775987587750835390430353376730833829120898920136300750302094760433786962671502507758506524357106647890077751755451440023588580501841751949650685650176198500322821745697064801695697463342991598360972196269504937093240877625322043971005818114971636809228480923764368294222418377266783346162140301374842970550037343086852509350958970818561303767598221046686134154338685589327012415178381923270003091601696852940785726358201609363462476049844859001087600170114650765186065736145326233590883512825041029926315347609694581669062591585381968301078031091466981153963208982435390372664613298100409638485447269415579122941876069757861547441038879299575037111490041177469935783999203131774318457897106564556148055184608282389748344358611344506292205064088650656051261615944417948734652255563104358110539438211325500574905439023274209512562171249873532587852295841327477884325915278888943232544001081845861981204026078612207152258687957650998804797773357739637367794552278682809511481854521869991039750009382822040839785249940703381586596903118907641887932819169421469625987320079871870160023843664105099015282466238197348108344303910848641192164354967756178801327803242186140844469248096844752856779257817635398481758473251218104571890214016873069282577929853926459930120369114264704672379057279305236458305367805430320151611747078290046410156355492266707944532949884714849223581684445537741790523796575372070316197065853971249220233238757348574436328295534651854716930128206128603230784854114007569380533312469410890468887734844295036997839172312584271981677147726405705479666387158552552834175780758227433963317865301947599033117690841156398742544123706795063167712431596288497558663388849615823633471640976867530295839825725263385082305655281231341920332220675018228380818264498430120702659168598101539354255124196843312497559296650862748620682691257926704520761427513046788335716741918501087511071637013004444894215497074873019166378086554295752539316255870515657649116727501128186475025243811712441131898161680920267850090033141903661711681466115934317871551843435489831013432176243726670602119865250483974504014810563009451431544452403932143493805086387231194755328957284208037861640283006854738200184441775886365325222991402034343754652238560035414673483777963295313268805512026122954247920739797806261705589685302152608876641944369680897012835419480474471417452775429755406185511673596016048893493680422258347301362867230762555033645427151931423272934609729844358852213228483144092508803468386735179159418388994212206384262985250136595684173129000366584731664964341663711035061856024691858129290771791051162451028283693416974354842292873632466528333054557062677186704016617793338975856164522036010980820360520549967082858838263586518324838518724204586555817404069536758365067278180010075310286738373984038797441574667827135022501943147285624131577411050082108045134539499598980043232642305959142129879484612461540361777552510234854081458361533676437655416020003556487437578948618089938557546545018624457353490194065349389145736745362346810289930437206844502033222030114227737882280029144515090432584426257733637726330115118608984904251705633871184310288824340043450926596056864610339152587944083414677456375833924362972035044419030392951091456415984476998387082968886226602136101324583641296282285774158760557739338655763502616593851942130868887502646804995181069125298200604975612162519154136699660694353033729583204332251892139250496624801235700438474085953761960728563640287650041065098565310378432978701234375293255525394822612378129935859761714153687576507048380035912027156350844181566025342007461592076728566928719659015954555859630814717122572340836150376634595042482891564578348700558096166371753050617288261085884357649362652874166207739103223986573724936842253672341888575414544231617039110315053506692859727274802374302724117994237566666965859025683205963043432294950180328969180635246527405205650218060759858864560735484353725160219436601140451595744343006300034558615178091430008375146488060142080140627174029564194063539458951856075238386797043836181669660842897318583813825541144304596892280731653658922206551672711956559407855212233026929657708175344996085834535749543389742973279310292064339858495089069067956166240984273530206011836088989630520712846088970458132304873025917597948543272308610359983395130282627699353418054202752357900837868285277266104953382472690195053789663563410035045874135656662082430235766013227165580292795889305340909947091658135796468874087832873922710833991376849175897392664937677538317892073068596281846427225466883765324910974181852582761704643633540180689695770916813707044820942196631202299486305881303292573622553181573525572913169985750438366622134254671951654282456215501635046818717586994347299735874531511490635980942283566847665876326806061756490657043792467125379538102051217641481327142935915222054760664235459807225564395325673739728102974828290498831199836324438088578765147462109239484036528368107210531350774170345457447942729980930851790015240474462531083304530289508333085395771508070913994569399240798360897865813226943239187788397596413668010793959300725778879032362607443056757067001333798111115393408393157911698187639386173735478468816741027957059125009218661466145372768179182519974558074248787064629583438483326027657363062213313502695890178850847736083776163747831166813208411807191354232316256481692889041780836259325325979874680697164916496200307881912516433262185588697046568518485850144822748988177638216029934499210939949991959470063800191101600327829156502208238613015926066080603154352342015401215974425670992658098976287060014011086302777131449657934360099171690196929745024093003147995636649064788145578911858169018658219363831294766019254277511397115690695833684947343399226133630308702686183213900254389692733113250832514893404160011214330947754941312821077464879118030715090485723603546266827042754511944157895585903674288884556574918589676570095228498969790414104442352506341411497522518647939899891277530606152064156028787984927243746330246412447971030765098927823539931584678617908482067398410137994232052702082342851568295775678929551644659128422497826425782697166810132339928574149978456515626101172993516582658053197403895872624801054168862325979960284039986859899377781038793680137593256078163841972628314556726415241566594633137813840511440766105546553274230638980236093690612952942396612798526785215146082168237054971098735186621219849524327276606471970338909079813293372897894271271006677495372057848951914715477688104194855844829005632728791218332158974062394612464884055869464475407119780158003590904217176700388579039681039668728513010627644459989581363449465733774881770961634820447719143278986074858835809038747087402803821717803316372748330740935763027321365281115988425277018883964224569616361076306432398127431220618150457830647708951758318605253334280854591602234082151172979870923790485042014490549855911809119546419165959252568013298906125724829757080161305375967104883993057743760079190082324009400964152450717069515227348577537411287541425961093170099946176819800919520750645107368286810082206392630434087076928723741607853344222332057867183283923627457601206785224501239152727311912123965310900654268524892633498628250628895722661098480512972795599903136306458889069480597530597617263188787583902823344202057528584020316485030802016145041635109103119308985594635072485996551750430907792562896150535643394125421594098816153293157323124274395053130402190830329594382319278894160031328065925364752812325845411241985771741100553830479614957323668578248307837727908676511704076166581560913821245595333061935494509078696935936627157629019780365644923534844236184743446442682871991679868347380140361672064777065400214733735955476036322445203338387859731420208997454053428777624943793556142897859428122461424545120819965805002279266907738771661174794236234643123407277249941604420750807448139903048498577683499426982762776712479942438001473171412764279831613297669297169178720820734457976243631011582896529499831912865836543761099409466702872963316577687608607690405363747031350939138306368281913819341398551470865709483428047917018389791790134481366331941428030686734799690079825337689147504702733202505281646351013307544157824864114022616487635094534688408835160742595310649786557117929086316244005830478600648466456634570206855070830272060765113657077353604179101257308103664043025341723744952436049387531613119570323947054497472863098900781214693647335345038887106005047437120431566713008006510239042543533705316179167793218404483836497201654334629570200017459600126751204793683887772293028098829060897564544969477724831782890285617184037005355617166524405971708004245521017810018561218272720061789312088658421984995832605326604526631510933044526241124667746583740786133780725657819157741390575617296199155500543522216499483210729004777503898923534867906824769800142898745753586869542269871194095367884243116407236789476506055053167320650583564391187761716478197859390913338662622564202168348376650596590616362564777715510871296815709166963990941416945626516025290472226364519918613208676956618862910823216188814343948220887489286283214659529340648730086628937779968998704877245328471411576613892458770336993442372396434666183564073893247644518973977510634007420912856750736468809650697644899929300440000661514193928524319844860100673818002967363461951265036073024601978453172831619654768156553433741353363912628936805232413019585755233946430168564010230579801353142058447588644275701930401935911449665103401187055781166757276955951310798010862173346348587727323890228226108734535352479327652740118097089272827400276203887393491076330658567652533240165471240605902084069932844549883933464317786368549648694398645423888267160248068139031309364041276168992530152243045948634269714818507923026443861137238502145039665050249582392539575733895147844227463222599424821816734064845106807083777563629772491201490236277340610456277889704033815439578004926324145504453128274695001784477786249279848095601333379327118365124352630352674833227017823091176423660936936253032026837856349031326080976124233039044638784370495577677945638415572160906027496214030288837894234929306009501507788685109410202118278502734762182956068172972350735923643457498548021134777992828957087563226157217455498009392981178013974516336807996166699715033508226821044294606069004013050925443319790433799498011091199854681640044458065911740133176079420132027033774577000491357877962003050780414169260378341272492717355179505793116120369097334844474242998148580502831173393612839928268589972599427149339760879670753923173852748140685561942031859419688271172486185249816155736949545656263729472911178182263487964803368126813347076464307851299170317951574971766922477024916650600753174846609144501639135961768939810913646102820557952005694889004631029249517330240055976712331094052176525597243314721330963448396156179897488780069318375885447265182650711320632303032114176733308043903797864982033960939166388865429745503029990530420766589683148696270706787622776987794927701010396899609419820480156036785038237068020523557847077302047251940893328713468838966841598307609747402307479823723042546336248975348778362931856892759234318402310656619840530192907604396047039196652501896245104601087837869486815737361995650516670726846546199031339771704636282860118453621162385698744578562420358911208403942784892278951414341673317102692241162341451229386626315369935838121373141495235842874248175613665844709986374157716207407928090263108898266619585682664760351919139340501112998835111660303470724488295600167863436018938154136703054482957571313249939127067041713240918150517196967849421214298310378076275965389807595498588382252357470891929319855349390273079096829070131235032095851299320755137501551849608941835552034999640789892343922138365707074136914476530682400185735596393734114012492161624528308140481354480684849096378284497404950419958164487656328640089450337514176147400296616058810790420153197349349143677574811683239669753255770298999090667033022977871990583376223545760281041043519045485613597138693623313769833157319384726328639660759723109233789391267905935856544821019101201091207436267386543992273944011748707540169856592199386346324334292064051547679097164854034352298380793623736980887790551428493779493516267605578411327305018768058086456468123349716807152583600956928490420163198789336237605956567908543942171790180536215275008057086162862036146863659790755065114027386994619522106458218448274194271991106179070646237337516240723583745952021533314187833979380056229489936729300369488505901965617613863943016540247098197733106669116982096431587730522132256888589938218546105915471709506238466882787590601024327460743857327872510781129265104304614105099095859205325510018061529003596626160181548645261920608572361085725156751057939133430117541731472475043931829241320792900034765861753042083112816233985602361647421319804573005882189063336972092975068264659637246728119278347356849053864502484310705341810845373357908124580934426652569524955752197640351229650203708463571123426291581947241043346547556668965254429291995351746259990651243022736899317412756513739457856694128472429268086683420896392338055677397050180788695080971860163758939605858617354510725013511221187582971329675721196047564816668656513767397724445090277398516791983962373651312778790525097855444657403173502762451598294945062479961960582576744921560870971472587994228305538774060126119956727178477988776448816682863809772645966816661226324224397931918061395898751634619555107564217788597480415086467700985703860823680724191581773720942093795044780521968410998702146300580023795623830151220770874376496169544355993167938746647982614051192508281128413255653605135497507321334154444162840304664321317454421033294902607958316361077191222735883449954794725645494302868790878611680590991077181204019606035193118264687526220722460360373025731816178943685997215017103027125250429904310103979122779184303702802047527351295609492562860585262482842015817376928904548695831350596074394494924866039942426813783296881845916968533103335202374927164983603233666747728814367041244095341549991284817259392373903807252947257005811419935204194259612403272705255978712046518641299406420398770448085584393576812559163651032914634210174107053259859168447283161736674666893988976364692355866734617866276027679344222804576769408187974720892595897488273887621778561129590153194359604176935028439553134771784179939014761040060220465601897294788607136134712033067909446408962592516577641180909353650346513110737239906705415886944049574671210914449062888680582683811644296808940266547823393368592869834027451791890596311142397515783870348346385301465489520258759547021129489972644849844749961809257783061745564564945580843904088403814029017217150660289593339775950979750429395229867101877729840857947794084922286577946921695507447448665773496122847502605559374962967299319365968748355046817571535600266388410007774471418972320307072921645797362927229549980319396900344778768969167429631712280097156297680597638559305183510800266141421169618886849665913792343944550523520687035791779406670904261074336069867112821853272486518010632678545125692270159493683394351609091576063555191998129664330888812066383215148944130177125423773089917156994166757259011604715089023166515938264288290965844274013684759503315668683670918391406156985235804106488032233431856703083820582103992862758230810377025984718709868778583983955167592549522253976085790781134932397752854872902308118211943997341645045093586736365173743046962778123723706436257692606735496787773579356413875255381981340580045069379241242686129449481146494507895426927673273312141088701868302080477565923775489984800974177303389072579010105770853790223339520242838097960533064557974185888884801596149789776845295793404086940816164488197260768012576868155654914534873320042634770740356204393383689743770840715950709228340184117435172981392121494834675293831033120312476387371002326284986306394153033652730369974504183643222799598618838209133878135976142678599102550437905871783040347356298788678542651463414294859880124815508695737956668604267603162265706791603986611446899076478080358512966180484563741927605659332599759923233937592984065601137556578160895585068441748237101672128609765392544711008668722771870995912210030361989284130416186404997254897219941923888248176205267767596095692135182858619312918917002215265077184316816263615527015665031196364890631494333975147427500971914576563937733989443674725382441383828556704601080113925782131529318808665040145895324831203896973008060713790243883775114097905538132350404876511998713866499657260768868852235703569500474904645058773533999864810589502931560346259088752783332491285539211958418513565043189460334138117590229849960159693685174678982216717938183237773269570306582915910024839298960775023197066012668510632984517068352387365288743332879805352395243607583332688059192113466733319608862962180958891294591812147814185828001417950618320752725331952014705927219904546593673271714927304951736375102754026422885779531378275373855116612107842100022652295116258834350493627695197352596620297632912054067319810671422435452224467793219234882699196807440893585620579703483431554095240295772701737268544082204125842407366637270780027494674183052222266801307641839428202322689576566376410743281634999671634887281701606083702126715173619552419811371419039127994562992013055164450432727731863392075538903829901441171969228677117775803314121581045142945498765882293915664625793696650988034102608272841779116498262098036310600098968859083180987978627171891383178222783136998022628906812532519926679291980872255800263813098199307022961406127458149603465600711150344500684919048157936225508878883025719063591643161317286732153406475472270994214338982803976713152106922768233261153273277399921350135507504704440326454628221577059158987883427577851108975808005505289394387606572509347759979659109630618896518423918465730476990503631452171250409177938521858189100342762595695529178748021573386445588165006199228136303027578326789989256376243785531892953732808800435363477468120995908960412605146502455274820055911709635808003915484046943680531445399622093317321392711097684136979329869861404485225084482299859372260462678055893384071522975976009020762489549624096147107154921934868026532429950642364059173697007819812980502012489709645576407045540740368685466976417208486336336587594976785186688363620306297619092846704695942644089119840114545833411198105807310420100098441898006291719262188065441580742796735951757904250122773485486245759810547268967611456712060166387899881705240280320356006716094212850658228345095212698454631019654477536074993533222219466047020247163377507214887678640920532047981755588161412865250525651915766887919071128248373626186264057007950947088001515943816929602381634018743847106635476223609919919776155179012747071232893720816135410045452117177218917401288291221705689204971555857355606448506200830827144294202411494272136799836954494109105325222512688786385576596939323536811433341443087149878960183837956351504857799214229443239605262598500891026202417028681922081962467779430131376437534157727430375462064921675566039750378577752657889378086950842618875176062218378928199166564611601164188158942501561863106623978938059500946971588810681510922141418644167088088700934154819167157725500914896624976517395269151686392945397202673916997896485106048863051432386524823681894858717349991848996274041832423629661198594359747757580810981137193677978099805164019099762558203343319707590348440237695745185791284321317907550495266168838444150537090353255328254417132376039599877822309676127494079532350631783136784020510821270028759848391379898788271280841703858797456842982094610336349218062803792135913443249583061263871202215397795749284079165707244161481234956998119849730193845602031654728222399342423745740373414613599441154359843566937459820252912536902910852412222610824534011231438438876489261124014743740686475813061840116331203526810392771692798329306499030813285223926531792061783318931482367535701082963294969177626826729444951894073011250297951152274287799387838038235515070361523620959602101939279497818941385641634323432529212038586212449426675820653299567427022309854435761013598711942467070860349989033245275576751946353259388257256517726705638187002035194171764387948393471806817806323642788907181722192645597266273807485808416098822076759525097375238939270906670893120109142107960202504127468879731308049613802554867919683868920716453453727619340301938411614707621554274387475907506960958553206050377826990957539864385844740136700137374668493665027229187816257051122569093821653118482886195952175223691149624252798149872103954029524968234827219263402539144896918771049597953948873778965131532653414611596363462082713209834210405325184345308408972328584923494370995659319681207894979993748958179842071761941617045000395925590496009737295852776231132250749855601970027192457070469373790417162621774833235465758132557268077264612422132535454718064921625844958432078473956529671430617649472259790298394719310445096275214852060013154776123073294207123304993304718057293411045786710086348680932550472123082820073246782110307821935990312654747938819933703625570849826121849763690630410787454184347631463630554697881717614290741427279612293835095859024766484848977926206187889068260120702776429773628985470801338947252675699695419170870369350543665799485992397561002516921731479784022697918563112134942804759626457003568329430001851603993425325389804457325625742143249663184349742329755817467368171585474833212861434182369514937404253267122115541067944764793956184698913413275455086702978972595853308786980807785896296120497152040229386632537143585421003381480769783581036605455333761725678966847298633038928340970480852444037715018553107745614385320786875846514408720625785377622005262405261487874354487175518640542270601669960198793790064464198075371673474907094378771200155922259611884754239243967274116152899608832455088351782771847269775506216223522784516366166446593066633262241305392837832676473032857331504275099869636684204336812003777240594180793549201237467253363438006610033110928816283601182883260015396768657812384304532542606307594238961763999502258558618500525403423456880385915473416459553291581028213870430008611859913370065579635861357625927072539904401326929568637366630529732424499896595969942748939680721016740444985739750396266425501537648839865626684406836113623949360448050226843897060344439731784896814874772125818980411477492496176305444621376784874544069762050399717637481016701799605549826071377729661156752322787529491015454208973343988331105784132855753300355723825880717821244676924996704722238072665186906589362414756002009594373471093757182891743661267890078855560667892384350085631981985272964080812189966466487708916960932029484495406909018681324950078805530289732426326874324158520889119327434962376717416021359724996848771082170692844054687229128948012951216854019412747379009974105134834525293367195847323560858984303063346428900378727203254674712200848669685358324791888902157269149272422333019092825736518900888839733719079270946826768799773954641275867285723483762399352114496026018330721665458320264126212077949277561396745688406114342573939845833616259917074453649827387092222774008294644317461497454491906418899942077743126946961890770313261615372661600630710881580965740477865857185215613684640128654347846424821355279700782823803660125332479492312756623609123278127205325634520735032920250580311909502776171011549187805960181613999865528133950066767470699575576513355156680915592323289386452640964084870617594317743710537782427163784685161612453747631208223583194579990159577580380510978954484801273615243353125543711087655829034967966206129748962433810073070075301653004547928301712271050192542691504820260743997288182159717340913066080913799932341968534866003725312027897325301665750597442310473769651325463704141146961177936996918826673785993606227240535684207047447060918514872922731573206181545002264359477720328136631737844684576002646460526401434231534041930102835527382754354535623187521315200401840394750142184913473786289110457714230994524152657551572247801845755314254768951821514121627189871514410645588519945906053228829780651101121202960787520464698721784376462398532637417455516351590813454691970437809813525974335226858774445146770590374611659320570880792844170514076543130322576742768569341433289926958146095994459526694744798588185072114239720084158944105253643390540448900290370588363069344856552312792776134518502812143045211843487589531521206153947818590568464142211010909194416064421680931999743800848658373403386588645188781332947355793710276001663287364943051405532833994915501316774128177006635689683089972961797964019304894923595770063838256709437065510142087704268754776443452591403406601567822153319552387885311002004107992343342994363343007884014463870216852321719766470704921303460445433129824313250236427445062524344674638199360489340951422261660017683627634545240435710325200085134288066626218929505345219834359058730071366909665893935528824395158260799492189183771508258182731724593167826416072219644267287737477944481170683366381559621970064800006930578787756092704146271740614487833451575551696877130542704570586228024704172288274451826443889495985946603895575390259178902204687584155146471206556365424152973078005151944949042530974223255374703729123055570208143693659627171068324920246435714887101893324498184075850227868062755795909498286016953012474920086887672096585290477868903508111024994003653102801097718812670783418853877963421724876610796944789198431228385488976143883927212349713082363321771185946429802500651438353283719068046691793213238412237565606464999845668490931198834526270951676533169349250338631065757456012844176140475112762256980513557287854834395879980083798223252578598290394624002949225371477782325582230976467816152387685074289952705969668268623694778924387265665672367977781231934571022360439529899690149988792121664944883876755510566673823414089725753092805397684934374225345236887051286210617831622211212069111392045257024874412298872947789098695922667026560105674375857225336930027915363602420992858462618906379918162064486498649443901138007254215303632788217260823464405138649297065600682161703441098305824830866710121515251902886393850402008818137729816029855751433136063546434342632617717253334884920692655692362877839542309582509252901638237399947683546877445476843093065235372094562718944165278166674590652085751190160558118070444937590680086181408168943178328101422402625379745793102791508522559438825285658911073865953031876903234419261921439205980850435365460654000047970780502794800518792720998762644887655576760450449748309728014155194157963655555510551000551092324738689745930373163710990190042591888974163873365690414236467515012463533245367063908770422839043341081228621818219895662435672506943388663584068458710930437081818467568902841497312355356115388109023952292997261238871246970655072495485991748332371295541933433282003989706914103126303610451608695592570801416129909000650215261836425418903537412640694082960695820562622378455062730256645012916289129582442822398849917434055655301357878293073682772522081285809702424408051463727140523781865157218955158676583261018011197893503053493544382064917905434095063078251114799640764260750339985605389207246757589955782227856532000400643179316942322998292163593429617632532399376071850230226396901641044834473155915971882745618181153312367732943639622513550969872100154127196963124919419395009384458744802769325250139992179935886916755690619302295877245199059580379711114401695223886575197212352348327621659590744495456482689129728498379341342266568085118661027593308555719713912233678242726665510072381234041626376268453440589109134029465917578697073058355821616522866581056605151925626948608745379478361521487186976534914709363508250870404480230545555029920119919725207646507438427469665467376355316820779665342112268642303228258349957936187480084430496103903904639663891637182759043061660688373855178299449248833311139917349997807314917788206855507823136455463100731370321626413733521913709162118599570390794392891041188481470558231280556786182219661078318769815246076964942957510480964546614044864423474811133504425993218096950949260928683789011373417594861432089754347194991056788835992498120995070958855761632947364263603654718566027542488699425431949914147161587332490530539370239371632423185235813970532454007510019784241772790333588520366969110745443135988931666175104058446555410032152760571613378304775845770565499280556742258731088695532614445734283166202740166373269074057637327905440180384491302656250039831979905138141595110722106256655075980697248861263682303918257170783435928520710947567331531563479365464162803695360001682561572355216821184372202565121866191691538172577525790455222133565629685305121782913505461763544545128117209253347695293524175657175808404501274299013901334506468569535139983326399834084779495899083066294937079014084469223115641583879665436644465558392809641917016344327576638492362510826345770604866961575523309516784637969179225670674124748331757837007152479365380270480176471786546665534102009860770327346717810949310371599617198491413106431659161084212222237660605260273410407199608011098884013311192490325099828809674957060724824531775496717445164403244087825445782286580747578362200991469999360617246497302571667141312132572432918627291593505211897642709257378678835445107201541196777194881816236016973109339857664613653713758363286926097968900910015403457437695832626647837091994603177069557232295854867827849763016287564282310629105169669842658726741852323041459193187148119416123344540904293536769873779371779793427377676601479251380319702608532958130491270553809867655029137883347702655445380547997673628773910663754109673463143700239077593990840716336084767810468649222242520734744154534048767125364039607815485256866807089834179178786126383623817888027378235019885423940032685450335200717668671404839105294442968989547237463153124398489621085330978743328294924510489985499531934591143054926033146012736071565976685777837545524030473820430901516867912906528664411733271601886971321392864038298987859709035699198741290651376106125549209979148724086641174524072955432909351219903182639016631410229992673604362488956308529741749444006045693883064697165984008235670896196642141923543030614453684152638811525042007440300246596124615499768676257300174848960233506650923222577880962771199780324822131503699932599518705187171786627638762404493480588093472485892859999460115486544851242463426278659584489051951968272889682786421604685071370025893733267622128676897796613845414645514533041606182825711288661720710062018030410887928518466173795401008466134395185955383385035718043645601051083638970935228331855218396872146103036031966773984511884877611693937330044323166020923581002573854691827225881977170512073073429905245043713216435762504621062295091364880724874096262853281282681510778277228460172766994451938580569389410229310268746947777197724922336277497268181991141369384478513306768335681243979471925483526904655181533250340335753042091475265129270753545582446477205229489114898111688901508913011136891229753063060277040558823336953210224435214500964046837121482849869579506540968276632460774472868596732300116751544880311728857263003581164405965622049605238565796474408905562711230018696407768603611565659890287207562650880454785462013768464392799819518840794326749029135444320424218463563386495811328623773286074042985855283867823223348381918322393498441446719580781760092907918213898951181879134969180852981293263903327460224988567728509050156465290952259899893414061792092510557024175605485846210838370648807740559079158239019552124234236511757160879632591417604559068280518586782314768626170936466286218432555480414628233377087561137734644391251246614683049974809293514160149998750719749563056337334269194482354173684519756199910097946325612609054398378804321348068879806251290526381784411150814902464903958704810089564098794615811724584817092865492221659753718290527520248730819780318920081244485807531723687850299842692359976895233236468782964679411263546013293951743559204637253653429705549947892942062854305404210852385397149366586547613829246987233803947543718678217941420530053653522382778312373492724055942189586927936265617719161282449458721126423545276841502123221933236275715664256482481707511610537837856846211052054472164732609155673531772321432401661996703884477205503359562560368837549187011553250567051308111437368185571306859275233651088301694760485379728378964329113959237499288786703517532883807001597663786306806707544119279793057522295497901721575494581971311284425867000367235050103520017327390847391301383167314908985239578916423039063965104843031778749289238436467371881964375459159331908716294563532572736036206798063110753891930073689078225116234273206147994664923165257706118501978493898746457037588646722412686378586007468229311828573309884797353101824718095657960486326831505899466800651336060696038123305460957284732316547650776624519596082960373079900486717020389764977634834810519127044977073238209583504419121360403504965586531590052755908081936270078105985743084874290115334709820363273413628205858266376954744467175555255612567800612631858041670514794416247875348138401804623182176678691074232821292443921482105842060421610078707026354602482071077529751538355593949520130878568283268378044660999481253872771395964675720984467452155864418818848787328962479572594606567967000145941585700830592459025690184546243555863433140310374309953224728658260241426969167988722889976770250345521434574727026493767713344071277607144552565110222451735756899272475067164001006567062372847574473963466645518507906751471512610408011731562815795306713648318524478891892535145379117119128048795553188353313622681239524316971446231551983197474112646849195252698512372981846902358935037363787831790058416952563493687482757235387179147436562211922229123550149117359361965341792989004737580129358667796312481763210745755547172464670051432792189981601320123117581035784040126222195072444690345865922341437482661338077716206335705527169125883157468368422707227083228129794177623313671399688626305183203199659588500027725824894325291431560103219421221848344310655243602103058480659314275449994470810301827156211638617282875614181921966548156796252468395424834673044317565644172247087521000112240845092840421510739269959040603844640517185103858154034976613332105469978065779322720619377253626709539188140731595389890806913088836208252030071148091524558374410200342019868314501438905670545487675682415080467694148445205794768657114582497030768749152454242294582667748862959394577248080800622404536064486507014575207973142181752942203760996337422993004809757394006045930797738975017887221975065675278763621196381566775364573341853937625673314627509214703888046772568417519016623532563802198139572101345850452722343882501168858667729765884497198532345858065866444648170528108343483324833412697511712043751558534733388484086535170605943403279380626241614675160850383333523850957149646633983484469880207725267750914144636663983726737521407823043148332658998172342127668045231067529311509137854810641969255851795308251614775159721542903229521557798553117720052296235066936501553622659248735114255985643556050888701385439708460451323700199411035195092968186100808502357138833520541543979092257208111614591313742252996282881229574871929167228554380496062039083367781520097566511637715087755812025854469921428587608221249155960350115575433287458958903114812904050987860900078943001747929645081817648289512597740626940891481425613534430426427079434085160813693718672936665178332141540952670287841715547671701995283432802875670039542367788979379745256468360942078921526739846071649317403931829260015646141483833660796790422265453002424675872526006566644859830777588507454055835331767750538405200589200622405011433359109294252752704704074100606026577696117542485705386475782182775069047093360091676604644922853960818771339399546297529810556879940879427266442200062288671234402981442554240493215767034435507369450263745836329713469741141542212162374512366749646712117848963428814074535193545991051808453073134953451526671835113351606820079608633898125971550492456616116734963925481255123925167830567281168808185233610166061651151749594206665898275580070630065962768475941975323002170744011880538699321565571709484182591233389050585286864266601489534366948669066317444174653273964922203358776521913096498653171042634067223196880341790718900166184598262966878541528491703990153590534629263847998814336151011201078485328720755511185813023901332874782075110505559518616088384302489711594166067336214069129211966701091025234299109308544465673709456746033652134504007026491615896504150070255207848700900566327696479975280432417314272049862409682002741314676782040006662412566293174897860211664804539335901219162115599600300930985125606614818981543022377145433138140491364253001809409205475216727759443104270202507666945887194760153899228008510940923353922696715772425674038357177610603265273218431698297639205275411079503240446237220430840740804276870364666652186681287065920809961903649771946631101364789092714420152563520870335687243098489490626050689468423329805614048952676567183682539020885280798758903120564555804203281173371200736296248159067225816799720891089804163534922800356680774391081955163733655666253898847407700167699125608339939122859966613926713161391304915613153369278259021299167756109165362416345339439598503360415473808203227524329424525915391615591701533711821425908892060209899809849750312389943026009846169043309896981913517157104567179182022044775573360543762004307595235476756685577550577255182217273586733917211831519737140894605859671745275826916946335241884017046786631360860543135179998131070123333247955530192703069878672336315794668857670796393311699621371895411259731443529535380119498422861022473104269255353559899988456851473709217199841934337193722703595673152153350964825047523250098675235620429860377386118025053544436343258843688851869008092099425470179560814926835775031944739025034434222224516928122781914092491397874805821493804809483040761023038226895690443820221455615324422744895211027307977873128505933187602183245991449041315152310108538743172632830986955642888944480884337535026737151342267382606057156216921868909526871799363991649681502249207655760240216015914504966795036759656324393473561910240313921579016769061615906678020111506390843692106906292075748183622153093723713910427624088414381530906468517549131831617519528697248175206891388456128100689421689164014925509493399833221174512659872061987972861063912767518407990173161467038062782194171427609704964696390694543251884684341157944518835492677437300922293950667957355629785470462534589569725330840792434009631906589228512393885137159493106230073143968162653614966018229223736156608641783970031883703997157050718541956345307253215886435795325357383915871310321163848679967127463982404649969400668065331310028863222772361951705419875447696530880899672644121136232114751751695235735753990875529736191610219188016357962776532297656722289421962643130835908477593201923376284121928817417512173166922327822859261518983081204458817645061184457102069778157022608653935074038216932970925785071277234032802833908688214127017400279645083985755380577714824981161572072270637147867758654621148940034734890416901863054131469528854715990452078891254125409836676826762804524712599510703448912263471370928790953438843196276715395974453849591949672550541703429506623728415647382954845100383249685783577765845134343389781155224662906516916629894508775258780499434419140520064940373292275956777140229367856023061824969468602677336522348463799602796179265259047261808022783728441819897303148115121960444483101677566775892986103527423848205211613099968491881469397680036867046800586628748547844353281558839380159143111881474722874290752381940973415234940098125387084301902035461447694184901327380204071055138077259178037093920571676062095610984397888472856330167012237883057767584621493514876853791112560199544595445675169639908481667305851008158436055538523104572059627652778702906775272320045612235985285460023241721762162394537467634055379803622282722930347206894572594565006320342595620334168962673944234634309091501020041456460549612912261976787088051759081092794546306885874310264958378315161692291347735531736077270317707984486037938553236884307282375428418947219718263146489276366826312276448967711862951441321451369823692207769318778841474001603662507691543928655938100197630861207651742134022186760478043920667498357602701040384665018790346036659547924307447527227057608883353076625879848189580085520626679578154563268138396690235036555948006667205428335017514857780978749232275027893121757316979422171562266460198823560593086478018968204390394933570194177159292123944095478363460850284023390006300982341599682658351304664175408497292480473403131163914821695005845501853433504615701833186004134952222182890159254956039274727302482243424007665918080233842933997370062949725438957234990866740311183527143404157229677395327961004690516895625643728761593144167250817698345103236438779664325957418360444273080253939456574572202199877078091180138944220992566757204056246504887007579938851004197909820841028932748931459560370617130890380830075028123203495170976427324803027699366086623695213517621476429588466006811870547426164553384678810793981030964050052979160428962750265354970688022105540083278856084254412691171410415269154766305958420849840667991410977536941534550379966423301125971907022931824577400760755718614364296971816225690771855420979105117814875413328938823797237940984751006681229500502735234809120792914999417420858544089433804795856299493308532561186502435043309593021280065110318559805550336787066514226855313348416020636307215465037893078857691743904952208451135256869601793240134406687882553288221168092188954040019791070365217373199203629281783901945010231406922978414352377958034758565074293433627112302641358637145728626560502725614102557805339419329762344822740887909762573457925388481427291939842907020094155760167441918699188077981892218491990692004255821060993034307562093742444425569419102912100274002745430080366729040890162905630603370828082226568235423448541755696760329974539726575818797203105392125259401758556132438542649195411156618696227984404313452945025574194482633566037612342683062198367437562429391567222653656099468813798114733159528628449977792099599738969773408179116399309802479634915624881766929145520452456794332757129430681041468609780682464867009910358002579393406766753256996253519462744874705542905071942975247841573006775935154716752730024031238664901465292640534962768734955229415952311418806357867091284768761577383935968855830523537046853417832501356538869297220887569505940605363705538472847973380743269567287548505520914121991279269198615771452820259518671288249844085144815614125779574046689131017256599424599252743856454156825982740382194148489442717612971235987853490021299059497130131602672176482398267414729941740624477664560292510735829922898593015351045369379630210197123571032031556478636357373164575610360975407202935447256320253377344434233353488485062256684140853508168673184968809236462941041115845207519982687133926559267862499169452187618649659921416233941601883906130642191298946455281541839544285805233054469977419831394079714335896216583273308237291077818091131150926556095662218324846244400711211056380729700281590963317753976791856883807451122872010008142807808021478519588516457567748347773909691328569235195775613898215062060078817797970211537087426921177781846422784041698876843167736782931285687601310901861840320103223433602298993125138446701557383515254529888445046185954381930859346486533059250909532294878810204834183913273299430348740651958973390769629834373142488391133246901060902447736172426998933631803703132608966542410981468879642155619438667372270938828239894511176752851082181283456977656867656605859078510767888559797832301091862612609889780335978886397476925592452675457646697668336261371299541790994367932898220263074241150348541630156762086683704903961981004088773530198546365335374399850367912269388575383707311676220650771737164869298885364035679378344968708475770083138159168469893495269328011090839224779405483051688470465215325116061648288455810863313224197463346574485002061717496163926623100786811600234398158384929725076412952514682441585053168095884570826693137685332548422587815473409224960030066491885344033178597474565222617746966323755166097507783195589900582879114784497275501393491353064066611045151363989897529202577049690629007582511970599610612574812926780690518769848351543265894095205416443437591363384145967556638753876181862519658255493301443400085983740035903100987055587502905813787126908859249184069289087544230998096301994493186701259196974123720680003986301919024192868960702791573265834642333185036248073418307997467722841990948502844272562480385379237102796669472455680129161205856433787576083738718689913300451764294061340332980709044356374259781465817131873051696384588555844619201644220666048091423221461631594128690209933417056022528938562530820357798006873181959658710535489434787498905205688700731681270636032763307217816666421857893959999740893368225902391104573563965076562899439403600790174881198748997528266168658421149113981461727141491892753684697147176366359225395277729352850645657817062997660113504922127664844354909806645958193545588483455995246322012963589621067656312109071112885801624986046244413354936397918961153863470039142381727337526224309994685472880676664514640203583223856560620027888853085010540592101727199840305509027853931946504192147097982461663111374965942692882214023979667916011597416341661001775559840147491696840681248106958811150495243306532299307074042708528804925135948735479611582258335803358290145427812334236810344512397276613912727954465496223278105809189671599422940158658931459551134467754733647655955246789732414078726214701708350328318701025152117276804684954907466482958772317844388448228932510222479007326189269533680019533603959733304668903421579356904028903888650521566924801253345036829902048589104947923322866756479130189611293158435459411871436805405594504619771453325734542327660249525332451960495547665536096991916707248899714545159489583250188047643730101217970269691473040181706647547001285574687323323827832766110344303139974711842665826546037741823221984975444378131530918825770324329021250950888514375749303185975723239917199341722261904857132591487232671477487868905509735074925900190889671253529985797874880707441689830112791636460620542242316195280777829575120624986483999463214279677102045968631946975101762412306792391199864865583330915632223821338949552737169106595482285207505678857691824970347022907585708280192949161682911905888659297197258079050873042965628462668747097797588908901196839437623877506162543499473337754342885445999830297386209231097172249531593942024572355736609076488834733906821261808537274998865543959550024083756695143649258593496489677786264933842810353806937859781753143294936045463480857026281992982948544604669706609081311532879150985970844769401564466189703219155514067708299025021862280962865569921999583992163262115762935884937108309732003453676156522533918488263477287122086393731069186195957868614495657178794140312660363682675355823910456222724347162112894656122049896780258980854400256525471659241138539902275214921665831536668790448091187138934777312793225404276632397146554780423418902220590002725597149416705785503716789375671127085797890428668112277582467006648306219251574808063447446296706365284516452514503122728548462963448695407681664484710765488760338525619542807923097479861777158414540812456942473771557662136637088143505664733785595364032661946283005660026003636728995757392727654796180225456306207886949475572959414609313275428571619205040545389461368720972828236599074396351675517835047730688822015319690952074849972443667136601500094819329185736973704962079868147774040782742354174035225566310818890353614547344594633808204065372843458708860068305727349546725085913348590187732016132966768965927109598439188644784969171449316949737384393991132797776039103476153985927487628443353561577879494836200005616828998004582291710841061427376348228633182711933434374956607509426817701219998944154257883576846229671217280470958572593100228165956076078544421088425187464424373481157046072880051159044481572549238089596416838776657886286265120436668073415240593534203769466684267205501434949903247188316596550447251597999384974063001671268702114541348104288441323992180823497302446241869902452903853190075497548134658968422583679314512786163002413662512636560510450833782393137097443374937896389331763999107211031485692737077883157832063483614369226579595783937333425298983724466226695139268077000783368451047758877313870275972208178991573672721684066914072117267554092922669633422513982068217033373885672245262044751348815879261376192748211158749153840402212291035531249033198354524921645202544025260484785655543104204732166577140588914010558865775652849447000624013820039261682379250070484581589572182662343372711421145382655039916447961910048148612192572141954734900331897270383564402170813336355994675024366431149316789300462482008435210223753845120997908195939472628928526986141393351697214578303070086081183386140896084108907433658669471814291788446608933695304200647545473914620383352363935963230717331896549056701453273551315553854659631669938692506392338540968835142637271487045566413735041949020411501563509121873944763810097679820152750173207275891405873006025484314629299665143474037477683832235073303963320418977752917916582609832770039628187208639906940873707730582473041741606319634210938540636827900649491048217814617724441257674043668130070737710800110776762944862663368954619658842047837347085901311027139649645055610416948654867189158572865319811939467213037204566508283001867978316596268255690446369888975972682744748075894099702149417514685576018784560043221466684489464997548747867367513836946802429743536239743080097069047482391478132593215884514878409897629351951529525808451586363961754632187096298780921180694458902786459568357402090592868857915901483392926111087039334989063314317667122176163821809125045513020422359160888512242599476188262126415964125654284826185804707037308476326711510484085046060615148856492021352611686577715592063547730482580004178626693784283133095876440029839717870394073155231451294745712882427526674775736461337313954537412827164574927667031670540164974901003470860380976882160417295970553417101178815008816537631573668545095004514708335027104980970297017769884290084970437900399927830791170133307766362406909779421190565454214182962998628767554206935482739152919373448133957122011638389006469741581905286893079252379889345940652529645876329249091585764683992969554090533298816750193085697307495555999660728685091325786207603614733693661156641335625722088558489949819767499385882556251874387112900716800558027320914947418229454594781596999208160275711761814301308161712386623370593743996618209036003325862264183343455545205108505136985099964365643902661338135971094714330301778835353758798359310348380965059429178186194199250707892255482151571302184877904247875826115701877749147129525105797530531869965297440089243472881646871397799122679991085083991914238455664863231778860556634767920933767733944086901510441004442707830720082135305361027980950129594552355622718611870112889564978594269787507737972088424687529593793674726753990020883027507025334130312457118114993401240213075077498150091736240414231020162073521938433273843736289536349505408091304440204141449857570905694035685409046399416180461330264004089731557319322583873703673760720983840700957040309515800052203611031351248695201900857241106814313059070855434253138306637834011404669498535179773895632952314150537664788482234666322795117995242988080900560253452814386346301492597799013068625039229787341031550606527014227960082900569917963231973402906917052107502729272271306147212927327205735005633211752398464581705725665985590223539344478585319718698925312455329603017062007661753104887233300568371795191235785263787685253168914437488249029812749321155611873848347870912013945686436172621382751105713917541286292795416276194733928873297755508449354587502212518531667205359371521466243003766798204171987454802469509214311948104371794464316078229553160223741035128552860771203343240774326107188584617562499627309297435101297349359745784548323785472738203984869237841055242409557780346777373008194245017581396133988120337711007669931855342277950121598138271104716221705804236029775612918765887419164070997428736957402528870822783900078704694765459761898879333398179932239428105869155878258367059223707765707321746651146384841569556848946007086794476819243730984896033326087927651295199067625230595978214074155654887949473408322972116012834187521017167943290179745604235645363188741370453840093424231524558754966327240828894626845225329584091413713972646143618285345443770459752980195670806811113596605594648932661756586228642091958994199005407072667340591698171097988821238089382484187593294503039189280396168005506785266517485556747589885111114198041482787173951945700020610800943371888008768863828292927006859730956865103680094253611920638681759967145860202252370490930090019205225350483663743705605152845493614326736147248812250308566490906569170029621848458333472315503271810361588457924108909884999889010644408461245074768613379697850807358042900589839661743538792929308103794676743554235073154497741037968424148628365820956881893502593473007043443488780492310249104467749637812295597515725001092764982022431934696760248224956690704183312283646452581112855693281549384338086372418074977795917119145789212244828764133952769787023528362675650531260102590804334316375552155115439152140489047815776735692521471201386685308067242125588169156750596209646221333933586208309809971608382452892113831916007457573078872164188991464688275626477663996907890939691070333401292444867443265024037917349912408447878835908470303796347080043689186710011635577051581074779558740667689640875594273456903269891499355251160841324607781226288329965068187194719677440226468793193315250636249988749640388221769203907206466949856245974991528588517105104014651301049810125019335197675249299125547930539816278317010237702092638155993052876305097988128380767531216822564853752433712659251036570399128244720438243900036844320831033833092152621156263418929507308240481492745679331711618029471663551555984213401746515609351078169760659615627279777138661224001333525647507659186374062730763142036072130222079615674477618075901816842104456423575517447845453114267449882060160610906406679304990909340865135974156065265181144324696901787137780569641616250020390785381715677786290129829430426001144105599999056770456232099808871394358367885193032564007854436415235354159006421838054812572409787499538326594284849401747190754858432169556889871405646117271276169694349818868007705587725730900617839524497718887190203163238746955905371672083607614966052354605316228092181551400468696562607733160819714004646155149001038876232640612913044585811055864257107201897409273601590973522771834235374800479865710865177272480311107026543976431286514086684484075619187126975324599569394003463779125093132105714806666738814516695162192579458398256556207435413260522588118018932909358586182826245899144696126644218513513559669387923712040419460704512736727178919068967228948021759693086404633831662942792671597574037259880821986555953689144847180701979309566318529331739058409359450861418890508578528510713841321756821870360889826962232104855277608763297648143262348206994111917057086131044802241921389994660389191452998796263244895639943480684965067219644398861516831858608141301388282269622162344816200463393836105192420238615381355300763869351374899656467656490048377894656993696796218823001884545869994413808488941024294523520941507810229496464403919753847538106866131259886518614964438423071127619471605718247874662716135272691275402880084995369009850250794103323229425252935494812548906008166026716820698274985549671146986043274275962225004747213973560401129334530848474941077514286552391862625258646991018137155472995605046116694087930290436788220562048917622844697614309443234430899558929406403214999342812419675152632859485494231331077164647180782156304290135502770496711502395509610783788324138666794617540297472024571103943731724701683295728289089166563488112075683224778876458040678974503318796245001825681006974426866696526025241516752801058168607431012362050267301086949850268172657169021058618649299987730712173841934318657225515773759502715479338642125812604947463249862903714348856764186556958327778491532969548589970021195242333702886848947022340809615805664499133176751509789069077275912615701287723799666333382409418820200431696207064261143367104494480945829140790089613204999497758518233435389418770687131724729774567784386793954351440611145189725680224155047446138480359166873395468523149385713263586417661058460221394225017414678505107939567998841204389335011009183702995503220949186961068562039059710290407713680969686060003619474192825019265648984158167700549570874722688256456763465301618680646348752102116438897045285583828233454820256430883261069499177787103185336043793031784749914303940378178589166110237775271468157943254672250642238669438736669444638923095238604321175621075656552834228749564708026605922389621614430957290664356566696114051740989344287371650595304096133891490505852706073343964912555392385056468508332478451859338800257937618613399650941924431942999032719035785369431170974826567387915789540569910610438110900431579968076898088124517614449953119383483881607613100739379779088579995060697920513458336622388611853382235988408219885347989625322866559887397496510410103662799349035630293468630008540162110529637894127855275336191157792266714432726625947537172095681929707245370331320647744911175925138876856280643586729466078615472623963406809586850064139032719422840783845807228453330291005540893148979172515946115014186258358559055856976926040018967585519692879485850466399697958170056310827399318770567032255718025354834256444143691595161640619266661698033195729357378756631438448947222341368303552420663802001638698098942600736037246395469577423484398540293214072528674401444899982614699797650254391342948531374094951503763986166886811162234384477525136531154878213413594294893797575175957760243955931223460494857513383222082909378405919550929400346848879641176839791357727626197507247805607232376384232244152105029554818799635037137797156347618941067322657932043249316375630056396052154400180477803676460593551186385376097830367221256448714837662486371072573867288597699319169390264040860072281793764513484483884241484426186945857468074904073074201374982866019792483736681435796392244115059579891520711675678944256102956925173354037958361165127041528280946451122418278296280570702312770231505737281618928860265707611166792798641709201327901270919402523292757421177100512231835744141776586825014880023873178930961206434689744899516272131342355305123835535359945789999664683475397420181408906619131894964377925799710913199548120158514068028614999334435921054159217120834513367712991647536122346276244980426019202771084842682020051432486963809281850219300025464620828650305892138568618394406948900256480614526238343411811373917464324643493718714826967287427181559301585078061193998895549413024260953725303972867082579254111869651319637293530756188850808470677694132963738713214855871154408292029016417536267639107619693484285872059493825565083754478488047859389035964105215425482147090510771451623453836983974398713497622280010571001490123740517327713749676926372976417550686708332057806916566525251086561432230393146282712252839107296367652479256706234695722391512760630393111092572480406687961534356901152167796988239882178104481818573868645116391664151101412538766220956731353116633860445675556428398493494936086542881585238748648399115308258607658868365147245569402196610009349895362874634883026085482507772444532774526897115644983914512785302025037752072892365209927049087225047148759828091647132472683725541613861464456919297397014371043969556572966252726349522744173347701957803579532714457004376765454617246229198234967956631715656063359665349152965863673207328316133811606567857463344715573215821423393413205268992003208295274545327135450260110139646620978632871792358013859516709154615190191248296567900698799836625217294877055721236871762867425389889366280209007327864186645644733798504451197250765773353863010193309529211237803423335870987666991692235128859373242481403365599043043017571731704808518121429311740489995215106997001831300130360503857380109428568419693901375514217047545378542271197330971350990023513169417680556347045115364409744976671233538356511991010167808981177995675335122859710785533339741315082559672838861264992592103396497858914884532833954722500742650501172519801455604134695637702943252778508758094376614154690679913665847224844956760598695521803514824291084249455823780484229269010245464523207880264213104497448987285404424607378470019093368854606870831457813364572351596686354753625205541485383616156269884054972239784331622005131174277855421672903562079126626885255693082329682107943048956724621898815793006768780780845809006443538493744506203282284236498328161531644715163266476510309891548591880837707219826973267196122158668359367400977811386113657322798223808975427682442335058650779872285889063404076385806634955909437717351402045271307032273215111953580225615801940414624157009002744540643655220417402025323160405562605075225387449235633882195663787173419601012491002668800615986454770481887329117507538076997450363313971627683650772554590907173195536319885334007098579486088696936967146552719471817430399488188795398740556425222448341672007624849552098852371300356473557293654722792011389270997673852538960937433144996091218716151030364255555318639345558629276041542419400637443329937047415349509229104278412583676487498311237836191362726363418368891603970576728345710404705711706263802302747610540075941944644168341226690475531499129083417909100814672575047316285688314550293944854921951048875472158395181182787152593830043185567287813470502894764034423842460327736147045542138802169724997953328586213153959520147841021744692226332791915029696259132875007959502904191951927350180462213338002816094723032300459353819923833967505071237746032037970175076152571231890089963915509264501081880395677485463617117568004341281169615064870289334728275572921960742204615678383921340479559564279397628198819623768399313631537454046990225881927211213627723340994824540853304983293529152352909496313322404229454095911133090077237591391589904894426801024484761502416797392236584526123722358194669428233278320909757015505034284423972101716137210166444093756845645923026313448074706350803308733078678092926017927679239127577488621623642847986230416617360103794849938519387766554112829791143625159993564234634529529783112863786990508200676721848442610270028514732809261717071507125096598665522039260944034617877972733334918065761727846255292643354356983375096135887265240278080231363891975494432699158501450494865936851541648931965939742855833336267846574845964587596566178494891021892267676918430220331114226985830278426901240415857378157616494106223831768439148154104616185970864380785699299105562974581756655206809754370222679273457186341485961491628075796897712674644433501933990462109610899426402593297647314793138706858042021449971724601314217155142603674768604769043905950066034778058354915095599735610477004572332075392579356248232050206201469643858579795224296965853202301654799368333178190356765958320778924987127930045262354758207870203000407154499767186317973705997177701438739865888978314765352104563977151294044167848478415633471881765817360869804852978485736771801069401260302237987296918275049438411844315827691716130309457794759669719698388687689650258964180777264231440898417882696468007716453180674829565687676043180675773488734619661211972657851419259788605194825702318330102626603947907055176150626103744910399917569970978441445779521273586455612409086254758636567654205183646488032159467357075135611734239182200145543888478953432752674649169493031033033297108129262598229435842335838511777085915616569438701628306479483032502398967175064379973041143431898557110556760816981555656703915713572012228780433940279829306830977713847881568725078157689379983419408787831213530737097468313281141753141534971534244859841217742574663550102638092109121887412747444809836535221633917995392963553356710061706544693740542596396716513789691232377161208957428036386404963714623245081426097297658642035559662088245838969176197608222618638128011959535481948443848832358605145150284805857498094190021309572978335334089525688018229044979629548036967626443519935725530755095240672262188006236797575844599303758415314793575929678904046406319784903852810289111028919947084733520542354407503339151753601278714544573708292765771820020427872534344808108474375911628497107712149976495931877964962840565914863582827592383051993557161165530860856245347155971480642036213334292759158150084219141217382959175582342539754548553293472444233846585366477337673528856498350441361708265929731241503793681123500550880488944271260268386002723779156356329405809732402468408336860188147164213775686265702489375661838729996747337117222581090661978654529507417883697469079418737089904255625054961960668047710880277112310317687727708828178934018572098483575224910600093915947509164563044609214283583684029563105065835298996551493612490944476156297830083472401658868469631793871922708881101731548828654758905126532299047491873622336412381658330453920844666305916295197730203308694646022573099993830255307328820819069331067499970181573399833481054320057966628397144341173923983588136738188109491145049225007560539103999177910904549892175112533325801918965578012428322897001720806265650021724347243082644963144499806503950677349522580110812138347690798538875892614943424670977593718451439484876003685456309002707891755232586868857395350601933979924388881975733094907422046647670412072728661960125765836504977407724504033419401553906458128529552115512052184766457150966785829495421304454580081689702988930991741170430281044479198847342450962629507401424230728742901064400577083864075096375184823195170945283709912774375866485563244303518413202102592899811420143116705906786505581223888839980976824443682138300466008725077392960379982831608874616914280211593610419255333147028539231723474824814754156561175578078821582658217989927308065675137313835677203283325890737889583565983253798865526112704907086518143352485442144547458448041236199479797969783349337592419072600740068511501224764762318355668640805889524085109375962461644482619933245117863825016775272729491945388607835636744799441949395636261487562110076030746138587803199524398445872863873832116120025288532331968838628294813572485781081019988297039587369478656467440687281669344190745510374072193046568305238277538002136575814817818852650505254644386307216680122762107943069887315971562720047044454183867621294341398780422834924372446816318166963871908260137592083476287332495792793029099168100286337441125311807981455792141914096803759011529084111092451126047110659023715603457402422596248758772898074224921440623963480771364639345467643038399596967261049004660250325487070049946139630670439495894258714388148786013273353218003191555588602913597686968087892725403112348743616292387427617118694791742470403586385891760936837905023135562800123227940332136041766634369306392986053148137401814571214165938769757711942922852917866216477806510227976577667720005023964134195237944160001555836315124654871574350964728666643999691577198839420187732823132812522926333080437056607821934039312874256620571901615699816810923745865139713070941108324741181147145991269000857347837406610934780263776729685757467500056317584257429187187823205716582414281983728269896735770054413868011624965286497514558894317175199742139175596509094612137176446325328347627251864458158161566002962801856891136137041851159097392661688100264299005012013918564619118201083716170542575742863388087375601136145818996131156269644800289116110207744169701880463457272588741788053704242314167293838220158449392440694087443893114302535589408601320943918886391475543763374311691972860980867095241123035502433154843650696854260969946288460493987520636262565668377386078416824173141644449173963873719322806570625239470782215062742172992785488091676561149296229701567854844840039161981927909544056034329516677749121219861999218311760008428057786288835339342856620716316611502461070454255175669273475419864681276140032071053161905249581376695780227412974698172705418653092132232240738228732499208482750373638273309820872056733625163494514037022762887905305334247812896824397385902348687628955962057824116414881340692742758294948224737402009341537007071058142413142579966435874938566257646777389948619405516281881622161770305052387454406431547308957063902193404762310307107748624570350453303720205757122567079961283091431636648999587942104932719147056463410551523361105139468910294280631769358617336260680463014767312103571848694881526294341894115722173586106267755814650462393084194809345608735255278701297397789619612821739240577118064502351810268247612596033829232179755712528122916995658144817986180964599036853181291591621772314483672250554483757679949295759337342954265448917523283039227464454150157644696331563716118592338464874338303518248791727375303445614913841897254593497197680269774936193277426352698044650963079082362482115287877542066808704891895250376464470993211286321079845506486481743728154490939764837010898734018551965868759447166105463511993341047597851996872264325245872861658626324675653794934395000342753528916214250731706533319190974748924070347020906077205947741355201419957259511026360280834925607724567397608143046448038616967880968314040205423125178795480128163295561380202540593944599304411787675546108395473612646212455699448801745588155803024149073952543544595405730702026727693370813219691387752621218864845236415019379241798638380012679251705979813195302099762279369217185848943680558124068540786107533386396728181119190377794346105681339385010513879377064135464050213458928776467588536372892892775517612786376650406991204804271309393340366465936521414318987750104741894406326663954024426402976760001332627126494580828986218690817750858937560870210772676112448716542680414779074020314981273955608116456961166865650981358444553234962352015912582798799559101013569530691239683147449444422394021002366099035725609839566497278250194256820071186561057148227979296217546212606155346691533102585446203603034581288585743589331241931095384905548027955170830318221698386690806715384770134013149780531115790247214383253243788476149500382913919942057458087329990096268665169635543265255063867233854702357222951925766957521330366051744715723615571761321245801001385059422450002495494600686728978265537527862342016736145843728778490513864974543807032143789556769158092390265448250093115711181675002955546806626960128894407287506963149240280218911424894257554244697861178579122930906743345559564494015987719524531538036598934472860713188060598469750389779478107026963523552463786603497209304482527435153184549180600645419230002946372547340046241819587067162939371998973252957540813107202397668904165030822604159676434055145568354854913169303341373064176815949003999913223357272638729780466418446092209874318680745439176819978171297780332369608158752418835746923435377980038664568710866759211115152977203682596406372172944541619847634445662579682216939796201868858199466071737329570456842810276658280991826478926286537043981331001869848742227454237142155715054205492199188434284070078813449448674760809300574305257492342574888457696367765884439691593308422292632895012585990822505507879198205870011661775505303089642871382531694488742864198303890824822730302182293960356985423713732237511340694892210975252415794494156398934956573274372465153238317071682807949270322886223312168567322797976384383680366035426493845127408866820374859048918422601080190819007181821310699612951685772640681415308823458137009766205853556876488950146067460704609103156017268201176791310142466621885862166129627238553917183590435924174717787414410505561125270708643498920349565680896931578734766964623705395434710825493717435502617038161448391416388907388725990619953739902210703894808095679797331033705110264147700353696738402713268057526801374378662891575393314964448575922041202018048336072647938288696908320530414810535392493836328352065470778620707277685629035998466179315831866006848319422175723988549069586728724340432397469059544507476323985024676590903609808927743594991346160811207588188926093528893779667709984684624828774658821035892375656759299312575521995247769249287710028669273331732766307008291080796083448656454123848923977216260908645805066551215096581171177895885462798806588237474905994775585091629762742532788165599552825491857587660506381468974885100651773479837805495648549623765246966049169063056844462592480235817501703009109936336569093978548266262425561617954202079891641449635588582642335857728153223887584533446049792589197959147958374220816845119737783357546415348862343752816110515321133050349682802862603209560725732285574050963978980882527950670380130986120024457915930844374642703804964463643839529398940745598862310014059408333231794751823987506593689881682791186541960448029417493986612283000276723292090740832708709091485771785219501434879452953459464483694467940962775999529580631815961925527111292532616488749948335953869316322654136884592716321611159389063549722767827196712906475173584960598527138903051974817134605636879162948038562091968916195759697903947621649357627566801821895135223300967103879407726492141352466914640365565617728702188655568087063377904642940852302466260695238028721287087418613750185041708921428228518920718642609874455332017227377483119525749630972023793463338022636062914495875158610326586339386522110574014844908169661761532313263915050546243286918795402520537279470841522262719613420415381216702425986142974474591961120400365846247546358548978677496882400179663600547235993475878202651691555914613045672867595259579884482564627939366848450253059802866778737514362851224740997507876286560038985063615700060779738312614584978813341566229797595718531990969742804004724247892239557350152701641998524973492322682652147474838408634235795790180830070128665209269483653547869865319281261198540525555224509579787307745073992266108683209767727122307935660269460827975056312427817415012965274802056980652176459711313204461276987511590234756811919437839467352824561761775413712095035211371390373781028160480593261114146314742016637219581995493458668664219046866141677140791602637773923248929494859232749440550562990367943395932411618786964961744197622019431999618967373570570249895583952512431116781453231497864249338624209649883090675448466916873096517051282595464695489392211862978917851421495378892945197787022083992405460320618034031713691226935625520774190056681501145140645977419292338825864073579908054660200313705300012143527292315286933563610433453084698963198274859028650785735305982310946372665768182514642447089280682419768222786655102885568584616596464484851683358684126717379723668143353259753637136477373907863592489088360108912316026240185453163711880245972213708213415698751385792483377929171087676980856978778999063276784342768278535883018108825483264644010250961210447681978214831814920580808873304670778471688348436152219668712382686063556286000548551336079599753536247805847767591743500073714616371996931409466341913077542695528479980296438779571759963124537028145294534689142338492217970961890256812476090439555861772589841202224915067990806046924325941606508518949311770300494248950879098261103520595800703720835770776583212252127522672119212395979726577503271061244594270708425685020265983627201172035839092587274717035739503354210763885548372430887728424476661422554224942115319742691421486212859002929693701014562980865798443868918606290813328234813733567366980527978681713605146361109831200585398501797320023727093268090844354419762563402705595545070510880208535931518052144661213713788062001924143953651395800389327175632769430374240080342125494657914196415256972253132384053565547740681733324623697358161794387165137777495673594010955933666913100565942806333549667265695757933717864533811047376802057135470198686303200004454337365590621629411025086234483008140738954019362885755711401019501854885143643694267146857494276725119899607011309075763863193636234839417468408315702710870987870780492000347001982064909786350638420015999912306210301009989003550423953159879042003886419801818535949924991057555481176544617224408696625902948341389713310419324659915832640164712020924048969151965382019586062786292200696957240930426419755249579692939815233611027746691317980908656730100976872763663288692949973856958238464881828828440791892751289548928812791184448979825274357574860696757220653518488145064428193211713764312966952295113047953350038651540582762628679707090686493710489019485606739063157844891571351619573025838577925707513407976305511040202087413368111006991884655643438509629317120215993934286651330061636316777784686186210629642487638532813360606101063111976428871588972728667556578513669525646201706115456791271924369648541167776169962262901137072724674894979715851692364821269557484935233728247893648678557567458368305583369008273441202399268714740332449551589931785922925035818728922708893638474763651149311295308149932559358774420906175683891163072677705555229732194877856464334605512067363134349790373839771867302490459153764982893461709019133519599694338220742624564324658129145852560721756382706377204285046327069610702677920380783482489065638434280234241538919978902651895208400348074919688755724974274601528105800396170344356606533421171105461297457852944787772058800078350301271251797101023114869447363527044580321118004359672969717291714964454624983720197124969145660848262480118258424644194145378785301777024998529901249106415203862993420741143346341060312232573425982361662042818089313194954012043813537215457635904774609867539703686334016250469800603162080621971030916769021078655626863572802111957185656909195848832187788546338759658358974436347734930445949171955032211863741840984142588582474908836614756231624195969444908474997378298676309370009626734855376708319478087971806884644694533862314924491210858623017238531494040377141858598409809119907160488063994250410230188887873248815282178346422240069253331087373741194383701156989076939402952434516319277434086870881400791731714650539801823696120940794020815823509491906206735160568666660183825748939857329285446956228963209450303774620774768720495297551943184237360663792422362304695180878525816711454030772065853511158377712402722178031649937547363602739303838617253642071024819688453541026310527493014235417817733766915536574582187698704368641808165860226940653244368082790413879689327607087143350752515092403111155474547950595814640512753126214965106357305425598008936037480266195437605734488461912884851705337067721070113913985655183163288032012143064595852986032855933250798124322931459691892162788011592018857147634477569691563340497601170874468826567738384911574710180865667095126887890336528181183250727336661456521939604168021237645192655016127097877599802084286628564296342399680313835819333182555005553451501481197625156608028531475762256927534480851935495711878546867271872774408528761971673867060698576344024125384001511492304087512820619312667583623886960141081769675094937783450839460872111875222943519522398578900515881792177155320749322330569680296262355246298521908441865776502466211354176193125511880473248466806210205026547956200615350001957367430145481982920911393972525367568898586219857509244822285124172114663766656642438061513326478411586803486344385716403292706705918945522571360091301225941674820094469188922170789783759512761454522424999250353140080979111287974343058120896661291679295247617731575345731220883384784911749854868259611005326316482101297931749952208432094361202698678190560525379467068914869179844901658433605043572413266908801632766253107624568651876137884702887168622215324316117342358297507626685940451205283442667075432594163688773222793827621962755802365167848507012177772564873238837872500096586425334291976567595073371849201779058745113971416767177889979119385878440174635171758995808906532629543967512059945551772208605926023802709028339548767080809683868043934410031609105399814094477212650588085727923904931377802615046398741396607316871712167466179279284518062140952426759033934340077943362342003139520965720283286253819952839127420365931148806361451319201932136866233963214919532667516886812043289057327321932556176750762819802774620735146353978608978324601071045361116722341634202421892520030749077366405006164856174409019020286691423667236018516231828349342125275397738535143482851748522745244224474680775290698705175673920153222471089269139269384250544241443876551250294566444090617662325088742017774714332281746719629542052676161307379588682750600529203296717792908835441364534759922422317493488876480005130965544244675540869775221000913526815838092980773521996195710270037512788318101705556994654994382531165853053375886786883668843424576787747582936751654921048395149255507219902705973195172814869807351170101404733892253792898417397027781275434516714223632453748946433404446066258276104934907866825168924058379836927451822527640166379208082608668331650987116156255438615238862690764674504887354866421417116173271796754864754849920388247540255076103548119012223808648025676113369187040161039846029831185904973927003334024223723196177440168013692310288694626574394027523337866551870063295371857183250721104897280769464688464787509525425392978947607469607262339039936015142310221556532617795932004145269295312922274263790983440358199380538075814807022092845375567699781094789041910944799087937430982099268892193001258012031733624034444311627938262658719008130691610387736459985871199143843985400916756939452700249190985407235662328613069346184655958361252983246118640083722844593867917675622141958078303834690221040675623938595197412600961088262694230441053846276178295575590603019095086241451300325567270724957863759967242027137918455578290847050036364984055384099467067817894822873081813693862700673658338556227379419461092039255970188150740612810107880585275375893447540584422400605956427550845394271959455175981208340594255880580132818273219190069201953274627264571159272193645918389722724854442647870533532320547978300046050277573911415259500285076623025595106059124458540358694340340180129374073371865517091578450900405454210418530283354892418329536456811985515330452030940199000978299149149038808309545660722368465779870730330338289432090758194810602297517331625215337519445208618248291471129059220913351143389791273828803413354203607417062506834890292413362173759287930842157297557261969313057249835943021469071775508631374044344202900926473091380517354495767259247080994766635228311905364691428221314819780715076244360189160162367113870599908046886333335610002730497195679577346773642450572664705216804492732690587258264581564008608660090274317477196115029400157797080085351479040401685669681931765145160746741499977024031636190482212398251089193324458303317801639540524544076538750396532765036844371199727231272445541748753038661821255802706212137704892764667385832929206330335325506233749934304297288117323558661371042951651093575014242515785924041043117485034482477827041751181802539170730906761795392927244650946704491897900845035799688608376875174408750530617442876261454901848577827192106608271898730086525144523804138524594348761684869815907674218203076517796238881697854008207367839686003812454056517451766595703353205745267903464049285735973744183813131448842367353389967080459991958361857713234185283850044879931838891142509450249542211173714345087369512605083586800086885234176154073895903377955946620955885533601958608437844619655963982714179424800957568114443267754198777554263369379016272411040357517168438877893356346420596576353105259601511167666568583405212578604880628393294552067443959840958698143338717091377176335878116801493934021611771882329063735558516517265494683469491401382209751796603573325950015030543693599936339588086796421503420524396157335094024343070252521057739565027503202894281133914872233594040685107577666628481719061008855950123736318234644660658295179474274556026585378071988763506093247003546094920248883987333629011426962959466758852551992412385615856339203519595370476520583689265633786469932255158893885709146467035576751778418001373499178424949659751980047536746416128242321364943724296192361424100361500792397817312192005962562538953919380045306623596824093123832427043553526328274415247174627486731609147754593645888769333046757758171901252098522939460403597419118209513672931450939517181342759127510184452176052906663520113842893231113166120881579381767930173512375327556644533432629716289041552111045180755944047927336186730579569562975790754758610466585841769129233027347938798498648230488627044391146814997385778702883146002654292220812277534455835664750489186115005010928385668194122814016349489673033862451891270463258261823774664643625361970279805663103182736829438733829950837805526562237169002765015668885674540465972844498551887081550711336915696898012751105963107226562282954794982286983873776077289213908359425415214149573237960223372235343641112002003615741603596217173805873942134168259972093017268556222578235341078801367001336225381158685272177029098009108504669239255343319224001913836903275891751520588488721980251852934309491654513609304422515589929716586021801239768054632720090112009494815176106987637333803610418459186474074312135115149853198877027559323886496067180314858499564062944961227570190868900441832067767345060026611561862966473829062629057027073498300689599562151877234889214445881518089021464588359183810887538717278009468399182327838402212818468622642864215426376474315770909479501372384617360254694588152462580417598990710905612808556204683340323154917879648668768196615256308248767034612103834457205421109512276137488753770897745145264522295990541790412151582870126482521037416653847707394050137748665636377349381278504607351355863029269188776786961002633151092757211547796802665014560048181512000505465614144704298375988843833075837811807027614587009418533523911690183966860129966972827534678571417338382601318499784176864983126460477878586461951296675013664274197478714672180569671434439189797151196576819377558257414907013622778301571428410996198509166400925594126057698154394302004066581204876543296689212312726316412983110371872533938337460533417676959988518517800157724028060954038661663872891717598477327588033951677875791319739428134814105695220327499262743634826327184483589768798099506563223086737478303621424562878632854660212910654625065173289472278412408119256025144153090142853836069943957471360114434800287456949776500760911469725426973786194688244232823769262171451794948759563504571814835312203914751427561201906398744135852490121505830150126743883454138925482191608801758965174555777056046556253770127961982941616423241111208962150100133346692928181573752919462160743930379428223087965229375317419111768053364324477096983867777593930353686222641188521406267317687096677094502109589315828814376460618048751523968395107142901377295007173302194136438505981318445070210395051284131124840683030609683900872237830755214242725432171413115352413846203712255823675285018095479102652699167093443513584971367258704269241944923171413231849956164528092145401596972107848418834425881686430899317535678714537137128906369095169621136621883112511507257999511854551092230272935656129730586475774492257898201818255272740885897530629527552717091172877941641494851314663784678801591567324364152753986369314922643392393950049808210883237600121978169829495641869233238132166235813753275542208775757594265688441305348305865463192020166522903678325516019562333231382009561710284577778353637648698472410847079845281907649126418296624728701814475903562604446020314619283326684557923512078679632085805025801822681030136589819887675373621630592872943591434579320809395137767764729509913220433819405160342850909299050753674644861032778369172042369758146829727992792247754759464199930870022850894347494296608303613887280172080974590652121445031135201098523642479452061044329707453909096222435448052577311312447447030204545622214192371662485249909154980880219036892126341564272851324440044084128110530579801872118099528499100808045894462550275846629608527130063134525097147205021082396136281344721168141731808695529151392915347131709157487957137594245398191129550281522743640682919655777911434911333281237957523446290071595132232102682197091830900995103951399708463603166529269534492903917059599752315546129443507337486811415990486453199339985331973698722018091980809171179748552273963024321994416615899534192740214830204332419803751814017857343954635338926976184173133983212590149973449840641438927815183377974706230619460524453159585321437459587443283271038198930359976738048869203407473104546930918312910040939904906508936490580945464669432819657947054662566816092577869630111235261869604417038725756337154150208479967822192738218906761747736070920005405224716333162065154357400035155757209610043125741884284083928697201356351646513319276188358259992319077727975506760434975351826929111613142244462204959248827957093606294562248282834567182422718884404657128193469150506605350850453670417074490919652701240805818391121618658439958751397036807764551936052108556757715932570426278756968888620799816330519946296770554623308338009398153010014708659608735562876596569218730947077199302988322306735544046390618405353855455956422024571140672978844191256837688333265007134886577142246505802062054791782852326331832123738725888691002060209635855334278306011881045032918558455935302576362225125493669627940293363642719717894044062485063494231279233245845825582166922845056646826779768893374188194547775522347385236067610443386932011182929215117623140946193227403980725206685009049431046828262392668252096585334884969690353135704017421551513171843440795469021752786245927806195768206242805594802876928298924509670256977785105481048971115451417360655554197661351364596988675861125518257626720746332071336778431304141102050333465684797133330241452980896188959203659917726387681536857706318200059834645957502027832920552345340519423360213973324435885529008876493399407236461327426028750230602512656755387024225309534016321965232568467303339604129616887493795173518597094683921496588256275110885138265964984851473021468845717839367322591111856708348860670883662118669743167960098782127232709470069938271533125667455652559269985355165490684944611460748082366522878870624433246826171116515263311768347811667738799183274932378916847451422032796607998099018577991441331220561680238081676847647738753371057251438616552942053651486588971217252721292153792911595668184331010247180658212372457457109566083462547474077906699865012336421940506865368213824765179811964140920221745507049642833660348249847370910732468483941917898117096756168593565377726570764337787277800446817989991496705948311997557195851796430277160828180865524728854569277549282154265290799442794606481922798087756476863328227114428845673940757714963696534090640901429878084610510047031743193565093005878021163173165613463296955481925090092990211974806772760437661947839922139347390379310035815755063746199290902319211786797192827507319282849875770541254054465444603443672004578021910544692821435676486179713158459327784062618090146954051081938091919829981558679585619848217692774120242249997761425831727113700304880650062194532731059566434054779879937133733595613966941791070576195386776900231384420906111698098408071591721701626703144835921284142885199987917120958215975413414955967534329690589037156000673562833476247348415697273468174160492011472983561619222160011689479948289716371715292435178467541294958415774837451868960449911469712453400088797060393473291346332436219135842576321448681286626648608295432921178760883648357606279199314391116764733836519651024796811201589783695847119447681682811642088050992051132967459014148472905776118436933401012291636402029649493819437509686754778102318560642862573352936078658543631931468382825021694497127111888947312186852444389555751545819781805574772119786850433207374847574899102289690435217487513606199289557680301477922520850070030574162449068825627423890543567396013716909737050977031697110520917175334732155891260327071433227463323133145874647615405681060892754364775880837899761548808362203863838748493218358621732495486086826542697960565205664082859317954862469312485307429209312191675956134310711172870481429467173272063687775949530459220818995481443613025957288254641743368679343780385766408903562966183471083953910539497658669828358663812878075669519192939820783362295114717241574311012279795189212600764438768891492043908708239955160935557434336288654430392320423417322608687225874086720697407454820046106952140416986471644011428842159727997777183023360564709891643523956976040888858989348567750265400520003733813912547802610924413345153938619721736096117538831403533893690043331847690133689616951417107609574967946546824099924391005545470223355784620208145940385758243588397475868156427632398862743015822031629114425769808638198249258472100251161061155839806718218501731536492148743385726237382695125937654957261344154555885551712010055915569984916429428022647985325719519560593610720750750792049140889968175086331144515459455258227028245624457276483429336782971117715348126385235199726633877587777467301922520527982035690288054266800332382036356950951743105463141341073081990459192571625769404776426168711211239404352627830722015274695490411834857388962734337632961008875657019516080948760844687758320298058307543612935257887414570865106991226249222041757404710480762507401334405791561051194056508668146506244930306563492305038851643173359613421589129389541353060829246152426255275007841014800634611473496166926947929009831361827494247196815436624838766868169903151013329401253170719161755883383350671137919118328901948345691384252628943071375449831808744921842813323365996299110353397592097730287519217362512090556459186247254156308815593372419405040533972722191941274291325374837513317069055218019773085229554920819675699644359185695616400356944800002547629412345283114463932708455276256659916840533207825900868773235756244515558057289277684325035931741278649250265845475780701400525450775503811666004184526089178285276750261611701452393072138039547977107290202985743541936319179936430197667815861544453967289503266513001576603058197576346345463192585280669401621876392388265404829630271715145878200515755148221009805438147372709921253786558045763108720983125750400751972995451623769470698950700948701954632260345614753295949808773053783967429402061277496490235386321282249954145426838946877761685558019536755028108012029138166996682912781592561363819437201684456070289146613235908980647250752405554909471086445951096036794366654483669414794662698934685085781547927145060798916388606307528020053449239913916100998288611826161083033372053538637872634727825280050472202184349517968612411983152452923225317392091074694833292815207649538225168033954653380456443168870250734449976881916237948523088135177230785314333272708249808017620772226272270557428461015959065026452084295518810826438477523797349627835455461551582452560310045783522315661970541440374851344859586939513854893992191193063540849454395168708255090547852504661380289688622185531719896744907198639964343687656553687890422318390667302378310698832140032073997594740728728129711874097175216375738007610460659625021741382460903726292817215014770518741843729982103616378016517100800626506448431917097995464769961943107210226887754639318724747290102171213244554032085655646139368905036872869154328783058017803299642182634758762768722796066741801897040905080576812946366082848169494495512690850865369319576838595420460617754585120478175628217473239936363298250069650268640416662899057119100132156522280325420952469709849258638750323681147482440033701606390360304456720065478637239021024519621214889143113371226662134248022688472551014877844432807818804761517828273227106857742974469746342079254004228479683701282449089361981572628871514583577461591174933085882388247183690056811027824151764196054995359446567103733335943764592051280880490154850335719435534378637495303330210759423144972698395568391897540741673342318260974845065662994338697187366851952761756848940827161895544398087425914364003744306770528117505382704516202763094739230658381019316286551891887882873204118763088278053297094143894716155659233596766177877811604427716934972992112359851007010175114134697441100998778555679664113652512329274497917797370856344112086018788916728732688756692933148573882045712826957299686322227957471505668132600783519588218404134636311821053901773937890159011064905064019244609648550236558917373395952710043455163115283940116383537011690305316066020359748735211294623290901709051181302590759556285796592807340913151311008031892053341114391220175145497024197469144777290065053088940723757535143682352748258538741445075639143432953810959843298352766183442336781444518685625080397750669267686255622765720539012480471114977641082116131916654694023591354560963027244062380914053502757054227596738348235910584421800713220741411176399462491305851837008267655418643636847010416564590165875720007035481084666340849294426984363483189104314984424948574616850864841282928304572026062410267454471790418586223714787816706706734033519194044879630069929537327339750684691756974494367590422134485047373348532853910627760999500247637459036529790822558908359187165544068823470624083042203980762956586825820444853259375841368078102408858234818772898424571169399972819042685318498658712595099381544710425333561113845107667766052077865394437475916054785131253291819902568984084334715247624156329726398951653648435497392053846534311296270808457558902979540553383734332187071695357756700014195102503929739236783600002800014585866427130803496413801432541594809004290885512189018806347332580383423223016639522990748526547654125093862075331687760768144964574862405449670841014781524397866896394540706047564575524945108522908033695652991763316595778063100000498036152849336179283682939240861310321295171239460839839334296018573894411958552771189718187318060337017792689207183432913162363053373390910542069880039355167125591483563810370755996838505591131784530261240747492925044288985315630470318658710903352147402669817934143116239779577721750770779765897864008414229060948433734277891319673321665359654908514850514238143870874148546798663243214564919654207911556325246204010135365226313975246990563712014211456226107445742176184940599311409200167758535315440152815637505119161823216423723941113766745830315747618024613851640185286946702675463696068317252210607053199720816084196519744876904914874269413436012422823195546277981234144805618365554918859089517719594116251466135906162374581865613499792324684276634635874162563302889901568116385142221908067542222093988036990928766131114546205054890898562460570162207594261231330500150473035950484004614701270725502170308902657417640245504465317354849007293002040874123751483375681719186850123737641584359185608014030758544152147724444622291593358076850447657978698825261990895089512919442640474047734967089679980864861728442462524812126246983389777160815874190604854949689351313285782475075346061499616765570665416879154101569854175285696462592496701172361611906751010651880286143072287365930386688976432820148011980527182664486092406221701302142654840623611381348389592478076415926467381221441327394247668760392197996526144217136861410907325176617757027372711597329570983461324234405823559560690183461964471393159278517702578382102260302035616726911726308945266840048673984236857619775854515387926562257767401822391214928868252811280088846508262512063681975444511328259853378831169110853551668026348234428924691557694286053965318802249404568174406518126759818665330391568590621869250105897632410220103013365987179974862507889731912384178725811698474135947405679845856812443817666447056163614494454902083879704143627833015294644668526255418819880807116682704959843044596489835283473725924755962628682021724201995617222531826037983088668147072713042839157958076310016935495234885076744379912689910084189741269533215653200742380230081507839968234021293783815342809239984473605160457018422426085267340193079819414606799264474986004010772642552482932671088403300438964234207634655223283749520592677988142151463666806525449786661531691384016504004311745154912925661811646715218962113890211151653483229142962846889779511079851643197791852299133413107550837505537452394159183974736234420945896076215691843325073708243807868498088836697832448608100764668547065195715103300862245819703272134993859282862293444235707423588091555672028675916013113346592838472196584854902514028028330680462033318758060588317227032275380067835103072117462719448355315080553885897290164394676687173671964225454029705061590812635013655908146983072619860770835958441716942192055758118696142096017709615604635237674427629523603687944211848317200805829779941766157918068365088092693710448489507507090203291988256119468533913780871958557569922428476969607366631953762547375153835581292873935696186108769573346080938958717823488098594566731358899189304141783035201839161694649704161040533038118896981110743010988446354999362994155020872311365321369800620989979568781207270536072244420328085905735577170683135363894753245832543855511604762212409862762217373209217140740498222524862249656158393054215610008849663446449696322992478900661868703235114368916290902163067501579853447740438087240903312186578785524199657264616421856565647365866524665599719307095233391416671756908822144069381784386657253538604633579768800893840211356862413901236635169435915473299098185745013074648883622032181820414037283797848736098720356487236954575989443282874898973789377200229571034817571753213302953783029012971339264405554702988081780826750677123371184962609018810847123600472349171416898168736556892060709481820525862875310262610185983398403744393090074307326295336033134028590433585033302008458979372728592818040677380708031438094250287370224128972755509509324866110145007262232157165089835903649846697392792806150265445203169108717667388622081587762296723304197977937311516719298927251451740830013083064945222680199916999492585499624632278065081477117877988000817662979793014185935268358469909313578954267876832431796591737821873858258649744524365941360988224141906325524886692625360547639918852208568271265257081686941043165231593651982520411810986264721755198291122750983233349717125050759121955078256416515950306142078007894886254808680053071376308777864359468738954589730392351133483091488202055309760291459197407767121420755548391978272206848677766196835794349935072645339929741915840165863197965510035331898809787673758583887802495333283233358506267096085731973401872204651333045819987687254847904281831747501423086745216196567961510345350894846917846582651171492407772070992591867052418780953686242646792422660165944341248257355954635635086992919286317721131830382134878515568228107061305813340757465479721166805137430338118712914986236219433457502661084727242626409615303176964581564914217710326759330293726320067498784248929301687252605831848910794055841647611677893966214888397585913084412716074153262796706226766382568447921130170031812593423045521465330752417722039196942266699602239455929578396143733335632542553965764695854265272521372069556127203261438355702185464517815088076976039584570646182847908178016647139305670234512114655731878952169170819463981512211837364903027345487921717855529544614560818257477692957569946787528010724395352238608179346574503209980389368370585388110577864985740025088729601618134976597555744469915240925513362383034182490894302276279546684687088855479072755698674700341672785029119351851125790403117482956229186199203493413609084987235325601121575660190561841144255788412073793964105985125387486021694150701776850428879247764311597545970602580635847638317616452634909835649505755401828731586961718156738103338818601315006743163166462190490976840773689879346307326627824181839643787389332809532178234505770069062089142154838275407719914417145078457274502075733245268912785890657445429662496949393367982664386244490493958601605630987061167912646093040510110582909669160223652188831864356172034941389571856382693140901891998939397725595348862392032880300392765841184477792747044241184417268972500828507522421096884507497890000447936014457207240967050940591257046646846879248933084224823926581632686179328957991288717435872888837733701122091768798342744965616442860957498940827876316971641194676779400866746162191529330002735596160683173457209273560044791270991822434382569854532246730250411582001333227005101921462576663336226003884043000954583789804868301821033180230562173951960436832331560808788338592256426033047503376592818994480783288738303724052891860632578800979929935412868817366437091871777329466818370107235017938008102435510611869256438775354143127243722551231116237467041178884827741687602303856677140717487081045810915028952391121583379554490108985839624538277467921279961662267808363394258407830440861151786106643078040549221266938143841465267592238754299262641023440674638563589659484057279622054806598305242513127020682029738659811562083293789027162784677635454918053000299953527608369456255982665935491164936824780746252355413665927047346169501704494889789894759517880571392508947692355112111922716544390174241382714978066518677683906387614723623014721970230906726598989685476710482385627267296577016252026354515525084256501427261997258880890846508184384354267722541293733673884299666982636228580660934859012497945108176395928001194385915136386500330165125983173852342134352631264013302873389394100226242272659346882897124892640347614882351244814809458407645966255895559021739494991560818984141478615836574595865453664203321879871953077481025260027723435183051158775370771899653199499010801700387851262783715228799279299302971988365354706345556124481472074799290965024456985269314433776391628124086768919368986137750690295831879344744310424648705548452394634662112838493488485521330665338658317746398627090408338844254222216729161573795035146054678774602656992889674730985557953001420095772211865082978130301016465710560375170399029297461599162857145375655958327342250601820949122681611305044127980021403866305021888437287602174998623513377417711185121039430498061119182742941613512808633343283572025814696122797418149009101267771300517875673971760463171245904256506316839546793957194749890511590304506128832037438276734914954026119229712953248804884310862049137545390076792476707757291294451303569414659356148538503820245547481674355003321754404248476988191389457486448525233542647557370840484041557053287878640159637780450123143651499056794507165402444150426613030175666126601592842820574706877766985240696301017157865347784420502284651043393947802179168275178687401300218073916005271932945467840829216266451414073073470953608495880647119606734279649994174952391261622662804244461614062076968005718830530599877880549389675738456123208570707314531241019738983432707841471206443092641860698690563421766649188309324987666935163784441717998231363033942258380854379895907568001869748863626376857973613720104240792117308122416688623349858470632153843780117398338785172890785643768142524531666383192179926573321732438287499100601967329485913485400500199635563680126069256369752725100195778307636953297899213017489365855398125730321736286196802804986300637274398483819736553130160669878945231400500216055047168727432152840228482245840640057081058517141537657316444026802231835463498037558832309556846473789215352833214851110644907904354983970773693340702949203490364243857442266316758835107550810250560009446856241143492698533059621809870710373050005504320372105434712386921168562026380655601622810157886169668692509105499340136647927722474279460567292445431981060627576622504666527408724911726514024125326947177542757981244928022682921312748210675839848903989122331356326167612336050935290969675125089845441666816701650796094336031870587679312460969485590294241532788119861015088926300997202720686676969395503582877879012820952394192236648728007277995408701328831439717035711436522230471095795408715210854909619988006302121252089039505066182859624987964111436538883274580771671880323773399779877222880853260101499490278887031523702884990054026086888983276702431302352271272760345480031746236382804336755993151524050326879749822223404479201370073350724441322188788502478582817448897897702530246203517272998313073274731976299947336190949443495879422976264738859122109429548031774638718361990936417374264029705020551995161225728426496014250496376683501960470460008609353708030552485296658897633826327675891806817081428723358679251289929627646651237259936005652053505106460905958152517763353260122645987173904551131487342783131509355175952502244335984645242503573435366543971400034310567971283112313203915176746654739019891346571378389317996793141675371179374071487931333562285727224718391394974661328426038996686266303920338688239609774313659105314586922662365611372820012128773072476582189577699447868854106407457229726265303929479418475461115534260991169645309734525688907421596515487764743030150306802550431702292068876539818433142077588391819116057634357842669451152177710243127549578143068191665500368065736509290050799454247030918912923976988749429142751190087201534788345336970801948947158699899939550191965006018582458805613136648805364363471857634785177222325048385932573094585543992381512241269441935631590037479529127724223528596703016876752306190135776264542555020668922926407952495420657100322376813878327956561132795053781300108360863999216073576591703539160574076748355751302350713171023737979785304061622124612014975622032811404213148404310110886287292194278628227419323032875740313282854594663509554106915854223711608373808759933942273508422642942542137036065032132750203856277905959242920534763002397719296377581828627082642830253701928422829610551983131582739515081683556954965577759653436087743320005158621016737712593715347103407626569628854275955605250926165174529579873482570767352135135209071962501720420573793519659908210333252852008051725069842999252613402642255480019096345905617399284970912224473934973764279760968372562347547828786291828967165911469906704407950919956575907703911334691617893364661423182696042003391553833736327806924968540218127742333008066783530905531500875155367901890992581940507971870369145085117422060117301225945707788162060987895955553363496820918830725403249763975306672169527632011611066811172491521861611297983695956544889512953429831144074611656688891864334194478467534895635510554826341922448689837724045284096270939741562189149401101579474470963746396104040646695817772825933956872515104747718239343030987256758851991744716108039935516077535950721699251564967549587036501679654024825186334762415605622032036299220341804743857312450443372444364835437139312818311741478514051199238675078633792151420695248284155182345024467717338118503517235060352530339194479016499957035959832575691058866007778556677250634234257507048829269122209181782548904348872106339230466441242758174896499685389125986310533049073917626100867404028898337560062834055576000097448774679634868901461087832936045012208752436378135706229081770120377645655016806419679170797569860839710029250884453955268244421321345727049869890111024156287012557395752567635305702133696348957017950272809470380998701081501591457682688185770790973809541349603305614726191013689483205495089191189459278521529985386887200981099121342077318432923588509747914739883532907534918640325338369647871098568027522337134621306507320093951402123873027784878550663309101329945274914780078963371175906967382832038347032849522817093457848669323425532198011008492152913090357389479107418546882412495711569625428507153512161179227015806935273969722123945680617409969592769041089277324860888090045961094825699556288338255255586209571320287616980845405834070632904603787508050751537791170165327788591696365946403463263194664414084671122282852526144608715734152238216878027144315900305628015251111228954656448486404658340702381921807581205773242904628065848878417980684867021963927243705000520457769547339678335041402402042224839270211238861511121066741256362518920564294535321001669543819146512577814692391794587595290706995330272117696757535460538246480915888074862172210311687627208501148429381049009714775833023041690563139922871083680061224990201556199735224059001401273277829806342883893417924577085930671818665803383698470738438156090018768870763430397993563524905314873858715737631056963423846698346945809156454669047032230368182348532558504417242692827336937726828029172242477873764642316497155561268453785801305075876646570535461434875394071325702139167594300223921316158873481562451072478152931494797296891780536114078951284852662735515702126784754758988136027653161679221452031037528517010273265408199796075562236352922937037211380096422111859747104913548335293447406306912608070516022332135348355687471687461258174790947217183278166661727952017002506973821762392520667626636615752791438141368449048154696687596574946848655835133311143615047062042504277821843571209054880942104770906442837395514781411111432224456338388759460955957137088604232978060006789455885756362988551171312453697137240088859089614231306854089752045397982525732488831205739807112072125441701320262165959523161338884413426870319711592403384953600241723332723117029496488964500533821785029808258383046774640837959610101199479003961882664107035343263052225290213521179037249231096575678707857830607596374047048620229671383968146920173754206646805978093114407748637361614273668280226128119161241074339884254139043060149672964361852202713844889140151895328528424185248841034888627639706156078364037888949003304737155616016914929174156508090931872275219505660598614435311186912560290616650808313341171441886182394195116789682997564608798640535971800248032664999724914619328517860867898333437507045101831462117815429379721118010604297182315637204612544470576918376709122373982759422497489603158971375853984186874412523774067593123608720091109943998913167534680140657737758497251920126861047367702396151387168260103375389473926309695613815537538400654075643911493423394588513731560888411159977796829935033190019420775741484615642050625262121499452706208040548789124941229215422622667874269101630523945595811239539152665074901153508856310137325835729770994338760754171788156181225012343046431769660319383307037191508370009265197160751994822350913998828149595354255620355220215654367105877516415884345340952759655308747853391709832193419674636517712081873099303187425019751875715252686057503974987526217992400419757604936693852466994397370742128599562063079799230918976065141002659306091578963413284010803560298470048764799690104607530468149605303415344653671008978842434675494906074817688032687806672872827926926166100974686524084179707902739731326589966052329598905443281476248379675267636009788020549744047093899364687079793428422470646182614822126217802962932211539195638943908969882858710239507364202030537803528340376509781914542364697442401231194218421558254796474730961137676659612599863989674764000800525527100588285893923347907960490140278310604586248015319943173264698239252971840498735372756405079200571887973043229291438761460340419131181136208774495101604510892538920221014320314946814491013930310417682851963548330839025987251646202541605734959009688383618854937082711330275396353259622913908567107574009671715655394166703046787749929618171547725499171758097395276137764447714058695619643527917603852950465563148112874992730989481239229038682792657448767676659880858293623651454924127719531987277121389989322583070832795324245457388177563161661450962419319325318284756650391978040976631317604903283176620354533951676352779382608692340149822738327655807799886507351095649383914610050194376133739172690787329845087542127460547528403594686257926298862272407704079106402404959268714499934925754019792289958150343733738984834614683450904425173053308883210877398702571827598359681148676892438192518645078677106783922541755202133238107557244232539639797972399758182669583449462785329950085646625334770337826287425694151035837686318003870752051228957139818076808255587013338599072027824610846992876177469847337416681055923711561979129455508078689212472635194445553143464701695182728542973449756850262889541887167485791479743424743816027381338603726299310653974896495084681238597956289667238155457040506613157248839010610110133156675664295699610444031913117053365767555985660989289295788569639639141711618483822367531938832801954472746910830190219623517573872184326657627089351656755310624550301337153594687328224710317405350294805558612613626576982838632469850369880943017718874362832375023983454285333255395100439055380132472260585664622310630152918828436677420074946572163576424302272841234270193446548297799081376065056567730493872104783183783699234980495703481552626176753356723500880519099166379489814348065690433821009136368353210715333198672683633502664498956715803385815980943340746732807127108363600622974492527206589656590146209099806394699848399123016074585160292099424749211855963392176426995741495230953062729633529876724615149377717492837283123325356692873890876427901260513326367822551857435089013987010056747661294218170208705870902984924956521399057100833148737580142002948793169047656076795070111706956638704990187365464684720336243518096766964373139433396810770231095732167253418740527994390658764474722679732984121745673143549632990641612595283040378627486979630069155815226358982667709819301161668953505982524777103272832238192812904465829203997433310422234986871054764916547594371014135435369366649462775734534045057647387585479875652973189480641755043148642549715996132834026443041609657721826978492358619968288778727883398074088844418631589391891495708319068543577964431072780968634042125913011919274625652231826948526097127800030576030336394807823372200990659842388920516909969356173371220390050694724359921207910328736909177348727872570953240723631280885182940836122243607888041448594241384791152955364890153721726179774103763985256479648143452394940588472865033689103642322416474079465049434797705791678509241448760884725167690652271574284531275302920868688549205543338632829218278007936174722929155616076090173536638969611235200922803626807925785971657170894363557755199121587606024728308638633159594444639263856451469829796010338286863693198502867503241841990703831801172905240998780400648504134152461129314451233857230218548591378323191414633996573478959156428513942712552825132668208296753384020155673010324165762368737164489966121775471756274759717740193446561683574201115842092942965234238375486704309800991963266599162527967834570929492302657602312693364792242464989914612736118636687317835507018641221030287533904730408360741029066630581422378247446027574220053863171363401058854737372282016865797240773161488020403540437031132110802223308102127531777618148464828432506047939534416906451861388782974088197730405881488783944034307695497520884298490630196999281253277035711438517865502075756189926735258497730156593768435541748490556053806220341723912552151607894197495756095427520416600922781433915152137631858043055051263308303758957538493883437227137564539896381420026871575069991864833392868403654166315309534572834993484356142470874077753416577416558293031576417602345781166983165019980289075466376322227655037072573682528311881520794484091884928379100985712577499819855801124926574301917517919576088419505497352643025306321180469626734136176917698697040082065353959468255115690879888414952850233061724150954194654928594342396991156432377361353756739296698615289319197354680500795755436599018748905607993274936385255359366199544989034512603280069813010614904778277536762882337626491331538950150873612796095919568474228335614177173123534499541105171782021355033681867355622753114659397771976195939680107811135458373687675724216851681593822657400793799013490967493379412351021855540074261060563030983082498251943757421054316082171937276214925399220946825797386882240444004745121234303036927703909913588411064754885453089800692778643421031504824299882882999777677729499452621731296304856907147922812616921955983974220682231481672589014823977551724935329810419650365199621517051925807571324467515994969757077325176544557385791939732658985142745402527489178955591916086309007358259858311798890330202140594129222796558134839262918105148120085276414289174658639734271841588582491083482326807520782165682508508600815781516252763266493572039719699293299182708767731607121267962466056692757688553259748076693159206814003344335490048276774718052608800169876770483875604658619289291293087656809513003544891229195757388658437884701354283240798016094577274394953833933600112113269741989641729569007866521647592588387464982961868060225977286241709935226513685265424964695001944666205316128528551340107894457153722973527248536586527085048686880558570707435462628388971503929558841458781425079700832390972140868354893316449219342811658022905284895500348263651317372432933283981707651137969237508926839615130194690072267138589643529158384857715428249778132334321694762601977597011497484321962503075211099099407908905334813109276046275512948759236665551979358488167444506207831150042586099522483157118419285932411353763314116177620482570784208957908124212320133225513696723392835835653013384600022526869449074709257658917419833655001627044950411013702911489949385117488361060222947264546741743730975495727903025089170820176489031710089342292404845270518934267188144431568986936086283919441262936799413876151068752041453543944847622952455983899263459590505217639096213294360042679278055657438198253354549944381701209491776368992575613157060910383591948443267293354769646170371993000096626741727873200810443278867538998313979783745001472511683030489429396356822372563360890711749520615000281203070907632429165222950081648440967114907024251657262225287889422451076330120520405105804741965136999931721324362848300924751674582217934044999582602549441745086021760681243163259053220556162061107772938200921684524631312897399217167891834139525847301238424682620073067550805113705006806920423902584666507832632198317899530000892413934041436537246975331879608107097186599350133080592858388996057148332497460938624538533216860872971435965988021615711314659620217250155792647308175051595182752646896291982915446767269299130962194658857816633544842709136461654355795934411298531986721196540712598227346974625849991850475249212481310364631177273961788357593244220011948422067043127499944130686693463372887453508474116438833738142564806448185190581055436306594257507836655249471947293378891074466274136347003823153438272689264110630486875383780195080482059926984254286598903588055488599638240775296816552381227990972170304068082808044566391103273077697930623305380799074831529477192920133120791907414470902088872458776734975915711360424108919235144092973257707389304852080728111742137967323468278076678228612124124365918213118111548378021664001205467064854253641183121338533892191053721212480103782708390907035804020192957957610546626726290578248729522442281148039918634655820656686470301744869761176465925608952139935225999231077656255662989416362892815267203621394522143958296999021761429203380203863610407349600860729155999216255304497248549567505128615740030163616070978918160543792526966558086094558708736921409591061339693923235455228430116805004558498746163029082161154747824878021972285367908951106043999169195882891543991103466916575108471779090982715795790536462229394394096241604322367274827521669847811386327145091459123496622263521787355233363473531280989239514471406970400472835576466130142920358749562534149594641921541439323049251000862310620582944987464740892152352426638217492259563013257426951147853481863937872437551746694205885368307429156846211435759353630329761570238519541364481310103059282356463172841376620695261940129705516611195926100231996637982533137421100710074249309086423689176046657986732290274571321870191853844092360433086752593731452892001511329192871630245698394526848939517016145505355400807629408081832145665325096523349916628198839034648436952181729709310038749828658395407232027329576440828517672587023107906273635087151344143546101023028124550536153851252152430567913688506814265823107938326976559279498290420753431915932225726143683121274876322048976200622028532856684767501225946140081242941952057745114526028418598258666330071622869800121557999193162394727173772199713531832772085620444909780581188849637575969103659686164280276357371073114962503700646461856670486546414996632520654511986643094516013515879077067581221392369120565928503063571598898377584552323802653693220828266169073738755390323268723692345007060408298310287088866223326740655083228483765337998765838578022232201596524760518580342479357339418316856728038950574703583457621350871009626117137312496696077638816452004092249055246586957700580759469638306430090840002647440919631714600029584111163185733388126945663877530690232087069308789928404106465651469417236480852295969478378449451742154167410193104298755161467128232985182947195588510799184495563670810276955524088611764497960313387571820495568346889043275181977068354512777247422800241007312996975591088065945240935682052611805964557002025678583627789455644230245035718622673458370988450147508603924569270163868920964370415752478907851442499766596394659982998643057609824351934122426685741835327053759757721041051303879677207089865309382077735418334199626363460541717496989377979941129499430416330439950261247158104407471097256751787768625136207818336139514083909576329170512336933274751700021666338354899340375781181603391938598947250209322105526266293259057311645122979565286461912561009572788064809700690510621002182223782966340467020920125055812159442103857425471954327563132222829930422735108771583754633250178824391208090808361211527207787964483080165299983075757733263948990857405708122558144534926346682265548065600479402892316609804759495589688622549726052807949225437247011369977482281266673754661778679657019822026287526803631359489575756207580327383596160777349734642119786828505427513443851283584580780781006977111606596455822741765647053223205593581237144970979589546187690849038165468921366365386910049016961248482960633732441801815448126947534369019337214523188089132361137351830547737312123546292567865708394259643250014659748744329169702360500534806838989488555511015109995482075731000055556804513626743491092139563253364569325393540809536853262230015553222081053911079188003365445942166837446681629158083369857376569497884637677442520873485441193171676961833679952619054636390368556167094859904173549923345470601867924184011851433382812110279007208137309950043022370433094403731172350703317872383048849065001023366955242429838518234893211661465303104051425053711641558895790758220417701748135754742985456590509807528235918485881213803920502854464406927752063506641940828997243062290092793800663169168709629758301712671956351783312340864663818627877139795852571886584603460750285361274097938399249630061734300369598134508125972193591244417684118441722611625796597870470993106707512172223195555083890856332573563239148891894598678150537945257266043582161959887607880044183895965548681797637816995879833328389906511996904029315102929006362743169316328376905077085069572117317810576305262799157211536339971494069656780549006079140610750598567200347159449622482132754114536076856022296247921678862119460669080349749323001991401042844847736067243415448270643981488661479975733196746280775360259000073925693997233364308387791410079793521280641752063656401605974682371940936961708438160537836637268928320800176781405454379636111132160653096679507955611643548452117950200269228305523741085209649381238072837461388294092199123829004789621644955213673161297849635319102113865365226518012463974540592037503194776115559301712068767358811969531595573108059060178087354774147010710598195112333635339950047085308438354121161575807730113601371651271930863439093381621469445694350902456726925134223087219458904064874775372915036748262516272904562920208899162301185916673560253079458325216172442965767893663699063826639143524360019191481908680097594893739281774632951559095507111619256602985709928685975653054696581469628759171634005105613357323598176114626126798323092859293439511245758645864027438507460578252689492872020841295582064297984721545693238317184688330460730530234153392178596869383852198531416557118032397467933903453519891137233644200399240074961937322339694525577532510441430858935196097281716947888359216250834614401031975961723935642273385148424697575836634521952089121330535857494199516793009387149084360386136135023413788130255269881186009512803874695273613865108382678589662151841599200586872304330823205204726421852034003439812840832092405825821074193684990912481855955349383477907443487377624191420184640429467747229433976690585122787090845258021571392579669508744179080243973067126187438166588474280418433529954396411356336297819113787595744949392216465044738251458264443613873090625007309269597827831786675798267422162365705469135226207352161734962974977346120613224705293842246206935728625399718643421940066240732903183170531706693510032434087632500441167950856528592033934064473313813233310798105641648440611123666825998080063834587266177405320848987932147206897412464910892236493173326871844544816037685293007807287524477314950451143280104459386730339709889333808842205274769986566747646767700858510164166987148580429591807486660117932146206493091225715348529592298465248700769559358467587167688903505103020561068405090730909783048251544622264961685846743819792829011176857869664174319377437127417203184994374296184938844731562768032167360038047143051902006657573636882873785146460729083113495319018183142833677624008117902138605106624180298019012570781246141699207487036615146027650548775277338745671559248987102399623030955643749633934906457932742250675692923140461807117893196268502080960781270215392418477355065573202751320870393899536204103422383661107602693928924704662148606237682798218497325413702725802668599113188562414934311941880426176586754476249469707933156157342025669725920799110080242999647067756714689197581048219296223725317537931590093027382898085509203028714850835251526019334794830254892109820396474252577396966728440098026333775811730265026321593066089527448602502590301370223314695644848130304839824367697915349862511862831794303512227570880912433013436243078630012550904018662430863072292243680232346343650820455801379462898906925559852020821997739460374755000946462595087489160874424055965740382596582679632948585852236863417330692315751306807920834401163505118187619404680232271379369775876726213157697898795588737154305903596254997609365727695721949350604916618662729772605792683866912282314663601501916735405036066462582120081607288308146296095433942179816955501425733086266528498715012568022368914410254520245394531829058109777280004103240899763102740741454570246820379361594120258214864792131401338019996271821659215825872733763042742693058536571691789476987255884337585359979486879028637390784524868001037433508488352220067447397382629207744058729830849100195448667237795026159548259882200556609865964261917156610482967896182787502628543684560210498926441549358899777016785115381895476568894364608965186709453915888713524070451285902983361383065135374935585068986492009142221190091357826691293454360552906447357439574984054003175995653026357516346405606049261627143235765590961653663306653132990769819661663630090812823134822317913131463173500318374622120956413485541137726477470969383469969777445272972883365259397231988417346039186942848545398256540959027463886685429853186238625280641764408361750771325571780612380147061288223057123277204039208478801439505286832551377347244123149762775940310669371289678859807796377452944382252297559720232951674091347165184975973350427688785938401477317944724306695240104907742819035045248923023374058123516653394022801064261541716438431453567123741411518403614932276923514578799202367811907085279270828310835417460154639548832095310885495680192949711973869661031798898582547823716170999420202426841048099460842697191572936171599178779050168122082594705277000515686476342967568678211520332659270849572315327169753826576702684753961196992275518737051199812650947827270795256684776661403611402170310460305638053006768828299255636592998220002188885656074714728291171929533302486505683223533791631124933684769738372682441907729123272172110624636604456557769742412820324924610123862770256540981469404191484430680243258349222163887448172020903780475586990522563894058175032496683701309530628144232551870933499406349578974681801927227394369649816311027289909823809148234145904948268643336879095570228347519570702284605152557233596428033816625613761366276527829434490018560821670425833747526588439564725306852278813754477830048640528294928534894698536977600866687471998056149014869031916726960375571970126364050435121455435760131433541540330948696656471062048534254154268160396115310563180405702536750183732875416791610034186749383064958047555441519469949502812427722636126918517614465313944131319481173613484992468616532983182419805630064270518311047192796809630177623616794406370796630116203582793837396965206027234775405871588493483882667896318084135168626929804931385879278426898839852488802413978634490536268240584699299824752821324332491370273336638254075397202142592545764803059732761371707381981096284241389625962730534490345151991687656227094026003015835163885997768229707933507852559171346908530657393678207288599705456813726690370741789277296177264023999621475118639754431961681140135109067717573120327222416498174382104727605019233860284310434127426555525469518751723154648269025770488666137305297417009472496051167979112288076830379325674491252863960131031195265934583727445905988682192852347990467310168004165442333801144902544062720632071291977054516168674763583923991713123795784791109015164177524864514815061319991937146207573310985526611869053887649717853906651935359150935833395270401182176292406251898391033565708032877979662306985678620302584285683304921360441607909564701364953412439031692278247211331078607960248847135672614078178461342873013087362159660319149081740306490693009530587061169144959801309393672390120687024754208360481923827755119668450813730118263267850863705440010647743911291221547599009288975043531897999573704004140855264102847456071194133774710749579850231835964137799602134800915447504782095103457600691500710793095097534321861340113104392277908616743970637107206603212046854832716752766667197232408390773636667057734923334697333551113074459886345750176720255615792182638958025650491196084480091048759074859604957147474132699829188729664963888896081718556286041032571618499752026241884580001778535010096139740134555417046508989251304772314476863621985776133841290498952106428692914444835244211831910065323439111469501963904761361969583431128691561657171099469593084078583251112811607544988350542684569369965668087296832901933470859443293473242431935747195195024273678622858403477561684379984095503245803992916785226661816607110842975113120778123831983797112395044042886790360069394092886211229916671458223623988333019007399858805649826773520830175862845446907595532630093143819671084606000596288179152431530650025739499760599678587745361887850378465363219515154397249329142175751287474613688571445406211837483825817021399248501396747012843103944438735812326494287311484183506642367832683910214766242481399973812656650293148457110518851167567002467217266556730701790617634196571119108950979995110687451679680092394129693505090423436888292905604917028273019510964784293939939513251881087703214089876871152410416625287043252931155984065911879613786915566771415245480270746289053737451181195383161606755740732333179866103443641800411383275395597575079695287996070891023395064434579941946760964689863584924927618012283108572804946383116216440081551922317075979177524884982302405810341856884007001692212386348361377916324154898374391512414826275402758390167332047128047726138750754981773306321532274447797904087337169265328786369730691529505351079887795130906739425172574869998127048414759328541484274958948687745337038140931072386625954893168499280227878463574732332248883043375440500579363525913083231371175478156443464419373335830344484786325385788382807716963786658408833374290191397277689225954683234984253111719256426373369598627101050825633886031526254035081865467084817111090950836056677272004866475896661332353666311052799581218622941287671020690668054711191389616094869706958490053662830797898166849381363654147182363209136171739422019267969877436386752332050122009831275016486287998786991277545757616918134067176455278892862777555163525078171047734981597981580992669694470490995187691828175117185704300234762435967759430857168843126789657994867761226741666400376865429804910219865523501377039038564239833200709154338103387572127177149889744097960351107058392628164174567542910251948820470634742005742172784706812901868718374420091407205792139081709174348416505040859583825498958651355490610916283962643191798151946306627585516638064002302615217891503961407125327495116189193770650949448212807289508112141287914728420006965116359685312919448623943697660072612533013326792913460676448286898260274350616130848254659811216263335852307080319044783313763447863583683499960899327150184210756669976999525301993721249397256779646070934703849432304351307965029344970002265476001542784879223910747740836453780976427723080142896840630967323964735131487543644563500240561063141858246014568683325406250222129393954408733424443632703300220647404886092823702693499965914208045741885329445744695858493946398320238281155204652248807133010648695902975671265185689310813216941975334569165677027742774399578264593940909121660046035628819699748192480940617446400297493173141092823572854138436180016836241872679158126716210160707700664275725052553822267251935046075991539960554021761696096488175785656692306515384520463171342219571027733738662668688085207501359742243754376248391846501305050895601311987135017526638002504658045999579888224661958048494832840843141834570363310127864885119824364837687782003331844610920827612090573202426688103854171666077036768991014484570181135542737653388713997524568285812922046952971174624006718298140560968208116332888956558983967659815491015160954765929931213167996557945159041745490029645825278543850143853766332526965723278401453711263993025077261792092217448590824670098180281208896600484232525928051475219863308341222133821579504820698848823384327168254487229621712178656770752587488363238990646042047153693104093134815020790435336043134145911430272187451270745022929020851299820040185106927972389282680824001511273036733614978202715043095051822196655564838980253507341860903333389917236445074798941129286939469050212246706163386124925551557974863120198730309792846030052080688183696385716296914715006024668804928548146611914176664391724118907625836909273110346965597478183956749588172189221416466555716157028691768372717176558212855424650769547376639889266694867378571983221542380746013330837101476936056662513483342696483407651898398202768402192317495606744524161714630204415716568828683705144453683235733777681133138009605319172335030244123067484628453873486099847323991678858880998181588952259071957487436210494099227580043940843382644834451891200044162530445450675848008519782315492533863482066203816478873513857196783605351901270257829083505058569434928988808881940597376810255719853825694608761329317750779351639264654212915260145354085963288864898335967086659889487300790230633696651266166335757645079701944948314363552220102763827180261862378257161280410307943950861993881800818201252524278644714604511047758459008062904596348223287126454189690633174167602767578510332225202959823644110513686470882814555200704322280020534991595692192537727396331681160827760093214844358512325487407525992328104727203553607788247447965520296369648252770686652163162671795525833407427014325419648743801674660999603851997353186061434347974057908173332890702327755687202216178894607293209870238448181204825478300606721046064493857773202310607561766537620861410999876122215023624635814093736152166960289698436426805998357984118513991739971999125833017834409396149995130655863099391655566073748194422708545185333128083340274901618828072426026757085550313159373290076284792116205651521591315638233977606905520269228268059733131411677993877801096351634690135681316866491849698847943369439197202492701494550175285336480637470182415385916216875260253906739352351262701689778663873832956823717990164089251964530559040652151958415736141602386218586360643487405743697257486488598313209713921223375097231218029504961859224328955461212534768465085411104277775743579329067452188758633405909362248214889808204053305466590903396298860232990386891496563738835725189178527843650459362353462415244479017177181317150720053532409869173501490015829687604174998290241534016430873242411024334128614167343479525808313476384178350355261048122728850641637865553072262332573175411640724724164602017862488185950399433460061477189665023283756402619807152804770265300265723825048810574380506893612058483188060966254662069735013707382856610741306099424551291962095542923916876331218571726854472063276614140611191439863881755450360637847675399294174287744110127582361048776953608700247393449580389982812651566964694070635413147200243215575300891841534574516383982847799308868151356268218383319538455052766741647915826231108062468753460017694443921735003929295706045536022356325849390181650784461654837934099112983121757773211128276766362126192085662552386922898929429076091405571014776771238723421686509679653035011271162180145971805319248082072983680779485872290958745447912285885091875291165263256562126561955213541684965275840896224913891935833232489397679119975545183343012521779986004797838737508970537444191551985908746146778979729740256697939136599831095734677073086175269708723701749830747864045460864515138852947668859059872747165346369599208453590951712922800986868245529214751673840273801121132215498579161970141559253831679417754809791888054269297896916434255798100480399206238258176189251607765820278313239974429882914281451947399291362550269074396917858258454287302334967463706189307382699540644739755698974100902245884705841447217146466844968062153489674774130510449375307742902531286054262303892236258944582833935731968806833438216966962419045116375322974804200443311640092682700701408561097841818235707228086821239560498951962492757782487932361641131386488837982641472740066749427433447136880325639019248670270469967450588699782390340212141878396482701425844842873613541193306809448041624673135944091350521211927401217967133719933607103483361834286188805824712666578080803840764464312156205435538270210271655822513014983960682926051637174833351072338842275505219942533108535114779201738190738307153102820713799380909463889832926575520609201557717326933507242991343366194853319601092249311777000979391470006744039966083855575595186974745684781243324043445123494561261744649046388966915081178974324815204486459761541208695603047914659336706859973384553822823213875785177398078892682459583274466076794922943811497502824881867573760926649305267086375331736484180224823528819016368403714940841818996434112132763697959183186605508383560817519132471727186159068450873330718070770461678969429795544239638063479689690753062820445365244681046179972557759082369404144829879646920393517949621295984343458318326837453355804198413835572644673203670319807923839759013974443928390401110131794847108451442818560406527762433142164751782095992349485686651764490846181502980738035183017103715622235446969309892698978236474648177868438087949669973508335965196802432433980371885313734694152411058887303198119662662508719311533417821879756084577058992385117255650057187944852333778029716364203681452662186753716253112819702624251118280916744984489431247586306177823658873751551046559299758210016621094581387874094708427011344392529498025033958972829132441661775881342037948114098355880833836632997777366032465952274141524627126693806734120746346345375824809995308974888832443947562804818265761052559506188518741214074450008554754905802975149615970894386307218922340149906235888589579484222168342077712647750975260922081160370690377747018707322698205348148619300203643253482935974315656609181830341974269600280554459806412315880508897701750935487994884131636810728439277320312394740820117001612526161526744964400670292937503906989709654492938562857137712997863970556459327678016228481787484522160969723169128619149867613148245856145969692518987303433962272377463313874879411800808466962619526434136931329640961257534043998441043698602513038643611467189899643648617706599824882503423621568850266087724168841067948314928622965076685402561416720140135876013086750771407884720187549831746938986544836833132456255127213899070352655489976533970059766090497858842017917446845457992009394192800560039228098035604699837287581611876550635422087500227380748781985502831310303094278233073748834067598502497597207051624029038666230853798119276434106327790567530593981363894574820572220890375620361986760875511349121482585815893097649169773124620661182966081796268529709252977725385875959991883117056040880875160629768438125450778963122913239006228185054822749293220453504158270896690602642114776806928895347147494524587415534352059877866594505112234070780182319390491937362782898512526329194369374721978679521185562845413316038441909884630713433635424643445802823204101037770315859443118084738378603844908421089932554214724870091304468546803573339302436787172599707842763470049065521382887209576899256185159446907933310575687646707692054863185408852721168872888337484200885273972533652831106548236837573246084496099700168964672275219471790541631380555016113124331773497921737221394249634994229822152774426241963467242786750674199509736913140346970533275160721851465345878402373903824265003399360197740304067971405443748341489247555050449439840401563981141637749771339792649662797411332491019117481446323315564016762082398295396087887547457297076896013780497562036910233700543620015822322147891933481515455584501865970829838251877099993335612080974468100786605296052293309658147205153740780962656095143763877508530869265229171138697994260209512507340484883398456524394362816080641484247488251845761422557864154481343242916242139463060750683785978728803081129348026929505495732046008328245483806948210258435369271708260096614885446167115192122858711114764220821272199384484736603307566298498275546622033445255453364520179234808985061213317371114422741828850526203172484633064993819171955048678473344708464404667313024234577285383503247559989837697281588292613811383415649046370463504899368319490792930783226497927857185425440110902261967600821916742194121664648263676733728407502651273222604977098189441204272042487982320522345105897912106677785682444004181829772475653942746429109136934081128592950197718616780383056281767001685947982333712883556146470943259797816841117070306638021240514095945058354906730965603648199963253518529092509624372209426637651027222166475444035423226410852789383723715560150993520912430040390079826086939994272398091822007176725708385981920570425675902637478230392008609200650950575014863112961444378662130432393699391668574026173733574106861221626019906170170522606972307065582023794520235888368677298892124547750529626972735282450715403174628804515424901713203560309252058845939650301692793471115355328540469523057745158142500904334949482638251049848756658780823067936925808338353667599367914548087642464651314377360856367183059898538952128155823197440380693212713406781548385288264897134323053435024539106950392641228248074027440095706646808186869925480066578882767860453552054175945932326820059971951144738380265037544992325504428557613228341517031025575155526733153493908001479554352486681059664551196913493820663930619038841265777942656225201071022439560323575494196313223881330866171814735354888073108423881925019096800870163780431612342173398663509148134750743920734685492829881991849936124598308450203340393418724929629931015992183179039521869100400667877004474404978762136818927572980865098920493251878663567682934068758056362288932585907539870479337316079978531895149175934845911446381329885580384847142945186764412037376476411903042211729724332399015163244308624332455334553408391108419414488139071886787252220403945261101716648064212875133019824676055388760160135801704310703220441553015365093653830465905432865476102821641151762213817408171279259308289000106383974201120682484104112852658690160778248065692832144633498859501907664069458476798380871747902222474846343744741350782789979190618532028606060162807364195322335998102207543974480124847739638873211526484248956141069971417909007828888679652141189459113547819911720509537919046748180967799826354144510957325276314737046903958348771348614490050263332997830112452145330038694082412929836543493523319191587862114605797350762384760336838448955273108472996658401400018420243742450238639086509149630729387247792845481739593561409172283388583314258076220024118187932025184928653628171247089814854603341691373261251180298171746103455325869847222333113483105368061485503873540270650439583268477065173461572938829250073986988101815816528734179559643166795900643724031231240311249750176548661224476512383305883055474733554848276631802180375040917975933667979165959371838927248378812989351364531052191490315602115096492020329783273756561460519787795384218720255869408564805857064508792533626406247316204864543582974122273336249218631800936506763509639367806517575104308739535903025682028257970057146325256057197491765185832180303679857243276822495456583520007144164275943541013503255101649202347270554235615023744245286906662854622362503289676478314442961670517984075183448128807526404393222669991848535913930852167501867150964085031594044077873910435037738011772234110650649583320149413072912160309997560510260664471515431432925228013938667612223679450672831716433349973298719692671340531944503349017884187563405094894037487562815471156453402585102841636592331801856507611167830430748067541163205730441088664136944249788237455150334306017031422924240811540866192955432582742548856920981026713665506392961120083300917887830812127517775727102954069190269245746091602011284537733156024721610670676129828434099006445928198145203991866809356431805975381815356052256838850054103882506134842298182761199052330680987035700471559806107586846934527045258824469694158674298461987833432833336002257224939366090168212417389114408208032290711989159665723617698836403725569442042838953380468607783978663632560672297497388873745661025430607589845916072473036742897681907200082543191517325043408082697125468650913289485052261234557588400492575062304196412307909966011866169645818621239980781135501896271402145424824348235235570807800980010248157022275630900752667357500996537438273884631652843261896138555644882164015734121398517935529966856159873212371168370792290248983538932664462101556156685287935106643217528519318024132940734304467913406495283531618202351323711711232656007590559594649469430188487881494416058698506424828068317586450782475170431695965009683336500793541655899409645378748501651893924149641932132046639785460266114790843667594379816269788798689895566278688922787669713309583602409581652173996780529723191251951644564458462342584183478702260442277331219806014635006542582164807802333397613025453142599585663765700274130578237668545895300389501999500342718631971782408297259657115109292273734802203521502531767355452864871235570523278647524982963396729129475092873445933714722959888141139768574225744303737656684836008827477194946044319355721207293654101491181552287386661637024416158125689487905942747057619743419516311567260107980842817798457602556426775660237860611307311467210881698253035674013723705282424689093716830294189801511556025901296953892530181919458872690969602736206559123367574299886794086602443687497137808572160334091128159523041775802047440092095505287764133380341266866013725414993550339455914831699035493615930918005619708525290857908487706272008731613787384920760991061016243205607775719954004086533606115185061440615031877705795845929082280080394852437132191637683699372612297802431815840097270663179178860225008926532419722774209344885015659856826652649014796636265521332839193120779561964917534446308473669323142430427157401076651051011721475370295757727303993727794259933668112386925401546461383057987324789857993452702888544154809643462763297498838670381819718165304345537546203600877268736725581573265767554970839470133701525912602645249047608916102970817259910973494212611736020563336834065796838715248472038152261311029983207438535387623469301063128091963881026619945167517193578249564305258304550354476299229963189820767545022549610332499311198966913736265334992264755534891500550555483096544219550644333075800050417330969431451888464070841245163325602277221628970870919488843684166726231432734922933126464523538030910234690783028658795444751555335941384360374437446938443574806523625075689331132766464597906957291414231071237731574717633327207720812244689457994246417014632027503506655992123317252386689228431359653214081434037280096743450588575340389702836459908898526860955256120026060318340836100317841137877809221992475239227085646171159037720248346752841362726351933970602744488954198375697468087945319257193416642828673795561410135331242579285340943269987576844348328347629761422215396408673290365670901477783629139131886918560648246473305664736426446895441396738392322025442126656419371801541699231986540195643958464322210338599911111406688379007821559002378690568428206777300584064957122006088575306142630671472099764993098134071270607327172031543767304561318081970645739269790059310237389974153443605847518327549742626658120702386138746094142424185787369597550179937757002371031202823632803253602159388380231008211463752313738473406775839247545925055621310599723078067563410247017290287336640809446562591104954944982943041763683983423973129669291715997994266267171807748936717288136420485659786861106819535653418035417755947550661113228282140564303215129197413544925121863913051178181080416517058132562669845683823582938936062353402894462762947843542829925761615792863327689199309265062357264210802208875755388594992803211773146190703257335109439060393250761597060668617235456325550920484450573231002454853212323193720367845303200917850292582667347386916776836314819474736543035048734222134572609041950718429058953784523725109588226903907498578279713574752028931495395635480864187240982381930512777385943507131767093173108101077108802852757839208606456874517031364185251533310477753629026325784481362792424567462681766784378688251478395655967123369611458164002727603522751158507322268049276241249523523181183814173418383445975438976832473217309540537533434884965641547638531634910801230700582962151030025524740267122257334984123816993447265104880613632073292393176189974349204249818736650718312214314559982128398121364799479465351640167284723912238112698233415328006782487637657331534430711939509111930389867621048576886815687318930126084982779208944028970016583711686368685405035089668910047251553293884671551736358241259989004329709822808695024840286089323196920284672023620644920544295042107030013060533993512319701933536724580777727633121693070355774097126748731763112680237915462404214721545550324064264859004133256004964650368196903039557058091835234951170945653810504940600974674335084884418648688460584356190625251566431039601289487445982209425307223447374492658063626485512503937599325779413677348046227833030175779361572270735005209084084189558640140760221311533432056037996346265703784206256835040059242225405066864342416066831332079464171342164930730493071171070549933085300734606018148373932484468585466965918647040204717932693356325717641260559221492046006166418823585198087042693572933578466832019264788116874153149731049006108164525386239391829203428364239182036074316662405676498365046430202726909338826083781060078708029746301197567744679745987756729035547981076007940345584838528273476588846896340593285054063739757106316802370161662273641653530086567244727793428639337153704229835319525747487994423902070706085254817288193541802104548600712770144743632327185004732452264659597899932997851319302097655926184160432206879231660133928300884773467720088000095218724603887601414421391731642567385137118464363945786604505658927670177640173066451895835023223551612437683854658054709693999130671538618344842284752462835497020766649396826611139433227793955628449273862899250568195429129278171332399475196244683245887669387151338919845967388458684515978335107923217601386981675851425260754364796537587843364660474048109718887411311709639896992143315811708285248510607296128128168529561395299509495571210066132096945851532105543018195704371879899818972905773418309959153371033693671256184942786402307203076763359286288392453934165043756304827063129967296044172799696969833345650271058532714986304500582632927296382952664818523283527547395882528035695257311635530371291125951255793110520228590810796138908959979476250851319475462554431331570709094949210716472140348883125304079082425819091772589146145118528350141709034708902984112377680605367692618082455348422832897970357396426497036394996078606183919434988152093483324154441112993574242737028817056522479566847824093923538263069982243823279115978412193001130678131883442060167242195454732124731468138328589543040941755327453273894360891889295424347595574227280499150959531395987628044126156780683796084998340815405742170846543313170342379765877587881394334874293366043807092977327775472760730664275535710250554653462243228650151379864211591913987705957234639957186507550067271933206430288948569611526142588753592542245881141543195262888579118418056808746911177930447841455856384310275799734072103397705958255785988608511787665979779233001465639572902079211625099125103795888672106626648227882165943522369302524823388619056176191482546687902163078637390529523823781048064465970944227225833637683792541275432155818302621739870679852475581083493965397364747318160107105234135108514871531638614163269899027858249150760795964122005219023506288489258882722186513069318561948881214972200999699759827571830879982728650499509520169086913984092798604653956935120995204128913273512947940797066303590204118939379298059991860787713337150747862278781085998816874246743404976737467276661635286171624954492950862078358408263030965347121072330394750691871862995515402050476333912058635887421522113867024363028785145253994499910772032253810392451045662586084725025963411642922701499134848742646335853697136650968359997222666113448550252402872759468371450336869340014336012423872915381326073614952796776145246939387132871274151992867569665888034992068313249856791548002398133715893308427069987316991688367183725110942276487501770427740277999899758366698587388773150533468301403665864306352030243935873151262988351750665870748344772355725440598163571289530227387251645885101402413957650970966301163065963730333612314152918353506242784034076048434602312373250608127862686220571525624935661935771425177952800876159728982869501692464285208274132478455453231129145905092185670652951596811201203987726215529031225642873013707837402062181361694568206397307717725807517826336695146405153759618266827934802830024571951214256718528945397580071884273436756989718732112284974334066852952343342380551285662739583669853249999563024497942789310577424896404578134850710934158392265526760217734142384151200850392332441700502657153187427039516468755166868545203715636316765476156019205363226803453463570040716778725808079147862838164476163633267099449627753697574061268151671237781543901256653951962746509349189008231609298010807665054308806853877220134963861224671063059333241673444013405851427318228597730428696118607866570529969150269065024075058893855381689714596507124194517397428287178374627955444988439247397918617147310339651418355861695687400649754903560295929824292683665068940184467506816772689850901650721904112269815927661924436118519594831560340056425578656496484797054314740379611955033782923843065757850721399172934733845092435684289488631478535692708893739737020646793711521619649162287822873956084049338129491172620784417343063431205389567744990716072609597126032530568514252451437088023516111538481295803019353554512380409557080909321336971316892553282284198462153635437749732460262707089685482638200200072281924454339169509779299419815511169140854552196168734521173813491207164084935347352227834595630700928894376459579703028562320876692591107119210504890414239004514652564522550865873691393931914915088292411218169225802835962054934209125853365847463390486490342624450934925743926373023160353094716176347742982880000315284972488037908120085296043809615654511886687744785594593550803335028373756334203623299992482172747892826301563605567195279031313759307717091370482099748976426109398930225283647745197213163369430728409606581777217818356749012059469050086923172766464093041655753290371747093012895887791919249859312237094823879913467401384874619420118298208919862142006550509076687777583380084034427844226791574524655729567619983574396009410775856813917914622756329218269746284659864704268955468904890929065765366256438720079006246404129466381815872571467938846899838449234163461465648943958940802686315891489872534342748316363151516791897535159320447259912943956276544696008277638315281731875138336470890473092350093382445432447091188895712581722130992921736562424180467238037154340883154732683002105562803513902241613590696692730328381242906689198529558180415982645943227090159579291219649182563601569490403699842855743830466671927277259593880075254203948220721016681936428579601212167555365234023376811524158871713963624050423919306110100544663858731315365314588570680247247031960854209074544077592036340672869851077098389944005383748781031050347926504082035682582633411219593285342841664353732444894955671172710365106863360467437732459139823491084689146832535465100705318375133241746476953835990011764036445814731046358133869601484121152168901753710221026985635534382865975127417053464777275145407745601458685473766733705552640904867427112308904119419984458057239681341918148275827359680520646021062433516589473057764865725634674865373402566308519422983250443031085050753013036856359367307514702326537396296792739641174137126372253382107105662926145958436072325583376415895455044334841454148234955581017630424337504799509133660688140604811307293598598256793364419687634512490331652923349203524961249600658771856184403439503702647407633956013435689321449327355299854779481963517850324258332867752678525321750189352656173626490079566901976279193492334518071754141775475695273188625026279559572623048740025123565074661702035075405353808709048758756398118281733766007010101749684802721409330456861291329279560188999732495146714385449161912580388670430456305732231511275542338825586797002113137754340357881321264842450711275024865411627607412423841151111308864610643921781996569058838143903568228551859025303434318687156578088814688045956521197150976841041783950682676274060327972458764102245650381406964073014652119854456625742964337839634532418461322179212997590960187338690412626941744480117285788809607743473368048426911482092281040945309936930694017425983618965266155329915884651975137007379644343978252300373694064985825582799472345079657578472689747528977590532301072882862073422465046360250241901267055716698164127187907552657087150195203746010457282741840143889869345117848037243873664020500393726234750665702060016932260286386061205955707915684358113958586657337250706031999810340673092973166584362612042342701232424406412506122364732850475918211975457658991758399181542373961045887071872972734332947917172987921263463990922795639336034404511401263894200517038719047529509379564167032424732226070409180503611705077045133674912190840531334075068384777385209685597328466412504360407871151963533038632918117944788294310686998362462510691264350705068891023319357374258911848881751817005683684983702873055446153255059904242630422315785701003767417640132302341576770057164303682876428593525363972845774902365016921867436061314580773712857300831552312318052485022121598885709922218683869033127542331948704455563671568486369114830263089235124390349792262893198608781973529685769774044892298113307821793095169941065200973637764163946629234722388788628491939370139391799000557563476244078497777625092547668220409230101663532215953769740898634020198218519023401142752504155216032441273042260950369254592518042390585210964049523939171579081271758944274555802602548502202703511195615080307170080863325617323815847422480464970764180255627426451552770342896507395165759133416283613268419326583958860635799027819660540771105775388189916049277082373880922637006481200441864836256083802039854386374834405607155582922708851590062691169118160145662785748477027758417637430588661412518796316602961496528792414328444765601972538280706268149246176522983826769702062701677276808214406153669258087813241192523541750408269011121816194609819912066878316017982272407682486420324087895880882092404836096956381344485790861389043262192433379553125368940181234402418300160895605287457068285393397454577783260793937192916878063737407463235252881815436563372840223263780544236142709408408822307380487798505409264967817125638542844367918425908325270239682481411276698282260314763569991664859919416140100236412244082425310230160175530803474913429813324915343065052803394847735973017213661355363697228706500084078599249204511202631646715768033204661691420539972639171417828422736812084148697941241707123213171487933224269479263651865227011924714621466121126325580658036670076063716465864168245127310101913928552474449470219689976099755096828838113660682676533898999823384629402184550944579982002157430639985108897198189120691366445591679167739708418638149646323451528168606479818202374086853120263799657272114106142601652963890604098574438088865053906672924213031643558198674967690130938275182636561800907391106146761321111494164832061462089466663726104617284081102204277461334959409506896045794712925203728148620485260148057191361322633941068906426746383544158225336620789595042228344184445781629775956799549665595261351896289022935933982330158521730327665241053509489535259920500783672963248891164134501799503823580777269346966902732204603173016378582714555932401027153683344322399822663760134775933530485198999098717474112206438163381121910931940171034987507862081769389689111181820945553793345974429971026800868642187870740665381313220940159460668348393274310458561574777976396965254036402157721550405063156818446025525448878122074090408226461218283735380408870064094342677182749377081797737311316679354630977719006325922120168264652901148192445255986402906283171822377578610227180295326389310085662098314309685105178231976795724345645507009727378532085421109021797725247187005403985951662176760882489737907597845008124132498540146798352510002464085533741870631076571176046656820420264834065693734501141612219058137018324874872191588028110534402856585471190537878963905437148330338209253412883405117412602116044737879823278426859689590591673109503067182454869374612624475566874639093059557031591749718455609351917692847196376947782600953423356610076527302867184749445109456232272040835929636662936780007297213694168566372575173073143612312999589646756631254110924209799047966846289322439461634288717755107380488675334529598482519846140659530249404105468858207685880352415164536098860403769478993116186690348185288768593857076821580312333315646309966179123535073038375764467058619983674452659853890124466804841003594881515818235405756016242339724581866693567927513416428501848055189567987860070640373292385229657358791096940528297403369102516963801188640077353301378595846011699617684524666459521506518530011222426894636502521533290698253012739721104494983606725417412412008995639514191766207119714204764355549402836694039411467272501529255124209831473640415859551217211139724045876062691602352587648763109132668581734874837398730185765698526488267808255834844201087369728151967373592424100690454419156953869107503541163273460732070236200806767653132098822885887472114091130390106266754131555770021609915052444596745371052613204340481266091313665367607341219955448101869484607756355172167738166724251187295676769037899593897553370492821397101280369990955755843898231550089927645125735581121847372236059786355987952574921972099874545200590231255587602801271650595981235385942771049907287277581544151822457661486647654806628488521581043502546742230860259743316339406133458854330843973563889855201074559830164238232141164213087993218608579365154689667217493104860970597718496989365295900458551631502479056751588059040795567237566824816156781583354604008144370710675989513905070055996602675096184099220828097813133185576965031593868746508506432746156773977333273101341782277393714469373219896224326285245560276085320649062939842616531486459436583790473546517372928838166728026409497360265995565207972394977242260743683808111885759353251380838208321458123139584609819943077218946035181399526500399876709292604111142225397024913220155621484028251137053403652877129830460637867149319903795440516649420649443866193442565115622037969717925376189668515955821857289157495056801336663301517319509831863494563615444757502860624476143488949055291934255402579912187047735866113060922729409140055105575016037900208315349582021064226135274149576840985244681232477914980734891754606943131755055318014187506555899879626277348095800675444133168361841150400677040294346313243528031315626136374551779656457336699183365054369887056202551865293742689227753641392671508893410704897246152153325597739003629638039050074628989654351416912023624655477040162222454227884239257129297848036837641541490723514275082744498089455979722343306152747567232653522619315825502066108082262055202000105671552150157332733066857062360182940030795182596215139950543104681038287400651986386480555156424971614390802964381257381116291445972168141231097541057213399398859991618521425176404505939440698232615578903130573293622883066493821626472901561790783082852578402972571967415122680175056425142881841246421136034915659966710585006354473948169973558612498144203242989266816517133489113495329678670874701902907939078488944793351929331713722666696182890371882877978522558562468179886926500812715005825591289593102731800595921654840888250225904615112292043631969703988772597402307775622436947346096098893447158583844680838817850249029062532313006039531395538691413936581539779988216352397919900635868348391203355395096139381887233896593038422386630091519104149570935886397180607100426869938022722145073569096307374196896497272543187089167592525948297343012653751567241599970056704833206093095432782112304431372717529267274656866707967044360428083653837501723887413618596861307064766803051784212980098289835563665243058134709775385290249541585926193689822220304493916857683795112266603959895357347675019722680789170419371695940062659079718422146302805437936253215971262137131914823792295925610679566423585832675004922689422801298675410984227939591463774493740680973424164922995317513018166334197859131880453206347654737271026423166478375524257976412534475371054709982907164831360347544517204823097802410980836631284174836821616247321444342133009936644548178475539266851450632204236095543921350359123719823836976218206667263104888823700113384985820301364414227223915536238750984237174476001151985666020657866794337809706332107116527419670467418469082198212591947842571096690885025269017585096727771909330101256262102792720906659404200106908782578917208166007365040824471495592577626696601827944201650681011667210858452868434690176522999932205373399260241258646572094691200416784050359789880271327679665865566024062068341432149313877900171951280876111876906615054827088616234642782061935097020340500249280195449932289191039630762209915698495004156949973856361270399884659999879852236174510055694947566764936021957231939560664817583246636880800664263982644475066678870797030122137578392271371862696012585381433504341419733598825947443743354580505150454999718910992485952802144417907115661787678762400473627445128938727417609179963337499197242492483149798479209047941799012488987221170802870746470834057190929432145023363707591414217381012032513000039295670136800376395162590038274418447070962691047653810650091025914573059859887156157329823275431493616302535824136375596069505055064642356444615667588914884569364758131623083666511571035843673653144126250092404782085951982146083279108994297617768821558908879284731998611018112848460850667874807119017336554078605969675510066386148467559664727394096904377990996185278309895421090224350421390246920295349824267833084566214244316120420818364616287035086246242932978955658695149201576913894632724157457764512772045733427745181872521222310403557989856909961693810559873606898569452355881153224091400677568964989186431470087455318117752562300895514984502404205823303341987001800345505289303305880304369278254795181568968506114068866772948476672465111928641877388849666053063456632022647471868304777219936827376561820879613601090232050379851669947567081352727334003911899078976764937931484918682393963945997409216260137192615221959382676373796010199649183398396499001025611251250502520742437240668588208145848338493975575062085134477986871082501005305879567369693436070830128303215915968672547741076466821777309208027450535838820762744995058777199075759056041744566828844510568806225495773606182476233150846138338371340786967209755999903430920296924143998744624744922663689107145685790471806503560942438106963277215462276327228087124020469470169174644832193212345859593967122079076052288569343146970892970300627269803230668805629634319699720536145452543668590449495625350937560653585142996699615743853035664333783049418628514060763078179346305587887811578072234993934762918100237422481680181193949603438567872691573308889141014476452252581848938802288251905685856552982570278296795548417747637344597418245107228743410769894859831739992515607552590467851381597895209523725829451626419399014381961959746122040998883851165380965056701546022486519309477471450547203689187419957594847485128948804773946322385351311783012747039845642593424229828931007368359024987153854553724122779989551297243261762171196384905833506273715657302450532866043382957286578635372034852113086666874241340072230995994399637493001114662878320417302473205757223299706144622093200669510862999211758712380114493521757654768116153955554750511359975880486303418472346475439315308946461094573806358388840179709924214969674311503559575256986127782484991430294489116430830779495134785172277309071611910326058793240591281717057897433261723470241213093921503735639364392653561532792883132489701892244350902647897653399807105921092687025731663709277688865618081634638851737591121919737547987280902568752315743281546479168254717116484938381979047609797699312928681497857177039345567097809379627033442617580817908213085034497490307719476360390811146266767167423942100433229512470768022106734965547128673817911170130544751650308021351190366608782545158446203718114126489482823933688820638804192691224403297358406562398519035200202090278628253606481234288433750341412865021745868782123808286278063895504160984816659474194042208139317240290552745144110050950551907928091268705332834136988602398818649257604763096909024492840359154149502735144748691886697351936714693317512408553646268176797921890263401008822341289641607313873218763760796853853434657588712657244750570850601031762250700649517548334337318423915803202082222782909541258343497280640369919204236752275124264164027356098965509971896143284641594514846829565104175726780254742687109435247673811695762962370083337763230390909176989889606978114035703913428569825973706961366488425109008159864152803824549922813550745757370875296630697917085589489154194657145427304513186142157059833892344154140625756547313721980982575282378114964658911677999453211708269159896808455041151351977741016828243800840357322146906709451450047908673349191255234316751100365481554220434883768801433568851756759668000442755197290719526449851102686989076336897414080177146407028959029235683298627908537612685233238332590793221355003069800777269893951910546598700109151724989457272538160331667335179713894230282282213532861692182446628847923708820566434206242930072645490417928026620756538209284134908800339767860717560858750356266841125430492419446111823020047721524416284184929879992552671277834021201320565925967253378066224779160107437751165166256285763423935037704489503258221625073504357293552076446581410923694671915777325329533303672432039796045593420946589574821800122040879232202937481371563202429323251795209763554521472644218520851231887593966501756491375870422428208043277540941602261076157510173162390803763444090136579239543209013264353077041051738219239232349327847505216995459739724755762441372816252306545848860868973512936491208668729746291015433403095612920082893672078823820730987325539829737298283704699192583144444989749246575322249383183162552661238321302297638155851968186956801550717643258561749980972088972989946456478208547290241049821895639021527350623669833975476203293028226924975177043043636321851874124461794193647337256558890491281469484327658232003693698734609087724571550185476346765217987832405123559784527360055220643254559076039038310219096927474560896296864386807391301474004413694184250342850691314286443970982239478267202476922681455388571839572691462643872973063488798760310493679771020544070616868548959659675393588360631467682127040508944624439769546234919441781463061889696490706794097890317450163479944451391897043444454815648451118700685698954174679131465439583725909060665127579042412246443566605326650347691858246983763096847217483083214593337840782260784191570204026491841246710735214504207535765121418497340007139448003138449848467205853860457821357499586163456780279166125322303716223350664169984978139673477823146899437122554404913624445891409510765939541249709287857056211007787427961881035754872011393925304127713454842790470385714323339356493284309064170263799173380780882041645269696435967427277914283563024076934380062487434639191980562277781181640610879904875955022395699678147278800829922992551777577506991907412773297406085099694036954135952821018646908447874213604542676006557126757095158690261076894510306491505365076286777599205791136325267094157098478146687488216558385327075244604354886123600548839041098078021969305751370533263428341524366963084668563825531303701578012877026184928003368100750685056110330227641759169699017888071169533795651723927369522123352240694215190433965404273490232382192240067856721150884410467979110813025596130634282990520964091201459899704064718984469619546111495530650339320932736805744279938340418671224135111099881517968043240263602655699526349504563627649990152191093336114315383556519259280866176415594199931926968264121039383466232339461548898994586317668279526134497484079049991792554305703937310434922398887764155548615669429889619232136784911741989377207357981267119659382956652851849105146608114422857638247032224769705886500222053353716608217887148847912854733538764309731031222583334276303905431100684122284815783443787707040405063399363707657467274168447247870516966331304336827319184374284942957554641852466556955989780375708426526747903224366565608097666929756609017131050372282762606449901647153954763839799699766564369649532234105939959412432596774955433218722843437712998013772710795191224491498938547668752023889925205631240873346634242048220566780810312839715607746029312719411959547387361670060624933349229119228573766523333415453569275988621973788203686029917038310987759931863420544428324153210617346001593053886255329715323433739513226897284877005187736195804010263821103775221045586702255077191651666949457869650275239185882769790265568619108032795002814096290966491989505246876201509013647391101223609838698492052348550649062711571051938653138275134523137975907080340079865792172696432012446168176557378465711381091731906865359312876880235057913265708367009293660663376921573627386767653246487876673633168698754208646853567720249625983976777100102904369334525857713269405472614762242094446496802706718311106291883363090648913549960700271032265908290085278330038684330248569329136836614877006065247725254343720164060838837336433473081386140702529247170984246787105256788816382242753037100931593830047883124639383140882669558104163615087783625051569868345863894944550001743442546948166912089128963537050640031733782734658029030800804587243480199645979499032719794360376929527387394414321248445521225654793927552936757614043368364543558195679383629688669385948352371363598757777230584582179705014739060475254353324443676833414316071726663332861722207217871855630630994662669862095506699107109036076726974598891683514482629516050974859342706571236168601825275913691978500591849253341511795883582364985122287351679098211821357280043851649374846910564445334972558515269165050058157089135126687097599805965312138657393472283006959154834482457003332798498902008015871592296293505595189158668128745694352609209927712646068139390519830560682190001925782780008040961107245892570221689446290562720644461906496984621853592720569838006555103370187714825284226616036001654882125929642562467033001293550791778112864350715358942785911018452884814682537569604892315967245177212636087394488151568008620957367818124766183833922420974649389052410516035576199146174447613544594804220415368770717801153401847217657245541761898930485182634102439779166679290290310041526430703066806898602344497905741240609758930720160352029544815041165422795241227523198194302449308346225356610534257830868254673453021793274390512943260312088245646769878462058495233071166856392705526828903074226326016568996016379849165552670414866707177502106841216811423169915204437362907343070108888863215940987336703402050411230787001936330337786752929325230636416499273502315246469195148938900674833676545726745049789835930204575320431532735948665179872569102666386801597486661129248917812492906222483179553962486266481985643907696369378302100517598243389398635564987068937839233704771147793723632668584285001634079092576890897268167338473935759576590162228759029927830575352422832790068261050788466365344029065680331146008797486579440401538999339269563840834978377193207396391607206183660578789780046456123224653884780448805461177596832760463329711608191077510057685223692678326191491368252716505224612411872591855257718903533408085711733992961064099109224511862639018784255104447038950702618253158767464921032722349558170262447458932733251059494532579321979716292943535139115575344694723399019721000589224151342678831380766598332164045463463630956773089672959223233649166088154890199591896909236099895314613733752355079338618053590705826676914210622470120737979390934383415791552732118365196787363084718888462554179510009955005078635255878331563872338620915112519955199534370811078473106405718575170306776064879129441094009257068605563898352082401599339770377997619183627905375876003454537031576662015449955016494166471110776955555453028014691681726474773724362894111868202348390301523484141659123877742971120548562337087611135413619133782546852267083187019374336427555586287858627744185960299078198588661841412110651849221721286451582360263360542997983827337267733218343789607045619165899688152316097357189167486911042070012750644943122728173746863581296620052316568674839428365562442230081811020908231643963962521964119447693189659236434383848249948952053556228116142071011843296307099599966450050374370612470358736178857580223193359902646078816748750579062225524322248523371706770394565888100533186680632621347702613676509381928543611488163021517020621181290348046488499984871950008353943183549224638085672146605911240880751861786241714617922820137849152587637495382984738627156336667451322652960998249529256544206202254275896317575871687734908167554878260723534624909404634632205162121431327073314993540630755060106029144887710874154015011991071210608015910500111255829714683909286206806066653882772986658747865458329145984146156606464524448817859985561366616346931407375291700511442303976930304729002640678921766201090420578098880142634225762772899505529961892851323467331972047016283200897043834373749114925220086213420491501543877520879598155993058697980213397770961845722119084728288585480651841729480546744561821161394337288825945837980456598046117811112466915764845074791527429881777549888041534233060891672669285938433111651903921638184009647110937630567239813760929030709822868922301717440089720134659942279178066579833958967394141912202522240755019548535636011020159364048832942668180797739188458609198244933247414749648058484358082474315715523278702983622171717928953735418287759007275553100939182377207580462992089396500407397742288230159294636734378385560849376480735014811805552076479053779928188663604723069104833366537930974409651838133495723513237177446418526373901785439968714501935385925481507610622404567142583165846078048048670295654758600658003092501585117435080142173731686024242837927999680473844959140884956681769872832908927259357442428144910748096187909384281948153084940165325739806411600239394448524915685226161841269888457455888981939825479478486620561902551271994990206069939332775749399809627649145149138741328992393947141163635716204923532513871097068229986976377446592355930791385743001907772824086564048937717126236153980107783321133384614901719721173693578504819256878576141142605229049695964111084169801578667564772535182747297090480637906274239499077432662946918668488107492822570569875974609866883584870660834287110324746972658254818840135901357289819003822540945971748026117812664050332508446158672723227766279528971410673911789247903646013857254283422302211041903306699662669004049416488298574420440988411206648083720915175910065262638679705814522054948606943621493835246731950791643265912462566164350716488092512860648602948593297528432001385448292200783210213843144884310943904007344108240228028657352098579375077766321792256836399923141519173063709911394807779705118386113448838560770833951722008151855975962074456914326700799837119550156665353323626210032467917047503556188325887239627034552392688173151333418904780287199143644345999419129951080365173449476548072336369489902085265365545094358454971436222502659409929789769731025878511532115485737725276542228172815894021298183273750100247971819855141975293393063093013171915947999120906530047775201146012517857486026296095613466979650650295661881724730269346870921884836383277586264432361853420201147469702277014157928773365127717376635329923127555438226501051917885124041170402483039364663690441892453660189994465117826789493577612958309607544536098466373408595743214997751021591245549556634427565925140847842873816059986918339019524462767886814109513175993605428317532538744505191181591997819131202192042886489873490842687891367148431121912565779775929639566643462040464230691336158598567689282586152307780372645153718551243932129034201087766519744926166340801882779582643274287726587995692105943742433180290998116394049945320049134911664913796909867564468078153175227856383089838616647753626098456451763812821620801437524612542537136182994320799748680335725211561113012169679674275306147091357451434735434900122705262311882162444166937100062974957944340156537899156921177752846568174114818905691426569094293900259528113079629366377231091348257665287645421231465189716036061130399679685045371791328856324555188696893140611865553349437984654277005023369969064207756394654876615963412814179346488017048848887548151077981282073498901616185593900270107383663689331174972716880335688595914632201963466808286118671832872955296017501989992633165007979238858495141415271991917334693910617826334015879813485427238858044088295329374682399157333638699901619756666305668771154816106102694083406814582613127627779003972649439641448423676435172432383358504487227336165385424177557374076999363053532042285169566510225215497969349553275013748488163780819933136447556177007868533370566547471516332026205242275775424513651243691435321112244032914573866289948980707661691883992803039021394367340896581097567516813871390494513275736916754082265234182253559080517975167701173831305390846310899238423460606624663937917749825410412664080811699335951237867137677563928626287146173267642355878484941336079127139143203665418845566368305068277865152370948999369740774101090388422886219437621786843175979438928092556988232143567275820722935944251176942698098738007101249476186942361181151835982668759155880659507786012045072344376993942813468676371363457568034937929050870842282584357512311919257010022408992995193844614048856443036920561123476116454204913937761483895790784840894750490771490223305626430177520485731807246768016908240868115320339753495714058989508151855787754707045706824841068195550164952368590425070500263697876450024864597561471890555376037559876719885304052410580948786074374760368434354609813620598344118742145294219385243739014333184440053695812484179018267063596355789050826217498490726700789446474032614329788084014223330006780717512785462579657538606913433064782956707648841520557419195518102655976146604787049386221135628834468961542988109768267385531268498370046409823327516758053977831317708181476900289678036917890449515304292522846179979549604920079747485281884393956978705854031096325056610413402524057951359711074732262430902714226798864370887239166122814835301002471711163406309476714097545046730019773217222623168146516723085069782462338210991791833051891064075459257201336997764710488708771746655508799488211150976394895294126303819067786418855348368569750248215399454518238823227609831956848379134172958816332391881359843639393415576133036466633939675079342885745603628648458590586219249398461510908978766620144176725397799405923731856466805140240449114882644426482122400155091448546561243056730197536002309943691468590596667001403597013407309337677616825151572345028376084274835531125264746639027867652953859944814733681007687626592710761922068353856840122713322456301431783319053256825612145765965477960043163283993384742985692463987731915437477297201448181453414212647509296323363077945256037367050976871024544358749358204656513829108513747848647377713719191193182513454159859133189064673064852249104823289967974678917053911720417730723577220460590442422046636669680036194128256468519993873393332047949796821410161744537686436425405617882557100453467520991926342982934188168422408694926017295113304004199298545845931883886676245410819111184071362842187792417259525322429675300894604165760812936206713678615965363634267872136797726591152062228061117258623241432380227928353959464253679320769094182935859863299700556510356945934572087032080167872784620060216757152474173306224124799499967300679394456162336226916281072437237031393414481718528270958439371362631737499906598814765814527318367079380817156171599613063997093347342354632670724208539413110801297603791221873815611847626522371539030632921857730618160837285330718776233419964265530003614868158365745788186645582399718310716464688373425199198423810322176931939278749119346933120655093882093472083708178680355103857399201521735328105119558330333629957221611599451545391370589648738871533343494887157970561583073493992955928831791257967642223118730991264371210355593533854289781343300562444527233271102152220403678369670872430669637212031759339120841321939441020692944821382444599363122202984263566911386979043610224349111123475597193213659436585933379589665584749900676443314692377744247301477486253241876448928395147769047978792794243733240685567314741111504753099128149480587246328736712616357147881652725830448438267820331865449533962834366335834335672862284995550775995369353552404040398367408793344258631539854148397307070256080592557863949175625863340648778163029203335955234161946922429614551426943178731468270058714463052107500061766203374451473787806616507571728702277260385610354081894791572637556339284234784653129409258697824741198164787476993631037828712846251471828176084798578806236031642491751018866343932608812958635160722931276116225351374794330471994953597967845561921527180301515900480610549930400715195093892673131340016007084005731219482514064136101262198598179301544420004747944693398567613483075222482140234557152637339492836062575099778906112543025106365458697788187913575558298869795740869095968081499080629770819217524664056339642373092031717874027472899762937672563066541894631413918749822649109624873250681294626106236840959740935653896020361670947912459309803441067390205149380836411939482700815039329295687058743063659979469661253349218740072635758989976216866620510821674777421873893598102026686085736204566798937252053036692463547521354323701857460832339263993836320401440365606511269173231858192667396574126935893174405242921325608178323253576419384860573477110713857143044566433968503083357981941207359853001303528569500123200834547286534226964829188867114432699596241693761846390037829721431600607170318624277059563757162194555814026326896636100108183162504389255583890767964202546969492670976196509276656659779198138505327079281803805381127565797503638531326603026063120486791003248810656911678719188566759093654415095911317283320294718295482637372861796435572914122074411089611467337473945929631467681126671749329492433367518718845619988361566523882699578910754135266708631678887601390020453598307140844557130952339011673141204731006835362269091115405466805883116422634518802049855611919529422540323722185149998766668675519123527239321974370613400737206143583859292425784152297566210576559443333699425764748690417513397696806379340228167304004298965188261755723517486782670786362268891168649819519958072200301149250308177765777670466356145780194922989425337784200759655502033878894691207762524218878466992071633646985917168988996539452831623357394804736687689048271686972739988685947735889480551046234491637926634365552829408996943863440330040813071272148317917909753984109746872620253583771956338256018495620039350337729110053972257077745504108014830557983090025231673520079636778490052113843215133176044325546351243710510973476370988888348433586273650540736063031627744134060996631986086313299994447435612194007029469252637380291246429739820962814104289158719110549032921510836430229010280081441308225842275445898026363762487381186966854814834941125883549431043985289904035463098192422983407752227708897899524701143613055975950086153549235357202211988713844953861100488951246305094110711881811581426053371432989360853782715859912910368934723635388927311102418596997606159926844485068583771475236463855918569270034404560415575954017444015501511663725825945857927807498554438133844584807294982746802666468123556143432653042509396928370475852180952188917550925645302049026440319483625891178617007109119265822887990282444808116028193609420357478053219991535494400026649664709344758412052354495200945927096865356261458398177945396716826577895598496199765644044793665353363885481560668722312532533205195732968987242933174893227681674611591664887793598099821120614892581878688746842358172728533140670761774025338185967269724292957195417036990191039628401576439902512105809854889252320031548224619846668674093083182875478818590142870906236178462027352343818637874357830485025997346247075067917230696697377236269689766602236853252297187299197104407556509156901563129275054335095292715179301650989759680021547484107446926660885834466330989996400493298938413760140372348401579642469812305184420404662069500258280475768501644142072820208118165879187874987539445449772858098171372727786776716855961733432761496635172402105866827987898020704041172906268496597152915341973650325916813071666007820205126750851026640112612289349513266793389551464521764819742675895331128141991018023696847328327663025857957157721738226882518131503154358054153245139271201920988009274388187711281782080098330616888361455140937871913034219766076347715006114697229278326033802233467526556861517914053316304898848940448786485693124235651751363476613771796296206131349336870311958433555389279233156025493463463484152513724284678994847265904045479573780815909147572373201127187712926394561619691871151645725347688585785569631155614622437825548302486709266783738892447927015745529144336043722635825682525198257422824236724789754728135465818871563503675228105035852927492257063152517509695541708531747880208684671496250807561439887167809346189739215329349185239521518636860051400444285960677394180345519816565936424771383540751798797599245979966975010696614354176998621860711567895211939151773511586143998772092034673709381485006042393715756394166367269909143838949649233353613401039719184955351642602647503324796266716395659674944154290570589973661342923052469644254074622411684357731106766470478597582412569303816833258247880235466763555992087224348856608424807176570540237129068800517381511833002038025002459707107953710851060429703380404503537018771993125744648561485404726346515789460904861762129197860843695189804322239433718112517994799065754679648941649257696004982738141623849038803596862263033841801567979639138817314376553635076894675440665869362990242161031755977975087370282044823415439808506737320497410765098383728486387490512471922067952968196536106353688102364214685083251310351927923735100422666226088487049132825322324160023204444847202521211251027853015642205020457575592771730915168578290944043062164599144810676960960090100372648652584267149077687866735922976968804642550215544932769404980125112648374766693416344724617697404349087110071736588361865805677091468436322923312960555461193035044158136760186011429539780565532858469080044486912169923023507719518462387435278864309668281781349814654641384282295881573095984827874338728795204175076599079659932510195189251861577966730308505178795582095504360164423782432768591911816264861452916036094229518757343136738035965247154415331755579870314342018030650112759456864227870506518528491403656574134414154566153225442739310856040152232536559486171102880192646509863163160618650183088964205044076528849530036740684037328927819130803071731548739554121664270602036977774713605461967256835985519758401966336133135532387597493228683904271060409714810631335924695723919015429334359272963151938077136341326807248729120442096652118251165022122609662962821436478872707526575992837058253467516916883319995577317504122423183392856038410238056616063235382955609509000660609966680173640031252394234556263334136215537082523413316267028418760056739300190347745736948605029892214176923988040521129885821653632091952627806876039970168108665947198851272736912685006659197187610709943315388049582116467519361179081951489480942296556774916197074422354051272914069305919707522404610794180786932964193657508665271199806165457422486562632052356252693088490443708747859291418838620515381537146136681801042714104068756680140989522018398720709315244153402491253973231215784255056172750420815473288328905715029710756781758768051534062306429013206405498130698680887089731162423517393728393600493001219794897452422217848481015725443840065393091735544076171052067794235075729207992707945908762690301968553399681794925600200120587181204748445242246432749781764965207624674818224221828113034296377907068873719248046780620746560402577333652802203047794146841271440164596820255213439267299183340980974740677928266987403524990474646647929216247525404729107567696559184957759761504933794738496154166007651188175699703461519859436443773528527755058216799033118955480951940910415501382760680349507778042041983419188492270386902790052440116838437816628408276514633038072241657098841155840508987425349988142507445355994091114528131117650257040888030136061339250750300142262333207139488388623533269154737349268036241798261101644874900728011740393848021512583452096533969299996365170855617989448856210175699175773405283143325937153467257430702009379580655944178349805630133018447666027542413178084181006059408821716891863522643090849956723462174893664273847327118979755358046677707869083757491200398653504132755332157967049429074814995050717234869553818677969341197310519066084527981256444997269434851724817611582890978552648019761562648979121779572751482164401180923700206136114061679377572334594592694211639708021061518787027058989385374265340015042911555770667189904003491765239338153608386250992409928072423409515627034029450382143841654543822663622673621317206496036895128078161672552972674782875935312081148005133697868149761617674546607401833316983072183220275676877902765750969208317684266019305735108728301341404800537836980722022633564862777824427266414324513380549652720446004416471301125438193690036003075500380058029144997950113463170089595734177008781440396486203049908168364489714316534839513294145457575646664801889738631130562897662365607740169478828636493842333856041088179288545470030955176902887274624810265171480042498951194510990621791680471723413270004549200366746372187612321456930646415928960527673968605539635287439688527482788858799214157456273267325135165658299130811469354462966112809104543249485170999056748232908339773715059160710696903438340983815109282630774807422251662699703857300263033812144806823414958983014963851659874538601549675684498227220557423441321809107133113533953348364698430458403250155340149089345526382352745082870715833082129643259621352069625547238944480303401150778767693352647919820125298947662860369440105825131609825296833543921127186445311686861908159767178186619094510183465420905903866051987984275893184609511675202730136950395603860843987183595447929579405714345287982648785959921080823767432418418015000885974512328178307385105676687957051952117565509327661141703274496782719244264063509399351529537207143715867190109388979453736003097707509531660918102522329038665811232918363143095234368293308562558795131410982726134158515005442309444608478937194922997172968665923606190967938505108568636925095416758347158889236572386000476991139456620559888077680386814123155515391810518518712661700521502048853713942226009364396471097079310156845916869784031800827024421778878449020149757939555156825554062549091774509675455606038412840210538138610436712415510335939616179995846271284144622161803053937145195968682023358900639813180314159437964422569572898640025661060542212593999390446124296298203757952402721603524134742000685397427080442429849343049578153591248387242813409592773145761110434147350614003320010078384581984996593350991070792876664958920843556298475807424938995471852940990911533483174959829301861418305676180797469153718072360586918992105203485718781425301297265257161579503782148574192108676652567986636217858938841755588738686604218089655898367526510734105093781365724004805147524190559141947518760407679545295491160496971706678484842123624163024259359453484763246468694430292489217998714520200335870095508937551837505826817210708830573054123713299813825675143092290855077705756280975133547601057550265115738652199309515870009719686366450410220708031349123132472413564726090437487953692181099589657903574226036218925267266767999457792526550566764105130207742941666804293683782254580084550967857184022684797706269792658694768142984545676525572942110418064775061583814344754694755239460411644397545274990045801885705305626844536884370389417575229654366273798593517221131007065643089597356050400767068586242575731530698334124132875514749271996903653153468537148218563610337485036524183043517712150267745428854176280235459176244128665238090806245448058986836099116781747146105437898443708237349329788886876588242878640948925396692620564163134564331332188894689288483954081970460585162031763472176565682221679893249722187451988828741565787493991448967995792622069339154444715177241415151160512466787039530236015075557917132510699733254500732259391709551437724510424512893629120426534913462014376510039386462835915621889672642882231321643184496625183405250556811217697773199179103215801273254965955405334967797688092176867491539624881141485669833878859042239360417910858410848345859285436882684192511365571007532535883844525799897474603064203927530401916859639695237700176990140624827592587307951326096703065273669578562210553638532022096673846919424711620287381558941116414154330984581679273380863514312182763661334579294256593471213707730353585285128426471872477989608701231719438967112879702900130677836062913358658624590104721878242082557855298961849278335598854776056665704720220674528657696911871091323910511892804479692552271968807901068043254193363111360071389960170881802885063438663657713802213495126771802900603690419925210055352242937022745268770115961125333969552448530124309792523959094907104278495099417090245557386893948570869348052066106899795361979229271781783251597784216417675449909480817804989918412050337066130637025715765838926743713025871004892684950936416162175314974664533722306649263503547595963344981410101106401351902303886931873818498882338323634445215951973053028875738063339656522112815863311670144495984866458064539348612941531080107231750013663083171339624736602685994742332291145886302947734591471762915021520361662281679273082023881650894887537067983466474201993253129129129393748054397575038679645880649937371747162994717275870701953049599089462089990234052395104317201528390408841232470912178334190361376018967844910659530914112440357716277726117038636244396800485445454518578839788226156759558183169244561547930025915675507441616921645861031120599294992890921941519317248649340532804744882706127517181804676194694760100442362709022276769753300772308727117510358062605006079323698250740383401240248159606961203314329411988669734284547642704751953489242552057365027247194297846335157842439346455467217882819768734721244600078318973670221659303374776435429670577847892615863411786301406615413375510547185262801817987384108836379256159959935024731439044469088819520740876872273571299828665946578979834152825881867279542071403940256426494060051700303510000613680160830519853507481950692407863488377445325673065113635243946936972658608323203111504009358304442184043354817822007932634317383439352401527529854988809260231342427738179189662923394870894767948090484857585000750072415746150191290638413409203409791774545114256126531139419454776284266442711258825318103950364761795958331159951887426710344277687587502569246502607286231595233749408222988437547000962380049189250121253468331531245659680465818649457879044438016836263069603892323964586039573600686114139760509512897988158027618121077534953059889813050071569653509405046519723011891141711722124454889710246603164848375410847518252317456024648508038247759611481319522839253020849398560802864400248036296681551371997928220513066169144725223901716033546425657030696099737481176201403611861380661694878358437119462472344161262266781276195888762111262178386188423399702901463376646997691411861248785776771614562635990024526434206430651758264094140521272619829521968433211132747091405903436298074870103433677979772848050139387839879515921835851610832044560655582785482559344527958855261293739626110004726765376452123346351053743277732712248568194836791435110143405004881856331659196117515237244710234256570848243165503926282805183368283165779831327411670473415499079992921584099238683656201856374732006900052975580809641998799917206989063518768727231720982053383917792832182271480081981609582574256487625389272067123472785894388322166226669975985038786387314649514252629788944426202898968306568793527811325565675389357640008763286703146118178797151264619458780113312519479459949681806780946589540290407736362006455767299197019071286128167511907574045677040147695577450873720472012281736618791374085336512047211035159371997642809843152206087634979335562319807178840222183988731853129852798126956349489136185623787589210300310628596308215342432158842987471370812624333925958419510615549852853950216154845462438200312239621025998021284149273015060014348339167699831581425531778560679151432252066949193323940052918113788439682887082978747915422814457886076631552581332694682702880027983683556683479144999984720522857968198976104219355931540496348603199163896965934487713208073786566734652727939786302021725099304752353600307333728002104789657037808713846172028315945194651378898110310604379598272912763186751754005986768651794401933629988788142349060662568339746283521518073890878828045085351291300136075853307233326898176098756883258594337089622985811540048161643664664829329688193951665873441293528083266131834502132280078544383123118905902198018473067908441227622526376463143712861428724899191388355410938486920913960302964453681129217348549649731447496522279165870520236472572515751149501527421104176079702292687921977788854384991235484768591529928295511148061093882116123663358681022723425168809498449999634313022501581377224860828891309607963173640978968015549288973247810152943287888436248689763737556515624656628511488332505300251727471573868018927297484318375376359197081296526554155195721858774075431679353212669440353315294936985470837541278908932163514111584631967259669026863162615653088616476573608859493480772879751699801984286313268883948178856761078897788987422773355045516184789514432623026931390760351375297190043229132180931269038892009722753977472476681043116499434814546442054013047288937533451022231021801642418172272557009857875618685061235654576444994306715113618278503051501295331684207400492860346779044114571526205090476702702368282552706438492652385070597286645157300027491556707241489959405780165710104851256368188780000475317691559867854864647243707062074851514159716459062463555754187862264369622497922998013754338562096825191888181496889323560080720472602584097804230494439671886391024425932700524923249187919999654288492154415859786681539697217169395084452999517498847733291080600419930415778387319186279079923684935968439073987267427738133571427093757858821467298344039451158781724689660579616246252206327787006946336341837579416934831938145925233498545710400370295728716086174459840492479840384595940533250818641968740377194641288205845303942315187969739120594020930016797364687093985199415032222610543152850587382273648856031159320302940754148483572525929764066547431756450340496157577356755033509081142816004221167951416219357371856951254447538083492024917389710075337404072229504454906127905007106553000145067709736654173779314881274874523702060906163252128228471835606493369759355673024306536805239584371405198611023788809809709502700012763494678456394284708215547379101697969853289886716300631485370753624737523273175814149182988937907582793560639320171435572916130077494670412821359002882027642801738749729783975322857407468298590849904934831355300416724010959356636589745317623289393237203469060845957157323992147530844806785831254384982703442486962965218293425997690847551037067045481452172870891346397648399046130586543116193189728939983350999524018324024159716870529398264398509208012124106473488340971295062182566685069586771556958117466483074490316011076896569085129905902246759971175742498348094617321031642959542777539304763327649497003354482256102948479472038132249351499725300334370553908926132631263893770486981707230907083048260534992935588785553221488385315588173832534271140320636157582235190008505205581267986962305038339647391890948682918529538374208902541246349408159997904035741760905833554271033749702321525990926637581325465366207236790696369105179699903525072699617005993444970003275692897950859323434927688890316590441281540890437033747744465701494461762052259905535490050445983430203031144048188458589874418362620240027245991251746760272253745402438841406328802284284187074842170023000361721944548866137737667987116567509120722182984710724843489723539076596823710909461993735084903427273842881503531744014433341973672453822035324479935330466190632809293258117469386005480595518613176699972037288554518308089146774992300196435737323263610468246568815461544039290310788212107370378840963788050148793441960869802777721311358524242211973448948978175910307039896629072762587160788371047674651214291710496430215236996771307798734029996249702156226714146850501602040994756920533954934520201766790543681161847374259260231869416140978850098232921756966337857376023563804328618390221917511966206785328708158950324580983860559857524082051410449195959306664413763844641293823402471077913064905156241838772682407075221453624579585968703546140809442567136363472884510538925032352878440130464875868074541419348563363714137092707112940188943247736278306755141514381006519371160945566094614462623282329387274997728252882551655569023267665237778048182302824687267942644185949105019415348117176116497013097578749948903659482422028182281571461755528889123681303729251550803379829418632714972172047743691862981382987463145672151090906694833517931568163339105966056274469773073165893353706489967007463206762751078501583003404843633552573933452531567396811235313599799600254526564236386924838830963078041814540655040181052774278609490469316413816147125201743971242410332954686133902650338611169666453345080791865401252334135366452394214002264218199279006012521988507978874886580839939694929995020381037836900400293981032289103673431698894395124951074036049124316591996485878546752251691979487683830255157883836848746161693430715647812880337703264235687737014125464894084194619382737178648060787599678204610766939168920398152325489917445928044247425350086794544623152218459297474812344709086545388633476589456567338247393099173912902577786247983908127029634897601111267076445553984590324167765288224695163365471451611612031434336151138057026617407666965361573596495324192440266134198893846878885423137008929076679015645496648577727772619599835412728998987358774131703496990643704106946067014265371661826336008552526707468637757976668911663914484174041507027700344786794337297840019358127284645778914903451787747571758337544956566166801805757731799990776603503416478640125391833538529591873036633102572285818886379233972346602803025463853106595099456285231224637614286740039322755821113803078095166163768049617239981497291879513153902222932499121286144594530583537826176792620185115236139439565736802942126279906258916676411065417304256853044986824813649027168475530957119151849712406642209999622151323340579869681942930253066495441044302156178754612080141305584301842576912701130769225857258062612075704335082077551048168106735813834343480199177530262887027133194101148131679325981492258708699492571796598107621946309213518171792391541332900882531551751886475533612299188697466508942517748342131307002137901657661303047268696095017563213370524947398874119724106660979319860925351098601264978018739501869573609476005732673659305044597905863943989487945305122622144100699316095654121986090341969229899554354272481720158822336221956150553972133201064884623220429095623709944119963849269098223073665206603780394032078273159168789341177355276936071774207255355068337985404686349113681569108036187195526216624296547315192355812865022535375574617377187939837342851716593061678184794433085749187192503645773950075547870142385836889704964739718313347345493530257203877490376053493779709700937530941897029614876703116375368663028054553545283611477963051523191357737701701888920206220388090757407955930205633897287109652287843623900346596506121052923877022387800604496715888876561490296793838869671673088298394007231394534710106400877907389580499285240934792183719524701735847604854843288945480293721491498262725630689779777039455882007484476447714725568153584775553676219253847706490000931915095026642888407052317534021415145042679910978948688017180332624644888794826009671790244982014176299973166673044082726189804899408956373273510220607390867105309653108412166482188756647722074517341113596731615053596954181470856954846252865299587835969003989856147054181525869186163320760231516006236526702031574096538604902484668441015039777272884364143556651743303429620109707439479416477777611402461703080560417366496175546573580873170087425656009976409589467482561794412615017214205003838471557389338118592169924030118198874175095980437539808079807602799248826112760433077768120209148314360243356734739042734657854152829826905923319077460462255990269139227608402448778622617820806128232530309432087414960697859070541506071589389383994563445366790884541362785077997819139982818542502244984077085904313026200947727496560727506129969954084077453658729511730172766407776646834147592888469933824736951627426464071030054245007152705177780917594200138845114975901824948604845795635374943253086505300362076963830991749630892386444855207126446489403880485066073482650336626379594333621194462743481940957542128137000713758471163488192472094138362627831143295656813976749010626234169121526003667614276334753034425596777113754873849054676461256614527542956546495932480959605806210968153802362643326592426417698397719386031351624688738430978924942993035822696310923246113241126490616295513487753935082769747636738891440390043027466922116691521532923002442567274757856566888926990425669498286082120625589360221415203699945644073730703682159416823571189684198972635706330337776627650764761961385104938946770676771683214277810832827307944920848871688157229121092636142012178790163613038215650845614081008402861126784680869985714087193275175265828673225527607537071269599879008999969737712055625880890328636673309952530102860226451931657062330827458923491820124190312912631064884297372697092109853488199221840682907287843498722969514957699299623769702493004477781979530781332987801042806827070599770898284838597549245853676493425176563092020662426372043547359604052416182016238418434610585226680834887873301217185834084496238951060630319404496745076168266501134310339759116918842842760240871270190504159129137463686564018666217033873522810014939433688543805977166207782521691506014528107584859117038616623920071430182061105069550954121455084498571327083888221880850994199692310994574770511655173823487527364896667200623674294739647653280888654159437461241868220891969269043701355393257999250541449377448249671186833957873074958158017316913624103846120911840246887207574863681468342913370634003957802096568708400830933052989418750351766607685138614591086068580477763640409043049296600030018595710595725822457611527475973271703129447678554115800706734628772217043608654613155459905082272822769026312135123133896340852573814337323147650521369053814121653717271965015066077485806534509015342514159122260157840325479296589027273516625036771609195868619943766948157514009568633149838341416435397086160932438688169715856376056619719447721808230615870688812679106148845257232148683292273136184781067445719051775796536023006280262575823336726789525746589780665106940615344804711034461931236917436213473903638623137710157434333206279606932671198840442431462677510631934625519868416905909885673432263709036263538580414716668140836629981458825759903770199409913353887322149628066212112736969063030471140591697834921387272926748013296415015411212358525122308064495127262550516274486396229395650309279032454464170960682223265269753661718275277565595971306743602010367170375991280814636700627012763685114049305205500113376277162717896137470765738641538812851598464372401741514857480710857744398077608937060766606847803451722872786523550443946688894033405953478840380832666953291672727859832010161893823508404483296464470928059277266607315104545806374163876758551768303341964629020486389025348786488559214745496006279774004332291818433666507225121702679694493807325741685028134191518049050198969193458771587903607179631344375297808830120649110969984106887960475461622175343481739213033973187949210050303594242807649122672409810918183997767328369766293568983022014961216912240403250576055835592211931861604824589124250928091612741379095522190997547208017322148527142832790967530768060741320979622968543278288825966795925320819236359183666164481552726095049926099946666478078427709554274418149126902128523202222603384031099860928724881416039804331152188167223654876924028244401043523993922897580905875134202827130737196232149281205917175348301343407412966384262891323025010140421613126314950462481216948701125267103433536705628777708552870286107753650533081196339902090464155968852975870999435160551600214769943483181266042407819872622461596722158100788813981522755064076969196914945763924416065340384720951734298636061116935017371346168551207577257016757300684742135429653475032989476368268888541481271626146541952734927933067372740998801515645960453500290173273467363654861303221868638924809358259856370400248891729387988976049952953749285824920595981631564709009267189800989957539877880239815905702780474393546918365722719751131249003285430043693320314608445666183746319189837266215009102899518965588496283649804922249537153453825155691140875046407906453209181876673587044651138992841135486428007073888372175749678909190136030573536539605968109529958952187573472492378454544416473458838017281432179135440122868753890615561803202694813743474438184736135425596236419070717199828597725242322517582237262662026692412594533474836164821506249125121245092145271146351122678186663915785488429704205096268179199506858796441985684590426485200922227997978695578828439233586407122160559813171401977463110479407157681546506208800007083443272714601647910619491045369895922814579095633562652619094182276500383805174081135526637942853060636615422647694494827008303665288903780880178446163015466831073535402640714829440003109095632872792751478988831893157627193112136321908041100066354029569695541874089151500940933732252158509025291510728463492655161656829343325618577601445138978333775195388983303885074835139383871235186498103584585506400299342660300638627605151077937610780968958441387465461899906979252578517493394035327660123905217546875860478674247876835397052794095796934184944835923385937204100661126238251781251216376294868935157919800090553208635396522689126696093008390494216769051975262596333261561946975026834365908165886037318112344115281631382883180959489046113001854035219229749607863085077672198196829306937724934388036864759347924084282062362207480477726486934386177476919876007249108304379383796445449253630278354297827376239244315214961166644683398767363364996376483244587687757464914476379039476641175086661128677010130448753283938220017141052634034119023638558760805288137918200309140843461409159074489601828755877887000508736747009517922783086144172584690118859614630017819269390414762268596571711150340875553853232094087928184388132819759752021002814105989055081190758479910085961384425594674342698462608707530619949141140053797997850937987846783304379793414339180806373904376162265966366374834880736661495325139859459870962232257364682922293058805839237622993868046598045348252918297362206434901048693290706338463289707443594216310761460685990715230458615360098191118016216643284056907626077381064440898183068429917333209678400369861832880353505183394561941488409297967300123114961780902993336664039711048802618142253080902770331185169245116527333715451878139639211588594446004436688728139699963795681765596336575812581712761326134971281672392157789757978945780059257449437553810063297588013472675223867918313148691788427476824933834530531843368676755777499519622528826700140762392586132468615024213310768821567372501087793210344150752681676555788097509224751713472044217200975410366161221900335709390466987419976848787143133892463101319371672895363438103478011859376557866633532804494748553735700040039331194816446679471588890769339107673200406460672206445177565880115450050183216380700274988621648245182653521814943482691741585293210758678632003852283948514932154478704846515633813597709595632106438110659065639909144246409461329355157306620137958572523633348625784394547541227330170343803912433627877598700616447170218651419281491938083350007951612825197166902100247706417582876307904313256952985006145108306186436544682050425485658310044875144972014580283635033463942236170317051818769178907744195770984407620211856788670157594147875331657009840743359371764133444787936766176452065442928026432747930495499172756373114047371681461945709514464653244030088559326746961640125883360762033051312777089412222105044968023745113540627785909895456771115968224563787932557308686670543439793249708554221226459511831618513204070152445782666353567930945471704349801363546874547322633678533549013088704127020451820049288945947599190794510288677031684632476036771675820695265063384048390591705557107548793661516148415894337392835594238823092186332486420486851799275700741364937713419194487620789963274982298470777491747431037533223655448609317457679455123310902073207462206390865544509499125082819232181079545037609325936454405206290562714396609985915974027873502656005753196988234839703869533397633312153974100361356414420462846425915670022033526013111939642421258639593104408485615319346885738495251900154699717218756858773533279515041316546841931596725842375791541370914467778079878759943645598894554879315602139576200506192025051648023008357802874236903098869682796695105145053252153023167767114602940918573175527780031730742897174072964056687088736071882717339692013156752871589438030648061914754270139997460144264794612256604979569804636066403887446377285702419891955021966891839872888986918275621778734827445408186803602046732229937648508170938582253402641091926888653651188640323549971691173820772384333443988757840635325753574150009877175111982020017906765353635029614088365168885568645013453556770327993162228562668547511827340036896642744286095325490219666937154002140260763135522867046283561008582872674933484685762123058226210549123458196133934530014709221944620598657421454764007679285511751749257403994989759425103879666671607529508086025243771403128876197657971557309660553285468344669501952369749424300753987897213242011701387618475467496957901908334158840543438577324498297153287187380082556767688472298623529901604510220438392405905064915210118251285860578177302593030347267892031390948055868578535292119085375936638288054059550180292007415561623737588178014454727761793525442930327764104324886126506307463361748153172275788378621093955879239746829375553298522608883015352633524319140938576735652220328971680844224644312394096615607246173820412303847510607860645285461842596805759877695620619230658797841227750253079093247492015707023452324980637440428124931668036127380861116416748243991585193502289745718563527950453189370623218720494241121403255596308853281919648788212155042516043068779165648509683891987133655230889931486081012253669016941192909303766050251688674349756399838389778415176403220224882056957633566082695906309826948143123814459779821944084664367116380298179855325194701423774464505438179861461893444898631482250284748786607682623759346471856998654620734376676560300386180562510998062325619487550778371258739281967593243112254169154624674281824085034473929588382290687147489170551621274807663667663025187157820435886871009859441093360968078291106941151523536327234052575437741980050490209991308616922960323262488213398987808114195316954208603471639133939449227451500137943715145717692157952357629286026037346521129504752479433879560511979913412451683320276456997095864951385292001754952405657846288786986774789479809101400763947021063959055749219214797290379525874606155702077146176974442182803409605921855549715773149015040273085903140522706369501951728223592594867772401592138622882433060031814316757412228864000394677336942910794706636410781791513966862428234957249167779659121933951200453630177065733909364930696944997984736309132747099202931596431774626144757642358122357873412757253668287831636022157413600710463206129388151886162674602797094109886159819517876354044063522650406696658978838183619926668062374958667199696029280587409066217303579174308370953738409752646239097306048854887159331547525052033517139723602170533352805213433605726646366716068769733779915649302264605298480346833023819779521809783439789857985487839241704953594834644234275911724550625813163533095253542925253173834429003363684217084499919553031476810896629676887941346213093419605944463037427393509244365034974500503537506461527761152125479055170050623988786110085907324224295963527110172690074518594114835641543592359783155818509881546382740318117774619004714654685440220573442611657289867577169236132080192849740247194890353388955993415241486795595540369055628651573343765327495674930507726338717430375707180957606067093347057324340480973754866662132558270402712979902952302444927894362765268989568723722760003151642764033248236497094696871994704666866604990436687654148268349561605715735263394563266232664000091262980937644744751513817739063150946157026916222221525039216102848020703690657119532728665509068833449126425116406901179061602215082879211651182135560343791302718929883426377298238592129824622872608279772509897815416937923818034634661142586782553013893136619747680379811421465440828169430597189721972175065363404207157045898863830532071387674858075105231105289805176232983141156936540134177829411407963877056265584244996113771716365100701048078835917976304190649862334011819250213625948136688131511532715207136368548114653471344643308902020874712084092979510563147801198767740620055679545235603865681999091594458395638366978178698170798712726004406921177682963072483642712619637121375638788921852927234458106001580099754174869840540930093767799649054974788836677704386786926511573374365552664783577944349537558289873142543624216854238158922940483384667851553494179150953459929849402130621973987457287084018071973788271924920055503198992967019276402900564606226601086566636485300190372260268343442621769914185741000268885147481066674293175410258361179474440814314166731042898496778055486214189973360539409532800084634892294650907907714804049679397799586441270869919912354409037806256759489423536972445882128392950155476297281840076351157756246775910789352770363209565795943095213058266901592997783246038270204745741957934321042064633604129124092223415441299338424957658309380989302562386744305196985707077034735644811996493970683560412882839992641559018585532188686089719471891429867457457339090889800428579138204836289052001180701912871968779737638720463167206478108454425613553060716725490087584838490970025912510254277326488188767002486659701339444207637288755676940643408277307773390744842494321108786672484062545902008904292276464465413026283586730435295003135893615844859459452060334176071622342204197734545120752269847881253357651482261272230385509029238856929446059847794018771671562722338152484421439509568339636751293976755179932965890377260972683876646340934455522341657355211297972028033679621339060828909175787978097309115769051139268311289584879610820961261246010179067459669508685214794570731478472884389707986843370241327657406107818246037173978958621185334015578440698641556398072652519618684335943827459280354364350287067568852297416210171645655211685152576914657976534050501546555356109796794930777048684826105701162510481493649996064104986612691707360204845014563977682465289707004649984888934809772708379140824457383024977894739721885706759751824063218538340471572628238984558206110573322975717165976706481244704558753695004764547438942087768957584355984065061815542515256472686600663093635817401107790224692980583284353833670957959312008691007109465802125266120636204893114265314904994674189871587343799136587073403612091634880916170521023951063478929016274540017355985633656725808850239717209987051593839155088311311244319360044230912399666110074362997966308063882963824973241326345065988095352392896540454383596090454897982522229276555718069785145726445781699729597641431673568414850252768088019136448581484091711238039091198339295666841737140840099265774989849423798345657543910378398333785477971428188902034875940531765500371790193795190483408552778669717988224175635120190707823968521240536133242603784733337050232000044151266786803719173038746154116406471983932779069622800750446049678047037159424373346687451390729617324698430312099492483929768340088050550692077655472335917371370060520747070085483466290468679715499533291933803252929042551216955716832237384771431340692451543183142972405153721861258712672607243834133506779843838184107867114894922436990823909072117120793917670456520338804262491219743277355182969189882420865980118333341442851513056360822172200520409851719919522838050910651892492654834042477239219660572925927752990629733727744508355696988724694911935304853096849409871296679080603370657134836550012526048165093776252360568570511214314563683446940074416322696172014833253057540449563637298543401310445396954212352156612841874589689695193508892874606900828861778319471323486367044056721710807903562095056775520422726194165375706108924826271436256387065889573327339391017982928319156724400527870387877510797311159726766733767740775143734839509099216483814004879999733749441923757101714696645272057376177190075519508144525454203877457861443053599899620480922448896178876710833281212641602974818967839745872947501760697289270331853557732494280682936178553588818686121001370109392414698048723517495428643897326512948462674041434423930276940565375754349570118264909453281652802228784612684048986378816824070672134199077149804097953396800594495650791464652528840714668933108479164104581813303044032849977843345265083651075636605043580835582721776673457585104092617344165253000392130742094475550005561098026586633185028884536254635354606432083518883791512676945035777667183421179820515127326757820614153175612781713546138444239470903405156565801566147982588940089359388834110424986776790527797495523518934502074056047751262746943730427428616081007176219637649169496638266268495011400541023366851299228936708193603876213794226680573242748655570527067922151332244484262823435576101579425123924191813653609667772366777106167595796510972964253774399745223096262938058201072783966216689200882835050290084988556908198609482690728358301240854009028709891013425050109612887012130643325983603470963524280954025508889615691113176092467174972008574603700598134934124498146881565060304153556426827147016527330004882727409891042891601564431815349589826577092165193253486638322908901519243876751888206235757287832876321884725936147687495586227510430248793279854268669099806765926074055807168025137213357269247910102990664034509726161597601809815795952939742759329792326287774481101405195992136637630067069091386713674356500812962886602505673637695162761891984093143950586411963158406838096682722272517766190581960106371124447522504134242210217220081335165284293775913736218123695265379778561348535249057155746097047109361789554324793630416237433971648303815326126583278006635694199537610105649345137929857604271036028893626266826870733594218636247165264763829601159189912405196325966573406298290027825731279233686809939250488662281733429972129321263414278601585825038115956957033965658525720045521555568990975106896302064771656424952241860087103227022600244383701784803279691718299136648974827312367424893430770650915767529523725056630659508055231891764002755502511147848579050864816133076850027796622856910750025142411611047693321187075638534065818524835221016308031577138432027919608068941867786562179347488277757709234288673469937616957546319480361673302038175799581796393524548427089530038703248511053271624378071166165393919231498201886539901243734799726283266625769200880030502801619447075273280300047158806971571275261475087868463847774053717008895295362191875616048676650491457237609364590776234178279397535961425076729763008985781894315728310999508597951432434606476072647974182398364015224293764150180532903170905743079493422603166869798867441244693902939898423921095488327113475721386342859266065391510384601385862246868273609093563637996568251788857463359770231449198299099186100705452577927048400797318089363145998718308082189407444561365371845635548416495778857118159137803167595932864000888248898810725821666127414958521392554582116451341216084099315423898463951400947633017176787480245671498535933606960038061871539587417243686955289974460474229304757617298110206198634758694301284415691011923109458827597446422675672582993103115382845779326186643029906004727108300178144174778570616978793361330338043204743591793845672502756491663478453965460828675605216143437247526055457753198030007951863286886684294435028259761022582536503554784256378995649458649839359308441293636721586450145085487970644238740325573912590607779433293229553301825192982614270360426230109913769730930304194381660881433030646849647472324679461812752587804742868878378653608845872144606205070536584649272194025552821037925888980913202965071500030497171469275559305071100823541604075880316042417287005928341307624521625500315257302468268367405428196988485202748948621344197216575517468252895009460844970923673314126400451918953295580772057584723523687528170651242564075276281744849197294653231189459079048298131830158346623844540102739529240037428248150376160825395258463299780338120586644685122847742673433476891823339348306806386623326670186117999158046122751137152667987229317143381986575235462574408736377952854489034314879778986289788197092410772741287204155974875108815985925828383956307542266153466538618304360357394224987041962041501513770548524408934265858166551282399484840987948222548670521117294642222777863567274180479179872628744474585023084539476763078170430432629630609815608364974802350616483385614428143007900917929929042966914533063018320525644805174167642515943806059280293595048376018973083511526165042094817282137947600583540299370204064238241331467315485770454103462194961855619984779732147657056389639695839724612923392547985459940164103000198239917726215874791407845131230598788442351731247498432132941581312627534189493832724570784584223672272003452009056248757394330638807818965076504577346910170421751459754675758201837192395025388218159782095721356180873916397862987161268952236009987363619517289428092819134811886542159515004860089709073879415173044403198687297785396741807656539861654542746590718690430886120742168310641026889646192743729387048577536877256291132288767289430335022121031577369468041545763077712551210764143826941596513467618510667855188479245260275837560709336150584881363583017050848646867661195435969766386815848048489529835863638345110303990351604645771486488582471259748561183536660655618039859621016470938914466255813160809851553362605246337803815536970973727462222970993815983408982448554476682539392376906139982808418275275885169714669434806300879696265968336377733902793372916996977596219150105891351334426394071960960522079153820538389913375208467468520361793610579319252205616005093646396144253838196910688967573992608995961561232684428308807310768409264466404894898575895564483099274469337304682123800872187312045256783674069093648751549508138864089152464478699361175741352907711645345700385044243513927275002484819102842734473476732358694046601625372449588728431901546032765000848908263937870822039855781617661271439572568558393449821450998628159812386995109186055638938175198694035672686535118726871075428328642871377167279341134779647878271506633092609783873827389669540060451743404473796258110899340181297015994629111845634889547027968879151862345606008213568573245664860136056627762575887206122960161257067384475563623007240867730018675543896291395940741984045466475553027318964042703497992267904836049967935399775129645229007022330699168676650168532620699764690809670618315878696955107151137683712968689685660244791061669283060937324089351756096413650359398210145712259289853415721961033662795117595097431053313551749860463256224738016337986896205473040142091384116071980531714073644858806654380979444335018241470280939186934819320542171458003121806309577550157713928634760224131517478848864382263885412293145145995984498321314820392819091377312200085152720877833515438032694523452671584992122879230663107354447450021798492057343274847190964995167239578929573994143293091371250589184633332778844948304478216160318865532227771663235346708403610464871442800192151926080943943763660025559469839228946676591428142203573969447670543898477701153683486493103856406728461765465317367883254129990072775525242340715122813628649340290149973921605602879129460408575780438126675186597408155793261673960343757305255989136814677999427092370937116735252519533943013499108300185123239721063889933082670471779413219733053520896530375716861669437026316762486478585401162993695858247616335928934014537818482332212008773035165348804876373595381761158950796888545996790012390507935762824845057363629342461324607462394872200835072816981114173619099253271334205407976070964936154990378618351038666938355127493750470803221420713897988011401385203059319951126873858210047589825182490382526837966014723811931488448445761141316091630898939836094398519670130195506857643683719325976024444047745507569321183498912628806594790252485776516189359137388651767638094346411755572390776165018470758820583527812807420121131263824247340579520367635308174979883520551912673666865269536077005852230278789264490206606296930199305652533880992944174592881207819438888401581972641574452808278929284721753658777591015429801387425115585365395507856886490535655647958348945968371287487423487337232097132243991293228916731895389096637673798324379417613791871580597665450431365200482911575973960375914120335467207983760462372789118489047398944663903341764733611787992385762576314509270721871682762794533410588929779127370610106356261148930582804740385907937873980164601256643072839178812147993599019014663654747574152872948163455675628046400413164407417853542164245450240052393950638543361601625677998322778286175674924801735009839317331009531898748737058247590258384099451376513583361390877655157450460023501287059379656887724952847040446925717531280812492836780062763545149378918410516198897578198811713203014709353227888057145343743087702200242108261108682594278136696302897627824105012663226032564139979839091250872593122540439270807786787590914323607482737146719055986968026959309142485351841936189015254205088085220475610807226015990684699905358139333189378095768098330812542702696196885115085215411544908507629688694634260488237214746975751118864765589174117057624181910116064543200849949734923672895854781167280342828847668699864463771242942562739290491610202711821223740028171916526079662677176462578537607440946589824261143914969511044535834699618026124815062616418398720574498672388700310498717292756325218244455891098424036930713909960500124797639954687147866164194960576362879392975176722138226159322352992315103553014504640401426979336378731576540370744638653092819505805975953166012901115051738152682842245845343540008112581278440190104772320067722003191947324508751807812435537587553272659036950421828473418241125782391340453274820960906003868931910358687098731466262156230121165555285469511363299165020949186507273828708542322392857169079894652914984899669800619790751291723748694420764914235297565721122401345051702875653987568974046821565970089495063247698350256866897493961354280648660520076969486055074230052523638141047391711900607712745357989033897855934470649692288311594033516215485933187847031417473320018990086127781023099236869843647181257253893352327118012816301000367162644531385146536717631833067912305702373802883316445722160044738999385001318996362052324057920144348684911179388661299304452251304918582586340396399497250399388442659650018934992436252179190519848307774096354985899029002294487327254341539640839415953669602914717403470336776022190816322392483387359479346021890975423788020310683615549456806435901666216483470940419978726019757251000387750432515182495707355658407714762109134607790161081417532464878540523645879143651840114327398451881934780792072139352210789634644610518045293029833277886696773203482697055585917126181238329641778047901895227465675083471611476161066336690021808441121803113277572248677055441968868805358756984168210228092924812488010833946055412834174734003308672263794882663798292205757479949330920415726569087082562616328768155259586656653540521953557465245061233988592025729090984143098686373310303657978838193065136283490272880346051155831017499370249450653496746390319729283689891951860489813507678635292585535413512801146922955398162964317985330722576136090642130231487410690634840672740705424265215105640738526489424864343643552279366353585974817299668052554265903350043477108598305952254616129581394112402480309722114625860519465093050097146381907524715569623456541002171772219419128339849201402273278816503187424344918028853650411459959755095011889998572072629177205849197368147152295231941411901605785372986819551600976050271880855205913576369134078032911810622625339315847264737914025353385175243957680804940922074498649559444997767180339598267862617837368976528355415755510324335054244853153493512420134871744225295199979316599569894303984179439772347028850675942169891407010740082151119303284564625334109486450985947424543676329312834568633927917158566824583727909237254787823408095869539456293418606496002440351299553090684619037741813817769649945221325343800672513805420881604902755835214523818035608517434937124023580371251990734403675049657206731904719542295498028840670466286998208109376835446647261342814818368074439832282690416610958116638687333766950870468198932506303156052579873412282414056089953963701434601452031397218758460774941309243167427191960889447137267194741018699833017795272656364192406606821986283236827534017993612560228466413225657381975981875562868388678076798486872045578539837373643392672820977444037960873892350250648288420658035393955104897274608464075506222325785273788558260921424566348807190917476431593149656475968193139503789029656333241494521937081015020228085839828651534833494990633137587849391325820685822447156928035078200444981539262358261735109861034337153857101779020702692577798317903224810388086969363656758938016191082260812743064355150281014961254832912297280746247300434547418597911374600181206282516243041479219394656168196030439442667108414595703390053653188194821110364131520527455547311995839991759559510319738843900271050828283137572499068053042065627006517542287226173655899469441595031706371267941303618887780545325170923904168583943658586068327994616180624411190221024501679739321080473512588573584851575551804877338982169422843280694947786153084866155108329193219145790578565180681032307760361879286320374494096251505926222565262663134343131541192139093955609726255102411899961475453580805233566300775855333981512556278722567532450930678693709418969172011289207881682087808756164362816680128751778480320938768796070982076799346794630655701716076538466562752461233820819240376741517605905329871248562603007911705500502841215675307526201434107562969924437829374036848263047324020179116133429125807237826038140092779615110700377289541546348320775014250714667954340708156078607684122102208029397481931687327369967116572823848152194312771923055744549753316250048355886719091862444930649971492971943280589347647861515018511973514062744156497671986227766900458502809359901650055548410661527038698163076736949223293454888269084105671659097509841343569022644101568847043543287700659299778678022769136416985529498126736298388051456677723388633582732634878764721322918888054090195610205330331095462839310796116852939647316219572115900921157726881171606938674770583826186960897464876086400563848301714421773568605756197312907069047057897961271417299894197704625216301636476431313711154114386374265821985394564775625537434323462088399294125649277691294357942939275324978180265519329776166146761592675484338960488300785767637223183697937343686995066134666378517727022297491040070650187697973639804986702146283997277139900828845542939223230121364708983010539697559021237124955192022850903216163709567397233289788062616221184845614488039153389485631189507394623210875833994839821419981902127647265818103832942382405852079965161069618856255111889386969853218587708395927523349863753518154153121913028773890756759770052143888324886223087214491381857964979404383927007887761816138147496684514311796358414147618895456714357807267537747295111329342444345235959553979095921251107857897651287248223678007257956332633485638159865647866114135417774972643258365213930405003510053442388227731346235526560754877996554701403637823900069814526923396622727711190842028159780445504306140082631806644519375740857857461223514960002212402366790558413040662157420013066014829187720250869690076890533390294898120099186450418309533081049013905671187877755453430202063074762684980872069295617783306101044041909030139598258523119471535818180861488778159464059420559426519595646645238225540620427640534333621417851969611535169632667836020295009859101844795597438256680443696766576318671903716195368525891114444079594303052339854782824607970232271615043208856509457378555940431205374981632165695613237477689756182599244563426033788913066757247382961143317098099689919432792126035384944250204898715290978434018400576282094646565862449480398217525982753976172624287292494253966429914618666570188092510158504951678172046399754860498637857953483563501975369012662655414134666400518443349561966685929308703523150756462608165078299065488463277597128647328443617806443322734443623918337484021971094065215395699839879575617860008052184859025558793489880378534529375967463779383976657383479804133447475631849859440040570798741832443136455036019105647062513559951371687139620942745763592989050192958617496857529936894346506739701190985168275275626695489761614742498066569183307073403785463150007248813164804262844578441185127433587415287072572873713728258683836896583570550727651612340047688638030136564438503642187559799639735540060810851347780377518820079545012017322879030680175187243197391448571118582675567007907427396959874965291988421096320059637435098326607803201748820607094930726023874232599335299866863438347754378045282688608344419642690788653219716464310633146236194825765403622337856671629180024688802457874879430180282261045591610581700312040972343311816691703828818027263274025431446231247767139339781859706664388507697438022475183463052868673200070091053916497765953595626744895217910515214186948911190180058736497067268300804653035473776556082899971425488730585119728907771807185156775843145674020635494010687396934765926622487077349776918159380931933305852674911753251203338986625668253670615135196940055968088347782802530252639435876217598259368984141168418714058454928600549624817190323225443413472009641937819276877893595530183405483356960743193318600042802589514004553423021166139224612795247698749417509061426095678129036410449477577579091999407863982405845972880164913129660517703784424195444974477732705904671219236099498437987517583325834654717187199644909884532186112569107877076638452746635625660941830386278544537536780304040243583151859402099263888531039560084521849686305325729958003273661377631462225633009373640952348201457671180545425265450201570561106577417698755338791332652807196228036925354824376317560823700740952864458690066237539915346121296112780048236818101940920893323364160475391237094607534369861204503206111509232900091844383615769605784206654378939815509402006373104591402748083097558940728723587265850548556448148118957623320169125104711158287685226658059332169693525190299197962614232163031907722140936172316803680232652118430579373136135871994416875737598255442047831258586884644215874278249542976637277536476087716832003194794494513748333803337666816687064635950295729256805192502803473031996279310354610785267925319489717917253706745738038135519208754955289730721904197142599500313327060014031671590205670352864726050903870251452728070711867848715559196860344884837064573244139473957694945674964915886562877574302703181377460652778767614430146786652980357387615213367611285241460872461129854326748928713137287137929687066893114662764879171957447630128803689894118060796191016876983883629444288362677933727142447869774968954570284761265065586714802524136948492861015630999290111037106916712380931104057317340506644055561184541927445703759277698926699659360427920062768304886011219119702869096454218070575343048058374005454526470981764360970266367032465691011439022103849640468567994908159416234997445653393544010911682986692886155559734833999146419426334336098023645045611701309852415951339872897694116636392601646236043276744275303142586429065992175056595196149612094169233924091681189115300087843418888762659407199671798016849717294802244033193427179354892064616339446402553782368611663027377672231767685099367978522088561168134107199567945002871810336325221812824453938569471453711123281125994913832665404535594276271349204298052725192424061475618245349671087929759200901997344883379684512201256912100146348643641912779301776974868718551558103671286288152890811651658593658797436133281961635687485462362877313828503291576049916395289167610775179615746456198584396081955219707932817914098683212155824130950225603648728924423011313874046786116834495024365879545995411994269992848338815515278117325674061870469637132059674463134560223898538803749118025854538191232818690517957371121183740178905880156105621095694520398391371885033569919921968781644554551314644736342007571610367358076522201488200156991375102201127688338204712888444777120727482335559080231350884049615820989809290876586209593701452213972242752944139464316718711966253734681291682647037073344915954908049085163844571168637213203596431127259372078301414963733735529292831270449131593989383556827113961616412234947407768533872963786173378017388544903044803818176130024820233745821562454925603560487259857409057480711153452784906423408612176285321633841186352896435473886659891854372961631703323488719124588683146518063499085075199131824144793630709765920950071573187564225542041541935444435193554510217292820590609257301305633094438145325388063745009301487934494787323929255486436859882555411853875150586388512297201843494959916197794759293263110838651463613287911883950260829449734595712768074564791768631597057258985479731703196917575582152522836373035089697088563036190734917599732901819452934516889202563110412185187287693032660531133255541424030167052575281628107693965531584304606683323604094567910494676997053640270446531388216838890771974825070676572064700765817584205876703427214539383267569171405158962963964991769167163283426961404972372974747853902614323886590617182900990877479789141607302705901042226278108460714645192200451781197133040549181390017032805347995405881671798622002841507272825616561033770383547027181234407906519321243754548110904801417547734929830677193541679849583506866996928665837988064409917645985753337744989245213964118745412706664974365516367651989186187634592055385566827614886763756210210958610580197351886355440392018152225302636645192394125685494679507797742016124990923326630920771412000114544422707200895560022548536445490653039476597649068630380660735531035991608038649374723919172015586122997072745323783310342862604635498827630511957573333289669227951888873176652618331750865061709198964758045394212951968398654898994680054618864855819222623171333962158705670154859401262070406515555651271799066888940058563454014918177797021559739968273837598917533613418628269336279439111308155558126795768578845634910615861597604019077078934832402993472079432502768667151802429906514283350932320573565253186699719161542217887710244576809967759721222694466016518794055354535446886708186500266560809588479214570457086011223287434997925162098645793345245681691893775947213366249931550487333816385163926983017742758763424422564981839403649408777722133505582557119139836169608361392466795435068101747496467810216081866868938256393179141792237684028176625080918508277089008606885109883632444251344907703434780900366315965579644823589648456428960730715351994106164331317300711044676879234288405158848459453783953692472134422649544902572397999657484974664432821854715943889809620411567971738104827074833011574757890135261710761420738900645739123452439703233446618042373647204151071912137448002786430589062136776989887505363876108652588542115122608370074163483121181994849448418969442687723482529806141896242378657930472995250908124420125799396324168470136826346923727507089383542184236346753183952233315316001936670124070284372894618649812445908160697648771010757493857297409698712361900325849930467423542522384053397486172748424543733269275339252414051470583374710103672843583574406912472641573819369841632923444803259560985539985274054862288402431514866179575379338953391023713653498113868724604868547696905765187789053420393205232516310985866764196817363475812229618989118739507225339955440127121081785029667864360263005077504775087953726614412358194088107275886608499427511029132046602832221565492957084729801386391539876724063391326867858031438057325576161200057531574190545554616051216380957737373367488663934359089978286215031858771934845904244738917001918152580286143493778819949093760823817275467836613295787002580457279789721177067580400516545709718929802030079008708933920577884322479881634770502043667582199357410587513749497179997202193207668212209120757594398325713945197717664757111512323812188713146119544137632590874326519830501660013821602312303853382095352183398061772673069023826536259846130288897450394934679143560134896351128512695864201861299469277838026358474602914651054545556766543701048790271114459138484628765874575746224411197538843549235210189698507584970949544594502269825183083088997115156206806304570289054688944135437851347982784824586106707667121335437507942588160206444579336153995148746939488038937584243398923819520422715327828675413342896021693708814985845939790737049909902094946273014327040780793264635771770205374950993237234942905104114691995915667514104110560084794770412423324836500226062192932406359563164113445082837483890689740339318260870191061023257445665502868400795103884498325905488609150556630134553684683076654787037093836830589618392884783582045906158578020915412995499584043869849148601529022877354255029279070545568999103425283592521068307966626108925510865552366114739996315965817199164170468762200025911320665249952554391199127037251836098192837651271386218662317719131897799044578606994685991476721999951056992869742529368330957346152586896316857274381237603881288935133225445199251237134003349178516109909840207936946483187976738901221754996604617943829414232472819691421010088312734804467924750534954288773600919753290435599182827534555822250627930224758133191852384803407164167632426464213351610388215953259728012590397903540709995317970355970279431973894316731756355359010595592329035918239018999546440104390204379912149607739778404694824823114359902729048826685655826984736190903763308688673950728800902044481719934978437647056294391200907818934523087192144217707596287764363765748761383154248001457033347996457072493487645095537963946506217119033295554149342264649888244870370137676030172821188181500015860163365378527742929393404051234577995096619156295973081969041765105200719908647047768390492007983402313855107345614374749644112435514051744225857389707685420596026093963210553867918737884818443123704937651287848647856429376611437684326439864086362783250638724072771792807748465174222229055403447956285843504030991587090879949232749771039840212581006143045234518082486725027788154059736470726682925007452381184799510861909049850942191137377286750744668790332857742385696455003955044117779014737059131572453574070923924834468071262653239960096713877982889921130686910361956205259436522272509654512168349643660387908605302057253817914078441104879572219620918224886422658327258064215144044711013714685394673572365177380585859484480186980856732298413224070797209924355421463138535918341644444178073923740154513313937323559021139632695020143616152679093534014252373701756164847659485611364568963468512604684782255436312855621131362389864708126292463618507408067619503242965009206833983358338113523713122562204475066130686597388872240559605928947249848585621615790962187444320859329121443000309150007194929022299334792301106915033484996032021926936622739124084013279799537948508529458484840957890460751727312909689748337896410447481630973931375833411387136722827042304734593936665398542663781778698121867711943676444957235330347294416170457172858654751509932652487403792872129051157990420378577330327342445334804121294685325285859458734752721218014858542794974285244659283361735182729015056296814569702289854676510363636636065238311418384057883272204175382988929390261360956676343453015964738167318456302341853965264378635106329457964765967691296144889538345706215440434393490132454788557312529059084761044169601356899231656230334194790877170803307727346807400817890438347825346023305150543019733424550660459308787014301917373489629330163440859908475167642872355192280204942467485122537678534295996513981011153193010101458621497536156209801608762982166849086303733211886318130365675861029825784813019537174327782502753434987045477699635044195940556335331683497511565427119992178220491512798598535665893469616381534978912150199598948167569871313597486550026607715883600729203121356681590196152244351540016971257774877698020866495302904608352796522205739482512317138178073262516686134673082169252499055833959667091722414851923832883110874061508277989402762644138773958985500802475568089121946118974340146194708597083780070724997466613160888190852616455125790466883811508243562349945378298497718455177982308649216112541816919708433205688980416132320887247998260788688383073271768475290162852826095697321083309272716614354160647734190442051782216589838058462925768141196605786312494310986979803349640264922566136775998293522639986262671722416810753251412131551931175782215409649964229102367978346973652288832421093883908876135437983543105903617357316557770744295949590390554159888309341324125065017562261906525812420039028920234447429850129819561665959010351098566850726843892360435462339885100285162826216383961467987813243879576110871004292035340891915210160129742321460565217433874578052953407068437377069157946342934986846122828584321595211669495900285584721426859457850891902095721680800158131364539262848404667781933487798569270004559399913186875922509102520956453980839742687126958761516580263977621869961376672928575082317244768047600149598617942405514015347705495865128488649071680874047884461542524370163447207038900992876860718175533574989761460425896098159077602514088204274593027531007714801959811396712331743238222169564443800055768302868089398217221418313986804857580712592961845313090160274181004556943310865086258681883170373263451424931340178204845516568361247929618819361176807925003273629489645653735632601748725129455447229923546052877052181073631440113327499889567003941756377825691956114328506662356319430530784369057762459380831083417991950079769239335893468382715870884717940738164522648984445485772672235336185190829343573570618729046517917113556343606729541884964194814128084261075913904583542168626409163196900441865127512198062656926057981849620874535382133946180977478377792527764800923539405711190201673575364459540892371435229997531874315384723654649035246872644321443983443081199316515007448476908550194914524923236087767100873956751772359951720052845269426612436445087594785847235110718992699791421103645107784523973171702215813184464251383702810152720988880156033072151582357680173742387538965754778215899322047417398474370681372791513824587357032857675027342450555597734929649058203707254498641122553741355367193592476710625735332063330046989086266900649772562861368637207350916574769336312185350301924221648854029182961092940042064343161751673698899449141409334648992587326927790091063526369478966969944897744835918131419471051870206316934091790195416486795712533616520753815925985609288761817138009116069548336699854246381055008807937587871183789199294788276320550437696295766597870393627205428529573825080257190136955475009074366543730173187228884214649102717566483599027701677464490784924914334311451434873261978647983818896987718939082921613325782880454579638243374792247552779383487082493111149382837114615409443221701500034356781415870494272772269955249389893083739852714349814283868494061060208802090547721720378231431642099391650116295051763619366846139822785569411915409816970824636741636203208295993086685508600098189752726134424696995473048523906165301023537599521165553807044052246182199310443839002578082929806628918545502686762528111133254411440605516067246818010929072571005676722749120552670965891129810335203474120432073216646739896779971713816656555457578704725790606954141677209913405106547597386701507272200623472573216392973847235707282523846677428891693372945058597086233609689358321289254466039556869305296517127959222724953600556267023779157848188099536998128285738692208400979962466045474351678276852191619779478044506606112674621789012748385686845429940757265581168469878495928450552023983716697129971198329009563110705973351699949339483689336481131423519111471936414007543474626747678567791670077987403166901383062082209246668165757600135916190168800936630387841612435218390891247114947159976586611599703085236948992996846162484900087509823109502696414811771043016386096990038461127675359429908722405427765362568416655309357502832572815249689682076940926834330623228335339173564095729836585303157970273391535569417682135755094015884558122295691822114128376898000035245325062380780885274915754154582359956694985998796868185949817429164268860128991902643907791630926944876929159577316572102319930926951324683528349563373146844777838414468870635645879023211735537718197522346028174520202634367135181561243341551965499119639768909642810588559800547153415759675171716405271372364782839075087111593486309251891006611424678238376134604241601669104438702925777999070663660871836528433679938462463314125179393176480572086955634082908808586933899874375006711214270879209742083568130405811268325486543677430089908519787450888585553263050982006523429672052674847309129491606624391431117470538131701764216375088441325385120036486744199677375154784829757462762078776476547097294775717257274875211127959686384175577887634261758952223322229486267074203813509793635736803973691310816597404413011344942890049882633239975454381053923763489152694008532088338789343865871954415267698028165307608626495281278399974630108667162639181176503104452092512083063698299237841101155808326518637260529118860890883164059360669425121612950902908614280120058378793039099675527372576732273010481343052738053841238810170823018359022359179810595844192229299736018947203159370968180627689133082631817089874753613514155896189996136386630393881049144600333807958636476232354810348591757999738318843132446942531895257758578730092532212140487383429066106327053122637297753909542955670921768187342694642423146856610475595227101029566980519489888841909442655324611059465670164020376949668377640650338317535025121401189758933030873395134508059274836632319624690338817550938314694052178407476582550960666675749447390717576357045575316216196362845085781008807550999964339251322110245258756649400105956162970732300921069279547409933779391268222057274055647709996547950065459933705852164313405934550365351236622783187015205844543250714115292245576666079891624791475804916163811803611241084976240365106333482453791064984545568946025607197063777708535064327221558413318109332750251601912388398207431815604705395460985233256818963936855731819115578127635103720998244301918881971633260147422895707994148375158833610506355871139229614775057260785818474351179352230813479138792675967195694720464380838378712473309759656310218443454816304106513758376040210200101705630484903265484826568828970316168687867014583591224436761183866240249052441339103977650124241462720686353931215591100382209239998431699611343076232416899997130835418150900579930206593780550736626441517247701907840031242070125660395266071058641850223179419707434973389921904035235783165681156612662810870848202564002317767612840973407019697954542391756317988237746873953786522088693710476675199251133924745752324821428121989679944652888411659997584136995805531268873923759463358469608542183462492702058293758450086855605683380384273480303101792089965348564375755150458809410816240977253503883848278506992506396178190966649998572296073156471498449274551104980501200492998010605022930658518324429865810458234784718403317609850564986270901400423146772768073060487784906975197364863135433659638214511835744626546910030580175105817623131545650914769888891446868546355438779749250625620024271233479922374747596394982268732721101100121911241258681163853018538236856354548009008450267135514270525406631553437869416836760712790811777944864619520321687074714711576615030651184493065098866172361832249222448229025107586641153058839815770737555950118802984983921436768395712451111801618874700026685728074536257071069248056783569226490114578368371220087513168496192186850498189294620124871184246817541423315154316282794201240354007272099815646779813251864670847498212100465474739285841117515806360291519554467513606340690288367842309815799960529676756701206261334975399041792612055967083251839332182330135016368402231939576764905107711983078760147560073276551008825037509737861121379455450183305116121301234040491363013334294643582158589771059689651928906442286779973204095241303271682115909725612104168298534259741901763289841489100658462824924029402630782262455166485120486862147098257376979839841319692478569865712197070556661677611858886799545351871820024713408737825831013266855496401946962053896958588315360496261642524173640520360191799943539626323051589648176188271908048556826653015872672369221805833227509686098000276310166270131675258567389167955635544032412060441293227961837928518830763090354556887755325248110942174813837853549986324726678856176309274660032401938063347041954014126335668395535466410790540001110372979161204641159291194565690792495168229715737268936769803305654665266332686753066773611064238514846875737475999353686564281862572776693938611727551144510678128748113211512409238598671215777214991146604109942333285884953637328571915460952418071403646626042054683596867093004560185111045922817523215601323546993465599176853321950585251805176410394052101372933393400443734957429701792094086926619873096277594068723694071392787947437490752878612287883262745811061756246263378268862983564113487305053709977971207697996451599288222790523825125410522408374234915516191249708115688250211721647631430178247026211994205105555968298899014281546359235265410813942762072059910931150153842368483265447547202713101180381726736334083782516624335045824762303800220958429871143411072239660893674859489115559941914504200274984127919128517983816007468273732159578895808117396266175254061747723237118346676284673065439408304382049940645468978228373555155599483076454826906397639267761171120535820498062061123809356561413609380024286915105208912482509250062737483373964007801987736943963442991461398303121048634111190470379383710525807216822684008746587553055140856102831881512118376036111597753679240865633680988229901823030968061771915880103451673642197995839847140564596421387349284471560282219026458323404918390243458605900566335592715261298428453452892493748574845110874822760998659369129123360838935290916571124057809751091271700695856368978418684879587059020876679961951531167731231001498800853878966197578651727986956130871037468977309442630143934793429181339077890676032784159391083094423079276235669059947627918341704780132295440277831501842366114785879704406207649620779475780431236317658160970616798204157100305002337880707895148699711489046534483332492702258138786146804269823043165009122687663555484609252997215473623804423552369371290779068400784018647977416825671923219532680206395687963881448234157887897017838554129392820495358101995609806454065505307096619730602905292050287425041315676444207199229147009242384052089162622979242741654570045477639492430252128318710917803804327652813584251605832521734627184929726287533753371243419379600693087729621241591870587612188650891570220190686155789896987334235328288136782709907901926292273105669496482784908212065160680265051974050152642181138998774226377198823509007878460441075641670389566104124444078370775646127631182210629163002670842729968446616462196403932314679726750231962019979162557496022028650558003325061853842106448534261649250039281851270767069937680032107150475646689236782267599511096216944463687401436306596656868846998663997712191207644230802175376665587587003510955062723723106035724788893817744278732284579379525203320147128767577140264392630964745902335534548715127407420508846985948862376446645434209528317413455678612875793266099463306246526141308572976823850757268545144233349112167104173755415375013342623866100932990512031446398693154531032564741110141628210120333176474413879924607277427393724680913535693581693513107843354838569276027528833880519640760058809806689592936487214648321653827244632459600798673949729526148980658227400379337206983540596774523410984926798535411406356508681900739333218357789672814470639101460484573098200558553403492964185485096509802773090516498686312319850386872821482050489888603904601093283826395502884874008607119921746116801588894313103098041583178080030562093504667101823869737586655323318583922466895785621544565356033077471802496944158994304199514762729617840929580069689151255889003787935929286983993076365440344560177989165065872967923909172687459170797985368053577535946377581102191691952215118319007910925018918651736908669465547727002272776589041258710770618070165739091632534860155224797265533805005258545174373389442952219956709642868336608181585901309304920303719683958755644247244803288664881066770054475287017023040558879986311310297457450755827011534103355651233622480151817099716264953939901496729738857948516369718264087930369503801079065355509443302008122840674064495077315811345183475250817235631507468957046675745379812753171554549183072506745176399963699344977110262240456954354937140071866568263718141485222898218515199629116515689789593549907951707449906319281462310316706564463821458911469388692115692223060693209623863168265785210791368156270020837077680696244630132350197303873119392131963548971728141068659588367007983685344227172637611035868004949859873435184531672656030737515726785562414437314995118464222690067171511551445377151126784918032510449734383045028687050933268467035061705530367279863986671420509143573178147176319091785294223724602068099315358076992172290619816255985572493435351678200758328421644215904101806638207654947784512533574665180141103355540163651667039965189457773367958517224013564786546437436375530647540114983487771220153796880243204809531539641568856602918674176172296317866260725395583190234009981634924779084262516745369357873636168028428294063001773428890964123341881515932863610238107350578788322396323292302234087674409099495347392860534255347373815378429254589502921187313697495904761567836331764141896243438075888987686193559627148521705881877091355081437508879267452771585188655272503775733082588314386604907088874296592218739433380895112464077457122886743344362213530073660716144777982718905735132436525695740140292560923436248551727773783283898180718698784966074648113883556406613777210407093157551901277063443339001873718765415697553035896777234782445434376865672587752304407723028972439347280856030846958404624027463077740343207165876163902447333030880721994166289493088863582574163351438554899525463260933380433648523502353555340927633572157689212945907815746678365790080845695447654818221395907356077677859469745866307448039466397395191282370119912046716988338890475438669853697353724805397341991651684939467486770531470629988103103518500105403018201792273855265693376208925214715528406114138545850465657557885008606188903998259730252713655918449895818011568833439653629760893466546318276919933292247405264774812582133810783364046151187511462971061091409987327255954225790482137723934249332152640447716327171424432899584389018973998456172436978381906616104332579774173115284265868271139489065112951276227329754690353552507756781209930678294660939894370195374046790591388551907579714694374139021938021130689134537948168664081056694019643440629627031667228760794355286146835348248492330660173839036520339940025681698695220015915227913774258815774994482258328196004392708394576176615144721729008357062399857134341811185005778220589391510499956518533994532727717682839347474132766895758484065220479770081321237080560283566073988592267034843505184002275825910009568574227609746447524431858020662979968474356427671416516375901979648770646457648399775435441243408568432724478131112518501007266865181170472771604314697375360686694315060977938198486289017334821757666267021278124469859320097060504505523187916592938316995321470423443168303363927172548909407785926020052225475645399890966821610866824990583065769988549552055167554930746987049536340205834869451033503618407458811734662271104791191121340553916187567242658842755688804886820619829697166340948499687466792805404351140543728336242623935997621350037227704665301637227317423215186798185955996799938730435178330065907220716775494208656729126046085945751493254951128133816942539795420281799783870444601320333401355548375151063289914435738516599362179800889611446196778263119897173232618507216195754721801538959609826588202566951592423091271786252839099588230529790330426645135099104867516024847001208090602357994679328303991004649722876382102722680188758722230402042764035688612662180225521564386202640784680100513503947055539138168512520865906956517063100448548690986679706476138324959200262763410790006895730220703352646993131152381773216403189449931467274895826779401398766716468557586598845390893819219764046076661813546124912483386258281771683719991607054929954007823055821171261391652960986927559955989319556760716613113787359457672659378813056198962356652149370189873569746621531215072998205930509783484789617840055463165532631690786561930529755314383384307815138581474197498963820998852277147773148764188246324657342285554983957295866606315094855900322417633405441536562935408614108065109604078896397350475081540646470492754054671021660123896398675536949136158451141103167103082274678270144834117085050475826002042132412138546807003228942711108331075802468198877992647465261625021297615177922881993888117536678723668734937573200869009943493831283411594908364743309642412232653080428217779959593799964394113290825100965819368777483021629145186640726572159744850988505644378023360027379960476631481415731909846031150272877783858337600556882154178020228890426136630241854769889351791738570396921627174841308315933391082193009971186955699025809472089183523038082390792181996653372306085557278708090251134027924323590467021817874426553831674869908044947331548396096218763563557000029966140525368288544108221434535214922580275143598841577749589168125349921275548436659468989337519308256754534597504113452462548029814236195338803088293970865780094057694658034473499886041614349218398356361890060596070669779535209860801625058863878670011731665182430676879272793780376043328148265501996758578308416242540980590937136943026287222426068091786631921326780352994756883932391501894508029825970862413981089237537639713866400979077984788061146656537447543487886096361038376309012326425873344395073548018694106870153129494112404823132359233353255092200271074562213635587203022846572906159541515768610684961154579008623662051069007152093017604548211530726732380240579658843669178477818507425593165886417964917808193128164197650330899744667126972638992297207279172550885986785216640135670387136783361518232443521311953537837795538179537687256608429223749424263363635152005775321363374092244559926246252866689528871547135319637683999724409477113731703648381129081178830803373775625011218795503396981720989701269071143892195233490022309108692729341664723287533059394530511743452098827615814672299191917011992787396036756664315510870923660202519269473138403333863782396343308711177936805142788772534415226723380337159699973394523059919112139488575937467759532243515902086977822148836968065431987515809456662985705743695081551370131177118051863674537938373791648268380767928039989803832777954780788987870911443861456238878479574565032635165935251455816055268647579018480905252271643755026238587718962053157000946717636023470286391875887831621758756743304988312736343047171258471567771204035152448214290245176946156921078306794753451688197209675863242262534713272373099198356721655595648160910887995152493534647164306018126325212103261292218238357836926114301843865287474967112715827772789714228917071658143457158382540600328431571637198194158048057233032065957040725747757453054215434789589407830614323099450306152004634973052385948555540228991081978608991824979682056908608833911111420075044491779766732351936860154349049212665484862198021542337273552408307109139078972380312200057245226458821258818553661828801250612680127644962005334057273771652379543587684852259322934637896430092031130393999845350696793941740650021882209276309917507238268501651875769172365785493895899603196347348313253861253036945631711751322998228777987308077830496660098550827951015885825146932172756443526196922021065015005509230392317470905812338239447422026968843170286683665340263026854359202300800767367553523023941005127781127706703244241798387750761570804392237696537283743027848677189945089495541450947850456144217617411350116405061150802949230279478840286079089016171825501610952501313516260963444561164116069727096041948467556348920422360160336103758722024512062880208802484828663748901496092227629253587801314560396786592507950673506906257668145249156042468359026797359633663103431047147083781144801989687197667474229430835190314762252826979339818031851468757696722921589166711787832276290995392573513440156395740754476090600498450452606761508574280700669795090219238491924744842594684638780777822675314343731165341057299538076230737661915236967868338420598166912166733647317673917072986784662287519829920181694407058545592965797925022628001464366309793338511449863563687443175735536056154455867509192855505449470998162278641457453453384617107246445932518814524875813041708407302239577222682767617323716219163434868412998097501792984645830637467947150705694003102736754836475443591471407690402916497860949782591495705087968307451389573985112032752298100278389019359228361007165587972839130162519202674349302447921179979291306110490518578503770723770676978042246358762440340744236647974276876890523547054109612361539043408742742036458222969105482405100583256432917135821587938158064536068645467226049899027353874900732528404354166106497354836204315179156014151042733307298667784166383057657593808513453117775707952412296770069230442587834161182340360519196598270228712471533346863805774641781238159681289116343290489494196414985973710740334866711434866508931498265616653406865756132626386576002767889560787443257940043642415752049982483462655847949561596319773322153600643616648367904415700573151787058127424210631679783870888690526219596728595773082634435061115328097726894707044273273348059017501264766881143760779364034059715727136807289304185286875489593769062277179974891390748650468465573021685586186587195031710477905642518343485601802393847770610749582313159241749030359862482796151660485879646983604082653780505790973577945964430036683225397753101156119169446327930419299278431495506938169368667800494332865406442790472347124401303231380651791252964781494785169936027217483187070675353841150029687554492660796254607667372920014099615959907019037969955828318347800311743918097789759558911784672963191093904474028451029725747536456747473127573593618747901326056194013256151088780487306046947512746820660957702504205480760812453750185230184835684941254341636166105506953996017670348649247157259344574424541197207976705667141539714202896173648676172828913948646066833860811091564506371133338054515525475820431325424854032676719506186779430417492189096133097135787784257125953171742165785416527528097672219919469123348173551471638788264205842765939951601494415589547752031569445562026590866590032818120025700940275765128640904270464398993388525531659396696732517415792829296100665962749291427926209594170008786131311396379178048675466090854825536551100806774752909373634130166569621319249062063819477060700353909060912687548417168092795426602869852449506358813668959745197523162181369340387879606786975149579641498724692490080265842128724081018800991332941552384597843260990402499458546566475690740420133395737191446583234912026744436228489403050421775803304835243248194987141006269068751528881332452946280528983574424230211103139397757767456967777340189916414246363802487726070871230586519603579214457058117615322696288160446428016325489131632551919679539370336225017912232197143116802896986983597837072946188883348700077896108838150774534273292967504462969012552034922692887169843041023252106996816253475378629890802473895803695193175850356199198377440872516035316502780012488634097953359730476476748983378883556226375680313872996383529157532748667155836491524578730248125163688753850264306554905518415595482151740307866440063978307149527712652295183416939003209941322998124176904618300837163317356587239758072429179828302096793582727538497709036153481419929891040066985420275922687071047777958206513187830288183309762755938797123477426773348261804406498588184415068140485273933587882280180405581036441861991272044759095985426429730032162442496807063731949332505299716916059275009913780943135245868599460859530632422923166893764402606008974057232079522558779830753355815867419392114698468517596969693440377257560692892327219218161588653227773585226204188419055849003575587323969094195097136713090506020542579147157875913270783552402673335857620088599312694513483254909950752046192099379534088194538771726815839365749605649540602181769931090923607534485489981085852652202865880260529732763065124827640445277961666331492924955218180824469208045523678186155612589989267042167012864265470314714023629462626089636226049123742919613074364911407983467988465111885684072405686187702999821441834798978182830741836619034973067420123288555456574140689867539681403621687206101686142631638694787729818626352144659546641722071668863016708287788037784608662412809033922859872088692298446357916836264637676847326432727359836140564060354938680303832820134216183289053608142413212133963267898922273280321276279412774180936986302195323132629271771233713352667046722294411796962801876419944415832599494541379162773689842860779383541998692250849954722635392335303075724623961149170576894008236941831185320512732828180150986373434299208131934634298635278443123551736683132023491568030820930191515519747731984786559942694943707618160692305049905784688040656909823300955243695452795671447369736289937056612728862728723344271625400448883624985951392225801792169000465334728368155957747211248135575534580621684548737632178507587337102820225477391741246719921047502060547547772351302695749387698907284407205442301531498239916623943835180697957650187643889504374167903804112309309358883568708461764226282585220969271574073985921102470970015252709540370539267930594389796403617337193146122612361842485813850607059310311974452207250033729616539746789803840872764997599038080237539422674588952538417512645286067289052375438486683031847278085180875756931375289701543973607515630814433186701757193421109910130021234077481735844973800175683221684773348116881125129697359790049966411575409795559799413819010233967391265443616678971410193315400270365059773210758042806676179051102674654807253279173049183504600629869999618547437300547575754221753211687317305401910777356178995564831181342056045117892562450521710125082543265283583426868724874565515755835258342053154613554160008682382291464510267996969515255585015854662307551028080301907810250962706111620846441627544629083460368425122202685365767848110392222675820789982650765633176965372888885222456409969905384581916114586587969332437650986409371170996477697051389783856034168821194545646442897462765379150456088971011492483903651238855506827144443558257837216904417372369131486332124694741223856873203155864303161549100711433309045331464728405247455415883308882739618445828927443179501649730694584461815374859560660171678830481610896688185910762549257668980603957570632859353723009321221382261899414112422069405897910859886729492067693086384839587554652613152524334777538313990539182588658613741300047996696117693900197536064387800178818198235995632454901880161272617730740129781073764266948615236476915849922141676613448118760163882220020113570893684046189244794457853434837310804654571930963455182393796279581584547918332659435909371463357721130512621251377401004981366655758296579891994125763688511688101873606280469013062366679922429468035909601223989236863139666112461997779541590663556501549744084314032433354998511509249142464210465899572987928340509144318545803177292708508903313099842367991381262708245287310915152145611861146969036442167800870169712764733116180202623460280382113247793689321806544539267946718328451949430981751332301733315814792027808257022792377861845223731529547543968925791316229170309119262418686022951434918252618451318047702029563024677350590771433764364647758564900816747022726235816119593476313160350587768162972483808138218105929383381050335168715763886674646210684793708958858914418174805255291037358073676449138529051135971738371662831339265092468465910749371661354335438549017832915621015492346825994587719434014977785065843296243758517859483136624250740692123845810000604772847415468050655106367618755047654734792213602322196435629625684590363320487797854125535969070555915870461926738995769613247533927308102676962050754655860532244159187675280743110703707374344185772004124283668210906119544232497295555749203005157840762715648532599442411739503787278742879497035681648558294328483256955927197779630462094962926308984425758827334681207217898642652992877150219010205155498579375966049518837065474958120707877840326727697902009619057132305066048625825232081136873334713777242190778116074548306820714683293014116321501495648344628463608539525218050557636911867514806638277448781527840268578482869789710966023761565678091896478256209370724554897676397836684018668832211211969524606542805777338788300841370018503158613449275436054882015556876861230961726306220481001824619652599011791845109683049451631237815123724851813493441305431427162773522041187378711175901693038431326177534922986705855896742561407878851411298858220586911866639367455688667571265321933200739070858292044967733040812948255284123640998317075679487927458695139554513075576983078944716126319327173345851388967763407469383257170441960661854006096530885574726231990197042060430811944204473799060877746273893155619877897830987702112707431964627412649647700466472246144464420075178618492802450536052140351564800927047498246752753784326127279045260589922697948969198061592259628573752851952673253148965904159809434602313994210683062828142401363276905437512409847861497348565334774081647755327207971142731717908064177257405211985926679195929210268007953710621593720488135426286412173444156875960255445916412865875271962016112688018577780842295225782276333844849868929849129650436058485534345889593201516517092026444614146657038099445554261722457353166482161237407828005649253580904467814850982528562015137753947311569562486882787633214210751677625392616034224130262483500826409224273992144531722110057645816368221908006796727985381758005600719966244177592542969695607367728414979076833908977099428052774520353839017991739214193027319533859575122341710425523022661592546978961767985866918705924970996388391041341472391763182165135222402855235884007630030353234220730796481979431628927844267330042989754404433783066734511493936684039663219379966307302881250785910420495480037580501497392870781255400391244756305189393622592265299372446322204896776675228402763657927163793245235588114450014002106566088258451524756141374454604754677769454073344703226717031882792742243136119060282852490248381015836752222012729906515925431037448099358386857884614048863272644328245042407123088375824388307451129485311194976107924507129653620310414263350409186518670379155258377532457352131090583640118208175131623229397479614839970338558369371747640193945726699625147107307456140374572968046763567724925062304326387627430387881981221780744729340274331356156385835814708344877432737897212814904771357455735666090380312698845877169161122020479435224511666010640628129134888518480930268159201341737668736409857676259529183136507916121066348593291975703683547792352050816385182159749186855725934806567865636420748244375213026811661469615407165790821556320825472886391786989615514815159871464652098869826367564378770777430362609960713585072207355123939273622007402452100264771512798613127319804525876557340289570972579815400665296334312975143874882399475252104918980731308268612035463200341804316239110781974889377082722788903979834894236635043282154861356274275926983631282376462624525752238081308199545156385635497231382403332499819922198196187513642518286015880781037430636014893769369053148627272568948412035237817700209796796553235009311409786000793148034102482464116729446759764241078802720546556046912895828478549112054277608065369794954714916707935993780910464755357116143736631712503465526963488175913983328133272448158200293332550775709862213375641381203677026869795164735990387581238734174267690917551617358271079388231829755413944753965881185600328226496936190465154787097795946078886406604041501040961327852299301618462885291552127280263400296133705191281675539956419914840828816058954087202018543510892114632565029003540816695025709508501228223050348990730382727308573357491772057027468999987925564062551594388011841890443310577870878108783303181977542798041449557813859139549170430586795988863557542814013841657097551026024238021944683451385391592018591568310412502396456876666665974367208447492330316940327101876442399550769760806890843019282736424668130480722762356183436900908243388780592043114230927314824224997950587356624557427434763946973857088759601127672160160082553187492933398218536411914929114764243378618335347517477887587925411420012782614873531895264661069234294317357557634678984602690069706451774204023498139582714494085076044887766774283522965117309345368236461393128182211577268471492917550680522127712197583164389412293715869221848067944128911443621010140581710274950667202057300795951034360486692057836220988948102940276535555538272818731124906105523025177653056435453618094486540517508264975582909542491886468094706911680414004141686825078941708037919257039235672962957667769188622145306580486202673558763824411820384042821618188848301689795837529496415179231405515691563176111241738667072689599909241982847012344884294338578134488402457301467510112372346576322112514449673589793804168049684730148946750230661866871856898037191310745367594910424256613405411687742322970748913028991380349149664653493122438862745314197293904988967959748828706240342697898620652689910397507141069660066523799511062725965046852613450364783355409121000106007810942113414867332813830288848757219317177138319705121804170314950665266424658278902592882640154347997502160087593614284632375503839916345258391730472625951724839314807282827000452166482935964671594118285986893434465570502563228036804463669315722619903837322105652285886572650239791566791477431765296610927196216055789425558398358666054187244549638637332698849301111178911678770402950764381521863366468488793681389133253365733967448738647386016708392703742524626028251215877133968636796428786963739512473321906555147264851055946684994581442667578518158299944918215367732921715177314499937343094432103233612248267707951854905663647045757928531329114014900259101708489720142547045139479958874942077463704817306070384205744152118824460629486215513147625145662071211134828062423531010657699261346002470767050030718422321599816527477281053008193528293380431420423336212665064128988954412136997546830476154358892788469775570011974313564426874582240362438947338750868984363229857907216440630165134542721595258207844194885981052926477105658144670970271820513278589788205456135011469589730055714524958941698863616909986341025131670715889564889788104229605333794732723169123924294955062484826984198135624247788047444809759127666738931397442273299763060103849442721846274557475717218421385975237912000469965961455162949478595370822845343903280774264520327814090721034480910105135205975889630859655675450457574247540552182022419289122142014755171222360803833830322669681949072546418205856794864577395453771544597432233328661509813972066599794906984738052455313694403502667785800293402384799262667831449386827365305745049924985582903165449168457273047840322830885270164890118289141375606921407408216592776243534492940852540449132176285422799600552955657654630690414955443679512256199839884705052161912085895086619461634523475913939145896608520533493041268639000638656529066971994902362985567282167099175527604382332987067593760848588179382708881944141201954783837805338506753497569299071662504212309431989580406271646536086112988972323479983337385761839281042745349003887480512063285321276374322777222827656646931923902262977782496281663125776021832030258124607898068201266658105669819121496050600889519635883070185241547872449223866809712975932946702324258430822314520691306347981702960150204080245940795626502033271041572568873084357859371992899029486344542909346667158670066765658037271569397473166572659894112221152046729151044674449997716248845823384437184170176038639496052520655433838102224976205390841794219710703594996056722372111182088779275141694561086620120378092213670588441470325096566878443102707001500504419644001638961678928319305787035977147192677149754933927202505341710112143078649364170404832526321341621359816495833670630665418277040023111484212662219931027464028181544268966548934965431891399215158326819089204595690299223389769316816939344011251310050257320610952519241105183406186755178884113524564204138134786507641156385050298523225903159279385283662721924170907022715575861949743906972023408509009867995269216398639788292911244249721226262972173975048066919796796344421496768676734506193755886062217883196748789674622442060175662070559203094931511955748373887632138052575006307750988134067622504918812129028007550756926262736175700031236537828578014021273239423917944978968132723767478651056181262429275484024805928789614530313958490062565435797445527694366897373941044656958547707703556378850838861568936591003522067321720338183218439426032752240187200747704019110857768974090228252174134690423072629220426090314461465133285188017590376655836044885722509483182310195039181539343476819217783450153933749970543193347821208291478152499020227019094925764200499664935403620206594807322212047307877942880512516583412426844007940268108027281705026841987137162700111062188912475734468890643412627356070378555225590413539093216337617218559416170781032711073723745031317217549247508192462046939050522105652582558050555240624336671166834706002190100890566367981073725140469120347364031003577373880782906398419616021879979825393042026574266414318806758610459535773234334724212187982551690646005410395157666797956393420339974606158078666789523458214887672643662407513528202359657223242280222991696162538626033521075500135564412603813151612993220147638458647666774718851975414502677927955440890283670156232148759640623228374870404090432988229792490786965575071813855022854968637068762173606411051003447947716305986683596609918562487728374560292082026917439414028505598832325737326896406217525097282528494505625632129295345921078476645154548306364383375003593237447023078044332700935801041822407711579090903092973749922372587998012428978450577613865452124914745874073618811554035936321387612937407560527989253057179506419360009291343707305055896182660502897790374246856062737846000858312331028960727907330840248273270672229124671618658828203108516659897724869265634121044648308347949863774060060334041131365029634884528353269887242485605142078701392030885190623252636848015826060586597161268904228865069024447575854623050309129246798571421143350349309698750574425486715011574377537512684246043349100281702599804568926964710259199197406117032536031188764379694269354494147763696795761227246319529759665907657049588261697718901048533676385407154878994135776146435571111819700154950932999656193186272368661434193222772562744557008433914577743820997663326373745702541233196923447865089146693334592492944611453003485109455008449482948096426575112292923626168816189371037233262073579606218156718852225196612046397768077066074300469110686763743831486304405343439401604350189690398786351492670801180374579743802280907780997763083546617858104918558179847445189707825695472454573334462976551204842525584949419279949606549085282339562077556366957547795026842880460525086081019984271011210683981897715541945329853850313224267343702123976888591550866246958218971765210780027659401878955147220122367686058064793744812501363577587081420090175316471663673579685122132431629007152146337489710777154628913099402923032498317108671842988882922716109806323253924060897560355524922318297842224889953212272472553443323824144104585093005859183475159439546966684280082539217253884072999640038688992489983158184470908992566690405274243771429796772968706638935299537415673534122369500734658269404060328881185721905049063632842298429898697346318912004927743124067941131749283660883933344928659299452951590841484847933921867420095451152689873826242380711693857398831499715005043614646216336760031212138453367907418434082735580060010177137008366547317095411688842306850858610245524947082790854013264989343405183476649344481378906370550957479769552244966167127594108990590734996242201673926521081758593626398288159462539739503674872694382271059433858328250054439922679668382303816373957642998501570854470560300214009199895981108732037565468056147664587594376104796128510079138366437571846844960217899163846084874376175917138941961163462195943654196511388245400024289960408621285157968962400110053998434406022535665409110659136326652229132428408667455724132148560203300440051700976604301221587621149392067435351292300113322904348646989054506662592187610603721491718694527103301596563905940342722540645459469097787471543928975297848932063821482956677775358226153835900046942810868218896113763104644584546164426147057228635912071009047293058874620396120464944537329432955685927834177342011266459986677318517566774803558065463930208606240283950620806233526906017282009406536666901842707464189915483615079302119352804936700607202373739092733479510247111581001912264664781584451102243620097526120528698157579151234823932805996080513719943836957995370687807683340380952621397080754446819160724408971962491218731721004247018981444277432955348785745477322594180110254652230845736951134809493342205073444710738071066809090192195324213314328466983155545248386346912832548852463679118087796648812668136182059162544301078626244394906375172994326216601037621790370489056594435723119690071891562899244559334097171922489475799170714257336786299476553847165864777097697196577641459265982669480262485956731631733217215137883642235275479776696666136502675378259886597115435583749096287409102571460890618980181947341882680948916964090613012967434930436339796362355154804581017584721771760909042334765577301281975779001919849077977545156487974268891887967440134821318341450165921299186766934672003084123840963332803197284003188020919715743725450694515272081344953224040996653410264838054316594842654252297596929667533982745354659320205349584944402931065322603914372434267792275172488399715666567441662873367444568224845934994464165046530315116714582434091042652021199715959326389541494550625788176479718436324187355157516321729501082417203185108632773192442350569192215289742164626856450495349092121723652123034130208084194137164874645190620611167312260027071920908426829142091157094191319958326389849454945851860392631152189835817018166119654638479001950149191582131408112975098597316654827306371623301459108214920851419726112505019512669760807016702315152194216738370033124732534388878536894581786899325150169642163792819515037294998824898862285302172867459478903163652341984064223246756366462152936455188170931434639702970179715029928303094826175776901769197359848447289971138876357068206116836601621091966851399356708850778510592818203177771416199541062752047192508181362947048539009699436575266966373390399824679108510162568442421641779730942750673702248514209280858144765808089948244080355873678426492292180960922148873128063326350217900811367697196274577463083747944500062436633909953584618381007019989190392446497725187229361549987100617826011184292720841168828820388378586711312206042004874405482496319007173819793347649611556599506879909919485012766885145855481509188330964735138593074806415554274038080752750524455397095474522565334209002580743866886509566729499894085490535501099964207847867757840304108544881759717851014553862866797251167825307391719992247954723026917989104442014461414836816743361148901169528603529776038342276764574275756389742231171627232695586540341347766507131309653481471481402145608619620654794066531897624647357792620455140672274488324328432075729105336722042535556442673688841670215364559585279956342241045796421974320344726772650183617617914785549422497914861798804405418192919195802476817222221138723724550936751102494236525361219556885896218339594108678009614563069424063345981563738810070559001324174749772838126186553689220006292657975231376897903151769019512570301870734724134107074676117517834685284234437669993575309115173691156630623688763752234848138274828992484639885341105091392655731797610162815903711424633461840078870463220452932627516461193995162984008935940810429536805077218500212361202269862579689827090883608978594961695429253500012135658029013056659004845657392040606361185608317830513914200213886912207920462785299948688024142870143655102368885218257955297806206344621347587779598619997762568778869011282392243672690979688698853707070547510717867952645763115620970261191873766064227289616017213550710793055292659235037421330627585564343231469188351274468118070161915674405794755404405085708299181401842801182138119427198934656785743173939264980307828738449708463305522493133942429543563185731681750216560415012211977831153399422896449566796956744872227350712214240928238278270610938791066430886436143786826319852351894649592683066625493415318866106602442363158718757355728258474330977055527933568946623113031000216310778118218940062057865925977499366557183146932864995490004182325036732861142645461129952477877450945898848201494908784805250232137810595783463613215891874935481664461162912622131837809591775915303363480697671592679143054250462928098300712505467441284051489902785681923854795601628867772299976831623803160441513565002662797673397553178100291231176381279690632455203958055038685227805345333432176187058597811278752085857835392678649951772873130680441614841093593372538867246893909365455392466305305726828395556792312987275444185642844815496381741594869575855544559547102199232794463410256515725512180005090611274256917787106237013824465776888416470424431817244250007789725213365544666649125525339151921402487955626566981651745390746225259148550317514268392496456602195357465776828536230492500194949464576291781844179784285624278994974323292665717347210202909430936038196718360174883679421920159813965775803614058938131504106811214745599011567285216771376272667690269276405742803186132108404326394395772165047221301959995572353704233270660318458103022038484927133902662016154455279432225337979173478250939298187565652350938828362396216011277142348645973578264137574725148109252013165276858757601128780566708220714626835792756577952307643400399508468012873328888565465120293016222653434069960239979425284108226499073334268083364054420839495342837983933243615681500130548879239393880239535402377005776304155009842178050545368056741010866161934117453221947449030570562375740519336507359196041200705022750072434534506058702873714288997444793371370782173751656384352364948280724743942497642439435972019819736107963790342337782087030201795284652955846639188534381653327485780932459462812466680429186489954480129922435827871091980793860638498906966442528862755912469924822384513805380996273550616158875296476606011307591698558270003313800064605485105045563710852910711320232757810966573513040592700128363705603444135571709434431481056314039036173489367977551632848647822129618405850119700342290961376499941536879695705097169475652803682245556697056535335823005083751629828018081083445427731609231259614250113493431369345501416930702707052814608866474829074235584871651419165658273897624637344423824268400923428590222684259792949096325367395759859842982044537227105821288846226895912177468298623251706574563508201133844017451294629883950579350613438573172272816198289878861416503990605774669142422503387992584652933794820190512236788810624016630551113347939043085507477549504456528378057470659873659814646943263904326675884954819262084977099025823142209346079882654597133004640248537548705799078487806069681042511986388156430445254967074014873699396781610696536367603766344910261938658922474093400506854837145522980245812226808891369047591391454342416607984845725568551298657293470756193576618335868866082718384354116299092943009712368251356956632618704092477606834751573378292250620485943867733845887516939393460552949341219954481196949466359411603013868677485177011868807823017092659036900521726031018153850498549860998493562456388906999523452567766013130602768482059768660478839199353406007650275557721647002855834571163559531497340483614717663367299343545702346566534713884316844207146935907345537517331624911755583612642967921404197620335165403973283821696129810915255452031109045604291118674808675392479782536395955767291077101193459006480663287654315728038056999228159740378887263870847346050960424517368270550972383103477662308630784964774727744346634161821411412543822567175071699387358711757040150299946026152009645115148857294320967264815186916194983590869303600879011907252400461593188032186840459741150114858608615710134201120996128069652153104897681915049153361169122010763802842727583502157218905768128239278841409396115474683084595766021628520332558523412092254172111287003729581205704331236458582845048225232189039728277077922439262134884830684152804997391351961801366292290610568571104766597439794591804877560212403019985753344843688835906049079130954784945209293072926408695273359429934999710232629954052171504392431950974541227208978798708641165076866165153998447876526787851205507495239895805428312007800953682291323324082034335138010414634746453812532791480038846889400184556996462729860838814271518836466086336297098410172477032286819517721848637932332327269142333233617414034172045982529696109125787056981591119824692365931728984346013979584131062716388711534424696723140751412108506797509025313149875076406720546304483031011669815554973766204766894762539741954163504756985694434850039406777950645145401251383954251157641730797755458816897517019176185151042827254425361035395517258710888286715044491799325702943133362592397784399930273389083215349484238573979818215121456434213706434912278969831650077619535873840931237325768184003309985301493680861791984519291975457380653103255402962544647748269356464276770257425550941662782754416328787291651840400579732724270789688097131797964545060933757249369201802164535913811402971273421017301048647609628143448447395315121132091010816172647966727949890995340478476318887261264757808079889392900513976591029894420824167440382053728079834454476998720984743727808524905392861137375923850059032094878086634047884610540143248283136804600355155989027256382165004414600183142593998601329837478011554206398784997134356703953423920206667939878070552934795353789156017679074771911007977505474652469290658290635570193915885532697344097081283625171001029728887005513649256527207234378323038193992067869397969632712668191998343253921172734316611437545857587554514906281013791858858629913137843087766326728778541159074246038831851177031162827422874279826935535086925347155033628193121448077241038627859456778973205037033795620530809096581656579934520204846951193579040425440451466098994374612536035418984121688568324212347132869161265267392228757176551414471038044120490671625289346573089967808061760360860621131534714132021495025584381961568259244694606835970940205373197898715426467324451676134168409350585017764408992723270904520616288903389483636642531210277824268854713244629035043451064397824699702533190208959716207757789335243203770546830264007178192214575794880830163258553262666282703228408301031145653026030957766000430993410808966143948997871885942984968534566962713985976336235985299386916059851976664267294771114164230858781773731794711757514851917329753497458416009320649025649669967693873936283111922957868147165011333087482943199433620539519176410423893067743266901004088457619343385910722584322417548303014021829212144444263063928285129082236960680496344439763818822178552209639741163784880998237802876571786787756154901840131066992604044676066337510776144827679567257522456154822881506631116980198248265864910078586184436026126192348308568067497510892869963444493562900787942502889980509189544509217147496385288896178493378707729349329576989037228545306001862712477417689630413387414636369668689582719227448312886472558016506711548095135180059196038629621412428287024107131047365408461858011235997931597935329149412707238583179455267595532536093754859591089244661337857923454206704803520065498410242074087965857322251959875328679610926380852099171188880163093165528788733154692276587336379031195062371991217123592024773071455296179876713332258216768516093707704559813617519305929836711515768290349085638277849305310570509877832108079408788803574096572212760502001133257081249951492253325261097480200076607754475184569774829870099640305796104355213240676632229445600366881756264063896083850628206762414269849931655273415132742646003444517591416130493225468449529912594554539223360968520982806350630405206191816465094014849488636822004193311377821962984355236185684640218717172952535946218422585065239738264362717310820611777650299840386445538310546973772975136364998480200062712630261680335890321916055572497773735028617822093061468087916626218454749751232074132207628669764865320282562565461543668455391212390845153397336171233474842401492709604354513623638232847057709177677818059207577044227004602552359546625505235436411115954013771980570665319110180088539047378542253809560237255821346675269475141177961089389098148717674917664414700234421286644492460716544093470094495599401559126968108665870883746043582802739046214625654059356803579589840975298868277550621647881073943079734670651436026780902686913161008100807916688681139018614905762158849712079830498388952662246673079991982337723977289809146174023786950830506367675266193835421466888519047686253048971166973502410605046462535278077518706175719164003132093133835598776998833572505784188108120906645502385614343115442475448665729010791051200952936624757723832151824784796480815472979001838002721292027874406343147573500731268025049392593302575164311889065094665081030896562127048243240826005119498102602296871447046571095473220415929908921177867857863587710275201632870594876991627681524497364010995791541099795529283936550406001243477255413092205567265710291047874472694670829391689249558648303656283584501847037896585380577889388263593237541512825358255672579269360232170648542325384653864172792271401841701692461679620670153541714613339323654735041634001447496000503313616619640644531340196843246344669889996681777775186279375564478709809454838434665237451084708555049801053785421704622945556540296717121524557463451971973903237644944819095552672828334392754158195600664868686638078006754197314366456948708002647781104138089532667107553644002339226114227061922083850620508436004680506632283312613063642343670929050140366005436298061890845458178974231426524770486878722206503864959464003806998575557044635252954232848616124603995038283852287235939715427921097654123120481984781729832797841823390335366643276343364407648591816411599435828814020755160900356569862911788727324300487111531455925773202608504033573956824863924914951123170785025235134894472391804392661537505052778100198737880095398788036631504540029539945607377905974638902096608643509346557578812546711262368004472319842877474306511773941414082571359685471590776796473046420887151454236843947734325724191685777127609445221310041756849602596889912283036289637120091652536918020423781627653265079316749455560561107426788870744197277983357942047827760987188082676903624480010165608480412019843716875706007987617364544618029680461620932994322560591627031802456366013681707794841119539965251820300265359335126413522525475291253370004084001124907285308558831664953311003532051198101000785836386584545753774122767717774701284670051904028516868700817050417000045276200395234271063719321804672324907289329802395225611008152283112831973265365071458475158406294469953226471056077418928905123605738610344134219590685214962657341258471556319606057749645085146204318440132885656349671216523183763776938138305042188530898489127702100633491672350883977632926003987699681027648926223416213695173718035928460297318269927166703254624444255852535807949891459047089691944605645030658396317815490047473234499018034141850799392775299791187938250755050960839205822855376778982638576828022631362351447022361596846673043025346598597232933620036114592256280881082473910018504232963140642863379200395357105853793397785659265370030024321033140601131983612839796943652690277449804291077147998640109904216286256703900751845942409899732051696051979563001290694477523321761991343918615255157628919706376098664327720182898325140894189535813546702563904630962433089035801184953975541745051360132897126142717196276875080125236570415626614002706715162640173342311846745920708656194874032885722603302580059442937831152375586047572380330621308215551155670464311671519853738974082355502612482111423804726220353971389151947620971844272456265936565644455424338026391485351270881437430976828967692067468780043039865746494036531169381797825415876053295889161792639361849138219498383620382369710055538642367361334296911800487591671243713234407290773796356420382364389345815564305811785058375848769465900819166617405699631247452933114661425153918421186290713468698580483222767892289391050984878331922542836331155048334855099815667734842191551124902664830106727155690921250400257744325305810545976740963215420249876331239461961285992067965984185734090314489997896287944428549950091656060818561409249725495550035698801802989241391790542995218327227958306619105316420581317478167253612422061639748251146906610785213235022973639625864977781167189529192085155375710536904580352700917471035815812803156758989957919260775998768314042231886409736274163037517798702383387759255698878100038845952979758245562541823111868590408108676969072583789690599633753242623893633519743002845260895637843422995430528639298838930879818434403938500308044849989754028879024667214921809758327754164839412414625870283599586628213863699529369533843163471493869493667539535569323895816835165524535526442619215594508892475131164467969617126047796553875476801387144999358551729441698787056619563658577026240910212435863992523874106723439214390970862267559150790047195236110339657814976321206443761045263485852682326260090903733381178807306171297964892400818046470583093641543738245402239906145410983431389234264028241689870168816036340630644352391437540014360838891987814772633966859417593945197772256276423736857452209092013495644035631208796408979284620298799840143526269175906737474484620908376133771894553533885100482584739880166704545035494209223278210068329783344308528471250456570858542420088481268354239941398206117848039630289458075094698418412360410318263706629399918982027393826135199179484796975293658797456745963344989365130357182985298583739208555335954637165134498605965319954120865906660203697607740017457180183955110167522885891760641778511713530162286080331402506620889317728478735782357465861623708668691637604257943648932251497816029198069843170598929157341453518193994896340791428841607904145504041448620219605084461001601903080036296896093025366338296855252473006157287593087201282561954584598582529102006046151176451559698510664206123826216478138764042694577031369912736249085549083742482196419741930509262674521347561122578890388751596446184937807006790434873540556949101666846234621377692772315085430408276270134133348885412047938001367529001066888259459738146850809262271781262468979260702252113347859320472276823619829939950218724950092764448682789655804112958718781581042887066370666398444241079325425520963096848708410829001857469637108991953437152742752001007041083324948149112335219999574293053346893568492317248748621203267411768953040336535287269351989291861220040683025714242971282594537455825391643919071579545018652382155969282696101211089176397625178991248068871544394990001455932940505817262999402782362916468018685874475198865528746588321854242270432621597181176795927515321311128812835370066983865685664826551004808284939695982029726037600180861562762736195631875263199667569255167361763076019462324359293020649985717760916286843608181784334474463579536301002079735687952092001831519962965035510936548360081449954098800343754071162698102477702502775704078048403214337216140705333172479059447833978652920012459177572730392493306933114375799068958292290002603829661857582468264203513375819265127395675967035194297107544218061887049289215645557418342909787281846372715380992831389587758093191222369545036843560006583908973213374116694303713472608158295777696467553974255121291048692382129696326995399965342806833012767578921549967050763806306910717848639084126444935157971853166108857047709217929499787410429478348507811975066137496676411269930897935428247056836039645270721059592230652408515802503412319216388059545804186740147485705997934411348627707724930707955895593352799522447444943596399537406427855263389186375717245664474013859307709293079341285963419476498146948238330756401893574858347984783981365520843567010778280992323045232337148047634943630796288513664941709970201572179772180832393481729149581168810147164281376059529304325848329423442299755428597135912203378845207944456352971474112077276096739748769178893708677361089473052268365969439457070536675840441266897953981059903485224093189308164714825842480938135182589523668637422259535014080946644075532790319960113447877209723129124305652544039212280239702677555909694016035313819820994142177617127893393234580605105809786816532307351099042352188121019141499932599608810030812347751679138737731635046094961171924902261605378494458760227348998641768645661245006259269939111941612728139508578540628147884330195843756679579264237060576261532036921789502659523123436108631514906769322283018959844950695175384715724643556791899638341224878126012565306477163251993924871754992360016717499494032606884246297827730656426296042204646968729501784007232589284349925402148497073237346929416407370271044110602215531187753645369058668038776263210521052869810929606119584561978062252062003969128038778283840090190796429490051137563641002530198176180909509733580384920209585675351658070949684526553302600731142973845022364576393096771492601557440337650313495422263149838599312383030357510797698136703872278770129022313621109190697196481500215413315158184845562735857223671706320661231858459273438226030890720974919568662388481029783967216904579080408449221051615198250421230245057306593377554654484948637539415472270622553815404714102316051035520466030077042400386001388404700425003188635984406776395747617310162620587700126656043568769553141879838096102909220332665407939423532847746962441730141467864339694765602096682535819953118399960654039207429704464709495321698307321474167563235201671205356542631288513451278220412967645496170916037493541770253780977923293074281260223631370810858981853164708158325325083407194578459413437740461927004515668595293329182989467455700120039555776497020575942815157446243863204406696482781687931023975275910631180319076442191216017736359766882501017569279416793571656213153546073600145203791183866839219915892880063818670371669439483543774450191566246165962545240315229087530985655350190675549255216152529858198802236843231760510875275744652989366439628450306341452128098577200916409000772199328265373848219602736070137114730654397319382354609335337147479932220783089143183401493790841052710972230798997162344789997997955145932675368369062831498406197568150243848307829036780647763636510555260910593749804504280677470771040760807230826359609710529052131906648421605131098643927487329384581041940557870621479791531712174679046967434632932898121009647326540466645348844796688072718292291304196809751556520239118359972304563300424981415105516668257016419182986564097071409888047939054390486412131754995237383864389775885737960353734834988917200510019149409360401188765889879738580746204150866560446151209445662389467735719032883469810406668894097554456127822051146668651060012404778150343421782235956490649437345063008066425531705050374242779005908657256099843564816907408800479033982362545221129494004707504331207543754971629475650432718537409773615710874539879450020532266309400672689672293059349646487642433594535885188916700247345701990846208548365746261895314376858596414166514521470898739867846812256223408935774156615282621598717515315001838652267731040036866470205831834000269826044643759324905605286842068857149491878791423048816018713407154054878919478638986258671343299796454503986867242271985832619712029905377211627705435469721340993282546176230159956712134613502312104011012885482167986325093581125401958043883785091007081694051557666498386182193504267818610592950317812190887639888553949505685418124235579750848048074891566231851103925290729937892581492135155151718765686157958116980389380954641277582164424922430000001458814519120145004904053216349001094682733773975477134444454014112569597569055247191313244459403620731465653187087414129228042005580142944996148770251790326353042163833380162716290731769024990457421724805776442420351206727244093135936828793459934540603788578969757196393864716844884830797544720916010374901611875390482902689447389877128905424980000045721074245705944721455592083202066595616550671092542319500990563727894494500847743178561853449781280600052087235855905788569524695621795306254274737483491644245414497243646050135037520949585991777674275935233936888962373716273695425192716798768155365554157165483024407886311474784883450593930610913668766120531937355803199597144684157434077196444377706643138291936667974881071016288524607674704756562444548183294103540127818663831447033264151764321867202304281353402872758002946210086523598789193381959656213701899553544716713628550632492124249584610996573047667900300179915948672102809439185189184795506215900413208991432725619384027989639133569938058367126620646019083565934553416919809312920154410445188906642043527767383966042747424300235110731667031234157870012320856916076754336149361216904099120142932923642408408433613975266961945931119819361985551543750471604874850712521026157981191781941911711022498561372113857967936689523173976223495265444323481968076611426544434265354927012985342038946101734774627404932930084853772608880526132303422684448447289745043856406823148883122377746837618178453649776859851835410452329948505061474462178753166277909316632507556221022407233743464702132328717986067561959066829624509370564527677392461728603499922003817701009964172480931160606986921101379858645524577218349203360844537991532546083308025786697364589151123091119713991261630729288005155605523274535506048167613944356071432243703525050238065305213854509813146590253713886757366719622213565003117358301442086051780124194390535731557122641229619137591762523658464471552112710187331934582040603578142001622660422398707061210320256718909817558423810975265664478075551888137625149966803729844601222352968442516823519716175122680301308193396340470029998582899576313640398688377808738050708956664094290190763255875471477632750980417209846617311491259526032914300470225635881433165431170587306054890757172863703307598836147744300972277413355661517778091257687950849266108529883357637403519408105660791573446478817926871349905093769554426993866780281439942780376837508588098028216410304607890144776066852668437097720454410039572267144777147221419030082243241299429110600045829669256204564705541559493425736271817103123002579978897000442764079869113676358261056680240036850008258489890755644675759132896626413399260789275806068683603057355479556482867518422723095312448160495521821969109784344923601338364050619552114032983443959065546077068481930885094246747628208716419166693408777106275190684803336422920511134628194431437089975608684149375657680588428205415700976458263856476122007269408998569337521329039138178604839654997847838546849921756969815201475073748818592062868483873314186912562614889896405722481241538092112729977729968193217868174376524359928261719556236179022531910898763337569688269026921736314826695514914228810401644775124567235335847564238664299460010625380919438265096300179417346752807519228243472524227867411728831726689431900602438971351373126563105251799716924543401624508522365705227263993251067079892669480656924142482013588420671867980667537414172032442658089760884418020455792857912749579633762199186419020682825045250690200317779838806926152254746227896729644155839272501578773754341329910283215566380841341704005046683725721018705140471023449989092176434173494567168071061960561692801938008434371953025324913948055884966751291174278102549766880528358818280785212526552050051811823157363158584682187588776239670846672909137358156897245423795647267041187224765125615814405117936389467959424415259833583412587556942509612150813628530335589284149968008425110586687314591760552466825218884324249351579387180125484359275585700458420664954425660655384920735861066467021920584250271086325758107568375442804461738074159512386955718526724220679434556066524743256294767851722043925790209264065068140061215846019694332777297729339104198882559161708765921653194550548053618472525961959667727185487864444948096392032234876269273162185493721776208088090340679832645841751811667863871886517398369605079247334854454942115245130996592307552771416300770217061157167811240706930177907894805812926572455708677920868016223199376557457962699791487263227692348409133844960224231076548422638957109333066223591401674832544853673165523731652434673490686503161433898655888627988285774127505866825865363928973000158958310024951297689562285665879432802430709133250575302257286586187603550474819907079491053336965558232646402826102411403480179918117071195674218838725562346947703518203025889250486770194868250275452718552117477918714593400975586205793129138571469574803968504127800154019137735227106623028667083440384934327841178953084331650398451489911537289184311830922322816907098593874651943205350629062692154151991090863996630387938408880418599074163299058101657573079632247617196866582969779858423940615297997237544793906422970090991931734873031404472898661209140042228433439204490442060471394967755977321651316346169644064054780124051074563636967185544753334145553967695613377442261537640473773212140577394183994124011520395984998923034802827148998586762891143915634483232684743233433884124199987437956221300353722804340961498734550408031683447881396456913859286298254963628334031419897833317591133918531724740602989899586703574656638800360972348813142211442374782223041149410699698069071371141108261735821837512691223821732430523818813754772642165831962571631318567398555061629432638449356098622070356842950432449559298450831537665349147181994386101342526468513748058586278844085312290017398152713962815797683978565422461339423611758892058737807916679506400951818892146622532673420267757585247581541103025098099914917623970629001990872193887878414717550436863689224749297350369575830360531816295041860555030910382737880131187150622200480440784797674062591324667016706993337481491004009322885454138117089630992549584248422457386705677764432243039619834500708372633969691013161679077182493876162038313317427072363501630593543740591191578413665816524770582065216340673964557350342258922187373701944145927111971743389229515989935301179686861569808262274038070875692148608710381967831821503016624595967785195268924441215219944936726713850818855077845159787115367103564047549546733654714124462996559704335320305957965065890653420092019122137089033264886996313114531854350166981669070642690474040335199378132855624788327071161961419586265540706947177154958751944535283094388789944936460711018584265616459498253121931561294610479405051729796641411465211032503264318526442903853377954276683237735480689753161372580313601828144975350521283333717329297409242177968925998079469587437797964622944869241143054872417103543699454659792498884775397061316912442905148751553089537716926112489914743825450508645421555454434994427470773596226194068940189233641417863042155206443684492321709989509968601290806707453697544589400373747568444493430770570677650526809722982960433160164949348439268859291306424203332862876170758657619455049796970534662253660178789109879677392115987264823696594816050568027548856223643563561363910651888918972434879916147542925446408524579198169505181013032562856107923035557379271526958515137466412188132160863039751475402125314509101575240148414123488738090575270147233438804121520781152163256328030361000550998312286880101537568357646052009517210191327534463377424618540527298506496213064468189894790749840728755578609749094259990977701590003596757495827586320105944803766209728474901864477703832762525258045354273744794867017331042831450650758293972458405270771228208382276976646266966723856321836752016041845609755567199055297676521765861697032202299704596511372199887637780558596696418406219268856175447422688940951898565380374942251594654643068021148650305252663620357905882989594823621868723427966383287279900783692979337604788220102005827126200484745135678817516765547045818936785488970127745742106505088760460134978693160574123669865967658449909463070339422391029724842439922063929884425457998887604239257343559585534464162285613594563431528708103508368589421495474848782451798683514379328096587521732208613007078831857634154448715541564630071263359584274776095891874663005951989374662905083683383525752427237147117274138451963401269136190022053191755496882102207404183275881925723232400867403240977213105235042520860463600506096459004885808462190993058776248528430660146278144627809383850425505726182278367922010672942159745347858049585953453916124785736420049221014513490652409139264969000976401017664417145969149409524201804298183097656118984612161586766418666646059786780340891532234816489383241132653496558973040060163815720572989452000471577540289767855704717460109813644726029117943524878317947744742393223101020928212153046954301101780909331454030756717635717536755986527732695665998812606164850089252929825945999809215380669799846651651914725521607647510154321875930851901711920522602848708450414833675734471368390658970417096418155216972960603125506461740949250383615897117620709171426604312637177913034271090507254014981926050082005060595237586714043687534762608042905180595826935089688169443265168783574107253031312112451360585034974296465835206247486661584689893954995092038333940975024644009793686442634225448680923055418574058610167340562970907834591014121603274907948522877234078852666551764607189818736298294288059458422600373253462930456105539325357252781787547140833176596959142212194194246683298327871066709284773737032177810599101844334252483587876551541538988989641533126005666164792128093119609548698865826143270298889380260076357943805473697006350145220629399840111533601535149562036804779345713476756633066280135578446566925507646662479651248736349578765422663633582157245971788636754064892005641626823597646348906744042176379527092152798647885501310082242444381567777676940425639131295862067104326532177881382393835609977081804876245967096352427863991704402348667200797595568648471013585680272387202520010447924775784790828629993658661972169163434836719845228337880267105466125302231321825615586050841355611300645707621570280193329677801548505659500372955232668054537154691852324749777872020466200113368315810921575892647875134726403412456086513273554267316231879408541866580507935909598040046690867857460841925101764456488016479197452993065561818141563078888130608347884855598390989455117888340145161874045930082544691830648112969798952042992594916132302385971177353136575661984488404075800252254340980917732954926231602998886158867785511861850388701556420707234488506536996002033052281110543253461250638642450068168725170439728534844815218638611857008613128733239893334482796533440977115325201237668373092432646465113908687094365468377725584091731686261569259987646861008136419631799280024866021063826286338579660496858073853194159350095107609001430001524187746361202586961852638251430651173242286267189749465562424415506998289731001511584301465935450715121329119845000757413123694112615658900429437882915807797233157129622440440938956473574391422160529434040976566383051933182597456725689969204253316592411593792728262862708602700608989787614102893691685146915612696111871075025675250152205973931853997840259965485149767292403294604262259649878728122233445772543026012780643374891910300750467759597714602023896026818428221311144222262275077935072931053030148089087893180596313051612749482054231951480791585285358541421071430861001184791385032600026037908236805096427190098181316622013170160255570839750801773968542300808094887288008130169746427674665298835479105266698200313740856994346096137936465600190279299449004300892945481170369132394222522241555400823963128990144598152180786352228766718910107438149652624078179268848210878673892514180634257896589340295257084527068722620135568632589609679118088985469311602651988947804418019651590304317328826137298680834381287819490011399702240031370001038265398309120130713267330548250317052363442051854386507978991675866669049681707212984653639939172260105071724143686972656895068740652533732219631899292454520180534581319765137055642050767966461045838948264490461550042080141598880202324341442015695091403353836681753546277765757228390056785308810913328337652621767108823071364182872528545772717537684316966625913144764392114463607104654391496806931048376557773162498758137570845079884215962349926274651662671980577615463443912261978918148776473885905029881532136472269397431819060097858716455396131339053379746449413314967391142267842825131740443906377638073297396696421723715078689480177398023867259565036868013005424540591437109621145690844068139989068770884023053883038248225950476634793172084136329733492685039526505438898957339426443231061895070241490311397761654496642830314417213365686986239407227865362965948188683057261662103651328691252233741037092424159315994183602201368316421741514905560462654997462410983866943322332259858923427737583769582033964201463321484356993330725220037100685085326823086130540890942847266903160963196528834278258374088416893719455083904726926799624392293862268988372248571097928507014810959617497246411248401279129203653958934525022188293604059111898266975826051816190974082502285331204937955133706454789193643319720768381861985228497784537129690699525271053948886464279898981731256185696257915433866468891485848044346850317076933683868226468888670352377553916804580243120053953282780180534838766918494648079984416574147465498046046968922638689128654070019528311833521465294981414557746284899538867054796149843177055274917372678651760801659362316135816362366428079265818062732199981030151511400333423577066856060387677625689349931233156059470597408622898027197055689066690112450857385917691020703534067544616363801223252208023144115212829612201686001399370824278196849509063479966364862867912846080163634719752402004320356945195184082832198008686960650307492665591575248423450506513598257366724699773608614559583901225702166681102393122656760828980060650713437069313659854027265385185706276293580535286161268168939407016222722438435185536444554664332005037694283969895842713390574176162821810236133440961635644299060974128697610827795708120388646195659717019955793814422650571409274680440891613194804297141631130740688620144363900424124793567963848279757607920960480558680769730213358742699128648695467290394486852938795114025489052799672058562406275214596083546795271320821645708911921958004326732121967254189112004125172285629396125744276910794730049959920994873432435766387044283402109620939220478712645051442039582269797446433213953055475787773929645563001724135873526088290219178026771158752822595575548717243283966083649395036217874591967681072176306113127407342050342154136906544197013731217322355546470312352857222363900548275253937062543245746239738572178182849521091423329383364706141805128583287243932132242098811444710650944715763040764562050822312390478679143886378215398959782772920373754529795933575199153327940827063731804317255882590041453747525449944773383250295634377888417292158165849478137954303666427284319279881442113524059144994979605100957271878426854369211735279935577145575279351459257207923377665902921477591299564348518623570918082296309279976917258123024264394131097375379918472215800699864445438952568714334795646405402121843743868682723587569196666742180408011124758975951940384797389680687185433657415288267417045282954738377127059270402880664379912452781125918159902548647831975952460986923355744390248554949043600533937423770665643646456299801947529273580697610037514376163526627138355114262234520167987774712111798601191465876345585680864599636846382501660073838519829199491853730651144728888467992481269676611645609175795339354850842777487558593741136090317251129279250426133822360274783119446558858746670626612551539598051481497781449520226074852464145236378412283421118790840158374167100448421117310877808657708728434118334888948559055855153298118061024349138148659331230308224217516906562567795338342155414628989772514308266540505897001356487336901000194391038904440196302940355215635840570327701710052720921320225697772858153634975122552052351397404744371004254383957385037681903761085281071794334466685210978912002154496798185589542350964257122758753586126801052272690627030889111525649084982956294032931085135449487169954272910537256574183784021837120429194539252831051183365615848781670011381429100491263419811663928720774183247369076305050452642829897580411111897896729759855369702643504192990543280461295260304070840027000868176113183329155266719288438031625975038410668834403397641453071836468421603127908354541749491836627648953006573405976513582779489984914427562016138021931974209501581662104928668403313846645050516381056748279021545367679646619398117168146713774483692511841902923138299252459526710605713977001875235092541460305348521420915468243002527173699936294930648085337142145701257734934234163666569673937770312989855324201400855481165499510857956835368671741844678682983034319218882907549575713763194194363114878355288794952544334450401844498345336264452159357834611281497735305593072375012323754738455776544045046030188921369901673831965357717482000957290790282202626486909965165915923484570283107598998567088637134630829096866905427543693732327882217895376097571757103870565254084017951691765274739538102525775359595537520828750041714408374865087070115009837690019645014375503633859727536878075421408072031857009271178990034823960103792680162589388155406590643378989832090401044808189746930999188380300271355445382395733855471636414162400789024643541862446886850524426172539987444220778509288219289352334254402258202342128806426050506427931631199208909132558653737844746871768289250686296826487349830176671211715289666679630078097368245492846014114319299188564069109066853809756577493197574928980142808934323888746955197271033693702313545168901980836041206683673023944773690069677142492085419821271894417651433134819198373473738470167556317402981847928704908488256515033626109916524919969442722120829642939469558192956544911407352802436790054053250502121194377842031312536641343367869236487287441625318016875470532621567499306127308352281848033332975186378881369903162364195455455088244133616786826620951616859625554017574991948644190875501792755657207876262007379155239575167211690131966367328940000340907375087857808164921661642955514472187079627744430020998690712783565954341804164575081619297344320051288410153240774793081774557963802047443480903617874241249632552453592158359887602717870483337148779434813972628283681077207608156585509671024786378603499793255936181241851193561609675409276282627548391425139439393634543721446660612365001300250295403953110884443230130033213406817347293989187346565649979681796162616584668178764055615206783119107819298895750094349908317759756034639276704251903868772032414356166586095024670851699038188243717912771979847859661055348194850009100595265451348094312644649590465523473512879595869349671957275293387951078575457227128441436479890347651757946534692490106702174841129717779485674202627232633703620973111417720200149470425010195142362389081832984592418548709922432253655041709446074582984181630178039366483671515270884361697311143615739727042756234130305213488755234695919323520706759010020014975815334091955636281460706188049762555943846318865863597795201956342233314148305471287642164213473769920951861847506806964660995269325871974302853817390421934712583975974101753060210504654003680517962907770414556197345758346599808318604748191322021517494758488802497153249779788432309469536954033970840881408686837754448858254950351111089078843138332451238733832970475486246769427643941116749465825645721138917513253785537920841385233299637040902410862266627886727545815549311082490547300662766832422048436299609542528083885043363838228596859608127608455269026412870738073649756890030973024723520056119541293123074441503114848526239265172872535607750439845643808546696250596878821685463020387145245578801655229964491089703746883709293814219944094345837654745890836950568912768054998830196427165725533645667168067570976891052565198798230262577513304395843197619040531291344647309761983717724899548353942158975098335043204184460133356057103900380409906475833574067118289986000239963833723427042749595001062418140412776951924322105169449299043837418722976083179982456493923098266902321747141216982419361458079076141647699606338364681494253397780324737242268170699923092127392749602098919748303115660443062476271869117214512242993898843174945430910944326866350039967442780246879624596544643168955718960634963337220694979268207538260563493242785263679304064631258976029880626194009877134800408046061507920958194300152306509929060349142694996368381577079204948414701658006456948184807316252804077573707412560824902345640605963041283938230665504088911150128502201164029317816704347381894263927308354452174721048977583349951587221889362618091053556410261440482933352923490016183605794906230044720364758720327916246978443652087439564153689501769141202870572569366262744383522294382925039071469985307335768159149955670415136563479042152694772639560873065618066384076595319799506067752734075980759191613198561073206482094422037888792551468358501581942015228536016819059998201788835035236441841983146613243518125171125125538851952822131858549264070734593305159736564432033674226528607167944550375749941563045801852983490488463608633925366898583646029369856916814039124313805342186820223049464023568885615371566867218283105315026481091556711108757789485633613426788961936721283458742878264463275416176365627128159504280215136677961671149554527926202687649384252074828326944861599210908472246415305620614499643911873525872459828409738449320473028301014737958204399473810927441254010294073835603462008501183469698569797279205309598295692147768815334963454558504516936824604614802559289012830749492025634694475599368531760944229335324046010272549312767519903981346183230639630326540494883504794449240273492738286300589322753462869462836298901331364822227785467726690699117769752857195091157624129118580931258308491467910822958119508972418727116578287528893480600224061530786146023993441143045486867725540720301825318768102979272228177162807971493088929588460661489353096684759207260864233097808669275175492626478234870746921597095258987203982735319106551006427550403274176114636187656934909870001813558297538306428928888676233529012451980599648121200075296960382854523789832487035017482103716528942488632889829873376795344124365116596229337898234986440557263265008419101573567568153136863281807999427323496284394617836520588170924318208270031383184240461962431893307062810651266862287995625547838744881802504511486128305847465005428908109651868381025478594267443502739904499687842130912724476590372578172838153405493303477644252697465740271632842444254137872322332520731874176120321499923726058843427695701508409960307783128993450378956721694552167077328490084403006035473627406512458200433384203079712281986861694588848445130860642383769887328619867915940792226302713152046064690936863961117615855833764286732993997530483344675562669173146201954713388079354939864061342871550275270997670822476922328655590399065511325657049406695178671173508722291451324544960422013866557010243450503362046931761725503043455120065078344362015915919043246137321348570336221779775374884351979131220448148008510802311668164212170318351996777892841695973266701997981694666129843715106624199570085463906537554466627749947762606941310117641393406260536911468107214630983477297195827443891107447504583062159878578481307835081293936580997703438107238277300484684507430958070683704451278138087331743394088338926919109145971603650770046745868399956195109040362043593336806332749240054543917339906093338474653595134333673550620171200709003539778040474264760115964053405492855408034030467188520157619854236368847381440050132692522827344483406031356208779589542003896455969775006078848248527599365938616984581302962381277383402472057669832617567902534433641445768482595682900819473118243491395404320439745549187923242366859920747260008888027447236220873977039673555705657316226341691364800492016829859531894562144137301071349373745018558218432907600742214665984531599133577518278120545348837297926022820019317222928695940582903564100454569519409626880307364350793038947821866231101124448244706344337553687583374071587296744857679415384663830162660671618422046155816086686888559607280100452481068459498592035610454906748593930549692545794930240496163659964060323195446298088339553125804271209591166481690685878549788457628536281261556675701845815784925779387487395769768317593236632478762285735812040598743795250439060690880044828778987532784326971976262602401269557079129165830159207957574013953759262633809058867523994495201339121255105025713415762639657974426979693846739076030245405129157645828825241898665843616719442351407776573810090178567260559538325440696968020137730669388526292195109607185565103009526127129440832420289821629793726876872272509825679891103224569208916314259385516676112232979079582294650534016506279141920852259364227582246279760090427277359489189351276648141001011309063130723385289467174632965231154222913043862541484667635457234645955846503502125696594949889455476802109149396390046584972699080031935522990711655446424591128170869218204633897113704526814228589870018212790955792685676044838652928805118588224206616732423735487847930423623699788015653194378489423680473004575118278371466555437289234432816509000308026586075063544159687381167416316279446057305206500589493705091035618428666849465518814259476661530720883190829263114434095085603001084651006635122991875278064031731059057286059377201602447712265717215945964862836494850874721379457266075390557428938174437039637614746026431845646587559834024508883006196071807230613427073400460966431483744690471105729553995724649023910912509107023640222477551685182104825269599403962545949999065998362663109981531394552271141858444562860870011051026269432226299189987257568235275908706289701680246324218086195395424586738928215888473206544822163865406996781320269427987779777179957248438888593409261172869365935717521257169250922211455379997569065543217652709706414713494539452221667145738640773491207388979430247631576567287614814373426783146596952212208451930750703097064577423953779611218373975577950612950487232586154128690886282773414212068772436953971480977351535887363876992059090695247794564162666086280246419145013954895005626930879806694963734258749826883648785198782303866967909533265140146746716861906444085784099387682146112006520668139153870496347334346173723847302811504347431568569872859789190735992659096750251738142647038806568128038560801552562787441324571681018230385581890520041344991997344552354587788491105868728119779811622639005182922466175457287904342769399403759353316088977263747525356441820710754434497951944325809885043303716063540954468753436956200462055333857136157480289747314294333459355216753556426027883778908038944550989648993620801053228164316031882055396515991520021814493504773366186657817186353543315703778033195826524347836400240288412765791331031113062802117268679060145189054919908044793122713124337493882650718454815865307326941764684146353421363719851711424450031686756931765112970111783222918073944323743623828675219555314387738934380451960822861119565479045813240858773977076630461437812644481519690940371750092429792103851550417404336972064556547232166176694955053614906776042240546608605231250818698747301206338396898218447489300636742372954760810257300285261593096543198558475361412283440591464858200630272623900257488379556979757928064355730682772062125762591286640374007752592500498479153911877682116027925049560740373569343738834488764691685862158578296845439924758883987894659064848887085416479982134847292317019023811858841048182050386367342221047612975580004622448548786698451157481839556614323198981568602633483186577559142947501504842017839421149599708356284487347265630654679769988265164400894229754766239048160214756721461421358305513374233459652219599353221302515288547055332250443343289384387126854465038078986465747215294091834611330272895487138339910097037789244437649060734065381282256346945979013945413801033664947755259321805406458978109393692697121750540956627997481779914289189794472038450413206383945899699131083355397486768851828052809720246004455615102994842481252998058229473448693858072897369106196590824684371838287059369583475757479433427028467983353041403180412561533015197025273467645724468098840049977231187960675486871751281337413821710616173823107118594635025637866026698962684901652937786968960078922614849365458154716804196144509230867272658769328986515887425362588014003583425843936902917140918341883549014942149398370549792114927661360953511168248840804286498461550464068958147667123154432973134902682940046879143494184869719949510049267843013374180054316655067837419486498896438950271110753713501693452352241946833782847457689573274019707687578092349729320384418703909685558344298247277151788590781767658478879352528748255230481918980278005214587959056905297138698233574650866785072262885907821277424924183020827143142606170592875371568113384120252691475700033483658148819758008257622997026403847641015979168106236565099167079580450112177257430138610277164742268437675774328278776049980635697916904632018520831425668460233497154818829833622613874935558755981864611838520573427042434902005930430102942713382624811993781283391337407867090927135734084282489853903051696746689762544096774721912218797013082933156247355573752132892936404066166086798917959986811922234378312672847585709432581595917423296173773378277449759073804422580409268731985654459356678835786747216663411176606162073585186694344772175529950293070396139319013669040881202394537599906204735232292840229778484881739946369109855737072649467014472024042857715914390480887237683738049329672262261932411478263177708225578264783985310997894167953678922438229089446821633382583128144219746150752934115329936800555388107096082131815961005057995383921360966142368137812627592809728704114872531101141785940656097054143630453618834762355660909412869231257921753917724140662255352595439110816626050923950436244723524982044557015931361223675438534505642618925056767695783466882073271275450535883275355515184670116008456641105979064932970188731250841776450408772437697965665811856871779662081471529653670075820164249756483099135297373946772479971772105591101248326894349681784335363221862156673640963557440209408102391489052920014897089464042431350145975820511606793788197771439052406079097569493592956559513529809201384726607971506356389893538668824158593413254801943425791458966739326099794270136777210020273962045908266303748622514411056412027575470692652435851653060984464306806120736987047613032655115703769314742334469497705768727201557434712716631115502882731852954688923290117452385316988273524153730623707235479835911500443955782398783559135211700942329690348982216247165050797967488256332091113309684186594837872483532935178334180696926830368592813245826848525741749368823402310891156118348542255635754313859986417357233012321457313125133706328566823396231910119940780587923034673048986822331541729691184535388074254587012841044073689085629607243560346552296678163031338545363304283726060945908982435902452181178936714379215833167808435595946157414008083905614467277359334742538399117924695731472650165616739645102391412120049581630665017662318185436390421711790881160782364315706200740979431155272659654882311775979653742807276817786086013463166521452296676526783218869230337441933947450230580192606524984052254146086154448218651154482684216330227180014897687941009822343364334446892848611788879744994005956848011133695862872478057369878110508452589352297059929720755435900691099644940389168207141647793933580187769102398612341324152951472522074778127601690766872075749529360060718485043316838638882385687644493543664487721052363154062315033725711093569141696389922297593353759241500961122457929456189250335596388948688084194505775637550429276723645766569099172180743006104752683697451662681357361934093207819719621571451993954651989069702826400077426784491894162174646438308365938423690126455313035379106782758967695817447566529916469972689607026755254569086948446998885627164886625472073271835869399180239470814164842243261361600085596329734599069610901616603828885489366677190058730145970607938555886070891697985243457956714938680810397423103875257770093416654562321632877075153971698304237219266413863210990096494334883820412249608565458013080396273590677582852243604135738400870900817534637753808815344203965186740524676951716535630909244529692038369631050291299395795900125875039277289673477709515277460945945799686520086671021519929691792078095325386857470245409559834459630235722491831242842400615553930820470788176087922571414275357907786925989421771889053829109696101755131854182540431610890187586392979475640800012677476931497686774041182444232087952965832246095040648286396824900532213317856486230193821824853593383793164648422966553758101762172724496408167866391154080134317023594256164158035772544720983584588720145156027423152147258090156129280622944657990746907477173838196103565270096104285023099741852211529238096245398081085427612326015959709420270650725219451886342660727593532913969176312082590070296240496294365637111369599965800805240710343497382842011005490925344651131629974965018248325947403536807256854375093942426135064426720776482762419985025896512113331707952266369732042136141019737908392691300459273716426648733063978581151542869855898442116256738930619915991135320650262946910959168726591495369889838375910878995766943012441379067438260514691399787846341642047478470196331675029936407062532250416016452342085695908960012233069771395714589049086041807259747781200343667605966685403773120292358721463704646380719413439169387665547895117925276268856112631511609458389898238527414762110664889301247222168571457027553495667286227548135603911294984171882935574162408864792504427238784787177231081363403970301247318515600547699426352591837876947805554430492885150202270688655344324789405026676209106651638903174268979784625181523072043372033924816441717269614989468955904367959243573280681439122661868331243720451611340607087633196136571607755221535259655493566044064912791011366714696065291190582609574557727807620282651016457863112168001744749119073984015597377441534678825718476333328694221153999674309651467558964356551093439615041372537570296329230897733322247885872609579729026971923604641883798896565952055040055775129586254214909522071816876570787325164425347126617390498228470186437679774241078430082184361214824686790136787916158831788419806928862772514524655659771418894675471417219854128174092288232049441045691400030906983724821066400128365741583092531912097201756791823725806646628971234043043311927551909379845150157067546534767845110547143741059299773384946022888311452647268076233528872233811774006558999842055357262478773150842807815399276982422023412923283073155122644003202302455487890668862035037664246399500768964152561808858872263063776869488910457886054626228053691731357328420126979723073328909195880695905735568795440806923326949191204207767414680654078603356799537007677126765283461447285444689497495252096027539040574393787954677888446004339456479828430959615679660034206821432516948605547433988871453250723267073155424754934700202964890731088025373301258166726340776431316129290003308887317569001795700797233954773311185711484628907443034621268687344978765000113475642365955896353251237575690158443462742326210627755147890454324289374317658235009984370916959247763528609096254216745638160427447854286998770313152029734116076873168662090880193216076512239743975675727328476223266967707969592272847643334724849255434866984832910904190930404561176020318674897967740009391899572472906770783754214775132309664869506158573741021443551775280582858134103844508518402071083355028966769209850141295721162856569574706559910062210793872160992550714170432501821708910128126919001330596219630084350182444209119358688469993632071594546430086112567681548546519170057937453779161242305314696873855801904852245870413680050449576808198372295432565362738505901190687142688143072342860447298367520897796788135760826812964699633344353264960347548801381107748770376885578478981846869274078018800320096562341889621383929429923213466214303881769206544343894129512615907083984210464831207508740227660906805948193071970860390650532490136774756250302149408756802128008745789877621456038328552440801382577959548859373619065899856683303900652726866843317875051906111044881561269928915219767310385957284174374684974973916545420938438859821436112576176274790439279987443379543291747938262302286495783128790124607307086704841554411048671450876421460256595196758946990504559476989107530029898985418548894224387207086403912949936174089540402283170468509762673987398381776001661034087408879562082517995703592209527224189308710827828446307363339208201242813742621980051695108100169263658010721458513753925328901281506396195649914610002627770415358126260592444159591941723552733597665912672655382336673754371287966281166550911531736751486795273773002611050986630113560146857207100616391683590196185963697537152237967521952709526793318381274992577338029787364238643727900767737071253031030651352869031201470965549376494487102659661108135591767044323265184274229390809018462625165191957838896774226059704293060025948939038531151492068360280722926967218777714770497911951746865935785842819110717123668829213201334796642287352970869845057408834869871585686679081121506185147957447459307896759604967837571488599062848490641789596363375191035799637597800138303326541160341208891947948916359181452990504604596095067314573722092219831191216194532808299192437583581928095339749781737593342403452358130598154038077209546724924970159843607522049936347618122348401471157858182261146190065428442850801365398082570268764904207538785949759774411570867847345179242904231675969940050566563685340282025583138582074249145870515725914871108360345727754412899933107566429427485598716862024642532442687799479945207167217883890676196423747944145442091122738261804077088518475327243586345081974082782329834122911290992375918077263747751499379270751223508352247293913514775427749821752486381482803342580684858141161892688157568459987572798765345031226234378415568934213315200344427064228438184289852063720804883161818560170392024403938261197184254286088907238213055605505956636518339168207136825138251559430776672066495626411629134972961505919768622054633707231566754964033521801695059499988816184285182071260956429172945549190652352566431689902982596460379392857403706283074455562242907518498357418034256552910219960166235375863772419124576199003794612225306871524178508625399038058951819893681343918801970257133352590647772687104535798907769250685399145370300787136327915685527563238667052791600642016942037757545522706881180003528283935725837541349830463220476553742348324897057288350265976527633550612648250442568020036265270737213153196604665408953197706613861164985997932533429251902169903296541633108767899306442658421993822385847974153371641851104329376399460088125172653729098004049728594869637829902441480171924607118969289477320314717005132168570277898669477496062575390563854699468797154421297642408198825076919789295471574847419476061743230243870904156752494791234906940841760069593411599104001641568166381577421284620859340525833064824825882962792928102032852918522861735709089323604249487078281930639695891130336390195120494445963061449279613931099286161333563729134614791773548631685786882433983966295920391562394453524084567027109993852113625728631451013485753002336825924940702230240733232156533138030032832571025560923878631657168545863621366873306386966945973512864895678389623178011896792585103907393475043550500895481470486297524277369209629986042932329170802854913516903137101754233986333582453188353928761299477456505828546902990967524639752551706937945485419015693117897034928875850884022566710432225164948971446526358466001632327272349470258326363629568554454895395915405517491297769256978083637453880280622252335547725110466617338032145139140747350555857087695206008726900576428933214319481124488298283250276749777193793187477236789937508036770344755118901937044928769939572670051413663105728201731004421049373110495654201075952816859767165534260812919868681963867077929378844825011366427544617987935916029305296140192453909655288924545482602930648505707858239885106020709947307072688492027297889165897357419254561546425995398537992949748794754701185469979803461134770765486269853619599872752981055439790852687992887797637688531179239281991118512712432916414623552160579070832732748131098351046298029367319415500918026930920893237757467245363715728165845517222727607709303573566315673120832973103806085315498143869975466149138225728684317794337782769012807828953788753237570051623035401355269376237065918869234277938304271337498494611886216780446931503850275900091025429479604312419873221551101832119167376140490617006075838859380119449167841988565055892633809970498526539311953129015155136176970258574132117619336679434556264398667967868353134501578426616160868605299351558440244851300533494417754478538428868379560771081217933235226131587441333866213314014444997598411481746005118637338998204952301446925611300140382178827698519473388714630674919429877846686016019046402482098514596180883922916191609134109429124849023963600010989962062211765617921604676742189627800752278764483495638723766279084421223370240057321516421916307360488864964511885506278299497027524132840355352361636940926236118165127208913620337392743132259830502113050080518975427687496020729872105745260907960777126597006059961311954483611927419733523422592837247686152439951997219824409471504425425941511144679957405677901284599048353461104574658347787886330206205205519585822668843229003875695451821603486110194857916495576033694103617494785601526275330233988166854591952816049037697642697814723646077151910865304389106411934150047927960703398737561799133189283224340528419832400336279977364903176252427220921090291521630242524462971949261280098711854536572142287217573978034283742037686435352958601514872210635201696710228651213608817922654598754435382623467688862760348247424858491383000874180523149415661777005105947886195566052561446718592421285378874898825170573852276883299144045858905815759631183313424106087550966888831764420038867419794506714662000456299587848384015580723705634397883397570261411629371782725875716823271861689554427297726720467704514748795002948807804198606074209100711433641616823151894427325589769290001978568879370285581470631287148185699508132243549178208659660984845463882043278782077364898738376301962710535040532136238803271168274992379647480819668996322962271190798252626038524611665262487974962343458661841874440267988310084515981123741028743305037434381858670245536856745721299768683707312695327190178401100969809944632786666589559290708066941616893142361659852232483916985447265683884935942869997094357644376399933514760417901352209817030214130281029596693751285534933792017903555995482510593627524386212956040346457489487342867477983730366525907029534903089845391397661775126047906272602271158609953039948547666003938417432419487110333217210351431677560979258322620670429658738385071086520636158973051315985363655158529349180023497423405309007683058403301168817817802760810497947754965337619501199979512695119319729956640992944254958696026606337348598875797551085865020309798680643389256246690695603738598842217513204305336421656745666146599481690696186236764072424506303416118284482803775792382201113054220938747780994579210441556633808975420961763552724284848196429451280556310506368971401242332979024784222926455912525692640506984774298442527095100763186090687431533072673891510472214592500197571009242312921758806292458188084001917526618175809276563938713633743524540918342681836553683301750323128405965088795628963400572274804383567951351741808925220356104372282326207084393222945699512824741423534116975682560077790492640825412039594539889635770810135189978389672769592663676694303383960213374400447747279278663133748432640405200453052583896732296575885397900418973170913616328047865748829845080619813501234937501038376964685299420529509994594144351493138990315352564586636053533196802011711065176446921426876867049738389701445025861911694385797525181118570448480279751520398905489570465236700348100892831860149419453126794819528147705797729363368547416785370522892952012154909624918152843045087370393972067062186919003908193130163544260601825905308366317362349053879097071599754263787573246485132793982210281891047226600212655161510299608639930398418424024169119174292144496660239574377633867797830041171430999124197012212332907481203085393583268123752253052088492590656009837108721219157897768909088980099637399436905875701734522476351589802410169057203967592322876247116930944397496871040669364848084894464494235383078672186772024179138280885996161620956684046361313704052132446893564333024879589217567734273529728025695581865419065888722802502350961224942661472710443981379472997045363790577603522037299484406541038343885003162438502900289644724645893423583716020329378479930549563366519931012699435346015602818221856138339837731604485281781024079777533215364445588574035292512363430655371513969288217797917964109221644888277154083529905677083821737779822653195832081665880693908573551811428166551372333604005290168484100650505142610092024618403137002439380453054500314314531485612720249783570560485066964449481387002133062953736078192857858304439436515512400718561173329202160677761181925247396809036262967650501232239380679387142044991976613637677620828388662432038213450899836364703037847345432481514993492243958575956418318983410375450168234044558406078099962684002404209967381536759599626962312014400471738208003892648526153939452176458850678937373870411013708629871316280907206887632054336469578334155433528249061277538031712788186282992131721069017887447886865102960581225084849637962655694473142636382630510284647808006138321023314839227742155984968467215468779624915881578554388786312448141452229925583626096918541710627415222463702484131899027758219840229223426801126510183163671032366271689329720036108219248612770956441041132054131029025775611325993341522927417914266593981936523718457912158855709461503421586576351476648220260401079966670303639139761739816899416530905680935501086352080536610318093920209634398010355887558288616602394726375310571178238553508439191276681838943639194306999452406023045287476192595508521307376781521441720310321268302819151306670621766327578110214836857281623342507790561748794455585327970195840746772355084684160675839735707405227954783107415508953851198952694645454691342533313137029178702135917674631467905938558543052318352709751137783157890744477626674961718113634966530285225936570248882050720543447640807983303167468216260929626095837786619860025247914335587008152417409733382258056330756722505180782322160043579184342581485625473882047072935906646827973327726162035193424589327386141984218752401677341802726601119436668885347802667883743052788280235348360913978677926215725324183565758463814417284335445729547439478108535767271770549750839519567931561470691459086363081954194946300268876371954989836992826753658665435188994687843195248719276443044613791837426341791064897180813583398740910240086052837285128834607982162171508759522061272730088537445706588392167061424250831712010671704589496154675375123378473011100526448941960857113046961058427774995234510647729967248278854605284316208339745657049424391307059810833685456149855628221613917108093376845623986988268435990139852711892222660498258119579011249611498372386324735869515132983258904010865905164934502476848032404486390084963970720122909889794600810237535010482489381458671539540892136956625068716125420670831663073145348802345082374442075771855898836724966990332372661294651142363418123490592192963543090017445977922906560743779377940123289045523710161517044162054898394571574773943353563917292838040205846785091922198886609899012692705753429538072253944829170792004817504155721609330523238340447999164277459873945036919377342108859050482299546979458003809252441321522847213490279792808621998751225651390790022066811485658969089471926898409777313767851225573987008099795329757922408495003060510320286545595245030826711122715170432377981798035486106483821104239315373159232186668773349455588252587051801040690306453089616209002895244173038782156294638783968856598330807846265890747701269802764785496238140586632349017772736811830029718165532219841797129631880649897998613827206560276022069834122183565475881432478826467718008428010962065468248789522842053088547914674532827276081252603843408283970044153372459142441174277348770319480407781241688172363677402524721946797763986141554550109273484477358649682086965515635315613075686978001628742614223325035941926982399469183295039238397540908625963931250966415483178014214496618377979148140250293234245273969325632377240100276528238849734017479093067471963600555630169786779416364878124919902873639208577117764016834975167255636392033004469168892755469609012653178459585439095186551555643459064715019136152985050618883846897109120023580619778755964477061330629837716182123520683012490581676586032508655846550578287668906466395899134515394868332128253166306615220745806267670794780026578763789318383615808608578810875441768348300195327331187115746036152936342065045651764518724462481257450572814785808120964314139488329332971619114950806986060420933953910411527371397462609675754446103373911759082501879643703279271657439907679937196344813749106722178101942077358231135858522401987356459319173590326649699332803969343929438926459252821248045534899052317462022454530908213862045120173415965503678167220183708312351717563140490782070085836350601091603688775323218240377484584072066157247360465524274384806908175771133131320876738970686065875219421507974252346059159727188298327961734865914653596575482515255051980760798046038753035620346963492762041095117869730852926544465893210444081591049445763307613735854915883359167517010431912041363941602780062272453745760071187436210890759696941895737531264452139840267373707953856627814122706861638930720179082722218147110775056024708072153071974300110438668350959632466812748135774394960940972297761337278725129647071811490229155619795667956296356259236598335162401787825942275767762727917182939791542382544450698439906593466563597686893980357181798399559497596583890764638833904838316392508528465334849361476148895205960907529102074638294849647567781298306341586582198029640350949030136778997247954245897764683746455769858185108353863997534618498688071204114332902594183880294706090069432882118625172014476202315061435780991332864268295671795570744294348166655132605708593101289591487865227465735313587224828208033483699937063799796668552391247241023699907640931282793910505927810308046372657684465913422418234803656316464906563909146750072263210634910467057883215330099392637967270742574661486711864123626192437299145741905937495552348067276859595867567087096047174515884143117327374241975261664869390721976193638450803080014882402100384279883503444338424907943409751019711824410703467260621659375094431842005383306448664767269531448980795057819056449295562771593118953703425848222191546479042485645824015419013997372378441427669543321293047306203473568604727912263846311041080153182363831683396371090656627312108383519942045169337906752077670276956002538335932229046609792767272120873999371512576300314056627909210380859469674939429698009294506288898187450454700120724248595533508743081371533926941246183227064226223373864882995919650208193989913919412118766761249194193804197997635453202777010933170402773329144466026055317065865705126150619231903211349842037542494866545862576368853775894172923953542020903431822172868952002383601961742313216929577809120777811297815909974692790567362723572012951963712560175800148395825726270138899985126828597265678432593248629373614052030845361386999997268917103863153708186386321755186092266444975713369469117681944426291742143157345866011521174104178307179166986418271264439033863815301814779710521802106143883216466793068606433357928476162326874261483481601238089494845940731057739108364418307780558075659841873349954000413106321481423123867600917042181854773093267647626577010464410094302012770206434527432484961360254469214378082982352965412150007817424969855755067572258979593238454131957907790042392931566164093130661383008722752940034890657240526499329155888679332647994382803805222297550185289119390600925841561428087778673159509915746113488486990731319247519969302570842401473470016879884547812562405211471657367794542965088688317492103930343965678487717327549979101233376167442062551689672718958356535562472250811682427445810762809570810046545987286132519322638947732428097629370580429948551983864109565052783540811213270161443290643735656840405681851726295287129371446432326464397949551471999087187808021631677108254005864740952261748703634711074072299341539967666694090532972748958816637946977492627578600209258061914437679710145778709338776368107605396806816881256061768024649611760513344495206284137651055954096188863253201105932131713671546499009279527509899506839634714387486680911149750828682427659448709871066804361402242493632936556757645504248682283388416243878561446850187163103180764662950970038979027090134406314334040559416222545182259914413926296668700737710495746246207138291957380834754297960883854127266534236628335744257315219506118428345980265098403294650776923987765857606271318322130996375943576603392664912405728077404981509474038179057517853648068476568653059735919015500652895044431225569860489124314077151918742022518571791767781058732119586067968200167596741240518301638192528796630996204534949155717367919392690213883583973017716147237842293878304213118101836128716923653043957467743666693805950348706312316754260998070456462492821100112124071710927415735160515237934978750040596623936614535415900042814212522557720638017268904918344548969505499718956777343429621561132350525126849363834436849923163239046577549245838163247621233684960392839194613169862955827482461281651217820853085715958781588974439112468407366602127175056440291085445764712125340681905431867299478238580664455737804879181651012730804302933385271050191010834589358995199466119672290103555520820356109434811183118473628587700697278331189069980377064771737377611036111080190504108854481703543520648413411417547178073014217645364492119047126805938247542504804050219907494719592049745155397132251453737457519450451050054782433907991463763282987754154331266104669184930510108683276657930029916517955137425643279196433669685355673481831471814787358685472156926955199699281829241496026723444185610174261141348815854820786487754629053261477528904177718286217291236889225325438675737792679641677151077016307492710566504926239489529666931802175793817064091675624609966941707782988414406468496437422395603107419840316618015945131520917478789425615533267493336061138472931616659903350191416168160329150172077821123509257097316262513666976707134884034344159406207613180743927133818690811047035975208227296013650693261140632017344086065230100709672363983888191675371305957537105360252415585194290161082691638743325471756832025157327645021909695936728367086317294556311963502903196618096839254123826598310120484264641749818308661254325825098269256604433522494374527243011110703842937054799858960067751291970760288284894066949365868702648275792196906197651369402799819859806626254434628295137267524441340943007883014839140843376319689526573888571463325659490255763382921926512029167702310588108846045611176510011373593822316681625242189859511098299551781726019818627091350944986888269058570263616256813699334403253397574740107117377865651138944288398339236376641283066834758055477777062651327339423002993237221189001570438020601740958285751551160226154991074084274488554120780825742349007607735861888774503316274755216089371055268830664589444812302892013559942678244462309824972013622995175893301167812940589491234477436828725244729592648133994197159550879599297383325728890696237972830222009293111467065622121589636939660823274155172090073462299030343857010699197309232153809588375682365954030993396639191967522369436590995226670992385510679102165503172716659873488866232580641916033834814942528318132389469464907328192564812485498616756274071101050221430915537615907930551071519693545110222627235044761652878653432033106079513249666558445242946307537409813726281110749465044493991567492116278864972084815167417866035388688283345345208257194427665562575613472593720984979920153503987623845274635956799968424497985546899163059620428168446028074886887189375108841129408492203595752408254690244495058928764347510088359840197481610032304567759439412972083496961918088564726532275934659547283920030873095784363196786051396594279360058465518809542336008576135646805802205097702390800093253274947397181943968302953673290763659531932956077468603255274638385519968381242577365911498759699597471150810152237035135596490272992107609674445983393765268287028564299966646202518201500787944163403365381826422557902969963019690645635428273791658776998557646809406358528442286321580362065759102293890688518337685393373364521754087911118328773711820099792554190462126460248081731795873855438064278088680546280169230015699518178863722183777002973207193620446771586977994919651825329388818094362391819617417919520856279551115008954947838772237987174150904793847221749393703074146497318852056218902404670072451269085736174060649797142910738142090410582745717334774382808062477443200368900203028087748667090918586773672608876273075573972573665145848944868110039346520923726128448628470107164453464616662134606539784877960534692716756926550610257116742393248679166496334291581306200076834037421798677012932292232782027221264110335237760605498836051796825486879164870742692596641212210777937938204586166602084240843513959397629714461840734878901040151818462967434277517957586035233140483722455015157956411112874326677488183359880649935528286065007050463822573728615044225802550048512778625379192549033388597056651830313170482160156332585330890572117829613878925722301275828814020272899206781468838370557760677994148120554683319527323958163191536288434085442499899164679407299582904764655877165546145563163412530022086679906146059170128830315135991032022566197308316554556893027658266242824328859926370023036973588288112846027465136198110748515114558959815913932825631711688315806168270213523575419311693660841780417156726662235505069115406767896770541082748085556852375199746549605803799146205383139258911317859645303090396336883065840781631439107878399081618939879617063140379187489145834454771595991455584111879529398819278304878214765095028382962684603842399574606356576630803357781569047145705277459043379293903906306841512266173152295825129864808620266330007538051498486383658445199481104528545825446428793072283530793054790585645912867105262780402846541291261133169159469095876282757455847041008137651664971207240570690469426539898251911595201116685224658085800140875271025733687511333040183079720659894008934071876960112888127581847592030638855267916599442841332735093378983273670782190378089117894286683364788573923068187201183203901225848694416125871527035945698259286188048641231910629692415490665055434201358422590149050627368703318383528580913665823734638459139126092577996554788827611435038010612775996759494720324929106738910433091816619999957012526428414037560674642773592858466866546916139590953348534476241264964396952097515186152647017210666624310995573143237143237318669585545708390695303039737806465996791962679221997397813162214560269152988633171322416623923035319030288765887536538940747559486182594089867087482600118871164670765865812782116275751726816945821468977303363647882802237026134677238860685332555937562928486750977676089361147377630826673136344445677389376656413233476735132857855668101355220738278538497658475333184681428382173997628865529695713599467476458152012794250803094090400841054697156927362387857359192816328081186038142498240745144228893446551066717117980546328980357964092135439995713750887252631942174275987901761720229935412655224646179985041434183977165834890096064770310001783941019716883254893128965210774683470936782666331571444169202406175423630962526710924744348417453379358126534709469586191689659130068243189046651244839291812617137810623508051027296851087569595090893396863160429850398847398735141232168131830645435050296312312572548566401160909782297812246097488280051106467839869307579260737144931739882897844582511415803800748572642294143567485502282628684235455577703261683355657172345055658361010481032105093354994754132338064479300538655154993130025080829282821089532079174411334239604397196764553064201240568344419604120933504282505131355049161161334145298914250445122178738491336936100104570016540211457773185915477558582399394229742040887186194167167028908020743808181248989599023593128668180456710231886390916277344682944250996603183719280593050679492782331210978629643932394989491380953007096296346687920149666150053552066857690819412299669683058405345285954741667935930221066580901783067342246902116006881201951839488568486562706859842391963801322409482784233697480324437154273893434982536207276546705888891960217489074134853285646473101893139760012767452105184310375590064510603674863588270331292319777150547308011298783556887053053226352607375690326174271627405888819657985383693947464399054938328142476805452963673678843930969025943558684506162829305600076828220939230073309304816029428128248114102851518824160589320067632357162594800997194864485273391297235519612384334958068194454239992064526910660479621442173750462034618462464268904157716481611143449772991680959563302344561756772198748089367232927264319910079324087420813320518327250874816835975983532285734167344898556285122970901703544343795206505112483448602515476393410633695076358192986149842718009367576064891820686134164418271805330156604446312423638928869586459636123461620575421062329832926944979868223045399081948791302239389949767838787483012461011434297915231246722135576292738789100250589212702637469549530806083105052474573343972239973644172714521979183999906149000401020809012503028614660661307830621837537030574681395830310702117878716324968420919339272189518589496131238117358594709281321569357717578849334409397298821967620807234499875274585184125738700798436417714195034768474304514674031578408266233942919088729223036750561094054581816429797375105121759081937856454290311047569214654096991008926655236157825269027084108388814863192621945903444413026260432681634422823859797214736458947969457370672469418844435061602681644069479554819776198192390393783555557981168813657962605347279984254062509637830556037559820304291711858244006123641761716997827236840796521253243823803021461477010358987158539186273173223760712687882354447160948190405716533363481497228098134449677903756666177809132855421960082097721296364340181748495001150101848172799031955981379637319382670334888648317505297246534262729663470034284885121440540960098125456885824979350842205524999588018340547062893878003338259168964195457952508539147009107653635144121979194035185742429432543337029616201649878884265195960639069063521120766152696767950787280153174136365558540438188941667188664883590427439384823116801491357331845567801709832760358340950389351021610797933205995568817718682530538871555552029320223994295435484339504075055418574853417401269764706379443260404131318335964412338811845981937337538725897534772675271731498622066413945841871100104822485472846952862772117331238226448512124427510053572382733711454225541491464413768543326962395326194248984525942586450511798948998800075311463106106119564045034192108358666236982670874363296163081195311859873017977129733569955093043592271767706653889604370733684680540944164122123657161809548857157068626150306383771765069316637498182211596009421182225762628106824377086938717350329165010521075830695681503808398619723822316341168939042113027083843639217575127795083492177381588852338280520566774423762462647333362877071253237142163086289149851990582285343507763650600183097172309249673522936175384617507285055513245226284242986466129712902682252336144507353063878060631609159999283924546032555244829315662167574149123541947050975532986118366470232778785935622856593600301720314724497605528817493336480383234053605454352488536623270733739085409963047970511508177919320977403660952707352933913335474476014817308974133126362838638076121904652171595313772497015431837576669019214872122115851973541119494753230792762509328747727104033960742016391768838714076579614462260172946996105250633616977030116719746869478863361417627212929034739841063579111327632789772849934246425460484093896472884058203080977168404624673948725205855866591020477700989413150936132228591267501307032842072442065348512461275888472929303792334738729687881221876646718542459933996412060368697852197295529278019819507105694885347655835229289465743913179302667994946394469528576232557187238606824445243931226208019409154732618007809066310205723236889089013138004888636528565033244047994098475592483027936503602210763102854614251806841254942526608900871745343140181164889306093463718499693857279852522187197285201987523186679235553387055808356063756843849944671330588621362861328025606164029769173622113927688159481098456881460207812279088829541718931830145255481059731141783460680981747007232807098125662692517750474227348033253585561623348982087002348052344953131873496146369892386848992603794713715272944687763144839715500951955188349401696912681441258432350058362873135802972142378502543609254800398655615422749171985867020213375100546948546521917491351729449411540742800339766370612872731728715185044546735751616591390712769784317800649668433183983857735527912595989678378699395110301527371181404681328987681124645299542368175960541769060997907727941520317571133211564620475202783307092304399604312389830446099910176027914820903236059314566918447259679264137824373065063129538416693394500195672112161537607749593520650779474705893933247123726722449191138028845057585376868229697749391719702428850052849881626740934540315848617382472668840515908633910672290134120752698429105894670197547028283015312074825930305620994949131176823931147029694356101334697901960841018991778888077221410085791480276774876563141827560546072973395160064979684170256928902691734049613713706711530578418031092041562051281343158408151956431469457098732244973550100112705693492285207320135007115238159876815800900689680303035631851329806920895217305657028837228722267546948868900550067921476314507980562936561971941087607179787603329560063003909682010792666757499574303109639084578231408322043145153203501344836331936837260126283659789660410430421283378658960423798768716477594228297174988789032600459195896864725850989744554235481420974259202840600409269703405097987626860781520692118263849490276503272221198700881756080913317750735261689220002023481289850214275240748289584793960764127077767437230595103985612426863349497176942742562460953756768291463779001787503272460478294720541717837792295402476541566417941129192284011906991091157778645195922162836130837966979450517349568957164090743622700315046337614451360765390470562087700617869285644932299507464171399399920489412727847597269783947440308313586437375517642763781191258238323929803518213514895720699953999294424467270883542305967005823676654924356819959154580241673724944701326297491243139808187260565717895086721757460262412297909918589466052740887504353860488264466437572131595832403004003264045242109163148540719707343585939079588114168611948162656586938894662212474255237815682491103079247043631365268193616865284885275400763266161049011628267808314436515056323166839162285672443380768258405757438194396879586534198481961946916641057853174816619380931277353909812649548999262771995140691719095904313171612206897853959340185949722538510968434571256057816386438312106088280430603494093047145848717843403541113383455574580711995811606262982894567895079219201113233551664867452378464321175004206020917074222622262738071885049477887541207441470977403227533515323367672115281682076372644645705927724836654752398836062792093099360368281286861332592458797206820475992557457928925847338415009997136364423994168522708329116408241427407181029641193216566545070352060286547141160409903121962387629665385589593543025025349843733824146064715912631191360101312833603971472753026665593112644538057466132806047080489972255557602084479917109438139859696049653357747413578362534321335835184006443591560451948134655784017911460878031302572709493259291262255732120064693527073737845813157763030307207974764903043091464451736549643719412410388353836334921496704527813487316480741380655967487469151058530690167541699903148233257291724942482308888661531123907912407726407504344531003711651830162061148569973727577816856001232018886409427743038697636459246201444176139894537133397182125249248245323790001697563977393315348464308497084845734073157149569480667378637084477868541398685537671781379074579759299033924754091481344485225473890917580711894187432963119178456464137593673825251760912376024808657210417222400154510766386320468474893994020057998578825122390197401319408452865255252308005470741830403177353854096974711446808359691556701646261279826898165628637099483028168609142018865191718917196309889970634901940020522472154671433520545865168904335952232633669288942146159873806964329300589175886918626369701121396860399446694221646840822228669026993986338670374768071980326981482843858636141985995301212518525293166628071239300184921616416632803896442067931083026550400073969025587234867150400680196227010272300512008317094303522869120098431766021791283017548472523660265692431198828729219550659646411645065125433468383867188968713269255419880859474681398760480943032370121057682218043878665316959941233189319342821759309664339930528990973700702166493520961684902523980938236716017648555654178937266585137840122435633833365429355123107287101809268873890355213557379369434810068202612403599341393922733784286219531991018511555186866036463126192624345714898230199687835767223707411258442810482033615665270071310885405294857650879822757168508024138638780194424974190087894464538177182728355320178732920455692905556714892337959062820330720255096788979786649018052533820154889981057899105901439366277264359788887741432541804687982833009925571753129816286400189058959188286696657169100287811941826809897187451794735600732696045219215210427379045476879672079068071128298043948354666783774765525304396424658825802988027492561361273321317896245280046850662363755652860237163115617789639358859732631915531367937086229834457956402049985620571254402146575755530608226350221060778593450549447395063266465147775177028163904706155867027356493840044099707855652163864483013969501929330102400191993084446099107542174489421017598691960447335817299043979613711175349520388669186672125042050461600087354429832231653234144382013442975628878154795528574504470041844036084898086791418944233609276761229030636715613033871268886072151223620147006170920792900938447075627915790659275029810732028838440084936139353961652576979531629501084856345081888909675132977831409051166358597524045385446494443583503172511116142219726642139986809911424397761014150908799426577743554297723040248909121685517722944150253583144969355201471032428106209690454818136556731848310153693339851350291676802674195366480627277355605954530025169297836258500749923375271818002493115113810511859838896524658677549769573311719472959294866186243673414442535066986432039515390006417515540806947120253388253763417553203670879902560665663280388400017845517342367250584808105791848227083555284255129988063169886502482469849239749967756466524896390293130321493286694053254957002955190494496039883482945626343809466547856934000994814973080999580272546996361796620686056704208649095902883325938091201962325841851179352275906343688953750837735825841472361722333441497400206140706552811008266599042073865213862377499085092914346209555559678134703193895147772841300402596882670240059314636021219704330000017065961782118532537203125825894540957046088286098825674618052628220091105062584623308285861006061661923927114879350975957324963411070423458828891269457141076618522794868532822113054930474687106276720634129465802919195171419800342308309873572868063572204073370807713953963487571798868353483814307084668490173502725846088217630040895436012489718018669523328988115001048045980920529976577239468697268143398518619178679058159206653771499513013492259110455222655761466020801802719601083587031561062399881010296931222480383443706093556304800124558266131515057045196115731034816046986934837603416272865561760734384051133046491025060511253851801887245059033973909345277937129770798716090760379699267007739798004438148242991411126339900333915995790024762182261909134597537539610096480093114563330966674851677502250496469515842133852462264433849907098620539086523917177728431650390134868446281246598119898399308764632890712173077300962239148899361733657411419314919273903906539239801042978787446956031026498719666529547138587774160839434895713433101567726409423621811977855250579959221215934106362117256166518414538548507129827760139893802815943272031537530015731866639583551053376006072585886619599318718314490543723305508339627613178591822379594464367815809272382665653093466758386310366637454410732165209925838359377462347724201220483548483674575347454344678991334765238665877422623403188564794795852070070450618183021802010351411252376466306915321892131139111792577521354132710742926442656398920538685761080439795924700800896049694666253728533713339518147355041729644129352832346422024538289627751208273105951266280790294568991006264707600652397252507897144050375126281673346717572992657839575321999041288045857015322457921410794092069145502950303535568715033554583257142880503112943652759545401146065086960961166544378664982625681293629369031048110506676544482631873985152949394295381779731623917215657368838072491862151343013806590921308719837216077092245503405253666610721311725368011498404988564960182431005975804876033307910748832168583247537880864676024763469703576962275269422976730597492376322092483153873585855795446460244160466245720333749119267321967460607797819480611951739993348925304064526156289199715242115189140568041634939275298394214845707516680823556039728054777448529995818514464486138090756049382701689818412408657661930571256316751142466264917260637624361212465289526128575125618870227741774966489296515777080470531654791097877176314429967424091368174291737392687544841980196775857790839300917893568322366826732166562113672554170672284748226721728422918889042190880807766371455139649419375639447107431543749172803693877430179194740070369110659097131869282861092076705248330047603921214454182814729730300512088419356500562427794750014495494425977480204165009655948607066807026182929832916573917313199241588957593259085609211664544485516052028425549959115451062876857135045252344166679048253127251756013502745170603396927506978035957838878085155693190502802939703064962395229032083936585171950089241546423680795750353122146006551861973949511498769253869833161627756982282430287663305568757478313119431816701909202598874154231922355338563542950635958136127349209302593604273057996118534752110023311103633028328204204710510712370524418951588739669400984059942258236057500961662232012510746477792618976098551840232402236635768922928875969611176046558076538289105709051380882598901461197645180208108561447273468185054387373756985676744026907003685370964946875378470464542943649249837489684042162910603218941261080388309211283797190863753762042001498657193844877803288677297688985304847172184585938284972966312592182907711964473029041313011075323697187315394978664158589109900485539503813357792830441023262445259839588459310270491635955068296639051886004464854805600369028301542781710854103227100757644793630178190538909285078376519576126361600366166042908745283054614394671774892918747336295446870315469148197488279497894965198638062907724646798096842050610925136254610396823582998883953579461221177776742196977604365853001814715627867811013456235669816710029441713042756330090545108804748144592760776626777520344585093137371841527552330820156165358256893120986346162736792710637128728450955459571876020790460611289840884834758115221092584218134998734551196988494316258798866345001838718237368084409610194426294430394790558095245879487952997064022377002091222938623091358383404705363177861833219389585221813291883098617989857491906242049428147832384767993953353942709573773566656678079663461593043091588387347167952389679827460688043655850355192440483677374098149522880364532249035003785588231701035980652315118272385565590776632970835478900439528593770203900855243193160076211860145170962512255009386802468408542763243493539309554003540683104585562803628831548263256663889778973889195482172958487519619901736130565505199078631938048849128240733106759096964772939775340696620288659383404325700144084967757736482205463442977039794185828687657224240317812360548615444364364668953050348205501108197904834790173295667285107755352809484316132198558146215270427332388884791065200653209570211805012690593747481491030111416789437036929573097512791212086929765500870011354912649098734885645518174615161425032167354153425476148797340707253186300033888664753429962274278717207227961416850023455577361603290166025619969122557110704346752678661358108413108417597379492978696719889710025182716331927021550761802683339574760260971430223618931315437734588984362814345177819781370530328689163396481235599697294464051327206289209374896156707825367346757531449114858906241615977562937172426499550830882518782688615436046717366736271034658984097253871609567477390184572865630861135586006576217718946020824670232428734180349860872539054678914672961960605494828519656504994321335592055802539215520432348057412239756038385192996201863483077618837171992288453029397182771481369752526768765007324658290584145326426108851610844068064721298376105918505888533333123474262423639717360188228691078429542225885906073039010674438490275085075302308377144247150404310478699331946425644996212596972818147251879810557753681615656171048250595580894113746562079299193153520157424837476643425602615221270966396382633468953471860246570664118371122512764812220588168688377028458932135075581179794209043282893065058181067334890415735451108259361626880752423499910317668434635580428226109938815471751044440894427960187469022606764337297525780147537442693938887084064925738310391267277639286236396860434066029771878510480933395848409067761242654938248961848782847233605933782741543604859678414852974847385297960492514805139506882886494655944711066689469284090710298780089751047799592844585499358419969635547938380630366170999764894263360026242603587706908504279944256872031243194454100835382558851020432104828874475624190223315128543940805520020153821143979391064312840677387956972974354032559158558177702552471933206113599292715572555648366096749919768440474116146686026147528891206998898189037695913702890712764100358116705775414924687554584991686599753371058172956229076790851569197657979213731473451927476495569184764059066509211197815715984567080134391041454412745516276704135468930335179526618031915474079415406410346804758034542558411909374592786325129301800942109076958778348207412941624556838702542132488578196249202138330492645687867069422996879426086806377493058126486198580812240494771427171173246765108800458535010867031430909819236083593863567103639686988049531643879828963251012701431079827957216973010301822895177158421633464674227748090899867518252649074128928200002655195319923137416614981970792771229753816735334972030898712997667596868083918659659615061227067503458070671159002853234726196464556511426798432076448406873140343763467756832585283032734696847509814488640308764806884347871576055887504095921230345382375549381245313314681454948461285734069824729144533898483491430260290746542753194900534206011329185389845151990839804544709580461077947101032318501563522200042183566185478591506809942963741071352107137115719845635252371367700473560230033920850516090002646212792387176225406558702119643841302686432476796313971911043987756747887414870014484898808402015665661321916222511364681345250172490147683586348797002575971727166281232157009992258535008837384175585181013398296030023779982881387716145201562447028123133796794736974730310192292253527417323387941726902004859346906165940068651519330077555665468371606205278268533829361466314484811683823467172145853069528797554922797213140108333029275923412685541780993794919886449794112598758059945821754279867158672691743628920715542414744177859325772873720336278255082705276209139770988311115966980378120813371102432503393656532247684800134268707742902304748412075987106181338671014293604696903395170020133750546936703829053351465977173282196782525797505630850455450632469086475191303287132143809770420970999029147396699272340973575022119784768977104908857019291153657799214145339786012142494897997458475668460944626371561053568327355606082936309067307116452793553085644318811474044878058019086736124992945029088163641302541603999836728203552589768145504657238403919582082266724671325467618988926927106987753012646292855015802637108506623793454224249656710082660965229275321539773747127574187104438116955352528044943102145580472018908823301842614145628787886678318202187876716695033161604083511763202460468483715333102242882675281473901755959279154413230686337919767161717156400308189004970646190044863622415183005720688740922737143834331513479023615199966030380833894510504114724496491900673817886739287852670643360366744645534460333396325489585020483853518682601338040533259687744361950609415125173974729187289069301742159802262476447531327871563848949965868477682794342123562104659150653792664063973404990126888477429736604953433701449914724150105804724598851455316726246884155707507204299017047220363812781425748749075880407088918320793280321169448235234112045613081072632403517204249009425907502494413086809657482494033180545039311432703517326404723376991313348059303384800816213863121247960817219215259158647998463737384354666115351351048521457548661549690717429788093613514809826948740273529884980017609265538085738791010841547563899780038983432904518901599021125389570083825440189071263225104626166397869986250223772350995761474385699733014779375563744861977891551805631251854574056670042228451443395864464326762082672754534651298791891455356934452575200800348599644546556425432696295224030987024960486548933398239861772616829203756999677359377264756466268922329862767750724877584380726221282180247816588583419542617899897690499732320033739773181875632395963795606343035079715785586819508311143847990780609799188445941084352908698744508470588891849645656797101959929956210299778225318569171913252300816102781422156388841576953742530596952446922026462976462491361699074853784093376676737322818504143438326533759317558117730750879450531058378485267146417222544351370823387582937833196462910476781694016478024044053245068658230729988431613898742989257194374313058226122505374807373423956522480018213141106875120331792629249299533621355231674552202339660824719693034064207218545403532126704275981140883838054979806889289921160865114159666061145811289946914100248501272465586545221625201735622464260010308598993860293393426071137394176503557033976826527304206819439844401786694257889037429177264102905799099346900958632012711958566233883070681848270708593555185231557791188561928170566492377777767265210832050790212853031885810630258557762004083417756616741231935004894913550048907370473839970281373987964092630611452808926131631493021600836002588168772977861068525120756478600496227041588813891400640866346038611009866096057860807954633607956276281755149697349863532080531158893467719340406919001083538408591220031645276801589043846152345148178699296482058299346291124143533225804430097796883022548897751203277201822782014586952327131389855598575956513184997457511629642612192495070362045448902530782045020545498892950173528576832288524888990286585128968777755657430903095922478812076567026110007599773026924781621522230127899122636953171631560971503180056253282764673719769959408250455152937704013312411227023943996881163122896935736185084987733030918874178919764491909983763810776005776230178411994651628838577227817511582348181825149026346300454480102068979146017728419965065885102240053298930554316330851825792570977383616735867237336771841444072888238595180547041740677863550451362791453922750164044481143446487581281113580999648168639843974324118122948363888468406661598806306517879586533427827469873561241930653156626486662275992163469634126705973288001237888866319943726128819593410153260065229063716692300557255042817001692685797997054930678092219523020594515431354404457340110772484731610284941809773738377431600157135933493437937503920203986363252165680105399171726858754194079270833992100616399158737743743208424637805960205724691137079696134462957694929790791747876379958432052721278155304774907810465745773998079339555029641443509574596232503020378816744538774237412138645311796604106619560484491090819547645911805551629466730968439586610231237813842184245966797620342892871459432151140744809837014662871578775913347806444938900158003259662965462601648913580643805898681183711044001639369895066099820009073536946509074397982427521201089316065002969862581566030719632334265110960055771100986416898199860832348210266374390781236106921599347368949104386161288365190306798872733593540561218958196210098114019783254670188353777070220490188343680868566154198232751200683618338522653821702027449350872928244744356698475044562382291728555841474114858941516187507939540551712543457282526218646111865493689782919958972088789051503929369690539460939795184768014796647069092644727991718178935954533646472376343670106373963832431918776849622940160588102447492824467589627794155572101859190168438656893367953753550530291130640445091435028728592579721146706812694826257394983689682258535795262363843594552214368239442850235523080102368549190853721951379970612785244812551281148046401969146500996396456715301936075405674270960826601999128575612601845663115334418294109054556477364194725381248017291990269953979385009373217005922910174855907573289412586655756742097260351951833669511651503309416142723404363908959399688946156643680526580281416718230611896060814801760500469875331741271554053227338692239310927978282479084504107465196007648009505283232549200608495176996491160736512092993541163106171835321894185087487023632794212766493562608962866915731483349424819885818467586369090369692811669303025211486126090751796939988456824790269649285867261960124487955692785306993186747072647662872582714493514229485017924624662148453255289539648345192215349362815961221805694355041861290500199438581192813877549408984384226348638630395233434223031013376829481040719597442508630860779460310197628989777342018256124623517380530291891200970012288308351574362293376322482309044913264619110821955230817456831160308086935348484111882937752039151764955260446275721964052591478898889333280916833901394826163194220518900111068707187251740867506146273389614824206835945575672923750767901465607670254207999027242370528770840303562850020225045609420308620362682379457704476814060304707307763198883560985678033262494281573578829915563405183870118489403299033415404418830614938305505877712235892722497728397191989448495455812801397294462281366434210731659862393319887022271904677278827089192417052157324652036206895427480028337842197316205806912872369897694535027432690827817092262977928216978927837852231350502523503895769817328813000887762848316585321846466976299011334156059167159979960058647323187597976954723708604695427355571218411916515972736781221328065603710901995798397088425991401469040337533994455569299833223157582213298508644454329709009168116864517768903760806436766308946031463418046537597207173110838499872274766509392330727573272065099140937778577273739476346312050194468154073848255335009659786421562983265941493984824615769897501233357864723647533788170477520468412324996572189345434388800974658588902333085152644930165683528687704262032223870298389327176718590010767225488488121272712599369722342957361767144547301308450682262738819735073585158802363580892576489921154839479843440038756722606029874419174875708978948572599560397414381274637126792153073338157013272918383486137933179771438873017542046730617739434626519841772596757148373890277186339037406632632049054981174179504376535176851941967491027081690513700660663257567095723881942120790817208411909063792297810090729141054864674343506893170872350985567240434533042198061743340164278248211074775210204942503967440521312913317083652380894782615337998021309242352051131696411883980223738773564838359792066618321336385230716036952831319540290046316937819443932859512513089444892234280172141076687045490463294393378694487444309756936669790660260184605780451534238438239920714953055134901182290905460038290578049393066723639414516933714942779689844567827762942585108253108669249483242409176477837940940901753042153450872811980284985428910323094917301657019735064678375209078183783663754398307328637315531460177841549936106839981165957377400997663477853531224300236257645070066608837839611767919272226598153669718101011355552137357801463511508331109255070730472364616178861563744780563435962434695405598796429808446703688297583394677312663686309864257334814837910382556519471316924049487345897965215012385401466995973659657144791432859460015981857986534017829793342714539891650957723605179899115459765832386301798581840613143603007256989831536541518281132935013543662548285040183584700559043556686545658525175216686254338654717968924617953368775941162297925057705944639671089191449143596674626610427431963080415982923117390831869942176182819855784244905954744738761998684369828568260575786125083438113352467852127159046102391288054384967035588857574417893921643978276719006520804062279563316753742977895559916946231419605879292596061811070482390825175969513902148696366107637321347611316916220228803019672809817662309812473110019536707140294791591528227060830682780278090004370868182098481783348273292424039070872346379834147849213549726565152271285279436427465022435095487092363118699234130848989357402691129982795909876034672093586779779409609068586146836012444318554057167160571963327766909218853842072697299105456277312627415100745645387028773478469332608548897509937369516802889883089991698605248122919353827408841758605308072069998407885769066995966827877291281028303716198401617376239739247351394915135487586651471535261872782938932767842280650482672409687394215823739987489690249302840049725349728849420968494221654158258571386588416020499938291470808553917232440998627043492309314340613786492234010244868954402868087774623462036089032909235765887872513473741231798083316407901592629827564926152372698886400121506164596204294601543320364729219138602570365820898047979309435876642353582232328356661066604478616019244155429080445458426886228097768468215026939287325071499879509969326361896799968813972963928056090156055236345696036344244625069807878061499052945350034618323144996236762673755552844805650095758938103714989232527010720766037677338970228980522372187587170360145556260621582989982335864397292186328500534856601120975043125663661360034108420122701706236493345835102580797961395263690787494932887952993471105021424193345982086706018310700348448900479342578724854579518100068786573549874260524370737899070655567805712459651830310181573537090521795714736018224411916074034351019068170985118393036955399562280029597073305295939867952073122133068513799035884768227305225453081396470217482730621177008649146468882100974514845461931519154683405317467052244902481404454356648200245882354568981091216212169553531465637609985731800408505940260635133406340909166031859069538638994881986462221599754917669740005095649990768192661370745835002599471307456871942502566729966166396330390078858655214451129784298687018521094031011950154468022237259702319302186216150872945277306163959456086566994866844090569401992803428129055717168028709618655131682858324743540207498498729414011082532343491718999738682821938652222904470927854067650951839390872744607438390692717447049126977206879594234001205805134559527131591945832700085540947253497005325424504185335752920868341896910891819969687155561262038472918898932633045804486395839459145460759635353085630168998255188345502775446866153067927291343532699053346655319789688270322445038640831221722608751389253526050188886791093318292813747457693850402574524230957539344664366340125515218881038694553626531957170545993069962309177477114783557153278916129254967476641790792719634326207394003283103233631840795484468721604426936626711431842787741296682425202716205367348946892955661782506692428775118215002043812835086215220145768336443604002266457270383844191666431251853835297061347691274939281199170755335797671913523991155953638363428768108193202296983021108806753597007571288777899692105250840298297969769225411734311930602816652232824678449197406828574863755837043624457207581947147908908990080243314284183806013394644927909689997280123718105423653298722454975173674450421764869489717061067121071327229774878764666528675364954887831040914079092076871859872944385493517910956152309467342418399916788881260437471690005665687579317006381411260660479228031332072674966697881667936507029952007775608017473275604431973498992851758564420697480767932304630659492097457742210060989443313404484337724486379625146508532286285952578791876811330860972891612960741717285960877192706417810576826983942777805719782336273769822105576065993953066066815256470469695746066880960533920604187059044483885247493582454677688915654562137663436213846328183708111872029996079164820009862624315652616709609477098080329585798898291027281125802788960127138214133097962838590361221083767600676018351947976218587032252257657653777142685198865555582651473102099982327875627982477418725782915224608244644584957169633808820033153943489913237969859906422695474628232047947349421817842615769103865871430397487069647602842995361641138478675927261714864400502820844756760753671051192658371710973877088689277298223472091836260514584694546691030135052905740028438418483261685833540810104018390551018088329216744564662971512731339610311269712643247306946504200116301917286268815249712257524330364857989791570427343909632460220942156944403472151876839005012120206886580817353507653110226061645200811248526422992861732604515533816627988177402390422119127332396447559813864105046256165296305165702270955617618525804971620003971403199198480530253331926819698024769982662523119473910299675390944938650043148069490467352249562717621617301285092480101234306622318221176685268155891124709632956516153605004497732959360753383242171887945870537821712185569799961896568799818524150984742570204077786831495651515284757684290853896833231855944608108559360520229757490137452157713481235580966001422802739056738400119988516908354452649018291367104603699562832678724504407336435809674442919276436220175842527906263923458618910031820007554554252119859541004351318261849429033187366567999691834778480705109213257770386825493652815788493345919230064900069469306452574782731341102651805749042831159445408423287668964854966430375257036351890003336557489910151655382000241007360470061202931623546378998230209488072348833022285675819920850417183313824734274086147992395280425323819807779484616655234604713918890445737290315767372103030051902089276413972313763852411497615497989934303355265136942733129291554698093289133841566978178527177301643669726186055929010202522723738573810965911634239497814108111384328384102219968473070573547744797571895590962345846274085371824957451979839797422021133390571471364687790212350082941245697388361957859785559625321357334437380097801014747141266152938550002652215231885009484390978005939015676169273839459920843322260964466773677569284764344856483503795395523280178376368605866024437283320262983774476479254735903838946061137371397537183859194252141880935109301598179393025690856924080704259599943665340777023278451649243555214714810500197428527657490573997132005801540901385077215465092592226471344760736268765463560068097583555999455419426341188013037938768165653162451845510154216611430255228945886483912027142828090692128122072947177545592806124991119422690420215678733668711950846459647355627494517994910490979597123489169734695302020588299783468328078091747748797663254943860112246986693446704459775452408549034277085072309925498781922132210013868410985088796583526081567666857518445740546291105032980053654049783828831393888584042149309295639937381446049369781760830242010954040740281886038542230641376492401369096102077390061018670428249322167668603867361282194292756178501519542798284995943455638124374893142210742542306121905421896825867723433248570255128261504699657152171122764485988131435306322666612491710193645624570918451582957455704486639054572910120017176191345566039540426002221472944154923845154639425670489546501929688163232336156039264255710134998880506209076907908619885393370539105736686401916212501674398731409035082680997351448426779984780899875086207665858755300789229481352165454233843011820304435517346332802351518039052967148650638994740738499555961526609108881652259575709622285708995366451282678181767693588096843481744067666339914866659860221648874603431374121484981577682841110959741005024063335789881812219672716130331698250848181779259158311752222364129215177174749399007517876367056644490533070962649557827957732057248621521258991449494823772201326111694038092832063703931816661771413896491551046833844480060896612047454456984723626747361005084695585878286831368279174686788211788272952508015830084445729123328697782376590831252196161516493818795441563986424237704589324397330020137340654535671155438771440956567603475967921071484279188831047052271034106069757510388793267536189856367599051692460824680160649823758015559256055478619542666437683474997571195157448262982511636576257544663937449566634299943946900814272049587028853428897388409249127501987356703962583335554123126301413532319484666164341197919997075989742553983842053394882674769487293314153216723621448007747914835571129400330398067264641560625350214695055674245910160411590438018138473425119526556205816938719901302371353325803527761704550111634795809581577955828325175535948091047044363782282649746384216240653912309592823468757977220038566018228959641633644286703079645156935301995772303673368827791006109963476419298158185934910749893182135303337291523732224402101801704713420869827436092954231293486093846178087208978422108904515350870400631670958991388170234614346919404420433596246290043570490441931707057899019478068208395822307099704079625833908558677056741864282265358110943364453227989413965220220126206180366863128656684220671592766907628412995932495137520133879443412204601432231561018319302782300498565281384028901731113075660524616396828152821620767809930210371253154596080886050962496436598371246900838177698452944480105232297175115668581506809532830106108454371865289898537944879078714754318560911986661040712367729558924946758233496111054570032078210707628826638325959897356865649546857179851513472098874575018823902800695436564470537991957735804249639241982084803362387381245530058514543563589199292010975066170426077391167273114154691501582561874376606945109633924867202192812234133336831931086947410844842797109701226615693291664091655572974360072017938433545885061848983621355180359236640137067993622779103829225844967675540280506650089315101637221306760658100316272671220358893300540637356105572639663951969176911268948940713760707870944977614261167573529959481848734153580529745867147370620510225896377335188612185383580720098606067763733681629898253610871066759180279216115498873522668814871630994145694051127311523903071374788316489813973017239751095979142235068167886357718648532606451443608847726251239382056166021758857483278738585989491646933808197506994064123230888511762556780284559489726395182419593560829516450552953143101753209796053753383584933965175342199110813317237409418858861109364063283971535420274072721958220823591074228381138502002584062610588451249130713909812869877562718076554748152730024899046628006323827507727357240954508802041504357621049200652535569159563567472556425009904233828406634532264163344367300430221863033728656856684259228442438811447988214764602164771733375571482103294904296711665513479934946344678836555716982446467197180602455366917245588184712582508652953620269858035091107441214487515088683351637759688439853696268693118042765616614233628158997565744112462955851177569149234011304412823899468272295471091125109576459469556605373376835353837784409968784941830419271465433402805612919179184194337165021725239022905182057887143997541989021556795196943229695037820002899200130161462686499357575591027589460682206685385777943682730936039711582386480318953320978788282842968078042564545782563463784843785884468787974105698433555713419997628894030182165320818820501092867424682035272997743609946198811551370416862431650317705708522912781964350920760352992002432208614655930342889107712420784604994483220550901828829087024248015660188073848946896098763794395469562762161768996442905704488948784658680956561834343934379433323491296778308580717330390128743849891844283331538789070761527832505174256946564137573197808357347976334437740774731182666791855811876498523425922641029779290359015972448691653459852283681415377563863324877282617476135302214969656272069379599971415407419769004062074257790892148553953824239221393548067713698093679280308388672771856907537271766052278366805311832277106052037312072007535392945588878527009420000894021849365480981872166514083882825912748374328878572602500122926399449088968201835032397396045428331153207269318897053326271357363264988036291306349154271649863074866208277754626142848409497718314487954181239384001657821377294904646512843690852137895464927554995764453706553715692921864650349461789812740788751851647283556937160978791802021368413659722732966502370968024571071809151534970995893154941082165038228848020366202355190260479515147584106982956053305637257333361065738586180267625432998663427440374945421562409955076897112934074334503613154617099286004424771683454110640929217352114251682617682304567947389961795703647239048668268432957178334782519205039938130213607704089582921564846475401178731507832219989722832926600022492910702398369275021555712197730057772818923992671090925092070122107554044739930437816543176687388792997983553591061711570885495089593662027793192705136471692236288606057035534502557143818026590909408408096299449107478430059961162503691108856657662392593073662818901304479350373187589447019632799776677242501948769051147345490186790817451772935556505726752049436970513112791102956961596081511139938140137187318862473343625544574033380593657308148560823022068527182091692040858862545620071198411834675829323182110743238025724426010382456557796580135973881301426561586873384797919745764010689467617355858227974740534991622721461123101188971916105431086850484765678417761496380351005664581239432248770313972038029037176510080007081239562843611255114528440377783594447912149032866172000544051295730339840935273937151577621097207254320088583771015410038991960724070406869005755092138491682965805288615668303343041994844103586378876415122252815714013545190911474905248988527680503585398756221886134998194461121086324027451364371331440115065153025786653448079220479634605639747170249432435599875569266956896853745039410379875588224117795780970531282480899137278755335495481843279955573371174454416973083293761294943575331736750832311066525658959305144523760956255851283238887453807675034450802173365154657724338601226300262408063672617184054455582197332291611506470037701600377453961337250419585271420476155560727784526290008759196188779850162070024557641240002456657602975093039599629433075587077916455325073515672544456278331190866466991911611373235954202812858216725891950080168966161250975424753798103551533701523851965525075506745458008883888077294415121372844096124050997741271424495892581818221476378832378401072951918321924785142301879455240286254920734088575845029985463516436293250027085905026516261286954949067333104585005895961763177847929113492201696837897799476652969404147198864810112542059862155798598184565026110194305093000282812588475396451816993282443771318588128561457579825354518019693976834622024155617689516438169828683627571809336115631915797376368421883639112787952040057871278917295110511460246349754029293228441394434829434177851978001943300099451106337977798380473906798327362783339025142693915389180841387029086514517808048962407865688486580209965942476274340530823111209523766643987119841991065282421863973538673844021852870979221757232487261423117362650274183575451188022542601255120046454981181703834985374389491078586993874745596017376009703632348152574074768524566069292961794084385066350602375624057811560748657043019671258159996842824897064669963583234588700869026510950071373723170201619180310435592306729877903662316060714315846065962827055474817463166077855572409778397684992394568512132741481079952776588541725357355408305022444955215303017844840756657794386392162214745968408039701935282721140282969990911446003906808561484932331126088447264485473699157261026204610145660677158361360846882927986557499939581585243087162817034215951424476947370966459321182311293789081890805132645439448271332821254359868907702428759695032333599455717832530348351429361283882977839903726417829651114178197324506375634529593484697820748011104522100023610425496175501931069110990230946274841205114659664753717567072050901293998423566395267044900989822822438266218417864842877906511831509745133055820901605640860452472957649451000142091095520571377202208418871585674690973107570046848407408256911836253497753825470125340964745643103838153625267891103748111562605374234747322562583524144391026010516695582409275852914579709547042122824000807342124645781505276236127940488250354491668503971933888895672595085253247703882390920571593374616138812562434890814265793887985453869356270860551181166727141222228136398034872075199539000800681041754428897855692351202013478056471102703833513827422844399288159628903869356278216323405379772077483932208578032266401492791730455295270976872190941632192797115710423249045576107107315642082754740426860861327475406022515908562173902388251142894146104673991180637069400436811768005698769084188492860642168593624887663354500965361522561220212632241217406163989499504723744715360117053003819066666127861575392906524201978413235153389057438492845817965221806660478540106373680123304033688301271164159467384530685343314392866307203399510357869238437936745296413847649613924503201102231538335265913749194774928064774103781010633353541513743254878560974206835487239513261123466256603287907801740102804590931937117859789540716136180645646176877758038359291486264306027208399524428649391320335410521129243590568074138241462137086726725391341128612852301764327823116763247754076109241073619659409820295169323985828973915154443686297959691905605125766307850947437066808755914790835403320108656805228049221233082690234102931705068989896129010148729681894512181673855734441616822636706475253848309258055839760873386970650932545515162847324752843324191156031376092355070855066903912115606409131134938422521222386505450024213316948630043487911733482376654126662115719044915436299017058748016751496685070239506349230188060667400901329478247989889453616085095091279229494672683624448369192386995483822750426699965290610513005965885631325419595804726856183354197833703903231275190243133388305748442375054576853238112682441819096508921002804036413126542810208645235895891792585525624999434242353924289502367598035449314036860281945849076865968819816968044834453957428974860014794281547962627573915251692911457654851079569099968874157192251697718039525693374440795944971050232657985714709917355992657194614183416805002155652837120051772637347255997745540414600998201232043021208519111643530886782160366279981519171563626451257898111732346395664198710735229307828268751003312008618584851651873307922257553514545844572088050392980954590361571801567564371797202473798793357388139235435844699650552523305936212329747380430404862058335015090244185622872648065875599980977968659882439562091283865571830163188028378701809798799407098204352290090601146088228821699244902527090742249519774471107121201015650777721762180435754128305329818022207621186127509041344636697095889589448676166401041575953452545303949643738620454867219358735354300817899652218935769500128102395274487554913838630907247614692887966610980281893207582712601986073572178553900789825500532426145165349566289266701717910080262234683614257562632977900788598093335525062126117706781126826512000873100324921532078333890564887599253621042359690697428137606701566705367446659074586077222722736540924787718178118468304305139545773417491412646567324763747787216248851765294591384254152964853793552785902550230442660030155431920696948817106493631527800388492827392776040151864092006752295794064991920124169021778704066514687583504519607208714899559887429513645389143480752176978651823958161396329895042708448133369341329373270123002911874019872785449064962187854024319122493657473522267951759911499159146950688536096158632153795518969894227931965410781534201572013711628683679601790498983007195916066838139167222239561008808459996190602866305850542281899791968855023637082852011908585536077245782706864377450043638198708193826481831816033162845048823738719635098713021525970237397737490948432837223406434792857458527701073077067296611083669445713516532609643714386790106765555140608746301683246696924566254332685497370941760291965860084223167751859566690055174931754187015610624799515125353853602249114216141029519668270166435839876313736459060410920821931480586800290578459934428520626528919386231664476958691995293029416433827382125692300363866626467879024154081472040074527493574563931601364176628240740129237871625384707433671009103217509467677220131088263579505539680477952458809415070157624667844048208132537780807666497432063505627795973752457313770039864676245853995864536526073311543936293659367145730977110358703156935121363130835556132017370532885090767685836292471203195002024712412220937845681551405979875631694883735106325208093725215216056949734164355906666334856927176126652028659360978186654893781728769392719076381066915839397903813895533693019751060273025333473025416846047463571744350422351307608522778325162833920039468750163906610586028112084005583837303291596001023104939329025407182476250598284743742162622870449629978990166687522076707839050389195372199099999774053474874799727383219411072880463273698638005577451132047745099360266847874278635690958957082065370784311825691110561298790609240303350194690649626688149221081318877989464163326717552094359895977326397087190316491534518302625747357417271396878609329515027609648243007629357847086365811869151626603980080955063034709688678372746940607338147836546408905996616529058933210536776141824484489236642445508011759651935436753504589368216219242802530764813677640137211196416922155115989494439119455643962657814400971373309714889281301854069586921686380815032340915631163038988856469587124248595389380695579498093868262598601549350179423336411777894656229724001534863768808101252411441398617968317226376697702094576199556260073763930159202355262810382942437470799564742166294210813900282613493354971928390666360578884477165708360621687311968090306202574705545089783035710368318879994876631358486594933485478682348677491428017722376561614460958665730684285717862014348853996606263541998265907222652178379615168135661246473078466689315464803700801682201932153931025390768760640356914940575208110732013380409812944459220914386560694936221785510924104807659403694683273665492455857859395453811484624495493800981391287155545556593133378320042884947233158908916892088454659463716922910708443795537903284105572655124585726891843559582766335388268080574814406979020732748977244926824996458590299380514438388254922682941313610347228694520043232874176540452028711124557837545045059853172209983009993041056241266631097343034994934001289716602513657508216890478448833006928695652082759738714393980432580564850931261691580059734094378054950839833866969719675926761844553438891061908510537364075490247837940973866363071711140467051316441636951906771040364076681460657587806354471424930383622146287327261123368293683627066843321328600624444043388817173160700063863986784376362488718551480590554564366162400468538769844516195728530953865359673173761688683057083859143806071547085127908836107977514855850387508028570157558427406856089437462970626596467106933627590686872342045804466738891686435677743307868670576728830805233765403718511878994191898692753006594453280023013692676762739344696406071321159601313973169048189699243597911121039017555060492289839861785394399901668915547725568487988421058642284725836496199381408763562468540904297970309790867508795238636410643119897652348177598470400385091853736038738596587245106161974297837401496550342836895835649496407505644949849840159747996975525656054445263768535354978726323551836208726898368565730586047864767747410986213652191189916673689230094123153598228768824831175444876875276282281325669657280524742159568835971305695786487591444082767957120823816444769491141982698437503092647997381063983004296241973730772439214323740979246563632854792820022899136577370795622583497791353007372887633859749766862213477412095607231148218648056483251849749323467615312321194923516543087404983952207296426799290153890148673418701205801573324928910197062034367659504884067567596374932898124440754951109380050496848738633321757068229430819282799421445711102242078058357662502568743083913543190014829588776285516365395836217795376697333058532525607360721892105807388041776215205127497833862447520318772890352191484651508593740401626382617685841022051715393070693525853912815102551023341884933787461154286371782923074774711326389122354847123647500231536986386434616139799323632178521157747517267381022051097703288283435789363875896004383451302032939320143711457072852883286520919676895009033472368450480546360784595063156209960402072539249518578073471795323575550997638198856697755923088933059074509672105273731075192384372867501416190819772354076171492014394891709380002381115886256492527760542101489962793350454119873774940053923345872152108967949913669668825795830921388100610486464327770448301855704646339247902891979807405757659654037274198261972274426751442682759689849980281714810837540292001609425038955953861135621850343018820031043858271900295619624517550505513940549348231145808216363761839339342432248772700782087109987006651022608844000637029021314347216698858421464093266969768159035442046721726759406068604293316352806785841845306480173259934564608483300482659862639153028542098692593005595582065677516387105124777409271990720548548053422809044190307084081014577360487318942026945829959735672223310206662414235468012823470173692708688463088573159483547704783181891918314076005481195658766176902799279867712588205666776764623744377199841769616859325812500995745739597489426366167607275273477342262117120116586978883490441938143028428593780679682447884281425794637649475914545936220108278042985543260320821909686343327402742193894708133784062390492519605416773031377497100596075487618378298910992864425475061074792139051100141713883318566977724769221824154545514464315236647936201357178454224617854389348519905208850635689858484331268102894103323317227392488603000028719620474926666083096514857624384349669214785180357324193128371028731747994644928555748979321311027809922587065374945527259103924280793125528060175501406474967604863402132833628082730851469680294718172380424908741648059225969648443891536460379024871863537131218009941362342216586968407919342888813723353962948400919707197421676690247629230069806122475489214580670466259249859516363035219549450756859538963350668610288868013655334704382357968714332851991982639573572028114425595983066153447244631087187223005913457822857268291200967979534570663620437470498085584186520508550160516352298019914869773096662912474947259939349542071535346251386501932363309046730671656355042311462120852430176335264210978241772208738702123136725807089600941331084038973808287141465277569222209906602789085226876178004069474540000915747354717896102884159870690099606934648975526158487959818784343153463167473425533988704212099018296527721329119748458636006632866724750595748044933189079204647142733707410243802612844236998592204233682251434028362865424938145415831396127177384130529620564033199396766846273841505793978589878861158969796991794272120979239998576358739237016869865648496503018016575084049717384690514800903811160182292307600961874370680192521995277971161582055434833859952232850818619782080157384686364485162260317984230631805638299582404916871632247054550396565162383485257328108680278450915761491357519771897470202987754033995884382108456865638935845493097240741187689222826912254071864837607509455168305252375861029994966102679127704434624923166481802235245842651594618558807121904269462530841505747759257851975410088063246943098218388970625324619147035019152239068522379212832832759768839911223128326282304167193893068894878543140914669393289528785447437130308725944650148714615060597786539293205516146603432369651849656219971909878655283980623429726869542934062613335044476253294861241667229106564815642465600284106511366596925938619074213814820016601351127674566139656224263953414413499856874948804917760332448497177274472764201077264717451297365740161523263995435888099409885289221590439797972129334130482730600907935967878067246940803599144586791280032206068400512640588907097619230119051257307570706573900768522991162313048024929291931501334136833599147811898043800415299130299692343518142245844355342519094434960836344527900122553552514040967713306053064102295694692439874097900245194856214510362879878940865705657170781526615478572472524076523252848960269159503382802354204875720306116586260229057795226037248207196077100801667540867306335837306737742350776757243590700532837305096847651966629605594102045100940942604361328248824690357998417536672235331030631016732094665655023676673094829982866701544410289429649713345365477606660366657002828419982855970226830882408251981890621834232002258613815998809420804286733517743192580093456858132686620210359066770846255845799962194222519758170808055371381240756556581769195689621424721830744069647342834450177270054777393721480001011060501691516641175234764520170396802369639928828512746806001069675885488197388548326940214770294343521460150034896110092743706450782072907095552702154769749097747725534094845778230230941606893266492157651931633053022356388203380254381780633347397242107566900862882295135880470761760910689676415829129101824763440051787092924949200778380743347553236588039182428794790069868324897376229337272550900319995141054884078416798319498615003741831035245412591574358606969284228044886833526645653395545572025967470076070897978426359566137910904734268144322307180770782900243056183886191916296308010227018695251216318263596200248556451375089376558333240477505479943082763918352806633097975677087160999329650420345491009205685406704457550509927051754227157721947112176846293648755285744765199868111673355436893347572426081509612941196289998795822417646090669313296591319275972971231852618396751203155810986814708326485617081250378256925795562831046118266268116005605207859271283554229244350960467262992120042560401362687616802181260250733239847757767998287382607182010809982671403766943255132712633525750289391331630967015678413214429707926209220786906117008315443546439174962281862656944490610508965924930058641234707626718429964838443867652880037673650633280474410434503381675276994743562033490080168356062326772059986295378212631576888148912269704308899416038962622971404295889229563243199743315462852137852946038746706889971797301106088091404298894324200620638298422806885305402404784716062500413406603695721543601873175994556262598362897322715922570044188203709213707598648338070270719533045113311583321606766333605825334959875553128878943655516186630185544939456875347346786148590357231328373998663457654767282507512959390604858473031199489585041801322131837962719498317713998438738933842791512035407755810655724158555339760604639007553123025414951888288111100138247396788373948911025520704161561916521322536580781684831686733447851013589083312123338311610967813527494999828497388024028369456071641664967143685827594452564320589007340100542546204667192470270595893362146278640365579715393152506980511734461069546658942663951943980784951095312044973513096649428444491247573507128875687912727364142187591005056163841469733964917304999281835563001497945121768690057968906977861467076075635793425643136461780552941542084596092641329214737499563168099613724205434085605745649625354995887418146953890627434510015904406035360667944851136693284149221231202031314999645642712231579171136361743895902955926003264241223790515822560303514480096106106086493206886183904792379396816160660571968607440654213795507996176493408460051809555945947796996079041320323089430861011672171953151510750744610690277351312378907757198690363417880042611409066173728921574722730436166896413510158258542325352220581578828980627240298331394678956838681057782797379548157566861138488676562694029496122125698786764693076493536334331779498218373317906800456450401352459203338764082091187490526572435926010410491384066682108765962868602661143546049942098506522164158366645960520252443043205822851597466458364157273976221974753162926354789181434967531838593351456473414960891683833301961497148354465653571353990694619529484713850606958836790194754332299917344205956949645171452611537962031660751085648682270204701160326606049018890096851303341111026101812919310561906107463099684801665404923785675423242913177786183477303818527851385300478549416257226328446223828923854423720425353134066684967235492821373563130877763021406261614082895967905514498547179845642323790591444140278395535719184510142003485564602515793170461231849688017763578362518575939498059462367293470775508155346386791184357515015127121484423677350693517292203578585534187052883316815596792293229190931728443060861771267366826700675248964198434731979733756521885214240591779373733619077138528927936465058560077276090355591703308952951700599664655026170593788307715980943536266115355705558447354352100274652344457882930209794921223425734283129327847036431165550336664813233525129258856339652526254634698294429587638130620985787694651445235565034373488733208299690270651295954316907050572859498192086701942581036388264850653962174459223337871664168453429596709221712015582086948970839839072489415925911243044372147167639440533434702850806350026678887937147873431587501091523627057811212125262766881043678611143684146622754945906163959695275834624494084822175088387038668460316059556148244567862344428129064304654820405130424468562299337382016321985240559398007213546347464905097604059233879617595502669192220062355888548826870116398241451593311270781321440868041370765894358421847359305018795285444027964244679017542048677153620167728475733404785289592765846002526934078465308764591386985517798705068448399471873069368186649989248401576184407775218319276932262037839260057932799000878211879445159586917122817134074687650351530061511212128289342188716656554160980801614610269074551223096368665400506377841199116028689020279116332075030951638775121247341059856761679305289185365720501756467981827810671546752394021716015337124829176566594734215202414993781330726100379047293939387776498535337409916281709645130492615255474452064123653100564381144072427820485616468112067953902684280091705477128940435009727193495239218220677647148477281786265275879708782708135580261560046741536207803154186139665422371571646627756204079945452362789758038023871889542364043189682039111562020401597639569730526119129593713476513404966447255082529434697486810811151124139182136321276977947742214234392463815414245425944926659267984573203459701532740978501745821434251861961986745729496198711691575120436313349287083980794234811491252476388153736179728517437750538802551691289026886120900055376185783929843578835214407451595878220699181952519636535042351483330056361031171172264495053227497561236702046095779608567818118429225278651760817689569346961959033570594028775754954751249095154763913722419270506388785317816845648981616432600320685231303489344888411146611741214448010827341215640115768429328029344273023652740477073237428256105347761824438166320743630489129842526455171326185948993637496724452576044692899740532558482223285089243198275446932911888342899287986867000527920853570692432870119951380118567479131685629278675256151708416701729845786941695215602182947945315974868887791851426417135248215158505507443282289942839039344522810470059604027558643464552482095731205752264482845610094799198068882650003065689315456242751625697341693867904441420082841715747855039131014422052672983276923322605988050250073846391474415270909972021515322565772453653041056885811582234744469030236565892052823683689464293550011883003815376310848964373279456749529217082635323435596780471099255639261883067168250879968035440722652685712571880254003261904147743048758680914221484313488629509330968374462264079543776205498630352452992920561036098848541904499036981985476732558274816428594821035949985323003035553144867038216810152795258128433517793975222583889246733886025752684498586325357313365830137717177235601114986119536840227695983934235547821425608719348017771805042554695517567951854071193316635213600978534810443508791172916264206361278786246405302533618866826795744892607125009646374378374851473354128994019254932290862437495125392107759785532799353179737448563401257880166055008853180290548993909684823216485968765670691546469372422745047547188099171205326747391337557013965600535829934382708347342355628255123518291958696154823699187170200452282738820372628100312895882686367940009737093912645578518645727034465041424049640226964638206618669469678586404303219021459548116080159164718861026806553610313025489409668737926818042384320255117246468727708744757430387035293968396559674243679000120767906649676472906639752385313025758515793148039715591385850879144431992073900873513983007940606854028031034671921884795182178531692239378669048764303898080825480710469703605775731085959174150632318612751515464078891873117131861235393455027966717537825168296914517174391972759573583773224927896167119248905510079397112374335697956655871336747788665375300410041696510351100694411941845834964996868319048674759856214578756669547582661314648411822064313660374700605261351256477775575947123932733479570615241961547642063380351874696795701657518230855097985014327267164414075874352606970154949161474799677765548208109107824342890993743992690566690482635919630770306356227744385365963546439875206338911791432396585934883544583460093534800133150038376561017516758307065043079053351637748214963908682313349063125683309505818797162494792581028867478662824500644141218966820362168338953055761069605554213084915472469635577803898215955855346256921401533866178872941583520614449111992524996643025347839718725419280201645971074032392328926327522704672729556016744680300208729404517993104988158134329357046882699308930688303502096742396974313611916778601179850650229740760686362863649254836837774538486338211646248742030648492610378905326372019234288842731657597945251470760446176329004637926736071637502428861891834590630870663309167222637113099643239714317040240555894558582457042358527339026895358350910287334234394167905293861655296288759093720087775172027334664502371979359718423432653574423501387442996675967976730550485610903146128978014089490815088193819345196350628799190419970861883203275557511198489906622117807208697774628633244598473621427573068143152668484991738845325067347741243188384848335805673430053679468397476327479368916291962298607948604321418148357855235114892219051697349066018896342799994348845429455524997679166816490828263106895751702848417509072724763348617073286606124733836678076692585375000945597264231209961568021583941320872538032943710027650574688417938777402665909429397041668908747762509347902194413079906671061674590269412948835370039030593275410032345231546672309870456833599456697031179394314184315029786291789507531911109156123880538070553846542131295425306037439023374401341441232177391253253348321391821035371486601159347710253290220975146411407860373122787243382933870893811864459169281046614436388524126066413382189761059881847009706648260830613778091128927082702765001839819647890344111013898602074049529989622151451885295209440090315293717168160725805771317359024359047306994745571670344657519097530909572869773076619463261140563055242704129174331866530145962005149069651845650870519859739146257232640143917569627277466592632271124761331076786470528625575347180598640034709164956365129010404713936245395557700184664923291204545775682675159953585459517502009464159635190504852008440066504546067405511951507597746728634041177370285035969744238779818605937044833382669725398979726548053966273930127125576732114507573521642158584727204613310815302950853533975527600411089906764128429818864751843159952074515691251517277658574366445469671589780888259832814334599411252695070126191635278042414391955356751287975994038536497936480505625094060200830006740611353685616172679705875777419581302149266263900184069522231612416404753986003776443356284126323680583636612724777015192330233703962414428577513650713286294129854309849793744762229873232031862480731126543226140629222247502774960560994901457927402136428284890571460279064444573920660673343370179530819274341597882597709735950006856407704493570128653785804385779173710589833294822481886239552953520509342461528413047937172290227416232306522218411151469257201095089401464746965163622458337115551207044442429150070847682455011297989052404776056439397780425200343623442157724155658703240223944437795689791878906837351131505928431428705439962720762000957200732330775465301966084125026571692461869990108438443204122594523057546341360664956309248780133306555414081218641978166975100259469028939217718062139916647153894944044327523251728544237590020279508771670838725598350082312939968309418075754998815349783090495000004470422491938935993776203789905314972158485422874080891506198209031440808703219702160442035151698657113369300182296793377155950622021637269267705762560915324016333282519117626736127941232741374845776446204283049006932159742487796089698693094955611989783322024870192442215288858374422993658591383966770873026481225795036035691567782617305130787643424702187296372629201446594062734603368106614258312642915275198301612598843820672581389695927481460985623105395752836478826413526734688353322374344831631621595121026232557198437672962010934649452049661956175337508453713336591207988579136116875281085013813073632169137211351874672353265508991625812608513412849848337528891595348197914594321760017214035247437438495635836358919767721671820516581861907686374443576977278258872060504030629677934820692065616905783285341577908142713430389541445058395346397518016878769711775788265184050075519404601834505911781239972293029853132291870930203131386217657850914326074359211773348161610385806561789845151731840073790823816147773893869345871985339513309181902595424902223042616977381551368055443130715793324916303816525639577903209812171197045764271508666818898565914601731653995692810990935098966573594128837206802744558514883962226004093138335125680792835415243324394300975762572471536702996991411532078502067016694390299994275473833104502577761207036366343803046080544953184125171111772557863602048573817404543367397062344207047403288154839883218832382821117939638528322122181002031681513623223732999266144906179366956544496196651886710177758147354936269870458836593921254347525581895543944193604160609881396442579673802692224462443719330083327273075100436880520247145683841031913927033469823850394229872371539222251000074130797974534572494400992865598197865266636493822299337536038416684652950904747345995281137977173548243149479883111806827024085221580108662412512343507044432581581246132382459610186218355831303920246984208244490379087823615468509349842172681177745690283298069000615133844711484764175228977724412623127955730600996610441906251147175331947228051429990616287947901533214778004314705925039433204019563102067375626184675876105421746628229889832860507669836181748690400400308745741929006689199527761117166831031397563917058677832107233226051626731515701249016726201758079090793141055939490159048102746516118071969527631057147924975576673017963428647986550000717344951600381526831551001456461565849593839918802467545602287070326040820442812593525094818244136016785504842042007171481603590525337680894688702305146243020524275504369123867227313083407949382700508419415377660047847692280607197512767986927784885222012833316055121568712284460062896897229038158162569598125441709903538842015445679887009511165011917112066416818007000527038324555274851343178909900904062406071254468210485328793048261711727702651156590767289557859294942883071444671887326649702556214848472835700584502407600526184668263410369016932765335719707819160187883977403661166256042789526066437509447332616914947776915468379641865728318931993086374408196764502815078871331467034000964858792886635022709305246776638287783020345209217544675193970172866948825488511688475593598068491346136962083565972767278102360143426842541666087814740250503418817103534940119669940518839039884988120114314587255688782203211829013279660033241944276522255501457065259886558323881041666687593963436314764595083972556580745479995182905714565752393723155797914914483037933593788166820326034008846420421189984622572791996571090387245397928703401349980700953209445168928815575202969265809911703398435242637493438464996887254251305280394412272339093846104116950961265289060891033444138312575588772071657055596992321044571833106151864351641671609952534025014493774717161523806274961322248243565801561388143320241157275851296031734572845069548935614749439196738194326113102144268421606007123778500638762358084374869249996826310301958922375796009742795471893158888626016500459725221459988385310354198447031175205054883388268462229892611778661317639742166433578504118298445617253443057125139836477927046994516998187037625846849835524473666499493452425635587736875812614446759788476116644425315299358897002533006845293272386563850663562245162424792891379079868700139534718809597104969691050425368621583205740010869959248666075412159687907370467479848894239775106578455155859214003118769587889900026202999743116007162114881824903559953406548674101346530489282014350555821513017914283584234259770141548486348566170462892847157421618608698264581709651906856558749139251620672982868383404297576404562068356598318400840588755358659559005139920700772611694537447612049808707540970851633663632649745907426804349687561587351045512278349439827050969702171277427491389021786507775753989662563708744366361624450293598567561468630979492214969859062342863902650470856634249176154003627568924484335639446469850654232887707668658066933423309124535795498805963838040331648230115766792516779117126407555928978352008993505493697968122416034642632850698535382451363852807409562989102573871791015994619289106121383035382888979421238253240157925454506237403525068595098075848592274708753825734771569139490653764718572273277340932835876485387031821788925605689779525017783760531559632794983028283350125368456857015533334251568587006409632716881220857512773364968339538830894254415189339909930236278381961299899461071288779375377215557917164312800317566248327426423991783264563483995921512817246159086731649326734345432582684350930244936103493869868578886680536322137431028751913560447403263713374181115778344239806405738019514929604899810391341721797208542820196144074325316286909848499265296173905320617107129123373744222848854278170914924779978689615953260750642564777800064703861981033733619333930495294216276311319281100489790964498012981222209143695497209869603589569019980758107857282080427852634357777317231043606144024612378807418018259144333533235747942357543247161774930154458884002426921084568388283459768349582562945216804790856019539598603152869642965426217079868390114499751986652054303441024866155612235539660316959373907142880931145648583951706548998312173984585953213391933754280213695428303255326173061318023687371410861423106765170648881746297261510963041426072994434639708730331415279895916424412762089119212446793810870801921052112868206810802634576641538412853401620272785666928217324254260420940826783774518741822394808141003557942760512472088800828458330718755258370702530074214251207121315970107187466480528675614440816277370907575358009880305870240570415544407359725344201784957989195458728921903806876100326332798163931276310660975802364185554943290258440725989285871444671064165709339127826078661046944519410884268034712736931577193796838356366263821935108642365785606402256692698397268132411230382465401469035334186612157856012100497748476128830119685962004616468603867991972047202877178771818072112958998437441601363303267339768458742788234774898408725580641533676033232512807107493345190319094071603028084978115241610292872883564355492070930477338277088944276931681618827569580110651155768217238163422625153801586331870272496878666179673403513029866527122204387368266987089538037146130820577884446815399470577304177082800535449088182958239350901846569614502987516892644209047853128549865076465185213114642175707047906355722264706949995804014519448819267089370825368907194424394654176813587387623351476427054371263427534036028727428787154991548973053189840768411972563844235058393997826484372688521966740781742482776121106523496653812249508001365619043118954954414401479590861897333007076995607586322119274581665539692487299577757949338809771200258440672359666367968708559226104825697825810110328808195281484672399548882300595358022935768147494264665275820090930198281934490727066311664721358532726690168020709592649101519591875368182619968464363074350573409613825427520602398436388856551055195857832107097010373692494666358632422143630628083622774329008374126843933520403081860441133336819706627849129490084982999682977516617042231541585542747005639810381820325283612550301740784041309475909289889942512612960605929455095038390702873966831318709408032747423726530010817625600104166292758900238139119393610602309641585621172053807806337472365941953432209359724442791371012906342463179554547375822618938540021557314424841220620193300540694823140421327796790414379523873460130178367196739860966243585115349744015439268733661305169330507390814503665642054314405499122660189506635463866161913821992537297057962802058904508501397162696487099746037109383413939856155233084697308674451094796989648164634681609670506688202313972160898248541491017745158168965525121846481856571370933416501343424057595291470298223359223748605576993341812332258555110133062172889555830110711619808039957499720138425618768239829875426232132690693017399187711980941788275210450111560105557969853436424064374920749876292816718405113175775361058771634414441140188309985691317916037189095982431764538254731590415721033396050696187836464270441226549524266869385808354180452446996755221228753984865321033546323970124985389074553999904391591372305246562097432795506715847879074118737757020306047313602846044664662780841666002459644039264931823305288527815457100770035568312468143784558055147702943530575762175140304233083812571778793689164014770321760589147758022116672137323196524367342516055722290072268208456210576801120533873796344879600330313717348302098088295822132655932880329255103659745890176298240605362412905488086398045036099903269438708035772741374165655421557488700990660042889401012648016325745218244714898397101889310395321768936299992960522460303520014152920498419110727826822346333685458720486104445238680949215196846694475689262539420053785557719309598393583832108145454914470440706405446862004102309358088652419964623198702356209934645892641623244041947736045791537091533065111247280744252667858337090494215724831787569674776979594811401158694811760417307531662770524526932637195721165884298103453681052298009480737074481651673501652214576475841316602789071181686275799375567455676084766247041141242078583877048069939210577209396405420677280452075551356596780449911342737701542672810103713994847976356269224979393049218598955266876214076207410791689555046016127296002438806517755512209688196609896534084294370810375953938613193095573214395210223760169488196629414582942580796736615844499332493884220641382817612300991615067849437250134897049882221311418269031120593821436637806794758494573594468433666300573892494202762311528927872543266871526094139869899987064148885318811559612343193095376311838791481029369388389648970010688110109892006414136123813351812425656784871743805290264075255739946517563011848628788632899358506166447464468029795278790666522655420035836599470776426329363141017961369222551139141719056849458655005412146724180394221269984674270518618763808272847699592169755027654631763476486698136613058696297547255143308249098162383971649550567564846194419311913125767476441620313824219066892701273281479966502815466238284203512257704150876367749939643762891468725801775524483401128406254594324271069436406989658974189731297810207990027982768500937741376720393587525255488291781712244317695459584364271040274747561391532888392747709165908465903786106776004015809757578799080896918301663533053531031587525604867203690648727012102680314559486965918503656090690426067332267363693684348794921659881145714048643265447850460800787642797391543774707714791154208307457166688059119171989729096216765724277044540739215258727537220384329624909229258964717157751303995245488875570216138379112288002303528772861465141303552544911899170059895789985060532292156186571262897454132403957228817541574600985896641323352338433471308965222691177063948449757625232787931244053732389117416724497011863213719521204244837181869802856558716698451449720965800376454182349008560224844168198283242064494896789978712209124248740083433853470757934388076453556245915894678414243264298231124695472573067450490531059652599358587342362651923850250708857886034741066313249697961037502546697762292555938534911385694511877758720680347895086131763789267700972076301394939569150781258824076312378681006893377662840551924504785185472418175575208949356116800422170188368586429656523663163353193495367755438592258932763209288530965650432627459596448546924719111180259372025599478652983470777672740583662246061572758292204952571751066511561313181439145008840762795079748909265826969260319364833345232621890089215355357585411410584898710649873238261828841864235263123237769393610460973144379557820436119802007299574510736910471693562602385080959548838720904532617119333809950376689965367770904702094983582658664530062982970241623392177181581574053897305468394593327380199381506754793104726082470483626742036714880174439181659030626437497932835089213189782327110588492869343790391465912970939787333587107822899311187057597445076150872040978105241559706328779521142428303616054304294395171218751622344520913635181223737372535525317468673621289326862452148185689237804179763701148773329331916900602347053995385562943365443390408850072808852445818040119969328550396374307357316066819267674483557348628904877568138654844333997017047761207707854130425331455707401012206691267923453109012548282514761105799425888682417234326930075243485431365261711019983099880936225281263694648318594408654720338324568078313471416401176785801802824913053116438251051711934196141392344919118799155888577207269706735894366853362376469492103651312143231968639175677653486590123652456558738943215860787555174621146739213423055535303839983487415036696346950308137563503767384516810676510587926200084906484731250970674693887408149295838990685634978543119822499476297401357450208216944051665409877124617345529714540449678210326270824324066179906034809327077076748396065228361111923691636893444821067742366584645527731061807170893145117335869987657761675846570173447343783294514160536471028283141526862394472780621234863287492843630897365218016711395923681835312748744678120636294225068548554348002811404657952283891043954604261755875282096484913156331414756470351880635359223734311987235636216324936929647126824257809991179974319728030181199990724892335496682552252993033537420716122535588353305382048338319201637733441415996642062428560771848904707959632068300880199362546712170845791903855239212872406336247529639800253868324144188485160338635637399684302360874416729999619647220148366721899280317491550764071448377863856251467023305541805613611449632091501320179176333881843099917268781139896642366339670730583787501017808312223969860788701097217584551355023192540846777354816930316557157350515839333259225604896332521772392467535669666471344297967051560053305420873469492218802389621667174577855589680065607600391318928697763512809768676358655273982801114354716443069254483673134237872816336119929010231566851014779857644003916455739619609105052649705515078059714596828109503940265934996402723910625385060011931738057927081490350943924896131291201720135541752803270724072186449946215425176933350858200468594171152119261446511663697463568527037390502908137709614290179279927209156359118156923507218078478080980148992464008613354058966984783767149355195508711548120161031971307859476168185715485949028107878185746775711792401403239246129160246671178253652979675178831137745371166397225748348260971139951267035072490200345352360526041100887691178789494614865623838821136823645557671266393412194735326698449270349669175808799891078889832714804703842050328171603608574830699406539110805267290890574252362942393094053880694177118494223974119905924066757912739324605912476598797105729250601647822889658437323359762942298348347212682919131883318976664014617876715279149113062342035590961372921529850463749704073911382814620117344594626846471425066592544993997891126545349424758904862550549834530695198187062959881052846578203289498678920826263590753932049347711019605716932960886103083986477238184902766432536903977530361732475581065364966464435943260317906131194448069352971944405964152933198437270440335739698472095019087453180855048692617759457776403544080273638005352656739639737419466285286658465468023642097034277848462698946804164597337303598487675299941799549642547591725254237653424786640227328686258119455655819609453321476975207294694119867715150491227503169237643538291031813399678905374134054960347224517987108286595202678794760425595347044234176083951925312937977297065183216647998984505873752388006442245068168263304213692949414001251587890136511498035300965022997220242818918615182130766924540530289416336914161746301058005796448136461580946635129318925094236778378231644759244841393078599261067215966703186669010545458769393610148915667553022934502026698709166810583501899554981187746378675588922078907145897287330822720076841945568115116662242367503187385101910347719532526707495378279386115348550452451762315670755392781840415232332107594500740912625777049920720183878891874447574961991968883695699038909824024239005224798341926518111932565154526776109135581502451029432913748259270888479974490311154076724090592429830684716773032891381564490029200881881020345733658403342628176973807943785643973367345349289917105144142329219599058218481121228467794900768044816763383460288722162437074374104710541695912958373666371574611464787014711600472695482871995373464891111394765366421603755339130537705775930558275518336789328445906563237515797838099670073846464579494066861027997292196395683396084218324586195628617896833882145759877219016386366755401611605093735417468286675939656452375183131918314034016119865579015966441805791077529184557154152856803923562956819772471946272934846869664908343231584603872481954258141031559032320892905488837270197470402928747507583046324471451867419859425446052846300952891315841127399088878253640829181884795524428062074649630463898665055090979540967488022525170553411472513364208251528991312903025493623830516384873997653908037004340585838436289368045639402682719534945385902261949909041474609672650823045253121233916465303926025032968587207286019566713850552616632039843786594224496363970578706406334445747722196235101274298199762937000369802111604361932758405420089888409337735839154737060069329140493076475264526655183912408767306099274269935470490231650203214749526376792009378855282226233109063502408414713141541934407283310907716622963937791990250141712091649542454171113646846312676845217745948984844512228748689394799124796954378920047513736624325931521090109629241999627959211101836259320311484224014598137529047615249988096759237354394712605361182818696082053911704967564741022048732259814456044902735380580520452560125869956609400876857632099352870557093471726922936191996817837521771295978652329283185906878283047938173183215779936157311749124593133156651778642933488063322513608575636058622958356171796894012335077144382948011163697159478318261868579676839848006158912031800939195353862153779675799998793076215789533526721030215961151593642414342566927193269214497458861752595208145892851276672373800186216282768968051647546074228857344846409942704968204664063141540274226590638785599812271162833747079828082075746452954229619400188023873232424404208336141429935484567339103004257443185695298333974666128791092075032234007877649291483154500218136674338009690480382691479763871712738595387834906703009562689138412206839593502396889117878066687307517793471915421205108631179675036723308265039759190773900242972609103426705311921974844106857661411899135867109655048329249086675257562800965197886919576215347282863083046131496695801961136361976968686257375408396517417147596485932787046599733843262608085464321180441404171297526132338851893572352004593813956527778452475937079564733488919815240670580085738326786116951612569155921326850428053516136570921003920657076078973994277456594004502596132884665505772147100809391282641702249236879061091425937540468303852814416188218133900587033653179862804795405699598313266558916944353800781560113406566210474627728502862629424553446793769748672732724091590433985797800707794247326744016299461191232349301773422919722307380923644536063374637049538030873713368961874925187754834513174667015171285598709345098112889730844664717675667767334320358803257342919634499114628107155439836972924990871884143306485977114633693836682667951465123728356543378420696110213475496177351455251231688895883185672956712396200417125411816421356830333116487890549542571352369752443797049350423201903927612393989247963332616130863214073549899425834898654467075794640558262868274936906334075768611460657115987673862881019379517010958977022923099312886746359751831866080875114421230139440209776139144314452775635906393868339097094158186312796723119929164627122368028869453312346667214323143487322626964412995591400954857013005264469498042983551278195335808748779569543951060860293304985776292781477023579278348966473176559586552632150246037189941251038652856900502069248572363664001444401255181726799832721995468528017193167363239324542503177825197984028045498010853142241245334054987062272413317587538751406660245353559634866239507754917768020552566344695008236269199307832049376248529945278592447855306995083636305017016307493269492339592626647575488577711171640055169622040145462567502569578730509084643341510808442807952560484732688355022166042564667284715441514267909438808916074930714681096770923578877268692944598616410996155826827218626153033638146544917822824051294324629853386604994186284384360100296546896583030924153220666059813262429192845396315863144065473989294085390533001682165307223532686129972172979406221461497209187278011023421718419047117369030064089659339423932481809849103914814934478225219493576320323939160348245035594033571398431258913034637970061306532967420670619638687003915802087888014560240581813801007733312740739420697571745392492340391709619744423043219353514295196417524949486874413943536934351941184596959881164799427610645553530865021472534825988020171986034936199731542344525218302101121403072915727199633801435103631751772102102865286272649897953639882700336638661527531864505717973961209500721131073605998113260428993751848422536753500947637313039947117997072411896774758383391687870803589457114330755260011239475941166974922088876341321924157353088552513658312337581357634080278209301829003379868479671082350441244746650009760071007127204384689092292406128770673567024753283050668905087509235407785221605150752567865668659065291472572458281905131616600391509758580903490306175226025907496818660898268439431973390185908436517674309359941669220621631309615518323674568735842107151751745388523986692818118988630417277825449498863041734573840065715816624298006650311113651264837313955981924816259221306320908126102970435472305655866787894048942928834432483109823349716271302146159589170760308532475769019891884638164086726010814789828881673586863860796080210846816107043797308265312976886636993408040252490254932433904945941245085082262493785182612061898845667092509552316343182323678941486345281632399077244666087669957359982142825583607721117883771484050078114654267533331589106233083454088765796025133562916282104889754694884778118382279016261044408705045968697847820292296222793628786321503840428287902437971079012931807977667290537670994623280322830929606153553144543857082065663363231705002207447607744928264431592441652875339068226154682019707018511992705944173021751005533193094845838159458832609936443382153577134498796787577220375677108637749875028246690595964302474579341980454499967027110867487839324558658571767551916690685465665929749823820513014257732738547822862884980090492162564134865730051676783563086510384954708298590186555787709703316991695662652494338323495290603578568593439655386937205668070033255008424485262729561859321714515987061124595828462413477605230680866932327983366952201707655164237351294722054432520851580603881198631725330798575085854412426234551603451605896432621352332849359153142469838703848777121730234174353851876584276757661796789646058677459049005484038403091109993087780001388253275614861379343076108390881843159171350502328274741340117079782464458396496346926715726071447542480441180322959732031125612365124894257411815609715463597288208761463692204944855671949732086250943216656089291685546902334332609018913844442425917946589637896289584316851362043580381918811886145011838286220471517555129879729689796746576154675114332878741915547816264420256761357845968250628460401016980609983011699303089253562389525047775208129291524787233819894461707027845311565517019420577963450748392811678363705114986538373253258100615319706905978477515311951959619309510977833135593754210722529359183179905844156350405636831729795320533105706775120180179445255446222006675041496386474582917272649074696607785429255381715458300498194200920297546126189550898992589424152179380985455646793199077672963492600926882541201461116507086752876030015887415016459423491705367599207766500577134634804884492313574842602653676579547535259256586860727257140835856214157968771815179721907263021244408734158174681189271606105082170249262149936432771777633803240756088694717232416740478116878872740883135107661369641622974989141827854617570483049539835645058614123861564213517803632966588440809641948251948737277862686283463604095584001437084045119194569007068581614334119251057669924699253252442055757382793408030971443660412957590575144731899853554498091452051831745390570452800214196028453891955792861731074341919608405809693929268975222741556024290161214723682221367308683608376902445269506770504379181303080836451305034212853099361279608455597425019735247663439178596601157845853340479830969628200328441171626094738724803715764095558175095300806243083353069591766131534711559175221261585750146564592244539337045971017403489245835053000574838462923762063095668710941707505410186685672686464581191909851786344330055766701366071738561394668159515141188072900441033775836290165518032212225995564172147319670343728797851419314979256245093784192729529602702287506970340934204720165582071340383576939891399358557491715203222539801964388752118744196704622558390558144939596809281966429578660310642680804803705812834772235997597465681649967003243185934521302070599104009441322982656349112837957201433355377814881378426878393428810358952419559425306951669070312388687841612958048625001243428007901156590981863550612487561140238853893404247411811393307824248764880491874564432939410688661175929484429988543727444919583595372586394223821328565579993650935384305076572431640981114576323089981809286627340956455345706885896312324764694108587146134329944069235801935174847139436087476254110304128354421402985601941932277263464178937867046844358157253449334107201929228069626478053156779723773149559560927143649131821471859841579841521563510246443774598263716403981043492952252247152285066626375151705157385219856016531206081536831845965188900355095549179442114145606725907277174438962598157826536813152069498565387696258369237916863259180544201971130481756190937924133747840461514732142693745247682985879870134106535437648139840922175640744949366814382604175123389311835684232983565922173872577124347595539648798081820421196697859939203797366060380744286020045596178804863336379862917070596983665874925560633763793357629559040907711613726405588251304493164279952781471691040709194076909398307948512555889039988535824138327472841437558493452813499506378732448769090734808786180991522385419160447705816848691181489701746124296163174930129089760934146647128315564635805025359499535419758243298885065764589718628926035230096929864942255470555978241550142037579729092413657167621458550695505750150929104298415264872978301220942865096314632853506364710206415840038973004320482463572717193966325447534323260305245065585108128140430565648999526271920082872402822292354353219916081111037226595428605773991823273895650919002898741636933193728183082402275894476574755412991265595860532328311641637492563472064134242187690043630197653773964110117377758194107556606213525521799910823654541348982145592548621281843550257304573272553974228066243133069432667195872525771606062336336178702504198936189296709251806483189905696265915038477214958008076436703902295844207189862279433785503516564050105159441624701072927982558495726643375671544355909593893202692925741592190029808608186564567701408223112063623401608373666457611599130430770136076329123352968697473153776402203983816824764672610410953587102869531105145766432610644430245047793362634102824878197873359337412371156115709039432707638253368632811696095616339360468681359394253411428537244462738185641313133411928837626089769200239187406116942943830359253917605648587562656813254732536704633729232890710839178109967515897154842737049222128840492732482553880573761871877961780118293692013664034631563921254085393457551375067369970006876657638412901338337382050053141805305402329145707944354644137719958325862387076575285425283886661335807578383022276234070808297884376694573873201118584622263962268737404756603307090713397281126483790129982786974915440101374336182486842277937212010851853013565057645566075897272249249594434611913601506682307745723494815574976466199717832621991344310423451527822385765526114583855145490386718956947058813478144634728890744157431216121412077588347116268560921102995648600525945042487106532233843647966391635479271858714770257512136332718149038956326959146079916491143221239220593838851917069307974017717250143849289236265056927274221798966120829074263517654439249054088433435180113362781034043466239129117176965978082023436319251378293913747293528248953250910999623894514515174455185438944894805302533132339559093670055769353555564085481032447598412360483552246340219619880685396431549324844302667501739940672169809233937065328660944698074297944293432899020175350583818058581068146500862593601635474450032652966614926345689114043962497838755852969699534242107344491084858768079683780142759284414169916723145302566733225752947650186533159767917302992652670036143766793402907863104374966567542180508978042190991378951816439921168077359586659276940795665119392445657899106025397411143769127941016294706294316671517583394233340471018204334729776089427515934653398548491732893696049597050662960212580747486396259340945263774902577647760112934146272212660851300127670171373088555616079078251237860829244263804515328414248944019542141007265510852958511992657355123319453148963074272336366241842022487794973228604766606543244451877400920755257148670884449438933466885326269215181875649343529669444552034163254279017833293890848022769900919437510044365274627622958466206968215465563918095233254322427136389200966399395016441948467798915409154338388557414082681007440320393647857196451277773091951055771017434511294605265450893212584759794543808541582688316495732823573189063380969060772570143924761952638277237283606079807820179723262700665289645557784759198575617772465419693007363440863409116392102934826825467807279651435742289834695389391013128134250752481600826351192838770990078716611561774536159767714264279523985830575136534295230930273561970476837909891853994608059211046148649935697780586923584328214038632748988761986241873915544195244479145060879178890820204279218046311476750218297904860273278233332749394287284029194603502276309258214277479446785835716498074749171702376193933053392634705504603258180653894930199636601023881939888233280267094598858807912809438357879764075304043049494687449209165485818367841619197796054614706478642523748933518279936933316947623365149649403892029531126286367110003349493210584788441416331890065779488187929496197821776471936323939451425723089882240185537316176088166578656849018443809837823528334057374619305978903851280921539896791817898391576958430183108264772177582290942587408925077721791389762605076421054520723270377317414532004858657009571240043416825856590234257052081158185984696207090835816162536534402473289606259159078802126904030922058410138137473421503679999769692369656751050833885736480231084091021197273287880681859441697177482551739185747321132760299874617527389220359552208176312164407092180360634721171572732255306593213952019775570711336538137434497319915503249887742279751601394641644006561186293837679832927497704230069575591421389545471347597742215081036271231334806341826996698392851562267880143619098767128236509028215680881643722489758806086238966536826437484814903873391855004271110271219700918989932990013496618119644515981299087199946464691729027474585623526159911892752858654297701685223896685293793674926631041698884859076248737711306084282261639653357462740095287230396513626720664559817742799492633276104961500733877856672186759265077417945714206223352937650808954492922998034118436645969703275630332353816684478606675919918621330870050947315454432600566128341019585902162058225261761407370017061203306342904027532799170467969214250213888924051432921515682305532930679921223651659893014838581371760290968237180354682822115550974829356060176350816086052660134697026414931562026039606035542443287102488160505530021990026979230496436993772410019931514832778979378426758398648437930261219868536813414775214262149018096240915982395535988754666520368226723439157287416431530981551049640231912191783965415544876817147435761991235523840751245557712040050785505448964262095255561376499554270074226625567083174901376057456931825226623384545808479382636064376589814315827884857148977820195543732048426412979176453888923261340606247690249847645755939421003803656523909724173452316907844819270060456805282332995170413860617901050756124992725162003681405705502929770322166040494168569529371995769773275700035587826474617702018361062425341782094541372810421705404196940645731508797124910465929494685750954103590280860505420660178578696235101284874810862224787585194277649392667967981457572761312996932149599854461481617532197809508372573263243536043497123019433537410462515830427119166357366960776784120671702326764245040446147842300629593709589796425632956309445195425313946149610617359919621539644982193265864692172100901878843504722991892958166155735225647111731755152555322925910166259876216563765987098347230375794688292481065105629179727121662207074301904905578355649281656531098872662622892921782896814041900225987261244084695812375753327844612641255846470086138782742478352422763174297354374370837081664466910495882102970563091765973097369290944397987813423517247253107346176054070376708920975812587912003581864901355758606836524663631980430026948737899480154194062749259579690642436353242517253190478944434566118427006286838687742141841496645770921300040322440931355177270118037452978400931863635922513355614344286349421994721041696487998247925769144977652412272681766333189445895556396975974037622445852732956606043898567740952420905793194952637276719140927917664670253465658962686416324744313409315244208950174544449576766300740532764909817497572794486506924734139532773142591134664396509512858315126225929044249625363063069269370134755722357672335702235842927727222292569028764140252801365149632121775315477555627184357402620996175151743673156457436498753367257851886818371470179015920330905276219854907684241790320660072562776664659773709842445771144527513516739127666385790227677733270001457381509081138071686808035870102070846171343079617084740618642786391853934682444262916311955946444171652437427146584888097052624419550728209988150877367162733108162691803017892265344752056797486722651949337834950980551064174882609124135258700279569841614078585106984706465116520628749456530879593462366382681180212236997819046133673821513796886214873567214453819988038085271822379837821141681254860154693705652677509347335325855878662956548143148979293509588732760787012666547776924835055487273910215303047124077252593734062631221759295280508329734025523569220586794009054605290972147612505465435061788241623362242066141427655689621033372839351109962201580506871398544146195004682279883420628034384617538210285684634086066571196603386065441657757880057223014964970229924932000788326362446412616936730902573073798362101603284934676292805450711733022676878503328858011488377394773801811126380821170643805053151579860192991871884177631922561482359024666518839371812354054895969422021577063034238004169172178032963048753821619673092936811696712749323517205181967450530480275902779265763286214329314123081370441071802691771176451789652059021801591450841814466104445872866591375912284662342348615514259847136142931897077056749346439681548880838135326730533218291629637371546266960567097363650528098299710453665515646618555999073022793032491479533925807219840246163156440992934529449812593122638791486113726203706773074517198384252324466812740391061800102381408048263926291589245578690539743624165868566749499995627388196136464210949895590318960762698402185517913155555697982177652470421415504029467951540501650733829409015908020869409432161679317252482579856518360199736796882177254044420044270503090850798790719125783815131905170030463180313818516727647329689568603941065454252326543798722394690382366991540547180820215098845134648243574553929182972440300705638836442140424459664043508840015317435452165365455315834461926017677485096200387388307393242626655925784540957988264325843455422954998054373455617534712294447299512704904021161652496409243388737998131307173292622621542248620267458083170076301262008835839525185634222573133229652850981401061102865688898313056232271611802723292856630562061842554461658087593678490339157480958949518150652929961361634930321474579236710712062762428030149497520088721208241227039008607884155247349217935455678339396940857610043617237841824606056635180598755865175374568921220647516335101478861132690557768080039846962660360342653379847660098512415832412409914208621531484407172885276118788048955962556613676517599468265566456167583255485777746395948999611532056567537172512179814348150699218899970751344391869299642293719449323535218441690021599551257010543416502052033989775285018487982027552561526504564521424328490772770295208488810540327658862152995633938637744176818022927316750674038473383983026107841086405246008027557471647490804501918912799314599112255704661636983218120370728812826671953695193875478622881902886150335616097071904861960974591746976539541938930077829286234850461330684875763567953322105925710974265939353606038572791873097687909430483447871115514216143271756832086010861868520041727222851144372623146963214959908000658498788707171837458154238687291262040654261542642331962246844729499564219000876811404540483320463895399425174835019032979535172907996200038391820213200899932079906203409041806007492930808156008768446375442961688332036493558118841121014415271154087166721617266487806958151757797634172076120952719020233044083606777757485248687895902324244636580244671221701544735910892571416053841292308078496019544945154753084026100916432666099901639712816372200374788307482506796405471455943472102033774739332193759578176616461126888337238948116473988161747529274114131912083428815630078320303547005879987340050062355643426615768883613916341649201320439702808227025537116178570288095731449246633963671839898582028563046400237596513233348557329758589134621621322248065808728293698715713226225277545869271657502530262697658081024988926562736253986842817223762722368540250328981665238119849414382997159501490254283696180844245735420496126281692156028345203360333861493578441326049764610564035992553492654727157598143970719485590319724303068052474675837967664133376531870484861028454945798658405573358202432147455302614872188379410479920078597176917646219109867472041123802113009524906729089211580075777079781073613169585608519665298680029285427606328532569084080912575162259997682101724227656461343293864096221425007044856416593800833917424205948577956348699015688312589689255448572583247905812375295978479320507817717867841060842954249811226491328935815504128718843188934252721358476601463267179609838043115315893057975718888320199617329931748729704187981304956952461610064243013520923326504343187037889393955019311567357325638541081062600695841104990241816284788353763819683160186211806500248059571166148935722696740679296136643712729169972830362625628148536615546000402553307933097817014836841287593391460485806831099619271925908356361311646562797706623519699949469398685747070980752188435837185486554333214939459182536417852379949259250387526245549029042512666782330812906216096860809838305075863288974057812474831601795704887591321184770045656931908348390446811961413212694265794315868590479477121080785321833474589744284776414837018068943217857826218875153380873110398619609673082465989719663136054716964673819209581297682435808376579601409412096743450845355058803009419284677372043559580018763979841503148880476720759510202535419021833130802984000737805540753422781664825967429810102169225291669794111774682271056737461725733666358672543755472739869803734189940078325838903558732851284597655098654899609572106153653358818748197096015254677277751368166494313278824374540536736354258136897865057647208574610700540590652412447328573342877844299387644444430684089605758771382857336499865537185183843482150247049378757842969365070225699939226996261226038026244233192874337514469213383186660034046500399605558110073481761940283874098189679213215514493407789685503683502633045669636352372318821961163158729734820202865245138473370925029124670813497158889655654013212373505462200214953509405822649802281393086731945941111380168353917344334841623516969302661818113314491530740656668241816271734149639715851075929767815126216087758212337383890978224492979668617001458643136786700980716992063149938096661086423988975962847616665497824475777714705052511797022823096822626418662627558057605381198975832603257988351608549490513915174782226808561077537526127726567033764764415645102219217079894771875832266266823143775535617298303826935668891197603478620236928671209157295612980902864695611191436780081578761355084417640906034061355426582687887518848358410054580300905909307723660577565228417710024181521785899093689791909883699522351996923742601807780800014302323083493232780005026260922743249778160136785067153147314466111444231698013449873169475281223456521541926301989654754129218781845149640273148366918884349813697439510104845932379677076629380738439556308515986198855923452238253261694099994463513864686387403925135569955218087553431172389607264040463543335171215249659555185469130413286178554652734052122102156438541128514094915977269652704897212954245671887554435287429336968867983114838550678366191245923116511740101418508840198053827008931743028945040787252230198349073484302311273411791774992260711581007335938973806849631669972890641190393280205176509098709812553857265279924679784377501827679143060852538739208300306364155664493977487349054620929840742786145444787524418283387874103977985530850951515292760145018079290554114153745238063116946435354267298069841921312693667324522872821931173470058779021758376293392209243404745860786724027743746849254962222027538268080692434835191101640771213116808606699808607487796274457972514287882888854458392408012601110300503061900770728921525982680660822814918248769198367595074765791596652662891097524661848384577519289014678737801673719928896561546816679110620418340175917845879431442734233861941521653011691208883518774927447311523228933915002949754337252478183493452167895393720175138033687143966140028900703684227312502709756719714750301847360694559948521762131213968393226859332578421177850178281615171279484597697111098103551055306174928983595438807780473878204299495732397766352265901186640990679798885255056105041500333537967689024245875831736490323151401222312423750500129833659163800923321234479980341826552220699984857872598384863095118110957526717865473162642749820475290950209824249838194787419376732717568660339141787714970113777023701444536019924992920910170528395314920852599816764571843342321676926052887740621595150469799935960876549528415632130307502094338913967920505921374256099895904577595294009783788480873945305868012391070514334609646216604762771837882187287400482749971868825311464054924700990175315375549509392162481445984697944968855484837294736379625266941048545013554224136116928376480867729579193432770974695520022414511454565984334582389092945403238093504261616114409921743886397104362305577410260321907699940579303800569739155709815517290099490008399085312205764614695960555457302483587065497818507664685137832675834921819094704602171448259760084082482290979794106723306452429957489565846660127973628643307674793854719530520365365737511771245995553823098445188933198247225617632211030626004882374435208853378002925008375877694495104772403181105839907065785132119753333280901031575064948276474962309743213346528814464080172533814615633471925909188238658984512003788963248692352703697686843336274628213712341984992819940885997830248513818154930730664975718844895305952206903151150044689789904863912436204989287826838340229481035950961609014055464071757136202427919509470079625337077548639765567814525437953214924732294808810558561821274442420446636038451394604127079207993318920042126188199871680505012465651903256452499818556369961987853033435765616318690661904295146653475128241237103304486746469187581058999362866455470577838734030458051371635852742718784810008153373515911446168024615788072672800009202713776084835754551655805407340662869596633727585286112927140699987196178059141713086071310117096318351980207375563682702935732497676342188093963658433078731223789032124710033241678080587081706669825672860821026323491209060609124449802323058565221392014597678023512739362674265422627488625902993869282563949834448394044991610787186667871714974523504922547336773718241182920910608447055831517863258232017890850839130339501689087481216191684644478029378822464193299873817131313427107326165030705793759653738435765298731047807368645538572325456527561004206721017305912665790392404194000107683049193481544829897192625286698584303059973856332654059579925388686686941863361545167357542541866454344607703429248297558434343408547702680903519048078973478158446225511867132175686678751786929733561234188540566132207798111307559194994972846589552848958406840601641959490575491364956773354007991858401306100041049608789643395702923976248563095421706379951198207020675732897877689266967253331077794082792894898229763700098081786704500211741326528907549024202048048028538534590410362406193955137374690636133949427163843684026407703070332558682666056121880644263002491877600839746934392276472806029393880798489959003241942045121725705458014991241730484869697171709371908095798461871963383584875130227155593474291634926157795443950852182271440598828624454393728746431653254063710384258449085325891408083359324883337046479311209679623094035203453798848974870276381482768542387703635638493716040932158452924013649880533145978129749064067400729566959348575874094949351072715829203067265360199776497117671259396144269344199572953767401484562531106573123814712378775120530549506027556509511179707614018453905096138461263374841013789223230685925104436119022105126110269889427795966458227664071451327024186162482229169929743669241999492509878228024331053414890393952561196001164429363576147674497253428325987730401439761789697474401515990230152693595926113527730511193878609798153419981512220317184179403966548414210365337399051066372658093651172327774659192828496531255758876804769422864542085312328468718617909265601992677069935641542435788937811972210250724288080900624741540460081954787483098360637982852155678546801831187917156789837606764409059088664945775606064708324438082442149762054619060147126565022986318950303650680252664985678636581124463061432990975668493024305208903135155842144165653631994973653118381068334220435689019525538669442089479093757014056814597084238056428414721953332216145254694631475164032140804618244972861210685318513781318076666508015510579361891011272108613741551879720754182024916762532597044339410452597610825659587536726453994152013154286090764489719533909702730646713541733518736047367507074036791072304804554455373407255749858133662280771907480266336645515925472350354718310786137030232359832342045025173258817814973689604954039997823573439416133416289699819217846945411506245021865144930016754970409569461361618612383476394753375689390365958463018333105533053945078365706677487197104213016086295607433358778651436263646249730075205340143203072590002853941591944274072389330317769602882674288031453139222036021011008404837365127299276851987401760479732164263804673903074630015014780947120783144192320182427917925304775306898654050406826133573625839541291640598233669387828253639376592164766299967361410842802651298416920845541525080859234796251042446766912078660496035983451405575465822810703995852120773101259556256002320358273548545390434187964338410392856438101438661699403829721504897502545394644907150379298886600226930024004786655133119079395414991281214304500667679173447733490123649902855412458205638942108839122994048731949907571025666170498739651876868457428671743505280536230706026858445289232404151591178567749851712712881916925526340883234061926870844361560470654496472089128524255323798693462899166970433486482714845772860729145657500254707510488895614442626358203723286836803238153109668018293139814690575350693813195263499662138953816087557788682477466417264243456694740042707332097123576471048328834681442400082512407434791039165238747508569452382957664834321726602398681415473369758807308525764722367010802010605536880383148222739035340095096842378290494785915399217383314635454277319583781344438733629130014303502665034322667750949431057182017311350420604127209158565533143829661864978351912355418656923283743334594131472200831974525150295991745030502882549408567352248539490311988507852318593994879445804588549109541558892259376986685625331569703819149836243254961787452372442901065783473657076716656858993162651982873711467074495651705991010883917036619706279939064747057975857070993370580132617832782884419486767339071117334497603699130350364248185277331485449902779998299496928995745766399631811139920537051050560024087251328615818490455384974420552766065477452670046235392626433131019123591869396317759331572190718611108319796239137677905629276090499301517714194908095432875518589393647786197312649484543558384503595489672283397319918691783544763342728032598156143350506972860547272919827266424166948196135005696725750267723658847382279119150560267464369968244265860930064960562217684301941803255543034774752605553535056766438053788589754277035515734499977964708660958315643371050522064559833573128879620769925421505309089874565536599979403779514320263241428231205143761744393760656002654530566539055895483060434524036924203907238977739188141879571450226338016277420766436491153599268984029557821296523105735239486307887723326044247385814684285205412817439190430263220249013322420724685354869891014224832757163451982108420739829439829814456849311267141883011869628040557185545401097991875072108084294879393968350578061099585857632325121972956346109716653219108823244551213058409947862919881797640156172951785376342444611406535035347883030112001489800383616639303753022228564498379336388483793466723421069289651149955322670732218845392383969724592393157752293969960035809203005821650192903863545649008285291262593309491687839451170792364899222398769502611748485827871092047659701095674533694891274102170056551311092566302881045630094712158681224267686716031815087301208805360378000988466788193941216893297384119192996871168271004898236142105816931119733921371669948817638091938080346752420468332315012873402377056671307232940350805026560802444395482577514155389415918457886169938853742397577941512616319904287801766395238591168860450694362331434039474360100076239087734717365346899183248619574219434115862613680066554556639634574322438659831358152255208032681731314340799375700780429886363195176848938806092152294637960989205390761785541469250521936595911153616127967930794203526028992309024514323100374409386525995644791219533299386326988468532730030748555412882808792100343380694554017728250159276323041361208656316361970999287321616795379677193701768128844303183295022682256377262436526927063258908277389654645943868407989267656704157820325892080832562165128022273778552270857802018787121499510851943982230026958089965273424671850327246561844113584444309710378303765250027807387830889269500304057601330408807480395016485334729883883054339825900686118694288576154461960107271876650554996955064808885804979546173475945769668393846903753195562752584919004219148381864006703031341038430349211729219135421148301273115747025624721607588802698502317773199688652509685811028039953522635346231629082271630602974768578301234817322262847763674281951299701394015560589625165011115863596474082139811878861599548548715726983095051399520156617857954943883035037606317277400798614127436595145655124937404764484734719038387701982648604355560978898094260730647133170907249024504949895401519783523756898086330779741242373614330403775015267833138760903270220033932810791123132026681643231290550900834408784562217379738325120169602326920790331672525298433669174914415985721722598091048003321279261448846835988659412131663109713437272067439692170983448703374136596300880457520206879064409408609386649679526891612812076355608956507259480928831433603027134680871666257032266282793232163326252526477661520575435179935476725721971190503051152146966687564092637839728164114658378114980713333453565615809013395125104284384089418010296814324813388197402412848535181071913977270242328165986685435289935146829464199288130301976891570452608626098912565248123151697460317089432600488120584405332740765500619885001637019984299580022647096351334912114243739461768380273748875569220365217614428089354065767062901418647851385009326293692824192741009590891115731030073869368706637262853401224268535671012857058013879468396173461944445921723352950801895339409476239684350337928290012673381892524275027492863178819560780410415722327503914525313297464754149256517053332307585272847545092258199695063836166308362187500451235299928161658558297988541154625315758272454978585159287251639194182168474532077719171946480114772714473973518494398583457641404932033487640217370650712672912505155625850617141232243406485556086108001121303884490071836916409691562692872438712068436830181357701034851757895221057140166789648841599678666286163737952650505917468125151932701892811401201436226984365605820615862548336900552114574501329671606632961404349388676272792697594569676111204623511364236148010322992591535563878888928493420854627252087929205751727863751045488300666739732067311640663139891576111852880054282592320075828651954781199265184658649069828014607052848565316193373452731700318897619166429767181381840914974125454660220066626023257095024466499785614581937100243111285038415098126381759409349599137111486366247242670064103911890005231563994765705256944052143733227005845039709048247148394606156193243469713646162468344062246156283527552987131818443245129561384741985705777218019783232279772530762277909140066850319828417354565449256332187497185760045126015572419320889997446773840325528300371500240844153117463998674616143069080420847261434132186108291016039413722792962143335645318225031742765617222715366560035970699476970379554856022014504451433513530247648134047037188751049997926825236667900710088820355164830337393265181511692002504904084484680574836551060238316730470482919963533516361329002976498163286856458073538098490490722966061533751058950047039684263007581858790473136509201018590512575887802675385006552689210766475998511806965894769620256977898440333647392365575448831495041328713510776363055410973974766110653130310452015820228856180042371175112831603750262697790888134077046561298954543795261070833981915818332285698599144506215527316119840129228623600426535425014731059236373652530884721493926626812764820560995002650955266836423197499652337996855165187072058432835477320648384416684466658944873847339162248573162972541903191673597873165345844711680587616000906234622931647297897349667211707901221460024040718572919180920286020505920280865426315527194042510410118651515522936549307618855009371915980938504430942381993722774386853751179404921519773314389542999308587858613842376135836896389554558899651793555150032233492141601486701098178542036898638929817788094835740727174998767865301180425556104260951548996167062752897059691876706015101550876883364930746571471881889965240289726105141444997175759006034356296647570339480459710392103837856852016455413617986467433350251534857166884966592630954151724125224108678614763789026014692924544049564482337168413133119889676607704923935395055300089437373991547992589488225929260431149094675378255992458448935766057132224719884821570189298907215418137521539321622431321616208057568817088230791187814296618158313611474556356211066498128274861995187466265832741455601134053138533909102314836686963857257125665456785108234165121044535929514623850677626489189961384996499577665388117351487303365255209214220706705647701974056087553756128569364376383199574548248943001522706211924956380014885490276619293263369879913273362733647213979660438043601967538195370125855419890898911922431673553777995208457776413697449489800027333998172030163077583384540465294743929188461224990379159772347070207201762600132837021176639252103456269978332321110721999015181666550319799131967492990738409369593278175141616953675543417373581434585888974313642079924894184219393165279179283780799843115685023124824748054643282250436406465378155969722991824222867814719921305089400851243935627268909556516730911302706458548828604917564844591022636675161718179832767555754028422976425760490825705471269749176807093735225812209762433081591635297050341131722607078436923934716758272594026299023468732372620911955606714186144943808679797905694787379951828344881839610203814642593249388404915238023756444072325442848154074002958356289995792690315609625144809616042612100484362869628899097925450408111267749825341042676770628683103100161817876583083237174529748036629785832593180062071111047498036880449860203243917373432099930001229457816323425458642942541972502334118279042829678888001616895083066993521060731673260982162402658499366134140653774025262739710140891829487537007936916775370542349341715013039411783193540237200621540366929787642085255085111447999263264697294146658744261035985375248283986628520227772409959962734545511498758783958750489864862019913314085826005411962684600422898369506082444912041501786268508177800717778421601231227783070622473334066261285854126215446916411205727959672460346444234484100042823487946922835055723753142338818502791473419379075240835841250575005592468355703829681608067625723259227098977790670146100831045933009068169986678506600974492692363362594055073929045349075752267584185509380213307405559788382257810744695664409114584579424096089855861520189637236409580989358215132928587140033401038313709200028121559666294408899668688476380331379553249364072777291818527012969551309161704145048805649582534038368515037231437767477045009842540137762795305832907079226540971987557903909996688901842275821208308409208989278095544685794597873845510604968001758702035614582262629996105482259592546345785915620265669980136513180270295337530610862642707411468144896417054575337044699541682171955302181303659210710191936559668093494907077414474394316298867620077923559975850949335857404157730835527996426082897022181387298430342943977186225643656295000795569933765911531151878911076004376418443973459196543307594892025775906904559967047372573190461484654267977480985492790041742356466242959326187417486858625054993461460134888936682695708247913515829092125134851284529419613677066736746405558691718640548176228638517211257012375395565534349321482384170758542314332903640823561260295906903758379889133808875051066371218267429704498624951144935301751924494576250295404703332126577097312516042693656584647348880331513304909767763647475397490451837600987979139518514283328774247678738190557726709233625552801125291065140794195149221254124334433051936317988408099494248601358825791487923019345819540391839350268012756172732226605443929882290395958169094673730569694507256844897580794656976549995998183705596352414505734937736880441131404959906041259215225362572148699789661442280795871754494090344951869302463617670012973937684493656761501931882878084448321250796284127248046293486800470133223617455911449099713799094778704896529636762375158316310680744043221260171890406998860365739327328103381294180197092814229730317898359122225622777897559980388590622603664290589034167658039281909793920917479332208921805123906846406302811334974606567165040138535010988011502940574336163718722165838424227421587845717208463957690121218837381583985466230118387682476076657869653870011593581443973673957638901732275668721437070424727286274018121937901404412799642486187172168634541383749646709259548959544549357459269292859356150682946009585865881541076206795524593568784619813617991683832351552911476492030691275003550870662570972458107073627834944707129759766196955295735701784454169490161018880845045011704389960729832161648071029286256362608591350857966320102053656779712264453971889299709071115773132642448750085767538424692950645054222756845799697859268410848887174021900498979498543550186667523302176640504798180860463159206798786809432458070357632926134248975146434863649444127613368299424791804837890601450821230583803312998722664739916498887954776108544428563570943032894193181884109539253901207547568067408360777911184575525883732678831436367295606062152083489618732059715373809593618432781159461415422316520445236853149575982375355973558086886470915843048468380347205234638936409842606147073181634208958554254407438822487475212085690118243464123930586483431805494957466306339636781945744507621410503855709308965352090374068898503024814630051701687918936664801253506689389854095911774427591279844398711393158508181208227057353431368282967790852885238689714829316123649692389593848918100855774812072358045122287426755780414096328051276417667027016895260163934136634099054500706416051607744474359694666433430634267543159173490533670305273291853176300602349971311365059329245309460901689543135675054339049509954951715845167204543911943553842614569717120010240978894326825949479968583594227072515503551451470931871685077222157375372407400708016102481635399851613494598283671762349459798193557184636373058616900860044183339384731285229842119165027073120104653391706216048402860105064406574993638502820018218649321647393919160101066149612862133588163650014056576275302220674934037592582630609399247761731025425884264756433133204201350385301699049942097677572629922172434017986120909329341069183673905916638521994674472725960215026276242722703729733998389627329393678567306163156825603501736443949059177230878253808837299563233815628599600760382378011035402085965265872841996991903817516368701685884222214492787585518494380546770188302263174377120092509672129100375993558043589725030316150817246262262829265346638329108682775418284019718816546135315707797891319828540393572698783248735689479140819270405890761194038820486056220849895310051477749347051981833233033535925412136134508706156105328041741246728950136838287285696714424292907373737121219766991420153331020266175238415510770908887160013499928037495826533835510063591588140878137493584386567967843943369495164317911808590580504051354918203338607840422981004972109274062235713727205692155421817268233024555022842067192606759372193043559555265890876052231274685299972548001992008365711987584727124285781373645546797800519751332664434517323954306685590008062794636509620142080416422403758998784821150590614475094181914393448234931483882621851826825917973997237789121678874408169084726740673462746464127694621365385381400866916544158496749245233334140975687819611318205371509173915559867901956543614704760458065060491607588443338022601649900042033341247378779203476400077567336651450885672139087931855716223333906771373711023121108040947421446494610019442118681178343550483071347702953809805933889591082142159510266978813765481327908549365054071018996080368604125120046310876728530500431574457800868215690040215409207594383381439410296756621811899858430268459656497999105538600686013367613925574513319004019239626131173310155245726167792201048659590922440578412285989035574383828139556100479438240150374038948563168022215302342411762789354170749962449649046516002368041535335058230296108943066233985437268058507419914242958126761431801321830042446367110271082979163783570364224310204914579866268513374167403786123298373848227053881365090617775029830650624267251408741695402131951487109964463589278712614196877629101310533538782141779683186798579331666480864840121051851833880346302261259466002700123621445466928121116244569920055235753969489563294174714578584014906918374530259766260252090128945255774924251813634719811248845549676197730353299917968196265711740945601337622310219194544236895903163813655588912922811441360388506955034821768959422800413265052989825498277807362699800699208446313850992149189428366714562848684927329046554005290985003295623265617538032772191815214220757433473475749095908364609799181277141408757472004960652167117578033636406447653729800172794412687791338986993822474503699458149564649647597290059515121537852325118996664485362872814706973757935993989810391477738981152468313506325227791806948223313192877932067402528988658114701545761038681158373838184886440973896910673995977137752989607725844563109867939529162525919528350449116494884995887931083158143261309768379932337619924264384001651916824451231064850410914725635068407875916919370599144510372458898193171802989944094940078290034373951376191421593948881920869650179518618517158893752856700393659975977410805997798553756729267727220580815779443464922771819795948947763315370666917165136761251317049012902711657563304597846157478738469881222589959179477642955426758674781055892612535540179182446773583982206129867951803903604966958826371695328021358424125172311241832663990393449403961273739255475130895643862419525439454255132483115843699011162953299499799520050364130226311379524178737408205939650147500006061155129879978097496169963537015975946395831473207392812954040949287844277127622610803527175748782794801238478050005570296823241757739793435289246398706849613491758088792274997144238788764965309884140850737225164649366800432963524915454336145210317922534704615595405658315818232981491560527381671743232686353992119660674977181854025499083941880194993521104000606338198695630260882502121279592067304048673506918295344292104687884395426818720916213407004116944873944201567253947740853650880888728582790806981064242514056694950613268958174020486962942732861563405202778126532441312193770275798510052015720164467349023260573663600227846222675407717219403104065890223590264225370701218781382898751086202496775775753905672730071614628566359647419186939178145201896156042883992037013495061562824958230349790852798240627027121298667234210141500346814369687736506365896333089026447348890334380847702621860589895266481601685096347195700714679020589127757719569091854867836878519503027429429632106363726551452690115088597642403150074898477914710005084130588546392318501696750947046777430288566933638654126658714672827111822296417050575188519499926161519321816417506586056317517360531745254446118512399921042270971366127355488829060707420283185937636285882211178873219728117203187318025674425567426616594087362169585311479210836386751086053759180817247521891055735035100774546694736523226384730725982767630971093903726816535205372942171726947698494379332466835255016217756432349152527221990057043890049131248783129098239915640101499472776376997329955247021116987333402704982173505953602152187968600091271597917266724984303933219506030191283157763398563273133353987221825896394054533588675118309445563789619687395956536893210081260401531567767462914246563931342455498147734853361728188524819817957935139345968781612708762286562989589658338057190205835710725196474319171216417458808644800849224845254041269205910044762217467637896281738885372707672781716963816715508076121065832291402745853143982906872634507887005604753471473360075327873655437418715525525656799613862949475470976773943475049527680450481247375987220035599806337084205703088988721314501419654071692250359264493111930275409644082837345636844950292131714467427984189913866718595432008619837239958095148649059983158198269157840128072820158555832955508191216820845940749648736069337401777703438189426074034355182823376533962302852444161477304862889462637978823765754013577745812268816540019232197057440535201907612049805899687575768983067379989337206113659063913221433621603258240485973171701717009845815114158770705448179081809536960847201699092288740661255549849460675991669398321056672760160705861306302874355354860955359053083328015545040885488799093465272464493152391814026243259035957903968144246091903170756008911136658396364637946598543281987128014401207807207749002520565668182871412263590657408874523691119340050595923848006382021856865084560863847403122907245435596554906127028829777021755557933826110837854843278519018878351865628566839833971153509076483176719412950033188095040376430979798659273307577134297952584099640933869243814169915097882228855521522838227381309096656830731523022349905791221710657893845465862355971929908547544750142942705057175160950958178791714639243488994297350673239562549349021405440960128379124692602509746333292597110545144774956352273256568383639995158511176286159206374033855606348153776179867879806180312840624211082034367652958245277841006473061629329718817571677135961264136457803134086865120162260300963312408364868045838413776928283773167706907036953526167156832878033213257450202707024885283456353320607092207829037592240945304744576547946220708961768044024906548014349313115675652856983619248852814470808711455321475345100564982804806131679204557223672631553160346458825347499384823984615824741821655282683349607301084325646522866779655770741214241985017759879674313181890462920784911508548843611489724684048470582954809446999236025253655187287549523440659699571090587784853367112525601692346268732759877171389944276170332434218375971132358948505269655202477015919676665646691034742153520687909714934993118084584283015253519684624155615415273290711412816926714549394035631202779744277484098497164063100313231975054982521822627060143935307288343672975003626597933943115924398670662793577432305907139126581114113482589086831098203315271213432322422453916470104053831534829950576632533215290504239097194678626004544759552797471773397844331339522530042714503153917137871112096263165086650194972972090177404327061334270767442198773507163661518714743381949139298157519991613620912727345491513179496756307942485483797973486872215101384848307739408584153858868659382926113711043363932075813766607444571094673647145129343156742753139276018657853604872658014831193311829901771237066543430484821756621367505793023692628566446311232883277215184114601029019017692355404439505482221043102673278317199020155521781391479664570296426565825409891871287884170608417421715554263860708807802708948891497763518915528500331078536604795078598329710475860974338737242689661078361274029971903039491760974621929730361920190339041348698719911435096796386791501684411336563984918757664309906160574187237326711321445532785956281461552681764361731802591022383277232531866596570127477265141814122803163083603069834518719062122576911567286502108627987415392401591948631853232580881879038115798224429011276829959343411872858239455767351826512189355801388876902575860165878893212352817292399012695386420073449917105756676316441094569210890086145886600382444045358762400769133090229117344638250124590936797280840425317422122345998763211483988454363230970982276623864907959371171037720320187480316026315738776665077508021090244320230672449791579342957915537464088803072020582793067511163926033401232313023233190942156984837731879410831379280304749270827854947669363573384398138544565283130729287902094687341953845345280318748116179552553398869545510038588763526023994971197197367503530512243070440954980109257129902124441131011196239713352924324283551164813003283525112403721474276182555817039809499924874712516808258596729146847348890888312743766981710074097270824597083543845338259657820925631182658919554693108404873070777351648841750032250319883701814466963826136750423329805027849547504335115045852093629620802104182607715973463734534863099079983683463467808788201484777207535332272768499393440762553548472668141352315353122388903739275741319073713228489550206525310804225234961491252472446645041724175242153559751230484744880628156137150796359635548122466609381988283201981401634162666411640543074861572786618717596900572867573092228594972155901184737124815030965590954041245162663120321916479967344131022261388908668299953261183081257870733680051705253648375061153258380829978878254430115764098201343843868333777054698516554288060247021153536300991628110406545186913836653245496687321798638490624138847747917114256495906974373862205284921161747004067620980081458047248491327194323540537242523409019019355427205763719117101503640446396226548262742882524804469312775642597749061959281359272153624508955324814818519821307350026078803699087542587328461685718705213445758482680837579345099074551272198047829104294797312200769098726755375153400367299690003702661364733279281846322294408863464615846572287331217233434576717972233559923494620528321540759872964836511055178002806065716771307233363627352581855902741006202542748558006011301203879140606916491490196839092018351432493155416873026384729591474901622198319941356716829148472456674195114127048577706657516987684504839686190566672299229214355824192774065323611336690955700862282024942669663052670298140517673426270552018008972135857378736799614231110540102643832704389598030082064357828566088128193266753414926523745136379898760732533309214920446448530903212003417078498994929350206228693185669700359242209937149583836184298357071496079135816623088664968353602091585535066010692137628658069383154854287566580701338345484582897844202700408816030696563867983342092443862097307380677495384086109424801436526911024390157723091458009853863450114979334981086686954310161117538666827670230626650175529967317742926539151345163443248528037648077124894892293961888559531877501100943946707968388442258893477824881076292088378520022299256306924258609198955893896992951667553334446213250727908209280233215778371676153944871040578083545887482082797373475159801525860461705284336848867917405739217246386882071058558662111060642547100569255839279876651443687726488685197976481909753199745506810651735859233942106704187631464253013196885774560931927143097556394472375210505860693279009058764255071895992386350849238430248130556738168145782727698825532335057575425907690129988009048830364018151537003704319203465437820786715797256074691353983035226359451802636660342335684080164290229844335938949827119121563829889479611018790242064799840299909929559344530847737628713916867523978628299300448833389166394405668703157368851092510635346295149772978821033205087203561254801916179806257043996259328871110792917036272155864668483921203189564148218808889880201979298405670318473128200994858693809822585610484441671547781706300572198012181307452837363754000813512710582475848195466457909173106209108495430807064473187764680955224150639972947139296207771049505494833678705001943652489560485681785220433053191506624576378097684274187666865029516018742394184448256981996795059896930788283999870118015741581815315382215153707305903647389468652649626185436993310207595269779439086549177278044770770985008802099354633658870256120985154081681203120002525184814898010006327187487492301935913626230657265158678932307484571523367849773746042754169948717638281354792760962410888021003489464468139596342857304635411498713351735822584714529666546750022004576843664219767869517235768124802952187085646763995499123206843789066173662881048474642955280923237303394999949493152914474173443905722936815149027455142764353364885537830551970597321385732628461906113033048841617814917824409049049674221716284632495023646978675297383220728354531382351696616723386923816557652093261497426140403420526032615088055007425669965289984709596781737794326306586660058042120593842368830360088400710363144743183456085415265242282367315095037782131347387170995591007966814916795316850066907059413308113226585082137849996043004767119860093655551282192261975883525973104672642686860343200954625307744600337392546598843725677989225441757400219638790099209474861228305525121959572427585453141539507159266498907494253402697129094235624065076287555718525979387737680740429931674635738617378651682801250216854767363626678208715021537261965978706564334343242006170851331159016565678131683272438208818070640988491692258194363474281670759192058291871378807579703938745120028238686519240561706372372720723184796671235948051307390601148283431518261134910888795984018386789522929534249426190473519387596939148454722598852804468117710578869146200476533679623362989743446430849012258828918819870264621794634736085820496778829864103581033236983429096571492916144626506848925235865468369738329195426452656450410570249319979884252475167457243310540872805527545100704970393250767665153262406395349597941675683473315676011375302764863732118938895542619409042040966997497777580776450985602045007425417941488563240478820916930456075529121543375530267070196980548538621318532633512150912301823312190856109786278877177179118085065828621359209201420750093330285436599701297917895343606006427103951262256489155335626119262003031480348771516188077999826020512937900090132885298301667176764525861670990595395664793576271400684548298320789115507697201390625778063666158102856125275792354851686833974958680717689354719908399219408166639952360138337139763208466347994132473675401316691515581133412349956269249914313441662062137291472179225582987220051508203560153271385899268740516098235808393068270324922308928913386314094776415605546733437740320051005624185827719068057677465352631112130665221652438473386867788878409213995762485684227021509708817236904671366931390379683358515980562085369721106203768832563843526542661523482648886074279154938738894867769664646115687018358569095807318786417442404884565727008253331748917918893682030370575740314173406743251693597619281965397485432890716735363516986777136069100962674053076124110659060440723937319959823436622201195387577484422276245408406540261539624587364511783742797914642758736103686401129959094398512305408704139467685265860475249472729637239180719754760477784520713360581779663107665929331438885609485362687736382224268248521163016358621100585582288304691556402872888455189422565441510215672675343386891115126203468526194686208065300492737781515420197304895814953495449557933397761896021516201997836098115333015440465110233947075379984776864322440146245915871758511592638998662672883981042140677120073794387669003398673225802976526673248474772238534531603471351921004276780938572514974627377261562861650857815396910404405457139623736107366245410145204268804297832888997330825968121411455083032638241048947683831344101988113312057106479513397674617355066539118433458477689075388142565496004815925825193554936677978081366889124038251669725871203687903621169405276422871021651361643015397724031034464559364388556534509603396953094504479692430237786043407275899404022882736386329653343207680632330164819928225103688072937254503056675359927124748989011190739328822948183606872789167319771227529486425734170295642852563003570798761359770732477854851243227284339963387545008401604716287987175219256320845394334726442322109444100195027677079807063414379409465335943208711448015090913543574165792739181166745772576666789955030642886428790463857809105866148344956268213233180480782211710707696612674725607568598386270550322148766539820229930860324583478214849627346179320547629131188734038790932863931406680848753860096617038333321469541307308780692754855431426602686432064260924347748015382208997676314790851107228115310941913747039404106546944381882153463664545265218424255595241734487550892909128578872049284592837228758918749332080327340798044206719003817108728438476894086781907499954640516024546797258942643934189248871713204622663103515231248373855094631575956736901939948866960916839271833979467086350482807593516685048693588899278777204695972553791593184777812759929419175343241710778848280552587026882063316732227286125800105428526856032628074197914034519939075902709634905589795321591914274843621809502617086410236241841441140683998715865166211225926860462053734296925899432034359210574663235460518223993424690062218337045713713977443227470547402866063117261647097428742677090300169828821955883656553375534380601029268280767979973394285262021810094577665877891966443810908744402867435487827388427111909110387411836372524772091173233482994913961788843951036293620753983846560744923903280520280923173420034447577066770571203384302293040201758901957091184669928619925847007597736444335196313080247575558198092601869874861434620382931709980963342580583370827316449015715266944887733176595410971339911865795914310991132806472926820971674831824273284698280188888396686353614034456116897455960451810553542280360765292446829096482234593504709425034450275513094349883168908468469383972956813810619056724105030078068754321759854649071198687602718447423099128520234795145044888192196059820452002422686482438920880002758805967183508416002521304355165530405293343717519268309746406836842087756511980874667728038114523071668470425171123708439348918610728161755602566789567958114459386210541859515908429619437922181790056396087530027651691302005805816197053874125168402606006885203263308964639747900346225903627334980151553680740022026347699809038925355375874396422365891524411569539745697124298197905774949111575176712787646553123877813105283764591974593573524340675092717909562321418419276419683663793117832385659740641515239684451515448429973601357291603937561090523560710222519328024471116027173755156624392154084876418822037410278087094361118139090792748315418120574423437610099537590018025661632300794922851706212758361711387095443654170627195532331021056776532690161435853275511711502778455542749613497063372462505480617230725238717888097064419820831819029983733873646721201214417872125421140711561331289046579013650107603668057311882950856727029098785212372557294732905152515250110851808206946490343914393833556088270402072138784000258946334189590817551964946548280935605129547904024091352595735024264671089015791776427108730765361000295084503661188505624901223681486368154398014917513479644656489898955552767114668963251825474906149451537042646193818193565086689454085152171807960764501051927707588395939303100523834259377434276619902235951252066040742749727115779704371331161739367717066484332306520621879941134006069795986212011442995065148340886542301154017830767811894919069636712558126849826463820971601726368549103291701870936401589448133150979139226646597713974210919096039539311578607111550636900151582070538853910304323536615944332273409516029547224471693623951656156239872006685999255618190398432073110891024912251449494035293074239784449940932237006328108507289290471174886897207978903469560068373716756347061335137286040551363372969637310104664979976760452258715797305514585329416732014813599372510198677387742057087018333236865937729490062829014575269398254316961583888139232886053287029372131257644877295602147227185630087325272949081736878291855429761693885734306299563925907790346935380170402402287861024783959347022279289683285195662084839089202606530023857760544935630960045816216477271892901266370085926284461285361785130507526851027683669991487023024202110213591985308063392464936498944723746193435972568668143335520907148997609138580520073975119400245037625273827431917331994621654823365087606366326022727597622405614475287561464850768219792261025897246104990825034589316540872669568626747686845298226302083323076421672210943627938721301539242370979783696531366393557556759458643087258731404192654635054598436769921538663257271162490416662412882640601775692757920706237568773712900506940634381842535953818963480437199889194541558249941981052719817184402771146918609108284939178597954881590342280762351733750437260765310396851437075910906001798009765621946653703292671397797765276934994270651949894726673405216896736085631848172904682898050284457578135527158778160354186275950062164553380922154666677072267551489345550555727649073583634037686765819959357914861363058856713745200397282503232069997455640389781223582880064596733615957955358589370634029495807448899495057380685481758635490008989952477105615014348944892785762271218708454609329611803568815639238560793889719397461447285774393392389373870951435813401471952828081494818788835280664511610273474629569068859281040539514277846440534761834593858444414384881890326390544347641406015626298351240188459811799428042974634183618977130060779311124230052545725310205743348393350848120752026034300118096109053622436348739934354988602371756247705653823048396569768370751629965011018415640049955209778335020464670049746737330577942975703305556538080497749588068941164603651509396108406547321472955511804477815159846885523639233537160929129994114220874630271851753830203108748598240018307779347812843178241851853759068131914537573933953142729090219961173180375884628218368927894137993030725699330104595710045003571970918586583029791376417852606029059813682304073675083654711779267123355956173966387480149139288032786365643474193965695602015959971070841657791526620737783360306129681006855759807878949416328956136672032393081138962973793915436079872554074811537673230353535013154188751816724837535560883352681119232826348262045018858708251101916223210278716257173713095189527603087977231407649480457110747093822367536818698914744740436913687684777579363075800257369262645154228424019181052216426757513782723909566113126362789298672848767570628885388127954868017825996663221267869217035685477374980443651982871978424142484760529750686458045493383859015306090209242073806878377702566704352196323767276950385233247159918854764276425160574463282434691181555854173516233525982858653182726014634791617979474873326150039262842208115533662154681852529716508567935429591066027825483661792633105085680746853462579992852934110673694764526152943922084806188954184139925729425090135172336885557884497357590737185209425320585775915689669740451145798199804910234516644218829471501076300973193401089053641534973199357976360109282047192211333289881975176530966034730770923689860924877988676952192554649822913822656865775827689451248782440837557743639238890702476879453283697092003624194114391436716944282952961332027773021598385793538770057772755695177615896932432115163168524094327602634624662569636276735203089999005710131112439693370501336137585047919017940496434139985718665722394995791952697261071450072230494396929003255721642107186712393873955573572728812994078479129767183380977354375382899301870964318936201186171545426891915310108537610804333746092227264561329330183414010387707361455243089385601736379538710634251846525909449633054747141299407586465220213390355956019607930478139132731031415279309250990765635839009888381669177544727383102959115952412037162765684176622378578437954504504420956661113614696435561175450791324157097063338299730984898933118290126406111459276756010317004920816907987803726594689996188084677571519586335289406511204686436177246873072738872730759856295622641335509351927008506974516480710793024625744369518386731213273908601979512762294613974379928785819250314503464282083291597946591229334045662508395759266591358259574216577810779768124253904257674592949817030365227616534798337692558087254182309668319455951576958320916474116138033600728880788798250104897234312608470140587259608230254402728642099516376172840597713801888613446215066682822580879937586700497955194797412430855587468956417018296983198805843809264595285983921309020941185074788959099599357139537697347264355017038241172325648741258986838439227632757013845211343479799394622078240050392098932089468400464835041446212068477515718372050858837466356272681184751597519602284778406601171243346669859973560943239203236278738554041047450016905298713627924763223100598052348361956942287262033811975407056177836343264551048321627890397700497992040667807012366481539421429737632531851112059968607398296135991525676225427062575491782934474889425984750246029402372249963902897802467674250058906261545803081272509320791135166151931794708820787786531052467640465008762555230039294373643292272527112463014615204772829608770837832405231573398036211204467970785356593636753869750100950371137261274912660379281646774693734132406454147757566898226275761033149967937830455313256751317756210352299984337978333168124465627185648302948024117260389836215225095587221825534442235851826189644692785176697487171926891074650240008012303130089960081713583376816453989207456127446305990742638926610872653899747101102501280203154972949104733534573914134718159048647751217939383202065168615934969468410645654032859734729957722380686238830153095967167189857639848798288034197685864441797965481397510829820220907805514555127846883778249988048325587695184207598400580772448740442842469153275736543982423722034962860791251650003418746092759291202944630069309572761069843428982060572375598770268313310126719723351193957365377352344017772330945955142767059825917707181566766935515284677387131727743651186507238581940196886427898394297187093338078006427783533226620183273575986827382581872739269071112276465753652299136355362068193180058694375916133525441724085989387414024815961526564593449218180635726645719345660448034730905166140789316284213914987883066019665994783059204251237060335526403643577775631285360436691557793945892504202056342601976640355235683102836220925928359060482364622996185893203399900676786780259804591435058650151222360366119630050365873999459326561994295260629107857818222254138914224541322564586921684581259218233220660746887934924177550184548921647550786374620628337469991879687802712965463539123265309248472491408335420513469687505511404762458312273208178075821186957651046065364177588629832617667037906449352469994260189363008351380306851114656523071387997398518721010799264996184574022907022823958524135376658040720204153686520899074089927182037992249961470297318898476466965233663515552122888280524429904509935362178234310857487625603334540576110301927935210780161456781789967098875324821620254382332365009282354520665322106324255624047964059413841958841269391033649452137468002959122264628974838365171913537623633895850711207552830231365738528015906901810574702186374905207472783915355365653118197301757230069215444272223189223818772200808938526078877930050036372364937368501171893802437814936320924268192544671135040301703841668758239185530622686409601663612306742427191683799961380509182881988805266687720907921623208769285019902265701891470306776898326533382743882830148391747389446966490894106227874408334390396648820273982843042882410145659933101978860022124511471102471718447528843100532702448749200767827116696397754500208827176027608195074660902009091408893237760315576092018474328923360845293634950502019323103079819539981924254524146792561475950759599452070835074230358563261929932681150041718005702151200416987168824713937195704831579164986362716861877249508879388117273025344214077929022285759804994993448398812478271324312788328060502974033419748769504745494248284611965321088741680350638651607779416646378039728551217451342428071453318091417236070870975137509404458570548797968231270097503957175644711567798650183404201913250459706330968447390915220039151485875308990447466191756058340316856734219335386161716098716143164268460181152919948288331563600074501142251322854624842888740252068721763533561956020736753997594337012390585188912091134862055471340014549429156965915046354006865137708987630129419054808105194258555752025763886914226729227236981810767850739867011263956115457069508220263094415585022114953314452916070831149082892713940929526832331816489420562526746417739850073707073997481369672983387856441587338592264526329789162648705562294199019106972847810989012396109991793079796659442896861522367963510081058310130881810489298913319922557085998085562612981418706890091565865837845120598171291439961944371738628910835239281892259976026829905078640244673296687657276795948749126937456185010974120036379450739732591149332826477562880080832341272700251073298211222606426456348768885137137777865548406559437528452245092224513333101939219405015134578178561326380049907381831837863881823241886578841220342192053951396335377446147574798592785202906562276135835851738125580823756074890867059869311831945984949843731156891507172781778333665292754000602985405746104278486605149469246154424144327471707616071349746935686283080952198078237238858526539475664531634630066557829717133918691904022878731743527138577832820157331741472536375141197621336945132249460086091418630920248987810337094950728488751013247136635370150967587308570559917967539042494037739857450812747426860015533454266811320701501911361952439595299869971680677933429370535143175138659885099119982034138455293658433436833812743810938170296255608837507351105427844866654356476676356557690440294582156983872657259131991831257371858658710466716455510507648512128794544973531990236647150657992164819834041725937218082401421943605798945363671695566140028534882825409472948992865367919348800278930563046115865811400209256665913953963417933961277929969142958805468652159908518620923403638375172271666139853480437150125419564146011901694203653306930812615599635094810546916210504951385754032485322760116911470220903533265560770725744372505101548705782174021997715667354250186371447017487378136270251236246874957527570378566704405451060727019489852037098557917116857500622396639150434823104805742658826651203358336048783392196722045403625585529313855025085700717413632195549908973981385599908366413888208900893051428385566261581350643837788237288380475772579121963115833744867028984696392155533109458326153216698993919973120231561286481978553983610312286911626019861627784626542690359582640649785162989332857678380987105280058044690046482630385536756876081022825300531782715608103446148743909406026696320191733910837902799849914415089718421624418798292159916945723300994405310124656191952115016078557396105339435193850036221332163470100995252604215984424639975872245958868744805310162586348205315185885259833512884936568597364539073654426887730729694087375917104451698213011238710994751017080307372991946845178116356200947777267258871978165711553569511209496813840190318914055717528918444411278056064000206042121480451442725180305497328528222380301364154391354242689918431484629982557705963201411872264952748508454729654906418870610381423715868033067441338947297433741719554230533749138579385206323336714159267559042504851165645972204152526931942431327277820140957701580090003107189529494814105786736350195736871710381878979817025558657915699656131272677656503012207828064914246818717270365737302352202606686784699940904955721033771286972038093410718168765718409506738523864054088902825154057983325863430949171622919967233280204965059771952096897434603544488395343963237962060484490266130094711152873332623797103800482453289923353234675423385646041923190629577671357035414677886022620529232947047372666455646826552313156739756218132310932303627050529872359243743620984699304834016046084551434412491854296950854251116471536333041965581979158384218605735273951409455945521044835717383222248051518952624053760100812322190672018680449569119511753017013322072844204403776228603484633464288898524261137926537789906385323055023654141908981870648582532967836738851241522161756698689162850844452699779851767519399084559362738558891950342070079091446771658551431742550517288192572604222813038669345985759441088984861800116911768289954397718602604326355852908912292899873025812351730306076966482807982084347867388933031313721072791544836136785073330084680785725132306613791798480082427174454705490611993025697748240291224721787714118917583311597513747769531553077300212746961175042803387247298557384498003902503725698345469112712032365325420292226062066203619024108515434514211382671287438269984569710670918051591004999268066790067150337998370148104327931278388300601450297205540826020222078700879192069692765376524668046111003937476984795964189728371702717533747396903691641959757669889144426331366491770006124817576021407372635875709348897619487140739088136787956183651112702218540912499662187577539503051360082412871599405672606038653567476317851863456056748395821355481248643318877341841603906476186213472135897401862198815390324690545633469187746068151423469128530415954608048595326081710749518890113816538480563778053936643068590752950863497439311606966333224002277783720057463494763318290330467118538274779608481389333839363583539945920754977297507642072182773091124962099504383842357099826524342949563696170121520532720504136470297305638288297053732427817349676006387831546079641283432056085545823845875517653340213553225929271222424993594094016364110591539280965545545401723816948646150187253204985211504398554367525541185160717795616075186760848661664121611548854872286950249360864479410358289520817674036085677591665235150392143600546531436347895620656329191602724342030371804660243804562721067090569322194319865990169821892253762806655096711707027126712302077743729196958809819264846554903224749841820257331155392163389328691072329844470506896538435019664212325076718118409374636663522311905237624700532140524509135844208367240128606928895969497192626566467487624644798302401538207921643451753008357853585925348449017257339680598621854657292430771962899850252811690729253449885733019436288328705846305741410784386056159920071388129719598261869774617776502590857238147672374806766279091390489290562479507108333230298717350873518752642851256672503238261515988289178440932781424399247853028207117366527184623008319390323751981273188055323767525976001663824608694843061871383094235259619509199160511249829614077536882355022721850055872002210803060842160408962854573653416096845166273442126956190049325759819850471744339913120311530828714022503027790675605688516857793247371627052226828647508714416448376927667805885462331737569598404612443485606016266382157331924243203049061162849004466642681535197651027278942874255015473051403535873351604977643559602965323802224791467256620226807451698033743398904484247102009314927636448000984630050251952914758579382694212556955833652184258259744922441210973284873927245086450187888164005775665593737729028817801759327203226333580251293445177035568546015748899490815318597642663222720454642524330437537539286153413670266230774414948367337228645446524773661014438555607599503565954143389100068506841097704410583808987864046431350669159331653592803851357001927336471161954214323219591509603689290237457855734675734143639845168177596643955110037425132765812408296586628072470499526574396919362986776318927300312610956676971834036315182541379164188451595957128836607950304525514361292057795031985268231961100034660124725337631702799121966302828878253666915538234503194005323024478439497060610165691170996206649528843999886205666221165686083813726651370361271847197724244744578199580181037010552501446504491086763570858513232167841569901060576537134784322142498425646684213760757336698863059630650837542653789807527918809300999188697261831303908109132189838815514219088198948590765631634352135001299352424780061673981895701850910829435436691699122528217347245752899117475051754089022775322283600172790817191733233828928782634055239913710305181801834639825568298483032959555697566778684263623768869154884593614579171113102101072625121042844181454588839807618344354126672344693108862728782230648696458664335171546175388141204474903395748397280333138422141956739433735289738302162092038705136203320455215973197919156639866619918994121394486294800638955990153879690296669005037735575611860515491353323279585548788044279840311092955164733988215861618085358079973652742185289839450828429360164033688057292680480732903223893049162974440401366239157433420089935619119018938505677941787721678530848586526356807037595282092677474079757375938208402529185870559079869931699896174612588589988649509586990998308235562869749753388598956506369389629184477232158926253905170059506323088468167875856611646000184414366304644053169339592833515167821267073325061623011510913274838698392262715673572246529914030494376029961576374432679244837524729242166237720999000841507141753863110921017927586078487901921289584751935686256602246512608211298547453455588004378151336239706388122068532195272636806323996162371492940001746923708706355192631035022912151108919219693641241915727758979781705997184944302100140835218646422688785862008023104315402683158401415827552359435216532742904651227912309724883873170469880297150537777793865806214532229935947140604806349854332661309669258636039884267897349672002670668141611027240087096955506918183583654737326427297078588639762596858809487510591145533712460026951092994131506137284451632524080184678743303122589998260201365105777991618386172340297807390272574400904213650517998302604419897100445127659163161777031640904593069169847530548416768992622965513560541789503646906452672788334316841132040121460238023070850173731935090275291449390377085426001998137128208316579365533656417570059889910293374684856081185675201300254071863824742324454410480333372014501338124835656600173451844137053822785612478382920428893408783274415073735253179412172604056156425066702210726631827240388220523298067471615052344435407437134577921651758836856009472626984660716889130592153095121425630441522005566292863509854211967398431207452527539890437044375134154071921893000196088377675917802018262556869664302669903965131905469405134172169674141624703482343137313256569465267468584368735593655845665910011264665807407321861800088307987903373434328229247482906234589506569450926909547653788393248405190326332040819512994714339740296909039339077058564781097304311281671380378765862224910861996725572091696385872425812382513339558300176162288782885796304326477174237656412660025219461875407297622161558036438696917468374757956290949404244002919399054082925040309402013280819215296009863472598778932259687825953021718900392304629766523003063772351422818095124327811522476813922047117739400825150740337784732613708139757470970195309480029120911971987528889569535401075169490687424702269697532814401035749466099742734266797088036561808794988361382734450678278529191799095188514329194305011399470110468354943692320994306947160796946633536838541335465092525610999709563916947916687559020795392351620955840577427867854459312947797465226050611175050270094593110824970344885673709728347492005299253511564933783749921337166217861925081023058883806894022330051922794541649726279072541756123833353860649901350250385256646109276477779610208768702171573080801769911381773401387835525591306433448566849832458362345274492129522637712167867288382776087481541191399223715098397148452582882644494459849079954638509414951039267293365091248287158218748347798059661022615631398547775386024271904063543366293915854252617294635125387104069551212368770893876142136745541857662783658103016766602543247416054611471552320147631013312686642975693382218966804236049067064398984570631551603154474774461362928685127868329096090478888434351523272804112940969825373140193498130629450908329499667262327204408164401678576814092020183237997572151828247547548975692776886034943648824656278704556466042916443760712117945128087217179463664541817143412370246939424951272720594965075048444002033449885757151744561195283935322832696796078020250397229523571065542451118048119564747240863237998845417537061625029756926999936012490690790888469111870086978097980415167627454220034287400135189078861848410788161665637937431625061084484988465486947214878575819840474786304631688178719644799035327058828628592242352324626369719092997323266397529533097733233146457227405985807928711295495309411972912629559698381004540893655363157665813871316243335418444102150339879698966628598085883478111039297544490471691361343510167959498461020799415904920997071845298528889679009945941961097837828570898377460942515439044509306456362664303330875943159869977481169898739048699519436947996062595938779985618187525463990358123730323521382845167044998363653978014556768184505745850655760931780314332226522464030784911073997844385800532226877212627203685003901039254488542234855199755849515480618383959315201092082221718336763941207317942143649008348409492663646883724871912334645550828974467213288625486502300527505245761561534743304283810381945352114026825233363706080419035436351031262309376418412440642288553919706838402753344384504506142996334024803935155153941082682520113951241749637710412294767173970774771563578505178854942189089754585780196285900875463427780452242757087403870473963076588271556766207282811768269423690328610159632061035198028864781722107929694726581012412258709039528733441267490721433545097150500092319287570653955009615681346359771258290841988989818261666544490599220966213057779538158880712097377865862846331363237809073817299695614379735176275238273394615651495600710834687790537301680310758703503057397168479642178512105365023264729620532444880480871024552401296845546600102147671225726736837276122936331720267961245739437085003694987201041321737804622542238240957959398097436121274641769409868294913204597615573428140710881019784143560740536597194369468017889199709225693001508269902635733633921306319661670858035872887547322869946417974231150569448138172149832875621893486462595835463381451929285212810752086575609584923547991179975979381112891353604914102590294508509477253924726224001779476731579334561051508315036995059761855825410187624981683201201241759381201464683078735438484400378277168890469683498058850737408100273105863588525905441946049460102269964647957662258700887275457730418327358399984542714065157800235755292731263281870135341086200794977351030699318930878843656222182779520487122981666290045248592736219640704772381539937319528760357386050825495311234076690319886176660850589337692197703922447943722413457118058643943794140297088367073595601088704722224940405230629683626827353155173489450006360492245687513604517219230023305433588900142968214618381726535076686490329137657869066202607220448501742650824449723049356495157503557644617542834237966571481722973990046275780267085033283242310712277129051535973348901452819751493827450796750723124505953603576166179785368639951644687314393811324391439961235124654750648787985145236141181823424459762831968960802341568976836184664115788783961014890616022780976164596726266102726837905212443709811080508276918448243733083598365534354414467216823251546491059231504177267443905158306603368234513923951231786959709593312908824958540799897434037791935088947645135335193126663838646617157670248856623455491951194177864937537263285428468422658936849059993363326077743341180284658324833584432865532832689244639262289379093281686078726632277430811186819267535736536684050000601140317191584011878124006420354054307884661682426888013729868664505895372326128236138742297930032229589343196955743889204022686818101115398028598312012507125510846870644358779323384750410181081325262685130197939521898429237926426147600712198678060740805219368181754369955977878216550109852143134392757992521714038686755550552154684943691914069831332028863858563519310063727571791520934463703151133607389125840653336865883327681355763235331869526644702642412608700077751026127106967473213709751676864521983296591070368024830531995947688395043184693854479065876936414549149366910870722872305106504678435661596091241710883018480812235603434298327213917524901121863766200933020325472637657871547304481519351160457668032595660886622375352697329581944522369228401237172427002627970801910984593935252812882630933460386692435585552782087961984661690807367144642151826563601061144773393377473637970858179929568111511966500832713061223702355175826799885784736816188372110080011814190254860075966311835151236600753599007464047121816533456878429418903937509447059648564138172601403448602147914416225476829673925188259914369139575145731512181943882314541741310993564043974978188311857074484762848917413218416706853290784215094296925251207501419060528960651160002493108929560897193636358926879465142414908805650674611847872330408257047832320196519901893445436164069506896831200815154233408952428696939699613904356618613309092953291455214906752558625501552925972983999971469924539236107872766769628003189262076603158808478016246872764377817807507956608958035755515632982165785115728144961103504886585894680847663491160212489836535165168101932202796412738700746862193479310366200541993425701747743857240971787486951351528238772365120816742900618407335598638746813056698051785854563327995622856768484100489272287404162842284177270407753116157197721986129569718845573142768677394579771035054511279106433420745202128996321262214462752568640440453028291564393250277306590579885499523283493892738917754824353887327023538288893612095385227546502534847441244596422224387459149734610691311784936103440018965034462608349585477994070260334549226493173980215878759360865196457876742330463966425880482503481514093625729857719647269379781595705702092967521115088461574436046872564087377897189073396936147573188629324122367200293601256258198263638170128644881882821308276863088864368116533506637600973619343085619560425265114356781762018720614989743858199251075108607266997701005632583998764587985169472609278932121493826524109717769641099887354821218114310203990963330446037029456609389105308527073425056667884924015024193702513098740388030827657716999734341509119495342132567508142859828025735869478115977424087880832811836162834519071773168757902276613788690257781611173720815374249420423185780141734145139159438677495175831686308644308976481607218156146236522647210973324294403757990628821524022945446267449232122034633081726445893831770851792442949715882479460833637293037055379171827970036436521883147481797161995390822371594112932514204165117638505477505150302906196524591001293317784864353894488300271938483235197357184583596722820846172490764007903567155287690143255715270371346330938796244670719210921041966535284227479627535391140412218078472997479269178088889980137388033864993755596757223082138993154358081474756106738624145204801021627424018960339854713523556808985524376766136322191204333546637154944568802536591724726596798142051916798872534699205161897173839200764460320473079822046805951228718744624601019636905312272128670937796356453375016418877553704301638342189342612209149750906891936631597446063383922866736913830804608653352973274536839205452822591989379610792416570027473719652419339326217236575495136601617853349710115393795865123874824826400897860238847525214031119950865219244339057651379325620139401526214642362851616832190181028104837711023123646488541279839992595748803207595234155922989399752501810551086084054428604912888121321801440756535613845037060448484561399191292429352705928613288858013657597205461244571953938211501694164156886131044945597071683835996319651085826712526322344424105999620069069417222222318933307696316766863475384890391300968911116600302293322193313695429722881313178534102537809115031694106122508280819267631655772371173948489505204640985986125425299057116004512377486312661308486297606102820947044394311864350839569485947043678921508194334869916668655370636531097337311694537689142362464666430937886018875945424850221905985181630602557411639309434049272619832040141022148992843796127173124509956991972301788488243583886576958485058346110972420304873176475204820322835554578830128263662952421683486901108775246514033467538023797111531724609039444917261028925770752659383254055328509797496822106345731980968657664217492163701579752049711952267589620260147564243821772113192916760479883253574105656447106651451279597470357257915914348308080368287348488947562366251038882733801828594271783809904578726439611913071355217740407193657307774239739599009312619237968063204064795000822873281544252883397369052394552590958862440459199166134857107417193428470531233325667038335166741238559094811795962831507860847433887588197892902484358943358634563893796082892695571786651976972677657714452604405391659763560597443494692340170147522395501589666743985883410789642200854952929831133212266254601333275653412613403049841562014238253812556753736744676101557585933870064071574673859846929618688668603159311189669886674124848856525163125461507143034963457932687512854820106384793698308832432181861926908804028111492565747410061828252526438594301704448061815716706438072160473123194653782601377025493776095410834332763984436127891929713190366479357912624391744605114022611950675449650782906578288083517116820065708555141314514638861699250929081506717963143962099676593688314748438179993220360899918975004834473920053947670522657861004014783340744314185518625555701757769438289993972015451605155845480273134906092360263391615824128603273616389447678625862537592148434278490177177323909567707695262035227629491588921170797517778122965400675479874020088665641761782994389315777846625331831782211928344304297370932136137037164155000901428179583698128842348329860478819690211623580398909992167565599278835958314546008464800955981994863981724614284804822967269962954382265249078111263202762849401348988332658908815248323092031318816604105360242441825169395740392719295392162334069673918466588238431912438096745075799029783856941422998588176744554162417044327392777100614958390235866219110306691073436992295890004250020369996781737218196063865467171746386954681761318006381380549598293018288067087920551097937715284214594444912603603578219185564743400287625563825049674021460146333533041210262509717432234100009164058238782405311284144536555591495547833239271001614741224985083978039617891175936503018136486993154334745159935691984294331537101447310425466753206741072331824249635445998953321480241453849438960091208247294035159147174106717969301421267734800010563497517760843731262026404059820907471055088755051079316393415408197996253752040970401834682942984781652342363527200810390045233556705900543685786643423831184021133795659056444966004478904424113837377060786567700290053674475263732913863926717009645506205086732918383208050922196289382589324486747758629032619374421322468561465139835748441941731391305371731182183495788157886573149618001338342218008524210241679872548118347366053610319654668230860689332033162651970545927811486224220510519614457117647629358656473835752026529618561029076076326670002567356993464983622462754646887991896672612236276506610792636117352465083565541198433384712673846802284848390333696394014892785789540578413675705204652912458034626819304707116049892206452527749777251964158110439729326781423711138066708511641281243777022395726981385835334113489026377880690037326371152695634562409949337917247515615104927413662116106538331339885437750257287153953241173708277389175030645095803108842824050343065317541599525600628209760932291843909023878500049436431668141294350371339014344912077233974088580379278907600047492750481817937233581229102568099443774519481295071949729655366983562764049065342037047800626563243562895487922933861431083523629702811689907759678066914726870308811056930037044846543202446996366698979883439800222380782944466316697557227043460054543605701767579536270353493628858336940806648460123354724416489684692839617044464496652451811417988432738730249460650986154407393208866982797721351969573250668917495405770697268983802842656625271125296240692605792587414457866710155830761787489224429912399922256272156158136933258595218782038938222797190556147522127348240671546271781903066238959178665039341700109219234019817561886448801210719218464864565840517609307689482048733296360476528213943150775639686943830101890788193181299891897629288234218374039572484214884327703110168287223706634675104036975204582196922180578493001415040081133736219791157512675492002559163645900683349031327714316214317432871606054327778508702986716670265200543170940476019387867978832275920899094585924776698520138481276485604251883143110453039116844687826492783070161239976310622021907424057750286948036024641389343253539481996290540559425245280429138746133716303865340046746085051686991294686123042770990841180217019562933156514035132928360167409229307089407764496273816803562488198222176490849608598058933415775290104804873492857462615343300530666574829191659442115247200054467728226390240685664697026163082737902363132156114412912462295012330548567652475342211015683553085244684962669312638304394229594770698317985115322493109421661480478904834662526003263337533199824120485813914847139224225158097880263327628346225228436820570365986764876603389773384966182115135898840253814791799050968052842149352304491791307004459853540752151279474727471086463386889432199973669578836469716003471268482686231899195738780613018605441423294135647812526177126578987587612763436829104419498224030265429143454688481366357955362319375580956209468926973024994839425545176242055087960357221533307303275215372150724560544106877468198075436478767420831760386916504343943328329032033901716924331882712044633733443019843061785322441476878791184161341713214467579161318335742999959900368616863566197471370973617228338074539671158857637158867699862659673710232872228365199224300912073620943835269520270265734176913330941572540474581217514426635372900729972051670197271502344918516713317447657754775237348671646716730171033843539713304198688938072753410554718321270930096346225936517257665745917971634306943645607603344682690936786902128969910637285074024863466163975169649776967022669834356063747733424507659663345051207617062052265805108535397286514777829808465575577571710540025165541005612793648724959637715951429196428527574981847051841204142051286375052133305459928618720138778311753501948119456749280188347767194296378644007133328388001356008077255495989683967179211795602359086668692686880840174908199270424749726438779678280135634725858643013418384763139181277107531171064164925148187017245090167110294615030554258229240134935547972456253859626134666249765856062689109097201541897447332031947990779649694362071165586614632478856549285580300741598974017978860709630374643247922902646008312177693070346301339641270438105022148247628563810737126536351913939078802016827706747526035537009504699230753593231381356414263124074736766524788005785330658315590480355562514887428416607539717576724368755987931780495262865040561980463291148959822690090501951139855271569361906944874221337937091116982087061384893975085900517458470850231904690677742768524942931556639928712678790961460293690943170287603311187357768943444814355149996894033145469047858663470950954022303602857394695671477381569260648065113126543284269847914946341173236085949103805375101689955548371316024177738782838193391828065034780456227892161794034726154089007772408594587784714400960515329408906179156164542303470849894613291044582079905720506836196777281127503937992846316939257238924159629321465811527342982016929159588737196315579035551419851980335821956205827698918841708920441789075821242378964752697709138515525923618118234120140830932958881304202361525425777502291152572312496416009583315762070567048052770491815604556172641974913094249030887619967424031944132675274982007285145127991945935539062743784747782137095777666099787280343427319419971403944343924479279683639923031854889442635869834628137159158839884821376320650071859675278543085079060113967622920994294815676866209202537089925220218869582256947205854396989683549946705112183058238392353673508812003763053748455244872707154680572498102957229094685244718217748871917797433318234719340586274604783391528727168251577763964721304748583498708501462427079489624265453422762623660810455948331950114142545474606612975200498582898757104635538800039960803272025227253311764317415428181080900470791895234455154580187838946365973916213614396779020012165239806350536621158324014650684466354329663773125974275298869271053225117791168774338562489993088523367894583617346631216852887840477738399663147372623641207988242436892967266443461305748900903960408020859142641590477815041676794880246402530663453667071328561482611591188178323535237657466446625638136476757253620612332362960904350093752312449979405240289279246796038883569685046055575082850321043973141988166004404242511082228683745771323351897660981937759029127859544876181823947784905546767215612129736125811183499774018194054054033993473660267822489243979021268157092788607991157160666819655626452198371355213059867331666544763039428120344502960885344889325722340827048366095103668146673130786397165990822642134237175445315464558487964514608027651487166394502607722075619981622376165563525037188362998774905619487793006358369679574008927142968583079941914366679971392818794618117014381024993824825866158933455732393043492245148403584582127083455056771796742334894224817283410515060027018266519653805084527263377443546319953382543624369210198741096431104844688049290010113731228139945349908330988155153101551074171990405218937549136323292926115693755071735362824359736238675552925167440224602826893527604167016643517559513247681848224365342825218211567622107277084139287386030161433224500172531639889739139606819083821403512087375924594132172458212988713362650235717204687287189143730191959447680161508782706715375373233183423324628529763300928406243465750250317720063072290444813549546923647807378102404119209233152285438047951227147928705269665488179408799061987640339219172531158478152480089259054452595358688333977378081450862358794458741531894033732215788568774848531965214180087273076447914338351685551018064654247049000895061091477051390794559179827583243685865114656794042112016874348377996575221601095450993128201764957434101009424439861633027967694440066779733717580787238740546658053632650415130509841024186831064676282749953197968055279110964625369733778817118558874895529666859767363354985895243132878426997992952940425414258252808956227505110270610011044506772174622011777986753532506562175631944313964457167642588911451968091221725308761373948951915414592869115287672584652633145024691121808661530097890073428633652880459266984125374784709984787920715369631282856983653418856347113619041731635574389914238153368766446742838555266720228705238660083433000116315349756475236684064026696372622381864109771932843454682077377652886062596370853502709639275305802779747809695588049510348528152891591707572304807594673750819842374972465164816457560292052934654841966366478285287182499463273894133143966494279772410130263985853759296458868333148521977180944764561064315788927335984345335339224975383219755086487662078232061987111144729798303967471119366637840084159463201334400805145398884811199659972320266011894781009177406332402174496142399146552602917339268031787605683389834702658099365355802547591602036739945609609865341581126657705528168524609750662332718844882961247406113184046736479201841234972868048820447356201270951665749004996538556498316379718080179056409846525825355292083369776324814019629858797977526486826920601114392805160944565782619004056820205412814871482155228573441203121948040273866559942758351300343114755645074429405220552987946892435418869001655397864996432984800677950164400854365110992631903423045635109981109150713321356828237135015400708706883760908220414222352554259054506793169178240396840016187284230655263200827954333130316204156020566773177242470524833488896714002476731251441577698743650766035053336372492302899257428379590698242513520197219937834539648314317921203768177306928465419941274509541637576175101101923530663925519394470998211417568999322583911020300256247950702711592973727661171023558118443642055859498039697203549037827199644363249523617148657054693930317148558608089379719886994317883474259205494759193611428347821949565250778701502293956884865614711724091020671565728532349379682811552008919576722857084556730896457729619970014408369051160597508223574542908042562190214527647838036364930288724828328788973086048490084427046635480533630700320161848325608825102310422054635828948084930715820087874524553008741154918638135606563090794779878790661082100702901288685352686661214295623481429416423060414018295096421117495126587577456005863154330565665200533236373095595592271349235461894407673447302058099168883925710486814805825073101446167889795229775901026250888804207774643761915052405401991770988179077835165953631266699601302941289399640765793693538626385434086341219080584095586553988084946373606786564603205428842386555391475980258799675910776920752953873390222750829127580673630328234503617738077066156634146563317913939927526433949338478561098813481325560110339933121693217587250007336545434103748742047816026065477134400233583826368157185676614772634664600369152550786221167966982769752582045112525234585290637703157323949824253679552494777209022520307014907292206426203440061194792512563700441512065229955679157250371200165759746062902245413764522486030711010912681959218783005710753033840756041720177997039693557658563880202290609664310643244981839147097789260174718713959083405519512427763110717702926408654802098638627311159711413046584387373581105646987485477119792248384445498259040594138658501481459762972760663924108258010515823616215675022099964718197084686455723138606526919021108186017752602689654220050537752134182769049742918771194652172779257898941670858148421118481155477238694096187585532978653102679351832967214399839165952883069799997290876354039382792250069471355030949977747017686331394191246911173547612823851908080871284965081359246178829740646743790271902201227184866125012710050785802934667316854498762843507785799069297275557654166603076111322082517220555675905181285405694797655155646560019591132529297439249581385209618406223140212609681668510024728051631394603174487945354635184733288077912976376388656397828287726322726295330235181936307312027137107115055115032345890263069284779826829524005058028067237164543823583825687284169308060005299749484094857194214412071311084961042840829341903913131894494762770084052601388342504370800655571593060052072841475013689078897638895026531213793213466106306760358211050564868677880249373288190710935798682220320881293839552251325807604636015034002844087718939315862977802583151915968424401561797454952181211408577787100589479769761721414869332617253319025058153000175676808102423383964122980492540392151474448976609700675987729655192715405654885838353249183708365825591429486684477396891050176148866280706287266085502218701939610548565088010822192150104444804791127242955762013732389705388661006877237848195875074443019045979217852658025477690091817070862266551752509726832439342358539031706351913984894301932421946996401927601768667601851746371038043493481675818201912266273606514245381691693738784469068084442345654493494559712248123431495388156530564931771715747777172865951905744815505720027133168506319874096235744267009745248401674137280652497876523635201761072335826113959452348457120448638540046214750230108663289696047290964910014883332568289886971972934110085820019431579709141395457539574283760795104651147927219186141293287756893823149968591970559690906891954270454034112116597716791691315868301383476139190439984862017252957601471500276162882783767286174486544506150362961517448784984951271038018647039636320078603910675863922764281655732029962461993826866359348905830358610592402544288488315342496150553442161141196382535556786514332867951209774225996586541484635593088326827138655754686815873667598650691056832917263778053885224081948937991017456759324915045114805881477705323796470762281848148659577429042388873882304905837255163197180403648744055914603881579478178048823461218136297832178509414323870625001194955736714009009717436297967790733388020927851471045550922473712780961318905523239398514447721914056296605126137544811488065868468901357462717675865001687587161690909967026158996943314468298310689910581906588408545295469139480512305386515257801335568999790002928291434179720860462823463471745849070331008126275249322297608811881362499644900942684323385818002665013822646687795986764378370245305449163959198844293796534179751785735099838500755996564761832023245358238493242287985978696427277013606850099058239701938427988560466361829940379219264462669027474997013496997964259076467353255891774350723369485296683253935364930017950154998445283666243483934043559734801000430601801438551761497204289671446795855019899713420946298618747703822963846164804121043530050127649422914892464805403523286145135302295555325410752831196533366715326773940186476062777412599198485029843432795158828282564385526294534045617328796610928565293813367630702309995443119562371204693715347985773383344231763446028433155939794953376808128030161896433906963423704122510696032689212542885643728648284737864291364542881469821360216679855969168999777151881588937994648152602539648428822495114337557449011632801060904546599543191235403807450250333638982358131307638215514516679926648572094320552406227858635262601678398295829802062237440571205164969324355582791965093695233530408727490801907959351890759404068479400859880968433947356583497583019346597500894070135701957143089257546761210300127569245690503027518753374695504701699682344067439261336634021124551441428275290064031010760314403039673715732913547188358349935331929419436604196411270432882602004177281130920762417415617268553485600300775929396672273897146870967740352129717202022731133096421921028762881262504436519869169074877875242303926879469855725679737240495922999619220662366384684950652682964278212427198784045201028317288434240081936914006203317618732323361514572755424838137973249707263578269287549317271823813412091456868340098022987605989309049516972805738437160809386124249998139977318138719697769736061177608504687087168398734107614137124858033334784609456699058054286921352590509229823570932209133193510567877832482304578233949127486348628289035670801073261343429313335444929538424818647200737497101678955953381705755709907281708190527695936474566641194487554831250909991943375356614518625711549358879740399286282811323931878937657728592811606707234377969997268733752519395710012891599658085786617947809349411372012996687709129190552359265805949386810594867666619960131866361643955326062902544027495661125344894747487734354748409450446783110785151895189183050889939714500297159875922587797189220836193281677510348608933762045286773542422944620653495212264831945703315829812320498734884964799489730866395222869288213748490020166100940447939369893346001494273049688707031169893858516700854101435187064138939062192438284794126722137038913052088373858031351724090916550548093035906544116527848512325655485450994772128784022357209932124061025069454979468860612919109444279014285672668368218562172457100955051320645106454234271746101972123561658204403650783483637473461728402751699606472693175695847848545229536980462169177085596605521493913158988176924692294460000188433135135385697403605853315667606801183198067372461021056295884862938471165696397872226226956084004993912937454701263907003010447269630408789168676551632626477715685104424615672168045832536010702539756660957243082978040390408918668948112495768395795379503744991982940721555311524725958530244431567823898729398413514009784729676996786087615991267110186813953266600072911085206110414495140552253981618280979491004829924323321050397222741038468423646798986217098689161960124207206069551219369653517953648638371918553963664342409447189174728904108336499654324042897565552954194493087386953717650272131143805211295130879476036743572398829002210142948177966637554288232972666435666344282086808526563975605912563885474305041851801344049722097559112052442385156013683608710648571465423159771510221781404899539647110076880169982087565209852627762267142071413981835889014761866422774034364546906984251369114285718565375311257070291560737763190461605787211408154147688596057445974618243556345275232837109050479648034162514834628711713120042447231341907401766317734052536776069453306916267754762996724542855771290329972094519662466638317400117893249971695856757675863675020578183707103761945545811911088899326660496568697277289419467452705411129896985551337295735034550381065808129152566423919391415207431410040134866734436213229755109683348118024688056498560887603965663551567189817284580188788317250733438227433710433448654405119827006076150176719087025764683723505326862051438885913755897149718963145086673794049933846738198160721766931251369271917598428011110211138189199512528962276303108394084222554779310660317458110049934242892295252017324510414141645222549607265032855059120532995438857057252871393199016935306828090563171022216173708168916417208417529393072045311577934421488042354576194033251845627587576809416038191186309608448738007259492433794648976839828850154370257519888171087455439807835562839686952850070215669847449803568042482240420378248064494171093341842415745794122513714751427743337857904632326884947697196653225596319520293441943341855230590531318978319240690676122836118181224762231178709211122619264632908979249045274392701354965500240961269727537740496552132315677814197797983623373858177771818348484727771469594207081203335246387217855383949279594062309718988911662128789045981048696631653094578611130359542861150899587062245920527273143850487595813429956868803762440587026040290795609888533196197965234767920097333843042344160729471283291373937451180604577082969854013819836486949612820136448852356048355754478858703360081794863179550401801755521886630711572319730746520876936656165093157804658610182762516754005749160302681239419211905440435626468149633990296704828682243755571170052717517776156710492088124739578382779332668348683542044390205898105762860757274820273268789972057993013953013200385983996926071341954186204771224039235811700395404309898850411982147933403555676242554100677308173835697400823703153039657791350758454335369134206073582296205063685510310084905263243147863363881681303471521280244342661891298603150594969165394641489053084747839989327770417468519028896163570389477164802973135472560968434034631093146524289015383285643272593901166224726114791067890075759664781055212924678568324742229063800505026105077596967012260506443202005758687893573093839593798439804368144776393950930166441588034235071753738343431641049689578269696280508414112932522978310722409541627534702717448090974078781371656609084601520664739331432440064356533631365100997279794184381421086141788900656785200701033474623898491675995614433509406179912767384187041029765758801477927357856780091923383594651256158266274969174273551730145681423824567300609150479745525759438007294939296173531474016812303951320126410692305575692643601133304416842051269458133118297495284242770971051158764318381145853108757311671613883477768177496901544516118514478473131660640061785646070797116544720227366295393937750063020159962969385506344253647257885752272797098778243260652974260688414251727337001977865915660164393882594500066515579316201743487555353398280463678289021956966503516821936021218351395605319490771278048838971485142806009738024647012498062072421094617668456607351754068134693400617852246938785833297361923619412154326147654181589653516926462099904961952454675012832235554509118608581531497334144663590277086924060870860764390877737292669414814964285960618670799628758649169237157308710377864952922101934741287741693916835956562912265065091182064607320411427528389889411313924178627906128571117008418330958083192380154886816462697068708281809080254852214302205382726517601888139904590585527211578285900271611583080113415561455326767549283598586720541103985575257700806840488915133321079600871326331436553231916682088907642579072284125845278270120994144044945855828545163373974611679188305062014487382675438758906393898960553338737301224799937062255008176631709085072199173923738828531485430709602337308326493154566542593444948053543993979507362949144479821069129049792949198148889859163882019931034140752970313359781675100721263487401238311779442516255174241992608393893179630946785699886166002417839954150671764518099205908059073776038115081029254922787510709291691765057192936004439440547860827571258836275659192119971521991775075615690682246731809159849633776137300209406018215389666285696676562813912825225684668286271848313929655874323590226783451398575334885470224712456959274629819344023727305054907912472861133273852101506358739636139981699829892701687131691066530203727672547756783525380366170091911418908828679167970853355282672214576513067393869956407803028767921628483276273842109093337110141132743581453539009514358857667048028135106076452721441874915916650615282769477411814232218119094678025378966021819668288553869474098034248051305746718867527028372637155632120832591289506858737477713798907418551171787196554278577776405687282897054517375544238603059861804935715851883133605830648639734683692329547795594941031038872084646295813234004688648770906392497311711990663718696587967557059392380965325502641783606078859447835302861216334593039315482103448965732000337451776923549207470132527875879874906583214543096475599721706938891399573001466731705493835203510715815416330269177620910013746377587560359742992003603819782999375066437061950192813161912704766644278732550950160818184510172034126486931235722886273661993336909510470976786549591467757841025371064156607104278721483927016270234539983325545656383160105921420844506815483276001417096585862328857619682701651660146307136237075641208747165055847318687944945731581284481658073053375279486804501623782040469068187008618303422698177906421629447921561505506961222645535680546139954303017839190411322349734361112674852499211116119051847621986917425406281753594709324313475681990073696208966414455341988235921841256120625639683766733259394764903789345978264730916887070173745505572390150726151240885300962609492652968574363462177883540908787001187563620371629951399191972665263879535167967113969610829645638220172735335822082894473679974666582279553248299521502370231140656197134158888310668894147979925344534662937870426578553663019988182030502281323066936839300597868813642015166040484681120344741058382185114703108778043111336615977988420034454772911278002709497983243637733079273174394724028820095866068253188904326365819004573610321155201302667005173920016734720428332754890932838395541267417397005584412269051627051674207807890584808850111122812537571095603289973554882253534553333460527672823584493107597982125488958257279781224851578454733388901025430767061944512883243174667515174406711907229669719980526286551256383184989905270701859827973888414884918088583958996524718378884469954038821726907343084384977752234734813910712759846155687552836694671799625767066219615299345317557165455651763296746545570122845441683908119664184638234903060927171301182777770977782153077749404012191190803920173809497796980107425581039447469173183893254231007166142549115835728105775061311129215953196759542224884771775149481416820005195636933941875168223593714857102388098828935319796309991589318097710703552794951313505526406034938489877030860611296199298546696807207236480818044712005205168861237897049239735459586711081861042530880245964407693819145837271448929909216025150022575154322763232247968328273581051870905274344607544774874660555264013523534487807678859570431386336317014288337406995456221468165829375568026457800111405211841194226727667889302878849974504468995909271046448571696694802749703963654584424605401555340222974824137655065474828455787902317605990057991031015435736685580448169265552504043744206483197719151083751159451783242024290340508198396391693722628785577806429595697498707451808529030119298624163156263625082220095911915757647920906020771574310872577521058708739846969162038576877152243516127129441609623525613006085021250393313756904103354446199238646420387233528988025860097970134863541697141328204097308653266931027933604599636088094167123539012799955071266125157886190233778001959470592434126399496894082692105018567451003360430885089638393745740360924728039630732521043434134100277311374708102046615446603823306157554518485986812398078773686846963272952189211802370722776076375400653164405261847028162618995122710306096779259723791644065964030420013603789132288153961531408972913579848574992629455337845786607426638259728058376409140699882297483912688515377746766582436861329349432709558912724376146949109286425730164482606597674457174475742716546439587061007610420800114514928658308896299060443687142471613861644844434069673731728361945711227723095093214060339166083223320390612816586824418675753800236218810701493237031552008718747002803663116562236868341665581767869221561648178816939390457684920159849116937842819768123070274594811077818582421390754760811361763843216375310593668052198855459523320295849866450098647448331245822848348520252575087804758708289118026661735573730062199346248181233932377898846916041141773602639145680400003363473545822270354896440934454755464102875840888584654164076408941719446857346575442702947836686667921789004306921129742361862715094862390346973814771936661262775908438355367011515999788560374628140874137146060305057342771705679791791300880405668358935750609884243470926851689094775881988266336077314435489465400579422542360716201666254090140933349667077415923758874576092198021043449978552479837442455922721714817665547804337779785488118665343899440668309780691754867149569732956837052259705832329751005585599878556967942511008129563681630454456661717593958326976551807725167978547816742214243732807965034578861513620330942051931501364324981479450724765992617258824932736283348496317703873189757676648992770759343882088164262517135239121980493994259436984968617968327561414170220870507913426015439591290875394876292087782202010479117307822503650461132697342679614857713554212729630574511283633188831528999552477631146237197830729066315172026067836045828917240495869418168825729215036523245616321936517121896831283102000185001488332909975091923817018164819660885268314118275421957768651091103778469985811991569118705757521876395244357355711081760243316715685200120354574306620824481155657658886492920808171653340317760502800899343638553010013374500874017166478517700165521432691842469300959388020662865410311393931302200671327914683895019193033898421776960724807012831167614924366122044199345852377914086590627900046350180976569949877124128756442238058843846312455213909440458859868577494823018128543468070800811696546616909386189697653414675114364974084443636186543162087789114112342143825593786682752667161517798623345231410245550699736564748659218048631749154245247322489981114116905338788585657172035793479294217052390778458858029489792163257345379829958749499538397420230364005524978612357343015703685034999720053992948303945343125140552963518447530932687200504875517887751048423370829729730402463738572442692892037889809435019433722665847736097029130595209064646723280385123792832130558399187209012148008185834590517416996231155075577163777859226873962917488184212693379035356497520594435647306406010134448194320115489129506034905963403587566820278082899180517728792751045937756611880459958393729820133500434664206800727432549356241479268762622780905107489532316574049874036011206985117736746127780194039288024612217599433601404938478868694710934878461926602390435302884863318711449552977015217777020925782487904510510986288603817903113834978463846142087343669316162589630305985471301853727866357169729361633614166953705205902053613391705843982361327180438449520374322642953659305072052993656647778611610802673257797902796528317639664213995212619644159934478718575601477537476563494428646358533238442706703170067968946708478927288054295103286746484688597852968052768818667918406649336915836890042652991720779107452181478794811687159612511034990480927147834486777545319327280625913010993219977952031178816552990007756553211037946849787553767686034580293319174351864548210139483457051848571673904361338582079704055495504137263054218112572011752939788950419191701618160190915751169981453317278123918169514785619935721981814836618850680819699116231920855600401062972233739738274591726694286804048796155423878021202626323842772793747439973903048879393885497801581424679176213561536543038370042429634414745711449012002980760638620124677808878383022671532917644980409064386009264070696299922323130061273613636458309521902355008726192242907868109333231809071113702980256761254836649542812509058492085576254199525698665646528524282982828072001465323191464412916017401724370666744426925390007052205544423937940357762279573829385755622686352034503915634487500535190767886741890631669573866622995615213264303462614781000998580956385155444740232711816023249915539806742589857574908329216375601211108705926843587233467440668990363324661576304934392130930880416634866390004206847763332613132962066680784257386229399193107133659110412052938573658719595811186297951505829136324579315696796867795209385899199506574432334217909355375744066546576353474975415668409168070814720321153960837801096718844827641851009762675758984348619514939434157039795081161144399535221352931182066807939982373794811028208099587767047042446633003894459550718150390212503949821622167628901139444696870451632741060158289924326862716427103954530750533806769796099939822954750310246327162021300948720014789363833396882660777094378843671201319836109826291034855223309140648343093533956889080417211993411748074524692811577593195723137658480160248311179137430106778896609774952263415787617444074990733586978625846992140904177174175054928905575316985562412622931108780805538707870216049690474108607196852879525957458224046987066362205422667656707551938941430227598514674431676309259766625633868583615986261352252167491991736035542284121238125179476871148966940862349325790566725218177304544276433187742029135487513630734287618018051474689631190219133877125413043787742731338416761009910051959284027920524728511063759955532103339235816425499557069731881665536900397597147220987225419693900002319707810094474976154786750764941764407832737833003817914325626654685308747975217641512534527511144066322956914760728019192634021607358193927316129007975304015983528830812740333924444552753602209721354589965412749626024331106402131365848054552590121533694009316275849113395073057169028138866581075987334574490186685190926544908606128572282669080663958894862292822588730115936818623195387402494230797222688117351079488551898248957379528531221771076692290147281232031182864924857564668151664220032078487902465578815580084924392262328679670899999554678558209574432807628997781994892392398629098485392464842173029472999247381745331653186801837953544604483295844336645241595050673037117117563830466578881533030742572195375391759964548642309099787851867325238258684691691315224842940992951745290717879437957155190431157987754565300267194122265971139312268624605454355449002847992830400264459791166560675017524683852421565742267067240201527700940428596387759919683579978378314433082324292476688331606771435026590695822720870887655862791538779807678603329495106503002926157862463501965759568023181906355850237266847655061548811914024420724336376589106238295774788472369467737044926370951070566038797095589520481023320802211129753180963144376178999683118155913416183559460829183221485347038581620893808567808617842280298330047660938013339003794896305703677866550630797185044623074311191823858087929777363527984062272296268549062444645876087767865174513857620302417604776660744240517187082062064521053734294317831996549819119313036452002580058972796093319563387004456623124715449838780846944096977145205552316378087105220891483189946460650773451224118656383413754146629413400397205457201590372187189509408820428048046695595420330020238556113649260250189441086440380118056464638187513261491565512924242002089739846544162399856913474744924322777038736373939301453872934069723378485423178160738612847696278078474534784883709795186063017157032090579131298659232911785857857099110563659213085309121944112903491386398202252865964383078971836693107077731787156739041687434178722449734041106290401806104195908370544897671502470131803286322693665023743675766371769698423021402759511989702489630677147173307394699671300938701159670852279430185684600424133547849182491006415425334794808436960576914148078695997605320381967946991327005736935814374122608416713548532594000304592991421789478713625904987285201399194094066381820727454610887817832800898443848263725669395347327172097953506939777474276965911949501653416183687528704170039738658745095423431403665857343416142716759340383147162030056538198773076679900346649282262717421785907944281056445562380943196403386119346974219374667428660451324854267479170882734724889604916504788192796879496324115948671023951051980935412304670631811845361548621174898973547806289187715660919814502382227982985479823551914051736524305516641535543439060205208894703630883183034555085465951233904476614872605882981111824428217108331460130791026908395369357415304485568054476540780605868548218049958248643979619594510516398330405745557706624534112397246567694751084616243058263268649698048588837930110629713422833580862257752320886970528777503608022021556968054112474209002357357340715021450382647609745561972621872044782304902278305974419990835144925482776103021533959842645242666692577150006141755436886031478476873363575433703542116727104871221769610544443195367924388609271040106616329830204040672156664658191607040895649839125566023558695676053039178168595925143847011896277304706344405507207572353674340531094677717069781299387717892937638595018541175229262807963190448354522863596500241559461164690880375515120825341098154708992598394996301620149289895386885050678471950432210735070394624908598221499184516843535292566439453497666389235590391206648393674409295396117022561963784252935975969292447537530976046141607491898546333761522425090427999567389310757104177637149526028620829170498900263234929278127286499042335688483476242043398740406870726416811522161720735790304230529471780421368753436842346921407668391054125421233965622819136622699884058768115628353864862163419276007666187218377154080188066884517744996826685725802343634217779247634472218816287678791358505682925379878196536142702963850640463416686159783486445201110611974343288458847324808234139597095572949276968395139929299626350607106641302510290823183519146748085096451505822521368109055519891721314145643859784998933711986125065096933395556829226432652951629248648147186758848640358142078174153105413807298637741130881591838719466695815139227652643644454843002712687554095759172921671358594240502189910411121757082499110257956255080035804693590303931417629629335201543490921655993170700313298502397217558352640339948342572698794315195106133147761936277789904139902043560540803993792273765092044025460328671934135394564006393883995264370631069066034967436461048446512447642469549228167524047554774559625085058031653747351781480250796074528739562906516000430934334778488420417428863024385231077003665596826993076408723849649294680816230674223360281413282356494271592514962918430911649611003429691082543468979983634399634310543674389445459257396041750259994327657150736705220534619485402847678973093232481202261333260782581829685812780110767991470434386340823699862005754577955355825326113420811649371028323947405862110935210764344683960372215042064485315251966186171076607600972529867484541259693163570685357522501722427436377729323839278754990294422041565699893941663288932769131136578307920076778796208257405448494217612814969731438474362828165109969950692160872551962768449608715943523181897970644832809402148473404656914106495025572194055071122502190854113846560284790464851813547354057917427362748483758405494790194161312113047309144616203509385934620193992858660340118310524946691679099751371744660264568972086205059541407805207099605070485034037309121732856039707760270695857902728459232908900318228799852397423046155763469154668709111808817132052344775183304170991447407385265044233163747772620215522717551874474019191574098046333065303012735957006999365241569515136212121813511066788901457808137400161499916374901846369224806026212817771812577765850708218908902414254574105353676144617561544591007712884464011611590048340029724342802536262592438095412027202302417725119179793371941407759276445227308884643595129726846007729233637609912000467846254562563435320111254998355531744112976044918056456123523561810235902467380251119891178405843823202739646924347037217786814611039066192975124848062024372718508986492875095341764641163841349269290529844042993446062691684052189019337066528206641684989108142614133692401631344761406514042983001269897814927189504575492576362821199716957973114393840057176464231741733617582919528933769032703798291876103912344947722156175824251069930951571181934546564600253813359967618254279771721617806929234197280093343328110250477785993385639450283324862649216010063697307040279916910547234000763448197045640775474722300078763273236183744671024068880284472104634227837801116936932553470386718640279684656062466912309276931871466510162944839182115763487837358720476461069066358159228501663520003695445665625347644292334323191753095268111324767122912451530843720044277844779355163331891403261617114764169985907500802420255501823306382462474670316015990565890417313136459127212852732312499740855304097085899054971281257589783003705387918181601319510334316492807531080420504223166372237348397701627233464824703410899039771671193534986366085546250158718077859662116401490403427138709770698419876534613360616907768402018339284580630668147604247374810877632866412862118366364045146902271832425145261148207820406980578354604561034035975618161481939181419522605469331484293504658078032561186971805427228688096659476272930280321983411799656274442353519716669326790866276474997828605920125151245787847029505202880189427916091179813003715505020951274739424917326707350461228118067021540040675902193830826571905520271473796136176259126380208918013993034979107889102170021085190820234627543875584409243281629627572939673469122488248982803610956877569309654209566555223264204177706483078142257970693762465748392575956539114189851618746814728997740270256247002329283618793635373278353302656110953327887736776863738900574475078362105817906175009244072244294490361438836629645961327422372540269398624045734532459820523367110741419295514748677470610163704377051064368887248836212733766790665309836003336082069856452071242790486953096121881942667932373667216130156849090682518872289462905298906533290152189196306680424909814295490022671728512708212522024108617698811791263451172276144069050754107422659597952084132854283557102921121578875097443851824015250074076811852630846599574613678879871504942397084985049446751721726705141566945568238556814570894815344569499384978673636248434462581824537401103737092443877330682351064349139256766635026121080178554507677353730628153130144602986114020219112398311205643878226974209341728570385936618737411160605210181174688027202877525148302934049344232483172967919404606161402324136244157784547583364695290125585850520826728143424664755586110860321210494889404757262583800407399534650015399291839874647299969777940261631667531400245225229094197653193167345704480934795947385060473237200594595522843695568692552903723338343679359358304055775131277039823277942624133687753598199874481454672781706157050537467934505067425299910942905548516635424662816510856605336884937089256700128303388020201292464304647348631058898159804204457410140968103667994077610014475642825829142635444692194659961526713811210290406513508941269045947249952873276564505420029528180577265159983046517293375632261180533972670400596587226418896244490651077902644027410875125117202830833154197886926541561749195575472100829052929669800142724568965882635594768129044569648288587465409683496135667067102767187095560905859175890360461444876805814043894143088762123814610961654120851030865172056134598895695886514567025368399299098278289650728209832976306934959439773043758258963183584466748963611314795838364124032648587711999464277600962800962039627276676307977290140783950093367996133231259305106792833726621805925039592258291273212026744611439633080543740684227881017704691545537839372553476718998887138230791895540428963276591678821848270556899972073805802433107680208628497841517167067273830010282937736215428358390823087153375029794495870216564961062713823382269558375706346771961437686117893424145249950258589805922434127048960637487287068055883838401766350021655225732974913247718172109781381238683298816386740192836025870075818455737441797165000272877625083452292921506162989212348086168604750432331923304117112146744868856022119704365827782830487200598649482632582156147596017101742979608510184780332586615517044100752027031995535494867167027296666864481290318247770277065483371046102733536452440894245804143354602394525601309881066817745785821451486198192241595754079403629369175395146257991260777852771159390909965223568976195845295194588739927280975594276668835453236080969510399733350077792918312627381169673304103789011743000571614122768259262289813034817468034904405974130245644881190077966267911211412159109897268797138109604638439159230395850162450335582323499905718137859387847080173821926120076710065463888258455030373585319607973369734645563957711733656273674325013804036363368889415297749335822132073625974833708566746700897630623546645985713134314231034857707581511133614762393976385892247813065335771714035014227546981742310210480611894948092608797639706102360641694839241725811349938678596896419808528271588748817151871700074394714449523253996540880012600291364882125655685895614808301793200771939977003900522304153827776846805334628625767915943648861821314744521279098039724795199537975021974360353648189522687741600292849395469789966185607584924537663290939043115647186416396826222601874563572398504308640177009762993312532268813544229682912194441469456231791897233531112224519556737548279554700645812569278421741121740538446960347344972712640578340997815487743570587304853455564278833364954718601038555646649914789163201893587233138614866114134021115071432726416165732108926314965857461628904234020990363121226692571164020796500732030862744857581036043899319882499852087348758282269403864422124455383759500788447175922452796388993497242677770737004083896071745972257903175296712595065129944286030662321220424025272606234889881353162931908113102170216833855126023129562453158070592425681512450871406283260979542328291747325682353460388794502707558997376984494531954653086873077513502108892717930042930289209532875448741000370291006549598649814696354792635544622822232722958065729629712139321797120210309830401740875071837238048932065681857839910340591976565289495132027661912819934785436386586732022812911821053576124422695657217103076160923640791703278477285973700138061595841391029538228872747503722982533954324484489691569254041156987654540240088102095343866157053282428812825392323418354958539826115901019277944722037646725389027555983604930541461222302782554835949329499349465589026747555460509135224968573816104181525672582545909209182913156874433243153376743654155824448276433795851735843180928599871041968470308316749439278564401399939126135905534666328015190091704887629976244557366409681464291698021618879640190163908351462157893655976102290768192466632241267569462379631192994274019347452626617557842781980760544116996492470841558646843617213177044798674042763737755985833616939172422743800852403123797876703973974210223356690104259275610104779897294718444234005860939009087375758123286397690482732038816582753257139197966358868886388374251314727952171184312296962247965432828577702850723098659922971635497811983833090438270182118878890257262443461345971853624743442279051604039669073538711020973080912255924448242954413567141802300096282646569849579810349786477342196074792716436962562534963362334931830555733256184690571900671244021170110364705416342671953079549343666143578327116256443487341484140306177613278911461968012598833834245854513226838939745755406514595685115572195892006557216999888823376657191835939558050667339117519266951668200343646228788790793420964111626384127682777040861840140316817206038771067602080265447234571373813798493325951869287653190354754393538204735160770524047324595070197644722561794647317988287153656024204489205438281617794679101524437350658258838293568754425776175247365561092632331034425624520241573418701692378353268674563297940794391593909925073010115351581917590480536573093847454500524129450227888696433514441959174229948135589136285508922932900239921298964966388580209826332909264522523580181547245401395296512378334898485932037886652824378198105645855850499042917973266745321531721849525301192266682819325849719859845375470639901879253166912469682992337442373471352236610305398346446976783413886837712387091960453662847786405812863899280332726552867536517649110827406410029209583991554105238173153814817425024633740282336155643189274796412050176521596782629182638840134102766008467874410494810739921103426623303347004198403404316830540602477095599133198398380639155384914776709349423661069228625868911474037359814231349043715981439607593820594548003929823966159844745038486890440051637142422361775218614252086175885459223858417480994048466239852476390933808775326741278780730187394288278747764491256908410301920105647840485323348493747057532125455532984809085991965044580475085048357454366636463192057021630086731800332389792184570548633149059874646040308278249780741650482744475997612726151621256113298255836661299660983850959212607548862427041889066469958848156049983703445893999475801646104927711154084492933280194368576724028534216194419153010582886314921305122352840327200105403259550663058246909973060556046055086406658743205182291253917126972344240450301969579572512345344096836817439354897136455182215902610212806935268043078754769035435437427470533506236806223197723435682339875424037506699335446584391001759029942971758944573362950747407770573371962819987363441603147198635913878842324081552357328714954011235579729135598863658516184898471323175479494581472199314081324453991887238020462952479032408368198107420871464695703994687272717226901376646114290317486601667684950290383784017840318931483789979550599831821508636368790434511701231143608100585906177349861472309425860627487897285110994653635126462961300797702697123484615844894653959018803577786110639667084934772520293954190366061593409572305256037462383553192089028807551901452059636883211340531960793913510196594257458011481639869590781730495056233454499811418414686724942821172301516122365466881378304193106494602193911986890434031453501287716620014410690339099288271403668430191119848801309171032435835161323861694257754461444895187902572231266473619967151603433657029965353378248145738160816933405966501070606717529871803156696069659527749916696130224150360525549743607525976419166796626214898308499885769768511861941076015485769200897976117684303300147858813222498581625937868701326182327607801971886957744339315275308735560128765384452097267812963121446855724646300258505425807393857923077980268231798552223067883362093595069403079920078243646854011822333213182871173418300554675173935103406461408839895080093393560839646767501465121638488831208248072221118034839557619626122640033579001715181566737259339275650467451516732742624807168866982142351053787253048073742315748148479712833537836440351247756942685991181584223317762626113446117247215088082406086829331247048189374217819495387959116547544658645400228451724753077904225615874436268896298134198904989647714273589374714021475533533285035157807964529977595128226723732907985029689888029655178689660292084190381935242867351456982953599830332704619325791872140730877291152769978090736294160186434086523449479588535141366912821960471902135844379838360642523120801102491237388734743986077180118552474895373215712439390654333761388042602998423195374635083948146161369076669807282257842755305384956564481872841029612548817502282549826574807970386334040365186414981646166816339828048148170666513724793736747293486618426000577905284086031398457562910464177328240714976851450924884820334211506437296346026666260752159901107934781408832152203792995499734160617595811972904810706367715187731291944751993491896182492563691871097463023566534068807613208658545266727157804683173804248680403004169584433053144677866315149874881430269135239423324186677620865252228632060776041890726694311793353168992682707469574108222762095860888213280197657253143709736094678342129247519099504274755856501573316661585644719241094903126886853350869787646045971975764333486344238990761018356475276874720879445315961926244300272571617688055698268347826335908862605464447718543527571358515337008049946884109641672428102256388168298698138654514043139751821301526879674154284078610044411725076760163265771057014599651671302920416100599142512409587143245015886738241541223321539293608566048490178055708522115471291730447197865044368851471816951553034299853400427105239057778402883349054606764063702831244847650100993073580766062636015491279720892960643656344344436141869956044173968880214278043136477131412092081600179890347643840118757587778276552534768440904258380958313282960154599020597043489629115619241205787756127856818559082542376169905167247563537383152461765857227946519476114583727812533408480164998076400994147683184250601475401055260948413324960619072261707546178950642611555070298001748820958159172007831932057546047576603021038202905537730932677716683469934415754683026460718705025791404811297261860852222737737274251603415479415531531808647030742657132458450242777733197512534885122331616070440957595499705467972651897237806008740520481729647618041963252878092151275125247595020526337373674624161188589864108373464468809797116848543529436050770426662366943614465083058958137105806673540431090309585185859064062958423980087132349495713123032116964722042988561542693141159241534407998474636140874681352959127403249878565184592379498246686168769095274994369908662498270070853294856418766343717987434503523911415107742650703051200623519201126163286746594673362906866206163045092484601264526235123748450655751481102600842983805095614890346507493281140846247027342948146837228284075557089760595738384905301099798386718238534158033681834659846497973674582754226776724142783027156480512269788388129304715786721450916566967855732152823099335840113693739649043741938260215233066999177447209120115629753375861309691111354085292474702310735163591413104437267149700720186800182645402448819233035993767863529820533251383171735119658453927983910470552895603536489275574951435173738567551861570276449212552925921588410644883780589498780497996565383170736032280569164193308624627357670349634975377963598877204806818547958526775468535165443993491416954388509125025312272734404158959900257696360086786629890698649565894952646805620826202353249992655323982204002444989226829718999101534225925298509406622387873443350892762116433321223821987287324375833610425474446169207107470709965205639095840038323819948421948812738540419517800203261034455010144865965285535970294694492218794330905416714449807586855809590019427046177392882361619185769413808537028184387243571288230289666798530353421348083691526599848722257795508572010748042846029384645208628465845416826240627212510828455459248326460660524103397284830647368001268620419761792791496618321674550306747060690960659390696831584559684140348086940455315484452461319167538548939140936198459867631364518936708279154926358651792950584408771454356926797387314730515059698984327519311077617570485845260828122700317496181003621052469997859240890352146704526935835750183860646831281975615542862601963792572877450168006202221421746099008432002283140707544004336757623656935509045062372385970112169118776818127583096290791242849594941343731719836900218760065319985810807191730900897709537097341846651286544185985509009758237157069545806325015642305889788124825387127956608997981260712309628490356814862420292018057772955114616023643663900276082053563905904377460367558700634022671322215726191384377479225082857475852495592455662409760534321015159006300980442287237198945268094412313865894996222961394215918359065061796937979961782026757537415795448374058817610978547372633027886696350263693282562052299798363269304140093942976709960115725845140673635081838820890336165522246462234514258990083749730656714238974705330381855990259525491908422827113735077560801455052911556494062459284660523993054721516968412754316798408970407354011327290136005945452301069456007013834873427545754726856610426857536530593079805716503024870735642907551293568220515940921991091753272561464797624502383486125304810119024798118153731395961416337662735265651321996207067395358946129134303918843104907094344880496686143841597140848196538898756804893773179361021843762208187802055154770650526872328268717181207915555859138601904170885315919457008876993176502641662232887922097437964628663208276960100110227140816483709365210379896286204942541470490380882087421842952585309244145826014456044834442622466412748769724821618919313966972189176173253931793392932889339304822950962170291752205209153735764019055345443718707566959600466301454328125470485439604379834440045967234576897330000812779399831218054361575604495315481641980212476689217533059512394746767609605069195963118875103332378935689536646703390534235783898743793592300803163653710249105033425556238391962357826775057607004803926484360559579716766497380103919804816460586242899220993652034833406199773726139722914000248738205547892336712513903233551093491376588748352030049371478972249127195142604113589990793533624958471236904632034253317025036576094210884526407420670419293957361056000678587022764458628691586812358920804823384328300428888336099774874703025565567324939742862973699361081515718502443574102762915149103603160843444389292206607994689648828942220713728752779345755076502469974455626120621399105164951179816106014010646530717442889564184331212835817827723439254563018856117071268775434871043520323019684493149779378816462395682177753087940771533505022869552265194902045063384520199132120292681145112067554683428558296611811178801897628516190952057256488106815509461159395691056416379761765646963611862195606516111628120614224208408181398179092442852978089643814693242553740510848361451696687453953263186148803245582307146461346278857508754444401046912112505692288231477957647235912868098977269758041351492178460338494648970753791352626912678454417020889887245293210575025515352327599878346489510760077555883297137428150917751154526114802336610355980362126713827705227514606283082056028363299939370529045098471861995113250961563470047060859241226938593200602757423875578991364820246286896378394449053702586623662818647757727764412727015145023641379470638550658433232557085239271671327686093628264149971422873884445565652418880369205847268410539003133388763949273947052977619843265063069468338150690374409873065336924231160129892083269362707760179796889676544771326109536206091503761294849256114337744387900355697383212354512607121374301605884221235286968208951237603381027169718278527134725290016317526881431615038071271609246629184764930749452062285243654812231623950846208348910248728379972677733860203223194389921124005317084281875274570512717473220349982724594233565031604769754025166074170616346583795855785403701463052057105681202489401133909340569994387930455112889129998607180971216728735269477382009156829912891578456526591989031771926346591567209402600386185336956679964911979879436975590170274806425902044199677943386506976773452698700369067443716921771741544342129184668812089276607802068462314021395656765651536855715889499130705013448063069050027155660281777739087668072917858717435639800955483354303396749232303656423708684121964612245062335958540766746440906939944372184554866432274109167865824553984969107526967132154471349421164740044701931734506614136139888838739024372197526605102419666109180449386412466045215093604153410734904698137722793977107564008645517785006902103184369834359445251518379827642447575096159109719754897601724103342142597901775637037339772373048246602850248984505166287087706528346740661483381782765591283036144448240349656463226326092454017019328003899711021865064054707113634482206727797996977123026293227838971785613135845125522262725399682666729369964459823336523060955183733253599359049737471129675175252211136120917533277397438646605220324448310054958769449007802664134064660312303786500468867200027566936919613591371537112813825192742230249241217756763795822535345464028299098868823740728314380314829607334728153522860927826074110497558759995276087167442969090812526728402837848571977855400471330301464896267763334663537335860483682807361995411779666989046499415034994376687263318080194600439146430062453405547255635320639807636788589958925096971325021453856431096158892311348789886586101785410203189039220488815307661013407551020275219844626832668856905983350337952026507639873877484438257631640810277326109816246311957219872471834672857589996690455217322785396479012002581130403169525482893346975014679647918439435034835643465848473664213064854007783232594974568828089586697055685806625298768351923589147632328656561657067916605387134546599198208813902014794743679573919307031662710728692838526315239091047380038471660098495616622882271228498684812822865594155305800535629198865470913756274346688674001943893968742350635877354608443195319608007002950862195297376859703465558943954079856385730842720230568232989651851378527208594793206022218191131912517313445007928726695276088428911690563872571458578513585892039643278947402308931831794924949822116930703462518133247712012391436728543877989083787264506845337191616480502777155759858925661023075415282586240872276307907462287478563897593852109985575499052898176778160377557393141591870994376841323918983689291812211863405570486136930071363007615803406685929265210773418964052549860573136352001185123888774478418692812371795728943922432261740501078978519128900864372065655876544631436070536164481430522319318163762629478144108352557287666356252997420593762837859142454518127441531168435470978077803398816756038427602796473806614616452605307745378036580756234307784662927161931562808550107060972298932142903250955315014425416742959197356702932458677266552376840424632162836804801082077760040539988060354050604515427879154451077236645709287095603289511449273061215680543017804124721895880115137379678927659375946568903142779714010953286750118122579287226513442645827303060632436479289809917988934901697907294341999200999891201220499467407018411450239357917263045489077325999331020359263583459222039571548606103726048098266500524453193176153414728489500311680336260625829389544077483992149272481882032223052862099490621463300556120571009544003292809449476296802337585044821454025742530977137147672284912914451929791479271630751862763736243222154245738776853938396440903454638199884812278693070877725032948686027424665395123472995326718828941679443063747264405690577206018564812795455817401332392523418542641994989898149915922704735749761456164866358427236935756560582330073049521717163933093934012831525483439830257905138624733252413980407979739738183686559218250848405760341351309003955628956472397749677761007326168483656525542239642377264285669116897869919971643188860245577575429108876486921248323165945290347979789771010737287862606108853642762048749695482617062906616408546197234196105859518368187108407922482215109347863612662872756008702009666928307621445381753115393780893929599342089141723491499135945393258896998458634546805010440827091555524957164348525907592616600814865253679233425828131510592193710262956661512788579958760628154964934146480654736433700864714796719720285314884710527808699671691022303432514408333681576272746197820053748276059628693691218198869280231593448836255615104016172602594143032828136106873775770927953227741431165597123893150918905133450649011999259794872509678712388696878889987203099820289132223312718184923665356569198559727983697967987419246757472126203134237561513066394673903160010028920442447458428720254164709877339245246689163580276621895861953970149188160884384326484483388696544030024410879084264060558677619584010511803013333662448978443717987171096958157631648676729776286270390779495472507078750972745367293054550760042844423139888224062199748837824117722495066152163620151193209117054495384303045025853083344813978989438886012365512866372008206330785875196251376423791525814929482777104965847946193855328163474575409752641687221772910348168995836790264293658940144039465592307671043043849007464865948157340462553555758363085034757203708797401422781868647077135076582453967348329394660649737766346848749516256936544556050834846038940822148531056932642621706995857087149839048334615579110064554232508294493534362666231997110477467105838486860286761365995822217967385889614165918014234186718057947622261080622493361303435127060715256142768030028941637253854978793421318003828540866054826879414592277648057985859999455353547292738048643285369954674551422294866721982310865981228808483987091254245194726528039082495229496168884999443445642247363656072844569367336307833853826055433268913824167897783103802589769081681879603710527940682689133689817830442772429461438067504857261829413171878540307260166671760863988077603548336138229780852155356859401716076664121777413858789671946963194736091111774728244437049194270141579908763458644270521419065308760061834666457880731821023867200493713789404771470334704223822186678342218691516706450616884660978626437445683088832422330120030032349787528853070840215332147518649041762959496569174439547111333945810694239786792484263936940903879165917765318661800522813629410259011778095800156592824448781697161498505062886122792672317162399931451066365057214260832506245871793376969537252167980353721306954319034789560142434567568110847720229042823271477362173265537729122012974971339221922837566551074043972155661121782285666227052978921522850619010085782547276144954669891816872608451767588840664966335469337587624354918860810148983445043079510610547643095818074057849984559213055672117519024509874414763175454853867185793048952004597464657327717305739202875316831308107275959787986010571070663793211472529027440650894892905946763395407839315597882638773731434574638857068858759354565324197612838298573718736086987520118903914019141602139008689292490378635850148120307446914572818387597844280797951938558217603513115562425130735603617425755575711035343238309828834385529253871513764418084516803978354061370181388338387851842318507709649200232271945907343592697754463171787052582019736904125844810367258839703346776404383934671324777781167305712521004704257169187575722779301187177012171648880799534317655537353633431459131304779796319399269268929201563455810210720034075711221628404615573735673867270252143771758751862668512961086103375159541971975802027549499250516415224810026181450043015635150649228168269016798050371472450660672963037207206183412831800750422679700525977043336657802639486106885925972345676549686613902964006197247153663046885332004124369254717539089993903760592060234685609307553761263848018885145766215298646623473001253323287881360987475269183832316824286426626109329229259833114098422381541627379864165458110125993698970869254456569958186708256008147687158711017921815475984638904605125369803757620424450144738902175435564931385419370277557094351986472028799808293343000465821188171300267579695856432339375454814392007202410740255126462763134715451971110463081307745513104425860477649639707832124096098121451323971225306470008194177512458055806784037231176338286633855455094932008097892443177014652158996377773576112038563097741714439823446004652257430171528814370624054590953441921511108552648388957733578842092023842010529636989852827583950580033962986645063747773141773345956541172835038863607411653493605148096795835177313574697452482297837472149568015961873598292675061735025470132411299697170601213723710672946402382805307829211604578472047538265891287673269723598257911547111700172521324329060093409916758999376099415141256929207781263699605311477626145718431636074748700499664985491796154373926556367952667650632205424859299286934413760274904675924139786140822425641215540889281933720286969628447839203692725065937901431353464829336912262113703869434961264351991405725548812277982124993370461300622568446363425191079977521125997882848768694872005793996597578757229678955175570520879858569162552299213483579085479027543198646290074983065283095111401785216896352577094613305840535674313632246760631699571194706097587113940703634263990474095121692421050194696531991291554234397321896324718171519278414383370907930756474375638130013931029479384228335153684015814871434300584894503930265534934127570974022689540996050680252208112744412553269565190829123308167820486532264455778725501500614512203932199946252468430275160613895929936661171286136467345014991331248222528362387250518250900148912481228210751397059077263836257161188759117190310243611969196725207329397932937936151616393489696925462722305611316325853093780310591660852213068835132652666283225966379373872612685923670620802741593058792926252273380971752848259784571879603652929483364207373626903518449313625991668584301557698870192270811235031466548163692838155062446845581164111650288759390084892384013989447494440067178632720204964474909736767373942274602873206790041842607278600358833104755451985231176296160554808409933670533575510586280240580918536605892845355443750634823475717156690270447186745201855706525093832810085532178622257977264475943024369242808494749638159868768323188421563413106813433886360915859016608407114182889998339354962374280342543854634265894474767029062786558199933684658240701006333789432647921854182727965547071615076591561362951510661619544619969273823468598376482680097529186480991574916321271322244551470974342375967712778023574340160404464858170913426916006818405571185164050740948320832617212501310797366866292865160499324284653544962884339257364116079994230037156943250691710978859900567713084545470474457055711920728674510149972547289840493639130591867092935928257679271701954871884773547933928553993788728353334121579343815810504093505259786648583581625717413295780338008146033433256902857548976694544667614504733906817324004665234706066316919758273157799946420608737049623679044297255724020022414179786625160835292428713608134693404622280695871219638371178490866412682242690549521363936715153409432736220539325738731428630161998736268587165255986088581520834804297220254216434142393203237596331067330921123677439200324005584262236622343933958708732264226990042557559626638569661352460356132303382732306009774011628787053715833966726718087848789886680544167759072902306275929535554595150496373622748251268490369839973382379816972345230837207829037680420413151831681086523833842184727834031346498299488070944705023207304596248096605611142288669882587988089866020610541156573458411450980032093331812006599851085236284142676428035736185116475765629258036276247563514645131831543787107124668664373794607009404774702460724749468093871139734288712249059121516303164005718977103772210214187956336165629620026578231875217254831052095363646804070338473501564504158200453825825888778079355377038061888883014848540611859386439852761096416694628687172265324497280061382706053109083081813483249576339977085900128866111352183333576517636879894762061637101218100567034905654333768396050650591012106321409106865736148461666694018595571812814194102857109554742233467943833834595473290532619883794290767591616163258046177339923587667594060470272089182972628912016438806463234878309632605981258357634124355319362389889557036455535700295563430514251563059661586805632318156422610468800391417771397449170158134195046426710338262667854417397561508513747777218057886852499954829490437086389458192916404543286527716643969111868196736161608678203427534136171022892451609785605848059556922921463963879814948484569103631369449941020066156492033373706287163147042142006252045873111951908156372873574010661924217704734603315761274632480784784621134875437115048070480088297643609352668965139967579110965011301204150391489399190652455974204944572352256483356391020274511401355248151986894108350329647686373572912912996521242325453398629630211377231394527792804588275259275923460230816099366901796147530034891939446730550117718517796828719252719093266255938729190040758860452749405092321572464139431066069800677200648211010756569383956905575103892378845517470556363709643518817285787634481143483131093719945824455331829239434392871607689796444643923826968545705957889216298111947441557505634813992906225361710996003782818623274128035206934188364919251916578860483880584239047680279540858348147718535074972894085461510591787148174696686087456665221648152959666605120508273714019139361695257990684775397893523515921289973754392455983798232429434472214856780264704989445429910662359778303010909322293665605210024112451792171616350153839269184209366485285537255747828241059906006240830180375843464896869448543787092233343961491410641888038353741763285948221031565428247625719713770970109125704310580562670692876072220108733222567298236948724878271136607806312761599529046180724012035473568718808447672195559147536520042679224885843613305338748444725175216826615028872991924517894555658480943411380841952832013154848456892407130645593710040444910422015558179619977273927297626535497789383414249528865859263298251866004872870020477927156590058895762836557842225884615433515236071946269927729635990201087187240817094417007942216097218008033424621560042314916993590497790251483636570944433391052548928577463493716397336321871938971099460299914428036102019712691793307611791635952770629912576251274193397376009381197357476289037335218437983062946619140884601340476375277366163797634622474163450234434384629401220372009383735461995725137709688312670148547422407288360367684956301935540021155279135436064333886165048066181080825587140627741125991674218014555595308754654084148137778417859335608019900683387814779225122776202945684404429357418164563404535684833890431279256774276603098380764086145158398308650943547121567685592429169278465649213178704646271266688275815281963203220735018565890311078129911801397112211235753391361044688022100754536182689694863246443901043506362411259568613035134720539607998611765369100335318398165078025905873760798115188758823655679784306999029366615360693168820650886622406535156526891883715838615784147087593518931395152937513892492150024214175711665076253022497916583525907656809979441094528449981542812575246740489530626751818497873603615330380484610568562339688643958824755736590058985697134475140684235513711284776164729812310087076978012212719873614962926890808541082485262663674758523033393722890705515057289266167268430551011161157747489365049469845578323222404644194336744664703933197786546875550623227140491853550413797285141935516048390739489647143672251763184498942882011994342186850189646965137141986613977455242905750451627214125425861021790834451580572688403705830159271681952782642082061819086651483372968956683439554346186744822560759699316955097536221576721217938371630314442752265315389334625407986158933792956619321696167488825569903179574310215542779559671170522823021529584073617496318613486111770155414722688074712458580839232501053278264474029505564873246701946097427972783561187244501151554850731107920094274917001760805427450898186846195730185493791058401113733921099591158841402720742311916568359892137130431184119306002327560428184780626832051625343694482964535834773634083255893676505633181812984782361168965037834524617460848620891073849813553616344634310753270513499445526916944255265695135947678966306668132312097450774339302243144962732562603535396412187599519242791045040319610362368973912989013757916356004969264917939707285628005199532584511226942813371644268778372466583411851644931545630527029420775156415736052003890154065789761033317300067991607142661520205219500704179850168075464430250969587344778079073120993289352650846338877129827616176923030898468806674255259230077655694561040863394984141202198214529033148443171760499201893456684953640553608929549650002879142437717302576229688444072356905146291944085790349787954263529152358555412753870253725197496456158927991544779712164931114576452052792558695590893642127048460741926077313476004855272025154362350868538253027208392686150079110902307340577880965855735966205721335226774127114493448382834496796659499004255846941684388677382335149726291275338303942234435265040079744005290518254793335310984535685024814807341923097703679624897954867629907368935080808511548380057319865051821652291294846070601772505675058923232316144935004508072455978153153864724069507002367401436001455156257614546691187025103045694619946376656969060553252798510411375370368970270572704945160821673161023845982068461950173136581572231095300655428741666322613524731178786367607861128547713289263772287056063636716929490995311708898581574779893325202014408686332760216873823399644158877132252382338505883287676050907239289316731415627067368794821025847510477538712053921894490584914094652223510737080808174372795028987884541504970424993820641891152425590986528812909728065960714838995022675646865713290766738785816479943141191251138899853822212091994979434557144011324101935793178814236654564120562757039123681970063075169689022257084105448977354089304533795894741968309462092340846822554022057467561750097013744346813205843603531105194022590986958168944488378819031995170162944698583164069517791979905552948678017599309323903641541293542337565755498022253684983077323512348072005065651400501937366124795452900618129912172134571731777920395302919283250443549109556602393560152064135050641477862846355636353640686518612201535259299168904764992371303543570609277022068486087859913122107596369609448816839730193249046112461953617908104237966233793527959740577484554886133812988014523834660474696004613699259890329086048082047095026468948732318873978783626838609633734258895233342026757546539998196972042455716888296183358549002972646162928121317708675652000249828170845417229080593021077474021186921677874580562027380254961877055320969528770676133470799145796529059083356649135199795064974749691142867601796744783110278774255863286105763066022285335655185957298220260739190281203709038752129849056534529854179084695489465064347053310843035434145719123843403268810719659446571270497910658020764306294499215641864104793013717692019904035057986326038468580530477646766383569341445607776029516321893655695807187483623256235156848114956586839464818744585735004399656150973142676880027582518540612644312169376860420598787177913582410824165903473225987223686270855993518950077396552626960544049047847208816084575428753127266297529133759261730930701944140715697986920191636396778646546597134384413062651884382803199859152418465178667772132982430496474922309763901467270857431805417073027118209005665379179168682020655983765358124672639454875301637804971872102121776399617968048462765139358957478018262188493060082948529251089090915282460731050106045575044911055892548298953977904323269605660646404911235135362161258639934143597366581415826692798812727697626662030753691253274005841639410986897052152660882987912574374835655490887437162470313105463285756824044980406871916745693948665342962785060382715700370839020871973564679785284058983120891669310210167652762990798093057390137134026999958741614387933230425135465470629738067843863771025196047547630885471182254107990521489054847813692207826747325148626566799332433774070791219792913145464862006091363699530098763880690737044547467560611236757134947830097989210206573188942474822537429080980678343968146503457261694073438262521758500866015852491092929888465515720601170748806835240607479485701745578943351207578454847013670303553156519885021658271395678454397327053073353333197665583955760740756375122745300888588980791967510576350844632915163046805386227470074311382868080497199470568229689914947551889174107407085411603550278193456875130516602028573200269485118989463678928067796447028791792035434348704960326142795258289047317121364728939197050112571086180622181814348118567508646396178705196992596373129625198634674942540002889414578178531814826648922022593706774319878101822945720217625938840881905355876492208690466228027369089478928726107847416343372240069069356414117330593549407027185457750160107843895760591511976431779917190275698042595254643143619510111389349935924128918613892861250852318037749356576950014911012750354120301580749154974310884810683448041472773856200876517336918294592372532280669902634317574626000723510840937351503046553438892650329142831943686573665921629941656715151783240899570454483353718953861905662879452831567747075643529361129529155502958144068050233232784035173167996550036972721387184478124261451885492944665772264337755185341036460475537636490541692081448714599905077569598818335198456721554643712213477122370045858689512441573740979012580131717574027853015881625972034397406312803152004600044308983215370955455983279106686340766400101052744437434520803964589228287419399167542018828540924396911522416955744976886534467560866087640566145375627208339250749973127094903797593046630211900446889899335161242294280335364410548894837678613891208413179744618761872217217943523289626773641626952145381601554695996311059924114472795599828898010550876423517033436770766238178917603138451029966741863065403716059897038122738207748931278826680229275454131175158545624750690488341535463465932434649961619959851473479673924731925132976983864292526934391021186734569785944835340407455457347255704609121101765244631889989584268241833473664449727163175064597023308078900558170240041885651472833408425173168597217393267909926905434599873615946835219980906984905356791593725540816888553101122969534913497680466964228487907201071315439122390973607550682490460530308815964979830948473981895108866969340213174713039519334778683352577579320206419652259280255354997977697321107763601199532517198281842620355386486476999370745799333108341393976641191654849191815747623037848342341150880475236487678629816736564250157191465157005431658912575213431437264860948177664725544481886624546136319390537746322102223778436830593075319292803122236227321218521133669833132929254195431425543260588059171257274781075030472362395435335295800996564159644758296734520035515695083086983802358126207801096455468869575567242511320557243013189295954200946439027304604169723755952006215533431039367677774875570393625754134390404940723326088309377266769767682616357022829077468204847901154154307662003410775919943078586308693344257955855855236429288471177078293413807431438564867196826750438440909707526469192769593826169198183329445387992239945662009369778541215121131869095645990051370071312736296486341134522764885885626358126939846574796620992293073008336511358940364885842098124645362236232997008277268628897921116210815635134883691454048191730693551686580884577322686594134777127013832865469383698694477139748963032032714733479993538185377097926535956395882786665067089394479146274510056096289530898349033056598798334936716240390325704507300374672287992931153253428881823441961173285680205275558109531950690076838248703191338431025891284460388873568665254268612382427893087019324183898461585607533137618568252093825201295556798306555597897448116306775232898114859641213522750904422111295812916431185084319070941272557392050007585424121606243212962330374213543852831356612623920205361576124485372345216852257315771515841793336908251798018974916277451170091934118465227766880506942228282035741455002919961597336769546195599835737664462252379200776693518012249561590747104569233375098571201220914949704582486054812383953509157596000763742355275438954666624138508169168086793901275886191664826304900144551741889779952074918970518098115372533953962499246142310440952486286704366556054554989885616451640100221834626653976548971576335613039513548394595068985699006488404105066394584128828732100121001894744110986898235376892349619489723331949564827310400718370354452885288501471135806071079196393745023959653186001843419509598686765393402600382313968180761812951787332291156789810163047532428084699566106617041625520408599323641950015374845294426828850276558168123442249050677392102484464863595491066615856354010710459705212390493275840532909047858737944134558503577801514770483999204782033490030613565804132007983423479590935470706633543847016461520411173351430198688899342810755580222765127706810985027869260862304094648197322167113406197996454153722495848866800595531954557294743608103855747699408139334970987158538200981073972712944328404722481977779648955107689981634641652539961580920936101823309533787033763351609677075420659162164958156792117901789631013256908447215803937030423489478636974324235098659250380743659433474964957821057576324083976722800668938150632864835833666860352395744779435890302998953997018748910260954901231994253224452683511230225757967466146112253424536303097091048128546646040118155169400843508287358319305160293743735883782978287022200191946399255791285383770106076778319975736191745588626854626116502497005276734870876083455861235246311279596725523154984635228980213609596917451739720287252812675132673151559187299777304580179870161819166183503431592018649317855906317980441077842381578758850046078831713437829564814672654907113247497150292242840419166944497971244623724952147701563676908702520856156027747729703475464882251941223197175196263535544341822884720839669345772957776524734792889301371184009555733051845614259695423333058356104941429508005861642981507766013603311966667701908927614795952477711746794351750104784444441191954081569369020095604677519717806166729704970354028143599278620953207659954454683067672843088974757803251492231769810754717982139552302929834280948870127247708643545597067499127760584968294904485200314657604465592518371811579447488440954210460559450832143062356959484402774343192539176873453771169250768993925022056884593815137145885997034895496418538889487574129472039132367340325111709396869613221512171876491700120280173319861027901531416213047845947240906773208973527945672807257273198504163663154142700736317133109589789187537098487594783662492744975019544551001132810031564523944867569971655001886038186512613438594926942436694989196324519026226667132493398743196295391734099196188191346372821011228101715192931193755202057190310688257323809887211788573847057216379193898625211607828553806892729163830708161813889033243834942527470232065884264348184143160325591930641505068895783803495574373021283449269520192596405180745895820352777561276876865338375098353661928209399825770122220353201284423615129826496474588434384307737641472627378670420957454912003708074910910827964548536415215462685610614831804601784642182366728875789380930315084888312044205812284715644347941427939247223439216429840333491414543761708955023304043390770382844809508123725900287617827231664026274088890536118212815409662293628561567261643841253358112177431274081933769020729406226564565949571888050350559456657952783013924844686771580303846767103271971266288349308796916631486147737452586315134743175920744522348801380026611013137924205203255493407178736740287618615048881847291757547233762104216355078862434308645843584959056902500108352652158833710793943389512041002879193547722855876739264530881417369765119926286280845557928981282945238763037200678497911828500037160163900313468589381024002238336411726341716469002192768943032622708913788905239747934727579212341084942498358407640519729267296257028457632018770609959724746269333352747176095831679941066830862480641836294811618876736266665217590350625543025493626094814466727411037980737692481796123747448557647822486157099813613052411511088015716504796658979055646276526610503736169183576868290284249796552703941083209782846275449427314708122077794929600876064514623758202312314781251457962019214611621218345084533177334062783306746678393648152884286501431252759681624663094844457434791893534327844333369016497062071815344737769400554329348210505730829900223373159308952435785003394194483300833075489896576548204948885962578390863071733205343817852755392830969640638040605467224805006024409322457935741752248557723080756394070172853429598957714113290618227735684681378212448973408855858822108492563813879169795889219029537014951266807728358853099645798816671489037191569336314709285615387612731225338649719602948030276669998847043615029955893738554597341391300673844737480977150773712324845296542234587669071388802493352486326938561223677066962993076182034746262949412668867990359625893924188717035646357357131544426351484583895709812723077294831250503019476658466727517602259579672030295973856493911855807369155037939357386704591353231255947601464042766168632253508866432906016466056974802432167111072783317376470617173268244205633452015339891477045322732458164088240869329704838296012848710176759117571553811425048343305412420293358723260928410211908664592196819780190950980620882828319209394019006843604783741315671952220499114215047356722960822363571947850130070388702833822133175436827275380656610762788531656034672724648861177691352728937367358569280638603589865240702902382735636112771787217319098073935044734823159733935773307454173098292042448141950100098297739283817870623350920694212294116946305119608892776295897557493312517120305669982980786659893292826178415410306538039830819964371454073880365868775745078452236305316739194200594824483604666219507006774045788570953346774827509197668057368146513917582222799669150717043018924834911287464227798396100556040882570278528953657661695370820423560167692489104257121645887619810418659193973828850721002258196575683485259772924477909531656966910595871284749852643513924012271416682066260481375425787350032068158188815202193264983980058894151436505001710122768477079763124997932105355267025784132357849179515837500430832295295529719309955838246542695415869967416596489739999790092855952451291152682188490701812472260675747439691078995810155195884934183012002300623484357678328211522988721607425464384776246834799875646985925690397594529159860568194438503549186174641726906288553730629081681763904267449489925624900117334991621151904207311182941145200101317215377987797719341276251693325791682531473494762909356971523820099080289518126057409707570228710454829066540093120512579723476259619336025182161564770963600383695073994876430045782765849764467325128554683403335768079453816723558333058177765001109367525589927483891863313296154244950981907724978810487843074392167259932226552425192314582079105652263412511230143603833714913092120378755652792199611908600015741415621154702435947261350689485197094221783800355241267122661161234604823027522196755555502702579639913684098838121445618550130021462358258323360553736188681186753525016373185137347942146022569224473640847313024644377376842295904975292585140124452642861384388547564708350479964822332675966880545352298767975852703256410366326950275194036329360110031173714614936567042622531869381768351241688793004478096820559863143491858418355973773023600683620512075044291959237387569134264423869772760158924915056158695130030080400120970148430717433342585906116330761853536192687387492287471626651559519792423528509228788382659132566705310146668316026230594686789581290567713430781526280545499087291043401395392018485040236541846600898297968002603882548700982673015112726310195270852202501592491053540001882286242358061652961867969968811225642749093170179962993303418557852496503347974655511115401238238208317641330754321438956377618118675088316422713519677706366933241008312021434522235973160149651856525544341583284463300588154257428482564994453745497426815618635819177183117962699255715628376684101299127469625835826670723786716508189126510348613545205133747428569256406810618826256243602961378413801337524031142524585381319400145810946581018554017490875925841014043858136854816381643915952288231055017812567998474115773230426163535421124878902083572940801251010097739368916124161181076286159419564585399008183074506286553378280123312079918379110738751298414633026017421314147307846520498124905498711572019860940704597088719199298888649556165965718743256975161519680753892477529524692837344590687590945071513417771972306090478704937440942189096611759462273006514713402257382923709722479320720817568118008035078855951818997162831604212673874622970569045257979007454976647130464506757825877677888225937175654656252349492937179012316798184175507738261603905953786944789906155950724869594107599873803036144286801632849905978418292119605398783181602342031283693342655791963246356102026441817744759118030845683396946160462829102746338184117322325662988399569624185716173578155080964204605055147363521064810063973397187956251154290112420356692080055713998541068087975596009360581034185962056087924192687187412900237316970629054575267073423733014717051952970293417886477608941119204815294398145265574662871245090806688000072462671532824324709314899376969756022143984961935966800550370652025624112570201710773940918777924374898587692470206160049940865268809894711186696488115378501912033473000971065958203921227114469029876994677253511474365911129898136888705902774049545064955453964295753746652296468633856676882396568469317212830272644792694003542790299061324724701514958130630724435829668772898014867433929127431391108847401976270183073851223139478588866036488080283221375287135726222592986396193048260484595912629755398052481938238094853378942595187161205953836959350278941804762051161166314738226105520482185476951741481815955907505911968598737964929727428056171961676752275472188265292924437224792397577653456757069148616978475885614747491414884243830709106592916166823710091363491213474881865173128741985989823141910740426263077416016077329864037685779633248226104977673071537323612144429422859122103531194798042047843311674305603994886519541896814539408113622674852627024512069133857799478456353426243976467309293924287743867901538358011803260456441817419011220186747018400663392542660627851116748770418158760779839182494355998672988810018243374042567760806546094129270679470524004502750965759039958498878040689512149352677307234967936661150885984846102713392743768180102657443116327550237606507054769949236910295282826414542446562626063990804496385501846146987075645906921868164208536249992478094596344982340800875743171729022278902022044033760447581777869770185858766859250770472025002596035026264857810291243863891766698566229304175677968098467262881186228570751016281497340529402825457283895756878239876873329429467208721980716417334772142799681236778605191983404251322107013037266036943305118959003292010738524489714813427257813430992588769242472528752030396742695798970253382291022927398250774944217803408066944019766317446063700806749043678640477415122397943749764247017421648557452170616497907681769838221530731998974234417023735068057385651924214411235978251633537939255585494447982109985744187606752140193295767175142044775184588096855960335213396964261109923535661877815267278649291954893834678493398949291911337676314974805896825445985157927657970328597085176874901081639800642230217842096497720234661814260175480279084538531192135826029367371408456202527839064502445943991559939971815599971074159196269597895464679395502758379207058007083785830629018592366258684969237258658267080270936073445364139772784434072676297508564688388849461886069354360052997916253927055753349492770173276339566135235954939334675522794111399870797678370475698682486382344023127947791078942930737487338596073495761394330244499136083859590635738519352566645671993927041229082983874790632765175987424142249423239915549465640658468641496218589824831417565470341728017253200044153846624573280496746095703653868968038872809434367027029740936207972119322380559592251185323180561769641230570687001385350480921847293879022480406952195314307902738927575295673557431705232063554785837679358871369530906868501463985268308199213879421569966936922301359327628549687773690565816490480118149263761880141883180223944820087911812726014568675589328340288206115282643044013341604488195476265093233463219475256322200302980652389673007456712694499842514279283020263917459444452549780232226503906987470687212626734552039060565962613670362177409088944251268228748183396444204800669618037816212343196888255327557263128683027890986438641579734810382385706242737911815479853097861330169929357064197547659772519087349056384154336070197594697848614143094970621238647014206452499105716675188836095750840176518653909257395774607048080315785745574518555797395067747921445544226225652225607264239934297611147898970509068828271778101935899017716825910938046029122331756522468299585975075116425169601335713572957879171040104162366825848827229457950936041405027090765393032471638745015890615611450284917748909611999972027043601381014196972886730769332683267546198239020583563877897707653966519796319704813598526316646224933225618172578395162864745495343869734581483079518210144617810468441163632822776027385103306667323421748138728787027006058761105377280895013830881242091299615919485411051903496895054538328646572843413505419202386751896977871943763321797462358118053885886315724399190035462283275306677506147828747169961607521005526068812930724792742398493406559776102179385549836278766918947268869339379241585222799950772430561684740887026027334012642597031800720346903541033500729690565602010676902800126374881049001175420638057889446239026484577162017285432566905727374493532790694632184235850786490593223631503690215064249371405837762788412352843620764046418147433437765417499730294315237361758600182143143861544554275877339311553704486805756773632501459572764421424900802149802460436763418803875690629939290072631983468509460106844595764793281806143965974502621720370530160079503937245550792826432220154311424905463088581245669122201151739684248644874301461021081373471867772204760006844670274817497293359298707041612564384129321689337868739381544614414299522600435905758968024960587150068431639251941788694876078157619944357515751982042875519160839073750326220703698580685816390647957314001877563094398723678681701216184842558466654197613504825208147965856137984740157097397707806816524136480418676920057617427344444695774487873397223850502552804189644212739479073991535837804107499472980730739375685385122774381302996022983489323397572839146639326190575794002251126730432309796915831071745572902035893585693767182775091425557651686889084440803670338892312515184898117506915485704123550671604153545006258590476244559311473605957390579199805908307654748233451678590268645467393400251354811096094386659255674587059741676453470196915251661464587678383247256763676937069997544162506391363374630396106880311702051055711157731218596669172095385048752782749848991540306821662238604256397606465354573729460927253651068309080839051786976267903601497012314534433117455458786892134616463958407538040651421519119066985738379839580688600482034397132602218682469006241021521134248567752062611129501490353079978647694180780386285645881398620985720037666135295151177407360757804305952336112485516789630455620330627116525364104840635724716677420069740984284541400611522373577545371808559023165722700608622919095110348506615194284409532834145518027907088481062257453889395525997997206069556877187822663028720377330480139945238293946112345055440499547907005833920791490570471196183811867537883438033985521925755360650950470120315912602424058170106056429612357228374419414786914228193510976403121895985486834070878216100026859721683596959269887465467951397224917823087158149431670191368828980821197477892493949453000332583196002284299178277241118867121622564579393196649448901313627874781645582897820744432223234324087271931197709627426333913471803625783210761354415534728392234633916237327533933422269064902586324918635795741577275216842311861503557343251485047184795943785624459351945649946889037541328205846001065052188340665751743181498859342566677139979093006701981732514238890037904465412162222175519211187989849394763576864600733690235084798285549802808367750899287389358028327237942090120551954615219585972561778926984051528574735452384402818348572900178785261915463684081164296019662998799081970340274173791819804178963892790317578468318894015883688621958772100939412852401704233574097970119941347281106243808530054829062727136664601110365271096047640571589924807887822717464840269824227714728778671320551514336074229285859575929551313951286087783832809620042458768534520120035161453089794837827811859600374520179108298265363668361805017500996428264357431988779811768533860640563360871927925475603501908086712155761321628262908256256422790928931796760901540848441122963187711409260258606144068963208963441448339163745319431656286346873884734750591927964885630030434181279253223033474088035911479840770285818010261049640399830167807894705848585793592724633092962183413336083951817494202406297335973359914015600183031836501744717066790154661179224320869358337198576611564262477761971663694647912726340857273986710031498806661556248383090513901801864018535104618148467946202078120113454722794213370527741459359274259284621544035243804874365895944956929565865453968095112605172183726038941220167641173442271678108454742631135019120372292628176888305045870964193366086096266255408277623165939427793777305099546615781303638440778953889553348845013620865212518316324036848930404458164248663968832183754032595044940203200371483021364325207507945389552817227972142503742226048814622707563588733591768797760584670111209320462271898597123553103000807035075677757569038376641621396098404860912715868123697303602340926414631270637675567634287758335612486548845388188185984590585200015031335028934168786381109661949624633298015965793965290966509109418253210632062899319914398453460308355434544058978605912279753742212013874040550600156128108042019721724099272491084317863656013560695679607081163295907789726461236961508556765943520284226718032615092587871452201091587385104822775489546608546072413639268773670705574621207317578179146957127175042786856207249193779010694304316537100213990024295273774009256666156777620800557898426248052667902328632507570965689982788791167220581953664270186678539230171498649759517800355894977536128064178299400190195348706573692297331872862647040312692689095014969124659911560225366115709501299359774246285145036353558369817735441428784029960009575424180655871509210649429206076860566986421007897397477777809602952821471560544977961946237904931509235707536712214845260048319783864214346713900434484329541610440204515206242320522888001112491317566981124523838669563398595532466264783696694302665598042103851211266944553099567103829332781088167206144007873719216047797824772036015016395634799709596880513930172395688142740007171880152602600912641339212744163079876225367579809166490157467014262134151745226370302526382528763214261636256600874586462039527267826054972494696205796405282871655826003795537302302791378937413885996306965793184274010543716305059765636606503425060654933187485815261487405446771157244351783647816732852891521563305324332059040962388772641011606592238256957699075399184254127406470508722554479054837891516767606323460513318788144889205845200861382904998910993628968810309329158033675334211288810269781173597177198844864814463756838399753527956573547468910569126794079191955136750913130945588635115412637274778894745359968347101648006431935671170262323816126755278026347509537051383442243215442422251276142284826074584958598939201239578714545121432842071782110600296503368681461683006833574741199535931511777834853214989465701761808877613963009586144176563898503894286686651098295560663098756387322770666578406015286600044381871647154944467657109505894729156811676522440695244947446948994361040024030725554065287784934842366645092399204851907104841031540804498005915635710162741675085623856817270986464032725727652041587487973871173448254680599144186069190943387134158882269252066168981628907002360813883041163991465481433995682187286718467709464727908103034432992451776233824838895983941878120717951660297334932370412447842490091115204290082669003802342138810759211468298352964248483872666001175658207482900069133202551273741649706902255099076833191855792383307550818806882191148203055061046348246214877489314002077511032716042911893981604052368604143253609375230522763614048057589448366952816674243421079975462869527576484281935550386741821466661770956315653752497084021793391798783683606783942720694513856057980709525551953535539089240373122538181473357337248514708060421596804197580932963854790407866161305777151989002139801090245173936786435727868972675764786153693706531133669034674030314660471176858388533158528196812783380205070919232365135577492974693665641203655914636762001908128451717020529800428595482173374318978046639563394803480864498467041905067282630966600962560131287678545450774486853969847054336646660164940560168165283988747096339335152765293778861082795564961194264469920849723966633622110666455878681009475832906410135353358448837497957261055318046564860803110726279973641468597205712568189457971904583110029462951056466294019198134676428655093162052323633737163016280860929708692371500746692030773500954154741647150308393145599680556772884484162011866482319637594111774994279390308481675926576485639180213878388464393669804416455365914550819485452257619159132609199114575512510747596905207727287290091691271173347581356189183309590591273974225051839186328032163982419977439726693345079833886676527187578950234442052154288861194536467897923237775409718055367065079472143780004121228194962464498261919961436730759154800780646686646890487681020858649618966434458535945085218465043449691837469119703503135225173458450476579668309926197243590039463470362827783540073571461761866744114961258268439941995153564667803469892259293107892650284585963340738424978721492770135827017031033475517990450453057517975429829036296295650231429691138904033734744392574754005797747733939149836246760623375978808344281967805739421908367224545696147205075998910294187761616002181139532261501130969625012482315082337639848215967695110208888940854362401956543206503332959648524058634093610115091705426183425588222061980798089327904869727673972436966204435287927929478187756209049230281690253262391277514703711919284543305144086891422785844428067955977653396415983430850275401696607754648143484355005882404806035075411149800869189949766648243749623576980131638946552688687989978622756735872803333355376119179930849219285664703024028039346379580945202089100678493075901262748567832238386120092076107330192296561726369970279336098956682658529698913738070652682911545641036012055264754434787085651258985897268438906084031789689460367183924876868384056788465934048668677356639619941170690248548281088101309567818830189032972667853461885615289651816978671416638898571956670041445202392233291535022149360651932085570349611690113452537187393884972376667145706148395310064548425491473712362736675334512578606430798767046004341416157620485303728581188243639301475410744602154203074759595758676196896501600809284279373293350336956418741933170049348587427285546865781102003502583869331907378740251813552441443349628000562540565698640337861784449514373121917091987752128249618068578410329296167694915932129878657945374855607699745361590719978286110842470956733402548933415178903406580970851365286508052761877783952700905973086948333313523363303153146692289801547022257105138712457908688249163593604451460342987271321284636476232254501969551573759741648965166245246559212298694245846135632275470813703826293351606230218626459431619904472963773400814891377681805510652852420728501064343335656530707256436802608454441079930242281311363925536315073111077717535960629485647141818187863732073159204811686234877359373190109725385664224285554923841472939765359874973968605306541920007864669757706754774689667618582752323069692167116523046890783834190850803261964099848700445096238663870564652564085588479754422298840461255899172536492416788650636306567870780797028582012189817013884395859793963141364011052831204525596528831034057233087986903136490302886667686604838055328994522929826555895492855755461983982009192472284437966254339047347932297438740643952670517711145042365906999534524495026405150823399866430529006786103553616774932315072772662676123250178608499236144431376240349283918706910992881179954161655190015585086021578368663472026549169159011630327609247828610562223824168796537115949880867207892437334523028726443319098008220705102969087539002672288379861415454115315428875748196297090899254867901853367856456421680031485615280213276210504875658390920771130428533013196434397765265839815310847226043325554379908487332726930886823218763232749239697130218664420392005176664456780137071611754465399030540195542725590851531960092531111768214613070577377390559199225962519926843548144264664430163614894711924514328784311279134567115336652633358111966831695060274012816385920709762318968221640625507239243884496813896611010312756328025206687111033959283439632226979614333256461642787702660023093818829632380528379051525375050373725061489518494958061545650139132474849479219943511568856056826412561418325586113890028431325035252060308077412140819412774233706884161540698967786261148545902783692530176458381172177395326027038176435691365387357401245278263466985963138911666981563910414487083497420728181851754322641474401746754392178554086549786247391429963181544345292918379143100177805444264876067107654409664234632885460954401690503215758325364770011204585461464774997182793013754598040008470450697791195617451709972339343099856579846354330373961400703556927853068365991792988749682976961896655271558034692773532029220897021796185684840199567162047807416844853569971742807785887348983492959532987651348040003877632807962928865815427175535043043477317931214094528962283029791351921064060623568634222665712112999919516666245755420687222370837481327205522581573658675058734207200004043022310049571242120622416909450187456689908890349255158975068053370070195139575698242449755249161396519275861648086547874891327469979308406609749865563655059166114770135307130532477413413741611417832719261335043992400717864835092224243888313926532728598225113787628506301443731068727368823604808318342757336964342581984731498781836422535186601008283437436455990017600611117801513775128056645902670187794433098481812020111300072624750713612641785697315641256836305926407435584099333851871572132377292348569853925214504289534317719843087134085043540535965125616795553628733519932021682147931350685852951923117739897955861109218642843622828850625288872439791658876008310191826832702422044884183012657034898226577225265019572222063454810598311905250844905003332563051982558043119662002696771665679363911929934813339626896260966439000755560464330914708386150133462930374963685012548860009012858063849497775989304953640604027740455048425860892309566529526494449576082493744294757165049929823801898975716417081785611765412652655633903226655211174626957743810089271276063846625771976520090371213591048518871341549283208444109573633957750348746832453816280903549165593687093419641366512455602157971475671859056838376933444766487623981857303178958912624596720581661133381179885429555844453758369259196843097105134061576153904518303886930245411414943453395146403027502208945783805743201725447980944520106239330635149874501112008213987529300890932693164915961403593636485103498717463852343959293073686888923936386356174371717187265301642360589701526359029302529249970284533418775806621431743675315622617282765332382415213456463266160966667724433208702147673198215910793037833879416309597421918326958685573387266523766119461331819441755979137145687809104733890308067241591416541279173841254772603580403435240819574598122629186218187767267678103339804786505869412873919189236754633504986309091677019736932466395324008073991642410372546507692197632324629052114937918236387531888503750165921085719924366632896110380229675485969873726311591906413604446606122948791441691622896933673468603875564369930718999858168004859829880473696089254577889982615883973414396865638773985734962359992285453447857946689996556249778974724159603102275503591582034047305106411913526649227803685794343383212326936694187941331951813220813782828227559691358714439026396837254282404818139374356616191031586958089702231929440024062812243717660045369771699744498429936587570279964424065640370569536662177828129907427091410142036649484404075099830194530936612254527554594835024928880451086977625140310323754567656252283496537284480212987127285316278177744419025800460256418575764366042137805064518956339913502018979128415532015878266558640507878263339639227558011867374243196902543299171876856260453461012768725890718962045764999866529928667478842406244837308137655434977243268041961252342849247014716353641585235811818196965151108882019320641574900654994233506713143596238726491362639096988571564570452944684492267996615680253150527081033321922265785510420606320626085501496573375527338969080503915795533780190619868283905563046269535942611446538677765216413228070410458715220294727559135179591296102354348564247391714695551395089052051943112412614259397258449338453699993735365368385435227595521496614741980041124642891350951295079135138895242088200664543061671026229107973437499451102040823978124459692105581540925500984362276717241328078256072958444381410442953464343993088046031060827810860592491746281595894604311726652674650389873346377698170391216691988398787768608757951567694623931751119386931817152285588869933329357499725401754905462197734977165238712219390972342905683900753009854999756978864807004821901608898867156912736374328620333460008583127102854494784751983052215360094316444421224330864712999471803424471682338388148400731310098523491033736959637893534330979471334113895361982745664701405523993638520058629376489258408987025560304733159030643139815562530822225172395380417583663011307088922663064161476738522606873791105900906229755684883162714143383086391464465276541791017948116365098109522163885182439782173880817216392558204591559752930668587239993202239171900999088215805707648719949094228013068579632379916836379379999427093831551687800685937763971413393881959079147082629905516337165547550059840681348434560644647997751790584160648335538055815213114396180322964013237059067641525635351678921555399311296900379941934833812961211044511547931454907370047015452287783977505836758621166370436847221529656524954056750886477911090275058823289345713448832578221083490478898438595325284319126662071876762227349620764381910547132554651326857906102422294911332482064149255817895956374767897966503032368571729588816380390910364227421225842150475861178111405994383010037264400827198502949089892888503259533216481031397268112061288145749086566775552815826144140646792084855056978704955457518105127850290628215616260592635207355095782039022828114224599977069155842785343066935459316912851847129632372880195742428044638315580448725390271912806429251026424525906040018981855486255195286966043704983193120184673340534489598667167584070448149741611359515133537170839224107308750838484612378810104398167375331863848608884596122492429226593370153403232802669540711782339059885652722590432220628402252833543691139617608062072220977882947723109472181440929631694637603006487219877839570001263032331490244437609694482683830853251175568205656038112031451738029768617064459484923953244047790634644957523605673659149844830659394561671190324109545462805516789350322873318688903755721076182873231745968727027929211135342467271013735914558910619357211414089757432699513784215711938958350800285854890518163390539546378188388609028331284834086919352301484272504204463877001304193479347364676024222742896638186662958813527516454705994111539411146287263302805759580433143473419690754010336311613299234144521349258229670077315023294608547036887944997246777575901021277611278857976336140425695048060504092175437459739628250461690652330401349397320248296013375165851581021477981353508479075954252672405938721481396768298977482002100339783853797409840961783139965051484199465900019769033515197053510760008593739459308476886198287584564211816452816694851154892426434710633206000928978595471682115127248480370012122968531646886635613751567939592602002900124355366065352506536524112560941536734666565799691903177355103312946033687787623681903744186913714247577194664297902399050889979491611298408748271074256893994767370442538055787919084972908814965752765522339292827168549818728775706497261920214506223611359551514427765309842476569832724543576286045973668280894715556059773695925247508977671652863232101669843384035933213517402016993408623965856926570813157412277231312876692801867072223807324669137442224954149952522465166946455119203673437577440285250246750746503461047563407264492563541528127983246536520467930799405427684759699240706474879372117263362662046547427724480729717360089773046607617812801331710576938296426763246630069440762065493097121466230192402859322200138618193048869336399320130865591663052953387334548772543291099834338012498937653206913016706109029114373132355279554741377563742588923989044448182070011280296459639563617760882603077239659157594730131616935739911079083129604934434976808763623028131560988750478398842111961860161235827269338976804725864540785122644588006659256042313409178957892112978458975066517532731576385746862349939671623330602287243333825137178484235729485453062409146603546899251808005088050222274390142835256599796331011818444470897354013535913658546188874349822858469724947475759225483666833003253841962519977836229732695986688858288299920684717420397902297545590767410364348089692292820997862256092175437008648260446691891543799431110393712308566685255641062183490951317773012771767394109526541277939821292743622112471923965743181254993612968427256006059670212364548541933350715700593872066207706685582967496381586442359722443019713263169510832771073444028171847469665767094958924414232478710313729526199553149147312903019488240190801909345257953737441311572268491349132594355687105279912896450392671140277956736604109791167541365375283444643235202271546603248992071922895187219631748468600396616486991971666678679487058098496579428775512355254101429323713171451102459800216958599817598942990448326783848519855572646992958489769638030431062686228865276202901693208379177426885848783647240060876655520240850097732797894017909682205431292403500714580988669484783605774258640143352366337588812104170785631367772084286524962896633895938880442755450205578692843654632187891518472673988241620657897182359694353511158407816679055498353991435158550747569853412192944874100187225562399373537901486929763934502995543807103080082244910408860469751642912139251480380917001205040829787495708941617976644597122506256368905940064747709230560813630801385737537461254294140750148232403819772309791319869108757451127652123484078962827196706234848111435952188535854608359431354845673015560979795094461329298015759841301649895675709714173814175778440615582840137824251208376335616229232784135524198847671738489932790089943040400110202777879787230929415054848592709733227569393319005327305521960260629916410333516343803962857410141454130437006373774533090356033750280334809970205792162827498907226718100431108379794553528479438631894145321710995294186965406878041409036364234863885859973784427270529399978029123435608331667995115911468348180636886521884549901743410351503452815763472960944549263491229551732958054025869867480338579659268663345137149862929439575213736457317298460691307789587963497651427650058115253944915235745053077291499675102886336535684262694494604903000045253774952465673582816688904427496202052623744019921636850809392847035468744299525800293935234662035265069863382736334978441442490802786013846233598081556176023677477546414083912514349814536679554632012733070861673732164069714671898590774391940321782096524567518258174747338968772622985304145633464604353645654328516154693012841844814286990963400722773547307784095062663047105023656942767815214332986864451986249235994405873932940889540049423773660620191236658889690801588723267351785755538525268639316390977070643145236240947732226983619903190478657094921693194454637936956704624431495711579190224397622428157985240333700037743122398473577573509312291598938317824012135383072450459779729016916615116623235660508314514061969597482793142950210353564728174973993563442383322649050065744772334723962412500968070510768384354668501719319947506529161929827623275008677597263683840154923639099269739884602516343215262108264883976751958831104465199004127336681535579927929949294431770977352157117921897347359815188720713505809768698279612500811729415613878976104449497381613178576111638370610108487198784429657453910386855281630291932140241659726148989245048182734176810188290724639359140793770994978673769838537808302890494773065285343539526608233447903437431118217534047281907837338663570075181277106205857350746853006828903656092964591867260701547390305562979965063386600795955036529367454159211537009691492101019956887426738377381746082582460734270909391577346417208179379634874604349479713341362699291967094342501293751125953164145412033319306858125271233199492527638515666292042759186898168979693838240124649512769091937495462087209780739542026228500238351538515869873735880157720697006300115415958538176200755540978292107732528850884878766184149310768331100571876407887048374420852093079992745239310414350580866356962264753325763139740833434906262137921109142104804271723748237093897660195099196067244305927726178825127484172928349861634533990339212923984884452888216102445475056357019143313640196101830011856078113432136378503774784152284955675886829607323060468195698044207447230620434481317293519744302201346195125928479913200243920924265038848254784078031598248254830723370452762310069891980399593082861632482502796839189368491274149723318588027330763614604018847294824062568477780389241147369696075534197440106011076436905441014377027608326957828550445878103452473795336421129015596454757127808069026491773592218873358176218653003442283897985141674758477438817807130099286768877954928523521069351473457847541604524796665311147126403846906262319381086450408453722142100446687770603750507841315671721751093389259299990054158419924150341325670221556677896595434735979017697337964028813557944832858486431256824337017125408670775921043781475798757001698308069552355373158981396883873837342994434885736600568458593099122304842855732174760489131313143642515329378304835992326210937801431400885022939629997044290199401869026187610296040134010847838381729992714759418285985293721213323795478848165099967605991423458871642857428975391691989706910320080954499136224068280960125810652559356884109691527231715614625394718209507617988563800707172132240037718507124661410857589264439851013610388711013786327356814398927879315793118126838573975222049143663680183172653339579345990744049563124928564319180094260390324379080819188915058350254020515365685482416022464963086934780954661799424263311621569309689506536613227687926367556593605441648252088939290005273072995619339397185245088408184484382120140741720719055558168236192061811103595291897066771644328719100312775685038622358612986572704054348287025305949740891500493615915936502425271787288405154911709319630724806849992999384357105341889200541997060367353575763241360463655127453373355462453243728350667302349714109967598117314606420868444632320144447535570260226590776126515915814654908649046031375994492662338725532003720661998596938911242492740781740325356454749863925995179059361171740957468315681566754473204211011993256189827050079369698615620013692294262350047873131033576074431612111368208464008656381835191207107429031770291497758287170118689792405100927185027953510277191247984858908452294108881524530675610696666190224475799196597095480773934091526679971926744393778316792071167401338935067615752125446329702756712464871254275818452179768665859393899447760214486079906386236505157175964485400431731850324596653243557935623682652558093258280451018677844314752130861729848707747528375841129583024277752779260994387092484072978165482808649826058346029592389669020015751332352219203687453182798914199220010598522062595584558125347006115104735027215635760811704934161345919521905876292705482944958229748400617629705252379525568263447696686737296109664126745001785007351443081425155043772544174877001993965014948456703474436177954781666332413552866385298778720353964436300762083622241963767278599677767335227823753748467124947516628044615301210662962659121776462423524338992723048164716158822704191480281314113056575869578148580287263156843121346868940100656602260396951022905103377996571669109150907762247433814099595273281224886851017326617588030008961079660960387288527316848963253505062724384569957282471136642734371456202957751344106831405957751200055928359920803862590704166659899101795163730485783326945467975826013646918163021876697592031615211341309402524446441933784190808851315843476010922015222423288112687341493487423011445600861561634749393126757956402729926632134344198407795461830216104932569473585140604471638792539619148603258974287526357817074230970104333780680393818953404760919245795292472205218311692485634788523326851680211879419793836437159087284176804386539243417991004067421435619745715399085115752094316305669035603824767964748145068208655697240167892941254334929681324685310270685699325198450903474512544399516586114691612775830487937615321888631376810212379182093318126401899175397166748886601758414532750609935623307095377088864071895516862705532028325415543995224981997596891283202194241496381466950712836189807678205600397843109554969162098174311826963679801000620491049052304260153182589372532370174536922598262173669386184896653069552366539815998574176279746647020389854214523750768062245504547142634254335458690486166232040309031992019242431335317007095813845926925631686882328523710290046978136071833817042944907981492515509763170473051032574190383925902301732187588151863422172981347701315197380377997702073032655426125609385169590919330156566957177554773928192012277350037573493335122538937596703690722815774364522285743342787157663343677590429458261478357332679833123549272313086620803253410266042879121723990466253576342163817850900923284141901842570268570926743602074345127108433516617351567680974519933688830785605786994782521457233815861159600074278391394145794592368872321184080502496188408362819477758816384401440249654311837036248290825057796475527789359929553435409507981655617545381027621355373473141509599767467187900655522980374385858930738467250955687023759777303808006400248370096685191938435697479344882395189024247979332446970826051612317428555383694720877764313141868649765773497127755300242835554352845120051648488762911429032368946886952882205679323554766925196770322612256345942687880398763475835024874277463451387625271199035205859201361785483910294369670090489104007963895135077016349172465068644049659493051270622581197337848266047688372051337122356413151070697015729539774844838351364036204040156874882083266125373551118036545416195028321935053908876648887161756583567930457797177730331027084561687113760841693867604109017505716497966121592904361054202640111689176418967997687835091039376600214348469172441653589576381939161529021543582094398654437143920829516952145791299963483863095632503681083028702179129199852613390209125530118611220952233192051989164133636858270024958149406879617077627737147323168764856631791260977950730469319609823414369484023832634357491631068263142965622946604547334959548452354250470852665247267427524870805574654338909881846474626850788659037667372422996067196143803253331292219802754012005804632996522087230983361294026999459204854270546810314248439977418614553248543535720121192756531626864889799407035340121758321363204668031650150094671580671614662535140382279527364400087665313222428433625260070819904690923144731821430513213982086746949947423320380084311320461650999516933287798743276352592063936861555153276318977973618604728131753654226834134982522748424860022754365479005130719864456551773831586807098090171794546679918338862893882281604319588843337045300901698761628803234721189637192768756587882303803531059293399813233955655347258504519900142938351359619102536939808878069057306046833278648771305294848414205059210649045475270823214549092098413667236459663572885053720431474694161880756943544546620611064592077923542799959866287601636106027711258177258915640022447035633375489382463532570626884315463139961868180002535815425359950462203623351117844176124128933672836897739562769530775400679008911873608388325657810535123211666897097763879120204716995774982331794570607433630588123595377275413452178282070372398752072337439846574707025695116858020139261251797152145481539164720824115936550983280701712442500226290577885751966804973288487834243145848484862155864855411189371589264439934381114210278017286031410478526804647695824208724119469464054283058327424895841898648620389895400333598297919488913688353419871852333101606760219519695415066822228861071928850823059932268651222422332383040438944623626694794211857927633315715824095659623614708371921627734466027416676213317960636273548261801233810396998582258838635681557421777965127498091285094026780434633913979149517184590553263366612553805154700857233230745591246514763108215697282024571184575195998233815784973962419120296271405010899915843616910854473589290317646109310003163307304260094315483813047797082853831449669185286551859481602002144851169008947535601037639360066685321107669759869171869527413672345910068334745810520501874354869461736028765986663864265172362995367700273513295205039764262923691775271258250507083648672600289485487995586723165415632691002311010299281520939274405851290382172498706325922423034970471606927428755985509935337832782972787032805444960877718026976941455434779801578336638088876051979843133707605135549250613772025974503045267159163405015675409774054897472733896828355512726599284667746095051523593543327148432184039478017961600839517879120157354196173301247576810454352098898606953920937339428833405446484094128242962127080088929424304133228661696870752497630353834997872759140452642859690738362781378668729176539458129588472354452691433580278446216069571591095843559193309243878246927352856655957314952925635355715869803185490126835970198002814379905439008168904930324656044409615233935949931890725514661351584490106200851840229402153789520501488124403937092958512695474852707659108834385590223069280442528243141597756118650436426969084412254303596960497057063174194766182371597334726112134507670281676624164396007964446045226299232197913934117451885266770954006348423804464242633883459348857020889842284343798642430768423833687377512771748039605960285010834628809840801567565077481912149024055649551313737490469792718607698265486750553216241233543263855535467450052833808741028926101867837591548102920349322795159235030980134212170248552792092247826926201709577045191127191729942721478684990091038176605531507648405453306975037092756151101768463065220332530315201474046703138067403415076590204638985081705242471025886868095602489156925373548163609444060228536132353970383230307493263596426523651132185841908193403139474952937325432290605422151085314731145662640577570001282955129489501796031126861774342472369802851831049493893846334586059791578884170808527771581802766086820585790921077006988601080113851839614662415210859009350137665270509193674559006603601330044816951620495842050131502768421311311196663020542658981977486638927311501808519555162234629454675346187562027445147845533828642198392009723115235134770774015460798158500370888581483961729277173212275433775669628233822840653153724271812491747696549956567946446421719258095220820263689735535911404149793155178493114131026883380326649647304131065443955052206915313494398457973387901361803392749845272647344296529059900524312219694776543352767999938173832708950671675575950806230863497548231990664330566394894360265532620835287122258872514577519097743998750462375356624272561857329079184644385414583349835685922294907088222132403124464849777434083399087368179983165493771459284377932885177975029136933267709279443488249300518579572919510994976474702360142053953212817671165772320097246183240470262502978616212252146013316894632537707711821819844759552638633489490866966877365192733679690298047384244186562489807581343920632243927755525110607733109235258782423373363610237276190858667875036400017414563339560689288516238215361945095212150319678004884495543885821842668509141331139850155588859952948041200915120247045179163908327827626076285160246790945604334728707497133698005109460216402217625013145207817046056640100897842986565015253954007918029510560760763412958125844423596293629733344646214778430972530709611316991901321649538625175649952898865217507709535165745984252334290477980700262815983222557145157463338230295303498030724800028666319313850764432509106873132234713392650929771481743026015328966121044244956200895870084598532795941545421605644038809594072252779558340926655540797665325974870856668927001884546427668389422456803166922481099798335743121822665851024038557530029233994842372110244035070813715755596008461306927432416553712520143454899819905558467549474424774295078334386580624436761796642940222568730090699426792641228744506124121367894057806046345887744071944527889431805083018384808778841542148512204582222993722256909290388913517674206342621799068950101538014281379107790426581071346936750862902670952311636177748692123544359736914991225400779432814808552239843553975013719664784429332352532360738368527713802501106799224235018712666263360481660191242489052994104482590518450830417228329627382512163643359500372636688118454641469732965432174343471241787010828199695190407709689519687227687406956524044715588702943063056313009300096559397206867685870490215200665112063478999856193173777448148379583430301627211954903591339232632757460606775477966500934811418766775846079415360438869294630688303694154272422800484880651829497563532240426778360251018028091854037155521777281447814872258177577695943383717108207008739063499691169877428534527475316345067719725304640224858845107665974005599438809113794770825737642094225345387900696153759074986690954298785912554308510759273305595128011678301001880313654364040411062335820672008254207504922871064772416935964321709308699760973794823138968525195435657535555454740673980541640094240531866649138587065469944039977577198900054693277020845737198781061955684056631088279634441536014627591441872715069552530607548369877161069179032649465043189826387419238559468220367848227151346372612184985092790396282258742299619306890958228052271608397540941036942890107056174856593930730909557901332065173322930301439783577137691943387257491002034881864359170085898075363487235636855791152261297551504712663441305714224436126837218939062773794401434562782647226205124447088790622864395489516867261999591522624368733878320639262076758886610651019051222504910324628824346363153307340509555289435219949231405506205331350948241580536784546752855920748719419841240376336153423573117900506244325892796646221710626102239462201331966688960885086542952951542434399610353368583509591602077524330468727565562767112053596595578789890392768428710302278246341344745810711223280615155808443968909081283023403045745603849094322001872426679905876524364974150479773412555813317246772661587739880059607600399882799174718386410323913253240087132089759407669105420850462799619982145013557764061605738151839013841746706049585307211740628261426142079051787337489616418488891453786829778173440981090465803602193098026464139046374246729208473125694839445495012485179610154076569062278302616413901812936255273292994093449070647200312179012965539932579457052527797350914349947435810943749655777816284938328152649171506250945180228198043574542738726724189242626278991525206245132325602745917882743713029968843521561429768465752505706226335477566878300965513333993562444290120907402221571737780398552783422899667452761950832397544277191567381645443835564466212114103738596026364798310891364474381522404632014535742924703165215880215414663391456010522821717084788490570854030495040561581463637026067572544211868778419300167341920998962997255866613963758963261135414658105512593491447971035549741213043379005214450443823871996694878283701876040498400570194740736683794110954911003239332111621260408603083373146046165436031843471804095484245828537997986627018441096470766379775537939103876836037788477720916411262049638956969513674962155340520329987531461039318500002579885292214896344093273388471148583806405801512543015333516612904477874880488693157131127784750324240537107166204599791167319764676394431382439305378312774284838120010973909984415339952640833836167408955397912951406665024711024724486171206674310773168318729320037820503339591166517651715046864340992410750804257316902487539410773187244378173214162295029191238153492640662324303357172086404971787031834010470665167435073723636618635459737854859227319699555837235832283060116497803028055422280712245063656061152933186433615067381855046962305595879738047745532710005567137395715751930147100097315281700976768814064163667591915673133632164859808048408102293761634248503905094105185070232371374701010870078251394567269808667871725525790495889495820444848915606794416443283090929269608284979052728438309479207518494053172982557269697748788392792602040526272965470054685720136803328548665653250743682372369976860842245930115569745935244541052835193490832765722715024875802136329288054524829778554185509538688091778117462860552555971904850956026359448108528168049966822980502082679954762396326730162901821307300387290275703330395863937107363997544254066639229163135638443544561900298096064267680609604334929012151672811578187260719351080582785375199767029692067984281887370553277237710313819390982241419102434362778753210267965306064548018773707987320923747239069991238762445711771400680113908047985467951541103150338075709894519084091588562268854710084638275322091811229317416587788318548216737109878956812330775599906292582169614524374509016941172823483108925885852721750191226502422042118367745840156716404427605627583820852893623253277003046665282286542687905463532411370533088075689134775070747179547704015814507663728288890401037169033808208481695826425304300318047630980831475005343916168090686059874222561203230660256799933579332554796427751776244500008969284750790280630614251778171829679915723744575399444081146259604677284106185998012043350419989709595695237082197573358574663039900841414785629557963297228733286880327798118908545934167859392128761078521466030284351031611101478972033609196126355969699383918374565946381140218931566466923689768146880951193964862191630368624117589643076265007799531972643580736601788476521504620705202692937735084503618476753962441877318625566537776850809985346616452327047893769987458872310239068605154183183237540398003203556472686528036316300270082558282411609396312120297935185128646621756689723367768162564354265841021299291766693526234560515233332669654697962393568387770055559841583919292264790739142136090841580500961813422263740056850290702688707802651568104530247547560525736850370921914700879337540443932730575357556553651401348625979275472810592196932580275551670959491099522202372812877458810188361877825775226492268501959715392859440556080910205463268303933193408091035089879250670999296418217594194663735380383328167261715830119033888111159722942656764200303300816550027189296980745905280158769308561564634744260159198818678640470963985575721055614247879888600792089452338196962442317418990806239516963891140516015931843173077224212825391056253635578567495972218435793999808528674402129720602928978004570461501033931521289868422185593724357489525480150739437795523627009212267862891254618849141576443793238697722726843834097175733869937092873228350824321943570047085788848204708329026488807818181361793645335356737899143408808688271397093106279710335281205836519506705337870901825148953254032905731214805269456128095921325243088093561593599520098157075402356447197724831689471544856309427586474164867446886163564522888948131327098992146862798388836369385755605816619809982582400671485544938047695688448291169777291150745464595189624951686233181496066626494987319340377310914010809995319031171528744477206510369588222168942552700314253045422045653281525618448430346453940414587836108700890753724926693147226454648317652757045374460566916223797207176284716978484945333606844499054819592115303873332267456297794816891022325424460594290164406246346308363536526751932760028539943934838299453616456306025637409258979091235125979675745880648140434766137799389534057655412492845156495731672600630852978687067079095403779927118710209279974058526762279591558420143136802634132581982781293577430688568961782581501670785140131303856395460278156838808363480276496977286403155337638247499753518874794316699481822374349049414089613781095076488271795480382410280737324599932858329510215163114494572783474107241614979667408005843461303245638779506755162576641491774287367426162845614696588540268694026132983472472270337569530334430864134105494528530164193108337766672838996528318983816126764409556371937967030170315564628615068212127728454946787159188315608221538570811557742985419255201935022297571507497438392116886887963796046408241304416484804298810630317271344355476784867352066752217279436275119533592684565739330064332027974367586158809275274728047694698912142657145132365591625647280623964015952230288131382921896158951290493908326973503700996610710975476828213529432686742437501618385357161186231816808731362995270462343795549537572925826075242247949453100079423805365145878618825113799615829340279507109763253339585931893541483869651952775800753679914237027377598662545687920797905467864391387121553397405629989766010763766974671671097476832942630857945574597467719066946623780303036845645320984740898055387880832818063009792773523356259489177587516186533718619360786400583757569069000118764556799399282509817984087721135482978989709445061774909968877619869028800973743718084241114048392177714403296935536927370632738808679855467334922439008476989029032219290069096026161391977834877618865567900535649741518195020870917211397758404421192957443752460857011745028177612253515161350974872730901000932661260081386958051513328655737347269486005343174769594005134830268189153415033689789088312974808181061850646698903673086365012741849841050137053570166095231760549296850781925220411112764140818286214486789367412161423428347451609901107346892579080825508130041840589240731065991437372928013116732765516784327610688039068090589506842440572960587279740145540107237979209991524613771070267870080841804929486275543451309307567421493217230852498194366788659467719510748029685345261012338616445797581025940833953977716986893480824951522187727430630220973652315873638567792496159216160600543004206639363062484726666350390688439332533722466974904326891128100408521667022538671726577799462306593561458249936507962211512981126003816748625593282991819048897175363014506245082337472015630281626352079277945470518680130934836657111643787051039218809618059061704656837398019515444803994307844719717879781167945756521593076633180462234516911752477763901298132901922940238179730665073260047458030616842824015330124594752325017357156171676242054579513034502681633001270520412317301122913703662366625332848324250227132895244289304194495939010889887489232861321325355372865259908075893279023607552828101923931731975162845287417690575490963190601696955314168125213727085120311504207735470697052610971156110893054639251222350139696794268037404604518722115150235968465069048122277101162242943289204920231711520994831236020917955179399431570805164102258913247774833066648515976803404935103158117979779048013179195515955705480565307292868766412724835121890025893426437658329648437600052935086421470886987295126930927661074214047529018211912349049409495909999514558876736465217865190140000899303105148076306416742508650074350449327426025951403707738595242279451978154457406076815854505845033498616252054299065542331341383198762700644646682785683062819048291944810819765389697562221065548953478405955762833651830806025147543828100981379597330712291519372605213772959328387174907142335750287231229791626495094075142520518105264844359006318649236110726267706802585327176187094633506232407269573970180150306864323449275893417569869262646296030421102295335042270076177002307174222711882050391859319641038858897795410741580619355802486380505404528241922231188599346237427567305822331198995082177546610855001568230533564336468807604010973658231856324133459107627736097990649476671089067888140094975874980507441842616256412114892503645686889148351353749419494020194104025707505108926081587618226671124764489284767857311698886922612625338655395631573131917363959992604730615014390999971140459793202752154756724252305142247845782789261893854660115947915128638794507214937338695114160335994657466761912629421359566833397901499658781961506668135723273066659126101511637634081408144592335098524659387951096781137292478195247540789389894962842492066086677284676449210517979972653524140116793061156536945728536931081318455036702701940252266236502300391586753357583661922817813825313028562185033969448430032954800672340488255997978135280835267712307192026117933953539285541870892297845127962055045443008572377993381946923560255529478768535901996759883988419809062108122179421705177261683616374652614677426800394490850459200883724198819177040664378904748791970096989472026987561728623108514576487376972341416350686890303887049133057160702926539649736751814023138698958521229016955726969064589953158690237333527253846886952882265138894610076995803648322155877721694674987305908753952939122214045734131278921061820113044138412436731868869218938212870679649335259330744780945702326046468305594264059942884522660870585467584313340888156031548611750116903373597465412008778210170530407801494259109805510918433241460808868777688216493321502973806468453205429264029720737914253986024339679582017792957931220073593260143495522668490337990117140871104276066337061410990790885324474183138069599795922014370789161545039311778750395488537170178702025991086283983753744037440965302550761110018087599739065096580810303143833377970236475376955831021695996821979730389214560340214389930364999646339006240843618937893121491942890034193563033149251067570655049085048769178650084510960332047500342374645296994264045322614016658423393236212633744210214483324528795339723456580445475366292850746567696148804444855919062400381839524592358525707261544666115864022047923946826174936906308189861869942181570386138438595563700308788595241623507011338315131185735320194725197724605247244737534862845743685949713422707836727956244605573002753809599969577387755552868880112249517899044357008200938731833665599949621323342459572182123484680417933109150797221014544258708754245547623896975839449688143752246457910983427416942164908059724793754733517364146158960267961893845946822313706710414433703777310983926699632607852587839477917990417944600466982967903217231747334831239276713601636209478484307824306496362534337676177221805282856307433339994827620385458933912300805510675323312905701458501416961898096380211736981804166079262286746308515234375045073927937085017059280883893271097909537428970167424340670239372329839427371330876808546189056742867600599961496980161229094078378821666287361758685400459501637351724377770785224156458267425175719914455369622384547820501245841551183316829575198667296601098010162947229332544014628731851940669312677475929515070718117107970010249089055135020665044149165267862641963447179708728753399803336033381120217382978894204923025014502339895751145011249290431486732944210078313733458969562321643640784894316002435410862857353143460423763854672453959442131638162310651486029238703005275182510020108478632173602029972717551176058317796909733925615407056397824640810188312400815232272932563267643132856781397094260528173623599230278418615829045624507544089099864330719168940616322712904042649376379927096085367244101585729768815803684063898569795328185118376379807197452855253114460290539647902152463853032493360619206793399992581160046244530354092205800765079198685162758808684247787811156476809204180484820331845599663378918825312233505480962531028924682521388332430116010054874064894194572584528464184189698623743696427511126365212100052163876098616421619341440946558218033629854988231803656332197840282285790812733266866002080455021099237263293031019754465432179815130707323214853073849058599421998216574213405978204998542385481069959736012373484795158313215185864778923634695195008966569355257168280142224403037870012548259558925621326549344736953240025672283283455025978405601436903438471310657312844802757521311017834657915699907238493630953848379548701188585869467159778683795515999258340553232871172772296395843926725325950288315076482639806148413488577614618258526061998679287784686220766981966334688622141069632185908942886914260959191400901562502469894083672284416842915659620966596782915420176527334093182043728328765330343491451837513839283831392421460740798091579273006407077464551065373926063813462677927711437244825613152519219487101004072833685947581969931477325919836969655916190820651031767931147421056902193915946334888117225802806648618129285945498937983595185861288390110362168133973126338386147537135227756461928428401140848120753282666973189774620227607534528624583482791813395187764437669792077715153522372889663633566718232445134922351935491789480196447133307886087906329170652195629116954394706969816086034534498253358568637850479665830210102623898401795346554160137053980830244297569323406184041624604570281761419299617012894314152289711980932554561760683320148295183198629588375883014078646307413107100834260898415308329964799273557427465796569888405736493707205417031087976455194328628125547417953140025879824649235084591931295059026385889816021991563833530622542384628149557039436005526928933211982181842050374124745777917825189760355212867700992140832974913058266464451315466708367322772092236768379862723526926024546315364392126054755576217606017091783705377664729214353979645208089771652588742838835125396753213493104787712476441702177343733658700756475079680505208572317434863477248125114020439787345952794998639690540940055717219363932499842367556946413481089977768613656640029597193157762114891426522250577796907902280620649318364168625191442426841181727079080325988935698860086810834009340039120600713162336080810502173294657353054078610334265657446077220888878515864594135287191205844995570420750929941193777947657784892428709474810035374862113069886092944077908460654981617650792639986288204635343403306023062473091759970294994103188931745310793107439809667108679648657526396451321580958614998242410889875380825446920405573851128103403872151863979889547124157933218223435819471598569322275178126207474712624837839139389890897734615036021805140225141704371419523199057295404786463429392863610760399180563649638985612422829872698046053472533303244449840678361729453349228997032185480100720990722790445633381815166178030480626875385625337598473591451050340438055258947582887729624077569694320042806589363751418323916171060148788413776407800962333977430570325814481906941459683659192022819940901259648105182881257043862454397435234458225259724164466266153833201596078248668183141961404108497655079007266127515922315181076395694433212210465198185425859639521804611947746835799967343858909591600183293006906234484819107769351801436002863109642832903260920658317090761513355915078159400446032366098515398627718147440544726995699438786286783644162690305684668984483324302447490591515141453652970464861165295260696703748705036120924997472835278442572903585329098692589054354109784004461163963947929799870505460193335439621861753009393427481678683246733957334510480076137656305436427593120115834506873403137309469808995099845405033779734966512404879866577228213310771295799118151238128029304792490030973996352275664194766335044812837014960041122539138169039341027831293837596642610550390052186805709379403659278360884182669593898134615666489117077036281124696422669751787710153225459963524148601859936819926307838392664083688311272571422371430416767514043353488611956174032837823515952838395298420010278699515439765169094313056849464388195696489793836917662122225900542206619759363955160820452230587275932285816038422187476648448750318969934696499457622325397018105689480068772553297175159004811574761017354012819006531265190670859910948363152977586316722601049749272940600353415407179702626474335420179634734092112972373751111242412651806929548675452316276554613326957610398538943864126552066959429426168894082664776704416947735290312471495411781833754264136495556920206263391473511049219503601023948294032524562276391146012148248206670533670419401681829783806544252879554891644533867520220756835062768678877106642255139910276759366165272077008268705730599527958172517184097981322924586285719585203963754790153372686317304690981611769688053530142649679831242945072034418914520181641992854269769637706407712493830990250192700490386486405694491396084540056296617989000835986998628955306696595133849601934025406022403116250663236350542429106086475088316936199847958114182555909940947152523886303362298100306320561176133358141915110545044536510858769931956922045886063123060910895674352897571228479458418892848726327227023300205152052973644756493299726584162703572265626332249726428917884423086916893548976223518491330685244959536453284775387138327133798047155405782492165712329098850302498622399005791929822189925038460559804530595308381127546540903202748853097129267205544194089004883468553632394480149831749200302530072647260613023084361950845648119732427674517686942542899561241729580087089013001067791865415069816778209281898206708331598487223199599337319209394280968933622025808975036880427296978655457124828997892839223176611328885253854706199897561109558296865022166314708540597019003458056216612278770403188324860954899861254119460383824855863991679343861791085903647706905427809987946578063368838607195180810281024897732106983179291634027309703268710816571665852686694602551660886173121206404158303864260644909951413371666294207997303281452520006796467966412666822936359871298050390563759542372479463572734909531221364849911419634248226948878985755736794990408574007467843603641859143611030631801178942076894157228411607549272867102786167156177662411526720477577591594548742676167563739146818478808347340274361675847352152919229622983450725020198614017566772647137486247070790079003176465201348217816840705046318342118837212707156382293393582702833610298972867642702634185079706218315321529315433301234730133116742089452877167480477105358264876095210251879350831819908739596441613882974712554610135072293608751382436018152091380858597104901097611721166179314796312697669425894228384819154046955468094166679867298707781632828234693467222235136551338127561010347992584282754295888534967047983799060640853690514127513203420061896927469857192542240078471621678876477306846458663249369774216924381053360239428147586652482881390662364611642198991778825445745012220362217558535163422697478355522055369244570900542636232650215646779683294399461997423186784776026930659637346465629856803871812354671969009178163035343039088063772926718318953307937830495790074754102409175112585950254739687137618843933510528385003463440315829851832630128465089238862763467297829397171147282804625859097963381661889711386807873459897743220471514414206236679741949768286824952414860505639139556916310793125785854186397091267060432617074892988799887838933621811655857892261868133396817574352735848826441846565702726128301894013537677138919705527918756585122080064863306470804218674156282660011966989749986578397588673177547743451799405014084602577578937720685657627853121293325628928605822956898132862036989591259371712751974146279860618006115880611783078468877846586572288850016906969922454462191139786372486456427970781651658931669546624908797487936861811597807869500581960799875468127241398445696446712718723570291295220911252877405185115883694017725908977844927511763522958875668127214426504364820392852306715337947304329001536597179907965438893271490156325931057864223315750466647407722910946724403052720808534471383006213920167100247850949942109289911535379773609761505560657660610677163788079605543660264173519049485885372735977600366157759490490497291768377963602145037271662133873657614265256794627943967013808840059238556513769376908090084805551758290582732768856037587074503736390126343834871340932902022907119021657534680310284196309543361906160795817356550277225032802642135271740976142405069756562513615974861391167777478528324443933218090289945381006508217981905970695223481912038041105301562234638870607534383658810338590491026133006762070550296802841661257173595753266250081154789196067315355406924243456678442024132772460763436696606897663336954882088110750315848590203323133801990644668180080567822190072779163103453016712563839399638570864992105794187536433120580744410357649537759961944874662251417327447626739935793111453305722013173183142915036432093818045921040558327593516117338848322108650343488976359312265937868804432940271069816836512309778827141161402656866932573319644384341372539143666768201260474337924819535881588847185549761910878125866407397588914750619091941427637826301008532244952916988920956768188459430368061699146733648260634024265905295849601555730764632965688564958640503117015025547266294238474698946241575083024385418652440049526294142999435887661569355900889166945044765687791090468129131154066135559093373735674294605696184348867733371319894678834666282444047903605425407998051310059357193130239029731794541065290684174333304227568603174029677864575359335925812646676161824246709145288335835190746571078019238565882157517492860627344206723246306918621278445838717762109210842691601433180250624643880108324105818549476155789415393391848701391519539417173857183271687562922212024941433909905671318483893650902366629522089581131515422298465539502403689006380169435457732177372044687758616437480863196203922068952184328343472251776753260382739118902308605376048211066678373420476646508918564570814051076255087213035200507855692013791117191403663369648172868620294448154904139760333453149169114598682804845881327153924140448179052865351844538050899842048266898357189962564332061793243462719838953105163295202317021919063692744555148507247715723280175472908237237065580444567569499240847233232514499355533565892894492468513951469605349766798950177309625336436070578317993094511417956557553034456844552098498397463906292576213961156392293122326028941369480476022041097046750621408468153770447197196189402856457222510495951817009089986094210659802473993696187769287829290897893768638190833326809065096798745087124946697755260637082398374879458103459417293552210004555415126285173623933034090534830743819654062294690962456456819950781851444657011241386569663158561020390977541050636316142588331368608753929910768571745586679649985024211241201261467629592787632254834202071331964561234845340025077174128444207032492749669586207003601921010510723996810354427192192516029582937760372643729973898385977636378536343823904984048209565867933112198194895109855872545736947920161871438538023166819466193758256321669475956777356839119977437008160675421020840850090703963559199298154703510503231259183907068497036819049927975785124594256303390444933750629401853205386614053651452185488647123875228486240738714525746011734769609456822933171915168264610039588542615525791092202554203561587226022415007183040260280382176198131041777038749041973987303218312573882464058310911214064741255797566671382162987463617514342920373875164784813732067646321930364706468479631715160581257944827782607944172832748402759245922581740623167922160127442232554889741458800810425837260088672292908709441770035063050322855333730373361548803232887076183099162939246315731243708077271007325425598315112537610749070614967549165420892814307107262918808446728880599940746134983425716844747193692253287538738102619690799042793867743001253932476713939184677832565655540803585097462260089736600315608036377960600570686957432534147720332925085441495768032970804439545795651818477449011672020101057680648174040459043727715500997987133603285676436683375042575236202016920996771326454394192318402678353038369446573302558215911453903926701202911069748113236584277956797434389991789135835111256304244022816942947103325648570235206362150238925172954140148398765123446413799656151661426072577475955352200391208466398377646284417679072787618153004079987250170010732478904943685659284940705417603215111756131558658952990027224806253712059967222411265378417761984907408815373114466428432409310060659694318617088200164920397752859022511564963062494337799093106346154298777217058838785571273525507772138419624138544179356602154626828113881196388213612272349183656904881916725258671061065346743761781052123484850889939823003570567904699263549903628111855182487711297467461562869591873398118374568633206037741185820580001451587234931062624002712279783405291524389772252425536204077982114267991881442860850926496255997232775967928257109828702930613417649252599732499654157118861331026002974714991027065103239052109329626441598345628642031485254401744602677661635891520362566012397022200945414001944703204951620364500715418205001184818334054584052460316336786571377721921333392635838480525919354217235543031704330170656815276432400638646447988436040985069928856461997691191594805308957823944461104114809468966622540192846246307763807429654958757528242918205962531631035773706459237653480855580490089545329711568821428257448063384135668723458256973614802244297199113035299477764234191254130082800434124399256761136563243922366891063186149810116572048273322385633162844613579866263730518078986733278383171678240632804469314594797009710556409416562236060339835470436420774353365148207816078764369777641138539357562573894744301959377703195549979543574730956679964215760461253058863338980205609573533760407882206024206072388890057141322495119179274342113987228482578605172389970324804121190995075632380324776351456751032251024769352048721926993182793038911449026205099048856638983994285276462445980810022249550633157335101346073375202540257241667163588795719720506877662200664041491527874409186251664761129852739156997814521620053457712209913142150876018140033516773986212075131001874171740506147439791102715669427007097463629451618844149442181138008272421699798946731290576913440402936729506806423089876277200599123995352349845329940909439542258461671478878407205578934806422110979792097076961530406004544623745688616052675512825989710657598614559689455288569471909681452018927039541721763501969135463211398263274076990660038320788500327381633113501781366719133341457836123797299884340405706621156710003925317596581538832105931252443368308530150603543620120676895906129163436467284930383866452600688508350095194588418858103149188032460278193730432626012704522382588907684836900262658835439263828396031305185918367480910280651237747936811278789537381414243993065591487110617348084792964892080267008123759266337050981530852644890490056223636612536860555646780358255752462958794083942961951112376845304161834727134208435834528349170848722626892318155090526309171830320298241884443416863974241321101683221235098642603709824181229027721279400369157350090036846915957474883961562528555873126955208613957461967908383474427877955332299081317802017850873341784380736267855073933385163908967988811778083448279869445374172298884599806318292685438621376584029305152181176144998407310302649565739132080243351445765602413283816959369389522447692667354522729326508103683667641246546656265833364776378944512288810504499428610375275628825491452287003272887960215315692968836248926309915998668988658447870777973338902896438925077158497925881778656894398498347081990079782961955108799817066618441442230820788023285564598297080961118468802433689111337998663186499513674341720771524278432650168461311340100526822668890898870180669099050826527344001704850728274607975489204407217882085500055533857109278739729103953156068888332024774707954885042773073403403596406824911942747189017016451356457362516572967792535500428334988830386787885966520863452956040806578476271466275214368104812390036980042128937342773286073655972140585674476685531798693459199122433153619175370460573990775685375463689950246302837110297011952688198223934078039881286864469848744453196701008719916938648593637618669957208021776503897272609762895162389936903835744751634177535852571811881461568282813274720522151544249875083198055558991276497186539189257034879943685015136554596346482292221021136048027883566300694652775332838281065027244270566345318076736845909802338907657386628395858285569445824767040647433290597995688486477058489058770958670455057596176786582433555330105073510793963648667633209577666395954282976659360363982908551741267547192106532576019603269966306674469546648726104509449891852485498272219492632573185561179207285863064118881113907530086294354278298654282066351180934399578222073524421895198102546003798565778205874271099233937694598918012730576283998405651297732090145884841849615511060387958886902099186650485924851318211752930349227210628073578076689204280205418936308726254182755556833327767643825560849760195679256688571573878105853111802409225060061038327017395548113854793797736499903966672971237390276815275172149266859345300935978558580858551734204226595702609354558062600619565313499072053647461707033686483804736859248832690812648267377951240080540711438518424407916225394944531722818582336433042454260546523394167885027965572250968848702281399527272858846742175655462169716145989397966078223287189397303702942745533198980505152653671574192579194486018944710987287397728063695853499397145184079796455077806218512499343348781718140726901953720723991581046142075388043254792164191878382801936959321012384645133231984292901694061943267872121065652252310036559201651997954879803177853661520565490360432954062949274768510453366143841491482559362541653149122504342126251943010450471376713488384168554446171577917093130488678807390625202519478787714167373706718595515243720074785582495495578570065676250518544124097436675279666558484188769520951942746512411003481705175238245996432418133860662141201782287995243564734818507857065628606040486869019377935107439759827974996186371575333958144815757562246425008365581780882590717431839104464171040563968701302647791661373351396528439550162377072269631853953294372880513178409364960802558316718832989616990462441979484609495005537664429929515778105050491341432327445845770434501180460223579745723858408956791774167088044246995789674898713994091654045446770715881616918660321567559558683283644576376741327126695638409961738732838571580655516380245108048453178178479641920389217378690457832942199983042804758632965478444556123359346231644569287436853113222163200660331378416981103375210616814854788368389249818435359474314467134243039162677438021906420988988225007655849129802599330289602961737453883039088919694187374447130910977603535270354874586210085671397916096411855959504666428972328904272074910676464620562431104298636771102388506619936772897847276504993007381418294639525166004062563437975903432538061490866326122786108765890547714532530850717718673419686341152605714074514614966915725574067767271174424053009494422167405883236585771404277215131160313099576608654787590992366544449865877067266011860437937196734816696756783090686004797143510350306075298494987780179265399294195340297230675945518825915189055097806140467849358566485364952701172426907393775094811615511810666407330107635706889506327088898760516829624434229260736439158596623259442841603526386238294801894437041014004129610355137773701475441700253358467872976424302541190740467813418390194487504653937206325801186920748173754101711118084670396350639734107803947181093704547798333889116834579672771102292789774452861753447715290959677383598715559643097445161528785719756083125958880338930362650963921026367983766813968269366600000606562780291860532763084848465192692538705588463112491288657461426748506892300184598695256053186550425487385522816096953872409429337090274217031995101091120747776399858122316583609884294148573404769926956607206206366266747009314705325846167976627670285392459230390285675233052474678200135790135524772340906798944563701157831678067051605105526390354190879971545951632870993497296522417305872466988984025420035521592675044221829805614796961476519160061822535485714353307285772045591304265263355981395938838636640505940320080208999882700302666324572465867688715978986171091130602238585250677069853854691937746370109330659551315933421016833358664726794275054805136208447942841444739154600885562063996814290383856815896066397561066071465409284053542835818407933962992101418605348201233832791754814714984499029297073766853531460450747933091764784405300098271154303897763907513818161800759983396060354249659526034393594161173832667494034594833141726450615048235254803251727526565224157279856570306764516335479954481428232790884334802012925052871693390323543778402143845431116418192956312763315596783922643195309344082652423783312078354346684199057643996308439252097490341310970626372388505758414783685789046006845154937396908474362842928791881926762072466270780847912271873341234266645545890957539267178543818406395262627998482729358866299588330504089637762072491612979523985258523280160140559567744528635829215561466227120378069713378335408187282483446351339798168994149349088782602721011405815242238882310407863538047526322557674141265181466663103598481267565369780588066060861208542879388033956458251967273737556447816935666339631173542279694848196439909533210889426677398954505850857390139682314209708214599691382755014454837744562224213011308612162339589506149103005931475289257559291657924558069875281639063959913029719626937616026922428561985352133772685700358161402612809815177565678293475663979827761257404790024272671185570925741540931164108874133364882711112590182843785718899342648296052919253011703935802434850167559555947487230727703912158073567508848198790019817534962487435014157469444356359910248990127001376683248714711087679233802675175190796771928672820288318460733108349194554088031404103262826836983811423278832217348574120714933134638125288900910381320189025768448117972336156588671501249477949678587026871607283974149652396421610161932150027311934587443387474956998805713455287198188136756098919963890076443801212925094493211590455029785785616911555408761748296337992286823955227563796405473626827379203619044492725057345842107962989275760523269506374472890453585333738257770935554970200921624904190471146745656789636654997516705149337356005638658055857894118448186120732229370097265701885128828718612909749204007626428310056124990521875393960548059854300722221909735687207287692942280761402453163697778400762905778893205966137016966865199524034051934765486493904619031076175229846853304474469755081202437355732709719769471753716234596375947956003162514849817850121331198823262358526428845854136945401987688556765276804429782838649379535413177115277972030558822457160127562082620800981087696082326919265639446306924627909274017114640675623316063525374858179035149752502354300214455640999270101678152644063891561980496426555737470110082014215586469825665243830388175168302152292312545206141824583085816798984265806873313980013335830708211563293714336994939994002053568348816361814802191286376311057281258207984229325407301529855697443504859626918860005496896117687615547954933426259774708427342602743403173577920799668116859776296010250918089430023954035574611841956870589281341762729597916917087998465979277123742740307720080656421300707087904023827957126993758913420430382255195999952983948289320207626805591211620397649997107955009661361376489540173757158950985311341852037849546240514494197337864371607308384904550242436060173487644514344139007927027734435824978964182053329513384536327194172820669408586244773717529469086984993884851132116944823333964461171827493646086462413927645614216237264009961385813752765104001224250677813480002043422663534707461385162051411345360894103912529423254225381489462266042764799447546931500337987573045900570388881011956714125714146466546593474172613100608207513284291231838242718124238717559875171136446225224995053882335657542477193744054436686277448683373765824485646942911555829351702608192546021919445004706931094675554124215632257919479150540004645509957039718951225240875910316785020908900582730884442958527969984674043958845126528285007372158379894036882353034690335159140790337147766901503639565505751497847243687306114631945915789941778738668815220829511973219003036909278373674046975499729114328836237277638815289349847582565481812223308631743387158053072369573226970232790787952029732390148853074643668078659404542041618941924643094212126643453248625803113429124537332028655115647407045465561301732999093184694960699976616087831050284626874776523540828843755498804960748309998664207516455000731656177857240241560513262414766183671302941917789168190605800518821690869963090806588535312577364279072894602351135345209420899271137264027389027639377514156340101338182598636522448464057117820062330763754955939977967865660424342489773803606059224236817208461170852236535218313405403964571109650695122037420810554978054671233988832506791862766153788218261463002513106181024580731431637938783933121829613609704082116115780473948872985886844196102597276794138632641499900777992211103645733975511448876908313588804564840758677447521887378239640148240134136685494156258732324294358601643147605613457074509025901121289530982414274090632640104497839452806335645902544553858313528066756239758383520632151214981328023755690575025506526233017814844502114346706975323909740974697415669889260764346089976652572847754289162034829763864374997853717114628958366329679569324101502573159834369326892019454035199804060218003650254089599000988646778819339219643288625364556706287165756036927110355968047380623147577122908267269086050733867638982929336804291524439546897935559102361697958128866024882397724866079162805183909086396214127254689615039171132764754360406477112570290584202862743418523722067149886089843180588564175940091644150024507104448418636946125560385070043341229695603147734794911167215181708798171052556798157692274322536840977128506613970141438643175708666219338184904343216270803935673297205540454266293245926927621582459552709484322858361901478584060786672157937909294674665476066616762878029626923598949780672533996927012241845389045567871658030153099603332068112633263197061719644129338019078677825578207993321418117576093099782186731392193388341765777118801870002013963035898465806692119740199218946691734495618070147951697252398168550784074357391263666247740191141036258268274691466113132540145893458779487717730321045692206143623368798162279105614139902487538482281190163443751175631990517435145576307831941054523610914329596030655421845677424241336748840093946594754090371960378302572262837706425598586152297746985418304507224558861170644785677397235395896526615761442270764425226045753099376794868349436545337793257059339422015585211071819989843892680016190994124329708034805683744977104247854014810205055530346293330808780478768911054171587739233121706256397056226998079915443666554687166714824987190153584692943631919342668783794399782147447652491856220122579615022654779308988704060934967879024885071721656383076078224529055828104084125939416911516606270292868574222906819748528929525212253802374235236984285645678972405824331714777992170455864256113161080884393757187047460154195543235872171575448254831784820659977594362017215052102947712663749417820408126833300496409604360539829011828925512633853778541266313990850411088673569397410468475062385504121182275764208695683052508073750952291417136358586675005986910368909739602140264392303884921806467359173720582079950337138534954770279305211665990427118380934612271847894988935099161749559769101380849641184414704822171444695538632796434650570063469010824081717141065289910350960319971763919698616587688590822578314778283012527904699512905906809608252838268635276483248686219755483015261211652578564282776831532877474238950995924356032965410111572021368187299854611260224909193583101794410030166815850302452052651084405189608705216517652552567571624284338367428389830875230715146684109149164278764173181697261185108783151539220707746639781586662342082063984975875413049566065957503362889960484882821289297718876883328863716567732467541454385612089395314135897543297495892696417352967712731903819743616276916640297611140427707428580253510282544030025756443559620915105472676696895677926462355697984663406707515478922674352702009381601180138403892428881253498981679955157260507731557542759547607452057748323795114431120036940048882301153380894787766917857484335292537785884292270522161461428248541798638116429466325930079976563467769042412385944132751191164122271898348547145695302879860285144507560007580392048937680096720196388203208192147769276605169015996692944689741335003710748299930691908184647287812314119936080287252659683258945361639307143250740090634686072448400805722009934411095339542396639886136756655374608182511592802801262034370317370266872134973865504687436762235331588023350234161803441677978640559996235489627909617063972395502981990993906395642566259097742088800609127797137768125306610437875308214371794293624013679915812020655663129698866298141088881004067126551455824231081429876885030072774175267299254108996592696275803532973667213859739645172469764040815254706073045042339617409104858742699052314387972316581149607852458102892330190580627478481121138071885795265008586059179412539782997129155348624696579946569170946705763991972143314733503243103199836854253875207436820660175815910225972465231369351903274701260263331921365749369137200618097815256755399213606907382212890581406191117557175808294583804119981720354683990171162217018760253069892645573701412413572438491116115471457868121836351685365186031057207087128248687657011681843616923499002477875076332660667273481855315597563411468682531502444337187356513449997447778997796645366951810435684516075586490975584544001031902134214487359999519377919556051197463382844496120796346377237305484071854553156748747311446692640738126651314612361606197753089167418891855418390668127832734537595924027271068511410686939707418768220166885082033286518216580760623191880358994947466539867709439286565758470376365463939058852510562452951459948174231702066286390560154982579046455615155524273596367581236702178939130540258890082221035740259621863807874604344221384328066226948008835197327805679558282382016977887815177901594575622231652854079130847336280113086569719590537078926847635245437519980259776463981206970087512725897657807828339459744124680364708451406140734547215507961455354600586183211940508183238553021953740573924313879980451094066319443514812089295946429370025479805923859204311031775547691347573325156123042343984063881236120304587229397742403560760022250482020252873655056046201155582187872925115510437703550557228570897833581693831820641876629438485849964694643689756484256632066818176724961500050279394145726331729160994238381498881895807205157676745387699097337985542429580369656914900114924566751780220368323716255042428003016714667229719321554578575252445069234281932602477827012242763260374119806133353650356368408405518254874165500625778791321985871517814506511936446671338500234943381199381499091099576849407663218054149613529976391783058476047079862269109389290639662970259821116837107818163245987737704864188876245257532280040367589468607589833146948372076613321388296685341985077380440011458391671813620794918172473713805395738573374531144911495406231017217636579555704035271256096194435156417494011933727624108025489892617013555339105120897921496842983747944488714520063183512518725660868829678209788852476672926477728725115529248936730099233327985227917239700019610236836050686062023640288721697568656121046073223105635398869126355902270241523598347566118630163363812188466967759648053551448651069538075966004858679549634025993887202993087173488181351545225568665870112141861617075476967693476975076423485585928026652863135029131180930280407423340582559376820440463791521526333617313000729360996017564472654788683470859696745612501226748752900786246560766079023047384965613018801782259785886181228609884893435232348621853007746749323341365598250176391541677112916414106459288754865641985983818670646950797944221533115142286706164427532419510084560244623902011491659090771491836007385470710264615515793461679932197222580815155777407628574948462339113779197347940262226388128320386433922342088870809660412431462537376581326793910689218203105905712342420760554216014044219978123029940414950877366701384410241556253273435679752400134711820898637781559559703428276017984786592174480305785467291006787742323439070386452449354891976408599497714155328555496798140811591187601541887047448234318754332795257922467927566794070277108113422657931714452490766007590787702796681334449688995034415835428167711520511276086911814430113204330631977465431645537406892310592956526726018953549813386426851676391428393428360504060088092053409333626108924005576154025583543109614207304463466746616834136509947889112216832259827566509970307706925869016874149002441175048010329602286499965421998680748071229522621375951488428524264719999266047815823691381026437354256861723106904546217416071918135828525082827588962727422885386661029173419083895286582080176015007890503489515802602713183191080593986154108868322019792443051226382980728797168191483099082128472823243203625961664918898683150464848926644340531614474334291141329765112155613698323972708256049392892587606909807721778212066720216832266032280072778619152784014453124599320626163686627805305743052740516257129429128467079688619532321241597931509066846936027493725156993039411058112016093391023854265255898034991954829080830644293972277240004404568496287424079343176120913610056870849526580728652950778634726515537169906998193959150367785005869620185978500271648591948190246872091228207660171400971989222666473951139701452368299466429049876445917852943367258097416118812291998153352666715913931455315597266831041753781392943018051107637582483803985634725443172177996292986939551542883152807107605140502803586812992266704047137306510457908318780191904137985631299816801510927681574886455409059677473498595825258105937716992363520767072464580656090152856884053022675629655154843537592056331317468514005715045620621846716746449687229241520727448430211706647281752252167619397945157654752175378787427029470088274660594250185586049859777432776477980224909428983382788676337682068284001427556110094281377455900328110901129938973068526648865277473093158904566723256790099770273229994546742085626775908992978593093004535605459524223371750214719671604360651874548239927062386828745876508842709151056198073481479113019069957209933886991881730309462581996324703037657797917068020426154466910085490508834854591506305241313500468952522625131102464806380655863635405185561520126955831121518003345187333541041815182086994044421481026238021414429838960271172950814281531774889312859610954006112081882645405235501576403533057051171493862041594851942741694080330886864752143572444853587244758921572620372212360641834050192296988364666984188693177907201886309523338153154724301531204999155179734375744087982803334491506752924522222121147211260610232479383830036358311280331951303859198412768248140744345564340447402123318524111219473992523954855871174101912373965425192935924471965539904167551133043953100660005523145873216143044663686560388698836759062786265048593225254092031316557905432944652945609896099021508086474286089233306992381237057155484444709123640247639912476300091920624444802308118491775789939484228101439115290570320340028855841353766889225802067402564686380037503162922829818758491875421286889564943460993159308640172332913918296235733799635744881974944372785506669052534641746202918252347931173513660399827222714253252023501207413950332748926224888026858705868957975925137128067279262124223198657545962116869418018214464306320380830992846127991511377308171372289971465767717856639909185536768357895222208861059420503979869545184804821989241151394660111712232627192329727021104076740630323596175624692945205742405829007441574641089427388461559460386704816131273266360422547219887296453419262981436353355081744182979843996953965564015001101775283180266610882276287518051137552567668809587892176836106130446035051255544225650427407533222723473732165403331163354002032573462941574787676695127298110146388444813165364730334695103979991223689764344868753701278375498884630771679519136748601017179383492404520889544252908410189199358194056409238034613934344241395221988135097609296958510435100784217201594438417522136015090733087278756783216594329128266363789314488747488601594008180188139973058596584495089342166774262518420596046761628157956616279482896723439013880771132815805445474552178242463992911511548338536760110404736884658596361683837048613707856170760835544358630919901393427073991383947141799214488686553255596079747250165216100451379715333051603538558930179411551586289609835741025236034747279874916323180922848157158868307888914273329058694005782570874651344827445128595420371998156453460605249234661030261685549343137529174836711737025399805156927046751820549236009997194396349296103030964445006849067699937854894229766993653505099834175787592712526002466675368759864595510724698141652440505637584060333767425287926412211496033708136437233207601611503939190790333655750387682323344526183790048906345647405147185853844301360832785834012445595804128120657981054061881426429887963805104894789769102224817258384121645545982468672465155218361241599541079844739047941033730521658797254866162620693185410256293854951857643599394545725074279908477442227351862548771342809871790482361753226905448949511025062668951781657408859060891998618937625763017764221082240544915775828251482876827517030536101396648843773026812028362362856446628124547494293357298235159269275010619509840307956774596378999696101139675051201308086202240993148705476107975608602396128089959804406184028442556877144204067394185455804895493729323967518652009749182251450607241616297345510565497902892018095959318876280238103729691958016813720669623151459096421392580060954874451309488679399594681814608531799185872834661506876563144449312011101888860744413577791710974941037237611361503940998223028152463989377952354374628554451241752730461818753315187760756552478365802075867460796906170799729212921316657649983067096295173555997075423738741849390989417575957521593606766073771866915964544422300011404689297816710928080193833152285040668588113191408123027964700153143437532754039656861770979331662483673958297694028271025377454413187858215799639235734479725411401470138092477886524114716091854620469364815924562683254297579200388549706197422504291103820402464843699182742926190815905330569193863069079326614685020934325664690718984455536713638637274612767893188032358489043369155949142226905683876716507903876825643170927709201571877525293325270199064152787683325508691618970602660856508398030238586987081572618397172889543858497077936764089326651730794734410171449599898786063707692178753507366916536472855501511445109435712801390239064825390134641106703180328735411830874282176037317848659614409018576416461143329569001695071504869902889157879860746216051776514880070098516974047785774486245279830453301894534071121583731644095627224592572823878951165280194998157534148283659846899594867841166724175275967497257653899650772250842100430609289483420954703840778661216747402609071644000849807286535665237709913583663536577202984728395476103028746326224118247024228130272344136133098544936035866689007104072032362882506695048764409711433324323038949660932594910505052362869223074960227014950019153305457333690370277133034534660170216616147175838604329881316252314770954576759996255719499399829278681218281032305704533935795177054444702953091125458340283576581991774536984769691408540082317741873457000606493176854271383469302198823430865237820841594626576305161736765830332864139722143510092339406537283781577611116681992970395124648086303930080195192691829231876940842004272254680794811481009236661867759097189498254788215596200100400535265518017154038513513443851969324520628191223482463435956779156885821873648889747043084339298914630976168036583790561091428966612430216569040670105128915643146097204126518396705383499714455380699810656140455589597886392972540378010254852736349426966703043994105065498464859671746379446909304022546043546582072246077521222336208357374214360758643349417449245881499900021369322946510688142041566893656731509658994694387757848867124834226402246191000247705305836008283598175384062220921563622051165938825274593543555448701831637444730704405048592169855902154175946406997699692840707894961399226665216866614197382431258925830841625661490345266019987413699226379514501452202662722575859831528575517035392907668204958510538400056974714900566676007255313233516236463853865067727626987726586661395569950685340044848545068742578564828776414079082292359456899383676526871937467588064259916371367374118458393661570883062019322162239465719033879555635917064207944146178822817337995697948601610677328529347683665232437653184948767525443269725649728785086500445458554793800107288364307940122511945434286783113623136798975748894577087651839198766057947293401636324023430120279675735465840316503978824936693831583244101235314626923577253442983166307556733014485294487708621678195754042083286264172050105986261373694418752999979419518389630925764557997769975935932805447259288052467858422052138771490489855127395008498154754942056039610562457217484587908805090145651775708777336708181928147149101119026314300960058611877807547423794808523384130228243527724573327504172739659908798568908352163218482857048874960615506754943515193570289455524329137839278164910519286002852787420553840715900892202072056427923753017112689944998865735832101497535886442701366459063591689138899576160395506118593794151952573558581435125586109760687448090295489713022851908159539775647864150507601620436155798350523318320131268063041346184516035599033695699949608683342397469635746872442363272511793663005981406233898832006172748961554349747088443906863926991487380595812810891564892719164332580966952701017840182159529584434884755095854724508472568278242404928246590383669136216929219439088480907524126702366985796069018921933298473433830197469126651928940157071904014421571907346925670003992430156724874786399858242342873398605190862836260093106728929348818383673638432023482260559686439644127907952675497343602547462888354171165127447534027832054822071171994747161740693838076557865004812422029706596734885681553341925815738539168962447826533646395224543977597962734941759282361895569699740846766111473909031712198904445830532912682316661870098817149810946805441461964018481542901086762945084872929873782004742903469480112182891540379840341671366267936275122169786603295866771683190844072277771324510467522772517504355296520538661153878857669389696564543705951171124244542775715658108120267149764640595356787963742892626750333329112692824422756774615904517925049982200304912056785319632614024866053144270053081443808787138212540677214053972889749624399427731111343908741746826145162086991712771970558663257450873525135642581069179328541379359217634467294644530334202533576251607114768949518498253230020067848147697983882885392181602380937874785362046220992856889153920291840026077032930442642516802312913998757393495321018705013435385109039715684832064426776710858048129760007615984078817197770071074271324814332897150654286247878533368117077326135614922147919471346456518552944457166514132788609733100383892469604367800479937595391294199390316082007745066480127299807076707374577443023522107428712462440380025251937714681241989983875006079790821393067658784353038820295549695183170807619329688676782162284543100790015064385820434304595670667615479192501226566817287727228968547541063981373034807924922135329863734896220520499480460427305432637201971895573190362092446428479834998571363014670714960255205183326614399313653194273779754587517253720470127518290954400629697566112345937284711355771324821893653034674249856214104388195315510678557543932976129536518473158856917400423226431737666341138548812751129484626726618283169477532055737540114420080767836759836070780471589196337459683622829333304959386652447414381976959931686051424151849434473576146828869880806837423853465968136530016216547687087371294724381581421597674961971533716143040931047544724143349552318653916652006487787952127100072370984422164609007712825867172842832034089162203058431100494756796268987349944770202471737773531754868139190322788688422626702935224998710209489507943845431462361690991549714308519901567192286116223855779328319093392333097350467207523962900707252635504413301159651105621955927223823444302819242894673051110764268831045535993730801051552504658541686505881957872169534006191687257755709310351914817135301802831348917514168349335807329774888481496986428821330260656371591912103697162953536434163273198818774302292063083988087658376804745489522378732438577934169519588068482697838885845488724120406353765219389114194129855421022989326213042319713934180158688939260286408784817102700278609142439190330714809712280567639932499484990974079428345764532786845382440453506291952498100579913661456978044316904306433995629338439822473942723931705104185937881183757042188758954608123194772423912198615379465840128716648496273109546053560515835431499648384488952818951696079793608000590139429933666769724645226952012181130603161961925146383852098723181114074306726524727491518801041443017595998809786837731086546129561003065996712974041550343053945973724923509435546880316885228108053280695216754333489239557620754058271003672059651744755185188915227183821733894467490561476880271617033420830463416178916121669226704392835498322323131462450817101734294771558137660750624970454955660988601273500574243773053740228770325907224004011767857515239511927878072865949919287116432942139284909600433091863736489615650230695679265276090465560304726839064632583948632896445145564139762637295099190310470170392092131216867344084001768460476228845400599602869399495263557801236506747222180074713133541348174713393753565932055953745213564790291080602980920091235620332224005579242094906481764750856382431042628341411889800939767804628357780444413542641524171527819158727191268335436940486184401805670754213437438358464228799018018824856209785590276506265675973017255186989349688561062734235823141081641733190318300714434485169678118335731548624773048119685809774705418377045557076287473156449196179701560208065627872113801490398542777468431851546322504731875850386708276758860461148673831556845874623461681471484078463879572927354160290823401825242676153377329961352074876577741311019674590836752384022938422246035465323435171309623407458621673991226378509561648517437026186341447611722725164775774834895967879186328990044264183712629944857844504758124901278298494592255283676728950674196165316365062040624112242003799906691049026942337130907500405880616005684928270707400912664200876539405507138408299902091355707611570281044762649226324992473194359610677283476835926593204755102475154393615147022424717593999974659374945421013426998542893273724645508132664625722423310082740201730393672531170995636690984653167323278495354574733595946782193282928872256525370184395913731087550248498660985382522609439226587812432492534486341351280687143177038210422379440035258776614957503433674986849053963964086189943955400169053980348217529504668104731451350181927293927391918702656642294939199417861821207005334167603344886016665539138591884809046257170308456189510068698395184584776791376293970912033330734581002370239348404244067093081091402699162156870112588311210962193426295162187959009529690549801852951575632663852814323163039333499836028524729304105127725563470142725697890850818227747676790371032602907832631872352432163381139471160914052841675609203019631303778622647709816181295949620180831206083494888504104730681630527906000356041523999603903965841374357746644227561955576697851890320004425829967324173130038161109598009643258876570919574839371160766758779736370274261240323212240080241955437507475193091011051926067293920169501456530851773389814381504007986179215827986069759157371036392874305858833716714328279002263959910298721066377854153531118694091124081097403968117875766825576660296596002543624282146271277621453987380875996370270183572229162493643038000648576877744609582355145118025319112143211774491085047049682701253359016384397781083096568577040176656697705961836619525625673918132879319384382129236462942280259966698306284865220418595687171958900267988344089946044808802263975767248743851111002655116138465945611364061039322544389523035041391345734701397044495625970678774898182193623954727147638450754789606466439926168059946295038941043306254748071254482210007849982439431657944809097160851240578362805732100240588092031469360422633631600566278926451693472548980348896243492880540530676007409883653726572619216738458454150217781155687127452532025832642425549149159232971593922121221542759373456408650720281329678545077354757723156715782411424392625426188844276506357166966452751359425323378946614251135883488256568100606438659557105528303803878691410689787729982850151569530317735717688083480028501595943882384291535408357769864400463219176289565312591171308264865203701319762505499258217698135511848180641333886451876386358598986095548402400000331398231680241965915166870849253458025724400993200972181960216908110783249171862325799994890748320595777048813073121921514667410778095372183029736914387148951647787955573605406166974294591422259956923982720066080413789108748390962152500727041934553138693809672911802503021439765006672213772746518102703153242827304339308587087488212914097590196402646120256171527487963457766376817752000046128498140773011760819578241190861245800341209419944394525460268336835387081808269341285232438676613294668083000356088148770232840121284169660910634221825190801076686070921005184278682691339193113812062515864721278182683449707692922919785644469563099714754705324173822551894320351134394285555026678523014455014632439497060459899831844998701680048880404623503956880336729649951938403637914337682641240519113421347003518215496455896089289247655857711982119061333847637395226365004989360018151203774323649491912458679778742979435707262280824944442297766204518249053654044639478557503475933859618428966407725415421346947426027120085442376293292877456889850290809842031658957450042342854303603764463095307675675565861390718929606097900433870680104567334959935943029623146339828757682078846830677250508505679839684215732582714558929448458520942356610008416244593476377606418184241664724853442450633213552318538645344334140327934286966892922502624847139362611167745727844284718638475714212994164872339121917056265738798956658659632631540376700144862346058828622810028628891526246124369333899872756165406924559306295642260028655868589095368401562405325244139231637124853874880271251253298004296876082528300752521793760344552580489609354428452431333551010848984962947424998487178939427893972103607085230761752918810387011255749063170160772122876750703848052726893759324863175780599003644422818818761865606238781589587470991854402605594244717232950966901263972475689193631898519874312609305001480990084695656151015265343724276184564440869111573059625428849943115267688531124670079335576792109734308999656525022322693528272892461026296700195701054079200957197269117338284174739566123633050762787094297129255778065061021134060609298143132204952984410579365155711573532871080298337239070758971839686810013284707912337241833484992494449140975043059830265693584166162858780071372448246186557826211565839480548485124246718203863280245014914864876041994754174402321299984737527542332380733907800980664530620949015793543737097472584960999629985428080189518774245593838294581338643332962371402770605977140533466380426117949041868526083650047290966626190426918071999089622356394667348257504523862183221638659150965816692367003805420891897822606736790889507387220907118836205751583768436094383834553323000318939351147090231267192598913155947634023526567587060120182061243219181303084639868893169755107753474213934733698909658038879382667422225817268349782990719596007428460904828371555101307028604606772167969960727558505292563924159438560708360126822513671723890219688259590649160527188698740949677071708158785469549049054300970878899073845197026109409201557604924683805608202023069134620002378375861617398218368069081890583411450507172701518455547230637063530019637841709034573839284048829513210712546117628998829989432048745408078053724997727028737138480897873856280511012050992091624046089929654141896341804394651769325315227005719042585040323663972041248244997524589699691689289935805330043211497186627176281008693827051739088870196967388065208515647471250796206161785266447117800914226501546079455878371800160727364400692555939473733343102890250507343841549921555549623042812814103422838058558735171412849888506781428947730446986966289038295445686854373249138435113511545625081549246094099693238191310858716409374107959845994782408571454784482611964435195942539461946052901214190261180951207044875001648469885180899264984113555042739308041128676409246518326333182173861958950137648451468367754578300409843498594973531528257332931118202493304735392948469731737468283012737591969595662192009016823057164473744786848200913475341735437823569274840745178705736681370647408692454047581016529460667431565657409437643368671093500791506744437982058309138218675066005473881598332908429309587245264418661021267160839901365707714341944673375910757832556350012875722437904854109658856626334287484237242494872223003625330450762478220903536749991875489824163626358805053898223917909239439833055449562377438575590560996061174323279411933496685365353525861189764634106150677277301525968050638381251902396775043433667163351428957325025670958241533046700762607807081949904697466880413113973737501152573246877875700950096133947113864409063099780775776133060150913124746499794031800866715073359843277034878629131241723870355277744911463970504386182160905779590410966662399288093517891069411002440381321617276202307150186644682751748255057702570638126036951187137386720332537406464375575693626413743284622316836314525734734916709564080537020159503348684139145750276467448530455030120009804992305395715446896489850356365357776726952335538811212669237113528753037572887858422732799516333423686248256594038369519977063639324673672299093174094710923570098952304944699725632412770600526664345164198371077008770426132799781411323059040582284530382712905478063585755451043892873980557215900231120130663363940354832172856120726972528702083402955204236344089919209290097789811575854561140606175109014305646906052980842564563159722460285534365967508932943576017795890051075543721192364243134792682817222886165400725886144478311592762262217241848067351006750074841848423015208517533015637665487766841693477957768141611518409041805234469469525344029457356086402038409745104657047572279705860913332471670509423740408545762746556804292757911509324490064614323654386796118326378121844321863439988984002886495099955100367224095657368392941500440796797910222781387790224128582447893930556657814262085991020458334477768867493331703794268414338490523879983696450043713691853960740947274184530222903755334200848601095849171366181641075727283405306040668266384345503997237234826645278173131929519524753662273265741994315361917162436271565806948991626762092874738082839401316525621793869704490279968418637469995891374914967138353828115771144380827077736107169389198816821557331031183229771291352167907994610730358753049668428919929989487851159418398604273168711643228068377574670297117868578346793634656318691606683271946602251790033737812954308021901046434994349444831918169072915163434911643522951303796774118864592927132840635115055731578644458319292391149937160182619246580385814530362567551454164258322560677746050134881280036481289909209613386667362606179834130234385646349815329226521866946280554707037631722994766794062547545691667662865395277407402038358563570056756228806589613576081946129541907085849850856874845544670204690303042255266955259273557195100548946650999846020336112611612842880453627780003894225841013449335535690412123551423161422329764227557544521060640110173938520900380894844445182109626495961449488175100353099372602000409663441434000925236157394293525603673878562460464002752011625335436170198233355672288399515374805269476704041365604861682191911289266066723579593333831159060726470763530443810182731134662857538169125612330934846406716310257570625325135945664444788865784850038223029541967946926087154593543968169753446826782413032564445443167480737290292560149864482829769842267473622244180521154003874398712591791103842943188500586931689599655872245037736207691235873820002497266357320093000650144474201845625282608096633520441156698915469884438791476378429046476830382185795528343837604709382544650595754325810808267962258909135316363664860884668154330033259029301474870791346437452295730910767170211608909898132833178485686910330539809707396399669271705974451837730157240668511869806472275008768882489114231307851898932029410041341484271837027603161023004908550912852011970318554787451374584979341459318598693733233045911214046371121887513519505806065002826070785999895609051828580867632690930853608177421013383201773515330726799702534079812865654299004309159693434238616893473410412547503402307434959276218207080463898667720180638374617187752233933966525083026682667621673559302618650691192205262032727103017790975280697159745049469887295849131604832200562352102478328139395876802696834881520654335570369672195283362951132612725931226116889988914249136385796796450247817452329985404464693722124199512402130862398037069654150165260428831598077182003095397881393988063366795167424585680376175686560007392969739213748999899249866910288192305293378130510466219708953761126146160622581680538666220647400958626258767282774232266306866517513201547944967922750537457772284380265388021908045594690943710944436464934637913510811273910246148722601750745861672799519893193550777386875563134671538938927071994931525016631557519991377253347452379880993038187152351015198693601353565430730455502082542229501618847931749086681534789744590983137175441679896865749702634070921811009723364484361269680262663839973131724194646684525087698768361854366597199633740503966935055273243552107006942238167843820955417596427305473903249798588589786885480531298456846038042765762720471091130189014592706730232369075233005178195607017420157203468088871335209575023371883998518730420408317832625946350476632815892315939724814834626154075566070721351494729897916353577459641709477210263954619493921832454660879893698792312059899051783519935165787051704183389118133996957290253277241115384103754189779420461899409734952890567639118023538301164572073500916196117021543263856435072687073154237118886548426282175976680836707653413112582218763971243864382040927372540005485956708653127797197248509941228157551810343563396814850707228800273623285519759746393695328760745914354964485139858550425576941693240370347184243310295549231199643295251050495483785792052760682618326544371547781141490686254348541786605034836727956533982542501814197526971441320261546236122766601709720225464943723947361845635004403427811522606499562687017714449570397776603686384490511839922690313267186973459480711466961227115167867444486000936921636287529284581524824318701279278554706491187539549743705877533906566602708586194917151938274779761398146743760536062704257712370227232637813545591812404894064188932850192913342195287808580605849782286616269998777392153217622152628244851314889447348015450899337524082621308294560666227985928597103301320709764083206543141026281336978008705196233607941637001820893559703117267297386379248722092129241102313315624698584105855047180775857129081990890897928516729777311468877429214375956123764723022577566524450475358823626533761255882229636231769848326451786081194176577697342074711848941632621412372943972130865372956933110882184221822338591386028095585036900714006240101925956051468989731986028636915974089673057451922747615593025865025764036734824338359207440141621902412418956356685519376347039944362788959277211715631101410704068622671755262416557194274501246515564679597001483914624672807179429298153804458532896944901524270300296586287346171684845722943100644732368918425898844287769638212823918396263414271426589764377107842928950874901519625183485108642902095442617257029588846509413404934295564463310285605534558231074087908018882541103264476472734591162050421701707431998185354807943310807228485748100096097000919594147198528248118861211426490059093158285007974664349392930114750256132260975465757584001225547012782681419932307802999143838083724596299951860589743390561763238094089555692808041523314788850584173787137191084203788735083799995703070560641280392538701618422675059578032311111948797724584687275607496611633689584155938589260550528494143371118478208854531686675284658302996555690255892677879016830821889604264292806228776614777876775881005644163661732999921387920155107586094449276316075967783011510579973216751094454916780562776612837732409609944075293578811924456983888178072667004443340231147619211373584992183712790357100148748139133421391397226795147676667723968267177835668802091194654900347691099254084187300845720684261630096590930525903402916805998162859264882933463245240471748613806960246127203233957207802305976965704873919524705429700632813790398041505537273220887541879296282163315306281397518248839287338186540845529954854470575039933195262394240436623223756901795915406839301563643533407093802231473849510371006483289618955087365998554679461201257309287824219595371827761464195111101733801537432027229492738031320299098982604949671340346222439792416823875190430784725638875270776029913304911859688029017209670319167880007176234634912830161221850612538238143045546775591270794168182929526216896393787870298754004175141381193133182607556888837917728384224854387929468713171718993532555819263270513778767686496687263813712306544649592624325957921576395237619912150059485567398328335835688473316846674289623119644493832430801522470586870493323042545321649094734872082469433334613568497150196834655181589180342061986330027980827820420007314974124253729831109248398951094643809390216621754743944437796706604716026472643942852930536318968690938957971029350352607328907708449494525959785854547538707116423153091769544195526893541143242128330788223523139359711200985406721513876495660238133196882085099050206337943527866888089346628200209102397083413316251224672626518373192458882761643666175033950368411295696435931984395741097326454548239272207323289885316879201688078764350755846083179055155760366164821360749225977736032558128656560538665141293670225915579015833841898099424070055461802010409009649518677302075169024952556949225721891433083178330172500697958949339462470462741287792994553079159333227525791719292000057781096245262270833863257475637211266902915847963352448148105534648200798731294081577961593795518925031042840472345956759064886566477322278857039308286053444919651516268832050231156731116539522994923118679457604928601841805199270297235218911147550271381070064821480628166242140006534701051660823023090899389698152541548895142986874518339497624160791321294084627822483559653165620145592700860672391012781385629963244634215846104559170955724332923157779601503898593784078785454151263997486988005708181070418512870524848979899829109775055860684632404359218397341260327201837573843810760388243631805421578402419207281241294522196338540585170993105961135950963214822766888255306758012415341572809402050103131296888387770314784514027810301879053166111528613008195905896612983470899164838214901747942199762234487218245668169120836025553082299434056852355162904645716443414391994949480751106596002036769448728388274628934398851803117972656372768593611324374046432830457450764157229608013109340113355765337530119345870930655809220245501568628467863527781057030735546867635857700803924986927558734264499464207558308562281806248391692239883575783744359656959082267662851589571416286979083070094476873991383371167905371256665178070280624985739159286747079631433654072592057452819564392327761255546319933866246887510999114275019174361516085170064951036526326228199352874805093822113375422079435236856572978846312813466071855889087113395652460065597326910514032860635159580948576044279945116908395896226962480672648708108708725438384660022446218694904544819056732921239338044173850793745267785706657318271108862506065014214117084401659060241872672880566343748326000199611751215600245754133268579166850487709547090582460830046063131843540400803798979118688883714575814514102185985914466872683507939003715461256699105128432687472081292018072473909577612945445918852455383829502476717877065790804936474392728692107557254143585720452016728340128791957154578225008337884729131701639775423262853637969474486682216704816219785762423425291476252160266036195049004377150021311248856407259774021983780121569644904619070893051117318373324212645279740911254998183434709869614700116534752702784580754077443437984251287292320836330473787693810312031909522012906333079237696748461908384857421634241538220829101465765847221903794838455123076994159043241096146382015338319085821696488010245463019941890896121946960661721745938899906742616011628849382359368390549547369434939926406190541744236925278033315880614464017364922055585965781642958828395524605759102738772144251596376016017393056394047980561669225952669659219389613565253754378067882857820872879359434020407682121880977367954326691338689867728178993161186068483728860424174420241556862482718779137572806732339701034640543355365993859707563563167662843534707633914077631380019477885084683003755275828565978781587534434448821424226958942837544289252351379822274853037787872923175373996476787447734995742423618700378160097130708389110763728667732366331027546973968237153575955454034912752554600048027824515512392087490939920195849548828064383882471571240935690327940770552849217876377292215675573919108118447195653387428806691319175076327741556137920613438401354290079898236280726357486390360170812328270102559471423397015559303566415600045238612680093539256123759109335318798293671477583420171632607853720672413107031699382471580342403775286446384611725467089463411909357182814958890885322991316387230098829726526681017189026028201553416071784322766201597338043196778867328316251235708980954241056030493842926231164345394891801862607714377111184029808873553753239689203354612499293014960380277299181430201190555532818070444591097726415254526785512381127449941520879003487688436977152643090651678625235343145539396064360927013508731697068642593906610589219432925582972603707514934795744633640136598844066321613060952825129569920482492450299798584026880464539820271941433735673230518667477131611878008678341063874974664774050430024205830878825571133868458469530578005386633026485720831809350237113542042961564578262320036716880373646740489657832866748534358036118519902245402115214155429163960688672263818045693416527169198497012987806893745348803339187942269648324714950748545343486231307691523482789751120556035874042900566871083365973773372114503353145977990679868084012041941868595687339739471768488700595759459969998120081911272310691648631902094007285377660303021955808029206700346684297190335656698359867824605462938890301793324615251470824341953983020723958597250806407727059817059626930467376656335161302104658022263380458260515237001937688790399847527397834680855490404760658943209134190927052498145804254836784329498602638282198030012518676079419204564551493172000599361184828166795751490921743026876986014660228362611803463031187218544410758262217604835384381366149153582447269154747428963804702858330924962621583139345848141931549979510360391750408089222934469821409680956428806219157633803781414834209282661967276476322760348758073689061519741103491408404444437207800115200906590514685011221610186649904336655453683055135876203803411407316997361777470935404629852756192442954905553929147235772572257111786434407979563428080960266697565419536447382524305436069065630536755823261859044858255100651755994204113242131275350033958556599541538837980379460217399376120692499547723882478216719466184860722864624574675213642892486364256031818953196089479196738849220161940224727715852628145273715306183499847454552675234745380543607252795480157120734413085269267861359315578864957377998684646384414053611531432079940285784804994912049307614105818219150691361656250179377262162202119873340541060346019366536609172495710931307524713107403944693663639467122108186378331388309601724638978220271928420565690107294986339881262380006820146654526173481908962912238569013431599372808898278918880637370051714966124479595569866623269206025826319516946937131503002579181619936241131352525817978682627664711964751350602184270202744920276406813196563231843336904082003140652720119028951686330416118921478667485505025176488301888254369654254082614489139168679320066498358973209799546049140917848320344626453586125981669618381033075605505537666371300095629681538707938543823312684914875129771340006145917310779391320705149897738759604663145662754554460080180610920167984801455698796326976495570377000133483488854838971580758927080314121444988213543439001790165254184279644894205226853869014212337016197816540393611020354225292402460767419423690682644332697361490449372719559341689824192036526022511381492526660694338074576550407218969400571444685437174686506986672696495031736334922121002552324022312395590844037243965831241601503070535129655857866376899921637162425641928817133568211321918020648153650699204359672287394656139739254933210999971629483802226357511066823983038154971060401691398166982283556039401248691723534271150215667597670773535416726794166448896794298516975267966251343964441102883365081841664174536862206755012985760622187721432160187315731926109679474150947782777542754879759154877963812782072192509539143744822659802386212305230055977142480965282690423980726851511444718404300289928761278850208226293274671062372135904203328794421795799543725218301404554911845180140605026130198241582172387829011137608310647620671663280079607034088610698528733761801665239450379345053871544206869094915689168250788583612915608744927239565605282312107031374555979572770279858348573657678339422664607687861998969889428755207811263780668175658696243653672296862247787562609474317246138131282551622363588508173009993989103194910037394185925956249007746438482562534718422079304459405677603477614100969568400843206992738556762777018534245041855209774107581293776199192948670481907656592075778271933930608632360313002751243801786019531573012358710201605149249133192835056112736233739137970424013067094616373231118418288705085843349701861082855782170615237301828218297492316077267551955796872891330179101571858420759749811467682661696259632665060707734238738492063104520219776569712744360624463887591196322904147963535147133316293207575898338094236539424065901068991942625193711710242805767780830633524025288759412740050801782551607660329148410304495150853765267062019496286217571247631964729710285462510228901161126833705989186697098365552934179682403257407152679948993680143368967669655320915019813645039194614894127363836760022585232416921433724228918073807239735557961716727159631864427027950700170522013048750312109035056421311275598484380561041140135318925956250428615529461685120063368524207590120844054375612295344770868951117349846108308815794055400492614270566981915837541269743464860473709560613490015884569200381636824661002618539902055286649079825317606657307933617444789434819039885563968759296815990647046496200627506634402700749378092817982801075433623440808005715575976403339623425895534962051658032951782284146563526198680192970302189476551784456712362953514480592655004496108577407460010225580755959686639962857806803704791255526932975403094721199725939691086077967180223220336862391216997220211383094316540137514762892695624354090500708801966180830679066954063877973384800475884495830173959728887961682216314090743943030008589898934998804008298033093136818800618795810308523310855114431075191374980309924141114408675490754102719913889860297704977488451378308075008269906970800007273116836481041411538118036465694544083576403144184437287906796064168556574131262451117421073233655195857838308959828542748518395396486426528532174089036709068653591817170219431386198388464876106196454046412607617894291659924167938544738990425024442303286345936876849551786473641880218015743378415430583577148879614462780329932853884951828126860794042698590400308254099430356680991409439543924009926375182258351893193348084912644108014663770125793309726125956877750059065063370181357458584264217598946926344666026622895533493715809067977533847677297410734396461995273810480034077457284382755072738329391890401580543792197301145539892428897906969506788602076323045471794759061088996787185406605119853816077530959712774854678122594971870350815491191928934114091846739127846526931369538829329377346396583296741717911577416297296827097716814344858824742852614396285547718948184005467383738839199454917121663968438219748648325090139606363086258807626439417131887765808223481281505499239615223643477572051230888262205093285229593553547683164330682563663505884726424195316070906924149538080965121164172331669914631954343456533850882397325639063673981427188972631940573020609192195324600236919935670225686545494579681662434354881422544425130217133028537789393802064990508285248077696767963132233417664852737461923766541064095876839754135914512605835830805387811016818748950064832351635401236666873317614737753883250481480052307176067404168513622998521504325360598297252238969139522836475015682239107367254388400059975034720102567985878121189715216200173939810387606869196828845098680107820237492971326688554367210061087960369546870059379502583655175952503674961169348205376874963686100196532700135053194163955342939355619755287246708309039915654879321075838610762707750909739827939459751931865987403221036215060410592334478407571567039892878175078028214985012410037604855468599487026720582558904607467187578678333332242516445201145347192734299185203900212861869655759191960596131517462664049405200949555416732773492277089824810439805910667571928141757397062715843604332084641273059121884971541410803919579399625328458583210105551504892806880410753325310648887425838870281008580274641706043505050449934922109512498036309467354889883509479493405973207561096494625552786200032584312594314207981462456296394170850319335067520561215173382524579682334951927542950751683001542251756997879439024446851930188888964559674082762139551616422496703917338178272455892379076395542590527464661065328175700154124130444654857884403542938568798763088901226835041736619862475508479771725704403539728225782181813871181751696610080267633881109109049560554618287048163542994927467259345305963404887739331791855174958650887960474725877823481937507385006472179716675437921908263179938409227420542309842730176330628822433903539906787120144777428121317970926892891195047769645298397924216425755018018818933549790965793436388511527635132418668181172473354492076702120479585612443131301718080662947647129239475316522751784037394976307814610262834878756255622158362332872676651519866914843022557190366927354753520812345821876298373459809905008366189526437282064056484804108933873403599905515138373367581326024009666555166029062016559707330565508595556752944578139985961437157352942230257186149992411027103662383729037017728545460225654215867568863753978951081945918615537479102756250589855808583477365636272097249111921329447329188187942552597850851340050143939328966332007543984501778470829554736096229502975718679580423925577966580513338016461153953820585268077371158157265771695781532896299104001241296859203132708944038629127115051304989964550128417909391430794460699847195546182038471086499887578388741894304140272762780481397005727176544647499755797933163092457547198785577336999506500330823119385188382599888517653570581287956520050779616938835305360425104938513351911122144787174325679463274685199259464688513729315015679737398947716839977005012634578718676894269612817874970184605614023008832627195662337085116415825986304970115400339959670781557875475664132718871339695326633450481018631233478588602121936786465312499028260427043197051643968397626944881627135724798487110419601920769021402555763989064599649942168688524450140022626408033146003987507656717350006564570718372096731903646201617738504231292506934064319319499276969588105592363594397592385057141838572208314204919282295850202262607489401632537719511917967084699261565498102368533607108068717109442847260584496112080501725965217658012338027146952007380414229463523079173310872827125265578077292647758271132966330418835786543463154098977673955390381841367512854149417966362760736739187923967879191422510575777663029901972458683165120580125759826161955341094204924736636684908615502350418353453294584019662965022411379439565041749103889015367154656337609038580469612250835986100438824792900923873636988194862403455506693178487606435700001008150064622079116785676666029612142893101091783409004030228686963743815507153035427171914552150946635679937261146870220343440297642916356319778252663580051829573041634058198083272578946241359360986159170184835924864278061115325223466564343894180246735178675918984569455742365099704728414626860376406544921192191204080432334440193207690407788955343121234361718538517944917967706945800472771139149782480720899560715004664270390539131883540064103976905466613981925941400899435944556513351634608292706040487259664994533275212480518232847692965143347517507619563939697579134922354140828930667412757158594388939119301925398626267881229474548574673105675896040330695546978010567314207428024291334130637118256307453704783357367440261716465604478926195119681827199869890755506177152077865774068940255615709496489245343984400344660367397413741242173698079723842488410845455514724555706431146180949404560648187796389877435260090985977650344813873522492554223321462551243028707719332685141699350002594441931816784914605172734732045927984208977117232357599008269665468175382316718763020610400844732867941234554265940463378396846881925599444590775980020253442551295002099007241026611833474535621037387729630163733867593241148430082193081275676582495672700223965060015332991850395369857831102531210586043782438190795247042443014949124779130510958604366428437773118278685273157728271216028433285573128186771548102513014825173563882252904061250013657930560976987632071224227637490942667007738874728918167033870118605652832371196064233142858068041695983939487193451507479950549208052042611545345593273685266164424906610357099835235714146615237210590007143400169133347431752154750681293506738908329397004230603555593479279181683782406274004705358698053185531527775557266724599497705560592363986500115845052272254927556143379439389114313814387183066174106523969811588473303906014137312897250540843471547059282087989959297141794907906809181928501820988959376793824574959494793500893855607543587368769961570267944963981935746627057368179420266001353515171378170979286517581594725623559503006970573828032460921447361017305393886581337590509923201156095550088563618569869652816284811014162459846753643736921601690560983634291859206982226606816757941350256026563520725392997674639946996799308795632461334904050581392749310668219866447090851788755964851396040021668352692926420625156500641764820182248273751181968855001801046179563219165204807641278906463695560353705457150726959820806359781790070888216362756205979210139773112719230477464693766793050746288710319970138932331135053556281962068755272046047018180512050695721336189506128511196043929977121507554224089548178750471956939830648278550510393009157798519543035512853037670323540361098715827116504882765510309685665347675181905546816851789739935688009415069389476139617103171060986177387283066294737315583995839139661419810149586042587048433109631730346270263953092578314322896288789122242138787152313304262991249620884409822967028698522165181040672375140862587128288648263527737606873601858802196363004178906202669927427349730487324349817885309401648475462610035215003648211646917264242664187544854270800509426713751795070891200499940903750296262536126259757067605717900337879865359690789061643651406153892209717699584995857857829790134899700359168101604183015445564938688099650625157665332512316307067701027931218780248152330142105238625898440321152635271104719146582522079527358318088484267964568002665126198314285355001706123600801685828962314759255488342847113020749775049931765252479399982465677296350125293807237498262684239252783741289853787378604120089477044943829977272528367813418253879018176834976845345539370667896067288063535937752877401198744807608932817122905530659275763214833565924500048224706377877200362135442543171668109662438433923335759674750242832915883843143750353714423441104121866614872350441209943277267809992462884101510755691147864394302427153814939105518967264363552119937190157348035283213923575470135678600475161226610199472925855531459050067199774155556204167438453936345382129007458109052188181120642030050500199548411186604724902498697130889179578328736839364497583533513068997955454352686431059705931334613584193851659192272550319829242243882079508553467818976306958560366491467092323481061429921464919329620202023340880483170624682436082496644555174643904929098532456557406602461398534227519935389428645672083413205463124357628146943470364213902909118077152464953929757871861330473642115671529205135061894250432833062092913779883725915220818210046785742859672142308934942372933658957670572306066947902452527993605438880858304988333122019727325931914208526298426234417293402377956467022569379886280423879197570806679900157877600007364387854476984378894295624736912399795537174754044383108537781725415854459593366916399888701356283887823588164848098681148483469616738697674222612635768856612228713412910925866897640535762213418634309454324217939028712576313486037262796470267805359670012275412266391643076577147242325204569187573772601703216729928416620915689535284456764766551365435313527898262965276994615545260190083629046023490914880928909251828718988834086706024212711007519605066047395791865776920638098401784443598344430314406244539387392466952288995613977457394466184143366116126916438548030100753316044686700813750431245463105128973386584917303857784404095132676526142740984832521694452140036433820049518905076323152385096352954374567417344291273842235580021437909089219589276213915932260071083509114270963033162889434363108302798847828532974950263523507922321642409197041516400505894111081953757830757216828084015492095984199874657793174151227337670545456278756332946646613800272991524851995604573329066004326499991278085215804305538136590812619654869232844706938309388021062601675544479319493795578977128982216708260335859263694813901746179884685813803510061571190372754714315234667596897627830284926398997932077552878865434190103802121290958639617538581996529476811645457684923900798012853619944828898700223641775521540151634582575786582921195185731140825836049261696075331351651362809075533124083036164949150343112123811129714040276200567945730596213050879046919162534726155183863430180516527267885851577759390569075788382346142081049888860447094300228221590131347504451393052281127481912154939613838929037764264838657845570933300097385880592336701988410482426446738798683528001515462242143498031690885763022053773293594013478144043308881413297016295351085039682860739359401271145912963341773523623487679055401702632684229471101933041301710671714233321194487433221676604439399197834868833668087592445938569130077917612287301714706922745754651478441930281378503243636856303176233167799928970305906443936845640230829997290882231436132731295771748743055221313402064815164927053444628050226022057866035940492512309359577708239277081468052872492672781629921749032662372776085656067785432681185841995922983614783191262174783701872100093234285766381217234782972224011931879987111237395335549356019837735448071810063785962171967016249793995866112376898159196969697708738221142419906416595222236713615821176059379561141357719630537686729502400595426172696675097261818198965169961229835530290291080288061076794970285454931911381281539832383900081980638063546415387924083804622494883271437616309362300210607113395677186126330275727343910456142737975695102009438681768907065291317554838964548864482308882854189372305305876068518910392223123856812865261103859316741455739630010488021836155658391681317177216568986110652398010647008631359449996825440351157564635058251240485831749699652335435060020486699738254373171645857215404385376538739236171883723572568648788034424009507122399428110115280284726868296314915558675315991455243885378130196248603805937743988335417536062495757223495571752076895268382957320976756149360732338523403006220315067236578223070014150221715011439279348812000866222193220183291283158921480644756396306664697163010985136776358515871565370479455806513670114609435461862536944068276567669123932387055821209233605707434173440809906296608924143738789049633235510989669301176906825739640872609576379133852660843959732064903075075754721433919334312897522372982862382958188105752579083280362613122752268146004333080382554582102938237449372761916013339515092826997496160603250978055483827139833173515122074312252736925317335917550767189864607839052734413871252619880676454784746145731669081568672522429234721245949898013789571750411351614146524347984420983778935393979021355347368664793931477122157237275035763005908903537743512167846590027028502129364047155012129782282807303478793409615096947200497258032980745242468917131497485362386042582048200295537387125516748391705585805379176236077324459879148005249686990127509554877626763504409532646864853193940036170034396676081016809418601006971405998934045508648299142540041143595736491158833849887274340986622301229633303504614223492952332964927309646502980380495003823305954652928628843453322471219794850653596240783946528345635731384234886019058900801360742667418413070334488148913269579951143094865250165173245395395455898344343955832684788740696917504666008039186617320834694260386296537099944983528351433160987448699702548714662072160260186418703572932697438074349140128238641300669669473696711563477346004095984880072736782183338452812259199038539271308667700680365669949003937636959857186263589603782491444393920366338248431934672377184977177421666302386759780373173722183702415704732147769741465453611446109061789176084724384780215667894725955169374924970646695359787645975994044011730992610453006675630312642588545813312413160389708835183042347373369044324059630091994093299503656607286069053726868369382963504273996989004396639025555920665088801222351147353896882526988554132807488694283393147413103200469518815879733816263941767564080136289758091820259189565753652830018236905279894009778449804990754066041748736950340192926354332470473366144193119711805883487135940982390217230223898368584861692958884743933382701658250879530672780214077552167028119383283398627881010841042934630817445832049757991222374064135063831434050987860124479601260809272982673139778580854268551853259298099485900573233054494462277603784852329343414873527008306291818773226284553618778199195571637747628686974033664234007796664119971595493988320644124213233085860941115764147503598904306092959992835701493302486650693375086021142201451787531579595901289966860434695391328108667911665495749013379135271754105240014638288792581583239000743162307540545854581388865637025553755192766525893467549157909285202239512257322856293443274795629510419442174607057058151675960611230334904203569757743623431196095101001678551111774714217573983694119212747644167141540984217824375823181919818905730709402240714742706431876265271692012870267201774852669732621386400796944566815815810274229060151761936402080407501470065653072266852220693954278759343930683528473183700252044940714099382166413549375920644778927680614320364823209683205343160952345366532790631291604325078454415064408971645751244842834455610559431557534477828955027475987313993919044938959661397895407166659074224814771566086943621839572492315191860547856598668361411359598101856446958208170344616723858475052015465960556279889092036023840829516905142130423558866107570779691319161752784990749696778819153806468865694559011903276911384793874485365213049365465474724152876036100893174042542771139241142438551478625750593431973988974439418572682954494696519792759887815789834582922208682458339116476735495999227251791834645633556182764435704378220875912606354744630778198657083361261351899394525083527300755836733909365195816780603073161819232064533925591056650228282345446781323896647524163374703076599765898709313928189451612114374042496036074315591480501069918222833667273437979106315006752191103222556359992516300337488552390535309316790581798790793021680079406342097991568600012537655080143644688606002269207514849972779101192245962957672454118848309310530370627009727182236336705445023261228369624434312459497092589092535360263203693468713255095302047618845309078168256627448520430885203142800323582618552184726475996778333529713757413511875438010670941330898041702658652205379321675830870881890789388308067319843039463802526931829116723485219730689825407235169271762479589407152551840012867454390556885917153020195604031675519953575269642680727027837554664198910375126812150004809167746300837173554329040364309289343091730175551428468143555824657484222746169342531616196521529738292336736235337012447757870344735344438703038848028318917781964581369635015951988944418272526426779017952580571694691655329665520376354016107200606053519168351145591404566469764753411282292446400569070606824821987887842724511037141044178733037341437186517791449027520077506585606240458430890134790167659514024444025004816246574735308896500931685922462548639214810981681754377051004080503481310868470872258216205618876869712430802570700351610437927446305965174369036651614882166710975138579144515652237403702607376649216192492558624848439603362077595993772614342710288694671953444173378646804807179409047896215383308276495688426172434412814977724686499165345645521683176938524055155146103009556689948287027588886969608808057209518796731267706115848806022587283292899224398776458626564308878998261550592663464314308289327535060041428778066071443413372847163626279971897477366208472246000293840781486274972015145187856680785093734147982703488880497953048491634567714099563125092932372093439409257034269949184086043596393153882122135304430792453913914283990709190391990749422290140428772636102915127452850925803538548935479502682797243193013760779289802920404883103591996971417168034810925690757738852035171234683128082733208893475527589537541014712195630014351669105161498561495357340525282762410626962569491864263094193595562816651410207332076535728778781715143334149557910178126776741013560166627930520504118465235082615340772790321856372348839672149448989105362265138799110449779745867548884047465974607833783905039245982291356951735481330020907476875199368802560344632571922875546956854261505873789187989204492376261853550615508002642105781978659746165687877731019441408573702576450587641862151765862824771286291180901517983160818654705151208476996023956694451361168777461183092263879568035014285193717826694040632634515894783726388067387628705632507053047934643373990826460073166425687652289937054631951348218766347964529672644924755879138641931974771465912942021424794136677979441931946374461853055851407082132714278060721208940187812207310076158506975517935776799294599407745443804434547658212671010037681026971557252778584935958712156672045121328910444921746861706819125826235042250093909319968942369848473934858197793275400695991399857993811027191153191731459284653824727929269030045358842953400834412874186256980183752256224333744142375972035544395564975567041746602755166348444901265714458403855269397512846575463307842631583347428968886138082237140993921203060387576786514440255290042845241500761825871998108637109337211809854605518534183128239485351277392518873603146931319900710507232103433271693308807818359553911871101209162486239802656234665112606365701676370800822269243040510947412690500931775297388484965708559286135011638679412976122680315452603579859329281001649769537585698125713791370484130173160426496618017682826770017834074317090705146011024297620246955905910381124827752153660321687914857519707610748286011180839329568335763211372365305674386100360568462893937712989263716579475590484043293334285499366897384162760242686361621429325688229437281474859437627003344330444932233642674377379352734023385871106720145521572620965331315405012491403611849918702223256538703257646817190114676485843942713688695132244030219660565823191896552683710135389790911258139283353439516854157294044240560213830391953583292516624606686672649981534632213595438003487885703951601228149946533595061758999824465478538612484979933597775923888095452893259396937138202366435483469185151252555515239930914824037669379796381733447456940331746624035798193075431740637023183887498171425921819024441401711221229437438257091534720482109329315866288242932771358822529554902015400758758518085982413052750775000001114080007371005212942121207538500910035263889917121366144315016954812052597598904290864912529925748659840466464046748906578483763309677798118877647572048434185828670322402764009610495497761394820058778185897001174864104482938755816217400203817319430809375019884762983751445414380884059067978556883644102277250989332303903047019901601475279607910957493501232445310107849359361364203667527089218077624898458916872916844152804060203350555583558116966435780783259668789408097928530618541061423603913659950580444605735148740979108659020728970967928207981278158185340433344389831076350896790866601712149635133312687237358383955944778965227738991768720473375901857773429375732910442567879119160609735971922416807673523008466060735424716348727638695067678449257051163375068857199572883256285394802634029536655254631818154841532366284532603179348167762707533934802008671382635833836097278302520835535665496720587793904240785409889034715792226178368651639114153184437746334754233674325428237086993996722547074850953711654997094327742013319451442663402559930162795916089901152759443560143934655368297486030413895084338136600371618159341481683392502536422166335042149566347696111189323123929567008779780629952494031481328087289137601296455247877385530908989932442723204761185911194229314622508548032557790854544754248729004329104159755249782569894483219942398812399712260596254287593254536848898596997647007237716043903045990617693847200651930499168900537479296650104350013572304242477233102073655862456306730554467805688803785283451526144496509604024366569837054183698871456107427093444859885678915550304578643237785566441091946678712686080339534393058343473574110127121735892164825927067658383354674746418273321610810631673221000932700987905325590567791624454200535209312917605179423728836593153538918479404571586285003423971612106133099013876373973495615220541085306148770345398257910644450347929872839052647489065071637028072685016532109790995370593744205769736523696600600646854876068534473850742110958852051925821756185039767696467349757139638878776491638424646412007638561291308483594045792319980219792104796827208112373821409142853515968386283464122420885185531724928780512686780315931861415838924381448961089126805996443879734017517359778581747773942271807278252478235677881587797655564395870172679104288226675643714126962084300018635167455484056699236112548723540491027185674564443422339474383687459110169738615008180787448616277310399194615267857311650581363765660057485035264022895161097246170482760501222387775378267560494004895527626315887601424639536191065980818562982211573432132863818173647484496453009233021561761588598694504971539656937056045612104056965066456991376040927238228525554653262956669229090379520891568324714304342067307576426706727065746248366104259597843011004589842036111457916280618424054552044587088765186755540713280048969142120040829001091270593999973972777105621141554459296911116132663188114229581927862962754047232088189253430692174952090757989962508331281520758601878156860054780109673960111209023418061742373411911395709104797855552458477508032008282020047854755736616723592818410772466202835556133651075838422127382533543890318044176000547360783686765724563375277852248761518492036096674501832773715539911362799836237904639441073487903914265871688515037929105784982811880252890754204823153128254188701880332140277214567478999640254342759865119668714421982776487442713648054794841206474285920448365365399915781939325402715984912833654184287687734937597537780895953090099266085264142932488788651930185488117081621435913447812392343410547864477349330722038309287032822809989892955458936627485789770511603535961554956943443233655182251777551326771328709567488208513479918095005730851731927702026410981235003065538579802893383597277091308409932027386946504212352723184905403876424805599297481294407690920522658963674878154714447366413613321037826991592388093376997297077742829798914312798193728236046607993323347571771382946191873401580172078974630826014284847764770433866067626292546393025682824742418591548791899106984340848205974535942222261858758761740456149996696850062593557353711104989749251877434573004044448788573199068080242025230911404807887215694767352201943262679716313784738671094189684280760563809767890426927288063284067453762221956468009745343864911655543915729404285799905779696343011868107896886195778018028599324061010672199426519141626942059584004092638283595593174107274036316660292814866803315054946828631901373113137918102914995646165144799476327252913292222404444193052001238548609776016177094406132344591620652095185964977451048963817977888303436095460507259237296582467575454503437721110754628671250688803278642082214656464490130899980957747605836882135823738101633751813781896036285928103961995538631167104469702724075423612355577049684713993377520821335362519643360164889316733667532790095499870527781226583826695888095853535870552033966986628557450979797241380509666969821067343148605123701717629749037496089974372412923117923681802432109038082957605112660803658234511250477297071034271460063563109963996203331359034372812387144955622099657296809226232753129640183374858904322337661762788080474646161849669850557920686557697331022559274377197145333220468923998050350091092079967092929839358463605543048918234084074824805246999478622018779590565536299298291260514730947271792592614101755037281700059156354425394849586978864920452282661061513090767906732473748253108522176640758001617439741050518224747860391657020031288803674349541241175993190027946620549340216891414526618815341559655699893103370871691568359095728441005954153078074276601981176015810641948006755467765190774372626478784526086663854106733757033765677650125184602452482215739186555315591126220693202073411921209215436418696008647271185725987706846567371192693824245467811352693719369971579969435548232618757203851772542562348776469797586033255864253382408206745398231438034086922151426503836883440468329191820107005074370092575101958830803996083897069586352508765903511613772573061915338565614855998412005179720912713771321104580174570723919660253823849005413941828070454356180399471552677414308798014162497402015652951945309216785889576606538283402030210616564907017785350859087675558323044857811829746976573643046942153421209756971159884587490431183321737031789247275595837672970474260286965630462742619050221212436143650317261593930707795599148857944734845568623479214303487623066323004311610433078484058969903536640767406321826628958429494229696194060004406443083171590821461812200190952897938783752490495700588860942962180807025390745896178851025289162907151900958602558277030428035490393951145718427627874557177078739791622162309265660008742136335066747026269324893745002921745938915244799807344828263098266759170436871382689986309813290383162303565190491772324327262704006993470156273489427119558350242754197904863387160184915350356490715655717350838464148452804740050451198832619941621876205314217112479004936936443964651430630921504853340540917210372094494550993246260923477924629196219755646703526677306766832949659117733265854086319348621610039729715155252926324927352599133936097463101311357363179820895489422760932729355431340830077872650372319941144684909928247745252291012305202724902608243500138210168014164168193268673471689977484227604582188997261501064156533880693253528124331975433444896951373104789372357714789822934174753213464182125490138263392156760497902255938488494970628820985423416057933800643709333849774650804219831850354750497918918634102494599135401992274071289864590937537792484810342417848339753651203790749833506381430844906948503817478626433139392894755032296240970525779713499672161788837240657640503994908760762396695894578636613923180213060689446735631667452846994060758440869198173045524120270460140129998099892887874666832661528976472474743974038013921469830085957191911276577240819756705572284779694726531198032455265663332175262035356429735427822478014737653018984421681040966037724120469720216119905245719509784334824256094612079565586523508989740667902813175060797944397008775737219299226792211460152744402461951810122120417541439957441386246643322513874985232790387795160671454355410062221568961721730377673206329038195240113985570404256260770280091737022810853678186952038836394735761227861534498811053616508450969449560576981716980897703240982173650322167164863351818587367688123408138558395960032460699330378387484215772352862128831930296512171213756365632300712271788180787883052072298796153399172007962333364481402895644789688330865673032689917113775117472014375179639336823136119225521395373385181478798792738092216971433933799691474237381070998676197669606043817008786289206820753983497968360594181072761873242978185546671914909302283780132374370601560383013785336368715575068439713403655171628808647728707973625891338392340152295590563362729314404024856078123037557225176895649862800494057700488671818865317208372470563434178266360074715479537875859651893116111706056612125407556976601855829056854426231300908770872787572752235547948298447293265127751386266186698056575041067232466335450439435999995702953981221774144136768930155196441038946810007701040327808885262933962755477638273741204687021613117521736442812558681651796208986309544521533611664773271309959092370415165098553167275592846375296987698706644860134139726421274477376407281072905303573121275835646129950072305770980621528046555175831124643404526756015120875741431994267935069211694342610687606682523090348008259449912528526665648165182557001567287749938005550536548826959131839932383456548494444627428664848486926008231950239236081006046603478651015942562915221377605089123118977638420721846990776356167464809591388015645457854139068454184794456981659562328426796836258384361199718682779905800634616478175465369583455813732078044374007128543708130948371820136343379456837323595641131427607357121093792167207076114210505678461400847035759065142377239786452674526015133266052513886778371362585596743235639598204234855643299939957106422130519511736636297272254071440410976714149884031686804048000959246060340461893974638503146306474365637202834346761416258158787285083533464329177283113407092279175657709706736935371885985095766531308854937316998772855702564151177497410403421856896483549906604780001363730185722762408282247726975105836426098189258346414476012811850397326741725409630312856469460564270784262126581933674092223118000918519744016403377634721783629637841102756594832035625511864522185972969512305180249126093799525825207881234539343350839204143313811311062657240019822430467659081691001519640183353250701711433096480856432749598378642345249482948172609868667263229981992585319360317122225210632410263994569663213179205235010532047480073694900560076465938327717928092313764645780490636518648121719350517347751507290312551426755765979795682889431680850573021649315507529759220432877771058097545923451886316514653826082670263285746967312846929732673392091268510963571689389017708561447399256772326322543941752652283749743773479052263399021181902483601743904017788761187739760124244924703348581075007855620265904536459038911529120742378691799606343868624951996820433672899072923804072080988821719450488473763788008332732272809647878866112359423756947092817233258599907362723953252587285945469525055962025915916753113586575730447509469696328470485884671028840705046281389457984800533080102482449427047866666609495304925827241649565179218948165501115130971234041653598972421378585281526028656496206740027452669429912679843001303086833640832491705833280009968217730456303525867516505015968108914121201183783617596648290749147551532171295817844203688110607845556864726140438614252751161964858016682233556359056130242922933420314422936380172015118879197899059649362827356312976682651624941442159926497707384974212806731792158173357140110281535869157111950766094609355587875320254639142709187815763890107844364005208033536858947915278834121360749520642230251813216171896894405031516622722913323179445218365256090384975052998948419508837868917285304810144283639050771929692049603102424877738783840866144261393052509476202405758933542923998213449062274977553196868250766905967863215824330651834488013197624620160116884817829398030736909393143758712057753258097331666359904683880166593511718975509960396475979553554083828092167738015396888548287071882800240382525256463418153205687731949556444406187348028007340377192224930297180594166677080231229987789356995787982194424071764481402510612302294177924567775794748617121017797873446463098794870881341769472677859813372695081470063969637973117984806090480123317487180022520170346813648094577270456143693748174829225048282903924456752938154654286459195158618976611849653670078910006162755728760112607139986593676244999997539027226532264309200044325575702662839193216075837072447396736976876581461381582296624174750983320373227934710423749042836339426833678127573152122546574101323172302787500503131079960271438678000945822508611286307809135629516371196761540975440394631095095663014745378634550453444473087404940565507189908197856516601544206652341164444310191294470861655192196689239061846692829402969094296835896434439259613153714778518554664441391816829334205948049674950638471247785529883382901147479264217603179484643519575812221279776424479282044153233394104453759196204423061877401479095790341098154714740664084939468181956141199960887995366290477591362908801985393354835862297612162668724758941552121001757640200708042935955350599451604250287967677809004296906131161628990478989158201231063626359968187394416687004382804229648994821155765689441582499027011895269768684616218240939708147309038015141554519600888652280034917807342252294289099796168335480698650798762283310198701542110882827511209664654450983695816274291070482974233207771412973603098761155952571174255730643910996220275251879461151721638735658962163697706410628999130768095531340090396904072002360025393207591558226258918146165293988159677871879113733725790316175126402745017898535070706323408156400695574259715262800656456873608745861242216264625963986538580985433863550698639076504371018354708886406251798931326043432961519760655665834786632090683637877607582903855925472459533598503191262759380325319934032661756933896596820394943910059627348650337401587178762038656959559971732708623210393937073016453328154460987545259550792801028061991245123397947197409312800412799877626079439073357284825627176295864805799618116744035721330341463776784150045214009112771276320930165563106303108037905639430304731544536675662384937021164596992237064333062187641672912391686892129231641560380247459701002684850731139220021167052923485457801024440839984402851291768020422015309115712355660628844751566913717595793478192641571262847731831527321910942717514089437922414576566062359837673166488661710386304217085067711520559302135527305798269778961949792374791028243757334453942577930348522393050444108839166618343574011826141042841338720304669628352527645628659191513308456985386109914544856672664238331445422739476030050784770201283567320434674148350516045935834482474035731323829794439564064703734493021551376068302448174208445177882716930589846584089025165917443455358555433690169050939505529104357641829155901723479330325245732264440690949973016588469122300043768995354736380311800595027470500505077104569261297664759235248512898597475056690417484063221397173998887789525139792509975330161883372998134194841408120031835912874481821280570082883788844831321740361415815698400513011796856062399155051352576173185438386339865736579805459523944157166342242478265919343105945395408609917902483548209734430833619671623463596360234915169046785075002387515829340267959675359150216257783818666810417154280703065178127734086500126552363829699338212875509267154768271224810958662911001163351177865073401544042027485563377111700253281904178726210951186509792326492027822211062134409706420086158071599625173960476703637170049579688977261852493982049554683608343669283318093427162125053554570339981021538527250261710712032398745115503590547759014288225637559411870441307415290555847076944082924437463123903548513974646340885915078079707008085892187682792310389977898932457335712970960834425887790738780086830708470859712756881000645078050731447040424994619130139650208048915637760738595721608189183151841708968958344166487102033509787706733088150079196622330987073682647734045470360707648791241165945208164076563580712597345768172597542494086539080832604687005565834130569402394057342450024612802815916618704611093273120559936020822488988103728952885709003011603599159828379956613863847459522741108169788181288837277531876441115343624748827899928745708735285000735446929030266468392819994995904737749208724893848251941956448140578072863747171914979718168625305522745146513731814954661504928769455978968243226674330601767481755473562743936962237215365408482337878393259593188597710062936009401801532269499859563657499806862798011774745459854211301981894410061479953765504959689355555855466461548169127285412051328002513445981920964098877645499608247071767422984338323443980085694166662039772715141908520923844042807613301423039950875560774105917181955140926600831204520863285977139722211968010665293674130370974316496403790505011520457909393915550873998570305424783794066224627557267868899734013123301155709749704384615368214670369979854110098811902653194001670299344659319045978890437072706183670823667394320617253448332215585976478872918423183558127567031959614650994292148630806691192822822125045688782475162770597948463938738151226381812138996158867450617984094428581619072541678041014119783227416054908174095774285575735885420567389883145368806504876078682181792739351516338638040388100456130636784221924442257375760855581250894231607893023479917997865210685022113751126504183769453910075604338974085854908908932295657442656222301502063893043838332696755799162101259148502456872986715584058102036962552877090614185272154871661173788843048635907725323878541062741627727555752507167081430195922679052788523186311258003550695438237544003662733212001172017878862641086384296747583654761777780933261748850525322015213441558111806478939572196311893451071654489202759260349846796978223271614222637263028382678277878974275915642727540826614078260964879734654447778308576147071866416918714448385597447135380880238392211043109800826654476806816782535629456541159574157510656755192890546248865250755522195452996113802708170518275817057305290085864855641366403532321737637258095394566750659125130826460371349197345488452554472977372282992222386529562878153993122195077927530865137607262544347080121282628762615838501050594427578622074208956752045938617294934748757439847695015637096382947333621193940952801450457678998944647949410215663832295746680637625849439168501657355564011552083861514879056311422498815569642628140270711087861420798810671905701226901335637556325032068384135659237406282627601090528801364241761129355248630122963209043223390166655471124895952595944639636443788604406705187374558815422990263076675862523001078340862094421481725724197386016900067630335891609718218629240048988674319462541013478605107785983602645052833452039120294949203353388492099790862389294626170215465112880946567286735144702336870467715337821463095498184964100345658795102343223330898784821648395641774848710374884805403831316959412139699799816230137536437831997681217113372042713552336204440862700070461191676996366147117329666362881465352782458115401879111731732167254775529245451363843065058322497614823158858810232057929429349340152257983087995344878009368564149958656795179339320127726433808412088813262792694151190975150235485768628408300102722329319934300012757336735582924277715175083403750450334639752062791150221004994997390965635771215317592073735592016010934590007047871728890138648356468733251171499601442210111875646398303248408908938212706047514598369722471263514610243640980838854871714285527139893126112493161306869065718892739558010598527822651908538618190096585306772056670613299485151301841942789003711324549250606081096169133257472944132353465339410620735938072882050320015517004818500214981691705669511798432733951890148352322103568693341662163822071091163041088504047837346674306653233676817075146235730040886114340593183193004869732510314899065964850336664593427348615666119908062646903321134915539984818800979527468299709645373482810643712649687974628123862824733663971990101139243706586783029348738865254132262640136190607594405244052234465307059410968630615028143204105959710454427186471342276206003796793862003890143988533049144006517216227033882892918859742988554823649429780348406519885791565158684046987108068172432058407631958202004155224862818323672588366186430616493137376139862759894852757295964937816332989312153609701360503280681993094883535528672943706981666902904199031104697250522107747331119284946564434517802656187198345148326585919206196173995572209309698698446205862278337816822459918205355663256944510357893313304844054901102283018540766575973144952384803589963102773032224781578784825505297576142705151088764707851792609789055521051384348744565007497871709201621586720401810978968801154913866203943547213312976086576285243173775087827545708804318636134733870861103140869923656046274964552014024778616763272589947295558651801358111998316946728884841158146447534423421119370086308047681231010384534855575619716561687083071897494422627903135326377874215528353678023711598633477251273940017983503438610034853766926147020244117796372580614208012060951867996062806767683086370282020895140661683810599957159890089776235221788272844366406623444247149720669937022131723484951495927375130022137634129165854956974468800501516610200785225079167034570699994988809397856917936774542328837936677829204220774440544797303180902128379573002164333300501442964777993218476479278976806677122558003854904606972979098120132646551380911093585249448109653113332037970933390453709497482863088206392843672736173990648052113542963106624447963212401181714511057740417860401457347570598714962444511246172669057997367573736096360993533908909766565473189555720322539514974825659120834593086628239789125296400095490850134496936947964812185818029677208509573875696808925379488654660454002806855671238408810549122707761264865505758743468842033842086526236172899721608736491232716013734381576235085549473013457750783193457832682597597522929152088523039713195224769537216382571187127349933373980037382497384542727693609219329772808910703701289752621415219192454641863235427927630494785631609610650372206862266377536323759913704639974414335015754472703459255903413250500291457025034255034307671721123227981147868254553537819049431844536870617877031593555904368374938071132691979824443236184573840865517684231477129634881227324401801370169156996611522601569441747146301370996653948418128765074761363065969217579767927179685749083859327270862766256854679222583682241358855566015140202766803003747064039278178318896556638347367110052838173952735777167360102056593150851372090922093099689526362723228404875948081915234805143936722363248846292627719680245307245110564856850896293033913429597545937550712888796589557094113894772301534076126953531596110624052457580857078744136080771050111300498659346093732564592829617264153858977980663647234194392378748237686827662389345016011908258762993459279853281572791864889761246723751526008962833713032754035651538231028642894751449292793507099846996463208991667529841798589770593579554480473998672640183231279537499699076434169339478162814525502325417499787067719231890285256903349890980122133978951778397789545504767055439319303859926227930955464896577455392097936676559323258892926941334024705018358165773447203728918436739512290067124566617690026924435711861647818472754336938838210251500327656728772746669399253590078146374922828069789800596117146699416024722381380975154936571060759446409964891545093423313389154760898036735265008525921583212079527242164974768506479174958062921004253559585387022057927913801968861055913715265663877366866328349565555558696486394333579696122602749216720832598839563763932856570353689199119540224680099948576788108970579106577503831618253555983247923589545069539721603966214777876166374721246074020338626153811169359953354064790916518058013852820807019908261390700031252189414574702651693581505624406969599669644109221396154732771519564970521916101676181135626283474169721907666110991711855642998415150790215763108334993352043434168437560204307249499033355704868452609486531516459923227527767058726544122203455913140449552849595376976123849736200834577310295351267179629927236441924714615490632009334075982060493347102598616331583647661433531644058167726513090460876336719285833777869114816503551939410049210733391898479910136501517525499127250804477604158476119897006723076720839988755237321067846217720666404428364845635613662979390568491437915905585800972962957892874440101467043941976332512047725641812887785540699624574876750210865355878442089872639892175181026460806521445799781718013797005126548772183503184804724474496654590993944792386915668694589405871899123713911099480046336780569508227804506332023372232230140864064956864397435360292741946979853484074742099864829239966589622794512768019636247644632826951832835124492789994322707273780687123660473862176138302921540645855240585861180787840589002100442868816930727214026721251792965755732568096482723483578224635734919112933986766763510967728031420513638868159061735211233250175221812402386606587987634783729450857763174559712888850765657391732175896794881879349554112910707866978256059786454848548290749834774412114979149828747545445805304814951497960708208588378072912291619772720715109760800162992560825664071772505729961108069893000734707096113067531375570009595148797961579700674047560913626513038199765867688539869757974483837505725676132927207116308508187482059151114232551211879837617217828815484385139735560415476652869659242356785520547094587263318462410262755393996359144068081991653184720343001817570168903041214515456976108039165912102200432975155025508422400780889996763244895277798817763051582778575140803260710363924249393835101788752967303147697065999540336566593905607124334482292859828507660949608387163744807589410434307569490074099601750762716671501099972928477333178381412301831627612144773866488147922542856346201722640853358041190954032414258627284395971627466245959092853306689261331358608908926944020039254429406035250986830757882748916251606871011780106885436771988039507246167160822452943483480125119827149432397251139594963836976019728648381862700133120982760067395023107474321526252030886056465639936194148359795378516514167950684487301436909503872865766805668491185105085285843867114408025082036058004235405771316404165359401982264911598578930364161165702728017325458356798896899758698343891795216839936805949308318777214187939014356152329615396143777718611446199086163159143724288623874758559564552592652669951318502762576244763566986059605565754575232778629561895473571758614065433974664216743697734419821736686996997282388642107297726406553596509879132919444312099523179174639802854250761184138996169436371056049537761508247081648183916825464729167102195940553567700536458479210447497375691548418838317101236152999172342152161709433110813167656661000712007639082570021420312074974129673726855020107206864713765254320190305298745994112954277615307454190688937792393824444727385969800877331216885012986528565762985394196394718376098457919309092631423103772538824748808279913261547135509984253496073665868124965884983950815903992194131887425861969744397666285299014519463603540294285751037903209605131871252462930995936182909157408100501164331848898870614757714998481351381879905566106760688897989009178838376575081786830408583679482012618478518163262543783596312360609968196094932930342326859921424858879402200844833385312565569685765631628798736439941536890888406801851366551501946731421910373100036824625129125769891730651880537545215409958196777284618642984965202409882993816946156441379844627127287156795255324834324797124989872641666129324500178702992121135230315843808097828764889370325743100850527234837218926075677857141829218330144167895357657822277188518656426521228802496987199328029065300882012881012549631947972889525880966926120479204816745476535772283926144507722448510778059990011711437791591730580478309987685106356579148085055346546549990549434740595185165965436439209230556956879403554484537693547351943089640500041849792267417477280458519951814163696512301505842893201859396359394464087593130449346696052011831140791266336970930074661225319373300019885423914638098723153869254838916336568190089869011180640106982865454900811689347898974512175561141715754892666439214060107953629351715274235649672187320636888859324141425170241802973036506549879137411086510261981564463893642619022769257420451819354888691363613440952450861761329154433219665094028420309843238516158709371781740104413623651530939117130011413971022468089692976324596164221198788310617615529954130223842003403553050090924160510576179416029023992256533107269095979818971618786551790571722814794252313214883561624597270421533752096482513188036258682914277499123190229262803156290327036265726541447052291032751908201721345692787777840782617523746001195180732681822081769892241879371497719978224380375619477160871186994494607167914136437804516262341010390544135363229920386151585086641938742029134358983348978599235847167398401076657013327047666898510423155346061973193416453599379558854131958555367427718419063513849456387666081649307920957981532298845961449135713364402790838120231918271110387781130219981154944913195675249486128047634930304719769013336171654672932908346438630230452421117873483417310170141353416176154096313067675521014979064711424438011715290862989711513303121464390162593668472642982802186169283760957269609957293901191034750060254850904556786814957299791048316611261694594565994524133606242476575637517611342379296183161970907576863222353026677330969302523815214963356554420705070933366316825903054252858046660693572449176834718360275158624406236924976110892094502616376110143676872816099288815865578619639461050124231919453959067304268386728065393333797751752785154738312756785108255251778103764670872238016118438208420319747261224234496005734803865823089823638098477850999698067978346995507964789737772253081234972965365847040160380452999756552544069164425859647737378193299937125088231372361946690267101306156939748907295636118827037879602183026906677654406305913850569410994529860706127542896592839811006676697748422736016830059179501061172128376847246227649369291201329474851011816208194277582307389365977039033317647751897954100079098379505232280401045480078035911788558175072039728959299523996408740818725329646917256258303133749474663499064656714632564577396508917419284629866816136708847135585432220706125222350395814710255749745017499875401096031346627350677266240765980595575592029964447085719258725623500982194034986147497513994079279048005130160207837909142291093407899447042593650014414859647740210028965920034334077525440473242498744857469457182191369375495783463623286707921896109691888196802157009282607498771739012266362357029345553551467473944080477538389555497409437565150429955491867493595090088226467136039148191787148330030959017783432826944175729885631376262198287689727588916189957758283049821103406848410994477503222579317226589872604058950984363450413305382879698988099403252234850111710648598773449090091292505485359937727359728897991227806246636762070560859808686369027249903206534826078762961675172553752295364411966626176955012116401725085676786360024851662381935003217615994162558538595403374751054143421695659955808547977493148730814907517144592353476785846564846400744959460852659877096109822798944439829888572429711294189027625621836554787345597847408892219246202606015622655729400874534603914869634674995738483352549653787221850519087892113517357926550454762111022417841519777409866917392400189071874480560722099089876060811010686261209536571600756089444545822718202067919378503257972059639135128239242835087387881027997875336213233427179279434079843071273875705976184211740381677060222341689384246951762854285745871660826862085494207920016258273766883178854135344141748085529099233645065558495832743131462914119305614901363316722122731411020567372040302639453060662554979201494249795552623604651725001146688358005496476079172548776890650480413602995672882688111552311532819237192789482072376659900684154182395250319029993917949230760773402094392873159056232331375190914253138211891967460041131564743037678849347971038604647046319839152553431413695718517360203651286589581415720055961895338867977316659181675677860026015115781810011153663053570190538535980877191351860319563048569775102547688746372186176509942473224860062765613155177159937590721535958666906518803123540364989496797103744538114187151719368298427330600090945169607289168568423443586220055027910051455765509789947587282785181221574035761407023947891829823737531670672287879382563572893932206317838814735269034142767011964598555279860317984139210183148168183013004372119074656415516832014064517156077974863272245849423263490926281632725093786252188517067881326190083410348304494261393514899029383893033212282720067930356306156606188574889082992166781877085183452820524489599043112490665638114577892758666550651477454019472379612401790980658584513420665790531584063451691617136573999744828588210663891922233678368587058087391377126920767527738767212344657577742617150948954820748223894186360927515680838791967603711520606963521515483711263296717270183651490634922520343553333413623689928428552226745593078421636350372456804189863541869042531201238782404695348435021938605640839190453114583196596516057406184484154708043264755715429174617370327710184162024749682677800082101557757918950935865236790466642441171953236608465281691919134916060662490555236345108172161590875303472515232437719863126559386741657963478001515850572248221543916576283242712538767098380570378772772604688442093384177360411453112597890386105696689124005057120276893902389423909384379874618013935005589610328053525098173249397811305961162477926203721529261584417317678438919068432498455094502948411101364917852050848743568552560252073910479321017769654702893399937904396031204255781800877880868896048753716206597334074137886758446685317908873302749934751792658013300609075994137159883573490468252680794466417027527552611391254995499849802861195193593240005387634709453008996018161074641541567351417758421767230088895891008941574447757127197005990120971085796738587018179867365083686281652991402832757169808856695740547315533968134428385720049608033348699632102898162438965583443540115290986925206933301489609545640319720554912700160197948558564610536805754449371791060395734585993183476557811077382080063427882401453603902185290101680467648257551855837218960617285625147462188673549163569536877503767556651437367425954723312686197917621822437712241811392730950587898614731028473542655658124537083692065900033898351000320447243212930890979736805295308935838341896992913842661548233244311769020965034963446310828125018115882189937134020726451297415895076842592935464298171453677454529408003467183565660147718935655111856821767204575855903738007751735751936922455400147323790514649600385984752938785536659637320346036076743609892238725489792902111595096436436086313608035899754070163921357682030776844341407578163999126957384424350405892552378773862460370043395782196348817029817177422557675589778573262895772731432245998449112082667031640990804408210424613994451619849423283170954802387821304425985817928930059671588183061156034013107352348663492275333059701934901913638032971428766841272040219455904091228148042792059266833847022799473767399703310902977998926225611614997770330971397384685386899524631553395531683621079206958295640940243519753028167999348332739610155275423732188775590857142264080856718940272831181621801000707633106705247731281422100027313574137147544511323020412951089173287756761451708496723039508564239903681710979463908897825830195099878727424639267546392869671093854282137923834024407723756216865717857371000139774404736779247801580012826795327536224577567245282469166336955228203740925701604990382237699029740377087334140795105917953859128536738069998398060905998771650063367227315761138910333968327053028083098688889977506130585272300841481633051352567997769834517719579335442508212432276486392721268523073568642503617237568733715138729026648343878608386543328615652240799075874503300064866877252560192570959848682452220894980383407535333884775665652451857433561970647861979886783240859265369783725425503642823049566988288684794737371010549627307340471281798728015952209229334866014629161684176086685557153532564509173438447434848388783964289517171199536958782566502609649659703661775662745905058382455736570888479612477876541413488090526389584378000847948101402198213423539408039042392719463134627731666879328038714177862217878638641147122629361255164113886449198596116132480166431587122386466774696680680080717293530279290333735115412903339425014453310460523566222958329381326999965163621670976251945229745023740917389248379340786642348466728692645944715334559352697920030445967035760168737367791000729445089584048765464145775241924761228210463886827488472839490807619829298734397361319433335343931988025517408317354802978043691095167507199763083390520189066550572793892405832513682250770559356443314469620244257907258291669757904572004195347104343448207807207463979029576153243490284289431946327519891925800535004922520584199677378871433139060524828765229930023410906045270711842256596202066264710388393372680099094900080159094944723611260699522535160990457477844033788451120999322728310083400444872529289889726612815211553648653252105140164514558552352582677363765552829091267753508621662559844356006336010661703423039242970107077879850747417869174033027719073339630509913087494177698523940033470465696196121587105365237207353718597854482098309958344741307425874416743448013029059495197209223069008654477753632357542412078220527460426766716031297492504494663657052698929089220236700506777880790839514504448946245419809413154163677298884798113557893672345305672266481181298329947613369315562565109877547854231619798869423410687136217953370980598624486322876614518518182664048456185380045024561624174523584128264337184951156057545532703388573423353857164283596843562120602934233783914266030445274531869297022506675586289862988312414686052477842188322600763479667653064495321499416471799697420801638251902674537724151943726375829467637573822676726235447678349974747265717951721433595665983523450207368089171873865715018982228983699525120735777137781199816681375873490460789852985614518199859740164160514335061922303433744455447420654466588531818940459068009673711365273976414275581455574388845690255133379783309441263643540807913475820140349758474437943961545506416681621608729375294505072781702076694200653706318678239386822396902460651865498841156197065835040252275027254841076657446034104371705767010189605477653554200557689903567848796264543869998911665999784591402586162078664918468018835392964248668013334376835004167418618427624281034133258257449770543793351937730719018623230554353005994632563076974754361743879826634104553484889779349660751105557826576542735470140609517055245681657744241780898601178643738635250006861427483376064971119313485689200351988624394870699434896230888591461809172184095084483924175586890043211966958197187190349174395911232210788077974779145386122632890397417530893226857806601399568827931976947823090556546531515257242657922888222111738348029911809661153541975870563856181567466590847716477007088224439558023657928348837626574019937909136323313817308580997934820598365901368427176743960003443605601644533678416086020569626836476092124517875696986030024275777221004433286830769873861176798191694939245990855371571024253581692956568045274013998021913551975735922422352791090013985455250426197085680499287870262118105919823513678471858628744303669944749814922709903530355695386577160515287902505617402064277417363790145262773392688389032964915226189711019152512695393959751111392608672294039469147765655673887442171588842949402802424126011574887425762028998448248042010668269862009370799907524086404649280525205276225312554034533019013726202073022933648715552313503630759887847603736528806644691989569549280548735324715626256138874509498488360852816932532363339755549046674584622927068502463892003032700268395712152835394953090666118903342930430894533043778785273841346580962080886429601158319247079169542061244676982127131685264889551351516386702789209992917092567470464352065676822496783774292278790507342789375656365492430617694383239876810526121488001353234343939257464582835147715469551379433240943001263767565718449948617589143952670944126382080753498369891240669457077807166859034948216761243340473307576912044254009996486661910836916223166996389346515832525014140436380239948657528745248783986457878588180724829209619206232245347712808195008566741862978456443667182938561835549195750323794711404368985898870814677541333276849997719094502015050812365716103663014773476174114550018007349175758113728181027199640529979590498179426336242281389365313863713740411738383819376039387865831506759764072745085050098896518597841905802771621594715214055492705855663986073270179444671971616342759866740592425964476723328896773929947938339567882375363805595246900519665372582399529935997451911050310372792197069255323567855802512485132056165992106320867671247637068848699155656751616040267786958584028608648318915835608626929349897880389448496283602577318653494947633177485035460327324350740235156359413524414747799567533859227899604412357044165435249583780077642122489189284709148236615263066565560539933305760731289352834378299097093173023745047198551500561380522285053702080749806293848112332239718781389964284991973774067681009576884976939616963640022379065626888083402318846983536567479578134567854018081657618787034192292573780660344016489206027865693320247792348510982883340904895908763495723083317784912501118141675990931757738315141607589029850828609307933662048898266181029250700430598437453928194764138709206979689384472326889183884686384160450165759006923248151909266736215848917791126641657453766063821285985712351772509510404922016798952642601306919193974983262681173736373898097687971141120307432644705973244528558337261109812452654633966210882201299667671886455730579433349895206099633545196119410833633245501654853362644076540226272359431869101489248419724062930476942505111723708214397881551681951909072685054561730252769985751738416724930954976622479144777007011535163155707393719278376662243102402178570836238682636376172918514721225782561625396513001615969497687815745391773385720514489355437072078855482353657807795212915084072734296966182480597502588369445775982542067450737608959438150734955493762732457785331953565577764897978880040434182905617464365488677923735497529442819084669587743445863226377035720637412401426859460017063950397581294605323565014533814102437938397751258486479144629704532129185740764774888544420241702785463679895413880149916956121784893955096098405013855102857103273619117289417877185442990473998057623327233188226417878656961736637169523394794349933174185328281030934072193338281479454592662143047249306317100717286714159903493272520809244196520373816868235973167143342392880499543727214124535555906478217901723728457911463880689575063490668794781999176315040823537517284592167163441863034951177822579899520842583823793705467179141033978722273900581671221452511427530206787874973166009643677943029193878837080615886042105656637860671316523539718711154651739006751112656236398473242600818717577342169287385972525952037442613092160684592812895823493456845784364595407442397052487318200413477329455846977837285107860185892072983183777966320407060592460836702143052168682496697102665833480911502988764650752333427723903187341975650283798838000329893935638291202950291114930647380875044376357203497085739803041148932315278559640207408551613612442029307912744550814949601790929865205686826791787132900993294153884506516873668343197488448552165968459192349572319814741748599445121243206083643995615401546406453102093382088437610925683685921073286350050096213705617765107369061322689655405175795410111946787610537324771788161152485918026205449200806771297994971311972102925029106266892704707534590288993826521280794613043699836998574407611782475421083852412560795144666992108332544784582998256872678922073605428219392386914508339151317822357994168259536352894446393748514900148950141172936709091673260206158335729756152259867384334921459158216557576555463783297911173469347379552755471961644094205683025771885532393962052504337157359640034279270202630626494751507839898969544937554617383202456103897138715288938338052081668081281611791010536026761251055143783799617458351399133777085799064974348591511916153563483576706585829439695967884759528355343277474577231673087897480968154322376315190008731399034015238275690489289203556953747368358298890199138499489677628985586147415190256044920280910085792739194293130132183915573286420248065389304790201281102511671472494630161057733799139532446731170796019008052927751413684459187793451916067992773543334747185655179416088332162692665633305216984088880675725331709417327474785839734582918669913785213368328431205936150627234337163274752524871256993142380577146626472159789310820153589106269086719095067364706787451377231235286009874279596852942916924580405702133261682041311863662112267346187738628787286606046559082703502039840546469090383491448601344784501101912154040324756637011827845176880770305676207948415471838205753238673598054043876008595457972326504229787294229732296622997340544024288810924053812327307871629085522571475066828576873043278960446230555220447704783053674582465293198611631165898994190722516107447114736909044334881596231062897617871485463175943839827849382511941816756557845035270981192335616750788198217453327798204647720213827282758236827728684508748539518880469526124553635008727415132331787535285379527226341106057128129360340378787107638692241619165038298876398566068704695954070278031714044687316752338900189651709378417728783624137901327647627951324629264286618423062381066211821294686699154504805909475770415326197481118786042156882572604314538458836672402514801621822760226549963713826129902534491461433513444533279171834625980106371163923402139193770495995200376806687216266375195261669993271323062060553414331011086430568531893473471264002422610039115296711696324328199906691137763604418303627964854591236277710089106668632344577689795235866927841723906451430463420100906133968468885215038382498154579378899055752127375035164684866034544951674255936090412478961466349432514180458332184510102394525488048921411665179104526251785957165922580011629862609426460583031827585674357378759337788407511166492592100609940773121676796248614122785268193616129050599475168290209987073543379280867154626716734764584187270833984274254116178915911268653796643450663476332081038719836411636199611620438789268704386084890834701192771459856049270576147358844241036879105705399608614192991479410936657787900876679573723600587266964302465740572544747879496478970107226901706431375376217750686390699541214899768732792642771272820007146059959707549970779141409005654497578964544406955535284956403843702803607868146791525429632992504823810783868933355840475567653622321721839246899472476435679482964512989304753311735854609018283230496398850853277657417913560489661167156524147969003609561154583337322382117423358403701553565991832173885178642974577229766981783511892533191992204177729643774196764997244465411396487439410114498681658551413745545280263025809327350732735235386858630765822048389066088751745594265511938779390615120967144641129947776638283401901907799962149070081536694250360991551592854945005428393472116062048650162500468215536596768050129871795092056290889159145089565083161722539127537978482558887973067949083718513056683020295213395859943274156016515936322346994432968453371603742120098413168920018627739739966317410005359120199717404360052601500121013114343952202462515190821357697577711016789193151641898320128343219195510646515630734263159236945730899899535222418771907133122691644606605841914167933173840404836857536280860389682524441944074435086805093813226018311077967854434717789831565426415545182765239915912328258063435152935887651387200317873506506318310098528358975097517485276550906268326150553449954529694528980594248065725384652505093679266798634697200531833043274268495776426163200599046111181868655775647576607013590197506262156425412830140775236286273566258531592844264499026378820909148632134349035274850913696901688404849491137325507634025251024908331608013609846267567600832464997573528829594756079058779868752776246454749201484654728153321551335934044159212279152572990021968317343188144100732232242920063710661926763815155954903337996119901087941275686421425274878716201654732163506037938126947222492007548204610834285119908363701914134998525815431826566710763502157242499664863523981741827803254572408609034788218756044180842895717345291792745730482151299662996114327999507477436877229847496368376140011956215018785899247243278380738001887105745417241064917179264806441095979169708974342593010109254344153341712840541821637135724624388065286224342270314008267294602775747819020997308931025069072685476748705854123853196544758780354683674320948356497933835735260849302519615748554023153097388535144185673211588669817047326340327125264250324289134287675487224170867314455875302744059220450782136136042281876290000529848406102799837943395009510353624136316381282184292182999989128294719849781138059529814385524957696118140802548025014007055419516966954968348362063440945763293868858699966803855322073055787956321126049911204254181076335814544623173547540254731615923158345890894904872236112841832423149600991681883868600503919162884073953194908064886727303152776929749347152011745912278298716261947355225322837916761725854763495395857807507106358596557268290207991855821578917540412124004492381241594637992855388611551155448495995700508483899425961141712631966405524958576194884632099854400194684336106536969572643345995311822013990785316122929071006725264999928151852397935494035181222875989690221111287011415503302123611206953940917184327709313252028009966349188462134846351078278720581299763396986909991822737844513045349012599987423163588226762871034648671676330793882456277013284456785506938553794785563965915872898017259819919407400040769468488845202236050736521862412644390175306909957950017715556966182525575770220058606586855944550123728999738527189907711233842007462245770698777917810505383967598881529600805625971603049715407614290762801172321824817050462106066169612478745306871880809039751563149257749949714156605289426241401321226893923971435316777999849054638952178596131219812001076686227841946971880775717902901161274863134334987504246547636820604850605944178936557916756713136436093877705705646617586755536289756212911964354129718463172661224089728117449501211872390438995982903788149270313002319824915433274974750521741547334994645260331485682638145605409366964673259733012580691487020616283194325858897605916948888600936961476059221724004775847776532738283995744648262569639602267303764145144051752103175697295895452986853909290757288813275296520371654022777654878343618998990534625518667207648809395317244135769770754134633311881117330596027138854494063725618634447333440843832939816651783631415113832085013863494905640244146089541158920995623513559690024144104630009927164649556323481677774259680682142471289538273465239401197297888832773728248479644440896155882113705667547374125138308135976359066809908503120599009617950527457774736155192785830847616988812360010715715668030980365146103980631659347862484749206068695679207880130017571805782978147666419450636774879567108401617085122677954652289025504688662995147341038066262864038178683823651004838160921800842280943369992591110780482195518133237065777253525294543570510516540670808929981580193355251594137760639251756632663449239151928633715038811275225414408699560429466343467866017542139020698608866206188494757639005959001820896919590612167142329800785570612198881984167113852491764151687274698724074651419706238293815086794347119492221076948918766028860695396848551498116638530545040886336873344084925091940302893992257496549581840902512842997297955981242644820275277563182404781397467264533921114053609031418058834595403479709901292580628113877600811400782578752195312754363708958303160013613861421460385448621701835240098939197781249424712368566181784076552467213864698202713360739932665379928743631873087641974252290385810267903825321706914599834271564194464154831105460475377282799940418444494889203318930117584273626745422540826054570762512761644535708426562635602521378372811936017697132980306272387562928330866001435994190413711110414669554033712175727038097331432628383170697443133819981936480177621053911263702472750595143885848380526939304274869998489851826178489578281871290417915585187221586784253293872376189911943023879088859438729524873417133539464341318036215448955015829618163253277014916352620478308936437732648185048458919971709204977036056584060897900926379320676438993799359926117612707284219833959234851451582641273375060964127457653062381272298158893172290172197500458875221605211222645943918255731444409726627562374646495420739201809236371126829063037307111757223405822329492449587549582610373545971529170641192531234158158218347393949432425270935269245993489381095119220598953423699368747956514308945760005175540595649747231531749981518894992545921324590421326296847276424247604702410501101657698606731119611046629137861895275781591212400001780487099910972703993839529058320010517338326849451091847381629204056424689857592257053928097074084203080124833106742888919418404093149616673316324371306947173426741994376830325272589037552044727288638998896747056481712659257636862822157956437350940768877531864375788131979684448025030752940018298447530294396586791268732132389940475564090464127906485615739111004833100026458663566579914985874871526456038036619711225268021618547019704609717034037959684437510335344193348503078601486000109695894667596759207601329997776525887885034934678201253144436211722695014972764650551020776585068697781639026298477471144396060403899042141735158431844041849753566778918684359064983516693731376511844245206090325298452451171287811543055196267773074051400343100386762577382212733399331463094367445068893998675604083052808950192174026486216966738132003915273618907968031961415974861013010938503824330427681320135893278375550942115146749392635434867073969382288923083387347223269184524507758646261416652409006244226369338937508885117562405845717300779802626788693779519095898687838809661363020874099324974517288712664924979663303794282040862163323658752572839450768763909663866887298797619073684750199980919391981165947426823431243589255389658648766344064315987045966217967313264636915536421880035779457378315204673586244404708797797962400392906526880720638140575512430620657177903718842896193169841631806054899266527821518466702219198121003773289796885610313644618331231829091061235920818967250282745326440427580150967155196756002343781809656934592014703447618536399068892694418119802988186358720200923023861666737342978765112598772092210731469266719147259064107829869196671332363030456095324435452764020374746337290049596316492929290359089617591483811240501161871488304527011126759652148530066408754917420439171594757009995659091080649507114338451252334019359367947805941468484140833664476882612457994123265903186760261624761358884611208307978008121162200274202183646020995827268563202391317690228914683510537466386687152874968341045256687640243865053513213844097088012537235369231173549000297734901626868195090432360904595132401368768209398098755465672386266226207032875515929415857943712410278530098529326985210865408451205184892480542329044742305316778516103896989554457951250548454452462987871022812071581970999908754267808600499168109663211653484990906953260629639114681033874372831653276092907944992028072567923538830163750870240365358708789522974962366065507919634805078815760447325838169813437314309828797424608081698794587085901897071570684967533341808600626666685564388336180737134854868466379780266043510814305652941472469138304607731366442406469405706395811875500819177458645759875920151722679716183170011658675743860362319697332343352663480888519096543371342677783138881582292380414308482452244854679153946141735871167563806457915289891741412505354830363273793452571087940086881918647713179874103923940903541215152908391617906577021927910207787439741601125447157243969045331510189762826060649196018519892664005748698106015633562022091086146023154050267270823002577229802671586534136742882650970636751949046251758232866985358614134432443723237448995775587294321420257103177479746172210251812644411371013457998680964503323571091010914623066600880850422040642334294565715038711274014204191275700827967803146854993730016779617847297112427753772292693206661756641509704222494062841345761670946399889046636004877457876069542024650290643461070200596821977248923850218364050345327916746270094566805946551815623516486770970152783443839815546615755623222181905289084816131206680488869098099483689546868829491161675281264732510446913185922326932299382204922628513687248404267699477604632763185545579591878057328474930032710570398293103369496186153094372086136510516964200502205847808192698136229316768742528954617990716907731446576414417706538287002349375287332561038527581537754771601979530532906982650340653448893992199765582795998921488667885193781694076920240674870349657747847099041042963295139509928918108799487068367384031695706449535583767905525907847294672364575665184595391443745733597470597384070214204305330650525591915069590419508341687508395021720789173763015127889677351760697506707975678692077688536603152362574297955832950784413467593265792622669582486438605721448579491296020600428878209463004391746921506514181060150961709420915521132958350035321060407452310646680097286594822410158964609965606195721944514130409369907324071175912414393924057764134179838211685540348017725880239311249803114136855605696001921806965722977856723813330491923232727545982249283132083761620019697279925656614080534545092224685711475591923482444198564015239455149067477178890740989089580567970847183306707717953832301265762688083148240742141954757631574208134931860180018181794064874720647337005124569460992122964680199201597183748649194230509470190441805865108426571743086313047658608159219907491002052680800493247538390279279242677565163866290586321453021093614266269050322000698253071829655357092620486751332817458721339162112931557889517642186654616114724820978628935818609521728553461839450332037271860420220904044037740398795287404375541314064988912945931064569879876314368117170933180547719773271863663643918037559667601122600918485324785054361915545482361100247715519533068571434219078682438115528362846011791516262256846845490355568466326504152908702596478472949233645748418794702082333098486160120132534603942564892919840596466713818634535611632075753493204211539370665100077411732895054612824466000023043459171694883734962245379638865415637106182907017688999637561511221825293487783202459256711241245746824520200749777283298395819304680573190496344991623770334613953593280775835118682448931248408457397258972618993606555669993054307131645454095285779546049969242855579234808301076610913435913822917367932161712258801289676098804998433079597148212313431940032429462176576962791341450549089940579344623497520417613513784076684836648885651661128077586898687002417035982598701738702123660337001742376706431761996187424596175931205025484852629325435873318366911451136788948239842164408677136910741377244374543634343539812545466579535483517455426288447334598909713050754376204251858388952559436614506179152656499152170413575812142645221281143483800689454818905932573489282417392533269786184819951437528735294021404319136245262384293239843728444351295215716634154936082069607883674318334893653145804517192311402622202227526176964849855567927999510588699071702612660817663832088132417449549752267655921624958795148577655050205172348633392856895062201975340003146769448109558026252641692737782921230632137588399486297739182617225512633179954733795180417386531124910395253861411644753343374184244523990693488264618614559583213660429845471660403689613210460303003414654568589544058620605587379162167612923136898551477259460396661555349916354183132966086156692188729827753283351587257484752021142324007931872824658791468692508551859865616869096213539986456277000863605455924765968793331400644645629201702053301156550544066998002464054698376222095351647832669441104783352609972206344313101380432708746293398463003811510297555811765541696457791303869474063128000965454396771381608110473603702883656781041779303807648330929658187353910760811630593344609434457431735246543261071599124527325868339995019125809522134191834823315154634612806300666935022797764028068363422007779755948440266058318953847899140853696811930996568480393551223611876791006237403073563931194217988544927326016591001411245539001171777008294820944756016132436367472791186795140830298386918554586397569262336250138549161167726583920822623562283387650900536767221699893153756595533098330875624541444868171282485396294212094581028327962838562094541256223904050214173056261421680171786451142825302142748756711059821000959280372324655876946550214928967330375580272377241973834425123343435139007428710119641004813754489144105032102407367318349924002485603922985899760600475481647676695407035504660783043695792213290793302710454775327652838944325506186697369292182324033595162643477808182799303004363896953289614495929852398671570451449892858537266247685727487639129315238097447077503608252800579526352063580526242850178767002670814664037812204408752241663054504761652957905343075153094936483663492973453204456322941778829929975765543598962613164464951242230510062750077311174794524349142718645647041167397190440868690769372645998018217919810627700260442212658350878810122022614840497841210552184460246187388757647355125531049115305746266078458849243142606487241408219198216153291868828774425835070076397101749621040055975207266051830050285353945953389647176854675245359422731308372477568545081275266161966274438655664782359266561389436628096354691721897612125800298781354033155623500514830001333709820066079927781519383283588599094953224474165100030713565927281091801762517320555302531179004179728573038612689707973899055023029063354221494217625937581940084368784270366953563741996296187073492207014888916499188984168130407149636950244735909295686053694979753640051564408018667268503519769174124564659290435110857860780701470003764645777997885627062758850162750344631561114439373321418271033577820284656918380292888002625611072022898167919768430299426046616996478550818023269825927497149218046943951606908572419339831042224874907360536112600554031822926223718338301696923715073011494983847810448130245206066544146470623851099771054428302378925864728412409088032061626802300962508252174879160120475968714170220318532934222863444375844004673724346196400784305457341686573496498119579144803521549248264165435173078238914896430521143989767625670156669630291389572461447946096431507165748537670083322632784812987848481390747585866191434084836924392159842392748138099854827572841270195009679050816805098981395098328245441836346462249933574781156021555837791443989352575665091691360367846395980402245856233985378395363872566323316080845721633081545060900745479236414603914964767216741276001698029815705942578670711041774881037945055925082510264990951498666537356590129016563634187369032615003700003562078658748496411613572726977229844978683575465872182709933774714669479728591284549308695258806840808914295559832807228107053579761771530879734656446867070645303478475094782887612424171285581631930647718941571636199353574481477418584771257083790427692754765859431482732785325432211801690150349156059139956869097967651354129221975998549797567917119694135122993127023687990044816464554906022794876025473108825465570586761820086721220547745968853525330896625231018121806661311176856390565098353877435511878603201485642998797639623392945169925056978878541901434226688710972974655499570605423539841759679990388074160887614674827224132667224004020438657507744795968836112505026923999600456200306726611828245543680873139442293133072218615168557355757256033468916607626079010320654663951252293419984331369432841212811952405575614894587608973769867186706622636282389538059755885363960245133749160005884288414399803914249468216361179270785340132538754168286565997602255685084919609532099447179689169737097929786562479261467369232080621948053811033105061608656320959697784013094770169717444871811361321493186725962245662821022755628696713050074736684065078770235403646460781756189684965444906924052102304174798880606741704713447890574157969699414753397503063511349520780056213171097344761841030032209140139623927660251366761866510283510859170927144834692823809986249465913401050419231151661331613417796287496156289239485556765356830408327546768015358119737450376339141218751752090633975629348055214859657533937460487073519865625100393418229946411232353641046456083202038873145330876855989919245873019963490025277637492787810660239278251114781154769566242818149759854668054034758175493238881953296525468525326055991616598473416869568829176418180674756471543028077441360836220539023713183754248349689655214113220411671632189317939933376017054028699205424239317408462326167409606275763536267502982071196232668623553647450592720713092224826948236259928376936913403616111073503663054910595879357253969677384508035532266359874623059357185857029766052466240325365967065710065547988765516072277118074404756868666012119394534891786100121169009613507062494247084865700416812428976114974290227420293547875063127020079012046684068793542236194926439233228499246615209073640297299610546507956174338135809786673051729791157180767772740870342913189721778277212034879586955872257043358839668844711866819202719843309679610047019969884567228621117879684109900753967302277170251101627730666365875029465322652691961507051900508213119518151729656123115548242333914658931394369535664599468120029931744637913686774117929954589991419068832804323475778983775804663789256821769652097094074884390523685801424918299797762540693309774724583953956173402521151214147677717509918833339586289333006662552764791953762981121600345889289994567290868942191798962694004215681962183570040689897020683977940003996026724910792948881482014182109698082215283703605568051858183406494939577081376162627473937877210428650921123117010801348805743672875119697736369374896348060462462090976465988616826305484948524467279194281602967136191990357860681114427138967911099642119021677198996048202859123335790018426583932900379609366512353480838413069680606564664262297971516180199383333037486488111921026608370674884480369030856196359645258786853046039153714456430182429762978867101049243078395479091023370371897210567675054960645397953747891792267401197322492856621093326245608652915439207619327971445931617457774949080167308388709075776557829217163990818757493364456149160505589613426303797645437119483649670960059017177501164625514634096621115133981408557103820379128160652563568264415518381873070042840423066785948373876227946549579733325939300638663018875094508025262732744971755174013073977690094555638954062299916570204927315877985378124517274509601553297850176436877770161685432064793458301454804533734511776175665830083417237088810394200251484291530513443553044341656904133283808501697612125739665749093220859413047158480291921775173314144956051909843711237156926722993022882664316372455690123248520927515810575215829124806332204811660470216514098186225548835805541112388886637817563246774844638728467332776859037740168385250809776037046995032717400827882750946808442385239369443460369677986143746792763468380634148086788802381997248610622489207339151047958347103956256067283149734745133955698125729997326053040199107612891847912608670299296644894162031061261202925975678100993312304693733822570181468721285709531285637109115250834539932232031417453706739367321548332483618494286954257772727756790419129806588198731970044199725318004342709463641192837873405870378274730342878671264677661046849946149625390195379817322729171375335860768687192942128221326302685544612912483038359688305757731332705887085767356829828208830211418456871705653472059410772019953730819814231320695741670425912335780140082636453849327967629030731029066134275772477737613043711652957338201410548270095708489591780792582637909282777377719583821725400857226598037697542367177304970692015394338779149692788866491202551219786146852549116252017722340803877767688913120693657967389404988031360134819204645492909455354939558453271874326415721354356888244336073495844409256435599019703317963413966925543475278807024325960974521156987627782542608626060044684411107236664335548640248105313108244129118292604742599599118791165323002964326019069723527574899353008790556051876047341111746481110535774458720352598111145914866139893249073457871276986770041629409990538429191116942474747893123924465169179076959121735532951637998384555922942008075430598249546005130240316913133160113235541023091189108786004544971573850144161908089436390528796170708205110843773673225580056369792977418367067665451834686616484918341827219897028206357476399668223113374405217185420338771894790986584955601529114866382886677538004730441290642827793432639055907718338134644141259347739486638878113588550091341623135202210068268475974611117666698339755770845991589598043173015240564284078278719261310934509560353145399736295504863223951237940011937816612184819916113629930954764439262843228658412460184369992724806508695399504534066058006403241690905590543901436742641523845196895158099166686820771768355324165014774522082997463767800713805181706919965796182691223687225514965621860134049024584350985911622729889355839259824176039364835347389776235207115962629282594516823154726538312130008055347984268908142712192978437002943493479243579883562993977678601346633162077518684192062054674204330396104945552287531707213230527905044499928007015775194299246742465507260653179725435283450681956828798426800058299738604523138181297698164191161560516056003644598892726886218526946577721418598707484390148726558628719549642036305955870522375319463297063850754103109001828037243996966893900921063234573528052424291812072337813002754288172762651930870515633426270445111942981543565848271996255294222904691219801281255194556663881504926729698182603611817725255284928715153643780048969325421892896657963518629039216639896251415023675665722749725550482769534814349746204828290118602796543376915633617340915757096728328276383269750516193146777875916767388326752023663209162272231945500505827674574828481967839040927850007299097917750193149495188736677236934667815266542991411389290781535504635529659070693983292280988228566089449375125451721682655128789771911241925865300454856244394466156933015672963010226408288895488991935717536063103915810443466824249720871744827757272141731561555811918396762505717129769727358886546716281795818440500396198985847150359274324309178342922803820016975714079912582031093010322360731591973863623852839050665399179165777281792344572693086264303909899631543475857312815584418171019845138855769257605241435228257579372062481570183565238799936907372807786689782127620926370696221850462422262529513808291866873667087823868972099477347534240692677385417624240086285120841725891175333980154988408953575631379435281874984449155067091417130888520874457450775540585760535822962030184299068851747301029185303287787646691960882861110624947311446263896572826838624562080967361889464957133434992227462722799818836590326113578963178371369004220441915794899011717132969733497429935581052717776076948406623375458830008284360063070743241782196191844543750495330820113511554111816359394016411053395153304690180138090364524735336816682891520235517912159556469474435533089627000543509282758287609192552877301011707338321412791749708133848198390653932711646432380900237027971099134506098463916793585625498496678046299836024959359142360965620589555400545134587357516920566404989833623278763248703807359716448205589825024011126074384255489612404025443140933520046813382410218200197547644484565897705176183952862185401129135293158175440904883605616817083827771068465559729480513280041440249562304767033675941520291336356426370088793771880714736893647749207363637350323187720075998296600704479199296626439023013285821222699696413860662054722982402886728814376140832770922499653106824080773993297263245655774561392733569118581404291500796541676963740774980311368585858680558096086237106423282422909797592669965599190174558439526651118187007042896786724648015439558864914842547082196746937788748246294875858034788367064934443189368438456804559046048808829217953051269281792910237412257871269532008196540790679463402115637287956538201084848554288757302889898272787738366188585493033458768268944327451986118477944138345379978778135269368205358617591944922285955829772800281216204456855720880388846810311506195123721224017809361541109696433955144853155866046827903671064077315161417622763747067510468689501416539619952303581634945672689634630794492737143919783405181365345173299600672558225899118740827467163876498316999626355440715699773068236136966061313973275171563115245550463048865167474237681373620874998486110792319717400359250441787184762669419132802925565110014796601892294126937528833324176926103703237661797590883721983554317101606564549479451725153831936514907170488158941897143756263589621890479377202877598347605012861755463920980191640351034976160618464509316299277549532901021231963882408304304061717296348854226708724261778587903665145944559239945719351053544179757390081936648299894965543627123329533612753093455003119207445812030820583969688291991994764267091084311021194454172301682669844245726219843608808995872332579848390887156714763441224830669807539492018879317364136860918538147832209313747049715198290931151173731403800746931822692815555766880545689111045540298450518266859003269802661493285539927719365457770659786946190544449519167858156414267814988108905232816465848421104803174804555511101505634324196632034115981041223984606444079809570312855437004912335067891468199123738501113434992897878202878225413649468901826976935217729770213845829009200263803378268116353876731858447344255575968417159448828263128684830493663728861265741645984071195836181220533220818750530405548325657139879220194986994366129094372613688311146842353437511562568970968333981948019768958901482854854835538013589192346435250862103226814526211301557716930442024779384014857126695250669268771465619066831531821522743572149818304909712552067450763531231207919749256984887254871075474896541050824306949838103201585261715485207585913323887515668019823548692218783373203656107815120351497948531607879353451460516148894654104956094161912148140621817097249787793083646918442603272173283044649660818965072293548075961186405356282044540575542449758738656817508310701157264295463414281339338465568575662951922199705488533616372546716023292945079826485809054986802107359943569865826099791112351797592218619362427008427379092384501615595359198758203830210663481217361756164068911113608768908484876284645375967801368236928878277509938463967421361593221122993642861715261687001605621379449234282119323298446461037384519474329359174684874854056732340558109849110111498602991022332136311288982406196510464375050106699484960077420922304454714955522579707337725826959796596144532676645424472575202809671659363990679798710016167767413279566093495114049267229640673794983454948962131989143470835568809019596343444567127065331269486146809938448113765698161136983924901894607578331032924062384651488604087597375909750763994709899442211605828175035194059165904731924016296140633678515577412154713588918654066125763221726154453869259193880097603527236276873326833197099600294227921961030506383967556478899871676186341773879298742649673735362440397936259036355613351773204733334425016680135985998745878460121016005467821736339310507459454535840957281590385528946111292599813311562082515802193328451948747346838033958109824230998637898582308606826709517982710596534385239945186771402052742091563567764553943097649320870589478202505585564268489432989297894603123141568022030420373913273621690194822736841761112105749486950487184160600974016571435394800305651395539987424354294324846353934635081449820725514647725956228220115668247839912367154240219773187454145614963839065702617070334354761447451739582474687248477078511329826136609289345388662330984563159329393065893406985088378645618844541692315877560216148213901955170918918299371497225971096165195100613837260827155415009408251000042661561968994348019194502522278896225765483455149755783508954181166114384242107171281113736825212446363439930528814422077810826122503987723814609522087217720047141897027337035953374975936168053749805315995468725213935036960225302292738082036218318547785169493837512745270349972316341676741722937915818139802064552742872306541591396619035975144504566165644551572701473361386733465600030960629393079881495753643838684664306409367123153992288026258032328522392053182478876595484698369202652902311135492057773732730484769717119234757681578092208810062373919163681532631080932358525793746690509519277202610625956316162501884981702189110073863975811457550588813541553064166362002682564933885017057437689385677388624053696505134398718978987774492807321801795291586362589223388152289423865575880941335047054811171163813935224049737148622472545369728777177243626472185520011084588488311267596097729266398661342649589257671340785483373744357236329532551850746566192413615728300470033569578857504152949758856684974045969062561917613844577844884408082966307741766972555467309408910246791814636271477034015858834742593189188896345597094934442422996592508494850611388497561747330895629386306572591955263645399442784117840098182617079764052502475824440564418874227436973595077469764833813344025771052414119019972204025470576890525758138246267360670787043331041651940562666473829449185297918796289608683828067063530874921597865604948280597763452760973543040376031609802850357521379030911264848659941145976871230782010185250498399557592082457526297097440568737774267736431130249327291354443897080555847993865607058691222779550320647279150591166962486866977074002395300889115195901693610019161227836546479398813952735594259150581400283169197573479547490112119962824049323752644038833155672027077048706981282705533686314814448906838527220200295428387419951832738862978246334077250100365431508810835287193630781925715706936776245882833005407401186853061751425097995660710739640306314972075576787379049130918909925239172242296719054978395356256670760596213713028585044000180943361138802498805046436991044789613713359490269289137006090634197656400965474650742724614023164319701070776377312275658980410313107333182325033038669663248969163313816918661359402849736815669976720843019278977182030624326239547919970108594885690662820496346783849321299170764347059476757464837903238558434732288441154715534693563122837604049867913725445899350250897628926644573029309855196964507618823796340027034196759687653968706781428347437899804945602597621142474718593512272784794086405749373698247945641399413116820608834810167015421580433966446826177266325650904815799576163018454372863790767405802016279506228668770673166079989541544478598982786826712588712625063471666152807359653670009820648795057113781207985951488231173173971987606781456530328194262401223319805063288223799765719498227131565833259917461106848825070321341125431016093894420198440461794081184287829504986143313450629889715318573872318750265382724756946590209535703226710063700926608084900355974240756562643254549935640814020418123250640081956705383417225458702182617191917505498278594700796479492973368412094597681409678865315261221163206472116078502106049531363603484078389504768036311699196704363864987511665873388081329963233864019372198727976588647005479001825884605629642366677914670856421556434314896174361138259490060055052143193583898825100963570751042037942097939637562281957731588410016082342345610999635501581684422334250333163825841520962976225793040509534436190415515199829048060401767431147997078294659043795410898295618612790069686812870569211848817324128196276244581575872294966599956533599615888985928538037904671567798472201346916257784465153592008381336368735125108040140750641529318792804218450261049987989720488109112963769453159748199074699961771271196298767844242829403179826638850619470261415239470454302802288681019978867243630988325773119793362841652492655873127163101379960448771617221957507832016801344701858830168665131517013788516006837373259477405599025927251377588799346018267608369443351565292366486148446827929340469905072496858807145676434289458416363395957681640806361241672625234099865950126483118632185586545168204846112332483997661903266191412148893369152686397799012606597530410609484901331217823649913741742502740751376217577052688112718421105510971962529078445087370390619564975435307313117577356328632827613225809266583585073086546789367358519795722037662206186855400930664609578230068970557456476132481409688871807676418148180747001227110494037929547176310449961545512741351002321664076253253015220697191376735953251404089650969743281981008865048816738010044464365270428483523157527403362416837661658281321267122124761600660708004597393378699566076973673636303526448340053828042810825100528083327312085903897110140010642740631603845406607317505911822182498758100119592101290246747065350033210393548670526497528147821370649885329805155482740583336789976065136496794373295357207068604182204964931510831782677930042171230485165273120160454448443753792277125033192291265225485982833414498261872565248335202436109541738713301214503792603259925919224853395652465704444144024267319215403480444704204195444755997101139318995002893347325863812510723500404017104291138718706811819840598810404436624931189921979650906175348104033466069433669452810275170305781196008345807253557419186954314144361566758504555757052815742135714918282568039329034870740304386388182656693321421804947401057837851780729642825830819847790750319623827604548734233630990308819542827865165257658803190699903128419709545655641493788626228097524341396394113353586110888761362259458851445739217893601995750543419069383514066517456942448317757570395964888945459595395944330701546973863293011993173307015838339763693536027448036104898814674309907257683763374260127808735789146229196872634660032923243858754894943359199695442180380761090524022739470374680524903023356041481341308198958155959997991981240164992998215830805925548148510601255885736689042047776445428448937902305420916541956689269292752874612505312882458855928160592622261615318132762055846278731941470254308326154076594265734622370243579460350030607245395248682915007697078039259839409200790094850420766123592264014297952966399834128690288458820626775345733761633580919733254527415333080059465015387045563140896279625189070809837604531312152177902078135260082756357193777204888761867264164715186839215700948138172574765981576462054518674679013279269157562782306670736474020250452281093263260134358885326940050057969797166313171457803237765836245470075023040764026070172995213548593428367593865780090937617829694423582923207958719513070839581600608805522948220057287477706570137835542122221525509320051703381126970503253531355470375524787620266586021579615978851331242898220932373960886244681764614761089381684379920325272816783984595142235785931791180903404855770835498789611566380201102395222372586676900864569885601763689717103093834714152284165343492217966067120532877930361911266331761427232202035434816409296491398230747609694789204319415202048996379816265692984102888131587481747194126348065066216470708386611712447952641220643521080784969827602808790723716169167576900378709211506969641172038082678445027799309974992609666650717620741627745210102251269597081808819193179974915652081677618011622508008707167334478102437164046676535972519181917620054121670023918449509263954488944661622976863648097196404001781964092748174309711642628934617695943909693255099387122576007073179119930459629573880000386272513857665773892501657138226210065934014979548042745836985178206104830276052578807481974424380976618980120403089712208850104008003126311621701741758488758885122084359333543081143258752487303542371171902556714574542475109386560370684406057021189821825722535274094991674295236776805640121718670495711605417893619762044316262882630763229480204863493520716430182211055188944038172450119180654544393526476150608834314616926188176003185385713883669899464048784269883980085204441751213535491945406762463150633111355795078923162901475992660251134198598717945073213064514383277940954531205931979411821232642025727780273010342003690312467668701259869792446978757100894543010287710616146908996203480252207036058737693040479969413928408587280277036834350786829951806360117943794064649717684272323579111981456102409879729087019297458390681945579567582246896887844023756988389466664193089019939598281288492863590426975225836232852255711391764972013059492378786040813354749144568608455744464353865644447899228313926735281763671665619564445333058637405068138586531525322429944927084916335380990740170976945965091055088853613322743528592938672624763092602645909700381605887061518213746019734933195577405085103941722818148752311406064706035655182539603750644462551778868322577009523543931946880016575535329507839911346786384717340086655962185229953885794562520447135401023229763240122850798739818054162534079530546269592366764672659374896714632801743417042089315957152986416180863750894697227266075368551455356265352235763163793450275012740806977554651444290493129690468369050468754320832404022473885612915625293631811580131662605501280494101194693198035065938592790701216334915440018442642757044268912815079220640290581976081337521173470179443561559581811417559612191401239869732713240104564054488486046180778058950509684713791081589590248857154759415958415869183917159021995915338550501604988516745662819222406227359868689935555132177307337665138513731418091949640586826944926892588432379133865760947533967198412623030451330909075480670685461291160531418508811742847931521990101618511572239749906107656021566668699238007381725632038840579480121556458309540725226913022664784824168350270445620025517985074717990427576473170150569418703895246660344722135050031373413976537272112749994708261218911755224145618546074126943837174640744011889512386079697743356127827994776286697215902028368728748860180536453394793430152954341042798852034016646696028639752847818098841430460219889844789057439427159747438405839500586207272093284296370768225389804860480169583184004892744913727042942926928860071923359275283802164919639454468053702148440166779424288755575429780944568647907500503038288871023262136263110664915320916029595430476389752702996533190562941862475847719545752801563047625386499369869956651879987659533203642798972297748647640241096640500664890982443284385139097486721779414277362142581006102584966980141007367252083426475684007340524203861682031135511410453200534907704742760450999841005971163533050021608478581162355972381394484815343401039508217161837515196065171989160712078821778165102601492401991957576638262130838017327511485674601523691022426404417803927495913387988982406471941916486748222990387663767999474976470854037036147327339597118931957995844045701285858166428822859296617802219545792333435728214903456868375866834458313671010121998939584430948349086775456593693604329343738795253121722643287742892279802200306917268554580814726042675973969357794549148836460230576517796841195715733418303377330080474605598372485522294010044623846833032293927406309579518500175341036700241718490808347773414538666135667250100049995322626681866514316173150598428085771521081746719388514590463551958657499951121475501591831395584744369071258215163628390802900202999612408186524186753716515939871810120019092299192908785816673048752269737535922158821730160355767123422214787432352803128921006004793634445377027098528735609701567328083148901530756701916949384500640631047012970408989231990950101741275745925655919538598071752435785037261828009103050265099828520313582323501296436517633497626571970935907394725116007255102699436192289247585960689158674389724588655725913634049558274846843697985319847697842133463574544563313168685051878688858923213419626465423191576302326879072663577304476260391379182002968628364514739454824691429149460318092029280085150803930651591244917221672708582941430511010455374304224966972938877713698706572472606864851645923988108877150650955225618816391487868467752815130768607829911670442473498791360063863861682684630544116236540451550561703236063639927502156239746761322985137286849420720324852033842000701763990234428163585543688250870011065346642486034814508076698918994125568284659019926776045897033408555830037780339296106834122893116898762640918784208210879393589257300526969418122445128006504653626861150692028644657575267816165292935012882039996449380305689908380094343646358537278076063334375679415394731666721402588215877787106232373245993740776874762800041501895823471489634033520519592715573450643489834367843514743594997688831286453609690571838071900516703213794750752056305973548868513140286674712478095049918730847502405311384890495548685204262928697059732208388136429516017406620619103843202984486536208136399762127539714310890937665514754168159165793364399323826587140649770577632007151029967527938128349011442515769203613243381888763202337045208754885271876537384803078214283164476983138721093420623048484111642829845329565047828383231654999617623876673430319272648939045312614976851372419618491927275478053165704219795480691828290075541507331687595965035350668504305320021988328034680493875848547418588781030242837356714275794669639528593289561826408677210047162399532085468955364372598366425778982104919063469441542977513887064500827832097121665546871702752196809759367299236214749082774834405577215964784989036394845218701517093253382321488194474717822916142957929779800675407711917970903182199061985302098373021010119001637613101709228104068714922358811131197898799908793281133797443485707842135935687383588194321415519287925994762346207063681507529725591518238336063769041437048361703996988480495727049230802289271340170292436224246871572741167701283063888829345123204965298701132912544929032975740116261039436125587269862597157387001102988931151229666111104763693090963269050595612052389411933527489910835754182575711826270003255180056552056932175016385908713589854884666756578680478300981549452465544863799494236922301967434162373969374885091026857208408843761345795934285485318219164321416790947908439409447925326259365813813693138518502663989411564151231289537002593297658991503903131053586157890596306742310072383179597084512697461245344657696602097687184680003602326547938921627692037794417126007077191897023511376512755842230408763135280383974057391494406471715089170799209243244336629722228856584897389521920751878437545548217866475788811700224460305767935740832062199446625449394177280550719227100887735580964116368685053560355116824739349794247698046171162401173060370195729119199589718222468742596197005507740769923521916732575727553947310031389967039566329495447057494325829820158604382903256852668916481163698917080347069760660889055056860674376909889264282070885479514558230737824077374650419497298487371316119736738948890074229588887968349914053488554400962425529632711126777926056854549726143545373641502505824131858096564831161023026497577522534770149390340532800439397498058412816412195007380860791431296791534947733745737304205495385956096742335751425004845447498944260554937433678789913843287212074717272686381517347191910954003436348061581124092667638097313653445947353668019756000035706040233254844086532070855526230712366125960920656724101451765652141320417700260027180393801449690289986525699942573553093666271286398191811738487173776519376054885170074679239031445431758129097824745719035914347157480908198715370962943280097958983252052290176662772951887305852000379286923935540120394203979001112950198971838064344126864537512165766207309562981790976438907791851025185186252131611818903113154815572842131122614834191331671506375114422533212288713022609954408128267052578894206029997011509294292007701104200007259639595367939602387856095224542142644274623138530387661635052936520424380385484476848644593006618685568543866176274669350983034857448199470771484084248267815498930659998709166404924756298077222934860436525891018750798025565416917272105971568141524335677985569170625245125909549643750568272931786324864050532826316979811708660642920909550176102185076601795654759896580455625007413873059172727215526039089440237354694165135783708840085037636619158414251398561905495727874947710813681886032689063402917616041754031380247720687244323944866452726628492523905579500046383340965941964027911357040302634175533126835782209129630073859622609717471265907904479795116121731579387562902063408229799987945225957263992906007530693092261349853610781386436540514665239942571597178578136991880021509581313558128962409583286285473423752813550619902487243012584756847479823206244272751173693438440762347244608810263308307853477871593752757033797549921942953610124379841442393544999811808555444936034136431743105653736075847982966047884736315604384824098936993399560012172725382504668594612717331398924987392701276382722842939754258571050229056186170218226267883835300523303984671064453487257189767581628519283331140935437469367665070148907032844289988757051959548871516613750060972511061428274375196360172930162200505893523831453306837145908060960647353270584256619258963937333235904530602045171714342594733355811585202036242796832153239694405463164904012507659163099935198848077322850840929206815180459365901451568763819536277743341533284786189880648206426605045391669591928875543907825235189763772650142945514755051950694412905812973271617717174850851773523611710915964569415241552954928881611969995676259625668339704448889843043179423578922729210594413366719487397105875172236219106157328959345317021464445997170926081390917450532665004439616042505263715902520235669855598959986015454667558402911458170905913729964275476983785160441126885804759341065115013270438456000094038354796682264900027346445019206533698126837426718201694671653717757576276138093714071497088327315393053981088664697887323296553895555886506959129628969876528023272102940350837134332432208708723805054229812808641957655981524643306334221461346216050517348366760068476175474142235328528207930242578371726728453853846346398435312023223960788481461998779929578200221382875111558083404123714061401937022104928109338759074991533437694038285513162684757687880905490261294176660378391900566981336456961598092564437766307625049349232832805091664106330262156064160824776563417824647033436694859063000977091814122292320636786030542258983320398284349020232948243635546352741642807498313699573804336222851818249751743823736460334209478671496114930494072424191587120127795878136864042359787462974670845590759362601601459931475982998556857235030131187338958138723989471687596231687683878141409739115532100933844746412484039958277509110724584818275028559944348588890033498057123503785959346800781434232253817271588581782852191539780176563519716180594832753671145996751992977829900004462450535289821178091653807546298072344364843855800445474221092178309850594131047482769390570125289759933156995498073668911528888065336236485674615209182071096330105842490768975541576023232363832014154652849330736583502408378418132570715505075650079545662638948016825298168501002546721275106593176564477245222961136258476350615257431338365850040023812949104804427243960950487880625126663506398464295792421022866059633183879977057482053225595581037154035596094175756596616306381621004116734804575528356408787286319600498719421703607328190571929731873395204050894535983246276709056494756383895924203340981618493866487836112745182841117515655229722121456107447059454225101631980102241428393628019551262153507973799209102040944369134148143320521737615272625519064116062542804707751822686338193846776352841738857030739604866266196758090635500342746893939537318788595677086500202643434755979831255173922978494357363892339214476047266033969894376971034356106311167056414449302822677658680518724062694083820953693991608956333380009957255309146593977025009599067411126274466506880501106263988814321960991517181893178289568265563307767584448489492811160695007036386363309716508646980358893537680649213381658878176250678471242954401390608018307953688585606694469440093204737542183236026172598234440712505110565032995343572145706184234697673194554091186382165569807908172291398449781939861283197914986447671613396417244551247424979728926316739302973597172941105355529692570259989434301750298330008764662862516451370367088821723452273205031707775447834769672751878937307376691376663463447302682709490451722074053822391723525966345020205634409887425751664646540846414544457742304424702944097999293539932659131408441686426853792629107873253680337001314105918280097757653203696310060088988128955730117063084615549318996388854236107756321898238817264349196807017168277025806684942735368706446164280901730597009511234141927217466741408758935364637219935594047830008025891363498593935509561242750849115752252756419387502139593954169681317398663313702094969901756423240667188663035739924483199569292611501204699113794344021703397526879338831429286582508287299603632442084849696103444415747456775389460011142328400328165895909370478788589127797879529352661984670730614150595315707606795122658305383941323235748269866517220239914315545763088689378494983871252912808974158799009330006365335705563323224329935223568101879580202853739235171983384028268863861657982987697955551952574596994225882422870547558998853589375286831169773208900249750619062866683983859602573492811510897579382254892563862738103632629750657863808551771889192205562580978149815125135221219319338329504161278706243963331330493539234767107920128586867538989493439567989413104392747285207027769348232707963850663542051915721937263310774979201135635915268314571286170546175304341729064431256064084425497399893620111874398623104219198437628087732808420176036445607884087354652195414412546897952300246561440107942632665723952512820136357701042391244346291841453681057372066187291123356051390716971325139364594065348032918157209003735589188772551441041593306769559314794521067154961704004469908748709698550825049819517046529297187603616833335723261715699558105933875529737544012735529150634762125380921140088792281273482404835489911590049469356739775137850863302915477224147623982652413515923660103205075902319154266713133374817212649667840232216889319997704562724703014325889894177510852958906009452214613630148911586171957577806179690965675436922931851688075279961038579932818705304360844577317147915844705497865900404183656705511548453205216566488708201052990995825730400786796507471924955970807499384977854317740087002537039628583863305787802525317815594985528793981611721493458835723889682344353911503395669874248063192235006204307061461991205352883265085275110468588050292204833315281389842619413834046856339572831560236305768633156826771197869979288552840719103245153846079117658653471940281125144631043192213603223141627047028539802854345098805832386087052100087305142543525245156730256852448152101931319104310186034516908079010983509552903949376396889521051391730538086235902299597903200001548022524964716610133514294406103400595357984648958162986795339336545183505547986438993409154927445659615848856452826306681153918515920176544995181713382598222848778445231458933412855292626339020887371719287277964376611256936836470253519911576763932495776387807662139571499087355773659178438276953607828596140173987354976520743330929632844882416552323738967332718327243922887309967239664111161199989046319567647348624485157615768708407794963909558599249747818283813077734999716410237303210435950855627074141090505475878634068999287816499782302869524256972286130340502469783260855787812091484512130237869358824750130427853256399627001855207851630792547811827163804886742751745788754550571629013406368496040139582805994959381493818707746314567057198562049494234817819993564390327689970641835001952046781052455346670152264412778836144384469677978548619068266922534045167599702941206418046489880377396970306559543079052978950665764902000444882935891660278921751554422232218363141534212665996722626777004423733620019544561017932450103772404669363390006925143722710333234966739362244132477765193120386585428434193712970701943479225225882624465058167357913142437854824052777529091976664517921556210808584084592036009198101279476588123212696718461983093669059297791387679733537364744097675913179996095345590993432340663210927297932735953692437187741489492703825753565193734576565330136736087009487677667884428471128595131920465466953487253824575685458565405556524507745464001919661386980280750122787613162539214396420111072693077926007267983833882061592347419154190041145318898494179321623389517320481952226063370592295697538126008197712637391835765694008155851794475704549257814724976954995849709026446468149038277902522042809068337145525673032187456849484728394650758699457076327655605964512462571711262921515997352618743484487983172805429096548011578179753249292084021544222086672295957141354800820130711557085576537694719697774575656936898927593951941729998981455076877388053427847249249850044990947493210111652106007402210044255417445507422349813648412065785236522814372677574500407769506323312178834345382728529450225034222822173075654684034695612009800191347548387417195250581102530881209730582993883969320249440736882915667984108338992953130808505913782645730660511085476134338747616649597323713177190096964135376729279988876724808810354097846176983371046622559460505333855928560091180517845873603326905103601954307237023223342261721241596468686921077775051513122948606332637965973377199512823553812554925317915405533671525925166120630801720812341070796924534938944092512215280577579936431784374268635930310335699719598552519512357795694541877932984139223991526900351548849000464705393507018003573819524898878639267647464187381054329337745786051771683300221525695559750289869373936452155609636361243920547981893896166113426221617650677156246662017443953201005061783801222685593763297479239393381621233318528524383797614467373822279937753380670897689459249972447594265512895268967854765376201817509726637889888308537726469142201699812295378540427980505589315886714849104966254585156798668443820340006823837462880972642853839168316133395174576658826477625373496182104742973774183273334479300226754471341718292515039151910529654204874102919315899104018880280158643825163912794459684980581388462055997107880904285759395377962676342293720642219220063375686121184024403027765628830211243505458843609401730525651398256762963517598687478574582559191806955140745972774214855914103760024775077282579569571032592462219839763942804886833550221573001508251058414607907348223266723719952773239854212881396085078180920764854844143974991196703418065696337373180926411786335255018602058910972231428667880202466723638770855928207697684967502095328472668472533903733163891516951718450411516481789880047168285448102082580619056843046702964132512380684052393080219273637180275606663039147253913867373967261736275849183031956789634637942836096462339653088800679228993465537259495541734520687771459793796756426752156907993857079543151746949403564900530149424265762243562291565832945564598241010707710669222407402116346074905077144777361376785565485074582012209795912534833535853993445865019273382304484304293886387510588057245740530680293931232947699884622103400051717097562599155574227909990511440906351579912184634883596182670065445975281751652273516191901895902969378074348646932328218808104050394209666200418557637309139251051580451502644320266539175514432997073289683869431018811673593611567710020698839091907436993554095091463155887529767284436829598523065815298420572614440320355433237134595915840127076733187832951719266613670693744488112358254784669060228139638422299822321436984508194096026451607151135133327083065379442332209106859247203287437381570221469528011041239903228605439779633692183844976465046009018901658370008563758481936031400510511577705187620858968388098155279959409562407947999904672856566725087330701747242487655156401541853744115422960282404262999018300102818524681901102891577631972200937839696857416243129114264258880973339505466509177443558205529983360990235361138636153605498888037909686035272098689349994352683959963197244879024133776473826242041694894950318909437082930325428827045695480438502349729615401819267605887736224025383081300811263112051957704864392545007378343638340211393749966119398598086660111977651569583123555842652547804887541526030033764431497484270719530070633351812596272055357701497856589769715625823078141002854584126638118290222482093803772785786367052201878471603574229046716613711507384709133197156109489669425311183782703476027136377722541940886373313277752547434185683130235560289037400239629689631377730591497319740159086247914100393220560146613725178039591197654235103892258380853361247491637180507144258059377450571560583118446057615132906413716693889241115788129678872358308909889665783995472638630765223516167721212812043344834782961723939362692167056815605706831085802649471137792833603475558735670200132169113008101681303084459137393549799954098436112828192030998205669815503463035816394337608528922223025738630906477288708999178840006155623291666900476225501527208069440853381209804759414696230267650687659149399847108189703472162844474183923696628263807699894302740327315486542743835432589870486866202982060961463341723538706675996432463095157164432071374691399148005254594984266345705461759169344265933006547634345283726756898111317646129203394977671297379522584125503915310371501472581401827805575188498346160738634551755936260091074367144717469259037338220696910875101325479093136569841766391456490590206264012897301175383322394218378425665760443712568055859474646936886827996921909463818645856199823158974754412620491310663123307161944627316716211009345071615734567436257439749081901489702746307629673797348487680699576429365775142271816341262423286199291607693353447993674992819011886061506412804474141550570866715260492718059814934294279769460106868351344637969409840920440268290327628863553965406895901579548040195602168144087089063549835844173869885286456570495110957550963277067885374047091249172266493737241483852606049134702466680027007764776260966185744616137881685638517295833937561090141702730396074215323382214117163668451060414573957422778241145859672847552712920210999437840152095144154338518586372446341008563167007402999099143746241492120489432480939888950223801060173352459071851702028642130843151610497585925728674530222733335572273131821847967418265842611098278875445675355617599100553936226869228015330481032854653004435200691596002170057850819693760322145987790315319274978135865274473049601462245465544840706988556728558091681171453831395151981299725062364283008689177894839114379392623436503479397795749557454744751004950969753968964595432753595340123751495250575382757901926795987117531028610376801343417406928065972069050679851554222008485204435046074199060579280877551496089933463101583382738307208036457056863603099710846384061613796251583762565012957266556377963749912181883397570200214977939747586410978544956248762793103634274414435468449890138821413269760273622590767728513116919609988469284376275129619628899447836693583066179194552078091868388033481351233216378910474631805532986505232672671818366961962546899932864638749292222657065235648778866008016636216707655812130716549737678896164055994532606650130001490853518123184989445487996677058226844435192433208542178148923329469305552445666701806284257562781443178013316578244320466008542583479088167782124108643013393778681794511681459703234913741266580464266801627269146692514218207268011036312841012897067035006366095192806522794390118588041130659262687074670576877841107427847363183547782428093893199404844763131099434187701004854745351316886782903008023400414118479217017728902852823452090296885721142293020518801488583757968757050156667599929536411516209098421062116935435261391157161480026739752920410705977193709374524948219833051753301122203677592352558647571082866588954692631537451049684770748136057215206328619849543397593246477393184844603174065021474188457049386021022536085771388961083514230123361867208356808971767423715414122899059707978426215639681404683795738031186973407580312322610301811495327184994490906904660519755122754955167951113170487521548968811662024331035232566080163317731495985334066790031559330746231656010028891169563572470463318198365802216346211433959541376008777891402134301081514207751646276455628842890364142012983567650985609399232383456397150269239874429961225388500426361508716811594318295764709255717455961090083119554092669314946056813226213405131558275265711454669881076661586594144851365846605413425547439489838402841148286814910855120741637963917925650514338391826747800618533758008089388546029528191254373380273986932287061935312055867474354185352120655144696522279845271033565283238810959928874358505627709892537659359469311857248767857141336305855651905015470158706481777587669376197261152223285986864633339264814046366500882419237105154754765228018293033778698787343661477451482851120661065762290026865982914876696001028128911016485705584602976548832019291366680260485396608338111267488470170091739208027446908673182618622887761484579434971668902493934452914157238052789191635969610294891636777817728273805675048501379910425292952163203591000679842609481882041821252316373414713299775162716233993196858649056009355105284569762212559281010252976447988851761906064726347856177077336334265931661798652095935096201568758524831897552685861460707062609546358206247334614312933471047389064548258605190629199609333052450795064234008750216778077370731519829672593710016321371307774483853751216588811700089349396811319287933090943300606464899086612169378377881972553719334777946752345270830189917136989977350665809392902536756940824069978966150401666190213119331327289752970577452361444105557662337327215826538026655974261685836349747278454174546306078345282491053108068347809142010560729461637159233082462824530241492643791578301482003890336446289760772642774857610563695236131459848008026588121619573281584090341444473144932721176821902006325595616519426646811197617658374757732606735706912333994240083847868713656796546955499849942490823545970969975099370159167669587105801686534349048006092096125488560824133727181411588896285827343860088966394927554936883209536642696083631339417762700066573573957474387925558454907476611870960617968436461662663856792762472308893408799230740975896461338117603781995377285442778873196881410284199118995382592360656087826588715052339806939791750611761874010918951902544977789238749263975262448168071204317206840476658902228005972060161917583101737422288158488821100487706813561309950703210583608282150590302192126234403300377585531069950627497092733005468044064301681690556407801540337602569608263468001702527145982505848012060392203381377799117426571062091611062857419495317156141353440112091588951723205642791516343250846219428522529051459080248950526788814577416809396089417511289834843224184171863268312591534753050759790763559738537277256014675328434234079576112842759356278859687445924549186107073698192509011779376072315769289154912975077018493440726412594166236697782995338761263975037164943457419162201053720651968789266885137737330856910162016205286485854399873498459156748902348271065368225729611280713214452538285159346478336579350020180280275417265787453560734352557861861760902883159016203436688207819475846892706359185268867849727729997463495370075341514258933668121546513185879078309894873320801624853553832013673927011207243098740410920021071176310504033355064492387423251068824012216315402954108552859708592953958823444527362074220391911813513279196419068706968701962659112166252597769681922107044512615198228268551660561285946943374379795190272566099375563416583990366856201103202909607393347650172020390216062924788565519780644584218096190167211022707521498478065595634535856030972435464967602048059888233286814355572181281661472237618304349288605364949348502962155471152252620716846431547301078913334639654339237060244376218451379557851303432828018294287091585717069568876924420725702585217149381189483320892318168074078553797888430409397853241861741156100689771392503279424143897528148989225616272447225935239753632212549887430229105989635520273268712025537952768488075842458535832869957890214902656993090055181193199094449552312477197528923946818303434118037742059410075317341043406407258369531601519952318629838602694407596168474421987739094896344250048611834046723002976803569498904653565430771099649459895661786098269998153700135839532023407044520874392177917677560719630723657377819215605917593448350415342886741416205939067358897161096234801638459987033366098092153176784821154614649800216743401213790232793215535005504140680641912922667261544132258983009173391965493608886160167923430815083146524304565497395559676835396840949317530747300672827926794205085043349577189220605099959361117991699262769830175745721537602145905054471760668759249054608858792904720611637413319924703116506501597483966607494357294422929862674920390036109050680465959806952450809601927248838386334692651767535615944818836624372805455842609060667405472109912021579925562588316423016641936139048312885110502973921030661920321011899274631493011541105502979311742032182350968338753256126754581381339780378933277335486618604693396530653644636277232875830718037581431847646104606873218271542299081655845792815241389294540402109606019774795336217179736741649941692573077523693916073913463410917859858135543384199448636769042442122114022136300603282148852173746838433189061886904906578652279457590067457104922943976630860256208885347081468945987926343316192137758539314826540001943483329365910882141688609454895393850037373733703201718398364493630722229507501125662202228680117301073233129827452924861759153516262712067683848395177482287370501421471047644051811457944376411547346584122674035592261188364473639723469534573761036066063783940275174419126495451635397367941148624783458552035935539060635897100508114194720876852698670761053973797340436558901112305214245411577423032157227536649855403848356682416626115440298755560698245529239156312356499576367536661507663827550245493602213541496933180548474915794620346831522530488161838084211455659578354442615504919606031437489405109634384291026801130932437829116383898008947915576087039319588290105952553616300162478415965834009582262944956054695654671245781058456873051448160729910125686516149852898671879275531402589193065108555534802383314898107401490681952996406678785844946565844060613321222277466457042266518543936696578053030749061050390608909223317955249935330206471852997003414604926772708861463587775353994807630935923424479003947807237311943729275555617002042941872438911704525250657835725663739097142059484648023251886238329655149176483687991073436965412683498551600356639598915855662649880939422584767644982580927769733921251821522438692514973518424777288063134931908360431066335379531938034640986447947760717711821347453208797624160132681925454506780957703151969235909647718951267942504704310569050905986462243385121628756822574778201784314673363735199707911742216756872424739918230131844023755175810331551768542942020226758687273000215356617215779100858475588826313545900905660527576064381811159683722291806665910356379945206778418005508365376056024717953117315243837683356602516594928793604774342007630652674344865253164661776017438874695616560472164009698308649705837160090700211980589565667187395747787350228484372060544361850872940363816720970069367985956129253558814580929133374776482031815941143642839772207774363084676246594677059229096060241153131952763249773685121959891814515301436296565306063685126297485126842428834868533763597790249348236165414363155296469200482725455477526753728794369857179570190276158154415207178100271575098942693863068448906265393205602920796540005829887811506091633026493988962800702824795838281615829211557472572140901255779129302825469149870350201670012029597968623811248264083156010319529719203086770253210149040684162000605238903642561172097035812746923239209433859331878803360172685748728172983461497088957944322484508801100706303762791960537048665215394116080474038814188535017736256425488172738891532706550026986760848905458185066735239896447464040451982246430892624727550092097833551545876037211035117412996252775213621436243469499502274054543527912027325638098603997822836750993055075979348977481093574210885868855693145269355504549089211326476373986100460345351624814326458384381827394475670978522714932953957081504088665568995819863755901329579862981976510758103163024712059354558677612816798539420901723964037601133286766744223723978306536566851352275736463935192505569448774255800505117077485572716568650108484035851583812698868842540053342789306980809867928830286332145740097715394435742323820860486277512576670817817098859709152475273955992018030901162560296724036532808548494347122817561593010628770709369605154656323145848585990158677102394826483579680799401253128553068311887317142180015388808165277314559556127400008995159263012700534549945479382475454568108014994008309306550958374522138982822830321485213293549274666879235397966722892271104825877538955486977232003460913853357827265930267103753727223073609890700665002235063178509091449978664558424098630155963081320973728721334354821706430726385791732715637590445733039877178278208592665222800429765918095013959329082649958766306863490426619589879050492654040942579936955038179505353061935870973418840662357052432563987773612062682411509465200551286597117954368897923836167691119779056121414849145638068567777889995439662879586069597432806610823369239353031770730376526348111216420493611499864967032725545262060919152504345761586841634130524928614153715487155605293552237273600944661652332050466906540870418082643408820164955716165026479766449523238642510546192376041841757553841021513457177811219605328125478880415122116704437921613881033453198388246701868933221786061401319319961914494023722015055063733641090845255504985684340329874151406657727677777255874474556823018960352458909992668806700914351989475879603179077079732584174753906445659249385266836189630060805768851725913848174992439813461820187532528275076969761361944164419788609860022543299959603934718576798825965514953266838626183968295855832705121224398170545871217230933589259772010469280565211248670463461053475962734490702028693879750366262476361152567411137416348023152715031589143677695345637737887526503671372594887940600160249912659470717529787979495622391899914339048476868528072407435140314829531057733913257743048751947579515046717423413311869447926812954298212953532751919174982161289804241944342372434523380756627864638468889142760470685536217290843180778704149352808345624250744827427747053961634785668343378225126724118974576256893913312059643169749688164549066108931425953137259235147844036371679036435716012898699080063501887201820415012965125234186543041030046710180376675419720938715430849668715777910282905943196120518442518575894678928809988788170688704873850726975575433143672086767943701604741985187076286051933434416772028402955415548539788896467737505125688431546033367120904438656584759532488721529075043240505598273524613829624891533184006796454889972363766930424558817026802744173839794622665847187991165210165746576781138425407678670259293693915489701851649524443390884402644745501259477342579133042149945782370487026316619591975081843276638577127390027560380019533353942334656470573139591818826543682966997272170317746519682209451554840418909954999589089550958154552232457638043150843846008861724290878574825528585889861969614802634339389404497224972156372081682162401492889525779549860339805071727791846710716392284607035364133926095984311954626147629026831517968508621355693693555409609920816011610686302703240015446723721355411951579149739003259675602034477143241367304527111315435868970697396174239353275917980277241616850804113719166147873709703765279529390000252971908615379677638756472045117257789336103647115896510986794814920758454086977009516859636934955505718491543682154773761329245882945342017205750335145320942582422037328288227913128593156374356798668724426985467016140502790257553314318356455870342562588449613173697437151592874138863703802014975269893117619160942709943882495698856365182555035763453286960143616382830043902622419095853764995744067182185051995801618007719363303261371164710798745873202348657436760839975952294740279362855231163356805083747385767252956010266205982868540352758158522071016960249985211350704698794103549759330634346234494335560379521850960252698042035287879551667471573281441859989513225875129384782486691506030038123464960444796151176529964352149053320820090774671165425242626958867347113444625554461095066298192457707850722576702583653185044164331176898385983866379155217742052201882090360200660155513104118293065073170545257889983747830765548251675873524988945035430758084634858759001335300874675130183188486150595121746174115128609432904597434734567570824339001002440067516791272581591060007923245520017191196495752462664066676393730708038230778634437736572793221020523613282189867284343922273903879574623371181876583901563976692090221588146162664316529226759779110159709701980906163001814662283515910005623081483665438937032241096759694657819811153569068562982770182058251725940463559214422314525420078196206501665516468080817123891003260103710145049663140780424363540185620704382551533693036517515077750534229337076023912317212822356213298754861806608631744145143830424879430817083202732138269615733413081240845797655437507524327463927681414780725231922125025652503018611087295694223947786574788675626609297501790245287287870553296496469249664490585416209112721379043915868017131179175339294533678285717600708881213512714917350360162570711298712102921815905736853151198445438317524733456885301151172298823665409963103960871766398924159962556676973851854370042072300608760126055128731924387543313122528792249137833812845202235933464728414242521319522451917494347945666888695741937353714640191195272382754144711941711255652291666123509599504224735175076227103407463668021682995994009773849988163936048896176472395095129750663759475617139511334976835692574953094685026717820955774443500752995615593254143414567180184101845155719653697908030180629048419844209061498066840429305816140872502172536391568337989797944100874520861107564869976645845908374139365357114709818063841190451336051126087986467035832978549925879178511212142652686250557657653519821426904682848249969317965339145788246454411286873580974972052719327226439700305991253794722215052894202490614745530910721196907761676812794679271455212675662081916616994806579994600910275912334879203830402417832819316073152268452738399185521712496791457170366543172332353766131256157918247956470876560997831440685701964814188802872247129856823664817143907461665092561417955005806109961790412676657705684071629438558817792880963732483134779670869806476614850990656719095787579979835131724337694699283270823322504902258301887586314759097000913304032532947145789239366141928107555787954866421566538637377554699843987704015054705692365148299151991265490972796043696171912136533891572812552117868011076342904195866413167932117582325819163149495452902662838688095743819865137888058703468297067012487634865189367555301070552550608809011225670346432062923776744107712909145313915587486992591266799891917099015562599676696360953394920654929892708847862023288759126836282639621570036800341220488749388105080118245293835589736553187158306815527715942234786721126084692490815944872011608844601335309075919794201228126893680033741113091813898004282105396904611579954028147646704702129802776957686374982404682168249669245534056474099192835296766534555540982616700857180879731199648708342067286896975557066268771077991968915512996143785988239187162728862297867925710027477322648388463857327535317700982833318691966500382578176960117641391317298338178831078819695134218284282874600886528708527648619799448867269294484264910666811374516614971197817082444303565068723649039975135244915298424278713256893733669170093238997089771594726393644032272357513371065740557850722340603355563528315500750664476837753451897061758916167302960908568290417107060436813023322199803955410431082771138991873894121582980812124868486982107867446371806811452778381248625506610573232115900478769600942874255308059761854125037649173299317544868341336290225434934270267359681826298287885221551550389090508050053229298404879161349451962539957882216215809643595751490987747486693930998016276992524044341912391363201641926374153577726005304415213591699130841815616834881636810104221504307241723034853573081949966211494221293680419213125645179958078131313858240997405640671265411278774032571196786998819361388682092746115127583393701909153680644497918861479788696393538424108928424676387611822134062209967051097761305601554193790014814374912183156920269239635409729890446292393377801803682190559568967358161058501974230853283466628696138713541965288410519050216893203100099232048061118460878881469501757360825079702284572717063529434936036872269356376287898122426123410952845368748271653147079175049021108458490944530103078573696935725450785902851470319392951128994385622983063564433560213653183790919609318152796926307314118851719032048767163398553079947286911732234319495181569106498501226480042557387055290647371264496255876400597179847053825608718592700179866312306169554497144825124933570344036953638094412567949469662214168651790578591903003110609899621767620442601453797001323923912258293832419192775218834142019871382206068128405364434167427063623984872085448820673152018188819136776197272099657448481170387004722943451243264111109423803441124717534168571333414524384143570141201642426050878827962642760121100512835819933008697827180227251995516547411262061180831467033182124041648187664302966944340444729819404015029895564823790737241335593477908095445985825631980855945645461038545045007702594554841287180841880728213909565937906291711126340748109835118578326538117663078414720930621871751293492028460180239136660993854083755708295261899102646008177189186916016550131013950452332931851067532691080214310055561669785379091243189574926381998141211513403912318471678154477927086478455674226322366794633481639332678135856758550218362501245305406181326813891433249702118437880644874780089543626827790199336329917616403378326546659103461179314200300723154699644670003393410711460272347643361700164670588487076618918970764915175810295742341685834772388100368474183566992837818597057652293707339101379381409237479931765520469471248729678969788561338259798337445286810988248347386916263816879459707688021165661443876031426311620171623157210613129977072697546047467068532969999825887999314977027725797968326176679908596092067118897501687294941987601349063537050271946921311116694679806346048698387998752280389089267222021347211783075746217014201437110393307583749881302792111116640587117171958762783172729164350628604465963289518048701239278801547803877332044090817884930433599683593756153949836070335735679923259531594424831700476385871097831729034500871375202785542266339665695229166445606334504922203179604611089429726859033798717709145260929660550979766028134662882650494112513377728018365647593967332995256122340956223149750399481421516652839349457122897810420300219548867591796242555055899764434154873244599136608088729856225978456562313113892417052329073457256113852802602538700019449605371580530747415194064353854522214551208576402292700854769261070747631638391915936968752903946412601827875235437891881796244203254276533768780282836227667026039809178394365541386914075813269031389246206305834226557780793070460422853228132937128249284087839391969924510416181458509163225741347339064348498518380316122857054969746726254633655522427928362293601682872851926369909476927782759326675921461814959832755220539114250988552286393567788106912196865086172005881274976626975145783460369995735538990364701222232251915365533089278980801550309120538240035068825768040274041644733736237790113754593626182611084079211494283530743466966381086832614247337333499945137553542920187019245450630789080023783939434913739698668810868803903006585025697357021647269130160715546599883475701486155067285678499306291705394843613678799683211945035113214942241023419694700229225507300907388912339074961474165582542979459003823976647847853599514216818422395373188966527007617006393338875958012597444067385278053086587828420565553933176349489323486209202363644246261818307073198506120120888295830689181651058861562192092307878222875760957769636841332658044033433391930631202037615886517005006070515228207166734735667585606568719693376712614808167567085160128631460972681754435144223336827964689614345389992772465871584249787800774241628766296401198432881153462528650643586188160307155697699249807899714831150272862034431964486313239155042368470957307867053275419854375431428984550683085918989129173411746302337151782787622222188871021031421693202156637378928358849012793052569421143374477155619637284654447827330375817529282357411533357051662754854546155174319640920103417458829509129903850454069985387673696161200476819847703681438290191235071119601840414683792719433572580727738628200844261230424581611159887541262437338019308959452933824022051454637161284713051751234843188472944518888248439769722631440845464923766015289046857676578134933335452585628336605196126902088228967347128286962043607966682350005251213114787839463692980151473155638208112815317834910653477487229238279748991970211961864901160990833527758512537266123115798540983149302421241585694495778110092327239289337196147919051523695717257213835564906939730045088228001096118062359679498003915638904539451149464962191855285952342412954238830344052783817697817739297360337539300694042092915163956061551615407176579016198370488803270526318701725269656691177260406486986997937454485321459879159324828150152083430860114406796326410681170247321913483904906969327587055069024059550213062094598401243342563034103990620086118883133267239481554914596291564256039273647341276719451539168282642978090996108603874729007873625005147310526777018015379427507051655292839398054142771273268615094381480801974714609069572626211315041523928697499672006659551729026994120312604135411607461479922931985097804190739885599139421150372368101953559161468798374223476026645975941303915404195139250366254492731490204749466526096010768209068919825357173482002883541375020743635123281560811580036629715350364068170252335503715130329744634965858673237634186250588969178946260281435362714655342676379942154759316203022009167304349716263612486893016923896783319205848963980465057364219421611021706289569842466424422406728685289295681268453890900319123020385141412472623385482016974333985087718803642531466154791048827972073468279692371240215890030196918467777166746443892119736898448154119837448362220159599055917786792576460075159195580709462252764064756725592067025985348609946338818827910843560341135869180508121925572198899454768166307828999986153135250000261716745970304864637208777565886698596663725463076823229682641702241611833247782838329405988707209330574373393160648197230622078745285518791799393659739818401807562178803745397027824837854974743812513976025402794076215128813110383579361623571255729031258209688128052384695763444581499339994402795311305063905159721393415594520640486123136795863310927379145533641069551502600190522478896941581136153768926387846882710265785380690168960183085786198282634550590004633509917759254009192387919926074624184724551058024947320481526292056724295727377345087310620866797673910701229198700430269035308407331912333074781019962945373950424992545266775979752446034784458406534504954750348890386173815224138401675193890264539744002627288229131633076518440017038050913485469011077318315529694707780386692092690944031701063913241160997039473301563341518796401249739195231936603672856995729315287895503896752804165468277682471174114865608655519918108745264419387507607737642314952760248541467098137110350187328503619118294787185532006009883115260188990053776981796895349348330151341119621228325285131702621475059289821232308912834567395184670505728743558381822127571843137284969543454713068011765935710534073335461682322556806040243781804894115556884080634122382100155684886235256652308299265989598786345437521328844490362017773818461061821329954838337513256447956323881538900391193211600423141690835528861858765655713914182737168661332765597990563505372338657203459709214741177429484626834430085116773257594093985270656755122545190543643176581227483698808024708394720503062960265359422775356532417809906964782040734831015141477712322915744314289078328942233748550532710564842817890852822388548681674157437888629686225431369687951656869328264630484186636030256232814135949652239338276869408313994699874977864670349824379318948694572028505465573653062479888533181138227661225919210241774542406872570924762942339195197161479834143812413762126480988920636986900522618126969407311530616240321742835954579742213316387352478309651323676316565578027712092226563458387427486536369235539193973783878064386536911307857446311747666533632527856951505628901338192092913125960477631344587950098378462969576942286761382608696938190254197062190680408268760773094167397452882400993979357404208339552807957708601921903525533873360502078861963331685763664900939492150579812433489739713959912038854561623362146209189345149248443525420019967362412166219671662609160908246222045558441778473150533976766041821953374361866450833628829014480760391156613378982911759249539327053950521244920692595462542574126033620091060615668604645182898537768208276650201957188611967294183910319705746683607227396522392808384903977713825773346813522754508042049172724715601973875101231915456808847952063993396025581149955550294874887091486861536548176712443566787683638315975824370903314299248086467953132149292004841887993473855101707355161624065534201819890103595730371684887933900016474673315938825938785270323233852134511505805231278117715488588238393569438904640701505198693584908048655888409910379108729921179447870506283398343601001514143063104468955129182651533398814698131855286388041246580745016644906412987228337235712436545295609281253366702521504442769303246714896796071247844547732280005903412084608541722653739687334349232409882012185704472206535218083727774903365019449586984170041618451696756699114765975378021877096112969010890244582036848125874333557194037677387257422174689415799865186201906282077792471428468072417330922649064022637748475189588731979424817746404119133618190810246832654035522111834499914972172940526229389162787623605086046619532194216208129716261846106193374256809075916975049559751472882640158251919667575020129139325658115500483409073667763345421058207126455240743702419112241526141730027198341371437276076046560353145575590223516501170941356802218955842608566814589628398130371614905194322090391957990700728881237770739171250694481479301683020019294164784359241985021488541450929774922365134330450084242551160590818597346443997702620112073188849555869912405076471734730536217746919317539933120790606040365792053225750101856623585455372050467508138716062594379149273855103309157974333583302785648294172538242772071014254634737288669350694493971761294776503937953787423920225605541536728185656918220181131094994912203643759455624909002282424589272675908514932403907023582078748260452481831835982234258967242050982030423937882820277938183823276976318318822993529346635886960357215105570852575467570219214992294914639585673208993101366638651832838902549230074496841624920826411115367704743566861815635414699343389950228840236462522423009615461535675766562101014854357789108753934273738514951158067058268678378904579942870238005718487263063619326251184133602416831295663399864088791639877513486204203376390257160803975891085930409703491372509632434264417865502561954557632369915982323966869337686828510540806851391404730755417183226148154008979885311542026304247161019788989589459467413022721076976258967116469672155738592158159686660043843731643771263453095214469407160838304077982690616074822456511143642713090176220150367371124866670654562602966673437195733317822021035456526797197411513564219085654720327856990662421904360353917736498959349320089358042257960273223941449090670194972641852174644528069090034109696800151933312069581466354668592169686283163269667915405491626217621890981067779471924811131496855890599710124597586375179154510243955996387286514019450696581296341569550865052849584944647429134461888839231237554117110754240539620864222544360513849047452194901020492646212687922663678565693851771235302612869939471857159776457412600687421641406640455691378960456364792851468878990399161280133322914816804469104270650156762064240537599557905520521349059456012261178889555231032159992395118383263584817140049688818829389060744840812889999416671254231172294434197464960228116763195493213407295460129888519497282401949710720605477518778345551841006017663422022095609601500932458385327762405017250515799535813262983916544663339938960669790305729216201449083420959920756735358425616623659515909934973583837200303280789252999814606681806304323807232109788881816081566137750351601947010360421126087654877229436598200779918975086870060406145242433846805529591350977207685711233364890787941509960768016817936025325064235756989353559795666706425672598673192981559172334294269073817083420142939787056227663891841707347480109464352592565028740969642979754215426523452030089995580811590644231008682269927756483010027282044538537919861382030344472181690500991034771342867366952611707705436862696609869871002847908003728594637578701717897714500974837070838524727494050528390049957100453627190838583005108789779972892886418654833942980340751903099309058719023441648760465768797327596276025599362215030737785483173841429417853837295722042770968360241063703290320855084721344824542562995289189278995701196131310005445135700181702009203671060133988423735073868415067575342551778099425526891282584430814774068960687055549136471748599277452209314520697895965857977048917882311565256315730752218246691024021278485037047784729869524087438685406723685621138790813269077955099244903665825954519220280601453007644206036937268637550015859851157655748245654493540620977376601060212255409727865841367340684384590401029679245806952431217742466268855777600362773324778668746839745765839200324990056319450909173281583039141600997149299154350893644680909454961601507231527266101267914180622470499120906674110655034492317026829363906994247640127191897684510537224464441837700641166908738556078505715674121377832544715038664679915921230386101371237802170063179043750988986535942413874245401994450334647976228091488822766170713377675395856426930559342035924955782874768388229880669791977385212887593505426822579676700842113344156347263715415639645536787307499845332232361845747970220269260001493339585791464704888540073390273364101870818749192371808319408984750575375434597691382363560981829125150233410382203757402898129670783952504284145747625323487021498736503916351712760544744023680135050850940698259873437146525319547130910851421927766100791374543702107766428526210434215602191781399208684961671737438366544897454866964498902028640476727188336225187733823466046862393784178656831623500541847748320027730826561699361008598869380355695652835340978265206134693576165663586067096422506867769132327212284845423486589435833803989020682906786979768255500242507589367792178569975280526332579335651399662502749214847008835121920082010616924829283280354676323033088896019511851143462224109824423585309778984150014630644071464977722188824703475861864997871139850845815143725482180096955751915272365004863998673911069714755079299895595421910179509436519240026016904889706656432604810311009369904850072719247199037292758478665847109375163315712134146594887521734832863050318743306135643585832638991373123397163730829105460416311669739824817496013367197741149463183080870962686651924130264934724727921442723498628555064595178775542579573799672190927885625277536803147533248436994929160814986544318864472147204616170559176786751362407970227265241100858132113502595388491427015545479066369210436526503527448719006396844309273311753897208260520901070297994150436376937770185203705104342511416739011262213896163206312717983596193100798927088067637497295022803828410927182521506904498116235439869301378325471646585389947866472395095599366296201424160177675069716415094158425374220784167259588079726939459567271833359282618968679142325670194915522390031403132695955137935010157375729912935314289265377520490101149319019492646493288754382242911565857544560987283215619775301096245587437131106641390939679607716756668214392392156468612930621123332755544446034387756274431963355532365946581678451212206159120445891776690473069415101362405857960837553049295981605831573165416197179668561969821175324241488541834257371414713117428007424884919437408699315730671246970244565009245447071111414858842235423475412629579641180645807292769921190295075539550893273527270800825524852020479464755375811176886497539248680192446602479826703117522614796076909050866118108506782336727873637349005173145936599238488214993705603863490349281760870126329482690436006896410179909441800180467075436346192936862173492854844455794783469315082120324937580455823088922777257946873210480868043980904166547797200975191952266774654919666678550632979967522061234730630185683363859923646747540330140939992626487022609155875887575594129200512232467913977730191510459483391715560049210761950004209199133414999001647720052922721798347314545125613123393506754554647648758037561435087830306577503580097858102449454057745080663236551435237423647306810047243158999281360706220976781849853897034922116470636118536494797298494708756006382421738961283164803074945811331171583110694510067744018968971629768655304502036473949106689828087372169042120469976707650432942675018319711655262308093626429459919542571261161242647742694817234483411234909590894447121186655873998407869247181485705611447938305896720480539966794919609747581417309670216704624819133943782997892173853085344704279553267154536348355898302861109428759709969959235574704469317727104760676092200532940404029827158560246454997099293772105522883084597622784692395318428052930062336338918283008651132442690236855462250945865675416616604648918236944090158498975596592431936762738344471218627217700388661153421598274695204141364021188416094758864380291156545750794388974127953674385449681976033435944564120159239858688309683665452829424849629651230593578774670959959765230227725971770472083275377112696315639329245921324506600801197645636393474825049779690828200907879793249598029165888627462476601082237955319017958467454121630916347464550402939511295125483228304648651727237346414264529388068675018342533660921620995152457789391361631347501864584630425422417085063271479231650656939852707861840126887646572863929408052407482724181883748747586047564994590357440465620143534873390184817705560821084690956840013867047353883543268125301950719637293719380264669115814660158558256610265788597606370586773452889521646925684043911515104114085960808083733687463042376421049125530802189754817750244342448163203592064088544779600135401101713935901283222078713939372043932091569331467958036454767095839973318241639161741839526703161417951039682660202116061440197864243513072288111390195903563484218421500376796526495679486363429773102443733148143335369742333654478738588366985482611099746321280666732666047384862257108789244076319413769136008555065942253509493943708384138315169283133866231039027226240858022734505370636917493959955251729318955765351543128162122419456140736507514031108702582070205551149228237222869216619068134937192837919716993856280625468296214401477487273516694009620435929329133866112872806121505412367484732604265856115298150415973056442381241278327789206773605461364336681971133843734960245529388795787921467142031417772139752915995124616285748583173601112470724635685522312488506155242487946730397412210319659804288093123059924380717007115720117501636186659507703749485543377981944132759539073202859937632272335209188916919441903233211321517029154987912944778264898800631058079780218490743926831259580597649632609093906178214674896890579229681648292189453739552751054325697365180012066989030369300819365962857975837600496473988588030335315355076427493284031200234446490599860830084908133240406093671131130784880799609396816928309389809210754422939545569174066190206356699941269800682071399384212406563557069839263206795034036010523775803448979970976548523075654318262970368529466452862109473645263482479915775687939324928105221293801010005104182613430883409153017680324989017052066425940068625895073306688657601859999469471207414809921305160002954342597089649980816880449616642958342837135534808622389361464529892960949364955218755313096920052237577763200801514662955472094995756217295660299115342856770491750833659803368635800291278405555347509908233967234514454499815414347802654769105508402248445306167242593732603839427982654506450572444915185411362585396034605447774234219336433252954886144881764266049981166615918414461294918051039520415815645140949365387030187418164181063966156539726172226969260988793697788935793086523020556037706433806819654988223452753071840438302739795623423955019143234102184560447292201823283279675770885947009680987386367463908288925209590900748564791708094577226724866440449065736607649332760329317742011752028458882638038026217164180409326428596483613741251324435890223733914052840951838975741269463689635285178107433614490724227361428246092551826155732571999675315634572090681281401399160902642082012194049711660179890746669780433223694934350271351209408536158922886179767492473311686239245676628901097013242769520322932357816138580776886426394056027262961466096628763827718814230165383157755534362256330245421205538716724975495042419413481613037496666395369186325339259778258745529824661023519923877071972445067165558012659456992175112599213070736641151730818636393102810894025016322803896861818544773255652437405080094712744644628211438545091062660704014262621832531716662728049509232425519908617909551884390550490289729795655968892954624805640846980844126059620685043829723663027813806500618571875685899094665068715340253837409533699560392004233571933074763004021998663264295133619078634945262803274277524749517455653926708354684752630998953681570526939249213135686824288205685096066822176423600433584759739353532650158750513353492966689332798666527760953138509750797728519284172960836980511337587974727432427202102948251623770004442167951558374657843830946226940889835594210449617311791032870413112469093834104691101509421021022912201585891113255103968638158065542681878978205862466877079881671686091117528120398761832372097682874629942782718389665712071689427299119065113227635109905951315558325941107363140635181134488704371522674881923697254532979285540701616748933871251006362914567302209796311689385212600502635094962753227362067935426207006049003707173010628681599942302831452584736219022998586800617976431785044379001585974626752292929389625913886109731412773551082427371169489237203436247784832500233046608845595418549174777348709190968922130630676641891853120825406390839405161044184908542308837358342863366730409301035820553681725171306994891026212364921993102258318724889946126809426875778326894515225142790606631617903260722442274392570798126850601524758003091689427246991834616057692499282603381679848381153268219817553718513798345432739700220622347249797251033811608651103939420303395226314136087887681148788708120901186864243693387387460719936568859859275745377761947817301481302096939731340447492313955704416957170016943966714682167653318351469204671338420817590998120449690916573419038456350724332088738223691678565997556112267364221495618009984466311969369168608117650592119861269785171233502234428287772797724050027846802459098697029921140942886794776529493466495447182681707243458411310318614478448148373311015798940977860574179099447990282367073008656757198718443928850522283259297463077334369112041390926791749702222884150031951695272046091419984528338892011289870755536185746331878320471020807758065762471920764886773471598809965282989132146157254568456162391427467147226832058949694718709966904240997018121751780082467436743618601033069511845470980595783847885241353117388603628867231703061067867445001701091373950975070589664181015488796409481323840898107086008668048898508040950801822656084316565094195036500530873476791303125143052083946133206303088303868306954424593599536106610619782502350736606275075447727839127783255078587806744511811931935612172571324358552483310211971835443173882151848630887333140002456741172008151762278463853646581952171623786437997479809201068414211282188693979331803986725201709238868541800819559390134519431655802809106659652360919108005678984027757183759835362113112160345855771425411894890387445033832236071975901516071069331349017062344532475893101642046333381714949585894618490517654707359485939383057514953071337615713844953914080210922466113826605487891708378829629235235396889072347664474796461699651703328370294907557745008841644134613195667215243388513649000851762592808990157323095213757002415079945787121869254727274864183080661950038375243258596452792555292408173623520191906261106977539613520787007870974490381070083206242047428531457707770237691143250067937933841285382069256113091366440470139049110821983113831579585673758823399345709583946111436001645502448543086512024599064377585330234543688892588483077824628153585538761313329193888414776551902629283201641865217618031295065113650803092186244706024939323893225206177653758864556123517920842435750075734040867273866357455919045426577981889509787407784951441164824265760500711300564518718799570484316317730922418373665042738692889120485371059582098182055290710331290818832448515317806190542103541788874621455825645872636031953350628329267753661862521631446580631736024059652697490490069502843757025571503600055082398605667003664355228126740894646121937181865502999401140868853449517445974401080937442433144306668291447205107647655956394213801955854316126857026871062468504086439964702683036645730375941651454653733341662031273545421633554208290846873057007056367235887108038006887792768829763390431474831551679642858294185347981897605415548413914661303015963577478201317416371650457978733591504071930259880434906967857781232620896182101796534390844722189691257021384592014728252606594059356314883645656388914381947642498514159715949560631287076170423319251440575365193459718519119009758657028425615447554523932792220001658601261128465237355347440794728367975848486851408341031261501422657857851869492056066334847073945106313825562019702555604276827243055585392690120575988766071688604994346490512342617827992716442699998898857384454952302624747706821110817929439448819023294649123355686801086582607711529086047368470876520690637791077372221710266574373593150570192554455140976701123735024281057739725941632836797371445078073555195847342550275185673206581389569353810947824636048726694659715362539852375810755539994584185046242969379456357776804855482356588689260837750170743654439510257376399042711265667059341035902202821005554835498918362478119446932290077607191041899255561637657008792916559632853486512633739869435642317642884040853831330483465989253037420774894680051221832189660375369430121757107557404866060805384383234887704927886441275164326197907285976684123371021465851062203033035991844681276491031772503392540843179212779628085093829149508573556169284887506845104248359809773802227956138447230692328606422140544453640995664136747831446369551406703517360650859494040278817994301248595243534067820193067908286449474019940372960196089717393448543219435683820323557118880562470692001934392720399904489132959426916691144133351371154432033476312300156200701573294041624712947758917432099041100616816491758149135301825213897198845818974510928410711904991081756490741910814250287487216747751839652461158771287594878100617553065731072307920945133167737285809739943963405401642900163537814121218379743863393566503711738451740258671889779691987697290887791761339374650144396283181741041691428792746910687865619374609000547311832161920737137575689029740442003962011558666765108222913771157975951971426652742896936601633481508987929515704000502738530043033748041484176482559011455157857074927820229353827802519787010385062547039720252854924427504162008625578241134312715057245085125024919034775045485736447730298346057392367890221972048960443321835011901231884441338097626122477123398549535029337846948620952645077942572343069529610439639539712819980192758761501530926228733381402644348275919777285341540143294258598082036601819616578207414991583026490013234463023515734178140162164465719049109217393709608695438700299821962753182576636498067909516252057545759426248590692298883819199095223501914459572588141237492349943975676206778167648017861197596570047269590224102552455209865417082883409891478237003755029102988546465628714306204237672063179804211168038851306759994300344497357690975900693174484834035833399320577255948122568913989454249990769609804850654222227253734606009545369113981238703773124701769592987554699035562718237536072542174652723876932395205766286982154132010302186832714194316460405093167124187536304529728319768740140659211720950025560454814187155604570632132985897131513574268162153376411088998918779863348571262405856756713085031994512872081678868248189051025424325786783356562578043665193120537338198816302381166788581875489792575125003436479975217372142271630642061699223719153029862004600606060807117952033795706603308341365674684650386669035456236438499122008274883253071975734266092938776598089953803785688080933581427880217284258671394832503854072634814523874196534742674686291436258406698001510278542752766832934866355588787006968979579370910629622326014873107675154064431823957935103729751199651733196925750996285936954757913054299068878912600314129436130926026810808332651162039524522538461559585395217589277127367443983325397327097579160167491354189728736214636016597025453969285027965241055795591232482741676816770457795537347086741015387530203669583493481498315937932579682360104318457480442324324915676397056606756021769329918566042470633582883606792705758947864778866521375220153701404605082921160394802821821840349072525295208085670550258935048968730514973845693038502298807649798116229731033967969346859670734529445918620127045557010868153274297531770394323723102908748035274653259389174137422808749545811272325881171684658883398376927636372169010336008636769732718433855502714453350720756103720191325649001659376497226490771994487795767967943299762568931894543404847742119315778436467064944833226461922519667504981251211086024485764216852474652108264772683933316006008349307866170895424032431761274564221739495026092622797526200051824021669433256459850575769014066708713927209073788807559024486877789116314058969325603453544099920550312395063535552357680384513790350812452290494224866013889257747640990117707775134331896647033866520542389170674454364868548894626538458246081184126566183944962083093911210240523923576060753683996221912791947474896300668496563048546936907738990344664555412594983143376251499318203282760287506339475238479433645990177786491436236908762260956650972788300870756857566360360508238818758444794802672748801845666480893849574466344197648980160337709251645435673290278759480921127982799085290528121518791910732334668355345776570683605457770335352903486590168241298245037359134331786849098772355493007498664940866906662361434633822852005478262773811751279834077614714163169502554295587950554559613842629717445354406680635032719761760064178087600215969140301321597921088650751816839130086804727733578267532868936213888588180139550480378789249931647247488859688222374216988547286043279889351680524799873373006869223815298125485543706791137342056593639177738470671578343276783930852712258425588458793037606701493654463769639042224957152839870267801597759993379310606972570154716920369894858979457670260041853565606477774319009677421054380215418621900553344894026492569729190863266189754245213200757221252141919466830418661793432699232993696595272131844763849799028193937414647333845413498692922550937069071563668316688563545101129315730750558812510899626200450122162981974091949993152195420837701679733839034129275336928002484685584488480838135465989242851465683422410049680233570259100307082386417045871498537937133119848817138310117060990342294767437430980865726098083605863451673035653479330760813776876225171823185579744206716491449012988684522284612228841510799338194729518380375837149112596822785986645989007692260453884520840600756533387683025442707170406273386414063178822275090425559316644568391784270024001139045544506637945646385700270968283999905178330153891945914402529424662568004537752627861037151944081562436810034617348180646035548305904948998437738567063970559811319099806341022445082381465662576047505778645265539256741435101405178962911734681163540199214517071550853449496444667301662079924860858762482437125204408847421034886319165919061047453190619350700411118208615257421164187641148625871728648114240537406467443963677123518682938213242886011052952678420802456034409230121221249123568062687124774020316361197192928769371786130550691691627937833947672126737149490477518449090226395068623429656514185169988996759857946424256392719220891243351049239165029422239761361478586730084251962202434485460168493415870435319329903348205306323512009810283660738874303235984803909154606511161810754436478355736701340670508966763298466783475909255336217429357841696575237087336983426511347947579225690781738877806341146391737634513526273963875410555014640201796850331811703862554914428952846153577410073048692234405725268359670107892299760518452587514079297986766182783259578184170453723070563045361380799468782359086627058550253340457256261393149810025156989432589310682800827827007904110982634134169406262180276467921599393020227262649444475524063036370914850031239324914203823355680364130048956405065100802238561651315683392467970140434234613120279505585557181380112252581634239487092509707982132051072832312756713268709790350686325098471879746113100816116476014288287624416787701040340096283894133264661772517315634207884044318694553708219594882540711129039001666121295065820353143732376837559702374656308338133721918956690463752114190397306233947256180074864631830371680259980694429868528338564477536122025289965827598978856361241689561638825765924926226638066292818884430778545233808229292201098070681889090756323053443711881776142539286451243297490971504077139676879044594979277559797618973721552510189955295520438212454583262530577591052629868510620050457461351569546154349242152091615997945630257374168987884633291337938515398974703470498164573419896773775170045827799104050288631217512436377235585501446207188242523118884400934303933914436063835580356794547242833751193094113692654833498328896948868287262476292085009345727163328246055224327588371079189974343821678223195941962686494765792388133486990931820548265966014181260741371476981987218133298320457350402657983685373036389417555756016202371644154194148564259472634490582740146604164747437381654894979871837353116803652351692794088295795676901627947207507126000975465486976898290466315511571435038412432857130959668549896004872987261250872934590695311508869682691636103425355392118001832610845987651037675954328699814031175089686565633965195327416185935276651491333454250271297825734611091665778581252575516618888258550124941783906739825164670867025485593949371524240097069573421729185235623741411872792794578905356286279817628111847405487423161872634787480731936422273135631238346924957924201747402596937630885560361910638439860226365589776227562131375242300996088284598804941794822710204258798370533446322783713881665115277928595393639527058345501853458308780875964412220384927609267933475185654252305224241061034791537448327493396144927647314114964688880613532561680239409082174891534256657412605067941644448212947014312359181481260405003449122312540697131791720985984772419523892098017936897176784329721649046343562244970809871714879537007823822524632277584058206314865117542449852104728810061293030980885749674801869373248453459434077857571899661794480843543671657002824003282621787006933596939083872565074935244611025002046003568476628457746477800776387696249058092831080312211227086095605338934159133840219362668085260962896906313188640282212699481423057862984947071424271135858824847818426911992244463946231396765599477866107144920132253075794824817057206737457914015627493930967448104338880075294340944741524656003616781539145705608546975923154737233441861176939336298471991541444989666635072685558069554516624880840131434340551033553201408132954331034664906609273212047233906695458293196518026879664560818153970319344332687852555497999258818944943184588528705000711007210945191476754276241544601252213220481776317127830244879792267628587536858966015439608358420609299754858560119281026334336105609388351242326033578925339785940524276173861327739629815346792044918129705306869558563068117407605179203985511426497172159968541970482544190615668276087238456240458542403740387853708837825136261688721112431306717598218516873772795371327793657769338061125463000651358176371626276049592818802252889178006961942880916369314972902667915145620039080760161944996221319787339769671801842947879494168265534601741423125610121975059865737267909052014949356748424189919389579384715105438368431114353623898959860792937213620011712613813180014225821368685501223733890332461021157614484593794449406515455069382150297535138106666196487508438531301391280614976632012625290640655812586711176574212297100527868798824764967889527261778856328742083740380267181274547568776210991876220707758793379679841621006924440283523226398960857174173272221382604776183296345177998696765050527098831442041178120071080918882902601094799503449165915210976214268879946968145570380091782398866367755426506252328107382257342161386712323014863512215314021119708042445091083810168944159119313069592327451617677516648405419021537339489560638285347595963281405338592483983711111839521648772939204564226916086780841735714168350540358529406674737575164157684884890510754155139283486077188719706855106955505033781785522378944798802996527029249013783866620872106677492143270391991379164449424209147335860207814072321795029191399782544767451452631153486220630398450389848681400951622654539550173383401525307508578003495798811959056878607274031387636461792568184673803519114143249203673903982360834599016906804598725624641789091296189636575951063778659985102011479917622527382275971391235768238042475997553008620875841287615935153517689692963996313360828471691433904547496470608523780040422692675851146776125641326537114907066045515135385943000019325428852324556014821811351715785101209007520410010176246496314164364163164324830176362828800561259330769582349948857145178459973730622118405058505879731035882531030986191979553901972079324623471371883532532614097170620748283861809939878224881313038551245389036325417026302746527705355261091518334054320010647745975263702745862926135024672271253945899300872550812178542931590000108603962037677572922015589133341275703701259677730560005706867435162331627989985286020523120829562323683999609112232211681833686918942264792577328007825242814480899436166156701610165656213201077136839725697656577850671182726152595394454013276953812904916073958292638772145030680745788371262104221707885969913208135720228853792000481664633893130335552548372875352876371793213186133340349345574945165395867717835214916670237050517169650433250739511729606664707102056628932842507315608798263774861583860642874202905298959752273023429016059182355385035771160788813470762164509198163992638064702321205166121349883678844567341973857518008776918966081138705270358560712238196786934336137342626114360197078676532960139814179025375093506136701152718562069597133106912779756772040250831946501965135934122973566972601766704315788783413937011488132225357894977451148613671961127188789000566047095254649098202910823064325388726990551794776076008266395126655939389776895126368683289229122820066596168368895412200711907947437705989202032248907433825652194867770466253093540682095963667446052243101812602074100856041176812702671770290290410769369463362736318913591993988713949435269244350896911941618948169854004487670287961712287914961751672084893859994344711239967905272280090525843114999958256676998566289893942733625524989855625696914892555005774648890398045377672208731233556996044646164085364947377399514369951969663833397431565943267333509980514912101746643335727556272834231432734558574218407517484028976333320039877041676924344194153231431872480892018596334331143645831908859043660049995631308932052785332678586643493417048635574693562897071786504909510176311486169617271825955799919987557835184868851371869779002784729722729176092300474740749032091722743273950059710506965241610136642924865695276900982156774704818859001016200301289443657734449987365742592690968390761742539082001720433925189572791072948060669977711898070231554245561424082865520417107857279458513319801249350270642774770813671639584237656416927111024314871214637016246179077580851764476229544465441164834623565680132647828262539415457286981043565745707939933375467710786595814663450775598077494213602262809723795128844341702079690629096579712358457974752375900268839840802384155593666365138378214420633363752845927903673866496652495258119440180357845447175576265565796812858758865582456939455107583539977572534685474681292444398710705416118950088268128766677745349546116830413270884929164946765609914005413057662284692051847574075926473706906523113211766426698321284546013844915755673287469692260916667373006217766032743908485188637080140007687251496811698192716952419622289237479468781100108271125673743121923364509144295061033816587252584013462863018320183125594012738878797792251730123225558731232411734741758564369070377381500342567925092175436690906362499517788534578440824663298411329601671869112801249069222768092627178958870469902032609313093000411530365971447630875045817313095052397243766731252316327146563484608023669882994466734858117869036041533881403082724596340702676630449895517183129085291537944027178069309692560989195743626435473283165562164419198012422826668205616652794986821606877155730721665344726562098601511266385187275748839104109549046239932615500563674851119055135045304227519980080070118235742121261358684359247503024363034132805959926428220185237625386945744208396231334351737543084165471253477088416963340959119509994446083739109006361346587970580083274160252308990190645436618861882599472930681271457200800530562711053508619672827347343055564734707824685125671614136901054955091271939974024595716147080030980642168371631130744387038703175812513727986510805938942665505587411041319847450564218596960995537252286727716623949562564467759156646208534645266072329896076958736507955866341731108044141534740215825441055529152052173588514862864718130417514783256571662903918972060844469973311429460962054223073452631569987676302105976675882738426182807080707468588529245636263959604436010606366269638199962022173977286465791712133343089896663581979280017682562773824316247934134852259357440062737235625930594249774150976881225188096220065478388276654496788117913108441191743969972853546788483939951427334684129069764105195229560658256407973938672413713314332163519043700543010810748311232731094306423913414747730629346873321593450753942712287364435713240718125670251175268145814824618852339381115685680437115121658854992307720368339901827743983673032870398430381022697622221269118427405251719934312153846411107909505540059363785131525585004652924885464614248533970618049123563160248427997706000605219881842191998875510670616453402269260229385706238322162970225744850663279597604622742784635099680284252293729467179603173804763427944707941700823208130700390660550631274007960213331762782656426426519014099672674576440575485822718138876166541779116898575398754480181085990884612469156188744945332698646625143204340717745934797232893129155012588230632058306906169094681408435245277717241708296677373855168411196930973101623137484709299822533785356811506467675170038464207678321389732514772990640223988203723340687678675630766766790511440389889563149821279708100116504577636872786639291235392139577719435902285094108029642971267326595841302640805273071524014360511794659447727451483434121402883058933562228231769978221927897468432118315623745790190838146781279132297836126101103539124072219656862114146518894349342666428507793253259240395571146762504030324732842701299873616009973780208966875541411475455196712147544087165243946601515368164216457524977926624762276468928887827111245574669899013601787615461571812918997885890953854411684994101916310917251045640433044437926825150390397785680062107090596117755806516181228052658924820934396714938873447901483720315335698916685513037885532370331303714389661906897145860008088584971255203373673685572488383204963217349900471753237594496100113455813625804882687757575016857795517884169674866947578181364689599497773724294574163139368990163336283824628060572794862831835425035086274260931381286946826500294252964285642572445146896768402372991336360904012366844637469073386509042166127208582347975846546866639812122264760513948990549891766656917589999095157995280151956855278909579609147275587215576482341217330073920703952685504382115265330997842283529165452382151457843571879057134112772737955322898198307668017918869931525922041360811175964121361333004805143777453013593613123545840870118326085482929058372610498388156789710361576096912160215888292672760630731791517375158810923754401032656144357339225007269060058240312488825673522325177320861824100824930286372793132403589138168308238708668607961000105609456838610548091579975935141424609327332927964921299735069260785122387496249497618844705215397011066362844708976164643452827420403944350594689788598102529346849091719327283343659964047765159094622138950185226179125117882723981823813002875277002447546046959290245089055560992429526497975635417699946358874303635894117587701767492921037974463619342458894435345781131427514875972890898493138524546243861886683191646738020419028872909197996982612488531635289709815150819609414974985600074829907734146236783853741496110324050559613649865135029414467736404913180047709562001421786885107770145946864734504949799595327558455582279314128479502322838935170576982335106074070825469023075516852551501430889018819244385252381973986830873154628996722286882365887436927232935592555280912875504282707444105292993848480075130855132678823490433999827447539262955140645278700551723942041555417943561351978308305081819409980694294596886318363948811502965818337837113732119475900041231552147044227458231027886457891073680677738114911991610805575089334915588745353342643355952941949300640256301802572824097127399166166518134304667610900296623264750649296199596188158382808360231771100860643965885546076675623289879405498400830274395841061981125925422547017750804098454473210447419253983649257960129420518091859142388357327292145280709721043688205853220441284379139277245850581894232637185011881798904303869590519376248644400554216224918905142000482445959309035742453681526016421080221223187819561537942478664431703058957895388368483008698520846714430848100165192341663602883294036469422150272598114763589365008248113495216318671049377717153337553260944725548529667383680127953341266966406832132077869648790870216151096314840163859476018782151456369370973989902097208486659893718139472248199280842189822700183717529287402873865629770315135554006471639252471634409818980239345194474993427403262647984187180696192589508984335244980376529629451652971193958824767919108161807580035469542029198882060869955008913410936126062090791234427025382158557733751121898935407464057211235808926991598891875306596913909588408018042059858258005983515847248035444056919703975997147834790990678875608392008578582715839456979127614706509085306043765906134496917940396984510706087022841859233269119184936111854912379930996596445556590613600804658455562548362583913329081338127197386992604413970476498256803318127670489932661429406806711905147137550333193398266820165137014461651891620512479445834395018969013638710015202092893507846371094075169862528454107063172788234539272458285091345281861625191504425474958301151057849069886750028587129039238260988819468791603064675726478579328569291987408834801625729022522574095368501465718018660763339119870644729991578702319467371240374810966277558485318084296315176771211744252237849167449510824541694554694879288783638402131167986748661248688351285626026860650721330463325755866027314715020854523435179625003297689982119500059078375331681911763491627048855141495554962446831902900700085078863267636328810323804103679238200283778145358604587622118940448827194952655713417212476653577360247847129943921379714267870581971599078612577112279311194060603795964218382680667020284010541507968459616784731329103587728038619987728311273710193152424054335062542356024441184362398154003470530747045900925470524442792970676883462333960921121377812321414417801892528300212097146714641880767454523432770471466062635182228405843144594564815188571029372012545437462626424624532688661848241285567444616793977574721427548961426003801625136613089008081732667055813930520137156183830847419636591895383546433574006109978562429675255567973877688953338039034072834901140094294831899769331212633686866860505995452301098969699892477596274901078765443782564782255415241074830451155273353402789674167389773309750815689914082525887938592165962034389992016294706312227463302031566036082689971516927291141122531079991693862136046563624174878945052219037489938007458165144688128945273719845874486658666861140768249175745578908129307926993565149796124256083414054994393244734471050503300948341361137107435285274606899550289000905389584143268748151357657522734887491884859834117744872857691718452417383132701272226046783402291363088801675524353850123628632025301735032853525218190300031099513149246339647046137296686318495534969257490066415894719313669599252880715879841832084099603930604352851186011838053309519750616145586993154251822014437771955517297935787247209335262154027809243981133681035535194889265182972335876300130774706859145140498482698349886149330835158413488614008688879552594185622092125591144333516359732545783495083877118586570859026225815194895393992146746655214434880147286162126474988204084666956347551726035810335377220670079796846082894576362341530911839846343875076927552978327099312237969523838388541896527863793757469934784144922832321924809813929065532779784904852567485195128863466129006419323265896095816666475751769152212152336476612792410227016435101244748563563948729867272576956129764954125404858748639311755079222947647477920427165189800663024242624055286461405989810570611390025257992172777108654131454377617455166330817131100043851649729048705848356458072629709910281272757498959836216807564264327416805573963222536053779072020953750471860159647998021254837069399453020399535807412776159961065175640779363748650835264793533753933636850871106152273847353330250071322305189418223331076069598036062661921900064793621955225751100625365513610459272030339061268657511628788423063617271679766741612244409119163128841640043201395957176439467745185870963405614209641721351105633214256013875789901686788747267014168108335213416957803057159653618083053521710359884603539306957496309412030659259658234512282215660777141185687230612106171302112153998508343934513821584510616650081642668615449119957656925804715224581286250997927673315810469607689372012046003541785050738974675590003625853966722863521390567964753413243826354054001429975502007275105715666648916369761923875866760024185444502411653926693535748065088414484982415430675873744322656928121683608396113093594605426458991025887452065371079304430783024413372673856219749926999101730519730713296951707040320345916089896245639009553184511691900372359584803485001558586541936569974607401529151039840937559064080245952762391350904260989928475190099422862525255494733352217138936214869372584799239310727026859616760329662218203882677832896618221785982124198274441937381578332755135517693654345551762329143983191682142838118857472283547713367235907021322095219042925307524220958752570744877189574879606317921079523109856299055536442842667793220813663556347260859833366048842614902050864122873437603248852619817305568633116400646749470925559646466934137041877903249274469890931076329192482231521819780524306379542787227711669365804555083847744868875674960666398181242371431764167512033502736799430082404310025915585629603875739414769413134724613766170832496356910114752890412301667880978472365233746926726406785050468427047997149583511944135267449375289489869220392609616750978410269911878815057926309618133524104009790140872691520281915243649400241260497280620201445540180628196664844239760178931070851200922274005234089861647319403181849686880157778871438388831304401116895688633078177129070616046476044918576265408690729364335138827223770167947928601502501318988026662284174716681911509862157274891266766628985466009740229092479454039127218055008839369874453794814013070846737542577440187506103350290832627820363829025039543155143880252355101045463777092843659579667573479342257029075272673934626902944540575936224332204468295329213824861109839561743457368445362602254959460734555507962356472415474724545993318803038332173944220001071892638713931619835876807594056617347818284196790148513058841487462747630138673650078168997558937812266783133140924258791635111640092462298972585012082687848032521140487390803433679495837125093768471068262547858719209796128257651045372119691603068064882483842715891997966958216149929595150363106872752618222197871554525931147501355163291684776553016986357472669683528614334387992734393727307393629673059271042620534631143460094479284268706576558069876683095884049518239267731341081374952399338042202588272752482911430194276076535921615827345246726417791601263661896466200983689461969130448210629614187994469822472786458727554594132349147739352688942913815290124567580446405301229396222540343714817856015754143864334701981367474227203853544857503451811517544964406807406125154487652246567075749403489677725234592339466149944394658907442014045743315825024861006551948927506960773735532997228887726901785454514013568716570831210965422517591671538352220852993351756845519299694712914643345773213326692403363402845930051577991717298645017303397246627574075744800902560195143920421610171895662330463734327655240168083727468895400653845779434711046942935604808377196944904479083500624882361104660868756905683915217770999022072190283369711506864673741590149355088268550673937476398799281993075945739229017394143901729797607182131157697456394971533947884048547331680167469718624139469997204917070642679426680595350256662939757923818170467849833862901817760459864315220384602794905413674712969413392788799215098467859931161437915050289824329447519741783612608068402063043030887931916366596827483455462920226825786987599177237085158830465762348074044954183922779401621250390705329409718176819007760408779941803927232168459310555614299766029668165832756921479778266238567308195348995269759678500415696900603379387704416098263503311761563431597525964880483879107199834972009306203431579300494768345422309848976443644035066399146629656492867685757778579249203993372464702783793388177442981159870184443914551985538065198665103196712877330679004123476487937065670272088247296144154475665459122666513591990732004114089863941931628966863426945940445064859956272559145611012966149183847036048896151338954128768899120859691414820340845504878288039530745548503655571867997977726159883148363588208049468241266971965575218965476584589780605485630557278906656250852236934254915086438347351987017037273458636629586488866278495842900723711082451052029429026831470673588945220866591661241760237059005458098141023994001511648185332079073461794425296813564098229888572643120680746902242530437011693813627171117959395181670686769992046684931904540580675523036794023685264980186365609605499989870909728644961781856347655416786407768294966117926168616918579455775331028071267920780449579835508217862131340733124745478236215820154467460669683963893686818560658738851618133887538770161352250654554202339792789314250079003642076547826941218671526214570634020121164566888244403141190495579085069142508946953996525142188216857266917489983198836999669483145978122141853600354140252834497968652806402661788144385329464598083044174714267259128759866145509089763745706567827113910266192716994752120915349757041641147511771791438489812656326961386560450575434686859029418243595507894411464801143235819418060237625834154933465441377130834187541864326650265642880959536450687585963283307259242891174739422639846578122120247477249768922568601913221840417272797104645325653875042132171158014263926318265473833954369940454140326465387812046399500937602607975132160683741710168535595598135228846845003654672754170342952454119456980663639112963789656737708087371764135977639804017890803039774528085766722892925458967970430915337960936578403857550566119569221315688528378860719341875851466246770577222035535304773357859187484873720104089098014537327778249213297966392815167867821095933098977411058004124636682226571323243940385087826076090144161540255726283906985671610285468257889916665463272076591180849977971674276067142610816501503036430903653157130724478389100379149989784963578202609343599367621410947944307716130787690858985230871667530021564170089300105482267168632967837414803604802649666556978907751271844791695175061731274385175894877680188660664276291257587259363693850059595933952468250443450153359016710530244747980835145483603740614119542161646302292861188280476444231546586233205300280422819661515642157594905735543007836529954127879181283077284339904996892828286488312708115071914160133122683492325620366027352328001056105704727507029451156118640936633808975175406432056700007225235018878791887713580446265272391490366599808673345048970367741930209552094608603721299797885178944197861673741877230540947406870747026694158871943786440199396376221501820999273078723506279808991026615924795955323307403686826606398429917047024954572748844190286737507471578765923263425307320832000284718893241651457110522862188945036211387359823693598022582783496291534168593615387302903150485201294455931716826761341171050231166325387188697254492943401490632617569800900665881126240811812186502880869496786821034074515616862281122222646909863562346478540373958779434912652485034003357988579186557833594374827915637406004932785926303466575496260291394322202137892852509234914777402309397984180037591862208668665894777292247994582538093302630382126576402716897710952456983848122303109494432472570268440593986156629184618982558225255910978024353188462460128560298223389658468002985382477903259291852061381256549090560011497704358182216548517836441352368675987726350116892624163965679918593619976832971217979183509694529966924269707023186124054432346095021276153210234997885443637204611918937143393639006046115989078821684926755868649800100313483111075698792101955078473569939793603606563417364918369003737619501166944919313685654299731582035834966365656945773598880883729024308018047829201305680954761734405199000195531772277417806288373735936275542291064886667971248915225814017623575361730016269699707204694022940198399844353174237086084421701956095542544940491329764259217374288941361155205506167842475135869126958433038953290363481377633340431055547735857670715007109945337985858852021653271502892925077233820141225446458560648906938783367617102071835952639451022217833891677176480525617501598881240844241578042654318903272558803119841388940298029074980540373897262798802203492161851468768986874962076739033242014401711064248800428696872153712341200589441782180819926012693933507946327155980120363437059874851749909110672009924240709861355510147193985186404561049752957921631083325362325713384716653348226347247855801224790388409242772502110340309781638761584838617363817271205959542343546444240925966069240298864051936651892557654715467955015355575612769574932976693750579299599819283351416487653525756860505995156747641119342593150127973494528807075695321041515502544912550060366735182953766588401682600508700315611416569793476827018862396647443446536676820931235467590446850395287988617855808274606380882056720836347291293329678022344578998192369809137653604352121684998959313012032002019026524619870200924266852355089283745643796424675470261394574031028577803885295850340648644120437726280390885220817977797170938617897216035409498031981396146900448177139718727128763226020017111515543259891925722319253653748301005717894538735872580438354502147315492939424904284906536844249207626894467993779520492247934321071274259039945865123766853196395679379556620678921550064970638512529034331604327830109800935040438565634713546985723880660734638910777835608163242547338897426214017107585196965885337450450520557723528473640131054853485963167823769023288045336452166255443911059953582566912002673178163554479825099512224119760884324500600966476958124350178888790810642490452182592896003925506267677781432000192759365712995896685866707076227372191011918619269942594048940598476629078803142718688102453372870180232159079979384385600985358867446911170452188244612527169701007180800314427563459902220057257057542510297294816824712301162041238182011796298753890220342833865835579939635168559402107611918411540724333378509371411844345108077696757499437844308945720677722552501644592185938385412397115704154095018010776228582666956440870461450558617656675589198008128932525625085809962475082107584261839768857908186776246392177641913730520388205965684395803495013382135375338357801546032849034377509447869264274039897559720305097087898128012266880830458659961233542121991833647454845076985991158905379109480203019921723565257331219363164585097687579447075380007144582260143903016971271971206555083940164758651576399317829760695630739199131457224335122791476988250727804045693459526116955776750604784292694289414493013493998075162760765194562552055691198304165642659544940818086417586668547955940592296224541756686793198963650367079878678749254542781124918715011244929794677719249463055530649798296756281812694609575403643683108286165952658140254466391199080875059588708192404351601230565446555067748978291349200397524611804413161000355114911751554974455314634446198042735179459457044609690443602179510848469774017149705329744991466176113924490147229529227491879097083262003232579504012275996707624549275897162073327368589462236691406628531637022076048342212398953972974626309087649342675124607781501193052977488230147751545271594349880011100449479257367399142209130641018860515625073112756422075310750413800062063332055275689862114570414657809831147767127817383386766327228345403899671292081027143790863032287887196192212951157094490153455874500906186770673296660074411730478639183264619767284281153564011678692300005909769458086808919287345795696784307769406295132079338962772459689707691369035353067403339725000237121562391234800714203390269079450209719393746615246872911342851562703383658903759358897071456605622026033653291114077393492291137436796888355895261200241316466356660702709740160724187681783431167755786662076776645171851998985495496799502334796725587092205011315092257504063618761517307291829778249660379420559870633809762299135414398396444141283822788999939822433450561780148482922286194545772711488402013795705164381407477210595882832730319950333260912934215714697013476799216020267747475014778855974546445477669519912739485735134619817694174316860484222375567696170760761259555412842121492063110008158813334273516932735354505103048169173581321473783269979731382896388703624935671708596338116507629991566406890005663518094408724897225236100332560908259819360616493721675399416311524351040892541866838784460045546938659083152953979626638979112490776377793155177055152433919136047680665706987760963853725861878271509374974793296139384384962451425277633882089252328889288733678478661864303380250733522486638156413871233582240588103578708475833280597144043815532442938078137084401966935543589981168129252343138724273082984900092691924509053270503735508325897774879762075033600416702023923942680176170449165837134723879809361072933510569874309144975809976499863532382408208229367348867081966766902062595458137316299271430398177171796314300953348916964213542407326026448137914203736786494293646150040850291034623098492942316939546705028938876911933294008244149187089507043958506452739314332858501830477364216296357549220804156920033285571020161934221694946399315112089532921368909203639495535363448134618170813379046965728199798233206604940208586081507101931613876502984400536459422389064689060597312243643017314935937197472170454392419912614185732802018498671325800869232530759440685722593066542025351884699765323544032396240229781136721416707840037662445403315254178762545433655078210901888059670208995472202498190256882987743904745505556111201952836024339758336036669565559152198108097142823968610576531047132499363973039506540475340079278737748908541914200855723010012540751279333090310630419680633499264464955160418392322346186655796824681911604418384503250414956572080926300053489514814882048840059742996386872851079567681801859012599186229668602297541320253106434109628306026677285667580735306677285199812583198813108716558496126746212390246864276469230327742640305847333337760980444088895648986878024735138675235214368119949027752807413118277319039536096558085721450572110035473061529690116157712943924353578080543148628262775236118060322178359869305558947589499952886822619097459345029020700535861119142242418145919187555012210183986614346647722487923528832200144436918664910883650980456671192670567109773717224611125536152932014191147783605104169060756124275645327105222260373387859642249696944180892874027787588745853385854741423014817466928066238893064603466641701651868161746238736029351447703766771342072285307619331502556251378477685879799349926046792365624622785753665790391826983589022328721185697920918849239129757586439881202685728398655255663342495454973384274566072087886723087100863171508632751657951703469931741211626625125778909782106586343175141663835914065441544772454741463644893654454061651584551694202915675208247721091533627383625518852489440232760778604749630978122669293988062707493648880139394677656590819254693931864214144588123615314217278872833038629853287172566176852624853353958264361445044701745907525247289795985099246945684117106267257385015438849861714181200261324282032952020745117178062750075974326587541830625368422198695911948328415079242545852656570412212832699398309412668034275927365094363259201280299422224585334370498512344409801311689012682749518910236714540179436928191075006018096283870277529832111882796224844594877119804151564537075569577602236654485383628624363584058650354798571325499155036139077749045270946366146130588991395208148871372623728802337978514099248023394014275194992795174236481518311090241170028119227677690344532718007826444013664450246730153400348850408299132796460965258681382823324353429718993097860146251297359091925092651740051256280430411243401581964704241438466662356285154717575813508418464213973408533704464840623633304810107313632657653812741975606981847713276084220457739910433493769798498198673510767567711786321912109590222679656487208022637760845920346841118852608130145318604918285774608819717318818767481342121645418722236384300104456638827903775997636574253197629819731607156073200310361554566636334834728250842159416191507452250240832349390668148369043368993831454186869148720677093313507622909206815862720744037243808521773480400552273454236183097356741874736845018915210861186900042890071202438590466759299206290628928005643475506300561890332135726158807043755994396715641504876667765607873253293982841332816315950554118741925769376696984621879408132459043081548482342949280449258276050048769370641984082967499183560638822075174898511461105356169228312643554774068212658129671688709465909950687390813217820681784717891631122474083782883508607167352277809980748773338923156063598300402535869564244070672710719319860417287576131973810099290467319435458216925283021913006986698153715333962538344092484017943704373550616001806563174454786896293127662238285374606052072722992367256668807387898987009732907656581998317179215788705520090440627394295741282018107511444456881272646948596773729226145862373831231247456900543021177547056332467313841296703909171026399269892880972928576730251261910052649184613917411446304439447650955458842696356225904835669847468619982695300194032526717671970885503538093081981120726751128135149830094776927393759509646132573166128409757302246394631033567484201470879364798737808198329599994216653756909380333948323577143411074547563541332421375762695922449954382159344248187104271410473275627178587219497172364642126965464968656580467014138567575607098898518475316768861402916754800377202686470986332493188913370489334115017874062291768861426720666538428784774568810521746693324453290811717931433919144075610415391540044883433523915174112015140255905574697178473959327375452355514938625417876587384862215632891998562767147555856967392031786728462836563216567518956531088290586394838745254878141321777206733457081868715316263927661448678841672586552968128894266605398374603474312373709139590174447567465631384752906122400316060911824535683092035931801411987386955324241820946841242916152600240529228345230430215017316211611269861765257731687894773810047640336389241007493528424319409986841728189643957673856897467261980344034622193965431200636660074858321011341678525746382457493980034228006032496612638528153747220275372864044878183578242366535349519644183110747072135206384315408996246861730101962009160104435069588091874005669387609641291208963694473177230006055280579925752059539818518645243117967283476106179692720401291704004797916511082607495150018909631557465750449691433607840479372406772950584798977949727352204092693628384259958099851053540667687402998352816761104330912917667143889450053635894212016533347856072320372332164557002180421427655166127269969883437701044167205222419003181878961039226738714065385202435563149732497586649962364822225326797268432912492707304222532970193092498300200851197904577239655939189290717730865809428971343532861170367127007161653858140855740022904991901028301591424723305802853324201813327263977177216474148438263522018801080154210589938846383810405411137616054779824145511512940995503267436034210103874800385764317830457320464734403595553550382227257846169582791971118420215487251632931887070554355094546777399614169667767500343633774643344770068271038321427208754621601665979705177332600068062252854822959501936314145205908878161948239331842078688558239569295383379056024245663435740010044940091269080275596116607343755052650312782697681486373331087222912799226418345464583453526731580914845909993879000051939229506595399894708172278013657968261544177685454628867140822057706806740681883345746431107795804105536548839529237618963908999695501025497494685188223052857561051417714953168711724893558430847570778274160873394984066699304806503049093120264749384449496298266258050526457674110860696876726082338374122089603608382651854319207410166450899762131772736422788518642175990578526612569007704287680395155474386761957463810651071996916241161822333700540030169041445271733475627523521674138790704254468020373019630121789807907989391981662898674626468589477626431273169257014828486913106939767540604780979900283473077313211199464189575887373387297106574135203429106335614225236245795851801876562081906307498951222612067671842214898076951032513650186207979126987382303965248397198083475676802167371298952217268510691058114801500224045639139519355738657446653361729145633338448548779523026170451449540704218736204416120395890105974814937522890565374958142435265115939650462576062651583903948143084847017358205401271471850690120849356477730205962961670793341847739605508714902766671304757498626579891411032711341406914241677304837161966298324658014162310181394346495695672155972028801345336482789217987892346276719127971167879003885827889501746590773503803917195974072220826377574409117220892640738493958625517836556754367213800791910197643842210804788277280503320767582202359646372895903147618146329957992506497723728512034657319303526783374052342868442199310119386423160526094162345080937568265971374794449695013674841241781376035747804445334266272734290819049062410778215202506592147009104247070729465993318767626839693339806444534211920987918523158981083413666504962090984130796822898249954547694544600304987692519803098741228494281684835135345861704515864292400937629104240743463112177996919442367297824148319223740981574123295839619284968739662657552292606433852355361579226702577542914804059304275721100059465989726569904758932968239943659500848666118235745719579119400765339390044828501408154635279740945978080645317315122668896763006566851248274512958238958671156223089027019535745537755056937477274425577546562588936192889444882394282174622154139164150670771682326831381532638276904238382640989031438367819830373125796581542761109170860671188279416757015011402628705055566928671987185823406978805398056677950453520101820654602918591545500418864792383770697278008065820073225771143754497180575301834135673738003389960509833405297875282632900487203573911859123011345201068013580056758465090171496378717893986433269127734453864793142244712199450185760088573046055004737942705226004348206285907407547234811344300677996873914780016801099190477807989174929284199753191667651588967748039666926738087469775305631041086231484558862256004385695656182027366629305184406032180534442946144105399751128872245330602352418436665950566155801448545051324618661399084990827728113836423467140774764550129288771109922066799018717191708032999666111026161546563660583930535442304394612572683452905246922376316934170503732443443987326577435805593897951497228079021651493649899428672751390499775278571009378199919282128817319912690486427924828795970381794742726039039088926537867746655870961391717679050633410418581301105002210239019913271506117110438739740569447079563176204874693723550026473124782567748924679618615279455222438040185288553289393640559403239804673093658499629319218640152982651958302346845100009455216082662186517352713690517564652964320898931503997766479501341516273670497985754547988541042538170602783992011551242168913840801172483558955763206740783142052742051127528313937493264415541718010223439542006788807459859054751012686550611922918508018979868928794762795404203036270246624714911314412404412414484968462905380817238444543123445668558291878558843264874846990652011529770182882733869180704150862228582316918241426111481082996196443611507546223415477045515413520758015195171268438262524398456069408477903794641955709810209634976993448880149029800666194126755853541410033491879751879562890297917382527384219905823208742135892043295791315421585073364190632207541900941448950102439591237022774166088881817727218530786448095974304376042769612033189832715448092937666315682245414309464753764717911375798101740395464955652409707745258850176499220149720984587432423459012782063248183997037963793004102028436649290784759768305852749117449360836696886506261475107922308459762201837986025989581936457578188096573280073571282727095739386152318718374831471016471152949514284901601383413348065527600782383669714861535570906853638416845997526728310687396807304162313969881070315626427872551847498862056017280552680808818153473977661469707345196986892771365500669768737506002662643650993460681211553606026771740965255358728348341200633286638121039408959978115720945890877115741356346072540894626336788925191465854524338254385710700010476636259282055052235667059016978501862862271526194133723410268198545329123944468689389412198764274891870901650195457892062345939076309251722127490988903439903488796457518141447184518181291522441053514224285522258108616046685837965528191479343294046260993144378229328747758134528563006645143962905774064769003843567379408858850615760932329891829706678577795370837198351464889565808288779075438076879138646247605712048831129513550758775615833965746021195206230543948274029261218815025296162312203105293943290839271752943481365223849024584126053116049446402354748290116019819958274675333772741237697340004667344017380933336320086614269579167886561006224253075842070527142260288681669937973379013888824125397909686771649206160158433522802050576215965628139355200513835223009279747278622394054478208040204093878518759252434441021143631048086137403127424435862589804708696359096253620496939993437373826141041682791107788470968800504182103876104809821585140007749802678999735068989802414880815239647084571941179327976626600512179418104546070523695391112355296680292825930820954420800211138486067039273652008143918924317108505438931522279416178577186408647117430275121493612459489256919880961725405439577347268655380182659559044067342834094278566140540116774397728722104446763916449088316588078593316525694338590984731649610498976712141221034960550556118593248066852813619673175079080396149342379515113418652828263772954256509724223527229311097887208538485373530928800578722261814158412157534088603694991605398098994866856279642448378602359882198678758740048998356775474657393471362533060917217398341159318917606636223908939634323066060810837842797675727747286674619609051497973089325474023016327578445046189326985373849028486740978748554399645819375342722226076221817141979364727190055722768946941542487240480120958379648630848702972905058688722002763458534932722575539734287422231513870025437758126936662508553371791651969730092229273467931781819227820084695698626990432522113007167203883450763591960280481178746209156699547987621951704651657959141133697868699121286720378589825708578153724885526793770249145769117026105168707696532239843290055250667065028010267481216609106692122350857993990649435691104646385334949094407648460276830704109044410931647921457375939123618041164220480940329989019137987546289091460339600582989378371994524925090200531926218024917591729287763339269138485872983209336564518552499722322762456065077761432143602046640441097889576951400679650915121664052519270193241944563336056382923461607383035651246095095927063621565058821821715369703954580643261501532126057369420414055187595139158849795654430583251011893752929495052306644262047625953149159353682845616881797447768282230182020308203456754288410626180550795596658795991337463286042232034465590181373400565132972298917702916561161433835961107257650943243260456913120416917067636029973344017527487323756681172229575954503446370130866653779497410502950724699611506786066752144208313473893682243297973694424160948945531631709099315123100544795408580797161368175754185361093290243205426785851042940965076781832418084566554807485216213347868417716888325794442732059257349953850223554147096916397937890578595711134001057852406504030821413066265318820311646808993860489394940220372811707023976292805845127217999123048676523132753267822916232745661480283806831897363654953086499065170988419005086324585568344108530975807055148236544180760879521989542162751600697274120925551751574259954156927225210202830164937477300804349154938749886443839885724330785067247665500230542428057283776053264818135227092980125265968224272987541284329215110183813064059436683696392712547617500482381483363310599720666221738678260847477964783254709143645499522294975594772390669798807472666565847776306341522771002013574420720030856398450521815662840939601216827806861085256716534118891643864780184559967809257637353818751283494895860449619370911689156164213589334637593135743171486176506299408975930520346375028123234790318293184033190210950870567418014051682050423086873940289942649391009941151839204769537108094932122820143279459866672223538415926402290382930371701035020090141389720906479045608208508128252557597134766880000215676319478121080323226114867554507438341399750176193305996991414683587422271472320013950866093747545973611070594158005066212190696374346548891270270342677218790351183489046199309952811536900112377194087383265218061823558327822627933303067070586118430035117607573337579854180156929770306366592964553571666964768848493439361743012498674486301012293846213190696606938017080137533137044061908379845717486708438901083911524543025108307274187805080578240453646557954588926520699830785535216177822196253700687864360973914411303398269366974090824559150552867424285790035597158740686877669264815939351085738336493605341039158063827144813655105028585881213200219302150410789152938390140730585361052053592385320529531519601891249825240952971336552880956318103084451851924472546355889403779630441106634997317337521108493714396315710687957920960171965730822048783571971909761118364849324876718857550858207175254351702547608845003951617184499916388561730480889570663146609176645507021659309135870165136927719019711103396450157738090101593297677584524589884888573698905197294277523473929188016316939839302661186834386186616798979120375982511912543112038168575173410415267966148535168727854348535073272976925689227847687569146219854920637933547028489920154586315336804979390941863545328517454827463461891887904715549435620792964303261293361965521865133335153087332889047930309594934047214966679016873038666881839981828683387076167558450920074088744737692947315602289583192847756783354265167923760887106204356717594020094928358455793509017834425564308715468273975781350406959929834421319858976678437822340394465998486191343650338362128434749108928219851584803123362917455331581650030450343801061919060865253724618862778689703772035628784149192814376311041422914413822181573357481164680084297891834616078534326320356677190442867063659159782996046443831908977245761523379198269581735046600038461692895568395297961451439253709105514552709024786292806480801875619341090030561252282697872646253678633817702730842798864644629589679592278811220257321913049951214378195093882358622916063795178407728215736025090954987504305658012170395393852521854414842811546831933953414812969837646100336811740231141010208582249138037794094328676782912715719150656791078861116748239249178889440783116810716694641855520398068624195304156310445839922601465675378084164238936336176757169549801984196966226464409886251945417057116715006150441723494461392480077750792936361106085199290738115015110353234174102595846783468214574451102275962323310482971690255606684139570467086583262538801458510477927149538062943300817274444071345453839736058085422263614111757746463005653791000302880970604055503937218249451883949343316558544029579723583332747656001666417684206784090138624115595218764109626833838398978083441802018475366573083560150110971128153555912764484854975048997985765530537755719689024482062818311992425175722772106118902977724118996232523641023808139902733858043669720384014641062629725682796010859202755316556505648719343084940867157885886045167542686760554416615491390234008640892531308427094020926678679692433937729313597487650780275230550223895015977075256608387257692722430667224795275710995330764946630839843889813822693992752252722298990707498369478013325133571164280746891326182079192986069677966040371669816141535429482756828898433284712928322727485185910811845223609485631893400473135944074501398000369469069998628893372833186741779561516202513376372110190958598385197823741520502272835913767574494445475647083645574658893126679631774858877742667471931152357292741162208108985824630740717696813763318855010388358158621219892614088938656266473162764895138792126536262626600873030922308745079288430862948907607857732933579806386045761972368427780499199362002571630081354250300991313176407956691532373002564161556197163647026903131407419913255483886755045972302616700605655931777399292369139564009401211894145264309720963082718702662049770403146228415362706265719681617572389930701321488721130493125870802106144825745478408521638963678936978746190722707995863772759803101925083746919981913638009594719655374295871398563561766790094128376056100024410545971613373532624681461107373930771314446227045615755424578530232398020482489354093775768408398654231997380602369628583950645174305320259386708578892139073868174132619354953545245315482807075980311711360817431617699382166649769255850381181637190879183304126123493751974358333156619118023864142012534105805504343607372098403547790377334000201714589103193970457661126120685198230775906155069027580265840474586637845699634916051970961213181467517773195234606856797281243192755051656370877344937125335399608390635712522430166015413147356121615632872943021174914313890067841181829920462525602747075800309810410605012351701171173915662885741230923084689234551076782776062687790266911712968497197138631769485368661597016828190246827604376681484411895559741781641364455883836903747889986035742815774431516443485990244997223893938868662796309786053441465305986390404054278473787471833618419314097890580594022415596078160806323025728620146702791469878315768422837370428541752455786192349332265799705456672969631121885439624541065860933433844527781797143713244492094288320700368890009948657480925331775818728212638611122928708326416628843528718373866411884204158365371533195171163066966969403602546117174219406135905728066253818306595987808725691942195569448017407108779912178132265047215837146603900006440152082887983703944597558631539615303574846997668030882467804801152105640849537580332939219013083590235822317288163238718483528767831666446228087282946156593150900916823121505905349262397820673891105805468371527423146216521754832105953289851016297976457950246642136828902415537102390594780322945040483417741825000099667305832052437111830634005422497943474759100154728546397094956729625677130719266023321466938278620092693013305221849974996687832855330962118603028686293997521183774238872006315252712154236709461622481495642332095428471414604564969244483571697568652682434471281248541137714197772337259341006830190282663430744253429553993326843316630045447227939662533948452388871546675572696998129583907363873236789177559413910946276373765311483171347602725585255475997733656205342836730967815290978983099490014085715187140229603185141402857197197529970408878940489687141957089454229235325177734942360609708057272977165829722812660753051994676633089059842904785719449956032198082384480004699327985534067575487773984175395171089961276517710428251545237249793800332432269974420889768726781973264058240414193390576319218334053880871643097704023038230559589673343002682584622381266073730255295980288660765156129413024742653108443817750981437391016780229640940575488223121001633795623900600236010904531032178551419641751957122643279690854084278723158461053202693018397003494090763353509036149994773770637571550205819211716754378622339638459429343734171940984063190018322244746661601572591726720576174938933797684303181821384343400002405271942453440299898481869535335192807326193046493719745707545139971572144505670121365665812967376375658573291659472927667535189121228249767658651023690101326216905748254516418252789739412238779898312038739464071994127326696291555963425657736052422549623422089285721676340179718888370431989833664633702622383678768764067291170262362117960040980406616450937180478585747039220980299658118898026112508516244744892220449042527229584622597683714129902162665301709570981050817497863497198602746661567672560340417192471081966772160514253022274864507161378849706908081215491535420371425919841475621260876018194898799167439637246552069680153677688849659294217791208840543095195718873455445987311941568792706934835859899854486346467793318207730737801500794504124204122031945308104549593875557830636339886281592412253197552436732839691456104040913866316909040514722779716085350531219565576901768781803175340515937923903152985816382421421618738149322052605205220206381415129264885332462378082824069595492733736676909669184810971076685718251085781659806202171714583068365871378017468191081461572981013129531992393455197238884511164790805044172612621338312524570470457570899166432726850032230795732298012411764580819054039558978570568840494639339580524064417934227192555082070051394740670096637509420796448918677266472043876287479540695984609151714880412084741665380726261955269025409517918752497779570721899181357554518688395342919521922518285027427164691800784103469156677413998108140082605664492511239304535202802567749191050978729145888103069379573277719244592930828112126449977659621977272098162606155493087280352858318940688683108443825529072106611256309060309261627674007077914593226924861489220368522999435976909131510905473188190691210797557169556499539665384312567315756294763994122181916121138738997590936110953059962135243234543256886102731026789983369769895597670612008758217185096413510573837756547487198361124172345891126601942361729231644752746387370286424876695517847448692578226865457643965970934619819048534675680695049694664424479652665692023034661780290208379195268464168164014622537297297378676906992050391324994917041865979543469732508128933619506104081233985383053157335705424858440416007500582192560556691508557515524663391560875304929879889004968001183563887467425015443438075285079654739072294419987992240873697003512227824611777579375108951276568390370943526169066651887056425405498277611557624328514128117403787290735755643524570219626098167383709033556960338096254109714915307349051336558318766778820259796785290820280805660201924873389536740988832663155315784083721037870193021081873853239717121251551779116037779087805876011406172609531781383283227895483985066820818517812841227011493645770582996683378103739224381154621368331219568694090293022376032606460906917550384281132542620010350174648686820497053345326541061617117782559561274437892307841281823171272124984495341243589215852809106309194490589971401146069670589307935528700834218487377546501089714577943544569984815335995108104738474330933331685251624591641986819529694084783630391392205178609451448400846420833765000913681471311586563892489624546755065672602101378794036889971231732867404910184029548614157647102162176884670249843815352597892711559782792343414248235062516188250920003904829491580191474322042131792978681886882603560719969626583232981998069158976340723476471919128346780182463424085724204845786718571186110879741898479525726396237454147600593922827127721701059076119266593253481054021934394639298687067257209384722375531687931153768452938008928113074378136317886883478774578314701485395320637040166526762062489902760803247737415021899748724359055215863886628943086227316846633315014114163258648330032969394494475001533306329150442915807652006385105268581223869393424332682894398546473440205431682436115332418830646828540153263735969587545598629788781711913461919079991316816804667367931082687803235544436554663939853968388271291931444420156726117758847588141729720930898141300363283464261575248629374552388723629234755252751156425200300490112942316878862847698482662988666757962245529423676869425700373403771998987846055593181217596191876898762770369898141552212392851592490994342725345572563834238109276119523436371889492463613589801218344149396046706029371493422320270111964109054937341829042601986291505759384375034264751943042334188166140400241531292810746155871652586509491557528650457247612476781850811574946440725645584626928180915643759388671714632960073306861042439457147345469466181276794013670941834293244780401397146466503171135123709580612146791367465458871518144963146994326979178659204495319234290269335906160995207604470498118191966328563722437607137575733252516597147439707493663151421276516059261475008786189556344774091784003017888889838483155824737435212923125711839886987356225021829033024720104522960006794866881596923207162716605804989281627443292191873340624159336818698915943175442462597099747634086510646711512175113701079748700852862856838275778157298205511567681705618291743997874285825696208292889203996239215041519459864654280407415545731902970233514590673719896644394665601268928629966908696195720138369090284271977356143481417491602623708779820888773237127886547379388695614950114822995631077158502472648644805476355389395094581098686302836717093253160446315698128139599161086632842362365045082622390677027329259726083152191544676762615149070214292039970281420213486893956516885704123666263092410189265290515195665368827245047036760804822789049308353995640200404671345602780067743447093921115363116020507111149592808896424108389134271855945391162394235557822438305575384622879398765920746884756841690179917307096644499741481516967635252933574356018542778866538334052205567600366499807163636306339742575115294652697045054853762291587679052431917138994098224780341205314313914327140860202837534358778981529324542431844215584758004094276869076502117480498472380134201040392704208828542573762397007510052857206493425934365850278933825184360031615857110894741312957842715025638118891417215953004073696627728125323225950818960447812684457480714346936255993866972783475642783221667806476321659470437088849472200154814719782701540893852247712571467709600520298601135072370152638793194151344252644845340756939694655588317953501591157277602331927398940557446045141908506757217614031185235681783200749760388730281781979698473570548770460158943932454792618300888702035327735477031209752034309224775552946282307317878722129190996862872764470102249787016693486739309913014654897761050178254032654129598556843821157148023606384649490453050077703889915328004503387642071183169732660434974721317364699743422442867238491181036394602865757459060937063976268127400493614046352828537032816835137404666257315516325948372228686466466625797283903929351144172781009634715106913635742491017390407595649117426410795243832961341728700059822285234888924544069203182925776647187603710011865483730847552850977144304402795126052735948879916372646786569537566746568002231782418967720167985960147897130044806135728578659993679736577843177731078779567909797566707850343246667948941275896333675165492000108238186338105576260006795243245820312304871849397555942768787048697351514791767952943116895012101270759034406095676980453871459679948386088209680880303327361342483108835317790023426113156716015969758473988622955511051540482888617793183212315818107081855912845262771530085957066910984031462974793995637679708006515321293064382822388792784442404322694302423506332636067384509959454871495734523825386248267318896324278986016558091596800829698381011874707772606299501876669831016927926490476776393895159041402697064057102443993461111627992355270107472866535810935615419349446671671796919349583102858692641118761260532001109162998572398309710282438714210620771593377718091214646291080412683089468370915421307011923092081599898046423948399029521124094581037976021372777368098132563030020620850144835362025335154841007738255977760400880697193259545657851270152836522515422908530510833903741465400929299273243472497952074357427271967058477874528494638677468445639657758100647830444495197461715444353250377453023314481222207779401061166403013106625963947505380214624277395214368664772810000311932663825089833929682738571526595777227816571438158400577128874110633274905640945693815949095037034720527446452421843719992464192281267716304437437900708416978804549545726283610764373214976356138405323100735651301873561992336748301495997815713944585257802292679724853950850631536311229543284610493214614089702709406455659273713474803586325429432354280741031663171060697956789580736365105554343881167929301785115124992945581567914554955025007972550977180132031281163935232783874954207419240778619215346428628741133822117445498510081385917932790804064579680140335249087890787408568833397633561571437587926066483220871310109769883265977104512628200378838643546109588963313517750658015131340355551178583715668741517931030069117108369399082808578419308620302655437051935516768254380872050627226054040554991080024673455041022979360750094077984819974211442911585277575583648527666626857206665036317760717432847548767312503346965344231949490705751803648911419416857981755154552154271017306696089745333137502515431453889774649181004973665372202239385022497877178564004718785918093114147642989713717257357189529622528904785588993619958805981632301575543464846030149194186651362282189412632385334430823900829003579725460540068869770018544874855792424665858059745295626852526764043016542011778497555698305050904005001671540247589788411102715105620921311410060387861296500359984536316968501614270389025062964429937028846991787234480180924570080124328638376088716797428464056046786203739877713711402644398079149133081636890625976036860411999135091021500839107420387892530133321890508009867092339466618149457331288884830894177647513877418292599085732522728051235328353039741115923571718670851487700264798597411862550155230517183535839759096188291210551942516352085992032476068603238153287795476340694484215798192034300468629740538407365254120179109208141322308749108558627122980190799489371663841480719802334595564013831588584985900707205350110384074498846626598113478486137958266937311273875865140833919106435630236019221300063452843179769068752656187726805108147712933195178749859262864747638055208364888443052459932407511275342835754298514300834458516619973149675769997826749672458537669275070301506206197543976901002815715421974937832787956455046128029957886424867847882861967792851150868858156425702219538114683154576147826060678337918714923564198332009954724517039599581174967737083848246265148319805101360074901124221830265577107687474795786839625209270994741629440901921241520105752860872632849452186630966566952818313543572521450698307586918979928103165486811991798945204735930187451521852229458984591025378318232912219185501440111413492345053047242636972978875852261841312144833276974892491853393346268552576385503170398575378424291777219776804953431432961646951152771757848593530863979126357310006991703041748453245281585002152604708303097993985874530467477165618471868649738093685979276465461721011255589982221379684343001548043004781927448309178568833863230684297707890665755873103731213325704097330118952208952172955113201032656273792995965372416069605894900488416846208150775006076644247236643094401718631006625400522192507907176297305849257987782917772882751952433380381729457727375432531423521599903319750226047389807776965436739468986879345089430836414345455700276800028876603731919974502458561618179230768534887961081004431775733814544104718628042316597531621597718571129549953630512929397769594752522342677517442065567109945629720467442158923003918371222740989534212661168650544936940877482231340382917114699522895034292252284667190946887170070245030332173243894054567843227334906689893655805249934711360214923755070307467460242173147839454601339495789095559208207407586516574661868107672639936326691286279787742720807076645467924903674863334689347572918352347144056186021546655619309103120264730118494669729472828014967956014225261576709029953438737472831881657781934935831079630875525681622187204531927731214743768097201041503700968587602504818182174435831729017947003230658729702618107140960338905846602558632144416196706430381279340902819356105876511047359797415372172608533268938757682839166082106040561967906322193794876116389692714245481200550873645922388276412948897836741259285884457556290438833506056430114100968848143536678151196272208527508300506847929119662808394526290068044130555701188789954269945026509841068929997700789563262931083388801732432543438761200069053413703087799701556199013257937085495816727199267798736174503151817753127176715956618569898877965903045415989566883306868978585851969056033494082498434283304584017937786413333386115969607324069062920800221451950361026969469599590014853705926878581659803910568322053648335709082387611313779434307593935156761162836887866451549851886952470977218221208941946391306670562585466212729285884701956849864478385106226196146774820411628084533784772043970533852065401878322900248426069145970949593681819158211477096984745575953293659741006937977850431583205179139666068499355439508600082471048182193724336856151522078351117065102384839891864428427497145602303956896023967379307570010368005089451876934196643317062635417821528038465733190842211676993440937373909239694993225343504889421885085126011001625346170210320962987365288189531823782508405418291763380283304396419745204625682021217448039660808509711607312762030445702853980211608138408341680847995762493543807398007592051218547166331880444410800480732412342869284212924612811000892916823810919871696686955369565765343272200572362211379029604184141260274460668202618942216073345182546957172944218984641206786251063684851186024166760950914855275462659191979028185782606255308185623907076048544551345286596051967919836522254865259539607246436883205303419462347863765200615381352149678331765941130207471426524344671817980455173497278986203421588590919528934919881668146172975661955477458614302944607764053282902975607997860666564452378190230388017882568980369439647862289163107585750908493289416390554403686438719933563785959150793175499255310358699712234543595136063492408315869699136946767127474284319295199697692771270240331691260584574406962715698644595371349724746201310924836732100165653005753657621557214794689916510698902096544126055226205108078570952831779319900345473494965682564725761186908404569423073709712940606636976751915561155011244684487270699051623189692286857582689234438746901640937868027557192455656278260762642087286273197269817818581334271370039704687976923102040609565070474288943513175693694001019478797782660092186388945991119685189008703812584417489160906040659202606698595745817597070561026421798885222561007991470287771073830740675955823419623608391338424814389679618535560149711259944198913709661815699197600965255633129643327513920398386515168327238246655607584033467519571402185485765226711083111628657706805615523266667746344883382818129182672708539982482301628627514417120213170065653716083196389825336705335674406332985617614083702226773614487165327170211410227786967960344154798603018580875841863462617887547801169632089016520088845595314105771567330384217407988863827469122760001266183304329655409679251547878745220480829756065595009317267577226825763949569543714120877262682804849962535252454059104834715731480972619887640613318991114353491915194144720490301725666315574971015073146752529146031114133051812550247740147147334167921538167404870033659755734282346323829879186734872498260960327332093245255257569366765059921438742471797544467595219616290833743799149949450365738637530601557088377378955565518010278415278034693638277205094377586614330195254225020779698657444911478395594053845316421123028549757911065242497384574089618970105310048972788299425303148997436420106262592140544802030694188788825019147294165856123733370122483584266426640526060947825208940455310223091446439063992286032820126059197414289583548909157759816544988630806935533834255877205166266393040116668319326779120715114719644063697681796729658036127871720842021594841670351134399538250175167472620255037967523429861116150787664555882382207224750812089849859696171456900977880307462375198050145198183825952691242125510862639319367312913448629834888318583806571917559737183017621528480252812806548894863456448177502796468176862930442185062292646178249007553976287708748636369363393126974964490279833823794920019964834855620273701837775698107056307844783413189781002645334590127325443391185475457780522732132713835022712838971584807239382785306094527846147575314628507208516393893576563880259685430989579639509161647497296229924368015088127918087478110371446032731360111633890102182106457970743172782032578203383230349423741449822404366483762910746222638357721221522424034925196157501571454968212130664740133313943210336252437841162148950427238852433591917779032860168652448273788533967866143515394840852213990158815157334920399262908027413441276636515738909923875168197470073255449416758924816164309052026264936907146752259451991511692915378538129933771268778902392865092846150628348580972909427958453099892306595342420426872279981792209818453686990545235270445644122599876862121574649520800952400505634882359503409355926087635769466379610275443209830698363957689617927386182326955611811549668054188128611733437043179026411518685166503112727666645527631184700998391947313751775485684997949178764504512862488227652511643560781820213226484528998305227349681222137328072153415033151833672067196397813836668872610660623587906702313647601733881665225095272993667638453438101267279034366889958281778700455729384765336743724246752287151984160137502957901443456822458818141678430079101982351399068635996852485523649499824629390071587095950456251526840383670190025532529317014357154430585932029590045527764566834595748648901145587007509071825186494112160124973595562336746548024798711298804927275291708329306073572898793213345008371071562855474767894953290735116993776572729089473933207758960987942214314325457298008194095285760390666907391323438312857960705764480578953109345828778160376106753152474556107332694395723918599750847961120780901775121246416716642532115062059465895278905547167614285318018300579523294899067887527175046789826440089834659364483641525437873919437197440868182439831742199615394416244339914326425234427403606476805844182961111838220490666273202504463656910108156355417724455967217064893455731830225446508627631389186428520953623727045146402689425073133149820730044975371461655078085693061993290923372248820451683655938787607093133684382642425966443268416881701371427599181134448400026011000431409180493993737267452530880127947006336881906921485554667480472901212923016604500078861257998168330878477893130845678384124732713286964131863799332059835192724834875940335742737903428139667803565857227121746516627984088728892162762909035574204932885140172293744561081706029002248259701263318682214619378392957028086548919173485258137206776899442374679657544831080026739034838020578196907854887783490931684904967083937918058608018751574805329275158998521502106441147060924742004195506225224402789775758506614538396415973425539182412043493651595767185987530636384993412231132206371308588938885859200418532434534071206543293980152461757747018035036964226438359127448654678723590642154805955450158564046286208800611508841435824859601805798955211622658530864604390412512902855254496323814712898373503560574729713507247791231658419169325171272689660038940942795503604087910538803580690889658600543449232783069724951952882802037753670978075600605750924126932829038141161437512706534785358978167260446268975031310116423870359690161147050784008370688604778918201609367280114988867481771016637486333354972871439861530435180078151081696407952858776185627195178270174187768100381143881191056851882234749853385209663869729340631750275292976905531353454415561119921310468035757248021595008502775826793556179245071901161886959307902620516656782400204658854519899470587228933787965882954603377531904180722683621374291272592864226389980142371934231983571983629222077089946746071964089858364222528464888759580573339825317730983558272059451436305354826851057654163030057544322288882432009846429415453784452423933101010084291581354598622580124057288903376583729111663320189841088481062047646027964042544868014351703465016684127254361288080923677818136575343102935045023567820485426321851322907900073194953334623860261758949821187518306216910584280012965880243946988387627825889497737952133450287897318488245686024359204612649888944437713602878750613670313696990033166206559797014122546898617425833166387772629621774935264655830979007106254836560812620059783404193402464851661813694013562442732509878957386733852410920571233006902463014051946904236727714870318502663447851200017312799283660000866207874298901958172714035289731833105162110251815279300907643035372731584952566918194998614831577023597483827179950764258161450823619512450346355729729908581944744491288328151713744081095187505680804999693101846643023400459826827512807350316382428623844497386862219185120547779231321426636632942799982238551784525913323546529641036985349692467744414820521059555368560587682889357595397342500501295784652340235399311660523355871778488889953970431276793848535084037622591467299451907148007023869806192603878535955479008246781403725192154663726029459154123873657059512782918385582019536791753160353432284363799980722157772067970038412855756902818514686475314877376957794175066175725986180432968668462648760880650496556464166090364125525667146969871202509692545437617941287738927005271582472418512982446667059350859963113482939156812093284095602931907296567640412436147208282623497087211218660326803347246705069814991037771437543799010220282735890038277197182207224187371001597099998872704470139354392713597602269355833178149050062667888740112881596842930997700614049230913615300747178413917505164636142294659950887618368680962189144893970883553512098097419809520206691580128955592002989631630019217455484181057803995163284664125788468673364404318262485622894108024073139975653821260493775513375962271723158937750716587488379935941230464441888782339254302992096389243809195430472339982330669981337750083313981484982787321673021433292035582701510629860011085829572465427411585125738671623360550996094634804570454687207731723630967951111862621009540716321926344753669303448767856728556750604880187519207829838603719810820720880192823012534389749092329759669891034564634651598519495665177510524763635797546692406013692161320068313867489581809939629283851128862784310644511673447112001259224071102691870026775131049989701973463403403214487010048525427949795080350052030355902922319366631924836066976998007963645482736262184008345305881754690321089562937861393484705929451524753489974834651229048760853404064382115234427212986755768908874229934130081147025557711004390009219357956442766492903005264887247487464033321771144091741232431991824328970824738469267889912436461090318526057125678960624625196748715421644992367532671116358941089788283470743445858850745517876963504314370779671172467057608559537999089824806796271009102567396091132256230023636628977476622406589354934914896103499180915338963106496669667633004369131447456158873233218398962432536415034368870243812171659363659907454531029122328672390537659185142493139923137430243625595581652740638729215328684489960261382062617949057593946954872317740463400811681679895125184286665722567358856840319946873661699056307302595572544140182366775242459140068277056850683055450272422946341550613311063249859148324047439768413185000541125487952633917102637662307436261623241474817463352912741537606733917862938860470421874471971432865224717151997183834320626579997254039389087337272785720398300559980971657565223347536250264988365105433838344261397654263192300927002352148923493532411957149124030338885411606720770359020809335266016419667104560408548870278391463149204541261777931693414044721549872810817290545044177052626535248926964689370668825742668240318888032901321375026475007186639677859209220781021391620391717882808533360793892849250752937467208690225198260806539339766000406848902919698430309609512642429985826966604895407680822397989183190909633119343466074660036959689316586506242192912421582290678596243356163760560688505106707770356551090616483040372933404236606027567455031460451361322733340320921725858456950714621831046434506121027738281880707608596529368389901124316206158328863319123258676760734532198316736611651206923115688551098040326266194574701339400435615202675628457504751788549601594371793406896395390906489368101553408506245778316217388199442757777967091816762006641542361227671238944749423430991437410927561255324541272607073591624610683435802180147234148141198787715233701197942014007766493365040147833564800787074171657216253036445899276585169539229419116340884707939557526515685223848977190159916908837453708371975357735577994154637641832959336219530504640315768197364781694347978666333322513332073544277169554426651557382413073222142376066991060362437437847606840842071379335877912523111163187394719378459141141084515520005720744725769218928424452584053207811421975622718095132050836213314329833801645327456174835562077634389819535419187252901784192665515050876720146236809005027668918609326580430412177274510520522476173775102262598071439068446237248105319659117804198611973979201315923774667167226930238619323304515391431480437618705837624447615314052208354604574260994070540270801733514829748459707753316008622837677139940642973355514938638325113040945250991852087668713596317976354924693329388791244003139994612779022761490758110444556389507899521406806978578598300185800122751220063971160259915954982222679645130778825429671492183671978487867611989818213028819953466599751766562500486627029232624023763799334604444660674253837577148030098154844163791929312096656999303931702615279593304806517484117602725405384446282283305616557878341155736014397029868889405761634417314828259267589580762429099496471737202135075024641997648688623664538648222228800962408869108032661523553918605314946144832179956855167742913524315887986969926937001435318873669252432377006254138672664080163934231681944098020365198214847907934194496562281204857943400979970606005359549792690538142292476317289059943377872127123453140635777011529115283086360407131645019933669200107138051252853855367173522382598481122647321952185412746756044714679000310916318107517402450133079420190427954183858538320531367322496134251383051929524571853293221064536452768094676510471128091659248442071716327792722484574954141751633550435819563465167738038332056267968262920765205684002175410684087533098768854366399782371451930054220348633724718935679672229516286866464210319068977193882221023971967755776156639360790724863778948574813876577396602669013681098641534283538859723439246679375484106462309012947281825152132846375898839239800757720047198775182944453355219242579864094870406351448273118565358589603372099788365598319158401342019683497848025857792210134913398952705109075931852947539947245011890481337744666959030430119864991961639634124078354291740697592129687729217199810474678378750041996264201191164220756415853697390059567732017190970744656629063546549843401709395723439874005985031048361154168187608258091736620199385067233902297546855081813874777808135557199637153888690175120564293865591292551540681099079538174311243085017145320992804503687592752632594417731189305608575697224344883073508387987283265363411924107923074348250171647371342611181201434180424992707147834015501208057359484470275695220056136935612941050308082509205732458464244560760756127093934009181776876141249465132717533191140888037460560105907539329612279196395219349457118483813739675710058401759877242242916342414182176803436301913641860084313669366124491815575463561325125341003293102300274009798472551002438415916795806385132021858784994654374712954593455276562837849715955910056274654256141884138411980778994834611825171354731687135689589694171186584713992457030654704537419057991996543014209514652650981561692946428404438808619706576378959066163146326101016323386597389677821177953602680075630053337458963177490683295444547676014502367663662640721982608641555627040084251267571459915817176681587967665462173922752932692518100145989643509787002004529509578582576027865461967395992986815549763844589549669767631882371448068559932715244442788710473402724539177536455826101288226289693903560659947433426229126403729170449853496221357120368687872285351904955236319040922983809206340822764304229184777593273422200752280962954592075816076338988537026412758501851845735314182715781097634146413177824251451605918891103552036654804836725590637397991141059537040261298482489274378603221531878113613582595724060473886436736643860747961277039571685127258265584356256550615223727866761180438651257044034802694388499092349306414760022802730551403022328650833373632158551281771804029401069981592761612478141054407079525655505253285891869977069468372259185435950647087646527799980634595949925214786482962735389094571898961658126444877306715230315880892045324214901256485957280879470882055988354788732101432503160674065055711446587210479052386413392871168600622724108159744280483449311233979805095683756204505528479469930554220918620476761776277147986211664434204050157902127345249629343563404645953181646563874259763816890389023067449985862543980021113769360837237064893889375872340303832692753874536858051835430130662679538395783893597550386345249803107466191352583306700827252328107069760095703181762310645602203862370488687648796117319661596780450615273779833667642331711285140300944486965221054793911738063343488600291812495405901371783190221307077143492681620387253198814927262930111631730648386859146410540619601837238082458567118567579377446378234237895478367766246198477408060790827307660824546635374714687661901580088609021948136626804985194250981120962985124518274572130269191569618859201412819387028835256433109551406954808779689772693941517970098222372415350383599619613356960248737835665626713190308046351175454079510061660706391770179420263247964926860620395088161255590560606462561649986711602738143272964841451160203223409084534948058069143803651193730887452616578891690103057841508757291806535874641498585136873208002376902947845961784750864794486886045055220424928306283577198747933300957595431921250363950284171584671725602195413913066632940556961521021730748693209563832524460995373327789627160870672004939845607409323305450403629519499602390821872965479415766217980826868295315351312179903295687364960805723952698908921819939065006344115188891800753508994212730322183247605827572309536511483344348865657261788821917080399818738879195930297899080126242365392471939726022670495985893350039444626171970239497099223115797014951014131418697799190259440068828937623041513267288583805764074315436760293176024875301693327124378098510571830671269916130901179605824391473340053235996778396569808394269367166379660575559803292130107803750076576541244725096580128449982587560056102477763095962600304622337003803683445445721793832742300263126516447989103296926648362957413499386972613479375915323603387158574504452126831627024882221166422772870190423555977206246979730193345737996294158997839532683525872600523622262783141094227493871063276470863344783944744704999380430450998566634954611999798078207737973754035265151609049205624945267460936482246189475267792004167893772591246459275014732876782315645324339401994315152726914339604178556513429540541745120281451189962105832610997681168020864634055736456666281088461173501060415732946718492339352300117389757183361974850785547388001396111738040764034841178235179546673912488457617995508754027757675722071673904929882465170790144445320223663840056723714234019079478399881955775231265054351247947405197893020188577169748181793705187844908544417368041615838411531597816888328949393854748424846892098913888615582273130343534308325991868325636914812855858563919048296255142647011777160692615326870724371932064240358224217548187842119743505913495983406404697251348742732951262389675347374729009238292189957028572950703556169889011479721281110861146439832458817022908351276187259604462615899933590480610328084209460227021224254953657402072609481832090726493651087039101924556381308398257389303105831715263386102087988813073507125504293200579041318110573002422492255092298520134142164956130132174897471059600655834816819637126840738650578593565744712233016910638250033423433890881475767260736449638588014932182612371036341278531347840770078149449029996541687457771368221497444493315200668034716864793964850327375536834138162255562834844958863868181381427440689849169434651243762039162821023188008733229498512118986520461718281758463847838983304355282175294817514440264137081497706180673079660325376850145784730006846574510569681169833826816551055266471280650564961904275458779413160319970266418428081077693644021940803457345972925117245415295914827042092944807767290219814132125829143400306522129439643664916875959242657670993651728477964041243237926199600434542493943021801810673039413881160445916600608253358133041247227234707172604563422221122440715365845776747492489536835232210047685157697848932741804520685279552727332075686889147134252102550205258756496902059861043898656225097290635541346575546376776774858325978143742094165223889681080259305913234477633403567131086177998542664160084329568308773047564466611346994809157934754067868591566936148711914841748382526962890108216619180819492968926345224011503047631777387201609384411967315483872816955108966962870991837223702525603044156170758129938109144020455054473451966459074568633428144415839982669651506205944480875669856616583397228979240908377295114532001341153141623400227981315615776046929033049460732418030555354224492273025553400070683565936243437104989032891484276291048704581201715109867924998781464634208317841156818540063209877232955689674663503643153906078176509650367076321019294453683472214007348367310805505287443421467378074426348439676675419896825850276526213972306296932174075163889067230592727831612871596163434882837190946977631151722656363011742282072173773145372963874496736512080378039241193184677850348895939954267115615315520034333053308221952329777916376131181314326312745715423913909872226027961927954786929493790767504715044889306717043333566817192831789356576482761963545490814941897495255069353149236479176819486128639466786363728835603884443794513878799831257538044974787361976566389000775265652097813161206229228908257111091282136609815872252218194473425055209954137683519608907298514119188783277221528293978405773036190127572120785346085291277724751997248134044846195823417654382868535298111034787568963102743463892150582775739349731096684265589850097344274117318755152101953849869020755757121640433811762766818281077067865854553183134893941790607055131738838524217288324140673964464463403154976212717627129416891068121434484971376345496692514610959332452484108706598876333673186192052758018356405633830991954430595024288323990800192044542041525985447087522541147661577381635607176410518107816843881698025346405484168468149494823487892567977847277978328791629277581481032905042181347398288608349778524775508465324719178711770616698786410710334396602876430461505224944298359864973601741579909481889623934553785987140817944555115178689783500320004321788606993337819140819281133894870463143599470787166372325977879242590578572453969029796855816977594413260159253074130493558127298399398876806605236915130397826562060030550561504937012537874963631646212137568573951267031015077287396951641065510683555516591736411830290586423217245478159586947374689900143943426762256502248196652019370984223875143510506082946431394946850009318265730644373475487450590929335828797641711760568212648722688493909756121974958676860299499178232545826556283262935746686762747159401254049662135989568101653005912630364557783431365655486113013785140550547319151214730679895197907790925820744849269404040934077121274942944487114941819909979908995312603305126788016785358386652694354884275009537386984729060937766181191567007659183492028667353497561140673297714765228507925257782745060758832800917346482205190509557626907221006745166031558006314266426955104267033886521632083765277692218094390825205971583290829499275424389409467652300980709596418886520441737776286970260245897792792783620246264511873051046543313919863713538433373721292959982343880010299504014483633704397959266919093629832562415209975212364104906920668520770117287534748829425561384919022091446132954586470783037821772054694440059260029793933724501178365090186797118311288323377647980834467279162956798773940312013691638565598443505091068916508122693044339559954671775112847363277069018863822508262755975107132655808371531528960751140686471865262753215441451697672650030415857719321580948143643682768701912740135246558634945931790311924020326712162644833994714285362793911783965341178811371409847166319326848283471973359672332000022776001595118067661619325036456888168743462648959817088110280673424300320455837323796991105032625393262625741919351760736153631783515281641232722178916546352117371370682100668120071400320426325199097093616955130157108714874249834027653429402119265712778230655204631254888796622345161911876794071437802967581071411027297188179641245834044517806509465718654405443579680844325431523550257111697957655757809442817546718809574269082138305527732152489672957067363431789077905269618846288215991374160669971495626573526559915794342405532453935812844370268168133243404120966279822214509518738411811824176990626511878168916854612181175535039571970796630235246215919961870566928374373792179449419473793774429898434401993027862829875435053267654139316489893113502945236163299099026350570272425083840439504808195004098296330089966235283174893666868820464108008131769628379528332592999440740572184801262317914188740746850121369915676222291490966350025576308945046320149102988529535723802089445231942959593894310049932124717923145039080064246443248406413859811595823117660536707462759010288092624598286317741169436976447665738472848144606583875787393646167120177988222161566621806319978364501065533491315789885938969211748360910852980860467203399248533117179792535819900214026925094026188230553172965085755326941430174602132841103158918045228954986713679905555004673340498986976176493280129790699083791584588086961299606601402064427365636785967611437117443473473113886868518421541110261045589429905220320069373134025235069555775898988091879022626600203630566396660566949575002081155092654573148714674843995385763660979172834391652008621276457302407564957253544396942541598730827161603955186486601411449056387593438487726345689747755831286165114147264685857286203926739541046264180359071367974854692240874020497008846748092336957289780309921161711739577300026425938926249223414775788583146519795351043109354208182622301382303623836984510332145244937301678275099214108278064711301453687986907556141396916284651040194823609247586132221998103426501174691368491417714163893478171499544594263502697789721644481303507778459380311930396488772848248410378860615372973581283616861735629931293721932920777621121265458250074484766686806072045521692157492547886371157076796834263789075168997699041749206092071158125117155296949071961316346973547008470435163578340179835026731467503816008717126693232691021720871636755425359707549790510595168761982786502401797460358657725865541626757022914468078190589829581058207509665436192211736504272331786436560224271040880671933646272838815362650280786786453321275845409331892373656918403433566879836617552214635507476296858163099961142407475164419333665787776744449654587920736481849949005641592862621035623216714441388522962312278890822643482087414431123621131633170665288252248990678008019649495167529271827301230036067598063109110936609980006805094026262385232153099684282605620584898376724501007403918067007955809661638920890144772278720068369932167205071818156282639236374864195752573913517284143791476247521550996981079046935425150883710254223801359924390128484405833118651657527853747715036138151026882786920440157382938866197851481362877769040427078566773536757481967218378431840504813843601835698417954875578886474704593168368086008402638296309278771765372141924037444719730698542756214736661164432896396532241278152698279262373498139092320329673368590616969789279394954431221233183826554473372739769274965790344521995719998117102458401269981221264130090690326125999165684116106523232767803322777954123892080819059419735169005175822020292143483464850846764650094129932245055433962681563195505445918245395624701695170345991931623923268130187642166647641479327105510578878443221969521236939005425957742772151767887884250367071952686394451360675793840162846033866184616036927889329578109247387442298660702646531076608412818692341959105586750594936947436279340377613415767035115211613032362680658107767140705510409219407041756702214842429965715530924425824960039299218222088938364477491069755154805255436441546136913966310158326020987820887121186213260692612502053773136731212138505351548685338590382763433749226188134538285486164517981136597297833954471383313916744701794059024259645866953337200496725353273320601755617630408558548706931398613644881122790216836629649621043398223302886883070842915866355459103941714146682509929452072675685647301451403972014329809930969433257767242650260757527628480991915808587603094789942267990411120236474122500849574032637826216466595910222375593895065195480844647142460271203307058744419511640725328343363847092663543778903424464826876790951019447579057799956639149538448012968757138898252854073640001458246005427759955031764998947726137280510527175329458095612118910189073983082973523590359205814409138539093300099012310365487613878655595258435599696969316560232251727221351862524860683016561192813069829645642328439199894229348294265445447279469486619918385462916917412163106403654894970712098852610375623270889242930830743332704744810041759296478407989490288097056754963243317251820463351931003712575028705160033743295662278327152361684115427015666429764618951249072598544216797365884435474576506280108972476994523706887077445218087188893037684607154719258698076535363360891221690982557947785866561681401009863981447047101702016959145660860848498288435617580181252977257244112303118818109972130001982540661134774411245744242973115425393053042502529519521502183997366688590567251737177839810525023676366060576888989371530911809716559262908957920336232714905071810475778743805538622166925384801106373483076387643373816447124543455122781129838341714730570372044773788594458267656199397918042865811315378242650673132005126768293002293796596521596409579337079123454163684255092660361029973578590154696341564494001638381493099893588689743901804433343670608174207560421860723528059344327414658413842461430578302012438019531228072243125750708519244358933094880197927438533486871356322174652193551190029512824296621668671519991514560206757022658496391687233212930462689019751814058090358027311243575852736021447498557402391074447011487996670236605452266802722944713994617958104998541530267180388975347013729122046874085568470557960514943070108293400933799968931669029295948383265998374549699016053118404069086626099607269523095931878840816686935641465536490546529504504806019182639723832341622460341911447366077165297517859240607497984933055643854441834440421951624742220834038095448283001074250513899666309800179770254272365430894227256461284188451187746757034940875598230688425718488691414465433495513473311130451589826161387795527603024496645558146635477259783300411841164500826931671286655258564647246887902050208245517532523239316450903849205671865876618325044738264519627603343092340296782653204213357223383028691244597390538778516623964849637039106776088827650767383840006773611239631205362296111039380482298950476131417806648290485747649595859378927794481510650020194784984339062910415441781978962573490082732082614501509674377956895131449105652463557546422429098986269445014403589763174828188917132858579767932184751700038849132639916936180478559210108283923877344724738252271658396232954873182899781306976968607939757547650468894529821239351434497122204999096605834078723215178482248073073994576350625878534982045650981530386953543380586860842079231186443657879972266725100335694830490903056372418571632649900957268225946761863916310342537266187037148466702974112708832671212207078960784302860734553669160836265554452816125909884564415172345064405471492562403736114451438988884540714336131977993465824560104542625067284868441784906678771159363192421523934162268152112075855445674345885624170950471529217367265582607112353312454084667577019858623356538610417471523267397743162935523616145403557588123512768882221340760726164862790710550492774168606517541102644684579452389841104665427758623999378079647383915438578317349534805246753473936558236787694489824701897056822397978385328216872889577167282471413191256764960158021590824294207029576516675703577848302387612287457717887854279139961148348206127720071191804694430379722598140108715234236854677467201544240531073722633186092269806056798160236730398063651543385624883343996077028856086265669559288017627433549503879811626684075455931703965559990132975047010397665031666148713492987342973355840641966067975330037752699301489271079776768898638583056559767374982332282927042690257925324264370818174171052552109406409989654431431955420671390955581999690678034720595459043935344812088183179962175982246071114252968723643993826469029899512164739957342035737318434815602276443264151326390282059851280206665060405942383443812241676189915519080960940264264234267410659825102804875945120259693332914156049718891033081028188687453782397300055435145485420870718991295052885420395699997686595348288024949175578425119879016918464595925818829963293575224829538325787235909464565819960507277112365264779152267490327577988990717371513124448996363971326577051864314759042077597688447700452722578736823519140300420197324287468701647251630753350845400116173172376499460918484160148772234177336017078906084582105857462098481354848467913582219733865390568830046734238456122743290978664617696376550595389716015196576340630617439604741261162716429544468927294905915682742162688593864291178780679013057961122927932888752084075148832276354827905605351391396723274634227051840605438842339345881114204788492051589579378979583734775140339016251796894022090307985785915170452390626623188558289099562164824787513492480631617885508468157185854810400310721248741940637569190239915886282156543812478792504798121832539972885885970160757256386482052758481229732561301617582057433250465459615420526697602803982309614932954742242341567930225960360958914065730108779597751689661600161169252538082173084376214563609396992327006994454737314537011102693398915274785607093861383098091622067243853534933585023063145770595237631341548060213047776876840704112860367285682499040116954171452722606228423038056499330039488267803198088044470391907311959538795651551739377897565811960895379017333982867045662916059136478758885013335671056071626927472581153861109037146663764015458205538830027908347473974608163857383965818885731471051306391762742054632507177990621861136481798294025153271086026481984357293173876691308636620080133052657243954113268908837973988316526843798033166817825432012771333886548322570762252290927691021184092580898995693931087219291217077725783878742142939583567934329815107314832686874626330173806100573809980933011399827401082562746238251836952477838076843194508189526854407371889192920935249334589529294644309286858534574106319057116529153555932346103734485281649223684971036090468476569745043828181338717314787820078170194787835451228666394050658074349106079674976873729416830638940475492154647289821266218627401809347035801629622129502754178483732964808739498508261240870864554972607706523532847226273503503552268194843082280317561124507136080322329552077116613634172352574045718602748440501272113426672318555671170188131574617741994012069848518936130918690331707474411054960470333126757753545349343841242123234319147121314145788226306816781087784761323436373202413162378135632785027978559450946475539895995541302288472488218947102353463101707625579859020606184744492811465458962675867396098844116988991576959723391071820539169417587025550149546013834915603569037338057604215917568795543352706893603557905858015842406618379566695442114267723291814586283774972999734033836258797285032022568897056739435785685974496010061195204364411257967909786776041177847028087583694698997626493717781217026784655574951032284740481833537009539296759271807174341592543571598761948123894698674821933107937741206493634192455444013167450632826295380307511862616297194570783530795963189564675457471381964829235412123490964945382304084422113993754072817827013874418159859698611881290863467617508885175026515039270214148714539126438686075216923129107162277211321585628475976919719593006970005539350753169417524892643995824675052760292051029315698259425753414610254880126967773446548762361703950494981165513815390008861674024845438425291568708544880427733317524861810123335316814143158080027063160810294064497999931377001970596004139654207471073642816882201709739504111277872872872922645389248283004299993021613085846321589286040974752643798518353457752230857990983457663776822135477701036428667700400939929769758355632393021011467450837242094078519333345663390158578205672585512620098131093677963032147191382034754671391524869429840937256574357337240612592094929598311571858870132278599287295664784237469251908345295549222140357406424975723045763591443395072975437487944931960645117380699307281555604368863052706237352477663810508939348637826057922055037243116820292319027925824519406068175966970340273743244664235975450284532866106379510548657508878941343736684234710844657191510594742440630764017359387452451600099847597538962051047856307833933430636557444286592012201757470532985760289254275447535840413297859578928483717709205022578807866417431037445802946808990171899209526494608543225253096289091910879118192065352408934819928577227788438384775189268686195928361590320538703516461838829119666110049762210753405292003655049898786823247413490481314011758728234335007142545787732483788163506399439802497505181388313224580011162073459588716793669133567513853716197685849459309613563958540094219240833006098513688568830271916711106439417281314978745478293550643252855868053820153372639824949111167801084851604717792461858397744151129893644883077807178552411979013060492001415431594494449509614641260556988692230354315312394549689869296409493378911597748975869086540533052806611867009268819628313259438868065925925518756047297440308840956454792522689475257408272391333983053606953061745283218521341961418365005146611300365197311945138796478002662521595231348513393255126578949292916368784851951667817717903809299431360705332371814730985452842916018192306747379848101051461644883960406401486428102492476712889120442894759501168762143209265081438796257702448115242148139934771594834814936114516754815133976007838060713543567277976004644636970349646870327175700233547329191385302672439715058065992433065160874436733080708800236410317239827868394011929750826010354900780648335895912900506024691530547156629345702802121679259484912801826446754118335075779187890451122542153345137537210328099891823916969779331872477035594764344511989615648215735000111684955188431558649350675783058764093340038527280656704979564936777763083160864425589620700297929993683192723734272871432662161869317724436677352814036477947995693597996498053743527467246321107882994507820282968660688534242951897437326344328290099559628985473925496041354963602872059279400557324406808137355112951624329994838944808767922691169027871884273048758687893416882965000110543555880551471180336944068700001195069139568055848500493224988125931132568214629355889211726519583012666528630041293138833314188863868208714519833973567081059877687584850979148763332385381379676083564152282826743909033784535011276935010606578923058559794454289304713242879453142856626863532184478038364473150210391217575647570907421623044697778045222056008347981854256759980681570065678187999908642357312926626515370884186561796862413562627989729020729512333989813979549838893980563565448939076125963364486254462214586525643725357479718866564710648299056584662775593403070872967248688765862105570068319965628465251360493812496868465829888499602029120675022225698840223081021193838992219230482981187466595171709446052700954205224251186849029730655324559514185901173224152070647924653043408302644045852520685890964627637747548231237858644586948400636425540797366230581929233837333367255132339242608622108636711817513838702911336527945401439042271265139167017857101335803272633841140636525505462168635656970366659508173720149826151889227108459492078053298317728810599669679037990614621953763828569501815724377105962896766681298920233025509605711434212754086608531226198812552089028941058440503050284063020377640380560283632632812620991839223496635637233529983036550601980410792835496607657452115535669510495591716225388499265046003876318516946439287745780850400663319304739111519218126165045729833903474579316492981659174732036656826809341920674238769040342028002556529500901275056679680667375187018067673657703188588773963319064979987087532051325542479949639340241775042909434928684588164860602262668346100821217174906864089124167201105296918060845076780082663232659278875604168259480583060203121320274286359495990714079437472078925450654890068232074818813620079821778854500728738393373411896257968263176403840676390785235077762699877155929714333733669099588290032529470145942204456954888953882623560715098518798511222039043855647279479087938827609336378441656901891691323862404436720770232426040713217966527330471003964552028193634842274438436796811097396577846750946435064770837597960125729024908187200581337501946861198843685313372660810228119636610420019693255681685073262980812655518146519437132155620607910892853631327411752884630436963043249870748195671644538910625256387927867964429745006718933282550602279893840673285679531130984896264869064401220228388134600395269137552894739691502162767762723213893802927911420108056285833325717908560749952056722969250583033995248160953132787297682283135560608258965299057492434921490247109211173774978709592150991420297023463995711753402410691101829799760191527535291335870833207960484277561796972831412028045596439710495568685824013027687410855529282413134826492370679439640925684861411009535691676348882580437177857487744553043886955564831418749272534677172131466347240066701782127024739617679297042955285359173425948483861300756600805996516474653306994560574564163063748239415429756622540238600837894232644457180294306333304641982116481754270456888897038671917471574988054298730697744189899375032692234454351859707292766582553259429366270206577918108296456838147324422498089626762211510160420397523708480139410952517655843177921746961851703485953529250492449674716430059401151978791210030998200065798512728257544724658051672060248917674308546314540529696769750165536665712195417899933253709651651517508692270172499399558394241082569782916923456246248476561829482941391309715214104529886761992596494832244476057485216093310718593954589528992123118561317855721394355468363031469963400850586420513017894489340062289746807234312615579830024554678308563514872770850691588891153202396836760772236882479949988653205923533904758215817486135958155473127942098429656945371331992722864741369048285024128660201853512335298504744240530266056009312165546894624545590141277212242267593743035832064270573933879566356112525919755067424968131053259563501502257971963213268342191524611919287364653304606953962074181844239185321553702376146045567453577419060811163665706801219740234478978920248465557644958830906969476933894218049104664849128399269119363062514822791389349518613431970632460462145397331196829036596268142693526279067174301498987993424686063222843114690056667034189637801590789603625134664292686077331604504924236986087191523441292219679016422891773900434449667982824816705323352264095637591379745474825963825945516151360773182661453281976872506880776881991761578201491963876771053878122821336088621631813670875007994307874124922921054972899392530326827492070482606643150049827892268110625121063617172920386533075493608392102001315438791666577295612752265764907193971346388340636084271502532128549284846455090477089586619829495008381130139677462896811700923362175172633137024474501542112685414214074069029203543933639460232280228237197046453583116763229952122344379314143396735799623411797285414654823534053196586062588705872059426791489037492445293571240574341516411950164940007004169155148190021884198658228177428499829050048700211954282126264313765183345790574590631295354559126752924786497542747377801402983289999052923656622305409319283022109354313101438185273733983001253209094856198200619051773460851482920112995777351780969848838854169092588903915192017263990237096113142100304791394056371262850151554167375623159094308063318359404185052044095749737387136976527835085830945971998335304489861936523730145278303250736963796725609174621677859007724700354365481895193732680315561226030552973729673325979475104225541079754201260509609168551607206072332102876856549531816621979976379270722040292335510108857246585498465462654403421669854199417748322704991309813335924273099825547182864868975170155404546455483554035598857675523906206869739126804590158555002440569541063271036251816572252520120350831529074972589036068424905169593692372655985469080851538242870212602301924219942654451342967752235917278904705055164081594139001331097136948041308996071825590020209442994539840541355692972548671153420300433843212490434226903291506912360601159655645975328474881411999200524274528345726117046363634126380102709375902803659124127026322977378554283317823986797530700291947012219362432987587370195881547138436384677479218088286495037520560031238510898437501931543602924095667570962607680592492535647800620234288722829152864042453823221593753623944548415019509746301488501256020005926220765365545207158681885610958681506939208987510794876306699453530139307212670966984849354963138981840643988496491933439020550331287140835715069346813161705875297864899184362032920210312673486810408542888902164257964396319516305148530155969288197474898893353644322017740216305188884310054132120948437215991862026671175505770377136000683319808200101192781885719711413902922918075594404613091660051838188310825398608358708879871225132075216636901601308674557003535720995272974991822438611593659851617234397153584570523126912277419693406813416638891816620815098908315736790824132703324237606046523612569407811028333611069609314616343976971731195465234520435354377772430766408921170303942989894335507877903318970461163181360520414461028250153810966513910295210591169406225955532223956280125280384595745158188508637004974672753322272362191204749300429551232692656891972827598507857756742810459832082387135631835568452461527908087458097088551366343563058118600971710640783841720714616592877033754457301771324845981676959786614949734567550999324035343881919800442034643599671067556433606567648926580646555853307578594157103709727885127513973677036193802363378651618273371089958230685884695062655010367532402176530191798836101367576032167830773944818169330654030838269851090188919833563588506818708029170036678048309563335934175609434826312735152332549745569128301294021130918265074009989530832670577677350838893475547688385246804030856435068630286611795454847382804841652487107026155758794435376704708068817621976478381068189183446104830652797659315257745260597190152676992391674683813825291442718103940499410840747836076744992896453524758118420322138013650058384180010175371158471343577932937037253893528999519700197487798175981062599675435131680687498588840304199785882987819687179265448748864607740757118201950143053663224058874051104815794207812512511528987897946332204717046993404312176851942715828413336106301517898694742833789499712963627652417968005212547693265256103214136685070726725387765607416137157028582968078425733952128630305074426279592895217184715162183014774119295063959549838601376362280210479058995144225929534220510837556588396659190532075085877084327197497464911475511928413793515516411369014314136891629302320570912567879002908945077673250426987480345708096542421907791056717037301924375885767162426362917645846312805783645468616245006869412779724251656856510511835916681689553185550905533660620542414227155911836770078537978509967983689436481154795615222989371284959276111760541250374644632742685323282485169943955295642504307206585188555888870212278463464225079892329319308394379397173033263368005970008608148054282944866028432673927461659456496495100661827320715162338732246826731676868639072049588761770183167830916183982020541072187936697110584263719048405580137020357121670487536589219242295760882362935300577838396519178791443927777061939135802739071747002570648062643883265544664473649881371923443093923131478777904458227805684528905972058308390022504017390520725790780270159371042298058864493440372065382031652983719046858381287219819233171854496014147380919814745171641455172049063817357825930249237133958580322031515744614127604657408999236934994764879824906850628049765364734127934813148356332220494558137708059444510750697290467036412299306511183777283318759782150706811352650730118288033548306391999640582318171394424080905325628793573343955989849395701200009916626026261628220943337748315262699832653982778429244644060607375783299100512937954309238491381058105396763332286260662631284172301135359454699523441600800261049217837825468113449760580473030476861382631337627938930185808376730911281268348507904212322749729621336426192217846632028314484230665418099988703746880710178023369851731356790934661691820989880404542587418450691259102531820775274321939755366408736555179361316364577297224107272060777132779201539861815693843430423673477783236867860172240824605599545269849563010677153444709252381284402436876299062607977504398566069885849682315776956022725875707675088780513952480824517090062834547034215917199829253229381355141865640266897720644411929516672015826752116108648789443577495338137649857345013147085869217680086882370331412197775258021331759961740432235456727757024606660256929036565086982956596827950039231185003119791575499205394497079878987010189513160928606971382351938010977171890738662358507645817929731395248496885433231398191669900585897657376777136212436173571366545008766803142201599279509268647629495110524995060680120544189533621995159004302918595511209110947406899715894234021488795167992362281029597216250193065943533533413656278121095664224126687536885633414266818971560834108980050490528307877851075510775582932629105164352776276486351739493907132441819740788151674784277437737106937264872190012328490888901161016383956103089780208682910268676680100077941643903855772077963500920440006544440302876603391771391555415528570845475804771148712438554262066390079842988602625375031209183888315986175215009267787308832507733691259863431165469722430384040474477604156391594804382435733229632456118321422264628268405492955507227077406164642847929799535742656340696117997424682631392552325753765537653229910175265060338261761060774473470435729267955417940706432884340445011619728220802175324538385681076260993131708589785192545100164758715907483771952924451884960950829938067601917081939010714214721901413208004500695848399273534729918971269395800895994812746382260645709025239740472126287010739859190967921658128417610164597528621069519963426566478316034107765293507324024620439178981744990764712362075481145780032052126927814570745910536278444447306736195162018488513648207832540362855394008320544536221140836778829982247442598669585507011728635078954018799655978625877548935489300289383060793584035222388516721843617469695768124063279546090068178809679362209849479325747379673103844405957292448248093327434556481736916209305619220657181438968765178960453736458771802060908216316556758944568688654307424398313477857637920610095168534723599404725400025877907108385995352461490841682028857887843579045262474975713011818384517272852348890627482072583529289827682881355278864307602616005102097281578327181783185398525462891599751570790809706097106600908364955845010529656897511873585693618119653724825415529461790359351178031267121117323114330857283465703599586757829577077750735777975751483489864795229586513340175121617912869184645301099653254809031073707932682375667607615451006839105175133152280242003896700310343447167772740292002104037481001152784393713919805806072878977248525763913285462489442091119547086503461539590232107404605949217662112016398971930540291600595512242866021069786175684026434669762817690794415666182612401695051211013331371000048057305173430970252307011498970581534151019152702332216809013942569937675395093545211092604765298501387947587103767872751877792139917628253489689175650221501223027344589580665403351296910362523609809922732304464603652241008827976296561643877405340381689365838454084167432699366438537703955045215071585179588173237345930435816943743358639789652678747578166166209067345710303594310709898465335884444195274116546748174043383748241767251422036728213788764431906241218227430562797057553579363650321724115234914961670377975509357831788349894565833008750937453459183208352599157399185150540895767549164754576483039173663466756832323265163630226968251577485263515618865318882085281497196830215413314965969170686494909786408421748359749892589966486940102680253413273344248078062603585095088008750284758464452900421706329582007899047607887025436404961396065685376030918472115415339257900257775519144015506849512332210644227750332352828221000142230374612309317346163833434681266441454561740799485667879226594689991782583063475845610921839693486252699909236402676553508104872050679253181366309961464206526410110390801688058568376767742087395220157807674995977456837568125248837843862577907782775945763828699874379881070337235197637839451849058532423330709003216818738202000594354142723170529147068985453630027486004949250558316328590535230820749664030390325864498452161193008040833642556474330024892186546696301770023820055611514347047297325056871371687275368673783872701782523891743734630769093554325177913666467153632829572005253063764533826439118622437628910363752994548129592865855610971062307595298764951493360446078439327710408421587248602414047155168285941796928802942356237255817635996444283464178050294258224727243623685989691153413585517599136458171848446608283104471073584145382618573171613454734097084067789650836736832653415586790858583759946943816990048038455268789528435091304616606541508186568612317444493876441209891261843556530934502389220034612017365677395812108650972501808445367949743770570731932965717606974845750297604035992590872302670652258245533458082355426361848698899309804045457375392453300263302947061298947593777497857883259499688129386527780973117605050480682088202727282317347020199964187598705400416789972252585460548357784351080351897448302697360025868043433339357875801478844734014473911090101741835917291156185494496366556914460557470387677532941000741271603108017590420820248389902119920957387918832225754777745008680825791023750898487988161000950938653383714000343302477991544217656067861352092745964188701391700434357354461674073566994081109362341218690709591342995107813120479278225044024662068289277794173012213321735137489867792135255584415693715099833125967160198834419322184018616507234558770415247891607464378078039399522613472481426128988900294884813950600717930727879312863797985826090718913033658893076331741618458803154400432153582177260988665316144832394778519964157442293730264120343058765730632635852056033457657399305411329429552312240847577932533716304623695125298445561074389222702246992772329473821858532472696547231909290335053255427381908394114124599691964350476067564985281905553693353230907737170238006394449289770453445534381960021287610435713513793798251942367826457631409208858709328069074949971393595991934878047121455781073574321546844672601954514612293863508044030204013542887846082086358004246924706151030626156817997693110292689377638343725797335536481348351748611589818858901418273645601230354024932291596858680090241563928314719823543132940721247898390843678922172761477997036386102040916728160144595881520868457285933361330061368300714062874445055533652226070620177687632990440179312398893629204275031381762797948812476600322436463034939234224423324108855339215184100208245489785360604335152184519391737435878780842334725006652384866958227362258335478888173383041894975935199692859202215086100190619059829820945089326274346597878515707069239654095766220334896152098573715533472938080882483224548858680491246398775156533041783726476057091876312135011123676408575164861090000203825324438492384050854860155599496358914241562916364010537400584688705407205970358987007376680342050054413976919024349601497000587717251104431539752107209935558661043256014125391896376437794790812462641272511512057131287243193262544915857322906097537766452685032359747938359600050558522163328011361338101811924508744682232364868819835109530926092278651926596487765916730424245058333839739125371051970852707047006331247483806272742795974166101572956171353334582499667868053720650262688556636339987598805112332108258381723542983507862785092576359371744697970030217182861927095528596808599616122707541760657771532350506015515013216775140809533699938296362644142228779166872212508530929421631477090751302522436806123464178846159192792726815833162737425586656249355942767987066103175822735819967254956123744828559873902160724967298428058268517578467992695498664408314271301975222627460374255958502411125695219125822982476225328624199984277316848289852727936245008243275668354296859966698115516133219918403952932244875782360508113024028141148850627318112899406613038482456454276211271324964208623998367774392856660590199694319863596366174249546524988902310923550131206199874264003150809942086956823244772759389763445610026565646061957869364045853779174897795610212182922441956013556199634653740096194607899688848391942476231005297643707992831241143398942552665845935214074348342808211925706881157794386632388744478470661798391076530583074007562419367776224008674187362954221512756592286843174591318796144215812151007635942104206752835797026833971891454778647471987316458914757874749402018687305711866186399663298591154224240459694108411014467653272531695354148647666004841239963736642974893150498668736825485991342431417230505644638538679400738056527010551602903211372614052013260738001591506409047704893546041132940610564400938813248034664195884279594311350146213823532068653766850434367949809395827871771950200501218868618852713202229965498047651104360603632213490635590138277561804506726128693367436016998597165526604072372829018045749049103907418304465386122425569946976314340592734743729305445564768607145239837991122941033032344093510726362506097307567883110447210440013771288970164435395456613415565241261536293849839195547061735988976922851803965937877376251358717412814414148035241488667408764800520529449036895894981200655392750688558183424314920268715597165418727298156050031286322674350327504075482578782205870477285927332054362573625553303754822545226277965818493872412605481800097485820534393579821441336036521608752944643401967043641821668643888824930538471945949326852053075796465821187072199603428372435645710873650986302394884065360378285598205827074482259585780811437539109105552971100350102733400776763021922918025901944737867128131570770949866923044982808439948589018075902301307791715616424121129323400320058566237707030963301294208751244679477184537044331895556359540238036626706663830675560495540595054898814250714037785164195312882812175223124152034583990507667120385598018898666370249181936413478938214605452984220115756480258148553949389361321093960403451511710201707972570333773781440569526601031467522773593157809855597993681600972783982469786133384767896807718177588311925332910942562075992083603658923514975249777442296378528259362774111640229739298453684679772102603242619636399698172189054010694525013881479591821450328358812820408211942668261683905527714999956180754202485634749802527330266907491953686276690378115830580455071323387876500041925540137546044318974684786275305735166636278693278488462790984701915697803675526817863237184093578275464645206944425667602538239598798916731347528321665825389444680736960863962906220773721384431613582156045859532623455337567639313779913823587727915575569189344334236332046247944852188918829129655765004158253184368994751572896788200255650921979653703285997840334641697355173645862224835582204944407694169257629491879415669151815504239486947648019143004479891981314587914234239927148450280000755328618084366614438136747463974094080263288626962416967068575693863715797606848543121409039997751061084996750651503529731839406001228788329812003980284940056827118487250725225375190735931184707652549864733841643065954090176155808577331137998370275326063085094093605291989725316543398509701069882568835575455362584799390421139771198189104514561216439022510754694890803037944692994205414830139975467011378941842253198568034044033945827311430141594185897406151898172090387020743633706587384512545289862404003153982324072729770244110803035796011941347431679656025491095635209956144609347901570224928456743764103037279956390492365375837250350921994651330045483900635510639286255615810952745379465500670787375822869293833982380594824802187700850417810507244840078903459221924289469733815053683332247513392993127363199166349583455787793843158585895462784317700083762057895487741144855954335851223447324292305331553395347535314347616687314543015684997142217457056355359344085093717946712106772001044690837839863657804213800473201138354730147998231155451386039118508504719674566216636320727558298239565974247075969417576394552619619923878119300803284405142786096819586420615723520205909111166338250034562665766024334208840958152698175817004835497433340879453632556198847567003688273464881955146716278807435947016587431223114549946428853982968733613598372009389485594449270871819056485073235321625586183241938296807868783492438371846452619445194669381756227647453784223852029046312198538591163898111174940588438024580975911298230770845581757757768255703080807128086859485746786319070877541578787378586304586054111933397445269986170662621316526526835639424619865591749725835594387929038949044109318655749583369800210118121001955745492384319354354046204549320533092552689788631353874821936739338334584345203308306533055225058426627550773910633754413874602858123949283585292415186613775307958874101719312026028334679387323328606342497283160800389065127663116794772081223150142522103921735320640156114187720616395534235648746758023010818528766953921075363603506064445419228772472205293943062436085632133564167047885206191113529315770542561768689904119206261850941727268189492687433322464887581930184536653170349651680734080517328052837004714719525409421976368696221158704819780296620853038668255894640444011306166680211673903767244324863173988590047073418949680351013821584541600392375630802801647071714896275078617269828696497665672939643648318172915807662476799711531811286302448955409840600789952090490918862356531028621795066739506934668369372539720073871047080758860778131968858432624990433847176297511942967037426051676791551691941909088524930409572897881580312230835180268737486398385152415152604236139035903634698203835021379149268676494990325756667915800897550077700735576779791219815231765551879157209580382860785256514211767683049702796366329691965567825911058774570116576836039508889076111259333131496176137520265462008725906719651089777483522225995761126900490227130519277621690397364502316844270655421935231813548216247388461299390736682383169840187561596031618441714511013572631251289318437638082349374631622872211733203738156104034434136132813349539407386884085964444832123931736646981664216000356720760496165739710167718144054666081088574950672555204824754254407923224860804958867519562420059255177073443924578530364024705151564206304520575568214490597983700913538094301391870552859895913738530742953100630700966535431711138565996847740048145134930700378157681938909125637962554622103574414117391754375676031553641892333320253582970350307426441959542930586271374988252524293851086273930717939971192342895210649407230839582200862491149853120366258016874496946516068877854387679944517185325190451475326121008771983356437916961991542630124972390526457215784971811274183355319346865916181277746444097582764015113386441507646784638998567550504595419460271474955910592587062092385249586189031189094205200451258783521285227898485571613226644288216691756869833353825452230091956284699301665703552539993982120198008201784527136757315276429856061066745446968441962960236094227215619010459903256155261186704993954937937764639326951279988919725632532285625168380074664221608297047308067391602588627591750286039624199293490800202558869144484966078316800954210900442795008310753092410242908038539602867419944434225207667248847709690872702233644816953183639654018608082044362825030578246177086323316972704753391709274421782182135859495264142634992400723002124176776212944060291016926527617582898898517332742043427855358412423969935774305672602956629997785629069345026169848446910821524547931527553031349817027073523175033913453286141172159758890498566618622721912376631625562003789084466845560950791036709662357752187739086807767266614435404041866970856210251957312367286532384481197408825900423274213144249261515572548032243223934711558213681161311462969547900750459830005240290894616424020039176262961065591305873926549672248747021890762542036215932581996947354232446555725858539287972179280039449078584293224041925616414298865198720779328337380206130176886833333089708176468464957322040872445550550720773800199361292416412841320125425529708878322827873812792033864266055929069567616920376632090251415781039807512130534511937261157475739616644026846314427927455963049339268423020837310406536105340008643359963242080574212481375854731352620287698990265597723234594778981716659465120876315576232474477008918473948819017242702363433146073171129262562379854390514836184625437002313921456692218715862569586148948425359159590057873673552177328732864889976315158779889177723985249343929033315861122810219463616339074292858388571873869070272229964125072423322862570822189237982837868195674491596929901149411692532254814730891789648385101209646638261765102671146813851216561051977731971800661057061199472787816236720809705376248041092637725563695635878067576300499586318927593278162115940453661295457782820403889342135026963616588248077837391622933569193944858793666670150118559436757133569649468345680041577534874716178549931887921305166928823945180544500098123808653315769415271785340325519901519625467227313851320932209520746154281552738067214924156852372569093433673753763797275651207375121868412939406894352670495466756685010946811025653377575252699911850391118307345359674231824283106476177227792431747979189387134747052957639877686436446147031468270851536804019238114741661216149918236133168282354492649232493589295288355876148599989592708302270506037689737769290795302009737846708241790259568251671227395695154567967179139941198529962589670539398267774313977167716188854731056185230400735207859567181384865879080474252397530699571438763132677675229215229588695869612078175148360117205549762834628078334296727086217112256370011566022600768080701943346398002458933635951843327263541551384159312568214134017390024211172583035194452466840389195366227879454887486435199371076107400757185818427831276397828964972580517193241737438626898311587350939906084043404323364695676999521495049619693488124436995334553432453029457934008119903439508218287336732932736650927313943710559134065900414978271573355160945650851742213375913051881560181653040001037868122595634648597219882028255479829553544359953885060941914067630019410253140013005611729730914121774012698230570080368147619601775942787181323420306709270389741302467207219326381096647473563294457089534286536234997143000510960803252518374805023785035704308087499768479112726532009135174236779833044191604817626227979503778374856636667070465902788685077710953460980702359057638062799578393678588693497246424325605079027393199362842749138747231072164419850698236971237491370960152317112128174160164234441681395363541362233960240539375873710596059239513011662660540208409188642900973311014790824184887347995736664500802889844382694384165722205795129001191755636111318096936071485714935907107530404005869669351843273566052903677937354155291344692326595436035397092929252607117641560886355173334094488596856903758584585558938096953180283774047886668251584508590785402062022755490218898184837104172184800648492403995956446944652174619929350217750945519121498261698347104577417735345631407921280088352336726088945408913480764056969573557790116041034644440984344063183400095464206377646392666138276179891701915152956762475983920247708377178996705442901808541373382505280923701873210229865151005814690317831515424266796256373851995402606553335888411325880193647370264189961772307128485791994022669090253152431738542979682147743202876555481466017685026558720540677462742349337995051231868302917415673961220161694473957581176552950462404053357944788369669352993537933334212246431488764817329914834701155131726578800398070404701470378849317455672577314356489776300083911227884694240952812600376564046070315662189106328147133932598263416959109222483200340323499369768790972240758056979491753758618509156772694872126148695356760599159670988362499911190320866075289274961123606155844058834655368928278028572085508090443872673646257112906936348815045576120128578295016070170058593661249589885518155471738473288181897255220960669050347183860829190439802319572536431651106826935768356712723458559896875272940930608023327382333678372336493829598818811201916681542202395997390498530702567832172433578819302811265457775678484091672094247389033936459021989442624604564698740873369790164182952415369387715678559301165608722463476167810864309586607610598831208945138885642408474474696814320445506926594726589050526559542293043328563000737102926600429296326548100520701978984792735848342250833115032752774515363087138019279580693155548749151471425320033991641506409064759447678759046919699821718708092250191150956716457467468103804985308768493773230062396476663419843530681893591936868549618854559076734832310470736142456284264943219987302283490018642267030846052261421599035219622944467823824467491266788030781426576340000876788047787648481360393798657465109884567132383119779270069997603418278111425812707931721923095525417299614670407029362850690273907843985873522803479432221798409162361870652523012271625779342226022114886804257829595637990013945743957048656918420202694083047848386579763338712402863124499638137022072517957046284064949958542830448899824977188753509555234562600440831915028895004283571149062173667062892056685627777885678565244415042909129128466355706437029557700294385755802194827809592480516983456338523548347296131462888749681356995400727852917470570389076138764155008188654691258669802514668131707995065238922900206656834425721635193797306979507468711849091082365677447393587696540078753358604370766415329926154153301656007871311009284330347405798071364385616849323743086823812608080230600357982319169362149334872908795094833705881470728864684472690693962332571829752589907092422616635884214748216958494266031339966738027558553768677594798910222287937832769145689773197724726969157263496148868842974186656305820402245309765287921638375172640285897621357534753775851881271545406326466542482989042815703277510423836220417840057352373796220637730823503614768514153631940530055694682357456577720689361118165678106899371363716514372220935657577757115794719726723760583952617746531913302255837061421366152118596522125211694117924025956856719908645456108873891866036411724284709133057667604129034070856579974125924888630241236527252246791233909241429246520865236368098088639854115579717113755540841273260890956477260304475178144071849248675837035337854526955019290957930390571118896813387372306704386730770048018447690772322435972749842609278989785592706706393305616366330466187861278227238605929899024564126237574490138351090292991293199828382645059079566580397233176158906129738522934878957094755339154320075760991548603790453839355570121377269834276001275982164571266064330025722944201385279030758814758449705840168393973443233455055881880977140562174913435718302693099188709060283456906907324044713708313781236730588041124861519032231071066491560337932399641783866785473678267726383438895646910946101960476443913199838737437127585696755462102012777059247222851681672441966237357698981817193533842964122066531336114578337609349370152303331040272293558688926964644699766420090923475571798038813777443748137598099190678778621635224299214952227471699274756329110507275379526387738160602124672695808959302313810952935845469832353084000625031939026130789206299966065401264113913828110011695318445289478996611864559880829045682224074610647499929811978021974386947343726151743331555670933984662867803841599030643297326758962420082076089195237420834296831730185119954838291919675362505864858331980267586436934702100720921992076338997767314304602479479840266744627987953841163303878200664278700467382285580992622346558953927155629240018116227781626307892638504264898645393177530970338986282947277945348098092449997204676296528322134265238727680451444852646025318476495726762442777299423020211972374998588886693823054684038519353181792229989744172216689925209695843451956336219817477535560072898015696674776742782454401851936070102731137359849907827771090417105068633321973394005500981899809803750947512331854707277033479768987131351774108954610312876413057722683035083317691520899420093807925758891809243144735427150021536035148660178376588730769391800248814312331751080558023753368936674141407472613630726860984275228457669039326008304732748362566383105531908767340786433672606024880223185185240182533733902169482011014334732911872095787052430155470682469746785178963626184849507706989696437654889108842605241239846782825686159209441908395156276652207277592658978121704832175962597868107520876845359866845762594082914209128779095438553518333964451768976431044215370099136803983693511015209291860023277078700249909249721068319425894805782042664962721824843491511685227780006712964986509571302447081415078589406246776431111710194232609249799855222461280800884909925215169179389705332143438116781583354736557964265143660133903462254364509140344994032277943861405052343597859413903489959926880383530425960520563733878682545665124711558174783036658879124963319515931110182292380577566844326848376615086045041973130291866331670279779354191742118263182730539542419631460993270546754417415245293562180242707593687518956030589289639457996163012147047784602852317489444914025409432761272809164149931654233538075165102003220939600066065845516352128093441016543706900111958544411845869385382938685334027875282484507461169800579546095290942430138199054927740699507569927703083022020719996624745213683567227979973172237290266148387329469755230744621029421774842175463601943720302066548927483706648202092722501691139573291818087868126582114308619930323615730054588728746384779270905731469070127745736009413919523198812732347504534417015957483509265995106422343628134267868415163770188392477673373555180548408176710980768168029349455821123037385339313163310314229310145287866634337448492832588570753135173866536943719165985880724319986198793737864282895123069589396737893594236133659354612226766149415169877042657853766010923212971335750892778603426024379085413200101994356871198744745793636912736911321214894297488918643229334709872520191041428941111680305514472300165310089636224104156297091068214628272324378924038887264293546951048724521932431309359836154406438427538353184802027378061663075561488302643202038743545556576048596063344848635903177116785785324672289026356920139654641513854300872374679387462368519942328985595679357314945424360137485996402164087040495670677839573312179181956169504649229086684856018420689685511939681968868892452613462872422452332874557086090604855444657649635879417320291513736135004692012233020085123100542549776982691800400803962257750542226161595445870696273544162998218113756333745616991016990487254098288327021155094824625462032067661086089003317362750869006744316317451159760911011091213829657574219388905072230554015355707267889063788913469075326970457186390506425391872340935171559363171772265951674094733029543829125420008943826046172258135892222732671759919681726353831108853427945443577706935733492440474711035927936884345238668460333298284547915162026165187513552999106958015370474548800164041180374352652806710820939438627749135674490511635898105971638666202827089930482907798395846107858906523292440690023227439532218715979207386259223347218763011242630022619875629459605875458191899755033126496634110634431282529965790055569323701950936864964914768675585889146043335419730094605394245789185549181260377220675745104023873165934112915142202235741299038509414530906476979351978745936214149225333384340550469557607412945293869685111427248221891845240414112221908174696069038491364663975654325828627967837714522028149045339714607711672887340832551621764759146952219254730461701848431807269838188786722204752137462360587611318372210636875553441552935528183322915476661496275663732140505844657593197061697112524008302676427487897469019924285854230753867662635118940613864802581038759638436912923822315221064947660700370953459706621743481646236833683009760676434864216942493574667707758561217708292098786647286955235094085939298776170598149033615927473268785129549524552095488876733275336054549277039850204716553168940075604401803075952638384290046046131709591017821099718844081033164932332870029942526987639148330725626839671766113428801958275313675873157479078548683471838523102147492604094020382531682118233156087626492724062916009068091576030527969403057778712598318859001522030491693856603972194227362675236375302260878568026723030301386536545165467163828081195109717612933921761942048400924054391063908899924135580385956169033054367650024649657660946206893743981517194480973744951792457625834166791031393206801347350934214919284039664508455657992960954446461780344605790717436315282726914626142938221584237470073374901860383004732668579417785298669804604418316881142951361463307961088668031222549524795618732787872309268655678952132209227677371159468213625884137955727412194750181776421990846154514198962030159609300954381342857640540072008110755080195430941982624666457336158000729774040861966920495911680037593726485399643672803001579571274973859564718883850027612952459362742104952112300813056539310329560093589802662665163662099553437285921684913134957841561177346477044023326981126916822024118383197126699866936099007957983382877271214280258322791349362096066887061671079273670935817862233836120424797430650187629928337196459551047506458095936087303942745130895271635131538486437295968037974690905067325805156105248961396179011546131457405532103390305618884295602667600914707179138447798147273431904762893121324556778296506611648478960769383284361116486657657397665140929130647539055085155344341172065297348715458712601308320111319312272116062841550987738334972492468562736322240552389739376933065304130359393728524737030151820588630104314594923031620111635475962207440069459079505163295864988052364305063223960309587625380644251716169796281521228265917717838877294092269830427831437362362630230436516413515466984444858161692826951393608548379882111868018275508960607993711185188527557852023504686587888466558283261648408992467570338926873455277007117726445193779298785092841205729993357794405072140076770777626288255683137764992647120043556420392634939026583014290154776168266838540572216442758176320347800017749646486732505748886872277549878294092446893608448080271559750151848415456464340987969914548780048255049163865940674259724337287182126821774255659606674934256792027011765989017254088727256424737774372306175368743966037132553411873796886049412116584827151411463793962389297641934103718684689180894032885367555035493928474426861233548543441900054948414599802480405712346844153703279793278696509383104606083296533668635314387587716864370671589677990382847814448427743295021791314334702767318400569327673813514557190257449577795554079819812612726247724440044582002213921772943607839166013453689003770653966326820204120865453193352216811178171573537612248805203107361375461235536646602712919971927486647772617551635623365303808893255857431600323894082603418656395216606760015116310966140890524545036504927487179715022482666172042778993579015712338234785302926425247011838937196081974230570683625257683617466668835923700752977858310007102594945125920170352893933154215024316526606258108721190683881113834164504166100119637229349959086881643859220377981510346571761782214565137124807544514879008802899653995213996811176568826310109358733324657347501576077630215029952819293015768444973401617361319095081445055046813589799897026549384768476495309974945013936192887114926670530766162283057911113843634635216200216858976397801113979731309323278579257325384078982641369889003097839741547148720260895052849941029682796170153177195851428004975050426317841293723190029615410309822469623751981161573430418721013996611459964277492657222838026161174699454672055926039484340043497345808735333998750935783681531604896343179469176991067889078813680652048665118075423255317094235323346387799808017136526783033345369234291903913711920980512455962640723917196733981627859231088482163022593373419499077515144507028685950523242143819412054155852826792793976003974031140611648083334228238150690468971802584753481161481784050194189902193792911110608863107604660435588334865000750172690565940757118881615772506996382071520130182652508618997493696458548051360446247045334160653387174197136918732238311008868825008998633513309151873272373438568219121977245183139708771227438977216679156489013745504985953798760426740519991777583757490746666435141152488696716125841535193812597777195006174307577894787072418552980013986851610624774796559361237129177451138057486406517333605611805606491460562555460022985120132730168431923204635321871979662534128687005286020182570759293202503549354807064875145130688650391679422280530606643855003496442866874130499167237377600470766220324201144748694421228090315335273067541408147577352154937881898374554333934588231672394183313734421192715462481444144358030897878237980997281204870128472185342747536677946412179929277844931876085137805449209171525486892580156870074258856742528576439152673516444050085275680336357135636006319922653159443299862942706300414877313517428481751884474790098451793840871846392527458175729654759587487957327835182271527144487821125819613558115632057762371683526052610761200472306727605463049805169975086640350044059656296401249564226141584628229308826811684962453084979784772477769728310765736475352089149242151911728035956960888582099117497836601845410783521077391787411833501829991302959706801118251052906018871086033793254522233928347337653040000098188415236746002458124970789450939713880093798270799037464517551954426613441147413578278291609138532791076481185156567485801166764503036205638180376808259513754418393514039886965741932594648678913222373303107355272030881485482599019056993794370745134814637669699787640299410140961108618145437647347788159340449785353871226201231707573141721784238179756707887954681547849811638413139621908502614377465520879298356398516530989037548086326273819013492368895033467847005949138597456586606110994951994266261874646519389040358699944209071217510867656518522023835471005200339888028013733416359483416286673171383716412809456073735987400405087777432384470372620331039402398851131509668757269999272225201689565780094309540348473783959728600280355579658804061510657594076857278076670517323196540638784201404414087461221566816764604400016654548847200377066340264241150939766804725410671365037858632463901365686006365502788299021565870744894321388868597314596278240302381330375462900689172285870614507555104949349287727878400494626715853457623455871798134511523892091945902864569100804141766387926060685325415132082726318023729706927239315231121932176608893077778338873400744180859315952888012930763524213753483987666875884468360034093402220770876360736197210646663723426456364982762255485346256030208925026044458890281041727939967310225882507274711188392116886009480342011830443507966890585149383624445772750185812936060798276105638992093905328439710512105111853526515542217968950963755053276985926830904016542250099888510184253383132014704800977737457880421700057618765988930554905667432453217444009329934955274706367253159323459689118708109326371533554258830159180866674711505693627197024385577105837735813216556379630285904645526540404960207879776430339622290700325328917489732608875057544926989368057360433291702085355718868575662263970359415692504010454700301020513726252918901563662540819729114178972462668312908634355340134474123478800513249488983398607771573636751093842812302016954625451361111919353657007928470375548654177244197717769971601218908631588799837369052502653963193876827759481980606497582444204949008440076657555258977820267768116919903751342433273516168666323078379113543553131041242217868952865618124869794948959778662872041488630063658144142673048696015117105082322267940803870485405667014831026575662453654920670558091084638757195324046071017589799701107797829241883343598548508301684138564699822237286958564930678243434540542551012109080909269604146867238890554721056137300158927106760513095158926895052167724772493909066739737413896458404768463005552022633945392132646068988059464423474100489360572584219021200833354283021869619949473977591633802646248734703438620517653171737921800235705991544856246832751270884643828893761703871866568321462601784636396065629580763440906107406984490161890981066867098046168166522055212950891022963743700002430563257593825245081513277309999797889055704851082882895681488173237749997572895587181809458857073415489750873648701983124009946509977838402135530323267736598315557728273186447455918042458191066326524507459926604052714948423744072340267700363260444762116479544504585899412948803584246055391844564417197669647706935228810453022096457735322241251870510053268969590781246216483902142588662673173122891050668191097951142920445502209800578705796580823234639112082731372416679912369190378891422281932823573150890858841093054357568860674570529294601511235384748765070633449898396780692483092745188003137543945958621400943462910388338502556379115682774433409271237603105553937822443081731701273852143912047055445747732319301866834501419667281685119695044639348034085709076605119637579539048323281973248093761228923925860879709009905674001720808060256390691199636167703874790425719692564638841229366307726821443245491812075547040270966143723715544400712082302928619879105173705164398446780221972967541895143536475647822065462966028103147079247842952766768465556690235180789971401740046165456847948078103977829686582329560280761205601798210649554277661436999411845324740505739536045008168470015894430598832882270148859626559962119328683518545856236870426453112230137194699328339193159009496424489330172316917312476892239500476131214455185301718346499667944866105133535387235204609095457410905853551225091102418010370078390956922240366583186526600219167402715513717473485910616179825499965745305947339718856118479485356659128046093055707534869195869225113177054221485767774477683742069497715101491496050978153936513468379871712230088833213322034811702349016939387676652645824798805168207618719686734362784943924336704796102265630329513745619248161819023305284967343546007581476183932521910761111785570631636698335552000002695502458584266165481082217173482188371506048613886596748646518650200788959854826892145880514257300685726274691927397553399323947818794964607098133327043864387663744352473628328081501488871011523681868160934564155816409927224907263820148645963947239901364530081420635843060427029039943561598214199660799645056395183897574525930370802602045408079881923694612366297421392993485910921428575947971005545906130690357674546435289968741373261113456991427220007210896506519701770722077237413509396015467021432994294120276588931781279205922930272087845403039314647648205194574850462691893302683804696941201989236527598175676842067067291465685978098617448300958707589105204451373474519301580260696760824498326122924465443090137480413808900188629632249770080068457698343973011213078990653983681444638095304899397497590501444052291204061846309998256071010772127396302810405923715661899001650351729474819786373210489415671615476332178888949722656093921527615099902759710911713509527226646293945321252311727310435308689866672062839908558961070930468666725494307754223599695011205887966546144597796945778412570680869861928199034614661595840708096708715303206525218730773900217816767017762141642994415897368606282344662477450203879133257641592396369961024352303796708459162128211681300735056373189102930174903640800860793128945527596757263767958817045296300461076194335954061469000472325487633498784958957624242355491505548458180797038565628663672195963004940577401036052101251574146099606428792114693442524289218066317770915112555896101658599743831792243243355862132901256278189295953086239336033912198370150323676269750221404179045919651636757763522773230146634106277237148875025097767994269654683585061198982507831364998276916853446706354550251769432901981913960072887580956778517656654311192401469285425392495265704872805988068049466707786800371897911385346851104164203239801131475479430567801575150704640824674378089079360388452839396119398188951575260711930352958353456582924188420842224410116955749634932455089987385483026219652650219807505905033490691313372310862886060105435453735498585790966786594207362830966621090986605606749162262946980372864649944358471627813482130716565639353402778316517084905767144134588245813937936951429004972503084406152970320377096965007275321603011279710578439431894670678012953203008549404783196888558441584259656202444541346182671961207706721440813704894040828470970038998400844486753057415249920256500222311054538586305360231446909977097603887138958236802396647693794023608400197827472993880289896551249482812318045015318236025859016720925104909840878395215506316045611662473890495993457979165831565806419918930275832864959012410573251232555360851170713157018888630690584817258154038160078639082415475121012412588129126053249786701861524389799337003178431493515265044816835953212121423962799170487591357091853687057222513341928165938562010603463105812664908030578477021829014472440759074558722477138940519916769878955248642402211153273579145949470356810938236202374197864084631387885497255242885452331381673296865407217421111258562477644708442038130718875647389254723809389457115857285006689839019747335041479722452999827499497043143659814486732549896907586498679487353311559523772258913515305785121877663881220082715097881571432521597058260793748400772492279608920198605215882169015620607723854377531817995304321628764082150557578267721937751494993109504780610472055284375011312511903256634779428295018135376076228684402563127856198674202738099948359872067353934911606221826373269175905745910018238971581240551099636748084395881667440442823171788663810944471672242747639761722082391880240658801742280740298834747390072892362250375442122961044347200062236087977525663875855956703437569688253598455176872099841602982091285812020485998425113066615922137320439022690182788847779551267878943986044305029416778041183109033133802399852765618833052636176992510542040726575605653126621504124935796842040876282245708502056649665203093577085556752404258006066107463269645173046349478428722984263374246752410216110360609084750289990147120416282812829481043840485723247220324656113569878280744190737138409399543033309075974822764054304089655608738456791813055593692749267302161352603150935835013466428562257213002669407535714911614316695059425227954777632701360384086204213991875641150979138849412753870085986002040205837965026095392421322213546207865948546597363721542208703797964020899647202861229410910945839694217016619103320852799386526542102979877416330090126276326784622422017751606164424155917586384047936089662843189285606544563018744542788990549548126619568171931198449936861291947583995181755613909605131669191333180207061060743125219124041731299798097996390346253219777660291172933560716465785004356989299582233357444453957460608365149563217854165811750711827132091227773479849138903739190921576954662235212435787183523683740086482539083594897723351610702787153030029290877984681455551212057382297475315237529474878230487438260547989129918756764020145563983475675264737042987319403133126113200027398784272253351881210144630693356485307138176726216805692070607453774431018100722736083722698903951093860665032221782202121047802628909636588116686408198829893398390992645384479314428072804085435884745475615480786408785345012924747775572337601737266064065224598726099688430376594451420907603114818970802742182237108817942016384230149331085208751596313051112444628896651379555734511056740983565090983846800948654898111384223212823541854379615341888196790657511985009903957969119937748875947050974166965574483227276801788094117947486115593260686804785578377613235986441432344638478593727136831376221760760592989192360467277745189631640051085649260125388758718190758935251152000775135399943431785275331129926874658485138128013807525832670516030727453001234976332789775252893978122847631533783150347242146937599290864457213161134363879033866567322655322638367053957091000427729121213642839615951283771598242246414879611393898586110640441266498331664736142152419178266859674398216515372815554412671341484747934447629781913560888921884650641103240715177786749107904947633065465642445683333510265657715010431047914410675915892922957514541737008212615893629997204665852330150896224878916973488159175592664265701314473281527823882258389392441377151874245134152870984840530490794824313493061387806846332700654153705617938895473709087789935706731660098441568842702105479663723681093429613479407988977797274147424442277047062801581854430863902147569670544901707617501270340151488723866929300845281865919985310390934423722860436948545579086899805681049647945032076087423139941771983451998668325919757796624185670956745679570302701553502773758787565940987580059517035976574586668803011676974796493841893430272548212219078628643885929452079715600722324415079188795089410721497033355848822272876589319412127178318487294262190819350886475779473253493727169730104219334310065172087466068570483020167448539061686251495006149641978105462101256858150472296529380337327135867962249089795108120999166758622829614173885757294538306520019794587447698024881291490074809134568709359045041003609243220917721256286339040433464556282321892727914925935398691735345496194192536680756941055510318406371926580872505763974791740380316980802520506237880252536500039070017259593098823088597688603504749098101481919082178202221332075679551552016509363712249650053418965271873199019104448001037086228326154446798972656911254857843711303368737302776486146311971298377650097968405472991919228381656737988990798912991566613208376990981991645826712824141448152606699441376851516399532570931656847147892326685476019487774943942895145387797989495898533823908471689776148795483632882436614924338587567965155025865837452809201351368958517154844044799407816588743585397368431390312516488935714422020442712926723806664755012017953739516338820229071581972362358895273343508153231329425153000522908330279709971355955456467779318423620371612509430104033523675819898133302006766642230912946251865843364907143624298709554865534218670382513935111900308157333593642413147608253183068658540717664493265535042496251882054100113974683016867973030650624150738836007846480853710059177574621834727137125122516396433116355149111902285036284613483641343295950654005549560405082503172471581977404690045845432970577979726094014344736379063721059591541605211709445721220135505398592844938815517200435214639248445540872588177136119318920049607436967908554977781176768079687235913884096993238655443907917547825007069255006244529753734208331556806316642198357936242431450377053992444581721349847054917467831510623317538855882173796426109592312527920044411322268921748047902618131083469940719510174163529742302371768019961966687610710549370396957552062438866266391575449067193960511221870462990136993894405847718835541220589637184971747242963907641707236013049788101166924806856349569896605876813008877899507310694825810212531612433345927206529793642775418483684978606264920176866620579961402665950480818914109889388612503076998379097578321573225130249639441102962427630819755849974137511486005652564369545948571476504562838779563956518830422902843553128701684380784512281543977074834605785354928714851034698177691358167700722852453345634453667496905424537805824035225272998594117929443651490757433861805351222338473586653429416272641963085208981961998802124763039324640684380520928967780548514238189049211679981854962810672535233242404994742866535492112481058684010278929434680479531626591581566829427656219791258582757479926043267575592133925117202240892024486030481775801946894252176779884263829863500434164569116966510405082314288081431351389588599447394343887457889112343041595629823500634009342193381599291159235565073746514479517779096008453770215413581338627664544976710860579343490814556692753270318024362814100312816667021140545071675632647548896707459700478948793500633096871813701685993868378721440575668373353404440273812076809809379654403645551657845131245835982342712607876240234098744894215708109877001243321212128275839389411692349858817957524573592924893268321159626851975982229037716182260388639850362949543627781258131738593503475132885986312410007493139810884785676178733040850883097133058394208165269310379001095931485590701301724326163061049245462026045245757502467622737668246209175924000263394158793105021907805800048848010124977590346720825816936668730772555561842897080237379441767976149290989946415070398696962275647585827783567798256860335535002110026751833121827744356425451678472255501255568342078340687239456502735563014344393614872489650221630790842338480036969394070756324270787634158593530499031520162568129598042981791954493794243323736541149450857033736280560282418723931755694462245189314270156915034102021300177013306338681471594541216645421629549059378098600405511462473148500133935193281242080881477758347468073456523134934375332346322624691123912608404218981817678596254252147212804052521799369443161324754505917799996233639589494853201503432183690734136390995676079353936526519659538783016461000968878015792841769940798418104949857905687638456921902637688005425780622634378134736423608229368529060230881441710640280142107956729031701838011364948837865756703854723594652960167104915979606469515510882178896987741027027929824374035715462147494126942786954842595940826294288723252443509116041415169449256370405497408210648843368583807936397054864266157441929536809353757337568544444559827726561891879150368714498884795788475685442786161398521513892831799932065422961368419176104101001911700736213285859132521080252634904254001674658476224249389311508368311259244521554343059214919222027969272312534559356991872234063212559665249888581465454745685575023414983295130172320110982063049405519424814274467134287843956598451163395088893638975399894538892146891844510166339155512471203411255013767739937686373689819616877283605267458690438455483976281851983870494028658454741955827268889066052908528059861095735054234354677764091123482894569512589100392938909820835040303087264148823814842270786421725498304458884618586182905801501028201049477608902894846899955061911843247962568174860830869887404239155245376316992509375891413940363934938254020528239534332823305432487908724859402833929723542276047132997767827742782233305830645121541723503318616420778929295078309346207248218410055602335701284405352806009597850701216709801208804363747561207887034184983084224806865668990539597020664844368640844322262009575138098767127037456165811698939110353073296552985699303918263307023336748220835939839325540562565607642110512434408617433393567039929306301437073679263697695666623181781451059723332296870522730785546294782251943094980959791296069629108284872993150033906058022298136923656286484074766467594300124134213929560314300984893161914148993541734221321870472638985734039065498463891343709086284581574851627824883093084237944874158014567050742438678544006746071502139257029340726941076008262680566974015163801280805104150636431197071863725917318405622924398903421719425380563176971381316910079172137120296014061411960198549349468401086524662279957826705761911993479735210912014777683338878374372625135220231829641831820207650946725489052243093928578066751710122179284291478999223849990064477953393140411263037396657603721408108705131442285248873301498687068066987893920054897165129590491707489533560504279489549501568510769546877521809594820772816355222023090447396910968261319323690570505734771642285232045915591939639502572511148994872761973830455163903876616012082316276648661939579495419738658875057480822855369654580214222681434797504881615167440861233157980060789569581655898148316563071393328259275173219957836465766485511430506179666102381414498990013849464128203192852617707492345287239435077740745881522704490509448275008408481146612823642966399858770945198964496286692616271694769435946374087860519073927649612106824390810385849925040078984996300620453083185277697783927225093763652927868414173279601498678711278371305087837081865434041139966729297521745601089641768601971845436440576160095302188932389088372163279418473985837054144473191813369149278042714226407371268675079316879958436897610561981279507670563903008915837485946952830783631393170601520521041018045138361900705522038719182065048793798704875001922158963927873078273216076570399450534329730046946599914474028370128725487272529239044695101762811602932646911941535180711002801104073086021576868179100200188040297919055021781407294586403455499623303736139229414948326795016336611388759713136900269727567108103024947191718928097096735431274249091163942527998716461978404287108596518938099456648911892890541519719622269226504891743301998412899061613644544480455374064808558076748935976083077099969352660632658661893391252018152618025262912057571319158017375912985807614862753494454445055379630747386648340775933326555003257044858207832163213155311701448909649837487535149197875616295235211772028452376119301266311078931384802679112542924821605962190354351950929288765953359120795074805451103934632243894712574664570767359616874439055790506350456641691132976206130782562803670088387657376589207012737771566995335514967548634918667054421587373267188681132385336079858593181210766330097393541165989519749158662757808727295220740364228313420672306921272335601737021713845237360727631421396804471878818677328181436986025859870199367250146410226114737969368864474235213419394289261142019378808994859498232613918601906202603129513383340865921396720975415207568844940196008202977190667426173688306482592499599514879939092422836357377062595134586484983067416038301665595564076422632470924447268984329285901837244367341292818510364299124492060532538339797468954158756089378356902710659614544330892727676552309293635625742530129242169216959917747839452215434288459935961564828131401534366791958875765761782897382656525981553100301710631930802330615610878176400540179873317952105259066424911579509023253701429547656564013743012106035857642065047355260833527671250563359410369294002776855845982754545032742696308041465513911653996930836866694572210047017988408597478391565596088936488364167386894914830946459104376207842011463535763690680807587390261358779652087863495190508962865112153766946262826522730209117535803166563476454494562200372432616981885821517977609257240947788999442351776768860462733319393175209395551541129560524168738234459305937690280194440808788231628083790965106687401793135455478198191628753661236019114223246368570585641559099194791647850848909766694985909562653880201590506775382251529739025629462888161742911967507615381100315743169418259538712219291304552510353354602613560931143454635109651776134221808974742905243435027888028942406242111360938956022661676239501414521473655927952957675240734861219917411254717502503966568053038508171880873117768655468537890000662553321023950116196145913376883182225380323063475652586777887364963634212201939404580552979076276297006142428483497781061856114938646008666746480794636126830288238890640064838268964977696988645129683402285464588657391948940164457951065663000637217056117111013409610396236785302507714424548130400256062253985844178653029441997497156662571117603801461740972240794967906161206018942477637487961608422103419902548033018415757165477278691429196475298039554708352982749359593635179514632758241042803251574785413350866351799329769398033564736168383340906009440474874007583928885754394255461070825805899405824336137148844891325727756123702549982244951416904155009700048245398992231651500820580159256090928542867173160203843273548658184422025680675224511244491636981678323482036119782452968135619507189261533557564539975346360900557129862361744269117487786402604943428426001662968383375324208829202916253794617839776932407828249100892435714318230830597664813921087788456546002265503657224322881262394253222047340771208140220006934288936851217921076419757130958382661584565060373467675792733007749639820592740732570084911316026493955224025113282734298932169933951544172974225291590157010629012083764105894027427995224309514751444655803236616191636663657574495458074547544589778061743647095141583925090225789182299968314412375535970715187301346741404048527004069501845723987511566878054978577341694275327463986304558498195650440051887162942264508030044156096793439770780492551960156251650849222395191623474149130747139772523336471284781886180041986719158413124835970565267393641681170931194266546106217858066187317894485172713870920127343401321765202578277057579093106722596430897955725543065498703587202342574739703648708265744246706070098174763394384894146621237839691952140134218206763442933522719349749486388883894959071612342536901070162693730837842865801916468031664044783063033927980585127955187155819540643656425091803148207447372026107622794298844404743273007052753865399177337835088517754015574677248577003007897110216160719964270883156598098845044643215215549644775526023608018752770649418034898940860437040879011644000815488132803783597417088085247229751918705319566855737617302242771236845499197974624437326072050132306923103031951761251280421733692860789255317081677347873272965515542171823319891128604242589609348977276630749605668728420964106625500809290405032640724550672143185006751718414221458986731916400502312372374192073358964630732701080715644100206113254385138743638630050275131102862293951399395287725809782036836319823827797675641492480952823439855929929316457800410175722202866437197661125460191399259504535493784725028259023738040169966246429778981509173206796559800535884730607897562077820206388750367339640790162471241579730854263700514135059351352287606034629944547396673580060587098360418653993396972586502786307292407561126639300999417024477493096905042172033855024879179883941283646501198666421583363755903870244948403170736747217250860226523390096123453603086876017692373496692204506367782016610985899429572293681906415293142068213582267001812877925605809047724544740316278848081609174593243919497714843352705669015547736147333511139487152124351720491055322317082014770102270501611052282856789075626249720162578573004662886028021202548381406411139068224257985262693007277205000456601883623574593803684356144533339859339151346771906511398668062564504941607774346650476036284337990334668982252916838903648483607720674018766504501145790471547383503133635044733627210513240820427321782837101601717296568392057088460949328526688158559024968685787635777816150673291099426977987905757554874447876343760027207771078861174974584319369548929503123044415203860235289239673061528461588927925298180227105784535969580601563340793675765834521748019744942317824989873104014022288680915365298548581748554696275530320731181601114760903841318124778860102121013199053860359755583464077449901483173271733820653630965516195238673093414098943902016949480885526151755505066217187306152449905111404425047048429801347118496573749595840339782267289603011911652566830606068494544864842663129546820804534305804186376681630377298937176226177605010955655752704394235564946636579677410861107940321557555758153705013490343953392252983163582584374350828261167997192405586955638938534262334060699464273405805245554604607896495077430205027977987545044794329387431856115386796257122138253372227362731121054547148204254842502234839780327615046588428379816054589265500965774519587640871949185542510717590258534072897796539369067650721696651346578837305245894574271399661801190771471976603502054582111450179719547937384668875584691246388983127283129487604367117494953458094765899326911959492421789944173921376409290639017042461108512758839613196720912481680339006331319632439727562044309227156513304355241208993500654080621614530079084976056671043622455795349557785872375880699687361614403647521580354011291582157256165396262959865289122478866969000017926481972268643506642289626286922049734814510762194310837774518917106425371972365133169592672891859433401344759228373248682016712166886763110962237503646228820486735381018914226703156559837212386908510560752253712886245550061718356718115723219405740281222812923695085614332456341621195329765728354752866858315468067954408029578853011799116170880166790659927805782626084471911092209185101625076112392779866570932483326137171689358699227452584795366492313362260687339593000101610732655575767666970508128542142266107348495277602867665171216273031706403284426194808072466651824316323770167384785369924846610716058965136540659089425462117212645644304723141145463676825161192304478780556777343203154394579027414505297474911818239349487586043461048658128492023424448884444217791484379706883520001387802742223259574228503975536450854964075236039088254672735605756365136591507807576230876204843159788009516123870034933721221950648160407359548102853642728447038680079600955587645587636805859310288639840993667951748905930029613367636384572059091988464911076724375350036938951620273721211825924401968348750084147405855375151492606366552721415621789992588416911976600495010169561989475228886459713322185219507286898848665619867477762734578301720908064148286003462303702734953250073892738070413494539389109980684257589617176084675766601444442263592774408254149004833855142535567213095726054467150862549053616982570910331043298590723967219001254588610204084280892775835356270210620294355415409326468746835826269837958257878375382291018980659822219622085561933285505183158109614670417115649268822141210522877079158427157645747106383798529254752576755866207751455426052758306594841530897704637525022327825683290960997754622562092293157183996278337808582232278516201538297198259932581363673156700728091232707317848440246901536039945346661178448433794766875100266711766160590262594044187104300035246942095346546454544239879230218619801841136412998289207870832604073906566825880660777350788948292194415817117258866981346991652943202428246215343715978727889093513329050961381445174263208613143469102904430347056979400355526764229859104886179636860854432041849779924147653875244024633090806181337708356105401665080742471553043295212770846987747691494177839184210140474973982935146352125774824086501651855500543299540048125165271601399488562299601960716629730032979199199341151652753475653900322342562760668098533754379966136785091782441481901632925116355125382487443758124542687029771392175230472374838594546354476261821270839319179314191104021912092312299713884898623418810840401127428355468497660757134435080654353801417770820266552100978285635324828275559573478934496288631596559139363626822607176754363208458717581563346221256068828027551106809468347934794593912829679266094322747191032409319312953865829859672571067330637876218403174583939376800293652148865931027515838405390206760950097916221311208032001919390020878618060901926221559921484789623218719878695079071274458019602900768435155983983271266420621874491195978411489569616261531664137589177131871855374462944649364762670021761433113097648070450590788286356010833187896602380528221706824378044550093248772262386583934324158701774297480682667498141427822471130377712278260239557895412643235036599837705409723630574229921360742446184575013928065580340401801029755203777094420558611819997054242744012112387856769071557901985517819444449371515658638067442634711158360256370325072954086254193090347987041793030787363776765072265708763586924721085202016483990173764750276671853923172791875403048933304680289376007934447670524095965006321831994367905126667484830765582676598531069264849216811797566469354246405798546156012099396546619230199878190116174693230748362755323004157954268116766702077900500855536008498314479490803051465617572140098707326265118579938598622445191124176884670292847181878462368423945164840836286101703659633731175881194031973956787802535646450678789675600392317644808562689228498817218357078866322204799289875415638660376847149086053816065966032410003358938573048259887497543899901907847403641689568089269608175927993207113816609774234710889862956042441545272329082378251249102321869010560794941016648271506569582917210252089105617143484583519631639967862684321906654445412274367920631871896648965211002355030335434615551803760702121319848027279182557344938341983451218608694600329132457107948061705405068063322842127819393441398523350070233799051814196821891683988623699941000052538254815909880992808394369308641173232002428946033317649103314200076976338866287453250902925911480358073151961580520360150062586996102968872739307431825324891760863176638942142480039194421535046779656911658918695603616942576180435339051486215178721907762520006907505646862745704433152550640742502567127543913345139908738570853126625035498044864559435857659744677400147018043001356303779498301857767008665980345945733102070236231021861736884586425748836577289414154313957427404790209621032048561697266869251799050498721054227787534383177181086637183000532700516136186558671356848273507973753346151078615375600765141215981866815446599482940649494412825329217409132406997382786361373445454224339952358156617992751107253118889428992337556424913230412288694329194843874449777530885402733263996453660911437730184554163582608772290492117865102540116662508660905810222102958298771878004802279273841730739516397584723348238185606882020791431432535231008809473492541461544939632969572704730042436647980652492978130653804870889881751905751085730851513823453443583331658418692609150583242233017503417068131163824450545092892522239408972991767529250917790058663154031536313819002086020699282239083720844864729749910466639262152402241081248525148160539980269644214583163811549901532146757736097624771227056543778827170222786708619830831545639936214905960717652966501748420345174313733064184763684582112020189611440255227906119115015379849679151421018664342643028129265533339316341169145381603282445458199071811907505871815937868845917525041263508426335033433319827369991994022667767814355817971736674209177940620824295797070034151401310158683915672543009141054090106420666631212720920767250504049328175792055529979581216605407681568014210186158253240926300445254809572871772571726969840529937925505034611657506622760554987940457677900628911656241747881664197066617606008543366623813161369533508719505670548586817831036897784627283554364110197312683756307898523008580528583220366955296703959989812498211562249507636764132299243639201970330466603680389310862781628078438401008935324790827474746647244187078621162783178659914706728717812175297825423871378411356623398312706646876833835759240480796507490376606093177775653007652060045835102335579289761934269626819953514961433825684255961989551095549318833543235936862262171579509891888993391503810918213123436208954920079040398967685364192055459851098089171073197046264673594966812803894322198228852905208467393815972725897847532875825797322702474675113362635894100407320934097166741788610098008499454382461899149278865813684180740128964989835931729525683890708974357444064750417425820604488549450990285290311560303777067432070583333764646485906866423488756652170169912245280280004259404125723639576638325512980185075278332530931968090731117932048600866933010849310349148781441419512144418000536669875235554461762319535960613358088485223388405261954230938650638064985697790980641647132123198478400628962782197788609939178592298778951229855112518633617263354455424160192252735106017969753785714464802965787095847245075491074218867259740919056165638935644449493593981601506865677947161075876118866273806504396987165282718996889091673743208210451385722064145505364878484544489132251540232985290119042795987139895519826443466104322949270676056374303150057661317415196484264549586023596584903977479470945579006821331192772829413039491171715345042413158011486575584650429178691654806564089451598622869409166844999561855491595637843114116398672538296806282188515754868823528612707782456331829473496807751223646075891132092807480200341114617112325464131181757601987552384173303492613897833393857757771544606289047112782178298790764474078938346323181871076644176802465493190477296132858707884567465474193759860407645294866871192404243662399525782158069131889610268293913050726964538847079103085091268521555012918061366190301174095580292936553708702555922665457536503807381797470010149582089957914515058688730011777541239732085621973841358296172236205925132900649399885046610972163219462710004027556506151364821505885523988296587659862466639385429381664187143996336088062692916619801044329809943073413618060934750227729987405331005269569776086094265047967496243525320802656746138871570039463318608738579382579751185368240749545575714343527871285324960956880226938245851787373566008145151209836984628032393515882659173919696853194269967172633189271769070104372294508608735176592213502795522460945510210526249106995924794803320342136106624116112092957347868026591830163585458095478439971741172091116974219391921005197386437525164267691379358088614113149167707212620750645771249889388542774197807168209508289062130396304596316569880359449368024840765765414249681015922011063676999988358296583395823342973890789745751093649353219154812778742188472752808880707452806346840674747329607687112915322992073128957869697543208816596244088882908002991830769074141135877476591869075033335985042237410733233201876136592919736350260209438098516581374495698959253731440253674015988753460819559704345508603543971884132028111334454598179452387927016741848298354530981713582324145052358261058299840720481589821840054635248167082780905978882461000728979872016185380532007932455716618584816559042078651401634485475995378056374872701704089797563728572666111471144579412968650180947892419400832521938822017642248114339805699562347047172610554362291055256674654850989814123683296358383355730123473183815130650869732782802490451380567731586553257120951007740627614225429436552721325372582496541371690434123078637851799850643468227270842131746073570640156610199825604305097858716764936000429164643993323952245063658436486872680343089051572628948677638349777488277142463577811530572729337229823294926673129910973110968698803351746447343984040050990915876422343978766187577461598919869293920198588865103833623617984621145819176460474335471560184510648609829737953485746064312330973774352513944832365124243646327692251120983080500344756107286154029640526746855829285570235563443603048512505531719340779421454815943502342989563951553069974183915980923292466356867446989704773508340854196915863338053848230376207390590547347237396605218391434711284072911547910901506697822883097772385967181149293236238048702019443675796684691142272459607012938701349373040719752556295989515777941579805050335840100336114579732729374581314164519511061630299914413372086573748785334320056687887614750250579883916595544218530032133328544639950196187752193386881875212248506872664117801512845048728541305062975591459193224837130031573779553792462924625055186593221895555590007564276463187388648605558347260427087392879462760710635725415130121261039498892055553670870871986179426900547204699252884639029552944634227853963891571162192771836631416042977686785071007897485338551887556524401201445535460879548321109593437362502746430936814119841584169975414147090444207554350203464932425098934740369133018336711637363795627225879780725044584094564159469683973003685596477849888045370254975421601140166315231895632430274784682484687113674449296279458889306215894741584943491373790127987681762450338343202020842399544692239997039818128605164048329148631326663132128648523186099118048337965590608721517383200219965243431258340823051741196703581444362506791641402624396253596646757267885786502425296477332972554327932563942327215556315953010382783533443659401324276356749014941470855113010759752312857781623742020040730638122752203100379658423842711559716165289770928190552031484225834276989371542972528935198759960698185014105250713949166011810708941964691741207080860680210441068961246790039742519590172407294914885347462705239414454651436552244853247958286862521974163870296148399779494429721454611070043437886226364435168184639578440976385310395128974343863742248780233930748934300312256017354049108753116071524789523983311986428517883796429146437308356947470697405266802411397662058314470899800761683435008637660160085772121841725593039224800766475034389596171317500014333128906294773712821820600801721786366420664983625231700487298438699758349260443793823497375091951237364852404094953592202595255015643370714208157748689491460785666637439278105895931478901968577910263761280411924296679492065179536135337403167023198743244692183518346721606026610995199747281650234108465280899166824464787676477891384393094276217487004136254211795878364645887025376471577313590229980591841810112641001635322944722982919781780499372167982375332302559864947856660341693911111949672874398148419225099098454348033758226328356394977107605071152613652005492271002377090987823557105279590965018227735326098048452771048136570593660753148359036480797232954961639913956265940444378021578938881638788722086114133335254782764957305612798282800875032282357033526217257252592661247435637203762979379762552730696307606962170333049471836337993831704143406828758820815374259824624498493569815931130230802833533157500981614676283575272155036104909765235677822401061834448303758023391725913561627678628424083757159394474418528563450569765982400536224186769147657467367946610170993140108659388584660284202800409160868193419808247025972562654128768294215799591580367029774119820283818921187102320263931752920981191301030719952074738687167493015468034967137486888348318377078313196088109265305818644895085253258789002140854923339436520223328912134807956025179883196219046317204586510528167990276125900936992221552332551858059512091882157395819730225454302096703826503460385853369624004018311024912847227193639689591747594485438550181896672393446697662647996415576466389685123506056781756789323028536039537842913965569463331892543448058957021673108376791339603372580753432488999574563558960550002353723519099601822534396294852998061379987665616965056819427918210168807569162594995159346907963049350305838155760048375123937210815684718369592906837459350217594460673654635690782125301725941309124291482790361918491991509389216527435314983954180095498320367937438738137418820139048982407410742152809613363582167507594114417371788162281612876786340140145294921440541670974760875940181731847608465656346927485305973091207386777751100441754178914364742019798453673852038870988338586908601187666210668212368441864234456758252380021807648015143250315188435172696790387560594001371545323382295475690084704465908172628901652166756203189992482046254473665790279412706698306519250839785984105208207926647347220536796788227316809405015933419280502866169816124733582577459150022981873616751377107541620219512602520519373335571126649021506140247508374936518561886722881720835116550693077776829332522975643897946886380167262323123514161383193590081756997294035510272005734109575597749380990945716669078037516848782129177669298414646852411901341913547846197723927352369366881416194427335741602965614352940547744606688048116255651504728102535315829019259331367683942060351755152729882586708996301005986747501032850367895105542507914882980201592612402372567293055275249115025049936772689645207821229227454485993908670154456287479289776070522155667935712592801081482142266116719768633205363705980154311599042135499446714807885234578936168490422520335348340666068276776364519385819248331440825212336977256130797166591341654494626341586642482414830233829729210370234607278690016520369111399021312383677355995668630196635197464646013316654817635508402433261823312544591955495987322956094674770461674852914807231323338588750023826329906779089388805775028681739976007503946760728466132137802825091298254694715660680524012597637373628269101441975238132837196542804427283698064886220668248671894032003177409726406969459691221068596011924807759429961135298939532919470359101906557256037729879893995706914948990120604619360483367427232598861146193520715110761560626321035726639841627386089678536299751595232129691558303611179679134325915088440365704742108305877008400978086869679699947669158476619079223452267335806127309795896934785990427341410031738987041204687965091288528059119384813941848126812502831412476341023735156927755825240309927864999280893439460563502621145324512377748511776991558587041513788796715228442784059021535292900291582522963028274313458283247852960141489161811108969650220155106059138825937691841715147936499703234078484658705395153262769089294485302060312002803788819596616669896637203067429450816907949582211847094857222284390512986668306839491857009725616597430054550006841725645905182477066848392911039660172451691365121452889130837794947212493379331727540029200835986381279477734571130452766579986236260563659795284911786792243891276246159802022190754491732264194897122793447281302611486696640540602832557520136427924341457313073552977034378965768497049560435923700477363875649164548658622694362973111338152085896474654110613926539737739319178959754273957740260873413502339122985503333290180882822135654252927349034600332943526118695732637568765291380417520928029878945286876288052988620387755884496198260235575165725859723230838605300275731736179303205305513517526052394500499166015870304683428969073815430626325069971165103981722765143351346582473951735104028776004303154803072119055012954862179846011366431902878300749517557116117983838095662119649193526189433567659526445245583242782813368751481250913406457199515943298530529201948268173342295929433181095272096786271155818080287800730963876561965199783411801814190435051175188560648093895586650055033090915184870296940131117617807842269667777646832276808119113259241393443774964629128379953183011348825272767225675380019924377385345753731823216759344181604750503428516361103572023170233121302377810880243615834711038648754342706859765491315572039957365592622007112831696849463610102225895286970111943217514826489137588064814367960834229378779359013580456941698730760689012099221293577391648411647933617653501595350344407865423637552200742287176567147128408017223091033184844651786319286637189023897971747370037007806558076670186615422273767819715821783039578397091967944096649982472116956254850041684691827086020804767239769539284500082117636206627520199589556237482645219589631763281601777050680606723070340907344461422152431413331607234816976541472372843009936240590386593005908979582209263572493918198500158527070731713648620981704382791251969728480307577357706101144238533682274588719794183500403142544271768433384639607729412677863899418430475962315954355330024173153761864088749564526657343187386848957296551527947202785802079087686358927451709950470021452980294258282405823710019532550604391743404467664700990681327769767124319080332032147937656130365419042441226697937013413720388466539913871304627339810656386847216462297529722042391362446488641528306353952719641806056981373374186370049764222905988715494149736243508087780586912832598584636347556474756591600519573078877153722413875543034780181333350200613095670266070289534487363404832845519187213932340038213352259183818119020593587569244062336443549197552385669473160935701421807051459568406741323576283955944024337097998856196211819645806007676479341037457260987554177528486592430639350481542552224585882110342623987043007219394377233630974539210925928114171928607691590651782248958897499297861872805545981780624545187750687631994278191835203183622989431724734749885909390761178354667018943475668542726464984338497778582806675595762821622538030444835380043219292923110547467406115599413750019157226084694421272607430479215540335888829432438624715889207146973308390074786029420084511641906534701867094662984562924605017025408191589574556442125293149413333006041326578012760671488730728876872654970163741725182477260498953197005485712553088284405642645532490808276052014163048714677578927336646107129454979226816834007496689975529611457862499600382908920347482927411951991650263957586437360306547302514587682552383068898356442144945884598333122550039827263643240989216846519377222260755955422655082429385591047695025698815435526862114961442219430244908226355357451878896291510089122353860032482390896918980673926986520412421239255099404982096805249851099667669861180951553823558484386094062161599505801354248280966463561804026925338828649347178728783129249912782487708056006320858974677873986045775043689210219185228163213874928938250167022378819286542505600954396508630016097767382747161575037395221833195325828281945533774692328701582927494080360139468550888560277058071209457085349212731532296434383571132718230597587455168904826772728627812108603651015503756816746723004046561830581916536346374942465060906892921663035096296638888477543790419704338715156127592265413094440774884385095593270043061412641498385810900935680073434876271254264619955655366255597080155211683305277701491875069667596173084061249281448708855228478552632816901622341469733447167739301751314716752339928683534959230510419617206656118172630962047952321063536609706985593876273868505138182480161358729598251672315462799939001282931547925365890589359665821288545036555104187120725261523257674209249689058808425035366599081632572785431953156362556558746206605406216749137175710565922753518792569091596898010803567673814925566766578570772529808143119659471574346960064350259146793057736457162930923869222128066018742253934217171694499471345618476930345769755128137136689794438744466415448508713067639894101077721103843865124138795344035724968044486039992048964082933568136752800894110328789019661854812227817902371558695186881578103948526446310535965344775384612862403931743793590834188184519175530236907903556444612586363597641967092271680238752321940444907008855017198094971621894897387950038639840321655013211983935469042239462135425529672399172209718734804544412661004057464810938231996003012693733632122092618929651636321747920385884422827132383765600760766665532745864758350301376477347915671150704076114683979894155189152584117861962165013585076774040755341562930873311891568531002393854152709713639816057590083354470372527209140864420105028567127952043219673484586689593541824969168899127187721926496889800150092342783644686390908438002462839780178527249527646568544435366440182672776503227622922601002031291817062172776074794989953373521976149551118913056927271494493072850079858657122889441372283075589881245706096769441233397948318869354492572322168707249024088500973611947180221325974094286508768266791185783947416806525333358322393125371844086053527941381452442671973107167627587476887795007019372117740216018379076589958542935433916170398282749122802092887677008739586314051957481470476429369831058292651549274826880721129110767014602355898033593530576106207114152414400124746158530292247254371726536798738385777098735011982627145942538300466743725626125578954418055516191201715956901954821993603772082813795227829035798332088718701114768843847360348989686119876754910456342972048639854714472772696598828648183539015821203641623819412918354657723065622103676725115994532951075127513867327730566603824928788932349553501005556666899454324482220352589405996384703891129615556262095099510242768983933920934739125933030291485122764394854990400854818668133927320358753579495148948490177792794232361073719061162886803151675720439249944199508595252026888495054313680883767471678305953471358086166390724433670093988772846794456868827709862698187635446348029952836610619454742498042955406149114518079033621230192106892900085174542934599782219113788368511015324953697142579181436311415624017049895281372678687723381600650838388386984322219976653667969466848718032749037600389558821583012338530016727922795107750168749748553481876743172902460209520356036737726994412473157176723019630450455075793727383596287331155342927524696541306827580856059700897995073786887330479162834396825780300544622557416673033685587019712180310452800029205668676951544458501041658230580419611705280421727882804340760856901764635345739716929205921084548709145756459518884779670188758914767746105756566982498161839619727905992266982618227610888676487477209025436347160309835649521240042128125427113240188028280089089624071733396540848484742070988837671762711790567393856139630413608006362188368732801857233864752700026834220770808222797539348392227226743988453634161636946452865433384107774583311432775343342883558814675697198346659465697166904077044798803877180222160510509192126639274402182666730385946462412497613312910619597930471393804176075113968097776784138922611212797514276372814869588977496621849075759631599518884967130384925128075347303429437518479341873895470078794328706542359572689711222120399037792488507590746954448470809617525174396792242349476970919796958154148692265687416149733176670584583872209080510191167768793759180194926312531263666557429962415228915315791417208323131304237457825579019857193004672700221197604690594370290760634430539956040197427839992396891817870875122709821674621539862933294012522944441827020392517602588428678351496391166852109066819002526048123831049847746843631663422917905883691958806707135953517921170056775051116449851938879346296628981390272100209803791903605404902223378638435928437216963443434163145221024946469534185053469391339476334909450353085053111803074126833003597504045824585159459825131609273392070193740308749320136320009844946714863273245029691597916479989220074109438638000020992334199390384607350593839317580306938269898690505987202728561426953206137991953596735325278548450094695616237210457130097336006912323510462151641841098897084864960980204135575931905518724074251147335485208162207112198068428342803436604438932290326398929040691239879762976704631010445107885785279420387366146701026305985313823734517813224061731188593470691489124957383439365827878150857361759279718305288244877613523606834430970248536879975716844568863759769739456948694549695013148188146701847769290978347795328468392922542021646108744930708156060285593668771261621088976096187831543822107336289946365278163408175876122816716470627925328390726715230633643543929408962584903709613626959938979890955705799314404722692039204326163532668755413599490947467672939154028917607078979761914428349621709651406844940095049155981285831453517898604708987479456861058106117043009065717082178776874164949127212780344228906418743523295347461699297366742666894530385303984760514900464939424168552957574357561142747756951850219729589141149559578749941941103690323420972520587141873175046554306526446310613084117706347604270782541113483289006661236568647067610151865338574354584043534429623015578453383811579898889559631685577018268029676734311292908591488420426640586718582993788101135698483833913719752356782160108231284306767408393593858567732903910464853274595315469330534795831701244743603517531670190616995764478789543023607899284863685885523913987627026668751047492118646079837056415494972190965652922464239524918872834401886743908204282462983364277400358368000182360831505855895711817086748597064974555117298346965686939726790379011909827368105111231714395364628377236400516634091284606173630961920918891749039941564021661536991407386694301515721985418369995609473476843964225702537383816062005915936853182352522785498382978114862273766871730298813107049234690710264085702907116557423032493139795709144012835140074673184751721515245022833682926229788095954148364520115657219535623036792213869343550693026576814560319294734324878268347660770459879169990545651234803049561725874509503687881639011826516293926156865637038498682208975089895579471859904871827388279717800292195487944510071186215152552717880187169343412758825905119893585288913191395442754885298486910571373853234378123117415447607387036685740661472885562810373507562716948228118373378780247570412459245214322444251688650802445583651948863265508925148638968193802158159696901761177409804955821337114857378617560397655473591762153775879528287652368527780890390058385455811482322745251793001108067926026647644515339505902414140916909016659158035819090367626823508872956330130289395905968971433190875947388935171251492075355132846939845358292855606495449351412005680332259764129969634669788565858362128465958083435918972490014850655685514171647690147806268886898019266009867259333431380617162461276061961221332911446612342984209685161199108312066071493817947022218987201216789860397837289437431986057897542353399914806694080264722376521816907473157158011830218660831007596111062533863838329815788616637778632842776274672442892860237214673636185194608101214403604472929372625930409230574116393065487736966317809189837956355425795809378626226225241543394953308651804813958450275998196484303308708924777175880919386980815289253216707774666560056731688158344506252273575813381188141169961590513499275631734187483966037887554829577533604938840320089314327983704975059226445897237314269627320033340600989873816011897763188601354331561490561853825554983328428410397476165320285356024996001507646479213990646795641925846907040242217641221799515054415002826704555787784175953270322054147788260302834640832347769335004292200552945654175121101912620992055724067014281303642007077214330108942590864757700713936742551160619825566836126287427549234044667809299174498897152217989818933904234954405691177075612750249978831792114617287269393022791359948503675417702067191804434507824305746983230249126070264021325466743819913335834561188681502145243055027838633646319587270596802651618857111197044274971775483926431357527810843578509659615038294985201185206794690418625425989054365979977403299894260752797539029548673899996501334551142707063540156114796452839156237042307592161387347059495812254941879156570972155887513789538591763389603257900961499665463646429970781286623675786818337232078898080666224052971929900179879729231588409476047613820803628887294199257436568628628416116483838365657509308625069544718485278434642568665405815092713173632196975031243690686092816186192839159032856601419487944228082282703759236608505729614205067534148659178251699421660079321880588358164328768246328141513058951282570631176395093830432421786237636475231986080923104147819910092099091959033342424587836315644815059354668211221082141225320069676978217339095091119906845777074896203108019549173732285577647135974348529746587080696096888823088714270995561325862066967630293062060545158754532686300171584104058243690641410894276523929054814925305665520346558572189375016608318756281711033902663080214619417989327784071042967578982618688617916468725436574449202382040090970348322792284334341644970740847684212405177215605792325518549230627918485155290668442325767509748133589850837620803014766611876817010495250209055875881654703546467902564309448060881695472394312376119021929778036004282096649404135242902907586101605392584309546288635197182188423784405487355252252765068816007085594319557320508016402691062401993373318671328180837828425956397173943230862346243711544225158497785325841768969345024559518203271682364181829052166436635285739012097368594533796039092374644071363927064307642657907983886696421573836875085944648891817129386240207656552898524680820938488855181941252111496322618356132217118336716371246369177821615077752313012354156536062152795918728835698466923650964066443674623286763300481010952880486377521301918943824126340923253775959029991413654167792764236331756693033077632349367663410953628130415090586334291455317359840175808973773929333307650502039575531461843912483800835932723738401008642585607348712510043794682350487160250001774607414936165129383144484268478443820408752386356371990018517783976852962332835827643594284803507673011704164977191970610123241948132115546978855813720229870552775379657210890933598730410936169546103158958017316848719025323219474684526023350508503669063442796271201179970112528409567082141388872161428088803584258567071759898368083728956272115624311152726582551743516106272325211838733296872483095514149955053619729653610405348952922634265321192804490964818492530062755241434244693649404157910055967991321266061158243297269467220482091427236512356792161578182277778266279267650535466924130325313456118734294321120803816095584207280795424537152450803851123481456578942048096278139415838440738325204289312193266563612805119693885075727397261175259758801533445715294961136998570469244297542503965370968616887109975815321295938484876219932188241467954436709917213547989759375647280690280629564848783603342625297977175057510282165626963419884715022050962010376311278519719727852449454141544409625070643086738033732334715698618756506554866003505416183435960892243883829138723245040761218463867048202702456700707735479657651285224405145309979023344164050523645088215005902869975079522278434384504533053396920534245847626909266047355432424207781192572055150320517721982269710789102496642192159973591260507450283551894108034609804257471413542193618640391671272676632657337809134617605560939236885474803121129853470280093572090701461814044421913626312928776002172450130772362522940660668469289550237362090653754089017801207363341869257010183798823709301207964828882783713585024156927440278997691833650797775205258703081047350659238756064443772609152765043076082520600152314323223010617415647497390519248372036049750175458900525540560228759780335182243924054777177535806070180115377522046022599329480913340320751967384485636034217940103495376752737662249147478806246182320865123182765004263627262430677068384017791875333197160186475898657496358295403479654489097472072554354998200061213454935656726403779296825795136028288373527167005593049204394708608993681557550736693333704026369636760126616852367649078539256761147823892294959200872977318594031941384269638373981864912030294023932764549090822951350861493787671412029348959831514046788195203985711161720111904589598264994852865245118839898734700110429413061820434636006156731351794871510182117354721639368821702988057227944059343774657493116283773826085448878988185972394449464325562360038690330459404686077715494509048970106829150191119705880200350737386764281787443979646267733965412587759475030466823638589891813311140739798806341445781933694269077968660795669608796599394598288301732233960946334635958689639816137055142350359024138584345896568212000843950807501729904089496892368579966592386162205798607687940959856407492457986209081417325718971915451756001580576793199323786244360579115171329553546751211709540650938151854995199460010447214244918669111831783326523755447025735116811605383921679217535357029606851527970581238356170350589196680277555737692399476654435233306248118025339815736763653328486099318403174463636582467181140297676674395921735844256957175064740330423668985983683743602228384045251923745052045309473689884484506816152179663243863011679668990257001738711256175722077588512913016763025827413408247174433133736118326127305607465054440920205992990271326054741964794499910055320363677688544400043473600018521416706078621976998569728949371576426925504493929070472751919052618548912624733007911715745826140548797759028246860028654112013472557418558792634576162587145597843412436713526190770569927351230874847634918548150711067328407911792156608390251296902219547186820332099458400355157714600040376167713814297161045331151887816325640173548041110451322712432185088469213061467787240533732904661963829438727876808046962180784408179031909236308441722897648233562139835569969197377699142719383070120295965351499609210723694184038603448567360578063204735070278873279460591116889897432071723630484454136924861113165727558013168824065933078059033310682598518409708153850996096892415258588790110978590787185806237465921391495296367005551946583877197838919787096499985601484072594473514965521600339550266396225216482265360102521079823499303392411384366328765843694570222814035025587056991925474644161224124436900849958423682358756662370970975440818004480847624705822871356275629636131346648861783182722201405749926318962445258908833883227236446639348289902009394693573756530535951440937728161268860370263902228010046349702831702288741194899397908050720266018058597545044168758072601306960529016929256084187889608605407418301798596689532043086500131077254186447292034464018797134257693852995365249736623283720184346301072915579218176004351191571524784859979049280462370082087462618258598439463545653523824082255303173968955642953100666633996618034709159249377969765105417229262770000633563781986628349968516222464132886448321357591277379349943766348711350000654679273715591601275754253089244691058326371395144063861516838425901786966569694718969611524165047881832550976018870676624083733739858797894846722032554162799031593495293847088786416696827665436973662514391358244816355673992903535017758469066608012291263789471455522076416618154385524062227752220167938692913243560118763149631131791567763893083143105904122453130103381103717252515662540114858692310921352405781662856616679886363574335049689992194164552088115305249440335993813201646417716857077178026057386564917471096289880808464000501164713843382864602270092268410822476785297671929659492251155631773002166410405895200635121189637835567453844051120320371996495218536971442868060633905813278413104678507838727159882739971396271466498818574422546316599892262193394767555777064999894847456637015983666687262246838881518571663965280375332955689258195559392597103928780786569164723287048583475730227474838160546423998654543389902370947701843797654370391285778562443560404869206708251636759550433963346018354807820246006433059586965773824048981514916696145575228520386995486678808824005113123921102735503406849536415546981258241128594633601385282550146003394879823066446674832183915474439101569661637522397776138855923515083347202901680756008064609528984017930229630774055307533971220207715146950152304484423514722116510092851193896745068590504668566607264287039247130369818646101299582579636216341629529522027095041192552107172442895972226324217591104247554354452166210607647833779580815493715798934786976027488199503299207869529239989934668319146550954756241791801582887983172023610279345193146790111057292985772885607872196332948890037707899767977953524024253105245889146030840435140210504558466237486523398369114199547931601694621987896437128766196853220555725794786757657537295935825895969447126477767657816387721064371094172212197420442065331570693568470286225573645883376654059944995310079628768080946264843066468134021318047258745809359087930058824746977854954232812727799991953232556728590229976769380897561079698915638587305293234381425179139395857897116007593285880871107983861166711033793474642284388000237128846733787705888674204805061513368169666843189635273755483511564488599446708641945264339229965467651805947767003750175766917651862906151509210969271298739187930777309756031752615607281281473334746892107370216392076997692388632600773102147388541558613440345197932123507409192458342579044115436765327031635918130846914584576967012904866994780909735637358922125416926522978861951325225332091631408733256341942806694113043574677003097002748580224372024660933257474321306930790540949797154103543792710982705251035422102731664897593919965693847413812032239892095423054369804591254722900427861679143101830834415553488085441596760279422346569279136946555777692653112669882444691711770050374906495584126776669036248924932358426660259328367874126848948964975752717936284163818475517397337688600135960575323494249901163564568128139019801253828008567389161813166162631263267385546990649282630463526481816146321396752149705716173979700610980503576770592318996714019465162904009927422292119535186646436178218761013864819772717818085323825438969273635960506614261396303785443379895924650836564177079383692183946884971322195961567862054513704762645360586783865015649093766954473334352099215162683187558159592170330279572393875204275230205260029101931739976103286672224886163161878483704619143365152541068182476632370330968548964198903304307328603727662661883150097575053018594273888300287016858879018682087383015468897370112865335064906450435529302543674654331542322865555248802419499710826622080524981345789178692472605250883794108753933642400238809502316488464933696854586679649650268927328507698190834873083489226378853597718159246689285105798730394252079550800704495953015378941239957586064947355044536523159281652075762741238068750966264602841657488549216353800640915263675840953195080115226591112917927630016354549674692038622447183767472244219839104275310735445218749716324796958013718760202380322100784121494015871797846551188162690336822628903014248136612858888030095221745124906621825458770767214678500029956078021059518520070532247365407376559622520479161756192189234388200537053314347044747130317438339500607693340657389915916224668456971674251588589048534340705068856905637355638926970026850120931088598407586333253390127938088720245132688382358963071733351572378251124545935343896217337437967524538962382017549004569221450329834851906359028208706804431488202971952638393112269162382412659051050367718850912961135221402252470639214736195497936480631338823465215571167080405067473450837018547982505028900113480130485312416228655077372142123747673782224920107263849458471491920238562035428148558322220935506434066505584262972256801087817485114094157847092466058597046099558669194302962650525406105489744387832680766628628778432999703346434887220402864579453255432948993400848670324671383331251178775825429379882149537107660361038159569497232167213548073872488434609616279637492518450803303413464256300081052476100297576448632131958354655315822691261097332859073779277015044454057832829676942685892243235560972710504248464124357608286956218588842370104415312146372407250579534967750900466159898996333944972175558884438535482879617256959889370752355452462272534448630043632336840361772236270127376538933822350744327941979145599970448100889559268659566471796130970404863540707003835148440921516520440329365701727792220360652717872336679903256294676004312497390702095210586611753409356703566912177878219808189535672997140642571644670987851911391354102288542530947909125637378871465024221079114366210508645633451526867515455890234549405491333450191135487139760464419054275256781962854850734627976030250401118387131229224422835717083838411588947874187332196756177519010981069930178154321318469203268502761835048317467663748195511004738954148663458673912505515340781914007782280700667229182151635002667680383650111946043229603017418072099416177055151951647591565811048176415359821377919093789901069638456724786684132002055845875276219418371311967333387042874500628899089924828562309670917090120795831061716548968462928516498824785588401428603037860357476060983485422113036431312087324658298823428441337879861634079896307827642804372832188485733429926979022240898930802540652246309348142156187806551493677268066054875026412573120097984579046809408451032968480123354484225273379558726090584735155785707225098950067840570951298410609860061613445865136421463138038175927494480929854383871121411527240851260784565239420124903273529221499696036630869176406144297238677547535760011314177274870528197002185148876388954594381193165462087865660670060424627010074787596344749263393556088227880429948791031953901151241680971495357883164428733005242759769837485531120356791813165153666843320014054884956710012855392308810117247741045430029614118388874229609996626300353325241279733405274587969847566297804624203991212645103708912784800192989266803657446973449246150967241860781461001778326109189031014799822141309226702014361058341290378879207021372419445137249924979737324350166086316414434496585871118434842360699657960365801524839944898253325036791883743299641212087927158516281343800420061006141545786132751887387633847740735271082591871136518203365473938446638974377050950855530720081914939322104070686216908545501051484159804355387823310922928501331418844493942884565972373236633894615593901941233710587153379017384231373738461722030648754134160117766963336405839289230907377680594934524826442172573635036160021826169267547578815684259844183964933559326058559124224234297120207534231499566749777463152818742664649229690115724949550798233497384528788012280720223790004328622127674537983631772554095363939504723521506053524319730433976759971670164459141967102577187303063175731810801517291485253760856802239936389074337937343541891699196196018197480147362127885016017256634515386871854599157110559689325217733251144721476823181411183912039345111097966255361823844142464725026813707204881781021128026904712056597233529856553756607505910204905900325437619174591168245334787237944289893889462194372606046846436669978642765498915182805401674030226058461191477359851063004428656550631684441062944234910807526791548565044717110007834577390919135187597611628562804365596772058217212020782905240573399437136657322329442037788563666495806090444656922610155051711218420320908707094738317871112142070916219776749318471226423512254667659286466064851074956589972362401888973738962446330975142939844962249551217704532609855757693256402071652927921892797314364677002317712366178626080469315733780776273510751365259149590380302820616725606499029237790129107733801200934604121811208309077566515949398053441846637782819897273556259380474941754469549054629519291789940243767354319825234498217350952224817155962228518245292693752167814012216070342955133278469362812603937828125508522279934368974592574041683443695654181594137981412728609644297956019095406330905215673500136175233391486481047249629238901518919169543778354341367953279756005156172196462415297618081219794073051489154248709753258300428558093023995036943929756395747219483553793679140970588220678932986084531519682197999562672664168105337796751864002340960096949714559810094862454223585095545040226308929605441427258736007143720726709785192429027158991326762294154418071709769603740247103885198640524692507855887212081442836698535194032866391082663938304714215520942326269292532176108793452400553641842420971304973438447542971132838075188287304380152033319594084705193980815482479159456987476459090296731424018648768466444150132602792718542322906199204251376131517069797258992788325751575749501991768450451370862668139763886989602354136870010786361375825385786673214788671624801531078207878069535010316953678310591170609073175478138876233224986232362812440319582097440547326850380661277847693522431713719982822032527812831230488729273486180340828518826805054531541927676776471230723722826764279801650283153207027126791838232449614377009737367560502682273673768592163937743635712002431625469070632303820422609451125366200049396319502219450051059585279705540549222048986507198590281748772962249531945139187097702090627499318400653906075514284072493175139281905267239591598294425360940300010041349732959695283705902433249245775542229323770214986197580415208615788154677608039561407995702826019761374323079925000216775192911511657515764737734847199145603682657778591981298217781017003246458101129981313812578957602578660376645792591465990246355780817223053064997521459664458248849134584922522083539620573212093503195401523252182868412471799538929451997216612824916592949684861498289315281250126280008820005612117188521122147661341294119966910732791131933734635894201282195326560185651218345258002625135204183964997804909294604209314702759507602936789266210065452882753057490184722726808467013883224446758818285102940704231172576740615314727271578978532929031265467155758985297745853478678144002746195461444254662911840642494442890630210430222737874984905485690095921718109383595570629467163642471921329230399582439235263626805937932593596889879826033669181312235755825757278139295197091100600537870065084602951938423367932270761204684389913226816410517484950989944668595704175559922242412139485622516270672886749960162942113122467692832265930045657836607542993911317640215213183003873887119015015144406746847450455048124373463115323610937015889670454807937536379473166088444135896911397369462544840129446322302035118352967619728591238349247241620887479192887127077917387447227551846736154632084816166835492014822560584097299515175904420317597958366747488020484390518865146862527838421249625852889425403746731604251001012416824726117230280615518005833400699670613765198489020904527273539084798627682853018584422087860174675343506170820358818508701723634896088273869919825802105553778526134019356145944172125360636937050875002422633627625217030841340867972804760376343834737156601044217505430166830143680132984624283517234933567804901271784000995516893641409432266384743620496611967438745956925051618540405079711187561240968933579091378985777824673634786350409321280456338538069681773477702892562288076837237806111046269195472029243387865791699754139960372477967831336556809506865905240067832733640536605134187379737722802583709312760056442567285135049988592023828424676730949006111296212419089962350063247824285352738571273384492983171123449757705095670416966500663324641230773066779807222964816556589366513048431641674163534502063422706640195517738261998422194661482599298498965841119583845598241023268665043200338684139616933510240342391163997269277098887998089563856254305699776457304732999235043820498080600765428765906848030991653816172221425753510215221788836909613152263086421418411645552953733066748425330049621762302241733975819539567618429464722768172888375890866833590988782083623717253633032162128400571515345633943076167979261561508572792021747674579297052847318419852554013606813396566820454508640541158247958612077261973679761456235106260060344381771730149720143683608891962491277755254208232220570631458229247261216790126126580731733602263320385818361372809567203254961533663638057187114055878020569823773638957092511772939164941342148987563938085623890609206301622629287128688547162325630826997756303043245894452803393274292860683927913456765939067979377995637003765576461634516837471170448513386990567943849788767540496517088241704490913222518446192115890216635290437981324169050720183503725793472747100751632584137602188039112241524788850954350521513427132030435585820579737652841003390895483495570026268611951203900140348614039283835235646603112068562080710645428122339903718124478669365620892416643407393469035532253776721572348793806945449234196869629240413224494435660994014288732740863811917143814762095628592587766230929684490861295914076562665938359300801150192114713922418302685985463238072034403525211706988155611134549951859424404097233572666831848222290981172379778304400973722502208000417847483784550314424170486070133791067871225864714751891091789467754280077183313791452679953044878313010971065442757758979023985732624406784719630866364371515994489952162955631599107828213313259740114300372163887035627339085832985409336911588945499286755090555657910970463208193319868620734668738715705917718063486754873698578719998855185221199989245817103269814855779923120220205256686580534563330995221336994355158835801615699606783655100679890387396338482194441926411511924053199251451476640105519090070866022723328482664486287102174562788789272041515449719108271803756976146215725606077441740258903005947337874008948525680155765924319098173243806212631527406626653087033058822162017915569477779122185676665312608892215786357962090476189585413772646971804103457044640918733894354295097593559203473982131757113351933470640103802048841577313711863219119413040042589067288495579051217467537755378803221181781355365491580396727727625789763707152661122223080212784575492483032217855584095805643271172299791624446803293013205254563705284687472082485037603118786940687439473388004350206415714213295483047074626978816151360518515716473440194229467875236256034586266441201218215967628542124309399131553593870447690793346816744263372197677684005363859275216287979745928476830693765049777547665755463368503878569224977305322317693641191596815138797489126221788090110919553904302070850198159187999444743324834539026306986102883606944965422874018844311107056851728726681045249064579888310047699616682583968086271536698143574540059582794558665360406242443228649770803294555794763954720534780644300965709337084587010408231617029680379967566474871140629799162590443363326828440749794555702089726797563278070464139696969942116077203674018987062734288830230591979952123435361760865930190387689415701185798430446855134067743478387423926888023511030490059007463164625729391622817601282477779337558936927536399655922076241417099900077782059977521135457699368907778954986740918660311627175009885339411622295188415902815152732967580648568804149423650753891341106023160150454300222331076859672358289676058340000309235312395958710947298902721753273249895707300784678315933821703424097422388655166523162453790752505496390813350494603567979150752325243688361782676740255763787674516219362801144880073253328832242519517616816744464745245448566410586403205893810515120494640539189032157415755533816206217765933272174203128302425633838395406746356419057105390339773954453854003853779502427258950506902107981742774173249035986363672258163994456992330226178828595474970231400284531985474895480786455882528350827886617914217429921016064340824005941515764825119394879371099965287659711797290685242732094200175197084316792545081834103345293140164919105703995324710364136857238621275056790444429725298714136852042395138341031081891543690983841461246875637708613070977750402690904178182242504749089953118873456129143366535265606900630712045072605416015548433904665427625629900190204801143102920616286970880353022638003553646896869231296903849535966883404674603754639204411454174886535158091284726402979204046572219845202374983605110916692542253137600692508175113134688162397461544567017103403265767801148039474683305422848703656751556514177470838885913079069788297183703930967223105583357409292138508032282721624615705294673497744497893217888088005212251979489960863675359549025203326169232842602172287772903701968612840824405618971698972142950207766687189754367270813281524518874824359564597880583056311553603875060242257601227437400403682607574237799085418900019030820303123748417403698125305545882195310428229171632701240305802626029767500783606777575710408031871052842068185261858429161517229175487429914532055579395499657203038350681239631341463283425123219560127582515860992178599935060401098764299881110839875205687780689452076970405306272158498031368395564033243944281991344326962795514881663910931317422852194247740862379670801047152492384995268950414866486042396109323141367420138118940606993645391137347569479207766972644781166711618150482202227667189478371080227381477076318246946197113620061966917397665241644132621672973254575072352329775741243421306421103027708580493758992581125079741543003356597925659584085511203673771210509364678168213479124243196920440843501126514964730288192373528453537701842477149277021555158878091382433053503067798741277179578940305977290604018595698220718310155703435702158606550323007450551504530840707366536748293401756671739925182192160171895328594063603848613729333201131364107259586331231070674305510246739100881880581788156722904733149332269052300134471326690975849180251490320303076870889836549958680525239381651277010386016407283652759843372957065956710751650351500427742921951131451267099095964934203468815246868927233001597103822922602333261110846475053797501117794953282672146842785646675403305561958023008873810390056603124989256490715482547701044118400203462083296343872989082614117095714395530792671775101269028566893898550459376406703497601045546433133563533246705435334879680634310222464576716759197878170331385248440229455155062593525356819055811045395665826333224678613736775581141787676068138233959616393912182855546006811538307947699729872071534995299100662312892679803487490209577317431254489654881969509783534965372344105617795858227650761701287742785440778212627210080610306430538265956672157158942796153821661560751333506163657199814800111784572130486829542641757861612662284654582085275606081362609558477093618184235482670968031681098142698556169667337954589014215159225410494535604967515608064118772331167614902226185163596259355260929346021894276200430257219645607528985774472219397650885543223243409982208725608618186950334574922624703061704237361404642929532793653336382027508412771811702605403775557578872084662732102727420475246498904999119758727045257734829918679370808215711603049336547228043734572868630264624183599352740969076609867570437267594813363170864816597459597463581057782041043827738466767346028666270862478308992275776135216179927363101416701779816943822552688810939926254426517371069071915106623389711386391464614855839000843366020569454690599826718252136815598233114937433616977077404781410201901475983238998505521794815019824101547019818861237814998617972123875975140182988441340383470445156622330586173743949709264468063692645316748806378608710409776371341931859457470696112106915991598082072844188070941527781456152976990245791657226890488597793961977979452385560994838045652843740865181719692802961503778203175150595798095456576788477675384362013944252843293482845567348656394686568026405636769063951093190768620026599112550547975640212009486451047640622672715294245316266266069802613422701500434409837225569391343027514034711817311879724789026714553877038563962565576812609075284605170871798858459294487137541893581430593636328793042566249883887216780427676419705959506130340622247867259555529915843033212413934134477105869933353288525906862300772314658947228990432282940796346840212673653314316891585051969489445613613254397216013322199889230585320338373267664792621296792494049007359939091576754248342335080196490300426772403357936630399683104933586215184897137658886078890626297550247375083641714020242864421283503497045437377782222063533081381836205019152983119408566651355513402706680393073863872437347518018620117012122456796768153373388663304332362185356757481025476640208191734421889582161042884142400843228779387965337027704141102441740351062915811750674045661716609422703530244154163621212586316545872305447907469027390251941552376960238831263997398158741557917865796288018446640417252567661229885506925619394739356325047488163945837354699346034557404355835992682612683654993663849593297295080019678531744725333727783740231623703290400890864649097016519469547882369756864954100598794273551753325308514993705780612566054295365841886749940048530246842036459773840614177420957813099965828706629035021857143081220440857257051127606897196071136382129305699481918177139653129391213113137548516616255764352170347885908077883382091020554032704609565402318411371815689253759980690479240444147110246584365178695693850785728980735901908877011098788232199063767734342891048989971410369821302048247095880105226840632349260185317785254337038346464939043456912733360684531438911515669557460224640958637537982080682086650423773276439735374914571270427308960522111276748614778564548848434855084311534033475678515982427351628337402125180087769702249562577608535232239465324085832093669801320588533446772436995329407143772812301445061769557780254097391412996184733335947581465939858712962998209981247341974847929601908437690143589582426701495497982311134264337343230618161965889537909572347236635317209895006180593228478991532208933698938460659213100284120660314392026767593332979865827230458833037001126845989677900416654656918472728909897547745060754352122469684814247570700152620601223297515164194047230650334820356414590231373897269642788634666908736843528304696575728802074601784079340602853031784978820133214291549107601574182585013579911768480748659480884786578773175822391379743630957261432981256254237089615738423101549505017686236602134846844018902978935428065042453413992221055542905675346495840233691974773638599336260610082631009808958279938207123297336593797615470191839113042076280996470698167300130046637266053921027126333810860499575979510514730847250890906423067575793126015421386639482654564642707524992480581331512501552171589331959304301733397070070240756683490037653623782238786879605221651905741188454320085645892708877524332783884072261161828417528510772305917756426852189129573626065768211416008365249508535035450825783912546825796302566507933677886426838818806281754541284687064868877594460984212071214287245368810528158169707781419885612490829190815595971386622431462902335284783610035602786469375984799143386634327476284494473591755543846086411204213020960668360643634613355166156691339814078494272081861962579843671161194794517653568797633824562296341671181700900011283215857043757905731500049134413947766052344903314492676955118889807752418106330758071263735878852370665051966743399161136921307560669695170813396358766601591813601491084268416942312841423386624120220843122306737508009576983817570227223004250980421129818277699545770360336678488303418457309918034829763791818903149570369946100098217084450039657034228053534868098605107935088185644560677799162151197680304276539440350660195585032506864333557570330099008294119925723000966216053433559852357052563237381689647492134919355123701646531585372849128059327865491225496589840796723064431886890903718107037588293881284933693364307865449128994904311601563391076119645858983170371887645055329363916655241893493868456305347511696546908122286908016935556978295843407792901693363613994444977782758918051296952481849484600294292619566091707802121082786540219602842526951836147389882223877267130539897563865921776226050620024785417862362940323641065387446904680317114525770528250408522642147722898390049532723978541565021786991530657424199571112682863753926189888759423462587928830009716278559221822728958460117981858250574185007270789254141320803577527656199167812946068331172541317005202691333764032304428313192552825135550147878384324511679308055688679167864958816427757892480009324405606787914416368686036904403845353313137252431344243859459713256719384614687983406285907445266918726149241089621224451987058693961663984145549710868436523582785817886269883392469228137038549778394137928758248922689949653728182241396141272958708202793942893871153993062941524690624282243863155366747980988314700363003622006018927774373804161258720791759080704989931058111582177265440564136354824633204602855932784469949817933656276718996472067742660705927475871761357897547857591479103500690072262371971047834078305337760186861630798972540977952501142014709291849513756735511899270946270894931326775827545411198805242523025788558209736708584379835591710483906307306536691985003435836481942391762234035428610806789556817126211536420693014761476618039198907211811122284280909262444809733562449468878612865351207046692177985806247131387018341119505636459770379429563510374614610530527700418818931838496817599540348176770406025677964390346233783379616597043538657206956846544821011638270096107825235837410866326737308957180315953122887168303237612606571454128215543671084072618098136029800748591764145183090118913659277605109245402746577269751461687035185144549159958172396187765697692637156670829117185506758183310057276608991910710245975087323235675504252860246120711896389964067256386863501332702939221074455537362173206587615433320785250034272513405080040830327489109536651425622039203918537108681642082996494912930734809424251644495945201453232226946940215359570500308011543115626055501342438717913029467195039323102512905690746783270285282012588719543330179410554627247972410934198785516540862413811731297619129679748547031826696448197991171711024865321772007573274979436519583002958735520450478534789950266024568565668624214490691617659567714455109831103173755547986541858022896432051035135334216275800205361394039463062992844103432276250183470964210037595192109163140594312818763751459474583513841209719248005463482897806790236396155203277266332055045799842377220333864505538845052460403764141071624279338667291428311787390486517119533218781820448039987613925484678081785654111326027515488847731290243140327003989523308687519749351152297443231202681118704900354664500923546159094907011978974643049574513140335249923898745628947288045901467137127743766290472001963003810072512932615010225917086987296417513862681507604759979107666655051297128554354811160557219601174241281984126359770748688715971774913976306626307081809154767740599631507444112119714932145587304740089738369140148789798031749098019979997380205160261579999943922875639854869919760730971239114316137295389693738323175079808580555639666669585042413877640381156499434777224531812583379322363887207195634603622257082617045719243487705188215495371378351973460007883019369787860713855137858457228856683723206680430924251641389014160118036133584122891992019419384794101473577364749440546545060045893481556984004168854452281803187734180169830953095066606332876040953349906559029829992575549475749293333311727549790576892417904173973453782201393311790993561783074876770100222838444000481923593102995106199092963967850404037408744547207991332425544791538488870332914259751750361625558686051826646077340637969954977735913415099491460109053803191448083341279939470782714525908159994477724987827369252916698210374376332976025926288175390398507355850210703244651643906782448277509945819924239741399816281438166869005639011713947980613847479153960377393422892893394740404807064713545708706418795507770518864951728656062928116985413733274976255400179453711211600122765440885120325895880878877603084606427912093656278609506854271625288434274730706706297948682005807847474447883920600161424303386035323927548613058812528117572719119343549662897985185758673143193147650344728113106880528995639167130956285512275541077195510414253620915686124186776179039498611254581329511496598621604002797884989579722809750258831105934377044687984949491058203259585860790430716781869054779067885073582976273315733315031733975571006928476692771768364290786347996222997131130158325011237966010947685891754356129810182967819373126612588455821393272002728618467488415001655732847692377998685259580991970771844790331880912274475716359959438768507335980605359697413380720348318168917213335454131583158293189821663789051965882438338467741516215100328423928365047811244369883557001436644017035386739426554589871753908994166560810618880652817108688478230226536678548254609730548788510442007237504589747482165091037476229762786944296713768076343925665827882680513043208481885548799643100664016157776952056219083519327782390698605089658997002299982099662700675910242761875056308966085734194761866082032861443272560942597767147812427922888464763449086495400623577836742454770753332343099199608928801536520312154179043274571538693019534176866790284186393194082714838277889606767158712002929666805937924470589062910860246512496496442746474066735434891877469235909933795171100530669660705062810745175659153863219865042121685965337210759165035765146889597113654784660702989822921914250043153563914978188863753239792208368103444608426881550650427456912577359539196236759071823220139091005828053135888650270655536676949373685883987484670950434986664544665000805257581803887710989562345091791239710247936387809478232588877274433693899559537113587665604147498956032113115647064965578891522060909123964961015913794448841607612244184072262453774167869072757689805150365855132637687337335346833880657680962404466579289392912871421759466798722861014962940894373623858114476110158350607987774671627349508230931580216722784531294247582162535064264788822186247075906168944146085251850660433312921445143843654316474105934091993737347608502508422458056547611013286654849891848780269968673226075690191657350121533643420635881675557301199439032820435047239122012388519153844702562380604822433814677459084168677869151888212171914135829574939558411716156156353175076019889546737997344756386643639773000226963845152635624179999514087091224426957535045318386955669860834867528075040730669649778545048324528656586597220513791507915111360379570472497929315150300230863305234859300367489698572717685214591300189855880443281555667133835198056622818334746800842844283228528802874733505796114569686161880758394865433973850170257755847583202136474411739497421740564363771046908149409573910257788296822879781495076854296255553575841639692217803275257949281428050724516174232779764519341819407392884684086315779678883644053250826030404382828290237566945356210555417349750080838663149398944203046607232458822030302629768496678725031998968520617240166043898373533293111509481944544034083004162149166245933990080530695620007403657011705998035146548531319701671677351546381424171774715493277209973989880020941887661519856625746047458398044181606516030422794628063500819937650122319961532946430234152153267765834726546051051183070237516180466791730029057876500435023820190657568384323307225843229588355472655419639107124572746719438988142953667139268040976843183605831998807858541080847875342911119078326743402698215633680344728993292187385191535441770476488941071753244629382944398397715390310704457780834183491532435171470153659735115468813172990499745137774278481973522085521349038434208923461993983610004951962977072996549359177705427164567549203415015789156826252822518485165962365529603460745865157987603354530065311384164955336547785095477234283980450462873192359887604775287171046161716972324185438623070558198644394117578902237000696284802729740201590491926105544183038607119274324802944701585792677540101924550148640152902121989786740715532792663104155303774654222602239089750985966724110054952735862196516170804968347220257919453441452348042855071237076663602218821709321076574220313956519352226756407027892975221343761488593327262947180217130228539756251183885393156306802241339696011910844330237993706725111548642829280521226147699967831687300511520149150074215070686136309234747149828520732105049084971542531921496226416469753603504650040320285964668846038663471776788092697617899703763147754075888446131318017117143104810299525424012744493945724399484843167753955935943176326777602752350686394665351812866328003918663237565100982816225841346639000467399056691193471843751635209279271015651039409208525756786479820654869135721635087478774420223075363460149307594878255210827472096303658646002433546136339695694019427926930498140809572056026662650912381185516275919634871159678860190502145080964947195177633308216982874662126358454348437779786361716362811582618425123739968678149803946637963529734771343326923253875710052416694622715246298625823784198872498586676187586623605498027697410003763915648530125276519894295168122401395698559271073481469615098479581911667845122147129097786161475860436583090437115500910664914339053676820950245924592592222661296045893867901284179069126741908197465082541321975954202722464039540873489964675969724089532480710323405388390409493004933729473122680627987136635076581537604767520176456730150360111807608733661061513347075560982309039349067451026189505057954091213181283686857710894060539537846368077419693599325087839922353382619576730360681822129998088366610328747333073998714956188362064025716400646239468747688518003122332365281670313558682317507412665424567754193457303252330985515373228222717005877627655152340750197687561047838263851294244503203714170413821588116226877533192283124117602400332017964275626362858363932966330789563771552027149087587301328302656890243216786588376017950904217625637279187700217509748034570010351472375097990416389889840108076340350753666685295410282350764491384296525647528967731849940991791022874145393932996963743073581295617592417346321185847316511625614205430981357571944832018744914896125723511394553959724071835067353101909552999256647291071014415994342580625482345562301029153191679902583284723378779797537704319055643224939186153753589588755236715888807510927656858448696643899290526305739317439504882621067287882013276762078254386280583273539303054978824637534464789406793515801670904445340260746540362858102498698483750304509957287678293845103349621403490123512650001349807196722796883461806762936676694623898511170011799503506140760461572645706719888197707879469404778407291499092982264593233299256149678129654399611355167318493218518151182164144461207737792182064469848459996432111920549156627805108787149863854650714279678641146956390334846356780901381823120975349543819152134035443530463566938531430886501054859151864311988808025995763508908858370091496919668179881065967221417099306533919410816958104931714552955772497155385047633086559079413955786241575358352099440464819363047378545738443563101906919582573881700746560443682995236949636485265809296926692215617425778203892655679032221751067177931448562441197926951980061673681673211011418133338160364686517615108542172484425549002362071976078397321098399540518153721694408041107764657740374831343951077015679585019581362842548193972518636355590463443253900162360944849257141780930620875175712660455861616644251372066580197554843037275107411272580679540720498437234323710226748653049204807200514344495440322389998268343655780537018875055698685982607722330378797926413074264916901141357757699986488647393012943510485944060742242607175047487916915497192210760373257000592920713998324276345978565945337848451384078170077303355488017781223096990755533274060748976351947019114771483769881567428058342504119515369633715312104465589482118927232614017089318819474641666855320170935777621227360165759060184922569147482912832334619915558854765010636262253833332256647705653246286238601291724705011921703719434302552868764065969899912317368907986008054313155776195967653468613889671703780067851132406696011002158079550169910833395484698054655366898413184202124566064156096176057585580750918565121078371438985221663723755444189998804640470604975946747046608491103600508299080331710589457214095737326157435965130708566638056274250060516481226654855691132005042274274511534182065149236010033886607531022231826805376889816196892922676364816277626405560345459580015576743699549234424391568683098650075651932677428897788198590330065588755457508844474216426324260656033188173514029462146851444968585014762797979259720890723404211783761278133860885113551851018325103043643596395018313360410303877922273137419801676526524755366141497059654509823001151366446029111754868309062371223275199314755045317914253788643956748886322643156594651054118561207952749587054061542129622800704640074669883800867065961127469639376218329446625169197691636037412014478200247168579955126578737337050606189721925088716507497961993423787485045811565340741418985529615702408339412614020991490256550193726300467520149598478841286513709344780839984842478354979182117382011001398813708704203873862067530123126453134471770284370552768671370121812421460567592080972597193773835458078013136512654725020588362092238793740108252361299517128156890739139422130810054956890380438470715545079702356892239162634604721304222201363124345872616739691562021746702925727050230471297727808637396764609546515841315148565680581919426227932960127290075322367093007388184752406963385453731460484099939371584561559760065281461853401357690165869081420233013476406540596485578277660503179063577140187470856114220150882272836167170275451921898649829400842111793275705320335750900411152138433995360096270351429339483190374728664743456566227852600136782606055948502906044467415075563894407060229099491648458097104844277802619976078398781007598266754008041327905966877285642043204535310447269246566284024549698254200621248963246347578140687124350000259626989623027844834117548519429047401728702572414733345878189255213653825684971309097892690763808829694678746474229160763055775245672060909725762167554126847487212072259683647276622306152358903160731843417183504417513017718716718428551423866134299091840994198796310701331125849562367320718675572153821919904834415367356414694834363503296892481407600411355973019740309680375471038788118359947279701105512841288673670547212715056201088742091179346457129914185495314126089363319139605095232082090404870173287347268148361476605356395332886753458349922269098211050556546018603128486531125572359562475865718232378477430625979182062328550974895483553405502067471761638333886227963460025087839361088431639960253052293670284555258147295644368188125277540527978077659637779797072252865852255907568736669378692537170057054771267835124098268140040209087088388492065107267300196844319830864597866296611448752500433358437154478612862042403416890399675578421499227479715310686134424400697496968658048896294884015390490869450099259254220278132079353891664006338450451696506491886958812151633329647835568330713074859344716153322990169578773565536023496648205591431968816880720686039840425609049284593284327070206632882357684697511140420166226436455565976519130867724606472285555775093601218967668028691778738314729887794373661516734525139455981667641594627624291381597777124393224950777216667507593923130137014179657592403265191183167179274693059851148919705080883187239933717381931539266793261194919812632997045874628755596363790093919056696454609768650557020945732989235145927924930596713772988643092264871367194244014901782685522265811027953444617900225268830828585749624476872296602182151529978032205491408943849666922511138199936249422651607472230547849183894763841764230012269054579335331922460922995104399000913440618222133692489060370530472120209490734896472149201375764037014614573231639168123148232602871043914001106516174581916112363932267534446594044469583163460176673428701348116429486254364235771944685677431141574423349047848903683908350006723975858391202415007344576683635909946527243901217028946005408246620598622859331015510995142729565981173914332341848557544273319335985693931971149313451540950585080009636645967406127230302087106659755998971946998504645401958294836386442752816365766876914969848546019877628371120708805644527556837833935580124730267524224727978734834386359718198430096422499613387143685124687221935517142134836910808347396791991481227216053853572201330741714567531719482586756169580851663601549146300390198731426766840446912837956528151571108556334474784648973685483304994181426350997547116938535904586687831201534957786332876117370313772435773180678712829733990556690650971942813103181146428286875029640345334874193538081527082473524811608436138621948679420990954285656444003398081097453439078899420957938749777051676183287066742349089581496926834269574027788433568265701184880347742251233404070032925663662834667030863953644014833281906178038743662303659312515640142388359737363195929104224688258315492118837333558357031005871842482061126763999486442157282177529556130653407460909388016340480352233620698729545145221840460021561372449806597676775772791769126652499643661822912039806021259188797047472690957269097187704876779197075305167823887110686899439606913606419368393496845029276787743565279711335811702735244094106095715397714633477845131848189606778328579681824391601477919399059020539911657559115051730025015897994637608341015061414676303952727010595553988030663838549715176879877071555978689316104051038634764504758377177508734044254439098840193965443345056938046784819330278340471257860154006359288362379072856196702561203341001421916378709843840009334132027662653632033614708535288525398815857860259988827953555640335142339628382549719007859463596651832092363037515886513882821330873756746303208746983988630896263205243858104475654981848916742097946021251273609215609081308811251678210744120182990663823334246865834875207315710256979716933043387381969958658390067841889264827582489510163496260440976051026543100430882429522288137885115394046400025571288847635727079068874971528508667986815503492648273035620661189236756942966072215511852229837022119684655841085486025251642940926883322805544581038824681518044905391905383987184206602702107886777830790565356202226780681401519339422957095391796226801194687686239520385269589258333209558112095804729407956993246843509974652699105924217398007937439612445835740971306004147326155139611142213010234831707350284042239945240989607449306113950735967836364469915367967430625150766264537629231139778764908666955395163942896612058636256865408190092691598885749651111315565579841334914146330263690887826200041093146527581250750702102761624098688766937001623015421493151206953301205720578334770565098247856509075997813934340655656621104582981088680444500150784632189073275687997953554486233066958788871567922596068676392810125194459525203859470762225660587506234992184685953009477308155150974985712782757042871371111105121736653425005566864183937500860654265000869443960644106204566305296588016824387407786955304511779491664263048983366910451119916977551973951731557887835101990744248742745198282246767197007134496325350896260218667000462955338389915889306371411046161371655896437553145129331608491314483497195775226043514424540426665295247349675392605120099329797685100444924131412123270686800999867499488025909276231426071686762747199830275073634091554203025663941445504870635527607097105351859046121003720540633231631790417450361262132848268267017341617393520970754068751423661488090624502450492860899826722638065699623271984291078039816930431596373048036241897604150503526294507025712396060352347933748033351464795370853671710969458588327272903326635919856460509870157683205398831726295286029897722808005054876642048207795520929626619899518710106313091222381759897549032614685781273390188963482427239618480067175531892387609944979517760159382258431554337820380076122799051582494064126040825435386286696266004762112162973434170077085603652122911116350521706695336571767459020485437865596066132480635340806724932112312182605950357216165798827462241772406926290501892909045991593054112606208806936892422780948801256304149559212869329391630339479150918261339175739275355941828760303248139576744300302788042526064285918613123545683544592889326598785443317785980073797543031122387361449829864543779284271077756089896128199311466813610694517099645060422646965246558759897022087308145268245653248466925507647695543239285888963331788739362291530560988518455620419028587093086364379046082572349944238641886181411197969976359157288989351085678884587407093267312834874470714714923708622267205725918475526263499928639422729718875443099035045670568365183113575795829236597391081787141333650017013402209435806743235042154811999165489372770755285097881698174252891709275562216284847412463817041683305762241529698081434888453861771299198550801060670452419115543768812320508092721727005028783295317201859541447378480976501841581987665222029480138781157385840906835425198771009216505823155888279968055949053669671996617443364942346176849304115769506808617489134228766128664344534001682902322933506780489242423623358715704687897601610398462026350973634574838888260311095031510363515939668084783108845621066353182430803327112493260547695343202629419909249450084282327996335896354344443338599820662198093019372950551076162279939889371129683754087317894898953184853413627060689001217559026480680139096974722069619897420772061250273437829921770603277570006724791491556828001881657999396347197070090905490205423488018215328881422349687756163095695614062502692328423589920359257641411330701912782273742042622131308541721756864746781743883241563410907549883898005038468118055013347917568903360085666738015910349768035519998991413321082469749214580468316268603550654159467488051626760661522381024431080040838162533871372712750465934117498779885348829698825984999176442985903732440594298521787100476079849562114291545428921036025873937827767337977105052265454784876066124717856688854703381073103319781034269283257026261627405872659582825644794276493299772186367315376915008957764248301555220613040022354680006143484812757025252639997179608604945346431356768305634674887236114717725754278977917413135832901521749158282948931094258946969881967880125257038457974028111726830455524750245905825042721884309849673038740652574374022259321212060410205993604611081594010873720327028039894534161981306357457434777372279427512756226605253668220716557601535437329078944424001947855198129944826887655242093585034258395972733232089412129332167351988084090040687862828607587400146475404197229104697777151004771189906176654669810876469784666396667367280940150221698141222194057019676576794686299539005459813975871191519713660219926393917886081330620785000254417015998285830440547513899684952306720722805367138299807424167167791102715809307019910146545419801797439092104790893014178099656501876927410997120473721674943634571495523714700604051944130774458587474260331485471928643468377357365288344686055702794209905136693261650712087055160055467280494663441963273509638791712811691975834021244043325868629276168546320231917569759743608521799652915082480461007918727702318084276503306503970210982453569964245051538332276609197154284299455714108966736973168216848110232300336900810553910105527087214481740427677857003460786251174366596160924462009638046739192326775289013119111898918651263993425201050794179628824900862556221926607492947646707050007859245789428766646185358864640418919536607804981698094643018189092328435796009403229574117440102999804039584319332607261134434459982338187377111022373587058791082487150775810021876401296991208662814168466735964233200954988591483583987466389727721095039395834175929892562183159812975602648747952351917287690882311971247017328059161264654279140234399525850958208686165360462672955526899153514226073355366658533924935068634090484083515433753066087625857894831681255875618895910676133817706069845362328688620182026895726041524976925344004377897376577783678091559182024342616144515421103939158024756880864793751146518590019250451781108650728064866203036527268750361372082080122733076898306812545188451393373761495806627794245298629807555379874908557108848100091138101232558373306971311187544883326577603393861025422462128227882147167144489648568489478307461148855781470646984980850596504220456457652903200135753878031775946448084576920660881697207119923398070742430381056768771030945401676199738303519193947336683839821561519375438197631312711717541255012200033448092218963189113035550368944006029630120754782171890451078848059500295114061814856408720309168242335223991928250420484026376206955280297463500597058974057987211245461213924134064440157099704733636164896670031386167982746866594322738665381851057023401169347350104826423422540858554699944285714624665271875949630650943300224949734599671157556973695106977007175211438254155254404804198054197030027112020413709822109027526545236230490801168738484828090689320043152730709830084504138284299192081788364513440553341256919726381164609693298422860847413813869393038206586615745697884412200785617398942648212120100780816072130603684236940235166850937241688553355031763151273622403808365983305158016946352029374101509320490004413900670558952216391497231160773201265659309600509259567657408552897596849020940148654623323186697749333261131673411000077579061119184652887966127586268091682656206815329313861634805935916574744730433360383285362397213727467026683775430667778113530224317051613182030701344889424141543629413786071497447684290149703890597248810053369566280371799123105081284287661817643872531874090562171023647159465306988884587875103068882941728455090141964577960186302257276719048282021934762195212527462532658707752179751875203842030301234135650168412515576497009756993550336259309865018049492745910201450048676997001347972414521465177691090108292833668841487787012203841209014629505526360151934855675827952946120366596364987556881154790525920824649197728977220883371960259517981092700638071115716331389332548158965834815836595620282726598346939639823349734264606462663371781969424626864242408291283382942333928294064137460774516979398353472609986042929618351186493700298504667273430580578660651989422261580252637265901334967983091902310059385636138258417504227919944355605224624562521376976335603620006972834996247870243825037724005933696646100945246238411741872351121032363777682151774374254236107833842689090339109933729949820876687804935181970345222913216114477480066390256713430436713833962586233480967034600340461113362711758895180964339914431382543001955584808212687299497540087688942101396537109486716472170843913946310372881033436506144250221820592296201238953049329441366202242019978483339452875578090611434451663056725550488953633080113473643559407816868676661640405480677647424946046134355763640963600895163339063923926793627984477880486903088975992802248322074158264509493295344579156444816602525863096114355714481008490324006983459221748891505704864304920159406496426422448325413006728582463164478163400488457503522008318272672368719142767172338780665298361164301148993139948581384905830416141513107985948190742191802458486420141113337665999570832521974853169733123679772450015011873086596895460935028310876404730911691042253155454602392247432886219446318169212099470870466589939399290017574662241690100261146960996745883109177034862273313738293087488762576192584428307311692536637083801152425351837624322241750493552718386821052068950690632360889203980147132904247896319651651497556233945404811121287534633865244473793143875073582075234810652795314527752599425674815127232656169881548914606947916268998390910524285830919594258936285735793905068047593274379879069324454388971316002532879068812748312519957357841629946741772211684290263477238888942908847236871063094770778217658336242377470013199309485074360479684067824145167465526766307392222256739915427138779092657840358425788978913633235115773199068609100234673190345627443654388111947047766522530215311505067650603125349658924852507040571232709236059798556091574284171577668835647830187765256910234833890715789419430204805378681101630620073304980508749019581681569482841004908799741284192223820174530259692514114112581150530899099486903986114784988999828161459865623970842286605637057456522147505332387187862674899391996278343901841391598103661290440560085024029142553391948334731695107611944045897064672259161657328941446286422100349226845113731117679475508310227767513277296638456176093222848332714426610972036134987712709467790685873293738347564650983253145763640505441734197862210896352793724432235413154040480136536661844704012616214784823639021953437990519343342000249201254526504360072342738989061402975260674997767808363894290524285283498679840671098749659929984471942422342620211463183989301412790832512535652519859770436902618815840483217853553500638147632336611527994123674207750273179932634208223552469524036931396622993527516361391729061014110165471414700014504406924642437619432984056614429634727629259493790919205691345426369045974434733402316762186219308545489001061008158622062882338850666451819713846696549334062710531100747974297194867772588486206449933608814614959005039122121083179702719121858928749849520185771732571055458033692484855774419738941249659547831847424505279690641717878031331351117794488093167839475409278923075439197182298520162995767989561269800923827911819584157326212978177080321880791847187043991485288597264787098401472875705688252512339442483528536457581961003881932151607918417255623122895452936558281615874116945760803377305848957583246967313062117352157081736689196981027238314617423984930187028452919835357803550322518948757423055279107630541338980669314222135239298347094270474895134791512090556796586998966004779807004508108923178179459617789869214753151927805561342995333400863285953879654942945918057069507932167090692438020175889602929135350940845820349027281695675673845162210347458542201581487517696600436079018422058972194613470723302160159205569059342729137278313749864307880144247065406628811685673262250247729616769899841902160515838054289710526375970444348219297755231976438543594401702367875116597363549528962679810656885720160384710241304209158781206322676283873036308337757780950906530746770893010705851938827061314491170525157757937928494555264548292484577706193670057389831057224790350786010655288846220046419925165605368130044937836432982973165511170255721573593040509646058362160197514374327276248235429622344306219141009835685391995494677967409522861020903625906470070108353277634125856823623392352300685399024875776625324609772348891547688137311969130734188300116968979516281644362547286599939833730849118936627527685683793391937452706621333895738792681615534000264744362100814597807596464763219456826527498811131783525916790266043376062934592220537071297880658815101649924578454696279281940213083253225370792926139811053145947555146007419519633329251414584091060204994458642442665810204593370881055790152933248992608056092447243294288863695712462861996516567786102425525112918180957986658847028162779873649934734478047838038586161845043406142826929850859295143168839870799393929692058509393845383850790214271631741579029198018673420230089484467053860741520938082772758101534662617468572258668144935800020079536458898405875126097626763993646684670531365966829543754445771151096169584215334901461886204132543430865195339811032848026371700924313929453669272195043781180142081574468356338935507362491391794270733108117564800526019335867755587170857127707851306006047688354113397761332727392299749646024707416523114243674329147765547085291793688648876997668495040987342169506811967316808684209220409315081291833722961331183930384292984203143349695172923184165068734235586341109487044710760980062675388827845784692948773823182384078105515250990089334635498481374961307280106933332902908309407495750372245162307776871248704903798953064077882676876318580683071886154084557588559976181502298586054838241485555991286093085388240390401760940429097474990747799716575463899348843143658405931966271037540519292825421247248415495105111714237466066183627863435343820831958594656513954950413094555116871359120428101490508070254807467585013056192666976663426904107811285923326690896861887727773228791650687630834894792177451030798062277821519283180776474490445250902549400317201926993587322339505427576343739282187098413431767307027774729030263176167101742251115054923220446494969226429474590386547015572425833928505637878122579755824842470335444774034631790179276188439698008176543768427662661788551310802907080315819834724201065937613689720454736008357169303122366539745871375420551985923354546496850547543134624535174052545482475701083976310231427177195447115853193254711948804333430668947936374545462686973315736561832802695010350555166427935938957238855606447881583230386436744832169566678301409676366320726903025244706784061227211768677453463971184648178880612069606781138038609852128431623129208904809921379314774403882427599082272873285322187163252377604709589244715236362816315771321881409616680776107547473658995231184291758380737331016731076150969772119402486679776429369024861898731303603685543249128634190731280851055793355558402102834797803083607779830964377789832006965604341658215905349125468235725842153426445912436314770862334315233046202858791880921347126582171583298607597775629884934193091790872816239169378306950200046839783005384447837936478239278233438054709470750255600272432387134075617147072071620405875388870615975307977850285143363194843687041373625646551362806894512746650478063898754383411951254819911255504700867395774767574157123278783865958199215561217177471699395835186245020679703409381165627184642248150923113756463254670592911671100125502642497997427518193430333692571942725640539752832625343699762925244171814826119581682116175001591621751729810016392172874572229195365207955756916409837303528735125756246429863488858372741271765782767676147781068829647468837583967303497277357327184406339308468932060763477288365340035838759519027525573644397282008186072182992007686927106993651558273779937440047489972987314233254024814611009907178108988669846868471761806966077235588531231530169538290960963786560537572800352498424113072288892380966187258686688804306601925584846228175733911794347886818561623000718970205939562950512613610125349370707389944795473471910459239133044182850659186528703993974228749281913714920495660733464590981146716152037448814826877190231846069693528897605817243299609835879872244276219183602723795226509026787386528377653971221965292351311713339222734281006016955929887376590325766002302222111134725815246752540071506310225890541516313067634437900713562920565971258976612412993557377123873062133107178615391301717283635608813272109889490066355319498463690558521849486691016786708311016735505687584604422465366512037336107325783542612402513876675393194337716756377648803445435338687727245823286200477090718958155104969810147167016166704826794810522108011699943831556769249926318012342084426707084386676265262343510627439652987079271648616351741374112184026741233285688614356827010881946639594198716286559321692685716724471407410053869701804437296917057020848399414231440464394154685156151060561881792044228808922492172662458317227815796760497477026765192241414882057206286835977489178490935523940810648200661302871837162469483489817716338939099773351760605551178878535864754743841478471006280221961218943038725122059740046106821864473178439883254224591282807351353892452164315006202998811615719087879348096953374677241733328328932400664070705450260908052268906292077259365264516153535952247194152600859929778668957233366979440855108846867391877114804074754303582603583177216598554065445654320053696835790981436478996283845297983796365283604532877278676827608574357496279654539976297343633231630112125026877803051100457895760858850474752124858454303675846758640501052474392942482378901000423202946847352520927036917115670853460226897909679926900678683988056381083168850603617116489201311821552511063733940667536840346662540719265366091335574974763740377678685909744533406861530389987845245010002186648253272300969466995871033469030136056019462157587446558834424523557727117508472753218622167114877224715080243456175450403399948078721594827899477748934276675593232602535897064809652573448495604394794881651196418856288442090451817629093589441578401410672180771521188525045096849721777037874864355205500060606546813160261200958659757970989019705720380099862520290701014887192199906066174989838756052413136785098033574786302690014870855996493419847031329444148863131886893803952472308312408655055852676960166444426838940815225413348447830918781465603855613161371401392691120584966219687936687236514284979385088066398659154303274701966135923858112344765688054145205930589897825796246753726148803834095227121680600705003969396568390869750617606033751670023399270719124907671353510379772304020728691700102647268859885971702360773578390496550324383465129659492777941608320074824101539697356463294944439009673043022390313982317781498118516621381185317714410132271084812940385609000277912621450692592764341839854612998640585326334245236673881723695325847124380325652793798525977699885851643997301523109335351197780727807881059966694302754893625559896385099385338855640587406939405213520379921863436119213661242476058939245584960606850960828206836113465388916832230736245212334759899158806891149030688878678993604367466027703790778405077788400581957550108948785908371355707321314000859981064065936221139218175452896499004776202048102303016142099565670441917097440178442395877269534448856388121949968861047604666029721805528429189509050211505870152427076597715976446161752963390848859343994955288726700154818312499369017541588854860414885283772921659760541177785813989586164277628518719886954004720488747366985340596734605093726278585377605805287862736503108919400503056153861169519759764915020525224965399532647058879063153738767322395428332254276349292326420159169518896142973648212412959444575512396750107876315998463066821068795455581303336245433250144672403064821117772787343108905927394816684584914773638980973613111686259660382952894762686383535483596234518525267225716718219919063560991894153017064999617670334096914110632550901399650220565332400978560496061439383231172218110481764427465836979446560954524074849192670073668273921385434015896604776041447791814411215359742387602539574778789905603378176022311326735900047708023530825658659806903960209534509176563489088109756816569221916933783632941626228639748542770663767826003804693816890807828386337353852304018006355281773555764835844454098544992337766326820287849955618800869444230763371015615684641288869587150317686551981913919693938346894569436425085036385481700521357884904226037043031592504441755685035746802525401641849661282996620781237936452917036155095639476563587323778853793548932169951961953764881328879315579157890231376286775081242704519321739929105595267662852800193384894322865470199153016557373692582584253152510513733755169724809349433342837562788456204816037015052388792550034457229602685291432049879497965738784320660436659265205847465306950397242143080232004992622527766805508223306960476743509855375516553078680956753845830639411239683169466743622167036874622849151805784181786479181374355825844747206925547177956255788990778650866466034515833857611196002588081133083420350885469716338806443588796248333437429958636110341746664147116935365341110286613846626170469393741640271924477526974529515396368657396289761904960439915383473877100040273375987798202630896354161580859903173326189277150048854408114804368672101810596543764131931433560288440487438195403982110028833403396487505534175247643965270916841954334074141752769939100332025453942878288332703358545225631515369503413959986568547837603760181456106860374343539966393836129821713485570319490577745418914574152914905839402979648074850875924357310978753888065473213229927878500682487209359911151814598104737638062014724117627869990851413149714515534413293325359180280272020393839074946430304850000455143982783994567984398546045039133337220388877317539034814217089576357276669587360439766965371389181834597178604684490002470221689137542839750500585885627154221263584742720185276450986516981554779981837722070266141742061456508512740377261308451220401732410288018342535572717403890029786667769767106805561920008733610111961011845860633925579901533867722117536085788221529943390770781507135315874888835489485436601226330428815428235738554328377169983701284178085603112946706301985692131557724136098475708570237960964072964669136230385702922727967158675341852673095320843040049020676523306209266591227783901122987499018701489240251249362367472328844757765272034541045743618367703344395697995380061861724014711120013345065887198716114251351915591151312997290590208747089625116420070786540589406505058916326737685918808736739408584726951142075890412778207006181936737279543268657745129741321029320963434368791632240465633517355853241722127067263980254255335184148547440570042457807104115730485358463812441001599102782546766161903980241029466802446938187931192348230510242908240321195359179954068699112976974197973913440555286417878366037465894592361123402453937140844109340559545027838603438047292938919314822568187741308751356008714330722569868397786680259389889357149584999094682100829309470818420342733879825283586764118433495069269227395664002687780313035001777938307236000578005576584669892401291063696607020985141527712419957541782672141575724767554771862524410645305077402948277352589855772953896880835831279111144117857775048972663376983749972201633264597860442429662742155973205261409846798380510387398736230761475649237700236704539354610829832230196197097883694081768367290627110536131432295599568498403572202708456053108454453526617640237985729653013456011538060237082237268243665380850745389984533709480020830604709284635624258365743450690779900253003320067521414407776754332074185331236794228861441953942553831872780712540215140314156274555655828433748286327869457694537609473310167153501111252447422321703702263065204339873830735575438503657159851575266025117144696482684296048227894361073405355469981439577068455491625303290381828147539267709204108811510374504154287128811130404063995808221328215645996856489300998164677971883753494454600212033488843952182266917672156483579564476724605077147423503296885345568481411208776910708502079317967560363817863203166173689065103127662859101676041674991645596175988705071081707771842760345446840042820021046509572988913712185002049394611890282466215370434092020467985246852684294488815381571754672080464204035252342782660652837026591078438219401432827225212719559788746697406365164912153069226760251813010158583768712543828520407203425942524119086391164534238906025564876859376799470785983276172942412753362699746839222566857314573593560780454548644993487201620677102311679686867806748776343290711170119316403903715107945540757904468410603534609623204724546147324199800977215762396613838675258255317655441543793834863823303892351772889509493780191094384076945036409732316807064497741534326763437089476037088702224310546302128604720451587210577131424557061162972588625375927379230198368305141700858910113396765806323410515072569528186770835556510026927294666639170685199346632778890688951164822625139862087644218221131070662170510709126708531444017496869756998730503365300519182933007221283234358179348913206035069187726066808463225005611720446624511590103279402302383271916650013606238059006356746460650966827004998081122411768238774179248192155532153039049290186127381089794597135356877856086549929023489118139778510873708494394494809802689067424535023215575671312023828803897808653342694560412174267131470089734414625682230760671044102297912643771198818014190170088379974238899998182351657403856044305166776241862640992427094820072335994648025754928745139631767149172331091406763142518082780633033167285211316089945109567400041464708243979695350580039958318186870129332601480570963167967206970895552108651697023483879743819761237069546845283959506700550788639423985350134150510867524009951786824486207834719635015565518072593981713717588610067709668143671256110758186024328020639479991611466566679033974803729742534905692791915132387414151179714301814292830745224685400180131812017855960647384877833269481199153757613046605954974734172364820266950790202889651031461625647753330226916620533502446175395320788086395374858467223026136873385041938664641514203446476930180149373764823654952436896432492742043586166251232001984034810356856268809977790042564538124777919768626157342073209285249154128654831851021994474860453559785259200904613769655313611735851923880905933455792273504388951159078936140904865659000067786446405657198307058339058684104162469330390335222385312548966687537590974991729744265027174332568811961525381430992226862383751083955930532734240285219646616149857827613379512888851775815014667411637396516009820377121953239206476203547129284881878754746242496054672652993437026962068752428745598979620840142724862509756702499430503429686193338119062153224344769074815449011439891963670361213629884869496944113976332326226241311445636391317117099423795277208202991592855780465914607241107478079113849343187382510302315469674867519904021431285942069242408266998696653611542922003283218841349274931379713124603295262087037559994446304144684535525855886692543388267186753337823168318791927788548672443538109250616983306863213012067471500151827361510032230739501994244108139488160657148919953359625540831849289303926190931846085227878567209308916291954638451311587060045436182016923740201171227871276443702441574219347492209194459962993545023933887828125831363548454704323911048962324060099684200098971684747504062900783886641577213454606583018169446994652233389030953543341605334749433004521245395513933334838738330316473038240327467527204153553439300291782083650859996894183784825178372367633561562608636347409322519927123076823384502143462430447075999999776825546633069662824860639384540406863226069853063654031573394152345909185137110393268383275318947358533133506170321221650738435053113648372224105566657207453986405270122775059136192782825900415919307137134694830899028037771073575687710185105741309009659154395304305252813579280740138898856242024867566893410775286641995117804358942060874652858142141675759901471524077080337020500182585591235904657995639286148719994200472173064975474122991358141227070529606710624275688145535333371229431376363909981435757410456778245924167047625316975470125528940882649754364267765777371752061510706421810353031011234501184863790458421810155200813277052576868801438175319592150036086010516876183417749246415686453840040677380146778095405535812422155982792478403018043320536753966359538444679243821396561844750055604982449350847948437145684421223228625638977708203410848939568284328062284008953479945744206033700330668619015872614312201665250266434936492986449180630740225879469161429379309302866526813773712487555279787589331565125607769979822403261000108790935435930325273766966565626621247177134337826812135082587258033154614850930202740817839369128399893555290637029012468649309558364386109246348983789385094580392840560903485018994703625703992670880646662920947155952473267642332326122915601106848727924471748460078932230902937619732494024229610359291269334704698885516340180462186262934746108022917995553327334037878649160389196674007322372528790744230064650564019892148336748826151045246381005708537828219049311922894766438497308500666493721381657652541363340854961164017653285134383508904024150037451034800264587454217760580474435845178539838455734189326856926395410056864098697887095313049531517054164243374863839642682229800913898960539386750117471508702128141432269104201410682704372708463010191978644650759926028715836643355463135029360426761755644702406600834967181183869164726200415769713378445569237627767646214898067434023778168068398395610165868293128612076327232348948094760578366036989519413426697855829354841542902588773924974120913741275275376924919371242012856487032863640867089664450438224896503800935050633142043166410732572622499445600456064844210373364700411131903720619593830786987484810035135440117856105405212369815496209089108827028598718360735955060076529386506012937674481206664980129444525710196384207957329031213773335084503255697700901233281309842202123774377278081483116687130062383475736647640660711231508295380913494993797445189001747422470605549883999417368191252237658879367446141586912666130737436264962590531306804005059991363235639098315058366047709677432995788920709515489828122914827289476633950931421949434756076097125027653399858591845052311916964735827302450870326387981254993971035952359950384820511159654198598479171673014916205024275810306161290327584344525616494785762734095111042872596243136413951645241543609612944155741850490612693769199101621870877451564157590723685777213926866975164289510186918717663171937352749960175204964877464687319511579416416851762734471842159842015490890774677279023007973595747987081524976167749421217947114303603594138641294905530983155859026240629457390861667903963424918386655839822421897789980962150584760966722009166179433713705509434950602654189799854915295622825855954966453532621142856840736140643630001800746765211359431132525434724575261769742446651306499110500489455100236556913480672038424860928919755890306359855417667102321953627565716839854613296427656589335457441670158891589213102495437118942428154753627282281761530154942224158284460505787050451479344466661018114995886472293080740430298286195992819050422777614115459698437201965345604232257547126424176267625022488475806481131212991985813285882056539363196109078906490968709098703670446235605594019702242791544155715511058435295532576547915917039232558141094073577045230380425685630923403330612789925846346377989308739672180780158367705274955848229044577711607639169168908412671282937475614237796240755904316279646936968048036099027212695344411071072506030192634603966825063015485475491937100256195383813401009364831615264200915294434406413796462180789358264189268999649241721461733544309639293594033194764744277145690973782818272477333970515417218174796675734911569784181691380675908903226210498082322539483571866015779361579522621274524534475852006701599776448556301110375593707374550740462053820656092790429222283881445956714232365343637175428660113151140134368533485973837039042048355364426967380893731689719247235925019969561841548112633061211959745275246790409285491549557883663078380126950924890167760862046969640853249885304676739127759217109922969083522890613320535859563000695669667269904556281011906511528055859453599367108847899385044368437652988520692705322947831808813834189392352077411910238247875257195010814310570712245849132334186792332877643161378354211317022635311246998102418159963796446401643068545198406258017970101333639858941029388835609312182422301835534238524232529883513925081305613450468562854506802207866547611869551642489589496564282981882699601414353802935202725891609271603286782446182713867484488955734285208996812615609515209118142187165345266431511114739127239176252238006036652299136239497636145757765169955192432027633098957083622198032983066802833497850032975605037199683256595982602153874150710628016694913191922158766014272270414369694355267918908114766018018853173850806776110811129755074193450740381818541893929969960529932434557632234438569111687870080051399139135633068623604291252948309895884291559563372914406036280543617166976193959213551871896665782043122048799105644467730166376841712514761120369731535295444276751511410932291556040229951224058385482809113651924163807458903317248737981540956404586760841710986305649348081307999220083215061851340853402124628081993581630318375974075536774709280885637515967780697827006161716645574093544739334502880249185186770109948134787174895088047096519895293873464819810469630267362561743304188055287831106387516314752798341196352710805289968569261852559891515919278147828292915704190605184275397533153236569556697324908162622118163002242077135452563542586555438180788739814390745265890252291019829581578056915460322138097747590623517056017457489319393527223467109749727854234835914607483120233119276885406477913039547743654641319863423533678079833478397767727118529450110994977636167500494644889024473179630675453927358685927205314560646903249581481570560377932367029406757006192746840552951742792661899478895194785030127917741177051826107380832382450897112410483613217831923391070966470446047139642849862209032078788908504363401192236723384932137512856765861746295243244194025557164092692739382729960330479987367056625811401794564349539480300586939380926115417734642343242601260832760856221578227422032323629280747783859969442846297697744615859848829488211055542368805299296351976925840241846334805731159776851833261298663089772997942168017891829864874045660986745444448921179582127786826744876943871201723661917766829567290487969566125214340155124680114101765097653375122030771335494113263817729310996516396299611349484113792423330999420874546165140134699550441183879772314601705583119429938468772294320601999493809092076820004415391232852311724266723131993059978711253923456521244465646107690284065804872765416317647895077852605954169107678030343456801907568262317071770439624381590055808037214588345612416198661744471947853223805816241482990745945670094550266273617313360222743387888525779873516555624342013614175138952717633826237550502889504759676808805391650650812180401772538468181541469894718500058839307896720908050782958497939429867236241751421189072174118686270042346487595772341425430034627221942829026891100411323028289739285242843885554015410041678097681063626915541826126928456416674612786572214657482079860030211655271807837920580929081020837060042671146593066511112379903333168935974246852842665652642056322018586582912754665375033158801672660520818323104893204790291847381276252715555705460895886489664768937558682900158625046259376984528127163140222792289948512149090428668444987701953890433485446809502735758482921387781484649082139568035682985372694602743347703168725386597055216487270773711985468101190082058111545766076173038172442626045415268762898173276542824871411374290472658735379823914829411982994659532250476435500134222813568543377585377136145239592379679553112325839131960118464554591507328541493017598656155236924692298377169962036822684616651583406677170605801202972494399588204264972092004191015799685689857590092489074718901819156858324363881059380917776084588438100629293916590783272756792938656672143950159847895537669276549861467599957203815385110204321760910130351406117116957480535505966468501167609222303819541916684901715255177108593441476750760831066795664406039322423324567324108775512941143916086874963157292974143600147570929251245791177236433608563771255511011690397477360495884902384547617060551134462203950651933140157374454607601259507335390411442409845037126441028459969387299514484338768621857103670639248567266435266351473970354207157200394741272145937270598784093874817878605767797052902694582481526138598041244737878325626261013599164399705137739260751182763591679995631839311307959056777952482669727663382533389267052756110064524786518381492567330348420567423167778833272151100028349888108363331645308521733018000042433389856801573156570194423022606553917297877558041763116770498408349075466750434780745003418485966213957568867783960740517149680855310843755138205064251466435821598893282183505650610249538409203460716796053772436874278142045102121181576326517603320210606587271647518577015686558055417187323201895918751619914540929010808302150005084117451393209081697557189366425067749472023933658617485183317692902907549207023729785088980386471935870919269754418118232161025218565066938572332379999632543572334747950147789397470646900564874507326843679112897869442381777556177673898996524503432212276392283291161717497475763292696823542897322233181279447515688706574877882289034275094958400358765409201569533817417282037013942070165532363497836138706791045428070092700893374557464752380867666934268109805402888066631101220959257694712854166942564626039319327999567329889135681542673789908101494366151549119477779560426527982981323284945058958435650251374600518491188546552120377941822115535292688727730904406212633272897385084079766182482667480958631810014052640425989223009157002812731715091206848438785058608198104595934359304967936641081821423745671097444437849769955872623164567570439222717437607181956878501715649583809408737340197560170144596127062346455373338838701804590636259653007797285977556147637424279854987889335340218495503833136827026383771349757670560537328742469107963134410136891829066906435538273774728695164083440399161051898361746025478716241955927168631553659921420141502700795239029456832501857291683761090360327233244030740850271638501054019489340197102563008253035034203832120120704735732446038786737085449387911554158161663740462607008777744373496738893364754698857412593517884842520637104975360406284004712708009391530963079554533761427875715489135712665428426519958878221728454826956976927994472049937439610744896407474924245273251828850743937470516296692455365539020286756503434969338130231180206494401581224947208440492288104550987462679513001890220355274499018721041879483748678966813745861600057236676509482820008089721816861675858906041947268958784697281035571453799120827301070714567545278629341336438830777674931141029676354162697726191041809487153224424982171432929902957971450733265401734671193962553460744063361525064245308303222205017394915190170034480881723112527525387292316342605858989886668095798314421758732439946848865336723552455831676925077181110752617948161306290983609832487808581243824049866841718591505539197152594927962675668652213816822167461485722303545239987539069992161948918471668648498035166526607915852321253377310977057603650719597826458294410288693786353459223549762613131830792336874873284294134975994965307619364623239268615153486751600615670941268554596526598766600757270341962568038569412480955542687707941750964082025636587114697866263348833980888241248208112822374167874839892398223094668260311864117977506181566391992679118929371364157001219686567366845954693837530015263995308959742164222173144816492575328799646989439070743429904513540241042211830437916065010020606675151903668117748068502515648357934911649623000949836916814318575034480076200515231398005775683940746796500621471240984082257253215959355945105457324445217465028311639534846549738708653936796664582982157280131193011832810323249283795868542350771092746051807892269833551797512978846347666822564007644114471836374018903798689274463169189615651907169972737120158449058086291797274233009332896190139012222629695508081970945003177681842652200995785788345706361139127870521619055440330013626176239964565090409899352767962486521952972186005688855606042498756897811683985296892269765459358717139123209485571120577546495966740468742863328456666244525112842360756460602587902341554509199058174855508424857054875719037405105760756545430373710774612421799385407661301819278408899357982458092665381679833533332532804017273761554966222651983963269141567668744523125596629562039367536370659986915752022116696986674989807951584860159936221153510763425360490395360656216887230613111420848870551451013414502453497971356975006194797955964694509847703093157587479954589778299140255304238527156165841598205421371057398367417281370812869233309435807108706527361221738915435376306167890699399621109059277120933843581259687273688320721169963117137639015913450774115617697372708688619929713653091441264468540486660686367095259761992172487563184980008341904146413960038622551110364785251294395123257185420246203427252846192280313021561155926374607465615364575245192192307486643530250762150456594951140560022322765343209633189197789309188302554586014048955055367194446925455446194061344751472926496822030807459479073524300895063735810705739589943746751960798191003193546167740375947196211067176016471306977168759965487270136856783256343720723408162393010166149687552033509475472943314669536530518896609377325863403012858704348950643093076111237509113044320081914798654748890281479074771259223036947468456412755471265791416730581799036766337234873855124954008070591071218602967157658538815685544364198534888509779515884823144069382223446836698129784703487425002395408985620777290152932604877939013402618178957112072076598553428425305321749069655565240708154053773842265675499506671669610220491576550070872269240346286811127213480177410593330049324541700608932788005536181735853830102738956772408616690446343061185095803083493282549060070040490084009315086490696591434998604531852197212321470717575473799030167870195990104315874344458857012938441485884145987935663118591470111819758539447734460517689397869725724257490552911602935714853190900622541004831858135064541215126289195912577291461310672035355272155292249707443235215981374442592846953487990315752849414063961187344187034810642358095540426671432267679747180601213353471268417213435350890592075313980497249598003995195443503984476355635806984728681004927982394978563582662194484846362451658399032126165291303400428573171199963544317463181101621222506958247129824719068521678842978678736009898268629138606077991142207670582079391102483147933411128586483558353862848606389870609086450035812156971962487542145440529665000612181513221443578166967226830432098612264914200826960514846506174119472307957589173584377051011056909535882625442875700807664107709405112177828021743559935913987945565168379364417941250412000471531025816516434920021577675817733306182145330587923081855248378671771899393977688534218645348693472626263897970356678525394791966298134244492743770898976872800830670004158607008954102958993446883753279077318005942300110059343389275887456560923161328454848822745014543607067946223233714416856824147450722401767794789841378055246612739502316713596086111760522021319168986308742743721606916609256733318873286323658196126448983166555542497062727942436589374703191158440900867181472633442441676976544848586796738574002220105104504577098143035862062233177056244130051903513770106477631272177365000433524639937057230761111914437334908605657325712369222977052595358976616920928260969135464242504203063841177686822556299188223373059558984408458367333265311701198917866572565632990891887631089727780359858325283365123386598415830285462727320102811971642811733414903834188479152395530243449645631906302988853917882778454339005958582787580998315310049638329604143642749933070185443313186634765147604500683737818509527815025023603179776437842441364427534682433996594882592186958675291091876546250046268310800320178886173518099190664265069091738820868929566629896592382500050352382232642599011436909727730874039687853355387582846539361028465370877226830241739652655213575863835407587967629674108774125597777843125586251427374545647347000565207756498600193996804250844267195716658972943879791193826279512556071530666635881751928221867374174601766826269175553770118656607771468716316605290053901236960671969755257836758789598717286640008157771784507127241188737492470355785874265016986920352330093536533954747092976618761273854652456496291198297964996044705176127089927713346934859091580021891842494575994891323929894388366047156783647430851306942714281567910540562810900661870504262958006051273496884467491330365389148170858937566030603391182246947209027183833459731334361721583797427758987540857268761050229230925426639984660295248450859127994809647942605056085147125306551689165857396985237905542873228477053462152015183637434114982052768946103764552988032802324130403564813433338653914300725581585601561932974240677434648244674212187913953933608373238511680086357947146280629108289890591079283134188661546965185709305587433291512135386144282184611152491801568743241646107841864377795262769416429252445025092919325395042307000147490176619302349308711605936211605986384761368238710888269816089903520019066823224457501590273165836360572203828068553229283220145538845236760203413580687095148611304308678106171128693072297529710632130888165443543515791374833427740687661290706640596320600746589016556749584069333058306088892239680966172886636674035714269577622469579180071139628861261444717314319439921621298705725474085157249893290929805728607078471946470226577986852092634560873292184759734163737800438207391518904802660466516741788673920284886128766358514280772647412910752335362338064967765600993285792098002874830268834172710376510827935937234337679052236617506144386160019399265925472477523565622087021114039007768345603391489438333503704117076599073662368868591225847405005375473074488274997220580649220065708028810948866393155883148053185729719400477129081786125390379882947835697057798902141748137884404736973303351117075148084677777960903096203515460392712733235712699414474244776877345154526541636691478419888450006128842459263971227125849664989709895965198489486016875327219945681451098095480042060816036677130538431528942024854592455293034869509062589220710529036291934088717217980080824291741474265188500314050775697573634924868789323325246757062119695126575666650624776038779920546984217381627902377807154016577068515196818893653729265858465498289190182738333397018329265345080473070190058508779518275617146908988821338347545498216298872757761310860735524052133588587730685423768193996360582528811187556177084170799560640960325421539536620982665648607521343027279253501571164008083103731217572208956753328205914667409507542702726362701494644296280541193308649679379463116529338637699947027847389330030164707799140547019411879375004415734143543227750766682242636202854091242583565747558552758039631345696315465317403323847562487834158882951302784397925529254773846655802941905759074437122072556162313360748574210827612884913250851704593362009996557081848376405751206866146984858285192434633591163433209225227605074457525238462169179342985443812157005990464392142181773344255117159501910622882206931672939295339919462103781051902904339204143189880681556746467592858237753643545008702018621124687081190689207916565819571014042230024478389776970871043906640672284818965609354268736884927362584748526069893599945721955467909441469683642696595438593620299335869700357906275972946153412071398136227288818142467786601842807959466977275024322089227960787815392652531129191301436220799394627728513656430418477114029570156702763142244077881010104312968633534268504526741536573742761209217585368709610365068963853327151237598609268539143642705969256986091782711992702993965644321678316032006974531197876764793949804876198959043211687103912824647870723369440152180333060045950068419717533099227863210358593907422009695174416686927147577458041912177300690640874432654373225641872004651186165669587868293813591869455378851761400984340987590122529676762078173938503409066276790144149221083402938791322443225026657284281632353303241158424558884069990263870839353218113920551854707717542140651154845297141719044323586505102353357770562528624186354814411552596704878136049440694309610148930737512511376844829694525277552657408331009452195888944384532254905995432174414232561794807631528375585841830364811976587602846141501770957878709768741562159129490757841738157499923152555781944781336474329673630180181266624994267211873436972886649140942630584982703993383240983874179080152726303408372580219209118776836375474331063735790589115218220165658087138007202457367234530517572621679381192194633870799243183583209108106249753770183012122664039783260064695674653903077619849846281214778676952545876928240556033128899163167775201955170173348722964330883051018733818380028971157535075460118260535958584490885158628039961588007725649087199701190258654601891647948294611108351971306008396058349894554219052205669130825671815889461942815476163760129043811295490380401823077689568325499391493367287507661084378042590363667505354779713273258657280396771789652784585114563825094811396440365335013012267392353419111234193627401658396368153828404122156307400301188694800558109042549535649144129120216193042799960663801239919804380013398986168603987658898097561177970527100665601515995068557692627532426400165730156420937579735015325929509878444572489252373588836206468578710008731655607503171526349773630896703601570227205266527695463946946105897868891557921790153997455968171694501538696922511716281916503973003070001234221510789350569306115322683082690302318497470104861291295679277761611283755580019750364758980459366882497480205022254559411783660500503514922650910067028004530960489324014560711703527254877494432164384519346137265759214312472840833341857208395650233313372576186111042028697629424247990485337661021484820543902321279689903142785457922571489632357576334409145989125340921980572087762599976369066375313911455060525374883722001571920381254611922656408658361092317602923864556578185318269477019147906000220684952838011387910827150135173530219081591485945148930208960056623458750973572193389695004214564805992191751385032492913148586973087491439134650635760022053324630350035711703977148049629541216145699821095289737474421704424926468635278504597405911631125771301403189311838861685545157087481757082895739002922005092707667282758482653824667529397008848591178066834891267680579054657322236450605819729175131230942813918781924244437010195915854686788487719704010360200630544760145461153683186833893294813349994737977881438925229730334854250306450818579949749090574305074791347538332735917202318951819362640622036196671592653378908993252051134128399424062090795219943008665622452458582419829975718839947545488580757693346141235415572836031202337993387012606614136623855897967404228586411362389390489506462273449157158296656401615867797684705687349559269526800221801250291197270295975668324890559863923866984299248296639651189513065918883801880378329442734148558948462325245416174615953794261618472853994680692036118766544489311183934354041529051801905319731285404740228535098858347801024276424581964001404102787386408391929413209724082989186268819101203248413418117708397734268780075948460333195979502404501335291397301958723597709235345856653089333995060302037823858113904326876748517795974409614494955678987372422375323328308139501777872197583035993972581652489699918405369328948432770684460652251647700423905368409351948179652991286282863726298088553150394538212578517687164888847627005763759140125454511983786455966792758504634681008058301826823110374538054358349821654351103590989727988644156579150480731745904146151030338098817191139981300065598251733737561841013832052276759292709695497262327597480337687178071593902234872788836601172663429671668090336247480886417553943255678409162244607190830356395505773244663660939388519844816267826085837380834303549133857895680425956195619147746774603155196751752752627079587085283811425001540835264241202848416837061373210009139005972922994635267927262834994927933155289513932316622147882252407451789073006563558811086290166819986150917770149688020572292303216925554738278328608751316465390378890752847333044674091766089031624058888557955456535385100583391657832057388538109819918445430040376469760664760274826781895022660015985256451526597315021257459892451474398641693251703256063540215310175042908992553772759993299473472788666488022830726105686384795482022697130471023557451379478480297825784219354532951654000820936881722990589716369583766621178120496345537079799158062437954973086211750263754981998532036180465132917385220740240918752327311701897218394479404111328055128866139998513874867180545487168509831548059623630468388563526611666946236925103426386983668741297963968754213877116883753978581971815063524169554598560024389378848097064367851040376063840665672628157390585344298289269991442132474737082317694779152525471470450493878273575346626417767868305576440906101194159337863330622449628912479501052450125720975304270731247824628950017765297667967238276500711035589423830540272752064997915719477264146452194477917529541206365450072621263585956458532841213397708549551157906132487715464315996503620937233137060736039871897298032112224190474235990672447253272481112714607356556223710425042250346953578650782822558931840689429820745644956066740505913912938316899206107305878769152107414317750026114676918731599696876161616632414549710963180156398317449715448576825870555532611528404882505985259824385451547606623041880873512588342856634040363837711446539703069359447895072418710508170263033459417319064641849548895199449945298255061455458663363452992630525426800370630816232295801745442763032919378088061144625848161814008318773008211280331924523385661445588452936590464744635339121716720999640363333327256663541999452045892367074432072921672925725235436427669279952593088285046421362987911534127905617031666013773226273282490309868956185094079974770267686217641748595309298995901224460144016655974793057952802505682702000164203615231505362007822825083028942025724758946944625272811486783949332038290455898188289221605247359578431622511396640883991990116544115918044446591292534852817803943874617365905255270958743964990706120358557166344052284037643436907193788035542275492035158672755108532168636542178694810520096348872752864949764107264027233235312833238340156454840831265797530314205941030396927805777141586411372067513250803218081483583677035961022868858154239341785339355380796273432297167708225375541506673655883441488636528327315744446898020110244511032997065066256995427351451957929213640578446570225206614144666388563702133661006010671747991491923582301362549182308294729886411461187768757917701709163891892096750287551750139448523076551875134948197023469870398218230147736503747105008302085004083703019883738393662283020374520114488643171188357917009001573166319119521830681887650632242324559757434919316219238976339604241107205720975649876324283823917654840357647703301111186856661392553979107046125444059930935150950228090760026195739172884154932999755698662568878212407003557870090765523025061026735520556622154345057742615300090077529486060353598510809942611632348978645601112363486700555972611452437520394268396288905773133143531179286578025097025586238791761617463835986747238384527055328031168560868423067265277856316296081701514729867758809772832347391393712235519295020832485793241844775376377345049618297082286412852362761232087585031201950825822646724302390488428893571691847158826979346634433092964961529801369221538372886178694049275728935877447785348755964364813980933169762099349125931257890175832490783835429262703292554434773303907812740943686978956753672197482917748834896702168169931865767076591264232652517656616373797631801419537782308898650031745758981617181258893398371842691390709529443720811060382649785016915624390141020191987316089233702242756955631698653538242643580375156840361125383916737706632340426139666303061243146770652302874100056597579961838435137061141378353201192028723751537119685363681906439323442799104880979437694261188601367803260004253057909282126670247941609975123704785106364751451293161825270440528415518613904599729432952129354812214385817876144437470766611883750078413884945204133260810915698999006052319641752166159009272990714368953015300148042886089882630645052093117127873769320629355713252241892663965090400651735396230616267871807640612857302847364693144854757267910685755640235323913196287696900113109277263565869800188758605747156484282283503859335213859058579417998768171519497168255104623354937256889492872757592076620127956818762027644242948344765657570439723227275189693147927627157754460459479942002903698327021071739961091750541711855273979498815159036459600126617919959681603980529857908257849661346220940811299927724306756244977052524451742677235785575791238681246434717774614680821879644467206621137230291746806528960718667835120319035845694113883186679141471533287221115260499882645675529008701018883573983653392224411444579277821237652131957964802214277738266910854916376981916542420821899398821695052972796493007779246921293086551052372478335468883188826632726539772119737184568421577578772100643715065938736000358905285253859357926094641790092031656228470879895015213901133813854674959629048107099536913918936458493055954797912977612071785648588421342984872436277786290134032901024919312242040665545669500034314522427439406959415945195757760463627966594302278273885235397488070253982796613618959226989278847536742332717508453045149386786271895229809370006899482356560067905748394883517986125805834183516592846271392922518721671990409723026886419905522802654326283287254872702297115073922457799725570070916697850249066455549573607300663896025920037937678825428752991623000801650723986883832064064623066762282810487361524923422169277954614819988513507026693173775810018620530551490921363794750218448039292096454119146628647495196365040727146073762053898150282805109546464226307225443775101078369577792978784898260172491040388103479971027457079179486345145939991766722614864182381026490751666023935387504258311165035807494331898114794505260807735905556866149885136078222859463444736342169840882168988760894715986074992114692179724626147024885601524510990225577326753720796376880007255834018739650091393853492213635391383703545458444258460665150251963199665314916216205108589336627318535690555858740944004178677043628593078626813886050859895162849026538996569198749680535369698527141199102375969445360138458275164265607574651971933868416015385294467523352203190368360374223595862828987916958656659953427869905976413314571868161556182362490735429698014919706081835643933389257901909707217870107849447633889184703647178647696069983489949744152998558249006676753372235549226860820621956032924408123240588092826763391471902024057121342600001577660880492926621559304382264837006332037090534745901868108111333942726133712241510979270217066356926264031981660012346484420791358401071294713479494495355934248381568675789395110614401328594553176147369045566850544946400631825790301784211292669368668375894416336364087603547400192424443969746404235527455854367262071228597797942775190239455139619378542726444075271238177157439189253729340576207091881071983424285244044480250752641793469432373187562396980315052462626114970963020708535947459206153639634894081654958817030065290440283009446764508603575511612750850934689392236844066131138236929588571868283719513486250502812336440368689617261149085244120716822402659478922379071046460310289953412385238724328833218072132166092493706612105246447877373129374996672344995930698199619575795664238613680238451101405589992546562119352305931679695610032605530656400166483978752480661688466933760091858428770440576736795040427448731454563328978665384337511240510849968764922975472256788925614717027472570390474335223955544188406232870125980354690088592606753400837188195847419094181478626448297370684287876886335862289125851608266302531129812110894812406137322490480644971593119661361243987310578361031819283905038840455492721138717408751491141413761663582892730753834393131224402334731066230443585004308609788129738574975111920797752513842276414537861110160058569441348965001253828577439715996286934795446907748917663622985845644672540319582399911511947417293051321877792264524171659419519459243649941140373404091457923408907144475796767207843058391293893938828885734050152400149954185953884802417228110695250524374909944819076752546678384311105111433100274419512741481232950144774069256994087695758561059165492262784497006501227281210731730056744001417953803185899560103546541942921491028418645833602807293953971812067983305228560151462152122019510781397615636592258339820327914945092187225113971465471765297222443876345859373858178877309867062520412230586772191858958018504097739277443632607496821220158857231031867928910617997501826006595056927838301177050667847766923139313306127925707425240994772517841166434011282863243994243284699875292199210121289950106395527401760042022143476860056752506891977185341560322453625581000798126283292408804351001345767891690674732022819426803215780587033334511630838113513896644859751457382762808419809934332632059571521243615089523550571485682012402207335720764612833846054679632177331837446365762138092860362705235687191077837978344330796820606168508394822334593120688757341406652000293315271017353957892767558038683354350128433426562147547523808459543941902031544078099912496271461332844373268438070322055547179353232471973895521470528195554762098834854784722091480472356485895757212571569008912409183468017833941179216097081491963613624341507543828358090559601522185445262896368461326336476919408108680360573237475988044117760965282081427821125912753267043566892214513222048299392739930061745734840017261774644731503947415762115409440740148202778109693867018200272020787341002251133108983979165224428329715000094622032389619285715769669015381118795432831060330648647171074022624698588657615108660847929333733627848088916838058276930891393107115447085795905384754503005383719275130276416622216180754628367180255499152886420454133960887543360496186272018639423694228890639044010965616550324775929780509899095126539364344562252106683061649134160101659587987422016276408083798850885575711626279803252963677342978931533924780753773660417274910966596739135187867426339381732649828301106615554602420174979536014653289356735350682474567689113642195641076392634251555415878327167790384787711748038812795123066224959123376658661811276834950976638555023330759326271840373656485314543126227956123435193878424003182957067536764022965767240883886568927911940290844047619311784959563056815478651644502502817123724834533336838512238509924714828777153788162378264137096652468174687635162437011038061059078003308861974536723938006248651684423455981272077487646228547337703420552262909586934656294377525736875230743421102687293266403698428691127560510110757785815438918498851503941596869652904054721334924507990267014982444194969487568153357320626941270459439381996067784978932238704381858926829727771400060326733929078436828042006397450673257501261302390626506267906263272586978924841784352476228467048248004452732394184584056201371249069275161743011406228087246630504443841004038791262803480306477844976436826025891757123378037318715004037829684479610089614706861416558015411859140274453338201203232572496377349131216799145374078187678561970869198405236722251371443696074376179220312912122009419332155694434222927627345361035019777795566389236059700587123748620203403869147624927130477771757003942062003733906141403161335964053205495799336510615098021992271352937817426051257744529354689727489605888624133186280340498164379021763726039141265186341673601489704512237954697376133623138134918454048132136381401088697572071898661631234647717178301019573668953696916142242974128101345859932587338160325244539773291692533118671166657372256765242726065309247123568168978702445479074796140444071647617593898493549541372012588940173804850017465804151863013434282673492125275655717210796764556092703896852640228706940814962888546528389549940380412131241422547319412565904856073724422315578014307935401661732536328944523791962568947412427965043933156056460140678858993117020577031732294473754536632694097679068069538355527149717943609161935571675914146539865464940950853990635198316413881631876408940729248573349816055002825719821025491029823004905856116887400435907574554877036219023413743635453235430620929978940990044548817185913195314737523662881365189167051403358675005240323313887126284853865569967992308090260391916480602626864926801439410218925507257649998582736221232766575346695513814633118685291697837600208486256649004207512406535376846615287968615887998972503917484892530847564043763634556528258206939044383839612338137785695252324504866047163546965805382428499921085959887287140849928549027987484952645087301060899063146987319161952208820665312539825399020424692772263351873153855568164139159797309711003954176873427709899704917280358243294333206913198410776055446149646443475575042886369991264181383824110947588868213215370894493053860940034877000708043224981640568803026939780426757887379641731888847342793271053866628098031838380135280351751670606252302132688802340948832432128841266641064157147978948920670300782030325049640138036325544684523507779495825470892952339739449250898877308284537255294746293833841529019734326875779640576205185588717005276932713896971138241797891277377580935108735451167844983494332989592552522746125148699171584092137871729284930880776750255506257587138279467865504091727632566341320057888728410616981922175611964006921786030075657916849450448828676160974423888306804603108846848875891669695298106365273456345668514782089558744168679193192682813919812118155426954444401866006281891339688618675206906834500334018671959137757783649450523197568514550491331111623809497312658017372794132585176770055277301124393453759040780259463357799422042926451043987201676963123845962865941830349909580138726448399833340813538543710998795639685336150033152125442104239731485386563822466861499059193272633914755737209642482278100452674310762513188697112257368536023756990223440989857092652116742156477746910610242326430452530925127872719508216496112422833881720968155570565313858228470345187537222224291242843497237898174633683011083972445956855481567901394106073268499772167111826896071244868614574076970341644335170228035698555444008830048881331358266613290275167799765961774255112559620794997429240632503720295959492279741147664001696198684382795712332864523921604783851448770046359538941844483131636041038748838394010476614528432923100211052994761304892018878323245154220035715966147638165444297904895525993632076001576305137794432537620017892618270534793592492796155609123782206585706254883230311420608470608861962644271936736022938653753592765285003220754208093838763698408708252244619025514709614331979523501914984071577137799763947770711721914502993167236891287035616254412481988703734903369838897809977792213854232817543161109397123966487589412598815942344968901210876842949607014277624187367660228671897660091187931821211863722191847802577010503454583439137021613840950227794741986643212217696930102089166072407484705527374174483783139484193599326199558151122504485840941970011307344454640503355947555893035478770739704937690761491311310799656294247253840216510518867749725814982863365788887027952587397619058577797416879395475674492791523624229408570214419702069270477660343221010866062201537359849843339888639844754438854789937769441997380014447589257916373037235374043293357553103624578964764026122959190478081601154914741713265218104061981658764061777154265542083641727476185439677905137763182802654431549873848821322099090550297655645258853754028308974732617416467440112368090369802352775344344244992072102159717034862898800349803017531308260972694274716331589278007144088210457362234166305449960226548409073672290588932223918734117052064394766803031447405491079604467483723247984797247512411475740580303617281476572829470970965632389385708992058518152146481020311618873170954455896637519486130021485436438529294346342987270371340410142194914592632260908928688595877198601726574174605608395959261818145203849640247319185879060606086529041690854145557296556757231649815397673491660836480383023877941332851638051759848605524243315559305765084948047983405711082482555984589833101151486350993224941443438430860315855620168430123110273113824528385252574192398133506314175400994200073296795431410342152944549877985328866578701797721773253644633979454152574914438086323928314522278256248749915983366786125940043127457661050520123323859639094326247354662176488543711416583130756461073661367445449259124968744631230345553542564827722644521075994947242885970943503636060307234517031441509113557220830368627160619309045113319057756602842685879697799850306110687332354322821889565353704668340298886356103827736146166602379403374905339745303029741779405533770836599886475910633099778632319434095694200511649267165442298558550523909310195597502736458711289480958157413739939485720985007943940108647523236474608239753862534815963751780331947921370576523564912125932876077528739294149257231317502002340426255584982784999849108528000987766461608412474208833320557994521631311005738211158204650205945942032792291544066283150991979381214660838462286613674880933567048116120859518649419373447076460049900453972459169939178266282793864590654626892714057925227353852077408830471134604918939456275489418296682471472963542766498912052677226600921851799518289867468845838574074209629414175372949359462704790910980252765749741163062574586049948086099763289659842894153816203064943419168365840791512953250740932030028084700905609820946319712256941340135528126067789175236753877474306533822082377574484695237485314965150304772051010819604491505719003117912743651137539392416317408491753781339994563603526114142250671138419043893889125455660809223967482078587741008822790908103813718272286876481648311027298799202746792864032102968170593361309914117250101218222980801261805744215294192421769849319201986476188380474942926386452952897695265445477027768446655667148570273731790435036734174518594740164788398953101424803225882356344483200520700250942179181398223827110401700455933248760136270325187584085411671803097669272204191368795531064947077929353034448279608947894657998588043730924309746427218477548405979084324400670585267340663656380887022809941346459233782410303770668417972751669437936476385107893173112882072623491948890754628812835897128410659884133026907212336528249294332131825915591292566702328225074070360717825772892794402192720219731112828763989834979929536012771261012037139532578513166420639129984142935979982327324725133161969310402511841409564937544211708825821086093242148944026940939275633011636357146875846757484004430779273233226119371894675810858549929345098982636781805692681790403755102228411816876047919287779872536666945552477626348476905805105982670706719332218918108085643345629488493863775823070534545935044953043267564339925632184217501554681157868220825949716997040181250473832038199379478620663258573386589958509770657716853874353228135369344381667987193169194973693993307433563651580222556424360401843250160375175072983130486415811124556703323551202124674783948145332299213047885887203739909395655186507832930376852349771213031412510908582225087063805733757706737612257162868501200359631898598607477996572669573775572774893557926944434540377280681609423629160928435632021284220899346136622607890822407998216800118663472703588199527760309660766963296749924386752767608151354401796439422369134973040725168454912340031730452395322295126238844843022983402504471143323965231303244544556798275684393539120413811534107415822491342916001157762217185899927080210632063860909337661329374580585450072839961278959800375815759609885122387019797752890564331514068960373794230247413483837541812309176022654742553274886905159433634286541781856926530475609639329150466021264893006766074526912108657901214261721058005828497964356167414067817647047376934508222698841384064091209672140821950811043336378351165493434526689481937155419256565019942333968396425477616711902288976874249616674690662628141870694774735627935073890301155509089969311317219266510121774517179201021432926280839918674761050766706692143467870503497227477287521520651433818411924603255505508147262130385527589797485600002933845519472766208729048948166653787561505801500491907405534144377234108111024861126810227615463196532496450986164760292665945542343346318781824191883663166487645103157695203405183041788090015120220058087573578535921672557689304221551582532139456161565871897040172475092187153728773029487428122109958437510425211767889730629807909216582126286803021162228685749576674206935292648616999754743077064487570007544772754155523395300512283483824892372453657953049362504666134404524384192166039736102417656689432477290957723576978808632784676820542678017762330629690641077578123709538602707606022249999251895540242132806514905295133861855302507780819152857797685282608405254907313861819564774079438953206650885455222932084154080381026395077086069783493084309238923325497566228059110378590667030750658564257264979176526681355978301498220014227910234302315464451727019374131128199607274524641746026736196898497495296850832030253134578640801298766097741079252274131876972926375157318111967649951752351763687375417182764380469011826936617805511359042577467900046013901411078935419529505344226385244654507090412826512654580337934645413274675199944683363999657125668541346928886246013526572510920495443504883040698048067870871071287325522645705663526673077112575288828126269687292474761266116107631461706616907410296243745555060637700396367338953977949819844187568992737237903463150604247532705546616874443388411689889908125782474712354419309208999100383414672647183023226451429294592175287491625436231552976409240748563548137084152141990370317703111951653134226982394657534802819487880813652657010561588273818082170914649527838145742296136599742972077496148323640002600269265622649036261545318809555630933062279114426461703142659741184590771661217392104115257244273774891710053252614356106905245925392231558880831360019952148298338916939605051660743358960090487318860176734155998719027714673098753222471027623379933562860685264007685328050930288143912594656569367126136033357996855508294271485978308038612607765890465263491516534904506317292889140062993377418248418887352744722984977016893184747628803720443910692906466322087808456612120329131134044050848794858456226609760630507049840126974465109258108248064749923222260895564412201629443633301450865809375233611286607675291658739282044763197493640676786170265923741521484404208293922566600170174138066334395305058142018229283808599295311093205320012216526942415123146432868649535054772653205376011875669896409657166595304301505597745662908544170356014775694853720485145077050860336366994052026811909096707811156151436075326454611069107772804967666784867656027885326739261192145183609449362983853904143566318030538615988419251205124740303201407311070560137821871338565082769155280547142623066688126081340049926704969040871176481582338024524832941318256147539884738214099639170640897318639005300961335321207367373420361632873092762569562038175179520204138654392758185759438697684105647539740737165788828706562327040148152312909798460981799464225466121605431435731059821597128313313764718120921254113229886090570904375565125949187932749884642199433440215769405706562512005728884735355631160219396643959701744738675260075890753767518659422918705449854440164906480198041388043553611245426156817205214155699848849921748487677177642426058307058759953314914072440954278435471422751459307619985118479377051815623770549263420325676568274552831008550648514641715761388870534775102641219716798394029718684057819412012034772822932425808768042500046469090396869491566865287250334441093943488059898992602846334376524916034006169119884393387278559623097634330072107791755090232950538955294614323858374482412312172984927919806875600032804712601367112728174546379058435323619949696042187756971474084979063288885754902727956543655062103490070130362554610127932844258641460181391834776235689325798599669142553443526470404692106594907625792571514292105632024663666808538198881363973876504621097130974729288242368830419598640915756521333827553040183431366662206943719448388988982931868117213764594276089818595078368183262529588785467407313610033426976470700764703894441419723116484954199476474418655521440806225328672296065742124508681795669143899798347505742329690193705708746757360446311577582735250139795298007249960012050174273386527617006166801834777644624800117845961895638757479552118888738462573662442340077623991303139228985243987411953540954286113517577259751121906510745246230456582837231137174848258809877621747106901219116434231323577457495094967136023578633480851138352844991224038517749570221567298890415878285354271059329436358144718986860390405390084347092378555078557695198610749050320494382420756070246496807632344457594215518449720000083663514860193372157710026013896483144802236669522562612213665858565171456645473125570135124852311233057549679935458823273042241443841530475866572883759590962942787870171209901301228081552366352757450481591883184174179502335698886058232733427650365756006056247629759587962926029794257778152385522134106769142292812014160689693148849278016730837655535647812418958254531288086544899428752161043331807637009935555388128645047244171346938070884112524306600922720809420219784175628873284235905974348416273185601832898092465001749276717493699427752383904358629044116806522009927254467180406767003479942756523944271739436792462548244629398300149460684355847813438073195422666932501195620775656892313331273100491997218380254729350765138454841988480075698572303787653144557995731770840403141671668804116770635349409132157751045727157709013601770318215435343102030028884477764041924940197225016073706618481270374316482575092756286456284497176973592631355680795822174235087855822130537218209377073713024397153476729937736705696825585012743633345908196460074488177589639777231447702589513760422490632506908595133762576380153457358047512744464979933410500314387563580968290062142024068613334642703579531299180452233647698170423903934899022011524349693021383704278121775630317000955124209744980899068608672190422586703934995500870812036858501908980822875648600650305438761147059214811365437331886829484809947714725312115401344248121750341040805155466985821807539854622004009401161333154769511827254353795219824063592211509423712477595082403316924292323969252969852593903119024454729370758618158218434057296239134509595942370847608002863136374374216544427317531512919978047350059824980324190812310060071588893538683895650684118912415639058536776101547301849081864024943018179152272616468369901887176414235372878124601718808997776757218972563542397240401163198229612482474604138499305351720687283457055516904369788050439501910820603607612628263095742428686597356116870896371469182127674412473398714503329990515958479981326250824235083963972254162352420116876550647000148313818608696482201783162501689891877106741932984149823306092953290732068611736802025331723783370785647034828497027198891021027602191536155929580140518082249010893258422638671739721644574166832845135691876975838837318734601000256796333192069607894047358564962228115823580972471583792104564545025024666715418739028307022985190071004091961836073431735385192994760995844997702567509746346766585695303101226331153981282737609790762231493195656943704843811227665854666672059751745603313842628232852594774912662857613939754731120543133220245484719449467039532317862541149539971331703339372215167938308488158579983566324506608368590136595793326466220052415107960130772983994091334182045489676149564585186689051345336525285943949878675247146075294721366000913316142017552953151079246513685148310536740682067980455270047571917634870055434025214224580734410294341265184678638385014010667302358671965269929762750835489705223202602642015939211395123388619474045650300863470060836377727431493886243737431371937158896587008963362133290151183958635100975478623232222364948823489799341921321231219781211246435974650521535226267921198302880293901767352199291082702930260591013117936500078187958871080430422354412066625947693902398917848338842491908531708466967020662739168455632751237289569441425436824214900708977673834843662459311125222825081094290482637434506361624723808328161631480565275594050660904144796560267324877093339819058135512074879150448427028022791340652921134722237983270485873932382981183103516803423088130545055343483590620266190009932898219854100988738813233550442230650052862851579098602782375832342394908870235259776821465094830556661661543138935508633991217399812623674678265195781798059237880882023438259187680922646141690084891033890265044594508871182932190792328187075855270774606183464952277134718456941153172509482280160317498581937270423020453827298376578219263345101781603015703399063332213709270255553007692566343249705315723206724370375421462045491275817358832351351522641952789975093531259301433521510961374190819564665041916980125021463463530251624964612075891441442760699866962779884703871068027863238920838640976604668890328371932389616123796004705388767350572850909854325583060518979841225089885109997565674513796401588368874198869203611514353799477352054860666206869946119314625739323226874194490793909425142094864727160774688312618037564498491826648071439337386354060272864657195134246438557626543727577747180815707826923563630631837227491183049872039886992576706824051549279582539927124442791816416211655701637419759657410504824159978920972824426621369400539554180473579260126812583071986659169435618713993792617202227087716338038690598883369727856965050702170159717218996791055581315366799930388680658178525442696144730228406090655089618510641048202262862067214129793150570566129434706966907599118637939510979558766140958539570972864390798740088484360530569953023186647424027505909922913010934359759489122870017013164860933072724897617566761289742605032129836367027375099076098944450444905561159948298188729325545404970968151891072823994745479810056017311463366895926392516317581795288546550854488603297728956540362891724336579545442589384527088490809140088720583818681002906701683431349192296650509680898813702930694845940880959327574313920508236108652125817316792799733828251761588299376309005051199069710034368084910863932243231234771102735621822570961131722003981765418547647998078455052674513626745603374004748304845068449043966729867875848549634581984469169152462399628586116659402064640497411428174874815760614338496920518401204718774852400723990550883430407088253223716151699049581594849251806827905454650879005468662924116090636274868309915908987673635189276469862014569281674809337609736877663052942314230487446983556818317370531100308202014586056546099852208632016780995082504685341195339884373240513851492139188774169227386629519429108351162712299597371738837222313711197723963514340320662482353437576228181085663042318867614097191178966857923179309873791089454944035778013319696457928462668389713332037789374996384115351446891928318084576884792888637633539344865862474127621262217434583580007793489206759555476279323230313273026512663431053378033779903600472781436307609705143617834536236675767556588317467159951011381728904116439198089313784119303417437262420851923428460459931159596005567225339574554906450273636284950324576606669273555454757185988252009680370279733889989529340046977485803408930167635035398269024715282788945137355935932482788854458663769665811749891754291429198118588184564760520794865984182483591978923451432879535864667748491049469503848168863306915002410959830471793819785681297446488956825931457392812530708517651833111114255624045157160095891575773836450884154765232783787696423305568385424291888247198483239196516591909113091868890935522514362690851442810590849285648675907723659017108681840271571957045811532472781586501117476799249247069908003517849588684682951685480827330409511075056589990221923460024482338325492040750880236612283184957784249093672269636244415009237183535732346807586875765616404767655596778727852089048537826276550654233980820234341671078014520829424074556426954763565822574211704630644785936202015071400810951188410550216756115819311924971219627325412827010060237451037475873095956082890451072980167124078886152479542565673581104122346177250355523255771198039283640629496558323778447805938514331596068196019442471083494261949080658868598683620383589008116509895399013037796241888079642454003206733647197136863044129413824972983709217974229210120130501442632639880336666932152168744215782737573011238235634423322914694477028082666870849991783177639313587306702460863836931066517678509808590210541983420134822669753563847663635747391590502454244451629861143393534149547693167599023408866107977781510145568649696893711575631372577120222765863221312289241173035042533054908466864267249664894550642715075632837063932531597645815675397671670894209178426516754445672979379499638695243809102909386451574025320508282253674154390583486195382247011462716536088775993199011786210129049945638161860843204038580675307065132887858058629526867039855227248716810616442760495630553894484400541483826687162301344839267759357291383080256417946984241401525553363141767768521591952183695348577120718414612550050662075829428745850394938648745825847599333622821247293670960956143340269201049560329629015235020156955931011413976000507933166024547105503982795401356162435473396497514995090445539495712613725755756795890612711555154810762140471898289370281619296724490008077203154674341350428893912389090222269754698658710184094275486508220472448823052582327280227367831326794103602130622622897742134294200730258054917038154710659996600990235871433495718161703148177620803627464599499614573284047361775353790243950222748051300500301469179281294677922507137625742213882176754200629160192331758393501160396000440029031207387394011566432594910184484066930332466932550437733274526345350652658515234509593859369058560777367105477812347298655269006170671758909837348469740141999814361575319370429563181901934717131368166641901994405124690545159026411262808482794367398774685299480153461911475104149201886223416239699485315370648355755233061186312105751659372125917040690757780817076889739775482988306099075612631611626147867144138627596940302291211276251483747480121397068701680825655846453809013861011057952724404712888473086669654740726089403609713501585481715489664440289969569048853937964699476410684222666631249164712165643456818209595986481646435056158151930719887446202880883192612098416374168238199301725388680944410118974493557180457013326344448300767694331537601038170246907478459727083483927390600516775800076664191017142959973521023338427890708148905464288647534362241441683869619404662829071231165748878526072138168347781153942643120918636181245101553295550388545771078460793899154230765839899481789942864662725605990703604692046734723580188325625910276610207474387759055264856153593804806282441994655882694579016679638829651364634085507162362450968501834339419313628066914299431939678513657197409533050666173803494401691342061618973570768824158119100525994070020692531723461942408845143415287042537595273052967546173263319677946050058107599343810061569219411227036364021837126027883908887434491375068982879919494635283009186001838187613507175712570186163292627258865369253938418238174775431993819497845745947240552973481731859215252302752311248658046967908670504314649660135562270797687068422764507330804147719004995742305787659929334112157661836877779800796208798333222249398449854871581784473726100718413709207069914106919711938787510138946333819977808689902099155206198963003054109443521075112471185135397747607081793068601597544893845459531147400084152172347293855604415935585749075503422765462558860399471450294836296561454934155852882802765638990341399318655092345489693920361968362981686998975052906028415332599361036754256160999539552816324324169775275783119250327489273700968289252665300669109614407109226816784597288750928687365108607657131649160891752217464354523189753059059110625359812659382572424218797444008825154026267327763040981683336142362137281447165609551378785622070305253883972008467576973039800777903117249711378104229546836299838853359675417995352955147416626101793818085789025224833667593620804136406660593939110669505359876984172141715844718420500139908985414402178104113510252902692439612729497382532134799429212221904278329049839316213654384652206867788523436005745647824014913831809163084618342663680632942277152627141146366292828629054951781443814855207517090994666069534328814482860993266314389804318461206371099630506161792415879453047382421195209432175378661433394299206419227963502238121394558009307400441847430974831051234506623858165574996850631168205040530240692650259982343450747549645571031439165706765072563190534473150769394780765821829996298520122697663365465673891223031005415232428174612152834106092335319114194152303778448847040179340955915408530979940134354650586498054206971477302139561577943548833968060823581223460724712742606975518417656130294629071457463079095587143920480208748614472108840042547379387102742494709673820145613259914918759334864247700735616947087725997936253555068236585353004308713613051557005314824161962447150553478046372471225810606304917576427887640170296135276608445539376342869305897088217953780697604645642642977397195939345116204217265890159067866133392609123061437161787357636685333088919793839288956114089973546573625974396291847162514648273743007315660612468749287932014456525665378470500771198118035142392410648897918157966939662206723517590254819835622566741360274310792380088276751908996567143061356545260568012547019724002782193607199163437891165738329690988286548269532202520926417450325251914426660278743341726957512080602801910350508374661199100595886509901085649499502058165085787055707140517101248436003472197299821099681929664223489369658253177125631982696006434603309405468857202703729028090812539689385863268742292161827247143575764787681474091479898773637933734808040722021102758629507161759727046341670352621877921914994649557978824836123158695393894923388802421823334041496749427004934623204478501730484399813727549509156080321670034374696024984835708807695187844809876632033176280640290959417280004129467099304584605324722452787507894439926381393463282926559512381242303355854864585568000868362763260755557035276022347264595502476124327315786662528466163420703154216079493087612735916429488120387082287868837321919111397432957643801671927377536225960448978766322939764767524537799814159265871764389670201936536484591264062367430011543166635018857530698024101502385440396549367570522435227144857662362499358380020483638705899901265459145625812197546048203688422432753362886396939903425186348248222306962693456385302744727448182734358629099265923519177382790832224453603967897312269396438662526300607211586110929268075925894546731936993899870117815586994783594280018465391631324091575018764291931100560618785224450317006408312807221676597121073134915190792625051935203406206128176700271528900927807255789467814001561088798178990649285511876824966971732685359189076151007157906472591215356400777680611180038162167184997089969517082381043161278090276736483121062031966900175902899908149264240065057185048696421930478016708557520769745778773330143676839739461847453510151778757884574800273225748539215731929226393112501395204305663144755160374478249388871580154501609493476938983193018695575814907822996200040512067121527382090467796217033394580276009906683643221491349877227787793903177270643498180980805367600444725767254291539270515302551724303966447286558163994852954726745267587764022309712599910166923226944951230679399123660951811720532152804026038854488298613555881683096724313059036556357456276089723176524611502880292726988807411069917953915279239878976852391347682585122104022861837708596151493619074362011199346253918844793512253997960200633062740878617673542984958942544327441018929304219593556846091375758146065178519900013335324692689152220672397581634639597431886347359868906188533254846439795771353261440148885582045599024937470642969686720511255792466236180685409708946954250954269479298315894356508509313445901777168250758763325392856895105742339042742081904907567480875054043449868206750256843083109196628423583701283814324976694305852999563235436224192116568008387396701724154134161078486068011190648393780796749453057804444992946611880355936367596346147992060381632144111197600189817103156935140276404313234977540075615877044389764683940239202330564172103152801183919134078473135943831414103153460964710232592573345915995443640856735875512632413794519499554306338162933608430918324775187079935957847277992983738892207195375003824192890658155993917844592110802657239961624397122538786065863803628001832517982032209477847503929277487035106992438104310230632569108689824648895275693021878095199842515256162691489888330003486532656606109670258076261515700665398244523940550940025840805532841563207344063015742393463732236119425485193063876764665006396235929868653363827319755961704337827208386814299708249809053491577177008578509175819299832576764764093010029807587666911948589957330375662914326201909250824811933254414087858722799499548187804066661312792929190133826976009330308363322880925995320698789974244685254907821402668386486240956824588806409596916081246422288711880061901968522720240498500634804327753985735862900886475463574032876028740412566966272527076795291133143957827428770638469337055269921530037630541886885732254247221452425768615460500117891495386461938500515628246272511999632886495579292486313221182350595435661988223580635928645999043583354841803268053263282472472148611201883807692227589231210050864174428582518160476117626316018082517416153503001070072593429952522837550250897799339510165949245289937157952104381972418397945982309869582520096745361450387865235868230747354947552218332549683726107640901213248461682601860621256316863681678703481757535734581978518153000132473522368670330176840327346767761740129950924627354368580320335490802916914093150077490410082424319392095364490961091220340935553215910782579512402183142459398588633655036325187113352110150311206560457679298753789900275466361767878661903028552610582727536064857666266871192203749968013704637286412809008356916286595563347702320785648903671006119585359582532803462201666487644471741077064433997862228085906692458502632421682620738912069534841032501795662667043665170787763106386617240055016395955902486935198667957481992814471255806860366220427967737323723852477030048249006656489320282775316526178387842449030371632752910669878663028446765665348390981152365815286021220742155852302866359217683219195715181776533796120896884771450263328020445002972248531996547815940249829092440418695921457019278679962910685269209243351447019986824981285617784657384692383692077577626103164965889954731050317392497467170456786602964785102977444734748105223665235267587556958545595745778641507954633396867057243953680092369516821031621411061965498710843173354952940624343398482690727919464494979777663428600486604252061146133322229386873726746959244789346074133093448053249823107245953037533414300857054972006789406372004194341301226640470399605048577189597914886397102631140472584959194780499953603905387327689206224021229911006857809386306647281839780014276338531424896162226778696718161830165415520129821095114400227010344848841676568608389880948590976879184805956392833168718976327090287296883874229861582365707000916990718930022371154618512350195277424399870030391449383197087513071090496210232137599865842529463769294599418293940805554178592283406614712036438841578448448579308530347600808604351714230390427213450561260122568747125821620979613649323027376052298003473674637065754430345029625939069737210747521397635911194976759944214190438722615183745556636329726741159377069910195698735688663533163444221498989758526623342825336620733161817493570016687571746432669154417133189846666835474304533802050464164632995103393852709941282901429105862286442943152343252676950452488326542938641648169052769448135102465553485854121879694792681364282210735268396760073737799457474695094336416692422577337232596048661126867491190258833452164780115478944727131582350763889360867595060459697116328496722501151779765356298490432735557826913552264208728479675000754108755397476634937149430464475855814107220817929288070749893389208852358379038765434442286382628802740985412800559136103300069196061952420147644395710252485613010368606745885933373996981057504055009337504572393292435152690238806320356785293653319699810040260772360677405260012670603232790706526481025151123405035750682871062974376378006910105561612050291856997088325520521610580703389256437966208113997114651122480875071634611944290584346705856279375680868994609227397302604077284201277408465760696710658836385425899460919147627553392729736189489060757700292404755432151236519473144878317780949187897790346211537709663573992618342840316884589988563098741375727450143179417856173157602928759145742932565814929744510864829474350243603728189334872785089642429834504920739377359101196531286963320687610790423652414435418746923137042346241080300009501423678942524660152180991455834513209980092699937818294330596992239069294580803667924462892823246977102579950120821528069767520992857188495490238824281173181489373049201946840066586677747397164864761219571539436124112351560384926568018575137044473293285309668033071623545749003647979895981348659275145023241181934474906982666388780688196352870393848542648200367078163006884358670928910275165797259390837648636230952191221376688563792860559375104510442346274822610703911068794891099554578082708199457232958917629562706402553175942943075636314858836529830813768435531576753244562293279566956548964478432327752984617133479024365856705086798737830506427365466803248664335697648701767204160123945370823293444269020491968091062696665662408724124750243727364137636703201267580699706141851574330702397553815257812757251290233938652278931547001773969948400065129520520655753627507303873303767230245559364592013672077142122361852125907892859078369307098044468903193294740084276542388732818864511061062570871780873354131180870028053535228759386323701975853972291646309851571209496634299686826129860561587008765581932119560128693012700323560662745193061185027090653365425224769384775864996938534732789685157014407177365733877327333266560592335190450407649236426873382550582872748306086170279125458239046590794662766684153997773270132366429049848230817210675605684270020293990299172861689589790101318968224783668810998252881076273432956137946811008335079646832495973775762910584100085275884384552969593799489904265588160759317360763304906447083190725741044513646200100188051034086208701987282373507001637651490906161241507798162039511983891813015073776406108914158696278992245982428190678825568406481368364282696608220919770087551856295343657682103870157223677257570478247315763732301273033902629488590174384863285572523842036866004033394029138713737057589159391842503905805256053493843549102905664568490246838374463972158935433742869526369234204149799571062096501405997031111076972379984700377989824967154232368684399072048107527049185378223761355460029021864375619584696737600469448403250628992035297495872020010510502996222013759844851734533592224773031666163831530045184106684353342792529532823628512840670700074623684150373358742897225387385595833304073055315137638331916967227789499845272580117429178159369467492221839208478745930804942555996178336135660442997621066617635475260880215106163693370261127169655318235857866624713790799323775236111251468224763403443007274135437956466226109391202589744471857732759929294746146360849591271417050806706740024575034981629455908238967903244052265589289422166757668287546065504075499655547237487148074718749066393331723645388773764669774440772777827134916097307494439212292879064660367216015527762351168112542897941654410620122897301074692980179875953077999398268634729248204977045063942016171729148893991107873359265539751007582255453444075297864953890915488337594920924393513987783191447954812321483009144651673032262610253985436820412482541759020973261021342071815650924237352724567599351521540720881436856997876264555585536989134561623372456857213050760629869817429915272532339546443084228819952156970578791067683871683441367888746388183008781189766977366523977780551804151963832457212910000834458064989365043134406656421515543205047891076410172012841254045438122678421665334211950236075453283668299508398138503721412451330036326406391458306547559860005252185830151098072774870597733939724975133278597874634403325407260858759769785851341786648075816801959048159195440107439125652243897420539161363748488835384272746989534144690564107807058763750306787776130576800447695621823153364667891970863611449346641912670402267582426017707630111071999000224820891194031332194695813522043246091562560498605901372189188962709227151838905491793194396551477539775914540541492969817069503174365459678685103606858018377518477250944186028973437677336509467860623850814108677777151372979540829500380421312913758630556682853791838443384773231737523434313410026124818097680823370374616940598377420673543805327195641388213033010563787594107584138021926892230488295590367736396533941498411952296881956297273612757619070590080683905903425773193919426117361961267584504853696179869909693447721663594087832448815330912653592314751475661246291539616424341928817602006246116301322670525256228979016756829749576477245807417736158909359227219814967468311007676034223040811010303610419704815236069523289374829125019165990126670558322612559037844573311969007926863979239965807498784612327958072383366385987321787557836706557278432946878035772477028373061928789291501267191573318666989090100826616927750171545809561907594399419808255131703446890618990689736242749708954768896085644011455242536529732427541913358394386066056516830865104322799558113310187288774824107004179264445354593005695335788869551368372147498275999596476179644876932334447404311109970600898488935098656113641788903279975249236947789659981259376142654628723260994175726891743575750491484264743126344723694006054525684623643121651935166490194751956615001434093695790357070171394636208957791489279902576503417445647782339661686996911299661186260386786915032919020851787543350110236181788486728736867673179181630598089330828427570088200362833191434759837615960365276221111143651558057124987535421755390914926254361500492670154116936762397515914357909361942293618321050199097874947645851371718213432662830653689921029518845937882891740629867963650628049034276420319983190876701151937845527473481880258943707108435941210931814199866520407110416258437844491584185585246811644611138342255506394414848212414823883801864688779273710852783712377073076179308312743774199050008895042596137937492609576543284278229468347381855187424863719154609576207653406894886844778128726242971298008756275324922276219060578332605531141182876191037413689555632383769061643236823959049486044241124777400779294682458387457499074805527619800221816510408717833265925645805230386306019770434790685894504496978060352710700509517215882435406084771703264947857769455528491401343211730077233012597876660341593137755486239296422645538639340561422009234681350985836085687120676884165368936576103989379275160341230415408942672349205889278483058124357000163865923896752712378715698958475947884045000375952827553651627252550604728827607696278463590284139691184346554489413230083950934691201847616095290488921312822565788346215071856164851691270355341187455535462905605864722929676314852186776664632585704019406515074872927154276963836175399029805301266282368892686319646102264943467140483426992844265875999449947370466073401833930784268963577565111876279905890236459559981692108280999779561674027348314325316761320196196526963577965535719069791343147246436281004674869453864135488603122547932493509304851474202759073760308200717685289253814269059850710302210672083181162819271816824673057298619438775170917480267175458037556330939809747131725979667864857625004945362316784375091351036512201059015986308777292470092875324049777850192781323281149600466942892130008361798166459216142973801085352287721941339691974823241845631460195091501582108390402502520792951893860256636082418397237982261145219260897484398153596623122470394476733490796874095030044452717958596453726413542835513779975846338313537834539448214184230402850882591723976258860581874156812829480937819274163430289666346657946584345070821473354535727051299932843691670305919542088481786835357608948015094456387897881163449481172593223132313998879103111704963597421095767447652787853317598542731908344960957226112146138193227948103905753690704612668354672770413348292915666119078094056843468976258927845356388358504396060865270704137333744595167617146097738161896800160393031281344563468973271924386777846396003057817094159098917160310061235954471495150543403744402505348055882638960162212973252834311158524610244752026067001268793847662604958591633680982824016531683277180806740696633033521904278085109770200525927738086588231186992209888232126438278501552335196848608415442533815676240956866198474211966131381196875181460636248640860557017893104706815208414341465562599585594420217893969314452954215904867166094602945751645975798251201375888969268888497414688431635955456974049277554650023003837613022775626696877597260677107072665632325764302352302618626901727589534282051038353745117456550329220186458472511472871994131657327693504882362495651302801182936353777235842744196306379026675906545279922944610414151287898544963191640550082699693219614919750539129189804699541685754254658618366920580154382095258868360179030862343622597424805194031794585615529806939435474755990313548622999145379404458470036398343727751847781611550947989040504789456377060301202692326777286047900837099189039543180936861949553639815472708178399229574319081538376878622765055168051333180305260925158043838399228078974858442315902740499151585412535170339645177387313516031640491434467221550513258826425935151577323661533604194329057499883179093477585251120019665344676135021405281141782044711632884713813817137218309190093766464402221135502318495873826137400444061007351610372252203303933782118730362515041753130146427251448978626120924141803152330728929364913345855951991996722711302099925769576471696062421521924461599034995419205247404966932169667210223366702697521257481876223164096652715495599025946274847569369949451268036831982416621796006766027319951593143645796105691194498909704902438321907448704213187632321877330590615700701705111993409328311673218776463989600381663193470117702257943768002675957807103888308555584378293850769622788011155125401654890535452053326183236354438663557530521089968515636812943727499143266103728842810079746041149858216930825508256917840224258946984611248304824388812819434369257835340851413924605297954156155699628884524140304697076951153991814806705908535564763501213451427922390429439827809053433329128046663488175516534940272330404701403408288925260948582853838396961816464136315184194640863003016442733758205349839995656309914377377573405694751959645844348556994564806911219660829814722982233834225823097077828409170703734683651649166107248901515580917070895431691345466772887382693140647201352685781342582784145409880033480076917433441897644138731019568211119262748460006412293480742641411432445124380365889898518979917589533032719261331359276919470858166837560722688197244356802517310507908543835587857672558165737868598231930818759109686649004415565678112815187430449217199373933032628683209850411653382010631310766124087317302829180372794226032879360053694478308338150102208926298957713861335512792562606743345761213484499098870422690719734471530052640276845092280735179455975742608550185477697188557795707348093508669196401617580408286908029671678228301526681588327823130600331129255608352578122595419822153542985006279315768397529266829453194486254003370936206924234452753816912879714695160800207842859394471503950858192351991239498143039219354840856149767396631592734397387148306824746355628790892701467748436134225681627799169032389460754567798637464786210652322896635472082065376867849497901029354586952691754481393197118512275217616537545376790736833887759534351114549792765263228325885135616311814911095808667106753329198746747246614147531711617320065162471643004314950218376190701818818474329807516799550903002938357911360218786220594849302428186163438440869351964513448927652668919550388975094817460249085232401358458441846384669604465653408801966056112848554133898312199705953162645083686427793748622710514130340558176337715926040231027173785826250343741250080006446667203953500996312413475327431710549352877448525959902789265225263671659607943903450606614216471129277204220231885572209707012856887927557745089408706750625191107000886069089370083300312632844456904851056499246357727193889498816849290052410273153438811024383906128838486864349413420072932202733889999925621626891263157267953869643314180380460773974013967597410440930376534090264854906731133500668485516740989100706219886011787795770003553147677914238603454966020916601392464442798606551527873585812349777322179889052879157480324714414914181252905520803425308237427953817602583625057824533172618014783903248922187769371241614570151179460953025853372135454615195817574926175338179776165134628230001595794320550788883288921756882605741447777399234870616233546312311183032418310532735999766197308028781281268472348176640389831080444515444910880592012390090670647359355087397725485469770559348859417938500610216939575083181876915145134487449112994053815033836007920325763193736937685397179414065050276877356537275982358392330315209917456365837241619477779184465362495245064478722849814249451476577566359748509456563043193645812797566877349697766569103891102857407900764951452784608854006937227746448599379943200257547839880943164659351922881845421828062818279847181532647670516546431687435968976018921426547008537677801839203125207652195938177341389129974490882580736052410994326827477836777948963643098875855816717834524200655662891729839810716201091663947896709951976102402215818688143568154466343151501020347015846075947226223385292010185324374780490354112845748355439660514643048057190709285969298052972588366837196749113117892180018513138923858610533245288431040265533435439763713805089554971341197550599278558410630457940716614148765627111900184417054235587917670155103932819405402318093124161081512539984549485287928046605031064501691252770038390446815185245504133290034275216284812650945209813758503711951340322389655393123988129073112516601302309980373022551924355985081319238723517134064258034692750843156624334771199124179498157703007633680906035736801617606899116570230007248166487644935557276315709482179315890554552902058053083160158338543469404059913673032387996472318437824177727751016592395333353081760771258361069887380297274105269585259634550939624791789973202591389653859963827812607677602688478634332374063150395584946162706234695608616812275371131828926446189613873828331954068004557078373961271933546121384519501745070525481122294376433359276482697246851497403350080125005417852103967270756128570385401101715390754390707847331293973214951367021197850503407523642999235903295029028530989783190049833113608154384461269416638661680058035233123528897781422037609074298928130652833814763416888039774945544793036109276523587119056562927823972399984402426087279418885995414600074229162326500156533942198336376320045157069157386541511131399959940501901115125333960199752625835919469539864736377035311470542080994019586728517491014536719712449183845429113619493942550409003291679542193696423838632756250802970790021675870143572374469055409607064061741120945786846700336419309302757801766909316964994541952397827386098706289354215944291587720931895719205635210980913400957339141460332736172034763669651062889994080448764128055071769849677368112148883655657795828538417032505381380523985236155684861086249452897562094748188763308685926298592805119859698587477486094334676766824385939314902056015226498814074196181872318453304059619065150346900485731588050967814835985641893866680530845853072737241946522039446707314792482687684385290021321885626144538738543475290013969179021385521803641773585073373921492318240533912683799989937913167402489152505422546947430986198642294615745737246667059206489757378005768308545258574886403444527177084010918845695065689860433661488831780397901799514489250689595969864839821079249370519982542424581191898451245992392421513943164284319966192492807026248430952034804653376763426773296066569190131248434259890298048117558106735166576639198850482834177486739311537745946116691753408453392583127374235410607241616534744436228117986320059333161902850944524934150402051861329121330434392544730435532057201788174925834703496401369788193734329052963385284852231559348194766598755166713421496404989201837860088325890172034534635661053124809697485052233317459564533144147995369301089588861861791235097632202009724539415465317976827567145219049138323221879740514989310722022184621751142446201329368450105735066835237343347458645986826109280008539189623943893466230471858081257849426429990317922291299882541236361982214659501790753444850003233481643337875112832548712800906795641119117939222752293456993218674760501903671507813731171647689204791492875210424669953631983537970232158300266237606534778850153320748644371193654598074706030830872341333911744060288194753566721255991930509123129190158662691589525513363361613419708722622413215408561435930534987504657501139903547409022287165327113527451007839738342470081317361539095216485712827370199873025414922734488438152476534625703879321978970162520911990073687024962441102887358850390055413516657578862317095251180745342790216319163979244346126672082399025500429268388169040042982018321045384796334067958200118622350522116977448109940313142133530195019160971524666072434075810898201595057230834469790149867221021250614706369770231462634551567813834278987326279621659427859812263171136180888740152110712851078333666713920129494683588869398555378684162953950416191737462669880964691782278141819310047087730972938782058471627284163571594689976422103735665223829638586935458041163438933034443296560227280188753465852971758667315607360520103557453121072522595835940902824457008661270162820703934976304094537700565631145685822544095748636424445136064511254010984716180866762415659937811269537370697241122843631653975896167383277568573509809809788152698366243617039080687206289308105804387908540405955441163712959605917016775362298636939996384357085697404421068507391148290641092016726028732192491019055042134325990338429527785081454148546722282894454664899451493820656364480977156789469813004258947853920599135443577139733556813965714989271001535685586994915830445790962918219597306964117042767613410855811736658643551803906594181661915397967988286650147243111802855908737608937562197803876970349902182439965136857402746135766675800772506151994268456868538225926968008699621856951002254852610042296873592098396225413880949549152419582515445123133549176345572954133346107864472617477920727506716539189178787439260982081389696411144210331043812178941300787676571578820243866039073744310148840751581554841136427749553638551547619072997977359413110355965760503433006892365067723771215329964444808060796503532476567129135012130573047306624881976481456199080266781621625631328089085849119372253155940003231653156128691828909422416421519252467633501920756901409257281506017517364173904212234460583404427174963113232047542663419730530229204992638387924180294664989640183708244187240063574385530817505039927153940688044953859827629278068562313458742623469720742694581237840943288615938159712350806888330395089318058361692763457137433249968879798789059358085035719272088748041886331534184423479646125081662026644672674680945068102498095438582683655127225164989155243638633699316958381819425141069689398300784524712875587599441292008904007383533146117333019271064971483018346133331773800819905899474436934279754666962102846726755345312340116572418621875234708003247328900978896014123531349549803530796739548201883304546152977852643407321199181357445597549815080564453444483775453549233613548963929599019872905983552906558004183400469498244789203454415180853918535094596876613348713544440672744101566920354853738364692105200390479579366510902596077997062573296320815734769735416812159705472717043104257340841281109413463708086368191652865367377837754351627705899714043195036506493798095289860741321216813298908896605576781517042119172950029961789785079880114090359130251029316289377598403936639116280777916969883575992575142326424393332333847566498647540603102786601941224727899863082695612979459715265401732877193151504936656833063886133295453250527630149395256053249701239803728919344326354651370001750322524449288749843902633917297059693165111548864709296506393682564964524746166853160967057294125027154444205617655447552390023355034593156519402304350490840661420662511006682446033375074298793106909612781296933377436715857800640134886120327190576335475778682896194333902884529142283750747748692520987567838918522046887156170870461147347273550571147979887439766523356136632673857788849759034729353418345155986940604764533104999032579686647443955883391836846233497686867380321296929134218275759017584672525048640763535176786987383446710863523542031306636466830027497566306401000604477830476982849463029689069695046014492494517803553379646139076001047093564317078652052611123658837791832902916391064002795023989970761353837414677884021061963958438625150632823497610035359499050300444894559787126617611106971114056361927036962796680698420049420181228365250483500980993159921653992521615480470991682941661458942753437817047526335669516021681081164025273425250512178119827402279299961149093765300861539963936144304217055670100786239116025693475756208283452938403299336674818614060410499951961340811872237756334842563958360579548499112264722900460126787731865038391387827507254405639581507724031184381125172584698672178746639758959327904644012865060025679160876342055472585154139278537064371216457243665943814272875254695162791146374727385500199692715540199447805525593051791255500232419144628827493564191938566499245221533633492882475711409836392075148143212666204332584499503631039157986706212244282855213638849772032157757582609135703989619530380462813027049345704846834111067495573411653868433377191832362482018034429454659490130826753831741827247231099974387029270042680455257365567104023061637006955481885494815177137464115149046747972055584001060313874509090146939949964105124700694308268678794058634627611922565464639527322622736764760198711054583434502044904183793767188206166058208315374085772225812596008192021410026885766403014543838951001097483326576403862359837377493215988158382350356124685323136443731819493483878820385287722402555932710241716262016792814979449476598084513452276402775123683678446740827414844253773011744623852244331388251791938579380396774452281050691684287789240146183488280571122340163128697348069351026962171322173901232583065544470312611714955257998201878934712850593690655338037866413743208188277023351848765521976789431005203545530235638446041754061179931771419746380980016817139163331069619187797080190314049795653381658174140838821718020526735164130586573658359748358282279927088624471980400782444493697138582197018413876439348953372326617417185331429864458516454384029412782692990570408990434394389814773099013020276279639143788910310853282591864372576290533752120963842187550664907859234509405740700240984030967675832396479104518631440005007398607373168441257453281383470223073952442421783394702514924534405842401766000371161464398615692222005408742247655401696460417892572875202681732117331030399809044708479653312254996243237346991519460892123442179320813601040548390959048400403343817924641832461426347542831487158333601638907037245551412610689432758024508902232717700239417810371991375952008602718433651872798114877515507487919844105460962996828459580034452674701010445874390714735245270920989319716863620040514760388145657875844117351315127826349190794298908730843864689325792739419530259141210132028852218681091848017469474925188680043752819318234838558691887831384899058112689357334654596689040854684103464284532028527007456101838024824961286374300518008413366931865056068418542415208313704354944248040019378222490898965035421364241982638900231444268305272940516657159794613959277284991372348308382219397167244591905816544093256216643010943624182082899623386544465041993962091636965308257141606871510192036415305788232164343641871707551219947335580664466406822501026799095289377811215637201872298487595505464822724713371868261126528622709238402559226075636860137501295724065194155827656533233954644972517603009406341128953048606296341318711955377527187130754096921901294047785284781991368844139685718864322385015197144708467348888666560628183415565810855278251894728090054639273323410869245569021899054704412338227354407282894297746589972267952593393290339237818090300236212574628633768574403469039509874538697822809874621627275453152537772449026338119500166275249112618870343953956018973414632302018925435545066294216651986753474286969190686998782012164523665679304988078867307227061777365062291271570456731836989810895203992020905198659288156951234998071571424027708059449656303764539489349994536981250136124086350086084035132617757957097067735332708096805135266967751174478910132614434580198359439189816665292334452303546284234297769395497871465044171358488982552702595892821662866105239376549730647767450198550555565267546017828367880498214868554312845826384612242117188287897441990685342150305267631501250265260738946049083187938552298104153296323872450459879879164677218993936988266713948247140737702006337049368378744128714242134836467958009433107015046198695373170529677875674796959218206284393245707725567594055304482264694982604573494810984291435830972743099373236726669118409110926452812281388861481259037018106317809480075099222040871221037646609458314264934580138643513498896130303627939902163593448785135378536133348566997867462436037531420839129101580766799089987292838810513957490725219266994409248404121135589475233181457509208211318878855415459649538612952446632252030093244389983987759246604478935895529076723673614145769634494949986710151850922715279398217169556266234613348849316383674035525954785344111291094472941558792643002875478450004746806547038192769083794235178410532152593391834796050377091782668860925506948378480057288080848857088561973946154872803046607891117815849237340847752234655976234325308323314987418722310744759647434226504580812184874320803640806514419139468268618554699395003554932271082065911502387835236220629524847898535761979217231130545166444219012598127400894195341447859061404791951962391380417977084536749066829263839680327151348292193346238121784700780607368213290113962406450464266480788949148617104611517332890412925285320661688542528791968966665661518273273323031506924630164466099108409503935774693308204451459744237710589288822632643094525163112742458897907552451605456286250555860563341273323317678362623820709600087680303257200070586811097514018873579256613304971725184672770702465322389709974256583446749048702038998292594647878562219031138380061521666172582257930122171964320648634550464935215266790007526727225299659220193359522197432668351631301911914211219856675907899892021351391904626303395756581493449672853876634862974825520553391680040073968207128460813805454330231998080933105280877705036563499557054502355719665596192151445453523718491556578195482814045176160290855327671274521597840961368911194354401458007786556144899239303647318974831932432008401553930384106711514115484507724370933980747699070275240773065953229526317780657195188417575153175190729334925790842992388014791031125442845710312599144167448340095833290238265398755348161487554126019242683261312526063058156719039489886453669774127084561497025748234903730454739437246018426132872814159798919619483504742039109063788489183635903534645105486849147209491349522475512830129759413759952610579356088867109743483192970654446599831002543399116744498304331076516323387892942578315985051201186959950681849689664737405244666075703509367866500113285462329017158788259672347189302687146837136961024638028804337162781399644629474213853298409715668066598601693137849963174691625548322701278389208698179822289941623340436004218504618328082869776944396737672503650753688704115742730105905380679485597950430669023800058897620514362525747079550717918299275683740433828215885710080289776740721050793236396819212014180838270717180710622449119451848615899170403869331555982735689225632019771366260002379637513190429963654008047456974420328875711137775315305785182742506658941222306765240695704873044953787510560119029277497140191139765723797167267699302724756460158969975149797789651599851989160394208174660279558755158609012648694045958475821049982085306387056553481119672206365313995606379664883656896505334552983961187316491799702066874951280918834184446357091670916577117967126962466867691957889922029853749010151509753516157233751053554407126394534902635106595881222771690438138085275304203672721156507563076398460774182607368332406780161936295012212671879254494204656845421917394700530710918909082368436766269255417657904271616359676138344951952859091211835708403883524023601984442668091737294536779392422477092530162618710949172018935821093348620192150106247135012964329115143471660580036705605313434667186748689343921081297285139998374499784578477376383933821114306319366224671599674786557127700870063712868176986766546524753041523252087257301191596802220368404470370284927651307393135462088645635231004361955989368346478365407961395392460636232643759488606850396537509846272534563891465608463029621269247025991061248050921058309896899766657748645793170825567095055084097462306516749128190101567772174282124201313813142279808883157616446083984705090563978990001747021443771547922781700457379298763295641847670858171295949559034144794640865784762828748860065580855267680059714308654952850450996632924309271885667290560580977244876945859762533331303124147661984025931800361114425804026269276602847568480312564030146011458637771561491961760066907761884993205575124091397356065667976453589462729735899125862153514257148108824300305535628879758953992141230550617901188243605185363194779230703784370511539539196304581327293079699374299747951070993681566611231406006889154761106536332832825936527252972419776151779378880735139349990007634056268662355922874817146345851097587860483382454879073642614964496646830165453400825904069094044440566542426527494440846497727410154909746654533325165940916892273870942918709433311967051747566634324796415373308382524858260730642671116067800444066142580492270064440702499771051375600789356670602491483728923534660964930525799032609574807001488137584245453429756290092166796525221545344370477939294160267341655129279909688265394404004128693751215126871876993487434662471875796174693522607582611955366387182018529544959196903137043368386236366743570347095022621395788944328683625854794570603104565215995356725328963938627200023864063954649670113893846664661907994833528528016628444368411385446690492640017342311151123075607185981878249733545528315703539009491771991661197432146041298051621019730297173708972196969884155284006733340807167825834025369034771596296807630162916335056516992862798690125260744532090428755201481281025476784885693845274542614891373586496470441737994859465909596623851388926628353436094339115861935631523232772475821761600845446167005391121129319157871472247309016081886171234680838253317981211904234537921795748430931575204667482411823326815289932422139329148444885242734319961291448994230334828595638637766792871848799716659063378988938449810318851093758535927461860620880073535363740488358114365884477931531255876730744654688083804239044173872394705085241984241505252461043323223773710049160851672083776847516613925357913492121863745994319511093609394166396859784786839732683312338166129370157785460066481948510838440204197302014776667949182007285172906322716144174631808719103843416365265660921905458784180185796987704530777525214087043363979255631045066964197206771015927726525463102177705558980722566071224016107809115109695570984778767184015032972092567695865345257367443748928888911834627232542919083657925351701760053957667705759733590045479496220749968819582546536901411306460124681819766278528473966341865121243719843871170897260364660822891101986301364116804855638242946813450766176063545890955842979070169678068348139976334895457874489231546433570249885126759979805196725178271805938992612159738548531668816022168422161375930890537715611252715662755470872464287279640151512116466764957368835262777765507723635977978177082432533823097320280538132819288318046217473587966959879233485815546268692028396987380444321287543109941359176192647555153240887715409553283668092615209930836835929306226639343136356305953532356095760419822389095482303459188557843888144859784182671743913862821987428435639467561344104022832809295026327323500688597136477019377871915208537369252733021585196066077195492707004094213914325017451435893505395159574036585156781242035254755021660351239187100895551656917482280988505378062013726851532917856538872885726110800042131524422972695317452818838726879474881303615459467270842260331580830465276546398849008302106144262207822438946206383607145881595764374311354508819565119748197045976345409063726070115429539535592027726255515705473947094316220944434841836356451976025386912631429049610816574660169247223997249070619662566835039306008373777909566958439685172928131841663161404267337784830370344672378711109807792433730312959332348122740361911935277181806960472712179324962375553436549338708927553471233011961829964712458020826321467114734500322187033873328004954513568054211705649033318690332192445874803903432851553503891238603703569167103532970468449626219393488185174383069067275432634568154020076151495379719522289941314345026667365358473408158809924897874927986925898309841008896711436006460947910610275387295492805286379096666368972225231038477616017889538934687815547378826958706577390475552304550525362470585293861716179088783970530423975399871617996717545193242872544498833566192526846884947608049167393112990393144592459491671098203115590320067369856177776792008335430363258255283279145412016630561001643931917905091283438530022720074119276985831269284845693077627596449520430078189194081763989927791246338532272653256645738607458109139683833042336925349586885873384619138880311696152391279390933332069263047476625696716439104869188126328431133380273616654727874447821628495855909316905990668198066955499497339369402479010233064398573116374362614392802824755382735067512687793225018642257149391267851238367156147085332961331066150737419903984218912590276425677058706128719812631287641507464163562176394089753284267740105661178333213912115699834820615864138270529404177740177263733142197592324795930402963758751410100864107770327656349975011539012519101637004673029761725235240836677626654552306035570125902115843978398920318532214862835010657375169390166074307907546950351680139211960791441905884388436413759246301935802199182427141144205533786749353811319975488909909017842503042624937195726601188197125183193364440021776693157533058020972147455485371711933084188082385359044390495901571308275340330725884359294985127097667888607572057520691883838181437261367720893387707194076252267131649608139921950582256938265561544489266417842637754931306627226850828510282463311501491834940583030851661608466303328556535460464685266990751442236811923020058587430552948019298027486981142724301989856842765202160550244285506293723014531745670959400354005850350504486759171580226252558443004384814593101282820377765289865761132572029963246417275117434087849488122520378508414011611571481876764542848149975816763603339931466880200754222668344493789828273884363633629684442300842690195471626060058114875828068115673012579252400554387090245007688363684574234728901629439210268925494551994081009689254439140580266205063243686452980039040747071396003238793639537911636404721745325402317566129604666250928640352518999198763039102013542444017244654660484053947464034527011014375402431447060598801842579037584366148207674777910832420163108534649137221527452201324582693492038336677204190185318336918909594388934748605265612391462557110297537038519137590994697140425376658829261426037083268657005420059396942421128699615885798648659525101407054866812423750724177672421906246676422520726495720702722073324241100416181008507559304897967111887511130089331116860724265223722972941292906520716340608066724843058866068977268264859884636917797781482085323021883480729297707489059889278938034743562744712966653090199499385403003237705334630012138399841115309829616746314667817050009471657172665311911640115583880859996957018697488470486994802999806091739885528956379586054299813855475222706297213986006643240597042872104921467293641466452927536079912275767706310132547714117595998301367545116911073188586136762076083777460414235388003748322125065940885115143400090367434140601649389100675366154966343891054570310187949047224226168250072187136272167279680755708722108629495446741570426093340300012852317118910109063803131085908968946458131204352029150986761445144755319725403867849669436287054481274951077383773933782610703765384264704611380840733513990352442333644384756648781371124934373231927109604430056746276087473154921624479095115498871938541640369903321153648909650462625924794497602262339662395333375204096658573723307904390057505069708900905291759486943989933298026006519869782196232596763975699001616053554059051876430660610883895448337790693819451300919277012674235630221621574103207430991260183746536615540814472568393352147434963400892569108869574834300208829194099152233870610359530979247317031901097218116548075253735112761392287919776512509530115904011600050638861872039662668062047176330437865868086547984069199637941014489845012599204798709092770576588482451257504241159296813486333438430086785496351545818069341560074855951779140583600623874161942387316732342336411330833994174937372106308326409761322611913075550512536417459580893560232271792935706847695441390996467186002773635293114666381317555964243777509555537260079466177431186678473624138336569462202041668425570209492838075854732027941801299167123017256214095464906454837937193669167939815143106528663093092278204877344000034756724573996907650644491775861871138072509158703463591992128833651744083991933231567921731498295329259970651276744798682641398664827880185842840277995392736369911285146731609811371915848996193911591446241052825785575699033417483055267106863054007572915004669206827080498110062477403720307272726919518728459143684826385321832951542004264377847957697552247272137275708459948750397500890452838520262173165338512539855140536117135204815136280023887460611295464178300954462242413425621545797493654383634520587585133611774821590788190445817516117599127325980789878925437404121963525434439140825858328163148010408749506965221978466757749581589767280429320389378882573684344344886691976725960396892589289280933211345595662762715113794630201992605536635812940829354863842910533065071770590538588107246935233613828880356873469334773301131474003730825099748757751190900431261920313662578493685775767444820917273999896150184258867238739791566189782345563404505301480426529578561974017398854508618320467983883876160331328469356518992230596364423110679456841115769381866496772182992413942031218104730861876985615655380563588973131345392012842475608430183386685321954510473770812379075497007791612082097830415081709046689188708092262368337193488987997407571183274894472171292259062828877546267304857439319755762322659768581547497921391166718738721872050010563597424021902751108563347853002948297933160607156200837003722487860164670663877984762454569479350525877798005734629750063596020627470934277241665818997649840666510242372364827994818093432880766778490334173256300340999106248806100074585588240047412509534693917574995976205046929753560758410128931751343046020435985629541999626010856766566469092445467440151978879604388322059277226679486661866949978695752828859661516350034585109389842395115312331562704459142401728223961511177966493549157817406675866584067946428205853580322826534919717097236841568326932470691687115976717815989778627194706032512113522374036082671987320071892698379299898054001052286377038956562642588982860649333716991070949431656730890223238782455318748130122399391005108120447109714245675860805990316656073100467490429379944462595717592357463260428193949136406834506424569089432878495889597548458139948476367791015088720916760446114799922670495319490018214929490249640716992021795229798857602835445760060373525136522306832262123178579812938611404607821604237091897955147605140092593341717967176043173109637712432490418489543731445555065473642400065258787700694082092942904111203722722318551148495402887209739447521261986310604302404785347392914767812863111639347991654285184660320684337227731744284075067005750278571946703573296509669427125339335504759552717818905121522267549468365669021812938281550055448838408906753936532247463630511061833201495261566956281272817223738651136428062161443922166607785759496911097081956044612918614511632289577237710252375775183125483581507161987731026021686339394219059308722414685527817294593728235320632799077843407441233606663632935803044829869110811929510598682416648070038409631549485490906740482928909021913864840063278460249452229371973440188777095599546973914551596674492162374240393257210729988499296746628406672059144266208214495680214694257178377136020039355143425673998801353368283654935847409349612157436265439992756158650324747813959990272633209126534704168978493225254406401707848990746720294939939575802918960494825658338529435060651541243758705968080032921174672774803511060571523795777370987097061425361690857656272320152704761923069735590302114102504505306244767892886329922383544355837260635748744850418364236993328565863865873017610507661792896318705912124517741545228967018694177800578827643479005580288209460835721626904128517599949629084995343228288906388421885650042111021232266838130512978204293457763514784090831702285862578427548189103203193684376536578340693438712500538328528053737778082583158480741578686363249442674877434800169225988097327696580300532312716631983522430818073168282170033355848501898893224331823334715458874563956490699263698427654170137476757602226226700749924121573057896928680354278782711247756105696085463164262072609291983094155868262463247756840434780119871199099985991398590460664667283491695313820917649224465292496042872942898323606431048646251983366566755710720507998984750324654114606618324831435615897944666856100655837588705957643861872355666892800467238282951449349028519198854071135454589230509530508814260875693992578723466832923022262221818185096471931122544725869851059214410405515300307811642041083287144356648581262050340894212589494174314908351969994635119092726611056459158359605617528885514949935214434273691219558302380620615785913962387443999634160239008056613567294448340049303897540256764318001705220703511776766667638950732718196448468746779329016678903106413733589379360156081045520792144272906957879635968658159958864239691567236458153806509225219009674144883788342382219707287725806173152538672892329831655527087218434257039812514025879414273710637159406104647929731957770233487932084089933963315355990442207955691014235017767840749397499918888546680772295680901616126712282433652553220818995528748989763281463687318176901420242436406309422966958065440236940275490165451523633780540065473111223528080924171054076426674426708192490533281466303311938359914570533298545978004636139448282722096080885709352785011975433682872231673842884839187748512005720671922142552511523950765282796008981529180993310950260653334157915471940893265162400512449425847887394651040778605130212813343377053542850409155466706044793940857689542087949794295953186062497543625995328256036580298296713642577857648235661331766049887751411485198047535094699126776391322318921834011063752445378129174624755166806230369557678845843330350020389072626074456861287217205631236232513475220015328580995208675617126943220582957197276129399725082059179769208687700556656491806716780056059327800086104044739106122378278654175670092642652439015321192730856667847612678482979198984273999891787886769334172715997146164248017447375670055529167355434471031085866064771855958728672882203774114511785622266369492759507936558887277698116187567146076702866142084911984314098247281975431935138821000973573425704665329461781262116071771922183737646385804364805106027266805507150075547137238962833812846222002694296681565868644210901982359853122635688408897091497535297248398976267265683908790798035878096011981466770283339555507898344380186854335647174752858430687468315969001820771062065649315149230730065608256825906097200248764703516461966910232775511137941604748379825099155813832732581284270424608565619750057545292188736159511328638245283111662865655510482089453823814604913224183261141949638390866597080740463702682657678087181779265071973293420835153398379297628104111989735873987637070136026777990381629604128131259053390871817763091682001942954112205890921963445958735748679763486413374314362960068608206187103415229189100158277401953387635221761517940082749323716442722212902691577465348263372122827909633374433286288268680847476799500909543502687647082282075246663413475282680750330726473491448964303743733125310531600403158874772014332695906055128843575930827740417733208798972820725618379448694283454385929205845600150968570975261335639733268810302008417564419150076779461137230666298771227426557944168301859565957599249854581032326236552819874783094533730803260136373926704908396621908689834703274446014225695089822010593885776925445631769248798406831659609550470959439264222419258238111121485135779822030365743162950902984958634443380439576648706878546898814422908668775471383988995785433863649141183479413469882517288038273280407673844054187514096770824946782493505775696232859580700673900632434493150620531483862597297811067416146997640496734247227820737077452385021660149565979049204599818594026463162905284321210697882438996175408882824909755676323319673629392011730779075198147203985372032363288208852614099546817933434482260578220071053282248757077512526196775461526744496290086372246190711099572718448320388845824406565892633438497268888572283312838921535816864863520135512205339254694588338315323309162083730493797586791669347168554194130934135595773260034073215820296188503669744162251225441081016465626820665501918148469399871415505200423659986794655080252591046713528491723180551952130167692952285660492304667557383260868038725894312160484274853795707531912471223190055324182122011682363024656646528054281165397009758097593648634752601690848632067693290620822026670956768341643141866893702001777013400041476604969932162272388642285008044893631384433824875809159326475457196243519929177901456604642669258649988187298487951650361623271637135505860806389289528833657728134753567362159234620193058098001663085050931527055808879481700367833209434534016426674006552566562763392665226280709777040438480059838092842867826573417807816117903520198032824156330527201906110270318031387912473857943326484359561151084432524877361803853899527450131679090784840994848081280041274188503300816880908783871248279011058770188787558331398365605396278495655711089985439625436058947726010374233748094083082274653871944002194108186504778763508941110762857744405800225865670579470283547613728191546459709700061517042144673901417887452515407039071733487959170857517126419010723152810390267568335925932479986902244283233115267133746175389495465547733012860833853568323828940085521388483482838382081213322345853699267096540044808135763982036743374954546259685286177333762849691178087240986548422116851263860523413711951096962999428824719643731412848777157452128032954303510992517856982665855388286088383038507712367550405389439839221879448370967706793469947422418320347768968668522959322153154093728062827449617330509932024887736696993403570326096408411132111571353735639067223245062087032720193815245540757912578712025809393368028090660569105732836178606807596949759788551264285153136908944919259011241385179238224176111761756207458545587611684410052432476971788986883146810115488332954401611531192175518744135255850439708430005303022658088502181684620115658396300313213776682756146932094043234511247070273968522605105004630185019210348543416944831264144745115987253729065065881947963307053967667765274619396535275550278062479447757028373289456250361608204184091235483710201055476523035616306950525341949768996396223137021439526500431985149821018198511314888202751066922534831491006192879255430140683460473000817509529535641202890210639127881279185943463995607593146225264598692752581653100387880370103915526907409159906978972737532017605132833496755417254865586917885120120527959897330721277462790866966292829339085513192536928752025089686983582916805176600364721308367120778954008531393694024037570418742535756798016598672425326112557098046469970110607807955801039155369045908659080782610375370839738391203031914263861852140055740238283899763215400050551444353769210037419877413204980021177352847503503863821880021051679509059748425697556658378822105188076480923259634568847447254604415654665672928587984118589499546905801152354377076970385859305581626022162872657293967561102766848397717986781799556872650458731681376047963341015535082837758728501708015505681788393224419782077596374203874628035794877122016569956567594003103952208740518799029566697709761627164600262000712468772125014754657112380787091440277406478861486579762834271608729594215702711995806162357448810924753304978531252435904008689134776350864220777564500698240355223521371956912695468758870531967552685178749233570042465112470556626595599020152539329739965360298550400906420994436117787393148857596618057205699390616051061063151528270758797998138097245673157184586861728183504178046557674998910562655753751708576823436000458594001207549141232467487273985234267545173489423698142957625819069492942114927100437460318683375973779272787790192229484031670910710654273888172887881725274060948107709287220165286325017277785670067699281488941777769172567806078733756475122333802027264729936636776082124433749788658201586356322501423974521271455619409641586964949744438183208855809594222243053907961017810767949193977879472782941483948910177127386183629119032472917453985889589646439252301751760754165566214053993713876655234153198889628863247899767855093197090368038760034902654894291282395708900819897587421256150734335548681927664616347943445828356357039719103497464269905897299298668130072380485848701898825605725213942854455667003627339141849137174284982684315471532541820034738696925761197707323325042822888496430119330981801327732325203188768213849327953810780747262058370506780120819581876750466112674058539706384169013266057541508740319386942805687697764350617036299006505037622825543555090466665824652904828557416732386346929603535270840923378308347015955975316807711555348611065914856676714062971997134301306621291421622922789972087328258772650958099629400763447691643195515795399152682039171528838595627562690335610455782967174856372108477141816350393895875476716570489951965603500087542040305768973676550510788570208922362211066200883529467011369514312491867690826013068759759801164498728224525750097320014015984633585356082922779672904916535572332421391122183782350515575538825522021051357327971653523605558512090251959728830071355248926560697412266650739956211066394361155474151305172318839817078365038123344945200219658936787881443997174841346475850305709736300305515182717666355372715063943744686584889548820225687564358468743750579363117296389063012487815812325093673482160632245611669598469350949466964953263436279621793621372112421098936254502050985106097084322006542003128434599197944585289808199072780726605441826128879222137188260913310639364002476228042464972655936959211254252436833966807339933673005713585970740891994899602725074359313566660053902884615726374414264278075746754963256483491676716129028142379509671588750873639086653771458985687782540745501985229578783887063791873882913387686762137821379521368900822551614250036200910200226766040717002516616765075280443257064440631890278920839363113067899725320146847805472417964829375794678731277638880860632263568249961932279558614617548698353361448170664266788049323851718187952180703744443074490104992226070998152066323054745730219286941030125794707860964236081526658378838565502527009881481751902903448199674210620136711847664238932143756181313828221228441450198514062799969873182423447619598109676212619371623961081320165090657549482987625676131638938869139228989612066865234464997067971133073086719797189690507501805619015345773958822564676916030340172682534425920086113281254030874773979538831710788103067339646852885345843973933630625218440978350076107105953735646633354221824772006109498266254561387985190549194619041875017239453867639025284253190541384498517589282679006987880977640863170943732820533395851736399461274909130988041575222592807167709107575187519414813250689784895582882299931949219121793194716610094690535555188794747544439959174635562669172240144619854640949356925852049341985236682017892325250555480094901213399720064046489282288996887332866375403580990001279200569611422934041642227899184551667770801721106594055608958505581726342963376132307458961471465877783213315973671517128616899432183312001691610943579529395702527540160430514979008612599791433093516779416304168468866779604976993843398432215920174140215111954700108028698930050331345023681322721791213624751733166814990666806155510069173217413644829826656704045232862238232198502261732701053171288215289060691656166617668791484076393884598238941467188004440317717349141232829163373297985193116753806111703667099611953290301473220895689578897874028590272683280152452416106062023381715246909443119178655137340943771442507940999386073858619177500153061966101746846720539249800541785519497826403365712005800784602365849552334839863792184727709760473072876103250892792402453359251002430114437521460369916643657500362736211895640059739859691820863718892623024585709134585346666831179033962956498916868200668278761844702651370448918737472184615125033599578831002384653981029777832277470520672236515267445890229007157205721807178873521095307467316312015602803761916368366137412627023947212303664202031177835464297232743455785886349475486596853188702136312549640694584568311501284569419103450608118910460592087619008167003163631870535509453128296271361894814300356563196272975322813224053676618599349255852001960755107408309551558784447371893796626854598687674636036991594873199756611080744542061366296359860626980151733287288250134678890989107999412787522578946204750164640918312950805821460705911993885629021752417201521331628291590884566698199263511129599166492819889808920532668359081093787496840644868943274070339251844196108839313976460147173114587610417251633790230852575582761657838948733658043665367980644002977180613569490958832677491428853591511401875846875368977912041405279392144951000743524596377477890318607310244523812801720820039026757079856189679386147314036347529934141801625127020609718669310961338828419016810167922495502205902131620369456352382084296645161388308699491915713570713015903388675539545007779331585637002578457239767766531085394457912660984778664798445600244834385012211044705064432318226408368146248550236167765198963785967582508493770304544649500878975329590804546197557766264018846731470384068274951030535797271247855697550106180901702489542956490388392176369581663251281935254414599072783936966140230978783399686055258580231506458440608752564625036156113672360493158361387640197288379373312453704273075418472737302774924149849900886594485829171675413941690069900592226987930515169659370667251014806641389239480200921228874742693274391658828003510005571066215657041476834262446660596210443740293742209174591327730285474542060520482321787647059218961393323359221013950057764995075028363255245776150661480989123166670734616432506599757838271945945861904322652533969243521091170992284773212256830671694540079135117146577236982197526231398422419286347383150640647179844964243031037713694005979975847101415409002244317266944965577665996042228223411158526531440718006260773156008125424948222217591545976727049803666817894571686989910328568647222471535164375179264994718967972534737803224585371225730366123346505311386807115316541058586128550894334825230473810279491077386579264245030627301184948892628798494416686735169705927754871346176581345703824328949509354727516274860274728114256279678986356158951494208506999850735314075435520596473331844770398320001506724320429524459682221787580979066991534237539828380015064054919221901559961488071735626247964095532905319667993940566038063486528930210957059674378831315117188285340564473609197370047738488281006191257664268948866165493916372456220514216562832143450692465229866929759631379504464502225360131030912153664893089310031488394893845234658860154345412344124704007280731837637386942981029533025973049375032019740471929916461320971355292227227360722127591956440020031364888740462816924989827448975301141366807893693526914458037322710964189056606071698022399973753332948381475315377250775359624373085551011167806241916047580151022551993378776624042275756441658973189285714607154003842030725537678657997187600946228919698393544146816028324702963718938365171400862248017735388400834749852958809920999885583493575174155648670699286498663949339686202731528463172052177461816687619767516370219515215299892572777238187318551426555804039695546504733149309105265318531906609153406847816898090533647870869906638165758966686743773287346588798499537611719926467902138354323240099239493230373173280105037167503958111075978297021623427228071351263262679926795701911244493347287483971313091944480195266243109857249718906393239026165074615886644626913499512850215035102568218584362286887531501833382044551113245281765530381742576100658504160842987425597007889219330606917261997481824993527028136528127901755093532401983719842109847888519749468888989326586682748724915521319577665153336445476952131950790128218277147378593461392474055068354117744959276587877712703394865068032997172831479592122383170475146742531411276139034261596987500379401386806537515026117635766710208749267204755843157076080486641701029334179961164721234242161045165651965659327594528164093429366716399154439175505295796041557984351719169453559875015552821726044068449090892365435055254821635875505596748830143846910138492196125442286861835043656391676341398699401361927585067627783047036829127750361546692866533302257567255139160844139653436994890761818732882562511637139355386494519305901455250738814606229124337209827950437094476326803916445369369789422512354813374183010888586115641277803222837304165272916582527256167023968058631078507411641421917632026265912321919377302564851250019810563184406380574355121387879951659405158372370849579296273503924493661270467716551206465593338259794670536570939024618065217858551037980848781975077164434647150538662185289561407178593081950544242578679421750585995722814132105283576913131281691265659020496697421048666724518973266675005991507352137970811825151129522900395485130011509350669329730038163084692644262880150415667926294884160805839891237210080526354778183960467849280774012217438186219758025399484760550365159003368708877068250024778592783499068357271819164620597865999588893802601339829155142438861643064231167049030562033016257871886155605185982164317071178938326003603870181075034494136410737647472435279551817264546261851204154179969738886044842577010545376082909640131059021852885917166377253148420442907251343287982297298416554446219389867876346049905893938439225614530513514313818174570721645003875774452240740472874546483567010366033380963788181499838819271634367845692284959830180298030745061887628221766250676103282699946547433525058214429393394319433659136963619510484644360274010876441962426741925027163714005307333795605051108385942206079477473607692170438430308116264417131035469264568178721630739054858363250083554081674257358720578120772727082768470719931394081150255205551733502017452838669483765747910159401709193805619107670526056002267129655313243135476125800715309112595801941117124648714323163394702971929325083991074926633091918599392265985612203891409947372732914504020006327111550139040109588243794011376475815773152680076170238545482341944294143119573632313451497778502408903196979738120668881797819492028289569327176808617967176674087881866939135393320358706842407384965518859254727739309701730306620348381553417615325907668140492030377025274703900042678051151619621450350143692453104172521679247337136896304118837648473402733094042170137917152747623951367503308090969683939184423518182024831486178739031508720921474099446592395087859243956037202913158692418950572316844100043356679347457066075231936901538314850902648794405313418173690426546702427061024289132173685622029661711466294431339318475135156967865197081777444255877543460607165362888968129769840301532473826105957671413997194631870080257292850853085628966494112990309077055615866198786457871396197947675704871889197810061847472487236078790034594565207445961609015350137696845287431366669941418703035441298881473626719178054350502815666547446739848307761437852291142914455793966397928677504414591871183017088851596064175583524607330462972287177413006176490249083004005071461699504473183971035806652333450517171536122155755747821458883886574997315612660090858744347344376800184925519834694874299575748451372580618403663846410599805315322273133710023782240778357861057934838185150878686645662267096370030144464119572068016933073026059440365155544163920562209340671115526210866757928731016939044120244817320682317355934821913375845382408093108118067261607112088995345821664589479218003514067172979389155674883304018514963331975102423197907455661623735093373436062112345925122970045222914202509575904644750955483707003792055703314492324928206392738603254548537736757818860820979531944052105573493446585970191199699896265367420842113005874418528319007829573091745782704485987113603446980759887008311072280615421828201615977885142381682269667720246649385482397773494322711906968612666936513003875083274297035586930887905721012525127399260350721634629125101178187197586104260562475062489904749927659931818735416671771695874711931876921313751892457005458535902202719937058312856951653535092028177470570552283072422798058691930269285067000313928301475804428857989787869194858880798730101973436611146941256620373291027198234819572584330967193636912861120625002505747364002139777398600125308250893895796280772331816622909416313502452509839594976382277048313656540918283904258926706808062337120768045054371875567223467588015933213633741316419776942726438032700498687707637090719207120010149372430587632521375656372010748237094687259247574744162999844683354099740131781644053915637447156376744070507399038889141166042189620640482538075681471969716338891506383421318600070144742613931146838650374910058814796957261049008439414801461401106114179550199252219192200784212946923915973494948940988713250147297100688461788386681782520110331701744220025614844920723699343916663676856890417871121089654004759277442317442583199294738337943876770403934270913220112998084635704423653039379268777969361048692886855973042559914759754226621025000281945504146302037532760214493744334763378921272596071432570104327495721869443153181595022726164521491457240186358923688674477507723924466763185664042034666796150267893966688284164191713528913378438030955645869934559196805826754707806165032290934224831314551935498906697076389160548986428344459538833701421425124046140341100032092374022911120119663172084316745724121668146731839616240622444900410863161741227771019742246603627081712181637191127994411239648871388219891295555800462448505745247199264225462840790026217859120705152671004755932741493959628374384198188751708345182601467655005653713477788250759853343771222297029317026951320034292432109570932387327529600138882364991744634578894512676336780070782898992974990157886157079052817130101386229396536913100670122005041721329911148586578446362917345072801446391953459141918039039216871933792763259530307735254383539736617992589214753310856709078371572523939346867153289049640544811687517087016208350644571936233102829479306415640746916641324634593176379132082068885725103886522216575712581777143737118931308855643010012961540226435602302782577676722011604327234220546190826248638067087979969902374738518517144465707026536897689970726644898941734535411225384085341508028161799681632860727554549559161438156965421279355427999357893915574202175637431707502599190611070131192904514133234365258542500009866874645230517852034882766944247510064654804252533033352719754965278990745730077043790136505317910511704966525313821877596533527948715247166504284373982893923345628846968477664716171198848984987326061099150602136973143772039757075054946902172821692764534103630909133827031689696700165094684767703832393600983752722857290502858333010023205799656198602934859119569768678347638085267188319579655739776220749602880457625221285108977124293734712360657296174408677165600181139338614216132508123301079114720183437129785077647936665634738950463154578224353530719601557312004881565869967942566311688226060908825919723538522554650761103849307877882054311592587901959580791083989071829492926844635762771205325663617768044526124777877826431701090179616147970107571480314091396327305661456981777026871456417801154822104849735345953772229542366026999028228690221667594554618767256229387571531312076572671631494172392901076633317166886965597181229558223837488688259239422783456106869363037148584812376336302000637985780622565464478461977487913676400218306196236387667008786778740573339922004717752742255213525241386473458725818105713285393450097218768269789403316793052272365215042560103646694569148682724357944525052759321832108180627554453353246553178223267497750569149424923219002967108776146322695809890975232758969546659298354272159358588094270052783718260919494064956542667419771057488797912220605421683027334386483180827737603237778383816768492859837089221191573861173458845377152435887257348338624458788104254885780790253539053345085999613157393704564529305955430161279646668771921554574810272818180002611870008692747326677659353342797903236902763517407718432428386864214531000443084418427975688888712026938883111620060353221241557688458639613321073856258457775513958741112323385082346017980976490654733677821985458636725508083898691929904671343471024753108728292412639164841068946212205844699112812993155135734564490520457165102943273323549995030497236245649835381230847282189777868989955034332024722690225399815956956116839700202959355336447266003713401092119260394998774793985800104685565954123339754515096710489509351840424273659218681866053989538987629338837472258483519097176750829121989625959997491274485210850620635229381049597728501292608056906306592109066305306909888839732731920005156611381809652736031556778808219845994747162035430575428240951785624678356761883931223029714000592791376103579001237969291990268981886806721414498193250680789085230704311374853059821338037966146233199812044608184244382803527753475149333467066598955012781010514323012625103245350247550001741907881330191762261870228735685514946795806162856624176678104521523970949157440714412945074605104644734423376335389431921728347762320152837549681786308184537722406823073758807961097849461941869877801436658948923274854016221321888264552189709693189447000147507152148827957503261323763433030622245604369060935965696253030745757047598685049468931082536756159750233019073998817640761198031830986018552181028526308420492985309323313584830813932464147119596603086540559143270177606527180966423252990587939526845500095962978076126252031375176238719485375341262307506464467097306523898761146395757099854679625236388822586782543036351321407999410200042153635633105360777453102084066709440390476378140201812995300092910221462083102911304850437173484906885323455337304771930351608377949226410563525095188204505370841138743600173392416534174828136400326178117801073558129705590645190504863009840127380851402979482103489391217276126075074796484838445921290627904500858449114489644715031965849569408509643660853245866709550484351400611809639016938835326466692008709079627549630224375024305155610735428748194222511956930588874893441835447804175635058735778884685197918382071353095097261510799009229350239973139677831855934130222236718047315785350478222705081957722072905713592371017426302268277783835268511084455552260331852901746660579826944532456561840501543401607371750227966500685896756126548438693019314822731665034716067019581250299438013635018327785886730461462124116679189956886552652720545834861743811926890072789897888606215520773965430348385880254605072232417283619845921208259702934748491381089368355206973464552137783592406829146965781177954158573346243780759032030250942664061451060203241407001156774621726668957484397550447836085401138433497323522445524669483964010894625912697767864326817198970931874469924601374733699264368930809970113652024886906759554423982773444749263494861349354375620079422249561389594375307073469661351347484778158828865569206134980049273036364687149252899078498299577444688492141427293714367928232431152203333462235070334741576970428193229185305964509204897526054670414237112046229406036337154748580445164960682781105065195191993069691655176143100519074530955438477658404489476746543458793688934594790760703510857799140929975669533695155749795617667715795858646567375715010181070302749928386201494245559847420222468602507277496050041773495538240339764521142029993383944753288809236481400720794550110401220605446321771946607750087778599340823828551222444470533682478764965651919573543103853985659521172249715035531443998681917240959295872489446793865690820611932278358281570984066923095378950759678892009706457185889917678186646174953511531196991490548526497760062345587228516687781674342598678514600236041451731703437199654764948334081827125563038566042561495968680160009420858726751409849428804229288434877001707614551547490518979919025099914551129408808580855850525135513760583155138235761186121298728857806504231474141211632119056685072260154780356362706479184706739126526142077726623903173355710310694842283288073104286366765692785706730187057983138855957559962385886908562408876014128666721687711688717813014276598560085371201179659185895397913076962410154735542548044983265809483685761381846193901556590227099240722911705075731474251233707287235954314997629432181592340187795468689614133919505417767649294947945093275364993609242788110873230254503122894161894432442449503830014541649192154550957987839316932122555399681794537303286988971434491261582629684750900511700469122021454518268763939507495523280795353471695877182207819038076217700867440046680450244198624043206255569862067041397906952533368443153362037498753934828080247911716095958927080403970854030891324906985439503097237648877247220739444686127096397682661149918831479150797157745475422094739578159822300278464967264860620919683380141257968996034756944680454640638908913768997099885991544413493246936058970411273663028747827152711772903472783513146578885420073694538373006990071564122848121709609645030145835500879142812029345642500290676516433513350675857216355667610150956821625111481202069051591270398144856902951011461774446157318521783492015275386159352738356644060207117004152986628003430134861902453065107302064288182085760313799389867711957711665427653129781683192645525573813238907725105269420531648928944484401517909020149067162529375852595239904874688650796625884651533824262309114415181587861727042664087230859373592303113222794939958964492616301185663990325204572446439204833163181185028018828019352198889925639954910658752232515415693443964257479597669026173157278280790428544740767540600841393272440228465791253161318557953820002291601435526852596125485036781768486496582315920139243786055039181677688205809596028434262525461383990046091574487928759141149689921651971269188400192473672352819694785013239960998342310113568622094158959173389377828093021991024387581864358701810995408062878710482840010174596689490678472463114474474398461519420821522147606228214245036733158891099315463095453878188493154051838908466265911609550934084360550847926801151734180734281645073262633389233485898720800119603907608673110962581862477509511070525611264245741222800234016567341848055031418048854627019237715121448729166349617975588867038577567794012519886251994044584775742689883306625863894374235101390252498422541255048001146776492719315801501498068602698647272325904733679499758992592599656164301370856664747242790869889328779720024251583760878426337634068878996920828225683854372410137876076369099319943568588586283555311922177596792973718949793467996565708634993757824845620407661181609453641454133275124846863395833571630273439097093174764368308443725023641771588606329361008655425638764662220409215429861255111505925659083144875059689758415680975300401283219560200660914841874452736535160375125256536757030413315373839750201094496265094866122382068380886363528511891845680984833758188030768286504316358023325368770962628620463410883188796342236148727361148378883289696573562827379313083393923118774871132203166518530692975446588180906105535872627049137361306032205363378094451928553303315118294196692496537608538420499756466882004846562386099273534730986644448956881234935333846574997742844398885423759891116355607066802047349742440057052711697688575976209113688366600430079022861303119931381858599580921708618482704175383004620814675013325215815553375545021279158558218230116558627953681550789366671182524639601096539773217404793312091131554235811555670667266426092938369298010617238663124797145614877218508092086176116786772031475270990348488779464746850776920832093036526577137705199731943895882310823158597983992305953742048247667095131781701512911364996799792247947463652266651470754129995110826016208876902477552238244616667183298117981380541232803825443881351351286555375720163229222068744008753290234901363870869858843713425631879714174959245866845866569151152989997742680283261490425582716583430350689490692428418276543637641195637301596972141871064819943824765565004195187951075779187304481768348147776131680849504381081309517989754953267109276145859891115015657855007346382086770012941432517313417406545191089582649889155101699350706627817511800968178224723541458787144193069628411962225957656374877345968976524539329045569668396298880663938093738621005444004988382280922342262105850768313489131630617143954471160310606806442487097349034520597218698899877032042522363401345921579743993103520296859413450881039294951653990205190925894986584563999990141363804938911642838984523311885274129392800690171034033104689238141325474525029207340994032232139332377942805197851411938431132101217688128623915742972896214158425012815843342469226476849783791307438794567437326647096844107187429620036922096730372460602151051797176532985543832705184326193054339682374398242825298377038089726628566223268865685890478026493981434069041587986233942692522420278171644527972504223313907555808015719816603461384687082945665893440564114560922596139977056171838140304707361490711008862457919384060534511176789004989206149352480123911701478493380084294247327968212750525482537727637295229760014534233247634422850944213193623656259886463374469767026617229889924997858323978362515454617162566929694344121186750466653001047304368859932682656226174881860652015043694808026688626267738562564067203219025349708153866102988508319849702700343222795101213460360471826860815916950086662600654928929502634783119409387112381383043260012891338076822180459416474633157367790699505520697844190119667110390971748967246987013339916417366451267843200430181225659471097622178044397563485060432492902403483341941562088052214097443411417993806358644788017183832941842206421346441629156099881888190793996649232489548483188038908553369471296520769965513420462294439087720837444373864521420280834296594929003199013628784792225705120854865621087854727664175291835297569564966168869706856850416018147689837857982658178714424549955658850198339099999221177260639132943596743701944788982214109677340126033951907460778749260634139175081432078154332320458363810683301822028890660869561853604065968444733113294801115023660331874530310451315685061324343872975902674948809471472993411329910552959732197225345297261990762015177297166205037719988344102274686733181772450829901539461374569871139515694079583131774852033656056985841836024506342208032266268019519779523659395889133096350310774968395397309821139136192562670138479780246977387035733503873781854284242703500987086383992719359313341961713603727649910710295990399306092596200583102172267348163743178534220542513385491443520191679469332547935200001012606941707418019170462964776659430778334311359417192233511662329055287059206206858122912934551583615059521032486999527381619619312005996505175557356439665370966306925522398671019776656886302674427992230343461489115243238575098546132732457924573185197161807263178848957731050953336446492463223203427196421192462907121872155518900387069560579452896176709656810174037456098165021544196802621010341527150422643351486120348256630289418326738626625306541928194962368772375432414090583815568670676298696519815146634956360563660377928134967384811458068364239198339746267909952261462493816213126886476490399629870199197194734634793762351210630341632190851442736734167380412896757315913518840138629959023037292494675894428266928855417335559909535847405092096522611958988987230869069022552495866149036682504328208022462653980469760567070410329306208848824621651669862070257322844118885818965613043724966791597871131592291517243972526840102726257374769950991713629096385615723022987419403336324111966031147240084137368614087959712610589974456709160008200936423529663985417661822274250489802353293687746189272583042640976323392144570823274537664521261287750361618764198517467176874207095382830332857580795458230699486173112144617983388855180984881637234593815649263881230973812553196967074622224061698601397587868246582563641698662137072898834835563928677215238024508384079262208150206922096821547973246740242290594096764133752034261845045145908140643798091528711719945774451212887072359609229316679606470902962142324348439336948679665892370347618715711341051654462354760328099091680715665769787565567773936450082538082250351806701495704991600586623702770135411596052675502574773939176799701724701137625859392709441237135110498217153501459898252594167818447962011925095364080403037512621104963309766577742566114741495549444776227518775085431477624022339415482056491951393639160167767498184456519745880672060021703009202825435200057396659200118495397104100359673216170172743996423969640053688359400803415090845063863480816804090720134077574208704795851262226799053687399758155951336280937277990804580641495178187623196045219777895742431792750872185317138204956075853561909622051095047693605924353919901999711617640184335818485080410211758259371467754554893889417105693807565127006585375555994786855285463103549516007252667890801332878344143077795626337804044096985900377162911230945615738989845686244187255392361071437780420231319101279975107842549558996155332206229368073659401578567074408957313361889944020440018752729580588043910598364044280038729176536832083085655887006098693357289951489695369881603390713219695353823247017315469088755945268169801406482840483215510753994650933293486478447729031630560351311822289751673238925509683659988660980171158753535028226379728337573025137478465042599700492467800012033565642403044575583045401778516787888902612954140388707688539765957722911224226793024128856956830811910275084580105690347725763266802140748564064809402463057380473042596982006856435892232045902570532096318173516352203316701321662074940586661302085761675936700713592422413396495382042225920519338129759686075423467335805990469225196872957104756880881615687946499760189197136000066032882328931004882283765820853308520948183200895672421485382476480578120659018096782768714705365237002843433316426866749036227628160062004306178960814950458533024151185464979576875592621652557831577271814685999497550068652264995427053837017265534908248357446816790714807689751205417528025737869396698266553773104595122406164312224509437641967534251798992825411349185194790555872340979503305085514469417083669491405488519282598399866168826977580383929836807843943287557299390291593565031836533732126098341205807541606308492436245658793722942131509322251087693695582032356183907789500581916808901038738324702485695165999879984574836495023514184656825467324140535105624545853977803728061636762588770303299905552136787863414582377054973203720245874008300742093601292107441840399661329879971977219446387495289774436007603339180452321662925366494300043501180666384045104196280080163995344058614534076648081665680448338765990693063492438086545944292806494826340311531249264273405088330557881714505284825734782521472761993144806077224096455604586065371549658213927194731197004489288993902286674457982309083495574526160458955425642102051653061128894477849604041216180136597751489538050771481678919398075016065943811132485117569868504025359039491663897475039970853444201078408839552976824282479259527323602944973181611790947501185337283192722192464814581923507403893916821790294183760937549521351349426043104592345461746260330177351061480852288879929984320732830031338872587179987863669396498277008978319921114568336064741994018318922921831920416376416150275295331810334884784186874627351924502531245211881607122725130508890485014545985152631099048966287925589308420681931047330428374834751729713778951898740059591346844330987638301345839460801395016620581533943984017758232997388219194671584303176822848091702985301729899750404191103784342466273551443889917316985288749338709965816726385754067909095033143120632051541505239580029812981319878941882520739426929379795560159961081719690328830305315335894562940021827192485305308369077314262751270561044165616145659032888993062838279158362209807255927811042842316202606472087652943657452571860581235344153915270693009309827332371761236376303437666743767084683158737772654747483362618679620849583780027123978222797807879547630839325879447359748065218480155329732295228056792862397659774729463589271506104629926803127937404762944119435869071719704374282934526293154000308631518130222381351852058175759084942197243905904612083008718494499044259208456472218728045292701467902335588397905373561710227384246782392426035125277086158309610971353964041546208820508112002540855705988578080954521048565906829695628810782016544028249276419573410376112024172673103675732280442603496522682659635577052056073126844953094623778050336543505087470157765177632571286917850328520811881691896533894859740054639815667384405171851013575161047346584202808119118546507069687435571446077073644235455687402482643038660994463401204808109406571869760026629533170572327552429145730412358824175050457124400912268005495437878602108466557428462806286668728028970568729475536786000684531091095862559243454109441794238312487820736044712658119728314144425533217972321237860817449902060758315169837299902964266309755797208250359072729260932543263582977007380797939016052033056161350882433621706151939934180481350158213090500488143436317202545360804973716761463412340077261843657421360045032969171941966223302300546090940253206487855257232784637809853742470851401034986512442375907176262872048563099172119595411970184629467146843174001141157837317761598154506849162305393259375013366105521142315386130854835245461984187023355599716476147826837725525907080934680246819094153374843414958997628602095777015686789342722829373477709111653178424341057750644374674698819168226981301350503321869134031614265596587437516970782750875716927742955497959337135903773106981096323790083326348434573754198549891897485269993773935300851974141982486016537593010593277759771150283539630560295904047671614730996805321507281730204929291250724084183211477488980160185266165070672084590617053496970860802946241775854444685927200075753128816560569611518824358797454373849781101636867017716648980914282346819494102730481014678882590491348457177905477460377393893837607961926853914497474683772069180824739077706961755875969944993349552673204686214662510747636851157776201236055298153576692476969684435721652831106421542072897361745783894780477523878413816527665735113448654834372256982148742524484639216172526216985361735444624514652200709046058800074335234819124738152557974603501879292348214784982916750207963471014254466128493098845192192729668676191102220884343106684598438860819928843893686795071817572801179600958460832807717067956036289212113433332090511439318878050806225539707786548236607809630479873056518238621623636379743156856095505231603630868794975262365760488835919983566303632933102224923896344663455909206205666713439194630796376384688268926329986326611728611205042393849741454851313436489835853851219980290954590168286404439924439448769459440613237241730801639241636725935641321027676927732166626816550027060993502734772235907689764239145659071452199010114079114349740488469939779090963907408945410452045331980362751052127708638588803119446789426383598479089388770517256100367822414490780798335760151704599603234309935655939725517273286977134966905203212873531160137374006209401825669050899673191542950462309955070854887477283507112910087778533525940130213752453217652429221224809534489857644847070250205459541021753540903785525350198644375152490942158131131472618320920608799497128916307837920363778011210530151038660936215315939483931884391295222606438823752253244004183368445915898511213815558936472601646157084483344967809409769731067141718486645233993836209270399371326119999151745723811041216307317923733465916154353197838606192358836702471097147261934030831400704488209331621682134586605818719551471909354524750990186449508167859069136306812823916871358530382547125079976337580496447482336739744604297047290336587451609389988617717604393728850953615031735870915132177026466160272063003051987738973365377592718493512124779375233113337025060574805547617373822464504005305687634832045093191915025819511859864326511316345493530077861986838643023911998232117800632202709131653506198993630915301210760729026546641708069475125990834811626966581058903796201929459463112978424357060135975525597919092769207814339161151834793601880813263507481981637051860037186769448318866315741351062126713653692456252170100649784373932441649502572711684028450112636503680619217976887327603926158144828852953523298567876030514993342143745539361036385326139374985615192293865290083809724369411942707660524314956194322119538726083411138916206189169866170789579161569075248391560309089249793521267424482576264854871679030394592602920247370810608174020963415119238328399914061278021736287492750588645370970855944675580272654251049904046967222666808259044583379750969752518111801398479659572975345013533446900351470837458520795830735951858442320366337675895856006432836096518096752304036686220037883055859039781723072473723735390715024121299446880855218868238774988885213112419916770799768215038943354748156322893141579712305505779537101247934453234459926364296784269920215402737820113776041336521255775836201914788210119418221776783575688031571006298381674606449512747556320990369308605999140669745166771174750856259781090602709485654465589607747519029173893639663440375505499082933910414030632837087682149722452978563224359216603842151667470288693537355327818997334173520654866816557900481689187004820530682894413484783256645682789465737396077045171378057697789521088803783474405843499117588495071288414734065680098157254010770852263602237906484947634566206548880065006797939565120294656019698084361559301330158257158566176413880152924217019521195606662693082531044630267763300363777192900493593495032273905455597019251863345648144745736562571183826974205665568583697145344242552776313468225869802015294195508550761884035261451150815933828333790175340884225988508302618933068645684213669059587021266553108608584158557016755570440297922140875908861340093610919473200056243840794212729663157426531943806842233608528033634323567291908612499358006604340605576189040626389194808509863514508913600330845026995886572053528412004217793572943287596030734991814058223922124630624223787230171869566672532262279432058051074444210125917820587098474082333322901677459193527214007081565811231608393324616314951261979675352078540974359940940778832725363807539010185494552498320770345687672312076176350471050479866261247769305470782613819247792176706869408812264145700225853291631014107639606241577872705204157895155149211794450503902685806701614011557920028580010925150886666048148580091139123704322649727597053548854441316343094854131027772085264671042987481209547651421597243412422358257732934441365080893635140299604534296469607052607926392614178251686969798321465043194257220522698696969045268018604109550282437921109960646721517951666436275440555871978019495053819666261753934502280248525699572782893699110509651379635570261295625370373051160277323823991377617809973023284101354267644067028996085267674089844214944119945486876721174278186161047791064228561034685154769126631699594692119026239069048888118289530545943735499030330875392216019892665542031336493893528891490672730133873340784162148342145219971425457609190453965735947578459433415052996408185278822289895504020486670969023922605729711840674807238006901429879911447730956686626341623972659838500337823531483918217234289020336911138839258169249024095623579499487760147495121017421097905415387691181263786581985791692449504179770066132646608786755378206674544218704963889589379882427291322045090563758919292674822957411631646682154998015372064905433673018861408351498720452938912398373919675387722425009430609191574263270501571537257960417692543829718971128148600470444777436398717303045890068306990102110450018935995648367724757505743569262109965447195776528291030706261067672177531175559375823869986454069454867956127116739022395806554550274460695527860093257088342744251012846821859709273211629600533235856160460951040540067834203636207648549549850137194004910404645960820580463890993052335545821307747116011081755419426895505079730104680909845968930574974467667141608873106451072717591065466438458729263727731479716384082757446603071272908320891763003881055344540202014435024987210049423456413863975683191508885532362698065770483755049674721660673714110482123817171359507766130765333521520371253217413705542455500589246829106075138151216944024036941416022232971030078974673177792994436754829815512575239677448909640961987920535237481777144364239716411325357196062244339740921601202835131765373525549541988208005366747574565545665912951038462644028061090241452856261864225466776103932485834094525260637684550433499799912629733837971849231258033895460082168731423354742047715789946185532879979746511699595071781236198618293226443354169034594311470021372499580916286809002103091384725459543138810499817409873944551328280153267192510875091443300508747169691959704019410400136687966073617548388867242775627980328854835470642772726902142711888618568156966580169472719430872772512649579735589694037116154311658515954157116298292198217974550340435942999505166248016282919289272878744755389829638989064758759449598383732830447900404110984134207032029770749894127777864298082461993088388062683842927664969994674305027977266971995576956153688842980146349864953224444870125315528965525105088833517259592414505959221095430300435394312273373715017318812386781034741273838183217567591286134740519557020358005915773254326063850916251947058523074200702091793038640480086698922039776174659819886900634905461636370764897557722120232764281520191188994542445537020487915711753890108364559890861008177748733330253467956289747810279673931720952827258589157404511932032762376340895406842022194218219765486742224345174183133886110748852232765866360858792776644051700332044054756239089990999717375109263076647888499467249342982588247040170110735359745344977140634235673087596940008720144722930661786596517294470428497925955046960963359527541072607177812989284352441577439067437984660148643998669342444599945636702310008862555202916877771894616593172148913457059506100532311205306420060746447642798828209953313067558905237159985353124901694840119357752776838878166858083706606578796316058373795743571424396093993217283028209853854334233369470911725918691609971237428560282174391011654779936908556514974488147837860838724265230813334861081627702980993236666452450377380453154976224571523415833216876997045741562491967839287485513888817690425413491311721020171179226671790216666893050633565952677273615114651001404226860123070698824811256129507547737038907972143158920486718120420729696127080433114349989544178427908809552578324344560665351058998093032918157921551961266457766143598133277989855294714692423818804223574933695153937383837804807073872762388261754806494834558131086447119060420025332560394140143163885382220596233978403848742054931885387966249410563462799052614657425758801298892992509047698498471089983191845639567541367873719203991367280758138752786533528453407730392808237002581600129906767038779489827328120185849829716450440260243113054060310597287292708657854313518836969800393678757190304612214967912019170759291237218439678283332560488577170550435573815134252723693831288664825906039130259547114290571936932741233736346961410371895193183230383798880122852399477653842826391013052037762593024689488538811399347119558348093910794930846657662141075502107670610310177862467079171984774224739035925143336774131229712548300886353401618866401676866803205358972779861772737082602878697017467710097876698000733351775999614680047898612135285308782704746413654896192465669564118205536876090194247472586573123127118133103330743589794304715872551935341782831592577153061941298600900573387728985367515560066516790631791160774507646608775793771521882482758315938738323428601550034611665115338615896916039981007944492560831698936903091816241447591584777217711430899092908660672289291956496671638350487890562854758928079032668881651942905128337941097539570796125650300170057477318815711881743807063791077148440721808802549798991395090100478759733371124759901540768894736250742948262805893723476299635661422002612578528090607007766657479084421905522506524845036919993298145490102045435484855962921058659995972025015953697265878580361596170692406053185417022825811450160380599476626623802479449146783997165888640887417816750387949202286305333462396858426529307834935436579693927012935649103906454761920331776631661447464800361079072019254703222746864501571278489910925960315851994158235587528860001433104554085060848823300280569147542473316487463910558787425581317599979182032705255610938590814932287923129451908146924709826591494417708160017172052307063408241829563553141311273172145202651449828032328517368300049657943003658817449548580428004551618765327095252835773394699741500555937600239571469477556619386857639008732272250261067494070932449284481572175770977507799212301135699133006737751649894851852481016585478013820226055571555617552759860855115896303140163169276605854087376056362024184134550098512615782634349041119052928111823754156490878890814961674621371188990179042365550878838291274522331755401075384580469919233448196193569165825530622023875324141940829594229486514572088131015983494171113895826077242152228628074363205858562024767607289871599012375870143165726139402359536279318736959810932529388301166451577339068135943098966280277725688062857030760857166509627987702254058439839713228601602287218824130710374551325680626546271014085064217771757297607417337257474398133923880350213283643366120406458013821983612821047780697509004601119701257937124385598603938096507057970991961774970459182908925450773191933370266426667581112529284110829281681668199405777700799556366336718914935859331868093195005849559212614904968773407722793831149637231275414698080561774453652983058061047332091286694035952026629332974439723482153974337485302997968706327132733273218297714409868634447246081356882598088423390156875443700957586547765823580036794996040680764257828530002182003613101466490615153874177415241407585261141356214468327743650865677092215651464614517278184246388577914689103344579021690804791255114075233947981662979833736115821927753954277130904327863047570009140470995518093074247954750688144402608892379911105243041821177778498543352164461462364322699101106649069629431757420572176608979029362497122231528173516552091363111243167574505261345427742623787716959558878213723784505066849455100568753045882297613240497715173618688247048755149715648829455084714181138816950433112316373622304850761929754872449035026498651212815596693057636280996827868299707252810899488639360699251627659053307247717836012910391144146503099395209323137578289719055779554405460276703813661156032742873433627610751783825960797100937987034064867995484333437700317107564811994916846771669576380421168060408072740142437612875382618781057117759858122748550769857421435990576689174692862569629079089799569822866253722031914903655039292925146241548116824362893191939995182843275753239002967875012057702439660920058390812167147704743600185222267642698847944413479735467512662746107620194725545410347510034725265505139766070718242274015660648125016851705372663592210328295148267297347160186912929424890721522280131879173370382446919905211237614540673428412865661538674137126167865146843016918858437088124739776063586201281275626250323183921383954726761972812503557913548325167300228002530637978327951767251422280596051233923187707837873529882363526792623466957475724870050620316128311869330786165456956955612498989801528737768341714866001149899095991823894988334695056620496657137284820980156143573229759668680027742726006912242769217784106084086226641133609468011528126293996078522668854155659257415700981766426143373844263176114274851991620745383775813692904675133728684752374852129428457819162845801698263188772586211627033893028213697991710144064183976134642759679079243148699678817753688816578544842324407276184050715088287230859465669199767378525814942992268445979801616010921581713746470484803282000679198664413572206954450634752746509262474894535540180032034000632497423925328216445300255478846231296416164881823921992501760599999906540222183017815881053404316455069161074566474871988117037961136285238444510007061366781672114126935519266733070087423611073136231048293946516051190177342611919701801624011289933134000915461133725201696073916588301856311260000996714662517239561009201395193869140545753114739282390809007036832574531489412696248652529167163163009152668946416376220982665856667353502132328488970640418983120514042924077234861221499770669052848623783212638909547205392826017354199904812368260671670075676781912670201026322286214800227838927456422729868911651932765738670507339361487075625285118067543365769312681729746838373715604362581486293440300978773763746521160799904540562332279084778864193819689391865100116713842042966297542447868642193416382137577450131473349326444431012825313869464536352219134158255962891831558608981708598135496120954883249928929037091757142930572396112500206812815121480363194992302877828169491648746039414959571421651613430545687862505063068967177284457126691722080765891170284512204114376178995385313210189174620887713321056953872971543483344102127676900525601512750126587234576797805486989931923758491071499171653200349970052490799308211258710997464320796509966246918114902437241932660696435945971697404227429645470362348209531003174239745067085628992893085036718766368808502606233861599882882738420161293259739604829429983345887956490714978456430313821608981037945989721093752717460082129652937747684502503060857082148942861701668045510997145733349659160457323085219805057545021829479260002712941807958594713599416491216048863080050989434565077545965609808856208434257603426048160099195054015219198411494382254210186529749588584858771144627280028438304952923006235422641073459560290211662735357938041275438589947093292533525155215200319133496248481066788222692072445131765547002868734383751624836856382296512338398926696435010958182178821683599117386616135576336630783269061970914349386696296556907583554347794209525557206913190731878988383124125365875839388826794539012750284239715880874299503514021753801086564957027608981411253453557239314683862815946697113631623123056480041478793628598844896974606851072618033899707585641676054770011693532365081355426168774485333111372225235630340206681008171511875120138501978794017933541828253102999057850990729321033955929180302747472657116676511044158644055748688508138647464264424610841984025634328586988800497649281190769923958379705004323525365378555917195501505341567751535205601993580000668312548890221280699836840400839204718120451991931916719965495932012620258175067210290191525958190301334887069343285772482932888344324824789044973527429250441392680420426120447054530252035954299216984291838743639255154679183696336565020152504593413129470954952837893103607448779830323274127070758030120482911606265086462786151288417127114557390658837893265637508042760473614068872342462317208167624876172165958136389417676905169328905324888550413890914866772364007835857097191028717576285312624994233251173301964461026957106137426091281049468467579228371768763936437614621652974389261449355697633496366446101243291595558188259368589918684783911010881694977072440213019382825518385302770072638869802856325181149899486823663782812344548344784150883061138638685078499818111962600147366570700404589423577592862701974954466668667250614154112238055426287916240262350555860716146238979354481040793736461479397329819049347970332627628088973651437162205512183497378011204533140659237908977702462197946104811426797312194926503231823255340951810901034675563531246380752876982526913175176780912512069025564558683778834832859406655214712166198626207464897466016731470841470647591561877532812682746441322912737500464779984832610906070539617917331587048568609270213768764828706557047542397231155051082886636861668833079923583792358333543208915038683242349838957853592361822788894163291171253619573584642154952198749375518482680428536666388299393980841639749793934277098297831030292808815661254732833316988205965575410448411071071820497375627877058581217129608935473931770984047883328564535482489846527397261423715327465760253214288356945493902281907368612347470850747421577338871941966658672054326720315424246592710959896380531352366619978007071496571707945409974305873031259156519797741913616841944519652128995168087008374375801841012270677359691530259599270153045677882555817635688527449505713991332290553179419787139051946001235397617721132673372551966011019584271131839509831858043805783098223563374404825061611506488847918261451322673976586866134551594974783115007851556302163882795616205207026162499532514551222816251242347076926763198226204159763708987245199124512581507288672479810758638107877268772895790490177804040388810146280714292585134528535921535097051171796007325085406847498248490856559006483426387448011561856808298476731775262255054978406919032348080520804562553388955951446356498162578494268188724990663779551594818992657179733327266242800844227113469541302424539298927009943670654857471335738474371932337864095700549640082044125210592995536410618221078650848423077973197049625359722735990489107791051117723542369806355655707642363053845448268965972237386917527101956470903057235747197826512270984607470757901282082285716275689812867179984958954222038299027023223670330761761387928191890981015056684150662159047065112196142680649723057597360125299707345654202637896967736397234919886941877163823147660523545350709062950672228404892361550473387460169898211426293290558021195668549783133986323687020224526909983825225054114672418609507256220847043292346103816295490012293136423536694396227326541804606412382588131826307739193347153275415008955824001904130329964859077707894112937947204302025240058031676776319826680869645977843314036368811359785796182506358431645405131264083195970779246351922793156148430552515855076407576597369089727254930147101981612668160066165134425024829655583361586222274830226662641022706865157424425524974628154405160849048776360368672587578222998309672007999879979659258159672033777876495319762587485610273460935791113315008962535204865473277225867362768684954134466887552782381063818680839201239278231165309155547857074688115671123337130763855113095566473897903685199502263193599910853914289964693985282013836967300926567720552260729619878256515586434055219385752052642298188059668247479020206813251712829150892011513619624419664307241861080104306226341462789262096227034239126723604361410511925716360827286404469961603657232353561423071947273639358293195512108437240473717255999549129548676799171173361607618297619318901203372967954370415135656999880463920256106934831937432169839113696736963450487452576414431762708596395631376969073325454266215014378353981560144633915502443620408538242887696975168936093760452137925182827483006977352920777360790964454988470123673344933000205777437019454849005732566281108706943152273004867309158503753174247605232254490172759051402096088243499509134507640804111646014278859113506733992926188864395740122381549606203382279346928531872661707225400245782022696303068757643588582194681035068238456486490171939026539117983084729377569986886516898280346115589825455657913694402373252197750684560264831555325926324157388839439893548163195746102884181445070961232433185813937716805356874782263893289506755940555473288097797819876755056332267135561018039302087015896545771938456855079186417885051332053236292904085832424842940606569764035439182543345612035358279617881618795074763337494473143955994215882352422721183026313623118625130888187032626690316839507780502790745825229180894318295539535296531629121245555862707016713636943537360745310078108973283562553185415849083407312844314855098130469489098469186060708778108818958104757207803085231187963994185267006304600626120172111482265569537668714709880778323831764112867580485145998892194854677350370563190747743757261402724952747427835156788226406093867040845905049448711389719052774622321452777973870334145352801050738932179938633940334540142747672103396930097502227818967877208383617221981365650725238300006757571845078215771861306258742651132914992490499093851485137448162660145458208305075560955362415503649066058913473210420153350077073469881189935589961975352448491220381655001091059524943231119713255542506073904661673570133932867308686031332718928304457549568757234934744014624568733017749529131455721803032461154973910007191965342882511245708178879491969135605091184128408223394589643507021843067774365102972423573520696252926720148948412972134835145236146610673908007337984316921241289336999780176822835131699535447015356698011481434895438434376637339729975609690239623170381068379643185245346950202146091487624542506831690072936361507451149558291494277993158948220068782892453846828203815054624208628611981402255781170551783168365584616240521754693033291274848882292363568349213048773692877632571399184845457552900466897354639039263872802905038026726716342209910450863197378589580152580081296989959922917727390562130488112075607949584950028484478096273227424758339503413756730416181535530124890752994338808282018015271192079011050594126775839521753941264191435633956062079713577616327553611968651044180326994564444780962553582660040972830934176909695019451731552155005841278393526203814278283916183516653669658806753904227151460644056460895057893618547080122018707560254350959405933336078693828192858627799880730230635376973830383795252022669830613319467331929556566027872033271834967581752049033634696092606431284766020461200645936611077321478291584460938021081023217614326022726511703767672974549593387840566425316574779937235387341327959840984829270818711634144719325563700684630349994011924210907350507445202832148189876845638042606546874911892048478529942249474269243772968325869344525661972728130351880031421645542886424072389883551326112227792742265561548263287192144776202573597304640018841593890839721397725750203638914675676068005170335005238053583587295822918950830979529687085658121598296237436110007552843753029119782596103530056135380039068595140489871287373755403616698159414255749322095592101406010175240761221967358321413151632269718640325135879099608714912355232278075196797151995431879268249169329065212682830214948918607211189105708064452263694220962349732498999841737839451748471306059135094223781390780679141484170053935798372538789108206973881017321043979495353967308375672957860614771770590785610938891245951586528547345398786946467980030065768678079660534871447890615386342910377604668321208052743390925408758089741631572714520173240572949627439126549303885353816168110975919917655800734472289150869983511530440708280644665858793003276623119488492703246689785665536938385229491150477911936200869251028198090480998053195000717776207456526534040939859331392614595995532632319200013807233752869866089040595808520505827752968968464012593272946945651091977458093839605211638440200588069630129041317035979419692976312361553150854619157865810290778062730373245247439324502234131811760694563830539098577367476200049335542889307576505755778308175537032539071272371246588549036992527325331418917411647162310979335093208811105161322587727302673796612429515170441620661100164227347610154317501427251575360659110351504827783337555841233688936572772888517942266844834368309407208075967812782720343538541492321521567434210711202299419795663905358781329956133191689503381030767632012514535530828672535645866217012465636847070238488465934815452891753504515109475878500705187204447984932575042965391188220922715082180288402321158540716568989597207944660047591954250034473949791188240344022541463895619904038303294947675882222480986940843530086537832983109810769709069038765602593246649006412846791290257216660428176383432384203011233211517253050833951074977383687471403717526993422781404831374453436792583251579824501189636402062733504122522342555767255825319983982785153000464072530780968280657679686869475960984812590660166680537925844191322239866437908655706776027233970749228957432797681449478517150641568678763835565575408612456629893459420998182369024285748705049930318419426131755292668924976192876359615172486038320911562042560908730914157171084425384704873417773232362190194558673871144625732908901377804032249428177206149840849194164495414242429946284296844437552857940119155981448642538385590285788416654579124145835500135834833962433429140027373292588565452138576433359814920219841115615493053093944557676406928661615796933365613324512005794411934198385746954950018677983426502193152193391426843382862993393764511787671613228692233524455076987982798004944792148977750602341883826030116920831907323523697833462646639309322156417619640424778843168898089957386719015433823292682384688311393921822992696986218058558096421220021542484103961522595475334430960646636627170968784447677715178311365008971275890234820828398425322626948177360167878561251720831502759039333095604179583973294687618731792488441705491609984930776711896179048995391456820929889624532599580072034921405653504622884199154081135113982860317793899488475013691788072177869871945776045934494944450653619782419044331643808428292615440511423566994197607649763189569633852869980619461483144230862501707306083230482254131699838011700809500850499544881430885327946923123789178349477410485211552522833441807807808102472882676769015341960897670744075926564589272379699178428027822442299701549236005043802955047097848961338131730481777678206159165906559917819921053418559247929297195691225133246993002050402561881200738662563715993184953601453455560328912377087414684205325160449183759740868542981623776099788925036051421122018251549339673680485701563798350247481379288667600017801838321854965798807971306391976996879225429450630252735410455062477034055548060722883638510175897188088246897475188389245443224895133211372770449725380228512276800797373630664047788608415399446701454853321124112727860793100095999648133754613908581259270740566581655860159981172224513247596361623129277864046907884052759226325673159512495030388815826174632195719535640818232554377169913517042011926614201704481918312793823008644620991959118947646814883957714234413115479969447684995004276806879244864823229687606723157913196287817126663667820107221295123909286450097603833637306251062524195023182290915687888599235281309874370584710341018348692743991660300459298114678414860309261756080694915986195046364122970618895909707677559780325381731099885321161279177207040101570823470390765952859204833117170885955091951356279058978445608514732856165189419072372250788009465151067772474105084264521729464368211340384396402295035051487681791897866636936395071180003563513572344530765968562348625452472571574866652105794303783829081226412212373916306613998528509002998715972506493307491574795308753195290922866343194298629137542438280062143384182745293275124288353627932758544282709623142049314726932058623933107827406119920977914331338818791115486054574168104050207059092403810940703384176069383546643970704959380764916695054110313527622097271079925416779971041835280067231815741197190126589288971390032257172940522280413281413689125265865368820952536190582776921086577081693185094257073671501888164072810978396252047311844144071652157704353725861245157447184961684375045087180554695446050936799315486591638656020258203947048782796676710007964965498451812410182209996200058040004779319654146123219104308860294460064248398474341128019389175785832129753399469074174401130021007452387336589848239404573756197945452535548973725588922346876922728920067838312602350045208096075909596928377526790893216304436113526163819327276084338830900938566990215380884055870389903213248160389015515700235896685981162867486111263690720326169140356408685706786376225689853905739746649249312089500670024097634689585990264647462784815701427200863900369937503435519350663378613219718643567038840356017921275779438061167032439432440083088799126481640944553841540019226254077058583973499143676175252464953255691906763008213078236828346352026075059036746263962136823248263897008434032098238434131046141873293067805161020885059753029182573195618782320172257897900730772590590176810289293336785245811347389842266919728398766294446585166112249954000687017688449991567649919025882732991850475681061678754035745715743222098782873495527057815679002767616420561014269767795620113894745848002657753304223800144283589662435801783414716591722212228940826134609555475380676376273654137698156079966732843660987656914078524247160677225569851340296643152461486318810228458375694500674432218659552819170292236627130752044042130032874158588558032397083042193941622206009025305940001036796974857073113492068479527200102262119209666117580453701949216037468872087290490370754526450602007289204955181917329604547355070689532525629967779812634109563920823113405306747558509252441421873227619785640394272310692809504797190945063620557674530873409675272878786156599520098586222246919511878857338681686154571298812920041455944907385976100533633709081924082664767184656210864293533820360680940556498352126745616083007070936730301921545508891990774207306394473003589904135270208575212950829139623351079234284854658985549568008156038713195711154464101711691007081258946081106469128773741210313763458643619291018817953556718090957879374833941958286634123727008440385608393346143184729388375040497516580776214523561475269891210739718372954828907635742770306344705343680851666714292181527184362963763151157349206059019037199527753946974220104736153031856995625797573291955622074183641666261375436813356319510739532973618036080528444192705010802943083973454805475650655974292281724005121311332795211258926395294767486364498882559570602762249803783122306670869090760845969546560986302130836879092302356254796988869669661701428538057708380217847110693707686149702098360462404175286451024757125372586561462756902739351381770639155332960348920106277906499890937138570454062404887074897333623644448924204788483458615116754967243992603521485217512296825267752616142368729174843626470407206543666764828530105518275392583476501537980961153995340129530141009067029914031689501125565795705492493952480684723561492980176803032210680291792602613559104486158911802367732211169308376946487088562804256696845262591251556218761160848511772813067382722495452093495533869154392131669504499195851752020100027478949167554877401936979849297786653760279899328606565070884802718853005424634575852153620684650927137139957155807113338700029700682717872285274907493327027730605379712218965891265156195357768642816711201845995984201125302317211550270407653401317002274616710894357505855771923622961565115084358681681715552938496055865877392543116074756793455788883147055024301695165494992686991339997470042874751991471775422742880822218324602104402807588955219289962941860020872448125012732256186722168317492797377874164005589761841890630663348234492228912354002197057105506719574296234932191462807804367689195375171569421416521865083587516033006689878150924014758503097549213080849893273857816994982658362696395800868301314628165826832627337184760896834204000382763212769108041549995341859011961607804446367419301873651904529377793034589841454006444713217164668143500045308290994353692310810751929247912654850345230243538491189817999030225434228804377324461737334914029165547736470924147819585090125946733774599629509913220296319080767212238787059906957485220658557533308380635677288679768366207267678993440807661147498138308161356641898400485028908297949835313766435848055880182988000981384217895394530991981848569818875850825582353394271253170724762218073730942633406577055718096101510781347609766093321135861744948171347308774504801141467018611418197854355947688174091018420374168123778964885307535450293929287092240688989468233930197316063853198801280427390314875139160769921132766221819748965294098050192814006305305387913490891069292781714097150747381603273033134310195844750813776362898586094999705589578746063709415005423485791567471733509356756268072262560625221228902313281712750091832502678939587905929197889442608468217470930661540156617923405545933781894534765051804879509056557064729160299089471584248049998005079024569247163915269825192916448229962378136524444686965902866969911576304857177482248429651774276950124157936612103450056936704363544162973584488140522101185937575951580068871078513447619290002817560093380508815605243615164516890224153460137301304426886859743035435376330058038517487713382478871367134810679876150755456416487507926866413682205956127821944805466394528191070356526880979546815575333733433471680718747418937862744026606407370320934942666787044618646839551181774461826153224574937721908785081442820390034680726295923833950572148525188381180355788939565858119575048649435519498217899814595960793314409059350967507026175347325437618614778404670951425546162938866910233990621191728932226980070943065872856863061453655398332171046533568950784699840233199035863610578737361208453966789630417976132283891172750355064829700518604043912614480927819981674167644773342950567473207214163200937577344875794733329638409174684960672515740117912009645768183823994625767507319585159125395189202563477224968985085033283868012057108709018394625710056817139185938891719895112467135988692814051860765471545139148901124927475205989758708870672612939950801697015690745390667183229732551645780677798163189682530127422850555841442303354359312791407210939733450288035021421634548289649293270898941342929428390210062501287439540703717663953491705826436100079144194434629819830624687394230918239863287073225122631358595133492050773861662275720081867356079882114424869362475767497480860866932099394571801846332198842688999041388096587375915610058655460888851201203747970471978612725162634916119738677574121577882305032226681584329414876385293175992762916484774292577877858262249694196274687444450442774243844424900322156671966061976450198925745105641097825282713675207175994740042408154679906607468083843707686168767831765143071343458272964293954561379180315662970297843731052111160007213848878817847582310974215971772520471413112593800190223313568233055684765234228670932964206384945462035611783137579937223756704461195806133994835261786261802246700412194904557345549428487777713409115980706759779441234270373697409003796172693783652455882522669673846249101754310022704913310463617494113145808754428406626751102101598559369834590681980279366988054084165291578834279598089399830994858713978406616024532703165051890280389035989369888971203314495507344982713037643917404831138046138710475771557747194987908647134029372935131034922545195336023125118902384522531078019545395521757437433388833115884289739002523914441175430832598985972515262140933273986214588798499672453594350224502130991964842043043105088851589859752625422387418136871687472298243632824878300089684624756104216901750886929810037392976714547112802043959357256824787238298832196168479227804266668579425049919530525280603176605033404430870290718109263088394713872124781428124762520032367219442509442499122604840627567756187826003086796932529715364187022660412463664886489617698855349207716217562992031274000642094582701293435971449034584050519658337186166982164106937237267440530606551607694039017577273015687713079088905478720440018790307367648834457304359184842054418388735879400052653695593451246735926489161297971620676673460722160303207397252545233894052412509096193871882852549209281504522160826657611458917156939995571235175222791816651429233632201491899801293396692579959069471185736303110870273375887078167087445062783658074324105587548580352173023513186990602033011661561120501918345312804736396722163351112012054516494527108035702600128873278933899248081600543270746993790575349252446332981525430579850467957734321966134606790696079788027987420151561579435896323001381833038738909869664804453605387775439736279277493269803368533384848437010117163067404342989060551684725718744419538054519982724382429145767855428664273507803376411210109709796905576266715389937354411378384164460029753703493170616664600794184177929440286278935759543506433077671667543343706217938683510533626758666855991397046003765203717580477439744998092147908229304636309632446455050537598701330905082571414174403557997495148527586858582228227319146865273994182188120716888959209187896331447958123773201481980245153103862912129003060616074402687432599018501317914658812382761412713337499710071082349782423614505181028474295285783154846628702697275874572586942825311737760316069696402285483421539950672853749333242328354982364250889917669713287747020365676983640851607782586422369767595250080040180760397589137160461125682408590475900515997728680163381868846494958436461797324370910936063730546165023804628475289130062457784739087948103470174324057870543097538691355310319539773102363383370895111065373458002624503544466069118116714467843748193177677753929474215369243997463419273628406201469410364102488331823435943279669836025161576902875765794280724233281955929004044674974272945743213518114208897828732553206211900462639037639200197281453898771863208995812220677926004010340382685712497442376257934539108497202816178656364259658370747389240310152993101953242844108500428268365257309736052222328358370450769242364228253646402473531918121064509480334445449501475050751648992659833731090395988912605191322845162768511905189374355783141818613932976068997088196214688186763970251419131517118065256643473492137132967851853588889605105762136792030852551618035727309698065331881622246399166998552932511953299893335491289178174662891315300830712023744993275244928510098672439175063568608473716109918074856502259474022990886804553783766120308391603823811227128083366584037213438939589760648681367548047114083488212162156134876733140429507859528543352823943521058193967615935533920038371605550848821102417092940583214492145077576867917308774800124267941819357188383448952468656034354577023431006097513700667347384326808878883422579413731487536731662476518668718122327041436759076599569151100299791649010882486991987119040627844378520901590055217153553761978103632221957332877612887808976007201274353238429022692941812889030013476192341625330724592674242605876767605559242933409590641432590322641035153148965236459642344939229577680783236053723730170195421850499014620654806549801630013777204565157967456625459527010302283837399154962877556266433067366748810146111651272285274082564869447801024320733200384535219364166611244526718011277525914244864984911502096829243725377293089119465329016476600703831308022245713963689470944628941814467623371031527302352501545280662473513094480580419091841530512317220742480629134240898756511934325241671409255684680589407961500750554548467710491369424087993136530110185953232265356081057100081711201197235826954140176839342794929953329668683721966606614372667251850254787956904934745447134288158128506658985931592124421795517140829806807018127500200260650934586217918593947923532576840996378557108833677859556727766657804362790199539038822334665548035397821847970055707562125497967071435520015556660464368828156471250188909033034418745469892815775665864107328580578868956857895368112998801307215218402630550454470196418056657677481379229231029073197044275670858287110828729011333275471187827369304652763316373703691934860411231210176761652446619949807279631110958688310818790463557622844527452457527052662595578665690207487984922335995439473625506903335392627842416227260417024713032576382756045954049907490072943074736929431436120469554263940942592505614359166616546526375201035952420453241729061666353415948448567503234338262009095403393403438819405439545204352743293902776591875958592694820267008500013911083823599521029889387337399630427542934418695792721628756205249802307796727656735302895870608351193948382347948422151607197447644084955787869369554693662496567607321625159918523426715937407363137571637842525668929921429371584366071067226767604773915490663125746984031911216900168851121824213429236067897754006147518614946973968661476929804656651492722133830525818050202765095678379432866627663344633571723888739443748884978182279275347299796432663517433796068297127386951407089111902314150277330764569218082920969920867073656979316679793335891523662863476998855736012709651074852324155114095376793996437270009659065109207406132151822749466343365198824086014366451511499551620219001224195263095638998174723912475356063496714577569058953761523250304739041617311481477786722255433079487244832051017466281607366092743959100896872995189247914058965371238792343311391189505130552132558922759543453225599510476782705204346967268439432190982425586914523836793121500576559142534301331241011910704400652944012304079132706410267519939898166131374240452743868249111064153053195170879034592325035213134081561538702563421623091108721849021349469812522878983875848152485472652443621091005784354703297849151281789977039590569239028726012703270192305613204155869540139030677119477164260225227912826729242842089466593280947880565300178237483259833450530800170390811550479011868662531542446094434350934467493426756487972344864361938138269019019222180151682652700972980432139390327855402281083238598979224965279236815212705999400274686051047921946765927481076095459816674289507487875466941267803502944992872977163756404024984548972063780885381554915813279689551323134478896120453444575593718108348975796059978377696861510900581714879525872166984943554837958042745060113273257864082063631146390954327418820992419045674574757700840537451445230179184118273873231814255381754420401246232160640528040242457708078364419630686102854607587469726946629511225366662370010584820775976692575366829222194703685941249918618976711179555842322033705179896797349852868883787341519889674265024081348647520512870611269745608921247935902971825899782277611751968305361776858732079659190436901026412907273331457596145180188341125652761058458810166725057733643496362746673558841943147231990851980275063939226108173553540407491945394665618938649474525188579428344128256005733527202020635971712676183063247130611944186872626715887227516673447112419260748050507454857029339676125647685534257887448288081918502132116304239295204933738326978695530049168956739448222829378959042255093020948809434894854897029321477573156817100758933794297600124353353968026197378242143833055904533529299267180627603401675876467524852569374704053847461290281153753988961230363883361715267536936664136297249298179367240241918774709221010056190142012443145840581604679098033414769040005484158976388668788773907573061108612129896867303468975440204935786909281294624312671416278897122674041349549732597294418364607780042247122726625517988933843729189774305766486457491134272030767741184822528537551347219530480476425294728388821854916797220213761201921992768836262328999226396983179520346864022154587841907839170420183878062181588031613590160780106340280322462368800837677072609823344278041798956944455772298560710511115842221187528832018665844451940082295471661145268289516408701987518500601458580098309109890485217814098425330003853678321301916981194038772198397119631894575756743199106346404360896208570998312636519441695837008434128653305200750890724711653170695780803692010960244318520931079672556032763198846450234668811999856303128122326956145646353967644332230186600274889453855403781506449367772085822859166271792810431533361385776114110531734222524933037988729135456144762186379485798270582387973756894387333053670413749888004719805196711123003886249302424266903872675461501241726505847140130621981232728585188639163003452323586501948624556904815131251443013546525481795028669214299163736721988137980473920424567653955432188380281442286777262579519236921073446000665941114626005952584228200401953713064444560966933755780329622088483752215805210117489745060798229315032994026959926746983251558627606077321879122357066208624185099838226955966605134975466758160367701782289810134141331543622015136684193008702783319107683950279883617418334191211663679377436191644185951711860101396348761551597469570507735519512563074086101339268591083119379862885928678506055846829749839018501088561080040787553079571839088947012143219672363024168832792789549587273427500137675300759198170893403637550540454968998544427407271081133182129325469455084952915075146229631143092353370871872478682495942336363660141446792964858687352924355834709300190400079307700423697808229917098674586676811182435624913652525890571862863857694229555043272778280959080856942122403557468537296863401956404170033102200951903816971924245848841434381097697679250197594166431783185450407203948210548950188865762065770120351423126751874003428785704017313262283837851674245476353908654172994088498492831360523463013472382875048745363110453605094310211206450695947824096786346222030881275527685089424927111645171604321970458085645385002184620131382242827303204700217454264086988674383933933514578455251594269728075725987814119191830896576353679298058187275012934115282499933783136236793518116760390205885698057913923099602138200612279392065127131469665713316437466298126706126300963286412350723633516944549863275382621576028444493532525849984166491460842315415165514141659444981337241260209982327739335909626540920880934686285878386441032014940808091534446740821193991370516788125172719340586955766421943554732189699637675886339248005116193949390351683508366921792770677524253233569456298065409641524352522584885485531291688964917756698007406072251948336139296501382301020587027255513057997722107390377896881209481949640472013655586706251317830472375702099456989393311158921342942770436679652895465661568007950334717420507406087816093303041766945196907893783410657026764034422369220156429954620563127587022024790512321188814760836503724419370250832372982644117493408533605399706447528445785294337976602795751618264410294411073925496283089304412019512208521469754601390772228888696416227136995318674510343814131222671447627210320325254329450331812456657236263492923923381694617576208492885875347375184992165136102255382358064403112938878272206535040961579531896959590166296203626618027771140685808766927694508938892731835069860533061767349899957116652204426557978999638910115127338962805380954499714489390098557594159696987661743798401135734444159896231977606724355157149366415975086312578095256978581837139571038803996175585796239590450370535057359919468175824687430049084844547063535663930769197027475590384472254725989299595519106959611897007969120636335016360605044532797324626653499380135967088630696143471044368990887558032041020619933716522582077345544616354661905878218827268033105063312506227876397143949679969678290842365028758183826604080023891120992824799407762259107871571472153165731307018481442270014276421131373481025618167898901660140500440157379062049912130316778918463413446340165511754619607445219564992473031661853173533827693199939535334079373325094277348648663172764979418190268090233281831217762101060014900584509902696554833060899749400085505369368217959839470594808414486174881062265372963432685264310493329765519417269728229387271677207673328052554335304217613087307754104178608314775829229501589109062524056058447068209103750863061378357992824820535600205117948368785603119910249627907078902005454859926547244652098245689577512763600758088418328273684435645396236841091337735246543477313539419368410750239352315495500727431160494202897939415118002952829098087154637587350186108664340695205653176704171542604747174966590162523812953056509764827207082624639353085459571892749780793451818863579762386806519058827042539492673266540681853654460947675359865067090622804722734884239515842354021568633135480840847744502392725347718060685042031247712500401420567531985797542304182771084801631756816615162714332545440287752143767015306636462658745784624734869938290807269474444143072828919864273420365187168016217711743463879043513213681119084773097907164136144788117075182740771506573224146285057866999837343968116007806109100830302966547631636329046579847589019883197356132945748916922793738768120290562281012543456409849706382124313851499388671783740742538328870160688728796505867944175931263793353426093200017914588954450710924308417298302304912374266639122812982473229247718876446508679599596155478111460208643471450349586397045360559050753181381666099548705207780403443712519300813022515180796936117505101555502925107587615953567904084425701114069035570739369206068161836816346612633937290469738506616918357535969921061942298032760167731300964322182738554055184913382446010402950474516366968210857208894204893751752422476555291200150310112265493794881524623755423622150749393619058690791981473784043278784315495677369632839377836569623636154359072761759611309954947819962366367332539853197856497873995461430993849521121853385368162252917255921238832805184523412992462606522282574881144455122152735296184647380126162421270739788876038412571562297063899342078767287371546570398900308756524712059827648815047897860313003352574975758819800124693893505397849598383641786428541904944004515135893080835084542006626060303271417982253034450896805623590890777891432970827431223159303405120498461784682122415779800655065860342655349804146833211509781561927948555154514153802212147515401969218771802184017099149044910531395955053313745494420387831270743672109342483929787300984096038502327871533074344600262236302070094584396869812098569742172716108141617724994880660196386255145806958631206055411220853722363892558216464688326875754725020629560533290260705220973894069107406369958941547858075910768774347713203135171344600609331943313444121133990548721877540351587676814435818687926572763636944646125326635386745744757032284631736244502261935440430202700067090466489678131664121005211590187655238316717878064784358143122022963570499249314554336072215498704311722676533224180698949078012833394992468564716323584069742465561436234295355509237838143112100849172787254568891808067162130551084851109611235070343978802739752058760781393021923763100658514779301005751261368036734493988615060546077180717543849750399593579988300216856886049166825367916461162405781864328758975576516428203606663467980078966672101466376035805788418798778725596203783388876107845185220516419105927959547136863214893256368956280971028814456177056614368488776068411219388399396702210735914341448106053091732593677881391601813270172407641211182229501458075938715245084763941720486751675355072279648363596178252452076002720537188640292533490308671598450910306085907863224232313075555840306868362545100055264814096193040813691489468813551759750725388260503568479415168721663929391076740335921384799227889499781537997331479244307246865572892557108409113483918545903956732390125773562734501943813311981076779094498329895132969896081575981933597049744026054928846059148397619070549635654928667683941220245038306702662124458001324126725577178778392923227412276870774155027117418317192903080025901176348347120069706178307911612553198063527234852054789096226536365390661333748678425120121429277861066938049135728294762480196261778396630800873958243710623928225592877744672679249632259787696542188530953819195764163478054586966071802532219161232161129910730054686183170066659508448638756310785745222799179372338378972432803954701648267799144478831089714457006933110975761322190386316317372021297553253041054301863762837874080002923149288141725272756983016663911246236214414024348377363679196245400211712825808385654368486748471623285341750599458099157449693682796048142891943568899070288923023897673514278648962505384804342533697269091124660406634384384995415244122589989485488801302895967114219762171108008656496853782621762964818217469148074999212702590777140244350007978489244234720686175807351735400909776026043544299519003951079580590498558926812165474901119387197721910882431660418592478474834360114276554242086841411984613082084159049246906550559415073563051374976750491195451480842565619478925472083473998315689211063980857722301644426069626384049095267649897856197160701791965809657620305184322308037449267719269320680868939609272452562941950996918565014354688572134542088328936210139776641988108314877340455426854731963288127893263455598545234811971824553650192236195762209016377646919078841219055470245825487809214569910549175609544703802021043324477175149312241590389386376055488368367390605529764553852610472742166266578251349552557031117267507273402455364793429508352196380818878624810456657548847863342973011051584796811642491773069088737776720025972139852796790908017908367167566488037194897112449451478340417482075979445681236531569865147835769675624439499872175043227882073982199317795699512879767479981610821333341466145609914710260111528859699272437495361001376549726304450178625479652968290017234278936225490467537795014988525283571956611808291106446337299570451284399979813366894729935672276704802687068111698403384865621265300480490871576074574825129538829957127706056874331341205503669054037706149187698980390912011743346845638901530554491945887355999548252193696565194156795985955720045346706142377715449493451936164892909800445668328709781217434874500732304656038508181968571236741106173005315427357989467725908375632128880421428742768002669371387170356956522969705714268645899119401222302968586814155610858567020854385267178355025861085511169067938076882598860597428793715436774862264382056311346334670679008310296385080956058266801183799042185317431122177107959013675514031425693922539494495337673415503303764582801557097180328034183504145600446330125699274623160422634107904117325117457379697784301689982944094441837316638394023745897193460192772288359109805063744557417538242559984027638554851304631032843908681624283773911570157189368974281599024121821079507968069276640684950991893199475675624289761692209819044691409633241438700670919765921843233146098622696505388263423587529972319286195767773304995428052794553403784358703486505336154881945808952104451107847415834269182377394975506548338876272886611185275394513498837737434246922765505702599296526327033840895620733355735814102880047219437306219481842552314697167397787840530147071884186193471839460939954268898342377927796788548268000369663796075833770753079386842047479589151995063667836972889173274486595972850642173689929399956065654326430190908376066912279907465613300835979477945171402399608253050742853473649620117229889182733270849594684204751040516123552930175250145883883451760713163264454020656402277450289798099701100584955566449670912319543842485201441591614782363297226734113533750655430844345942124860718172215121328025006433894010922504738401602977025071774407906527918270181433082594810112483328732565309657218358030777965047627928578486416752811463237971024875193242770019582485563530053990161537827194240091967476412190043932952042265029829601717537556922905362720147285480911023842858723776562717839703716798041125334405053373415605025057480871961266260345809616560181869582416755385901919553281926901301689865496040947042942284334647990617295454866565066864875302731114168002491958661729895121549542977478755602066172789781717608393211519906311581208096648582786896602602361936433343033956797131306062741571390579069225160891314928651044469257675247575317776988376839109711149429840222640046761184506009024924332613159724617143980148413562558027516358847987761428257929457108680975276840507464437765588682650183887443486385867072546521780562992393826061924908085750890445960278246494704029455671664030179015489262395906861266255003147595872937873939299871891044505329646404721506005536047281508740382005531670076608470165092691321220276870159109565420104879167459061940658368073851735051680592571499235354538350877979801160813900422342657489535370763668623283807967810694934305812939616754426398010086380036144531564880698807511271849377384434424449920695254372153458099684388910865401986333740200222649028956233777818942780496197770432721636039581532892773456530085669435889798110168046291504312155947985641240885937044222378220076136361022957658271232913707042130683149891656515303549734160515795843347357620430988765936079941236361960688422044356697399322692344843075822923241376650488623238259314087345010663894917809958224667994779266053339190565195435886210119493292278767654332707177401420850329601667273207719508814191433084160857549455679078048103727273941980594143258677445567094742669482419995830320775761361302834288784970331297633743943143047858502157397455434087691243899265850732940127451960144356753624461680583498529119018416232460245493841254593471137691554977764500394572591222140758370632265673178279189859641212261927073391757757757741789957030588329174503884590894661920972146076134627055767660212434267654793526947830978172589576641821698761778528289269104116231917180135165927634301912657356357779150494335876649906494795863403154996381127094973914559794321602108475736231019375387570968538776909827514406553895186141484731796025713342102949772858182987769481287693353315761314840517010517460369193748641929431987525382959303769267325590098886185597146134310585000911711885275981532811053989898913965438684014921268587362039154932897520729202896685687267025424098683921395286304144133027242407478112008582071673850032205863964160130107699202122395115568794897726086678213079762636679822336878309637724088744224689247727072905740984312671814763561908100827696539294694693467730696799227649279337335634992778631553778072859371603451333777882920539240359022663160833469051401626996641933194906019876592583041432873989951549272258198952069698343753726871122712110554623875394773291257060343433937435014487143169644478531248662319796984103431154172467798678940318123064941476497173620046451028459468449485428113594393866802187373975517457491224100874393253234239189048601045405341508337435226275698216012316197592658023191769809798830484372110250605724080969068745708047803301346400287661135933666098873829095157484643620717744723279714719974266008823144825527898914467850378431522423337381120037714277605025780029484861014520852828744261518705514100478851816715739859174392747369916541823524334472375188892355515664606467725604761895663279879436210698100891046436023997041233214411812801025672472448136260093321551099139150032336805435485151704792699013510294068957447248084567635025371748158158196917996877264151556514267918204601472974213555089752405762833589341411519787052453074792656840154945982090708152465026856287244540612366314337676868196804799379748536134197560996717575983707797220821691373839164499034246092643326561365064285036662803748160647261548254613052380447584801766879577890705832626639449900090687913124440897745888978245514003474618029600333901531130557510721145338982604642881044938648253288854898803060966569258835853993769373570959589594308022655636140417138301192460623518610404695938574131713553474631674110638841903851160608977763137414472272800811784248341427528406239270707528091666763258361095245324837148981483336000097449268284836853019289393910529627102269297910297278644310786304623407575572027955214480192256808771338218170724016985772578510234131016444761340715155294779508900078149406421878983141876831068186935006448628997410605741023161969064893261310321003259724794791244137182140513193074244446577430307611928772109084714032072274554906231923317099881633185647104655138579936951432943594886752376998019196439818047372868468950965696398033599741487301853142000025335470429892319077173635939862283516575813024054226191548474932476429397474231305151450719250254758821569005243786409885867805650765890359043839870254610592108389411729802560161083373945143132021562267172006704737770448682363542550524190280729582868651417440522140176132042460034678511079348821158785219357456619199644931760399007587399520866745185608172630301141862148251572847196782323483461301513356156850671885016407207654556447271681689602774239123508414377737438241816052282657752632692839863814220492850086510721339491969934941371727099405017965252224135216910757521845094356006626671001107913504355707055869101985946017920023847838056715396838220628165285260266849193445265918654355165099479019291168145957750847506785824729893474590055573938952787703954004313948214511059756222727818620111831843720232388927093943686208843292308071465648855740000284830603351606973829955145735073958141681158816890860877818775692775596980106776178136248090311407600822716918700389775082530302830065141372624644304504471386562893067118667799459043892552273097162607304666529842926096522109487038089062131899229541275669995268200523412072523912185709411208900448612950833075354722759905399767715779015202336058073676681661895104772317369971729452900108087541134854333240803530284972739483312256764333253739398684424943168881925656518016157099674166908687459470744489338742182144495925519543130569248971527046887698864678739352869569038424414965533520512937457119140230729039910216463374406460540150483282788312920295486105079753223038427487307366365562306604887301987282447407230713266528896835910428093057692752401033448595259623127265560207424678116354904702487728970839972824567664621043974556912544658889579890295440174480368408130491838440416615969356641650589427203023658927113586388862448078675609976595587158963724870610548214843974501112767206956080508227683003559496671826275451547752071731498069855256598849769431358354265185128308466107218028152684951120391885895660974097539670210098458243220195884026777528153845958369055471400264449830748275692097963614963528034909076044566956468750944762566844350851957401196023940460050466293126640857335092743702541306158893850734765946554740052334103796386169873379467477359625297814959280607164372697399806452732802969259094340572491548045086537982941955775514498684056724819227434569948279793296541377494553449964851261295997888781573146918176904161286904369811491952707089750190963531674579638985717829859776009107557518030435939267727814504108927121814906225083694197230994745332701615714116422067259233374316876970532001223385994287833565430950763488209618540435292995428133943086996725375869140487510039871016730346966652774525691331902608510347968820048130200853026802312493105368025728492838418689458131352146628525165201686318677868044654036558179523346913034654878556206992057847987423524101926441895792350178296196600480746425648475739675620565921003760115621566797761399535153617964211164956449235255474953836820645773895750291091894425864492194129562037809344418069837020039727104112097863461355352384685133064921612707814029506603553793461269974182219444005671311451471398113533587228054701144909235693474409707482666687197111480443861599463186756024806484721487444416780252403212509075264007399587766070062996305673256944849610308100788542416487358579414558621923651472083000974075112393703059010047999398096888392243088696883135443845304735141782226145039666570160477953766583371115385217694038532846225510358072155839280530766911372765272939339018178178310491085258720105691056753762156071618819598587367744111787165942481113438888738623932370930575753075810371663012795754309410809115734711115807757002512089912892845571153706048637297224633858421106678892740174663297474741727591556505868404235191480461628839332013230395407033499358429224250847744482449316601635474952489704779853912733122899233763726901589700382029181898873817086225858349742049917601578368750561180739482975856962086444450071287334252896699190357548572064037936028582760942258278401565883782446867900223249469164541551331716771205584913241928987192617519732490337493921715900608144018365004499647691247706503610270812076348618781174188868094299649273097039866807171311702390442035326801695357642044224909751136114530011876575396295569878947298186555778639302951126269042766030144250415560632772452682463610156186811156735558401985078771696814501143996192042132090301436609572837929052986696063895445481454401009346694831672642086078937974772303946520591340818848323718906821765909724239128519324715914010938940395290125787864281434082750114983431157636247652389274199483242395860161530846132497724602493861130639494332153262867720818026737936793679169871026994450272039559700327835093703103615784241142920340896852844217055417746732513137798621166637989535931996431899504983836792362394770051681505404826275651599087935866227732078750125293742503183192276502089178124665858624044022343569905418167626201005560230224605974774244217193705125409680258732194542223567246764063171719282318244746497386414971709172929763675793616805816425784432805856112554391388002560694812002621815386889908676225801308427487229358384233249389702094688301213751900152306704389385958643124477636553613226784100356387546137116991431413204150984132633621588223167635763536353887598768361171580222897490586795419020364688724066842773515775107166567773203165677824108300902654340954274768697762457349814612325752107205554377478240078891853967814241834167978856541492400892333333463457527278984955795317619359883070738315165567360668255902393791835250989702090690691135591350505257719501583539253727558989183616934305083885149369980784596170757412816957053884661679414052017429975836323057271953887039506035848601002691261220156586532365939344893294182824133354419480813848074342688555624789288927472239369551501242484953583896715490931353422970053080006650062545846842505876623249803681712484139279288393304846024000137646955773066350825110100403980844119125972119206298923112652608758263257296415986335132733441858088960781090301272158683819575359141674749663216534496995957429435735799725418764944808305490738707604998901919278969811041295471442418820102420211313546410360732465112938450371841749900465587403234460743896104829890400790187046674927380149434323899323777865666394796355643851329941683823816126903154542541529091684302417204956465330236273380899172204979458716662064967732657710948468198603476777877621079600520663966539062451206278984450418704245978301591977203075715149809478874633542074940696078257154171111935048514514310782908687646530991994105224211459312232538628693219853654499554812214954187263663098036443981407076025661223675093262563925674620818981389694203513155363083423336933206728334948037576170368744273025686478099397352162389642404109138583639856825639532204004514997447017212914875803933687037802119236031999748556935136693834518642468750742612512224086211287923925667398830284934791293547297592734915932544433782414426149925874697348596793354820784190963140508538994690734827461876517430929236679985854795968886877455701585586343335662132843679174411377242004187188044832476761221219595727625856418300881144225546920953304520258978196712568648674200110112787304471451904585603566320162902491403410059435167533825374874928610018885389026441989177839161856490192501191732978301003674585975164598489733527317636693668510105009146799144071068308325508404647275753866944626819285951137422576534057239034781053466127715722734790897970255295687934387426047672622958430935701810808934120156453754076704956237480592164929157369925856792510883597647692281408581024092102458160527693205891125087720970930950894826661220447088102662487449853824754151219710527612260120251009831311791597406612627055843815797035956997833059897950140733085278540790232272666960876106843405484925146286684953590667268606573130020239881247982211251447374953364078395001765124995813978317477196901106076349216184841053503287255240225396216784696465830512844215712260424854004587984366999769504783134064773655622435547064801944792739713178771813210695321603387983772372367394307355907508493770578365623004088959112312843456544361182371147231182775818001804948236854968563572284630032206919486874825856569018012450846139851995265779401177417673936629321076481682535851516288431556426289029890200592953708570710934452879849250172394157876190371478647727804050988451203863226863951094818523235016869867050105330090542559801562322884147339134191757341408507307488165989515930080727441624881889682244128230948670941029049106849957076935595268897679041450655997640531704487190761046343874629517601525064213953401551933107748339054716288708361390921491380988658727566532702071718515612831571789809257750535571158399787590586485636686160619096973884920505291558270503664870051743748544180726063933389623273652316608649612002455575048453540733046964673561482540859311367911197532071439633605839051944319304977304306175058141703398717570846328401770069229602450509093172719280790109631767088012907000567216843051902264803674639598687567577047502379905284051773830044238894432742927636567557990409190467164722770032927322693455973527225430715802562913449139207005565395441937680573085151375472191579201941095084257518221173784259521717694239665376737835163530783526051161928720367538614301913321363192190039362424153418760821601228016028331873489817141935333037357474621244029567526849325396597975877660663991022088357236062891027581482703092191118825046399011802922590517380063587733584493178898743690865172736970571438033821989829538132443420602049732363466676938211559423653027238185068471037204602395515884236056789441746136158845450862489621949217069678418400719578157060396772567663391395493653318062828775585890928976949387199966320511795382152071285788042316207911299935837728962235247368386309277669712825071538490050717558315417341471188646961432337444542970141867773145631588540796179169739638860933164323100660145974184946333404278406171657030000866639744907909083116237687408555346082436447480641589063652837246442347922004581544792820977289321382399480707775231518207432220379939548882216941156065923286338479747840067098638455677352374503878674415952562287521143040003895153398330231938414949890253435381708161377855735287531724284738234766516504583438024363238502784743833695977349862948105919392715795104358240694909505254765641410759483132287256192836860878531487423119258773923019292481852086711950632939403520469034055130079135645073034745004063835103882063081906585621289195606148103735154163672095785188527951405520893277704890501844608616694540959553180845716146260253532912649491826046883125592670942577930861124700291588922575411873452518455767909745343991442869714495317455071261169951696593472223798033376950093898120883068788847444373977680022870209453205772810240360117862294734781738706125513759732401807399609359928852364967601303769080478728812568422799390300226311928072610850143331459839030718050532377687816580593947205309873300505455515715171275223734182045492623430918919270952956673279131413413566765177041521059685021457868746408939366388026046895599415857042695922649332176977261928148100961552183537987515899924121875051744944262432863605906941784443781597573904942306455303740206343729082523067931062054727100721124755261922613180321767164335784447552728790435941437518806920824149533827990978756615763324733603905354969815316208799763784635709893730926987171238024850167235010382674567386040279830367264223247124688758427241394601821930870419499383577123420119695919330998234143862074575668453845241461829586264805963454704092354734336052927532209135990714825328534336290482951804265590880147359369211601466611771916234396565756160104410914829836007592718622885329188720192722512975030836309853197907166748498199310175723262957534195736894327649469630135694481264813447303642836820898083080465618796181835093468079470113720255308952112066586376658534825479473837231822812514235893640797938405019604727206382481204562012226699445444116056921588882545001511684239935984304102463829725154782827105670226038085813905243491335841967490758099624864146267173801737396736363113650317004701202466526378299989745133382861951077847207372070843056975981060024493269563413562620175634976323488427262767204361137681290860819617647151698759004325503832400730509228988490518179639498738718826869066510183292005717990188837883695932062816746458318731719665685243432970653105571248813826801231222271284758154369588213278973134823117334312022680778574278649207141435590952465317124583386836017604419860052483961000595172602061718578946250651457466039758794119146661152189657628004022665730598669176669975648946213157623905008793780629648143228289301524880088304466388842595953520286100315165772441052991918021883059766892920232817943523948082149474738294776125218695638002426366516763897561540173961755341921709657289804228702348568146866420168909504489443676095221963993336182653129583486346523136829145522485637398789185061218100941727847842426075424383035774543553521414084962983100175658134333401294728786416122504707023517401220943814211922335114704469117782016266457899582127149234908857325544118865881502754995499012895909931053892896962962309310276747781077561068182011728309428794599314573450840467691190456992559871803817577891014905457073025176648062410724506002309521711979778534875491027616472071178201759309165163733073716269735083473764247411816894499360736969944034200908555672126345143444163543187642438347913287277181120163541014998364442130993650771236147380250028367638360704610428719673414867744661614744629079701025526953491346109250930687170735487183373223574779415004854887674568594183784437099460294215568414612641163011811266866583395207704784779682853759899948513037317509755338581264784866286479274629142469264651079903565283886178899366833918911607804014798018207634111528517239974881625592364798875009882351708223479863663391151615288910905525947133806772409238683703921785348072619626361748763992770201429061619957398379390985782444728659195443136022538398751075915524849281954670371497391028788471334632280439526794297006973730084600186167838743717785389310749474029218651040871393975092601971660465522103394709515009747412164760175306841398939563724321498131560057599330110552272930092809201243172997580779364675643361874846650687450788766794617923396342480812275192245016002711458424144753468894665820919255385871746157836782367100710239745147906733136467396417833570859025881691345176317764602526309320451185399227607317735132598845337346069891148408004117049476287425472281673737602309444109574158694024460914842977825063246468355737010913193008537006058837714042292607037674874449490707920245369222108313799587916126496384713495897064605050968040334898007067286320880471551703305023200840159134888035807742671200496991501776227623766009883771896808539636567306174593897803616120923073218933655818410201415904535418172110699891232290272494480895015026813521645976798589202705829196131336630531154061088702866312599186007120393319014536366061581336315168467068322993961044376637816768013811830654838664388145612713009405756413204866359437975867936278627595208427005767911152168596242576525455812634048969682817958959325615883686194933295209863232480470523595735142141235392311178088807916427021550908162806290635654229378507030741171194914011212544960220821911651571630506064172956359083342229237799080732135034160447082429808629573431615116666587096830972110994230772886790559464224294721368189913751019870065891312982901359301583927641841911176329945393889260388286699696731926627083342353320293952832038640670355170669934549143911160048942430839407384296340320703345460977787745988905288158714416434120650608436677909835341110456137430202704591102349549874380177886869653729666771280701182698927975416276233883537544581228717185974462168677912847591736003984238275606601817468376271209049385855685085402213708919470131354106045753041841737397578212344204000403761128857133907644254437756994742691096189230027347811644421947730758450702715968483468657738127589982062858992456846404283214188543672120433532081261924649712221268889946285347375789553169906971153114488253167588631568114282064702526704065197258656603924068507213876942968771025606641773973263664400085772465351805250245418302311372637404961183939769447794031500549850439976566388232035836418739248584369869892661690581451116696563074010597270148339426229725372996000209515649930506314136273551990442296846827950333644080039833074082247544238560606831975515870442521289393604133955632504902571475953286872727890136382155493480734870213532767971780796926751011359986372303923318264646443406247413165388536212813838258120932114323461449778350069776487777416982065580739661706594469159045797148055525076388867463961650613165913382425016267030512753410315810138961751073077026754855119302791729063973763302251339082004738234318605440345870145752827587588276932562384454211598973295625157101344313517979286501307887917255439134866814993679850376898210093853146405323390136866761005397169525714690644282416270640482283823906679931353832501254319064651490029459577835802285671113998388546537824987367015960476236591689477738688003367267655382822365747229964200115018701241376721684300066061388033985275758994203600150217960554945668331692272614698659767009313504501303844545751377897145120573975576746651416061601546507374645195973506303605508089500846763578196188887809906512514780880726102968109200481080753684782881056674835184187728790481233711550018829271906606314449858777717743157214012790982247090049244080105311676260559583802801464404564824155373322936944540887192760973519694986642930365086282285548934982711356648871064575368201416661513693140477532698275234652766102341578965307344059314259939525675779352212445377113226524585788684135219436731761741232856148450739318645730826751391420123819758333477523778384749157605695870188786044043138000211180755023231985513638783731602464659284184809851629890610821133353480247738445907799112909319315881650737990323854036631658846554155960880417581577102735503324191708831528090783482951749097267242230957385016177590280914995741345545910519906272806655638943156327989970919494635446888252023512692697818538719601027228398450809868128566751582478357514989518328782857420390928440067724744326542534176121129689812431615906294989887321492968132184325163754024314170067752432055001817201114720879623602779297981741351273793012656428730513157143037992089461225654592122937638164873657648316323099125012074734929737046247696443996730890493235521959193672837477362264469487815508528386737016146414256216063171097123050566078872865630199683523477943723662055386105649684803742486160211683500981732500315872555397056177252800560635621442159576472513499206362053651197523116488576048610861055728331764856503270024319962763346381734047863618925868246386947064868171099700052765499189489586358846007455946710609397548699626539631310799282816904918664260756299578967887206166279460779054262712363060843525145500118861545559335357429706636375387247371938944429819350420355686936338779615273360180538220730149782898068417409959266881098490546854064253445708059432950923333209720459240375898508893160195054321996375604839559020745380653807276322792243402004175293863435061757840028383919311069080955819040555135810430164030882219160704699546028845396408170930448628689904713971560280606331505479118239510744100225431098092927300774883876168137925635119486644920034150707543011710611669940356099554991148865438779851888417827384096129509310262568671014129692992147617875263798338706284676371394314445804392471179906446941077804586675827504872988700172473210199094243319296734040949067993846547382578692031389622338564552564727961820107262725296839954132531000482869821828199518815065206488759487425898636756529342374965245916466045516332701473605424239626612497375677473483367827403325050275004855171030484129818399676121803889763886077677579846559257267283180168656212959242988142275275254532954721824387911653119619436480538851980526539237971667167444274369804231700772839212923501243726947690652539446701533140579740585727118160075259511668476550202100963358054489484254218721935539544997399218507645696415056550347396634618939119659105987755341114266519748300459896040284007014118963983894253279895535099304516474216349404165995126316011079596170844666579752355611920961862254019468303907699010722562263922135378585782195186081647068912836799925871714963118828529269975912138849984063704848942290157457949143739736066243706386575592111927360896065041777474432821847340592432990018437837547461128062275577536048606612068635444591016954155581398980702734938143181451560413283168117552729338619635076081679805175716687592968689183054209869670182465424735406175767097059631612090641213914650571303539145469233495617405959363532927928337403416796475834631638007159225786111717034373340081661638340289923673053057568264842989071928123920776846880862563204709192401867832691161244156875667862665855727518957743585014177474222187209752921459013653479287344277655092962781131212237986842984129144375405087364989938612037326006176078145897529302151923620966129599790192602996503480644603506011640556812604559677105617870773067527685498540071847841413436822372174681541385209189094644450347994892867244609447504191874387107248614091476075538238948480012251018273289867651390858260766498866165736162366854234396599691653309451934074373171317486566703557709960692637401882504066211884582678986896547884341845408426400166036201609415695114176087616005530823789414084541264938230747140631852888975039161800926324542430788108914556714138582960930283843751080543497414836379612976386785693338886691494204606378157445305644837408336769090798886327455329957623914941523717252228915079297772674078987510645807154997079388599434488005534842324244300801754756729176049446077765183555686094475280854522081359369679689798908779403441171026182095094039585993235009720363124552772618062006683321687169998038203290375185501302830320580703031610523898165128762658389102472010627808126967560515053856721405253993644333026793197565690783213545573211624273538183338047321512775286074520002676180447831571711665440265616213568588731201264789254924616278641910251293623305289543414006712791205929945591438244193459861809092978060292846376108046722984493793776179882084616204704679418965109337512492581843989220516751195560719827587241181767285991186439479072728064808640960562548538414372238422695654850957913016792914681169868040400665676882749118656596924733086795462401834011735990910072697162281359139498155900514441945230641134401113024516770533935479721402839975044329869396647059314565210202472717698001823212426113614644145946803597746796577579485348178909969715440457755401193555281097318397903157686623010144880878839361161076509988126142122580514903423873174369818287398424704968926287636514237856347683678982809666933784676085910975614726757959858722626018354328437068230544237206625334738248441040411919271165107596284296112053327371738867365294159165217082246321728215577745132625000470838097713641743052678666008225036144472690273924008861450213834213570987073926423251288195006730601198391593639896208441465430441335109610860855074955726622271744541288829255313885455419392537807471068925473160934896231406204944580119169165870716345254871206211194915725929513034466545226620921363746039373470070950352721381022019700945421256949557095215256399887102370929330639694893571259424610962277812119239770974097494803685590498735237838784297554916679161941529647558670132082688491864151600107955961897971234211039028520140640338185178766849512273923379651301563612986337749263838936670490195863572247483952083663491358693269922398573169988806556467755035106710420360297025352092357820553522796570902890837440575709014254276400987074519251667719466934555550486294208617448468246381474794219193921337790202981853967201310682762687168132330385458464669696558663199791052065753394204622613940768306994778446005603491002485600127552411419063932191414960280918215555581395641043913752545337257244015207889596396308739066891818588836518079761951919723635871220755137154767504969820523921042316490806864471380469039769583357144195688872898911897346234858056272604880651842503391315391278974779107787317244498206056094148609037541625008711659252233163559189559323901419226175688049803399477772342544680918710263950919990991436029481614702875565107899918896912371282979429426809729929833483389825074566335555130306966859261387960175055403322828211962482255710258962166080890257766441291968750092462680567188742553020945614977334021948622799669784864615964512900752886969621076177826513029503097094773133141566108592099064384788930246596625580126923742231020700216466018390985519828545880306336258937371060308732692781555105726736983785804308765224064902435806714754780377273322029026616352086938407182986941558197337921380353455692267263952336688720390694977059115261788876660273260290246488249126168188294085158639039428249895614428381856350611279998208801569450397443352501166601377881078640062548806480930502801058704320073991090450756274815803475154288253424755150752875010166158359447853695502711975114076533458101139479314438191407655061167136325605089519886383310784709277348261596612754303172909830070414085426528979153329358540764995736367607630474482155291987412243765190861407143959671743990994483900742720208297851703947217135179974407772241792304954662249019268329491187209998396911371337560148888666978706343176195551502783428187232126511255534350828059806417520751080454310544256471624630327881089931189971898453440741056781620658716078916404355829571328618473547699048455978649672064799129527174619501651197673961751308915085720249510508781228647169215197076715754844387424376382249718128497691720494475002078159823822234154267744816714233505323021866307094151430349478152637481114393513692382319252814848580795196757415906711528880558961718772523983229343355439961837913333866578986149463271178065443268595601576149471695596377666458636142345389310303795442496115741464453482351016605169883906851664594043799596240627698885576927998520353539495616773652510587963338251591003337992539389330485648431301067904742201461792848367112240840630956371213924938831334420128421798950906939829446146366342018713328321073152458639804653033455405912072091618188905585099702045121358684829844760995919839724821137757128433016404065404056616087653633044271202357405132701180866551395071923485364104647042526698313276960930466482431160218293212849135831184453228726603384010410900527908172044244326290826139175259167944193913588739524954694591040825319376986827650302613851612402619494193427501159226485449136711870527289224469029206445279298812233031888280830549130310102601872078733658503139008667007913872022401109066620673540698346500080763377963265768181217855418583668890577847990405537702862963939072413424714343874956613213500815826059350044420650784311225811957524403066279773615647256925031855705415207754184896727267272888977987577770722878376700650728742553959833498651974402726108896440906694480018790241811920313483501630369452904483065366256295935307713751760546404602721704268603297056677655525876017027511185971606070702598240604058261405027209295510202585986470986907707364868875968347331822494114801552607058527261201793002345628454408956098366666882407556043906795626493718595995115058173774395085666225140088466887437281570192023824243339151794089890979527261328162332563214708041842982586727236373918054770097535366295325566951192781649106481736738844506585807175433314579554600048359390993668692653647909862032275034566176753848154685726888941873866280884687002897649675278757515346705868662327036505641418704448667456628212997485643408875848091188216692811810276309031149265687530940732660173107256708546408108565919255422632684420988808621608539912467931820385929392702798039025489746379937215859381330129137652463500844530623175280903682248033655224304197346014098217240776249175091969174058252556804945992765625428967238402587575367477744721836742900899395080833038101508946474156220008955097883137572691110771366724697433835214102607790093644934661779778102408646597638545771437291759728435344536409952836597044351463236819444327556768075804591575027424102738828261278273263764933564059089380464755826429193179428982654662233494842997116741297803745872596371452062533972559480047181285806867238707706354512682998459443802975195901279101041714555624898808744154877532948512061589540696893080741908545023472837289631462872369622500937322967432800889401069159816302866492456139519992796541357267449275722814401228519884002630561298242602280048896344533945841524708777868870442812932529252612714349870683049390848892570810379232327042384442236929859026424007280349680164452742803634241916942678604979803187626623314068392444733158177717340212904518736645443214123427813809812329569018262378036344671271398185062379961406271534237802745400373025532873493430238720986688055084517963564247604275606223345556373964414891923069199431676007257278250120489027372687611516573502640188404030356994457442555313972754036653585954587693152229183619459825570935231989444914270118704320531671081988643131702842999268368352182316940349921243394403104217594832105306821488276237012354099144698209078518823177864995085684171803136996722601014304564242457391882845223484613021406739552869562288265123691479348541327013437154290334773085134735158202828251022403462224208445155738886322135994693917136147190458954633612608133133189710294383544585765602280470014511696461323295797728118075860630762020763410045745440489417853298395588346443269778975726222316949251204021996077309970739861284466198055325034750639595920698684491141893521177638186698715827781317395498120818161391871932820003264525843590810737370752717357359424740203007863068584034613136362171141452208203253930466095596450845613806067532978756609966967609499368386736678233700232520621730339728219947152610448215581652112495145565268270090529982858173485387512986831184830411912123323618632238498026317455557549163022904844402583439048997214583687522775841816995939794147523584985164679565435113548573461398551896206716033616070378907769371668975566125381754062115534030788398516149288631209791351453731292986437939866739741548157997828107580032838271267621574556496147385912707856272880132956629893546907159125777248724238330233336848399543077030400078675535150027995280512314240479786595676945461684205274319188024018725557015170532271851271359804416271085334194772910523529064025280312019481819783547327639830692009144831591123312640015017826230397438850600547201453152344387173775821968461776584645814454916369500117860405332566626399349123212732260401803721647044904700080962059578180565681842274866801038071654604231613444491680110516468327358883923618203807296055235762036873519423934969509353962148183343725341380524237720068258671304973075005419890323568667259443793373939609239319707938028782140656336732900850823981973086447770346473091236630417792964756729719689768272342145720259606358700503243988863350052660932434849690668151127708953423850101758028644075351498309871840148653650220399995650539561841570863982685688349024770619635342844384967021592241226248025976203357613186368808741357866150603880800350613718692585537557078324363869045847820554826413747325292004205758354145530209864011400531905662888114489685857950492898257946482150457588255293456914793376423938086817656961978721792814674488833968960535361043434501602760341479764467659299265869873945594862856155194422195995384853912557548671515118176507148513945889417809286685605875321736306335223968321966974945242083274701198313936948018255767773896129421330703028826648907280653277280714516949434324364120543924682633406883324614816599100351089764127635879224085093835020148665796145486040657513569827222432518637115295134300926445074150690896399924677365649191374279800732616198490070855152843201455842981075281501924649616685418895456254298478741414067904204626442565385969194947057934075384823997728679226530420337839247192374627340342587306752169751405265234518963509152913294420449001531401637755348412357962848062142894562046609166103227176777882953507811286248806521620996950379955716785404808101480972716051730015476577268080400924472978537336509009884079762847253129640745892841033995089887540718015537791367920219925280946675043162454903184269135463613786638470592961676233848492600294188481389447583412698981411703886929200195994524025636940463091170276883349328259170511610593764821287236967604709156176612219242610834923547151787435893593260915427244268404256798853465137819460724558805310255038466390720714758154251126988973093478011127015729486858675263092882120544760571544429728001942968493167309620497867100034901864946705960083203282145452994343432738679490596386813418045980785408416637779802174542624875792148814083402268996739984136927719171650036684382517487024792095490432322665453297682160633745021798231238089785728630143651748883512420029246579586366359683635334304861361038181821794010152980203090894666224898969785194683246616414214476579550299282390953882628600126034785040816760804690154179849377265244436667039121661749284152577421371350123783385776297950094491982104426199726634758121020333710798753853347340326882192533181102098409967582171148691637804291394587795893928481136563583563101474099549392040558437171724823453381143499744434376274632479573703778394364286448374507261575597321872105838553588498094264747080826853179634777969367543223192153913317998760484800922547204410832701931406071142766015869209742607720758700961801226187811985706302503086046320796662976639925256908080686518284628429665227771016346725324353664505588543999175430667266782076594959119660634586617999332140900741429221292357426331194964756522107771093264099718886884277564155397693075248832028262302737260537856968849653503180409135085880565483177200821331047040547053938990229666101638510317336465476392637231034816389364415398843968752211006657610101884583341386688218496423423706622475948047848982838731376915977802847724908026812802484808274344651007224481514299771938505499835048433001384323066748299261178181296428755595918634706218198019152249566581384520302549223585579023789952311809035127938129298592947636323281592332366940372777165460506013364131473180822069778838647835124006936845675562064614604682430702174749950925077576542968958186965987329069661733225199727332782150439925278854392453103895550418516000764690885589873029999306005339357360946616050727746433965834947583601217256101308879522865905866658881619295607638203475735725544621507512484403795584458351440161826407597689264972047883829830782923505188034063855647193274818813315464402159497181970403774372781781751006971521208685156572202931579454452987572846461777720924284539651469005023806716974749631633441229399667292772070258483221542626581407094408529136376841376280004631255088102531217196392117338483602862806597845808339978398129101615804158554590918896156383149824635904345926192485222150310395177713869639945771355830100461697933982718793919690985247696292739209822046779267399104686298529316535701739100259331104483065827053497859101571919176180878873821716056894520085261475141490040007302042752405782829950598286353258856261352839560035369170074118052256575837262664840649029023116982419502852138196098628537068504435513191051458076762076725065205389539527215773404464312384688400180354148254376315690142208869424474785191451352106216811830875327383523899146221647037514919194601360653092892742207019129476494675417105850981963319958538806141557466001865065987771407109332870586232083287838676937202663674916963248438102957768405087262972264440998831135823087129771212516360045827339167805399450591173855473298238956169624388622069861233609619011734548323143383834553314243249094201082472354402095707951683321540027371518087457641703663186436070676635738407678542517764658764760377859838937268662567413958611870992472341367669034937028820120442005126717914576453646865088298799005988727828622727786051317501269853813268928263076049557486802207653350668332500617994464060412277937780423098739106613066481474182707872627391486068780091345657426058889850831703621518731710493175227698004066061459364766614004517083919821350961392769578488017849856430067646351300116131323419516544287861214764583366787543222918431648453011560196196897402458015992199400337152179531724590926822254300460876161803999807221860514720122069122344535177043760482664921250438726029570641893134130464157645440944987050229950387125939833403985112421206448541146490827426123334988449938197642535926853216925736639325859719532329188495316264633317908013903343617827674473528625189278569426489676647244844750687204504766508309881970337411827767685364628785582176479181677180018915166436826911285882618954243094033995673507594791699298618889699004294728139028628096984548063339138801027026041801186954190991742531976355055858855245686104827974087373641103275302352236627284043341826628975473564919585190861345062327162859139823225441795269145763980316768651211648549712722791210187913922375042517533166499760883573832303562266356382709091161736486303637670970307098199234590477491144728606700989916551262664301434112464502592484206955625003974482813649239227283122928617723723588514710345852960160735394624994069608942068831766244195767650949550666674983516635087820224289164096954538549086518471020415648804860392413535931083300728334581096308154912405075533471779356831247280097917922451939013088074357563476427000608705190721517830457969555225606951624479540526316344538529647249174283916252455203950858457344390728067826588942854246465565103879644478323098818305686956628487097233932889771111842208986103597749329937601436700423585980246571921262622799283159508184203838588679325033068710556716900590804043846815555391944587454640414408786266593312291425711938328768163985234461965597103409533994595395238914946076007736930146546391254431825864019414818093748353401778801871778138001488413598343801751610278716322586884039686753524914616848785078196042203450701693353300200668178531239799568599364188324298296958691534550877321736225351665483671274219279360477469081466363344116334933540692249690741064194835298740823459435390646629383914270594174504187219688847018415026354446158654476751222609140361061475716190937818708968905785357910271119506881260726063047626337503071911063981087038968417609928444855890195254120764673380257874141818748417827792583987328894636912145059945590707243180323336010172591651662952263873916265626352754474628068903045425184908561305087101641463601738618064225820008622451119022140871417639714450735417942734656007367728212580076566712839601348749944154193067628771276229751702616194817561455031724853197477631483088633521112164359244106125371610859932603366536115209229248652245106600250161756951872120669268840611525836701407849793287737928201515483960289155217505894560693921320614875271472347354029159159126719951642318951509698104808781750630725039320251909487527590026742077667846574144382013313182871212219321034081865932591385971986924302776664503903023188002064573908864164717262063726578120607009243378204562162277810527079666074231038937242610493218293001385567832724390796019652375001835314776926576707481991089213991917745755348536229846942734074137844637935272528750086561063582227805695292452671606336159027006051690402425241117684469310061324786129643850944113301776315695204037466374009730446724444347933493874057699060551020271377901155214258913882943995890193085054883535983531401784339301540716239893999182299938528913711513089772483524967212083520677113978207898234902405523373312582487750674085899089649203107933342318480031745344893152194371819148090609761822101393000978904792634750684777376311582954290994857035664067762108187096169353498620777739553798752139695055909323832791123063101158637734725861881075398339206242877879931476070229502136005790776438274637338325502931743846229061057419657153025474528582803503148732407879583098667633239850254655622843157057167704923680441746750040540584911405288923755877342155816044853519383733205600015219523646126533039040185961825449679071965459802558213313072280006714193091301901965862342409545142243808509921637943889558547588763061895592967045845765884291934476712159338134165855914001485598177532494464023468757405897595681699293000601544235552163897149703608481841810582235546716999932115522218410238867355467814494734681165584824797401044720169268346108328927216587942813662507805141219146700741429363807863507990445163900665812508569252219147438956716521978816698296059607011362783686248364127982880962323910692050216381725541289702715818737800636454485032120448653823363413502646313061286493114108527226226877631292527561623660211545572497494731700323630628564581445009318046999586236102344126673509267185936031354484322780129303904950789673219288576263152868944109966014827926515988359213233117781571864771567905226201341771094343447879784155843314068844867365001219285510054068645715348413073762887514668905438052050963633951319661684361830438572048039540014293154121774396363413980149307151911037790958160973066834191672198520864206760305439174105056613125230958336444132205382333982567012121514734020908368268618202731183526687008494462907056142726322426852897383103539680122846573955636786558803097265529919773229650389331167631353903474175158534989260377423785809204251228164342110730355951167831969788849580475084940146458560954349852775229278875120509709931615361839658468519882313224258145563750588961983078893880038092548678739134758473840173918068382019387548165687089904061227264897960586396149395554466631944247754470016689400163677256354221693884072038217087514312888325137915814260122728018680444520116418474857289277202955239131431385740359604445105103043785897920425928152426021043227412378170320188187069069719131489108715984550936144925818404860458596715734449791689694505702551086473680446788272567066560089540410465117800234414872174679310712944605310555868182607484457656891601327149191594894691970030648562324622030000012491831700398485505104221817363110895280200499840076446959589209375834570545364885338935425105640496891968125463094019778833842742305959801263772983880885203691137178574446704237142734885153429662259173618444382749084888722101532772391964085892384696720456172851214657542357708675187358643366570783920966726624412114254875240489763504656281154528402972797441254835661919908355750772832110471615717606763074185490617123219551701987285865160524899839618912326680549874232785258821511522988431295853460246362106715493075260718012411268140831577643297272746213418796023728585106458290754306669992745821536021937667523534316013851375126371469944141490972077539238732583605556418160384189751642602950413174294146534166007638628534761733390818132000232341038846988995045750576580736406721572118205025478729689089425069821109323262060961731598298159910422442246755741480008369161990943326877010805638848464248799754090871064586742818736701829907733968350958089794823889784532675931187068484996191399415339503944917484378072250815355070564786911487502349388202589730537184261311715670939897532784275268605033787817966256515518385773485952174718220402764905235386101503657323252974402815588386066184724502341634632798599471349482019014715714318888215116837544632021823262223022214808478452890499320297359292434741138916857408784660141701939499085001220781110559545109071098428394024869628962918968440027983758078082809894674301503194497281795466484172944430826102271053204577248547450843918071761432174765028090575722311783820035574695009672119331953030795230801528615624694214590884109003564664653847314721599589650421883991536386422618755120457954828882771222611084857849185151869558916135706886427370828412779031903502992312544745354836258583941032201969595831781548316069586294861664982906522902983739953891542146373871000843521186316716177737354939415298220019834386353916309024323418738688456355171691830298608860498613954133733757410602110784318518134905320633597641214645799823283295227319648982242308182819532522392952610691029775152641956314571497079981830441854617914926294227995368514716655282557196376896895894235849672356892875609517899375755545203488982275258487078771699848149677505475366358124502172024256189824135845497630558487884697209589452925341160463811501505806132262049059917493730425179595498255547546399294807913324144027819015183112986803522128685167739205329509618540162294486042987784959974860056151385435298346394556390415498988260715589314447325468406645363098209146557339678090235033144027239853842965915464078855069225650759844140473810400488126685142953948168824630341591538425896679371925271075274722806701758676488750954189412958514561485230789282057905627744577045946787584647144294227890823917887392771731414265721550091137157458301753103323427383459933633191878323696390284001891726084817933550745113536030389298626650021182371948307584574205119250096866866959381734875535754432961006964960362017202797757268443861991681968434376827052568150452873829084235083956939740226029646721196186271403681629538303731173816850174977888306874316127684051558394078592344492435574161891893984629000675192772220165500732936401666620325329256295308228309595423267359715960696256558285356315498035074049709859641603124123155560732376889789447726181026739816238279988761417263015362901259543645233271288245342534310378695502579355071380923312338081986040765591318509601764386328510492647337229234349199556824989816957912295889978757505995678014410791164389236886622881591128061524578489100630277268976867944893886698764376063013259322040390964230074936482538980744281762562718495846426477630696540231462831847892383789120173953551538814688442967417940191883793877947221193410722676390550846165765191463668786168003212786004947659686786383235063825832634899909196264963451175877041840981627329119472855457595031478880266121957286771070188754075027595637536451203307856466901574428672949897461922077579251526995870190062396639020854458045878605005648811135916480294022189470635235590052248282054761472354665346056810958044562095670057605279824130503260417412447312745198249786299769215393630381425946400393116908441957945802018038372187231065490934350127589255812591547693161175413928796965760280798105469402857096464969613682114051661116467647341604435854314245650081124690611790332621303427731416701813646841179624038000522097536919610892483763526110287555177309259515682733048494146995266594474133706205684490340298014047787041715709159719252448401469490512357727274459144726704427507156504490038647690018849421065385247612607200445104314160295488914175314594264177260425314905587801332304187148873313893199121031121713685950807649500633853817241973878817781725799141876551632456176852978281626838184451074366485692268222513079008983458933709093879695698033095243412258048226619423508284791426236218082917110268207612956184688036978559732501484125961011153449793911409879137976915373120771441922676374766972348977878272947775637125762348333167654211562441167460831935886302562362079022255508130988232156095905751694881781639975393782857362798601876743220231151191240948861537228151962328554365333561354125896471046311683951277801936633448077141283955489791788118673448631206809036900862162963849551555256731622331856339799627345647869342858118056513703952675700018049851833177121990212630137648844844766288934292900669094365721668798520239435624443903888820943350015071808578286402581682511140717254076310464123969052408711033563039745845976944436942202968622843066158390545306592986185800478542191552334117781572273487899537517763271896167470082687514380247467795941858022120963183721120248810527091883738319886077817688624812188896177804185632474423693333349138394746510629099290594913113247479885001135636477301216903610867994196386391839287793219076154832918758783481525235030484997220599909788788319203533785081555695513704758990354706714423492857306241872791923506125528162315918358099599395369605685474278747478637754431924563575963457163952967558349544571951006883373764236855320966352217450638497592324628416534508960117396737569778681100682301280181552583357529324430839333178936573460846272201040061180872512685885028861110815391546538111752167286795308520236973818806084623859924199312898536454727943678411905915587570009744546202882861556446911744597031891359502991653356864950389868686606403486238447059958366299435322230888116368612689172191119860647938539446686551921300111697675483502094319835455662547461245700820422760972401343827930524812824185123802919206689470545971230927561979830183538853398101590561163779417512950975288206869192898845431044727745009768736505134504290224984256905758021985006155288858602930211726571415232816534884586949971536913752215246581139890869564130831874933978669348287805276567795693986900786433895411722333485830949094892116421481535768218579045184438470236922094289260858410995962367958406059126305225558787730591937507376883869294935146943323014220139235615920563674051680649100901540738888544329698588315193495105600840214605701781987306469478462946734820411534825922169885759250484160164356537433616593330411090219159483081014509983024784577140668414396011861101216767627742750015797254394450724035416706265483045604038492357015396963156314844560333972361386474460368711524297785645099540652412107464468727167360626702649604978118868891879008650935818214507251794225107177103936265179634667113007063232483037219513804133923329352142789130262940073728316224251873214316389130888919786586216896952810375102260326017549937426548957272785834318777922842378858251759917230655663239558104566658171058645578189976526405921608508364122811201178924969551257612366591329599276535103557546147018343484644082279966909582155734272864533042898720595800231728329282247304416634521438172630225403339418144671227618205898419061043098919272564823383934137727372851981708356737520810429776347161035133073855965440244297080188041347215842293203043111270253101930938103910152591493139564438921779139263415018775351477090765221995053959887625900736710197210055740019368897299227670281098409947736059750907661133887962852960443583861660985835969206395728156601332332897032139488086496136563488153152045488157194233942557769857829863987367836913299287059413071457095349909721494269317665868014251183514411219843134617196862967878139044078401804143036378544420856524173074477740104114311836106423174708662068374854002494550506571058536603462174061815886089078200486502143782402498349030357541988843925548810421529891334475482517468942951413818528713555813931666230349447342897054230484859287275950424209301583492554387737129324457993431322756415969680896430481264841649162908325321662145672294470703475013312415506117759539599678535146344242215900913128759733508453495789011576364268871799560515779195760799326299494803584560226125783768398644905797202298162773175377859840774358943513503041158568286671536920955175248832148169060909670664232781817392618388109882341820546441514267403139631377745454780497477857024847604779753439919095898502575204336843533258732799035140699509872287167755894134116276752818303862297153715907196234957995124108553081397205805283617144217517742903802967810809673219011850435570148352717477121889660167827050871037317147908808732496030015574693968037474927808453868614200985287503575866562531303705259326267676249768306456594591904327622838519564119158122866502627393236732958438071044201443737614360580467214332621963850799022203113517236499146645333556506810696852991069730275042960885150985914719794781247374872686116578530012878308824438006689759421095275922649230532879854991911204365340545958634317586350350860265522844199112156301194071473058569414419086326290130906974886034822775532047062414148402451074606636932883463095989459436381283900283750796604168788086074160746046235467721924665984051405263683477870748926881030338180533806958997550347267165894293266475005355384744388720217945206698190337654897421516289079631082029888431534409023752302852803831463063198862576152781553822656966511656377795640104388716426454997968426627274820256703142539012994862764002776909630366315368446929386363077763865759029761901708770473624348001198460514683797409806060093036905623661302398658188196145093568893926528646978978094035721659195150158136008179866469650247689349432276683477871296785237058936646555741568521844797444749600269213621010583220845341803176505116007107272037177192810071025485019124399600161088903104534677511331977677533057809110527361628763679792643300279125469031481889853674089668102266706762850585624039288070161582578760418237344600104211162574880970795531983548278537904088898989520124592547574134551474333226379125783304006978823450112825841560675361595908513540618717240427484935738250938389925131222628510631388334995143073712516075405530256808498426387748691981750921906593051965149174069176646099757060593174858049254885146002974253011924088066441148243207463478622197192211290942440957837597395206033117498831165003009489697193284256607129174349572508088718301244353647188117785255792253764215960840347813046347618903894791128112023571955967089096827568043551024540648590070276969688342259663087755743022896772120818108197553335699452222283926823499463519326415178146588269442661470711849224758246292813650004492235004493318966296132499915654979275757930587954909768876429754972505012467150555816281140565818006198656860991793494624992322197485135951924937331322753284854661562063682732615962989973243647597363542451610042154042008077509471093800382417590822131050771926304147143903608636558421942333567980071083770782151288048916516531687468553782677780785830588234959257389752694691291832374024942747273489465295465684067109819980611203959411486223784243413780563621649899188434057416221699931203476301281191620910477012867429520621507875388694298382875845873632898948402758333113062165094608853459776348277219400367207465576146777895212681496745448926842451480740397495232245859690381146156333872530206545617405607584164698457472421749426494836990685281336783216799496413227516394185690106829325642616194029205442048349548223504566158751619590957252917641075914731564341625080611507679322799308136581672906623693117362293678532655507413175767337462939712733706250781719511917445529007744106433112004333850931751372233486970543396875604322393163830408893422055634137662766646351719327553816833467592059211150409775912665015446359801067909777248925466962422959352910597661617261777553671113075091132135431886272540227325619016668583772089113968018900474236176919745149421719673739831615307093663179863512188410639003750858995322655508071422885273404401934407869165365903207250083457690673435249392247926233283124755666245711117335475894884753201949618834302415212377176843279357396741617457102218324699031149265897414678618557094270658613693440542401830072645129275307170617450145895213666491546370338621154823470622812945185783995791774659430005551973894886119114833730520978097582131221376175113038735044070511801356810215768276408884346349613897981827626976469426727770212070442384043567505212524574346292300113431105859968212742265536659498115739562473909364524036159465926174539258870003607894967649868286660030002450248052417747183395059422954941782077004853389868798093499190213981849552663935344931274386327891073653001175207028190752916764771071210200539039591325958720052552647558944533691957743827154813381984770376829769461113399221440155753948264052166781683420494601420829650227544723962784367248938915316718888303159949381026738456023077899142544667681025812036028526123040120535151100326763924643431691189754168767880128063329566375639900142459563998690798840894734906101661592776471316962607061908186791568807373198845385569659660481859556340263552563622138029966344512823349201195928627166060049978768189152404228871096598912444706400710038474145960101691544197348050464778628598413598027237810264547657953917904127633773539928204740409296713842508187495116155289843210456151894023903080012769414128935083469541630370761646770198051927356892681847666288940333288491636374160452137517069031655617949359560598702644925737483854616589267093475573091467496934837905846382786890894884414742002715674267809575715642440071042089817691186826569244284515659335016388966141636978078511782898129394598839247149153286113249996412582377716139126485356661349863347977309161382074630215069590458510212445952869373292263047285418351097511302022264943934189196186618916915650972389459355489948212983053198169809228958861152394805446651258509455637935044127075833081934026818068275651946170810738513046728614771523286392464180800755494497879836774000926024113945661507531509089885776316293433065815218009133077038336488750360774778825226415374684387423961886129903050242884304711266633061113488070126221440487616677805689202578387803716167127156925262847360460822183464989274212011641739437313302129279891046562122406907692452452142466878795868119727993941204135658842782341296605523328830937319433000148643626962390730368208129422041929148651129309905086711403442388828345341289013271353019095461799241275466366980374315675215864166430187920094553979622132594373998876914017007108865803946026592198449255773248818683892942587283532788427524210163066328209425884098293266459193032951228110081608977524349364287153401731740462376366602929615645320622116929179687069150663215563166286352371551946349240277162078649391537688240646320138071092402175247255734145926366304943250944251947606418351773214959718790279883441993473868856020615171455861559958621252145961520395819079247528978647306343570967300590951926290400165780173967852588725149973693998634816927821037010198013784758458089460860924627458825263301030207074008212128727584391603897913956508463555448375203576514342476539111468658730434360857808111732535101335699929093903845447805674613180617304803034012291705386162744243098205337624748653637139503158346068176713752415905468746229740904101447958607541405996045989761670657777781773481366197461803787685483186367863304707124984006193788403786023725429950314008320657405508200146182794183599381543493763726582428716424517625275378172467502659055352862690475685441581734233786674773768224040236160800172866693860645386423297317575911543278581910141951684511599815586054686406904608770947228757142531812821026151185251154033646541570660050451409865634461371294268566321011183817804396389296034687092647504195926339286913394932571392096324028251727845185559339081563102964529973299134889569848335715017238427135907197347612641819161049470661122410625359127859796856375490677788732250770522248377598337403609556300085167795514660454507366818927012336744653374951782158500276850858741768651110078615674749679008723559053212132202814852693603985095448678324951691700413054645005095613965644708832333500433811076413394407093168751578351554803941000044965113767030711427857527756995578001548755717905723199742229619233191733304407100010637501175299631096473803982568185641721656255141318894788078112815789177670340308582209594771181655165748100505662433631066360895321524465165582828462548404814035348100963901468524690817569885474267085616548228660146654404590018256322136898565532099805017829049829847497589681632949276676500091313533561597205420109151086260310483720815297752225310700566877647948897997172048413438248146009842813760169515754408986364318350555843008533302650490831686911456741401565151151817348708373739412178480896607617918154255883385390317737830796794847230276433502187504070780472762780279546284237193543687277727305458923530763132035467970277350011863401066897322146259939474846700285736215598714486646195216147280363558135882541835022622751846320454666670364644026060688940016318168076024293117243642507068661795070788087921683801533632457170103886769345378913721853378660697339372516744387347454377135688041247766549779788497083035883926384988045329765609733613999975055416659156771135241008869813068173048726201706238460456448183370823909731923038688858197207166344227650252370673087156987559378839087565899077581429128239332962907535512290004359175373510168107320169821728648997302031907291193688074035298201804363311869796200096545829126854830624754259055979525469474321179822388075675510079838098888945720724201789709949641989004414306906079410780738826623645562337004097290822951959817473155780084424626578973189008385742446725146569169912514856595988224476541305576174624619500721782562575086273144578128045997708960443086598853517626042904385534429254629275245184388501764729610685038820472397526958054147992856870536132870019456801023429552128932566969283171352819243235611537214617700566149470747669182419282223733064061964113568200020895258633256410789598680270348141812986849190629097258552689157156272405958906938498602285085447492796316352473032008735738741672790028533483377557350174659317950959884960820082882951221016393661078647301979322489112505451273579230652933520883439480573364156455169995983317311599663320356813263444195816601578747698685759957444612824974027118255929283949403618186748380760321884659872761351922848029566626276213533671889248140360407485128444093380181034043376748184564532512666289985379835180829408852236655816012918413728807605222510572197548931221897859205598092383242382768669761955829478246766260018465235716669079810884874281762725294524856506836612778354598583623513300673741923340334950578470016328722013524738345611097801000425012821699726749864989571735913618043048713938938699714691657507703779543651060423089271783135123281926340397629570475582751856414942420697343308337983968574510158696745990098100344944158909269912734872208052966788376095596939391099824705335539596571135378615721774998668278928327478144291340512010433259991790462448924275023934728200444473465268182747096147763114278250550958073447468676035460399100257032417257690097120690348188141174442384760794202120291304435030272381250766463014514442115148820873865274383125834178902503503165829620659842156506401791079634150159617178289543984810762557666259002314316302441986949290727449874472519929298121466498688126503201554254398881634320906859157682152920051368980249052143065045413756354845459972716963372181840177253433259035263249287853197268444101346425177267334372913238787917630197743268450867191343059543262760157220450091295318981540010113449857337080494836423581693022987321376363612697259225706562073912217055770331096077082869112560915361132920088565433900360986371003567401872428269893031459054729792335885257680847107939993045900627625920134648364210794207928154054688927962876197985402095665549628040397922262561893714428204230861746367638316222830924353700626806700573302800967673252275679825354673093937083129406975358403251620938639660600553497239884802357559176881583921240457180657886775639364037157323852914300575696236127798709406801020264927027244132684715428132099506381848795862536304329879969771870086353561009790039110410230870110843635596314323574380718521584824379041313453144945771310114370525276749399587925141843582071582986916727881556865792314793659186845353610208897313637542419822185886633515315908701552554105510692461875103364653671583102946970959488480698520276212067526892594709537576507685904643315002981356997188436815270986944470918683320860632756668648367178901025810027393132658481321941077534353745699413073102943184748636962160426917553482169904991325039303171227782312082818058742964339263886047814783876373554791869052686002502900760474302066239923747655613771827082691143267572825414458440028890242069388397479774790588546155355162799559908398082173737319735529244803710443681872868644916682645921634651065021810755634499397578776357168118982097426187104625545168664051617717599152386411513391977381338282453268993658698042417271252802187224686617935339799270769500670919629907493514549957374325123031978382596503297657569653030180506515663062878997331602298491385517433163798383823501261935188717951514515990132170030512133649131837131838096136567018830817036197037165885253988232482222623012946608382971829866251095683186485647325817919962169942589302240586064863597833092953534384081204158944772961590389431855757335334068017557551677194568653755139637568209071592411707441641920830629658098169941099382997026956495077069796601060912081464414290250500830690221125766235661758867048750523528745215653006012377828801115803674393128041970075420379385930182784967011311481982450722809605264743817577310705584801562410664116485572458342631008859433186304177251190256287337554809831513117669970772675432981664800634830549416158975673085925858325938486806070310801347955578769094712954370159420828603639414737220403103342560450467412634052949914838591127016443771484040188628019132767596373420905858916355546312169260294483317825050885466687647286998532596783606875912388673395402695863837588327272464167780055283639528564093055717684507267697095651625165087876143972480620316467265973971426448297672086830526021362924879670869772055448643857712437870941865171700352011784064845615696605234653358780999551167706046998906219746835141401909853605549645264855835520843687115815935404026724256705838672640766025965721340158450993878730486236669169138841080877308538321875015540637252530454746330835027039508027706627011758308101061411623453572497137439648482376000018524635644402746938736303569421963069342590482216059005622924515116132171464450858638392647879978346723825661614930556367808729458259418243649022154917246530895312107062976135723585309611393165979767898615059523665453696480882600463545809265528894523335767477500202331104567891828727537998226032500991714626043174857516243521357813038327422929699587190122774954652695980627091742468137067569378644017016762971247343535706773277999946920410738838343620294525098491615547428814159297955300557060420647806391131689066504568263851567057611946127153919744118616494309383794525634807159870850538206996944111032805931175414532272707467289169822528799676931442717354873873123484601713796035199361025229700041991354733923785125076052320186328484122078393902476571621275441202000110598933511136212020786977713811047508141672604971206907608479572777397098807747808802035437901942242933803688918690934998714865844307755036703877038247051321188040455460195981896453141058305952519517718485739079954806002287122502685024692480913329011065701005787700019052619078616047136008762736418508020359163847972089712326647497910418922593836548651928443075732451954909775476491466158449150161316578363363355249308848808070592368765131917878358083737150291687346150815854806966227409150366304390311846313323188818566769633610503957858243294308110725475216690305993881133110878621243508829835534295661482182840562128737793596622398384983104002307434218479067983050006256981292320407178488836865930909491152294593844610637538957788200455759896106499506989810954103584135423295639214579190404094074669117405688346320103377062319843828361578603876521714923958822821978491530864679738730617147535268505721800170033781456942034889842351658046008939009415548841606796254719612051063617362116155279401217306355626254876912412398850889251531328496246623388177802749442805057148388905709602569247016748855351979119578639326274182798672561110796883332480756843203717897538959270665345001285641068308142008858866355781434939250135141591138887814726098046868588317656383511626866092974156070979831531673393719248127583319728064308767387320152483918802512098792430068003225901834106134573416298693150046614713169174947982823540325210907164813053662654315053953932049470666498023560396637011179359257359911930880430003317872306155348740278305128655523743368020962675551805357910748141300974582067113352857324855076665249194200309100059402342897647586777292803848147313323004840852422617804478068448733210631171365334306646365121459678728041720209630636891754895084813995823107889571423910602686332325281286426271425316586031854080352617232660953386265688250508247476736725401140180227209502301909470595581772522121309268782273568716666694182644877538209510493800725634829975810646468929364668019147684617451201568270946788887255637367505644621726345906451241747008854598313303099728419763473931186416906292119854036148945028883527844587589665745136441871650852463178408271909208318104651103785198653248139084056300073015259473948265241046751240929795931190771510380047067172546774929771807877688863183330681033300199498705486291590648834423617770007261788491535368067261773200193666093028529001457635127018508147460277616630348936752882460261940712550645298666165580665337500518433137312648764148198346113848110342815229457686431686581671455462534942718585181483022212908526097101229591498240728147344136477874858297260454845103867273834803016798015455704526196450022718878662688220343888213713992416754624731707896731180529413247712562138706717553785078320083374677811306280995212671828180293321844939314696389439419256645958932140062425478367722925226789487048282777031885545670038589927611969628702876692161279977150017750096507026176805747857170653819722516660429562118143384017243279733265341232705912942427022584978398220472612339909248583191408058110969599016188179420847231271307333110601260912204383825112848952314120033337910834444509495275683783965432761939464426689802598726006114192965038480399310405971441278558043782459429538666620351390130559081276819063963536708033622274704435798949704667127515929085059381050271633623487215109037416997943785519635159737272918389759984223487620132922120629999141406605824085009361075306295524861391335126998694134891005189272022339611831146682266247257672826733046025947826395718128943626507164403166161025909950386855514731982079951777636642657167211835353762821100253755948869032874677821500271246372247126804889261847856206932112676357837854518841743734551251165829645877430053595512804565663361335301656080155511299668990285967238259430746401855353839682226345815515792436359409173626709554031481659125133348495365369485647768411504245283983768725744611708012192402843265908444867647171518208201988704047051462835122550014309483978714570086151984523201121406298078949549110220912261963579462622627442567385702719546485491724355477321127126424212551109390838556927725252722361243693906468025530277933780891562596689156370307766705015870781551944358414413331478232213501434508521932953055208987788394093383135035168051535428602175343537943553942350983308287469880739680307279511178092815394241548941009290057027067519200887432849081483023022294928940952214260721771763883089351255209517939877926180419317975982697404762170277437800058494956844729776526645575501873243036281522089028466386060639689681953921231897380544036548947782255426626788183444569178686484930582204765778179471423728241486396259097690385814875735265606963599556898063986634567562756458553178041173805139477948702550665534313794403509927124862343967728289868054119894686994562306051123761450506299234912486590079868817306485372723184360180493710780470458590168118247468447443960351929822961812420740113018451653060178552544920730332857931503776850772349716359782639672044962849431813448433756815320837899927040471487445003138498823915931381122364953374816165569626671219098910468559358337045388424546152639574407433905390760596370596005253427498071821310462796040650289001174664731832191023605250251161786531986092570305145845034555727556129511866009432024292031800744555880423776291565157385043884272407160894601753872499719752978280113351118280930248589893081945851099209994255637196225083920228563584814746686367276971912088861322973556047103249709834832740583455487335170128940222580268173532768281469311749965544937139058079976807272927524134990187279419818336416356150765596201959472383099226684729154010680104513372956514873004692564390743279154305785959866528452287033533408728516258441644254428763095627555385550738572843708949197385797415196085342744491460857515279795915635387182051969997638742553673288085983574805899614580714383209083599123764167030723804098335391362498372102643816733025292286772463362783046802105297665030311193744317474302680723341264606176520066447751275346536280936048412540420240345314986747634904788001393882519408906986392876130716299016909361348479680109019782356582765522207038228359156705158109162358145410099838729691235159133600784486451920023553823133947162435033789185613215531729539055810092631569693051119560107464816692489503395819507441642480650975889188015689968259669316638589267827554905096568750394046226423162916237267404238715453707078286674170911898361839789820308264787406571668509204994162940441382382416255602504176800972641895075303403914283984323706162063486902342380516036059764317543717280163697320692727403657193497227421288469402817897687750510665066030803817173850441340099674835460584948060104997171533197497460921377226473613282864612087513442651787578135819351391287786390616428231710727943726321388483457629083475251241966702594785837555093902793930683245041923029358753096478537455470425515239615794677384418505847415375112815007447536608410668572916495617438921004403896979016084696161668019870126433777633593352847368556588174289881524095092809132409783536097201159076287202798808878743388288076144670910472441212830421494358853503695768919980618848103778934202233420347542211490756314696019372388017841856662367090020436896466145698141214978198273641840706483042934473617082025927573399996423581885278260988918445951570589306806515998348896371706118331207778934719930098729872091530905257575704501246756145624693953904133937854232131965123899681568657772371107239968449022883198435973491070044532217545480651886127217116038784128097890857986333232971877523089434091491841676822027520647472502193555716390157239915019576187260267850452325283614299780714352947164049390557170187616079601602757592350226546086520379295708178411568500248557253497404474075572564005598374434541570150613134783432400162864627251891531206019360824056350016932249238248714189724474990795113190732229298492246501087951796466055116094646713563913985818494751696658855235075074361395637430745245831109062541966739180807043187639978195331824592523713912893079765707568611450058532007750679669139810212196317831283402801582071160722066974501503321069101973629519645014610057555015493954270658256155824890975066866850012360984524588926272757667815421579272004408533594227762311930669841212757634339120601066106775193542328498249053114080990982149343151154953680859377340150711441145597143644290102502419572563026151894819926162918913657718190345955548308493811875745007786706996145543549246529629085434394830868021545189464690582536643670452245410248433516955650606446751572951992991056022284581088314453016396986689507480608991412958723784358991809308741698675847520317179313424992501517016481581004843898567999000652698310504627759066152715625827149498563290559669429990121001263639620359667327811392639015819617156945278339485480670293001600431274612368350813193406793086422417506826595090741564614521315717680102194625014679430628305546477448659121507130420409932614357100104190406059858676526901545731921992519591998579160392751711369932137645780408340012525306984769104849880601417299767723008600770430374737238279073713209345865700654255688188342307907348241207101822978458517318493010173789365295291721524734753413257202554101782950703341010186874037208128305288805276861437485508195611638487790056721561551417313696943471471430770566366640525225078756805650175270627028554912702657198183087576956220645681400415423519307872090385945761775602026428111782466394812914677548748463678752795016586879879923035477955883707653660923843308456639249742581631279028319543401813300679697465567866329283482677531890188793782689048815738773583805773922841563449591797666902689698222944418379127531771942599774651738654569550905387642104554742334078484251579730291559361211317711616196589251859918359793905673707353355030911315756170434725332742742827080194094350296191324649571388867704099636211351509341739178475390725542777080046349183708341688218498825959446432258656946271583438314840637738188008382912107690117368745944839127111551455861646565179659831015325534065155704225684423427576170227076284130164270239597060219782376248131524094598466639472459771461815453312803488379831147984317906426514631692910946535083418077038257379324820030539223406999182156781566208581188604095509487653643436053098313065298459760112234501502956299627008776225913597780015433106254898916569015476873996147357655034723606725224554532930346435117614579009216974743279585995787373866363114257690138821128883545421705933446944312715201426707985741813696594033905908654136710274727837993338470491994691283461020628172324902808354780878576507688704738584691835434976132534542667493455928187845810976159405393893447507030750921619159398466143714328192748328244870350134404276677447535901799117281884191840780860754641269982223442535101166489913706196390574653014633261574258495745565688649087209769896656600952638050245085689723566339747087901927439790002342847649597197890901245461688827804967796908643893046913532579052222408739341756029504400981112002442911046242783426955495776467772596389563579490998797881574877227421877062271014362938991549446403742167416682249590538819921568632944834787624198264633858393479261328150265055799402147819083467509343933091092475083794722993332576714092822952486308091243340092767556088701183182524556062768403347327104914254286693394893504828162090945852925574138260550432095124436674092348214724868183745101381356980709199342459699990347475529266762064399915562889983241484403828196220149350321038887657991306570464777120448867235054746679352036906945312080888605080868570474699036486629365063904840506067869945840532462257448607583024250258437057013844650452366542410958903281815394158856242813609868309985775483028705736548620060534081718426561711461845469069148853746419297654437530727863896718825588192024218375790372443186120950710930822010332121687255823051614348973677047832261997927745826001903435799542201164914187460597434900767098083979789594365516416755453497549239773705967405043624487678893948810319466925024495971556145168011617612206066088610673789794386431100245014742228064796800942772361006716400930269450402801597178510957039533705143738478526173091527077182808581553247931903143442663088001877403437697458792014328134721526590674927561385842992652195332908586594911147606532554365865107261755735353866102845104705056056252992534484631242763293298038771928129141572300220527768883658241532927315013507985814852610059062849858868307042004684439357911903617276470150788246722258489982602868152474705500779973543108196924732182760667887646128817682290115956675973640864003239041050937986577235176775065619475189706940924192888182272588459308608891581752686630743586083512008427040965238994042156356737520313520425999533217046650431255013379185494924492217608094127548964217892585421737615918011505462449288085147357923537925030652789575315218378235679489619901483866205521193732191874996221401656785711727013865770603081931741924135048268193748125970753862725775578446879859600972312319924394906361596189879045268112055927073075726782652893516670857806923835312066625515362526795792329054013194918576724527353369537098878135409134046694488253947359388545934317887105536847757305026362647912844279003346321822125460860491648899789104030963840682287199207758983962874596094751958513735092350123846085631500555822676122810371569830533992240929373174852929922007924104329963828684730235706196285378102789381864004251966458869292979087549963547011022152269433465575609999460797101657215591050581291698904267379408159827216912815708465431540705260173466936869426677019801218086815087483019997295986137356738154543150473860321852348661369592166392884400508927477302396175307853158722095724372284994156114462325799265055536259990641345865862368329056996278638973284536529981293585859161337149765358547217512171592922201279011355883728806315067053498000282629096172553837747496934264212026750023122389023639080038590743692075805311337272902538405517556769183501523307521687046157959114202952183217658572786776174945900957943579346771856095899253303595820450894482355400447151669226168170315243231885427926884650510415518039866931208481332170341235467127936192626363643434146960145720212162094222320691812290995319895828928568871400312690998919932264240058531339912637439284774516683408537617212722785850330074005410504721694238938058766814411769058020674481378877440783742647272353319967607342643332516539556894557067560982790985397342440296800016008335777827805430827495087153085125575227999560420470696533278720339630568607669028358614246456211631248817010479656985872646257921256602259604643699294240801445671826900156061301318345123785554123930845582445827762977344168933799463321996844551033618635952913777902873069947642423865848169209696151595896230392181604024863058796814961351977003581417229876631045329854600134187998246590082295972363298907958193745228990355291176729677073124108831835360487264874139563842096869486027379111601193541619620413521099536883658873680031878355087692860403160542168063661832539723657547688101441975157130025755901743157586704818686695085354994772729897863237457560682562679641253527149036414304775657807714524901019793406632051570477666584749718672238814773383670529871537494417595783622807137846271133519692820530342104646395271371811308377798507817682896117777526252622197154154657247943250659719173375170687764473470310110396790016719456887155855527799591068751029233995711902265712910220847617781511199989830470786367005888844732849790333357300165549849678326015686875811951398294743314450322432126848248306773647213060602655958324462750344418526576027229734463842492062045295994513518088295844796512749359780508976153578954561850144653423247343595030033479983178953198655020518058324590377011229241220598381900233926483684098389611136092287993801692773302687326038696392253739516608210727752345077558861326311972421942276731717597132354832254306700748886424900244933736387720045364912894329447989771637470369691417948019935470870590997114043300839443699341506122173131880367468097926521209859502085599131341747235195742746929000500034561790874752405288693098086223941060800842879426816444291500406922857479834436676730040509863879742204788285520799831051990681518696581144451649714560012476637821137144454626450213779180112310977861041100056740656441171639031782585200409373878868875080508525154851971618037054777643218666370727894645545639361679421448743707265362147820706024081970365039254244329775216937513677455221973126980915259729585275747226351455664278519276626229163323785536449875027568585086910940107140467811696612543507335827965686190401499544245866945782513474853578017909183568626108017723066793012776788807107356615308819698471651636427034271053692541388684431076318859879234604149719498230335685798145348457353118721623894787788697824350502494649342923266377160483963575453394801964861801792345098335528311964304883363911307790945881089098598154488533234929299112254249105815301410394954748621229674161056685377074698160308475324705357201339217059495982038960337386195725148298167556148556874190040694310821016554462963972992411274959456482960155054586196570976333069014634545420144880773934393178737830245599855191211230996488757633440898623968378863693620559237857165932455320853143065211627357204536851321960587863369624559332325411959751313320209458707787370222739600353594038781177703852839128318039048796645234571609959182638931770447456690891587804470058456473608737897823898148691091170999930755852532055154671975867656170417523396419451064994141999737952926508182594300869103276974142190741589485935884549626751237161845231606849087159250616075712157188749020780701496828892794817497991349878542711998006828843812311529229641848131755271542668004843380766492150878824922675208529992728332824402159677397732417235045478881960120174817353375858996994256897774981739832060611598830497337018716940669592196564278837494532373348150280415535746793599966297644901468012272624497869031002735448928918925965055134086873459787097488627189844721722059226296128528438111152711794168017570364740745186500854559049196288485266651723665649765601193401057306566451453069698978191933227469454114224676048343332563250873210851148777481790887473316289677726054939868892974546509014564812725252297699273124893163312884363796312733876613660990649347178170361201069873857486786231017928903801019885016740539548503126999918845487333728281938229462013887838494812078362602090155589795222925536582262560956831595242084006460093685751004222355024533263629772161070394345407632600515516140350711633164478083272132384479739855659166295100733377685572489789490867679688846505058191918555460977898289054574869541717388109058606528811680417169094419814584219311718307669109792367214032553974464414097513244959407256512623294271035452219823144802407921007115630495294755204001586275042580464685263587861593882507186681679238615132840744891779328018601345291826916844219592459373681055996186414454506734654603946458679950320957966759895890852812436717362570863324878313850374489260808840129008302752142269818480298015399484570362440930944979872097697921691251611855438251967065477883569178785583697859015523964997135288233657830486927525596842173700273843004866688355927328462151933131468417665986019239505926326773253153087399650384408262982146065534710028517525946033306646037365709814081828652727320351641440151877224103027635498607797405660301407175155302397594157958010384924256021553160376161814338878237228485673042007289581964286091956166451150335975933502567117599972295001357731675685593098833770744696129399433356454751700838519796741994454558576710961616580342837815902213970959494441504402805666462062765834363696733952661167269933562466908976069201922316063275969951408364305818793447419506835360437220649778177978009431930609904346628896278101741568925339590609895306014819818364353256651953820750138154693459431738609217512178479834117550949734836424758561679590598315719907992288552826812531263809593588945605762553814900514801210452665878254487288283494322499247098495075894762404962732400196255448010683555319930786780600068546618096922889237009407070518122194788353737304380405471790771452546716467304934385514626703618772249548127442674870593971736613412796492925707980627126362781148306657476100726652518863001209070924947737925935231725408855447190608842656851629383254943434525524357536154491867128626804183646977003747316620922354102522120422564414062997689307135826877400692527862910161954781524440102104033200995711119793905507515675728426322355750175405958987975154960870406106582531280103720903447209614144267912099435023248438887650587766695443205572604823615028484046374035006041250921349192699270215272652551727949577201273256429376022313705649173780189963349898781507828573666796605154958430724398098977767205584674582136283442410886594376741634773569827628698773194115511755313567313601755544615024351222724723052045104430372623747401457448826942738991499803778802968677957629744267952922454175628248567778410442113378757874196173676498763409494521567371549852248318929731452777609900198260273270682329776285842050931729964739327655896991817880243839433405067006267714047669267172312531416005753151603347859923619591009221859958218726278192690217138475244749639259443532638966680335709185246098483385714054605577555547054113023996025105059626751011463135746398233189105820026900177925048625972521679768847380870180284135449940966151479938513140264708927161208742238311319949791477659548143301478187609578644852259603639910176480940840075082658521550105312369229021643976730881634498048118016226987751877295806831066310795434646985598840161615226188547625206767638307302706251808779940252759355355004485469711910591866358967656555075867627724462466069466506109860050134857864132094813013533028754648354220928105809868290388015399354014034041093180879703863059262132931641421763546828677507504230591671894458441052269982163675270078369266529391087858810624875047617540427147174939293423031234497460774015160491272197722826354041062457945018406744014234712746019371604253278762021905871623250416341998045097494473730437269098597725584057694891827782356777543928831215928400220832867414862597662737782391744972234945754403999412716028566550047030827848435937621403237958151219805283933007572880617793548965390745198935222537442121536282905840771438015093978893673390910811699940848837325159966830032719531690327228731499574127739862199327452155073074744985378287125388149487523084706984831621651656901114685849778208655407728571238234134127253053314280596758670658964037485896102889542082879411152353522577345381861701212542314205098291649147067665345345478054328823274598341812396470644443908044370359877238599695355576002219472063997169139387783770453505461847877644144657018679877639000240556754252383630615103957887975875801313214245895756869743385403089653266127147950307684519836723790954384758478266682595521214702222490842983918104839042513129459237460878651845408162931103582374906186038826348098068407243847352470683652865396623621520669259073854758528890899167173727093641922418392931405564111240502499343502368780581329178539768002999541276656964732782455403515751407174852526524385134220705211878531142031291975542676570368708831020454167711519384828911722926597584537740865375428304485744405788614968981659860892386122269799574959812614328533201307139518570149023487054192711000764297367874299825143751325635557813599209987247339352307629600485057613066959597755485318117929821981051536268765626329337688734248843179719859973999874427453699686580592777120231393136627197513968287997691391569836589936483713243010530164150072070129306376069223970872695269767272892926129358564161294309936816819325150945888800459149665261811943962614260030457497285153404738555019738769934366156791635565932334026016984352192251808874254865779030286180199450970432045600654062286316487353638557797897776038801791943884835096784139271962702264800072649214099700036349458053829338179672459577237372717178638497930211307757120059085329164723658791449133930573046897183144448127198044369080568172238053218714319681488608762621515744862278637086815427937969247845910122137149889604826864400637465797104958269175409622804352987599473234806239379157007206168094452458966885371845736850440020110273504396942347429939403080458447107486562692509525293682392582178909228948471753257201381572056985151575865293424246336948552663645948133717349156015052802946105476026976383850417432095400838472631075738232813310684586464920502653144420789794277780178807402952164678086264001634578687326407275590293534406306216342660066628453421688216194605446929876594212997857257965717679248850342308046939473347318560536665153409367660860156510234736797062215773813769051732315721845387207723410995647390046978713544700596053118467876435694034069240515637325160907288813719224695728382607150262623111559104139212825162897804378366627880745980630230465154122605822330988103403059899774028394476708507520707615420146342611148272191655715248671330184162341993475234670824317929969610548583286241049528222458492745023896989957211587273324504765965884401082400588903867242876601662917045484632691728309135706102343851617395638022016625184299006584971012508630649673528761182898565220636631148808616758096818530790694155417991088937544389720237114119408144585627434102637375741911867832014616377999497394836495185473549701084568159975300117754404762122676811307658007347832716706597545986992661457429380456228072318275067128655628833417190122987086225216102289764785383308258560362349973671014591624650073223472215463185107268049913048633657718074233022994561722688570134679503797618560557791919471155169050267249480845752803595993347378587805996422932587602183206759255427821214479131382038311242508179898863006687407573959985423556961287462421250974102910449411721013390340540512701901402792491158290743570254664213448219042413604914156408802376988990808646987337446233013696228322033606834689677007205321707001757405976168796237498371594888336749581924408982729852097236232141808554068333908668554893503799050879247393153017242397536385169778551000754828526293992337906200413811228687898615466444973647653762106818763318786234852462849961704835318450682271698280383439297358788026349210827650064748020371378184066364241052331815187011504921865293451015463301645414610253897937952178257179706759200566988050444188101991863738436155489349105173877640597232937544438959574554491001549967607699861606739680857399360296306660096748616196863815342669593637516036172904361189652440676505078627514386789066427070839207042537709959510792154409120945830368818800229138342767030089756318783115467715040277987174091800368989892379461362623956867965624707825486572110325123035395208642412486376776755742483577831910842779347707417079269094070272064985739577900557665291359687305199360480561482353172506770693170697398230021117891152813294410349437341127500126851371914182195108907237554726051130543036137324584244789164965809380931326977047704440070816850803001849061386083348381652134326809720107005715757581252674056160895506820353301941481518534369681951796294401532879888107797125213202944277526092010908496948335628620427571272834416301185102765243486396204427113847307950724686668861373884096355716095791589776015798965869037841711984937754380092110173040892332707676072189099373470131379486137060432835756117551712808296135315411530605036503733508793174428079086513581261533856671942123084515913811279494006892388528019785988070346638866898992575041422666583940870648393256277883995148606267974732419567041893674185841597255230978108490739976113795218893677183184080761653527114332603700136574638396304877139846852456358855387579743628918026910996417647332773848250223414795438432908742485420025394820338068909899684413033685121667273729683113162113202528569744236629121814254443371361547807374314825385435833746078485363237310252813277048646266027487733627165545676555355235220680365235798971989795492845287019382214948984041190636265490702187669775408571895264121557478986858107904720752844623272258936697406325049548935925009297821537368372641018576492764968706747276867538498488050074823746715165024880063753970352577859738188595341793610322607135911802807052288303816498673780096537065319203839413817200723869248918474196847913937975186650487196290001089342457860414075348620314310654154853198968206435594128878372946261727405068573280645220303855177804423825161481973296204834311769616143543396748700324886853763710043741157794605233034602373558866093829714155632486005330302114896780610313583918284004975951945076001292855754489509812075741176357989423390120218368877432580275934231458588105124092626788390343054274290258920334267238167063451864376371278222722226265470548712252715565644808089679956280928121752246030178191994865662087823631825277988256184472463525578955068880929787458010983434072487361307021174719991683828498075409168481363062218825870795176444518597798197976830623052430343747240608160571891289099631374561509495508227278915537258104593609675240971720253956528939772564200618579508752860323446743934261308976823618792182046575331424705971459680776852262918674732602191038308933214495784881165377348523643366292793465066891978980099820997748691829577087389307657583248228537998542880120055551387373123564926239342230060659554503354504500829940298766496067206649402688859039370574084218936430978238939222835087126646529367977292027174784679453039351531906212421338661451128409673898783589395153113957457377253615306649445061436343809267970147838426504395785741607808857944715945085554004178807158603721983277747593516538035687719701302108483289050873173069616465432819107713245684448721225693068218362612434820894425027842489776804650289678365750549293126445247117499563295899540612384899663570054222666599671287287686831147394270620844408432639113617282314054937081704701182527455681676409387019920258453868566960050939686754001337755679341267303566374917994943512101375757819155510433966598008256021881721748140514456495254517738413031705372626085710950455240429207586251069669006868961840083588235807667007531441970621661210519664439500512967907220193276505382263935957188304327781800493046367144229459343694735378213014037538873407905885383905991399017009227578459896536474335057824312691158733772864740987063594896676044530379859974996650932442945410183242041791840600950383013280507250210939212905630872766958510437320172021333201731324203958415117081242718236217597291913498416519330278022955325205836414526799273409065973964196136963761233268826896700390167110717514559102789708944118687919681506406083766870658067185912765346947767932310044809957591093940324831724508057766917627522786628942592475807620653105859380773670188692541885417135082056346235884465731382057727885190042410990830520693780714992091040179845174723435357904989497547131262682187139833192955785254033859158997921191125388583647842742175761739247347899572897435572980456631019072422043687826132793323544449137428216353692726446259210512891732968118216836711912096112650501960610603633075756982589788103283561962821991544568811715008256743546665743845611184817668656058487547988490524189556423640742465424299323237756103955520103328837152988507760005142743255579175841901460096686776738958555537938913185956102384226125420322783990643545418949675342895032538276188768808729104929883522354307612118045225878473234973548536842184455880390625454614447830796796193831960334135774380521960242754877093627995730483758739764578415922060145035724650566901527033058447801448584713747028079198876236247858108532008289260173746739879062263095810573086085477196733368697979303225927374024328584410332409867236257234481991107925454283449641228878578170866422792809453674621579868428458199193943047603584411978639587194261249484882884694743320125350287958321105630238124892055632878524951481820060483392588064031640169782306308416471530110255082089338596641138675298039660932225518069834560254830390729845014281393948927818342935222074187611662036719741739024507610088038059878114034163297300051832147601235920247940178169577608071849431895911550724071876945183146510731044353608372086636055729746746315656684477488451820762888338472853585837347656976518782340529279569793509610210701998613715267385770609673704995885929734278823039437586197931206884525743360796471817665823479004645545253210893410549094908475118332755108326340311471173458924267806899974802295296827454440410934484009889429170776754623118517015526920213302275085859436144042383359609524857364875743841206075754022569109417847890727752135864647043274421299149976498892601998560262274296033929627311186906893523548404192039506567188107982575754614463645007266346846967612666303226763731670889184607009099000698923879801639262831910653689236310941077980829564586701137309172861406712527528221665310071605588236751742650372549089841436988795238452850199351774287030195774249021492623364448397878895832383204997665262062487130924849337604382341897635607412565829058266385631895642474702316038505520940753807991120127430357266634199113471287966372618247004216970429429325629595063349861879937400035646114026281312374858119885110624371593060566513925379009185383681831060821949724592648619900733955424937696740155848339871609554547278389422150392706497478871569184515803975519683458117327880262070794744725366109097327962347084793041818724765231264974075030018527010209710169414645536817025193677699659883477180787892639761334184317979339960092304604791967981722850304581138730564743727428069507146641060237999400218468638434021540315457539859926095429824401498054092684277363866329816329393006952713031365629404526403628883701529193292242827373132061453930900493351459465382495532032719441576887381419759804747402038542894013514781323190215514470697487949079322879878220341547274038099554984673304616710095085227214393144157148311179138553847670279665988913461902720533170291061410342649470557852078531976625739182006606932709461296391831720030840401884582162030067380410129353681810315463803375979689337974244877464403785278370313684510851945773628469003955372074127935876080461918250283276373573128629564397976331120571854932352332568910891769819069247123801581446811044449221367346721110955577284952696941949707579838090479526699138203718021043325895531243214448129677378537152329198039587343093166573521374474185287007571411110655426478271435171705516726104834849018825247237471995875508938221593958487361368967432692716596487173022109221703146595156925852564738292901903689947497580280120637055119097141289446946230785388172510135034765049413422350854732464094360649871216536174731036986259868163834711407139911518612883708954417130464161210981200299118805018638508466498978541532487025008786025280766407366992414604014669014714340091494525965500835519892747400424986895991845227245631126196261933835653153730402745902034606462163084094866604717015225643651042235820896206025062045646970507219685160631524697185193252494842673241148470948565488544482124529568932834330758817139085191774354163189084064872634855281696364998391604794205434297981869234412004421598734110500258521859751778197286126091906977674374231149762581196541310126166047225541107334979033329270046038919127917253136840193190795716325615897108726036351873801563899401010903402509444230573782766475160912001227185445630136766962993398944778570295490643526415753302451081533675934936234423410364933522971879814905349553787174257705779217341413798522442864043025503272457114533181197638607040687645140020752260410875475711792422742961835588710769642447243352174894610275198232149797276858795549670063722883658101712546471599332760445685182433069887337726884153306448420246183397522411101371433166973504162632325262005572603761248281657257554514856928983698684020555772840547129690388860957934706530901881167056359276206531659754453700431163376287246382326288093814933204150249617763683822476703475683168247092328220803663634362462682825343629841379147447763889512157550632008274794115102442434976619741221988369744877913588059357214141249521696062031126993868744002249258480417070571012277976647965270513879263885553971449945373405255212320909785862656725630774220660508199321380300093653975251768722121899684426011908615301085095489766347431004194209564941301407277287397766459090927379648057999489139056825016055584440980497515705138767970383372205737963942389853704234624669136213446346544135107385083588682936691813287481055622313679081272785731239528326822004417325275137425604733495957804701836765895822095020251411433237846865818251124759832703543555173657150581720676137154623317660366671162989530607204335720946527787401330690316201262647442231486608105592644603299452043833985567204251388658541574553318872189147494072586521675945453535486071608663612370996299833849616159882619696914035446154299000285825842832200323924869255951133792913909904575866699223557527526078524393867751667585481492256717920850734771129437146756155861681734921966326029009356234518400026862502860996364132332202835463357316507119617510892313285735390202054392963630001978096167317472564225252328580273998623447527782668282810133529840222820773044811564864539149403952670529350981050861288575391189259320717054947184127418129258643754421748318698120803309631688541650293282599920498344917497530061504688050043301968524145259981595519662727039689526091969990552436280386534860621204162394505664692452682024866804159242721713564716584970718105818416249499676321840209822869087859413882609445073734106370524661179641931826588478000302161872927493813771590152560572447966127925891727281986469363763590002390209891298392180967726439677800855814026275702137477193672634401203698258167857285772550394269712668282512172849619306494460916257761189765155724916083922877066740444217190404508515948984644176744945940410829208594538142099815220132838342109864812891930846293121265516823477857315688741408443508471229299438793507365372947217314295028999923542335395513347449861525259415532884744704661603931240938117111609207751810144080505137131400841762966380206138000869434931679961404470712360514846803556944548145023927961759166264467277194296653517935654995013056745083142857013480695701240563761324122793138777237299589755363403991129735289375710333211823355484553302370243349637356514991523951135925860873200661933996186879601128786410561131480672325027889228962259045118837886894544837898743482169160710866416267532486153454759174657263563047207561019222339781162171725396501016174197130207194670150282940709059618084547572354452292559859248212407236233216062725582475207777457392059541198941691460710159759815372804385682105952505233954653664134563805679721677311978789867290503510891711023271763518880276566733905661653598212657800197427042214902805103143914766977612654129538743201050348537604044516185894937219006403259442037772540362339554154043430283868596350822202249373009597967046708466084386389964740920356156971627945464889078655026385787733155535676541714933157096112660782715835238119121980432531811797490213832838852018627228345189294397598917975190177160350488036382529412219959968819317651796076713150590472935990647636482405571931115562987455525684917033637812270528514866607408649361191323719453469079561001834636905835663831217363846758745300284373689901019108325356629632141416402563068167219643694393965031221738362007987144351488897641583822420156362623713011547914969617399475123332726425388243781443969095278475007958686526195532949575841431083035527054212111058917850596453171951313764828362466645561986884385199837172435211476188500869541499533828082322323765011038602526921844277818906904596208704797447690891144990352351881290914043103966205583275386241672449147080046914146088252544430596654440787025611229720525124992976180016274152263315529663264599809084482215179461890647723404246048228560306431035502265282798134865475842508399406364384044940085773882035300133327630606967353799345059651156943697919744267909933675155753725883379008709701292892747578841280142877869390346577684647826397091456398923509976949489437143163699698473507407889573501225070333176622165342048112945621529572780984823333302437945192386103841226585703377572198611609130684803984786321521002518394970835721752375149672505124150358675113908649812298525831746366986836883019389498743672497069301098614741547081015330104470266038218360675788900258452135035172401420567877655060072131768093536721728668145617163620251636270442566195381028445409206978710626815429493470369799945978915731666432464074035263811284981802843873296272441274937415105261249501238972141845425266505913903667822756933479966546781224847941909325573625437929496101700610698549355362164156311423126978458840948566537193819708647679560762739213077956860373165164699203540481460484550820411256786498537643089959174373641567777160757248435851463356139344252234198090663429139384652758168585534454512601867915642649019038284831390181430073976586885351940362064221950487817806662958504782990415509384176488469645666186444544428591187862807215359825289645135028429952982626506533128369416711669929709122586470267498266878399907525459701565494508718560857555454954792496718366723493477669446221312787592030069649941756055959006509019192498427719918489870287475523776524003322743743121021202696885438305767124287197063274352424824015385697841532839113486687079266116540725508131175217677055103257794813328206806846860827601341308829655763317545833029817531284631950087201944274657346665704191189624477376240736336704332623737623873834184422558522691810765550869945804350676297686456639072000359419809511369822534055943070491957840037733683031946554260200041884552797158277165063518763457460094598912243120429868139946166530385771413306841765341345754094045171962911614146579936596479352274336104757333375889978683107967140113710531173510912486852607570221149861876099431027776238777531332811069558624625561911081469458168829105783711043045500844865947582031972496602419896102398428798332030977735687430292703079514974917552654547357318353521099172122724762477028073682168084528783661054181640925605885351135345638187917758212061360805667475828929491088857328408771523367222225349189887947526979440725285717996225134900578722631997488440841451873142987295856162836575809193501133807788135033795226961044151141940883710706584104248317635485514909953656978151943423800102827598977833663143546628304614023591530976625222210722239478302594024973677098050625978478528289535202596111247009303207123678501478502571322066054085911817932082655882945090086600367722162151206105189116595221049525572880477637953268462537902386154487510187105327369947016887123248502583091239590759405628458766602105560447526346194986992693607319022953526702954700708555900430101651250901683034716503971839479062235685391320431625509579618140220979771449601889513554539969495735834744705157328507488045239344658751286742116675335403477445900208739564430460835379524811345643408196130520351808461235469893145408820532067420174660379896930932118754821821553738452249100515982289998312320920812190344405843807596749893871465269778433706912500797461308645773300285444988498567838654664401428686725245253102045666956529570447987640051767936629721715961465724436782366726810127687155630558407313523171655245895981700037014632554682599434318059618740591013692559624775819663273908246668493296940246452620639998932338083901368278947235868907663836704899672769532871429190488485223115491662754790637548376718215784148141424710220811163270323610120998999935484536518005496512804723490292808157046359699114878147830813474369319386745462778570603783772760387515557157926760095236430585500298905473997333471984401738281184087037659916858461093666700805653413873292408614441799545840348543791048381034565651299706494534909330870609598033977889398772957238579966329189524181913065787693412207581821349634953355001522691550828946382531245945762032832820402107862110265370143686549634181473371725665864707798464130660275678985749518417185481014694376497779586992276194401445255420956848286502612291443566124968592360934155151432862452549420497941344161198261477504442849519332589565103951185887300406086100618138001815492483012043359955873401191272586676200039708671517280505816395011224154080754059714786633392523571562648092902006909488897055327287370261182130771903417832818391407688454402560809820451279137609193692106489141096318369854733598630580731961018397566976282429043847177364680887043412084263942439122490405342864379344894939636320652873443183712338277394548222273387352685273243705987069846272269484701806895476695337477029508563687244250078846629777528455152944282409292999012296853093950513573275282069470001837994867055735179934795699364151797197548043778901215330690678396192039701640910973714170079624538168249302415408011758413652067684916478059774206709605259536916005408511122098664070137791337375116261712364243656284719999848426576281818791832846010819297391622066799734062996996271543238186906882850040691156194592759001502265044796017422094210094576659783379889718458532367170994038681280455437484321564631268469265561399078181641222305831472382863547357504219030898310846319019116582207815951673567364588983932122944275411009891427383948468601516525593594539380217520423652981932644193519175674714688488854578118316447331060631563376688959964075033140003152397833534979387481578905788134361834800011934818143252591116095975879704012698546636695973241348335375453459224640075965873516344452606509985717504646169402703010173394607419245037211829452205241260529672963848592296539290421172183781540009991095514387760863203227603386470638373065187874340632181679228935982685837369267372768090466558193776445624205500391475129207598134183284424341681457418594289587048179497691559816151633215383008821145714282014805253565596391080361851021414935033470380499265705469899092346435881607154418107166661897721419450840443701134685850904092951383401248271516718388784466022097265739624991402184139602395104034117809015132993421685303004267642871883250066517872250198033247439651893041657230283959030774469656327829159960220683768450275765774612409155053865923338344166153508027140470891183198093897334761686342665340690357646389932894772007582707923208786490136423526833583602347827183957129041228383142675954844781131725651790878350671225186854270423103737296509759393839970724356760079337012579108984417174183080130540057456959097624641088526399063027524360249372562108145862389116050788195947946533307757577090291088608579853427061745355393579508912555800455407795802337922545764886537520276973301035410248374113508367204150935990219527628650120331908764806934777765046987221950586197526251554980100187902872187907566885424021143555181628960781915024661600648258320628305601007034815593820615258578466574916409944243493427980252359491310707175994649341370502381860998238397127705016820107461491269923679458947965574333193097928158159876045361049660230303628769019281109974254782913718011889616928319413814549436249456840671582647314688558961646543818648573735006016386582223442127892400436810069763597331465142890304477299406937859846993682522035091882312462883616012682311392213710950210195101499827212994343060294827021596667542256177592973847352616781694826601615336870339663796742417097246426012344604865635307865110086719023097362732182776200132444650972604444417711510193823277643886652977376581823176004510428628029768273097913376830016598370775556040073076705041718813317923919597894008072524113913772965289193539036261488705626187501558353580417754145586347124568067053881787642402645676187707453725417981555614184000148364009852121720688159654144486684045099457452957779233443105301371516025233211099047872856149963862144599599153158246985611674386529281463407441907167416657593106471734821370465081596159986114707624009751895252210216106640199679354220752384429641824861207845193715787497800609230250335006829185776498721800218427236628296110880421906264327697428254181140427618041031255402695190418626434217338145653517375486945459320877960019286649209912432460890457410126425852292052670488521535129310342130965287872359452457281751360732740167152591513136258500896085743340591901687562186457396498927832285217528411012312432870317791749405180189369016777888315662884174689259529130088553631538258115435931752178047725411916380447289521237491687460225849256691386295737056685785319124429112135867892902314382333558200281373139186991557206822604143622111033226885940119408303414890149288895179796921503622752262805845859440433262257015254154330932614227294644007577629428515293744768638482836856213363529179569091456257374051361780738440643781032739040192468900933317146822234580085992824467258115233068617029793632247281555460052819701482262248259660256348443340580368146829867067794630048755023625355487122482343520778490438214430421783445227518953228218587759229212029585410263471151646953780498335947824841263464450729048286223592572561899215938111809452941433142675141676508322729679669554526655207933365049868398914235409487757191053073421002263150203023376595167673543095145630800740687567352104362648506122172515318836614744866489938825781895426427525742241585939498214111109907538173493251984695985171332187928013955536493315089793495049265642156036330747210537215698935853026802083083277018749573813588341354136072873430583915582629781848292779417640193209589345815040173862222174399279920301193496752797243594255347223419828309314692640855337581678052640048580613471424054991531674409923932705378720728891704262489546049141660528745495208856311168106549460616222474158908105342202175968423777011372713954731376632604596435171927362675029380482634989701627032033393436006533924229858832356650355438809282734221134735129612925979309946225084206533079060706224071878329145027461785010474547087868094409858031206646934821765550356155940133468694706712514709714514290183671686789981789683484349675673759426482391855782573891980959056744972060244143282765125527500061573212318837290080664418164909148873356786882670089070449602008517383818194815723953141252533721897581944140173647227422967961990332347058695543687740637879284636226553713269964611975058959251958966817905864005201617864885340509652534973110781732309818067699144986695739747890550900235966139345502243740943885629296460757551174309039227429956324553444790907442841880103501749605821571825749046564840322981674287086846158452790872414459013808452541084344635198186394797927728640390597929263219790247585078245662130226513431456242416627907855580420123810660958625386857752066321771674761199754554636197045767027314859309656610709769013951060811413786344540545569400847763023939345128470764303200911755337865364630307814381165710272514616932475278476933305383381934645056484932406039816611225111089605643349781179721502389821911174126514976399861542648875231662448577569149474388097619496374428584554301810245942366775873536613342756106308243460533546576174484581514460078116892559366756057351658666378404721395762274939895732455914087006441356741254106782105194767217795906178266050048376249817506135882398273959355006482534927580691431837386632547540626122737828428272623165675196662249909132126992605216066496014226456568873114890410274728390075994123001759499630041317010494853181039877810108679794241675833912854202949125295574203247701941438203691104744809011212578052042566673041134087701788090807579003399277434756947080272087453318206381160365654536519518178845147269499483840048637936979911957480680659508909521142975009293032309991733244270652271995936222715410890843482071202792140507830455322525854042340727354977581164506266633507712854968851921515847875948028322427132103984196233315761692154914664301251993874153206976583707174443989874425198769167030550668675732466241588475051987823773517042770392455601247240087334831891105997416181964070316094987250666263702154805523970514889719701465279551025252543373211703976219240882944393657042602705533565587916110960877806684289061415474245255092432480071641987538031255845534889903070010696548415632902276728063617542170513934088431390969262910037543119433026293733360041132762899764204842207882020339109448439554864880043933422287424693741952953001286036918612545462067910040251503676267086435550504428914925599340501120214162958336111510842790125730655434074290628503567965554145227694817140755581480719268529632417555645661090943362502867740519960547163429399705171472906873712743781319437776659267826962085849376260024247647228401313106903648829126806477565901660556138781618831420090816636674514557337331718609231520669978029250715580426230456117033442177563566956390212629108974293485016892295539706703246311957870720569432271469262923907682631952624010740736511533944809325232619269288225047589404707495504971741376286609644242154932402941350666461903123664766827246995458671868062330026075641661509185387804393619676679409117071437720591745529669295156408724346272359456569183408747157479405116706219415944135424224034483544114782623036747661049227735172111588073503768123091841228568104518957968104657729161716672012994092394113328748419039422521732756839047229556507288336850594276373942315201864563057781403208585497654310954675256415898893990204825657193902955799774071253751719190631612098533316842737699325016097341326343293337522277941306903772258059267027896244000862974975156304326188157682015021035073574698801109554966001954139200743655028455378447552296470831717922659049066075496978509794293834958225786761034280832484915155877082546095490058417027340010459482093799744047318025662864752200624517383803567236227986682902975092845525037727321071997817932970479055802167397812511355225526467295014345437814681222620004702982023398637201375417407203487293417391333798387828012419108766646665400353643803349827186448285190852028130455157454283620721722892473470178232704384329929930278989673162206633180999870718357594933885725077328792994247737558703462022114532006224577179895438026643888119266984539650681963381165581062762720124015532757565836143342609062062786937941898490082721496051774031847585518809278905415767122334579110224753929543188715343759137563348384291749035081785043150403927711418038442113028321983322728652673350593238392446797538162883977865567945473107318985130160259693455336349956533115625602631232343265977995965589241709930050955192679836067422541060117238078484037978870166108777655883424027227533705326365869615536211026925368012986728901387687542518430963731586545804528747787079876101663571275444179155847903800667070959038674636510520397362087561073664717509120532131985929168743944135930110668469212223619457016709373575426788701231718288553739413349220175842142781805830570041929998351539741310644625666100211348817900483586197628428303079361743413806318051554044840863294934165311116375125767930746549250114850614108690055604858070759436974491265474457735311980442056493554907992340994291662374197338881305414826075530198557509904367551030111100459056300983696783399737335770556427163281538667738920741975114783300364337457194011011786317391673087969032262711270579032074685882099211172439697532892920095654405495312988777949768121576623327451563318507609099413837259772616693639623666076413924598674066300110559271569975172800727042478353610436972742805322393808721449314282223795963074754685008993971261509228651710182227874891269661076556222026496238838783064372435224400262077401177226117563458935256210897978672556119359572940340395084942235610603908966561818808708668725676096999817240999934466177000721763692290713843529534464475080185066051274264466950215611408402334438222938528756566791958048806675643285754529721823069311103313454174758608509135515128081518970750264787129357712962455714689181158104485014567222756768215761341410701443349531262667793641118044394597094113455028335864691896724604072353790201275558174804609872699384609545343641330872826265814565397414579836224449434634590497631706995577599215209607489993768726640742259095520870997677656752385140582657416244407940502330498054863595170688057592495054446711046992934885397372778538809382220820920900794606277464273138702842211457961725448473276842136301761282775826945299260419594551303799481249050037092574947461813918588754603181354121969008205782143689475656952200236356660680170926161897227303852218702807221356134394349913402892696067389492279130860910776730992064226876431512348610190389593801689423546022365067848616856920539398580085827948444902391764927278352146343609640174316208674821537494985627356633066162423317685160931016234519023761139592503129932116250948432759017093182199724414047106723054868783847101548169784294767362448584831957157523963530731302639150352477829422772146053287106697728418098307902348255605530752398598348702986468930019822577508315977808468079812288906691485838755978320046651936297948327478629677267554794875996724457165893553168025913319944173909743254964729093930831098213560663376232249264395587093052528590347039794919709021152984025656338572880338847407064824726109426025178668575442328203641586271432977493099163573881506754911475795937627694128777388080330869348188487011821139332241721950231446339759481014905883340759165222935996707915399687787063288623970582285265200718630946242001150687182086311565743450700357428099999297191777625499385832958855612079701688396173773948300019185756451334271620315410759150083230046001952801516736553398337666951238957644142128405437726915890118633466822133997324597614281705527489818503897920032286211323194858187420307413257848678892492390704989107826178385965804162475868517338075171410772910199617974177332852575362520865606556229223141807022077641561577857378738619350906859893400589636106943845313162639263491103331475530813900624492422773763997806230849537287326706528814492525617748491484360139677113814172599257648620831006002230140856797096617346036617789879450307070401105176087127360771281794531837171807507914951679350679442798164025099182196188459288456049024830485914535453783822131922853931741080705726197739802435494929850507631528446360247561973225105212658136373749812150008495164106230912599817308433079834421355187474568000029018482612743129701440858279040724552705604345685905898894262960318206698038924502579748089858603934504888860235841523448996475612018497722383187098574753183207324381710987392346433613330559491516514067093173668727692704666074696618336152049469442616452788977307686290341410142802826929022849318343581836588632607429811478307203514042580780857286061097897773795176415482561341510540666993449212614561080255407612788333369910075635142804958318797097820145729459923782373036516297297352879241284966821434883095989432618888058090987459698765548774045160002796321698091081282864351656793923249608190413056927468376324572023291118411654642886014885930178685034601092304604778146389452356035803226586253453107779549844851707344178550085861398620716767826227120994770776795136472037749475052597371203121928232899239931973817353775548452592755739420696672343954408538189786314866038707205898464056978533069986617504483250164487835788763626110364765330338096439099617963526679000448972479631734723002311907121525710975951416689897396559405445739257711367941096187291588402028014415851775922658477292851888136157042626955551834240960377976806577091327118509298035545667331766537955448103675991461651469752185147746087333827165350998894901376328360854611098296577827971061846080461696065628954440103108995454031367893611707232054827819146102434189169753207362201253415829188932527675971224665759165824034459163348941725051124407513404781593626881302692566306580350404325226326826627846381029486711314289455774460368549237757779292477677878474568469124951863504253988639179685077463089284080162515891256203051638874895272118129104073379591355259606074767319609378914750386114726290299022146459306436045866129643544218378751883752584403190978024256074868007538930790524159974234118639242162350937567138306500563966535828758376596031507968417855012194074417965915338218129608548981442931889534996123567788324201335394041850206640105924283786342768513781949762418705023720734575286345671928557658970842552453428985749850230267301886793594406152146836264542560251720489642124406361681812637093784862474053687960349651022775504620346078927186311586461111765714410847076980003521481747460903372162015604587798395060543131390158648475379769819264461013106190353519260905700632661761930232759167588018290917125260047933427424024437698908836463959334198806154647898383081928937701838577710134041608063539850098968176994133749606115431700850915204656538428314025281743715997406268707166244130585639899871031497398550790094863004062753477903319594811490626603343092686002023571724432790917513616945542215569662726814996991884318375823691997079817880230108643090146324973025575916268933518042025736151204229935517977743875853844659665795675781078228346078655736823976915659716511659080895651090694253957862280422228979132804867005114917316269611552565658383396513172117056025424065466211078281722238912175306147240505590167566069354104186400286578325992971016525187394172007056980613067263255777518012403096721799382384645613902383848499789121184600063137505963110737807885241749935059235830189099977016818576857880758574030260203894242700060611533384102354025824156076017431524505364580621922278776156996108930314153910536488490717575193752880703967982847553705935922544097844894213496314474541554645225923754492595133127752761203126339512231440720415267814501611434430640193929024467038151897208246976785304609302020228757221605129084357207327128002056042165325208031344828542422238010555985530546986302554930929826367376256689964151217194573923654663394129042647664689337900330631100879916670620030385869737618473026928956642842622003584132561762598347438014444383956290951903361233524699787785493256387299715023748833133009512294871648661795679273503160421248499754294563795783561882362671065969985432857629246823894853841281063834386492317551207320814031440659137636475647301057095493203264194395254549287220918660143635618211548349576620227394479535770447426058533231562008310207101511302317179137014464581479481076513726800284071161769898360683849627272796714505477093841576884334170009499741707919822367192560688622448954934030388955737510329246744901577777648873569041939941083256353463699995457606881254821766258207129768824742762790027314007649099050579499981398448591398515805512811657826596516660026857636978934884667644694460476146258007930217536610627858059480540705394209629344742642462885399486819891547235574747813525338954020466461486448060766194808160047737037732248958828057527187058586301643375300776773818616943727070786059440204971806576208091842079388694478182483746039296382658565178383324466019917387775984824348732970620785411192846030741253110751576943027766237504306491224698499030032359906675517070125199316381722071983144040132932129850361377909755057225802833900178299532383591680754903064801134714135926980313156860587228018019264469053438299681898711622829474962071951791421947740788707334225584438123954160884378108103962166299176869235347564400934677108047555068652107991511734953544824673691334287215785152794723596510685960033303308798658331656633738602042162752039572394996295231740831008854692642810773074255063741522182714323564566748945649849227062565741648380837265745775651987330506952625778227829096782428193578691558334322251434786963761156194245233399139887362569015169790763887915849034326946838289764372871730485745850759113373727278103175311636864599460763280615128552088969261393505220511914279169502666386245971447087792279986728168599092100419333302306615319369177031440923438552016887771513515502771824667816434677637132837344679945325824867645996222930384727528570785847288068503837764095636890530575122551411878818033618324445738802967330683181665880200045855856432843209914864738344112665969051253023135974374460086052276260968000486956950050132103187003674122212839697417818329746196228725696886007939856139509606497363281143626275951468152134585260875418896297301461893764629141031570610711292831790900907628305635660005383366519132966159839341252505899602203347947679699740898620560133244344387043284173369407722244612513546556655160704377806628213551458078150864035102884330067489860556063668947890617125111917993310128535515285581568977825258429661320802982324804520745468035033970004724295479078540994801394318395198529723488247254852427150736527471875046107189758418680976804386775145203742682660275415601630053654085031213312481325417630889931537349057650864557042745154613293632505487419962153788668752595650118715737204047594644320653344690564721225534361290246366174463042366563720670146700053878056783136156499569680220274222349744686404718987819047052880775891619473732328096539439805117768421586066114055345716501741540434419561733755524720510598359196267553390865315985212424528914536970619744693641229017643030159146918426228931016587399660632477385852777121434699312032174577828064641775081927079807408212015240849731961341162815624871734371218826589302126276259780430901400998523689953801680589782148879256275735148356036382075363959850367076403585778231471402348971787569379532486564067576388224777575400547774611094059342989819477674963871140608258530822144224200203973524880380344914720549106656713512852635432487319195120325019497313531340580355872702045605498357241367084858666011850118636102642950620850376019362872195703148013441103741641083438647897023467493507584284144484606477066675796068108763470128925233682222536188461276036275489589043208331558305188601487380379294141532361839897809576395782142621535542650611826080373610064317455370174039726244943153841751164770898224286847405645364109520049689065723564421316634715148485856769732311946264528364731602549235859857841866442594001091972204910626426843088047858210880557029063640920165858122585184999439585293482241901154556858504616764257565408395377982378992707028530459794425552145941478223468212211197160802501448780439403390033550579840905667591174943950709436164280322259847901182379335859141330477194984806847105492628292988296464130075860104839771045622635131610465979250010438445311135005529333906512770741371251699029966815889894160360692044218183372626565174671667325677565300643242222522224221260280181659988458211710943271974120059621081538056549804739650184372349563682928227189877591573961913482942279475886932767325321427926505276272274032716266633045386032508697115814769045819387843015158040137837197512240223987272019141133508367480484083874496313983286312148077805975538685200676203345546958935231920601425038965063709492031353437864339182208668777569620618204682023178625764016404003994932816315563069715868378915424118866539728621803546272916271797189435422957237196538545694385350413318809286151366781800156310519707269586705143918658772204897496907032184101596433144207528175209600260048927219756244248295603628998386365707598411657480198600243238268711372853341247970280667300591290190027705120426057179519755289937857545658921619593681921605558432623379397569130595877990001508870240858912858204391570558120966553830170922048817561955486028677972720957253241532283505725666072525705328293675340274649562504761604618206370735492540383070246352834820927109199663646042494834615150016899229183402148672941764005750366530975096797497421363364116915422781233444141313087429869225757065122937956693200032168019722385230425907220293155159239323327869697669695747118936115556494956606245500997565533997375870276863289285297759841413064693047518101050451365966804462892179518048652016598696761070294885796693681428004428566034939134975803909880128595606446236312236957129477437623429883551273342143330021924161777173900413041454751750754176525960718065771916939771575639162394980917574515837498386722308855159567354949216207058525356364282048720542276838498108639054067859610432085735487701160474502043955758751994918447846597247373784204378131312393559026706030098497486885626773337895837628248438068159810997013263458797833860431113936547169358107258062161566676345674998658296308171807623237718821878227075568343073620232299433361368812245460106960140821114327276211611060278983102376781278269221737343393405540944794587183566195208640326913494186374920100825443882235800414009682727652563925406589941991728227952316174130247155238460589853911618673950682031994601727981986792534788514689288231693825184933642826815211491571637756459815074700683169592219373339157199428177194179755247176128699387013810381591627749625655488932503644845776530781187413367471818221019546014256442510486544648188460133773328643656940151164562217198238669882052421215552595383694032267636787369377158562313966297265540943921136591707605461273059957619098652267110787717323079409049915149593264154626240582607224064406311317494880216530596417539327803259603719839596586331097209948078979948036452799959254495201451728134871992127240309345954996744264864682872629524863039015374911306805120697994791888591673347082869806169422936299413683206742501773594182362765766819201731214787289444644532922416660839119248870060180807997178124561342522373556603255983434317770301790773735719758936785440004771712457922166442532652686778742173885133520880468838877609141296883249595786070845616228997317925839398415930486348995275763051049409788796165515294067168002006430585803530234510912269848621932403891484741285505043890600147670211555342601470753333838595317809747365326245432649444950840792780674073787650745503390633201142270428120218874652800824882482146909454294251336289221150115080205931112688193291257445852621674069541955220798584263456320340154279516580305792387286379674815634735860219800500389334116054562558390857656540007960166179848719803511402377114990251270185018957543105274086051684035765790985527902668175056221453469731085476421463627358797971159656507865217274866828630565855995989474022524330263484643586624348716874831755248024859463532996279550987083504639288658187717266609843453654872642305782539813930785204183290671196785345614810858719596187130359659433194153394731243951788243578508636005740325285840192522277587249663089597975610740530277497025376621555085357126458667778908585108684037384726348788039930507514980031256325806564088597584338333147711771302764344427270000815888720214380813609382590936950431773576166048531864825943243444213584740126107537761263117117622444610036351953036406811460786294327120159545049582808027489008864144263095389491841410363501410998576958566037034683515680552318408958075591909997927382088298310287932504202531924823290255401201775074027504867903515296665348432932670705535523607576801259165484644829422157201393696716406749957179541789078598310724377296706892048031467972518068243737839412539641090561332508845605840262509831221882257566271260299242546077074340723182011566433660062675541341257021684190122908165099813904081762822423450083482286740184165285665469604759492753196513907153362389026700205867308902505698315100827982932381964358500523530917802854861958589872143513371515285324700555796950157547890560930574559584641498923889061585134236765545373839826142854994865908814262320166774880889266320399792351538220520010816934356961758236517964882891075149542259521481220739281516143314194174512253930231582890421108227801796568208734646947297877026231000972963177158644816614515965215137353368447050685489188304339006486467153984755985521406701929282059021356182525664635899840088695672699547027479078662689258597843696026064212724246288746207327937617445835858880200279331300866198325031645851255160014971899001816921992504555080246218345544634197150501497804899598535425986548508634241406641717596444442329684112374619863601495842347889539497620963152814655606349249851921205368742143982469128704368482871236783808271957634076704720956221522652823146963520616268148087698887498085949325210862921528626213519795448365491895127152509355574068454021052349831576553576165902031344194818876068381473445059299854777933074483128092913914110079639255631715014303894056849361908292917549613984803177028457132733475354339560115134896435797344580830440797518182728894509446621486570114366268698168480438628282055015884575490695485200535527950533531562742697751583689786135274923472471773765529022674489259996110596038371961172131991211826828960912979672881687421118697500728494210478923529155748315990922180937174485971387941267831333388829960482556881718719155110395019760357482241989431943402632215975270482382798806346063686454765462937924833448118978511649498006299994097005898434162665400021289890420282475372247867081025885764547378507858166155201645529069897773384136687416622096158037250500834728938862841801118460923814508336478411075595650643955978729640280045255303478498599577526257703471430655384828671700436774339909053801070276318224869943683229107475132310938024494608045319603339568486049167020113414616478091182798793574906132109129760654725066555621876223643608726182315106989431659648624303120012465030227938398661481571897534940031181178107822520291820126606542262339993550675931409443309314402036206633674383848809951423661868281591025946739155898548416581305032820560438869016682042414564881876666727514304971000815869641415760990430943738250630421747651780980788885807903041043232485501954879583131234402497562889763872889663020851385367348776022474412739404274824929049847802654695035027907898417072389633523245816593313419226174188026737375325032254324378141503196454033511531120386982071616769519630308571837275741101009980327932438348958551393484920873017995706773023031570938102668553556133420051759787410679138573546593509820198085943113494588284947407466346898809471375981235391691609637798586199284736329656622226159432668666971065694701683842340298722267919910072669286792650927960174093748919886872237401837038951305041622834835511647394497579180110678883647058375976812236300176204694337051269426350916709887688349452852997814220458709500315194874203896740530148984236020988829895246097088592808601830219005405810524029521377511319239035007015661121378827865704647315372171400179046572335638533201206064032848533254778631857849851636948066752406582111298050452302404873291946909770920238000788234117944015737406861132344363665116486464636683034047963411284438919327624537667462525322535200957285708930755291129308039401816161379364600650687287035108414598605697620681913862892383712797210060140967949467288442599105137369443260681029731527666287950030534390401415593592669341866105189675034503722369596354221660400349305041370114044138259726231302765554047058100791201580872428611247207804029856546732898473860132980963905973990795074887182681155161549959868186358917719393636172084984640802748718289562309798431236589503297547955531170575660216129406425173720712473976233595655692547597145189072942998455741829625600702672085115093007381376703590004227264464059770157166463386493773302468777733341576183980653065954502410901678565865632446611823113331161679731459274433718444120045948727848978013676636627815163883002858264318994057009555667942848365791292750587980217561814587225795438333405583270188242377999978191952088382507898346599658449434472840327901178742501787237077763185831667707862042593567228343560720697824240162598055812697168360044963291471936233260639604837545417923422685198687961646819158229604376505950685932653542248793994671547294229734260796870843382715276234230286876155663583431297966850497735328692247492000965944349573990323828711697088937642982701153853565866556484820741270479747778329264814539469919142787344638925977483808739110791038728154951473438349378526763230005482035378073015338767800862167121326403767040067633815334972238170372375186545004519986503357509575303092369334874455849121883336941958019746619294312126562888444374693464113590869167821767724344027149658333545974862115932690230907722496979312366646786829662776766217292189367851913573275546176831761220913955437072375396320178430119193071323044323835246034876523120323923640833782040285542187162998425902469465852805828068602319224719909076481325920190031435588548345879358340650182390982613518220156883034852458822963737278780814286117666789161379132123488535445722047581746022629295792424280751932241450392431299107537757767579916535943797332551357414703226419970205019521152945603614760662574211446721152513470810673960934096380951824174308949624848537324276899333606924239227295647847960630374343801412655946515915316913028951442080861006245122259384907140454159418834786273135540213095453173731479698866667573731306981766195300661831893862702495919786677296755140798583369828774928597734930567052216413858572476033190904154714817762107570672778458099381818868945874506425304453400286014393810386147184053519414316830055018417317339592490354523268747465330303973789947386684868172145774208357639279122409190204732856949779235973698806917365533905882234182750202611170864714664352120643290629921114654296575472342906292966502097773010778622076006342618585415493537386743572480936690150320563110064280223489089721227112012035423228440642623739294403282458675745412037879820651526148296741533019115621566726113075210602624355454461453460408443319964934705962019789115452350402301833510912650286815605844748651904665552541066090808166165964554806090420527473627038957758104105234856725773204551797898997473703540135575741853136707553055568121357302183052106684176899684944762386581475288012252193129882174566381629140002685650667377455861077032037439586880670676762119776035403565859194257466560983918711733626739790778710353069019891203994257522820980348355988573132147437034647485628528015602931166719443277635548279697512181488824924738049966586449616394455659648437567513716931255725122361803929399563870514514772860153956136146330894824523687275657799203962204599375767901076973007289066588691665559013825128294957836295703787157603777557865333462757548781216009658445880750965534714755488776165944583803272026679996518035991121841601349771808150778608081881573939941807084842044608437105969458600297212634991696693896559996196841112776821405265313225466784446753207236291802648867426873007829521347945015079922657194424492229865589060802901864631364151368499407300908648716153442773957306749022502078672421958653057111437663437166581664942122131205632631141377105736854020672345398183177315150972465509537955859143902987996370100590685141014736090149550944032984594761352059958029966185958871499356705507572262218586455005423098608261938963854043224781163512520493940523738930926775069969275881575481084613661537570042559199820190874692343135734448825124268411170191763015290719088810868877558885107327881634222516580482811086527722657660040313308642762369038772802024041204169695397135135938311668933404134071950107910599827220637743900626320903041477889524784076782552479572119411118331689039443519745684648734489556204378314912396097431263656914231325250736523392320093315712083229433588301037516609138135494690850348112401869893950961112426674667104974472000244358147864234565214373046870984071085301352442586189575566284148747792168971176936430388766256273723777674753858616936592480915234224335456632873656614462475777187190771795043233751790525553735009383116556741010451588211713539595429581626131097411997937387968532908353533901979431241860073371664847799745695326130433239361561636756512338315168358561122174238067741437296727054423126800339799847556986391513053972332131867820144529029761993368498136188376791546200088780191403764641923506929493323366378688899544657578253221151137307959375026393448644800605505413754346572084493927581975308309222392008521757615969809283074733090245966230111644134826192401239783699777008635082669328905926610028639566672493578576241692914117254866664334408360282521349520383489981629801412152611621935509902259642261828384712829764113668220279894487505511015744647096524087986764002455553908352222854090235134065994882740165807881539549820229681346186543459274263248527543551189805836263244938653332159871534025994415071804495221241284650861430232173281215122787915562384126766070808038106062341181086193787143902564242278767104247783873156953560862126776871017843492622651759794790995690125369511321255275279306044844526342595108725007725888651610131803410418826543122967353657333209633407660438479056993181433614247742304847229477657912645418136358965714902846633920984722783148343074282463796623977345036078727512698891334915958126716716932278434813060761853485095115613873445579935019534996773771017009780321637379674074973795436265356575021871488077637347350105498869844589516666284244926833444097276437753895654122940281715711050704447247454007722078646300774712583547049826572834385033519928267855040737800176419819459685308696611438559891715072081337522066937646670131661198176819336858222922898346827407688846145962256682417819732407944692544133553003843325886043240153111318936609986365564552610117880737083826590855433381493095741879270849580062207302409467963676146538406526033275720196050772967328233284067078939654412132668281334268149019482339819911602979756966526285910627608101798117604607137855552038054020205485994993794100024822848558327664106400285749242347033252510186035399744503925551821629289068409954315910432316443882954656517501746038629492760058764526988906683197226318322206559913710221551946424462605596809764457411213028166195366266153467878908711564585851153991069340366306581408865855577124016787214906193961309483563329873779242802359139349366841214266537271081319687731139865115639667139920463090685996987293172017016469857340110560310598329780580676175349419078276209946990090663928482338232203163493455028383322769792870913003299170853778684998196376982533337473725867289108303520632639038974369038935810984740167867121068685127623663608996099005103816149919834778361007324976248635857154951386829484803244106067593538847209226815539303758163261404037677328254991714532833096758932473495330234540653518444903463885314640196520645234780472530355333926213686767685890054479385037894470347643363017808626611042325656384603989709068294098709146868282003625171134364300892161155151073677593569699188428470316430556995029961823938365269026743406622127192881330926669276043507944135503673060768095901295720588719889012943671428076526647449231541121179124397440631751217991053901437869653678378582618501257092957648070744255208360446614301624375912492616904635047294086658790851200261309658695054271478025337903664394644116422970213008678523015309223401514174266823142237657289393809399297132029859346126847006760349974641631677398507489236646449553564744220148873696951078457935488070560248174058858592378419568615832783563414087201439663174642133025321355712221629967225882998608116468278053282147529357459878934604991977085029653969470946722870189543584599672825259083894367812032523480949504149682222435376300097190522487228614964945740592712763176705136395247299936195000373134115314320136750561290102788500892677972564354188866419744451603087637991008690703052188600000271839648683205144180004215192694969535140733911029676111195459719540849450867280366915606028007633649739483795467433055742155746478352114325811826962172694434234957039639268676256707030339044331456123839475866242273452779633706783928609385933646488445289443526803523038057295756858249362601937069434465439332824874104118751564195574172884540766386099620756919661953022803834728578219932101044834126267304722733187012752232188207239315449613008764814696844624413145121604249918846391205091965323376269153012116877387341779754822925130006437790691937623762503553915765283143322180851623104550485806919165977586922985221006167348034796925302687226956416955200358436548259104106725750086503452351757495393475214195254908120517780130377459516870150922898869883023537887681238260808355467369153024448217478958494850532234028792839182538285725503930669762014100618667792770739151411723672353723521885576374189693605404040055112068216269139096982104467158002321159987588262547712023110205294333212482729782537373017658889084024821738083516009040832860068206913810830222937574403835159956969154786870342169573555894952331350138117429378478602446548577969485232595456111268804603890266960321563764533720312779628330999457031848888385571488548356505377275858132296130933277607444143987841356314623809648937638563232866473006175917852193193074779360843577440857536207075308216410793534494032702388317565234521717860072714212395545357867376579506004631333279526045812437186199871508633511732727185107757543214338628993212390444008387533665208911745648840361880600957996109529639363579461878963850577380247430858554796908283053858851985530880256411488241415859043448181909935589523616742836446383315714333259870730316962028681484329063841905960963974692266229732430739173510192676383083415932662348152805737452098179261038268144465569141259365662460484653844089054084898653551436645662661798505224339096729037408548286086677183935511345024764739273273311123499565825255206529076367861854051791126962975890859006932251935153148593873706253536504742988576670203728633648411078032416619777941927884200189492485695543466987181435644078887720778692932091247778707159011189215403346754619240041486706182148413108906499070601392833429074279658481395745388806461589879167224734262178938959455462102453297507538105616576050901605486250483689442932310566948135789741165754677605389886566048249468126767132887385032629752143726185891177580683221555729518470753825601612317852412998806902088448151141719939940337563264500729179549539627403111932454904220226294505738053146595782724421888450757913543862071580669546223225643300002611838547368866528749968951228820981657264537561192173726937622528244605815022909707117476569515891257755454375010164841338127192295968134343071632952303927523043007199002661984397494028587885143708183734300095395546780816935690323847910237793159778043187428226128477598526455543386931696657101197625000916791183142828151514266906247928122939244117760001170157729888877234475412502186450238339147116343487440758543404894938241253768981940313795794699758033007305306642121224812159135411867406163895720470553426205839826362163822884008137628575431246698499892407827000024380461352438860399644143048521218658748684552579106778532743732674659388236033201128669120367811016705834575365730809442276067493235550725963494406380898592209682315853361044335162257444740684967551783054573323389918770980349790400801550259895262450442760563108341030911735592205782245849412759358613288015206238592174358178515011610042118511235581121031329078155039899372652995734495239180119223906803785972960929500852077034262789140388812225654649690723279599260453534060642132259737436516076194287316204679880856539320313473501945413589655786427531818166757037876155211500475009757737384916143760846961355736598164592572568298861449147071343888509305780315764160369843117237041759201357838537042196424750204692465423625447961243874343614461393943302339783186570760722696322805480054825550282813038155259781170027649261277653049005838517665341945590259520436090642824359374973068133632007823849221550202029112143881666042649449956029609137742139221029417660865197858634387783676918550354552840442837018507993339761324906866470614362658022903284739686135986410327864749706632985340567335435629747794967400800017448158427304736082844251080323331770516735016747242162879630322804836130543329802510821666783102540454434672643940801096698763135509762728154801135659560337789661551161137096013011431791849480127886586260388369026185744470150649007900084892614411042165030782515595562799040383736847488331954768730557205515441383202379191991392826716494858001968132051652432567934859063400115135186082275659712548600836153831716512952837702713220845948633260302645677032830347278035095522904763766857014025105588184645459646988737257072150936462911760141046719890977033593128984535867788513596620499921441443688585832640371876584953626646328238163056185231263791168481783027690676655203685626277005594011050225148342242250008868031525575093853500909617409010832950626193996315321621420609060797834731738348788509036579162619485793587032374881912694028982276108022225443918345400120882564035436410255477652611494824978261220241277494929008495484496648339131015984398464995888923178484344370621396245008818153695272225800569501129731955987077521666338756782260179326154568201633439254579246195830954936337841259166459284117408205459488456387716461647410585003300129049892793820520875221830121432160492699074368719450760221247925937426521666129707505559631408731624646258187724549710610263824782051062447261658966290801675205260471961450793116527990928550603090644848086436568794041841870666921034207175570570930201484441796597200083717585033045222430779798680659422660217417584159843321879092602742346715293505964424173848039439269857977268039290616450575836077636054964387182194780318254336586686718118214994817604589427847405009529174379220742168774697415670143742867457335785566547186835167333813522214078393252789123352255233656755337259199004529068739176714024112175762888802071663676557930793557336333604647003582188642191285014925327891079260317459645095184878493899573146156019352388068688077735871443381494362916239542083436716428433198277769849514070179127603123988778813436091921202158824958460872801234607868712618284757105869858920154059400204258027091699378423865023124116275040415257074565795129724095982720396436766648566611502229553725895864540695107734849393015532461217937283189176952580108648158928101757587515817214230966616259893343336671516568872896800240619336557789521877158109756519278052588785385057568772259959649941135423558838822333537461193447386372537532532153663290234444469897937306309460026451151894578119093019010636300424089902440097198878572125427300532458594990272965165991299771488826696933029243269335922639163142160606561546149213065764413922116360539018457704982434801197078975298019802641099373414874547399642681882962555134349760043245661660195292246206904530108541116074246307772961159852225011635957639848803126412797775154984986225876586915918273389297638061225007300444993168927602278262381384807533725664119641567108154601386334639927844293285388023116607673734278403147298253252603997163102334952321223571045374513165818819250744126721160521681470586197610927260397802060827574295824131533236985160536998285396561899799843095581436545634045431097915063507320154524930593785941593106119753491127838935482217789875584168446926576059357415623730248926531481701307270301570257113052527859191588460267430754700725256828116700659554522242747553505859345680640663024546917177821162355415385517190360620932433728656700925212803116682426043163917041936520089488037924206466950420304280177785678854921574930432014346482639745693962407201892344919491855253898892425234439002637919122417402920664374283232739801258422638897401630982103912283295704596395398816158543347745566230751437099047639892876941059215887865053309393483359553854353705943150746038183046354661931238169242611563109120929602775349817873590871661791924216989147199252309324896815860641191442606950096176809870745295120482668411766536884193728605643079404113809588382818157707703597496830939998715036257094467359600805749593987675288975974027585741617911063085541924063557941375675589637490612760629594284394592394604246715827293758247652102099501871351451999691846280646474586476535072926115612423599569304541617981014339763097969006263084876940613498289466885206118283579619692704295164719221507006088389362319252427323107606148337611421912812224639776238814097251820417699765621715394584049737856910055158272070915397603601773222234800115982075215875387398855754264202908259282660638050077019949357095237112014981039737943889690982148752725095701489138671722361556343249641190144426068483051263930641491236168632495745906558277883197723652815179830002247033823236680566200727329318912646555907768020261080159879401356639527500940202452569177581025509947311784826239015824993365995981743223935129244935284991475196391290715815483185012101213862049021993072446286737885043328383361682634402295656081952694473583197164019804336973666549514712991445595856066879761837489148010995182143821666700804399339972490940928313888618083442473790056325634639535392669115676411691881906543905751266568843058191967052658107945441325098843070447223046465212427688917793148842834633626045707392202370763649271143143903987097795721930015380212290318776032604534300554728968118172343072941275402768897356497944492819612897522748675789316045218724001377577933444195533581689336856154060798329164259989053956959911296488608498521263585962592800908888558003079441552675985868547428874114368140558382231923999013018652613438661639880714690965995018992652892430608658644056266276108817257436629248360646293196049460459696564891036318364000578668290959532348664506724714684167116964364797687283443118827739897161845766510688268305892739871996118718486838167552393657108127732365877976801173831171317144029930877160152246838407582325762609267377920368565402943484819331568995221689913863654226775300025674894443385234702700852068185516850505187654221286676927881311704092774465710486210104022225874684083030934655513722716662894968063805706191752870024532163275315181600608420837260394233066690075234796948944270697892004835623120112482660766201418262962293117179966315215570631281947961676533149960837368893435063111602160504547330478161357650632897952756086783279396969672062517981628088224153087092474641000834121277488498296416032012704530908818110005473916211186073664372913812815113054933227557554636682197327204475694732163799009079874915837871644662615242847786568802101993935200488042008760242058791268816750792005759127912247471709285724663565363268366178902513715271486577281029783328155512626468788625855964138974528211965999439574292451095562824491246187154419291098439653139116530225905609668179488679390370107717281547284297378467668943973684850076072248814779657441452182916669489012004371581137642618101383366361757428003240759210429731939057337451081933765741479895553760118397297428503311586466557293450649770322409012190529130908868997151124086266357852097293865893831155976331289568048760760097883603608772123959016390655478838929604252669812130193733824064592186311736100434640493428914414946834934654838314687513820118685488241619122079823190303745668744661410887431081445062763730721296112347810747655821916780575975954205895280817391053428448258716934400066940816807988335569107890500614664507461311970814836713751079101630157694064635267820075928747506962670199923315995994604309265831803815479336179316876060870830985138556970759871597696542107580339588709287285102719259828703840319468955816366153084265942018365643982942569862635112928010592581221208503654054553042715264417960444254538911574696146598630369887384600649650400452957771232403682685787905106143862732572653152856888545416597635001438328501144984743737662651599740829135547481888434253128379351132606246776955017661084800924954711449500881660115318175534867290099353741824150591971265660809643635225651507066366925738324857564312961499724725948228929162233677825763752536979641625193195123378149080018845740917913893189277272252411474242820942350343833647045861756329382593486156163230426205819693666483816881929960158985264138504258821159958130436090217081752520135971561609378284644395272688489431225886933839575050113757733259547112536800718965470740519339216345132677508450185120473631655762183641532036500667902796085356149169710268182018845101463891087070506896700903768599888720512336208555155419991592328046474289866188508135891096897911383773087125832649819503109126714135327541002184934837991738347941213469714625439136443716860516568927848242227141904321166304876084041893797463542358308270689814936222128080058223519732284461941653978918313055536858332778649240066166961463800906110021396786846345673927459113831921520257829209425658373879743920755028937750882619655728154756555969246269332253111170011877292749126214995063299233462010744020587869452961422038353756198771852918167028180849406056919866523783946253922603339157286698498612799990130154420262982468350453305747040716155947349777243292509846568637146183639458469825997185644764792651674354684819009416379962862570713636023149739707791675580444121426745068696147171128974482373039107827764546607723608543384624649979313808728321598784803078861378136529578460890738654274121846057159159111844240105971846717892758219427589611660614095907207552928942118845440898109891111648727278358979838023315334400893601422020951463650681982784595457526044741675953560292762406859011691978155812256076823044988806536636589374003177875334700003603862564902949283125850994312335859370829935645428166769727153754502925427445846164897765847823608555758061630650661108803151894138557001140766869332820473264827741876621105470627175249100113073233834250036718572403869070128760421940856741952821838655336524061372255098290688787470650057800985417937011144217039037962654113393113051787098672075147620358794673885158023463310466039662402547223399009853928242450215897832940165023084412260818596529988952944967590035899781679468702587445150643577763730424542883152742091367321496814419671447699988444678453404178995897234898378242871765380365969597471943280244388965417278305198261575239912517308314932349815380461279534060285793868582290103339103539176431275075996139689766417259144212363827810793375910191655447947196787714272723434707930586066776104243111362856225147888123426457188574625715387480616392593072652515368517018723978613023205889628427640198822174910848835616845277603598608486948597958684084360790965969037281579683162473962337050160871683367239512334648717231475075733467063326479077401681897733551792570185668573980657460427702007750628685016128937792663788603873881266356640927140538877355841550100298956398415342688894498477881310541062349575565539205007463082202924904271496279119817440810683921871448176753085630643415873109406877995787505982781999602075411844309231116726338007647196596483498498463816786045645889641470134054154864801525890371456564407257369342330896093972402625721955375697665278974871158901819465585469539685033939327635624864949254976279252834816008843491046486775910170814013335583877635594029552705188363344566730481044246422417730791975438928235530192450138949742940500734996561215836014249757669861224115522330019326484746887423882394543247565492533881772396050524445929577144071852256240119392234159082567239056279831422885643137076554799980736073759512147978355411354340743056154318982365082565053009918410688603536005724890286494858112464529699078646450550246998311182093222922107928206030108189265553744573610097416310667854036596873888705464025803104179864697723182000521000912338148930138338167846754687517646929273440841658919658151091145190119579852285162814780817377552038340767627218374830866920786160741409036636187457963869177956585811574230280794162346245181683208387219007185767250933294485148176269792631266018151328124345509978378871991061965083571669126696407543230727992012854527782100716756059668311265997588791049914149564035134556479842908140314425950599006541205610195215619941672280142079337469255303904277623694680534812042844099705270559217206395916709453059141185012353060295863481537016299229359777089569403714839876780907763861351552054741832310274137469825337665180335233637238535137698277985438942023122696547420544039238025079974170167628431614513601036962442850786121907841738806901120254867165080841108565747604009469109488073418647566168546958390119637971499340700550621465243141356944380539763139690351231208666100690944305974654018753851156300703571957776440295899421655246056299250132407700666010612476947099502979912931207956505735613979193121710383334824692899032076809831253091759040382709528390307670577031086548583911289962507094653950970725372848150604227882494531951924507325507895687062294501087939056231349266174517386316675354606429285181498222068127874172909638720845756740747017687813608594175631269557534712139790074319653489362545073866582864780961174753949468099198596647998906756854278125208744498407251595895307960349168942040239656321835802798673416500070824190264223862992580154548428977318336077145101515420133039057709424337707926839194421632186191758867511187187983984415630064514257541019919666946774953754334105143306864043433729079230885369298881992569555783393890381080730103239836324600900264106533512135637308864843544851998036673548343295152573988656360133094130035024492260286892719483938262817597115838940030611492995692105944675116251159502847848144010246563612041782340821605643655402309922100645876498008527057047349011750677193983810281340209581897105957739418397911839217122261705983733542321740201345047350625870675951755811837653335528181486522875894345462379319130463502792323583900697815792264760456728195094045683269274813861569640991306100975969310964604266431723730337605373534898796758624661584281138997743123479441639948833383745133062434282253432211767717994863949622226178981745114171656997907752640818534595686700919199785304885843789201140355471932784732347573022149500117387304409095088866831658484768595984699022362392127165242214738344633977228443734187658121164553119156446079629318536342983269938691147527334577840184604684536520557393744500949314255773663203685075871706313518725958885273175777297303915546021823052784986556931848988197700011241571625670178850804977256345302386680347402817203225592188559948356518538803945912655016135543509610169467184772862047525900941230149068345455842884831197431233966648061636445083258869030549619523495428722071970753155202282243729069237391574048050188969280936887212512887111837789505954243058827053631821878174451832392203133317679679278333870239404331762309603758567970381362866157205062363968263326985350767510980236481030008639313680100887889906726347305792556027924994439192609427149739320459034627954839486030155170702402571865792605416737572589995429571136668445566589302785545483567252055535189461651305335179238447526457645834441932385875933924621800014530264497574716936827561386189356473484592204311694829827638850186766452462698876561232020242366222862230915753715301083617964982704912666932563123115998055541928621359210309886886588116354699696234115555225540735290876894550668975808939671522922154233498359365967266552426656038398474208139591256932615137972754702827879062526934699431996887356251269317139863536986088735420671264799196480288109776840560125226634821377603509824128024397335114287557310302104307982762393763273898595037724439255142475308077915061813348584693907086015646206887944050162371599040126913106298130679598511489624963568952930084021620262389367020924779981065393336351559905661441718443313154383726966332573512994045999708133900511008987719980572971330054938908661142032865524565468149461803130857715262214606223284621920263057214247014182303200004628519238658849231281032063601132662262477390085464460350932792445852925951556584264751745801619958337880841549104671609452770719531080699371324370536344346273956636073263769417365255557007506259820225327249035328884389596646925111716571786600440618803368235679698827903411778857258681563913765243625739301378783020442734279333833055165237920689811367842888192000393295684529252947142375162473957962428610958432720558031750707226745877691567643168455601514676133532723313040237841215321749961486503832712453253079693763805100390543544865848359889154103037970577627127917725683572257471895520455618695823325419074499145332318171860680065391844141585260864829114920363408241033844635359027405187331340448377556125846739143297107897817303389943683451722295046293847774411601890620017744701828643962081000211873440190501624623458356515339234947644543635553104791287525989448684356775740338057773827941973785399031659661914589667231722178164327989631549633047279082568226580444526908249665917514170891492992186869202723103936181851537318017976307296502498545871613104186157378324034057258920132682593386719653271402436384304027560150056318615303558484990645191171279348425532551784813064572422997294731440320152291360611250101077631513477883734380181290536238130982986069784777985502143997590253713815554999835804336357812727262586603226221685108050947678335277041875275075647439720985194816103809264272560939669017742768563016226397918291310117260103786109277343880402914005374137630235708785856388738657827265469759598215779955441334728431473400601260016410828988753817385251029006527985009941978654258294022404207292373487126202354630714194081097832723989568093502168610012831386406785976669768663241215834672156300577681271246765934232436047741863635546397471650555199718363156092841300403972172050346372702688871699464739963339673354152782554757882531608288526047207978475040359486645062327974937573171419808970004410705442258977626874486692626133908476016724364574571484472069160346265660528187645395809252330757291817216435235139457293244378010762664775092614499936631705619240741401317928016547085434356739348817540321716551968634658742498315714963037304094329538371157173084761110538691831116611949071746674577472097394997130818717022898981725639786147488085377390795401743853752580950981441026176768483613085667026086382699135175565256101039675905294409057508100494990061353275878637933273002246093144060495361744455049765629124858046517639546328270564651261819796598388297505105203407214799736612469486742163029374159583922747026238693967904396182629811286789514612575592430876415071979220545993429508647688123513509666382199614136265242309001948611326707770933314111352262919105413945375977491554953499595652283722119254970774379038003613463183221922148565589698059194801615823601250943681833620223431255051416768808583623920827953315543107153820495983361317727355317264386049559211771342317492865571157719093862449812723704120775008337146878907384988478643266597957259005312746857767829015806510986116413170882440941768248602454308987695913870419503941466504894546528771842531633029865065126224453502488864023989045081787514901014293261185465380651816621714355904826016043784420921235162305979873097470401372931763212666592530815028170033745941016972175574123940848724013522393376691840373525091260187403250201397513766516462564670418969658522082140891088043616629939149167476837612694241769756048228543475461002583079787468818592482695549088378219992674692729034209359634978573165110054883446180226766757960339968624799580737994177626069018864797208997434234672453113586932131478790796132997859672318451834148477360450934813491844868169507364226800614980401634139072691303215401427947724882510285909405970877666623870632655185381160814257485458704593780898949324459699582460509644181508733538376497863165418283780317673640432854435032233155287009681259302767141446455459315748185063474390671913669998362737974014943933248765689075258889135169077955081501468692413368682260979907317922268669643497481297919580258910565391842900379804271436985772156038421653363851793983202162280958234203656962823324485602165594467730084252854889931805327236715174231492339408421683894205986813974791488098649242683091805692626851941007711828627697558207730717498829610789990321529386094947426481774094977316816296789269687701453507207914098100585424913640911239977279613038780106793768432913150021436069244799883364176666671480054825720690968252211713209864983342776705926005891450040759099369440775852638241772409170253103035180117963312382732924485580921252924797918797414839534752943510389876272298790487760346602321222411383069106922246987085818832486953891146160269074836951251512863854015019218778402873152951405099509041755870325486462333513429071729847496794027073947789612331794126648046243758516631616512088935512058925110393385059739583607425863970483296366960527424100304070622267741942373238297693919981553713727610417005060760944839991165328897226950835687461991972347712162181988776655492013836400302209020740524399757401827764654564019850110696281797585377486351444982157963240995641077144862165525475031236369015442107788390968786271318672100187530328310076194819122303058720105551677734286856948367852364479308755522265534965995074110514562175671036921672286359066183614033733352265541489735175851560494391448495798713541450254086493097277435057109594513911486933001473063238620607426377836543283983770749779430810715974078991779239065599468956588619775820111939010944740167283551653145092056928250022888805760598341657806550101553458012475329280342315103521693511708123246777339697292089564818854910543014913686504540651255806212455836921145143935025896148803516020044358420793144932210628808537068608407569623482725759366907511879599502253532833349389883598512239721709530559351671985969661851120219494448062314862800702333954279969136684682894304467924044100148293539217507157847863912284137349778969149173044669521068729858981270326676144996236273256135428163216977089445796304033134976128462979202421696853723958430676443631837985633947733078063692003824356021219655945481932318418757769696213138219519881263243375049696105481753370849289796724053623755028029901122476150985551378164916921731233873776963732093217177504002398561821375247910668629062646284633894156712734925523098668564080964823924600822940306495925905735142001641322217666746902338939745941553314317846923148867058810049873126731731850934842447799984332305204070005880608524208697705457397598932875507771328266324949434212936884995857535055273770097666349190866588168690773261094559476746389368685883477382706817940984461076199070440955095217099139541498298420410748309215962636095098582642174501318612698408627723237451767260626095942665957178281231326804358922835614001425731830700878420548047697126685777895980832010059779247278782716650506941955318468343514693154076659168006230660131031185572955090583324192096661626601440644479514339828685328718241294281515582076938713624963822069342570207676979290353594024196891030958456898585676746614201663451519623667741660346423094399874535971706929622939990349873500352807222822729563136638328624255335705139249047956172162415949372073929256830096144117493317721213919418665816321997445677410136113557672406008316180639687378214736643010237929250930130319130391985269553852335838577702775907612258566016821892376544692050153523532632757224390665305913008478944072772299141223123870492699002633790003216807620613910601909612294560888662684397683025348358207406178990429461313925965449036310886975135601554791192485994081172142425831545533232447408655587597229070172135101847771217564289280988869958803139748879503049775934018292532049858055424012936921117231661695191677969673381784602897478365400816271168277664201647356003637242372821806836295068129519026769314872383450533427242372378649138338843419080821331649917345369324370384388632477932164986177738292145254045671296815823405113115334353168201760902872217172935142038994530463104488246774618690294173061479111360738330305202368748534209396911308423369959572833979572282918292912698859990146339268544641492695167357837494050102794139723465088514026446019274617806675704467342839641697092540150098693206909762913292316468862941420184558927079646976767912953325391175935377095193199358335490128080108434343785649379682884328884530755023254906873596386412094287498663763296085620706473541889649717674311555300188505528217532742621700946405595576889444183912850525028862347618534221936160677808922599772976462797531978402620325688064502716971835057599961169447228480811550617918834440706259318964591672214225770909571060346364584168220741957739601014727664638093347038198091300074569772243128061250056989947563397727878547546326410147811291216584946871965057053507436208497160791279104687595260853239547443704744233348231505414248478371595185085479599870958979376110247055241072567516134937622597706387931742358624697797988064993988674234248569456543330055570027313543563634624872085156838443508477465260907827444506670237356040734443131426676020387155993604978659048955652095040165578254769367134465217770506137332499956017491291152248188954980959306085985477137152336855780347170298437098174384100939820940486896610179504678098092622117025016623853632586002182740965059472085699130667770438284649366530318062052150229857169027988860151670674791081449013655656129484535162271528784745620101242851485881608474844206503106064455021539022645437624308853877695257746463011353872776981926639130160986443752905996364990770241718079246895839853326884227058675100825049959515738614179050923241054578057493484162409528217985221500045364451976511761242981722879902915459176906575393855266945311591442091772004284021409817303686123143637129477754278521066288872286521806474639126847902769866223558543011627515395104275665975420964428265793492700540185162219187467316713517555965006309793652075600744095632448437006206436166045968648327260838350881525930482095459575230427600553775599419672803975415263959609351909320792526155851047102046275124499679392322238739092037898388311315537968711850140974928743221878479391317124249690101925046489346594699497196516225057662789779478923484527130870507696973960642883035521374692280276923142347222939932486940369809411948960903999330335725121020868900204954533138371508089936614306949626518023546065076996184705479095803387749144348786103003799340447476002591184499408857316319592984882340781755601043846881935833051118569722910561991727076838304105913351440118927083717918911782337178446091977156158476120172472917998053789956540229156820342346506653609221587026395881172762661308946072802368160245246047885300696945761682873232971486991651822031761679942403321723641532240753396730050597328044888569002763191437061474455033757217016432285432429379863014561821027215460929610753878786498375310094702509309622360837238291269175634599340846162744418760190965142489058341159406361317437394014601385154458123291712114777888696636637051433423019022318840078603903010297107349980604899278177432372746165370396785158105033509985414970585953590858384268701778004226162988671785852975615152255798171156799391302883625945546788736745024026912025981044262916167307324409451839061124694907714616919182087824482270842419923171083160091412918067812846358227106596141850890784265152920034043759049883082854690369755782748556954502730674389900875124081934843172225354939999911657967045924412904553215836349409598921004263054134017214873164413187017508452168389128316500588256171071643510301562160997587646351448516517758874084965394106097622188883546779338167801760682782881351947888796477947570261185531161939336383299820766007061868772678353602863774253749028359659932497541835243737852333061824297116881938930738654696893620714825076262193925238103783636838081777297822950672666731783974306318009672423091921880640367290408125563870171344986048106903634601755664103476064464617838413811744586983923635725395172350674294053871188135075703007813824506974785366415706710779171183252540926964299775132366373817600909829397209953653020198814958191181526721994014049569289969709761004387525431032560290023467946162319163583377147026696697872536434404234201707535686903463733058230682801653930009370569526408204051718249239534093426729085131086288224037627773927566358599754813082631581770610316077850885489794713290388317568782597533757703212964301483277020714109857119721691586628663174337722626519077952389075811344078527464839563956670257199125837997367655148107850897272613582129830521702967053421535338656896402309357541313457708387503160663509845384634031505119249992088188636444493769925997349963339587005298675883251830485032737925585490810876914283649989732470464788868012755362201908327472268276361026297790896036739202759834557672633416460524544764634208138075393958481141836340365737008624589143436857043881199766402631807870592183262246323379611875063258384995943082602269215307966312377430028194190708122721945444148029829787056088702652330840877590817936762077657658453106159392372200983325231001238791729791762360924375909992383649246069987555715805521162177783354423314098842461988787744636459724062438946227731788579349361886283750464996728174392005005747408098220255639245362351666272183519933150678268549630134780672157776675227255554494070143899154425067601982281536895734543510881067308978784956438953634132954486686719482337413952876660856824824203071074890790105007153128400858718594208205219927178494222537598473210617679438002524753571249995533256375486390835473747232007973268124491694164176436079308495840681595495637210615986034595041601020900476532709638034896080022574536116088981168340402090741603864135614029209000641652625995127027866913425898153637599609913021995758258131947726615682421049415747190091896620188029224164261814645231352768197591356439031519496805157382510979205902480748653332698713441065834485811744364103096007927527169366388351780835716619050555352377238420247524107416663338124775588456243500835626641781392062444946130481882350676105861988977641404772056762593141498575179759505286670063209647079869889708032051098046069523775867150356131925878558294942191809472174317541850136940145503609847781296898335593873674792262449461736625603192811742278936431747453004915885438225506789326811251639042409123811170512038792697478690218899124425616110345793287994384708436391781123598128283328943101133017988978860195830409413068234254279318574884855094446112362721457528709046773297461155667280658701092263200430686417133389601587830265073214189806493525608663601238230560346325221094252990338579560408165805143385707652337502762033321143975391691626742974383155039408665433640019511747300985446850075757153203007169733520631800679021742063436712141939394190557104366317548747826003734030600156341838146220968899479805277144973640837347369962759306009039129683190741537193037418424641445885647605673583029767294915446424265635638118335145134461665270090958955203094053771058012769570418771094844355160607752411601730418350756380716912553868950251661397106772925169965027258318828340445233271717170595055300310804330254976837402262685742207660996207550928246959019185800878854945810809755038075172653128023354601279791096763830177653637681175821325882486800962681920224338359148120525687867979239178105078010428385839234738446332038357543109823539061930547695269678128017348537364283118686542997731650228597439676278177432496559987753162664370927694355639519900548699730837722840307135683048397578729710760930332921565221714749699627833431095413273090481271213105063982451667777468055276031553424153006034266753116424392081177343648112223301305764358900504501625205784834376999721292705222520895854679573417631748961809950726911601409300688848236218728293493068633413745826496173503037836443048936736195557176594419744296348823929284757301292335653566034674877245544010600576566972695369877275094028272358144265745708400387358596010421727304826665800547241233042323726969354326202533684955790397177237145131597316293186509790469899482319887869657401808683688287979326772313609944603216289576616703656594642828472717013387071534052920347502549759285855174644339762883491469637431568482917300947761300297587751911630495098564025224994949625522192853749763472315284507829223676419426859890425440860838921489799580463648762090808076341071477945089032508304148200846200764364514163371083038876915022836340180391395006942414615396387379045613564741784765642109615964532848068986071978684454849031866677515392332475319479244176595308055782917117268171109766963019832391043171764794173255296566186552731998599847280096829001743544031259805197331207360187923718926919510154904285956941687583079348972158442877605004156856271837563663992616144295506772316384814731801575918570808660787296412653375537892072919775047779990973890500605897544430878259696171053162877390821581111151165347845634289040092008610598748836606863927615509697264611118931059513801149406963979720150316286633948071800150149777844407482487939848063848147751563780046458658741839484347743695205902644677354810377991723618294825996857031910931485445637431758565963949834683177020976999984326400666319121555167335265239536777841415725833022880949616070972541877327306672076020503963624629109099916701489701457343129031881354838552629435719048221443454215542199426188502878060978384851800437716535464021247463410819518384627836607249801636873261307322737548451550748969040127038786719713325203783227862607994825613761944740766301264775253038861219210623903733232219201464301253620509685344258681939525210731135701773331185544280911823483849201766027140004322924141864022364712175966176923973444008794172024088563920989053880435419833461541424692210568551922082995031813406392466894279965507147878627976393695674324746864326764082807496731645213390192808568484494867334560431930439504342256604024770872066949130279787361881420994168317962240363703971642474337345755213348799584765168456503091941956945301610491067349476241053574713347687349430627616131511527723092164859672124597404459572865850634362364410502528781115502899294762071824042306952192644027286261777374321340205755749620507107782955350306848336407628862397551788070180234667661136952851876527362454378420202553370499927829847592990412950522281396110005263691603031839880678365635605316407704323837687368727994647216975257454154893075635024547441081815798088747481133665040833433523978413293224840820802946941478479254386268224673887718211117198123670656937199074837194432829659952297782700905946733742073171674828197131058438043127204130385071410382812507959374221028430197349099743988428522514577418223209231489496098784729790861166338138168129988880281059331713346767887508039302305382531530464202827261556559734520917990831418495366166334387766960753976729159902985556004270840122294422852952891035118087969837453533094417760063150915108123678088690983081378659574779406377232241875868674383020899618221447236351895847782590223881937018992016822302241299070352212683296105483571400929144077312568899449424991758907067857180565618925331042827183338023598340525314862062297733206474940595050132298523057845614601216470713793813638755636324916787707246550088886493589781875892146957092430063696154692485328124162444810895090274578105570560643440301558498024157575221314555481353088931113796093206357412757260616217781924438371342739412052162784849115096860088580435733349917987034069192512749464330496206837578489852557533512446644787379252222671455710317266463808865815815500255777717227835980015486650318617161198503175273604800427633381594261113395511648226630329201401061545080356287066253710741627849493052466257044638773258286447488336198662610717869624023812086705150564028894089491689903134695491586775688439071630109035185668697870531495184115333384500655912443762049123200297032567851936102465628084573480010247529168049158536625579535548823026950635732184049492624736312852611476472253903489996359996898770836763300187117108798935189240259138408158638487487513958662132982326107304800335720194984282366180925557256143660660462955725109996630878980707325307039608396822208381501361169628159064889491768823962459286852613611700705313820965300434010397299378669226754243077010703091275613616655702715849599153738205138730350707729728309194097837599113613073873239451126100997441720858982636737890991295327080272511789202135105816671190839980003744713247904558654481844015198891035347246794815000467624536819180006514772960183141750560865585216256251221477503579527990143889145534251690598577607349669934735311167668884113173990983001810910585743028081067763067515107376975870476131892303419015209905952334380274773875778168153674919627438672958435333162614994106680001202373168441077607077467635943581163975348744960591920736388638918934762331628153126366718012784260110040579428963451379377294292919519345903885937793712620961059983489387856824789621364900775934328751644072185322845478067722018851030624781836434729459824603142726270409571901651285367506989063388302132909985010401311962821615674807892816880069827943821143759879094001915135395888410452749470597099111253453000170439806852691448037521652030680410595936427122971986275287984115971590304981403482164673732698174514550970664123134441611612202066209493737310028873941608755439506170856857028034901752878637425572192594018752636209425272771322107693952584835202918226229655241376929577121232315155220163483174970819088192117074571473572298402422473937573936757332838494464512419857665727341696412451427402974921961155304067033454226275696167389647027391235866371243719573940920105607057552560602611112466982644596974161809718309540573776720445424003569232455932043294444718704068776944823131126122366378129821908889811192686041456029574933889276223129389097059277605917687163169924134370382111627151517428844711513765849131593969589789356468181202924871749077026253159486245648727604890135200348632370304093458979217984776653800726971577511278783277455548648252636101631678070110132267238109621917207116584821503146382421389193814694038797013338335466440252825594226071778735667793080654025512920701636938744877895947955840973381597382677892576302648729908160220823151894465757224356253880926288852567741480156291467222904461897607688845837060069905192731672268022973220421496225338391479290316982977338468002450721537795875203399558443255618116892056542923804843437195751403308942539452173421035433041516461147972796291206609036881462580778303177409649298010944063885485888847604145567914266188147631735115892010501156802670871367645002768570379074796071450138098414555108476856795836190120386537254180253903939500883499547350782576283419105850645376680118928316294463514240031028703062689676483408034536361180736690017115856521201084520218829262907021939176212355271546139995667070801020490054606890881900159580255105975195719400058843275873624927208144443504068397167146596300963302571100202381593595407708389678832258124162373122162573167529297302355587277067442842964292835970662205614735091555950036490275904012646233380897689684723391075388376986423821042926517822520217543044433673777700417936803073054171703434195756948152034402043425600809436443213286967125573806271210092882010341042395961489294161856710238181619410779258142212262377935449100800446799116181768111292737668847468002411566821436573548741590705133757720256597091218725627168657865752966413483229547543194738305805054502485595010589235898227610038331480006255820323415544079004990026121253443783974072584947667355212294840885169571147332260744197992899761033243834099049616745067835690505885371724169045131994870341074401744841118948598772498695507278381088362872284618218144798327928076889364933570110477519446783863761267015601463671676540350628053769544972136731075822549864462189428014869631080300713967953211616586033228339257863401642141207802695959127351817407220764764715681657008422108476227910317724900136314699834968260927767680098377378908151169131518774812931354069701703524281849814587183282118262333364214264945993835858374467358291102119664291607692512901798099667149973651023349956898679510303030076859917050860951512426335148392024200357255490441821083348125376272435234493941984975572016460790012001831618510075274264284520481005183105758036645626795437654188181261587019612895130400375214053272100213852993425626582967375971608068229071966739731655540172501444768090755465114151432688323612968242482620501749571137301743093297631464707110890553700865563277427684720502785314618286246425901577290980344571454041189034488564763207389527925927629209345784042894956563765756548492757309222175128588548072357662413214361804279326471240220985669281163115383218877848921118038060984757214196301558044646737751745909513117898472570164585467589118641881388387921709745509953741178440221957989598515610189325419228218814357467523202722142916254698836575484480354509806422703844934698947958348861884595371210749469980113602838962346711405583402410046838884754611339992225862483569268876917968354295212197933989755894750840191252418165162626245603997260884293986788236428425344852216838062197176270581604772752759264796333006634376733686228081168815383390172567039690699754815304237801327361946742984506236187536564749951585324713824419603604098745504311304374389298163461892656573401140617852833722778121473335839189697991535633083957093523771915743007582499613006260079677248020754819234262602996064214912471406190318980215573229350091184022144335449273972246264577941501600651030756428716639607738557568336986818164240913945989106711723397474149779223377942784307109360030876658965944979237840124012946593753000411455423246838072420329615836187863239308666332600127773252838074526015780371386384659429277681993061178400731940254534448432614785307483099263286358365065630895781568094380617698871511447577388988283785064067879283187206129906820327994013526582890420406899585460671269971104123352200897658659444186092416019385510494964739954881130816253177345744288035138360692037315405426132950101003841509309704439134151347671929141011942059887968600561363336709594388562851913303152262628596887193947370450700218261941778978370511278306906018567371233202194342266160047256176043707582310413571959019687989729640015255767037865221030075836843111046189571168308463803612287349135722143998099086881192579697288396141101571227030349893570162705560964762148730086262073045194941688127983878973809856118764145668190503744837336213677983169270588696422918538013199604431430930786516980848407184479048420529893553224612004140321229076562034833336684700330340763295598458626680391880352791244517339314878167639285752608026073123145713339983433932165253403559292832877779134889295797663292698912692924670387718932642038706715474691213679360250640021643968075909061053505492025010748854025296897523993817303487729027939096670121121380564375813276747994541744700031175989105530931859613073123367097315107935541025693943819885257361124615258398274074523566380263206755688511155323191410546867408719125768916051448762335986521553736041658140250139790853232873738887242981287892247597556661590027476910025689678281771841782574571560217826460602660658179944643361408653149521897979037876150120731831220778842794645312335105688752123797852045028598588318634689162494926234121943910718655663194239940730568030005470158590480543747696566661804067597837684248982397224231259832234011727476048579582530413025860663003229268796342729581371516839965817086193159365850382014135563528706800386822866791510670133124830132283611712543642796091068460349439736990186066977330129494251003040162320748579879349799778488592426688142991112884354125785133440098947653572583873072453624864928522770144606826749583399613514742200321713793674320190036760503429339258925903658571351862740433017515439855698687141340851439175926081399250312461551138384619508693754582762445688961224131648456664067514846873345737416561447732953354057652314111846929714751948835275623546027543959205996757988535018612950692603326724511244185724680747055355170722235182285311712272282400406293879964750901969858205939858370781684525470935247331458125483281474659704267724544662601832426096666127353399204300670522392870598595768835752685236868582946332396957222384241277497375651119901849770433496315902667521734181631248496772840102437833963034072254243770850205685601971402536182164633072133965630159288441949849380343902194444973859210468367508475251285699220176245889988711604567263245130934215860892691258611436488765390376484058678810891750492454217118410671651462445551081170337519274475928283426425944619049219529559747869768611198664675369364627079725771894579638881658964851821474307874146307967289267798438606747205697614538714171394700649029826156383271586356559019303935362411425753205432888586422518659735434291817147060284753649640026193897753518029622966364599211861071850420557884764276056570677367172001164849559197202582818700572375620831501354541330564413992725926408400621735563508149234129312990653821927264468518684422545411681694587979521878214850215561608938388328961816424854686076104635406380672134959695220332533094320386692516661195792366860431854631884869706896769361414539371355580375683744833661381222085740530173705045181116166196276612504846047942097695691505599505182107824653728669660495530253340245710243144578495349523829403284999526277455653957883369590645665339717045560120575948371686640387258825621022061891409133469646871346479886832002617594085398712100835817532992622307380980600396136246686593762817982605515492834334845136130510556238963981943450578740442087598924533307619020525094368530226849581443107325535605480090603678422691167481996679773557534108371536813121714689693114096027612695403216033892961442060466546286460590911349782231006811060997392181001477061390573214191272329152613581552640821996905237233194177797857119399823757426774354147723619293836332794037485250003436363723744606486407357068839981382360174799198635515897633619727613315738823561763369179815623400386044585684068834110188183302507379614557375244829551465891865965773024105293581201324289012682744582583616778234175952822492214547071212654462616898684288379393863958418361765485292432232595487427030257807219247187583796883133603553039198258193823357731535285336320063529572349558398329514144299023032005173687515743282953767316909670562147856605226795046189140448919533587779357820171925449871687032844269017437770677207975892205953719774946699540547319214467003365095296451714222085086536610326889793169752407563060352506808097566369520626532017948155827832043624348935175180118141859792982150790613909586298868507878996435687571582696806268268846949945014617340604565298198677258000947616366181915495433508196368678026687214895721529162651830689605075621626525512979668077097615998738350740959477021094445648935065316290988202608201162054893232367224981981198938605310023130284164022061339919195455435582278133722545512770285857676592175736369551222733345991974660717581873162951347261814674989921994538540521725658742161309590633577670678580853660677852601584998235676963543321929209507549001717108557615711043178635211670128326447884525511069243330736754176500603651086502651679900763761843128085597651296564780463215031453212406752097012718817155031592711123966374307233369448290793621352446088450051982063218239925353582797470396393103852188536940594369370568555333491923748969141416922064669271524644908641190747790343027462738500162599018509529548320622422117461567311140213791354037333873798320419123138514749931443620527416600639416362125411938787151133779929535050703087180538997440822656197815011630462664370799254998349199289117652920662106629752657206872287335495166822480904885900346943412306043409305725221334545000949906439500037367501382851120960576485824507545538954723430152141953581048427384506835466103506858202897641565516335792543978629456916614662442064941162590293611824505954002847756191517539906478381793841941406053794588076915711403897462767509938405088629783730006257778842478666611340999329727931700513280327056835397498114263873358301589777962316725839075590307397481899967203894738159470236605879326291934401915172262701358271757942560417162241941032130794110386781646947952156149501655933489494381318380310988570257664115150796861605914320268112031149361160592360815824765086010307659172055349094634051394291471538032472785197191262757828045873488844396400243748517104144773565345145698706948349391409113027472942891921952211098004438308482808041760575444468275552930517884603790307090700427665199932325107983302807854949818352325256610538005601454670089166042086247941882090145125238512156494314146306777001405254707586645925801320300634860466329054609057054482806498558508692269694874556250233229942224244307945273924637315975850806113556522110911734268830691048933556064924028775996828075683811626711242367760149735776630267000560309508930275690570042535310291876186031603333810932050870920056061701330783138396275281110806040038926704627818522050890836174375129736519528230362317000272369996609457373409396274083900034218057793383513557499737986031636430244346559116816188805928450968679189165922763335422431886446165272824232098852165003410618468443908529610006693021967817143088441060228371188238478626556143985804595685341125393720829913378407850366518487663040608385701294004857737892811693844851156576520428155338365052043134689188724314271935030985413978401867836689145799451847292353922536542278696619600034874700002687897761216776896993505970723654574246413123225504150341647644327875196239221809017740067239269550569300477251396918806738387315077255107244676685043711186594756740239289390861777208631877049705317538153794814144050615659508901001980547920193144214609962152460474772386547021414330514165370248362161881122555321890933113053312116619559249504270999189664540104498569415702050551698696959014890409500208611404829233954276423659208368367808864873198235197900564954743931475057965101694580943772199723347515116044596641383458191141221668190127324420515955399002370500864343181850078519514360579704107162708811856595744835295812682842411459535388288350575857591509034474569081630827212282025508219713558685748861803425140327142500533290894517918114832622938920084378836576181555341091328950800617623109947668482272661490238034388908080214936315924868680308350178944923013392251060421950048775080706531402023174645666054976181061150748986611273469040753536918201093008014342315639770048380218868563512151042439251027350917061377692510729842177225896142791408733526085790691943174122792993010777475024252126641793166034869983369143439632638274645276841412857082771084205400629707972245299223338338798715896518424450493503647972887569488562133873483353135228115670433799348990761069757366067018298140314379988658334455254031329964286390491121725832710373650900907001866465546474313508927911389216736635757082617208430360886870871643608287322613711261093889617963504926615280873772434596601025599209505306660798207172281449540418764230294858957289300542060268632540784370727789154253837070907457642008142240769628321570055434720278845226652066916691866702847362684729813089402266037580371091468416746269445423519498684084231449246177883503348165858661301056225038881775945977863469047943008549698298389727201761506160094634311351381912718641245236827909386448494647887790106569224277122969133920276374181144521932394239316304434116990764144916398217686032228099717187412846398467446114729524081881245053759260872932303213806321684734853208673982271533674526603729206272588027929487730871971407747496491893211399499216277068655898411772415071152820078716057119037972371870256625534295368905267548584852207236186142190008880531222241557177818614950001322188389721450863720151386410862239834688746391911862476893982102289317129054360825352318277013814562514949188289060202941460161719757250643147510580800578617093883633224397707375955931804663238875415031765869513737436844069275296367150883277077291035678869240048921957999253578972738023351032371457268126228150020941689407215701656615266485053666469696282412838390529621174992353255446778649519927682167237153266915998716222169174086592166060549590444537625092890251768153388626864278409298862635510579282759728179309671910499600048579934125812211796943861082310056298898849590572053730463476634334548024523285977315056631907788123681257897049684549122785745654832582088599026727558772058905819695660227668070124350609992814310270550418485090447294059042461201225655468642426280272869177326119711860464923224245675662451291958548975358687228636277449866375912930679404630536543404910986275096406434049536660067253770703198840987199490961712180731900082311962510229008955551427715636813349863899588428323904833896561649170719707255530040975899679780707731472770977983347242961668350528168915232751809953993955132596581909120004755091260478349544587892033995885502908409358770488139400486136714167414739859139861184218030387124613584047622395343046223107097081087377186167532294314212026684663119185370507003581372108998708103529201393772440684483616517454781079836414921725789224033104934910786095447595183639584030860585418543295532348372680577112431775086427135234802744450393265290137919971230962448669189078622892639308496887073472703269106939272913130692883100388808021609548921074107609437027887579296476200044086373734310725615306109718752459734422181012402795074558588873036181047395700313355347870314439756387861807747173009028226263816931622167097740015843887449344874026147162400869044726563383068711644165308502713593982493605016859905253937106919227350572028034754957609529635621297957681850102210062951320570561970067651857605653552260675518162919995689990527896454219409869140177487198746597927629473276182917507551699586146723536558308580391027912122027301191148949814161546653264653334209912096502006851702425995525945356414134181741350038913828443056426452239053673571564175221418372847650518773980844062162229716433678779551922998718651992478709851246170618162952465933219642664820101915501592700274792035922296357344439387172343120351547039206194421232914264605733249871153888143460799183449889714708532386503138410654034040099944775562210127154493508371174270180404245502066783593061968267614432377806410880670858085903811030052105128687619920874792847461243399815297642801236932511262000021196224346014637981812063286027171194262187640193401778809771414899189842385841874711341782788603915143401745338307868023293718990662041791465153430785530844346153942747603684859888724308701025060180004260776189059706213053259810469603626286046963510985228124021749528322838514723546896199130119164605196150039819305939350283597541361546544950303570212958251625890830175986648278437706469977400453294860730619181073968740963729403188940484180590408994633015816653345652738235139554268205286185022466889704673790263807684244037418540017715508158247083001899132019255064095939855622941728999845618464242108294213036447816408787804700157073427807046477981535761757006641926175570079787133887314318833506201806963735452502166922596286728082963835075216087512695170917416388530778033401718393254286357806310323337135766709501147066625094240656837746530475065626811060493963220723791184143862486461585890785839657984273959858763424896550847301184129188495488379531643348763241462401199077763654572690720881926646791895228872088457522125445695640313445597843324257392779049101332325272118639783619749155649067020371298114608589926593525695892513310393877183676166134430534896415036532223656756275808326629822302888496149842533839343643741115798018118544700671226232526721343821723965027308272902884131362911852331386225002278781519126694452328641979497809297623169867506027544198252416512067611382835292671540549522447153009691022411053268997402486927492680051415503211390647116163420369963036213917450903245959499599193950487718797587514561255602784738705402055145300335867988743247786563483974992816286546930266787687529282600773125463124040612794470161111697878935990015337690993781029232757735803321616860116036854685689721975817354254130584706348290016518355483558664106015740330161461335467786062158275543121227419763766320156451265725998628207064084209510356333471684914833936591830939575387703209073425218663789916004802263855240557472189349390709485477943122711294667925360768924281945504445027307807077448495871895411867118964525776072721775317211272124998358540787533682382526881137964328915183406961987434486959920640625210442299326609891177238793279388518000006813718709359071292268795632629129693638804544028902707930468978295172103586482767205376747011436468063418348555927955436689458737552951615068032441934540799645444585184408535401688295583908029060356056693247726933876111802800740781703485630554280118973315115886936857246240570905591080434049703482977630680531257635175251299596444071557101968806833039798377712929501289101390707991875947274505928427526861935662645710081803881231498484894087157710245252977746631293781311192353697931457161415280150799327985726851667583194711716368364257777835102729070984818167144773746648312037052532706159876522397071462352354851163576977052241613630995945751814796817424435458303827313247084599265496104693350539227744663435239227668241027194962927170972297496413685936574736215863396680976409860058326268174857979016138255989947023439907485422982941737700005437333110630918543003954654376364461941013789649358209750633401913891199532501882024113715471121794361674197224479980753787208291852133886496875261667222893617404551367965513620669347794932729799147121093438666222235086865703347136963733108195660786283448020280055535337160025732478762164712848479894357808624399150306733336864916697276641962188126249001387485466022425462641174620841508884821848297365083220758242570862821364335576601505700350734559584398205229849529189120795900787385564735776380920155138526436478441881692183533173850926531800679522567659838225558037653107551351373202516586469873210293823808626993187113164366266746881983539952715307676948663295892282270835621593722102646372907325483508998875589542357633441678571467378250862946929651848593711234433297437208267645111077325973599801620312453936565761505250154114939872404631064365708611808290901934515558482984703614211319350582465975290042931714233717518482524483636666862689587632080009176024163475605120940876052928246935301557888507876365071253483827041906505602709343834221937364104242168058577544306845486005302769064148353635556870312189618774365343459272676683239486917502551974150884541769035142688237121612275458846191786122077662849387702295482871133947430280048117257505703167294313081271890828369571777884490699190865557965715567394478556612954424572083023926712502692586501791270097281398197909301858029949568325368257650926927180810778437465904075287474139833583610768788661773538299374378626222489448862654728394604047720879477981626229526730977175974256508310098241893784801103829795217529266148214863097597003179963193648916122096162472902742329386607532049877856331919329516068225349946989378766857731695687609448657168414119031977000426422348958050176610984731244910650242715915621582604328489672348186053112424866930192711760810679479180443707804360474870231492601090983539795675477447464961496065245910353332908855863266923162357977648889732186287495455242791691563034893649343523812218540078240991926783916389235369979801658533462121358427570325540451878051010203267649304831464785983280261082122430029573282018172392632014146220907834095464627538117771497593517649682167713125553022527867668416596233653864760954587841607037431558827018181700761539552254118417390662862239945332585753987207788365637842130695487470291758918424651222195928629720648892017441050044276936656687734564110981196678248394075391694852167663982696837564276468891523451363365872300196433917831094848234538899214898304301051548945905047690567627517248231013922626334029970527524413045912810054067306512991349569683986180026194623415097551343435332960967355912915330848696109379195370755980246763289514059777880188038902766553690974375797527655135566453333926703774711269284241307927438630011574023996303495571916571475986573699129366156642989862315643040393722577604339487900760438229507271049026977681504754520879020480936602948406580503806708361792328341933979521823210121009845107125944714085328140357778296784155602402960098823237853524719909612529502460461510012576067968739820397423262494300537465807589859320894761890128831352656781396669170044989983904994037764218507405268390378226450784225012304929521647854051989919010131588459694163738284419381710814681582469162108943456133089415994760797774102357847762115920558368074065176059462460332407609431818199062292707702096235738440428018689075574433824772348332162043868068221782232199576659010432180015532330918690764905109636908189622621009811671783675373949008533700182982430728046724323632009787080443492843314953039909405226842666291043777531230154329917203476639815098545452495470662123361020984274160705979633628113658061517512391336047181134895904346068071978189280445987429332458762991250496079968749434410516062462437083424623033689666705757091622548559706650425083103030348887911724953385430705290445295481801250328868872844261559978484608199775551081201881641707827362316967062649454258863747020269592121598887977149849052785314613523837143828690789158383631549815720466062269177865455659337453836529106768563747360330681587143934293566236011570059519239311902708972655735562859686817082831342817112923016528427297513792752590162658256060500320479568914035453996622422746646601200392700136255227098366170821758396552199884966541287790590756499815570616713335689156270953981219999689414458418279510218842722361469334219103792665825098296149958682908492571374968795183972446167808852149229784816020795062226173786380852887386493130436924814227743998845568260183127401506639670047588503108927015355391496488802572924195490059556408619966839699889468452083237973463513690796628210007717673348644743482965168745139925149134299399879301122844183385717876207884751708329283357109062912545748636176389236284668928279332613627760771245373677707901281760962930537674979682652352373431572291022142700894407254487589511474493564708913462511406576570834367723890004073880840734381338946951216076159496918673596278869202772197437603014908907461533241696513744661907488739183889840532949012505913380139659227585216461892099260146678889292765749641748186209356287416490050376975913777750686649011312216236200912364908996707476935524035496137753812366371256083429226967154325308928190075090173959199429998576730561790102921732714693379558059235350187037612480666946084405281069965749922097997654505038164762412969526093357058446525468999586990289452180037287700471678715390059826611688305960068142560758506021536566523551912602973030507156247615708835395168768556648406189860286803498849214360690856650742159066708510328153376446422124430484246110027787611121571702532303138658393061416796154925665966148966524937125766402016694345412220901587690765838474472457195229872427103880378711808408323031376885202563826948280858012503162969918716954856155390814029381152084921542323253955116191891827384174755093257436691225312624398007714936160275134442871302379335656851972047392141230745326039977349887809367625685106677039595202218080926354872333028328796884655179221186609696583666020536425690027953264556913396668852642550204707638230185575598622025583280084041978049906079670921158103564296711780403730115308508924309407530889909454656329820505018778311779925625094957985763115265420649968744620084718850725721887269349122712218500596798695687861440909431092501822219939713285322581070855264779977890545527085659817437107739491052265131998684995422475901775944770168867562522115485050241653634377159920155256586495973517441950670295263823464299036375568775973391668536675412401644980459096817295436386809894140929432862888688467213402572766112599434635253806692638850745054097235319211853487997702200405980429172091450431789195900734723141579741956542884881638038903205493477237793201290674943689405808597812439550538926686010097737389263346835082217824601246409568978617251985026933351222429170608140064331928182170674971458774796866558678693560022303780162489447470321678099892891415601056655682684305040113693076331582459013079921644850895667172991676291395312209679126270260868169273452261329940388188113640040274028275892968710855334531601837310752347863241368429780794280219678147474811863427648095787912597642821727215079358493008575504680915106484085537825178144336043829718698062285143711552820457810245336484242999049182376065091033657095233342895959496237665000056340894294621518448628443636432082007288945811742330139497500405698508594496305028089948142313057294718897823893811474400296196648375790671613518954510972575942137809873615419600728925521848646847387571189656545714098330070855457065982488672704821735358729081084626563403139804956566564507184653452001366715950416910398272460958744920456346691676119763898986996991465678546231399633813071023529791527417180699567170824659540589950743363230891953749565397699033758549923979228559480655050513487237892380041986256997350416648909574753361345001254627381028945449257581709737423443003921589808609711188346029445292582025485779228307665678711388542344116127282474975098094774735838311096342446575101154036672031414891884198104091342690714728365316458207289344996713642330590831136303552022045840099156455202586977064893165471241279294587374381348691922085089680858200399363247954964251156699120314648917919692812465547938722762639914731241504133807622376096615569517979920068469155532528558423355983526086839491367087864488981648612573393521539869453329110866384348149706362530508580509684887263265795479274960562656334002781272346616590223666584420014619398449615529608050345470613026975769964271900560265600488906129011096293997870071508568330570054277092596694775990580192061494041893250476550633154545275876477170040042389175448530240001749707498896332656496295372385963385139092063203857961419499140811757107415929547636043587729709408745944539886741869436726015169844230776588879806998031764423945159969296766704451602824347097850881944134441317589863478643905917884624685516794192957175613538851446772671640099978215727163664220394656665521496580553158715615070577476141868124777930351538597509267309979858637009764178682968578503550492348581067809414887179785916099882820427515635482253740552701314272475999441909112663514550952847336563515184005691006945381929889873891569471583051829828283324531628931569918359430511733152584176354126897719452065909578154840289770951753366750480619999153110361274571138649594800223912705376795888412952785868548514389176695276071674947707541593903144337364247253441635777179729178508415824068490677291968396213494714648626899778042910799710434066460513686855673502325174740560562182536691895878976738963414790570818481245547061312056299036121551286615175847066994879408240609716299384924010101631026033065108568086355281346649836145903042130756353040118316708084359579506323966484033107664813846265403019470545690402737232640584200656701274759473873594323902729588506006860552882063276471121551049720993919631629524124943041828841718689993307886968136897264334853678923344246650336421113585499037944302468520562707049166653705864906303611561988224468951695569347465103071819280897159962004953882912438428211273789418388280252058094001821181618473995458553219445447787008427106733226552143932459570593503230046645343951498740104789276371618286049467596284332317450557475615624207314109571019433330153421901312720532104744413850452729389253217465248919884157560770370617808784081193144187369476634815564835026928602971804154507218546300604748046406759055954140770780252746406926502854264386486307180536115703937978783079054275454860617716306150523518479697494067177751292078134797613888228477813158241996178991201902348385621337366777627224218707497966195868235608118317656129157059885406568221028321801190247181734167274281362645692667299848882996506025377216027345702433958600822240588917582984489191939913934889776640296956331486198134955919473270528081636375068686252391058473728124404360916721564693368043931391270523628232025260086710127642928678111923644796301756632978847172575104047163351226253747542798793718766533733597019573099039352532810833849854988977480643691109636299827749707271416826977601954807263675964421460512937004685806913952166555606881102253098467694248339368855343099146322046586043549434127644348668487411350944351070625758805758801010317192092592034136716442918514295524292748696341046306233806089638376554836297891738602693490026817750414455064180308229865868228854457337859664377142985568771244226515042381235269108111185268149393348607404033918705329173623724140255917080518040478498853300282054447514177961235148046659025495870771403226839771992463683242814211974504729856831451412409805915382032555738895558108892191122075877480503220191791270844633312528293315210375378993752127203105637671332892334506320408407008970594664483220273656805813381451101122372823372831312345314052291504285689707323888589247914082687367368930420288986425532388600027156297827931743165044692770893850503681355261086102062595432617866761686795720575011395614960604516868317754658952060656361978317514939518907019361837611928572694023045284127263880784586280617328817271446566904685719989551331658460344653251201520203125261803969444110231121960546909470494728985928605795117259319418869288009552419364744396960688123758205385375152691779543688369935407814100990861403751854321725189858364855647865900308482510207468519116589344542652389408547190791624351446348245886518630749003949951457482619478086023834528622350856529578722836498698615589099991116560407732136570430505652805014305418560314527855207980324010832456236278295755238246827625080626294899773343390536237435892355184869726718668598401109953866942279469228438275339497429214426617070432866434644457063439150113984979216674920155809210351341893127791712237423577264298554471276379273093203849802651345493809014424742577393031028808929572881868753938000453952459155371282332179133072210512708558196655308396718334296819019348767937086209684996660943788219329022858053047175203894097282744073733494826684587758474895503433023101043817295083978359019663666711573706342307203741847008271394840980296231087305081986128326435530532909560877141166703767345947296669619497767254488681291004182063696791400351806510739827691561921627961213985345501000448145838184499235723178421851214404665525039222747073148327871136437116842177457211162240999579213482782282345804200801562920978481185650344171666954144822508214186885777561127755576002250087245421114336811775345680403624479374244592099029075235802283261726560009768685865172097768795463589663083087518224912865838257999563739941945570600306289841946627129677320896909716337928921328462018802912542754270578414189949674596959551553347674284638839060146324033503843754083672193226421381546097956698371023632531931813567073785001177852759769289940984576919167976819351262242197991171267794088633936221179208101048636241651394421235094791703412618540807878995806990726981088349936370090651893777117278669431374366220506535841231521384849858394583142677173048825192622917195352054544648567509929131410760787129128397254856500715415146163436341242293581758570583153292803312381900183489433197609065354719864372289950385966284809862280166117614988768609521599985815881449696481187515028138169265875197349078917849545302496288854967042533804240126311474491176668419831599988415233935898783981192017268491910179377227334241095562196163603707970818263428378762343247768702818294693077085907971115026071133552574117602981413501386631249540755604905621061598346013206138559615068139269796386816901210511209119654775004026356129758505419557573859240745009755541864322305663271417098806010231247355544915247034724120827488284898936572635214532500738079330711052231908516970163732889955964057244571165726883696782863526154828072761216355065837875404664168147173586584726243999223979081233903201760170402307501256808448105927551253619935442805246361919156580480141222913801231711017804792512230959994346231523415102952157594502447459035593131747721681257484624841391364230372943905759250664028829240262577532032204870581808048912503185366955196407305800012961751755538794068629379265946708526706668070920869042503563345992959763579772402541540784280398081093253955707615373926078733392291084878386701671036520428954505043925325228031277923661948353474402032056271136159581706713466418264768955982823550564289854117450816344114018929694872404573751772112680259129606614718308126259962995852007297272774847965271382220217178637971550396037355607069003483903256981743809849919646555658315072129040568720687237166166639268390524557931620479174257517613604449810564493241429251390386871964183867564917596864257278994075417890792444676395199694156559906661773215728759102106269597453950673527037724997869550278735952172982199165085407422769889600480669929244474209253749059922729433449132484046616548383885720403681421246885631776217774992897578183288675169815981769968099815258142460463767103439106476241857020153341546138108795466581729440038604369799704029220883088664283376825788813059794708088078574199428050553983261648170066530084372560352621841213060797825879696882624659950851528883502565810660478236851003647237136822651630104809613949369972472818525962848836173702055815425314002430955240171391558913584564634274977537016609502135225945706151497089225254582937398907355215538915633164393209906124380429586035173362662936209007337207703295645623217694854725322955010576731432569362380627357179268126201539034154166323529798185601806785993567183941179753239514543683836814276756567749242178119522263045494273662296046766764410758527310711221525518736481497819852349397437469705033328057787372714075106391596465568329363830736094958176084537194325504601403553812257116847041907237909878826704925272580636808306072972387306320654243401852597649050167725356874394793948435320350153745303841171585060616910912817976637110389772618338774009296681292319402228147567270500367627189400974870675210938940158709686115326307077630045707909780517530592754889597921288341182097825331370983989744196208878577987024530872650556931249166370267062397021497914322454324884654774098910234986650797829332375074999683929080288395502078823163647123301850652720215305160768237941973428189061770048155910992717283167826135901448309879239871452607209655943345625648584285064050164022973929921180670712773408193836345163650329031308280794078168662774580271514668584464507919258130506941981458824598588147776918527472899373580360160811273517183755641527925488890842687565655509784741952916735307286383859595960294065865519806873427151979101719510289604194619741749094248244036124084707765277360888588649615226426520455953702687235892624689827685582823850388023564961726528318950079630702177518691270845050840304380926283291212985711814741370239884862208500829884385196753285969035326504510032114222349775426690902441400812614610088942810312386526484402394109797372166566109360508762044502878582278314008464799804155842929165033268033561584802865701141976953479800869299063682462902333366427419279206924695970057375412505391153945256830480518192427070851065571576884753299636746304901066616065266386626014119901369961676432952440961118683673664764241953966416172457671402255013620825356526793024225171596571961458791972352750431888949591269036083090540610366953655646386762470949786943735235572034974044303317994941575114594447423602707112678137050507472366900044803298187147306737321337411687926514425012531410487493160874193000400541797666366295843685044112256859539853735373423130436907573370348315544836528564017518648250045949718048036635154979726888234702422221059091576235792711745084560501041916000845442078654820163992166736646030414026713632323984723781224774427645257927255088212033413878365542874881422680476592421628791489152594643454558939485506423290897750578048956899709961586465139900017273222520856573812623779311687356550602597923753607323613847224073692626739419458647966449170683941710471395167291653594220492171175369793003749294399821818148335718682199293080539876989944938224294191186042480787285797319371693665265427968159717097889656762590401645633076527030331380005356423665380358517784055017253071885259519353501658507065670867814942011379130774150023920753928568196838728829574478894439492033063927028167314853899628612641247271455848132667398951263437923709935871739848100807535577847501909761762322511750578090928998181391441422546872648117686675867010749362245488994502606937558297137276889972324652983695106975532630764112800151686964170534464033266221893347830187719534589746750588127892032610706304995556865625942711320869772371913631940015726653712462927856952237909634091964459859537857667034821413532858714258701456278419620234039435927918226971708558645674045012630816338557851991552086511995826309452012443066276264827587437630609834625454136571432766531278799083615149069073110621804215038213550383282163669740022993036615375601797169736537357134271243496527159313555528178105485750846492853751685587527778009844719291865425386426322551375839460910577343261068379089902524397226101831851776215468886034343459515227364444788620770284846080736606074840834226272518775711311454064963402288154889211735366202714543026447835989124901331376777278260876677101836404662442999698469830301574816866037352454224667238078717844621204278520680089441000575758913845933424334890709568251761160544387243717889153180705899120706257104811121554891829690057637065060345824801936674519233594887017660703867304490445930801457275099276252970920627307990891235103576483303321505374529746314562054673695845163513376097831711713217134918858349701713620399954661452004401046017441477555120093958388642144143568369319753020317079262722217724417852286630727197779531727618118303767473761443821333369057492569926304283306780758302895977683974144077753111559554891327628960621279460383239418349036857889780117596732571684890756208478877614592415558013602783343234743542272877080720578528822469157657163220102664651727608390028473470058692110979732332890022676969129981335979086332835048183754087598055441496996365327900221121983145618308089465837252777457921769759017298181051610011684786858395691662281576715039208019921301046147755040579842317138154982462282447770150819047366480279446131639948356243137650337044935603581463082247329195258109947229302913192217004465012548161304844527456372599063354370475634159105002812139252199808190062622318515664204660719841536121222379021631647726405207852287195954460409565402755974567933529354584651977293731104237716557340256747317658557828231161656974676083318376617513202277533267122487230942006398997285740031599077009074733517951242055664489085171579464410828144443203278349812931682804682800590030422723645337001550639292653446125975002170070358496513735048544383540485873623061328687993937310049555119392673809175437190006213698478352747433790967115438677663706725403179206439487405086187772384486734819828642629130931718642380691376134524724345105296320006137552990057614598427113303136017446185835763665005541440152344221531522618818485615568540045067386160084744153029131934575674995375641321771486740291346934996286940176970840183222699483874815447067627409475121860874011360370841833236559620577567945808610907977210210012416197178993026370549665125405135692261393545570249175135621822309275838529454337236346153785855729467153017730633320789902041458376234850926740400044106980915971718897203109778711334082186380853366282654409891568162424758299861135991068956615447458917495295152871365392425593476105190625832422213929228874532435139998825111425511279631940789895299729470566259835405652726010724225629916475703328178721632686638309238065103523813795827230599205412641671118261665843110044253385825103199831253126104811527150346198665083556944476535069927317947903794077518977165892718928797130441284890842775498715078574090919799100233656188717224077284784484772416273349769564773070643507687859555264241127364677207929234427629357190077853598187000996686800125290672458131410292494444261389563278727076170566710852709201217135758142537733978488663343050441600533212907986806776635533544148930884533646584593822317133176411221873451918438084201508213536190581810069334753598426135837419864753688989032705602921495562444041903179678206535887788639249964194369406442667569651641578046819079395504279110833479044009120029310974272449217286313748638788501414480642013938896880523982586821685683018786771007623937966838268543233342488932175914827546508566573473944002260311660987558345326108431800808397360023867584053673231380154927432883805696247184045550354433591179725683173429637737519259869171935405100557810599932626357212502277260127858896007413463828535689869225816524677567918061245539703329453317963856283227280064365060998151376921294315146776039746592059441926668252112999184370311380365653680901683452820692415650114966404119868233639456508438808699201252769787603311828271492671401587241057548190451372597707362923691102696383345854929486242548579832962185162309714461527757753882210061977221830169807725917671938916187349027113320880004902815643404783715006890523293343446752089671906785874842025548275077072389502471336843007649220185749596359357456447515852010864725266441925949570389444805150034482437670441590312986979302261471630461765999540619248942502356804058607607160664187629854275600479161229969193974718031196945082718267230004909487585595152561721150811023786521972131668624410479985217561652876206359698998661108631553144429483025672241483862962537369930100409905457182305584461074592368437467553127200216055268015781538932950264502302270866961251846317146170350571392058660626218667790809958854317412238329505229273530277714068810059084669350305458449366715481705859819934050043320502636191684400289745530771460207577921204472587538307744812150514749862213571178066325715087640861275329479439441845225964617563467015745623361680673484689791485906747684902766979963816624781455660867754678439343927085133891778197544419552313531596431671007550658895781368047856945880642140664378817580481464903611561374991617586739894078893950546092505743630346811944512270411476384988265865029492440316193961389802035529862817337614467953896252072739454114023432476473121854188540383903050879071093919733722843363895190249249132262693320602454756792878325373559906829603013316826713950198210205378558342053754195166451374098443251225962837759906244382989565799082551918978588803904430798247584871383889800652368918413616840610059581653986739522661831666754191212453784837384464127224039297027940212430261831492974888123573058537841520008387674437645540187227381703534256243669893437455860931920937347169656437209277119920071449228394935779281680696384246851697024195034700165426311812756213910487159823029979206290923826094742206111690890698686983623128118964459483751133290762278255193518992316874547686270596238048699276110340702982767252020456357744426305892484219214817334612413133714349584940477247774307124238047046773215292113954150962746203012560056233838084804973878789486969615768085967287985818011287942699223879580741528449716641879857212168408270522362045949045349753483229667556203171719155013912578098434453036065023779118521253582291092958807304581473095501184459297470928806967737163392490321265873300264848395564314664561527192948475665712754297497645635133096720267642049265627482329638271411622288952409095871165477376589152228413833965010355008521835889128762805304099228383926819027585592384392835510730527103621527324554667848523616334087862753937009513041233419420401139692765833905126710224211895767382670338561917621909273586224518492624338144903332601528968351297132137049480977702651904969366550206995912909743614245962895959812770591597960611968097707605632154881333557929772019921356376130588167611530162072895172795402083041810860189238930554590563010174087256728223695448525721391502541596188006401374980978870999540036618722233939585849505963380977766963639108406734767535409433538797157874010675791296648650273048714651210674585495994490114692687245503593664687473565807307362170738430836139162172668939178841691992803943042384901839326288234964390891036642113275978347046321590634625417643657047962242330199693555132110902353685908835470822578620114969952217816361717250919705762826485917235759671792634679473014912858184070294512623380559752054905703307359787008090615524394287084817473162602612933593647333144319089665245085892626380050396669170243537853866674191460914462961556024312911053385685904413288643984377688431347266587618009784632249682515199329787902756853869952113100778328753519975921635776934385956252802051533453984809892203801283543461996958123540442309642168093777132419463211531129689561017345304184442723971637274748024553433300571100191709979404356461176811541294628334959217767338476102358703479029035860991660030209796895047884151789074729787309522360805605375931560024582729911460816589170900606364294911559160315181667279706679472508982710568570786470354310825080464059754053777346324604819472953027181630967520536657347450802300102302574534205404961894886009255042228245484854083046050834350455737269096798267536309940434151566325859419944794767909089488911469144391784348230674805821396969991599597903569628521837130645143806676281125383264282931478625459783081346109087299194656759262186902296496035317923285365043879056802990340670596685830400242141567986680213194839177386854732145268773296533095176753302455780406804866848215410800891367403286416355938156773500900688504982940178789789222014499791294781719118576831101073799559925096083857208674819951561116656005668570460453650047019044572953297932367355065312841473452314349996174930387224371762852504001897188293091768159866843201161407516959723032209736233736920243689200049127600198762732524561464779912000371459303970007831839431469831467616588178348836089101174190266547861980219595376114912671445118768351412819243932633420409516181056287436728756194428559276854355819056082088480368363256823752090083141155611286459470625687790054141314153864030314195210505570177276116888294562123491008555235069228868256405483571075938889403818137956783928830451679107820955886169552311684296500742103070175178697379398004569591033777607809092817741372059925536416177427953953814450263602012038427241645968199661585680183405776255864836266755037970275382777140233958788200905426531751142259751162282004529950365792000240419247036475665876484903035239085557083251847813429437051458458326428039129332563415096410883829175721433499467470246103647965717126623757243501684362503868156230741732848587885574321744966786415976951355351625992592551693835571143618249889842924001780047690296665052010746862891502618427754219264746027428892689515732702756101988340834660742655718262953052327196378058953318095358684864240981062867099015081982310771089207459587018381003840151378934721688392549443956936360236536277028670246100255911797384141898719314503409000197826345547635834640710734535347684151900074161316557036881087445905214803393012791727511525257007426588829945198087870578654512804512921384318552073064229406636143158124265572580605886010050203028900613865539631756382196785036287061624020384058986452198864804752376190456220103922154139673698178595613120273335746492908049911458437513780987131374538523624995193165291322716055991668862975485382518922933099242414546444382207591987894141318651564271118924004994797144954477766831276728887517128490104036676630577066556531571968939534177437946395318255798075476058458539907355912297309947554441766396081111039162745029687776873258925798519100526659016232852400782036709617185067142586491605884194461326958640902534233023453764630332277892669466283627916577119659926419738201895462499663101266005267905780542187538910120518842522923187746630380053338145880247793846822594401491057829728323110902948510612189018748106891447791201384327294500359522076003794369362338826425819150676590487334924297690538797163608334469571309451168364973017984872535432730357723389904715027598766758922332823359904142372217292625694730755037485314216789086927131590680633546085389487964546344918691266199499001239889108992044046781052873362599814530734378318286444741272370662765809667501022376793382455715258958171426107480942182646427293635404495263454720464528747734258993004625033426058850857680082340914346716671874948667253779890249794682197618094245999273499606847358157205902852032729308351461135094217708398309286796954839699190277655020422361035956577339891216189745221581570914536638524232344811630235743781014549749204453820072700253189271543479586289006048425225375485644046269087729702455661778054132650553052398344550694602339001726588237558291403735361937054686129438255967642001440252864145047213552645064381092755137592880329200835742699468089620847087407590891576892675590769851923123570287587389575755317452902662542940929570255477961141020116353788005698566726928367749738885043730999250403993901534461789549010873565856045693664674250783185968338056366623821080819120781673652089924303620843864765197001816836615842404967783223735671207864006190691471495510829250656777602984392181231669024231992050900579147063830380297063331637595688364371871982847262686143785606448845136198408138638866363423919373806169433922769641811938205175219560426860112069308516339201756546024515715651692244230602607659537235500066898184721464091120370901218250997856555988447835439405111405129261720521389923511913210679647002912452708544330496307123322020074634283125158411034157201017216875446558256846038763434284821267353301407954935664668119735392556102840468095108074511144207221044747468266421005171239887300329816398099192957505245098289453234812700939401434618175979900778969834373921154100774419713950337984174453559769233692665404184939694373769201360339646550301959777888019285359015705077909521180570757178901554145797257103807838001244163562421763515422440878070301479299775019894694682018567235107743355294806899509408149215647917335571137094431785216474216130785102450845853433703752053773768763193566069832646101363601596333721962092423617750095084675465415527434907519327336114882913069126226852486142825517763086471314028499126962612957950102044235525700100381686872600765647372538842232045368386634718589260119524311009150938282846162810905693475335528640963473650431689363202138945169471915497883246747703762943198268699265025681768963048320330222778621744733771825036997193354836810343712368656623792024160889744729979796355445964229974059577065297360182294618808995366092661003485853278391100514585034557301316853209548473472919255479454462039048793266411487467602399274098002474411373180351488356922590268123371905764686122102411202504671995633180668193749315385331461380484031423968398810539123057901935433227925955042604842559082345058326124544835299614436124965089837524192470930047541224358333069622542850550044193942656922696185213342279805171846665497111479086742703113115692229613894209061306240150720436046090100273422679202081174233463664522936435509528789031150078981524013985485256791825102869418998269394298521557192492361939867685033714562721427525643479377662389766842880295705420470332838061043198534342419100719965522675213589920407931682075880910002409804047675497503147041580390256957650208318441329378356846800021788733530427897315639526230330876871539889511542189879975086701816613016106288614739655820735115142413994662922730656309093782249393015379564012164014834099326301770901597991786553900373179530683578121259195403343753115842763115890081432823040960507341272531940837328665382149888620562996140983541176827095608083173182911982775693568708048681179824954887536316218387804120534456391326685547636001473154001483356029199217522125654567295909020656861352563783625490272280368757470157750047174400060192726287240569676669406188138306520610256339284058084159623843987851687702229286964486455148801973691587612146560218386391823080102458334558901110790818631598095493633059322059135829580586825168293755274833320209529080272407685678891990531460659978422306627289400891956718757672925387885117118776565726554417782637692322637598656657607519601706103740419792521315107543199329240123273859438273988363693481424949267774442985229857788789207807580207727886914647204274732084904684764391247502253210272213727731629487278854749237233699760442711757876995212815206552239996602398886970665103928696063040298186416348821082951579618694513767901626846880559978787437770832897065851523362679412179591985585416264140869060609308886655076676956777885081570340791266591406726332268967184681025660802143488956862837805080012622618963293452953074260645686995266236991800747042867091793131841631351676099652571927789847236108759334658342065687756459149281243817703070498242664106923706971292829039466897487399599132669176174572672390235785918274492005283844012478020715193180891223176150159504186653593578565888844872964067883196046440350253465031356791456199881757219389575649017400245583946480094150910961048730777380336445230989026713783477126882335771646039667903505973172281190351083643784633110179400728844427869875865096457122536509381502950876655117161667131064490015817130547288211754487590244814353571194118403409194070768077326523876866196301242263870344904500654704171893952717030803086528774810474585053534677850319930550866033096881811059777785194826658982270748653476397373940024959208703765047150867649351383002681823493566865796033963582892475304636060646349458406651266589461250074258434809865823761397417596723907899100688748942338592143740660669564174227898773685019950423042875793040862282156835684878809563110328899711901097165568700119392837514480765853392594468629322487614245977380394537975156450862382881507542575414959590144049502222932482568563773383561979488148853151548050539589873111644951017411541352172312875582623033296089150002379723597941198487120009877029678653659078327503294168405472403647590547879266423030615587471117586002784093110514651655550228539458425423001830143575508115527874731938296812699245887075821963916772765987608689944716932229394833883197113691689456558613333091250377752656104889524111168386924711828024599399096061493900944771636254884630063961051568642604419605910884556241343839280269676631095632248342917870376829404772996331583726297975517569738496773589814884510392346554390724066585305147509224531153848383642301706155641934041821309137834027611289490362924549978015225494208013968450618847938872925417270515824285326246313918074517704089527426699709631140727553197118538428706485471863949806539271168334722667187814341189720971699862668314404052529908931002614105561815518516206972185109738954116865227212049679313185544332631603275887337279964936903137291395423091930111434111952272151406560810394224269867263288141166311841032145588120852601543180157840410929793206972732012289433914462493110175693747827959684900686077028985917502518983849240457197022019712398646791193210819955870350747039820403468698815724976176571147170681679942556158032716491460052583878820239813604898827428092706187743501586229623194499226791947082325237942384020757107350995475790657721584108865084804667444042663955076071648610404479106598668648444309021486581154828777820092163792195251622337388289607774536016616355266898906219262874926114036875224595182105509996747414215742808180939160862088025618504018957368572808679697567705512346419875276367427040770248806430630478517245982813151364788797897278482221923779550876422426402009729586858036605550889240096597409368209589987705989964504195898709420144153336116056398572422457824238397815220759139817484726544078131805668146534151277503023280724077023550310865856606170381155128429230207777497522952267221278838060192355361248839270341885000111684344418539353095184946424116280809048734093694185096725502042612179274141868040227820762731055147498583915239200369217878483290929741102222901320752048261888699433232391501227641697376572558671598730371184813867036011449009326738902243490178119610366876477778743181752853391653455631534043881752589705259515305395014885626938415027246207430057203490408477847808197307600482602190314490072156029985342455658662726148418166138035198209536036296623291791118338017844448747958341790509971430785076404432547836410216206002440682928878770242537657597019441503983223855936125291192937539285765417113341846207702989415091147025882976544215669757595404702823481012751402883215281920372490701242587439288535947923568743754110245606705620401210978852135663698947638668773917084584878106786341203073320566600589463963787212547729493872993419776723920182529904811546097089460746536334575859744569518832155627965660656473235690922523075530280069679234225773155990809233765832552236962730982357686719570450817988629711687041865482098498611719850128711582021917296254164142179261942308062652651551296401566112138293265349900493540508083965192457197669631707239995074403295427476257035213212000634974269345148559922493454818327141639999122785654917717120842987245890897548477667535753097025954972509134327392184390747858909619421814536437058857061195607954130448069596347619933575184829909513863538571542439446386892771278398366736469137543774811780286772030132934231543918916816318091915638133260610270722294486743469674529723271162830536125898501845415218781585349688008990622116457822502412660041126110050950550960050835241595560887322547031251638410178697851012614751540718841259267410558877727853214092282902036642728741118090865903272631336612243589466278472457634843598101816528927956935969427083436107507118015814117319369763482875060107171239009667204155454549979299275633377756963104143015744520607794180336602355367988337811927207527313351501425637450484086267221704378750480251771991538947921397275861075247142753416476612306586399108611604241549320499713092405592838617738008560779988836911674106637542589633082596420444439965901740731734957141371038643545779553870662022257243251273883842087849070665580617839890178215265132625573107830451033054684369885793103174186739889786361659894950711223849219835802452453724460234142165443331799796736933922867865350173309937725576373106945128073719859075395315213279831837111845109626026827303703908538016894517398637084583854311662590914078562125262199231424632080271772027091713778859106627832925798345386612847264299756059729999339985663917911611233921362699191498056774310248225651860704043107080954386851167833869832806787938378300964870654315326691714167078813780167073432798399072806012174166730799837536012236448607574527250172497475933413811403391492382267040381799048822938520359784971091156755089940448061036325717532556358330448441660115902119522715745106109447793245128891491433802714136497873936725606811009266880445707411496360043178336550391278842472769132364653533833298999465884200991891699850743958026438373027510689597336930024699206806457291639986337140179519098908657918078055466788299460809708921870646006977419366122375525137917848291627822013396735780831737347257761791874609819903462797897454055381442965012480204293312541618180722240818333310941807695749316884674549843124944563684676993784202740037648176558925685449710473708612708619370893829648275105081125144534140458999357460395788188437803623804488745248311483984378396916854253944205240348172785585718711298136113485709979304722919871412737808859844931198265927824728791986709155719549605416274863257070076710256538126790475356424145310181120361397842167884550200062696872336924675466344160175479554262550564089406856267145564911935284790715565563554093588734500767033346556533288901835332570650400434241106052574627200393513196588217074598296455949519946696386459707737055086790663277443822566651817961181343275028657103900032889052482234596757130145888295928016581280858760723691005247537917726439151040093216751588317766189016502200693203174527666833442383121391655887700299128526364014186417989075365690641209145949544991729429121623985181142668341285944511824702436010998091006794497517733569758083668660581043416198069897497349836196408157135602034843358845574133433556433642990835686499569351937049227162243248930402679747973529766922413871160199217073778791569494171968307414113714659599132771689038253057099381202263342377775461283977515037462693359891881991738698491845063379782698039415484207954614045253085169866301828236268469886466441911549317717102463715080190625212444264430458942315232408539753440471859460964753725321468490691308974246411217529652623490771249435777510414075627841020820523968765104091734487261997434420223950253850818140196766163232847846080475247219014258430690417502539198200539289366397489354800547559156223005406700463329326305669320686072412027052770132030448267382297324185399327301280560188702013035030165501162565876529265481664394410013051492583922060727097335820417963562475195252352846412587921238275269612952520160595151224197874113080027527565652793721959809999869405246082717194874113966391001596191040405098654222346460004670601327629956905425982460668359660734441066536170114496679031745054012447774712659434768602228441950289302439429076765778270546197360849513933411351041233422179952244195357820440574095241458805467087580002240358114044779726583238026731717308457727292304187538561631667304187376591511744867045843680435247305437489400362490617328744013264078851135415551977099051802203579670511882110888871082242473380850009541001009555642039567449044765190688949516139683322403447672793571182275532300781836417801420077123035672973596834015834337731938964778681178551636143560501126629047807762141122916724554872924823294567383888390009517224889389468301265024629164976174910245239562767769221419242783419127350832356096137221880390292930813847848891597552702917698925365390687047578136268810531477218758994450159520005925992873016669222975538489861539524541633364311718482267106360168291204043314462485886754092691145226840297381226927676080950909965342478092811777019255087421537991076190333277358560654641855644783328129052167675640794885579949824954973057336830852822205341568609697400323405491855673510292891030134416934950070676817312202601284571731954028884583654770343735173113561240095257077563950169966254172655279478942263234103372111629079334041556930894050028472508580382804828340065829500442943903856055857116682232287429674891526842316019388019641192791762644940512508230380807215361092759074176597341028243982709446995186679450854946485226302822044808260151680371637745460520077395630541088767686068450098272797112431894503854982318273218975158053737328223090152788921706153792751668095546633673657994057031312513197889904684202423706698385361748152525089693291648385905065419832909537469596146091531743422283277524729334255693671291827069914846317215884151661461303689929340932748181198386450794012042044837051042205943897827825186980345256551425906118788309751230295425243992785023395626860801352178420558932688310803665250659428487919265603926362613017505522062936889695461182381660134022974712023443959062703602088096540107349401918636773544246645234938103294531541202367717351187732253763551905117003912513397101010245779625791343485141408049218561340914145372017797198742937697802687250253671902351748728819510179760693478123959576722105256599713662903694030937717256324939829327830527440617863118631202805263579767582208734950802272448006789049303675400872100816017504131157559588872316435088693298607139977938494259036281303241845831026035216567453182035880983699998756016797542075319461957844745562004575477532914684459234190755812915120797490276343705027994422519875816013884024972167995702764192155091932172089415149117670308830905721284267059304990753428158634124325850788670082234996262462946662135694340832743267563775820409830629713207235054689144888777688388167193610348249286826957737877168546804951925766917044746495789769417044140042475952200968736616605997365769327928291640578196525093233461533347804313940030686620026149154259735033254666134539768784755233254520354399973652878010817966927868190498164295616764634230707232102616076367993379310009475144607640979040207047107638869760165078140406052701141216494372878002847728509375544136366677960213297269586839815666159064334584857148018834359251750156732530894787513622713247468793063381189369952568242877861967112761281107707693548909431284822100179999876205583199855917376481415578297337668800890913200762007817619386452739853730273682635402723354237509947322820652814668316146321586239490132398637824696075985526078817292959239746657533487585864924120199356483622498743168959396714564812946191837183674208840642601530623609453117104551939986728920139406759669239670488474283861222516759570696308497105735461684925952391647138300916650494848662959969980622004234292159496342208914683111563833116380086561012169012165803205015965713813903918021947540248507718505925102677175048991228200067048641097384787008090506318587759367059803004157796452885754261101619355999072781553198359953103904596502818214688819218833495543574106440975063652704413447837514770948917743233297611715659677617731448210702892246002491583149343903000841868203748935544133953806740506128604316563402767580590998907382695436654286071183603464436623454626977108198472053780369648849962248883096006085614904860139776554690575878440420804809812333036762558613257922221162961734808092961960926155969732743448491779646801958682388437694467268774728224209584269858352949999692006633162256064672947533748142518863798910652256199993361621023605358532389639746850411398762977800510534660945718882446857244511642303300600079317315421540849658226124327205104528244645880151359120794292375799698129971674672590660106692026087107497172259937317128591698629997001259114571444474620647712678421820476172872640800458487654233518114975184976356298633596054013827039298042628007104055821874199300427978417674309141079981760381976922828995036181980244036450092107026015622362191648449639169686068496503711938404660232825481740648394767215121772155260667750208534880950068015547279256808141858049930765283747396995760162308769925912479379162332126028067226384094434199514470821890644515385217782894417353443812310960633347166738284503480372162806975003746959942762031742830763989843115250811946697384773772727287593659169107527717704145605800697743376481871028965924855035936950419707985886586691103099478512857774388359943784271316810153831526308812721706556795745070031455043263912743751165506409925546251141432596867221323053520961239446558661020983194598629850646602443029935839435510004910549715570555156939306944000820511723724162004170749638726253728241781072236540840720552778617819809228989981583340926663502616516125775750837992493390179708979091510605625119165459949489806201803080749622571480032593653790660016829613933470729416796300754199686755487611301613228141283966585844644723677578074480783945407191986216626134863222370207068241905224253372960084912172020741833353606821616248262719767616514545576830158218788940587259244762016654479835204680571525033398612106264367086542614746151517615571201602117481556473910164676209402814912440114132246359300485402158639641615770252910270194468238282577421375291147084774328541083475128459173496887131341589226248995630887785793653285810891983916096882440922704422243856533978101581127553502571437114503722661075796797760424830640982418459203172645979132339283834557923893343386952155769664017342002062711809927810638451580026359972340911534987104662311177219670906495254085487418998382443213465679741147823513411436161306792117931823166292165118123493732112317151092732240305409494550511398522341764990837692121074559049228142424650961572598157128929624790896461889042966400554682214398038362576760906123004136965098027201339072490166896341150331244857476320876441348108440485142858069507716991730464374092829994251063428152293805643460272828775584150966463250654179438619686664886054837917863097875680540757731297000765577954514167979387620166681558600686947750727684198987979714024235187232078071384513513139942784222148278312622262165859066231218010417472310060407141909476776274382409821453686141214980632290228327677560911995548412958897445359558258439482326540499377340861711448951189176637782162081969822788187789557183223391417713394940418312459317935664415279958352718686777062543041521409489758664035588323742807926585673428688626332148409159743550472641492930245286219130781484359871349438272413240639682113359445898792491005321098124633686072557218530100953058400367170940493907324575116309545616545888263973302372794334791001438928323039370091004784239921796586331596465686498295496951159823863962109141217240608184139753422426738365898273272647127465569284299227130284426070731102308639278557761492001247808833578824717122666988907265530341719228019274319189004087965327105765843660680662701813087779960133391465125891862565027131926851475349437582009263455347146732636325098547336510111927994667515128512591899655509260771645227269144749332016303887440086351720289889231812234347629326162131124172506130825784724741694652223543716899645291270279396965793774661463228091626335534105482519437495864435372582546015861163330288198890402276607384672102264407723510351543131879418362202133630702528718193274173873230217467969848277591851467680919362494007805846436334678159889403651362916999704319050293369734052017607321639696476957053596405641963798498590011436038512236659751528213980913672735395206197196561574680810386578400774497221853211521535140090419232329100132916873314360118163893612804591011157327139319716313046252199290786919977889120703584959234119342713030918601245170816471451376857946811193866496003323546382024052041211751239577349187109798813232422300092621148267560310259165954082989524637602751232871726709411478258321688067503249106515326858742215039934944788072618194475811635735288225468067041177251826051735001185109072887097606310366085425563550534685613926766818243913949682054020437381581764814912353818350936667024330137676522558436975127190768325213746091860555047519775905127817458333860778522922398386004622229859229764608229672885349693730150998837175695575415793156161519422673874676920261659102017605918602990661214799219230860170890554004897899938685570619109020533066855413730424549070454490832422364769210624398763917678265078100820534325836588248544111369901667742534284438831791183137765549417956767065107519136254074962450009846464381027695192738232375006913289804055210805828221713161147195413061858343318968384640795714722430568126444451461145633371546661183154976504326589460590644564007838435314420296507380420521820309020361992837754128475678187129587437237762402790701530458060326142531522415527914134960495081794124450977648752826831736239097101984066647637774419499742006821148288389185753910645441392681821211223411558591674681093323908173871043242879671464352012367969988415240394319500494425591114687602961080061785533840376171007797805458118516488720851937719909801686309621504938467208609127231125988938953429802535799635786169347761401722209634445067021052478863465499968349184492621051514580879124804564044850847781589202365434747307523160433960082354151188461743084611284675953378284252366680200361824602760579795739094872791442605100375999199732796269528728386109640455240607823407539815640633986346396897245911633819298343748126467711847715640449574889394122504100016901322886232101515149405498317463033636709535557435546907643190260881388432642312832361478955139168473693290906250964222513346880540393142479573435314359865255149163735329702136696033677635388421876360562858708303007308644106821400429373439546689635955807377427035737482074812213379642325173683370326120735849533387077588459758860445907423832900459750234376043439502727176188453619833527832521359478203229643081920156116329908145959851912702109684781596840875220690609068845970013368904392465919547656823198930270710552195349103793450784900313298338711665186367515908976317807776928719510455040112498871759210607195222401300274866725746208140253851545990845614863891616255711979141174380838007462154188578925880886912238947519105286825794442468729364589718700688329289581589824170785690147737444109058307682988984539801585906372231161546320214348696894034302577678092179303196442638378310008377232722511587533789000658931026888417253584763700336642719468743980501687418510802282638097641704818565284229596069486651983621242313872863852102096560784779694197412089156169039579705088264710945033247940942702476737107509329741064927811257363283509665926068347889168769168045891152382750206072338330800103201353558392778695266551859828134883617058016674734194596595344979463080463484903132001305673289911724532784333050877056919252587629280745317057749682131836386664932356031689853870357519222581453900322569364583462123493624501256410985180985884316747569538617480245538268141471095273446698832402957713148786037001341926773476906548992792231283279105761184966372343184139538013822240577374477638064879006137116781997267740173183514314762351092149427932820165505047870344929637494830328136175546906597608163354900501062043620569097581104838864284199485284004300614598365672265968386905688953775257366970856705375790482193138373556514444140940716857261573215047509654551339149667197992751178099884176745146225194468646045635627530882788106699250113679509882934241732611985392084756739705059745094787729095469557724082005973775220143561647678895088239634005251118286138734227822210136092088429986043263435167972928207466798243595209601286160362449432507302667072195088696112408076520889768029342694789015231520905122104947941822922134723364648382864680643459795206453320171709174332438459965166090978952964298126506265131268197441742886931067839218702233549708756482973197412408686624822703425965924587101172065118324230590934210800675782078701749649668758449431478556658482031192073730764184459622447393727160745938927709600382011081053553645130155835395831582368889155027219045349246978759627374523875359473299649737161193794246841669869450154406820049870820903219107907996103122645984450943879145826731523039313779143721507829517324333729815558691735737136675199526831141852074178143455686428402329801287155265290566905956682905090650286931909355263149152125783074454014322986160578383988358255217705817289383375677707070250713733912960356131071035241330253612573972374847586462508980818816668536198234128946268232085564604977423118166474657118902867561877852849043982748349189481090207034864074615850531457732976764265408830014194276678744543331981343709224094816900087872882733785064081503367088839367883802955987178147476139099314463965957602387821101271262566756567264895929122643555138658994851726899845343304148075832110791322874988750694141593102216263943193918234541793340741504806968832669445396955284053856288443732731569095356592836062393853002317018170072122840747391024200518093988309479552122475654366419499906614115748990299686114757609541476480073869621945956566754267926349036228977911672239166193843142958919613111195301408380792981378233981392501871547202229670708841177978083913329911993347773190669055139791633448517994893835714839538782424051802107233041861762660862056876710244593043655340308695607487730364795252790140520918029746368398800267428886167874121960415285796832786049705057936305777995581524166811857427053924106630919259668941844962062642272580533433379684099281756833378128606124797230286935385608353859653567126540736323180039109015551581647195975312051664915684816737332485910361655329151410987363168424763187647372478207451023144193751946730507835277569025275776078830101597710671833239703520572845243830279011441526948992046230549951546198810628352218935144775703187109376207326287557043287819799214085761688616622227064081038891386371229103041022647795823573880770726025258914233117083113814436699966648920385910516952109087515771834769735660520426497685437278909769079398425534462473343793564006151026516400936282037145294579781599579852052806844019240221085089900135735207198158235982802743910993143409231700396328963531820563955180262357752595064336014763155515490933830820821861991381951576430306201504492326562984657620935287199441885639653812269467494267247501303331166250727937212088828313796874462092275293250040799639386088560507282526820746078021994588686987985954761817743135470488618767745229230408061145651365865216389739588727417128313417584118920887604486785893194673569003785226483297393751884378554017549259425161456792653961628709576665522393198247991000098203058436791802524561682724190920799315339730748208092450270638398482363224131502867772531289347737298268712059170645479853967110489906298691240284993901807004691529050910256343270307214621299426814319968843332189732337108673625650984773281666150393510505657026932736498888231058911641780981951523867942191208489976046256705439905930923914701471492079958620271825281613014598729641415993652229619277391970336448795866026948972208654784028745763026655425909767654380263889930268037498122725041368988781903481611393437839645071434993245335685498128399634986771328580448183580134120087184807171456071569155125466152017188119492068883154718485366669829629424611167788543174035102746498247101628039807876409381137898409382454508615480055165168634451742411883015414093201149512124313333761705617994905552189719503708972299782006846551998207348712744096544942959025839181591922737243821034162907781495398824755977394423276197484016233340523639147949832883996081955413533879652187543767546343674135455784255605913956243802174728727842854684399049077152166063804969143095447707647459602068606478143338838294538940247153537287172571896495749490757704998672066227244487518275224264695678878562193338020504648118345482425000344066690926115581804886821727753477262371929802986291642059893129411036012473200118823580367209433655200602290832959459777900930955376680890563290252517157594436510215906285197189300118519017343376769182472802827281012773674348146124858584842237826721186742122873785284210843326536069681608372735703716803960283045686353547577249843272074232454106328547164777840849603702835255735537575005175596891013273989512017580118180370545655031312063579915332354228578720280883133681285668443864143989640853232199392888164012729362448741364679865885219974510341700814471365644270746015114764079806568496606106042161683058611016750060230978440812537238591072078483256623895780373416121353925773258029951820140747970442496059507103147788007876179751241553661878790852941078379785736698648519303339385100531964978739208159322442021889479445403860831956700944236745778214206973634199736959172212887383108161163441838983635807853586160046336060166716655167391744879552478686090912800954944464408818043166571423444070414486445730468129307721303046675331652785343934993564512734198124925532666043689575948358869519487369524627617676616129680216705210979921172387833426318087825432012754449609462227805653630392920766269169666688700713845356202213005032637756024615991232225924626134394478955742823477207606404885084291050168736794100843613633030922318040778766457962245266855017218263544905741365786046071181112598829279126116611355243102427570520495360805260354020156421915085909486399018711471836313820638869186748416384875160724680663340790829409366793042091694707154712623447799764462385709158175331452028891720119247082133778683370327066095000010703603359662684147560153329786216155648636749471211975053344701060476853510246270117570088148679758148950979253925440852195836808610330378694898315968535746109650272624552507774119431875073784710968526884479486699144316541567316928427401170736496881698073015642480066647892655764634044329772645349557551198989011047829874858483299927011487275954985326494267143721709280498614959698626391374429395128873013055765204506442784937210319974892540614551636909042147686552247475550601150628927452882864994907605825771123855167253001165573277536546146948807523114470358456137945232067119361229707618318996297692269261941318518371968317028263143656651878115709651087164424494034675496729944018943243024842731073805195179644529798058496127694805625409470442647140748847593254528548701570323029385662959725932157858402878419087809571174150352058823475856026751349011767649914915770262573695637946750717526324964172491618883679310321723185992786864539686798495165919270785176836722958021017610083973228936076129303636586860252528287784534990405441428109381237603822621927144952367462200047558561402045885165520615507145123878529600684236321586606253698601888092725658820549125958781462203567822911795860493653812365176295513600915807648999187714955872382711848461319302798428554523879110455157611979986740159756933207614960149154775339932407958704228720481825661729144886969516778278110837885786312374715730038629677016683078061040949145294735201488431959149271413487241246198605987852641229296284728574146718012896609710248018192251671726490881070458851518869167368429620998357490965192237533347556337935014404706430021720970155755861396772918156690622241020566155101334284093507428614032895616087743853337209640642942296180210737285640815845714137305720747180075921787350202229178269723049401483527334842072356056595467287824210082670969510745134014163323543650766824333902245044914211480847337894438025456461770897742617058583201813900234667716107078613974416981261550880847053464916876329282729705953432788769127442383815764958113925069338348246701291509591517976280206497819381390490219654779653211533362120853843797430249885949733867927443347387776276555300848705640462674447117337635917845829605465279058590425883918248435719872900158482497368259556144552579551426703478467510923393607586708763834890104988147264174847916553536676383040552380012611631237604580437235723773347361723601792622230796218902820251040680825685431912623847679617325945568662231149271407468985772547738667935173555547498652405948124500647557815578013788501894597030043315327259837718848797691799347880806906476284556959249820487113970975116903768457173306045724256178824329959893694460558947404972648882140291970148358745180657704836940793870170574694624758939387693067677745076225474108401087026957647272323938285531654968010335963481368095057943231031546350009582102792989644330612090145826891091279358837274781000751212538685290577850149420120054338415771226174627024320138943511328363494225857130231131148963662226003368081054194033690430850781829949656522644720368545986645252172334033541172445403349381180637593077453089572628766105267157879768135466897995638106216646328701370607896971535108207912168883415588895573748216925062839968102207188911205489232235793005399078731622794549329914575001834214643223370728964723043775462276616442228316096384840218893305888268801765330005781910991984775943578979265223826955826234503316761069162883383282308757123123789790395545545818965887187949841757403135269188776173298212052599007413625936797312110630380746268897204028410525036669715049524053723600301699972278723899815141732913272343314801583581416944326729044695290067709110484708031474369675211685241700551997476710800579542095632297868432555306324602513596830720268489661298146242784627932374966361282232255639083469526325108746414927223787581922562693758862573691196682628983454146568114762722826103968434979946795670672268162600712560781021655309503418064306428256308066871178804918211516574686995216831480392286486347300687388712063506960524110720635927791122122561178769340209195867096995543946890928290784319766123058576778931539145314874768427034214726979307717405640688430204818178154685343080345231490824272315744109767950133636584873520977804578773408201245576682365319996571794075700185503829544334518924317199214405546561027570983512402218697914911532119840450082743129708580126081678928418616046973257308697691059990152696949302097583934835518499466031538609667375876791045020170989632155454521180836514648910986955376111895184007411620350123370405625179117634601691312027372979470228251994082548298569927867353449315520773900569303666061459853343730066334034237236089919580981267498179220719591598517136697567968177214290574115467839163797088311286251613357069603553747546671951679778536390534124475440819048386148028774000338993558544681751009663210041856132044647748735599509250511167131575369033262150571499191528788765932351718149564860049468066138112476436165682968583218647872059520183315148774986362019937438270549063077910552438670120569285042856327223305775413889239397561829860653302543806436330009950934480447775706690177151188302397868893895455996721889176183911802635601204971516267344529121065724526136047625728367248337219188892624535425504951712798511290629564816571584860550351432491287132025535044253325698098406403235597314367076415010304579564552254200394804927484319871179756008577008804450729616343746316841836538430338238486675748865813115689564584393955744033770797047193299849340193470946856136352753396460087036844429030114694632227453951932654830688104756891278896098409915181018598898637970046923995708369652448202811811424668300505915422720944851563006087438135656975561703031433818999595971101040259121307585796233530719272232145767258221350003140601425567332756148471342808262380302018283372718647088305935914899147217362431970118462932028227129746145203038546051600267426673222484393581300381601758484489583491756410396319727670056104102423083989517941518570022584964123084371423540152839785515408385386869701804314128248847660846350498817388199408650050359589854830618621263731624764984796876926693983209090655145043559455377681791810227597362201897766485694299921718811215774339896166588546377481874984039853225449741668787415899461361229787801938386169078857074647643610220161490716934113981236016908300905086944352034807036254107521066464260776078570953814535772110376241025437694088677827756215728203676343842834705441918374955207017225753800761605892383162763413766533334496334888797811438014522944740596304909296066078201082505026811803332541699559133165525509649675670751204489050944975370121104290265109620796770182460294958946008965351440346859868395983135054403576808788828918031708926871288232388121412741776862764082269736306998938427107523568864227046295813906713444631475816058155554430686173781619962121066636381698963508722621455154996759189301100828175218118955271462302417464514801458478921330530505180650146801629518665280335920491038042475464026751977970327710498315101427629058932491096532381626802073191107941686885630880656845357469281181723536928713646876934802960371294081359476685605413344637080136459711726078067778059614287875899379061980368428060112575046159722408297146160795174270919847578828719244748971392232191275360363486274339743287057302471294521098637186044411525727357199745112919108311325455765733611255484701168974737300786044061131611255771459821056220636654251395468344579899511868977295502143099762176314946192407933379384619542308716310213064602182185859065320663115997325536854974013188875518956774872263546448638466323119834149688123013309749793312476738084074329709173427656029585195425189358165552731344760952941911777377890813705214269622008346639402918880497488235544336594101175852135170276568145176850688337053087773870567535115159511659058308035131584915359352871715235406143957040011360730685463964809715020718413030686120193472977942409848285055235065637171229414844686295488471702510743946499640233049254615483965338437067345953713798779331399259891012266621119326455432553879259140223445613251402307114398977815878046509842920812696469083485179134091996216748297804760361201022502792513911328015264865401341137413606102026722996247075762790951454890482704193587153831064589463230153560277201691073614198618102820310534800676540570284169262613898174362415140330573402470758571005087079343568480757687758294638164980914258888388818437916216394970185602348967376482139189937241176740866510697875022825690839459078343455176633032941929415282913210579058098162914798681160175092917561185913577786194289995973854560118573397813496951716247376818640880128541962828275278106491054143829153368528460629901498880910958035178554303598381534317738381022703448636023395555730851573601805007669448163070500933533489530746465477724270122493859443530728107220383093595178718135309406089243981336501344815057902701227673851736406166649589618806171870448043543975729182058352508887460706454220599870724416211099142377178535799134564868335162547858441060276775811385366692435034406708182970692380852096243828774889757763903402482438056840442730913670099066914359208421520222436580785612828227009468676974552997381875808587710914270186391341101686241538407208919374749677485113054178231547693538361890499379932412668985438017246924784072127124783551003833749216768221238145821329941576551941670035299554534623107871028059399776364398468657077695578724501121312099221078230751162625712494633110682350060516914904311712319267940563279493666549279842345371375312003188526784042727493112299296149334750805834602193661205896715954978608536465926986209391150706817104845643979077101704564642266146334411454896321173461427351743245060619570388062091228015092125089426607270867249748373171938403361441195548910085051517403729686648133256007777691225502079372375550148208173605509799613300835442879433020808594558210031158261314829038787145789686684483604113032628360407705996337252591190048334856750047104512078730809860042627338863112779048723295276553323460264841803803153102291101829853014742757184807496849832851067985571384294427717565906049671327144524466185416422123405647804846065244932725187890779253016318369472053787034542244803389748747284007940791907689068797375903664216374682423602948673522041791046297524436759547635280336474669922426211645878941068483689606852115008999256027333866930852589625018561782093953676829600909858905643436193020559551972509952499978915973789322297257386532445385443811111131188150424005343529635902395723240850688017885182601967667593768417396971848105422046240261516475542636920401701728337262394494880615074379408499501248024582415627505986522319992854845869384742249383377874605993144720163208394062208020642835673460334509846865946213822726499887372375874981972197976579774599127759737553752024715948954266486656392763018548600916510648130390288131869447298798987907907525604494313797800666292068592550202484076845555329220517635303145536460683337333345504868220198038685313876989603144661074435439754690266647654301080084450745228694070097451667097926315227504740760757134006335443364176099663366667247929239296414848773071104038284225782084123900057180241917384232768163169960593627002642027701210337499795262601199254035694695129944269823821028355436140790495653371907314514372491369726308019141118408317249383908044123395036866778913659655008727282757772596138491560637030212430923848599636332471510298195232334156186765281666343934282038346039644147416166382684928707261312770263128682232635926385686785557350462322199598563840200990244832521295667303788928537894459093105557494418299804515240967155580866341088200176210397547297067996809276801335319479926581752970878057061660664542130304712112615100673749506951075890766028665326889324299783672094531792545801374893010643013593093277505842728957857754275558245227644775523945961104135938270427084776312645080666852282531921528981128208699627090183233515912680466746807174968959296455713613868171173456800025711002678409083804026395914894686776249104597347973090227653819721058798793935748768727060729948835087858828273279972492541998220935512025146291493345780003455363130763219261215398107431198423989199614846896212262644057167813559042294407899133268736159847050671420212133394137245326031840531834356584708640008448288377125281023418789346375403789696973470317771021081752632717629231504531042739515571608041279343848593041425182494296098999381185863793749595377352072263040425535698904420659106821989053597955425597168409030049022491705354883252981499109889440789149850273725046196719848530952711199309624911934438027414200319736973731241025259945896640861125837137866637102160072609647392357112745271674468871810502946151797042351904397124479710409331321745942911946932582481933244557889139450727880820653736586787432764716392587801948378161682260620960346074320760902264750389437810157242503868218121852996273794670477511283258132512073499868377211273700645573881976138544505325241511123323985778553670794869955467525804565753281933537841091754866265780613042730465844151195980115379273032976809400023692820859593760667329760407622650884874112633463632055849048971143192689847231358861037577611525577801790528435735943194111663598199678375842215456926923099897762433547304376187600992973927987994097387149329041539556889308653116745606438596371066920143875322225521727614944948126045116711529588204138923075439284045603203928078316376307333716904274748349789897163827850436865573417543067953021125754371895770144366336223671648630597754565654300057802187585463858937702009862928653613216394683215416096702116541193507279388395363970278865556447423511479022637119976344694496577681524427253080184976793918975409010083137491878103151898822897292336150693228259299006836405256908586198473411947099115910173916443248284655857147037356689139664995124411972267860129900328709698202417533528617163239255919827790776166973581178379407571439855816250216828962316010497040394898493977109042694624657011302060126784229438566572560385115512737465826491812529662051770819069460134217175245278392682419253414856610688605062807368328432301028967493372235160896790832303887872675110394587184822635298415137056194593545262213137782659332616540253499091499445482075082937681246911541869340699967382926903638236310711274485133213444628984169617441173671041435030113084613468203528131793033223017372091381861969757111633834191861523646579001055875027001974235122891789523364104621783198877245660130871954720245290650916075379341461595170165507647747939631502703035079593689232545740560429687741388252630958603621522025014934124479575083088988072768174594575435151661627833217890141846832016207473838986412820735889702495607295205756180106896455314652276327909072016632184375949304718875871814846928594591146578533751438504546673662432328346424203822797769953840143686872848453499014322611793714732271453453762703488966288362031204058852890847568326203745943802819717553023739402556781515470994507183312314566568797276747214561123508811081671500445290042376954573908201872083378384377889199887088121079219295911212981237599508077448847328927481802976766162235227112688280863676649020145346886945000151448963619746696328753740731889778352699761664198173674812227593061290020471130914305702647200377685128525875767702909719315502088296154920743945074736872616611105207618640373785826147727993670890102132639818490643801061180200477779790686834453854454898317075097561953892104770525635629582986050945746937114697136485366891003464145983822866679509540482228301811751172543795406931618387252396503349857597539285901159077850402315786260922671700737693927256155133234063509253469315842797808827141187146324146392036243939617559557557761897987706325035316449737562421572537241883952328790423168642321335979569326731019015819719593440404799692400384326413076923392897266004239150665153668505893318425866561823807572315141544527734658697500867527392417568118970655422056949372546794277080994464983111752392222208373165704595230191845266140202208485556223597491161614378418993093339565380329191744734573048837443545647334938997462901894488789172906769526252436349684833877990781390452356166158986891460178973491239877467760987134250541491301573663799140924482854432237745162849253952079282927225303415193947483355319436417243809022435519479218023637658784506798325764798617449142391486935678195422056699259789681156521488747797018800464323946757997954415886095260557702457461120303424217815263949261988587901721082152811808443812942481113916450310108724275226148489916996109203301781679462708674281765247920194961849817999829834704687342999951172389836271241490125961962028824442924456998865665280937133262000459967302887001615167298919563813535518482221412769077353167858525546547729979188788844311367138710472174432017744987440265335524428469398788883563287066268599933644438973321378504579877898846107179117634313356170674744019694529979166564393383389739758621244490226713464909136064581178071120326282736857079711944606330001285647581227164293112723208815989289400672224357739159095850225177207563356048333904111620914751898151741226820677086775031987144778142746258883110986146137748864195946265722105010283926212710864642463781446512942618069775074782912641543360770306194405019015885237562503771186183744347495773386346090552938699094999755748376279483165354293364145752766114406619888031225626983037043865302251089097948692952560340207845167279333791553491863538886132634287393105309528174920599482856548620209099940097931927449178794184311085403628123702842992815295978068328951050136077496470935331691683757415920487926410187035678281881193293117410475829202735303875181473657081301862422415084678452476492899361741661207584579762546683875019522669757256037798768731745390476403654185279083586348369430113240798018250348580898248492423217134372287083394676197335647984156111333002044544082662226380392355365810031021338952645129420471437271755433830814720469015508229018826936411559231026094619292415804928097084578090691850482654003471191051937138309561103273995193347875268047758891674165347065378754642412328099686855683467668058504776527439049315815589903916021432762890898435034511334128744626941554956031476543772826552985295717418098323145622522284478207445523433679346399388885484488061986849062191968401130994601014066510159699430668428619026557552830132257679808280039171518380401368361938423666014089271358864124964544074752065750460905506984727039032474081839743485695477338604165849202340789493730891842618969006745712453904808780424063887082143031219799943954807749353410175279458987735702203778407893254017812762899870773043666951716252242633446281758067394128259595714253814846004444888409639693681686446796657665871504116275174549922974124220735043379252802704548239638659975505252075670197985577149650291025752184659373750213700608610713123886143982180133254448161842954624402826437686095815184279004126785438334310619349731864623144057333465823079405290997574554501341827514068013739887013172748262408334588854405504247530317497475988889164155669174318021613813044406842577285338358251182364314843902242909372838632263662881992181935754353529413530848589976538970269461611350958689075879401424799788245091780602107054415275522348158755674746782602980074227684010906286673307953225130219346949299454746854432785152542247151568508699603680369430084364264260305994803589896728137973494363111899637032594403026629759781645511803776300232132403668719847170658853318731770699691289525390969225608611380862738751455121405821830749220874636785728634671184210879392651867799371682918019437637581349458493254720983594075889694643553775996519529918034653281826283383926809465933683739399474431153534948167059522152180269211134520568900001692162912637973879954716871189929804342206313527296967034606197932808480105299632883064257315565935286161455715025051469597612271214686028888343575631961318332306225891414029040514618712618138476837121145517648026980740479244949428353369385987519679312529640023255345733328769513322435260179163392240881763250179728516053294951937467915678714870592697430210976313054248664830714834992175907906555238266857166360080865025317163135934474819132228420331687957760013794008970676413351973760652406688461848445751495636923279572651441165387925436589189944048564775089805000950575233530852288715832654080482900644359062351719085154769566469065918150978350167778402233768970928902345580186886420558862670002863172896180568765818894677937046919187134681580490576891728564646443735726109495216428141381716956307631178180273599689275400333835117790890925512487826378771463542290697640221621451955556795148346220196079015075016512793432020501379996283737280286746789351919098350491504827666127255142144481607910895446341051222928791376477584619846198657421846129308172233529643517946099806704373549948666188840362297149715772017286131076980937565661742836787045709616570120652271209187407862167975278878056680256683764398796020213712903752147964767762028824336341182104646260988792789283544649730010152550260229878293553097061000424020563346808311699897090034682331328330543065611362152830255247958373686995678550255843421996880142160997939984736172694884220367960309725057453783133700547988868624381127447163823930525802922181657676581317617160560096478753249342153019345222759111037840420496430162221280789673473064972039567312771925433168773649049745011590190942687517610243781232477195392796268761584196812534984519640129375845372180107400610686777844096572735452454109344064269468391603826671071168050436153658661843124372197140067238316673160503196919937253753661654201333359012385857254208354613982161020887508494190928177078355342915958780345321166521797639578790334986296073222959251774983189856361366062293048634520788924115346252970969244653311346962105443388295240980256130317588443217380826984738891086882264482924142297114821677053677392981072043817444708053241261902821629231093298202756728524399866577500641042330645646043703388681297282863470210518257904783659780367073403150773875846348753396344230534964954386444626680148841930792962192986687727536471876017022185552218080829211965232934482591373092963000465844313250871557385280381066714287480316177656088458107198862136415165507556925628791858680430434435768013207906592591784640820993716716082484823675617516075069917733357377025847912300732476657965720565915365489612188150000627151451024099192496510086892431957085673073211922408349176816563273793980048653886177001890965878726248065598669426702959445441761400999705081742683063311086181441711403243990501455358029513860316483159258713955920900163973488947605405461287954394700092186420386101620177461807709294722145222572701255495964394446426341506858533455244672010262629431983524333694663761539727228658601771224870816544380107918500652127212520395247528855993816527256643256289467853124472960291760291890903626829842872508461472926075334306576174917319366345370310982426337776531137106934379478567076597252713494744788881233429549361353649331094989258688759350100530971801217462840209663720423695006724528426086270104277069468920065859047307314930458901298574841515499450434705539427976593060128967257249884061856743489127398842018398990128375943083177421226014826654548555953351190785314278953824810831749524082434499425899391282140785006511843768655099398054439832713700658480001467339426032707865073766649342853928030455540745862526755926523810907527550095601434147853572105849956966247830439692558080567074667840718912396671197002418082621293378410158046142340785783202865633099097023378148061235268527886865924942012633801242081142501579656783196764118638529768697931548766534796631976259681069531932715298875948750149765653947778062679420725116444100439313321187142375478731321177171748677036372168827436059396083570255633949975190394316797649310801878883126276203803970064118752252222256090510144543844162421679826859314154874686083392034113376073959319901165801004784630777990432241915520666228442847274099956112238099439391263798762720718049723150920082758414705268796547813973342768441189858893077913070641178581867098604516448958521275479049698569475635473488248628560431586564115994199941643913167981137045897908838619487232635966859718580372786761414942521199669925373394516873453785915945155962076697014987411180732166359607898426806632103133523916144527716487667576399188614331667630243796441302064634863743783792859417920144901445836549056570346643233758340330993275287561758096101420664686503191843671333736870270827980458130852529024569192715087603466932262389744660570679338841681802479193388550718120583371219233530885044076784340872077563592256474330147923316204613197387402989645286875458279219424965975320174026161198856756078086247646669165001125116457629474629081699410202093078026477021279307480671198759212629235990000221679542342106154954819352960879705515989558764286553375191582767278547215939557929892124308473421636775872544758046843183474836755466408637111516086479982574805551730409650188716549234046911985166496961618928938160861950775456248118194170253763850342829422761537208115463888686664785789799443379846509262288095176904902815933602704104831583927979429954511197747217946389914277227388423943560931990951401224863368753670186267998020943644532951683800604999726193217477692061375299315939032259580758006112440949272836356853289825308986717536005790039882999306200090308975427240170642467038841866994462825719253451469270130122697121537573369233610736569400484992914893050874879593127556161678465412640742638323120944244862483641120392430230777032113257835880419969938497141763305763894008793268653010292624675006748329450510851779629022128775564286548043285031175050682162641207688037693752523559238581138851142271923661764255378624124832707469890700014018062935182971391096920296940615851009417748703015166828396402551155490997978405766605548677907998591161968396361905193895590097005459684351490784845578743282585910768230193435323168842418680743228033138924460955795256283972872660167322245655651527565438038861199340628917992491589297670064142485831588891331730942926304655971951652789848696972120493028779578156755995097861767757654778625246902851850772234652789537911808681799013985384893327856003512432810311279922683183893050383286373064020392222856472213884037214673187615162355738415501246675735429080358800645567468501788211112992621234380473241519540877756599365364162747070279673099893190321458545625657979663743781773874503162895412564798666616591970512662675124672139382059905195171852610192789956554291727572752893852552310101627482772159685148087792149900493614681984375858696204031521162442002458780691764598670978141148493857514570294606784852934229871108537012963448553286986003297676878031554787138885771024648863471137660747292337644269133569934951089796134847744859053732016411623184904865434618282413331055349251995894881182523463021021867785370901609596692651300331097237752239990198246995331719096184706831307429285393013486243145852319086392667550066502435077419404886874306218760924502028493702232449750750402193701828968365683856140647166801918203961168832308585774512162475217841609959612085156650831599256595589042763659216082699433303222508448398358688676343942985087245250174716239015245008010896215698602826468298610029440518787747721047707292045419303278550752932883428498001361887231809095829570440622384586613912855948279045759496851958916897209520503466502957283790360676494334708240435646619284544441632998909028304544418951230818097232723269530470047923153652117102046756816467577594452739547169208474282275512578873845366536321025334056994061873558798746219558002477070219101829398705345759742136359550128685429439237298564645440834205050395596177607872002771330485034643365406380686749808448323075269443301353479040715624314521542328202814634833843304459997794672445490766435935418776534537657879119514098989639448157161746712727542815986095900443208484711843905983379653716614168830055672133187121943594412856371564649201998313334919977673231498513156019881050015800562753237298903723592033080563807157489497263849972721040664260054475795277514527018237252127301853385787652358474612414402010802153814069805373417301681785752962095481099820226556110370973662682141898243964958707562263418463924484609549836485447473679539577103858812326652282453620849739316327468221051377508506632735438502622393419508083493088988181482507936245361142006213279708939459074127260050485179543719590254164909902832856203370397925365425306083379924328685430095115017369464363199262671460800771500467666158488549171754471270975556286226930323568727244494584871760373395973346609519055776363545925723519156680367390309130031091191611150881320215102185802381312546857452319366149850474864949387822035222872270327768972968173654094818232317349258385442459214720571173130375388923897973332321480493068837027348833590166576398016352134948621090330167879051327398425780536301739860219090471647488240913586660871604050114352772008009892678226561320444236959252292428131579479565096946363304864642069723992191347403673834638108670102370403575169209519881339587757787210121514736168710540040374381985974763393359979695174450843004361914014239139004131053487543546808342941733831996386302685656037894288137451282897115745807071932531597641181000399016517757670351212584820973899691205112064091477703488908445460710595414634764047958996703293034287365572716671228974985405402371962018849471894199213917456893997811674103622108815241834701635211780179064913438319141989516942786238366907759747494287850434507075583774255825604345427980705629237804718576927678058834921946788758692364284544501647854351811032963837441659717123720810833476285313174072501999854282222836972834086767816394219855826150546354594180519135250273665851798511063778894045174142907055596172536585534077655005038663032576679780793776515883078005784448113540206134739078521737679883194618840634044274200932158853527051997513963954670335847016317473184629870201963381687413234626606646684973902909920672406775087632624538949729308810786631192428615892074392933261492143123546227539691371526247759931359892700014711609276097072946339688610152104999668139396591552401010479672038677491070407979362429779734738123411510976056280605201577377870984715908516236418486058957966728375885556495234069018558419032757176550852540440240367118639324785044103987793565956811507195871604832524271252579465796429792762572779605388073049865277909743254444881388404419698467038430002557595155522528645839219903974955228309086327515202037002754312154998104593651470773892112709495856611086567157162455806622843152579610379417198355501147856375972857605045954608236954287228454125716874899251209515479372790954449384259450109426878045144765494586485306076424869104835238710785641392193526737361474157354472893942420504439325770248415496891281320005081102457775783526678685553431925973897850016573042264034891064859170368044333300385439201989527413716898948722700703398297164803138737471071860650843005678820937503507601630879834032192629184312223351909164818206034504313022241740067390324693360019703890566799896911556202701805819929715728060581728796732874581770456913846613926408674148633233845739621705567944032535378074243177262212358041186751328999934685786106774323445895164639707697131412446062642171273524156713954324796915607194317554893567200484176056461352553659656057444435243142861028801322965797321446812183515620272062943150687206886286081436823593209861172819827622028970417725552065361728328181043652432996783113410302066563238855738780779289676163024373159929586144555104240011536323495632601539008634709549444573537299283666820672554766454619591592850409160419640008011854886337208900835995559326569604558644627609986109208719983076849171514677400543239102126623762599195500354731541580792616937092342204933747416368821983619997966753169327828105931801538608963548260966075434261925354150963876528069972453435512870263835587263309334579507121586360378513600080004168469621609372295183931891520956697833204731527052398022528780871710202485893161120066071792687363676955646224582323968174185247610083998980605379733780298696775589726025379646267980069888299199327587737999268229188345997322396684047342320797187647378696799972544684702158256882220147544279963147077113215329252966204447537308350520916361116238413083085385611526952761558778409974630778354300645109202844680886891037562835184552179178464532515346179949391809774971280043283986142557446593326125710657395346569653813400391480925934250027513477554416894392939594670105830649634164999653547736500741212953275751660349573737197267958468261019391217975942138945393171954636192735044263700135277465432365003832899925623898849116458892932451477789223035685431175604946624112737900896717463201388987140043732555197527006119364458665244895871394978580482257031845825343183181905432407038044554450272493478418454826629947810865374488775306813319569768610018477460707970953977695459758373660729624725167756555003426857816081184353843128598052363889096962642759557420752716074949993670678268099592317579188301595343024335631384897290441542509262704935434065545310424211887207817966028580825333370598518578295155748102053328749645253557575833093912927428216382452226936052848476876597663045068672927008378130457125548613374599787814035134369082608685201361763359672191816415158117924220836683337749638572345924044349900695365719654961284724334807354464620430505457446627536129885046865693907679992940560574788077956589778827631343225616141943451635390874762897716751494586584272553470440714815536464647610218330592845549164775756409718548292803142938953062842626452203869857517187483328545614787735653109892718245491575177354850097039788415531954373395231820085127095448235877572118531988716682217647436291841513827280640426257227057378000469103567927547076513811916401747735458978513447806762696386762732415873315039786377191011328335468458737159251940575299940207096617102283741339356049204862871198317550127655457129978934042874453060860249498441083055445778733133363297367138494669176138880313331763067313712102594666022974098733811181417531985526320718307102846254364603379427737832473495709777862385719574637098069938941228356823979483675714987989724283666879403237901984454407981103948170862233984933062087230584719343229919704876826849021747646864563587809815825417292040074837580656751492375137686701054862321276745883916746859266030423083884887877959922831078771686776150365837569978994900092515907955950012664689401597907940094448494384229285237551746225614796038070984445961658511978442599026646812950790694739514246961098214880530109406059338913748859056707147432511954468239259462735092273709051785069440903547006250691698772954315503389035598595808825173684497303159469850623853781538641147775792186426052924546263544552888732646061505590380052374083412328970123465498747703027523054357274274222124155147396178126251739181862192888072456939781949913007256504458469081064399285486697396712429720280271531593015998936406744946186708926952499213256614011585823080310814895296860962745067733914206521134668490731083608102620695589198869892449996012996840617712115795321731239309317046153660706370627280938277436908044238715061128384177957889445391037263424466815915456231684585814781981485793375288193173466102401137191364643054259060201465685466671361750587444536739391662152768719644425052548382056485651128421353214067663065567156110016942192942957800850091525887395463327778804804048228190875092993804398832355290708397560439009312782974951774479281311192991689865279438533383370580020202556099869222868105055313777968632518835170578103501694309129508198261995180703601218836689702245516928211678864658624919014755001538834491319979760135284726307287710893069409139602514454240860373821838839576697574352393875874019660332334322273826337010232744541253042633135508268590399715719653191152741060980845260394544415660672446035176934120936273779638732722136475004202843149842540343519768483486514532843667334413950236438733001043573486762032761961689833747734118244477382322762315854539398448845694896853623047960742162665176547094497893807002470636927403201058141673054541427973072414618404410667496500410471673988441591123533838386521656899655951873666421002483793082132266270649910147249906891459713849231551709175740395325282290665126118260776603377618326300647694402251061459287375487696072936419013882817746793414107216608367058925046872126531189161578593729597001101173036484538378238797946734567571702843605984347104128235119209731987462490991684339326773465143607379615799631325114577805882731128156433382962757704791945544326069570753135974942127572309834213280284736572584215334633383393507604131785808505378920592843966010154921989078981474037295625288216568442825692567188002115970809986880368381516241011365337207499208456408821309972881663505207549901991358126220232421874128254187661330919145003524292501278518024234970349426714186001391869392917572962782627244881197018185579994801128656730382311204893218968633568613339373981259972636624055289024952365407709899925022100621204312790551355016640984876445976636759859334238141607250401657590011080912441899276503538631684281702725310042175213336397330818328192799640567031401405538182759708271190871886064840855903375529868969727548022511321553841315857008362982192385184718268485726922720063260851701118071690693463110202261813419620163014553495781809309600910225973326630385803121585167993957207643442717452833279270411541020046833823135744919398598106159668269640758148835706943933352554680111454636403997206904868869721664661529518905598288094627187801165282787425902069131919667949129597645558881882695279161400303853749217859248995019148407961544182682409056210952170219696561870064257955931832627102975366812821227716075859714367428259264162663366027681812921229829402109279886543505401908096836928945471162214328579250107733983671675943180606364764895724530994609631723430714832151208012903221525430991051358006898235351036245804157867272168181555599446130686579936850119345559099481849744235709933415323273848633672877329245746566999870390413184372280814779120600796811378850857254112460391889637052877155833109203370068171953356113537882882311415277674748887171417938744823111840087403367242016071003977552289927948853861359235268229988871924153613220617837473599297669204364424644910823357668788688745944004092572352976347513548976981938270275006965175733524786279851259119506264221339420586076839041802934752823022736110106672877323368064262424584885756556259562639942405538431566554040511592581995887351205966970285272473548586665652659047283104953328467309040758746158984978975980194330361360741856511868590558099177904466701684544884229694986355814719481596794629665922279677285906661877981501010975951972557972465404795697575856467120374455554061866667745794207269824791626996576431150488441655385984170219697511805485755050863171891159967996064295693079529251734269101554093510482152088858614035486451980781654733222907311193999817619723783262227027165230671647824849115695829558618856824251657120734606985958424757974920167579606404826132408196719582337501974844377428332259606713091467483841484886060196557929017888506382768271931554840389500211613792043956796338879301815008451000877203789668404216375748421860725762532181391594103647374705367180344272837949364636423063270180783886461422896394241666866706512763161955815942864775265750104882177236680359117244942990818244032049142434048706331582930620400066634949787566403273620684053283628280026081679769433365349307206696320324468856912383780856699506471643233692042706469605329721926348141927208932305015746009873627245764662169820013053351568608587612856772045097827163599943633340671001297169574395915114737618268202857999925704579655070223424505303859912657577289615106491305698609259254843487910788932901405460263649071647600691640384999107070191872160627804057614078345765056892686644420677720202749668215437265446190052201048607837735388294002639719964913957000717277578613913519012803551652195658668523875866381550202033413822653641782973558005655275589038913922577008785916760217984398945930854176227552769551857054055286998235378610605129968140036772030677386967218481050872502984181756484934451373287682942326681781778826385238942530021658930606624386390287750674558259280757504740461081750953867266867469657110300318106765843917527832971618163483252143447509974311217982802416836160905091979208231367498001427243374143810219910373606294093686186427469216736631408135526698304112330198098178125636746173482689686622056721725609087749919147860343401905927376181451782963477806733530907549752435698633789347238721292574567119680535932162431654689760588466298680917385660426382501038364484668843278483487797955799012115594609153327575738582363228125867969102991601486020625003463353370271062355001892028030717042961545623343479151986079512718203613222144638089339787538316699294827207005500508230494037872314170296933597463632981728296050809310248188876861194881348097817517566223699961213717446857789739350349476087213914696479828996163875657877835778025763563875961283358036485447530086703159080116660410599433979001727203630850724381281152304180275032487167984330720088089747635053562062359719099408139180956235019688120117621227712498094063079483072463281271208592606149038199548119142856757224238880420041434022942318731946301185673514063852225672262548651494339397599329440737416491047429595270261332949494558950792873481902792647425582394370157530348337906338276064333606656365013717505993989815741709450226209568781320625819748158657710467121389883386121532221268037517995118245637692216978967713608900781074430309591953381407409123671318034394594204403207419611348783597507322570025025276471198573989587803560170268400992482425687838775464856887358201531403309668588689334510655443430789177085046291941137342661390158378832242921089753376884550880317544222877626907746724559847191296385393035145922363848520365814469221085436239514302392845075041344298231855632800759549536551005583995395748163542217690965655629335815375606430044826948613216042999223558728270437940986265937045918543207878894874609501022508565440593990771792508091131127560155853719944014321089849250369208554889372412834536669466434367341151284036525035502575115324879532350072719155472275870144215164366697396321427590039788960639322993775692723755950037542507959391497725425840954062628027729333922257197245071553154142861040468622735139089298149417184827534204432477369647292649890863753193331786861654350604841696998962465892202101731396509701207556679864018688472178426469055353673514803692380337411648822304176166588578722771815931344816973308392501189207190367062419951576224008219128921846444961270350730886596248423347041243091573069219755788145038702036734834552859185920378763634191237873787565112885270040306635618758332671152767837494791092004593788975808309203509404853755491214515715640680422054943067034781544673607091354597922452229117200451312324809648262555731139400831116937928968285199557816264854286795471868110972869156226706743454079776840941743436974255820030783397398098562486489535798856477887707529642245025357508781677130473963877801876893293139127498030244146208296540492419615660418807600374423746703744796248220204280546894755279144526621262864992239230407830343031881197103736999589362469884430958322180515700881237504025902473515206034388148919141850685575450093234188509815896590111366144431358608641021577773375467748496250933413644493801617120498264722973014191760069783252789336914565823759376772865350160097804862771185119793831408649157041934459637836468120956467251684221864550866552193442084016429781620237625693187075338240905794586419323618945674938903001303309704990693903481405700783453786735333739500789819518391433687639702264307896121745882132088178808842973982499062304790112180783435685359169729130907174779839486272749360767135696005869486634603243511882507264820932678926943737417951391984790216050530260497686130359390020306246719046701790703012841965716196360633828351220013030415770290106150548466965817287321314686513488961965222770337797888300217264916287504569783873218177146861403728154723970482277068163445545854646732061567494622708839058141342379977647381757200293507956003213819443079616059900179663263270165567916556234996584945442996626645086920540210295905858009565217024970556677919866204114804307729978470033120003444002766372648443711669621639340513099230996736468496952320455961522328825636390292490460848043669060160889719400003828998517589610867919400164174861342261069485382558049599873700406462750498162449030864901452030636564621198208045327459140987039885504097180933851977289660654275135655596137010384656461139441318801137717776642649991018162561133997454913690824910423166784680414241554978152999729089055790553145575954450454104815108968971301799099184222589470289808798924966221362840399931757840030394520299702240226845201776120511433765187489187726914055271149175101359827886565223152965189581101570675249499950226110615736685980599143015931652433525373839870508900434421941157048109464168489987216881348614599512390146353131619862492931887834448749329148586575133736723051602153574464105748083226430507539334808673228829393125031672806746183494112513105099137756527654624619607959494217355225434744411695885967844729826260851657455852889630829151383414562911875803959565270823724647684710678554220565006782192241787304235700678851174906567582715403523105773145634363714907393057277501628509918197082024627842004051622266108548640040682004489761335570519532620050489972231594215655089555821584385165316196360580780464954072436914656457506719810880129387879133867202103891667463957384685136418690848598674959572547677354592123965925671929855240127243359178554774674923819211607929427514650749789236229046928263938569667322140524991700099290768726666506307511459659994028861150138768180986241010370253575308574542527735635421379927401787023819179029191236179676561525915707157858160238736672167322450541504010335121133946595631429344563844756960837997409069900451734475533885670624241239386248211148230143437511408464035709340762773978330705712830799802274521226156180916941617758509326198542888398992174721179437043630914393513770533354035041632599089903232759510029902036102428159859427590682884279449346718840014954329335610456191149224680248909859722658842830932710894599421872674977816902636543859545352470163755462772977194410532278627597063943378866638141287843023071416405208490523832825497378597180087027232757644700128662541493012085491941513709126681598762843000421399520435113226823183380978974336695389743029844748231631612372949369715167756522661385385635323947955710971472421162591849705914448955092099202693356109048569671764603567175319137600847804261326230120308398610231111569123383866287695939864111550607016759072117899701031690859030540196902874972116183586971338240459526712147670698128376289478847668516802140076082388629081402888801294506670910844402402640991317589908258690470332674889512737508988404624818362514132596513444664435915178102032825747237147638091022765758329792894418968189317707291243216187829063145083137954458747893248540034970362948919314649957844289030713325731181423755236867295766440096237214345925504487647276465068391742581780238287293392965828016797903963953880809563869791676627578060042768952192993291372335268549088281151469181337756741320656073105559453547747722158854137769841204359813808854788840740690604407869481539202824743464778419774537816914090005110147406574082824846066639256959923850561814086906236973704274766347537282378683767075308283195278435072690637125442980524482329833179932223242152856730738111042183096250000303864447795420450766069414442161041708292666627098235795842522540418263775677017697818587827766947884017985901551196794198439579157859547075612910173886096488374211613835206142169254689463464327810146577667140880887470329653231041762974257443301579183685977999568539624800082906307612339473831151800991608548893806532331938585062441653671721335579184450771905849654685002620056544995338932688548505174471135444458667838347947315714544149074883507471367519157234361772183886134767446734121149124708592453619918807057514840254790346171814301677180224656684578877085050334592689617712983988022356607535139509208330917710143471872677559604471743558017835599012066300973345989188722841545231467298060020183947795198632177504970470238437361204761054297323457794305044750442212232950788235362419337951344516423155716837007111205292827081067178234742428740383355230437916438587786643618523082659145196997117218754681996260083464240342491602507593208141230953786503359205872688265711806897663114691088156139370905271056184812733508356227612038815737838063404139427775625674598860455032298287568318582945801792162371558892150630374890066458507411337802701916718288980154189354143642528511501611670654172135791327454655487156546661068633922316717581054914324940521764485490337471132053484066007675446933942056650155412842229746575172513233866136071510492093862903818387161200737443320658130803059055028378877409783207507997692920951739295086549512168122010484707662214058442349612889805017793018422883392845552953273382467461721241814496690034845095799937061091019667357560314372030349930223374152097625087814381237265600980950896423268187039407695795812326315194449907737821134899513890438806739340376993094032506975005368779820333275754071752690016245571367496133129695392006344213797831486394068082302883064272353673784253254390244989632142164682513493462164999141258176813321360459525190721991088045940479483894857514699285268218269069363152858450276277441143294421524302813275957677607283819901115820484395540480022813476215920345848110557683737498837078623410243992392344882446587337455334208087746562480059852070293065251638669101600873804766079075717011634627292184185788124734783549538071983772871753601147076357206518168104171870781603653986237255956626008226087358937512553300902356697324239195032218543673174067843737850274204192656659214733698412011107017133533904768686732970925760168968823118988723552237937776354043092238466304881117378111996243181002550767877641953096103668838683625857205112460135870498762310152094067166729699704133511185277311660540438623870685796857553752655964283500906505730052563879928856441153354278123188818025416071244258963728189196985517857633103484422132859274566588840650176102762527949795472121207836524590025032142030360989333001760824442888825749309500689514924803328105576932375651885586869472705827118458812684343757744786629722091940014988003370136461792489897054987009104764067706601236725976407114534132246706603215318981559653635444703763548692278154898866912792560141686008287061502697703125097804556628574480176349594255405267801824443311573920335820885125507266693636968661956064780180458477050367883112495342792374023748810111236163619910919504333020293092317618665982464178844349533647525843202589559824441677801368251558796155572060769104393086124445621957973418900920950157188163597876677741444468070318328162148578397596225238848410038616940421466234523419698539683591255771284693263601571311636328920433885322840469552964252767852583009934896544072670242739235844372735551876868940231234035080328600873640072466159847719659037275460679115432994811424000283043486739351387957207924371798175800777743820946690197316650641674556585133351420669056094286026040417352380358947193964852933956055207510926006802435968654529663921969451371254980172904811793612708798012914665004790936322438753535509458641258822193826479574401339201140564250384837315049437896783361745429086686290786388818566238773761918384088304665091333214493148088132545921082606792685134879842566362519390192083807274558784622681403009536484990483295619788641833913063680739177038453860207880034509527359185189525553743856976633619810341673243885857653303187952021236644043401811452123648873494009754678704120587969306801822096182287889014520440736212661256519564387813008799632520174194180096199010863365314043656999974673671473021087222199421211456798334029147764328249159080522454515507559678313123478009514055657964158106955548652156282187614785128806099437966606695884059857720929984718784590944231864258292115061114792174438732654767562823921255192351171073164196429992334905692679657432360518563531104459442497463484401224018384766939401974689109584336170015052685862675622453600944570284075552947168765428612409003050902852477898729757336207562972589251037803748200340915833582363460181281955643847796023319183309467068035411066928105530596502131905941465461870278370525164430956582876965503527771377066175832768185068472683774870931363704194122091964467073208375566489797979457631757654578432463915086680931315912593382941572793829862312176173290132859649080335997771575169018758320187016854482232481330085239150227384977657155884827506155625248808499430547585842130674898095499797495223154730884843199309401389641169097047758739618660097726763532582248569822774525323281038391430882674656233732553171755299651381844650981681497038971478018937064194442832502132055739228746080079135589610638618048870921793821114420461092790642897334098119600037221968027011982191201339470294085330281045588679178066457731880959024470380930953684414580744629089621624724534755962216408124062555193640986103520233515209697078674649890073244958048677905862560754976322353316178102248144808710802680235676891640487316708678090583627502692268256655901508049309786247179796570614618605034753912296120539734329555032794216404457275313139554233584184684106638042950706290754255500797030490811483197388595191685976560544910960018263078575622639788219531551712926211809517836285655883642178363037492652583993418400932713744313634917838043306874637481159600695260994910861655157039039633835143078897444105361373892484974947880034317251500876037058944526382184364395551156436522198410519883168152709644380504700668515147396095869226110558334296508420667820908354645716679812967801611586982491758660688657006114843273412709837980766989705409664818476659074920692475199120665641141907211649379975452059475572982250145860662884130146083442938792958086727684150653212153550526190332213586770407327422816640764308898713755386183874378808616000489548096084142509203091320921238405051833452442669054663101733748232067478274984836910139605971849954436915613625813956324304396061903734703910293797529695960619631173043320857496065740784119869830181097788730892676089256585032519730074342759746251900860577963732937892965043122648035750790462386918586258895356287135045887454347278330612550765928268525443535806004742608119639428909733300506069900372643483511640864361485652029788818656741806083330157400424304986234583710374788585031920291349778009372468978196398337865225208273112977815100603816708512351217090253431381970222717103804345218177639639618474483948602170429341536200116235472954566093970636591263454764646613645101730303585259215139722326009552533264289138001279968279465157181304061804349695586694197992915562394767635326543486162382700362320050234943335371171693184333605781946745751279569437928766899346798071525524665429088366288788538604754256331673712334149076638321412783425760322511150516546571198134113673771824584623959642309459619565232205387679318579651154333788792579212363500844272051225327500778953884264000745257975397360484460338465300000128509069728667678699746519630361915050145932787775362902361944430125684167257470942120281099345247066711188417663035792285900928510849320266070752936559338629742133604056167118484367977934802602937834669986535269011115892017651264210460071337789900890639067358510995442471938621019234870321205655145976293377144312804467724032396757678747882324581365806769318984664682717656739376038680283830172097004451016112977338265379465722856023191703865259180108329024491870534603466326200715453437128552433446111008010572606645564077273016274912797683676728333734423266936750516615337922039917190552302446225801822021274291721623524535462690456634343570978965819938589404698783539331902103631579804582506490853041751318893106483647851146858248172673295021323021941676186048152820081626970644272019094810118470544133337442116293927051842912491823139698342718054441448531800773637224366207901036562048902818334455966793036294672927127831876185504953091932252289369483001410388794349163768669562446701423253176321274259244240798601556184562060004461103516211191945452130446219262403693447474688146065355476137076784922129957383020513779765028828959084386534409593530656095246661890462625279966653973049727369507568195154051555304096057437198686692903471067566390832804167588908808522211092394197236346374148217347509834229349769184664328619032783676820012342212250725462948850696231165879223445163388418073697830093573457479811055083503752123137549021149742878832397574126903491099896077598652147024395941349296524541722257910541269081556022877953417774783217219971403418633233542589989374627544423575300722249574023025273706626520107729843566445333404497249525420054203117412241472735497679475751331219814372072421020474018812620800593070500479780679381308357280857974178584155204609516790880148879551212012159208783527833406917283968514780614492828369102588105956075232164272297356732864809586560035932058251491520285949656867903860027855773227017381903242743172470167745240958728348632305449449268758663005275770170689748677466100080298733217184301510115590253713905649882515575336312832869971718515142229851857262094867949328434487561669832838552196129550814456722255781513365589192510522141294154979905440939703362460665893922571094027692212409547568400202069646750999006284206717310197970170563474005491810752645016860968910055544292846943153523068825781819541654857895050155520961781323110005356350667718468338822550394196981291348650074510425325480518026653066969757673271686516863804361330767719551377336957668878588416423533596433980729752617742799216765962749751728580490113870344379894956695964079677163583058495393405487477432046432079799467514800196287969869094231529453130972355234054747361836757031406160903118920909407174773900914536309035018359987016489599355159750289897012265966296193982877816439732908523007745653811902641542001509044529813622507212595545690162415196276042249679886013101247341889794207790278899860888729815260759925547872666663335675208791412131538605706458508819043439586555273289700461865069667332873138428387610301652546742082807066366993614779302873195096778651439240967972225894847170584717366645035890055790426089423176207286285687679382337465538488210870925940823483229823650902210796900802486236160026848275244855009118513683504967492034751170058398481356337978163690207175924718770807192720390617353032093894722538723028835718924159961986385243716487149573857490616006733412203042631674718736807774108344793099594979980499816273079907566277382140774570179363568047364984825193674186248206483169455908587902893007474711085555184158628717039099675850752788443932268505426743808035956295190082373336118599555730030745517249788049534035550956333468767476405668145311529631834549629058305686139072954838992887383821978788247690406636530791160957713052395418633345858626426457645789718780553219398925430062501085357045850782834548623442256106548305422969189128435160316708506643862851765340450430897377547835715960433005145781852697858053359685364607823151997729909071672854212444222655471278843865522720458643791047043550048626369887871974112648648398545784876758020940365166548724715245940452266407949966767477515326940643899329996800549865213019203787825447946773724646130086437996793598879581358073842542448600287326729515101199843220342206054829029451876505971787616341175398925510238825562909887879724798790215011337068723539067166501989348833568579273828667390374321772360583503230919674058802384351660292183958545059071396534271847540782419924305188345280448529334848967120013295648619630626875611330654341723867351728371479450481287446866475131076946133447944590188485717345127582670088004927952204138241651304876447791548788515922798953924030476592569666229817799409747674097358236773405617367332331743153940530784577687492434334180567774851518947100573810996488499474636080914443559711515908738970454833313088237393934592790505417615443934428710426353310496066246707044664172147581472982362015424380535591720781626275624055845027940334070362129786163811169993292257594995571476964237873270119537729769180197057541044272530556622835535743690482368010067416570856507978315541965161508155538389855810381641843587603101037281956671118308077550969095769976822699437774633381711051976928506974390044692986142471792557858136573180935983997905425958551800882284573661740215416053941410526781509436376351594925395576092224129228730680532111625168211939006484573914247637382344452431222117611018217108546228461708211015916764470751708859367286054148821746343325925646171884612588770570073428459515147750944176431588753553735033506733770136400018779509145676736062397368443918858614658927000044362890934141455726024052523910378098601548591405425285961008332212330745978336771591540308803532997564393132255191671969331255095003145808815891268395941110682795335296399614629904957737159804524865105573753468098854683750609722937556021755923322775172128073984712351234637294148213633593631846586241030521086183652179910198890399718055179247338089261501288581420600595240914493367492810625066112141385934747107019758078066783465445580976608477407173643388785907014927272368760903072153418860227412935847723138595590000359752030400429939415198165675193969101496187689180739542617950993773045650450816035246519670437729798414596185958875446577313356329054320283047257755869263787607822089874912302478712686527562670007295679626049340795842463526590921477951794240085940887500119411608681075761782476205455035346110744114859595964239425583203231827030427439502994595729519277080350440248894315097414981198709723045336007879691618217820907188529567887750392773502674235750187792317177120592184759421625686641751225398521168991520281216434790886277510044307237590473135417873393944675185835627020320310360821336449101811381883699787746474251168334223687094953278708824141771052280970502582104375597846476862475452767436741601157881724227176085504557905024250239643447261055114708805757338469208378506115292479613845945310431625597211835862317923921146011207071962400532343660065967570800704686283312011465659917344370692298730640745747042993327917601160773249342189651598220780434899883979225341920369816049586905229267279499887968044917103291918229885145342584850217204418049931505445172962419552653506850837815569358047423349633688736787279315235105923793499568999481866124167683391939527917909289314291487284861446661458843021837509485064686159350294406717804520938418663384424693251917755350278845539317426410530666453200077057577622881293859651207580215392557887337094218993047339168821499738504823437367119567689098895612033708205515420604395170702195830665344973418657448674084662670494161856465163588234173667532330393161782042948782026831404401510429795034942639095777369293144789662997233187792386644235155329812754319274125342982730241744638136454001760037240250922042043218093763311072857852467627702151982799902501249113892714479502779333908286410498656668406781190527969662979786917388364864087400886495661181233252160058750223099453795146968219008609779456759066057699713202876053122258576413689264833220050917571228690982212107894686691058292330391349914745686837509373771459994778239437418583442124823420528415160408561026675207538759594763949236382357760797270993114787633330989263656257003570230441774254346545782998222962982444316449780230885552404663912645308408308504923691482793507456208287455974920037868644833116666458150611369094611255062773943384698205412683301793493627691101298969712062894216105921004611457305972747878969261754368313017919137978996752146070376681527925380214343535349923867577121669985052608133735894240889305897721595965667144884192598072262321506286556459803554516806831151939850811265473542244742790388789781363293766650246497021684515721729215600996449708373925604237307622703856858708676299197668368795747256497824964263614287808676660182377046124037637610328977201469293349373732607364692613801764451119776444912531294379911426052392880080186597021060208401081712572821118123576979589559076361388869059711745055466146658760454952594347692459844906770731719840502909590616572842052564683100260183915694549198714336173232090554213814409152973405241024366622861984794118486779830302970321702791506891360003863228017939930418593615202581055371992406594467223909487767784892653319464391534478724024390638788735045720549725771309479832361060754135667503695811216606554277636912353571917889035354518568579722472496340250702065494057127994510344515537950046349658034639240704643558595262177279407090080056787148188595082404299252595299967911760684697552389564795904353846214664212553322211631309356028994527310155886612228544393007402021865848809266991161647242443314519683605289245671295068080043678988034823047551275293611580957625663468154026380756811428929007833768690103007339464421982037812944632265716203600219718859847569102868064117309421554059061190561063477422696704765964997621007201763233329915481422054967821920889933664635970528862365337291876964044136926638951796654887245076881345247042660878341978712132068363824635062728560139286788721844715525787793671630772335143254350891471942575654590878472273498402586544560473674531611889452357513205919542083110627170433516851746779850633027566295688673667089366293603143627506669409795882284208604928313389192623736967202125274163777753916814885206751447100063087127681984805481056057145918682579628072427055440260936618718512679915006808775066999968250644817683654041572625766029891433823284386775558014398062941073819487205352029778403221386565331085306530437804753965357370962274554775391263679948229609486967372441153957757773088211590679473008529030143665603947273605546122689757003366644315579894470760743099578468377814082075799259181998065499433880229542747627719701457282088353330616137451869039184336444540362398626046147972002771607770467068643456264758067841669456775077449022232199130502794044390116466210618521874012917862090458726489795281365312372995172288135063924523871640943532182244397630153124809547125145014894216413608611588072546012975427038592758100543178861552747039797031855063034942521474650841842974787443819844978965551145230555919127235642279461928372392785213614373440665182612534393995310349900966172749345433997809361089879862449136742002085707210108259660925348822479460439995674494384343726349094370128651971422767962665514083286057312365644076448560297437976914475508700113360412190134439750430328932503834971399805729191360656798315612482404158084533946220203158380582183264804140822953914686617898119958403957807481428598436131253119757872206335200495847564601386692125367003234750164666106612673205154704346093513341134417697261439724388542747470933760643127794443953491723525410606941652459942158639308611015191703158163984208439533619273290766491999802644685506357498470765665917341423982180852782546871522926974041108520023420168902811372498332601464919717056352037811179539561300075575813043687544528405133081953535259712220629871596123904309934024657844926452851380237216868707278728724895836004065271115502178352575001860614610054509432342079346497830556380014076399064995381559637050269795929329006093522956866904462142102518380121950143352427933875692551712932575109638091356360640981536826250999539759218644272497223037389607386632824500485024066054938755425608338015573822463671793988137855739075269794970259557505065919483032130969041737911529534097674143784449230786538448416430894801860552960989125139243472640464114859989254450970268711862080729453334138328595264893575442584002987056325808858687527499805417233504059814667847707211316949331900612439680510690187018377284771250812320183561933574645347404861222735129599291227487819687928265072055119055795234500843045006183698279211140856023495670310090709417614025385224254535957700817806360284303127026720983926774423484603545797123986166814345207810149299153672792530807945509084668289909630669172570692504468317709730176890128912252254982480530238336810185066921130827982507318154869321781584300352268933678939906230011076710427256733623802463757607376515421266572200314690735721153750907423060623762178413707369347019844076341493815958677656534694293129297456381734185857197048116447403795112155403286231536954766498440738836058587673154791565780692675763838430045367284711194844243783041815500623588483808772333864217137015862128340987616671847027887504319831118835823634721811363126233199988685025131547228922999668779365575962439059675089597184779560083314076003104571429226692300111694580915418688990238106431425925209271232642069483387164944961144824668057732744996253033508381237941022215413590718199105693366802177611559043055806516835264379661984731236992844762907358620136213798952467572092592795811562676064553300480581108073316821166054935604603269915787585610318325008033894019313627763006563396295861742238411764394057302165415863074767256092658699163472623083759927258323573143985922306102473807399611669219082296298846160594088015332807430497648830182725148404206934693591650809422037925383113982352029058684970048922679981662461811337343225780764368564130543394031634002984840896122442555526494537912013130850082904421846743105922785607793557398228383965391289354403948188205734797994611767603343682584667928310628247629315626931726181905136562901986918399207361408763490333700010412753377820677664595560372351932016552491783886878296827863225087160213036821358593046337337192220056799676711944994468952980176171643460197873174884185399322755539272856553552972628683101918180761424475395220091230235035302601097426888540940352751595328214720534160486729008408775134867485611526977017858185814709995836613602595853373738191578695723122003042384117409242804011704362468784414189899882979536507843461051476645672266300536882638105362438994436109444534238729943581525134965423021566661682175252376172494645124039705483898875292275402995911302529797739012736825718136148911682009000012276675854952180516993068006385859400724089993700771492722280289572715052658923515169167095243349241361084027691012742238592921046956998083255415922656197626343122425420655534497230087756760884467541221980852695425947271217989296606640634236726208458704601772653522606337222872511098192979241154276835301774708513355457649647850406419279379470161683554015124070478996587042200846544533314376047130344698881163017161946541982426893476584682165919365052213542566892718547861434880728334405205433218003637737516981163971898548427884534898486295406235519716812607115289394174447715269492745971215246382634192811969926976874127755115917101548869584328077728514371862301641238694023226410631839532634665752062677633589527261713250740503820672773940552785517248864871419986373105488648127383801273550753024092905926764890235068277091126615003385848031542895135561759850642119958674265374967595402018372553394619162009583067972568439843667371121271459943917148871413705185001460480730124766664667878947400178790302961460002669014696551601032885248443444553371358114028624725408810498743894852934473669859635762686266325184170826866796877773220922320137287097139588944261643992015401423975795053014925576694216721509403944410671231046407423439034849425120942487195718338025922330391074615372719437175873318864900494883344473770470458934727700147969040853498038864369405159784002402304278809809271505034450585419154573072940584452599639277431245855521789467306201042311746613652666675145228679350867345637669997312385122271984339755940678655318499454152612594104667126156508540191524849145084126910263688823057114521293605489986188601253613348205414864592985651853478762156826192513044143313830266453108596443955843195166683415958140803432475395829466534325106155636839036497512162992457455622951697420728134267169439462992531221970827443978872007734800494378216828844462605539736676489926959849346932834844243832460604427158539397061439517838316429545575699558379128363444516592690774738408110625079731632599939275271349378447112924509752301155650262739943541278084344573034147517555606854850793662514025219364677173200494937902125558732190222757252276070158622304909142117935953856829465170135527980571301022907365705915910598684709863679843502115730337309906186384742620525535509394827552909284061689423834514441607553160684133674275312502468275041462117630676903513876765771727443313348847842388788346633901754036737664803923509427311068834209570677600745160138124641139709165105149379162849906701693770723713275836885809435591315770302959025454208915211777469949308980904868788886816147492509252345850670855941926553399672038105501754933430452595603593952237925962094771192023157540561648459724451590497763688064817152289078251185808666139620312445167496147005784971315842804727993035665125991023864900071623569033394282766384788165728844046765333599747185410121209396860477844551446906615596016508989409933127955692500408628601406889419464495730438480618643286504939430798873250463327500177736741478398270637729476032702219033098787375513838578792473519829879585113695892769152655818988575219994043808379914326944515146743135853739592325400332688861710229951000496165273672237379208595544563706928918936494849085235873120894977650502713029544346545196568142305015754187080826149503022548467736830317493364097835252685131911124022080863575454482244896867666087210328271401522857406425072792880604393400535270729296198957426081922993838045032264899414967017025066593883873440359852265151792054965027045369182584211789989853528226017822562098234184200041144614015092454113237391237228315433375460199388417982596685839669777388102271361479090490420210566652865147242916028769799763911846144396621583560002008478701669391661222096016014241167260588024541052042132736796887339789412740147391312229656723330088158224274329672031124044402173588706085523180391229538567681418817489922675376455235806406809554428313952564509556646120498560389632797024539944826146413996421930854191914251251698720890930467636357986653385198677752110103811300762404039098163174106018166649847438341836633621248790933745375915739880888096191789036226162381435509703167557418900382903353849697296821746715166891205409263543925023521522794684987728421218827095401020046780276710962034035944731428786110129371798864287715266477678359417362807945805714875540497063366260728412783540137284898738462927211021391810175303284263848069462551396240868497272803826731474939915369016430940065702430476737635675046531940915600401170162006024493597944949477261867074422240666861460103782842656490092880670453600103508007691068148265053025277292788749713648145047717675361499210748269360944152442093538931259654418917294247588881707482947551003454480047533914152490142196939097058199927274804044862967884556792786942237815989142447209500523016708497473805345097273555376535377482535386186799387716754134769277409717974097643185523339681758809172718091906102908200015327765430741392259892452418945750431355162348414622380955130185154057609199155224006808031722823824741263442505231311036646033931831254141101717956635754700674890638829575599411362918048744207072785752678396104367233900380697800706055175112935837827592850728593730557322204895273123902044873082357436868638823530948036646419145986281856282843797418127162240866292406370123136336182931977833316950353980708124581279342883136225406570093950362306490253474474579629455601925428082426500856541192976667975682314919073620201496829593652761268603430779747848866818742852873648642426110262839185654761853506790829560730256969207184123898469881981872395994699435191577769697772210560645802520505993397812555420893758707193490289717675710074801244693301289222194318473228014501034050029516854792000028755263585128368753053738846778287784465090652187261287026915363000437025075624494897725841011632466859745971661089090723981290553036809406494731502433711907518406613410674552295859393201008933315012326281153576542406358118141750541644210239960605418891822005535010805889906921660894318151661957852612721476506647870386122299409375725416634459047603889584199144979683538859107755725144824093756531555488141860140857238142113008508133215261462142869447331889885918766473316774763176182324429085872713978031586497060665190972001473817964018227880780618239395913399842730825366316067328794835329531136020457876319633803791095127492742137592744228062769546680524962859076648870990982023514603379295302237118406853991292607824077066364031901401404288552433076283838922908939699951111925835707888679707588819677104710369441398145723864567503648231822908719106488077036903453015824964943404562240302187542864595622428208546688990473081013952763142501647239829750158574741298920283393574885469215534811376354130442469455147778379588814824859047808546519180107543619855392166518504132267408226657301567416566571498217499480054713319287613892374419685255786892570367594376863827958967066211074758604062921502705015853150826229948959338075768013497215934154298075202340678227292008644993706175728303302370253058464346608427764204796098994087210161227320073266217147124022141627960773313642422784133299375241922303189838989573902879999112225939279174442844674629099521887658050505971095557835194134573772653059867558056484296067361697656227690336626356879337338454980861392636558984580852367999820452021885404969880088231312310540244778729661555866393037889394831453971750852284178188682262663933180186785624799682839091910180356338871295081322810445801442438107305960441838208737313070273888651134884763365696382842646756830019880765585313304949002040624222284515438346315955559001430945663804748239158922711174638689891688048804905301473506063585363634065115233870936823524895431344727693560394948404494590820160621669233918516797663713902056381867266848811559192906683547296892086722408714549134356697692378718085597681263095410582798873227497403876530276757141095060929054861252039938383513299526637473577788696468955599157761242015253767869420660001785428179547022575611413975559297114506574466195677124408552271921781803270521084494222235533363916667438344198446870586708097021869765781282081168235173416329964156164318670539768804271273287824211529401351151674631003150377331934279041912547205191449188844596216288617861414674672836927936733300770202876610355648182758684965313375520215035825344381802977964647855826305553992542901598239492462861533932103352553101654371059007776869225810124698169094122633419434603103111916139622765067917673069870582190063781328760132670588074415600319967890999436652967596419765193789113260664176272483235465007323767175938375957992285313791602065713972720157844544630127797065461373878003557089211740786299733397359308914169391226156179601035398019861085156548272905508941137489265737250722574470906632014096746644651882158507376919548737127813551011564605088233576393957459324204684407669426458565499379988836137224189256333063810854604336421479956679928211062429904209614915774792188708957473655158954803837733635562636276827717038306086599540970436609031138308892883438470904581341828380356112441663424938300882121965733505611098545965242642613420617890309363281308352438726996696972078071692944912169640067529504781935879466819407530412704788175265858764407593037492063062632999765598408457078798339421008440979550498643642285228335355194768657867103928230320518123307137676971917254666531816545040417075164307439614803619219041400628665670743667484258859833859034984957772899724342563157274792865250188067715476769162298374564449270374980147110414216044539018891685135201321420986067485698630929885587578038030939211024294224438395140684417459385263005291235026696902201682060997500776988960841591032776314417811660751416823861238943782256673558834439229723851846105567992304918461217475460614064447322953046567223576563084329612278305804941452423821362500962849264149114740371509793417763090831743402092760311684995409092633462017688336638993200441194477095180353411210415427384844785825447870509960253492000587326545954620803535864901619620686154518295600010708022811660403528670268900844998856038466705212349418922213331552993046901065071494535828912270559378877484410259509304234254442519263319677297438821813793519132529353935510014751326821568022176217952812887435639876376166357523529679098581388036822388199407456593620782881045830915742823614410302404656474401648555871879321624217326961165542901950387082256247824138775861874047309025086038237090337989245689737716627316626464310556367285569391064226785649994868530399360409937665806395339949028274895471903049425852934667515311017097204873891376749249738016121159984007815454914059862540043208016797270401754021944676707082203418086901362527382031781013654641721190220959459166922113111470569715357136812157521424783027365622855223341449014911957895989220560153606970575265832036659817975562901473951374777217740719992691474049243376248712860391037340353392455835440069362967545833896045406599305268335217349424310920506106360034916871540106901559335377854081647447591823029980721518629838162575080805396629591007950456611198668647902733761283402939671051641411281521306303500571496022710065691564629751475288251703747807215802822905226192903111093225685858326464405598948137706390077411663766857370923963530082534580432048621232493949941067984535870994330182483613546998544141395838737465279834316366670505499766103729989645465265166979465201823503531070214286837076019739717257233315439207623318226059286925048706389158640533174539938679422855655929448609260836414921654993341475017370859706638192076109016975123322907687740508931544998360925685510362505007673205949084878436926073013366102773568535286132534906016426309868844040816238701204208754177583067674002117819906083352446057830776999619479191825813591545373612596747248794926106235877414613682792679325649902155835912757735724957980958293862201096470044569740941564590623208210184118219304428422457597511798337066320954272251217636462628542674628918110836275603176356835608599958085777209395294763128422237635318457997501071571383635210397710662811399701429731408970157453517836441468230718850871887472799377472914170700603960924028259277058076844226105232237540681421161777790040790830870055284493676495781293899432091641432290006986069771101574525674944672388620399296741420282300788454814997668356718174126516119694132836107921398126115291760048175475507748407706721371329859467142696780574994553419095614926043589795384901403167198000725579190775775564746922810783174252044432218577271472245056370008632763191518170821042747208209037010398896080421003806357184590616768863689581806891405773991631513459153543545987980563010494401800831246808989485185724548179725129125942847697483442511983301045241764347336210370695311450833251068615787530923380021679421410131471281007735461594214571818036504826366026421102328162186381804397939887012224817441015662365562327792807270956891590914431965326460326519473758991617499774950821088725715674684124154751216546724331341693238437543894996667626644436996491735595735993276458896659689764704818103892432044191622955865941131349966527298028385067174190448511569794418420099574182648050362524305811475757560744731171009928361391158980536289371502530335867933633138603862128518952491580985770155531174446577102794067382714046943660735739070760242962243691094469155414917885909539690797143912347778775751478618034932202719549388324477357723111269373122205045780056524508738986670281189994516504180958827323070671003367077542698862036002369530766494121582988073223584085830157868831683252331756293788517427854825343546417697568413009474468390690082238495983344556189145825137855020285904988844395004400790309564198802126229688655900020505882813160257788953384138522381365716852582154328554371039553584690212579564325605011875873020003390659163036575038340283813732151767063711628457868517533738914148332379679377723728650140395972138165540460250917648296862954558887026858002591360598321742627659906892401938773105775238568912447085211214674408015974098552561395166066627433463526398005067104666683484741632556751588390538851457990900353142913378495852355734321176308763748662175904694870816141644248308728101186057387943822969871241199000321049742318190326681431119656428682206522380162428933011724337342907344316868550740332257514582666239300691738952325426154007295080704881341970184574604471668267184760535208968852573831801734236459883954359957638615463433803159531429338701013494663160732998127263433671301917488939310378937987605852762357051966157996418137802148889550778042097590424920036661115430143478788205959101575308776730196378773369922162244083389307087176867648934185447281601319510612273672287416375210796142419300752531682910993482082449001537914609072739124288732836001190878736131925071253281236096471448933437096643814556349985110269039161567525791591659087919232340306973675175024651592439395507136751990139022424104834075718646219437043067558140997179214552703637614814882105799648172628526054988649542815551548360993501371636802450612437327929922451749889999232774967212771018948723481711651195426892946877968401894933696181354974118291589219462409521672806120538201458578617457071164545535411534289324567982808985623989449738955237290330973245631415383352113998578604338842349262162124636846857564769549812980414187904204735096741125727721707471733497181797945472819019758865558019496971522570233744572651234593778649385792849913928598065331598786169683587072579589958158757869398777161176533947779996142366571089409691757742719693212855332321889525792912532011388058121610517227042038186126011939347708564844902210817061774717893173795653286031964191390303084259272108314971448606741343792733286571674035238110148529888483416942395104906288070237638593031580036518160203497223051792437069085347814612270020145250589555504629049305166256691470737688676905536730006349729021084674289963650570161870296481141124512421212968287105446234017006276782127254882212148603535952889776013958318348317781151281134836386724043578481343580836683284731936863427545140118263160994940811996161058947640207153083103454733636859690514117349385455681917038748803268863805602677527377664918822454663830134773323930300867171048902577811719327499156180630099285827343416640529760541541004885717641446790649264736642868876653284570134116256989503462363143587419041098368354122223016194186555559324737842426216759095432859421744644729404082449585600623477171125811075247077052465628376195953086127359956341387682026910973039909261212627694476028837128722743262874813137132242289637577616122603611857363133301710226549223095332274390899730456998481258856247194304618152538209313560880367972606654744661136055815476228872263552322628208616980533356602927499922062727190008633220634778303530466961497618740030576129098528282552274623403513129726963919101710689565282061211468881859424743001687222865178910292171179610214322523588785964595331716319884620951487554348429002530853311048900628678328225630161005646121337070392738863818633706389763869072988696744685760246269619172799695565151535987603783100336976752898066629664004587582791402925775324842860204680799195385710722782561519652569994360467797216153074720390548694111714580713309783811203249329257491285017576827146043520710693450524028990538954106855200314515257746549167289399844905695923525552200991179513236786726978028508587936193144654083492826512549701297151220904453763642642397667789776133627151098438641545974073925771537876391181597130585357495462840819276402014237165881716860871875714618287646979058309846824338744437518355778973551317939742052753532796533464703812109064284213563355034075024423611537136418182467324648883112774644027030263763766246307147097867918968023436620662673570497737451340904050565750205787683647574757088426293749564018043034304773134098131072698409978777441194613893737023440385674195236281417584599116630155432096977743961088814693853037423180603484412479960525846591362165840848064889001405616792605436291964514395950223082879379408564855515016257026226057894401542693256408220075405705236558478290983557458658231132444008520714469278651955320981108838322483377689336647093747753246930416304873036786904176781344541917796497416401234127769698252158038219464268745773808733847906777136030299084507841709334504007864112726470150899088136366972483277417421628187062926065673987402792663274736117045811810487393991017082756673896150793442395725620672017119563744771568589919927940220292547432218699982737047646151387908940555158433298324464609620915761397067130932018697705125389126837643696679416054525885533306195972621565098891588978401930182189532875079984501915122327981120162979474751410473632835464841119636619046115434049399035435572414271553254327703168484888280219702250750122253555671897838039469474046949211841204322755662643954938943183787054590674536401948054632780867190041465388343480256912095542374835362961573050481924310241332197397895093674196549335290843049231626729328578844936978098388853516350513360393285330808924770258914520095287112280906574180679217741037707039726367081057073528572471606904679330049689416340254728108461631850442306960738528233555236681480733881835066803531290861842438008861607878390856508619598661014149998624702988388388576758016918475373544878555328982580554713810223046987330791609118719338364757305314586658090760616034851418554616094919261978864470124235115574014032335978880159129237558536448923523728322745829524006801976134679879413533449680118175339657403812544707970321668635336542200553123875184557873421568000715998908417718524564334524230704558588146416465650031721231576496815053291395259929859849656525848328429540592914872532385443158084119243793209299515736449600786306253768739768816961507412012304928031307316683177484053282774740981579666258087465915881493647511655096037352980636458290956986013698507924887787445489080548198573593651145261379752746436401974841696047492155464672576559111889912674617116319505409438779328567001936951130361644212166187623599106642076474033944380189613393641966066668213800009782743068229214070537251935168411222228887681311566521018251384585631153960828793928972778899998178985459052321736087403165514594442472825529699261846980575827355264827835582662717148056450730281266382912726975550944447536964670860907090125927204061385262547802192577982976753389142362171068865735960111448570848237004369051802020149090307635139916390297742096473546315971685812903524973663814607003958779776846123993840220785528335972209596168621186925863642623364952021873968282165716130098119370026876944566189559991215138100059773172842550390108572812386515785905710254141663602665720141433263441740249180610559151612158472123047022375831491697547038276312204900328116934594836705093302411443793400114618188573427095632139588118520040184431098256574158015682583391497477008511859066789050539538491248611032373085032779651258489027128281995676223330307457563495837639417918204839278592634543725380580209172735090684361957871529194380613118779875053151619594891002727326624931982860631481237649860875025260352223210263638246989225762407393942239069573481522530067809870713463271149216219722051368581492355423072148136992093892827579701051792052254877915963041492979639407984474422827630075908636890911084007684420301883721818152586024481099583103422541275581965122937861884751894522680316578681003193935315502392137840304012987759563691745855091713713526892441096489678975860464570333613512235188800777131830316900348834160028976754462074183615245553096137210698531829380138044333893377878918864980487804697257653226349432264343228933516959834732246835646128903167424930668717873915576042202139462253447312276948406716029516777189940958938008679275721507970232679210493901445391901812264445350336058194632108299230582430593148985197840389061436450267913758801038156323812176627834911598209158797403797247634643706210538858034549389734265178114031409886570763128096998996081820762947616367081996577354623467052188351410358989774561910140162578878757962467519899541286077759530128287933437771151932084101629072576248221545057249498317276605623621612091364347449984902606849035278574522334125276585750646242491327984410045859534388870504705085654909716669941886856268276722091206297651626468772600394089690640810051972539258020027435246421459465474747852778085002092074637962703838473802796218854205670972899141840832843942920380521044341275282540306152833180123702027041071914808378664844549278477099624695755635135681922752649034793748539850512005004702943826940989409691209186992249467929669139853092360474911993102274235761930266225847334096042694793902082432083955924677235167649798401265320529836729785574147896534661725196937185476990391298114232153445637561128882523013943618650958109200880930447893014384229046664823763276454341184359639425820655437102845978831357763001874076189098122757073242105537550296638545021529506294230427016402873582449251376990603384704904799169526186978504431777884950357083910500707080960975626833727793476006249000333385611181038683953892723848667112794864158096860793505172299159693511972703340717641310311619803401426016037315986140837451309883043368469064962912616620173854256688428914251169481238893215799858448437812547975744594919066815348760205291422035430815778785448945347249113011690996439900070388032527994361773523203134235673590238494314621959386218981328943677250904852675900329668093442958088070064334239480996029095159004705857537869132576703438569671694463675461270688909080376978246004051099410805153673104115787320483236436065114795263357532911683255813262320611533534146928927465552610513835359243509739059055448940446716118609680992252781834403853311740183587725795011075624654692385552731159083900238130421214672306615975104676068329954084515938661864689636083897527869829640616909634297529630779865553297164487330575620557387327254965111276310989689641081953163269789036692439592813512219948097834977516813152912366001398126180966323629622456510658893809407897711254003387790335802905675670382474297896615558295678273290985228989121755732461393933597632125676566945600362213476376861223411163637973971097166309509668697045709484200240026910559629534946210465525860078484133593860342478470143574078385360587246956188715612112829994485531279253790915739231895790158987737014789937455012503692919715340845896711811669520446091200622976582534161492859573603835535732363420422468084777231927073537080709205477949958296884511060362945888044817128482886422014439816090119280551871159286244300508468750696930588447200658842794890731528889073719956598551056838839469129940204135647624011421135807219141596648304213470208381756083145991587162341898797541151052367991066432897556131847301421871682011266213110516636781671430360783883995872850119471519816357655702824159055772337874052420294477775342567398952983975322878005108604186387686929834062467043097659963627867937544027227010090422370187301941201340488083473809143046912483498440441387672521380296410724287872430244829904800323117747272517832980466659591751076485724755172078543354461829564354412534421322915384259747333446580883735889622665847214825842421354417762785296246444516884489995279212153734789765431203773450636054130066589553048504871820722860864149352175020410093348538676923915323717277502807987362802125450164932695542645157644019265949604226210036748075162595590606879856749260196949557145180307102872997394385818269433413003818629543413592981996778583114122994360504397899461501884107964131048609163115598023526950437879629180409682391200634818978242835572961662479720368572631180531427003207983042843119053629052603671903287279043978454158888431212145451375633433003178401834439957028468508936608008686238012767796712932065479566104280622617264031146760890251075375966793007537933999919681006076101946110342750929609152011005723878558525049453476975309879584803624239887283733731011663435238060327645349868766719607753080244159032772145131387135591406903584381037818778612496261854352909569410530716532025469809409907749710661409051807646697490570243181783987627144379952088579730766001660129756482121914978824900185190265219533587543545037871992042630409008546020059486942625397263133563831419098011756031524468210935857644874604760575102129490563249739109244432704553814916181261836251009592068592407212157043291131741704053762462617252333145714741658754397516924243106071095787996781204540277603115594664865297469082672350226214500975537799899667568878337987534987336582285843550182367467463970678532358916495665612261537235353501420584441327383121810594477947931197525702617970097845673276487358048862756085947221699450309132096125228822386419641614264912917852284978591487377796396336198095113973356521584195657882312416538649451520603199654957883388915228222935076798237177099764138806917056336508693294195967258902807726259078816800513227065757641604235326109726481825184629304861126467081964766622927547710455601181105686787386582835494402200337745276692133921003562850410394679068989639764057213905967227934751545599240694847775549411398033557185918618075057535187082728231406502633770584224765941925867844200832535418947524382796069092948008398588240594622163244557388455788365569073023443708466143930575944539737959146898955941271858550466791752761847857822442305631280364632919102208643201014959800578931580477535798222703565107310128967270939012548542058443860929974535657400396716148876869348553388137024330861927809513244655361938959400317575744487462921608712473813686429471341362036693094963921549216406164578649393482486914301051478677468041109857028918806935340091181120592930329557904712168566058107035168262990183770705647538138165566407851430858927446015230795921839129334956353690389119597116678359860286371262124253830808791294408709734407536576665463641250768981046000184640617847736888205740212465613216709695338166395751758140547471303791026490980451557182048634012092830489591703565493816217366807672660687156923462704186311395989230470830611091024973416138299393683154375561274789886476253458690176109837715445651999269987334676153482602958726438965787112334918417196886584388824303127981708828626609730514513966983901590682674371882998261017740017788047492659919521324423592894138487956529664834597474936942122715056903537503428623243761622955042813958700861362322301354699125886399700658820960632884878631122509581298256487742292400919677492545530236303353073510596262027745190288664242216040725376455243665445332327250950498267253044764459606435182529610675873083460100894980573767177517489250170706735965741248289298704715299735412862276106681966596732651308717062615278674303806887500194652800307852030931432193059088066272816394342895442631078090936367996526880692018098068011943735153847749774755955056011895619544789099870279464425361810227899938425804505350395445707843810628242799729574225123473200211043788124217037995160876111009516318881639401820792052702742406174220592178676785435802602683516053093954384019699309073102469563171441318020641021443944946841838714088246924925153781931062777779711655164202274572896727126213773401500620754088903698336513389964991121220404962108205851540467904118852287643212159238779873119987079466320340410206278054325791356132122343312588623124455137904210893854283804945956377852039008330959160473969966679080903613469779313487282980804231270664856178997772823962175815113891994415308180005372168865146453763169347858311933262705927740636578530581196370315530771569861254996442978597362940757551175476265726148981539903054306085063514270912018583252369779481150531764316537283678497421846943404414919201092125434100828929341852125123238899963990419980630475927629137802769558820880588476739818772188280873578481279052114205872063400476627264539344074393691211759921253570162268470051832233162782917858945863025589818988141252359024117832151112508415366024539287396046705610013616906611724116196262594039988332763415471102978705359936944827411863915387621072136582842954785854868285421818387309563420534065825526331406885478370758648631685804907166967883918828639638634174022694719369311282756171225249746252724166145509141985303802564967970351330583244101264848041619541071754675082841227132946218247416130580851605830165942292590862031778316775018772586564856014639962782169670530979995383227357793677334967488343588713369577851117185704752295932425121314901858739726887460659501797474275170979637967527616034344493747103494769227529742604013870800565287784826479866175391499261292042831991301255332482835463209099255816772208538512442410216404834570011413911273014562679520038050176722211035461356308815687068409670254666406594313148704337198944656288681249648245005103324044903252078456198717404434605075578993853686978540653623629725261263048193661684090707953681931741022925751353335986752701980478695796406734908683209069341486654630988988801411058332590907099816440892726418993544664827341687570533596892227950479290071678742200045164937419610954091372262645418049137319887535380703543178547393678960268149908444740667668106375478672659394612907572666821571856048042773235450386590617671752539492231796644129804557545424659530003879914009489661279807674057273690203057084332375378949330410985900611248806242249074047253852478164621101492253604999003028721532189386100399517689564748994909048617477127586156454491952394248187333326720731229102069500011797370085907285246861868251528945402918686649334506367706801613987833099409453026050039634002830621635238042868948910610021665963463142949290148791342733315997382613490638877728324855241532691398076738929621753250241880731501211921276601364567611036492578868685707009223312082784865840297578038577788913283998328997711680088785128022752721392559061002822294356953826912846265307993918137257258973956114669327710582272998599633938947966405489336744687336628980939369055527719742743073912680967113937229793502602474208686652663419953860516660957898585013127286680214925738875323978448056779470989848193487655395256944090520893549997657984936721423027108830319148694571619367010947554935590917917731430341812292689067977090362446974730564917654528713266755960082155909356137088800815923923563629653779811885374733588803631549409537809604848783694770940975641349655202811353659716637998880870959429214061116861761966521111861991270164135165436333356149948351099822579770553331709678242551781114201316393919491680176874296664261246811910007099608879032544352345837953763603762824009830612863332181504558455434002181592504287362831558201705270276847441803266011489114533139937137365305827822597315629233138348667131643409197529995464913845484719832635529878280942333510443856577637278260573790165205768539352658090207541771492070995499806922125832869453076773030501246941440342274615614774302334873630463524719340504781864271603481998331859021063712997634270092439711882419898139606161499089653598146934642974706654390579612196470510280178798833464823617859120946033256221587588463582435910398237969157505498031926781615460085191366673341935441222966251366432500160463166805760703845937811207540577423168084874276525331166422920372231877075039428537295139413089013515775505050261916385804705640446564436269044816436703628356667427555359229355991407463210541091395565413154740301441617850380371662081670757605559224366426038841504965226421671810829383812318893956207386329064296900477364054908544332301472191918667973298115976792754594600117163500476750263244390917733438430708901641953695846735532862732934260457468226934668844050958228013097102409171897481887424099092622344894324866287596232845900887348469070997648019394503052972445444228546479947138337952517605394617967604590601371491897769712566706941582377201753358365863556392839877765055721132581339338468351478304313435539893912151383341425999809489983721484789341116871573524921064797675442686488745070671700022117141926519895709100456616768518128267538834736014340293482667217572443974334405436131734011732596111148270546838369272194122227871587662053253254331812060907891253780389432536986702087460094763910491637254967868123236909169787701091399117579673931646184537194818748099721932348952926054476051846353186338785004055568490554791838366486718231990373410091560732914725819375960281447304517726467882764785035290458609662997097670767997794205672569813288939488958656700741907749420324882867367746894744859540518795198897550114542921791004184358798167132270197331458690244323296883593029714320059885731134016903066074663011487317953275510909293527864262944621583433864266821047526131449614598584299484808973134195650918618370076309388734673249044851813462033734408227627918909017885788675755779483013919954101278024244206910825413451114383907277810763915935857668506703088680419935287753118159157009730518264185517340344566698823491953224474557374090777026527893221232402365659600537858562834648065268119592301538011854246086084035916833462586445024224794862794815089736017051176891975625908245620076467204854638836189912188472158948313947211291995860289663317055904488866351171561873951238671695504870520628782129933044344469833378151425716815517441519322513620707309467424217890373840765973385418580141450213435557372695884033418580866058364804507756744115417395654053455429012227444270605311928017063619792470419828614351688201690456861442620690819928450949959437787443117997678383580640791487045787617778690026936774838063549807127726632915488280811165037446782069001422064716850182222993195015581133466433998224759415365642881779824399729845635915038260956783790830854969860677994418635632820735491112237883057727775651642117494191861956472202223645637921746151015093343764561020510729830058942977382412098893710499119387506991474014675260055494379627128434252786842581374183936714108643870211577407501661464450863785595585761167538015015527329009087425672849727672643978954401580907201016228877490443123191956766917732193752677111181437981362238956268488990945790095100342307313204019506704166659475792798410182639188037181361714980863019889359223854233826583214322001382346284565517237208272570159349341111800222483619797293801416013551216157199027115235848553457857493578320348873131277526431584562427743860619562612422443470741692156972722726272556189655620117290923754059624149438935206668313930522766348325254844467353090750105901773626898513276234251211279388629771338617601026243139205151113746250071014610733039638932122446858563670496315624892131689927645599999644254789810838008591330118495082659054075812935099449696254703699712410985344301955589979522605890404137058098468963825063442081116288103868371196326565522368925798774908687746167354455751892080572542755428447045565923073463808018701034122272939908578469988356022209264394978687040485777526015638917804027772054681418493425777333480432312532458803691791389719426695034817358461954225912645124092396408600143557601333415121247198224583559442117776056958782349218550050078360538851975000438385617260002236874945067042449008945784870845938253652604985517264197633040491968280658694544310851791609515564620141073074438342351328819122550177508119407864284266070392955895093872695232878693015166426722899673972696971139252627834705142038715521814085513130832811519561107291042083590634451684407778362378496327256753855569489575669447348570347521423764073503308867138306127846212555423339099681980466987669672856559866147378611929099965719017719990197008803012422035602916622688662152039450442416893169283177358944939492940910279148148232786642425868326954470283918827430249037042347036372720996843384465045949319821101453452081237578066356625603304871284160384128816439673458061986811454336031677510614142623300178590707199995455480041891502042324639725720027028699936180944961006302061267305087971066308190841010337726479522887208631334319647743733995380236022624787774610631091992336195695438737551221531977819299675323152717724232951672898893005179002742306484703541941724282047144799141418002926331556216715043235087352651089306168342271478844049418776091577964451285968665233659331470099832718695868305915934543017908705343665676921682167264406487098440061154318547907048880608069047141775423618485539781214325078799325920375169912765076536896303271186110077389651348231238621436657359695691906356373407279868870613937278478221631425174124895384385145916695522294926971045149858504425345888748416581918385008891937944431411955759364624438054458549185902315583523452990606549454465117133531203979429108879641808693482561783559350878266000282045186641017696611783118220686506094504987651373064403924999832835073128129839939632358246981141244672926272247657765816377560485502465079078806525693838874240818269717652029791094296268036966472573468839609942428589347583473282409250072367520964391245018090136746317855993458541793444361355368929493446426599928209201023023545297830347529882541928051898751950584783520016637750501495226197980428002449228719736626665653987776983567485300428173710606195027006132161675674269675061713611914982993115602338529580838559506781332475445323936860994949515032501133941330138236360370420398983316546266618723115189886817021908841195903593192939409207768383311014177796376076280947548459818211551662915982370731169504293991410914593213650536283266513338630729076895226277575969395645044122640020311027056745900451418695094504925413133927699161282112370285485706579384860520150566017169979543702589091948482371166879407572951429469900226681647318305009452773680790174770993785982339825532447190614290851953686394501291912039308409978789718273824227909256090974877555097154525895616880292726775732087873664610193474207951643866366559852493534923318139822067717750478320243156568591182154727046559932285407173654675798860640149372513681169774252951135860677655478106497978423069916994623705184856643976060711130564368505187290368539957174801500316168366993648458174996186795117339485291437567791838275225730883425221228336467381102159981712697831107052263471684554741354106558516466166985756172907708163593913139334611337886213582803876288383250051224720420681826296681942412182485664096605810798501632642800452189653609286242921377208651008485629295782478257995724168775341574862743112936749327292451235458065881363810054740036899715966740534791253916449912761688351973156247703008341242041250766873433448266068278363188243763981974242407156472411915889543583113729621496254961612719494203794119447119941249205023272679357732118603826046779281790474710637195008276557226929967179091784343295677150970263589189730257485566104353800367041305552573970691605787583061049865893158279587735592092007374877002044437536871850646365282006635930415157589473761136929061068217629539200832458034793845564168216254518436439289434266043581209675550003737899243088935963614032601299429147910676005497165085950576432817254555248108374851513679062229703550317542270495938288028341623850835660826880349881642548775445851566634863403106668576986688626539107648913169741517976460644745981215625141515886153072586775718209119668247329356192197056223450597534270158558597333181423103715709287669526000578786687497585776677909000871143983590711080073979189352405328148505800094268458282763560086067692794342138009369726514598997255404166325726547360776231993399448568849032288362438095919699100524165342254797731124492085494654989786275164569813984155597920075722248303691653766434825481012452881932447493172673485112047426297940186137679449485081362177509377879251035912789454732901199876944575569247358662451007956507859417533887521817618424629327563875083818855352478835489704078689510871920874186583663573320894446399462090922465659873130080313419379783442160488885313792605991574701581945578541243485046837219949537874936197228760931304383296864780357761388784293250052904921030089950210852068271594426298339370918347172504988351108490462979772326975973744567203407003979529913984539878489216916302640299165895312014673851621481247250561088096502818687855884332525170887460358486659396634551472180635074719980674328231644424474900266304459576928288004262828742154787526043428878354208141471103399061814901512823903926226552759051079354859180119353963963973442382334842913592101804569218070357035277143395856330965459522638767128406825041845834878105754332060814989937847391013598848310491698943030783296994286463684899340441266960754833492746490637775528890949312477242055978119845538990883450203203494658620751507497148203783316406362356879468284094692009871555465779373799879522429411847483894885065417459988971451746425408714460650989400825596784085649484299359782366957518386393154280737656460064137256401904144157163715651372895875095427432747854010573728742612792391054304215020966748900479782681140533789191702345051574861080244975500329968783790804670054548079490096494536474042708881189939198015443991976009774209822458724010633385010729195599378884314887641304385693405928792847976858765972109779297884587112641307517596771209371789637859162990563349142392649203159291237576701650605020972039424793413923856650247395339233401636845066696133305314608144458195437738990200675046943913718084588346892947857362059451672786485721757347102445789122108474949398022044396307872458922807810130950562361495830059616097290814494360211801430624849563967113084178197008230566211948254684019500838211348182313201919544936183217053713729536641185044428692148049168133281821169647738850163388584184891202102116589542242559279288451170307836139589806140265524528575377414544377977903102725440831947712779069488180785710622331401426965954244027097954121648662549562885642173693287909348722016115711244474849990518667788853804219338040264645869169074171510431799236225416570180725123262999648251591627158807945344942130047023569114319840339920072952604336629071646891290992116722912793587911147903288166507445185162584145932603063485777215399738109253705901451850988659791209135314279335767472286630674156429475824186853530376909015422920820706997138556056503499870483242233806564641226759354226508716951393667728672613821898521916668157843042090742837849878123872452512985244626983469575728732781553721409447384538263639975822022255024624934115263078557115567351894314011589844050254668543162448763417974284143521823144434150028401181772963843593543110876031174055581217465238349094787763872309361320017863172731047590877682617952839125925873125449426375307406525219266339050596276287263499371709393466630533003203303802567709304852648787474295427361126242184165081520377583002687980922717822245362610465624614792457151250545182221488331732634991117683487749637299844298191650088972780328175246978432304199495584140208163991482617102391395780265507017979512651961081276772946003499211323048597978753644305413231437451800402034987805223741003217947561072151102634652582215835968518289824449233417061997543614456485176444786993968107238390640394051038067571687830479252578360349483148375886511992587338984773447563973784115287918442487872205884991490494195834039747387702969081977549919469878893785426017674136660335477418593898112806443472073581462752227988546229593457232563433264634654097867109695509200639758206511082741740059238243869327219439551145283402577929827402298360537150781346173646398892377227877392537564393332920762797186822083113561243925791401845867927998362165432291905137304302444113102067149007206765917984553110581872013561968865850525893370496414855238716828514202283147157259214461240686213931106603817182333925002683909343728523383245840934147241296115298293280210785019947016761600684208881630217373991835484283407626917165904108320954512055082988319002588257512576686162411713916495520005635516502834492646484282805802134425090116758581273909470869984008725157175620303132208266209124592735903478470361597889144949427101022302947972741014988253196543232218145458521338295803285101857459382185268245399797098306347697812577695884804829358726928534475529879664483815989540643141341925871420729003976813585250430985201129077793215640309670021812976517531750568770627538877145233021412677340671088831742862428730227727992360171799194717112859809659662163513197593801079683705863401292457276120822293558181836038357374400663257602911047908427572758905893146387176782719062101398850392836941597893744436700883221955747626171174493276703541254861934763382205255410037472321694277999487691246724987038557396038065522204706369531964574494549369972055034921407560055772115351607413489944721890229639533680607705587998148349362796031533074524989063858277769266179986243549540449502935393290088650967460623312243215759270215411374588962103441811172732537277275671134634384150459997871396782881128500988995143716837395759880382862114494396041083068528864756355564362812783070950067942209305504432075290776729315863215832219857160036545472759419042791829633062663242009534236511881212542511752817736114858514859976424385362344609605754797685820960186244497404508024995980968764512179327809733485370837947641257492574091964461796891675161706854033620696287844125401768522937199694951685613393060723749033298078973186344592175784359285278618463814496188275451767795225759337225210251341086966040936957740335959016419096692989387763860406687020939741850827241149017229433344083419466364429457619659563897164613791636865347951261089720668990738809440162880716186578300325106072176769279742066742238742985972572714112554607853860337483928887075444015106738876653650673667083031242940528966223326321086515489833237589364542446734171548732087258360572896129509261974180586345975848595011475208267954207254656802901759025465635747105015555120941753672098311031629196045259843718550375222526072776271037704154080383713903645390828016007071950308928713544880550715198396921734111708692322811186196615212146061702908808617320421178382070593505025420184288913649377933761669363192939898799528529998635238012559186841760207540204105362908410906681518141262534691407042162751860135215305187487226770447964502817687981989883475564741128882888329527465064951101733950348574053120510183751069165700415814616954081371026455554481111229613769276746733591527517749166506241606783630456683922658687167408729857847135667888617379582787154416871978274175888868992032655759046132797381545267763727452010026287065241095240173937232988471102594057470134636940718073936325067219361363239830165726843538061874331185194181239024969364027744445734769634240948732275856885258221886143500229881466960579042000429832755929982966741238706242750097373555311794475821817537886295289754422142948785320722289447403849404811144639317196626802652283061741688728728689269344955912523065194797670597064270690992965460234328772878486937556026192455589959710339824498880015951008651996556148642529448023716152340240549026360433633682526446129971965912744121022781364220470693283866093941712839150370328262169864028179089671589540265040827242500044117108671726062594375501667493352939947355738971029785841968632393903751639721456757917430450190765541922949320481843690823136793356408947222052680079250623648995777610146793741565194956259565834467831211012727613168602044498791770815888505753227560077231001706006062064264820547052721998738561297895571300826253528998366803481340892113458454995511398170222544575942378742457652961713018439426811375361923632951984745404763845280151204121259356979910290316467548929012312961014432721812590485262811568232364936725813911767549932770542827106498741533758691015169761008159247499220749471569486029375371083044437753822853605060912233647852199036221045187611290455550216921814942828986004424776337385402267262743331785319934710505530231967515481326607194121031987228162300012321155875109437220331026763814942039919286356874471459366702720732330877668059266313281981850447763100191450686723601688266565821030148513782663175161617625841606710739014394441635051361043111646926474645321712689510292307488264183571795301820861723406853010469604209344736386097021514607836738370168877062724308882346645928645313136377977269757194180065848143829011762066658703057521208165681485085592515845828154741002901351724411383829547648673266051215999146036102686963678621557423833070898618777718068430447618627875403564316306255388184600077542675986879266159028980131435896630088506700918995670041926182324530172264972329454697090367006534069488083827401833154538224556863504229040811022497334182237883031559190713296221405357943795447824933652202044423592422138839434984154533582593629318509303696979070339332994653147214386185745924582238632296510646705243253973459400131798721646858758785595315260731182723229743701645160219940887618964803722228880621923152309675496851187771393592924450673949153731020331113999958682130135695227253674782411914466404598978697246320311684816844047793809959022775568611739012520758972969913577308291476454896437861601753456463997594245409092559112403224228756289319449120033897508627466166399294020925619818358609842414533661259959688480475914686787270501824562303743833061815068471414377683354277007502673623398212072274111194235384498821624234598480248969450574414455469333399064020841632308092085343045737760105959969273590475291911066844115476317631687393003703979841371905413252146808002579029169972010644604965876835451776059235270150976117006914364731543667168437010325624289763318799452378448260901030120591846863376064879067649694486609065872132094538503414274316604441041568774063970626424362801179359957634160428787408892271898509342992282995838901888841471493364523039123612957656715642522727736735303779659969503897393653954666158086564993287050387651594462094467751608326722791236568708668056633663805259420272806146344329561161088673451482671606673570639684743321562054878244063406295039303971079023093560158575535017664969114810830707164068175171334500548296866494741907262570997306682732491662612318595026412086848571979608394035838797317494443504443602077685907505635142693261574692488454652092105313685968145342159898323774739023826007967050522434036408709431413761348006741833530383887636611585289509478584809850655658202199712914091297072996731648297409523970033403943037889904597943652702206377253092688315622410708900241988710404672610753154206620647678401507307038171280401839803941707214264284179919092423277955764280621466752589852458562780804975831872758038010715934044905175733477877671942844417651920841258662263562728225377756233416247195368072577985372761190104046789918127813248632984721446189972524664135908852117280530495835136575411470808609140677096884909402045926129192399044649980692870616138920094861822769147310660032116508402278848997692849656486242125106593553155041417922055634853066098949451313600433416467168861342637301066920412543630006022393590101785867689929582507283688000327308002706184885259154737941580029738758670248921686195079558352348926892548753220916852540321813715713343819975449450556793840582650725776080954797744980164953389854749841873403134617473778377249595131190820426333623351945861800190316459645154187936855507630682980343793012066590358322440689814940205050789001607318350300746397163359077063286916105351865498165422398409088082513551349842619592268915450973254653957729390883944661924324543934275979409237220025084024741161194555056400574154576564474226837365057751943968717018670895238271966297199652809094270787612799894747524005659585241622724134764074766719332172178920201953233039497834229940069928836319919286509109224560090657618007019693560238244243664493330528759748361758938035465907323930400660242247596487163140412386190464588486522342372943532618596441438989346956725504914411161969841592388411717644582478760543957706531533818636381117080162911087727624969397546496651134329679269096851561000702519005963704632546158916290777657497933736003390885189235658510378853726359284531071094099042010260379430682736589855656905438201741375224539584663474417387101937612988546547012968348701215809030831848114135351186749208188805159883824473782895665900440722544779552373094196699480130507490346609065288145871451360993038166771877950960851913664881429664096501777754970718894032404061112480420874941181377656146153167169688129364937942081990642952566314010814446268750254949541129182338350148350225468499586113066230390602518613624056000217592964824489928784182913998869612423090540266295971781230708506913833008519341970807904734172598471621176205915994417745111983963998589709659036418965485278239356756625164030862693000492536340514444984369259855805715084005797300276557507011081672471654462143794497209225719679545161478608371436550796948715876174071041966273926061979113259735130153111062249519407559516088635423759996692080813783055694742337718110753010957895540462441780914738569871564447318605516292955430434150327606869430790124653578051841636587486753437984068204245055232663134553566151744672194112936092567393998009090370721417249152402190348391874838273431384638935551512140047214861415560869945247908691370552292380777521052054500151350591206175070664164392833551621447423671610709801839237724004756447539540367687710808432642039368614047288137377798853387666542243941766397024874604630493873559493133242837780454126080519922047026448066415890339246917525736647842017190432982675899998205411115688559699904814003365798293160907464507969193057868017064547427055248107317990407175038160406568850299683498686632767681396957544486764280635763005828088728484432232242052473998159834835264294986236138232726350065983151407568056029667336179313860237315597933697218619937867033816783178265014360711228271878322248450732513703540316263355216884360588751628634344428497403937653083701948396577332221907555583722685207170156894111832941409903030040422195470587554657799280687564164408696731821135338054088023490301168566465173248052675734999099022564691155104403096643748595728450868050217105767012952356526555343537644223541473964370200000252555093919016200756516012714964801312349106242852347212788497277325399327420799724655891933695317431797990937740762051033383282725491776732114142597583895952979257191814337229218195357042246178462979286026195828370793582960617328402573848299754803997422737597170087000084563714541251529977541834083967511680030479384913927383258335212679544866674071579985008779176643683134511037828808606887039779163656497961176196954564457931125183658438102014096776965859282726996846761753872504304680556717981352576317950875821115984495926934708949764921188950945097225473020377944671960274104763662891364981022628341035838671370545685330582746612381748236097619321510513816508272256275819787114105998551632312746421062947061603657526111223201018642178080379871775086338727728641673773433318904567349217451810692401450284445364348599715733235202969797592347559086639177431910074818354436233154422558200375520539524135283909002610294995039070535708148266318013282903525563776960500159309858203593088874145537641128766983854525888701288748859990870836362999876364774106301453557753627162390482180891667686736366226819281419617038172748345299107512377689966214631838108360813527013555297703300548257973311543867204459904073117051191939084618715981010773037038722170978675723814760739841700792589440796574630052384150502473696902268527715674869042468881240212487509278172632661814242213933469209379234468714583085697859817476739091842746188965703418766953132084040227069642439316691302301762114287491102816522516354671704680217416929793463384270775434901808199679739058484880798036259561308834098782384601590499773203654320363705731706729988018351028386208179569495866323636115241022368621623902808961291236260818258860373161553421459252814946756990731336566221326850835179080661951117530270511067971565758450079546606227762091545557602712396634666660031357100044184619683068851851076914565395403325817241593889767423854688004391975535304601181852886481075857368329122652669957280949051573336351457630835069014368881139297856834603474225389217458078998499066258128827202642775534377543037803656645564563460099901276199048580403601718918400896410211506207703909122769686844965800211939613816127525368005848972414101245744070514094296246151131383745087451905738825478166135063365853508585442070339581637059547856484363550192146779739561565430654069716247148325976979166222884820915327992048368293611435477522667786904178341902032945980690272545076007041381132069539297079601735099411671759682780099825115620847436435836636592290349226193879202298397036690533681114942884695684866404348967090066279825437239997104837278658693252071421947433353086980303114018554094938793252392174756184769367122169227177084368349834968553359812837259491111534517524503189373913147918880830587368225696514579643067063531126648531696291640824298201188287946252288326182848106779808407783255002038456644817151339720570940324379570613279563428466146821370877203911374489555304172888447687069653659009943751042334357295651593410848996288077692625607087228935461028938705446880985003483516135358309395867552669729952360486610987092954732098012679024098727048920635079407946450736957402437546058773405204773263442010325405736803209814423525403351911136731079416255820660823148836531055608122817701657604128891146152613312996873321872124951385222994381287444835356534915660293445274086134121048436724763262149753962386679749380817289816997862415791536250617306218831534099791084087274734474110407095020739842629330640914156454891049092711464505727950445969465012001925253631078458623591282197826579789315303080577200533939678127974386213402205179723516402755961689336362148242370830019827776807019219617060119619539853520585422551490357277097555302009427407554436235381727418170005558850141424524063215540851760906845200969901031643398299878313043811014985405931093220985719491008621769058202987645290537294755356045659794030275400727798934077343254389726746547584689320423629971762490467942813856414068832614079494606279892311441400528079039674603305492069141705326156926963138462254696108030811011408355781830029456361784808237072798903171107657401692655783220048906594352878163663445717135869872588934573777547937611652259804493756592440609326537873078242155612212029588308601013028943779022689805713047377164711498898571966109179696669943509041276703361950730667903144952565309895225351110759229628997020891871224417437665722576031278766192075106432792934377374674000639946360718270816332560526971197826970829647269138618190864027980257031579508957965720511267851106129726126918436382610752386930534753440845149399569329490101460454491302361760691725266574724846490988585718068626537453482632104493849298150316629310516088974195524273530397464256194871215490705867645393195380259471640564314757473090802068166387880116857635647530267982557808731237911308405466210357997243079275993134637978248039366007268140787133231734621524825116482784377820877764474519330889572406013869554559942832562667152508968307190073821851009228988037937407965967591852728273638918135172583459327409705315028477474015522813630612328476956340403120558692387850399039038211260640849028020467273854223805027044089132842226277642770601213386422272104605063032321242094198237164459462852363080617516193754500474536167774565056015024295905497121845589342568842464924609618790832109663895516230489299591606888013762115289484017129390449915735215975524632084596369423845917542061890243957382246621848104295817852507306468693142393046188924537891207347577401837324959325859574885565699763212447894732444622444723644434372217515893754498607985050442986091388381635376187459336790791320178636670032963667660517458981499609873665436847907737344676732207328736644323026205960458484535738831924246116412096281737977027869718194802104414272508434367332649800531787016900672900745859623456993644458753866522459497420132762653639152322908042133769257715939678568504933222888327512600733035084278064002179965200486701915811222434779067911753454494180556441607114784994235377661686444723941901566381688653939133327135525890066691010340927087994249584463933555501743133153760097920511601984610384112964707060489789823202822300118929837134366452579102506753448347640205871407549923357168270422109647716515762968348063208470226691756810346143395689947531242922547680515818074534893424190393027295966315421369953323000848277606951663988796548227176394453611622724157076683649465677540998266371848936240777810332284028569301992550407336402475089672440798597757299372920368974182282706064865309439108484608757330977996955155874458412210691893354290789625671004323710679765086659458352218882848589521841178709232285214617546519816698097840212042593403419384512343826430982268034025693740793062507353448086992345468657754373059379745520698090239399451857125860913156116443006200893841198583276361901037383088630927646756496384520668215623719605149847630762091322923126675654380411570735697171707435341326919098376802346420923145121243015349988150238377670805639201631886997235343083154738256857640315810363188413666206960529667001323091070836008168253111682270979409302469317915308674211162785874806984910199908148708486092797139524177201087770645502461517042736261995904230234566742925114812534008661228867987415295057782435247668358036128799322438537093357305836184396891173913008589135471414168038160365024598666841555902681552244051773187948990461626665105873410909190810448349359989373302413733809747590061933413606458658234416482905774947976890375406860464209675967987775916617326149755301561328816826331523001153015374972825224085441433322805403048303570917338307348061777976855028821269376578174667133959588728527103071876801547227923777775971856125731340679679760608334278146847715437272126899905043483068010595869642785948873309013924446905986566288243397456379268020333099638194268250165847782749546994626187474693844501514872784004415699268511783842998833451686201427658085977690482711427836655999505619575386071674964935519816612127927784024620702277386125890785882345326242030349946919511570943697795914122368506038979769898149537469267775336484108135206081561507585431510893853469875080262852280503024629177383622697293998779127209437509551694756752512410313052076653867909754542097431945234643383584268521906357333111747614814125538646914398135967580244304919400439844602514134204707910862109511681284560969455081735695343690235819628314888713424285473750183132187138396820430855271455183614495889300696786307149133443050384488783820522351090036889786645711579932672746744732756730942805951436240873605641049949347308406043619914604636093192617943706984235593020555056481276345926326999671219912439163517076202012270949516025020646631046563457709948675072857198408143677561622501101201809956648345761807431802005894647199733978631575081176842612031892413087862083571177162649115257694582315926393621414393484083830055135150010868092374366001193336223997739973399543315825937836801997127388197824640938847712390799872870911051493647316998146482879077296935085613756043741267167959254031781777732301835444815388161639290795315889242511099390466840609204994879546061084870286837500803586649177305188175822060598277877028098976742141960342395116935348093416638373191094192612073497725473587454126597082418497456570038541166876298895842514189428838315687839976219426485650529621449787810607383525199279447189295425562551359733993937867023849192611171654317706842507075048891224482102681626544697266707844495255986226185079368115981984712504612408754587379975596061685248193358532057121095857575640803404698899789412507786503166440631959227312781947547660414649457069169776807911504179215349057289913678711926619646330514220360967555420933783010482702247353515206661212031614114526112304726522656343354122505687522726013628281062244672131743782909424134662799591904815106088814158366889785944617054108055164028921605212107461026758930226544800266412855432830132896637579475170926229737056475216876333201330173678349667665263251724196340639616484625257305019480098443039920471762512021161129504578018317690348059703442989505645000176411039016583464157273811376852979190109343911065220941742876998100057109314680859742047223002315133554340189189437756051809925099718144728405234872941462460859335593564719302495778699712720824114873773317437737084763241001432321502251572290836724696081131772442789743245774191827227280831064154036923848030848086020576928309790786711452376524898293948532368507910455003644642491560705213771849281259478495977875504440116886899838711114789782360648240844069784830098136166497729022511079506555537739215504852350484242448925318440171623303950724564621011837548432302230778075847470389601561020927528851691011454998995036206777971087850446401280050655695268584292578318850287987195433767641518450258527127210759266841354505641152688147424044488203565798011310870297655030294939031725615047733273402140805438374240766679551273201274144938019533605340045636610786928290728176409226214758668083058569474338288511512124031371511721946758385165103536332696056768310220677397068801809178936945935101784788661649696412555153738645447636319305983211142922296950764468322137091810150329744632765600667942340909317898482239945396685920879574560487334942517977111566593326737920887494378306714219124250345057116492300078832589965003579137382475812932018305468802016644697569610875452212158597646288249431664178144508553750241305961234036428347584238811663960634202919221342052107075749344318199972058336740534962498249300655747930292107529688223387717724905290900498082348119151926528850290459079692211764330261156946627145064624507285779566993019912548018315549009086303676723464850461016030448694023364242416442902967140040618995765326332929486850201941813576358830236888585053003341385635257896444453371648021839902645807207294787657361030373470261825204600194658198399780710674368307993438697469503075887706111491453452830392149309858077080514172460070123589993862347865570646844413898393849904462917156276261856216998615747551115630203145498546069146649396936005069178150676265914456698634038104986748414170403833723727957436050112554519592086545624669369938553171786284390930752573377534624430915915700987417088802169834540755440852024205850811536274380805813518157046673928040797634256780785855753835298406250301701226356170724267011166814114446377600533066091561733590816530083103410966789040313397770843884930881255239947042805614388696657266689114456114561201410315752051999397501437954651933694202824907895516995534806852225321678763143187174669465433384128680305773527089148150219851354045761930300879645084318713006085500731124586386972055902897928803239680099388255165328132268226340249427316258440545704558531697902397756463908402613328247829162064940072151414597975519714267726545968738799733139526478769671706863931259302617340378466597326534409682528281989119010334704085156664623385368148941571211265825324824718148809535668276378226181440215445699726592157963584684614704956676263363348568860217977795375595242952446533626510040958087708148565118809474416228758814053558832148156535449802066122491431344478891919452088853854704794591993942407046820247489648384412908061020494096108876595123533210126896119333893607181722011001264769181980960572427876656345891324829385840377680030521662800722715699508619930884865135614612114442261644405360613120466600054011750786030100738682768779095131344835822137043611060832401655321360477332133056846224355802044998007668105387054511604514520407347997846165694483124494227288085187125994718962413891966523342103462454081213653726375235253800432570061578578257634815283139651651420470099563686985726918990129471826506633884396883560347180567830698928215408205233356712067788561035090879447418851153626778339896285094995365770124371924278405442030281887964292186439877306850028219945784054339826434637641100184894812389082499905976182180454705510933831177415676114569934486417894165286800111513986092351163533828117385349091961705789943245561142972908623730114758736417405996586962521134614670153994920409765127557618696825795978927467707945541195565675689532237402242647457833716964711254406151367976228850969146851800567719348759098614092109156404457070308696018004600744649528723536236861558046023072342138060917998576609611729083574919215017211172665874746109698941930135485705400015570382487921046745646254661518844237661331066624082628219541140007381064341538946662443561428142067372547628971768032753473081828237247504271127761587673826528568558928938951615633316712667948677364282062806614662619707329924214726859484115896744158720466062805666587169202569846758285784482353564260727857748042938559837784394994905204735137949128876099079492840716422152039245854215702702487557363903728261801426176807647745976333576164380165720439504842682140407316535293170605398692818420600547833681266705419274498152175565486178199749059958507937228417126646774612271148429062896406092687346556044297106852010668730562693261678313323386019222169013504253053661947146981112650676861868567718804640459605602810021875448203423500004074057297086460441003681215438536170489570209869560022401214601308171037636278043049159027721169716769960375036905250721709099891306297763188153121689918453474629969103081156791215257898780740293227013465680024148487282322428067117215677528038537174493247144648624417967787882136390271023679577470267826795452657929876523550909600803761905023007962085232552667676916454632900107551055156380413172102850632987480277233812094687956529972365855082807431099693197647433588102823149369888524379974595665966736221665588518394073012296279112183337456320879028290944299665477285090235208740160682890896745898648221615202907351213313257498645706222854905272292861778978246379658007984086823394413914712885507957179942460362387914403076813419715520582476595591307869101286458323266014633990591085022346636817389548847810911511448180235755287002459142457163246756954131612670363866743019511962728141856372291382175205427513457477690993870403114665159011076390280747964824517302973549315331484992594749278953247597179891268916223305234831931797944547213559948054418561398367708730002037111079534848155167179253416775072949310215417354612055027380178602448254755034840904532828257840966933866525519877038362556481116173441413762522976332438863465456374032977452211011563628891426417538115763182764802213449522431946735047461399257865028539498837736516583302844440698657542093683547089506350279578238455272426629725184835838217968444809537257755054663886178141471245962200008835575124072910273571626876427420836766588649742016238788994001865049024329821904682779549170969225756751329330178127190526281769191705103309893098076197600562260892541075115715354764885326683084396816626096523228721654159892917264431250200617214345911943806562415250359976344432165604902617147020720747561510292322632131823433098736811869769245137465583515943732327890441507128646613221929514301243353163081299128723828954285646383982572883648332571337606391942737989453057767230853220953567149698411124544197283438462362426844209312923928321050115390572959873791929199820509184265721419779976423908492382777069279333320036173357795474551096252195026820918726583587828267338227796044975615563916300359201246540168290118148510019988166882448875970541351495912339772432105864031013209210607900366538987456901144833734217795657806838534356043846013635471057118103815065849793723964698963813939407623970934925087680603874076925739818391919192102269613647531825593308026594213517723619434193025862732974251988061877113007528169947974925041601051126895736655511374421032683773282813939444129123049218924254709303944910865192386701174313053113385641285455370266520738728405530451180207356542283810507989897689697380229598105510857489578163196112448689121799899584823980333476821976479238642611756457533076759541470417087551785935825793602273013289472900314586693152075202762264758641062278043947440832385893453368212299486086147628236802077426143786311244381978867418460732741865456542119601107158156782883633991518608454573008456527873429471526529929047560186070463056701700271418973282206298055996117451762181751341603177445192950756380969050480589763831297408287152246556312707669513789779939330187496826645017981249399525314082532122364884585733302595064489656041804258440859049035598263415791477812558383121268082380079006840966950867968266328097123415479884240404063948746897985392655741999800093321612869884457198902065512760668565612318601604459324915956384170815721368470415326800251239047177591973847250519585203280842377361879764742823953083630751522328624048159551573866106442235478757569126712619500248619076220965571389760178081067557760457786596446721154047541908179055712054021234276397029821991734856664125035730737393106886204428229356075848697774985539287352348711066123478881480479064389437068720609926589804530322885639518259097410988761136519916642510357899731599078699153028111401508284852078905819184029958778812610649622235598871916069434481297895591781431750514087466163429831126866792528631819681241436477107421545560603437281801759470747134363580192982603094368277693785935371046856770573882218956416799077968982949682554251294234827094397628387780058394975694591395852257119018937263028483635319694936017307646912021194029655056739721992607027417813696565911741938537522576577174529207021857363727890170835467922227369978868042284837912907637218143945314127294585821698269633316582523183439788307959500451007419733924567795682621916621946998208502080198451574274378823062440096046965786216709094078441634875645157425656477820435334451689820095713633177444562410361929113051407128506791174902581475601105808478527987357923603302315575253937977292612766612583433557539046765965249124408015633858177263888287008410927223462051387893113326286329433592062478633185295876449398347044010128206715753408910885034526329979647383382000368280582116353629421066005836136219528240434378633493196567088046873263587615325306046669336936386237927138556320788825739143250059374471025017506616594672249710044900587915840711377273497209928575888404777146599260535692340082008330236143989960594955858521615117015596106982610592351210718277989855635374246870488831492457530358393542182523571692445196298151453936560074148326466554907242663640662833580630464775118577942311883448192376456966480941391525180341710903995134352650193285125860646368687106934861272584862836434096406213401101521314852775016018819748268987529081669466160535490482359486184236486119615970934721826648832895602245799986783398680139799289961778686892696462758194066051860039723192472059422515074680619951717615421743656249003719829907096050477650699078067178003683745971942323421958763170464973586439248327960551462457201910100176080966872724573006051213647219976001139545531813739756879621202365929587975755452496958134869599673122335610584151878134087993297591111507364782085317530371431718119201007648473353428577952348551545470147208326878051220500671294256973767587893475166851684632742676909379926392185611400627028809533389875241487115205195446708890175365952832906358216197026632431241333799353261378760666914931113949575981813915169292974579392526540408784630370252317690346790374158638043771016053896223010589778210041309913915724214855985255309953259158130361811672469763337637127590306290327634937015819596941455005900664335549809078377896741294559898054500820376148294448404849741271374161948378259898552178655742276983395583244485184463806460529215210015655328038960273937249319923754938943166771452613785689061237668101031420337332595337201903433405735436486917876978425348377192471049174104426765611484991596240861920055808213581034813552707352621382040304751086727324419116903544908026036229950462397288401761571777521219950800016482881102124107907886203037172946392435566701541011369974145766975367658576076166457245096523587900127131804840443185089494704123922356707308512774010513595062717786260595670275204135256662431239612173951880327999297471596428099202904761077573218596707661451941084581998199933091632054574463119225592314819144198109529605353831987327566567353929271973470676889810160109794754052672574668667913468962218146915281123674323862863961556063464440696964627390113864857030342073589400122827783261399471464911504399667093713083277950050421331433344870950738063119689046053405516237240836130683713854460122523782061650432173992421324565171438889790023270096073086361024203236671250113549707023159060095188280512851856449137051656549810216226734280233383397411306451720636516859714052277533685275720533616958462871671490753581213197604575960537568991061277907613766869780238034376584848142132815600670233367674629284962343796003710159540298591697578240162746415374514903439213967165854729492210767911398127660274518018564428026291398377500907027189770993620292886145576925309235039429147920958849918548337715738353684322431225449664337193665817579774323961059168842045509165613587079077814240769584336814763966375201370981831476705656956951594400602733892670772397821143409150715481477508327301702073381173216407372951779380778810472750778236019148268965520180918119074838203878225189586243443632509859954919217485007262645955410437730568572317134368410547293521983028078472434632357859336912377791767872219964700294224993737493786433239995823684769682657908241135208688508143280701748582691059147758309582910430271827777116827086325253506641503429943497347386425237982834902051060487103624898373435047740945625022229041752120490171577665329710563340296669099841819721893195912566229838933036116268273767628936746244878342962201504845592888986852924299486829973616977783188002060233096537496884217279449948784564714690273810132604211910749941937660149376884677011645738293884097123507945688184356734386149555180811111469589404769190568450907471820448735024032509684323498484938016855508953574235788597579334188969156941866117333859794928206607141107946759644321607234761661822129459030776832792577243028312003491639838904405747175618940519313765378769455418701620447014657682076900994139942840757809836107348867407040485179586615287615113959444269914851744941933654980971741085560870335695957058311273595857540140942827765736364451142739309489395900100315516971172371515501755903079381598520910470622663958219103778003006833727891291500167024787503936335960383954445334286880679487463176541109287514019473794176906281029996628392750410854725891421271324022469380821059330486650395382100182502426575577496861794126209931014353418887038718996188298339612298295421378867945632639586103997902886843204170755122632077859811048743334502868817874042391970539773855713316917937092504415538005777619764531196282315586980138116567280728414149452779102256972686071100533114830648099208955533815636239224040597691010144919953612279816123907377965172475835157395637957949248513816055162510429554717704731068743663884465691246361536591945076380198102535310087129971829307225718979929941014479180609968489498219353929320235079886376240902168122215313320874712423649644485109713546028652110928814901960997902127231376750933971248942699308500165339086714532698879427712798997446877728612333959943064107332454160608989072874085108340444396587532705284295404029440210852580183330719234082949650361244690287193312253417756140723721193502076810810020886000872167799447935124342051107519699324796462157219936982073003322044673455932313995016683375873820985112134411668633388864709888990370971125202414460419360435491076062530752857665598030967382073722924553270082988047756295350819010715879006009179930989550270488413873776287523867737026540176678500467293453778860547074067829636969156103953298950263262687515840470339021569865184142376670111840311421950459150616891328514353504594845880387408370304735607002225109823144046181166519439381225558027266107446020115044483589809075534467482595454493669648393115969330705355438151639798138321483907128721011463420772224037160607114350310368203012438288519870501109670398712374831168849277653767530937732074930106486566133742865297828644600790135661914480328607747038401057632950017318589301828155643843601943862714641960710120529126953868391051147949452559047491183786145126882083336463254705194397149216252221472824008222799730227914525338459881969277222825608696965823644246700745663073788293955819937541448392407264431766602185465573388153731584527119013305104341105484546445437697167241025586468147304060129099275184197191062212468213276413358120986865390017402420413536243179972330089034067613266134464843032158949795061760206881488011156615589944169048347166451766582747397283736510195254266771982490034414897934056729854608384169111835192496841375586033440167834768111850837788560307100591323665324251044969863557848270759756509849256430542896621939289090961774110862486202519209574271862663594888072723158968911950122483111145740694370814762606225751237075932519000640856848702487149538368482024028263147985258114227964834810660996693812864276564848733941461677093029828969327104204928637098922615914920814327252160297182619163453899598562285665201149572928176244385632323869158490775653531694523275764207171303956451534181572794233224977397250627998861009066795997099152808693462849377667108344047826613910495494387325483620210976648804436936303000719832081135967804096562398192095063151193344932432527320577046614739258536128643647160486895286718666704083403498425889470635424370468899251996206672480158659096699355301530436477298193264618065261975724115641617991076348516196986437134767553575768621327139222711949099355821876081058294426160440991104110174848656007175310349213486783452472185303449638975500339751095761315729821914091977618668356481442328994022615011893604476643150534959206514826248316236118363107460151997580137906637642853474249124427825208253972805494754483147875780679635816478127409044892847951517176118377844529034440814975565134235182331125326927883346310311588833225747181863254873295349849484136182883092710203214476359504692633339627123230817650519108159121272587151674811972563545291314866256566385076230782469123086932074318238769365183615631583932454228685102339807258132579979351379015661828803865247707664832060086698096878402247562319808435472217536608758164123822833787570463050678909929524198419647904541997384772865710476763674788899817711946674702623557371962355694339239039047164084382394723205425275493692842242206189153467458682983120791922936393195541168249828414167011818375820883858788727746722070749637332240431680047700518698769133675366793551901337651397919087693402716166957551980166271837576845598861179695908375968079755469783927287287593670554799451806908290483212520603547892548195781133411330003014576805858999484640997590649760395455612988876050646526163702079623334312949952083277751758035643418154251273620498514542488313347607564039021447171563771618043823825195270208525203395985236116975180377433205397853933907941478840053704562465360257244637446657441906135223277771517021137232672087895088881191023382011287762950448540153274612197332715499019438254969982706095009511817904011947751264142173854376382654706026043907538335331395320202246382568107164806665635604483602941512612825611401844878655011340855818697805328563160475886104641548593671055238516279245277530425743466585064602227802024102362012389391041407716445415892492760753015420759901413002350925084423408020232101060366471373120623839296829241132721832319825465458200694723256361701954192161455215176005921200474928340139050752604369537252568052093692583269720850148767151399674160685236451556398722640688051270302337293514295904293442000463030607774290260204875615669295194329553204089559454929402444805630615441997753379000534823894475589241146445641788117814673835490018561561233009442154888748705023585655552833454040324853857026707400216883906439019876023964881476506803095786029173686530202130577268326208563055855381281850637201704390168128685699731447710427787371467627802376788375179206253175216332412207751471645462732823284950290774172751257533035498171885004508039463253282396292704094547346013662900714632638482276796011759786085517112918422778582614107047846508076310480421601193466200151866271003215662390443865677443830162067836579167604413812054479635470594615459869237259000906091853097301460320293533441481637811987031990411182427715938470291481895399558327038163391804757296603373270938957185644169693305187771845681026209046406852506075838470898395985603722366040242946362092089102853806150872087940658656022818847689505387223002878089664623482786060519751134850821979839474083967761009419658930929099161230146908661720650850943906210050447635091155214731908181844001412215779110296127887627846201068462847172380638502108618282848548289584671097812208079901296572648073139110753209780893918905402126578451057634146957926235338837932186560358730557840729834069877657839095609041314010277725131764412179067589565095112814689293556301285125438050813700841018970624861859260373580580386103278821558179623863268223545702752104621911341758133838420530014641784054892024033550098168962701353438310731480308463361211324736803020351276768946441285700855706229431153957933899444288178739504908299757918215819104036481978529700458959002243464126548308221931295550036002795110041449012749776872660499514881502604807448417188563842573865654041121134816997883576041231465962357354576445017871950795619079417971456280610494012616181882429523916562301265140541653331151726183809357709908304195350792188571961461710166887169762338171874806582523951083068602115280185433412692896598361114743432287904081568169522555375136482088505593867561295692993566198339653971487129187860537744880556858033346111748978772405178292103102684878574819833583779911809389091988939731620698018031158590356912437660712230296552012245103804314673725404187831833231896632126095128224015772166960930595915351709285601461149670235168877143754095873816255128384255654060741069327887212155808607749026541116510168616986406273708670336538802664966068971046463791146278044707453544880223371135873617012579629905364205208016353722071987853456324612351440657179235247022105214628150030663710449806430519662864191484739877856746097824882443118195755167484784577531744404535268714990799176188559202596549884816808876039536094013935389298139224355673528412354115158461207629573490552315183336408670636346678672230216246356293065204721521028444364970432102737987059462284165241256684426272429503977220859395986469287701195424878916650619090509991558865241847653678628756292171627865855692579669177248683386912927737243952812650113436163373786964581293632556928740879146232417574079902814964617685264480355554193155565668641802152477894737336431718513095843326660436786462795113758214893083207737589235912120887114324691733431337940007482198364451289043165717002251997837994975509823054453879328869327109328069692383599012891307418275598999612078273401503910835716438383891990243058344459479299810347861668077619026948595922304469806132412890161554928458929289590492230071578521880975482309921831006562379113217038943993248142387978433010510679345962185463164480996824779545105140025320467676362685487845425736772216229945803204504737743660979106467007727074523519932914405163415489682488317427499867739750937739301356861142221322075260162153181344661150327658735590195880036189194964338930762736488196844968972037859702958868362455931518999720628401251342716048030442764919818503114293870792994468746719511701762701557981319080584974120864028043943416969003486861427787305179194552776403415133998850551717546187597932369524912711545966364117358868891089766844339440212855340654503836119376353225820998259508159641728611406111998235006810648280065560812394119559615192747736337975606059994237852714019168486647577154688143510328478312616262637449392814543181631337391390210913006696838911071938570620639834669707525651716798574944842983765976028749610615676298344614601889083160183254472500419929832463181666971494158508630487927366182228071476365425511449758713664300486092682766877443578211293561658949528736214957497484243239034646896106224794300360518813060491557475205987153344515328039365392026315233190473118120920901090534430382626473959447917625260835649474122107042397990984252520993598200846008883624901202958605394246492737161915462869512009111133787294569048509356363573360878212018158762527891331233527790507986980252029248720518079955554940298409102063366295767829326289228331194906235260651540741797399385060562530776960059812220618862052515530885548213702479541063317347485287064352796036768694413844417876506303667921093116138590400819837439792418075299565284320468292511572389030035939903698767415762758474529148391450273724206982987524427106139977954451667601605669329428670030286158128067881196431967270591836026535472108380159469469458675964526681648805409499160043415435323344053253263962681262462796066484538306657629126188040264550993232816394655207503437455894011610368672820440093847242800861657484575292004594093605421898881664931819568232406152760181557060822235326042242958142274893038546794133862922856239078848955485232007416478083486286193554406735410645752003300635053930625916707616445864552780912241631147914374239188895867113689622204811849521012607085811440497367079099233951629749893791329955305309916883746674778237821958830817769907562926524966090451115888195654570115533371988321564651094414105640113275250683841759727733403114554263937004439766088206721125204780789043242080728146609953890748023535696601752121247016275532210238681362703725433241814404193194265004606026950084481456081153526029659861601024240666927525183470108784652028056455786972399224127934606305882558871610082995660828459397653724921433870600274025447175229629338962314462423040528990822349169344989006517260515456525822799296130613878768639168803416251333207958173926834008295582585553212021381776787105961749796033540656916397740457392591665239722156286322029056932635480825429162450096200472455237441960179378707495048719217931564012518707527633840130270892611204155058890775696860901181363101135848613616566902199124797611002726974499024591747220557201599472680527713464329500253351024452928627100520884247872382444382387587700356505568126821036636077630696436912341212869532938918162551004152900107049753744952652054109141652327878872922505948756039746953173962146087236070700804973378235333185242253470783253231478924504740482013211686346283155314508418015493637210396660116195226234737769623054471351752615805344627520830315005099802144493102779253189307151441557770523180479427768276383080837278625476611275928879822376911776953333883011783352232509486973995402385784584711492492076221676646195719570785133637602155563062987862281341219539342787498467590858702637484013789121084526273316145677010031160820322847472603089372672301362470256906441014593415498464713932189924948944926667563248254981903022601416587358460356222845539190269785927255351920653942334389242114385844924407737826150940773829978630006778843168476128620089078651207330434989546731161406278263448133139415117035694793925798819012509460355337733839787469508755888065904393263762960868085659977879985529777735033391427639556715289639773899693537137600785139889522374816058043470380731628335634264893342677966118537989043463380323857664017939489702682797453598818503841222511642450970076567457118087603804338677276296671221566345642331405609354988735507614642875099363441874619676777040296541128501339056550694237808938967252510013637192242250826844978662871673585555507661595262345845768454627171479569119002317719175682699075707622614792164547211386649362769073379797450510874465741614136322271588232833847666259781029212920385446748947585514783079374982188312777849719170982859312542339297306575515143741030416583341507312384876401389412951792629702813372589853094334380040678551642179722088526211167122897854152262685888896846899243267199446416406181676058719323544273757277044778733270463665810024241644490374399780929779387124519591861973825879526590760908696053013757218268087233940707392638549868822919789940815409514290393891219324533760613209390180882069866899925225598398426517639500721479147570952651730824603898384089977598043226438317633476475799923417242847597014284679554301477972830512704742512905711492600473588120524731721666901550593449140857110713504458964821735617849517422705509210016631192058339350918242507077941632230048287213072855059637982113842919966951350064518230618805780638952376652872178959886983153023116342750771718646901962253719886476290207235888318496035667895517687266704668631786026505683508864285134405487303853550064604907299590239904028346048088908934516922455027952482741331922347366800957337933099768922314780782088478522364054687895152673946074222372898760893350994234827513099330604859497956031848464156098629618249370380655413752789032256055483039523967218491070792397510361021215082435915303132677889019005993632442613017759149386855951002547457484681066089095524078667398273226896421967011426797296959861119957433327775359663146439791791249393612071234760057308060803379361199316717492387250081993026434031087536083027856427937903073193324766828619494539894310989275300682863533252133638226303657397147255123854649306929452150359981371706448264943273813782056111462518221321548410813835877682930354886368222474424193869941872577554020765251973410110719134094118730450581373394226927172777190034463714631636642313856138377938949002879003306308070202354288991821080137256566059651228641326967190454109638106784891309315628049794665993691190959737964920318425481816881265972930623506695943917484162361995332512976140678602647753040873005418711949270056947942109833809236530478426691722620907078531111789584554656748250702341610538800675329405613703118256676030402593389777048748560480772148129509220520311621435258182481524251312973237420824787763372647232645459019392329512497530927292700584103406114804774448226065680975794189466363845050997654324870517836686188058840344665235605737098541771565960524821244701772120729107606317892539442392013327420836234478648551318444152292974832405671852823593648937111452585200952185266603747299486931932780673962846514687275250607070755801539812317686008863202319822243328040877783384807854879616666506404694713595148662366763102763198930049180839155073272421497827182891451013867034656222314308792915874658540905238290565199087903631234358619417497223063194209019687341015526932969476836210895264933629442121393350601699081857076740970036995059212594799549428675124567720910037880973653699411100985209272219756766607114504491700646081215026109370747549470071876541439240908584088602208460025191728735793828030598494070787383942424842215369908558029255823013261427470221231126274160261849647234877525119577292295688149824150935871503151291419629199072106984032574029078003312910947024210892687518282309066777251877905896132585679603867173822726355414628769985448998888082626087754116111548862197695911018956929086285937592990786319035510300398827626264335788234479007324969531362863445387946132138568761930805375298778073257211187724808998148579212800601233439196687453798621955950904639171369064349128295715401349674459252708431595120320665064586258494259739548356394806585176905909365116644570711481398892459376570942995297267362342668214614889438235095131458396962064852253040553515987119129761500833867825858298523283559354396463170513332711750743697672886458867531423098878840359835242538665783228897811185715789406359092318853209702740400627589272509759843723235308826407499607258318195634128417637651862684467143636614247432569677805204904546002435412259744604773175558515456168056232708130087523079261417146245288372700666707744460341165181427393673355797345233781871653178615736504812410206634928653967585292584739298443098395705963665784945138617524280491416609750135953595443003820768421983879490400888240598543113150588825904249938816299968601650074160831731045318791111830546951649671186243757037993228992837675524410048602004744956622387489033611745810280328565818959091270140897025563660487948719437421992947170660161509542063256260022312359188217043880917108859467015020969042931234899516627276866950557440534036928550551933659135965117557666833903810693292332859389158009484472719869358176316283396277251791658956198077438414353299577399901544854271362971686429029998269349849532544976017676120497117568478046749416022135088349169377316640185711139012006530279145542485629521269024432470716219988671044337882461785844338380952639149724832552192030533926586406253049506071910369566084171156318810114485057599308570985633670220260377648480972420765688802428172013283996855902976790567445892431336846143098197561229530084603042067770962169029821386813958965163164852187121590626712207748381481543635775105445190300255430149639361834004434114973641803790637579150893056927205961668002790705754617197999441270695757816139637662084119038732769976345267381335169547183035825268252177487328656038430810468650538211437832538881789389655744961013420785871022226485283210699962680182090079093111506262419898104688101878839387045798045096587965650172973380546764597659031969121906131803372419604693783754955251798246392335634824809351646390684211180095391634732607765284194538765764396691718515637756853141692298320925654155857073251884085848017953986921073431018405368463009944999375238309115489619720019438656310833935793245427925225219733134816843497368788138468267133358582851405568407462507824974614141848489467667106195226045761658990703420302655039786484135346985176906193382165809858161178467268435777332555474502384750889572100164697196201821785088670231652696358450109725680314635178692739542184638401920083735171717046698714574813561576992007033061091694624701956869094822779599483571388987200056220642155968715069694775283281659450851929184129360805382798453413279176098666520607956381463681747627344565517716494833474337515442415722144111290585229128752021771887574668119305614015609496581775138699182343828405909309522566157004230172649698591414335528395200822401776116907329979791169237544213145578423229125914475841523639122568723641825067125073455832580697301088345434944632835631845959344157658725462181605649925167643658184481535377806726481474697443573575411071848752428250649006734667481840415265573229075062094596473045326872358938986396115132056258032078976227567986410157282722816724208615007441603515404871752868619003016498866746212950166200138500761159431172419818680138631878094047212124367026550756435232254620576352259275776287979696522154962935671956567297598672738289310371461925025484287543546998020983599522273125690548949355811081925795879360340045138964254442944904344746982632501638267830319793523128280285162619094072070520651133402347768073056586617032800116997932170883668365707306719154885116430262025988198012925855102762930265512307359498590371644431236708860080303993598479685759984322096304916460021213138471432532850487218950753383755269274119991186027299999941694573366571486598543664298414849105305948873380407366042955384942085990896527931759114905541393844295591676690609338564514459087008850829803145528719769182705014664285697799258147456862825113598715798249497991570530298088961689057324492265306082364024645600186878582330724794675633780790247920878095883645035227980920505138025462050835233599768774622373325721908555777602387267198998130805199458439313701649035833447874571748589864468208151587907876100040106571677881606457904490067233689212402551600788659506792139659875508626011474547194346632180052375336060119820280798299491478763850753218102958048404568428700716526890215655746938411570730760208037094140765308302385039463744050049263465816470251379534324766216045878467239866061192369672822202776783095336195394867781620126442672786950613087883153819020653389463561660631180983830109986369863569527995428482462906140668292440876857904116436480633082101871260064467200618920606010719492507326131929354035108672623931823003181194937330886011435574353014853557031975245504222893205750753516357571291133600433165744390164469836189706265605239783751788911367896623671102080071408081272642214522111087636241232685174665170880639511990622562231366013366980655285065513926811167621660544651200192727502452500654934534680213371256838387600449032787981778052740489744842937809131372281332408082183070569585731308333456691460143628236465455271964898859054546859193943218818420760736515135674483894704094037506775015612948945301821996642830067651772194233920802257252026901531139270320624908929378386221233674647296237884750075264212100273772126536674675667438304893769013027664148470860684577638772461016745644522936930565623076808604987529164198177273642971750809453165493981643917956164627346173645209718173106984543929631594830095723290578574338526703589405070594051821831912445050884643223360746944113641847837287753154296595460487838858796900572375049394675137648304610245913021366977324258110479938294385806989136210773322296204303481212933126456094415577156749541243032305132227350839419276829644093893019956944422696212534755760964099174959139476091775267518829526691524539003887437133264386731989407080143131844974082890470269649319048079226350025539956448936558582280074909186836872680618173306878674672340429707858395993604395100882690884137911943630568232158585592391386354359861485040138288864307518798895404609102203454858051999988226485116213360453490612645090466218100121716508751058510661262734211942362429155896611426893245673329955282585001388064430134693491790987789302511070533735552290021749803592941956926264645962432860786862345784690714547625040015090693244328643927798610815019504834434729101574817851459080621580209706729589003912809937806740621661896893635299343181214767913220353478807594974657817152574635974132368903665927055032534735128946122808400340300496112823471862719953127488410743657302420875224321871998762062790073255457681854570697232150663929170426458210837066486129186870712525771068853240337794388772944998518564990974679283012544934718495626997193777624927765619225708085726520901369744783929954877130407751714393411101165189448782376329271513923159738514653408762373449439488048226802182631601366242070541377961634642378252070782363921787387146270580051359497856324853453264072288807645524813899375500577590118811935451488127920116059385571017694190020778192484673070241169928160723917061096264551175605215557842842919896603913398269224451221475403668887193370817003954477630793447454440167785921157488683566464411373840878205120712906115863890480649751831432967342709757637692998186518351210925317805355783545093574745475264933195582820959572836354139769865398578538664895850550141629253086457364341183799720142189729849006741988095329724788759230031853407552157836219220388220772874406850490002368086195207029135995647827880468790028268214785661818820941011814514798678181525548239347529575863680320229404697242735406360960236999954321718821111144922973290027463044009052614708792136279030129361655348335476332339504657881200679777100615828676520149554153403125009000527301893340553508360771167505570638653729191220007378881458947416364119008893361391366370250517743068387843147367276900006095162160798535781850269912534214691651949667137507494062069192622374290852129635015536402822668807873193354235222300578284201987516432146012550490713962353943448669721457545792486052060812903470777996600672760526934222530873691988941858840156842995257779089740634711920891082366237956058708386623981749293408755692726983366971967756935333269441705093376585754896933219875678025752253230388199948836508470243216002643855959868327826775563976077677906569640413122295743599919574993311826959115464572084080842472879128664999915361463150823717329549965996551739748057209392832995559488795265711872206908484390993512581818572233134012452606686663228436771116178951815173033642010660557944690613402363566391395285387080391560386669472182192203207400645824299193051355881673745381358446439854638169403487748575428474309714761506541593348396594431771990109279499689299527350603741553036456646610260513970185427627248204588883522296549500549359068594493325616696113200763945192344668958837859481146679930098907616741039535645564884084800846283570938777262614755977362225388124215602986165502613763281391146739043254405575229000685087245916288184574856739466871435511412953505932450899897929158015633963445929142214393062329713577268059987704632226669528868216704419929854401216345409960320761821028652235429654573057725987166478924536433356770594870460075067158915986045446467978194666204702392790302278260875353929474095641503477491843022150065027239997504741475619510362916285060196666598066520135094017910630152254085667342449616202396463461771107259398831607385173574067309554210045643818295216009818481544390228443619942728194080078925430192328980018861782040368391520151766460890113173359844311571408778583791151803085120827161110229067925196069757557614360765893041173723710064615208791588821052216888914949029098687759594520631272082920720629961353732661598172491495237073498323060058469527898137228561716083869656885388722985458805292351428048843018403030593642122764637709541997831494357447114113022362399423871274468096720311615719774866290644362120024279386778696417521522897812082997072721027042140179209571069013382112843560640942981500145118697225700178128863425682464888365883289750577981989153248698582569833708328701481427283616823839560461067820908118376399194282275805185759197828970621271168666433543100971776047976929994726124898945648030514913919331145238680776162502850990508215225632525587493681886640975464084664016482967664423472196880541208545647244848132696978709960908086025195375082556420559742295462960220737438886602721959575163393008820907418501166589311258812837328654222453625342078719659981215977486526136049826032905633720861180335764215105146940523323062739263609812970159059757538597300345178195372707837791211294895545984362026272582619188780133766433503312572213468028601111221304393025646275427556071555346994527285340538647685889632271688481241964281481816257365330747079342451421015059947833184274920127107198204038608383428916622599785679859378830067854008441052768206893272210583908316411491615644650628194988024480035309662013278309881356543139712241963343802773030326927912242151881256555811803068003764404288505763380550491205078181621898147990097881781605781847205356784817986250796930664898955217439282431665823843793772011433746559526494074108391312200487510378039340486138071563670990313457796113521571068509948495287274413592264850369894334004411017505762972627867322179540014867557458893570446646307630896109477558110629282241559931896072023734689533792751253917360671816730296083084367967136983376940244003668761285397054119858348470224635685888107197084050625841205152493559051655581345086478635189047738958162533148145333632038119535664158878121020961062861795909245940504281244391315738867297736457196030987642431911191848142557332762892174601918421456906989256059736846302761450356872884986888341295586872572702217408785948951351949202525206637554007704976828002513465616824414373785506248375620462847655579136418801248735579243784242290973857445776605307241166563180462460347297829159176913177824189393950710523025495369526946825368666082183996686932556988734881685217749464070723212812286761060891693464288569830153992422965030743398939544846993352783355581054704137954648541598934429512854887643224651096320910296227532725781596751603739134537053488371793879248054215136868906938117713705413741931199705520726453238329853685287828303304182485025498515995027881476512308491450393399517014976297482584474836387610510334884317884480793061213460062100841202863835574360922242279738241254903090745719606632339379450452879111677825531034313697616708417800400136951359483031854493370152215611225505891942177058766914630886338195831304108896568974774020411856302221926510489527406758583635801285030417231890094839392481159428413994055352453105558002391787520606431746382206905846476354379751169664313971734107070647181420382524949550688559632476140227856424404347603254276314461718557323871753633103799449694562971988352298848699942051364345527715769484153701387902921661055745135425035103318734666170128324678697843278131632417368088704721195487426377381796430215185559950561613382554156354775668288773425826779836123450831124752104890814108567390101426097998354022488529768287504068678481071050873686502096786261139201362258854101882391655118614950403050072983627172896569851704696883714985653995436619070648825120357690329374295421340656597096093368226626073905129314688666613721000043236544736702657993387173502123691584553359297951364015073741036127915042548743145334083457548512610792663133012114110875424376784321821275930048883680458168633571920112332406076831298427332501662546654371979207254336779573035792081340455125027665780951055501183671854119988419623722626297475460276425186010811626920398401098022069376508195178624204657416108181041098080779701104284085561137065551805455257129191929902705512341759900406641724162097062967452398996986355640789774317607609025575529704453223579763578610466430911846370852223390311755643987099253933611184340318848610927403639859815303214503728367840950001721616274966332966250930784030620071451051374365587855839457177059882543079620926772790521222436406836390442509654887044844112015266037973728334189854838527320917515519584682201129221163305417213587411336447895731712108874025238112896213448237122243742459444443352625367559558577663751938915826987161747566739565181280302027818137246646565832719070891340177234124375220400525011450606762782857367722108839338578357313705035023357966931117845187025317651918767746139694376141942102505783784410725631315679492646810226292081506510758497574705092319275136486522343676870237046444963421734339425063139168945248320502019766446070526058408519467051235540891549846842483070437066050707976949977204201780750337981653836880369778810058410526538786140335534143964492980610931809144240164761491735658978766579180106266673586100549039746872373467806397495013782163894895073352639457901046598593477372853424429444656562997312385301159173693212568665261204780853916939608203192730582169260582008407570236624853563051293842059176467602295663628461606107373721756735311986220407103985020466209639783932431212606422432976740344884898418396665230577726296239386595228257766641824055328419962741695943602993195737093019977217670306097148514564274532150823288641235080137697681442990823553858426582156834614484294707353203669566821135434705653637756664125008676399589321071234738547297430844561636218634047967480889069285481626111851886997109873399737454935769331625169636131174086259519367263424660105926285793000253530816629545007109956944210247593813994396598966090517586154562797214626893505651205198015446962979276043354481105174776234065593371795306319325135106195469318705044328328128679886094838418428803027060775810350032439093726237544775982081732946005838786507797900666267034604135389957527720139994635729933039786100616810667618656370425188089326678727749598956900934944858807813316349066023985372133084149257068461930575507583492869389936824453420665497922751332328855728462541639091279806205277631469559601755391900505770173999744746683299563425777684683152682462848093308293347462816356115179384337949179209079333579692334000870880916146244136070918861547841397849236333317385360227978189023858546089824550317213847527946228275423307564438471968574946661101852769347256099953051203319966578321699878364821270564909259111004962157070252989541243541468581361053153342820425206384209077706939577916064749111751085768571197243243560561421600756603573942587508025259298717098847019962599900523450050039116415596819132520633436190717987460794298754810071900285203205911511834237473347204169648905628927548698065962568350470097206545888932555912376343594201465941833330808795259992457527794071189037776250313573343773499513994619824952817334062015681939721853828148059116598590001722806854903047425919568969764384322879738523324918336759176416990892778234621907049734104641505116963162395406627697790432273267868464176411500588190229951606182397156741654282631086147442276786780596828590443679058603033496479124629629873613866553608504493905097094137439625645870355083072084664857338669950779428274432496006816655742015554657719930070346173315734920787326378165224267864569913221469722312683910391135849577671372496971851225107060176706578042402476427686914469251073299204952386812465424693667675921687982765996470636142998033313878481777686009670714750851208291722454357563233448487692771280586778761622580614046904315491473123974604657616166627327330291308653335406949192254271857567204230454626500970641033212637400236551091879034018083891105676064404816705611731190024684675728428866980980420615519506049471201689666120803433400346856319439732154475720758435778450495253948879415243494918705138907361861647788084572959939496472529833338226459993212284561927799370206047966752875100508285932994173303106819212239683441173648760024670522366175304122404394198465792628333988910388057115590398757434133073180774343407786705216941908468070733822568766429072533973159601479187432881543327944449154138550665526443682808315555116060596201045234111084760101926971298974667297491646742103383872472946062134837030269603461683552427631170868359231885228914980393994859675529518872675241549783156801012662509502229866140800864040198024891633504977881276152474828280472196540837178603986516483371004102309850138029642592581603701047434422290933182501003626273227519969721095052839813981907849894500715706919244529626877938551997061808586264882405108011773522414166114620730837594196118815697141673714479101123063208484573567686008612113543849459516179959208632464269418969535678681722855505510632702058879817431413988439884692054400656157715800341853981042539784755381631495882066262744595314736543562647197665430657462972806208835784762828387717258485608992392207084999720041838372062463904178458786525283756288167877276287895448638217076364551627035811424819271203400270569683125750207044824448384563947663768072829978331867840416043054983725603030192927701691046832530749661521657427402208471940445490030789887732614245653422619588093287473693685833070442809235125319424030971481958652764043937572113321555876773798059194270239511718663735046319884952364730827364073076358774712862690008379879015790773668208413408291490409936149961241776992877113951640358104375575423141789798288205007078807846844307358880271643823530376353627201183024291767930385515979893335318684777167214952946005543468698729876581821998859967226785792517830341796030725043194538121056352114722585320906168419132263736000727934112886536309367169009948062756383973076362640427374227222847981774522621593339889243744832223929513979473282765149976247649146665082079610765004190200699327598663145438243147331080054311054451449478629494486443507417040417077775043305788850632520337466640416590983458626499150684542576483963078545206497718819854636403977853590014601486432617616334576563193712367791924519290890146692122931406185371931837477038831185127967293160877420854498393875599121364790558018842985658404944862189227624226376238387176343572975685154479631659477423664850873113382826971966257631540258266518497517309608515206555801649170411181547006395905766265570196339197776786717582925030192608467576936938671220977647968568152753011785855554681656313225693655832295531919059433709329574929522002217038930313346053823383975349713380469907117942057249127314689217326532447989946118829481641336620987907320268718492883369365801601978562112052914692808351887346875092990468816506566549486147421381329850284247483592104644354129132073948589903645301085766040990350901726161565738344529861762876958649812809700243721743638751488119991264184426016349369531002912927464253411083119018561490876816847483790685875264376582085310303787642542684617485680778869214295794649701104398941375967499405444545114720759399338461025741029856433434056522991289415353454635609111034295245195315591353773103622080869534616440529280168149239876679858432588209176687493248463987201080969836013871067395771872384865742941921867953016937406110253114430056467723870413796887185179333550178293425955143370922235107061535920944379335319648254035220592639795659678034313729306984879300671703859114856846830643271574662296567630083106318090062731301412369242548750090353210249595831229383144867149456893727004321546119716911315043845606300653186754759044001885624864125427585420537200532501562500715671304651638151903464350167620172845035205197908598474961882613274991732341739074542703820918670697858664463045390942292283290437663342907170432476997075173380592849583174359531143061101555415368719626072049683495394867072201925048780789085104063139335611485098969296434052848332699394469884273474002006006440284532798054200483759125384796814312358609470337364949931609638039917889483132094365159536728892561599316101152217417328987566212232992043227122601885236768325852864648593249492581443317107363425987403642254415145912656823850230268363812496843888514067000891712075808656478724549019893840670936618743972151243751821366893288145052974202983643987498689461237766647199231748832484878001797517145300842389141577238782404854097674292881480761040354952114529064222108922369896424758421539716612584241524243932577150219047038599393637303323287663867383680854649322919670844304539956089040794230892414874149980205636269001358567322542525732793084436661713034151931692844822308777990505026960931154561573154806058869852355655428777790271402468434539592071869776716662961009154846347142340185377992908023093615389242352865798574227335561398264327613718304549420249771723474057625045974256585185526331967238811239571192453495414700114924210905552424376845267676419076870024361086407303941401911753154152961451117831895107817286208819144191253130077180982093766510105001592059370846225271162086854428243746631079699337577486631465323916537544551196260765744497154078403744239276395440414779710623269516073022956381800843799020687060884305561801703655198377352086765354167778164216855269600974824304225810309960603187800002975682802906008758299418005415805267781839692571834597118084456065730512836076626831373851611440188103737049128421464288445693502929036689646931673197377013929732867081150933965627496466777955635352767496659432122167008665144641462537799647328636187304292801500529180194872826679793715877588683025877715361213935585428827363270227597795165300077328404256517182636305472046983297945192618266290041648144406752652064010965066776216552913369724456780632990070513313104222332889306828046950584171250566214405701063150110117581770160486832366865409317731814567631538339651282551146832658560691062381115540054873167275691104910608467970865850196152674355488962234448830903485965914457518648623079869416447153247455637148163716700837484768028007271237070877817932057174940231419070436205911375366891904365606881989758572575480485858574085868729561084103216192370280851580757832835923985046841751071773125118725412714683907759512579929017387280745305368518977291975371235231427968516372131048106752175856308343471247799565325625709688817048982773883298981674344169744755544545376178676323369223333708897416386583825975663082899654627577087903819991534069052495877534333145898535559487476995513155924244217832016626557391443619838799055958126271303996177674349165956719829642702787417640157485464051618580409731271407471712275075594664534304903560399670738158587993790848823304120035851005440167411798628750829447280986312384430259207060948168808805629297022312026987817470198267024684630808212745025643044567137422726541713453759644793221612769323176379995576648557687324603705424662309295681010866775482462357807327426874760365328310866476112915689109732726212491028284416632366530935485448903572527850661013562495396980214719528506058685257981123111393197007714394380849282944679392551801926755021338926517081631996772302140245868812342681078272320208289420966486518362863350180004190339814482533504769507240575697567510301064075464478072510472543572047237010156830882174036466078207642181873742492830408363290006017238946955731688246702974659135952645984868256069606565083458790327768126587697733720121960624013090740660368035216500183115826049954595361124047724685667923498791673331476274529139454154542481169542220595386751956875578635658146901184086480389283286384204299565621174067573232430270214617499428071912461408960902537361063294897702891503559519559443228656163309953895425106230968546481911991708357783631293583716501895137568001345834038201320334117048681586928277801485903045268016105945530095605803788074561419542510994877523883621449787448182457558892762685744748430520067718170650680731756088722017763346593015277542017232419525274362461115841027816956752203229011392243653882473756138693477232138631769542153078619303888688793317243063106003092804912117554536394133717294479327959553253086585486482578850147240003548656762010047073866622418645005450179009680017613967441350519565229326116378432779340495500572812194187622855155452404315161358448676053815496091611511367803798644974392501269132203994706488226442196899981920722396044288923899810392837702300268642689770297617995924198312769439748124334387983925562324555708899568343534107607941773303544078750257126617070249949350790008955142791636593980743155821761021123067621045399453433310122708357529547035338484345143443545878005126633183962325874196416495617840418707214348202203703252815572506204728890263115666242942787822800648015616843587771625232571638394636959530964698069263328784079149461475558914843107292928861436344083098698694748595939058910117332378746880392856398587402294716073879624832288007107797883191073819960238053662075712109102703673053099719504636514605445525963619661400952095309084154318823797122349122375726102900734433421468613218256927685108170136254622893760907843620010311920129258030884993671599861895716217338756016582678137435986336876279043658607851316448112864733350888370749985028263783113159383327293041382927991500561647996903221839682193575883090034706920753660726819387662452267175028624865255652696241641919943181156192377499837069780302553902242890660768370239456402414944308891837175226187478043610313156150131201661364499078264955371642214107896099733769400993850574681916103222330144709814967200269403513881097281277594897171543708008849103075329434013819891398892537438125795977877354630270412758960636389750501876650709928014063200915302371893304904017551470058601297796600614709312932956686232883056189964122038627495762487322285181039503009896233898465754248613375648741499527740868498890044764698171127776393608662694987298927266939541690585495915211321818697968363276489742310884160639294103045337556261121030356882393743429880674699541101843671433155225728169962584905980124018125568250032438460726948387784449215488670328324997796477822180629189487942560350275178876548797100563557240404099806282838140423625489575547057746861049593490934142054511677663764134334992900608166880245368311653617900267598039008900954394656859401161153833191467243385873539997823623285036993941461150845346882357497942361895315911600984118194240010024673171536945743943900495475148314412967210798476050731861152996942022497003608088541062746869602356467131462726084976886520710164723125987710917398357463430942779269263065859741434276004998156506416546510054704354133825497818257430949767554772704539968730988567090613822702299982307189303966323158331839459099012596545607106110084941002710306568415299456800613748564418582011661575476193066377383707083029874564661649658870941474249673440878223720586510943242080957842529414252736529387462569406913763011790603027329137498971890838043494578004031905465803403995613960043986857881716514306983332806628520152647202921780344968494382456870339296461359059981405556572587476551367264787607288022554343465864915042297612295852783255506492047485182515950797828564196623117693908295474123805302445840003354245299029974619151069215098153171618368299659020057364715712305138512744794205742179753719328480022458570284272553248147792332199265192833858976182822659049457048298782090639161926669826227742338919997764283242501704681181874091282394899932518613832683193111671234971753245050557605410819813273321163514531665495319003490284831774123011356932515268616805879318943849028908269605627051147225257163392703174863630171179384113127096242106589669520205603025843625721014180507861997512229145742694561589686720758832881718341970112935829173448383946660481424373375891351916849830180248761950590466508706805062612867234545517226435610700811358872082807093953621864205954439321921124530156823034047329542683323017069797266117224016041886575109020878831758920680210274402549291892177720384626073772217403094795861493052812056099402911908453217270963397053725995217264688875538703169899873057019502641709494139936958830603014727579113326081670538654589247423180561448854216272161018411916900534994225053244350848642389249735542141028997933039958504688955241083548041150092793367325969647547201190987054696656180342616635671875963751026304217668506019200978268591683231677031325693855921703097190550840871181823278632683915442540642475869912697732373958141498846147440462821280171277364195499161286783215481976484614745300995514023110783237509511725644106839497875925118475926199534070778075304373295081656738451897504763615441042171404434246890693281608322793927552691698472147022001171889943456443734989623682415285617110445740889218010710238234632682255715627465576219867709844265525702561247116856879622816012905912974454533382024177054236458429427770249754518318678765177876357337838415218211820459777375445498753959817577050784976634341283168253335832776337659542806135965803999322133024593116573654474392528413192242567813907929982199001570246128029553686453137606765409606743307364396872190143179031581429973636612617030957072296615136857727877692332074109593327914974471322860930689469150536626728729604271430811402120658976359260483788283142617922042542187596858866088721768498549932833129571643726960018667837107185816075515108724279797298759457134245870791561726181368767508579461012037715980744302838435099870363767546355854981845082005440574224578477674614790774738346995477433668892784410926905883425689622840245208236282796126497315664413708615879797338868495647416861883376548231384813829186458011706410612098470444174935642426446567650787911329616190398968655523954299607143858758859107673685576360983714635081287171047090290736194840121806203234310995279594104839988930539967276701499473704970125529008180214815447573821691918767637726030828719956316291269842838264028491776094678228873547197269782222269635132549195335608506399608326890640821636963005973346756021595601728923385246048831511611539916505587359719518291701859267991136873155205106778017942379042056668156399767139199133208927971243837877312037221414086080641223143525682271397942068866607853311268424250295818006462394152217645266627368116520966239249140475801525488198140081237263275380328797622835699058209627152170443538458610600362216914944022342696564521369115411424155003889999912309853678114082558259109243173725307630271713190837790606692005770391371334015787070831323279356428654006495144797492661316815706227104726249698139577029795859485383444291769557288831134058647546108004050335918684037685314970812418717552173211030568813745366393251049699375391237403678089766558237387263500716478075969328432096128098808448466482865989663964965898868316507677417288605586477405213942123127025617161541447000320406611540223283910516821491079861828780920969033557894935902977939183825038922093732772680160996738529822890364725007572568894413216583114457293059849211916463958325357309732089408113465186207413748306550394806442428945935048790074337205296275881792830836649067601007707198725372122871427599274921053085074584393734604753270115295744117496625638557472784936711817221608614482318998018643118191268891958613133971819282952146866439551498052940686533030360846600166391966020295898352600361394334198101769241347442947794575972216664336640656068465049566790327703158722742853218656851953600020676968846155194654076537601964929610388990021394329286388085554016197582751897860323047236918342842495310805707790750820922711319753532110827422618619021020243068579574001525995732796293917281845485860944603858619069069180742445029174422499180322849934498784802549419728973838524286799833318335219732237785465058713258791873016010929160930970798847624089645545224109535444355368182099061513376130320859477462347146521121480724216757834779404961994990565073698294787796650460280837532539513418839476267728909828691564278554402257690391159712815320596559224687250140046318505973608044991047357781861911866624589736296459345976288675120295489153324390201355717149591421028499921011480785789238940072560479789206151484255753665235382801511694762009116166240929410620073060976771968261460198674920777930573384568451495906070499872879247349175929891792017781302338825713025346551931377823256829455714926236397286148251986279807466981675878188124944873585939733741644182142751642305103922423989079215208044446092505104572854588154918313578505600953710723444614113137289968238362497916114086024838324892258575581734764861873133259750522209325538021450644999272155300742083754222109185193664333127755856865190243345962074671373384239219190668504712500168450785810247282905785075720403826748769080024960569718546532104604265758177421549556295505907662874452089117388221489921480284390524605578405647694280105919224924117421328304165781900831484435375828174017161811414836048761923060990100307189494508868872090326182735460755778977476876257779853892943782433762618344240545971260629421766888378050549178671895759053604970519443648151548019319552845089986954382011229916906773648587072779023021499037415054233859498358715392677485723691605654037771978901669288765423163165372985752901240288450066044778364512272574335439995814461351015186129034183309441791329385652324765714710707386081325064622492880287069656498906439141606659114546292988250796882969438282293519148739148519312738390606302672711504916222741284865896741455467754305320823931976860378543571353602443486705350461629068219412244066132523022096224303824122043839586959808097591499991428326441225276562526270271986145029095358606611419447696952506902467802133946935184052566925996826254364851980880533393251326935962965427417458121448586108419097608416205339006092987636278791633155828742235836676968394199752358808734685727967885318930583780947571730181989968396193498336370707876082990533971569216080586631776818999286585993910518786193933713839460077830457321711476254061155440219445289207134669232947931304840759322317451448935123042412370640932308413154864366240746720646396655112188349516200161642972024737905468881690956814712526081783624767408628373956614855544376697642123319509949080180077195932249989849908036182071359700970644734400611130556747873474330532031751603705502065533121858243269483247107678538394988058959121777526795938491143446897060331248211974269938876681862053029795763663377073657697626634974989275667304743804542512832952102344100928173514348661683191798548291830099292442566276077535488678158885371816410765369122899073350928311151283133899539146177402875077880275792026330280292558292646156512085805450213508665895248424852116634279528449808641879215856559622869550131610888216595434905661726317713721368918149447443675979526407007571460356765989351877848448367658675531845648360036727045723165108089668443392779914502547572715102521565593602350025952488923985306235488390046693270849847891454110310406315443480803061519868625940888693257771076494323339949019593636542749601334665410834476091480386942179770921523885209551041578482910673219441238562353838110946522268424074673872311380605985809571909319064195269981777120356729895868436135045378380551029188428695106417577384186619882843574601594409055815884613804785355596562828613388492093728878410791474169513931132873533743824283893628325897180339883253930634528378646688359210874570601040386237601627566858281582377128743063751584919836522653177019193386464355289822221484319014142531710320523346033075495288901955435408717385512491454370272143710421222735803904974651536683651025283795898643187279845422937393192814958143938914737926130072490312355613320880460776982733147177968689968228474821830592170368177501692990118614763148725537928126684975348887445051560720603964890891220286813753360006048416393811401799398489682803215950127271447987525479613248628121308088479360884488120263920760328521092825563739927841018564304182791128470388466882364192713224582357950321716661501568540835359651558837745347432307625588219532560487608981986415707450078982467173116585939241842842317156713611660337856626595154203161073915243120953981889546882108128299746488615818300060984391236213933610172171541747033473520690388627300629367979982774631726655641365360315806110813251780604257967994534328489472220463666964518392603494074708993845606121116192841965068067474176161282650583094615781888995755482675638712728762206170724059344857484899530366832084839309776441485561827744315670965938356930863626611024763994544278346260420056686645605315922117930733215178040161508820929508567448547344332565420679163199678612002708121219548534504621069411133731924355847362491651378225446314434692721710987783041675428731571761933423211552447696103153189281258195154763227865832405654235234507882263355855680081344738006614751448388417706846809768101048513298823941534167283164453902585045473956085517322757723891005680434609335832650664134508819028452361842812559606880992746199330544936363951705750158059669610243455546166178368385388069253787236123653877755092082688974043282445138899765487804070895089099775803064360160094110562873146563244018035005013694392636960750203028275920343616779506874361826921132355920018542415421061234050976565254283500031377603715206244397577119357774899303738965124586664075727771704233338855587773846746449480954554217976158198885153969631404819266624992729105703733096128202570231006726627637113144639043945950933950557294280448103575827060064936724781745885712023503166548107116867315010048675515250750123114893724190696790739015262182481600850146547665243063854213378717921005528657068201287990180083448930317506201872035770828848863734570034239646921337197978166559800241432601744876451187485268240209303884117498021962372128202910346196235453578179402923534646369672606417829775597121620845382683774413076522106523010335095767577978045009378314916426703320341489872399018999136105447967141496262790245598025062856410913082612698182960174150380564667691222495601568928646648388299144393304545678696712835312962473995424524909865127320275171968874704524416468475672120743045182467036140838591272292922727628298283690159797999844800555641278357072473735102232411103229160219897374205529028419984299130133665332993320769009811508203763323648221627188101087567425627136794354285191015237853146664404878395416847285287064409405555681219093006620369887651349568916825620781365915148119843292218693845251380016986110091725905327670856577403179304292333027383462463079476084783758366293990860326354018653388735388094556837403020182769480626934853563537571870493771784223607572167101746870991830228812759066012283464099974301049544248932283431056022118750378970360312888882454461157726700582305315294558826295171736947370304864065879381676372114922357156632336902389007441174944038913668392046005105685712526973847373935038497355402673831454998536007925813148431008648831349424945018529105797202560540279586275118906008491389890727299901728283792863837258174079025829575599481190947832658540822029804662104594292225920346973652603596918021809321124593726439396905957444455262447236689824961291765028865643185372135987510469876736122067119907197775196256174818812377374094563119977984004614769540110369623575391069988115023835114547878180454394409508973909283845316357148321030408863510892301855597920792040019457283958395057500252006681448214572856054427116259128895449473169256692741304594369357449344671392991250532085501039401023435056978015255438324110342072597996808127041123583067413403229276558569636232711915029556930120902780612925894304329195032361842571794036228502287352118362882184081046767155492707401362236278889365420772474144377310145212671767798761219715763633564407142202184980704752931272565700813592073474073901593107115678823689096434357207274115503983979856004132608947700507677005331541059744861240872478862352735660164904500119503786145135800248262334894573191715468931683859931509467846438588142790705852532754011363637371587219133943928986630349297159817451260591627247997556352099108812594109007691797147267811148728171827181732073064851086704573330412521880904744944989983425823171116993324123927706456829176004337601514276995609600404211901581080122873476930928477926093218404438494769333595301249979480051241471556346203224288076085151397806711118686964269864351497453894037898639796838897010372947269975360391936474040203199461975689676329472425157711497544758407522794085312677282219073452105859073568695049503653259626617608132325556887589828829708493364957135447572837315722426149204085379633149330486549327184080707487777817615483528043838530935210516296835682295094174084059237682795503091900710408256841327942055938586249085056332984232025200392511669659387602341589306696048583918753134887735202009727106243609345775766468540823974473413608521428034611081771821534952899166926459805928575746012049369599851899315392861764033738711101001754665651878639559033746965593413225111307635642517092507082677728338740134319267461052521197846660211335288600643910528606396660627531484510866664849757853328942137720618872460050452286577311769790521555740396687580147889701432544832655482747384587357708281277847855724814389533146702614991945799176997505757838279557503185499310747831200517818066689041296170136457238997579791556546957303747413707905309324089136790132449731904415668659111086888119235213944718583102869543695146297617883381307475014404904568455702209931083621989366893618465946069320239376953745461614050789595425453336903849642157939003730390959589968645662609745262899180406164482366856532507155496275826535462923642277739451917297039085140713521230788217847391366466921588467210387599247011046797141820198771175924817633502570613582638421169871798553933863141822353309428708142965148099758266818595578718153544664967561290815692479709194908740003448092880002165910013788249347268602795702374318589456039559782780460302267232943640946809827890906361127729688838843831070501115969663001216340517404483773910672334338722907712042056936717903573817014623171254167754066843166144517384487592205915081644110482248670793802822104518385477870349142708909523020522457535023504697732748145144010649119067330483115002103732132306099362451046620690190065795141949992524045108264312654121213313293840913460789752001734701274847874515531035821178082533337113351227709060032215912250096947496926261792748332090462575681131933937829396202930171375159955307755024807789250665553129100556343625608379270966792983064321174288370564150822459887124435890755868267147510065321455086300838513927016781256479508026613752008954583203463721890836976101480902691090546281697128120172764355465030397892092096670710122823357629500987069941769454182473736254659350888828518491228207146784991224562042745319594194688473793754487708512224115194056989317188816607115011669266462335552310882081729134872394549317315585615366332167756800096057902213329386544868467401933959477669052689011148843422379232686104309018740691962833654328668448694223260551133945762878666701868123363011950558651192621121936578016976009641349724627657542899461054542167263115974190000575329529563629362903686119600386892903740135303815818061509246885923565725070430972909930316278713367327658791381586161477760947549941192042669193069928413942866183261414810760070208159305311429948296683373919343979888819482372967653975836842206537360593762063364888686976060287027652143779185433934637437312207185545043059659214001250687276391126758978873505453692562909252283608624905457189286833116435555280812370805746415860429571562738867625296168849321033937906261316324288980921247150237139570867318268981179396584311089003694487485273816533610411324110180503378303481116983775431373422528904326555130841099367579032989622140019915059202662177961178138836477671957852456511162884746624432629827748302395834618848674682627211416820638031292480762954963749150239442268757098695289838926371094744114037073048821538966423698219201588168554837316095359654351698238150744124382855084729910444989133188611628527544763775470068833104973191891211420504408572544524538848217587150008312384316732560352577597596321443609719079686049541022644020872891441890305677686846152317551043441723019594481188357820464495935472636146714492178683240985228404429191718952075849101283460087343488158923736955944778695360358079270140423085616283898931470956096121381542990448831654579457767868155286965880703481288492672627395637141496897984675834013121236528581517983054319214935062267918135877835184636991829968769773618759155698142176308455711418598485680488028317252090269713468031475650713139439078646176899000451772767560735505186969246826906120400235024369387454180542218850202835122612790799506041957591235157521986940038074037049229386703922505151083819318507219858860612305405450779774744557677781657609085303008652222270944293546583026449596866978872780411463242614873985265043640378380881165194780413652633886582094351001672511077119798146417476042020294983520991094407365657659044963566120059497441401375145138937232069589377901284380657107573850626441209941011246714787568625240400863550748876827385436448906995791225299169753169853445868313725160971122951346512717638525337980017628412371555962972169286911885384701811512062263882516842983162421556367857726593376910925268049000608546375877594558058702865258601098032882551330453136079722129809722819777198587589532338037742544039466903210527281304083023051008659854103860200727222342001070937146951463889831999863617988255948294003481946185569857834448514697051677990460518606044885597635813735731845259118137768545785792254810274880346506590242336673206941736530217552954430273662735101017067608290102288433282606410495561995539307834877057836389838468459210934863880346931152749111904484139377295992054278853372334814327305905728229142939316173886033483953508373648116665080569859976845184668151870748082314017230195242771758818542591260425899588880374904709863867201099465318379306309829210272221063719526110312012452970298453583580659218872376299826832424529176371555346812718472250183896172503514005247595311708326485506181322675187882785117370943454213426548599909285028108898773849965168600695275620564195211707249020614762397241183246028645300265367595244737043443061350326438167302674122048104167708217369783329851035322896192402074377982219861433565639425799567369637099636360098509706991131183945689363572856084555791095188016670919186383302321191758401293170912406508719450778168046938785058820444196458625251576402042188135325322213321586683147491021368067432845984530736489269751564646129551562488629991985970373624787241513413943808963193383041257098294753662355897125946778139869277842608640928656016701627139498715847386566469125553399604129111896548756208612576394979937341331037132623674522899235150283219599099998196536637051828684486312421775488517571199592914554596636235836684916057454765051851275763140356255398063588503487473698272821360454318192769810776297140482100826678758705488882151847115707514090998956063491530418075344480555098102392648566189579100768671743598429746356609554031278793349155686232642293419019631918729529621375247726647569442512070046408486674197357478457684104436939037369930334751466787110687811059109110806135703991249179212859595717742666893964491965971157608074826641101876530921760720094093864715416572798284832077343687542313550756241290746339345424434860648029189018336252049498190602319269459764022206298822652048522773522060947101768958044862052713525601350486627752658751875570129229877352347221457427134785789758680077584192362230250451741843575437862003596629746796193942047179185426711677951840482781346850124993208059830212036180247863487539847899495093121984242125020532124286416259893626988984205652262612189619842923007834140963426741575007450768697321796406702275852550988134771518947386456209650136479209483114358750048556592324736801857219109475892856031738308496118004205116974278568007394064141998762949363982738985270553969960539870701409650438049901603156425699312380838672148648105782619018733258950762935417020512097811889187387479130789894029666876076382422856783437882909378081217894455802955094432379135017966699581418940465457990169163338626937399093261077731445726902164530683806575136111396530904019597237414265321273233121151726146207488019000894074019366557790316073825788543791839021974507922229982322684258987329371398329260621736306779410605834301487990181615750021478181715326530448492912355649383226526342705964570477313538904515786285673491987028272882529327480244914597603968586340599090972262400361733743318012355341951445006370096681207829298469199569014443479659799666654786066229624336899264012135665022793950458976427800601748330599499219145993395073023165497548882929006753343482421503183869301723456173059773002011523576935323658505699438987218924017743513094248659284640592705192640387763099907659025481556013281864702630482236096446190086287615833167735277059496662648819136281289704013647106928208118193085335742879635903208323547337713127108864125368483076525144244444150618520359113196768617932840856727850347505023200470038520477871516444327507683505224942535237397449173672087374548141306645341645023131013473929774450391516600609130563565278671620556510338167355689662469999770451511673252669782612325381680662692654988702927631671212190312648173554245265371972263437488307384812833437352187358813189600857670246289458239286350604253395117527955060360791017586301904144005807022808340220582734128342298793884442105424848073271530789750222722686518710823819479435053247703743881047615409595155690708875839377455145326908431458021274216221918246676850675154539435075592434436967922817870033032802389220455309375395688691679469239256799998987636649803287292057230801071872234048884322764591033409516961290763016355848928766357709194657706250001107607838097954590526525515023472029434734473998376799421156895064591395021489800706938820536842280332568433162443944579726186987218475416918528347180356733391856244149103743296012722328705105815329289111570310534288903639182161202051805507144239694895066580479571780227029561344876831143528311558648766816734855530172224186731304269400803851891565816173254206101702215824777616365851590744377718835172271680036076876991592944225442141044335029064627322688718729856037635108203427205919155539723585833714827760193846951116823482923798406107976102382923274582602934620493704000754261244555268824652042255514781808493707583959144082915795449451259349451791635703052004927190662534242601822426101801687884240954750760357055220923556241700557127844294046140225203999724124486965233397371140429705691455583740660151978683964878173636375721285092538532189436977928181933129838234891644615248646319814750327323725695825279613672582735300359930600309468924719704870733294700826241367493076387740947610512227093080036296977202039924454323283402117184237380574175298523910803747012103243644203891972165801356914238483397737353770682044299426654963243055882018440402650013488938085836936853616023824793077952207411013340850286230199674267005241888493003712954653454096360527428086304315469253604488854143349334770927622313331096215662853671638497860580888108320615796367757415303334555750368739004131664847296806930192018923209891905518530773424216580680976964744010077933101733678727134704015542423716728333754609495426147732091814074912680295818419750144701501451697956904984605086320685169841016981907120707780197294097255548462147284717081374852505561962727970359854384786486529282027740719103836752430034244546516249498045400379372924165720801154638487006494946156864644836323704554556250645016155854273535839917545864514057166441034366214077811236309905369805146168929366755991749864736400036701543121926964752193505876076216658165451912007925620290161114836215263854474330078267678140791995553821437428645449107555008021398717459759066497689893636278247713208011332072079371485297788723870499907042631108709023436092761257435163390942254853646755773404448154430989372290933240388570701603966516670183518472778957819904540409482789065243016160104081007820024763931013596349454391194642514666117666516752808800472135571761274619074711781892043062116987566784511389752831409643865374974868726155008147084538373942197343944220552304375121171655772728677086217113754325393727714285237670174687496537500353337670132771158865826047324436253834669885739579922616011944481103530917888708479624377039208360531304047776927910385338789813046166774263176186447161935724798124624456554950103162354830868877768197479553332308015468719154367992925699187130830792503029244109473148513707058908375999161316995607887333118255940823738096361717769913314458014434737814298479250012778032205659765009860476930718666781305859765320419934269476516610372520713865328975182374349384252924698925616886194877200465445168531463442414822075759110580173160541631026466335482713985511321746942299978451131151695521978405952584125110319808217352705269937388152950753001503558583706259622359454654105400861960696086347095634792463088970956467327938704385100747027190932425233674835120206783235129831963459038290135682410835643968135086116012830037389699753042499500682659076902446084908131019071093477561519368662246780884179353770375494371127540204091926244719499346264658639440183638275260641486216145196667151924086656381124343890340594901236288110726904429262858989045891602598922415002913181195114804145378568148777877498180582681878978591708753192306532129613999857886585664888782088515064039899723632677002221651136346003567351679830335448212188439808098839229846529333240391682437086353002208275170072079785844601895475079078770969545198799648054165788657049740948268715697733338359797546928326923185629718955783594618605895796371219737438087348198372651468092602206685245133328931818194528452563627446188034061678283141607014086130706781045119842518043825032561901268835207550397826702085521180286776366743177807307736037193312135726893287084936937875418067131772773539943224160920829134337889583919653970946484596895630270332771569082815555026010784164268453185748177294660959526997673714882138615642821584196342485212645110224714069009386966209221298522612633453957490358874115299324170630006428492797846541844690271990051043621622727376175793331263807062650878250724943457924513240457000036906950959388079213526522642950345156712531040864195048521294574485222788915079051183138795873222930553514485238099948492935448627975762986806137813019608482408247593447249760509549799085231808664436128776405656109668663553064701033344712477626972833158020317192488053122879686262685063267708671985243898232005856517834163910479602575524255087187499964298333177280508941636762552947956699614598398272027240726166521351292528012603268887854099815484661832963916495945116251379572480859049231444671828299942609482653029406749908980012315796812651157076230729663126648285111565715221245566360906618309808706300426151757170438469052159772544249957412726875925712685176862408839086777724067981018602290453795047927860155559885059703223460203886484842623224481601129086799925096364421518832952496596736675559108869280216555989782930703409125520449462071547293657647087034739461007005008643098593805864145110604498646309754620636821593045593884954531221374021915784894812109157931671978214413551038846461297168462425742615347612042341439310817726672961941768477455660651029610101140179384196872246257368300762135487134961014688307527902505871026992277404668458232751339744514009066923409015083379901447050864457543690927082702691917685535156723981911288574247895928643065503796083187506394921384331019659047319883709807717962782684136751146160487184196242377900633634865106312230462258523854661310555766329699549863976759461568167621897120609214904584546471470752542170583642534647641117676620931467834639700542231276319085753395507936747503832729178051795104400933803072074128551619935491133518390915486712566100770530330187407121220450380251005142290766968377081369909722716650967399538822088965495752335960398989887868259375155715157070107054854347905514632837493260127322196103879201625957246158175395220233431279395956827122899540685652909696901353063296117103357073052958794837264809888174573007401187557475498095914812218294171664061139133244921648725458244592973922201711115444235202662626704151243055777800046177157050021309887636853577712552583153641838536770550789281311185468901747254599809046022523036368687572793443800010168433600292007621784991022072156178409325955777877293447174865061214388186774487121095811508360324239007439676153467547251237427535673345467194288712246146658967318047033546073341318970728731803916534233436894034739688110663203759487900917158633707863035444747829878611087514950155119925637825811810782438419202966317527373438349123617395664398366778100644737049345346616955131198521117923589671809185729543289254781514598285900841447063887618782001038824222589159790104830558325056148071013222582324602056381763364065283649557806636216363388871732693765425899312697474517255779700156601936180691756261862309611952977064063442798160349143383340333318587559310593020039521063527837519471263573166584945135056197794770166960041743420808678513647842596644350842277402989674398456891114060864536962881393423774300683305407005240226416066288459387240792033235969252953091504222516002381382795616333142795099551563175502831740598362562358999648075996967759697902572959553443486628173358324221910296234392895196487523228462141526893073528955691131312637819277797917243595552370802710052426486757822633743716999952634680535517136577967590425385680284820064066411811894636571583133932099809424678137410699811313393035667108836896211961273431812811104945627459427199015249523530574137657512448100795237239279511570181142373243641422281155801067561363492910465947773682856280122504695019377511079317628099145869714158956751307312658243040252228064203796152178946055685364051842132372359231336333860841217780241958476806047446536456971390562936589640916861471093637368156569371750437576337749076031416585513858581957777893961955778551724112208093641628532720253767628010039136058703675957269818313928503830535984673727977081848187886441745445894380315868912902112861097520122044816211409780492438028660619871968110505139996424259819137636142421478561612742794365493662911776772507766807736758438076454061725112825575209116629175486504908176628481370024463111913247452782230459333501639086888607996732419285296599569028633036412296575690140769574921627253445631120071599837437687316566735800501388372396107617992728809075812212706284855749736402502041265249333031473220136629579071320738382151582664457705499747274773796775620775812422426150069560536295952272295957152495293534844139092143150423683510514546025570119415132523904531424245326313438885008235134547276462693440064691919257255741440392911923529187731618218229784898033425636688167317449694240290540496448624966732095846178016820304636456098485738457234096022477701914055152353275584950316032768487890416609123803974520921951658390496935191723494446963638950066786495640098126652630769345244189392802868700408622918500002242884873398888408895340401671174134849694314205746045617123751095183416655959616575716552597540950014521902180425767896756913722864159087411263215962850281619379837599616244438165592476827895486164784853690879225523857630388384144317944353969340375752084437799622641987270675862482916544987086994794598908669592638323262271725616019040884304805486723125766042479199865834897015811247728796135121095643011410596067003257438403708426194683229872240898174827561105126392544288690624055608916105037386437282260828607499884682086773704187998606306553679275146578433269066538110215206958463531901448584224853557966706773011770948246543956621799238954568293419399219421584846853266684483569556891802467529511963576972933886034397897873202640929358173655577603624891749435511080631366482574421081532196248341481442402730105339354268764665401306787614787601215521462243593243227522233895920613077544801167289284330454616694655884740368044591252672385062577936254195693834710300471717136565825061975654663607676636003644050333508082635753261869450046525812050771539720790145663805354908769645523874992982587846686041767925425990631569353464450309044991779849540428714903717602667450394925284711661675529815166029881016648103794578723803008626641570387665273763456872335326993434714479377856095956535689700039830634068992448996022126942178796596687748510400092966033180836331269662921243355907293657800000618370351585033836933302222806206254113930209403846083582412786816948106691496679857210254943451066369118190742511709151322506618140507384763030908638645631213999912185206316043643308942422652419037623377887693656184860171267361074481026819898474737567902423781206344862783089542949274612022381407379580290506278906171812004519308930152730636160138775215268599973211681089308782208396609298807768342444489645600606302865261114548332398424142998667094425079328582711188889893992558834492906892068087693994085073421292783669137542633472131497529475308806810295244140991251825371315112248628468806116553868368250339461542386808848516784390319951012938416103850471884678073151042231172258402909941372458720776660859948721125486598919030275265317194438587497370682376258791389949464789063036637060282676569545578468339034498484111484119153350513047880302215547974499745323788250473584896873341126904069977235238772834696088267340612491374472055595900483616787776794431480625411564611866343345747962043068443376857123483751150070081286537268338294390938964426240955918706338089331260963939686766113358210582554662666833681129575871073322193070265477852694417553784845652872200867141991371440444260604107752368875090928920205020482017779138042088247513165862011073599137850068237822609863366473044569980485678539853761032437155806834259769380949351569693490594522670790592157952904466263395561357305223067017727020140823969419729575322033218544566882500072315228276557684478788976199126939362698599730830311253803200942584531382014571395039374213677771818598115402870779324673773122637143974751201435838044944312977580495850091751377871256098663486059847356290390213696057304915577468751736694534079131512723522601210710029640862671046203712543485828613358161514080506326059666797490894042936013014029150901655066955936268893188106312630193514326411314560512719550295844381437325468958645939311595240789202067419196615546422415874377790507916934734067374063832959715905743208709065337158006277251733201000823038398823359252356638270009567684375813111947022057724743938207001555456201348911745276246276452294109018060939550140081964021522162750651214716624446445054176426715955498845053888663654782868952409335334352748460233792468474209786170567632592584921482874193613619836854246420928456447817454604459685944004999005886968124832501804993861873024150885684982123799096752836754373627612159752358309997078278061718035835505741677362468671321542708634153872959889063056734008488886044359818958362577647029105636664373280862304303130248714465006942010886447050901905701894940750532935257844849350142078817750462616635742038692768424715962655534531326656136237697920096684535701551994711776510041753432590676924737437990123236523176592052290906454801567407608483173720000313719491338954862872183988013018294362684532330746599827275873842957114532899689080986386229236289614223092005482940285086620918619286747604589420723402667622830848329942015126306757718884538044837300235259481297028368439765292798316316098947338118236508563004738798536844053342079547835259252189465430016035816487708700866834981352914704501312743372490307322757409218881958595990982083479173140931527663116432469737061479828830593547015918190039858442864885247172571244450167710294510533732706365927590141903192680950333135493078939434764467946580614104228898119900309569953247926600511697462682543509231615733453694028622913262366017014378092421294955409327007700911609648943866447329772258662577127518478973594396727506094503756587343919552967365756355275854051140333878727030701778961769407181095032965422098335156018086332912007550484025415614501427734658653206053986646640543887070663870687947701312891010477667970687644077689594427739416838729162557752807362545306052580092216819242746943205880079243162806500925260457659494443121765530247428070384898937425581823490400564094735937609160522563748095913832831205697701798565207820119290773017468777971716232543127994243949372446968302382876146664503796364382862615886759861286536003033937795739429995930879528420845290650398694551888313355503726645502683458999739265133181456741775525803008703128370141000625645123189712391871736083256624057051995399565724509209557935175195927625760690306309083897967717003328190713195250339596401240990272524433157561710826832489543936552722672675627541273596417550629877973431524699472711092310633582095673119898653778701553892000180017710286871133207508202468598485320523299467506496121629925748554782224071413278299269432104180685012151060364276138785383529764412334705781165434634152106502454772038939324973701206171312024743465850881380752341534487530479723173902743296353034690148467176716364884869728377573158740394592003388899783704570043511703731099711031165021633941471306694773368738285381310517364468109785213922850675076753612908767764862001913749625500848268175833591069930363021201079085997443526401359082723170921952588159177666677646458049407344001829260484269388100327223342985977337849832300495415362512629072825632124417072435742873174142849209050660284782004885689154673460843189901717316482072412307231289859813471863668222647596484540357128027822607388006617692013018008586433387546267475236653598042260442126747483645499170817344958044396780718180242771658657702978044853725623131813809693557816645277988769305187467528543122578201352169256915901095832488475051671882143048057749328670808061714275977734464094712596009190544352330562239656502178266369854788367186970520176329885848764198537738964169077165629215337815853733237153003629931843287854866049344117521601999767505360371991651859524720170412781393158727968805907392206274588516160567757036813304422151845588777096744900088230923761518229359979014228262121022336962930410913011298020302002399125467828527477407717448956890829458155826665204614331006049793976385067042283790756437008647396752491371922681737152039423187374070347114421370854950963102010597251846527732628020828477137539735817887397286372734153983116558460259996983673480759556733757348885142494532578990331680840243687271290118497997086406403158403049512301140544815894254563231586847774259242972889463750897152388925206098264388281908077860309446743174313693599362770059532996909885349380848021383207427761466842424935903246751603580917852990803762801724639703594086289462294911676672974956268938556431987277594851769534383770857022020029381763725035747663080903717163012915249173687462077249767996543063780271299721735475009317362519542782439468098931205006288055931172746415777843367286906982938937631464646288231271687247368910469248719303491335085890785002531422608469493109961107584482141350580584195286355108301405374171501294160529273715362895423724011939778449273222241457872196692342801135371071840131208216866797720347427844364073443836458245162057105277825871493598174807582402668071277389084853937779997852290832397741280021726608878100025713065337450301417670960697064716105051519674146087955645689886984540247326941871116478302400863711443766512341820225861181693776175820080151892275893439321088736154326446263855644038113119387535831183926011905685909284286828942555317114453856479945120731483223536046182101731382103429936147774777888740366197718714908807486276546094915044953996482448701868716288182318383693600681324631002077656133150941762558084256655716011400130294158748694076056764897934923429682983667898058697581209333698106605326192832762060399299620707429209986405605811722856457741608332131131647947944607818915597238967170706195306035445309834142054768403661607137365873616976976356089850979365954814816818666949243223815903973176435021594094534952468587620323356877979523904635855360665796412396602576574176016273244525058429571830212269372521157403961545016096534383825804422957877549056366312159893452421480543370079058029796538152181030293979316987763936819344216281484979922267521279001074083963110881801440011938068442612599767917389688667127613948186263934095744275450557028448198711429754698870069387803028659718953667718410649403766588945100545292031460495004701377838670748063832936333365875857557365630919432121245236423068405757020451429532984475276310565684351507674866905394087882768501981769852055639557775972640977797287699801956334804325489017800197777049252681177012603707480180049048796589404552754054198648238247598020635502201013031493358778646810105494289090623267355433365901077215968047710231102709147962064515264464234775317941651550461303543248772707867105961510825017079028590909892366663782354323988221966433643497197745084311405907197409018929230547979004188520603698907625524860635116930858892406049379779837557030411959484683939078639837666188710575242594210843688006930955406494223844725354154853338251034935608388860172019389275313419668969174804062871682567284648103029690882077473196703853359124330797573624799086025146515013653376679006285650681934393322577291314224865239595217839764957943801400496764534506128278192731790027800590371480890348508151558196534042562408433199069553601101045635968154331564971541396540078358016240045121625452836491835620414187826205624978309801288048652072407821570587602782707341825439710722080111604671893708010797601877657639810937001519630826454165394694086472465295397489541186752365823313528448682734870618899956482280310712814121531842472771485233233994383782527770351785626481803514496459820294004086772026961883930624064877755481846615876224767911783919450383467812094375883917989779922245879886910815942321526343343788238393065133026446868833648246237301925718856824370157618493895297056802690591233288188372898632141141436378789198418718035425645008371725130382124430296071386409058520365824322859073581003324744119459673907924522487957585303867124852549037637570420233446523812119260810795449154457281539502913374344708637066158355576899696759806102411079311480528417923858935760049607598340712108310993541859009418857418614132837325866180620581267731823538721559622102126936498531852717538547151603158535613846472266568380646388413435172808436053558139572812580637852017276815935246131775218283816627495395783753570797091775044161162759001748933877101451123813720214686295490774516960968684757228772117386005184879181738222264703885231570323718882248932361906798135132227590472168605204472358669265652236632911456735217039267613638410904901860840696712072952875773573085453671386232873187095422064355235564633774849893028410915721367280822677339453780457339494311288514046462121570891158656933769462202975523083871356193708319952537854884921752639629512290384457268301136689319093959052125606734451490667032950502945745059383367187876237284075785697038600794997289732071646075427608566367169564462662138927835131450001688441809414961342575047579421265207829034467346985506568522269047664348040453096497617179790306052492876768236173300299666755835306368484308858414450953268347465219253690503122755607341001275137505074165259797686544910852653197900280040209398586520797372737958545262317579497563523148530805236158729692086731945712318416006102636306078563015327380415808980886008035147429044981874867673995821044744710955761965642529446193074470189135562518937502596084653223672079430107229735096471230591189593922388928334202030255794392841506587038375004130676242345824171150823509530128953006479073558904062121314037979448952672921224458442286218104371895652851934557439555367802150120891281581107843702215663608274527842144811588136390340079612554316130638971827669114475954497765338607640532336765215231103643619195408296312993575644387980478390533607569333751426315680576168973040388245787329125162791119173683499932448371798477051074764722473229064664363393140109124159966543900544220333207205208947942658480956343357632530398326551800283416865407003885168749390371512777420730235293986387254982121725669871228857147072428954178336083310628748061595019928983059417916686899395223231217621440306680183294662181418089170994997997519239379983347930967486462574046983329621855226367236337102001314849928848500397628921116671176164946899088846585340256016665807118927330740011168613908756484918694700440294849782731323497824118988906051612747956779151391087346056719671448979934915088573129557807051584641414495612971035021680135323759334646238430545048885231263205818102124509817812694207750853648846828735659331777361071326135845936265523885277029758557459037734360514208304979299186663785824563843594192372164696258854712392665065853761099339590455242098325993727794897077144595428698032900228134018393946681462621955498427486157708588068955130822797696289262739470743372674577509679996658194549724908860157703464691576736538263373805940546879963489344759828640472748461230825679704482419622039919536502891719296036079846213835605698130121391894094779002051794839430143714781344180244331908402563170274479010636855329764677242490503674669082073244239015280121513663385580033579687070231571157598986399165856394048489263274358095187492367817779699242362623251065759338454359091224421841540423230049002468908840087407233572540989403188922412477821244155524798616383005443972341719993236849736429374455026519498871287735063690549397820329547079047449300958328834058983487795770760174175518976699124532715478282803003591079795495758546960109620435500260237784985903871911744818573763370362868828956575385164851523528661795902120704862441905656411097925068356860728654340928143385313851919118997808258163220971676461345315165332312693688015814767408756627424717662106846866232407069463845112325845463647661719148643672988946603489521491232404469130067352764354948707833942451885442982593537441463869513222725975278568817966957773223240298728844400495969681017046708732707086166594567248564451885585815687039570301930154191865460569813833372284312452307513638721474755255819876947478361820275264832060746694446654951304845860173099693254249426548294732956248042767098559114030625583691782434759564140171494950947803132076330903332412807533572551154846316280549612413002998626460062478775245271154884869725645412975076285385145857543580857234652244982103961657967585205061107032865464258684981272870118193980110593226198430550116635568087694226796742556496212472539813174671398408361634615146630606265639567121494336430089322158597905034428204261376123977629077509885398150257595113588982408814723302006331909951977577162053924809674013617380755474577208262351677904294567366756901997817942803417650421519069809841872739524651898321691125701293974477480077674243494710575891306197732453800070415407833472865057897002369787980827228155026795415334535291910785811895290492528902423753103286854755028446619409824318951306279491292034057846318563227185605894459421778457972084264916759754955228840905045747087154328752969131011395675463312573594391658805642267089410219366312420858250544633270659161063732064725618432130719813802752422535648042323668087908500599573060300228969372159296339239280190656563064055467275215712048178544790222975905349541385176171074343595751780079611196166077883448350136479570122167547113799460218990749182893799733116635757782900812166123707608136127200521980920041993360820111373506782114241517475676298307421709115031779842376756028680224998386153349025932904153170621356816478432793829510329653599772528814008657990386202332833990438347201527243156689897198513555225579597894741855464066679519254405250440177983124147624416051318417661563319949319730988148225091312385336400086143438578339945926671428052145900066497325799304926083059878975903847306484309849302249070549876289322131735466776546844036620508862321564590456041674787454416475066741115331573916072132736747830153889558056478937348606128999669019391569408717208702799140003011073745121695983071615405899977070795576686745271449096277147186946832864495440485414463862332080439483981177183873839188725867311931086303515506803870995935909801951186100692644482602503764346320296635594222844861969216264090086816897221187554049688875528544610382122831834265514984615330732165673656650607730340041568730944047368717174736900287550866511716662767024466370370869456616798426474498902436471157952006114167676403175085856708311897520302307065461542295513635959467185372747402100623118731035370531506884069565548522099850411015562083027462157863066213445655767412932233392462238629290101613019672063143176479406749751026390246163137016182134914386706442585213159191907300300557186961518099988740220841185033616613698557462088845177874665939449489775411580284202058607417195539780243297742760258505104141397572502823475376617825805665933839511714085689259970776441060822423551761461895202184818552973266423904302436917879638849306506053466465187985298120109892409692390973858946580748776211437319753092341247732236960648383836140544903545701543869730830691361284824080879578019440256638841764332448452370656481309562847132832168312002533709626310693350356927419906306181518814724799116895736874761072400243646607544532854697164097694951773299505967735010790112063878355498870412242568844008634929149380095008491705907739214413727273648027647017602627570467819286463672673463429362730034222507508856766730713999433052618185698212426964113103813286367261745503131830243759264985333760341109363450407114548319753534694150900743859560572248989721475307501188366544189307644545909630616162037216354593375779403095487691108645299183894185820845517751709747696100523213747654960553890074034627790832099857979342434704122600840506294678889066649383535704639876268163355338662387256379538420915987063060005630165596270703470345910900686630815394855520996032665534194008728896905115004612544070442365912545013054039906096120491832377773673711596098119748468621699751702082967603023361644170355904478766198080563646454728255598966221668916783011095890634604455786248567301471134209441195315318224505928949521729439095878452910268424360007669790599372857837999369085486946987327786907762841953048545765049895407573948512522257678804094157919169211217107107970974578718708318958399595680105041376884198708624831785721531165646839140395001360196249331210673936167488811821625978530673375714120625011918081950079363569829466389079542743750461039762932067637966090589783597710875797866852052325346864661402043222637127957530538562298831817066010353143699502758368874149688149148813083212485949723330003983939573367828122624192552918823793093723710217606832004748790637547383395140462454434821168315197917671380209942212564817528455171896267517596154808750338707948059365578944485596974111144891697363164422624412381143065854132170317550830615997798232162104564149987822653167140366228824492031645873785509798982013491427563198866616956355332981714734436110044977309017322140299256450543689268254192148767281248516666820263510138365703635464674466936326036520946357551104258714177595204058482553502306683806870529751197074147186337230893044242207845224608461454681317753874028695519807961691843566228392561262735735958947802735723521753204699881269702913368470517632608394266167436280892021862036764063922547824645604313813610081464861621024654645178813564512129603472442818248658879122149859678527482072597695984173042338909447820402894134563950629618185036909164505041416858578488749395563581525422443769181682328925160482249757215203432475917048517355499285954350762937996041058243634615494264072636190869306365847086451622296582694434733014101353195542248418592397984624656326167962221613935927947898295313138824698808992661587842690695328504165864947298171016838855079876975047634711307350869070545424068191420372675309517596027088723212028409430943290624224181343968795900645438327217156070336142973154179497323728716001801834627492760537334572610489878610761843893361517281778631082097150949833172852226840270801411955290980150682053269477881303582841371657982281740290170667886398776181358788416196538865085460942714931007403951259391405100778008697226240148362067157336251232217944410356468465445530060484359015811454586338600847299536113484905657198228514430966099381906226704612233865670705587632347535327381718641601320090914329072502301504818221438308536443895860770624394287462043715093241447219181842753998629619089445906056694432309337999841643407428484026042546626293606584989427156495130697294828191867414923140506482711338043765039805212385737587664023661836050677977722558388991719472188231319019397398166699647217545014074669479275732359566664629991859835916563779506280740240435070160194263467759789176256302296408528622138291979664251334090457220197007917186400805520055001250212756135755826326086256826092513004112223613945809944667603174009421050479623184680356610171697070577018412406174079270650126078317473820293397730432499376315149000587133702669162016755710891870214560409263535824980626142489196677829799554428381418304557446334558480540898893569493012318864084456699274002812451765550112098944498557991786553891519573722972416962882268273609431342736104104624111503950038220317421144672154884787247247826970691784057980220845013433908799968243447174050518940376419183814417418718245175192103419526723954941826182256134303752341108327046248537676526694306357471998536272916300776843698229186957164968404204900337454664200700189013628551971958913556162577084980368965620914952335148824942685035360227486792928710612345096621484000767311460032270432476218101644389085238598423249043791455659287936411311043075794699740364762439770951755192718163830650291033335757140310432422358089437642486991460927168213101109180144183687899967908569038084333570495318175090570901375508573060723852310533433629168702741456164854044056215176977997534360027236728805590233748110430123658987021942918834088971713059441260595123193552736163081895066011543646803721114433488964802323635995336713820084365117501906171261583528282719818976482873482147199818465882330508943268103836931270876035941666396942578975971325569351778580578090482308878215865182323453609131371110867282471508690046431004962688991434325039563496445082348890390876917228737894159626958690623324980728788827823733935360363712316996347692961467963295730838940988707538328505288736835383636734189238430522163662681978951503923562838158612990532224857981276551345405821984180042341097004693945853752922237690095250761997971075918686889759713918345876750954402555632837546903778110078447637928068098116910039716560845430491375290204732969825309491408053971604924285151610861345287479726840123866988421439068008755654294622519525448728906699763875005583988425213798035390383656838672401531369438159841441142731980955792654990850989589902609729590860849587576308083471594373156164165341311662869323664311564077099800745140327143793563383213824196866102929916955530741864663376299159948839554033105579909581878866403768762457109275731411034820866365574174936057112068066380582026772028000158782519759842172314398015233603705425812263982836768119217009968513578474217829639737987828789291722503117338803617451730827010022677226098715268814342604048797910881376353558254360085167391748797106501202947204569741508128018950620882385484502623218996040789160572740697512462364233478836038954309564521779442773957550274359606705942125806319479830609902194820539411188129319483068809924191531790736750565595411400526298098280443711830143717950094413727488488574122712911099929235240664496843331324845852239218499284629788838386235786517925956988073659140512972399144262058281517917599562725129706180565342900106327511774689438649711466118245090088434498312299451557276759333928011312878171723767028863215829637164792011491434308115820853842949442868049571128745546107410228758922043036555669980303648331244987364687877969210277877428638234243865750884213303791009173879373673901656069145952245930632347860857151074247708211896736886871862803667682370538367566666566196556728131160775887601344583375505616510039788131909625898684724062745056752733586225167704684429755209366619790834290797718245365392899006808282491520029068867268358193037214051261083594020793681440328046763681781711776574249119954038258945592686349648255204085875853610587393828526258202748615378329824647659354119974659379693703479246348426167746862856578781097804430087542024126047024053946032675705714672438551720642779787448963387416058510455066788809752889567283099602292309975567393202439791986098106638872271885228729806208361929297321125782418412028940329769216197500524658761942266851841433613947106726974056188227858656689243772797948696673576039435582299700332116175120791546544946313411410927934959599928556352831975772389321577458102098932474675519091165698680139925126007727832141326135278732037164530772379965825621930062523786305207841828046951811979103495430827665907067645651178512171765764706404931616818975325549547986204084759540530823822081492546191570546871212493273389634151849756442850673899542544516553896545693498898805931757072958315977714717345197929377878274906443169743858818492127768348312660315695685936367848655182674949955664510676313426461469912524887934101533827716617961528932830815132158901000961747249637388107244668086880320742984272436879044378827092118075132719833961736541124622208639796219163341490060935474375070333067801946904283333609385637631339376426176381045755288140661572344524169657708848865041487712863981854577172123108934235081703650525506532147001648227130244652806531093889542693046260129273585113675545104378828912402212756830515930537103011037517150891129147461156246791997949414812285411672064949218069796992537886372781563308000028425306229386174974261850680961509513356778114911307248520931484872136037276783575543200782694998098522756765700314869591664125268153875704458426114507915163218558550980757272527107546110959112657781611552809634394889219986445340177475723298999353215887394004844458997113081564904313005771349595223019516828711989446589293275250287618622726679193451584578461708042094150114141073572755988173921651246473796996875933513882007464231105854035451752470220077012177906937368033926715725668240014416852170506781545889501832372566348003131037340705094140497225192224284266887145505734858597838060973694512398411553601928631365923764273262122593103129059572865552323512555591523580861250068032839573646060914994885453637053737135241412956686335547570169659706169241609426462271935557943321684001749699911414250940178725296402332101702215259531107119829302994103470083480614304945169990878127700065919215928218397460988662482832177506036359260710248800356993594462111917208173401145275576293483054750712118952405275705812598717756147898260615751772140243125686797276350887856943130895615201942070176928723161892305008788722706664896358199215442354665453148381568125631666425130414154376684218677616806732170078923128728321492033390375394648517723144047172508224097461124590222173576568018756015089864714875810427710184831480228377711725197854029383625389734997467107174558078409295097695576795394596371925828170909905678768120447445729905882331423244953382922988359833459691296073334481005459806295742412229208284302895525398480974833542404236464070710055165184770492216861350355148329815238609040088287120013875054026786992643963707120234576461561843636453232093898267469211274489512442093919848340864561394617605321097529090298765120371488468241108389981932233640220417594942656034409620511515341326688846542622532274769374709522434021728656176923312578481864620732824321155290560910131398165827408665883617636487682371621720511323434010480748383075329670664420005963964971774551901462890269803131403661621125599325986545183903703188658053086548088557118216398513420498139551063680741041000632271515216232878375445630940116823669018509282898509548787062625714623106054328617094226855646847755857174884557694266622026229046943458452799829030090945931633191990197253982387237327241236459712002571800829027752091807865264024049861393788393929785568295034644088488766622164429442158500238115082324946923309974375382526819314675116831509632919626113273238411018165359011627924315446040079172837105973074263916902163007102579579564031280640147341046867305865243205701941036964851632641601057591047559697192519456759130057112321099482934869923986387165036046736774111361795968826928580637508961882852716000419572944385637668937467759535574353574303919713829008811114484289982836684822493649672939200907143284232117122729847386894265745729426497002740039740978203722713113721100347476916537926818106767719353058577775480090813428127783299007924941791655677096896453449755363303501905691599979569762615131805601489732096584688802796961271819346363900067929031556959617647676495594176915737287945473491517110815868976889920543159244857313239183484222621367554145450061211294172218054061259733456961088609322990471658031977050111997796383925119775875450767176881176196707355284724733087897262490302864105955955641246687174857455637613884198445142535135357009262844993558031652200713173834430859351751589677054297329763850502655032057267002798357614237414903423831742829444284191992974208942567101295355547564263118822855637461862791260922168927491707169398656992323029596407140673937585165392668956164397385215291509823329225442219277099142717508982334909114824086219386027169004050588389722106186202991988912179654429266701601915952016722967487735130664850437268658076051628865637365342707119185617924553934351502208586346223279771436660273772306894171735733508200706595612316877071747597339196804090590799259359642288000234107837113120685225832331436485273042455947248471606215467832986529801896280037268464990698426430648967726476151628160967788861656309561505305298048227390171422002558889060540285125618395156614538553497377400015698183286487506081027698584813740842373224597048369308160333773170635952169886892393771666416840505948645194862245061678294607646070303163327322770112612990083055791206767651091856201868878577918959735890250252913923490300680324383490450374412576001575362319685208601421174541828768608374308462046059162185897208028780943699525663692368799430452044318699177461635983445064119809398349616349131847659342070222794157379815036479506681999659079688211123999459113972175127089427408447185237980506804162130828538081109113311947864271176841079038819198110101398144069280573613539898743274695376398726584713773660200887482049128796084635598475815364511539947369066588979199758612386485090419218497209932229486813950797646139912346995049043223685529696608107353326977164337936534954736960471686539228368773556143452940155321821799901119967222209372603866535367813612325871645658850651293941039660385436921014480189331092940176175469974849357556420808620864698114119376022366701953325590480845189161453597614301625682281922799857945950564042551190192613761018151103253914293394848981743673954375183440448833183223946625531166625108983426264701637779373485158569187903116327460854685989449524577213687382657794162833719268532804083526748560686780752198704142898270491099152527291050011445478810064284828555808063554757044805589515040153098638574093323243959298617767213900469508782276204058357233701228504956613739577539913214499531599538619530226567120034299023989721278834255589610072070561650380408448096200554512769731695083525523061037302287406033133080980082335361508193960110045958100177864745027242461499558461906401292709711168322209470514632129821603763649500076746739337373759077248759385992630444355442562308228097479676018772399445823392681154945445808642014418558118264818883799375403814779253730862844931534936298764276870308467784222935887900009152399848862579957810650999435001895172782227581118143759693083969803017249424979722365013397006048398713250371302882435419705363883336462679245241808044769481770895198863937469183691677449568707626699810285713618963677646974815872916599913916176489252716209988357211348938097860754667068753429646385000932095865298045456072463899678582593777583734473478361019980244668982117368100283565681934956136234243329169743419017587680406630012517484206014114925166952539649763667342458500818130615717913602381141048706855043862026424440778332356355794179535307758897966089134304461435942715217276784136477928516955801863509657415892811786088614949329474564525267954265519323392615038782686798300959098476029477598650681767351635670846211107463919057466859412926512129381694822736510153411172535217783628610033185390356507448680907782888085501758908737158708692697051554877736302641078767379957293360505519286209963289406966417494116644162164564798095306830831201314014314053467816244369653230432404650722429198396163232981183597124506176578636261240347393270761619501907026922401784344527718150300763906376243217186160015999161086347338158649150667689974910675461563406733106995177577884478122974972780590177058589551792740893238907651681673661665923866555792637390275132163782306509786751080434285233048390740438028116937935192648904337211410327966560097520079384284557433779256545317086766758827367950491902957846919154762602381361906766282866858988848901655647463104800327165155368093805877245915484476459325670321924452393624288189570127535286005629255860029206590740255561520337023205690829001813425257282945408859080093970898083499928923999408995228605839584080420350890032066755662193208501748485402800366693068908272871781841220800918668062557765217910820203992155394869488638652024263757171233673579522896991389821360973509691651728993039325698770067625439562264372586449376965467437081068140530415651948439289055727142579354884192622554812569046519654425252896324897403491226110586494651351023420393901738802671938889745979600528242342024610583274123550416891878882288160295107226251570510281611600675161470704951831793338630611203281905474350297171570330874792856255842026978430013215278781729855012014851942109440222571334668667173805414653860661699908846684350269094066524212548392439834944076004039638363107918055708825689817552555560430310764137752790647166799813150191601504490471358397699708200015085673914886856712620287654324474217813108011257473625193894674724192464185724670408418094977471795863476559813523672591547157956578595133597706855308000741953119149443917234370213441562022697147270708627805218642905421854649289466843240572837885680913626777561362603736370402435450726924347743393209357813571368549461513611038993452808362454826448918456220718088014911308230763765306950834189383439463913092548766511465153287248337879444551372617849825453565287911429505363814742102607971606660824585706173159047189179272142985684940461362492547777966124443568047936259564208227203962353026594991842860630024717100723289920898848144182976666986935241762526406686299048209968928741012218387244539672465467541484934036999294369524699380517279361796060172217664870553770657815764891095955212913452966690439608970860084046328674817931257387037258432828490512893007472592380171885210433612139994265290063754924126615468161342879561009562664843055292350356800560973940667792293368455461170086492283569915497813184107083761821519366460518641306003205743305385450630331918422493070373336641704586569478328439470329011886892225821446654125026791429605031982749023849611592270899572345643282665912981707185936353223546120167802445687485838564201321690069650658139530791490729560719287113444034320701244625774446037915923604569583342327975808582443769310359057010895261080299282125295527875472496627257156091658128748819790981618241549300341764453083064329965807547951928918695624663648525740467425986565439500041422875220398699421299566204705645211867327870838549089665859095117302525182451593924079251917635481267544731481565746145839340814938424410666011033624073493219005923293347106349312354543588619516364264737116096991944514684498689979187698283086611373089280818552821998816634068723311251337355383890805620071499844100124319432092299181480365438123380576553497406061829731990432853214257879337645123819305603095702178459798050700275253914220109711208654369262107739353151346618344288664073889003086779944053483771378470815743055864614670791759876813662085623323578070803579919996637805027754429214059177761341974162371701869862542107349483125925393677982384722382800605247874404578752032063655387421992796323170667649169862140044125014534933236063877966098827760542601482035672906722996844562575922035976863814949121730191372440606033093635997536150140139637853138642879725407403984413998683270673698783740657851433524348836152848373842646943947404084771714047587187115130095266964301060484290502161972868402645389912941614215836970608676496361856937378302266461732852210468856358366327574390691461976678430757376853318739971958147543869937487661597741183798051571298024264434587745823054661533156685923253706818856649595560505732033557452269921333829071460319148997727623664317523917948462360439022574755663349535736956509155582455192084101522903079955493316898962403994851256785002786322558433544125681323643084824504564360324329151576497530480028689502418432674316887057157157650000956453600818278876472553225590004436913895821795485301143362530788106902270577416005581156534602217437564831787415880063731474783678035764833035597077766599369993371507474469794888660897863062675332269187002285914109934859832672366541825194988478569370086564566476619135682294300356465004456820671692876270700923657387863982677064843533129600724558520015642495792108601753448812284361301889703820623008311405478296147840013949499537834958807696798708316644261743317179174476854767590660366447378557140387146744385275746711144223536704722689375256798455790315179447752457857205779700569565338353466548243906860151943955034877800105521228748495712554842982272633810030039476520562127192443536847227968917818441398193516356671193502040176880676155831466724589022900084987926540854050724987308907677220388232940684192107721508197195713482265109350079158483165103898855850605149809910061867267553488610114679048681178079386453019086179148431664931620541830254246282952608369312703944063797893843983667970701669668864351028534254362022936174353528270202707085976729307509570852123739368743194407933219012676952620389128486738286171304234006568707117358920390297760167624053961054332489913554405185403928831929646425142813091175078657529484344144761696013176912705750398228206226618827541673147122741637437530120520331332135427091918873217291068010489170672020359001417941174277450502440219606616198997747627327555940797183459956995754307152005594817721086312695479990483058899571679032907070338688532503737597654149795598549031700903405312991083298064195250253540327847516002129685054579355634809052464021470244009482473558800365825415682501567211529968105172431137032233610982894841075847231490133081981004790716795598727321324210484265643268920403242528112349890869829395811464698164222642611691688411831586123966266018828444604577411797907993531803116326514358438312768689422345825114596612166860232219692600674245697576195267856447776412819165674017088733814721797558112938092325355430559207169217859307461591700944076720849158512274823238571507496053884507683082213060784356115985546467469332607190666743173211954668123762868924282111900832975869809399428841197245594597330652311952194954705227588053588763248017227341008315339448527155408923323860982157969391149721778768555523148264075902304055513308391842604649571705776345015103783692865143391294710482387204335758876603188024400204730742799637260124458546263622779536602283869753417186293140146596619644197944091306141541493908474346806984320184465558273504442437655749742872338573464787371720561985480264454095291570363720126340918122181555476551924794396470326857650862994059664475752324777478996494915413615473187434151167683024333725119502773627828872782832156196396587247257208740067572788837917846028168059162345394619921562031202021080383187566863297717177394121549338440072128089493630370553104761488670267385879108585803195525685786814768194540648728208983941383657616017998296651512349674617848079462725846884162047389295080605974049993485692373613979267559342691693345096661967505113660513492880626317051296417833225141315209900208752689321717982628590833052479675087511305179788122146387664774728476826237289195497744895755602968190794322633166086111383414860198366787271788639972881131377649780037356712181044572532553601506152905311737589162934943031936470728632257239811826506069783722346591515514111448461313643548331335672138116272032492222680905648296661856867331218397351029892840161672335891312589076722765375662544305807486026466617419565426803441115133137183565709507226002811277405956408433779116402967758358956342135001437070220264964331073895692319545580318428940261635611752405133206548739065828992894625564086649700890534438303598747708114001051395554585662958391803810984701998845941502732011000562483997624712964413059050842808335195478516207775166078069243850130825918460041263082497665440543256904076143776419762034462679099933610058035175462144665003817202691585785535868642661235708488797659664541365044530372840063900114149004366566770032370434667363467148817549967626605483928191704897515434656241308264058498193653033746958762409544757308891879142872914193807849532862802050319201437588280300693213058163295093417226646870269451900136981513630933373784088870805635021733557144641741954336770102857105808734777391238308786359348562390482908311754506547521199580482391688049251226610970499704577598523847720907007309459542066934234137475138591904110193071223322429124115052723367351728343246556919398667338551132088229247947341548429379749130928090974651284526682804291645116011231585658569954575808748976859794763313324143658311505029617415932045527439394720290418496505521076873284800196691814443617036676320694759076955700301491603844546320934540593013332391943201679626331595114461817852137638187728015188088529470728427344417106381625244632311601002837726551752962105229003897472763895497785323017059700352534720009652592220862079448912922247827082264858015047131623622305435412417732128306384801963900787416754469026659391636331490682150948638113643222205845750648097511884906944945753357998912242092840071433158284829141604071721205812754329438044083792913607666031767525086705770838836136268747817284508330650390972935177661310921691118532097143686815013224621140032354031163353480572729530017401501316373505417695345063147735175784971078208420668895619895101390484110809729081098836867580227530226018945940233007100490734647189219233444246890373424030796224790376345899259555525145040699704166203250459681697222592823306432283779415344279272252540283677966677322359640977489980799142199739265761630453876461673363731697565900861739412788845491602330754135179423175481449673002140782093258393492021313064645786950344025335218289131164044531514832488798642139690238696740680913131180239432689065301889176369018730749342574111291805829455939720589995228720604507621531811447336737627700656234889429673979169816563392474863860815173932434384366544646445113532331229444704872698111556697836304127322370304753588827133571202129571053915222282096481137737661582255852263399233436321302070955990773662271652007564526084689981738393648091257017725150058435124645240145198711935516921383089431890978494617588735015966846705556444482670071994037820111313737361829273880101059155190338413627163904029281149835423598175080323863919471160546404145403566807420286385409421091119542966140302248453420369393525770776957883604913749935663225518046781287223488998993450303178445544359838284825039754204747882939801042337437341744939817763398876815833444059785372546289186408589515496723902948404636714062889758322897525100519452169051955966479825734546402604903985680141468204961337997970599187936705608783831306331247724183651385449699541058545194365960707268900866441538609078427443959602678276894878656336753649523853550388970000713872867292419993335614949274203557547038694274280894744874970777706389188980081730257534200118814590550578641593812578903538555298161341558516785158129903043774714207426543660951658627638736309857852680427150851381869890375016790505317192139157993274538579031735328801569025113463582774971669145406994622170712599833768285566074455338029505782159390832610531455976775158373143405773831055050641201587887222920668920264202531158426930729123957442713272136578463905519300883783234144497516158499703691853682070528553190700404404692799123610560382962905164696844077822955646890704555287400451941556485058364277543616484227606969170683475557764949099112875235090133047861264924492377719786153556102720589021846735697905592347329019238955525162343017114537071229594570245051528767672112055737573785199582277045971247162652530564230345457498025416145977891333975904614580598692769673588858507928180171388511559203640910416142564839463204046782900960429539117070012058453032925394330443531082921860525148465784523438475406233223516961671562045515141090793801617211731126052666253884951868123025170625523643964763209846968827582204418568077962642269286355583521443544233765412777457322992964665452499034039779956143686608896102843627617107718936334125024558699571480145106111949335248820721373901516577269666422003641746922642433013334571303127670087505427083268664023603409481551061674638267927977496414252543428208371215058882040032020491260122227708597047322905393428075491441967463397274132836541468961594858910111420260883797976001110876387720864780210644039515188828362446156528511603099798971914931124849047254938660682197207845384319966909541358215864193989822073593468540470275576576208290786054800793546641110359754262731539622024960621865428617067104527522267126929084756890865839621487675532384131883203059419055931992733182073554905369771546526130939444874035001099174361245089631979774709222069015705878936468732704445750812250898590624646380245362215389638983635644622131327946829847213160828873403970694722009842967326866064937204343569500445182019827440162522918052818020112609708580966401742652041586713249344525261419627945937228776326301626159714474896988618059400287158734353416969054327751921892183034637999791386410950685458303001190756135584254930262357136965367287577750439571753265889387451212114650870100665416522369742494390560317775021738493186017242126438817079597728536456685064937676881349783877669581898956600691607392797168422772205574471591379425550998413976362298467747600359965396659863368479845676890128483651934382915300962905353862125402704313418199052516525862012067895357095550116113937262897567871437865458754751970883501049167417810448133188045957813362599951371645714611383632841158489785165205347643808907962407419509291474966409638915045768577318460343819656101774649612613271553210528102183440666844545769552742315991892872554258953943353263561764571695156838055419425955714776496694031828713645737607020217920735269274884315335168585984888476849742807654047718066899134209859837317268956574855307937226631932982195506840899524649846901899461705259874688420721101878593298648170866161701945292655506212098959148002976934821813189319050918198121545068994003940483515859412967190692496154269452617122678646327980037943084511977438759671400196434073568574374122846049998821544902114113393177726402234911425146158620300720157166839927166677571782791962788681093767765430081544695693557756772659079257281260768416948809823322126509622469300349184207338329147408051947967950992075942554602129538017936628441949279480044666382741286930009254235441142708282712673737370147308103289750100249088146053829472873886386197278598089112953606023680546931942199156823316586944487135089861592450839696141383699144968403784106009324980031002858070488239103391780491810209689216727065854931864087977390372363506800138613029453021410512674809068510792128506064346074512497315199371458652361115142887905948856913638591813864155937613875075653384875543867261347697959277477961471069788544030484900329162156143416033664959643162756529502013128179697152733720068151822222562299894729089864033857266749781040295582145097802218106474727667539829829629119204923821245568037800419931836868533060960694487336182589280949625071965710450831182693112198779749291752487157487932514040884582668449253240800272036285920886769543226356637191418564014951217044993846331599057626766725161771654049115857636117370020378007773324727800346677187178239086556881332773896429298467607718270934191975392947082806154936129352424481587205676592384820356439896724257414291012173589783412607929845805448546145182379237746702746382681129707132468572229987232700278055416046967648189039413541175529910388821485549789019836734349103920230424148716626655447152160925228987467590025294133594959348191744147641343043429852751539158614195177951646769907229270793416519709530165944651540627668261828284664790281033279294582701290159692398805597122843569544845506029475732439663993669894758207785477974498439636902727640839091032834680715122553604406137016392396910160977895130403070641409752831885722642885362699543584354616984199954337305915484792059794903456038242477602422211727917313856269596134677347027979386894142655601531172329200790221697993554854366363651571926697965890654491536742221225539356615205223752060468229857722961131118670113211549701910065137844594635254895202364865653327320498327727956929228957451374200427766220413473907435627256725921674037702390398983647281573772913028585045105072390304836648087160757696148816347995281897153420925956627852172160910315519507217196085530244324978838717576867922776648116176615509095301960919937186089616678952466728015658727927011438504733651686399311973111752909439686808176243571649701836403356628334478554317148812577093386613170155683257987184113784478035377203600983371040979400672726148271201214733270560971062223352432288783679453806146590470970879737597206756294088805732666967192417277110763307642323201238127487326284339659860437135280874100034920025127524171102100635132308419598184507199665475343100444217720761993320595499652786711290631935024325770420689846007990781116216550633245568781168826259437918433954738309022172500091529045173877418003677799064029847715003152772035260259972441668216064243963460865261400292121558208862402857796927245795803826950451757710255890953306969665337849976292740763000594017549435066183784047700432610416073566766523248507222448915413188966498153026304578969523538038076688977214544305840392317155755768237379472761995169573395679770727878716990519307484212563453026489825986799596768450958130108338822296679049191514408583367723986025489534333492137318340143844945198552146924592359411609903719755570698291659577264700119382293689314143038476943223168033360619642421944488551090967732154342994731949187236854493138866611255407015603463750403964794164633938421299662238706634464046726301267517922852332852784571706047610318554030926897743945543042112915589551992669193438406896188975167668024391156202716753690472600909995101844288565323985473130889854377048210039974397295863000571510996773399237349027521901260380923411528016926069258960455116181995020790819894991668116122861728397680726518140230468378316005486956710291654559164802539449689517972467676103858486164609474342321764809135665340451840737362938963916138354248670807726120102349994898992854402438717815835015916808853749476065791030853542751045377931947352081722066641735187952308780234080768058052719431070079967141535431264452071136850217600462970197922395540126688182767453098533775517991696105957662163543616295687758384447965636493066989465189813732240674301132988865091830250273450850798118859448131496010566025639878228983001890290588919207773002148550636534988824537082797086030542412097877060564253124387048922016515748344662709608901685855767916554862502759081073646053972429084920125420943896112268638610086199723924233360265434982879616913812615673433729514213695060862686536337653406110729713110391183378585245600163892071293575384934217051297201958723756928989559913858258772096246839515937502633495033130077892296057302356545250755446616053897089213722513184503012069785763383606857433037071225709674411670816154392162842438849850776031210336134536288400914571593876516815022563777708439136476346723928008288028640829863812875048452778602195252512626705276517022830130211622184351911538016947538017267386388312619683376972329173115289446884309440610379120255265161088965823280276380176733182488883688989697983268144675184202282532547166291267334793925372513704848303704983198190191618217998723015465203940995520831724553006863181595549621302254889259640674459878551693752678562817855622876904380886486933384060804694143226687879464313346073641598262508176516340694342263091930437489936111673207067098068682930542576397280520430910467150746290460802880562692905341496439019751987287483221943128803830169319794607111216796913149609238709693676067138564913070390989470485158005758902386544956858433904013338672656231163678447091762440089859606194068409757839632626783225904748640104916591669472706027740622006277966168440274890053711054250439255014213500987009154645118250748720628704386978131351741860982560253648214955428304151940068450307451694891972937695160524634457021925654817437121661530754630863947056309417952391477766824754297627504672612781066484319191025913083073451582082706402687271402444461082734577758465872764145053969264301143057228717091669180581227491434074717426510981433379131977667976630731988389168097400277015941304832708109622582352955153608325057153202582631534041205594151396497878370818441138756963991934458370932448964819538941091666706927460151762474699291374898532678562018816167505319846833801179842456491611724765161334078252086992687412167448393643340017394750161622096005149553174470232898644342141543801818845548676272600894793253294904042389791704493286403099046386228245290385635413785364992788258539078855699400749694149850560669036344532998204192264019280388431624513679810048451307893095477102480664903860722733548255538721296855862117897077407404425488909306833804057353048501719085187069873939192196746668002567979972918799020129079436181861299837389597758716241861075702408134182145693331137839174690430620874131274668966926687143362450028743404691439449018413993340547385950452422916466729525482515843183913848446547756868944936741267922731016817883671227239110227900376509375054557776360408289194878538952913868632756228639990979549634659881106860517838483044528664608478784416911402723896905221207456784079442931061959065059712798476218838968785610334913954689624214450341828738181287146257981768034609057178699438469970631520874815109922104754871144413048454535697967139396007340013869949948126959047074097382518660721410982168274424215699459343547790340615848473738175738642698615511064991943391127748300203016536572458777173430091540765994316586668006999265691924887260093995854027879104509100537612764873006906741021719249872892513392718606877281000601635421473657796535498035336335816025310502840825265251338575624625224426060755778253596271108583850802721641098281516738309989314897116106742259114697576011231967519101934560239950465923563813827291557007979643135561387260548308697287890243875687778637073069436751940768740517169622399197733981917001427671067628173505672085925688580943005158079415824240492054056742378529497159812188249549101298757812052416827975865988075060985944412668973720387833513754336166652477061067333672265270558227419580051722135085672581833111764478743358924109922600550342880982557059130730346349053577201862394506791263971243767034889717200639014441273178607847787184229732209317641359756085127890448860572099737512956178979163889284003038842697829785587888237689875477744525849746016483828947817870659536639815605640567399481757496236108812541935026855645442134763038846510818445463291219247288252021630818045523375209753510971477623297330202413247596163602407070040385643460699074611764760918318285521372447095229428429696589094657624559799637795232688806210098259957641338077476535032952720040576895922092627634720274149338563611520092655704378005303469343871819714756512724197537616879251702342389941284120248797883958856605956592928859901572102091304387104786988061570084112669279472921072637501411665648680218497986647415371975208648547738817335221976745243839097092935181442151004808281895782888578230112092707992415449818360402653997590235490762127335333791222023032057926617011707290459976813982014820751640318739946829950563105826669359279457566668470402421405827010318710904605455628872606670786543740065243149948660251391964885742343389256719437002900293551416899867872539293386943732253517401122186698570728768250435818700771680641455097587056694398698102557890600955887579874600226437717256589648512591190313262883318919504760773324278308311798416168522057947499359193418239329744111453268226136135708979352788454230389398341506039197507970866937336765042810851785318321638131956889698549825255351811833293640063677332495645709572818630937133778384377291998508489400593114574010856176622606841963994382024625915942430886803160116960594828481927799689192376214319006588005243958257629380405863369001420267468910590141167004015769855603668748990330015369983107771196957118437111150111177924690842690247880754077145123316675607234985638938602390610552637585070696509736736650008606893844969475707413636761247700808998827489425091833676045583345225023286123442356357760825746170182160526515059085950126309646570575372246557338023707201276520243665162945054270423786402194627667946003809268602813446319447393427702110974956811196020020404734985194222025060197939248268792756207407121347982768417109867765374252097166096142360464725613579789382734713822764983410674978067735371922154401031190431730151954226470188130636186191172134907512379732517222483678849044336505800677573211033340509559176680148375150272200872724564733496851678790290248585899385007071598869704190499571739342803875820485050869357878442136205286139931705856385787416668228619142410284233836669157009282716953559725137948090237830612394620832635056192522536079921218207893970788292620036523057018845924779636913973875912967631705317950490906698961230918614974692150049327373819517864046769482869697458141574317112673080216591664424116313804717584963277854357887070499090488366433237627701876523172610526410358655622824511330145458123048704699742358278336616799740705370358405674698358676705900057049167213367805624837184506351023034141245283436661337525526670744461037166935574178853370602504654827146031086340174342119167822055920195703815704826221160302022461508583367028882353954372441959175536518060602136654538253400304657996711484021015911666808300809526858656079961722350574713236828705011075844426718087379259176431823105919987313451301585212499955127903714199826740566463411705565917824821164924437557106253587145492203043010912041972941115313811489619410467494425655508762669288991581810483743317866075714742165060151893096822410983615112099533547089874033670707698573505949272176603652262644832937674942955231909565644781185363442614225432986640219604844451263032745806158250568216215906869199390072485357290872503032151752919101775559465181402612588556510542278811899122158884814296706501114087807319747076404007036927066325500257562624782171303932611474164550811733962827627063920098978409778005185642432035991466421489341244768278818364459779277765580617948019515159113102357255964004669935574141669936442638507793272383187345182256823807586403756879022567425956167999972865602830892877116293373233597786111613621534802056285169549331972820804797799901495345668228699910970028267642098553582520511289311696949180097623066924735729515298454683102103707161297929262428769926537474942432894335154592013148314429703608072994159016580569390659234325651336289987977806901797615810545565654660580598893179108265406275198042067851079431774954575902474895358368382994129226330325171222439057519512537030134112099610243780497497944567802023246248846843214375169499328403030851112449562290299512145228046987230734179818022313451005233214049017111584401565728157796725842673881303420551340685659541971568867918596087259781759850539904247114468955036620854755359708351121680306072358761960281905953955428071285189918858395240827285142709838071228684783003938008074591054315660515540124604024259150865669751152521391945106477487646417694392277987717095353093061710560510027263210665791931385700372279797980759639857530642623051778399815235693160950544307549528477369897435063905527779569584068053404242925463617103908195971958405796885899661546519060111812845498362110318010381421857899752893377584223404269469867677146523833171977263897044706638854715303139838112772838304775710167431461521429819022405433737875308938783574948272530277318844865484515750572245270846533298706965745518310739190385211896408800467770515219364238059928600777755421975114723860863288795582945474170248815433099487187125249717295095990247749260927479822962726684555278717183374383099411390220485961047830034174482646897704057334073839660901914157750603370318545413222602118682361854298812393413139286847178701478168617138308545972178279166868358188652862602587993641238721291283728547287529799337389959859357471155251857203803821865361137707100718012631417138201838835756423193024497255929760162781364550272831273724064892701776426697054432256461292285687470848996034945873863232705279997562066758001583014231216356935239995731238532685760526567907829795231499645805091868393400419881657688254868788906881924886078271156293300068820952110201183382639937852246247494120615160579429738217248555102676427635200114436460353982788603148611158196391186185510764238954948260658835343615227893565950006726560252814146012682617005944384419463514006725351374027989762116454090861257924658554687434602371314853615060226651116242047547003654569112685234649476426317129280713609604193859605996970947921435086068220789643432698656824342660198032443240611794657857571342989602976352559137988500163746678992258836114094311872653983357205973574899662629460375629359434825912112757705766271396265674859151632907958677524316503135650565470816139010619830041356208659071353615196832477121496767802469984131400718506521086394729594147042215237542160250351370286970521366030139395420613957481434608066265978553158057242832715916663354864724537715838023374327850602316744879431811462666099754741926049506154875130987998194392515970174721716871783886946886843337652746954849022549940054534338706800808240329387900287823801486690253211107694273451238947109087522818707769357487926205121236420294941505620097335505012376722717197440552103298791144329382547471488303209629978503934182431401753767399118863896856655125144288176500503844915165500988362590040339719486742357113145707763080282145683495589589602434114185452680620225322671449856492506174572232996257633519206078530919899864825118805960321605131898505299282578333469398200521382108762582603424504575521213484645095547134623876921238819168407352965474849566471846486543900521129718376123379490918127280617780204517643272595920284565518555924017710984452698453090534523337931290616877512314196322797633866121519734291189232298990769068779979133416843410918330121661127987439343857658724115437703809237478323305327269194996148952345060329081239825673920690562537064867745262364081985800420624202920869643476299455534572123509961550657529544293744571275091164061529193456161885553614135096496353907569283703272806792397170027314238802060116685441479536956495518006416759561015837955925282387603907850913625523852819690440424131768036490732975366485284874258156374759432659348566144878032000729255855189384270974729984819287397784272162718337728461807279230055326315595148298500866925630482698013713811138192350289735132626146533267798096706339358265629330585916877531269638103524572581058039601735186244422745201831190361693349243605747970692446593215809892242017325610979607762043024995852634665221816449736994835843779251997338560973547542896977383093854480474312853746446845390990992738323124747474828248619502625947558289825233872837087277133687644585439175719952496431529563985303802751015044545321419910279371244509685883338982179982787293803566630007225669947327846836372479002427784166690194070981348817644018817703347671448908205603671718669786012605062784883866833758549980131495778246471570044961758304844210300979787929004241239008918539968680011534185163843468980768268480741052103719991984378738323599411512305074220825302914074249116674908670345377973241016048460197114827979657938368014818215681731442027483050733113660703920388369532705941148204700750533256017812171947551463752251297308642438301336718064476242866766054638896882508373684997681059935971249439784597186215355237401570994660512320849837528276159342476184257381509019981482163284212091187916435753432816627472409892052756845565752267784795009541666736812080171670254238069448590434304459335312283883745915465721794307821858434199191111892199098849894735890281711265518246987638902221834996362103716090238821334419314082429372989815497601337330849664901505737469615116111672247847192550437228232984492825087532714589458902579852404365071790068114155333412244999598620867117228523958333117406294059796381036714426538451135452961811399488857321023828328139309675189315901541544636541497979476290472527999997529792830483000105234014325074884564580747451551638028211807639816585284144915275871490853103398451235118923910226655748464438687768060378689305779943628459357770954955486193340551527761335238983072822280631302399012899568936086486516276135092163761016085816773957771603645238176695197107733822587483734727050963059591758828014343528405318390680672254824628865547696712773993747832322285320550306624411318891618538840542831728763670840610050719518640347109468743477733300862183626313952377481564669808308180393697654416928058104038680065268184695079902319259014201136813192737250614983234545757504614456267738119259814093849654541355739600093169932522697047744804564083111110217903053901906963510982249516500253141727676080798378819437252209569605252321954833844278535549081785165794616737084290694165568896045695292799748197131167884015884708642328072120002445833750336922356760970277780993941010241413248439188265271611814698757969828736011975424332726771817241486745901168071550148628527162353337626127573646365712593771045607713674442428233299348816888546257078792138804400269048107075911242910026005889404719122609362336969117820898963221670663071263155796029683304528132721990666404608216871276375313986347741353928264290044819166095082402873000119085801247176225472246432197344072338420502002170984589309424773242054717932322315144796445321561338753738853447571178782660892350816623092344922711737980287475781840635321256671660900877692909112958476516051489688386300845196905180711098915004310152675609535305097719500976396995544115790207835565621654468653780022340377418547701531638067513628685641154770188437127026410947421489903340679307335227069951215086256656980794090919989614418251733154989465017680085415178910049358869427716732696391320050823885225157429149745813454838509675098637208245459815883893608493244149114646623891820897331699053860564933938111727642656887362796723595015191217482396207823270834033918395209722902704699016191567102783841431450812380016501039010604342595287288273279361076303538632442737937939399529775514580199855724905930171497870209589006197808363007896016317934875623050342973216684200832685447255357823016342989351756246851612460989609781148340221151648799638180599653795354550764625540319742969176282115800553570039024276471107129799930745304642517654227275780437525875282478315321426983174519072210604481234888712498421799259690084579927964460940239762512470885680043977494548302124716773775579079411194169733943938940296863809496950517663120013228032468789349045344979620288801089881817902960316235712931263299249321016422961130258198483028966452568761564931468999018843885295336169976128531726017778897987946324840591236961700847174126940568700988990989772340907008729676913886794107284212767963424005312213064435369994532567742002164509880167064253838924859087063225866877794213818134296467929811194661623263444931173021967884895395270166545533645086170408190366026737556674638712834529715371157502229798127983357109533585702200767566298365931017326340198818929359630462763155550706630819223129923950507424488785221716034276845940841538373852635730881241880830815959588492097622400965741057805121887176851946669751226413792235166050140215986859831235891422721611214486874314324004859097363764818444232710895405929819743750862751054437178354596426694739381135382231151588882507704773907066170948645991223522021911338522653691742723697708703756975950387348934805118615589842064505785755926497294326651320677970735152472773004530536754346723032535663707027403296453952069915112631032521942510384438929950841652200552506102697592241976053223717056731844226385552087228186428619689411384789575166420302939464083119769616057484158581507964258140738034968758370953934282228219363130562168341974996346304034113077050699990542948095914868145678160492155234237411830411769745159920156079080268970473875897916068558722470806281042059419661681561977255951366416609670316801787857599840498410981723291185641684217825802403920755905379116011951788777460937302172554316003480956691978232255942044262784034863951113886108685680691446132131934966007513416924073937699259733107632530746043422809770352996942325975125467550326784864252629080742869039769647370301446176041161343167711369846532475231834204489234165206315542268154189319593439093021644556868567339262662748439445156558741876642790936368065412186637271314162992830386699593298271683285452582560192545255910472272198786737553791518853888850495421527727090552703903866460741109972078587923562375349396646467023413089296567931271228380301758141093249167697240355065364307704910457888921998513659466414180572227946053944109194734459380418281844112545260615978525954566041685944707038929130692614731738871268805824861866990040597625558183991552662656653420682521985269423380503014289523417477944732777569264902348187875650020098277471297827677882730596348957121860734752935895478770365707872119675016239528732812410680235981090453806978379481641487490102978192711503170589239948834287332561238584769450892780404375216218774356044125614736063290211753234192830344641539143265143420627884030807510022864430008398459395661975455876826827933791080313702170321463260309111163518827641707632872425828315422858598662628724724240729265423319987024375976293561826861303355055876218141648851589496712482597060626113891464121187278481188969036500111456069424539071369845683602295988843778508762726818620520091253811268416328145196757699000211892679139168899472068691131661723293257100612518577637806696009020674317015323043534852198998038399250150391150084525843619808580201771877025620019613458306076509951738787989703771795200590475176042591871692139241115446459166412178838857857844288863432690523573559933142447207270702391464122987106213228619184698362726118877422421768873154925698730344567786399111968352426234061751581206393889910799608213659905589304673613097738631640449495106073893982837537985423509832260298585865654950936114445473357274246298230996709000573614668213384385115046725030470998960516231736486170725778835861148529772613166511993471371460518687451004929618057635349862531485397535723678488977057189158181086763504009863534274409848751426948835935569305712314561897123651461621562622148106984258114256613018671357671611321038984477887561359304366309489483333400247477027395105990474578819889152781855496280706426703058925385704061488137343317570841893028024995122789740685894910366368949693011262784688676401920351430942319197176869259533826253519914710818350705361599878567054449856814509341512795610497652213306166781193759170789364150482284154668917737155348626598908637710424680391004419459646411196512580847151445904024442163043551499002466174330926807074172760021081921888519478450116940107308601821118398661181298290829920626433596204686663939891173389569445129643133376776573937226477896301484927643299557353580162276666249518989860948312768655396097438060987592979355410055660117033743581086781687875501227697193308341164871221333801148986125732623070016001396133853433939692576591055108697378461333358500036648958904601655957387043185109617622635539668714942576986596717568830390922768128742664622245030191727408034052112782706701934972589967179291889381901691341222545223539009504116220331187614535841997469523801507436765214341738810804537973736208515839833165404959994013297093494903912495003160158429381636264274284247289621349094836003046870701181481619003505139455672443066077243590638661644852934523849550292165515402218541978074084486246641480248589619366665912297390629718941001429953557003474046274746033289891587379310571934901385743305819767096944186486164595780302154891121227605602068873028165792079419014770793608184285193485686229776248205568966840717361662767812416018728115540833249186694042523340566421734826109491687253716709085804250143887496650248767628115747634339785987068400066188314929026495809922366466204760517619837286186484021629010071710187603076760061120936656947626789175316867316971796754428742706703411139190750961128818670916762108097748833712602690820465636601229403816856254254190541490852290814652416158521203740852927714680514648424753378270880036455554950956330009497829713002378110618253161323755307877180602856197997902255001868574490463491577908154780480893881108117671091678709537402764245356142738414965927002823460970808163936209427151683405944929303416887448973872770159254301860942981653824474200398410376413941413132704011195059788605186972278364785208912142517426200163674371643578605119611979147719700673467712343158061283253088580170795092924934901634286721253830889904128872456119210729253534672887804128196919662658866611098573482259644024456668144938212577902067752436291371546967008337729565739681374861284947525697303285689519442657682975968096331781474904447227555430118623277661239310893740571625498302879912135768992803775935142328277461891723945223158644703118285047858931325578652747074398625065117863061539484261180525833389001977038153075111200896181771774468457193213410383021695668558101223094757530576613470895168911009287636626341684239342876234004932430826006760905798850516446843519679311284517982163167413570370049957017883302072217435023965740188980904051559162107010699689202746936925603346466122876056935285461806088276039402186334151457097486500629462551869097897117194008391463081084022443639266860525455813702627974033395814674240623970885240380764437048392894383513449775838928994306539667798206672419697767425629989573425123115716673600520752255109469979147655795282171004152267677002035427501552544834673414196018276855173877277945623509015277071678752996124199069903708115861884578823851233386246371457140191312856402559941385154417202883843107812211672820683536796416075424308086431443981865225892010884745215455897301569529405496064587361730981762696809450366554170842056457956469469997401899017827643993054328200423427740896405906611549853322500447303989668110627457890356158805267447954476090101792833378718735560772179968901842032915583535198300601953204758939758109640544929674751066208261452891021407289674314512319082017438537633583982578760237364039329797537077648317420067373656739164355182119451679521464027381491356485024019992047117104865547006285240843916730376384167669034442236887785591850877755675055584813370520486669254849699656977296522952669869826622951747414628172732766683420619839742188422325199916933807294478604841127178643881107702113923340821845988860470188125961408175740545808683444961595981461323074303792812035511879655434843797216336081924305520167249307055933532852648083119025681120590714678010460344557052063386414130713642506147391443505022053275353317099076568420177158562575765918211595450388999250139956998285026286840679935765783877852665328859033509322045292570918689520131144550072498234558093861733098293724970988066350896506377861133703425812299648442239307570083559773723923315756006337341826648475448037803280510265521872064957865006646992467557708438032648610370409590678875297528570987575055138424733935359712299691840851813962234461226869956652553635934967791111254514581133602254124180257538841269380238760610317279000543427908224285345083271154924609643272546903948646428312170711427681220555062841387233624878518202577826054489700203635701703662333690551228656323482740958869431811932272623646145806945746288026765217224904283520581945545180053865825945630277605820713162126373942377007916684265449068085731545604338276838335467452468291387842789054936864286508272734600509823092559003967307822480013156684571965665620451383051121217511020042866965944729711894020135308565309946451492229893253738147295968041586703299094517783398432995499647036986300220645848868024971914654372409945123191960417340123002586550200110192090975695816608512435712320820948066825601434882522067338911179680341692741576870210623828730904763527981635663005335150434450024428749052005396434209566776400084593496543170944907393544618149713354292296999474800518450629227467792316194542359584327243443457333025346483561433907590006833668689019880826765965136085835342475759925903688358753387308092244386632160593241848222176968265901743899970431345209576271075971966265052908717725705808908696029315974123816536973521418798709239892432116798986387639143921728773184100995436924257663354047998666879388300539963110400769596499872926113119970805991016666594421628454893860012101066505258352541987952332741897666347861400084446579074450151144582353548684067699947702346885858166059577816372029908246383372083596990914656192970997908769066242688021784704084772056287817474208055105931494161680485610664743945216293152422270996270953034430867564486299736502878029001655207037827093659253498885127943774828380967877772591087136049931447868228718212656741841463672436624009586587704897248293581385202279125389042001513056256835222001059005219708530321411273332024343205691602742856759954991901309349755070751485895306240939088003007131134480353149273775229574335387837210853186159952846203654590784920357338648407662583685877679437291545107819894751222817892307418413966323391949691714879484827977610083459321617885532404763601847066042847704624376831042502620278643284376724516014190645294447418122840498843575690300079116858173170800261112592256057122102083703226289044749029932941913115807128264312998494311016114726613452216206090822802751194743996756405320101635885115875232502072485110871202698311212559496409125661971681058695397297001396971912714383827160228544802395414861152098072484171166547059458898419443890256226361299253895705220117496183031825102042590050572223397112573748075847229670107490036189857434207547337974748289062763709063362466237417569778882140247363173542141505647476504998479385473225141044756795474985882677409392215230662948332236429736557807407607002308174280664325314588477799596107204427700428382563558167253109090157492901752482454911445385254089136902124020288551396716879020552067647279143498060984449476228938553883198442700857962527047911668099689025833234072379783402237570500851643979116334363485652104643353141526789272924639056465429187076098475260448128417295623198016830073954648807185142452900432165692386246831423687251089430999651773200600351333679763473120357829400260371202577972999019261241729964228484579773541526034224800621659725049356379082557932711018242850802168684072004603578740039267021532437444872979181851962117080380447179621832974407116051331521418369902311365525757312545500985299210094057890482871472036019627389936496899851588879366580207492605430261027436596554086770848562356394747798808233108359315585221423244136841365174884729860177637212965612447702163286407901207984005571183231255012294111108048078194203559780462844508505681361319031441110794465872464690052135464462527223268801320884451749641556372264773826858223397939982890570275514302599179443365582731636526350752773155572081012381747359827386425668205990442848840471352817757291740118615779753317739539871215425512622746195275091291526528384469726114488765195098003256046218700404892898829553153409153038092886670058311629137733917702988941090693190718585390513179131379789540070296315927287387114035150082317949475388674652922458576692618633074572577717511498143334222205660315298422776499750775243296105035614378711284785536137802415866355871123787918087461687732056214211375711944180999143848999502076447949031915418890782565613941135410092249209276060312102471746055922274580127393210123093970333415796498314661438715360437035234648405340738195462370631219538427627314135498137212110639734482830866347387878933850368622645857751340592266371476713068340587555104828901018953677657447293973972665049339238340334179268130683067927916836196329570795226750652528433570013599185853372988075551035589518359195699548285021881688896451713463822614478773047349882471323981682408037806480034379479853740923344008752759761943821950655031627294015408197258141916809713138438173370994733953476568928945616121698223114909459232856730147588076926904158379763560170235339609502794011967317685448528286128945448879455996631355215300586274725614899049950255941623046014715805740726389603029968263915049008206472436830629742367755513670149595699390715300428890603923961432144029599846874451245207336847063412117965030632922313628505460070240950522493705212950730714681255944709139158118337021752164010011050194792273190705899174582367749334100736783006276385594553816217730175863782105977896302286544287090913089500664586750234256048247140398987198003272468636671280827249367177627219028767951814569216600242264844466039260979221957585889651773198324023357414395715805400173533688785540755924418948002442966431183107207718781126054978088187855412447183075835494042533272769860986795709723077180365530574539854856980667173473575055875770789641330783348038834321287543586472859057427386490933645212235703206492427053779372861202247542565521175924778078651773659877642186870930499389166212088578134291988608438135137956599560848191139141776324180814070221093980433494851135853857058646174577739210376575432567727189862096584302059379243084847727518664393888870537856301689320065502479375796918955268130523486629372335588400349781007955754336583664411965406644891677687717047625168833471423550380331600820052330184661350697769357552368276813428604598419656453948578516739792306181489804690341760160378810613995875997448343344328446364940500434002181716755843089989358422691129675728118662296816927630734340668464908726893022323218609389778523043058491498944853211917909886036510502711230243021134646178571756023287251593542580223735324314049749035826087407449361508330022013250463582830639988080754009237388565671986449215895351631082733257394149585585813814245321034395439880992814828739177127446180324771754168350208695519160047152718177176396868787156817028974761793587025444605690377691625024548332502344319457363352923197870642271874096640943919603198368748674982378065963951111441868103926726707565455366330936629832198343411437360059432037636357392757345085917343428464224360764546464650911028377450943113724432348978245271282481206268237378004721723560429740804072192760658930967920704762120065739913724599336205881494631042667314257960209664442618668957207375793925482389304190133171309972044978518929343144366346434349236325539230608019831013981789837067494046723586506749241852419906193954072860350730177591985785144335153323024011311781779916093952623052720456426342236821852552872895467005125902967488704114875225974213916078939470709876757940822721874892413894481470124183009040238445708636934482098568470952102130467171822322642749754464462610921608418804546014939087089204692007783075971933954943373205309329211179657826385189430449180648606757621373871177596070960444137192733016482487807968366077847068712746409321473705415800595460423014503949590743903552484228587637179310404006664336312527507887350360420595066420028320032182519795442064825071457758220472265053315993457270199058050482485974904657961111231019971601225303149947970998858592375437316374403149096700662534415250719452395041518277907763254752838606691034336888635868097061646546770279039013579708980172674456086501724284326154566268417305925355649105542494092285971486074703750197909307338063387882019917904566114287114647463110606849343491852951131109422269145272145070348751064791189235404993775934776356440731960423440421219899749477730439756327221669625615142551380835992199855496299895508256266441820438901240840596660467980963389465396369160886901168714359548565748432077111581563297571031544111265629084157002075256084881053843271721638871958567573481752123238936444524852898440404328280632758459467052090417367535294881229940558020367320496358961353568034124925935658041421132658998756507531372636204875981359876582906078656803506428006263071956118998082945771034996068201243555570543661647549792789201716351813876145005361504528238296978371974389745258425123526032913534487717445746994664678238004188443074864184538905064340071582121623896385227289342391673299163381608513486540149348448186931669769283330021286914156558490491061762947646149922419207013462766953686129152186149324360702997726477774953499224567689482872784020682843237743497348878844329969561249463521406928273985973811171693295203226902857263919913460329461426776803654475248026792698285476549020222676962446584132045362782560742038016934794075516823432658370232070230194274711954760842363031077903888173752972373189433940909859697657892022645578783354419236135677305864733091322324718351490372600860464114112163574596150739085205950005803305455544337437847452882069341806675984509460055787569816937829325576872603678647419884326746686010267120638172849593175415602840774896475329693457582978383745906923524809345027865512375291543591480439559210562352883938012336781801261860111413755829046518233207781347145781919941973175739906494925608231372166157640410149159586338647895494149091847303579772356748031491445275048963594880052659444013241741897032339072419149298245502865487261566389837672482167219398567980315508335790327328293649045739704803888848922443058904367530948960202866452816816365905858634300354521663159533293347285292549742402548768165376015920904436708345952573743843263826201483947994399221150107211010723431689764230985109966616785301572199357575921918695581612391295344855284964246564402079263268413277915669579691747128793275708081365483013284101941233382762258773730466631119208916178779112344610806346960928176261802377397273561835057113788039579381490466349926823340215819669724053025077326466684919827405044444335420657086333649661730178353075036615615400935913062032059231957882703011319998929616513115048407168407805681669706836425877886110782096404359371951697181268104762765642145259359855908452624763818608631693863086346982622905532493600467486199013623870036332671806483570657913441996025189505384515896771345422648993220316142693423436773003152654545337715342295381368863918792954091666640573073609692231600769262592460923948922090037586163979871315643193605358272009332233672411996465816106161568870473036256172164788646621630067712279586537677794647689072351036187471451279606408753721853749322916677893528023172006364710926811744963088369105209670646157149711940170167390273499163143146310553246755785167930951883089431935021796345631193799276619902960368066887804179017084053657769156037589266268316926114332568851128950264870747891980799478352179364395575334795752623322733071623864149315090596953071737676822123225093641716151242764700906483493586441973052847827089869486194790939255648592767069352245629412371826920093350008026323227926292664620702789041695011737904406287918745831776727938441453148734805554020965894873035279527919764563067621154914272561333767121417757090111526087656642928488159591259860953757871672222798622570927503621021031540963237603983649559570428855581893877571842833038309949981151951945952071749527322467269128911964801499853731669983910122059002921033616036379240666314826900384248281014643450656530024319311820982959929764124055681522598791830359486303013154922123853990760439764729655730866304352792678530138366434349335492217904440483620220424261877537745696257209902846709495098255537761813649772776595499814919150941783467366370467665964940283255620400376565513008400748659621194253066920323239127188801449556627494838938568982742245931375043451737504015894587333583633279578640398152970623572578286644626104729055892056662628994977760539407672712501794638160235782398520337431694200915918029918418403295924522947313795804343178296763118971872019237678173324106182298321350108401796932523466756259235104431107603125984671951802614254788618397760827005241517667157703556049260706428734506778652994188461102522823237905999121754229482368646817814629634085627689126706528119546354152136247270391513247201556951626294009039183263731056057911050791838332389876958735785999851857786325996436667560005199086071682767815387987130446072638787562946230672551433515889445931583776051273348396299403351703277072974288518824557089783053337786838233885767978996124246375186145491273838404488133581697532486713581849996609929605132775380219657787831308029887249843930082239476682095566215168497909272821543674413582675932339192805691483385214463788228993740230465298870165128626078522875770801592048425653035437149724495442634827969730748059688397214144511883050909902543123705697395553039201973731882504306304963689026103584378996139265525105177224328430957940455491515360387838132968042914814662838034581333655235964238649261426999759944630654477187096402896845340666111528166781372914238468448327465559396280105134036228238303871194432806948648571600932837092506507435049260454918628233835859300575214310466620902720206301201434747329476112187498260824436696639110371770466238529185026626220817636205463931165461212803423955604456365542097178929636627374581303845848288822297591933306554459388857490154738405586852728717395581869714214551573733543357004557016672778783335660096043945971626593167144960987853001429429560438033073828785703572830669909488994382565127361248917024383270668965461422446047551572773219544554570992103811503452115219708187000987542139251774744002465885292336999034050327111140834896016665954242224456279611849082276369163138227477121375455694358960066639605448838926061663836222241161553022548550071987990457939014454517194638820673010606694743310129158415624101282746730098243091169555953121378985187718732985883853951612085550288206023062065235172649033053065655728434484034794739876930507655639430025856558022944730287495887491949553402038587263357414218217482941799225145468879891618544925300056757583433773300083192281054237599077147406426255268202322296437183440527779765637886754940609776282301614922600523238150142259680539687231552807151399678220124522960744028680874930203745685732806897730058103476602112615563194567297779241979718569274752648286749783139810106789731933514623201171862084610756718378115818571073728943436212979371938705189061467173273042296773931630634603174091823215628405065390564117981052736319059249957602406293459573720619615385184461589847705249553739545255587290378569296017219166792275059027317443753723681991040649713085001844345004883092037193611987643992132849023261699232829755541409475073392036223916654681639431156211484916983087994935304943665309593086001427491672097405378864487573039043272977449567938201755615723403599692722777144089509577886949965360747289108015052006716600007707557196315730032919287283429644371170088586180411440975529938060463553447398642986695939277754809494458435448965606648376552198796688056767005395653595515874032977976931529397016803433166864400357451936129872578823136426146150354548442750489816181206149526983824626155901262258455632131214429673061722072185333397561499043680914898448548515326151542963190403014215476393709433208053386737987212461626282017926831739890818332269081144652340619309698479496507602879285094911318173797588702061400664914808619364425099598965755495338443724188643971145225613729486746381904383568070248369962662965186794292502114304445573272471171977097436833175715089502409238865476828696377855129136130265195303988692776625836610719108498684379115225960119668211510096779177026529959736362107778156803116703508490975134893843706520777670379848350410496962972948597830397741779858825374696750059781890886951949179837808219611872635816051446470969945724936668476990770796334099898797760367736713487622865306945679650529085233556987318781893218542185837154874716404464193750467071717819355665364165017743079446960439972212373604755589537633916804478772683749637670527159790773511685100915395711992235982748776153946315432647844531175802488919283689460779968276289602959881012268833271487474954896138949682213778622343169248114985600078961850146076949173075985360011938646859749575414609561168290741318182595355086390239907207534175751772193854887693011920487744540595585320431290496160903349739134708449631014300321698226840049111530132981161214400434871724450762766968898953582651406810768254441045356478554294050965382743917925228660786816492386125062218885712649761351701043276521489598715245322392339586251034892731918996423012505335509797887685331772210048308577531321938925630944521607938991529152982300933484837726463411411094804326793432558603011927945823831312705144854822178979063258127408184246756367584926254283593498029162372172929484428002115959554947717634650974431870581531175422727093660194971243827657110905669498046163011243578820244404292774612548791539900519833947871088345432062960650258991829797718496654715218652796295007986466851633982433737687946914567571974800421087270446950601888377746892722605319979039374905001047707456641298548364204213453346257070237413914197019705833868912716573810354091975018031875229535812089865878034623422662994050374198602516647486845258303065388079259393399867447909667596898838724356210081164492161483297108775300183757487713635919526460297979041281980138303357770421061749622260564638888870338814270835887386169267363857435709619526215486348535568976842199001255140042206360383973892116805779992490982987345883466379195145405394841410287625840108082111644269023646868409401115535304896394173798696535096988143766410783675667485268586922602710813258931974403630515470594558704725066069777707440198458804170429201187565747319683597326390373187499931397722222095098847182630915204911664169587797936598379736010709563103481345525103484894672133857530029865266322650286480082695650789667277871747002616957927266966367682592249409327688780909267181355699307673444862292642358522806170965979356591106630863319592805502061855356372120547366791014823649993587352408436018207378363308603654541304837591057096069954485004058908704506822157718393015168037341571602423712607684159124871929606687447695631397102209580784045918314688396539928844881958280801673084060837701709003953470198326804704649741178152394840306957469780370176846153752211530382524732500807461731432088834720643198997896916526709031911946462374481476409883446273142877883200138908846897873249731466777236217407884988494856313810500645365742493893101901605482975234767420305526424824225204102229178492662301487810936653522334191177266410668091401351281000842108022141339387643508427511183282861188425360376822039302248480605418579533440952503666321476523114816612883685953611539151088105031371868259235473747935866334150681442334778417420141883536247900714550315120526120165166662204161619407138778583627311356067819739423892183411000394315119126297668033917153100613936392485713410580487299922777823943889473385287685938204747923843614577320776930840522309260316193079809907420636232758000674856222087397371296376688934272728595176973036825899673387755719412117745647789318579332951040986559969549609157542127967228308175478135445642508330860006633262454886128957669093297615355015776121731337201309417762222743792076805975762120476853409338920107503177429276739952330987613350149253355243662389773651348282541695972154089436580849285868231445814075746474712344520717004558300720486627869281444691561261780893149440963452953401659568936479608962653709249777569679612666418634981484699350131185705561708294452549450618431975239958539240183681599717534549869076221112187502341864656410090768493072871916085445459797533819746713677402584026727766139623694389779127198616912621450436369951473162449150368678437071151984344740108571470208049074592111206684902858458346072269420531038404304324836614838905870014679781020203172844463225334748924907934785261013444780291065053562354170222031872939317668739597985564096727412375747928552064704244519828195875308935328988484731463111279640842599503444109069109659322659761870365907577480960869648235698114389951767133761525054188143122304157949896359539256411875150013669846493453089351499125152421764342147400609789213492944152056795093843860256928547662542105889242198266420459183521062725022673678219339813961429235457584274487305928691580746354562450012901956875390025263903911312226396159575945892569112779383986025341348345612880848793232642739215910748695256888339183440976513072651028322554684625308512879321677529907312035184269054223095830574295052987398111598549097650861602157377205988222149847100261848304904978422551957862392060610895255433801923059598771924886041581213244577566838771787423097959956824788962243595444065912556469335990876028263851528181432402507647063360199405392842265418877466784267138024816791092431123106228368137684627015793427697691269299257335350411024332077091584963800520435883123816753615257507529381727019157845303275274246208682558128410684208438992483588429245252939096148885017442552714739732962254008364019425171828502266004504815549172664117439689220505873756155521874238421633981200236577644535292740744159321185818360113989145643101085078483317995845086102880458588719704901716364002317104402107207970539158895536538437110918042817268060191898560107687338796325593912661247676631724668380087846384348670925662065941701745555633913611682885412530690292419464668466680123457627861602078217943308044337984272404330076526972165647374663101191327350208548892452453753640230013108490837240738689018440236083139747302856394968214039115127267295064120012484817184334073945079860863669194996135469421572374174899350221009337238919614432347464904767394889131684219703576366951179597515204641054171590389781556943435542776252805046585689180719317390913763742148422868180191881527192330635055817795045743170856375227877757668857932548011343737703278254120677244714218841334272313685296543393506127784976592361786950535495917550480513989200376696562409760775008286582021966860404901071595741245566807997716521304770067580618579688671958577979922624444656821331970759309834755673753701678503881517831928366883200316114453510740201965558746971020022734199775256194451907506235283011728283411467146659709556808617577734375809866173188144206489587605464992216945436526143960742418369489672086379513967969438344078666231475106417074668048918163586238312037757997989624138485528189226492382940173455739310822331890079582524507534871788055431779171133594142584168683593799983186658098580410202711017133132400287163000303165556633771984774435361174862520036435086675475721639123486203063370253964097061692315283922165908229061315980161528857863951784155254663250308208755682428233798112161413948135622308016821012750100476115260167091015426523124255329012737804990767256388735560210795083899220244465836980539686664621474233046910732827659983686741236927700377517557109677164127481990088835776950214607498612779215277983905237287656297193315164254670941823758982081224102271602624007561320343124727492393392785697170688020741893681432027058520616032683903974980227430152427314299759527097949705263248295838738387412519933110435195160922504518643238398677101457028293855769271711684813136721104251592719851616160346555860536144367392015257374941430657260736725318818173177718852518894883622145836346608579839368207068332339797568588741727692545787091164369512111013146587226021731170507261905581268326463520801312828917167070726107381584931873593131650285483211581376869537176451214240145921046505680064390338412883058714929390735555801177325436915476204592756665482555898896750916511577028725146497113083518886728447642555315000651764348383793075268096519078803055079850860273027533417672715696903831125516143234214496915606959968462438818950861460684464305294130456452053987887940459438449337902748093066390546406620134800013443793382661325698616403323555618858282971659156401729869967727013520286080611306880504211349940795833149512030699368191315654283757187834800465138542830062323477866230224629662352519422394792338639010189523723480743157819551505901547339105159793422536064166815801088666883208665005655709064406535241050062545415157856385521718500394445143893625230778827259170534203652523669897332746978622411858979438800592629427514017654709842262961258025816451950460889582690272156809874480145183399777974764149263513797607527853392048533668027041509677818480174165778512544568526978153241718140420290476698104856508248106136462632427626121462008167035915233503304729943757206883034901287105406822830964535822643422343374689314116688705604032251451624832776183479412831946762426239354097287413724476864705952272571442295607400216728496019260505644686571804751980255934582178145770406833423682411046300346031387979059404679290564795785985620332520287966582749861187826247482499032594446453132509496804990202904028723778407240401322720392125627831484623355492851097743644325479195460598369619170387258519008177785644371309637565938440604590007678599851513980474375090116973312508421592376276870776755180595416177963756056113640215728663163240601872100325565705581101775299641887061494936591006128958297027402023500717875655823402702680405350416730536264271031089113997311655821569317988155815124734567114809311835283954825293114572134245253153304216919626093376902785529360621543141308780709644821019470143292154786362871747762872209059743458683854278403335298684997490157443479714457110103481983458353589852134143231749839347627952441510826012212955776083957759422060873067725104355357372884510414963447956838978048859393446137200787075872104899605521778337025626872332932361897435923242313837266242222133907483669598857676190727299140525810559311588010077830010245584960097538969724332148696984511966173409879148542297361761280154826941122314641634124166272999594621396639080076435172044155588490561061539532707635344221099664435757345715631380566679468613110070658406093092964550203448952849329707359539394014754742422160195941432048393668691033423289146846526456731316838104894211030545954865651665824936215484424867310450280872248019582931794123286092561982255688672683316377896542581353083424731797874063907817431984735199681599646685491511150202601229125432413198580929188916784343162311753674178272749493174798039513618782729769155722997059130477906637614446766701405841570745720706300872578637996990418084240816264792198310553322714543827200165650344294540899585592108179345035619903477667826704691627880262344577512166967229089000236833688877447286280106737955182618234696527164526003385808100110309562637523547283693628378595213210550534827002287091425745148475479165588481481112037114040858652710984812260823650199003423445033575728390877776174560326184431434242732673623615752854318510915181938675103857222771792645581029497347699979176097645385958211675663842326033403832545690820613243326493417042366327186641281809250477664423320619014285459033092545373024448988323902315866026118729978852121812072032815076328825081081759159904069305065903283018789662075655633373541684888720397095928100296856455647761666701255417870134410638124477969582211504872124853167661462268937427084926709220077327800585048329142394148201690023514655765217813723245410135132214079398328548991774213747804579375992599215988741078257980258184534704489895534517325808119201293445248687260466313231994698945031598261035009688590408664475275932289793719862988452405527690948869404455386637617902382187829845131112339500168086446352244830327740465117377078193247370617904729439725997163901729506613563536179963120875082265762625086365447158225721888331796274850933862026223018188288172633193476102899767508122104935173892955871082821705404954480121405708317221669880995710542854170376644849163545292965242802732218014946597421076350938077531271636844936076297190046328648429523094492146941428969299694678895744957416551178832084189431540957673877369992409263085081080086872806063635663083955722066149722017385291421915522887967052171652777088259787913658047921472139115964762694427648298462960235104686847530217994208904448607437680455941001678606795830021797939369933407144227970545351887354743289660866770815204289107268127170037293533548475223973388675817992965935933419322037801249108303214739403132623872784557806861946864092508037920020565504534875433520600596392998996695568573332694219776442888978880672986025569032904865938024926677105998080463292056858685743121254008231728376819044883593456763206857800117993902516543775525289935326668872198051101078999563933416579459685206734260846721369581187942709679794390204059689944947263398739636097536891667006816462546789064766175150371377304536742419954891930224098728866368320591027022789013727478342270202601773825349851304635531686270912458222031431320171443180150285493009522691751335088828550756191334161273046868742144168150452995020472027115446276754220586551540249255365592662983015507350447195828336914907721690908707247954965071158840194931976195847149801567219100597294905551148748412463606546923318541347295894843340390322781755948508460142443330486865610556093500120008064386263991037216340550418168512068760002501997244078861073059130700641690909766731927914428736685053044325041638719252183928392888076964061807931811606184401621600513207109415072155728516924991948970848758637116545558280381655471464243337199652204901265094388194459491542676632746719193971016181465382177902369340446376474107560991771044304056993902985358233155606473475935674071493825730572856452624014051409807402194342045700163136380791791938429193670008021590723792635575448673425187322742686222049531268142113937434444213564278195296217923070759378074654537607575585419746022077221400102136098195971676181976102624914326540186705555012243909600128146936875854983188406323116076676205739649116870856668040138172334840625239479914329176561926562161246248217378961666783010078712200444287766984211847421207944893061730128080654407793935417258794297676378443541576865198572551651399035530552205553005060630324731341698775601892956604178518565655470444098304909774355395911444743062159842414277179258885065852934465399955780255960710504044642311167717523003060393139779137672066598106538464917584568400882619792911123167791382821856284976472147731357729125223612832988811691017402640904246395923402386807059223985490539687419312941108131257210248721226973173946411897634142975950288037633020759644156848381016716010274721050180746474855063984213040916466631587184303139503397174132207047560805040764741520856389501342479158291850220989710606925279354425107854288094273695056543684720955286099371738108423814780204820193464588304357697514977385205150768741405328515548182864925863683959071915244739923024318499661709327401880512830701789002356409772919037223974606878830997345039772389120805126587815139913211389886199356699521958164063740288288479485759756167786706276265980779632797307455764438041367774371958456745491140133987250453112059199596463479200971186408301875550951018459681276848297965992778386692196680502754550253041087034400542308852092274686367524244371932411345845856846208302374305365780489280089349888790248194793172637546338270745248162646140215286140158643837612690420311675306555913873251194573003760288764693015521016597028837881349296773513020891351210219975459214393398478995014326569775340042804926543324785004527200215835184686910333195109631359261710714379232388452414734721542100628899217303889896676008489103957231598966808046505165157131000125228100294006455660968210509384210058785687211629555767240920684113264012424415706799667700528063396254556703420530335167985887375616564734427007855327252919821260516032912434211189162325303487358007961076557299758411323488360198779176469174724338132474174380728233571792402745201394121578773105317759365693316622803781331022031470636622959035462448587237767469379543761352580986684363747144397638840421517878445584505381672054130791505384827306394909316653711510704111390500360637109538975594723589564768241048478836191233584655405099860952903534135285806657710904541848125346369477850334827031313577678140990619296699605314572797240906881018413283187022757931099818849136628422789863846694005882720636923596243170001786995841935463328043252913489629371409330937729917982052319987339734777524782804437778846614912623709752467314874462409876369729184552424925718694772647721229583702044262967503702494839341165764826211721214105336012335714193305867994621835943886116449317384833213015155151620346770550709370348684160513198930942371101508225239269729528454211226207776230846657948169413538694331833403497214582883270391609066895576311850285155002989152548250609630355307163252553025656854374694264821516430998162702943893768786514862190576881758325289566850636613550928956054044002652472808406766347233485576963428286963636067844845832560542963606355911320894057207440767106516874945288766656453117502689628676693516631711527592586894391274993238599764648552017829756642780030744654622752441589891819137534402854807343126913108144957411112056047926009123834219811574997650989468831220429481116250345846361848732207869247734587300078992535885431911606859150229419125732796486623971302002471791944411056822545328522333746802376883253558419230802818505086816929846144867216022981356172980156913600230719190176131927687063754900826707825089613673546827156356057494966734432768562735493162249299180867164285363995744351216404306391602084964067773670833433590328258003836001611838594910870922500526081094032701731954583257416006501538835484495878778462499728964997848485418357324223684378656719929401635269833365471297318418639005432542875155398809482275097354930121185768564147467062214954220710759631833311175673542284681326745970108418455258824036638272371406472991280620910732786922948121887733133439916773771156371843831085785896523196207066243922350271313871900067459404918503033993343364736647064164015443918771356570646417545225732085984142882876121737822952559627105549495369494654835800536280050216388767379782480619461311942198730188624931677914084992433202493936725631780757474266932798540026036198625300164760475973988689265603683403818155896596627388636988466409188154373398890343344265404136011354624846361615529970730448949029597399572624353520567178588043473196734147637533111392056397236946104747802017573656497557210706848892947270980915954798576701494319046866436440097311729499588920609779879273814151091261276691625410238764870623379738653659322013750333639016586674618287232759370542136633873344330621583030730997040874453514684306896589542597370352168442043868154483936463711656076050749623357475423142376381195060168375746655961242835428449757007815025323530754782594781957267400794303959159257171942319564603934849030820593828164999793621926734303703657366865342861606185749144047143238544800775964303641751085422560135409660055516218481095466894855829418181681977426326734508698932701452711875371630415934393781340817755490923671956898185822324674702974188444942072341790533568002415434369309159260757820013329741858162883013283562786454545223651468117263724645181923676179530126838895176831184346831136282202021150189249822548745378424241888602195715514496813433263392493485725318560835344336032799980935263013227984988309522139765514712197743649819155385670425293240538326003598137836314772826246982152554211308798869410760857615147723724360747483531386680721297844965055326635946693462079646974655773218656436175777216113735825957172142502342734722926843288563692349151449318445427829857441349324401300276006897222162171047438947306938854563441975192857194321478202542844458749634334315111025487511510116243801050212864837510219804173961069244886756959755329273315474506298371050951844297125341881685481932829483168009515771989657565685960053253305975505372783346917232337811751960227325191134733038289368427560687088183411501945377916787402445092574331283060329052098503608784870321708768385152395444885211510100158622093666147082446109154011558790567337611382000068909130463599460899758345959286358134153015372675939015031940005944998776763031945356680856107079302905587109864825125614614356303803515280216807356777080632171826070295127475849057868855369781367204504541510714678259835632722623259297215083375996759585774761849111078722070967534046609037200437728094177459047032084799614283045497710617354373024204279909339644779660369547971589157764163373915594325657262132037125447827483645574166604747693588515786599334284042537996001455389630277654527094986346845863271085181234321426091968710678022844831182707802768726933482093380463850035505879418826663683458426528918415235593774431937134862697843245928348598991149297118255835401467207722643817466695829879679195281386794388160771503565916779789060788400480501561089032346950265122073896561338917924870192261303303242797886081178015486227836400799952079707863803938487722704815623338242089623251845106184568556089477532761314046539747142683678736499132008689865980135877767395403435026115798097107035283574215967584247169564130579819818375351052029238595318217310244770058933660739036021456826778560276829276104420969088081537413953919510426439837985332240531613777359737261770964592841426364940235539850586878954170634401890776742859627368306568096551813275891183634561834382017191541632427685617020014278418733506061635441543913023319975264592736962615103080171264766317945550876856004090899317659663887452355426653894591090005494110948905351070342879881478637774988534657819756106197883247946394273500687524211571051880435857042036016431373776511170744758337075345034924063418908435040327391767484130692191677198020162192824431842769376442817940237537586523181955157726649045792601775852256300404921086197814654724281440954149675888581997637430157207106331367540338146972450287766221639038968718710850323257825140517598332789961441450435111479596116289933118522773411103538139520038352769907425429308996523678042238731100570936039542231982317949216684103395937328748925955375245229319793738141318313395122611261854976712250764856081536781720444718757498458358710851443121165021483496348177422795405173312010632537405657851978868314903465983611709187008739180099788331495547758375218442678460645795223587489543015674489575483115467689536648713733103240034160904338219127986069270058208784143108334958912595699802816185854873065672450381700849288036459394090698366529743760006369919698823331564953851932656920565029985846774496572315445724691698879855257189340029172660426690180068845166052925627738801274869561304854473168723807879730662448093056884852356076834022756704494050519621938071782588546548930329537198642372974652441081339875295495651835527735242722754184480982837033943973093408555664707392023296968947424639194462393364856470439019007835863326803398580553420576480173205383671698724151653389482517287246785720603518638799635906472736871337177863219505904440810533857613190558342923754531460275315720071063228854823618006660866778067881416747164920201324694421339586802100306578301366993677298452582651775772180302297753873511147073640005730580729811161354544553240509494286386219720531895132070880045328110471722136782508633265389245087225495825800809690052673760844056900715695025161751638748378502603384540476496935217755714568821756840943336300148877057115283904845894911717739212139029921037378289645552259868410272593754770260793953415544910389344950591212594189735245207266861460442957126150473483334917263835321810461788780362983845512512824624284851885417039906637619694443608983634050700211505842966103460956909592171675491990739764029829463194000097167533092259415252851380908655668820616038794572664809401035759731682653181900002458913644200179648279862705930865816564302939873022912439309087005653877957425065699486355517950963965147389701673569410855977564476289697545091685965241542217347356630587281145642482019828712456596678428861526585097703668492685896045318910041068052053162118471736746569132250468696964217664713774654419729653270633382456363266864147140710949001657145171761603902985689566816662577696017609803154009750242140063864598413734219179655250365563764602869646667789516404181000461474654690670450072898409408413010648345821213110794552309361618240458869222852103096512050683481338154159686859495612196683334823755354674233029887371273786899416759531793197444536072367475996849931160793215574960764840031343508839749270884685352000749398142219240001572040782073679613523220273769545937000628627682414117343998354468337173622273553738809165807016161084543244000193201150707959586591315491097733058435084566813880444556219780729061320903606162230064474202135717124754125412759367359572119453482771590135511053417859629086423145268787444138075774798819951912557002318063519362809986932964631374796597681733804205627782612988957147089347508529000792271598204575343863395447585198618667281471174878557181499003892372443390593713256937080071885096652387511978186422115660835771530289588423021248308965994394376841817374871893942100530673511160295618586623738408321837349535691497152516894376492059585766830372569421347983218774586946589504445305424132222177751909243226143822507171648469861787118378698468955465741884282426005745505594049386537583004408238609853955098871593026597614905509173871626371151282621995425522765429179726450878387848991465869324487268721620040900071440999755976118600051375265107355842487024511011003569551645596960252230147817974361762764961937439331465860486441869821346340065032015862794346299812261965607194806400250337834090938329364125342569885349870175853423891518601902821340009220512248885327173335557390446538676012087671332341137308154590785392677175340295250806117303317033073983352089536156786113902654479892675396608562296451930331421453615602282882838886589049271322434842694873791378019880706995182777661776599958990662859224418624103892116532942527720099097047586977154238102765926325026636792848299616433738162200336432350789474323400371978708361813304918483571246857508833639403995204904364345804264551244767214758949916695867907106218480768206848876415157769495322019905943147366708097479981795336312012082445272876195274598636476721494699946137113657530113514585234145499211574233452751169545016572856708778775517652851023836439134286877095031688804773255352776751185854933818608294791432241352855018005852299871052670077564481622627664849096335256336685014390120866905839839665910108082329985562609458141267839679300847267872738244466619261981565347482519553457915506787034397190709863458749855423705366790895612908473776720378642467777516243984487149084853143762194431644770395017501644158490668891790238578917230295370687185219428209440864186859006813472941149001381631364517090871981352559553834034668970277413769281063094244123538673095419487898125022626734811147037832103342650166169891364344411383539493849046542089330504804440314174834448463738730356627365964290123258430470110838434305452672690319558684766813198555014855022100014474920814852933857113247583166102531611490781899689180719251728720943822976919920165854762075457902744244032756684318258183638167091221997214837542175614160890020430290659049503927933047739544225260692826284406193307260848525789485175023519171669609404053364835616744434831726913770512457339477668464176519287028984690633324334008623055446380180733208148077110069516228739589691488150508679277681212806305236206924581274354791630002313791630101298221717552992605826530045115455961365594376741886169074080559000177103637495357879487126337245069989215443884083949833955177926059861774150159908891267545364257056515048146335084519361623368704389383891673961717316093967256623654309007569941862753899954903877569345881053125805322473344959070403366775907320076980725359747085421302343204869138373415041123713682764024711471494331789355235889113694647634212419533924325316810960459671974147502212374032707575311968578193200778798264966131075775905081012056235359046061740296292671580365525119105733714496897210417569973010784662072681120879261507050727958010717321363914632048151465470335331281349931489471288974719671236117790153915628620044054330871215476237019527170894656642354267420248336484320109628426508850735821614974373809523397654991389629857073629349122049012419206270534688431307219866498677434283171808798152212757476241522766319839785826489154426512336397541241083422617276993106312849115240974449577602778898623119864613285832362510541038078966892051496178364766492499159345510034316867517659017860702532079662924186090025485558016511240587394531718431374530100497650968420055279857731298683649430329747830121938417502002080341671466327591547768518426616841362796880367742336783007462251545927943298600955776449517303077831340814140193095128185582919951257563509413961981699039538555879189100991586150943726984233553448682960915831530615085705535091304395829922898510200696126398768567830720478952349300281716116689858790274883117386568863048194985680537577944340644530055435407180738284449997533569897033204815708129443439127097297559451048346238551891458650130206342204993839704701465575630183437154001579610649726372751923283564317651299222587117312842017516372822899047544541411934473268418390127337186847775994864881276041866750718192205830080016951635465927744212368854875312087150420123997306361808613961123718429796543774613032445384456491823481493162875704366132393279684667850656210215378390131534825234672802575419905356576589166365544695960322436706731795595080026198286749311258760489162602125084727966347596471337605885856068755791418221312762344549759385035920171654708461004524388279954545613953508648197263726731234257703468289456933329541418641334810553748173596445334259658534287315810016671957606979883759441391950774078483630772036635695596874906902277591629096659409947624913897102491587797568285047322148437556948182534168504926400217220569110744025864860506770975508067404684305458222686457572633550273653783360492671196359158545583652352530518395550501464046030663081470395184486034644770597949030575985923992897753183979392465200196574183745106878117745656424032360629797072189089184833438405685351603225224590425531359201304106525952247635606871782126863589417554712171076155668756403916830429235792555083923943492460722925774117332076607092963328595190504048033571492275828463075318560556320284986007442651310779302512613725561825883074482260810692191391178896512206711656739183849995758155588359720224202746361648538236303236892258502251705859458917184699585115286355708225693239548441206905836944336537798523982413276670184771477568795588611146060373562729370110357951025421881598779927419217190043818904950204918220096651655810393106245081098274779069430706889871987791130920997218044734353370935228626060358998988996282948237032286014025197951801699696933208665404834670985317474383392918425031195666091587809395673484009056152742659982232757711116890936528259483745561859720029837706499397662617557734570162300742031608812980449766621098113639115387326061473136516851082776385236119364057880583058830730649438803557988506448843350097181355543420703027728883906206465193637704196591844715775772852542914954706142661836114936576275224143808853022726718192253696534010901274287786453308893936274294485103591750356039829192079504965189057782782115977820252177823087187011545452273648602226867908719268074769772703198191840262447208947821504738667076985990225160096335856927257331741400140755305123055324543920834684453988996757787632912008016561805383636246155347447577473258664309598714322426545960445756201837357361899387668511072510280678069454331449532878079236836055696235796967466667663559251056921942076423844799014705107852633928186178582748895347206144287364882223217767218859818694458722581334761341791462820335417563457433053168035333622760351439091744383481398882643412955207378180428217296506778853496582705137466548721033738444212853334156267557587004100080493917708775603307395441440481142925806089295149425896473896110028995295142823417295261266838814138459199433837453578455345384292702509063457330711155008624622251708361752110072871925990061759788979953704123229103256591086385318531809381939026749973868452078737722005399741703369289625383539651721474455236958863879500093017033475337456837816474963465231150039738569810421956940840702361357795089808769732462023601772417489712815107227029524471291429960055428539846570228447602704964504516218709128073083886032170090074253801160485017694587703450578113429833631834329794156050959848511029190342173518465126111955477391537032731914367898112804690714203667587780134870037233494272609749136980187485563001190392772735179063466905519090436830017887492718350645283961815533249686638539978847458163588343353362392430379416510614788142190248027742220168361747315974156907226658077726939713719733368142046554166383533049818179751385354093098089818864393204381610848673151541082233173483327355454088518747634190270030528770224472048414576502311022975407410063284634673676719261404604607037088788291776048454151669269637512760512762865200629673440824797121453336109075683392904768351625006071161585978444046746074200389918372772250836452486578057742328584823365773759337375699035661357203644966038039734642730539204852958158328600838458246229197135132756660468742971324876829342352927169552999215988291594368420805111814702676731531222908519340747700664218653223220896432141068986547869010083153934633821756748754423810081961789119727790021809895992663674208928499362183427578389273321643170132078964377409147700510508167541812524533949626895334944648942754802310187771877587657244457125967972894793006360318381208963572462770691194749809957274808455189646761723421277458072021147771390268242643413754675997629008657091211933752279161032433318482222581463361796709184407100577684320475414286491408026441760933427526533925658134353118667765322795176567009644254993382229186726944460305772723128878553520121971758784817300498860891162336641616521903601531410860925752065236454535301717280761184589728490314518814980214955076910797358644582017217537011942087314986829951152515504502234560794656884458735633494015332376162797571536037475132795319820401515699127385108114357092203819068523277762709635868631958837606994900539591261370356181417754691331934855263637532271285890514177226886517147214365365068992822408151334521581165537730324884340898711160623836218708398144126798798410419797768899569933273894749177426053282295335891275635737171035302431086145325309996067516315892052448812546897253139791522380373782464616665490040524112438143147985007122439598611399788809552962019398111850822912926510033120338911274832276148458892706860684585699981578273736248377171344770914966453552093363773008091117943533021627522331039716413346800638763777638481033939372091585449971694925772174672875354427336153428467241702856833816291067531257478314138939145709658327073853907626808234380042538162134638627883643660653135741342362999837439815505519857215681919785982201551146380246006839861326073183220701746383505629079745172529552973036159399334634670915723775486965526276970416195952000890154902388973117100998804834439041254846112895336581807531350322348296667256746581585977354373106162429496521683530091947752172336140780721911017700189899617284897700390317282434227321886118314296128504850568904270714525923115577004184990621672847512316292969749658430076183852542509595448803948914035420178108296160433181519910421611327721170120832494347590590873496080940323448633318702701217284857992093425175328955011590052144655063709545093231492304032037211543703114489032693714336942188430817853546289007456814696071800023702070368210474848971377502042696499989586723152460594081871887088184673651491838427714653872037794129621103363046715949633988991164349340724774332509640464066456253124040973880863647693208792260842191202804312796093130554355452554402970288822858652823681436089624459806785454120490959819458563532071697436802678546141272730880680858148094652486345909037663433046559771981922767672953014308085627470012762032449739645664824504863922954494595355772139048979434693938322764569130448307737654488922574086323168358859715301293958379314466878710837396019084901593186449795818092053222022193304584814652971193972245046519613889940694822517294476831124833242498280383208687926543172431509732305417354265954752706742742225283611883813975688726588078781555260510549143282451681588134298495197481909380580882246285286809717664864726484857549872731927236743137324758534080015912840310213908295982958897189602925975725871226851453622989143592126026667568496654320391837037878653720445532261242153622034903719494296397262911177538864096990668313862307263588269442273875287005421709150217503833372495805764757897747939153140688602701218076271183253275584381626631763752524488259184046428924202481803293954869322224815284165558676290450251552997247272945943984071444892916677484141596531640445148745061196868478667039618403882761088478071702313936522342257633359915722783817324494383358815427610013864254098269139225948346303606485338701059214533570024694843203445138398280306684662266425884615354367192637446391224938710716136129168241322241803544006717884305424873105749690381175489807146567475316740341125684564155352570545388149847847319477684907879886066912441840609826732388247841293041795436516449970513208860580098894344320824516279287673549627951121514712696032863207209052307539647007682212269804063574765961919474466992556831748610800773581655440732613858889557409382151431920207739970750576532716468424070024083135558429552456162077859199277520259886151409312779390407927097624337349166618259348427466218428562200005918835968742645147125322261823795617580635369276770666779776014419690547456383159202652286968302260697271944060114174989454404416061144176935714199652066663538061569283032145558760528719955331396410626058403574768900093405480974104732769336643448425869587889960013068266334423084284260031021969796450734687760682911607366163311861283546541788105482266786797058971576230775523644929294763781665750332704667614955835597727671701824033434102213172607498341058950608485899688834908928441326955277080827208830295058744104431570210593144615603465089474241238281044520820514653953732850310923545412762104396564942251734394295012870700917643661136645743532490644598930554868498859060370989391845906902437013783623172990583697930066146185821626215632110123082506994021633480060319423771599439885686550012402871768356306183558634667484468855038058039976293822512254077271204381765596163487524679671246538453318830142810501603910664065596985588377051261323661815534835577145176650324067860391495093837098918908417128153311331455335940592729949779610156150888080152699955880473766380773325086481577628602779507912800162241626776528737977550695640788967487993367870150120322784829237969649367121269261363184574588631665828582229433348898453990071230411786699094232636737667435863573932735053199787845938298375534524264712301454115088263907429773213768471881961567849101804153061879741841403863093415181015615071660835897318113697793426440738798468159633735262853488240921629156480886003488815978208911752518067379452016010091511160375664624086054536865050288985269737687536393160174958549016965720661187662570358910710704443811691597931871543632768347983448394981936185640019785484939280233362321122974866423292593778553394708856496623737891714022216805327241281112786853742786378873727632999235784871193147039168500385528465707571861137223867697928404525821110898745087924207756813386404712783535204128671603301479894541678347925666047193396300326184315649330342805227176305587015308120044406538911949494466930388479391872410624018840282141090881008151976511708595659572659223570451345268286792820602972297595473084028965384827039201714975155839994505559535115406964767567145074137953427459143162799399683618397538138785586801602953373216527747016106251838600036746340863512097685724239213642463037009863221321222019655554076911179309891925395705903018084319097192663547616392407089877308192996298791746919553779383671365115403243425778970212932576129221830099833429596801844094475098875327095287183886582278658403241129562861673872277606726800633021357649026793762010322329434200553173432403298518205206585415688163720133041264672970178943585909793752733062010979783471994626515501720681564201781050287755653482847700190157692151984980262279032987270921196411512593917917542041309264759107152905108732568354843930730822785259734336925398580840813798811877116503375863656970820058949773235134361612282974987536149496031800332819547308212501450025609422431090458256657193842548367692803325464551240247610397507993321549902623319202881509277641218952614808759604485617579445364884789382514669261018737865478409990554547892789589090005895650898403872213091780362449151338441140768396774346862352937821522073721036920629573156509907972203694888661361616407533821702982451841936660246006839611975964367182110244086256522051939339245853016242876883184614911128968810008665544907648122935765093313451869930341189124620869098796132608240956531626693793947281452652034630488736435699874258103642787789847859454125993222829564221876844402068198487958968212936033282423844649151288534805989216516460060508960890460352354404679329583119551649785951169045308446413655317221359981292073449614094221251673899944292356166604452596687401845069445305406705201713509198975262395895712335984562736457061151705909656493847576890839953461688014402415237844504300648675240339871330579158164413145834965972155815433420860588741537409686975894687710032559840605877500218935426231370212245528839368402601544749187526587610076786154008070591287738896837287480037927959617005492670879769642955952257472470330303045254812654847333681650047519400454845097778025354241228036025737125616858125699452247490946920694146730122689813793359095777201426699873039957496569369679545621916112997173901566620996509175981383079717146873304013751099722778523112573376821582803359616645903968801252670305929070716510553102539916699477593095892969088781222474227429981751459748203571544466573588396455713050918701323942014290612869774385662665011543177927878461423472551991434346353763744280340046379005922456398196784007254423683971526324375974883450712905171246019934304684289411911925647550055411641956730928530888077512566471024287434989280807285718768094109368269512908363112846406209384336250571336437584870999259814645283124288098223712085768045204664505389947545001768003662124753398636681638867340732834686426906681137483409728678845106267647222126947355255640167413743983714470382581991773294031233253952201382543854338704320132647640877753749057059378812227425206260492056962347162724320201228255406486115541554145454529080973034364700411819648359559764217211783854622961412090640129239511252197354969876768187998751088833835989895671871847940288353592485413834027381971137039914800114346356035162990777570743738722072283825058856015952583376141491659828129834248548670669060630755548579024590983400789417499419223039207475104158308178108188929363462732484117485023638933582282708464768297199069758960838143874049156037418439556942359282891529068741965720771836421411092984571420360143152500180544552007768738221317477793025142119267054328081830359234746914186444934745572774790580871682991748550038410338192693569049106654574132724284194582385041025503620184881503616036132349452771060470167546812629492724608795881912096616162112746585197093318170595291166968197040276469738510143635632792114102336091039825639589654994703058826560596368640362049111649691556923096651711604443493502340340311233918359159924534020408068816551951306779807079173337483477391097022354777398532456367353856400173979858923414767020609908794954196660658663743539104822251911772523008048758818489079354893380558667838565142337323518736569347547572077580920549206391681146760894550157226802026187447909196683365942204554216690110017128777608031231234428258119978124926073831925233246259260179457054418270044813656556000344815955861797517866200102527891675871210860042900113743143099557888552457353079123440627739767727019320656618479169372630818330354940879136022689299606617311850432621755274285931587598480080984987036299535118001870895535295846760648622751294476410655451222982132832509499903467773477599228142389812492304260895988248545910297548534452198928461725662839947264355937548068054799135705412790881981264722585251424247263379526804071986905269414626847675287573781365865943034210499446261206726778265306138311963336541409008162873593577994165883362571394270344316022278866834763613922437655400435899049098997977358194483789113419509848091078264166476951300261387558116293817091377595846381828214029042060554609132668781412785966020729022154843332561741052048572812763961238356041820665458607045946300907400846839079972096545795257228192409593223629377733121729311301951049374659957506784877062933740618310328918551183682943422700549114181748564611924933171213372046138892600276281502773681551742157786408211739937039054099201524276806243271283391015064572149379762570812030266168860701832040244569748293657961126299320798538399463633714710965195557431068653761686303798659412083664834815959174236194613773169580614713552150544237764907037486420290060392489070293485574140502965425559575693319624675136744323896680985126465191518480533228312196981901070344599579980347812475839082425831299710836343994609634128302774312622278282898348007013201182154947699048874570460419226785228276171897843248764867177489401458035316746426862784701398695058557122907088735527447616154989027018984479984221481580540590051192495881202062001977876001435131811307256518172363691631775598480475878431854878853108209314766615969380070753374902075694558006626950473046560362908962667477634459628569537235077479204930113749552151304852383297618626155693418594020834648917353102139067895406400108601549843278796682411041262464703971320600000486241134939517170176013838250424549783538881664968556706495681952466496555039850160113801472811058231589872355535597310437842808295553393615863879990687194222645370566018200766617771716261643819658094353348657815617289171719879232071787323133196167933235473581159054412260031984439641086264295263147631638468823944586369778262153002470223900702691390381190943769049654572669348631718185955063991398872691736077735323715285504635676849252314860113824781575940569928145074340820197573975141886669607586013339112764181663922138920486276679548905775523612249136548154504502240903957122248906243340596652227118049125484853390496957571234751664584922588042988939785125865172117244215317133294716670000784112147922643857834731280566888539267750933599298013782570886818533943285032063153616209367280436722527760725671461346786002910702968873252610147206512637847732189935427734093207074827395448607721152387326302981980165453270458378925465717113262411524492221565074491712610545522379112213943263389615622047061302616834710930344397406554706885971929438515306221685201891687391986348588942617127680531182090979375842317642584604709526970026360728485453279515760168568054053626687826775313743064157277945042303887606841258824122221449503156345716177817064269140413706345467321287534453186218251989973144956426770673473177187220205369358627628684869447693550032498833426093580763418305881382191331350546087301406847816472071019581663908191396806590831622390109660027649849899291693158044456280848828464379128420945316262756063567817866863768869372684045702954778010022466409044601465202978830629541914792211682401245146636160253087448755750433640943172931972211346914170984019892119361016815004867881747125986513674247827314690570790321907584602430399054369987677659903370959479251635731255526953233830653687333700173346711923097732443490850392341392041755057107807071545418871606508828690251176917278194668886047209513864555858269670360116848210708896444934686660704394790923472695875809332576152253795559918822250245034477787685182444778028721660063878779926777535315743284389676009277549160209684811804753624780990596115319242307675336498851248867976486958777705476321235627359013705521706946249904646272038792026326516894915692578616095491451580866935034193857641028042810293899647253621418278457678405791106953867645452499775650254138506018011679948008140773568445279869969577967668742203220742277745313711866496554195505054694728529486780012443438803674542448612087811640006353259022323211720540169137425622238681371929088568285149687115650480676919938872683557833905877480351557811573699171422150518066236863777380818048323364985937862308239087452841692939445419925908062888272779402527712324834138865859422768331290716296297866357610974762896189098599610787171470922543438553004903367356058731440822212440833442974172092597387108132507202285778869341820768342982286705708856395980804781822083044336741845478377825980899329057601317262204233470948187261042509810957565268181603493156635554238517577077798529846454802238462190365068612875611464312630391656915287073917666447619465176399003320304653946913736446094544611690005490435709127620577671472196878326409755151480188577767437169402744227918121148519065662995520923459589220800222493180562503549290971576452884107228469630487105320328164146238611308510977716978269821797063572239123074780676372694697703512772742512753824157853311266592456557165136821467537153323626672080796317736124481290177943844267410223100657289744456978801054828110927329763367541639885818941070833454911211214780603121539565178947209625654661903969270794149931271789111429657200151880365940011182637855947585559923368043613394057309957616944319491104587744615358698891528048063814887516687262575675883620034652209818303213368382702980706499414762601687139240052527584026390001460796373297015366863352420628919631425538397200506210309464095061679760852817590407384047944090968027078891531358702051983581072313869239620682914399295946100450585929087778079672343555325634862066054863635270717829971868374888084846330019081789541117701760582798157853877520785022403309026535831724862037095083333013556380908115785061918479699527673078324556346598609686906644519928076578653645691135458857738500589353814576613364616560107749581380436213602402721684846829365596093816199741995760404073492858902115429280269065596082616542404390819621605257704049193559005134230172619505414648769689109353320037647836389196998253961235002474661052264144689939920862847715549942233291777268888652231080447718122616570016853817933401136188752584681190964651609218373489184301243856001598191288972198031503784235981680342770742404690528890810327577384404078401494838696657592379918424168181381810551819780972495984423572819299964758001219621027201434866200164980260297928514500204318389154427046549627853434869032297337394900289854506233661956553293075562944186371512011817265455984636584137421194487888219995070306819734274670622368188069640252521150119341919607139853949345855908662881655661855633614618875899732857864763170145690225025558881840516303325778458451591567635628527427256023803673604603484476420098338357760734229742112585672175525291456388743812946468450261710091140641040865146438251962255031263075461138619354163491741209921560999038465389583854284625568060471319366623245029599535858475490627134954304913077243353609659773373605177803250519905348048299646276178618985858305870414292179269822818200612365278503202907711959238127307242088791938692534103779187383147944419311129453340360989741814485958126548375296362838027107297858523506542133453960000772963531746973553276376035150322716178180402715769846592972420642998801189974116301696378110210577946792588975183018318845744501376911674541916794709114604915354794144098534927906446456425358021143042853381532386054457022492407586361019339195513835315327558475989390890958891731120901850453456236722757723816454138240030275660781524181518559468264683140070021146081036300765696668862974078355695267491885278494258416473347985587790818398508084293716623408772841497052437299126937181181972407479870628496498277050425290237389857856967092399650524587029491523589792733321848126079213893407009982804965493621920947381234869333615409920374240766757172804610364656994887937058064700103158912017267297260916871718461366119522344748476558095197188559327014592176162987116944044568242719948426329611138169199546226374791789292324175081784891264667821901061990291351754123703181698323068513516031829296447110417663817575988301947323163066015796988075795276288764510685389577453442683004727968706791606777815186686801284122284520283589482343727749325410533689165242723033262527571098418483500550245810082295135800714841139973962085897359331225256154109917904191604171793255990721378889759400252890872333494764542642258221847709222509282375022761789722003110924896007069551706969351292845208760538288290402335093246716445446885260242328651229864660288294668525598771056118143412074071540105048697622078864487097559313464244893194916351913918992411867674110115226463583073087552294065684235975410435374992579429463970647658982614216144864319818443498742857290524413646507035732285307788535233924702511994132352582756938573014015501640355898500161699538053711445230533734804420801777498245890131634122037833018504241837155959580463470358085098216818616996633106948353203526086604524379629224640449992912325832671029032394182003476207759388145548474884489654316508449280185027394668129760844060460217873940455443635527792285741471057791659738964413184612091518508023704326775781239477964025960725266488827461794910486203650169737879439247977066591411375521148314803407871231897797058193596106604715900502966966833720354846337725104203071974073304441885603159534758855136031016749858088863638842957245308412644304298485742482394198729813302529669912070469426253500042489101701251015700760380040544394650446122965133913240689775054639947962255397916332098630820360110555454960414996645698031022879895945785308562585823905943085645551193077493058869580826584417838751656947356174007540299015690229991390308269905985104941837422700760735523204523551256992106026514280305609681872626961711116352590018112983079933228937985168756616519150730881747896955991538269972123308232309431272186084439649995530605415433065671696463800221487479755521431578398749903414421808758673246036936130340921600263917189166369554266679908515013954258058073111076827572740757960736412388004799723404160207748147297766982598754492651682362843173613782960815983788743100000194936499315816756947300702425243561253368925231271534306293163586333642785350551318599312403752518680215979034587259604898157452080231399945959119600417196690199755271129830467671982562701715536067917441795367324462624401211253927195320735313200495614316046375121361621805523203716654781589242513192807892757969280924985104581222016234859001219586704593495975455681444354487136034463120266101215850107379201001841167440228844498901376442890514596559203885680468905296897051461103275810600197917245378079282337774934417404471483677871622747877921148142890729126319093545537019626273106342752708024971034933479557642164655641586726047986444905012985490512113931276957452998277721647114821191981445957152612142148601169850527692048192695799598402380345534874383115786303491313793257937119146888502056669007196686442187732770234930036700626010337459724744453578629248016806548815308232942873590873569823809846491183715488157137005853635014647869212974986231669667045378765080669123505319399566578148243126523172799073369142473444411892074972809863895222563285216281064203801506517868573029412030986133132092758650596582239570800476534493871766773277740033540830429634418023763740738624729695553924818577260351577427138749604858106875488627540410195706400575118346017661585794920812576406961806434816036411058189683035936813222172778809568834614125307334154757276692942066980978594985423060238741911745993633741607746932861230797040560477048068436922500547345103508909537152741297812146550948406465563086069255108774222026502566448257875128492993165692522850818823757918586084273781548919821713669071361165978679109556110819242704000913106389088951011413639587353918296353565270391127643067847399354536933660233494853163233201969010651715983238181441124731898659054581515518977628883873400301532671013943930567360493486757169531128637999761029009405217591012074662328221695472882852795949018630611947156444547780806505540339674098750993285786715234626120403230274219840392674188446381320952132242067350241236873380192740727616705592958762506631480378079569535787901208867327768965017027560651444845864761298679564760440306176219058741219726296110405115692469415732600336355957527214281910389074043101181126018325189792240713082014159443725131317417841839003651320594818834541513033636540767735654611452653221324812014893065582648004659687214815241484096782023415300714460244388848724779799740123739005222398250627016559430704907173559197082253082632964381393554298923309591292666947540752872608512553877758373259414328627495717872187134459579249388168747038656401379684856633427190542528717597003202293243624521451904145686066827817877655236494626590423101973386888369034108927220761371855562616902095826098478636112398939363812048542411127618306164115142720889398300887591902573554938459072673824233145918687774378347540490382799122268282764832144522728360264331445335193366117381411009490803260805597745226617772243935877825067259710796608048312480661159681311733788248123826076949850765078218326623618606553499220018398509529511812341355240057939193076863345452762113042484888526294681500990785673056996343143950935326173209870866947117199654962998725730942947103403902957118368232723547419669983218054594491036029789626241367052646088492667767848029427686780785509352735951549076994034175822062240242620152396452703850811606916482795108460789413678197672984262408502063215938829420378695448837158153426458785256311472599126678154044056379016101125142447873510476395726238119767798907934147695190984002578849846879684993887739616014786560786369011185834938146662781318873445912460687881412135766684376017292347088721741574766051911457398922650282571100946429039786772033363744416137440149971243492707453646921891745284552403928623043575608287354822219148704044763438200836411097076904303797175102853444173861726347804543264676631886357864796212788360799290805014583388956819998684407141515468887794202353812601147313083556800896597603224455158369387179853183811015020812833250114888762334851074844281801757553099804683649187247552861265313873556644460298679632999441065092673357024642578766863337270554338625658948227122355119512389543661990301190955022111101494099678492638402609873204828008045213533371314155102540682777318289326528685585311782143567321182900469669522024305220533529185069454941809522271406508505155286579268885265900216632352343327722807229953833430549448643033001746964639037538447085228255047040343110861341115973371904947179193602743776185795535969521040583643024164689854318133339120272597752807957484909400713540828291687992221476266050814809287809995989408944400047287433321801399863618057739595914406877171518989632654543729035794354117273945118448565131772008837950031262994842470733452536277846622454522741301194200761508987908173649212864782982656684070615603080517802217728305922202383750511415200657525350278780792652661728523701261455803925492294947656999557115374116809240349172207704888596790536442941786732867332761737650102234277301276727270634971080357393223172753104337069716814641039540964839804131953105490018932416401665274924340565897143192923286671825984918964353032413301735672087029871812952546209545848471342125011284230784946237398171942990799235667967404829966234249868083311747049046873437922517944361534582043191130535180372972438675398403656002317554595960024080345125036107351053415224319055960002522750217296109328531548017820856057001811037785264900383281966287868754059989484828475572029758903951023902670925293383645627559250052424785346189095386043245198371109980523888538393727107457967727461733007751114768281475581178580459532272729770763527776524297247535398428527814289075642049330295841666233724046800124266208855866318308012922327969853658716317405354721619758643869692665230659677257382107167259320602466941489256615627474012019404194663371872975914836634697772512043681030959540515694148205983324277914368212223344107927595075098244845568892175682156216573970979317432413982202035135571034308878839984329241999263950592988848598186306975009061082404824327536095015429809587062816445486658371600664828856735177585016793629366601830719191019514894063640161331866342196814533344828905566312915023143097607798421555723333659201572956533777676316996059204201542075509956980062727178917673796054114666622843181229989872353818872796309081363582764735930870605838314513270595116255205821135851118208402277456639313874371426123973657938654150404263656494105822204033556482786100753761658603577854154228481555854833363952566760477676741987886516055850126290840993649156159395441682170952133927791831771510076802086570035422048017861516125227395650655474316375984370610757408400476121036102056614660942925825611335218120175723973030806727309136774305157481435614591868113000859311113540806046955644601071754788335732094512144183970021718269927744676115915061793203944573920989633575184939938819552742531702861134961519716753344320841068504398440123183115587025220071658796267434286164387616716349676618377647646542985868764416098155945064451856754473939859722835453153703621443157568832580101067381603384306166310449234797615461714992461862149117960171758047679431818930671679938911838418950387059659719308688651867397993368454751456964197384040632310673013479693905607735739288328953603680687050792444994083278306011525269393095364164242885282520181200437280083522823778302579457120002260994350275486067802986122458939179706785298451915844245323423634303712774412259113298424748754213825889055487875628248171868453234159759385909685834466364571695459923633910040414664049719616548520060286390288799136816713618812747631312601375755845034010158804045716024410047592405207196295296167049459104410665258049543665097803547382610787227092147586631728833622148072838988488866226340199931436037421010775593561013499306305555118385892848999151291533840785531588913693945891431381240100410312337059969500538780159143194580357664154696436444377152258389940648999186896181790076514194106879829252196788075516960301489871981443509458232686476939161194058424972959546708978484597468910225151228881111026872617722924005111182064397001640487379585023348323841517276751379345947175784805824489415344208180167597487382302433729763326909204899080243006715071304980066847961673198431335411911326442073901900369795735569647679785073289241781190718618129528449116887210848535214946246109168843175331637279770788289177161409416884648871738247476928699158533901209492369458850135200272947620133172178299154485125724235490834259884867632524261804803429128019773307658642710108941140166487279608593528924531574290854870146822539439545463673009282127213883005589592412825046534518180493446107893596742376459861032685168824911944443678343651304773317945985714595773812769091295106795916785838759664339184561338021496426752486343171143712090333170210424680707194180717091721024221619462001935415057728438450396438492113778190220050283430330570225115112366177435058908367307929573414002878363817589395075936460645541254626631436981831729350112202520272833462215689825643773671357844372476105871301977860411431918446702420768670405224996068246177129000175534027578789859832059608388582302111945253521027038302760310600569601821482529022444975966573869108059486984517391651472416204241918797533208422823122528754308918209930790122175406851187560172281832806517488089474510046125664858905544711811236169719965074497857604453806797189877938951667219989326648648949350558586942894942042101921383946524309694922721346670393389547245584567562977435045915549737119498408893256820030014001883191743487670430314647819137737433723194135022684790216797939429345653535755789401154188108350792103218317483193002656754617801156963196665625881568370464101540723185827289953547055021755828718026286742239985203722508082829761642559226195094972220353404077371335574143071578058447351874369653022473855842419138232432878947952011474191462737554623014781452105630175480300039875560209947894577874557578730718491007262121063813283619434107363698536061186374157276182374807623856438400123743088584339901844966494006140219911102185790167956999720035789978757562096656227611329196165920890202984220268899520597990237937086374852287970564682798239929265141982231473157756112472507712288116136633086033710963013185671808155463351600588498524356215826529971598850236011908361066669254034545623254950248540941419659723149160967525130359793815338250192741590963037717524764499647734254680550226136398163593736360251393607271996852376136097590248875542071889216157716215674738222678052920794608824345652834595108339742180190766726842754942186381821038023779169094007509724166012680688262652069124444917478420535152636650477475744873655827338339399378933238822889729555518886523971094899316652919446438474103766262250086288044386727533168594429331182837872858249919148326843869645323036493861284564172786410031922470610313576869379299907092354570906503542511407748501328365421509132676851678760431114092387702826012511758371091459291361733677195298563387680653636668170816863837427524390127410448302084852743147780178000801944887020360399018545619989200994845908474703400490653979418959451587308580650798808565476706665847233455293168437411325004962394450920996443349532544410886468284020444325447566279818196262194876558562762086276525208168155144894663136060929182373696277225904904271139524430769583130387594361215017034467240242327224056230905730871472666129358213891796957370231167439837898690909515024256224075399091762928355079079876235953830332906457789950399687062660910623747282783802540451824376411527374694505074339193345190242764525937723201094055889879667121955202966741649035397839765913121381645005718176795178109781740024157390316418275673117199366854914802599308810503390147103909521217827670840722134286808111167751445187924083947136258601065513363702753933825760054614273431421196226443738121889196394763359237413169910868584943287422531066502873567253132493440398099352447274294005928193120471783175924120343407124592554641773077300474174610235393270767348017622624035424728535275616954135833320605027421457577036011021380710274243717990494634677478545850522003784608162486945538556663471313023680467159901102984953334491290264042653302630042864307145103605215144533371843191927279940063905161723510794093806406459095299430285577195852431088930256392582787925281302869503642169262340782653652938024060042603649370100466589565986646794199077134151583977293726160516021092226481977761481515001645863350986983262111097740609110685068536997755781299336754747758015524741076376234174190447585611231667989741599793863087410077862867715577751642939753397402291961963643380400328161013097494643073072862708493774687767158003232819411761999904900571958649733182443033248738797553857067246617695234450017172979933995939515318976223955388715492622634120009939564407250040451032233499317691394472713088478942976456133959783049190449665610086606890354904593485347558597084323160535992374498952801600132965411201507338132548563514422951419249574379969698749537714704105755850768517147499257143361149435800725334802153236579327683885285946164991596449717351051926429544922863163029628692833547245648548093432339051951937146974441363063440761001228202470246796808960180452737764503634451523743980507718099855334791048118782920137765748730913411259060505303629722041373785145592369243040524277331729486172168794798764568345355960411531135707103818451206636311993000237372963347502052145305301108930412461009392793356737811690200049119806479738813132882964326751680481026001770507600414207421429415788536169106284817231655674105925888820408763129739979762090847228628391565542985555155323384178535744734322334910555904055098391139619998660535181985346034584855718671678570534700621671725226913026369993270089623739771473172739503010641657513976563251656760172576316664601114218679524241649190563902631426518899208609444140265679882238024543847456946853542186299164796324557608376825815886744620608450244097344697472297754131747814943041664803770649944849552540056172412047464783635267645068025168870569605022757903425771114392202005291704168177511045941599893400526483216738110231794836805026233774922907760469869313408918753772477321777523832902238577928366735693344309668413343068034018526256285230338300032493123885617466367096101185993963760677840616795059510308007988391608469183051455983321673671039835849025423396304130996293521215863698855500165919493246224011732067704846082412734223715925417239263718112979244104134378810594775604972709593926463657459484805528000779056321564740390816554361402221677869353089222784801108358759151126813330867870222483010111294797731239868598853764537074848041986064498518517061479459771037527521157536858040858662793882572970376490942559502267060585067086167439547686303896076392507839985628750170710597460941855534061950869623197303619231894537111486628375184761110113105125363451542795817293783177164301426439718419391279125846923598506172432394763570255469659266527066395433924749639241277773771374199032814762256025300649474519039245781423200057167597723007307913345601710172338746854743480381792478865064837429265188540977217248672599145865486461974499253703972212984408009722690527614961340611937596182116807637017735687711591490882280291646040686843615511997187835782329477317834489219527270764251365981044857606183984179445152996501912010548475516133178958425077619309897834829742458704227601987980977570617464072954061618197189337434715576686472431765536931772034138251047554330427219115702612741755310118726816146708069515733648364774704925072402111671783698902348352154422365755319255530091580188497180155234107254460013259206234405920349083724350632706675421895687173815119092788046239856202785968374630373918826911348572992027135483029193662230834043555090293377656738832900725050842971015198523532442581693498033140499126718792336275300907610705670453255719555638980988516332366790972573391771824906366323827277581357091175980596659805581610854256543635620500690834013035653083354076174880752244831894648021426012631283526616019857239251397450516617947136936933320971480152106280955583098954272327517097071184458844656739281107632982325755260810576841505331614630104473428467447746764654358331632809618819088586652584225093312901999840050732721738410380984287354557328475603629725863894162674424475741885629731919255529730285546124725373972022922047495960490268853104566390955469556138730220097715587678645810770343938322162889442383950432590385633615118432171041045218150225911188044962499686779990186071258956156625735038859200933962538627819909147824903642198220681293354925561365749581224486499075034267313752301496585348254486665274606459208260083791520550607068505442374010984865895136593423564892358160913885637115801544953202324203160728566837289053773941603893738619395550362239932251894907232683747091604103674031971709840209081925457382372883117179856682421780240796847194906047409834349078359227745175006092747051677498031898373214786660466388151827535148837485678616633380940935364728035423839344509408992132402241023158717585323947566955773523926865760841263845622766096442892483738497648221288813298698480417502730346970025423566180365155889482590615242041520429767859585085187555543569518185190627172748852547692829699141929895024579983623916891316430627809584082879370976190813492426006819591299578717068188551706617425155592456109032867682792369026295998827734749408753772546095520963462490412483589291946860645481305419082644346715430926069332658415211371457176133030681689772532240691322325944520387833585662458216001661854597292832300063663134411821439156732191547652071207559191963374376762077394126874575357521390208064068131621566402652658616432189031390780733110551185185228067582068663757717512221573908103976080738394425131264201257436375478435681212229691500067108448370954849373855781529178771183600519501630879129958200076775524962412407982167153298674436994583272048562474657938400545370703382222312476393534020497473672726659243293300353252461087703752769411401091917633017588672442571292623204941865120298093615706444982937159202555993444247975009039856670272354469197309420259030255167239861456307102327254953593357985933241900671445655263001442591112986584879475290371663895051579307343423966341832038560365726704413998279716736011910000399951842291461661731076390651948762804811345136741772227660049733743966695233486250194685690304993877684806157625306279993986587127363980864005806147575867020136816835163384224778224323534089538265349302964940350971791844187990372842040480415640394416267977454845949788982731771849076298980636314331688216125535828015096974878804282234327670360383583496252603944215472565965827970322087365110353073583058527603991255857372549295728148740748629735827889054956083505914919667617474506772547174280996411112642777638044624863208150997822553436709620099305611254414587374815231275100414222384985818465577926623776250388301891861867855716584650049931273839134175899559608130549582386929468596956387487596872602321323986809366908244707367604703205397093094503838786557215654686071180542490139330982047093947876728912781879141483892064509913184895331145110104376471579811727379275608470311040972501537870937115201041998679849459445062661900653535057560461831671610021873527841414901521664448683147809747200209979363011673745211206789607066478248733875209984711172984745741733108622341030743824895660375729363107780029911983878948641211138373546135653691895638079899022016810422187327906765523566078793756444546577373332578719138218183389705873896282249480860706724215203153239869557999839798025904827022287355941698780799708925510093771361707508301931095212766813725934279861802912824651491398473060812761296555942526849921401286895931940203238171132551263087363980959551502657971108931531290593087670863558582916533529735750845178512658523440642656396059504601438204697773394092306045203962670333511041366697688186531665840023916798115768090182576697896155724888085935070300752145312808573109946296393954094182325643425571907507176668071781312937731184213059070486974380854004090625461140748123459475696022822797683529526716476563173700260001242334863472186187616266722385003722128306607546490456540437713243229905588920648572186406412843011483997440756920898589893027472334920677429361053992315643172339251888702239762589336620400203877530570644660073508931953242854053260789124797084242190058630118622710773072329406602102462023083640640468304217688003772112148709466031188175748707035991863073570817027402654658266332562011971719193390142700369588506209661147930197048137531111484712384258422515438432773544184340022649266123499932929227054195189524101741501466085387488380456860562609424780160598633966757845915519836713720186238107420834014830839146244864353126996096172670633180263442384594103451527121925222287240825669989919849624425548152969504255779741371178004918533145762884657325472971614187648075341082218553276612260960607256436362734264777757418524598999958580049988922209527163562859515715206733317963965324742450645756589689334291437315267157817700426079848092323215393751264393978245792158734264987627471480767926956294692543242902036486196081447800458699109931100416564943295418960743531498797973664047054765148904610692991880197017581434524557976625881019568760988345040419162030165405450569544597235239605820654684343473642747196458084409272157683514968005418586752115416050137070094941921138453940506414357991970620243668993124741304706346577111396414874953248669423971505492461305023116590449441790059339351583106313694732487594489604693040265930996455207154987300860423114145023367534355394133729809281313713441449605512940582867615280296368979885133322879689407042912836169750047305637914615523157224012963290197488698985130291309866762315347318314100383286573478747990114744788513612413240220303296683379240669002540521244590251629868831114548077132826189897905832023382842442761138894077875621593064423331569048833261604347752420785853246472120984898976902737732214357890336528742929415996555881235805530689787430653922583923622268374697821617996579506475973761504065554572712656381679140010618889657955567194481953620586184221593849693543832739753263910348622354900250661518484676213427013722604626238799317142675459817334504212370186695885343916358717612319383845330408534789147301154593422372061308019644535268365744333230027320424728145522287812636511437183182515919535281331361524062140031882749412054618557369924200349337117921449414136726618230814096506215796848429254779677794409213619813874233245136763521789542541321004809914575251458800257038251366185643900987883136055186350888677040464675775903251201351931499789693086569848964044982932875849603218528305511592820332456659142400840560852817938780318944457248892730781786954733071821851767188581276262593986841401320741024100286129245022807185918224478650589544195243672075224644978479328681217257105244605756169345271149409882999599998083151999601943687057316685707595404270447675698921438946025292159203228636934029837928006927259101902145883126464500926067749349207731816378002430645772006302183203105428857173279926842593464500786298602989658419511530662613911496513524861374793841319329062765056306682601537597996998811407279929514886911102549485577262935125340007546259609489474686013491632951821936283790151115301445650295339649180999233021384415501606097090656344293155282654159054804638895926633726489154146406697438884679957761713167153035442724430336859447836429155877008086298297328636713753499024582796110768579145724128169873217023217452897799595720077337012206605939732243367508637639222914063280031735446703212903145487201440558870302387107072828222745175311024747286682377789854319556229705971971536711942759333366126247429877594117678804912338471379609569732263554900422811387647103172438359541578563577482298769759898237663375908978095890979842549913848413314669973002288599263514787612630570194864854435129884920806101184405488424523574076049588385272202812676489190338631847799552355699811243683730361818199610163482531990153281153211180889621182287339709645771616766571205578982925176615732844812674408679512856581742646908456616006701346128334031085445090724457433231072986835176128894404532897912333839904033154183914543828499735075314653228721980551753798999869609503164560790552201725457882393819524255861459638511370413544547841731080341685061787320542726335935246922865676482438291224421188089916847672737126892996959414900722620361791619002841830663801067110806898303994251301966447549296148059686574923813565799304939346745707465122417668090466056771316072573283378913665735266153337399274727009953837254340976044506572450931596170602614120320457218624908360292445810415037099382952101980534917335596092921500567011602507123996666113623459065296924115149926685993277348170694158829989587560805748235578758980127911335891479204988984561504525304694678362937017484254916652335628771006811475096431486569632545522083983177124111025027207098568437419253021714530472000192857332614513374568129662048163760667824715317460706155623852036841200842305400104229260943474805446712319261714284005707000175653520746086058188003787920170018345145346698979434205434986599584079524064276945644975247740084142494094106594878971798392804184618562965488431263639509796527056077721892322869520151976633148339300001244706623126695248711594961200144108504635167316077034736081397303403085927811281998429361367028124105688036570454474166332668024473520547285186220609579026253709224539665272916048599830200287167032702330523407524993209889821245290787254475043955339420138290230378654465795659845877020812182658162333739760363158381420560190296444027658006557940272476603123104620819932851841829787083206538164229676658147744690214914841950083140264552533661073999540417540279703204186599448492761486243810987813517639157893228505152985375083151665131487912714742839799489815381444487339268781542609840721929426092626936871330881466635599803365722532810698510869576176352881132148360820780063628365258903137321976151368194748076789550934540738164738516472369988344093569776434913683986999753310194172283195697850204289283602792503580291251751721008874817942528377348604890923450694685116854670341682761742400687580734524920933139614748375341049816773228974181211102299921145006307204658859256408444895561296883778957027665240361440835716068016322932602416295008005101901583421707313233910514867387718449080270352237757875528128873257331858427302856813261933313760984196569388256123132613073372385282883541223714767310187053124473408414481989986259801622399760988240572496058093116124734838641810657471550866776170449411353775045536533969327624697989034833323248795847729782659399793293078277019816299288144957228888919364766672658086954542031517481047112244665674924613738238774161030986317862703070019065409932837125493753923342212997399440867434128157284756559045121725271462233220986716128196679274063758382950230442443120461433109279137569783616081304211044270287478096776152607766464786610410980230823931387817021602574253732934582310111671356427669028220891383248132162321734643640585959026735185872674563043787616251323588247705630263248050678807643548544338801321898561225467907264178695413759541242562922850070255488190677674896741787107570472024969984960173073211461965168067350158426531089714575822911729822460334284243394617020357352500449322501238675485635305512863762319546064750484770614291021302036359805329961208656450050731871054171831952860425125148408361499105555748852726957500686620848400570592381030370806166222584163137922992515729932215664742577047465311819604217546902926189679495550231309100716287653792187665565503687429874439822329503920902303724731139679733786566512614615485760045399176728269817669893025431801876801732369750296957248531062647083419420169014144338249449442357142364199339540313583101868782610015105798900934680398264452237273565896453582897238461573388642743507922884403277554171524820103427720445182171043022688409805134076874944148728861121267600792394006595326806099058692336813231266002550130203427395240080358524193856258349032161512058798436401154127811906758252222716331880835874435396433948203433244034965595701831006748167410670180017738723375462773669553725886417657886426852956771995778644822217260639094261406546012927515718769816287995687815525563768481489569152840649152415097235636687035360352169242171724852780480538007642445890417711970236194835232788814342767973649919710192796946798000796213906307193865741370814868455660860239139962660546442063892877381460208260621853056408793175049230655755249979017913494773150800684021016933132894559645181561401178856039659152671496530827381083527949441151878288232898607824507178387916633550364607115272033546710455424058519244546492823942276297231127746290196522603356696739101713060064813178262064536415962139416025074247911878101731879392045474993353409651636875201998244970114740808723666187626384311944944648620069888402985368768731693994109568575756471127535748855700386277067980143989146464366073123128253217310490752206300570557931387773555066608892523644748973311450543192670458722184329832479871182718421169330397979966901015016779007113597697461810521167504613094986038576186411972788632996793945490220478779064639416705839128069139363069043156518515530307896068969693126216291864600885241769704810235989601399844278033338886965388490266991043161206898225529313147711960863160416403263032627809138340458249803193164359803966916628368335704519080447930313009172610934206460490374033747186306223404934143873922305274741983519426429062066274053804731737260151165251550885969618673075390899945284477423589403526337245454636823820100960920630025870157060859209538998802430792152186623474154947490536352312238229127812687654749267699425142931179136597028569037206017557330500668880097943563736841857312155911065800012291616115096751542295067474116300579809228212463956100300911266462726341567023869851779168010033666526815223657459815557875507486641449419313519776201520695056177628859479536783000134031241440064718786091344673370270230653363592905068439509918098548123964077140697302112121891384805545772240418408989538114239758396961482530753062419484037463987283458486362976787332090445209882889847265670510106322417676963137258568199261599439321500874258947355528855030486466704068250521686879657087387785419628961737253192592257354531675086776068933684061731920195766451795629697085240153423012020071095321646226664917435076296016028027641419615682158039692031470274454591758255963523684144750849115548318627623357322042811438683730792925415432384973197726037258610854597269611904207491766789134527045899257586150268222214800662240507823809857797450920545297623371040837612251533826791347892128180590491176465951189247014993793792796827741349440748972073394200167864460367802568273881624545570939558019232330928784411653091575187836916364071378080238303465297204469894221528589420783539405583202004007050189527830126867084577472115094011010269276815965109503476453628572316384325022511719839226622678689822989851590781325172063588560944710814983218823272301196533034797320841483942384373260210944898555691004832894781251536887580257922412757013006479469912240792859925392753123989061244014090877484256092935478660461370862662717918974123396567417831550977587572139759554560660356184245513604639780482984709880787357035470847661150542316893399217552089949605035824278813904333182291990229987090132367468716650793989487656207611636607716120309136501686571368076151295256572523798121651104800663675279492988812978658984284287166185541332404645595020973701679656467033205486224933089140353455638046056628272442479958006389786877306580675172035169194138757966769355377790197709950891654799491362689152921060584032497215635981047303480681235488184174119243109862537850460312871977479269128759632142430249810078809952215833085623037975298961884991808785979324551054306788218774203211713557839095291071168395319706529182644196375576131689785194983536181611901578979432819002821521935040536112580583695191790323403791488921105760628322565157633647823143365811739911281965256023785729307415228768264354330429440247571112932406452351543369144274254257431605704699429815473761436493020239206956325948902136938729964906903856721398131121012911914385691678142403752306614347334042690972548146442982378949948758006340748772801438557380311278258396568296136603292436266573244754410987510201967954097503514200368649896353440986165216618054824996141200695403300291035658350766482188040358885268981389320788766146933679092913020158517179288205642219045722705081087741881175365646698749152225709778322948192087752250599700284416810936506057685296551537116532668677145397701524596422594407737881093238212019763811752598550321512369446358658393124186022477166218750750772973729333527204948096666354441100541271749944607238133164672564721784451554577633532148542038978006574759236183186020900189508339381150481094103385451284491906287205928356340410328545091448275680171079307385204080023756744592949958112518646711273155288058056064577931927008011969808660243999179893982097772713027331930139650528904708814416122753129586296814800600871717930477188177911502579185350762435026999944887257847107506216421821209523964423611739724587537033860167920721079075748813497442283162891611315620162367135592864870018955355799812302994974745068517986138970317831544725977701903002518967001127805003042790023612323024611982358919843632741914853271899616421010437033160712341537892581601849993859290306014330105736898137626146182662813330086019199407926951431453823900793196584363541014640181460342675067870349507947343886770916672441540660129495248049362993607584767625476994083310094940226482799558786346183688607506357250662071354142174912225631364148707880211109772628284622959704109683517031784061165465650234612527886478877664409238922788625170978823455969301418912071176047550339420517007554836145676079291996250903331540612159757178680601584253713399016467580565375477321937989460272557329964810609695191096216252261007398855864043207070096959080121889198677699747046048524275389956351774910306146060755248199227272805538861309370494647791059128808749541432683901991248855353427088906156914652640707844464575899283474556797557278848836535970659219093420521016871287636934749452482981875075922882879662703983012202833449823644558991249413066155976114409345680127615856231940316658069025029070631463278477048982476517893769224499992050988070615585951798269700255263743780104469181414981714721368649928023955904508940597711938181355363579539320091787821124523530066623080007540105979245158194056709129119622513954220318959799071368992726412563431042104287856845270870967212125017665895797043769440070470629953265021239252967149969530744122280101483498372998164366830733040809769803895022526253123188756269846069026499226479034340220092277268125211194175226341333723044851679465966140929685664153728844097125175760095286624375154085513484396816127445225221927776608422764859748995265976312503584547457177145905859593120994644770856905495601722034134710537742023167465485726766442949954390070895361799385140951333019184718484073584489763623121685524847410628509996227191851052721428087659283616304759724686585061631119568608361688560480342852428452185965191508131207740886238337383345914766921163052959368816315642118228764668335814422336574004533881709878513029540172649468919524718488661148678330147884801669382000655689299941185308430734335883210252493550434922483730561781477525210437814025246653282697156768560869459698502604850318925725259352904363924457331245737106850833788693980937745095969545430508794111073022308784583959614832850777649576465068538990317295957903747110368876045366869090035291458145456248579250021673439735153054905020456939339496851707973186745688730606503090684553391263234417381272801726205483487700864987954304816985328728709713887842358945710032169308488077450123156230029117559203429183692498642239550091594945040185600841947960839781190232617761758959635970166958659949313106770210920560816395377057581673058027845922079883531012452474491738318616736856465606681994365393808681179299099130822991491182121311627018202080741586165519445627370078185554996248377671888705008610697381669620859791189574234287161966363506758353872182586745369796508961602518530927961119508540611205392370566483551155836935160633300037017631097070795157199934458322971671181060217752260397008351638643450556334511985002256158440043420216447452204328116333134161553608562273788419441808898946678810033433979547674098016263977398800473120600705068620126050993271899106799945716226865577953376209037925858517475574910663263274612892860960585139790750071593190826998768398774764562907883264398212380957311129682310246625098164460373623171221373696510154890976038741299927924367903837934696626522807965052349592976499525689266895737068035936329576038778919878014998940699834654708243050877219367321947608085663283601056775845212285415308053586997885872394997921406467440308653935102382490610347144190343366662934591990116532200672305187207665990328099589421940312665807672083564518229662663078392102203872987308983084909796190449309526382892693915929968659595334559673571979283215303978142060562645701382478315399110920658842536094615216716245626560274106355455863881687025398080967381322635095242660877334239243942401117970282102136353067834424449615136422425131891186601017046470373154237350395311968829733188967984853024136052858258554072250018881939077572361771560698356232640138865986243147971702649041773694923264098016427459501232688535844322788490525770985589280545610195367453578830288975348505252883494276040510662929762795133821083681092402367751482617369214996397423781475039886911963992697184161274959987410457015719883453274920237724373573872084501312049737475247232516781849279651062114109351209780270172175362483340472135918514990181053641538832819336127859696132098556350522561389975354963717818798988330167344318042176672377739418844590190322121910794530653613998810017092625185186293687895689820699770406035731116523274281657690958802965653635906479503520825924863576132706247587956348165545256614083175576194561967550306772929192318185223978697670006927563146758278902280186507717126745257807708608023055040408210044706897678866357531372884066188246239360039237950471341597921092600444979180248638085234604977928076632428581035676596488533883874023912466035458065459017611051161709419743110361567967888386980268394188348364123731128161789191544031643033227222322036428548779464929526407269793546763504240886125865547109752993740990707508956678401816801042077222115978476142652955410005384837270860491628968402674633628891626316597434775639436606563127994673757624619590038505504131976475394468063210888434091980619126361323534504342397672665061127090854490441257256267524838529581129489052346275296295245572728018211469013198136683068709583497509995835812501905865291867336878250305617443829404712987415325500444233081721428348480853928306205081826806636895295804975627486484163058567497271206206198238302789269385903816916346857681004709726596422904664129830894142120325459862920310196585876814347578585597162724344801609899090035770102200203187748610011221338147737760248333450817314046369611442937415123048688097925898659602756094153902041592121890293032021712343497569969746015482611086257655309232057480944383978934930322731713219798359277214374923978392571808721503288061094390120506693725702288576398339729839443767068045192552866767545293239674984605673348651595630345763571033585460067545180759298301205383449444595169732302409309005947331699522453983439911726959001409116010264375988317286014042264164433836657637187660772656545652802783415126185495793079531885783058459676886857342323669122657065657151022350366277029055761904646070856294912542847950651357285630207977448146281857972507285006782922247480721156511194713640286386780011588696214975713911961078431083716588563896074170713637891785607162165272457687563692637666266782715472706797480029624518025749995605814631629441199277120676472878394148597530583528605541867246302932728111688158591247648509650825880323588015791723478280250807174396698766601449817404361822530192496102541566490627378420185461313833517485924698466947983151182113284814651811757889877292368804947369736156567618869706193960025098282157989411454138446368919201885495354808115497277530027520285691489543841905938388838853644158824803312739818745811988413956192009347748213244864755757354444583603987347382022319924529384281048642683316390440545664265141209013275668863741119869666796117320209258498646335440266693397255397386304586964404456737898271099039111787286216465296159357164374405277295432540268941410384564580673989435664408327928627281511486822146375827703295439429988887698929962584693810800654317708011121828737038376735265437734613042333773958910652158609459991488781734388891740327747013173051058281820042298659675650334347951676251934894222944378559743447072387961632130906114320906806763477860166573813286213060597233462922923307769312943824955611400433845226045917458181840799898467192927695347465054496588657369279575649027294402466458113556514653434416430364370691387979558450787155900821080238024608407192223662967562738207223831653125607972569355938328909865588598183568990902689863711533394878725203943836842426068999914087565150735301813136325144208684115546554970737966444500895836429126462115062604116661466882921389124487054120400166406193389464532280790252499718362677784394265318970282299635550927627542361420169794355274594222030781138500395736534361242025327710709587182462666301226044148560046304375244866066762231584614717067838436332998725294868276320126646259609267571951555173359022894059269722522928723170695279484076752150511795042548501352412690937243693789575215759238047604969188618989075564113701409893516622902541791124866811628492636784488317719494809076526452371757583489591577860601684664056382742337699990496296314823241154221608957649509759815705165899847344886274453956455949614655224572437300289850176805454717883983333492853211277642885168712569280942936569978934475558772468218077405495617465177674539870616164011636450642956862401656717769379639882026094767281600392943501825413006465437595083138709644300390434066242059945191522293582167375914785122678207417935893858289899100381693395777985510320819037559381596977522120070719861933205617203050210231048629265177236888708113244173434235272976897816454744910598890530409634851994407097743697358218328238620947243907315882320432545740596094232261620839477758496429886898459260076736069551292550298953041614852783443345339339247793336527914022118038542183056632317217386203216964904552107857000198316051657124309220882152721228829219490280806986556491568695748712594842503848182995148583849551255274416728788836120029236208786944329005612902390428927156745952232047735675914402229861025535014892620813420211653822288157263612843896760868723855662076619170615614587164798732888644851441625541019999685247463090768386172837250284938005995889718676197110983318696176895507496392581439924912881438851125342191091413325838453568316166310487760104910535190653500133090326624303049541053293308546385621458537970446560311072280293720719867681787520497362600588586780485428912115389051948275671429185454625789448130158136179249030320189751177293936139152966013503342132588984815877644360919509309703361960071972937627927372946441852221032915476083067098333387176407897189903847009633883484116819029564178733826175765311782383480833990079726464683657007554574174598789871536790267144051899645109967746129436775677222972876000001321131133187029101911306023583466747930762168274151008764770580538995211456624353013155018338978104440846823471206094770486198847235191808042274609490932567103788311361538695365086627315293114268172629683802233617266061004819055243809961697880334131710365719347719467067901829027302776279411817006283561140721652061260271440198977331218985542327436658091719157037575938630594794969426758919766188827232989765406071690337949276867730835682623758228608547643076771945106484176576659043668212174490759261965218600165763887894754870305040424825910693731483648553926582016708325320965670534697738754768947139582549270981165052907246857202121499880880612923217161752986462062452028218464902760762713090680060107377426743445931293205887411487414427404125723981470606872218476845843190520855388867761682085614750938640098463897391862279591982552058068798041690161342836063080836268566328372748707679246131736381259990412176758867710759040413142536597282379672943336001848605832021573620833037317891889956741900822144459855986904975397094715494449010168538246304290644582053886804548178379646748914870994008377982587740407849465639184957004469591516974602901493296236983019829141498165357735967936706327306508213647254929511371408782695597696703081925458703689181342404617150364591003415450413529537785162261227879322748801272022436459760664961383133285603955175643003075544934255733183283852092393918850884147629202255466115279302714333518871948930538979275811470176737525245563560822027110784737939642548103614929733707189929605411174763335518996498146399511432551391719334315004071515135788065989954060199612895194436442266734286024741454950396885570729213086953358917312027783162625548005910241611796981889303044444868122351503690845634902346217157858657867836234255082710486374829103553920268305031726972854738025186372662433776463671602035674163498430648727841553393238503078649122939933251269988904943267311674988430389343500787074131204528079147116742892934062974794217402336692486050603139449867612847854148716531142390954194234589577498988846168033929301155222926567602902887612467171551755716155770953452524456567246550444563238791123184611398207955288368542200463491852525279775241768603833212507217514427625557220710812976543104205126536504068729268277235259921113155501754461883595755524574341917119970706890998297564236169922334258424436390794318638215920026322841173997914480929211248962276080473762709551369860554632518221467530418534298749266845761193117632348564486689958747235131255376434160982956595764735019533226303801950130296563024863151000775182250310557603017112175107607479234573017220380262829156010474216393248733415165454660485988596264269424245841549680800122366222504151602824986896741579843088071118067837909072537997568004736515270523126125724773495370588606233610838245572644297226538085446270664332380295584911890623198813330641479177783823291782728942255598223466162013034175801481855296732071560856083137930171534842373593975641016677246554910475343075762995678136928275006622712196186395981467102532322115662544836982598162624168464383875218594203387762275978571297775560448888086470327699825481055999418599012088618223459820727744192445083655078393999247731410965741657143246216201938931585524376231545217528141657576152847430868045484003555837489247519295217299928080968983923827069653795042045247336134492237551945616884970179803400616027707094719951156988483456894211037547054853463962161220210591528315624779038959172627854833553336156416299471549114731609314054872518663194110327303183254834099234539518472546695137096819798249585715412370915265286764671420562917902993200310923531917504136881742661717783827145230570141692502437954310734951997067250455599545526958667169751072920495785395696927737224082277106750102962617194480772736778348475547306703874120774927959745089458027884198362957307592033660516455355696814849707902255391366165199948248528464959034945937723310531057317161740502869294186264686057565106438720390831727182636337808325540716764329764604455677501227887869616051726284609902192497655962793997410599901279150819665421126889819294410177091113358699338571807215807233230357198842214576871831229765735190956054662703366906447952785198507747393267630062835642458775487448492728337665487042142291433869759068358014988677868641710824716740058598735832772958258593269129744256968325846735426216942485313541576191231230484104336507509998160088561101244234259847134109653086492206664395076247896103357348286351308305845453895580830795629918822175142301036956172959854058187043377984576056344029667355113849120527236940193015252244686313386806566633422639081612449138635310994865504303263582450665297643676152519292902959563316883808542008389699468505462505053971021443711308375386308880203374002814250460019587710736107330125595345346290954868315049571136478602169273021077261442000205610861121985975898873658598592267329992128165608265888730523579240694138051046491232307000859302734215767098053099312576880682302717270340793194869128040447035876708941392098365402679507842190206287059295425471948054055915453026575918055975162749299126893054296034017582772312326678955828186644805466844135874999481215700457104158904946731402543929402885350154264309955836602559648365227789717853739599507708298127303079718655939322901496524843191748588668212736153430915294543259205174762346227527220614771242263219317214728405371332353073526315281535744386832803607978816561892578926285691302600544036962824126285036002612182036314671311211195208640826858497491943321617363383775030875120930110807012905307187845987156473309562139575707537331010319884124822477452534147490479040714485846856319205953206615290858472510376226335019244055841653198711858161157659772001719392066831744197186926629165759388231133329054558636235991544357276509859247911702254023819654270709958136493807432410549669099110708794295163272838322819510956867696173882381843362321405782978015362185712078686258694005199726952860866660581915402116635803188027093610208295064230088047169533390607770925685427805131414699011430232754546059776736121083166851310351572932962703106239147818316864114010655502064440596532063681384936377536382904238814430745011539572441352334833653136308886249743052540805756417787691401027497346961372984227466232745353264077326038534981604828486986434468765590559599639705402668830996400503209063382955615540848558983717941965139875016982767459013329863395120473011966342754084935295139919368412710734689361073052007551866393626274760156824798679347808132171884212754301237066056721905648298064537309156193203662041176661251541727588035138078160310443944155971135309953567603894765542871142200450953335415396617637668288695542769929479911394519918359812850643714496668258027112200099760696745023838364465667967316529701955461984022416340160689938900806284868133346353218136035696957159540408857170439839382561851191052990711238608351101510744422474843141782985901839576952976494215966544536189546098423523708870078150143096024110413012826212474567500172374469405086682021117285588295531754010182076279721274953245967052407911744292785632003065692708880355918328501063167511071133305753351785689350899435623310529904580783983231337664087455236169830542224896147087086716434114609601912232380029456311019624082821161323766416187616370188970602491022140057347680021204625056892409411594036141146338307018270527987926876477322917034470785502507631526287658422194057900420660810035385353758509687888186931097142154337403233857521142205335964081684146555532198933004535146379726315291400951877736905527301217975132345704487428786128972364044705294858836364883954440605558106137881933576181518672340707862095713059540430799850142104520043459662050803719290053573981339588376949838356543464245370571819994676798130825839109308843360538542243510191692468267263775880245791204036638678550785299171907498073081688395739147390600831625595999515024436231255593467328575179160874612692400183856896106467217551691584156449267992478929031927530230634380014512211302564011467963524536468531334493566354762733908771377016003530576636207346018136992593170623970105550633540836267833838162252200079525883708770756865226549250136092446402977788108878263231846281481386733900198413358000269707405828078526167567890100035116904952570783551114484247805555634674901199168103444882595566056907268914683877642255479657043033355294102524628502904661923555921958825087348651582618508974139325804025639460751836826891358383765708574997034591793863246189959167946160499328762543691147446669291470377990572166382380890372798280455937207973056353314679186235969202057249370051514314037763524826866564428486183039443378775168810734479419536525017848937346083807028877458305051797539312582654004437312363440717337102862171804879854013662220292127088655142471381412165977983186474583250360776630933440477361021083814506264354057206477426838899127108849202228798853152398279818581681697476585304015277838328718017876931260571864637293776201990334767887384468637163371889707445148818764048986026884707068083458877146510964138927737686273178737568793012490455718396424640811466373939540660900380041949024808975357072632998825506931240541072334760108399459659432356923086218224695909777825505134062179352024104889960110697542855281182684845864025932655323722876178036034397765658308432479130688373213804941574278573721806056759755151209517936765388674113242345197001252862905544511302675982181567373200722408982544553305780633182085333326035489884701916686715057685081656617286515573718374867396143881989306029133801919075126985811465082481340049496248438453920078322170474229573303545891577280350308713095483208906171842556734376029463698048749124893624471894563559828527282069211652163104809930025876288230090479733765366269220801096521624870845296071012526002864440869810447099551067334063391269249731829603443940988572391951367953078459062524759220355922432279911184158595439877990835213961893236752290409757572069736585866980123091907835783135609421598214992550255764739869484857537324233750234894601541773325342595325880421552221228088860986625754938471170562211417720362966079577041210746443354400303516008212445588775124749560479494756624762275928823237711186352391674718941844668790856839502094567801036507806465147554618279841078839500189726914380084828669712182965413402467626371440563017770477449634152779634255210633234947659881479416314980764652183502712010034715918357563939292076014386731468195036921752448235082797633114774793076852910813291557277687143978399971567795372192499692548336401054900674786871596389965164913335319329552988430045137010288021835839849118639065439550895547599685114319522842505226343897802851155737216667302186631169301381341789215688057945304681373447412355912395243966312662126858047733038839945520213241500150012934975200635052325374382842362952061603440594947730676271982121671545470379440558430510517651074860667784259471225666280551862509073376373149832825037210229197438022743103491854153259075063003707438146355557964717164998886612701003329968935502371485473111169488208355961647703967534163782249978469656392697648767735042145230792917639641025919315518039250902000546627117820674874357554804762510050513491673057682061713392918373271428424366674112282812054586943565777573571834728419504235567855836613952548264795417079222974125650943034869441701803031115629201505035592770401911886721257102587706887511102305337892496607253100760834497601940730383747632501533391574324669333898311085142461547290211005268647186764897256191154515420163901854512120634167812238057699004235688364201289705803166703077501711684912214117194511726626335365260059167141295241525597162282555070136730459439929854731502583253338625657541395992883383169610664163098542823776025122158997514309099293171420689638173440448420986181187542745307719235945188423413714906399426489035764311659995541783979383202358373071996370689192945982530475568851202780828311755111407199142564087488111383944119246067812947339709978155622748553266662515113146557220289578492690450888431051298201690499200800611772557064566828051284844054072881525945869132763166043656449158442328041926909061834833172870058030073152794334015739505373728299914712297439342995919634814336430500657698128580584402626193372376101576367387734185793629177409167905196562645065903251769008956974689215319082064605101024416794525146158709667163580421334204220919207926476510832597013569685261159243111572806223738895055287967484245851868191892815429254877218715673540854041578647988750621083463637805835069580305791652776526503227758131687277525350292117004269886777505054993416649823881608035663994263755083766267732519679583040450343682539509783058800718491824894633221994398740876384440796384647890271349248844244564803641433344391562439120832287168091359578290891454379191207532761730070871304206864495982330580017736121887744262105375406595646177477318924131615423296054196046958301828649237257556738906216378441328308006909844577576022189763739898405075496579489733348935508377700053354963908194115213304708984219232749505682603350995180587177595396504779227184920935253209528517877794680645719642774584374891479121229367731283530529854917524533456991851356028608789633216501222950216855675868464097763869961671778968499700807567515755219036051244145247732448794955411096411852002308573791469241925303067419215355804674430162237415730696416484619239062755537406267345734881275238668056734810793087119830607399397463850754405444232768196153186155134949804893023230071130025738135870912252894698494280894615282314830065209084329761208984263847025852168809795895656923032564915336860252043093304292156382303982702610993945041280985114815948738332151024935497517529303197555799511644366974877554302378316844931305836452757462760131376083924605077212525291094929236845964445552844324904994892702912161595450721419481054865506586022369314716981372834101982290452966556023037997925900683518923784373161176638720902333507594530719834753418194465786179723704481353496214099607532144628635990362267475983002512852304953486328334509086179971916119428182663207672105283956191262606444899291402932548877484988820566165166418569878210788322760118331555531783596380236821559379197105718536920751530568438059300291312416256297830943924589224336986644717811598932860627637797897700259440169285002008169083983530967696356147371136372212260260229144155250127897264851880007596777315955579258958245827139379769620514432994433663441802472901676624750658786862990677155478762106870147571442006062567830095316408020230209964920789940062056096426700754806845984988085906585017879305563251639960961147839733116737428482455524115902390813421627427630641234580285750284559272378171457365184882062362027536348978756499372988936181861358250843251359936386526279653517898451960213623919614061541225142919783995267868364738742427982667609585773229181894433383244139372433260506257385184119383629537800920897290665495398785946054553447508527117390716065279112601720671898699831969452414885612278267044855841894804205347046097387692734767979482978611724200599564714864900138884666589015063519312225182806541530802919845335910775539871861700562844245823421900074741914057118869507818720037274450113516963595662327577493860306125914863651868458881624462084542321933033165249652463667141900908529015497007669553544603784266782745409100784189875193834419051480507862737357608987560160656781831711627175692935303813807674363660725536296585879543008222136962627565651069919327348606042136433264579881914741772361797997208120033449276018446138103759888375907232605621769118016363046209553100059907298256340062988298611418061608217020395617697656780610245348063216425835157625211709572772420242625296040733465128860951074455235748656597224924612743790198719619209142429857786119157332914842469631044667834755444495936569232673641197837798286156812940133468850027263564561955497686938758026907578685699221603893600810580130274528807755513959258526786441944276528305106598319211494170604869411405274282541772370222140664467302048582822027116819021005868681833441398825050501007378312196164138079160419260539713716623945322422163765495035743783726983864955254236973566656236829135351868514319513123809119540491380235805474685334316834788525964527510884114536376298782409918561459812719808369928553979435197447964553018367035689479703668065101938199388267802633418314686328223497528298274938625896684174657627450662286670934670879969792334398551025620260229235796227814959546685372589426005970707708707811532466960348955378567138685604505963531082777131733896222783007851681652300801098989299791680508829878925407546287553269570762321790193067959088308467668721783427022828153175356273357131719266068712109283860638355286064094386867408327713831224936821979267579095953896616752278886793265681062996768065863168478888371368268887845312704286792299782075715799624484489154556133825296728210393610072592081881549665386409733199764522457350616361287790001442196523071767983750499549840777495103705766304810086399946989642037737689203375910834912362103093940553341077201709654216859010756047201418987813344684201838558939670396048749520132867974193074700272862703517800510234157701865652256551418217469432032420387262061519773050648973443530835108077921062994949435384282064894771499558068027543210442914491986108928672262169587408346203804003179231667577789949765997603582915727195917062886384343145566291230720400674099062667848444979266999681253760047524661775481629447395817105366554587449131611991295415533051429953801032119728507723749191584395651011463788239903078737946510261464307669041181838714222633769453000745705042563635673967581056344877223019602701261231641894796298077029998548725736474371326670316198582360044956986374353754997063987455899453963507179198427660221539703775400484022702320012711629116179604341303930468137299487712881907856583937497447298104671757830056625115690568088801674724090414348873995667570840556228219987993166527058990485314728027787216593568815858520895740724022776269559695306113026300224051622739926682970072847244931834242642650287871575403477096657948944630836033467652465332766652795704410415119318646623414824995905671888259388702393000585470926614934234683740795995453484979311908803096468879354549216610107687783214831621802660806936332824495198064483166938920557790155186062452274668810048225040876994181351286507196031941531795371585611339288482981717503944172756682686891076237469524390905346292207444245367115602628658667716340116202199012307048150343563708690112992006879081694184470066823507101095011813440918103759644215130282455828356035642622236154013844828086212966428578967659689351698057975180156696949546866925872011702265638202686481149912380107900565408758106792834666602730315209555380867198858230911628822238015510018615498765175034136273476359444335119721653673831820466007039096969462299463253258783594862892681121590078353652089243230522863065631131549856037507829449010149818333013479440935150866228086490568506030693221151361464147442684896088187067054721867545455237711059925393561081127447233855952853385964222557308303259823629213371260076850462120509849296241638469372196056807779631261422573458614278308184309134136427187819933062351778099272473803483850017942401643821839569251262174626753995858122577070916357376338826065650114011555629991979465312018783396696829901183943996693212382055615297738312983814726401224516193943898647837398956705891488848597273797420644719617532484746879210278642376543288675957820446537452687589565291678177469609607346519892255953610306425130170155646187942482993434740507628083396888448151714319550762083006769919677579234796396974836462765173778433296446647225208888264745256909601078983765103974479985461591545430072063158095379127530723781995059405274783258796043367309146020070929009593255412695203894198323763954430647729719211964817550862379722793170612673807119372762343987249002248441192260851066435385888633692559092993074058942776778434079059461340985165256881805762099967141787624740477465102591388660811920085975526050842838500151821157719185629639429370070532992789536537203598775014201970741686274296909426386758901901196156855336258633806262915926542151885243982022259510138905621574304836844431429977419862264312269552780347977564161133807371249819403766222017767142314226778129782258643524965785578302218475358016158588121883405096301778754856641819929487094933397624701604923150253570059814259770311067568719767511125713009925891846866312326225522506450562587205885944488312144392585001100203897169092916791257526599602153829336099587639590634231007930993321184275442458409591015355507279867526398688461644138297489327020848504574310255010779926265431414698973924517587144070310068349278792942764828170771809851290035509640993875062923422579603514207104734060967193162076513213449482045648391955618303105770655903266038873675281604634687369623605710967554633281000799754858539103333117942839898956875130482833359485320543914041178964193485684540967191557754869277043752287853545738846472603481205455015267640941134556461839848961650476179666675864241207713028646860487000892248732129838504200378580434027990997690729139488393966835583678407931997731672391673833815320452438156961307002998603553086706714526057213646446256118573235710020027587973606166394923744593487398441649300654385128675434197167285930442668139000721199359157719303944327374430252291576437386761324192924968806894456733746288901663908323146361550595640967789876486620317100536723981034697811141402072850215012472046760774795205959801459922195814541402081591453446266758193571234132049733656145568103499509820559359495135172438906200545316443545908567206339919800626762391204785354815827268603051452865856497796266378944189673481711617663796575051319226307855786013738303386341767689705090298697510545405132547554795370430388739704664086821138307013873399329092621320766863058749810722450228274999923115954385440027269914255724243655655631856302873781821164583450760636389858086585017193281189074087105853939703076835459703739681752125311164765721925149124323244161366078236131961568661350415398538970701610654930161727153595709757730616203215143602259335247824918026251307888430024803897004487074199438123591905411881897473325206133745475429701668792056863214550414907124209461235448960708962603387163732750854760893470804846260546246617386910358772000964589742945547995890289075745628534444048648539691828401060638175477467551917252465696419543829234183641795044073645643749478313396646123250803507375347729543572210292447626612165413293012932403509829610933370931825796455181258338039500149003391910942515456969644233614718158955993394090519530662381230227409331053740717061430776228958348421428330286342434267149051405135296950162990038221324457645052891943584054976220291712142372716887209591138320421808196988568099691147161886969840525776721929701613541088678293663795436267050041777967528533133349458222947300249315530603980219901910076199149135804394302712201760682064864235930504554841138282923284885150417698955950694048815122310821156730234866904136405133913981816716055780759014717644669492349498104996830468768645939527208553731418059091349410301768422681259623051363473942767138205718880749038462304110868130450076366521802998570133469420663660054985385032620170425562873971547470122361008279080466721004300749494397524566024192787115594626772131351172457441203873995464660164019964960043715281755090962736292603809708977840812658164753564896264708406473118091133825856264252151956853167995728808418599124173020622121615810348935578317858177120344956494518394900530045652717235289978987807162497932538798440827325497009931965155333445025417355360261345929843904138565405502183753420425631462381626467411525509652538505721636102464371983844854883157178278485434487333892280444922446678837382834241006324178028955587496247356932468115136840358873916552173840974673546068403658947821677906226678547233497742594503509305829560493828018716555691237847697768984113987460361216874560209135328534517171236321706405098994140436436831063576955733753912181176772922062347065795317791149834551122054022777662397917779334141743969326070643355344362101293646223340725615460100228250138618417105901602046322035453053794478356826396055321929057393540835888856917658036312834413252156259078684246247496436408944366038612727284373985375708793700524285889015252322962809804503837818045612831763901466198880854714251505360707342103555871459827923020995634754514447925326570923745380100490410448727224684209846461774394817179887942470753112743577389909517352824470556577756747746557190515793219325788332769495678333685508813642642552458122425206991084221828479259515091677126853089225695299660360983520421309612838231598751871788169955008719054660187343188709961464584499071519423863311032960953722242902804871741778351325214147328829908990573002172641795638832644758916043668643235361607916908421446322493657479714195982433981394304840765597834543665069032334645132529723828769389087929347131033171877317159532071583622007911345969326466624354017914607219646074813830624800956917143651812146877073843403773174509011101774882232420357713933089681872039193105811210407869728514470916374770731044280322607332211613390008613237158780403076305272386001527473084368550311254339457204728707726844057624656473549775459934465366611427938111734125429252481659409057952944187283074502116264645464583564599340240125415231808163178325311210737612824755213043416442117982541793085954662188211037007632976009889633727458342346660823438362452977886522960139963269418498746379687101542937916929059452669935849941792924236251572346118695466476546254993815264712885385118256202301998556377701244298118881302556371671500178952911662063741597985911725382018965736185708438733528529836418598921138789746435522568538317996610872523963765225919763040145768283369706084149540895852487541780403203972603579489722764829964458153077795892917784288874283730730937467505745838156183168359247114667718589725756111579367062134259323679091312534049686617714508382419372608208769644982520039941756959069274337644729889875938303259170083627591756232793444875488103287988378323643275846270606119281004009517086940110179994690085795412733707529708385558915487938004042012983558016280298785514949436494700241967027842059383990747673209978866265581841375870428211719941808934634504239753430067180664401258834757682174006548768791916498620179365302894473508338187010789263831310785601732884350646512351732293654077137131381390481195457037827977592971131255520171179445573175541030038517341869140300633867863879633683432811384240831281335131722507616894771319842574189970336811884392320023757739817453870980416940747242125835602087245220895015465455571785740922202529691418717714747406101964479719894178553371132437685375300955774983873356745369045090845243520520410668450853827888156196482853199856286078734321595212230983560200077462987795620860081527922572131735711440209345250538861390851107706278839092251711024858599323489561836544679390069518152176567106802521819849356968832512944368164698952967473967588819337711332308520844639095415520348939878681672881055080345751663185841600166778597171889430968601480215915219998059858245309134076073461531867505927781461150365054882616231349183181335896038116688636541194016280454568659180139389103564528262674261961919979369275802115962292716149864149123000484179807001253804838477104757103846056120572858095976418878459312544809986087647490523373633685030596181682452662601709227437774755348977328447634835794657605335635853282507335910320597582903813474750755340043567105821557948495807968063266624449552028353774039899388130445709942565139943513357058333543425047988164823926602672211433336031585243141539301859118700057928158344136820212090315148841444164050032816671986712862601193412528700448655994522233691595030147959814070717919413502804807490530162113100720532401912179440030515029947115131551302145770343193090029437090733553753161719526537107992463471397470539889126488552728434164268738703488817142407889821912717228643862253601274386740587216796671212610983164958720605470074667757843095002620113383835762549467952077333557610632935079794212172329181418586061560797550023081754437365058973164854452209344546774389593771744434407302278300779099920556822178862107326630637967724017188495539661169725889586876055829491688641092733016095427268323318244916998849349404868289347921409095131620026226939383938927389476734037383671845005927439885682037113089712600312751681140010030405567857872959143970124274789599462978950738113092324246404658053816852530912163394738528775296218095392889055559627301707643811341162348879246829546699997104565748594276773215017730404329259192513426248792344152253632665648652462787604549028087450853301007602751918301750640610846682971951064001571801923783817299120148841864217167985788118682720981301426707117252945303319685417415390097912962217247824468019356043934013376420516294659354342270844020305836837785310667824722608386525575499089160841647023332554828296732708942258517781248644387120569122603643356661364244595244194492550944665865276622777562958703006016933627506317634986748134562485609883417052641997916894240466495836379319600174645170249180070651552356129162631706468719344621876637477174850438520414024562290107519896483832974930541952313335678918972019077995247161904644943416874271414551647824615051561628792294355729567334265696981001609136481588581721752542080635940506101307391920266835743874593392775694936322473834789264947082779290525790297330043452061153932070468419430280468302589934448121737237904657602170781207097897615604426683462589822246021372816174867205233885469811943791737621941616640123471692340610195663695109298646439184927934050581606329312543129089055346822542414697604188660813420564778495265061826822215880880548281397848603181444249374186732691799952688830315379996493301587937010424151077524618003920798658965685681190861839810005232332102056558329712035436256843387452495132134084924597479149637610395280092195200139717158206771714231599582260441084202226041491052830218772747996798837969902921962984416020216528153977988958146875931257875448599684669286614878961343533543287148139512475825003946174537574249884560925824235752288709159897936314531671080015071224354872758754729986129826203592376525371617243746768449610713060808163921548825495028752609780045498173829845858924201497536461628387666064722881777911586648739915405012596767978192850784715003847230277724369709065664100156541215211790081815257036286794263161882541852373457967131542587295482043639160409037497247688518394285397554423875036829273648752538178488662903394368495056482273351998915794538715800621924400528949882157069459559986486078326518531830127687339768267167878298033324503768861321686185578196537703823544658254746367675590006291936912114012168850164279687383503424957973751023132670637025036623164552311690783624427216880508237779428424567231231679266712049521301576170961095401324431006552250907341144605739876004289077017244738015397594029757920100901824339229165835378871183890674746113698274835836878429119015224058521143552134801974594193473152241990452722488302323669747554699526447761464771349806884256995315986164774260961889803952978183165502187966834287496696005019980120970471587898244979214896945901369665192849798075528291199473180646343346251548256967437176057372041861119838938213962411788860626228415397846667221857395304785920518060958446349856787107036448558522399705763853749621590345390553537239541505980351677234550882094261493009356963867462688478840335160785829581946943898537872486611792592652580985491505833340347504510301841497255686378122093865388425203543318856367152938766382724970072510387320919419063342011769385913142316844130186281919438282597249026175990954513487546687791417403460219837944376986550447293918375808592589002658801463452018208818612882158008323732991453835207169380752653797419300700012359953491170109661578333488588656266068607135230079206707570596103324943822699023508371082950083642290487509297317143943427826271194948563880113371324755687623178720306442262755991180024602458207821331032204642486114370680396553429466953128281842596261708221030508718395109899483685055937282135254703268138940169142990076135197774746466133187480032194737670562243739845581975460776273097350836321056113482351260312763669975492724238396291026198047899730786839762967050833328666988690912274317992249069860794053998903070382882952488991119830031124625626077499166194702452503720999912264097151363689852679872500292759689347747236519997273073871412551242895406411566997363271339161967144014698869930944821637763242170404247132745452499997176011857535241705062035088801981418328772498853014146877280674361914052527795669720782731555150847250512301436097712421299312663475662967571438711754949958219528978310128407672973150031653143774187535245000956344750292965527073004955550856352038460313440361688126640052805949509550944752743996221144387005640739028815258579229522733203215163087365304482070443892840078024372588275736052525355155231276162029856399734160613460608683608353213946958867653741005181622391223472364140175817029024893130656826932057738329026269102796793944121645605232926955901926607138154180043177000067389644022548501471312111027447750095375856814390031078848966677995261850395747133503061064613185092723561842908266652376053955624604795775877656945654191229392477265577865865871314623435968641961813183328938851964723149597570233546603820181532094969967428653365558334658638039342573700081989019771263856040792737618109531528202795922544236956700408771227941207046231731534197377255353356199980865184247840440340787932431187507719728585889156845343163649265978693932481674357312394040142538984773715176113734724980135306982069504763766620286426485351440140694707680435804229968622661156705998794177235761496849581190013774585081604975045532211298504808312548293413795606899315930223117407035962536354644404510507541729723946126034148324848601235576706323025190384669040857483691461196014760338178918002126325231413192057426023235397029238632708185649510238979959943632776203644349508461307302251989486849574557359389710622389235523597659326854279131942543137568364170920841588161974276913070102060596337506686407238453895949495744354877091050919045664262897103690354554194662188105224051965891100049488781183915296363398926779285929084225917052648876575681600984188509607450887358819952256943438990526721233992313325311482040837770425269028718009671377478225211188818201673910082065047036936270040151707103556672320200877459752209971233410932034453629952852066681292129130929834062746583138536026883854327724684543008966307162254116875697796109204005494867709329933928447163169739954422013231592675664244259272019305598030451332932447045774702231519375609685366784723777629975557874687362962838236522724335459880310912500531462062238316620814145189082347152387103826416449164051459786427575128846555531098458252908591131990534472876910402075807244308201328258921487648844973042819303447185887032307719775925026530036226653963059838002356955027413493664465740773545753417446632787346302719418643197688077061042880372724565530710019037587775580685410880498179596620949532632258711720586014035704256112004969145506449616632639623208936936751585825614441230089903830175790630532967040974596950404994557615632906282321367671786055602041832700252217497687201911357645895703085850251343983231513022954479655952517092989734329084258780437701308749796127540207185472515815907087239620266194226362771061302371819091040898738031077371964025834594848700697611666770467472638698315725087970397230122641996281763957776360692278785761758547488063733344816392305666033965158996171659347854994939828596375911034173269901685818767139714952745776485799458729258067048019458328355335860922921447831528748219796138576820632065407868503006483461596088344697006392316510922221264567369356560863517501443001724196871405866292560144290538430494954621045900753187281683797808290318853077389987306681731110587363263254872941925899075668372555316741729577406279219879124353459870419450891680132214380403402843480814127051808283102779367307593716163061628867428437819206936941206336726918313432610369297800115169479403833361091364355372820702041153271999248855938213639297542328590319864328971668048021083478453833459960755180925881789536493236164563693584988844497777000692806203767297119906135822621034552157567575323238619584221176822929247542523821500691699671958334551816312663722023733297392686158878575310856062191418837203450542979240180453741072395624116530498060811814854358966107499400993877678275656429996036718112634411582007294609093904589447689597743766375742288855399555062373427401023879698654800168834053231924456542672830185017229531334772135608329541772214633309619798621623175313006100083897721109899965743200664415182167407207812124808646231320161778669371273487115045293127375532178687791804457619893379382799543826877243864072341090594719823934782074427062969934449846946548541176992548416989666529298511958966946100084275258186388969079170458627648573249378165422740582264577129669141950330606266460192710720598208711458254504787534405406219139957886243960064006951744981366180230955951720635443779757868333290583196585045662144376879566534439774232425152390999077066957966522036673804997744981345766256396335837775955410257977306849511005016608662004648245929054191713480778997436722418938472495360708674020088367159540501453498905655911269830192321006347098095273800848273880113441191734366029599646865882652574148839506152087534615454370705648688794818385097092547373714515276651721305831583769100946888113897254522673058992539075395645608838796038760781389542854924156322118290431027378118320833970435301607645533915925456908367915214969133623717312605581051505913636056569415023594745471816969117410682418105720285082912856050223383542414611130203427206066726940134919622871620558854932814402766644155311643610917093671936790451138242645943034816056846869424208009314374343240833325766076617717242633379143272947349622420959486379426367713435696657224918555613913478176125004787915935264520990604202349822489755422784309332048165530391339596931191647726813817146704988846085350393355415170448621734747764588000854593620770788354979803569823379905758573190985432210290195809967715649161386628458100142483270215607272473916518851201419336718355817741650918079813373662830595807225647480184838427807518311420677304515058297891713674682283810727716009206409426991500024374254410218471489730541480172645163996613168947498069807797869127735960251316322035290533629192185177159234953101588278529475060222078469933052087225666730068519920423651442364954437662534783272817003373088012924320746119028068794509545808062319602701351179317411710495189455068571802621687814673815294643631476918651223671423506235908201022110913355768035200745779466512385004860060910841022706859607024538941268278949260566470017407740889118342508406873476193233615322924602094544164723516636532975435045137070113038047734051228616236086770605510118094277065590260506334716963565386672324018812093645350261276389373590510074071985238623324505062035067898226282098360874881579046489694151605241449011690506195959884779139691408927754924835404885072060352565735879699655765615721850716324880147647516943802352728771844841399843572763652525467700019601149736437809432784029475460041724261494836470846839551661355351227633348731568820521193259821887188079181675163929422467618977441510580301721255479762222505225883099845019000150166956182470860246438275646563664795960101527843333176254854617129850691995192017351155357356971895750921450710883441474679633244306830816926997773900852665371128912892619856081665553671667610178418314794871160969942601208636462516402668009388785099808399394995769867956716131262067490994561715109184008191205198292190103338541100516382930245787077940224301737445657320584603188505680302840217055773546581532230624898020262895099304269901908082839139979992960781453564277078611309382930616277362434735084066268095956259599755254203753721184440810988997167171325460353457373431264563854285634561931618766348256097616308181792495507916502551883560308025691228214281614032950157020865860241636020103665898040755288093518216497047929757302980229999034516487603609498391662396184939195777823069571312024327866730915733961979539211022045942599582843681991937632850822129043145174416447295088113348268975933891273170984500959739831050189190884160698922507030617700467797810880852167478086477266543210111096867496282150194248212372691070120206355683755295718638087325329414996958113873539045925767499026468687869163993295354286513355839943016904760950156143219807817165933012982394330464917494604209078535189927770304826493141165715657268576562389754383073760896087625230346511563376905163836778220541394050420753189308342407870850128605169383949871712823533846153939876893810630619473070228706035289453951752208497655399325107364488418177501580388520842805659640811292514864672568962299564543518165597934829541616653110525906043261412162596622357185414799988190886758260853452423437059367456899535256516650727333711014410214524756182069717679583700298829697409664359822550593145907586718673715722560476395451487252288650058046429555121096411822687770686472683128017273696233880389437433920592250674424813531004925127890774526424382549546009545437903736418544949394498002514623889202551031184694824845854235514979379064577658856204051507174130780419497317990754045004574752444116083569447137808790009910045342429969067472729142942934584471596500366049328838677807025414897635771585384885208737101353864706065462484930338046252525389969236751239983664949173960689644167157845464411212586198929877320311079518828972736371559300988374692004757957808535238198091647948568361269117144122423460799036986711646798382566821993347567127640627734799518014745655162963947414708272523115660539703033195003975884341711010697311067691810118860830018355223731048971904936423990418762591158240138486941257247049890226145695385611742971382484984218656267524329780635144623288249273775353597553470696305176190188220720194823878981277010109361731717687762778707270589775037967362366966162175001233230017109297958907184605210467445400730251941784697909295596819814483797119903507843231460932071931044245374360855061591442833985250601194315972491215585880679542320978478775708498186510187462758636339187635800519994855615744204312175689355956509446080821918776485942492960170516599482853936553535310273606057799985596809507380547170781651254149407952595150266469260016880140579869891679132701278957609647296102907265708228847381460820127766503025827306778863826746253091478157110953161355195066311269581798196904189949093697190324153808886166895260582081967221109622069384216125862076284698441773516799918297740857450810305665254065520898579955087950869136471650686022820997763877160495733654654012589391581373810460430366586613622105061511766223002767741621435281519668803643025748339379417804093593621281681804395741319678750429882859161180884701180610634370407541491499119260483495598362552995766622409398198368251150493886539024275888768816148325178433411865340880380538275339243457827966906721666061862321009744131971699515654230815000118331050215256016849685402726184860412682800392103745757041092892608217606060234443623491614536747673130855309187407667510945057343234102727893818120911471641947892625373527433277991444303281247344238487572920206928793713989300630043296456504320327509934339490834452501233181178794401823341064814229858223867048085117070951922655696438422368880028198729550081885046981911173197415719171000521513731864354974829646826067698727167992655265470054154688773032306186732867284196740565553627000606067205259138258169093121610716662349374561550645715252572840237287433234043436520297675803926479224374101723636268832922477761462853120104249338000059937942234189631133051289493150166134392635387229345490824845080296941716632427038497172369862078135835465568353088898009938763664210357101666083904295089337922868595730469857021979251487145959311867524569777514596404780020983138442908025043769920684899827263988830396236946811136182955872908818643477009925728125867358786783884162381468461366146251244415934422307126129981253004076757293554888049859171471003781745741141765195535524404659600911296407736393063849244179442150376411096476908569584901851308057949410548674197142177688620323744472140485139995046527903405329208857361390374786817047941795272819679151947562173837284535802379106286694679489991577352865758514688561036784242691777629714262749345551191476254637928271111046295460028037579902924832416528857900805610126625707397627752354594749379674165670057315044668340803252749330963085647911716874793445991941677969203577085003997401248990210395438496813078960269280569140856314086945627092580236513808343865318486256854249653011209615780471849473950476702829554895773431397689924091629684948789146348746443118841848114107272025216024889038839427542159402962879573419612749998796101889702460513887743275663642305511462540036701376105540158746985612660901700127342380489723262624490098022745187865165323303984823847971432194761722266345492963217433729285773003026543957022545029764699477639975326139319302827116887852766006344331186900700262726492038282957828905948148043300421763856881214211988024808716567031502625991253755760606824018557637651339041271897289370998582840566239993120763101255690194274256393873812329101135468025286108840638694936470414338258139162743561978872971449849328572364903397910138988822561010851651746531790208984960571478325359513994566281669673082324359788813970766745544669843451143617624447557924610496519331911571773322968384721867479474779973275892837513183777750303904401646315304503873999300762782253927929107042633374584105322791562090440136121963627474268621778393371659499747230611507069873203301378311029827798101966418796227240858769871189930511606409111059999876611523769058625338191455270958782506119164554683667746789176563861361598994874391161328654342148910847467033369350430254412137924796851450771807793805327541195406408595979251065034216289312009005259621148450460068926220495597826806265662091669989158752990203039303555466365495644785709042311781965971826391341315340560970014270145809049644424844740459254159976683655658594181436127028062774080325881703915330450394964624456476343552508191422602496763908262441847024755052206691254554110165313334734919411395128128403429547521470049101255018915401975860351103341516383916159986661549229237700889610057893339172830147286851462781268241905954980351823804769467330700863342395048757646975987221850326494554915453104375065994843413193461136175157838460762541107531777678637310261350645093593169977077221877618371935577371537219956230705108878962286203614802700637516150467776028883304050501423666090302109968023234700445898625357233257495692772508247337982699963477503484454944622131005551358805997889889829458199157809871618441554656335363369783602503176315353363563039587013547108669600099595415306568739961184395319291333632500772114406011890308748739491843613154688174245778917113888802094117881193215584456549422348865008928871292084444420618423683413714083736646827398589746255869100771357572708097569930728973249297013242792041872927523644338812342844092168241481961376441455711560963381237809331785026442697880927973775580772188237582524560130764126946617257337632467777803603696128287167856829649833611800732254403557078072418480586848210565858417100478608924210856831415563832532913066439738665083274088118678861370734181999097656994616084547743579084428656382485046331979304279130509377531789041415609764200569870852151906441774028237551797754760992505863268431708167353630357020088338724047068666213967520972401314569750821501052853837903927735816391336047035535539566981200877856805318267025529138204570174854603214517897729815234289171601010789811964225036176924419632649141485119124057987209804798562415795903939950340775286964751150171655664266337461789750352777208297993063022822202325555171746665274190511640564633213417835932957265075380398272137592005037952026540563856586111445715142170002180306544621824988013430180297527546942703305508996864741532873409458359073399659919411817963308622233060402106334804514593453265341368673286194660546413440097750292831232419798995254748424875031969636535014020183828268184253698837736744673774670697073063904513718923237984752290535748380803140247694520202241609225652553273247124323296598638936920433232273013682982891994754676200239501768675983555453447314122355778191915911955660323137701959382239694191977036692779731097923172512674787365083840574841752746051170326025834612054376020062872977144405550853051225270406239738737902328699225555785507650286744976219146799017239161672854651044318821618056064387728832822414661841759863640147910646240483341559963186257948269749182022916951984719618732657096460619661854334505934546820493614945518043862581438577210639229388322039376199827950108634715393251378150177441955140510041407286485859011314674059747026062495390981217155741568487399670078865462444782336323586320131984392965149508278393332776387787909765146452999358332462080246878745174712289989520050368141111759715777057325853597785407869051201363339176059292792985502025786471889854170384145658590717773089838038165424924272084603001725941268150692980782807839046313819310350787242392340583880933469894072415444189830185816138267651856479993745542447950992253639693374520331929396911002647445573835158528536815223404710600977901161225369355334960728566567590996981611494683346571510008636114236064552908579401990121846413536670002933793205055158701404648560324257291856208160295486977124080060767995363317738163543369985508147882749169855136714176684987654317345664049372678926014437480332415402444913618750382399913449505644951010133800667401689710719072709273668675896155556607478562388966112937388533169862432826751918931756830809347814416735574955341581382542324216299823743470143327776661706772089839309344599541167751825558562483266394575985683655042623160361761992914648926003065472821983014657131065918993453932823029083805902687022863946676241362437855517699880498442106025667763337411761475855313001929241350333792205713984375453905786952348316446808229145396610385317722176912912017486862681393598653402780577757267679598828400784370513915883581978248877081449244551399365844550046719336502229795532821550950022226917204718353609549798769192474182152083662655419808616813546983905587560101444011460896733735794087169564871714951883589317422829075621088578345327416953121597514207242202303570724423693672967934738179402237176404604233090251675080201322715580224147226060412281836172872322340507777609483399031348715598480402130905787683741321137709282437476620366566022787153487976622121768898758266189452875847566286327337579150451586821561382298868241803663645424932800107067060739289780127059109959207552243287519560480059637226169694108465675254739814637312963741201861857186869378791421962222059077439075537499850290130126465623581599961645130772019779110026810215500516893469318267600089728153278102070898506608881839656666433212909482392392996424127093658228499913316443141476141288893055647050443274997343728377958736651248691306840621034044490578673505408780505664634584666401540715733398606631330767015593723244489056028006503392303593698391694732327910100800475285183720744856413292738925891937736363416285979524937514192742687387291260089048409539608991655142700906836939160254601896954641416599725686629911886455609270667064483838235757459257335270893272616105801154852532406276826572357880152124826373716631973214271954467180404406177515414631576459024137266326887903548628345246607796549586081193327796077270807935230426433827877816734849747225174965546622881261485893828129297476407512095563005357593399939908542704458949624738567652063613013510116236538999996920426733563832881625092497001059255260158088176015235953295794400460685250335892500548750832473161347923090361226537641328004090915746166557277166980797065384126056234245469308671261951912238777744649479069112443698929498953884246833948573211101541849774436594453748138588081613919150459807339248990480193659766948010410015173681454037756962034410095677836741738144014263201728087120735573226504227902915201485735468006467449792681566529921711261570192911170959720411598677221924012728328313096057522339735931710949037265058407546636333859842770962966725559485985170921526910865520458370314113235983259041722708220713315391219823089216406289224407144474872215167982250146259160966563947349441588397420324256536607889398179342451250322647299808396678277876576843188326256758697694289713080271878321638437058470229335100480178626143788057268988247766844232777231745655748849155510702912989996593872806483929695268036500807900943961796984705342568529171803950829410878053948347029295237263300681958628739277379342221761214913109995220767714232586925174548574050733140205812530481253511282328717983504385524500154248258851796756559998167088196176928958680693954122998950725205016299978842895727940570940944556448216548739141948843218866805293014116636302594064881387965664371278988720493887525762474994470969879520212788875884642793285626999737860470292975632572912036666635990165875194622086612831356292493844632885685573553335607621214594919283382711541110123076093216070230639083999827658396494492104400960031314533893320474116001217521914408368843783608983759932953324835806304850011893754803026541630588356075645465362128450207073918070579463016208531545291801867802942322250075361315444471868118429909976050159707572225135205210371008420237465210612565959097545998854362494310916152396219431206613354611356424876307941946930095717277643873451129266118096459765821328069255562114695955916259864964052832587874096685802167271117824748046370113891974444546884870566366515634491402445453111865854538885032991459280613846907808738856839420078292155688667768946723172090193916188055999092083858303962684763583236304763110580943181237357276993920755697191558956086645553678848241447155131436911938760081369951333687424898124446531118091198327919049940621214754481844426602170239436955614006745730827280080014205361959363038371606119858845402381188234903033543655879081501943571944055155300266998810425618873383537006336585982904099366160314467177035003637872517433689917671372493078211822535284038131364837809293251174942008955322860709214751879424757452293910119575664414073549798080769318161672075714189421368105176876665610770325206153061114102389689417316775164427701415496324423290090623358159946370086712143313770202130896286337458988362846663861441918513196470720877207300160939156075139958269194104215687305976313209519945769996649298343750420070876870661782814613069551185551266666996674319318044242345829815286378856118214149364831173662841141044735711220581371498937277055887646544911225867249578353135714675277290157571428557706349036206923479352253092860521279433314905051759434070187952216393808109611899032315947172325194892377747469380828821219503352178785099693671519974747577077700870871695950433792010296262325002165809877391746479106719403511152200114220283779335203002227152802199895618957350564392257713544733653412084096011262019119452033030450270699441717136660610122243642909314765717453088047962132548150610825851585664647642856317590565359882680758194021841362566190545293411661677100619526726688976305950828637751381356036657519686063504888534721208882888810749060936753091606560924667838030868229955667528852285995054364402479349330290805551870528610784394083738630177564483435439909195944279431288264060987818135049563238075144982103078676750461488089131943669844201057821876355829067981977217370202608445894362848749040810340438068175175648008947402390715360864900782671022083444501728981143913270286425767930330536344675127644179840686030870835931814100808250561488063982476873536368609232099514190692077424227796567421005823192212120748205266425755949916201820137039809223934087851969739641477637819999100500271995860328526547023805118256057859824322248362911292169944684306884593812256237175603619355639502564486997729799480842046232112224188529857652263932338830355513966390115595700968638665651461655251196965156685254724279455519966100072607140147050940395066866376304496212752237398198068363979385294465450855557403949702819526510882009392176275422270449206032065063386414459427736777557700509358184858861174879533812472477282241986217312476825582766600709081750560063115997359591468789338686056187550613719248142618248635742302294673008103061696347315348327417752825830876158021535527234632971499430450591718465123114461717194035294050959978009973736690343262115270118199739008815940466178586856872658020752314909271750385162762914278015807689055950320303228640680495727270868669282785719543526874616089377815119072541380059253783495713446551317828240370021181399430379039377173343907247360317565041904510929557134430285563348538025881675617824332784723793231998821643327299838204338233077200838978536738272070829908132756408457032126613345890548110921536748357424803750393181737514783539854659482448907971884064558234602764276932165169961512297166524680819153646243839965012683319741875070242841434507220245599942316501400498410970390015433894030383697514275496141580663219197222455498435135133978298778311710090642829196942400022987792965916609864586733734409964843865566161884068957352599286992420082937757440550975701594551060162207635231445810175792121135261844897327521794397016185054438268657485843354055302383937962830528648018120626431085914617973956449466924302383912496967540432900571048912877081878009504880236439776379885181067508004331025165452901900828501262949379746243508487764108010916775941500781325401400781545027850291060681543015630087669946788471540521785809006355457040704179600600812968205369214775131175730567865017710840457814181472448004543995554143744722860028730393186137279438504331968540946238302432913442904348243381681080243054259372480817351482609275079355914606878667737340970288563570766340595382021336179503364015586489156554235111489213147927495675942464192639903419645066937586955771226394564367218933861315675214028269096214225310994847643515676155415444778248707439822163600481617651813752899206062189870353182573004514317464407577790201857515537920164235758023252464542187611991952626307276180165875854997528324215076634527322618521424435407662585322476591306396176272740542956050362867598204396080288877017107378423554109323431037138600127280323651836655746613593936952896814863480412687755533624427015539856755352048560157436790495248290391404595390194078203320582641357164362045206888066591025143535507895356229715110943462822646879135452520428058072786810670579407882357594779121387860436714221969098447115585532102383749214406819215157002638284670090192808211834188773741481593629105143028735637655070784228570852952977007334980476744957644851008309210516343153823889143777827161564229190149066381677080914443355683282309473964667992899548791617455190048736249133596949098580012166580235447402964870783315113712090947576691349969160844811331197230883961362988565457640987916199142826830181261088147127012382001898803474211612870013587939691198665175669850453030263261013732338481286220381707839928323775813667661539766646395543056886899608509959681687814347472847960959055046359613828762277592273105726627069993132002472089603107952446615579226399238559432439971359641676199472799136574042616195241642476569753498650707433257550699367405906635414145652394658317555647616094754237677915357186556864135746207933903076480414699350765555501572242263324809246300210606481100283944135591698716460090383374761431969906340807731596041122506829688349679272173396420424489401599851048553199280077009723977939817030459137459619712682692277594427936910883824383738336678683921344016333530346600011767378658014444905461591464548224121750588801331727693309628122692276754373623734199741101818831852629714193608352782528348587061651131840233243215781341228980415419886296713132905961281645536732367571901689921751024058439410236648334990792563530280821352995498900381364573735194606984613562474702994596605059917651902258039753351941054366501084561216615685560188315989236773581281765499641383570994749661119396350775245366438369027890891120862773834093430465015967123556549834371312563616356099085899786032202608573689474181143799289282416360696351626842427259666762491437257715886798106012955121381700588304188746374089879544488999074378249450486890926401632122983201984755673482995673341110265909692757312584262068869841668233735477519963509913561295962618325137882941829425221178888204022646512781334072151509671302894226869090396526753542973087488779943201996868178255042335366105371953533886612751132361171692681790752503474297820826799080781159890457785254191764105451769120046765248206277179891373933250646534670274734715427571118226893994859821436555837121804323067153140162702348875812851833454418536435646988562864867509057753824510323659442574632602147652495597623375228633035950390548288156180747679801439403079365856632228250554168793112492052266208209647108884569445849306100271212710744191981575239497757129710525303748450464028755121089555957839991887957165599683316485959492336214856980437575575081669325115086526374182225077512346632297898882625371819094898097738782836657801942270284991237287768172103650963498830543544702265787969099687771230613808246332694606346227385837244559112673719074838663890260107179692657734518548074464210882316847611578213844496349845562293515122008377294834659184377924199788715392419153431047300650663810776195664176055846867894966124156123568870113120195258863681674517521355026617463046360528722350640157829233289987457339118194114986848733189229769531602555072986306637634786607065201777646414490581703433572046394181620030360801542307492441168413374153482600076570349897422861617308608011681181033871498434849045209389528137159865591998193967201762467282010486635210526552592099584895716351026210046242844125469662937781835915972969334857921119555002013465129135976342964703298769989631872736589672167617904648795531362999440391655896029023012789940588392713279347636778662320388729212747988176354048244883154715916444155423706436892778747142861256661436352443293194222667537378582844442907513005763455693973161781084578006657015459664364620600325387766378903940723756098495490142708393452247132203043524777243838410299782318333107833364850517480621616644728577692737849294391821497604798736677152965012551422067925222368037643390868873533592792067128670787517141298060557823928133427630442581453806518488131168516559128865111408371248179484724328548599756893092279108407492354008367406485042805454248211170107983813507607023214557605965598815779623712487733413443846509138662919947158600532914862600263468158876614243071727479873037538677593018399476905125361199791184196343927604616117481390176917635061350469953450137530963833689544983328506906890375637260949915520338683798100038371211322157753398884361502836948100555680011039679615507085114697162101323780572854219262395949103692891017285592259855963290509948376320993167187706225613431939802879149196429657355876084521778493783129236671188622237814971565680682676297418986222122944238117077403378043414208450041158117166675929689543947299496252501790332181944265335224108189878441903891215784149815761033149802383391010150456697930395178123271319106041518542814036602423229720543098358030777721240602317425908091765658970641098125500596572331463455727876159598108234003783450982973544316072795661266404218704611874386477233222177653387181012796280457613237042078658771447198974524191978012896544923838572833597877001048413581223928580332210828575352986767352497530822372130175895794727206479995518944965527378105095251594838242260828215539916639215659164781917143421034191875276652688413658534569979043943695743080978507221616876309755062396422333153398770297976949922188593951022584720325615235339085245809020690743564592381997843972472671208747965657252755953567977826779397593160913075143731361471776073534358570864225272650611667560359869100071300356065379493028136750009210605140606200692224501842759705452127950729665131283045417066472432506815432429603511249002265298236805072933553072166563364587340080482319617855384500418019311153426633985741632393381618083300965872890758725632026130885598224760520510817671433058384877606455969884187797574615401724273859251204720535189703254441761103860427832590251326353937136903584363799102962482644156406962936106512421707309759370492634429771026758779443626883321595312436457200306384640111672003943108695512206267296262539528820243543555385278117672979996082535835908179900748099697009384261485972077755870874908294709193043249129807261519776235015331199423585254735155416292937035340739517313479658769483212580668860982476347471918690288293469104903987359598648530644141852827465472609329264057796153071128390454388097440430517394043381848098961526512501076670523214567292993490841161776571565474303525424542124231978069144688260802805154882270782480314410561210574753521355545058594279272827093768399844297495343688793630141991899449595037579502283581476683775173696651057135686837593794513921569819114061008496177743056854576023854061647485321133507684936687202853226725861640788784418918126681357117134220931674509218140852482359947718293902367128142901638895243131761844322279116780698857801462300051482692957543622777861460186249866251754678970676678471601301860129646700703905015136153016156264109655414987062054192666946987894960593698936030272678358114202246419952124275062140953650090066138044902482160936716443028384405106774859406269876085680740083335751573492574250035246097753530412438388480846675311519507531273928819789633595222399287594347215159090291829479134532390811784398889159374985271827513750911839117704656052521301267409722586291533562548469624883845809069404411254622519956126285418189419373938232533198583860689423852242911339974440729069799381358866780505992665066745076837854503909427463964685106660629159805915272904801380205871821864626183176054743060762656753892712547272866286083273032355366888933049233604132898981934760954564797940649675008442118529860921136059144077635354682450972786056922793413873476089021854349138259807649771866125189525055977377378834038193271965185256359528845476525431526789781148545676044763358921487096805687561678894529623981157521986306474995681259593963505735591869616992093389802527148486296888082911069425128237581814628343607127818074681867029092016982070377574369708491402665704983648368748985397076336147720276894679378371284535865773000600212939537483614779204203999567334122660153981545587511076539922305075145945907826582309938068513432970438591954955334582018333920876691621423141534330709958603390766966389943875417395492978880960480327552573883074977167226111283022550038225363813302012491748152847478211804557581520003671026764738850558968227089695926866436948470342941997432200833758542727582035847317664611118701623613074634295581400309835371938285128023166534665945834059461293190722224463184917048620960889982781644790982052787942801605391036954404618371738659760588520459850364589974950767563910217181769481036591989262201136049159874623571301395752023839555608865404704335627502386079342137959031880220153117910295093187471181843329166342100400061594862990579932699639700837189710353027590078867308766945658218276600509927335055867079986787783952874326362791708136910015940035743931267446246335911848771614981186766825746287063067883874004323987921430180892583449608843120026949030736095440617917240484360064366264906915835434780602501919450117381440989387443451260404852971493173029013426057523816480094629525304410759170721452793042143579863142016850529638067137006359431398354967447742951785055851811463015708157705333792961838476392344309148912567028640570231967186474815176726317322460303174353805335559430833669876155478404930437497287069060488602553887103026350183064574748453179912965273886434995029703653034942806232776330397199149867615633656966523440963875021049487999802608099182286734570231166263293532193132725172849181134341973158926870790097224677157514011459228555341746414722677975297382752546516198799643173538223261841700622078863217902863404040991217269911492674637479526129618178999550655597181211253419313215009512230346972443342315653857383723344416531809911590814571864269065266424038870160653651862438869780849572912992226357671285906161922266730317837894660014029393900923737925587565234142613253784218807172050476647079453612070840397186526601692003843747300815701252147878197635773535324610771013124852755240738505336320354139846364206648029159919437847500421699526977127555667912217716176266225875910734710827768876249535564850777080994769176638169510916972726615191589371790263618973768500880697891861606923936977904020832270188741669356448766928363066776444805289946591379272350579360805938479072450876474390924130064876296777365870218605861451181088017973031653398226652927917260703023331982080399408795130274616822584431488235319251922265754952813374896068454067997560655485143000492664651023239743099323706657065064069724799963204704201328775621686003587267237666954289151357390857584306178981543854861252420345320856575597241873637775237658740026508225277556147768821098016686844494544706117338745559132181770602619673849174827977773134997387171913175937432409600864215861668880681120531202532153818313052518115427241113043344787307423599142916319348979792992790843642801812095799414695659845361045265051028781866909631367730637260136855444877726203597035024722350284706169580803064562250073084672749053756277500183888205264727590777267843871117295155225297097501929509173180581081645815267384468094995154133601710220398355132312988769791611988597498164040131289807027867996435876638145072600334895279751331475158076268103944055533382850590070322463952266602465515666163079149066050311358841273113841782139386585606110550803621089561609273085246014772949134049133394385631432660230399188917913953953509021607928772236881456753029493765947103416084234113208116920319313280686500176576058646039485213213967196116899401621904770404513671935193496277464058291812220540786769048705542852159636714782874931933109336434421907527110776975131428580201821590708400203761137413961513883982512711102596612209872340404391581220646010527461515105621729857847744926782206498356984686075262968497713712084082485456568195913262006779509719657559407826536376689715576273401024979428098564327960111554859903306087516507277185973829925854444190640446585168891132450334860856948714227033580121993282852892318291565481807396093768340911278476244063135096525124749972432987545457603588738381322420522567429999936076302707297767841904020516532591931923138973052488590649094297608764376339607358922560768777495534280089849987134220472722137920803330998527439832721495617009828562384550016120870307089942613663312108657747633680768482309197270973463695462713345557461135216407994061381988209136281732825157563948186247366033356987400157624566026215152565266711389731963915128243466418351174152041254918273183649355464979180751412027372395721446485233481185668655955420228788995687920344853235338984123566015351968906533984218349082560017343327165775675012195053453809586126002736139283941093236512232896701115739095685974314274756690879887102367884268834612602002492726621088240016222439185303726697274409009559001920962352046199687682289827313777278508875586109953765982613977387412192669842251336768638975857678386332616427955264416199453295268639470087002179105305969410270226139802552047154207106355158993994263893808741022963245662846999535849080117106076422089668544798970001006365103199704507913830285238756988117809366780246093151802110624761138409987768142546528777414084250452606870436364753681549545089539467330527109637643950576491494777899901613085479686937805849091602248949725858591982285179816438622915806427225442791442684531609718891817577938182580389349594203240130570555112550334759267753872115014602012048963950602659166331727754583026945195903530535738078223261647021603457004056317050293089703975732101866842410033527851613173099765018324809607195130725761573784044452230410547166841753349276039476564275680642529925201485134545688735637206907570468353794727269617465440656112604666500144782336430907913823821104762841233988738276139437871385125214553959235855906258959428857038358867190689370390425152453855898293565248902598574682847120954157793394910130674885820600922365527706682526544217545910748257128729409473852710317199110204421534687055762894679551191118486526063186602132941016541271749628585829651014624024411980696888532794622109687409370714304226974694378260636894434183118823554516092634753872847443235485406687587794242152047622534507941754863648144515950066984771455792040429512209508233807578931604010455755622500654675824726961708424508088687645499694721580235290518624221074868033047106343363607831879178818770740837115854302159570312138765217469240912994937482475167042748895043594036791099693614530995592939969637564313305652173346853090515997271467393920026967321406012666386507473258990636588998105840578683323155720925983997404939930647958954180448975336278580440706513067925645290332086287354985081780129081679257636136166785713147918895880493667295530974789533624487193843025497516273570933592734466975235303682026202121922507974945283980850795814686676957002829039139236159008479562967042458773475719432785270271934181690359418136231318735035517674345795852580303811547254107616087091846505543557027595481366125066954091722523147162365921274642231738133802807582438826284503677124646039843168143004167647642876445474008643075084777448014025699858293842333821296092053221156677529682183274602657842261422083485995322783764910819249155373615222098073498447903841968319941927738761201134983333810464362450063854285338303610732502163743336773210060613276580828417557249499146289440293367497210508765803834290144318840584904419066590652324427507853903552161144345870635426737900768883152398776371317358266147522433741827090753440819585949702184052367001154378971192671995954574855497987719435258010384014990268180478566373377481367828970666282650972640635724297471616119393816800648551048661842051725761688946139974809435077663843775379436704381207772292231223572228401910626390742916458779309330230780118013892929589237126772043375212230154957778321140053728965626328315654573869493990762024045491372364038755044911373518180307840831041546888380165114086962520710862862767607149435305823525143853804038751218031588876478916124023324070197509793707720437038125527940352458019118360293908564093727359903968336901122273977150758827927267374457710758181528442465458703705842445172181187067955190879807474374339603079552181598747417902483549037474432712419995088416211505086888286007202183771312569241023835704696354384790876169422618629659136501978338969820328336448234343472561602580601548776755915182180285819988902823378173670400804246151470083484994227622470631874690226582008748126174132537435658247225083740483706279136163053170545862800012708443210463296281523139632455168671216676484266308393467233243552593358646826927380059540428042460167635678063306139804457017213089215593440423120172793417676005601607362056246499818679365300502966411150385204926729957609269032977475326900264894380938827612412508492598894740222028670149676667626079028812391855845092785253838680067694100757678218655278543025394485944572929697499922698093821285726327609328891926052749639927290638936135069314622404392032319973081021982077110244168119218129932754521818706658216749135425017017801507422343806865141674426327560768723731986710736528162110957793572084754155300494270356091564008913592501671133901376204619370200594821744729796483248908386283466998426182710334515057922016284563328655915841005838939969813957383893188046054280087812417904482411799403593944964215062032308980921868038260038987670579757303992863415343810239839017398354103254159838107946164579516080976153722073632093203969664761090268796183365333038652791982477685644881463064878052490906177725006975836000048505170237062553697866272245559649134380731705005381656834547478939129118749458770891491453148532010241994292413435585960717383911890536115023660185212789811344369105244995650554086851729720704777632408837197854041622578381742100537394285184015517650997498516528618395410100145020732082750431694566210753888936918636666014687626258130746023336067824055695311310176642542405017859980308112119980557378271316368305465169528908226535804969015130618537267308227272779665958029909125855302948364357790292702241105738808233456330659324019067351747629334443849083869201198945244543349017586815313929705075672147976934790565385687917138618560503608110592270437533979357509263013959246551988252498539266034293662521930243534914581828800640605022254727104168364134250809997348554920300558723058500303774323311067073328046276950053106889338839395075450061966522745863629052663609312457969577241557466401330379871426927017188633664242337500663350954473126277110413044204845478662599558050699233131885977715704174274325357349075597355805199469335879484168785840964955207722706617118587379615378918550576230528792221660575139928250599012684345612207005007267307322730562478702065329541867652007616073743656839473836736387414282466221748457657349043431979557256685650344631093252805285956759837169528209002451835329120142851328376903710418236302327527361579851562470353807538879160650016702510489155285136245650142963131629130858002954909736738360253300051420267817599813738639124267123177781962166530604948024452802137384844428052720408440576643362280727560729921372504014037150636506546350253610096489984309934510992867461701700223849773786286388073196861850975942762686450199191194510513632673405234587803121498520112883452962443584959418631371835975503159004412142765616940507368579709502864078186417989220140183203311161503067607810101752186490304653213511140989060132114253529620503828301646779787355308493805230369924488611458863890324469675236754227084017200013672808362928522588952455428076419461483527551557305535796095760531225695327084373106716252125265817190996324124991723649163976633506252304750765452521155470846696207313563055355785716762525500479266474014193129598538701874438199316305421051004425432301275942842887584970371129179094552794653232125929927052767534759847041888492838043104911676654019416605164996319680805815483703082394978804226220683016174289659118991885898597401969389408531488790644194419505023861471542253701813634707032484456496526494719636424415477792927579099626467184351564765741883328942184953864616135193692242007107778149892832840192946224030879923086020613167429240538574758897389774510946109761695367835154737095056159248141934802514733426498061440381314222682039015193987687151042393036123159482811836895854679216662422753806452420225295038016390674374164483053799829695915074685938614557536619979042163943606527415036161042430267175012317709340602979089040388160533181171260990197778757136278361033862069534745130894754997447107340324985157970291570839688142768161493313516984132841082630332039762985064481821510193329833921905200237512563961495762247666350150837398442370116705299727836464334822070683827734555370331127550066987039834972996293007399130067383049809164023766640159881803433816704343481227092085563071685623737557354545437966297868141923657447171275241385399812882353552279809500115166835124459943137420342726961106962260538301170993623048046734465555775693553861046556168754518133236175675658371921138109258718643607380228009013832146326515662401865088498690799238939944871375257688827660476463268475263738831127698727934660297202507846162249886047111374847013883942931655960442387662362060462166238125576366024091713273269252784506483988490334209046603332703898984359115792288426156854471983836125425842485466180860097147916624610794961856283644445179950604740705293724437108119969237387293565504105177097399531971123534892745542398326535451399906100195576836323362514116627628442919990053884959827360628697982691120490776685517413714984402028030379141003513208234306432368310372880374371015813401853930104269796838102623659553934303638719127147774623750733474002663629054077945223341986616686508059739645531248933456660972422832384916471490541665888256572702349918198593492962382194443072813166138383019726751231234417322837235268530038183229632098856726495446243076946542362350637040446021696287315728191382340949301225689949857091723264264477144085587531595128661211328521368424834331671938981420138453745551712665467433602576039415644864364208302563598535434627941815416320873566831933318921629068489723641665904185667874781612276003787620976123116935953339494484252836875884870191726178801508240384104290108423614051506992362580415867624231394881869831189096479802476504591014671633586621501531767500094292172007925618278036102516819876409919015175117999434107581590476254777784706609577993543253953093371955264644914006578078281248898645478460765690333734970765641697127308438729535680349286466717139304786123549328311377401267650915080229295657176243398050848505455267050726029978379836742650477380293845316269620978343554804566965659235478402421396070556265874964212060285522499665430642962996178898402796801720818449796583623469315342169298726478441708215279051195304452481248455484989719601855075680971361198475923834424893359951664921082840948071075834797762828146460080994183678874785380170050435039507280921345498248814208545183487926216383475013669123887815868309969116673988279472605551476028563954680462986450199885374562332088352680687661501688061396606601901524126110286459314236659782515459766893175521181053806248583062284942199650578923553883750681794173947884732038378626712895012613813495947948512228290752804850953622658747068909041090346466585726716360249240724259592853935803109566014878443010169201600446900762671653912075917716011119038181839842205752258214908228777726046116838312510858846522793104247998246628141131973676229356244260406785107020149993501066435338011969800217577074412179774442277471454712217572317953849077688884854111084191465361858533875158379076659980431602333577376716590460859037449691910772581562616800371595442154918548793646482391984244403755859729870114308531704158887408050102868071649726489274962124100334715312471933380078992765300843578655341069356279460685087156239767875827572377837080620556554606773811389703651594434346759114119613884799969237187816211136175830470637698956203984825807628285332657776899383338913833220348529558397921246831050875989844253981400558364568746177676401641572434773624731825855524506766259745724145710148117162030002073555754688700561663666237780804233141697405301636840969177139376275461564533462718565055114284400888231510443965569573443598046888385043680598721001415998799386069429404516028316134056194295263399540420760741381829160651967337678702980997240648196376015052548372540007673105945516684933145828321876141313678591223600312244099544465137739134643708074036853060555731950152364606256061922298242757973813091275523704069684363839345497622408988316497995399247030016651902786095554255383846261678254633025192731033913949465350586537999897250801475029624292188866750023973749540391438315553165169408783293773301079128179855110090451244755960142717659714054724881741827117441801750570535747416164314863460650530004454669788170141815000450111026388342752782008539565829803281607716787493933251434560331670790930232582196249359844190080615766445741320795488283925159441620434293070210082671227102366870565119786696060179597279626408967162944948955973926987813154682005468910687255250600238719040076213383212020483093545839526200794493392400441306581931262005165305186395834151919941521255390908881225813654617139054613209531846467921573269155532474441449513308429779563972684182489186415735188612421831430500845486215445390046006468641367499335081836970686795353620715579530075414668583601225932989950377433447946709737884695859174462063697511230747201551865860287328761076481750101009325896662727666512593394094788578069152325547371629397674740064556996806312544156335032647730001669362644135934925370284977493322470556715704539467594461321256381444114886288469709177996460849894463064975285289275257086005126631483052129005485715608323589896740338915525545682460262178221924792962199447319374488488645001037765014969499256033365582838397732091629437468244422927100535132951580886240976549886531411335525506896732974818834877937834773400093177608631638597677750957754221948343678444664882979396665479002019527893345796904717824993028665264833865292220155326463838868636070468578594794543496200479812376120586481737973397545766658339295765671974691538210252568258049417759646442454835474263583296416833673288721359933267047055218957967167481834050769769479206224124617148571692526311727675462185039004071571058130679968958896232312461005175197092390235112333483328077125202025554841401071938352352687803652945408693026239271628067252026159900468261633343258017989408676068681559187927193857623622747039268905430981433420072009642705622684673258894650749218727522317134438891895169667828439741405303581387260154470301252226203344699437948208322887328558699175181714313173231788073341774990606392311513574447570486383272412900772858884569049084003817298786412963137939150053541415086907101854966062036356973635532586444685381920886379713627292704675873238931925178129305051693115865390461843491086395992053681842686194264040637960452099350860363305228603279244722475016559466729945566248948663203754636735920636908824838740328965260753895015991928728940201849306534243823930322362478884698819274273948596567842685715118096865967027112888947683755344329858482539703948172220378073960382648928355798427933686986185641998557986519517414596217731323340959675273201151471900793845789234862530991081335597675685205222280042133455514076696190327784220576379412044932583773957252481667312620965861732726438301202908760893114220144088331119524368613399435037122700902604301086940683401663746183826654845218288837462182720243089401196810057311417517895936962455088202676836853032632990727952036839294803220490231432412247839193711300676075004842289698079282408264657327355777539030147804666152841893990069607683033626625319514416005606157048202499373159306040445570741678221233070601795565564002233094241408343519807788351827174770077439080760777586422566642854227159768235800090889481215617673573313921411162910474368822472968665516074135600069177122165102884243844231256948694121639895113086887542405359107691223391870904438501070916308217990689638115446094529977412258463047281379907922201983958782677906749438654990431183989225330185579076694967426221073505114685030900344238388122608337490535298248907463319277558045949794613818106370923384333709751290718824750219283872396841948821373100657826011357639957290422059770248293945079183217083908732535119520073809827812739262481254035752593191859464645567141316292717936524263493549327814335553827686300779899004482218179491657212308323569605304078989395291186242847891671655955805541138509463468001713159943257850216268153478984001774099614302068885086368954784311564151623186885544113813497144501078721571531262594347907294289915192506237998879405953160610008336536877165342798348953570735440366346236321964957064586728416287915121038050102695831248754249684938335556336681395958449172353395204438726262333345273373670847446330771715911622441314797356220485624930182212428851491236299471477175121027765855758862880150537846303529046941412217995196747046051568243877158963505155969681474082370884586447786489050373267043233206268029766536323360280538374624262198719319864471194333123167213642715224106368105757502747027094603468147003025541214154540498794407234137346699274801474811652017226228576733266278494095461876970154702470422522343467561146264710230470760246914575679798302529934802312659028707965204326248774455365619017366324909738431525651262288089320974241653708531686039521303727390066250202426823591796413005997149260093248494132040190373408670118075777248709100465929918643527763141933019338213604299907360831676188766502045152637641450971877161620263473971705625868049589518601296629685631406258415299526797963148160392962580908311141168847517570673568614717188490774019624248141884037630661549822150617848875466115475723997787164972440344732531828627672576406022243939939042559708528893115904272336713697027664581775071886936693021197691747679870994495846323819982634252582649038177706845750580091246640503805268531089998468150233171045561213497037847746204024209424437886392349845462498113011422637729113847534295791746619168688364615650315470541873268876518188308653511039406499173022350156748109358056445875405860570830756492083816934634324860612117848517080262677106761817515113332951722013612288191883432976607590028839420901728986218615197227604492874592395420632635441306455834211732559219581497587355840234861281811430331213910759177714657781476337392467768323180565210887957470052648306787775220363931522277459788389406965977322668895128004813672053222780357961740832008469332101337442419381895852520987750338489746781127962429190325935177154517588869314296186507153563476076867962306679988505994018133189484302596560640931387605136027402419630902908166524606746300154290463375427698183911030121545775374233099346589337136322118091822553798352867231682911163804240172623410841275542942867157831360170190419208750325802497948018012364373745519127773623378627574214610768608320930033485771044213195580291928835487314459478268442314765020536438314211412992892057148652799141091539939937524817370023345555617151620217285254149251609726488367184740176922963106920179289022990703395018386922208285863408936757883789912143066580534702368252685796680528084005503268321387142492539761419635631788778606997559839864123237705169534092569329369386060095212114526394555216096331658119326394210168848786298951623197076122651621480086565372906365369690487213659055755643600201630025502555228451027046848854177298903055070413911676705653791962342151071898827244783709110748828383359892623739258580478182822318604467031202079754423168525329805239813683629935058414684079245280100377838827356055648732897980020546333912766206618156284239931884383258324468244189385955683948595228590483810572101076634933794642406246726241344462807274047716363943562471613340623251554445421729476962600429282147008128550579381912192433179135441610709154443844458578834032686411599621543325817049179785076351426813492997841148662574281497988625777665861402404807431821230327890424352281994186657722291251401548584679598987830813146171886812588100775552673082528936420106651238267902505255556895831194166214545054199089123773047119426854300779188483639483412239813574366776348543800739139042541441801275364178837596328198109316424463756065654406164211940050730135339664875861795500101438371646443679376716554081797405266931529824986381713326999370098944165321906448184657556015481147421167788959118731614037162225258648924410586159024945605601241056020400619662306078020379945163842969262443711085203852569504608822924646940883288977574688142830653948458733428404344748454435920976381854212646870150256101148185688527681739752243561524559285323260666536312681718944627323216353609968406693876605225145669615030197642563870627036090883666104388683537063402457052891405891601013646348182311604624726894473764512144441658401806327162109673920027229535983499371299558801289400424619452686258768474999989397863063970989282165658963222804783376631953502241428141039731655654828677994192521007981852444926765424501874511030344122955608758084313213874328728356391230888187859503294603436985472581293339516533953164171813652634207762681660322171291815607878748940823130838704714443261745306388711495625566074229686875461044533436726134585090179812929474968469752717066031156140675773946880538381798039909006210669736918330768840716228065097790935145452105330154729517617986723512852961406990102897373111201878615601465284687017007740550982251487707120380597751976731151886891573597954340082788302409298975986218977610226238824520503270620242890543030665512522666602902914941917409446010412327549106024377271233390314215126443225709523799555856238851659995201229584878147255957569607212892598670531067524945592083236867537631782182843549602754860118628221005748377606806931284457114063528450822503520423191675925510285441853410885543919718296985072997695259207000695483836604317608253397598243939264225066307802845925731405998703618475358856806176615501839740387616200650406821251393563143222730529159187796840300634606525563592624100439845163255447358150839171998753110477370257776551800587550260893527278526653393922832957912519296385499274012701497062508674336461099798456745355222327204966291884267180381627404181072436245537513437795496347592398859964196434284089814898150024796673084238934686459644172313220126791872781849695165153827038596652972544325417204810262912714234208726119225167376909194820945253201374525230178654343014454334872581911978426611280824774466691646296552906876892928848172097668607909577814839708313391857295087400560329916756693402986400578006896120415702671871663138049733563766237200251574646957636819784619403152869715232508090686535245411136896386310081460758040482109999673217896013263707318499660575148418531217705281561698125527039991360960410664380206568781960221532460777026746490886752378685947682467401399306920049685546141532056869776572314274466565733992189488949305269538247557531466149999245611845018930660051321285169707811998616485706477350230256136623676738801164863631539795085089856628912582620412053634150021430857072473955311067064596836553080987789418365663822974858665255230525283666673741035622928304632176045568026485906933902251517906691318068971611165231395007629880616454049480249353499199085184969099934537696408932306188839344123187155060328881948121127472504897968628639889191609966195778393059757266794592921663817114629158142642312385894390320966370458244600564589396905837307396532199271802372197663518972006263188305160235335816746532180679018607181278077529580380729909240220187057822005432740683946004016332657839747256853365700561733354483083940949267318766292225708148190498360623684816909044011618025060197613216472588241234075483293451696038907956339736239611934575936246302379205658678939135194984147631957645233649599468907220236877116770471728531749752930057112519958148756527780840592564580111975148137922881564969405572758898126183654931284656429721218655029353310459644998522244544205376287859080774153066942975105718244277070422803933490841355871858372735265455281438720975901972130477607789633559851482084835417856648913638867295181202582083587236356178396691279969012664888487310785766905996878178418446546646342076755128918339339970236934759041172818697909632335562052932488098087504474169958554392879049381200450114866647575579953571507629242934674780404580428845490692028097569840474725258333254285161773248663052682041559321177373269419580354531809575444878780865301047117040469845640660382333972689434988263714567443833408165955136480991208269233559887473119204662077080773875982626665169445701774818526149343350559662726827568090569902309898880229421723698919274712934905048808480394517004556381224030324326620560910418696407364464440644567746630996004990237131033690452823138602769437982374560837320543245024437818081738840275727635431969088410722211527663233236939622201723103288652193652013692787725973598622813995568965354268423452165814604430285011511462193940334404148122972215672337670961381134008955666831896173437361007184353660712806270791632543024215043158151887005425392804155782577681415811601353937083095830066256650804846662006200308184259731471788412884874328311061045248913709888454822812489386030761521208143730034760268123119963215051991982239081608093686680475828718636092397708436780705223924050671268133763874753230861496045991587607960837083810092854715939422472021799974149646110981014367743773994104008208517737580642025924919475001195372009231895149578905409488757693441179029458764941815079797331966664636301438123995601431605967552717425497634796644595643528249224121938061233421214132465349339149025035784316243810125717571688346935584477758930929207229729070360328551502844425347230280065321187927505782795874928500086679544706286483578354166114116039272915293569614251969983004987648187660005513838504862365011655597055999467359906283862126501515823679272293054624834298967439444930333740466457154121634611811590977728191141237808008999657831666728436061293837682811014534146025748116594084451923922056172404692715491198539347316264958922340687087852036885448001870656223429313668474803611627774585377651461788535197663442394182286627889717984564877664850328976830284522687533790509945705599045734416808242241391336404110196122015418422408304246942499166666268741351547726315810766231168443501614096732980583651310955657568542099789208576005361764064149467640659037097740671411692480059193231761559168838145075425762778423347232099175623163737926004331984569673184973381541022169948308245192609564058955477310520570132984539905520943704454682230610021716906865637633066293288803493308094025461591769272953854107139221236182138993617708256944417885254873367778966694294086181166561369237625710172083909917578342396719537959019361402435808221982087136043057119117672221467187641989614320430794392932251579269849219675233135992488084379951014903507181002429602253516180907203753681380692894593487698790902098618669965701007005440395372775281517146019643961499800555964546652059911209731179778523240095892271929089999869700009522222279325563596036200601935956738676209596696698029978740491710858636439022953867744725198099807834059386988083142660434732977973854400814495420975779867799490011703544907830339159625375430229517642566578728404639493489242267056289762583692522559575410581425884693735300617930180658819424792367416923364883454757134129795433036595873754502195079546285716050194712897655466265711458373202595431322990575397409067714532093577911072979455038501951178625160727690753756268906738948323398726208492227816835817001425131627827119524401484413224912463309263670319970574492598042823405884252018554123341739930820174673405361895240432607925703436756845483912235152672563904008730582230522696983978119893369760043843644630915226367192315032666967361149652362251396126535991162849358358459247043189386872046196876964426721406254396333775758101549904958752822406603355369257767842914851886951785737150730315770074238430765708894336802175909917938290755233802016187759234473410657830895502837686832147509994506459122103730164213923778501474276808379427485033297344431643460237928192063152010280263634886590427089965194413707967333955663416283215138834112067123663238217866876259324714278770148605238435885232662672722912538704934019387194918138558224582746703528454877275215208032245448490168100304394588733258659117380451617656599096514961926516618670482256902415640821592068427552605828441927163482042918654089424044661916131913053780974069909272166386894012199645261048262827338479021540351007647931403567261996312227177796539589147662494573921115947395120234276232465328888333992751356875407679518484761224996400201900055397458636098430249285247555633327319741211536837632511914581533110533356391063870979188419017921214669809963144676926190591823073304938146116688774282403970968231816081573184984031410658981471351534754390194350377908382798642127389208829803614580894592219427256193965508040903179179959025547672772920638078563723423857469365956060429076371943486107587451238097469941294454766731454396117305837929422436219345132498122526150858636118676619346140220234965089118485834366522497099015691303245836996891911813937479883884887757074030569239017303980509981551309042430057916168874743538061482929899293008449398129829884432008893751793576581297169541732675382480022442221184617765818718425857904487721078278105929286103805164402699129703744407878057479027337742140645871839550427501056056881049818697830889284878538442980120882474887453744205706589220053617718330976559636552918406481923888716538533337979022429039710184415507514786408711851216780344128265977192300138168572497232796399776319955934773614947284987767735081075269758260407632195911777439622314893316388397805660430809976008052019337617361166903254055266287159699293871854304132078053289862681583763504610412093993921280646751692583933546262474680618590989283033362299530715675562269145657364011578454198736241587838945434546260441152176725036255329661330233914654785380560619682726852167424894370145935238699511047315075064766018668812779553684609720037041527518507242190740933237118842976645437224598130325544983552608263659972650890267446691096518685542430345624871808508759472644967230881325739881612839364454410870604703343578175258638176328925361688183770693972771861460108868539787701364624259678656093602553704016736077213422739132074099145081181663640870495381338082971952407714687202054273006824166840463640148650149853161028734329498966090096533279017394597840870586792704007606372797615791074917300084702246381166017030274964939951513148247114784036708257334713178275865547627256688874577184810249627257772370742339428986742106483672494807235815170511831793570680898635179129759523849871935409077439384452548201109302741835247394628893183974117461911906628340907557864678290074957081296662015890252368957643086004546085643620329303053634604262296844394307893936993034158712460180880286402918236336444235334833886229281601652855481392975164978975434599875348189162504504875057046142490767243561943309130988946241477499772233196844539822754371019205346549223258253313259955984499803894444439914522312159902460107144375207953099983880660078493830726011571669000218509389321343891404186119019677083850608091710262394523984440044719536538931565971712319551205436750539652927441017440514736990362112082099431252101868139863058624274197947989047870802622630108593392455387833825094395709819680402634659157960435961601683812995614236111447094980604395418272036939183806279957158556378215869758085004314864298572714913783988729246598138340279473068854273647704831364395598599682507345191588611297387987832829005874139058534124693815081457620050423425021805618964556234972750647215372768865125351295947919467866447726535847673490622606546970148457252014051587592655621744383478971990254158098216557592437857979438086537524104840643682403364476834755146471480629438490328345202186726183953357952451343885613096113060942179012195588243467698524124457333089965026909285697518959561961623923898948432398137797587395826826630424704942124794425420117083293576792054710665502653027096946391431662871174900952435616966222901771186058020174187673423783016766253788711879753327016491131740720481150919799133777388257492019774517972726284065449265233171181660176170967517203122120640998694003334188368502310256135785884289904983569678536938397891720554519295801130675136242625502343903917257601671450288877948942139618911510368018332470880769715618938320360058798883733531936257622540484681666712761664486040704197506185990469268526803076183921843404743497774490665153237668663407013171465128920081028503646337063576905655055929828172680947026896713456120163547969623592037002569692529601538181487415377420252537970240152177116107010784902027299469956860995329396461580861412057059944272280620099409371363647572013958472781605018045987928957338161415238227797568829020091271477892838074565938969973899805925091339913895675668061712416586236861104712660368299635496130684777687956491743492056493328098813254499776510208934259495014062970009321452082756208761714650101990215047266934425914025111752583283499341886238726822387579523525086780726735993904672668668240207117924619870743112347886954433723361302083876666964246510038834898009537428690293727440986371581397877193128140208303000127388788185973149282170399201375623496617998853945491078206287002270078875609088908167248759871912321794070716752185260498502128438404185359104350147021646434277860423957245504569964968519566256192687420568331420217140618447640707591014572675770067323992858833295242460808412851887068313603361681340821944477930382032322425098816005775616080753367366545979180338757921079005459665418679058519037050294862431518651032461554718432062448274255666524541008729120233320983494311371888132461638445597825273922598516839499073446592857702693956280696053520501265268900423262841021745682072678640623534507250907240966423723441843032469957705529827140185902751480843650033346682072069371875982738229927084818877157676020217625622826305737492259695139268488521230736082055499318483623722207762282670770159435558889753368208987275626897629979946463342085663600230989019470918449135782031854462985305345974610712791795489241964788332554457183868823448839698216668576448251773042255147951312413368571619360285699426213379436479953134546653978580982130614789291814554014213257821810086653452774879459559394255549736640576999786555599307622097252880480258456498320678607104262729109830783829466476664103489192847225712986727632929769587960072313529856139007577087696002138115757563351590352486618658422174294809548783096043158031220149351752928535888040807109202179717838451310720914434896916783398175877955561489297115006902661073543130215761395413723480814425510009368898214652214138535839417039877552552919169298405788299801414761401081370297318779730986118720896799611189848411355254601365105901927827051159894909387152192612548292010737170655762512328327771642982378375392779261973177481795730483013566742547722406335136626282765369648348519977112789360296411345193621473705496865385825495826040184777587494320634598753219805171862019213365590012685069525278195926888397962482082430002070383633421069855799343291897982291580204439702459692524360388236197017006780779714169195586815873573186190617650951614878290177908403244752212507718812334193169689161165198478194914923367206988343059927664133025904712319088794940877173207527218400644266040704295843321729219172060410677845359372924936494317118762262202334927997984895727833729966511542301341556319880829010084737972265964724462928505172365457821913064715099122883733336104698379674878033223451586223208125570288707475258965789934174005840557979167344822975869563041608565494166546045581890372158719583188331681492503766475926299944570902952119956935253533729898304774066652215174797310076466376084606906619356747427149759385491267551633124890554144871962800449136731572226557822667337499491534236458888612310085198961992567117960945960545877362059070191629009308429178280354682658943609951160586778627144720159224976007018484059277998794459435395860713810431756080005757115763416112650398922175716635913464143657050796381473923822845759576076506097406786311601886949617445044154175868770661734607535274363899499155709010548605404310210547086662367764430855927621307630010029175386961395847624782223302940965688345914614695646038625743019216390242396796778535267559492465131831366969402810452536473275706545664139526688781409630944936801344697785486836633283423160136190251893692308215357933669919931489049037374396086458094751814366821671320200826725513248503725229961809705662861245740799701642873360790782288737192751090953576067388133321655695459634647079366098696308009346744566862887036867976686191573604097515184542593754000759952737668881217381349716295133490582859867742844649092437623777356158628232045732775372971880263119604148773389893992969757524634924768938157225828330907201352285589001838091266192818037706069631179728105359734594914557203472551338528117658499766288402283696687402944565602297733756584155621960052207655267060217692103740743530453273706324185807082009349071727735639141572799368446499892299636983274633727165317761152792968164295815038081305386505635960257282118817904597812145982152098078544498069163290513366394234846015905674758624797367587220178938559430771496496298717414599185581484557741315234836035971692077428293097505661648707924956351784497071026910210948302941451829450639225813026678968198637867421140698349422543052902618938068384994165405865514456108702825736686125831799105002480634078808739905498675975485005857801360558818635404286216060863872418827338863545522549948387167860371523722320594841720717813554467443594272447167050305050457301257540583383777879813672133739916054621005873247471299096982715608501137324423139922705290424259299040739071012134043573817467265320327882505081954173914611772491060999282221949907854095193857879420508215545234659811762371973513999115533380032436380040453101913974678621694328233193437401431077385255745945961400583745736638918576286348535696847169600215043173720603009130347330777216695064900427989351448347338459473884997595939424386526955932712137978861100049298104122508990920822270550059749414674748630382752122239961917335749686150765709706169942252148266359564490807914431167075680162103232363655523375046068205162154206580494925410875285084630997349169578817102559777997844617364964248375704531208042260308182700452767535055434209444634522663168688097836594413528148638206055661339512774480970569953967102548263449599175491965744266102057528293421531778845886152616276553754108601546682913016680401913914499069481590258131670690386946375502048434100194825248163659617834088419503398474536984243262477917994710530554909513574262183198948413370565041967526709868176097694394486480317954578988035770062541500801706530425385639791458405792199848816206524203044373350630843034102955355719806125908914131223804498297951598778061163760674777709444598817824274324853359514594571739577421700293400324276722851675279741637844347560185112214809617748966552578714633333017061899090406448435831639039366769170602255445192710850732953355890387211279414609439738821097252142677297752692219531895339237644278842900728788067605148236720101510089913950433704372450186636675321233815553621663931421127439318056375291029259861811060355229160235349960988073999406466922229908541483530697817974889729101305017172643204111976094162225702342026527482311101094261056406442048057343730317138334448276852791559499049249281102489943617685673598402422272770606116860484960359934502812059970835087135973415935268883057464626735303712002724520231403976861288717541635317181320118636815055478096325920175799889833980282536831376544278611614820628330573244609435875841004081951135217039878268718101870081186602486643206074763548719988589067123257485824264037305793614970925123656514056862557593653740309463584022518266115687407654839052077748589384704471608720197569779466372168397322138554055422928869272920892289583422559551893402239814044608821928806634670808277230618963816119070462461137680238593989432379109248385509761726448581212574261607192776302621228755428473898517871269955920348672442018764158875085840718406054523453430991515985763058552935602644399746519900711434789636118005858088764346433870871582899251638890484666244651063137626755466295222214416229587578821356329191568575028819342591533991196809710304176495387971603338606821620265721286043755105370578726849182107881827865280359663364963140379486950401686805744373123280590154212116927443759801526214555327667192339189743180947380104697259861451143195076967081937011625535634915052246566279003089945121058420998302913470403758511204567771919856690328860828033790331050817806705411043603279068823893746729652279248131712474936070644666584447684409457593789635504286977384775731368046458605410509978462735797851003677785728186249669974599886116668876387670101647223547737763545332015213834848554145543698381490417718933791862643719268192683161099152584054824255316159899436215407174253158866944449560468873732187299867147114971422366387562531593955268341308006147338684422646040648985861012660288336594945596771219676614142900488676415923846018662081694198563909602445065935006505634489187734756152023215729677368809262891792432616847607864584221764874408739336561857765220094365874764526976719323221705012197445488213641601152111157870532525180207573763241814876807020901650238332469904019013393264726052192753939900013982397943105415135163333353597020732976046678377016047439220305880253479669165537478251245209046747145608843972729076323358523800597795233469360963852513971091712680210836779480865345112224224439330032667573331101784882576024882652468541490155128267604205274010494794581803966517352597995635778237263190795899914394993509560733023769713218279464682531434964649995078139745910461891126091679818856580139383017796802916893046827400326219973714897085335116668652404507192651853937067449438291001876305456862760090411500723895510244066852111277602901259055569341565232082051797631962438445476785361413466359947363876857578441345024540736675959930545988137021920093218179387473686409301150105753911685635215291277693521422559925588529119847648491431358633862879370083008088279716307037772926859885194270450567106472956186135615308709090328542005709155460670489750962824488485381023621356598017262089236661529648514898471181845446610095954348919410513794075030602609656480038760811821299582019280959966612038392431244088332172346390974626962085383348147984946927926953906124193106300360882442642126953639086678215879499699438405673811654385024854399926306648529902426276729260487147222312765657728441694909205949569729891992613917251876704790424879108760796438600513477399863335407427640340461602109356132581334299445967122981622226671266471176413931766658745345648721866893243601113907811432002664396069353341075941088865834069445074421940766841749749160685793343675007256221834316424864331875510087771100213897001431956667561434278314832499554762475309166009879958338502376538160609008604630678281709492538296592764632487924346372625307297459925931257483866484916536547469369176877915032214117235635128714989607276478117757825921629013809292073623995119367337856105036455400247065442338638075331728019800388965931246349728447243086191082171152847083892911738604465061821534279761910307472937716264856723249355785272359501088980251199581521987678335736814912450885345055598522065863028766189981828668980867316804504204241360234050333472229330150549307958471252506759288896233637484805040117124097426918173343791753797909176612653767015659488159226493912165854245014754496337871526532907954257552707099618996126684653266792619017050795256727837393526380013155509120423575489368148121223790591824582740750840185744239294072024696682103202435256948257992252887362888796372906704671260757521879057281299123104723751564692142877701535782201550772645131400388247185541657723615452535493722498862393769415736377367603718578990258108961106448656416074674751174520129516190031231312481532073347989323149273556334531812933206187368163272039687436739594227896282456270942480902012557703746576883770267890047289861818112386911995448361180243288736745546889620150121480989940037042384612998943747271294937348379268883161188656661350228252716270383103268500306559866803477561536449321661799606183511634578731724196878694338713910701120289856453460614836560171518406937464126256775908196136341325751954343276486425158935500190015234892964523615985999170068766891274130614831680168375536002391269769471663728992194536792003874402604572085841389827845909211928500353981681866451758218214131010658321487717268863084864281721765068271619857028559822321027442299230660947776639032162992871529225098897724583922704570706524596755870181587264692183756109600256610405627976209047433410222527984519377718370525761383460753094402143080840513754555775425977387559969542666766673859753497714273368635996131104401590956537721713854595253376870742120634838139276322885734431590386989391728904660651703863964483867989824652400610245053820560868655912804728311056511773384723060989735049099422895445283481941401853088155758143897148691400516918243924115821221976789927938163031859454044454874196475775547971085780065818697225257624111289193297730017919167617605789592147933425102508743628126826239318800658084914577812387848118847721139327086515195076546033022589298598005967928596360851759630435590063217191625332412734356697151159982752420827133651965830981172258219653631407892639017581248529734987671226564919457248876861850018637789060995292753281193506523984893405985078550832259466055470158173171001453274467632969525522763510755946923420657423022174830340355826749704987513721916733472604888883376520627459736051925720548301219442316773922317238868575127392639068418767273035754527387887137374939570747361779649916160109794763328823404321533548956276793776422242786914263273067025861966476145438425668087988821088009574996346484476908286680826863490956745835041229334122521002031529779708177725779565041876926307315536049085839016465041044800293031505791649082133683831764848506881939401001610679535942693753511529669392666240394572529745720785191927273062798487791182508580247779689008274385554031279911243436350994058797207535158545839495524756607404278613385012147010705618040138244640395038708413178917195532661164043708845152581933191348749707085537157005130516832556916796766952252970912353516866257687771987831050321194227583506253197155850679125414712801030346109523169052872470824159910650877241885496402695918782732750162774927152477354205384213843331019511706654738338140444256374221367358908147229632200113494768426252473673895962429064615417020832998359717792382222972182457412691868851651859888233461032320246539612758172126035902736529192487436722671597469765533356199819015841340501925860997068181838815129009357748457914029901781516379713362051776492995267674905095423470322138760509466819862476643571818456309462477558324186659212866142615952604080427729090028671929283750851053361045069643334334393993760513492191448746499255297866301974482351885085519215478983769264628961112168335562357282139706390982913462042358111744889943038858592161619789984800950050429768038307171623310921780249605174330122970054650201878675371633475958122487865994948071492432556039615993757442570297172677421075160268799214637826979726700465811275995780705026304794511504707584333165777331025912476720763555123697854297657488328281158640964833392798501944177061202511472605945740167544962908319778595186927851549113869134381554937578886338604365186230441494555565764695417249910826720463015764368182657134674326896701058999112883839846893718361935572059512994695117285798915831653315083556509308524822005528266288624477705092631562378832719624120905047417447948424901129524551973009595980769689221528721010637249575730292380003464008174992941600540237744940967472370566877524461435249806240275009565940844072085433739165566340192779812932439203527406252941074133230636677439453597832585867127953972629579191342581253331446540660729505872018037651447237128580508709830172515908266716358053680292198139328858121207594394628645394093447483443036031625867206843968388683811732728840211686388207833988513233932686421862406416631045110517532929372879093115266119269601087168311247642404699039607733099221488058434560146577787920851659491325230444089996027288929113707964084964271922275228831021091620170934127439365090235838443145487389514976890892764499365861065364241119855140181937956223070704539324427903079136024292075277460633456293764870269564517071857313145114392527903690251969790275072936827256524801127587830516566412296327000054077869876102821634842070480271229893523153752180798490354818328719289037319241346934186793931303637397813802480304251750613593182834285060507760382147669778556178180916192020514104843180189618225183286299022051705850005040961546907394857631002418854474465220112864919745999460701156445489956078747753479710255284134670359013595202168649738147638914088876703897962243258842666863264565420581888854303191934641683722867000435528738882996773548550381921295657064128373354906133617412145061135717367164913584429766556250499182985090839681041477635662235085363703850173646202294544800923820750099256229389126048749360752221476640544890293958535240535444796567678020932061904171423845706758212935105061576443293875979477077177145494421405784642027832335531936957933083756319249935587361246220369982041077622130936619261124960712063938663304594358454709438938166573027776931436806725169552034231798037545788238573870706598543461828843175474980850852855230797844443352445944100327354698803746572374697490045888769069684528825409379881816336686310448544918492182511647381896781290704704178417475820118884151492704849677662558382966794168705502448366367789921198338834283605898680920209382841034278075403474368320611950165535491885499960890802515508092422535201264014055960683044777311756347372944206755993484807689820270860727328229847492499519820830723898460026760039908551156807178362247172018790562677243585820266175505311986765774137069486573278007207681657096442533373423777352546855202169229813562131519737941415987064578729187248619740622161745758455480693170991390203299120829170090195701438794433622489039460863444462530724354240174322400136796103578656384436792053332920458650800240815255352489616379087103087779843824214480490256869331614860419959764075349986305832785993784251520389320078374425757741221605936095286597536255230877785820382552505038385197514212037739166145963836901847439328407361286422918885560271830042581477263325081330034017652356032187649124715913189549040764759296725032643039825224798689492482691715080685721516448685045716420821065153537359111507208051622383902038217151131902490488918414100774895586941671928110581092698452038832510952541790340911792251187713231299141057994862086114522525095079849917500290439087479466429211996500702833616332744011809741664230843853276214184253373566571737359401204486038632183763195395423170496053975872123250242288298741815911427464233084520736963593033375877510791788089258358961027433452608850713221725770080121086317591701164370420370144513496197576946876251101252495512853634379848506841671588770153275036250194729350339791806992877894214276108032134661217041589240608573766259301138583251736662063154106383028125558152787659091395625550690502283342941045910604070686735100860846324000839643539656002094686764331510714407212247914754707089225239161693467199291592537349499917107608089076592543100409773682008671478509873349724585860312276443800967761547759758556839956784076547213392153200181556609386718712839978800128612088928393446696936424160026448855643018797828013046369591213187283385306542594931971040407131715835438917409980819858663966018046708509460971097781724552141747871132246130916367878136415534435355556630986256652762285770750624029987347358051345393963428438864835240642734562720337452805641547992528418195678520631003663104481325706706269677972867846608623303622107370275324709323768690039966928116442023404088032751708314619161715024789511998682219533952385601187552850319051872612320983140149257926095628621368626287097263701782005433432311077265518514926677173442025927101893457816519621185319252087402319662219743823968979923466647554363337276677197734016838244959287301021571255415810259979288829965003100153875189143995875448417031384205313966784856810380265093576278161805622022159916972166680442050669728610974476213200775852763054729099922690309968486340816614297877127685441298490450136289710878045081305956057517905742417929446700018677961785558373022551363512714504189824396408407525866457596696484657933584061599281822578240430578478146862703879188146225048966078256516484449453406094469282967754208864702186585217139918720141797551882795051612759181575434533284772452844802353296186963166225885917646196900926337487357115371392317535765395585663863028563104553974578060164680940994447955265786306327115272314493738724850200816341235591554787680538612416983948626583607352597196890678452000733547953977981997938313809194046836671691307713013241989451381078166102999680520005507505032883100286549366415346847565855736188366223231194882347315330272778812397880025664186675566136991555055693130894522756986579872761197128260284133849153833242799955994428276275705920689811122540527680824547788526856713960256759113546388435777258944373714795273447697606637277103200317624873099564961070605387380593367577208158803839701712976920966488353332294108557441283053136144104829937049056799563328932432818830389335029654680263008771293136592634045389778516346844705864390653979201342031706083828243953040767971731153863786962867692337664822443523703825266388339209550461051451483126457036447237225531006784176685631822951605080897198620479614071475403789700079345988612577477783017370865295763123081046783211244505104521064099118472346917948601131866533098491596033452060497210065011490539475707533525289636566616395505131277146139985384526561888872668667804615072730837675092459360552941028566921241686478575180722570976568480459430716675491476460881323634825072392635861043960052619046548126146062869836958652475841701346283663001069277975526542848598115187778356305963700024463874751575516687886989532535251659806847563148029767561998172396077893777300393830405206027708469847718415054538147844563942837361532207463684448316671059858210093703128908427277120316559642151081660916744306532492710330351722141106462573371105917533007231335556978692213442758858240261110149784240349369913202608149477128451827481197730929649939840180100038429767514112559962756513380709671585307107930902810246807494009609696013201208255151403824070628469258050327786372377242200873099169387998936078113568104730576126968328838788801907651856418018144003293407679904903719617074016785582082216815287617641339393925058413919036348864112016075655376533318011561360535170544035902497787552178727641828689971854435587235157276642893468972175639389517133614306800932221304406327160689559139627782238072040398049182628905368722151087808575214791484919448507106322713066540924326590203215728801004236040959724365488416643400048952711481999832660924394067799082019110994583049250135002604370981284784575838604850510770066683555055705856628457543355670049934034174595955852828930073952399712249083542309731284280765262710269736816202796172137284829457796262455573272708262779197959358703647474399370401222076921966735908090115492221985430820698947375374007976444843533667741191430105744298220425972858339859553142376008370134398370582647270209053927661081342928805447032123100136020557395196389380354271427972950206571860798922354264468143796050598599899548697162716174816811398082114678768798903763164854292207892966105188692387235811692333784297128566761595020670534382991280188202678713573765586908416761836210970714563024625475891216460510901174352560940968338185795065210433894928405596858766583311488467276409469381358615416657500127653011269380317190202233984888246595371844729952829706874102959023772998994583953360568771388645132589690519213636040950557544618340887423218653614782970742307390035690034519255517101839223153400799313012408699348557176311505654097481316949291987701281164794982323642979196953874602187254522157753929159542406630873235138479361985471741025757042440712837276537960673657125253427940417668268274352660538382957348690696848867291740685200908518572606199122793131950033038142144423569053173679005066755083897056438624155369083280972043042159692089428647728005501416146594392544220385123049906343755905444194294264738953246684604148925889610545351562124694238620127907937149477232501026731471328026350777456084896073696509667442855519418654247589817229311421858993074292748115004865094412406300982027080513618085529795537128716637664608526293542882350503250371249933382975838533879871199676087485451629036062783244300176701099230397540308387358236549723344659576630523547172180457927115027066601151905629578263369391097353243283450142220780680198069275378783359120687993292545823482278156420459362420212221161945757947362151120889222730364597328482794690597061206779443110956515943328688423886842044947384489243519400274596608364720944861961042710749224234353306665247240277217025805075372097835303414223522474197694183769760345871619157145220657774247996963922386022728194952908935506412476411709105296766304570333747613540175878517133059366601921879228047372518097790697105009040430599466910656530783061930856859799039854899563395638116541866964201137876267565728980063326537481802776256023727789686648104577900840368082390322649699573863872219988307505251134152438028369101154799196336668465547410201212786549042951969496144611774815848720247716397160425760895744199510854089434672247715619753830420559262563737195316910461583966388440473177542338411747530515472372448503996548733340211062720121131937511616376120948263599079174841402292243514544664629098768651116341019408023134431594124913895505481936763770465339105358179358035494047872955287498522080650191842325762688482429164300654363903418524753233673755815857021730767329631067400603749987109633659379868890801861752863129038606932179640850320847572143408312820269708043374212632068121718462826801551339604304435702314777620693502064500206392304064827540340375779152251515182471532702945880078346586641933283905495855652523617258708797178392382465072422226346207748693502175284110229931124992668850142306940283688828839530005558564639859642130621318356738698218388301147799045444009408036752496825966202698590502006279334968525736748381562626827580696690571769456497813321525753238169483046428023946172293528515646045655003732700364725308140239706656043719199371415689917827082576502267034522021465360226872321471408583300426200472152502716194900531011068401833335344474697626342585411534075213052806385891210086450885171050291730707035250791030287254085446940483089912420517973696210400992778102071709369001415592046659753352624860094921360193181954208099378330224670780272869996843911856354964237240059766419701712796509141294797330739786093245112554417290927833803446532167223398839366410567150836016959360921228803907036890267129148279157122378223435881257332109873056930037270657267602775777266649967019226823859485743505178365372033733676006959000557167278837871176008017526893263715706402418657299067738742878752019766325988747691140561336121546341527155311892643215547475492186438536007888534388527709404518243993809452420927777799898002226260301662850246369532248433487685903952695623565659723186104870883265174277474071844344325049782673715703657409504330020341176775823794712891891604614573106827773645999188712513496324375569872014958812665262719356521114787718298125489127065671597656020002773673216593559097076373290066404171261011069330333688777066160860126953916723854427343887906150215350223067593894021954826265827777245125973199508400442163334638392870767346299650537477109666092427315843194505904552714154225304179547576698947057392055812047840485170334406017907723478031925396059024047520096745942893635229695066534434202751985580548014176720369201091038887235208603025074881099266937860036925948936474579665265286826711091629627167115378602221584564747480240420462523754818355773961677479246453903018559723380661041386433585280030138904072833578844315845643667082813695577426103496774214442387817770557676488647334200287845812573500816192110190185419819043410394867738781299948931681086357891702045275850476955581602597992921594658622738287932273638103705601539375552181382461519678127064494975262911122411940275792246904036085194951904267842108143853566801235123443160579551286277375033369972101812380458134933652545798531004941455486777378266746327073972224796553967526519370595605696656242226803839820332469032883513527563660094014019027430952860662867454822318722444018035882595202390260917638128985990549792304979257456648128235835895020936985462196382494878433224695301583070377053210484649013932407598539756617711003576981948073171576998463287313461472950700412585615079082910356027433523394349439786498362839851656536388594052142340935948454142165574772282335948212158676415583672009076983753838966315037259854457050663239166167892355946845200278524261500474468587948258360422030517493669837933255498521428188064601770167772033315707615748181020256153178128038565232744352214385717747254895797395112466880587082466566497942270719890254468466637249004371924425169422090385871832578569725115124310704750756762512789974241673433177388590335669997439746668914588225483822614962460503932739976521291633194969062835059539346566666555840396881428854824613259305471819063032037828444729170187664430530311291788087313901551370759343451161466970204241614577813870994162836305537578341969291034477770327635848944033718447274218800705016517860821253152199613578240921263715112770187240052546223851893927777810924614306834280253062596974571011384907848545678757713991003932950449189332087354134070467924013294591295449614387886500377691939933767789367149280073794869605391107674478652025653734703530452417312686086563407387902638938562715141677222827287374483475371676730036309218936180232637255642094665214487281846696406823356476533310741856309179143898818837089876734012548651896565775841758016914387577008804393387001223955055566389635319323334148095737780518591620344460487517081995490756169459752096036252775300733683664056477766208298297055758549049568273002207311886756099479390386295912580812383043660910943682654048157131219263183184284070718495852530714506979008068048482523056451079501345169913240265665026956061649463142242293157443320235150998073166523897228703089722442631482993487313869957004336966111159819043400997070871150799835149167314095290678260695528801265028680179144315907168210147759340942303684917373784271598849947835706448800302327680705215975935853678060609867867347062589190972664367423320674733220465296842367046884916757794122834501149530887575000644107125769664024479630826653477878349130770618947901620704673949220431067197464497890873198483391222153329453297722232868113624606647826413368786947597514118225215207384508187432350121771232744774601194061606340032607161118880531204667541186248341413812162995544044462822851885990953049212682291531579536068292901030893243689764557703660404438740899369536905287016632785036841583986316111820303241399020705606774050387904917372339251329457281518798176460950458111747382096434129973599205363683811669538157381947800715711255560399144225680155157224464815329181689532069004686471422875200866691742690053164618197624191439560525718302130740717434971121469635411123877544710704367505338955736123442513717039639871784100745185652274748518856524777123610860332335809731353708094936343935095755029590891090527172235235080627576908248935972969673441971133685523101638134535930906813042554443125074851945004265663475763951541167815901799089435629111476819877562014078460401772545446300788440093583145508724270840180253203208315522252742171742042090456675292680350238484413097972061844082148933090926156080259099068647276685108111366891288617508092636244474314691463286197194945693065343345700696290223051811478232223442201804261061773748310418182110953535810811778911572926987126136404741432564195344698405793085687978135459952761591119884303070229807642786792964203207336366586808168278460088717192117314486798974283376762196674752481620485060690055686544815475216127236328922096082833813264933114066357522876891729399179139034475431981008364633839779900975771891363969276264206948253407957910455124579690800592766990896673463947003005789307880977718466691421220576362944045811581850201332407442812512018495989288879783577828457717019534986133715694158051360968024151184669098680322997528517327293462855972281326242704679431266016656419769749245739707423632545339370817421761578115827076233443889526303771532571086971813815748705798850152282293843520609028734017484382372926215593579372244256622101590110057194765208187799633133490506791326932760789213151439297152859771791621972231555443789459468834093595480321631109638158547448147447180177465287145395941149172519128873667152706727925585616173502477460341240333928036931337852170529857469499441767164333977805645268687052006599433484865637289045516132684451660394164162066967685556094879601929962907262481995158952787854684457701924436942156851774395585176810935416143016418068348247950661316343538834139404762797093613782690612722020076699149014722157715164120514486787494114773774658031167658111755424210416822921510974702310600686291078048183559330788206837947372173166063127468781062803961439091122343652911372473470803405879808241149741738108431156215375530784900659656573521969406661831401572277079704987968856362535216159482230211108455230780176987105310398278523123931271807385415432276046220991506212661564617729838802956441113696477815816805444562918574140471706678520223600130089343090584465103296103054874177604190184389103420732144832133909876151914590120019150836413529501495306968314486007553725787661361213494729993553715227030872351344603354414050813073778153139215727193392792305213432217613630324455622544401427249695960228744747697367688189516719183020636779821184919847914107864628340627561717162991706528002386695905256415937150706490216636563058798102298837957632403078950314744661846111266794603456012289020797634570597027396309942845500940615346431006072773994782726187781731875212516085375983760630281322711658721315596615101085239118359020734329702211739124164873721966784317730612364420739134251346943299880380711235824978964542664832763803233359170157842918514473250776071541886572049755654999674395753129388694979865883784814704136034472408075188674269460401326803069884471193274268057756494367085769418974723602711810987743999201010457807114216922483522475315572150550579248714830114693649515158634254885741353413844404137673262973351426122332823977453613295890786129706689623605142315088514173506322417478231862340275606538446924842498967155911715390349086492277564618608355666870012938766238692900090043137761819355836296695729772716316818589467433423918385236041530354091586051921823611278730940583882114455562995291947792181058585007067852404295010549021114545092825983714435799619748668255263434545722060353824578073929390997179101952736828457176383175223406287929912190641098766745208392580348750457221100850281074990955091165762109854132262533847671767502075779208492727247439421547557707720907361318156015693706962646074443805304203250605075217451905327545432572404342916630100643762848922243379757191673344154397861861083096321308560094399487965057760478899970468341848341677750269205155937020227972541212661914305578756665372705435691286365790154404889815062652605885907152175341760005275854362823530748718567817023800383670593216096334570281402475409722457603071744050192915800156446172167079407011510552066683802356724554816080748112681961292220156599884268000655638275662276559549176341570560990868744701712581020355898049765742624210249104049879343749620998566425017099568271510330504756355022811794379095978519877462807459708260519899293335590137863166487318513235992412001217069370509153907911801400563189265539755819405823278555126373182160422651834316498885752151050572138757623974651405322637724849673185023559295211185423244353858310374266312017274091517927450954197062016544807137766607569206012485861053908739169587619695501437657133768737729311232676583172453445306143804573582396039007852365987185770189318804781258828306976954094617517355860884097353157442980536864486368277898158268700805983047253749354812222673561907192832011638942160297316237222647356204006391939412436541498109562221089105062262424671029898738908306625157768651633570383738760838441861060196763218738779558404819266409271827506732768316494963928513745250659958259400667386627521416258229562923838374419862656238009256065540231692075474108324153908030368335503159498179572021076549183162590063892841217671815166146545965120752069903367276731162509085707585494256009038025430042368712592939601308971573942211574776553553324125877347158445864187017904155672870416144330330229348768326136296326674887585371732711735120922087499538218429390390451945752395496526004586734740599402343236340935039063288967959301476263280506160376974314565749515456619982901990441961101128055260682573331288167339686588368564155447565318987114245436909215538087807945950874100000044745750358921169688089113615576525093210509397483653808190126857157214467005064981824204426084756582168672854665582944813625618060381676741092846830001473373729087331033456101940390758675128071439681277616136327585988490720070814347247699214130285100161129375371482228832613948140778180583119039840538688194927179396113228776109130913288905896053885718917119232442097163948386328749727934446294362242468776047286331415017757931426346296965180286749680308533513814480819894750197902034177005277378677337854283977029673271006567285229144340691085179254562307627484027887346094053933438941135020165534727884045618219793769587016956913806627161643480966343860541240377254668984028151310751512932228618686768642792977907527712068021548744359170900874146068071337406096547195893912988009063494509444530674952656235327553272280590677921475756169898445327627666002115810386575875694965902317130233129565549500691457387892395068448437350583769665906692694903603993176655001838904255248104106059010551481398562779109121241239628320706898639995362698926935369263805478242913582682764021967026225897658466391017868825720837160651983900387635678214170302066049276767456479019049073910033473931928585277009015324387768256808849656566897800450329736238912013910466644220626208623835888360542420750985335921778424594820919385026190095917206337074874525768480237583876908200235985925570745777884330744047571001567091420471863899203931771803780656346829122532329482983666351414847331798364004326334351702753995188807109453447792922332453163265187992108559720884512001414435859152314440527186753071096471107906663264409221936860620727960588361482913908520350097036581295471847543542212452692887111508389741511251050484741223815352817768105286853719926677063533453110493266553458163429417563786018793413736061961709080342691210691967498739858998735252575057677760849308693398644041910377143649232312875509269043719465340975692761936488926616196995023567140296462229406199820449907470580712651668968843337205034649188290033985589513153171437138238949739522566116583667800444153019386670587081078322920231064789884388344023396506711059182876535691772804151662748730197584190117605152244093881975351095544156039690430408648933170875919945499782487970021446527240714377780227705127729420040830772752338742002806921494015925576544159568167573092269040648045887003572438584797275241918641027668339070142749227762559146488612122161116490103766132139062581609188760984332527423414203517624703220193797382733492056550638637141990218324983900804092559841995272746368231299586857771594005023814180228283828571360888392569139534972605307850047555159513162823270233617428635044671880842381954564282788873904848827418434812583124745462119711986109782238801141949496562566698788666757700998576020344366249932326719871267043248242611780866438236873319984971421419142246550739264065946658309265808516915077486318703311997782792453012347665149130192685454749190600323169270801683903052103325085026074252672599395020463723434397094416526901136572756027924272679610264269847793599844068987100953391006303905823061452302940743737981408934789851476333383294836172414442453047994367932938111390346717011783448216244328234848515663993301174610138202505109798474290699595690376673319921766878784489677811558799907402006705468826162065470212540638532779029009387265375519832901936817614539234203673269219380144745292066206495500555462013389706745597444749611824981005329561815499748279813993867478555353135173102897112365888840082233051952527428554573161428066314130479622944219509800777390788310706131074567122850911560067157612039448939807821742624830249074981968397357488892213406832007145775313300261594351274379513109644548469196993807835012102903427405417885378265373365101576570634495250285176350500109894989366683861786485944122097398357505316828560021587776979920992822107322839946571672220473091346765117509331266210168498693828024593322226593764524236332534435940739462163796740570952840346370746823439575256160924823964415180640378397404865860506099826960124842494579967058108780997326155444740285318549665473002646972453043645830991055688120486252156591979897173880523882194808197966310361514892902787236626206486214407838844959397954623275415630056590153963195115718373352846169983266468255573303749157474743031722536790465021863229168701806985687181495556480222955354595424924635414941015484909494320916207771787180750122009029823971896443380080292547399287777329136384635334574870476167873766419754791784472016040527532631888116328390442476856773707445498513948607553911291799721585084483460774184936830793199237945809445961979861229742775909256331945719141374749038715676491290255409701941758385974381611140084426364049473236852914009665947527114502982905830709829445119256365919109913112804523956721484286693145614277222900203940420624129214856043332904615564544938216137004645017537610752597141192967091759525803756878559221754855103202957150261725656569219615074325594124679034631414498954730926369920078291627739401676693330049253252113429600347580583163136395180811609087839154862285496185033121164338759882555971203579309653028498294979918100091431320353400417191077944807426662201416127260392805167155209296353791894154414935110647071561715912965666037351711580489886767465417253279704131858207796764350297908500599543270767550317244139875442365128502123320534864250271766924154752588279848354285766158336253378557286364285456611706646854731873232606315853987227169805842156300460321081465984934852268614615012340325608126731903470402375386156606857222678779586738151535473941014048979637012517617172346070109729196848508466914690666391715237094637782985902888672561938451358544059550590908615379596638422166481697165866590904215254691024921210390589469978272754799204085546570791868888341531692372138493976371666807474009866808659318409675784898163711230549235615065572865084059699096522264024551798984712404432346506089562633884710588381057932509634569759767147258789014301260355984576030694139733345601153271203831971087873190078062322410594539371952171781036334032316481848099784758191860358101965296015438168058022339429236415005709912472756598940452834087897376149074504740953454122619463931626327213389355451464133625494769021381027331771353959732695912535384333490066254320200812679586912505282058328604296959865982409968281877904281244806669806524071551617514908653587370720452128052593291170378458793965545549394737160597860802709552169668817878652226361721102044965451590893848390917615782008520556695623618232687562576018531031934249945841252358047429675803604380597254081501151354396177226483585537145952762916314916277853583852517741783154161860602937807018079204752372234670641644091342078920553519269744192936896790408077524306510938924805677924819134991837242224348560216426642564982171561204574004609956689298388577249143548904016289936876526645684661377222706193035736662186948952732306281418641974215691698072797321025187149927648156892911020035525102260975524653255322459570605151313602249690430309976086564931875524828550520134363670834331580037418463188197758681922200703845773258660028464954953607862786606136697510737890195426856510104687021998193448744815919112767859185245017159670144098533473147088670162533300108419871190318516911604791355103793600349751559119928461935933268066267763745129920919961123259285262988605407437734668215463394782526514748968874075871766493163453977246160553377644816003861803209094922900634354708116765046203326999395525852451430390243904913436384178992908411534005692452079542948113068448699308796399742892993566852987665113557353248710504866376295370449341036022844833810747170349203096992641192686590073239622179251677443617858556324097720216671377777121661598865624207723224979606163788557239291189117720192320091214708909171253522014596335558912087799933469117081053212371905195954134684786269903661117989567409064676521540430109996180805923046183430679229294952333748855137999070173583533065078776456673063447205663275543604279364848751270662751433836950924744094040016337179457487943234971041032871431494867497274401433889981063806852871067323684656692716937336530044687744489141854128304317698018111154162022804187968200685441020758156925020513318551077429225937846981538224153146822353634755832127648201833156044290088098106181455794059108150540062828736158217330805858037158742103051417358610917763098566753335327545195477155919506707674087542977664296306482430506649275632227274088268749298302258666880471359371631466282880248864458579034720165406435894794762275616831023118460413035689821073475410946820886235206687008899356008917713769004995241784070428322001039475058281758813965959419697681655417992552751655737068139088364919183121516272408387911757280074706432768202165173275348666086136645261024279396326753010103136210578390975583856549458119342190282494260627024127323378327367841119656946817581974960158162188019896191388227655768971608129402687734544028332259609737264055320279741751322195237736780044772458190443031336080028519383233204528432883833045784396038406741021792717900078748133683110070926095400992058427896100526640927209705667361168014075643446563162015125469437974501348955099924248218639383390008576450952414353154711372149727276800983430461669691687444293825085161996145731870073371481510189575144013985983832833721525906229369720270138872956293268453801758700525755634062110979515776863679370230694505253570258772222734699937101486107793602471598513006236456555963471519413856625719563745779414644746957199985734481849534460371620520008205727274516897542747676068734687451211449668002798613887357089093212856525099068350230303907459386505672090693870402136063327058380256761950809724698630152051923120423743115058206282446192040660601912041546427568015082843992241041938222762155578647214918841664728951693975084106160707046394512252433027003362997398386351301772533053055476174826934208999339962116953453512090726731449138858528354846918012827807212785135232568678573929566601302317210751023569886828693308513291163435708119638363991101836120443569882744459177589030822306773182826248041809184003810391472924866175307798334914766673653239803573199401556019580453051503937827130672237407743864953640805426782790492532246935111421196798949246044201830369618011105628011686937242208217076991817162744133487583626082211183697263824244839869708537612825470467018273658875056169055025024602451719041009709621336317043833679663266471789933724392332146594258776151028203618252447339507039483109859993294925022929965826371239281589608320476447952101253101613960954399613976554161707610206700469048698611120651293822625209753728920836086571627821615498966382295601816258840490584786927938099436066969147285596971624891548926741369154459258414556620587866216403244722322837200087337951595666415691339931703172038152063900623944313200827189331950626728143418542449529258631620060301307465268557230053257817804880015586255251725946821794197891201536943850913863451581301420784211804184331667795846666908233415288404387294359540822254220518082667697168442001870133876098865133472257297376016195683559766493443029542173691096732263816953748489563871854362197772048287867047887778126287155031350982324371099639559402711531793121839136375096487931991415846202932344224722236376552919035887448572637369093893127706793505272158576213340622635005880749258944484167016002704007022345250103481363914167239291692989600728446708858676412750782826421475601355214611470476405268314657970755729931166388720616202299342390503092789228879721722254885057706708481602100870381017745550516072469931131523657689665476342593331138957286956391189768248925939316065779938231739278718107673826276309773118888785063810836911369529554160253029632223128619248325337401920893540808708474535904751330002947243812738395007345522823012495229814125819299600473923653070994847866754198919475612233727757000816033903756436721863771009481411922770233543206004960268107219510923187224163609814051361154540768491325870088787965568417298003997727912497715898070578364957911537320845148328072891628453293011424600999021299107788755829729380058155380197525545499137993890735520691883899912542180290734022829983725023808577085059919350121279283689360830899874908836882598759393881510958901452941356424068058484545629856804493113847277376618679537935801853581208548974451273305430122698604763968093251323383963929305501669007366144160922463377371689017044724019973099423266126148993093605880836713131373589789258780685131334902597935694408877649889784800759836347099921606171853467850346315399465721569017242827072394974650414574360949098854114478344074572828200270388896869906314947032196414477630320656995667201752662166926509051834324278201762385619025873951053807410194660130873271477808723522193166337647846147276255388249768660922116273871629885529288445734222191057568204955700374595900133943777027644616454830428215990794241734039097165526577303916325683824422290813212761428646324448347478425942259299069065949954066221858579169055148258545882049930282016537348761200934429141134829726027058146787612431760399751931549926925619918514334394442430778335996373933994260786943793137488149123014237332672003871151383626311836294867311097835079449465054112051066871736450284747422856678670709038839014382844738714027400010601550285438826913742297448998290642219000525604497895831572174761182436120566631953098936225223902888273642444683266948417383342982471896068643750278694801183112143555030600084663091185362647412545951630980664998961424188126490679165101948034784301632332641999672650272521056671200992799147214848113785464740560367589861803516791736929855559603985685543082845781195422441437748538519369664432818411595383750925611942686862264745633268496403155266528985455852596582161407958958333548649530014456384933113173786617217517570067938680170534141374373542840642313905679541763791246225834765361499129424352837281618593407025440958971777677732414809845951322030378850464852113746379397537260127169347757151615976367592969235355745722506251422679831572519794589387810197198137535938844061553859833425546324881823539453181548204368863468559462453547304247016695131181870162067237562193690174477507899397211377283374879375115496721893932398834801280826552011815521339489051879417123243021845447223331810774062108499682974121334685130226726380451569455983530244935363868828939352274927361272144692205824728139260053216343608030533847029498235593378098416173059783166856779564811123986265360675150607103283242537827151994726981358261019364439495130346687301191921683273005481902204882597505663650169472926499232405821130926323724183753772789717312488330552337433599569607356194829908293604759436376274772500376001840726921222117643440537516710350153867712300850522167410887153250826143056126550229756448061136236794830698291656103293665184667234601498783088059273517574782900488236381781242792517088275170370550826634328125042273375986867030462025670992684641785127783821353093347688525260080446274041731512450357476300722284246049181788871196370172523987765000904441547460344123961431244945121066580502999571388224255767840020817913706788015846956759997445370288700262817316175204503556845409907068720761726868434728777323239622517011910209952585588987701825079407952530877707160271746953875047949383494030245554062277954806040141142882900061716751158779784750115476258612275091133939354900670951763621110125856133377910403911931828005856644823949198519187621315684544694767595373834305483425479553824995377025778678448234579180270322647348759031882152042182207876762400952807506819422153460475489785755993087037402534643466015698442044483066449320506135370616625779254003710110064306602332345000128721818089061547371478978939280549390796947369709222877162463253234923999964287563987507958134403226478719475524258910403006971569892109560051762486375877624607896077278399962120175438623974269108385693569597771936116266193492199225765950570238752057027724543021401086063781921700221164727620309076870717128259850903385492022592627877351223888155854128321287408382461251904849466672199142055900316900847058168084654486894196176151661029057858735876819148481992853620438046016930639100826784124946727023877496109839377809058817323263860231280455926938921631064006077028127831782461111552499541393834373803344408072318538938621643265444780763458772827350732295155159386941322544150403065201340298220802989219114471758650490126643609763698468006625833622767973389888068747146324162374609897748488231863323584370629330940869608455260538861645576723034150032903234930700594699554309867251063758168045073850332726386304399710769211995549346998741758586351644102626830492339049021819275725423655310302224437364343767156820457351683791952682043525945021075823507951713792428058982826910748178437346712192565891443810210751788187380610135129494257380775793410145397674532606378149595785008409270268310119351378257921549221029444772200459619807317760150490153422891623300974711984604268315761305936072442077411663791456016710080240097503856994672568626090828680885665048102388345410399002537818794573329348667714606418496403443823289178776899331246141176160864135250020373569567710023509612901422574486884887715416150247550227392843550197136523233373834807118569475313977247580778867371326741562469738447826930318147605681930304396191784278107753900502039664805011018401339198862421897355024538663930214629591710190020873052259904522443524947893614843217827012213526571957745571965180410624198533657659149729070617443153021328521605415657982819411828241986475531562181389004752557264329857399986166112656043657039666650504667655225928192615793778575514790521339160429745868563060409178068403656499575495680621715671616947164999141202104997454866259307705652047223537521537751032255808754344966766362107998108979243904248644763833703268074341749618561212167814408137849308338860888524914620757099589121668681573589228033758334468502922255745445449779600978334596992457641646855851545838769784242528787810654905905856504458810973385319577055688859016962720232862015316972041370457045328671611880119690628636270149324776452691378439552659216398704495823024965213359435551676269169848703663658256805682909411359011148782556246555396401647539755864105971435690971655931458267050285785277198547165218119125531715547515639127674710022196003670916534812838369739357089728786700181832872668155344532275376952992246278796642483366990633883348030063260439214379922922784309128074879401804956270194904056018765398123120812345464635097846565779504951015264467541818050806457969876414660612088068702140567700860298316731335749282228057738676439443711576031125039969948672703628350397267399913058809535136094103301206915301722012366610678872947172040431622837767180097037236428763056318030935101999942664145265844488195365565669162380464204306208475282319033637527383201808388315019969749570846743313901554154660396946302304372030062833276060863627240723576878982530431191988723274300154141281726306185359114534744835599855018855538044612508293537987149665189086874526612855615895973463533878194380261445817606015895582783693462999572704635970027923104081767859768668460718847778302856538791239267905475396542275418280032294645601552165144572469195727856915689884921809678955481010163133632642804028798773215996655636708967979945698933795450733597674276692441103980493617284835759224427362285948174589731973628596277048260421864496069993834015117288473466551421610538314986683999351982642045481992393301138111989409550337168099491227511079425513018405526782822772245581908838071663529125053508313466508416117455129326794470516910459345671070287735069727339165788980322220155858764758609846126906392256772685211397256376102290916685463769913564841902539876406560575537882040475448975765806304957760139881628502738730815120456211314346434874526901030185249783574367579755117514753629030230075603376516249136099771001225319899998402682636066918850868386648942236838271538057829556799323893485434635957928047757043080876407822674582863927400551714338974755707658841446569480867875903766749890622064288007018715008947260797605110471503614482229364423769233676750773632508400307365046692767749719630931925720421706569922437358565037208659784281008412298296041631683196857661729706033787382239222322418546953190175060111044010071205299836746854355218326473943947074106861706025127553941079410203587103257897856486446738053084241887002176820677653009604412411066005075716365062324458049185501008920145126422922694363194569280135608444727183263622847291698867301288370249776139867610084324952955239810406256483219440223456409960473985046756598420005877264526607923666078993986366224503179980423332801596836558856045962452101343292784687216165426113672581013002654232559855818289798926251284145097022427554195814442400699476090305911562410670618354519089786172172363974285306890153808137082750557174572022451638648636734649570141058853650603699940667705589968509972855480362852782919598574367322914646179899659545712489456142117154428361763057052489172824232473339735800167593200903925071718009259046035522360211536985935190787092466440134944618598988693301184011056170523823836900348128132098877515911646030845739716726836316541128069432339109894826387179348060049615353427223474507351493113383692567912342684315592076064056483323687275697131723739822433253191312716704676275963036476922992652611151925512521776626546200274822361382810813346971025490265161360754832940061940143462469436091563848058779293090691809970930331553427340458929881185909890963322763153564421757675907319128718075275948794762054393443100549226493839774198383939428032124080711986046799066957431314030322660224506515828261093833893881308228622103924559692567457234644994984417305408620787288323647134627553953256105375975739721016292911821315563866791088641850167493790848814949444054507115712008517485713731708860176989306715702670734794970709112494895014510014653282586881732206244978383729072930849876840056027830292399247558567060375230566281854969238109223955513739399723223051859861663594297456561837451549775957535410512492054178487028975583347961035654092214070470471091781251608231329057507926089408495221208945843747913966857760275123328827956963813177734285574786865148409872525680468985806325992351931954507120582668667011487793878378177555667268151959244786004457587517436375585092902134395418437051435564398684966926814587693597514702662833830122070253734605304680857033040562482025585836364195402556014849128215937109339944372090377022806787104750040931912377068051899807208327198942458797564901060221112331296526916541909325016503905484120613810623914844529469779608201103793830870280655390800536142766316327006864888450224257953733110865616192696481299941932228864170619742903441868607680625143265368897759115735297787561824537204212825707279236903281100300331127354485094517840051197763839507784567854470466780971812433518542195203917575091234711949303381756141042389300514354021298541307197509269866588861025818407248390376867892749597364125378142138377732083566040673820066903143959169988045047068972015146904064165591565808628306675128578379080825057823618242096481333007103870626739742567035246751857579205938921001076935459592500592051662303066853938255210265017502567034025733816845100875546130988285318483990684882490944153154311054236966731034720602181728260350025288228720692726060157832462248187787838331937640384015907056698330869933546559764056168181402499189297486123944570260974685210696033208959329559877548968054204967511622417634364184485974701247065089099097615914251679444504573671385604743273786590208499600685635242387312459043138307599626666031864277854106722156458636013148554018897454210273614553474695888675489585122476899526582191188967504216943426994346034431730469292640917595708620666866992011589486795348864011134102622524141309891009553934374629797589944819254908296623168203467371104128429535706921682253244318039629928495762849180579087748741872470998132755493425943507348023141270797647914305058160443538879740962147379299434144020646958061407948552390480022426149673429647026361177673074803218744631381075718206313415216282744515004225276065432747372035463341903534142951696876126661230009350056826345418103360356762974728214775664489522820974070924070452679459596620353179819457381643924605191467809471287139122184499362408974866490799899296666782693399373145711383540625012511815709113700346148566573175756043915385016524490441124786260234334455221169700196742641902207528749175304176292698020457211072174794393408553995986987082185795609298518767615699427872655923128780782110408261064021472967450066503083416673803482775935419859884943543253724231966353334775062527207678168169995436705960746354950295360017161790881085134719863462862766032655042800634723889460079224674137566097168725605796777299056715268059799181887636452616485855756720833895950662336561415546647677747951534652814860759231988665186270206283131112454102314925897758881489420863972893501671491218330539560682459020355681031865019992492695590480816242858951100709291773707124701999755021986765734637699456093373732200357153563408498813819338151132913011673520608981116246365353913367468601882454305131966754434668778253627520219446558210326739151017784052160551434759447958633587387997036182898200921429538076182653551457726034916230838057145750761505003673134162919600907635150077189408119235549627666179293725001330115016693454730939606746420880830709400039004381201835454919948457039907426052809282152137170349438344024335629394275530408628595810883154261878439830502735735525634021103909390180916190390875219901837281639368997116414043497549145036952194233980263375603053111757153086307570584568834996247771091175285209172380778687261288386531234673343003408408927437903257978786607080694359516292631639048517650069235087401163382894477419540838307780741711938183729697313309620593394625620845825500273526024058805421100722424208320640772842725057132632653428071109660641007886308584106342855945942840043301618815948652716283167260544102713204236088347071963535679068820067848542685227496142179755101777122496332976842426578113225517679787052026315966180747924512110034274300311880610980430097792784839042651833370779588431406221337484936848655481801306499271656235601375366108171827962989038323550094031133087788821482352201615624379381423232060424233179087461845412069560394714471287508191248785789625717864349461482220735090124577680834184936394612157623165568884422058770846820125431643063093095085238426886932786534175034172138916811571291093488787063791581900633930458009175416743188404454081840598344958706523306296904954770463690996092953340781946608438345242019179303750423355180845814423743127058339852215635159494515240875268277609728274288054203517538287566183030456887086859251198824298904092330184073003782415841393325937993314105954043742017525727782420896127863444371090114275513821787975734691837383955829292512696286123822703103878323907153582183207831667652075776414815244267564369742775152100738893507005676567005412436850595389785186932987059367866407340780030943466235934749039740485950823796838388329866467531394693557500150711401795953725316616348492565482744625136673095524754919467241849632567507746065338096760185814516495386081278728238212104132935136937472535390200986186017443901054901195870208501076727030504646862878133052271786872249263359612235569614369991212888554441366367155573104793434605668002747924432000667906210493837547044401181215584890858956124648782943825242176443460768560054359088060963621223348795376870019375293784170229015308190553801405448950104647045278039476723225652000650980148488686280381367128228827788776635714149749490697846757426071657806457341151278613916008039259921417469630913853642813278042771221962519501241010174269258379400055338329897451869435465282417394888564423223494554448035183531460596610448619210403505585044803141137955705532380222656112068334603645214027123145544178243082292145811221303217676237486267653478036422317261151210544953075330568373601150920191869580861986654683140814497292540742757307124390610778985679525354485308948939235400608344325198940383357590656797920566760480569997673475395286685415939584395999598604681075656480972826965440052340744157078554299729809084855927562457534933532371950177191547556407418481760616791887663308029142278941053668875206324817780968657841672250538003035655057165584447804486374230453074477747538746862990323100621153402164268454772054446475056995696431637426251277155109883539311951487328508106317974325351028405594803054423631663289349850440832533005635246865005244742256528165705372904150778957070667751856762417298377614096195745818797516594244151950443799245228374151000963142611559832303298356224244947607859303087770237931298322421522989464632853279298398131344898890859102150788897393015756831021365492114097578033342908321635982638943573953332420115812365893888595991473132777836774801546954108322796373619935920913830228731052080790025830848231905639560061796913229477885439591532949334708524030878433027065400663370560439139118321365796223372315830248803062969421439929171044541940565190356946656883763472955280079697736560936603706567967080630508435037165363023502514744236042714401792338203584565389916411331306265299451210409825112179779377101820916033137976113422809278988174362198234645974399232008299446411997175428083138144328730573955494556986115843856275057536936535791141874786324830180584873719929518530455132136610850828343670576272526653181802867021075519414167756171201112571220148424753240115415827988216696000146470357445538740359184303717162197953384569036215582780675064776459416884681132067202882194141582606116345051711281901467337483991883417579972633516967432755870760802094217345643565195961359308203067038543527159722759928611816180173030492395250681627667168456150107353811178290405974104125778424431063150056853051382939523927840196104098874789339716085421937404431264179929573812844401145560776961115794908932382285062233773227961038891290499301945265265283110153049825886404646446992028560879596057506863732421605442094694150329761611323528739380982274585474099474826568456263691960844901262397308170681260139568094941601895795142327357011820729548594781262388055685661928674628965206553031330233866362303495070771696227383934093440154199743036706342993344004101186632836427711032345554887087525525140554878182327491950366191795678285962931366586367779531375612103434833179708145325679842582271216870868340444039117720093778462417212029466897920215683370114626451800009456513018094164854918397814060633165134269889088414551821398663688508426481989322041396738510954559721809400554657390878939060884747069980869531871309985239276617070421635362428860509533121205481947436410259460505955946639269177325978791956684417354246150311917826680885700410161640311504149846377469914526476367608771422580214439534260952073883846218063322053069611822740356053677399962053517333855369786570781787623141936993067176343381265208662404494739120487600683830742202858084458011915363192477604353308932274149185263178603754831482971609617311800009918659913732387095472009967157007201388859699066368777634028295478955386538605328673432107927545885961102103975270372325696986477000299639349208705770183241669263947809066580246797942359309761371294267875733634505950839366913916670139248481831669357213828453942363478188747231637350892434739341679334587217550219791642539494626156177127818607174386202760824839085559925634096136494380159842665728075590120254409438778024404090618741373435622691423047426348411789231391457897954985155628240298508058481468044977100964561509843214328652263752874056180782711339431416662033368482274924305536798735059206906506673285881519655957181816821363755523875087183838893842930971842508653715641023684179611941096002916689181972461459371740249383089419482741217668115541186308288095682751607521324116044860923811816219598976954108576315821074955823694219250959533705399597101526653729458431797695290765691033924132854041911117568858851265463744452108136653489472865482908276728957989918931806578665315762517985297352380702976813118330416433373410309037222044629481402478821309581645235213067990496832177859215675549900098871785933971436624880377872985282931033121989542003794307625422699621163390616511282326434122209656921861378571298760656518429799599345349520393451383138364527712124063266346974695567514442205521361954082323041755171898646754776177043539244415822771079577892250132623166448790341142818188349102488494581013239963964482308087999980847584128552014899810609513676770217721447763051966233289084178226878692519022792369937817278875579914125090475507741859590866556184911556826020747985972969739164574075877562298886574261662337625063273074517103829298436936881236538585822210344941101472275980123930127005160909203649005556838824256833131144889621551295377398783207225022350317258360606337700277079656802846310306850197101973460484474252676468435425160582199687197711250914531840311415061884831396491991329142223917854712765420521523832087711966408472096435445351857757441798672926490138961421660290081855802589505262685206755111027566976998909072340189488192060188350500470616274922639734208841542670367096866461457087168336476755732433990351184263252663966112590287686290390746164055395123691264525128418214461818359467506055173757514064308259930058742271537378657134721889750062361332214721313403568066455649510638720798056401547387218437731368259386527710059769894669511135263938698965553064845758752846043701779938727978480531728709412638352666483001402940057594356117864271018225389881355621321579962321946557217793862351492448554137004930698745399873611225528750055509380374431632993681757901539545159971857324814655767864324036164536590904949773544435026575593849970496745183798538460188098541446476810056706905820817567647359387816993691064599757477070719339356345618446866960187840763409518524128892083549034607003705962351849680024853195170767444211741122960688329747366938103860710449726010223248523404408374614785695259180623849311708309771176086841449355726521461503893605796548255336561743013836168304373014878119935802131008190841680577449776915181621887314881081587495896547456540748881963313932405946067946434517707183670859242053619077177212658294931756156881584085896521970592427715412767354240974386669373499886627729978047429552374909289395476506253890601379857670823417172099739388002964818262429845502999385938312527977415765400619111008667838559556871709052477919521895964807934066878922875341197404072943045551765132814308822478989924737382964364362000759882291086414322950500001095087654721924858229081846398078896122683077313127602511575885994801380570908788990124536225624704708409004235924303590746151518244169462610789904453225087822004311571254446941079138567724004323631561858001407389103219691140343466217227567789664418644332743136600168496744202386298421128773478621615832933602441879200265843182294239450381128624396918961060976478277865998620523234617257231696127657015161133475456244361316635529255934159814385338625077215435265137872371749373801215120138639677463365402859194625426713851383734564256007684933608598245019129484690588887260274323243902356590518497959101588854072716872859851017746648707777618977378930320878521659726796582988887959529912915295533085240400213687807902184625348975360405193081106346087277472245566496599500185022459484263774159778437263769897350583410731768989388808808322670123901573141828282782962613502161963612947579237857132373756117068049016992061124536890863602313696389359795883740000210271141149918672641385424375468585777476583105430843038023323085563972255626518289691487712415349404388605303849858312869462143996866559638299856602087318239465153337686725715286470606943141849164403050104827365035396833993686698312685576600307271880751646457023326097144093905136383442360791056599532545477686349352245545648425322711140589424359951386173388078671632651380718901629104145724885967395034294983398837213355650742505121841764642731640973578812133904200116278727254077826190258395963594691387360316894289015064074943793874977910937984633348541459013564053320267092126819338358238160266898646209766089890361880494383697349205801447023482740603775202717838143808782705053021662493433799606751761967043531003015977701106426521165358046842559949448855670601854916550104687187008052099766567206026127124502987497878568397955928559915875676199436916120313016641024913104109021812798940443894473443888825199418448281283643803834413325899036518753415119274508484508439570717878939015437588107981636924153542211255626517894247982013501756009236475000779720640861501181447291932919643782520808909606603179383290130094360372501756175420426656092745005784888499746149740855589496553284262332163109775466832498604784705365540284177720380795099415743753692070445966495308697714685206631779852926710819775801752388558255188984598915767710666123051484215375420080123857409608448332583551087916273500160407471069033963776644201046886337041027577798552239838678646452143122501162602951117743381577060350569220482254511936066857400801285699598692370060622548349487610546968117439620655255819976390005582907885931849797716485513401042720550105320489497601875393180068520346662901717739762389571718164566223161260747436741252490573282212781110282009776524885193203439809761884135146115831269934391941779159493857894465881463139646984825426288269764247196689137929760729240430276796504262800161226402445135183988675319989880280880045238304879178233416861741170701024964093493223239369016343653974916910061496390941782450807738231593914026582830129498670363589759857732298669499317699651050850239346336664439491830910099460956564649963261414843075811018209061646347978681232341787999652948853104374016473239513293022233767892894244308202871232147011261724580975333753956665191637252356972197433106122418260643220696112536956871930004928745499571067730732455371354324977109338621437651844656983165380174609259414269609735125659638470898907257285354148998773031067679452294821411057036054248457306335477967886837291646905419590108361283527433052707404942469842430488329536282310726415312649828145937932728600154617326337367189365286633581069409830499757872285969309761474790060581251376191967551856445885012131592168647578101483707486828325318141017049924225177911708374296174688116155824153461218975739479142987374697575722949957472643273212980304451639881049796760425156008204506882010710448352173679190728200295146510870612612312399417121272314701826682531892354381995874039366187171030500571111501635742042060721737975809693238177144434243767305533394743099931488139576013721651894104174209884460953389156104675158294612115071607454093906452267855914402591048931532966413589690929540574475406385497088791037417652497116859655856516423629390533309021465972582778383827291289754250702907926190171284483446725186339152939362898365374506452458976909154897201881800881802089618853276694490320965593696703296079514591966048983590194867517387917146376362839814809758297828437399950448010608388849509620745568700528749197394557352430057595638483454068854377167039623234501302792030457033282698535777497007853184283957642728139351905363833345903606773397024470876258756695794369998159098729423495189962474255354133588940310846896914223946917563207534509110105766923411387817805389215217221516992631203468897080057202149403423974842223511845458534328411550338658847513451529654941420508073189716283911906833685503470071604206319720076511256785105295158582012805838273460333872233946027405322284529372731529039918567668703291252135961951504144980193735305291123392773886913091634893912566111869088260264116248327262997035164305655326143495480281559921003895670747698073548133683304027079373340657974364691718865945557227515977732277331042260357172255511876326098931688263032828804905280808605099410178955091740808444487273920446162587572280261668916463652228025255286172362247110483592765556799302653537506106190462647371022396765973085411411308749672467243367232296886147633274982079991811924215042756511440321007165724322320291436893821654759987086996354559180494821213922864259394408187140688037057594249395575212466321940652374253062295650476049840493405373806518005763271334265923599853329765856030718460552867648142919782969488753994856691654593537837490090587266750875078624045794999741590679768760799591145439480855018506711204191014552728537440909782728073343318976802000669759410653547341557644782599004342880874640973514506088437300335549322016967619325592685672363269404301732076141619929402096085551528597087830881929295539719566661748605732969609385826064389940261593139248642066438088478165930958144606968005744024902166224905669932039583559285805361805520370687945188073236907912122965260067724877943322079286985639963499123637913715792997404307624075638050288542021014291183687516851499087867938154157126955228841215056315924950215963503430585890068184898349395287199947328475542550175975915119943390766580074282528426692374958355821603861672902783413178168168291259560646850934627095203053472788469114452876181164296881663489686240812043184214195495155256235686835694960887084213646915049006490127741536255141652775587724622567000441673693592330295381019553277608430866672150207645778624777363526682784418446347207730850164779257193772526931669501513508590459448894383974905993180788351726852391668509716901404580709275687260678848283515132571922605564862279160227845049251965527352430215985678836149046918173370883635594088420157140248134961453377561090736328030402221942360986878485166520822102505019711903759443942871069662161480758683529308197818989286528202805017219661650087617753165154500918449496387142137235352679098746444433276615600778988741598198953690846215059963042468586364956319658573287900057132417305330264275221103897141573991412077172192066717037640169664351836249762731764642844283954816966672824695812351220625265122379123945365212553566444279229124526022492183389823057510719295551740797306501228617267683258586503604404600518109967298464634999856743308567412919736322436482490977032981623148195808581628780087245102550519860037028008296405438466221904561677791051943238697392935424138238965061642939153323156023576001938157748317167932542928173594538680612956321352901935325661426860385417589775371290466739667326488486806275417961672803296845134038828450665863248293756933277070367079160381590859572436847321109776394176070296717519959786073495924707053285178288577024617495080442057898716765186931850796662134582474383899310701239372179237963759717558464626959031853560809122661006248998332053541469792857643002199529520576286879125102934327808967013407726855393110641844629528261598765509859039551416485197756973112843965173183999916537642326079870292549944115426621439058762496468147833820479412901164370430514151625106077612365384351932982707471426727820048419096534120382916540452679120893532612876149628214879608059788445001119548198318078827440315428613093474001263497316195198392518924179632657935497292554081624603558556293170030999586454739107472090511689511186207454910348657937421351598886537918178393871554944754002691469199852117317810535673337820673276549285049035571006448207529968697872616358362611094983884237067972619429726032987407595251935432938887954184767849471402672878775705620261737688084246031635594867462717295923093402237563006090127620693117405457504155665958370601169801054763721151554925183867422123967417915176518156270463729922722511525452461366537562074011868709655701099394629976648758460807083675011788705027816771949063904713845401031347677254707049802737216273954092262773668579062206155500631171666787163937460451387574676145581176394970927916437695420829152004187904771077943633945171769808822509097963694665447323337258128587535277444735168466358867981253383919908709597937803545839225345119111455103011708801981263307653446776728594267044047286654089720203942994135045997194042824707100759384766953976772299546338350502172612086337661024965737020992564909090772236528951528669902231095336259187742821665985267354447200603124792368209440580640425717859697841899451166205080046030474328307323116647547907658129934285851725442026720691989027219278110768846311109155647242795833050105857594086979345465563757112011604937695945342044684009697463994393189789849343713456043324098077135161684530298853761225589347531572315093260091429615785396752429095294607537223468342813520264076206224186845707506733500410735407482442636394559851554171156865358074263489721625124827736386412133765451173744511512750713364875220759883981531351824832397608292156575687765219589466735405155178198425423049242414982059730863518794265187503927609699477339093252695749296362147506193816050564351759651199998412648344644159540029454116174900315543866037411604010263917217136857374357905367393369147683040909929392101408850320106871551281631616790041093658053580430723869615287259636946191210028038427596297178456459836554740972802513675417980026838293576247903739839775430189825952517201806440129743112563545527004343529518890160918696993385842778051356150353542181805424131500436646475968088229539037036839870031655970155055330770565134650185945310091218796183861111473083469934781983108948946101056059927305128094064841605677764950758643715661054991619783517508358920127759179581923946520838641397083657117058026174252090397086161068396618174875737825889319500839118674811472543192990127443070900370143311778762289113252699468334545041577111548138675235846898286486911128391507857654979817506202057202087709708750459347530636895009112425716021252597765173290389329761612361569356350661694862125593864149053216144019082324339159089706923445953187541919358654487262439235473983542687088540258865446023250006341811670936231156755070434244934361796003284175706403038686134659075652672841772720384305145873917474801194711558122666393784245986121549005898411194540858596828608086493024741850802936311334136851746556266179984013597236342126520771831005365543828384135778299488856449793380004479882881375199147392752309146539069994925798724550173007733203488835600824706834585251883818703276061417268071740265618342320974435472079213956975785529426839667775419627940122604229942876425848470341866730715044753169257991636025690756707737621745536044423754763230245700257133053887122359540333120888986227098302699908991569644465818324717645258161897538446034864307782121088228644981982067292499497748340407266364237497428835301663947977556444038998918298362369173044923076502021628718226777703308756420085428658459398986395237026991982038189364161879370945606260046031793489893844570731628592147431007431504957288857550315022780010528660104206933731468142126573778025787469317505371805146777038826577927575372230970681518430037759799295747861482013660060684479668039660537686670393527146229644755806826596389525027013893309990873374047227009166054504569283587956083409700048617503044704221470751031954671341038790904286899829794037491855669998374190479806844876972883114016050693326360301256802829195776052555552834392521416555429696504509462637697109800770623310241741052945953128517638327375900417155653056723715336090748381918740420559312085416580219027153526426359797704035584636555219740915782539955975681222185983853972824127561497123161347162312691617161002322998247554581006710184709131821975545711365596632218786775146391236359618645824845084462078103311854152548212544221874455592187272592797134714969995799348459855840633087091233264584066476249976895260475351484699897358471367706701880188273926895854888949281788245785699131563755477015922107233145752362822161560970768012834972328589882751605301614712611450521820203620341802789783303137895765551461155344774546144661381078611695725394742826089510769854426983120188564524506406749508121256782751699793099862810968700081132218339114540070084517968520024513913866099439211491470696750590773736402647759692134953020039256531226031629209611868203756332274946533888724937576388313027753706494637688554781117751332671802781365579797677194804606223900063036417041834447291799795721006547261334233966340022323982282102801319306304407796205127261327543857260276505891686154151866511362447023584566726813347798350726325163571886970037857961369304701338897501862849431085220246683007660303097974656576799449603754746706906560545036301063988684868662819025957843503676084175376857171596265368402789727719754364811595981429554028272130422799042144319835386240742780313221064407775059279437847991879537488946049150367560071587939680147900418158624770751345904173354927349481051584752491219045250836233121098546433322161411060275260156965076356512755728846531356482209448451170637398962044209290378064254400314295003734781378790149481439124377923150190781448797137615205361628491332453278418029717481364730094798869007894317319681124484723587236022615129685763380049231673718036197072181978057130439132522715572286692234915984553382607547645565724884280660285782603029768778666448916514084496892605261165541885699268822100563280928501010398461266228360093218455944309129649663516711999996824215101829495817975451441050884311330982084936838797775644497341111924255664014244406689374443500961986215041136417415306097810393608986036469536256220117155768403036038713200534711860674084972669910703369984051714783719939800694070562543852293804565132013348797203754577850125724639432256198442335958671035348589242525441175709436400590298607477422653165121933881314325843616047075838131957461280475693395306392474306898114826214609336354835978816102965498879718376578139766219594569190577018863497548602195691799215315857524200999227812326198380072380469969220268334488239827065392176785691204685000823350493076258100442303664390214604264016478089842781400038013411053159395070710332468448342660760443657358957059203476200649023791300765902706373070439480465040700729899689433598446948050207235869226621934459841649923081240902315201051205251146572861303885170914101668254651894772291962009753143529663606082042787440642324177204328076010658603861567997660274948751949414269437387645054653762493720266259911803358520818562340979111150846437532097262406850729091626429847773101291573854008902948580847588213309533750036688352651154111810928559328440793739928361441447361801441220886332860065740853796919361609921083925003566009785390904820825299092318507876280806479704943506149991207619596810396472192838469424822322746604168394252795047527930403881140637235907607737656145736301588309761555546014360211071765663096272005904234308190769875965379552152530478034480172102817086540889896461222956034747549748636869366884487360792394696505164000077068039047368360797721440426773970392948058788452840700433352065567001862795845935402528346975968203389621908090944878990488668433942194398388316618851687443044650919777177178222006502080245102595011694286628591067250663725334217235011339751122189293795170373312339371425085360640597503460318969800490969322959855060589344140671504479015153182879731455073807714374559199126873469044892233406083609939526488230253066091298799275763912624204791304901314014989440123218896119470868096515245491691048789768107976524649684796764289141315160446996159083700841175375832977187036693004731391138737061619280857676051961074001454477887713115740283440189903889503016033028859468771490654786899229828560009255131847829781478480646353994696888064773820726940775833044428168888408618500177315788884978904144089918689150435744491013719653946883445559251501269699955205924461962873717903573084738176684496974002942681607041585347048785151466642786891051621003806330226210029515753106747750143818481179018808339917086842204269044514081968781434144321408313748024557408856504822959999061929477429783135207827663010561283662235594059739518103243306747698130282956621887096818566155971580110330261073007625366904592729265784996082051666785746895427804164952924468619454550069337077335167822480710415219937587533887295056486911574149328057824013078013402175474290131410047915762367952626911023063203127549121741718242050154690897417557701753065423354424882816031673786788260002781821435784883787827559018128758101803529057991344492849895602044530392367387046966837378308110336231909460434962836425599021128093880877599064227323944999446601052382650743034237842048496222339076213458620913574726857580385252174600750777881720130349769987423944314405399324716667103108838647811403631891315034511396747070496344061344505744814224065326410859019764506599310151530611697081160349200613742120315598468546763952784001362306099068541450680034309295155382069516563411316688551904798756227936910412060930761228715201391018327608328728735538834839357431494590291001102848148960200106017643453897850489028781646336224925170979754320476100732213288255519633203374855946224884888129798067247752729960570870563813049965184087092008554443127750812667342006097895033239917308386942817336438418644635192683193868566908209951036208542229541288373830148700296505452254817354167605687584039578437145879910210887994604961794882393734807408608462377256298074584500804036691977232652239971955759320796425716574186698793601965144407697520869815529242006607937702969570640108826998354278013387539103684579454519155019547071897044013457739489041536670542336681111877756945518421311948114587407153154437830335579580543855717670750897450406209611113097725280506049726064740062211481673152295470333634212701969457510707395277697890068826768102144147826581882668008365792165834923219639123334947859531395627768865008200163660283032557644643173910931110312478960133131902963670103606618967186180663333179896239557707153946289100554530968283561788471044805895629047256784363857424693082835646197416679902870075230002565676668482499078236446611448926853456623480677850907967439066886286800418878729051013334640430662101221609809699457434982309924918181156697371940829421535157116838486975977190253688061716952920422679049807407981682009246445339672399371061931017365823993659932915806749313958813718052895384351500623990869919626265513137171980988042935648119685352159194345498569609147473803192189294426914049269353487390913652385381884531451446459563947783542222521207934174535180511119982654139816579858496407152412818523590853422649616005032153120798077527553624128185783010875622988936041410155451044772097843907204341966875351754848358470618034029460709710809376572224227517988764242932904532969454048186409814350815529202081913458948448737341125967174826107659737393709578884699974788799453945214673448302955949609018974879471403450737265235107103985716358273204144737905783348890396140040229163358727216119598183122366866838441029010953447691972059459115001013897578640285831463491212955227775300884173998777698755453402251831878908274542335075473489733500194849091528382838737483320826081928870473645233303095607083773660361713835508882044967148134708462413256118738964257951823453390268706519063601509250820370184006344175910786927057249707527287402006495248936420260274395576157962285080095926298634980297685241750604467621941209562400756530505220270272348106171126606095451786543816313589768638153427053475081911127600846044731797855251421103284790390070731478529897356924257648876373487313052236202607360528047176066056540830480322247002217072748649824134821484499374145211578381500778263824461427624826569178683685542225879692259272713708150790086813392023803585802730188986308455076250993704026380394699229071192644435116911342407682544070183589289834943276419063026484717871899176348394051446784019759633453600487876211040179428609664634256237403054480290054414421765218057433509776127821329723601621618171955351217833545686799116407388851072141318310932564836063720708057404551729916861715799581188638169950709430439324615789204622592143910818226286241267794063889332437737638698330977267916861669131933728878895514320864265226905744096585001581565337117680668997927623948557981192015192950208369204286553369012705517879140353481621474269123936086828382076905684667041065773681356456560321937290759584530437610874140836890367336624769725569389446175007337655878554934155027425243133046234997143305285689156079964535961646617708201330650995835975126753735490936550688190841814122297045941143982603206772289461729603498764547231440031647853997620175793767028892185692646371981555696431257990891721708711804965908221767385337792653076886786804956334086483640017522776661176056538040572408134741038997486643242177999407112339147253456191452481661747464633754963299349882944130236844045998369224633347587858323342028933675608765951912931942748432788455888542076718062036719292252061495920581501808950770917721700751238800888871916959768561971577621232743858190378352930664911378625891553170839061528454563385851258035849147261584173122788919345316977344698753067868902242828700426501785146118933179823242065322062945207937365017686240096005783852532901266213037459025570566338537978303284738152553378891161225748966635085234654562161598781774233816861561556164098041085366214107738856768843662496360842888025221209402283452758726907430732420985772515444500997708230739264638030296040824510929004667855788174714411886115944349832211035819165396808811850999122168464842727526448879446449699591937465963016961037911873069083953714837873156199410580107264412376510618531344723162616442594208804458931389466026350816745840889978345845291758308610520100665552775793850087584403853969420808277407329401782756992869712876521499710453270157944081017926584155519939538781315032478211501938233498404949175084590386556704843095853913397848088684764896645752348154279194309707942184063524861745666738440219427243487349784329039599723854912164285207896956979204530445262408643730408725273492101525891146425145655846673904406877019062019213235918005902972088194133783891323199934493041854560319218827739437025828597705612090931727879983418873807723479273907940044696097189225735829435248078786898748839454362598612535696642780746324534304196066598441116499646155232411584988288295545729383530375591567210378621500387789127259162919945088209210213741823922505842974975540128418561710348184669713789305353409852054545834916680673699985272020480936646328005488030262397112040087824311571021940044145461185527570477908636005847394866389380463663062327565806260216954907947425464238425158922783651310356650475664523119025373678689300550981871930855961729885030052676755147965045154398961484806871549010502701608184764589816009038101780225640934958907750416270963155576241688519217785717604034757438108166128257382515578053416445776693308962219282242755370102392479411377707199268922744450277863605293546462027850144244052735488490505142203893797955607551521482284250884383599074853566343883482979554611680326417918138500975381387970768736991902346141237674952945200020222422152558529492941122607281544245586719411097710986955606055639718226240401866429615701453231692173008048990986640700799988833445421827374893623265529425185010109350074330196213959137488467756039740473033889734676765921909269515598418666273933695931791983525803061112020418580255912749651854950925511900945419297009512122285495608691414830449291382179903142828160005585324476414309824329583750975617705934010679919437775020313928809630760785762471587364112537719494481180631026635975534343057505970793834175872308961024428760672119585041285823391770653114815636306549420434949376517304591456425530066356252707661210019597353638361160504418960515316453370244709707796034257788228317956690938696141954629775141146508970632864755826302686028561461050166354227654813310701425600267175680705389473505374140174231077989272948034829842344031055992947184753707766183772700661815703222363690006125739391750096842670633906145886288973397982540529923731099729631036971220059838833978863607605315930790475332250355171887160483579560583500149274756318387316629091524841101142546211654474300337701232310754000745205939263903240498214181561209806531687282046744970509302207699406827328693941789277984475276781288143133617692886273884015670816238714203061746138393244558015874116539821331249619231683810064174112968369392342759034978504510951944851216005436924679040215906176401737353126685460023654849015843486816645298100146701532210851287709329701929623643962491113390680083829687994193401540438090101627699850424607297883579394037136085318539843014551532110783523152621967160311051707324857792842025412927296758217602429664546287715055035658519537545496965259333250127961147163748436500278404654435883641511265435064357701545320234665001173542726968099189801298769884090799853830217149468748039681849699779016737712502580118930806920842381387042581761541132435802193807152909179255487239836245796045974629898348026409368621916110805786628084810284567947583682441174755057040417935094808251369820438647229332970319662747258915185036704131254002507414308581302610588081445374531272701746714862603482831745841561416444655791031956949638721896915304746883692694623273222824403620298123654204626969697137769103895121338334583393102583253519961186771410362787190105399062709948390179070088788534336864528952518929936039981699400225850227337042193176074513408561834392965110338215492740184766855379287014723436132943216007520166054115760118410188837628420645453759532591802733870953509485356700584776689200833731229531395311343533857371564536974740270496911327402620371817555599478887603451969924976437488567501588593226774853369166343955869825561326561349396936359809262187123628405652978673804632062773624038894669436220638622239850792598021271738382295096129692668608549796351464674260051673752235812480579738028815860617307356942293700564718279800576053417671345491787348649839520304967405905155603757260592728523012638478351630263694059362596670077097951120157544460157419746470499916754369927370396256605032230751482387414641037178447459279827130337338637631419886136450756346097856409980424895474351797946765296364084613565784863258114185877841487206652338202506908049644411584730598133458597048244442034506277257042597584407035047457535965169058310587108764249494479307914020060019223496730401355299299646167992189656876702538793509959862490359908481228858061904007785908797916666437370398251502844966644348322309310859156070052500299507221241013193346346876346801376536503733207348413114257749009122818162102674470696475756503676882427739319968239812716103888630652503865230808341912856409511688986891339258874660317883205192963732360387858835867745964882775882702704126597242191257161484839028108259487114891664381012895888760905300185489025704138807669642461339987370196035342763256594801025527119001975479297234062189390464429899579025790011847392062452743767378982585281233044694960124213897824695585850393566380055212098079192406479072730043911876347307960512591833423253327807965727147722198784688207080137527327631705738598801397814302686864589110401740456062548776931821394797722352978462255540000970443149984227858759079027134708087731994406938170058045646346249211909762295255546448442095238167683448136177580484960725887757382127874543385427370074274123522768880464361316130799937398160909936198302153057296415395368370928884633053848587840570008231909680350074867789187112955279358273754886167811663802236950420339815861792374551696141289215983711213047734979683479158057634129146324614919905534244160182303862622059189211487716613285438708627374263163423651891807659227884426838362406679715048069839773542025568244798350948341972491316470341682212551966661336436705888332115431851170252687575188861777742101936822761338773264593157190825135805765934160014815086958247534837776069900800220772171880613082119756140262456203380877662978407453344748815317471739038156573606711322610177058280434598062429432210141016685545175047509447741991494854737681971533966315700892618557745606709120331230666421534862908698087430296338960272821009779627333780907652506368361936277643096333754324813199226794327994405369253465479467908855605737906430309483634149282090855235429357483840327981819093764209778388995583504582947659174664033672686644156053576932103199835890876917144169625432467473851082212183767781405809659483888813964572887981744361957834629474094972069507526901465765612933118506314985386462921966170306405016421241274252402701579044647180501269291928395626981477281960045459815440688539114153888874082921538049233358817536403742822093718455854953873309695911601679040609240356348349617098473158308719402296848705461717217609125628905521731032827200912364910221555071422487904914714229179821826773360889991770112211696646688458265537905205873640258429664243447008030206429544832558763102177387528333221683328457508255122404408769030450292493651787833254232964352634482765952952641079566117479439380791146950073838015627302290039358521302594890397518569370065605686933393653674090846526087302814063046167451636944670971520721864152973431723805224538198484845615236089131423933808166609191427006935223071940488046218845030375492163006362624484729961009326775461017951360375024828039959249184754430661687696278278817862525017810293350102966917680697633264978367279389890488909130469091870658880109616490095225992036577198697611535672739979581698927244128924303692825616805889670355012925491983143923710236670954464938129307060849828780698508002709909179558207491478391620641375732659450814040806151189495846709346751886680446516857617719174664929762154501570126632799944315955187299025318589460266309801011071291657398194762745994372764878753928683338722368153750831096013191236919513400645250396517167972287386050156992832405393245095234023117524873861951663558956815494233178203424965910663486174175871826287437564965565271285669430116351254818198927410049338817244865221500840007634624869711691837753017698844726596779178921352571644178842479667477710896523265880792338298900546554368062910221512430350358761966748091972006375449283578818578399238880809030521135149280640038252885142992439000353426909135644374830243139138954674088831389318725571891768956132338269868509519365011640733013455793002143517517119021630086548060393417905464867009422170004057964236347591140953528579179213820719629711566861094726854052263405396975654840038513632193331503745359880903681465961094329056038049050907024081527502704919795329788019198105552012972879296952489385869288448922745798325364114826714097989337030447468030047380220875542419340016698248799930913201666636641342569576559679789490698468831475048266202364662600443693877945093462371503580870017699618900874725567465683586277857759762160447165218134278738531346002397028502086017571754840374039196625516096509242915870175666899638248584471991429114158267827968316694747577509768289267471950736907027499725278629093454605858088806132062159742721238223968797267979003299577233714960209009816467603704131935562886078378952165855251892142807003624229897635180704136570200670114716107689609139399000040298971116226858633107630093757953458876775299626689081309193680969777083335762941277416512499918111564115854087747831523759230534103857459690090377331491803869051341537543622971142899902243655556763927455897773589722353564005063194946731792528634029508581923817878994365046998961976242964448413130255499625431974275061235209165888219064472997800324663544215621268062236985892692942120408721108746265773994243182057207676333858980078412589809691318522993461386833297212959817276580317171115457157905920671589668939691545105416800541071309116619254085072508847246670649340789684977290352317786616257424412413871679337391762819021110665206731218869230061059396356502254912572718653892606712849690042836636168120045245761980015527629661461135890424885137149167849371542067375589917662614504335720073641390924336197207295037852657133675929420672653957847789491607689817521793855467213383367188194281539591165232633887286786661139330503074115402405429665566640153813453863760446962656654316807418083144829352082027672609449908036868896548814928485994248489888766089965879911667625608760915927055052437902276395778571694483532656086083114532361270170657161526694869626887445083392926025167056016252483560094677796911722289767419932886524087342110478083401116507145699706831347698258016868962538570563872421687681526681379267919780643600325823109174255994127298797361562202474610511157647131409677431986783264354417572377399353532705456757427013315264484844938856032907531965827850043796524493466531520485977587979269026678403986993016522249892581032954696296768778386701170047068677112991377194310326672763496104602389178857846833005520305177153309918112935692834286839043202925043860608543369115151337995634620276031941021339059924836925513436958046024485338362196772800821087707166111925985950402347724226329653958861660979856550236685812718454768699951201541291145754797320768523362435838205333145031324652756002195802647729145445629272106325862188412805083151474757332676141314185710655553700368736915341436077590570662748974557492597636697283422373887181202516131839376672120309515803774918963127682164899474451816200176869382856098995956980797429093493899435403405638620559555013321581627901655883430507962338332886994352191090408673084290279828688252161596013407073879415138313877934484457766928001027541230864772444904776909791243137185977601933377951887448997327524167832395602473276548764222839271833574025772010921842268864328686166768448338962308436774239128490023600861173064974867843413598512182881364708105376832025875148895218105682935424883950030670513419188860073873723061783580207838245171750074987710205434036582069633350491701467175804077208891304093495355824517139119837654043362233448643121761541358460959266070777776651363202708331953151401633331156269759416743317475363841069583000739452327242917932872515498329183314043236034257202980292013044226980466510294461513706157812316511197881701272809238232251852716343299259495191197726584364094438671143139110507183264427181436780026073810863509633760855919959116021373218986557382175989578103471190924853920228808552083092934442915202109942287341074359579302633550245137380179486545674107103381177033664344574106246060262274998435812316912472073799965360075033432309333376633093662187999449545532290122042719232646214041304030789142481757461293202326495479211720084015917834690772636178854923754775522542596336393955229979488937389450698497410389098103839946615128699127974710932777025711768004491332049960639204472504700164418826801358586474777429712483167293850983193611062177590793808666425324372766625736017047313798286323334013948890147190137845815576661925439756305132201872656127413343956140939624331026013150056894636909272028457452771747283254065811908817281179367643910181338969430489547897970538088365990151218498977567508848469742070634426847344254992112523965274878418754873930156809092433969507129500031095375693926793949231398973047187942003516983767672168896852916444074994859757957657510490771607597882162208459449634239242298205386857715818604486794664099745402924152218986438578313541009458791634030461972701615502514654309706252455738457272772496718805711038710477070576854575086963110747945720783044357631460537633588017715087346018042708707132817829170496785119321708884564137870396126172636464325738863334584349901570327911146030270224721174394434463287230333457717475396332569251189015377479076367412658681432396668026996357838536766454310119288042357797321897540414027856398210756577363668702714524840622987369380321849298841196041705244716686711686774621759463786024131000017357854517573592537321633359330943925970111494646122102596702233317978611535067075605464064924453998439750899371223351866408268424529065218396522426753362810496914195520274275028497933148490902942400461051628726471265237157805821975816154582237548096831605460259738701637660016051159937509386856462628351643447546458261045509300635173963073100791499830570243960695850878207015312979621264740100522117116036040063785130972712772992340238682321971604233373039455391499471483177899668148619721608161968034201210568064931396359253006768858229948875382705524766196277371691841922435326109638672522406234541241582895879969199774354245782289995763745090867273002225818466079919135105431132232565918501875045095926315739723600530619444189288071040338630080508939129643678225594525959694068662210915800252962787248483865639763889327653694298723491388677361672409290508622782609353791404897478502810995128324079860620225645499612453312318258626301606379671655189102795063994882967207591919474606905228153481080338336181603721890164334726351727512692772414792276166711454663092441863955655664745884149341134642231419020516601917979422789819008953503011129710427871344248924531581887036669075241895925960208506630612306615713198676544275707468903836812367259340018011895139411734716614422581174933315722800116567743522728751753163322756759486429330309689450523404923245804718568270354570725655568108415140791302491027635525736667365516621824832821853190216006444982050607253327093506468244606138846438048121486842437023950196234157609184770620340349450477348943179286142309155684613729228240736210452697529860915294035954120989462283151774018870075456652858921415305307187302839544761140527935101433433326453444974836875761126081606820610629496309429409020138810043384529470676882648339179619029256195401343914193163924199909987718484476176509668323288084750156126382810534069744070706033698490631732985740424461089348383414062872037022768933796196294366305764776740937776719362582564623335665646506265155209724033475229185219600358232172350327498284078927440771251372722978224785785538670213912885904586654624971093427966611334898577586115044592689944205964334990964137215221205314924554533080850524324625569480716567164921799500042002291392956716641595260773346287779484782718165889677289137577635777269514210894215064175206622981179494814337060136355767501557034997818093824089942142751569581622547620520428987242506390852906543600825213443011886707917689963904512715691859781363611873938030901860621208850048972553624560730913013878921014391773499175461247946255077157328301106356729201951457020711004999874816188793200003538953958815294200171972100187018894260820974482204534441541439724561350615588678830376449130323033203721966446374597370190015316430432829447979660539285408173973121578553147969721330869925373503056198368444223558183200831814599190597252225721257782215994192387288343236269276846108138275727332334208365984956251836266354444311665984767282708820865380554766284200812157712966448542058876033160637183164517199419116720453971620335264774087583126149902997769336139076349252379183491612469574747424884381003729745738615125997248088024717185165275839584901044192949055104462712228262313129877610155121246312463208270515225757944245196801444254028910950771548055519120185666394869209515910358046572900755812009428728192268774984512218446655060314236334050363301027885306159555158059521549459465181866080517440002752904702234548506038693848707433766939242598761952600595690891241492555702257858424181715908474401525948895465026284265872316938274003435020418270930919728863425743020293256770507993634111843688043593568284054887722669935946369604618192828137669037596693027379187825726766143669098670829657541427439022809879415276013376433090840108912515419436787774900745862285545359692984837928667920411249736951893396191129471495101797135278726136714994429498784208139508805321113980753025653205598749430920801614194108209371059357621264154912741657311307730311719942582629873464607389711692760446526243905995417340675679238578954230173930214902665751348251589298759107792735816292321505060461823954676206427884088894065453325268718107845620743911203461059994197075557216317923485808890203023799706676674116645703643987646976738730545258644308509658422760404398376717332159289925873492720383154049694235865220764828347012727745367316251657671733340674090063056186775499653030823085553283539238470966344545070361969339699901644545215058332321572291710073996962700240599236032710912320163965454651385713244847663560281085193405330945782709247165970140094927253458932748295183709863048621230275126936665023218426311203687270565945037495242679589205730102839430454162266109518805632870947093553038229176693198534642892514777969825163399632551113405177046196336710462544010698287329607026981119963554223894539210036363921772387356765693221258763727332147838331215629281877770854421050871833172214257523625147462259257179557678593058785294449158501847562968705251327077847426578764179118348988719813667282541197605727107430841388100813126138213035152230410554366322172897545086417367221553056398482629574164033524949524669798599669149993432595903629413147464418155583881301582945609305102318360882205883378251670820647109719978554710750292473011827895585327341627951280725721655918279129720445246531165884089747405815158072065779068617327504348439424475188830692361631035236987462629688091648541556327230440263877583242248753616719963036461696075320609366920578047035953868172771926525128649377326831664925286151828428969219084639170136145632055209764971738656695616822866043876491742077705943524863394286964752460921105400130353744224390871539300941293696360453178457244968572272895112577011023281614078795834414320929807887526759550345964927542965337801236469144505842541665968097104116791653291988248843951612660192631301110164469359146330324067832977595453377371353565875975964451340864990963410789347881319617152145380376704147112185376871046149888472389404437474688606616392430239112516259521499440237710017758882654521976436040881534983367110930985310490077022966815851761295185099730833453438820448584265579289287452040465163290046909283600588999913996561174307460631811789421776336504594458633053633172920863273433180976946637855250476601900544174590488921936927700310948212620733404346569617612668963985890827720023832012603542054536401858156236157201013869578063130229243543323460184399360121928380481841636280296595471575288558262197005737367124322501146576269157325771412130573430560900847950865465420958130962739701971840479060757654742342097864120158753326918506290177138108504372718942471880940841860203309473526155972220661126707693909049515779926568319927374858924701109672527834453743140784223386742516774511970033434882340134533259204451964267038536536971569471096894910726689314170390913460823015809257708378001195071907779400826955337812293300706346028847613924373896633218962780163793829918656190584141769817771986622418107850040041701773162550952525841088939617756995830508754108924980595378675990843488295250741288753953704127079943667967737095949129995476746279557725144251478827888747430898260351034569541158714681064705222446421949992662479917694322096368513451423923279227111840294047161582883207523679442510170677332245037817287327375681755170372861490537589134585236464466306624135811410458303006154262636624043717713481375577475122200415363172388498083411676429514765276350189404515222782931181883015303893674694220209184649282611531778267941387445072684392710208843322720641370609162472701690380904761404493414934435616906053320108766608871559342518902120484723038640588309203147662357428392202715179394060669582351757118202332123112312250015950340555438913653360444258171548347647471671433117586534508619142040314679257401817401394897902686641999544058111405513368972747892831143236319174773922270463231905616837117889964575475463828878787078573219285259037421332276880279978402574175996301264983743406143652363419658020446787245758913054678706602729973061878709349577342384408267125483895914284860506132209720021260308488193457128662715803762342919205398056178661065617834446192640864293800082681666531430585244700290229650274813412718737309010920762491401181832162590761150980000686701588287592412933694476095893276586415744096250735314820190569383916731687195413868927573534650908016738131544235700292214208851990594014869870698614402979798882889846055611236439725120204167426260078832034615879660350299709908997517761587672976768313015604963928673363694460793207034771133231684188283173351535868773265910075651502339946532657068413532135002655609886509166646142124595169018496540007522777051834913654848331309970130494141023669631487739310206816609369278887471180350124415609830039386083382991613889442580662980590808478689807430325977343083412747052490307182466220848108429059461287326139037881025163503703931759295087588258372262980033718886700435874237333036233508377658128629282163432159329726525325159178184877152518746031746379091266834437357404718421321993938304128184535650171203531146679122703022142761345929077425036006574005158096427472139144032776562269862947559331703956206060181867872195648645513480897402051441165972389947373040006319964232657013619999331594695852706744196539128887616531002851584724864186762219490327680882488945698197856694871858096885401985020888209035303509593770939893080799905194309769410050582243875722553090606495260190857738204504937334415897979780708061807870665830058392481058672869636122235954942018090977474884881679107839308787617132685693179247177855474894988988270990682003855552604486815615452785433325745275058034838248926624237258272105474155972941741736773282619831764590947940037803915900815117392774160211651019958018261478419832147180859804255894854950880607228880782459064026575733268502508103986957527137617225438969068679242499877413326417374326576231772075534601369414068889450079280239625722619321170244180384064913087490250715076771117417435004083124728590273707131553173217833725678272981296574866557743371921728547692909548940097182999836838867139744693411247726123141769857678087194368324307925623359594300001506502570042517107682672720769912287858047090222365197561744910651977735637675479212933998598734640325175824047040889052076119067317554600114150646853255193116505484114774675477186139451971488361295087013553842475718317217239304410190644694432913086165665065214065212023404089234275071692419689813776229886824250491140610342031782497930557100963206627367605515120526935936516946263395152174430913185039266267758773940955471509639148888166190551899471260386730907290370191177602981342518032391664464363506666347243354134102207165967770112978131735804245657207969048971526445090606836448398647734316944016588630756913857340034963893853167057626302470665085711047457624932513670936957266265740337566764064142305979120585186730901361918258431286998015075704913453091004699344183668841865176149140059703527363107853576422205943817342654068062628816595450452001658966467608043239120578127489487229228170709191556421586140585474112227957624422436352350022847116266745782129747566873784482726474975006110969739896410173292404471362109844025547222021890167046446254111623394010578400424172071054931267523924572838677470529808186544588843488925879048841224609566065394188956018592877159411439553339506995851214190688838360045166421626175588756889169213177149624401422482744905722174355571388427037029732009265261310492701192255932899245312247730487827896754633979092505799999690862862955432231544273787175961082966958878983919092341119481683974791492158653606089709023365866100462139227751817714250346386333860428632371423111155239106540745735046558332143286124811485913711255291972458556699280287592959346859382753939716640208356530836905027175998999026162758513364616417519600902130570484564932234925588616500131282529947639897397064027247512700934402259166450603561428777999066275956729326784021154204538118179987822143045182783775956426033498060815034330496899307576810544111964551952984796308958498250009305506236063029561502346946743861862873556806620850150251900209452950104027873813096072681922125733392916148828253606224201114899840220846245491110260634345641432047305152645430233289689088846615201372981675160617724794179982786450539583595660820967922905915796732927179819703883522451208938936840296138198382794789076288624082900826550639788152642174868504578039918383581021978407638822004255981385471515752350160895206550600104953900361058382532681067864946560183285196736017223726824906938573165513017604690978727071917337341982071737498206313210649957606013588095589879353514816664994021095000803974228636968389918708856242404154801068441716264275567293307366200461972793108373458775753741430813294332784165842463466519325655519318458053378485999491245663426695369965143347803728512444808846978326597964746833025837524175014992428464809419696842986457789735560520211709947833621144724083672434882362321620184868250692736486608171519893175761319518896225482808945510921431545104744889431175746093929232986403000688508397469602054440974367826590100472179301952396772750328112065083310993764280494245414586682600471287417697097866810503097817202665324671227516917030285843418965967828193260322700256657157230755134826955814115840644123636746745109218703385654655218309440966440781246419846539316832576687057866080273374557699234718682271594092032539480042100701895573547457357594086555966193811596495232894273247719571366220261840588942381135125419362318080838152427941859429249832098911785767567668528544113769956418099356476654256321229213811044445781878918743499968455867787209566321534532298070462527939370447790382869851441623469725335197492072650021037370267207803125777021831858949781301624198685281888662560227058142868687575588775772669610746486416792542497395902978274439742943323780746382952566698990535811585538344509747521328731408726344203202652374915088751769694921237941824662952620029779220194934550490212518154765116380898979436276065726316437745060491076812926961018448811105127514917874782660398091483578306761891188288269500231547043144605382215201870586479056910877860222846704983277250912236202966697106650710286146026513481493691760965761274890182621041388216603762241967072298355733573246218274898988567646826697053799291201190083598607558619008448885639764678126060287349263287644213002505682960254331930762781154290514515320289052034884927000723212257236929817207337814139534928498802753543337730105108908680247799561687732536768598227649696660032244184783673436315416967117617526029594432082313252554369184505552222657846712145146563220774228350548507452432019475114469602168233392969481941657614905370811153588793320543150654483786023379345760484913765068732359159487058879985670122409491632767679741091820606432004425585122795525345917225102142075609301592652255311613971620411646478662118308680439163357801770832021044823839977196685303732849928101170351982914888073078528780099578586428484295301401209629893846583964052033084986689144440738070323360934350907895279697410216660605407295574399086864541873156418814136059351956763902115894379184418119175853203474949279237957194123385623824251243812609238063117971746376072330412143680978359669613938371750385236446603131740248036138186665573510489716688027744445278115388257434213569850955121322790868443800271546882945249978475962066988882175787444647373935255558935743501415050239419883906415907672017217086716421461977015528834906727466153485731359157173592803666506883243273705721898815395469205721479488500872394368286652189743028263547584316570536362220243670831499784183396588292353184037212787865975414870135434890644184116589343946100209648983781936130657303125015498730421171841577688800997089689482827569087229958237359484885957016922640984013181913818214377796469703450661471484281634073686089701025737008289938832376831800902147732209709058386085625676119370691920226615453822267212492280141661373781499863330162282624137741735149796685286717817064423415538920322461572341207078226215827228629316276716876849715126371918526199648440260333420784558301521302722245923741528088527655763045533573741832799818289758779024949116079046600255032996821875504585693926034173633346240305124448723950512963560546422286170487837195710386352705053539010586704599538909354243421463497721423139686622387320512167420540014618017667339106281251951462410604926282140648302423345473348093605904626056913566586388224661871575557047351986438237468305098012637983244337910232861122347645941437033448635951739323678815939982344998396708073628364935063142547801176700567838578785830781819477652982019973708859280974505383801382542951869392700814898136177687421199260217407423106942009497013703495186299896417400393422087719606673916250978977809278507820640061832104225846173618725254290382401655734001162111594213652225772874146198753036253823164004542828969722782548579975692418826524979391197876546157070803772484984070894412352788943950271467664376028792125232117741029815737172456108278639540957496031705891222074808282893504196529923464314971767686487501368404238091699485795531328771962331878479042578867714690112955423362632757416362265282129593169423930817272473379705237132513831758757662255915278791367308658519147513464846000516865929099385407186073787660905288915240852072819765323387775861948573658890753007502810871756039444638411087399442391413838688327380558818898569985373099415393106223475132006691944434713423749007285160154829393813384072173763270898396660982100084639513154389987924542375780757418326866919299117041807746966342812037972912535497076233799962300140132235637437441385744693521516641752189136680032595258739460267680961046138343611694836607245740464786606253872285370080157113188576832042018287631683279724583911821542780375828399746695603787498336022724765943037990354081792506799289591005728322864529347466719907842748975663012245130018558379659825572060344449817727963389147010204106250059713101853985285873477273413853870374301273488248843015006684433879304032391724853923519253812197977408402741548498458641590706870326828945159056025811724611572099773979123907340660711403054173826566371576312599652697091905526754809322177343094464001380518415678188717860685716955417461645056096651345494333723621654529748189789330570364688951795848926660490460377528437770550795850447207282542198204628348297505362386289929701702931345171631134372378233202188142046706239374651123969400906365388569789290029879664797968887818012484219344635324221243962403201319948654373503447587325510009705179934047671989539051328394016612078118147918357543352539914285715373231844071037844229941224869141226229249828878559933226023386459570899928677286053626621672115137331610743149856589583360972329607590197285635355396337612880964587414496062679093018436317215739369572373596603773761098022911931104155984774141504127667637681831335954131611606519141122094865946532500819053676780317334530739442327298010505020628104459801690183356975436680423723130863305533956962768962529198554367988739633855361041174703131799155435826196354968582882400434512771579708861347221699670658067968601665795847822444441603767111679153918769789545861948336703141028552641746052263992343058358527004231102138743962462823237052411957784983856977892964094474491901172797332763855840795185469019451660061062089700413183110427604940802528737784227590702474288585986372056665110592562939328302228772975363373316500812621593122952783190987758057811571613822398667133554169060609189143342281633016480582989049404276662145836309415258765927147671508778371776288086526325097319405035811850843302374910133067095865053945459449502909648983738412818489767921750388723391906280207859432829364270584652367558289256780325851826297908568573997524746233769568385688939407545024881333546464017260099857514765885512797311085521158912994348077915263793382920370393835493282986215103158181480766785134933637761813319324341994035190476520083459479836215501210669135621537333925244074631425549028123089967385325362727244044046377403724560245909548123128502920004926135497062720103747602028916242957438896191813143394742743930965778505304692682811492857093609155547880768174771211395919210175006533378416508044930639903108822683350592609914473741468392992244295922845784789199936482648264537152995739798831907893320545254513686096817048393613367545819575973563746646557485829106770212742466310916291500023441459911707844636900706967343919456773030639762447876985010723653437502387446192657553544312619239216982260247934662689680213846954435198360866899122541772017515171966520853777362996363511314994463472226320443442554439114655768839360000302955491483267182556453410892369922443352956317233919545378728658511465408405532308804710241888449952437367118909801082669759665035740594847189032067060957437749185461675971584896458203805337049007829444280623073942343897643025946925730149315189080918374503951835640159092620727526957758621228530443346934363516972384159348615556828270356789423804234823641447024726482440294842337171515564323780365847372211713675036570193170796265178925196835938197130096026610241501846970435962632903291702859453432566093689580486424041873153664572231508778356248361362267657021243422423333881238097100666694045372177707235014905011408117332151980819682581020542395397650224874937433527132136168782354074755965539297075430425552043613880206450395468727752438700010223774000985524570719014105106443512715295223755598096906690370101238662530468245143005378570399568275778435066050033034500547053698196908575366312827747260221370522990059614422352764307012936909399179606213597369516660412103864842253025476300066059558856767794574755842035901797945910269009108273746496123610026290099038778371796419388203568299918097118116002749766541056053705324911918687346984615052017751228923489273141628163969604575510877768301407691846713521259127497429779400934668681879793525452873505275337996027216859333341559349193192567110920720627361213978973225208527098962820233083403740877436698412536533354360359992435428956059444233007896904637316130045284106788641375099445784789210820935512076285226723786862068971749773807943459481408497521017705187895227666602813984273034043885358646403942818697160086782647265311018314943067291892587809695500365363334032051129373812834287585938723508453473824455162842981732376568037256715752651626051201593007423673749655301507385224825489955138901313276027186243510391205518116352280334773932969256988257737993533862879126275767811222147271127335726970745799724735690236064724255638034680578340435629824123883933811543226430252498878536347102910509710390913383750008961457669191378521915745583148269487513429850532130273297565918553052993522399679590756887466375535911283219663128359567081096439097508701789525867471848553303259655265633527261444761922745253177589437287214620686734323279619572381483170356169746365982431508481624818064071788025333721182953774078001439668868896418915220758200942101308736784634382231468145957404265826317204738896367635780794075303929246893918258160832106289753364981208505223663417379947850693030611815932006635371224046858808347813390968338485201899249545249369084123362307344615254448366643917829387090398578577083839355638820657992388361850952858598602658444031300932797530490437270431631979814273976106030312965604277126991471917930135619393953265768655920415395158453961827796656792350486005403997923245498293807408439335531613252650894544850206093350514321124209973652286069548247506995383146635743384930102459480160695348083852211065552306753620575357085330311537321989264486157975290517173132933158331404930117888450624854737473001021921293321354533835568662539588641150849522272014121456623113083720397358856267872891093325823761287564894160456861192194785435615543084094477690041070849121611202003758914386254945060870234453209626365685578200070444846596930610056835300211927687240291866673544216690642471544783060433144881229233886306255899734034180344161959007621967339902317583247343999498458695558041343592173804164111148719934171900798454029140486898292469802841044125337798335226688125874821554146197477060381817700427974898979899364302104828341372036919572461274773839695580807497859715993300764642432483206702099268191485339444723551783214410235275901601817157471204779906617182584440341767134671156260960865603051116240895968836395900728634455248765263560913492920975274777367400922954450932181265231266357712258101340254048160316574540736513799711582187143322152128753708611034419227146043549617703689693285586488462545591929910840606668906664467165275656888690993016709247534224620345130164718773996555639486239213208242804197484193841966450150796611302210747197318119200890350984050185421883344794866744075929751006793927421117957925349028367930597859538049634495101417724426997762179514608875372170071667258929954635688500659510459312406179900298822885270736582474009738721565106832552939522581220278270645451236097389937022460793361548585362561168935646608010794194307578198450750001236986357891633817381180659679632538519537083346680283457622078666163188100448675665726116622637538257964860841569460869335448747504050687265714821033298190228023258914919708122912821330756537068948210566656529354611808002448573436273384226925836950583365568039639133882877551737444694214667627526645992094037015896113588292173501177076476402195781134134209792612976851244826996039538979242603490764484801861456943417752445389427964085693612349199371396110568985822643611350910629508056283202422083914172125178560221548748461348696173562552861583186231411599759226087964560917302768615924422910428300677497192031133909350799279258260761138838944735205403793199047096373647338352153849973064025212275125394212125748540287479278963073675311881178348958280850037303363426847587183061288077503608239294799149324505275169496685114511883366483616686537092662132959138646003329716770356499708832579739568321792082538574446553510854792963521748969180469110911875130719010086640129392452155500595574052093605376278832319388865235272541566407938470598672042412803476559539959685909366649127516126709911966929187715881760001318455995768696412104489101154678376329994342695302808449971008232798482459436513616636139447543834875379810694937606691898003479166596546109397760204025342986393509746989648876645780623705486436394566502439955545781689789235733701186353034767658878232871300965558509727614527387116664197404589640818101486532242202932923656097130725086272145385744424098744893230053059394672880080752220427789720681182615501884468495760466621332469679403713513011384243568255972170750283126553486069999118864697469022691502207563863480589408395491819526655267154653823014842285008774403626723563656740052129047824375476079660986437161475456065945868643756742256914936018359935320716771245631435586746147201187264249468933260200922848219734373607689678636742376215988247483472374007712212959955946698111680170723094774330959021491129844894254873680893452845969220116307873231454780650181817927924028629804430978163107224493416539813550725796611471707768634830136928418551811431988311224017686572953336145617025400669573469549211317454048672657051771751656451036558256145010000427190405716251859783297850015375813466556485894850877463601668045431397721791443346152308550788293458783530812416423407242255969690765474361441047140052083446683368742879235143319706026290004652158056070552456046539126206420415541920207999415081666220896705307177243828460276708161937322398325416391132691172110988211871095652237718820243194769885616642234309828210058974112953817747121981936784390217469965099833131420192782534244399142642716566156481328688281318080927936575497629821216144447147307755995282171248231145509283418377205392005688330687770353627559004009694658456569031617261752071060304034354905193876029478978800016944147529515322679199758566865410410216150394738574109044680871846580426540206622803845448906159619279715354377909576192114891238402008051234258069480265175306216058779765838435689480903645993627094913942661082902394949670427280311119118424236558379065603545297410453846833330840722734429498050476775272717969663184088052872049559144816117378478160936219066750767412116621638772848785063390211890616328801115832322565356977519881269630608138974123207936817357818751301339494011668312824643921181636556917882364394191559218575202522178550384547812877130131034553543261023765033589403988034262749174542605411401991524291493815801371946944077601559805183089034952608047119526494025676906539779575887633961075446519901848180722662501202248493667651813092759417045912957116263553103468603783718097486083803810893492020623068243652523622513881394459846327372018335092588884924221638865609361994119463585466673752610570698376532394742058991506602583615716096107238202456505305278217222105040864597740687031405800610504055185991598136985000526576774560200049655416416083303839091636064377436685241167601988188467757688688258025477412216574618520833842719858802920021578110126655571407483622421140174427846409736717002933573296737390699768606340140703743552030404109337362450526266570504225157513197595234468230082875242147365763895574808645740385328149660025363751143435935805744404360298199489130026375778833807438887806343349794560500270286087338105832117938318558277939507164791123234269751994027846987101491365800621231363575216252904533941307996964979610633987127477146983160903236628218441579536108254462853247422507973803687347696515253022793033394849322381385627207658955277140240441870044339159099684356499312414377792290650216939803253598757623603263712231779163468364773599629249025992988845028661202943429725903695404842853576065078551821820560932377105108802252510822355013944257871143353760265958118628010767885017716710883464363569540385730766270863036116755028895379661239173060570528534247423519401731509276188219784431478064449078998597075338871840887443753428234038348312191192465445030808551656849025178251505743472401094472534313461090808636368919702075305740712973097623108444655602351369760491090051740335981287022231865313207938578277646879412268050133323660661098773068962353642548009087644453120442079836497055754155802859228262351926124436858148469039701269337688672554789515872597820644521693514227777655820444748084018900879248609122401504958767984958176948221216347894034655552129529354136669952143973713628798498084321772321154909679317028794124527635695049186645459485083540342931258961046341725206114308353639544796987777182098960488494143404227940219400614800655351784156595622134862456418241390205193328464523767210630745408847279483357604526305127040050687874894332065752792792298385534598965958902284542663932942300703909303854018473109594896637217174178543803883436067574663494550731422731100568696440854025923562206997023326930153450954560336074039620124688461692932446687119472734439361035794405626520730568817241942660214238455371088722776658008290188282468377228055213966481903562954877729478367572499381218829759071007341343056087596421540237757414048409783841030206111757200182185526753977339630316203456000213412564129313742162360534085281379966448458860338515132793236540638339057687789656114706020750782077399339044136274685959440842986500432092647579028681509743594647111730655454704836354390822430152792998825173970525083361742988191309152649616244452081483272198605382836757608422749919977044713168070284400126689690304266075307690130723311092584997723812893118083626669505701263841487796590403719767876184240547042455106821756429284204899843042152283597640268410290368336307159321481308531171679150045553742805262443176475392757970868200501355899698083914194394950463576101247655396064203877985036332416004451530174455187622593735773083686934889550838733279458831010360615467174416307945112262433592827516658013099503369410859262399237358906471552959029846704172501126075074466673488986789715747982694110058271750743057034221188288179439991616515659577046352293487291850882678665324149164691386651951046772609090162810796575738299936312643991887342913618829081031579679071364817342416311971421279257325743889990642979468590400410310003445077240878129887505442816374791774838406503865632063341916511521111432216098253061578723804360806652252987555089976723341061544600608815443588492880479740918660707891177036113914083893972705201668917189083524339989779077751026847304204973440503887512345575174032321809645688941197628805770042990245502051166042590823717860564956925338051144746013256415361432329159843219498291287108588243667864984909694734864985010209138038655115383970155486394070889593284324014297860077174235375699802729934206532897114689458308874037134808459774015459835551513826453472877095630902719796742276613857457221135486501282802943904754257889005601206468164360834169768200708795411656006280961330028841733619451042175725200192758661509499576700632748720907643017975318821578361221653601066335703867459843316214032021408251781828961833458426829989145472206827624177061258947468161437563430020700673891339366625489333547107188919786984170210887997193877919687863659400245446590768860506402017933777170794327432979161683367253092386631704979735587408709966376848214046045115280607740681918472370146773583726954216134113182054064563454119272732272336657167407794630467194882279884054469022297834712680254616398648368091418243590552474115344623575416619846843165174574301730832754408408872412937717198039318775619780024466682283879524590135856378295000698374305542390987148302932644990444884871365135110621449310109701035396282982486404848272719007057991444738382891877924441111024580706763257549817076900116345695487378863710810521443851029703921117522863163761233728635744110465055953522251949555598753775469597114575372080094402307770203060895146621302766397988189872312708739824776979038112758591957905654009659650428719345012680835415083499433057294332522632260319603331731348648483009697778991120595254604573684688072860590754053067575545139381652151143131478274396960506121360741196736336176648660661615958291985225723921723529451527927935592217295899388626921649193176326161394001817134982326604689746645815389317649748135176677522073525801943821224818260966190108565157005256690580403921999379566827155529114630537395558904991674977507594246830038338349849950956157595662926944007061937396033003288624354136286266748660505638089925957268536479079635871828439829024552298622228599424581614327497764481674499784034665005843966583116388199377559921166099787307529932220820341156052987689972386027023313776141055484564765464646457069994308254511922589221094730459656737275931221427132154219337802000320023248620389517078476828071270904514483802606115959329017754167257157362765903363120852488178627567721510137995431130988613199880659061886027478196299804840876062278197543147742127866102878243715272132610081427924137560587503478858752147483811455760666364961933199836189814311907948769570124495509395946599846997327551480852395413799142513604142806382502029954416920415690398367507379000851568008488439925543410097397275770573670851419808161356067974404692026468110116457643554896241471724430082087027957825163301198842741357543145708113208216566787931191346422360038689270694470178888871630507798920952049781771511653305763113548161993921418639888909598864714710270181970027774764843298260646701098095210803861640111373813699784959259171388671795658076536096082905542293438293755096043802927889114231227053194897390904892172650726416805985471033127720364824139145996427276904862214471685784591217072560808528712869412540028198714526956918252456653949721137864439786416938078497195813966488180844653070670612618624003155726579440915935821384314668166304263460165221381114405187708138342517373976763941113432820747425000969088463452955153353431004500288589579164110935421695264599955128668723097035829059109588618986665007144498093740195544635463515750079812420752458022402253885043752771149616778322618966114051208669371037472406364152626457521351290350496686880672508292796957823843667227999740194637996692124883756911856896747677023680525936141609757216953821686676946535466377597339174614575748455225861481219210704388254808697936531836277561821440246755559698457150979595325509195366689531392015684157048165484395202103802712056058882627476993643052402329580532764520269332721720937457417268372521072842650611505754438382633980030525063799650217497931283173076492495520088769887282908898740719767709052188818631545625264296411868611428004330589819710904283871487834129601010596074748000131999899384794383333064486066070674311334128220282028522154546002868354325760369319365552582907621986424475593428688575224025939510888516761065963271799712673983451582880808305736384811719433823302900472732840626617871419549002560388126786559894873585929476103374597317080514020377724355688476347037347915458261846114337898882232349804197117025536214205043054912845921020711209958380232268727656791069343365516837029170952877507403186635606428117664302932002431145774628590250838558065512904352080597440970073067745448206316249038251927458885479199664308829070993375211800844350736958822570370819235493336664403296105965423316499643068563714567762342461159554511199696201162732759980135103965831460022699542429212003481265914296241491736452399632660898671055369882513997966267467739357137064295272268953778065672418235007686440458378962380530597003271716891048636147964789992163801605113937903149148585845057811876052915386287425857534765326771010110054236388729879424277408588970528918858103344987179852417426388955156997326694262447354168771214149683137237806327900654374557684045242338191057935732951058641301496244607771209034684119468517403063217907340931414030785690539101111840686918940537706710520028543611319676759747044766201926443736883141184720769800344841495335227261936201505134272516513209329164736005902765959014522505135980008226374828520072527466368684857081937301436745965082185753473780429791423017408629547693406695943478987157479202145621506082341235405863964479767380482853035955247132144955031005857085301678178355796138150995820373023520664686581085248418735919721648542120646848507124421431810690372579788144484051067032273040745168545414769193832238894033079085307142145257611083539065830482984160703063206879193479767706206191406074601087031724567647476284047962353819485748784699084529222006094587172154759693579904253272476950973947067814891801838612003503804247319388930642941968526244301610604426236530084630206546294377218132855445525449351517273360526286713780452320737688250411433806521312994320777531224129225618882227087416530103045871178157051317246538365891124525803556083910442948678561454657278045250076820010604470071334999505997505170279755307719899075348770749532277513410392404455480072671040500702694711353282041363214101112915459343023684625724595237007564564873272198584554399150932651974786926566347374010785880992334140637307356062200086383681891650392861016263220082026062753968761357135159291109349360687505298195336620659837329641448261069452668847173835421224050047474245995705922744175981190721791097014759572907265767969097600285424787072690672862935634266572697124885211549827329528384127078944925199123569131787407878246831284801027701495113062618295088939272076436768917162699706625210550477649350239406151861980523642507890818464835839033547287104716221077018827169005235330722898196338045582438945935546785419026532665959026358908712954399448608562624142506470617041282605538254413378561934447698109086235112596546077386779938357811141994171523332853281254755370014854660406673714614589169853167378114875888861201848014349313821580201468488588938373561715301070048158594975610046477422638520483651321798416244056818940448770609450342639766456594586165989474957726493061030703327675602078242434524923323695577050268631199493291675062689129022490835844129709448183093401004917112690033126834161556881167657699748157862906807655483842320579028987215633954656937608674751758643606669414064720818929428682177120336021995163069840190084948626136593901184574915628907701915875390359412307194141874905011491444020074205301823797265907667238458439955547676977127671814561758209790196112761516560376903429632209310422912342222784081453658096888650203838766428425204281552615719900844240573835359972949071473645501017486566161731235712504541456737379175000757154725425170638779972152913370215604539613209173980762267506634636869308188868091905031097003625830507856089793206491891670993415032247547937558170213131353630620392736618933559882585431487625388339500752168204965521050903857213716827080695833282668348280775302975383781455407288003783313940848399429838030893021012576881840632084608348897681257941500742079114461609927747247773294929484966499312530699102909036136381571684948448638154766189362795590013601495356960068705512889050098737170368746300758149390075031937880925823403081184053507839580839503263280542621552731973017114324720324711966603016306614730208963644881395494958003244907497164121738602991456550553406817311017531815897310379406758097139052896391668471263268868651601604697565147885136702011965742112438793907488605200775115414736361833615533072545155208417717639435289403436049895121618535135254231033117654026944902918901125291633035577936605634590256354200269497358536365307875806838881192849927872507627335148827194713615210752052316810834788476819312515696054716730674655084413058958214329952775602516694407062673086813811882306677188861613263148804437600468139970495898634355622808898879910699520934117098630820595176940839665235093417360338441828826488114878406824587430297304081101350413095881588032431592567162581121461369471702609300515760179169789925011221485600768697062456590275972082854697431614790314637100995868644709589965723257687451568873917593462305587530006604962401463388613694276975803234344547116985827484100915777171064846122138876666291204428339026170298319665991492760680309660074074259692791831997044014984859558666140932713903848867640630804266236234411584966777618234654491526263061758720086892108814614490651296153559189704245355820267824983429374351259794726745351217798345029605398355164096916229177149977182047780657015452310360951566169531139254998195783051902207486964674146683926545192474945663175839249046629830195520551180270515019442660327669624097422468209882601049552725511888249271098460426836303420607508923938176029340642703935205431296006101278729666909714924890807761040474558734432047836431414972117908597249065386830627549951438318548663299255139283926160970418895403109733834070805474012817241508543351761739212715850686914401434643339215697001803016603780905741280258746201667959354616571500272560197222189332543735288268512916164968941769541120499495936942062253542473699206300646580660898309908306415815112168703992851329677174431204591341937560401766457149594731455333588257700318384092735381133067958182671554622838744871716115088006803635183801432666160613181265842867063260097045277335615990124645854060360176058040706503011672082374083108391444609472351447040281922027630068239920112491079545525816241533242584670004436230089658057159340467163968432933071399318170909804692830839192406698127215367084008687507818721698964283848246739105126644212852901027021022469929726071057035870536663743232830282153779344603845563651308732495310097982984424580316963976852764726911355305245603196039637270738622417140972666161578471872919004611283103673500150999312077199159812444520669163944908182311557258032157279743274291610720567942303473330235859493871105806639560079446391688323888952517041514166494110260796245419570536873003609054581398480299180850386022375735463997865981600019831354793266214842936876707247747703870354358106356900031367745706371030268931519861152624603888229603452134251561924475025600599396355684152345907220375362076136550244635983966174329285544644660115581064537440620809422353472872139002795328182177395891070797387755227416891802567632149521335950659610377112089166817554157792661308696611073024788118407859271055823121459004061180924513279360955183730241741105516298251264917306606898116873182542116832917427502359706846779167702576752067779997640158767434157130187515256776997638856308873324041836916908892635137661257806460693792680994475977669488999560847748892836570482210928243566068045068626292681262347817864531585621593549563545910414813704513826005191613426686138765884032063840796497642856363825274695542469755328049199972801192023932554650170878529670833765281275413159652235551318873964463639018771085631502912817217170754504803879112568694559805733990882370525610000524205737265828829262025902001695157606802061771506227019645941457060643516511706544266562116022396163949321931063574714783051010136341387282744055384126758745718977442467696196745583442079866890211539568681468570649183576783993160603926683590285082151174264000764619631743534256877652714168136012725161085945233081075492502461569596303433833977640651885460093566102815567994948045839656747629969560550781460703669660652913167876868783009536733135080380373185012646875103963310766021828632934981112567348615644758170788839484937738116513565814185104404736302222931217816455805371815924163570231962554102505577210182063646813921900886703287599193045975936920529405534375824609770225670608866494193648438340331074586332502725887946107756255747084901018111914682055333349827864482569513848624336870416726287492402118690537256677461206911008983597686477325249105737433504506880288105058926028549118983799760523430748700217164460925703076170886953098655591731144625130902627595336748767860072450293465009396281692942829301777898396911373647701999426847471752446912630132315266419754734261307272425018690691105752669713721699176630128762302641756048082454218682925786261635074140475638583304078529001658739893514853820239191131671687763152265444852050613947329703495650187581218818476976787928751861353746406846889174423931653733881005313944516123162172914024896747172981912456245044336232340456361621035732148382850591727799032867914296651628118297339107807819451205540342013416584389903958189959522218537146262888497610786756297980045574354219335532974484863993338051737082239329637073785139941778301789484362589254578279559874696574734211614491551527644475884199103280063827505441658463489460680100451570210134528028722331573299325810110119676401181318472090090394786296367637717827728375438931432440657501316041293439143621735055786900327143528838323501166604416279222294807602312449972599097313643888300625257805422656493056297159867441274238993282810682126187118310060366117275847365565568511757918367322338737012005633392958875857629269965747527307587306233261912912092055732080901842794878964137986042310161826322880753972405122556670694194291041343747234657721606572249246545881237180213364028138377614040866108587496210428351131896498371488193713889882478438893947188750448184256900303743762998333873249574138056252351032695986389771142128781477828625537430509784800476266498276908077077022289025670055265314710047177345725376263272743598986474825403925168573977378296391481964122869320157160251137696042930024528461429534496881316805117720055910686071107416251602310505904372082797488780943667726726527373844754570480573099216030402768933152238157606200900993169751913105887755378949892930231384875107278977176154322487274193357246373653598286549948865660904551098605117704865859865706852807311004344430338108637458695215327464231507419000918707169303321010080344604225917451928536236759963584188473155586665815753623697732028532738640496024620351818279769130524788489542880490433093306334469270843817380843856016823452467365867756207106996673601336287474013630933645579546136702372437954565441406296404724431011586871522880381775466070516047887588448530706228653727757132653052923801464985131901897237244594289419341055789624585341091550537479122448317697084524079443815600066212791412857163381230733216593533940523198802612160405691405764544637758079178474281523453776443382477577169217789568143206441556014397894807028838700132902291057424804256314708270356488869982530716830131090734350192742715125314846292339139227170019285861927349485704507980548350608053465200523782645985965011464225479190031306013620929610126260871426860600801038380314339571358341941182533988348619298976437990529950933983656597365269997635642326965884730067643008903164922792305834623168474800420616118340806505274593001559827327182392649633394151022767990142200860134566990443465981015370684262858621634457543995795026847076495924866804778483404049630718812095554885744613242685707817597224794422831837209824240433599111277318134856783785375309061819362768779870421059415905335017541886022664183528799872448740947050059986364790793166838812442980294230000075391473718994271713471869923563718027763188436240478930436766883330597856281436173256241472498094472632453072332821846831621621822049812888435301158938057041042179221064341041598788412791776435002538442682106960708596367145537574558129593086937490736039577550138209427058620977472895591541431080688303854662946534325602500146941302034870725587836714114155363574709618891176637688232591412684667584459138065065902138619244634777934820259720438489491400037130304590980261559256147400652310028496400603245812213598176952690112322826674546818555109348179730234092497589584828167916856404445451934338188914849421475402496359571620025680967087794063389347832292407328533196559831942868811947358767690312518209185691687106087937439292489618291130134534306822694158726181626303402407623280494888745812589602045888592267587202858260142038848759060944754219801712420812840240971055251777262910118035868414532471187452315540007208653994998234687367056479230051666062872065894579825968040384809016472554259232699832354579218656707858868777182711788722399993744246116267753827348672173709888185250740372455076805657015226685768165298451964669508782083536779045041436514587583184715185267117303925789714941224990194739191448794054888359367759269868501786853906592151870450050876148183194499382780084343379729555671173123428271629201962420025202444475282814460460264092695717639830193959454895191703635099216291683316309969456079681289388782911019872927116323754114582444003380067165322040853538615852408251252302968323183602041154227396333857473044007942222875840298279577016646696640944363579657964982188952725426983753686087346816467618669922485644184302145308037744910681133363606060888062783418994987789090633557466116848680068310549532115166803677971980288803003452761206640998411871690821220800390624237184896889127264702825378387989894396529697867141763716639578449229940613507547071875199926249369158573905395697964480252564353131616727078690635243342137079468283577479390469448516883704692137958121607800073010280763747847997789197560476193344842695387615316135849722369002610675020519830707185486429914803247205719892210431836169662774851402376371634359770296084729127172393262227209484594114106517017621087989191168485069729522177348820758152662030328010542766133971176923401205062830070993223454524567005638041501637808767915812587451751168341989762839474161333524138446218592197691881611740963719723173514077291515024729756299861795651427304678895659084258868185012731130271640194169184536209634517098228871618620534399249203867038895530897496383692337843277708805350923252711565640588996451335859674108977098903262219184990426550009987737016727574699296202265003704784008738963962820306028271621028080129287441788287926728300342314930247961327171241878693949137233348397220096198334633882979962951113401925454747371346025152747559521903300363543654296853326433060878863409488176889729895467502630016149340141692034965143784171606769129760254965427271924711614345149686841414580036193570735023324882684060440553299208673443199451886167855084834355171567332253741520572911193967349352416557931753754159596616428802537978197690723454334532866015229306154313154758534657475831109137300466743457202948852787458373635678930256028789212652085224473839972262871366523441348550643216795304087658213018948515503790280181550984080333682297208629324047993249799709736080613479238528529256902218835732894515356357545430621640216206554183894752940037822799041859164469471011778395990308687152810301320079947527583163002810286132236877632182784088738365334880148008994750708893058102391426686749556451857249206468008110772932295000370716098062535403522297327899686921185533661557423605569794871093712568587312372059169307352813487660269650396398669828011238029641206726374581052338918039384582609171344026580199069715979241857313170720691054243981176552428808014823971117814465228426190128172741328108835246002477438898169121943301860895603171123408904353228663656980523998743415471672293226642972696684727799653280468567854962432037857116988459976649883382966982488927391199719669231247341809791971474184350784237926439467593079298400102786550266141957295675348233361336522204077804368135107970790830356862415475933344699860563500388457560005771442291932370403037602346312581716461313179047382418782220255646734625657379005959114740724997460503310370187624972655676368826394453600421389900148917009918025242813630520933160286451253749538493198152719207406894238566728429753069261863744364809566552842955263307779941804921935330335932918506279164899952388206231309205568526651674236121193700127570664468364642616266480129241898716749589154549151517035084252414016395588554054456523365820168247679323169042546525414725023923456816767723394148350684685601323052124986175562956544805258713580276979860715554783556794322622615703969038040969105855667579082341550107090733166876049235146153384305444325618103329196056607280237168922679029481621058475895546012839261380766706633861621731454551299078164868907931395869478385913751280921054515144115376428752205268883837586552732223041660768592553427234240228992793187828760884209147528276029457512826141159447435026758432639466157733076998816135521686313622721871932196946289931742000784976200254982043504390608540010565636073993477231814149807364085461743556520400938940599527777707045926786310567298431641425536932362553355570514217224543354673864109201307911658523712442066339952474813597683028299595669593734490893391707323993770868207292090412800392826114158222316443170687789127286403389099286704657078614775357835178507202280756999423897258957377698569297114636770015356766683396185239057240647735125532455545437344393881104728114851448606716571776658344936230621063723347144098306708020453284901074405175817378919456094305166844802952347100238575141361418168765849210366051122078094127465547181265264966832623875250774674317303939890790703503746955826039260278303827978008223824596891785023152993451716857961851422468971356686317549604411944324780729801670403082752948678006758939475724603353756320056500609311994717708346605868738293458798464251971821181796851680489933241128675603423617817093071911952913101053588792905188629733927816320890383688338556389121192076888958670475148068022798108375592323077682888140215211968915640805735452077613549592504427236970962501782657395251307806849485252415808581687635509024872786548652240940371222274737740090772179604322054149144555281383842871036617377740178263125375881366539041038938390109121422808660359968348121491041827708471823103685242001098809969267686708870219643742287102902301743262364855690352994533811854106270528706321374238324701917869551726511443136912316369776172022664540900036398432624575237456434137651382734212340101692837420627807177651107885809487007354811493882829323772937596371091564394245009150508447372191207778237820607220106810455723499679590682430351350598816185993257410061321307602201194152879316814676327687579559950520620793355720371097459077041853799419535740958289283585268567331789270513351065368190091601884615885094709165230273385133786457725029869997635766016833835871491406382275194659353379788402280705136223090307814873283334661367927698550209968141885258617037908782664267600667169193396683518778838538260572261492683680237408554039944021833254893717340616505411421105048595320926853021252315729445597475031641600067580924181470028551890311660368216867179015934676290827770060078342605384524724801918228353248490725549176528587557840433592468831943552818807644334833338364603021953544968585399823937182969913586407088985264453887626010505194654868465989962079038941756276800408615594631397275696429558729567332371590961978800521785934871060409809974460767621647919665512375228060054184586345310045607130809696568740310601205357899183202228361332712475335519251832157452944623351961618299862599788721569795550722163359825140549700243603573746494464001748973864056222525315858463305953422676151901773143608376374864998835371880620320632196752428129914938465696086438605298685868002809159451486305283137849044563738662894173105458094022513842818866575790846021669676832757591675138530976159312534888937640431069013148549865780956129205053157434962280811190635799805663208356866294573255986044297437841272751276185974353293305107138909694129454788481450046187078884864422791172076979239616264886466707121178018476989770149959330009235464263564836230309840107769872390689830652249117973897961756696165409551613732360470588008474593686483700234008318482502407162896783884579212072945053416513278055154370333699165422840801125283563814551466691416374799411143428475380917529385039509330628012107478195248926749744132869791924963147137149856124397339635539130806131502362879984970825657262844998927373680983928696843192239908141067751052607880209195523714734653897315029570247245823377226401734662635649583338638966954832576427288703301014778174469599795584898455946866331768058337260741629953104346124055796089874056425924701547317008014246468311830930757493866943568624642489848169916357056245650846834949763592712454196505122015059233774664383919329640411144911583185682560687665027368500165487292799724094296082726571515581740594470994487905038802440461802736311937650138645456120295393872383510824681529054552909213428327170683026816356872882003086681274140413216692045479104129729724192202364280542631108037214651554541021004548477796411413816195187901487027415567769258430149921929930288925505081672584204343301791794629717349564022425201927051291248610240481778201709337481452635868425509751721927392892183609981281102163531479348631647219984635297196167423328694862739505696186765359924370205356299411086296948505345496728772747414361543646928694613679664520788182927050076372827524556978328747359031613674592417750932378391550086440674287487284329680823800441623397706288895655332010416735939012270476983156081694557374244406498366359086058347206636129375155520142282372778671445701125317159084739153108931549015330128399409195020786386162845865505574934741171101114615588767503891135915437235706439182270275409636677252133227997439208066676182841111108562907295419263296049209438499642781951362739061054794212365534304448218840391073178336025208021633151701347379329557277174648065605748958709029500577245240736918290300562832415347012351500195265062021005051034410440466697827407107287256241379377156219624134277325746075411038667712069221361028809300710356493686771470655575265443135907307094201703693220392584186449872506025748587152464892612772128947119380264023093495734922852285214198885479890585771602270170668873275627409905310688675006092568825505089959282738900885598605135504265201591005875098335300778665296459185033275958270094645314408893114000357073497783953351945564764783224850602621390437820490181121056625783039581522710664560530111323792510608424847679869233928174363220872397051606352223362179387059895699825760343199905596664906093676277866772611309222919297617217956718309911145779273363108711784307855055735141294922070800071127717271237933469128819200419050758666910213265130682857547068398640635679926806977350152611491782657627987904921132854088540115937991942790820697670256830904267015809527910482748428624369405226063525162540186285970258450017327011404429573647701628393480251223042437878894594957875585727192581109439795692969342827771107163236050935613142123040612867404001191552065331137082520114285522452130902240063970526782860056438142743462636629154205898222831030535976659700716168412892474659547755444295871227633709979651452808624819307260450488319728234077461851794631311904584893144053696864804903412774901858756656578572062694657347529570911716289160139462709614186712524214021247443970447159099615892872278194767616168652664783203246914674828960614951299700797596372366155165547020959670128793948217476463902042776293687415052529804006946151437965986127851133444431985670312453360042713178535082346185502054579210499900064371586649681064985623529399271867649367670979570356236066869271163971100655604965307992896120871238020405103963035185279191202567851795980094599186296051890347913188858775311979468288083491613551230584221203139051329982191656495891803997724658502810991665440194964824183816829111490098835543583116618807578615946480961892269089733905094551049329913120817497016150072727885761977841239421277548475368248119349393759580761227572726697529165149760521143609473283859918386105636890843688090176395305293163322302293453804149049137362374786354426349952454509519776090146074325488761799551739258305733769496062054841758824580109942969565655296685017533934111873503877634326886979519736591020377957121360394613530137580319769767610577335548767495069805226704518831714421130053121897170679276901520966205566917654366054031639260967029422269879473436515850813696150307466104178910929787927054098291378765930603111910273359407692867828560512428730418482407530412317433065347136106972774205052540828187719481335537864789519261671083342781168716710386644445493910651308468674191649766015059700024201173021211033920130861223240169749438185929597894960886175594127894411353535497386973588603740183309201490113968553613027445733634104278869236648511122746650142021589207925798457112524849882041488061452717777471940784088035941513983045010209421386350084070026373687511415204526534101544547377101849799240160587053683839440001760250555691065618482157305525349964671942417053988551113939248236050874616188619894374707239865066148075463774343781109413456936827960704350193834887202748944967556471059000906729775608501475657569985455070743737280925338500485707181206960131757900004452325422842813276285936908854382411029266428248414990228359901710288720235978077282169717688331583766581891420980683866737649813056445684385772388256700281810478970362677326044999148095299624000498955361228917157035360148764618371124793527151866975928679958607528760224720721165119737889038142773386331678682140394234758286320934613534729991597343935469285951124400902541633176762850141271761401769366583069447267492919728032375453635724052571999292276975742920818207537671194799105399090952865740647061667138190086052420230021232502878114429224623095502439913885975883624613405435435753252378212036597997690939776172526297607156736368352025340501315604113346582476258470618978623932057030311578019140349714894580624514745384222499018767206750123020253687870668239638939748383759533932535121075714339183103678360905775115150228181022795538724402040461407966025330345276096189829635759991607410890005660500925960083078943488682148251183969097923090260277318978222963445331781145019162570728812189126706977158028893458030715833721933976476258541088239079557824221523716450002653872282753464559212772278120084167309586314446295359942003719112070452260619105539036972613920561488689219807221780077003055927206075730458743772169420500524025513138666383220935415441535415452287124309581667416778197425867795277809609053125539245321881287724723949629455816786330538973497592980553967746592477930654065565219197289759556741764501448964766149301140243964038580433904473556860833596577603330815028203066861399831684398693964676735863613675464699246971226009946473046011530130533465735023716142264444266528604999065065650765258409866588790551693548851442483170852303668765716879679264556871394045172907888089019298946175507868767308024617298386793897497390501162621984711805133843301053479307565571440781383369282991185687278737398015828290717352379698251088484383624168412205071467874302688438102587973030278774393879613979290578891601398963370853465970301184424432632919339089639268131290847810729578972499748541750725382316316080429233310200573196084011315096361430836729771347009529056730665336042960258062979671423700808755805610205594939094743640217495798816088781610324009965963161080981872665889415985818223745946463328417465118225710226829073329312091570303066228614198990838445564125707243603901767601551219623146615241546915454346164633460255058604022102847363247842855872914939653556685955568051787698573832271354068559564927722917376689526564764293292925826949179908290657212665167109058841048356034260357264042848269441086625586639677891626368891140562739520058927669192927652553126276233272087863605758411110386521062321536793737924177670693151378382449209485763932713536463521148319685031683317545262717700581134109944954393817402584072991172808840644627719832174601149768539908383720164562388759477025823113041548039046986480786061440730206251798230784793720821164758257009702208638480942329089411386830487295617256966161783539343442200934652989060018137458845151481818343268317966008047931136617484747752708105178520430188793024897383654618483776412180183946307788421876152900866166712657505160590976864093052544108867653143608110905036996105979658729915464694674650979166912797006326895023302407930276309373172117402130349285602120609485891412397054922396857566469304191409111850101864296100468231421228637191802083852858577450475142978325640870259657063960160732847848992278944302391193422521910815967500911785850884567899273167006881797038821362434892681786436207895255357013680999254263968652813939893372624266124990199274031845109462951401039164588855325457904337702552660266623909113957986214636539377420991743888882023435165246025371766910191124852820549834752994024916163594588702874193790370252897374602665408006777873182645345125140323919520689212951292955626190239583183381187411900035270048721791393561697653169534776437439735189168012573468243115036665485134556956566855262463675443933227730529760550571139394508801713742076367029335631532012094156637942353320681976677349958906670907170635460512026899031554414969407239597016013103132578698255544995172919143326789885602307156010707634199904086745130977607247379039164880234901451418292513010951977017975421786081974930940613665056819211891304023658944279934420689653244268212684775778429003013354562709659832062392887664492873678343658349111916100601026662353059967968683194216980559669340309724218910355322333429479153865128401198197219488565534829998755895291550002153362299426628764345481602967301755536286019102802663573258235419974095628965626624208491083758656942297763313580754565613698676741728561016729409434920927791720816755501912142534676180944940694985945376319636470790327670568315642734066859281607459354191198152045828810883436574035071942896242938461917764844735163289758061598441068649695408786621025300776273059438348135909895875064377701521053549729201087998639379701974762344203795313842447446560252971688866241365226168789394336452590290493539391692376386685396141585661095247727973583419201961594339035875425611483072937288425463151072151181137554772945792628352139474294110370988690423722239393386278361979477697107520990752557810638460786624734711245488514292522654109695201629341844800154445462523643773397307294346139274415655516827452142424041008301542092883032892799993979822593225189742853675274447472768862478398176170251338937377457142092770162193539007104114383357262980998297551867881462969995966324590820534934868997495857830730726191325378111268326238585432828776203997483961854456754387908652066383493557513668581423548511444885308336516968000026063482481797477770890025231249769571194065886276028912405806862837879326663636237880080607529884132424997956152728119001842886379668947925474708816655945892696546604024393384594520263197071435975372134581816533481555248796650609878899008362965511755276383073890475020863931873280266653018405118623600590760628055489167546901428741349347922131365914218168027876500416806644306476982915169453041149504492174120258260289184815924806539977510608186922475656535344472403693872409120025797795640099077138375375740715543737730995328596365352086182565701195726255011661364722378109720896502689023139811498999538819962929415578417893969507221173472692429145792241613927820446173614686656625147367048312847150489491949636100581448090179766610114546542207324868820868466212180298416352993879043327459834606080076214041967422641819722282661918739002060384345298085046135841564092766091702368570660160179892737509577731886002410991453389844308627301055356644901742444043720890091387704679812733099668141016830930551993456083225886821780399984682845011658922462717597448685443414412937678186923616629922031115433527351256921181605173681607791643340790218169415659170667792250067219392081654767211799507447458935859279299691190707611641481514853339125378395272518100531970370656722772016078870831674017539151716782625028100265652299238683552096956586596713078272878772993844526168633342950704304989303610260061343891221105017900123458898712657625459375764921181428616394664517752940097420696681157867500441058889929271811834244558520038614814993450983087169205855305792340146003181204615652527092907675280765382073485551632236472600852164321773582349201348770027753955763167172038295121073498197484133247787451296205117498110265987452018212507717703584526911302017867162476243548379265217943398167090827558067351218001883653243846483599065337253332362519674588525682784650973463859005359113470671109731072157061971715904625836603934744918508999466723188934861661254076457516919018077381151347008844717464234173944092331556449384507258562569931362968022274940669933400058954571010278846331979316954614770489435630479088628109312015089851846639995354124778527691694144595546651623521818443437278755619040647343857443630671368072462530987710292986610911975214287729054369546137155523259976089281314628475858678757862010659217008867561116701505064342258744397235857469593087406717352481567659205135645366338022730193197644886995421276546699373662007940875309228300297112787551209420748799250096252967008927993378996040096426574046812790364358352048192026966036660983255053366069532439490555359757218697564132827139042662727545182288789013141322696792406945350447403098302623795800764872389014477361207874532326125059094173684664479897903763016008045654386748307043081144232083246531413449900635175627839225625522318361735178757983942433161823035007775127749061625939913412898440206324207973362580927724376641574758414600008296446440868086445348535236399436687052511289165748334395176100186703596353403682193714556087762489356064613972124688424564661612601700966621158389345820836212051192753152551821765384655393029528251103263677354180951174982322818441526910330026570917310959837942113330177438713786023078993392415583869080415271450364846983351760437739349101537965607898250461459958084019698705927758795286222859850951188069582524139250433545314362992277320079898051837387385711008862803840636658295116082349615823454450362493931112541239233577674123379046210584128816579245694199853309522827431758083113716628287814998475823278921043774461599566182138525652171374255792806499672782890448928005815465802160082892311845265153330235919113934037727122932732361168538175435077151485338458527865041959668021619578727513997685704981389080756779388111272289503641812864246726439853581869746056494424491791815970112837928732648019753978858208628692669974089609072489522874332059418763350881647798590956293041757253128074610988345676946670882738575842601876512918931551102127439324223425122605629059222122371364914798444044636428007587289471088672811696297491322255192655103990582395716976563037029763155389915377981456880786841531881545420989972852649935787286895879453341751001995482740567973175100368425069131998315448094928889826862925866437583561736234508895003256711550867668823971706938775112805324804982734075185861939494553842969952223373668446144567440619107832137404015354517256879865793546839456625930796633030886248556533928166480128257233255137041028692538268668842508001194130754036979677683946389338254194362238662303395535752096196498775175626432371306658574599118750363806903451162819867322612201573760718882431248529343179326500099662091038070667581813149353836059740584827569913572050099372762309612606719732102936799680491643996944131583156285119510516359589173889096110424910258778137950798080722468558604775794011954115301897808118306934328060450678477505083987305066255326460583173949950962728449824365947229149188892519404840280991965830082627119796583843575417090462639979466004266147781213938059488966310091480691283676740013600599676290544549186031207340167498133097740180776901151888073330027616750948217101559217892886761933834104720513076729084317062800504848661813424227996471151666746381658678022596714326857228601591482983446989687455637960819294957840256954671459699929104278455819595059993031265897306886762632705343705757219767485628586377115929925679922794858055995922094207694871318083737519382073970349218048969518397907045861404408336626858687383328755767817520104559047810983406866722854416340480959473424121179441314555903316333071151443939851993276867057249645181083230274825571064128891147691985235161773447855611403295915302360482359575841944477934397494317537462962729990616832033774900129180361652938578407880682018091317528616095196622475896876123961983070766000287997683332545057793248627343406369020306738657521359271433461722285735765657226369284139517459542962966181615882450217080250680047056230095371897651945764735238567204724697195320321628726667113641007385829809910675724974148739204792913029954327162739978055520950504172000814609283727461996209909792835892674168794452093462544870287436201266382211041151226596780310438516595126940492180301606560218282184972048451081041742017627014030188370382114144675565913823922027725662359350211010126495943658593362679782833877842086530662068660494658908184682915459198854512902462241793933596918560789476860482319074635023489231937435343217705899849119674038861965790485462417684115271253296188749735332497462923050411875192852589400607021038364238967007573378213063306868332798203542398516584177085311604813824949671444661369795893476972976569393833296111073756529479333152453225648534908964009469324922190944148684475228095057462001237352202673024370584777270705639110081417918599696056749212616431139612585269101411108909491301402354395100726900972730658686182538616805553447245426416230973244694465641338965652220042371041407991529365128766218166290462303178610362634797887289518548306177308879298083762190056107296150713984745688461097507248707895210666617328116098088895052658864854524963424381020807346931588127740601056653916904791803113651878892521741941377087302420487206206719115204034444279169360286794697784050905801779367091615105953567528637383441273320751552889625713044785769800598675811896853000573525142935406250559273393174587018086128761765938550627428293226331068987745536552803714624867394374440093939721877426739125286173869343412780901508048187393827993919332419155455201887996280736747726153136622079317734656989879418684733171123202229863387795087537700262962431231018866805750785988781530681314571488719773882981997323858289081560376541954663785268116658797654284385139316942844831743292013674681328584275627461740635093093322403087666644015099536222515610602516022980715988339033320642272550368684636625905407457924512347250474320528564740362594246941407671112933424086565988332570741371284672504272572651720457393027637952695514755356588612196524001135960803502671518361974077505855702495306589344142849767601729384523715306702409921070647971203380548644456333064301943864891725122928243101124369754992267226270983921965216832656531849843284879070602130168249813913483223614920594422188742634714811529346041833996884341185797061828743207758355321506357649353829174942993539629416499174770259244003010237505863981478893373774042098109451411167243454401241341211269863021595385714672663250426455303683088983311866294901897405819815235006990750683982251895857967111923146895850272994323031677619357876468606027876031479409836637212435552915452053223615476998835881192499878421456403436608350078081100608955830435475639614520328232806341609974814462042114066457766375428261750627417725836012386459364463513826322844004868078451140653418455758242329413843368960037021064682177126556018017360783122622125114031984194397194276130465734369806187217800438046387114529168153425139063589319772607131168234060913704114630376704519050633830373253931030456725062279861512662321309322872510480697352699682416501948125093241430866107606724322407203101888755830389432811956753482057254347217265959664010756504261215313277097015653708125488473981125832642605492613936444026055791966064833788110509583253616395422104999855122483345591364782343358425445203900600213271352805862888622272046138695967359132072828058621666407629721369639320560649038277807796181575823052757473229686071379174456297097477247009882382838494014066866334328092462327102306716967499579004472053861618121904138785202188073360023687378475620379384976430173674304101385484392282165992246998868324632795383699655994047665991766008482237971901807271514947653951907711830836118641209244636143633107301061306923879004684774979984071928551194381651926383512592656362709129278918224018840595655330032129750690472927591642103973140846924707925170741122087500895286800090211895604128901592748084687296510976822934029947476961859173405302865090626113516779029973638385269623185599523047661503373059454988169710035068643081996461319449588871962117490156108101639835883812125559459304061646333706229100910086642528680830140456183861053344294027218408197188237087420405176244350490347319495304029358052049336309694814364383264668886801687423520697002524394677576820619362263326005090715711163762353329605488294778034480050844749550967891745605680204248383827373916702723181063207333007741736879246874680778253280699493596074140477558953330865844067403121383330957994826215894447451827643726040479164778176777155661273823425344825806970030828785176353908253703478896762221670784133911802427844146400460680455569523712834285958077790046497271379475795109100852249335067491067530155520986961864175378357769222850317113612111301795443378722830440436961409865636690181063388071390691332566140502289198059884118774241982676847408957201225228979378581606047545689591152141937982034649313866405768337478579922045741453343644685487648798276147814293395617506512674798218316534462399334581204657266196409158526000264753048057340413261489000340461158433805196248039376924957457854570232006078575305650230030787745333833989539579637593241014541763088658015412005163709408603408271259854507627412211456771851785177926495869713152354625536041805507776873271717240761928254439912642380943323843474771520982869794137969109548256265221802703140654849527687867742622686680620414431111196084837670716364881235355704499621393626203059889542907747589616289508246152219424531479071482805116014155821213660340799124034651287182249246870657399489680476570372022348915016738944064593632593407289223906340356249948480105169974581868395418618118362960971235518222154930663703940690618328106888885975733411556775561153258261388804098406636189065983502908827455080138465325696324217097933216433966298155439179104442743604384680423157737101005948886178742437868968763373699989007085725592398766736888283972001434056443228887351026520845179419155767921836879267289306062739545077303769230734377204315533375391472125460151581146238446645366961359987110398720688028351750637477410743001366123508200617756497735497529240958956953609273431984681304422322606147591593683727474156697736835582721932554836152227633054576570024071073466636016037542562723785996012070678909038317901602169615479618359257465619531835940499584853581117953353692651963161826379346114394802977307765767312738428628219764937675549083477169049944043242571213503264845092958074805333374230032295742963673429725455616332942703051568604635194048067275331620549573181834368826812524879075164846204991765928177855088086695583500618284806918758569159180669716736822824548666493728203808181292738071794973122912735404584643322382959211671247462268587701835693489422884497741657902008372795414773043895537213422880505279979249503097994174520877040051056978340669231965833188563967903194308665578565871543085036702851184263370547833813269283132542116497759873490386903609270416217253506900593714801363206460627108858223253496157340351430899399280295279998295268987237867007741598002062288098256220269882992865118716113893741441983612749086286019448182038556699004779610896814338013064820826703997832358932195860831480897404599251499586221415811352236384298811649322252922690927710697914636669237320670899307916684392853757069138466969362277684559926374120488419829587523375662778458888236078045725502387751378205477487439206162687171959681874581732916161853485908151247478684876490985134681860383581630666087250073434142895554227539861460894296099369551784389483020594082717437568414301621515305087967843244543995876349314348711913402439791122135635715025590010825462541764111863117121740301803386420251680816131362322347915707042815450808333217864018643046211614890513882325313290801828070960080994263046982069254829052062020680282063603866786899593913714686979409477414559060294128695548124616674767320764593293224216327939502287199999462918559509511593341215917677598687455975704414646342426013479513328891736586328667824184952820631309449267599207963156060423754841014212593464539632990918994909744983577899446077654782007148596742817864584420393466941501566997664284481206382388411626375182780097122069407815207147885357766836605560783588090029132545151396460379255713053945048384125868349261967418257357750953718441224881172510114840209266013746824898880873614708695197169967868941918622546167367931614716793889352627416971644076203026513907629507325045571713435201102046471741892919056932236166472444554222048692994364045090738387232088437654542524741872076569663381942411689533791345064867497401983178052897610328961812714685533365435407829761074235314449256888323066866767906076447359338585162461931476908066478666479000184096366740509338791220470695062602071480174100683332461882613614902522718273529571929028518992237224997028756164953266013747509943030698000903631385437558191100448843690962924753704358497471566021752633744114655576699932148437599351875734783852889909964303055115603843574387508828555015795227183159801058563422377298834317478056842562350275353244651528729221821025487244180210728574643577481686371528019444058735600097713117420771983689325152325999897479128201720572997168914964897113839410189565810556276988642941470851438554858351405720207999809071504852817884170175795722443588132846959393291779967640557649162725296201285463944347245633331749438541110084376430362496337665917164209309260432486960712620293425295054834978388618402119766836680199980188965249429385881255321658103240570022651728533288817220118065439710968412117634549459121026216346852412914382471597176859426603566298031040649878404427432586544260049709288515406349986529126440820086756252016119628479940568191102749350419750573468891912299123730169369821386329197728631257886409533387436049453626604366512652782106713166257343779458076177469597550664632933059952881849524026647968303530765752842675043673618105770200019395995210981115749461977337689693872938094777369672426282278390355377776743150646614492492749659847982218128439392806958141087627338746983516736841762376254832171761791007130019833391517423535406429058965667513955971787889241525672617795794599312414905819740441038323818420962864776041976944445461149493800281171319200929245268857677279479045312310967622507724922467467075204047482244397726523157548134414316905108259696198893082950213203524152642503512919381757744237342563017423688533707088613500785641967283646278175923036933312339967726612971483038225323318360921061593118101467905883542525654241839782522171869070068864438430388390374023978969542382073222930276966061157632098816147369291749652581798973120059841604818496761580344624232945338110023652801910989093196060946500445958229065571173640479088269122859593938556184842219151908017157508091066266416038380996588720704005771262173828999026167111409887978208183325543538855735114641318090146728119136989892622187875310688213470448528700779288638614126130945059020831199606174209587535281135517201408939574424079699354155236555712836533277695510951500219325666475838880067762090352796985193025086660708926464726823994850604403716743412180240533442762522138417640100827571491536223642475029664061099923674452151704951713739753298038080786606533615433103596578355840010334036480527220298193094824536540410945499379867177391524834111832367539618954132686354517384786713680432262883808334864926757760206169884655113055410092996396309208716360397902024826959470201528233645708523442021870635026879169431613109459167436087608317409968249312009681069926393020386757318415968004652972267107776345095669923088420126238222955412344425454955157098677594387204586192928142001342047876530390226181454850368588840148357284615631838163021306402009085703022601731230586628010457404337122175026271971173258712025327243193829602625907019948497254503058790375253147274625018098376303480640797931782684098091397150408094551579417445445160406736010036471118086401461672672265719895906649941729556475465362438432883933144488141616986668319176518881652217029005741117570631846244917891686686816429275342859680177095293342614751312522816662495803331522778502091140182041394114287590144611092401181979178366774179557522362087357211626296568482012250218851730757831659525741754929470881595973736917419635585329384825163759731346951137417370954449966993842390704670113192072654225853241596224955900937404778903812558413800260337277618116150601995408279519859807538364807423299685585261171440176216658235088148129747163750370026091662604766410646415337393839048132777272299120461212833006188720906262602630792993348018650906590205709417192073566790791660026919668626751658376530707158210604203147042187125504698997437007695810140741425520028778395901416280163858453105327799496219088318725325048309312592935990872902325611329070256492795235113808014872284028427484890838258814336950337979792340500192158518602534782364750769879896042134580266527264475619652058544519553594011590561082378389218577330434870840777934482054733249508776061731968255693809027740424378902242326035585531038943146801418654470221512563296474402414804452592584695857126185235259016219530641902318650372330677995305441319212026723685317469933167768828810626386262457773430711534844984190479495312699356108032640690203885558827594790228693165902971509888160040157606722202065384347400652386105093844220706698503864173286915201964452636373554946532845522115256586413591657416939285961629799134244641852202678578619360869974365037233271052767566651814761408287541955096811813403306504134869809804682014132975667904870605081192681291812064180906421449374142535188176333161123550577705225244543863008533719287124973673072730272832070009666040990250075682251923103384834729172095498270052756222608894080001576667093708019869590339495940526314721421420635545923242269742487099065848939855784566263465701343100007182700046464517757492517096446694929481574865440604182987032912666434362575833173679405161239649267925322604515406068488916588599270184236470053688408611737436616916392605768616530752355857891073424735349191551008765460069519016228440417709242200307235310066687354329893629918044262300144011910187349651314992949335428249977565621581362928383267619382728069234439387257808224605235942149650892253464770966683037520391548344732243059557903784529026394024269883525095142934511604780403896712101175684549672650410552780030556066965436734780885701198752158203736445645146808129436270121878075367086351281489779087889483032001267905220866223428669733940225390730073930520916847172726211074068426659813338016752438185862571991810033216270899532519040612335498885776388764488715777046274227054139349257079489442525257335719462955302134084673724728610580301831666339418661190742271688701280957715707519414659839921199965032479583477333244146261177916134288228767576445304750587315413498006198504604536274170369473356470676908625443821162304992911454110982331307524351665669387792804862724272297422575800703788149094320846117592316030302029411100035644778667623954416715101194210778924891401884945810940538142806262689096057748081534506750811225910812619737286626814962757980569234573251078904556002944218594810452830184195092132168580545857338304725840001337379042055219901781797958838221912977826355738867121741913885160903300589851542054532819820823969770001902748889748722216405837933320203947639350584567447297456566277271409914188105305124909955896901703441949314277424513221026478455410477826066447576572176684778131632183274765459258183653391142326962583386132237003550346724623548952302581162112651735322612008833451557311168490855467850782730698840640697386776490614061672283335161971349809204533996477500272341474388051232521236192122529705333589001930812727963281265876753236154165737228111952436023981975481811114195120367692329832097106406697994628830393878750593991457786906351591721036783248407785956589360230223258943183857399293101728276634000441772814252299147027901358879353377250673576812616383587779696457613274049909278458360988364590218923534669698761793504450584413064505743501448164780681352944132125457319178573969766799075895716544820615355905286882894700150629950115112728983958211386109185262231232113583626134584016456111101091303070502183069740514718914179384524914904544952935242714805672584000137991356486953094688452205674349457484295955888658482969357144892420638367045515410287721708386102962205523169356607056422499491154923960809598234446145444899228642458972419521328147436580651355924775599520964683447860942375290966257250415395728922941682579201736773491298016653720660983832934041674103482167653268781585890728553880576069697777487293256292946153897734537146323593123751511402752691495015876027524606392502455823979376797423274701300983112577014037643487992177085442054453981564978324526136124282711734136462956165221130929503804946168352698501985803645172028840136508166437451329201589074833995242286269553648013507384548484352352557166161551204859483408985650397879958005644251105719381220913225848047109182937019024028762559282288477153511283755195270227708484702559876194468137849350962672239710816535190578972295786525058585219726406378734045497373275547174669370022241923133822010982175219747726107785693832694643876746694199704421860899124113702636184816828785266113342720109928700866642208149462320505491378958965183033900184048398581516171759200513536497562185370850872589475599671221579171258509613920549399517356838801395465442659701770761313544596515638978419171634441869204066821820970030799796086834425259697978611183448278905427529676383676802239997679254271199097186612065462302372245656695746100091787939765674019328545637748639692327185947303283816600756602720758225816360964955745192481565366238221284836233062536645031544561268693297823812461185512794453584269400435504295337862389817208697667389531256928158811443666660588437834964927212474912952084673061284648880199564175428002302871378492041929123975025041629553144356889394953158344688105392221491106252079403890483594184527755447006717338141408611409549370402105512408899057350944437819009126073134287092520535340842136795088591384258303638487161801916040577358283248539145104069810278024387882497950342373687991988662204340588538707321263820130077151280575058519597153631373010673932182359272155943487624598557581202396829279725000809208150152132541774954804471476371610794245961058776821392111871084093437107054636140874100710756723560081448097208586817167583192151127036659276535332070509186874390574919237534221896743785229275681026818721718428218575090950613605284482335652924823742476398071212875073394569292250890199316699220624602123657425632014203254028454887028631537729837253714115405764906964538163336986301140784448041369881550213137720524701306360736924609304349693003592092117927148283420824815397328662612638946744779921944659619540760354468929229233001467019876961877193898349258767367088405171221516941326694494758845710474417765411523811670715401962505718938228211730526930049780694852758325857799292727592164744577585222306567815383425309208667832092523064659390786194798000947978045660126170606862803254820432158445898937286425099159381359089271170344226987568888659186969817180036612262283447078811029793505435321715087789817013488563424200292490554372476031215686721466309453717403829504910312983257659752393920167049708830662272739459528631055646400704860962757286209697508394452863482419366674389884631316280779193567067196841341154992530429648792564537248666798162350379606796429588374830303352467982495638709145514064862436724457133714068299340129351206046954690205412039695383917919740881161342733371884530860616784789999581651997578800415833035144989786785745925481134397284608852334762393386441501918216069407923339345870737652077944080448385404668142343598478142464624658302116997312031261686963768719519379132290276489000779333636790715183057937546565247422875793832189016309650011216842559915035850028288789176344424731057490373380547236716840324959093679181097795528344647056405180003814199971498364729953677354075711509106967180328171427827151551879054466644604596105721405177156303586606559266928247761223786803247388610015855150573446209267020200881148201651156438560230349266372283689949645477770118537649319297538825463329822767055590587419496254743706659538218495680670454770364643019886170347435724317278009247929710921244877560338704941895219781764309580989881952718330331626721172801286711015972854364370486664739935031912613450277188073429310395550166412998255362632344578938139713933490750696715233084542726685697572416436388200589089121233519843414348813981738396432337143868471572805773899924770152291071670534033210352042838873327028129389972192878269016286471234836023811433480295597561482885038657970015662450455712687264421525929300572610253499251178171009614795971956937208232744813106919743578013330986234382950129759800048139039243454121821556017125320993140240648619280620206011494339499981333794888121840775182242389773053033495379508803191102786046567265869855506475804791585209337851915838808028736384560865823797544241848004234056287547230169011255644455855041333518606367071569038496493723434693825344410474202080399913335816777956711197570646763487659835581339929424375044825597555269678752421260485188626197197573324668320560062969600400171445043115362683095905731364507940136409334926576806411105481137148160887272517639104878621927545360915074634126745776399862696102626326573774783318452620973276473943668612143021769152388004537773154756610783072903053871403058577279344248879488633151843054587801512402900923499902903302138306885676522429788949996473586979167902066964851904981072855448279228907852516312100679122582176801345827743083222395717894711418645729603272541530456107617433275143204822257330034388768463956121870283500738070060356276613086164115333228209845964382759740982930170397863912357837145093781313190210475661703516044698462264525143341071138974366109646173632429052619044381020059274319699338367955748229887136435154517601152441480421313897933837752913959179447025931388845944344351399615655662302059796187180095033748221317987901070570486726431202479708872827305744109758435490987920608763570892005847017673541089192028390385608711296571065125966343936865998171298755793568242346196878663513579370065893904235248175086316906966391625033349703486167654216617652559774128264926736568905503637012920722341208842523375704979287596586784371783805993659911659726170734931656275659670716860560413463218208941051415166372375895145566366552699355936854882723820665739214069160560193512666176679712062320732875637910942911583100106032827894527112036254974397873941248913062403716671640607568485726547008876654300090953005355716744486753381306444211154691176143444583629763120035966368727628536541245359105017510514206765160727902709663327533604567588632529746959426557963125618736944304230582018086685541154668029446699114098223354373027089487850815582032167713282155042572497477508806596930329330773411901658622736972159815492759680503904050380262042008866540901772802432703008161590631959342322052529714298500806420538862126705862198943109077996836315479635429344247115251912832101648712444123274942105846879156559967388525862642099994553959700712631824886408330698694732205461693298098834954787807587899546871504323392965416143629154501713165068098969199273652152502953955616480078402003599608722381769716100971333568637019144432034924678619283588297605207085058916576884761752577030695025358807039800062471449166949530991624017335064600136910385378872940430101154723193941432256917150344413357831523695656329367640681501980224554642961135192009066652605096040339786230227637808169432370688417801231758529151862866319250871860049509623269330351820361460007059264419603512102686123197117773849272888666361622077314808013712667379888142064633694625120632025877140242533294559204690523303928538008169738777544347949425998060690247583316479919104494524094431945286852715742942993961995284591026850215265575349885250218600576253265678502920208087940982202284761227205405421211847350895218174730501347783747453789347632584548296553256586280030165701990595271521850647000530348416440579378698558485272754670857737095525937918701892218340291891492915851170643473400806585477798490045931411333939070729885936743718787305558184688074965041715186217673274420633147282829730862468032034418433375487089383119213473383074132226304757014564968196915849878352069057664004066070431548260628176697729002476393309078779122857198884685758869950222788140048143942754911222713160400068823805209843230380515116680338540459852941347099419979083590838471944014322079090509300558911629255876710358040161640300096544775320567940871353996703828442120334530760521093022770602810475727471210259528246383825572741395741848336997198363264248817056594801903267887646894135041415433304391631797720786770424069382800636968407499303936939697724579119108045091986984184760610309691685912580665165262318054803662163424348119623720157192684072816475949886652234443483441032081584535026344675890018745594167923512539146134265726037960043121794891365707494153884345032743061107188912306164892488632089049639403945998757121428533748588608949123948081737792388380755317867507627484456021081261253841462581259818643697451842084799735289977440546845374902141066279361025699786944942329280166744353160891322829776015735207288278122745848402211797044812828469684462915198618413334524237688557891520532649090004879299828450694337386002941083490573641949728794979515099066708323102818032493754076788921638462887503076749366869564637203856496711068548030668960333618236589584261509602763756038610616775145861274716912284701040112227385874814708182901686632888933928640780028316811074391341418798773522055544188835604753086565608676053113971520247451611201530856898124732838486147470080020495347592120756244390269658702864203568419399683039746878311924229408295461980404918165811845392932721607521565695754957236906504712568581796059439697653004941564232236365039897982203997772367930431028579292346593186748933671528195704339966636097059963311302611987926671565543582627875250462515679881692563804483387136669726820521418553990195670301158993296511472492171789204629095654019421596309779879437788381984317698099206872273937846656600927396430318232846923186204447760646395905828370714775055578881880681898486549312060009701202210250205666225572557999240709208325587767214556331906080737645573619085583782339584403223095552071974506464732521622676603540010809126263387948656232166228576645779836762924029533181908728181377153995040332147536988083599965184615806334613153746244185811049372599851127855042502480853099752093620798618498227706961865482012199278294648491805732509277290923468278521851644200262065732719983100710676874953068837089104673003032770471029343193886721373403920398446353148228862496207027511568238462531129430399411280551512410992621722969835322039927145139508026832778555069003869330957365806026641473919910344218299741774217459367276894961097487300188898225109039402384583707301472611174058688623289951338414623961282609477213682549157000194929752990124050840160378900664932551356818941734621419176016588039826173198862454247047883824588812328728431098511824342531409156734481821417357924463985420604994501868193822389143236449289637570805265230610218050421943992437759263040253383894046071297558091386638064057492412400171220285160063622489107972764677203293223635144759481954496666791831217978377392318473405399331837558351924907954230633770499349914336151082983424474179228940466302841321374797952047285799967095904154312280894701791919384599530820696814233764105222929305084917185795211290473950540144396118149012268012617140775450685647678265036034635286011300360206562168213331642635806400194489746830601717563903936907935999639578599738859740848357863413325401013506493720237007605302831811706791510084160778016162632082401333252631993832205457824918563732852965648682371732821789560647959792476402767901388185454853396342139915124453036958488136793009260518886454899557763678289585039402140538841882510617963375895030522775588408221120841443281083502982602704596994747283177100842462695028163791661204269304610234595818463186861883129051368629321141754862994661673835354876963580611885419084053365803282198010281667639076595060775289262085354708314760211969044005964582320343864353789104280558945987955581035956287361624669558750190339295498213626968776985879017689490332476942017791611384483426795956679197100771714287862685486637225903590364167841726072637031581658864259273637359692864835106667179283415754884049620067485104519830925583488529666180466855443245905262444064370433713718469696683512103246679467130687947119224303633806486329081706114435022132762702680880397679584424760339410961722905673102733485833371765244358260796809154092476879936317113074859009564041369323990104724251903435636278595109784093010115665129969558426043980933107947824217975037578066719268431651562278837565036675125265765038729293368205163915748735772341946077418534628090495288805051228130315533579102004649249818394904575586566290791101539779574291694181907940936571176576096625256303530137247083101850121382115282069890820185309345663735971830675912697972147699050059778034130894385958873476463910971824990651490199787230804866041226860968075117637180350811576350993662533612127516406930180951385278291984729597938153378864555335547309590375015051095857904622760027918242638558353742927835562330029636326624351165938516472532615300443924384322721864283566761461342579708381855316866874893560320984676867528917310866618722006310435437795007119404096749053724465447634895800371025144772566638874982633245689884071815631830549252196975497878471300617476371830947234613600248542478101882735861937815635915175256639699504392557749539076467878906043537993774256855395961035616576081580479216773407508015113095314367576580048982819357256485291382528558150547485043703880232366358593538323467043352114278486565875193045920469215451277001581780008193469508460128172561584162528180685957995530725503546411315284443315593870703487113172925841995963199062789418576174997345913066517204317322781372734540401221021271223693848184754319721702517033631336081581168863412864184911673883997525734161177965467545981978448094821088054025190132509229334174810475581279655322213358615492751803556301740519372277906438909070697202901873942775886128491918840910208475558383669479252865376176302276882214100462611402297416640068442980622408137814773663523412979827435683528836242361323574433816747870883735160937908188886279847436874487893178448814551483998823725421854357841956191159733642057065179039718960449014466484714305413406541178110359057321937820521470235745509281205258266405851770811868726284736493342389737718208278254900502751702635545302702156363073082853318926369130790803281983337201126280614472944547047855205982862482569375997797337536951780244684315378987210383263104499807554309236915006249475584648832311236196018329603183950559384951329696474388559365033894337893868645400279280423350392019026766900715227608326128579146264003606492870818336213784446414224141494740338606932905395858617527736960217585087963838987703393459060205438591875694717575645687966931716245163476985312813333766384599855538883204233056982477573941398148424357127584979590224121633789181063417282664450845159168235961472925503903919500908501737733107046305194561229981165328126499947488145458144186614245472377529307812012606856560148658022232843545361656168530567756577074163479341901340704992780656329213760180577558787048424382976680849373760358796125520117553236154533826708742185683462235981492913991048844634549432464758568327229817206831985815875971366565815527938429600263285852347587568311919226048107792705998744721167235306151327188359969830800032619800622756783584970491093545544409108408045562398923930716515314439332720856517606572925276788383252598079333159726025093147954442944990445336493216099527609809565948211188310346292605534671146616316304480454011109526280815129039927429508531775216568432904626550512879824748975850999294598565457660029228469329142792881406540089048563603535768242752796104258842000799894979813383083307826249569802830652869173284427032025781535830226311212737422607830577162102974522705789344565656922295523211320198061083739115652468998347814583438372622642591572058261905485683386137252784261495235060981925364139394975730049346570493703157491020689930706569359733769042980364568313024762348457260603161125615345291278116492168497836146415692053161860932691983781302294230334820346777151661263722497239861290842870153195263699046783968129985311325888594786439649034969518068478986054501573060296618067827314802136271352618702657973972364392233628718581302150788812085383665584586258188092319220378835809424233979041636782058200120384566094901365099620321956595281871734563283577381171708438619475660714263909233929059655044742241245954749978556104000077207641453106090407007241041435321537983014636713052145123431109275849873833890610055119627515437153042497138685159419248354155418060565020328337640623773653314144924604469346260916460334587915230066316106787096261530171082321106299183628416914534635109379821048910818552186489053217748086164841096324238183928769299511177671475326972208842081191864476737082656555198452228242818461557632590031675625369669338108535126844745714888686117496015315882399445568517866454660685765711217789453248552924680139265162329662634116799510971342773052088734313238836656799545282943918425030311779278229187682951985299653688722430133552883085539515931456444820260876670820425407284487311201495183231735127799023118797807047150170595752667875341458363986405816281435991423991973298981166599701855120612370038790828436440600175963579743895432086053878615493613953170568771129538092467642230724153805586934594111025917867219624568851045314286060417035655737873740285083430156006091563973340458280307611561678128530592552922805635570249673552963326248476363780871379006545327865687947042426694319313187900460243226175351316953453445617527227446544837526492333941680642792168472002799800531406582594067662139665917531188207251879791120022597271272795182342727313892015590467969031517928933773539189467578360437465010672168377860747606941119936247302301715799213907577991269061575297103589789829245094325142292757794819954137472373906183086979972533973958372772087427694616608348474852765205157688497130771149194347559070455111397493146672427106836872232959417588091689163739775052929329425650324225839905494912659311895586107801091101725342914953252526330984924985022006488482407385882242428104040731635062629327946675167221316613446533401165048474062001075592390822448874164212501950067041089682880650124520025621054152234511750113134349730121952612231653776057988964561725159047542198430368630774434054557636375550233778953450870078122165089828546987895193342258684858435100023929261143815874488607355458230089677237815395081857560889654739027516985046598130857386923034768552371063934579114311130892289166421110770074432825972841202127923822338776882551135999227716009271759136581546612799606995414168448915068087379322302769183485672078508090945658591978832161661745240211274031585681375696054473168375890721152096868144807436319942866948689679649289496642750582101706210151558124699460439853861614849956265483571276500909269611636660131020060943285630608176672942647054963686555044085288126198979760960018032227043940204926908774293185803373703127472625475036497639846674841194326531266891407620605103084137298823312616180538379260111979373546389765212184434076819105714431938698383837697089666382742338923392982646919746995726682991539194536109571812251038174091112630730366627742287067599472557073423261545173998575963523153528190862116706902936752653241141367317533917040444238890910889513882641756289402249779083429300952374935014110544234202949737683996926872664062636809120671797172144197992066930078844063048483411680673678217217974296815011115198696163285255375295093057761583317410486649703977950993748121423151702618447713458314783891438911363130326206372873007102306839099915786819227665744990930173439536241048551825086656329050966050956287088991541965807876456368702889721073626243132972319884327838438947924685056773290378606721186296562595990820190539685258956259812307758797639626044445768379820439228379426932789670486216295728134356610829555137544393974079125806844069789082613745305724261784932836354534750958578632116216911121187128015184806379490106757594573947205490234313628076768025573449160225359125125546696949575999501925798710458209440200291281328892710367356659898844091448992601640293709108319237809720771466860604704761243140938489445578654747878241341725633826843134784360883807198466300242387511526195971065867708935370990421535257814093664214334756862709512769942359348367965898516567954571843293279000049991807553594133646535495384149765620243838737052994196515913867756941664018273660415209111073303887672523107406027149745210021045745924214307561700308775047092221507850868843281019097347970238741253355639929538282525693066146463902316223418470682511020470413002666010225956751336238866013200733811525027700136611339794902838660986878401183018357053128801680470581980464546498751054005210239155255788306766554535051936687370092793798921301993397415297430469889973144809178746807294402249146419579652386881941247953728050732483187001068261001925420732109797387534520738659892677657348201930085840788471572046550852057517666005087757653732565166757008861814797130432572245251396738307433325333814276300039665692196383222236178068181455121983589139752910513907293687764926105285375342269152867924295068080314956690998936240101078594399155584019849430242641020127828274076467168537136280151044887614255262170667262622383575429967073224125702302263353260625699666821121251668672803205416510473937875978782834100687016051464536073726685521458932744598067811619583935921331271680724746413704302999914115731247931261587909369222293005168891060904037504667470363357662878203474666657828487556339276150110077529667967749200593215995772321577450150727691321897384238561669716464534165932547962242278427099800014971450401882731820650806732177402798925269474567577122163287867182780343423597262299726593250008111994544782333358145483046071855480710528180974533385984521463883816710550294796106365012646772975245152309468774665137073148313656729658568085833897408182351370007218912837234113444937086183640262257866158877936892735569650145447648416589726446545376418625906594812636135688225881005046817435634226269965818223458982770995790871956980872519691059341738581255819800016941365302597151596547785365361483612721989577601290962531385654288253250296985048487015113681326416919905606801363816510674512655536389333472907947460988703550635690986181256201155431039156144520047655206971960001303067956011186659647817576670766435059350252217327473553402109445900103441186492319074476231344842140512307032677631354530004571713251737056221085136249260688640956157579259131002655874814443011927230150927088792484077141714444381237011381501249276686159909107229092507521479225424514155125318724820238797708223275602662495633798430970175289734729523425645257519612569918891703572459324484379625725215048943729429954688199186799065172462867278993322755233569599078362302133585375941176730200437918071130240222295310870428801433987224716730294730932737812186135235599348488864329593342271417572695649733506443969755189112034427699165188882456983648998603407508128308498597313271415743452622394413770498262963642145751263232606342722005501465534982252268846263124457865567360771058648817859498021556753662251563882332748546474525792426264485822938603729664969109852999688360876076903121495700496883677549390233234456000339973954067887388662727692792753922242481862543467904710791810334128778307182926881287726917150504927954579949310533472675459302449274402335632280280921218309805212306247244859424770901891866593993873022007339630582679819672797150768989801791243184627510532508428361906558069082510443274854398823480345835649230483413836409570774679472654109856811291958287735471292851323664575920860250017804709367896354132188521690752946852770986560780886701767557934677298804067839603250122989920782149629453113077345769905010926216086936325578307567849601907654672907941043768049224783030282238490625488609110105314133831147453313341950557440393017822622459428417027637108447243442136998463993177948654548663076059845590518112416578486212203719088954166057577130680172246863530784245215969176557684656738868797337596947076328335986734504526215910233993945025132493251360848995455041619529777458065366370205127494984039663958339154592249785974054634184839090748484198310438744008476301336551021857579466881880087531380767124881084176799151905477660949740333937226032646418755466005496470632344077774267385376906650966389454559412867625647849952239614649487672928539303600357370014272097095297004886964080113981207753754706587440628268355139678434090122589672847430274935001927432721530389032608650149375680541227047437837375372598405153710234309600614653115727971483630566721959525065008330970571743179377669146966651501869016288729438844387954755644086350721776148844886414974906053316860234646869913816620026818377783071653097872349484837272354637053714606628430349946514851948428566127833921617532266906831343233108824692099958757079227030718771085451141821909227044028323139284704840891789634306637618436519136271801715252376017670055570322989794207085508962147625430524408237946838076376838999750933856599433744018210580943006438564582313101124632386634085373948997861802682683291649616025311955578848124930491908539109613070414175813427979671889092222921752778712091779960204751800614081817153641512500439176541990220687493523658918404283627920489245201329414251965817993329959190700369988159165432017653631445109170305094598634727432118106237095123143418049242680643938511518986654560530298256322516021958704392820787214003754579071959145213196247859034880272386676941685961668930420335940170538795823656560648200336648837354343023893724991548538252663767082573095607269825554995592190595653642971215736693514773865536907822298208711532294764873089248725038881060073134916246258282905648398322349122218953841266585771185481470161495481347172884756361395407432058344844551663677757565682609528994007596001414020244358946169307141790262555984844851259702597194150338101132662413247831339241702022591092126041097295298958277987172616325987891570213986407758299872772924540998928042512411033695044859050966404114045767528212913627879953845861776593972696016725968237379490516068853638505445982617538658648141930784567916887344049166337592710784738662886342688382518624606864573193083518439518817832360903113778787997977901078091267712748833533040198975236815967285985609932413830496371609231142646247991413008052527917526200973029742266060052624762728853732943672248013899460341905277106789705425417942108457320961793231195069406147335884719047842695148789319886283636007430507113962878080220728453359898271163814824201439685296017438772330077730794192720644220999772668079735023327409743977662565164975204779026984404281363093569331864721537048652276924776876833233826966256189798004771960607665318062434465494912715345909043682658229505004571440081735221845085423169840064057724041420781741681242612364940891765582555012476279870692439657520628044623924913284898074655222206668458357946972488336630003278769178045276115236045667187798472902392959307825090858338410693861170765482360518371324897647700717118984393496520371269795678623341128841725775404955597521511323230440344887830548780748207319041976940895409695185080970161595538847568125094014865484768769498797961197262998750465181516566072818106348796950554000667518374614584294796158198268124170968530894850378367065212713683266094944216684804472260472555814634063803099993615502433346041432073569028594664842701728680097471373149323431656057368871150486890361396521155395403910854579298565582174948859483359042264736318787140183400619430552080988351376983917715016143301033309413044599530370614814689536877879678836947017839595657260729329098477019873818972437697229902862419803342412931579488254652235380361841308059650458893993740494016391017708206610425501746928170458281232490215734328845654842974278730307182596237296486505498508911479761828284180166334793356580341767723104782384694432056077008352436236716257151010802383850159304242747588865360927481932064145445313921260967450616204319233449936248074886759145991830940659877535706628015672012916754876749180686358001977239197960926114546862938365274457411925766891498407876480942169520309808790027019887906982543269809363981974134404973386755885803097248725991495498034247918497747507274430621549268249261693731286965753437697396994894827637073023654646727601025313224895614332806956111012056465512906693253380699697845175970647829514912536056632874534248047667053511465272199878676848072258351326905610022282148887001993046589879585643933534409208506038969775373854001999361546159537990224038579271794087604713677680358020890408796362379987917657077667961503462797455208708281585774230819593232285331132464874116251230566726726604914414967155270728437681523743633049193758531859468767176637694194823089006295607274071349249158778561661527299250569467499267890577321700015696555704953424131155786040452927353858136926667861296382676985728843926765958545230904343895412048606999117224020475503413411234247388617337629391895691015094900472371102273987359597413066920118302965050971001203194508584341804263640347493875253193608636803377334695088834398630381704831991155166644109012257130051928528538329720397807061278278569624332510672740318514027600737412292061600369900612182842822837965466682631237474980013600664170525797874027395615881258079017373385072587158417660215067080918661307032823515429611420687719598900134909934214244346918621799513176359833141418237153140690438465895829032464675526861671289953562757794441578186274504788247038774777999140331525568334382251067768737112367056186576948413080665502719602280068831022316052306007220238494001670401777809507179939479855525461037753366245194491483672655043396005949071276776850163613428995626591080246544542120718480738227789354666117595932012121434056440296403701230491877600498517623278633000124780014005906006747163220871629388454730987045604659993827478797978321618674608137738354154153401773596024094767112064358349160978480003942793776956728987791022619009243739003083316210733425559554354664930545037888351733131179906888883938266792775552392678249651157652368755990945972236346645230477827635890456988563844905451741828114640551287173112264348883360143208696002010654631097344514896233289883063340682439519474714228984417626558082440144528066066360846129263740681756087095416874882965624887935480023448039247429153612451758298461160973668272512233893173311346645191220852445864702581046464371451666029074394714153467040642332206575927620627794513164985128161750768378259107892281535391425366355719034411558967632538531070049063282115422766414494501678132935314788214875622667676503182749975412514364865631460927104022434995118134296104460077185029679420001544051593804082890457955464904946907996724662343539026957537931869353059023704785628055831401372772828394494513670041674810582901561777969352576937995530112561241757992606509038106024405902855296276323196065275509193469118089448353691135912923054427148410226531909848599088722974544744112841599924660898698890430053554496465065250584883217380310699772480267484405291997358478955327904274146649784668460082502041873100395192964977349000377331263939972002817168469135065810168155603801223786045982287051763528145388680940663197669698999994759824468236248565134569080004288159835691326811080836186412914476713405056196601076399326578708554643184726018309457844280788155141945701131563838026511296397958610362283899413790956499385827071657694896151859590764470568434112079968127962818209287287933455929367920427502401292121190726056410995469735783960661504041567140674848955806427019970716456793652583315061031375636029962798988841004532010819739866446545316413110128335972336123494606530092969983795998004166799316158907139599094438238828298258382131055673167910898020361951994861732058168623655846136321944870311071441331605443274797370138580289012090146682183511348439010587253116573896308029748689252764862707484306768968521225220707506537704061512267995161326314140438284135685277342085634300647437732614061707427395119209175685893128556730989947345749564301440981811210467451714388280712365024109645910831210005838769912079852205296955987642643444864387286506088595411515957113708088713512189178135226017608271317665557646212620228499724462353821539429902663157625180205106668878739856690324346519585162030119804244830210164448147009465481599251890417718432613274672526119128283032279324183910261274534263041381140761616347770499208979499732091823083138620146216567205147933552312779310292227451992895738070779978905738574712180097455232935278577982173503181105209966447377187684023418899655880246234248425140114339999133861698606615162485301727548471704261137755027938694870272042865239280434522856159597106911422591048823618751098887426223816314284458282240882202393853399040884318134435929848871274965522835431421614978489427412681229414759666658597453717622450916678632976712296020579941100304878640568411803709024327593576516617234133079580663375518413326558376046641192498628064559204159184767670609738288083836133592278239515353354658630495000928882365557232907316880515232552214921766879287836981721956554152698700926879542393397367653336082250284613383371197451008587486607927402913357395253052894755686818475534030090762288864617792063579071764259666280131853719512999701656396065770006188592668609165272396397008372195754380867697160881441675212063266255611628079480501880953031663382175589809606316516143005053369309144789280708387101862899105943734413518805307902606352619189172385039193776188285041874594619466476673009428451543292041435868526777830686978640867298944062130495319966365980759197115697873457339628914466102487614430712631126442371914747260134733870488709314068111977971391153871985062821566701462840687343919573057072666389230072715681854218318583396877756891278080788789269137666294436484019207255258730136590485478994071650122757857674563197260783866150474101280903042590952613227143704317150567683240547701376484345288666260645271361125664234480813236260168656260188731961314678973762350634370201212464105892861379974166282013571643047100277019493988959553003801304753447279799171019138342278730943748411269142980627470896403511980543886830169082137630883752152370090129184481058687967124171862749380169439592677587594416860493444302587921862047279775735998320037113430051765403675913179281706335103322481072490161722309873809305973109047131938156936661298134777584502633029405311112208459696496952422860288410040727155126369266383438679148229162515170396557242310078377781022715124059898795064405550935526939299535624815553805009227435952451325184616451731946119176050507240811917777160642687508096020834132694231391007918148454892178460487952911538855193387110475776058899856808339311636584288482484150190793279453626954493368793018531224803802134868285121652424078436830683396243388615927345001105436086520563309691597701871672936585292413677427117463312021031767430052984301946909147157754128656327088774439517159262624560665481577484795650204575235468098052094527006825260436046512209653348074760174050732834487476282762251996459515008765712252038426998522642697905524085836881235579739788295882797754568534843505152224725353394664071209488979349073326830923296241821089868263940211131717063553369110952844571313762250094375925717625109966024228450918195652569785561203420794562940546699515316677135613140333305291431491111504657490104452402910458043088832597915658571788081489060161753879133759791950291384285659700060512364402543980706165798048316581427115243896645424693317749679334747193664481466952368308116220368859547144548662922759716256280781891076014274901978921233357171019684001361979036641681656266821279038809880080113318908254009183981562279563534653268388493941065187305443317030071941035671887152457225000684139838012752993611072985120398463140586688477595719813780339823368351086745773990894159400593297636203192282361806175642480855985899412337306576341701222575438845252752226955235352410447229425686695099915583341738052205998572976730948699340728682503732624481573280973504229942723148366192531749512255704633770886475599916152786021082349862958601560285854650847023536958967316966787682920352177733594600416558234721757945402810898415449324654268546442334652686599261221029965215809270339940475701729245020029138763712013513505480485061890634900723321542773986241111414092153244544096237706259447511769280179321613084925221929521103021525865649647619721461604152996762785199921927917089747292043806920165907085611622882699494418969376797684161436424021530097732832693454128939761157218092765067332543016565722325619621813839983379112172292107095489232851222951995463003353957840239925813272794131501162972894753694926058077760505282707596201136388580216362513049447515558688092446910059587481880578019488247575121318776979060188454802765688789982165073719201848601404915093709369800581216654686479930326244475157488230437091931773897175874622257582101899814825705912135773117545816191670767959142735429945536587154498006837914963600157472655156719576327135864216105308998579266570655599246309264345975011997842710530284549567647790015018146857704629520821924694996379293459645766209012415106377687992802303466533685791912020099471458007436219805533095561448071273806799633619331475878315990109408597736911198666690595420571346790262180937922954224297676230049193280005133058869615897081501439156385307048745993459219010294452902103070246415399086282418946373193969096531320464239037370170018002097793201433527862426890255102401330998322863626446809898073141233182242416102667156509982932489182603228746817958331085947485657548646704048792278150935479100164099505585031580488871265551263682153733796469674373780442864116031505034765395004750685082867122564412345118638341760312155220624772858446261355797318634227203035954533354997386152597122699153985950989782699590007154067364813443135204951576945557536074788987625859316551215432196525345048378200086866826121533039540000158092769590930796084492451067241363027806460397779518764299636425631997784789970243312321476412989820174874752956830904253268580026990922995958701884976343399519758013968515943876082883011746140716662341299757282377352781774607271280084019769754990190088967585579536982943808263117708240613215346593107395987509705123280306370129143057429309853969608877101149846465960811415254162441407697420025178143325948318883700065508582856291161375430977870496271172132503081992675818378629377910528356535928237824833394005983566799429761338644279034728949060370323141833660193015668987114433419796749766438374155765513587214386843406314165038387783561821857955249747082189194218381359666326874709533323836259825342360661347988146157498692157643905271004504034024475688886454182796322715232478804601027343857885403034412803356960667279066524234085979445421187743301285966956948793913242230569031647752988560615815872820317064662363039917469082943696974634435536444210705877366481512726458432670471274108829367415792003511442592613268494592747588410897437071885415316774734570109008039713087326322237156940136862548961643866821217990806453624111623590025455352754537938689006850257924362508461343863438001332837567589594987003583249092313295267166988069974031366455826048938897601893991129740782749456935180102765049581272971431163155827308984992478495797861008158396630931102006650162880218374961508664800996170559622029302686684692973474052215181519929349527414774320326811049826604633378570617344012463211747975394123503459707209202353440993948707447830899799934749381832712288246283252512567630397586797551854065675007273891815536769562965812841106615774355494618649661894550784224525158595802683488974358154344012593727919168631528644752681333212925690026365734135801273127442434156945519757226466214878544802401151947673768231032911696508968982961947736257852115816087642819915118327234487800954130292571011557193403598225502900196614478448737853717665170362628432628112096992535776981506982241011212484797315346891686173951950741650545491435619297752103622719664171031136984637938727960538569172555484362984096113541358865856640930046876091731697408582572913166569177930520752961465025631467819244805395095592454124245562013829533863465723607463783574884590022129709490904112989059615228128185340075357844775213109498608678530402147692275389144832413940242229160788148982716411164744729510124508529244324522630514575160572037061448261206626805327935890016667936837705353187392611721720952755166405241250932074764808906986750607096499764098618022224636092969187035701413937936421326068113881959928026138178664912151996577499391682847245109410807395257490386026123844258573920722490784479719897178824911224817078616927093665605515445298823972686081812559623793013468886207218636038367580154228749285033938417505287100354828244389938146451698046935901819858139942558659475122857537462341553239312612449054365443807120161752312434160698551045913378881966897146593761718036346727019874226179777196502788809951569620609040467975293973894812294618011498222394964995833776664361498718469043834806687892257700576341433035340470801223574014539327229557575209904188331073260946960913938314265010247914227006159509867390053388170416442903837676832349824544456274641103689668438629789626492994617031493279329080046569475293573505217985370195920863548355099522060143656226573468183750438635582278132250414347387964337008415816792997327374734924133737553299096569459906426565727606270164706885213630203513838339969540851111700312594787842696971127734158106996586872279030623247846214988268208260610618721416999411707376694869893598907957115685991581441070938325855984153091704558505128362260353985102117833338045000757689783738164519830977397056929012256875628679672525667719474768030031731861340836082729956565762959603034574906251449203156043994744979019083621200997555376322905425841651783003300605707029624743119064790226698801450599213893427277153328233644179942891876426658785280706286752248565587268182942143335047000219551173962598352425902814116555242427826435054700682880333533855062385678890467975924106219863976869765000420896187090703801476385238168983748553094590963523194267890119181226557886799475940503154106338937185714935128774780573212354369567630128849947147636007225674679838527933513963153929096988152880757657225617694991465005748140483930603215639505587689866262666412537734844290567673312665494446442223098648317544262722102590256949256766467005698357259650831485302024430921666480542394155198675838216476478892921638758007086635520130056344436932205588221765810641380901672422835820798751188242339303875999259275140453146364390023956718973678588573143171856329711149209417166206230080733419918524872164515071198616997082242733060437565204483861328157073255421906621976696468463552124338352508754227336464165850404508161272301477916298475712978651747672829375616113695233835126423479133904376041393390002005580211310292525460133424306924651873269244609400733689322702551667069104836356532991202231826621254858816393675247797129210745008539489727026714510249405739468884350072153736888275896011710386149008095532995282231247277841518533101646126870517346684360052024547726509832662609062424195630709258566596525355372723051095865442113767009384632063394620458420285611723523634848454712115441391047105869600824115678750057452115257209060978107311129830032612046245894697638000444579566111905939059477347670032205074236562123396127234262947759434441125446496529778255788912056477974853164430335914088235919729568622139015941171614953987426034096664365360595880908852997767114181655732525909538965613050773299210188416344148296652663200668218258981174388758189400002849241211666174844896285882335548253428621849015959115423495371391451549182448719511730465595185862026002036832901501199081340813794336599222870648804435987222161927832352443346413204063875900769876408986809973951930429984447418871621209534896248288012382004976844385668123582422409508322287067626593941686054124499891038989822772313786974878035675221314073630537002394049782458387146047442095844147855016900746823654978761119321192686925956841561599682008018963096207256512901681068599122224777205730471055033002845229442541460260586892639051593040685695500240509554925813134176980067715680121023292031778066078715134651182543265870943424275862791512443014233643859367670154019868179528258219943812108785478765646955804634741048622273660406859913677154187323130860160999314212614741164247662570168960866353310000873447820504610859943621325812204280560529486023777403579592960361964031493474284857098803866173322523028472759184993514239575100197061972813471797570734136762457203246783332201348006453486817693162921250297154528446664730762503720060716980632258270356603076618520836743415069984111989029989984963347562833166544875844172006444321879889937756527355941607911268060855847434423675969732410668574440505977100287541340193092627614101238697186250166787282821786127046837820934930133255293639680514162569239768915160329833229585938421811079686472472750518182719155582666061515731456461943219507130432999361746178354445863628201628079014574495917480138773154349557555737324211298968382517066221200022697374102723313589913625263809802086268280585753912464371946696269487387570014040911755226386659700206388756383952335231290660742315304770096196783292756940981438552013697416266179230183007750580391271916275425319265665845829926496971554912303204334562809582880405344064032513882203849695917388023881186496779440357046329440645176156596606066146993874630779891879159219782161166552561031493419435349913887288926414150966898043233288016985976666439341007364862347523508028559260141739456427883511981911876092674986299924601782837684628992813185828548333362516701010902900962004138721794497858759196867969299425461699951654961718129866329830493867352391613453354288574066544487937465872292494330283291248117121983505555049297125762806509217859392345761298141201295648676979682268974980491576392910054015276645601699227667657827842921506611013956471767880148496650852704326733568250338556781056884839952337904522675528468472730523266846884913173957620107238572014101016283474713621778932829172676843762526356666292142376481826505295956480984793384984904040446185807066780097946803226510778015780339067081545599385694208639137851823751177878624063557987702832807974662915710860571222239783988792419093642344003031437123208002187729039880979798619686089798711816826194142533244431344768997791563287539499126364672973307449599085287390563431970393690408992001492877578214132449644565715125494736736941493898869262419692166691535212088504706392105253730310893845873225021078543964484257082323384605829052797991810925886003020464765292656214381423623075972557430704507311086240565654395472645962668385966915237827339644440469028131055229479043146340995276141221616638204932977737907046504551553870583346972262780709026499637543439797325204868480691415977303563949505360224765725401449142636850364002351053152949633364816225323016472090113127768525925581893271154283147976284402674940047267684669061943266719501842195644604069163276235540484451500110448494825715170357964440862162523080787316021540861313330362857053634133815316405043937770955429420907575009904188160939648456730283863373179985556016993721030626337971713204254218049702947426674249861344836637465436429196609710999080685451340543440483734650137421096479032017354164831271186361883428421010928055087986252188008549418340200780014286263007607836252081399639954320896878891692773151809068547739567562356179023377058101080206474210536017588330827030962163010439532487726162046307207455767649165247968047391644923192778740642188729078552568880882076251364595996607345369828430559944646437716046932380286352330913464125125095284613137956934829678526418237428751167160935858352627860116172629449660114344248251304028591228131985857295299196460493467911434190774758047328473015274765331631863712194355482541313371485989316882102828659507221937611279130277465354426444441640548430285616766003976584955495352334396013646046663728382397388627376033462626932435021924488446963008714783542980807971573097749077586096052875238250780306806000051943946429512997433390274521690715778464907166023662994256834779203187321946484119570714318896094917722884837928458818710918708615430016382641179021648356795208362643180773820466307845775553944389853178223661693964282593405147197787969191048041301996908278330364971158086294846490766485354601142641824053046699588791899793010736347314689690256027699893059172883701968616013050899481972622986281222364555645370954680451438039844793922516946091716725228305606064133108873466402319581123770636606838133883846303830712234169278051574508462268848317246679746743664999043618143595168683526798743647016911491200068507072447452052858670437497373511414139551139993697427389611557920379534667775220082606757414651536276660412948860843275188501222081944953529090379756583728682387809674122685551424794525508513180628889179295030021887257500965490388267162593833314587949370940108917484795202550436015077545537086511156346333309762912474424322300319450723700134799290452873655149234838035422542847776439662274257057143464474792635302094385777392378215407505985401947907328421595885724973417274417556649708475140510224760658189244139575321746064489746560529881379080656062907369127905704341765195141624166473328372666808180769393006664924915411733891882585964514840216018102224883447404916847118760267301700877375671098796654375430992174385424344925185820033015691232713331748515698996102681188595199206887254440355139926166388112548387215527105270040693533299678518067512479611503332605619312191421185347390502937713517148321399217559006757457014427744819267635679915871693520726254713658129323418423687756848766618987389526501047242977096264517441205824629759932861917465090497217620289146718569164320877659181792513777045415430511330685437091514459170011848188946345223863164297917468199618046854795427006525444791832995170242912166174126108984825962541147561778152332087165521871839538257945406776031146131343520764538038429588847487927477340158935852223920596457251830596461597052882126425842966288617779075864289325401816118402877099672472870198479088563859006045781909094358841332727374503270227304984939468879175759835913329659136644288347363145081035428590143620169371260098948106248461412919024006470199037932407960389025087947060026124001895867289387117870194270401078091726146369220406548637046673936633292084650675322563786212218156094080050268508240183776957014991736040035316770266498946129762613852463748433527569628137660721726654937457991977237170770913175289455723965244376689412748947920960772692484540984275670763571348973672115846230534967011797347595637189064139853729779352299946041924416348087175866052475697997170129072135215258203235646032433091492952039047844062833118217192033047436162633929939052794937613078170460890306847570576761737517863576829060752374137226543335117098576556797839614273140359784102606969435129097212609252461790842944499562594981162586265600956126717529740191256109509498160564127130830098891333182170898994399729284865725729185912138310621696458119990732522810941453158390926480610965724670702933177209963636988481744048327021603047053995388589646341306125400969454794707727559381080404935699171719065234684312475845400875792692251343254836457668997656098076031107292171804011272295446583729911199180779273980387773861957518937577053114851636743297524825650423779271986349254215714709317602714669650595430930454745901703036048931424526650702813656340120745082045112624250097362273215558255308050124786296912127721567603652995912560746630742882115061735835221454525833736239195368316928317611058958248745432089179179312133342559361892770483553401236705334206949334130257370533904811354247307896754484616729216128470897518741564905978776692979111695760368814153823564069003399794912774580638189932219198912551851151939433247646494819714846580811302423299656792280857340940373444530087709294871360481690139848012361259609991768527915480641728312703790860054462786953603769149134954107630489467776889952703578356019864441220623110444817502682155775867125256271348935411277598800537021071434986799582879040918224546510106177608674769419687084466834845028877617169218512796554167582729354474325472415285583980308907750111144383883828362909130094449490192885762370629819853033169741729401245028025063140667611926594787663540754841437797548367556250982867905328460819769706506942792126273315047908641924132509376178996855953573152506240731182735358195390960076118899610335855600439925156715596829719427792605596635007413269891386310136572694352513474578410217553878752282187673592591806343642297263965680532161835421602963435826062085270972181396991828598828794768258897846404290426037993353770253314473063521965436626348132132914981956625222818085755957911566945842725784221558133763692313047147731570726172816492668762785142399522081800804140456430085546515016674461506074568906655025588766755827015948736492094431092770680504991727589931385565425308840275008977499060824715349770923352826639613536750062380650443681464652756849943390429523623770948854023260197010663304349537495592280428154228030261346413610704332690404323065403277197249919914151495433026383273660173055725472046635161169464045357619265794151714498731405307661103283104660618360084703076828074516977508900884479382632097748431304963890742893608910023090260198929464445794009459020193079945470498890774663741630313106250171675479672790077198056174321658958944739251265955529735448558588293611308120230093322601175829415121502853100761368524530249136148009941358294163013244642915417503573109212135341450581452372414480292114504824132454787969758921812882657189999147794665899295450527075119728449866428186307708763450814592872920358686499701213738051469348679167321738499528633522349702148612356859222149806786725941762688180044456029118100611570655929071835437009141471592503142579479365060971997828423968439121974095408979892586267292778863163571198156333317529062885048219881942279525603594606883832704761001122873994283447448899738075361200919909653244804712860565844934296343356751619858459952431433097788273385081085874894229983355229522808285356765463106988430596728638658746274563636598637417822270600348537701781414076164034967693099651549978161286508142646296244881910267918937189785704506863691104837493371105092866526813722540920485705469241250258841947022288841168180937876070044906802572234473155106592197813027420182519269406686536302178817741984957095601350656358049729798235281553311104433898510073630861071385806212587705266516369390306292055079951604595823375547179628720640693102150520102768811667244272400832570143631380828157786322073859084957307946339428986100190513054509414533995752251337757436367444239306534007720139721503393152815975491785315085946188345342194303559341544982295937251709979717016163875030518742896171970895375151710851159183155892592876676292963883717440390242684329342296768306655543284986768978190124303290123085108476941105642096572968448597871922867385167426457536880158851954459720435772239106782916018473368238770789199250246069825636768103567938115654517186891009089240191890998824947153557917583074401970495754157278123272750559650170998273052547257793267735934563898197187892911873299582454299892691771211838447092161385950592857795930968078651202570070521534579921742118105965907463252927060252159003250268322995364825429524621744379133470890566381907055876222892625538951173025923736125945525299282483589700037071012025569702951521972111227691726263642043307974781993024622468390802344459999384137299736907396294659064027494296178928994400141043394135862114264032306884053509583133790716830384240219650522114829444470115435924979075263949306448343152824475871483539229539167019027577428595666424004980692109777934757231596532805550835966707228392925692193780544880049210435189257018393840394581072499817526155587634713758253253681293421180878218550983737004833225283167203722851894339126553289167039232326402671325458582957569692649458231933595365497332938187231236901891875658904450846587156548618164213040876726001413803849550479417151347383765170028472193977636377015006316274497911043236975180502938552121275532331530145936430000213053453213294228892706036671763701336550740253201966943134729057286392372136362830438758740975863700020073100618997502133333501531748624308422608073339067294974788574001697008190912479654500614928545590078763628656807637025855958392474599746079695304539443087760971122918610727795493667331153677097133041892074641159203801731180349460348893700774814830838358815607793784064828490651980370542781501707675928119489325896904594916587222681692527009401095443745404541505694180983128995656672897255296057848663069845798675460200364919279525663247610042085574080482367651639093340436259622302621586093885654085039235432540655993604295384400276473859471841996609465463338945123878587867445231407951501446783064933075392783018429457394165016587681438291743779309684562027023988261418717444597972678760997463462689120169078239850165636969437361427904620236608174692671246408432650430028927839899979397645013596060132671192341195861848442586975912283798696650433153379832845493289025347138370588218793683611061758350025728232828402438988925826914322872034568294703806569418221935117168320283790909291063825815725367034136495457954141601764795005011837219584676024454522659924089714588192424846401993190919427231801085212215567528931685010125266400284215786751775857631092469444981215295799655289174369665625005524108835551868113556671281441655943416320173156967812580497971644779384534475717817760301463452448180401130467214467653761546715680525618179184455165851142542230156036740885973042869822983128660734502310506692734510595730537833940499262344359616525303059928361277033999995834844268543544701999222101758147577779818059171290678900519252600084351047925464317070481721104299847841779668544834155909855746167100380876083710451822634343259155946887348199550484945612127274439580582665205301793449432146902003494183425747681923160858457834743039530238468540519412626705078210017372005519380331288698044010527852713921085967007932166723291327779623487244741713812676227666725927704817657737083797177564049375541548588590577591621743299483147566416107938512722648626876865603833733942257555942483812105552170854037134336407273223037179012979279337631321605402140545350870972317783320626125670427473495095069022237507482259360211212404244405593785748293800832502759734603002265465174105381883884623816446868041165346189470891315093616831727647649618391343345811245088542541160970514718883994770412043224350222542751530683678906033459034262639010013816049742502849071651040919154531890865516548331686142920122782442400293931853495075518571092620953640066379254832658793381857609039846362153475419710937705835069232874518943404075586092073551742563223700791092660419093181386991634852264252579099557539635770880320732361702065783698596852489983393049988501904791679148878881733656140932976683787815674290884972784793285985078383732172320987038481604874310246678675073674190268854623866620716567158171039259659033868734767831461333855711126421282105142379329184416683292206420607564141417645890859765586946410736619444840920597026086829622755533600684894534621182303104115432787836582293437870895092651805979954861049495313673401482596127365962839731920456384237962617381434415447467299269915319313293875923570414278090340830149666382923691200359943226984334111476638172248400632670544061396108511222588392321152158972517421014464856921733733018790338172032621000792308545006479975616259135713866111675175386506467478423321743652947714369480541937940972967028028861907305362044928716893787588765700052111728807341593097391506695119270987779498502269298616027525646064056198123642927986655566385007175802573389666678468737728224039165663106121481149067267064115424909212686679872727861665499892209788083741583073056774898679430389996162399938138662916281761718022212763323906338688507151138961262802275849489598721685051853468931111028075256825494838643446140413215305577850477727804963269339929976952047163617219064066106696255643227925297313503740025596618505145059634939112826632964789826585488591235369788030058936177802599148945130797108903474898080899194997245241372494159490851291144265753294301430864728693455232447294115319356054458627047600032524523373129104918227020353302968159827545335636701567327529603631777350121278397468519808433327147201774768509209750229843739049774890221072666194301797967044281988107066785393080929565591985537935401678423933664461142316685596668328211311894582134667342965921828256337351905701460423217239309229307277221910876222093535109814947426134578076238653837471478215994843226205302706465927911824013648390653200897972135564655099103213557325560687914036007372934066464225228881687859866246169625902258784926702771163921851851631612201154809322798196797028975185821297919437121843509838706241047961749410443914363611788728985125846041336200983230283969628056123644882968166367384336164989821119954572299722314796693465627207037174213675062311280723237210789258909005044452902528496462736227528802562982167346438871837338782020666562513351173660090819166272770511774287468765491136225581215896441439622429154881337665023761447678651182712927893924564529555326582603663183119204004102399285966217365147459404085102611554136400903345325639875804177643000821472048109192054065288478079243039739451639620664108384162692029434544222635174447917400777861109504705091963699011954338801942386080362862949122050542957128793961719811002884372823313808080715262378378089892416720350216047254258772010898761956077380335914125354666415969765795519100267001787077484379337783331087304193641361350324417072177553862841189573276500255501421960523875526133830529566556767075842363016675215692795803546322418988237599072808015886423557219935701531458451680360746182354169388053051193257924991579947446835800533710246849626944633223656693631865903349566908177788135898602538020101903222028054910286189698037446212350643966310434417301046954456524740573875818280887031023594484215438557907918638537857989991589701010643246999874510437934670340327067769795121956871644534615262250339613851231668679368940871807770995579330529820161900065748125550651460415130886341749127408579079969121942077692405597515217612967758398537079848049859660831893139299570105652959431772614927518575420303820333869630565998583589745865814318040238389999071247087981060939563142339432235937701168901892917622891448035948525744978185814278770591369608831629847084546877578345525209583200619335849025302331790769542722798584728865015491984008839067298301699764539070985617299884469905981388289541135652442358198436412506436157453036964277201218270608988954534366238914483690672036449040702935246718916093813497740814406374318157751498485975611583925174946047572325366418516949038619074029659274037500442173128338999691205183366582247027270897529306255029441004896507187898948536937813566927667793131311752820851041185511605408117884958896869183713235666678762794056287189309127679274381019302634151830338802070605371614229902662199861556680487236916157257257202019466334356010459166167621274534587480949948136279612980088861558125019396471603953450744645793444121272152050474265022547975299109400500123340389232404231582353100560085168890553395021729338193073265885592515158842270929320284477345890756219027195095644445358388902662455204530219264069774866896399079583223170047842896911790363736470849531239190388175329326467565952272888569590245331124707946776664837136109567804982027507689605480127345128426878149103046914359671739599397925997376626015548162535725821664100328766867471275435035605923369749905123245303273596227401785282311530118246490933656308945913571705758132813246426499685897816041138642672865793866114936646022407808351740787160165389553354227269996887765288849437759997969278227019495480490600366805314389283822590412715135404745199582118182899607198469063308440182412520935006699328608660423296630148284857651703542393631321650377064929975221890233333999846754655368694549722841826563830929924362808243557328336540856853441401967008081035807585662814385619901526206668648098879712230003852398652143750345996989033943469099280990384147514289541262861054740347652634380587678203512796527064264014680314133916806878314619251885557068028263123592488656471919349463791329872013648259746598303524825048180302768721456151913962203171200471950998063867938472112714601498934763417432091251789943260989336063392738452625454374712729402531419817415659870476216175343129524860114616356293303677978315691576797280623799089242454804164859141056828665341752104097181787112294003474499858739297319214541342211525799295872878423734206176673616521180504843883119088481365400857429564411899106164946073610590309881117321287904236699115401833445030874523451668640173036509743499215169007180331536414446432283803314780720752504866489220223626789138664084467902120397913756743588790749081384011267106150213167078169610531883113919286497955158526163236190444453634776267296973245014177982436211686769270209475840509117016096089790430414020467477548284445494961709759814892348397391656997059494811839951954028013468608800472914691357733832146465412131066501575404765930232173329787010721452858140137169097872006749171575780791812266169627626038947804749081936383862321319967768670715482982972278369272366836558913207905693013678986685160940520725448231137210822355532116485231655447064235596623948649846126471908736815154855148460652062405870116970507686695025135016851749138077110695707213944353388043073408895731708783575681445399823214019288473162273926320954783524067502723417618063018284883399027779076106181587608105612686755981214958916261597565295793342640831578332138831482337741515849045681212824127805232267721659843921046176290852781364325494695021815914960892139399501175371950770921854949158093606906639146981080796023980191674170530936464022677283417689713055916504143792369971421068063712115069804603051265594463152576079671880205761536672537544061254259497129526303470866833215978364451829331718603725467523828456726352610487046525798941534184428186149214270924939569125558213218060459763681442451895761910707042607077526549834179487071213207198139982563297987750488669110199790985666395938381114355438445097780167461363405595495238760945556943032698659804848063210816661753382148939293944741966268867096381672349989524380883252854758437102522390614853526275263927277314517171332783253179439999659113073597773067338570514827090275449771184462407834272548237291009272131565935014546660883255686448233400544300997852400120544900689587441330014501953476120629616595422695786759584066839827352478583900268337324732771198212838801482669345279890890414052785060749529538244907309867696980814775183995058669606934439385686269791553511126629113443472565982666026124509126793975234252615169312326044398451710339808102777203375029331958460712195526798823546427879307646336534692109042249616592239640115718743584337560954804703684098986552115838266911742783510477644132633027617098751474856771386447098690334546169551263472817452194397859988499562741003178731716491285320291739709251730241806150768635495989040201094947144509141462701622152076616979901710330463719865150005929920681713227232920438877214859343304054877568276115127754328132280179516394459313282781959361220163633985962825600160280895775666440316317941190462301421526649069027980158236544994951111196380657102205994000861485350880669546252372085363091255312815481677598891560210283370298746110398610040643861465451415234801158033042296191822928430894727294810072983423163939341376882210021591079185606909334380532569147238278143403630171402567642862547175454095381625075875582718722486529142525060762686327996985330405683685140044952795640801866115035625413681981316604482433045645953441283232759947850352590271901795190673818177562487486191632226872210877883852997098412283815723783305742882482437475214674494093017040565395896026476542394197848157825800228753318499938829740745121387190002267544854123685403300063492746392628411432931524171063349890568996417793190226918336165464905791566679037422916286982966798136735851679760095476227596192742578657593570623867870771793972894673370262898319620209629405621554650331588036604381839405049996230245616136074446931539859479887695750113321204904281266895996091031914612340338076292030195971800422455607456133528679914836410546089986840898193917510392965984432625813376284409316071796881180859348116863998191688304889230683004928859601756344765448640410975017972395249392233707829771362486200098139602266394196475401620391302374188865844410451764469029082305916231002396786137488796580112854857817393152568717368764726236300486891133833798450308054317437616282584571013807989204419336462091356879513877532735026813091120024911035746516923469272053659624709514578180107293517338879874549401906113470853250578823841789640822074214865933325636460819570604538244165573912390481851529919442987937074547317083740504188090550610860398993448961305704582261356449088726415690257348029378896782852928314494903007878724839885853285972633150780598334880139014068855448595823742058958387325274458735861313506539858789495516225318873905905697065229829393896431787422494191179415050750369666755560435469921115535248655417058858294071820941767445128813393286881044120297637997442397925645920387720285467111624235630081371275955003407392689066416723555683855272162257123047276992706884842127199766567445390449264387073325803142651688257496023643249906626443562897371494719671194027038325210664307903661853579745877960425805457879670388933840649480270181368507697761888095555934171887644197677854115367369447987567353394902981070118158685951449071760964976362826267670851906346970585688514633425057189751854153908911519356569057092359160316686079212313468585771857296829446855787054550203567512629926719245267927300340207279781419508044899561581151595543092309827475983217707562862183062908634667682741672643216837782573029455311608539157024920978438488059903538408264678289612548644419217403779706176047394069782924692607164860976395347620543248236858330770209242840953273517113630727968274145845374173893137356635343456099601349212513145955400765045339610955150648458159259090958318342132154537840083378354298357746803469720950091636392113674147097504636828960086345317217299616212886512518303994315162663673955740585402305538288140008807708078278145984649183129823033278294321107831951621041548277895517031647843948209349447479092564160269195128746223475332539538450139783065627839766727077104070660614599643134953604778450880557482722270447025666164199064849784830459194902560656789999250348637786438334340776614006152973297128430381449917797019207055974426944959478333891516309396463958008184698044184510531378973687312771772174141905362710897403530692580020448739400810809530957456644182849936135921726029230760080056762998955632142130780829294766942917062790050698917813041016194825836957665871142724297420491896017483823942537037285591481018135794766453297490120721884772026689051874202361762374958295930383053775419037851253189451214618650756212664742787701841474356362812224790220592993368021366386742137002016582262556976840363278606807436233117177660852528327350087090821850308644193930982893647468191191639428643073455819420633678377367300161965157605152110406340615259358651963316378141910404490575518796526760077035850012647960293052504647936011379490533684451027217187771583638339881588775342078449536461847452149932114368316348335453520046597359392389143018446926965687848134527329366361374524522583081436464379715512086902182343726604544633253934205380042007879710501264068261576905721472073647728565628158872062827661981194870160523185490464713348407775661793902344277896953081839205867764552484699406943591300700368359399131590942597083125242022398040125049445360313790158380381606641600293272848143458740707318270900969677724357181003236703125390642952103770672870712509794324316660698411440797621963585588846954049051944237280757913079346262435996121712090655499096345967656116512216516673348769354585147318491390426697994918496687042953185180159583800848851527509190782660498643752450920906440736182039355527781325749502560374555547795691338151648029040698484983522724669634592890893896887719220118412391595293806446626298448325854926334330823517885705537143948538971172385150758545201605060874896221833290682693946369389054448108483573493675819360630328102472538784394927764439677540871302139070926632833172224277952357989020532037558706608554009866495373769544882251535186827962255650851992726834200051558499763298569326619751834160099991776369691456552679561098360438712739083484822275396959453355256056061763096646163880780455441080200512777801680452143925849887615144118014792386241673853383998026560802297516684553802460855748232382651895912008133570657917345412876731916824840635898947258827003668688642089676324506027277935539727489482746366131819642613585005753610174059888452203418047952186371700827510730675743080005590271789822677979965291053192177808289116625674719673153625880495807756268975214141261860196184592654066911835930360048300033742688912063822999519910158900487028097773102529620046294244411184600055602814745428731964005494520881385769935273109297709091727452968433468967102251042817067177401656467914468836889239046752655101604183854440953905833373217002092657237709240053413316118385275659144209218181983608983087652263589968640829244498330848082491763522691200983727693834279221747189225941924156635410671442064237573659917856242494712805918303056050494291577969558600360983296170406381826471532141565774383445625571185579671587297432900992591101762005135368449354479287419607789531112398183546061834763183335628302873814123405323450768929855125783590067320165933521909681523556831110877263477107893845437998801737001249116549591165974778082395977919078343097412925491072502711139516906251253582681264745377718064026204620539491149014129068481577510360784462837952286285258906061056979749476862153054730929427016666167104349373083081361375966561899397721366664251223473496747058978867479986636669266882592359070499188107674170715244945156933213956516337401618894934415527231339886187377461022453510777611726299000728131129956433955158273178640507947469202305142891924371923836388695281895480135734690273581644040514106005671275414113720954024836463746832438990348687338369624527547773031574684545952145966692290274343290691612512377202607323847036722733731679771752863293987072129997869243003583387887774427187213578394943593238193502824254440715265205949038116576964119482577463303204509593469138239846457722184248939950684384649857436251540963607595666847722696339405340176649592787102285314246665740923005618274376571763784867996364312991337135639941066493813383320960599040865899990358098882875487736949481704097606004547202125227855208433988105842310510239000596191834188134064942445844737158859364497609446269431187659806409274687409989475500421289041728458351819552148159939262762831257632120666367510850660608323294497883888112736744644542797383225750255502290643578403725066908543481438002661489814190790184761092689100883136440877551938589238942301590863119676888230986927392143297805117365076889401406623130447646328111069109867565561530494162942411189563051884287509537576224790771368358891502203658142874951185295075626760781370080281142137533215195166312797210435122879666837091687587631807988562491886038054106756759013500877241268436937503982369393433643212846404884158219277022060951287771992502579980154285036271995701749374064053367118565180175267882090554745001917822269949238165107204440677681533008781303184812429510037099000815427220591225133779207032478141382271791741411933102690242675113265404546687362621949625438389883909540416506415163693758618906096213158106785789383919197243208552541186789940313972980555943926743244029022733006585978128714058833211685388524513147421337922484403180830641393970062692452380020948727564609740943060601991134527989006267962515797190447007114423401469123385344000427279959376187093602993867436577480032509383137929620092438881889986566232418197081668225757420990696971976317634747491825223940291850870401779519052093024321275989322481556781690223771242201344640276000087018447155651107454055278248670568919175850334879698277604855496350831755448906364513089852342879420995683356178995823037111392976467623336637055501757020970663561900063646966040618755071427639553351369470326058893392784204750550619515725920950064984210430051093313975349678364655593713491000959055708021525897122241700231939156996141782006863486647995194907191923941450290697913526695285025402990283917530490656186054784585611204511395662323007691448998339121556816534254808653677950674538041362817694853097100877420298425789298715303329900494137985706834548999097683369952077438048935564604644091880332543320117543194147521988572251935653925155654119387481892806360557111250472478752821892597060576621485669753411403491071233840417786528806113236086135608841992273338069501083239119921091284425991791810031676633058647633891903435014465528724459229061851851546542153684559132019803747639910617780455511412897451928125615828903695139379155458940067644338006615388131986629816073311095294666845153309456185886103232654597265583952617207257684746446764760212937553128834637924669574819497632440335856918461746419958589692895715874429276718547368053737317886672977039163807627897315665696987527512230916306157397929953500769140593648768988543314555828373512802408962713184329693450783998058540498855287005628307434762426578509273340111936504658009513829121473932097187588689764053182381637839161478008684612820436079568789040119818249878438200385418711600198265652916774899624875308510295113444322975467271978104937040887412060014297361700145152770960672234113488282019650716988776843009824031043511637766675140839322796338258957975049485722547821156532961484943202677166239620681474848711687984255464484263361128016910587225241589494163888722382194163405036689078523089588289742105555540848662037118199506824812477537812019829839866630793704324454311903453378144812966475643857733142611243359915636536808615643708269418272119124310076002581866978810022736144429591120697512812020413447034261939781084005346141675296473520852113796232258123204307190906153117439404237422254061794313441578630597776439745080112116990281097040541242084622973059027175148689410908018515743911152708043560777419552832378147557284826596394215690656609353441445105583908918746903740548742264450469292791509711007745548677446587955156981361813255953036185352531325425241677368222443108265387469379518048600551804068627823507750104730343904795678565667743559284971833136411835984475917109817153116463774352883286575817300706753510855227522952291569823905969084282681962401450716689505464109923001808183624208704732122601344132740804359721762674414314265776470708912639771409645325290723433683362154672210260074352051472279360548136682141453023116959905426227388003446473949172886215142582287550397919900769676911100525827312392919582076174775128197740921320164435978970375822794728439093790406511775029419621044380509445319039545029540994744248982867888470148727927764861885594999560311158869755207157452143773996150491331322817123532111876294469470476770817074000996654863663716147974065080768457309342131466137325024432196420778386127387908133190486028503718287558017685036788686058139398817881920562701840186782823570957710691893790916574435708418663343112004800011356725292947218145127185038015721874489736321521892442481600554549139423626073156523148632170986949859555383203874065146720181743084935384665619507373143372992226933095570990486691772113679068217911957181973024406362384434128487866638458177260396083066132699699951568162048880200510561354383327438703747287088517232979068031836510790673542424026267406349266515556318124128468999451595118820817610197038462843987712294592775056124169908308643437055619954189979708486914500211744907243636526321067334409871913828115086284483561285787596444784519072694837803410929780192381851359012720450998518863440725561056790432588463361262930008113076561530391520068757527646318930172272055219984869634495103766000683638393375262296705544194634805206023198867973345930534072848308048131997979138211252534910342606843441130032447350468540848131751444663262379029444252360395803476454211516064661543695935296586135433762505229660419625594784972139463534275800151752988593336264883349177870961593682667647049845496267422644496688599697056182542858799459768588735067982364177229167319180857359709521558810833454647253671600436469850591500143151809962717776558227401499491708365748831308833951217396485065448573602840442243986821815961296938547748881636321126046151478991660803723352006673786865373833683922040307134492688809516937753522361336544173671157116063819698133936164219029039294969483299605574394497658500621148468024630461037622064749174906478776451600832362535837513978741090273585617701997455942124243886724058248529581847519757178317134786797427441610079600364730091050956310630728942575721805522061274514424500810543496545055338248415885226723403904076708866702761703298676003993464160405418888074446699239914781654395006592560173896846927067237113987520651196261454918951620556803041724859136888723060970195165279210225951869921197695465112367915447613924893991659428785107089027194438072242142284075630776001318423925244637368811119774631338215766101042341196560743451730115318658929267645643064042066685084579063357536299889451639893360763358385521770215182416962687691539217499190165388903921615409456425588896469644841614415066662860883159200861091976262515435420565017799366562748259674970815242844263376755007260551480648136616916492656334623374748560224341789329318236093262271172747089704779585348798292055278307098970246135122218866814293765120852742445562843189889933078919692038298077615740482171066007230967302946593751278764064555574507997269336501300490954939726387272541817111692119446401397246048164434392647052749090763034314795747693346256788765687677444682620518725769119307915927395027196520853652180994863214047316916070572374044855942346264216350879219085309432404314560492204897253915104547296535153493838976961780870747084251495847596308473121266151238399580283748621609627472522541275895997872739375509957277133529566705264788446018873698832471591508627507325656876215111089727766846384784291543516193493223238105441726580069343785401479978345501721403168678749186140797818518239390414764192379922346163891166882252462839054738729453358461529261350702719466846160942686165392852281726494724623487187161467002393764546985481431358232904823862457640467570093605789461624533709775952024506164131790382935312170594747191755541770425056173827497121471314371174900569595111214029344785142821087432630072224956783705955387911754755952853345935152916853905888596413846613508559995172840528526675915762260563966690857977880883067158646845864267262013046806054804824700112724105207351404655299122394611773604251625074747410797152257497015440222908743433249604784430821007388483028404182652509889610160532992561118089633421021994263229559094647692835069575417591804335868157017107079580467313827380686005547815402180492180124340615924645991192662676525094229696749661674257100999737316914006124982718005774402967320366409249556468167120207181069180818700542132099905208161765562349261214604633991315643421468128460916092192155056574831975338804641120428146426414889900720291250038074572628887239892647673070792695373153790670738532932919220307203286941031981115241226344908347855835331985551723296616271251496857952078941829477061013228156214523541922773615777825578361148177599325893737977772332205288765818886769466766184716986699463038766470069167237757680533976637692672272380566907479062315299252161036645274726389507443471609464541131498210855453184177733891723417594266638272249660798077329330596924935240772672823157898300883479118626913550640558558707540585729945337541987896582298404773423459581126515808978967134131211142941030100752540337613342821561834865397844659820374285783312508014712264639805140565145906905435122940594285449216799681133757224774200018176687954978514858311638953939888685644902033206783840764547238962067799564615887358313225127046492797660911073443535624457555964370191193576147303575838785553901026823541563007165772546277146858381052739247508943446387574574778839415144437700008746234106674622357152460940601885310748456429040015920495629296879662949692042181380572943230065409744051451121149237369488057019372523362458722605967487395912862420319625535874044411141471836569317769009206389845688047684342398859463582396193908331588577927651219207024532654513281738856838242101625354824544884665685515620399436236121016860006201821182308566423723228606530482661041528001969805977961946136624117990930004390779765156710054935990064381276633306519036819793744562900888657637291480843975692200989479678744922948497417565148708323358336651274183596498329890733402738613474667589228228678761749267518540946499902992147498259430601274206036762007547698015442322884081277539970649134088642850114475224869258246559300299491115282244237414866159458394988079281358473946938390987708129371360621615874002845531982692637325450400043588936686005166684591686265033624209136694634921378421798749472744264142021338981424486614240020329745145790262248541312100647167081423375081763620536285852686145294074649495807858750900758575848023558079508055940772501905452362437549574860703611362731666031220670028293533117156530090434719663122209314866292008136443456142132521595079854184687374879331925579181006350070306903694395596911615371064316871860870159081545737291286530396701868677273102992651844625130828468414475974078593522346747724032023942289778073216182107063695242295456666997249857607272044016477972477127083221353067115069598334812538873877583959203831610683962732206058718342829105208812036338409203520731356901434607628548166221753071214793592643833514741558174107086018809404184175992409730525210017388691844260711049270943359176092426842011753913256670713754269486608106412485932963132091720265827942616144719079919143062566738753782439801087796556662740807757687695349648800224031708662421718079845013997268173256213069603048412042077196105106553701236186358819959151826549326190353080144161513456158521228127312740520551359103854741864652212538550628573842925238868973763449636388975564743006629547532640267571205428728888185379076160392724648078409455013535923576605648924806015803850046936675386491872498529438838599379399070720098960980915285342317306370319241513038534086966999740626200461559000397303951166335151913873125923796499246836512718359262485913075987379283463645802943588323688266358133934554628832638409147069063673988315940779903782858173709570299285849657168514782267675064621941621943690402759117391939566604158216497975211880965861916691007355301834697377707471948123725921957012299297353111002841340584043425773365085174842297990389377541189898555221205959125676291486964484294190349259363431885188386902177247611488987204886591248515536983582933545096050799022665592635259460186213937686530747746985446918524367233810290676973149249778107799705975733654776797526939502636942756667063329915295357472633916834522688810127273068608609750720652647702888885159871619557460556803114406185286447968403730232216783902502123439483415193512487637517560677293641103162119703243137238091956366664849418914858054245524603278986457959648595720804104797198315200604001399229992158791513785892441895588381431120728300335209604781983572266088835523232608832345419055736095266878648046859491611332797026026685389094975620422371246652919296095499915204935471718626497356115182458666387436651569998114337445605465665015689554245937986401619469934343487787561006513133864598218796696250577017692295593379078784731046327305476754566991931848367696848295723514599792045249266276182948937707670356900486950501048163256760815402596020926236475354894884671191247525048660057289411119405686063754501383431992726786933208923949120734603645117188137176084123286364364584840194432676403649482802606569173190824703805904504093497561660323814182567232343504294200445832666253738031133293440460715506044856036622346434839950868016854202383120557717027941995945824432496789145792897849381653594606534984904251776018904966516898167685257167142296116083516052640017444747845063422049544629652905741181526451941131204003573939172832489695007148456554861404076374489800584185946086663663991862195533039068147131461854763521764927476108366554163696607868139605859576306446115251578682713172850115034780185783764126977550472000392188160922296740300178241712584517668322156115809271455324446664978931740482049694558578225006978319356081769306806154841847987333537194956642058915593947465002752606058264806067221206605313532418917856200511133005723722358839114326149685587807433999423916126605086179078785836317132010626325382569997259689283424728648125553454744208045889565235740584840837011605010066536795890902105133822130791200900638802966055041721100059149042386679473564853688761848720582776617584690113678315297932272069726147099376863673521071782275789746136082371535668614662150856826921451539872226653653231822890609681572188161455402502899672125562290512839663362565690909569404103031631453560534389727054354386313189223574667062764925781833550803114185679493043107542619026803250108397927267113560362569260187076283223959570299991126225218668495189034635225689553085172122310194101614411277019583262514561632874990997624374586873205490982366544994236196320023470946495861395465209377350372420296414771460713664038372733610019088738058592135070909527593863582239710046579041434667331922716921404856431130955322976235752081188022617705382957247791809983217110153241865178521445266244559329726483738277456731965095580731443749361074467527671422977179360400516290592129804713785746557760341595417105409842217129878956708435351449885523269585409286500386907601408185783918254647134709647873469273492467516952241917136159264427552399309541024521356162973533084299154882395239840261613914990597764026686891310573272396202833187802582322315431654090431376713331371048483223493106194535070339566903378234967085100078001520595835043046102121345977320517686528826787127220456687656923629234231430675431523421987426279237040118058236202115970388690852387399461719394267614760308155339068959948478580837412989159228577137158477693267243092300481979643744125274084488142945991343924651044312823631493594705976096907528781526526797014865766260782824274922767428207060093144293904791018864059758150717704830229959041926896489158328429445735294158801448208838454800586424996179058725409534122768653878307744076302068946115425082994787216097582364482437092033700381077471066271378052437366600022953408279126279054331010563235439244986824190830025227152864009792360206507389932215783178585171303513073042071272114752890727543476575043718445566384878401446434474515318789597058833524180039211086998873539977397532576656460854486769123930835177471450004015227279422451657294484473717865620969089295391113763267911826376077336635341201028794598378477435621204904819777094422248633739163000343523075234210697190808900920948352625172244917971242938894099430362906367758102618420926513541421445775005236467536631507823258440407389246704999353711619334410899946669733378893015795807468115597188005990864495168755959948076477116044891640364305993510558571926006073690927299305324811453624059078962039013239701750197878310379848669330193459256740934142797829234977707094581655727490319589357002271094402705243191458433522437358603555892940345317070617967617467916833273301716076292131581290249352495829718144051847993886444874717258172634686996670691083932835803283817092948952280160334952024499488338310577842564690327091224450291132553496907473618676538183170493020712856884327548065946575905730710563849128798987339491842102049689236890197563491056093761155287937884489182190525331464720322279253562962556922393825014918126691179402122718452925029271234271735214162574154905439606635703529050813703740408093088801670597490100169313048438726218889380180067199837385309104504405323145503407170599153385545165812853665598162183494055228699676639383470305472726127308470649599380872822784173543001940684951558942523663451439525810707014181780491788647872036639065926326711352855223066947192315474818010724098834056850410955763113513781103861435868551504462506133892392837208617695396050528836286400150015352504451383087807766888110221352115970822672334566938438200682270253019144788705512755692900123568348604789763022741983055684082067603699115051984926281904698018880877388704926170543793317021073432720340069113589495430768508596625684164237021706616362952702969909039234926072394523599476681625968535905816862489526196163989472736421703483256923780302426612238280023887079175627013220346566524396688187131512444159099654263201738210566235436672789703665248043463419018207860293401867041808161036693606240466366012948143965211044708900200455765749767494613611197145244190021102739880288275632640867041892374848594490066490122207478305813617942285324413733383208023677308084584786308284616730324511063557676127778093928048341786803963780387308017695747855547783158874090672745893127770064206802564044522830582383137460395551834213080933761846507376278576517824530623169851037412879120579588871494897136130510843164535549006907380864402803315312597811171136559239243750913460747927420325667762614481766946436882731800355932634706796104324876938484211984487806294308730985730271771673352958225284443909784424593989653458824238867598918932739974672270163640069777346450349727358348821889977166614601106297391220982908521768318099692564670865990310370655679340323803890338087888668798494108006041798200189340191853015240171793172298854615679119167169231255394468385159005573825954099027345471325151291665578706832371529828149321634167555042682666448897355609671321765301065638891385624435506235313332439674482225250832979585570057322161945341652627800801867859357709233458185411146396604864372585750920943667469907164625718895628663338446977493345282498319011297431497864793567378378252344987364502838706449326077350983276082225155660676541627402777145183971520332397888400203263752096043937176863877304504656909505596398036882597426618129539523883053931141525571398432063883196960881681846924408667782198157691966913005644358323793999564410368212813996355968352701521884340481212568798988721371805725861487128337256510322891996667626839179272514636324089775913790961719884844658650432874765539129947513728308742134488825756334218560286724576805014314175146845567772384385168545015789901130411544836704909008131934394481225497794791562733020834933630216645132621537289786793653220688213953086651552652365194798890843652280932960549431054250348159040065782163993520620373015572975856130913400519985438322749832904370544269621582992586116253545465710755279554413623813550518787155740588419371728964071104409186474574554391715978123579890950526119294186061490040240269484513684006212487786520589873252325271863713561017847270540602658415528497435584505570689058584636546770270594474357847119821830518803914178356468080585652361240000050895592324498210659595346657760246084272083942761151208823944045944442512073547766578510344594301295082748501737974208010041801861495624913255692133109729256956409060065986852310828084921148079610407963457792317916962649064492923344486525780424459310685340544591818955194549932130561614934750294836248276629198916664505141137835063826295023851266784741185560262514285122692537830480944908326621108947101340084886031793304268156763238947198862508628101585443925719018940096695747169349412598311371193692733272072665791456029901672069686195862973920877921695888422063983028258851223473384279867975187413454064809114515399584418691382031446119489107982208726742561278211035778169999310357966592682398680047346831859434670875487110890794216169608415617756451893312624609385545329439216745606187088445277540747075893732257943188520594525281249041095296183854359434396830583091906397391867195857309575535986189685934376162366932339134652685957975155632485908506572140837744473712495204232530123243228350715653614317569981763917356262617173837369238654402795637567329369719724291852837307646933126349277605211205749151756511725705991421156806470638233013954794415923557174898961022655722061115830201749804784092944178418086106794187159962764357051771082627044286862937516270859099673927016132923756886460095261304979530967093836009695241046833084459044080674702756593456405575069906052444922836995272052358376098061220998108006116582447320896640130366546352917933939113248078881732602684599288982311980070525725014809910095421215728025736000761483144997012061881529140450196744243633153160370595442303631417401950067193274048114818582380461479291888402241553828598279617265887507362741253507865086324560839877582968491398684381320872840817951955039596780053445191042869618869891464565898153282702274725199522018287497959844953195435074883819960405923236875353569278635484583384840669924352645692788032026841181104574445808015333366237686625508969457770501888845792014842510343128388350062033101377718856717714605814672407176274252522761021655864531868227053010677390836369454239394259272717269336242121280527566395887346945446155606767003644337935061066574682501284642031561524855241213619050636627651116884088347884833558694526693480543048908224973019062407939313751673708315269169118286878638286543090560292092217138749241730042149764334203752199076003813646536461705139803179724071631730411087482236209071860790511658007780288504232659695428026695936613663034651248031670280400961146260551090648675090789428929107171239670799526955241460422715811897705245145134744394570379323136253039934315957562088931747953545195525351823652022097523026765239428792282875823015332394906888503046108857444871960576189378484807744222182014762290209536518443421158629904547348293862082920841221823820328486590295299969254453166332784504747312715403950790506654528574238124192278488170272524298064114850891343127335006633047204437307179031854894119659699224224620459065818903599013327230551346455605517972398918825135346348884076848541202813448542080375801403540789709521622528585203641718029983620486118368086893033363063889132399277302244389228106016534801484110565548738082055400577333765036882071751633241440202641584123578347807531717867014978369882412041634884666391240096811583249367883158205207613563382815747039423383641581765241600835900710033375535782149553195386769241797047068562627240218295386651645526562971796881542094859299719506569662536052480219515004983174580075214183967863950968960968676881144610928151296725499306684429681840125969684048409230203485667190804582615205606357311911032036979768633203155671125354997245941445230616323196776866147430931524543068042761378686439242538518064860932374374416203812424834027597926701794563861528933618524524289858791788089622629792756920270587197963391858031289032665786861030930274602579356455799569345996549563899656867201760726794870500815153247598124410945225905873336531283013207037230536454518895618089296428041642945692943674870248690459063285451910400244878566379395344978714719424951658120995414526577340040147905088791940058446706227087227028132192652742036570660350668438149075316650482456259854226301391079937642488012826734437865912545742954018402956991661834059075099978573709212201847988626378881244294680019352162097635053981445104102494861875172847859477776145419367615855668107871437829310532407223219864678047861252633348755801181921150878946513795867768303532996202710000974566214114004198122294172135234109290778408685808198655511880989132006447446412474541445518669309483989279046812473774454810105565515170436943812723075767053378072433610719053447176192134873605744785263303326897503602770035113360389009982208680353227578584796653610584078626760639670178335434722005138457969208610572449468638164842626182426421485616479828297187617851989220876777844323031474386590356846492089542948664319109594320674273340712437306137756413090824724895492360280610890221394973780555592078723831335833838336190727157001960341734004824122818043940532047350339180321648122697573715433066722904103168390134840899650620165225311559646001915504625296702257644293908138139263211574729940552843414765678671846110187938200135331878686057513929351431034343503944994459997715387989921909146629612442759040046244340556345728902686342718142632900641586333110334903561322507857449209856632123924499332128131234059844481385886185648879775891508477667669234707455650219848474280604386653472856390075979665907259776825091252174021894938447374922520728654465555765503290725353357183470675780224958981012973617879517395348049621614414993448663204197559447151748385153437121761648947425555504453251441617656942667507270841142471181998594340004049316986108566441398883824470907585927080618745177111147533238648263220462974402248373762183863681142951466828713291030594459486840045893403113871893491682388446332112505263478136112868389671831618152028849904239529711822556792259200126809187767537202195664106101191007584649451577228611410305087559544256211292717602135334167651309360929732538584812351306609108867627735122663986173846953832877950231701326347785713889163086893523416998172442708747505844862699764500262462604064863268992556323008911900394349667863319587779761172925715600848269756330715422625548426609820234421018336821971562046531345045490427796051126702116821042060791930192252032298199403246744703120734783217445717164040931735925679985889905377167484160826069595964277862477612748104146886355352278988511173568430129273565063952872847939344304677001390334070198339614272585790931844548403056483428280019500339524651674357566111000367214108259999075334486617656053025174579059614857418526549232493240454711866379977358793830581218442357708442870183818605927937105142041185674050689875615038349156553909626683277428571877066143422730046198625285473380741386271011516401380956914602887605731038088631737582980732207360423396722289292680720105993712635923779328338622741335650051389718419363470438842060876597178810956524711897561803110958020456829418511408016985467283742677734045261569835432018657011705714699009317818234165003792117968828179160129362578659547263907196517092413455726978724031395161186660025610908776052114558315992298359878240170750802251028067064644426085211897208085361875800739163006421581494266810506560796766015508787328342161483773931937488550839922425239963441200209550110264521772739629857900318058625780671145983424499858601075708077780350114670516443236284363080998668224837785006867160337745233250252951383776599107812222158038949454317557408997796361870605104198366624029618656823103881928868154731268980362385377759754799842324152273639415471193333320764253400306389458554295030094686253697131994930079469216527019216991178511344930434416896535081362011088994786683253345702085084164853675696420833017046528323091465150786330537433012765838226033680281575732379756132580875306115673625075575780059636041424925545334957432237500313443698654063571512788359522824338128137865944676499122734300533124562424909065038710059446477317103308128144418210427342966532715396148323859520172963825522322054156341868952836858977899823816124418271863990388201378830064704622576068698048568292203537668488390707514920349385556912604541366606921534130758876285586758763637609856401508579391102859985013458637472429846270291244957166621390825434153466463143139307943712495031234584332782466577806886575032049028268206700494372557232821178335706309060327813785764937210216015931806614519252836674242165760947380069662263808425314086756358907139655755379254379580296888365723491407490916521739775495893896264273623668961933543706427653154285830335571139473177179697616257186529940563709348245804341624646374945740033642015025227147393049824409899686867747059790905721314040221219360638861450064152761374691213777813833329846347619080666129132640089960496690938030114318328987014511333368560302651106097683794636693097231478754240168907439064262556043171741199833357882666578959413440846813121227643705059518397373867486699252140464722471743408636345019839191632487321295909209853072723635407147786716516612800869767057334252153391772559431997340473457884088940377876341508769690143738472067642076786155628537493214646234442335434222553657344503009784626634831789067765216594188788355719657143909650327551903792144201903949518231613024777987916833034036039888740489530001897087119727031870999232218753507369473303828396868552862925224686632084711864278923382349504345021927299799597843576005478363379674593254381394601557507543757732330653102329805139873177730245583526327248622050487040644610853376478705433021344982438654933264119814995759179526425863254804739525024237904634886848667034746845474367102562101985183883027603648972317795518902017100110485081900799112757283310443719954760040054008425943575033388343014546297436800585275801015717385562202321781770288956502650087101310441126804267932278268581123590339751168563982173706956920420393276712746349673842620943389617357719017268371332747912068342562368269556310100879141761434967624666814889258637902112021327448606861163154823908569258151333588116826999524861642719661602132906466757653213941425094545333944239230673780783634548236494041897285573401898753407054611367514167793874386158711227710071572448284767352035722627145230480331955050082559405487878881157550516962140247182007890169112599339047140566723284883419946546212068667065975864799595000761237791492660146837726726383280155036971640899316693929152904983035033313921516280584938293355536770609345419770984968164136072247474465404023697881197683152629712190648521614006445774398762219226595806776426017827647302547852270649627977410770454472701983198231737326397197934449052637149945410646914273887924106174330123048779804294576499178636238519848890527285689217989874444518195463697710775201022574384221223667815801254286566911418492546323312196041570256068188516608598986129638360054096559458726597554629245086898282875744003009427502084323006759990493605251584493697129919170124982081078574300287271485512718560842148584122438185967402187917326752920273303480806487553404878270159688198398641931944107486867969549919039828715015574481704950481775998498509098231143154723181090911633128751320387923773666056918456662122077208228482236743938967503769855951430846296265592309028386088923239510699154286506606988413468832195418898065972496615998242590158397414217629887926767453239872627910975277123753068972176662599822690690542621309477657425902486449753911403479218164228580616796124513795266137572816192124344262961945566228361306769226067557388170634144903094972383800653462077742309970659581133193070829185032096530265642155738166821717080410911244176592291419735031316105114717403172720763566201609772187208581170807739972931755615475566334633910787342718984738496468347608083671475142606160263798478273588222448474600944580808127364898068301061732500872626808071980318138149548401738930453505474940047514007338741785692978545678334074918835844550964008123205130476858058741261938212843703526601903267533957948596466204302131683179229384938614619602813700242945482163380256406886235701065007054857652297324320244549772416874884898440691366496559715941148306445163455256056414510147505765612147979329478131628090365049112967383965092117796728896535899364603620640136126962673388025142522000752124233854708085364926262538850619855013823880806421258877079811087603809660296254780911955146700738072126438231839005338877357612868641813131695243602651936693728191726596728470784428158016059946916350918559739870554812735846011035585532295704838543493349541766422686722676403675151527440143180069253338147471577021406916846559706603121235753352737453703473200193606339766032910406354301049214797239467829604272494554923657281412584998585597733167991882214429945781408708712529302503066994655843244167651908001817234413068813226070811011154333755921379525318321290746680486746440241604717876818558680887753358044893667581988858508528521260435973183448556970903031282990895918609189071125787084637834901394463087284449079950910537072586273111076154257114902582802496782347848861890401458803922563675005942279219054278861615088435522644199649150301905586915912459416705005874185731318058043892227851490528481293556979488806676764706307236554243624195908154722972903160914478472626067360813322655225087060906013091355210936381477954536316633499505072547182882785975581911787769678079233044068873316540129707997612323997173483725672005219839988949276711389117159631201082566972031464032050902298029451045714226228137971509182133856934428558284550363944833403742841342519284807110273395502463273123255454262670836161237500082333291674931320380056000706990528274381112619716669663270953746758398216531479492711580256491166494079380383320548269705303360724510884612006096301074448022500920507270471369618287912534190238856765116377368083593281485232007398998674475904355322308027513911693079173355149590910949896492838732481260223031366258491206967339020499813536718982747959877283917239993452621455664046469890760289794949125374314727046022150401913553189843505663898414706876992412123253962244582436109052167624926254593112486364628087885126210996124784960036185378186579463582381540325895516968509416824039705517814618247164227491034686800254722344575599690328320124908062240832992465805575329739447223530593957280022269101435501551985701133637333295337388122758877093996271536886406563710157590970729267512467009945266806500648958731671591533968738604790138407352718420669555963676268396755314148503305814025985423098579660645209386275715426732690475381816262968122995614632984969181460993405736928926024663135410962831610637798856311124863132800480870191807442246638166033243882655066556864706264306356239570093967246768932005407360541791289405360181405228710529109422224556243695675854781186972840311889804891777962387527201711149694244078508809117241576229855024479177143466218847281728985722161340584335258319160060469538669197336089896941129520748997600839794308533268196394259525106909557283046310643113269752106339866379122326383444669225719049442566049984431128714088007816150717089690790774066418904185495670158290608612102029865524935966313721742945383629025547543792812735434270335679405013423589473121555002938358159510811682264668462054601805338403274924554367270809146913102888490089670763524832672528716954958416160335510675474116645788411458927520445934209641486775142781805807831361411769117263623709044440423516305112357885957153860205581551850257996493919993632101187788687529376520565720038395671200971653725998465211120410234838630988866294010277963203530792924962788702716930839548463595916664406040702234134199613364259388328673973503242795107704596388272813767999232871628615827508880053419802771803936681223754211214570352379382463909340769089150795414306404799720228131301347484301300574069877740453624919788546806171210564297708561713992829109355125408742625105976090752467358026343395953501016500484668780342718346282463340265525841286029778183865396297687520554727240805033376324278582593838982566778171677708646511765692261027699179410618629087545405557141196168965408884086510546611041259616053811345230612451069646125139118825336785248558216400237457930298164172946148460788038332808538342867152002243554374820058168598171543922284627520792705054706970360929853069797693632977036046689847146225331043023627270555041514577633960081007906535560585468981541620040134310698900342151333402893833021480794773871548476400939137463848294171677194355174996587268636420107574079849530153082901212675523027490730653214995806023038655877131037515547774101852824355951548062279549321128417766349165874322750011973963557823453890578218423228130420606865608122375039807261124119910701049957025725456551091129705624621027853471769067634994516415290232337358624568417374623827709516911830571171708876831784098843274511786265999191953475342372493367217725046819301218879633046539148113063863534811867202434277421715478302190846541634245903538911484270734317656696936790646066520320221572418907184355334058074931787474100566774831127707462209277185052880076838495165099676514612701363542099273515775956260398144458540389135289416871445775282487942610258606348894162910537720272086053409455818107944265131121033814689841833642120653078254585634301906205104239089641466696514467279749162144957971542727618891245146180624074592073749909779075467831451446694932261287340913361036072637782749739697125510416057650392633579925884392911326516100036790100748639112630321944659246605994103872788424704844626552990963391112721089401731383316203500317151183219502317787325575484534167941929470788056785991493382529215698726075783754909965541397191990204497711301630872241991919227088531284750351119307780205563136250007001636705216172617866909990648561830699885338268377378124959276351556015671131848994459849288320246862347739735463596229071365683325796466017106160107664104989165081468862606827095570355397516249554372801791841756380762786024008754114339966280481974717937766120902858581125341924114252249136907898297209418887882824590568577256863524528064498625325792402796864271049433311056747642501871609036217075507661350994985759768915690625715847180764499496242577852324517928874829807886700410816152502039890524404857749557236450506321197539143399865113276890626139584473482359294846556074451705938634974688300782857064130255747564333054109482787551372032403148443165695076020597665562276851613111109683153574509864047958957406079540746854768909431790965752344347937373687528057445265408533303906092406101187841566511083507705586661670563947325566424329150787656950181116879288047712841130280422676107835278131692035099120297790537556660541327838119306768321631966297059232018434287565960674821563762484632450059120821723793579704761316351995138520749275468894422561904614485083769280422041784644167678073135087714418380941898872477146740954167983921893873746881339675563743331262876869287947170126618071294592716886612845135008622757458745203084864893607089071467687117363695944269072236950262732245406846359213035018325109073789216358688625076792170673411624114592111831912724484218646073399421057863264221674583777508460294287492325527514684289382211880007704333501919296394249072900006473138398830923208852318987513896497107266111912429940480311471971997356327381372574213801837360679821011173156540022422744241334418403294236833333543892832369854614671491907476077306436160485542484732006574055408323890468866857385719071702155847025445880565776520033984290515760135735648469417569959952847903378736878990325600848993016623835895358773353373579509897375721096788194428347438422344866176688690224289201973051599915506550489024478322243399064572338125922675440085206057721327917897895729163207534075672905677514769533901996757316075343652861930021559812864986451162813805992194084684529576427525474677814305969604192209916963812183835467367249063507682939541897702264613498175884190674958094876477664265182038515877020565986923700701288576489441161674646855040794536160489933976541062832077469385678845824930104857593427439782421600565036545187751276741910753424163250888902847826044816955815340181976198396294419335946763920909415934051083125099490487313820041142431865417052268765413127836047389772389831976368262456556387570917262428308930302590667138151025368423914903222675627581395574143019222903408509352962858207276277281580345914801457535164768473813058993153947858122839464452075512043870130233007988093308450788346091384496430848605092245018978976853285304847589131712223431776839306991240467003739907386974840641103185951612423258912995086139249388080796136000195593258741626626366574201614576952813323875718597533931819723900848259012009241316409596792991912955218550937408117111542811747941550460755413000875960303240276300975870393052292809221267749578465429547643684656877882376250717736921099039592032044218517240759107617017400729010097101782490791736912393568803888762690584621711035757165775792196203921668291326825829907537019295700224180459972219809479225372124288715663772126852579304193814836502848700621953451303413806441417743663915133237962654777352088609873080447853163354065348950371246523425741002797673016804273445733655835158923298912519875832254873514106099387531227408708036722776032465403987495034965458947940386888068121366856974659882221748621100164983978535814519584976202429870221937399933204400593017428312985280631410356215602773527201217553038402736734679326951837956182112556952330415325828921334422502501774293724230641961830492131372491092606976095412014900657600580377283399192954321342885726700445576613129298609356590461688786700148239269137456553915049167748220307937661828617665566880232101262542606938450976687697467719511977372687366957816785244457457606001781151995190079682215917009097064867786245404062119459169173174738217168522862718673422266115727187017290556255063777440079486900792429707948087914588310871978598292069336611966762645478099872684255735922270956159553800341344245884145916642258595979324999905495220089940166159836907114055614842299972988648803146646831469822395640340422742267128707723386251972052896031279267422667789897169027339202963432426750941487839554796191900667086563732437208073498072211129559911773106848287918059186503044409229590856714389824578093174532327832107795344111975554903309132842126681985236950679045049963277709632409283649985495154417313849225568368008557674209618862332749095981770433783256504453998451255067478738398595455246611267729064092051888213096732737068330168906560747222804109944492718093887275998917698195611114786564749814065408293482391009466062849468854555210955252969920129793147806961180239388153815508845316918425006003898382196190904107796754221840479349577740205275438840250595313635995945797855747901383189027218592229348012822853576632413229371411046614606414895155654089141629237770451455934335695660800813452549043815034169024775271015137137536182729317286240425559559574288437132906641110883566928924535781488645177746867986020067078548846568410377253048606577881741663243882696160264951074030774284528993964100044263436424282543508687791383047845676151675970892094643520116487201820533970166661390670346692453176769994616516600020239781233832204867464867520164304049087257707116922374623653832373726801062145940715303292515940879769208623076564965195912991484990804633080326343311501359244428596188612100255083008261513790920083466653398161219621746578000304967003039356814092267441745249778117807281985754168965447817724879116966964323538379920773365933094481159097575221478641190726218491484289412472837108497802599719189868424105202329715775349435424405187696306180192935600449559729693790942695240802635510781993918592316451919703399014601051893284162224223057310126526568644395097349340261158615670019769734468914161190437466365552884375056992512769348031465882515032447702294077103404203358645821097566230419088625459688844138796000222411948603846139921279956651654105545380975227361425812645194596522458943233127882339895169196853260073544108280531429717942257568140006183297802193443454568043403002399105193581640672200145526167714060754253898975052831068770816601188822511004335977087906218322145276687581470959253926247964625825826464802863705309705688448560348647723036396615837441263303911079675298380868893295584616512307213121931650998054995678768989537318967924240018910303876327917681239677284186523571053113512987361548052812527794356316088230403889678749586255590976026551741342964636862306260289800390837798652676634778134877641635516568532584054112368409729915853038970070786084825140603962260925677364959281249733180481766896988443305721189348042300867445203433101086226917937598007027378975172817325924872645747342060158604983450231440761216909322433246805671433070771105629520659718240361073050533964352392303999267461983010103969032918882701808644842378956840079528398958233810827556009898785935545158821733036347794115842633468311853549184008835782332230629658528095868255541150955722175304325246920635356552197440725825163853414020783793834986709018947690618626270304932055774958719351544210627512182351931052391478800226367914371386286714711203935214734290856721330403373020531745466296304908028712260994712870138653777081170398720024342581573225958235955129111993048837513544613815818943859896050057768840956803735676217050019499278506926270349928202389267650133220449085410742277042502048079627938990516374559391161718406108328998330674200343900697154918786378152905367624770700194994314627492070348262160999556819702430172819617490017928812969346345624211669197965095388487777899901301632761656105272168172792539550841513371405783533869736210999873121298839954330738497847841876442210345062385128428974053226793731085220023023167303250008652920869867350549200668070537022014444550104012732338838659976117607718595617993346025195297141359147440293640971617499304932583455317721392612606736405484527861229303157066778521976807859225674225102882168434517148657041052816077426076028910154876834758836953266853248623203377942673324558397125810061709554300386340230186789034697447051754466827893867172584847371642789684997051217039662551161986506196556352795369835376332499517287651543446491242659035221651889066152200635583094437838825242043745935007677924759436361664389328158807687224196910572578229342387130223508547778187669722375912787419290051115756194784913001627099997103489014535694808114131775647561027283061039806062699185042473258848933731889709593195442816886256625060297091299128565779755853785470774434561054688486252067372754570045160159470522427339675000379575242721427253150430616001714744756053516306406126055099352153843811077932161981525285396113786506700279275145534106110906883929983842680823151881135312245952876283403008758445123030553501842038886958483815154484464111931279806143790957416941445857113693855816411421428125909056466113265454450231271851275122113669639592389871999973890873015421507483855504789628657585315030101846979527923090478833493294565000291958329398831002105384129182186056283442936881169283438702365951043172676425007669948239960351607257425332913016220956080286319565736993004547940613746947024610014253487265597648765519183620011475794370997829605233482294615297219421192169911833479514075818477332878320719717827977409544150876733818879410145252861285784795794295210448237643611355620671977775985463240809858357951962966792388442616754427849424261946838959596852955543831639910096145936707825425170060665879978560916647084467858342747610141252624012042874496804697404193817340128858406701622959556562826931105446735124753511270387025256817016727835218396186552408264093003705509030115707870709303480536226572909321004777992790390797538323822622210030523997060892828013349876378007158520453220319729568054534473412271531654616871873411072073015774004507464452313956610725848590516919897694416862029286944267068326488665410718762622500638629278552276012412409719067308075105898875010569932061173125151249872381667668389253969343154399608976935482790870837891808178144711610769145470362048246302810170289019757226871810461524685176919542028601836296585297194872150183462740008740555810578821112890668934846703947633299145699079638369364605437500514442834415423058981238271438045275837589382674495146511953629124028805867436788105123852114474802686190894674702377698094156927320391844250994452188876870787440486601093748218609356119987979556627087506665156102923719322925903184206162935440211166230921061699657959400252566241301063045064611642715532040162687494365287955223304473362486020308943424002098981857684823702961157113691415339784921259290909067983365044229350311145704697675397207630602070863729083872382428515314755508423661214670018726173458738917479364913710638927480938457679322466717094365056061460427349470402890792679932213236562398279752704682133877946508188192718720265371133328782113754493898077140013658074546846201783565269738364651408527294186450431675259910678529737269775863034117194435562033687322001919075944525448668742780544336234771918576612940110544236498127756459267807434160468721744345564284789028877935995194504418508922947668781276785069809434298093480059082174798744427527615784036988875098148562544484351141042442096497041969524055800430837706940652001180137939106470818573786815919905186568111614394686217004639733657722145203691494950779000763542616047348819535427435034856572794814660626666276347126869716942722479738180799761420645140071915150292415378295515393634798305974780298077241191532614273776449446791007294433151724884956968267823696743993368809260098184385310606584099165953560873757448541119949168035352143470774789081685413338806712885435031970386126527701405921388833796743346342698815805677702459051347825414355222482286364075831138981493619233307284998600838863500750584295048312904086734844970699801399506328935646282350982831362068141429771032108323336081242157203373783649883361486081494381621640275544321380595167294920333418312753593778002716690164088172328802688322109078232615154838516329173863937267715737882646078528453078192715393382664908063773367388707400797129108944860764854358805779494876769594058478810743595423132144222745550468253916628747722620894034744050608468491776441388890868763605431777943582863706890766788814139334897245580062640905983339845959690110184047162714964513172090932307818935833246609652645851441770544651599148543603686178877385880636606297460398501797024763265039398303859515802562001333353230283117338287688758897007525177075975171995917921213928617456032428145742659016341621936834379259483220553201153294078013109094588583145282582453826867228890441761691107812393380923285932009537767516523694112548162475997899424276671330966768343357349732748662461424394621136162097307433877205318289428169059839234275112790823711330548561118219455161800653300085792302678038488654883485446782360526681429311496009749347576566442427554551834547402124140112801355082680458047128320780806205844360269497278901157609530261445672060492840196031310176274155579070071496396167921466810410881968528877809787399918032704090774407775428639851662951748221905103094995878412160839500590767347676191726758785538792349091222625391181823877440479666860338704892825348105739626848628160797424338052948623201511233494403765491031007135358048665347258535163605693979010729666409072671871464169842362012368047529124742652690165014803396260438285976242828754534499362990829354297635712257883934056973261398596474729891455513666868385383723409440466515284143822951550146523912140251877270780740308912920406663265034002907484414602678027116388356338169775046002919673709565657045282183029173530731119179154670537254054872253361272402642379949295385828855064098819136625935427060134625100618474528980924680093113831483645719965385736701042326048703032277178871330011237382818209743981650312026996222055454061242606553087589874258672133027395299127988355816780886951432627736611232045960144006656987952756351801096426218977641655198557477276027424762574247192089826559684208099369136967566299804023529666526620054860318663315753035893246081243231165284053669641166395492462754476855837126811341110826605491286651352583144232328877689546039566181244584188079560576719964778711297933106479656391653870272540780576532631800608635823951736640304607365000404818359939762355261001798819776081644152643570947736640238860254157912307680722840345983363790070223764043718568399139349894116012781219860955655169092712308220334159856229173348173926723869789316980527888836296423241212880483122161073611066225134212975387353472810616511253094260423314300323109728856953039087123452259284004812414850506788107022799312256264493869403060732568267124508255743146207912289374712492010043953400732555247322222806779449393402569568674049518450157540264595075543536280527987539465696857697746675616947806734188561821448095725172964346651384339590568721497897770894005792910730951391691374969852588070746999304615373998512471152690754079361250876804744676219936068060495922014740807263954231874802185530271832885346308134730581809765586991596592890958414319549281221765318303986136153026174919116143868835634876087753429261004708830701113560743047092163237530016644854237471274123846858006271991838608881674400421392113716864351682618169359243122064078570777354921505464680904652670614993299219213270222810612123044438218546417915781168863231355982621119285094129726532601961370074693825015197168223567247747878251748560200976456666262274125441703500017033279364348887278787617078892200394650944837885301220151340126442094304269315170376455986792929736089366471888583838415954985977725971719708577110955264310620235692735843161807980814223668485164515601309047092479674856739464328417783964517957307902235321613462279441375195726704219290456911231183124106048115129919066192498329780023320071700959290135630462855549639059400166186256499262942377729372047587038910414609644824141613202562517148044579614765776367303887547836709514256053474139155832665769374101042128578036908154655676330453577791658616190609259188894369009025804471254949657286167148230784790394129223133639168498813917435401083341593296490067273460161774383683177186917615540052119043162039683886194953990326785543389663547374307653896801220889990438189266943272610263310839383130421812924843045752294213058846124391229725005125870381232883886440918162079843512209483851174494617224517058235574795948621953382828688891167148622875582814659625706451902995529611437346253502594496281160742071836610271930979423003423595032052340631144718286947457215489412038127146630221056100823317019329101578318584362493777051053151219165823440216676878691404765031946844550517270516079992556523862668754032399845150146397590733071488258561604107850688707132231975923672479804739871508321254068442171843953261005352960362187447431961466142110006299339288076231173412347134044892293153555037543299138068772127533791918042167498046812867143284391119569493196909188643971957922060594022365071247334413313247811263627355100045101564216472973191133069790772918221381570464899794318257038904381825362805818290070761501144365788250843167616291010215936537178713801862872039113475431710388665231719198328530024060343369571146149982410904113765296298170725469562811248988735961875112844489053333505792481300008132460202091104684318116078662450482647544884165567598436541271561646548577617713836589403004712542006692416284395284121863532943200626193822579988071268190316088941063488757934400605507543902312802154289439430117476582046452720579537206475837009100598643063739686775041963896025850715389124648291958492323028349911220755757681133802440496954090109424416721532121650732840504310322885869698983239211684278449092274648967401724775962541448004256654008734953137281167405000931794851582249015756265810288569358500009710990540931944317943028451886706509251945318180432531248085676980909973320579297499088787014361281464281562975306499861859437819048879154008774828656598001697287838992711174772714513679130203002231680501225477516659342643332971557343336691847517402922436328390902277599558516094751009807156461586178891580781834738124933203771303546823045984011253043961880580136408547378849296039898506192425133978796259227992845734596612661136990417177862554927721748006166785739430238273759189681506070278782763778197858762292504000113635504114502281842972233312387095090254220838949302805678304408768834241249304838221772666682525146583201608238990003572512402386120962833990915591767292036332819522917594598654012523754707949334055476633090248946580979837659566857116376247365445642494635622179594919753520431253099908584783646415949771652976582392829270612955286452444507942194374347089242045992063515176264634013683175064992859743057922990651229522693010915927197257086056292420776684998041253762899755186386174288937175236942043837338547909283429737933695457010050129291865199453783971751747764139991701912226156702912266472602777925693962258956470671410077905333589755876500763612121657837041955692110512211305127727875115771787444499428344235517663958475955547469006543055864511550992550566174942080699739882238273343165186968343386189576561363138468250321799879841893920050330246072675024255003421187647108959370397701743228365468293813857707978274273467333431394378582427856161945197255146189546167147731841234981444632792436600740384581591613403096870865594830979317766564947170529305245808340463934704384979918792071409419092157023638057480289037742207974790115525151635489234808621273119167482670418063452496912946172974159011411305965225500896565700532447381956106755983860364571491768696329049001207617147850767942696071767894961240808518841073618884166504296889033545696953945617857880434667488005708421450755921104149002772721984339777954876983093853460825116246876146402898385904733247663944082785433102554680782588495642796223875458746215649531286320570879030759583921415780486989878428585021132056725001884788032144498878896949081254213921107972837035410148582105753164903658722422141244795633812139116887088974760496298661045774368301107569949164451883241238602069003848731018420420904283915349296073992564574929749094950851519146573765401943663734683301775469410967991202705434160324264232243117798431499239244388516697713859666060993473576914061761010747852862552885905462432259967550442608503831209461422629567298937110236963983310653550994897254351653181928241342185826815291816059404930373602138192009804783514488591731111891004469736602541751604600597389240398532003066494715041447786153073651591937202800382126501941612479919717032907833665149918336099762040531619513899509944605509777610223240799418239433471082062941841203405630859232551492654600410421082816135238999646904975844380824485673887610737563369714410738127072849122120893050227193814563882319821933921235294253625881902392049407711094553478539128784982300308252521630090648638882520418172221719328689262394362828678196514210667897678725817319742917014410025575001604354144078825245781903426118016800276102143648392160911587321274380548277953225811666836488915173644585839551516113430747011746486006376359626206012484023807754177328168450371834612200358910858876893201355418848802304919152218412788536279019645903207654331888714527115717863769174346706910406608899007066442878335997919022216050403808714685538432893528065662406502761943429427525333161338710804389840325331192424978410292697954086648040193386546652972292333340687094241058776684231131648234764308494439455156205478490898705050698867670417119730174699735606155779914089659173300644673708550302504616114870099147190804027036530576430766780744642949717997370947071769874891301571370869705094546216023215772897743035447847777827204284493747529589059643661512140234856452082160065158052880041902543818248991345271616974749229539699350736293794862519391958189221787375449345151262009182270364742420141571419940357152951635723181650405227928218688734513298542176860663784846515676691882377547185167135243533788730081005219367882109916894665308549068319629454385053872473213091852462910334786387564875024255605804406251833972873590654909257270141921211288483991230170096467464706718486462089234953008343729756338316070472955592412036780930926031333657965216767233295323235594691942833317982886835272307238788160480043204543880618436158134700270113821331076686951161762299218455047253420771036564646210780845475362637336476310178092721822485118672639955840836137112242304531613307443554478414527880299075184758971404810378856645979151735443231937991450532500654846811424708663912051663627031235463754863751098964488799384637214916492359589721482150198166198918357352184996920973775059962928940337841857566498903588856118855900900520845388458310393750737015955661943754582404400138744596637855245227725382876715697996833666109257825953834077400148952645504266400037672886404639902540099580382294400221860302950247665208432799653749530915630331955245250194722902130842790251459133187321904833586679209332505909642424974087851154840460629939318506037146306040499485786326061731116361243744269474101610347241705769049448792235490226855443033744634556782804620048039408334296688630560554303811519454208026244950568341992929807951868604917212324070917393562266482460835774462522535989110977094722871857141891673866454784287539906071130093380649641595148282658425465948133069050242833313139752055136649059837503896469262132652408598321688785428703624399650485032329344296781209364129134919628051274291852636366534286645350462746129864404355655854370540698834891266185125600747211475554976735736140540937280543388538589422983488320170688231424152049981656127532824820141620004852012654840197599640582151209401632654453410126404265794733912858338900178683405640429983495580785446485469986847426064206847944985676685073280631063533155443945301720429097255413516043304541797002279727105974892985860151933523199250862908048129144760495900172202007218692025462607096361298905024640411294604862408062420648908095750909422496622112220062383435396791840929724942918695890792282755187053481268941414084991279771171798643381312503146233832498914344278177044349929255627219520450449900698104036516941081992959289213156243194958111939880012767043916476635377567523068095618808755592417523569099173691798857819040060670613608874158220979928571394606929498094027783107789532036643412429694320664928479856596097103581946168577950565571071866456099011274837099285094085618071954982532130803144895882654290936743555213990114951498968936408785995522604707970674824233513492768428702886552751291439121604861405108541358704647302821496245387223706950660003568140180808765744158222333032950534176058183837860795149666092128573881731489438067730909697089920523827894574766414481668563726893964979055384825811784778384719930295877266242828426099982204384089918506849478080676273942968730947386379915210855889070965938269023435222438906299162598760343499785678223116982888482762637810351457091756959182893586300893579767910756993570599082962309372924291691226812106572620153581587053260280909582704639105232558180587555931096935560403063174026797303393559300262140860369114414854175491579874020557531492109092730873719779464652210493808502291074279004714342745141558759145272382629711998242917384360968875995078449243133009188215652563251027283572751834979229289369993693028550624780783759700105766180599806334796502796959263386917246024705732727337234618530610010594065082857967624830726650044414057018171098281912047118697386844426193646360700984011470411633632793620978883472745736754716007759064681803581747631574327412825285302426111062546204663520295235708243182975669003976924402284889837229079868748406484002404707011366852173682661634929574582190201144994162098634788411792223581299270710780885548343084608350447271744445003332469266027012124178305506398181825846752982518714958509798504318546842470797778158868371190798406739988521885858088448332404418837588964259490191490995160922872909412583022946021751897736525975694745042863985886120150482925673609385737829226050939427919345455909782186087766347940281052404614649631318184531167985807642679926248739810922048188704298396347299389724647413920313381547388943246778704747574890040252486073585843471745211614133180278019278556847947043894593756177654484896262123070648836782666105324447322304386644000291939508417659502106806774576288137014585462992772054551604265399206778588859625651781382527043058231993960438086589003828625270101839038829361069204805754665073516979700705554925183811129467238222797173146172700419426398175327589297397497177293216346617352837575580981654966927923957799314904744398206150214091029364448722761654992075198377904964649306458633186515555845078265403877128095090120958026049677393583813168306232896302142340185787718058187946518980747845480760420091769073678398020910412105080952884450844520075796298313384990978412633550364375108150102340179412091006263103754724127034246756522300097661013500839517670794135290440744948351231187104777493154111114977109274479644394676540146713952987000099764270119957701048917546690136038073469024621213282281697419814123888613676449064496064481938692992326347155419278948207417994254137095673127751618299747740312988886376893812021084158570416772405520188967059266704195280561340759726687285431292846333239646155560400758238329315815136585351397390465206747871588604020046008235528370383776231840048512956008049166631721825880400827781540268648658982811675537370195533538859595498349565033709192571223063465431048197241040330464001430584791144920860201809766384288257151297532247942970226580105759930911337162419355331962286994683608820781485323017494430550722335110953381949342484939574691030502539590147048715845607088303000667654949597958121934995139355444607205868347780299003231215158857622789810936718092520745462570344961394360237683072621758458031363197277321230942212319155699813704328753735215493313582202052639530957846357780391593438531506649960321602664981034798587208616619055223592227031939813187213168009156356584116266209692737330152523859331977184673381398533832169518558837519178795790130458044389837853042419134491156521754195470828708850657700944980648695671389865379701964625444560521093281206428786106478587707365605911386932691807442767687492537443771949817298166214813385488394848294833976431283920161473081029870492693384101221836849294050742892465773560040649972104843722647226285301455799858005259646763656790903239513523570386463298282911385757142233492839194516018403061708473988668434336367991496419466509448963824969780335819058810492746678366874976367936388373295052508323556722172402202946161772420243315393467414477917643112026828602727439486223938324816712070679606726492856276607048355600738975319368054358696649227787374661733947763943190073602174506462958700386871867476464394351296983786116324661928198658180476694895105482524125963175873951151331307650808298571655111336260590685861943294902141434428841101728691109559139101400158213543259389644404402315262439041268288266923104438377591168499879772898453802772280682614421838611071483711970791854097228580374749044312495687233102382248500531707088707070002210049938972142412779849409143836724418272425560308941846881724169582538498185084291803019776280784737644262688878229660032224061217042651423146973080508654359023981677738457206245826333682409256250567204241440139808976240634695400683915089668235942221332966684836024624253255028125700624775926540370769326315827448738426367385926095030055721157121100633021137222275512279552475526502631301692759539661573527520584638073263898996965767310235563941945130512087049790960141255262144381126351767448862407605726783911801522631861227979439306661707793809886912767820867027455050663618779637291877940029874611299262529881079604531139995515316489858119914966498262265845258083479021035391074253442973960086426322382840476556281179445515409076312249246128360714012841280154223939499263615969226128532283246018720226647807030317201879895128943923796244334297235270218395633845763441398185492673318371925213521888860888565499978838893256360171472135570519479447413324417794485046621207447214127472763224578297133034963923516689623041264584191053873339219303932339515589979335239271560569633385205122202261596661711646231085777132740474312305202837375387147933482520055112439019492899340820314743725764940262863284272544937859292790557493268875607467487311626682273117037876397177572520939903558073035761609429534269314913815124639410808043465142922108172547546663624858320871182859145884495303716073717219517696187249734010788981891159322468771248751647336858145665806010604861581799166537965500900851174629282954864226330890038412285219744283428569347143494456864952189878733366789533965098309553557300126213404888328732427976907002602820340714812723494804220843536937222820569040181877963206820881330386208167882910085192337353280905643893641118154776526018362534071820781064296540606161855950270469222309766000697403725138379058743397934241793092281881863567719047058989695324852512921689601273692010271408089282707333869839412937484171894018799512851965474406272905617868775304909387052924927217951568366890127485023799287577961135541446891534310825421242120434055650848284105774793076406462195717039507204390799472247270695384877650197337296131371098421080140203966021263924252866560630418480964798947040299351738148903677880770185658687546541746072197274022070099414589317315858093061435173432051977398324618500856921146644170995967504301839840111563942892711702288323815412280850099949835676962612435584230029323972076154463759044169713284612980649963358434653337555865416066512344543188064038862427419402464411395957245056514473244407762198027143709630455211101890491767298027417641407786188872747212192198721300204497781079102238879596699080672364296478624873472807508161692640286300082366468870579661452051242387163243470237253937302740505413099038541249767042415565920523403856232003451955376989692821419760327795017079442138308203606029529477231185417277344901357153806976935250990754423615649760614491551090495185801652545931568873762908113139966550850108371587234234720679865371251395777870889542155320210371049742051213441401679376537409126408222874869652122217198678940433731106311457372447985165595404674773418293076817751166004659349168160048579070408220458401336667153197304947666851671743267583165593664371832650828911575532839901025542035958945448070733557122315841028577849640640407319245237422265467691981512328624472444071943699461169152428200462243869911604195964745152585474204449951284010632472581969314715062263273470806111868626603902449401196872284063331331225482068585361343090903063367480977583458392623317090307897863027615764558860566024007512654462003192737683206563035053744328738501956365294095598661157561305700037771452492792568944755098820017693257031630322508592369770168770801617382465235355775619919455074969987066714153955384779245534360420354602937282889121194922185508653531839343308047757450570122519457912947036522375476670915001327051529397430404331690941033444696503996045146882302926326662238361519772033129509719690570090542504348208651452657253336990051673480162170164495533348506386361042823879856371145705888997918091681124362519468413214299310609983317662264037107078395428582447274168975413321851633528341826609739604841769938952611505491788698149553247307894893316544219611827459033240213820620482428126933400853070725269420356209217892949168728700508511608923901310423519755357909742157170912005363413761618725248643021988767093546037958280067315515680689217269550871248449866423207202347391622108241155863814188737737499955222639341810457979548211287435758089109262995480388737768888582252812945377071241858504482512681234979772267706840003538646199762583690810261389346725455049776309783083288668926716775688701183453936288251938596866955902075030607007276457142004072660660605765294274077470686308760043612553343813322665204102037072630692453334820530791203453094696507941927921087681951079379866309883204993134888139062349295021008048853111770788926915451994818105751443110492025279612960021833621809828038184172049970487151436131444986768908948893413068907924668058341908343878980395199427013020387373094447827103358078412179442792507626689401405918248948462255452500160891099992993274224232212481319008567033171800631267205376397093926875104190159678243720417794216614761195964084443697838823128156095419176757736017618635634177414153355456353303700464357788311381487104553204044989140429658020075003217851463071893101953563896520029580960792096975177476263082746914298197228983597633647338647587717647589747223634560524210147912302288142376872946604918773918191888346504074663112020632064002065764418077490687677803118191424024497884584602218665687243755793329484587139796672389167613578779902636686391582324837097540880248074141307286380829024925790224180796962294312157875890898383708895672896305481434699527207903941848172949213298618461599839315082648646641713233507750720990704561690817724195594630480950109670024963995026920407906163908509451971570029207552540068364843044999714860780969085671807144091960303475896841105049664343670761256608203566065175257394471600274465031616385090161936637015836170937721873702867195942657181252182446813729713305656047818651386598110743432838111730981714547923090062592735969126122821614855096748754641160901974706355635659758324007099474478709602759340234784280777732973239105211455163146775507055973587902449053430440954195965700832472877121848891543321309515532414020800369763435742401060030049810026730614119157663582688031806974048250814501621610304630066672367808022214126671185809461197850526385877960647673216308122117111324491182014427753041670438120227032895227946527332223033071587185182714192900197714433999879315012501951892857334507114901569107390553190862550712425351753553463086145336163450139191993733510097371633294937285436318699640404846381007368028277428938609640571786886506658838466357699506632439448035545285671330385698229297543041232696835710319904738919091859825959638064511832150601647863828567229151989624234368650286765098072893189479025925963961398435659298076461667326067024112540804379343256242728045725823784934506649176991710378094301278555478663868453200667225986075211271303531571098432345004075340918140389470073892061340619258708130440782475519507992637867065569792127507292524293141981243744381381841100876529396752121915698890770626635954132900850186264476750763858028465860031722987411088799355549691845405746914275372352074534788800487899693101079564811337404289699942760445904005302600949872042848775358633071709104534624120933845347058687489513608416571251339926152180913915093479645956707382596961269304448997541564576225498217769740852733654856026330727563882122990864683833053141068050023144076957351149745500608481575689693623935173552445608972455101314102607878648667694299142780695757381732461988740325362413408344190771131363134717658155472193785552999317675983032643449715959090540638866667248761078892257820375061670526609764157181984903517404574151708424174432446376610237649718231874362194518973213897828988960721218038700912000104747773233971278924028652774861560562369442101048121876839112439326418056055365313235904265077927385222069985268726397212072783595200457094884984415851975157501229924067898996902929919551843812919963563004240094510747176300307364328482191477543371967165080725240773340179504106266443879237983038531868878073296605871568735771950500759818627679752403754191670507937404965795596854811243737031375742060361779984178084388188322721557680548753495589116497337084732328848661057239832731128394374480612379755485484172840872095901617607495934450557936027091588826899356537526926718389265168035079945189580963922354072682455362960113557778392297055147463854465121633583778609830471187522009714671050470059060735186774526474017591247239634444216896158289892867712189413858579798214710730373006428441416587664643593939617122580884210387478072857025550790852075194806961817614953219135045195140096087055674109387959498301840179597651952759841543878688200668292375718532929019435221468271385836817780910937399789973831974195689518192384855775301176345353609353654136713786591193356013454061684146447906029957967382462787493594881108307485580101525734999962388964866686583030787375529136524373455816564863692537316246894280053257221285959316280406776055416134999943498516380074382740881955093733464376091504486307304349331229443075701469662033043914978209268344362976397172753393994718514669998617669396556398645071339763711593835394864373835749995053007673275866586320469423362768190437524749803976902823511980157607264682691091560017741548735557646753843480638565679511905257274078910157241669643187410594153276872308175820194878179060279617109279039031280337848760769902931991148126769821243972980509770982214216006524737196925418565465758382694917946979113528157079845043760124458638118042529604228978092264298689122030027328283243320842462407445381769068939105317189881561408253169009306149158459750547000373942801368806884477026427978168624104594745388425680544685687076021862087643172813994983131044108989132782783322116753364632528216736601055954870711975117612750380361889268410644702947822686021338158804028694677432195024811004606236932190409863386489827548195858223542297466619045089189086251497029803728615617649563159293862555588460887935698598597161530649678454452916483845261092014478602318148681335083762262515332951227639935835899350413633573882304940935330393645375629924995791595217427740260532956431285472741566113085549180868562084777346685144126060515745603427907772381135876661232639591052871248918138116447540299332260752150871749383496925519070506981767181868571199752470025559101154643790800842659488598815375338994281802607950089735651791277619371574410629550286904506935257670683177373184581255756775097835907278835282521328804793469735036942648127485442645210154614484748219610813887778045016259129561847693271409511929246435272265902227040146802750254279577017977276840571556987627902856352888041050455805959215304278992871640076088076774385972116636621973738908622024661319315666995735877268053373149726065563284586270732525255138251333901831385175532446594857648467668102420887234721588205948423467027458718205842072620395472786801268729850941320198881464495581567608217577657679248106632047389641003908865164979010288950213549333651945674411522354884098805186119034760323504575818501140232024112068704238182197428853131482774739424087973827641418350894841821762927192755444067103794669236236269692014134204098414673187378559264310397123333792205419875349218726158282523686890283052234934676395589385866458165335676969861520687328324473802021955358574967109399492337332027250069780330967826917988403320357833957321753924975743754192880713811470367565637795190540828340072580194698528759612393170226186958842454262070236073868826161626998792590611198222876829796491609674146790270315227583035116617232593606860307570493449447561972835745598726562363863782642132320132235859957110759435748749765484755366384380199749408611706327216840354522160458926753765728620426503090506356922795831413836624570638529266429470507025327135586152841620839364342540501073970108696284534983387573197416074749455497335980071219867269106591278055761913280107922031325669851946697097844011313691230207197926925714580437955776825739794202770569863281478081279654191319574584546212943631437373698354715311293171152189713282298603151696326361906610680949076221673462352851798575855047851131218399940182251487546231572773789492215639299520302665184594753258263191605107564376109340621486332630709626132201085849381195060177001812143833235691282313634725570385324008272195521154976007720890244269150850003678456010997415051647101236032493442105161398987480714355331820685277943620185375405134111719881890540955086933385172997180637357710955782609018903682302580578628838419530900838789651736788779709443772834029995469480312564000154222935836420963309456489438876473401302809321037672885653861437087415481320776658353212224179116475307259249916686772572448120757488413644653413812378534975234217271386840281697399100567763712755471657043848616783441043422952107845674159209488529104991960614967453663331894360623424451901464197666942807572078445295500073731111536925308088398572968800703343735515121699072788085347316972004058133904880186110785443428725047174139072621254323253557669568630053745530865699275898820031781404339415700499803590677534873994140148709512275687611906618081949699988100956359443318740355624597053953260961266130574211059578205388417447956186229596877011553149382065283224848342139232575201314261199194003649078013927071565495547910606205444972937016174298709556751849560355270748716228604611457462779341702115196135270846505576513278444506201349584140996084283442827612094464372941856668708630722321531923812407386290809897657533894708179967335333569241405621442852116059995889246735931671500320845231943799565288039671645613179937805728748594261110946183810822838261088349203562942066574050412598313794541217728938176361103723802604034100334969413131818663915475213632833704446468269692391104790708231589458993146614361605887802587965147653593227709766303401243331852239773926847002680842723391707569358261958028305387102696040583733753831187184147348155993351848873558326856221794047209688480925472458444386360866439947995600106946759642360873988238535379288701183301294026029702087317631177951639193082646202409778101466286778908871622527430575483141489383996190232171477125788165547458939655754487268921819259957516223198410871536222213219014831057429444471932881433682607094445177999774511721765370461543635953635367177692946877991802748546845680763483606296841662729058602991226526009805817551046189694769381046492989564015164030572106753264419345384457771858727765037220039082410347672837582646931087230840407052378639697475805881756095833422988548125243991497972236539946620995289691936666369532139854480909059933173539719824837250841425769045547121549779324246065956747349652393583668137694450138101045805883304201631550879965312780385448947956399902851887764664880394052642259267625988502507930090261765755909596222111989206024916297086296081041015740186420311238560954822817937527665706680336515465681184027645115095797113510315491287466318208518958901008137724998742061733176698349506293799006816305311612056547340991466384679817972228394078502692502096339708522039560359500601782814980950607571944483452597405206805388298749071561475860401614214167053069934607681747384491154018445512285506027610325849553254598126360023473433313933772476269457397046440517271932752199301295744179023373764538322435404148041122125708463520456152063644240934571808066355598369391139219970199692114735111762365324537575678430009329184761639008162538245472900507651412722211962338338327992554807792316699439101529904092059621656449381683872700969654436755344776843210794984891177363789492156190094500834840904096024594821086897537080599675852046834738533354960024560435348141542282862052234556031108246275573848423360755527806114009970707485864810504426233572518091166578372712268335427024810913281169510924473561099634770985946943325298584289955349992897009067345064554625972718428763295642156237873153743894742154616587753242451087714574654260833873307228105747893434877694858167778788398483962574617758525592305425387704631651278267578597172359744208339382095042068804248111343475113753917311053375659920013450001975539772211798625984370890267403835692053117003290829158799134658804804180832612139404537424062460199631533137692067043376798436711481542189358009423999555469675918428379718822018647278575074228831102360277609554867979523599182256927103969004359002439752856900018035261423847356412963142023191588561352753427160186455610128328947321066303764268545297763921806894480095852609595852012219087279464996431493050550059508392875141493425958406010650153800267524235962580738608259879385344782079774983736548065944779736319359224564845186467892958719579996699972830570517367013500676977362327635782684040005220435084686413690639927543399709920265480345476838833390800035663270095763651129205712641027466216809511815479919454926276209036123281454131315815402253578788760926982883202552272800150020113578955542184287195298155706460210943611000777570580621345967790848271823022757847700465830099185566937257127221824217496899541090455342589105301684711168442596803508350919892111143019200325104053474904243040431339691394912618839386402461308124319183756140256002783508101784343385906065817462425916166984967462144025892381589021008859166032626629163583163783479232147343769013943189557022969189067297234120884220433719975247662968118258462818956521476573085197163304825430735492447814234209220473478128602530850949697706196448163438556647271341094844255031287550579037198274561984578228087029854877564830399114844686770691069858326628894729579064441280226481851465137951198297069691969052860633174801910579923114878117560113293505331327875646549070371248338560108844422921224705519232749563853067337246841983183563844911472276616397713103055605221050364196038131038766787551688426483252067040256540626402365736833024478542700577767984474315774976076386956457797405621787378617403288875901690734749132402615019284647120805709105356313786979341603919356010816973212569456447334431628319699693875969323872205981057480600475482314423743830554060557024663408709828559092498203292403914881642246084074525818357631648551294632253621693727132829620321784397260703455094634626104826765459307223198161924892956641786983061381817581575733208378304380043007414194393941658023994773851603913249579673339031643454779175307421188132521587576291634946953555398818752271793170377258693569962848548694213843033588702165844352418418917925155036986257145331736249345415590576292048950710062432129006270071371594425834144032304923207075027602070380657733368805507544832604476883912697164859908395978053555652244230675299486089376757897170142867688125238369356235092401008083250932408698737508969230327243386599605510248978481945921658136797509408122445699141716505083594512865279647453940562162462071900572222201247591605373782241258725751101009710559321584721046199079786948704017628603142834024696007135124551152681692902080614215929378617385264016973186154569984309012756200419433676996979081722531663367723141570463616347879724362174731477261239466380736138419985838397413117416391689096522393670915558094666955923341279363584408848045892435744354440212844584958174418589166312239884669199857785438121985183322599048524244742996151826855347179609722388568603572900979896686914425212456285506744928148539055208903591297994348081439824460902318637844086004423796333504713804829050340333304173637793277360709548744849565844996164399846525463263865077946749344121740797786004990425152387098129820779042125973105955834204578852035411862903411027056181307816848843129542478592924288418280213060438020043920665653422522693821483650440507444335040735130267456698884392494393292908479792295078503935098617036259369280649774777972747076691509904115423543476374230375487000231713480481463456065918920380914387770169049671531216798329500443150322273427743715264816605488254745818801738373083566255174032764624223369191143374762818044967770869541714842692589940775101520098581536550786686907063476633077531816385075367265188249513638218931485214547383797030185235254064114692271863395251987104055213677313907396272781838251226819373810846576662362220193269761639318907105064332282679830444071299286416807755275863685440059409147800159951442227308362965526843102089292802224867603171718156929983164490003579733062151500376503835550478589504313898486068141739744300560578125073318212036507770530021743946142737654392460063837104185117700453123205347420753704503973062545764515688935917833738140141988594100706081467173975278336481749224509648604950269311714950615231524372291744510319566361369413331522160300808328203256667419703602041477387785622006978356873342458487245887964691193153126018061430019221752528769768722603871013230318361846103480862063159380648686945127439800565813799437655029049673790599039175014126724459439941748195587557057138993339738622402855253156337553940771570854392985762941697104527608488138451120499181773965480025792272265943373949501760104162662773494926919999582299797574778795386121595213703539828907817556183873884161498947185287048221161641753006546552600847550788988195176764623946953373442140541347258264709759462303507349131043265718937997838674942811805644971069981630807583972098440967830059952696500563890690407281537889448044158353218287374833677581419057071203600741569007328288803438760109148035587261911517224826727821528661946733815535929193324821457933196786543517333695484133533390237759009487053188816882693253673102394841572820021148992733090385475140482472708635005561279557668848192420414647792968999783252195852587261594192405154915017040124241889768158298751052499452387004955561279767427427595409501435028545894601111496017465551302455316490297531067822499818873063827550574642684321191692685507352545456709369262374951532801378328595566963760984813322804606638169688152173479427466327139813265436188074678638026156513883666673448428743899500594877594230364098614677131386256550547549062359229664594460706021111764457932493560840352524089352489942498713563610458621523279564482425269317527679194479018052002563428368015567934812602227475981804279735623713535792861125525111097506914649190747745355468831526606904972362132206920326839520225618026296567575416555917100515973015967965342082140461342078509492836649228523905245821021806786440253479032965118342204761167414277752797483038052245205854441821176474073073880338081618281439923724866684686421377776842147884979317217203373074243325894274163253593953835953751658700738385237883164437973266491852428893064129789355800732401416281349478253239109968403505088512085927177914820779640220802047091923191805611235693207780755900398547762644743902364330918647503142651919587140675188303673497577338333366939370127592190229619965919548887449182686781444584957725334543747269583600911449830198726921170814714034961432151889547275775543009367378149730834237100311316976931947027889831695105586823557726677320026906985299922846037010351433186194908245855965809607840970985882852865148303980563685154434867780638177419205813667823676970675959011935824297674693169690769174243257022747082425229876707848050375374112829159962322705025229195609829573480405635537321656255718643546806536335924185164981173535804504277321662867589716170349113892067874475720253260422366957662287464740177905953244015463106832649818636364854558871094883000895980469262229142978281103245710340522546495622662637308615475434756089897937466901783063220170385872673540723925261138635685528599365579387178997631067796546916576928644713077405990993709821520367047225362950036794228542976186259482140838853043706634332366417356186173537565093814794961409310916032247577133119005451550993558265650856007224654162799797140136542036020071996354020892688918138994083996257770435514407017524976244239664159179920462236713093657885385193729930494429600174119269855621355061138886844280308880040591978882649379513961041697293228414931818086728437470336997518288762831560003281407216162336498089278809247340590725456367620222627249213878266161166160463311822634746177977825707371061624857908207349251327444696289372402997687836450981638106112864480995112489076640134112247505037046698783198181069020069927120742971309686793286200413155190666681209457473605321474484035886782577099006746067966182434210975120670299394422221665703526028856203400054709507699850601169586584869090681294276216089206017761350090966209828282152091537814726332368218811627129944234481431383760740649055281520243217448878317153159564396192316602675455086340419428764878391168293499519898665869407164002597597335611182509229465283895031330248624684644056613571606664943477854152762902855895111829534647123937896162120980578743063510034322791064855436863527505051145676573113608812971916597061635596969871318044009217234575097591644602577873150252540553429179403976657334496863467073717342882049263443493766017104493527778840312212801337066730615651084418656313576172152351692054763556669450758366329774791157054346288689378464269439904892163513192358322284802214782035506640728651926657818953107200080058113412383517427069924200575918760256947870493088514547837205491063849371766421284849751664562964649841890351343849780755244349641546510266305194022995544799106345094583127886533586886387365329334980148407205535615673264785723232912386380887038423616777345500552229506827283156840050022108513950831262530415460753356439170816567957765283689414493723802758453402520509595483121217454901063042358379060801962163995861606037392182352722225858910378022801747433231908265313292172414148997268133994330127494512093946860547663285084837728149750025451090045178122566342303068070863517271160152069082853724910157781125550234088563636782140020774090437769749909166965368022732114792397155452587404807693125245916931494360833619172653196362914614137710979300447367710127581364332756009905569173864944008131924902723677744584924423273288990897459104708470451525106386157831076946966932130446892988120589975953241612843897003745907792076474389307294454984467123195360301900387072283994410053119011164549393302133439217502353305898955113404220985177757224433881522044799948873761800815764404902215726015186840441445297619040452851612647947071281286228342801033894366209235602623945568813214939795141519659133185490707424344182730943554791211499122013618103755726850044162129851832525985250258327550494807290437447084638056014090739135327491353222962339556291648349465403097116041512049929804648199459783802132696712913219175339483485512025147418322465508226430227472397653661023755008008185640651398532831822679017306200886134169526735558280531445703480411740603849933728582835552234106179089149037800101887812208065232918910099774035685161640030027992785970772222892374030800880274865042581098225983535360843348146242564054398637999824832061522631958539449501841893161586939988517024513547118326880680145669955907724770775726197175157090526781113198919136841409206002072456036820748099900732275713665557402668966514023836778356443751158625090237805337588401169360778921580937741370141276947310999771026375214566458738050943125667379657568152912369397338084908801331425886639425291665111479444786003908277558596367490168620945427765156167964681710314270698969951510901647729523451427589412419434767713992409777199868033515871924911719844542661157323493338522581577242810757010400675219562503815550547668643453492639528707971975547851358244626674328769207468110145870441153986324671221165369233207493878690869870155334902110041805941914876777567946926166325790371339287366558536112073957785514505840332771531171424670272196952825940603725054811681002831451465889075280501010486755935705297048813584112078579428428944745206090307110810492401512032413856195799524213853293433875505101627369370656722887630765874318948684739338223486657541847896261887926270863856156134606042979202568852884614847295810522864354597947812136074470322016034845922052112835252431292370696736975946190736422770086866451449952213368919613080521527052958958482251357828864841451448793759885907805819205582187494716685725390428192091623830261372266662433761708983069244039102599675470257036139447283168604267254813135096580893805467142154999850496348588362040488345061415243031543659060963072106696559482055423675328235335885058913872042822378001685531891130352019586887842776235042777393413148304426043643559784109625870022916131947385343006360163752665120909148551298955147462317084814171084885578744580168544803289494417083226375182106380479103824347594514825042071053508286746732290419456831609973829109719444789510481788608707748515539250970256746507951325715292246748499577181832236519720775456614274151334175576522663073492870915186132414335146930237384278789738806410745663373463645134637396961791414255057771997061449759285410355310739641890076581134880503782738872807154902588062649789120086917850984613618632929875865884426215415109948023762437431889699136458671147572671430349226409627298370864881182303377687486692529859935373978713710659903357455920002021829926770020040212101726759550448926605026013874891633976747769014911162815643569909816580515474200961755085183225143398237496229695325476538206371691333484400661600323014373932311017924496768543601749649796145362933967353945893974218827758458294754743212370626965092238714593585612344355990975941420936131494913261607473357951392054672744145641343823963821182445333181893068788713837840636630008447217426601741275502988655654240382949723772738469889284014433526991308297208965826389985529841956343263851470572180581878594281433384427751572357750254430957336407411157947201566360761364994727839740205831310638034294484676367591421599129694111557026434703947483379036831374220699588613699656592628376631843686093527141320122489444472009001570842141141665924240629751274035401286504646933543082826213055986964599208920273006159234967982207609920762184412927461644546404020206420263045051822517023795259893951909193396345608552974910168991084602166405575902845161639823641263458291234791479496386528424922943032753409848540654303384901292832254048127421609874477153468473434063955288168227795625556254968041637387716799952061592025937223599041796421443988214855552385985758382198994566449479257700260620815674063086336067227598270225146835816128766347751726332386598706381589443646809688325523566252749465488339514747693150522236150578514900889287263838965877389884198041119700735317766148354330750652412176346540393503203354387918005439711360216940519218911644175928372904416119146679677355879076757872495196305795570854485041224847129672577288667250803552469307605397982652812862150868368346096738535599327456004483985537741465464314579070389716185134084696349399285432550096724061804299982876407846609413317921661577569390179664613486702959337929071692476122216407012719187004959896330808696699439944341109699084843910687663623983640062550414152680547932803000322149040621723569366062377169556512595471067406704917840222989763072558603162859219544482628190913118417768092444965080756818601205228977237253831157193616119107692752661392999897391914675240965906420800810754585743881436762102069563975470952683527907305975831995909108255837466286271972514549437319353177884834853994470113832222157454901467559863921376729171618616854086761937634771905735461673084458488666842255883703385804688825590558661017482095076046325481605708972860776780479603598355685206940493982001042474021661979918432937305841531862132373530414548417216959722521659887969565606413585873420220925303181590134267286666107479379872384605057243874427281293359156190674974612019483616368286546594508704681433054506067262517744895525866258067871738299410460213506504610487327530269283970143209714229832311340610766188695500047418467223836909357887369810747007398168032779201754847943289219023542684143069561679404984280883146311655401841446763217657636198052444698855559929770790272836986044800485832427633310964990425637656156989720728585819314597472227502182766174491439607306116443375825208078864369230743023472124894559813062257673232416251655371918874717410995659875070126262128878540465643877868084799323150928880911346848519341387981774316375873955286223145891527110850329251849352497363464658642364855487360003837779353769083880793533988035646615191324011509566866087544988361063733299015346564579727988020570369824957413307237394728918797283952871335400149754937637567342988000251145453263016755339910975900785652938482684862985751119931713927968913145458541092459085834016450160613973684570017584380246866584134335683013675151353431014995590127473016441093023860006877742720926882765824716490675262218696451814589346451907409320236958832591045754103678333862331235907625945585621985603905855439510477185467788384036512518355970157199248458522452198317042431081125135335960111665928079863909166764658657452244021507827282180438439589031375300918895566582455566001939804557692590593760705832998322528629358969605267952058278985838167776450893199822333760478760845712046144775618521677039480566720845994468524558160029340666423772202004852121938639359874512889494383481182364798726602138674445501704372953982666965499601348121275471731425071567938028720724611343595043946194284146034987560788265700530365351016132416018752588759652523504954875993766860302133383967055534599578885303271075385336583973328000468600253866622386992006611088931267373402305516789517912146556863512814599480011949085316648508875238288611997700759203178615473172696016363744918811620548843798411635594173501115627284822871832304703743241505498655191837314954125429420793310937733388385524165963344164172392339314982487284296266944685014463665688768631833853848736326914979229941176038629909534697552876046365367550597093195920571064712995487537307696804832437559834833493587343225606488415139593452499288947524294295131470652963060401038977037604711738734310137750088297901718969747112727958647022596858748934121447636986450674419357685195620716684197951938037861771720394571919607396477127088073320197241387650215993479520412387626243983419169289323565548595466343252484094091429002125542348861207121135543626829212562053827952462869062581811832680512756148023850470373490872824678639887378258690916763260871136286590671187783977849978570270364872782362020537630308644589857798030296072399143529670178452237836448173872740292866278136934796344457756908222934481930664862949623862345971591028504266524275685481767220907282027206386496706250991824679877501889632827433439891144327416647922510430926990292517531797651523947790236814773795494170559347396477678661506935634752302718516069440712258731450324682913095406369184529845902184077928541545563612266521711867052593974565395767314803657697111917043735407559250860629059014425630567843542935412093125048409581477331559733052434388995813342938748344683545189178092568753785953213721176016382355221396679642179558283665981104931110874860039073774605867817507027561096781761540986627145006894060346072757545917326132756348149029244332163052013257817394284313281791932698953057327197445665723618435253853167976999261212083078226090840000657418551695403298160181294389399353772759756914399214765330425126109268233872134231318931432322799287693088071595133131492706749155175378788759076452777837294816383531195878436998468772335237068562209542198358185516840830535104503952785012232066792008157198609259207263374198125000737933668113409805531231966904094965676676487630722993647395142761058539754194326337671597868254176243620966519189826147410025196072986696748555210103749072161948215230055041460204498728841611257979937057127626100463055785033459310180464814331674572550709914082983018457134075656473345309038077554812114548877158960456984386249248781933697106383871310954043944564147135319363751702876486662456888915298180231310587488192865487295530313466640272781184262284094921345540943349960701447372786169429507595131968584395040223638100240161749662896123519850949563807609653355645153713720600197138491528595561113742140114827441148365174193530534100537331464448252573973340577953966442812581994315984653514434973836737695777659244920512699898978970833841807385965048051356947353910461212304156250413453735005273689276982452477766453536648971917946104108202425486721132869696884780065492466184231388329737762232974866023450419192049140585498055182786902100117074680602568810124295339879460230336059298672270927470036954004904663801568476705551304056501573511480395342307140381531640532921555081706296866517276083809313069182882412817047214552310540632476528790624635396741454654525327630249291306439317043829027291527076461949264589533137331126997076820224127165519925426901103567142059274551487966245377706558205353174911848118980024158538799397693504436837798818978171313215337172160705841184764585737001333635755205782060892185717437016888026941853924407226765864002003197893208231886074058624312332633707997689925538412378737258225213844926852865680984396149152668179333934919568767017731847066781408773918640101387929108368361706115302687994946363007581743298720447336802778129823433299036704602901234161929069034563227844333265384653117874453905338443748666700875910434046242775308339368293466833627127118125349920936134215534575024585637190015184143174449347426868717160847335178415355533956550619992737717515033172600978739086264228238980356301550425634490088664222793848082712963241737846408512388358778711122856415285081943048484384793962235549423706334165158111439220551276382690771681209121629275153551645786985883548308115812838825718410448565053072883157295996382212264951063744381774005010795098267058519372380544991763503592738785910108445159343086153921060493363850301130843623558754968722782446654518789800660771953837315095235255411351263769167278950765954426414316218872326969600058538771088132137448672855465153758819313035746815603220966137674130551368505942730294936049262481049329396614810073086428417759713049694219341781888509569513871003631002269387163802755510574756669648240015025161839126168256655822425792567911437569552657100472921310422167822282461683097229045185102805029147522877668245125384054206283022528808515777163079202565589260813953629947902049112913517683291124928869284407326269894742368444737735425260148281826366431268592668034113358247878840598967729419004712763104738849267852815946507567903715153792685001895546982193418881921745426167157027254265972795552359366817000770623451970044523252545845453328511791857686825782736939288076581047727061205844098815139355506483266603743841503437615149646949533540388461943967478377993891147258474931975045104058370629550886726488556863990874003724513247214061158425215839271392564381107389496905486202867778036429019734114945442011751108218628286881160037191655522490098991107483128822641815276857983585996167048724580183118707008209151216636870824142618216583515443303222199024234994407754811637472430134433827453118574178982721860010103012215986681440833238968411629263745370162580193102115532726717084044277794521397354487412960435174618716782910147654456882063590778673139726267291093791628942450262201050070807123839474308164866880957548844568495331656114549966614498690328224396319844806717278925719574353320283508024540598530477339004693135351647767053599446171296299332079787925388794610085345531544966236817737886442440226848290873484676305714013252668772416040393443751674542905476172220271474731519819883422131049442751624549361457590789544258196313434933576234900362660739181872760495129121982671890356907348562937436733201817980631525567018833939127457973245369737203337631487740500153352330981826904482492688656367713612309511576090193991650048925682203969792098775929593582062321287079177623361943517431225726609135289272485097127778831335855075586426142873954764293393057216139210802437439413171290682885484729765955618054071975625970699114150995947114548830730672494447373254570923447247423950435804801101787527706458847860483382737523485595636042285720553870694260159304973968580813387670836586397021152867415818299690302466288851200252995267492326556223864127009064673533756578469754745483341288511212374812296242309969458686075876213843496798222507865043269615106125589990520727267125195981818455860170284866392023492538966974555058913345552695874884933632938947557322724540952528919037803880674729070247553165184527056454250910610298316802238901262683209017905391351835001972358327472005498823326922760040950321064252447690677408893127634938115241505042826907278963350154710177651724736524327831212927994885055852885398710178343129829290691862732598173076444642002871809752756256731969853570573350377423203475929436919411002801974092107924257917003357759095385855360973190293306221810176297399004239890579989241945051668945180701505903911584114921347230636878687874472225223299979786520342220915711250475874639725926025657409975239386690978705960947874082003678302105275078987203780565373286738653338865569868555826303092680830283098607042722929868245839993042885354343562930998828630912981263240019738327900768165611836998705862814159625650019246638809376816720959583898292637951941724573871935300743114742517582127179246434215480697342170211110362106794254501303120547468304003836155506052403658805971934815556038594019835085270629060192630358137249151559971107798237576635943233547684812871157162047607030083327936671994234475409850526903717228032247738186013043245648987114713423360205201974744281014315114941717725656524022138234357561789447354769161472366692954841506229618742069620465916200341142351020650543870181346056457592725750900005295178076534159798089948558084631089190426043840131274501850466259678853004216741080550490618507965391128533282125248008853536475662575784685057841074526965500641619422648483952437057880329093082133183940499153878354031578410337597647522204420367939483953655990351522177152502274040422531292977752590029342107872993811011998925672449526890997961771213419890307185826962996688277051280445868445218563045725273921888925839670337591634248733718718825242348783051970621218870865341254326752221425709416274058707191932074836535985011633039249230899596717470401831791658154367934073275610409558139591000619176172874349281059293772393249790906445497081745093390823282890975942608027167612141947532621773381821218929433991645791806429957045111934860682650259519632555591983540357329526507428214651891675475761868808345288662899343393634285971408545205287333615693353333365741697762604319352191023790091473226182350950626243229866442525938717399973276632710334420747168028798939676078728683260237906587606212130981971826532488917692152326578382428080737387627725868551829603392207130448508861938320274828189642607701012656586626866554528332195615680474267450662349843302122600835390132660023060318586009603373713953511372776605762343780940695316661193165980981189983452148684996465532704004066624208246872229705962348180725920469003561042157317055175446826501520872746658472453231652624645913766466001097773570529300857458457446057839063085791833339141194032344434602722593939081664035478819755874808126659909650060124591924681915667688408396774244675270624297946311287482962124752147811172938719356132071193591284919479205568725412636100984569107827380973650617738147129061793973774978755447907757353794657914960854578729420395529508475739456514113677391631693638826665725490636854109478408305312149807084425711779297888696106301445350171393733057547874795686225201055512558399315973830621101110160345088740999413800057624975378431349865597236542321864951964271098981538850355463503706959655602641473150154330146925500429915375537785063604142789041622207853776927253230338201007263224403156062914251968729594639103308624465662368634896313837176883981278517665653457617996983328054912513266588601807168442030569720742461559605639393071362575319998348289447729788949980018403234525495981397335180821452122357164935310145367270774860619076454659583862862346751361467613109319781837789502095518768612905725820986172208136542117506215274726569629404804344361189544198808900105891144148136407750627394040741424479862543367958457078435800308890280585300907086042062738411044565645100376898478269575173162889310114137385141302578482696642006396381160874370285802363356369052706888744193885376529667576663331720215507392411700020916364480644230301460864875081359609345659589708167110212385100311358649328196557723551698269601016456337520296870213428668898060464670427696019022800682811520250289662777818007167525961321541237692378312755399773689346120513804951766798289852723001774751643883418300679275027498797904409561872535629452410436839710767389596527097383817770014815468603732220562479759582093253834536390235304162435705924098339885874943144934366960110890786702997812109606152968153337385403973630409747649078661322795685972504931573777079696830753267878800769025983383331208616923734303326509662963787475346481159584454474394511078383526061489856383660279931716417704521128355295103342920080456539836789495226456928661319540764875869525426439036908653627973370160840144786118968004158632777160396148526855037123068714672390522126641269815449786694993282096567915813673607994621649590711357190805369879598819798122848787969184829483276003449721569707277275439341385071894467221565287639613019212078009015255614925819679909883157301850599647528711935063854919480960185181426415818115253633002341960533976613574056211638482412695911692631762699326003198430331243849336628260454089369481390538448139962160533124945498766961678638886398887941404097303516112611078702716984174492630831473254965635566916850830344552619840944127278835711624497369187720610885167467396679748680980844286883366393261433204726653275508608397404857369679716852679696226751491667272944517829905786257930448713748596957804201410217085959342542152335438532145804618029585096418631377983743447643875732799362347621554361918757813580854060737508003227514264632136542753635244390385963988036832891600036446967792556190247695033315281648674583583541598844932089889447034152109880352841143210628308359322749595566842271873221028356945302480045085013411892128148289548452460194445201463560906722495012187081047109506132813378346069896968690507536126107896648676706919000357149403034934861975949473854090052272900182238649356904022427108868760390844317678392676365567558640741837009766656215420200563325826587084546196476226057500449865517567317935898855504440947240151335304245437674526924329552255436482573589251550437616972803575218071847542805102021197502287299550338425046617138535670623338743703356236194189178589055797184416773350712252285471960543403465933407054022457173515255763506217756490448769696546678046071637705333335182841618062684213234274883023071532175451113601218097457426443514962124359765499183409126756613551463497894672686685876508057600014349269406870843662694584125490727542371610962180482883913071575715043872823523248560553133758103437210188952078115320604833534042334939324676846452197320718826455518865754878867958500617616136887305011877710684763068340501526194160843141089292227557607742137331530454395326993035449549919835564991866267400889892729051395592002895165475452102687138076480178617707928334651371568871909845387442273975396037639114858764913353051717373808944547632703301722674420417549698943895091462931281110359358925404262407616822594868201906655657382340392140684321030082179707773680399824918935525687965444352574309169222662001236249045693438895101186386243591835008390447431902261847809613121420417834713284822792681974597367477258338594196816265344315211376807893929073523237628639374455937625623505314843239625474315818993900897603050713244515074497816132404507556981736231851435540403567066512757986238890489005618364674454555847695283576762089472388203260358628167747879034593667040094290287516122367993415841529359301649979480798170089244155648144267476298937474011948431575906220797670813194395625255560739976139866683711157129573051445107389257759354578217442068143852634264892341815016728246884587222072227427474078609668046619018701346277875806848008231721037310840017513567897006530649868268381293929642252266600248068941938695136523874875514612532589787420456559088376722043537116171655787838278020560734514625780709118415487818489959873304615034974493535672431396536704497751596151458264241281054788820197155912773630665655769908895889917912819773248613912727323924145344030970675918198189627951826365411706795321259569804227403723241991262584003567189708186663455061370983195685349022247311686892669484458272012270603263742103732797262160645640908683839418605406901767460860277097842368365540049355551884392933017352246309909492482449545153291226352742080958077490257212853878557640940912260191267939188643682667090859905128884630051269634427953988710305795396849663305534994749381815097219323301642504921208245621781007333508083357043858963336611910850989150374351805254844834308461777648539390035607461887927568731284313630546606443413256971948196542528746682432713603613599505560882427402797294068817969080554866575611448547358988290800383626322202698930812331141420982580128738073053087070652926103664698261043095545677501012793728063956207780531255572131325315678617606318630985537688546708271698946501099384752156853296141802634965322820331059941109996079194913178974047252206729180899002015533807914788251467275375944454992859217702307526102235304076228783848257715072393797559612091690604660085682868271977645760641938600057453112537089090681136961261038886511729563028647031085342605499903699222903751775813212743061843633713687581940350916617332304384451131462722882342496321428171899212602145969885924353301209167998422107905427607512270926660210008152977917077030571155436522015484294762741500718996438291380009138699993650899023849715283803894525194685651335044163711088667900813973271665178348131917461103926276808551345886426938248735041034344724762438976622718944420842328329712362965185544785839662918831488917901179077079073360312133105576573162501125044547971549213348982261395745249729203301353448658809017774731705488915073489261990610202326996213383494927447023858159281616121023964817096969729251487827436077136183669406450720380831142519718732995800633408224505848678618896725459101832405562726112466753668292504948346687326400160458704881780965070811330628024064880159706790940830818833446696777991879180852979756699335878804344338556234162317883666431367511429132705529488991335836545811928749063189738812036410917025978890718995377505280559798092236279417961770563862420081714399537208406847543628504171818217639152991861017265673903996223060017318192881666146343371193627451849098268596765117096335907344806911447993965203787128956864071769901283032409000840965988948729958369452395833144516247487456615497547916090932347503360816447845188772454727986412940527232177047785252516819492039514184358539547866554922829402540431220740293024524565002330466554191099186244231626495814235765207697483002675710214657996844542064869801767406131918746544734657424445849854244636574888969944286267750136063125862329265155967471755538049297148109128966545324407858668597496787118554226815528598377820934638000846067338336555680954377839641209167767532996689749103761451082351680278321012049260471482296330092011843979316543608995803161338874860520641995184140746136426981517503221620417172524427456215198793479380940900761647702196533262315634549666036404855181478909193019775844655265723736682502324753511396878647183838463075313262658837885532381195035568106772912945672166999761707553450241326636553692429079425821671733711301360370402118741812389059374697122633838487619436767542638285574856484518129570579282816994645415531768353418684939320858160895465426193367527809219353118965398447260664942643081502426824202123295050601100249845134284243208319738247433086801437501857333034529450050892040373589621070416927490592827156590045693486629545012663395192429041277379971808496100891089272091879692778257617628803125732963483736773333953576765718627105690556176055652895814342833787741354750037410158939614368177533453057630705631176026904708045185712906851018515274634721659972249146881169676704752576988982058181218534738856579144071112869536378575112839397817403467101372935092157014204387624222427826444771736530730971896616047666299950584449326653879700239018091016446257976537871522355721119305942653383886465337990184639368585344490854842537205660655123324494952750587514045844437111742048066223415634166629654826719354434994553755262489905333997419210963684416192630403162624846651852521613522554980290681088753252438356766684932779332077738343432046816963426632255846512333794177491219330289332554179015069708826303571558130412702931730969090138540335926061608879726069952215732255468925206625955206615576396561327201336077980796036423623372566942738951359853094747559722827833276012987598953142061907100784365008229109661349998571188419789178025103290043504617403341233400508525252851220852721377951695860402209497416604350989222057575524661501064933273185027434230906043774225791582674666838187975497767762398024336627434920900720991739798171981519579615581131227304794474217015304365197242137530276486758969760024738386202467712345841915240383534717001817439942622790767975593052540090258203823910646058414145127047716310990884101979683754791931588234756247437091799876584721319432681930840767810797002527555632440589351075720568975984662523861471055842467554250644084608078419930671109592059950638494604939294180164613417798615481240297862585444990875742043555080815480387687784475709808156876696040219334658952207921662892918103027959790723926868014826698612150702074649729904316944028413679605284353690869027635798414869507842201781022827935615564561513955745422804484441302178946897543364706785158900608093647159803278623228153076420458557055160048494818070470968869418111963594284989782639487286751515956593628286504463494337954966720989819114963004259397584747012660665942340231178223571890671681891796368789685197593821601628958823107974778128466202600133253747941500489458509548209622108119127601310777070552063118511061873433705176795916984823651780341046874707282042752038569116802233846376868056108730121920912203913966263810946555296131437328133261553883572036557483639449692317629811670466859442888206250808050986567881997635279399069536392163788304179876078199178735392095625645148727795468388148218350137945102068174710129885218988932793072831289053439493316070047305842531899411689637396479813424513984998137928549041876948708561712656888373035534858611992018179268149622869548653969689533192202908719728777634020262901906043308705590073658204062467991316619615309056758783738599946884095187036858516801394318920833447865180245690635205314737449489183082402028651022549037319291845933451264331729112327588084268689770388640338915248990295306738217783408487168381227006216782397890241085012304727051340886248052177881980544295090658755534091265130693933707903838404533481556743357416752584730273456829783937525683262116333894390096552286223836254281776786860733226914006983424427267417638623244892667588912144266684622073321516677979032119193392789552675236665170731896286148614244271754436831718772282449499909588244510012671591249327780944488842283469657274728109074032631528524832602083477114228229478662595597046574122494073916672444693636252296357283643836870276891452069456771561374499042347290032818492609090720418190007186667020964017106195633986297560333201644514195589498474778777352473878789154467282385318935063370035000379915261590470194946394554466667251170773169793489926954113250371447580454442262840086253051883591677963062788896123468182770825932664188724748855950976086621728824013881061067447974923525288896109093882578854125923483134388424799564440377169570886300283472134526998644647435319128258525828956996200915520108907153738821162860336651134572569895544926598032322431446367796949619882830688119909671187727928941871050071746431524785469096502901811197100723903719819318737213115807862399807839513441789806105684561480813046051875262122453509462905190091432599888032613687305950906105982275324982506071674409815018042488889741315845153472687311088323168137777719684213640774364142417469969423200329475945721210531224187781965000620480667619989727341035271185369052082558178614045423977444229661704092360589701907057022117560966048772937664756844444593576073535607290688266325226660380438488633458266266727217995141757144159375381522145901908028171813616589076836547071041359625365109823690629499810909858692557016159021245003843682750223072554069224489845854020946173994587302269565645952421757674083544838094441335718176331709594112261243134517029581846313226968305237673181431482643536758620415627856703452926540001297588610189111418581875308761625449238341133850642582914621291108055996588110504875634500779315271578804865812019249548173754597716176617679141822194662602474103209715691457508640144447667183068994169943801656596745235750243231408210277108745171255873360608410442522036745967108122728389459879386580262120977569497548170760866144598400851504272067343613483241880434668632063883387064067428418213939256227466624559289782961726501763113022785537037773856403077333570355886611255946266753356641122811505831840446265295919780691945803666141323299997775753993839397055099895817588672422576410833565742937983526462441884821755884660374256975872441804282549653342923720812600770356608699553520164698169167226078105651349832436552664922513976967182041878313527388247775503581084901087932278877034413116282584047114438267494361107492697810397778368991930870664668520262907954675249820987667393993366558980175837354277690517025052855602274716435632220638872095916296195324656451958269707093224590862046658180973043667878534382183871905541813356528171445778854576187840023757887051166607124314678766877204037787540598603197080824566199729548574486237488723447852556578957002141365433933105209581500159945150080591042714372350629968092223771934154415961451573624415812319389588722885640198041826214600774771175004593790253575210759455819019859787916071258090422841202824856890877874439477269129747571848220504841335974946879317658300101075309105616548109172906577371577443691164475265577288421584978329277794155309655292211436431882003925434601144770217480761220793606675851331948210082567272979625649558289685259128221075173634060789378801634961893482982055969122711984886040537190631626112238069692205281304552975639920373067920369744750304450234851642475502237391815136909604155641153142098647753477446078328962577637508353507516761535129220060828292397995488195560160064647312030443440203668470197519025730492583792072466860765770038226757414151786029749133675941655637867365035355537224426699889157581315323138297402536321075848527381951743495390403814734364452962521472856119721703003710634750367687585338408589572084233154155020092282813606702899134237486305503230655212390640241743990718957756202736186121381302019111867496416299124320031040807675832854168314752800653241204642386145799597117160221843955754552436637669411696444790486122073439580920273521764304982776669680127613440732034795619409184482785238924224562337972818824382324080346685093236286027215081368669473057060757721205753100713331469204823444337997006697672034361797305315956051284153594041612988421904866571338541354935985114709289509762072195942433319174549435580147103434785431781843257075278012546924687180414895145368212848873640103883864417238953203519423170885781605832444655300776215951621231127486844634611437559638069855049865615967505098849393468981382342765617259770691838441411409111272184075517467886953485887765406099793593667327907420797032394946954444384017507789497134049612928968976097161888420505491856995335588091240482187381804419862165262030508035209102238621010226235015424953846811238519359831854773512749768729183755004554169060320661975220318159190921755015243095659104637031539952474254896357649606690581495217688527006919039150758217679238830577917405498045685043860769135722796564276664201117054226243366408750417215824115110364729346068017364948341480679139126700447041059834787380049688861352261305461028640516423097447351750347195748192192249355265468791916088497651225240352217846915897941521326603755562634841386365873711148260798824912886086989462115601671145341106781438343837588521513242852133765403430682562156212147407280593768013233621320417611027575769785474795112431453720903885698690051527203844172758224047722242768903754816697042631198111555979700978784991621670945730896672683814489777102226549004105740761234717666374165957002452849874573785158190933805885455377625430444540014935782415350688050922482940373303830630067755176218199645827917666213354281688083497796856289203594091535980781295049095315574839118658222698897309751345583554458428745508202703369676298273070093395280600893422107939987275161859731248619562630422275087104254351491393484691232991143831743750330661959741366440749486661806823389737416981626148753182327613249091654178110897644143159307710021031930769543424864179381579218891462596084061032696194866835171798163780756994373734018017983494575485458896106929591401242053827539016250046884651676736837329782775601717674521425433726333828164388868248881623886848192730716673236555310520128630375940858503863943585295153657121725764270258233422729719448695720512683176907958068513455991093174703234994307069794939042786874164678184325065154687274194824107998644352110719051473588994197962940075801523782049471872065063460820142805750698558129501367647599887396600068948684292984187147415304549092093699028977459816146454827882841623805650066972248650822320909889094813055435691188068605427685113394790767343320567272875167627099787286799885096449430149447252295198977173933692233865197887180806317396220803215305161197105504594942983965112736578755788691007966708625209411091830813954545483890177247204182205710397645972827328244148772440617579113094799383625656492982903706214929595866541371982547871315362516398420484201936316117812725327631477717987510546255230279736966647253848450133379595747232014957941877994123024488657104890002448554289595239104177890804105328135641527335751484216343132824684369041588777047410546713520457528911405270829348236926170265481609557281595921466644072814810698435198236716424819735306030064219384159783815943289934282286329615820523254679447293075479922714095175412767591729298336700270011256403396120134105246325339702173316210566663898689045687060716465306158575288457392894403169821438511044333729420913460505843977884552467900068539428387208468240916043714117316421576393015296445965567534871525238023191398794757138275469586013026223608422371792718064814758540626745056985354343737253462867721431808468922368516994752742947525431746841373546235027595269684858314146333495437170961175480860436063432077481870397923325021984344346247147729066055425144915150331903329010747699240233345893847831610807251084557402037528528712789477322103145500893499212948827887688672456488786876656072157387875166585000435787715216939724577206047561089461416013632749655178038050798239497753678621699827964528641741010108334780417431300202160682565370551356795782594300295787970364344941186748467578815935754427867100265376107631096438953422265620708241097336438508689430653417053269549022904893095699665955963443933075139022361480394724565977050642106216036383172882322583569014505676222539002151060591261334801191895948234370471278636817646794253741150324273763972099902840301054760094056781099146793378964332512714984705029144431139215096300595922095214852573926213517603503957547942327661759399998412176439014109629379260216698706554834669044391268234129219780258321355110744854852426329069741929164099162151028175171408427101608114849459023622917193498304857245393575070134641588235186093304698877201133079817127607981973817205734099958689837570221863029468799202869603059690085576137101105790039466054028482972111304706061197435396392161194245807269274678095932243128698166415886676974439905898658182970723497597098359236216787715726069001593321846824480325673206231888818459111543722469669193519951433577439340024864204184731484895417584509824084226033419551259541756738982043660650999289754174515104644768915492563420422607109100069562153502012480776193391660618887864862164105123378434043113997242704029277325119927771716164564715956991335398277315839942637418274857209608885168335361052247050027304846104984719354431943146848208951883319319076288893115016340868046608508424622830933951591965587496086550262030667743801599688585260876252680143404904485701457142780133189219044785979259647921348887019576330731496807516716887284940877572330536668535635157183495583623831881749835293040762528193175757274473547574405519667520401914554145948386386148930800890215496690942136760394520629643371035638650159808788377732840720162806487854895286882739154882174834031177602725585357852319854834293689615772461077120743272090633797523661686822308437430162142985215624619512003468139104820771531550824114999738580743721245168112054850420559797603882411958574177735802752003812595070921973136741043265725637347580854992554345516783928551520600582426005225034594807907444235063500954975605226711017011164296785530097829052143931157600839362798078773534806634762014974959280918267311280139334752696977952615012282361441019960375418052948061247710107418913602250619618436955573334780112088978852796831948902848421936650748388523188811916117558332974154316161944780257482557197793499893050985190443123748584430435281263074157314904841992952791306889928902238670488832340415832329848010558214459502005896225998227758678650949278832973440320754923197798895483869315746562668976859449688697610188075111585313382185276565333440612349942469997146161465498774588573830734842046322676714748851163786861589916207265793152931376874971701817131075384912838348598152099412061010044056778426663493156841475929572154544312532502797986961903078467750592714462825439468694060076939587878165974986330227701942781170552563505540829595115431010941151844059158307648579744008061023271154408912062538275367900340419325635146658156808315550390806266982046253339950654252086337980099456976943341318832246178455894075214410783302812681593801018376965464474870080794903023704708931824736644666412844057833006819629176929753680845784306477073171930055693163264012423399496340263685715381236508080642299401685968484172125672015748610964658657006238271090069846479564855122667549457686854334025004046537736546159382193510650516689519376717049914450014133332325664332688826725095857340676369234654716460713112525391675768587496752112195683995055507006654539759317917493554261795916746418438100666678901941131708842256201050007182294031064116085531672895469881789804951743252308447609432579914903017016940749326191157413653917055917214915893137095435719513009047533897460554789400425724326005020241192500423748297651827809625016861141116339135368390713355143913151190021949935218172059145017335343274387504208528016794782144159975212242409794882955281130867065997952282151979227091356965788059066041074754087581184312382218902556232353883948048864799637999603904357605277559401826535469698128356122791432944647967237481088276905052020439456608552247125783826865232371244145779819641823849255255444166323034114488830828528305954703620722249525060930431035082982907693375218838324723255062716009192205643117271548823719464323215967381899085865480251699698939420104846570383981309436735846084851692229171492902413526330233158232003622867443527270413920528176133218344514899819582493166507060874819781393366806445458925262526077267685394712710549328609022522774006361896825019390776738539782554699793898819032724195057331652635140454702373838406490643136804455150855385112984947779817749304603507433936285496365680530771268469184193899433678300481762841713245797143427026501426320670698595204689798170620355823576760213822427748317331401543089030398817462398102367988105116908616356368205395933718885390583929835163917461114412144329704904297120820528025203361245843445792972577150086385342188624484416126441158186911304995230655851627395536651538598904553031037669145072061753196970518610045000034888999277398618612333153746459747673700237742246424928367998160036887649759710329971823235019913112222422945870583519620794084709973922592726348845580919602705436619336187936787226346595040200882753464866115563909996256643817221478657712636896754238396194577562002137320224158209855612165807436469266732488378205483593815238629048663571545285262631077910900826606411554911369064609778698736831450873810433941857391966847573207235066879268243507757499453413801967160876454361639545124922645736578551654996671982455493394952402521663393995018234095971651921431348780476726976835226435306655430292866822605320110949546142533357909016681499384189203641931229629156396680166131433395247887501256682488460357742449329451768601982368898807872345447288918812142180053070822969741673248173118002292853536705320143058865773258485838051452983309681695825788693500622803417018729039195872418499471505196534001358603397785296359377248242496440034919422276190586955120827852941079954161986740756819226044980212556955826677200379864997043364782670193147057206358546404391882575150819258278573184247454367761634561918144783890896019575186541621876168311722127373849262534142721782837975819654155696069947185597125289723048400617058077042965323633864650852512981079144328453187120710569196035864867273442922936379107147495654748837021849179574079609071802102197544625093672317371240145717832214904379670569686279864689981431926184449461873725433197400395980438905155516072123255473298334841902761147936416338510784123829560057862788875865522855791535785079139128008604173528733172739802115254639181951442915414139664990497827499648456357144707834217386845238550320794589837617640222502239478431283785473043326656999072422548033682617430729067738376970574444444931861689147819576751856622618764388145605026119510657256750976343780280714234083077781267204619752903772276783132785462361197337752817956864329973432269714296924408663316615091536935664460134311645059018001109239897924819891999908815183677302954494178668257153038402910786962928752583414601581966999860508850964502250626242001448881375178566139062297598798808050257393497688040502113473941580711950033538825305186168826541107455909398503335967902028477299528725835723714270611100068462708083534628781578097546479680417360758372366721581574838100385196730992151629216238428012483320067633624828476311815688652160321073281756033566794875031570913922651716080454987146432350570587912208349183158895730635468476614896076218360255703520156434432473381533676468560233510192690890328749755485192639099229347948074133702012162413651919871544586883702059825841237140704993428095485261058416108455821745863946718146614696930819475585243495539161265408507097128867999797010949274255291862945838544670713106318934474291287136070690999495090017276824849378812294234008756673228487609634406100834884663350973494372213932625297068743496278143737186118299061289382271592931591911227162161609775132669778440014002210008293684975669195765076657720564080601944883281711202116076829118449678944554052222272687095745329006953790398924922121672477321273995841211681940192065218930114715981538493620319248094718539685374195518055732808971833688162434839558106753625588346145594004246817792942992554399130241305082258780471216306425152823062277818768848599339788593435916673472847704788644200254665096736188451035804189901902718494958251885505322656541394536445124358891440085743176095718260569127141435686306684508716192969546516836252976008642287061044988729605620208639290393284247397898619284187128739868159779771812642321586905626165058684126489085842579000533940573524497782503882612567775238440317998156908693273166321678483264862469929443737207748843064474888228288617192114755220404842554924491274701006618591396132030908991352633767597873773511225492009739184902841906111305764188486357429608281430859096164027795235627425831942528147857437782718503004877662515908318693971737207693739771953941936325620642736952882605774666813999896746107840584974808004516413078016305888554099304751892153554426486710312988564136886233667649340485462664432870709791084026188741093173526736828851505364644370566694631253605576022364915676191909140835071783921960271834541051822726542990825313410038217151853091025783395745430925565479282360151792962534359257564486372127649582892697975793822351825574438215462233178754490938990584264315729662287016086407324303357973952350580096036371486556808076672688577386245457208936474197544752335699519217089908537508960033250115215574227137427163127157530979697407793928323967331970708616196436261438331771147217689759559437641782934010224900248196172434149437228553482587557271621589963742010124615221694375257049173235493403293988879305753056135133210860238308757675352549015584044063914180408015702888414690239816260247110835802604195576683286503297332158056710723756156697078590893469162831393615933168679875746266440449894334070669303349545648333513989344036397619717337365034801340891356752670172963932452768542113855698473174854530806786690700243881765839834732556626444538490965030944017311388018789340451551109607644044768308536781440355721477678621252276865198305963319545962921256996427193763789341718058663535322392271046378735762759462752869549012177927167690832463571107680659941370665455192677807991939473801335117167460231378681328717804840577762251349888621918904758625370292822157162382283240263190378941736348762955511988993117783944757890923094378080187430966211333135332584650008200620296743409144530501620940365522455317541457024208101810867950885003626719111976696022136711137085185230601275026900486267804047486341259629879262123163111408357314799651695880848048413073327072384523832543777710201589700067702583546099406770400047390830440025801660507004784949963196782210263462085824578783286230734781482163992903304124039170579368100207569297161706359160059376284723976706813343249257489913844512870243843358400563041142712755818691897141613904508437430038316621703789192580377032946759417237227434284370131331527284106820136924316900527935171996230829188980129157284026575795864410603148251640355222860282398898622080698457719523174119621577195966021936039955195523672410987708203798043541903777486900379216481032010758923423913814236790526454544956358814903463274148386628151100709742335335041287639074065465125816950679366941410674015659308012240226189285619252741174692737414177865740255915675411269787165639155481561929238894787581599279066555481547920951041376703092997487745431892674116842877713830748634503808056985358246330118541398778999299845555323677279718721273835954547269631802320543158181021204905024976308293721764668699417732467843837909450724597092671438380011442171536885030075825485977418452395555703143080789522557693018789675422837054090010538754700957426918219191475439840840269159964159024794578569875321986061664994141250228070976518656856897708859830772274053247288650592837806568302898341125569245890855085891243551778583769717704206975236676378802744384946607789627495618452897098265998710095714006910230348528865085920648186311402090492643367813904224806687345516109878184443758679457334704796259845853536433855548161581746378845128716787054154655009885738964779777521507707289976621094044167491614275492014125078566153072911758790687455433251153435444307879554443338349471060085525239702495627405304453155216409662845866124518819128162690906213975203413607019463003835286131775267955949745162564395719890360667676482544279881028834391765268139300953006234132473014533709405281545331640448777694972722016019786668249535758917571634449164582736570815610677581072854419417725376671020797456665476659332131172855531804150790483913984567970178233399809560227456304566703237476895730592464260627929492757564769980061687684242670326918181071143626316772146024064068252690650621553408161240922190956094727569627269437595601523186615330012152337752128219933033343405161821391948371982439648579426687108017081249319130990538446135135298667070802756307091138215992430190946909443040212714785891696742907700619212823549579808172780998232952986811807302036997270557100387064013118956774284257778926200550288573832840434849080735224174170835995235695151560224162663361507193298918831700666044513924248696716813736936003734445927976020736104230059477172351530684989583331237406441885905997363052181002315746070074258176492658473102537956624782520063862423559587461402627359470986715252536736533305365436447118156363574179379192842347514908029972002780527420937106970423933003352817732314671561454382169562685592198394081071813551638802759014723630611950119388829973466539401280965788391211786334404649393340017613274530271017437728479159692474185244127887684382011778909890223850920352544109026621983117790836239027741665097111819737073172189764614466610118217701115597292652482814959599729650840218447641716426037754274954852638090180897668497463916421321071410697912417969086645520449143975239199079849808371251273460052110114534504495607670008653343997034038880516721999827663775229237030350014056582949477132345697773171938109071367099160588751005176932360463513720772438348950032413174520880772702507831615497517312595623498357253846857357594373575179969327365544007665712669402065777159328811319105831549373750447637497561831509081280825569566431879094055122329310996417768210583819789828491064504447657617301585815351935627205419350166966714188427119746273815760377136600408286305802229022746219402425236091114350827369098732768559459292853091773577765183767106297278922673533764267544078281422371606506184343324593739385787068516305980613340901228260430992680286465560161174217693541111072910355341935867940324810391632672497995470061270176400807271317110944629668848253388683342360604358652196434032031462970755290591251264006770910613058011680930341180751392185998190695243526651395099387675607508031781836706590206806456351434448090697743053052103110998422724067853748959068936785874325392209383070900734496712422901600526135289467868025583650932613483839011872483930831311658130366407368876265329064258177078559289959377197799212756816052161169833686766292799483716277539003987719560067441343755713496593753911952523731377624988417426772696359170321653102109053909253040249122170856775961338339134133008745215236170609984983661886671160258656992458276811680193105404287414016940492218887433064461993239840476691425981187505218318169317937283900855216336648118941321248712901131343458323625548914932986151522013738178141500963336205793586088069804275548143403329545872282738260784982265869688289517826617168879544305158358764376368672625861130819593321685959389557394582202620561313641323327509375130134881182884281222491126789444321603937174961351006061344788006167216116399137063068496388895377034112615918364343738312598098225565083396862819200323221008101796022112844681660825352050885455330690402062547456246492229620135700606687503129029236807421402780164665700572033761185345986893780537726775979315601487588356071863774434933999093337584726611430432440906775715121764333469669519734406866489619500145666140101712926147347289905909411204987055498450325570083665803369387475592349163212664349583696781149510837164903839750836079142580555608429162837358405427970454969952349127956899757156483619288637573919556391869810849124928085589613620392538581796382854610905522599127646562896917831585516362392114712341405781453369828926029470883075488528358293209235236857321376152505881104661840650904511846776991687839197372631892045252713251844961676782858324298259168644809135492815681054309786941988573190830661532227842628905086416879575842503539607923205461237237352793211248727847093848320230362552336630562540951426084258961172442269772668497876954361613014350040568387537829298039656250205945131271052401910898565541080189929933675526925019625794429604438962488475221094485029212938738670905410915460611536672925849352772311363106078339185226674357978520154732965886899649218780405890281180936090448704563095793578667323840050198471294501628407765054205542847613361972747220083117433699133205404658567017764295438701013444763982975106082173390664727301529468569219803202574863812262618502948649674755553113219452907338526868076307342291235891105797012764833664199045149337059773542731979247862015942008665108657539179601512018108650418197411173264205069040438581983171849590191615461694570123699020157195094328863729209465886993898809466787184980169284363602397812237932094898146954466759314848670275965408795691855568232949093443489672872015059823592005761993667568631517826603066228930689037987870065099844198098853841133567731944513936239790764500525869754877965464521122029148397612933788162393645711075881433017184451903798829041378389831503535318244510641579977063446493237960584218233375486700807606212434159880506890146931284545576492418671074870767539557303084557573237695797840693029071036575188860987735424050614875813051431735979601795392329759598949977841224858241197972681785942762226623755977637386171655027193230929200277349479268778179265932521635526544331880347204221722075665288824775982269946938723458847772443454112998877101275627893946191397657894249199801185803135924378562645839730053588838769168329721603716227600636714349770333584266168281242200499078498278323659944027868035323991038157585620931164995232886560832641522046459890095945681046814225207871789877270736202599861575230845453416464810959442924884329509808580086922431901780089553865510727016024204411268336202407049569151257594492072974546483456954180975175277850677592901330148334004053164055573061909495711227874672133711932541663039288017151981411213205953734412152835597995103130534097644138058158552083707590252705015212391943842279788042805133748493694748691667339048382245380249800371301937784856353242332305939078130959360493624999753836452920170856042981663079369518271292296281331792758961545364986006635891904382554176708044143608388766392733471630318428862742542540650581569438075329578894953210705354025573807784698199943404560862600139377202648852571903656882638962485936374084758453873644072259164213320581789912897698699630734359508471409552673531933923593671964927563326537962034221334368007666573184861835687238507570749674107131444586644999081994238612762685362103405520178151513136276390023215075370626102967461325470802503480654331214729004397378824226976493201928186757081753478635001327968157942797896920510907070426756456465010187420147044049003008896695894321351123787176111930074394182330348978764878732432104405185313828822084768749501748499111332825035319059778639273570850089746977959489314182001233258989263493817476798057090413814320288384895331435666906343865130223222131330186167817248791696919640903318539623462067757809023468381347169252913982956500827036363761707880927083407815409524759315720312856992056205211190961371538086861590128877858200654318787602974505616291019891743941623838434991800612837459471192644130277428865669011632030484691840958855531775342172360616685494495033306066256947447728351668291081437305383864071654660362564857327076692024215465192262259713088833443172403218237931449182084505564203607900181811259267651573014626435496837767712009828315344640163017343105781585974445570789378849913004678335654876776733320697686509237771866881268658745260439225273627678209276225944417411863301468753326085100124794503441380380378560564653614937808563596919575960437397609400273002624077084069830109221449385950810411851269732981242672699102557134598494719571455171848586839272692256841942597385069803808321675863648870299664212868667609068648349798075552568789899992579945707385126163040777776322954157799362586433547379474710267724193675073980540825532309992809307505137309004051156908174996931372081257859922289269993615251613760977798954092314754987760321128631605313293712309491446683720163750497092221405183890365861015450885469734013431188632714219535259213061579773726913080572338250495085094103714141294216093673663026507506997990021931420022361769933734151841280534182322190220673199232922484750163705400131354291445607253380864075390039132631070161100593305026807441417786356648256395330531977210028487826744457021187911668123035553392880649318547638844621026317305529087798772719878087694219668227481672131942238313673656854929575461421455557224370532726903716248299133254108814370191119779275918818234143112873357888710406637358045378570210670190890653569190858687005407042927987192536986706655950473778904967885904670012877163111158856192010997513600874298725453412946821980835876004936937448177037913682919203838932834285518251759940715091573731855167615158142436732331901635388179354327208221155888413744613865559280456617327167237670592983092391978169003327067228092824763922689946161150808129339895977209013769383076779848992196940260203251322992127230950604473080331421919380233589153610794731743363012905332044639247129011330026952918193363850792484073369542641474545618809601499871475682986519202282585260576342161567830319510499059192671444009932977421441198481751860652158969501559120792817326779234510174073063134664345567632357570182585658573001866969945327930180769944051265341757113335035203505084154207359900468780094755943599420909217627930131694479792877890564095407143771618116154060683038662851845991464770464583912135925170112741539097651645235849106196746795375868393272339195560227313440675343859633966852807364162822705224321538658312437541320120801743421765488165005468570832387512503379580900778017322954143881467339832696919127037944404906708752994075201260767442170978807678026697135315623904167287632283462975790956680555195339053790546710173525116508458303235061610702054067393230812165164718098316605785713839897851776259877074833029394356975380543574498063360633249399161411888706791262170082253963353317796289072030572981243761370288809449777600979133170829266489860953493348336478170912326110994548131529194688387096957375155806295022465917159377863109613891139656515093123093328456971706480781371495939556051413518595531843412034965200207658001251470214634282380665754473352530753648587939606632859490451895033672126423929180555305389812395815056993247173324964057664361332778616349763380032459567591591181887703464939160169771416552941364953104382899640072082493087006558723619860477895011096514555218774005518514716141540936907525449027575348018080066008317159103207132238991755697818534948694813233242982145004350561586882912490541750541410825828820721392698970586320554713026436307538921216563014933417608163360989530895670195185944250156223772800999621842099160836867029826843848234793653016685149170741024702432215137089846341544327019116494372752801578915890668716777519094977242737028482328298282496275609318577368627116968782086629201977728945918119472486756581470186386371309205498135951839374823018612830762599640461652492929160478036269694282060877380467453671228519149074275111816418568595805974357109987757025120337230250232493452760003857553642022509253432897486699583824032120640050942283733244244758065556402829334417841685501442084474914142288259253129005342056683459141396511319237423458846375368801104019697202280646412204802848692935734557979496815586756592275267534129581658446212182560839258531173268518898338519225528611047177966292027605286285033431494376520253757122416624493128281844663008519951992637270600442157031036514053882798609386003996231662282917087219999364701106031298786519632149482974495936072764305889549151879943562227421757437335053014845263800754393687499616685824100345388402714158507173920253064473004980829732560895915508976269356277779396188147795187576105634730225196681547742128347216636724739364464488703139057324511748810837064111768400994857784683753572238057041867363029847016755960356988669330932343232686261009362844091142512318164829901681564403881307868827808087904632627900714866371342209506112750707649571928201492475098788893196717721440666781462710750311962724424563425998434040948231116766727571673466746327779331722210885613511554314384829150671043863790358203914381125038375265752787519322521618505984820350414288685595546528664611208664272128940477551295375407133566600420276806574510204306712621867566465480748239598051977219435492413604216409484155115894570565636944798433115170925759316613532601580578663486420876373925653979329805717576281059937938884149362123392587711755136088921169498329839915291748283128585254287372348132665535558240724699675007044976855193818361252997652735918060886880232363895014376444956730893900692048013337649647344211403137326391715749270118760578832235907358277172210066197620270591980790479729092341517759747625783702123427179707669619851845820866739843421470594518704348292557754392745942677402633971592552890676254864008824524237405466588476439729383680476139972002299366381658375215057352965882360286644333133910196681641401899906752493955072193636924449747936507294558548410020531979047387424265251838572150464704026593644166663411602343432893234563479965263530470195684936967621273723722851130252192490584031077342243337222843255187075995791975150208083039233862913660659373752934532569419505759583332894254672106288348306117697957995890663541488477694558045253718384900250760103841749974927593650906647130189050068796325632911576505177847869778312746225983387734493522207885920300473109484267575592018008559530363979395531137933526371226724203237117878519227552413071506108704974697285072977651743075832043953340967859018693090761396175038161109016043360275671718682691416944168243407248955238223991443664310302622773758669187778272602796168598636606008782953488774700639229233627273211775016650967155854968853262657533264201687719002625428210253666570058338932923667731884745734271519744029031641540175925062452953351591979650166355971890500129797243753957423826430743434808274508159452548208966409942819931980832965318488349956810231888044299312131927401199193891602111766901747766211338523739453017645098453419077349373713795558733865766263677732864809745502038603037532441504542699432930097396559266139761155465211496365391883106615021755819105042254721331979047158556512545007594457977981239696014244365282035542162650032259178794629125505017077958093140983048466811735041768619946111502460908664830210060809324905298164452038062086071248151814955166862099174719691513745229215413643606873306611203539368653557735808831522191723237333592084557443141860714459429084110122974782269812335156653607397643617745168183125147549479255425992188123053880603071337914682268485039193490629412713267336209109538012721228059545077475775343366579935582365579679425574762144946351272479610519121844861276973263168082589958589208599080039224666047015824892277901158662155857771385765157067309225387276531281461748350685973605383878667417479520266772142852792324853441262269827619930417032396182571450128883791674128191390276455846625997800340848746870706337155440326887319304145695135429845134511859556240546068652101616439078121386042735617661059961790893824785116787382958640922746378520386000201510338637300552259513922864655579612428387097252581685636299354824184033253640378616564275357781720253712944614665118189172879372815947550715383962370180803720448828877052075050063641055077332287432939578772254732325690415417729048415893110541775285742524509710543678797370678780809877211184415162252263321400138843396552765666489692073573742595149835829566481641400739105639980142080954853719810715299217625061516354574975493390084155483684271625657315649984857292203788841124276756938917767052809638470213152220540832029871192578497963490378850217347373213342276007107167754857980729308826962667203838204213282844909979898262785992831256447868264912634537800738492614364460989239272521620396852349775572384638042160782265415399291838757702561356709004300622753751902348897511345952330138465058739582842219370964462128745443197183395142210916690253512123116791184426860506688409954930762358453121429042818380220461263818294292394765121025854230058058998809343151560319211722768115778880875284656809691685538245596258438259844536164515708487012964736023937110649396426784219404528103923802913852958002060080416944686699973164486216633787758917019442451451638643252994830650621989648232364964520140461534788100155876571156669388827615832841947206972141117662687356563419709670998219850257851057893963277314859924909398140379845412257259500018862923646802996935007505692511122502247478818059266270919525684181437558954791985049509323323180864229758169074318177776567393210197187997056797590980537586889136340402321329440528551664883055195933548578419884780332870977889948544184567961291615918722584364666647103047718693129109376670460043561912791190746995531429487048094437440390173563373343392562263825108875590829467516608991677512857386967561701495286338751754332899604015621739689429021499106153851100308997173747297386900700768482646442244921926472760757263087276150776079020138011860122627629092225379622604219049805461933145678044618871184750115297133870477870753623116876840554723102110000776967899565165593120453989871866006626591909694786161554651463221985052678570579415900787055171659201898153162302633055898447569902494897891005638447459650767225394127979658017215852103814218213309794398855798555352000472273905255682434509423145141281418459341684472142564685133050774036061022458983429617918566992912814152536582424339642397391481350908237997168392269411297919020757504722216755908263752002278145052605620992519230774652538804618333078978734457916337711231037010939226364589871841124720263039166426356514154959092800837105404046986751835814841582677133608964841184710822406626575383528953060259713061936549370744765147418463212252313683037922151396611588704445989624618798045261474858229829924195016214849054854689435066841456750565970368238094179274164112236953504699857807886888929756854083612381689626253819960958182242986432587355108777593175666978184086499163273592481295589135516043958368251379586221166805285571969770767501924724609682569589107112859042324163158930951919988460328200084003648561412095943049645434515732642347822381841703469963280477515859591891303858308573124846500074902570132544070886232361320509924180664607907294416137310804781234392109389798087620252323604613244365501041562057748055109347809517640288136049352780358519543157631520650571790689088391605894765868761718774855148049609613793608735815141724031463333210166132454102178035374937918956815131422179374020027309908864605711434421085102286262685075157582313697891508072503785383972737604010481924112602010654285480485721284695348088412267706287865977688429408102538644332168123743723059617550410572460287561171548786391960564954989125179636984959321275050199302585890927449017109764488580346315633805966394174042115200944176919765357389830592354912747333978665123013218538137467621878905528438046746669299011555082430438859970530269303188659851365174786639244778612847105210730047668846630774055100357288646184353769172197498778536154489237406942485058272818368153967980743398789761413891606950989748142161824727933521795883007469528551190956650976542595477689402937083827713324483707733111685041993501680778819889555944406588874186163525855581179440835944234933545583043994950296404230468194384127299384279430332518888776641473894516030402577025201190634920850020812717683515225345343106453382300940011254697750374486305265855140535660496222795433060685108597209262531095769394432873302999621432629607853253948461970217595845506320661286286287678780355877294800998175899656165283323442659279925553975790971892016167210305240150404805269677132234507895766890628634645484133087858917556334161804949706198685311716897650475066064826973723121368373136746767010222790232731462501415507932920989680140381358659017413872706801488506838602727643227036041907586196633358104446682261117168329142595682726128836614117605392952616764840102670328882385724692847525312599114199259098217242595827251676985412169727774266751942375953979367493571461919810976409830168000843424781242395938072743859472231575930626352041671235000445843369523892481724944766192971309173950502734179764504434792597749128882326657783350383273411703672950293594620621572569514187270190033204895399747364885047954798782922835366338814167721675373048668264042194338178463489836684445883405727433073195553550595006645317589193562523548406798451482707532559879755048568178737613777059451956732158087947006711057942567991357386306686783550551303768203685628935582363778142065621644719823470177853470162985105274312725033997355038426492121133601132835735590709726661116153322048678069809485183587583828119604302625085037956589530575753399816425313064102757115187117985031905050082941162403855889677215515000601925432527803719203833977740468893260155949880590479023091866162099532566268443179143499089945547025999718158259257464101914999739222256247879579129540725121990120304251310456548251342672272202667444007795398829700720708536777582132999633941921699100314799502807982775564856682810623728728913965629770931321329195327281493305355321553992734642927116116168179115820954481292291980899089511713462903274268736170580810132182724380991179522376032388487492779009313447598868678364274065058144152653594492108624852168353473872928973040937068615133653963978739448776429623846557305775135091554299063594008110170752315546562737847396553098118586216626252618979812804847521488827884226412505620384107696000119403659874660057571120177355249211036250552441767620368031482149764418535172126075681314979955459257740311547042988874534474842228982059198791821842348942553614812294616762172480342334264002222627549495379979467779875658338574959281933377143783038512262065308969539798447337596172148603637493126676962001218060222954661937301439341642708536921056777962605880459583513690090304930060467823357777340836755254636121240457556400565446715306134068297698285410887698810594696430263609190427013264823089015090837490402974178547130824477746464630394706621200699810996809500998336350052669153418979493558864620753466974878645351952964444489546324299380860445317488855701637522243518857188719875141390031441843708349421276278209876269685409366797420139195675308557487381731076629855290727521579696763567568401974765480620004026597054638072042981541104405214594261881625132468145305192638912405052257363754359104294691436816493985350976240988828262813931910123530982779143012741290884798880338742965291738075943402381559731610077445597264447632071109744435412610598999579687106593562564738815386874957738516938209080610469157960260452502185827210787181764242565543489736868892774817264105581244948941131041204697650380897621519048180612248517517923745134124902400342490414848938876910679348709163861463477598160804143957314604005349979055237527845961835811084953626302716559865445781254653132480176652555586598526368131639874700505062816118832073708966125550167964578359725433198464623802873258114757573429534819309754037577858119572930780808041234947092175149284904107049142056160631083473631403548279805804485636686267513703453884691897945382265265056053252420074505374993202119636368719077285884462036792690347795820932712494635917850656561686869599020370748295642925212728930561026195191171619150322245289071091013584290665541510294508372658226306695080675973869585948906376364700333927032783348845679958385410914749928894215985277351470818809637130743582528357171967901482024907055272373988781068414167156497255911664238060005658819240341529403411387240045220698976607293639116225948452462929411588715649383726926810246991420759045038817549754465476448283464463324807743710980754499054773429601131781987292677807432388839897454100357725610108044597478352414266461632796286858725430944317530959473562714996804651336553819125301325847792818240335117089202671408943324549420282227546127455293299710073252673428746693217904656276926119131409538568086219746352556267731878965616139287764632230486908243057767124099173560767126138853599110786661512506958729694422284126625177007639379733152546712334384931067551434821328958945251273009173048044801908346293078628205299108586191616452815791950198752269955098171444190132795198385690120437653127285730479234087777481331169824871887584384217633992649999768521156805169224126962982245601801779867629905684836671181023258795349860498280105931405325669062152509155361772624848679973344457287887248239255624291010074705307668299067019039630630151602513521473249034464771738926732807752239820561956605549522172494114265460296848306862263372231603276271820489470392586107499904336218706892380032611904355489119743452449249913963026705453013731285399381868950371690767786985060962485463161824393041307425237675389415567228785234472879693098836919600972566254921550273062206094839653815905117506454779719040363782436185599997028300860078093162840080899691443426057508102455203513754900126052199036196720633565858658923522430361101459828153218835051291142561500790457173997953397572562924035511799490597088451956957278499291956773831970365681269063465072305502609261113624982107383954600914975168172455926085981872150473744936911076742500555995377974932949148518398039539597572916597008433683035609443815205579120451316719318736336226479948996524112889759720304609193502760230837132039344901712067540857847887546806492580519253587246900503645291530090153484704512008427953029052369973799690935707660765801071418772508631301597877315861006461101092410794888890631448576700259727391374361897605438214474059470206035000064523600520521104554873824555267872520620889262088335675453725815674962813677003702021267024481794693079772108714750428609913904337265017877476372955540144811742821735021597815869503814933239643397321702296044255619126774718085690295298862900218998254140691876713915788528673191307451365173539887094242939329333035124730660855583412297023346539498215648617184708389009853316901591817612384178279314417563786038606928869560568339241047548223162064287789242429047004563957662234156697554989582723596026507083947087473083045411336400204001094419646255111950074727275933949902086427758019260380525776362466616551408034043059059346850987561632075814266137362462576559859417195113527818589352592687141942613931923993310253469433944788740874492329590554423853294712570068550131847368308204838540209280117660092089608518775090034226390926548669664745739691862885643006443119153732336288801716591485946937114317125596184466383539861139585381900329849864549633704723218980844738934021872415980957249568828188667695916347433050194994730281771553974405806402062735197847781634663379703878122245291123571517415862003160601081200690221407296644063072607811460641045062773007575878844675122660922532333452857239630595312868854187115351278443256247516116872065556013830610239007668766483219827321635024112120550133669635815118987515771651087835352806791942300680213525961408907183662479870823906645158889265647647853023013848546873283674229282574467549278650111113506742021326504591234572495779180013524561783288086863644448591387349881755558032530936238838819149936136276242268676713919295057012356060035519105161930951577940847379695373372227502927896630677196038508468150964161696575254329780953074054276467883664813068112312503369700367540243110240626414359047041961581202657278211071948578414178154230284281478906195593916738277741849432222516638065024547521810418802695021371337404775102751864959142183268193597255655224650574077850448996209218088928215805756469437236948002558451343400158429422603289900956818441647831884383558146454121573017093393259187872997671049663418976211398022349559006921626901169830615312011463358149053743431222747517154079083747070120838455484316947471147717154844117522893775885519802596272062948101253309874681616369029166918024444119267852811454722719429570501878113462354832917015873100404738411939242974942645240502233170792602420463539406946382297413787132637205676201488901453153465728607294974273178507554754435717496419231580206132016268533339617872341194046839982582098586285271997773765731719595475117076667722705858665949499648379696543415860090055239297414939785380258100306992910998818749633990393078186357730090228049790224452767080565242343306287339455255392602802724680806708160662856531893459711374040239070439978130349336523529769555250776459409366297335153840356784467769567502534508066586787466007015226156557243301299996605587619756402277923384778688407865150322364286432659641359591084373530833030311137808574580260053596908602648857503862189628302264970179591864262705855813201771981298188865028889789236891268775982919599499485785231274020996433622729787248983298735619258250004902747822530746565750089655457789945127443241779086138797619612894440797464987692957553333694101139276822993811807427313921805645803213434137174781461454651917354567659311664910479939335277920276256171338636458183312255220979508963847791242281941180414052653816935440168333501860878302695206848436989695036791840181700789375351001461827302005149265937782745721368947088739481930814580807098707805843469493749731496153807713660547993401967880532382122986016062046944349613608552009491633189091250195052112140154189914703132350024551134217453516937988428531980938826533376148666099080384499258813410211778151453132559789836558200424272099134422912509977476120325349745007168388529820832681744600213414630609600604665697097643983094196679744510201872424165584309382954417545575853391879350658199470749915536821472033172338939008678895354390300284999316188074852659200925685943109609542460577580958519926418073022088698674895916790778049354053688448782597735972033808922889522814626239255902604359309242289826928325308666305101737618445861256340441835716259112499090542456689598016727932340636146877979042817978011173615684011278289154017332190164658431430379371221344233325058284678029372191251338338310333771260158821116858665979381428968078763397615252730439477012927476331368510512729205105448984757626004440554098027114065352135084583539014369883991257475119240783564254857437861083066318337123781439520767745879963775906719833822398055701615878871354909416795720658298665913533891371177348502606940169347475289849830060161582142120074525520936339624991800621966976388557559231507414763134839633942371914177453158402926468921080528925301891456584542709165949338125426137827633028342388493900071059611905368139432321000568061256753689055838816437170245043729744655515927765226133338437041932776056947431964306376934141732418925937215346826164430740282290994060635667842488512096162029970922181745784978498654201428843335809225547553042921123040277603295880519042797038231498355750974227995405473500087377567132981116309406134075014724115098347999022599565793413705183498116794560518627824349118909316200009614359527390881798764743354433432280852652850654027209088742882902296113297258414028420435522905123363947758374506816762529024412553959200424013497473663338162561936817070864282659172110699846840095461540492026831507301148788236905297563300157877649516507748368794693080839998084156709539627369863384581326257679835304795124254346676362640030945775508237609517607119695361173728397486210148657444695428438035775696708020071328836548097292231017650732129520465463312085190040112398757863899152522458981831221572767573363369897085547174855835791019969025008837716515113337826953976039463373463782472240855860608938721814548568689669811935810778536133683041347770095323195063806616632035248763451997097200079977953146721549788592385324367820932382389933774204756509595666002326313206331784052644116651221731052992976530588835995606032438312346683771438198410392397350439401215335215612851546953744922423521860184024279571490419565150935733121019212011081367233062165764376583556459905590061361564967223041440314778103040216530380988453697705521588432324731078865825576142986394921749521434173312186034542275427447983010933068449142331599020793129161781220843307929823628064551906036548551734020211951965314706952538506280068203551053471942986286971584471632213596203421763976579095818214134483801010391589467662433576133386507316972944345981958692171136582164367572853908063456355095333057632651666984050322320714830362045246966837674779139832587579691390487301776694230623307981794540768322238682333573199535622789202939816647272749590036463891577210575283427400832675898918930716473721748678567125644824099386960221276883079302902641256355085174077037801330777858140750487746548675441725062011757541684999757165065576739212501210117763070146655771666072883222703376086231506439736448506974579797796227433245886476171108766520640328875665511036764801514564488136606620421738331535379184743492629541231330909858523733870956233028194930916662546135390980067226891276921397184271728308837362989662674810118303638039758154509540946447402985352621006402932146236455516159811293049947718970276862167208074260498682208636770758339778340131640001007208141154165390840560956887781161520166704745382633982498548553676004193204436788750773180762929831261620556522677892704965936987961848896868583684240533861182197901355625843419880905495551997688271010563126601516797272160322570994508981518815398149589392771383498953768989138985409436712473963675173676828397571119166843316417247449555271703009644736044786256662347458789702727609767446336315369730993145162237607971450362699206735055222482630621715426242846614698734808589506595644912128379994654088643852655860281635028074097322287882513133253042784944434959576895433971428421256298277977532492143539629273155024766549808013502379465927274110544092590699519381710963345288227456210370563067426518086288138877116553133605755280783173141881594633807346109560409780856159551306069429194246055233581926048825825215752301683354654924699010854753304463065120707394322783414173855430717289491647092665296393169192032501585063205833871906668908259235559211849505185916141995230487736353193042229829573317810609315500168388622004453080063579778113199857226782278187882043413934063607464206834338786891373656379053191461723812392229031287692199969963137751285793175032701613455323386081467886788204532462464741076988063136353128290764658352525416478522662399220222982806753841109098345626323977388491051886618876325290190763954785613881499952083389623709299258585967642033839852085235776978706508787854272713886752595516376330275046453339795228512204430113994530971668901570608108902150012095781283002058789395067180843730918225699240374324867028529604354210785754063260192090914200679060405145224669201948410729444127539303796193259116392497429184347595843466133502643152807756305160759335389808769091140326914156209337985327094983109011219084333438122581407125342803812552859957911430575139135261081593321999849455566975961137839099596273473459303892542033608924581716918189108134853496162190592487475794937722323556527093170685526419412475949944792480857418340273433739938231548587513188610876477671573409832832692399260881390574387180186527802024793401972253084575074967001024295431954498155116971792727233364067154127947374130427374413094312862487983456985843037893815129031167814259049012449586468470000729894967712311821503208749103204724679075988328816522539072135130892162830186576844120223738709367413044215484729316671230368443664592289627532619712568697280539272941570648809265254702362412314966021932362820217625238841039071520884692184124520691763747058542209570592392159651818971111405595511854351048367237982012279813197009304875144236369562385449630350254941214155146367660831290017566586506174163630353953303083625106572619243615338883601740928174979464306273197588975725688988412266345518812923478086979245179407460411109956757366297839273182033381231250579743052166738218756631257847335686788042502056167782755051755253995876397782180593269299167213136362514658795666452302092757103296189109849087611491092470810152823918434184653319636247981406564025868740528031313803734666596204432085000626804500095376968639994235860522204407482621534332610904277828817226801207065328614348177133074434857453817706842108761333528935267776211630206251954531670460773636508052968264065814657168168470676092572586942169831470450581251872827095247834206149295644847870712648877049550107761606110561433246276282248539151278763323329326716255470243206860460066767984966276594962319080131427309360339421079428656225177473615273124682387036818529035444205799999173591985747544720463884053194095810959595903303053347623069826856735897540049550150881445311238580659427359529589273850991517605045242102592644671629043199707326535183620327272367948757180544091012638041095572462073372386192634283524428187090716233341996166523801216284515802207339446632511886279568508667920287945541666190101199091169285922033527758652810813816119056469798927129616835662310583982879870477114953666401120194418910067481242219115674024456006484003404345577903628299342603884238718314108477066380785896704736437225763315747317848446249161801279798118044928488716087488423982869410161153583499909320120401260254369946356623593137917403698471183149721068530651358374705158768532756429434325466862932568311571419116034742709586229428486827347436896693480919438652137747590576447764380469815331169096329409744174953342905716636334265060461783538523081704789645152070434784149626872516819666546872455832287425718903857619205545752432555623570657179843491439221623263354880805402067949849685344992709701146653970824245494659278697824542194013093606555238902997228135899796124745384291246132221129613682378286513557481263326940102379534166274149782274671268170634699033352359894597141988815100986442052933739448761535243518052491804279104886408082358134562790082315305124292696713480390943550417170187586853748319951804160849475143509133716295866141418274440672086570284791750359646082883752753122957468180473032774994299755558330600297256694545750183784012942997081935712661913983451908774646024251852772096686658179493541407817495759345825741996286244669879735792704766626065362397933769909326333830411008439465779751088731701781053485309176470125605838811845523195082465452972636575018841734076472470199163564049377234121501948276327707753877995167819393722716740773935384843992096512236801616118645789033729490472230578142428310016020338485068327985918413773825594778947477041038855044463485620162924168119643970834030371980998174788841668845488928182511594116387037727864843047417712075274223978761468670239580371236666729790114836947296845982057523660195889093481236584871408660402800836840406866067893554543739169277439128942614822439706369526551874520317279961173722516350666039809674302111462669064218191233540072429360015986370990262383546871711298367187135935464369582358408329874704517940212859527372954635843169870961964352182648725176240343018309860604223344946830326137459022444926305044996734813078379952904825184192140353849246500519473626710832287242639922830511704896832711604813380185165409417633389580715252243394451897915430848832586136269047353560148062744271922006359271606117828228315672355818686025420490998886913638739402151439219470066676347940869806709804470536422260433657010140585277798212139464002513250882272077138501612783510972223163051157787031690831899293345934112197526280763790607760607934569160480012751302674582006898453100914821066836170249146087078053829448191263869478818569205481798018441729394310392273511603006956780930802113337107270370379807356214712742038590674829088793520669700396836842225267945142697448372526895896834229481482048551417147677047459489241977555078779779329786933732136624056441707464960784665728752401359436005245811686855123692445473366985524738665967972384985378235216679553193964747703559934075129409851195067569501110854340129039321672237225513937744483812627296988772392836222352458005420224190784349684412387726133842241576273879898815935314850560973541856094640137182726533929138263787248534791587405329648837662812468358623862464638187766941879129951550751555237470012516536795104425852902931931504489092452074330752784750843414012712687152503047989444363875671146083387993706439103619675488968572386544283543095810704759019690948924675868817295977412765757904592625729250959317525774635038972207630700983937169600184390714318449517191908488810416042018168983947677086845959484891984131977496578617348682175723189352642721585173635725928172263060130864249039856236268695011161169638782710301726546663170043602907872526274893861374772823061844557291696439625639261536811669074261155258988649233373101788337208960619575260002028197584998993080275705121899778295986122672913424958902825705512734975009774822774684918994775278247674574263549505493018793712415926978675321331229539216241475417286637831632704922324054618924424120853045577784474040733685148402117070758616269402178849779092209731538492947573851184263221544949363669163801871937400121599096657798870798649629578486293373165158884616467787802844864236346368456369500304940558180336496953382419545837484020382002994108503395835498123544253675441731010654038814355131208005181139214593369155521681367471157307231037815181820747364949843233104988651390518541294318906595066210621634745071892318623389140656248109500781991598153375806023124776380373049789224045630554244678388231961736638817465979920524101674771576662676136118839249207157681607765788800099692742384790191932943382865769492818505138899881801323147292650237914944938354764264534462693966777924016916120785783245576711023620363401913377821659981994149089194937321796728469763522912201925154466086743701276401993815561762935594765176574037321978369231567482012765485471127631485680347602043283590378136722136771684809932330835621237444359880114453209097740291671955865296442606963143900483261173469331566290032658912943967385013016813719247580502418165589818414567385537367697725254033035441615708932004322147093984983460509341842349926545362021573168745955595799505683322447766237055181866793435543856012684919530316151863092272168036835358750084986597697474477565599785204165577153286212612985978446384014840822970544434114994722485939395569479164071287888961851107629259254427888626334222896242221150082991764227699363372769809736411718503279896318883852948520832624481538084688719038511475755874155897063463372703308658393054108530963064854866152268319963406373852435775707994985867421996886324238542301243019452407669828437701128656631160787806118722238946728052756619336754808695605305877107083503126568325584066333006169950831113469315392839392104672211728172634395195862688373863261918384995257602888167720113213129170030176564866161988317381800586626962210376606219897673190362969984845483057018602012277379552490778108782599872457021884005670350124487554306412087101550046445767348254396063088255720008851651720260080108701157866474612587283833515262390627621760721540343144079558485079027446319532924252223789536991764455165990178864252587343178756850842366505978698272337687878485569377253156602017657132893023696773635430438238221051860346550626767066434292955967266181755714908998754757368037464880488431259736521081444706025673180165888867826174572096824110353048473023595612166316427538013491269004382530282241813738962796829548209625106253315010268313555325784474574201445637483379786815148948936167310676604928585652344747624170549632154725319352061428504426581353770538338158231883891772728558224194484654057522894566046042819475296522762020850271224790342689496963656487189872321296894752990308657235533642308187746806060797355910737177638839507944848503030030114569026425037272642138367265418064256888685407923830734048689894749348107212365106917978798820370240922592303509010483097767848689165048582777746481184746972832355277485472315727889459870471726261723688947203706278560311636174006443523054321894203669800641817791765758875451506467748869656344298731405478225732219979394290416276025754276672132735649107179843547347622172294833324700395913866018301242004765865426445545458416755192789708456824194221983106475343029413973945791205348270658843315497349366837544720937873655056866228325825886358947844725358442606718385202720675278629251439194221748384347578242027176301883820207876374801877081429018534929267692463503084656297116725988163329617300504872407743426125067957338678057300802888828639330036992592182234560769356364114374929740119368858394803126169072516704284730408690314057055921460429877729906937644706288623578350271794168125380106194808790111420928765022711846513264434026150911090482174875238450624503666280713023786944394297234529425589313234706673315885740933384177229703270094614178052645169052485275641453700984551238014474310383226984138495574730424223813627430484934085261178812808722473848414520097119735545224995505222518404479246805380969803130371705140420148675575438497461432848330515604769036666795354900870504799101638388358458183254375761261600890266635325235350039594601816582557793563323237231058046380866460933408971904449148467921211427566671123567386396575712579070994245104899942963386792832117647347982405836716518836822225322884983262414543113786476075375374556768081243981208712772722048114640937409798739968445418488062503496394813226010051546758512656209031511025923033897570370600869369906267716194544695948203296994120681941202688958630086077204066964840982735450635312464524115240898179240720260288289809846161203858809229810357825166376736071003030529715760766234492064869927560637420818489809260593984980776147644126817751617659897331940307957929973347536678884212656481878857140965073976562414421249258682804634778833408105284752217447867739716821626602417015919264249148736954260181270507635289394402950317647683490126069573902716159958614262312255430861770852159775376742238104484954184169369433349478305773238611120553220509562571136898077140657801085870073884833822503358251910325662355727127405278931899192562739388588174500938375052441572176528972682141528159457951067562437973523380140008559903263256152123606855756714588113208421131486145254267337565532899506204434641204273457033156296956419816074209292189053410032885782762859877020528941709904971275156867447456166010052223023795038577551031975859971558286427971864469654311033868655658258685592858408687369580836504183227820571120287398611447083992518090178103566992001516498661357896908917815722718291177941568643461852819719763214151109493082556285530898861640619563720836759461171728889650351911571312558985072178971610661275489607406840387486167700210504504738867506101361900238721982042284557070787540716782177183708849629114775000394204522881524355915564505825665571175434616992937519476971406713585457688578999317261738427663809191913797069785869319972122259841692608802628742089761869727621069829958927342338519125154856415949344379782156650025560941165263184182239274101786640683196661753758706014193441796882238840094991018416857045411017389560368441084081868537908160097050736374286694181973195586855207611107620837300300981867245183675080688170157454508032793033070655646179035032499786190907307832449695203198776058893913928270289782689305474342413800187149075900110753137761856385890199658326301699598007054925603314813244465199239306551091200822297808726159877652452442348904556969499622643632713185532567866062866627805551994710723939877562073780890022120007251971242132920528054967688964607795262085255001607101763207378707219823459107332263990831921401533533625899749745194096831941970404308371940144583975679064254004052795081831990206324927383387255615830952387335199820236747616066426564193541287776037640063718138335445675169827508788912901655074343491576224940200523665242496194978465514280040056548996875990801686951083224284192226722232215353729799005180332783017424025168926843403569844462558982773588488741404414695838909077200537293760735642697755476652185276098503164898143147551701875811922280797353036654243378119442070133787704933440735321790276394342837030511430998378844442511087560907590771235233588715293938814446676296284111129906651697323158718830018849344371724053019992894157143714912083660012532273559192381955624490156313422411792966657414330569255340725977821578694650401878648221971068722396416799228824879531160558497661217907889244259175384666769950947338571903501826755513262426419547349018639826868479261411536389326351195935850488125262001142630106812970104236617275249097498080208350318739018457494867190978628298375515016706931813788075072429987345220485465227150161106797965955580629311230386836724896367922646886615057019535380516486821251411972617816275376878335589189033729453715378960159930281232401297650352331595828166053514355090196679947611772196267568460092936487842441552110850062248611121498154138671529616462648204806691007799983465842430435815334561410874998254319025262672927818045960799641930049848535822590375255254320169140186949012269811596963366678697327636306186880151062240171667566165222371544291423732308355277731154642680972759709271183778734157792467149078575498415030811184068953013595407844020998204723705603637530453826377801742425924699109434331303983073639976104251596712865505959748299233031455548707764682025591051044546998797399691440619146326717457582986866956932173953518570960239571018658271396767041974305263850292346705577387174582555022961111126982798287562615765077194519294289086257792758917650415115824247212866347935105492997283620518445089378938354427266226991778280865764342213973180317007665403557724629436094962072979850075616254530759030654767817823098408337852249084052721513172874814612414695911720182744786155765684915293263644364359288950370267042310692778771651893385957602359768789195458105315198986527606835656501587519613580719397880228177848117742396718195499521140217621036650624798672869035762789468409767870498415934337887235997698954215683045409245210585063201136562531505995546224624924059648471381932813397281556767879385359124952067579736439501684789123121766583868218671356396512511350094606411213949551171204930333796618390801916118087245006379798757450645468761189561009887674169826574995388958973527026689565125209083514577176781778850459621983639817291708930649885691008273467740685528329815045601430701221713864489192420834602041885066349067544796916990863265253743335928727019346831144157145844429667349782656857412588297961101930573680661149841333333180997036595553035309080190891776691168792881878219677772771150159146330401999190237930646941842801865254284329677605537685687461812583263360363704254221774708273598105877365572129031299425261194449506057981464521434721646314248615101781529270813056326980018255656255483776276506704511455706980207033318525450524801722469407978880236119516952016531560237683778013651822077474288700255458536229726786114687918289286997134770692809468011400302671545653250407792906835422254284437164273967311195865317020775314472832167349109643572769272966948093351401169997166000113056326432202778567860510665613098176962442570564923213573191818489341950124003685455581289185194459365448844983409927545618685921074773454614261721189803630406601308573645924918325760503823285097155152915827094650343486046090063054127460020039703932242097928992917450668599568200654167225536767913441641972833978776202057453184254386598283749196835392032743369417985107677517902126451948441285602253575456605400563450102163075523228045188687682903390245287015882407058941696098904545921497256831534537575034464086884357315597565694766168955329792025265770567577493733170007556165503599613694368145972169495333016840763877873216920700708796579544976369419817641068587926024418340860127315041192112962449503654928001357727500891605178746080317937240567591800520190736444366351909397142069132639103081954328194648371465226551736250125715730927508642591579423749595259265812597454189270343476348312698876113599772548386961592403241163733223067772305555684312031452518707287868525898769010196005847339122303881329967108889941577127659806569767808672654285999440396738458523702684600691879602701878359084233040123634580744311706861079486335928946978496808788499059243875394333905564939133072449951892267568800631578680054402479139559699151999548713500713197898718112413402213218907052618867036269872377414431273319361801737009422153050296986094819622569585863641316922185386769039183198577956379164958727741941135015239366205574094936597040864655686131766508699823832654051746402331434468614348509628135285896553350073317021504567355780290585754943248705320619573407420339735990239909168402902800884862589997484673667725657103444604874867470246117265398860371689274662526484252952553148006011108124439336352483904249302764006661062844152127859504228031275421724007753900744006692337697503103600648673810148428193943785822459813069049020357063816399107756366347995593361806000842645176600458767370129525526547351525588052745816460244732218547324041089394823813435516231573683188128338757964497349028302882181160625266900386274325272863867459196038486456087679555769559652244391992515943515630159571496121278796493191059621386379945796775033045542854025747176080019691836290199020843210040689535976654037154292531942617865629962927463871261405796092107490993357836204600836561712954554776855627995574109707041363007024435433047603781138186733302413654668597967551815936311685159375128500108340132623798771308741231592358157475296094798838191157885143788565805410801076242527677540121163085567328647671711182530308670191984196875001376755045931032932865200945698065332170605815731386091656767648672739905443916378561307424647573776815735301887140455881173307059296051289733889233746702370843744558214771473438789509886257201210316727786432626470719563486855331068765316031302094690623508537042824893437701878875147217413849842013187036210478336406267263424613006060490037060976979345208575709446232438272950423558189365611886282022682170312544375330499054551097190925015141101778993870317986159291064235534358776085405858274509211015660087825941168473970107435087210096263104081773418615757281683267336972874036772789502414481798239887447350681712084254408028045649302602402393665752060825661574630320788893363446065621641414814437145997130136021109327140463391125911633656558568386231668806421287889496400913139190615910657010564394529600463461218533412488771064102916389509501286267783338847230638799214703053392848451396376595504467362009985918949444479963777013447009404818524779865424528766482015531277818243249172663424329787192202365726017294595024386052252183981722612689739982129968394378032503675382080944841205035642236569148748777052517668162039711035743340863849573153596381075126132115420236880354599178689263144462330691713421289493760263448632077965834039807067125466238460561595046788010213296474395293789158013981496173242979147161112672132205273035079092976463787146058523598476923245959426167933588498123977212962754159627696321665059678193307633428956401441577436066457537555570416605301792215826895834794205940552579196799408626484459874573174127491062996742586854456022257490902362072561631066448420079618101666647766074231765708522605242464725913139154221958694250043563246850735958429929005040997413993593469452532748101208412491399365021810372654403034832623537854084060186554708316445873136103445967854142706940857050916290415193580842323774677302934478735936793545239474656695108449226565794009955550930160499723145169836137021555741708498854517924623660300916183590554374153940881464795885570057721685997153103693665062790529810238666735272450593655998253254463374797780569041869359338474444796362008275402083948913366613372013415796150349749565933281833709381391113129121910004493383894252333184869879419718478131260571062913114272859232120374378843194157750479677808596480811770908327909300701918180176876025121813478438994564089753547514751762381405269905934986736202690170603447046331329796073928087558228013149395067291046584496480195714562964883831652662336432414248476201832016633278901698919109970102786852977035807473008869134148257552814786443238043348291434361099359919419794486816475251358593645287843239039207396087582824409814675773852420145374374538000824713482718021219755567883197095047103881579431174555439906851082270531668201906500858908781361704652857681840872607379485060897506985745500784136340066109988964667778802352694702471497950805476178586530220012004662245887208246492682684520544794579587144730031828237174410858095252122633544559687415843423250529435095113903627194679053809981610063164422043612668962934162125954484461577611593991489927962963768344421272776025431436679901821870495556780450946473580244396599072547366039316148919548163409466960809957602560871906957543943928930759696817905319875784128246473156623843062134625944853027059796336433876007084056591558468106947762487188860577122946097995846751482771951901008818835624077705870820129552910969442201135020658191048974628677318154740299784991612773354857397796539574005532015591990654396372906425055613044512550838240051035499993947699736278762105354695068180953849673111503377280360891634171622509804417654308610416632342310683507812080073675156840933822237809338471873049066273085047347536296986721665456153103993018450198252065969465765827396763707072295728129200633512801694405185605289215156888007840944666033823208969170077808921873215347342954582156817365861682512281386737300702739835300225699937461697929429562629256549604447422378582696639682488632135703237583256245041898231618948674564052704144140378500178783726790893857627128527966497131135982024901473197021701072257046027494843804038222137784727017810295770457889422017957410347204936834850886418354017113752165614635846780768587590038293482140671671611102846461219066280272318367358765367129718940732991253052529141754736580828831910390533360907681163952027217805919387337370426772083017960623574042627960297192197770981456856678878653706285231853405941017139496085803967590697636594889824622945457507417770987625167891766344327993419165497486233863479109972963028700222683469676514008169927916187282975058470343482705654343269018872845825385290309484874138519453789408154276195942152221630823171952460836851318065510268362749836039825516152963552994814841915913804774429856969029377537370383666918980647635505537975206615820979127224871332815361962359800203156209662870792277188902520367083771806285697908644835945872192110353112717628795520912266279445248648718552069193982961861575649420297343957756459367518314211071781596222294040029183037068595773182460353848335483405984889774335860493218328707976851916530908493317542946126812631660974322789431704639855971319960980955034941629858851516617092526047182267116105354689200851822020734010296905528841254362782955514630327858852343326319745136467330317100209083011105833133039625986985366246870345826200520449740471170286106454881203969052988302502159767420998742410430490083245355669233510626305449226114918649070307486798634934779810161735972798902982271631296159269924077009101239338874470125101423240508988664355284948947607222012474202522929117518147690325119792595017802863007995446547848459445962503844613409785029798364271056307568136850916640418638734594936409921105035736216910397753993878401068559338078740498502260427201010652293645980001599576662570670934656982757450765980355706492495791077841943993098897264635263427651375635099653052334463517543333522547875516161084084944695702345345025557973698959302276371791362267282580017296021362179124033985190431262354099860841556268200353185073041607452929999407895552429087839769983661036257803406207180061015648812986051678436620707361728840119698264786895601118016423367997202137501339471260833862440476310390846485496225466358230721042143126560210235691931226849454012023353042421500323634744028061269171546114751864581166360900124606244047377549756493621944694424413841786765286398948147403567184275718033077118066052542798072372775475591411915570526522085134082414443312126526679797311185624814379099111192280702369092428640290433930768569731847427314274272824981383029550097169918810599176463966182381139735544632202936805327125677387018747672640671385022804821506592108315845635540023272437097299218901399705848961785213890204172818356993261152695716516573805448608388101062689801181162468511378258913410625458778114367073659957026284382656681983155838197859841747728517247799350405624027658934701125599944916959429135665304567407657840880194609243195508465302898140456004242544209980170901197555651454273400482672410317598551122013174927913953880842223954050589501718602254081166427081412656689607798203737435276613748830883883573643573395621603905123842811668904645141138145053542310579263629960354397454399886264009472663898482297361716010056453181903541860757607770305340708227274977131505102585317058524092285193463532126110853572526896881032067672856140358776495988134057550079828276631272372793177087883956145859846732780263577648558821475062580226592680773951129213574431521626562824170184116606503278934957728757815219147827898301270600900565744111423749941190980276871537385586546832792705036396246824121623714788329677259387524003627410809367639573206799289626935267388526017871327664438400527732797305988220354828804713689335363389249049903788365787944248526388695592202682462297535961573385086422805338306265826519804534915495833135049566675273617475791751127913532356784392409133639591714655275315639489727686379198831965093469056230417480399634820698154323359137166762560463675334307518852987322451954159755336068555877576438670752456311882026759871587874933014517095577584421134149711975591410725588236091498651811209548106158850780197950316219108418476968557170649723219591099114585903094990514274322830129568987242563874712605819348802447413010872173184235303698751392504006779084966160260330591508672230501829446984384731828161101889691099538983644067387726729371435526623099190024850014843096417882383273760828342470272930276260700222701445423152274232739192246562903030167372410643043855908091463242890028108188629907160892304177064101345457005369690502531703954524252742454440871980518615608920342875560955453253565727867836384211399750290960521803840041450577578451803002123353962878760421481626254364431988693545419234479054974343314498024629855757042602738144157990460114505465512510342728752816300320158079433038674544012315145410212715988503112893691559246315979176041384864351553749683331709952726924920891704574979090155871263693727854549036859840585014129579719444508035414247643460660900397927816862690384936603085272589790902607928776258052917138640224482015188887636825766781438128304215679992989710998487426639200132892530040743507943196585108770188403785299251209428003174372924666011833971948622724827487348823528470267675215345757718128479067307409146273850209837622278318140297385405252276041529756376452315901734025505976789501532108763396676099453260336609867291507688654940469418937178201209333406745215962468942155752913139083973528924855257881433209465848445501734055973499320029758011210794015638440536922661289792445084521392224483561661754634850346686830933660055416933669892462828709863261921706568104053306130336366302650192917199492040904883704863840869131639460503808741728020711289013315228005118729116874507210274967658477143561533892606270665763741009721967191820419291123365983752606150128356933203104706703267882347242254534189050848485500720898698107426479712376670547720005068334130099462291879788186454574181503436678579336540073030313825833234790992041833368784931999243314174925588932435113574195055129577674173705685033075543102990545479662345583766851898533775520981661149765926517706677630288423174859837673888315471756595523581527350064244857979787409793763329160922752253678406849209261768876224162397664350675460275031100684821533303062936010045288771698972723987551404354089881161714891958180369859858468967303955750055933385774472029760308923177968933509094928573608338247090701549572428033384134162964226932293152111452981245768681306963667202834571441699459576862804608010473027264395539290909868034131114124156901118585166022489735992910126143521179779969346024081339802896682236763539029465698029924012845042401574699176967756475713704060411485067081835810590120143799089456899004585627796512801539358904793535469201974839630574249974881435091387717520376429375166136170171307362786058556737388753873619685859187165673801023928616872200817654901618555258412407750983534534679843839413049818912515388003452342059155693460704647610872690249142772084041764889893128803590574156972153977094902692081266004347802116243937460259125676345684146385231955795062997864019942433057324714619501715629119889725668483532185350762059023661436612746785757068515122742118784890001688310754350735434727527029700582797632124513439858921506708860638366017568463597657578999940026972872002795479996421393043177806709394700370642449111829268701264145539647469702950445231219074442046159370503450853697720743407088718322024652897396653255265058082433676682063176994120080636066096902830590374022989773762433741826669101613352854103563596637425455619820246562262289153560577056930018994180578581260952789326348918250902444836889192616901540758143723290748978288144290575823462252870877574864010625902389784216757875172114572994397835260081861337931858908256393030828398840798856557379105505863602834199721827669138310496362675656760147249849445845631981413194776123363418606624167793073107278296207948799791746941627782204035724672103097125160798240584327598334602050952946450509289283039966269673751290084857652209784179339554508500546096365139337585496776344450331338362756677944182455098270763212257704154250269222092995580968632817522615667641863918287222055316184283077545025673409582852024755921506280814540170444430405870661735875386425230480679660798671310824862497403170654189553028285978964538003882948088528559998090739407215495967171490994295549808544851638207018947026052410927282448134018307220544739849469618118336529820125381862927718168656115426183179875934039289038180010650433332541420105820224926620155647132507491766685631004884050441679046425398635084808753279529519839315704862723998664202065866301365191611107617025370789920394069809822051748263282320596829511626751017230625825357754641232328153416460771151173813509432210426474282614352357441241667189140853468926654659404611393624319645423761913851381946929639169548375632166419961278356284925499239048216100930384886721040113198358025198816036488312074497479552464601240912910127329317830444683371113628456079178831429604735866408252810066409553294238378672629007498215264945965555618349987029916340049162390157046491552521753226015497553236544218191634483256468952785414283153872596491772932534472918322216659845126911008352378998819381083722138447371052205611096134540572171073027640772008960948167236160512673188353393707085519787315164746024899242111899583653513776069087435552334353400061687882202678077098858668227000240600632631118933972315105460367559602238751120478678472083690826644152214160886811641874888623998240114720128740558584454006151056037288925205798697042297409275796043656391421016350711421325282744883983990694486169620975254697093421856625565302893134721634811803976256197688206157716376977372175593675907602718870613592796572246479684110561623140968903762777200059935820982960976818613499438169409183111001155873060199666983662963590198222484317060156599923386216218224316266054975201799466955230689980473652582427604790338825690254767119596802105714078199634235326013467352359733467412215935271701307144395034384647312206275981492022984634612629502935841009139185188781862420235839375798641428124180648660630523602572452010132773404677972707376346353669926283487387805555993194733444130523145404215149840632348718921178466355832753579897890882643757867778427977739782038941196129689135470024323263716499800904465649192151614692344608613054381463130623251876199148730304807929918521231557098199665229210181963186921704851932399011762055072998378845656293976316824814723859296488897791754454841944481229381314584089346085690777184055399569520643954124389957919476785068563508652652916457214798740208567356291563177661553585601574807698795226493869170906969197871103369114606009126863455719458942068969078171045376324556695266351166750259051513107414047166209038611926458851528543585673057210164244161621735687687203936869264513826507822628120404873409770470982632037114553618984011739517862406953722018432202079745890116742871163834259266064388681476583566032513683110454747978925080154473083459459986918448254494822339978586155125391896484665811557820943147373897927927298716859515099359610526292586999044715691952877171940055309022321177687619856248212720702837157292988719699167153875561344694855291163222380911701857692300187299141250606185495402360025834316610672695879356541619355373323991215162122299974997690459754452373694326317112899752111191848310609170846139273509206453511924036553895460573549099994132109671269105410231314523782414769991755181243378972549010659239023295125818744352553202396065894481875295285994255067401267202820629027728586001145932127375503577295160396528450325745118908791506565587838748005336052875875277634609012531537285035641223329948426379086282328466963105815580260827285764941753130791570791323685012867266964211970815925308658916707039048744274175272197623340050828737120188487764400347120765247599625379933426937604234521575777254224138567506554577208004597793079861154772767747584919879069866915063338204638280546240631079076496176798478981198339990100904534564422505003160007215713552433342806706657404015218470977637549909358746426853214252890751197670922787715985677294654700031850315881233760491495336070558169375969253412764912790343166524575898987261129909281040577504108874673616789103222372467829443571126674375385135326943084948030792868984705848400850368674068828282577407577638254993362167850540379234934979682327347319116225796179466720089150889189849261959230754816761606544668543510835759644078301205636869209283602166016202316974306983452743151020419677905879329313499684814172727721933205737092154466175415946633513762435235241666468035243903144669598942746747655965610278794987971997244984969758382872971944698022957929733973140069910054777233349255115742562330373388069902638113624808165668250487726202682276460689368030517151634394977623268003107302981260716038489096014078362935160507443646360887862250100039616350030516353458271381947660965344414431046263403719725603409368110161268009373706573135199965056879081049716460822891870943113025300790307523208789948751438524051773370824659692805821943557976694591620361656983468149105711568109016972340407432824263095798172090486895648580155392002126541815748553855795096991229219734542064858671159405026884041283389254101397183631566274148392849494513674286583903285453010318732335345080414142783550130306889549924056757366635687755423348514442639170925239905537661810339829985813893332432292109117495740925480956622488935996186772778911408932560847951521175953629384408507901641703902767397536442443173749453073352646751686774444922039397067197217443624941244895816353476193870575163932539728570249379949155027343705982462650292498144061841767795250643304709781434026947160554285227327187513494142398445275161517038049362643931901629194731347497076866821868076358568191421350735070725737450079599385399505928648033923046316415732902541080103335225759305433273655820933361150529188388792460930291673615080168924981164670511236439563001509785119235840818928611417938544817550836972275296347246709601270849816859017234361751747750564809100690649703688146820465552986479815627128852932578802532135781877050290687061332777660526040477256398489111886932174299267953266791802545277353789158084806101904854266502221765517138758317130687101223395335702282484804132225400166583423457051785245509409742734551646781822468750032469441312260888088972102581785556649395716472805212284777827005004771910541029964843688202855630336588047474224531259347716870800453228017056422033702106214076900554586930781492707244821109305232439443512031869145587707194092615929450586213659014552463995668361037115161543749552419155148781256184447963787648598548140782276025668341114466133285519089533757096917072062146894014602079493957361408546379454817149093553919567003919361574650389727124118340085739163400822093836811029962071850249403774714560202455583500462200632348559721166539604704215609509438194332326051276811308722879201816563664022642704708639085651288354369421185745254019308918025162287965307878335356036864583022771362987850274456579972155039662878717627007235362835089677793032343273105596887179037084161582900243536496738735822094458435417132148212500077656560427131485795531179422791217162804839507812544896799378356009689601139467202930389873719582933528640898253797564146029698150514240845630772575005696906563615766987623949258143171862221384389708473812976431166088096169913576322751869554033629385468209745547710806200963357371358272361120335027513658623260184298042235876768403484756077137812059575304256856565677653121819365304525421911006129356364300850079088164445247130285028581406319358867078711384237070595837936188779650789257642581183264445540668432023150565613964153718104831052597278364966291632243847139360636733093601389485557030175357853340404293983002554531057878527659683455357615884819967264286472848121259181169759993898064952791395422645965683872114572221545436664287971999403737710587308343198280571641193708251721764718069105718893222613597658514068962379547464637192773636287923536346967834754460254200155748292511505155826376839533385250704071921359058678833055781556565502171433131687603769706935105309500646481975207825342560245533150783638517217201274728544713859224283467940300521352541562292885783461140109209229180430833806520081711986937630946919904014300968714936209315295584085885234505555070198547223006790909320881968267089987790640102913216256860750224664454364815633253910466441349510910711336120570813437705117958075317187827635248696401668134920511819870913051329696617386152373818425483282724806628565140892822416453831434774207526142223701648065823070160288260517606846631049071684438180291983080430038147090613987315299987817736347907457463363557998945135685826803086696005857051601589444761011054913080182378160570176101797104957060370757025321304139013147269975038763781408632289952308949072693722424870681585758364327388167885507418230434634236368601388295077831001418781274837828934470612687064647380285519845191843298028809043660492538554907560074233020110664262481046548725353258882269311284980904808334957852024375320403020196177183791550723155614598493354389762686709717244947555747601023144122938656145350265079233139468400261282886300377211118667953541479033397864852932279446912522055872356209697350648365697519154500709581901646549283602566571542881814033912032177043674000596956836940852875649400809412432149498881584412756454901157127994832858956385243947269847206448244535420040653985515545029225767731174156123185331722919212918089678459966586285597098754547524897684640301554709775985462868051981463414231541968695103113448596182848206438707524951101838322431968738964163520854560398720763953250464862395256843533345815264404772017094566329052668415155646913536382967205109056698272441021738763612105054719703882213151275655949452353760111638044303747951013526034453334448124686751850599229305705850021270230356176748443276854654040880861236040153540274738088003453671459201969790025051854539184285778356389532245663684978403265239210828969290943691137075484516502806620458141261108740673789665563523061120871736779562707429681849005156070894442610396261319764715455895391200701295088427822380311386344629854426634721511066135837832719628763975389917672667400729215491803442185007274432368616573457476201122249314970001122682985519403882910674277080858323586095197668423957057510538341542576110162901698082663500397062667101943079823200724485754133092173825239053856888812170937674893600328849759417671280574434187596796154691177020155483079386725937896065856296870904413169340169294399236985425480414023362306177188183318833167603089740223256865310098063328894442184692923673521484545607205273192746814734851167770546890219677400034886032313619043422854229564154897609160124147215947625807604131397752824916094575072535659866465440496673777560073505880485304053496628887771816973286828647575971542942060394696878275953075990781716295858558588601914008280058136461695900939592770930743661473043574823276148789666746412498205836665599036447389130590807358075978068920214908426909923049739965489637412327246403055421581035647246377446966528364948784954783131054641960114406803141508566805202515918110908584691462633273558342665530454954506577761655322084722874623814481492484448563900555455478593517029729221336982152249339965692652640506440694142591677764851903603673198911327552230022575944262799569686037104652651025449761115422675992646822257293171602938174442919611138101646901043116745310302166625329637358725732996923641040536389545065160961412909996423567060682027319125925172057670582987016982020233728004651732470710597209995198442669874587046318426108013659006774690393121536000911009934634761222843354671218752168500461254833845042086907892641292367454271930619485125579255008422956860020589818967375277564821241383081312289397127233730494313228855046128592297737919162403256660229086013238138017758394506788759724497118450301066924954917516727256778512357162751537737740071004757299874813018646690096638453522475094033851453374585548296189471137987056168909053192481753304583375781053217510910230799133294768127487838112998320726602270373247600959804771809232315982810876759725685071024085642751933719581049046280579576888621041703820246184982367279848541739475138555871996135486337404165293908252436365677556478061990555563853226360868250678307943837019979781398812873669418128894379578101946771568102384910641486642198105913653518928114336559765273225815474922990137648782922526300059648215846811560036961035352509581441056485361211430815289267756906993606637134557115288357201641590926452333449873115688273872500426189002902059019673159073739182587691431980867613070129882868377696736206289866651924810415950736763374125218017432574949907294579825553944214957868568027079712959358853144775148341945856280199378502705518874185669344581545668276668086687206227445609213613887271430247014050557039474134876960742113341843736171368115449639865235034297864097382870704618308976043618157481276378535252214862192560856515137536074607870231608925618038623283575383994839376845065262035277771424235502441049259932865661016165329936844091948809286543878431941277272948608930188477807575349880082256487682642385334378595787258661948565132092067996751720797536834328104795038612441781381081326374405145254855072900749860309458239992430500710270315564120023363008452612480477361803467830584888913276240816448095372013664889758165070197271642728188487787909246552571572176706802905135183349652586513140963980127768910062996600633034108149418322514977416611145681223328273749358197951288469760018186670307938013679927777853297168148115294595683017382436260831737683884234481734868906077948861973518525535675535846053442396523325517872743166082162497887397560776119690915186642297390246388629195147618621413188097143490553258025421889573922496914580254261366222177022958498555048647968406309542915137923124167013856087090130394296617796393432540372323012068151780088783688448461079206417008461815327425383994363802749284831095159359444444340518228530726149965604099556473905314904166658937181063875649342579132349234796372582610024940520384101351353591141439760130587997757371167400641558179208753843708094415733917816690643143897106645457396224815131249366789356165672814855530041002526365698779299044688552473426520778639060430297373644702468216740583659672061937188609038355555315617782395328520581938156116824793210757519016532813711343619842810174485127233090326004480557136637455326417795345135503541181564721885371365350707442506895071657745668562161667670137229317410363482931373169739758756023770179528864471316808895383735792626756594072478370182784931175565861501218444016447133833062874099675300873340107835400846222942535361899039529771092868257002150444939682948072059059176782796453402148523444179152350488332460441958827051565093702389907984494737724931242061599202530783748581444035891251609470637990143957945976366532631879567929605683012381413612446505783885896420405060888943785546343932437809247825115096845380051419416049982575133806248461425227983468070272290816869957836501417601121767841723983253736102584316420266638508671087879798686492179998314237532993175861875837079046819713279493652359295636112525236314115797088354136700374585479369088992396287834760961521053343912353186826647317778030786014818668901012489074686694147128151337067922884938199646525380822257672700966149616979929918368684120489160214570457159703629393970767246256470478737351469177084925318865146683651558287889709307952928503022103621479875034652398926173649182472359310083725317788532833906947403829613037629225169357352689893214058435888201913247513732250836185752965035653141075786694031033191963605649595681007116423474275058009230146090743086845390958224826948320834800017728634610593627242469498973242709131855886129999734851498095554565861415995032533884872820411505751256949567721746364415182318153048201655526173597317187685832010607328121611849029174097106338849258569187788582696424980687147808389379641023656105494257107611366290570171691008896554701027828282226416632525707300432015550104264330052610720794070526628732333201601356325224705112267731301072574459743435297671486484742809025448220086011996482667381959792016435956742752879916764878378285884008130701159706415535226134903208901025811653930807468426263694824528449060177573912168185071287305428263230584750293418895793893660344059289248249733324190699510877150666653556652365857145042226826068564605981418522389601928518496823066585033009792683922475695832472340297287370803895280499192545161193640909725415365027869094279013396452042546015345129628035779057460527295950785200195697341419702137081081373504592281955601836513812509599838196395603081660764767578451120783157079275614332231610805954176635124869290250079270829878122357472889411388736004649462399850839733108646064855334807924916966325430648862548050134185248034426850212460449258106973259955451182275902433669878818134326156925277119235022399799452910339347570826185426202031547408645589446301634292217038321503373868416139541235015119374357574954340951148090236180335462036922779474991832870698697353090243926719617003807226022017627075191347510039659240540471966413216436084194824783667097326195341902783411974184912809979474347758002286411397787821222542395334309343456699377275919801144509178248949860491785958890528547828916272345007305186572658034603982038158762201109761887899943844781850442594105804031925504773839191521615634453427135262983624773179743669483828974709525433291663615486671646301534567668176937408036622553899271205241113040469965141652977096949250922092651514909835045840659812655561994502785045288629142598680046142883787313613173371383916305853220607300636830535495014576145973019871403493477726208694328551502372813261502309567072248408956092088681931322904398649840224514160560866232672038982145768101645943296519118428979206795217264649433010921766224572493137850124616665628152909197941657026504031803727053240201393050685649018241006585018510740700735623061314971021893249096161359474917088983505252311576195212231573332129181727997396426745702548981550723475162252837881434345246971096847162199057382545006252368018097271261720377952300967356560661575951145463561455121458882500282420349723090867571404512193758378981442680552834066157611439329327627813058535025639821893096786200343123540075450644192911729488682173200689826532429358135651948412947895598918020461779100346254459704378086805856499936834536350058362519134164981380313208544458308481345539567530424946359913129462793920811640431062609443011355065844596345196823054203106939819650066138609217071393951133761764699812792210276792575722764308495255621371194724188175789297514961197792668778166952243293887810084097855628912469377209936362451414700307492210404008291885471232921872688205902636818850306652494121420656445260704229804523757034333013701857103056743409018220211105716373651780849664286245193890433857168742861091893274992855494359257055606408492510429622155492122237787853895789419700951559271210151037166783769938544667339209758169617892281072465708432745781305822331910360991583546279654773147906898968069057791017933043146586019758355649893880290212903339619635413473146489714794054268251514653539616370444332233436403788164545222712339037976741262007419101365392459535416045665666062562849855788563691639092739825713829169581903308958398926196391259414340241667665962878428696233044224064944530784261772790747191872891359737172362731329999033104012207234806462198212603593331775462716144630853840772017446696230769030839880819393597124848645109034259503073953533241651712243109376386112859258612090269835087487905522049411374132540911278333059665760593360258441067367819087621906345972492074082363939448191198101273845130192868026119038111277995717124179021139308614607507941322507204300731952144813361351879541074063741283150113965638972901956640423436055231252708147184567070568095228076501681179286213243198987899513863828048659937458678785479212787462643779563623242732612583716458076896776380748502366135760869702973766743879893191413008542548065079759993692292534652916242484619687377415507845126128150981188005994851343052289875175457442351328984491473367870117152632752680884451833982565097203796342263221762743134470598735935209176754933787069040382930720861281391422680329667720359035425192273480633031317975857974759947517107024902442987526032784883669357789090598043616044210908943207932286206645685135556879942617894756670264818473023162566954673009697566129259680043535504851506257588575594532667519091517078546677123065910820342105733252056324874166215195189510527228604951748747476875114874414617740471969136605310807065991686026081496618115125100728165304591188877306330819705027279973539375917852513432983443538737650264228404442945059986904221289805578289917015605925429648607204776909396710330550250634776576772430995551292652419598939549863558828696044558163957993835472579915294839575299817201802974229695881759709624283954936740284370101738554375076931004287584785621816612768149658787500485410781865769277980910915078917457528020164197423245271698040131795041691876127470494022914607351181208492368815599584342550218985542308531988624039233126298094599251661480939039620505952565249243657119974228877028895659639036753224793626570511917561072878626737935214448042710147839099147432264054482220849210178413885283827152791319022276283018005069762789103712670697066799015614514080243337403675533094681537090700779231633614756445909445246602004510430754460595421408428645582620573046372634308527585788115560479066006455109635359778556302985327280901033086829183232274369338336676658243952209671191451650590585598909339723545754161955610671402300073604579464332642132450518139272029134198114764388692563001757129779825812673283359075200533330162394217379224163202150892560368174136931898349386289337715623085690286394595017789829946691662278393894021577863014662194666010456782336902501624865019539781343325518209608380101548893956441473145545245951236768751564028072725404240390016882371129379945137780476684381763653455726163132051733375353269872794931888602319146085494873077919549929607506094764055488352034686523615685187630309752809791144842143801601217235111641356618189579118747526918371327885858279758394485101025492805503855398524960961254038117327032225956717670031226964545102921764815250878106730437300337341122227022352994959570671011881361590458113016301859330582461350477695508212540613088243726537178343228436866822708683364999481265359798805327547592591415901819407140288059897566758165143513345598533099312260260924037719895436498480868474553585571381469324717834902564698358660517696338821847611771042879541776530073111756167726341919602827238079257087530590498068174725452712166671910537858385600874597889682077677770620122635957769323892351581476646732361577233476730527974289277033661443741349029925187684779484883261025371379330423599487786250994245500321157398732769383911549941083948900325134665918291733391926827305442349032035672109701636806300118260452132738023911412946768916176911757057857927020709577127673307903885152354235126208782565624597282571000166505495196713596467418800704187850331088835692085530964220770042375448319007992198176852918336682938890964667765983862851707582828540113843359337221736793646002044721852228830202528011481693022948084588870527752135038821176492479563943482902549233697176381488140210781452472198854352735169656723872136032487327795013345559272167905322611128718766986016343335120729614319664397494762596034796968965077455167961026768328285558589451372143931820916183994356858787828857482299101929091569413951871254474766316053855095316277377546458890128567689769328094445437695813449925422925001983655825425449432619658012644729448016244658881087079587654591254374909147833321215812663835833270868929082138918403516300532340395040512231611694309777894107837834305541891176508435988293439339204000756232970970522257911639667334800457593522412471106071740582874585681655796895576683142303373783002576523099583677636665126696108485307975881472916957129049991951631678207073264332494950167759119620543275553130143242725481380850664931210556731332925280837179838243768274042741295649348027829427258672271276098154080626472818704910622058468609826986455453305478960927251759960917374551718186274111814410495490690738279715549654283959555138853188856839127387091164802399217578712145273446404794408820431944826671485022543176074929478804241555395791620126651164880667239902387150420807606207775025719051373014681844594210674847069271677155199973445126169629026371985025799822146352605310306902201352403919626382941592320056329519465699616917727617656911393863059689375706793824178425729286582834540673811932304762189533798860944721877500335271195875427167840107259612309222537271100166953300524637853629967807687036313158738945596793716486933041673811144143697968610969858045865253579515688462505514429988212690563556367319237820831843914296406610667588988496734751896607563103908165311486029336394915201847644107456867610921092744946009351485604887863529773242826196135751718080963820139894011110725792066993634299998894214836422643788197775407668288317544904148976949824162074888328409524460902146281223314114633196419670459507087612351934071504399143312764914538887943815682624287481565993941580469666657309020523636686092360697063307548264169679933733277180741534680781560580825381421526257163550529485144405345069043424745499181482614921765287491871266845840508784112581644312154458913614007829235186878509164338458726119813676393424592452272286767034540157330425116676292501862696273004015735721087166701849458807627135242812696816117166070821382891307259475948112313204980795652913894402051902163982444617855200929949654342515417123132562991579458075671989098572819597330684276684269176392586702064876104211908567190348295442915027826651813793784490488527107749021480754944666511827862608346190771552581130712433305509943961828907951354660013267569255217120729299585229661282570126837727688925270302579171827265272950572485242049970893256546272009538070389023136058058584292849152356003287279530469521294835983150591133497137595591687029508158261904768021710853781499086250193010887836595863200240500899639771897413791928505832194176851383656274783761850930118949604343257274885598036470835406803465136903300720477387096211313297791219926107825136969722779439030810875652520105699381198747022276866893250577208739328136714010413418358494091778098830824719257329279841293338770698000091198559834496556831311794977414351439451728592321741973060729323065320435863102061105717424451279920294178044280032444428873817211379386061351481547408215684617003871248289110446420564574625109920280730669662508362061811036613430562359070263516922171092896796209861386991803556096158218895586997089461610440522047730269924650783539183911600760949207140209214145071271195938610925344784204811755882921788110152519533107627368873507851306999744440559209879157088334975473600568595501774256107096505241012480425169635050944092412721996558804947516333601668829333605247639751136714903111587515968652937188709045701603985276552263528619660032363315665538938050511072660777335550980638977494356029482058303816686994249754194691134197237303954732904926309853608866752811470561106076336478769030275912471600514816922169571347992356816201256859527504838190750234589635547398631529252178468849941528316462682856814686469932003545989565053342618590014027189737079712774863197788074847305731657287906624516285425698693123299176517141634447896976136231631992679935750554319901157649656202488960084073284462698635089845160810102123209667982721691907704724901355354466587511224863135549979877011950939326171081132051077049894101499439542271870218715445443555012202498472693182182913682120702335387356031538502643079306457116231031360388663605444243197805227558674987174039881585638569561972678906017436995978280905635848124617710709375546472236324018740626710603440284413703869406612249009198714813209303848914177257696438881553150764386201317755565581771101784813260640323452760140606447557943896256545638452920271867734350211542780486746793599758604370744764655726602274185093011392632275131702534609144260978923004829400553948065397412754870249168799046017461251135818888315058084571089085336670310097307338660859177819820343725894585386585718009288259849715354655145453876627805859353190474494912595287301948792407160127403736245528867241819040696263355115251322052455420816479636118379208537299773970498413833284829442578606681950556265774347434736149159890436668297998310781361376413872374272703894136918149010684575744316612527722750754059205650587356688010899315935777383595450864274660725484755751161651746041501420699992329215029499861074572095257580732647122237580151927987197063316994220498856053031526619248110872271415558229025881739078652403518047824922876902631847022114429214643818498085270523609378143123567728636680058242442869659742612295675634006750403500500468590389521039520538939890466609380169335664557961043712431453367054500031485552442287047193815613311098625763779058744566238015949326667826298058172529672176611491514805262905591946862218607253865537204480654306863655939066976362697200753281716826851101392850009846171041093826683666964642010271705710445123939332034462573206440492932681079539039556474918251292990218265084477852793672786865215769375971700066952921091921288696416523840145000357352449964174085190119084916951628510314633482932503794990436659722698346757045895399628158351953777053212658911711459239513442956445488378734424077732405032770585037285472214514567342267232177443973405804446922675718567360596008919951155127185324198293524992309759387364209793664467226285845613053586850154871170729996450560085270981852437102994126378515452824853189652676939419940330589006829562347215487046490125310184899407210896412393478653671809697954228348552068559710009668626053895821641712340662409411135823719663905005012739773065965182208268592877511965476258472918126712797770971717173406537363621271105612474918935784285291010196465138401882648532801075664009308010154490991431253129547579461226328820769373110951933806217942001746199926310258830152983613042570718411062484696159173575262003337851405352676101771260509932739284185711399131852466633050160192714008125585967258126216323174566856011567704182091980844377953320803509365671312225868094235892280137223492687776730203635722549504761848845266904714587967436915730640165611073950013665480749386601066436181960120807161666634082857547417661065519857307260341225263668866771828688567099373226757048999851821503412806397835773098643133275477516437334668555644690739179165203934525769227370640503957307016597379305677603102981357274383944639406408745180286270505042154249876230708217528032781237531122790344341004216881545615493034630555229441437083426180601072860735510829573825052390969615076159586853831816113888172200835972056670988096557637918286770808764579199294023857346297745397570119020765036549493051248020853923170670839445221109507420614177373059868507308863811953355171961154011714466815856464932849535250255067903925056053003868507891508977855098628026491963228365051652583969058453089570300614428124331062826081311205052901317964760582621121878810527041370419848867161154062024762532675643144209916943529139245085075645528900342363995057761052595971915371018438616712132777303401209280244877678147379546202962746591925898206437728360848639178049217881946126839023844710619583525956257816833267231564356429286246226415525549766436705474605924988689707356771384867372480410558740026046882639183245653051420146727907847565787607059257116115208263481025370933222941191853255698444836344348706457141621593463951479339034952374530228439677258345841618549080535117259270251597417655984093300316630222493327979373843132074253812097415447864745455477059051967464835835512791040063853201535410913830129060949747865145703563395921241224075046781027093642697717302702740175540355417818899789275987065610784673485268899565810292812372007249277483051831317771037889078340783889347945446187909398524479541286464083896046809449347856327152883951854857722224611988764841706828533797357927446441630594864307693934140868578186776559122005147471530959133435833058541162027948199410922551943410214035718550157729420993718624764832394342427484613892049431331151373501819729793248698627742358607525098095648655937013607612062195495097434913986521795981344193008802425041082256234685117851774241288696783640457835080346076531632733937519611681894876937524711734209900219769813401432194543042191615947271651438313251540983813494236554895889136020557889323771334360653306762566558218182417692758310002518622934149709750359657041499038118002913286102062063360833108499869444113914363309208939074602382743797912905425238111734695626417173805218854605525668614226490535291114385601510061015806082398499016399551544464427059231665910873596132021987249681065936165233956556174527576113322435802530672608241906544045276869901561449332062420018568264854776425529460308629358619242098823434284347079885198994230087204156317683172662087498481988343411865327662067922752318093000427451153154774097353305464160468596475719345342759124028276004589677312186375654441046318129652851911604655220595481837923090533866899411039322639091817807880636731637116606379583306523960293767835527005186548727576216566254548373660638140250535400008602554022297233834172310287538808793898103174966793156715038562240636798092270025137592188271095769373360146981235426315468134060468083799823066862666140484382663087138079309970762964506128254960548671699594112279393240458648214314982262635343216383025962543197217919802480584859337006886636826078450232071784087021627907919969734375090836931234341016708799132546579404405180616725380878944799500004972541081800516339322055748341255423335534777207063677800424929760359188839982217653201608505007132736902216485900778168222397357687764662895008687513521107685232801258604570531148087015387093174919354769221831520396054870227594557545492468929739447438742051555520355316224004023672682671913055123854751529518568845138485942121388205521340651271151037860908174725968355872326413302817084542126733725646842719975756249791961332124845286989413452257148732929797781627953547874910534406896779707478211445695870694635139746981696875578196456362194585129331713309825544916339247860014159318744585043797137907002988934100632555899752584526047750191744070480108958059756186705614731861651177855146810460141368611447088506835883041351204102164209003506529461806920120955435510500602724416138431982020975024065033664479484279190602612608955725546098410052728266108598392184995143449457295133521345128478105727173046289405785326143818896212144757485680611523044031459175747888436544962761717063868561123630657691559856723837693614958142987748707313168576585265007881034436490562238233919352450756139745727200412761577354193879092053703455668231937084228007438334029265808484279612553267553724762484757865491725180270306623506812568769390845340242244390510284178285589435895998209132777610440705747852011096513624993763153321555129175184908797492845891877270107419162873126639327396295868418767427130788363297424223430588897200894054750473666133865259173783363637829420707787715264315647796808839287137103948468634748304958368861578081741988971759526004353533335780008398674057391460181152317845858500959608277245028184566207059125661602112427928128468994118228208902079990263208509654371854162130315478232921775546630109244347379405665060042278441086730908916455334675838636539764705652633252843470025751297301834704241037680586326477457273884366538652654399064102540429532167413782331111747519775783391787881456439645383047275764651235906736461837876533443019177966000131634049269239209566995286706214424686681100807258353097603755213267670023495797695894877617494383455127272172498482922656903051051718018138919147637766551526511837706005682788175581330943549839335602029499857003311388430476602744046498376666261965439732615784167735471989512891309697813064894034130144748907589594021163390529418173961607499600028740198024413329523055897170908118038631797473233253122361272817540195055152079736440584354106698365318477360287991073419272421752494587966225341734524009671727454675111277860081020600075140064229920420938431553349097849004590907103831694607043132924445838433693301006886951759073814203926478554227028559516137652329157445307625352174978415083789386766281603594935217318295206762907040991623899562795188324369558590975796388901928565906178056333841989360551154593275350062253794578350147995883897827618365237335406048330630446939950809450814869528944776786962501646538120918028118270023835723704374275041954653828028803133317760309866712835336530777933388583370181295993089012353577927400718146116239333299111250641920797081196674160864752577093439668093793439979503988234276360439138646925541549951826547757776720149690851875349264489139180324443171851915066031348955622778953932955572644202091091712272076572421031843320949661468576200572702533119453299966587932064809372609116574050411001104990164010969914036488918614551016156159333570609065207725325531135141901127925573662219375207076786500904308230247661813232121304817169266007641466020853018356423005892757419127475959513961547433241215426101659296868134744904107998766680053608612525469694563432297338958617795496554100607091802947528552524208616541203995743210964410251840784258084573143406374306964147708051121780263170251006156415991947158047259179986211974754500473158048001664115921655673057397433390768504447031094440703019234147354563483187812037026798576665872549141485486991546019243461529880267835856143047648057052734331159004324894082341172282737606981090628693137812457812850265947457199423112482657641286726131284369063775650198724924448662398009934640610294170447295170722413633717501540755783593402421042735402447389177638271387596300529038363657266080022453155040231657727005070576645751243645126717741018659746519791487413330355091377386347096819338624728592175769669711333393042547984716562094244476973936045490529757129648620549651046366847711615695410981279078040315279587973459866879761271887053043193879459327930662011588500468839866296029604383186018553426692951530915281360910868297377280295006611714703105908710020451791897774245483989598174710962612255943581498836051067425139957150357331224374764186954023501910319991494690511451992617020225272949052167537890437129279470742128492553741904673537809451488939753592885015995747098835693806645943018027419853192119965042962844014160055683077224760532630664713411456784879429580608912960220706755585482666677787436016620073661892225763413317504996041939933904061729311198430086554646549524854331949686258516761184238112418686667119928972016542366479059057733775093383740700585453687056777449043421254613510383792261340672683055418980279523280335430278734701791968378404240622091860982635328425227328914120840934317459786405835278716371523100810180808911525551214551289185387915107418080936402322294995673326629732141728143361835087592703317043913206754173192681732933933586627832335205708127066425111103595870764902712869755385683869435486242032430044692289286057262669283582653243128668548734678101245250940227891089607216048110621415068748669859806426340713904972758625290239208519836061242910377318906533830167262774171269242330886907546725648841390824728089271417310588998132626792679506452177831865410415791308735908154585114603413315082708939806569796784793341147559277961374935055248956564677143715650258931229090629375157355009307661711763652326885976666023383437292109289268341769499137124926689049370837128590504274106676545220816729209717297281540527714471885039705477966680891974281982177982325877713888483301287354288460801869313067125249545496253394069981962199737580123508191132435018535811501749592229912546383907565628525299711955865893025407070135608602711515792228926424031460737797049484588817770775033272217705671321721096643777763868703034906084297387684747967569481591906236535410494410223698813164574273143085026063757652805607220850124340913938973411259603273963220956638086499925559013046188487877076354728502105907734395023295491261399988957687618780158937670354158555101453302086465322946322840357273244354429744758545665279293999145790195984001863523780021666416726966885172889750701288766877167086960669887272083775493880612554548465704071361022460532421112154218192232453733596046811598824681710511530302683983276583653085949722373399487108527728247136574966361460022503068061043624358025396756351403996689753835616080803577422145263898132853841620511934509657723424483622857145090786546710274453600201689789674479479508285678733527548248780114470149115074195393188876258733502237710885454111074980408800674085458750295952161362331589274406582387716044477929940767223240736391629331127812983659686086247958255069117163883655408273552302662832858710400234676251815401505974993000826995404781353002832412184813133962181358262039766758261418528118416180527357060103433481635911419486821735877977239660801846521511738171609200357883068539135382784473144389280488402233577174881771652089000954819138773879040348696826128370659846332239184148148428874731506510012050358200230748712748163294684842073013945171072004602968452774302350381325478890445140682718289657349028461726894291880623140847189095842708299656094898620180509053972812083437490750487425604434187988107905011377121967972912541570613323005506483243763339749907797315721453081271521954572839834727100477379174509796560964741117803403909460457676447991489026387058934939141756291369336398818421948598604519589276821926293534088999303091182659505979845994079710385956541209919565216565578377926535218013874692238019016702219525369831945609117502017648234875918485945006872933382919060237348061724565687754689065041837382533097751213526846794550801955285896176520422498843563242439597507758203312316266973266690381619187263611427258763935997756325705314456941527515375000974200845200161166945962015022591671559105326436862526160588662853075581751702084190518611827622735142487029630481756885118295578887695735844920790790020004990587940801360683231114178483226892807105278956759241276927715964662975671775676233565688556145325723674445001710891216138970883532923183283228755412769731555436925930499668900799574698462286229038818604292921792430846575794509722555940176760335651411850396732765357875536974378550049203511586844288882110329097554850952146535408733799995320276182222000241769916361667329998959859651937653760815755950954840132790072730507964850110584376498077815334758459823766469843552474694293421156956293975128316289495791246116418137934346008072368032715219485772612790712386070274572138207885100121573672303341546849496899558770785647648781944529890447219238402318836334617353200404677347870289417686057939901878601457776139832000433897110377396325624896606888751084979547032503431371530425512959186529738034130151646321362899952553167118325177684215936732781963849438859039446892207092171565755835496351200391270550081956396871249101254375604608574582809776977832683841230771750869470198641863827682210890609519770293001675480410367011230913326380795717355532086578265007301536959828389738835700689563135797609683040064572266230669926466919985176193316270428895416106517575907949888876417141670100099608160602162095867079534196210578475610573601417923149286476936983810453215862063264571408936519828789444656583621072796507841079305182071185680320258618517287760980318290619618561191003643932839842019637757937664212836337752377569747320579025239220920456107528554555312896301900862117198777607641399684325206420977140761831690475157934432096146496409797525878191475072400880241209558544056002759151313112847602614309608999641135332055450315209148566329768161896511903057614709085584152756447240551947228770251611687429727790702811756678768721718390203526890586469058320955959132003159177334359953692094928107252165174725599607041961029014017936471700906023350038186696549113015411292201361273046459769434108196495521440840980577895056336364865013553793936536271123329805749361360826016631044501623832990126740252547231360934654736363023193047256368820271206811134620437095386184816150855625492905070686489872210739948842365763946928977840713055508917880027618676620543033481815629147800673340012329214211366247488447159872795291084791755867014386027154142235312712326621338035276111166244167340307913521185311028987958886362500065263362226637460922943504726165731061704496093672604981690721536378298880368280911846119371460922455628865995841987073721614235321390651479677769778368121055068256919335248112973256951465401711343037742784022829132080811930199903173167616213790154831695907799166405170539294098517513773619433879851855008842844868171635992748971478252475625325561294507301405924610486257473746992098025516653861813943970970593547601435471906978516556426050824750490463307362422559198358595294058681648252945660445058836454691672934293239405858605067895432527298764819626062421522379459354966102119389564836832146157755015668577237023897309492071528810915228863398982803124750456591798052946736138599016473052819083142239771333446082366078381706445905671034861132764967162130094973724856775574526847844535795760477799626864493309059915413147713626452335158591133879284308688860634751458547951844489915004598764421928070560155771747999886517585875378751615826932860918214943945751450420932486438449546424485350752030763178283137772837314636328237605548246271622963665999267975734609648127346318473954836714575793354047715647981832303960059642120543821055048958784881005636041095182966469181604341798031923645117216696407357204912184567485193756327493298488174522161828905782598535449230110243080637730271737754000992076301226968491465979426688484134167438174606877927012256586291925450422911646940340706173433337393417438048206701254029427358614864370709810359015494827159488123929036916174395549048155276739506773977432663833543114924121722271015644603558542639100183315934238883036890161926513431334201683743255756689042456545841978831168733126254869492208373256834888725394126092274897047118454595180409808242498719514159407051924262806918633844595067499989434714600298201605172022052389746171722183032560785003492620655316798394115025018045240345770679959269961895486282984875954200695700217217380916128172528746670424330846476355628792646228962373004021191309439905704436308066484701710362270756855093426706762594539970987072534437858051028579916123249150802949165990161590153650689981565876304697740781029458352772622520746109636307675097003778188415992624022507041452239008382662016953481346280520484438822090191557182450836711307139162105590836888505557229772432863777768020351257217756778073532509081739859396207017239270254633143694020444224091516323600553874828151906286715570164868108184702549625774448450793270307764798961399089851352582074693393079296073653767277407393765169103150650739187302190125311545564155060192896872838542301060395511845570981521627230619452893058670477832407173975932503156424577474776262437434716735505563584206628194490231946048785872384272062639265481059895151352019518957832737937068154682057070716421547568726849434583934341885712857942488561641851196311061223673516356906457890765863827227288823506038425928946094323251098005428458132551072869858854227545384121436153726442773179008982116467946710768886843816979174451427278291179195354094569111530415104333569317443102276467200375700154775551782577998748362567669304489812072229094596268044000740937954695440294470170685769635411466484101994559162301264135778594402169899261089137131902281355983002826575433063080936885960769328647554581638213311521945998603577592919059856891991023854977268987304119097739033944331637296907149017281084524420974703399546769689321010528393412949718362187922777603907136331099127424447650638169576970223746565132723595110773818994365634280386526695786951656412210873710012947681321907781009595076736966095666481671019725991527486072533848924883051760313089539121140397737733292797478212360251300731729915209727630751750270191604156051020056962707139694108439466990416215105157719925647837036604723001579309977724181332197226328421511022556011357158910844951444605233686629076565666959902954973916751726043891256834418954020790505301820120151519882759201281569295789183873453997564093547579496147267081086236539715561751118742444410836343962021697204226543104893869263306640919455353469587639775420649776184024321065494320007083243047537299290212823581599821041005517337752940691240745384762974834846755880934743602190872124432409244246494165713725479447607620834236184178881474246662900923306029129902998020695505380371189482068577219134429047383427125227294043212995333652963086089955719449659068866836607993492156890446894032610964491035003800706727463332966530842980514725971687389232032969283809170604893736985273785245136811276531118690268981921958202370192249699733008190659975808423374147493347127268650565231718612796501308562704577250496796022279758215155551271054505073522403225947484370689944662674137459275186432534570682807115093849777995517465393199760924141522506366329713738188620490878249201093295947783843247384307041065635132049022271226745823796867242368443295394883173963830077010095355494115380508887634393586179181994646577726891688562001371919686907863378782459202627407959039214926193650665620282923994347306659850456667259867652895316899854673783246650709274027430297224730393670157929624293062014935866348796604897851547528043255548342663871698080278848660090840766817101951518878195070444048465825621031186941778493421619051314485797570042160745976200617652206661016120319701412367258255230050016494624417630518150038098353027930491158553320386924528380077642072278179920128275387355348535645197216022658707777138902338018213900402518653899721755654823147258451320701125713384280277225380595586846812351862857539720792718509791150117632062659543979523279878822454467138340068938274053835463246498266596243149937932005979007853974150398709716380257800009834943284031042120032494692750246044459775328134600538988521885826491908845577413532872331427458494118178987637155657189917074870392533073963958446290863786870782868286574299212827814425181487144134826739445377616735145212294634875558256125698024743616547862410292816938247348370707480410553102289730581960885777494091811572533750804243845069576629146132644338069376301884990814008133748525739666566056119409839054049284567172927228012428235912147520617988711423442308115001603552380286348598243451838911682808350088621858264335593000067218747628754694126567313322711484943931740802243887424550826959811250117085199770516339617268043250517113554181739720706395599045380980248188180136946392375941678095284741175738492618568705048066302375986118856489221416040041633851395016255379477126600110929928458313977961852192898336880934676994508461887322720048374910695388426253724489941318507854235929249482234945867629528266715927366466639938647238004185482277633691508766759185682131969349679797547737417442891645884605841117176043886287523979619719617425250243940224914234146127278303706124140445988233570281509738976931140829929680214106323525701908085974342745356286922675541333281352937701890949677332309882723933999678783388043161607366538000229659919917507739181290913492596478622164576176933656457479541502832034061632185185272615964510141347446153640284580108974929239823253372493723350944761794483581589195847166997887327327229842766805922133398650152456293785468853815522605960586639672012295043179189844089153109551751779133931653726531521794435712545869551407707093255534878260057549727799513686854487510823354217920581930661546956428219724435533459832080538147633933536860822674095139326418563312320487945505488306355509408406093049247168234255950771288652894075434895749391584896721291400537888932015169868890935599909546778844079687748381682837816181052994261682327741080104485152953466413298801622991598992360496982641245826116219283700841004124393202158412805775788260784454863873414859929307037933468455162262035453083373866580982874665485465278544462906513643101246342079682597510303285312491132324894084630292813003429294729283027293073794462463347907329056181148569241016488810812085759172436564161927601845090184872643085514883978299342198740125643500406230655575205876548175457993400824035727722536926484399406652246510971801257235176485077205371490147854106143718033155753887917178806364728436557155087841720810777320430127035558838950566134669048664777700543976674071363594981519166661856948918740969073778816632931576434035081921728592537876913982566694334151513285849901613645971664737119237752866756715990532676585311620040291258534475572692774399039019238354453580947960206487412157718697395065779946270718025959546793021716268235385468353157568833063873121963761039607147824754209834217384445420253938736180309971388322586409220780233847291902976424287556112900624708474222405965791444936496973662658788543033637849981151923016879070072309101633527237622486801212509799554159060400339348430407882673654638069484954647586799014387558756136858920294575916100271769305124290510179608511376280616511721848166532975619678974538779556359122353979662141593957787019676370565484134571755578279132681517198664158845747542068830596519847436966987039730545074475954760101312236343705870016827777590103692607789260085351960076814134412946298617804781666501913106049314102539943817333345901190427363297408770511251305724651251732156946166807439705721330594216431376328989288232915838174973404201108829735363353770695008419668072612429171141713692524342218969273457651745285318064913137137574349690593702879728746612988608679967048176466483329634749361169117837969534153870454238439640384944251890676694603739836515738201344682172745667253273407250685188633354710194552544431918982389821161255389114156536054977516958249326276495795002406948219077580849000891466737209859868584620980499078184271733992921876774236505074399231454546160040859891878614652174876978305002478525244351026255204372161299023587952340754271251153769968633314436648262571591461274856402562005928036776991275850586423829477237455218260017488527427142454776735858720468541297986634072141485748000234306950178338228096106094154423453707557619838862861950993895762843858934170708804008253858881696761811397707014809734076627891808125733474196785136221455615205267281037279676898940524669210616296412957766701052271089017177161456209918568825130151051443615709024669978857368364887821163746543182637962599148492694813854332293109911001988806271348143220432090829025245951057814244856125440297947256571729928423415736450409141605129584551804047021573859822927738381600972474436935174884561995295635194045528595042710147730806400888608721948738945232425660248641173496022275045607134912184597948849180141037126908979441797096797918052613842198000350870681698627686615076158167672217075135971303675308654784544511274740981890776224233757615314073446067048148522173659617218913271042638506915418105375036042463568603139327007012746256674110819962657313417158800217119197024579041087919606224246924189618501389332100155459757524370230735447210430009162713790576214112071548714710353589890948789246334565114061616914768211767961035070754093785368166628513259553382418866585769058521505095914006967374111806826956621595985197632688491406987530548140548643269856071401296283537752121811210478854994171423767006531325654615881658288917261309889308148025493655510915114347238288015470182452600389319459303903448077805532231049739655431312725821517221093648087914908130435140019940158958720683960108406247619009326083379810610379245671666723297226213593627281554560101528526173766916556482926901993413681308281122779715816032720739681723343684630407300995143418314954919899928103414145119455147937055957491929602381000684207120813144302328842720830854650023434620922862621586267347397578983665606820463883603697990826470632842462754219937164757825688166625281082342292636223312158227813375162998411974102992293678022833335173292030483764805789549094924765570351688674471513816275889675500934022622413467884882892864815714453228321125849584339917257951325588473126382517797946842790720678447428773220333621131842282852498263774624227394428745092107529314823299732871745688912844744670809745761484629162265008722789213939313474224608998260362029229200121395885817010297288045320874814667266147670960814458295581892264089646007293586264760943042766936741268806973216793467761519369434847610604665749570303826885143977680061493169892283300501301255810779836555847606142565612575124264959010767091814192091247110303570349651996162993338030716707539050202395237097476538416141227668987462674899466437784777567720720132745563524870794647932183787836549749714740306704250267254082402938220635767063460439205777344446753027404449438381131884025314680206238183353160633413446552147912094279718704808005246070531209041878444474681638882140303932111427974077918395536629147248827794313723708953421194895775490905724394355606857022845036000150005672585149536161210110797691414431878048022127912993949373262442319870576612737109627858274490644829725374526551983700180927806910317145157696551185590601562129881808701544501042469625528460849090148303608041188891162766396070381699099589890656705021651626648855943676238280374052521966497898874157485134998436505128169130940663231912819825455531222558189886656071122095655919462395656423492330881252593030181292704584144935663078214603366607468517633468995646788839760581967564163958600346331685103611302294644404854236249151699360141739774255780542429378071937812255762516237143499887250106661750263143049908723935699281780424829876897973289856472183446393960370144945504928470374064016447936941303073127205466520446705024881654166722349536072491495579174379880971303188028800138753973992738092618382919159996493694283939830127779072461294542414157454098693174830629347561352894921956789898077201124020520048606282112873013521780709081432820281938664363357184635476963742805845494518499286943096418960076136927363479763910669021443331857609612431303033119202788197618352263961365276306983470934909565108854713356445337978077286412297657868233306352478535584052468848202893065926479779857306658101181944019554198136395874067689837282257980450466881878439058841283853513164390247945720295159097869678776912160617815032630555625775605362861325324596205071505468555571243170774618258289248955578123751631457139054513578734184859459500331354657407148812612670157584082175897638618271464751818700966783810765007906658181211809602639088231639056128752507471182120711593352597391314219878591066757398169036868973859678937449499891846423425696309306467674967716865355981822457810492578646203297091091844318816653782233073317770284052570451164371652181059508974705442737760954578317140977951422809305900325335226312353360473678800448702328940780537750624715398126041608473018801985814817742979071470378512978156838424732969026284910110107278153758983952132230562430740895630580311783663783172102061321350917530188834907246928930462383474069937289244199735856904030203992147375573846866317791359882962526634512971397912669716773462353293152968376493305076855741010075732807378514067988221336619660485878734833616916194807954077046819236364753758639608010037592286900930980360803497452369091333539323628996036668252085337746705328314769795072181888699979958381427907018324762156095001945748282881915339306159777942792297483569351309999715327897010532330303753041211811769927190888326527838166291621237441236724332950693259140227110841951640712704116727260927504091927249943742750131627055001504747047856057359089293904410705962852723512687221855985542900206363636025861347421104850866842545560105904195373156042696366393731800275015933218569499834695076716468722786201832554642176000022804229304894891155972742500639773649167600843408348263512865284792791880955170642310553464997152777294945250892887249910482890188243039138077526877270125326005591057522882760663364069624922575806602355022807057386111250362603246692168651011634848875166792644916658077245023338374329850499404820100191669054642157114299265584727883558411682430541971269379921881110864420292833322410046885026548044417838729560783951989196094434102573318524318037287117114294452031527245275427268924991396397941920386936560884826895677996263551326007680665969387104667516783076511799990776047731101588909034136721343128122929858737206945539222867423729634445128503540869403046275183536714450825282458484528261905970720489579299780413760890829057927623948358057095989827562333812094408171709782782342965805755740698434141988928947944677471441809535244353488541067534529429384528107144600174505774000194496340805761964033124458966924346026046552876228791258676335045399397353446736087385030060007406168300180741409180137279600141640174575124015354005147802513277047366654476776960285897604473046921173434696707801056020123099228061809770131100465095874532410273494721822748221709817233494722240153866154519442003096524966667353821156953199419786822684503483181966856168886858411405164960286352552467044391997303620988278271822160823632746150253357583986882797983895731003262769178684766889051620165616453632279693744278916178323120920574609007116767250744388158486731554854903048456358071034536453354254911663364831653848354421943124680405049196552106513913262061237257544884049054633985126247871117038566897796733582456136431301113110098339504516932853944816910849882784541179197055435478312141001229756077931518108144305422671305683907953463943733755802144367882746371690772019806234736680122962982940890426717458510051988892538536614804301019155659115350233937247577380064725181098488320720897498217652109052111059821520302365945062952419341394143204969102113738146042106800685037203559349570211209748552352480246622732891115802703400375454371309109595525483858289511084271676822982344342341115400237694119093659565670473379975061612515615672988932748147910390661141084681226450885426646913979941337156939286276099188574223073187494689972278230420241149440383083816700861734100465753481342447668213972469382131604232739509654500095426885164698550548374767272631030704750431913535784643056639364511615253678372842454012767623932928252708786383618875533498529576101004229598257889294073238074836605238962972303696871526374447020312800488963208535314089863281182794294154517723458519295623691733464478110585374635201744927900055190676540091745020808642895217542013105729583572804456226582768578904041756960739309301862166185105376985785912955755865667714178570159494851449539857989782617692055987218913013093857990302219645696324930498706689039237972644229114807077131416536931873079131404116324296390044687026787764112944654513253564929790116249387486294785087750711035335337786516126847926718068056336742444877490881612049667488298555529812960042389790403293284804870988611738583417370302905402084829798259333089918157087014974962332764699972097489403165869561278467363616055422670822861432359055872369464237889015680121317138938526340288372245226808093134236409602457840065755369605769901676647335015384135808235826854582849196016434551301721312273282175877680183931077032919097458534649808490038083223441754076973344720985229425933958449703949723950281980317351940491413843546834002583505693382140734189228515526575906420459860258918280257600647140219142940137826619634383026832787905536717969131587946547546342052262094551343392549013115522853868739351082931110168183483757625778809746026614979231417545300840777375538614425571792217706726925623003626684990835496743186182704373993010272055534866633242936045709203315655761713669173271757330275189154606086207361211994911540834725446175279942334015629965153091952812693536511910155561721181503712096028643278001811625261701179540101893035648415077004133932103541233689070197227172099140760188509478396336657348346943115586117880184178123108417264835860098322078577357708678433447336752599293087557769056678210658442910546294112455070580393302712388521277045474009095002648394575118007278049995246231363102906401786654589132694360739253049745301200213125465388506607070214223892098554743180719317734504802613574163653660274197572253333767568080272333901088573693288624077280092697746612425554663894044568428208940612729498870291016939947395385595035884343974694484210642501620849230593210842543923461564988813267540624613750685872710986189448819689840481064851845540838757459601402244603897524394210480480466977235212971162417471298346891689468683442944685561026210134246166391213227738208462506285246469588652607827582519019646342410407017726795501088669209138307678126362236516670314123438699053704992376010639133468999419154626292209636348557164670803768116146900592688834519586035203451033711377417264174497828072438504996342218646565835777492680988167109752324055634541490241734840363257971809876570882688369566684449265191415551390666039534244224121812384021343645907153797273703635607726315640718398765099935251234852414971854462980863165121759642643626039393478514876013857611568881728234367726952046890097144006885129062046268262902145868571394045675222809768346210350538917506604159309725657104272044948205047907363236899801623103099804065762093653147705935629088691341454057408190507291671554927520436179878141583532633483866071495312614126833430053338092015389193109206219046017102236568930815412758607610226377708239995453144708844690245583511732318905760995542989055740809793007898805952306026149086866115472051100874825649896486162523603395891920921996331718043200070779435918540869640289341012589891530387335625773464305511721455208292652038926991035327414631923663175919678349228269268677455249152075765669812067283105198327127342108458742219587231613094534928650642080626766273657286662479954942790911370473107797410968921537303495076300665753322513629641633134097178168474078376612409838482350651962048336483489413863541973728777986233007797948043929521027077248026706844283877498252254987125062319474091865740246423236426775775864172303604941786655161454192764214945641813115126122624288302072263043396259177404027529081922533599812396999978118870535899529594372173958325521925880707539769779453217092452922505391056333903753046718219947502381765076580605179496249055298372955683456664022274831894750850347841244402027181920864968410314447838059785985398181227682963230490243199377402827259715497635535254461780220245334009460453463627096159830909308384121366885538787316557691116267251899103274600078456712920696956187270775018746197318499116586264390451558363891076247879759568592574020615200137028243241939049542567352090642429807564962519460778859180184101401903871198079228723177129878768929959731832721379491052346112399183151099994638143508384708883586403411290820888564058874668873068248918315402441702671012184196157031414248796351256507992513459856431301804105255208034886672910186407885224425429032612284942019766902767396372549054622703618552778393435651153921647878940019548560039042342393993144156961148051146890232362347357162769225740702171519458572364634132588473110391522637492922885957312371138243112550356831034760664308201159671795004575222004336544353092294838423445542900938199362248379731624226500357796625942162163164680781840809663593763440341155858572903405917489924563456085470264061659366279235688645802108900122627923301051079385091776166088946643263871346512620210389892206354121590773048102886477060022306415253636807636981314898346607894951352895138655951467724152778380496217587095698726867559572530635031328770004787866632272276709535116271639541931172564170901598728355460210607063893077710156409561145446327762494728728880865637167444060384194890844594312144165668233910780900495674113123528755124877114069701030186808335244618649355327358352305291465224444775935946124716257087882094907652021742908408294207565942998540145190549516048114754927614991488876435989147266833319702937369067998875403125959755431069203172878575844076286779471944444630705184429946301692277087700818950391652081226434662166724868574892890057420178076795188320716581686153816117532129263278957914619703334358908918548325532780454741194924429519586119487844834586357335513537737249188328777583077056783744815793798641155602990069403806691247816422913485803026341785526828214200948137487212860404091895770724789634620881575038310232637516402122528433360312179291602131406729913453872677822973318939098492764033150853923081992600002535486243268042491170840705849459286666388559725299018997732252303164421073444357060931370190002458047743300870741463021255428341558738707753678971262182265598585700304448050466569304536551254695868233577878823104014007768992718456519309792078978328186878077043755479327148861886269928489174312408352786043399570639951229030733325329833928127138943034146181303585160825028218025783528937556100212780177940172568352362175505743589818482140081542985785139301997288019510602103798333406170279788267671964406231358146434391622835512002717059327142624496011543374989750257337276885160830617640785862797672571013442523418814814806743052396616601133659297944901292033749380420381121144370689746314922468283164086601452903101056660663811457496150041694311908176854720605839641680748120896569884649959224180333267010566738958123319182021879517632973142791037894646291489072256503113319569950302050250756782799411074935735845386801934537116901639342126993452288002466192450111342220920463151861154974371387680946501127808493258917680523866697843546252303010248800062936049524007742881521863997432866693838281304666543314365462316414820624647390162700525708661798128587172367016483940789173489830629612711445149221775651767348513520741250085009239561847590191838303595069852915607633521911677853182999979454027704736711818805691074114229840555988168947297440218201252237420534698305440856820180994906462510582925147387791866808885682947979423036007737788843617003204951071255724263317675816433495833969740554526617146201185908451410849271321851824435532406447448242940337561378472714372462519786804116998334947195037212896741432425103863426150072687602785625389214931221892820834433403336368882745930933797654498403641062444316826347158991077400951329564916654652986910766118904428478330823978290778359538067295045907817547761735585373070230895736519339332036386155421804986293888980837485292447480113593889698298490809897052125294076860437014416422256560499449415654876101041935392308231559207662312925614303458732299456441869381895634585728038046597886804973160139949183835918780125604462111095306437680938040372433825049895924403410898051848783341207810611587003723638081678569489606882027484496950550582968342952156437628518438769613440571377676342273192626613188700893197373603749485286500366964022125646326750204403799922081827844294671829825149390681729205984345052802337766267978194559730821756506661835020827411201869194555890440286648059128974247783770818789643002227058809041826382159393122653676467824564569674420532470780465075874659664714912399625582738914013020161141837151179528132159523254840257157444353061448256820997693726197573927918937264279752185810567865572974706023923843524976388468644951592247395406094423007690980736342377329679410252830656891819095690081422353241426637026669147890680856702458907469895409530984259092396026482974828778042679463317537333054361609757837680278882341406362077977890208023513033770125469992162850917872194815145278607905858848083203064528086084171592692358821571179691354074674880049803763608485517949506314008797875222016836268062375144844990945160525784277634582804774416866822588405296924889894914481121059038669740108582696008918425253778294515369932829207251513369797904864741319404404537787190832273141457601266839709664779253135189803534191534349442817991642876306789673791120956998115409988708553223344522649047624491505984098362639710954125209141091179040693572364174967713571719749502004440305638547604427315205588535656725886476128677786686501729315490333037103396969718667376724414418352800205539654191145429660735796858610787919930986482957606320780686856314689926540546518740396523518158263588636162409608831881589454227175200859176350668351554119411882645934619254248759870593406313788089813855367192909431160149174722696552193693491361715002371499379349472106332034775183019695908768516241078611663617600111346900566233149152812412837123014097014200031942883385234875638921253700774444421009689708005782039205993688725100259889099829046247915100135126694566541141889400549354132301908682170817503863460215912494372490826887220929250372880023213029207905639411637165707874282018482398482484001510735849238506766965139623771386352767880073390762462735957665114105877234298237319489282327851120410505103810022892897479096569149296063893447566046469652205893631698029594082178518873879673536792569748704507297830301156968341408924256816185376074460008859186686584774337871676158405498762177407751987134854502464572554834184439121158077143877105774429168631291743023148306393156993317011250832154373847902623257903930064476913998701929806248512904773542555660155313097295057664936336630474356259625091296126590984967444055750273132546499717753486949020809628089677747287179159818171039659573494555914155169053260238092466105666909844242418942741631743516848995659866497971034137516671122903151757795220050143459009561934848868603112101698842729854792474646263899242637747953611866988263746913109566218113381775736521421969548194804244939061882833325677732364351063654510527765575824694370847530458344435261837202787455109367202272612230048522503659720128406977867850907926571215881786882429739094751510656830613315033276659772720453981971764904708532628392220404891316465289660213582622787435996572988668886625826496334896017980700060666498120739048034885666198677614159276584045742587063504466088159034102770476540952767147331227973634946149694664960246094655118829977519762175871088130528619781424449906248061599162796138369978120604510206749712404775037003712465658000888719644310749792918999385485097480511259239081350393131295767335458938628615763596634853190910172467530263053043656559159964699887563594524088091657623532516719910104955586500015743332938517751777451503810873327884626626759493838600596307980632410536084075708528924284172364833966883181107215390984572277541168460767269581686397858294074109996182057755489987855734808832565966342639195664859635931366301838852556115517458693497984625300675322605582172163672152394786099138795377023053902409050525527950122012636909319766109631354795426469025358167185611844539211806965839712297846497483695223222102353753664171949113339868644381377242237486363911625864990464095466933013043212411040562417019845593215127412050956986655943568039875978756767324859129999955709337106375498052928471775357443622939863869538335606106471585472166216939263238500129547761524735657273487050969196039161924617994114938488657898764200770381800842727786745163378333761282646802525108849001233153360809806736484756975012304983755594195720124941913884040619277176690367197492663863002103438074313023211369515541602808789161425282659387944636706337475487531635793613486758657401478996263966818093412214861155811754260777678402394183429288902184976024526626838371508696733869350062712897819636414895438024712464338037372539685476285200425892234557268404736933994757858324117146274961951129859542873718214445135976363496082931797960933195189142398116182779066389330772385878800028651175691667826314038996052597411922576266613796916056010661910213901564006425002466575474026167315646654850790613095310279563876927377531288244325920388279050358606818672311630229832486321240177313812878562397189381829611070944618865955544378416892776946593314814814946403724090162717451025270941697289197111158791713491893870592476363540494440995259243214372136141388598446850628934306364935866571335406179719433949585131718462010154809295025972686308631858588074083860807573107799015955154429739465934684970674086796725946377127126178498546965298200748458321926945655837881370623605358064415540126576560036515299271489148740908228596921046266931639676862093711783157440258612630579697927168294894200799795769263114603414294009003132917396686305164095092479455565207630482803343163246066709070548564930262820864575184086553091193081509596106385554643039139581108818425547596123817367239242792596369960180744557375980138610941707429721199260194662451218398667509910323256182114594642208757182280280666209683083091370501310050674696852323362251589977060770083076907526502475274854366890509024153484504376679913902656799637882512254900373759366003049223548894732223988837378660501673113224606140616217679955495988407910822496565207372423688838511142759811957169539609196720597059394766286293336530979079160658419233730381237343720718710688446963236434880107718437060684731821381354566048964179244210414012630665975657385611705729381392325810801099817926065077319904392662332742111844849481658035101927727845150770927594685320331075914964380732765486788245413499614724982385932195553286352967878280999317547285757254306610228042850097510269291912843749394251955506356481114016350070328724251109680766234757365553303439923896877643123208586369404999462442296632112500138905019468890690096412984902011585980247756504703169117327926572562230254489174633064268004940122544604992399708029816411701631345624676656272570037774676359153716012398905911896364972566451179352506271244793434295982094316623994518638448550135770695287414547725757321467905436633274581355349538072988010624706606897495888861396706185645720429100410254466240057958193827067386829249109908852753586938611269579186027345003262226907729359978625917416521655245133520468992956191638930197058991896516582214035120292592803321824609035153456051606177730117560797831754876038365663506763448742613147840913914050372951114677395005459578621538123167335048296352879116886267427577130755193093287522256298022244997468521811474185288326846758724323804126642046164477531718575107009532636464896381015807550988637328128035900458687761682476762552966149919093897408968748047650755590164032998206231404742666386226288311241370579526531725454068564679562342845930366388955125031880976786526887641979894078676549508987818808111391765977905944274680109480284490264517704169691776334730117993863761630964994045360698335495997985772078224567481277742560153941898038635897361154287621139138254947746818495533846296170166136936412835350009984767540228578368998032693869263184453311137124460817139690322091777511083354450248284800303954111868084102017313172802823037760162477069091078403084761933311888888821419394624937338626071354656000175011696809432744711318389038419337628745257762097410493906763474591994899581301088441240664841690907405126421689262511577947126173293787663673446577387301436492670689950158825108250655348238158325945632475715983427976257015872807641694630810318158869598052900262604164418401062995399663864441590312992927681031569037694551478936318350309899327463718220693284890967571919248625973668062140251330682597009587949474159273954617046493505310501802895382423482379350845741278035879628394088253634328401907050971892970976316098676888606825697780295071849787198108627850758894339425033509474807391235505166407873662976583570310991043410478434220589370590602424917814632295367301293560451210083377879949479292514259242277600675819150357387649895078336158565468267089166168727616253961258181842259802630964435589138305870698895048368436607230036493193572764060975572677015529141714815423070588849902780588614776587398931028584834250983987060579434831655531719042806842432938781619417582739830046480477647584104068811743579752094709759801743903195032147391596578079210733472747186782811826039317713430242425150743768135016284895509340946483175745305401256111881601166739738186973208241074726341358532098874142010542543634923178591531412873818139856497658122399883045989566796029959263379401861069397225522204824174650880833679316754239518825285909947329466675344922725691852850997721758056358048698841796853065510774367758308413001864253719254613844322971803098330694761752751727016768513373226209348339040125668824240473091550760194857432042441830532224541749111111468552039545074555983229139658389262893397932035882958243889774974078581249080154080882950116708157244747876657109415260874959589326404222482724009934512636979842939066518445597978191463153947877898468709523278968948015136461383318802865937530498544090198277264475415432119508535377894623903566219149045200710765190598442702945696192804180354565908867162771444196167035447315877447437408670309422014108878747832343361796138156824746903132193051840656112624753952529783947539490917602087773449636058766825795381232606061846308499406508184095236306938192824061842528549534545322422145133670868203987559498017761265313452240063101362576700938304431300777866904790023826417597967014707606476465391383507728575280248379200004365422857984055620997958231482173525172649280102427072732824766332558955102596452178634834497201894874219541959145018817943873294482437834801488128781780711632581611350237825587580071130900477147136659841569401179016622340410933960244797195804870675341331517839271995051516233628610748640454697850473101639813392556657224212161248647040043914648676214928991183477799825824659614621336191919192290937651354789413567933565806981322580813807376160934002327726863439522538189405811613396279009605023375925652918752324699889974547049654723454179100498072803308528465941229812308164700879544639408051863902109284159713957237083434521794244952491880524019459158179981223909915684088077560045923661731618640843517080847642279144661453436400979570244116311306011359099786033223570701496674834121759540490687321819189434198911940932369943834893986899635450966289492214453138021080827231829362428594653314878446442859388902203754308952456999660567129122248455856208316324263848257134654963019189620307039712657588673646005707659652126226848524858484702173238300222884464485512635760421699554977064135932811308934550465316582543566601689570966976223986153189619387820252531179464701363942530479637587124589335249122700230584162294241180248849217729994150496287020847400228353671668900073399488126156462087381245318206205161155963515204921497955092774941917788538615494776530512926282876800381751981026262375974807896157957189332658987359756598143356416967473748860252535700181772641626880659282614668420930022463256012245988154494983660384807552341484595628787623538773547504768384365462761272272712329585341811677544909653316078560165743130238987890512751242683676050349017769284767827946000369988337939256255255783942592365310502125727853885173551330240841711689604637662123635149578156474253275286724657665253397116496499389633045642049975020415914369546077221629756654390497499760152551247421232864391633042061963533977405454547098827615087049531926324464908573822587111660211506927277026778359526579017299597032967607132087374220290380139569741425504228810930924771180593160489183628113903193801278242289597062925802501074957906336314021824995267909177525823348440721992051577546914467194263334481457115526082607867455381778124708294464940158931561813808979839271654876025550658936064132208594233786419756950952752672307829745475620062149079077728970401610927645368664108993820125985871184470926927021013313737876199310215620882358080721265523058074315807346136626139582518162739724277341451702169409644002032305710181186244800371793031469389176985222792703867907998871593835460796677537726561142169446795249437109168986254652115843574894029825132533014961025083296912801077150701911920038535884991665014970887187979950550648404207702597359877380490988224660526919811090551470899685046957747825068875702110623366679421667751428642404204950292986562034168643562044652377615412361603968223023599237824820100095242462838920183896160183526016924085870299717674901503921281568001012744985058437027316296681875523775870018365881653011286102747619527439333782915484526336385693977447938959660683212592600046026344864898326521943066087440803803210592508901202577808211216309610257603164498433133736820459058010622762758977815749158537874159873692071951739793409655349391994410845342894649311801376277321148843150094413572826487504170900246106921036042629820211265261837737187466635215386718711430115159313245922054804126352778313976657136683372252888603379895512981669423628421445053015122646212941242818141973646130014536416525977868852093867069189030836737427514325850791510554494710664413773753756279863298685003903737954906826002741538237909855661538478375535327824156131574914953020626771598404462159021738631744984015649356333214649359827735721454250470773629720915318167676037394002656155289740808809591257019340464843017018419934136049249454099923233939086731644670846114619164822762353673406640711052256315165617633080307558314353614066384057003110755548229804289932035434599062051284018179153783155652522003186774540193290500329666034804930969360223196268878235496391572846684034672338734903775923704565221402672546437211340419782616157298402339751482351045164981567422709316754345554654888699173567061916211420148715288548086907114725919595583286180819791756002325980633353589430377592234134741832111148466861865544826338427609181491465290182684115377655008545827638583051829782954988696775590036685074928325106285858173486028807434214207151148074565694320814915063524491024615233149736379067900210905249857791714339365358373402265964952740167097827598253926987431475913451778491561758195270086737874771418342818311638044949367875664098644676836251955519549236830257035516356278450729289061568876146517000000055347402693916115069942323415616769027510828243051184744174435122266451063264632846458532953125587848532889806309092988055488782384792833282130401915944500757238310143007916547913118535700700711856556220058858014536362777808109742513608661670405794043325435864989158623533655032209845823290309926153809152796337677486890528247730977934497146547404918676704361693426759789941931047045265012559617969634152772666283322103017751515985311142884270712088383928507383861383410014946889588163465521747089156958933887712868693154930057981169054067682838127576829478932864850228559541579105954897165592065764700897464480922984525570369110228252682231499684849032683530566303547917753119046075407586840292736325704105352811199578206407915024759425379999439061054382161762163424001320822084651071640959144645698585499265694499541745022130971575468945745230526838212718554691448122417040983902987733512546221167296027195613883553562166982838819580837121492045596791749840842678644186387087261455091852110209569606250508589666594612456252679843726415650577608323082941025383809493330045313350212150116346397449396247678956165927918198769185418906178682770464385858229221537645590681012649123798755599768879078409602433772353723717984724924429255571080793803144133430378822369859219023212177527949484780397830651139412391448161982032521890779600006607031057755901403365508315465091393109998085598151018085831895179262046139134215725694231112984969609608326588804934778057473203958869481124935525005288381099678739717602523272723094460677189853200320134083898936440804254419495157560109273135083811564175736710515034695797682851744312822079847754938702598400529105889007656398199467539517795116181141238561681880013750084969956576780052184388076492923123007570113425868489487130948192257296654535480944714495729391847058206110533867213725599577837736663350399733325108641883527492431915834819024512562307452227129512537265244257105252382776263479406424309942392770511483302605048399574378073395469695377291356648443394560869615044849419644870404130221284038242724843722887144077806937964343884049405013166938627605398060742137853696533904240303725073758326502825721660071707081322027433495847078460117350895806755192428596427770994220111543732882390719097903324496743762490751535630199383102115037384284538871848199739719586937278577875095175253796393432845272662703227823514129556272063856893507824045211922259166604715869974274471664520478386973036001633787323085489270317965952248288837274083639481076067105614028455988605671843441139637685658933154805203558468626988270406346297904310957779519374401401403882669002208168412762114455237808752703824955369205235302450918258096996098885836216855149303112673803908647295700699115928446893559278742641561311901508460429652343633107385865713114713338737628896191154092604927957044642358655598328535252526236909772452484412552437303123039653710562427614069587542410122389577785499526549982820762077835600279063291407481415024912728631581722223296338783651143057539498830859533426630333416950869691714323196851068652335911981956074647642554726977001396730260180292978188025082868872263184555512608444138393718755191624100973288564381166933431317927771998217790200472087379913434491811559590330024411740314201132232024403769209015056609616150563847198544813189483789482088230967457476085137373333260650836638194887358472500670483324888193144140796839412138870479227291841412706226517175839855165944859264096056465915209342006849076026575141630465142309891669493515320815386141446407662727266098841698912638280366311183201169379083784228975827025984820903623700923256554183730743472449633669983013336548121706274394287640844096768555139570944353796514306979952208760999319882151070468159993375556590434406970945702423455918611253964366165599183635075164826885952468970739855787540408438329060176114413166131368135655437497207118752674011124262070978491827719035422286548447879102643234261121668536273889508097566965618395293711467746194415255203921876351144760268298005200654838278771620102117751741372991191221234793429184155407841830505849445840104002178283116893924462389175278399850101948092492518738465064958542837543707378238931966584772074569523827586047362253597582627371982776302105880745874813642241523470238249730988606380107618249580242537891398052591478894523801113503243903167527013101701003327265880955727048441212573380052188381764359133260891884691728368160501449759098266329082625398160839928909867040832711806804118801062442370081647425997747237167406501573970164881117820902295647213009968343997777155206149559787226048933760003527415050174522142477826667900545807432573748487959990767814914813053941901450014457710617886812706673580179044932801395560307157720143017180501461919325158171216290178651187911538761460910074109286345005882255639234090078487771043746927810660887691074239863997919139862509307431601631562787070970494940515904193428761354564430264386829894910590103117507209944508776197686219222621748211012188483863714526414155952678396111348863535903200569035701552920618667316317442353886156830629758507970283175690915193211060258674856532984558176958989260820814265199155040327946423910427198012138602866727879406879488302630528774303532729551632304284488574713505357914701345750175667297508596616710218226676021227299316940075324106650129544804240098209844577412225405311058627489439070375227105773066774059807185287612736230596399669757262781584523338056958635568446859360335112180475399413003880184185841769006740304413886652771890434306524817673665628734075180379899872509948631421782258755866185687660003239670057193723970620619983854964718920688504860729624626405963930577385250097574587029815429255656213170492182606466723724776892096201232894777351299231839202679989651934231428248273558616601182202869839677854840222635383051082314833389300397170036681932572560254354696901179649816408864792077606451981689326575413893486894338941016080907462008940933337928261941192604448390625697178100205786821731842892408140474229333845106755350536745095881317035155200218463129992527138664315119585533549415633180413224040218577048924114017190107281566910472488226017865993898009439590322328112746485512398139758914799730657374876072283075720321803154141694861488024105475561985392724477673855349798997510921465742066558538225285756209702527854407195257515335538797350305664921810345731352039597384857415017893151351461649431414493827645734697154295166762801634750969292294022128545731537915136948745090145109189505038371094220626181958322734639503186342714547446709026504570293076539243269754543475165409368729160555570003846253795443831887983463128231528593338218160504358823600911670365445375456173682748224141660925561623082827907980168181150673384980468863885768466175237933888250229534860380935705902974521971644408139181282731238288679870262979465035154730625032215736393017284943442600595574857651624601138958331300268207392232580984957685408742274713138240957021722302764670756986300339046439418385349057461698687883542857329202744393655974302588876860287696842083282968654421169018433379173476976186287420172998891758686231950015707080101495083202155891718331282461150686383340821863579708452038493189459103538003512107437676513934228832587862624666918430706709823167225900398072797682183084339694938800656621707399250353393946537992262627725400762238658685681597308767773350398918081033173600213011463567886693024589109850826426089943607907101645320269687372469294312851188068511072769460097247763751666222911720768860077884133931002362204467514583301736987975978927950940809886632069689758471226319633943286443808779739530292798139537224749593562879728737814865042357549058479933534739972024990454853068743466594386878122716862325176713261410799737450125465812890406828645965969015658460768262240852165332716162183868783811973582049634069697823337622797749299765935577057539427592426632159660385082002193020144712022783618644481419316099388994260788900373431618750441159095349739129850132071535531856088833286284698594362446812049034278926195107680712332249170741701772857906304944832383883283717466210664944100575798953872079415659077937733319176784222965548638355280793080602172937505851359670491508276248709338141608031497369120160888743243096284786676172509059882486904971668959443871987355466523146951699485973829769762069325343855646803259630835726606755595947098599511867339201161808736658138211932846348623156808707981817252893684268496253806620492662308802290248317460830512492778556866318233017782678245080367400064942026176352934593867898364140449151096485281394326016766190745315371940460257322079918664436251966474388481374820022071691218370087753071022633316786994423822521138147868452971018629033345063642664233758144078403390525295229314759836160516419654671053910159570564342531580980644277050157003280691735980408616347770087491448339572933845826054497088999650595810103494223526550260442735737537478777033425602626871167038540155819534971711090975231065807551444338588702731492933743395901518273014177285333619984203581870941660795352646033165241892461775160701692902609767718411485437732162438411444156708063177494519391275128976309685032998866933187689444009905004372946606387735795763009045770460723004830604318719085632892208650052942700381136045669044189150930708479780408097002018903378572506707302548421807024335337959908362313633394751387503116475788331253687945943262719945716013988086779674831606724916363439361319320306980241977538100756553394381095500287730243186674228451490989919963703521469992336550169355937938871582638372648892905944407557617649328605797229200579112034522627983888281835653616409019743951295947802127669052927830465130196397618827819107479479348551908831028255807758798355008882902477420795482484324538405407265823011364667666601214698533736762907882514346979158841526496805256966967463370693680321471024183698278045995370947146249602570795534112870709065941327309542206564243186320770914910945913214740251058765489352273624022525586387928724960053063572376353358280338804325173223524765412987464772345158367705310657084292769976043861765112833892845779348370411060642319289357407413587922354776981499684267809860495340408028370219988664852505659004978247191908331785396192399543655847462096632404585035994641968547925210193694928434451939528417846432357155472775997890820749409369065988197543302964943542810160309353194098559748109131145470347807873933431056075947898629999478621292876385799633183106767135627277534242455626868873024850839902887269992030155091839692533327997595312847441380660461747716195895513137123233918137833580113226908623280032351599328907403937982553004044553655336541476069375519138415972170633553420809064226642097212274700136799172912523199531326224458277691608208075048988528347323452855103453016933481277899826992017011874990524974925634301570116705702514247478574100242438675327844834384902787377218337350002680800945917634363064911585523102605532358402595086614556487930267598070284318921280477283592008996154363193942794929758764294575161515732528885263452338509578267242550243276698858231862410202466926597664455973584759803633152303622916429303250291142857588449484737367130637851552739043872146624984420366382256587904406913483526868162787758558418347474855702611871854276445904210697495335144868777453585516617879315140353199223303355932409383976839528481970167641988389828450713160372070504851901661082756714352611617729582993726520791383203059904252275358206835319260617468013593532004376143467488804165385891030680844572735319314154002613217363789444503158347286036562326353230718616851171801034583820348378803767658855494794123980721038248603206850246761642758420703520861419947769332042895064588573902272235098756098800527308870696607389778586438734601381388326506588667909898310567552903101907552178445000842569915167124180398963190009755067724729779856582772245343008332598089887836499170006642165554926241549647177052012599393264543702691868784442585284200721526357005932577116635297631267229464905361788611820965536828791475228499370949211897243939356345520329781177596457061320245119257768728999344892993243466250260491397406779696547002153325404841031971806873294573339998505665008309389275381549409825779720405989466015706802789292404500420421853325515061779096205147101369308467232780013628855689255668003867818300923391411923919557596185545830419660084574240425811474617752101195502242959782942887491659295000705809906065164754309769469923645313965066830422138950751677132079206817994950704568046174635577446125836241447803907620683320036480570978640022141170318603354388416478414235161133875741092259169629536790205589259666388784755987099011479089992151761827487472489736359157236507873334733002580933851122669906103829411298599395354173455498182032217398053416311217360249383175510629393965498715857457795289652095039192585223711794762199280568926454763546731362760183536952502776693667679920388925506017530269759053903503400190477702291252535828298850685095871353800516516328764720218762353955370161580496611665340389063673172171768626739851518731316559919868297598652166241990062663382238545844628719854960128828289261380274188307339129068623232406173597656100586965251976702501711372739628743960774194693557364262635173942229546747357344421945250475128327628670074322674778388719975487197530669789912251014973078564036540926090389728285435925442716940785642786963924728588933455242546784556902948671359061794060355946359049208460063044103541368827115407236165297512708883931611698302921200900935343464200923155486116806242933338955235252084374498844693070671103797793022135603509765211942884664478510361864404348906584884140598400008014166720530120899089589988754273967527974143172011138340985939749520966758475171817682665529337213953552213251535374349025058291034087842115714889473610769951970496685515517093778281726424785351564000362444946173536751551226052978988505030601198600275537673213857806476094309849295388779866059015509807469001246191640289699854697919585736652034691142341814711338479900797653666577907759547751616231506854715731004967141132246744868654820280755609022917599782357067792350557785252653127536525234131883948027297623295890661318571223241155148335893758186307183129820187186590484805645962636952343660079572038599175489003647258221159262490809309507513501755265101157098697587645084947270778651033062159089030282349940944267632978293178659196821101658354171199178098975912444622558582570103549585533920937790003642427160717633330786376113346568849062791019089527145341285622894297533160541110039429237699193974204325142130252164732821816935291556190486604470528424414836811552796960443908498176619537732406536339900757466101862882477083085420066701603612393775476393792950877462802890387056463398163260332901723643547946270855338570976416154287123091914520976249970347862360631850538393833691712926815889136054753614541588157033004630209854442989301691235613156240979654646009410387314375481522650599566967014407323616962963624128334968768574432971551538154313185278866385166571337377096125622375358102979284258180736870104224017062504105003280822809637520936173391889566973073729982071502484415687710885880735846820562555323816347337195709164902304886087862089990544280672694439739246025739115316727975873614345229125172154025437476518308950092107502024956782216331765112949990374192816520065653186062528754740685971073047709891957896395537582632514548855516700953836940638876574305319912442249850589324085060470674013412214213726650115505034233357200401781437544854603918761237803780319215648284150601523408101103011617704146655996017378089667017705573593722082947514571359525645574817768379040266948139159757680115120491150028930943831116411710318853773023250359480606221327447135784773772498748845102487771332692514966132991112171979435773806204406229694807033598499812325553853791638091390996096581852851763158657514560874744672067589744593352058723015665175356942285390419979058973392162780392062351539173170940381260574352660871116185518562810225406315609513876055671033885425981789931810495032592088983302045426095621937617410880473617697435588493353948896482589542697682007970707213987812221496513708817956182752660193934518344393104814589734853463454803637937419184245147816067005105610000201834465512280694688701811252388170330958859910959100404232087851503326397209367461018400933194460783711433812375877774183532036541834601103783000131638662776125531238512362980773618410822519455675374469782509602979734460096464105201804554259901569922874702477233396367171057065042897804699223330948498821913837907373853846438250971656405021705869380579140210888105223088230896012155607275748428924766604719449618696682959671226600065934417938109677783776009937735448907566278782998300758157193334291428499438867001188655234337595259579398771808458367208986910128337337400438349995131142624682671169556242780577949271940390860943620890157798164315515276039603831411247351670954684644762632434503504778790103000211413319160132584089971841102420927225451938916898467639625119248620423874385946499194209490320239062855928475769882330417244024862179749151244628879931106574484096564620345347609803694847793745803439708457576028028740658033319953113813111830505232632614070464460097754339647125947214452721201082543436767893088605378164211362286997852698960924168573455078727892217155774297176588284643492404066081403834981566987607692897554049065299928915281041243465362613087700741431513943451835362732087511905441480829083516980083586643573345108424532576832291280567620774171151920581407715847066650391654307558239139194108868777931843341317118915646081843320660745902541921874136322737703171887553970142565281925473928505799995201011453796328837157090434327682046813769546173704963592991490408569282917095766840854455385048524505093557756053076078214627092175364250802438144328377026718672849765183482026532376790629440566043234126630181217235955989347473099762845642381257800361970666908577881215381270972919922947666937359367552502483714890361857724888464204485116114732790887405167951440247427477570206633494204271269192948991277101258065820295147116997190545783595605733362183591691955369360716147958500172417577050035364826822126554880394485463955346952553166755731602304846751160698131193311437237780831866840192548714031846276866337757622564093451536551795907982327513824668171830498247325430927670074797475706769406332237385917141239107547307114827112254098104451352506039031170396189591369766377775326336458290020317096550989188941969722631013059675374289851834405255967644453880716791977442783585457098649077914100400013679104066256778050887869673482146946283006237833998623004352695573454007412638206091171250892841822607601842017825257092647837747796488959334958458831046667598725418488955667206102166576215195061977185509790567540904179634489083264097451530260307680018545195460566357616209414685795021786028510801651704325075110976628114461194156109530418645942647944323226810210854848356347829807090738353092769037233539703696556554703335488297046409838357590679100371939589012672054887472968452715686822941028788945142280411876504511253995691740145881303024391655392057801846999811678844579440914443432744591691800291127220765783008627062007368932230258341588396866668742125260235281045412170034558562259212156106755240552503785283409678296403559146465047295763842878637407668768254943980001757720372344272123707498925055650679568349609350317151895493563843927282600563368361493276041593004979488337781470914959942743403266662661827786117167021943997948769607795691736257934575918211702505336465482149828438368295215071698419173921202272169906693956134846926562615631799397090828579713476845901273221064137430761021483825449975931215514951628745777271117256021145308213966779497841967895773318004286366211164208492071453901652503521449024601498601881982388702753454697770800556272450341941886956172197223218875998032765078207090035703494262031968752424909241507465750995621391503400091301673074319868014050791157309252537574900775377835801881592896716755123078358729415538277511950417776269424794767321337486233527990634118266260188590093519582390499295236326626429157633131562973776643314458970342286738030814516732947846589306426618638760085933101073711359783751536748914880034854653436246205281900037798237440362063221337132673641504335080244422946367665000418925659213322087743744277362255470893566829142017717021326303069213069889461247355510874411575189809538150333958104256044712828916861370818249264887155207670721279006131821398287242136109172828933961650022032297077042756840782000541851097728333150447626618144281002850641164892667127693743011283846665035883850301711989412431159416999534252454017603804426040135023019732694066052035666655903600701686926751151254856750255730481537884462850583766783848607939264502319217964049285175848100694778765235009956885576195729448541925689997239596279921525075031933275053345703849952834182214622869035780462507015463404733440473846600866167344915736118776980878537383102671597307850623173887105517998090513227440324242592505994633139255215742162924946725588014880959529784635660603147983940361932769924689238694257047564939386930374291292221197509130471466706533644846905900336159638781366934671462898430287996677930075749684556200466489190944483220835997044556462626244028693180130554035290093608537971319967516641764873141999888461737806823549496693835974707660860783727560973707352267402144993731911838188010187191358298018468706929074246847079628915842292609254977423544293196300493131360504318213686667846510051951672485875354637056646536820219979160592517788541629633169579340380738596352446888424002798246563359528505544534482625897242250613772148585980776196668596577873590862560025234686012318102189142621849439202414597582307162804216425167987785594594414811642814881475846303672741256671370162586332122078652205071976800944365812159662169615952670920767001667977402032309514694641357610560227387207567969631286735943643350186536898585235849467387673398707604747334915147967541488397863366605076599305490824204301578210198265834856237751963001747934072100251591071026997989596796301262897834618434627772282359801530672971235338056013965201965084321093176495227843493775468718601724210193836757683585258090689752277328092737659828278034889488185839541364141428360401753101742911598231205855235125492816238939454035638472333791485339791805950569963587723285898733011401302184572267948937511066674535955061594693031597507017826030855500535956504000988244570112328543878278504529973415752265157803969002058777094083122454910040624968332254933383353858881452098051498421652707994291302524278801389778182521690892492966361164698627948483743701100532861196667137368905607689290353647862369593042778262925374400217401431687401690932300900440615386509774331372265231534682241603711016608015156008296578635186959951978986964802440043852100162375427849461255811751695982474413693072427404019536528667650458296025067878577134382253698698314637539370217765998551018228638576965228913073456290434902669463994473475182099129797866409642954202116375881098825492466731543807591616152783187105233846865444012670276974551041187014946109021448275241331838816183657727546904225312590378238222450432678895354238310265109352899732342816702162634912624650551071673930099359376178604515291499566407473592997051235496093759393270668849130820953414038799975698814283989738694294664450865903492706117835700798002203683626661810503965877867867857510953455574750793851284616969004801452746846649458447311424989717488070422563429323770426337051667005186180740751277443951297195177181604790389395840524367275939370403275402809781804672396231217713337098450707267220910386494286810938216964890202585388700480704337466001243528011042846559257649537217802304399281595816637759828480400268929704812278478084703606791704842928651960054433271760579752180749498318904951247256301968705392859587750886948222633795680701105747904210969217866725043701503587356076994309099058592239882289269642034170170132013807712277790371652382127941050828341368187908708445858358074034773702546359559730027798726530416179952077020611796023965104798892175737779231149850759500120364174482474235430761111272027007505908685436562545892425255838293859253027748047451490806108566279117356882646504817279733014261040894813625343260773685586259675262640289444120550388274131752480288098631980804141168074887031270112231548350467012089095088574973057802121239181167689433862485384331407331005039388952179163610786677383986074107127011732245471776675024892371734631473478468627875770805928560075157218870460341186309609353693297068537357639580387998830910947042548009339301324041218362650356183376954730667790252316465943509996090217160216759076640827012697027526210025972432577046756987991919697872109981696532577489279620399109643439254153954655452126523454812636167982500246104856433989510733302310287393362757678218022001325284172773257591640658542755270962435435723037111576450778021738638192527083343735417321406334094456181775673416983609783691890308874838316767106319807762160525495413727583651022065701806702884555661242997167974811658902283537356791105287581059124210710387355836017378634928321355550692267286160751928458307328276826958319400021925728013442856855232827507100889876310086496623276882971446809530848887780617057641367193515732881620064009654192759579427315558319293072409752521471436895897245083650800988591262782653622394574414308095759052084067653289196715151353130024380316671331594794910873926478189448025287436869219660430697046353778727354222556563036287516561179706665362076811454114320378593815457807515018830911372769190854285178754931276424934560761517003299338127754182730080849540568770139926711909759570627236354301008585247375430063247984102423350019649254465573154627324878584675468512951370038786443097176206617955799127577896855447477902635715836820061803274282384820374252372179055272077578297394413713040018163405610625901155767169521030876257588390513315618890373131914678537917719036088431478503972542376845606733105641357679382686469918149683957232770606975788058401407107401234145770240637600559990641888964549064930708125328498658846742263797205415689733146720829734071892026590509729577682057784570654991760640536894073229163835330622489018841974312221761264804382161553508507638531363425680831770862557883011405378518551349692279283874053473815680146656942098642322453840895703695216238944264992044366800892233004909606985591322454249424381963864154466019119961804662983373968355634974782077455107190582213771526942925570996332218809005397946973084767242188206622291509864961717878685681242461684990556884722239859662042369064131067255614426527191819675139684420162209611088832870765535911145061687046177409975031798632696384436963935266206898114175916079137357733892327236915904189699218336955809273858884128987681451967773173403953825967169812297241629427249885032483215880712251009607422535008788457293156805506214290918444450870590029629064389718525962737901475319604180793214799227759762393647065283832135999930941823069380495764507217408712883781905658853634689293001836421094323736374268543232085139044644935132739328926556738987888118281196286463608627016238943003228729491853996344144756852292944213578242874489586463777230750604644663127467455185628109507273185168604083434000121608000804517099714262459320148607838195998006466402793715646896859576025194245715798014476471684620704561703676627218106938035289449433032162195002311868953288635382859567740682208417242858834201162162698955938983704056896646689822240561847040821268085514109841184976818552571163526826486886461580297973357775145182838582721467710199395659106134944326014958334971313568567155973782605741672631327311444006712842504354168822730087567944530695937834434753653082036101761852614617500786585057955959505401225243075500471977752676061004141922737701234372109596901805401931613888815700178710438738093162246552041467374903218739116875548352644174087963074775398970015661875274986943226184746291416176539808382861950045137236401927553307537627881114168444284233092386563228795390972786352462468675091541354218786898203858146555484821917603627958363632212230478481947034846745557659429536708220238788517398953997201724368317627152102614643136769783773180123964797039795072741833019600306671971047795945205713958294799214774152600362048348983062869750880090654045922615723191374332455373350572094632826536507040687828569963996076365876208610587177876404581014824051198830757942676482550309126290709878678290130878074029645137147251397383279535525253483423122406066622321866338557828153765197754449363711864674937443138814063540740211768342428199465634683969084699510770624282320196807471301962816823976179021456956211012261145635972295127427333498538954965414749543806177084575940655734514703896993495930556337516991836809217381672631983837029789954496995290077180328839106220428652682297478399286785252185652224940840703553665720146355487244331833123502394114615682103062662726195605117981317643583726224918594176435626449874458071890358821162334831011100911592961822385880246400845835634718486306742829056835778693725667065294513541099090019476425349914188214712517092510917976721623246863101676165229958344804801588232610740347406571261588547892988548747093831697440974740328326818543767062347884081139931983669285655599925011172476948440153409697439378533489218017030402657989041164099988892934042206390990324987591500733798426777965764832859048433709382032823987410337359441195190005274220548352563323066503156446268988238237362873581905667734103656696673218978903165130378936615128287869267626463105552300251141266587135432753009029240315643731488348912003518916391251758187674946621659302513547814466111954278545379748268813875620658044333339067363067366392591555348314998313669444929036538595041884243689568813269889339950005666020605102381625440145568433867556248385620729301533528543149412191772121732923778190558033997310383794429356133971826947725791385869566802862034242094842847425936191346206552423762579503695757514252860055113120345417475365039773543107879014387247513090056890104567522821162631938341364783279582564730026195914419373160889648794092113160402426706727403087982221627305131441956102270559194806945508459659006837956309579724679269463807746968624229591088366557188071751303963464374998233743884149767855414666484693355724960328436602783766905905680561398751708884342188384904094432452847591669660633685116699252705130405795444766524295276458799777255624739673591938446428846355323948326248156815803014811988130864489084779537253655045811180173080652546551044514627818481363205513128837293132451663415495406781318119076368060105208618456743077455348857986653644203424635798014880363874615506526464600018223585855387789076400632001302201944850075205863055646721456966185299853760377543532527334726489107853240399008841857866840785193951592224773604917405776406121319727163857851050412326586166805927470769106272231293667440579336560194384963552954039484640646789795549739549015870086779050201899400931189264255673211363211212508395267161152618955362345798955789169434481003399894914102507101745798647187836137813376740615595365016357049053384488025562720585468558901526089114678761045147361219806749435655814666050482092818743998367365331799123822545887338836443740926079129181952964283615870523115403621293775885093992528984210962106779424614953189406937256392111265845062227816470552017894847532721848817666043246565201351822261941307734303384254180794567159060521942117121730102363366626490661507889052989723254141693864312512674787922054779593970154682945790660717787691962854666291940431260110207044065636536052926302923790501201631731160811238801167283578921643917877046664395598559592961045974543804984199377116287306056610260361751944493952756761448154949523142337187177093344094012017344691223603432279348259740294574209657726590292086431337119355675086258537029523559138354126291045118829951354730438165274556208681359162912222740231631540783341157319678743534452729383034703077554611885776997423319221085791206306482948075899956289483157958918216069262586838090315468650507208245456725142304178545567090373598256508747861921306169052934614708682042262197643711192495839202170594743060322697259843274500605385166335852753384006812431560961940485247984998709016000323481175736016644585408843331240624078650924287134007523650552092484035456747559076978323480443163848449178829621703568257559967162927687190667093892637527854448580609328772335922487409416285913293422634213832067821289713723137838602008914474993551923400446365252261659150643514414982972831310468901739181245527515424381471307831351699928390474893309095632768786338433961802590364259906261275055520780150231142914521341814197468915349940090671128042723089851213674390011504745760795411930057569695014823308766118730755850967616616342569941492873032932360075928192829381289280220240900224716508075286821602856524868099276624642079154481379900732144841568629856962270193020448238874635035050484824454294584358006506046397135481868822215072178939816597351894512012362195616375238948981032900106070577779420658567398126386271535683546923448383675729358687924427466903768944347768227900601631617665493717584811606956128710949718966661977125972979896540319654078994284210323077081199808178425543709114877354199252815578517766459523538605935416821325000933973518240076064815863474003729243379829074867964294181256496437053646197452866261392136844821592296259945868054667320926607381335001585600750280562100838543030639287360809783714280300222693168517989381331393149170837747520060234932952283263197812189362151559406760537567684133297745854644088568805954104137357598099435231527705584453616793855527847657508958250000099564228356889497389255318752281337266249142343864801718367905925633900739151292679839774598450696369527608691326055695725594663289044791777899548142339608266169613064191801003893122371810529193080254939168189985680403909662106455988685813528595155135881801289798065309569594909335789639374578678948421270757430083912749539150888093512202230583148851037218076922027409766519963295166937772834299139120426674212990944112938831188815052864338385093028753502864645592212682117808630537217222446121817024753889272579144879792713728879962811922003141919887759116195221111263621108398418128152126359910466080908834513396481206381921011633582781469998274001395541386429470268110266700721742632919535297723147816626909671931407598873083818676335806039919132320831443098113336345534060162033045679672825427778657185108929822420234077922515289517622261048778592670561239298725456413511540840143450301796252733019593183902183290980086237798676610777372125527260114222514655771067582312582227757609259907366042024193530239262437974952788582906190815795366674742343044583844056421590076594187506624812188247876390345932829971086334358172587995891711070652859531023390548304657836397731919641480497845163620091874691281062009514477165689279869139066136582421197420596177972504389400026763153999714459417058332707070502764711638019421608950326830240830369293224483646434146245414029252183623958025375332545166171407607774626821957807917466631852206860383070196208454468983761723952210672977766746151969393638760198748863937089684567177620740358106839387123207852171484711492514298609559235055016574207951974634626837238421128782417506373063430948396127097492094975218630294745090017902143772558624745517683228981645959515931081910896855300637889584311863445281469870785892426324934874700124797220696674967987864444728190682323986259417989193158607664352773149573792644092555457373561394312146783199708277793406108449433840449728001949830977204771927085896703759877078490922457959372163682780484670825374684473212051101243706027436572945169549831218663893619743055354529660416275263931323335774168646214743154346346572216436190413206167751604805671531502237748157199064803292854104704449678073312431910472743473579546675572382896606995056231854495386404010117618664282464406484585272174635072535114284047449507571703751926968671425236742337613671988746872747768461821414291700646915171106627060994766929686102429899881732823155045179747806347163326925883614141489827739660336011221736993040407775391661399522718397167007536130304694247978092694472163559367407451495327972019864573272538446551589760629870982515667528436597804558755317922028468056660008243609498831523286825778254493236892203152858946121426351993115504025150856347068175701733731955596674970710549626935883295672588137198919099337005959553645063512301289659224409076667735674875909902309005784284296269462529657693730597108245331909194003169248073903773802001239583795211926174049450891314412294697929046451944952066847508074032608094883557234465651065437602496859027071169007009810998013102471854018510194263411506582663819961078894032573489413041223082932668542248930553630928721362025448391326693683386829604107957053939353724958593572922594672124777913613611466605809735141508959215995195631151016034182829543398470412508798196964306146861043278152116084434338831270459737029286772217038848818764763385482814674953822021285433356674907572868386210079531765338656208536585374763048218769724845984071757109614695598068460445077910428998593682220941888222809825946088851855461982091495524465590599936162189177121666592611598695036801415474714101521552674903568463613367374053053852697548973021332442135319552772400631253094048429709571371111172278979494841678434275534734263608440125450341998305760044661471072229010889919896696123911771813481679422494547695931697804234536871944060887261056713661832859050404751676711066703899255836373821069219261299818191523974029976178356146941277010748203872682859438024990389160488125015727949958876424331930057611167014407540279724164818871460933057760984978524259575087479708804796421973403193591015640815903680448374941170247356194540177047822832246775440414598849267872939464503543523332031671664387815861662176192753008408051009425963937931791838623026725051535090089577377238821535090249783065761763462655030923174056890488409218586097753633456432153336173720365910730242131090580212721446360964013542068263281908133664093132626991164591310438035463346588989177464646634120870989799643960319056558695337452608167785773575008364652699879508586872280512947496076321150567426559114118902817940270892124584118031846656267824645931404824681464505087855661403133147515813882057096707866426025033548209616597143556947201258265514987989934482387097320820420352340813834596689692355324948611998675122307759171145393488977354497239236570020075299266442832796348890692683202694418930270056046032858770717049944995282965498462558334301351320945104346712738430203192829890142391551855187663849049232769934050809253734695497483057046770736767580297486820698765324499331333909726867317989220936266828849371514424737778551819405468795968846741985016576044161486164003308708753384459611244569407445371224756961154315720815525376492556026392555028287982888288258302686238376975280297606478002704244770407253711753880021121208123695027386606568052932660066196374603601640957892849650898536372668869481198539917780292378531655588622796126383552066998509556371721074979362391402301464639247199832431138379511582095410069398576828807741152477650241200534568665976531540747777491459988062485253779684719481480980124825172208518111522457914832839759835463050458802525340933973179818940906088884528516890970621859580989130272049095918352698744152815382365680341532770654773406588958848727339064315135952659345966306894545491623118042085732092777684856361930147473127093298163212381366909129442331002580945514916706599861619490008142928313778075932089885382541262226813716569060567503490520474627570337669478501320421978676625005307657532628948922328846235896395926433376418636050878601869314372715449199688504853645134639550296543597094937601736896898090830408609086697811331149623017641684768861799840244120877880351122182209614852243278520007815747738923258207922042042643569893953340410175338848128933897541646369652598927812778293104775140933669321992336608935116165564998838152399782565393150889428479444078188631307495471995063607003917094810701862542489202536026921654911719614965499085930849796128909472520098704429203446185806337293256811103584076652013175864156374564408267749703565189574296543655548197691336248118130444005169132248107543944055649014115301008983569530171197198921993236352017061249362228168562226575538809183764815722303962849919180170608708217615866974052276444509671690910245186792676542813187608801379462767781003911809093296454203688950815923026479303387776526691296030457353539697545558968948403947733739286708163049088414444109015255272874575428215560718283878376208346502780868209448512189074386008003676545487244373508484488023598308320357597985500079950990195139003106267136473886903526618352846978387519524482874427440547489441654423507889611129140011488892841098587282463646341684291328697862698867842509134272275173689644665753102422654525564177062587484082781822025124409733990580456495433256974626802662021793542377126148219089316202323189832442156321003187044948575391771690969993401296757116138510807050832074316593099811430015957685411700878790218306061098315158833066402459924878963132817370980324512573628020150913887748529693580789826704986867681456382245677674515796834312038000640334895508505326351673434384046592688790045440869666615770735572548632897951929490216291119411808028776831340789222165964681062658470888542706215837460544518398175827684427073445937381858194501026136686020992306749520265030139479052186415324679632818699172005925231846499067457644364864914804646475827039457570492310600949023448943971174291433529156648732662326113202109084496156898478034074854673764455727036694715905144810832531480681204009241714407131987204823720471573279022371930636905170948359626489386727938185741091107624273579538461099890209172220295984221933368590423810413544474792461574422269563350721181314946898035216434754161205350048220377545877981546552282339604606995184074735379914877381222503747930166790587484570788217680209660342226120925455059442009485337907359738965294388786021293990479093568454738270201857570484137667348108981155443070114254476709699749180403373997797798702673600114714041640908985503128346500484784653382998580076633677387824891841344758627144101330701574141667092327051689258680591960988974916130542641472020154385279607277979018840296808878131927314817000182048373284234110289010991190437046244736907534217485309309041035353204045332041691571207463713807136967912209035411062864060646816988711325258025618539012039413297095062693068505760623639245336130069164284100271093658911996725153724979654542764672473888029985392420973397675102885909106137785989635160430791383360186104092041531121896377612330792389175240146877312315544125851605696490114439617766741976618020601971652224293978050204506596589672348382026831517777423648294937347566638274936910014106136530539801077469559266869536712334481602949692710087472065297854161983424141633684707424143008249369649828489941200648588693229872007537839319254014127374442256477459312800274032439841288112564622212494598463805267906232750318271426428246989327959553920329198335479096316400983769349055004179268799732345791394399267908928092038843168043083685094647982624113297911631372453538277732459868580195267267103581846012681193383234780691486239685959926597125993651713677098709768843401819611177750793324525310974696080405673685493590905996030209132626305771929274111871283443765905586583599118562454316071033267671686796667663504826822434440389485845804379466019514148711510139022417244309549355296387311723852721123108329005886306491306459487910919623766041400788548872500645514372379641647730121445977655607115515265807836347279091965253305038890645368510273877110035245499020044403781373889134728191356723529972411105701377665727098090303579161948736100693338672174374330877076206012636025429876891721623017877414554427787597165727850487680581310445103693943673920852181702519294245053635681112343237846188102276317000727667255500588571423696610329318477102261182985853701522175905764773877973114855871947043345489244949249336154340773131893623183087907799461166566420068563567595093353276073256714131074167166831285400015306270082196467810691643162960111824003296405407687588316147051293106622412527962769774271060758214922443268498153164903743293139846786427655990786716542101740901006073813671695378552903185056144648747343334390785938751194329903929659202053914302337182082615967089650282601178061462851880534723308398758828723104478297986957658900665327826459991405536495738854110841177263170392191438676907647339504582303769147450470507238753119942792408974683439530634681771229977062956823393229735167638962624685576178601456714639561201000131705924959058982166551556272506119968248148601010677649091533615764615365071965544854450526601289426419594839984200485198483778920274281176990903897699953932537531562975477180673030582106626544949888024386258336619436640818823411784273673325848190905624734141246723579172850187581253320328139103299135868488676135788710523146168275405396546017482263948903944164813467909571630108592169596392991573002605799687288745641316381407184457376311202815438961421395359622588286220430771339653376529714598469427001808046023499620814643520102530705396586137017024611359202298271441829451970708964452829768297060540846764882950086057838811840213702891193653469817221516433647461257779135502994304454269509369673738551471212481489135983433757471151581500328157402157399776340693550494571904169631734055717859446983439214972422018012872035714771813528265677150521980388443053592305871216140921350352184217008580512801235412579602318734997568237402795770719885125603993879384276706662183472135589015826901163048192189209540793340634258393305338638471015159176263055892554035820143812922873454338370223997491457851230346440926520263623762225360903953970802606988733204891092282589776375992722489461326080746344666940806117542833517338351631029992019270033123462049981583482279486518762937984923459049502868653617374927227376258663003448198231897965066483213856941464881674329721544726876615865052034848736631477678756774804418116752911359469101773683616920346143592927104120626527900665044494602554132768927063908169927245753597967677582147908273732789609909339441147726534989659798877736297498753732968007903886536966502278221672698288392343017478327686888952792099053696866274795589428681205859739348657941962942271044727002263453061121132471067314527974360604671720022811568203610443928943701428571749689953642687433003137071441222189692889421190071335104145508764786368693385730452715920306729749506737104393765751409779116064782029804746015889605513836181048723669661516024441701490514851734125951056378790500500502575624085725211073527246534096173852655166525745578595828021984117163802012074992919080676277645049437099761289382838142968090728239707403324286610903269113525114790221934673213324167266262302489940689957013053846137109387510537124283616029278148503987637652586248395742789987641055792112400114212989672785493171633415330059820205353790512516041273234749368150818855000118347138946593284679703514079078568720598000128699762052941454459705726432818538346436493834084177754838047046352299975764391862138879495616528910381724298020900835850004321726252642352622089280151206718132735297782128922200962973617256424555949890989443939797249787251706685615387536867912819565300996258361400549351116125713446481044116367627845248108423579377571070232727831050650945334138858439496237834706744677447683286995788540546447776117452602502487680320276581771179266320409894046743765068423708407280774059095234596166502366170590093483925445601049912689684746623685720865342932071319715022813370090747626258792054653175129967347504237791926260253899211219895165142669058152699983765198339390491395448269299145069893949327927756323822583900642547081182668642273028754936948391804148324579470982996473572701577754790160652913781048975089777197826847977005965331558095359590734421467106123153968140672404720853601637642718593293345580698277444310717485279440140711190455770009183712240155669939246131142524832150295902182336715056933631393367658020075251305941891677294062082662013838632079163656722217597711588999195228391936090591433030738816911531890405754212018783370354316881672773321816803296709422302935635355633035654136658705732702393121008021924217894190613951038897650406175476207199780320723969004333434679951438440212085902327299674234843578716014364721598460656848165896383547848789293399022222502090028793348620483701538293826472860714368621069582616537329246435817089620064892982448889696791700268021690694410416176879469700059879065065352510786582430635829289967570586978782619787345801513301820519366291630233139558732027451433876528908137001447803479587669801884814607278802519305710655290964957265332573030592398540694726120229233577466935881424974892618590964306912940053254688736368988966757923495373952258754067245361931286863039224072119555369476726738914425578474316297068832039479466262227969031878539507580790072993598296660501628025730468276219889073382782673467731914986039390163005790076183844773464469567247414876471545154468407272495139875843129567281568264365280157630058975909452433947457178865157905994355766386266072163156945601475217873437710339051710932031435238453963323274322426205813735783645291008068667460718846983540915326896224473077156818278013861872862996475572171179314876454167863168369543750970064083846787730396789391692481522277628782834798918665238217309101066542060549222090455876827609298260670594832734575517043452836220813148069613312690502739820751107186559016480481593018628903745038307949828289354093661756142199342908689082298673628969594149252770732870330716088999188055113150308529484990938185080404517511453884406694520543986566215373159272136872023476935859075126757895629768186666763132363497141431988631702636846170834884895879512824337462979752086207340173321777315829047775019917938296626531343540065318844437594209057066946795372020677102163219504558677121544762029626908261488804131107835349400452188252352879635318430016372444378691249781642033527860226147137462310039822982344336071912864974407897834088020379143890061508227370526804915416519603697559571345004184028837873761721950966128575713254929015853564367579784862244526689123265216620176518173825236748122419941265323832886710051613394456247536982588978335909053697603542299147432069670707554046589326637375232547109287537150870375099470910172318924284091806840111129864117211939182351126697968133849708885312298533097822159404187969779312347734268639641467693353999368710790485456876801907399661480250500012269279807041950259938561681195362660713872090025478805891794874545788368863072850352839835613374106733036846104010043298768742365566807908716932740413327831050853285101786288430328789110536300398364641958130815540770848581857634045829964508114431698865776144114470028794433025556738799816129136912170462008519598806885237139017167087597288000510075219789132661601922035111301308456475993759774317607255362361755249508123727854764051174480939150588399985913411166229767133807571039201794938237171074675441194435055375261077664676800549389140818343899139077519554285506426724048563168313525024839235341562539706547280570856152552306160913301562723972714675091333749712002788010121756238987602294939819273087288297662695927856122901577413004890671293015913809007754990158012388585613147809092793227083357299431309308392074827292024526799295726376184486902745943319586283849328356809034228259561540319725384805807311198386900096058283535534233891802184497461197039671368932004491319206323158565672875985045444801162535959169902369062341746086349900121968802633722520606438659570721835673585850749445418003108601727670012964238751661308560555653946743786581980013435404531890129222905518681033999293672648870933827130975950405802345595215746645353388848193572932767559677980605503401555110665610481856617623985746779420055919244334163408399636318665096909809743282127066459208672190166622415106391680274797334468868653888705929985371780608062603760846313403511971746527126234124378658966455356278114723344801401138956937013446459615199998086098474763775236814462373815409319990766380022335049238854880453624684084040847119937861236080996487069256811315470807672490543527307874782487211380679095415876954746899564847696221122180011511404213269128445259689073995063224139765148666761755239619601399867883989931061375785982510547038369717055797282858908923051260630649922803761297968530084605118648102961122623023019539936720514119353881311962498131825806679227463110849494445739846722487947552763140294710696409038376767011542009425058104599753991072686785175457867294307880011368276989596324548429475707677100125087589993740146492211886647846151294755402538764111897957675334335477257730053745967081302831341649082240806211139496423155606333085209907793773826704723499445633134222045971893560268308174539642760040081659808859549083458067750156074200329277347009442826724530516917255535982405446288712275266819184854306724034751313035478390506646214722700258702572484542835274931035246237762311601496665556150835950980519079169861978902389903092467202002609403238684466864832489581575572039932318440668748242477278251523693448850063860008442844231297435852559379241408042027673846958765501031810510471799041521216678552306594761101155139361029357959912202335373254969800272073117117992550555257316368172921019169120425770548703523689407617400278286376912193011302795995786948142442727585799967153549744976760927123478229155326678450073840548024281918390369181329854727575750561311639492735043979764604637919405665577773389252919967999885351698065878929463243997527931116884745656175009146905739511763249260169612078289668612076089008323743238001251249313328775247326435688495467128212924476690434991531347564134263403530704460155501579924229960756106266762571085065145885608872627395115069873377374064207393447694322427088990852282548082571061319611086400886314098710361013260451645474055040568176593674450543756230025782700943382586467408368963702585943654330562843009754407626001525127012203418384770343236971510380335888387719936532413936514729271850910315470725251658472999293204168180671875204591785750598795538788551231564347400078461231109864763628560256065098019943786645915208432500883706568685160397007650971525293741162871801519048013203627391184209633817399436025701673938602381022194094427186079438283919373735890011754665176051368942113773115324662833618266452122309596401106067879221162599479118454466274934631220307282341754010933846095244076515188388810470458763086116727546286236802342045565157478282242445170417404132456780201326777670260332514922714524091514074898464512974579958956552679561180032736802892033101403933654548548632835758005877135311317482545055601075724910587527872485446874876396251781186570768246030304747618898331833558111428205893404414111529664096614053610155391747989068227307237954211740202071758599381075077456678426383362865609389717619447513624318453398948086285469757036027730814022365507864270930237381927459854062273914326668713798015745791470766969187871925491935786213032231562249982155932270597197064116778292521789816176631737986835287108037691720181763972252251079234926343852673524733187471338500932748439681606285948254938565232917666114624344244693377753631899217746950258327413294186339558315866845176569044501773938416321137542529072898125104513768037215053384069486419465763033024069074617548449208664920121620440267343831532656873274949993709262232075823784949603672704489851882861732617177683345246012990431397617462876026216945621993306270937292482666966201569505887370543739792372797580360713710234675190778098800324508650765182537101915216044345479190895265305246151711052271399259757279829349670169532891381407591876273324594943255241380258358355548751700931956785247216286350288186775817350891400599659876747707169436325624382210633957738120955790446708163104364348695390926487676282159596336942340393501870580585486819708279223448361276119802327183332932324500547060098112974072705309505389783118878169898868209657188612339015180268767975864711659206687955581052721798030181841224650142815683601012234990938955886939131186860426786815510473553591278613601137777432577846332821048267218626256365051094943045331904398247897666432267651951980593294059020023780569658221007184842051171726536468074633821109170658499918137542258065769196637435379612515258832673455542807709063819247753295978970059196945371446620669123555529150888668496049611673983544793724430965062122433163568396454617473065695959000191685336980636443822097063019265172581386888968204005047808644399642488820453721780857549850832213172334510404136986920850077981615946376299088333183040348250644321428987288392329381510417279978699561415796494418568876263558637179020364875490898482031786557222259940332406099730726849771994456064665854125948365770501905438041487443405315923188482772607171546966044537588583003573522111703547399190293729190082569294259890258086792293137635615264719023852361023282192239169925575628165625148679040467603875617161905046190897654458092050072715954155158747967783739654759093260528330836515619194475962478429607722671746164174338775314610995911312596336641280104264712482086671384897295397317760691506619738959216135430885083928042653523017655257205987571047757255090884017109338039550974184000533226357195781551298367566776824744286771196353377548653997110834123809870905247184485578570899350914230264276307448999055756247582790491225363423968277890381436241302961648869303242545498361116994321700953122360953483566202726371150359451277811940048096173170296410608466181016845290584795334030937646072885105155712945243706895702226759932771234823914331984229286109123416571419040937202486854825930505153425789004961125619379851915560778584208193698935327062687234082447903690571532632694634665555015985697612853996834290482734616004642812663639592610893220563991127728631640235473275212284034604469652071334694913981887331675214769668440677117453142656460426142874026437668722564674428976176656834105050165355009787871274635670581721040541199335714152762307914682636252622139130873240278754268640719128421442296561790587204101291355355973154737308773034254287885114690219838266789344433248816298644574045542078074961878029759525192686771581507213656837211228769823474529137766022964038633816447803508824611026441337456868668534651453048664858946466613126063596872641735652131525670655272402576042017143869899230243905880790707227034494526930671161477553477181554636836014947259242153539552432262066055714037905763005900681607446240998819332225607318049462995978033066609918805065434250215719721873324216903426396395440490793578030169964538834717135876575973093929123012176020690244536657438679409097148635749995448271795838298353539712606852071994261320153549705940269150638714643962674766559197512443024037916074432057586795111281302533136839927068671877259044147077767872497239498333049259604655441769976752392988543439514085140315065934885661661057180896275520191343253065294506932845554018634884068802595525905007573738798653843096762461796382894836944369663676229502219420013786583269048056207699954595268014479682729717131258027282843006617365854037036590789706341068222204416681151514763561651473519276169150551392060236576809810107494912860666619090453859919442687576253481824169448988375782679335080379113658996411181487447205365528915446871412811183844835572484384812680079348207530683042173314959972747498714382016863575587199628850060586764051691898773943114435220874328373800284241225674658648272232093749366466766078564234053135128392744431701316121219705078265000560798143517468665510395868526139856783787917043515210558861285289159241956095875957744382112846798572492266740726914356303841413658180879064549414076240425883972814069946246597654699635882273220438312998425351076331814570689981945541936601264463983353377315415328836552347854572209742937781618778162082114244151077805310337369867594896709194237373304306816956023226402330840011592683624881249998259448016993092091687212205059845093782082447250227110135936397538000721662063111468474412721045835326480678131599320305933045230381529368283422583233261770067128564236980286546002870925518501369677261837420289240169672765339641954836074649147941452663661062044051813893658436503205205115166211054431399712797220308686732836408908710210906892498672394318815172275591153268776481444797187777148631129418893082847270368284005226476256585496007143152895894259684249024072983083474334805553412115777703256467603099541657437244830293000404462197913831439643460530515579432565928151199913267234381550319486408054699486571954093067641990644304632887394768291601834797851139701202218549024121216197696096147886260076663798646665974832556516792941982369769989135058493779212200006802758401325934571765333185120736108313788652291485567769390672923125272832544679539458804010300966760808349262467659073975028680276383514675403122151635294210548858798165312316121233623372967366671499482424242819526092554494488176955414790290784841814756359551495400036885419146093984266103492145477873257711594095738847039357878883147873657187887666586563342347583504145988734233781180013871125751252373379499456986906614602983140392959213972882512153123344333883021919581630822337221132726952009938589013662842435844996636500941418450857118132245627426965637963283030078937373258816158624227287939111998143734683018206737604664901901711815280412824210386188596549394943456193191904037108478513700326733741216531285119759112321851626418898836337769078064004796065653789565482666545687897847426706917684143498763410779942369140141292795009575168205523775654912909956375779558567262773223390998053120549851378405353872888170064820986341847706076693379296444545487768378400143229887079616039477112967140713092262224234710430607291855103279388290611438515689352791948740134129175860823433029872178324474306759537448787669697387390288064642479861098010085912185741689770389950790841714805346085284183264732358859141462194016630405228127612447361706743659506460764543908966997678046390943503484297812585518016920877492893295050533649455032110219830202882283364484829020254791745105586045933833358577026472612564583592422152858737482800617707433482709527905665270386042080205588685946068668909316926765017838355472324873473031286624055412539447468856158981603189972228022124762358634852504954447933904328261067436401727674093876881870048088205514343304735676475127004970678242092479782812619579078260873102222202050893041707869289748076583586876807347171588077790799773054663027044468538279820070994255562413197514263033318149708670344109424954033260901223429282598523481594519239373165133838096901742011610103810274317122280155052622275312000900468687436605426870350223800723471452819395583815624653314106042223968753648972278849042393482715357680594452506912790746493841814619001004586400188122113462085743106929596535694179522516599995926662503771193327721685138942644132317417837205714904376826647335275731619098407933228204221798830940932798932052161321927185158387152968259877179578199082553942204791552493389617061636886500422475378260040211608188222720841243089697823418729351033785037196170544005231705328475694000130165946225194196118781120123670516385408424002962746804172183237270833255619719243403036243356172437850949831435442879246279422344334192661619736269243432212218462744460585454059622095757838470837201939041747923630748388246660210251943450786886931846428899629114246934672354603039595637484684594688219877697864201349184752276214712349265631129188954348180844498483080165785281575668894582686619216109828042379263429595130936646175685696182859396177570333463242238932875516694223203833090774881600645504258489520459174204698671499818109671211712444613278201694700660965532218257578405518419890823684201698114043882665675702972703580176686602825953990891269370878725067883207804123409738318035143581294485644391618687734903828002230467367199478782454751721255271218432547976611902225240369244676403322764943655634296489981201853437830595741852538848030263612393968376920100223561371928706438725533184459687781184984093316938821154128179877419648344016159014143780515676245639555540879946814146165980112505404812786766841212156362400906558541100713037686963877767449293735100675371174388569383477612831531918873834868114633590687527526142728258827744107303762136830038224253609247916404977151441370324513608332369151478042269889827280235422549031304205585405214126457377711369376120382644375761674573966111808810713003196408906200946790100939787439235124375017560515040247116830803808704138510209661056508489226486237402165444085177381136397706526274868076416941689911520839346508451872818498877081738079142346273375332697679653798023015011698742988449094247244082810987822736949199299254206836326979074464684737278572244679251248572930170622462490788169883555253029536508561894499559187198430431879068770236418426074723691213750359892476262843890039082343991603035845426785168432807241045624250575678603805907908343765040613703160660179048620653125559783417806283677743911127530999201847865408663673837579984695582330562774093578977936023530787584544326354857972093329448504901588240335062800660951084563173930473754518363171970288085988172431735441629228288276497070181956182011958765363592954087860536225277849329389602564797281070653835513308171535989915864219370686403626425562399647935587763974039116840574839027842153508070793649399057931812843561545149076655297074179956608621717195692101166488302554789871014370411627023486110045302104270563759054024254277933571487095069152548100445312069648597295307792800389897805377843303103875367372065796914097081592592123378112947656696931441075708882711249464580738101568407088823726863806558625075263666432231090364558652028353169989586576105501404581169172881148475052243151055025239064114069543633519893189766392025125095700414737699299327472170089042139986600976385100095697610366518140636954298386137021594331966271954560483181220619150647117543638515559896882472795320661191239630804388877124199050175471879478457003276624607099261044819314169990156429023205739851151666066281066870661733488700306493027131426440989889189091316352207417265655452254197992955918894303873736336474315912766284838283463997347578167102116799952156228198233313546476235700641698107566002233981202432924136945655183645479290220887194278685143064702153241328946366152605659864049206646655015284360083527727646979834479879238899946883986655020851284528476194711242677503420657700873385839732914673635815214223263938253272857278296068248653512862145274529675423136413537569852807342811530151080461122033896123499309968197763753551815501244789737953220810613926685432811359553453496361113030276890133809597347321932620759644459025826878403107699414201261225849351724932240650717228885166936708574851206499849159382893600405339197833955425951037305244043196646101376898901819183655800800910742843373517697062403983155781325485843276200502856268056873330624703421804962744487488145425533334463770870522635088575756282024343400014209557210303104958923963280248296141714514946365111359306811149218168277825028173538861420164586021785053396680251698711588410103498922717751944949731167264937901551653366114374292696261974439348837395697834879229831477748568997615174532024338894526885560626322804832399867998636775341355597304055576666012081902477485889282065782575969748033431589067457427440993039042523381649347360577480539670881513151660000884080856843206963013292242514139638263607606645743809019879728196172158687105508227031086036205537705073252083827601290270397930485904430629154986383197995945622838833395551144977289794414252394647688823348890431970544164387150889280007025164687935907578401256729789675525131012989716242244868227477170228556123547526473734667788000981878757111043028076221776475131621248371293419414666254910755668710281116675867207385222195540345562586314880399690059047077316197131834334637906851301416071550919600432840510922776734848941809649730016279095437708596908599829318983088395450797103592173965882437486352065395757737395357444212508487113099917532796089673660551384466016073171398621864324634492405633627841472545797096023860605013661483571623127450435066617540857480308128740293140999484290840285376142021090788460051830166882047943825077614395387238606456674933014083101173541872242123759537478094399772694706447741820264427761561659215067320092216927882958751459481745904331410621647968277162377615344416079042715268777660648159088065127736983413610381223732156638521582955027719950560906375122725676321030416088294675501881210237026795713199055663939217266154415405994927764795606657471237222732950991999107625136219200489777357456402540433105179793443544814667768311167168074019923427561900360095818445510452896329297225738170996778770308876100806792077923406052530860645190796589494423183998604877793607650477678313069144228219581480375129727473091789661151371175851304357688968596107452076311127664424493809998516890392864561585130941646355568529927320932301521034949604621042018333714304834643267125419049513200070360155762481196541479606311187890229007261636258546892713375477100825789148975287115072845912169147465699915464332596015310729843941713490803242337013592407303004788879394507505562888579468198587241004912896397277317447008092870150589697719616920567720537875861350018799237065312175834653484614140991913228081541955223364431272095508840879316973407167447193437403161875546403768773431765386577011698357290791794713583324916863973559404097315116911486715724975498181858843138017039607429046280459638394388366613858719914273488018961999828933835374728052580822589192434569136955655139517307998535353613451299779053187507944951804971931624646257669526880662075401569373723009648749847084588890637806187305223071911633132171849934814459445270689534255485070735307708393925215282324736402709684188386612009119578163154409160003678984002739850721600656753752257467571467853471900399929634234476794259483402903444437116591825683386337023701892736777276757314318407764906946335733237411508678433158507481771781872486970351093495034678734234312903319657538153434946390924049900527054403642969375536894741283459717764886591269880931861867832364508694062146948326621418631953696206920232144294591720090539267342979011074782697911073085479613671709209103956049803089875078184432890716919639992927971973586683742064242698630258598642084351573575697040054333930191131676752056825988357289989444663722154590770958978291188577490609498475539606766815722202978713127083464383504425456046683834568562561295704143176007169393297933294101630209766167136432580262308484585964696780714496428704043995664339686996876882241438339279938411769949886761502928067637854372731896596271884323961839492450433376725363598565063264970614752058860082859589975214140367573145538507318788812557326542046187579642408371210475518190866282658217446805674273207520043412464953133259033422603204817675745697448421665088937567358138854169812171360000725804509975753955368660419045357776780235036821392724231640820309971439817414680458761078902700747924468132002269547717492965670981177549976671599008259346679726398934694206820677307612918143783204820523427133377234630232087338649350580751998145221536895391388112190707880255030671662260508747157606645309947016185308832529371400000494724477135810873827182095499033775771018893972747911614423059124223777088079956699640363335370779037033199948042083746524925657652697061362194036135362514707869848623030940951670046079750037555568955139666740213273990040807206662268549987849468376311417193873277086719946108556447297541135864448978473968691196209231657309372273570710972380509241376171590833219981668696570937808593706891580189015727305998324611893797673748106817742051185460195705404541867256198036668836627517378171267575225166623505857639917800737885891079947850799453920147364307996644922291523750516060777195471568556155740574032239499554211124351915132113635885033112542698182632131755308654250360169331375882133858323917032656641907904019151375147550377297463937722968403120866177208455423847108220286679268710244050171528880647130313976326970508108331528232710801186931758374475880953739179300364605594670602127587025511979880989324877713870941183894630811097188272373030069834233304730106706180792919040316714162571251089059156888424769091091968842488881155343290346584320944760769275270252048228359293849537212697841393399612361831608770046232801493148487587000644332312571037478630906912026079466493452999601995550560027507122823227306548118361280111081905079615659297431237183761611346913691338908824740583361442660842007897852286173779219770500596567496326099360584892497747064129217828752868880527160990627112181522461379419084123294273745854394559321236568022362421859895610253196773572474405326500477452267450386805666995414998293822145048560948990283045579087512747778246447742461349192807461040731282025648556887622773136303028691321485100058712923222090415262459659092500978724875710415275579786680135159571051575512327252814164224117307744575202874553113347149965350354103245954870905002554075666473983877063953453960723819039271652081779113294266848844368317854958873223917445902208376301331127895085435211661874973538332193246473691419635407201266940383511765164936270512835141894572146266638824923053903242155987649038245039260855399576172935606732812963042684671083814981636135259286412617365319786024910121850371607962901522995038530828516565591207734642811132526225294953641222182167016283456195795599194983827766742682573092695856877659865647367869351128374308821398940426614042844552277295362464932193347198345912897926789265659124215983566068697066513927120869145002417600025600661196032195795552446608342950816277601363146300884592272193089149796633740615446423580953351023081544306003229849790535241828328266714112788361945565006795744419848114045806492067506682069912368051393521907103645840179374354352492696287842942122333540403570417866273279491349360833620894144445609092346367069927944013458275746817302404523197631320441020043063092565396280727801228269016922392288701101293175670027068291188607103524559814638786668374885897914006408730820649942824352890471437167107020516292391220386883420640218794007451032110544951112408208120635277154421116585429109855784000591379095725876097232783936705070519117420999190130197582114381293830392703060879928358689859251868967687380086259023075428784531669712478735793986109920146309344339289039816185450069769014572802801581504581493043421966945017972691179852417335944606764504916283622327579733993072251135158509942448775985593195473747406625220725745042313443666987519247327885048032547420612853611428441323280926031066014369682814721320003771689010815208220213729730569840086301328118169093495885613686103407962765140733741799226277641004785349065898040645760379413377302121422931399994315920449324049373351874688757598370725085938857107841981334394640416612334317974288801938041791734945266397502413462135692413196480342409217195815373635279997036119972292389106637154056900978243638089911972016265591816785312854620353938393183955327100710137558908192543176177545966684348687203709576983801832806135307630021214539135148718876059171351356000237851455911614253351591889850174193411728295573528549233114636219479460931922378199019112102311552654738686807468306536355561931582873175099430898219966182961469844282640923662632158360941776875336443341514922854126260157464128105027133821276605963112358216039886767880542407910115063745573566867016617962752641569031753297056908544695676561958517287453602323547967312110816496963976664720640373492954127133823322917873834479018228942182955523714576848163844019828614764457970557326978213101490260627295252907896047336596534626656194433520852070910356235123759728940558844657605521257520414571497422679737991118172385023256041528598904875053054837660063114791999896981372068991612448554800794355417926863040013993091395783742669570681144493590564623906763900508161946078261901276384072841858008803678836628011758266768098534368913850978350607101792187107016309502538970108951506986168004794151596950982549853240897354292422394553167735179715398122489169599870090379316093487560149823358113403050632533766111104088829396539392936211206592729927397432588087082646905831929678886112140129857227749129519422158809500388778196944723193984323683352757508704725960009759879852876422801383423570686013204145900459856507620191591687663709228823341332182538249530973640064926291672699492057112400981073551618771203755857654123600492068368891464464450486859728917352498127849706068302892700402005790820475031367870011543634838060936898585182922783244017909275776086806916466146553198556962053560992811136038397212459846805701216297769127930364529315536477270167118824014278218993245183874481747239256767517033713817456497320482402427378425701177717654892670169576405580406861077655463077776284259886572264069970210927790437796368082510021128766172157407956341190617910899699426955256197492004684579575857210292002834378540302238692617514572775207531249188031664149665532780886839112511180369144956242283934618957475324934407094481696383749949378464858195511019896909628714593347952651157817957743958555357109156934306696503584181972937155490835940475358631316807870310978201592734092299712731770949684398814218647698007094649664418037537433766590457608895239879066143161270925504353992859011581567386386326436459105648171301069065799031147056909987884967876056615476168258919529734413841211445805304517218075325587485407955154868648379510712495070999155577876568622249689936864151866671142607565612037149488557083829750034303474260926438661790618422847464650834088214050510749561721865454621139937008548646511516392470813015213929966084115112060943575090000539411848031876704708400462332854198024780484231507600862589056328949634781250654223434264299633048070428862074125141720247727569264035280988460387792313140435836650914470080810789119458657978713804259120218550218588671678022737656941630492162373779274696333096900247321212738447392463511416221215156522070144844815354306536581708919781053142705116505729413282669244986676840022642197971799015276173122022868674753711864673029338172097768553179196932268500829387860492900317629965469099562204097202229313231742405277130748078142091645699912699964654888755886222681317436567191649369667171522480551128729860275986111587242329492043392859369064766188294499787964795076977869013047707824757832825926309237214463219626240555234381715610821527656807411521000354715401855667448917297343708609143230943223868781195606244823832629355678625959283878878543787031370370759065251853008153145405804634312518813987617785441299489191442942190641162259179366931620032599972252897765196420405457747479608190721186438533226228960232104574211805971287431450606375381273881638967103927134793490228679030099709013414983450322497541390263613246249191552983633171155104559725819318215562241774511906039805492836436057214942479952122463699415723397803004927567099556349577969042886748394999708702515792475479067579829135534771280980799732461058994517135219325279736253990467472148507130493246955970381261065862274125215242465812844596510018824418655464168683946225993751248841821148935844813672228831171650429418434156100047377124934067003316328761063013680978998198147515920399634420364620346677009379584126405152882849110240417645867710695287027789246266712661565605892164743455771968170806288725447203503804347741137355440557482492201325919926793870956374577027154310023691158328311574533020797949846953963590178151256969688611496621363651373758469302404494222448778614269982899439950509502743192353083876291045751431089439868250701793023868044778233346670093166714276701370141472165209835503097162325448712026915770722101540894083915888507990907287917833027033166539867431626552801143900424763588594398490273321386960877021059031912170174959232474254339076185340506054171137976414127356252023191496978253668821069653535103039034626635661195614633525377560605113764962986384353336474722322344732663952958331456473463265813124324805527912394080105758266259390050206914971685238110487234591119977755251071939440404309834475820756585704552102753969623316866536747759425340097865597415816308191149581721938592692634366114740211513619816634626467759138763846748105385329212643367749602485140708510456542736125460883006854336966562485939930179527066041492221753675677235356220904693855025545664740177229134530711487432894937110705275925590928225223437211879509091124317798468625764691146764641690765884732209655804965295559947832585145399642857016811324385123741149196469163489535973061823086514759559701911902500224751840863288177940385136041186391598814723792206518049467120201584610082355467594848381504307234048452484562640059119244162791240696026989610331920238030402335331259884854721798957016591015634915540350366036029309104346164620054681984109081350784550645756572381992280071621245310418722363894934330991668389089419833023881690765796096071019025639879081785532806080832148498696724704813059736661842299491573880558850890128565930896045809451015463695858117692749262374711835850090253833959792294619112342708370459180451388503231646485700983823036273295274004110591629139756140168059726460340082831470535548662397054459565257901167132193150966840097129408488307511131762073746576979731954141657883782682286221804647627165021198630910078748008265058133990022980288575818822514277438188286252837468072445575497523009374486195025663874111337482101683819670665663273146298811723101586679597387115085529247106600349167137516660507162583466623851532393974023160619992359601135723233754205706778157678317521329771049963139210644808630126150564206211184050465509156035393940911367119300334790286401347855678203378737522395606668773017067790473726803351423287776357519565628215932520030733279812472748495012978996905602727937318787983688116027957218675290037150960884937131412894926681822139722763238700275667712997294588141775819208881981018438885470617726008176040525013019981742238236154017251079078341630116730389442310716319154083021541066848548731685923263072161015465046110954784375463383095014262415393850959698221632269790079868554019931603619937207070050306812207247765120960823704647608375893393042768784549604880459791724712425594451171137115941057377293365889134739300906585032744447907598913952224010015665348842914322776314620823996745745009736287334509743570343911601607735959810719889772221259134054287464631269873537174919925190812371740999851415938580861460301299677090613453590170303330692004590357361935472026400611207498543167097014769494981157939756426311931597696437377191964683102103430269441080652598864030409728137639739533441859306536009047187882749014896162696055938926683646061345677549832381673462475934618084979842159679531110783830418886157701644750447177919313175680033575673345955262570839032292736570304122182126125678286065901259383750865316256252039467844922319444678449829294733038807664127491378728142796329837620056241397018593324817225851197373495771149007144269038835091670761545845388499237206940342381245673204720535702799416401358972782992638966205099857646721249576533421749346140957398062186407475094467845095489616647384121511460315180941769146908241401478851512367506214553587190739149477278116089881774097493860976184747421237679970258331821881409408732909285583167110612550504080144604960699700873398216757397791127048611360064423303684816033437647992145338001639947327779657946113225150663627626112597928478300050156189615481287703956754539238000058397494858442509324758373156041384044122447599389519160950920319822414389326544439085461240467006799644548578183143634867260512913772531444408326331732668686636970749033699850707810692859212464823857918386755971487574489787625866518217001273116527975966034749218619329712277078132298643848835072332167521318424060670490499164992221170121951453106963139734420747349830436303011201898508657057441734115270064734493617983428329147633333056678515625485299801616455160658304244067705455567229168676333726676319577785586881362746601340599069741935984989880677687192606163526414343607389337801973214431843754650627640220696095186044091537282306260494465284780875545016896887527116180623860198957835060622968478941298716806120548208528980317326695179852459592046910332502964600650538066634252494309911990328290662229616265659188356839761769974880827051419066939184556638851234036109911532147566395842181154730175567516903217918297771078234803815399260099819118888149206330191478447610965487493073367177096371689264973695459760243868436081277834634396094872072568906591754180109732237773290348795503631338501762187496347570075562772821473313493477935848061248045342567701880363218054098750119601663523278262105127425466826324109778363391947730575041255759249902514408277430361840993457108570299322231404195058939667491575948852543472727835894440682442186976771356513858410732659905379126240235992209059221559757189821693615047090433945996215919680879047561131598388649517611082272011079697195603414627887873400625902924262329249661799552815276451351758220854178105347647535104825778203633154765927988753236295092132026996158772363746950714350920491334823134612948572542443444670391681356540875322987888668163679669780061436770074602924435221671664918602118484648990998802240810230367714386421864106580578566390101592530791959348953141079808104422614796281137499861953358259415416643575536082467413479724247094303639093975900776821901640030825047500256206333782059064143261241333554641916004937042264352896626616500409894027661128599792482781210819113982805773416502471692310863345468394123185401258543638175943130849938248074684487196496651158084147342870765090852931837179665938700917786319359919334259268811891166649705195624957487745515975260840584785018150487163032543709147308825079604590825261189193079334814012768957594561958645355556588210167775536596949493868562585562569242906303775166283851168055973293066226393358852809514975330293776554692311161836939184243268128974547411783282231532162954237866933167237493527586202826903126328221942263997623956655006694346761852828218696394511125439712794835600167383354995835691178626668173612707707433275282247551226753799384059372375846883494968551428586627339402614720712827177993509152886148997576790563148194072750667947386725684031653293988022433022708421615344536391729044926700830104882597217249579914260837969042672391633029450679689013687211054983457698807307503194380701828105100014821415101410975994855682041184158877351145374905415192379416745192591328433515236891276165966321804376538889669858525763952601895326338922183787944236026834335273310363641077224602533191528626976386586976229500323843055981903847478810083801075474012106841705117304801050725411154502474301891350784802716618877815621181488916682211044150768473590325493697615403111802644807938936377843038539458198094040261992731164817586463473736229036920929130317593011732218330775823756416968037718096188146206279753100327124242956578937230333829712336556448215774516722512856639552114046782184750864646862471610950104142548579425349792554830803830467845275852181612813200629057827833925738998080370881490524267773645221335616609403304509811091241164279046462465167688497548706906173062867562995769829568461506451416289722594349830617238187624660443250878984442022416898856258738200574570996252920053213831718254770791965855756603640537846045829341957592356314731538230508162852785715893330678474796202904355622307790402562537600429096197577549067545331012339626010530186760161974442464489216766524876106568259146319662743830684188651129145954126246487675617907226264745822465474870743522723500580792918190505949902165543041906010508379116971058729558028520222199152250503664698042513736188875902372583290713578201188959086008595427920234695149552860240702645278979246863506881950839795903598143616055748801887915151130767623409182601838155274256487406754855537908305253114111929044672280933729418669684336255609760479453052202315599959876500486222616447458571297919665247459298714187324745800126215610802687506861679222762614941160394858770091053249338929984129331310367824872701604546801029704693280874461453076312629620951094780836251082283928000056867443656858597534904737644894730444161575700693947987877554177212036746240527750565400023194924990468740407028536894499510959511961992121055299210458609893766644666045420575111339986337638639387464047020061047026208850764358642570631850321102213235017883606345896595587174204189197958734311413357910198903210490427047123356800421897888862234636074921926745637714287536154341822703842562805527807683958271819594257966181417060690662636494840316922313046814186841418927878227442691131666483744985621347387432833599460187371327963734674750266133490520178421704264752237149392153226130370642416185723515627673143295341445048242560317226366593844711693118061256051160616738973282735195230923332836997044524185051494734730500615274042465767753895864277235171625052084465375967737200223746460213915709914707869407676966899530776738664765556522049883152731763862675585528339456689280917716394844378853895363807155127264136909971046426474482256677081139156061798886376817958325008994464772933109011703477795433939426282282501421569539211152076670376492221395658210523454384752664263937938372576309125571264183953040914110748197392776730325862722167061180112601432348850145801187939662965741634118002483727496629084786783502979660859972459114667311188308462399759828140075305222139538461329331197810595057731834037506892698795816956592030055836581982147392019981813302141741071727091319914419745671180503660529618472335575665250879612358838244362729763544094255858106636685705770560406456660466246725888634289205619058144053470509972385603528736654637344965965693327031882227187130981569469170202276625777411033470675111575218196097898923081549237877339488182913550049237209250296966027774648863799459083242395641823549157383849504504616117395181025407560126378719798572638129851532715476808301337556644929727014223429778326639055010396621841080970972613903709496105840114566811990321855195706498017205456426618483355271941421841376181109902075829363855848892363728395436988312612411836661569764263657540152902062473135250605167661037796893343549239937024114843875201747007122849494227278308262495029120547694305684330534179656704819192739496533101271391197404729828839681185593450941760731518307086593717659819271187368476996559001449512402756919887374774015453945099662181610622569636549725109478645970677904252804795387629143111916243857743337456086987508271117560968469220992834805619923933375241216732761759315173994658565693237542187719021116641447647610770604813868370834223601629538163669180703726663197396530663286316669318157419429280110816367886685342093944356497941807033333910464413185673324430588352594334374089780733356908654919856711008659780104810311503396892105279750508377221584895648454784640431402123916815605000852625025308625376061575292547422987040391301836538765546893171534394020494058523346012682490674313321864425089913782189235437630697176251874305550434336007044998072353384419056201651912472119645018100838137106298361827203170652121067864057217356855794822834289398711995289639933469658949802382560916592577190562808192962816792616235657576134441486733828924083582349479291565536239038877867987822055727700425833772469141094470104430461034853295770255769852720156493633779543769150532063184278376089062988784731675216131718044049236706065654509623353366328356835960541335179588044021657948492087307755841216685543256163131243831789028463009529119235662391854847371643698404323126084604248896575763723027869334136464906424205915972081794916691448343791483277540695141482011553345831951742710746334559604701459053670730033584558250183653765326951289123782984407295478389583991209265748399240548940151190523504144955382068079572661690830118450555077231434633176165554698988989349965415351064917629508699032257924758879628509767186624720236737140506352805207329442751629280404656268991378432925010524895335184598452252010587231818886437984021453127058643890998647452099107047403459218764190237137798746356713829264622595443208004780552967637305802481615838439225699351436092104177898174965458702837414358702327493169976251054056336836574329233063981237127583387285602998121990443371328464216683171324562785464013793356260899773100957894731410332069161079082842109072592929522848392956715454120946765315792306340952368617687442770246189200585205050966926967642268911968316910591551146676721727551519381463957219272651298028548510298778055374780255647068329146374145089468198726645674179616013039153868708036670878955606729399010662448352395987808568095533678518084391243373271139057687343699731831325846958478396624056145081614312322473573266307130619732458526593105868042018291926697190618916659331574256275629280849017524500956404006386716327182206605642311956629257356320709286517947373784986694659206023180204520362015219620356378306206379772393000039771998614085549142727545051724484630402973531976439760241561348559872141716182566194148467595521335394599155206989849232975243466654290324413413427204879378082676039056140501049636300232871126171857701558038764385422305520821245951673770322261989684825768188870956891884253628420974022146533576115615546858982558851432675516447611098368846260956558866977960531486950537480754775206873945789171573900628133861216644125268237684263324825061714608356158561908693822683940898531812403205164514021880255920032586064242453171632100499329104884002856954751362235507346910248845212507803649003645182074601849035499831855147167474627041724583561193792213831088064409874420946296835741142324861854357461005547506740987275041174430724735460473243232537233064657852299760294304856042330816820990273853890103711432188570532945469261202803480058574987686567599213580455591875137986000778904460679867123130416725483863264142269195016208508655447292658738371191379802431844028878464969985850017476809649089518171742530911765863273784582064341251919142616586071951097154959540304015637101629753224637864534039519154672132716755020705847067905222145980116802504335832883431096420780219016951872548560700534102482176689320546234571770240676181816636619198961361645617386093955915276043828356043229810980364277907226492887756955135307001594120279922049992761434597383123913025934078508748276945887595228010169850867897163531726902077851461637389904446089769619984544520588962418087953099820024776209997319050321514421308617776043059038138115417252685230041490189355692998155220073748901015063912634590511288388678656121851195127778510336239253273702844281056267220562463124190405257387044061262697962133845234641416921655578152609678085438153395431221765276496873456220513924743463036808428094361728969533303692896455265108666664127565692657162474248891419801154521202458160903247265288539921528837556253873902266569917641396489980709813775111431387376566702743264895381995842618058990371121609725585124482273724425733322115338763398917700627371918277089205786203457673144102971274593213388966611836794528515062657529534613015539065597289848280988780947214161414004217629287713413608331450138251891006624728145636782012119618188047041040241476883427527102237383999026577258041589990445124250688708015821219790353465944323730764740378205047171421194156215170978463994064169599821543931822415351026348481117815062590995312708362409682218324983778106261095633653723949915075663877340699665475153223235238170709974292100171294096038495590888739844992671181441256785890881953641198113969774335825229637377257499713309353209539955692148548472289036814125802191461711211019643061847036612768020569879913068866456138365429324763786459757050081527081146950000758411501227777449013524811349077623904054308218680683586152816579579254553912224598368891582548135294802603998580380914625310275320326637626074013040982667038058438766739035389090628616736842189041650172906762179905150198625699150996205817747067485533729860613605649564089627367617632644750117809428054991818672206523914048561715205955856914564927559824405159619104364820722815743886756210986741610870157144037640046146421570968952639533602823167899422889541796536242575659673915440585039347390361796661902234866634289828168796176076457997587706443759712319111145820401127594085610883365196335869062187865880608960153413930349724773944039713017924009094475305902298253298628770402668748324266126286320477007835097340080643174454410931703627538842776112507404868593855220444204550461195774631314548231141674761992038241405373441773365935292464766614448682185536480518480245086886646219590051644096805152097665980716576210732080286020880324942699731974210968796033836812048451284581464577227967770075650456824481950266366471066955361530183239238146958735382498305404744335978634270200413950843137246263753786129777942713829942850932551691242200927824062793918069618951849842238482381064707118707379307594336819373684019880993322199237261394269926931500606970738207395909876739800128981928765752454098573414735760304162103787695181702412977994687054568545467138170977664036354265630094242392680921451271006106635463922958503853643148669998994779990140364853351952159789770299762624740765552370832539213141498755436753500063525921491810252643327588412546785709033886437762395961120484392776056585496859254469066265575406037917164560261172575027254746891580026059620581985151183428714490413574694521033023210342407467539942563408659466995803856487991205278297321698891996076098837018696590090497499711838437966271234907187215896560941305734973158907277370758987198585451464983970436984634501600662388394638877851492096354152908541616239961191683687563428767932702559990377192470510755635703911630050351022564723675574833194970503599699326065487228488023696901651077737991233894647477669106372479223721205713143131196262270513672869875313344305885751848939609495276322548366752948598770017875611098597474867498713822652934597667784847401647019041890994335851032201362497204449045631730710420960047863345897656004020354904513276803464104200074167513625203966497269052669988605202652604517470439282732126786838541538608711405632949058456673352554157435292410230803258630067151324801340451670036153889147381214574714554722765834718865958269889562743078003766015992468427411538496225502980109685441330778887926829415705778601982905570869324769403759551086101281331124290697143402679568024925660794727165242392893557909597984254345393343199523951388980255056902878644463204696517866147707520960617215019716963389592612874666147978577220880105037485145505180229523160664024011607092739963690759768301578607144080866009762210198946532373629287857555986400457095212139939211571228526419027559460185258739791330240811331370591500863569233892450536521066911140943910139233382607405974323002385397269187092297660976888155464144625881558513545871519855090192692264648382776345617070803795194332811543636549416110264099165652233276877020043210550345009703679316694301872211118492518381927202373621016527767897276416352957620494100017276281618463756963144461843721126322301600488952852817936484080664940146101728753081753872479206153142677410558270947678304569326104816386902976053166854232373886600355659702498105053487439408359720477752907511881138066354002866462576620484339048233845591071124054736517166459862296851513789465387037267947855315814554440166761258236897288559541094801227001280940354248386213540702434697813102715914108862972764480700510203464881296974688931716988513408564263750310456051174548231895196398410271019534049251468769276606074889214990385580895113957926448410916073675174010271454173928993493373508148713975765825148237680496592638968342247268548815207780617935428093657565495030138799077788207708935722001056828047451722334078510209810212924985610421807977660402798910692716515930070221616403229271931074484436509743551930880057312871237027339841621585895957651618959322366625682629119303885241166595175820236905762319731931182748893366904599759089483557353623242619626445650701164658404317693985136837745262307139261544951193692068550738503108285882698044811536369150622507226503535906187833632388901280843758558861884536649769855612150696950820080513327211507544227723183960672226345136435152227896791196071035202053606904622222458203985105888726379977022865784482945853116416699523157851086299914325651187277364438484326733214418572573921959529947174112161672729153634837728302660930312419637221503864957433269110061761538745857347710518054280267006171643597971843049279366572978002422766406645122593921125432056497803760525360321684538775001017403426834310549079386698773081959784046221807027055770445878646206152992962074592054961432540348299768447249557452544929041950445398192655545516311474611112383207833339958227006401290164126311152039395877687019701497724524719907958913453261023206032424354496769519706022376770835776614495256204336247584569412513974616292886438761139109163656561734166631293682775506031716199872290854846705823086219652148481293067401307839621980658866525501495733793825960997593559065445453888608068040216509276733818022122850826142468173895271022371851880018881495075697950189045145230531346666252216966584235364663205863370253666793240689977324333544323648052222393096096144731005338475073534883489995667959828694936956870877470905338037473584172974279567389399891111692304797788860472373009537022998650172999346480161006982489088180022832414871204957817231392173385162574044973068621338967103837562647924356493139746191173229796361613526454678447429054704099059481504628210194622856409964869592374707459951698791102972495159491469147939868386696743941875899057816750002458460535337209064249383898654677399243304082000288208658202459063060728317273688884518461655741147224371217104960628538140299562823417916148820750443980385098636984723375154168549217711632886960677387072366174912540303388092132018955338932215626040394942111958261671260798624845944972008001443051194014071217197596204928554778032461291173078518887322351978728163581372486669432242563673731354034933486438702043157632509583247125354862648234823421939346784354007651973474094320131129628308811599257096657108400523223579883653523164806310058383845334684509368808520099374943010789811915600470914383892724384513942855438380441458665253906293502128910819369828204039192617929652141908479855706670347023393910201048409760450063176561255418342610620157812446465766561696109395308378237274379056066159147848987964543323630948741424297528781576322178771638723065085201163331510893607352256301368126398863211443803772284627805929661208646258254182971722742749826016739738716242078098943996586032110971425578613831041836169873177099175661079385652951966591270154570066154034859291484739779567762317144256579627907367855221156962191185697675649595676952520807963221721330962558296106762211708371898741817775913193225581752857407911255041677115023415197124830295452444380999420794431442993375097378962316250962195383904020116270010424871921114323122616024251102730133175207814330669709252545566966138581199205352252469672611349659424174802791588153970231216148311771078325734523601702298185215633609915022523998535042892252235319178246802937654970108382540688569169087839117580050080787316311909931213113711930504211760315093449913289316396330907893275388972211581171932726575453047312450374061075617982971725166662257911859920228799977811269566651568860918168928327993661642034599657382171763645808473756973808379669914146948285551342166872414234361814506725828274966666973257032317273063783548592920250265804841814674369627429004741064617092645596656231211938584039137193266245835731852963934403149216999220791207216025794146260558012892393833027023430496561951506744369806787690856759459726134988097173506769322191511467059921379629005216805525505171939484496774650800906368039757315268972157178952478596349029130699924444164955316915403710205872795197562609417253385491597232687391975098786590635435502288984098544171812487277673147494759807162993330347206349638026872768791394240218095731952942249595203693413137369741011320573121855959200875756767926613926141682952398042378069062839963231287116088100240906430626330551704878803957330009225544116847228558714561347353423440131740675603263597247841082459051204151742586553399476227318910276092629927090259811727977211006210164306712014012737273229877908023222091159732337656219088920294093401987814399161177382177438157508483445626970659970280299678721798621470978216865006650764628061407627178651138992866137026557013829280140893207458172854961723286598157159201415363060301475512211641655559421265396295340981026334606522834997443144273075201805786025503410902190986393807775351693098088759439824311180755474420170016169217913379134336667333482911733557173933377457862629307703293102217178531923370414148445011238408294606230961225439596019517936728032461165009445027349083954039819820124856828955944072658595842070714762903285263345332447997651817241052499559596473224678107358149719953885093127166309148797692130141133497969313357618781727003289567259468451872354484460910219761754179718342284464268461579248977236280513562215848623607950537209959691366788042114983390654821150629036834162666513111165675844131950362661126173130892857490507392861295562552319037327369485593188227825962698932088385629516302085104473472114166822236139713102828258498731716027047436683113544177126489164700269567495731882130882190558467693442769250813286654940203580382780151929430140969148103331327963443101356001225671735802162802544947382885711088353088840130770155276907018099496391744467734775313701952775971592489704422568475749780714792659898001461520513442592896592441582013383673811275180697161635830118640259731352260263611200033515887385348357217916921113070054111993305522343770732795668564269062098760856569971697441778266329416005045246117206620427774576603234715612325165525177332627012364444349499617067748294003928929617296760853876507562945177429164914000860328540710979451117067454960940600997654756992937040642716245681935716016087048280328670248302420305590173367515565045939529977909847041445445320488817111047036261129662692486949222336211151839747801543019865484797080465502517731016422567934189353761064978447861486659641816663674089826568539055858567032617883034095655511409481271263380057902268944842368056878283024553293047561427855086446807327446190259723766017374948440968867177855683547813449949869793735412967761274570748088073907343835741099796422323202740207171818512935774997744794622927383963363709922366880204504136519627400082813424913859796569555970002232122266112347489965425325093381062148812098535844568716251514051044078737235459367619830530413181344054467161564631015426309601155587792908137206876821873893679087036743285378078121783067987034595361478901029286997636321767666948204137731543655817085422279116318531939031622873482062423888847777332050626772409079898874949496868041474642761751382997784469339624379566566548165170389354752375002018140707907428098996866036650401127565790042661430242134732898624533757662128116526268518753624687664647574869795491519328386902698638851406142059871924230423567521988393963436349647046135374451514228484900968105160088972189325495755817407310445265687072224915711355760542455767449007645208403054395846076887074849618702047935994943379057534105529005108347506710326681982411565279107977414558921346051033148641934991061587511745810377311543270052681023851943435970913684389632912640290036665706484918464832565472070968848374985065621569126373434827637827446707303749022222416642328168269558884139526326440224713339638144754527847102473403073681405930162448297108779223434702822113316642752683309609192833526508894810472104554469075758300179433036287503739000908476031344047970078278838898653339277960733849281599448868140176033888662144968953166710403653843357376903671142913552668853717601123201650394290620242168124826424015641452935646551651529316793205558073169420975234749004365808871437366201248497738751457218460701716112029181173913896979340316644623223695222027438499988853089028777881865915950791288672808681954045699373727974154095135681937778721543654674030255631550445848877091100606265740101206843463920203242035747329921775534776576405544096101795328477256595487393758692281322890995339309568824746152410819661780120600594570685566939681558048131149931190754031525876892877427525217684270329307905688048976742930494856697591508265428768572646516826454027307380171295258333913699336091084260274707047041153844673774437438152018506669575661927042884143233683869034654675270598411277913869980028360578093651385903701875561989855902777322955327539820307833703704763181594301688884077139798795426066761879320216498607598034669468646676852377117741265698353640951485977980504573783989291680427938602628525147176313767995477808632594713497045688342568716295291642961237710929285566783018044696052722226450453755466999580413562285699232762270337435229463177549928021233472252465774772348324361207386881961254259021550496349048678696053773314862140820921597345849700938902724255852465268647688423461512343639728062827175119008792949144435252954775808686499200363049184508526664506113201093873804758445377277061402952384766755827924523451257524720602856454661232735636739567315363816625487149315756649748172394093361387380549981445354580954204866793236915972655582871992773617583370723865550825163448975789869930384868612159959000336666932627420124811625539101837490084149055608890605078303133730577973803040871978539575204321032694930637989419895573841965281974461081935486611897543728720733119746997567121156839034483447320819089670465667103218091776023284107399282317263206597493675768055423250672518631111947726984905983013655317892951584758303968467346717221524800931030866225153926070143991830557202464014326792003337461104689184864809216669966105726368318279496208171383447501276258587311804932554743464842172534683374869051848307640926855861863590014513645368615680890418033909833853659473590453284667925620760042549344017230502660798238405668520216002571362667611602369385905400415350987435746133152996270069256582292576209284078324246192033029472710717125870781914835589205258056964317124476624219303813960072797045288592920509959343810261139575040866164656540462111323694389568493348151920286204015298085680114371688261404378825415564142647035722416525847544459144522952761288701083967583173558536293805896348686565443912617624051316012165295920994876118795504092157954167759140322729927454662709236396677674539931370722213039695106296327823523505333474748495063334433676292165695543123775980204487377000298728039942165448571545865812338396704564926676806171482927891432884065159871798549734711113233068521854414858619971486631186379583056859743428128538714293440100286395948107709343556210151924104377618072128075311028626697930386662905101436748254222689516870489615269356908367418667493644375669533625953391414280573444173695970823182052732400200689318519080232292403960528950471764861390125456720747534181974779784290489503230986309393847265805187496828555967131187438463849718501253605754634564152542784601287440966314003037041911779928913975759439476683863146582847778553635134360910267946044482771685673412350632219330419450010563658475260114398663029508672823678448890875488375972768291059468692166843375184512022469108871812799395208061794705776183258152808068750384838422306463757486543360282237013811952075634368461993705414495238431403832582018232921022726512887227664217691802432810974427465632308929688642453600435604899850636031443803595179132139175824472585660714598455994331658324134445639036194736467360200383498450633084561629547861267719956448569976311367283105017842269691644545141098653825953022539534646464370039816568990268538048511711148245745939036702674372004064952833998607563108014222390730223990644020029145671327418959447859504499105060173036567406025835889664616018263872324654674033495268509625285177843760488619192812827758816784800498623185684035894079210353933216977744865343923707943532104022027647236000948196924068456071768247143250126836357594810094877356045253295795569772476128985320224574880149411694801435179317663885123775908471326661962392437018901712620629856885858269875646775049138440038288325834709643629500491307324463263615606082290644485162453897089156832945848840050705990546133948245055271848747237180644982308230378619796821109829701153013752682391824682275720600284243465659290042502659511645444157312626888703088719522881776895850162537041110018963681627529961660104659072734583907645187302584821073523142917789450662052222277577187753340114985911531052342315990675523681612874059731732971439317846888771632400997683396995999832321943060575112439330844439510612570866195008955537119735702538964670009589825098704915429409731611831546648503470661772984022551821540383498615004604967506790854739138559016016601348022802775598140244249318457597610383406079226277863778386327469024867661216706900817917225474173857743556664137961789929752265688823848186178284417618518228191769393280595261084238637230939268484395016613928015463778643908613782365895081954243448655336321655985181736982583460066424730883995582441202766541136064141048029456413597358983582899542844334426741134415122482116436016811385458071898290974436733317027462023263943372157372206882165882877238821978403951925079848290749967413594811156922826599139790272381032318231197010566812258260430122189052110164314005066908600938071412151097598743452725639812601338525230568478334677144620127749547039627353333093604602955311693721874168581227721178475560258177100324960332300527973840328346946213343150364189085971289975172300290014090818760949823981146273538369339537535474958660684501150251184600061825589050268443708187514715170006907396401713942634724490007690153589212373039933923411967227767247942965442351109082328443115891703257549525822066736811193038937043472458603508174542358231562050461609392152890677906782938737505699498035815491274275712652332029861716829372838649299357600286568981844402873806530197218611771330858247811234076945518145232117623060889956065099585023584726681732321839762372022055032965762281680579346220096373946771330847462750762811072510694541577137046427976012365376638262688003682529163659114283078056659481846088919322482185460151369161263476744378534317917639898671027367144052766227227100123533960670474106111635945436234288249966110674063173630480375596425110891843673084305374741887865195848290635093224747649806259360057957019096823107534312549180769655933448339538091755754935009547909554853538823695281487320187980836365401420678858544106350317176115139291170915826813220462334689753246529091565608246416660858349734489469547489224755098269754952041080682286865907316520989111119729109266785444302279621263534027362782853911420146760935917660795858959114594439433801964548777663968941613701337689300276297571479160227523881551791892813359211687839702761087053634247300360369245824636779786407191645076848303406836803056887817700776034110679337484364002358847605083413688606628162058630624006669207311314556155407162246669505904438301158375491469840613272788114856908500234474576949714327273384812300225124096959716450586944615909287595627733796703621602661097537527482727995898765183786077952110063424466603057031184969784886385706224371084999225802809746595197410145262686591526677826646872650493678801329656540081761806456177820999894990498312548957406724876558463970692517210205396884350644400931679866426580583897069531639838261181155471476964894299246912888560074695912991210929787941425629556202980592061224983301210189475932923188927324269994036672981334800777514947503533657384690460619627285788264089294585106890013078076301845252389181728215534737933767327787247269914445033500352321425584596414019543863082715353789306949597135527194105495914337284285435531908672601383324096184801436634885773217806736942635488531155315317843464413961105627329594203280802886803897315085710270190349016753874934893574329644668846842439873235443196813861313678923222574986695537142162439198608036494455721746613342522349257061507034680697540693347231900071379736085850273424460815961933872142374020801448829751074677185464688320747085275143537636453781356256225465237820231916987968212504007053059955835089306222462577532005034327320549443555020489049562713958850716850867689978841814070190306169589994260528675422778000002026818192821071555799463594809617193682955403780707272894545885242610093455366286155696202632876285117015701591721188113149851790281981317070155618060031057839624412798922167816223334557923563533303353465120728904731756907324701459588268255033386784463311032456996311017262654646758934282171224558211948541899227692925328560047205812266046990684311267455715654892679779788879884041692610030474838104708143075092603659381448285295574980524278126774120322823160401048084778997263360588538197759877236435108256066963758148517219335608060810093637680989338632927311662370813433553108243407513769011208680786588283002734338198160752655114162618015706130351111651987392803427692968174742947855047030938806709986999076595877429503312567687237693438522774782443134436484927228113487686802258467116476466127997068827871160274984698152317178103748558202621571077195764773869773399836813794189419483260522685894829827622112895452701594340159381949005854128016031415244926370603381145180958325764145916148593806711486801306526160201570293261324843756217713823571757107746871929777594991361472193418182076784743449618937551804914196925640073252433278658803210360185657112707079786676586185902821303679968745272359995320981362673932772777159986979726352227769937678241691537260254693431290911015969789920224977994341305971403983794633606265023892164838578723372725650987914816272767176830317860790418832689792326744593449371130679863528112718596545749489696551700806463173052871315550743361549014961716024061390122921419384111529200681334852403325267945738846187979367863349094335384057378000469213710277616420099407490901470142043195205785618828876985503989174963149912806210910273371955983080045824411629589141848055711366901880085122447435276636934013889716568312755489564216159962504710222213601744244985115919863088844292439367306899208224498025497545100900692755311764831791531312437242865208895325940401741259635439038728132781293880837865556350977266725116553748622215378709474362879258278851462978512373923838682707056974254901607452797244543687230714046603127053530335069390724931853077476149888292367067078855005490349930561924236782844651256117455252576306520457765886998162237564435624480267498636205888498808244681317779439580473255276681363743110973883446281830922622240459608336844135061676605307779315150870194759237915538555228646335464251977843809505881012337635638079685437277209619310110088260767466898463769229588523032318152532398129462636861856073615852477157462606316387456914958635932386424192358172134134631183230691429733639494331759914164528517152994757393836453918623268944685816367858809106809884073032054535947226224296249796895628053248361718275427777007895979419045967292388330017804258905029563113670581128750499712309132161198911858417570859703621803634758517853727388991042848979723650710291059866266784121220582394187684192203084013516882053374292119521683910152256647719747536934636403045602818688077452584523382303868746975309080538898667510842694623050879979070483839307420246357920380629015636955484406957716520310212565912921215152069965477153113311107717582332259428748887346929629294255853944161652902098686060482322459363022889600403972534406684116829981285963224325642051236926517809935744076544730235096737718871522262138329902400027830956611591529990501357729958454459699127114811635324049726098171467948795104808995037965897788396732641908156614549203155556082785476108754056344580228111205468082709985979228580940232696075083389968569534458625114250079889326372139623590992557933912087842774218050923877543987431509913391286313504381424616025633169851686724274450717530241781736403067689860940574306590902169980595440714831543698563188350544983455410311081136470564673473459756359681298347665112423334139342249382833002979365609661923849847621809966009611089774047247764458891552155791465708036497920774156451364396424676196020965187424069429141506818939593765570900728946375800952462099620127408731248126064733003302567435934222637404095353450024980566564552236752290270549687712568082026835158507527295506002621140772452190063116925000403893227861529643956639719949855874396301921190968073916304087601069360743875648139271123621458751987675494454638268390816868463660264268159739567075047949842448303242753063744257900169819222446297724927573245926193497649601219380968023410597555005905762150827499733564534005308270727766869996915284253678972530035066475720404098445870670662441562231483398275793594571646404149096269975180972461848779536604115299651540143432677894562505070203406650383768640589276436523732530011821239738677092271680934993904881776237088725110827532382188858631082458439738010039193595092457338612490192729514984218682334084913629800545904749104045564455636968632312629735395202989605994613310589538550979135490064904632266643777646060389851983680660399715914117372754219420581345488408082929344874162542613916080048384868817832430597831341643589064926118633626754562699235635531589573381539759028091484604082939475400257438460582005115595735315986488396250927389909773105637905301776075870674207594040806365635430654883784992528580981541843089307831823627757977658187532582455787363064050795058258113237525174919006074930830510994779901730010374327239936237836931393785609661388497640984297538166682381317995244253412699335677582906536503644724472195400886626876023799769963699053200124455323633140794769619075001257798670285786274017367395792930592427341086162729443598284429976429524972491626199894174792753106350169945898489838197952409460249247676157285280543907559671958842046707504906719250917866113735619598847338250024227449752009818757979577504545680090966187701794008007687498095511375982859315743270572494419797120769283966872632171301752753878881599129628707581095626213290814253629131472754218437563487451223790127543576643408531269308889206294627426968241116881219420930492925977063045660476033490785521347160920539796585159850696502270674380667853826550454461531913090411287413585120915520497267825693293633799699844490922924871137699757370290258388343471010567073642727920343001259692010167310070739146051604078568374255328953058173597272745301864655151027114071735192039256669110175934693022993130488221830806091916122409438126772183140357333179280536232411243476232980292987707912736350908867258962484882708714093466082222792686189359163492183983630596428911878088134468071182614675486747647039524152467318334119255836816596578603468316683612130284456922365367548121042752401117672289753739535539819556298530297700470652327217643635248054553446658674965895713684706329227291526607200170491065586701557610870249225822355347667608981382038345830793391959949203093846228557023099167673639147715062958199498143653584573733255847027381686970307339626665321342979212402156910376724631049973766616467285375874969420422518349331142417279232007760560385502238399071037756166604735615777711130652772381962675299969663483067225691619636030388186659242948353561048066095856199256692847430257957687695345565085440733073740172955873157932138087386894258320862257928541766005566654945955782756168891765618817935986303231521014240584218507695585306870364258544707754579901820970091881097898803132198204318871878511430409919611188041027253680448061282600798931213191758099948934276616702270096013487640963654812958414286917727738450870737827934999790312022647506179548072731096267042197219981244390824736357931391422802337577655769271174920329198094157760845268821542083721753407159461408748305209079321437409605671327072002856888557207139502978856736915021825738031063330845932433185967523207154681143244746524327015195848466144076853253731728920630829610779194479584899405471257680713766994274239689771033033809713599457008239996157908913702598545246037348492935966231434279540570879946996843756960135055785466262660495145508365695506628922532802720840845588149230399370037152532544943471141041475896979691515287795474621392080908387775186264872893849594460507973903384923087482240201384489430056344083614366606246697938852200833555486931906729702760443890347769416775169599327051823822270754961766898630550140743670417082224042301638866988937591279349950928202034156718585794806386758183327893035540465965271602320360620705694325469993182497635226416015334688464752085215901563898196628164803713745120682063817169757672515378371116939940419267944972181202000165307151691402913306495256044580956965317510468627363216105665156797374113430221499905107319151270150293566804793280162099582381043477080261193836179738814724738579925497391894478862301715728174568322019162790332641742857843901040550127983682314176569911034817167976649959396564210843645188755491929600967739104114336280129726447946979861546239949794970920718219443026783484796629396349141630179044188716012115105295480114736907533893642822763191679499126127932514028359710492731149004254158924356850190880589296319716437405481263860942532063906263055872662087929276633180260085169700293151684293166293433834422879966064002679281233840256216471451833156265675572804752344851707557314830871848056215323854092033174309800925919147027686224515234131610218348392194097584272732267604376707036170004934347672723028414692812881078766602480640855960194445261581944453376892327345825995050683401354284070941572882583555309380480506669222592324894593351231289737797528659660431999909890828402140147238877103164363324623862032342472263256997138937594183178415840741814030347697041613048750737077336435417738546769899972522574530703806366998075553132693072960008009373598955238328367739144309355670415303879272572756441151308107544911783567903719847756782120214655016163010181145194411086871625432752009277283657517975334793357178563863514657562944320449579658591127652945804712947749607111718837266960638173827875213735809555160983859775213851102218415499286175567175476793890770430882524706550240209839140702018287395116109179916665495459080074427757435093251426110754689746634316894113976686995882710535527413062648296378708691317867043246513433908571070916023466154162261652534547235334621864862139935599719812648253506781112985866026449249186642410612162906808048727483852018717077366720506379998633082542023583463432438560428976305641599602877979947345532591139728893389669530558789207942567584645309673068843721491650572266525516710610360565726054915791396154056942865293513208494878673565628926027686549524681527102927928589215836294144478580800686324600561726749811100085870567291491221836497031825698703480455146871348126107486276926515916378970155309819891505482247263777828797574880327105534632303053305659359129922240833782832224956334482999368080863621527972082571894399286725252776043181978962779925595166925038433653975685259587910702925605875001500472768369998794507110975452023201183101409567623138878354641611087676774019035382958465570762578646169882960706926158396994887085270616302238947521354376841890335304113042914460243292810976123143895137355019505525660389377537301745129262787718857475255432348149389842611661220717567795769482756573637904870240486490002349096786082962881338326521377324719115936442385900700109629634159130029266487093823910936865194730794888479424994626083095703971957923200050996159461662738674640921074081314762253493479187187354974605941391583340711575497779925984413250687536627973828381950683552380237162426066096096409700291184975708638803597743689809915653315769699047231031980143825179024685740841503862424124499504471722921151930621660739594163465584350491728444274800837279203097215812563583128819239856648232248656684722555573806728535717482363877865738964673138435353242627680206849241503774771281962561512436484729837065554719788763754781562336612912794327928729109101269002267081126130533630187883635606183066424505067320897506292126367455258443096568558661153126847892630105642244648996401915902287879952097589293793580884448882378063075170759251323511562993212273352095114117654759901813872488740870036075025000576387400000155160398488333771596900642871500694911953020357847841423683033867967904814535468707140650538048232863862994357510453533690202911794522407873110739837701759838313781467101718468883746806551947049246280625489738043476943971340080903920841772289824145592312870602955992462384721582314866033552206233175232391275982678896798858710416459258861851514823315043057672646776787772342489713684448231010663079635465385051565345525980232649957588708114341402209617520745816564577464283458631392792930298596783721134267404437189359318362974642661243487168076468694721041798156762553079455400789377982958296617874483274865609640391654080476978824152534933340901954243446788380777943365932305058577215560419173119342320537659906978782959986680891105195266950756591213131949171677570534843314089797880019710499258140485539845918335576830933814918755442377193242069177321058022375719467031244026706605254717182801699768739833987358159623321839968932007159646206185088337063509556610490792636784886479348067915202721456641259847082141821335839103025159765661955902031850401760867415492752836070243451217421140972393381554375684457326744752443591109485569565269303190060046333235321991952120962174684209653972527415437310828127848809573925240131316131658614787643966134360737143230296148375378577674998373306053423597543707048453649445424191154134302674384648318901988646824637127607503537643984376949535531699014160466044017952734973199092743768441200185082422049808743506564260049105796009623376239238523428511581138574279321601716400650762918708232688713516006517910571534559747224876943410748156331169411701503324624766602726449174592390712664908443145072937229455592311050040530110488643604887846495696111742740599191969319693804338955269292128375833235989151743818409174108893389180764132588414771658990959255113845430643915903478394764996643604508941590890030855518669747864522461356212261222066699705734808236900067796529536129577417281580757833899354086942310896296784833407839764215802010181508294071058026506413416063346566233627740708721529266951560263049653340289859578800588353968459193222345283818770947713180331548525000563984995290151635548771312614385262775551731442813627133873381666742121545002777826073777384979978062930782671593518408674331039476508205551623078256846235201777873536997429167933571578476453969565189602993838297749576809844831976964016366800866810757931060228413861934928190849380989370089816316140861325489994701422721090223891948639874958564587189807359289437889007521695242182278755422292688003746054691781648401596726916270179568059442960911187920300488634610587472478985442719099469080848052018035793522455319058149200941728133365960017155837882806696298360687746714427255691447087928894263135240041869316233019866518138801791289059129204812438974069802979737698845989230637907149203611555565356506557087803297624719052265881543053984250552547214198761743738068006071652308662282888880613167246402266198008166573171113269149236891475758020215904824299084571703975361839458706336454345121716240697359030675150886552972141947858034992877171937454089947305665824055370833295774309948877233284970294665658064258259829841038663711552781035767073732681714514310206218565778118018577689332231907966586441946162195361549152578431936509049083701447722441003848751321916648590354619306826430117312411591604807788958257049373276472130765166404756741173844436519346978856189492810236982852654628672998410790027049752514154870348434824786187878269480048346832246032682236791701880870140589706238732654719893207762396227705344497578014993752490658497977509601454529786278878880119260999721400861354400030474509117030619033439802110512882006508901069146622464954834188816318304888809284849428739170998257379083616464373258639211899681010944859900787317776046748017576715596655383903095015042414242743718838893222019852642955765616102992228871099412406305279403464168900428199684862772689024057026276956060654371065963715439140467495180586271819822553022773154909465565796858659043880470421822894646111379652488464922338533393130013004206041977223586065705277869248805573995469034976831047401165434151123206851585743836572412123125829257398320818833143024217782623156256031480280001551902437294111901642954926503106798360860684611550991460915935087641129171006571940064524866364285228628755850512434324321529179698805413414593063517487446077468216671985829752813229418820086287710872162402006112783042938713332976157424789638171017752771129102719960260423099420917344163748147945040534239812898746803011374256739060916792318232169972462016129554135642283288550671551404461237723911839821071801144648613658865231168636075101701664213183246043739209424245742319391905765125576481878607212786083540704858887164755158644636283339687648150615059363885017481393327861229085199423538994644774606739013421977755518339562538749329682748032370673303514987223270722373174644748281921737002835571460316206465683094100872783055060769634729577957280792438064651525446231397976102419090171634047875140636829286180211711108249076458867630133941424496853315144383752769903848146802658446656025606049092420428266782353227069839515679983270248333731213353022228323142642962197405256963146584553863357024546888073639948498648110533126844720211741214142662314697391308805143642713657479776406988508173633991792748724193279698818864510534363615772372720597779999182253096336636214604697827751447004305768344732512209394720138747017443474622876021692045450999450193727537266110774254128526501195465367319968294910599170553372234448253037667580736684859783114525421794489879668609530686596204877972797903938015399800268650328594200037808403886275340724394414923499299598072954903693753890234150588022185574602373145066973091001267569439852572431232143324835255232292691851471290844246590693530565661701956550671126997178743742385410476074200184007106980382748935626004009356324898615150954130030654610967549076377389137407926598627808174948973522321400261023135313817096827060106064835816295751476510629528465815709836086433837282907945023626746528607739807182581479344992575065238477832821108128059343701124143735912056069124405676374755869386029838558165419485338446597623923773415972360724609618076878672521633125238230258595029220591134947938765822669512008839391269129287802335808289962112828198225224414162110250391859832006880643447664780917123485975320139357229276748150294502217099231979250922895242746134035773739238557091350957172412288607298460617670544186105895503007832751932372890681469915047317965980399480982459406089961444825497577035182040817409631133901980162482485813011146095427965784947605282939098646290626066446477723670210587491911699799882520278585581950907332686149753054297591971315478478317790355867528698251952018593326728025170181856281743272025101308873395411563720405682333419218589335221281120223652711639711797829833452764969344894372825705385179795080679770984283330552841574607670127889042845630431805007314205723533126741820859063074376919377525831632330950686598645268395507534718789712377368598342122518906342310598389791753949297320798640419098960297101797246583621189154217506794095715597962809494167679108993433024835772328199134998100333274427723599993989422402663822346053179792999399047115631789992442875967941640846262818175555674682062843008237120426009923502196591097321151678511023649990708140534889364109304178899430731958750928016572217562561473895163340933432215440356269419954631372734822959212089769817194399040491674278313316192680921995996033104352428098510868742415339596140087617194179641030058731059324828217807461025517159168220649125949143010866753027750275572234637919467789050992849473181160250403283714703064955643984129098997681554214186496738451618466874999370122440586908168848326670082802271525296909001339599637493644971392776391325007515369008951668300575143926256011042505284385979630177714298022618022943019513177440758800709515944241409176333394493215914833510408565886440926527499582047189614639879565380013229989137920976515283558800677104881148272169217998931536956421822557569672529244318061593907745650071637517256108386135655454677752021766378642983052037457167772067902180053876657276092983011170880726542912171669854273172339824208998878409602161766615383826748067486884208214667740569734590915444249692687932510413837958689269007145399781612021381729949889661717712184187059073428701537511516345665656104201212708149698048072156202028023598942142252661705724837312287658571869940289517853745524213484815195493472459914870143048390617343705214724949590226835667341913681517980875660985900747556951558967957020853955379740051719510642300755737047310641754994958872795911721029470725860751052128494867479619959445348600970551260179981950691945883358186796721810593170775786065875670267624117807163651812845375502265236106783101425916435514196339667184153655072119192101999747516363280486391761483619566496249088406472398585241400037197799191717991837217974580657434566747923784846654671232527557725290703719903001869072410694376823439535905605547695701611066806918231294027653184610893667603454019005986512589454758190239888348228877441294265088951881409934924738694805645500808703888449107685285894909466880488677128366346539527784116449179523440495434553617178360990261681689471737762086951378604884329650626713462934510259028714453356922909713181969666458547297177320659152249478432213128285449538201873625382951955785905052756895648634530847431658184031921142934304381579475784435654066673825463836931454131731648038371142782813877297336204024496863875733436251916783939765160392178906387118458216682965075437732991484192991218640297944432858728384400029443373582876618657010753826399375312736956697806271520282325834859432617216952255841079983784400222452280663655312742962962716168343310858278363708865281652846722792076431492136057708325499031185989721018826619813419468775463336167607578821651858558376689376576566303557469668187340949053073437850734634103915054332462722564424801610848780037553326391028341188344672760119938051186040869363907447457596072263168475619746804612939935538897425164232244511453282720062811281965296950572760978166939673326173938705967089098586211894707902770478824193763669224517677978515120671321040964591561715004518638401818092713148493750353063631664658297279734812096198065670997633235740904067701874496394254323697687410631893425987101817040971735633987833840246508436679555142527646183310548069466655002510268364732007230953274233402836729859884600740848420976272896483628780237103466565774079132314132970779460450461044208645144179133946897858113200009505792218669627606466389928579735583993259680995673672258892029889119669389344495639622105816185409652906518696706545047084544166816126232664749710310573551912510777544896644669121352735335971759555276218683796057230059320626654873479349625816060160442492740699928320420849253081441308283600620194495313942269511315459399426498435040557022271515066362196273427367645215223219138968759297612081427364176106613274927672410585444089463769145570502303494473602071471287171877942867702927457524575125094406484151111744997261966750997605332506256938849853426770858434376095196364772889769274233714272700212042063580966574647349704419939598880696264016042217655204683970630962418271410559164612253444067116909568566254313505172129647062719412655581041502366950753225174932886972902405648744323491033377037178342147995712587656296824921778430409771770182971994022810177889852499669731616393965600212079672466107544958963085028173198153794604047091058430346690523100294486564500657510147794041302681207813243637600800595134158617638792737404833099551766893948443241328019205516294375167224872530077897023801040236999532579739770238858103069307978915976173348037866743397325666347147652375780591122293281107024933148083687656787020242816559816295816790496800214976184208281591487793699421622667548803396111162013441105328022737878897061734667787142717645132690472426497593737205729844818032336064194924060088244964497163473154398730238784693807299861080651243440969916392385974568939528407148789677316731126314571640721599724652976696315441081308645114333466034568977617784831936473641320798352149214092070919410402045286816145376170043297182945506514836878860564978076227118656898755218771872704446805665894311880293149236317816445984423584728829017032520665318752565950622949072177160092976977007744378642161524074899764982439401031884523996540001853974698329574034358815640571302390821320717332452926616504946153166827519283742515657872917520854210905622376885022389871907216938560892893835285598647498659802512789096438659011648889564178192814228501205073181039589040775867906412530596030237607124537622801535651812309960170826869227058979048162323700838778557588107746906052445206246072827107601820720517945017422486205430565280095978682754002804392158468332208998291736595010564600646468947814433206762940183561083872537045105674767220458597104290265759211926352395568587542357735017627936916564696553762282148247079834778414610588835379699157518209209045852359331928341004362730256286550004546977931402674468228182016924613783484725643140545741977429808734709377693550928812605449798762427249664949832072628533585279824697702515069500581532224549990985598955002905912203956408231891684886570282640140768631431697029650488129654131020670101031429939993992804256731286311569298952355355851181245181221006525413490230097328181720956165341789949702664681019871711703497317040275699702425643311227689279936894232540746550836005997834827246294450531592469985087334436780692572028742564430181115562018655530634639149813668072247157355919487875096691598954508239482793368778118857330372756491628149622584737986001143186232932030708056023391418210562239978660712369682507451324012408558615202316367162758877776813224051477749782444390272837374492821707593009307969195431773353443413455236553021288898135719674059021848830104992609760020744008783333831250392440772579505450758150586379196793114686168659806726955322269744474169636616342203144958871630441600899107120174650381006815385236733749808768791420183422798378704921441165474100839066987049359201521344182015883323676694935614347454809381665195461701509890353702674221538692825888034526363125675181173905042443224776804082940144265883503080573558961199153321220817943438747733269262133404142883546228148070041298444573080043633499857770177217922381598581903792406847148358268904206090582418460526201499531428153269710859678017291051971574749930305590678849921833854837443470677072706912494930142015167515370720576587627598834186068865711416745328188123544721619205277042457813953221430707563310028633858159764791489151782152825203783047301838059122156946551699947495188242708998684158046200227230012072261107996183936748004126336833836834123816099757558667104357917812618666739415770783619088367168807953029438163988892667718959737004748950372256301096825732202337094378286850199706906204418546405417635550883000388130688139901060165566571688780717809476428759730028176160386492283414941857621941157312038329165082190805707010256525322767132817993128864986918616600033962728661583873916100789652019938637534079327099518933735357131740090285945446747633025397210176092294143861720125899734389261012851964499093980823222981212698715455642777779551835073158941008301784418538474385148864650744986374943729594967448642517521045889203431827247398329860819225852068392571171890480095675700181150231733661867330221711778579058961331150834581477667039448422738346960122128857537629091220801762522072535134275392283397214157203391632723759894633517934575764835935498188731205763995515923396846398948348527534179290752051193153892208170388076833772029257363057668064151140092230979711965393511230055464900615748199386845930567680130190169070241905798142290167396853791761118911484617452017583366007221467245895588535680376592259329321017109958663835005063485520126707919770983705841457232271894630144763725218734236131965079122118288303193903677268444865807748763426660226323731878132552521699092215635203126648126595301662727379979503935145920882878095674964831470025613783615041922844118753850592775237033187585646935617908240492292990459014353937913263391018580640090748268518505975716714469018595725872696027012414144011514124703154782757083814091187330764596126337399410414497987241429111054073341002672016410488535431400404349258421841348913844655300042336259505528259914769252142237462713642034763308446215666829649483900651287928889613482244371915660741052115345815769611143119585016477499152523221780282719166320162818293801329197841771488692663409485676013981842144046967398530295721129053366552280590025676557605820469526451982717739077997292460568965288604370141906005482788457290812237222514565538666568700219620883784728779743613643866176083795400991872753782607751173855681732754606481725365613356556652230540827022892049290234662992309818927334678790769409343623479610696792872210252566029373948932021798580831594275786749720900359183372909663604728886495757330703753225114567843515976968487434634124601803768999920594267564600594652025999033564473605909199583768273098064160547817501768387924157142992544416227941082475361932575538858422480321595478346745682521088331061466536607434419087177881142707180031626847432677831803236591415343045297480943753896035044878945536296242098153557887314973696294513875042566132688611031208917246639733123602454773194675189129676445026095773126750315604793825190466140636787147382393790225067102426541646440051870609771182034374741827108437090177412040450483192306523690428929221841770899012597303136568840423728750815587419928958966885877984547460504366725404069441430129740902831140514127740667616410756084366715667381981015811842278959862218251330136817305203178419245684021087473534654556713187658143312452937457688601616803390335175004673655829197844805620393844995657750928432846394180420150806364537514716996389566943526778697396546758488281039311169297137569288053640053977222249860123035979344768833366861031724552349820673962878089250020800639051386059424505402043175035510447093752991535479058215179283926071212765186529183314016271786327370872259603101239631980712153474174334602628514980360336259390310583620364603337881430935709632926398495946295982343679501155813531112273000524063312663043125147624007174981081628572796891445015313368325814417008880659127889328465962971039636580028109926510056669912186606372062884397322899203436448410511522760351040232632537374263978223951126619059588299198606422826617001616445994174163084573784026297064889767174724564429766853744597564777009108740235705383391808502118737187538628051559287824122305680338180248124569051534686150928208870532010515072717823166539265536128159729866412633287092636598059383235254159814306723266236041201358823085008313883354305455612663855808015662301190693580688946432219764888136979167182768495585051055290050039671472237233529871475906332380546198705971089997628653028320558716884521882081016125205203388013917264591632889945549502279771010089076367530357299637784923844592361597713395053770518293332559506357792085096612355730744271088430215267938030512878793427133299244363403157402779204971169157490560877698981327594433332878010387193126935500981178703964901864827512942833657072141968751226926183725586251451235359763025804840565426420441489384816627245747544528225656960767858492344016040415287541981621344380221736112524120400654020282541261416374417174848246987255847177809644889118695051097712484572624692944261878705293349096915353141937895741810334615373341480809682336449593921486168059432673495098900798615481446486525379608524386220496002238185016270579821853496102425888194022906731678949777721010357125577428224930736889259918918868732319275839485434294675375795604987639695211213654865451371871129665022746278047351808125695107319150397492797382045605232924407983605419754554750227266398934226526027171968445616097097504297303673433882755831576806971132372824572573123232111578441742802977387563243846632750384852186019633649416263171891707397105296055171695765381542472416596475907825114444775654416982823569116168141516363986461342153914228817296978310173971584402492931081698635008093538890150123880894176425999323795782911156264968753242571461820062493110909518690167544492193838397401010318393055243894969952047527783387031586074773921219006043069596690632423596848834910730082490791522693345257008112137699773393320080302486238948560346871090475129732329409573335662397619815998813046063039864137834257399905039741527235467299499581705143158182467934632261502489852518601019026327084986801164112436849779996687421541874727874813411138528769684667392067502513810228543981462490902246941200330981971835527361633099231580144174516949055576517178977932811637473239266008990011956276734889229568803603758889764002704372738037557552273317057472488136680462990145781022326720515756392502525551946000765982945532380344416016682733260745653934702806410563668476017792935442514559174398619827652180434311151441044200513882862728448674112523218043220112841785224976632676623050928570183755795973228249862668310687444364626060915643402604246913380645799595083984357877035312413815986814835353113998076005564440202277975489141125307953887554660784391491629132983121941097306156326966830327455792255485107927021170702727215628865402044787774256268762684395122602491540730009927677957698015263898153543001173001408430434466927576366548929342715105045687010333213982064109656781789831349762301295413410326199415959168578973063878037261979226456343108472067491518970851799038335109808393538587338588466622719838423351890653892848630901849394102065603332433419510632793895424822044523597513013259920373226356629931168366274207580973800521638682454882839956885912688220125994932545310699828978847669886352398816149080546796005592039482754667496937902740344864638518624843739267090035264580617036534907191464320789519338227435279568270904221763949093013692475172136941384837940528503636334122393089722518975235259124144899524320948353413310081799320297517302280641138954064792777744970294869550282695037219941449424517941009356468994118085090107023510651631570749896408078467537106280031865295726320159406499740046430913415927970824209822793999643506840904047487606673812817245758723869518079704183732079353714697410472929291000455761607618390532335810660853131281516843908525458946147725427474019089731327428476361905036697715006347607253672866497095270175610094748653764892872022829417445209261342937177585280442592359945982468843377634090584502046457115656958449441710039245017361453247340710511356699913195321959280844318180216822260723787288386001109585364100460444779294979442356384807978380793247217934333191721691195461699070883772725913171570745857636533672879236347270887028824501043441833465526894293121433815768956613185025068870739417175063911203133726584426878409429258583774357484072385371490754674010505965997241891743323804961765086496738414164205783075629251807457345675334293624305962602368051370746721649224032614235742617001309616003521389263685032091742223554821026310174708997301414196715521742506985667783401547650849587605912506697788349640894054537594201285415017948011804401740819517507126497468340591100243462123854799100534018801066749023894727754283029260442526166507839349316534183931361739655016910681372504079388572561791650363838983617983000561891880943254352546895609395918542228504452466587690679865385160565388847736142898766135201617213173742855610491486826628990476156119607706229702150074015259345331219957615735703136258511058639378673125003690177874727062411202592729571836799025988084685325749472814671299232809770223910514612834281041144309739816143221308715439724049637568861846151709867546239783773150144795762824344326333740782368926160305051014856226759710333195409968921361281969177823562538487884341463587059617588987011244216145824132616941017233915077062387091688770081648819498366641083460826362877078314855757351957760305630523364635081671362812647856960705542235837357428913815896525376080623464842263484618572719153328767120220994847987295724286368886879141242016747839666528528720495943726539962161680116041071596468570858155363579193154257242916619705506948537407160896808846571971535839218527268949670707095516704315188079108732647446042527212039684461936084951744279507512245403914650115000449422040355513334081513408223665850067124968657691551883671204785823453851161825863211275504008371168640316628105429244020141304771885627215042983869588374207336462979931476108596457530036557699434909374232482588486559308958995931968343173858153003390957970060608411680908079390416183403548209317052222581171296155232745419898033401716022913535353711225645611065619601606766397527190198445275744914909240191464413410526950865708945933999928033959665651116354473933209950061581182670925677654994118675179656667822124176595998238581480108141952110749095315780712502616267590989204407817101872374076708165888532345139640963783482960975526163450264077572942782733072246702240555895314605916284212678346883756606633428696572611348271172301078686847570975303715317052515146164158885659831028529868302172991245814010755939214290753406673092590895230982225551521376735198459575263146030061963887944236205705897303663055821690002896243828138453642501118109834815531405618935408125575693106612205400350643234982627550283556125590699686496852454000065543893489102182172667144589450238410059673724718604292035305630815156533311788888087270838431138459264695044001213191542014034462873100797659035040445710430366608377644622234090783853641214984161510709229652354160667901808987068444658098260589379338122676822929641026173229409986497439912956504187802826118597151630496260903471976839258478843167512458205097608634227080945808429642439480715376930964277181600006668324718558856503084439126799320624985225964673043232573529455259240938784106792250159531810950426552193353188724075722178974336619828338466726863665206703918890131999738725585954634379233165374000785346504664395107953434412333456875763190372871525481262710704255704787125532353504463660638395756432204923302586841575425664366740579758984229520246761270742846864555415518779249345864093470414957707315439622979905561044956765121986060556209433030463966653368754188932760295925311485933716703542026283961994430902007329090348217404146135804322377581006995166284458765347408424377942904354043626806772029744221857027405850423246644566314014427782100301603724080595735929362402880676068119795055607722955293344513376605515222536368581262214611140292503452811801674708349874628052134697991499645882284938601763360216889083359677500547274779708328617073702329380862960146850683294125000314713457383606762182712036319331144197650386826700633839927132454819162802457896099006705864119959036260449116823957018294481778448106723513485178307638048313874289035478889255269208061531111083682691190548399782195081793474585779676812540283501611097265052275772968325339136614227653296191090223233572701663358456743215926015318652944855047847634551077663048872916958903603490765037778608776586845334719826695090416858333401764882286931333482748152962825244258655539547218784620734443945899780186090675993937962698190776852501889737254778091329784659099567231913180492235326553306632233372457716175858971834519425085197688843547541297664702455616775876973050754982841378214299806158721344528716135873599978554311025280487209806260531327994166652196757987458209373834216879611271973105969482268085535630886440141736509620705041202350835169269818389619933837357829737297551372495983761252826520029292684108813107463334458659916278800920734585324091666810509875550371959849458090007728609293342040684530111498143925776819360101589571235754298964442417151794148938213657023349850043541629783724585320462708691193533214932562455055210992450440226994759883576946481377824595495670642831416577945976581558355398201543814635958511752433739888728190320661464892822810585102269787185553887366679256051451084015879084342810191385149626671439159645877031879338978724646175940446706212026030358651038004484309303913908690201155665580117668581466552231875387149743341826095153259233057228439492996756942006509278605279481981806100555174678244452978972145888536662702238981479340356283153605883775740142610782102767477874190696342238163052325880761597725795365467381212449711428180852947904199223631251696236242104547536523989898729410503396564666945264671200165229873806970847569457186864688221896602218412038464864224124597376687620980365771031348333847792866426599175385015944646821797829222778221070982442189697836794083635362881153146344760164060513677969324834107087054795511991160017350422814228904772756313884889114323756751659401368727290602140069443985520877196002171974825926884404867145660595030450640347950706243876481774514791809529509076881688682269819763380623439125719645107997601205939411457381470818465122699041054742947913983948295685578321373031845813255884982093833308768747268626741551598666218048028724738219464562469576767777537117808720566222627103067975170020405283645142161036904492436673924209128452600182644811951607582270115163575603942309087207595863093916319450660980980164282892792611823851584993838862693414110768994215033739194946001962320851016321908734957046854773945944875924386195906359955122871542611992724613271033610196606388071195019900388592764453857667160820805752053928863292646354966382352486155553426583165302326771720203409847325676913748438717763481965417477978989853510808055041436492988371767630486055614645721568230655788605928874762854955362758805125066903588438023966149597978730142740802277336291590925311931330397949790834025573843852088213131529131429834398815114804466890482605716956496047675556503365577036424116302887049535917419408152507120395391671490190074901259113868263823874807065812670388445525726335375194650979890281898460038423130066093298848289403374069146874707390624138471563133010645895731618877380708380069334794115236329731548757648065365790210174271513868065579571394232586467060218377200771166838576347235566787844294284700185141216189365211573498101818608608185303896354756262704934455445545254295084449204770562254075030422926245658696355499307274340719739066753841638482529822691695022617652933320356117002697998439885166828690288182632514275169662042241748753093897771308580204793689814312741388626285541657162889952033974246954198773116773235802182615777482808572546717810977974213764125649776323612508191698041704631146566334759345879578900847060038678611709145215303514854225892090558158936907456972369673555213886656367518338976393314151861750474661929524720417569986080706659652192880648223233081378497189445336752832327916528582198712571135009671033843012330385093593843701703439255689763610926764976940130091993873352649835744730496064029041380969748788731571814011949168673182917856543285221714139909865773420075755889519231820586164105887203989774955695899265943456329336191928804127286764158381354896177971342246806701548877366957671749474809629242396425634613951867836924606035856729219041345078566983418217988678918059908004518058298087232149162208105609931579414319491300520989409625880927547425494174489954947166791299044705510116331363287825715384678686094261372361495638084666845927329303424632715659663255851648596394375623996238394090866166105532623928320478950933728779975677857171993222346607777195260109230054880084375379966157829249939219863133551659804511957885760281994986405204368536470050334100524286055583362711878474998475824875935859115818703800958657465038521580425657085953206812761043514064164772012742013004867257358252200578665599885698245226941768521168881889206545091605534595796012022833231870985016598676888578670348475859420837362146091491282031503866802005365022691757445047437103560768390361271400310890397881868076155163921736878362683768034904425375076091525145236778990540013429024418056008207613608188987112863007357965299208349510033574179730982109534157053514529640886720845875242671232075373735876145495530954671863475647224443004617494741692657503679142354057025790260486876695663115396095087736978487140226891255323341633311895511785087967809527118682093988392518568765927080078440621557388980916772516080669330552917056972810922094358501797933848643616812215313774895321143169636294620930226933965496665148875658359091442417582563178279844797135001783984354144566527831370221439480039406691473311151558282936434046948893855462274080017991408720759903527514935051797396335641192891161801078744330010672403182918258054565115539406774977061411596271857333550582055487816238806403763490147698957983461818550656593905108709324918342381086264169377299981382845932327563975532171588309008901656048855388886771330101188389697835154339969714464557631497105905927715615846101040368774812078593767969460959269553307834512150418869927779571819941929163814660118550190238178344452462534592443216883361854384697172310561022951699196658732932750156541222487902890167926841878852306250509075642409916693681600055487115338421776024398306692443767694950938006769890906869394271711617049619173593036054133944433102166213593092127777958696117999079640309092725412232945907625392759736086814226807691925847968525526974969740370407296513893052133850055880188419020282811391421553065085424901205180609835555891875615844591928132121751356378334404699455968661643026496951460774959400081633111215720314837020867574715894916465822125344517923683563798368610412705395109826999317561381380535996835699833372738345419699747609588116431695032730280503177921722066993928719899688848642871585267074363627856240475513091790763890480258219715496266710229694622867694736296791592272572588762529704285931011473745389410785258659537801388739786927665266529843974484630730411336148487690497169796444321778711222667876838133833984470307399589843387686867297135080319304538768301164920354770284381060567695851959511415532801788103120391056330502442180936735667667374798541692471538569305227880537847374234269942210110083586422099404398803819719271228488461973199212171350079162339436750590940712597327771085881759576486812187855238434574529252075429591240397745723108612988477258370198419645589489367641814556067437652637283869936675911691637351559594563772394150853856101830665976311591142640240292590433036250312537634631072658239764631212999945711880545026523014221549401259814249707028507048150594488638873324065194973829871545732706494868366385833811635839369184524225381860176285191721448843857003868902267316674816311610985768189499588178006582261303587883718426294112024531718482740708908868541839610231236907827415979288882268137024338250627662050407204992092997100586254080763180354291762004172354618977300697113184346642018279517235568677803521896644979452965426909707443776777619349417474354158489761001348175266495476990404689029810924749472962810181588025638932914144293917629455917669587331311368485587361037576200312109761903085977380922430602242519875381732273090374763040315933766084808884947623217738769087419989073159200497395013539717717654615916345355300314432513315602727529657857543064881456939447912816305031399604257076025408135847226178161677784591383495576404455482193533304827924580291117258174456185979203620890060024283672812185005642785248953781816679362506334874844430563826762007771527372956830054904311104510397317341352727308549471006510660195037254715745599197989391998028255115778717960794328210573002579564251142545468386793572589987967972823066137002049871057149962946884941553929525404243596001601865969658807032144902747573984868641665433427131317390320883375659100781197945097425612107932680883341724896531202656935819426599976617204416804303852036489369933801429513397778875049535235667635951424172720583800046907857754667579423125753743100418491807568083897760823851111591784389742092039677810052749947314052039336186814113350595696549225131195096396245017531543072054704007814719846614077121076466064173303539938754093589083436572523364479435749118307534528506459448914894079453365198414032176149322059878112116346066758687308056218012619135427878421255692864307858588550852729406407844707274303874674117827469841850745973220242074114182726504204438697513912129085773326587486762337809003830362740270698303109102891746654700538175722650389305195664266126956136541266045811933246306271466916653072296180163372144977223233555742026924605955278981592788285856762498546708576644806297269665529797450248384482599638338992269636216435150452540354174470255138204270096267853464326385515469821726835968640778298788870002224374776391685409896439076127019839595692137859238374781525618758972710879139401882456431371902100848176503348413786924125043595256321423677985967651902982642388756070415502603671559363694497999022463940881146575970204992267919487622576753972437504765254465786789808598950428644735458736507450097089015354218222345996138157001793549392456833893165940458640011238551227850398688686456711333488930967311697531522946971482657510288164401498301011354448011778336508956515698574409752345780325601375743892726960737933144246155435231993094754328634472995867699493913895278332459844831039355926452482946831816398558463362540940992744968300629289228355686038513434066060349702975763297918949950003035471524953957178378393533299876590894648865388756231995062635867131285303372394796825857778952955710285135281692388500140837627852541627957087250510574063800913135241829358862814144303354358975459481989453221897711266514514604044839416314282265357912385105314730618473602426258781669162215219061001369057792676416328193016326891786218944953754918947146780929620052437698443819141268462508372228125164592200932347276309863339388799085706611609073199692326835594187596303773684301103241725776275998337490840598682300160927305076031663308012073761094263048212834298742114651257652162529180885893889727757431979017896688583572015598697270318306710794596976620040151356622630550098005074584793743789592921729032779514888281783335359097702374311617221690328861508283561803883956974817338888001635663611712503644554665235416834267855444829805955829259384127641383243674791393311044873266875766561114676457485870475288811915490057265599356426233828011065076920264724949937178515956309815694528083330279151314647929476349839507344039591120785675052704202202283152065189444503355951160561719273628760792413614991461104726120990008169923899357571224921710108003613260553091381942630496687747714061964182151007815362621125011290749856575081110536133000617624192038465924423281763286171497638649534005814724394426837997043726178966624558789491657150346786130252917050953778709605467126837068108119084196983724938456573065364674227594152849325482333568793711532994983160989659537146252849193928629277805739004802202985907309072933990941157673610465179229162843364849538336252841595768023860220048157549369446105679580271573544462910973533453376444776618792280571202657855496582517899650821100308499522100259687842370766174433676037744229674212219789690913114200925504019950823597931285411763510477607470983441707835588529764996661499001057963382377597881288068162506295751530785197098376439315644163495660310424389319591099086243591740545809650940626727178295017175333921883376473009159010507740798155169642987293717560596337362592461988667839918049474255924495481243105814412967848159229267971128245906153024868416047819331698849457636794413102438075692037238937186430247370882454507386316460499365587801031746789433989584354451925711887991266543841946385412235423137159914409434278835362375416811538520932077892594226192119829182920773477652898444907174502851993933887748094424655127695377401341627292703869035874545224998578947024331696771439396137939711329576520611178248031660453778870121049760767444819333306743978899410794786594598457693493421231878688755812729020615371304841870761405534934174074856581376853925454368292872706413131752685222019692117062820298926783164592667378631290547899322865686697833405686333353983978815058969539010522707811236978692988314714658666602033409663164714535302721670087276020962633594337945339075888009327757028031134961695413407432077477074509584672216720429076004381990755758174106177618438081150856570227479777113594879442666003232543305057447953589664073017128769182581231337049378930758968339076812204377593357022472755395034642551389602756112895071912125356643456079614079075227284134188416529360566798712626649836427462343768033560341322138543688709252819965212259475594878777084514808317465965213651934498138501739471873810362573565384145522422688979761166055257166321830497100698920318517227037680732043917888847904450392162338201275620868461841592273895519872275300030272845745494718917534244942989671119688021598252628635538142212558454629573017347769597777649801717592284847523042957316176403241320022503218114993206477895970002103315524642770505829941702267876800055325885091831680796206840083826142213675642591176794016659978184631582484025836727668865107491185511451647521735407063989739184436392757253240006568445787414254651240454573082074027707050668215561434145450256190672811128675039670988287627059424770517862269495958297953420130457164966068347784319472952073139179380689174681015552350796125160043687400601207479397903911206176877273661275104758658691697634864019126720578666744331600615382969603707975142694138866203177345158644435258570640176413368332694440616902342063312481416378780282151833010935204480493149978351112160560896646848886193395475149098850115993664959453536407513126639061783868836488300133680026298697670346179252720589695439712002305367440013482221240425619547183533682885030820727244373115096393677373924539951527420114727896603832120611049057619520277920130460533347478574555178144540801643241449500115669260503466067337129644022400012120879474192431018415089587216497649027851994979604923159269978880388878482085271836489161499302807035537397818380852958649919264550110077591060604500257941494224571967137784168828508317917052757238145166408287683602178808546020213592040514961191277032114520901728815206397283476549738016763524461082809940544478085386610231533386436454873414989340666767723791316337253992478427530759354578786387149801295620508518702730367195637286398376359665871417478476291877018908656859698596754995026776153470477036482956870469151426836773611677872540992534471220870610506827686485970827362848371249224708191462698830030600117602795167315006077115262729613402791880613681435898719795708955318801604256507799302591030389625522761528306284326023699009452625722088247336265438459041300599855025385235266966001105770068622731289409898248747271778163421443505877230575295189805975566275073008222696288080718738175947647866729596169117670229268841177241401876967539827841447567850531829043183678606959156602366125601089266279163410079479248720177614046230708558119016087221872786365747472684643255313132304196286451795415712141797140886506790548659842499973367009435735275636613838085139210918022191011819208575274823950285042572941410520292501872373380894078411514059378964893046414413136092740981900804106900352497267919458280610078676721477258714655718386063425283393706925495047530001301863218878149978572746316476386006736210768248198225427121098803552408285997424995486368180891091248943971031251619594316497100007459697076636595607866857820421478012525929827681970174199927848446944260309066788674229122120946865040480663678504399978232101251591500703830000666218200820440858468278637615527149534226585438018494495705199875856567691756524657184842908841726219741379920228624278541681277051029845568933951577565401164133234381007635342178432429730365824562202934556697173284612587900029075847525864568645954337104117160108534322278603600198377212296600747998184830526031431004845689086094404592349892935102617948307040304554888451007049085605993420668138740372391708034798925352304136782061494351524823347733217094912121611633255481790343713624377369184092202685681654988241156236779416352487287691828312553833971180736872672696792383752903835623753892545655738600624330684999484693252375217577738244956743166564150490638652963068244003295613374496979893812113725240181322602552101412489469166227587305512800572923201364216971286671077913747357466880837362487290354168255057333340480741636404260709390433654264884386388547130269839731292958478976960061933129129114563253484184408319003032452773060808138450276877002613832065589944103593574486530935583152176761463511967781141780177729420796172205763827909084378423711651421290528298062841857486422270979542604980971968091852683462921706328643055814439749144309291147661166629836905219594495148939013298464684604191141010362977483330719583452890617595421450909790859121788610356275822107745807708250611382631816447206413042075379993196321953462643604450671540561525812870070711528916123800871123673369332150008526037966710588855227919580120858239301461169959654951714337413195839782480967079845841385294938892892934535620317743244586474425674617708072023844351809275725548348712676609004347211412330201075026194113352203684451881827973296670333750448968735389592241582988403729153708430561007195438445724265002991492919646483273013100148353788894484243921351014712024928957623262040076498847080935458364071982274360620658870316049536869406130226856912812438325742915085122976186463053689330377074226392761263366320964759305205066004670235893075465402093221262571662318394732199829973185707459260800271923836309064069826887774489673232823674029008573031707706212823247758359352020078467826887023163570984117752536573283065898628563907947082417108031856130043492468068396111390821779688203976622097382319390339122876557835303346712823622839159850534004273840531151169208221777224068120002710064604547039251268786968635877190136691633835491361415331258895845363415710667122061851597866860091354107160066886166700744799928465771358408159780988471502381199795504506769321618133482644603811262729363354126790878963001096296291832796029279222787741338696835687088622652260344512655367527670578764254977678122581717859997119200761175107235444381703515894436902752560627409262215824085044412983498105304465471254622546960799300510306267270169413410234162661589993839758205264597861381051607196294552797206093843233429953353460213115555849379870643101825912048958307761675699106747812582292913703706021765394673669406094744446586801692704293467395263000138608723841962314681346159934149179396500714916022926896729515526801311766785806780062489889650049568801127187977209057800363059864572567730064331451784499603753687952357253822929089055979001572635005620190959439631739639809208214221282879312603879625551522008405475448724765448427234462168263242151461659075998704725962830750634127255288855693208993767759519231625355266010009777804044411416543957905514608051539583148131690338565618704867098011371779846185158911591565614489724942951148105107712260014586967152508034673964621624253164769394385351693916587158424564496159855207096434357975572441810748583640840295829949960836159088285074740568561583761576441885077070189886076637323865480717800950368164395395806571178118421500960893264200975238794418778695343650209547428571835440858562347942330408572029873890320805536886837111665880371578680050719339584550631565656738982782876617551751471311816647338521858647779224881312274632455919523823668629201859230639498759557180570162843165273737473391707101550673324094614722797426497807949447245159598552597236079833226815683079815218728791253776496325220528382516838736003536660045701004113492740979013648901570198603184459538266544460670729762671846324998556081763263677322330896140968250812378347844649845973225769409068276198230275201646051636472900142442990829315520800367390731979917752547840366893641350486988668560426768222724049873021488577805039951853540404920054143136538515406760562436141235902291210558324469458807139576411758059853786778886897171046831497446026226705442290660566212344559743789160861018939683430243857079585330664551979791148783126788233489403166817063513532876806418550779936168549829392910698882844109626416546348267752993607429201662557881670097205196641924985191188601534477425666334542878747997514810248062358971050334733915134364210122354157825620272395879628524358036213304584801265135788220250079312062703212556975246327160491997547674149171041799428036742434898862045611345715728053054531435265580829237393679639662047596552329887488146150582406323375634323582172612094733483603872641229506793799516592454673684678332509527733705021012450528602137176848460739745532898345522833285721483460523671884285589556370249608917201308539433688628766191227830884496077632080648890102456624373666226366428158882358562458410966518308718196291964024639940547780769181283050425914348157294738571583322051594410943113531506432209378484834591461053397420914730266492684090671599261261248443176513383520731224669191921850986714367875930531476907980718843226452638798039849906723199902544128158463855679392635312533922236974392985191615396388546399903351257810604895247426287844794182669437107441873907405818443820885013516796724906825155943527531668026610308823281600344568071793412465586046199144877479414597963984766827433368871071841037762441674849418843731829885876863277835180420944759520345307263973086061404862390392002325228998001454434997674554672463405734239361841901060242853209526471530719331365965839327279927986370131891647241705290481717981742802590670479584135376415526278757234972673976168949489251271917164475701310400467019303174894552422702617407551256739478872028392091979715594082331172114338437650987452936944814749596903022540642665194006041172971639919148597380606244174725000098802104087449860520115359744353653253609207815194845279131795263493976162653260560120687119783624954854264682810004102460421467204057687513817667967569190110017613796317949739918515928707481086075139835636049950620206837232328679439634921805256058140521424289919002317292500977367116121708467232226335358587772896783254033841922956962038716125632894985287479070529250360563561344199915476026519487865617689349124520476656955855099326357488298878199396785421480411000289651732346094685814004376524293348955360910591924506912256288084368477004627833020437699523613329135647696552028147522313743888306094749508339280741810140650150496439614958761092483772929293261968758173271242279478098346803158653908566735801627541295568022505852272574994580824988309840265702025706107411068550282590063770562708384573562764145813543312404302069911601743628925147417338541661485003053813422488169367989415779290017556059805374734695238690540944958019374302549387921211029689580062025686397115169467943695534364531882671075962621980751241116984431082077890040771250197303688181513308430929764372837326301553727322185323831993200923513953274806880544752085276226584762757080424757487098392884849001087666050255887769678286591558638357924662089042602667663894852647740400655670767753377363585337971040882638887545658862956605888918651883214357840965874215985167696776871201125293798756643461923417506807907622504256973392563804611591233806007991140749945384945756633898614080878963473741347445519544086577789666446361703814362836217366787446457957359458441293645440485606789783756844374235883381975695142597983199742851650725085197945135751752600485685555150420369170065548437326533522635868789360023269234012948315125734629224566606572833085856861294391358008816839801907579356737109859850073835515872479899364732611149971127619007823307111166561590228405963060442529571316916393582810652751373100363394458930285304891395330106033013597482938042213061797087701388702628788465675011975135973379090963869784315940189057240615849909111472562468321218625557437974533729424318146676985528785695439050543105350962857825466494229040860213820135496000821925841240852610092030271769061952722969208148676931547978871468685658703886308937889353769186685852837987796065813509801393318692340882319328957747096471109548291456098751861271857268600097499103024234595484154049924680369289149369747886380437941525989610594965382994838894315242167428689997870694260477369878630597691900859912299672469001726754486719393695612966923296876192568457937029892507633903978514036161032204172443654501304289252024509927072347094847029913465393248973568923903507603055190138081435931260607283212929094686538883553314977538223718922604833718003897105233383204949478459102287124208754493856281631079566807832767529169225636022584241427366182119937810917206275784968645826379207309190851175790945291079914711466502403361545692623761162868550979790544847155271873082072812156374720825620663344142695693400395749864958308152582180100981686596294835267553448555371029872690008754158995242815155416926911051751512809226381452138669904598043452796999486636063277715429097153526601629519733634203488130317941037128496746923879395726157050450999001654827297202234540808035738769632212267144235501314378353979704865947595616312397796660431526831201475421662386667208197597489307556473742650795565336063069874763430172700817733008218371077237899150104157593433875820979199686260683763713953396343103749977737601798312284857925344067761027831129260850802451787539540972573726247920725980389290494845037761225371338558237251507267139393674629631191347005444069303802640452232923650962931522373371121163613997946526792910674513098788454556310679034004205923633361404932114246105843187370665113107868554299582660447260816087002360622300452436004868507428280346790639591951818997885707326438710689467076147303500076604621715371821259323604425852239727591492664823275755656792825271339154564624767439368574975429396508021189882747956181829785706937443207910474289258288099881156852910021244589326192522075467956471130143174182019950577553208259706418835276525096936898504815815745349214567369344076974244323642281041207540079395541050644804927971511384858203454748218441645575604910342044345485732959769991114942629211974718985140251282864811894555124156513138499346916148817978478888044023248737049578943584957676921396056561283512745720388319297691952495087553212993691031542732941990669036332607181180855904451518153862864883190105039527451740871461416986040601162000683513214561614680575823171981861308530034324447853562609062149518899666885768644349472329920404485856683118201213429355570316364782017696157721998473553270330323307072674708051549789997690559885933532388846410561581426293705380206676012854053833872090733675929920498535120909584338852957535256203386308720200630485489231896850219174000178259714582571707399880057039253969540618931257001020390940366900862822339348591662067172795697452006770090288638584402354604672416635803546740079015864126407301784876205599109455857414549248103369023159373206339133255088632983567211208592098222580916691554546016507702420773528472906322484383481831091230360332619810795397467369316539745082969326155711710244482000394392441998270210688794612157215721166295317705819312008014136149671705695213512628079400587468537694218105484026562518431739238149788607680726207425731015164995117947773764358598376475440568884763211318084082166366024187385378269735528271325890536434142426777564166032094595032107716737125073657647351532168603089413726418859057864228880564782709572146859483756048127912924558157676677508820428350963809228219958498324454306515837407038705941017826882678897233021185365733433370822921247669294755139670517336420596183549342814846246323790425932840965813647662076219549496404003219732711822964139748908358883790891222581339611845778152656206289686747571721780125577626645430057224630631896715162776574702225710722141844530714145254709461411097531709277595492603736487559789242575507985388647890541815528225069188676135665510027725361122234267630631342742231423792589059054790151305651450405298922567449231893081295063141831646593676936666653962215002366169839461637817769544416729269050643816149795051345421268547719818831219683329705084308629062542101327703902028237089797202414432037468058777131356118091228306277054054963711402899558084821718577692268604352437272248055193147629432991444286805016347883443081076037366193421083891610709176505051705525613905540443670733942235535281016228277751321421678317387408141316610245713326358069087365975281190131674888983584746932617090086310800201390878560894640350369364102271009186793125383681540609297199701843272418653398788151724480683097012411111865318800007131660939178424681988118166105047641009753793581621773760603803250447110180574072167248261895646763468965087870557230747690365202307711185698591177358622659792152062122463797064544520699867605793373687377751907332473773074644273612763329462793003846336614309362074514922388593241046397975113875375353205921882188145734954739066716873132531403371312005278361596263447947712636078002604120482152310976973205611602532573469083650543438609414953514866817147571755809269618096400069537148891716596433917363844197713736405377207247468748506109463650420974456464196903907154210026789022328911261244561780507381655806578267436100104514106216465650846619790706098509484358804076113699389875765905755939544217581724718116450410663389818131981586677476231255173231646548554695869985537365296321390258861828972322760764052760680439417730612061243128606008662527033232886431321967272290878365973815942933470395302726228355220136822187559268302664337727590237109858536136078024465957665372089800460178656391923940327154289872939868865008380002359981192131866292144248074286022778283180816988199332990793631823983119212048198391453134507673456982704037246344452566792819031409207274306735051149697050141685699369685627876286277433500448539701565807356132950660405046727909527367554911239960380558129720649202599191607566154278364472830761159540183863530148414127955325241425910639678697361412636857419215068557617194976368282477874335819215346350612568767276727531074288949197051987606180826936015750642879118468584816578579963723720929849500992079875454042191880197848327146668601757593990672041830470622041809041081272688493648487633268916706286900669868365331887705925905783317980246585378795214030154049237741764004155634616796871099069441145023553996403769868653717146156739174670450991519080463597473885597386966335053364541584923264490684135083397651700786868193204092295775880101616317066117900043809081387936629907583855262782649987060512984658990737292218302511953391303139987243284347083211174632715457933824169895421026670739048710566098231204430136175512668809760426283337828496679141728230803237065324722114422156010653884919971866691376511318606466013646269750967251488089625733164673125312146121769709190874339927041378057427276458517146428645474747038368716255243377314285563588871438607623910364495824828953147427787714065721925176174934672750682149013182893458247659478913078820989873136104756421321564643048815866637562401006018122666141315509975183212278944835853716131721981456712498182746486316926012111929802534479150867093773063559566814295743631777267020787267569641745421380021110708040119220312886842285590739682205431530948304803260013588424469949383264841998222351589486690890117538130878030844692564295403621013809658212089964964445867874230080517773970302451263060502518885474313639810686288230257092343755985190784873557760344662734858299417262360648044710823754231580147455476976321472785270692254221911411076601664128380691478070260398206021136566202309834273219356105624357073839737891688417959115341342010533422474691695957592001769976336669798476432467896111418412341388128169252263056833731147451475910741790376229082274428105535674365742921675589592599615073856458085092714975075081020722260861045474440566299498446709056448022175377115179715648470527761538907063861089354545706348499476800445936297279148576591468239142756958407636616385400828523884869072302131231095090624546199368940527406737684219891188120833162092475624790410445668488284479746306737067748231767750137626862455133549113101668402806645581677274431561021696932745608849283488165624459531013212705701103483207291788157935863838110836924293899413703683390790143528758163822752991655314233275388297314730462579967304987729070900098118222143964003704166714444766299048558260827852890347248503647733809543398178692666261465058330723733172525751505423287751957605943160153341760724885822729007942277015857547811802046298714629217733444242649722634466898834029483706652831735833483000058883860589454497588153286089860866546727064564551775053318136664785342130426621083439520774377027970314763835516763932163112509017119896236059584394705394000312438854382980796186255093306526673943033397456819346632271280238512464585144018354592005230715089076799496554072712971972397852875001834902915845054748401891765446897173313413603584904626800215230210883941443752599687414815543741504543320522177177568766959629022536828160804269691677060916481297982707203901846463663944203241848214379721687095360043919765458109376985658832570354610068845541273302562121928569967638996955753986967668829633474701619349260178130795556738334663134844747742923506654988798886949749282663976995479321654611390966195563842270840035047420546497178374854757087980211504826532631149771436985488148068209303039902298480904417285418375593199617371757982860364417960460013329567322220240019505093557761977186350799852889022717351313958201315296475702497863471306702859638893132704413466433073770199188404302478965910451282197430408196382648260304787787316771307519030321432991164001002105035405226918548467637636858518604797556458865061979983550469334160598327035701120684762255029648469618985171942719507832463996817126935872977007384006952215303701187632508162370872110218153627722860176330955875162831840957318714444372499177970233503035990250172502242074926327398423388091196866251029755702784163624591878804972506821283599946928718900250888753607968904270308155627616702599633213806542967741785858023261532184474538354488767218498887425410579560342719096682280986049118657467787136045869376209029210893367958279514428138361461529402429126003973727966536849499443030605590172876110817158615352240286576846077930264090434425372423891038005858760953537888497699655228554307936906435383831439155075065368432520823275822167412695133808932899311221541532849557083600673171178439566129675537307494498326291062721395422968821011738748499802195013779257543817438167342165022284282538315818240318179408161786069631930993657015801650852846284967195845519608433937266532728377720141823388364744238172633543481055171260959035178943798680813047378102370182848299156019281546020306603330327586459861814621669518384380091344010636431891475061154623820281167888635399169500809606442918216601318582909368831495940032571864309616557609644451238674818240742485597826996338635232006260947811874039313597222564101023989524338723743554589385599670663469266878860191278917871293096146675034792464393069337003295128614945172734372766135503984927250066158947144399000874398313986078981345744027447790391431885773387672535347760942571150664736076069807494206884060475620747358753471506503686226957749276390242568182216875268608279453705977588619355344756727966820104198486627997880906432730905898720132959032756720847451946146770862186973796861160077922663148420354871346677713381856761425718437929196426323917321533510089463675005271194770756133227857531721725513302187040944607407434971722719121250765179171665949218381932006704391819313105381545584743735122996917518717336493498502208815047719958681306761683287527224571219678955950755749315191484719174147578378960854444562941777579588020017774996068597434322623302277749240744625039119784250504219937995556710502539927959847008259534757417826929294557386305478079684346429845431409073794533297840711111781875409534992638652308170301789112702445395117691603114095552177890837152954653502434019608595807480344698164123023868869683971333467317776095941752603966064665377726475145973224139452936257176228473939803012904453888748959397248138299581304140779394618382677798101767766809097161157037278284609466631732882444883319684266784077658955905044569098759307818393232792337658756260167839728684403322416502745813716081769175759802987726021899993809858122373105649475260446337205078249931139412627217618869306911597335200779647630207006887415045697761002021016046196369198671084939586783386904081213873417264795635501798570816907022593142023573676672926706572235081745303125341791238057743811793432317820149258263753106208591920877700854406676132184571612775809211974287968024933123322257311894530482909116954297186431566165893434772829748696266611837902970730997287673926927715033836225188224570137327056079856360941475486409288741344224120185205079888788126733668697358187353967564597061304211472441481544895459516611420842298696341458544430845032393250391231360259792845949720310028653564059070037025791149927361213662057692731713741139213549673036334149883242433854493126607757911197966699338337545195985973664650502884409563625078314253906479342380058733709604027833167617834957251520520533647268381993180974013451615631560275063660184452179947218376902528549326505909732205584637783784590170441850707514754892111095963894729612605314842003578835465753876826294338549578280763247654651519153925147550190318451406393999041967484286851984017651218420133070369740983370655746811210631863590703471093319901529491975731791041417759148236922170914976178226019065763007802617056229302473243989145299813795132937322781030124444421717227836764897241907066632160604503876417891718295561294941862835553863410080628940078245763571910848678524101434957301041547961117650747094727494470686771425839010998229363006637609299621148227625506711332339957147517434792168267889474241407267704313014156375734916375191206309072377862845877509039211929386054735025385443865160661540788028467569983817117339944932500296759212182833915604236170066923506422142513933942316793779283377941120256360805489083890096713159119235723250620784352183440375367397781823329384726542887029132231416570466258346817992070898892728122602204816517170701037627876971772434583242955485973552335593200683277747360439458610620996869872157422381007947333898276144405792034669350030126341727996450043433180320507016479393639834414461311934281657582189397961263675667260309397611504600683473955086505504218578067808908056305526014588489527029824305863976689805652498366022423341646334435380459093609008748141068056800734356977371456106134055786552432187255534239981217273532870441565899719710565192401419362693125896343404163144838101421989383385822282863858566403372820964399517273794272688419678105408879350156277357086502071409995839911124076158834769562309179126842416911225856910795173602801344944199800189585498631602371891000662949998527914105315399707482197901084471233080247652749041022520236873814465827585932258940208245253453581899126285972143527620469610494509620787729449735375002245394808023367329989271564817431604382318210670739370705012026393026332059171460601292368145726701768258768958233451188628716583674036847580783555725353579937033083389242426415427824283471166780454061485009550909362143857787952031231344866052974232398252150950216966784824591797361900215844394659614048742870280382753362178019451857018167165483281960792451650134628396358882117294107692072706465401893774175031400726649000918526333710205913816204351970587633494930161064077620207957971676044524460819618297965903666402882272833763589445445179951774320878916397593392912651872167888402776237250248359993891410720328084607895072635814972990462703789401808973665583269371879548096908072963859360701229834900560030901826652345928354225158505728472437410649482506277449729770067533340218155032009385806296814451408064358502913846626656778326513670594515930339560784210169699980234663518091867721670732405115310732653496086394280021650854905724932714411118952785525886581395565098680791360694021649968338445133713507376690867585261031867125796375030546410136557423689263090226359365562405417496208108009596191267161414222761739246939082447254025717299928013854713984456520556239550402516283779492776062621389363405678808567799225898533284864065086986503773802948231852148298681408998599320036173394937178252916428204081713426505486465463249353413364864083104863245420107236262752636250276652315946702214684686855280806389005213462091986948356319020935619189468669406505726441888344137116900312381744036178301098380708624537324035035958885618847059935972504311263736651731159911575444410492773694090643877447827470157506450305397059599327528869715350134642702802922722370608152617461941613175853208565560015755953251958277371212964188792597726525725503669645224425398555583968294399549062979276947803590280961148452981796161946332865317519058821903905586189494271354925534280254293246846618793332943437414167296158641765273872413982538144882704921794288092750314024797991968202014075476030927176814454686339206345232316406632865554946915897526402555126360571975986797142860320429960062374068374322383810338292543422578733522765104401486584185096237087731015914343497704316759400397208512425408655012596565299309637277805669248836200292844389566391153752821388225575149372809949617945190380495823602472507202574306014432153898096858251229109044065783034088145976425921858551664545588790829370334512255803565983067129293741672825501710595303496968934549810320416028802813417053067217343288221040268708289719566013235885760114400936680931223810063044463888851330593697101889290870038440580070502079659652013220798267087549898862891787692577114369970525518822712520168722344572063449877024870800822109489856525525656055740500224671354266931174012523058992506512818141782817240548115683045747779838983793631428840296890073584926696723974572030177148425059581428633135874319351518768961997020000040230986828906005259266999980206507863796127729330026752834053439285817028457532663003288509801112706315645650919171161609862831026520672899440435536314300630647318559586004047459632005485036267046372195162074482142929898837672678858593365096263819612157645984701200781601175846090527133156363851103310552759608041432509343673560543686398892385927604310149231183317764766958623696260137365493210264081804300685001883990691807035002145293635567166947976556919137041466512499170166328966112792756049175272466213194975092981435980532006728557911701812365788207616148954671246928307812617532482528409096199617076013877841913967818030728327777876214345490005376189079978211067943584193258946338542155610668961301517603760567228487664098338076394601795188897450004500548565656275341698115547097847308815021860803427225807520165509824289854526119564062744380084210586706027917192676468530135022601709821731598979308238148776948103276030304215148119512365268890186953593424275533776963948293001291150040312908053635930847253773679235550469180673801382156886891310295875140710404752084139488909471540820182269861722864363892564010625776363758833796426641378889823185395747170560438870010910134763510559707431440290752755246381236982921741939620881962615361516346645244365855001102454847262676940927433888333645756600464612279613087618062655670988177886437608622019615608378584630977660044340244027322660907081462975059345640379372859174988547831944371496966915152998858870118257151988535387041511972735214521622243081310852842889046194786323679868933193038585274375223477261014617282786465947467746930049663434919284701522012330497011386593156926047910414106085575575120811325439807579306099474919512214830528808554754857892440294275112148381793104929266109080538584781926212805470802983329270962538976206980792994378018278836926731747261856438208421418603150927950934778050300722890278432252848066405941070281181550017223600166589797178379720600556977899649317067942656076731732297336263623917085903517803348074312834727138022180079032578020355934804881636171406438010231709396635375213563649096048641685510192739689390220184986001313133917912650909925064895636493219628061223470692552318570262479697752988037930532230141825729815568446168578965717380659979900371276699770149139131870708008677753776230963792290541516635874856205685292372953391170019140052876004186999412466595497131821654189719461871928941548286923586518311237867142412986118536102591274666743290633176359076641104240384704366260369445590778290081292573731317002649190938904781789005656129084455914280574372569360881443138061557814080357648501283351901616795868025466985703830829819633288835711459409186379595616976732969365788572746142658444913803858715807493904154337450352026129659633853056669542797379374345790052125190449996675364569397851536993254164801227038141241050948487219168252379694919441354708581148572036049534967192737460138383757613165284093337754915069676962291940768820039998103869972740801962337402249327759678525707560479489475802068665947858774553976867043692634540448868230184586376809601576871087763351539002997730195915642039024272869617575440641408482044659011053959027761581408661349096740469725521503057927071921596060364672428246923874229311047129341998504648910400244982593997873640890278065875594454877869939192317269089935368369039169558579189556342118744488452873168678433509150175305713903550132439304513502711999664706403744740358388547662055439978170699881168481786219508274418259200078378587422906547463590908760297829527278281834325439471611534525573208792622140042109062328251170853564931052552073548945712012425530267808018949105167534672621855844771054688102474072983919332198160809343246957773720031696797679588780569305724434839977292512058464295090388239052627213137199485381815081747547619183705271209787354914068848232317170393716995547355691697050632685368668695106308885588194185915136756784804739389701894267532410437022144831894545619505257782803399248161353741030007728303338535415112883159423776524052559944893081306142565752788190494267431538741906766835938908425693148966754010312038076454809139890564323861554950754455503986337272269287708980232171559006771447016387390119264684287506067650625431809342727479218799253531229096067409191676698590725275780956122831356985069953599763688925318015521542602307488173402262245693685375354569448735605762029006099107600308216000847769919444346569515433250700760443134792313901051701073276387202424477808261701224723142798375203543420478234626626016952741032443175249631694548488707702794382565052455731976759005815659835711758142789598515325218433817811935681381527812315855000098482858132923674142039127455417152555500260968594089087971856063801356602978907012966480976479537980007064838293886899196629900050148083518788046621341228444760765728428207738127986685257429876433605638013073766159922216628862346357061707685541937633991552351031918386395600355545095707832034685336453880677258918974069920145766108129792055542379783739860715949129834252774775361713273482651296409621143309485261916577181645909231999524013501291025331099886406628315093124579806755563893342422794537652103425244400681873705559010329479618177562570656742301838652779675463514633096265268892068013637780746882256360199618262710549398287230492223731011210391019071922664137833892996007307127011762595102731522339807142105828122984640617732125273829517478819052525763128999751164266981280386338278643060017581220773542443080543153925627733911836886415208604809985119807956244421504276582029172493919040562549471924429719515515568854390919236953483094319631856269701044307049456378994770787504735051306198929719270970578642588593412300037946613917732564903088196272871332963912174913291834276488719987613613321422357529883491332602681170864830405541632112090809252681976853658536471270363142950907865585377059967043942828363355918809427000463383600015094729583396258921377171501886032634873148869248535535088450112539188815730654203615572708090870278116230038048092407260348809188626766386022319339593576052429612497991740836412398743080892112855588076270016644762589934102026708728249142642244880715141353811232776079898370670799693608802474321951902925273284395581608802275927406621766017914816109156356097780388437969011168800145433953407047778508677426712051850254788454800920349886828201246093555398311132031215705794081162437270336558026936056867383326529902506892781323222073278708130300624631867704055616901477183770170304257373736096997522839271251514908486141072733486094230482049251456654488702976232568731480956711724448866275200785025451107444277386464596104866614496784736186741568903402151681445855473274581034687118106714992992120120931268893465610228965509176706250893823820916017783348929706644498877633720285316898977796927907977522438576673036057732466056845080488458776558358318312926947870497275237526317484134980115375949655846292041297495496176299174045109050095250988915406305914644897610129741789931999190856683810559011687971621834434416240901514190099419698762096087205866147432814045655665266730695569487065216015431023368866871591253882272688151401911680046855068344617559472249659385323669973828658604643085080186833669117922131650206593915350518652674662841399239348964704610759815576477425975942793738470306579555703526029513481521192913405981123438943625997060365673986363636794828069617110049723583255882963884253138827258214037096866334842570231737910429555919052540559847151394899960092768245126170263873092680322036204028432273606644255868991546037785616889837079229097190992778180970224740715968417402270066913776620131446282808085492950511287287907642775726411975257772217980617826299668928065186832112558387124519266880192891295698186741006073973838570689896254844851025194852197569943506263627003204852310750208809953249353974979308683964176190085099486239190332060620663754381858545753629589252647875860917593740659932295467989265188242796703806905476697058560200148050317325171023121561165370035972161046726555036300042930419521677185396760837777988556298638620354113587536527725871466181497276289917145247018927367609510425964506805205300838661987540108448662752484600091907243178711760451836928635805855208531744449758202203750412449608162284696437678635243052096602368749569188675257915471914274579407229711135104076839374630552014369055648369803039869673756116343162180954314177542603859634095014533335962748217744227598376506375939391184513053860185539865286213472086499040628373739754400467400280670616637237251240215014784399738763009984201079274707490966589626205397948891412405829494178239421897548336549324600396430114162658224353328312115461287777639589901642468263198976290393520900543498830843195572571424428552386630074739081670782150948081436759596151718773148272440209296850356180297488452252285616598602569025940349685173865946726219108348467220220594656004888356442930895655105759822510127736623597939580226539583147990067113914626307645018631761681398302058656100699380836497930119331365120308080895209306667877996901732284428106751018174976772508568122056387482409427899547596519937901147528746000218149950773579883906101945891394926826993654074480576521173477899408937038722984580737964631542685042560022280101233646164380697886964139351446718103634952913814156958673286125145699811227121721654226382027859861850144835811919775682397315399885914231615214294858869827264521119646718587181956710071597133768851608055345591530604267204358637731278081818072553125813436669074789161095071022803376200125907859776972713028413990474631944342070311815072575158124731071854154830153104596695679137947304971577221180998360618096261572300730238053868029558258275982188668612649631538272580245195724635939017002910449089421889327620904201649074492418794091795181849426345752274499694611924900979916754423077122734436922511543868558752596411052449871760793159491695678307923629086020979047914004272964895596968116583228677393748117862496024737006787913236463410704310185683422910430248534113617461725410582015824720976277291820432024400863189840724832156059050426108588825275831318610593674105189314354782205737271377646619131467044416563775333963850265408542771101746720562636725185919911616297071701972159400241904684367072549972386106570804574884607100357886750353150472279949103387784381851606454775801651273832869783032778422301788575160235491726399405361527733305909033662283936117014483290787030668091733231948445675557015739610852738456431696412332361330440771833924651202107798491968365785324675572675696732060075494563042845210873663819424831897922503902402349780104816118179354544058509128991063290802692667966548366175189428648572097325285561206918715638973221760987005647332716070706104076270593622208902236754714158987056819362797701049714441015503815873115068152835361120903416677786786373169426523702829896448624550092460292822787128601227951762465091444059407557602036960020884793572251913778249740547167431710342021489311088961266429386725123319092524109897935913607874523131213151893665556992743454068347811830332867700007658122683982976337931462065935860153837126359819238943685409348014483469060827428927172411881691019266236253636710022438593226490862651559452470848391873921471368161951418229944129543247582140722692270229350800987397346225672482475018504267840281311926138252236047522506619330098835713674504027560460361277596233786034178844996890739259352110730683903385821709680513544246935451075155232727007645028424426293681854714933465890164803158590181545928112286790332278901187444550326359654434025154047016711056261877871776068609439277522001954252641491560527251499213234982008369658921298168343809605276263426677239375219400664522883083857409531594950796201169839733634628392860048305991208178956398574880108941372653015725971480351493296069500958770155815185767862452774095153380521629259404965652727016647945566006631879536132725098732417616958543566510732221514803952940318219143329829079727712522408589944670044056215309272938877140599019678259877372471985547179896794700581901587796658342442787578812747760102024396498637502232704237010442307035273017098244000081693953302889905566211911273086163849801715707312081460484126557708279920902425627312148063098826910739291697277346846868523723844356280237193996160690843197246204556535427087440674442551578138547707760650221894972066271317680899445618559540660022645766992684480896598359539200027886628159192919861667762691421837503745953571567219015329399093546085568620834995240659430228909591953986395126277928957991985361785839674034917175319197833663497574294692361508436904269693827853766485497995378131312116957681877806388092127458800057954212914826227904811520867295558880211701272419382563153531881272557028190572631386229358922971241634888795345216833010354647758097653938684338986171008984781069155750460110146991095703436226670921890264604061133121559230908700494722535522137851391275932267748705116185107478769438962508037171350497384825931265304590652892893610335729179386319991010069404058275009684255362495857527304617276220807171985434530612499917713956189350186731827327972951624146094728821605439830721387388051250428820685692692424758953985320949523656202910433483906164051474127831189957602237676985651214925967393412890976910916020561175769168708520829686588999259212607661165495404208099909543800905108764757018526817750243197467995920483011636971261717004630643267456459032064574676739541655010773094340387678997170633579103904351348720761412968864146988730027972142315100160943352857101011202641637985382551115779733735207476375448511443059766761795375755241508540712939130336985338605851601397291577824340005380007124691486302590216810423821113570374266785744757441652494503688255861181446642955099218380006017357853593094921225241291318723492033232432466576030611804601464316256520513353929405334288563035246872284071879904622395978949213634408924311561864170177155779096224372917715391200168745587810332771060457641871956168196306560258812791619502982843698488613888339134433644906723923898620090987756068373834496200888429063978643384110378805912106217826810348026790325398967606193039970664283519757701562452751373508312302454457673972346304196752583075958287050777279342796717482168414031549600839882237659549620057455744181055924465305072886384548784297688367953787101250457266221559868895879109052398632254316393505097793629158574853297012990945227485633779960653710218698733833236183093988348353623836918501708480561014212055150838605494711569515298144098677563674894451399753593097411276513983672801256700773883475860760976573869721460279139681602262323593135633960141522415548838424813202599752357593251998977499307956556566035629845336192125680372420108001411822089748736954117842064442675394697218061031792466476731999234172643564731799770866658088563972060990559624202725976530397515245275933627753930341192478491868295378610024723944158890558148808053279857713412781509491766851816071447933088085141457603806614198630592319867632856227072495285595250727156566691739566408511242986639594733406469241924514550479216878695545362270925108423933515519031498209692450652194957555997405630765645359805916335603226324412250800712767914265953960671071927447094698566203536484210400758571789784160336574265518945772824956845992326015339146380941352622138894628641637506008899202535894561355794104974352187580061224595447580705114458199990608833680683283219974988340880335115805296258166201101651557044246129364195885365128552219246535181868383417979407726476402853730131261500882967188256222727332753715931639987958488963866806898004998761964242975669372896202089576900587498710103250260328314226625836002034291877181878235520096443714860835813084647148073462146593808473000188158830460395215006311806970651509065721647366561005736950260815707800536862525563555289328301751960925317544246569850529281693705650425733439167267658561241030742624388697082005962338246242526895956416718901940799389014225651660444270035856528188918705813809236829584822109296461257611468878959975005079108015127432471777589469563090940790520801123995285675447219026199882771401059552123006130298610722950172243414761991083126830363914125811432929975876488322123720728473546963197826426601628335049650373932057038165817165671718408847614144253329816618201010828211452426430410898151511023654414367189386058590715848346621472909180369172992800054642244483400517528032106020675097617485327359501725786697337659084204071703250762853311781922942706000846291821636074573059171963791071410885626731001000090873830530423133924794970335458789383685384767884497009129740741520495092701503641658285605624277616187378362519835924118400255648515893689003314540802900085497084503065713877205802145731714430779713919232265036883454686007120161835604966894571844809214363365386806553451236295097754710316161370566592424034245064728797548783957695078533879572897642151106000947468732986266712627640315976307019125518324745667062866034292212819312972114509219426774235809691977015019916103350618249683007642720880624837397115608962153845468052019715931991474478973937597179195876555688007738695113286693280720604220848442707085823905831219482067385193833688708338392516565229390358065591231019275759554848353687994752594127538728114821800565435779796260708753501945748630871828616921819589224160205228053126732457018280144001204259445496071594293181503044730802196466994501556015244147531486883385004160163276655425955852423787549973978501866579279491120235880219364454395557185160266395312220269919771632835472846990031170688763469183139973374319414349739413639945735982615160740555917500817009643280383528495269076103678027343176264290276250976086330478729875675531446022214527723944257580417766619201352690043057749882062510517321242358513357307680142749612169485790164441016578889075458127210830924496948416650075066822700445438595807749711171682390304022684232184629956737986911937896742853298671094070830531748339764751454251413892833081895516162422866580668216729691265738775678092798269962148285900901328848865334582154457452110275933758106982499376581849293263620441421297396730037129846897542064928284449086819681384704086596045905100109262896442356929799777267954016662489395500158575758616719795710123217781324495621857297501006363068188947075086124380820872716627942768710107912596933348989576408544796947158371956826172963012098726647079291243362888392103251303157689067516596441239310736640647115187350892134723891142313202158626329124223785794350468247681275825948360121777946474434612602759971240138821852527181407222500133555526927548124264071111864625762001713342137423462317934085097492242071054880768624317091883112396833917565006242261091349423630046377893895286541203546818923606530916954745467984047745106986275654515292634475914190117542792949113833453423777369913878348916810181460655240982428496980421164591496343942128124538427130350414531622395025678178822481689685542761384444537332957243005737651312892012287879669829271349012867182816095801983068960927018405700667699838978380038115323394483120462340178661326538877715471079890625448021953941531268563527635972405935835395499101947251371889531379746413107169692596833442831770159271132961079926233860836041232461806103897629377775672933340349730075383220014088691619930935493682839907413329512698840721102733309330838500932115220155380657830970034129231552211386775981364808989762081494655731642818909447428691254356945096459137792054505587801280914120305266705549036602092326169840011041768525183546462215944913441632720986182791901521419300547159701095053767526069624080185411583014035051896110346471297955056772678119607850972628689494443945800276374633853526292847401290889155643497155560042248817500707500235625411759504807338332467524903200086705102679989517270697390071083014738428792156724453412354452700278519735793474956338976150594387481334892986918576069871175520457194846930349167568922600165607206805088484622809081368029816499732738377198731178782927330651277169637592996280181564467759571653350780811923314293936497049348047046574081430214162119984735755388152230333118166270916785235313879779514305918381071506993622865147290323153780834497029981494501320969840214440046465569246687682409307112204239670803682722661250379605522776927983889967325284174197607669820712364870539540436824992692450898050227944577694257739881662335487119318151394609543023146338094999570804753272493087975618238702704989344147303228439352400352672286229168668201224891906199393746780170420873829791854915860472804784316799538062583696672123130117935300072325919978666209933134873837536124119349529302321856218222800981325104221046671067745463010380628916319381064511477487445448018904837867452163561366035555791921702875705997657472799226183332088982189394417417596718623408996489963466157698882629752518977064996871436338773371565000144636833670440843123361998459332821062456271051686665155679561280819840091441685082352941427272210889254280831229389859254776893830252190369793829286866741185883029178628171938516762737600958177547577228131121009404543941844416198237364014502073083052278707602824249100383101461202268363093933278067033335476635067079730222015280418266169800008054307275153250312955879320794780759780102144573104433561393788120181135240545605268319974685632833093009240944345348498773554423364525959616111103746887064024602404842698641532188626463737061616774808026004467053296688755840523909600594560683097670880119694814852610844327141419356945064733169264099632118327557607359266567440568147976931383439297945375736241398053092570989512686538711711527408749001759739886970540424592890404689785082442992926567001883424292449312267615898626675451369350822060764373589461968054919296791838067946196051544899738644759623886022432132276204138089402957698422815811988995621364373539169985271081030096187700123723575622201865224147591506857329588970605776910722236811742557434514514095824880493727117316791249452376496387908732829505476810196389516674084998121030086030316352110389855590746802593963097384570228023732780028282543228414219504116444905368140686069938629790904049808392820314922083191920435653248805735334581735310805215935670516148564279743813381148989740172956102564974590880379579812031479841810620754163612639606224470947890482476055830233575825017293426133738703580814547996217593578469813401276375565269936454549334597954528943583754591799436959608183886616209109428704121384934737562163670169777126754324144179280928745102539052995195719183664545484889857465389265622782639118768326320694755409961198451568461646574513647511996545731253470882038928323106890651211349333879277344096452861790430321101761196210896304932931292344399829681468130634772807419383173517904200253395772648433746434905266009745819398889400564379558659254607005320748986071918429522270573943406932377443417518198252795736533466254125107881534585479935476873237241116009328796494656986857924269844980931645068641680239646272456572870232780759432733591126709104619050016268408035337001795624715947171795901326904308865207911719595986154994241675747244481076129344415973136321595939448050907367087902135775220092773782260751270998545545340959220907215027452013589930355755810833434168801175152073236677195438978910656396354937904664365871609439630066674899403875863493894567875720621328706772567651290236949863331270319521871571343337223956714669447738363677853243302956288551123634198932438775460420071425129230690186464027287491128672445452176657484424004178280083239319350443406789842379336743311456660816187709761439219684090423820834423768584042889658236749121474771860201973418634339864388701194504635087027110252228529298167846792601370116797240177366675507686320205592306857232698693991126841598270660543161771147737216766972559136122200319365050380228597732313112984950127833051745726028171507506921679294581930890084590143447584528384248455534956450890921727281662706354459835679947757938805856643835969329570397446846487194093487614718605073046405748471109150188481926829997199518741063746580192600537461071818551106226592170778656642227198895673642199475568680811922701037058781590638264057450194041611591666657563690305009162622800505551395850910362102210028477693413571872855764152286708097272994562580482006210236733497786919724530109225949506015226501866074747428079976661680089961644753495115699998068257753536555952416180049826042548465551395316950220860813703244238592991150384812123504502059840452256204105496178404875494873949740978880345887575914086453942236105419754686015922111585648738619787658444244515870862191707390498905867120065219357476072485019776596400511718597231417056678928202067930633953833673710368616859417206084166136493327275465370636474075949877653679227654372345148092538805551307284007446138409409947933316285395125013395913492072565061460522140095292671478918890490406510376653803028874829311952192243961243084054405185717480723307386453972811347653095008037262889237945390069278504565286376251560060147399477549880422904603169976733078049088724174839467284523300203249796794300334901434201566939853999663141402463019163288177560373235368715219305997659459897222720472872284537108617587673982701665209904847102778366938656664587495746841466073946543688116091082371154850850925772890418961179385638086982671586187489103444718618622752998372829627777634347654252775463115806574248964396231524051300107456586816612145706048734252630890393947656247284488059586872319547929075186466936882881986355371924737468640436269846824098421176008715702922121791500517280927297295931563501749999340712884839748707865260143579591309305693571915249819308813450658885220535885030371053591459319487532448289869971976066421591213746873398252782407682852882572292619535104994832015620177676983364096473471532097161764048475640434784383479334193352414183555193392326806826743726020724612547661166597017856310650090796623084616443615073133995520254799322206031468275416669261209479797112364819938697573092196571788362284304635194183424729784828919424309511756175228457087341639131562667700366867018817795307342961755037306407362905537554387595484691006038610964749224164788195291359721659850111696785626583762636224482860953840923653812183843290563105663956279281053319698134736763037710492271443007029551248386022111478083111194996090942231742295831479723686657253915264961575475010078540463087312466887205723324453491586879902188383252334565835142831291386712431223975641936537009325413217590058862749033332004061573392418681024703083355058631621783614209968221616762589106657377654483861682495332589588117655860056346439682736479244015961314926190581567508232920618920025211803512321861645466378267123052990396817066798400017238811825170729749244723372845216854156656693683640384736214249310425982148900673758629125558418407599182136787050026415894445326154277959941624347202275798607512705098840184718257786024099344586325120873099566522531686478593407358292324828718354442573130596430903591369340687247804505989653901710408353851983860600505842557650746974294322566023946201712818128440093662200679690673674079655832399836510253686521566188306347616657826733779420791025691604676359679615034521239935906647399556371020896899717955697052580604178605258106087460625075203042457244335802919113381831683976234586632177799797879277033654906422090209819590991996563321051718997426882642018999821575055331878013359645414909792730212933404119849446764008954832292562826056847911902387117179392446066018715200520670432920543421272817910905005872307799225587899564152231056539049669665537481347820695881524933256701216208279585569463145989093966739650133673693812731248656521242593473565465260529697098795869937841431960641068036879388809199508745565946867213270136227742881664268347978600901344886359480481684870833056945188133332307615849723724409264207339699450702597111810098745607047133404086561358684189419598294609973600408918826598680653143865078808855151818253519645021508366705512846580970080269338769096914303540154407502574592417490703717849496419478155273944828046370327172824163255308878238469775360656617780567038829223769623016361954134493756168548097800924214212534406379266089938367339197465289834393869881815074185676873720722720939869284878964301677600986075964238047330597074299761900081238320454705474531158857309704749764278328149741429260348598697546152588064892833422013271167275136383238239455546260564812783078755297897234292540034291488958919580583229540252505329256815115688781051956705960689624966657103952789031748649856300225584007509554125572910932824868341223774803186024407580724900484264020071693558572831335342534657778803431624650796520307912997303415705143197481292956783593047200241862023089398800391861693453928369733687469300509810981601420023623276597187499050424620582828709357008668416863880559203972434827924925881625473662182238501001721946006111413442507656976094821472530210967665013531979541483567485935061661029398787072011455855928690455951613694448895083955060675545853051501098728974490696783354075466430773625538487967411249066572297954205267827523791609282903379985085077425547621875239177984083177735311455574905328854375189777390619420979012749352620975293749631980291037295652032868853262860472831049180882274729201714392040171233494978541718453502041785806772119369265627802651575690443076817766765261361477764502254056225106700098733786859283327484386077061063977099930381321955926714347719339339763659072542277043427623760969781818882606786890746807597577174339427908428232216533998157212706008813019804337398341071503687515049456978116193495792927999715368920346698755108235922382983466058796500407568883708592215204557536513887978914757128772712213743535814413606150661797461837625683866202687044101186160924251759401138385226804947906773311933885700659931637657757155691345555302808142976559512597004000023374526418986284650503018962753370989493484422901464836180082380527184879692416678832144422081235728370907676556315394324863651718286318475265070174527590701830374093290500976122133483201972437745837076355679730788388895828032252101077410073906951269444606788994884059242493545242521894063132112632956427932233147504394604310192269249157043895348687921516145340582243458815922755163378104109764442209574348255436271859374876327334696184857871629052960170481063679457928382481808209268176791225244639788791684782326333042820877411033632215713685701976094578215826103468469212504237026492783374808839250723779847465142088708863667957216974943785585506686340981466927865929387897331885407221386581297876198649557188332456786068014744032803924188375310992534276486269608893722408269751502463347256547294733709025708569874186196661886750054764551159399026591156346114729268400052305233181705598385602971953327663809178855495637054600686195893505849718049132163333518389066342021668032064480049388820200298289845063353326186640293327267513492563210231095280467261594705798101191257441816590459222312983786114092159586130983841828895931429336493581119678205917862634821880349989943360529593629417443754121414213386587721487088424710368324410434154549191964328127902845632725714703936704207685335395116564653956064228056798265708030280952426327899151656197986655317566042356287098808129181125491003821374508798407118010185582870052618127443548981607900819132454989944785770281506522983966390526982010802898333460580430964196368906594707807626955964871784372179737730286778144010253548596505173245430121918184079094644244655892258205709846069260387401398895765587785682030549855229804516758660843881222947353572263042999497673791118227384684090600381054737833803002593927093278914231055137944792672814492029594125580024236424196789417825095669611628479147497368548610076323172491942847278259678536291906577987034634051615832835776809327722331918850936676186420071457400072785576811360382388262703547976028015236536164487514370065694091293525776461843995605932423488896269607935627787457859345891765331979405098532471867424682746661081012012768209350360839253468820795301154156351321764025718895643276311197557958928648348436187011729967477597731033155562802126458848906099418551482655788567362787775025646109627329777051831284120096513482127115718748857310691538112149947920668914452850122963297390478393361808594000302890264185699712602647754893606176269256217269922988977706012451515066906972277962840308892882600251227444581828033453452654070887258648548095651101224559067284941724852476461297339305954418542273587243781523714007051346123197045898825846354887295829387326550049826772569540311509699616016258731099365975870675947554958801479072480971744750643295554563232038925356048456973304579168576351709499652582317439475273411560310766108477288116051130125578764316158087285818773554583753247221407211287744227764075935408563764621343068837643286751523528309814678618961816243155394830427735765902046512483242120744472728571544458956488537239828629187895084318302911849554952560969852052607874337083934002699041873634719728955677731847000052920900438463389053014445703109458245585061236493306996540071158820435832126290866195807659713165184029235878391823845514555022838479069328816606810764559332476699007032066390369051285183075882362372795995776694877206590860190692260169560212641265172232636376549622205684155732153111825218430339094691485327508640532538541188214499882057716015512231334413762700657850290088359206374063981723605253085349348997683858678577998997536146349765642628453679366409300974088848853869008721761555577995587880180514796819921044861856532088581120108149916514577194309556297469199904697096087490692330731231632387859891140324113751504369737335631064121016852234721271133994596664251180612406722281485978445652150094729020342616101529616184284931591832309946276888271897838631475324120882131898748678205869705476713988874641903030352883147263334082632376368741623528402626774034070753203206135685161643880296591721267212014402348532852664325534233086158011388538433396232201109110125602374375475453371967532868518090602595151416058657768030344728836549546877393385023446002361162398455863642993035749628069688311533545547363098346073790912758234004808101341946568427730469450448365709711945024378029313702907581449719531915902915977534893483162019191593655840190297225186774650009091705859908886248650514264794125352390929753658964333879042986737716761885420062840672601078087308678529362339865460482341058506546706731381274695769032144489959405226855629747046325799606989620371796756160436119683384290022661996838795937581168385398273195947019961889647196842990814011923739914693073231371501801833698987291319147230041670334177611004691706538890396574466548586544651542508453014933197186027223025489818011050547443728717727605060768588400415478719250419031489891713631218067747147802924319825372022721402247666709119251118518021442028509745079207469922265599464303313364251177529664601395970641717999219463610777683153784051471791878276525529833545718455667760753594960367473401765197617378178861750761346216858498620387486376659010917306152697295022710060887031309398786259143078344928841081106199960297665745867428263292499437655228801009515717866745285391825225749152676082064350882916521720704978419540509897341857778207739553161773779118852673997238560580477137922074200908746528637838798406397697714716810413038328966507199979798305130928864146248761260835422081628466108943883910909694376159452815190233511639449483899043191690867680182605885744708351610461877587380973514650369063586000516181004219439698383977311593773759598341693197489298413592088399913886631307042233235638970353678555915773403228329133561740449634740885782462855428121544531954605690246192441882835297246652195071823992230954609112821297469566624761658253626792244096433455468178006844673628829667590580965195894042484002136560083249112858300994971664429175544747524974922851758503899494609128939406951031520297649718097108261082770556770934057032183899392094994807869383350138392582486208970659284625545430281547309107961403733882518739463833945673178069608641638149317459790919994224605081855163041972433160648173598668281705040937523643135116225667051223376581436393103178641753097952430434142165644660468129565266763308749516185124767609213551495015565779214352524137746676544598780132866669474343512076818386814822025159109985089176366710938805033476962461355932418294726337976731905630301672000596450543543929985247428520395906964700033102072640779614555149210479929378136120511713470835618871337007482663546259922988388393200805931876490025601624302902840697654195819328888583271089320852622488363235241373381151543868630138607792752937019556834239203214330213269421505488803129585132395608292189487810444140133120484439427091198102362856326162120636738629167480563310563884430661469851025614243239969784602252856056414035376622792178545060142450570290093494546742966881537074423647246861328389451427052767671804379736519211842904714804523325481580796759732196682994411860203044249013428282709697740915594807836145332223375971182856366787740767964702932642440593923261808632135743726913703135506665830926518073373000684899391612515390857578851520061451528893045358026677653125547484850341309030124190210778815673955782010206093633667136597206355805431754949136681687432095390911271451803177148565824868598203194667049276110241959603153930711879514624795570899176943968729465264561222696557876435245224954910186496350915346248480396083023413815581336116207176672243833678757851847497696487160465895338921259969168835389659098096289712558060699339622488811566895647690227040356997809537976639646332137221699157153994125522015869704452989334953975145881190852488908265605397463561664028250887659731315528161489116157700543139323470213698029984037080867047350755055196169521355666831397690134936145885714456272206143308877679562378368641804220752512395740469266471425885426205834218663278834082267946490403303295163009205957991811501351010431143006225146443838259437416258311529223373202802037606148369066984521978729660714640295835804659643360231519118163995162649791460006407777618078878213231106828537068870618526250354527160869120427074638099078255978336746447762197264937272519808587345017007075610204012975827753291123417861211994382465192168888810039073210912543485212733900947588985418282179205221466523160046524523084176532621325844540155901568935514681504526252800884799699221807758254616162950885918683614674870185866899678476950967874488797701257109389480799210753960554011136100300282642668405562035422691938295394609368514884874916975009783141058163678883185076351021507162273588638536077219801597989306514476055539954626204253427439000290835278612452053143088030865715572461896577054502270391381247999465694042140747697597223854414917670469837129164012541127374985800031230488621574186714035465727451022401689828860736183875964058020854568641664812511666843837755717497724345698652923365364097798924870263051935217209740233044418234948762287705575944732030687620191367568726466208725430471551547086567652577616625135128499759888324151669804941386263368639662376235914368237233749430102730467731701016848480956723564547319446718407817334433838092360179635096914024551836151821302672458710853904582699122480674037993330826639098216573279327487899001959018038179841556022305969957391689368714131979379874552327151667696454773322517770905792925640032155217449472533198751196764610985035811926822423143224937615484386803708888678727446569944591240824243325436473579632404431784905972214224285726483656861013812974828535806189057032836513534284013414869139981371141843952957421801947506773461636896398463228124921685318540020797796747633814825169041349583073364029308825923004919503476693847886401775659369639496645135223098933731793005790359275258249216116914506680045934214215697333537140724928072437805055583478915662392054036237001348832624019087095689189490285354613072092807394086212895585313475829957293085491608201194214183203754150556132821617499241766552150869509314770731971704059180705942229427329707572383287764287894678092999978440571112266727433567650934279051359783630519208797747483742462249642686650090823903039123669692132276918428179267629165032902403427401800545522518056805173449560912641972652645484672453692855502524134476644980530263118220150592284305152187685554219270380119161874664265675497874765286826705788312965225549152330457077641444347828951829360823247441488833702197496131814258232843323054593591269644380539388296921973898334052855774187100844667473967798317013528451291493053105023040899461577422370912996224614323044288474284044623218353656670572288975386600470392013329409704378970459070556722879159486798690882712266025655929605795425950100060008178256070823138253261405812724536608359032340259854513616078118043754021687256010416417844183417968317295557839179770744391534728263559219719788010905520383508342453747048538974169087087413967242778199266266433282846731007960852791815156612570636238365388108130802841109085836375187137463513155794495810795012406682121995246134454144394603145713950988911951090218485189640239022128736367004148870289124682798470811042914406292938073324742231449138543481196297045106328692800267001681973047012387905909990924300536595710477280849584086555916532541835748882864447910604280812940919677138031976256139026216097324983385224733551835045796841928453044424660612143089460500506554767188707263685500095519390571411009625451633811525335003834047912844746742139139011118999926461204630336104967985573027265890443687174405025862534448252764368313244017622889559707234206422460862580895960476636962596179022546201208522278571774839922209211537229033266943413919756592145950789530051083007602221566422991421149291074340061510414810260300592285838666304316169616339463445068775253966331125151509559938751223799442804876063822534064228822226753062798544299680189158273123665925038843590662344875991003663077956622990459830933246622835723744464305945275404841408774562690728856404630159370235574033723326192055212294291702838205217683631815758512895933405604247404036091942794002395378891919251860945505342622560605635277469679804506810417157883090295162964060039477220239681108289729856814628918440456896613244429250265898615894135855362447420322037919404048325397067812336960725960883505339102190563134344679874140962107309166437251488016687778776811427802253830508951519027607923371427743481590642034941217050809486722956480726494454994428840358203895898430510302893260499233046070595425022220692740656941258668047942059892127034199203605999266991982012369463432949028060301743073102938573843230762963372374733234731798801467123517232602162616529038442093390560222021591009648058071685393085239080775656337116573843401914874468101332297794615967781873306404393411641879747697821371780483637264332450822862105417212711432983844214883048825199893419702308213826698887621543934461459374479194967134652039173822034812574029394533090261320041735188744271856202020616411870016269658773264627920390277000222772317752112407213987940226707350483345862202908954708164464140438569796312486847643525803774220769442173815042421075128534187130131206636972695373016211709195844848142600226360898220627587309382231608835364055011285647614948894684809963194415925004928736204054456582934586786387474538650843135510132901840419337686110142601666171327408824169633450212316361204144978854588535262625141197014314454859126960900296542097550415059449544974319920570263972401432691302622913106321139792252322050010616637157851979022392714799581224844183689749949781197804449458769309501187573649678913624969991146562985274257750857860213675034808201796966414599736929993029812522109073662472680871286315069268955773686788607555559133001138550512331020350825189467938049845156503776543130629616491968519934958971241821311398623752968833435343566609722209068286893963169047333573557422441551819022238215277625412764055270792430428200011052971525223882137227570897422746781582099250549745860411585294893669180968908429350162035117483966810727240443275495143804615360143698315369829530064106424158539200760518413053969275367777296232402215105794994542031982289391869697095406525260875134130117396046967453813260986642999662008455430561995215365595482141869221332050285625192548748428937604012158260191028112848445618213634511430460953750825206384057716647582849488959168118880512742729766146266374740474960107191016037286151849085406034385742998335263459412809593865233807065270272491083705641517022072458925097453915258236485878854506834316096281791224227896475991032376212204581340564400322365792738045117429716715285680548960684465382899584009869928102208066915180512777678406215964592270106510617863130417711018294056557416550349786014499764775421521162266073216115091315147646499689850822648843215361016459071600561082027137908225380482334238206493228306422359155849583112100773269008489632662512483911125051971093228921145083902211889098911377784790777480416805436025543068236986793720378190857592350191944157940154781159129728981773996017908718300828757358712069102879781664287491555685843418225771984875178085641556977693931141121138560860135677463020584019045858813439610184264177339931140247582615293422037331691675566056433358075941257724786604862093200920144606479332026277518264693333381109124925923528977882186242486095647187322687512964555733385746379574152705912830439611782934118417226004320999431700747541587088070375502548751241979996975948143710293448420903653760102789612547181230871184573785660278735191461271159499957560016348531870112512996884690534358656160922786764499979106929053971974832066197808591832883289661998984999765558572777540540204017958073985319865198276435150781649448694622176773586562315580176692315399919887053460852871898944418230412757344723579922382947731384531513861336438344732643481331023862930215742493766409432938680126560958718714524304097948664784644675694366822761184070150297043863226882817018839443563897460742046737782113312513888017840895030458884610833766982064970406453727783383339773060266417931393258700916632266618018711586073356503667012269973490558067119180978401997321103439945589457644157293492968764895735084756851368724775065575993265056844918491082279642474021537508179052401011790588372129691171841755627727638553445689539726986550822631119890760578852005160349246071439501068712609261438253853860988897852851970095054872366962933328875253544299294880108009049738970219602598317991274516063250891302107534040867768760374269882569599574268828778919781464303158129205027189514844377636179603602868652098717355888379254410042533901833884585308807558473582719365332225916607465202995751517067779023810576161419778219469083013759886798842406350852111047593483248454019070553502166220346719813109136844770055442151537908959265674561976958051604303443473671752511358169614879658755895494663159940314835249555591473827687773003641221598283948516971300303913148198337243643000617597676665209575964373899097215613839037809038198194720385129952355739017476424161966387674107548203095344060264864048975542363687930229440449002788638504317988206375683105900002181737266459599012653108544496674522149038725426837720123032546983741246092341092380338052913529838166183356632041112124475406248679980265623112597077433526182901740037288751739160259896531568759980770978334095400256895868693718467551295498682577826235252018973637920598407700071983439582268532619029668416608333693598828981326845198041653662857645541211217239688961004014559714954159652517742361098695910589205919458935164312945387326398245162621444124732829095982204184364501318652921373874410837877808864100295447575803735432121008112448510265092874891042627574158134196331284169857549373951188754701616884116012430703242141233708144817641985674455858974116587695816881685815384107434040119035115071517563186311624509588198501800717073692750307407624388693054260794475939546066742313476346480496535977424300952053497844892721582542306825157307567620826709428978976875551244410797781332348375519231697223010005253208251323799536338808836872947436780429977929401286747153720200136247460677557469486791305606247632414151278462844097673630392708560457516029491647720105787672827160707157426136450391278856874857562124660222572445345824011487644645416283288371171547337806665710757508188938172055807442736590383598287449832408725002960872205674168693582053631157877472676775358555334411615213547384968621224490279731881257409569839328498581813658455025079859142231781564230695535025892184687425858659962959378227284908585384312825271722734124254987408480211354832822317553529555164348197953280776614731587904564499046222103928833994992592643704221969097494018849084356085175907811906022081603755733759056778162460126223469438365905438062066985702458694364147854432129437386451659193901309398657326677475174267683258244532123815756539315207475370963387196965358220243350495203233561422619498852707649274453349042961993924328182439512896972593623897275226318714008940046771240291312973856651281555619921898789422070256018859804399132654660556227914470671429354661630223696746206335942137184830154303350517941897151430881532963954758127673775357735358189388367426657228783115184967537436985425159228196481906573995039730908060354779631638733995525456380660914780807850832183704565200833358990900176188921860282293670547121047872527311474403933796862630855106720906306631958541352000004240121073892093666843658269848117963561142745135932130081708346257205392104182229410137807677629737775471370285168288242381467728133640118826467440321121155234880916587496435319085340059686649129452390096560439351597946328468512691139002891338023521320444516580677808835779435180301974765307521038934288622980995883586354702404294624786910983303265757079135909621814558870979041834478623695219447194524855353346729450143418430746843049326748543585589135549176520734489943268295859729361985921834950801676414944530336173908214354509988299165963416397932108613882550620172786131327309746884278152245379578430372047425138107331082597119540408967676812135331698160660140970246054515658149181047071515210279125359911698892611197441751670755856997629108730743308550748976341762206444298537429407307432655278558042100892384040886871845460252243820660601260971813301492950464131272041711197290911796125609912417785687317702274620080823842828679301993687984767072145018733253092687776585337930764036471032252692068574872324246725010681258953566393263609814550566139738612901425224149870331318031814397868493042361465235861802883715870376932527861103340716995921022369442126777639671354081113773867689778954707301899745288841233457425599246489085104348485064105398909238172534050828736049608165984396224142705808876543421055027886670091376786966790404710966334575552281253950861093582102084805926021953803685530899692993386718755336542964642958706735766566422348297017440136823630438943059082691879801895948342128406313851244508706375740834413401653279088252212902603006098479694272602248476492098541802293290544682776770225918534233190324283648364558599358891620868583151717859546393550353863392578615584576829256817110736386206274057670723334459518373828554718089981127733562568144936125153839091826551684553043596865733289480651431783941985522806009429926436588299894443288293293759979177610864830281404627064354772652987310873048545545148088490716611264885714122718470924641194479442088149462514511552551658407347692824701294235624311641824398954907736575988115218850989096807944623145169885815965500706247892408177891139162411403774879512338501323099831891960517012750525567638225248190521333919048493977617470782090200887826865879912537132433802540094980692074875357409365045475687007600851443899558235786185423762899770163576611811604890707739345579560340704566672560188663131008898956832970558588795805801415820135512109641901667043340088250222290697736843513769641394878578358567531163282635601967009700935829718349806125135332816010332293096253581860051940721810530400310308315428890105099003342508298704412718700507779962083390629021489705697616023972137826881904955047790417118504887497173908770525791653587240933255477351783626965543976830755471223070585946225217783565611523365603761991753535218936940181776801631307208150404756710180509383274936630818042049835562111146817390796550844995603748824493191780421900186312141445202040269262667836658639046322340909749289479489490538677397578426449731160285408757618295353303266707192294513244705798490271715663198882537035704126720505731235752675300308716148171890787412306877358380372445492098504273562872190947220220670842360980501748278366149402045457557681923639669366036528654455770266675975555276861816073660696179183169854367185798308859739826379133107337917329115963295682485583714631190756888395277106489607508937830296284303497100391890626217539636200209298507748331525130523299051640349698441293251013043075169253620295824891459270419775453877198013259245897915085604929854148055990003672073520125983162030599257045575872965900531458435491617233543105183311445860973898514561284201421737221322540073372132008469191084588172218735642051722651552927294858378045270702695789214234180296304549494658090954591497463220864878683796521822146268877209631885167466568301437736949752292356932905807629911175303857954115108645954252120328332303294767963242325618681606303172446285474444878634576232117642359822381427763885521137515962330708466147867496876028619813278089673888893072469771735237283182803765606042629528321486518394422845273567876141325114948727760971423730257016048141295145193835727749532201641178474464689992682061122156685960801241333772511509753800779602004391301196651809763188648614136761609899606814627255181365456931874303671761547069746375880235485475582997352431216426063434475893950170267741799801878500511502736857721971309577333150227929139408569879063751407149888933151000001903604250877046565739384249103180665001233313222445501793969715759115034912317721709019692889468431574872968418809228987837060375894509109107857250037280219648204021995654150320856629966971321828823333389420068606624592906527272529508756241582033361912041307843288809596931826825889859011026422467665315182301279138164113211121958897440355928944088121848127541440088495466732329266966814038038571244464276240638165934004047967418020723007823850954545235610037547182543774084107974902514032552780221986765002013567882533602811651717380963548182199108456504798945490391714094182905195148801468111623250915613931761790973810948987685474865857596097946197969396635441606110850646459262766517499508705272018333102745885910891159596937677136726482918455295239394194148148979219787783058432375262519614893770571311243245654959491432114712324149532874968995744093356726516971253408139526802196676145786959132214602993091123392316309094289288292127044775418171915183140066360861225876166500228005379965253118534300297299068927473395045586869436386676415675132952075310516033712565779927912872324744910109473648135523158948491558333908151951552399410527404863395220686865124920794213750005868988152158021562973272451179475315616175992009276507095894122278479639007914352844066904913529613238125294434807628457288679932418483322112190393443390988992550920025737983541536002564224906332023104236796660007087082077026935304026462289851771121327706703069125778208160015471398979230483298322815484795282160246245330531978068638147068352087058449520135832086901422883335704255164504974757821201660608501292428919430363224908244910639851502416342388484437005554585454972409545685390514795835539827001664876790270292170568652280804355997249629069618288255638160018033362537641842502716604336279390009907572876812173499561246979653882115552683735074365598485115875797892331026179865728768005229453824266126091582717282831207615407163707802884742351288681888245380463853519437019006766431885788739761282472022329865017948566503560625904886545704793495991013481048570333025562465041086229712822669749938216127082206782634006319457631638184516860785065836073465178793600472441059814619868228104781353333119066177012256196270676202562498791676001023718440287098972337060915285439590973789566075274743415347570761592840758619859713192350793625601721679950441382943726684586185990182766634288455746204940410043875311651750440875718034939369647453517182010541021285225145505490573410507095325150071210719671511604220214612971328693412721187706463800220060328294221963040065742908039051807759099916377758924985798089726749964131222596933594649949538428298243411681472465835908516853272175606384438403705972964069352760801662670425774719645686033771709242448428553803092014014921589228445869710665893755832598801396573482792724779479857731903112737888731867101054809058716760174000293908502969239167071970324721757595535779465777261180235384666683087407194521728655670895761569583606975853132457519526834190245918686649236706537078020539266519766139081498858067973863668017205984721998973371434805901829704550127073557230830075423469997550596831113788896104631242382781773967978680090116119312268952106883566942333667722157709925547031763260507372989958381880247773652668314866501825993645977777998300256019503118534421207527970161035447191171468249454596712583232340369835656987744319305481435857855042323820505144734832009774025939892598724433147847366372655483827923407019765178464215353001621399960095819775112026347049378977841993461655079617795854929201108984010890313949926171673532598965592771417732518825574409453682618528822356606488231313945702430336532638453643819427119003430860097086995609580776079567621661853884300779502241952336393337820225355441585635710860880909547621372364484426299789916750932492081872744991143657811568843112772283234908234724179418517357034784647625750903891175476862160739592657757122818181210662599445329760527143526768766893203610409744247999098648700999393090293939850138307796747516824945828615992759869820366045759225131504253218023338861905500267939803233726469819177432648495535546214819324156683003361541577496700935069766191147668447798082137987366029482195718725155518005240715611296660861240374417670484941894487370165332268386636524737343905023236488635596917969093559279211930873184878021677894019514195576022365631803850768312634169731290549651254971454292341868289111780869957283360230920688935832318789616407649893339868994771547869000219709147913823933834279280294959022225494421901460897527111562660354621522036012851839743243434339623456212470202693128799150181386872349289686734880490682074027199417714411738739193963819626336845338207962075102909261353151315477010180952168260370552237080987792603785378720970971000211406132550790499839038365650370090230692045336955303662799586708514157449106155153686826176576948516972547110754330338063374137105329674429905750071044965953431379769603367138433667927719339650190797030003356333139976293868504805383013714286578043830753813743131500823431727736750590214297338882094866498338521727665349307480359803747302994514602349745411821655615835045243137660994469327316830708392056511361908082005165736674680863814564399954079311147598728581527703727834841388983345967528468282960848011976581324853054537963350661368739250348936337248223503279812473572907286238938009767592736786374944264598352989827730753609766846402188328830269104063902084080061876133576827662356436638466323831426885174334712886501273529169617823980643067863967535301026962727365400615317921509978256560348760956532076399169177667413313554321745925828651460501314133329643144193423414163446953263521120741797294281063040246233076543410539910788375269658382011875802606030645933243088512864542181154252668328411194046387358251835734100292976714273680885086863536139099355038990304141602805813229123828724070753688942438822496379885371907924978993880675369729192019462484560169678856550316446617021883278156598110052940318018818538432061435461906415610382924328817965417649556521282557843551846516975453641005195380635780045915534349849189950521035407339320512702944993124488354187572699027530309111504784633938448990984626843063217624664812079407682484551511871888963304507097602397928770457504295450159660547212459012522660313936613972547104624522436736990727133812292058729171226810107093539473579888662292156650517248900521254005897845102716984497831895915108909588458113281874980731514076018124140361894647660865131144990610150971300954966780787538048521180261021273651110301049308465439367337418999015098431891809741159644270987792192225224841713222905220783665613151135093456604316160214237569973555649628784068332228029515561891903088838446794168609533637315553026730121684576910972590685393253790209756036005605981853900687803435582105610343852289485852607643303504506359654044643952145132829256185057693286681527922600521950486034199603189850847039342003453414739717353469274471245579140198202951498808184338118142626480017784015999462115226426734840187266030260880098670172795924966551011593257720898516429048242986120064991003963531456940473100271986460622938799241349622745530012102748367404493154449962390967458970018172642326692784906756193725344470527750096084033082329891069818738877661955634555455123598850662330398062998819734080880580350275045497942708898968729614691057110831677087633170038171765204100779354929919445017607221262807466447822198751713896476575024732841581819179469820681912185855332512847119659431274739010185133482263747848284114573717004690828906455284182438496600086912018435023948111675960434317567941666832290007779853378577309891096700616437358862663709334247282139445386241669683646928149974196020670759003138925763467434628085068000663143619101557028725242214140628217881075371855943949477188437096752554508084135162196461974685269085512584542607392813611396071888200253815815181448900869442899976970877193245927551914222973293957495468399474779057638446421200122288015066398069106714015492644731897796614677168221849609052646233213829997341161150202570308029478947806504173646858542901356438731987425558839954451078399841864079730623972405438262248557667135215615568285717297104963623672738429485407175675546625562690591574936451357641013983934156363115160793979644129930690731125968654612095344025950396701628483544275605088505164017057415714052088337323004737084242646624293866862047307296257059794001499942769191281513388798302832872891625399668902895948875630976423350663402321848380514212540847586046758305521605111105666921512633243767167538282220257411705777034101908044168026622771470881979380911369860129284827791096378295556806708312112855877679038681890198530337963559376079091161531812886543497720409356386917583779449107571043556744106744874091999267230345133245604204163198493490855401179732469848560454650399821943835107514766676826008940881142826629578898732825195312162344224432046433759695075757113387060136270912618703366765124337096556147556870673542995413711594727983176359486987892072197849763598674559409703624477359077858786651684656440691929929779750490774994379520339201034445609982946270780912316111961819850663253271017168749584217978355555303342585620740625663773613138859677297207828445729504060421051991582168592870486170969240062779571569534688540107879538294401830700175256315800644426406648801114334196985734777517262942697383099362132525006436556975857745563093449799702067671545123655397279184732112025663817936578596441900442182713570533892705333033666324051966952004278456843309047638420149309859561813158785107592541668677511140097259208515209633620235633432005753125395268627175217825010688580915839159534777191672427317432537276686573781996361638705142218177447059063898239211743957811277964984906925512399311866682428032685427403184062759653523002289240808136835076097790646901214673424644912036550840973001815660307359932506251578862380154598558058068470246574567935972463545959949081095171965970341903917841307304768303062529748678843242286380062864485857687957551244518607798917441680023819789696185609663933245128262857837898507191600832907708543617059691222474578153314942998586743679069378518844566217518903532416449954470512872967767188642382776720401753194133768912884698509259354760976944466003813363137737871692099312060918623704405824514667504186740548316659783590261232676383888266662833265137885970851161948100601356971874260270205969046847084812348357539745451257866782530483142978832924395782259277733111367675179795786948087015185399603166609712302412329887180301342226936775022012968671148906231670884303488835541535318338324252499990877414859280213416492026818865688602992081473604758608437299786194275529114184771733620809084326417993575487448416455537197961823632229629814139590560540437024549686585032730292065485661287821938626153577380178044897039450628065278679996807617817537591429120177255764024093059556019776409405654438932490816638714277143349253529965963794775751419791239140212051963802304596636693908852768772440977070913699323354914078031194694920228410001400152357567084730082660514791399748598135817537010213607236664457205852866356947173573644668431450427387068733418641108039459817461353927362120280541899230223329432567717498115296898467940519969984759272206538871152547935744686906340649268329748182036327266280683972247197024544249273200298394949116238430795523336375064901373251610414171094014373092385345080000323680634754542042177307612562104198854333014201580265820724154898795561589875400091239411676569317619519077623672237090768579629979610965977465330038052572221526725023218712974473393648212877526197613447673070569546798002035623678883787680396932376747343766700082687217455343854521400235242919822267585888853510827650327685955554474292547314455951053809518177653364758227236374099763595642765328134777026644223099716928732484561411377667010421137352768862025742194976440097712012011275340985226857843238503478081926432625473899177988601006358875033895655191192484936578931141382248776256399340511322114605759563317727626378906174310669374404012180274245960927527375673645479697328580455436686255128657581592841401840853638765723318098017641171759780083736849418776984759065484698060207238762019703801683953894634171691662026004055393492972105631376425721698212209759202045348426074754961155248156478011741501794253033700925720693616916278301698177172773126104461023944902943631558273629715125007544824655423457835475319973052330692772560571234972804863088547650300315220640762813535021287163666730855181910555054163253909174614768885081499412542856692083313094288480752267127825259590081264531071945697538734062442836663922379824989371050548810610871614973147832732205910555577079673364215790994974004667193691263707932964422635383094123582205402228811588795308234806050011951251000079929176290546648170492767766325315893504579469255854312328222936354092211621328461554069059786018862633974637315968800634723627297513618261254841415700358984759242402441329064564246941246262450174663788065564832146781439605019820926813198508670640250007512670072626220216114866567388519668494645811446786133457258202727609590308720399239306955796048019195890181886475505177587936775080716911466503765232270322479769015872631928763041736138709102330093276845916707365415759698298573702884233616024265669543406657648802929031297408956141861400143857355964887682167224782921584836283695866371516625534447447614958834098028408429684798724079868428276666504477820645587222735467768696723041833841628772470386388582647380295201923393833163551250438512127626692160677217775310952060224137387365744257188207247923150618787838138748984644756688944723900288267861543371924715900846868637620292825154434436081631519068865732099598741350319815711905745391166144803688759726943883825171579983008473772528913323495094680269767402832714788744175573716522373253908867578212843863204167613256777597319622120553008119714819624028271853174239531000858364049762242283715515997213952063299626334677505116613170915531407204002583769051766194892228169946407027308047068703331024829203951455432697795526640626034167753893916965639670783373352628701233368990894660185905831885898626885240233716628169553180282419848868985697209684715884861202958480182251178695633033865895888637410519914022064841966457874474997064857523041540042242536522221102473048384272978187580974947289404252895659066380151738125732405097314495595104318897660867799468650156906198757996656610902513597877378509730476074688566829674232762776332980744633469794610704415152953069411027259479276985392264471357604825939700329839025808406693127334861999056330576482476130898206856517352772242757987710128289204722852732439793493146364697394787421881954555455185867777047329394713458761558388742257390870040804206719318197152822903552875809498310521129035364171636182894089211528998857776462163938666655454893272124312045171341453036990551209667927586577804303685742189948792136938844315692396641330592981656932854128854319252711082254161107470287800345963025968635237271155590515209584834364824647542253724190807936976701238242548836739016140575306112900742650784401111240439113244080119422688274200809627653347664056039701434778583038712048538912616349385729515962087442282149233483166691431045418673829215445800724539073264766202606928839419870075494019271596457547320695229814257303464691151925401494949705168284649255759566262438999316968694833222971762754639199202596404906165713316655147777403790296251417527436490931430161694599305703328179138882542626049667921129417942127934149473918480623649112412429832200992639096986657464645534834073081340388948580239800339638678601970487593627635390561535307693066967841638867154301917688808902191719704133802816925074550792107365887227371287397332599959934044666614965944484937206812333674427915553795854308753457020143367430313677943182779130570996683117850708884221933447063239566509811379590070064574158421160178275050675389909700043299086414226148389216363143685382543822398658723228370761496039236008198962149761725877097605112553497322292676001551184752144805565927443005059374444304466243290329849865115067860962444072500185897666055495599437509124783821065795897237483951338757298955293442665583712438283961986872070695241553256424762441377428651361407087873352403783865895857448412320879444762202970317249985410888407379974486355652042388793817946642010503262196427694776995125912191954773599598741495070227977917574327883090169482854107886716650001603144422745039220741354804310849425950923456425027275292757762695865768073364986380189022864192488378256842214681673766778178672375652381672892183923184085636252572896321621395317980557683404427035317058814164917841710805757074949483629395011490969455094515595740412085901631160277040037993417277133646347682071128033196314342496281517991384771181020858667846445446084492226736405778869732682451105545326873132391253305889918802251631013699809080019435376256584621200613093371766796469653890547205629799283843314448871530059066839229741004219283663829648478766610641893162364593514267964947476935572024152111489324576343422870608602045719104386702784083997970590640971866171010732606252984269451440072660412489452071525081124700662407156305674268149113646389133877756805469074801060079176927873143183058664246254303464011231503981795277271324713935121835375128199250822798014028727618038151511493950819621129808409808661426385469437939008825812586423141356305754203181544917539768400852069785274472965016022667841872881907200091283736864372843007693516062196959319646025369267892653655498299819351660809768435379565283836639077204867287743161524213207402895832022801668245379204788405283565151922916062273277967099876426899238523629106191736590113585089162185670394026316884598538413413893594862827148674703301807427586031741083300290528807785416859192632535823251389669452025974775279254275528996785585271614305660218218811609819106000167627553541297367687559197205093411772817786424233779963114543922667312760995544645648818324935911791076340678858655190977718278794691276567902421812079834636955077283950599833859094492280492244175443452916059204965302063694043397532060795530160729251262023049613218334382361794426327990210193011286511054558186186642518507763421738247775955581529391100413690838139266146052673709624233779164952897945403790144553606518170676904806534713371424178726116000811967564139714100274405270286914397495469499492659389031288493540847985650618314474533098106441630756731628202251481572914088302208184587760981946615021347197550346635031242260497235635659217000057269013493083679409747613739782694082991529620512060477705222786953169768857857840767281232501106994198351913660861740142117786095093682560948790921758632586093521803217319566554238385825397858392615881548020212775687769485143113677463252066263649100329583148065398539186423484531191012149374174597709704566628632376781226886075720970144903226121697266834193566307186725139478449076081831410629334728810752581835885148083432204110008839645467082048755660033857463004186459852602961980512862101750217633849134744977299557937492976577075859802829786316153433630503078651776194976701625366544292356989520277291982884745862096412868753780941882928358040006531833271612793454313182644315189442664156482865898719700588845855225335268829276066698097362431413364664022449594118298879936178187348404140358091657814513477863861185817408374210918333664914810695291753059018789233428604852357191161171679617999001779128338068840369238789399078583123484771899367086460867227288771282453477538190757219056492863070480703306873555064081433991652386128652614800127015330948420307854596836002727579754813824609247698505561322214201336907230345365010799285357768719450869953162743515414540529234996437745025855710432837150312542592563666310792322298135785902980630898290951457531356227445308845151098515228658544504752115265907038169311804418650527062067037010488611742435419272090158440277707052305869387622281088871043811766907451022833124321304969594510863360334688132089442058680052737770166573016053760044884605529186151741946673595681379385425699666526995148551457014649312416687802270357872973372602471480973564457969956979433781054387682487436929751247484732342967846252457363937590209896453113002556036510396905552750354910702348261767556978742761511173570695465177674092090916607259655557058967356587832913094120096075608128659310940026911453484044670210710823645758499789594006986924669834311755395842083454939809961046081389748381525630171974025076962402078679845276331431153465617195673540766363993720855047057299182577440853136526992985298177840810623777598230161315513494327988050960571168271391138339949480240605733872860074718207816138490877743349271614248876461602968534677921821587251046638281374805376412928297109121055896615543244721183272902371738580442297326902214184906141713854506504751419175691784728354146423019332595081185310605133844871540540245079029661764345791586874124726572352669968223292452022195809803303793824737921074588034787269912173154304714173597545665790545640273577111384384204021509331919108363370905010513644484925860506947718666246706000879067162144286149563618376715303087283738028440340675138178003829085832055488246560201968492484908866615999722732892672687088908473687711830378910932302309581105419996270832917879755049876423209008732056182826546251611536197726506026746495828096788540143197732073393324392492405715986088084388359930784975847713832319305632225554253085000065303849179614644592239842627638060883137877484109664003713657266554056374841987133373643189534413270250068478799800245994230288936634219518206137923028675582460640245448985235594390044145603348907963604380275638046017553495302454949459595165884283685987011692960291492914098832904251596953547804334668426702749698682702972757037816857760260747431929546734343290126143445361094138038764837259841868841866399432728294541471147447508959642380054912835008208024671986317423764148577079462536029813919160944221959482897746378306313638856545137392637919085132385263967953581655200356647681753649242031355401106626338600998325813379887476806937097946368854827050532733978858789374744616267888165497564630272187032190758662476939090540801933494651145745709755064590238104762110350716950515554860390793323356998961382759498598953774536384127877543935794909998435961177467740787102897764126902260259506058846109626647852538300611342793349414486369327178765018646208602742618108805727308337317371847059373450435560730620571849797680302930602623785130664137565489643613964451866064549154422375595701015757762542639471147386069868619772551242916490286032377482739580574418867652669975981474324273246800039046827768537418752877700084025709267841418508264447651236529632922221793012054833631073897824893509810587524901782590346690604505723685629297431607892779016279591713297241137563121424217365218082733593718906566781199184918184867821379500432758809191307913720601131604385337178567381709547221462922833154314658632907281502830147210255956285259083953019961856163254933263506659166205382054105032468115094291552719640108711944555033904954350824035416016819537094529531727050750026994702615774525297364187339581241818027183821441899696542201134739402286493773488004400779500646784271875880472474854747184275915669468266782481920152830983478167091323268090671258078178294077645189459756586279691123954791494995236190481813505703725575488851951886178092080382642700734169814186314253921285744692164138117297957974673878841550784765842480129847297387163480869288778394194665699216379755808662343975123385322824788480138035244950080863104115025821604031732896885952373836626954136046413765294868094408659197622395141915625240991203566840975899862640816921784734346979129452627214963319958947722495275309793823429103503073089087168233900381004370347922445948525790069924263429675551288067059191024873979069385119281332704375783042631753809383252103721289354039128612551107313328658612751963628439418117619512476674015213416766142301085724652096274523276205304231775072512502819174271573075338876128151337481329601696847188370667701207725725024418780915285694620928307257278370106232107897597120285442759193727434831232498200758875064086217446523949177478361640874676049026230652418891639707312180258252936339030223109981447845934398883893216031918877846011978510286648126403272376850227696083288360818123059594652633450272843562799980389297998755748958336843142494429684355975631053438843094234266376823308883789100518335947816361745585464665745131916645470978555000997418709251263597856072068499954460850803904559032849638742697597338650397964150747016232660393383583629963024617515560783440874804315027267790926207414565437628186991946396321958772064769720333102680763523884319265382688768122915136203212827007307878864174005798714869889685294858426444069342415126755258982910900120747545544107981649673418863030638055045472254781744099560049507383843552275200930486356695928848365106848915395210954601234382557599981781997208528691419199247925003680930176469879399571838487284948140750899742714864186755515015757583961614125162347177662709575663178698183489606557564961520823788836737735306900054552961630948473206348134243397376211967496135072246878751402593349374464501306703380955588399400566775877939562536266383793399222660489905909908358007903924578715738748022408126644948230531426880143255587123059857609939622373121910618310211984658242430662329330990100640924596027068265915805685754679487881869451642718390663653105890079838028775240834773604908653332176187045482346603866165460046059801049743739196196596010893142739392130857892239511509768229005360506596583978650682602418665219043238071838396915888194672632547820892259177859080323199441906390003363217791491568146667307889232199475833188057005353578248129086953168084651280706524690410583209896195165053796009314791763800896599006760953425104117551673609231917175192223203107892377639196451759295651973951729414780574813703636006673173376731425835586771757055416462407856197030395126034691034490805336474599126032797877706765525899233329715827880895420323710370419390974197588293979216873082626977569540582874957614172721265217016013093038730348261253439741214665693517249078756197464596314276847319601413477907970329393797349043279095538716954559878785137750971145531494532104918016848292877638907526805357713585662773559202644137738463067408146552229287326814918323888220048829320849272851729931504923148665566775028630354738281512412243939209767038996715581731707173083326978429610989858314957178040801403473114022481005122623155757585169678405024461600352636145783086175837363390136723623026954114827725512630264712392563083191621190982042535370107007884311793101950018872657480346168754973934744706827158136074269248666920597132761049066199875756728959249405933512978280618123408464242726568639215178222831620562426480302248283313770846922535018451936741499941451791338985854140904245352570272943266794961667356691718530374753109963934823792486641171066726682690036098168451956320446726613326867596677759173103188835661096405245206060121463442228535342910596698121059316892344264516540274933568010502600381004350055928619478414475046856485013784091405943390822401471201933474755909429098490853460741142086493606944612078695533682720877673943570362748122064107731110250004677912613941540496977508505486684601739744813077283901656807534988999147002976487068084990449504695116079365897203763875123928576907031246837798706021780759580570062942049837762462350820812453228456508826416354386548319006079388672401190627037905556714015358554534301672839421498572137266747569921846137134313780495704400982413057689418245359221437410763478631159890330414450662647635557172366124718469949289768980574203503553857738882321216031314932642366174190279985696103002737886665877937068523912511073007889607603998412753900508988633784282959374935547346021072550205936323751023524093691354797869313059978158881086146310400633575038522441978946440010748119851145652191136146614090439170203328596711486860852089791345481501026341196884060572236940918490901843513285417311001068984800627827299309706243333948007905421939088772047220332010557785659578607060223678257126224864590151751387466512839141471091035775092635975070541669706288211375496761966603207552256367328672457112005490703866539933363059425180650471814082996793475562982606085446491935330521373792024300597017657322085037840351043377835447153535093775355296502614576586430184151372579221723272329377909916667534869515901493961074925208463304746964783122789644719402489128944221380448163080017422177559407050597394422518892048941359034355120560439899590940729039999135827592121696858138135287817634718740763037055296074318282868175233954993228615008347365443915666505811912427608673929848456993740280471794889993162243975601277101778789226047398190430069398990957974646392382602056990821652065599453677629156711395855548231543179635217635561964093903410129204616103238681924823569340907490848550021825198495813074409729825678188639015333530380185183286088072067963087886200363663460190232064987886647146510141811655604344449292047582823861795225403012168701867247400573367030615980191593860164422388103244917102150075576790119533363229034417179689875016913923552425128889101445544514968276313357611746516392246576764584763891081250685822520032390318918030260775862481689789502667600102080276239602415248357937266030321554704254601760612903522329529978653357525337453239538765905727340779529487688559813666993496349695049580541580688224741905419792380149529643152184956284456709113233420911485389841280027619052586256583010673251272097100290658893858224226614014866371627165945617638353917228954888473438470622182477513473658568731855003800681289787900868917366196706036366513581718055307555495440501269448802148086814232432037997144890289555060800437283365731629728596120493856782892732948416118745767968477604419965564466495643827122352836839439975908111690246128612923347308207721148129516132832186482442638779678701042571515744426423382078553222586202768861128354588055476178439374079133617208314132269476210504617998117687400423283145894924236370122193609097247233216809710187307094343998704433661573286104115028575908001561538699001784416718559150330346300871424538626081533802372283579227412218892393638608425820981278847997321810385598698902695335330178389116743224935293717317779435239598096473199745587387718276898687341251499762537902156772141695365752912514350615338727287326300598111355542185638084963211657004338202508975502653732099096128482210866582170064927667553434098573910709785281590691093693921864997439311029232066292514081817420451041516139573977959564079305311380845701902510559338452574482693241690891175984976220133431084930768253949040853525223721851007714037270604774327818862126953221878193838649286779793055220119209094421046654569198071256378963157316482387929918836739190398807200406120723571785351851466100913585423389443414671644162225102336597826826777231813507393813058165071380781868677029396214714012693288951925035987326017467612239012199203097379190810204553274546309772083093076291777821317281513724826784919709872309756585956268913180870977423301945424452193306831971906656146859645812959567750468027498866996248870236254884134566398235640686295631070371054814690073112936421794451993879032366168947929567299200654416571204016478489413699452174648817265241422835928986114146045966719393471763890451845780941178668333269262829781126675853947358068254636244726408020249018403439666488145258191662854557880940148117968671086516037503982565555007408348175060584914529358737932442466205566388713768084022240181439492471009735688417791971216102507461838599920856902239779441786667147781282779916576984067285750933942933839058378990598062884690632170592032640483101586418197125529630153378360627429343303148269873912443247045794735845378376990441708378094805347140648852786402128380200513182276098859859784941200484333719728480281768855436759117878607925859823137483671872762172715547681646607783524389464149192971751519311680421833337551544360537034992828277940269720768327453291806733065593017421973903855458959075075922124964455015707657936352954466257532850259506608939573288878704634234643176199925351701233443854069035273809061661763583868990098932227138329499717861902874994376997486697351321340880921320607196340870483597945052467649917144188214973135584765456772377197489915585504151013912225735796317700284406676118131333466928701540144232392665102232322809479499153751308863310513880140397822672701211287663865564701446805297468833879485763118468006194308015482940315694345088419079878237913592308289533860856814852264198505897151650527857961624312431454590182904741215486572044406960409463085114342670750760241266894580050741325330956354266084720431144547313724699606568143515857862578425364297472307996476988075211009536263491964150050771547462782783414129030677898728960366613529547295226852159131979062784230839918891853894937726560290273026193503893373151162272991630843061930221107400291648357764220588592923443818278357648809419398066760073213715807233619187548504500993649435912779375595976519277633875141401845700383766750577000257589894473108774759568948941670121413046153127222514956506399435992973121406035419085480017324936906681542482784749749411841075562483214231470464885569784495040310108399229309318394931168245513221751311827035929037340992497821821052693091830704772720215966052054011603085774232071738393248883087045661246629130510466090329321047826875242081206404983190127062642950741927834419849081813299157039506628437330494631424577039819984007698218314803199739149170792806927908349603012630497084012600490808429564231144956639819275662404294189679639211283838785472169259963556923990183639037628272980689775372460435028522848541839063231087129970347528176733070518053338204988285044652891100617986774307900443129464145740201122631007760677376927534487739721954975529758364350761332777379636059071627269914098010627398546819526034543973657923492010638530159646166685658822790561551143550887389238621239887372234817731920817513674208245817262008344997348955094365526969249944046666130599447991371207258205962835212278941177408055798309163703002049547209320522959147387750775725564299072495862829483507906801463844466377346969753976984663652274772388480183166669446122245837312489283440822263939113540171062387981696687537149935667317636434186968173262661190849161487247005352255888764893898397055884070041796848288473964677165686801310991207040382432119400884027667710892887262445946864622598659714738731288358257819022441419663388736112894369598448085140910581593306594652081140775610338581829279434545057024924822176158074323657098264424112160552781497254472828698995176752011202590316894706349399085181098205569613884025426228037863304685334643350056289923748551938926914462806804461185533892077096994614286441059237000717076961795462436962399298516557901207724668412532501882498515325855649606847286430458608405207456059310350433177521007880562345964489572545729997826851092096278737299024304862578139378116789891969128395606791092501952992044010895910750336620442893549086267183937781930731377906321783518134416503898224025374319609526996232298737465100553370161184537435167973024942501199526809905520185629527499895020200262403487606432333149758713311540076919146222384521744788510916542892175082940303001848553139681855588735441260676821713215264282887061297930257368882546842185951032045136407031804643164070064127993740453101793179266633115389115041448108093781593405251049645493975719259766547219237873926357218550516219595820101915330767785589337365457813129404662001328402776218162042950565324930426732258996334696902614894273547921104027564249677728837582951624138370112620623439005847708521239393660957874724003555661296093443296136270256958135046646803800272024195304016198212135133583376337839055077758159816510795129379198724656932799713513866872640528474146856090867536673454429870993796734296616503203691023286918158508814603080149283890527688215253245354471296998120189671360352776026578750360792581795086957947529449442001456749677293208097925754089747760842395904818380344511353494754342987978738450757737319602891925123610307904688567870323137331954788824450512221938677285049096816693814770656657953599347814514955895810777192005676435120858201755041089303048480508056412614763763201977885449154837826302193118101393117204454854349923334659105027645993342185020651489820411032090891614654218707897220853534608668337031664199294113070586977783666607227794760738602055760897718181850156908126162651102048435426120318103504100539346392211170329160783982467189224192325757526724354440664116283449032358566144079724457321665188796244303591876099743113001847865393504796112170913193731604840821486401439226805338922416875046214296620427791228776483394885703965717529780057972897165924115729256042802559044496293787872528436673616494116952503147542456816959911133081962529189733851163009419294033482651059218593873642399250293821315315851959558994483083480372949878218263064866597606659509989000017381519761501293174319160697656078112778841151884183109415918730373432720402674788475622038388871336551961003456119777857110448030597678540320489810297979034926422821707998291183431332646559937860006214975242109774162607479845504787177772330808159133265673394490756535710192389671445222319944539384964924383447848033271096137423262023950445058280275271113309936928710390322060312796533122123389358286250737020868195012131338260986237084153774372708868451105871970035012425986213784710959397193096309844618677771002553030054071215804560869821428850796059759893452454350842119988906584045037259816843020539754815111438585988286556311923445850131827716265909464911229262492046130553904515002285658305984363438594218391453440634838053986572009974808299207398971926694342602728136680126660958942880782745398755915217963967370702926748286259694496550431943170878010085561284479383774916923221998514604155453621150861787986552639312713100584219741401370121538495894781968915665150589297988561120399871135480354699954850748469325134134969461889412087213077267994807982061644905496226384352438789870905101581976528692074012699030515603689447656290066397015504314619888499158340402270515439959928585320969304309372644029479679402544618089301919885277971231145230718952491319944711679570678571242811170453366190560195401142063315855899600789496790155075511752719617186903197652737967594243032019024151231482896632679666126903307989016672588527196676169424237593371811688356696006615970988490000323219520915539884133843444195143331007197656663664910223939365975771372502369129505116338718094515789379726073816609221300288566118229171029648170378105378765694398410029346962103444534742924297831653312568358100249635542529181047814814848463556136092128121083392381394036238575063649469956916047830837174708551969298837656740225283805169261411320550232984570778490675013464372391709575511632129627025445030935576451072923786832259496503205401443966021611921558799668776843825974911536085940966745752387766259487113473439060563477759140700948308757254121476260789524457043479644688501085489346468691307020386103194972772552874535726389305346363620145811009140146097538192405520816405315231117255674380155765157241335007370106116917625684239717786928424815025307643716761916378223767673454144432429001090501448763390831418764599137170915526327850936158636553971762787665865829139922688539484821066822062683960246051506309770495359470855124372356490267666677001461726216131121468096978662786324152679540821459181310668496828228957152362323242020367497569030702355165593053498127513479859275145848596843471944646158402697058728410229146145120276936944214399480513147600594677514481251603810164911902676318042415380021488802736583673162612176111807778581957332144016751104762391654192444642026276177556002134996262416515975237698114138475781099869550192378413975230083157768428604765379983911960182922320218885999907546492987678040985642793717771851133829573099011342999029067492031287629319124265866710516876401020750539952820943701485505767091001127240773797628677249294474815639357673458440349342110825275121398166964851499207071195911362284906349229774653690476159649259008453672470539329546985147386164992661201048467025752656602019655908448392119030510593737086709956798170716736288942835124778091537754862437684649838029596397516660103562090644056793019842503075338932112863556129536770410296244332282684564902071248955553872302499972670707449388785316378348720343691744641226211401530132408178439274481861440605520745384317159807297913350433931911089605362417903327865184512551962410799344402308315377054435601784683450118632000361452541926105009766156621941486781285091011331258056418684685026018397672443389677927092267491980724535911492989500101087509103382048287679192268371198904134721853482338839430630437032656609316162437925285767673555234207470271996714258194839863133509070396199743975769105574020559308459845310636752657728444824940601620282137914815110208177372773764410725422404338305124647892452118452021400717946221863009146955932682098295309361263258850049503824437989260254619270863933198392120646431709760334424030476442812460026360822775226914848011308585549273961581144720987792967663942978166642467562681374464205856008814704473055888201667721576276865993655097183581755219239121211631244351078992925222904895652672586065052927346184962420655349181141392213975558745635807445673073843304779538115253445916161900183256944244138453658030992579125829697066211028018998037821416734765757942111756993414978664305013898034878912556932706337208628564431370708485603792122641417015341591405044328689724721468640533274482544388077323975880805407614364451730818127648899639785510512105998205458720534699784540620558082468467662691768247775298697813893592770470808412763174690307833901531557236704040948772549324309954417108546483825693023881536794072997751549614632197588644623250124856039572789840043661690545698151890087307706950124877018236168470073522326116161731667704270590579705795007083927832407739107650620566787608926463854623559784135513348705285541040876882373354790141242726213119431142542825569907374150330619698541752774423921486869401713607537765975221309019910514367939650946645013431865966922731111369496410981604490320238570537211886249553935299909234169443675643932357028271031630215566344548489876822232890618557865708649611950520912911227633723606803821702163100039909924494148342517838124411224882594604258395357597519554017978108029321961469292044560573665328929069229983692817819645582473137012750684788414385366189730253323776852359011473274950516993252981990744952457753459914525141003929685477777028709030500503583185362280379606096043821330607542412983710046924682381757175554617250734820376782445296934750012433291341626571887732583637476865040170733762976724645244729397079597284675200447807449635141834356728504735149313609952884007491432143392599590726379930447604664524430532758337915634084247999981753589363539227794839368413821229404034977576481414467015188965681281925701884631635311329154324974911727018069176049138776372498467671369100604705575205687165966102089213333322651484662638839682454249609521344309452666995475183870360413061457228054552539628391840006439370771842261683050962646679810967987367551041582576800822068511741363814588014400431562413274074465499462523932544183190298815376341415733793898392955350167154521494363865272258447831861016888852409009893395960274666976983541582888044568657885615020337260214056886576704863938337508658290456546944290515914880336249371541280784085447907950680026014034774239506204069108349117191873597044684709335861750787910516002975829356195707680242559838088523462973131609474292901889069419306380506272707187722148032422470035308388603274048741584558341140826694699940676712172727804541233184062161527564820323070983956528972566105948363926978043934979134856189601625663946975450609875006813756433144704878644896789301766841605187175672480598197658564724766012564165440563824995681375044143214991002715029728638352409444683362134547166310524321071775174583725968481359625926803751325443609378995848281190468458103779624242662353746517814247317517006611847167639196528251551760467056940224993709187027596107741461694140121198204616818783476505649649863568096905434092610019563774017062732916293345940362199686079988447600447890805308763537099865569805612282931090683798805073416996018191910214410537315790181081129114616133314080944883529014317477299575185655992436385663678879056340762539286818575139412252311058725999422589785775552858669040398629949368840637970227835548937612935861763284969463375860770619633336578815736997870833825104895454450831595996850690904744156861338754126085578109185595318064782054660143352543620312110672600047801966155453980233717113844370275674419498959064951673683888734046078651825006796965497983736048509523969426470663980075812013832004122882558341921001788614572658170542641924385956658797130827430423087730748588272664657296257768436300293904640677058676836704866289621277937102330157182007009269999673853175924837698361193689333718234763725735974005878824170978421629347138352931297763147720701999540527277466704794930798000829480436175354542334664871348254225978254259549169460018918644673369556157157706314456321844037567494752800983975897371131499638512147668926576132689758793727408638655257611974628623545943917108414830200063561638875332480646357599201995625226263033615987278430036811416678282466606839293766305736745934152963623149560751743525505937096344678369430936057154278434426083941322663467606881983733119861055425494173132313563827853592698147349205829709252757425462640945932237816742504491386680376956408231921512624090536291029882637782017507847817822711263123433981489045635534152363116185166566460871272612692567090835014951040104368189131162983505934614584080937324491559182136552043667865641455755316869676723301961407812546088076264158839634319009762939384353470436552342714892706252688116201412902010945753288467652869332969322842926797837442120351958051161860552175106179254967942449361432722856715729528228532876696140188759011076742900835204819441734534745166995783745493029160965691937075556010908267326035396862931270152496680164794160761993882360441831730759981513181698293150862894244670920375017699499155319305985410925387698073123143967837374920599449970047192324906345923983999858411586865292124833132841891647503118668485840454481188967314304613673318350022610327686044682805976261079171366009409044240812096895242458081373011704270559752806908103041659167081675690822686791662669499320920502070234928675782578137175073061370525704392036830106858281213256302331114288258588298550230046370568835967174780730393272224641815119160376250814830310370997620834913507618700515877355888536646833530477033794438009324978154188725703772522827757298359605225291565498804847544004158632367861184801821887858443219088381915600982416321096739009835507493623461425494243902307041961425894820000862594663482157487459931363014510879723909226939270456098133059395737420979039109424604768062132537994346986384038123394026281196766231544584875388392158632152885793154437344213876084442237228948362829111547876108796332840907606042766130995916161476643932081098673424897204308481209535319900902912486341466916357705616881924775959035433529345248787862036236699974868331796985298410675939252653341546101979449192605499507802207641061747314382942539109715716343673812100018249022134272290159259570798255267980227002149196367253196526660937132156310050959477046350300505685768247325551032000531531641224922561391668968361736481042062201912287871538858916170702670917831870416900059881805286228580138119859275063911914964664710985572831111923497014217571062001842704225610313852137822438554573152124350324825355308906171324213931187922908188436546950009904896941625417468471749582328643131561511587332643529237937560852453133832008603558908138348711830438214694213526217069649767192256807131653872776351537790085911813683216134347016018755789128110364961039328704247933929665972904670120555849177739903709923817457200489459723839580872568968898282376904643911479343157883309443410307444915196924933167105923331536925764422915225348546604032194547096071846099855721177855830002569956597142423830795556216292182949728385977845017359705633421650149950712172249230261219826019158578077489823231338156143781037267893685066653394246106805996815610505119572340396559854824046340136911948419839875190949150285503653966931657025402109166087359591640602127549306492091854411304524457821207374791349866629642376876464141805043715656973321945842178224085698680692913027057133783138062746172171753764494148162256225102944416551566487148514062692481426765084786545266408159950177951062046930473604211045577952376898289262263140602392584732307582899568902031546313880839239547823280942869350265012447400283053840693650079114566841512260233629351475809021086871113891060914459551043267716296328196533318710139731614058824925666488303337548610391730944556643527391586186860480747860415412721028103759808553625334518500204715493984351913524761557603054779496762702319107757887568978042242605273585648612320882356764860779692805750499552740347088717114444492835815575677067781338895041144013042720291978912711154720584119111459058926706687052210707755464201935591299422024736302643255839561439554234557910456843585727254422346367112402255487537049847477894389408777099342631536014425376520532754369174624287345877005910357441659992024782198452724598211663900279484204552347517545867400788868257755352809330359684744390325404148333322681696864361703626081156641995248096316796726198210687744743279079324887099768657333632324476274980830811228295868550744858018826794768156977300998647510475266170863507095873964957459715407605992952157898715237034662572625837410555684895247749390895276027070044624193796630614501670060140392956487073504659084607835270694367070810142557621196181688589281813846795435320505892514801063739080516204639591974177065141487338877101621288630351782521405607281943797270945194661252785685228825977025197528636150611146397727335258407157550644325130432950054331489372763513046198760058070973755175367696374842303131034970576310154021190796685411054414557174701644924378810525059176819061355804883312865803624823336856608321623231965333567395083862223525906779137332979308337464962627989513036345618521598561449630175078230455607855596830855166572172650231325764696163451778569459419228084070783444298944183738149273742474257825126269408789539100029788894323950465756080949519327645275158137773602704626252850732588348692225170536970842013658013980164490207509917392757339188748597978073129392313869232470139782169474102900332521595840904945687914802741119262077717035154402290291932475792963499483062205211717151657126273618135614556849961661191743431506986785004492352025231163180447053130020255827953534287568067998699810704824022038310109459146230955163398750150774679383162795549410641406953050821357501300750219542820670001544209996442036234230179865896233718407678153408122045101239584059479687793834742687458784023729197504765240073011443709769111226651249904371493521778108957359967246722789729561593300936730926632009689056005244690817925175101009535126957601256497154029111846735588590740198090308639172060359114571470578007732317737102213332447469324507053642917450770330774701128487192342016283225470775777123498227259995162001911040997001434925576002072806837583289444850162962665560358205522938694524744942379142178016910474730305298523368126086467345785924994173161318858961158742544140748080884076964905664752308350492214170577222139853686367208287690407097878903716487573626760391687989921819522822193927634457768891275426625096220432523359500322833396256334718932289362580370320747540275082698810931921920326698328051588351682733618704645464735996172193164183544150192239263862351879808721905203115579133700925367039919945357626251779397864160757657308580583252098921370675592461891175749589009857181902903810094303455589585667957734516177620058886535934610191883146357305638786022166722267987089582526592529954707791284186646638831541875252624605864659313269575750661644874511483396754890068768709034365672594591029660534468866634623790463215537458813211534850224034022055485068905906536088837585094240195544155318208403421232915208198690574526242721949701631023338969099569517383919703722946018419608360468499972813310896656372505395033442917597899482587245640534151526527780358869176684711540976901147653179068939861417936213873301986806457664541668801709838147797698614230956661664014223779379963832223366578911790819905351020970248246558404914505674553389856002095763311819740341969042082027519603892193126208018177103393616419115750248035326760941818273852524866142214844212782832659788954037612049048475061094319642418500862260574998402382231069673007800396387315588629519281222180253614594188534529279135447277505829472476979310999882001758183307671847569692460343117630741839965373177915785164475618344107978266959614643094293577051177388263022913896147771060575670027970942177718935682511156509421665486864267475968023896531045888363996165314743323535511007337916951181739912249531870076597317613580722944582230630876652196263764669870541658184169550398715921255374632869999646401554748837789834918081508961964827222983581104560275679084263102571876044721767109794075559952890842728042131177190429891788245479909539720906424885100561814041418850408875297640565628120241164405863443946573854358111018836607478751099021704079765520001462389344081099540629343063247283999144166612670481764834692453151125564015616049647419369275668594831163274743261277649785373347569016796169969933622674983403475897124640809662012655777163066442283387778290858780943080121879346288869779893542553110659808597518312115626456956437182395208405707166522378914705370103538921578085307115886957527324465237528947994107061979399963878677935025718416123824766292777294200736890657304087467259518368303215486152989938862669366177307996396907932159575585523519463746718525814288922744973113114235588031636879711152568832336756028593958446662912019132208509758450345798243702428915554477016245707052306361434810126152381330864990110697360497278334084361151187482519262037286423130890443311348069179098251473786632002437531148740726188791019546186581768616460952323886993895332973405788132041054922500826963950298757271145101258016572682240639930259542325377795506018176402945240836221020941644142301904922988813476712019825603330516910754868731792121664747592139076087299136073583495148365366235125892876287257240959797364081243313152987794638547276216222440946333420184164054826677929436332818080970550300259099769654956983406020472334742475346264022414353883838137054463104009758325683221673295104341513524082739348520301212826324123660911343007586078259620220247298948393284353169866633627655663251133649095888258763946957856536070955224419974613813388434397443377307084770415977026386505155800046842894052126488216626688987380767557988767342520765330324811538399357318400585771316023302926936085222869067906454722011875786210494385498236609356310580244664989080528481573725046182868912423891910850219852991393588187854286518607077599065714293619482161993676488088929661350834331161699662297628599918407295352253471274830532797893178061679497574559952689010066736394039247526429981886621544858357083400668040114163378836928260973564373328010621113963823919412290544339038054767226738967427952993108983971922120839843344157840248070350433587307590974292942151633488555492690151294633425926286814061984063509105265236026609406974792468939920352073957861396398913198661657823534884661653074622368224764723967152056328659842179619908961720041465842852994969751448534167653975704906722270960132236843593362875775544413659357225965338317539823278846843463413076279591767539188946038603139990822644908024482872409305144991172183711049521540189586981871354136406477192567065318533649259868314935621660694439301014793778137929794486178210140991785426604183908043387218390401620049859180729981134450963832777906356590713240929388459207818603860865341485679434204484408719725572181126490041167667504986388282136866785331631807801214644553912156194888251620878152014965150616430350015310415371255514068302029719221141657975416860467295587495100250896614372622884873046953112748381333731908422766591404916336221380621444701457857513493615593083432967124941038138078253509406368352553433712055049356664078730319202870642077074647517177062649958750154364863537944449064970326816297456353840440181919439164414814424315580121276347208737331979810900762411484616440771403263109125639806712778258300546395772783138631806889636060111585449585665105801296243635219271714673373064640739990516668794523011583366337581052255272890468528041437375408072551767045331663754814314677288239574348105509794349684805170946968599222388606450714438272622593059490765901709084761730567947278866266517460597704661072308827689739296689634351735024855212850852530543702466244851475310456929817359764877806588706416205217794860697860186922342365032634226789156504400462741515127781676626444302493628363886070929443332617406048322057712484767123235314944775774748572847729003545274592401844732954064833154758948640499780982904932461629804060656366460818190920275460843404122723049055197573680189487047937454974683980761639488849721265797122113216865338528350265646445248487330390325449627978680177794753060381842166407361630793893899073748514295743197951767979159908976771863818264157663695661897473195513345004389342925168485850734757023642174696940798596616841109489796919723695240313371555057978207403216695725780280384079523959721433284182420056933327940601879603557831779668608393625288027784145911092686465670868935445682095893432532382505715883020017543016492775639202483934308657896554333953571697588301074124777696670750257146784842926434784495189245068520210929336180561439259512490887569084346779619302002826652615222957717071600105034850752292404816193982249799770168541176957495030086903259914918620512299862846224038287085597694744090822170506948250994718889322367898201895456159121517412530002889567788937537780231427973745942136059217641414080824080538851935015361122922129374731569792901597369353508706916040010652465611164610900580295701413040869997031742240743220850608001955164491979198682226043512392412993939322885288251310208007346085537089099276935236988585214314861185199977988264163550194768624190365376296848598865648724139228405388130116610322230085708749501270106326846161669223663031251492197452076490162621309511916964525914488552209472219982377207857651479419861183624488763412628598253614670599707075613156463058970694974852552071839308676430845537215085540711339879838412335877583124721155702237322415227474905911834083284520174444953548437704194273725674565229280583992409941229836229365958136202673446045883893822588666507760748317909810028585309849121921650890112620997817104494425740891307376078989482082285776140400551223091286789640752388682313603086636827998639269360860883412019724561962871789540126268775715103500581181628953288314383671386953431581853659565970322016484306584007131445469722130455879773568880220373389239870880838578713306165871920106864574153072107786571488323513302396098865149728711984356054790711544555862757983360777401398319981952749283538457151098548198628927069073669913389207250093490258161866567137392824407937146951718969682526486843650841913949426722185159236963295310022270482187609628984681251100654948557550219005380055268066013347463170742087878113954683840835704827846152643777985998243807465529700489347944679954090522891822762829056737483430066384839063370868761472043116234373199247003990621920902645504855285531172649109662897926464048166322749838079917663151218594520544632871445992451790493271580274160787758700443371719011869345361596023222189742629243798569435284675034288735622356744548388695041873196658440015732002900918204333028641055396337817219270713595169396411397619280806456401375023460576363861221158460648230006236854778300313623070033805330361978021666797929173999827026927585394972351529607278266821557177018091233783501057854790400050989446768538867088836565315049117628740740048944244712086154843858448504186817473401389305633032533985017802387795310264301964597136120831317811940357295552126297157598534610857105936862502839301980884510708316124868320741674446142970755565306568392291492525119356202566044353502669639809579251682713681126248966467359924542036750186921550016752171820717947748202402125284599563238525293799713773748606095906829087304488684308779397640393617586703284199829574406321117131388476091849097042175442964660143883465804972731744313103518423918835166547887525476437426682131400053273004397516790497844777777990104708831998510722695193298921318967569711328073425839843993947494667439508961016447505191717728478308330452595177335126630622237628472867757656716315715326776273503232864004959302061768042028635754677527744098578816220562554671189058262580656518266485727496404245318078615018290192988834709981769703599028577836900170804212306912700858037932682159370766716511702128294473889736912061403240683990806205529450751329921994681323827939949739407145535267998903064713226790964175967857728376869579410161996472970687181655873917077350129542471085709595925080495050363230090550694808837732578596406219612987532308710875292119457224376788866491840557663794869885943409300099928664646978746924698614894990129007009099528132328189488745973043773952597512686361455231518031702023043208599385012444251543013215789085865997907258954552780099249202382063172096715007107222706183110585340464130338009002025797470427465280107101532744662747123619973553507764105877149078499015484331315536722230628582485130461569483617658828530432968257950298282682495591062522359406294155130260932086074609775814511350370533127210585499272513521052619102637160434195489314240921810840410045185108395455872392369492094668450373365962426602332886678110609064925946859541432077596053537661703448238410885440423464398876746306492465348121310397891472891729270871006857436965035662746859551523147342475833036765892434124263774827016353641779674795476983889827062895550461803902565902993142594611357857976990496273540511927133417933251840642992753810709958755126869731085522812645880497358960626715203828676606703213461357657976547958387392889497356042717847361569510402735139267006803698944043938100559075672488929924072675972873625585547975702943047042168745698605614155259544837558488036549178983498272910027625358455270409395341846945099253143929621584926519832263200708222977776645904106922472993742764248156742665341812024667333738430295937395336044258598330004648949020583268309770595239984927239555302258449276805773304699107665795138835661113876631306307103280550819997264537663315052960564002008129264612646872397490506010824043238984742417037668547173880639249202610779357060394526372270735787218384854038775128827927837566288333176662254792302971903717477073691444404708508456896313772714105002131273435245069794618385339131132935811033514922399662848093309148062906557276766634024302138953618600531663746834950620494296509052402727894543439053789522329339676155542200353842664490454676828488742883827637985903136318549853677580322559745695089609139338488062662425095444491252587383462070351841015387432232172608564742657643215494815371278198305188607719099201670575748870558482779345520326184000015937803931093061680401827925049406199505098842401815172470636172180722050072503048580153884691072428282827468410808545538800857575475217064529358287982454953423221505191029860567927881603308519866981406627463135924360700364631079202708180070687793505045300410795820245741330671880555838204952936004140680764912078435687068866037160955217195541874750464553149377437471876361172391138297302928214740502016413455530348648563966597590260115762634292501578367906765918179851994735028595359333688501547215751362407569338975969166142550605399444126658417539965111730526526803822508687778083147946457095417648792737716133237566572239632026722356614981117137068902201549544042122080523244709049704500295975855060993034528296227576257470870732168531717642445421394095766490350890843481819649646377500791446511475139992877825500741127383022694775811510298177979962451585796471087315421551646004247803870026597319268986361653355558583535494987840901291286805491809012706972373248096308793726972201128158304612689545889056349762959196124960295762455755323703936224152204226962342322347936465932305307545224528804518107317390098672844773993506031980217906920590709063045515085662017158650644802649075792986772210112737628501719839720630231935258310167615529593756693483372670533601910938472697195026280425179315830459921247858627379263711416353902306911418124168445149169072616125514881405376119004011656578472480356109704310678677264449140122881707401176055547092040693012131508121475051891093312746717410130729630563552710843665079867609457474595074259369368956368851976029154198122741383138902125678996727053627176954685444437179336368488272880327630148811339233729698924598756425760927367975223258582750048073587840067843330382973316860800986958208659928827952039626873980538291706627256717791094201694154575776394718540933150534039430040015320079792898750920963605916603514488682256517240195990469700369367782709619348384058795539703986622770373889718339798293004672524554997156185744264588535428372845378534641347135768399782569661964834989133087523458710593500587280589529929899603881272800436717912694189097312870153233404759903417571913215784073789829511570336537330530047064719239607868468447029810000552808338450737416377586849661307052298056891909283901680844295407785395963589114692999375208510635785233113568790845156253919415152154979874821490131348527677189891051939448318255356771173492998866823107681928613134536140257768022606522519042304320776237050840549307283808568839099274500212755264979870037259573925197196487854234905442260628853110305933243706051650981941084804058073940300409610310148094072202244094702323640506347732112452389733419115472111610649497263295539884883164268113768033056274002595306733001249849881781987469440086008854615297996626404988221119791617245097783381214068004146277440802643457197183064031203454270456783807294760501880980301850002554848011376178235950024107410543476144891601972656863011919510159135539070062791392408583422030156847104436948560161870942442970215827960476563666336443930936165907632701564250876176295835990171233585665377560037733102388064868768679939766946759321659891118782112930945829331767988386276390992667678897601797053686831602652147996614024785770871353471096446650381410043702204647636321858206118423276984471595946712515612443458606531414072433557352862916588785358596423687383496340628996817676413365883187586615320545164345493481627581662757193727223584118630328144492652321773677363758132979493538564428048200315176144254461974629142305529095030671883841503457369754937066279749247484983084224564210979745186008436121160620393446236398671838952949796250711853460184926194497123411824117001558427020335221571854665210899618825331756259881381053847169903708631457157294618027986406326745776279524758645551901301004441331927771210269174849305574708217103131553339190965131826596732530889444414122650319253379050128359001471672360480080956195592544379967105232722586237688736926626071288401213839500490627539325824002360851181306478736316416795578187115284648564958592759965882475453498186799043897290764732845715331469985967896409811820037382588709678122186862787821973518157310776732130597011292874312515035945483678487933329486886033317100733856368252839199108852740837179414596555503928940032763053659826443102208032735563770951350103001315199363037322976517756956022010483067387545778611641816019510628916310347894325131551414370301349516751378973662006766853429758449484721089779922884642049580429020255228705675926735036120274064299517337341776123821117565302787633032682665470188401607110897710573293293973735411345673037039642168016949484682004190879756225677213674344850565386834641730460248952409095007030601323127288225872148153152836594583812994112678357438138331709312758298485765116393580524815473503823463692700797494681527916917464224357373594139949259619382692806545774479477634681165579549523156442455986445615509622430041496572122644207131236172252879760942453752006368787025413393430460728687066807024938832414936912395364528909716384348257711250070186266148379892936046772793966421650479945543059958179977604866683669645760185612215177782130819116168104669528260129699993609005100246075009459697722460298197971630822860036026186681082174213309802578856875017405056763705853596730777974677135528713511806812377183024477651679345700792576512276103361788174780318848591040819157039151077548892833568615422412696122989273699735252433200048981175533602185478140992964630058517752300996137157675331159609821594687867143092450054303874856911870388296807471035608686165746750998302108923274311057994151833372331829637735860441959332540218257730593960440614011125726919640794979214072877814198457803496170390018012333500317660850232744481040708614062470489774415626171113484366623779093429689746680829523063132451250057885526815495460541111893645226281697035057053425303104484154770317034173738736125415278366847458743828092126435981035142725856354451078625988859551682013280404816025041351631463126121072839797072103020553134700131975354006071475492860155607361342383033714033485268680537572882541788965755607767772382147693937873866232647903287139266587974201904725096460581486446722298386292721017657345898102236633232003270451247294076550283561836011907677652049118146994584975721997518110531964193914212358398667278627200320427173710258584477018876968079380297821766600216100644453359112103579702033188777071026097677677733227239386408996365263913297933981341078948284370238921185948753862607490086084825092124614610346686359452176681432544651355510367412538714363428341844357033286958851580921918891882945991948129069463916084701068046454214992966099490384200800337828562044787603968445865787746358075452045322205207460843073375787329929911156549112089848762972458374578105840379770373515403855635670110559146428867956234762889235351318797531472444819374276720647708171350860144182677880559227885667192041302947678909701650367103490841610750296168456944434788008456683359744954830182110348144672321222052068188960965563728783650579806140914802690338878488754675298527936747417651262930819791721834842178591400203427929790075567204076131059119993138141140838400604550450629329802867610504240610571171928148991422226697081153698782728292657082526201265925073720715502178387995141733131816789644014220943299881924824611024049668570236832526906303333035151109398035228834367288811555359527163007837758310045011427805642804923099730607980950930942596630698426913430930318882845434028995924486451577097912086586862114932775922088933374225694844249591823050480432864139753571293980201304588217755603549283195533270035279339564703140171622102806543253271764241620731426742433491956674111448204919665799232390262424144827816285456119933275160901116846588498253519010811992403351971418128986288535106109163108894392269600042247073967317559650449523653963822490822778894979228415208355851872371165021779767205465847837901052544290665618020554162066791350811060077198532499478814300534050533567248400081390728886301881030192305951597011139105170693745079504889235949479408006159638037550704434373883794158527293988635866013156862799285179943348067439057957958592699717143755042579500058365206638559326508335360089985713628783666520429213695516273387420926957752918246156580348595072222431737297064306126152279648141339572102758410348664090585813296530355170792986123427157407840993279245186203245760108005283408074567599452529331601616514802706269697127403854458911926768070209948157981163773704489200776540723345149038269199017405081692335944968185092853639753437403928046481959625620338429721690427633391345407543925554760817680948827922135837338162689780205158319033317363279485558123784128524742135057037119921178446002610744311349499745179252612552610038039740443645504670757517134049938899418370618677545006075638368463866828247818585393410810051415973264258014248660967429432265789516897568741850333622719830486129553542989021086393698853071838715932432679136827967632663956635074347415166066754676180583623467786079294781519444553982625873831778551040054405902558021545694396616882657243747249351169062949450204647682953165084790497012260146906641750814798907316040212895960098590558521115911317629587100513809793952650967490959931008943660390112488890084426518977592906759481083458236700161569586436251691891711610289931863430571164488674624350596891078688916354894340508647138263353653091418723098808256754183876791355046539835133063057885369242826058806189269557486171464376140362266436256203426048048170401374679670910267867690389822894857444849074763164633102472913864395462273306948084850617790237001666016417361863832649418562644320716168872740737561639119266951853509808016408910567657068737382581237036021246531427215902340278540537425370316069729312165947393773964610799236835996776505311903744101308666831382655851018603380804090101840471028252737208824625789962568078036572592258577776466754298180583694877319530952962515831315316200191220984784072300654819619898625662330358885311912676582496172047717380340252279674836258836049865891113196839021533600596664330448423690611022303821585066391461799463860581116654479735618998410543508230588510553302333013543908193044394893785483907256118701412768914915365005734464958456851872279150324045619290549987337244509415037002207026054535680065458983151652209732805396811161100156054204108600349628294024436256607663827122693832996971904868869871015597550018006057346855118666408400862268954065860970293449153403460298640025564239103139318028810390569561976740983438377166706054094504392921517874006268567388741845951651786672125103438221065844745490058881887940609451512893479070205363122055017519360470667296217434052522106570166388893847675278926524059852094562660191890354980989151582855671221502928848369450097134952125403223391671925470877253152223808042959011111200680046698508140239597821839373966354156417182581182446942023846746310648979311386758333009708797468327119518650904396925446498120682629510701809452997957416051928257965001570957546457657165536993620942933185093771587592532146120587997202629922219139831562655854556174130385496055132977459945357669844002216227520524425449182403073381097030865153411290592437208814793207757390174591418582041305272712608900960471790393208883080097189621367485744667365462516966938486260857614501756671832730103610561559966962492416581757187507069470829395337848336821616913389005191578514283391875310878337816142078704885116082481548388754022692942807636634284072239124590481717459489481466417815916180057582157513187204539767034685632857415579751313133909558167774465336555663852240844708345721069833909082550052928960442229881725808295890438471097336277841372208318928609770293428850625779561764589176384495270764282498730803420300090847621584100135082796090565420323062530804355916666734102353006984342624232202122003094881244280251422048922797919373842943819876555383382612530594794990876262590294124406687433260548856535908599138452837529709570818518173867641919108701367620647530541820639789166501017530971223772970638970197037605838014090324975805241247901590073752733789927218000963605865851403749760810881739158290147229361307163828132341927371534965967394779769585856871453991521995427577725669698729674120579281192577271194785583674341223742082392012990461669349309542654938868403167074139789237779128138525862299173879699960900660150436330485106828401872174834999113990460963019397601178156068454455570238730516546917352178665430114397264269638944689967751975568942288997504997687234745865286852916992381958943166020544627118913786932159374750926648776432290935275117436836929032307944762536624824224244013030625878386941697542527281202661140604783161616294765415941642293043227219401929489069298612791679048234219399727281482008439183180114899237237602923648704388011608778273043269933651089737866123161661004663059569384174368020471612724047385771795160716089517490524926605936161217491036993261387170007912067507059929054262097392172461063388259445994275600529670901090546830298876410606400931752529788686680211651717616702449531363428694335805316808165655053500747027461988460880737287676008022237947659187437052599970606996513068315755170141803173137014713330305461090253824142562971948819020908634147772320505442435196723732518413777195312850666392553124831954703712429341503887529779707739699925509535411997445039186074220217948359497381152038144437060751879819535007559897813822093231936105285969351897505680504447900180976191834183061560455336381810603670605426886959228686369904781102257236360896743527752598305796322932690707066315841525776210974491365199115935114115590310770016327070929399156695755077977064658840011609881581432285215839223316541770514392419014574242601112199597533218839007483222992475133884136483752785678212812545288813609244972473756329219584337989572608662271982324409892353517846715340333148461541283888263282136762312137359051437410691291543018339868991039249941243052183416748405870454272811609528670460374861794770468241694963298297676139223793044782073041185579888379646992567381953200548465528114992644165346638176307628916585169156219526562102674993408440845739475448386753289536376792004270222403973234418932003053097482830976515149016652885321569701524805854230979422145367273152848715532937102639334921042661774693528928261530065629804883443304107057141502010213270454655415026678931339772058773464707988789857414250612229138888504752254064790618790321162074398065178417485144191123930669561142488584291352099295694973735859049601247067625785616835043367315599918987500432857707135101222786177068940037863546283966992589991259724167259589111421154604913777542023480579922755206716466677204387274553989158131967089663296782284676073801509854675567203796983901150077343515401609284675088513949963944876278794050700662697895224080454270448077473445467198836795155279946010910113856746465749722975696066741643050212353882512743788708951176239057340312562334214191548223904214301915492398193122366830930825678149719352308955728074408872682445113165837082755074896195945320791292363881414823399686287188957214349594647435234610490863967166795469991419524642961499753748531089354616522564358263167075545292899171507284515794495458529894418204564593777339152191943035306055528095860872476412533449500915885813895179316317161499609149598216214359215293714994801203987187217645584251297969005829069798878639458210653813832919034117641869237728993122890066309918598214975997865648222889677521298094761058156441500246089042171698603825085540265818933504948783677824682008329958378641323202196095157166081951375270247777538412409381163048227954742711053735372400827187140749844143527189803159212032727486139309330227871627279535457332101047081595610543632589131138897260214736527966532760917314263578958237720540664356926772195271531008800884976531798217230097370610237602635347697487869586504167076451409853012046990715178704314861526972181686121225628094244483916112824581656108118653140491182149427860678186831932663475376054178719245840025584461961894110162439374432070736359048051089810363071650012767437287189860858431911882793527556241035399530539913993522831060971794544404535581910644710902288797245204913021872228316800842454035784783922940371704311248781574028493553192884275577083647448713355536921292687617696998347976990487521030783390456146257867074386667249188951654612167812447877368812377026616790645893771851763217332009859684062307399619629495493018272131459382929534293201546159845630492930560867174013858434392794013783727590714709771395342070292461936183656395515991325591318127125339465476954078136935209221423781195111555388479389956732611347446700424115091650758613347890020608540462953274052007181798025083361851231675070091338174014986542532035764202095159896906751691191904496366043389281526350519439086175337474801189456456725406097210381703086403919951839924463590822460900950644422942885264943580350507533282609406304536430022762294712737629531799864840284766387794769661197369930610515582360035437381008425498783490115007458017242418656683644730074360598404209023315262139254722047520686698394351249798199697600871495071432572363565758670518802309540833953320302098154297752684640011872415825371364779397908202304051558997413405018922511688247741431262257876333970345355661448882730635144391570612018758409974304646714917010510497937032092089164528014835784229386212370410127043304392961805983124188392971279769358535476276506662918487044359392504366360330764078027955922163615387336414924367816283587282029283539831704015792469948406919778946828673588469320361056957540946170017184276760756380194764000080813818954260124862153929604875419054373545034043529885533213027347405232810700840236819276426558074533388926690146672070424906311293680690462379778171417047828525226158112698932439633581539680228909806917991097766974252655670974408061600994464287929476370353653043431436397617014171085509308683700255513536205430713708474012804143437350865946810474853789054176700474760285711535243292223359287397829255551073426075072855361917285703018281638349265360033820865609828252469142138904840097700064368848977120339317673229486704379622496227121984382972445388121185717297420627702680799266156523591672713436483727737701066417075037795573157592838748915600369531241004555978536526773860348990423923840017344049611889836994253998078482189461949144166407284579890201731856053658178969592871034634800668386293969067195472758847039257441516912286798434656360197421197133797250912063113524177595654057325503806885958530904326759975447166705042710144300107377584175200191566154367535213184323204392421225120440051064563023848377756961410941498049991483989709281733212093949474515792720911969451271416621799059936732031900059922594425842531960152497214185598072605710604576413231307849943828652295054100099330157694099326563978880518019013241275374133340327571739865859445103056811329066011772091319998127490504556758072586385160827212255691922535123943653199367335100996133454993716235887422373148043569848587005902561302550102251061137427015695481332007618424872877453887147364083597965017300618974189310486390186574479058458407251955580509339446632351253137223762668475207916793458190266500648752157231893048944531826747363397230583235178204819256260611596639668959137137608103081982740635111039507937527284351730322153983824785825420602537597032827095829757389787597761515577279315328125254614303704559686671710141973249071738977592623545560262472764983737179445954020616549348364953263613731031300375734163534984806792945576987548764444337636570016547811367934597628731683197020798327000050509041265804663037373335564159846793575384222496185912981938237981534419590426856991152478969109834107556074476953377318339172361767312566240796943262220341716344703089902217807391561902421742666661099718935145399800763036318451973328519211204735661085076034097993689107848795488346828032541886507477449739505073647480259298319152019477183704683035561523007126006854755781877430549769863861669423327914034316279588118587219496501454266025849601910421798954003512544370730971256746311624227320398039954254411617458602256785935592887066281000110080141747882927794896366201882363490441642390853779831013603995339169272598819991134030163601062278714263339161738909496957318286329858654508069850384660819321493634782572201058189494869637046442911103025367214771820781272619871693665647338175667014678223991092505703097935454296438666675260749589851594146773477983435903673659434122133057599904988253007338251048458161768785978738902891717769162180917904601627734493723618737622085127687865318450275080297220228071403391168624031243223539908732919770662107336152461734370926169009293846420438694512038984694697190084988826521061772454994398924786784190152092638802299580860759210592720615956080027196579943082150296590748804760929073091535863735850865823911482333458074102459229150230100919667530876488490025948302455439603622869183850391027071371388539343204173268946407679048970694366397825198664614456778702798563978954853134212794640597858083734012099241013114946365935580761696177341568038120850862388163738745464182447448541456635661140996933554292755147533463725306266311893477757014013197030892526946406368119522865209254791971338444219811437030453328927821853593905397782365632764754846572639112728099328832839085936564330599032092335174024789343089699313536961486930343066843596000830840262418328669383398132967041644617364063946101571216560581954429825212327630958689579131534995917737820050649749436117189654788459185572780193275898877919286561110110017053008302452557438869859126204909590470593134366874417204310700209462131042367622422196623681022870823445965902185635654395298034324161953553800257757906729760839143094570689161835729400596965957591995017137232759136113669147545265558175562367737763172167624098820794273968648767795609345297304353270585016479752593341191412811440781887562825425520086110381184789416861091099578634851893807750350990117617547018571213953020665891010078941702264344144852784510677354104592087659055635469438668390172431774286325471185326168126365027349133938136639730665577933606228896641743031468608408947420354498303825325545318325890743498731442351996223025569159458482305805242317848393418782012789523274889630897192011459119670424117017893920560543902441285844291422965577494991374568846085164873964366504707361627419506808778498334812456481352569676340377442449843153243565527437994394997237026275081860532138363744554022493679027114521207562679511186385150413423033495205263226949104734541688779558513126959570242883583552575549037471808637055054442948934060430807362933801062171620999897419490197179726166238317379094986285536499206538717621132734984955885487707915192777840456837300192011130310608881446775143363777336778673185363781600302658496410458555305064785072549399514113254623697190879076916564714329374469571150084189943899112717602842299611814934450636403391400851620016578604180943940732910120124100846848372185282969677231619972798577582533580005022887427731452195399989300015575401054668576664653868293323015582815543573768035481597488923967714848909743698949502156742333706415547784048414148074933607861068354786588928430075785419581394999485262918575168021357564752773015982917382747428726160069934888725298264377800163889189429500641846963436289968886396723745864074228586556878075574278918367844482537528739186295552321931480994268001892813243521362240574382659243721279701346449599823752630492750678385082145071412813347380780950738289133957938382064257134364448272385817941415034739143387985566770064295596132723698754445517540566584985056577988097388943214996351473435298248782518142080480529173721125193251867264701222986082494733863295210526842154381659153079307371111682777860716738858576626480577098432618809017283812702114842599592132236100211752528735662183288492275462439932970286928784907370710691258783105546189884888462978181929546761609296519935043144847267571021606652463898905653746980376923469570713689874020104961412692467205548654205726147700876943893337899233345486401581437457619016141393407835105538179136415761833693114443769804142825163075331258474986607660919830201483433735287801901098068100229285264561401607779120945818486788461512847964912836434319294608931050002847678856752662743114827463079302226005446527957517105521424875824474516695009330775038534915991183984081037712056657204662468659071379060607822057315372837727492390971603119495951369287730240335429837546147043186050004428871696701636900380731790181099528229258195680203417312001733127708852609305119199050630436747504889748398468925879434759488051989416766749013497158353827839128323622686523040170584535997128480107514849810055951879892166873788051172881516101458817451228714516361559119769262722278918543435285695629264880257530222951325284598825539166875291929744156398809609032675784397831168263818795090260781721236484448985851254334681877851488614392759316297863102499363361532526663357723098501297038378742212073005312557961807081723422175982027767278844456516080446630653209504427044645485826776526261630789175286655360719349933581393797904293938974044028952366514577459085600625730131432294949490869509531996173733187612529928174262368697061396600929586212920781507382647059884501793711800027665385184768714380701724360546879333164657486267157570363458746232888736243342315474170241042441520130463900941167834835297723204591222290281518336861781141413566473927540725527134633248540449374997913004627985800988988073959190089682603150013517639892662435511141652379527211735505214785878512018660294024042130663698714707380257494511920179277733623826966802522262524053306159138802652097370188733717076032708988722149756992587934282271263340682721850228006139648589503985972440114085650178212694964439602028177107301832174050296756226157961320625734170470339732691344707702824374294010495609490365316362863629318098280095497008477175481039233615446416839448039644150785683771730198127671104333668162676790997943988265371754494840089497693012468431858126875945798906088844743410983595141306271545873237470479762519837735838962433698549531618713052733894837379911540411045388302526931850585387255938256721195407963802033464911959593977931484835188817579333975480033204471837978733780397535884951236210548167265847550191609773073527491648979168669398885238133455437330096219720015013882274354642323795534457248896601863343071161018843861985971607511446614950760059476464849173738960280051176364472220917847995436325913174877130797529042079685232677128765186767086325659773276506282040324973708828334528768194690748876261541270960271945943329990665984126840358648760704023129876473698391943211356415953777849311991823469845681498031802544589525072731090247985143270368639904203790098863388130621673570342684090882368127028341481531502566104338724079495556312200030049090183190851296393646230040108415486411559280338243434216402325232229681960294035328169902947103400325304248033835229596255241216737109923351756009225204764802094387316792394255545835494480059091772306586344913605744631901936868307369326821206580389352184312732472203361069180576571563777863351273319822741716009830472226565744617906667156255845189322912915231547407270696097492108784997819647822382731013939594111705712134615709876862572962206496455925604818649159440638938167745745777511196539126903066424734183238638104781976148517364939914253880441007625172875150107837174590795494274385588082561646203872093916276163463979736370351522622935014643438180402931091249484072753838996430765771249978196489410293154295260544638332025101525614398211962286894028778255418227424641304068225546642793500613364196419589059487019152890160557111348709615896817893164141231914571395065670734072031193457021038383434744657809474161467889607213097140911374010613096514185099758965562918764908821573078727744083951141057796018813857961282603990476688491592561591320540564348556953337054366994436215606496290965166893880399687570383993997208889346870344711043768538976784468515233062171269385058283432612975712127116250570389613328123822297512243923665632655656706848244539046739902168266265646540962703546134290472598428609251499085299442086106696921380681571689434207492963727992577658420771181460611037813125139588333670493722620030034229399932469926639837807066638921885145852818232606494091618878181750100095477106289332891351859717939617869548088506966070019420329348328989026685530314591678697620097611481180582119847455421259096898049678816400141749616921466136422170713866821684028331532726714565543384863270836081641294690811038461083021836661482169563647350032025106139273541094621542443725008371004905359892007850935988252839471427523989802739410407728608570004557129986946660751971094178532162878453262075900563888054256333656511775689535510231608702810068918695549535646228326539835568014875732980541435977933183933734844427149284326022529801346193408239110335972151844850816393327405247393183160461037450715248152888679284493661394341782776935131280317453912546321582942001219670792689187488159407159176690540166871547185041332624740977922582780462301938551119242699524731712341427356542733566976343092222593960483949930367815746762790570502176064833051190089964852496999557300027473828434941059075124611134445963863918637756565592794164813263683236075038507425381850030279112459567341830889685758801638120792147743819248117133865036374402251618223607476405853218647609285412980270768544148266562396953166946366504018819671341183212974983558136497981566569170838224842225376293371005260487973119329642397558554797771458100161082566633648874844876965873922889345837334423214017477200191753370151499087191640660612292143664088604483805836438877288960674395215497813359301423887069705379745280883658732853426825269919458682843720054764638304226431733538952619010345170853799320303883865837878689774611802190481242907463748864603756369519014828213093882987085708252549292783921678379203017470668574834363100228648513846357991650193074600072340378995313677946219523116687401080661005882203971389571682625668446676246928654716833510322161010727661792566657025080856078084887335114225988714932417868792963620817288842213898753152915551319541549573603807302819051121034944234932625502495660779677481386085960310568511297117731986474335132313686811922681028168436387549713614663494518995178410580287426792401451383858872850810842195694734057234917480860805298673078232193844839372444300945942869526852977315183385696074492625652204329215312476570663426459038142552700162817543036313585501951547247131732303072008573761271674089551199183856477403847361135994862546695773161234062009134863164191243593471510995627977226437176419268906026541906081056011842382905533715383724247228712996752818367043944127632153948734195589645326448316960463168514385893587754705533533485381473506136450752278408397321566979212113135864499127942975683595393494709238489247254164882243987518172035664810181440570044308731170420597458831434810577050210307800921655125052280717098362829153240095989259404260793428825063768434683089862677783060919392199855399602327799073729499333349308674683038749780893351110243979006513797328801288208523727495180862937337177464587664747597440922421600113190739576164483389259532457893463749337005551833561883867291058329014646401822626454270991486809835412445395806319123279565180845271024152713383761769979626102134311394669249960674810315629502228891746529950723992422718971001023873961068997336538758463909235948991406898990118469154108822744698103115048844468418557311848438165286736702923944288281017952866863156987901705008880614673430417463563587720647309704139682221375805379919941870756770127846081436771757566628687850616715882852824519868696360516429036630632326321470366314979174605852199919086560410032118723703310979369932700089648191313620040276120706162448685040688363077092751651545183405088052366388821425978354680383655327606772887080829920623686828135461933895484914869378171205360425908158838236777122085479925736211241190295629421701081043041007074049651267877790731071132292073276616570561253091046008396589849541269410402264271297048061428839471592334040218919623568273819068099369182470742512168787724524326723225630385735805147594361186039072735328738697675201448813175735104481484253177204151213621708138950366505332474885443602193683887453108780262104786847654911465078822141865945985158856759393115401027678490533467018116805497109312412576788240802640372697318289134649139278802196380643549971122603677710874833616761141304283656602124013050717412316452029649616279015906083345279084362610551549504647187710791855521922545014999667913838251235767873750550686641083369736925385711272649993052111493507225799426981489877980665485381156580924600946630506286062845583990165866723497325338177547263645846672066687553610179478017523608254073766042005353972452087795260900137257684384131814083990467027018866602854830082999300570191052201767374211667050849085617656167591513073870822090457350681775955616406498993298165375577065817603514238160814170099706964319996132898629096762798155750250900281349386508166488787026174766383264516718019450009545946530834729707383233939524462745124619905898025453369993602876542991904582886037393627246748009208680117729204992826004531567075028025756294081001187688449466189210629381679120449227805490406716311986969302468743678239485887194629006975328971561591669525412918687153086493514641013396644410431349917237068580767793303611827512031193379584236355560173671112944104944464938968776718180118357645979640336328314387519656304004068357168192866732538012391650376919623728605644503998677134777941637900106618335490477610079818067577093368536954719087526739814151245699074778714028823003323228833731309415053084286229572911796927629533231886648552179149695872267952003948047640170170366395642408875896713748465529359914565428358321314045903137466521624905279338465911283234765505503075062890520333070610699869505261360278368330006466707523099777420752465958394849961610335837836584642964572498561567218592117948557258989621720671388031034808507440139008164453515455487235689485891935070644226859582836796070539889269436677093163884915264125580051714549894361090057913845376227591063793759321130199215114696983949648645955188422080602093133511559737420549123942148492188567535423788599779615134669323187796441409312278455460143865461349507452065483132893182336268735620871327526167514608350127798996177441297262176602858844013109348159355777377737755872992407442005076609192196070890823932450518820035074911353336601146390066471754908692091381312797814367811234506874236525826229494698367943636629438364837006824355821384916945628779062244866285904408994365973866978005771858403811695711776851999414146803578175511196437835941517641179799304869483729553661068947662576590948067340385649535227130095921508070565659199119395359099333938064208220160104889152053691227890662704620060754410346824544315592550277784619418090161654569809210224654545839337599905697412391889267386370338231355465849457203311568867592986412885863521995252650287294130047139610263446522162891581043832510725150018873636085099138086463009405256417845247556007317441187485302707996082414763051944928261206456725513695534863724377083761793100051489352717818776404853452457975184034381229429415457089794117470485687962206075530140761412035417335147929457705814666637099383496102697260828376495308871328602890259866567099877472158451010950852316782719688556389743407751001476350026259498350874619285625445546657566829613072710878318604010892116574050897388667332843207400278510531715269741544257112815446235094730205582253502929479002429960360503690149380138860912434085354011677735506943762392744999488275488077122521311267684218227306131854109351340723241128454855998453965840072309805727178984060881919762541104784151066723402977959660097158270996039376161740988577993223563643929016377449738028071230107536993062031374626812573411444025274845934162017648698176655911843000795961577942412182112395026932227427907015968014081243836077916871607811461694244612509391809510287835059005363007291103770036705193036013563282890701328959667371142805149701971395405823671531821731073000617349765845120384987142389520826923837871911444349695279191888652879943807503146803126743667225263895780317449224272552469725972461595734388722625703648880910221231790468970136761239092565643671752094029938949394568947613229541541183717665228648911860060738995279505797594092766137923205966160137328785314128090294446937784273956642908668631997477801080147995182738299902543238273905084080490417394366533184396343764862886357054463939391655928661508684404613404508276360876530701116627084632053712732506145555721240474171228227021059556930233743705596171649931706514343933376666025033638337859779656605971037456548579326861675886391327661642136519986775559919105772319395606381570006020283301652924114319300318606925944223803023379507934513174338891482600047948475306349963418973280593533566826826656829223570177891092067551947748357965016946741620140133385697512699339827894078973011357360246890129185871792270450921354846201400063254495055281616443012150161831953644564925189875364028864807988898458860829231548470694341296626536379051593449917262685069640839776473581061316790278946319680209629262807712703555360497826184578185542100494454084931615831976743299072147928178983877198041584432131287378802423319104738360736847760244045095571913088140697071094638962557596952530450189269701597204402054622995182932868941982680936782671978518287019922021578902155177336570210682452984307070280840104606164735892384167146167037049791481170289500493861235787253497841008515413785243739777838313832491875198087405854409442422629152754737892427974042473355865206784370399613435865290188883631576993125691678789143184490360310498864583485522579415725609894486437496490773021617137792472764207549962007649827822179797476657962571172562081906774177749019559897328732813373165321982740808985277258587508372009738044018249003393874929042476292010824738836674366677582218369602307992222916306452167937617994512178570889770961541967179776466679747066830121396506615813486183865237829693507612184444982131074199038787522591428697323934366780626476397538886801283022585043178110517688416813834632440497249347526421606715204339842019361093113196759337632712961659560018155642056395580841601767525633908162764723154630723036991521420061032616959685779275069975367533981302980615870404515920762161265371482392264881673635807167513626807603021909434455581582603317344083317378428404594408953497348341354045332668678368940371390699890453691424855226271878840419043877120405549618851765931599578558875332831221668581243225459755232873687334934201706972027950855233711209366400691393649964249924980832065153442656110339072781065784192826563991061537921167380598347377283476861535447125273247830805554187902218417354261657493517086575413797277355848610245383936995080075807568343827599955374878490965933677559344191150898687118232633758462115119462410736374636153583165120634189944760669333702619628270161397122336226098897033499808853700560304366194868129123297581459204185625873047394254311866171043453504173620100720937173273622451856739975220364476081691774238428517150632059909710735058956747560177424079408224971877931115685197623094771058606883673888884190778563513932501062318117134356144471983047267438378618728118431277679629716468111604919114702075685899352675048817971418806519452405673396908260328244179274322314382361269593773992334473144060352488204515127630646205028862907014014676118265560481607594653263475706331617123954503186790941480400953716461889146758656840848852365542133939458241248311102042607791633087229053125176481119749531863955462699874535753590890627204836720674339808968540737542051357198305695540424407366472867253466841379248573906726908657084764817523235561955582799247207456985847842213509657373925020981174941590919613029927768423084203543669589700508477972583544434067777658991751133544565579236759290933036151808915581989509319574874402952279791156759187354327986259551331890273499458860553870933589067706424681368934225970015331848267631614008717541063658812339439921820027067411495068246598707815098020854732399185402913886234433738873887714017651987282405652386232075425617272378494872159332008173598210245254529275034117135954562697498482098824679983287546597628197423582731362091150642125427514286540207383990405400042779271387462179630518561658317369300560774434259850537019513820093133245061127127519038178718341221933870232544388703756037720245797403254643510794493581141516293623480133801631935080462510018663169145994886630514770214892876428634070435601141930540061995424850977106922516348459711872701682438649473087078198945088659593883870628330314836921805823004837517466991533051106013076877564397917144254487590165990018534960390868200926613590393629798021597205949925604197297136730756530958874593871756487823237536012236460731859150613040352866703710081792751658874900344616594039707437810663333337090741007397899258051212920069270604589968790186429523037793530264472407227788337442620452825146552746377093520019200230156484296727246762402391771511531559092109697155568508053097692903743074278835811165992140929643142554479962110421029158158697798508897178766836420661679638352573333286655085583680031928102283406393073545179396004400558089731959430542114074247503652629212852595819219395733072492104961171556787591993359696539316903815533811426404027812286547108102712644323442010254357811289667927888684780805092941085707568158755854798865343421181530421303863941611244424304468926518493942049781790442351873086542928938640088519528971440071923014041047191265844886542639835608181919084569246986044661528552101575328895539496578400701421689895474625538284314686561645427083379461296314906995793876694581190380936458554259867900527673954512702544433934422995251017133264248202670051205896759826206834445232119363048065662726158262876943568967579659441954591345691770480539003436615713633134209791826341848526293635299896139135679951249163948859540762433372242234166636924629272293387852089446155380597764780809218564888365131133214576386288369968102660392040679070254624238380405839511581181262210732866553672719033563634583994238306225589174469987997258274614515002410198371067561038636174160778177625358273835663242152816399111304775816549534437401859163323393759718086344969753723911339102387785547794492244141256955048302015411553763772481147341010817121981173515898186052406734973715351529553239182965328188479820538409858072114955326847125089995998504596099943928162077746386038729990092600262216512964129919749131272845190292833594721301901654675323451525676212173233876294713186282259757292594029596934578944362130254978756005479903761539891867163091966691921635701040912581886551493540248938420566776086641184676694285650416267661068588441951030554438115852834019119838593149329816904076395075448934431777135368246799732407114931664488323343334876666719491410416065796543273085829365457735507894747211571376207937515586706531123482164401140679790671119103163145146190255650425434530339522619770340863003548944559405302686678657291057605591142476971909973919110505338155875990958625909187246760400963360594202237787134806886198064569506138641244448178277026492904414019202034765725771097561745115538966353204043504906575404076036109738008600192700489508899796179993883322929413164316293675045293963987722308704425024561751301477339482004172309772890848557890853202879088140920830389180766687553222763965375952329370793912242873901040628937516321008638859403473262072073740142592756323587805224669526444002236693489417082454656198892658199915247424765970045748912374663543217573698237495295728745990576626907685886501450899282692225153724946320104355559347506630944330713836134183975012829111441855946266841968016904426160081208974406459384815180904938275913274558285680378503932133407223832458547322137033420040391753738450150182054514035378146943648484795785573853714265635468508841001857359831245876929562791764345821835614538242910959751829161743933702674986231097224121921934336425618117814335340173162029248220145338014495787915267054014490031241885888061670645155049158219394727188864965937942800705576576022079579887049816769523259069236132691354152959326693408103019810983663496783843051227579722921571827957873144637645918915895080718760860773305359879734138077919443997704227681525864256643987063930324789835939990767553750279341286821745324909961962270440970954702028560710836847079839287506965126008322537592742964293792863942438912673104303148359251582332762055332179204664002722794139628676636517072217471039080880029588773457032179230352911039817964723675978822230135418347237045169807297636932971831099785931242985257090227332935230179614222048181708129045530786161980655263225959155020050455837165870324365632181261108301230800391825574419903695154644496533930081515285431159266228457044723616288114527677664290168275209900761128660273299191589422411923377797601704637899269000915436783210839436155473845982001546240984383821522678400938722510727035208771745752348013282144484963862542874109703339864206954858969899649396260255816437009415020886821834741117722711716103451416504270463161478582162624986991921502753904301404736130495118483324608563226416455000585962568164035938401106605370449736269551393258566749607051531685464064461349875121942009481172277838403554052738524283073211968445728329770672916223664749318272270736535482625813930028607348215718222736446090395373607217023277954523759081318891617293441047050747331010530411185968504932921883763912985920296235399827097188972079370990536004582779048889154355139259182366462840942301648597209173239323161070410757613034764449231602694428920409173662348225923835977419537783531579263309956208099295550722246774188462320731034538318929221317469301731490357522765571091994771541249175322828873043854728384085488419650725760709702139522023167899335504877750193839506998759708288752268418832420409527908289580057828188662403917744272657075356928629688246663253040274381273878523980910838121128860433070917541131711110767028429245307306394838168972274430925483252718290090440111036155922233126432921768140201163948237158556249511226847271106890481839244581571847985001001801835915014977094115094538724068892228464496596388288348466489676920103403787979750362078274941215647968096420779659307408480018548644527680849891644252048066002565661182007400921565158604946063896959007763141685575537225211701688034794356432430378371627698262214583486658825284147144178875291399164626078441473757074545578754801368653237191087902549975815848415315951885686028671678649249258932212035284433801614323133097062302982434340007638541346777143607611767409288096497955890589170195389223585237179489482741620110856842015153467860567136556079740388494838295687979182391324994373484480784714727265457760154679139157271081376535849209796736650789228405698291399347432634601734272163686458042828096053238760451741196419071175613345310334857678148867678869449622902426009597380957277511156806289504088165878695272287413016944618440210665064047536183996473007776843654106914693245906838310319139804129145953683022777385203203387601266170420654869930204657551992958048784064252318423368115824312822995901016030731230025230545783519356851705231911432520577638164755489416864077806893516718665030161698204744074894277422684294552159161097638156273408400032789241482563008427223199535825017997242028689808276186196976762046833597105384941564484761576533891754124087102330719969833221265581319987672575533441064721212676309439991586170457221316288098777754259771633224365704793988707140858356209389791470627534582745342883143698395705831182936533761741678465769363534942798326823880215508485974999333309515177265511609377643932034561467037189521520861188524676647420231632476105295804460264594854138654732440689883556669903630978130191263757883629418224669075296776939554645104940116673208049090707722723931747011274959810137046387336794899498307861519566959640176235840570873135255139737348370679207454847697619722110018421407624208932487599982761985009960001419403853269347961995093532735638058739068555728422466830920971943883042173891832332945956075266470910967886201670413770398655168482354978506231913660301008028577242038279713566294633628397727070080546974976123516142391855718496513619178667776836375075871470791363526436973774675472815745553372136540128868215517653117096977717549980402471855863078867819560437100756668665200204513433944962828108865149868271096708921992899509799875343797080215095891526644850647704345449583435841553259289453986124791572774237503111196250846280263299810709934053529461238205142246619120794403064425160567699891198223689899337409249551091290954940375074798106811252801289210079480247480417825313887357434008890676123015158630567307005757452931446043756360983509147545245265925183974705375983245338456460530387785168677019477262023636884212658432603106405663204556149678313265515884677686587712224466640511078138527796932914805156801913798366435106110167095941665473043971651308710447548191724239489798699556793729994880685678170940833236796566266369772318565921560132491877862897299349005063144679492796945580927150642156404502717007435811943447945382202686718544653749800416404656510188207969799919956109842145275402177600832511580001441116130599790488251634638910979961354467278493966496465716090850034186228378740930117656775441569047086534924028716107752328061147458933666066320677877665005367326561129649396683480303473105812065301409483856495965161338979123202886464734915565596997362903106361904387439420136905256489065363761387283807163291422984002200971031832715153509648710919115200121729682029800473255706499197071407204739337667092565890677012248155569831336715044357390990769633791080035849240884825821584013960640911753429847619274203739544734056923319705514050005788356460151593467214275057763167092791625425537341565049394527653405581933003814000926762837656576492324021429771895925092010585217097006569087509186406207533915328450967266201726182944422946458600789580129745886011614957700098989046943877363511898581252440375365063981393415321479784490874867286046576436726158102108808035348849566461579577251377238085257368067142070264935145555993551040617842840009611983464282257939589105945230975494588428586222676634679864360252471775329558570088853073168636163573902500307239495837248018088277653440100176263093817741815580648247523182900683833890395328093775158927201992058917031361006920886197176007293996666706859922405872456993733040647825895864837705723849768530314127416617056989648824184194336275817257412080824690297906145546079350900601726129234117135963290776535551346134093396031218103588982298655280512581110763460961983248576720814970176301767448469683671642652756101131136178281963215591100744001356874997169469202742624914677332476848272258042327650544102011595659306334005708509186051968294755576616583072204576547134384594330456173028007130753274548637804676496402620164520532215673403778884924054208876947340241131554128816684070299041133733366473242686741315462495970193463980630018116173410634981659638918378162832080674797454268445500805742445911266268517538444278692928128959143330139678209429557338951009216614685687584754242136434531960009922929716644894101600442039670400759047919496174044722707034800577552518460512781046807625077978669329092599357888682650165536690358129430616759962238054004505657841150338045659752028599570314265614298113560864077684539876898315904024036767208528659099678877727089999271715214376378225881763642091257393956042350233887410475340205994578464007418940674334111578559658585429536775011832221104963974842312642354914712627999116098146001550493063139578667506438751131872465617635857940542593307122426258600974725382808098012176975404055231438607416788063536050578700186819649032876828085417832433610125858983292560808796254594943020812997943932812889888085141659460979424114607088622275741438320330592433720523608625087414052513468553168528484820633361390482097942496003065352896394426593101265741897132559448147293660706795891753678165682762271100748110460535932707683973499265251176021057977488302345425246190813116031090861636890948128882445416877056111433108149156378078956638438067129744343551263341918199813341096981550046305465728695868805396933875020300239470519465592508988548398117831201733744324891950925909254938811425133617866955801419314146671695533814382186380285873716628989583752627809754857736170751632617332738227552017791705756278084743664518503442607949013419313611530609435407160756317891504781112264781350793724924464321765122972456266156762738777296793750532050243454543325805241530535479844225482984801389561296386676314710872897212917982958369136228038039177117187066768994493309856708741369215947751654504187043500731898235262586823512442897476175949499697939560520253291756253258564070598574784546618787948892307083098266343203649603522289730438637814620982603500712044890828762131798136973257691794223600919764351817138550647024161141642987179318426066749897879346771062172352418800978471514980075563413215745185568795166250057600770586873577518755806475485146010130301929049489979722517056619245436365943526328755966556352527613297682298159373773157619553843535991108812732500416112040794980261222129516651228842306778294925350210748532917206103289051018231771032201225214905177827586230854725610744833472296245613630983732807635495757650284085476252962008075402435838054342935513443617252101106820544784954697804135002985556474655601916279201850867818746053024664412992221864660449249023540645818936312672439950801987051447341159108778140132568538529007061407205470028962297276999775796934993107242155791647647050409219585872231688427256754806707718414039628958434312649772691951990860540172226601585637738446511635699774517645881531122978093877482598668256820928904847263835289005170312805847535467369205120433097381670050128403684542572584142590734121068323135503401068038274121125573230173279733719995936252165110906053616880631604846399684794905050774438287321057517034535903759671393296944712779595778918708905717003088222175121926558531712177925780790183263411235087458312932376831762889356129801218847468837651176781993103230731508645247333833200919617941555028005545301119937469064197362503008784927940573616184029172129072149292497915229774442080308019500345510914975449361295054008026100784585129322166253266370352469493016688449520154951929996396683533514235693999946524418059746723229130260900274759042709349171061866542475455150760775468402469975424566022933853157121468948591871240978283973449342931962332118471138439745708003251532688532015865864420696764675726950125425375806120803705133935071389199313501631766657322058763596660376579891864074659804492499608260206313966968175605378829128934415883889114875282903597589435966814624679469911265584236476793879772143732578581864316650832796349623226277363013924279150506083658961107825116755548735413711162500087929910360934013958729824730751566713082156723476503720101937244047471134738537734501695713833202071061034324326084469010796594717658328285446585283706801585533396725151589469437166138683673278342586884544285902493867938454941750505057036695961330008924912029075828471555862792638985131788393994518048446047167351507046077124362148417988698218915026362157022286616315812107688280933844451109074462633092074996506383678697392276191922395359528555815519475023574035439709484123347366036615774918811769231147392063362238964371058080971374797320945690838547339673618637920853094519950606572889689987812245279012105258086512227228345907066861989585285690275312842399163976058471382117342794517640112773789446209637858674293692025143752872602545240058733881908150338538960258467067899169564729139440262096302315015061425207665640891627758104450545824658454032215203670507299002415483248952603175498748542677713905280075259539480520963584107025281706314000210202184396321808860773300054296834250706929303262378353983311284517006222762409568955706799632209371732420705131978897333424258330822653436148392858884655557539401587333294828085742430843544332581609094605671197090443626384459601024035949110482878584590759565306939423549173749279504316807687061699368116986368567146368527951230216618834750332825771887945311460255321950442688219370723057468928823895517890263502445612213945930033890936615664114219556470489220830566610615849853162577603362664092524425572550880012713711596830484744823171176647918528166290069267258607247729479181492006430983644956775029716897905194515527363564303153593459412318934108079140028193704022770585904661781249022589752428914504571152155705007042556653243952231103276582551218844288968137096388135785833104814378960167840603724146605355077034904980331651408772860209125320597044857540576675277501711488582945733509371634741026728100396961340313493691467825890028144513104432933066149125145041317900152977263729966867924460156639360632756000705282379218946495626197981486521251358987577408853794501849686461133894664110086930603684893937485975299421600789240394567437811202745878455522971986332952192026543323582824058853654835562684597416105707668134446113713514621768771826656271826493899804527683821764409387870169717234972943882001658318643782393547506870391869523625926432296521111124748258299090560155934230254413932760743349718432177066512245406071803847579035920103321505201795521205639779433651332760041363003503736028076399860218763234646488539177247035955913160611515654486142680777572054757288922274774363354259316666492118740530429958321667965653939288124797542374296055296958121350575650843769038213476648009083255810851436976044996222899233036815031874988973370323178312113096191604516068639491739563314957378588153551700109674434571922550541862999621503501110071542018539821270561094006293094819207637985144889280036686758700383888643709695006738971632445592905846546705021626653855010962821328758139275504890897277471621839153843539295586376120544742103921897723865929803530727083530067656313335566298152069218102084169503606272575007789978020260890603206366509493728615341279286352549630730181501842325036122589945281572407013904483197743625223222181707697882788767366188010025864453647596803843594469091332320671836569096558642233875396091589822629837886037423413857969996745791345207752474928332923277417260396325131784681171470886007554079818715008773066458041691926111806359986132860411971839385463042440461369699627660958590193075488080695984604265086217224313218948276215928497226779647127187224825266462457454767548129379635099757721321996130433065830582423742359979357371869430343668720524825660219194222365990857518105791828706782697051206924197720650838891470936441253018016043709838916549383512627329221499670446173211174118387735984028971854683001011108829443608763430152722328810223147623730996419768902311271092389748657641631606896425189800730154287402126401115663292130517340848698882335165167787993353781700317938810386534931475653221094431728459638420726702031514334984626437545609986834323927884769753020898333194529168306802232953369289420173263736436922299382275854163190626156157233153431835666988849873837673013816390835914453235450559895518526235217264412780683770809830762619266698474319593618850532585281822015004392901201350950629023762431420963217533578387778716510280799835890586229139152496386463881545485340364395480928846410359370861610883849491897256554518785098055986712975542980187084027581411262848047780199615881057270068379820765707062118943958523175679960957864643614765531940155774043700944501368353738630241584639193322596260087958481195633540425135293024247717430146918893646707164490925940715080549871106771601835128335167797214660871199613819603951863779010548294773265097607886645278923380767142728276798825028344019903996698364048439049978185539186979513445824245710916419114316679797787476314237143564062753666643209347674964121385418608957401302338803226324574112910062419761935192686087240612733783448950694192910792388847421018394728873302346521751199761972403571824677306279971088907008541172122937766243002800082318217870851520712775567211891805055157886650490002151468099518815988195520836293615040178469167585338022666701598269714188219849492218500549403006012778037873564615834883209325457630531118255155452345096803893876666187936297266790231448306618182596984496295866226743468577055907482042357299370379481713394844141890071219450084646326017375596580121989796723188842751090512347472645189764837205794996068178719847760044679245677799964334795241928557006350235358555111374084906587123418542574761780474180229530955937547107639971603435608335277046707643624881413910387386064375859560410912474179087796023552701433821264639297422193390865324779341782745689685199064715368037180397403587169442828582193840733378096048620254850289926753735307018153489786419754840172668007088089416501758923495296095987162302078738058916733416979608805129422154136806848337790296288913871875832149913333694666780741139292298965865529610061313242167234319900051038350657437032802019185570395547704962202497070743028032485051153318548764580015399509999155953724007946358641219589658866143008855711730649682234723526727968263164165769648811342802178214591219293279268748282740507939858324555763018022241062769042914602969266480859430778512718960695789234130834057400619782502152026764950293678050818984849650746884801770780772204300833509604080507645877789453852043436378079398353239631680468488523785669253475347601509343083791877991479230522544107683557139522858927049821636178213889055918356524953453909265844396346557461928885116481608439261214308944001215707214449359969016338413737825043478877255394621088689633792605113055377954287019843359532098280852192380417848491123224414757785786799430031193482682781430711152575027408003583841775583430385909926998642685726806756735107411135259847844054746429700100680836591159208349977956420884230583543843975397628690643656839687409575208525966217032460542800265195116075492948896886276361800085241779185474097637432589117342807751493390609202637899871882140938979740985006385678643220802201975944651396717372368549334408555059692583480077368466520202621037772117561428074236762172204779008008156034759300204568118393528759955397722802170613943469386262804951226363136352586418068668837716591465333296630437155384729851063763023841296933608477129755654046892333127256246712677927694247445481398093814900270319965365571241017073033970297335545392759054728183746742245402944881292504453203312243909667006910130512694707289527178419258656176739059198266231548738052338225500843849648315151572507673012439658092511797374887672266915560697658025102617350634137403788128088900499289866890399672120056933774935346846235023914416946185898236186754857252291843606149251370189895195978832980619105505320922096559780549766688285389668536897482357066431585157251655128465486173812050444686270313018969899983954074179730430768008832682156592370895715310264032059415863881424742318826866537166099466763938015821619726477905741548980449495992444625261307448304668567964746158194705273749958693126116873513846309103081935202182374884786405670542346713764898981249577159487495962057643522683440913001747822892509635678691881323010546460816295352129925945801220062271579156545311072377780447395490938385589964101466707057732597215777707170746496688603697414497382847718998154288363345220128579109157110885582887439860545533408434984659406125762576218971367011499432314604361501839978849316258917060823251641408861740934745011615587646084290254004181808829238393287213256961014560141880097120315307927980013791560340047665282181753499829588943148583405653466059887217679680270433617145462457301101313130211370585969288735379768496311158809818345637383769294128588795460989160849921538755481676334421604935101539482639718531693089972910375706298470677143283421803894018547083470365627579254633469007371169881259408007150375078428360979115336097416725434181852247501100695816195036670228843145066189658485448941087335577088111889299443512045441243275987698137406082278988725918642210541843127218574605910614060872669695724496579448087274223388533975931335951748670672042232304459509821450506772284101890420019900146227731284194480364156891400600899108002164749197172178077155671036430709152497059438699419270588424010514946647979417287517441700406023080835203709003201911542738181620399441438091195227835303596603720671582912470875367234429020080746276622641063844222299647024000260412635246133447171046858119102426560105823043271283341023280167200909537162500496913764523847757937552866484130121911218028270104434348612262070944829850764284609622619439969826175576942153633050976218180177247998657047862067162726580456513271188427302584179582067855331011247628360023108419069107244022933741012439067546811882950965878391293278283210201110199879580177128047365922939579126081162506534989998779897030314795680642049387439834028457478118768405739708327045045968591094568514239064042647745889674803043829522090375033050905227734801196131453923358626104726716009782571113656310311349808855165605489141325574293284936413573185577029332472257911396524519005084481225692005311176244529893622712684356803770880286973263822528397141331953016949788248536192739727173962976940358530237314072057496912704542816495355158727208363692240818342419825909273498422272528421583590751607719955968228270406111800052482340146051931886184390733799761656921081400775923166903458576033051516192956765641591225196642160187853406958312976900867151460894080419187066123113044409667077276564929281430981672534620676804716666200342215404210748886236471315144331094472445198786261749294672494632337891938796949677286488400435150173580735243646162022148211680266253225953033257066537954297144736405208592548624745443812582840324386044493399403828718921983665967904786675674169603206357006062407883816630772872481444816286504775032701143141540039157312151028260076750251533509544783626087937449961677924718871869002219789069587804028776175484362465360551277080474715658675897840327285059533308916827878926172591381379332441468683105138494618061550281984397953275460889449486782613695618727018977043926082478742970786709969994320742752725579885667453082613099765282231128292256628591759794950852693436454327327925833345736354844997420704787099987780637714493904351683316568283768928716175554261629723159677672187563996687485248626206854817478912292586412480386136207110610027980221491990348946396926038208056005299005874855034768787048303457427100775263771669950246250642198580454013541882228310812191477679113565367482668780676358464266354809611090092476327107578731008775178396986747131509240113608138205634543736593302043431793656964712876217928659124713128351684741865195210547155713890005357575772342000215633298170648455678431858289665656984353964630637721657158370995232832047098381485559595563958614510935384470572255519188420775017618795109111150825899931885228545861126315998373010658452422642231433180145423533894060846045804803113399401753936772174284788050581956305958628425239184774938179715746831478063765172162971513853204251176771221728412061790169337478000305905569963201122372599714079909889532955635341429103380051968676834672278905959190215890508738969910607852988379463249885438259056348317025788694684015673252813160673005190605701606182111817657646569596896581437634214414006998653333173473537754056807399871533251324285660061230023270952372584221473098372681337643652078766943495229634561933977279562662507945275571245264726417631195900010195037263382651708724763332715954608433132648812159219278439503613454615716789802416096222437391551506709847948697204405203865116137036279016672444872186111903750048866082240603482097412467275633550307691867249911724526259298433622206741669786405895298446553831710546338483873282019859444206159899586204235094829019392713572496828701431673759511538745171672983966571158708679760801481401901115292674998686059993789757701712551657949326123374791533826699088001080838070519313301085513090340428366112463444878466381175665911333500264701611901627117752998943000783539921627187541832780217408202576805830993788132424371749817803511691701534015682643752383979642963676176626136953435856766586238299607595709899203788945361835577009340093049938613627415016255574769775298506577110380163682699482230764534654972517238643452926420262856749834055753929187931089354310923031476186349713780365333365801258433445476077919511311757173854524165329032304207799337912513382272392321631230409877265412543026270186388167749654002310109928127084071260955577215105230233851798489741100900369317549418144973309213141661025840669245019117220857372317183858943344869204511012632822392830719972384360125758883389576595836294250346773678269614399169007636944571233173173275362486861211572313053787566376531943732045116603462155290778372876979278224262564942298201035790793075359135512880503459914318021537537681332004067146335323552005144489287140152424074833664078327402730759630692846095202660765946173891973037544239248390745503227688332300137280679133844198946069444678568873703922722186611537385417113713273126734077761714534239914159065815638272143734636897530995326835167750609332188426967974194950725056969121066669068610681540131548333025535043272186333091755674645174312993460358410018127853982467238866224735516566050127751646041621540386161962709494315536510834929754469652111170764715111869960147595021217709124309176630213327597982096100282854550368929254054543242305839590174173890740518098882201297034523860832397451279817660306272980182570614891148399586229593694790011013599050295989735234197904690930004846713793111092303716337030119860120811661890932206235280736171297782482473691020943579102858208369857520371024393854159909395448406242800984788148933761843805901198488901751093391759272222351286213803645640934054204004715064835783121479373441353668292503764824868394929327429364553777406439884438425942006081480718116841611863022697623581810707434960380186146417360811690963719742014690139563919603611456971284206137228089972261285064530854040003297860521987206560677584545245315173411958746862948854204578488438991627254050744039962275518290529150421043369718281073152019531735724777210043958213997710351248342739004969821671284105953439104842826403108205636293533554286203957874273462752953142453937965506851685957229324560396553443993135712280317151864972035951367856925134810758780507105610811056527723298542872269166806181117551274017947258616048655595303772371162284273277268544708212845937389112330034093901772411428367162739966617052150561501586483844676208622512051408737108735799018540039080965533517831969749418442361116884340400632336282683320989003850510991953832705085971042905698450563069858637958916216885885176378023099617574305748051827318042518201812598545165276105990027023806561652858014243332702722550261309228027519220858556696941535874328601371984255324543151874260723754384458424539426686267305762400671303969781641581572203763763955659868499610685463677962430021638824886352479758925328021625921089496029002625931609088595861252832601598058753100325792655558015480723549495034514415590993291700122211444817627613829149864418722290401169143816544966018368466209901643986892934721601228130909531307917453489717901812792923252232295316062030730586178583618263691841955048715382457036267960948719235711503813630359401555934666770730285492349551428291362011209377985637423633098861952545275161301261713968438801432076079899506866992957982389230079541421760771663087796609363209143707223865329859208823927251689753344131983173280749439857096184397688930001500685588645630760302185752355628570818887373454431519942333613561993839677952063312412976848160180259215311780405449680760773911498483889526036922815430798924169036553171882470584830909279783142615036630883803934332893067197017512895096481269060484889201231757052798431581396050493157278656392899357958299655676894630820488804506655802067160675408703395153062713402674754407496295450036107652837885936878510301631888526099273546291617143563546504106570606670990943501588868982957688120343332364076738618680999974080272466272992812366333133885275739997800229846445006752512675889438899260347737418649720146607360772976944590229521543964804558057367686245350277731503181326823520214235532483272501536896356973921496748611089519478352840854926358920441743179884170882373964743137599947383889008410586552802057762799781142693229665132935302777500786660294276843308973518235724113770784122842384404128256095884501167029024613205213096281053935411409141432611773852021638617828854624889694182597369427267308548805601149104557401017799908694981095332152827917839658627520515060815397797733737861971723743060231660572904789396534599859149448641424793820818535952662488801586868978091482764173665591119207699349002052840324040191599436396476416061464269100850553722174516979328449729083432255146466446223645537833354846069877408483947030398529910127946324922020410380264212108147841352779406938099829931108215578418492569442229609450839718543770388342587183814155898836746879848023986695341942153204173892421646809878634971499978088861269291884512282814367601743790295808710505640876532245408348217512353944201147620099454905071616661398633203705342667426385126844831022883696002151003378354062658657767684939370544179401573320918657067349465374111591157714187258169528790901288295483369572834957613691215316776864096534033978761039073137508648282522362136730605494751743290777454842868739568920728906616608094778940765366638116399657816836016949455074422327811313595346226199164518375226946368473111984942806231316699008081665083421244422223714482659939840512809539262088568121344226566125479715955186785120125536463984980305132801412172758160878336956031043614457293441263141250177233817372729804963095337233210183149157423555383408301380596829160926903505025199199695854536072215769482841839593239254162434258652345069116306774575673615531475260596070084532742138868264977008801056559137267010212874779504409300075758655475547001281512445878266458976554284617923044584598557328111748195922874145474340673675262234669159857564784478354691688596155722517980308329734826246455992862249362194241887665031410803240348559825696348092139238287898071007296135944403241272761544137647162451987385393329894176339869487714830757325749467029923453812870187945710084426581987103335786662266292212289748789705487746955633786611537102525963247606431295714406123917279518765752607470717788910504470129309306189206602800646489306750683048118772110146589472496691313076134033879135581106662027234697233187844817251202316070984939718553264970863397357323934917182931623566495989800800847417845270387121118115690691895282516935597140173897053690789963463381791123688286879270000894601033236196923460195128492365027761431760170528536865808306509464347415786633112621055717785580687167081531684713784004035396534731164065556128739609163683480784012701260381471804914571509842009931533594459081472768335152144988135589075247523788612852230804834263279858995291558001857876025037448390647791394844636260504032472103187298719910499618031686378898290948711443551997900000574944716376974313733777504941587450906197648159992324665943782302176602610613267793748058415387132254333375814000487859778429337523204654890491353239757505391075223225633173740757713594277065360306562866823903385133315715425863777816119660383267854971235484366241556241980137142258724907236575336612953016213653511339309085423640300540111700255230407766238759486167328091779805442283709313972601017235625054407917221187050947345935215447946757820464989957469217617229946555734467388140803141889475833067402199905980285855685207700198424685719032498579893718781594671735991473831566631015097691000588729042101305914658953133381308682820804135379186491296841990364267605203615665200362665498155293967924714563388511882857146967751388821598044659075274516762354002774063183126003330212990147964422632926411192501804943750686590907354235758700574685819026913183129380552185787103037117325249270547215030884443661075931101679326579652792933271489388208462637983805798507187350707054077712858490067637317966005178944473809357022575966980846188551552786817772572555993752226063923728744096256033162647186899272421284470803301305791928607271177761218538357986594788081940866172897127352389362555487822124109405818466832617262086065783668085959664519734969816616306441866930777793765649147935523033180278150769327303051682418892371344747636240031275153628598244000647466479911123091059350116135439291622225270604083577277909579721692805997156338053446889086713975892233792719333621796900145956306870945300980322480537701127637936543785232419083663617476778837464251523365170806499848034002727172060390911510534640514000011218821813339092093173024623982779697488204965529965403350600915486348128000380427191085618877374645585956617423503646639517878545367958987632569539352571814980209880467808574570573297945932137104298311425436170919974283042503785713737240239214758788812418498246204879166222181638597174582893854636012130446262159109051653083678680360964745762089333589676841797975920808662367531970340353290379057550842081756032834480531529915588872664459413311068715560418915904840518133080949797188099207639859531065814661366916894247401749655455049461549024677513696925625486771616592182583355787771400950827464909215668989075866356779811557647471172580798848729101138824508849209275617798957283053431389887761820197936207043565038089036508491143542287149984210677028034621721100537171563068477901788375778372641273746257500000837304766641257913802145228026801269667523777414667827216997386949617525992949107921970374127054127805924840557767032457310242681194141311572574289048313909744122924956978645569727445147324302548102583877139299358230189469559901263716729037890240393679059874304866259832474329449716043048821521111204757619079250140871474315148527857034632270349356668482451779235565713896173018774996144879948277799327298337857104277654593465051781949686853291981914801184053810227912056462726225220230330073148353953064625233957149986575306021648146626258130783522796447546197548150713020222966947225171869406444599300925745121267927448338339630335304733657286864664870975883590718669252883637025697385566427316894348413726514908304659494564179963096439283322835152030201866243409016070765638275445227834032726094070071940603508967564512084193059344918832144153819082953338829786254007532211684067994354560831262981725945204385441865482980116927694834115829830199751219442056995413743263237471469611523984628808754639405216159086314698220956394237050475601865934185240683068600691501379103345172890872995168014956616213298338841935592635821536491449896231367188963244747556423205244156674734442171000625492678197803892215319302054676544727991054095284588699913405129482943133220138324629838072620006363297662526492487317701533107993307982179735952564739010190989490519023231657583483988502220088041106746575567389556672119442196318626937023423587190316381148171387199161216200203433215348543607108851942492033453357507591808921446694742305892990680474213531179118295139724657935944081402005564559248873492824553614114906283260378599385673799507199678264937936433419781791630500885627871370260599636453461150165544944893494920153785800289963981507565282176919153443717752091393948916719463296776083079638945162821942018927003446340259293503479380810916457855362577655000022974445131618894375872656902751655827502783072707982384328282908415415465522097188499538903744702279624635138747886450074428820110496029244380244608486477062223281211193949108772902275681030841696310058779872128769428154659998866079194273087672088754636327745400463077583593023408988450396961002778953754976434669376894496315426585486058322855109167140711838615441383012064012775844311452289200669711920733649423307104156250504676630610876720371700420450134435163088005670166662689980100976186843078289116916216155288609716457705348862140321237122939983894940108041252396077822790105344359694381386811625867618090556725003455325602321923276847033275609471803067817480430150063392484382094485590551894239457367944434552321433182481832967359254691674253600914548385055153729347813722759862320193240061252245217001138462202602977661212514625135239806924926216930540898880983404667418566948078943400186621791285002037542922535519230647948178616117442902363370819050499477507874468918951484244847630683201367208524218767683837511767141599428773830975886830317998807705902583655715020671400500722174528038359522766756449816861335916715676701934242726469610487467197627206736919624345552742571110559490610229465778617074076756832618212905743105912123778579061264352474578836499276490821103180321189455383061089538395165014197334327673060528214003022860299153436404314784876512395796130068289369288510453642568720377581178512200079034015242947148819521828509327822058403165309108416754918172279057589917460740232252857245184318505045548021754600699798697498025983913519677882306511270975729011607110276808444827459870571255382197230563811516853597159346703474417603101177484710135344168606028038094654367108698411092944918003411196069704069249715614496435059074520102591115799622286199044864166570911276672920171061283521251551609875457984950825311948743130611567458418867787177042458592192230928897485801645741105640824885741971046437426070361288776180650637556957650883325928734458693006964112933283293749858503977091816900923936367684710783829325250414290939946157565716304616996849078448100143448018898532766432385233594640304976609037464919937011389202729079940202718032987122435489663288401895943934962722867315140572887024321046607806704103649312881607413569687309680112091778962162093918158027995171756008600185527025033010173452912132303039181050143008419988963268128351871733944935977432182715574730797219906250646610648476506724953323542494421301666190466910672180497349008432391478589885183498002105219914504319853606392191276903155940303550514928240594353940847042664509005057124923512907302976982970675152864899673122075429163154567695909052249040470718846510424678592845258306906742086979481180499259454525788567567576387377080788016849015599503514560066048859222090811521814590707287330598910973391045527038922911972327590927071073273997250582551314021671144429354521366531832396754244774253795487644643292057155191642985750302188822907546516481258562421768823403134974260623952402925564011459951203080821551958130722547773101997070684996506677251711976655709664770026672510952646099616783941186384218030054008136798230098586513494228841018420453098289521111140293269545073542525263327402893434019413931093079736492028764788239961753989920953851115386802918855077367957412497282118803626318767488731773757016842280644862246956609433387121304130808382315651538680918425662813509206007261147032596829645880096003482760974376078765640319245455136732393136911076961603850300778080024669456368528508532692985391655739410191573311740675489519588531116100340571101995361036438582873406476990593579464125668987126525021723600265946798268030587037667020352073428944905068522306380878430915350914011744690375620079801406937922241431040501930413092561523153331724770408753503093110534965172406158757231105793936712913406927858509169408475402445141512348065075245509556495670174955764422806868404484322306837924566337438434511797080700350742482178525472105373431933398158588550673638148831963999676347456224953810924471783543521447921988072144110579339590418576249911101833466033385248461749193909276657278039497550376197001738155911368539442539465820709616237235014190408208450833175058332788860103197217334415066666902651100268836490203640899659066442775854320643405904833696277087088052005389391952667123178071668526439721574178475148758807128122127566087584898620641777478794439048808280403424868811364589636103847189651418154796905397154047348287421615507531656933482245639417967079913615666208453461877929496395737524985865234489823835886175132209117372457861919696764360156054668485767104783612617377729133052306468413230398583432057822045085180324929655003071127651965633079177254469124771807019309658081172772123471393011760002807303339327774024178127605049988637338698288981835448001252079045651419705372659010387072243768520153889074735079424781389478118041092985549594009344133553604114096179620270778613338663008395778835325203566232666932251923534652490718451718318344447679946166201052062551446350175150500391108169077574367215085748319100075893191059177907358369148232752101960912616113671774710202210469025444322047356027710961499861527140506644026657149040632485089521873125918470842977102862884304186839215797160183166139335385364442418018853665924313700338253870085682610428085008492567196042790250475186344374413096931801909212840721557526183781641032419620153133054120351372243337914214740260745202692670185321284705795942664986663150638147946824896793857619999782391783847501542617994733304360083347032517446697358734066169976797183467819731008149934226996936504686046650342432938730527426629190091529351926646905663567162646842879933452873637917839548200790712277055958279360831822167855399397676924068660931089377823343101415198208265795560617298410312658290196025172432435029401836160629018757134669575931721520084090421068085138706155406377983627542606971155755218761717666143769400626196413648423087417163577499720433185351349601770014391625543320018902441719748520430120520817060243844901309672629599398625943253455102330185093648228232225152502170508933910934789352589189979208316883826967209825141397473535076586036956562061757591654854307478628019601197927855077222074357733404053123360396242725039405017511826618110083263091150374079267561129232101478306000969094399106453085894736939994600994909774974373221596322895291784509265105349524120373341749935325380014260743969872139606503100362806764732426245627732434655171899889553708751547548339098779088852126414659269898196972785126657261698839164120641102676813918801780974392867575200672743403004864699681149294707362834021394537017017148447521329173761397339011958016000143998402134643616985561442234856230221883612961230188088943867279976131233471880891127473120144607128086683005830031515648996455120243167499460010916619078767029725247687460440616038356929727539264360389077121902197766124946499703272411074529960337624664253209364145233438186431664517619054343836718764705169569228021786454687839204127479128053255572109433104962839437910160332245768397123879986188672802819453579535567413764940509998624178124070947248425691795892942449130307664770677549995599010682574491147040492086002843212293585001455552470074524755056434188085126928341368023866933000816442266212255079695432819189506704457654279314786326809059669404984220039873194076473755146851753553308603041194477825213121561051107181549298417390858292626864555502019447084237694546920891967144559014382190693128533859018452522793545500125468556697452081696106336328958066454173934302967394869406692197312305491034979837215921765890329543919751338088030291157534196901990540335824426911583363841822989739810737886528117969886540199717938954352671063412736075002526338697866265547969926236158940016544634843388684348250398431088601965802385050357838201974423882771486073596120768352378650278403431182183109853044744447094725900942982852044916424486984380128596048400259349419006678407863654304347133290218657924608040370325833666302919815863207092878343246452696413942171343818798652508907596545324993850136030463117681951715838920387514944301636121648514390014287727642094152510683739793769343750311824801328893871981118453713393845812425150844947603268742071928242817501196679126451713984091580888187817470354596221779451383435415983643251495820568234489768398971786012585016289271728727628375061970383811236737131007888105942457795812831701904281293173182013896032785745359712196898029626340557633094235884906061495522552332682087520031536427872259406036680542951310946342239108851722327947447335107550732211126358100806627165429002819027085117796820149953856983655023037830787680087826442441801170688030495420959928346871421278187027593339561955069287566182033331334803288928376758682786029733274300330173345275016726321798341267410687517230856870510209801200003349600260923800640593776399187500406513648805308985927403976059226359332506408010978112370373797435443162879567018367533454039319166330289722407167370745325230327587586758097646007958951195697749725961950761473779195587768475560693951248823632126485263421919591071584281108614633542359105253430841071159334290807498896410446555425732696348567131538436644103737892014072260263153169546065180631466398428072766499675038569129766820617325945845352989945014275247303448790120967289773160220718283999448354123692579665429072932500917618589962952636768481503786060189147482789798460886769909361451726547823609794002659029384181159389763942574789531186225072988745729541880024805780657697583537684335726888366612049703148560818381770630592885968934895607195756203315113709447572059180329870173818955216633967267887061865655387778783100633991550974999420378278637260443838920132096784060938165634666646932158665445323136794311506240778848369813526812964172784118352478487185981513467231295815851041013970588872072618965826688770092488195017641744861621510103913833798959928728961088814186779829156693269179336983171985156302356596684061025293258203138191375369099753063697908871191297711338075167833061790481532482835837707345060118876890967388997261929443744320422167815675656092467644697285950381282353117081460980527113584717408992722311629818156746175860235896219760547008693573215770784122716345397104543058189299170602067397624541750705052071072498722297082677107679583674263034075905041757336494775786722747493404250598522710938473955781982671858699073602329428258800660380216640916012715316862521424261439601896067502085661032988426650252428680154635690004068665285723869265481560508376217643097773685290366598712074668368924465220765591434910496347634371725277876832292957050297316655765506519645031374902932413641622162620269144695368144238506273935221911773500187135357530749608132210951392844846887404636473750274880548958311649761365442709059511216321767453634794773146583327714400260588600365465212636643872086691684241003672010527188211907741658294960464083106378869766689563494159717154017881807483273281414770975387504405455981360301905826218400411046367632261367392938255106490026381625511525090012929402469597183681889200024169292440983891409800041109821369205100251677238417006783260587533213989568392494882109428851272185598202413298621481935726014789495587369608555795285590222536138843112259162586528936813948566850807920987632838913015277071704955936526388343127829148099360891368227025829028649139330733911928603059829466243971635435800137522004457233185277984087423393064794507623325572726909991471184420758541324916797468570596211707189374413890449974848085596108536848350709267983218554926677603887491743609428690268162977138111283910599977123925030460195257804682875474875985818782503470959284296801460682389982745128915481638164919630663005795991263700139173433839084186061670430777083724182486293193375300984753048724881044222400701852167861406125468450328495221043523649336914994738113543585587943232479451732620151347699184814898825964608319710424576532848537848909989495683928093070965903601203703449973914178099627155942612738388243570147806899635024031207051379579772071786859857120532671438131795137486882703760300650750500641130678217677319899826540879831318672383594179504314831531011306374573573442364637699171260864994778038211444006550187322994592676010707672965852298662824770891510839428990227513180794770567476703088888079521066713042544033129882171026975715341765201747088224906973439812813668003044720212715606115476351305427809944591422112254733926525197009591632489885460574723941783674154787145870191673813094095758887218762693572283365182034931735913760463034453929891070853446773616777017453624613706940719875579385387890106695069496108538800491993697974736265779184582217070494360642587556528611790094279209597558296288433393448289959769808118513825964613744338586554481039275521691659911657775278650855247104082513087100145103053904206960833613583831541913000562965195946476232483368903592615079394177878992967907384510078345207279930514369270092193233709867222972620161174025909045957887088744492784202666522723939672254731928201136822152802477060649129580663046320914269475929665318078031536836706488375940854743739177481390884185547496836708147194508568675393421558225471979703945173521825681675688028107430119377779332034307018643362021333895331849025008963399155621402981766382599296557509368231931529902740425587839231237654597867254031262093067494323854680745282929097817302542398488293114342524835050172848679498125391745621694006115566561721208208438980403424482598728835983039153957458198030568135047950709461201309501684793215017525840646189794790392911072775623508626923568361650108580504252257216312685574351064720149759152821899342930742355480676706393455601906465158957551333518664129618552160583591470622586680291295429398666117758215954954494261877839163217619405578334008270171383204639595322191428611578454831114594824228200179569305585932910922127363074011220174527817780557428904104417549153273521871950584792084934136885473624266863522122560669186683001976965924326992420936777902369397127934705730801000050048871997865270618895155829307431254864088159905135002666362868032244271736840522648306607283020087407448662341399220401858163940988112535728084324185443780456822491964210675515606445703229505947324536933076579678529537637305478058357118942973985235049822235293513442094224891788216766201946366325447094521785982872734917020091295902656719891710640193557851565692902854820456024107432473711107331833111717500298245770508671746085440579860971885527544687973300818722998459315460941451685467003041038104211813586257899085144403094829753761615313398220986630377825249805420139518596654837490430690087708326896025367315320922278118838058927121098592645292717220929522519920411458867518776788727855651294256590621514435263714911288673864188054104349334873795773608495693565300087480061742842019571985907564869288942574200542278558123674648200384372350322664390048648844222436434348712411991467157657063974618554279965629924775528022236090428846944438714354185204581619317535387857372508968373981960262099120056031578796321150062756692326936612865155216457992678183420249209715402957246372350601388066931746588079918842900660511804858219282528778954430728039744585330613207689256686950307311769784761792913883672247700185373415480306422647341300057997072888450764515650538488935844489088507194648027124863878258637117734868027274716844283477712829180576804899125309928166033881939867700490204079505280754225132615374294168168818263087186029664403277558714104776225871864947174572737742633477539271093608997705051312320641886268175807810721783416327640905377878967416199458583694835932086627863707520705298721155470667579204190758127381674465468658065746579428553423818395212021296437297514250537920341530475189856414097802517034551482318520033177850019829394292618545789236977213218031034411532415666823082057744732215571174892088427666819628939034587355767723705437210165728390239416690443784151419397058135233162923267526122820462326134069182425921292083645342536944711176640454940358688022758002371892577581533175995777055294348226115520056656334677098587874789591741815058564695062322696293022942989139239109593863228348570407489993453573804677600536438539914742591727425752206916020876254920898067048791385352197410651490239013546152354885420799098996935170064731290901035625169095012034744918372599384035926969995666241750969187609043317233907094200164119998322508421545195920343088246113126690668069431517466832415450021164882209802746056189499744988926192786921350915129028612055563316553799015139061522802521077478637949799291750050201288266269886919499076738909120618649773420586719051714892962576461182650973230340408742085860963911896882667000710333187377437457305659738350814390578142945069245780324602492743731388096149970697496341238820363016688265797959911308575751164015921433875392148750870172265822286916458340711242927767673257783333755263211190138523285537433119485958519016160564976018579780841426900423724743786987649547796563377029664186468909716216761812367718838251860551802277274881552300940073398579215093148678639954859491807766083133966408837809155830603065413229317550595305745111897575938975312358490065210137916460215877889986036291396258437599089979514213569093411035483917288769610039192170844319443711608446770956457990466441202391317071770297768669400348544806811319078194556163068320274656630084847257434406424919274670754754026278914568281536676633326910344168278239218154146296600246951225900477420725353008477428246725969877043829066055190529785141719898040536256748349763887646089416755353812168116123268676777524620211346668900586021845113137495768961219408367578690955215990628665336586757770334888244229961477402663350698912368589806512112440106792625959635499255481911942794169329924802681138207530011044148414720996871923949764814878746511980087029156471321300642234807008109753433949936848052225603650390915443302548113491017182034656546510724715529239632737868641786956841967518086849257267070961618710932590748465293073973747083994787120317493018876323726281272421542607216115071125984036182628925532187719706293703266233126261834447614015638386334589035114630184470769683281828861561149789494096084326100856848202640006822610271048255880178058888906999420955528090820938280944197314856224229769449270166560640614357936125285346016565696002257022110164736333300605156711032144325983197127462955344513180450783749941992836630066969246678261512121491913667890957030207552087967651949901415551867060692127400967926742608208919731058097285259426762021527136427244405880172543074436458199673097235359306016341641537635396145770502992973854371611431570918401090195505482581495723914226422467980728064317576545738677445527410140447217737734600225178924374833598775099525055897781958015672603963616058410621441290771597149896412178466126186799184006039701509101050598523219940450389456235691679422747419986484192809317346867183376078729695530674002174157359225241316444751273223266604636944804275457005286402642275590374424979127981999009403012085577880553194939507576085972149962205079814630464264444113031653186058462486005093607412628323103322124167365528205090565807189309128958980843400450186857097365547432821522126943297133175315522734840909534007087108381089197410813513146013949678839818604817307085261499135367733790499006068717166748970138393150608843575460772732841516970541179895831526513248056232563390524346100793246049267214985547023690936463200453732368481066193848726590875332168437726560664037385732497324512425487219631394702973665993847419648736793226199573657304096297772168373169588109180280235874873252328949006560925446557116996988427529122023862727685084212607607969000570546731549370541939177294247575383613969649259322100168184739397409805371482287438860471836205930024187557739560278228710646844623271682396603625357469798510817486299391204766877122451208937156935681743125408122874587050642183896576083538680805210102001918279677995087119971898770946364876177344416072690800076611837319053571838411933297786563617665527519176484643996067186635901522147759374708233420677828072221183904847942414386735739983036848388167516468938299326807050219759547732894587535967229834002112453741155098384185925371485429516952139471534431189477532468642523439359069989906738400260021231783587934256659716536557330032271599555790415790694032717106848076549875708813249942412343682503196643255529346554967736347701790872948326340676443539351464174714282457012761034578616981601470499365077993954624342011344143855513997463744619693423452814979771112165502780959418052756556074667442073498901898748309599625294480244900536282007408284168786594210404801979949440239425464703266333687344515630630328177397354214534639357971140844458564067690074057407409841807553386380182250689110759274340987234397138976314200779329984650980185240606725703324402842343413040471502716587980963887359849454096255547432491160902186303146295341058807666717518515181817683395550430673862400379653245478715756736502443840944110312364783953742574940538039999502037717138824887836209203988405697916740314131392242501652983400535963330506556647278874117408864764668691661328217475120032339340737341983248147718429929471027425816453461348126254181073168420685772683628331152714210086685988160734508669469950449717589007582886595123401292133342807374084998739700530281517022874499681034963609199457964571312579327282107345932771048029732670361686358199239838197585280853716769375257826821934610836027856248428341734756854415889899675586230539147556921586377023098333285465851595817316859466481291193866912290710439234977920340490125437463988781912666462080704478062079093052777076569804663650230529177285007486847548486874425896262931507506767618891767060722963160448475579486470316295605480816557164835264753266270776990437062402605097495653709759461916919339740236543570230720265043019624433714795046418441523936220318961400940093932182319279804343317596786779485742988147399422099344821728238931823509109378135013319120355661764364770091146534318676712392960243559143090973038374193613054447137356385901073669019111278255515589576754965782335320429987480168291834369021359798303848551552893560245520851394638235879761356157782278911901374833570596975574699168000648905639761625111217145465793360466262147069622279305018911682141369623808812246361087696092249056552424520287862202094092860000043395508412652803825723025711685888547814521879650364274120300537556790136520828663188009678097486947829438086806117573333434440820016639099707820262958946219125664411980809348004702687792838167291909620216552628433320857063835941000728741088198687860943073398935164854674376397098105483151836536812566125220554775417881302258298810038323019777028843694710935487165695447922504217595039102968485286880020838809233152670265570372522186861220692746291029595743628291208021267388103631232500730153993204434782216348072109216099472765478119255057922204660626084068755695544949315209016527159682434622582696857025149775033043712006000756139414209624857472704683065913586851513190427570017229069647742784332333925813091955219852178978271857872873667039317923504230960205658119004100959220110838657239432901531931287643867519303183446306988366261394213437560699591868171117763495252755659591955237493573907594269802990256976194783110690887207790813048925793572503784943969280944549973708167182459233708663462299465606000857796751132798223473771060299685904863134675330577903639293910220337250740194570273197886239989202216671397522027941136572043827501409004437318863628675419847737762943955512459534767906388641198933424406716274668426670810297613846930246356134216275441487701032203218265774545931597181842756942801739849632065859329743078305963500866698946937467036112380458099587546484862289149827379193369070539103949457368735183723915445916936731836864947297271041291428005546510695029087473888818950880846989927515043844747172079720321139961188053207085105645169985040071256666818515269887981609850374403400983727049658236444212693506911106462823004828231573633881776978590611213593315941135433023680015951019358739091280980465982117197917022066525780169443772252053558135830032928598105582896768340558598499114783237796940354316684017539899308492535198116650410709404596537797914037120412616114186453030377617372805868086902562891482372379682668607633048653774501541257253055138690425236487589837300874624374463102565494680253986300808573752015218774249815401006610670362194757031506531305144652397141055372670879107355583321423903304453208242182462735030101752349093610024245138106352742759662545118804630826680556124605769285636726616413867689476816152098755418803263407933142872942196179442061594832759779189399963493105003996771120452276223607184200216280558101501807615746068397361098561815450206642459673150083085582192578537760605869027526328932669605430125401113283810478507372762966156567151225496178446451604380273070332331848874407750128487654455700384973330236124343842808289616468748692386463322585253443607959031766825970866740686680280364372962150174018112534525627719336046544143285900747514636910800455630217782954688790219459214552179629873017984485940987103672668746954283739062639450784585708322648854129275659579423368757438929297829753877325414092247788815334703598777466552848433965492833963628186890253501873747110914164604511399978254812620192879938803514050094833469349444043458380668231163027756232057221784036253471821721919718121224843945725180832642187574805289788342887827751413467889867412998120287212995257714051804118535162617798375395894592464779475150620721255127057442156406348141878981092849584450494811003726376775383187812951915073652411212908440923696456076253735998771799327261875431164507949246916474288521433061380426062348691473433214172870835976075488637361884632232482391452077655899133384155570228905669755929514573609484149916940197864256272886903845260647178732007670400586915419965097329137556724623139684389188548560575613518416295858563559598352541484031015152002625808107778599636144416402844213926812796001895940236153339222763170441845414341810233467604891950277155768081810686119251156300826123654674569611878840021613614105831676838651779939131217175291542948938120344367366140317193841325768404150940521694645618332527025940842922465082691565512520211155538670404898839548552529266740032042989674177897571055487973926160013643878023603571421044252866507628489727574991887934920610944584721353333250050818378246788026981413925560636216808864956701810803069655809420822914999096689674137258639818044059306328928849036691082353004025732189665089373931446647197716656517985988115522836685288651168297886010725780628713460183564362245383738358708032126106862462103376338151806206255058450452732786769504733271889424953405835309576782766445795637264650813400361240874405154886499636528909063083401650437315463444376072436619438966559301369858903622164943457553414372607753081398588981555110083068210556573563082084318250789653616199771237774382244561524355331246709721800012136903481300418559457312745890905731688273560148071046760401104389908038482624079308471466201455216997852183268854527088306778530474002339507784171102956934544526101732788705404929896960771008217713466810343162776910880283060146037461236222758297669420972290049571753035404523656731999648295998731686615599808623430488621532894198470353323157395476154177028409025281508201269926599185793107240030857673276360311464487212349913722362308814392181093207034852335046939410539589991222681031682045481306908096893333049769253365680791619617537193022640180871481325748588693229840057196372342220493689804921477544433938033189831621135183945189435683421371068953826381128134897718988910872000424513733792750067997092469630217037102284238668742346667952877811068084837902765346089790875487315411246577617133484795301086697393017477905528847040158275306538089370626603821445724262740250306730277942889047619238037340929933631209109161239962606920874955670026491307194896765442527450819092599213678087504814473080625948362004185864355668019794365136129463934993638448039710554782187390280489445713340570412118316729871243602059023733824047267012047869430154354205563122952702159016849164507946499064890114512561845836732554125775415441968737646100743713072881538652380161838855788680132400445725127675841465205093723877213129579174745330446951802279213369018325669438696771203441249093752453261549854620296796980223808047167911624492958297764166239860590924619496861401367722316557193336062252174638956436703523247123552929578149301333318144013721375745915940682201059432697833325685266210425432087617464978017099809729157410386676817468251800093415580794491262069918063735094301919611822280017977133300470313527272071273696460612012869717886312207334666705495111977140223215820675524197225827529856580125185045645984711653358301184361697968735475624122419275731973812131731408138644447256219779734278920852267240525272397054200931784074022422728793543194186879028356165583798235240658624005316350720911128336133874185025205402230498081076439525350068237869015475787006991897760923444727522146896497259505323124691764020886058434985841662506404811677253736787578268649190028564520862781429947559771938055166935881325265881954533819832772009914335207717574329551001876555658242999248370663463491875400848082653481676065969095623074241848410739683604683715294046388800046897922051433592991096539944575136070064313488629773168176751896661058061604029439234969731599951468945603595478303801552215359787946808447376192506313938335776117828512056091206769903012885003000514016013087018636595091456258032769787373738380778377602942299532037830476838639189091967521645163519838516991852975738854382596474401736955366753857867537316494559326789280720248229542834874078273714490874795217125073370516499188466939701622314813052057408460148208275606347016794337826384634099106894449490200770499717668651845494735852648939865137059552009021208615185165248051407476341760008172079801067106550685117799006618059004283780552669328757399690584029628985377546731146457437201371880758882859975404390205726784581530175483379556252797824635681108042437255996166354163225283741809953717607080139497542904683596098039858903841664310997952857483475139292194420072937932650761853629750366350676835041697762233190052619836792740204909525109789159570986463328460800596173135722124653003233951347921344467035462613414179034080277184197808207384303830509893219071748994710741333460158260594812279161286538970992980094440675326775657203597242633018821650484867876813803847201486897939283114121164011538313573634307837138404168650383142882507865028399741996441255653704938947462744916491231336494169790393049159198375675470118379022328733545313196441567176280233063552440571640733129782590539823841343154672115252557136827125102802568234036566874385609536147102858013904995186278036594227619282348486584199374642780172153246217359809921944891449642025741032856532147294085095689549398457686804595855517457909538230992723153820531139297018408570306540082499714529990085786523770489672782561926801396860650991829669205528963617015313985258953603613934029429999849624859787391516760540812815395300332693418866173692620251415870062050487494054671909406291210751782553966522898676744274548570757929151969147830283489535893836901193650486809845881515576114941940645888706729831431915639023862496181026002653033856672406404051689952393640078170906661302430356235683297027626823141246407175812942015721045571941716822262884020433666939766964473403753962698887535410995177979154679835864594676226578860954231835522549676719121494837095198261901751163224926069933538569368592722566839930932677088986428468021285644514124189503872927322640400806919521966974451330955366707734764421636443744841629240101981319328921571452030964884006991760347448529464920403488475934382118432994620665704757831798292815818533593630764480064219492733704266577206556971967242318406203571172663259938299959136659441158326394113243060482890359845826873401388359828428137025564225779440345904681030622721572349094698339711129916144159641694522317819461586165282824022634426015078617309153614949115552479862479116080454253357878436809214214700929241191636154286415473599797390692227835169889572044360296515744795797270102926056277235643361098667152324846004672065018432047209596468432728711611190343116432381406430060961936524741652383814627137525643453452231921456300931344803008589685452252621094173514030104727136059043902115395096681812059656318274665410360938763030045488928617345917673945762281051471920484884426360432901970974027329327712493892663494504371332281328768242895928914163204734040400811954785242192700773000003086301356543616157612030092206538380898362199623257117465245777013953467621368273414318932630827747511308106417281823963118047195590240372381092530153465439063200860504613617549445520773832529353068896896016860189476881877877240961284947520917713068434697718443471854767547293245978021160267743629625104062824175046251403760760387767432352705539535646446203370174446707629214062213297790631099394720732063846617842905296431190279662766404395902459392810513698463525267631602206346186365207206073646509525451475535042284190686756177117191394634713213264278849860792847056478203289121916297600586581328274680137213669305043726143720962410622637993349381144862992938908849197409905767021835281084664539992920680744414915187599445099922331224967530881186762452058334916839744915643573103078664923930002009117759842466138385867522545755234933388226903016122174990236142577615657563309583795577929476433820946485777229822133829617151018285891905546829653066673773884513957721738181891821719909627382242182392686933546384183203040724732936567430610691437096200232733196668102629629168374876793410068314478441056694121165025431654812562625314462781611444772482900132899806614494661039260442693614103842925811565244464576991469695020932872980635545376923243975362131407553513147376349450389976496075408969672681446088413813447794401676957936571558501664284291683125319573679210298545825265343546312487533598616926110023990521643347444645484141932345658797971158650547885186944091423289505309172454248683560582315418391813345071345846117401175047865648321267308253647584971768248126854557235135681715043299364183259049875616206355016266223604441295011277037606004247129392410914544519621601808578642730652695300954252373249822448000670358156746757353865320443424115479609764686041348934617669935299340060000687603185818037296798796639162167100505744558382009316202137437588505225127947272254451924161083848562110028271662897522887363674383347631975216604632024701440683597065950815982614187703224332815804647226499290543944787090317312795424447158328870227021436092145972016402510106225254449950101272615777817318336144251816247957507593650916953701286560379026605386356855755000595180507851892010305248048263283439860844081449347998431228317933580805835212100023124534175341668957199277291730622081743555475400123330742177507739395088259704217356511835164278005917056655422836394776739626283696513853697467194391889964232825330341010212537905934042524428344606095294345802853548614660986037461467829704739789865823719617205453935747172736166009143493309816556369078879892586245869072067624038011979262466334912007723826739839339297075976462979018452785318743608082953531526543833286273516752534258550425471771625728231006832053907740234560466939831263379638232037631373733864471828797201588609775896116681744403044662059594563212331560090186619548197603996734818098588486704803948766789437882011848011773328077674046228159127998115380415563102143119580937770492701075619733439376918309484023826914294807526433179794952833321496136599378807835402241420238020792911032991585157113592541221134231639467947865616015809128993071478717497520794517797521223343723473749421822097560204789690328653138667776137203357436235284739448031007527072651285774178172575675094881006079909277133308853058576991397053654927418075768357412095853366358659945488425678618916992398502435525248417158278791851887782738455890921654955335499635524856410141420174283529410785400915895502443988604495837520096072871126921941478527940025694284384079070911218833660584978209049819418132581103866508977701984260228749830336363875849392124054116850536522536599575340427173654786897572858632480381641528598677152011449371668506927386608086119866820344882870895029731091180654641107217200888104198694816186005076842802404914782074286374385871215081073179856960875233983255589213431548235742971500391029837930149458280484478822937498895536725931051436789792565594036659084722634023226125647871843278550746269458575963651993142243291415335582959427172934055000780974300431804217277330612131605474512341285919891515651364855880785270484557578533866023009871128055565155836030657790563618279249586248818719199180095924584942378544999858610904768788218778007111036039552675773682739870295391883955594900082122629927765961372138801940330746028743447178007564377864973889537886881226319658427869089374688532471858780156340254506093675692631619217357697523358114263941021511694703468136134703755208071799219340127721165887263628244995204625702508121484797845386647925232065476643569389386171545376466962505823758703500862678859675393938658673666553228281559461954486048411224320437571957835307711178970386311965744521198540162366972714198021290506915069902024702790454983426566169299263773826582300230147094384730698187637085054230466089605375389690879715635348331209917234161790921378056353567676844589762449483640624390712890242900521852415895350472066735478361105697761876433840946119675303561011382031763914766857861432724243073985059318697556880875037131817363604524124193689555791121592769333625224622978435040234730106074988111846937054780445724541161080516625573384469814638376140011645393346841972474418182174817754161827770864661073349164224909658516349221761248808583899544654947832059992926792152374405526226884998694235659035387874621842231373163626885822102540183659309222026751819449813965305957759765910579567096559561092410968877966303116758784917529031287742091071174056116438879066608391062864232651382879456350712141006629274089646578579777129397704681520654388800373674971810975549595410149061207239992325399660506432753393470020623124961136644108975479902797591655566455756633114733375491032762077668714749062205034175544455944030935159164305474942611468564313704461356637294861564212927770192358161527145763795550529670787304549020183824199699729887505538639665299726748254529753845821718746240086320720850092531972150124104101221659076193533580625540733444892140784386106905056641692557171983976754020775728832460713709144307064673159556595221891101439616505618133404929447219998512794887141258615607768367227161537603827003407307336959929159744662359124036549465038425807249904236019328975961186845694227272267787592027623107338566261343140110771709175588182303830494909804266687787257135656578077456477769655543558827572190868283625387837284561395299444968825995446122115087331495404323067975653612497164636323104236849553331107421601718067235435323982364938556377146737457470503414864333676497364427130720621630037261497027388445971573367079149969221661150589641907658197739951957451408449156795771824589652385498463216911582309245065933182355038180385992780414593962417873964670886189313536719263581129034677340279207275173544324582017064614210123084452340245624147375238356789764648108684624655088493567740295706407478039234703875253098282271280334596043923428759790950983301208244760738812701130751900360354597729648567783430068269150850950237833442359777935381751045100002704315487630414688133955042486399006125092503624837354016661263016252759589678633250009994847177817540831762106072121706662703254249034471171007727562651920531900159119457120788750613640276157140694796500695251016390150307841961925017303236893558943354522553714611007217184419693077970007123771179479357958180672351266734009613241298127163496869499403944883483785005868003024656036961760162702091895714181668215086483529352534451420560824367861367654021002150904518678337114469926051269765727403161938957227206773637630235498987611190367792154725192010814266914509570304401061018003759143940927248426931530623629940228312782576978070685956913185271474670499208848370812110122271249573362984317348041234724337927592911436677212263190421434605131166773811791074152372588177945580595229436475039150838348275816483721465334231946255886182217517755800292984361712816056845106220797304185199706562047133134954910375102522082895270354265935990765465315513573687856286484865075314012228871206943871814000262033624324510782851988151777708640970371258651064415436079509519504988492479602069862549344229474047590803801531258844290478667581408120721670035221647728397103096129431541072919519301349835733366598783859783038046189780476943423511969979648183122290388414509153295140181717476505410465851686527151068330950987715376213139063697047482199885141490358212542142759079718007889114625665856955277085647362787289872893900678372502252678999357358917037278781546331033359013513754775009262856177825099785633191025748653417853282284075260762086957320026244313719920880939321232331431913885612398219028751146241926009914449312816131324743298407893093800481253138376599711955138737376951489872539124291621463430305939518421946381271903772390596853755889690543048409114798304527143889144605442545906580793698888119403472459957328886177118283555812968042806082132482672412388107822512689946542330500407581222635411457423129174492691702119530978291696582518483340832637156880422499536747028698504666550735670898231071430038141947300724942260438252978768083981504419838480086117012647075239046664217169403721574949031450394412161552417736697804502311745954697302117911701052517635045198184587206262755158867825309242809208959606015355525672507368879533844940737346165951379459813452018698267550536713856796981316077326441618506877716465875779697983929367886369175721641287240860757246893289723680476586057047379387581003266159045619552960118792230714710467740919137666338864397509642571634826521216892503747772251181657036160695848455744992374966080664998915429585327450319775026426854343790961830889854547684074473949042807680138802956467478654062448986421991130974309369360627106736931336828138261779576368658100894118377511248422274904014692671029274143804866208413942874145680162078335961832798275317005786977135316114161945923657473057850604614098104803303650150465226258062168783965859651131512783177494977696585373657589359340638902810134048431916637620982487535910932689539003128369424375632384770110124767780073653622642176167740961725545403647149148285460884823382776917087510997970313194833019054998626162922408930720567851635419021694565419185351265663303390479524958085914695569819052087108920777398823081448547193293481112396355268713321785985418361621135558471157722309909748009716950292049200085887572683608532729263635472774704057415731701681293254237442295938565995304401680656610151736955229481650390398672804964655563302840257836065819241495666338869084655057983031297543440130813361905279023656193863429770760615708001201748971699526252334238503474784155601006765794920524290599517652898867695263328910310706005138745252507423393538264513494156331509787176317125564345067464118867161538667298941905593273784040747424118112243873667732239759313985006250470356501738583867679342649682459239374444574624249019975736911292177619988145167865206834718034513744144339532436183094926899629876480041291936358044607296612531724085362899799419576226838527204819774684349204040189773085945382717428470779663338515610940607421868508517829425511933751887266540678257749903032946393515494067848194038555536287402558373898343532210691248031554034995084251741287455935043994814567255040641558756186659565016813507893747938008198877922576134058234169705216645983961291963827981824494979717561076302055057156662880229752043935828837877451548166940704193378420826617302224351071945132239917244567375510146595840451140031925165396039119598683403695835987961591699984769391441997553759194328963292821958254320003405968488593451867455322828081309791669703835875198625069073893355740890753130406425710266660105115793155028147363084287425763380007921053079861179468789822567022408431885170080822033184104033710345188598163100833193733160436457715618292680060138688486505409235297617222888463895655595531261720843763523535828848590266300808698713361957659515157615012615773870114485807830733592135375728670675701007292324959158810977972952036294259189510737346681498954244244031365128265188282781206117084486483836630167557812041845666862609324457030216909242532216196285222347740927070980948028419813816129739210469246815858740962559555807492313539224014554666076983463659603321066144535278276602261283159610689607242759606512190034158415237041557534643558407276718934229968356835114267890656474768127611921420879908407134478700702866986516208770006545617181815040267848802664602122934524495225711705499379820715399433149657918131884782729632679055489088389499115119729007704037771385128459764616386137504373420971624055605720950220217710989028883387146355841814300802799075069329925588756843026434847384756398059427192763462890957766303100032750035502332419673751091902863119280590255209678898107085944842832534299907611229176687543913393129491680049578601135294250029102009552152686586332776895590983975163322104969866569974857235811731236724373978591313027993944070739757526918177810574567697243844974538425008336012798810716964668358130105496755351374135321043597495481283765852879623454487888094588286409870641469319739847552312349255026869258395484150924301049556907160287755379430905919151711568128827223084173954586657524808814944192402566059067949948438411035435783805731194541477169654356260837834866131437565831657477978051819495469307131463130087667748556400185916342193279900299727194280533961989967227495141650214422025655396937768158452239172310432312121040195764011543460804958228329211946055230257087392125876662082884977704149438298453696141799755250910246243199034111005305637291532745397918747459623765185128762776183984723939028432413079290910381083552300633420017607682437644201212954842899271464340633880628025571848883879827621784445030610203254617989789104983883971505764136360432762528349087332868290907833799177176770913104495822233834261209405600670514430387878473768525732972195101547787776671596109239024233043200499003479659257156746702571357061703257803160295627637628313750171889701638687660079554819801164783407471815704425735254091428803806361650833616181963840592089354225190603604129096340613496469676760533574806692523299263624686266323839885349715852254650250380015794243149766595436313489732238498885382317637170661407394377983610628152486017114839880040786381748120100325462126455527436383186879673228252551861011951710807276722655266972622956160355507690883435874055446657611957928777068796209490381537744527823331441321746947725327717516593156481786091238664522935468126388953928396382496413795467983999251382326488727956160880443863788987151414057974977444282083690145480772787020598398144412618886313543238932134744469709272226493745807972803936736649070326386055938475062147694690843105693773401330793206110514252255292765019480332354989414637483120815503080262019899504860530132647363734936415144080998127792335392351903584344197413432476871360452709978055788862084067610084700123989224382845376513794312184320004002043966095863490520562152588130006879806422663722036920333757804147636298890734740341844370040100896970581251884862839554444335671880984419988343122869351047530907324665033139086883400855061663957333581788978847266395937792587789123692285625205608335547640449396601993157571475647943964397956051912537671926859021679202434445572200270713878159389235617190529836149048045885065621316892445266172327878292023737235686714125132641373308696088834852032996838460764956817095043667312487498581158867210943040271775351667202172331551613338129508951411256853434960414207123624976394101618688604456562732828907810126893262231637733345826225314722612256141593501337885514551630579544867818767693159253898772332876975218224120867709858973145860783022210085895570478455660654269985037760590851497391111578939028922608982124045581154553146180484943040314408977102868757259917758851866631686266324306496711919525520885652812062002834528096030855107365582353943558884829898659965816203389055154277964452131544615623921577911474322891902589668968536541705898514203265181433074589696090402106931770812909203531293577828216486648972343045017083189249310760264931831724303575475396921058872506679902946287706800616032597455807187810559063138585178640400587619028196767030784400053491983201278209853578134410443309350626209111992307120756601999034250490563453075988935044572160162195278717377762510418483363914167045756564909830108364994162364390257879771383843152333759439801004773235296259800056619882629195931806379185640095003180878643982671750226185683156607293188265394587066279095371872089938103732917689717989928667358141085984977330422729425156502505172709438303884430022333490776336695656333139513030537628567290510667102990117538623575238853386809525047317569629041026602238022391472091932309337656241436749033413375854673065192231268386820581240468243318558150980315830246628192986785141595601683290065832971802814195474291688627859747620873598451022314891806134445766546344090356897451973980021625648993218468271856237662049920315176146083014332368057115950792801679797569412866209598774279197969841209517302412017727582995817043409073650683622665726281473709715531946262440167298064680332687015510869350418635483771863929055342274940971650186038034841169750978521311427840940027938365503509856159637204339133384237211094231806621120297078450253455812683621020650718433087867810717609444726151670472873888381690155160827019004548182818070495030527640254616320835041237899777294114280115590820170649529545281915195586093284506243254890428821523428745096094505988519741544750046790175597172966638374186612376248867146897387405157118258603226625657628545708025719852824325437122015814190630348560716178868896109426053299399830410683823651975401183827763304845506634920751062312304293650377271046743390512613639543199301845777637677688283671593565643924810169698247295668739549967629525125201731408398013135152015736098613716728554449614386393147842641767704847446873415939192226026675821327396869114637660881782304761515525264726317194286225837658031939069395430364620954986794690842245177103756962856070360072385165578739990461595210392311443780998631644552320545170740964877901654916357404443242651931786939012108210587030922874874082997414265137975967719929619553625299727414199434288431413694950741627360841422392700618365148111438174427676614711532334400470548138791650800453331915722560182320456942499621121408795004642635872317377850754936644906090887706998838515366072764038225912953156083968329627559566420398614043956022293829339256467039151423275389773815166835135244133967869755551201304938915763698412526546075267290285832342805063720943065639845468091012916149129661903730498453601858743453990446319743905834141339696153571497445224332499493343249509040036058737737118006781154262963477317267762373794489737231774848027607796278158561843039648454063010261571910872438793386206774930157685403687376558376567295357670894881849852912041047413758033691379919229071255485293148683895818651367639831572618994673992082757946782308620025217851891194231534107122572997321095515394713220382898816703064130780918857489410048594376642289893006675205463105990859985093372724804091464493687550809613785280190859678426526665583137299817254716657127350705388503763707480812462069128119282407767305261400152274147337363956156618391576404166609313883507292695114486018684442923364662007872582873979022784418077934453473946987687246883463171525941948100659917271670901786081591225684220092699956935060752861272007563124477892946999614975274449671742943781566096343949787179783278838435262415436994889176739688914526921437818873557559199709465967313456006176134635521524808985646660123269974347523965798209472428158864612739433812556118234674932984528140721591305495273907055247734566961309574575596318201236705471914137765838235105555358066145615213379832887306798821005968824107107383845053360424732455857177705921652619564609640076663653839276603348045531403224493043852270595003631075900359999644877420676740992561226398160961353713704578143979124015015101422864806748140544021154232245680821480069289639170728881277751140564976836675323198249558165537112937361211108229195088913026001047201964377185991442416710744013804360266330340116723778634163269156404970956662280510909862981149145554636580938144781085050134131637485349681304284991224331094476907310109981021900481853262490527099999942334961590006891636069461077904435782557952799953698490438941540575832485961372262914877878603409572186841748171526710652420390513997738674589608068644932794151030274510195444150379177572115250888546825879260058737108442869767063460599155395553475926783010897373763182760357517996168681208599642204574216249293365558800009643979187884556201443221137061980362497367187230592547949020369594717479329475647442717558220124462130060363362196543719316803500855822572832595051451313054494850610602717782042637366769011573158046134246930985769753600356404257101932928052072620912369675189309461015950730550734475810056720228720454714820244280431935792517423834632053517297611880320291912808105836518070535235679971285174216000966320246849487929678275352092070213720934868433289938882227570131320951581449169991471284431072594790022203953876902441909764264663110539114793801290773165757766265095690655628446924335722473236207937342946147349741749998624468984094054948403914352992604991860076205602618492657283835440765970274216489799068194456795141135678116716861187882069961821599521772974878837311362814349931713535766798215315804350634023349377324159437834332339138875260079584439825821674012584942962972551502495805837271759617911180222225813935249227291036389833755186281950851174673859708180172862115862485060397929686205962583968478436303824560290655297027832127510570288578124555858935513490619587822898154671112027745311241952268657390152982452879216130232268986716244126176578074546628841941012590123284283993969352188526609141778478734905714084992522056720451921740921168861040471234366699629045349400902202424298250749207736047748830415502062472633776984564181809150227014023289614649019541009065081868096923327682258321215424988432127120378208530268843355668137109951138789747559717255568978076540272310988455018547888791962997831439573716111347254768732987233872731406664100975211290448232351026061044237787388166303649770735115535292933697067914632244780751663791567988675217472271292932428248591896744809208758764571929211346923424681947946300137372933473153072808588653534800291233324083323152099185503745528778559444274775977063309709397669503789711273989754549728829477646514509562660821184049308830440150973839238052600375699056191212517316071981864360766782451363324196600331906837832557120259904987277138075249246173521614371122194614900671484897494282759032978650113310705089398879486242444232101912294560688959033665596629537393827506415691789719387636781337908762197639204252598998170475627308741547144741950538501886013629515504247444328585593660544033091637984078199574887153176858726348099463541136822307203293370060480004778682746257427666028554210112060828686266002955338427751720855754886972118082312004144875745622799309571172188007526343224064837631137058163983347554688682794354607834665625647997590571306972488051698377045126574524959779711102994650342472040557335266746848972888428878021324104435929966977781245515097695769048700511838831144515666499699201170848462196034680162930460769681548993274866686445949844664284621859690573922314792363983605723899590080324529368183841258859568577648097762854890294767846691606558227978783390222971684864052980434417079914461757303120948274521823712150048206953252727543742673533643194696752978400526968910080679730990256900070154781070554200884015508726720042909170126919374257940370716521259079066045115434920354027569920580788437149324091639620013415751730953503135859980674316047867633988369088727133225602817863012921296138282626647333490805657773934345180234457602931853687717622535467625054424278286334115842987980669247510053765176389823321459879294791190304847451314867764427970068071514377023156517254805825688079045832376771044251609643397568117926358581438545957017252482538268654245191102728721620623987419856531850986175268752585006369471259928679990502399331016722685492463695674641090013735650600293691208461512214437306405118147378673338168783806574434650207829002919875309726893592738686315513727015415555007391866743089380576777005218235956017581952444467577014081355543160282595095914888972385537058327974297775710090757554857307404556319499669162402862865166221081194956478021446083838881498556346860277323708746314771527019389927136699287169734649248237703622724624189614576894370514972706305335870640503786724892377567679150222614377743532355601330324083905526965241188248277746966532810019496701919426743381990842657222971174934008654787373093355769830027390665498203284128791655370036784850901686459299677543578781937222135038665584375822707166418969651205785615298459791001113974015795978588970060353249067564039739114553794968887783246532601370000923594549934643270407806154808760738967239399796339100688772789577113783302390311171260540878439584891908753265229402484522528495201442556740467276120681621925062097436882440517613979355744903451977366844359998360271009646150550579917261946818855179395198841484913752828085925334110425453180890909227362909049467568369652936975428191268217943966333884181493491438578115587992186679036489910786401361120700447064752122709473324202193387493682044123313103550845593181561343928432214302882917130816154303263364422038129392737081774021727090194116930260186904974609195364952594229309767556981321706107213200446883720568953671859851742437255916751303798051716072387929874453205891031681533384004151257678861361595684268860730035836704816558046788947063967432061778653861576750649218568788059549666018218280029915199817748763983118381834052817215707842742459537212171481632287251074460141963985916987945921250117951518066765233748271658228986766242059385259003739651036488934752227083359802582103818161322378836124188193980733491285695130626673110540343362972674878948042834138052887887793848739005466050698275689923400894886332142784744397515164530184016033393964256831036604107840995756013725494338473216581059214766492617551450085457911697995959608898238413149695006212801592667946248787992013035260440953190154274699972165522749523237707369079665583864950658271083040264479436366928508160135289320383971511084614664841819845945402629844250850707919393182937360170715785965483573137328660475211577895962172972264364711983984608664893078998254703405847534054954359938149054725569589944327863032848455421506820438758250991456579487590793310403859390825370380109792997041237179350654465044731763482176798061264278065465296571694182806981751526113355350903973298461036299748405615214454323792657477635240295661746659764313516064082278995810575580061378969397763931136915126422478846565799119381822512177771874716914853538018983193435854401842101966191646576374827048797990905557808821186803445545346283473938263758371220755966872406804532968231468075681360754424266666186428094931244935358368378976325152624456739660666297217744544585903209711896054067376644240452643759594578449872403749335815436254121203451509765186010413476102421455047695083948130920445238168448759227141370775055871170985824064348483326860238880031970651094276054127146117288185308051486401680097703290133430551282830697290496142662831849450782148175388265970486396625429571049731396178303931898325138250639524080818489613259825151760397356307446903156195849427446938208965991250256996299105715863823102760764997076311648144364016137796525003755990073923093722939447159007081837833853553414749284569663810883819003847425065085946613068380732745345449924441395379687729815611139654257399803661732560988378676655275288374074513199482458551167432222491802622111610639864161261306925404886985381360183246653812015601179453464660949733559600990283851855085157229999500965729420390146794242566855808902637394706108249408594199519482012817931034066503476610069702185436948207648796192235655641066091955103103613143273871705224188916961165234631919281888706777640038598370972736418509048363135166900258780969527093229886051583424730752064888645832274609265864119777868288897492426040459073844547900175479871667687432322104712108091302791409490711487384712886483158529053268411031839216170873490922018061795559417886245865547205761286896704413771186967470608126646472476497154118285874243473247102274279483874612270359613485292153875375023833186275877695666729951910463322378518933966987108573042096542663323622240439815356220664426653635866504055052128090263563672505660891818044260467267607772898731897692195065763651015420920414158451997223894538452682802319647662229053243348838801631638778731429122422659975183261540729604047498901368666810822518564461134980595608264190240779919680789671140236746953986886206920169337330371732835991217819303178658845509017477573612932806760712587186402515508366858328404400136917806212580815384591671159626274054266471164195676417240057657310755734815451527042860234384615140740314971115787735336817384255562224788383837830227668239293369117310916020154473820903302190259586309260081246961037339002964491941771375833027532177744629245610644161007065635169703812122687845820384175209709505160720955361061042023792007128055506812595554662566380062035500135832434783648709312110951431968681092940195130245795343202185888118317422114071012232345351601172281654749078012361148709358404932762750337680129702869330793632543034006177217169326232425214479632445555493551428245198205389504735504873745100580300787315314160277298008370969690414049077343600479625071362999520125908587545310677304056339572841978529422632025327802097225645137609973963049850413904089735645339696147780988667136979743962326898182259302670036389746968566602763926061759510962024646583296826916597336516713344077568726562781652013998348032659195932930794783288060248427421198657141508755734845806194423252903982726368804246301157734564824768313736647939905425880351619267840447734513494447880049242517789658278943009324185162455781882076105998831977899102181086230662089565893461791886517230119794452210361025088136314898315832453916864834653905923476305917057503724597240069244604445295755695901892517306460759593356352994361390475061554197717253046970167870691614453881051320248775057673581051793324665340109099133108318691385370182647421075627893768937405899647129151591284948001418156374812121427083450638100931770474850216896617686954375453390746132196595175639880828192957101106542723878247804070277343814089684317159808447365528617535471104129300182197539879843790892585709238719800394594288342005015977047990208980446382806869808433715347629959558659700462252597497316940423101490588286781411322344634867197688917537518312598521482817710699411397239558874304378724124477858850886459257810923122775535292225568441216027033520735414706884909247160479502116049081166228413749483954692946667611720791541230806696250186407974133968594882034287427959856534152213547010642251766473566947906241254226529396407434126643777627414992439341689992124019855756779681375275381481254633733688023151068046904262514205064546544372471924333214433511011566947545334318317965778844214512706097546230636954566977159689921167919553185273218072487048539728699604875025842270416940804344977688447366750520273772227075380531170828238114184091516145787484396201843995718427248559791355493449408445509043829043342644356370938962686990371000369192767370363253590819323719009214403683218857783038733197274397109463482623989221707943695510911777700900136340150761765537543007822462424291488826304482860047307585498514570357333965683019642678068391418721641786594944077419915840588444072050877518449008509862145130759677969977196469092904393312585462683674187429600192406891357663961867764039064326049352365025133870926466473763684062652905361588413829164897680374734699540108527830007364278323836588610293780916552157058177141933234970562788444345151648197810158161259319894301657709012404778104576861273913099764799838501898252613789232816358174200354044960122814190510977693539296853938593695680317825598447558109543188025329249592259523385654695930204888532272771519997706534098512612656660200891152309147011304777081805143142519309752831347620780428472240915565210100763447495370295172962374450465911355388736128408276030260028006558889496648624213997822972610665693588802198122764223229583046728988593312212321775540733600085363114268566957460162621234156864989311142533894614520186517360308197717217564392306684047107058028226863027771697099854533098372826896841267345285451173243076551186769903831868697396724840109583839302264072757018134575437055713540878209033434891773852214523366369695613734033083048907647109680395859944055891181381184011796307145302236410605347155501129641071598759274768627486930453550158185502526348828843098872070574664343556106993029199809699255954842434524536858890558002430044243803662009769520456800133590627418096112259196587069053210042372809017892687899186834137115010030018965066339000674236851133025589141496494997558472685742142840945688086060390970078758267927468003790967494135120440532552319289190717320717988395328292638050221031195620585539289786381318418156669731347580322602343980649462703113599050657224306998937664224917963156850853845555687785565882542012272128645686340677055672690748745229093141014492919626344632193130427060001313221201606542611439611904969551316633634756599689407247210133261478248756444008136739827263708874766672056094827820490979801552286712821497179659066246634050047769219619465668642338879898576899914180501543345600966790415860371453935030111903293555200808711915257890125343625504416863619104939913012467012924485885854893556440438519180574620926232155100661428587778704100181856960365845384380285143842679112549289971505959221641255854496791111615326367789093397744738947599720871411271295073725563225335438741827950393587663151995921084256183726631925633287712366992752394021438270635389880324955607513194904070808591655759678370411633257254112949834073696257723701554261059040703952954236489570275164767457729916974425455694058917979238947080475098900487396243233004534093466171402381445520693485364096981695992532299100872057822173332669737567136715000229104622165640671961157743784395818617333003878084818011315174336235245438444727055829516975743383415039312568288881284665243589891605469238977214532019062274209662177517962962016678329119147075304433847673574933418543333486491529078401748549616551806668034005163003991112401632990727027565786519526439546924754808400336143094574238154378842064925730455562507655818230740435148210859995931016175149774247458689683076341553305241293551876960296847204286837710495824552324542458304688016501108045993751879783268815214975377947312314105202685323231936815723583581139699369913197281683664229729807894083090816086413813191875284816385384324015156092376780441393909864001286235188018631507695348575637418292895641213299430588710012498546097160312382237511786469774788832538342151479372110961925889577702306669191066479365473024279289634181482944576493350763948066171169788117869558014509437938197201540160378641167008244242067193349962335365642231032336229709654123056845626955960214256212515473977427920091286934742026152030772775603274273782525926555867458411605721373023311135020368960903858357987154279061881524901938638997175878076187473097498291670141761182538931710220213103099713407374339712298432964239581074303394164722418427944497732425917402482450096425126627452711464032969570975159536652555097802872551709961342702427634283594473057605299314745407169983849984117377079793918084898488160089994311668258414973863952226989667689845078280830768136031453790780435467731203240316510646473464910956188883447497071259317541126677463050796241829294636600557083637347373265225094285558461247451595949017718393666095017869756986543782521361801186813679693390831120267711420189597316863939133532656048861008753833603791615402500476270787333155025940164382169426360274751072541438194447244946899265364872301302992358228220634139336779861262815473675858388040149985140067878491118241227204928857879665842016739705988094271587109255456326547230514601847361841591777737942281429523026786870965867520244476863147027924088023811901813807592266776599897259485892519661257290385809309840091690698808629106511192179044306211426144052298966486017966670054495699630250529850395669496461514608890856834322378960790190554578238921153456552077156700797860939633917661560450649607064477157363697511157421267348495558635906664230084234097097710584698485391740054254464127321727350175494169716920925953750193765884577146187937503390286254622482754690439523432701878792019795670081921588633925881459730146484053053305654312366058705072714830668597476306079248166731764952439242667652510972703279762934250609351046898417168335923790491899710317344559209094185621221551688961325403932295112035837217264499430141011209491031712233849437695397047177712224437672738749012628770415722343231340721347822240459742831175834332740842751899303661830555500664476978243476178312358162823632791425679490964494780492211165649253915486821297297954306577798706691136616758194257990139634360912583425789552784762292378451724172330333892095303449123536336581751112855703018061795092552092921728039562774732762639526394716234912173410950038142966968580302935187099345841024265136931317350571272535171272032549204737925891778443623221693750331306983009992247380288716366396155223104180390899708527476909429397954883130019463008036090538441951144814007728180863489160404964713449302342487107190375524456269274991783084725355937876093938631910028515180205453982863133802596856699546219074204179539395804769514860022832272550156288117080547435070382296855612774966122894313719696790543542113222350213007250151432212605055384919683479543105841942091157582903984073359269041315455972869482592927606665633400238602076721220399726523549928591844678371010539106665848434219299043719135210397900098001456240235032783117453376439216098498561829965397072880223495840171308036839146591447553474334555861523089916187816321955545614998094512695891913186326710499921734852319181814738173847606825501724781815524098470486686910541784937125276736106634398715434912193201154746882650655415690052924459449501346946503576797108026215161999059910221740202764390018000016963680051014522547579992363224918070922372119445357250706165774283778826051444769000584254781513834328896059493182122899508247587213097177419035678051539303767859033239839178987426497550977841709984102163001350577772675594680691423313572345287566147894638656971657204361401012013507790508716357631030433991798953228742141452973299273638929333321097352802882086078127805838696038314135750264454662177400284004024443855364536209515768226168585556189218366833210135449249222014163946205831495971242527101142030546791999417988984342639736937097492298684795813300316447611049672240946286403458666393468754053626165941435940736436393907149248340321982937251773165740854173288421388994384449318383728578056452294709513441525012480719816119987301159359252815516864559056521379058673952392732678429670714195698611129259474268621225233108476580533269560917636155830270821505610941643552522701878643526212897202602568379589586738903439228894411548663800523338641561804723624741563957260038747640684435148725254136067706809726042514365553472096930663489249725805976622259850042696890823463722391486120505260653526618809195360462057677456181715047914209307760421588741037169134641516062694146480913838515159512680195691969337811799158681996691410481159134819245478282974636141729650590581222866066306772346592858764974391381313347870153736380953393618809187043596518593796329541997028002715920039361408762113838178269073599283127462117263504767996279235894282674918452451881977614326328222343500978906599157580279401191744524621935109563562011211898275725241086267938132542922022783163665753187915815423792384988552550872717296291108667255187320155567602837319245493479971370509364613130552206303018640528384959613860184647254231201734274963070447330886101136330552110574640279373712572445580909867423216280586652443454909711435326729879430832039038798368247551535329943147366203944059587754962554204884228503997720521865968308712320348645196421965327932067384147076951721583721181090202935378909813876116036298274655822399500555439879642837743682414282246008599479928963252384038755701149043345616436922062533068972099585620450663810962872761806852608673559167065602101625118410225146712203885398703011698307585361092605567554364081291746962519628488974176143543506847440905051372025035073672292661967273114642645579800870893372016658361034421313262687940283452555117417089673013326788032543071009012653301516533683138576046973961332985203996688012696290298825343434355849893354228300681538497301830107058973328441212957677909281247953391601204870671899407762410877849672314461065124801765910954257723740120350050397806274349961810091806027316631438557269851294209319814684086053635746876611568136127262397005014243454207937143647114976880277429728101264268574795758142146583289196188206343521656053460758320412794125663699674567241303226291582929483836841518341489476544126203849169811549932789877633925686095856836123584501200615290840591946952692029039280078394351614591749823130181074742021369336579970725802690248222638405949493040380505100610334577769066948791966189529783300742054180451030656667130120501683658708423244365197905406758456109790215127698377478849075148205588179354271713748641951266555550979542015172385597991933795571260925365492139829701425964306768839095514046188433733392457582707613791217704549430712814421315177530125000667001219496098710422980712452743502511225747098181502151711126315742235978378378482869512474898450480613889560420193964492227738835777516110943792022161611529147234625336967829015318517176438346370117967518714369022885510762527369603166331181489515859487095814693073025810872535500775637825902572732305479062069695730157906712545680973722344367537665051676629944172357621339594921007859044183735685908145410158252858277968301144584120104914568019364472442857093957824588294164153865149175118490527585597702402592269064575691828959006984885458749057308426884024561632605687111627802692639930053295250638044958957930978447963168539575623659243819337589063744072429764651381736686525893949033175947241989972115284174834294573155337531761387209998801417120412662933633186609336292846420870899456544729013641289232058189699944813663996572352817779840380656464818245330462759396979765563431408435456805901095579151666308167959638373582594992457007115366853791997913801923490173089047231705573205775124888233781475768058470776001434543561421239381795636985811239504063952134297326992876773136871391734286538787482004557719333571455880970733283589602110777495016644539981057614326895663391719745810846659472872431542458708544355216603116546107824096542464629013340649416954429329244677614186887322136618265882963933537973747811072602090280148874473532134544909623836125884506603710181074985042434079006859689624613332145560719469696970154753493006566573312486409979813049209231608881588843002879502921877864396995467052542163148075155428909066548410743253045075481390437316212723634317751345072143206064568183747591910889871427750843406210902757336850872205652689854980624290424552286195141691582111690842903838983806616977528753962683166681201741851671846888438581601804109938392559479199204875830827053602818090205025589705847030991774894188591893863287787542036981639197310185875902641501945341867063910474281506456130149686717633440482540161573350660250068534704194086734463701505313454407987310022941662358220941754503358173096336491152353490247242657251755394887528282853424500128988177846943360730213132383984134595881152183442856156593901057048218189053521156141374883047565337175689771461245044646277926937092640288801507706648185745231170011624468243567375305378358124128649581777574767572713486667781671241234213240459883986676226043146778041979953999463124981343223079278386569280449791860583891060439198449072342408412826970375403587800268696538467989747328880501966937313478112724146717887543420436658624665512474661695357814472183613604014813404158319267375490275781705718619369425663071492388280789529819331848201969338666756192355561287779221073215762645117603657516474402736203355886738363911893385843835047086380675487705704448246083254848531081092443785323979675247165743236426738379430705291427807734823746223361827212013872594743588600743339187420957143236075188973349058969574528658841127568694597846096326680065186142924815713379384268041881123097759761513672514727754725739512586014472355124802503493068891966600668988668729494722904110201908821508310402660854682248557118565573432661582482295225253296086644203110006175697213220191723090931805485945184897162701256876518076138930845779967226753621016007703730780775713738214956407450599466697552040851609754744137350616102486725038091117313651189705741271825453752190409934135771446532049343571212180668594339585797239399611014557967239754352945803682779743949897067955042116933460222016021240192538903582578953416099976326458974042160516935670762037955761878304989237051861491156446602252483005681970670581125372419846878777488244395692054968449987016620417676786568456795504041031585394839999246649163846131406035631688623005284727542854652446695362795887029123369531298414445771466107746813048114246607862377356006956423136722875258713305909299427116348231499543054556473530853626926780344042983651696244159745329886533100170567679049894078551625719813106549331451042694433553813124202291565483704526225046521912698476247272070815303197978450567832134434467096997224089784083800452011629017339374317894916519836355070099475628878107084749505527351544664399356201342511462054374958475970999149182680889160701494395398261702242896430238594720888232842590245611628471052951872121658867872164554504982965853094417659502341366386922876420306726122117815087792137665883081277267315937613038226615263609354642221192049987991419100605901101557057984026155819944235574296015789886689166316603737331887682013867967068789171915146789927332947420977712399235113525230059350027497981461537605865657414852969953549308862963506310942814343006579347559643409466641566730322050953172750304185888150420588343256676393093084792226186757398365332273062582296804440055844438820947879071228594120122431672582780328231556704268608955328362369521069400683125195353444929920113137673922874418442351864717255642873998889779879677089724385392405728379600756861412060710085627879397515618379824457270582533930555744921496121847612225708300475954297314650718119228740307208877394450100704070864679099713035296177979113975335422948560247747369694133124571104987682468410060817797987486832754338323873636932238636179748432552720455546161102852925106882723142744272960583671017365103915757551539735723619819980918811699731963210603180621176236854857430929968881266661488106541426327698537670766569900663872070867673724764658398267559828346370104018241996144975239691821833545442565648813006394357657239191228564026066132979034663714540053689565037750735035569811766868200078360377854135805995534213260259387373596865305844996819441346340487718238392030376781997458782001331582335034785193074486440466288169528622729186101893535120908503592690877232450950693633009350249384907584073837739939429064781895098041881263384531515303258946656703378625371752315786383419176036646054628373800515457068386963426100269647080378792789387974871362550443528616531067652152483064466179191378072899546474397885872510198117108328210063303859536597041606752393101568664579573013951009495046760109629998485964357486227617294833101608921123060071357806696332693677201423363173267088841213549139213692782879183296733617514536373050003854221056466695368367847860007938537328440499018912213651925596538964046546355385785103340053442906709085524658734776140812594447128373505995455244672131900386701670419929318179278430517212430933595673801925825964818395492950166547468356769115116223508679451402058623067751282514969728072561221628153480089725198725177609066965894084479011698476053167026534067267887176458775212751876398729950354040962296302140327716656464829171579290368775805399040554105583872202059490202005497747760290402910918952740129219186921662808583337804817447955614120517782847592368392729240761582316186027452172085433256631406317380638232520626244404022254951471036813864650289800410555286721086174247289404792252147541132173289378856682783644494428373544715767860140785198677137913276161842904734331374723256440966061234627312825913214542809937882310685091150451252572979302493147503617891630995480460482921775830152001200280609531072879562223434918949769926394166370208351672842394042342955178162018613715446879805230150263183864474450208812806466672981636405827655325099255240727917461308582400367797801090459906496474075146254491638260592965708441457319203200586041391359564425886336117768937183028333053454948677013525194672359127398942413735564348738411610155396478962891739197519381872019375883132486491318596997809726841814919159468100514563105207689424565274083931505207090938267741215654155245821068695920943548799280203406128962454224566609462901680488875849133054730365185366446782013638132963051478387799890155130821926444402674615467357648694389778510440508095328168301972013036535509195018335737464946711797427243813499507137435633423560389600785051967752854620785381854119504174573533207911947778566210490845991631177506844424788247615814520926715427224777222530382675174179190383124756361862094642692229740247775027670854302196353822027086221117512129939257858347057497091624093267447597546449332551198649399148754124302740415504762655949350214032359769947672540965167492219959509505829700406762632928968325195616725884311602955689075790199309063043309761608109319598103700131233606115633702984559268379383956873480922454562896195647825572418491219593836473844314007307874915673998254277009692804990337994021550091311462497664840591142035538434763445251510157011106765679383949493942538741527614238122081707891597736256277451645378436382356161354282824815667315674371807662731206847987816210181626521632865455950017844118201287462803573439766098039753404064333609734995370592334085444789420160945157535804889905473991654812806727178307434531468148910833945653552543178397564815685889543979336903174284532622065882245403455954197142203471418981620002846841071254728101072800721632454905113876283330093797212924172651304483313210758926006926525950257656753235328544191454038975247567057644096486912152454059151106204948137964095106486935126689238309145614059554870442504266626736162140608576994853884356010533203386339526369838915027646412764942681432201885489771967480173388823938549026244186175875799727319588596360719423068158188245165838765960322316758803393289252631841146245971223044768138486066056752588956771252881946803462779293849892606978211614276575854763969604941805643233471179213966416898359372539123019536584184575496071812073105883026578178790449755738470619397796966783140876313443620746345784419371737598618944731939224296597069637513903622760274968834070719497764384041691959050777927254192178377503524721318867854971703882948937366579229048544300454016251085234110276399883374649221620853656755191744611620193527914158200643429171320092466886222568404522795626766904670391995067258539981712084076906087451537140155828803033347076447129948570476345243718538970864811631205496908707762925368843787209136735891304752222060104119420244457273148694636048302624585171776995514586703662099623395108803292011121827287945139125825552609535843229774932517676226874460088776665885137086654505552144789868264620288183846235122562941911261033684961125479905999979904632347529973079423482642144179729144041589282010644002656926249652972334715888901788730762472414431217012989215084238850593479283379092944253227061931138221433578361081180866529616675444149558630568179867777028066729126916884023226855749305609975223999267565775130862008702503761365370676488787980318663596642179947353057297714672736302910316265006412355149617309665807680943213983911369945316624350815112275832879442188066751288024414247964378304514899871626072411667574400408890988632281083949095443468067634920605210920569440284716879248619283394629279242148450292387207426123127249028319977545004921220942899951933994305102105825810050986281021836205207564977888287859955666796568819546232202784157209553282719645365930055799233025970429123994744740576082239307795690057422310768215761061633751559050095401212264867669118764136559012517233678530115440298650790539314581971203165906920964241615371639987587616405940324314868645648955167600226411067338272622441342638481243311798012519785742988922074548628227316729772004722321111766965734611363278756825545689337260397353018919206605020111096583136144335123874346092124177182762828580559389983433605920602165773386907807990869210887413082655489527295185811737329557891178831813002562485768907204299758342866573669314397841624619725096305647647732209898418814718731049104377242359759526739835836126943294250830494592625763030241013626379570020418149150652406899796178824147341300673834617919324463844731179973772173561887735357245941392789642431498364780541275416073188939106242365903454883583089169526304014606374901749255568007020698908035823573795337623833456609348735578889535872020442420762036463479286260849048547643392326577891700760567484187842620674237023519681549113501880841924341125652408464649561922126842584579252056314229821252858680545952487886177601208613420744484955581685996507639738264583994811130654988363147516176402741521109686924846126262710938128249591360555275032497310506404565950079315130920806704880544131967711821431492638073359199940795209284336833465989352901322945700853193729739082092188945175376517770601395032936293161062622122769236067452989410948826652888586479325227362229617609325652509569135434720733807589436595743387632718864111007683748127228356885238032042953574363572622223861181620863003744097278674991556309019537802260636254292944856542454390006495775506433798061602553936329020395862119816416590756239470502961643578693715051179807545117967832840626105712095349297226669556638945986228448951115664928718937813776399683616414666033426437324552518464814253793503047429789622255136780505151999382015245343421021266642411865214219787998047366711298055756357581209888058993744144968351553624177198294568790181537840172544987772960523466431225364402283043113501367545329848212421860659662380776467810385778025085442110200208241302810158941837110175077795159005001073392210017122457076759594529302396031522326567039301219717583423011415716946589080803436393517118025839926834640836587551022398152917105604517131602711458295232431359681701209144777086434853431350775367188650149211864307306259516994639241215227171442168613592236166228538457145971874168820446240152593287693495879384527303654579377290211660258960213486660580079720024165715182755845328549053849160911641374346333746763431435166577121060749360881499407730218828077348370743116125369787755402742067486659615726485944156184432539639324845827235024221450329776189466438347257203601711300067524290754573455747210133924738743799334604214117680812438285628187765962914656814185546900700559374567568700785392028803513435242113793151126616393033585767614706230228593679323826123309201575665265930146022830841405892139088697942424659791322775656524575427113314400353241076758333108949086562973427272847744693014970025986393045315804811127468105276879848340753883827083293173413842023317426751991368629429995339271734241884706900938576917873504683209078537579731291644433673618914140152312294026940829030268605940361771071558069084839320557772674348501139678189791203128517512475868764533188978073216838643715847663059575859350025189664420650765829456828041362083465139329902475333506064753207887112369054378171275275383263540325153989278390360040284529933502280610819772786319751902725016159934879265118418187809295126535501983175532840749392037426917365500575113407041354803382866306657656801739768322463186879825970807718290977179638807645994954338979329638251083540062391001644313155746988170447656842974646835372099329754791493369142185257611276302620308028507369283559977678276845048109593796105122264933817774801824668026509034729636496879100126953925140213145012334628217527960207100222683328016451802357585271985917236791406085226137410891831008602661825197977792594662318833579939943219468098077495162494647370793363468444968352696841599809667192985843336704335427811939960470623132704336868942735200841794250547074003520544018885245306947100594342174746998434568017829998560477976780665339546871357773256842649928515605448534956449271050515684696200826379164389327812786477784614310922106736003544884387552172592856485156797239114129939288486590755826662046535610215961493505684131354438358919193459704489532243219673283873388855808576461115551270479750114890343228242946079418588382993009296609331065804731617742703177632703410386140054734534172949192498318531140282751378333334969653071231465323406712921863715446876458967436388788964494320026528895121366804566754858384257995809858118821064040683042800260208024987136688551807427391820224193964698977518352642175670557051092051541970227484423822911632196459879297723289670326011050946013175255113923081379388319616986573610774070428001816406466249783861534240756188491619533980796724296993530077541260327558210093998783613784465960670809172007717641210866183738482199996962697074709908408542447015605182100870765454058487890564447930742139948520628733748338424657717516578278119719134589755421818769352801095076636006266967592583215809057124452983608898511697128423610995572358926747569133704381249524995356126103585415071329201636290430620249285243881077769784509087026137487920411609215082108151196592599420469484603105634859779263216772652063373192097700124516196801501518573501256039114863761036761668670243191999579559614545332712723759015979926095528641292983778340224032596032084653327614843662701487291149276897604024781031691139280617078960074103594389346379854047017693670884436921356536259974579645423662740527697800607134900714500600012220366430251657207127760496771981124188388621372344717870327373185069234634201047619962172355693626855075338153176049309116289118092955484783442098009614928626627476341714170678815598768906393349625461815638621607622102739934368625542573457346737392141567379931827182650834811485466564334403094268820465398354106692784524102181391220081753761886074829648237190926540893188717713339528643454514596934257828090424185114680381258122134716949115461616338106460447303660794808890025970978143913580791652711834435483098063096775851767590139800452461614355069059405036314067064071039630124402272690213830132364330919023059693787983447790946471011548106031446162247628821879418582140775106525466284604431640342473185180506424799411583671903590727961852417007982167379550433514358308531330486394842911297265062084532315829414987897601937752474227761117400019437325730560040751962381221108256607520457308676009261136173824064658631106524624749014191213488994501304632196192045892624243309356911866778843264827633640139630940414255410560221208680646563149016840040887669970854947307713157222382818385086811719425844480817844415493060233985287940035919027262287523906506140642074360903475195820814821664896507851042477463473723274510889455758729920181389546110283897966360689572169246532712350387370572420030699426285173529171949925279722036908544998971658842654610876502494443845427786247397322268081287414526500565574737018828709398842414254298559469309647895544495592358167447216287811302525338506187617273662178001802549651926927314844858731921089990719961695966236120208087753869286734580721533768466228317450333409045669407101731376183890265096007332272293669281599060654891145019248594127154239990581692028014285604965320308270829148726890273373323845579167893885912692823521706254436789594789641629970474509518816772442571066709215438674292958011511080584020469284095140930278366676822977232483554471569593685039633441090005791737768769353373970246064602247792359907564021594806841534483437903598476189714355319924553866671530030015663831030508670485178370257705462760328803939986128394120512849483272751068522898914207796972300102653654335323949356280990676659989041194957798018894646980658059796182159708456823052789763620814425875943592295118561157371770673465113367127168670289979949888187145609285687210630610224538168094287941680068177950769172879611551973868735037738913597866701191320671322733933553806643005476979734992496270620190213604936108890698234388794887522366471775965973434748211802868423927474777809849254380790042337494772357475909330025560579462334220172330376390417210200319407831526282586172636889124351729715020421697618393577012862716637293368544771974942691141014745470106876843386504868030713696544147949012359512097923079387007229193707100888051173293736490053012757260583449596329374898342895753287305772159685506283371085223279116603758568348658120796989166952128102937278135200696012568364907229981530699227190524900238334260240535297605210665861025038230685920820643917333351003932700915348025819800740805474996404554922305306123099218114719169830461077031510301321069658083706442009289199087306778435948657353724465168472427619705290324936665119302135125158567144372450071930508225133773721336133115345200072393552305238205970546687070272042560466538012317221723806256394752330033772264366078255648727304174449625542511311249007987778677201247414367604352835797868651444832207716278386471646342554992256036519042378029826445831926026840445002239496769321507591519830210655354445436584968425560672813347637406378184182443874478195535597269867873690164757513330560743523202595840215592660151492661841083151977918940724260435493256998188256805345463710467224271821391867567922712418125471299618217685366448957430022584787186553665795875361423877962100426158409537553634675365247528142142487918209760061929436798883411138656430817761235435672753345638142969798905849433293911742997281199752032474596470854122594435745445605909814769398268710683497674298386596272182792089235846069231157278094964356789298097919565811343795034508632121098447306432107632617897845973710778630434543859863087193146236814485240682496054841354388617733717701959240810558758395061793194124823711473052795345340986816605485327740245417872960484925509323846200519546339462786060701435361203733457262793656760314010308111102970432875238166878199970106930427191449766039480553792013411330226627384124312316616976153140134043194064995158469265906060459521213936564885814602613718704992116394735095661762500571245335417763481933685235923831072425195352362270411282591762829557297495099440144272344389583458494859513037396996404574851679704695674791625946595091710722449555714888700960984244439736404948675193815750795460044854608438752222446842141158635757515219767184058776014801336340454775262901148171427683242452931919301523349871804498975193172420103216385652083697091188351461794894202023165608045616883344330359380610646074024093215240650784903637593927565687725579637481043138993612988996644177310147649384768612416263427969743457585988469635646341271042323200124306243783147858995393408645151491384665605083282908310653605394162887462710149008201477339717813323412654884235569586534203663880590553162704313780658981750336431820702219567954121975561266688116870496846857508891179865562623154037367155575619329738085382533185638925757172036697726632592892480637709598645759639553259537754810970407151607723537794409217155919155575217814283537831260184130218948180000908332683531058022144938843980033149735894288152544625033146202417054767185396252641273992945898186105612346883398550441265380246059136003611592139671400392208559678625240356553477445476124714354241763998218558400312120267381844324292176675815866030471291894832174497429441536961028407016496921336457777135349071732296007830315334066757922239015865699690065314143532491381730592685702645146309792774291350683078761531418337840922012244083047043722858331275644868722973710671257035952456579309095706032089186247491685086720497868545359791993700982150223164846973735869352374226438026921864315542442632070065422234637216076362689811320947638287763546036150649067559705175641795249183027997886220864205059189545444165662429295544486725849437364820682280256304729671738841949744333192314163738753951642903881511718404687426524578991902512220963845762249920461708481268081257177154892006470775627556829918034403530724683148176814838170169748914076299818271432003817430569716976159870496701987318083264345691264052849506715599190719496377182933020180379775147040546608907912020923408587061219489073733777931144727816298532385183731166895882556165011343061137267639745870797186008374155737807825043487166591316340341440588632271215673551563974855619369315471473307887628680772473337498867938240186400875262544839753118879083504849628822100343356950873195710302527755079706284810078475494852498874071179026338930407616773057109745383503497319063768036115902931362384810020635305110798619163337426520576652140673107358457813021814952528270012906910316523519791723462548938650285707945729979282752279442425375589784080556265277152399260143158477644610124410583276100681062309593152696708304001492520133566832466040498122914603655749417530401183383677974284141573592685089588542213797600667740581205831071528878458509952879340884061260868413399860151988025120847655358062319758480027907217512429082001892919071338413740950202002401823951376612144087480116312512364390332407363434138951147189696506939855608131989531805853038179088989355126657799405751130723184302465741878015320012438912539049048740722341062551427122135223904377006466638109785391399611263390978330077553657511662372383414538467848005723952942382033816276332963368340164170686316786388263185389997308688162467647082700626412544749412888687655994325842818139848873524638100377335907456487731374477184098983890674513666485301814637031166015409602758011854229893344037987024489516677141296993393379965163927488797938399718043660469947909365004633469318039348972488043199324715776340519548048585911239234513188642106862343998658970751220900547955607476038888107459027401292239417046365952210416493087286190952818687823417116798479701905628224623311043308597377733675054608535440958733131777557073177446504619982532383602373350997824437542131997108010011745476201132293333918225287924902300995970781948013838308115362934311428360504149233316674559369062627897606881920640380493556735195035091500970872401873598132249346036300473428602943452073314552040894122099700138429547565160454340950652049189503915239337231566507635159833944332178004283793157708905592341455292483525979914086011780093006171644510525201966635280046251810713805820603915628418876370598819605808676550578443484203532592504953118733244869953410116978737458192333748001091906431338759721904402895578096823428111152786122516709359369997858681977270919870323092729621255305329084270043418033815020541013542987840365378500902283252826731276458832505029667174960281115365306782184655637001214149482295863883545528233324502854690576078400258378031336821491742154768296598751376360696194284889094771436955636194083656751338266740647693444506205619522569794176746907020289599100672695490584741642398500896410039312797683036194213185882350488076120911312147936301448771580428761162589810895131746998418799861546031634430739133134479716479477000437984868165288877843852996848031435180861205415202863270165958807447271530788427282556430206294945503054736563036140057315400043154644361380380579104945155568833810459863813169101982896337174527672018900705557251916450138927568084988919110629870846045008118194719738330525471575563427606052249758999984404797706082351109347143703731956739889059212792774395667672009179364587822416987031930696333811154445366526031445060910852689693917578470115863173169060770222462466259341128022349319169116931153212966784899840744671789305680948361282145988595824301710671446967982477954339539456089189696305574813663038627965040306401650494895167728265799953292903936913119382550643174101090263027313185758868412040554215826347681922640390396362491327996813708434817256325497852832859100108920619655347203059760897277811460543306338546221651767348055362616316005730781554955642899941267222742396491610425126325083767332281837809703762579095895968251889853399573289853966971506133721518423707064142137773025145337309417156957945138970531681158734564417986525480744292619573313909870014702251208123055230978028157885553011292122730325670235893685379232911814856821777805591006954593952273331886490013493033288596571844241053412374631830254383385530959668748144462013238888120931379016108388747156938687535169837672507418621752539275493870562152410562233661107143243994315305489263564655208216822242661826289928401547155513907404569213530307853905845638850580009259728942644406415200916468781826311959520803700952765359940951189719928627977880717033066254648531436087370211438537998281980449269219362325044309878343969363364171666780040280644725226853971136480984641773575348858124188719125715897650082187688594735918933508254337023614608187572592866359473438712917516929770795475245781649863437877240571661844918126474442263998020450833595447805290214111700804806114972144553330795712585469583484033605248183693264235425282786124472011295383270944590561878170835002729724037838707769419815543159522520667184382150180592513844008094106488884257586933060943583478659558920923675413735105062427044260503621914557183238649775936241767202816785851204526564944006367924715006557896816812143887326100692958738888100768613640798646583141307469765569022041817044125078101678588252885336295205987835809137628243013607355822221269365108630022504875667589154639653359636472797798860825504766329753262942713560383694056188935999290349482244204208571946973328527805129245334869521868274409725429191082621965653148345114611365296474093287929803727446201617088069077388613798421256340444567689242351066045880698963827138868173707809641861627863365610264349096226564321709515353106604571591360886796550274193832913152881079079086377658504506697730251457395715487639734593190224696017878037490998187241651731032190087078966626859193025343508465996926103041842326677690810485896917831576647440927845423495526303962541930919183952937260064136174211788786301161716229902161702613771938479867810756926500479793053610243888672418600058352418402563114538696115480756256089717606181149730431735265530844406363718544921239570931937118530872902662240392987753003029935032207663422805249132573905464562123219043564681946702011488286129975238312909102060231978350709047611755635041490628300974099128721013599095214710559385795584707843544063302054444365006946273937057555194615394111901994761496512517512274328603157533622339720946054318837362331019969781755357184269625850804608750932869834347579259514400915064373805715655751539948219439072837553296672207244925583062647239378411666136102874494404902965537598574937772600249978832406597879143453766724150222919002128390121083951501875763668160884092565485988933817300724246878245244564709577307396470761805577800404843288147999667021156448607078402551314151496625685048194416082268048005091600760093912716953805755522751739432179232366054085217509165850904677233637082095364798193515571583733056716984652639890245905565452477460692757211849640759117894964183148356826040206795848555976687509324715049697439322837170635151386329246156627261446990029521221590009431997514631498504853048297176911213029371825322923976761621317226133486314166883182667014916374352933556696251555711227130870593115234321010810572613110956623330220248776576756945444061694990434938234249122494055209696467831112281862514957910232116647194863694446711559381248891581135637581924296756741403590405792668519929047229263538596156968063364860580645620551461527314781956372037936364346040756287018225950276478689483730673771941665984449298166078889519996277475637486648595292704457266533149916423222495134943920010991863084495067505569964114679908405345086879531410878820010746331779381193861215090564150918328133134673890921571710380378035506399472541910788218549607289436570210884053248009132391475322884755019848047832812955185662265408959386174013883848897888941075878335556669913545491792219057384868009670289184185003769997614446272987702072488587602108710336774143877542096793160690529898236185560438551785033327029569054322953692110885747350783170601178781298437581127736571453232327597658239275118200630552375348400098146033599280511944615066472417351487846042833152849081619437515798725653242965441853705426479530471766079439401146385321489628626771181736896354903147134397450792184965846299984202721073578004932640606603152819324775518395676532928630212491095686850295550435680221840560265322189639374224163395143622534832855959513802967183864551661872306279461735759851096788365258362435012554708775598011794983963147636946718330775769876443833356109048009624095967740954449456646009452735862033912284215030568645257144777197391827779163189824125887289394847750886524510918487070973526978406260858415850843851750658874086811198612822971706683110511816052507391038748963323957173510484109795306125768083937271268754606670738080338578560341082431396394861374725829391554324409534005695439989643532601133104634809422304390136046243139528571206944841701537654121855633370084207209867639881619310883136627648376516514619806131444150482764334112350520981011680679880801722047628780732358964479862554583591125481987127901000686425601257092925713728611274679684136524988961747049083550801750428114243534072783635505033196510073131959219697150595753853706206758987495641066532268780422351727435464744950543324805263191095445258614605637765487980192313205852566272988938893819580590371908171427352894151029805187539025574363489349756518357286018840037327583288577094278537171079010874221717185930664481816454522264226214002571678080575924512156150492740785329512716984454360129044482268095809559318568235280809653466140305910782753882873823393789126496828654762404644809579078764479078282754286188366084289531704985872391658205341926342600967867401967422274749907821528616713974100880504885106802907910785546454992749744211632147161128738668926875037735526053233505202370466286758036947432782080064316633537548862645899942767766973723930738026036027751367852015007959882978765418836579366929017550641918884928416313930568677636335257040239032990085893253486338559574661590051402456355301024048384970595807256898707764293163371557094164166287504788225957171371062243346363960070719697458865807166187090524666819423619158012586294047815279238838629574952893367162224541047706162501946908643277584920931360003267388923462146298940452629406582572940835319071137864362125365196421319314395415665169067660467437136553243774790059457855101400337393022003151280897212713090302188810027591285689532405061442660014800144636096465573712326052141379160421507874761184110302439681797144614781225643325832971369385867039042244964792949021953503445757626235804194711833449781362132577166325108678727479178122769663479272773113640648890604799557355507602122436433567975315012412842484524288866239115166373713537993894288522802691681013348926218267946792611817074093984017125204258750097369728967947005848352085634046330543129118634531734959499821249917745128099971531851841916898293653537914246747145302078623330003373509263901983771258899025023699079996452987465294883366367414005530421008457178130671281339916198882047813284811874174349881602895429549210143296109114434321449435872941469620385093288163478620312975197345244659274730728866162090192945207338333855074899863636135718362556524589315173476978309665809410044097180826488366663438613545165555243390978240496387379245724438666835671897113411327810105500470011745013491241755699520166015101924134877781923028140438045538885067583639296851367323205229872135072388855925481569957140117032739110214831534034043917419608062909777281863449260947231282902040536525047065455658400980192211423558974269732075857122715352491726582907815322082659626713535751100278285311571463727450985049578279917865292252496132280077539764945454666227207872147553115033795355036416118893737602622576500037812918359439510031343321142801472404309142867433714363304606188302029580182637971325768471811374239446744432974959116643880132896764794993739362104615400104355765586264464773073068602124899332262052202721555201053575888251868092904838987688488489677167655962392490462372245070029232790803933226584431380316777703291016543995422103677910859903486577113638409264887387988476946190895459864808360845185183110204781114505655855098991317517309095249149242926195284035217684591236942217538577048796540331435105786157060761551131973878112994028141104333112509586596469483992690937893137078502253444385184542090436177357550431361647205486956478398141021093668797760418082878590218212347620949799072990692464303915526448010904637133220588689272038529058780881175061450862604963969638052266539775488246435630956022737479145637418753012067205825330865264508308654641890307558895662562297932427095836684008788578852254500806954195067178368716915947980359146224200916361135686144950728839192036910449590348915002512864059940104419121266051242174413770750260989891204740627116012787339494650761412686809767111631637834020976992427735469472599110439017791357366207871131748178756223234128958771066317491958341083186307135912148345582848344741847484091304430791430547344425143908287275140452288347729713090988040701344474017465309556008895982432762138540929402519226222860391215214157596177059035843490934646721692953085212411234094470748281739548214220109162199951436193868156851184610903922741217524893053724521165869366235739853461684967344022047577207391437586334027803987978580308111348057423603515841559295788229016475225779459133245702475845854045252949650719736058083142557424445793104989581965271682979291883493141174406731106625830509622266544309292939105829270637749278369340274550744616649049958040927540067672912466038236075291650391326974200525390696696093836180157854847132521817178801044899162345466884060602520481362416078473667631814532121111350464841400400137696835235360884328762996073719541667934368714148659111306607858871417238692648030437091093381378698941492564526277782226846675962367440624070823061410335018808274451073269281586694645053613037553116882297309324294257302775799093739374050237982379593670601035339632559923373867067591108564159618340373097811079453695187942836564365728218878052175706288019566520181279999818370547664320885667304502698688068643072255389880895583361074917461574967031382631146983745169916959364624426396472937320624991203950379982816256930009430405399297179082450876831753666444715007055514216893581981395634604740642226842067701653150388428059239689362588546377016343321417291670188272261059816910894794949555107937031390311558039488028668750346782535372016530167805087625198869418310518261866393864040378231019769035171350840720928680326248896734790866296605677858490085111806197358103261818353655849405468546718810724161623385382651588806326211288772530830842195505633602763784702173143491010253588112948258857925118924495192721616012083215435520076666168548472865666004854823502306481826085382646001981757084215416445660326766792607713883055698028761625423655269217985013859182847266427743310202869035857706265896215689521329461789050712168524155731560678801468564301067426620161630538961393233037481452582217428806603746138626365646166414917982787185687137767018100662916757389225182420543458534393219020469984374562297121910691914094469193614154673497701027241972228547713110464982609014167964118736991697949888806424568439747705879528210148646675078746996454324478526310287489124775003703278511371731187176990782271571858804312819491935340565866637648646765902793692857140865860457325094458656962665506238806167421743620287156585122773217373679810133160757868249384917075300177305301195186981704058513273636454692694098042600528075957918573982025277575567552772569798688749536244056278382331986125547899517125025855743406644575237005351857305994279186291662327462951966904582465922341105308579283807743704198670280224485236096393719094851304249775633453935792665926560255989035377301946198975862698909683585843434735029021700038860217333341574229496821122400733410299684324611926741831970134463878595327655119726104312553052350731769515492746529880666577692985711192489478191714066395317989530258734542436751581654169661237692061590986793861406245614942476908290173785822963651639042662528403466518324503607757470425576332751217401905272308823848050527908488121999070664623551282418912734041427099887829249138140339682489149084269799021520537167126333784150811176080314812465302777982942464413108319683937403693600943052003196132752031920284936271958415083808164681591055219560601546345417798925297207050886586038611945380938093986922107850168257089862096106484133609625282911557642656808241653213011642458538846899101611524393812706645575172096517627755559268706035985423442256721203582347052246301950856033932570144416058529535193051096674709508032902913874298534852585771373497688043086465185924498469435152875844980028979118575666166548947362081428440168852684720469904083874098802124479775771528442756326004508530455134442191927230184221425448317848007744565391689259500450643421649341282227031257643276947970659159227847372202574906761856094916356641954331882662704978434247709675657478633132144504703255006000205443019491563775246528213556241916652871385516409366512217992954530387027242415609392707102112445506926859235780233320361151324060955562533398583376144505917602088299697304191926694634403543387227085573020342323260668094941863048810259951557037879854695547073003913049043001425066003882804755118681086335427121839737286189261961459581838127587275609324361582219103101049956534436309838992891816185059653033994545003371361433658448413124985177422301623164864704644947273255747280893192742271523238151787427438911317626151677583870813904749497352080843565698554503123601531931597151410241596529662880277015105638513630281697476868448550320099898156916469059047212964368922589755072929855524753177765451574871474917579545020498851358310021150809759292756334581127180943307021516347250463967802927994129426934500506338540357575881049928317512707118232611206153399579090226769596819295802333879433734513059247372422992154909036703717434157648629758233957862786081469635615884666480382001187138564183723599233749077039411366466923754075855403427848723402692278759997041846639370453056395270709712824322025913039538534378797320808910051453006972256715773862893720358151341414815622100837452350914607100118033097709684987057109308826810336911477203152740940123035997409948130534087205628662277062318972539835365113950338134772564592166910019687920679609350277363391572327343970515990417537681074886702756633268500603746249708913582986635724994958877088462375539585906639593615108523797896023912224217280403683095415766196022469261871813050900062546727377849585489515064539401394910846503587822887274957542370414214945614864327091539099992392179568179226625375333741626410027462037098358735980712178437259750746172849572773007646043162975498878533658452730691982531154055525983658583044631797401626898667558844417800839368396939450822884464171212032567414520122278374417937256958036054469556127752264118261857252792160671582066731087323891692277293024922629798455744355817918473296214626039498918303862769387407858219492305775094914088954384744691476202476449983625827393952383239934442906306692673449098923628403710313419848594050046976155115904838562254229233846196254420883931411603201982127669179191243899275838923113442198452230655688918901929844083956231761555995495816600595632188101061014445633861973492044278098343992762922553632816078512974400415526257242928557128168483825220481447076079274290299150732520383108804234199323051004315262599343100750334612841926118372775424850605618092478665241557601684700954502632060179762317664699709892679405457122058543585892976205961809324205971464329260814507050113694067248713463233227558874359828096406890373477829717909928549362415555531407412023144850559525906917346193795543052120196558168165152015768968852747400080273259679955364889757842979232517260604018583317752462294337060363819096673012006455333293927267004219106082240787072130439083803981600939618828611897599546871550873949259421829430128270849298403678993233956735561756969129613106487931977899074290126400545142872135906959657737327918879771429713644786703679359198096390751579548401499740016260470591010228517140449725110916219868290454746017512346142241507673648215008900039347560683301992004330241767292690120889172479452652916462196787999747780452425720691482504072989256679005078090514698588689931006552052767147913271994563824311289220815428575343355546880220787689250312207860993441545249690611158021516964826748662181407251337629021281698426376937968715028256507424169664485580093383808991950822743014205708878543601831388055909570322411072655443970199843980894774262270455685087503981361606314074214257432585483575424567157359875786297714833574805968825161287895031997311172363106651500199554995097262286399869128979863151440510524392528218941062154101889545577285341175359238824013810828149089346451535480383851152870843042378107895240359076320193359932883383736498770376900554730050598641734339794472561801176910044343647714711414332737924559400562063556142741708313115967418789554431298314497587799037859527373161686333138324057103782825079276301264620633546126097970799936273785314281027972416546365341292148519769057922366053096258034239836857278370942598005367509435479472060857171698618718396570858551917845208916204480519533443153718905541924518112758406092432166168173199243842589778296031471407112645735506911642612100511107995143743622465375926770044317624795763335864351954646052464198889314748419430166998012660346103598502589891375351392079715047836607742611477409342327183920790027436750719895959155790552254421780395889137831357506309836635215710122347952504354420344585085010311772706135843524816622358991706735520509332145673375040678908121170538163851475834679470832618398249714114598029923208964213796145579182137629002693059805200486174441762733940570804098062682336515887306628612806649444348658550403705385431507754368373420250326191342011823661593715120491455623553419443288816524565426438172916482603924076050910027115266756548375473780245508109739062714233915791900817673121615230668756509251987508595067240844708470839566002677581896486494161655232691095779558861590144801337117859943664257705056211782768379831223892558130272314161738862597689526451842595128017199820217657406074728074856809826407590625679820680310350536641399556909897006803754845682820361357440318915540653222091017231384149068898184915718113523352293149751723692004961443004634460027396860998046337479478568222666976036748006494440917718728374271551022489207115094393196759365843911164534585359040401257295670018377507755853221232054489438883775779927055447255415993409724545828802438970503139366332243765619848248378067450138629164459006095473802979029356927096745983369534877028788395085521347297873378196186508298178447858209202039648000635758973635543094604683691883931477392805820529031396136549754839715560029297389314847918522951890533396648852072961364550196676048433502429029919541873097021222645176915580331506768109881508382565536355421450858041584996043158314306835624699389607515902744947740922018208276655450984656597707598613547505503477656899671826510339770779307118814476583962911405125405278693250080697050402400132065104291714057538019416310336337946646439437764591535880596846881733235294971469903711147714842178100521272396680072471714108773206355595027785427957272498009057424717407226991123013153369687732220132961377874079031286087950809638422283981538887539002113932362886696677192073751225690072435416456380891603543121137259290283358338579287441542216720920665687252502301569068385932231753662324659380650463166595704932360870215622207180211154876287632932469316859330882781648744685636178465211912673096556856857559150560024784875517297036416573460927768979934459941533253335252482953143400263342404126389941709647141056494663278027086091630790496105556564589101730757254528800972626924590857892912571086760416398675977856084135578912671695283726715796740425432887728813259350803390931274105693493736158723686591361106679464257233448272207411217300674352370809946815006357216226108870486743301543355386486271104443258568941237366020128288666259412445123098280087372355510743438391973659820343243534179130357062590978624003155213224814079683031482082470031046494512366178136705346782972162115047038833947425461333867482865086771039977678791988808889302249173967814013774695877908845160253712233990321517272569514267730589320529944436528701012185991675450961408071441334539654523492592334360239140751791013630316591899861233184568864489159172439701471037748278565406823246627533666822867413814819816854037591142222712412583559837434191904171869941193974424868905127150421554564355121423519636810025450253127621952639100575215998630334407163121516061467230869553434019520910347524180677253652523456117796499452432316266781921430900667765470113656615699224951193133550719841385073125314855659407440259336046975965995286787339999923669224718613552438188906395999347570637591293381112049298682937101903786424390462596169213024077540327773308317952474328086966868267133684953933108968540854072742447969767279303726261957346372317840706686776422221866695792479416479909348573447382784805160919976940187022374532052813286305220351362648448466747724664149838759839619598298489325854927353991388995098101565501526534998250785725054697664045038332502786133899898871634494617648260453860353340811542017575424844082447924866680715747348634720424885230805838712708719953965230197989338843719756821839020933902463387508057293947773376581091282419432949359902573912845242931836895651471677146717410506744002606731085735274985074038580439551591853386981788758650964493925039710255108246289223346755303131298890305419008541553368330969866817832871425786557852257764856452279054507294284626443886147880367708897733153673300622532106022291451846082411554069631150665290331355949164637118856180759180118051019047950253153245197070783304592338534628067472302845472360465992060966275389194507201114371892663020146977557380923871012180330343849925520846297010634609194971273076453677866938388536046452011984142595155705730956298082273154498223596483400829714548944433040727217453369645244116064149881501058919960785745066368505091581162846319851485484278519812892409691103380671886614974423049616985976401213750913147800984263474866416501454302487888990363797921605150234277408803020826615346152297329470345771533845339926263379333776913052749317318122490317031179112407491467963202216285762648705124637368186480983831969045949382362460495847499457749894952950833958130819025927411827885190622338871395549506992113032355770195334337179117269581707440948951542228313940500622272279829453897474610285209180339347592416670391533709114656128658150977105952589472885135884345761456542723001219092444975478615983897310486138757702392451780551455191961633728204054627016459699692484768155013979088502059373954673981305721491407069414290124608005508278119199116116507030544689101235652530224250713678520477448296258913412853763620782841874178314528533841646377033117708132907069419865194354135296457351872187575886600019776982031515133190182366776320282270994778617381016078023115561302973233595152815977633785343634260356506452741714828906461043299087494884935302845125939644391873581787518498696647284430168012588282694132254066587553023746763043720276588247702059434680521990957715464217167358636505496868627364298148541995606419507740700441213346643049987108594947271687145481029716245943219054052363676313735253972834289459164335265862499574445011263812514091117305280918186016816052217315976972632945053303653032573175441202967384996806433901745711102988064319132656430303117719304791541215921781076765806791560638522282021179210928554160249525646993315606171477202007606784667467472504035268089117943543676669961563199983072389200175768000928339741793150754963003631619201404380986752695874300375269034534889396669320082650001537860242539294543158647503945998991051919087286758638651374829927264341919923096365374430130049937684409930572016521098137172367815990598542943000945449227068467545817310874979497629106918977878167588715628250841634806910676410164375565898581145955332222336966310410741590039309078903204394154162590622008880504680296389077989545670203143653637515982159841465572258724929975424685123770407382743226866880602717224581314054221901307960335438325901347956387347486109609457814428672303912443167968687272201083445603854241753503594576404066568268260561291301610106505365902940496210610269525874634849926647412674275651421098052095228250636518252839626529128448061918793102030266044029810819859097266616917955599301096779207334247980028335106233188599259843213340183842797406598456659589226583264060189238875163274181325884406663052405253590324072539210385579902900061836103164581395980914324937378892609482869822632962150076563232934234685668335941425580298548053309944075154442841410170119205048311116711343556156264127639026597445543255394429076611934122892002975110849720071530990876613268054309310032811300927331829838242643666089030530371353423880619989277404791548844843680810288914267512025583326867202836352060455532159865955717432973802056014552664024832912761146800745022051506897867896005662518411064304659556077892430399652206525492586483273793344861521014987000609765260760917302299691029031886823365199038360918427598548071920805916755133445448391873690722932368668591610733775988816648316618770218016581652752653530637322005446566501067070190218416859195895990504418993441179609135109680744535346098389824743148889771377348418227607272169286582550030174756759069769202861670108110825018047864260369579611273876156616395200391500758028957067885664993473452701023395552822352947519309774615495331909610760213905537021254525983698757646052797042430052978231260402946420945926626861002158904740690023524792918966562115606672216022637651246338354533990073483483896185355500739922828937453699434755386764587963290461541729308666351808284677460127936664807277111046415378889637362189930760249364359527577578571745756871777121633860845124406014032449894692048956424420481924088406008252495862744377196397836041033862252418845900559912343888989460048488644096134042919886585310979899377003685138850293758940445200435488482007097654812641753882971077947757484617631588032521800643265722886080574698851225473289109231650302148516876569967715194079501320926661323697481472738592960357275787779816574719683690868772204230901885497656918581672635397882376655196572273996835970563917696273943218330537694925459668564555845824342028404727604348821755621311389951051186870460503430874442776884211044065714652332458430955463690096657584700931720561276124437896555253896534838106290809244667302527067395329634661197682803267653737710609422615367198026168300876832403055606926294063930828162643331196684350564222410709690547629210007260821737366977410904881761645282512437209077090446837456863501544791832738097442230935609626430814184083227520104950802629686804457150701342708144139240766370772090162907524022918247256852088394120394130390544748687950502848796925140182630380861356175985282854668687159221689960405712750664799604835166530170774158691310507274892970159782766381931389088910439536377727328467697458657713070061767743903867436253296554980333846066252077429962957461415071890696977332409106025531803923111886947129201903728383563054457644135211487413241733535959961874681079010061911383906153766951381585663875197309029486438046873546819510422901366112713931503719839381167030046858637511217359511187610931965949599773318260152601852960495212783686955030781715386533426758014805435081345173804030316449703071028745368476549962152465700629876766990908308749558724206268429136606046005847968262772988798541862156235738741379280994182428224539640287854770869377005642583213700057632077065215468543141384377276086553407435256129237180301132907004993697765013487780968688308918425313859132858733888439661577756475483015691105668248369764459806541380988105298176651857283981108833866740678981026873115308408197887509315538704250745295360946057568431116390345374052645291747718081645035544571848983245358440689515216368097099543429863960776698657489735063101090420902230610961843907949508028418624680792290576096951836906718517090283639570967081976537752031066262116016820161276417029684567396856628904358114062372110648400791627760932486131185663175502431837782807527058351991703585664992005833290173004144038688897720119761868198569703150246078187463687502426067619724124883836496357085644192639704999724253692967691192059115338515893306523933515325481199111161912178915999057065174224617578035842572505033371852802107574091001942685036073576155578916679031389813323894010518399446827370215953874913877245893338701973723708178545930415556983475479138968395451462407486233052756802784176163739423197471848886186966600922054177238103333265723753409209420022632436520191065082887661016233238872956497535983906606523971007807507372572489578564169851556058600638331674814817849423470191892615622770175048695890970149697059911636863786314246982724836677537704624966983414750116433411766441828110139723317610132056396558998907129003324418770720399187321571469994335126261935116968103560968989773312807783757344569893995089210610993500344439188417789702288023903377734372413052622193503005313399818423116650646191432200701169369260246197253846925529960244057043642771458043725207869261183983106498380570423660656111044636911772939859501631079121406391240614459924131013033440859312261774556583365730816278062278948028245650106515406486493231760760292570598078324870433881047343956337816374813767368723248076462904666922285371743219218615961241218022464971473728825501644603019986475722955579073311933503531914515962375981665628634722224967429308325003824040733353929901976959105234147965590095486568235502807625378962005747197851610645672483995825626962146071241690323992662163130190765403514795539390574649571477083314497521682554827889468337179908763510976131064506538117106309139779314006586723612186420480739113195634459784016452481422929685154454595567842784872021417656662509808355386100323646579739187758112194847742912077796157877793709525072291672183574412291351573903559844523520911525676197069013571427491742935786920741759373564285526570148712894751676430586253467100977141125438460060086546785719044970687909722522549288869996255245158893348983019898181630238203660998997757084035825257020805546819443266788860998013856386793367170041213790654884608987572615281206423914667887171584679128414639773551159718047611913164841489015785569185227725193740866987080693844183732713368082639669653029687143645339951133814562669528576002113113822695404416078417321411245973458273245785210976602646619049518351038986388511039034192281096622589926293004982835161036101283363146620277227350782453608210995207459583749565594236637034738516029908224134458803868772890638680138744678432871490643611034786039922826660221350753943509894922188050819236056637934593108379068708443950991340193031303422417185906697089628029365005139213471663394252118231729030827175760050417405160551214178421101999304627657412527702970224812179151319132339277825019843676503614557321425462315525675599408704144987066621949118506733567513314271867183658706629393479569666542434005276315424349629549434121192784528478680156743202837080296226189852046050209778024340087643598104846510226355393560856676002715832156503347865220701069163483557591748759337340839943622465301945042549072725985390415930045112668169803817291294117948799079879173143147669858111478320143043781004110350619973692455602722065367560110170844806151316363114352206783157779198416963051694389748183293766450488431722733149569537295775307078379908796417339524931823334502216867306517639205915511657285754491521946052954069719182656797127953909816586086945215407371106548431350993766216665781064900372888766069330436430438226341953363023671645116140700441300811050413097872909910312261554816393637658519408602325359571794421550980925212349470962633267020871951289619458161292220243416965367449404303796105290319902084448873940373171819639693569042726581504775430438572699214983359664034458089487831477248816362673523978673226270255831243875000044559705559249821456647382043555907457606471191082472075949666189955467062316727109982034601965609070333307950662182429565189577737959676770600796961619688184773838810789395964517385287026091763109292418999695282189903273085593610030777590760083781631346712930416806594197694622876954716004782086633284212674053102052857079700268824236315322270341997717651675445700284609757989968048873889986233872028390839993395920891725906978838926430202623921212448195865748074003652228678380451235344237462377991669757934704946612682021340810338806253016583028892742928675969544323844369215253745864427876925132198953433457472360157326272327754875996482416612317219523980041696183544916679664220728584169415177095665210204878475050386232957741944352230665077482355937975062772369229817865614766280055917918628936619864611639995168926405744446726176209533942949912862755203600846323786686154323454480364356713609637294093718124336576083156535173794952406641457053537137120255881624433615907506841214366481950375114789976937584391419525035528320110629092947822251711888480196703412282216841436946248298913596157659700513084314542281339240619484271775606511282732493381700139414498619857906823238422427186802520685185076992443136639116965570029151702322446405835898075560672111228937169389662056093807752740638589225716029965851894163292178153316025525460992468245560544366909991132881269590370964426070617416070535792989029292987723822231065079704690611475518711143258919162397541930214228829067033719486838585721780872468220849737908244371836049545493066673631323219538677656869465859660595107822971434653736146216813213267818444889921453676539002605544333502561852780165913309303227133879815797941310194737054423058526787541992189941774931216375850655705407227208428870307074080185100437523627784072900316517636082571034393680938385781763532529928318899971987864375845543981157404534830218422442238669156536253702246261050431273392270689541060604531055392994212542882108628831348624080091722354321548041223823689564510789295929816090364422233001742787415996456575032753980617826333425945475611781835391110707107363023243326825799011235240105999444444842727163366054643453083474862925101820097555898162321110078001052001473494513760736151871575259925255784978484858758773989821175885161437467424239688882606411732012587996592708781531623430846087786979436683964216771046943316116452440541852602525983842553141015260541503390193616966072739288304521377718378804654388762144675634471428657028526881004023459087383711000639917972988970339982941435738871732063928672605583319902421231708872202257566487071178006416587900219321012943867777676047291416175837358937213105683736349741718517801144420694437403745943247123671290922821850720035267371110586334706173578473548954209872660839039841686089273224935910281078984769228917086178916951337647215852598750870955350225212039122857175164848834093651282202710889247205058202651104253928316464570406101401774358760246274843837492727329053656519781342110687978179252275710988086561105178032730365089466135621948978935978942495327270249909848116428866374713907338255667183225563058416700413033269339734769342795124859659032820354921868338325632461830048841590507525099133782844465423959112175984584684981054340097426986335821942872607795404581548915882467604964440457587075126051268652264950170315873788915804869691703018466562964034018673991508766627710733930437472048201480407053647789209569767603773345366378240016126591267224064243797127720518403344379854728189848540129050065569650670608158000326698670406465086301162060855177505995625463801981547920184290449463277121902737137802402276474029202395398303701461942231280835591047014419366158262305163234632011762973336948974761017754424350708773413636984225260526300167215955604096171400961900976176295592978739038322979884721694081264771051597427159688764060438309389920052840524788416633154637553431166706248414910374369332439603820351270569076886285714295817997450636353477149805520250570624702040131127669142546901077962124565888920770158341629097139117838540961604424389892816942090936104262426251516830172615692802399251618458744680240956614172873473858995395048411118465931378284984486152938734842929607623744968917164762181175118772314733323405825720004552109029647361888935565394418336125043964139850814589153883111801351678919140830515738894130817571920408086633014827732929480398605915661720527034669347046185524994252491132393209860138940662247995606860697291566731236848726389450071631434920295674213629796858768344544066444284551817281252218807007598751954412877439405465310406055575157452237214125216121202725339579403357904675542949711245090815774373401175032260599780375782078296112119112621004206644002754191533689582753505196519272202957606435174140859650130105150058061676384462779087974790380022540516651321491955566779268173026718617216882121293695493311432516401200699487513405487169140348200110363027453010292270763009314301592869822814657159604970939952701233754217933219075208291535582920702120715872959807406509452613678037436732328060304343568152406987713905572553846368613347540283273564672153854250607412027995016393378058298328614104953316952091593128037367205361569087776212005401042119055059283204841778018561081502400152824863769239842729910913712293198055656004716417904813465667159203624549988777708972137761680980978601702083561167945372813560878191696281693505009533380728283104364073934112775734340783362746355230668250654018742313977754042230206486063734446852401353376231126424354702794330268978389910263317625396446747599116634845362991257682651153457751697411323660525796794384106928235407006563304139208403889167128437782085803061978132845192823711344863858843076270342464034649349875215533197876089817155153468597892953491015595220436453071633781122070936314478386123480906950291873043057122083958925952983573802432859958706317063027402649960755430844067940417217588328368497578705986879305954912369274472174234511012893227767972513141226770255093067465427643469201953773787903043143484626480719707176041621098533749612344725607984281128635212567970548145207527184049488019747888198962196486749452524915379026050661639365197142731402922351470450775542026830460363033807167408233471043984951722526551689441624319640121085814887402833546217569871317575683278741272794778171208821096232825453994953869701286785559333531916599720109616873698366678250438441793485645529395874367822808544958205265488013056992996864635939429437472902761591584167610572782907084290458586530200852003669013573929278765453498074541427466075919514720099829987678038677610349360033967568837534040807010301044025497456552117987010407682689385910935273707096207757208737286791171998160145912170830021180480784774148811304819861060962343240470613374580103632533374950592687698324231321018010957067756611537968447794871351351014477712683259799706897900120577008474383877500477551071325595315394662229761349167520012709028657750130283497815520410792467563822304952216879065867356264313414891504123298120919335855694854697390889286767241225768902803339123792865346485253264169195274627065292319050090395123695171968963444985884485226513025465777004089629550852852467727028854535296302400598826974708627536815862167052004604794135998420803985142889303776544238221000020119598615298851355527895611155962035048786041359985173116012213696202394660192000820220008474152449399390150784559290630077834932414878774077134794752220042129594608585186240135851066380180444318956554275596151672290148005395806061611661636752667877168735771419354044102886465402850523290305191959185677933284738525133963120034854702668515027213732881241161010246401210596185426829333330880740246940163510069615354676694133103837467864226916201059468055225064073266380893474694088445066919132813406308083533338455948011541535863061066638898465495694602219434908913859981112761223025669439958973609411657499090375872499488273917073474737126278108181443634776902156708481258663024481573362624708819331655017505241018865551953562952881267963363648317045525489143541243405881683069599092373246165336241353747366927570888496714602930576993846937470147083004133905771693012324210581742205359281662291595411339896593367034147797807247002799001709221135802847686550857487141333509367757425515427294655353038261791062599076653335932866378642798167750258502258732277220684198403741403286383914711420845059943306096262230407119732405418952509008501733557715013712244529325426231853244075403713914598254072247279541754364119361446700210436173198762944987374679449983172336917278750116624069582692267964248396153788804276201621999493698107361067237578314121494952286495398349220861541776073994724578010516479406400182747163127985115265478967747662858185064185091528929807225051110993479777742094251147686645197762712869889164361102788319485996768306954844388282753296746804614027996578889341056303803103543308022505214497290536609418750318450856789836261957995265293854512838402893018800258575269476676510127672087426662197576362311620827836891921584808273169359739307794007461273668668754470686768292970845835359185823502913650852282220615012580499058593478853345778363355527036950870703306758546925910782377856847225459540116135943557224311489846462197120304172046785339715093401210838783997712978974446081912201441940222721637287727142346327006787200235825651152300897365354307153916052903071175849548477499447816515258280227633564045017624608175020130745572281535451604061180189159075816132459390619349633610644351959685311253303218564376153775683730403003342093605491177208133648209379069979292919042260281869840713882499282467872958036119764568799446087486518002074104547799960060637667090666489654323118100756957368989794332823581025153564448866335045143277125702231560470400220032569266273062666945506254044457785975656000246143044631777817898683958438230418245446124331168314142394720496630395833106764180840803192619476557272236939647658125962644897327895635655487111217731084783429150971101114412177850395561188918331518285851122310477937812301631025869983396604845824249011148965652086863124830354094799746775207547506484334410221100307118038589786150460046106872579711043953065547368479001931854750323062510657830646322506319922191482200810348260057622959679200850531829666134779447516392715138648209992153124657003844339317645425589905570730896381969931601985972096006508925321422695119703801150922841028805571920111011026567137440546676640192401465215008549429133057064446072037806174111810896131227779533458956719539664897096577276502531604044167745513878295896274061492368926675919037436433075252630141015788996339214023744231459353476183992484459089806168670994095932026294771971487085830235077039103199830811232583806300305920268454888058560636897868434389768348974530541569823030349993638925614388106009149056456032071646343323998007169480184113574474124872997127931935239377264815868830951310256738360720396793909524207594450263877639819410361954179753439110467152134369818023321333882409574254971784895121015947784063373192035131296363032524786176189371583816032218843251964356814324251049129343885241687920149025014250549838550188778218888269061735571885027687818537356766530338037990806612577583848994550543836156412212484496370598056271655030818754076934869190055340080330625351491066088998511925528475262575344956621405241847981522783013050694698371555561184333236583183297638571890947769761757834707553512720154449273435160637312291417869530168089938586160488708002195098940000460799738999376941960249135985513683714101540628654061276393897971939238992655842085155127077492821127229244247406873229493751249552430171133411787511283493851029682942365722111207772951345187695798644392692003571504193661871480243706926570415351200578517522571092678110979738179644426736080557186692016146585998730680188579858032228896073039812800764783868174710565524988818786957220798045781691677420896389953030691788601662165479142392700839722323532825096591870465647045159376471445612315038898059416998043667999436512358503017266585961548936240717295010592257294725786396199925611403073549161831149756634361876263669270451545284668057171583923574188152510729563605829691833293926785700481552271283693163046753128394379351500402775871054649231283936242038152471187163341339281799288499534063630668941724590567330905163215052485486912323295481331668177890847384182802062530647411844661173755742140350433091859647832970865179353748973337827777536227345951233902818184306216929737190336547896971836522281497996204857410503908058749608101024221872979716765220475977194512975782190211735830572743669599642964118685269719956785828031989474443920932340482882279570072792501981681397088792336837889051507561745200643684820522070356937480040925822278598016643484400820351416847184328797977762670831689080604662902418129984823941957908493347412125186383682676402195403608544291625542701266166064570475412561839603331940973426741418307864405715613558513044505173322937279322913199825482097062017228543077597932217681076621810953211152411932571561094318941228834411318735038653641600205003969096791188209241229603773573315825230623163187787392339070091863535404141114773699513074618310244723670457423608596170924570265326990833585769844701941547216089526620339406153486964478705601861590274032642876282140117671202514751388429483267325302634350619949524309951387399314383370585714935101033577294713453308873004134449955975735717656424836931908691368465726019779817677573982301150709205485924734604587730421172733821032874953013744262040055934336858932502333620931311727309100135456928249223752673480399914101484759174681941626675294263848524359217704671726330503486040111833125649170763340962082696534953836083366942263250381333828525802269424183787196718490045033696772057603492308859002117650183040631888479957695060296179371425130720205872976556716289236086232315909484135484024132140631904463685972347540746853918773282182164149199823715088489272871349563636424096967763306443199074472491106280675207934351801688937662429652645035625559508445018322928180137683580450792824636512647044973375609000380440208210119992674208392668429883084346783613916548986519000335198395483799468288291325232926353964360310876914797492708295104979471405331105866765785353040410566805450411514307267647662899799206138269707448722704714882689972668706014897979016637076148099534789228872861508649716322338425540593238203314204446911619663182966948706051775859304223275442145812968816842485078643594407032287899249645387074023768898230488479822063625969960693943187595537096146466450479111333047764622356516865862185780166251707001447475840023828532474517199271201967451313559638509218212505117747373950535138456077941637700218143777686558470285664313338238085108155031357692162382676890965095019290188404337205141458721937238277961038097371201035760432486383505895483975543620963510792882151932945067221917281029578762389912098462128134766885867401340161932886896467010204449683129363877593823556557384021012393135967932150782897012764172000224937427908706080994839783763941135412037380314295205185384122089381632984732514420278199933883636665114388147051924605826234163343688022959807671674409115305224092466137829616877818112307131713057333523676888102800899941618291687407347304488462206104545584243991017526766610678258214837936375720000125745416596621382469289027472230527351205870617244846702979495248510194254689696958019819900094718664118538426380470485364030375200664304958919599789178711442889521453777636438068747632592781392971229993073076361636795524324663972160272381742076773641214187463631662764250999013244175115177797694698931837148206283103325151381750262822848165287503861102141085830231692778415919878378916294530462754422779327403758346707749569831206091028497367554527964933213069563788708387736401911044821994675831751115658318396968395011699777195082441528074732888419756212032854339701662989125660433073325910039238664122573989955690460159711531738925910037591363416575740364615452973537046100532436006457988793210226941686452398799361535097740185304177322207168944022149987441009113134524642553480226286856796137551817373388989745201509026558735467060811347862196657417774258325774713283287025955881065369371609663722266121488221241173502476446439437740469638926505413915494686978932020933096633652312739827111328864429173484546366450130497610239937862580808281967677777576903230290617198287771339371203934474660819015225067580819297779567455223565207220540379491850104501907386601218409296710257830089529226593657146457018588405718332136531097227982347285473096028801129067087836967954101621308741812335591087839196946392336835323602057208450378197344969659438870009666452192157620262998425476771613805674696194404620402974695643238867024943857522132283544192609289492916522671315386225206555728437372243056914406304663582689030328279345600845560283283639985782483568054161548183981506289149377643515256642136805975446075200415558352489700054295966959738673494562771286320710112374380833500007800935647145229294758612104781202923253012733659834553947958388613415784767635686139188753501402538969633643119014152870152648862261369915522437169941768956404300798794775616133839638061665160334566031145248460672095834886805033922388247406944431767984009043407507879519069797450386555150086529409486885356397181745844903463841187569846589373094535262875791723967847824409514766845647316251882892327505541889768929345753597997457608508751319489415912844087391853032312548004446976154754833595667127757839537183294383741145235107827586570257649632626264355894736947715205756886397182451155645302541066921130390307585759785907781474741814343396096426040251058145586015797765847214120177058266372965599212893981910560627391021371129564827498792000669309929146113055917503254659707815664983852021328067398869389250891922933709423926549507789730738842919470444645760584082256089208023925051416797567082237263621398050131956877380871458289167252052758486668449226051601093033266407528104957509708117601300281047268634922938509071530777661276663125053334048957387248024856911939624694435657682090789570116802568226566674749487457543368099366393197318898835111357800788321331506183070991434180539692902463700984345329384271921958873932494655204982876541767345432889669636940276986678555830800388681267001671640460055407636471133985533972897639917099745405340071849617405798976992737674379339532502868915867402319331206029133617080978401793898125897421868992071330536944865239701844224716095434862687760207997962287203159798213864234613456682380496076349886496929574861005024248723554367385596061122940162838397799567773594222812626461430713547749979742357372017305708425991698275234311055991774290812296600712474153015603448451133994112125462015099638480885355776748211217408040703717289032994407176637614786786348954447988702186528757737749030926577989712513949598244868519356304921907059300395661464544990096139963781322577262576771949267589850888239213201030624931168056350650756668497104766250510329926608559923095058539007500663591689363826354048012582473385041551461812125644664535369068205642142082352818526743497430255946574715486924609775366984530327312127891724743061417269361521463400023165522766132472248242490531737399309537892740031440817122006588382454669841542739165886104657443057304567463178634019697551145859571553837724937381223531444033698814594062200397148971093432376425253478434208250895569437860991137640820579162768311185175414912030588440868613222537854944183552134676311493344165736310663928805768027465131152385939766547989913787932911707842727068840434571077883885645735711526652962710002823392886883239917180717040304229076257538221244138990584246739984960893123812937876168392573948506141141934899627704049756172095953913226372581470957407635848724552206716015796571594051136515130153863989891460569590025142274710451769677309770468594779077457122635152339430807264228156353184602691408814202030878772125704275409223239142525842455641185054375030032695123064206443917105544865614417348829124023867668418372569534019670483772464454537969063180888233701982946792496413909020110885425116873188908359401238532326335506614761815090805898696569811655964069476406646014581422990523648243048246342502573616246729589219037157540748770451477223896282416334162189025938889657659702949899787805589436956421041052401984249837922622155683938912823947417844095509268903660547145145788338778871939964061859053140056355771633677280860842204256164417979181977763335370043772852686383995795151607538546585953780797981712502971422546788909578386216888088808786791010541991316577973358667755765828974740580504025636637454211845283100117255170781878959005606986675852679166200343524045082891701430252761646507716548411809691107846210254995962721532797162531014066925859347341554630638206535046747199806354202428593974456203370310123143981992902028696318411089439853164622708861518071407924330574708117302729077117800670998947359191521649300132352241216588127681084556329733821288366140693601116071324504501611260230630987732816410037344064969275775328925838384439747390279804782227982568017439379821034797642440808542317031669182259615396141235564777751903253596026706837824811586750250995868234138573569155731709515549255420772485033169930896857699158515947806402829245966441457715418061613825919442546930677928980193965727817585124903068177653746021436951353306575646644874110241047966657510942323972811212938645230865140070032312344877761514561700833372461142891469236666722123851726863703444646689878690963682811753011656899465800269586784276977969223121961935138696080399209400571521156512649408709299331921913672315725409882397175679903194319246969739824020116030593000872076447708718322824698418773190714494118961176417545662357691776665552551593592486610232997103115099346025987480349040965590706552552291104605393556252677460464658174709552472724921515843379980950474829402691775171113688062132492437890910200889550321501170958586666616386281120967289748794094199640406935845457160661866404163175497144071548236526716650002447800789087152925775226240195013300244937017456508052777586637947631545903656839437859488722813394405038373668445055660972452275882627860222874494641343182117698041456777618585921242575865902116505878627148816235911697661896231759520433855099378383399644482879764775631732390265207752045581647770390740631077234628685794770762766885875936459700519105841044758453923068410292998740814166587024077895005078873733968541593228452532898468538860485505747636840603164224067999939071798503135202503627567880349692178327894357858744819856414482224292423913061239210060612621103662469919408554250298454866291719596139078200372963991945778099839515095879070139494541345724119562020219170938370510382465942406118270166264595215087708670453116515232414233400347490412070379618140807165714788847375055220204722582821139694917328899931095551460494227354638590283044220416685751761435887516939594159791037809555486974879180067722839338741170068437399275305650023390158633826402363957151091660365293812995519076268922820830656870169757278587037481799782081912402474861603694281254188199663462716560576158606411092454549793825867685291801731202906918216359444158425108899168083459821606839264761561502644847739217231451475951393190457775169597825402570568268188104201973098477541945542751879505769951610568233385268297846944344131219811307698290809173476132754001889392815649439569000529278180122579721970659264220708272638503869390723026457680231037265200188282595856154272458696845441523193804263855039461389908108746969987307429756236248601288840667727759082355829130279451519359476159898584177895284933029086374093989015638748842542179154433540753053399332046794321543282646046025666487563727958303596613852680322549057408364530074594852128528022752283083374022162270915782947711385572664574784698598352864534984384611647549426804513352089747840720657741323187126354570296853726347080747102684854048304739681799890046739211715035250915540461939237645003912172854353438920020597314638299335634252978512039250648823274118351652715142488419484033273959616595986502323762238059987741117533483401403577368601019745001805646474729529177740419735959946782862264750498186217885307763888430253455446664041549518206412259312217935609596023524098860313717641473793428487758183342081466080345469609084402359064575742926495118479903835137490961851055462610380631983541382575541493923003901627929812807023561188007036775974723912014932150722945510497275954996846518006775546105795670889100498738525059709657184777071616708820741978819791942107991761106234388978440236855901076650699592386254566686108305171276760995262557807143501948732668853882475166469468302178232352928887656161495091628366795045224383547630966542465884749441785869092169837646410171520870142341839743797738581605669653273324004739782305498315659361833533510187003576356705443548591847247659113748780807066181514453560816688143321137852439813538037862496312743459273418045773799675803515053992215917750337753224249728108504926751375336301576267229268661048868002049855058392486978881391511903994564335390266429078847462609212946752525874000130673666482257155516199661810050918013094973106232116180665437475477588349194578104295774802157864329423926989864012089965036931881391748715040936891332807565136184584717801771107326094173631032917709042493931629582069497907490105285082847548939074078724675920928582792570047284571244740064138159678231141191451436783539007686981607768051064857036304312562122281196888389267446305796061467407082138327257750704083981089149838001824054751456764471313247568185504108024315973275047458389163973401116036107046506688697875130874865513932654280148643781530246686543920202352558571242507218742351395371205077919110273386127268869434001669507214176730529954921380228742798343165499265764509695538219168039223393406732558424842730103660166335988809919692608522957799749495179496621436934584535411074257475218557415594927241379197383835106465563205950203261165789448974209293367173802263406216816900101365745004634426804850157260558795789467686441720664057077237772751998722767669869713897217391093881127927973789861969791457149347792372154126078794048914858178068014273102746430740344853245003788726416303698002699912732553621744548047401888206202853354675954088334546734095632964156820476634556432545904721797079008231552685384397160021097221537075903658957271448195085551805856359283768438194813978675497594211923502957565363355545066129507782044907698035333524074777061109417702055886684879143377721695908329778723359436858819484215623527003921230431882602959682076957202014623482755451349091842849313552992991223105327385931618575893714136060763295836841703683715238892415228007209257948717976647371737199099940833145449114576775139775729575534107592083595447041615613786710600170990984207915132758432452412174886152130620554255419032000700729012308707172333234119422006958157832002341869492849473392744990555855980138913348482833700673685506735835959877723517625275286777532011550271258970230788388261787773407876871319814543571857523200812540356645869970040577509267804303287037178190681639282350007135669059321057801193887624960706345939339800559287559576824540853686506541153170670256288509603166502446932399980912750094093638752243950038633952298008606525038220399384708371086823819452666667303104519231234656890810804301360660177911636392986071348462687151061216281638605171916243385191690598305784691415969362912172727025163246276880367267061510431392732725271528308818675860557626920995248383771787819895639777416155756876675036452375412825006295513715001894016506444836349586917624216107002440746643080393905000554160961962401647264606798065559093134563701618502794348429730777523874333674251133373518577001897335706596353905592601894688046031446816105963437503042969143669776809315753191253511237715605697405492903575158667558475468382365509177866132418014526582423579354865056779463193283375268447049931210352127523128629987078717062571673260670356757703867712996232730861369025621599226291089711166799839633699293763301643569508575825829395746912635893672307399764291736886670888975869170352711417138333254095083267342834726557391898643544658526901799079110853013582968961647705641719921969047620983675393930469637148561716839817048604997217043601959434805361801000170009989224335067170455712541568879178943630800419656516882037977233186383740464347267909295337176286653849370460938048279185475987319390788851529728841614293417527446401539154631640328500596955425648492023674548062223182647551191120277177781809083184110913666348145987945668741055602982683562136565775253011601073910299934484943421533101851650180687859883237504533896952907865370621002482260206958860555523803129000161503932774666627740129994457773574441764916836543422412334923139602846105997198234674317055348085263744986786717593370881324225579449556582008191928941677497071572749416173121711033561846900568219286572496299405125211720864890241460213864359869670628918952662944296761181180458465863759302592304899546473470298074805263495950336675344199770948236118700580733126698221479104084348440327926669799946147592052150911802359587995252526609791954085694644443305666579046445332150070121913685557433034932593470848981726580182365027478064805535004524073558771596822765616969900081366404378975366474006961945139553671409760892092658832917765642005153742235520552424503142582728651664397974511733565472936018603866168471301620063323689074557966507218755262253348558450185108595192537478271604739145830376675893883520101482963067412640927482434489706166502477304223616990212216573021557240874567964248312267964887715761168265107111672028694429206583410643431043772449740370131196235194886583941909972586152019625132537809831501336131853115088133804839130743770221884234875017747108178855758265550528696736163767010114099974844577497377954098356560648529512556228784501003408469629606563984982662373569304580603096548831803054927140949171667729102789387276949240079097773349347187073100783914732555622720466538347173914412163467938048397569543861800408746055434120484458632868352966803283782293045847851390234753331907218319971853768348624015368591833550222667525336230223305777542032648241945721260116054091927140464480827049318321833694645310059785767948513886757926563781070143313527171213402536925300017401725492408868093275535010638617411923536839239933881432909784438195666265721443373382492660692141525198219196141021575004603367782477132999290447388946507016823590839830304178958293145941879421645624564634195974757954379769245126984188108951965712393091230412046678858884881063458870874339914348782984968034778499891464128386090984267350068522155017389280408171713429373286815390382306429523035909314415575778623146220792014152713488667184616440100822892551161085477331657550770937872524253190586570046619200627566142561818237491926834935692110733044399539622416214092772111992646670526464090294936817580491213665866240017806028859463623659506959394400285512787507205382950245549535246578922809175146536623919573372028016936678085651134116959215217288431291404828673954156596407533348735302646697893086678522255485023565771194168218286904103793559669399540995938301234952793559917119519299070265201069073881208733768912254633528636141353905779864177442397632513255735914483280907645380406430713517992870994758835718995475669848564320335432716836426976572604284341092547861850682057183825486390650770899837262336993714715894939102701967182786236460398282484956555014274799279526841587392726652685501893357866225687048039103642158909403764667406603537189697765936542424857265568571864818127077862468598459243902245366074113811648361235763443223781617412081777183982816495063267623367414485909667034719491327487027331339190336155129465520548394221301359896388082577144118929634387631855667341962542878013844239167231819635194408005343684086818745765934819101496077361228683224430369071742292973557224891374590540884910052109252221235444589988298988841606314260998550048661344516040760300286445457628694908025061407826838161070021538157824890282912016670286222458316411262449021275470832272971711859413403616952620519648159489083379243071442422296733999623015091077858487248573019153425372155205955661014843159258127020559876221664593544623693363796322106070838502065928252397957352384222666041547635183338253019004716746170558310598225145220967885563497356245681874485685924547091556520698405555516638082011929166368144668768961016071260631766121990064058732030688831622022239042517009454631589677565467451826947778925636798070205190423634564158674191407099135124934469828972713255986536366812833101387195279721407964182061672676690063909891417024724182053844522925418821415895463487485188137269433342423136006190637305692636334570114113285858455336854783201652593818755174600923681437702918224288204000607357663744412920638506959667124752867230863954741347156577430345381758969602767722756022601450497577925910592386510378310043533389143261801608984518646014889725951843272554840304002378413652654791467071560820409428368889143748884241105327055278169369858323476827548351417530356365876296630636865328794195660282175953243741201076637344108554611006662817944337693995970781162869380609073292936151253332237144218910279577011971161346194200327444491578405392700964496652022271825385579274872292311900833007321958415079422784105274721770209844636814560300513602732706750942582208192712757420440132762650022552647748933007968221212738661565554218106401080342385986104457996684810964798715844399771209447107835518808755053652746207547730771599288881906778877884548724933807583559195353220846350332101526462847070108684645736557124258280287584169342805528139403527217514033398476546836022902775224413249503571907266077287460623782183874655745903609596203849755508961100387477748054488813941729738253737850853891954102665100170758789729711519489658371815285457256793723325902155638227701146252313801012021466837932564816639742914562846071731983199183602181774858799630185856699736102766026384629572419960717069292055344460144522955255380164355377781045385701602996932564148068529774171248471715114876486236986932442856694179356803754769613980962679206511147871371901069942386012907243312091305474013187132860599339986970154792989786128938700801789950207005267738136347199117668270116580153061411764901390978267427200080285155687337331049916142718686169370947244769720263410070572629329056370592095655193785159621737737147526920571478766101135254316227538880410729211878717423611647325541261503034246011951499568962673535363148398672994128837596872516192156082958779387757187976535138895741531613085929504600936369569333447640750635716447313989228215610840955633330833929105511418384323031679307607025991470172620443602348176208766546514359298927314737878454117809890187864114185155482167263529691114904941808553646708440990508038954246981835861587809218833253527678176598293620096722929371482117212243747552650334342776060450071284988491703346869037174763828247704221571160547168604517410633888182688528878309032304913886648922469828342413278418446846770034457460326564029024879292309622839906512942058343942898999109217981775229918313881934682792902209112114351518682906827419630094429630377074059363735402518676395573398132680370439993569856700190669259024348001285944842998515253036466780130337465973015162238287112356165911791599337724984795746357740993553750197354388506334164193133096209909429117289787059205381549593606110277726450924599811241066355994871187932584930790202417451381460296794858888984652607880816959757481743331106312629704854441511087221551918375350400315886626524156662184407736263079879668602021306643494851457328384311169646450443445501383168707102300402466582739067041890232515426476220262468136851750689209240221319268719530959163073730198280659591469096773929320798300026010660489081776211888215294231689640828590354879429723645895997947287685821407131975968975273162532395698115894273467581275511747494731466365359919879289734928474888748870205686665003235685914684184060710894325639681406189566116435082972922033309791797965356727792183421608750000477496473342057466826420623179144314936108317655212593042247074648513875663020045380819588250089275905063795058276462236283298939025269455158407529268634768373521821776855913235737885009732186244963130399001103327469188747119419713569087103662114652003526633346290216801550953361157585176618093397358825524922179498533387856228228658477258778053160156704621911108603841578432296518755944802824920702970440230412849384104588797546065492241714673382303620240223495115291694190328298509800276169019456527430430607884820573349025791998941721454348712618563605868793249735002971669453233275485864808181199067431016040644118350534120290480055527217025165086661921055042144755099128606863265488899202653454278983269662119404288494432552768614182857650769289865129748331698269621650243585600432753888822771924294194252497876438122068713863413810874926469990221895541280763806971592332085895093215399057819930853488425349121598226085314489180813158994257969561002282004502181905249912884654339428516476284074046448483280952307559790310069347896856675887513516867033386821038737907704183044856679891307874390819266089171456123225273059192589381563630378115655239691957734590821674634167707861445068276452564677507819672698607625548740419496448688121160222066002911529676022857571942294626169085114376858679641729645359995908452174850817283187092461095275990347842835578062158578278782329487852093581776025614254389617242799899520806523109957825723918816882443067214407487746539932448624096014239706297515117516478199411452063274213302151371691438341062450389121585366915243390770166854757498484101700351154397531327667228616869842789127762224442834495284980882314354490410867083708225245448054765165944426519508924265762663199816706280320442430168979713167944970943298963572837892135217299614814133810804198806475091415683934819075015458736086137316941331313649231503634075850222257985860964911604449819953215549639715478179034656072957370793567047169460542855878798283218153661727716131216811958707445816330248950041212653743056523303933029746105657291712051937867743911856844800143245748261745927411947077744087392156318646862053350440491410710146578143185146846048613947156692849574712743561761979994615717591202907595563912402871261323443107562031492140844864255041238936078434929426594775256896414838993877429638958792529685909826173676163511744282262646824078058088938232970525496082855498127206301730260151488301895842756339882462920122965880603258763184082567347195792039997867824733594298081934019743973630371383273028058949071967435697499042596127584753840251136203896331396524305118249729901586515270766996246174683529135218372495901102606532941572292515993213205140920461849764277073406796421133757108712563878291022583678126931829911261156191947024426852148302684215233402391944050519399086981286675968507732811185427184028737425124585657260897403827922458238071687365628896001392749667166998161768572640126455825520919203934340880110158219257301852636446676175182659194530654638812323152839790950909031955138965748273346691673263212253376177257865424152129068071688926184850033638350248088645201490022490352550045540455664758754255255187838464812491603825742201763545254259321032614143122288868173627556380966118968282023862462207124759430351961956033944471078178243907727692168148725660278793372991028407614898749273298714450155645905227170372594723445765590429510077538269760194189192315629357673022089141318490377089570831985217364599703912817824176099280141557613169521274577082876041248863910038265458814754095885610773973952527470043758081887219034780103562601528496657603943787594532173858143543433770091311905778288220599440224773068511677011386486652831968079678531830349272659689540272468102858767735826428766682133934441214265546085665368096456196420663078287065485505292173381532416552867317923388085444979223266345457401139393564333774847748713487425141325903687578296387617153508136589804232777296750732758656087652858356930752780843336293377352546828134601431336513566416711401531711322134127626347780805339798671984907453542777293874949310984678531950533315691222946008990761953762743927209501234357353040921885413001838273631016138212221396813081221266805263183875988967688594869023728962065885251782239835645012335318490841002614441794682515893535886475680132175739215287386975813942904689507114197209640836359908906968108733808248541980179828354547557979351754188848149896803891885810258752612348818030015407652867275418614900589749219753620645339301984376243455541743915061216503752183621550921081562481321264752520813491985859745857956263743712402349804547141186505887626219702186808800256234590998709372478984825974101343628684356786728255808971000051996973956824627866787478993521564441242546027725625585761729782589682617669512243059638032313968449143032526522712111849735373021033150514538118137597569640610906549058976309879728995545549385927474892609260972429318677980410168662010883701613762599048875103551988253140873911673581715738289467773151237918270017123021689781153784217974059470481592672269533014882938512961767537789968652843941050499840616474220434283837360335660256934314800277834420421893031053294379047119186202706306872785339662997600681287351829452030116478279988843540583341685042799081649349291920836042508655695610617994624540306530707639343177557193514687103392692939232416396757032035756618696030500073199665153779039100340662896211606004301443380491201657288745327541048455188805769074692577935980459753096273431958835170762822349249284360318801360147548280105771650496975552991596104170827654393381987222237072400451707639881226331930285283202058004600464692611991422382946123936782641526739937264121669957782873578516860205992182833783824476921509815444368547757922843515938119787916754680714234238168264676103314429441649914858507008354643447345265054534927204610805462735669352804054099982035219079688464465156319674488535002919600667666168734469949748221498947785953042154622349691936190059153102531244743362478656321147318123820318569087223628087380254618919298235572650109580699518590225669251254999043839219211636975049245349706380299061042504525825891564429591651572124009778839913078303387023201239981131665223004324757735782804176348167162305496474590072508619927360046672468755604323271747128394614748299079231172051752465946059119015668063571070426260514036911517515259652664319326505024139529448012762457797036984647368381059294453473298166456992006831364448820049006583805695749352068890760933288193666956295968981726007160104343945226466149423412755267545021653625572807798255979015031188648101821982931391641121262117862594014591942519043539256621299168030932940229634125049220202963257427421791563146751375016187960791783985426475755476539620453680548942514341789133162869246225607464559291716040390694310741913878664463413919779598069963268725222080010670087461833811247161823742451338824012588022095511401730584501420855904646459994384423628465767855377358637250614975659354524613070426285905702277127782518600325328307641361276137915508662477830257631270776071426055887820634019986982652551802737276021108725234139525472966787502487310974404859325296690445114391224007011018392135068949345895269024143269167471752845480446584250621326334184816068974520888595978883754018598211501418733294220533974188569890064346978228469513714277099266215341927918446485109332768064707400865121138703096649229791584987622302586012064296392064409216307071620140031179031753058543907165832151439243484203117355650151769957967681769261510933856759449634434582617267729057999055180649183085674732550483894538271357823651453022715397653933474290350834218318383073757662712935703295122605493543709719150549674362086895522343173785008142873076053450067412993383544238198509178699931202127355002253512964929230116698966340426020103453469063662809091998598101987035830844801027207666521581309668600366780852387179469522170831059296944850973382246853013412074686637221449411666025304038610565017005954415563098600378065958539860812731335788442543230164864799164113092800606942675805371303574227545711933491820890699559675299754003717346808972975931191507871444153507142398827635766671163072140902267495609475596009459318066496579808365623571613671204001860620758791414015959714963428315245001657448080345552224639447275679263013278967572681559073069642811539788902619183973062697698134447334956641599318305207874957679594969317051310343759280934759016568142586676831041020476394084356370055668211055114265680152378037830177986253629996213715219660118682606549118851563124080533656686576462518658494255360525060873654692484485790935741631272766716228572009145935224596267542803348666609663208061562695286617617008333194433304014734517025086507907036295001813782054713464489351161268920955924852336752009983473876388118133657585649655326374788809143350522979697504914962458903291333876240232607195312468845779226669098980966259314146369993707080203657099314312416422878215964576260122981588373278618466957289262602381962175488371103974840788500593170392164195948899558353525167071373403967798930385440774698191041398802299543860253697068435969032965809044526596103507943621552237380198223144446904363410985608138288486426027100156863223128928244902471876823785359393157977571172317791418031094765389198416743156597281359721506144707259343404619217206464778619324796636202745771844444161966856708377994633512714696093498677729991127694047475012705444083937856593866195823793197975782277123103775684910878146361553765660877020940301112375272034558712232249518739269141334150700032546134869547281385420184504807817682549053385770990872857771381125075454445237875399650199629727528754453234637378936993408574012894133485400155753910350717960899519126950948963465079184518325865724213353317871175348730968754110311947376728916040813166833263632251910815050124539212999876373618304168441255433298573417061222323249475204845516427236682238326304957583400992800781547003393415681120819529221204087123593105651836508105206865994686450168835208232860760308550600015441047882093275176126018361121910719447314979255152462624297148000068389950785181914370852077530283792040704912210826660311034294629465410060676604773539316484423823256362403298291215692595040069627912635502986898992444292183089448863360929984682678254375832594603580027013977686452131787465078605889523056513352295382129273857332922346460599780438557965779888739434404223119891086028548371213249068967584406097260375927666192015254176717293431354192836006078910104931819710008436150590211738930349313177271361386841544184878572603306317222179102237221269239240714448266781248420245581735467843231083079381924860973667294038449166022350913299845079015283003764829663593421713922690244140473479847884180254186069367320541098050563429364389907877456648250888652969208249066579103463876165591871868895459331382066502417473697618078553594861662448904336066894727003011438403847249654510479695368242367311933051555505137272667523324314413791138507481959759217835574934291685315972402328702876411112079656325980054883437964070743105584205104473417162233598427866019213424825386250303305601383251101284158946536529499156365954986992741946597456186161853098595451073597213772557190777516826315017951501784855547096771746915298209559182887467568400571048854352873652893584540072592541973072702794424197840157221065490172059317448588473177004369316288487652297131379008723755830855985810466790432263223613920722998044696468417637468628297084972490138317899757899053648473840525961870595239687118378471753628627393668551449958453646769463600544447000210745949285325745575548446541422400261458332222350962404716626327605910171981567881403970199064562642718057853508788667480866048783801101183140512865598915903972132235981971546631544831678268646712572338556543067060786445059720463066489491959687642851020833892453385058639897692061134809061932894045290164077818605958258416179895538485639109504743747198164690365956854774914051604835921833382883447858706722350100968595015428130417669783056832912135454363723376446488651743820558415695211460425480787877021145634476216377017472115159474377088074597589065283713877532820570838340515630455891615267889101090786322945905249072538224658188897521288141854600267536365579491533916136060678765158439903054782682347750469055454090530691248240293028499844832575639996941383342550665016837941654318465313471481639116601424596190629644276643140702207180462068268279556102102697425579835166870771290294468808814594406007379320467398612063169603126708850644273806010187417914767738280701001897316018163564471715524501631011158508713956142463269001901871883444065694866528615849043401343068313371560152203116730768077609614182630803778495356812908218558421220136248744158163706295220471555314646968330794131611742958165606367180614848668230510349807614972080039253505937060072909948561877477673384977825244982801678340397557893560594539784189351133084935020435056780641575950899524202972674422450446820248183704154570010358649402649484094673984404767699284039573823824755679909478956386429830965080278880843233904642058172371785453503450892706526683911668754121747755287491406351919098495852802982469907263137252605281048035488977735066039328699494212420738261048554249344465640970088624799194161779088956798789087733958690888399686874055237724718790520423333191041410480963247399178327429012903552816971732517733555946566685842775163083610954389329221082419040294500916635333432296800592514385710816751209457583857391586894719869543746567753669035087707991104380369071731175950575857337601271592087048529736259792664190919041182558968138806511516497803076526915910613326125377375944929609839581219393715090782157868363377269969143160226038630709954584997185953256996901454412988447429165359993254346266820549066254540778362852785249323281196448440501377424035601984480957130366947131950875113793372424628252581947945975841628460247238577212995950278785838722307895019338495264422658212377968318277712780087136517640447509901597517943986825698763573785488158446698957329925838356248446916911136077103602476679784535376074287746567910328270741900481421253044745576798284189953933550807642596437315071443334215187953194527100332911437808153485056743352358759754462510660528425954716643809675097592825071902973511165948388863934768884397841125330890931434555415442729881956866241136509839586934890210680855406220241687664262537080473719379357985032108044197990849930804627184441348395765318303434599593743857537443822444262937106424994323654342050565959733335706504052710603271990233974693045147362531351883395950667779143696280917853809346990157999601137335290241384165931081663786845990869094874326265088191950565981747606142401108037974718229678514035934934756575767592331635605121640679525252184594102379200425845111782531736439134365681712078958338496959030518686409544767747923363927485828742961541120877510478346004900487030187823608899124726465236747635578344365049167878528256653575971373662929758354688199811004622355229854360482221121086959599816807290849338661417472739672845143340380807684200784869549739494336967049216535033621035909898083657736149998694255095368932219476115234962824123082335358836305933918241811418074192375708431206560608631093835924947079947122359980541543367484155248989411464953363827816752536597007748142879866114963758191409362926756151613260719391476010415802131510487215496307964553675782099976887179148075582194541920845309608143750354933390890249282212994260768242862949189362202300066717561632713221167492916475409102138135344661354400933245726867899291097396953905154905494334578050986988072842168706581077629104806923434840580476275287377646140965291888881784642355512915247484323011300775883109469700878241893475032911551033700741587172456464792722943567282678462606061072595333676896774922745300965601187746395128802596776232997273165066833354252172971550013264297229882341407986903355125287375059389895280910168651447715578418387781020193477203308117491795226612572282890161244690169498268990967070578900216596367977359799329360544053354266158921336949633737038667765474476966835977727904676997621254744167842754953030262450335287383303021337081255718289835580370093803267600273999369300335255825642213032016064228431943590489057336853291137765948519529943992478213347562051628949160715655942825541092740407951332472790859520540109721397010593200489757272401703878116907417066260550868240047617692534401022156130714635350938780082768246677044159382817072187469588406533343851046888570437823886840147990638963438281863617171334030278630557814266030018210050145587357143402705234503968303910320972541047452674121864592482323476000503004181576185513160201775108630739986663550955087425302296318101276522922674534690769191224220550036860161044895527716718204683732187537383153420126842691372199241057850849171821354296784760056141923479884253466522984075285859897060188724139509141338604562240667319962653836691401451301245576356473454089902320143460701661030683694593486547545870114637272919465983084747434698083057470903366977612782708446488672144596154810003381756200888809125014418425964105512652778001858998014613877313751364562587111952514766404548330855106983546621484754574443049412249777007882510624092266469709908517541519467859120232868338568540762195386083468303359363173805395841029140821934015778410325130493815939221066115115076276929936769091543730307189884775997307417800342418075233145729364631149836267642280351204848755857738828752332633865948844776423617330503833138592268573146727177239258768649445864283719790139380055422310605597353173767243963420790607638803666573620515152268159238115658869714595622715919642392795522375056068314271093429385553408182312343788524172623786184558883164938896073128983135561409647111776614010096266868193017115010613626753186174790133086870883462770977232161040263588149341746640332915482889874871182054910028765094590458148540806420349024530846078978458726795371533888975943011046890981732191110596743386336073982799346021723575164088790983595322319909226435578823277693839172649391457174211090178881021655032236224291108059316330698063482461866945552655359136499113214917993115822490862552367850071182132117038080040671285373317884699221434255804169967618858388482979462166072276504121306049144128546818184040200033900345613297197224477205705525001356021696614300954116319493440706793343163596808495611639797822186584506811068795616779853781707636711828660617622520835823172984956842434138737142465834223030009382292293521713499653275138051267897526680446557723760387345380974374695380014431888636621912284157583275767245379948503795748766284394419503684541448842210996290852010664989261600731482686112529926532593746851095949691412609955070729563033702880864160259969296325749871440959456315027414843768013506159723412128793443473931199772830784562478140749368620000484748884399028479855670643061293044169526226434070680607805895649487308402606020451844840574614132644541443450023283658928073685229424875303742245882386458539730760104851426901491567127964468235185480727682613748698798733694422396514940907551540876972267848790417260567872273188144377509690475157533138888652035967086771575427756348546771675141240932744718176566456281639955726514489121748421177227367139191993319629715923817537321308843546012184696869993935917618129087240537217629967420722901244244862338079152643335592681138284347483703610768138159266418068333358405484349248826151192833981381670945430527245487040131495791634914263879378379205934380702331516207489809265488696949407412964586119884352642803016535708803319011612141946172054313079167508497062941254756187630670696603961837433154773685340822593503258677185032747582144601847764960653967242783314392812193409105610163467896744892070346947498847958589468111168565860864077909263366427323000728206901440299510952949255353293545628105218231731660069484242503645648446881864697214443930721181017183810141308952100222945012926341714776051146671664323552960951948245293783355918362520473637577625438378401781726921450433918681032189960725821280244432847559448478533320425996161521906876743511367365119710044853086358564630291983007176888808245719104584709785171754382372476809162846552382216184572802832325150050496854878975852322766058847325414980280847369045856213744982927765842246541899439819380792938272282669665026246030365459966690569702994277749694622680100751208399171210136843358047482350324007242797728804146114834801715263667674570467222187180895490978029743315691873223747832688487596552671143219979105752439184530684816992156899365017667714613179126504316071628383449938413450984995285355413270050007409171204684715785804278766989869049055585087967398087954644027767869573752981469240625690404414659001861402586979097855058455442764665520679545033045993187520692211625401598429182876938777688043699343559505555493809152507054895802773207455167428050512558483987509439422817451993933951355814032962247666861897238884520794139267037666075826293280522315227419411194000371758934783066552674507868365215920978453531563863968687143770715436362264993806941403690132877725572090804434827194874720635632302641149070602702785577477602596709048750435724649262406901395221999688503265906718129560702758155511041390612589083770298425193801124164660829411452457298099357042414443717492164895268867805782051279607318683091129114466755170750832224816055746806313504752024151628863944878803879365309178701230801633147484644043696886700976652852819360864268332467415655327715314877791629106201027789682313287508504787802737322237378163559230902681046309270295107940994414328477004124648049229432209588673300330458418083647194040890826352714431630771007800412138693502723510070009532103693340647633413906862810117570903051097340149016630582098915555075031390113291491960825152565485358974902414292429330663704541427021423955597221757857120862300973838473820512014961740555934318259783930342560322835461025259512134163267688343975280215983386554466535349971232532975072580687937104868837007954289931407365614300944157405250592555220694521679880269450240424326378757266901976278340939364233202573060631570451181849119293474681483995134087688761753105931803756490542870723776934191980856650303461897601255470119883105376770193482199591542371703882833703914157388918960097671843081902271710748625854190142536557128035710149824129238191445496125085426594617631758278790911125255487742649841536018788902245700051424048895953036564729817622271632030583908131878785185859193439370249507751470823803811082421528828141167379541685362064195695318261367096031310420426784453686761256595278345867061878371814117313887995786311454655853129374292337646343507518454864781245168813215795375154018629036572923373613077597177471306190390706959282604803909239751177380856596910565776860384121964073581860670121165583693855490092624537490323892112855517372033528086854121994261483630347526008734443684056323955941373955205838032961248653100870629599073841639252073664705497995099210827672202608902392213693029765690941236411284191402163479813334329911291055855237806130027538742440225821514199731149377152409289119966187622663229284700708633284090267493534073498687365802917299391931240704657130679280180272975808184364634832754308581786772743837039572098581138645260258223565576482563439639474314340310673425889885755726851459198339883549898560694822312038100583271755703902680906224573896642414528758695039601059754044052470116468100003258191370784347745239354817446949497989494963605570117048541006058356480407519484222899107206547661765049130810033233190883478274276602853439171909623022010520502630830616556237251058378327469123617912949100373123499067987034415708363757648619983489965519488673345040706595757494772248868921163185353637398619475304818685667621574112687313153811930904777716568054378988844235709366732005893578839531694537962706172773030733198710838754228966875621421571188795070045717871689923862847151290797008625476807826980749318304086453793673409048097150201753162046370256280548524034522645865460900681464624178872228378151132511329334534928911954771332916460251752038915501080682813989234810591540883771116651639237469374717705013073537527766981269013207782268616662081903798840633402747975835252841186773186473374479898668421077073209611083122254577015748291598811927575371533037528357130229660988426116026218290876594524400979306815673285934112799273875258478766665017644217778280452660674921238394579322607090947318695249760641977762118347353396297381539880797216323536596354366974109454249787569812288821331637626883330634936959940721536681755041422398760732955331038983868555858105544380878773060351055068166154358577595301365435341195967354405102650931843283326068311045630221293881829262298445089849547530987099306915661457173081117520268229794754386694829138685572088488314522633508760229530670176882293204138342729574120984121499349573707302833019373708189117027850212440795103143013275677528270390761206739736632833205305074986138970510704441021273392042682216444656452154555571070340882957368766938451047909271588829013116842323286240303048667869188861941764872290143666050156623139966425737531933787364159004365703018318896465054636956688249600091494356485113851037895376366947153034550198723175602811841888095263362890710165870690250526414169755306271759716659977469624889683597989913128346380571005355644870921996398327461450346760408748507752047870159646938511570956349851301744366210945094149025854662385591176644181134800633691064877047121056439803839692740211515032830014818009058298078272334214318741322984774414017777335719831743905852942860519408805418392415113766108572334256796421681427457048619987394741132815822011606072385926449176316943787507484625592717403112606605153347659772228893558514673501384435209884349889798887050006988294418931675211492180479567254799961517601691525023297201831485885295215485958169381226231326520242283695793158550946132514046147020772214170020491026887003020784421488686933963168744729299904189102487068835246086377122530235490544929212559950250092631870286752716300214365822118375199303493736362866440887889848171615090635015882327910563247356492458734056004177635655227224347125781121647050829081845366121371386576825916033512834647222419061547789896792996282425121215667670777564554818348562888167076803401824531786463682637154144996569271498752807185551213950003996598086478182197844769401451838718272517607920369031166632615529599419128901513636209620761551104168811273331596184114601677815568307270447073480190123664162460523663130666642607939295772378431570012642941380849151913769846806821555978851980838138037928450952051884706373626660467972527592458425403731315299934964369872611243286927498720495552198891490666893078250781582225391476902309610196069427344245375974618937023784163248715752218295708267576432678685032916364684725320837160383610240897629088897872076855957831237021681131141106768023843844614170299103012555030501587265947205630633321266115539282908289812360053790509181567165437002051980732725777138463860287665381783040840612250807309951742440018222726370324909155633184460522405418901850766141032898614869074126394585359904017696577511621487813095434870916695720853456516016955843526917082590720109090828743795126112483354929334447375858422288006033384751337585313342253803544603290733465400142035057999885984033946617420922646372402625116397431642581112006145764352742203992542328615794054474602022865735144072360308415080220522631924186303372799010597147975748456298720529754201033731104229238613271056925592236789441380588873165399779921988433370106415755013533834314584703744447686141343935286625637948750901292039361698961769593601227326272555887055751926184030447651812212386404205291714207228423492671844138271269098187759291745497851762707482265370656831137608456219113900279301808837430827505018323226687667965423999971721393223574975074214112887986058886866770802508992822990550615967089091677759379092368201291762228542740145965929711332852323446796406215864627711805810576414182728828405137944749331501916292363551842304881407661133951847912254074755840561195393166651699034356735322126155276598868581276797137437408546239667979752355185092657642823218726830192083588931250222358422556874286175884452362197785636301179179503395361727290618996092804360090453601513371436311627759240727156147886849138885200185222760318241016062133996405287425013972192671955055980641699351206266268819664323138401903218140830870796070034944968311171785952493332369981186896850754880137560438737948265410341336126063800451972941900145885755622188308749777928051428263612105024918022507209645723754632319577062967825460168658381522864408066237471866351289708823435887333559486264392026989022437851922679534028303628929771278158956647635450319421825701548700279493836752718480944915354756508552073430649196694867705737627455288977207268502907683033935233922038045650391480076971482984690289176893621049499665440627689182477565713080849520144911134216046394205388860689349566215321818063218734894891937993842337263439300639060224233282670945526880931494657887385345770101606962370067088913238368539970653762112181175504792390876947414357651086618900153596835513553356427761703924396990557440531746249403725092581047254017807038355454470729346229398789852473437253456178612994900600935772118512324586456721245922832345647978989258912462562028059012049912897859506417163962663813245826542888989972421794443947447403536847238701855583331730534354035051264790283242857989071265645914428985417404427565715275637519530132914349515645886522352522317176406628102252991985866676846906450899772365430012388957816460463709072361516067583808243786286405365238196712780545466829384187954066390346189096591942628293455672869605459804701850656023061153084535523744625470986429351150725775354485250647423975938557796862377810468782544205686204991855811709467889770757727315393956696375200049619988036867418199302778069572815702095088089335332295198612323759415622692058288017879773773566127475007312645480896494019496311846083431229064955115425879204697137244790736007826645542699768690632757773281757190506791461086721229862816378754125709589786619377270257347340146332109196993225233431089362572815059932974399235126078613010289065888582861411039156975320413367947610238353288016521520879511257681534038180644755299015960543769411618474048380874607413532722119206894865659787332274821972403821724383827802596952111618951065655459441462165496814609707195780320466185149174410374528755634060501970287805810921351133403866289038087395200362078364057382201931211890286298808641389846165222572234698942412584618958271874953637317235747529189853346284537352659762856827857798442460953171355348894310878466975128882593228879255450840540203742304414794517514425049303830155856932072674092053471016819127145855144303552890960844522325434762536571955109969127157232506799078985698744588276959443958030592116971195621191172127932816225738746710989857517267672065690336481816546198029546331233947854050379400903357729812533521579882434336071278454169745795672979070527842897151158540907417148282195946063817233024809610495900730007441619536624706302315710045320715622425557660132802456983009008525905450980579946080381384580887084697495863775026918408727053207795470393044714549444535240327738686317674967915677200163836189522211249254426590785512082749473930625247756105210349675522586929307238849524767928196778718202177840985530249911072119139693049819297374292100471529415303981435196616905673475558954281499218080875484137398174785752304952844939171058463370943418358715792899335492309926482818989853092295637608581187996672498674554602141599455339841093469225868733795936318950953005801030950549572554291650926247484443065896805795945620050649100500391338528809878991063406893658474221565978491594392883789765170931985396873433293138467426479140004796665219619971195963761431557808551251477876083151380038629526861181391419916425939569059100098374199137614165342734381896661003438547333224965430637170163991991323683207974395643621982597124313211021728195909868846855776212107248383504978232646626367744487678722447390722208786743469136024964849633338905827917366068979645794131594743143207167424060647096827355692595928654143065534950095887120141951997215105897516840622328960915980649713130972741840601636900207329834867044720575512962972118557120835248698544709435479382560613349526822106367816528657079253689646307880054212613314737232112243921686656140019938434168070341098141453236537851237805792545121681978772465013375985326648712869171088924046012423444667326188474768017778711666210245570475475469462815046918424243026513700213365226195333391665323771555452364133552046798697646761991304672778459905631167041264495082280193822278955669163860700017030127429164651354592735991933920907660232983134429505665411474757542477850956429328269613459725477796649675718671108715281677814899225375994140169734483192267875366946701514133291270774925532687190002018364177842136787754864121899551425891046444721042360443297486447165023356034199800714354480087156101203975001160404872243727430914665645712482219325752234649307357416303435346127482984685431647055113976919060071660225060419697022777005297459075322802289231503556499508148176609999096952902310827703694924025646796018961045871811319633731929403011728011771532697471507800396952395896860653375204832313115235386444244099314188099530522134238328894238384715601463146897257265383701127980548930175139949070262772290871623893518131119402867246134105792275772668649065435579759715672399664332296720151359163491456763522616926966415799507464317819908915344590528348792776619565222270441459377866093324219871396512708254397090896343164465406457928883543244060248514745454872211642016050552486569621838148036237154309623322674165131416446019164529931179771230252654968892223554949059085138967357199031832011909512217503578180365041151115251025402958029555642365960700665693514652346493141463431488840619737084351436417896153493339322711830734690877172911006728942239561636976227581183500099995845630192919278009270329552773177837082597213046019240179527264230362828207026328721892856782045622490502782446274174886434992006273727462936681678236699335002478216566067517668859415155948722575505248825631979782555040558286874603265262015389414215330296344766569118273962613936387927703300148578401543356494117305342881193287088610546699955538054774550656643508691819850437425893189344943017790009190988886967596515993878165391372905715553970979238867026660607430424013365609649981815845141103814535120396257971318008776157093006149788698441951975341968371319574076771420186428437272664324263874137074492901067730792718193432251354728540453880973395971000873440782122022620735862482651302778846248063096154673364258684500225644213906145269073398473093428145540595861207029397938666618855126208847224003214803582133267076582959415215567202956766956952356205507221082605933426873453598225043080777959302835804546990845597604100344938728790931727717650313841144525767896746675421755229177955045291087463924486257705296189969551880742190402026467778609970958269940968613218296878878454021625042699989583259107114918122238447278445953605639559722948996120457163434819209255844704186893140244770609808570362644893416028497536999802289839202555636228620011512857857971164976514435153949208578792300699711034457193766048757085251570337231011869246402142267528766803620714770325042973775096849381676127405229887744751540456654130864149919113394988702646096449532982348172389508464377605894759876687846111975387315768642353629121019055137735577779739642689237401551485378150890378125776624730225020137748616061513988783963350715104693838654254836228050226040744598363226356656494796394490463895548603200358415072759199214319662957833136022948906027377067564465127362725201085212762044814562447270499879860488240709795906211983164954272454440756426983638444503473476142335155163406313813677883123752795569566362070088767369334799039570112059349218128060343374934177636555135613307838587364203881991894126631012932158466343949484233005651725097932051058664007458566215632373045479844399200744330470380701648045223063104070255833040932796598310689311509278137792294530589509324174423747656315270348151103744772396525985427600792121540885951597581249171500941813207188707093346215959125984846914882581390696621857936037717733009204905740918242030739080639463630097081081042012857882015167245077723863657557225285173652013725656048607356118141888925073699057811397177764015547929170205196388264765199317216512248264498487975594055955978004252265631125668350054424426788442761600756236726456972393953342726026096211494835491951139734257798658708101895141943403491523345131434088980770054481057306306260961822956538362578485252117431688606972838981120251359891342318675358249461571001086693016198337300554505014194168764339839862449720096797227339344761216449382595914025363068933973280608758330279321010321330643533045673735769582401897030624483752028156845243789402532770122521687713713401873525626557280365326830619746460705728734111713968471539077290009312470181067125909548150236000179815792174326893480015012839548090132033738363881991097255268501051034000834452521368047138298088756538727861747875561736226256746333705445362688032793934912367349248355993507139994094110936293200477291224613190203550191147734999264485201761940360006394081886768016998057276073175734611999486093649564414716773547912198502483977615559218710899948636946318175974145796717274233469249698230880313930807100305832100503195873922521407712304654680958239240072234870086717390350584616160257919824408996710819046453703712073373269376460338699156165433509175069444937656273005262402940103531329379390142924006899569182795039674823133359922591889927771811608661253211917640045013286565555471410219330979064282598647516776873138831500829576336541053446994465709093321970263522424951028388201829331542203868825460086480470712546141966348184479214495067736503285221530178673093467906410809043674673695459433200955732769493367035520571273228716918468832530151488258077461594409732659823817437165262258122357846021736581245707871400007042867864829355378642087159451810930917270797873658955742251328126269131384575299800203629606418088111271645986550141683288518736446402159722180826588302128375724418628273162592431533718278497428228418041334977348010109781536479322506991922531437577858015628443477185282596085877462868775858795427008501887093390649240387866752310225064649829917176854427014570072736334443948555604919684182780408986493218025375142953894724716609479608750959758491116306156956773971831116241314313874654121144308861850156315091961590920723662371506144261930861476919751308548489483985771537278489320114989099336509135158434687621506222433329660658069938898962092649079131460100610183307326713626180728727757294895137888694900597588635185789629843665215243360165990388398770853047129606553525856082162800366047704434979420474096141179538679137263702187898553109146091797689327879599905431003855540433493728240581944455581023279717361841255238085460764033440630472507171566473551528915442985054070862265095532341249933776093921503207508937799699350388497820038343646010015182944969096404761635787217886553607323904755023195498725353930122646292977934182314673312751624711595072224369088392475024479421643037914274749230284680156092525285869736490389257461491619997998658326575623982285383187860959983081758891329821185481777787740804517650190660681678754035219439283558654081796064163725195455813983542232797226181469718926918383851577177588414714353273929479264447575672916610923189389272289497817792117317698531173496454902085012614266103427039079370745259046721163641132490533645489738742631884275749343357008935303601118097830497292053728965126147037128233337132500819364393008050295670750419357981598905744702157473428130220699623411373150319583287123498472476027670146994631006291962605983010119055938760308194364379382382657682102246874564912853042219306497655845212834652949185749334153059182823928758739201105240027973287441807727226490405894630497184396625128994866820414349389538478096805541612544194893240223644971936104619803566781465345827118011406902759392706891189715059812449259880921324925901519094990084953530122753823558528766832622533275240098469909701412372030275114046202589862395098832537179272494128059667683584144659762087908315215315518797754919102115706923647061227623207786159606882526038771046406420822966191508456453816118739720905285728636295681537625515123045207184444325469256724340671729962953604376339778596041018191078470522425322671209973261198265748742153820876656311113117012720064123354995454184949951370281763213933618251872093659993978382114016690216768763049389502678709898910272433629714028441349512980548876816141815988865250923832486650940791254893659638169735205425814751868148423530529882583484135112565727652070326295266506694792917530487570704845426948017811742326714504666797703099781785455007506386146760789101116132129419717487974915923951937753978327243289903274731384707420854090813728180817399584081470005387885890054655368120191883699066584589200648708103992689580767667745345880942224933660279064353070513444883278718223066729030575018555593314290062249149865994017457666949202778440894238910959221276638991053079995646326591225365932345041152063642733990476985395412477360208149741502256020779936176692839190191257390784218272439821170935580454186195214961866690821720861661100254172373741826587510731207112805203585417694412297955038781736215847226126215239882320078324697987644558605791779526236139558629819361337243212452985152445149784362603102378952529079243792679470293856851168993703746928129499800810222017589509990439614927686335272617333700355704310081620641499804162619989889543256205187043877316242435542977802866491751630667166314897101353377621788679816775081641475256154762952151040176754495134830034474030953857686376362678832475019056674892504070088338408989777898631883283711425624517021799011154544049929432318647280838726104817020076800473574098817264122834235477385102773805819655531899235169568518744062881031373381451287877468420945408294961666583057612166313026348988540360941233347662301086046757148567245784304460788120223312173810475419208139806963182545339413896265517958811885587582934996556626723957496634911164709908906026439217526899983851703053804150152088223653487401760659262214995219948876921783959279101935365538558087270198272311983583472835744436699005531695412298012383086028942544426485619251071519897731827840423973351918239767160115881410491732577394599624057004183152467071061848443755490574123690543878689760642959921130236074509653095536947405668275649919026919654015070212114353990286972418689044156223161376475509979829651739346341848766978934173922711962958636588096648908565253876806578421027457692030668641391607686650002086614463236328962771175162394977245001402093544635552784969849409281961541227357702474915969875137805654530216009236476250131615708846369867331708208756016073221841891675281282177706434301448184905227727615992926351266579818157077568875093131665129356301708088563772697733837122621066436618653756819602138202699132403409071033246198000039725161621457227443918246022959638132673052919795988300905994280259026665145481626337657681860089193144447988485065692711341804463380647377409376462865475875228666474706134283774987459145033737875836351850832680608772453172991364221905883098620997935033339335707660244302657072861477276019068188824320742636757866292742705786815362107769363958241200207773874254894808729094062267414101183036007927478372791673421770498985156549584734080075320322590487499671145107218651654107472151029712237471958471897123338010246397851075009414580490743187750297374773346798986952837958822380129247909916270486728671434015663291514975657082801077714178523896288192008298407155768796378771377603600954636444985767606189436362615079782132601724718291676110324698380395303611394008142248934257814550064621497506335731097554384662295188707894704297377651778296194369575738369887258281538507774735235996854552416585776037568001585835309038704617676190512757692088145918571352841321961830978668415228589296685300508043385762554470424541926128237167642009007517298576932394196982909304303857813179800827493201680779190922065086917148086013873518771994525876893009014093374302363672907693419033297631899788362583763631598789029488822925258917891799785119765686314425768853143415114012966926152444669700502430919184338833007002825558518602482811598388965120832542779998903110872553344104423060776763751982611141712992688051251877373369228199721167640090403535409398278337307904350635678038249069466933945773385476785750088310903115064296358433912933817913363022692348458736813867803403184841999667925272862882813290659489674805717060156267624959340796678385387513922743995582048684232669079991914459683075693805383559490078815311076349147818882491959002654235331020454270784356730855244049125595144875429299864277523385930019271532566253010377168378955977686311707228148837888164106550877756192624771809930477479928166782741972579842471275600619793769538724656926425700138271373140984764729054297604524555759959680171548546479983041926441860486785355016094109940441827717438055157992155757027742982259688479729198607341699170098349632383073659594699311062568419276560859445368065347230481050238769802132970493575388777430029974568695193729184034628849925143929177114029401278154420662229918915584064391224306665490964570371868434523669199262276351102040100404721850801204327458588446568176713762102702540772418378696178936134918830884516504317288839499405588904730932072364315275257468209170648780005956282905030347020460179743044071038603442024493322637746422346811012715873426109104794120422875300452187466795765369274663927287387799483662054861346564548612481742345711611936955308355732861793523864501295426200334518213784899007937019919313242490489976906254584303612492081357711214560298559133701816253050228248878021308281797825706778404224444181048239543731174433072072787909595745985092307607576664214637190485439730044771107182934414145594933071434456174353276396811892375889648672823796163401367212452966908227342396637748379278366743672400664379374570632625633033515131480300095012891034169169315072882382396609563252862802606631581606826330456115810533621270146323314525896285902342451838445227087237806764687564843174631944404438172577705735107093432954244508728446645707842212503373941365551116548818944189542127808545944311297570708656179449087888958653816244933454125445463017282605743118523477319131187668211482888005488136590341248213734491487240602833930228177861235391403131510036221071994056794096852460124537559290264024646790704113226959737544024986117342117732038259755316299289155950154333509849907361028664828056665089488932215219695888143543717320871684449055947534736945558994252978825465788276997306035076832378665735381774287126130998452505500373931723218880127719175402155594022760033233974884326730538852856597084238772742260830830095222342292307590658291661913872933323564930910488918866792037772313842756418026602881932443015258525589539921286024262862301007968017831361244523455813732251714504673357992839670741470411506882903865469369357827616409039711125325024334326542514366171680421578778028645341224951016277795827344157908699458292223366583237391796738055990800274460542715391390222811552581992959808121368155048141468580742954355332039167297742808649110018569321089667215014755425507396593529930646930356085938493542279297570208809484638659453953646776184780253571210945979920276363182011388910502836436315884404707542566843476653076170814719188872521719799373173181368717412093631848278848299763921888392624971580698216316528549127373778407151522635314124994863689179625772737925999159850268357596448433772524541852359248268921289893517948035367416590354376533051161491271188672380882598976668598879989000216594921357887433609108812266964204795742294944426480445575813109925219122049574679421953908420651258625849976480198976571713407171653147867909576395047729926603063093688282302306774369602650711099390029893582062921235892964112495892642134890652853236283918442180236400130108768122956390584032346439869865107388683965687689713320386024437368153241543761582376416269162466932903137967501341937934886531723138428294802979786666826604617474840710911651967286414233631885092561861555086437489225784944323466379323602005659833670188974813297468585894756055719656604907643741930570741544253218177500218975902455399852649724912685369321938607903386088844036678181661028829622804486215249643147814464151500083311508807760548792210007802835173310271211036382064936872865703147626062639087110327805508521447799004410650086970135542130716127497160546470171329010032437541462355052599278822555076913857337872880236128633073920163272669640939817975812668309921175765498659546787305119973686323409380219619967622259140093660852076727488981025070997484161974331332193944322804581367929948597233256973245975807990374102468084714995046978978227116068663157675581062414982467259630182031816870087730408767585462423192215546516590836720474539199404741744494493472538070576328652750703248754738535817839181806554504608362425223453999460666733884219909108714641029768442143028716191228196507868248450933476282396634247284335219591742871494634292231490405501921247685922173301717413724026992017508744980973072474855461692126388460160708097808244713009166197789136127066465310556024695545912727675648313468248098979901995589527298637762130000457616691549422663789108754489939549385292870658347929658259175119641278378980516301322583242906693356544934359707629610907921060995094017650309396173441673424693204347831843171586058867057180471122867004992765608036728926713656929566162195683045065693984137917363584261701707779054336478275807545681513732523653703636961823076974117112441571115730957140151206532001900041319744414113962407042086034589880063677262869059686661182675231997667130554611947761173350486867918110104451574412664745381756223389261557144393631417294068793583491851180277497099561123862642849058642170016876756250769614493099308880405233326840354332368961261266869831048003320630890360032498786794725929305176732529145599733199700318187665613039129079474797473369522274451421114684768965741150340269330180727200495316247144837281784378191710279338269982510562494658447848277219046613645031072279341077686202265783397544361056329172725402208210863825011521448664729894054772845804568610786138841203149647925446062349465525646555793400936135657545734131023802039132805819460519571979681596073717692835195123490597451268705020372207519509758918089895740397362836575075405194730975985046439222157736634074615737508283533685102565695509751124304377391667878361760862032560643512197006648105892018663537736187536416939960880790367059766029816354846795382697132923978516683450778524298043618784051420271774645731505916888612940892609511860817935505990788793136320342516909515332025857232031553276375707123327381408628778508674022415679616790056670924930813647415081309227063923315528139994055532382822487984103945998546403253340329160328284248392023971086632856389236246557433631151017252052783921138043299563862680269946752573169488923343974878899036982236902503344673999041451217293084237526033837556024977719576513142447650374213686148419931012242216282945573105888558192352571175871232466670630160157808233584563476712351594630827526206628167672937074396104752780277969195976611000876660412936418860622127337998867405019473564874205092296581414668188068094544145036428715882117354369719547007877053292881155258246117460215582821935469450283190374505510692819712432551986309712605387838742822217198592976739620340498993887108642590985248105071093927509931730295287676305993508781245422821270739196432574607963259484064151575514338026369086990897387749202474656843168211264369757808086523264060283027217099684139522309582121615610892469055004465966647539895332398365743460958218746300020200824293688386404233464462816389943728437942457092714491961600595690679139618419872799662275184675591999939025273395036385654725808348637048246338745487451984891587326074879511053125857706088940544669298673069189444531223081159931960215479699704241249587175073853142310571906858777672218604628429389397110625062932793319941100229590942614042341389168439608657257473225146030992521901122335043342127404110290406305596570770242095882411257992582828312110454994219154195527169933807077596680413003547353948810824635114709713169281146754278402137330884181962132397250379282314823594449952820259263167237996241969058581636164232175917760384909279576298304192796826350786944941970168913947447016525092168080402389104852296676116800394431428837379865114344221087023819372176897072145659131343866021687715579431353182570313383977756433009914148686641637163592937609329649924556431057780078190305240727722395063486016562838118960475248961817520861425437428645526948935431421283092700548589491164471122199152879419635809069812568230219655720459612749166955342399110277927449796266392994254114179449400842653479121538152130127313826265321957474791167441205320169995723608641789490278045666184194146346959471881690075061504456141973245815774117036084523935855626473701533012564120635315769869372769898519186203233510441758884237171321204070566324281608980965040250908069258639496377160871445293866512520491366628800896328984075154545911545077324703667530104074902908156768437587324104831823717560026155051330575600590499347241294124681235930470578231898337905811280087530573516927766310222031676448418642092208410367920686807036999236454608354647784657333156668780536879201867419427166361343075174128974821537019462842363844258254972957733556058298253255028349957126946706708079500992455819505972737929940389867708752021019436034198690243116446413097699967092751878039267573608241124602209523426236931638014191841870773619627435177518643569321929085250797796124739001749367733717943082617615109776468248254802384204522040734709564945731228516432759633037476262091259411140242540643311495306645839352620567635490347785536044668563499889801478226037980910329562143915384288186115468129878566650273639519962636243216511752104443547081559712801316359520134951164085412249995106652919183707479878480718222838320411932345802393530243959439893753361290067156659165488175416085961168392526270733727259724234179129515098094821993627045751218713136563175163420624628018708803307849264225445708848547442552194314972016526804567829622456996836497116832180732148503209016308708877144939783144468625245151353073094150913685517125174216919112381899068318290863235105091646869672547469966451856746861312656104283487918085196039999684953230137777849526981908039709345060426109408085479123418589603612850515958102850998834811122249519242582425171410477044329883171858636515514969551499123427939312687996848711241599780572677786320250898373179610074736182009967188434642409437571080180243299520082543677056013989165617307087716534039243918647053759559000900225040830249848401042215948964933883859381130800042890128553876499320291122852776502203536491438210943153090946706768521856133921552286571407956328147461053664899564410774343451042293486305648667794446900312405197540558814937677820409017339021046840522548471786800666834388439139036645969648047016754296717112786140693222698573697695319059581420515507206251329784797874416078702004425660326413569430672529069652779247486935448002349519016010533218897311024097397434064058962250872843484046804430980362662843547002387018292718657753490078208563916433064156112954452643351655148828114782549408482614483144780512401938374377474768082212668893325091921389696065094412241938151303855002801411090562483450711494765101090901607773026294424038695556003286578982679357321218849784883291197286176266146820013543282567989032532760450039189075701588622022888159179110739815473974779329148573479465935253234072781542127211429450893014431196859167930295114941260397823129688738168866254271532265962655715003348932808600578736064406857279799791635618898434558399929988823831183187289154087126688221406176380851107339718801350897312679063823776086184672620340221556120248091409133117841238512912989245410932805759676679363949272023889683730875093104957905457007872507695523704324112546616498806461943917651030171036673601425589454686195895608653322466072966114753781454445929693868926994890360981102219777835143723701834446212026234475092511842814502781823948668496975218765664036123941983092012804797708221170356715852707844900468715607227154675490201782305482574109275580906323172919249541910669188977085052872654818445739817579523479182791789896099732206054195354292208427800099475390497703010851609023077068894599931266935411964432459684417082568908246228482190948931495450853104033109856485056057938230277440079913025378808054630190465821063682715747233099864593366346649464611243743280655281652228001981080277125972897721895957647464742750611209893068221626795397789817528615333348188983804177102673066168771272316875611315937725593462933764347339857396591773309359387242443810386347027694948725031735762261138668516574224124889056430565002313314408614127625725203891076237071244654927326890791762521081935035332619427305583508545072651497513768969116630295140127987534013879889381412280748749625598828326759851236894143152876178401492027792061753938259297701494315181642967561790178570423330641168784663975852437905653186262880855009337162773217514730314329464643114019117880991199962129392519623179390276490494265141544917457299734647519390888501091087924548168253076768038298371472028366593808000338842673045579915745459036314600764344131418100049608068224385580305617789003116724719960602042149897112163641743459854047377681212564688514694125612775700622891827429559318799610399841351493920270779386158687433106024102838650377047636591043206385184987581669156977968112508553658264655963203028968691610926784181145824452193098081518743200792128861831610603476211041846354581784003785421625586988106244390699802443146112160297170061370675233806015001801004585613310795621465145350694752245335569913938069552218227034921025113794571142617514268091296956085403383950156569259476132689352829873004233033524920888513948458099228667915356059941998893864221029862063771438471189476621710617657150618442363255989131245897367653288396403103539050237222730829734124503318490415431279630998089578764647055431768385709614727262011074750775138237778482627070214115894656613502789064327448572738304341537079779724269888474955151478802753535155616603886146340411833102022250629303807266758162913073227774277875867816372897064113736935628593463079371284933848991321571612207964384569155115711459177783671340755697556853926497906672977392155350530113898058976892242411251760907918209140597169481143693560425313723707634656218632819711132898618377521599867641286986944413696223466176063007011949767990526354159424935397523512885397845321575915060987473575718724378052108358576158716460349251431761157224022946160423460841251369328557706009005700624496087621595858397513536323792403906545896391410700006999782934067699118850968860927734093140033170128282034273793612338856606094243699865987231820716205785329890347897433310485249723898085850568485589634373508617238170873809792893061225703392773470292636397115736387991744157558509450141134782022467316940706995039251151838926316978980851439173476236148830616445493168440457882763223100304489660941557522707712124512236061219993887054556047050664247843778408690264151192253307395531710980893767286989665315969548353790838324343221435770500576944545342547951344493652625497152223615533799213299398712545891562987371154826265931245247729242062586508797130103427878450173575047734480375780753344102808716333341944841701223459455718193931160054498008066347281067296194981722897769051334326625449730385641766356467213607510791824091398631469752649767042783660605217160212093334972593035299611954131589747649986661274043112293483273106426167142739321543753787603205862036781580696509687378626370280480519111896372953206571795731412142924047174333762969877643776940187744395170359091072516707519670133062914936202354568826919457863600274086952962053917752871070102913161182188170322701500056934697569470015206966133317351127048856489020642898605583152371353237824384748285804006479576709036368517766436927577424187559126060954358771672674310077700544799648697486039431065800343658217595334482903730337130026785874075787157331324192862245730427983760590927142924789029280017962642792384274345674863288720039759609059629446244314508265417071145060167452137388874560995536040564724855777989886857995458799741824887673786940850899933208512466449160421997252878552938291901064065830613130407421095030870889357812997616584344888140236601173293143980737703219442740454091736440069856518667696203333853915739591015824834125939243374536204842690345524972271109548433590666646299222698418632244955831498447651339063530895453718025028395444102554016336680718333286977524809258867564489015246839388286509815648020089259187169954708152285263428218685841547303818500090468439242640846052009840218363410646413728373055238669047467018271208013668974128113824389123617598219224306237345223269536856336340902826689177194772124818553462812515496269365946413850411874992910824744397492533889337396967756239935574319874784086099069049632615978323764662915270708951347086345551711160693563304065457957844637756427619450338193365499842522544896532153035740839233422686280091929308762495150990959413321222477216665406894727332348538430597482125091698142628608327614276270404101331963290963313511567343783760032916834162003400137437486682131661271599848618956541682216381138124034711105191066930033617821483394354826753984923779825760177534201665063171537149422442011794611536211367239759416813482585401882166777919171362984379760965348635011448849316702878135818925954719514704811522571654105530821877731780900478134165885559786356224521234198112727413279961944148319865955191128037817623423171002137497236573856343205744301636576344182732345325866940067967449408985749209110212084009088717132063783584540049113471159885604253961096398106534611513344660061627760107753118669197770609876572360120814175031030110800278840470550359865378980166062150805177252267835082448067923140778389533139403578247271306828486664623777347595945459575749976390880455640600581495729982466505798722618897353195054488661293442206841822931405980657635458059312904551952571090093205279877347590589819544553379707781204647126791880275072212430982560432380605228096125089986715018063388536842582478514476525176972729313514127777274847551932613483668001672906657507512026555053908839410343091103505814496851275011523295297415061000836375973429079327420862920623582403033820602420353025539489924434554479014651677238551764133626640868404151393473426633348878619123967430735688255340950725071697481975197485634226410763689052009013132106031336187708182062893479207490126682185720406842495846602592655636878403865899376222249413986133590305347269874651168195370695978356747280499969655088584613138748795353344764532129978396058376638305080873383908097588162445192741454674853225607593508975388727452382832600441412408853334802289897154554669175827221366221993551874968547888083237396968784522223874100404427777672417626310878798871673415474049358425667370099321249272375683354406834586067959870851948648097820390465794187266367024495271888669358889612530137838944017655281178583021832352545209801287967117799318575004413765835963427790657519334525933162917680199525538036634012723916054712293326643032424444096578604238818822201874181786668189562941819350731477105094357310671573004205287117797120777609383726105739893134744842422652967622895555113930552397595294478763386041315794730981602892989290675929485930882518074942488872663397652733784863957234281295234058327086156349056983978278282146007587645014988756093096687723107681246863682951955906762130713072018893379692456085515297581697672026050185527912134047587000339669781430449204253439466929256560524319753539735979736802648115420575329014531591769575462845680167332581126241381366849912339145334483546310836428052284586148972352367946841676702392924146894568023013137975692545402209089791348101916097743616741372652351241701294882847356955604024244278348565590131677366932895243041443669073163112081696392555390269196389254386499748616740313097057493763898189118498392512202450896573481750675939456305504836882913610224073066296740599017335322230622282286447607183872182989726048254054782280268233411698282842383680743019666396577190781547621020860829671674811209079582799895130659938616045612714536119825684106807811654484668269426496798237892991845494231622030093036362011096414796500143132347611035299406392246860124452727488255668545211848855834089559306961715503769756805404585449019481610167048488252304210160445631678486344263754891859112579957782242550738441619438107842391337426083554128877871596319895456862385191773195470894541262229102994213176682497682629503262159497256756584033122515746422206182968575786826049148158389071178827340518398966096697771472817299716462400613468723067689433966075532730908698784737521715113249999570292862288242350319519465853257203009943985451886398088300642509781352631601139523865026144098903641468780944133815180926884244355695155382325507089171465790850956747209814256033969101459240827794335463110397344860052985522031494788354635435972949893116068678199103241757855769043945906454373697027457945524860006821948974218866906415804523591366445711569790376702311515067053817647934892146699657380072881613675613397197103564759220218862381838897888572781007009384570905932217870467827045974022447288614216707220353009906132080935879626153302259289072700704276561265804611951891163629689959792328069464169852172230220625147914573236762927456776394431553447638421614576871237881644346660973284421182137836700531170611939111561846649608337267816495333535300403728266780550305652451795337542041788686358039726146768027163039709370387603474698980569219450987841639778958301294256510469817635899839242998145608398773968298127384341825518478772041949825583816840350011568308551797774315142054562100368708260025307501798319986385383725749937568052202553179323792361248175486935119076125969346190304892628697343396606713582139411887882964087597710134504419612057104275220414764523099886886747299546473399691589984120202310491688611485932311816399183759608201422262875029455347102895238125689835291752137526506435567068369834353309783077869927757277327891031695538036188269380184242594329726075452254402558593212574696302078147934183027744442454854442928105169874334515350641023493945283623839309253053502617839287270401983766481927743482141667426238871224412508111502049318770811859588865916760739097705849287434652361255267144130531640012010021214982933746820359798230414198300730708704468894342238439913099821402667431040339725501148807511928882194200720967110371174575591485537690540548569827265868187293445855737710593823490215842632396273045637663714122952947279825723165735596263301393960685851585014505912697374797022504019990219197679788412964545438651960276537743195847597601072990832515235639454453197648527188449014278276668529542343144553106601248657362675063736157964140899242260835371223497374679786095792441426396098418296471827686059604147714704048002430500574388971206548817666027948457074500832631328468198395418178857727816759375491340303170676418576453030176771857203175181709256378419198634246427311025144990032226605094688179117671059106658034546373398643751125329127494354385845185752718193631489312342174786992094131113080036032806361399798236407990389907667061053846816670545410449692431100863691672888359905353738747224910860122924219060620297574503288977293791978019809972935774167214091828975810128822357080580473113391328560728522975699866121593403152673953799465901485229732639141359883438711334375207005440345096668457379280829169851724953617188806158790551644482906136717712936837261363344935104671675769309332705664066036209035289978725531895672267129273236398390009309299948689801342520446540221545876415810437959602010694506130404004445424702425608758065545846660039524643200032516927651861415968691133628477200936847086002901808743464864078008148572589183525673791328643202134977324339626793374789638450693015187877622797556304797899243439174779246807663045952834050420746393163135900660685504435265489294817976179673748451174666167331640130091540469604755643401748683277627510277981632741232514738155382506790243263000863314589630249789299447987687775780996505654101086855909584040811449710621164039081113554239023738099231461677306160053460501662818128366423476535765454578374359058263485846290611673317525656972244571148814096583031440090589543241253600487538901292998882873845070116639255971420245003967137854041081846669930584829128270370545890214001239177819876839012109626685998234207793349952205405825161790161361438797871912552518797332009867804461809335197251612874804896081257867876405649366057598438801554693232683667868892794723256234246673438975843467690018035597727237021508577630206380488822463252321144090967258971550190440822229380269313031836066575288449003826892142344580595412814409863642262783376719020005599884525942881327835586327797966700850448520593395878894732102996627990058166295522779994805648509744269081210407825439457731152025704982848954219416949894605678310528730876105333734191052007675748807940374556518597269609196979047268408324352122601309622010692381003616777049173862173992562754009392400250608191849974117760461439077026550369978289958030190378278656880159341453830773847996401813802002827515457050746243079411289835380372714135798195248061247729311418198598232976065440564743776619749460057554877767775728010359556893319052550720885399379647896984196284415523698369453004837590388851164141911494018582780133658383079137797680004771321317665224358977503104446433804785064361786735868207474375036044777000694433737872944658227465859067948880926712010970916064651894892722808969493453814972863451612328339809287094406856893869071764553697897161244416124343759287786520963553046964979958082250931895505070382860018052211420872071622107600417656624433054091531927750842599558174107312193087031067882419355861209924258228580214459759245091081096089393415531577104832307213338257243446907786085297239175553929759013764959517133348034190284941389128142692839993472544589860128443264532296886502038376506695514493006813972532618276030360341927729772298553922012295670649335359691625159429787961723737357571138656448340165431576120761124643866815657172223268231557033682359109139711342254314044221232546074945734299786645164959100957627626922776186791174967568758390935784018561446694632634360634994622090682019445891630613014728935472099863649134322559815986668376649752123112248961500202124599750181896022028985606570556143260246964824968520441233885785835833117964446079538342976289398063392656885521541842647507031462246076509235686275578013846402140412072367121510465126663624941507642997445504629221933943727358046366882702408708396084756923867485327212841264871141860359620877045592651220211270772534770571897467925226413589697475185329898544451720897232302262553309996763991280710101773669370082068574538696163086743416497665094579690426439192977476928094797899672048103974452043851440523834023909262046774389112848787402185684031271391135165881485493882435376839251881361555491635202723302884293038595298725094247530753363235972727675007933183564690716643000735849469181808511798863542665906037895621100671368852887033870654561742055371253926439681441293825926062826538197769220985364362367348311770184990142860344232442403654536014474176627900913205353415953806596631069032727013568876225467729891229128179658174848689405973047683568560304977209224295426838230501598398261224610914688505875607039157939195377466593092855790564272687617138102996841486849652672427805268335008465369127286155129226581668684365687998232538256286953851794991271876173199425437408658677937379779067406960729471783111407451420238231026163216932568681256853013150877400893221662190208684207266538775474003472009177151415377534934327795156752188678901624916896374880540899647591476195232627952311360919851171193311535346495334596875670847576322632941400230148706013992730239995500836048254588497461864040370203752870032947729800335114777672743605047932335886991507336811936572818822695371956706247264777598948023197213084721101897151246853822788678594640468883869559765661172674576397836072133309194862594532859437108159755330578050346924963848171481439291426465873177744595039400587558141900782858565943267061002958898842457232170008722189636677529213902565392033622917163971399591986237885611308410921972662592841205554798535556051034804827132469018476620336445368543822607474272708303329647552689288920604082236397133090405378977119556424882071296297431083990214176170600661715334081352349578844428616800146786631403936843938396410176469510804095292934648427206427475954661269290541424187100054151044453276619720822812318223409736789575266854349741264270154512066480068791514109955672463913738448909060917273830010893487052958655058162988500988240533114344358626755677154844519717969232833400692496716010382468342075154395767984608492072094697633148913542893308004561206513234267558624206352546055530107420573852760573337157508173202389218083351399310252159088500360837993062878145046265560425740120337359828089098612498844554624649362905358615974187958118748375605238686528138202359563548110385997804864841222440708540418352870628210459078591767599384552859911885213462469464566913764556496453133921887702060298685968960863169058368038849226733232129961977169770227156946411007024476706044120084349608854315958206599167623484821369134980626797469103317888111260039940170408745720239942132870207198956110618201713777643642170387578921913858807827356685593039505910661724240506032317791880977076730617323449234224597876078220185622934392276505267138415448387496440474899265105213683008775256134060123987902981652605898649043302181401427860170812582531022506660344682815574455331999708655436766448268380066602847946156721981899844503792128026557416645718854597061416496098827745375585958579875498534192789638984124956747745156925353234595455347202182767679608037193240366861240793556308198424516573483377781420278195843742927950765847527155713353131980536328137174276126651709146270575073054409105526512514517456235100546453797396606895397778068263569013775584769129952486276340592641663904595878074439512984340466019114299779896962576794033739274780600323918531216936223286294881236935645516153723521019803138233433669926280459307360935312627394974551472429801186599110245504034839200874247016870329575802497847584247508480894860146288302557422437845789288645725863461269899589097255698344191876548246847447648082731221934358638872274887400071578160555047070265786976176064300184046150214865849621787832386945252617610118866587129978825771953836626322110626357517749666340341713966499701545936876539582058594838783966550325994350007314447872296364924765836474009939792968134664147700381918894148443902878181742132581529047357000200449537370458520223807730764963641643163787284759842145761705586868357267980568984785791222945133159858426376363516911828093208605731920343780116307945378701038217493878536143740962142645755036080998875858956374491746619559715272743183525016601187610530650684660074536018088913211768752223870165281061434233658639839250327616838875505758858692449371104709342445328164350831461191928608061504375634240127676801830021158865213233506387988548015424309424044390467905845880327488381572286691137754046383085743322828379374118937780196915456169248858429997757394365819368181116283248759835611586082075974728112511111376011180621705744421815229169861826450307150323697355227606106175218962155402133791605308449847910602396206710333683400104892730691908688643133144439036513830304284370046036740868087717757141642300752516639824387423267375944659544252318710433179323231046452021407517583999873670573196635550527846476293994436444994032066807695076460518090185315729862786800399361109907324909978451075357521921049561719094422857457467814123323586119756583900997209106294818130242883509123975613759876002387167467999283113895195521174795683107480905596629527119221256808233208393376874781507319814789883384632129096885649415171838106492513261232651701698958518542313045075603096189058249383924000640401773988342762839314965993188936543823910507268208740223046129808560477403486145423534003584158546028316100973143564864953396260245031091496759029220963470314075186476293573348987741373420615287774412264182896085261873359559618381857183058911440705555682528927302088086117968045823328963002124211102487787126010207544025207626078704668605500762291911011359475547412178072091322787195744763186727396567430708406238490888610577084460472280767611501902613237563567484022281827415775094154936319510036669871970163361727354766296765636761596149406717370604741871100419312567976940218329442724011081797774717016366854987930787726574056165321416281289099936023110603095027222068783053512211784964664801501657924461517776582923732172090791602871514833771998363803821955145773896147446613024733163885683709490663487095137126334652875135182082826886163427903608380757049368950686050753718498824516711315748986233360642708192183324896939506886658002729551195623241925105875173665738017988698270175404118623934641373398068875363959977708057908774887908066128479800463805829714925988468990043753568412265503716371795148670051901499108155375260674063296486098903446063488069359191462194116563662858203785935265543835001708616563162008605824916023415252244500669695052784296619107512261685039333930113297731763021425373556616188470280011589075806053209891141404636301325897520152141954914645483873443448850132781584328657975351300270221019315436243957189623234785988931750065951117151136064562967755682766695005572519123754179108010430150209995007193221422546530103036002086360415493046341602175809768239001116216022127763421887960272802594534674328564913983465809141194392622721228311718013116838731620488368193478845700573943502005662971914622792181545333170186420035846374390857072581889501356163967237824941067340840461389480064925740545582131337226880592982332927637965521756013645640079132224298342644904178937743841323476653329385162531953704945665557840874059110754697879439988009777376419372830076100906718580405076943766514084038382701103138924082466241416154152155445701894647254503426527728340800773874513761711237406278546325389532496537676045447379044617124235766260193631363153240021079041444714694654242536556386426685208098768653744374321299159341001090903739182544247331973924077481155760474053255752260801808901933073188690281330996022944951161493902565556271027623341453061228140085508103608915675607621598452018584392036807988159099100734419649665022970399900778227406179899498147855366137123455756502338211581025420138358128683203790068919158504971057227303139265825093280047691482630762167806699432163210354766713762858903636922298139755690714997720238746838714729340130401849399113238063937522628529345394516493428769805453047814413073457424867124324077630226440575260165299390429495555326146272923167626380440097773061182799420954175361997150303160186047131665127317041258405086847374445687910025172926156900119939180168675515775133743874332082600163504743873290742962419122658180274586949670742199752758460602119275501405655502816812544013087826074853910181453458911554470689877141505110018364927643228179344980601086212082691659552656885608597723280481270073963045914730834659300398147540516423594412017043068410803800551711286279020921120401266219814459362106181585255681946738137310351207324102340278381585034297667836846012446833823946248155270687374072505276467071554309318772096172599614206603659456393289448411751801304749285345186596781203431510019228732129591651999301678718574917525162645959940580269737763000840592679233116265302814147058654383349343475028677196994932807246409247846528778490870999231929023919028993844349157914928775281702035881168108210583735272974898052957060291740341434745694829391720326254923016719672381982859016449086568447543688156323449487942658414766008659726301506289804327045792484184971005585001392999234845157230616685496570879842922731592337392385218292530823833969343641622356714521456466006621530543017040117973462980929236173471884800047397005770932299230504076283978845459223365612639253567781905388516677429693421242006247354328746618001090105739700090140292891593673330630239106463592608318599960610212920453552906612525312905165208152702750631051867709762533025951115340904882113369269402323527182508147742361989323595222795571422617952205149739878113514767346352700596294845506440230548664646734517028687768123415303343655104255138149877233255766983729619273736788360966785857180260983570952616398394342272849171891960591349562243307588203762130370164578788507086044692775010650063478829623471788132206207599313381693230358426279536591319517611104390150142795998157838288243603560084633543267523105617046703934388309734440557905415331555958770362350662203408008546882667519415141296895872480693880146461879457769250045567200944527001995983310440795095145592224575555919710200790881375183129928423073943984456822859395171371411015374125343951641686425320755175138817733046933272505237240577897867602595050228035256009353973491188731902826251959540805653677572988621090626999513510366164243169825380918412876657991564939374695809606354862583661958017203698325942254868593053026015101464200771235138254143895028175780171039686109756824870284597017226754580395398978017601757653573655225032892367505205988094021831007797525964361017092319779794779853232562579499092654386849948588431109849860295102182555781901101705373847391165822640882803902565018150599953285622300848555217691302025115361546178442487519972902454660215343887067940276493376849091409063233989217463717229750412963638557110478981507081484233505016464168336889989027423900241240462946411893360013384236669982606720183098397551695468979891589251504630014455536310980194515363335405385320734876959778407869587941189181185877231767562569210337364200047784022306049565271202377829841632488826772870656557702591522868085360188280400529962193923469803391363868519333609019281646700751256477385829843508775121748540522043730527100731302872626284692171685527163691709661911791903199344777543693602105168831368481504716253099643016830788068695653185825851288795091115692646309240127405152739476280811571373183612226726786557747167610043767934776248752597045431751932439185192566254442770694614351627205427579279427292703926744237724213563402326128452653913230325377873580317616696512407211031235661836925338511136275466512369093378320564239615276899115641123807926666377802284027858437404497119094153436028130673691396012557453912951808515498388306219480114630503059991471602912884833785376481651152445119864516425663514797562369461426054962576114973967926763372724878634030352128707287097265022369107826741952339031610103991891690090756989908706380514122085809730376775355592965922024484494547085234744687770988544373375283692594400297919874674629394384857149929950790339502762894515370566692612813381675935295780146505432184580688997215880290687387647301171301569926222824063970718054898982210407606522040468577343428920853774633793328262185219831016537101471601305988367341759887187361487232044525246175301237146564187086039125700279710500608476421538556123626949846856435516641154215006903817699064715869272542061780604251838389804420131936948973868767299324880551759099636404640387427306898724956998202133161050958752666237809004766331670706735620234130592097045431027418272460189957636844321227866487841460302670028080685062126799404059537365235562803203415864985183925503518759649024034736839246690336336688136492169460340091365267135305422233651014799680429228257682818216461953687631652646353456612201798117700402778224972997395322506908964587340603185535115640579545027932543812895387803355986708575278155720314937396578601497119901450000026510889560655218315146566759896061365159879999441147959359208797708231847951302065555424039562083066168509637467676163442478537806227008370704442856055480858976948154751522105228787217414276236787694136686524747097976608903976576316692416905560002389007983006489706827933564763970871069587605096711841245568260899315765792483187572624016545985416374590116365124280890058127286658958793766530778349728325275388989509316348498015448469326448215899606880702912347049035355278747781560732236571532093079520133903402542391690888415517556396185719692289187948983594414875904135714383987123659606166308825391016894258234825775452858012708495586243402357710172965338225990111534205558572285659652125716351089157789705036210868843836002160446263606220771400867439108693692109692760893105903679146055101971764430504752634859810010201904509145498097216931269112244809235808799861018355564590687020600990581850846339102001804110389701555931935059951945515331454324239306707835530725698977480723234767664625349010017980909672554929208932445064541415961894593672655411713029345150282924416196056314362994409793296661247687312087185419824894886829750637176913947009339204961548864563006091753729707416795723290955473551843838758512993129533599506052158984134072416062690357693365331179811254854463367751340573674180876389388889922372346022012231575484901010081534636156432063802860153952619427815479419314032528494975020852300054042596555695255820399226912811064068415185685374813886722717456608984884804179318773078828790904761472771969232007156177233178755650507813614203050405856401260705371325531718946196210634291890314861876095337026852647160854954462822066549404107774214410496122236232746038728148471356113757773839400439131353628503024035792306544547348343854109709037534729930497650522844030484418625677859207044065838656299395424823924772638037333070146054609623729306620939289783084272355732965140651758473500610751988392790797190969519140710086605415181609118379997343084297178105234818397661271847106024607582695988832578227191083694739537381542217112448476252295214160101407400431523283130685827592466020111619964765572575927827747512098010586831708033716512810161128810092824888393123721923210480466851204438829101833040629070126572209739706107289916801896226524888007772215953583907988164387068575341779042865916719436530844088433843491648661283133107399563810340892692590649403500357283677151108307108148695589010971023942204101126603958061448669425885054187287880330233916497981272150428593117759007296141691895463085033448030380369793098414902531009552671805910617171491561463452321317845991200560266267159587477374212141494738081841180249359068690328488888476387044252916851373623935151828511910675451135573673064430478187954724111044777463323939698407915480177098524801912018311726889145846006125592852505194786876016616744122606080949290360872705613234202617602710676096830772650818781345307980109922380250566810944558598806080804443419183008666613577996025212777784255602432458779916089608202762998315930481497202802678101795464258589003967072515374476076709341745495890710722178467539386690946457679954885064859121986204811927364803298483114918211930802660243614493986048914930393850804049695417073763799135793604500452435345090102305970735363463565978711653571421546013168424781437438809879804797678307327104053553319915231901901191437174165166522606039945929385895520126187588087462679715626162125721212870617692950013330781550846414509574975595692502086591961419490627682987508810723885780115980394030656630688283985216201845340645340823386719118449569196225343488453326370301145351093867398402528462345469508924413684825405360375580212754650205625928362806147307090299462468443305848855712195705864769405186396874130902087619146347863489012897986258526792283780565437341445832941654704062553929328816472841087975468890083566359994451392423001273796468806327825683641965834116272213231120302214246814064843640732964120319041146899328896528047846794665825290663444873870334705362341711986592295025085221948101386425766028097832019519873413634401242939212502668791743781394180270674656735031222787161374134021709446715419008249180769677220704745478530108570805219574765647891336867685727317354275004464491971998791950853915392621138555647145191456744040374402038723748701533824758861931074125635236668973172669162695301933780736539164653649652973968855280349046704166111383196836146060424015294878515620485839288841382584766757240070010967266675957573999945278254870875479291316110918952985866269694787662260182661103543741397219595643192840546885712786335787359204176343902409809337737261491910362028798470318092286780675959987276154855147442038005303701515718555073568653893865904940527947024253767121438616040572057101574666274079179487241183746214934136918613680546616929768837438266958216572052306962741115754680195200777723992703371686727368123631008525599186607508473920750131010618123521314419062894285095116167391087005597231404500336887531823454898491647673741201313498469821945704726786091108181899548806475680454803839015434018368286669379532823665399907897701818664956559586748173687027974549714533676932475059641177353007408417773116659186210366500111403646762340423585995530840762568423786487164110842505151213200998207991204237614091513950026496692533999560431626361912256003585625941170389388058139814332058711521631617276077330226750340625035444500493007092403926384521853505914850338697272449832816179065915982311301256280073096908505372698179485364152348529879838489203402541574844099935389407768930925933532098120233018333603510121621598186044945965900517521312651616454192933975533085925169730727705113825691276494952557483919469559799588045620285053071468493378898473855638791649495854111221345132906351076533159792663075445243559741586140269725025230200907975968719762987497840143552757370512094655400672036502729380734390529335328698812594635340995509771859789588899592719087400504597991354000926822730433733186755009072063238956955993542165717195329570182518959316344201277687689186331250011328812440294398904470226575300640090768792305169057078823657906081887159733534027304926163922895106528117318259384420065026892714279610758891254538464060305336255259534419865225751123682239830331694125185661337350588258900366578628337072051280288983770627928699396904774112298881672997402825064687765217397104498769492356548864036095903645306922004828065739137758092958536837096734707612147630069429973789298127464888870045763718558305601847366540842321178336573548543351185908971252783786959716526658075972091625764658697479640193381690810941157566439471561325487205306392106934782909238196518430749091358198412340606093880755055581191007386762131637496412941749501790566601411791631358978125611289512131630719750178817537369574999284320879269926751723292146186365786665728896063151917492996510487506620215783096961272445214472956027582087376111124173096799841871488697746295054936380571931948732586952913363104897256416504555625288728929872300114066010239545029358001370347058558640624220025826558189762881258386008327187886045010414390791749358088111077763902203923919774266898305824063883733047226788318883269123516828096081554764943687646313930760256377751629609486578132059144792633232543156685402194348631578886809476302900098920520166310804280372887031426815314943761284276390099757127680864984689909269097034435549668230307740025704717823211702038473668170916992345275243192964772456910425003227920721983345669021436542142881381620620012885310430871618332705657859748224222195688660076466846377177631612717940869978668187229355064895211319884310681098618018946430950661278839546462299991694306518167075490108277178544563590589578736420082713057979995205306525844436294224948826812392141717937624790151026128427160450149210558633729333946748296178585040774949465184196198081613919769607299381443222157714828896492076947083358484882755201966831962285124098994888406843174686819607448919732791405550209638657380279859807649574780502836874432301616450261086727474891178706104320255793534612143441324487916338738868582725641609370983187614483859782103504223073157420087086612293363116928735914308163929301729704133027418128396717416205228849852026709204919097035599133764987122310461665349738927952040642808211485626366882120912000695858167748791234712918471878719348785313790037320067571249547269864126414381477408023014809212683923219451400836922363177284945543170344069877309661432863915090257192772114740443177091979633651617419491614535286721381435441835320439453023641797513321627089605638561465327221251391247114162282758466346241187213607500764044236567863307207551464594272011098169867048556527979899281118653318683843798308034626950200994636038948899114102505013328895682168979997748122288953614530287522957549027670640908006585419381003434048841962257327245018555169550218646702693624876256868512625384111422389729055165023915177394584005548469015924874736996725899822243248835220196877111659324389756562550256744662301833743578503779171656767576541685605135913040517859754680982260186273787665985505901990478560605479660787506658434612624796059374426884776841091937315541405767273116076450646671536083030571403083278912642220497073135300554346149442821130832585128457073921121341998339912593042568165962154781089367728769383819675816659798193353660647410752441176250512070649334883116589294105637592356875394526848849247244665904464815791488700676511044110822321408834966134160439740186713372470611376168044407142588009735366943728664577104172971898513191713284527984952053098455812936991607477303201933238373753551249140184339798595540420654823285046423404122086276843216859299056424732023367546116545710584469391820444466203846239215055516947534974306163019663664709590287642269845685884679245847459117122185614381688042782977536880001499820379232932768882654032223269474452768681707741019969639788592967446066824377796661747919283716335626472784320278764513903372188627737475841017451392945675194973279429553252247345008374703088609241099048315548370214758353639628763680849805193044353802277243797312231672627612777276833319004865745463551001405175824431661033306470355951369121493634829954483851766646135549209022069744915099354856727995928349064708819091898809568937404966611675960427644934638710130132675647385341265143205454153579564043823468702583305473569223928506893137298889776234339395006114214021906509563143280423044219944530651767231131747342122897614217245716641874673180070535359051496441076556169654091701836868954153135808661851718354811804968682964033652965623786859509314529583744207210214347621439079198227549306478763087674633841488463485341111096375301666678333960452416094193111078916486976439567518955592092355694100717780910380562230336610730664050087582561599165048067564279537210334446834953018207084439184804654284352662347886154393412242680299165385747536968082079394280495472520273760225687278718863883595889583213140711819790411047595716886662288735054756906395935267206785638415222210836053069598670776603705928526201151101183528892540229849144665072450204781956848309361808389043030176101894848383273634866375055934475018657092061934110219234144931873424227441298762303194114880204240365191663538249485960001491135188644432738008109296067306964821938144861012953805138766286531133183891908320129537175532457937370551143822592909222998000776369399590592047927482313981327892414091719306034037619140280045355500651674862477994144861961068544449075693354139421358344478675051326012874680017819943461121273275282575954221850079433313688040281660020652766582420505770075728893907902795053612667637583872743327358305314156192229395166518950613056867536509702231193323493690296891198338779011531856933884706582258242568438353697259937500006553053087512032074742223350355443109993402856680375388068745465865534239467661524279347179395591383631461422787101301323041530854840084947168074839358223683769724524850682697040495138471977258614809243464753282778311954158670936262531532190103299646871262584288004575974590904342755850439290874023618659430298537509572700790782007245461718373561893935967753917223688522579365003349730157687696857946600299274075567858956225102146403705079934079588720055905209999398139034639975808772611311939124706357065749177667177151404894533977583606364502287923765003616139553161148195631264906708325682585016180320370645831306600654690631442748379808650030609412963827993658055500832136917847364781609156631586794291125299793538884782085742766506426694080753856129277249174152410424424794942483444343301330937158403040106260721185567187725844344756218659605888086965043712865184226920800830117184619367349173718509024132069322831996163753097271058283273233059067915064493061741087762128537596182440613753509747940058925265972410967799601130816228715002172569565864635373405488926877231401376541270089485488252203243869824724588733362722485964722415329282307115366715526231887743578382822627786712769525187368459696618493661795535109235622135743102850049702297479115526820138487311471455728642295280966865463259752398093603023456747757492350598162916350754415151357145411398979352261892217467030869150320827185842005075647141939161199416095447410476363721601768227743446265916139237776653712629218547451647704101596501053315788422355118193299589428169186246444327638078387239220323014175776857133555909266593882111579317222707420416135656132121810486733392574155072654903934285140016446502554623420518205750940557453862206150903894545606748092738044034841558792069539892838259226300843771378473760500883191223017900629892368220018205116076830946676944235950541306680610709912270256991833459179968588469915528850636091468090932021769864672925790906684912798542348104410519660163642936638354409227666572037474363457723033452149574194352483278269216438941584366250728653147512271594427490792966952353197453020772291551069050721615612787253237350401282418176363485087746295493591824601881250339070904816204981783314362307110742868395526698832317547048531914033100341214021005752000542061177223504650617748721087895281738150825437201131920158090938363716378826174467910716222025594423060441831144947404659077397540330992016902865958175663162221760241744261948130426526810510732651117965792275941751097051204840144158950495613204768892071617883012692190654405179966820368344608983639092724828200174220155057242670678760476038356231798743523255882909862265870976207690821347153306737730919415058450845977256870382692019723787525288707038842282745748847498302637308853496205360500085737600750576541299025021296177410187305447829270576684613654496363611710462770910210809338776832910727403194909866505189923406793146980087431567923585967025464126224233221894916485306420045285752675253572859847041742162110898798937032073917030568409641528876367030023947154929541275464675122498894272827368154685915550947092545550254172127346048423258014351727117693270432235849474520704023620308617609475994878886967605053997613046069482013493946661241340739896019739835259343513838708246116480980761725179185884729833307879554831357381719581055867222494388321580317691728137165189513542975472166003353649595884832809199862956291005019478439358059191089689565043588557217647155990140330091977533166208446512441206415429226963236899103170821820134528670525259456639932641175791037090075218135562708407778564796296432712021291233754799185272346259943827133337942118946939996543746470504198766508893237549373188446231061648643024526308287288635253235316919003027816348757856318416634269656295971902510741358983474547824992748642414728293791189916679264982653262457645509398307452979114123825811249483523784062243812098535402227461276845919393525171992575442275652060106321916567302562839440515672930940565430400259621177998581280426556947665802692703295174112623183527817742303389737044533947009481920561405368297097253490073959917791318182207860076898604713092953863117544698971737573361628694612378929609111937067014170823952095331256779033307917181481643469749894977364890655941662659758826715508812844290485631670662457408797601899455840925831522825164412310861119825345166714847764790722182037321272965734155564605010978946188827884556205146213817379305893682766971912832168144672116613299154742259284763806430880710613396671821395344520169389997819968842046719623606458168015660026489614727297227215381169690304794814974289570735724157463629970846682609599770487312588671721249693776447536608879428391976867969112634346215653439172391920761655555994093466341997863986373234370169778072002008183731826935514662284142164182594792135994908083829562383234736202751255273193298676656889058756383415450879122100837357520982124826677299196019741157966902939774782528094647756382542967252886597234420051546184680560663030437409345115543309860252759732540106917223399528864411741390362760383221413506735823919604891606464762957767501464573450017891373951404402806110391515296452792589999773030389596774415209177807779590283607347924861619477230412446967286476312442065414026687279135648688717730189984525501579615993650952517067062022357180021542087297357186458318621117987674253235719948128430390902464470842999424465825972514874123383368709601587900945844899127382423550114353279660491859488985811708773378644196100529412258731321799993701049398358482054061666171021795637393874077286064138417062390899012032260164883425953798272280053468144269128824983636892437741710600705276239701186095433551456262526751228395691675157319646475288529892109811866389102583166503570200179864812916476400957519438564467003484167470704297044544575748827664999524154197500994760926187822094544587346795656254365574842411920940660746354891363928323301579016923885426826960149989458608736346667974364014458601955164737297497706390841647155367739424091452797739465710674033049662168185842068331873636447441246094230072544600040454083099039315930354120908820998924667423692631811625374676096004752003522782751999712051034487319242813889786409742922629522343744233436305929965764472436588369927347202916027680518718774389105551954460290709272573558181323838273366456601023102915280965158918390615129541968726047350470776644821863082617886146271116338286221591825287514207381418986826511555407824038891546664590048278334082194117441995141851511609464759373239981243614416335778190644418835383520693078125818916583918796576247397219624307777607019419146462319995309516217961021246076203505612040886026498985697622926731028281536968856664067352989328463648071698698290539111567736975380645668676358554148782443260036457813261680777062049461987565306632797067771633166344661884782275829221677718646354871664103359698577517101558706993216221079881363277872761064267775709574523468541210893617745675059424402548073297817253323730876493919816508342083277153873533210105706059493093050854118216779421597295992018017273832498350379903251879723708060844154258938222467822693409147988383213696585572599261779135728328579914520382685717200321466841174583626899463909310889147417611597100630553243797769992969438939707633636360013761515084942991808173070650302822483151221613877395081622505483581045532725001404264220510539637452593677586661785542496479009080733752468137145100809799572635893485312615722208544302642376917477629281205469011214204306356933003000558907144205594497812899596900942857551701414190648967519825238224261855212157723001023806411283578354982152082079227618822200692775019425728593610835669427504837005160688798985731556059560409482471668824295209495957302990078255901123752527797174117826883196681898357900536998477661258083546510524046793471571647219884101665503213038557771456227539689646461186687561344180518894722302885580532626850421864996196088953229492346454903017697873800904805812387833785512481425611594361599355015927055188777115450078051429177674990182204518806075374599315220336232636694967276367430465827601247357625395654866771411497730342812098761750865516129972140050012679538710033037154218817560379900187025033514322839040211682141954421123310944866674395142193983889717001344121001482593753765635279661782558060545755622577196559257430175519247837905274562179202311522706664344978843989314381236632183403453716485074877503571207206391455482222068515034166613582524884668728315273241149856046177279827019605631632465131982133844329187479190932828392372684608708578150637863058207315698931121561707688484283421925151763571972094712052791393175894886959692575874554038860096115969934396545310653263665363755823028308949353731115235688936666923169734413992449757851153105143374069184883315720157437488463957549458403447116625391645684739015997825297837778184136454450283992355666551327288013688610400338252839150288646977920721101878948917995513432006221229369026520094301256171172812080215068269788887809100434236967115164104830876791394493950538764098764434627856296925006886127816065370254732186545002433113445911474969420444129503346669072053183729434393783931231949901539753109502019227119712718778101252760140076103355329461001941609385891956680872621974887605047358034291116307451917886452508918674338692918685409746373288307620820459531652197394663384084035887452044675768032463232894490819079973534935600294392611131355302657201814807533443532210014055973000259600262972470028352438590481538430517903081761585973194043339150599049619081817299208954303394279801326828626111361090577173084712881428021551976559608716599509231886822935046231705024899387351282788109914978435219406165609622639568825777750680753425535558948423237618659762697571430903774844913948678715220180996018897817825972218770142339946553548230332714214279170153215847027259491608554925096381435450101593614227051694313735602793147608663918543231535958451405141807497259620042428571801595969864678648626420868412693676879066416096820628761227584847142439737364811418383624601667604200482946446310831206826283360981955155633119794406354539301271558611439521452229549141466992723911213330899886721652902084351640585339997966819873938345883247319748934784043738676159500156401459756607512943468780045985946243343932163636655631037729460940917941050811963245031584172731213946254934553833661687203662485950429180627171987777583411045947930583731124448235094385705834125890047501280113931200018401869779697419878529981649897941509252437892733161532109398920430850692411738150356159569094555440403571722708514810858392922922191386271026527589069877218721030523984452054501654735977423058724187727861666597484459123871513422742988069742971558876512170865130907234785641937218191993424726592841893435410206623082736888921879537878451204089270655332350679209610346324349164407558749851514878345197166098425300371142247109187793275690881804301102978777944419499913909845519035343673473911665375263002147376747042605633088710476969093817741502157761972598786603620933074132138108642747230441025836471882753417713122833295552422868719326335784067313007326684085273475052995027603887232984339872257756611720243970563848456959623462753654096843165566572860253438551238418415999274891454060227429771551361195527579585471419785691694387654461152502515582773569366534518559414509418037066609971727489231999082610365849620072413688848012530719369861337377363898234983007196255695667502187312947970935016325036520989215596625351839422013816959973040175050894889906909141258761151645950276759336798361936159195371139126620212224462535156702408316225427060435758336877428980772484123053340840448444731085612772149899755678844788600142164513857320611895611509405665300900670340760037082358253301918595608583395951572020640549129114707462452450491415711242185726752175193972995269948606734603593775627072788283102726458674690936555494525182059271789919402772442471969531530202806429332597930004626540781744688490586761790351095066026397949564223081371798864615649629062624272419058021410846134284608755895356220326699419733574214329710698327609173534464225821703372094501077469620608071365966397759733754818342609414382963195626364622562576261297959491703728983040251852354252803357158446743685850054885384062987426834246516040811120669998199582334416584088722812608094373353927180092672158940658843627811308897490331115999484018272379699418778704023865251788351188412401274836433527169863555944202373909450417222395405913659381666649652589195597769741902316189308172056094091972604846931585641364093987839352725104805493154629220341997530623750090891345505208921024030986949362944611041015881547224865986366002192131715568783158560114345151466402488363933688674490478436204395623201956349870451436672818228476611632139749402666302396528441833188169921053013501703086792190013693558029422361945393098593803296905657287222956675745317585601107034966275412776236321948052967336341171668607960998179219104148628595431087217639807550119538309711708702031240758255908032585304650383615683301857683885537584005512218989559822539389334701109284375363552356167869573278374093196491829052926742362368025123588889917909274269932396035984539344882523697964359176949453587499232193489524637626387718644596913205105871798508534477660881086556326155423433455093402717518595956311133782076616414741976780801042004260460422427735502662520280893822786576262201469355177251976844242399058538364621207033354036505422591043793223142345513658644084665627604383298634219754081020479487419737923823256446589008136298396185250001562309400301938732877598871078699536166263190820318781481794557770260647315531984902675649429171215780374962070701192860940768241158495954525304414335831120672820716070029735327340203219601017334304138318830278809369113686179387389799721170291483799123943865039956049199544086933938205170880721668483499491174338930300180816490272473480384479592876255722425534151240100247379772771082700851916870811217801252241422060283676542815364923392790624602144593667692941715109936861360632778024482402018119933290506309815024449906696864036840575347572751568883629163926599994384698528541806342774299006864861751678611488111618440077181448832888492755146543287639787202517400484386915954245813476255780797608384351880551561216067655607450275786437785783642854319272342788551038060347206841851415462746876101692872759863343605125215543925014298168718668912021548659376451096481257846450792791081854954750872694178510845674236033700058863462753275468520793956133469849983216775844399034647047068553678564432917747868712264974396976650766462740249624923881262753316505100924144367549362102520568528915060559204421806830298702412733779932602885155049102123560643145591681030776339678354494708250015262111858962214916726206714369517795810648642463180935588030124913126183994948025298755461696114990837135244965506921177523673131748489235193832185914379195352120034880815984745645708414732214595530219194385266100753039262417743711485683452014201918126625342838956161593834295926872175090989626594919266955921112817297048952016133820513403898141328054975221007007343855445695621765047409424185569093476793194101849465066824788773048320621569691643614034860419055483332102123215849630795092595455284299007758757736895712975760113431000749881974656683410477176566991398289971404741414326453362740964963716864377487006523818847104239895905263667562080019303456203247537031944995376335789538972287588163069874742286331636913570159275126931715358972497741003078685611450433192691599430849597796549730178325612538218811725522729899388877052797278272333879825771312801604829447631483645982375854192790165525283743932119791405589517343346588364139917910069114325815411248723035111983010316275493278293803738887240282193634856483232364324244387757995782647225217621016914151534689094346387772400915669965262020469659233898924552771700489399381791110726943533439131271747417368799816721015768481405858255682621075055226032809309224165065039151777130300891315033767405835364177225929808726097172522168919020155816089995324798214539783724299488578761658408721133733745845890351163384641060848316701052598599529207091915108162748499280777170249422838531908900309047399942863860749917310434786929454181663536262673409543219514288520564137837843826837092925941585571164279742799762779709634124751526756470904051203760117678430964612906626252803434514559644191127747565164634544737265883147992930442581621801022821145407844571674195051887980610917047324481880446915409008451934730610711175838718557391628109297066496339719568451749991891937918721289615579789370515426481412945347546326248946778345730749030081519355977548430013248751044786899714894311159501432020151664463996366184147761009447131415775465667430744356650679902474136129040941671991984261788605448363882926838960527002499379054656954101189193694880005625208072735796569590949747245509235797909039205456059945300485845113250006802595909825023235805268478665648771505574597599621218978502683215378256431273061102360149438408740668578756176176055731951840770777044231014458386370035521779034686972208348208619943699928026309824547248730837483536300368808147472604635660497489155249557972304700955644499640456738365339079367645402396106128266946065343933628199215082220838640564893686085047274573751379943174215730599308280442726321811123624992926263262516619281001832767669438220005184483388618625569749701146178155784630437022833068906358230390997951683960999466779640562492963632024730488418738993179464872408863969305941052472870103271162734695994846635645292563573926038957857323668277189015596515700619883324581827913097925339553199031880964427990918817908779512207434751922075705107092871348399700826262778340427615810965128036050523891445684871306874637969591156347219055219836074110492415348988160847379908942477475623208228446049933239492967480777742916806828906945055270949555763599877934233181826869452059998116894731889981957464108913081288991607144053021833569042336749468705075204330793216314272905405611051441898540510977116131548135078379853252593129751263830114842225082027789865494723387945782154940803157826614976342405110438793464384128241691686906769864647100827549519967421149821653231703096363230511380428422223956853208551381503856174924811177062738496392969747714533355081683051372644579760142968549587274673369369166361631287695828800257279189308036605099381617587681366386974024146597972701460250373947841323914194712614413546950669947368167373508019265542337185038058395419778448550504099618794115424578224825122654928485435970142992651930279210505220348180262783991311813851259508097608689950781072205412507944451879028374048700588934331811799100105369508608741735050078546040398589627664156876980393146079427767546669261682699771675650875689042693931667024927335727409221580372865377534505751821321181649194045637132407693809315396117081077730773238066463136749128042745354343585896293658598896052249429197340151482601242118238299880691718751386518796123923613228296164883762735279744466187499872423245241388846468656210639202495822236604333231736815238045831086445189450940966227204113232651715110406558037820493747098083096133031864265072434978572407587030273300065206248673752955108198374292507342758473934759418040710942105081820985229703269933283813824349842629062437906400229779273973730770514770958177100609150210268496786568765171534718612145564056052243378699438426213160895752740764790396552953026430840162737384020187580784970309604462451540949927329837554275211540469584372852164782748983578738663314597649370756961627669682899704054337438747652605729942691687464860841248122319720638434570815087486898596052998243602319146218086722461770119595895046832209760998159709439798126520028044971553123605647546820326750745756347042220902864658320702149674127539769894340572511592981994615462969406338299562766464411405760282048355217747765397860619877697107349292439753715903623178574959924241660306393827021887999224468089138083410794282100760254484842099619660320439177605263345686201645352397384528651146391158124820740574261871031938046164688412242800361195811557754620828657379563205063432484079452326862554571746583291829891067651650787400980776574935225697322440646290736253468927190813718589997964132667820343277041296685963007972757210876381523388965343652561027951343578169474689715526658098790713094338926642824652457630313585177837935495885509817395353316615164521632737093698170127260628319800634846086696721861430091364229144674153090185562405780559842721528972383967401308796997426491606389093452324842234018295110043449144905431898070328282801382536804368286814812854591171868093568641705212868257735947651095122414488540014453968179430932414186240512471745359008800008113083721535872897282529187635353604411658293413072549045867453048295298517362708625629110767813216373214507534103441206583698813697605687402437805707452702795292539323164083893712340949228385120024361398473920024127238614857918650146966002975464530419938366604229732106387291781967076450388112890994392415509060828355395083152528987373825374769178669783417859868323058478634523358486226703860605648032504975375505870953161417601043136860802660479924173026071321838899338167160402422655123685019768461991868006178213202378226998801367672255030598087168215005109225696251535137234461501071427620057510257745504257922435251906962731734969598375655796553793192487659067981544678971449000448379923053651759920975763624433227511636481901498965492852743465416364125110262975928528701901298589254519911856795536377518197377533732358610300629834042120723341080645708937995561715435894006463198999822693661666837405747389788168555283729791833032670978865463840084078664916480038422096853991802747721818372835280678796153282402889392006743348481743698252154196367181949211057139011778626087375819431165348994874104161370382204976203944589150923632071648918912207976629949800928669004026177961040881069479968333569950571760322041967372805154255628903690082663566402224753673414318124895110022024011424233790213977388048384454823596090244704702751901000217874156065898744706674860306902480583858259083613428826682061575278478307307252577252764727770823337369096966458640958705213789018457443008066347512991980650492901662760722010600505287228089609499734963519868750022679329709072598420660979943619120006841641447351657039134371778067513694710439652260750630742971059276261019890435760564811090090040730503028598639704353532207739333320938270901309088198949515380549429035840669523641244989798208385476352113256815992849561943757838740229820852868868547523692813226943974575178503494559738517599021787677912804379993012226418334592187786246885534249248163528677323672736100141549471856899512165114989756625953613976030878293205755273977873175414585374464861912451332101709701921328170419167942888777193893231657442661612220905602497752577778711215997341320930577823412315134832658691681309898523517752895346780767231096510320944767823336408024402535624265327137993607583508391589328358808098096033808584514697787415219322737914862438928752215210656413221154654978555289278284759159988661884931339754999298988598565706332124129551268216477717910066217276650543581347594830363059548720022355928405252698179910273403938090423274951328765597168361393160130910691034285361281368047520751103842188100173411679038835737034250786988754550999190848675871109971254621142230212470270714226191687205940192664314347472473639337139730004766831608507189851205532061486998635662296485720420553905891718964444933732641150951785073244172417595331787163119104561175977168089965524422824636855977894375827797176441515201773053800121383065159700252441911188844104404516283789958827158191661209146965653130827387472988893587341163342354253923060330287434712833685201289017505125716657508782714957949244156479418957617029127529895755045642184461863939044391160161963088470694984981197801668471295595827304745501321851449748249205743105549213054071546032954787307641693797017214895329041627862302893993436012769715492383161269519323714528019474077144454665912741904629412540992552373238692842400021820446922774414320778555656205987642744052284236022915804682536947740626658044438241193559694108668270717150121017143889118876476595746952140403024442266994413691263255189928292779012216390970278202353331161493428536544688139758831107684034162520493226161827039538319465175173017578732862204295007238797853886222919400926149608379723810154245963374116478660274786825385177631478609473498792065364594872003659728284413495157094955706125223567174955557973208058727669370033663313637410595531611650434271871546619429606115542098380309992463267729293216310788828116120664585137694185350091528383971831110326130488748113945574819650529140391723993254279484951836716979241027470652767792207559354335391720783387989267727478780466220085516769165853464993227999591834823364094057274917865853863482257550383983815972868692429939675940288975025658733843602966129041490969927498608234850882598604635909334411678439134395434818504756754824113334714061794252569795589441958485021553387140237006124645265581426137455488086850031039660499606028676435697080590628574286803947757049548851909128211533465827656576175125499991159216794766443310865278196046787936072118555120103573103347080969409506116911403373948292332269447231057439658929534600378479054963469715924283214285436624363030732520782972612358174135487377973193887773553970695263190132099269469599822167251819804898129236718058283393053901089578471866562217589756175532864472561574484051281548239510291663584452226991251734040779616690419801992637271270527243997662684122979406276462686075529803118933371630758791539759029671926331954609513163667745627776434094867153097160294253787110041753836755720724836312737303788756614122756405187739775353088167326744117001614344855645714215571571603704472970602182719255841037161802404818560300468030365635009637500942182547911539214410272926941484812889149935523294757668123857585449580280861660182251750437956921589709568480640300408717028610288205807230779251104928431695016156423648131557588418502543473151215673654295740785573932420734452973111346722506184965153369203829327782286344328221597742849028361325850330125531867788908984197675177370637495396663550369893519171517811652080997624546924396426743415243603791167875740273619810585546754386238638615827468180983623303520606128300519515679676599723033669602686759352900192434404409645010712542475826684057031068452747602688806200120582317917534784915019160587470314296077319195497797858528775742794442831370099151073188431194230783229602685714975406640690820902599821845487503349716201943932316674952653627640179117885717649006126498987040037195595239511604968849084383696915486345291238551802889040749990606812669577969566043307722161991285871993333542082107989856030123759653663233321407690035771199580507328606264954869474138523907988851369883305548540304058090687630072371705716840626779131908528525326727404799755670737130183472013031758037875862958553361823906921394754913411075354159143510364707349437628866231881497602227923300977168853229168093334223670624175062602639997447755803472753835681115388527935649830016706635119823818199992273371611315399413792086081267970048749487644101524527067859401149678892127881689637859589840268908176265215938423688920248121305794725199769015739257632648839977661536913437533381775275596275231740618753048526564743695785167883649764110395790296826394578236282166628873159443208023735061713224090442582861088979019536218093483360249802062888736170993049140729020001779486176805686008304464740099053917893652558422480693415640255509766173956773839305856821601091397409959187155736093607265387257749325156692269600241189856643661910139133165829691001136893678143816730778251140395276311574391089768697468943858298726024074382171271586237546380486622926939142157160626910633717601087853313520573640288171524724716972264180365339849101355392920581536925275083389981900699159316345647683545954588242017282198399020625467834487689956647368765914910005818164301244484024341597438681021951313849982812247297303348255560731228336968164882035236464791436370945049906802961888279893644470169224546675634063204394156197684553186078069561330483330579716717821850169457247776165362952360264453752872487316118787647158555613323404957583521093524348186372049471438073099982330543628373686222985279119053526797276170196419261705694825673189734917417946790287929710028661781295689698986711099379426805735289248275738639767374707413919636530867620015181888641094709928706394007671036235434602092597667793709320175260427949452320418048691974056549138684421455177476519756756237621211706594016076144663616253999122919662838528551942492644556860905406295042977079782112457213042291245040379280889373528250715073274212067128426001471649284162800741451623986185042132932645017209824793802817851786140481212059312082945388839991795807264970532214133574525489216073706507583735208275524504408428974138770810928357082796943690129266205011073715291874822403773794071155343317667197682026753703382817493931595046368530829377051685717935458041745709959368391242202663066947086271024107009889590517315158757022770506480415045108518411070157043695470999593563174897569651351978442005626401293399149812038985744158572556171201272050464018482716340161014022664506098504077016889233455441909042988390048839584408154080745454059495984917308128341248836745547366436142134950656337140425009376610334580331959032749921116306178681481070212452483908266421957651503490900312182037162339470942200025507787546060752666434209971833662358392068244070379781271715626318779283608876094366942862468352367672844567932019887367247191319454358596355887568727115523331790963536385262742928599195452024959519197186036762586182295134530574386120352107856399845088570937413605047756887435145417237408231216879344866433050115849270243703929981049805495644088107124539839117657131071350946914013249519075331648312492477221133078847995882556597978151501410829587704670151364101979520928933969629705539981451344141886114228723733112747745690341235596750653001378541580994325312360186038459754408626573269801721886442883875232029843035846510441190759872376531289371242589482526277618253697446588207703331747227909574118764379751247947196571565627047036224970225144251442458022497033180379016336109484842264961284955457236372982396647921112348713674647838302724919691568232231967910224985412739337423216464906480916619021029049159582238287278862111909173932506314173757853375506060149470096927539872917503595465375743668727993201807030722568839869451434676152553091457513651983815132900813778766512929203446927372482986754238804851562796349212405797546039921565341219499110907862914340051448791067328714300743009008768059913543356123591735005889665839383162492155655532222029008583709831122354424569240054799590240432435086702594680202246624318393571257197781845306580479551108580357455939125927884804089811096635841150216433744724188477301511726804090227410953437712098799324763258912125344154612086564970997238453310122358386360076263502756629805403514824005776371432487489629661692988212825917156156012842320293064446647241833383454332602887708763733337876122886982231932210260462005912294951885896548605900057799645309803532423103678840046306476271569316723263322074518012050688417207581915768685000404103393514290018578770465686493585475804259082149790567707958871011252292288422904346618569765322135854121119176589349519752784921605745472304910022641436714968433586634401811157554882747967700415389889378958725975011504910500017018877701154151733062361818175023769361046833792947137492650659864369125654957900570791122407525045788520072272784736377724062756052374714085623681739465966259317266341697249425508287638465299535896022968062089190914423328469821136419647312677143730173084384396764149659064395932621281194512017832036229116769718703892445473062937201025947568815350763026334046027535432627081562763492837814678097097453573074040046083838476221516455688849449345726523884561782545847549887276193330316019041776906935586336518723713187244788876600464404800537359882984428716042705518973556334423376852463892206793874102328662946926286275400896772275700875800844611870039573855753529606684256376371873890797439019116558297706214036742078767362781002350542342345583494657530402579548877930640835275370976008801920790639833842308287305405982365147751919966578013137542587447987417297004872570867900568855778229630752458739648053778183437410447873392324606134257387424997758245585328878829527172336964278363407774029784026438425763485670477259409550264817258280058453323882943201474500338448932629568276083616602714384746702364380414207302427881995017608686498250517086829181211180285975393569897924148356366544019078321667285323639833422533635744091010014815907014962121226311835317811496128131701418548171243363265351976445160894405184500405964725226001717673749247882352657259332390206377546192508953112402154309174059788898338788644880862310132717122848801268193560305772864847508812260386618243865757324532164460883471389661541353082576357069923386489935076810080942820079772517858389300803182295604038501296261250859726273077707072926863087239036779852359718589636694110792087011120490588744282189232604981585646944287619841946979921558379123972680272129905329969095326887597343309723662743560571973719280767845189541307321684189513724791329442832361552576211134120737644800998110474552293205251593082277429824968502035326094186158680444643901816740652819064338196173663452038386627505434180261217886071727189923371535590439065964263008449539823347655823334244839070008798022133731545776508575089293049466424484456452087276180064181299950657117268839839387994773361375512341829676335057969469463282057613962070580137801298418842932134206385219027635062459425551993180070342019281014962248652941696591287492381806793627110385636199797538415349427021144220776613835862400874173172205003130694947447951033590692339429123068986733292832137380218680932958492099721123707875844029915606663130616488156134243507926724313186414649571615303532170166362126969383438932674084904081933583769892953064090504557002448312989090974999241671714342478615296596045320881336890024126521914169926001248181692897550296350825473240935159182014672207246837633879941299078856176399108308964121830667800970752061522568315512555921532400116378653706362263353877988437528036333098114975307977046006565386613991177435324743576634069982259637152434294093098683448665345888750841273851522506964506905051527945813448608277241733445651399495740026732628572203731054873435195434466213341615672885642982364921214917413155327692141277264963902027292909823410853366828052779363331887979354589250556741372659377045239973912073173876949266169742000833705007521912414758140181339045414453341893634771789119185047912809648435157894865856506593256791408802147097770103188965722238904089617422667595605605596148677048070986688794187387034649201908059242716498055442183272045481248090161632711319348541009921480344078764987974026279391056913368993503430899755092484502871848449410724862313763185706248041173969255047364280767399847138420611278887942798382386176812675293711802314443815182678670978702492438397262110524536685126950951342773072059288568767166594421970190694056470893127956870511187938281984560943088736059201777947142160395167392839833133687342549203272815972815122570772156870421012006888742081238096909237168863828358836223299030729113083371695320487636997442813226656613863199191837115373212819869300949930652863293617598437534548845822656344759277089278177909643924674928979833513048313457321585791330083018497671857839164468644748729519300565762804037372479576076091249352259879049548229355968683344960627689606534624907209513629263328819839678569116043157552771656200432877927346651833703291754636360704232221725421878789643065434181105627597861988139836416868208917161514197756397434702015951391416152139622403114752688545927379108630396689269576560758128136614386073815984312924011372436234461224270734605226726148971946718471052658734692369474875146982775765075886388775128062800388411409285553430809843094007535659334703948681405662539608744535020887868768060874290022894540508046504382757224138613062836408516529084396961251808126702662636721474119792446351802584226845073231867891251675806908330829481873021070307012202895819988817720548374992564030679711438918568757054821702169380960032114426323262994896708107322462954933219006947746583836899573386141043480542618288726051802559163990665622630638439068383292735526139106297236659834562948607398284883823044308262122934401457889838366527618483060552782380121947628188728454691861570057002357980169359155737775918155519481102192075574069864824746152154738686579509458180280066170163462827762443702381845530706805274005467720129598218582931495218885284551381248444673862814775511987120524852551322747355664741288315867419009506866368009058091064157658000677521683822621355720830966179897865055905718924887959936191532829562761413455386696272006355049832959993056606768552603474620755238659206188861051805677206107940287515826306125590335841112660450251646451100943297550395561537805731623719472796551560625227643597270203716342540611031010696136704636230823861077600483139699525893867895449967604477040598620264736170240336191173604969196803790911360059223644351110403706384399047899900890230694128667486772537376624213323663231729539138780502109437294735844179652353764422928677104887798131755899599645044672403679584465599461154046141477496226036232319177547415541037616204648785978826859314794565652064852639049663736036688541032068881013140740605762493132149723334545182416387114813325191023297951196565364032956358923783625294704607826439340665972401098662779089896729717250409513351842182575278360063707313010552010706542109834649522933459999299921776523666799035328475429261163333807639534706382950272546654532573349870203420451699905887251726443182244549790843202480259515090612326171560055003485893966643866313947127964686558055507135645636953400951871448710682196503828632644507697077047447039784159275241938667260767965682522551709714453735282287217366287951021181538393820766550759657998864186367804462339616090817229976007897099990466849070568249948882940579182778824953003132413784094753076966965132720086854226796290456936157635254823195958396049675253935476182308455450913974757946465351401939627606706081940713328148172499059937251539591433443930919229776903307028248405642256377971971400909358969632920243921516631711222056083231030919719805413639033167033955023518710058704732497556011748216507212273977715996887395216635462252559008913828845437346406356986543603539086716691186885172895501010642580817408345828837687406262285632477670166989840142412349585326589917268464178047195025042373935663249458246113115846207944313809125368285806227573647932331861593342451905374682491149931260016469851533803022825895802587973015204686706453171714628975838814809017614735024105483085124403254388619695562418846436007807748865976336639481285380765517251618497075875598574554557934129108743029928432201098336929368219474277469481367840781962133850804018158227812278992624337563055744438963167956651712055306817806457646220936992242866768789234293911955644546508325101623059665122991871011687756383105472073743411867108951460974605233401812246831662589425780837440355488108013373067732996569958667856076522195292887968125130614402578043723131605147498258644749550604032595944243729502796007839761173570764199559442886684144268093181311627380024584475344723112686518000957265689820946705153110330816588116651277338210652838784877577982846670777435789646858116680612977447904105686295325101904798916151958788956497676215580957551090455452395415277787884377148334934400916603366539806172439566736307839700939040622721437660301873518111879748516520677968347212235024962199763391440825272053175205200701734322672159832046115690159303866548028120173201936261618047820537195502716188345708963899873596127119539966079955591117323437041311891746918254340695366826662848856573617737894471275481606166846243617262771348147303801282184459698765076188614634818766669835199908108437656738257391341779750165580326690630007861575101647679326188271974588980075854291040933414014341208223377932052900207670260301688873785333024119777893098558428383971508816264103539410650489956193686328436542149174949471771062068288734658062847357310632419746733608919682004103191598887042967056065714930673719445893542212325983567808840070565811510147202193154651534115573264968353588414712477206288661833321381658575517208055821197450565529046105834175330786053595897446000926387140117482047314112240513190342059779622048307847660131239979303457147950871154723373717116240525284559986864549812689644692595224631983246664982232063762966651956982476739424964696139909428796546561940084122699019840442051455212526666860004596464783625618181503735563561504603303301463897781560640022261631990718673674749977742338567895784408986017095516257921857993644619126951694505980111467545781099747833484663514777538785121815275753770080346654331725966017077986336105153219306733922860526712165512519569587879188662379244938194227719278449468711345799508736191033529476711623290352658172248268749873007510409298581261753287354239438577390548872037566316893384326829948359440838125644679894309353037643277377145994678472801859593097703056332584722506799361929734181258239015139831508435438442553699708728248892896963440860855922875856943926107737349552663963931774093344403649260026883411853596641514789991546391810842014621177996828409712050845975661275772505348602144029997112343904603418546678122786407982396212591201098970090098360377842751546688808419196030061620495900557427208705906827165282253806037023397813559067516334318889260456403382060959238176048025153681859877704895119459543440726171242540979542146319313012016593569503258964843634650553772966439451897522981282907395098238403945218955928619477629621340102835320751922548848153731616253168735757130184473124765023114395875535205017046598186368369709375310520515814006984616461988651721077756201058570008131623940838901458064554595451507250918966729104044972879023947651236921457886972114462211322103287463466012333516575435477246410666820538423377448130164006428740727665430959107696647501163500265704548301179405553653938193706818389385530009836338032151347359894493051508301809083976956959418509197265050200312283265447908497721674143814834601065381756752247874190215995745821702614782853136170921472762419995516029630446252754316218446117430828085601311590702993174268559598231123802798478330159571970584252439449047392944382500874020062724215341898055622650506119189687921173988997476136972479263212870774814172755213880607495452182386316276914049110634982230521488647003848955400086767041523877973875956174337926066883264077526566639098427031291123518543880789916346718180953172082352925890345639945680242009150845371299247094739167549016978241447824787742371685579443710356895095729627009069313870174728464490413855266839962705496439282956804172643567128232509488873508427701814697581295742986333972046503715332842841354800680441282722220915344799378408875136529959062958651526165372003898001601769486680417701124055806559811403703062667856662915568929157609016466445900714719568192306690952763095248311460568556707699624313536621468600292497327602615565839415909255105857783785012555856355833347090339361951928047899457060612431765438170354126946369907616692426696216077619765239297977137382774568776777581696484207284269356655949930959688049494327489479577754310175220765971080403850292693048050942970082229004886185730773747554190128867796858438636649010679682377935846129215705070367037347251356142335846675516276667460905843425074037117741665692940032090145341278419189453351790542261070387301990871165728112625913604149871761865563055251125362251519088764652414346377755365083442521287596652675014527135197036729628679803042542734446833577417732754817716119583870332034373547633349355901294230721790272612624136929395377784073834795831074553154535666075122018536056076493226709158667805410773678516200374529062436780752136749547666486747222452126854941738402617815974535932867625861572711173155028363102405270084920866281900587299318068582752400375924429767070598974676863459849278871175891025012832795386455715031924560679289113798113042823987414806960659197263927028390789705757903660767741822321895628033502390596388539173840543353124476890313866461159444610688759277446542119369780646610526078810236330642122367095415951399733022476686404883774846103379029466654949350592852688673051299753873152480154139649473869629550358494310282655586374018032536472624619743812147520868314034454886014558522083601254486393040746547088226170067300070477466764977466911558476938680026311573383860924418193403818375045940357433761732295469563434142616325684926615435614968897695981405562401934722425956393537941970084881585839812640928808374632419588057396422623942269923355633069867491711987177167713549063367602431598075961472729484646027034801408306798468597082879653483243708838065742421919842122420792506986531399354216430525585504052018891484884174029639700301249112763919198548353003178741236011938124929140311549807194515801382984080189493596242078562099313323366441475433658407530634699376277954351999282572063385273026766825234410566683588244598408224301837811674286127307873544996721255902352029707084568068803015674690475857082565334150380114166522441836065588612672180160004446163317534736625231344218479608387935007352906777368113674999933494564030534737613155830482057827026070593935486808536854900790115375380766552737056492960049210934338203539551636797372776616068122505678921316941484452759039816940403657041679198843711313902792503788559428455972919875105874409675801282889406131820524669407257944818713968523928513087294568311113811163919204403540839374968915310547986216853960294248094153421919926603121539151688649092172258116023278328739372016777529020312038054765989157908921285399053947996177851044947947119440314225336835212419047512756685846648152098030891747313007513056172834238210832061807293029100702841112202719512016657697280965473099089924851969475881713610745861670410659397732475386944763776302836716612239336866227309455559985034173298996435152803892219596703104186379315449725740952314693063201187461899121682576168311563459749719201888329270898089993794493573699167136338596347365162644066513675896878628538254187375489597642199699659913064793765949729876226860745777399361272611357040376411224190487611815293212992731899771868393170997268288484216986577314287782629245209989248528542567495130156579214946659490068579602273539800730466078166443411284257661007160627216858265801841384431995545325061148974175941332107679233271034396129345534902627861453333748864317290775545939197244136349213414062948736995532584877257524748555058821820653128126573827491327832959200234750199231125061812914815895970644234479500101439115452451463620207123160432444346271586503099111083050635173662208555410429296294507868030123350306531590721003967982476781134562341787928611826009313487979764143227314724095298060132088290362675606127378871162041076491155853815550143296857067970182036160505139491983140136597104906247086071109994099710787702013178315074813219143504671682984977860523404357386185189161390527635919999071781060596588105808662299717204346720890348887760258824757884887861557885491517338009581061589905066870043617017239051818210524365685820586229566193353333835610212961521199512523523219716453393315116989809897211007312546115423305034319545164191322038032596340041888111769530950494538625825526875559245288518401336745207692438141256827532531941380104611975426965366708913226973727204126642310576635321259418698942252288239407677583297702677178726216206459079314216240459850547388947853688592481482369334190705131423066458973208267676326912406078685349498005930670595282194021086820272260419340687068839852608921950967059474723137655623618728678113911015749612375787360365285480291117378530763308980574207222428649529759764542647183138245719687936878081222951409023622108160886642477943245085009859133398446677903455954725733306206167736058429071651156522059843444634799539175220626454651037254351655209808868851066218265788175999923464892021621479674818850138723536764103309883924874714172079794073594316851683604092081468394521477204251919797261253085119997325672075616345246105199933911788923610706539012810163345956676648084098773120266169165271096708914918509445316006270144087167327058937459761365339604841787282403731792377052230643934340613151785206283929693025439188386012790268899193705867968079611294997095672450717362092617823230030680047242189604901647077166707950143251833808254056717921527357840875499080862275145084387470049614388653381175256660502458804354403755415338203259458234941090557210759207630910240270474432972395831495475023226969730110305814714875242908581487283449556167449816614694611690507884870033864085076499815983672787780999839095150761934788265396665679862777879603442253262321570510414519953091465517745050880656318824305570239648004957312502631988357009432455058903904214068183554078171966360014313798203448524359958965203049325734644951216716426552775441137886907637726253083308914773574462567841031478230767294559256128327038704092518566279729992719569602507522537003075229696537718542361383544777726763904152432547447835893030129711058412878748513868187600946761245415715991843678370766804785424039208365386529642128293136978405314039276429673102739373113226549469602605625879560718876265000547851302843733597436717744433622635417468776202268966056276460273646781682121006143259868296143079576607509844612514716869081719947876508764717003644915500289892937685119739914064799861783801977198185454658865166973270285178002131107839525123853150790592734721676459190508314805625060252630481941596774871837684251273163618279578504202091021971950494589873028308154684128085004156165930249913702763685996322794327594004963737629552038884370297631699931528436380500886754707890730939012573050505044293554913514545184610972999062777771135943743563841759098718879691394171313603720686041126300690750212476813522088896798294491765353665860955639373353944487996492577428546486235082691792807042811837971400651502667192666419970968727365285189739628261945605191817415388075757888246048820680083336716385293089251347758964074178048781873824788623764090855189575860947844890308232592084005526284606511136581773056485576399306006481273938366867251589581839171664359478994254548226128123396918656277836005896714815838808351040483646146340076267358244624290750293621073772008127121507149076402814299806702167972267045514735383285026121148255174489441629762422768995429544254213173769776104910576278758259915908552533258152124598852820160043800440100346649232127182385940567902272782708391638548457776140402599006166410755148194401400101406569358347926846562449474596717619905714103601560688356300839298099992857752869264396936719851853125873460295387038792782084024427322866684469401781480376089316421298264444798097444963310124212163619454260505835952113697782847573856241865393343241681199764511730819658704958480181154755895856140651824270610028961339114415554220441325828190190122962717269431633734721479159332642493418329643167395667979411149090068344229491596289090065253828735206549535015299380573812668508374851309169892109431156370832031955330326988027231382429654275472363966094722273761267174094637704719954790309729391942988903424351177121911174157074164676350163587175332911429336288532027745545931968657204013792396701221803307345880789600018197382316932795072637366534867812059120379445643030842303633348790472870360070356702739074332857572805670747511493812399254967431217900156591716113559942337528160989152509336061367331357350936115463188970098899171262767607730945167458298574921308170507202913616248481344046136368821514537278072826744770262369745838656655372333678077266188484023512406204101602339266206371102966882177351362449289182270280522858915511740579076899584938948192882919989979496988011485647063522701989416735816222452685268714002000031396520657284630059433840945926580882081262972689273932766739661803157101160355057278932456257539631070583379221487705959559629790178576427302302679454185851179657284432766156780308243152322309764032924603427022616594768070025473375338672962697119661213648411476995264659516712422850536493948933924838857569564153701373231891932617160116203079416543823624573610788650730337766157109402095963357607726068586227424075998612572030803666561970142787088450540111180246064816224316396623050015439003034981608851730079329623610802447553083448895435458215834926886539081872724526420238074887823364060655431691191361140868722448853991673993960800910794380958140261767518284162102815429448178558837923907456376264978641252564675468413495813651986967175705655242665574370837445872181296154015342681645088000013239562373911785691385786441129716324495176062375229411444665121412928415887085131901689442219798235636848408837652344980124921141899600784119537261696882205758315598893809141570283562278273552974138587289720550217870502654359588824740475510847029084720811919813029655932756361312755755049104211633584452636682941967263393796963075835432949879572733872846294101222791001778498300699633552527879513594257464195971855293199709493425207090898527451519402759514701294255479655421086610389425735409033468409449808938567297103869995287384822776146129838928790618925039681980896219964055144546873050945771807216779815611423542658655887936927351429054661833289059847077033662747696337618150112453178581924462424179842762484027388750112295814152454179680107679967794001844040355406918782343409739536786871995761646709157732444834951113172169828220183851663630995913410064333677308448714159805317261700733679623485741167136002827453618354582352916228379444263410745015764695021051370441419129533203056925834944087039383303928448017128459057849300987333575110252999177479391575661492261661713348525457654715123252689102046184289168602098119036565059249266700015175931760443657528144438212996698277039432866529300176772049542250472355535608332194914782663646935350232601359555591715301975141540603832307241269340845020295753590021654668309408213139209119560298554446480820052887393594324648164833381223767270521973970017594925545541959126659119972120790602153233149046800351437312938343428798467164319113521865219709743677909995599745235055707313313110389481888308397499358613008281668504034917607602792393039512036350718331345839571546524624815092682037030695253253312232622256881778705406500647942456379419319480602344757120808070627471343163516437714347913453400350357236485285044335456944530728610763890535502410118734994300649709682579532380145305058327736831451585541300630784901851220485154313013220888288976590018372881650743460247248584956864022503860290185967000385195922179779469399086887995998001934622775172309758996365851326519694395658777389473435221319631603904570078883069936551993698753696708065537704352385645831859907266975406148548717758246670255989207602346418522597329706620553496432953523917792635515064747003099333698991342784144296522324506865601588980390949213350720070523623681424906731481175419373540733031466266496131103586756271485582889637698444156333063742398988030808002439305978172096944702458727627281552595441278360539737121030766670548549967012736684392192920726323912254693023475170893033353851596373574272277617286855455508251991334601302308999177471119878095116997963426619110304933890236080033314771014087784724338811909498257212905079953764251793727848447064361210319160517230327714873811514826856194436149308361083882862095017303227661975450943385784167671733413791581162037253952680842984752878352723657633669919367316960797420777188620386775172811548545694536026876908675274039894539068635835567948225431990092093842553621465763840397972416844710289298006965394230960963789369115334212061172385118924875719264169118437351932595026557246170152480208544565766191858651224410064651965522934990496755361638473708337057075127596257728699356085673940627138132607188663267342825583633230130761504204522482613328053857346153391949144040181501846385822195135299284352211294256700125124529872201918147964870294028659093205816187992913473144147717572558538586676278708620126201495007622128406758752891922765438457771861286333063195883537909816262258445179982146534093785307053995109232378285243030695982035896204214221814876393777736512108487311302969730055537893849028360124712434929468887803439290645486898697523781948177145538469352914348841586033322495631208159238199266652296886876668062879040360874081835045882156346004663399588818832659558746259676676468941208340680225571984306829987979239221397611463429795077297749272413279275514939385604504589680269474914245164316176185025014361608567494949535330233353695629810375109420422326828580196018270062512430303675120304777644448734565833108017090576407868878996065781362236549475752672607398820636544694380550844968986739560381694124449631967566124328090796352353493939951362384249727280564426567589288552693643559389099867164924567808543574186296731252643115726983832622922224361377952081848346025030030637090403811269269413836194534480345181695745458226863702687469256818702634894785106874289460588256807795057484013904960831673367455067115539304412273560517660620781590091163530440907204223728215974942071701663727947367171755311081005752460930050619446173063112401182234330580607832942531457201553982860134476254768835882109242771949190186165386308148654357544099540456489981792060338055568197282082734996857061132119025999607287652572318259108935656318720959397781637997351163966862850420331822671249438821487926726397792456989064187233987732926844919178036956412108437524738779824408622141043464282446485206195650338517650857146745130910390533693131226052164368931651671351459260526189070287056780271225662263784202077698601331747422215591000122919955707642891551755901711741234769965798806784374453910905074404627985847157068334855478272785293392213513072645702893089658625551289701404104453060125157414930518670759377051827672464739807715814365871790647400238210578028270222445407705416546964202628572847550136546365826150881354773162905846002030418491720293810710530539726757709265829528183787438760207422142029714153546830092231156281946833994169316679767468323069300833999885326888334577670223785206515344009035118482385884864809990418660428071766803165020536634682904525811511648304483351851900439211729431015391763003342052479784964755656308794988129303611954659203622419664099098321564797674175749349467096511519052239678233738445641422240861182655851122812573077454253413541427506431543638460451006813145816988363029915002333870086037315519426788872190901375657855707763200131482426294944696740864652717598329505780567320110612842448887308432832269689331189307758176593891011391960861601580999503372935339900638625252987593443959711707258281644411705767164037269080862296326617587562553763706329943902230389918870041980658439166211983674042653688558181902685000006135839354884590449309784740230855132321450673961966841156379804950788298359163873600053795257248112391513036723696719256848057950184233476188368596003971000646139209254297546007545027233499602083672673653212728328135281120116759293446629048889635253107073151067821261211085794143674606817319649493619028961612672512586135399983271738458527017272714312854856107446730141287424911928749180269220452267381102169693424399410947350192784375522095694532392436826959599587892510633932170706391441916695383577920772492969190910898318181364239540037763398749422195072944487721598719753596860953010593803210269655185452106722572047287223107919463710266047027646881955367247669948949108250649121472349821611362138690675230749054878278245530146973960564883710132856382467286164867684725510453661427189298191940089689918312529376735074802870945362293929339381270782184097871792618908157064993222576182926601762924922668236229337132574362650358547575457856712718636578089037394189516990813139706324675857378713273989733168240677855550059134730064463690636390098125035287929716960664744612792118204610490924699694260963968722605404082872147824874368556985897575493820406835540494641898949803261232390520198633947087547457196865595854270911009404309078228104277775605105897785937651885939409901990665007817748176294376306184771087698063871063339511845787603248485434788288070684838770998696858127047869277336618187573295516712729255334663419804309971424646673211086469506637987255920180467025759367265790322895151189517128424628399928896493831685665049792326950084094013274970260233064997784499840440728121838400095455314861853651606680853596067180101252431142264775147177356383057594698358707694050288523758530573569685632836401204100419186918153000600927612216094673713694362950916109837028650434120006705363719565770500297005525871808282098704168953250488635391169077519635216919215738402564533419145253738679039462141149887645720597931914608750882510015838260974265002960021920298930348642349570958616831696195085352486681041917575729601580426609245402106920360942933538194116386628418981232833752865964603755653320612452105564332581789289736186372790605460710916431727766811043772276142557355397876653457374501169713616757570252918004935438896665426382812719660144183574864830663324510416557639422716939228788020645778433208610506964828124587970830906627333162426891085071982461410771983550337448176532633437502308434537180144535411190884994559792410611363415263180610727700706232648546761788266847368801685221540907852627633484119250439133710945977690105456479998844188217198545294958526836339725427711272630813064881371876793559244580580575292207939906431683965719326559612752489111902778997933888861214277193911599491504708523299365380067221729457106615040719052768238721198888030133225848480534868354116205677331734077168620362717898263113414668614462133542903066483993679155245775437294593066216679101715238851759986731562549559034753724870119126080666167974047062919529362075051882412412317495644386993432544407232355469332847552313462853657617362464970445664493247390110924319342546706035605450601067011710157185466405606550133028120661917934301749170569697760789169832707105760312004102150435355335491033940359579862549516318156035879783134688742842017142007405821831658822203309782496358754739855998261826541970965556943214697314159953626466978461451164616952990106829887614107429376240805807655088504309974674930707190453823639980789999590232672030544042245628910768279168894140625021589641413683191332729902344673778073590111338642560445969902225305537434654840248532252723422333135547939917432515538620609517228311835275174999139005223179577012027483025738763199638939357765723719762954097879081387216279456393789864283896475077049989084575916937998875688820428864002607837137616927591276231121693367903646407954509608073983073341914428258519703010013623869966354605767658360214692639421510709720898400221663272374769547375178862836614817152688066166115024151010006721091643511257018724539321683673733077052117347493779515043225114640050832321707938990197981587125825319557115032407679416354917288536742363875264656213819777360954890673076683596442243792716598778307810099518808679890788351529360127693270280387286085293532101639693665171117029704729425994827206468902836492958515028471546361824557073519698966364554768601325493477985196603653115750116293714822282178582069500725194875805653325724985281962050626183120569508502646715022653406199108904430937120237502711307152829217767094094276298431365132702853060728349592872616179523992305724038677660626469211520585723256442357237074196005526672979789245226339837003107596637656597099310832652233894247780057785310827619974050677541193680089281746118805832350369574281463781559722234921042429136948324352536834155445943742809303006134560347838346236724522893055264917417176719250352362031708236112290426269274769462589111079895725113087472749216034031300871250553767066576402767046582391570158092190341732466103499120613833273284521056283397736999214578817891153363564796816171727918096992534144306560298578082044101222030613446592867047916800081114487541977883653868110663068170727676997472936173446738111731861403467627456060136415475853839963146878654011221299056800985202606394414672691439891903232879089062226958088668552992991964642506113566977209242693167746323489196860347540203569495365811436378436826209095461852003458414663362168802753559162754666713780039231472769622871270018790973153682081146194038609458177379975469198902022910668528034822311559197815039348171162580464636365351944915947407292646586004403023716717999274245890046747786826011113465988744654099322339736453409007016088717640408407843050787730916071060941059763468226177933561635917373308736054680171485817000941403494175191208382388696460240569286309375062437932234577612565402861001905505879761474247939044801521896849600390088195406441871966354071782597583026791387423176275721174390856569557175582116865380160275193974110980584975179913327125789776031946292711606810705430557116813177384263041639307401275063145111511678034011769863153467149643975859789397967105659076271239150718452616941574606710263323374025776928637678801241764643692493167406797985815668318753229994180481249508985877236300569259096124782944066461816880133130006648531531853082128304089046510674835106931165946026933560702007481628121768891285358741929085818848774670685528668661726421117578722186393618292279946868164732354052967490896121682444196906438130667319937231549702273957531710703844590558481323814824038860710957294831122626804428467949576765866987864496299109566904070994907416604221514374704777897580066533963899456969327195620455816028905425527203536583320325604523123367193285976018189699114430423020382171110108714745782074149922589202131960727672424344663836332159073432751927159726198276276579325844888096270867574637592412334412843882173765006244261142820947071757858829483758158651100942986909321033231358724904428190733643087514911660939685017478958290652317576386213809024532849532128593707746678490492860092202164293628256886160319054781970153268137916683175978402085435064490200304112742366581690783186393914111414808346130848477325566756612891160019816138157786900612004212634248536856791126372988181679649856329580586723916056775694402435794560417538627105877611508224945109101307000525662200635685403816074934320887060805487188561105253585983169698202902892137671001675863293596402327648197019672604396661112183069550934136381635128640030022665206219613556417205352262665732451397614115796199020577669098593153140962058331963349792893488912509069059858348877204814531673495691051748571309963942706898530839353335438613791520963895231506494993967490959985346986444708876970921140398445556752407805069427640580160748799656175291923519321462834178198944304900626728411957527687542493690392958958142416315270437480813408380381554446052972537619781626719885964189875893498323270474591502584124105337236997940417856741276014799428388610778367175303040695273744751185388395328801253083834029339352058998396917043111376051772662608879131100872403250438010703553222735186343546441977192733932035686667418283728356272236658209697989829499224481163674812169159249491340303938160193699486976094013678869186594611985645446910852087278707584221467452600614287412374639822709163955434408660980042362639880538034039797391845315766095392645005870832830441285820200247900155554007743281429490010590855094095163923261476469198170059568387643929130425736664378468494759962462392483817775823128658861003839725081290074406871530151329807532607335137214086852393517772660068906937513462927807196125949898651298342277009406634193324624378822096679729837914201587133587970662969733311965556932699681483806435482354618862360171646421784423482684322320337044558774573694399440997996372341476304875686331440422688446058044520232844000970315261601404559582148746032117851043332634778771417578940747701249564979936772520588616730056723394710466472817950737517004187802686956816988922545733520074515022966643492387250822957124268056040508206007570022238689036061760929528424806263572218546050546705715658314213623065563739675372446590432488842715240240762931008955239653390464399898499172898701007788764025142485107604148248860137613436836571436922412486023608225761789570936272107976658936221706415369480155765838019488510489301583976737901272647793575838356026344709218180618406185288762405504278754233811132383624990855949801565099538484305328046556997016815662390864259341550292696738620919233945878685870883196278677392541880509350164317261680193155100975310890746125690110683063279183317284003250771117550550358605163317097926104237508061170215218605551516499923314216387230068058348550135824955540498347264926053924955706590251339215447607276328247259079445832366231899597544561497057340268967128668048988656467191443559615510173598644284024468245203050591858691890986001566835943486124531327401180094553060910247483880059462912523154193796848364680700821000919153483694638910915500724412304232815332627808038467549292594787546628406758354641322304633089171036424013841281138181690917069975901680679808199433264304210691355966861535988226377688332483429513983935400440990066222065690737558338304186712277327894098964679252936285345388576442179376172493601472385703888377196637615905436332679641850937082299510214368412695274262770933450895677865921692167225578529036402018921375671929251689982673877194522991617333957667793646111804505995321335213081422960479017739113746791642969466398324315086349250663626488454709110691383884829156256168408310678424690990305040860005233279119056366404110731340339559304101336376636094913651581152472856060277228054753951036145202985323725380680664443104478178845920906409476574437476341415777122014574237824542409514138731632514311099132798185024795312372448960553663684975417545620485199832320626031211505471973295168225269029419087066503437945761627913883667466467463892525683253647548672276077984032314248798594495331156180944027800879117255083536898800371872971449556326561774069610188653478774767986066246072616520098444802511110342874229325058939609985094107409012667604665472789018359383873194929139707768253122492034132861236177223891911515171646433735300845514219581756800316081211513742984765289621367924492082878171085648147082419445516277158333099302031813976838820506622031293138534208758063465014988752861329287309995655707860550384127538436026749383286256758664549456394630682839718829017535468445828976774295101058962813996629606523042685268217793637999288648119524549990617510726344922695885329208124850036355806518435339809357987826897558063116048738122260163660025153168445675671630697779713504240492827886436092650710744017013137874721833551890254294527776612697349286941768876309399693531832595573711138867640960350335678810525097585087905914072437049618160115530521252037899595458514749110150633258298948282198887208280056973723691146879005913917036381983366823292547165913492969608092482989728034675192192613305399997728128370372893393424678085833027830857936223084759944081502807081232113463384219978995045337882532569070602902859007466547116919393971740469574745458101960947448072080717381380004356647277959420508837023382301272942159064640419261669982142976221858802301279552989484950868537496519696642178348636050353149901809464158987090645284020575733745344456856669919697635052245702890747536284284268621732773093503184694768427449147679051233637358233442912454128847472919529559838798099840658004843024920798258536242089010828857800506928949756946364552406463885450073234002674580662222148005999215776297373925799075975499575458479691075126471449018695439515206864143744146793041121248692407479455859377750444231224093177616420182507921172927587684474744737761915919721261916163583241437605659974717353623758209413340084016726235207553683154846374608905615656502071377058009274939534122461663300842765730759963046045673587049272956045053603370504654398983618187732898343864304306082244200999649340876044222776188394165478561932684328585100438237852996131587783353264072974204253537461595137423060520278452874012782401064724463728211961661496775777654594714028797486182053644985957107590713482533414887160671073264846908746906302263148659274344432724493674620844017921586970045471489593786303527946632258407278675017639142620427039773896663696097803896611027174914119746361038295339077201358427406154725906308532473443241820959811664913535911734771464118261952408194972736703813031071801340354364140621295131994629235542886603125136641634125648659879928766620635030206772587429410749673870695281786657445970603431081972921439172618448075650609759828970139363557126143998923803808999404901100255679358535427851687925701751133767595504071587128378193671533815663790357087226573185731754916462714792581792314813309545820063847186533832810739255243847928775574124199629876283736453894929635548374914546397902166963177453203082382458593314525204983068720114159482163108517535597444243647507426692250199874531252588000120064760222502975604075299528150636006592642140771250293733676708363084589293108454896098823161364880098103156950995503980067988301427666186133484635173734781202506244516232338101580477246548354265266444130983031003007999370300140560282762479023130649680865447205033533917536057128143180526562245638807568547705578230888460980635817647163930183413563447505531634690730235745260000082352089394853543725661689209561083655694982330589619192155462191381023997198971942024912546480261625051976352941058573900459292250782835483385877541046701953939124147669521174395765719785722772567670281501366578828374143408382266260390349076361077239176539787917966292299432099015982245528175569993501707841734168938620904714517786243932860097986443284906131354619774601800101392367428215872484123791149036265162188832931010485719018546029126813241388763887369001970253848550133208807537061438890076657017256733940399995377237699512430117735038722445569067363794368398194054344188424219248072371045698458853467302815343074341825346722927148143834108269627042020510054089250261880426414625273291855193532613904073958626558890714897487465202561029368598201580330505927828992610734538947925539443594850052467116211839330529127883913830770542409227385283368094216342910180385423780163841312396497694645058714600672364036350902375017565408784508713163779324959267062510075054098705539793362658932636584507793861772628310585602921628037635461588636911130224107943612834115482578676145174655957254973215065925857827747642562326692565783651809475769277725064719469073196322003772132084870830328025068649155225795329638991025224288399859094895928165607725844363313681658930964840833381444630545276825435306363216032562242291449138481708698192267768546137265413947679080108370344856393072624760705664755913085421376522490189265555769500146198814512323949831927192453999194783535996816033099362096228253059943963191895135950724533713726303027938751184536022409255941776865333874310652555195377252483683430213857110566182718318982533180785378489533172546140359047977481238900846969623812606335877377328662361561244111777402278394442345384685073208754312795120389572741236504761097215680748399828422690321762017664227389949203481114840925002619921260431449672127692678172585126394107917413948152493143636510244621029289963492668547834225717068116852424599535073773642894104161746819809462513279039138256411352287212554935371479890197106442769152496129333507207306975762706583484241370539308344855213130374127489872029891455646028397326777949575401546179953751211711272866091655372944154460276486137377774581464896113369984319691043231629953887595911807629593009036235184493894566810781007108272964260951702211331133878130556883432210659271141357615915912788552899668959879371583446992774225154311024062529683362191209202432334421935976163165514724330041524385281962994940507539874919610754221701779969117173994753782069721990223996666698167811567339233953278920046979191804114192807411775066311011881470554878215436585006079271035631924996331560648549351607033403084598816264816495084172443195373010449584610736395911253461664261328758527251836357544946804853041576550493046992760449958930453183187229429073646228636847873988658120922300042206704586842695406586734124860462835479922633541985055230965763040094530675259768870785244310346313082028603076772455019784476674221063197608941388884249637988209351162022133400854096040301181796472510308951906545888286326241903141922402300853185037834855071285293089426367981115647716771181441907439629372822452151480114121733473675273825063357780171386723291602992543633809369423364433637290699904907341392695460269937399984314743874059855471491720081714035748206248423074173797970242898414503250062737638211531026285094752856004319346152956595817734186630768770909976246476268731534123367154418242159357957495621782155812426958057341765554873987035562394920028556881883598338843419993447132658225383993988020787329438829469680758679654259733948857970065566329951699208254538505799841689946673321246621039498921372325005166524043056425750531364830819029651473696249891963234081740866153725248872841389655558710206515440102250774663461811108297087821516963626089134330052734192857086583712648202421390794845841594984966052493483868993138323822653944430625341405725990175470497265826847218634868671421703086439092124257148476101485165420884702260071923732468753990129472397855341940734689377063328671494018897763646362583396384392909856449911780914835311673662128349775257472354704106404895237387142779718884385484762985787536036871210540083296289554776283918300789869918252721285488472173462233655958963972624035457368440729935946512619678788038962664365995250970203941001645133373497348145619395724332036473442768344959569752859498226970713654829234378641983189777720364983001031540473523774447113554927447299919635804065557161339146985385265864511811873732626578914380219688154641813502191705484563891270340609023414288357224015960741734069908355810260116569717474095608289401860466981709582624484790812600707588729698798821309395562747262410637082162733345208820578779999694519066845503206237197461336068163264992130666006030776170602805686266167114934536710437557323835104782684998549591029984451136540375805861876567427274913743072466856456991529388903252338562738561607075751499222749055995238206731206125726623259419164903400023005965793237188508290556258757085051819092969238554756443528528306749273990129837207566909621281606066826296113245530273886763431934487674679647540776559799399401778026520868471171356168497362933940734337677053326381490555788455521640426447951832750889373705417329683668317490689037904819487017589058960533146080422162205086703254133932809904561901136728482228650965942212976025228587227457201239467769295183318364755599072967385160269767358654433510614391719339096722420012484929520790197339600668269152495328365188363191902309520519941650255628581527914857953430944898178800531313579594224051034262942419507050111608722056627421688265451099896338865908965111714669978009898898333889227251290368873593761289848459212735666830014567775748476039385606774151276425174348612422057367729025829109908147390111255929575209679720193800658449592250315133770011776677803262394794333353951689418946489782325587690588228988614671552925229425570114958887249389700325180443153076043019163005936032680563908652150957814422445910675391508156425126225061269390840242149257754803190656688979979708250878657118468453571037048997643562544129925382628102363823976242297113596305464582023716884811273956643984613923854317953905110992278656611983155240390475017110571758835462081929237492640688448246596211028531102885912765300998874700564694113300734866753463298952975540831393436000528144759736741759930505429288857763557541450047760007052492064163481028226754579605707432032766276424127558486444112114728577156558112834059922231184993007603935082316603890826565945830699163294788280654041695644195920530624793671459134994259201658598713674538556877750718754321761053084647760387170832900793995962659288290558418984760707213556292871520617501939772664350950972001104643500333845535977201761574289461071553484094705884779722667948813841790429592310041427491547718285030578112502045902222871261906200854176326936878282348431631846562593189197194894792560803033074995420313339527342674622700281084916487892301653684396702279359231804885987910545717132642460427915494928245456358364949416373663953733908656868465897840791849326179500065345188504361198307457075666812674954134334426266653305220733155535798749693439773528591137327871620647694433759316661947670483927682053340325977887587520166815746231038558319016168833939041247902413046185074181755865166478009500513523099032670136874245713101803061701219658325361578144541405405829379260397892852115018652279442379389281179694627182858261600334524335038389893554697168966705181405428685178044933995817167290961019214550775780207313403832064746777431046380858169617178009781806930214233787766813837297853362212709149353356021576081562722284374073640329810012857761132113634523656691474689048902393740005269946634881176617468755669944191979968288874255622070047644607364797748460593386302183317758358465715377780165037455698315294799694396572502317458923215134451956961644943386008675824368016942556864855976900389943238928010244774696730234603789786673453731025047398784938099334290299220315917386373705516117674620562767389186207764530169907286578399973676726669117564027507336067045456067197038368259315673390774890531289752299753724709125693874220445568966946776694795818525589298054474877611560683452965984201050134067978759840843002313221148749363065504374998713488009607123016851567177680841425494339268520088369009063947165974943206197842955305953327624344383874453869496715897560023633439672780909532570007527114761082253737011855134390446040884800614042731431483511276503221699739438990196663978870440957761305352319199956120949351279788462293675795407484729314573753444234147061775764735050096089814457389826390279546073011528069806279635705472061042540028348868545287331942126192439052129943988201600402964865418804382923977772119687825266818352764749095889228624949212400902089121497033606392953359941209178957633012771557789874830591463570510484790650779738328607716743659864390843555598266722977320939869266152736952583420773588582193916954927327626790779903392935451155819249933829400421170298337696960804842251510988422381078135224082826701971992636116390668462149923949192218565409334422232331906853684232370761159261008450803742276396782813365751120347353706637789015300635909729423450102313917382911479579420687996391539220193352043346180271028613235522813567794207952412940338463015668609421506686824034994269840928093563471019594271366601462615452442386293090601817468083397634319891736439637556947701616071844453689948701009256511412178342347486070788255803082196237632816217724139220530116823926351002026568393386983786046200302739044359557519983611519179451910056080099622307924890360496306391807487765649250159226397198231434232062197671647599892381993174544802459134123895832305357385116744499190063859982565022913146457868261426907526657163761869345693791568048235777327127060137993732162826611808034490865885833408259324055335068763049148409838064370619017107829612377514009934500547034169356620130678309218985313039290590723576550149989113649289131516767084613064621205518920512778212564157090160979909093138669771862386486250104055533533651481074235102624482550872540623946160969510077137475402565504553630297583137440348981747120838628922835678650953346626142222439378569450780744323353707241140253036787348117855554440900557451175298826248190235163463569602325043879270623138994060444538635050400718516707457838833858386293061190437674259553054033726919333483324393587667667782744035249205619689764054016288037997628701148185743427614392949006100078109912847294314251355342837280060608874031172582143917227622780933960188251057336565005612204680948550520717801750710561772062600274559932890925427664850667315864460162503140173001624582528112019941625688267484636018269097766830596747477656175528654566448620503813796291111486311080404009787415287526060299259843434035051316655547917712265730246499264992690615653036399677842234819832320100548062672604193904422746130215551715138088440549958932065840463456775897144026450282758802505435247015304775348654302619585874176693650163375728270616629121112783234235262040586954657441831852926734866423701566875210917192765786997255487575871194423342297083547418529815860682808832956501766809742340113494278118448712936698793332908190904081674391638795625118171630666552078899830958809879864284038143632828073284101059525999580503384183111044372172600494182105681244218384879074577020015122949078276875943998447137351242979685818941332602013262642260100144308698174768700469929697742025642886323048534108094740609161247471029373168638356319612829617406522107192871555514892728645005582502919495388431204565643678191287741438877249076650282177377647523550888747604883086460404832878663268141470226397289484786933022429836637126271331254613704886051850359024345564262274879012867967606626979313853549221440692619543729361386090030822578574777432062013729190803606378218331906382578694417989312881990869846626485481403195930943555993997069997190303867598543940148101633171441786744575930545036127287307941595356739905954375500994777553410004176390261477482285373505355280225859387847348735223653484179532586539502288150528918298344786515417662203997197075881259743240321676097600881703521237986212885967527072283681432291249081759716787067972776422393996479042910298315383158326127157322955176878119430920570861413959239188201408650246204470514400049847690158134289373145729363709640468883584497407198690509900882558123671003146394817821576485510352017213860576111683757051098316171698424150158103279229329099815627062050233091180233199063955757806486242896785947672337987485239595405681884018080589450863250816286264955626747213153899131433284552761327442893014912576404558137773593956196898519397683088982514116063428639779692612753330156156828723777273963241550023379984959289512982590798905183944559515922894492734590993096372662870585175855357742700150076316346614678069979939687776339313925494385761341982980114988903274930406551105894263613106473433618531734997977456179017764922868547423285877217532956892760669992583924925369308743111621612320302632454059748736869792055516793425790811483116454150906287214306945661533156747525249043757322620776487116201939786632718444875498633945179290817835532517293552219240150377288484688221095531698254326223304495176968129627889788065485515166605758573930066047744748467224176548238406959432043550698971850897965165038551644471063539899622389843488934991995597123730482271269687662236593961387191171107181119350719025769669446875877480361511775811132954245625446877219809774317580430504407259751313658551151063694850859133574313069794528569747484595133586376529090215292350357178503670281117025823547889992952359645130825204698998520783357582220398295235673396471882755580781622285862552540506662285363445491644741375499040638008333200763569676338479002713536546355318451294113517687439112760267530061135068237867061768055014918858049837494118026011814896924194803443344375675224329378376434464983526094946840578595021652300255428797580525071867726469887689975397589489478892386770671517907823975265443812852709658185223483829786981307761365002759777138915918520610055783855712946949631489682470691997931292464987773842132865110075636213366454369063044774195995070087626994961434857840054302522961511595718579718992021495259652022995938681804880118040648081770342343323704397564617891563072607193633137405066779238695936814182039620112520912454702554441336581769761325006416883369156249734623988653743005775215742883635326319542235493995403065647728299833155039994049684156356492868770893330433093522634636567081341928631270862868047349722948515075521772239701300113417802886948565596533650323805484877048005940339337316192037498233483150910737327924352831597389606203741689815846536775080597419085348731351639937343320772629777950276734418653409378879443730406659007775580994436252146835796135528749488477229099881542965043168835774578976005858879996611251391020432790160509362957935523838220788167547479527641572348306632790404467063921775091368085836340826609275013515523726058405827830947810934129224944496593881692588651619721904536402272013328614328451216251688486840714132614943665306066537384183673257182782965541025311076615050374562891394485411952987384591334305658511059540369293101507531383733914733720074261913129823167321068989451784663742806848029031853930605039477745197301142026317047424808557661223578265054246284528245585729892073729730943855203072891230023340995953036066878321373653414127558981935194334074066798242735874713121387610346056411873353689502374470203467462741879562293756376387610796930779919334185346237097986866810745886347929230175459169924975860273047155833860524187411200613926945045617891703002331825515328476414695697481482242554339063173025334501405168082550862321144481110735734171770710798755295448960284324878641363041623863492015302941128356356654014036243481297487598810801235496422062136688834453480279167988630481878784885941673528177638099839583536071615563855807384296735118564363756406063407915179982209909663842508775490686144264427396116708139755939051658588443045245420509419715054878527788995564710728651032840106360059249785707081620034251779734161583056554262043393037701499319527481264576806626105918762909352409930581441665408382504759733881195482720703629701089998773767642512535680004385103721203569944361152433430702184279266040850715321347529840226907425744746659297650756230765988904481483916096454277985447609701394555922935475783191037112485613449217477350330287167644370345130395441514778685503092331584497553367127744146820541876390201154555171720038760907328009540248391073803233690089776547087162939326324520611441296561960676418526673112598088587480381225793618042151717750515854380918423823771262312625159117395153192588352471066688227578479771272581262914658499087826250288134108028622823776000089297370570516597296494443251610054386938385970092249474986023000367523747085002938163502849786340834233082541584205188297868791321636152285009159758392773328104196266273995656076292402039602270641161218212433563706400305805029145252938705459342304872868240477800037429897923865357345640862641089402700579801662927792265810113897019031022596195025215407453163410785867875549736885133543188982963078427195966439752576818856407599508539762823281618286979580827713155570255375513167351066370738835157707612704237146075017009033737264793142502262905525277994209467978013934680595762713724627087470147525128747424599469252433772513110563376657821971723567664420640974117370906845169493299517355116739110665124989767806935333561971209458361985291928010704297793901908523382328131961244017295401191067443092401221419019149485928822863029053191659492201090198431355289335791453476727654656524617667905293192205626519403658026810722452782641551151052571597826349701912806691186356573131040238473820080587450376371349984539841686737246471968970583026141350969007712628597277854862100723446034079763840038775581827766766283281377694112487631558119446955008019196539452488656465911225464342246209587430502360567685736473500545499971104863898281857031055706945384448406713799925455021703501228258682187969650063755895526233428187524246863713076517216448159479704348736758096883592868716947851203125005108204568529432388730368099502448358622198397049174951755342156890615765101621453779935983111487980012492551786397991387885412822310415889324524621901880938568235564971463304763963823546326590521625322326563074525266938599092064089554147050606654942914100666225312567979565487392398849476732205166164233777414798572187666832292100554625543729049023203441640521203624485878544202326549509058376851039925455490212950373389103410055915683205896386212539528392615089441082158573496070343785174364028105510359793595738738366452839801731148137053209055073596787326262255486420013239029476999616842545945985316247634701774481262668293641840547524089474594093175059765562610457632574459078183898063205461128832093217629429457756449733616245058322497838370888127591037899000558346157091921128009544867510499034626922562681653811008599607494197800868861464691776273582872814447382025533693715897560220442527586570408602385125279729961251950136079005882326275053665935142836836941516279881070518993280538629024411334729706410876056900878011666854138627484408323794661755988997891425952642169051951315373299086145061992382114955679046814739371357459585178579178359151703300604544188793837233800180503101032286419119987488746143540341166152785777620109687101296042214694828993391854029858708088851961693346848992523622873768525552895608292574793151818114762209086514208670120614510337284645530148435788198492089733941555773695409332820957733936671309949539761511022413122742066118123833647010160762100038112409148890339574331807432498729248633940385688545843486438028893120423085107528639942529412993069535376755370868441609965876208431291488866258401122174876590060596042525542482071295755910238188172736038212557686576573483772021088902984503655853565471573025535680418196773974173534835263020535116355167783738237106581532429849564358693922906959155411327981985566912959311964582612998042152238149368032079923466289208871038537637340194884870288749239930917813053087033529614643204450876008726330559403226804754483069698357430820457685094333554792545792973561252133254598817825442250176021080147871379487643113178305512880523683830381205821716142759462532455491137171024412812196455053507049324261928718858115320164929957712349623422572799121212976700419444313230562840795057418715602471865938504324890540912372719583911852205231770996164614981521311529333370163464767545171000270666179629212107182250867180159435139622272081584649657580404032678304541277562514255036838162193176157852187570451255768591918173769871653830935064504039930138299636729358293072028952129999609471190263333353064585230491050666009096296894426955748813330923046984545610936094179236185014947483591934218793986434754079768455057986425149257043404263589011131371863510944599946228694344859824731704580844617880733515069195535364501475964531685191730281561813409364587064271691223834495054422409721023678499335982691317433703854477332989829486872765378842698074217325705162799612290743122527253948700202740323769844131763637139946705420213134264214131402898676165197514431396450691001646368752625368801840343572519190071377103177339667085156122113573903518456830275848437439390018902300088817004870741843629708763487512345990978926270508199285722202906114029449077811623497185404806413551883204279617768525030349660417991452529724508376611294559272656594997665465935550552584433203796831025565630280497218290701362995490696168782250416338868442577166150933833866686191140035806986069222285992703366534873632702943219896417700670504689026039475451297338664424686567110262463790784137666867230339407389757932677338233679735248784143955399604304389299201312541898244504295736646090866731689778258512587698867583669155168760395240015875910158006818741590659391810922758519256901946015420257435239129816453053292387143636700136244899982240095667668958953333000828227531856630916490639824870616759829281529638894435909184253767764590110883626698053027322506221240354025167588851495576406797886429969489332049693771259952739023197980877502756630643191215235200834110509458175823761799398248376317359689546764392272237225100551363879502503185474571076889700448506962821195625698166059813348181199731053155647672370949993606928987653062704622942828148896919484941983405270918306787559274080488363085815611780118061598605495814320308558362940214764572108215055370999724298076882340456364663857831291709392311434292482770671854755830809703093059358692088678249121787904179549256056416278893852369409368694737030313720473515492248975528431705085879107805764709430355078828540665981922521762599934686443021292563959295795631524862995047556077275360921402643866416796518511247414258723625629323662318076286106388066388511328025823648695940429909971099935682737956602055673805559669384088456758046725214477904205369938777300785963759376098115919288118794974271244731223579096246489223177934238906831496203297214469465355096870083958275104642443000403861431014813463031073627711744622241580225974558138001761387411679969918038114299783788141096675060739898807750151472330209473307250145062964668599045303801984110527200736661021395427329546416933238543008818995664427685263655968391709747998948713134592010474901493371898262625177485174783060943091545326453291243038597076527072157734404701374201498193659941865193091090967511535038224146940512285068149339897260218658745418188354006576606988739324880487548173666241895976235516967975334013295616458806940713875101631267397365908722105954555516253706655700087843136202277602931562871266886527746811201819419896689893499759741685047044672365018318925908362633025088416141584828564955926795094023181332600397241727195738829481144561162939101710646388788714327930120207581583698478079447136519156586318010003218813902984221379931589243722653529309631357606655572285287723446468060516365470014792420446206827768145076453840755896700708959951605257374352726027793047403802613491897275586938141531182655939170778668345249127614300610586443075463840127254905755425717801240615174922031544189328219671407455660914769984139074573240691484535400152996743077570835836247430999349407856200636173849652230370932059789917801498129015900454389402877153389503590922763352663910687117945699965655675813440369675701427731777177794945402085537315127483206539345727425096391457805732584674924994876797379396016182810671331345958679523225767913999202850933738600668572360098577560176183387316651931604940037157277462053998166852138001262929060562441547058040463673377607131723927501147087882060450909518009929983133069897207043767601694840838747553074985096257201647452073725114737526416918492542059831843435737829184548272055190315543498058223584232629541020282282402511253544756129636714128812988231270018101606727860171123594241098640563691895356024307785863489860954450134341341702050935084931190585689220470844785296608082730515191994845370854232946461593150280880526837365384973117649519452072765282334952119981904173597856998970723213514496126033121540424422904303077248519090120057279525905424135681856246889655568252755599137589838426126531357691793153243057672044620432201775164238625627055084600133745203592539153336762775837579076380845960002219503087612176159109879618968972308239122566729177453979838953922765150023102583558492677081660676300466729455497809247505400827776582254467901959201318884186822118007145239895713689985040844706111608732752100956528827031907864619414363124321747689455219786914828975539326623243470992635080799874989599762613643832261853405431005309218932582227024798778392509929254176017203255695772597813962809721917992514744009477130295945602809280726811387864893004087479169776498913383445694129141303981412849068723426615403599090375552767450696185170420809714008502378394798973046908112758584642816802221865096785678987824714691616733216870302373433506847677945643275062353658963276354850441864900784970164733871581882744698705745255689226177734756609570702741946111338797319551670481921701094227409150233862043059948605496830269601203573178317648137655727577920393532675775201037030949746094987495025655582219377674087925862325602257202472444781032069773648642793396325562960510120090389781387123397655781244776432664780978335392849750721368728950471515300896619364962267903587006338762967081189217736598706857127181196706975596541157993426355606288099463976451062482943955861669137222751225009191200453500417486304992972960113054135145400938387544038941576134836360953272344966648067607297093569380286832948990659775183562238072637034294641877957724922555959235537532519305559466741383910350059376924451097228359169336341948767215341817056263921404349676157287264548447223934675084773296851540591779806301212561229419980998219024723606024707713432700075083224879517355896521308847280259729160495179513778565452047353486917737597476688861025949255252821772337882904498157533476359292402394237162554763991648015525570468651792706743673509658855167834992859195999091899595928396638040586961515165733018561015570592569560866680681150718949550764604603073964255207748783408561392262000618328474693829626527689668399305889683834997031514931175741754513552905214204803010170602006652962909241055354887188193836448950646420769819883137425948776006258940281209892047227788411265161989652212456249025982986312026661445178872051907589094932290562938964606117479129640477954261959458682848939319640563135831136450191204377725935800835126199217052664672625500389421192099470411623403591058042131995245461607776770322305091719311227603314068364316423747709002594809175478090471966050688432549345239036415429737576534065882907384956208814331131618442382835652423901807157638630325199736160704168532150554443313844174872355193539175053880275383123575463721472402258391584463404616934506974982377645334778497027045613127586885416452669207930935745586671312570368875536888675968117905444658468928798400219818274550402184369317176981785492483924782492310812344903955091602027014572002262696818121748375773561318330745953735967003896361046521471770569650145173371001921347349725667384229825065530460374790015179813922872088339743958650803687563540777580956632255120339760072259995462979418388326856661291825721965360016131524861396840491851183774068022728151750075681702981735173452952048483483597041497094471659315398138456386788245331656570443955409276261719516996990295634799937904540801952898809415109727064693802510528753684169825249445669579753200022914160628129177409032360716154156120983019796219114365560817447142632936415770707623441695697618884750790392919837732961481919981653514723807566175867223977243992262137869589463785585063021685047032641397658013078195444959663777886459098962468523721934816793603733957195111275241769305168883752131071708330066316523075090588136362004212742424342642784893644599973494141845858402979804011694220426459766718230374253174858109013228255341412892562700423100258591211621435317245043847982778077414869103256818650832487629194767958293331423207918738130247933248122060397265858885724498717757568148277657542767389386929354520652893829964645042887432249791422454324531443651728796460721534746291788055743709482184254459877633545664367233427611597455551890983288945890350077609347576425938949708515585260337389613649768632115606685316466126056332566610855912309338349106781189803248876832025481924853211646475103953087847273277060079858497278657094432817029336373426916611055054956514173058407870215997281699661890125329399685357730855781131212138122234876366206680930557910403134073647778875173832430115379150381421878036371036864771384873819095839307267044251272312815663212236534462482377246206927492955570719492313481758072877314427619228262424554830835988247875339433612216257732789962689367669209051609042331191006479540060017111154399612095781976941278509474127468368299681340640709038847954952753736976027869996589095028014653604304790886610961633189059793853856877689932256322543164846496398002847431351207358070286476418182752621700688821812090869855014604388526491509472752194433853342761233869553539188103116603018778890266866238465635948670648890059869624064585931327338213693622183474528445752993678423458652418980483469627139729993434475290835112603062785316248209060458574139978653271338638225983801116575057905554687155971357214437624285965893222088808018055415715846794360126934302943770781080155142685743036918017335414781597070792273199747060691262723852994596358425424687167985572333028895730344870302086268719032424875210883688602850617523540680885026747829047070567384732093682092986177397432980262401707612929584222664032717181472590457458571385781506209897057922147944955940728660967579390343978897977196357261674190727515083597796188077275399464107732767002673686340684714455901076537148121797728869296128800394944103550611859709004806981988662319963186437635288258830665652524540036811185015209006576113090660502217469388583500722047130909454737635897054755486709612509812365783666215593958190209003874829533544558599969499214067775910002333749455903995650144569448492241109819212717775746939857077811781221331211556484005053172516014745428565639045104109778812744555432263395780209376159009435327924777382593629222992799845945796379879786780694873023260430150740388210514101593002674363028787010100130807034386011802052489285359751846147642671536345401513915197145802791410961875444869646710894130133577327907151044754127157161509178583800377569782341942037696504903399764297047659601092025874264775715783258752305599897318360895374885917166042144439162840820600480438232149119655537992053741817210555394999457629793727501118550416172214185227422815899479020761053905981831416988717106480759165151936232104829229742130342619218338503134223915711272771319849126003558936600356501370070193675039910741112455654646816508305578044943427826614306643347498685584923292093652375078368082452255680747824855048105843230343933673146223556753496265037316974851788965027095714996625905980130505822401205517667116676273433737945293811962094148651415081258947048056261565069629745803610572871613868477195294802661082795737497001236614128267942524640727332255076769966195024808383114696167769840201479086274637898488159355837290952004233195981153657988161899102003828010194209174084830419692485858589887491832547374218178429784220854721267299535391616070485611465299671536285720715957489010849754130225019791509675010214534220293565442510794978238121938547027788016974345192619489299826692064165671167971683749320152906704770740737307777080836226906842128599428950573957808172662256407638633010747666446568983098361596805130285047339981185786023903624708169678136847166962778850833292935375060163783878391483935790371535148879555040058832042894047037871197977472664551551283318134391740066555623354007601447375879925885950485423299368327621638493521693539741728092532422883437083743439658030056584728501462334479224507825322951417093840904750729827732291761364210850171919431837423634036183302579869657902723228950610952060150951768381870364003688632240173859568105673063310366578301543128352637810453116222638503839006191475524072688807394233457149895290495067385713647677052130688456946504452032479757483294897489707776006453969764877700841905581995401114495543189282144001767640998004234447971409738504017746388623911569548429501687474919439120708915877138912432547619122150873144331787635271356575833719856503489160835528003320064216658545862825251985863373312803747576085632286490761686392365357768546372883425857574338980300669070753104052159748842451158565681144615008319424869062375297298665227787041550727349013783756738982543487114506595521389508028985839163431254857096440710698114636513173204332054687517912105433450728904381970472271754537320521830492699721007598218593400093497122209764350632405037402856622502128049212778016484466457819587713436711505988023883777747560665523624079503570065401725935979729486470006199183682319583673433530659346890143610531780946097084729730306492445995881956017075874883079860747835761207767877766700728822267266451696658443066101797327566335375284054315746167817625275953082435163900296107074806481466502768330879561188697269528692124593128720688435494817707909500429931915726513315837553897409000075979417009634771988765306209435851503145227215196143971914752853803997460441674545430618082343593961633481398068479282830419975963148358259563309360420589435139475529995095513683574697079264857177116169758169799531188477205222338352155579791426880474271872488360270960488367739015639541821174663856794843269489546034497181580554847626513051976233843414919400949928096248168721722600924592167364817579549050945343173292897658757679810457307900051910436789255293230013285641754396877494343334046225070400586307359322896597899735529156005540624326925385452030867792484031052366957129871884851901464164575707705026006794120327173587630511943425386799704779585504990966775285489663953519677293546162220171642881142579015982553986630843976604233821495176904394279174874647613977755198613122690347141646082086029373012369891530978408288896476938382910597500037708238291743184161914767174657257716876558959093862564818456787030747770922586194776724362173673589605972394038187997023489807144668436135040858068776842894537002487729859058473529130686850762359502887800030356077837836972538547057069590566234702956296057075217981506091804928475490496375250195286219534026172978039156638844754823993332364259097586471566627185514990304287876372955285447991979217655923996024537504620214514704415642894727092747882270002544265299668637794824917467538509176363223381244547152339069457799864435806962635335905739515396567994049240121154822276243776853273234807731022529542886642031312611889162620839535149155544359715747199392667688330294236062106178105005682582626295924867712771960150380756365449300379922776066088643880376311146683635158516382169587581861511214927282160258620098141631145670374583805714713441973771936578150122850149294761485973004605075903312952992820783119614959543715198638328981032477510767396846335553325028405116188329311032478118313828989110401977208211224592460264509424948434435831301727961899718639256522024630274005723069128125088476764042698541194001627566646351915640714031234008848834366775988785073362619145099248552302050766192178597299923408303984216011365300264414853707881085861904515726200354540199300255428215607466824865531723998280483361497458532329473276361703645055050256573725425993855648933227942028886789009970566090836614802138985189825368211735572019733904706571039157039639091165439787396908791444194086737469140878046078340496560550991355309587664201810394068742337462862415108667651995666291618854698536813478631412562777677788812061283896573076411817370347201005374562429671068090654942260931409586577881031994600852009202974274778558529978496039764835098933921404948730347746397728289697698726098782941478314243633627813270447317888026648107494745419310728349353699495655165134995181776833207193852120678370453788915354465376788832207104104900238478298937661273980564373259377016950746199537739597304244098723295323004723962600380411335473149804346251249240312185192606761615459905273030332032972265835416444630216110744647247472921630426456505453733696445174108671281488020889267410044033107793085518177386071386893606543301878779262105594334877929094209178777993912528037544605146625504337223046329329511516388027648662834862693305631766480317665663481165522075125096632407558344260456776003897202543803068276013620159531867112996939086954485622507091132104264485078398592210883407673308500554307242078829585931765239448656602075640689667565314963396162219059606363616163262591504073502545819926791906312775161004633746875800268448497715591940123842623904184161984369002603431856736966530369447653461628811422391778938629486873795481654509740652261636617634811073116294597705788961913547301447772978673446747209048980953379293802338133944035693849411950253436568377574857259003773214103243550311213352783519449907463380508809278537666250078801130692995798304331465726978470681403759789410097640038971587612793730263344304720951906404737384190742425034218266851256479387202747254378483894520604200685310720718285162714464943709955669524948853040619065864403508943413584059227532712184578320501418488590946946670286631625550552176087967952933949424899136765506663664126921022934372964922261777930292904340914104118682887248885180150324564913045287463275304698419624944730004745070216367947750165120247122952766856958754548820161179746058396161831909417773939577712170109902155970654727667592995180938660091244394726641982324803393633618119834356257972205821610812627581783286972906484969870255145893042918200327114226835988078338096634282999736149431399265607545220120246721202150090211438636658326519468812581849649352941241895712863629510633251155572985102156684993787208411131354560109292463977861250530182582301794620973627552328419444692788148841346871749820299643461747990883952956963277191042338649606044186517152559343244403394861676920427055615829158498753369614124533755879381210847854140179508798998314592685902441788555344866470054112839701720452208995214589284985780566079154160165529631950959650156811572474266022498573352520656115533445964380371148186761573109796728440440674613727848946154034002629134252435837187780689861019771058356926757519956809189305912160133274560635698057975064008310736244507110192923236032984523457778307306787676192382428382356772692237252235883844043580966943853172908162570616580812893036204487909903234788622170527758203761537945900190938801118689554172613047143013980496917907278911228289024687897375411199690170377049797170291578443007983715775490238207682116527029929565452950865578536786730300380941194429654826320619182124460151032054451425771036710134447552405130799918238763405876596219980970536084253992025048515493195081779234314370007603695818835263827543740783561810111235419214668732259413628642264278385102939505215030092060290775223728243085863189666650572255324006254257188144601371441895876060915190118609808218240215327566070641722324865465571035417117057047477125243139467247006427136019410948673918730195706540817131973133157226720854182475500414114782759552035367012836862940438365080080725211068295724831506302294962366298952166662195602941043552917920541393828276291008556262943440130443057490494161872787729201137724180012168067018551966175530033441358919288739744428373560110459190712232855089831424404725717186434211303478211461377627522851880856781918373105726961595318725981217329261042767990645412813963496243662589880572412017380196116401048744307059544962863978338132311625027878198186450775195686721283300675821550059533808167934643108636548475162007356991948965205660353732799157986030177411569043615706460876233560897124561779477186748621812159220763372208089405762605326584342428601832997401145710745203196243004247375879298187685733710233602153080708643913540257889907309567384164875957246111922428176738809079396651202333572551436236340211579943738747389422853254673402905751050632947944765303350346172062555592278233115272429736743521425736456679606173824337007070937650864236630093536569687110323980928437155818761155349727286520536594447676458537366996480366266883700348423992004246727575778589990008510470107172871087365333957346487549247293703277090167624478564587966250884931126812606627161680026056129873958005138041385773943556930396511118719285293259792761788700960536138004226293751797902745842561670920675845465337092487063363848668421534622713909144820416149763602394642402017897647309492391653006434549203532111068578568105573302495328414717587876627707086167439261050249849372806632132296702961218823390886812075899397318932252240713985766342704028270235652867774132292584833296434561370291325535016603288024474051782272037971452022997356497491401062982988675075521091305184871928447899597145057640275956938826022262012610880705055199452194066797759385637659008541075883213069730326670825846297688430327471729426715165101519184825843286298950154756072385709207265680432284649365862807255144404628080449523441671916359351379180553341400326916943333288208322258276216297384146871096544615729961302329057859256511075228828851985617586071378604735385530779061224730940942912641964825490209687158200181511695355085584552395559596042486740574511407338208130325048963680784830903795580173479712380456853826479416452197354305875560666293628878507812371774840534513783007851138432946485308667376884155324043610007470185792564733089111878706058169051516351854371447642690565790006163570682846933648742363919620245367007701400891461053109985720183684715668154671665812342153028429628915967735139551396393230879511079133091456182529155525131425298461391534572881803910912159831108957974396674906418983840806107175105659862161993342640040031754814061132975608938620782949643011184051501474611878250645150925902134994975756987979454721435803885063460832208996795312217372432610156795574487283540223336124643800502248775201703282616008463302631700886620999530670950566640436853243483001285258219988214825625819770029703762446855067653009833900166714841613748592648720061174047416911770524522237597573506269748899818277395764295592588243568308954580844363684802092714219104276643135800073059389636079287547560504208285780941286873328348377153705700470197264234356596568247978399120628108245917143233234927485855928181528905677955873759068835023970063032318006575067237077498888742792004467847158238923093290419806546212753205888086887974670048423048937498447948395871307962561550378943818584041232089609733667075008727023252153201198988426119324297504628643622499883852543877013123148583046020529223514192401519162705940863812212622775870638819415196831342150866955749505805000282934378180157303027629407138577629010739227582220013558734370592980061148496741279625346770991264071431948275272428959740664274249522597291813464666157536705127464122579371321135895680556514334695191899172971650194366547384890327738292385859130380821025301214492527663832718474800190777360414900307071768914805398407302772715083922542289722980708215741044197470266555106044187216847839971277878531827194373848094318387848002847969796961318623919741420179896537764921510006194684368843383157071972769846401613043898095713577036434687507318356646443013118165739593146292785417893227123202031027806570444613778064545823055247832975586329048990532995669063456486587338944226634345795876345902491398158361596117762286928422455038587542639742034310757208803307210140899659903393001719636489006272120720909464642357849948365834757065113199774962747140316283995011485790093663389699701327389544581560795942183155912226647383773690326921084473988977188474238600418131302095688527501127846070544103317910665174988753433492777079084555677332645984203251480798974642086548208722370906498545860052505669668181328490712489545121669330481844913939337989280418231465639147343210250058321305444347396111996343000189071894370480763994247288317649783100721654271588952829879379053159412233109819423277043763483541130943410113241241151049466670967323205785666044594462642497708085154741992023834899315347804329260820641327989362495205666915415910963543986054971242550149828916599409495449548845964032407823108761244741011258647714622113243997409448066690085874602092428993065132417273476989822753265374945045269008002814654396559106404976992207306316098684141820417796851017349290020643383149333968093519968063111820612719492659923921827730911893459905908025976491876840164394802213373344051009284930801457621575227282217822661748325785842693745324430381652221039056756116685600581790489580834348141050882202785230636508945867124901672840275797646243732492494615715803293512463568074943892987585065616499337832584743023107062252401848582161518737845186857361392545753357004275193126937068336464424321420043331460605399071965651344041275215870419832091936183906082240718846797585915938437686402869792353217841033078215761670783535558144763513566843681153400979600358585227262178377041989032201633899071012023059566499839095207776335301282985405457156205079211809829532585017286710344961082619372066548858909374668659654255293779134496291349365464510738182768037465813861763997456851111572115133328847284678712825841957637090178461784216022155674626886770385822697892589603223828416542496451217615196856876682878517309996602253757476039729846758534216797317235091800664835204466539577815181388474542699497569760345809738216736086327420731123192469730482649660666453136352565144839611290151390668104452056937753912465908369453240744229218397669820235774901507367230581144208235822989977973482127841578413036238646505998706568628380881307574016514784392729560239547464621733580219364581863406400853543742199361944725430821393522360498958697288488833344309888656852794004597998848585155827320630190873469204394949499071959386372622059243383167370942941444150957686386584085357759957908940844254251765854440103463668868938241998630844225899531819277317927466965278555780418130812108430172396657279534310419921632888148077086591063271623442524037242368362595927803896628509180486514029338741105483089376025380599449306457410150997722818421955305251394969599276509515017115020070066991489706544038967605753666221359563815041479092284154606640829647203087323148935547773212158650724518349664372993757309945808491783668341352395706757778084571340235508149472045342551979846398762169484739144906060622494014119717936822878340356321690672680055188776597117772447972979992657899624500319278997319975198167674797579762970025717041347785983827559265270934827859157788054208593339055554194351246302612199827167294023906305366824299980027022245313119012505873513329372475714691116937867602874343309077332801885058025058293652328532763164007554077695936399118956821598179470631205501185458330960803094422585074064952944606034340469352054396865265653702578144165055356030294858100286804239378532153856462968428629957572803434119003015923817487327306573304589828190840014613255263964660464800540035555747041510141725080125638725530305092455196370943547794410392131837606313675930502328697086759868368138419098450730733337876472215435388813109774421064196668366794267950348829516728140176091220934259105345212482516536473377843929498135698706742204723193469766486449339029780020623318373961403178809827997491221245140356328346524487281118110339096380279648137718221610116714936222142192061599382582152100619168935830914450359157373202494307437868547338698091478428300854147698974171908917104462206002359200326073042934394936773629055848100989744844726521348566043732925540236561306495495943986699666433158022119436153993774281401004695179191283029688253421623956111008664930392054544862381753963489961852554031348635303024149053537861929837761582596844249823964286590841800914196016866664291394305350949217428342768779050219926401059993076514423805793399876416485418029435847285120732865232998136271623443457764259660278988733125861079981836377433747410489549679220904540706442879132877269980026503807754447352182434104799494099555632262968057288204455748986682377558778551792826624881165068331884237260940158138997554794928166081171454500511198847982802827068420002248743907720309641569917432083356114708663636574373097014241188236854701466777064958741877501226485625919929257028609754171013850760910881685749608151557422614691100227223474898280982464600884022326191750238770985244049351253029096716666609432576830818632521446935309833492350893957521356120709866051237192025251894587986112932516207386373832279064545088642889590587280956535534128644390344155491095637111901898459451955545854360424330296688036622145034732324812147286728869045037134341406279530426764849698291663661215797213662049839284485963175850225381289993290884919682261317096696688750780582097899030792781199625332636733884531767168657163628072898047166842280432571518559533322354466371732464264178739169860752254893090498387072516872997769922525257336738235849631201667833260919060411084296829775773302324799639795926732494560444877054162228145056776124841992973939984089118089940075293455379127193973199459567170199435546863867347238447585383949917544025884323808041246967741127823304874307863019903086351264412485314218724321499407879202951037118759723310607066913341579453272659945581229273444644044994609361318924370902224029919911223728175120557819646612194682880595630495296120959715672450115609121454990968179922604415626955676972404964089322319943282017390212106368634405800632077623713651496080179736213088060226481908473597184419198064453497546112688179173437690120507825704161518253511557169207400512265422399409287749169565739679037289402756060692145322421426939440357724435640032794456486551788026161610186210016424627215203099633490864954003750416622863261353451093323587590553287068903467521659794804793901202186440317310797497682327489743115419375421512349918177332056910054120041807832181176418595109086728622517612908251898041876077876658446803194707741494834367100779410196772808525835271487936412684991303080765502281792831608243784335516361447769474060494801844594873769130695192245962703583741501130747094482682581263341604198182183933116238611017135056853502071598998070536007218568055146070499205104241482126222844918033414501570807267085491284264935644564696143317833993827468259712592642017025187474032592569172580672407619122320618928676429362639537252049394046666232689214744856095454316913894119079346429080532821888839777883248588093869414715263355054338769576287820447253069002365766097649523459844522474917037413902171265807398570926634781028516833887525017201107391864991730709736517353020249290363632954332219096492209590471523996159538353683897132652905833352423125625704616800200950815048331948687899536353630131377374453839735054250845302952640855598876526935526953471512073358573389864273443579587221614747655485078308847986712770243566116997243977808430409656209913531595951953042454317629875155527667040400321197130600224548241987711430839044662800285313331232280966918841540305053328464986748819069853099482751140776145906871503582752203983061979314593926463370608713504895907464245226437384259901135956267425164720635827732762064032435680121331058535051831899832537462222757170485024178225213660437417708892272304961040950400327546204967658480344798361911399037940720448440667114805423408270909554868828127927630460726994620985713623117668037521304532077745896544606011545126710273111958419427709656365033838093671143463062414557291325141245737259953665040065032007257677716176604031944777141066079212049622604466602474365181285104002011117955304011499146120639140288040789131010916271251468181606956380389060073086049657707197870323387353368487757681454442020619092981084349124291207852400957903300067540923583224242636273478093976099273620820331398397204635592957493219761744908270148388474133110862613287782705152986694294724758882022845202987176312176990647322524352554847232625510636004328212245519405332440648054395067186991756701352519466559503454925426595277753433048028124122011849797501648559405846853480324744444429511892348263525858422950577263491635911567984971172053598695410022132371761029186393405573906010359848327134843511306608347491944110801726828521404431283079769535235619377395650813107256325035250308422940110945596969629567297036576334795701034058948764458542500215352892891359529318480321384670436848036690693822239373898180445713690699289379030843272124028528247096309844695380895073619650684670372118079327831048589847592565183949718622922628431995752007811357390872531762595099977631893799424125679528641918966463206363953679809138726175830142938949765424997466136823943516531505878252510765647821969353121477887097126497413795533106449626675451834580676098311888863402246340089383735200965288595012796605582964359771125251080110102973885410754240475112177994850637116925164915414111139713204624231698800707775333943174972233198680434622305562090744115917877003088415008578371605545858484402110455257366032269112705603879727309115326317232938416983416566062033501437842613001313144078361684383641180270452053599145178379159377858173749617721206763497934874442361909208555542092089113027086801084009117797509775226756387989037699197113063443577746838137097132240108757516046198476811399885640707703145278683997826200473489952195797063309837803984773360335195481046491102233936858573948192350577361429781481963736859381591410465789544585389453033585369823437962089948588586104913413594050071644520120430241993691464718336272381635497891209034536263624817844636941994207467312342803010937911543961632102327028047859548455997635295672561177026858215929212644737007796399046108353178492816901299854771886770723152814341205050822183090989340093973252330434925286997884136483162836026335468457229746127019892639211259668062554245263122439179622694980039583033309118691774087301886386347708389507727448674223037960348846228661069370794746542675137897862600396621834935324126832461593414537093409648857513581501671671355680196437223565756139491061624794266927308482007561700975949764384842880746246342892477776533488354922613449801392238107931609233102441831038507793708914564124237524137350026529797606261812029133382225643564243110005210163472544879405876086520990967772163438402052261920378432200011254225593506505998666243085748883131893536245089152920098960202588163222542578352857050128060019130367974458854839872041584828005108780900849632269619884507418783682082051120890879361354960473191138810719073456394472349104688511975633369736046886704443221559948200941414769756905725562329462503021664095127960864701704870421691206147413089869168215477743617131173702205174732767338884626323001613044695035480168006948659669032160515477565199570898800546792831878004530489016473301301046603867601452684998432697008136030131174185856089704517894861362207579964197791154900150508109813805661399441519271905285434356694568165473041892419325615426993142504864594936394294343630990696927115211947482183815267408457778626529527152062756432512929166195310204719133801009343627890090429139374081880197773794688782613474930423240865788829263087743025347129785752804950822370504159975516755400720266501792755638464153431449504101559572940021531057918752665644550871810145422808081588051136220812443273756704033552354727867352357777517388035895777785976500682724850375766817549865458975964020561739506305321143718720316428373968053034394606752387513308139488612879977922920567265746249741030090505032666146466796198176651374873051891670195864054730252876431015948251066003302596465334645888704148425783256588415414476136986053363538825946613316704235634906896723985915453080348911707141145513268294017888802851970118380626056882704833020014608580481901733202499053935536810431979443257018283938042356205439489876568188730179677391373171677552502275209291249592212775013204493138802161496829268042837147178464921523413758498945723085198208808479239840363030432389218287035306697178992536182374827023596850723171043393794999849090631495863184674252902258906419780350311128634728932289725287654407649363501991812221177311603172360055520130886987984295406899783697659773106172811648535476091582445846513119437003675952397953145285249719763658676952407129042115307843239237402400816034960919740377109359455554891243230188014848540290460979653306998044146381763213312328410085574303765906425169661380893692850267513352847470229289771347840890382357226772236598689630050842833228907413090725232619919948999492097126356704115175909660172830288239274077293725281285223673321383514357603339627621346045236722313048174658596905635448019028955681512663904121611066740945774543576461638825118713919258256120444750077620266863291516705458447145089493973571440625449198466953666124254943471725342430530750546181371259912657970325323244366756708739211866025535712388612502104754880563445271790573304983505973893802969185444907305512856897514362648584945446568082969049076867025295015106285729732851719170387316186524537358218903935227366912999133153983656289683325949249568299301428396823670466500201508462687032711031332338665371407173827500416004973929193108478947098743653479864050017972924715556245574382336853922066524370930708564304490762333260219671601383215341086261155605441585139588610470287109406203821436667934671837019799301385118372938035407040101073469549969150847426232074047478404286123365846563193947469404129269566908218122427619042333303978693293045998100452808373548597215772543104298887170779788578247479119366640897416865901103551822345616272692370230462388392671435090294471358274662889304913185760772337905977308661101809157107419328407407064763588986165441956799953261923699577306192013693661889764453992308893222166258522517277303067043925753731765612727048642135272081038462115991518644153811330553147221362690599460193062772948674675779807471473644711037686667045021573423372416705367633057773291221068773353686320224156537646237412598820443835522451343295086563577663935552487040032246722065278137119186519849425348541856095128906214770142094244412632685631394454022173693851774584124477917836516202449404085312131973578389760788344133433372181611904518867066560355545201081838129788059624806017694639171986138966390496273190214515470080982972044884468544301802138337869076990637608893292679283511232677875244749586514727523515820072770446602424194775168936908184085626523274459149487154235768301134933076777511371857852857059635373506561273798912977693494706016998273593559150829692470726979021142738208622374311166242649648336118194077782942476652213726742666084737381204009240636716074626258563663930190377178339836263021945124083258635268037929160064062552290055762226930804580074937968098355615707399718293535623947020494617038184704599807434701860853215106386561761001513410277976180800927909078856125245362534729760236882017348048424526436813757035872052551524604442196682518196687574984438691493901872078643617794684336171662737723357986894590272920565454526052788726062287804710053253438825334179280319594514195651244268816630427278087686387486383846806598373165555139757557741649637517910183531829190066518219187949269496464318932287270763613495834132129109136605256859044793200511355183980728844572945934979787296124364233892261178086426425736170948984355807665217660106067396818536722823461687319188366992451117958462231458661921871887419804672506111261184363661822298694607048904493220661287877348408789061638267557985528068654295426380864185247515321922849475242506848392475540318340921212219485191054287345663943236247746898303562288946631990281370839707015798784105181002025990169635127114404504993632342351203781388283416105906565158212699212261728582761249556430925657423051453373742518923261507076098677261355793397872657735132125503041437138410378540258302725679307609485744000058041562162074826781578123960172479741681917615854351292887932704430468620892845457140887536295576141747750233501780930702294791956846397180677226988869449585555416451319067323518882837029806991236476036558947395136204296715001464771530321718948297750931679092010865202044914243044358877157554313493848520705238645923990299473834201872442469958216051128807321084368681971903424651781056136904058849624810633231108310991520722205803156118504400290113863652872589129274392765923769143570562659516815257420432496863553642100546774683659877973534960365754173188826653266901222031332436799879228090511950906287339122425888237058246586523656324012447218014670825899563435291378312869514738417157008402696904790766419842415187176153876433938875244130766012506628095327883959754857307867980956949388236054357467332607164863104861833039127760866292365157481931494937325966546951773779783420168742830917755824070827777080306919781472113721183201794215007532653481834174053311022019041781355595389966368809862941826566163779364349957889639855406310544412762467843456906328843173233735834507821458555452562022148123368826652188686421471901738387970216715858145094827117430966479518261966197213804348634367507243673238594508650715716198761539625036053716151281227295008103722419418577499712491773415762176465542809630760569991273029827704935210790684982253436324132094657068190991676137775139133508292685407638681162470213905434313721146926961539208845385611995607511400447682433025856488118283860621887735802644009591218169294843283573526157712177805200039851275186271327662370453682290778892035625036178375379224306025732418508840668108005911404817811827400063441433432930584281086937143967125790221861051027482977036803237086034879366760739037861987458822158031663891127878534410477979318674929524214102549862198181207276150185523499187341806018455293652425198566778695548568554711361163060495418203970554778558130521028379783542244136325843912043853393501580085098017317016906714375622193503946773596965485817025816237493700800025091983961192394990942328857331463041339736219715827815704563771708474896343007889152491950963835613099511232752281662193526456984836393039511822649847685422353924162052715236002911896305603370438948869535677718744291481449389206447246766197954131117237972976476708729290112494841639840358752801843202570473977771246321691337115692520369878449976564019905105414770734222407604538385726347446123846389440447032485253554853806469549221158414591980043014482486358650486463402987287067749636312987350611201330320347968285855488396218316718916921026576576205761504386459695895001782980300830780567452093096875451222945889555688919949305914038875781857907419005476503956606105578035101373963242742567545250107375329687486706752959855081707942855274599168509362537706140555316907275085422811403724956009831644983565087227653322842794211232527260124616258365767102089272193077844591861203797996906348577256216599509761498025817538689955015658803276123974474951856618865439614652231604821376982805744509838293673801173496670130183460659132444707134669639438008500012635499180265745299701421778537618773617096985005031859739095750080874494803481468270484256546461661808603955843897807311544308380678333406282241635078643309801271597121681119368931333449323036416708319304099444131215234998219916527389845058651353783229685454940684483471303150476049029802100915180689161537594534072156603431090021067135151666061144224749735572400033527852329290361611938375449148959752278063386392145559881130334756750166755216218814970285879455250622884158792989876041097819770026505887020929490016773494619419975993208533564811560379893247126664247778757816126621880741851480447271722168254717449872168728663998922460485719856290991442275953465545182070806926002219089556079774607083367569538490375795674268943683653592280929060120481383716632293334085635256930762683921118555744955562481699270599992491103377057055561980712275000373006817474615281430520385821788251540971274893874147314819062809353176003592247130504696001459779871185625433464477592762625755217883513792478991832342802163245731938891631812663171037309127196515963038443957103949076417055376232646441102008682834207995495265550267600283942724161266441867292730236335307335578725013221887166793930152833461169123982919816641350535515581171362908624630100633250139414425470487071601237183826197663016326387671320595228437607564942326045862921957653480435712192491618001757302309108180359714785828159312552630008419409314504654325875947131133541680343234601243092691670010635897070472961423436360922470735153297935667365509640525550267640956083235052907810405857294602221169010692850386142029797104390561922704197108163750627347181482479842479343318169959575732948563339303996729364601263807380021160633287530631170706308723480496043640116544611142524739692791421327312682490017882976314990439837197987864066937319935004269386383249755370803043911835180531845545967944463544497558597700928708548135866927116084213423300611747079381402347252948538815507033675745448376610933721226237625657640081618600494283953094180072530995909030154389588227642990473606572530567152945074562482729923281217689766859818424717893020573726482651737448231602744710505686302668763215053678787590011355954044348893848508691473437531822885118954729807597101634935548445917395748647333812566859455212593009008668703945637110490240213531621547005919160203162901878686006348863546979174391027841488543090824157714410467969689790723860306442275281091044768478940711478724836127710596618379633910208723923740510060503855662474817380244753781312371999031589386656554288751628847746964539383025023799161591466948437531034755225496592484502352178622914144814406678415777951073538962210097268665430678505095357912308895657470626920816021890083212405733061490534488064141380128334315007426471532763452592040157432484834206287665738132738834430534031110070572470397436709552149874121237475513771687240585158056685505405626655199159917104724757018263495093967428839776466252906787553965019600295573339101293536532918304648217213238201226585350179120104291600047632031150794891860433408927020975756001300164351712629519037371075254024383911206552938738476710093932086567925071403746663192857646963151797918240439619773611139020028702848279631424508183713689176216644281640090590049366453918060092677931582230720762368293384149004812934506219081238099101231654886818098989642657411538518865823865911368102506422105934929620925995320447048413974571122227490055729678043219145804372964798429085780345213416576696644564296715485884149536257198257313046400462010567585087633287944878459526170892314946864568723207825635151484776402754688357112431911267712823853368141250780337972563300651960539596652555058289088093446787426573860365594043516662780656581537653145713201639298045648962759500508037903333785242556190104333045133387598975418680568827916825985942909173196741908191036487564133728253529905520620110131244058660590274420115971694614900669467847018762096820114427196563175879002195260991527293233411295041708593394208298510798195217772431499260965950119024657508407493469713359442334019267118894676777012441950154303514125960714335981311959605273422214777954498572806178685144669757600455514211856068379439539112666472816368491643712228836837318436191604923735743219804694440087769026931778573180600016090838364615947069392851944809568788264540245576875662058361570815021088940227368294281368157236337920183807241281387707677292626015452842845331052111774248729574260894305980369527860145101986203874301848952882861179168826271419069054432433116072505002546718101693984405672420445195475943348539723262325269286144001450213782309343592578506225754569939991220918294409276716237631677804337267758650084586864779781037243006592436993137738182294623123412070878258029468084394686116113151504833772932076934564238411149994815821375689520714991753021083397191309788582996276913719733178338740701702678065586177983710195385775581649376087323863325894457508690448117102863013246667856458681749302927529915512820313563963212081240450529109620670042620480213424516270866791483305012296402930203985402579724572067399262159504163660430699681118150249117757481038996633779798722714654542472422196983213207695536844028822881352006375952049691155855032018797871908322795017571849280519530962300578618097221818327877315410549849292896724969280445652915849399755465432267065728835178019980540677766066695082844495292909060628828870425288938546312564839580107661563922084080949675063267579707905099324660225128154104861625245118227003948968832924417530261372415395190228801919219996173908309499354901876840931085643736174519493348394658245225588560717311018689278026937038480458253475807812978754346888274813947369881324530851554732406367278237763123301658427504246356290657556703717139073652572798114010044994602837317009460307536978891518809580288201677920725781607015257248104400369953662734139632839943057197759283566902845376683050744772066243917402913262524136035812008722523643767223204908380700508011849700568042117443630515722566884985466059867038671122257575652234016610307470959868760330297075269099195176117508700191824759325932965511467392226161837439456099367801828407468311792604644011191916521498053256151867400922186952808529547382198470711336320683014427122186685996861511868654325568150820178055528079663346680574910974489171986143925626068673097048735592260933341605326798193008392512319925857621280844663100183814237799432988302300471637823418040606691509581648251070862389054350820717219261214090731881208767521668349043380268286961569789257048771849771706657236818865578283472338829236373788857856810141021537444774183713201364051961427396034858092499753100011885958700421193042577282251263920368238876613830654939878589217219809218278670088800725634693545388844464171663263589230505281063672819285758736877622454292543178076700689488419488864173617777720241476239002353702695453050321356435069060602886646130190866949634680373254008870187765643502830510585693925167964140040904700167461414464928505438661589420230105689390917451738154102134904390244724367160264428447514728893788736529827198267290672144661532711414853520921598820929421297412511379970642812162654323038406548321932634928175881925920528073224664679244014189792339299327874290703866822803770273476238395804884653323980639798227294287943012841127503447438658824843873263903753127400646935024080645688843920443685326883039455028455844875794704744463040742509194294717309750409229020559011090586795599544353880073391196887254287833239849218779899040094209166676523781600137722144878062124144268672045929400977183822193176505931017398048264262265621175345831201076413678253766962968976651028431803668167477447150308739115099389219597638729370461584986480247037476366799268763970913830808396666768393497138009549607232457632779675426814588260363382370039254019966540685211625396278919094968801602003732160040916436771501193657576541666343517133756461370734528922253387429284895666575620302803469139288253203939979581778495939884969520646077261825516042234661186691302344942149652721846331390581082888477363322166847332803937548620367783218098562281487458039744702595661382463985654507162064640519515272676049438645737335818332019549522256821252324218185952829440953845560380358941310707586603478417979582196986353241706456322625780070488874867683427471242021594310507191337782732704049708645500709401482287493278138843293718124531924713508466728693586035272058485329108925398066868044441823621125082803686367731947014116968883229368379046614610702731587775844930029059370524730873419025492903107620612190103506806567016433040736731862639743275216938916636578884426271326277721634791638248342794624716437672002693429632898061644760412158374615740464853578014214899882321566384665581999234056865614316705189828805929118192952894199865183512537834748628560709838037675512622189241226118856928673445719885469135182724432422097318161609867319063262314628594123497980829267669611669407617032897549909806202137840993802217526835159346156981050249705468912281696479905927507350915906977912680064437175973883618715340187582168174020378909733066483284003950546488686488574993753837443280519980608291391494187008663037491186397842369193100387605797944045353129304650632865122362195598993769518321446329736377501213347219724531243112545423999456857780127741544777749333211051739243487213829429160886690317865160243500788922785696626015988208244205750785084649038955945431915011152158018592934983560390914032054459234125019562195028861259345293288394903401646541494952397180543970445257322786023073794643880674090787981042782610906917515298355654457950971742568204864350637503448909134998578808861942583317070574370147807720414005932416720171337920476706195656075521047639873679087886265141931584281794951077336898240103302402608373385055180927130914859474278652455915335910819066324647726165586900151451143565660215725603397843805622867165935518353300746103995251407093678194548833391854473779737308094995631189339604405253321081665695005064501925714981002625057616639123231145729178766216013330387022867357730033679837225595356614070671033166389354314239285296885472090962970962406672381106060353582852493372790339693171868334939631894304805243960271621127799418970326802107299544794188275423664939267671899173371552055421565254250287494972107590285176797562488650426273847126102475827559891226406713140817889029820729001870662846947342378457605625674821320353843920007069247865244100163024595438973487702032952837981503630192801591590685405207011371364074903172474591130470645036081321635068267400194605122043233864335634327155707206475432087060234360643798408158901978064710608363088740596879859651704519712129537957007902308432241822298059373442029485695045434223676631692867337189747170319770495414686971015057889933056784140902894883159132034211556488577611746688595164915152042004853473001806711827089168864564532729328808211647516518444592384488044411799178305506211709260114346910840811978619084053604780732149315329808522352957202065854767609417618805133455474973834101765631741395178614686669054635965184601742231442758226402605248027406913809056581152765275550697824224956834506338080245051459299947448022871735699055918130065685718598063568862900457118675164972444430253993307028688732859513511393665706663548321727557513335352192310259237377366582175604816593782573497946966679498216149439021027998913281634964995399653712857860476126992144798742137454125208889518108877556215831219886250865000160512689055639835242118660571508045645127324303748107598707568281493309856691288826230530793984151902566700510629496341108737391777861447974557080126421190650701788822535238468731348044920794446575541759385153747125087967166446383956683798000883177144934884775703559154430262715698155044039773643733908774385554798044109881066940777836242984491274715964680301664352612575252638783313274849144747818511746095472243787910945926692316831975568089827158470846032492494852317475736250254027230566760895680987535743805533361495281576450530949317449525634179527929696436851198106213735730125151469314122350700556020475779903421990961756754498465575321104770558053986199378564213785750617284304064482124648410562066953218277432690205234438629386170099370995012151800819016930322734847063635063873062356443399996495223079478060314493999067076548630691479442577304606815265798091743842920264300905793068584066359372499757877101734648699562612011426771143091305993954724394441112403630386050501736668021531628830751712876532941982654358893515375059548002227989053123744977298158663474092206483878575052553062722727356684200391996734892330411056503349692289087570505579948586585331257656610576249604158913829824135553695153865570006713099375032145077441799686535629336034345028172423689135100850519624184447781918718628310903297941101969621120130952997408165416834231245015833346503757233493782800192179441530689096583339570994387229014147036924711262781025333498395253961129937289200622979340879590364700534754732594033764279818973725141075238430598609698276789148608515042249348877475994101602141026664320583116256282417581876409065129946852314782229717264096110723377016148511267055384793152909325887943975960454446070903003516915651863903947375721596056952834270853247785860557645819529460195277954807733638179850999964376749095203912093360981452102886874505081182940167478451145064712747066328170339863060231624891762180073790215940728975079013665857746378819036763027528137810077210649623180587460296294218478073792181734123393160168921671221625820678535817623739989516992381993312603220813417323683692684841975467158455096486262378279597966112952125501041373208586029182612485761004152690949662986080404945708762354669449237766993450988557836790956531422757492373617731829814611445263939666334615846607112473529642020430179373383142721527020067058119232701860271064484416856943857785356944458878661037767607303331138892591402626096599574219204765536236594300700161804641649724781097299166727986572768365472532401201499926796995275100297672400921966843470932858815586085503333049728841613311600961419734331772248012472364837266887738260033481200223432883434958414499820438911944296481099895906150205508477567801219441599103443937001885462895846478006874280858547642656213509883586841544625427229731138335438310339019351252228813863092321737670943723443225429057942804924782085639226204868603004649537622296411227368613790609591821407954239632778105787551230956397299455012083036601476745617764853110178658055903546883834208604031687744886359737556169179656857976073521824555926989235444452636932220940368267848812999017185400124356677085435490609574606832663080273335102113753743726030473581333570663863149689522370645130710238441072388456655789345369654531111318897464032089958494465735163397820144238992206062723948308970481186496231076535068794402591613103910981357398395552463171531791870611347558009600764630762595006425390809113414114298170402456076061063286753287408191987936278398371774215290333259072270412261483234259392450043705121050390807277354548986108849217941797418288205349851521290647561848564871930112317268816046359965626366967224688795281939165672795104066751864631556850717857235358871437598768405008911113445233401717252268742254449338003369452605927191923678066599735014405116706677574823293400442267499435419669065284250935204497318868342522682413645716725121540954279001247716248445743763589724587117407213327634425592196688292111747796293268909247173309459300008661761975704266177961950226204068561897896717921115715246752508636746027403695645576273469795072547266233488349296906035057490451761796171248346855768182227710524985377815420104125749966622220415144444557066413081639294757751616499777547543902179893586418262671056030956621253451880538159809544784742130203715670074549291084583343634381840784986377577044118499445587494026854485457735552228659223445868395054405538515207957463968567737000606540941552721221234014039271039917065475807509171875156538415397460402522074084039900672837565653227390892841887189049943452224299462943341437052398503951733147335290055880515889614208398922647779771506293077093430538687819669293681154159177941381618005939367258240919407881010110723690042651890333458207173096051535075174700277514044533747721866758967571641687080304033382954809825093623018505811535955965490033078467098502386689508017526323307755021108418962152490415451169722855388998660200858770752837680665012329611249324593711346432238261857443185488406368153257635410625976054059276394071698375459354317731741336022194088335000609933821319133865213835581595843676614662926303226494854947575315370218368363262511807138685592924291486455294378658999595229757582672042698090509636405251892629510745964524112407873247526347638749769223937274752952985258796418087418523988814021599800109929930562266238453804936211458296531156247725625172137291446759063338163264123999068183914259870628546540883790565689066694508264603504664059031736864371222179820021523147635265200242309290322142443219336395431839978228723582792466330539622806630443750343793462539980744159520982532718237020157562491512451355228650864341525441171881122099857163174102828342044968867010427062004502890471971636861440612007591295819144544162181719698222773288648617361520716758913937293455761581166774071093804818257940037332189780825816756168746753889620474238550602566288447859947968993552282804269546692026483677381781416111288008677824464925801401186584450966028633310400038012702470429947841322426815391652925511849199227088720999328253941287526032863518427746110997227583677600420753323186874131731059231714140940479657737296034081376445000576645388940833541052023384492884080384176257125705930671265582781115911203396662170541810429419681160007770100245054547328079431176815394850993329251898036258401791223979580856359126538182776688856657982648014902221390359541687207396382801716849137196192469155098697629418141883651064658810523739144157268841995480713422910633849475184075943174854342908056409392616082564387791409622967961624908773580805494427888510944068251649343171621141196436879552723037357852302048048839815124183938993053385906177286613085621008507900299666365584053592244478320855173865035163271191774392367577782968278220827581264525375448436980367967331368010538611601695164285700510884340385042255797358084626298641056796205333687597876916668280931558629105687974567374039616474650269482820570398877518119452449081811180931412304807986108413510417053707467141354212574244617708742236725284902206874282210335820191477045933725013702498118183726545591463952221120795031536791051959751983595950681319781312863561116526374600028923258813070407898649281181477978547793024633644554849697485122694818388754636617668759682873806365501389317214259732707151770217602149038481463802501525660505781298749533933889732771227934575289242286220001324916145348313413981591517778545099631937562270469985057651698661591786739003669842691874061370511036330570514183462342556610577452819491450573756066689069521115611345263304245853585535906100670608662269210599869235730377445538872898158164868358623527227926912266214941968905549177379679918762575433724173026100161879308188116867288357292300178656956605570407855733602197179512187140168894491277032910184756073191687721766864738525279248028581694711711632951555034152917114149170210646155416185170287934721645738509011635664173968250371830680006387097436787965312095466346689862874068662136032928147211273160472662060431704050619257855586211608799060345480205258240326044722229789325010531957081001847992282553603349958409564234333948078019738385331254312463141296520928838063912610201288035661404301901507146038447753065213611091544524095136183034264664410629987688233114387424532296241910779349412687926403479264599983742926445896109606707330775427926066001294410740579793882777351475354225124690527652598917407590269493094117541379758417729486403983474178246228990633735428150266782935282015249376764407742741737915963479193344317293664942913359906525619310785949871334335978406235339383989676565991684988688871924632513720763834255357405621127007093618174674305321995516697856602089513582378540907389051934124449705225596096744691306182232997281640655004312088742111069923145491427121071697909400069957738438825487527073107581615744656815995247236940656528869771957279915445633703076861186359165506467329751466864917388609000893044176047614105271443563069525214187877341351655634326026724514839618578052182979962763297490797207720389356421361731563500276806631772553471969289987057095372299977560658949397444460095862312640324032430677258871219186508805551891113005769516459077071069256046529795973668678442608560094483343575890468813654850780412088922357505761848785359932058068812165857775682751682410829420253461909088400261035114670581438654865989518149422029597594532093159590090760051473716822649769564350833996038417900687673627036828352199655781008564589039685773646832502527520321381107928934037444300609538948945640063309932360264070331406631157609364872855178003746324629551856013852194194037448187592800635094610221117111667277223626799544534495037414147608418338375662306359869221416530287045592502177842964165409069254944458168044388327297913888628264837640368934176842202635717394882769069468669683592411756345554139417593764641153031866578168591286868569040787598090318610437739287105377290508018278278493724073174295112626531189561699597901408214320219347774719727379469997594545794738928394734987789477887575735395370598418980969218020856943737488737186684631173363782083407840432386351787569890146318411308480577668979603420509995747748950537455077197079169198320250443271148139612596019948430372869206263440790012151107742022137117218936819843875180081704752212673690258458163700427933616532057941142418868837503045819011153349221886932661266148658436054367907958755359029001188837174187473384476571103144413863468985743329081141268658244231598219107533649924954152092967882887644454452204876472359677441430810091939049064178708253553662819965625176446431689624695402740465725476948790271709726833768474277137977826510748082840732552388097113972056268873186058450816419155633605199360643302226863536610201620419878271800491439865531821329568721154336790767255682951928263666445690694672931229925386100061863746623302365975942062758850416252665195671310846102333442988811154307105575974593048403430906305087712147766775920136476375270168282868468025220692461851609379845872711473266151347138522738568199159761547171571383988833471102636242494103006472740226250845226249157587100247289501033232249261358079951455910052335188919245694158194319739431295274554899131192931138916501387911746797807423092087866203643533844778848291743496428030219884020777405611659467694718494541469536729245893838232751104258387605534068290026699646256120152244974246271761732153640449979272149233489192759078948375085061008897553633211240604885969532059892958668109588115894767611200528205224197041732212288829990134625854530927009290492562670159943484161432468207221121966156836695037436203971049212379181633158016043859234710418564749003488985392339470493183138871438692045765243040282337423439831097815072050579915924019872131453703619126197181485136340622209359459556475441221075815764650825274033379326101006023451604493980098448621834375991262535105173377920311160679892787466237197177332508571870226493156015712872875356931400688257286481760667599236750162211013852254559461777042356821295061496416723119921850814186441433349798629819904219285434315921043352941956252417428077609333884136395009705431194770250530683883825447905606839237257004071795800326139591574519764762905001429186366646319629097092481738043635621039283383441907175192113716134004174798840547849706143508244245707379625825847053596688271593473081132536166107088079580414493973615667577063370886637554228044073631585905926128328690839355126955298302028631401954783599856269599768416867686393858468683072264421618343458170517779494355932350841532743012887032794111583052944325725660009747718137616019825283606537673884541078857712161919497526604508253366107950085282467889858054302380241554130111147705525216404834890351810121376452866130830442458870154816704045162447756392033872938276985882504052276139833701024632962896106957832927608228001267715368731517286942574557793957234981037669078921636347040242926527770625011540528038056306589733039295145377604711784163327336736348918820809702904162436707700288640412229647061252135178051540877934758583538166900256918145682972822848859312902529433483797812119490944584073961366061701477386263897383288308484540821472277342133464143254054670093055889824101091378262515719701287784766895120988437791272892821011322851954464075598340863661987674560904407536701134653388977772197074914812297960451720340477182728042542721650403677231437478738103886772427356348606518580684901313730781857025910661935970677262365034850124630769780801331109475277353228732805217025987822704029387535462420992615335407322238827336248259780327852637745516769214917292361071693694316464596395500204734743967627277031629887785458006435584339057574734662120298406225422875415757617358158901496579108828018443167240820372636958082703350331283420692503904232269501522210826293517690262318890551386246159626212168619180966997809659027956467247533244366527622409060475652370100174983590165463690572745272405367336991932157411412343093022908263753871435403991975052008735527320892421793486723827218107182187477206338343212085780677624132277999603956813181482704157233382162778892451596429902754367006480408873142968069162515211334942701586854705746450980999048825202819574816674854877995614143334879271735616658616450881147487370824969734619917771647994131072680672982776051409819509527330437882658497944753171963472873347065998576915770556953963542505493071373498898035754830595836804588379211471828405101606625823992432291904079093270157454319514223595294324402565340339226201010380330096926593009792627980663362322412245639409996604184977196475216716583982046858847372774439421608284297310898813848688370709482876448010887530607684151770493868382895325296634148036739603227575519038210140339156917008577418627729967425510485795009208297700900567764696186902547238179795430180611282546267533669776510913142082256656330558395569447794581008115053183492156945656236584972139816526588925728782157177047358814547202601729986530582762959101153949462711108272148887917314735025513357427468863331691046416914190758383287263703318667080661767761866760117104082446085792615531792652010043285326061618301665538901410023827596049041205611973996906734729644876323020947614646180860875657859646186000196800679282691712071935209520961216024524278789715677267847443622934688390993677423113490389764354280023982494902198018728969552063896419454794670661584144162064040812110872437655937876027845606943954812165741226448233718315352250843100265969574278467797975065835961257896485733036477005567604644352994499133204841196901872092650416325071329502269336946870285974006903418773662350091956241906750511873753305851647971274154471914466954643421677083283473068730147528534029435334067756616261868316862316747198565839666719436430624890518890216533524189452017535572793054580045343490273865030706155829379981910020583805201727106355286781335023241218610878602589680291810649859236177057515909611067253567213053959877025628814395693787884330140097667657307905809569311026497025271416971874028951717544063866628791613339387294909521393823639962284101287771045025931881638677569473113499317626706243884631258714314360532532260762167451260936003227872148941360374503532423163628935467910381349099403903807738154738241078292359293581157428130509191956775745465581335762717555057626862144547731940866243896427258527954082431328615545361964831117412996041815531304018914342793648150876369658878278929820398477400167288660523903676198216710885751631945059445502050461005430525429363840419522101335330443712131919476473606985360327521786308637699875437014595899028276449404327753118170262714180678064009267052566575973861289003334788990678927485333087575968686549785237038139087513871900866894769855533410761757401651721879842013609388946107470635893912840474372044650509118788512770352296212551985604419326793307760926266153937054103342519200953280900956960357289963160011742053906846272207545665064080420577561005142406353780868855697586087683295520096621279343449056513284654784762490175200216494522978789411320596135729418746692713590791344963226077503082446570125382767595476015546582562543538389956521430346741931338288973775115601356240240127713306250479793612750866737981452496087204157096794394411721528202133364539768630037543029712684066574165775616721052598619127765757141396806866682279135865585403274024200784282338142666856328224099106465724878604473555348003536354596271230004364856802741038072007728281539213048550319186320337979342804102283745923635463465194220461155792997352929213151991946156937946368867276265710246005546621211517791892458291585592399637986274082779649602173034439485876861077198769583840473819549760339563752832774288823225151059317346175939199069588523316240082859798033089929245747200677014387968079530355894457192004375695679947851418565098627520758638141171794911169178253211243515022731157819768895774798511014925419499809787843915406491041296567025201767813329637049692571560070486620591000504414924289734931719516162224464909171076784935188165581938143375929749704723647615811904842138922804046342210834110594185587071343371163928211124437228830290443148134094714783902837951524516125423347655448706117226491493940635562300024953441342077268359613690979366892273683223927728845266016213680585474836086048963054939787929433328063162751809684879641253258280760656336218700830826889310643795697004117646590150893759808524087498047872709297019595984652424491097360654407131045260166684043355587708782321752952530872508663093083164914235599066446319458354911577671658304743363517013107015907919880255630523743746683653545133679358509095066489681469091674407218929611148586264156604596761196417329799171808792295238102611940115327095793263739840683782202526805415190603175697852875582490990481020926622346192235434069427037083106722807415522062488250159241558309759787150954004207728172586542765976560030816925408635300076809387864864361253326886571543736728291001087817660144330715959120299959683096357770224885516200017216197234317014960912820950980259461519341040535398887133600569388564610159133960417588775992572392182087291494576807493904686493325819493247524927561438407391960030904563457581949672335370912643457116017250173373914272322828302318373552550675651091743008295115070516491032902216733820821005828155600281925613839926102985142903799620921581003079963997620700603178903069177954767318972883357380031251553414165698895175862285294335750470625083956346525001017477238011775858692937658159719971122778193243516296016350034213132731412444616818832798933373576561599519671768462369628755447818020421821432932483174803846221247507643385380956519086080624753481997685603877915327347657704539148453419511087553465143386418308141856332221886029697495290623941667600198814910739048508047862477112127377706360977904882287339830326433948386491284309077138210537337822542135756019972376982760291850981271713866809524314747419923786688223353888755543922412753679283488550444832075130154136225075693209401810054685929762859966270243284601771694062688280194044683510710550304864029325399983003422553953875009323201539925688081108092335201440278555768510443911133093314515884333013710869394439924622663023591290664530230506162494694577424435992834612217956315095827182168101848539571565084735481926972773357207300386262667109514235124023740993893687079089964772907859749716772442053120261269351193634157609618264919842912703337551917633040756916563761769681851667792329914821796341840519486358559752601024379303997740533519247802785117841821816539257147443161141477323302343537901444316543081117413195718045846216227864513644054127565364759846195113209421086129019024824860702853884503173209555971576327370677296155064470532909216078262903520859270789574819025202463765509800991306618015562061927451675575730951218254149513473310553135802153510363530733237659567766233249263748221110531346719034731312327568225765286155667798101989664596251766965990807652648253274602660328826155953045810528706532546947377963812874612691742957922124294203496237272969967206499162049364228464439050744273157091062659076047790738153703387204215211133828869321223631251864281054193271889217000251404819754611255373498700512100453790419667073303705535079249492701075481898584694747676683408280699371799926693870891641973599267948867570366336254792511272758525788383578128875747740378532415849393809432646326002837149590136136261109845526561412803084872586305019765328617918693493980202532098124276763093170049569343109728435300169046470632618252619092983671563868335100439720662692813751939914502570957869335150374933928563924915251263864031814028731803776107654192387488762001494586479383459236563144571686588278629025835820040662997795552833851214468283732550141109494519705588904912312536579309818482698363660665857793981798549637173775357967526232621247237990119389850163665297997821630934911332488530108792525958199930195911374218487116426508969870092359577034120491074286711023128476924410970106361561681529622544429310268125618132560872037427198435966921967362265872584632703387929448886520458143551784455399318098452409897150377494826209248946167416765162330307920870788950602664307135986180984293689714913294260879866659216819621475828485518112983368535982738482486973730598793878352835765667977813967713401218280579146504453183711271595797743965808582667309087565386094955276741319798114844449735210883799469710145517685181042151686813312828955689809541526315295923818275929823615947183081327571535535771540228304001987572718387009788638061793771589208463353626674160591818121954139006404933004419063765432221999094699409139539571977643097615052840185565062458537265090831532100176155494824989880302245229621229639185806328287554465113446309612886403029925416291779950345268034228630557760312616192848844219147327680070219619342237503591833280407939239680230695321005775454026735735589256203485640111927666106489703877079192979550252820581149302017819343521984736679016188950071273316865698117774388381748619139255373800756131796318612251831628734082622877068043822665282594776102463176585223505588010203854213206464202366420954303605406864050412756066770227734915552368585042704368845629269916042443234215639450145214755525845165143735495831225140059964515147256618944651506064521810906963539914040042056591523735919931551491786889215130658009034038296174872846098919775046105714888757004184387923555943480205051192702554248110669364606470831782974184746858807622589670178558983497180597261573737949915100091130415786633896927094406717939985857484270197045397668602118083050569329498528979007216684055711564815017809624667692125749122017467224083263198197030257083264230597565722861018511959167173417388356004040700298091060019091717788961649462183156156993946253147758049990265445568323249167459938524928777094593760561735633321994637677057982814244011320509972615287450563943531024889155595861298227950758950007451235136652209764399688659364872558549449986890897621531136606081897704629857063162005709533066843802387897367181082326275562448753981355901551435789590025500098278637887666063115785225238176784690825331042905560499761832320397044551294519514500005028955950979903601883331184666977028518084876803300578310096786873650005088503233546466996883017879609416394367749856280555164686177543415469846159939274559418256714403961253213343840881257106879029895878847904243829281161938691455500002498367849750432200008661233459741956036562163768284077978612175438222161959444448694562181144290588383328026546357705325095428797241761002819801681890901172691248688335370404304170619640372998336417170984097969270867661952693919210476505859154655573798993194650766620246246299017906745404482644670639128193271273205376947126351489247302814434974652111333258450167847316833303923701367633570696572746644363074186944831924895838770313016042298741912913421208205696047470434586232552119255043471174928020084928722681470759562606834611263491176033360118036338855285070547831893139285421743580106304581571557066936733739894781498856482232436011200188793301923124151706861295668726805570462299678842634971108425976864046374846165281280261278428871807264552043548390383771740329420181042871508092768091675638065640295194586279646138700640900810331334841071331128915638493916095015058424693328415115179036375195434067446420923152689378948824860380796398467529621445884639889784044119292358115590986086551066954170023390895155573552472521519885603914261896310713970790597519484011569516635831718972019488776787115938008640955392146378808330732480999582128891130859539556887686099396166165973909143177919665983622877078362791350613528829060258985830387068939425293884754603013666474062607759121255373096160063411988075332571478182335022597667009039492526477393973228509071297801227320019969207754867186611950739388541355451930610745962992773507375089270071461283573770146319878579207966545778186290409744636848249113953476958504409805225090058362085080676100845080750310276930888384357155215635714237549174033193214005521738823839981844017666004273780043272171089114811917172591823437317632052275563212740675977942529579624999543106700524091337767882749794616568059865105080609940857910783989856480799244986908410810401021807783930407883813788862585246521276774555789359488550767758945017085386103843088584462504504923291408554635487587050185128322865228398318969177802956434079818916863871253815125667661896296753260477557619094607300402755800945287009154313211782250285351259724037960005530555136901591575928035811159058979646335854381303046233910219059724704758242577779462693602355063183810999515095596300735431423418391543209057879450040325042342953841867844060858014294291440560363823687998965215628238730175122133884446352597400986592674666991448215318046603201508973116630880658555554185318595579735002049730539235070523098860103972884856632385891464833542672810360722790492760195615759143731058743047667426255631259205114173117680779096360528152800733599781941004870038512298240463028786355839859692801065216623698575591024418128745162889178078807128720607412427884076539289155476965922313961177511245829379954460479218081685125276314665902384910668043361131527311698511296240154199152842040082840344639610785035714721765599036364559131423295064413070939816221438219103656554025534309570700670754105198943749213512932341495608398063216396839311512854629242640094881733961374974451712868552670544403200451901647974768424961913229294344060921208202728766594535568315329389569981185692447151413513774312262866405737242393305198289307684813730730850560174778249848695990015002028819744693307052211727026886565899114042223504642624914246901334104615974340486107706116274103391423750016643855964974088052552300271902874739438742911676216614444503750340240284278145685133242474908533900395284058448129193982794187349773439885043975454669216665796473495979107830146179781189388991525866209090389893706880496224465948437316044499916616565529263142192102181978683509371862040680088024133238347396812781241544885481760157019245333038595455607212875038394696539350250412831359767723716318623562699994811537521937179668034019900276201966174925082781037694449252989663028284650249075841261583825273140320767683538137522857395305600772687673458382526552569626689696365997518929905210300392224073886058699010490245938512639858831556913006562390087088201869250302419376210082630032566885174765045122586047078812994783858314327499862336068594060757008291547136101546850681263867425230974315535654474690508809684121687985220340257212055053945660025322237737911257334066701924345282549124802552738074685880896822045771623232271574761791696085691709866871497297815067658236973883314715008815375027978893670472813775929114691260765111662740084278966157036082362875696421561183712355353157697821323838891346957344023709492238074252829298152525376675536594387673432397658109891262171740273971776923201946495404366330930720114858824272964580739844350699436192533116960595611624301542154474389674768477862088486090455907698827559237462831209241268430502824618983478997918203421996944489012032579199571215902043133133336147639198119502161433724645920161257506989019117834171505524797342540037517627859156525944576895288784351002875272095808354057996482028900908130528425910745499558478488959362347635978879184984724192732763573354146706305285689221663451879298793619992576310043278291085671469510764339814065455540697233110573709384164501673422864947016620942474038395157929652623286617607702640606535984437670448947293978887392413380701198004496695922136861925675000794732892591010664975069331388634637522419354601329724502321724448172779315227256688561973020758916757215178417206258967339374185288855341491738992512488972632385201203373334028678324894253231989058471377811578631154722926656579056267337121149449262293210651783150299940831927701208403949903747508800671362383395353693787686014230916613236130530661940983853291958737252738392284175881595314933723209842532212976546336524710064905257532633723223807238858303220871934471557180248915402004700033014929184833503658435690305245785018219778743311324644607798715001681364762175673337262284982971433448039603249416926607418453840117541336977027561416875775962435544712379223073178979223803255238259183937894765434733291422506615621632082962018212846895685342649721546312862889265304762876856455152221787278060161099052483486733662904384704650693961357931633103357572224677567445649678484785915628699531034642225697013085189089213894357075743764752006175631881258468360419054069119678479578149999429086108375597886932893654286561232676093776550647742990659723232116563356539380215719772494279379919459493383171619792936269476131626631995659532989321761441456279661778247105811843721065410630979688445846309264727820783721552443585325555775567157883884477918611272759213205133283550267226247016047964572846450850360384547241826203276752101230176935318120236340962317959000835461114725958672942652150471800466466733709667682404804706529819101879256197172632037512980083051313052094076898146208351312171595403901890918118501474820020348458472942703343442581014955885440927510253106384947235766408151397804627887585149473179191133176233259576483228575739485342848007909852258275602795042996842597257255503983386783182487315919345106139417936827932691162134978665625033068826920090109959554987173987354084589711518756475875718609288245463788638799435320612619949140863341010168182240262137197683956000052478674857072535937038324840193906879117349200154622798553232877297445475784657653806682432872885035399738590779318089420105251631074090805405270784382334194522364865817298582848229467781922777522016997300806696733155351600283326371642912029429198873241219126270899505851444820459548220731804672638681713775613173228555569245352213972962136000697727894638430432183060577431375020682498302057426984492924818262581454061464166983789931441538654792271146684163730947496828891514488998485461267845550417047460895484803543813552783785971676283612291448401512793556399146076407555408743854787330506322766948374846956666477491598390222051696045975953548916071020811639111576555801794587726634671355602221171983948514156184683040398886847862744996968094686457701232930567691707366839312007191951181957182288907789526176262946273214496762127725987366428530795645330058128606816169479702929899970044131424111710604649662584357963880137567394170928031831088073845583581536797423022010188402225893903258598311459185413709269278147781360265863788456785448373394812330570329106582931353899600329698599632304760947415301896004689867278322304309439142125888041153521631840188877693321476852084726779727111986800030689564472901886970603869598911558368851191039573718448836177387566056165369863432801197259160040794562681404500008566199656186387971911091318360983033565147264465526378327645008856652651095648596371400959234447269648142474620363249953013372971050663435871692702113543809218261237599761176129639863871330602643924666086392189562659906993514641394999800076591786607408742276057059568837580463162008270093399482793366353986165912242426377835691659316209432567716218905099538957771249202180459192249578741272139076938398663693807748611601683982546226126647141226054479018364303815733031784309183181109158004222089325212683118528546813066890729075916548323691048274096761273953277547340222089980434163157799212435928277305968364558348785987422303146643403477872553739707167800564887017840128526063386891720695298453574804446231611074402200271386963595096384611990907650319134252792804081529146266394647885720876145668743543040382279567216390972780744509289527820449977996255814539543464828455752258841224917065186714910943654204956597022414364647965307845695622546856199650064811909503326275206114692917338543497142514429680190940364361772029650078499667839274409970097911441119423623094470544593913399009516883662999471498774789942651505382071037029783248885963922921790586238197191623087307166305292379721950524522493432193123902605222954786766617872718933553324966720010669936313648900059991070963293076410010654250221363775523235933126444066445054891919213921590568363211041274429075643494937321292603190857271229196631676658627780332581137105792146980695852822323714552463689608476269639706102423265921166282375885907099956019763076190113946781784384385624827344816294271397791019754685763440377276780140761145094893139962217798147042194670358366581445834242215879215120222597686215581688987383762355051219150890200613977842994057544091269815012308170021624669283494621972551518577174451867066251694182327943508920510389856257063110504887068668647928749384678694420163364054722648876070921432120613778213104800655798054027162147998282986187856786334144360665841503883193181599779692765979813402895249298400605702792833684569236527746071714159930400118846709425386636828897385794086600274113419552344105763348398063232858573302097818973103994893800335781647023852985981221305904185814716869233317435434325321291012613248989569503288737092648343150964476967764830364959383746313928209834890482492760964788154062916684872815551888313023484927739822661787412341497002799046383800848311782373900852100140855955737058885896926284068748214111796250485914485324988931897303769937284592901551936329771589623483912567267961777079905402006940376593679070759064235550389737112533466378378643684026643413490058640167801957957868469082354946836752170717962817481552718701172544732320547758448498610295446035269563409749963732955241147484397053903570498510550212956490759448521491187024273729750112654406248649983460144469359707532605891577025524266165335380203694657621376601771084049987773664122275673132322537221191605099189385247486191394728145005351590237814033140534144309666410217879230720247096049740682035999569937672908888533667948422992948164182772885482694884694396598270283011372239894579555505778264294842646607565897182517963791454084012140324735412615280402950671516901558612669731095674336878364300435597376683292809148543903095613932469417463851797411901415390052590058822566607428774763013328780992394436706314094509435432176777123696021823143132106751446998172277745815990347598443964459073137664232835379835217249265176754241256195806291832267355049844073484444595206879612087924632773728242739756781400659652950434882829666414048697804462377756681671514246536281923731778586517776061193653319627748629048279641350577715344772771556112905129532446714600793087569689459384698501075126841928121944552146414060436991543424733939556957859693209744208028978031248848354637436622754091607620274371615940201919577183475406137293925451348438655934476797773043999458822435081193361841975598394854200138540883036810074203251884836259898664598125956226193412564650104215346274720524850989491428229759770714702933838345638568963854893611375987384192367468256357350707722089731727744546374346608800674878492396130727398690531886244602681527497784615722507756523663892088261149981834670320965222559949695693011994688284554581270722566004006150800103256459102389942727942175053827386389490563530016315122612117808855559814118028061628145507451675795955698709802467240093603450087885644187728924152798066782598032451250321829469848105266990029850189596908790860318959909219153487412452697369171482024210301382567885502071244614237389024370473379194693541168180787063230254130524850282161013917969257211900555969950836916802093388689185613575192340357153569554635560020541452844339516096794896103644031079317539705144350963397497060095038586244740848206386949617535779447286399503499696711880391387975675869411571123762056507380108951159033986744535323357264775073981194543777156969245131414279771423534557400191348496773381934631361496063836202947794247156781355654022563340859933407316881898796405488534664182381383979324989390443522951811122681088977821742229152793618464584116392427162538881764489326634091622527740858317173254507188315634859910933855136567657843532891975198119875818051199712789969403533900851535039643582826121379615936712577750164513316679176222994367427830761701895990998488462595642205203581375828814203277151557575513881811904584589025024315784468931852336411991553517940809928909406311372478529592329285161634217451007526388859885994261118591630883447978655246761835510863920468448056110024066885681108068029243971210299306228388124474934286897678745369962709590494905536566435437465243327463766336039673207405098845619046789106334255851886334664532373941854857714082928599564839304753564983342549073871123539706051348751433666664675876062778120370812480769164888514442591621017387000585000378156420574778793247018993584228685311854776647883837473654890689870103245539668540736568532749256849994419232502794048964654343949689819242615475647821562547336857888321361862634623567145353833088753457468373131926652852978925627766707608874256939886415601371744624955759376027052097576021144674091423751249226110361207404980558623972566298957292101427826465638537816334780965025312194099476787913643718186637240905505501760697546845476813337526944399527437133664885438103657713944473895089348478134440374546982094480389754776899931904235957193643275993627324896971652992856942163550428213722960848802085530282042452433489018053087408920301643579361501894472301969600189102813730019040411504511713090803863455816116725902783354461743138562326861332175477827486187538703172913907130300585861029832032423081388271403227451481893246173227551855174165394682593457935902868273129598593896314505708922517424788575395180803743007447465051030286174305048078039137775528184848150305995025870428611090505962264514527869757626449504389011035542337077559264872582189182519132193912544461613123411135630229812571200065637937389553748716455077891204058823517870359835351420935285338093381963530424327434789242281997648983947036067321287847554447500148388524796137634314337550645586532514080082584416996481447603098761582200784696646001420466807446855871324051181060981874983487312782055269844603928081329752861340725847082904044893163986948563406406571309064613378276216618386618924292610501808057528446582495422739912127246538479093513811621947387877691165234141039379468337787359200361264824197992664475496878825193142335860758899537942717559933635258658883909018401542196933099665105051516378112047750639026675554003231682400013349581435227428547008041206420176271174624352688805995452720231956452316996041450905281705968172204120278897647324489024482232084753774524295891427843089916656834274264729882893133186871035663500464531546025704195591978689707590757196843852516848317646638928656465686447098192082869359287072966144872403849950188784923928098940246267096508310521318745817325335540990155629949360518024925931497188871106414174883710610855726683685763274175615069812420023204794776839160002645916267266532491637580300024464945713398077018159072045098946066043854903158042789907891303299571813669755306161720830410556498997361238293306055779804347285529918475247146784871975057592016958362087365245442888335279395316822685596968465002299561665987788858945302510319815521528988927802851658079783657933068124977966952241696680092600806205117561332783683527233819824085694372351568584601355974128877866104148572638438889522959432504558353212411158907477261134700445638252344279971497544244393398845161500485900516023308397358825228801064482985132033852040848910375096344041127158923394299060451333306281154243827640201894727853789106961658303187443301619853981889975030737431637251853467040619025385091992906744490923858394108179103929558430421900380749323046062813761779738493318585941585754066388026554896262488999555608028583782927995308512353105481240980875057535159298593110563769573583918779610817955187257856036410619459123277923868655415445536419743390706948061337704628318135880979200415718974814151575539013826133170795746685626764104817736853215572776386718756485023508064473720149457850445143723837036026970268549337300412254853792509417840834084038595213047495484601861282716206950315905005065385605413696570686101908458515576772226586228659001788250961900872011262419872763798024372705679641538377720334395379081990323468682893934969303576136189494869762869065286000521578315214919503186620248234721567861065325081573396246133668506450515795138112409378607010521471625760309564627335241541012789346608220713698211899402373669258393019867534867416848825942814056199528573316295975913449181138524958176392179849198315191228566848026915491419374682684621745678050271962159420671017463386285822977725875218458518497324411358394422261830563693916416638288938746646489163297609218866892100054106802393360184193244534546556134710068383648761038669063989336784696567664705776307257497715671703517333036341440107285315726795875815188250976140729920874620826324958921253521593054442779793888688470510613543241429745565453929668724473091246313514630406054277090964662833202521262194334488346057368811165949732266305256793255225168205339246856911519891051072785500929778619712221650823533785867132412052448267549304963770003132900840984188763423061380357823770687961996364004399777131941383623527322008793552771576844691466043943300620600026845931006735144085604015854675319065828595729664138437948702984163078358919738340391035859575952444969257878921947331862519424211879499412412829140140878284173582015251737379092233303694408828377997356803130978453891603632853956165945824995147910881596270770914691493056248535185457310107395242463232774188877978999353793710468896412289830997203231144066015791816138810037580080219885215351152966401681230421805988781219147745339372758898768568971887290467236049548363721906023006041544635326028077557571774276673694814673870259843396822849158967029331212918885045236906205101449210423980955687942063028648045242179828587486832014756621486627236363307783046111086695602895554534837548270343585382162170395444441539055559789053793162760337394361614374389839439062600157797277506682286918297275412839929392973346382548056913635404043671266479389070920665363915781030203006414436773564975123553850843861859742238293021506490113506662849083199126752346313214267719155585300307917835564315425297101046704624801450641061617769513914439416542009684322789898303593775183948160423176403910840382608361366085109581007552860454678565912181344687323281361875851424516478842413880284241070902542817497502465871951528911886402772853702722066367412706513586114450943413441176189984714173392532717327064775890481511492108625077680182325227335806325798761827487531710714484899326241574831270819696318593774223102039849766442139743887227834814808571306040422283136043430072539699947754878782996570388648775123142711765149101407829236520797273597034469717762540121965514359892919030220269334515513839933095031330676190887486554577114486991750963484981213630846504526929749427528010245030861234985150632820890247015876802373771725200462824847540609933029774374127093151991144379286915748089602615025014270569591601179198109441641633426722791598373936176237451114055323685486384638441058762544660990517479887747843001154355240035149360573483539611619850207816098649222051961957173348045720295392857801412994434015040425769594873247930424213874454101735242508534836007177131609473236753224216606021826715270337228118465421428710133083307608069007787770015402691227621087375405755159947830892534716898487785097715094529010143516029307944375949140991205986573397442787786200689513838495929248593419383405827442380521618683006454576703223423089939687026069640218051939553693569114774555447718626904863754461523152545285186358024090664187305455886765985959420650163448600365715990598271912625308724812221418743761937633726735466768138521447983063192030414493236637033662411304014587948163600191869147919666463578477141453658204771489868927933696232377828934082934654867102250211957719499197059436373160530662815717989784995151828485077917252742551234865744665214314462423004632771918083404062550700934516029688188273654939707624931973367409874901672168906233811891989652214778964358537868899698167311979236013103681032330756272705177396299562628725558960230426786836002709251329200481769480413029137259699661414728859714341645770934512078168392315429580202952925031701021325342377843394221261685300313208240064644647459207948016373826194955091437030602791154007911953200583931089805429505562440521870183355808539858442069526395686390302287806003827905428184287502994170122092464034402002726391439669454822569930491041898245605664825664282417457086768061811046006701768960962831291274791093922598843450415863479092887557190395226713439259083880497278534984520793049471840579555868238620051382263383215931619411480794097519486108896909717168401795787124583939396401066710863180820875522802154861311736343624984794906817686647589253999404159623037455238093756580544850714719648522515646104373045736678802455400768154464045224809955636628812294314401617814822898141086655531217518120576425800779731491199004480099843666039138664537538758564110460096546192523451007183138850229748614740721399817367942538918144742691013589026519118222071998411244564650564734881795788642507136890106637381570176701018879151549938910239565836916039742991812752473350833432463600976250143425989604363121696421805035684154441584697539394395465091346779389126447613916709626008423448180728944587041427019857088725470171335387563194001285126298695407680314035304456986072275133576244419201309516703092794156172401972416203680640589818486871511795138356801983679548913502954152922376518052196895020028097594606649933998179029763897991265105150817105579484716493031552461003645783702527906950727501115533294061356281050573084716999284134433800998447819749368152475955682892211207784541192653902560849731823479228276742138316461547053551614417269645789512894910434275128351944856827594623162705503902056138950005168169012829853874115223870783722122010690402147585533464309984760229940342050696711626148663045347412290041115337834953113678171766974039836577920014089094166761250707581738209639001817887400654954113972651731727675891510829140547920475651954450021359932190844450280301572554815077052401040218307220523404831522415310580885982031441745736722834104323440984825419963863205617305818213529217603184055603309092633733392706648574810996240954422844430648285367072977932012257883373002681884670564160305349674943023429957443913806386954635372510683877126910847687302134810434998435669825305782979111987444367579624365811830864777273764240194796762565700215547595802003782276859906011916871897177704507895245055722582934197030228621939423290179510558397156945930904630103901771802247202582189263774904669982504041113436857149586005434089075117600567024150104166690490543879021648290077642105700333620752820661743481667959039803296254615985466003173394021816717217416497511581681609762365937464486789377494272069241749519064712150818695645855285521204276005528850382002613995808019567773934954793521749735002555655019132595666954656162903320355269776660467412921852824517749460880224950743216462571810329292456968501678789107038594983373151216953805439596412273937778574309118401719650059839075429174630066797241481085841556662480373571884597395043613993233589537002022885951611354283268559015185574806838597773311338939607386498502108505112417371382743176599027032671293150980842650784603587767482730455108418741949287201936766379001940347879298435597172320223194442308658267456115549460594816432578021083723591076560942235989063875822972475386597149367015241025388219622737506448230716387612291926000524888261263518335902327802099625575657651029913217476927272570318251116092793499231212688745094690900931696013840154568353890152350466200915094698246361735584949439524907978138303325972868794846185299255158370719018521905837565157957323150994434192563573147137645365432712347550670184530475725115873065235430382626294786553887177033812842357788124416318496852234198534231772275366523319275811016937619479987436157831432537743823938573746824942908729861253726107683067481583852110221256405171372277700210291970055137603523815707746652691155270969587495237703014929840859172928813222798540569821749790035822069012863460671719392611818292396898682165267797956209498529802078845282838748594364348037296607249094491459747488960309487271298056657357140427378846607403721511997148011481836392841483469427036811834027238517841937287235039134375287399879120328307629125692985791370466563169015772562655791313286294353637336820667473455996878340947117860690886233543835840474102268036898011152714859575988426833890022438013458431348353147360107385008768321226555133677998852674710612566820709992630350617580693240391779673039058887980579343027096535631579727224510819922682118502461862405089801589000236238688544827470330678066792243218883128143145102199235306351358275200313727910900905416581761586926028286516871661348872757052744322662660119419185562079534925683135522326618059266994157781139997682483398203921584533094097749015594409816397449815837551092513544227931778422861707820610246768905203387682952942479599112332231957472255801106663070395555595041390860045701057989547409443338153988187600313187396118986081605028355240912490326329169662038295079710711973685037640438240256880170289055246081333386592089261783508179034175201122596808133730477486592173975403662684997389354127929164600700229070294349574325790760784006349340580529704580990729738130110620184442275372645650928588777558512361720282087159227170574585998329288994500198479614648544632804397709323047213848267000876096515596811332335834091419714710663783563502313801618398474241578703744696036890664618591089793529573037262283455831414713007601650530536831929341681053591631849951355920984198536938702948540936442814516713378058186060272368870962820306765213860034429221421149530473396187765403464512292975143392678106654526030809588295004545322837880245481573965769178037847682615296106600561906106836733913727452761811815300396890506206914480467994909952831412762973840502844698468464114158502137650812233009021187259050526864027865352682277601289557604926867711930329359431413364426590171156791059016518406114308666052435897021022816610649283034443249134732650061718922600002213635730003914090966145739098888529511037009263229688043997911303377084261346116530157555295002329513869277353614925053165808783144420441506375061752316477365472675885347676551366170149980983294361599514772717924566482708130718405835300490000421284778762098386509135008691769414569663827655576703898443460354337646033368949183921205475368981938588353581234624424906691575773684580373658829250922301059364740215926197612348261454638205177992501084368552472898094103677884050990594052575774078599864177829725109613253118312252920831978072030191510002959317135806323894468238686816358315116972422538032246373093943432471180002504218474752774600228332974729957755332239030376489496385549635293501510145402873376104974055057349174085364391885055296411152750068369079479553213811634482399334278542243815709991751741696661951310419270713882403309210873181664090172020901511888439592367629031578053599988618254691964688597232816133424727721968511949532046532202905664297398157148948180866132397473761329918766396945450164363783249608278673104511607842373130944060537896655727173263359836460394264340456226555916073539245506242980765180030076102469901837182278082244809660553606910935628383073412672466178893938127106213776577774552811120307752011719275301851602462570955329442286010228816935803978442262312665908712930685519273579356953921507781825714065003205922980556526564507224367252276507320681409246174022958982451075685591475373003365841130762075527209924928500422091440049894481852952560432115203483003717395268241184387145110540376851932484922959134013640496028377162767780079510439902710039900827179590674382835999882377052261496039195598896358895374050738767478928404255131052192902194879995371320585966603796522458074072009361401469141840943859767917720032454400710994935055887626316042580163571504411300403267953793808683473113019983614243936136804232584562657270453487463735289096585517285421147609451635351729320240052687683331728406488056082739965780188664205825477921446750915743792310315283426274461137213905817992890509978487144808966435530497371966133437211322123656896164429519833882962183968317632723148333446813624385484827455884768575623877470276455542553241809655428316816223443208041496463289735795532692664924640201249653469531861013451740217148220159766224568778740854384469009854947543780409424236651177507838060167775829093403602035060385568292272901740816447131448161638479418469474728893189982474250700568889375310229986529848375467337674620038576280809666673497798159568530672882371023509108236592242920839796404424393282731728873232190331132174767094419325826664497506409218670029916471303862318735065111391599137862512029640727493254248229672682677913770852209443090125281637371139847335334242748596360449092433151863799788213984086054803768734055653409110347050686023649461251919171820452300457751945399145317860727478294952908477629795213884436960733410845935566845932321101251216375476744430557828434890268796719233945648718954415248405970787202098743302817882172005402727097323306464486552825623530313840078464377414480763168806227796690132727281361872866610187232329443384740817244133855815898945548519057023442744657363055253656943175540151872771216274270873516661657834193753932114058574136879828434151999737277941035653552431093228712494439333664299868630220520643508054601562495967150072830651423691721886223132462075834006650380638278912158562934686333498068443063413391118032960943849819655784224607696465162566891808317919396627629302730560563189037627079829941479870006288464105901470020796780211581537643095776766215781363984738724457208272576859905158822197085912501954031288571026993847551476578234815334691082696275067360567563852101711043166179669568657916979669989799395932629386779638650212652270059217455071045341460244279042278654562315637968857015497434504346284147966730562721682026544237960669773656371588691924542730145698448122763861853778497214474248836032492207609419414160194073944250792034605947613959116169967029314182187149195499723510512378693717756942234211091232000310763894285411953816909600485637130036010058720667674072833220617126024831496538324300259323088556434344886143427420830545465986190393025233325315141100511603035128312375554020575040171911161036814704647866917518441354788047976772763370438860090376403663911281903389457750686688726812755825492048376997021060875498683590055374117573349092280648371907355492484189238964256399682426236765769047575459148685805295882671873916095646715976587090524448456941721996524691484932482042840235884576896031880248996593597482755987090820666691582985265763172078746620349038421576636209042703765123648246651860999918236387937940528965863215398920074597849532599659792861940537963023276642911861838040923715734443440612519786879162321954299665632404465264768797606996451583508471827103841930125257583154829601563492443471348023397213321049369288781589857922723539368749188347572196728057153970472651215443898110790051193010587513847668786857457288490845994311157671046967493945803369018132411760336312880455905135204318222463416500561141850667657527998043392260620939527645019503353309705734838397988059123393897014072094013373270925104284743263923922790924623644263897377647718987718779150676432934147389219666127713416561490547835427235417558372441153275418834680993046136005570263911179206524004501275076951731035491989549584461984131710802362100021207684297877984596315809872955391215072980770357635156563202421128157510995099313830580805950160071757477458978567905486149123205083663539189815724973983626785855153387009378155070261839888743404785507127365732769201109350985246906069520411341418598098065448003862194263951924497635017990469193691839671541755960244872136230732211176674361093767125225365868573454773675676675930380185352851591941537529352770100506692756485247932840340453098320852222314614983324907411222889575600500751194003946486065912614320847271290435841018533722849976724868662867078480877494627980432863553761921438567452585025954473288476517679702363087147742457681616174794776438852709934220410156091997898298219504838248644509702556284617771350575068261136063335562956068076722370968455640004233368557124391457488044816474684096978635959206012108430908848948894388489714319009820093236804459769216382233405559069179785595227184070797085483023204499595061193174038225531731659469363329746256475980727965696224422458501401646186220259461115303210716792915991421274646018526061241125017703221367619122680336537370292973229492549298802865279583547955583418272667366768455391291719664401534648144199688867110576780536758302299821077980320426243145749397878554840246734079814965793644119427645554653676605720017833383231633893780305743600175544152698118471593207615623091672613991912898140962421011666339097097564996738229152053250718665486423004700066312538214847994814777131562739163653410354563744692684520538217847215638451314409795722891888196631609245433891370426075070303616050963915537992907420097169596996955760412874478148107350266161841499952095325083270752763207194581937151910603876035048835602643903291368535338149531944176395882934984756842543347292553940455543356239396443933163488311925964341529903230226544001521980480571459116564339015092084342800328228026876303019125847419499929704861784666314868529400677524864309674951939980113213012368562113716887937476168724219568795303557847831952704883973319075198702294399049208053096002413366462352720991890501479150294854580522675987254537641322072007841592844562170906842496858091798889805339394915536576595593342274804740472212009744343931647956274153042184553344254545566116484195336603566438076488605406378448522997248625657493026765268979489764155262570801626426082796203108112430619028926371944131810228658352978671052111615625661537198300357775999328406065537740320334768423110910549497873942387918675036173405571883681034706955361003767723137604166023818508728448970632934235490013920950570822521316523430373248398877084006627706236936559325293754460896111306615534485521184029674383094073278177687585983518602011136359787510475181135710478380486474991616956355407828998439156343902641522600165730733389470843925027525873664821371995139915161050213452084232390385784562603424614340296815435939155901601397064923110596682109499404964986288565264141819456174380720694001236519266916003705541030080132411682867843482559662118055410430763180013902420811330419310760673462923156589959310542031033395726773364373295193361053069139234918915546090638850513304349532787076811536293755596275528730797102750021917458083496277555414273188630707005577297231930594299248450505600588943025067625259814979210954286808906484197612941291156915379007442162683205282308723983855500522661471243446467524553614167186829646171166659026289052182901612592443159402511764139749802698377534250034617634148053140134234352742181719830302863780789725406636000398770211249181952483186667042985132209456736418308590032360078094372779881277006032820443734104053250928747469801344936493909473197687886890460349953075452197384093309558994599756164982462840876482941777206244602458252902355687140054235454894758720953353537013606729077226236161158134441033916190346648755547997475823034488408992602356975821303858895197692085163662470454282593065587926908950137580883133741873243835289991700992467062245828030961392013355737969320858787230957201058960010485669103754738648324850514300459548810881979814813626350991425956297006966634191383756153383832097463407100336486601430162901202885686809569225849574822960440444065927463097585363916648022995315379345555004119841410466899664074680575477123577836060763453803122345447460771481621464051593447517723563632529404420625786788628477039507107847376868258989614695363808192965208383851306835588561962179963817532781153783263411051620184006934335202624350376201699244404694049967595061230147919107613053930408365741242890554841977099387461998441369043328727351835578939440636961634679636966128932943658439604342903871387973865955509843789889033046418486775677329929304170589953091810883600207287907504335595315064328660618756704741710965464045901084152752785978190945621585744106798870447114207750337473836661014009522496879847165173343171846067713062278731416388886148953351146742207260973941973451105827722434166854731603632658293427508578724076378408941144497368240954073772690053442287487694515618625689977650880392635326345340678711074662434534959963801682039409526853085119290121051673622815140406956812396243726489023780854844094164330836398271102691884831664015417624757957013130040050156702719729039939865713164569317276829178941027810940634336091063123152811988628716374549693766421251492433160337410643428776290510224523276173004445549376804324957422791457430026806045167121519952544987965543358671566189144704913626224602883861887059728200682268435421541620858219680384741966492026143201071687537219407076453441732386330236560151615216809653428451049882040431056267648468730435789068432519185244312494503840775722577004843868939152758826922309369081165552025253454244021817589044084022838275946832431326616316835197396220743456852199826684734928106514524370081207931007376764784527386267581530343884610301619414662133751841611430462812957713977515512249739718076373158757936876478231280336797758105603374360483303110272074693497112358491143656667184968333623234061194738837820894584631242739534288238198750300303945693158054942424230639775519292170692156426343534344140763011450590884566484277020682240183364879974996854046911592745482145092552099420239999586947046675363707758907001618078366366204572339354372753513149916993837745283150263160071835420503548711916915478526329701265741604431980573154215499688271139803319140088655953759729455547015084893840780459771974815283749845203542869963698937155846024091977053766279669144486572195370897909722583201462048168204485187089820767469482551179717402320795145603257017299605153213048150851538486009683409083873553180397702840839589573366248278009644434641033220696494967634826662983880731157955828275242498000597674412837578632503509861339412468848497608810940094599419444745132085426673073806116530821656329027443688386283492375360650977424616095378010435926296676315757741607680812344456668726466733210142188207806948160573492473629345015158532729023553052524709588037762736082163000651343923673044414393628074058636714509158386946761381248781990980134417045077319799956146035885652633281371725238443909409661952510283034012490951020184695645943499203249736286573796012067643290145264147534062527150288657880230860028648214494937545956709463901977681362063707850406198057277551401750347682966246198573607557389015305507828692623664483876688575419868582579210352814659934107162756485738149135625783312485418641490241145188574490576858411825145390537494809547065082477368460908716845918089998274518920706090912844031306292157695565258937123481895572224718780500985712483727063042595726740417967362480367348008910400912192383226899517771914405454511951622698529275867621962126702321880474974918362612957621032671709533818715678630123260604003420051584814994119694195419000124656382327762144550452677650514512754159646039462690799400329544623030885707889745600762886668465620153249520237474593860213386618280234390163910251655876644749512537218188724843835389210897440100861340337865849933102434853561107036116878833213013849428717942353915297135316538058169883295983497563148984916502537667759805315525520275276824089539355917286869106034678641819081936452483841469031856411921601631533521704911241649130120586576939126402264908126509479329034927912140952108090357104217601091914640535767583560643905689085151347382573518607668909177090703900427431431955544839453931904247555660617212554268468491812766053234188051729055667823244979708541479439922720149782510480913331634244243691903859401382324619583460874852852185945728866615675339448327393289058652673341832156861732596784442391127666672874255991266651237578620539689066187257957120924016520258660866462859299908177283274501164331825091593678609155063798765341502355360387566574365051288738538340899691937541920973599556573033132429677606902557070585099629206375465758766787874580841109213567385313832313287502983874192873954279524043223887203003649311907520883653460302172902115483337789947928502137256613317215005454968851757688672461312255856786136441661464974930361890544513429175594531500161150534324852541557044264108712352617365760310192978758967270233731033971469092548474197816185081924942483938529627345056826041290197319069002364831857338876999865807381837331210276233908943333749493908169538377216010961148509435330209117330510834346685911879314233370907713826407050398300821405133815848614177836456961230811367832273464573714669815989432769459224607394693797142465256319720527144815235957778938981011449550455111341788332820175803662901052678866245738095337537222832791679996823151647377686768385457031155260348420515042541707921048921552849657917428340697549446493743419534323889098127748672223108384217012634096417983197181194416343615828829244537396718265531386019812327808257268183378761944181236376816110180949181964295284821145147740270655899711911517259653041751598179079449788932498064603710420436885881760698125171230361016495354732793815636771407323780114630083822878050272574923490219855976478439961576994468406272330790816111500631088117068521584716151387246681735549287817453552083847812565570789267426686586679134324968215150257294724850109309947957427138886988063548126949247907700335702080789504054863895072321530547880474427895956359713399341142572860863102959208178647256610721948928995523643244330479258878759820375948404306095191823383120138498950472498618518563594590308967067981657352539048567203625982573001970327401845234395980340124701378822669609468222369417467159775744705126142010389085914091835838747570340198681474636065011399610628951048964772156012108841482753626055486016544137712609226523972155250833678623697566112445073955945123487165595780905878038636790991549001533297167976629859226754947098935367140059913481559992487163840721565316249080644260402386674335235770396714413444344672887641470368223267272282119072340688218845673747374618802396786954328663925269885693114178161477723268965749576196556638140605236487207260086912957179231183452991966659949787927968302469496145700562141535927043275941610778247506324130606116077660409734388603271162813286282336944259979078745830786585825781534802892997547419667419007355325043080089164394647016350541955596636129866526308359719712511229149822206907163419133331180346715355465359290470028426193127085219095562263179445245693458995112703944215064440797487871457290605536627977374692281702831615315412316950614020947083655251726631452888906001291230665658714422409774826160739640047344703597176500023534003953379439637100116343185702384714670042947720474047063674090819772666443617532611965822139994547569857599746907219612563624901332492684385805164607026996431666419295581674430714236224243224653154988191768796574117579088336314728568014246906938051356182174050997589902803046122166488341092667108161421026524828268729378411120158418766189875686981356119012857717048134040329759757316097584974744668260919499322291305073511344527762569439959476504975937785382064636945449269623789113078803775949807559169952639930394629424011245964686907636514382414941993236275308419322554454493921326375385625621668077322332186242417383656786698051525808086133530345432686478904003894219509870479165753833892224897319185293509578905726729848683337874259464672170664111355341150729561251328942323434956891863189360968736701575420279894254706580316012843028452902223680035403234540126381350020833323569057502507965152397018605768516994459693173580446048740664223170598378834712908613220922388245231031237511737997883736721135472155135148200029052254470543167880947378805853313220931788268653150301928743124697519262700657953568109628104611741775409764795895726666116728109833637618835211463823434119166792266383472514483662270015518546532303516473545067010567470655466201463887870350336204162506144977800272368613936562100807134192640306741201255787425315206319002924899176246029468262042135430911227394114726990888613628984027285896389609386545290443813167991275917569919702482155880833395652679543780891234298114547927538801711730300756711991731854420783273499228724199824489597357714858585678271918245801331985521672399058415504877894723535389369505746684562610358632581017461255966885712491240985773089523565310539752547957755874087356770511524546347658325649765214460652038424178619738555550523891943269695782080447572954311851475879675430477670423870319752562167511350752270597211279497355199564990925272472860797355820703372710460286114651464401782500003567952804404009199456081696160488468778258751292308759887445967475911617616101677612600195167082744065228665344718002828897422641078037271203479744125661781475082938833322622627897728662116508728192363041398119601116685622737892835868506415032582226316937027252361303478779912940449521192006976531322531774533585141858859219281452831518071280158765482590342913158387050559427141475476824436630340956605226956068431443147293680579683704335231090748938785115799078036053879955797183198355216660000805948246258348324719654264339744166855496915925944689323383606110298568400869239377499023579399959215702968343110112627960772507994022750592648928368793537453696503224498174662069557869382291046783172135483942197092383657704090328194534520872059692560036926410921045927085892878381338102923844628312510375308929310887832641613152076629373110216356446279578483632310971227029823702723189822306666763736963522890817290138101547634664417957812336141188933593100338368941617935520718047454966976897425795647553763094967959441462848019610124526174509757584776968340667814203644452067631541160195396248931286542237626842443757025730270412839158268585238931680910898084526215065053428812525422352130540977483148388281979377888369076614004322344173919696057262466638569005274820593352311620433589582822085358988292977401618333462792711653185742133972795313684886200513843411940934325733289142550665378395105066507702981612537226915722927703575870923005228331336096374265717345490488699012109595160201536223269285389436204081435489881206054043681016991330725653587000046015640753483115413619929559823895365878850092978270832370530285629978881584938995505946945243873587256774040207735569911706636555202158342528362412460793410024416451691672203478688757241290561607699636222714716064310298731381530329980411524018879216245013345320283075397606160910531480965151997876540801227092656347224751498116178675104951704145960201996666476272700976667889832850782305552924327557413582158308107129467795076497037027774339035941445179449514327842649148736907581523445815461420764070935653316877867607760407741004535064542480702540592608850667894166848708962553344426602257386368157678123351399220043725240859784187786628817367228451131633949237422531032183149176633592832664718640775736169995974905818030047060730282452903728963416167308546456285895526899106404634546405361231222097009328097148356156008531317560410036120215589165954388397624057703698342655969842416852305625917240628421622188796213397525118930019605004365385205923079422744351407887675349766588984139604044901106186032072604409752039805832740692283353579492930629949371343073184694713296884295339234287164697831119313530972575442486313039934811482807535212537298136458080065774873528689830262247528031733863624417131843980265640949893669726478031868159086958940769528088336477503658797435101980336811973038147482183537652511015756280206235938514993129059765864270421936880581987909206642949023294251198091516050111803165062277742898775823753946383769768105693636181795844312112824838364057650011892834310582955217179219171469322830865936424777505942715176217866029570968634053549503759599928559085400840900190989790724782597400411497857794039155069579618347607727188202528747442607082492487509988465028700226678707444269203625639128297066212388085628154211277374513962513401694380545616050830064990910808217693178299039857770344832215334211418525941678147013524583075447899153034904280996199019181860878427022374201296339068417788794583918431745573352219949113063826805981752345860512962737496795738473447174907494423893060553329036615035252164524346629782477271158775275300191915076271954669151016694807426881606473964496955461084828336139717633447579815249383430338542115396710541305037713865763354879238664604574153504180523853978513296283427939379201742373576363563967892967695172203372457597997785364983103069436439685555053967464055158988566412443959187865020573850077237432271500893149197751167500419750894087105916040863521864782960977802562866695267397649497458331917730979353633248200350929956957024125146194386511653343220261575533846683506928080207847243331606856414814583031920443707411408473440597006822277543356390927675607173795527680890526245895761421514837370409585643077866724265698938779583557959067496010880514443084723812330618729000336521820130159121952089635280182399122982429388833221323479392699809741222275961399177569416253323888594591599403319159796324909585007277371201118087113590675195687018168229821822644902831810682746781421499859305181751793253809236522689111780661224751043739797640185524778926774706350769782290806013733374314022058504603932830097332466215151400232538616261642163606464154382759230149795090249685951928710155385004305378931154458997608860091201490959283352274032004292233817887320013362387398605012089729707517137420709242880188945670845988204012801466014426583523996012740072197409156766034416836982370031827018288645172511053579360008446795011232981134522531893953759964418131327522593323893742695525261452864744390984517034024832008484038144286066911211178931878988364768672681132332875226211714047280501514488128759764754022991241177599997568979152720912765923837237251039881173135182607068772346113546674472571247799357276676872148059587649554223780305112956979637266114452148409328492379390995189437182460039037782939379552242143845754077868718701143390381062140323190914861558900860012366222947816158165474664812675725772290476047194851121006963412242270502820018920888990920361262174543326832405130249483874356380877693090206426797620862661121851179744336097552416521961764733880475628061462972988885105478976655092480719149008798544850006625269990465356796443237250813003965302767044337408471003188759768983072580900954827391623142942142846387168780458114565446107723914287116771259711125021362001930430311233795050848426837460914346084356927196090100072536590449268044764545541499330061920231480708588673419879671349672391736268134507674901299577128844196904337298209094088484951022784308563190077587305917645139352636131750965276329018839732900272528646308946235592109783094990921779221875386696195119151214516418782761824615459855237141597628668203542571119845173803099138082895438586717844439916481611519626561739328203278375843287556337088833139326801216057503254525252258133303094003040958621980527098896195881283856292563868178345187779768530595298304198526146723901452943652325015271266469304051439876036211199244824626791779340140421944214313715233736910682716291411136374219060002813884298201657261939276128759325619366731987178266211742273373794805290821071619337155808489109270180880140917059285298778520001846132056047579116277140631464185114096135091057603828235381523607654785113290163582347062077554365567086184011801162993591022182348924573056337488926613656269656452827550611187047646126221505664013355698046792343099612224362334242850643271684282359226407331644179763788606313516368302324745128134261752447371240183462893494124632703637705882972740865633932256622313859391098093422850450926708516026508163625421463003255712176874461770811966814714413593445383836295755943432213143300577930747069858592640525961037999198398065274113801365933857974559771927271811265352824834072664710798439497681086305951654826209109994019587807429646339552791435847473434451335821535747787457293171155956180843393624742539730915099032324484649867787883293855274801792113708692500926938180992792785775532563383938643212769344196211874039679358783417131737613569269351834381425927428038880534681254411627346760180908246079981786233373232547107416062951961283030622879705945673737878459147437405685503108875020580271329869599604585198859290532646018939855651435991479196120292266076867704638531019653072088716246655031786210568990224335858953289368643142695254888396084893583376342696988507585011637157400938853323755171565005803260125617128372192678521549204820119870639841429622924759080533166435345456421614100253540487030657420551794907433208985865120438788441006846212461410589895319110807327497119893642834664576854558878630912277443924123224044363221097926604325013556698364470928704990936758654471201849282203761837832323264455874134663516683987719239217200195661161393851569799459779488170859046966264101021712653751607745943623808027278380073655280712519260034204121863426578677350476445123971957091490955875799354117376735729711664894516607150680130152579596705893413333391335340227456421335944649885625156310602096049197110643883982220873057872924044774472755513149917048618830193008015719774560432918368796823597997208655099563229789297150399783774979848032103464418790786256010744127748493024232326150001319437176911138707271708655800702957588226847901053558629786990137485720001918075812297071154986181521041468119535728514659957529863032339987646937684671765568573620024209642656426725268667474444599292918062382339567689061963018972517834448558669275475112104358623689483066506709388092548589888223439534712103476291455418647009386194633267522891963720601002431212069172833059465121128222097766460853660263612019842777476558705883553439202880055317075577919513712173612693650964806253768831070506019299092343475823827280554120847611628697103685938475969798881995178508035614772724063658312594275962516277547603599976674492798314610580811680945832596547699996912270686741501243712232765491930405260457138546498889099523258558238049343950444359940141607382552154096223218892104488674281846282321104369289487460596400010701201131749727071705546777329207297958485909486465904935040783816552376619802906746381621323988514984336717323954373694113965296917010902392397118209147134621369189898915057568379692753453348739858822606809536855771926990882526349436574360091960995710954789621711539161584441555928861281872609552672075031147553047446256444161174025354674244711813349001896759475793003696136772603931232855237110142896846191566170019751242596821480792080887370931109972453981059550367425734294214546523917007455765321565609470843204577787950473827858727710207485843741508436666659228232191629749957736327092272236331489428255560847183997561083751517755823637608059213220323026356103800271224622317596316906763894678472779226772453307025402785819648088290301186189886847794918511522472374747238605315850826236549706633388054488362930629715355352742547585783330110700649059137875148649818624662995964902580727398370445688714852119069101939381002804045195663774685770756924421809459213481401223459916445784403980238723874468835970254140401595822114801469046570170441341771667134005520894427006466610038202152495798527457757238854918023008555768550067693075831741173784592583986142415129673424305975645281115186814732246972883366986786984688624563769655942626992964319845559949426634551351654977388464846721530682890179575663088775109481047037719969085504250583501008821677226529838168091419186542806932525659261411745708132666444155473038391201796454099922110363546883654648369794550347747288351566706458767149616492014338251844438943413630319794178306445117818195076769052333316601642088906510401338229882893436726254526208005808714046477261910913818650452315540518585793757149140964258443774164761458393705984647524608509167925028165323077294108956732828490152991855137113180648963359117426500132772543207642391511379845988202254164549267313774165387676936030974017477706533397730809978570388331490514721867826868031555594170686495457206337210971518525699991320872399390288847206805754170176803900675364836105797622496745492016456915568815391998255140521850752320199872560614853539545512323870969022735656331589576585578848972772191035629603359255670124953258838638433116054672664999209475951719172458412751895772542490616335864997288757689565254317517184721048990565541831019614955107847457177673701738787025402662885078853512890061570391013231029779287684034643680368391087893954462843770763728024047440944693756607947293558636903787516621649532610365393147117750594057655073581934280665076611762485012712188855780856418342878322787704001568902701055084744919176978188570583029537392607645248112547055420549408565645649945587225634677445607554918986823855478190214107732859389969334016692596484505408323355501485716015932959588402676079203552758883708290709649039696238735736837016619987348439696810164030344937818022642879826874591877837438163299874042125918221056449715719797334722179214573691482241179862004955928208152662226662042777031421688362255614586246892885433659878017615091355056534162701504990884501091730042235333011977576186248783940820194450013328970418731899638779541234583868018589042310635068034167455927703442987687037518543726637056214088788155235309956311526480086303521098285103221408302034206807121137436093704453283634424916104164951270636911615932245480741883324449986805678379372319411291144896878238254189547279339759296749425704188727118120667634423424483860899329646250317059623717309075309081765588707902055910804045492896228841020966885444758411446709610621279515754804011105639236257821151779123537560894557713511817308111443400372639263339694460798186621656573485930588993649186104514303955839764736355082362701722451987791430056232269695861582098798072475139450975394942677504247172555758761047063289719438555641986549038441556217246214523335726920446920556751082877785634095189785845885847437728029571542633061986740479385731311067291399795150835239863511829073434953695275399447703541818008060118148762809257604374634456213933677393522055103550952745429424012318607555479836700531577034315212318954355921930189860777589553974478832286610708743659325928834396028537204425836937923438321578544731869480828911011554661962504779333572273204940721741210965678868086075443811414645077776484277075526070281637716990185728022579086472943263307190253648027002969388706054962025603033689688806829588361833703947139905766599382850352921936644189273982688417404338679620740494511044640097970915903341292788069296195714441726858510489977637698565910946348714148572419906984731784156261988148175057649854688579586333439955983299847882403005137451623668409885610390218309388028524728084135731829769313348913583981324206124942895973394369709856431642428260825443037707763356924994065486949571224149964846152809019854126319886328972856849138884269996095626887535649354645089984101672789995343323799637146961795442770425955466989539808253680150724415846616568054499040820768332387713133309475248057697755855851446043740776302595526218593209451563535381031144886558451189604219084277697877552949041226417501508932158051339424995165924990909702612915265916546769720930596536090794092943752577626604628553749820178861064243207376135072423047621045432451925716247072923417867005394405194442187968847403670338389425660777485171065446540276684238948641623602056450431295123785489550162643242180439432248554993018838341152994395222101450830914465527252751291288086760986733379291750586115905532214158145965728446299138262432805401409401428038190773265079440981765541664957571925503069963557254117511980449804353069107008575231275930038107967480278249890138416018152632068848937754734979879451415750895977813529469799006775487643504846610431906218517803001826404356533321370024994892157109542645489665801562253143290235496413614834635258237267874160141986317516970846162340735560789218910980862933795393527818507533737398231312834006545287339849840585951610078002634636884000943965967706748540507271583677036309845570852580203941428924381664249289527866549051640211884885017251343746265594899408760442591234692245161805747259643618192875249381671493542276407717687023436508733544059161569607502045603659263168974387009080622096317864202880296440484327787716196974242095515119777322046974012343524511590637647189366212246557071526594953574549539221219667058192296212818285249894645705289457694939677732057786460283888776754144156379611088591262464270502420265779754044150876297522788319389384698587569199482197950984455841099077324722662513702315079666362460302993274226232662921947340393864646509030183352874786241149909032224872491776707034508068708559514213919386792659087078365923686354606732092751543091313800032061735877140132034314002416114911979404407210857433634450153642040889520668253364475292367744564411099221989888282750810081882509628826754602198868001915055824160590218216672436075805754083291133239652949967849037665830018353973116309452056357190017598367871436655230165158797897287736039209592640033163348079681297588909602689230573973045799958275783935040697513049223770046843661477760818181788484685146341339073248780650563766615089882379114523131948678972204132048084444105291050172407474405480023536674823025028042496377734761317167128646289592965160268410901021591562910633802561004481902153445723217515769493507942918028414216171578340228357409265027034296144509688295748876553345210279547263129100781118633417132776118233359981934590214427504818477691857379578884274012320191050964869874449896299038439298859261738145458172846382591098357233974600336547309052886682120406485316814778121873701886752495270138687391393020759967544577353576875290446344480571525352565730084894168366103096740180681398218547484204355609268971199265433787009537402566305060596691966797102606353590686526019328841623651218637541141837988710893444461136589774011549538121958970913837506500859565076744977317855986839054301294652400306403698077610537555119847903710275161512782913628855664369332980205444353893158482202967084038917413777263527529015372667401763355094090073802895521414371865403668929704771433290247273077714305045150328536352087735748621460269367151810780880830144625905734569186905507247368870626234980737680049043885738942626713534102226705004811845189451250988528457081426969119694782141345529529530641372163738533560923336110249401442703190670096452950290923697501569907541673095622003253509185041430483269046225910350304310881493850736585024668390365974614132565354475681169914784325933894900085620212758595782203852075955063715293353879827421720193555338272214488154932788780175591661173158619157692056233284516082737990132638984596408018561688334619910855257563630093458709308394251092173370166009567796946312164595040654082234889028534233277376316934175107240548287698733914136465326965730079016555919028152403592733079487358901775119137791113042159314704018363217294066002603752579706320334882428586823859407188653406095283850457574766485905009073337030851828770465261036268922560514771695522730140958252637904722095042022109773350106793542295337215005111706913548832538407073950050887447575137299155364334635510727870006243522043101455220814025557087210892764993001447836579105798718809763928031825809865848437951004455390200426313489017699512343907996240695507784723999093880052512419716132962812863366594083276835802468747786322562549793331960244539568076347580608913649805007213641681903423737492569528531946893609579307235912521735668002117632968985816043183808239988744412227100845917005049489297198974102753932862728894218523035204947882818454924590221457502374611402026950831050254574135013386987343600759948421935863369809358238842525814382998042499930705789781524659091556819627981267503635156881737180190236327948520761825485705314969840769279496944153002670248155382886946913109952255517872269475107103979371520949955730675877099454040516363967666495166288283139074048523712994034867462483704402270245833039009034849902542637866558516498102881143351325988485478400301864459907095094860568190115265918418714746328397257823999535839321827954944491380977155656709410840404251939385696888529742480556217700426829322989548461996370011570298736007842466942786975625953459204556525942527643068955970461196888211382059895652401319635457612767541947308592914471638388833809845138881600650622270447822218794578451843997294357228864729453313593008283767461250076192300733853524703533238044767611855980417047865173978348448759308555459585788607542083582570017541415824671769465850902238906550083763784342660255280526895001132816889220275678783547122344803847523348924931011440610275019629270898592289550811551935794144744396206836780521999300858686291208793896168769933310743140719705195118463449384566378309798990044202336115079815485608137853159210648851372468969009003862289459612551063550074088688423553527709425094863361692249547273439636488980682894212451370835111163964821980445558907370100592338735738029842595157490267412946370330309261470531202945689749994277637630533439402120954598193717348419300940207137561041033803797468741271633926707906673471750352959815258106559661169731404006209858919454837119009422992087354023334596072044953507588306369108006027557643389057193878464706349513812733635211147404681248648002227728917213988322545413729823910390785796338878926237462107359687670699529921418952234739663721201593592552735730782611430410105886988974650572409277708599961973590891607669148369093803254795122000391131114169664260652932530338375751806722354833187684573130968976469356764263699669782419861315812868137414643129576778386448900048989097954153175897420073678235483054062079502670490793126819467347247165861738986202970516933536603103686359418690968863710729995481959533482154983372604539701039653023503579491399835026999450458063525680117374608219441038193647610502543439935224984314730353214749930765667026704599764615905314146856323455524504730789080318017670002211417203688119809050100522047438624148303214921620016708134060408934275992937567421679534888703886291947334803246927189671700791439182268066542213602845833492014886769579933589460856109294335680448667693575096847085226190397944325282406072923684470505093456838674579096470007183123033765390977087804147145489860932512126682632787479240069414321836051271063123126502151979036050129083693046761422057779184963844194097907756131585423838537101447627810115659579604496303209755912308461584777381848291506306568169430196531162329828639250474743490602984263949016430245405591877258590148865161813897645408044277764309644724857767844467404903433120232448943202067051601124436431546714053242121817883766713491549290425603638259205972626854078775618122409275697662962347371108523035947779805726332862318726328874439306106460785196046660535724053472606645170460528506637736484824786559766914553426133019627377748382316974444536886285824203653249270689250779697969386212234368692525608518300261813882900897117003229880291573197086010801175696275679702295111270785241050703722606400592057968978369348653265704149150323106784874265796941736964513447562837988592543056444185427215356221883406105763473192869378109076431969082563876761420906556017966119423345561540112422298746362600866352165534718998964800627971063976533727813859131688774724752676080972723251096064578185337773755412187340790059276089685393841012292759993079650517699526173891265199328215428939452357451197922835946324368263240617104709841509385477754252070215607486848453314234385416328148863337972649262566129143338400070707315471615862273891404019197661709222358892724774303049167126754335722671170807732073303706091890095820957861274618193819895082132398097910721732680678359894825253546337136323872572583330977947732221863769535838913260154542843295648046571399964404471187083987376347652067010994194855803023245117891216152013339812766042564217384086214664889434342565424776152386875996197575497967907312189450345022115919739051244363584182330989927419197812063932175973952019698665026326573002240939674357377942684440509418198108618757991457177983482680697266244276355027409198171003547903176819730014227863211278995129939483520649071293185491423623199739237004179585289693674000173414393564716215274486963899334316634264398345963256761122902224390292957266058727622423869010996962471167535317109474684434082016386178899387347766983341539697246524626708556639261410531547509580176198896251345297516324606237880251076668141657673160172773788402504673490594305919412421279918848347553183052867521747725317264597450045419479024871864199516986848564468265431681660907031421227074534233297379704422619584426964067191986320679627330179903449884699577916828654069226520218779575094057714408966999733655448377816478648249165453440744331482016058518866753851018490928587296658224586223710717349031682111284884848130008190422354991217372258930915577117403366901385967012594726230807032686598216968660391903105863822229423464900658410060908037159412486176275946067725070836023248404943262469048381167051868795052579281265100909440627676042962512356858693358397657877377714893720066160513200134143428148815190403935068385309560939052310127904795734584667977660253835550662549959559761328492283242304387561436805599229012404544308062008429837368804647969550651729564234143613039847866277204732086640068308100442908150918420512710252803771538694710921577267090786298002593648377361663546196737577119124025872037409868828271513496886591296667143958812772370380217008204090922827807431099272245571462658086234430176883215066601904810621472222967937288713937246532274154876447932092382160154184246074612602131465100340390520580079591870637083448219870437141271165859029576291182624972733548364011256736352655933436181190891909721701863577658016914005111669381521065906644506160114683923126451409571389806134225515503064850959127254155034747512944659080898354187092352693529477252178766498842721659920894488696438204939351561842929961667159452031987983212983503540283648461461108480655553553166302442355855833204849840342320116269963455606684198124224449238737058562332549488800974523982482289959113428644780512769004409812238936517117639164430052286611178892380918776460276398351388857116979995583039297212957498209172105271762206265057029467527160919308550107416688775809488323747793030421767310774046178820965937302385598493597975733984574106019203791532822809744044412753459694154258309201822982042699070774230339624467280186089638952994881598191263181953062917557953536872632637008435267596024255787782929104570268087310810009772540194663124884366220409302982711536205277861712716739966168682866028573105639770512944813053220882915880059871922951459916953576527617558682179994358194122002734532388389086467240976138095206578012732158003429074276369314185038447339750433813956312299912312276250116319993314691917935345684909997666214233419241955917606132287310832664165750110824665124303720737947371625737321821960582153720723859762404063423434236742388177916651503966163879892897639921053491339760728441136727983090567496237209693506555282236217553085873972083071093849654467127910264218941324130336813238161550497731999813562457604492653952834116257446149699088367238431942024420582595254898450369352225442048974355735929789577108786614050499418033632395671434576774395170495911239855594760358494122633684546062175660793771321279484380285071228878093890889268058828371322691509772040017437816289650741179148465976461969658929649487839620340592592947060030097931618784099109892743799242069600965238917000519580554061056671712895848724910905002192542771627707886799477539190180938476208953426021170968718157879953863694100221746128060469053837110619194900081648373194044521902221436921648589088886865123905252025820144275809758803349935098689014690758362166443702064239188741442563403582523722201997279463182751546523899967639273927054660961641737644232196503395269336245415987866541202206171743963205882629232611873390019284149983649764122487431760764454974284022425266152435956735034559681258838717973272204719816960685451570118865663064061253470713055040773141961621337798025734743051241267892963825398007590224151662777068216135486492620607136478363844296095520057591785842870507466148690285931192462322492105473294839148485343889887945232069652732351019048070165843955379522669532760980223832041453215196000840118198899640385274343962629975109237168318579513651579450423655039990955457919026932144606627368584359520607079572272613936546574010828835291866487153133718661411331795508654952145198350995705599325954060007982351714214580558416873445854600926569360999530435488962598310456262231554860224816368377288145413367357379282456226691425679310272815649602566670681313442199963897983278689623525488047607857197183773598693813613527201879584042434155611322126374201651633701201295130237293204166537799448483331394102233959346592868372007405234055656562605622591058393276105183347386146381472267661055992347143606969772321863930832195215661966317152420933017825533536956243802261129163936539902654940953200514202535774224462308478198657830420228023486663450563491608747295557012933171799598810779343637952949802864077258718554015924037462948164001804502146510288585176766013617065774214084309213934927157232174831606337397961126724034556525774447975270568276644838670379217572171590195355979870777236175254956155653681159568103890047397507681308760648627998839638159931146958105793094253983949594670187130359251674879273591474027405918082233406668747523479104299661488695033989277853764233326123221687757529165434653525377823038966315424557776180697435646970232156079754368034523911529661266405823107319958607931167813006315571737321606253376158258185523871075409681250003558063736929909588759254942178341164193519680978923898522686088745051900305909575533170667260184642883454044002864500119556599647647961510009648605266722601608566241545336319308649752229209965729778470269784592733129799222260129036320842435893523705578354980324897630459263445002446385744441156790690255842327067756962984470709239001756575240580521107961718678598529467903205304671350325223909562356328628258877368778711900595832908678869654045571481285953089052376265505862665159230123877700480756627970060716721691255637665138609568146012702748024216639179995398715731173782508365912992364999226203463906883916683360926805298681194781265581244746953945679984971212593111666836029187092229269255986593999591315210069855823212528737584125404118141131890598996834268868422150642326735362834912417481301875103980558192293340786519108490865162014625875251660887684383137394949826668483072553001592958666198030224298207158528539241616989609012746891702040374372596333417242782030249648451118027048991504124664554635436247395934452294135646468168993056695793407650147348776622966837560497045579669301013735329901585995047717009108987299709153700347560373462904279333099580964801109655740639627007879233792635243897635403012006850129389121260660196381243484624439333776381599859041418070585771949620508181381725914402288382783981171407626530685333201153528265341158758966200738515326860403859388994173387105118881612048132629868061313069275063110021627291201511706426495904323780568731614191726055277326552058034678335934942965456696201244149052204161670242350599955309285317334946846995901723695675459343908325077205369001734829364118315360329805471523293629208454624527447062310025013008303794146889745708093725243585244083665988712240810239237902489078363893471335219944211097284451281865107294869758114282549481880381830626265079314370696240936359855047907834690845971027601995956057586313439341599886604834131195438675169651135942640394340619600252187586485485252760336512656672859217562643476331322369129352548751547343908631104679559779718252102296161737573374070340212390585892738894606842346800641700424462582469058868006172757321064200718309939393639573149156767050380518079226222428242889002694474134446494383573345437330669160327880999420334939000500050671999667099179708848846240504492934668296248159512028475482080010053370807130496656111552085745018010931311223906829240735832263892875419332287344756865949564046181820736288030847115943927572812016560236719988434108869274843595954674429977905431576285093670777367575703207323443607066385505212354469169141901447091209540968664887440627952728939821147781404877554446427960695484865200698710430912486383371640967161391149907533863347815773788146590904193843488872737977523470029276814705669640385230826400670852852948406900265667064321202131846843599003984901090292107730999455144766115109774018331457587062106828100726357683740803303824794675625830058163342837490134733996412659979856570839422081749115861136451502477714913123192873140262627636341353029870322206030350543040698517434785099377746425327847894100659752504104150208106567040884949944917881832190374820314885356093578220567970293266377802253633061873326022465396090705734086249853882268979540742990433771449638319388400402034167150468680967422969857095820152818050579364116057235997048417738479303845630313937101631589063766031619809338727878168135874526573271229710062157505554685429618311812993777380305050321130670168319044323294737339931232582474210067569009591783871704969497076668736625220222876935259909607392399664471826142219752951142359044299271660259979417054212588322070382091071147925621126712671627009374106562352807959580735997877912772780083712473629292901816051768124814358305529929796835957448786311756271782244668201137616441432512069073857136458188485369061229557876222246351866813777383202864063823167687867059863612629407254130726668336782014406657192122758419594356192709383007732349997310444538171236448485448433776347044582852519824108573667619176311311867694455637898090948998001568169812148355459862114721618130986832815088506647967034215304166840354060698551528537074052455037954327346027299947428249544692627168904387341097908124587511029629263155377310668651579154848318989182516491468330942089626795746040434194197956918692780882939342627854658766634055652327283737861227718658622924604909608112739735600526556206923159908215535982885653662300983037179917143972416348044030984506977736385842416789030310159437483842236918817988246867602289225480295891484409866225434680583258136031636632839348984910146232979681957550251592093976307242971049644282420319843692872373304832604962252913457924266617585693129855396356132736404059708314687010615841475528441728858729793002073046931007268214450094199749967849642676970199689251666429856347844572738459900941621374827119380853229195951061984035631922270456487934624941461519749242008613790321802563922172971527918991006447616714454010750233672713150594667943539747566887725965777610615754513083906040674998154943308781059732554006474797245611148763315908884195494739187243732224279352059362607285111450773258679692990430713697444967176050393646455613207277926075397313457682829979528792803508242869479906219642084189978811057162531814111960877423291454849542234765717361733109839252992910696118885619118367339076791067840451642916211507297268445820328649296618463281133716913686844335765472308418956275803453310744587544046932151121111499882723605543575257129111871146142456133591771715779921842953512669784565910123648587030509198727164962257554110236726015615983506537013194746477289057148301504585850315167673563376510388804081886812195400252265389986609243379446242298937700674062886388837682365191487067865135520538195435377154062325892554367609439819016688077732801227836112507046230491937341905149167832011357343144852274436974735425424898866742338128462752085801865261689862555168344165470506316515122731331726359804204747893943556633855984794666941637862964153653628731174326417448682611991406573854495584277633722806170488056323519287828839202608425574416658058481164068046799000320409005496453505379171357315357444651407387221261083225259197917217535509870766208733099827151986239095510857731218001917142304640776572043247968464089379586243537039977066650790362937712548195499607258990423151204611016971555618073639415268508148996525550098525414406624022517057797607770890324545217074336404745533306777916761239230566574803359050535640880089499623629968326586002625646280010667463876991940751329515235590387387379680644808907572099635606969822234196706975924813150784749497118792186118965578715093689862066299472840304446963345349471253537154604923735354251087435325856950437323067884042368628544362817876148944533907913739750562540435097016232683086017598926233204050706257990193126353919020520332311698479285453356713128428363741299217758654991718673554752013909652615379501259512745645652062491104624994132095506736138342803512956369899059129913517590864363995391893726190579415076588145992746405105023629020380434593898261083443020083472366385863879529214539703605482378776246502826718874766832131405035946307525183063205036072775646925714361469865597650170050343036359106223003720715567304747624476541032900575748732527388636719155628272615643809734252939655728180736836532363467692806535862058464226839178763572412404688614919011985195721593756335392021577132866514137062186267315404737384478364182515757781772438118722803213315711716425406781642745765921061069921032305220379071662492877649549700457272952682039258297323239734301951697675028073014499126242197450566836436973819024876184817470193299244227155530892689324179016362609664058345239600563139031004719007816917212929578570362004677979338482026418671544708987756887219939272363872794909137008228590367871369402247875119368146011713361001081881475366303964143351651539212412920577112764688280334513357545636656283544323135550031356430148410453599572783831790536075586147124294325289040075272540090850293227187735973519945468803219743458801701529844939482753824452710136396768522228008488964612482082765332924755995693736579597721642485861556141691626269220743456690119202629649530520110626780298861251072419095791471281164752945595318282501311992008215069880717734195327735188187349360622368139957283940614306741385352133758328101167091567669664776906950217937073312739506163730887948769251032284682575140123052504431418927880628185081923295398305487526978272903773684858120493734029191997053799145854358701082145442833132438154237129447274738150799620126216078256368173906135011472250269260805249207502825251415441712563772634872114567964256052774745675797685479671479679152237401699523778619343848985545977668949285014986930578611073690804192910525694384694732400915772006712541104926800018284565891106452001085679819132027798738514274778026720970846629389480716486805375860071717941797154479719663022968713200676719515701471205959119734269158109856798415182469412155592644672866409097374991774183583182942484936375065563609188884395211114960227372390905076435715061600638634928095956019465368044647806605582156775140536350910850441524433156812765730047566657579371607635676340298060657626291840444023600441122992092098388103632945464531369617582563084634148237077672151595262949155389360928024532260783053445588812985194265043759212163233803124078830560244428383038346699006550369034844987370987366693702109758207695406037193078048062548441496338921731622976088440563931561957911541310774099547572707610097348843362811990791566931141573035872788019969108779665985409969716840666719302049257865001592156113620119010759331363964967412174019559048447011294251706882548551134335895642387804001527294858422027912816021164808707947726469041975415553148609244924049543516280666274069538527937452753076954160597556274414726247079901316100457082290443722423629338433002811377995014965903685586673883343326817337379008058456761681927865654998162911676628793903273358460878831739120003373434787920808469988262331421297694784596557359568377918675960857596165857170800390293908975226384672632215900444014991980699049286305226893929252008767748688490324630448880229538385030553290259096259670950231363804918123673165049229716061526351347597621469873267026564351002577840341667965968867625639703633304950547615091341046578751831405728404604144558283179696919850487880288493831093298652535649540566598684206018297940261622595540647707893702623828914078709117268488274224651389103790178686269679231031714005071817588729453569747862301411417914066149532924255384628414498273666104358009111143806241320260457401542204014929378389102110462263010402767356227764721457427284940375871969715926671010957853884928559146167767548114808860472067306513877165223479301919477800536742085056785852481342818742720274577868096613854495115339302877919989320217967241902048803139097587481390056875785838331700040767296632096889217297769172206311485470708302005987160973918446984584163514314153525738042868167803130609134250690490774506124705479923475884808467816364173170045643838077867851832919848549775178426989950860802425018463078252523042460817755334009058834890115700663540853676269458868787315875026862268354731563883041076373534163408435687446017342513299483903556940136161675583139940934744120080329084696995576329086099292946831238438309579505282432468581987592374839013773547085595624987598829747538243957267008724667113894968787554578444689910135338671190781327906826020891689252638663615268533696953802488258725323157381820969464168228990513308359209205781904472908764760723450304530476816773049918107997036584034183591387106120551593856979422406098281291282907247127979431416537513611146575056736136648777190750864586309122035031727547029449001576658105445654737896935796743599854240436384482978731062029322686236131982850526066796187568704842923571483607758325843856930733057103862473989881310280821104070332502219579237636551650639673492622061948322212370679144660571506593729147793806526699541954752411505850207672086945411448932246364593434389570670225095776367848940766029255560641325186528115169897216807495905893798012447475954628168368231076573027246563637215942291513543383271792396060710408219056104088450045065306411068631594726930474582870477466952102881846607896007809353919908986601217612349546041078079327015786002401183717884434188047481058151285019879203244593211600237992156320399237194204478460098176604237210472992834832401646679911681869587264936037798117051175380144651871549683941795369136420456111344077019603924452094097221822614756208898791231383242814422002692510421048878115859019765010208669884055505548869182996018522417928524742753249240083399108929146645756923921988971440611486970895264253964822068644974227728166965067618911710768317980370816396579068818171494076359674029675262775740157176737231696173015744432884199293295034210421462245243134072591839556802572007601902785773223601887249107765071863452775641610667348531477785023683115777186844273525611207875322475467373812859948174077295891141767105545150408650932081124393650902065433050855885130017342797947218809482272751879721198415898017085444637274572628991068351116463919231845122826958259167286543229993752603464854023545863633444345727450092069624617502617353534529348231726882953064196451708789921063088840291237858658030506380730027656166266630962151153676017432356793531455274660413349462495603300267111882527306289604367669491594836925258382174204161754307786272417577544496474570705952198515813370657936623118456751741845980206552308130043202598512631896993877193972649487398579475899527324313483325216936882782941096178458726666378361415244387923782951020788756881181186036598655886706123904109091996366334792112091098301747496623139126812299603129939106606171349439526118244913488953200695977839541019520111812832635950124350384406295119163771696311091909268338877513146673215439629372079191469196474104000809940140830446109603066399199926493251496706458367812819971434620578662422301140550463124021200255289144499574917671811082143314828606714583779105310885607569937059854313470089452919038864496857681589000629249704916978002364793717289349589304614906977696832738386577950913211965969533126951828857326389442315397610951931026895270011059449358862539624083889052616164205176137087423915755245211063085130037013179644345892607471386449428748825017489137092210110353412898363635185480111860767176246646115744240413435552719643214422368268485067679485978776430901847418065556800181878427437041670801287888358883922118731849524433558436763242016859596021942770602211551330394111082516420065847834926201838713316828401735365044380730698054518869562496315025036939327284451844836077850445166972318729180554818834372721793835607911271748224065231539419494206878002528052893929271000568573892948224095575095518465578248798922451033012967603758670732883895510552697503276383971561317620435530392677968487421700833537587462012329134263132261492682309748704062029634745359946581228746424721180090562034738329727513106513729996137178643625562106255763947185084434776281344202846991038059231803716658539235125034462630654878974525075018116650163299949820917136218160489148666878408411978671307645622057358116921103555563580341556725640049203133516614818944186784778283558627354794558993033047121038735569235476911948791116051521462168989046074628019492328213560603748696950058972467211276945173607354345657782669784443011965920638515197815683848714795550518735625879826130153844354873548100343643620969054952604510121399600092968456124833454645447937875615653850146266552443102346597035761014290657817452143529384138817728286682492370891332063809253107018760319795619618494144478590493144570226676325091256463644334284457403145104336616212710764492623281659016657542938593396827144193979108137759296461246164918336883366406093708389359061779145753198732367652062537562657873562198476462349405144892090060335208645613962821368168892288927743662525161623005764507778515270097268536950986285679052071931821649505303616189812887285609959159204122209408893731661322941422165113435980739875770086898934366049834651216699818611731838938574196207373830609177138681410952802581676574726567981287275737929013843227290811635667462889849130007635030553089748732231500795698814615486353504060633398989072750400047472060806449780906175896868810918701654486267335009411960740407104810949773730597275115382478400273828210812723905799596432799216067473747795814037879472455820068394780158636131521365646553837730318004018156073112939737201841092228564214961557792022043474767386651677795862248638100288546791314505293825815899269450339414057844487858291025863342942097451716560236964985391211077060425921599662867610426773897553988257044041982721768578006876026554375008136592994111655609297466309106949462200513598993541162882340997690340748825045462727480674107747438200119862438790491671581964201440446403561145568558179916821110939114602535888761263507984927392711363429973438381916146914091803736570555982987547672511719809859811195692684848160145073466503087053572765557152133541054815231244236258096880856568491459790057567115809335651904900308540340944930224530102287325402307195053331120031095767280515863046045100580387215052031666001587583528238520734069709265690991721054594898777535141977750712491948286994517794455512925267472651278143622059932658616140989867754412516695962002691503195853121152687405921846680810754880315864036457382383626371983973870989187780795526941079604109232922135015067248743956350811749903439248866795472140253317707528949567301959829354098967037716658074203710212678681550588665286610059798065376968356337806721031833147702886199652430947604841838380111289244778377159009488580405119760009651344778499058900194231770350562583491103052886877388839197516160892500106569721525682103964642589049211218450074447971183070678672447348585294364260900975704530238538684265909241167908406960091417730844614168358830312334842111620571081164650810113664041434876173879679546794950315519335231809639682835824184451144509994774953294580119524318704983944672337512915841831419535516813191141363443335637856525213983430173785371421983447188206268855189903126657561691272091886375584206867125003957147078450746741996657710529260847621541126661953571290998399515323258661218930194579919822385785898058434956842763610951597393073124797602821344079489733965434618081917071557359670901873023349810947260250903429781291841270045206421627577155551527630756513303161501518666138975007580883668826657798187484437119470810266974669730672217514951198238999621978763929234531353056017120506032093954806039325773847492533045754386270170546049083376637988741123880290239697320487211083694387097989190326554536180899269972435469604324119021693150684075417426570308872491826906455165929869614472257327847092232087395769283016257363021388763988039639387315054634329468443048522512864556256510822801720878207397398803646175049866231053144435766893292637609693470603650987531499324151257873368688664486691566079842024582303369619595047443234638030480912866644895955973433924337540684732879924547800421384371018982834528542637667357152544089264121441474487754592188105136518419356465283939319095617182414794059024574599721006087108939863793356629667395730835049046731426613152742078009014829063436284930334391573270757618554850219755259394614388774910145116570066532815506547680797503819213742932310629541024667880309995847980308979976993070577612987777356513002537110963919883690134869614808800484044019798556760070358505557911895799935526680829149959383462239825490406250101034003552683818602197169758013476842295426317716921823663205977157041861238226290087174282622569223521285220547940416997473405115092224411622428329325712343111528061759161551118477484787633994086815480409231046271558403670421460998512837727110906406752451346031410496480846718228178914187184125451898933046732833718669499988796751489693677313622479245591260767894365232290839184933558456352943842949835380262091499728121030855407706910886644006596793253413119145924863115081262769009224216481054580743086013479780402239382743362179365232130394214841110598331228988772875411999773303191690644256241860574955836316030216359144071006147534860628639183967990574843258779163096444697505573560080922450725296802245634609878194855290729074232888581945375238931408446453869477842169265903804203229205471197688492635873543939630820721375114514725559219845843340356960767007311186880990448062891160692053536448611565893056806808975881988297762258193936683437800316081358451164232630816515848101271318301586654799613223153613116346974366288045680354961310089663969511784889311142124530924076186121835068355940827360269452258506172322809034659848058338393203909640741152714179203236199742196118578262542342267264188072729462380328388497452507019640708861641928796998894516350672191272242684554385364620469079173713674648892483222626449775768273264978956402410180009806530477441575898620405008175811741707518418084371023190429776694027238152410377187106597481467258862524004967897990879427989546428970837561713047069694254902877053739326600558603610961130353558035438494520106022278239875793829720065350530278987127055832730690383718011887285580587408527768164667366254538848243301951077321008099390590725880646267764159675815668478317846885038404374080845560864002752563196709109555516424433770253242580974205431785666652595437883328503633659288948106592296484329410055173615406245332048552397721060749462294229757118740891953232338758611342567285499217369840917363624380480237529189266454995425431412696489590299141828766621253048738527063368809708618102910742220106377049850575551912007185993142535532516747884335937468911809957068600894882300342280169483304295480653635423439692228623263140645001826209914254673090478687801237963536365527808655946561171393557111854806177281147957611424335387846235211225265506592245631433204960141428908125551827798762626906502290432099528756933786578282500023491622709729734647688174579816422141293427596664447847829619296893146080122518171033229276490485468485538517455587921073968267080763154483376967668953698511361075736056184113705696251480106906881293616721759271948941745658934734636311921938197465185912012991499073179265607596509351932049437427808068500449783984945404494580969434126763034782760186214029081220528238243997922891221626838656966902393204175867356090070675098166242503621508936862129896199757819743269931733595871744299107083564051954813169295085231863386282175966693233405635953811723919435348758991272555521154656579086159246963782712332875054958946954216024246082078799393497942052523132705812633021575854533112565513169722557986685908456672398957797884078059279840988301924254094515894267940951797110147164194157594940118439951940840865567965023127824173422521488846312096726206617213513444845022127902227984880540281140319447488290178589099691565919049623400852761605054597408352360777133891740291716582419401870769610652528276632800685794084904040829525346841989886813177055574662988372765764421090464359942428091694958906491214415405721011396053570512148238103412963271215304727298183900964772140697181868063327476230491863343983744388075983161210055957810078931885326786652524838025187158346451278858537189016214723563854244101163911979325029553977516432051834117914092102525535012955098553738222018769903793210028551335350103451723968422395360309467518858753108200534594512112456749160164964584136594506131267940452879526484009521685027917104197656498010259895867028539206503648243694442481589993768355418166401766110247671750779357057941709308578205511882858005533755071496413305396658090464024577460424689960069389908670258530832741389986149454268578952639730913711653184496702513448584711795898025392032481415448394525074431025061687250337573616456600587194490109631237977050499802074681620867082709493730492189614093752862022184200165563165999143644823405086672842331140617082297857034180646221040072841527869465381219758235454519864689362017914793462666197425353863375225746230694587256859223642643707229626604186567177416163830803525868773384903223717337224471018780535839704904384928124093068398637282570819780019178368025246736095402469522955493828460327537442657215801494214943129351090136942174290126218538669243367777188841605892525374313312407899575160044237180060720498942821759660734705149377214183667094657736721483658369503356807445576468367649328488992527701791446154490897516839330268946315856656759492698655466344174139945874737426833022894328554340292560490193875206757793960183085143546723823419912555071721554314744127379800883556802516386993873990167862297768377850999801462802327432039006339247118772445411082331887639671787843030176824995872090791083466296990273254083044940791831140901457220355274444146889777872632605571334192665245612941506995430564071910576733958837857305724674290385411021007180485813824115595616731627563461945214328554164680264896605290205115482693549395969207267391991621612215619255525811454012611708848960170101178290128053225224713922539658350298791323062402125712540567868527692964921278563550881425296600193799345112635745858503457831682498573331639477329790828867680920148282726457318600346124226636678836208501284263487113961339506467864407878335137876234634896232012902401384210473122785479300669838018106498544910192599547026882705476175008399440897724037721579512671686537838248667691263180161539836767135137302820186431765803934293495495456052177352197635619362788849482185051217034481728034456099412276426637574487688852259382964031370783994855275501604146564185130025228469400648877971893531211143345080002992567598730241333542677959081030822050176185390388098829740877420427964123163438890598260200697791050902031128024300915033132431852778435773332008991427132862711486946611441663173605497311216849042991603144057282520629170716276733551919154337670802031966943454324382684913061951369931354459999131465499770746279237918455988516429973424759081034293811505542755172608849035707471917913933930087219389174776374236628052289475971011569559577829105677620378478411304768665353269832461088740155152788148614109863844995852264698124832550631775045775656695850059791076486615271781175880433380065106997148174088055716604983753184926886285856721742165241119618065524920418105289553154124932554181501803503492262226741110722057883366193778982252587449310594043056153797114980839148068052013939423382495680075956718810023686267259184358783600586103575859345461760030409304090801156709427778753892251082302196544273584582852370377749956420240205491094308837752358906014575772706540435729134322051677709760805214386260084097503980067992728628019398941153711183727221979342746828341332904748588530969242932216312001403871244245861074022883229725740006793851230525249493295588101084853201882156169979590135745621024906439840921675894913170633112205211218733670499842614929266512403795768785825065135983856807275233133896046822197720831816033426189692453965641111433190036442026570281457719977410459426424422131480838389375594545229215212142199262260375013316325758526444972728756707232660093924665282152013214946517644000169335293514193229821613587969504262208495582413617469813177817234248575128509424184422521132749445072106854769371996301604875457221176488986712888929720660337096910131636615156927377009072846593778554045710709163820385561636003689773824744929192469726438651971221840943049280098430459936371333806660485166741014104286501720228999878674361970535585419172840604167982376247451985689279584542673822708994928874175462331046751472219923699048650788493391941975840848540581246605620811488832774828523623735686482702119513464518473562208758838290597528065530278274446078707538081417846913677019909024648966947207965576639350179444863814655228674939625687769796930748892753286308441401192901675815070570820721039138671888050033787240946968458505285852623093887914916945508473802910831461342159604564054065518358468211703190840561812839399293296544948867077138217075131634760588475343541940623985862437227776758884466057908874936225801111923257028141955061337871833768460516156068041659574661856755111885428048492113241122648140628636615676114288858226269719597836404979559498472699700716211039543084046207232960279964276530010063747607640077108866353350586914585767286950556704647812034920301736205498875546448958469776370042248104247803429840998599970508719422939762478535453390927744257794331598777866987959217311913332340221260040628077170645311125210773783774404381306100054699181051147980490449862325220880828346599525188863327400971934493309215524664724814065390653750716646504671026352842481160014932779183570524756925520008096654992771295982514272550113541371264220586889209070317064678628665578258749866881126264343645099554455645571847031856998412398474802391084649745068441651599533006231602689160735017518238239544261227841342702633078373185401239648733316645796647367710880585567580576076283055847990295210767565213678446155167702421479338978342514199413429332228274828937850416485194712562769787234394753909014643072561614309038502404629019297370184647465034942151647999805398741179982958247109978336812577033855627696573076660907703327273111955395707461702157812591147438698600028564536665192257378732222781560053848382619392971613658929595527436219899420460458565830185335030370834314058929202914549327571593273302682961607984625058646542085860811287266073253911850663736327820303637107700933551814774450193925951431043337044761131472064160468693707713575746438742350824275248297780995832899328515846522550829688782845750722682174108531580818160511144582254447476529063164068900930896881590091027857893947417423366729312842877417154113665243087409542721140845143944311289363814579034314356079674057208601173869590932143454606553251762773703259833256810419384798683354878260471922652095085014551171286630683635657867995395832298378965279150778575179320209209583793036357528890548534608393222235591668701515198750629548480311928036274031775767427713566176787612912713877234156569979847073417512713376207662736584998570160876544767431555099463266991034360614755540070164355901255585306680306699981902842438972558513445996777953242334944701020463773886590473812420192642540771083931305807062325888434548246724446982193433900787717400650349607909981535977095952839338166331076673426056611658437843553512827422885549733353370822482936636785818202087705430246527080813419692474322616865827712941141064504427621117789979884389779181522423983462507343342791924721673652155249979423380544957315469126749050670781291465016586686185703597520038424945315543016017257296274429289154513395006868578095616592203246747779488590159263312488602288774810525237744559055196921350966526166012002515236525107574433045881508728519106657130911916631464379710964019400788673649549151440801348572738527105810069742139497805538247900970764684194948887965898513060519769707179926894743364590055103635947634959350935649395579352536288116358700156714932948878455471060222521931985303152506337382121483070939403064400615444838574913066321623550438646022747268441800282074091551074562528958375197580286560004091696027106157597250648213747479928589665311319618267974377247423545538901980918131372996782217507284497877024529401246478860675343200345771742272409340797751087564920346275448284906516254225456900256733741081226665838412609757070082101848755002948669570537832521680238924853794235804180806428434143195705181562234787225774764233901006180954612911880615251612910146470862570610148220065449463061329812445281956571737851547054670219000040536338683052537260690344045441952135273225397064585517725069623048284406714443462176034751174336561356865554786537599395356573307309729642291986627136656092294267116177984482309727408038354203515472480278840629254153900799300586384189319557264276281312652869875553435298930638671550333611654664859681407351297203325802594646331058322159778783978705609021686774661385745365077631697347580284842641226348295786436806134101392258347717938042363069409929522358788362056737228313101083458702477874474455739024019995191715190662747989928487955376886006329834311345395706967645634746073996235706325948689983751082742348685568030164158214485045458589066730388955756194937687712656351450501941452522175326710812198059104355979743918609118661147735617089605773203118506925614392347231676219069682169850457938855251494542794707072976057110686144018636831529280770863956744239236376297763485804680215407212650821033492599933981342479403149090162388106208318042873179408811104267351871071696658517600903364268736791541221649913008110439322344431711898686590687066367645319245614442150342306376179825083026586806567641119623563401718210577862254608057621450113870633946734544957117908202891797410235294946046554265732312492874641270679760092413021032357541554968256857017596936808800604980594114819781127529079748813333010388000713694544305522995018171196909069936017896489705657991535872063338493858033472525256725401029381249534393318799766635062845953939455824640456264174350761100737147301886072980386437802339529115397235929523711377906949791890458603290377066661557886044640648545038462040132389652074755328959589621237360524671037757963280131077964927688183948111843207725989581555865488871740874507172983806014001596631116756588329759625418560494801193551628949704861341487198503399375353190582597124799922278731869346639355977881954790420069924659336193959236618338538023324037237667771061714490486274188154853522428208253135756400965934435071064704702418683065992130185786384367651409776724545350671733317517177462181655613743594881170572971542612996995193689431475845830175820207323350291170178463214449425805737036410498044414231474593044060769792972575644759777902896034097031774619121548331566697535087804889239194160030405656112646615172675275342711232056150162460926328653423361179828652547441999129326558408972778744977706223869642576678664810006694691006825855086133194608846284055147788065709466398397864531930406983679556455388497579490576169587913997501204674802924057796559160360715763585274039227691659804727512340518350285399295760536310072284285668686741284182100748462600314811097865563819597039132548788469739773536512892822364218525087169865552305694479155544760995895719410903063276528159042785996527527526280044638777178050198510455715832130643208813531033238722365844775391260049864639355015625572310270087797412398702228716955544428504909359366072986738547372879443500935318700096546463783502086413713119928059391943822218374612491982454321159262257249409170722584197548502439426700266822121175491555244595738380770962033190882937306310749629812850766961141084795982750932740088416860224247482268146703426798522445939308123332210661734071803925107078396817040317985300410135985715591195599695517106085684998330683117589924410527172779872313028380594575543406539977581222802443223071189350096006367568480076267138731648140469431910769251787945941187349960029577446667783858809925942768449025803107750593969092560684837124195768465654339569733637563877165799146595774130896136271138594057752676081694803994223542230855091895419038400104731437737207341533132836184013465327400525428006444485229517575335828574633716521031662266716080774914343636016474402963095994775700218180448489963059210073501435465485688215110954656966194087134349690142551986931318973670514699090177804119230351681580773897460459804274137654745452134152817530407105272052980129605063655575998385830246890138068025289562825062508672544165673028173206342494198624427530719284305404437628703087322296072249818807196098249809329100319401854622900725399154772210565291494459548061984003964455719790908744563622215190706431983571960459123422701500237049645782853995099080188079852276230746239781097178324241530709827674818051048963570568721790873670434298294374675047433079159912305232797482737720651769130142060183937798422233482837930868731176261647350008679841385663540708096424290293292633532254909859125171799360788660541937486249449212837197775702712114979905560256829604281148952938056315764985520342932798412052581020078292211714626557138946232725297910528851479737690609356685897382318863719873356334774226666689708925641122581549261139170668574218527227181786953381091526745888376638784906578372413209289774471339960588768717554383895827250918927382593580277198930639872249611756014495273340230891280552256600877082103455470488997212971664276049351829637857317088165924688491084934982958512409990840233962969822406841247300480699601356848393776993572866371421718564676288038879221892846415867258939943550868329529986921556224418003103918129480966672149003853705079830900136156817717069441508109239029684850898706906187454217111560237578422640390044716700233048616041975846897780789291061580561828021285239815083180578921491490091599208119954528552472317633680275892407528159945444985185530965219929756783068336091363232120078585159056635441626348911286839160876145892346838366664722625771843438887959552304092071172157145546038277214268900328235445983166270991843432499127463878205548465650426173236565810453859008362696622507771631543029746049291288903588496034369594353372928248503040164115523869374824620117895229715156111385032811160204936078702774215555287734611432230881129356471630956249746066672509886173382731213768937338656112315013919579404021161759049587717860821719945939988962470487968763689564655475859855802499231776467922284236144841575749534288374993524809193333046700184357278628717163355278604816581341409352137367326520028401290818026078486749429654240460972551667170438200630638594474321189126979227184381728250867616083147370868683389158962329857248984617761440974282963796100295469866587050534829829352008414314107064979553416273785005092212510089598836059392209256618503179126206407806286090120748127246343890821316841691187562893170207281033355305599525486038052590771363820499087817704130738354377978778499364575729257549652638667117819666106289068377618456319031538112473088092357435397110923600440513588611283837039253445330022260237876729051242573463048621655681391992168239914889034988701630297977460409751351863340621355421890040888377884029317380568837011819444445758788153144383261529583660827047149176499259713108746745119024062376954977598715803987791785937656862880199095588754080359316375988605840288494489463022658935500351715665462060439004055178055837433175694118117240426014753979055909311475569139798753644993699310523416023262277263415912087856471727383722899138177986565502505539945228351940089031347585274687162502355944032343135416693350737963636923758962464180058909326489632441968967223648206130961966573812197696322424809466575515118841369490849290919310460613335510318755900529262085379617986439688976939901582727906040213166233117014300216297654846988140573272424107013306789266431746797980015283961043980869462525359838065108247007541445947242261199915739006886597524863797184169138412680137640554692212233268168709180678048912259389861502280283277012727961449081410537493919728718736531154692742328438558062957192138279480009705310835357898060383615358319733621347277276631679157142349265575237236908037769904893050703729042632703786581592911323760569688686363301492262614785192422597769743304850018312445744641727654529493444271394167861958115143662881236904943896772511223891274003699484110694670615040706751724324399415118035127903792444927945213200283454489553543961230401610339925488925054660763166141648016681468272041628658705512734611495221028101306969137131888144921470055191409257190484100260431163875244670597520823049360391871167468705176701445518294124238927808733415861703253441281792590237595514838685743676435189775818629171595619697066724155543589000047183622359672436657369175127636787680094243556935044508901515524547787384025369448298418802677386465878455865901513133544738639079931137643981914444345327614844640361079999069801542092022949836053304751344080715841140735892334914042850032531033948783391260964535492626186195138629774485701807209121399735390325457340424083465379017380243328862127444952545804063579583306504367687759179618477141543086940236991409418132585390543175480501315070223092031441055684694049453720983898573509002936555740850260322440423200201007249857218257468401486183628930829311212477805687924787014004999014617606920591752551519736511663645738963221887832054740832442736335503771644401938460302976190693633868992682475974993658675013995818486563625810156190119378032568645562116053017665936358453961920801590736746033364217479827392857736972976899571907293299102685076508688952211204091345657262383928333557854407700518509138820274000588379789114611538926249159252448747313231317283175744468114861109719273925318993409361170972643413715311205154791235534476587263453549360687829571457968401362689357090008257499841637822214525691581504062621100877665074471253774877111573844190761790363617735348945619807943465246678474106416591114345137589979223059905374044067810830711104136366119713117295802740916717832484127802295491123450920947375745688015355889469968916731308358365400329021129475242253739837601781510728302467156875559091475868019172376784535265779846635167627505256917915197438345884575662199670354578120737466369269951097759816139484603056418920278304251659882863628153764646702673373626691649729677890777007337550963505596331247047610145889137404089821220679784025780557040631224945768771648508081678704566890232265306988699802751175790640406628152854887425473680829137366236591728635229827400606210170870922536099897784507437348507461706423921554844760921071157434505385079693175358180951171986982478461352813949440727411847419182319580324427633349088356434836928916263922642328882812330584247332736253946874213631864875189561309828507106609859833818520539423365415165256956079262615202917855663214739211493235093082792630187534408017972545418319055210737091165738476512812081156354234660245354099696423458336357464603133212684612712183212206600571793032877128189045992330695800287067929599972388200088594089544479581247087231029466017460196909353273116640806970205693559456362781796221982938004377911989468003816103133693030747072484335200018861437160480268244930976965557597809533064749941262466065112069360765540617164386432032416998304121594685522136266753546030066142269301525443859296384930245761798847615849325198672081364595872165438679502062976032736431147707527852438221874407550263974713368780031804782072543579159794363467056722953029858775838984125025600075739342225321567996072666617010210307200395456912422975279138409262499092240931000742910853652327332590084071295503865805139363666900263091185644462308054709246053127627593658782030903433219796347903930564500956567501393116334613230057147384414298325567913039769913429989525065500923250212263347756619997611215284276681932591323105960479840031621791791691978960616596664474808411848198644787895716264155175843122705838709306123398043526653920007449037253973676674899161021010549334795849359276219431720567197454969308871240662869924379906196992427136412251091526475120693897690827315749905409364488645965567896468442454333156377191983211205408120793699543852289367864992688449947618083629182472141515468653580320290816181526389090690278066651421201231912977209549583785679933458169026730561821018715997631307122361440905568399982802875438091307039894298208497536244316973964807864029802288805501178985292710892536521072163602907204553497304652061579316327287648577956813593286597773751670914746649086055744951012767685084830275401480384967659194845865043491112549569007807085489557965568252683656779647737526826820261149408648304993223722976568707189223877388826641298943647105634186262917755397781269165485158115113599553305585908052266987488798631906716847063537363302216391549320924006890372377462671297739757413515629538790654855697432407082388093291696546009346424630802133186226904672165698931350806929252791255746436640740033928809715018337941562027543767929816559679504897313860797328602393309131164368788732456209761207032681475598510358097671516601959458356169227995380426476770600760053264057224678670269836549807961891770661367058362039266948728740320008567183203195700854385032527799301919600368339081639811661805632956134389817560768510185424595267493105516787581076992447440382889650031849947015551619156933448035363503800602694765052290462855582466644335512809901360696138544406429264280674374292477453163794543312285345386496100582437735392140623859755238308311324999087981297176602310640624453353911342380037856210785153346566123930227892587044361249261798416274078171851812691258248777443098228635227120505426533295902951843252436122009571754689978378771013577599566309335536934280891299279229260106043818869828052766812400321705959455653831089298061564929639433483870447428572478805098539105957227804605251592831750035199185438465552886830701739618763134746302731580704551833610688198626959388963383980047785811699501675914515607548474111714634443608943387325413249781234263024380503519663279328320805006831024463720038983815985825252599999000188009094267533951565696001487418050018326602127896762656223401489149312016171132443606970212395341951593929240884475043120048319306844495748356954939952901108472231479848928841035444216813677031981757061978877446679546421462980601603780277014092981369084009260718383081669216590504691003276678631343932724711616042206307868435512838704208960155221272115391055381506354012864143768807621480931858144800837773212276189165866762455406458501146285633837912413064865943508462636543904587532904874169169953385941234808850111348486355896324681584917492808195561174058435541547099231767426605889315106573610453306923779486810173904873638645084015680506795352603983248617810826715837209437106785689271013989460855890888585147626741859112267515772533129762885633246772294647150090255498512659708868691459262276576448400118709143000107548193282421845227229133894137505595028481355988631999395643969720432331509175664622356722663856784749546595608389110116959194321989453264666589624570263212383811559763582007614160353809389608421586607193396027330396289233560743088029638510519898105466828106973969388660628032800359836931942947984456437328956280523956293413788581529153680639129759321692278210935498812567383251591493756869753902585196508422840735726003398015204817787403984369295448894475596073672397664974409517637725064083655597329626865805991228819789966320961869045002408502278264119209521379767915914237641925203873873621779242027475490480442298609743949430039747842271519643657675694409462347956569042734858586836923156490236919790546185930660778909363257147786359539317382121415447953580501871739555291702938503713864119273987060945333661048623313414850379463197877085631054738119075202506713947263438028723568099540798990813866336613174138235906240925653611109196962294169988740574622796457828875322871724869742303340477709896805269005118303114930167611097936631796396571643017800707903581720332938515472039915395766548916659640743515914671604688259416049694122394962623573751489631097020872937861019077127311696838479871987181889042174888185734758457652790333216023447761549827211998814276805106798705878993961499498248250377369051923263822017511826002180700571122922852033892837968420309277473290674101475910061357559534057033732452356743612106002151423262249966093599032785975488224810723445024689889797992966422769823805143150310607685229223229392740934989549912741701268455244598723638344103595353484589053308151318903301363971408078404898674900856602934272003696552444848389022510217632331808738690875652526042605654248696810599645887501628851872609637687202899390186032479746408204337152169280146690524648225829331647282142288172655871732933579930797865508895598040482632250491607462279290561873139094748853832669602564473982396970335624993910250832469979241841368607585958841245641051543700232415968417821261362376964992912993634755325089172734319105564050521142576326965476441084940862591622615052860102387304347314982139195625810305185522231677992095562815300412547493771714055443878794391273496977971243148998653152279888240584258660434114933541535204352220813677814818421797292714772835470785868930966991433325932249990321808526094264802788732904314524079633753685963400571817781268401835141953876869462666723993694603738258666648517929168771812791290784704067585538950974467716270461779856992912848085375316728888165312245232259920324419736536700949051207208572260519239906604791457929090847044082620162643482074229429844323112717419890987984159422903424480231493624796255572928093074182894408103496854378758077949518122485436666700486052833236330852368713343364448502306991274399014128452657589701142400074749662746444992522732497898537837084543578653680787480961297523608387244351584452384719158191956118321406832464760050152634926887306704978613801108607609431092097582832177049742480657024304591084713774493095520237460418499291515994560204786170524018836228561049151312442909706909475411832379279229737799970163306757972712182133253021562373590855327600055769562083305531354852645736579417539292631215050004780787546036325628211493322190672060249319902424553974825662223763860098538445587339983883595717200481933213542721533848534810961565645895638494265591154493614833471894268270055159463475230378547311550123822276455224959951528585587057210846086071887100891052915399549469821733550008358607612959494986070979571276705433801782543081539986318230492424856178758603212725871543212729133488155004543450847207574989141891801468060947051686912145665968776926330935730903365172906982530650589796595209970142310235768007335457374265974252298351238487916450026068555501016772890501801673423248568165721966389512903039947832185857379435157472669877944526150973322427312518850779860387714944428694211762156068913143109907029549805354765579891822141095046089901333673464784555704197412428036305118553709179450764404850267265905191527677232654034571257861397684779751992065486020140627154444669124597654612999108498516205857865312894809129426003381330122263187825783725818085714595375982809657979854528928192933013870604926720095846297794792555603566368636960728540822173695758556197127093065988344222620732719153867463749652618451240304939391696015327510187267378774376153673467970861876965745210692697771484796710015995140344669100684559161811406444906786013373202247215450949872731592784839714630294527460375689919946754118562350041469218272850780470143404599360667255168542357883049691549241311211269750005737310501014137088956157962816026622073237253051730411888933539598460795491205616939996386097515309011157065451327798616077147842117773868490819706894347193784053636527981407166064486312995789897945802231135139210512729958525765975936132679177583554069941629513401838789305929565418419853247010157328562202579494099431359149187772454360518623588304642813238391624115596226381830766141355944509999976722839894500834885244743844002946094455536747377071878587364694852764989651019906489164731294253061220897242118827627735685351880800319817973616339096311097129858592111584538535097502320943291925939265907706909879627896942607460623734854369562261249516577485340588403806505037468866069453879813621364140394931103586131136251959026471261939624263629667673340519689176082681431858060702605310861051171475167578011356129459287537316734968018633928450687145106752401461368941738620897372626177019279398290454181026895081637639777984779287906017820784393995433864811037193533421685317517434105274110388535306896498819257457233213962404436412396401657668215395859546272302988400446765065717618091489121006592209828777764481287872374607735975252109206662878064903408097660290892223895886830649718646987864669410824091963651298350875963629954510054499688650839438631214390295378566521036635323904936339302840123382107008632531698235743584194510153462341250511608066797819406106494601176067362814435637819443901253345869741897432428649152847117349369851014299734022813249772019527211984439754128235254232865329636548188539147551034067165308931965025476959665000477621277517758185628499995644999543150893931362990210061823245747724168353816932301023076880416205818945700931970518797626886051007066328803919203607002057249824789247491420968204266546229887127177237115774849134212756858290094191584805112098558646102729591037088831498295422882059257472355083074824490073196426812018093091701619038494570314899753182866288420386631035322360154475301522750087022990269871104885245456523561652407431049860987489497962306529372242810228985341453481875189013459979017208658027730595891641637549624769653404185161722037128638416305845396838396519934973468232128240784811355690465690939247792983733673948632442675606307415137802294278291019261068413028842743456464874016736950361211831052013520372539053134773833411777887308356952987404644244883897178618984765014324108187508356522855617247346552132869430528839279819205053118399502804526352167122464679019889727690590131712407297389977963366550777536360653958824110291534151292359663396886704222696420906311415488241650838349315727367258619816924966242416490319316695853973243200238988505032250525020864599074813143175810413456141277873322063145838479262403293521134305887378984671924570361675968450961310092537679398346102784246042205615871724920955596426873146975035723688563975035459495318115074634756516307646274673589806549762103272463618036735064473906630784295292296248231741383991234986021574750666064107178777039016684680720972314462591644548262812720153614484028044496679245578731219581196598297367183168634881947375490894588477603939681952286597258740099550732391512443372046432353618295934203891495388652452857244123757006406978014116921530229300578712566625058320417095440444280373348841696174823449148601327013372731512819048934551919574302270636534626448354965405275054201439917422159786946521394322958271016743249500360877665742047246801132120725345242931795099923099738521679919186855481096953251680170803957742683038377964044557777640912672991391165015452373986419033612705128937306226768945607526036673282018481778644480099519024860425397609467187037596716439769844782479737361436030775874507234027629314366780807329204369033912698132538342302927271430270383541167752709283340506265491423521583865395214526003168567514319969665045624410494044126689273098105828372139295122370626036983448850417636650369053611910972666981189969669276222876567758549824823887981550957245535162105342463277045833112637838448388276961059977290267611321035741708533631533499605796432230985910679246226511303631028886541895117627563870518364889500082180090265999622820351671633009774405624541659247061399024004559146028018429355237909977652347608140213404812829293173125315018012324772626404538657239714065242691775299895121124214490466259896134080540277601585111492052129513041546133279634657339247816551352781776213006619798726709093429607198435560186049390933117789856997671131419784296006148391536233497493529537717735670754594152206006766660550858179646421805750262393934420178375999406104650915507473119733697042359201337159855541141225796674302477610037344411090343325864365399248902471296414998631183890934514540627107142427880099947504552333962727694865477310249256754738998778778861647113857389728544093341531036359527914616825665082177083039283086155679072942080851807707124013323981479979604253683198759496522033804527170441269817554108143631363520529576922778465063080019926582375403137789467257438797741977566190563269450614413662769499093319027774594862831407817312169970400487875713218954634141449355302905419705881169448903746264158018023315221026894337461161081424731496884406697679765920692753194104581620239449933940093359895010389993343867621068279089597049775872805399460213596144104414210370229110232886529825442248016194619922316433939902935148126810121284624324797136574975047935791937518455955736996517715836375219742338744022856237727887341219764161755459789940292016159748040808101344663453925960417820474172572248766076018394520264848051913728893090811024021694668114466177137524081073179476615143144776847417499343871599412420062942746685182226452825097353246759850865139550033489841187456205614178183515877433146781833028193383952837000588636850562311720663421736935067136602661359891263652076762396310447121510340727156184466180099257342861669774901375063702412929842096395007841566672687784450424841705722691978922142736357402865454990777152852133666122948087026569297593106957693447430944621918716986181471817488238795111599557782039595814394373865869209392184132035967103272240050139549867279840645157211883599652866848236793523243125005045074936941032325842291139862855462729371062743707558807852970954712313704199773833833630461619785318092267776319109886731187087661831984754179460470294425372826962881801116104860149314525897839828169776204343351865684118413874547141137830133671231010094367024179558534631770624719912813561280517174046093628619365885563556844559595139646689759288296192052194904240564942189049072636585733372305473321964230438759322394550386042964304911833997832472247465727980815462153071751524859140350351057163218327735072708968898092499445521142514411867837517160748201096876942964051218260736213422838944224009128816907278020773196503136247638024578772245657420774680496860943950325687562183356983645727194890584907970731098607060384206177147447000208525706219989398160892107147788184811006720345905155379220244079321705892486375190979627447257211874368034639400370440271567318834203256638327673100159627828546972551557840797952741787467573589373205003054940830427813161658033376257223403719906054707939225694711369195874334920720533677993873693733628821051955178434687443943989430607519042746071034766986760567228010015100124082388529360483041274845398390912970661482640726878973920645223658154130684595549843298233032827740952861172538407786676965473104975912169928623869615220872434689359478286726925226273010893895794157502330286756332724901085519638180090577873623933083476863642403204685856934654774800085620471483811204232890775612334151713095767737251182574783209668066417506570344702758449264751680874318839996140690286623954445882202803187985191982408027028588564245451970873021875613173760043030978345835982315833809340633771585964885829266410648889541994904560837631862230496754388196329830699073810423369814593924569677721736729827922541457052471117338966417822756031175520664400029585608067908942031913500623508743514790203391648852758333766986293663206313764187658116607317742665671103508218059780346727238754016814556727123014234122426788310354054254735899390158063039788655029455375805050252421439847283659263944788067041653036972072815009411049359054950682271536669225616726340619650080318625431919254609747434162197454664300223442459247682839825681392137498217986102888285629792661279740372123292405423874791534334759893571726446939552242009644700944789417727212672555928226798376640537453890917122057136505322935713262962664649178079407085358154741963912252159526663580762950633560613842689458869096173817219387394557196551618234886889349632457590344243150704275613795188528560510393846291426622477557906265071400206253124825407203343108486771085626597169518168432151900863615183095709773113781746473623036194071404947198647104339849053536602679162531320702950423972474541129267780647281355007277097539722313896604606781342131166647568077130866661726755383543880702130917496581388414258085661526947918555116316170550360791259438554376400153662212904938543108401388326339903049792706271938138673867596486366029615927518507772593852578495902034111756433022619877260107125706856860190765978732819124708594175582644461235616309410347454010372148039069953495877493752089704405670462872302451750491735302269813791646946951543941139672640151268759563711983915009682751084267492923172603511669466916647117604183599386235948943091376849310403335964309238576772489565114926578787348424868817162788854965269907486303806099880283918585861063429692091444090856721058335916749913225680097025992371370903766790707793332952720656972406712305784249124811083835965666573773130842921221850967614500736622684851135168389887873984848601102389785886943357900247545306083207574289657178081909530947607769063547498060626896462243453749810743367668242601271068186886607059155141079725112341980243664149448889305015963130947401007733085872040290222723909512289269993231733612295998657841301872898989843016627663997284936930793253738194456902850419449496972897091057978848124583732848361098201220748682413794957255304641638200227196145999282203713038618098650677136534600828171177413937988532688963629142024713101057819281303640099796730989982195823336481817797453666905256453320541626748640515239358929051312751445893055058013131073097605233565658315751231519978991644519711028919589740877900493224935649322159294459472492345832742937594207303870891050158489200416564744432126462183607410231175411378736649706927256015623960436856322032064963557935272456295404835621504761521733595477683265217911504757842388384586316007456772967571463466693295003621756751608228984865702749867048818181304264598885238510523069288045490841047386943888872334591208316723687598261711993499338832008036062686859320559864126454565253435589234572366267541839545763230662457891564082717135150393219540161081770766618305315108163946486915828214235036400643193762019543046762369118721647455522599801815357704329864165380283294553526485097930474527791370825012868042662595304643220230304070212827260541177170534280592897370383501382543784888896767756837920761561933926806197038149139168197285694467079701990778104056718712058652168169989917457172280132145956647776017257218281223426749388133790971799228585914586276698485877873508918500584712939066302473376423284368659190340476211112946785702783807046090384104018811545981284561374499989169742840892005281518225568488676261398235262567571350372039440371661759509060347579099118869539561012889239200943621104179615585506680833033997725661540383203581546560975531175872781633564398763683638520391710355962293571865824614235399965780301177688388655048171460749006990361601928391362608530532181597985036125309507836396388148333183544204203095577285789763319612723365643322735638552649949244596771738619538212781692538586426698752536927269530815203135527023683059865310867192876843657884933550792215088644260806034541979402844382917558589358747262993090225703483780626441806048039306424217845714301915574250121938686876040700022145956163835642562235248322965797462798289844755374075041002159144758031459621967743237171820187819999487475065086927106222360374797173964266750930745665809590475843192934977536516701813998408770136934760755859942283450999039211480103938573220434821389121292460044654766126929899502535842811550164414214913488737679592144688096050245418151427155365722852387459746716934617146644009964946244642648921794512214166022062564538661216505611510780395479190858000528552091912803403950079738318313123207005579680332666391797103604086412835801887014449630573438237786678777618644421110645433879644793832531320967344567671581260447561533450175764652882613595553588807665645009537192738331635537429820753697391371066369737422703469380780497450749727178784935750515695112363316612897923705087280616965126408299544866666521308516897293244900475019317851387709798941885471360341502454070069046772101616783109125243754601938420045850682160503976259641088051052342588611799159779641203959729136755473454355555696915809078900449518945261650701699709118351947136868745040468820982544202368024577375442149619339016791656414978149547026213770308622322977866431362355647834766408860384903519116806003207800909459034754205219746638768213821669826514546497457092698721290379197965840060730880247654943499360381654458198482372590316923019666881967984283906226424860460401753010433975730001512021999678657860499758208621476687963497841853967400816758585399647144864564184494232396945274148004471541830203787187451985475373743606195142948967380036860659623657334811281504944909544534700499085158636716590567850636437882973947254146955169766371058791857039001778047132324935542219908603411625881972350949052496055972653064332639011420451266837171398658814447011735465761229849235560938333061175964936782624988207630110579376561184644059775818147756371120695199048893313270992354679310951993528300437368594612134612596072483175379366022034358719871775047883442795243133429540734418634148619996947377418191510174548716295801658557843971415504838749584152873361417938162336596432419470878240852810938225799441342157985034983660996186913338632015171677350535188385877364567443554975506424008455143070613773027596465302607840090146361193381300726450466637733986275141378723769958425828586074655615849283802901777770420303549027998522889264007013639839066181122662479995619502039198931467317307930625437813124993875393590879246000730236801277131772127716910415612512235544753761985793099506456968260446813615250926085816337399427373243582142259604916791694131753815448662620677887104854411710841855333076777254642640833180384814094694996573097004067420560250376128748496999879593308337355835775158548071328021904354942791141682453782927721042898767957657935845490675261281345876551486367088124919145085492440934695535068162558254141527958358819675524637885366427459690151600180296363290000987681927003201194971548408244453024767788037698930936738507569695844552836994321680185207549507498942104196350982698069123836283548857145343449269411477302067057950373293108002125291427997581497540803939163864121082799837344599596499327406172384604243729970491116179026205257739233770021484667402246400860260157816518540774817813565470486328019018290617989600591483811650766106389902579116219406710579371723666066308978884325453170549683602608838406629436881574287674469074296062832877331551860320027859290398435050977163214427020328188713773628513515799467230750606095513281462953853713321344718796663252152278795601422600114229388378074123076555659103685358909638734931059004343113038677339114500851824416373512711035956100923116210313851348683162137908042727812687373817286970977833425375765784440824805911801761703302296592804655414375888942294329799643586293873012255838232500184932382691230170896941575656679812276612689244919443132192500771538706777775413157174603426230941651206909966777530700697551336160224999680708888447000355644810525901367261755290208387175950140914409241598768228360137831506217555109490893849439671200897083477575004684752566969741649536457111826101625145082818758990477016517627021886315937745154873504605942964067410250394141085403399013728745420639748314876372276322263466491564869407277766215678510489177996700399444777730964032601638335763511169989040734375551209209317123318515007394027987570977189866748554417487018442935635540713450155118162401539802867133339058156248837266150668213439851848735976566438758533870789872362071750389663083479184040300005862830851336234570698377766549311783088953073065448587334446077405448616359686512376656923843392663561195248295013736120729796256960416047611957332467946241340162916654008650289765250035021471672855070327994685857381150336311809963449947380445089072192743935306592523298493255534098207592795641822238046332522583255826691373362879454337187550917016847122537429800826450152512897048028272402302164995453960232293774916356664040985751004100988734089452584071245293704939241614398344519458862014725080858265665321989668693620850993368792679807663611416201096645871203039903587625701281120175887818455913193546371264291301865411712437358673225849075299957518572601131614853332440734803718018173012184519346090780925740636872782678399906981425367668715907468680082971223124298851629536786093083194232781257784310601188369155559439355991848030291240515636369017073635528021514082215307175063228464220618416922290280229636217217402417052180699138025225872373145425261185402841129899322712503076628469156806455806453822816326272507380267839852050022324590823652981943693371494013243550838942975934100630994326185273883410380140076090070701811414173113668171805878332847335751282647278912800437339599891475347397967564754268481270963032956150788107168168039468120364268890706903000661319822903228135323647543754022915572563891430803599731590795918875372772317437393216695601680417025309220351468931300498263061300845075651548783400964853277325146353847981313589246993899511420261424073541127339060048233216811141655330256368411800383036375998016284931362490734608402357283784473823215399294909273507114168824670733077847340718817999407545177801186574151269277942902698986415041171400380583588453180194339748346203642070083830189945695748951873770920657347494162096188057869595551846144214862959912808335637951957306087940582787765631896088307365497349971019218603226838863101617570863892618064832867156118187812755657071305223636357944477973130539250073236595903329146686081995661362995379257846806872194842110547320011595400467110852048201115985081633284892339405697819788626873133258213319059129935359008019852144971127236817226941200645950346582565166921602913481358013140483787182120699698350249523923244799788474389138453347221529206176949583263536687426517184550016376135352486595768523999262907562541906335142524083448006481994845264421453100137971126350172027103243138260733079846207246665891783135238561207897744223981866457257149646622487557622763811529259992888244777397475247193157738771364602548010566843532508417128515593436199265177329179057620373602561894557240063708072467955084164395728448505059263156637442217872914972069991047916071249833758187311702589589292497812728527513914624623347942218623233595224219192910012396632789324814282568317114342742892750178919903970415102029260603520745796223145938114941629630744666189835783789656046789600532230713987388215738023909719922558362337385164316489657695450964643784546179412037515698400301627779132613954727867677519477178370645639037227642811213828764845086552991195613944597327666947483291148843986338970005535781378650305815592442926515748505881250446637800709222481359114408235831967972544826464398501741260472932208870332593114346521254958192798451166816974481030025227896038522764671788546005368707934654384465715078663338680755110190848785578383169545938781493883038877416907981442219675132330998488701576383103340594719821759793735896502019974680934689895398372266765973247122365488619846317914882192383030410613323283602192481816674710263621497735909644797031156009214742047698247925056708245954186650511277517678961336544804047075917356289979215830889727399467145191531824824018358689980494924867659896255374330991857496815984835685173419600458445273190638758823228337938810953939424154368136655251239844840114987926338794595990789265122541646239946829907468450557126740353163870981174495267584149020118151687898690993018778032374772226803941990873565958888402508003866924193526686280690350831311172550657454059830367581431774100867189425019173196808274939062994695336330766055610241866018132317045227600191489947903618427841179606087355469892777352755907695618612266093553298746470152822857777216186456995504876140356516507712700949623811620940358177660890745425487672663964633914138462051433698222157290248738522060992789581473326464546175399673422922460894251241900935948337039204516270160525856584216713093594284877793459316968933824387326954375361743443872880449428342312526444503796376248867544603516491551648648291065782689276234064614535554090424879967086184941994094837232983354103348421680119906463496236370910140889014679568784323719426803120413543645084936928157449346272641031748680247047345763131512124096799413906620384172215645087219886713803802899731221199574869377427524706611704325687483785833143445448135274846371599111324220736388275553165242729875333515587787296757978497714098521085621755371691972298019598009470708181199601996291533118687892720930398463454897321245828130033762618440567859887271388908163775927867017991488556502992809749555191564904802676679171091512372080851587878243417650038066076668407382268937853437128327397730061096298229421904426886218547243514962885199480119748184056857599054534303971314615292977203941185185213608045168314583949687664288931519547841768414957180794252907367223909707513759398800410465394960851203259039399956895686948927024713751473437248570591663350316767696445569361179817713952805510104310575595263476254471990477267327325438022628910556133833044269769655232971051344149299259912978551464691012675475216883905318288068996550868987771588426631463923716817731707396745050344160818049255173698809319515557511191120967262220484795069423211082258270310218252646873222749464228730884934143877648080947517633255765381736637942155393891011544357355401613595331454146154041365988468153175001616392622403825051321304312931040057497916867770207595329779415586489778700877907619737446327660529492588913944925318634146531800847715084015185533546272194096143401656537292540518399986802489408923568321083565103971708083793071968033007380394089697450185614613671523459575016837798637652483025939424543463089056007080922297954309125272912514767134961784075394348677920816157168833796852893787750238389477181876228973185846030213906111899204256186885889517916659313472255575353225193798384644268993789507911745737558392043451478593653514868926922437169184312410795464432965730051856760178844954115875353009613631052785632033092075055344348246455762082766161558768482880614986088805907865789709590583789223991200247401780895517107154996489315435857306059003839954014676119312209292459638833462774423060257302354226594960878038248862919598604960170734086045916276937854931638657032661353633763323688948668343958922956803149449249426416963395431353440485275398545396316418879614526968555250483686584555247603367221826013086448794491066264558021700106417064057334518692988636236763821438274194814470167858299901112927668828888585369334584620331152652411116726867429535160866840054622082420658465849163178988844097990396675419483844594526909871756413839951788067602778715730506696068308018963909876260231119634049478832710129301708717096800999469513336468715415690008901475191276329011871986986852919121016970348273968376569699979146645200285590917990802807028084159119935319967366699685627329610069265760082325093653368992161628201181770247307342041479466880982638673696963644065000882739855305349592965125833950935351431602522948048529887627755488291141813914912437281199725556889384134311392604308965424319212998075669418382668880198466626001563560648932807432059473682852204723244257713839626098826205219077906102415634132756630944065843782992114233912034572848035308498680103882254819012148664666025475079362477452122569692218768586125056455158706249244966474139876753116678299701929838789835415934964083182175444528190577502441443578840038146733697443506851316222079726213541565824250575864372766581898254161183478014431798122567036285134008316690188360742446818613899977275373943120884884668864665378931951107558673604751039475161350190898547667952594564846765318877405577514334071601313814782142855182223399350101653946102657392049513460454673501533359556946416103076313377084617657192802955688346428663193824042244080626384064432678782156750688550506278856469090755203816941847285804434663781998745000936194708227897167385150219244049332846550473573206101182222627785573009687473215216732828270987935403427762418918263672263580881426629588215111154625207341718892270443843865491636669312442931079143523668014104737214987727085945982560206800328914524180354434412695930471765047169844198344358213313110417545556116042253801868915171368746563687195422185317457513967401747363899316731896290758417194675226985894404281124534152374222325023859735807851843388990010158122573297977529956157580142376351559620655890417129382795050028394918185535100667396493470108142728490457129341190046814243241846085352861264438794127611413115041324150834355516811414302356924258531309687032720955710029677885666053128879196940305478628921113104115248197909010898230907318774795927322763221751410042870814033195893303935729163457399514855945591480732451854539511129333745912736906193271782354624506981427651706250844516119795271456071978054523743234290997941968742025987049202284200686841311960955477496747700377965059493811635589517376076273953688979080556461889678075385994987201135329450154950572130658734793144744358681193358172908373353485499529088916066731421238772662370357685808493195089763749019046838023654303249744667034085672302923660089821842235977495264890444700257907092821499549967495121014956113119714813192181733798408031353976422868443476465988186581169054911471327499792207980895221833680868054643309788810804565726200674327438399411760561539959713937515615433433250276319592976571278269132474817739767951293178936351054084386555431299731640183877765060538395341937587392812083716497305596680912842563509573618818639843646456826162841923589254623586584892099022430074955735122772675749864644733898957327530603461995787682727026450298780309137249245318164377099488076049220738727789504495907382982300550989465628581581537886739170600391038533456039993793093974898962913883198806245541633816158712272919520717386875714562185021249806591323024464080939023533611127492688447373657898613615168209055860146500089353168256613716352793284691362027379764175131091509402135214719536547030634811947628701649517041440161098097889508009053174376236479847542548185389567106319234582069091675833692903604930258025268579513614649910219304682967411716219980518547932241783260273060876719486939351983906120632489657996534042590435986425958569279285157251268058472808722697448400558903962083646548031321164231236915058196591893850141722807933366646218073805266568061443192416593025552724547686816086040614120918845620760624960546038596954431386837328224773780040221500318879329723619962451076852217307494671826775724853927419829825184694166310491301467856102597848839200933344391445472232541170095056319905132261894058552754762932013276129681352226575975256256035684361046762164674917976318298226604535508038753812784253980208106302577543051075775193973127264001048101334521483550147909495717836148933562157069491098361594166651684714442228498097046926181759801466355961644350354728862793763287781955859412793854270121611017772542706992238509185821689405976448706880879409203726638024916756432177188487900545527962684890069750504652832070424253792954375871274884076155713009543348946011949319377564109987266654902469281913640243320912160548641135795454038494546238205179216192560769723750080059693156144369053527764226599279175763007495374630554310441761108837086307763341248766692689635897381354555805998177411781682246972403684484718333919615062170974120416838918163782016167295009953510836760119576510167918673427658137802411735504645009475884000985116348290389995908632433258721571786502341188346418279731820521839211552478496228186235988172236081455931030746210763665801453123483458079841480454695896009788742843782540500641654862075738860196196455796313918818011165689587303102331333641373179842378032619801484604306936758312131340017808033739765480234527377257189193994871795931545454386636895065235285244744264251834399146550013545576445963628802123041756506582185917708344717799223770861873052113569184953479135758126330860785135733339463456880586863385096355619803076969311185914811273309340739361615103240106517471300308729066880679767161902988501995363665699591211964924134608679400997447085856041689397255922427304679642429068574035034841106475905500256916693270524135676444970147668125710125395721039707154486548952801997701615792802820658955310600068420965309690706895265754800347691201432136831018586352089693541649090000425526302004034102140257682920639274184129272164082270086934171701408000463034197324019083314426628286848116502761913610416296758979058686433823345557988056502240125640273996026556305234116023977345466961084323518450710104429216420740251241399832773230659435019044457888890683440680132502583408355127040050203007495034847891026011878311717829320152998700360664429861624158194864955012260317676415500472707678125384852050263588950484444850051482873398896530457436264731345931672629945504522934310884189261725740035842272956890112636004588857367660171027654033875118884183352335420049386440814072059680778510441798979148786979003198202483118815681507623094468023842441238284297253714241692226128711099746706962598871414096774248373780364815414189137022498436774602037437944878918806509723663565324163788419430866676926615766204032499642475702369362309805676543608306268341502689728290514751378372204219644600211670469022093873358491075967728392861640756335783507583807417113603449155848744236441595754471690868689500030304562749636110852846552269910128535392669054945961426363111229903410258446647427273882353970265484949676244589044586303393590016400359255535632180576941595886065232043185727580516765174030898838260404983620298447684325256608524022595015889211164395749256332442936112012287390093567359437299341430265015238631908222594381139686152365947293515063236207569988216724586149450956305622982191616852794025192424722024754919296158478329486791956539231702922456353425658630824292433325682808075401241419406006253770554750309488312216374339651956438595418022242490648323031422174168260183017190706594403960047948484968425510348354023829010949684414472447841603936948959402227282816391063800777415172039101152651009617892341562896159590128680311704682220070687116384969535750827919573679578527805853604621960811851581461153782963775924682878734597313338010640802331783463492714243420628094064165365589534107451589351864538994340322849030646931697053478011000278102814662480353939283760662770300874476477142964563871184822487746313670934874274454888178770313462440925941334852419647380531032373901906619627511989296661661882710418454406612969488052652098905773083807759248770312704380456982849290996447833071059848190511819493269414074964732464435208566877875676691985169612596181552962004944953233416133425255905378687776750535643083894449814020581741880713551195544941410899854628671897910649371368012302898879240467857007742143955528052192317747184257235237005753247930566075278160895778350914945698933155358210112352122767114478326686541333234663695171185413771802160681191558844861522053452517968526412386389365046095322023415567850582624971361766193337861547738830715041792514259617066538793048254552315350546313962837292519167250157957722003557591101610607121745590028851869155909718816052037134378473497387792128112338912503621048895874478494292055207173517887146831303132050050962751680014354199689520915783236252159593031210859542574477731629754657598886540117357385049731844362103285760720430553679056853474343440821679163027598008544682386574517873344123958737356003662170546184426365509506174597410989641066789359958652380171772735968610182334650832628822515174413818618286688189915193888672028864918672639538672877561961368092819643414638244960779902295820109011075710998018700534743997319316427110291364509622027507546082737538882239878301301060125491532684105876552764960603443199172584954793122216543747525334853735404112760355791319287266156251399314182809358096547687329249890733422186908755854225859878952629910878782091333809463937693120537517157748354400131319471394366855919897483297163998072099426963068246730477734413464590946262955451516877704212306967004925641862670808138739497309100248341300134479255438994518766796801000127712856191911376742262064080629309099909946210319799293285702891579264037896754020216948944231059448395428962531701672307037168901351555171654805183495808047464143247067753722954648474035013316059531676040485397648103729806179072927576307893677229660830174467094069179267664429392785791901779945299768017092085441161313291558064917226281934132678895005323742026986871637984679539421113392683911505219983449539814248908018075342935701924517082511077616848993968031122068698683543198105908183565718741193126422048248580367906408808872197458956742173700438793967891149612132613314938309308274872880650926166623983344819043034359636976987340714132647018676761635038306864558001434953849256585122048753060853618741003437718047407178346972454029269559040072221511997751791413558962777064113408771648362557015406134892725147317978446764520926541290750265376349395355875985421142849656392107491017592751051967272079942396983176047605575625565518317159333981326366283169215775967129719240430685940953150879053219561045058169706369058889145184321723272647221641639526078975540658018991964840642292419491130953637531812954614504688196928680147796696922030271165552665158371638764138859457549189087006298549926733522362458916278988697771635569702073910489081156843615286855658726832880780252493262256404444180645242932593158457282078730528092314466767829703533334083172936938806688466752989949773238503204913675717723642646408519682369415493366174939158920977860830304577252877028628395429613789093386228683082159897260155940196445491696383698798839382159447604013425325353394190232181172022195317805954899589528405829319113125816960051090972482323261039885444939782815745546520434035061480442712708620612062260475723882927554192373830481506267053409917960728089158848135538361147096006651263605530894390863885210530156154850371074694323134459426066854288499682985774580409339592245172109624279157074624128611837819761772525781878199826895986838936921432753041389988141265891112196026778155773432370222190363900902877349524736183029900514687442746011459729185039926254608381632302478236648304092637143871044536257519820335490306827814281406183151170886026855481842168814050297408310450262764405201753015016596628651500453947166624275318262105463987563464735929195087080108148635698388197202573752415247340509491243615447015322869455331875365651800828345252707896198602715073205648886723911027172932878389010807270744778781793094090869480578740841676157810883219587394380056200215520151020946507814179334889963217442897404975320570943549700312555909688707729022772880287670760073630588721738188998777075398768775830456077978757909597492547434868653381613468857249917571712252224961413757241468126544079516655943801395620916446279603505651073347946784096717788329038396585604782750889555217052872809024062074678711131790993437014832284221100281305653325844478882245964967968810642938658521952961115248642184726075417536112143584900667012282654489281581767218695056584338408082538603709050851905974057315617027709999848240023283692478964603698980352317578724937007200203596321188550750831157637041641698645009332401554619526460637781863804107830021554803021328597280036369354689732043753058453327587776426618193675971738856776170546304032061344764176236315279412006611658255085921927690165900464254879014215826954655156715036584067572292585293860728084220353303518335400547127183152601180728737563440287841958453324949311489274613361776514447397499699157745406163326818010439102816305756384347727661007964399652124446580248213748075489382360463992164354566373443941226021201873336883338163953304866867942603168540136820919173191958007077707428926911906666326409213214272567993662812263847310701278861629072791770253107191952255391915827663157170882439341427121361825548434668653127310575542227307740613209302546213588905008392211701006017348219352861224434632929484106570315167729176498953043008462092278609743226678822696223004690000728278417739955381183985973356935874872098883308778768502941297161791368096373618073950675121817212920661462376011043004594412891094002068062984443488865719809707313441207420168108087561814358508266171872281543637056821823410850268379534867345278490204909924435261497698471146059725320366458294522457493861253497742858753152025386798681170245436228291547469315528222449761148334925636823663342190901711339556305908312551329552321023761251452999432833096824362395085077793671806840661325670965751264575750964025739615748020996578643097032870394100061477231413126358370048573520015349905085624244837093344913311104669398824543790999306390210394795083639881747207648299718475935079043254261345306874640965039574963208355761725186683571002585943813365943256995788687104559227440966899259546265139129813111613250167279856631442344735620610367138452134877564935684680560244428610758128417030782042886249593047146239059250113252316088412151349525665669672969491653325791115885153204024780499995310285718279070071703169898844295577559948285052824104339305454410158854845773578067077232037084683554551661206856115271098518030326904435159951181102336380672260548371720070050389039919682501090194783046520790086601372423009088797535597727334447688943068909356411666804862864706366468561187956213164312061762007783427469073060594764324178297435129408971128571604061105482357496562902626123055574401030769286359883866562735878202115909677411975020033867716601834922010001338461019301866695802071622385961689063208453451637544306519943512851325892011560845296399239672108717395898499532216525058883751407161656688759098703024367385668610062579154578818154112874402505328273223084718872716666943263463137870934892708469114682180509239318752360331885348041245187762111362729758308378952335230733395469544099802661320348442752658003746242155248076274344499093251859089960668011609307409593099243713811261349828239519358828860355435237460989771624800990960681602092058011979613490684627967736743856169889959628491334679996034009145804445233324474516198717342626006912020850140584963597328578499174195714057113592523526592742035618733756231312286174809085546906319569486653225529470807908176391653765076673109585659077584161962925696950735606213928534940892307538947420375859876890224282492181335151967201075726314039401956701221907334047122569462143623296466016289312028307686445372997179461345939121662216613652146891864479389156318500625024680086886863814771764403873272017046088382495090799003319587883525400986693316308074425057289921612423743431990002820288718546711066392722665694637041391424822478924974168810080373470452746685002175039758931432205826559774096649820797858889437758802133184281836882778621311271961208487192715068996628269263818423462138868488814139211568668491557289733338471722719067886445867273273438445515794950499564103942533442361266811120281179053636646843733939575486313841182869678285608616410433923921524640572660665489461285654383585477417394878653715046949353165906396594988686306957430739665507874668893617273576676939998568517102001114418345873035713242299667038478252731410309714837995762126448830094149350600642002600093301196159288096798190575113285602360735423320046045353272835371602949886624412848101147867075862829444461768451243199745938764960148049697526884887441437237645206641362062743547973935222954010589441175499346272075740102331935544277952493242151980087639128885931647454199796506114688746868423932464537355440395103501270167819671740035165192613936937254460991018236668034735115250953377672264680537119056105127406070915154709455824076055968147448027344866173545377414140289368141079918501112158491965678280490817274006754902423022372603978575985097773602003472248207470880112248191009141456536496638212305500184384043006575142835880429033266740893590363986607656100243750190762173903538272248841499786947081332812342281512674595255827401543742061436152962611536306901605634256637115035455330246903174084830592926526866551450739024372437700825974088003401911352411166465788038429752641736774354862401619015534398253098217280250702914855394512791765143240640814291328788841329939168849447398707908626181836813731734942099938248921189447095752744204422114046949265785232474046342237671065481242267550869595189913459517343430064625199222499759144554424267669137942503038130130622505297002963982862817477120346537581216749187012737134785137069586603709359586185136580916062962280217355319046089743179075612023040661675440392910155710814178702813642533552719871129906351999577040959960271851308078653443955497027861252225210107307130594170054905110207875177154898955902310040622018734047116379896005744947276449812110628486479692151120791626262980664749531373745354766623064908062970194287970483347594430956608776674988067995139345425500791680170763281554702263463306855412254065926820765821406327340683780895267609275998965467273425341064546553693137964888478049370644803096210476843429418988530985984224589374518841489116771207061654393431263599426205622977939266279892670375358841870555842233197048094648657109244229674194703511587033316890756581878448060636973148353789071284271976159718764763290595091946728809157849525969670757355598825678585838074912865928148964760961257781713321308814916476341009007288543528266231319759841244827930021778891595518681595004411724778092711055776792086450283036080452795952467642885198447951457690514744632052425286446251173101722198483062092693342796923950177934827999411682098231375647491124056494842416252868466437567804565968672914328770184278077717035625085002356880019943590029143678899910617151486527714313006150351598762688766310835536691247977406471230882294307718334716376357034535483404216317362534719846937988106929268684337110543519090214015508858346011592232904228605110301132163911830331322239164620732835708288490669633711861853770313968427979366276963269776993535857609714144958223167417537762721920561023432020104771490031673752252032920211040601729133295878861673923922484084571261213931459255755896950182599778088596118049051498487075188052205185975537507062903800355898771376392355797641469768832373868894528859873089605788493344067028376598413890671188921623154708716235970835428845496878240871063856561689436347075384009680015834661414083923335928923971419947414292463501414810667400125795749018725685340526207176224416884268597009903638671443440618566593863683349945901933553960963085298623779503885873731672672990792237189239189006750124794090640653910780994593506376675174472701638835466400561950034185963381733572588845576103967123813374867401917695348087373823303497988030609007855601168376678023471319466355160687493411788079919908253701880172352480549163626526857109683462916409040483710185296867499767578303313289198073023906623906473547624462278018908737783048081851318720086914026116954439884647295246057216294698782374952284210276500974854132224211151515125378453670962666347699450547351775901826861969692328209685602059041564110412624025727606454403580995870904433051747158817063828327640453977781379201772748187778259095477340772238852055175951355001184009380232095670933770871652021967659249698518506330064939082895045800329771198174350170669672300547100861144026870655126998038430901651372019918732248014214706867752649070396519566122515130779991441109211953691883051926656412622508667983871739737008100202618506774683828456160507279481675750851874442950389838483418258535535395103841456893137442870047375065543730772421109951571011023102348384063217717573001665881522059296874416490725421482336054680038073344610329489325082769353511345610913803439522028173021254430627464921397266686050602033308565855870343620111126470552657341804331986286392149981324190612853302830186066801101056782978451034176630965348883780506111196564860350464745743607736294367821646683350847040011460737820906512637954669092718468574645351172870983567824741964380854754182992012306706951314841589324972261069779620198520379789968509908371231429954278517952821812547478207229285645483772774814118007134833527445444993669006590600206167141496751310820423474687031010032666174591737863834106653625918077474615136788660196153238466263449194608949106774591334449532646660740660807568580189181031117140447237367178287004256225275521498076118908707458501446461741944256956823959482945526338511723910875764617710105454287160720470013242787378000446002153728051382037151829673813626629326638629082990076960710357878520831759471337371704751948344572547976698165689951244313717752774648771940923484321034411880523101556331162661836040168338850012036125789887655250464224904656533686604280515899486189066903948987709256899529020959962614528801355817585124195962536753386897081781513226671299280678991695258504739741579397707403065787315178478984226933241426556265860009812751159281334061687444388486981781946533331902545135396871903178297519446952096034338657982044459842704536939536320979873357795088847297246040065673133664271986739827468378872880868944353037440604336512256847695819429071554235915481635156693821603383028143818859480362587705376180033523186035245674239519779078196961826412234370617236951040198434851519459800151004607579766410206884475467431239473783843313790301883389624683869322535348320204253959749122056296659109765936508631573445836631683905137940922727604302229326247686492542640619160298132856583282058610381510680751360184512960629063588135794587347393786933887799359097081668774740685752138939693708001913544287709760408206478682638049662833255968450640263096144718940008173928740862500987937699075922379982066321119047583152906417231842848685174970504453244420843107732106934048390156083364713915140430298125745423979849601068883878925222460423391440558590841962207685219530134237877430933225451257116988944372434870619725341654329984047534753867584456719317253560087780347460306183419440966863017954021770926109605525166725565085323557998048162228719886433083335609428641830522589410385568883132582592170482407720224345403075713481512769647722072860684994959940138984750773842169842424610008135523172040250131533525831929746024616638565593771783504672346780288969786769075115526069065996499468973890485749761476840657141101098178989797588415377879633847199765978630177981150409178531358303510981292925099033065914006059933998024561410882864182419412956135082587041755106419917074448332545976618083562836686405724088033721254617428221104836855188793700538208252291890993993092139724926843157010936676170613013038327793884946770319645962436771911555830425423449566720953299880381087147461302781565509512177585558096007104736795524552040584089130817934042683035638141367855988460266102867790235219545446341821575997085148593673511772214565760063065235265005088311713952708966591694060571776412665101903717485295455262809309007349929454564350852577120995698770759037460836828862498888318261886916372352941221100792759479838682518167936390017735285402476621562076426178605832370298115410795599852440276857363999670798055270301325341862108994639648814199141719676626617605650374481241098196144059405557716196540166868397754056008034280707611654948889703262973070838014223466217349946392804747936868643068241944979062013594346689269999873471386311981720303380591481534929530642992435574503077468846333661850275743083595002686965650834986750556221687107708853155125402523406798045852216132976090842283452252326764591480121487659829239466713688290049582753659751803525549572964981774310271253795211474356721819799808995905732223023016048285419839640271616769759088747005095653562970349769801366902635806237944071431683006990101115882531462337241618224393148418027809480098575632659354592176306089395615280376013426511461030967993297899520082625858926089862363903094222128078217582052654332102527919407784206436288566594285289323227130315901003067758511664022634362864926170190151908418901074763152523358229760711200090967096725108928389769377257266999838286153800797559542050458739492624049725257769072497990599140695228451964138556373267782411965935841806032948019872737776351677172527752278053321088597990157419658911462022794053120599404596516413277455728591288201872269671607449995647345994357565702861611887346159686056695113617998377990259377060996439200461084680175311182979361023725202462845907593389944042528915746033244821062575474921183825997111905455482779734062622293559329301548211182605744065266310880459367995191882152647468980063892368963278122521896565622943061305108547879383884966316147307096069990383070949100757908158366933697600583828925221100342987549727236178746993025309618164282957978808005841856045815928318740541565034131897697392694583489446634041844475130965675394315141637047980911703735505120912552902155155914125060058138885066914760210078710323902695252484181199473724108122984718766729020309386054590998498972676510107844940602915849169067636289120850593997383910547038151023377276495798409554712022420561333930987791212026067006525655741621459639035984517682839342729782134616761941417489537659061500010582018524279740335080343996077706155265948097807428937594177309348279371279749721396350023020157252400106538938423703690110625866185454870891451135444876327733268162973512865677830548964655871711911252117724571002791081952326173162762344029158453469651845747050620310523645382148782644310929072575655228901026703613492110213335017073770682063664730855793881202734352969381424520766684093134509468648665646875191569690616630469227974093205547319971190479267618768292112901646083393409706135843810769567679795065156887811177830073507173213862109051738116360871230990827260533200180440318195638408533204819616994112263782882651101019954557737533777249972329044849075377441925780958151767652068392310410511848797943487565630964637249212385052722243169759023815506850764383559943845520183119419434892722285322148620015941941780902857513973781892328340137260435968149697784613626067315711015218005119243882574808139070376109665783678639282723369735097904707896979992514512595735353121932453480507357689330461004049230255513682518921045460575963771136310894399491760424519979971649841358289040102133796208915325599804772255873757102625934008658344261156970299972307223086432678238533252572718585587993399421281342181255393806302180666610741590277803177172794830920307019692228102120241804073246254613973773854158973577291227177175174298650246364699354046587711755533543786604871275543659574638271626496635496827166011512997222193092774637804404100938037816768831942540472565023202648942168576151886664271795178742555645449451674182753907717759611350930983187851746867155301907875896495268115802394601693730893284667973688627912923188170053209182952785115489013454761440096377908384379316546489293096842520041245734045134156796199229990391869294378373341554031389708219970352457521176576937021322733385129648238854709255395459362930176377134989069112766454006560401880836786078802716760520078671457245014733139154715343516581609083854234154660841603705206444020402259435993106586674717934085491473962256945693321444890599149556959592372854226281275119438175038305906145322876314404879204228846568883874478613592836404870701294721967295894330683940843956221607817308791555956637836213353704111379373725281327224199173311091657363147367352443739877221876040076881695959533817824806812898536140791292911145278664071349739815647495041050766840830297509676325435740884205811769840523999732136454040529741459781650121385251970348177384159953137296470831341302764984127236591607739205347034147494432870980998248135729346506960055754195585620203825820208032748892539147570326785368042403100490067770774961450710275213655896581914919679426985346067665407671672803152672515919056374770562202334379748302690695964054710444512953186735713289997453399776015309155611933343639294106975253585269279627344760652087746424391854732871237030253364063807526494236635439585060257085439173598960497588108656260650623481701995651816732396019846436826894289419004230938910320565989737318403288002313037393629480439738632915247657219591763394256142011677904065161718614010472957012098136982733299954307481859121521486975641416228445582355105793562346108235161438207692632865702926128414571340642665564094674060364515646476383928684798901599499682423784218395919397082362681062334653039283795243076094421905420930569463702872733356322861320100311372676771810311013314087703301997149655709206190971745586558141367820164877037068696992593643855194150986863983632485551777975870839331824168074702881402489692929472950405265442187952052629200616297285524153713772681934065768467324997655820438763640654031567067150140012894249019170574793108594851392367942600371825375055871338259488716305651508203775601476673779654563126638377980521959437606756375099354284708871787957450589769127282127192499160831569936536619996276052506334537331803867190447948276013703437338078475553522893666322215542840389604016254143172895970630423045236302121386084420811793126235101559391070251551563988799167044538749946899273809807972049145198960808447281197421685399107840184852571760544339111672019632750801991750478298439745944961368455663173177548695602526427294951126641244567762348803394318785493260914090069805968758024709023888047158042082992220352701709584636613891251143047530969289512540728081075889999779086233534312656952071728253558302845254823149492434642386317919750295856053431965053224975914287418857838394642521713999100735604106270222090666421442936064595399672827643516978623180200368883298755129908520769157068940880983781161574047625073666100205651722306191009325548491647799415384823197860392425651460286975111423770970006995766142386470698414267876005539563838793051697437865073702918460018994765194371857484619536788757590121446063600761876865809971147262934453326955906000307922900307925704114177688241535348382109740063475118518501129360631485284904089830562657855419108256081112962223477689904825866114032034910722737966417327919147845307889352257041658463693943716674157487668211598141075634394687967566341018167073877987964280232253876748228624319532522833404887339855357151199892145498235763790107823613332854703960133771462161897363923681183669740258662447965768717709035158610045628093599302425003875863299247807766825876528024797021780800981512933513521330414776126909927670090639554306004615307494152772964097138802021645335589841960887097196331200986502052774322537703334526511288823917343333406080232463284882979298795119999788440179552136513700771212892988961476785641761213699135239373721121604742710399786284377852860363306737604749616004157552838277165550195614751142444582483397907242470476969094188840217857680354977928071456228121771335802519092453717934370333513090180932670849814675725621011714184615601297113457265883376065591306780921335747858758771305372680179846637066875567603118314949985527118284331218757535859149544697615594400073200230864874943825361880179007060434623388637992505093495439815808825449083264315014709460936154853919148154066714550233124049892528152333940832986495892031570314991429099959745570869459814349740377733170424195641532263809905865418886591166359104454672020963953671030765794884603403965774238403786327440162540485821844181945368672027010469646871799549253293542164917879811707314301227114681050847859111275479523048702568899878175220766614001292480242367432505014441251141637058145303225080817051804402145012858837652881393980850166320818232739440288082147942712744370383451759519528215763217401438118757653279569464917482075729801517309206020867160378178742136133350379699958129958424025971625663677878035160059809015444314526647379283628947855145329697061676906788706037178671686895930001458426602533074331154220531094699323825352251151178182642819997332471057748924376050029049963019471256362625799594836084935303924791275038980339577848881095448406492685498756394035478032999075085898245152916799252053097439726246745533287533619325517626376255628446799502304406117235976864470913883073676996947336131694087195577527773976727713247184855308783526903698671053891996977624557229547774015121480136797370143513367573763076951800525760352092109460949141786963722897955195163036138948419844089741357800830842165994386839436135418701603830752239118035254971274036587802383091362485123961554978197460931900515093070452975575835611640373807770798638852740657797190951607342673520839654613423801593662217618267943947618529793013689214591093846962829786169394564711463144702446482217951453219404303088047500009300227451932342362942220174506700428162969130489198654105347751098709561907986415349021911303048433309885365497939624981195553227689710600471030396195877460969979320792467440161330604960124538470188197090471172547324301174414577567089355083333105836228327387114521346991674923905414621733572802061044630321408601748474686657108712360292312865433155223265323648011809400717003317890566472348589310426151543389039478159203807411552904527703311199613685943163090648195542343991829536499973495899387190001967772719182042868378230657012364986012085389690314491399301686607668854741530744676621147742034383847255902609649819792512666594319858956691714429217074616689679737928294965014364130479555819940437336151452645665694159152931497881795920492195801518631800810617478296284116580466042522731539536175672461636709858521282626712023694642487514657871602890246334866215974411934262559992533308625015694564989143693297627460841977528855252237887249090660596545746188347096403481029211533216326465750570852225397862070300857772561166053013471422049377288661982892100007653444234292025543447440018302213582003451587160561445440889022977597412947028548817517783376860096648832220419630086716610785123684961411798621181298982663420324369620971561530478269186309324411428082749088222944564033394912903301053833905456566844118410912670541474597818673094296318577251778694956120434706511711121733599677386422691950912358947226007006973010562904924334714419406938789008635401502178957898869775736909101253730548400731796802632451197069028845889916584199344748793918148134061519199219163198210512033038178799975887605343028447815598261853312140643042039684914914037659151782175716745531680531007522025429048982722058954511614812661287112593801941683848416161244012109712498148406537635209132247534918783020298492087591328868451871977194386713555114493557724449940934957490834285290197100755268995762527499244808083921661763657040251597858925767203368198578213469724151450671512625848786723457338342887241870614879033966233990385300968379375572653439476226177805390650478553187634752021334560401993830913424083864437947316742982400311866045060862869121844560508272836116283359967631141585178252423717851590740699569469599891502533474648072174599639611192208770543897043881255692996895874997181189876280433538485080064223243527049017574066879606444986458872790864106204151659799450197844188999588420749328833945782009559271847633219147822115902302970826932236328110786729684795676458767974886677539643856088300658871554805442418958932489831850168680710868521952276705969940755830446035032381455018617932207744651719733557763845869314334662697838966695789111684301228057949561269356071918168625385070562560561243867706058411072646310133902819702466638075419996131020617248883755123376541450942711164469266207827838023347249537464730269497247955137883946869940467474832393936197258105446307452944386591647105594371461025401098097945232724225462175894961208545333084166079042540270816267923613403054663745378077383198442249946737762237136995965521376979307196690895934764099452393176156694043719549107726626188869120199021757232563585291376207313166743816344739815170998554066678587397944579186063202524092512658789363332780783238321038809408364255347208880206678265007421147092514401145874936500494924052227933096246342377164224655466023371872362267786660850946581164697972611382305230208768109184599154013373742570670702668009323575398457789195204294581840289799927820068970842124568647316215367031829417566998093446842867815829196424519631709577872212100592974187588716724599846896076779216180715714182946058337438774241642358988549943745556703460283346077265679512436326096997505143582563957662199196406156961287203423525810830408758967279678898782114740944263264621904192150339444556499083476976331099071717771632029303390141420922006066733131751542176454348989736869969224592422952215359337163982484124708036784124126317347385282857488407871837961853532658046515525719467988223921760143629647675529792994153067272688510178187984412998021122830869050346515826199367821469986436020603508202601521025145083822921169802376819128908212659238631020029659003855354967410785825105856790392022359231260267117196973132514826336621593790525361330270876953610390982461054599311376274229242466085533428339296347615022447440809051873081076355078731570493339584582317872933552498629311259847655418244165521324399919721962109927044410005076220604569183353493683497347446923484681003073517624958164824395944269195747704276534867686408522805310112652752020612184970284111484660461646380862544406235917577564671541530356493341225823130927749103436026429687043881726165461388954703446997569807891201603084091458386621715041641445600923347820590685028674790717374442562609971352717135737117224529692970791364972235638491757562296248711538908165664435904161113465429968962875716111853092682741496024690782388435502872223587564533827537910642924717312809588835989682034781591047961668764979499278320585354450335987725386288801244741412215151838190407267618332275520837948898717073721199810659714299148259969256051884086581474844674347562827716938857247052529349416773781476275944812345452795303743544784668337079079602470775546527906818139526873686775106065713959944014553151975531016874530456653367882891014214130607599710060813205432438449436938283764675585901077049127881457999058609995644619493693100997282351568288377686441109258167620977881548718464848527967125668848218456985678084164242385134217018268323044132322375107368270167424665470912076861006674895813289746021612891978842322897232205253998894882065660431945355611430255790196799611348563406981683613400349979610859960790805238294058528617783264170929931632043401520729527816070594475028568252661605425653807392199431809119063148533414490234265711415274565851696759949602620891324565256321278099372441081582213858929273390068189302749513560262528150989860645733749187884067735624807917375372400941798491767924193040865842203863389928290959987234398312297035419602108846668055019089673020396343114799750193751907977280414311863689431073579276781058998287501674137402364220794378032779239536847658151514831806204768724298753588460509556444851071996002456440720679055051106269607949293262054118892855435444723812469780723400585207296857685721641915982499685966658947527782387395033054725409307187046235716734023134466236238131208060440670510396733014865156660669862696265580732997499305344586140314496321206917663505871906829906786622690697635024530893707614544389883873311838311055558175773087901094559626676818567145768211741577595970270544519116031631429486065653363135029585531248747263499441248261513948277061985797600636713000081430859230670202975905362822478456298110915920523928362088835169542891067446714032940753172082094586433432785203391240747441809658715856030196891903531957298291599123656673351488073311821308161763118192752627894331471074266269567659859056177057678756329313433932845881038214024792130194050997049777766111468596296211036319653023963747834233081507290530813574308325348250316318866811011818737717692988850443592254697147443558612468827646767637903706538757962158508714141536702604464015533766228923220658536996089072405727354877736009737221338216757326349296654894662785641132561897895327475723685881464931742485347698108456586563756527534921109938628419867587606042061852126180392498894488081081119957712940726467850214640361003385784194836139227804520326210982529601321971216288576252337975758589609650109187096661380680800821101361364001527291056001902702628292838756746999892287316849347241087539158184660860028039276374757959295620288385697296931913506428780894800841104515588351676055353861006565854849480338158475113398522632585041502649697617105634290132687189602919895538112243450470621182814507889899329369212955549563792500550912816208179973566730870487243727237733792453660596429613153143817213741177220441360677489871056042172378445299815128102197437032102642268623083517546941214865389600753618285577437566835542465281389814092229886832746832080469557949245246123584064276456350298999890927312292099257602821908490645014818708765804157381312523395539676150563927598186068876637244892090794126657327549642695071644375519282374292966288271028822345958166328452575528242018890881140832187926816899480585859049604500947806934530417167808378493291564706767896790694356237114735538405867093221258401199477506585242425072688254810990765848739845246978332961872112440472376410751433439135194284229943941582086756611518561412680095827209083338186767947876954022061863490018984728501869575652551476643530581122630677882185696141797310753051045121269329072864212237568566452987100384396142825601868013932855200632385028772394413785917796475761203450193832334970346539388600660313804186859008823672548455935238684657227817449217791782946221514218865595688830299013394693074463373758265571377602262898381527212668620527984851371595875258408861300028751712511006057753495278866572251624088375628149185585993944144141867821289157917147570339091024634034725745822114963347903525748069004076477155600029527247267456201255697932750161604233052536122381196650038917817192007779629886070035087988555278225486691393828537602922230991671791424086641115634881608042536350374946127325029451589358755957255623779994002404014946210214070709678705623812065686476470607209056194506930430343977470254619897621673751655680201071633579997150780652718297123929626658479352232488099262315259687600951712974464541543710739537203705242404892409778328811616261713431880402821479636385299218482771711785855418762723726617505356625778200454997751460780195078171557988858994562719417619708968850432802705778988396855834684460073027144817996129595296528794955076350019808482579818891391498288988669489595891470674764780924857961896647870118034306261072029490838642049351727478864182591956274285197008773064362401349099803822370188218322585320407695816821635766081047012280668550820531504176050637577793272281932858124114145249064988438708836956306420376552413592407593072972159824652087078697448231672214420673565391767453189357501408051984635892476631849406987370819401069290988234318768886213904997966812637504809457100149251294175150985842148171698865454863964237051856355654819182607875768941981199502620765877162699205152262781846938346427247187596268608717325100603153154072413331834756775810922262412742610139849376758114953988510711195856183236879468356444599416596021833526331691819873459712866675978044708930498952582165694916839379245297788100925474858089514360709517109158080281702728302588484250933438399776791810741582766762272079296690546919131623419769418449509230728150749430765368630359793562840932497878898751573226261520694493354235900116590546832987621318342677009317430912260918645644033843432702346095770633316166923913308552371933817923900352506605779504377855504145943013457970169150701048109790308937386432789635898232414346552941941433110161051019607972700481059226788823164521687820951768108248169559365819754726593051174712370989225196836349304360885624774514205650259870041651216125315313536471713401936267202505589478545610906916431233708032567327095302156717721072208088377875418368905343077439417311451997680520209382445843052081394395455619208506751093382528907334635957598335640943401438623462484841242646703035858772202955912029978414790551955102648676508475290410366114283961444766761424042321677254545825235447650675289443418446922515389304471840166793361601962427283461756360951099015353213545262350260494981134516463868440434884512563157339244987567772141115180015277467211775566121875648241664051966815865295804287823406225759051938204009320600149975751500966497348185801552156857229371339157510379896756430944541644512059674867096453694930671059548152275745207006700904237813000117269055803674629811405242176667360680486587783668317775150796114947513234319238692068263097586619546107395448758733775926072194916244659542989449599972332595918566650510835853920275084718386275258981672887867642805203549980429787638109287750539681861509669542876660099383589288863380241048445405622729631149149018010498057360183465043557693392724598381061423685384898500348814172820934840500509959444168981140003360913081091932615695530106491914478362504006194329253616517572323463235710811270007213110929851365428466697926973855783669024779568636521619552604174282127123559344085920631336592855572850429285171840623854808692616072507429749597061448733764194851289710362636893977026715178937324277127048034261203583108930286784134527015518088619938192216515709602625105672005167745893025646800625224948448030419407739456684456250526960133015611495112065710677332199122106630747801463367916732064715655052903887259730436094769704842153845908327577782897290453254550395608863558917439261381361756088425868850672700124874226774413075235371485384209771412291957484954068893563713927983182146525976358888571615713645911505884386807165881003876440459396410139715227204151092717622360181148807459504687744028791564173265903566383616928766258985680228700619549790366001100728270794845460532227528352714191056579445433453549378866467750525642563683916344351673266160928939096569626708750998638207037968994492253452210566167804718005860043429875467440626986332047243721554094416215037005183931104276389714813717246840018579619190923631216109234495415048797364827508196796737337560954341983515543938038397030624842708174968355473289969774063847873674378443372908491009746329998619974700628005002888190211474915253535721446101267031802834792740432882733404365617447821322930199089664549589015826928943968518580181373205638420187719011426398496362933189587626427311635595421079936159576370974001012696499149150303033879522260247417299014316556716730280636047681622362346186665878648089577354151374101353069512499668539724363974336867544756430412550552635656469180932290252627881883332146626392624646036571791535446467147045154318941566217164403401000651616418699154691871567882742753090284300006161404958590541385472656015983171543792990195690037255635920520192935078837329106495501483361281524451350460536975794738937670053821047474271817527553222247431705581039369135939458077502412700315581701445408168667058146655284662411078542269935745424849438056606731018476798044744111828675362571797725451841662577180233826684246519146770278057215504416029099489230744808917191491881784419352542245758085045347923956094626595521191369622317545663255286097098347828505292584309908150955081116631874966782298218195310720548305306651018211449310151390192141887522501033778540024708778545611030689065091873939852981982418952882303873931369564694783243467666547943576991272374724909079916470263969666901203164389960627449538838743911832461402243663437033466623908101025762393372172697671366491410070736882603973006206530461564866510232825905875852543016645331957841323279735337674043039837292180619085384757789561433042088104107281512595085700408979435286744200926905820256379556092819837518261842593130281675895117605126205371228949448624002450087615849565329154317454973298937619099347847036298111963190842836237833786270451727579905509410271818268276145602301534361863300301421769800675589519808224455952557571546935124293865814135588021943270877563029100160613993937419404941238542536768918311579394083153291155554139759804435954212887201333902500967982488898519401447862962404632393883024534111761001121843205470578869403506708597259427893010635348455546658290815087480974886555609338018630257974809321277545634396134068920011316033363509144276334014686032400877146465591336343349535169390881616036126507042872100216497156812713082118456637556598800771135214226666675103531360346960335142512012286447678056108866495374864539233489008275304647919105831294342882129503214062321166996163883913259770494362085464697385698571479411125429212670297657858958345770940836312688999715364336341820631371160048633165292835088458757825930998412986107607342985146690199696712408167413546714949939910774223235948596033094117104265470664684332751770080638345295864887159044067373162060936419955978142923824047106889647470952621272579304537956910749949874529196630568168551459983578426709466613661932106613815119127673482919624125031963800003726269999797095076474851142335974121544788993251301850428689913507118594446338149550510315074454797685469382855325374278311804099122695225786879005434722809028839003650874102078712039329779185187542634413748138972471430444670564382295882783933436141445065484500119689713471351952243954792934952078186754779383448548263708890477107574862176763933474862013387690473020765387448931639745864441457329951101105684745039234139488018364472386261949239940870009418214264795885645691414250869276518348234944427344336691252887251848613282630552731289602320798360661652665824537059103111443831259597363864584485943626361770370327594431969394252353019760347974755717229623428392853645521854634752181277479911503940498968854793661805934656580724530984788917401503634830129866750493889854593294180022826657835029723950641662773705379368234651063357516149017225651678582955425547058705492798654667895628310148734621442842320665670097287856903035599843127611052629946559805421526278502196823027314015002598431153127558108507827330802205973800679882480935782419965737293738165011191548459141545307331422899450558758510430243325505011754448423433480259284617478350261944928515909791484089710082831923418784936006561897881225878474098572371535222740987185228840353669825412555550567316203007226345257421029067485852094672827612037667153609306566429672757900682829184340299592747169383860220580739577646564025017317324539150524580716464591697388388235475207929613296010578925205639746509428040118959071279798066807631156821681676620802787714837595435945035702432652413155543115466352432182956358810428217229993766466784247048728761451731204250082882248552285680872946724630111406089891741066571879761975202719719804401180863440993149426556934692174228408193805727048134525260829804230462552109872409531133039357637815254812645200694541439248303081121798361743488963498032622933215029317939617678554050100439517268976247015272687194756218934187762979377384409019128900491428881482553464816030729967027297083676860865974901162956885944728552040175864841118952700735888129112534058822621485081876063553824411234500912997435030526640324772652948572703927915449026925943246248401308703542005256107557946547969518061960758548589309851024662617111110237146599344468291377598972230697214430871509275757683047851301730362034795995351552858144103256194478207631324969201175249657315170486681033499682510887733859628885173351225340174685927206877815827215599031611924267236015844887448388857602945035796308738327651280100343849278644781175883257906299453929394502077354526603268913936035367023739588300756167556682789053593308410927882610206439163298152851953073771198101309595609191982409615483890518385857854992862756644033639848162441045645939975492278446219219801735488065903114785707706556098595510268096244337511643918026831042528331243584576914826771387762542972745221845438611286229774542396376437684500055893088559736083902805265585786879253063042178016369689380142499160865055572363274433032634119725679693270794184620913768592732578350067389423276302743882488057007076181081244436680120426881169530473301775881663572202804056933070205755431283189282767045504645297857138873977592618202743522828178338155004494270013725611150774282021757492556648051257358053708675604262772163526600631887323688636975113054974083012625312078244111484189626659486281718651196258686075260860769791091589946786282368112520203326487665442798392906333614481136440847104823373573344369692863569333406260271991606325973884612147831590668712363202559452386098987792788044341448960065259722964435624189497129441468949154913014405445643660500969215733680787126350677179557374508601320277817333893550503344143448279628707520609580834069344424566744984968613581745478688934570851128289245265811162081902132401331048705390551026884488376462630286352773530912571188019761184945770415363440891994051128692992075217470210705398903124370447587809148267332252285001266581350474914432550107423775982087539669917855349141651194184055134105717577630336659578690876563568537068142321771922374204774313759121694266759247440921865561527681548170955726093690760647138654445739191067508095927952447792417131574851001653249620575417534849371490633200343535372344900838322185995675713737090317379701214487825209926497675286112156414293991938226186790253079365873870510320926039112752467587385726674003266824374640583053147198260462306246185309156499359387487346693107591233113690769114403899246924994774766237542604793531673793374128204940934122726820954047772712317951022756023570441357131178518180723248968172679718093922183992512097317793720867866637871560984433418310336817484622397082194864233263336113923866793483243729765382790164195970928704986539728648378874383275385706988686875640851167294857274987564643282636177622546616761683895159090397607803089150080753287737812385017331501880644890400993190750952768628746632936559776619527723133642940219750572201151627261098634438214347157714445847737871683967902681908431164772199394862632363184685267222674848509030655949950730035253952200386081258100690220277338689669331826910599605341658112186725939967761938788946550141615841532053293784702818749737540113887986168990745524935232428138155061075689847301933642838607067702270066504444352826413378820561679076131303972597495770970331389099939674437133891026358644307007209729019955255066076575776064879414280876940863019764720296601021389587511087620269647736619327254108561893649642589755976514056662373617778298107521031104469399422432661192399822383564189903311724039422590756055658228094375039093413884349208105536651301003819101542563047454987543683525129878210307820318362406805053353225057093156758453992407136508624351078891922987192508650582127911261889943006992235462238392722571484855155267110693086261900499447272816841405783935899256831008841572793730775535904060586117804854557244096700366023917578949557551094994512985622780874608815657206429283207935034917719339208809483627671581434725262531607040763156297503694663082730894516695931686978249449754894423245601846366529752941490470581330531443772872579018357987037782803541026638222293093473405166355865043439311026365450801673062506847529039338734653739532750763397459111153617344009806816048749851717594597105207836657179456102458423673235996254904148572410863819042640432756321499789814177013972401760994256970882981245414509559764868100054459778181543253401180101745665718371895362716554089775693407956315884002548610822315325919247675389144173796619720117873521311305196144740492757984061051654831269221735933692663187810918966535066998177637776336991757590421241996935422239783325903481123812183361931765618301533987438774460451651361395069322423852353448625675925299265641532258256658928913492054556952534117597965023209117015888650510230888480148696855117828536938878852490064177771136848969638200503539917909710953651500372432110578225138329211200863660076313959848822185722938734829554572299114200779723149651743196241026317220925229662995425917619087453215901605433429811390107836064052185213691028817159580824535032521365453535611277993992354044159674356251553919233732782028564839930341429799630395670127866987498464434227343801275018787977169331262863200177631986342906674305833826955766353006227594255951933342592648751983832973593702761777506109030914426216959875637975252883505482502506697496403126490606821927569049023503139732900279529367164968190960084084058705740110723580057555344049708793304381597432495106594763615129492878820843737611613118262680974092831858393899172814414912072235807460847021810625975708088502093366719777818020107083610998734263916847306087856800049251500498306660697261267608778103467114421039021264938299466773271636677895517516378630167596066866169036607743462569785563077302607487491876323473818814669486597674865433048030328697323207661097574269080677588428284525477703534090960760340471951722890462355417779496639897514712198542017916763094445881818446209516644884766101078926648564939928118769062959552632156786201105282972645919149990708378165537386179873856224697354198831930161895102231467892033160241253026736844457297204002938382566418820689794012491205490553484576716650332279221608710806250369636345843779385884123409095572976059875496582875380781503118685109018438497298633695686165861981185681197078848049615232767316555366175611952571313577183614830377703430437551722869224776694761116321023554336202401382167606166709761048953094927151341897399728080557312592931296757537624729266831860598127132820562303667759690164176154885765851720774426267963429935517420698599779299117238095463162530142388566493897540787150302076408805353444733345137219896600476521889523252637839307693011203948699243141573414555583440055107972910740015845112148216114657389894520021238138344863982933174366242453141677073334680936357003986007970468517582147063796022038509440178458154775735862252338723274186350545639106981375389649669759963489854899704757556736116527255607442907688310653387757359811194094213185456716047921404287816103582922463211042226567786955110513269957144004133427693842619651921401511711825503384410163294506585053038236284049349205309034393186952614785663376088596754121495317877188679341316555738782106763953612034437307449136725893979327690847207498959484745572509464035831762590425633833170855035369322240411334958104728942400921227545146825661246416728985083260208462981634522358740297150141561288744416212757188892678995073817701566037993183346703249045095375901189334184736810887747476929966650142871709772588947046486505962050945528875746553069866828117463139979161595150042756634198395093502296691232559044823573144151056818213873395262831669681742134779600383441299933037420775593424562604130306384450625186852889642297694178594104031893350769368611471202806183902223388187250174662507996851783219521159070533740897164531558000366235041980705010011994218043613212620976479715815470054988732832503520884810561844889500418106023508662512396886278660370003351134919338984927758864981393090954863798404581375323915074476443898103649915861592026391117598616759224280373572361310923820255953409117794669730361400849917952436918834671087141598974229698675764167971213827595245601909810933553982385645246756502662114416320943750782247523489912779697642154644983203848470077975174274499762557618653994598410465163821630200216496589972574337577487295558771170956098086234955807927984713188680604615185596247751727130733145289645840311913591796265421725077704328950135786238926127464404903744848856715943751903618491247618320908870101519216142260275822542318859121301455931792260191793292707214615772155883365311101622903569650301665379542133425548296893894974769295805831938245107676924417705722797526552146380257545724989923658757246413813469571909728149057485760213516664726190329086921880511291389205734971596214966239683448746046953007557926274127812467428241258241472492640790694531688701448800410364234196709990558346283971403837520877174285252056367019633999392012246313245998934118104252798704522649171107272038715412552248649859339946187947771496376804104278196883370486318237859927537569894700853668251758866967858375189325851928615129735032120388802515840177302687569194669650673214617514406218489587300262032942918381392517988827552725610865141459060674330065896045212732956290522157679401018220087407358314840755035189626001149075053648255094484139738133863627579099798727858762784735271610698963265473261201422597621828227453407498030481318103012411268422620415085670958066154934040855321621114853037662853486853741926695145700547361414235900529431393865473916533215795916397714894373248781251557985892253795614795782323389002018548224704895428773086957038271081247346390389888878312893043360885168993096125917002009605334535335972312383886916570515939977489941626025375783132444892997136130023910647799318578193023038186894670502849735076738053435246483558951335143858839810739174677368602252983380559411658487311460909556945292893019010188497842049804916303327707256747047781580763676832541374686063495091079639924810857302673409132526199589878967141664789884883241111131958790275134275584912986428715379001142812369707775360356444291037924288359342446877336258354956708439253190018562013296556701112114180627556830727013419725974920830414091567751906793577301825610912881283188714950481971966604101582464414512637424449969922780300690532059749675010274851489458714353980135670351325613576823022220636239003806996110574428669784374523923375310428308573546279119042449675586402933951370355254657714840138672043311593820164333009342679805809786790090620875081461378304869535578799622528991959688750725220102505251589182334126920553191910936503306556970173125925256563256736056036230792726647253773447105109100312423632005144090035947889542676253447061627996377297222081702118187804789355901467586218840096147419831115400406463980272563400548431607615752976152062384060389118627022016118410309989012931347975746265626130243697642163286985536796681729466516571236222326995001507108987661181935139940379688888880678225290028346207356307401786396684115340184267763957024609553230496861106648505269941588944424544973453884908965496351746125134843140834824424241152799290122192061408906596001694949530156662126765214651498325283347840486807629407769517406244541026789191502947438124364717988914375240833540277225907774970564038353023006530901625766239603761182037404790538843285611936365925892344064677851947537303015289296688223215486156662010626105372768550228760079642812746788403239042018259005504158328324856933926313715656967810466785873799102500295850414150771117417590831806835337198570756345752163038409479309017492948752624464019233816105980155279864592072775127296477770782424529951342780041715826953119028149162846726110225532246647605411579171283613814009469145152732980490193867571846560044368653025588612937347608081169038243146874366599460516408345893485022064564187757178763715486777184022490353868592348758157467660448274712705731655926526275889513681335973828042414412069184631547728463447881963242199762902433468509630176071890385745409186825697091775205747642029629062111692286143102214812972437755898596107450377041771420242536532847240870566862755127540963560226789661153577507341568256785385873082918851960875294935659905002779972864433241824863917208692559759195618115135323830957964504845107836057294540714862937376243616241881892671526503317251029287160540790895062379510918521689507196703934847405158542860977133300308403473270199784002586187758424856778011769619403470741819587913033517831652141193510272331553018815617359119155891259153779050311268766441067808277229842783678015414970965824805025707801505439789461756609412393569402045755722619476643596730101545676947842326716454277660710373102358657686048005949210961749277950649313636283718132567358062621977072452242248747182690389979266167682930391414156823571431345240147027132448084781268701060325479525249389843501716615953660234250309235996637297881452041879485670431636079892716324134938728751329879369641602388480560252614628088723702071167053417228094372544474305872836735312259458110873777242554311222784445668933916507150211864357345137884756453628462591650855806304542987957075040777342928876066719810946927053267531295355273084978951927914271993024964597089135431521697055293237849591669271282958535115598496915605147814537049796930184134750850433941539305792117874383135506265372410378735203175734730809793428421653029057526040913122760888063594499199027651105712587781500817396836784662138773920484573894056800084297445588051599467920837323802827183571062934711036180001591201048048292436669717890287830111239982347100330301649442777697537129154138798729974256829637399390014261557866772647532074898389222636024878893177039184034947715615599135282114869400823817990482600720011709279626797996724471051284122975424619477085471893736813859468596768563676360987926535693387513924364227298670538746657729071584539323918364339488787433795132352377093478137307313806922407889080755801578152092520116457119734571347520245426406058617400727517533213321595471018317143621184927432953302732326808709840941302256115415617081414150378582840922199716488607212095999733092511506568308768148174651617470676221015551831716300435069782848623197981349870846691505261617602855284660637484904234928669233733770418061119819945464237615707720155519123238755903173115461673037657299109342880784349455188486727852031609607135915829241275928617826613709207514629475061395160550787539392526035163773126273517822951498352899700829899643724882274738939290911335137342016545139736668691598458155340382963885602282729481005512364438810375010783835854996015010182717692625895089982737658332466946614376427505129533196119013663149462141055492650390591247545887862866943329177668689051520030831107021818265349731537580863722817861330082021015154664332633221478059288405811331822542432396237253808290843142108223454978898658466680446653812652952164144141370488092530758433467021558324751968605775854626987259851580770749781392329319824788145401914198640467957328030809017388656921523111457036536555397819931289462319039097524539055859616485818428184314113456841921932202353836690962307464361943829892625464698334380395884804725183177539783791138915509183614531696279383848362503813235875361279750346119392820314988921021540575318675743329058860220045277625057416319372524131727759061999872596779954855296586332221690974230548501390228897489556063768113622285381920147310040516940229047692564753463844108054885762476002692288496004420072981051081170223528484496109891368536676200038430400481295669513209587923132861095269930837237504558930585046982551781097689818748410837852042470029449597709543435329991190666434993353687544204964107965785714547979544835769283401422487904318412817389612453332042927414607309080647538246511421434336874002541568810603588329642073987786104411041385160722890889850789378157841530242037073268445601926861439519129940201129710294416269534653013574207336555765412567736358086200919781909973996043623871460306795909876320757193042145762403553796437460985055255324652448190800811931538013086386710674160487572619949352871703195506080029743525152571337207299191684258312946461192986197046734924607683426091901021313978582389486331770068063564441972912779797596649187711396539942616078967151951681541276324703919569209788192373936278158597695294615676479281601612629946366173431895711295830060319218370359877096557972337318440797907536191849990293182294941511782839214296549529141864373688155471434068932044846380119418045404259321684667992354282277899789318577343110471961712121368512257036969320577802682280209499580271839907915707910736129249098856248223707383345489454032594248299674504862074386380045195338941942619923156305676361623291732785686855825221098924605067672785812145323831876171816765947843015356942681493778553321670181607399180052068693572645115174990730143873839319522013904068940175917210296201840913350070924551980116941150195779934594572728322487834946797087025398730734632917728140131197007075014073932305233008897922144349977330212652934567160083010841377191190519564808654056515782655578213148417495981144520657977629922026453631067451828988068190006793510158448024050502538863507693154829235854750790998313697712323202916847217196796126818931311052435776836759516149042595836132012914144651575517850361934180160165894908521723989859097177579953298977300497467065585841900765476723262647780482757444800095169294260315344412360521029242549249147042557698131088859984538814030827829152183332673981046516271503604398991394040178972334227190315906534711461962528253540239657894584730506865232105434440967842392831148216220630089043213988322379355523771358332530820384801625030615774207054077846035933415714724900226585548360514082892577099979420689915930539511890315393083514668312120841701324613669281706678741599172980495575152335633838245074745087575432235104622440231150444877869545042719640276811221488614468318098632573437549195408320237668185788376254970068011607701789959970780963105380289720276061621591641362476003074909748993660612339560031784096477744273157600285585508695211992647772113541621525740171466495106443397622687190921911280862399612126901530348354785412136631031843929155677247240390133780606918233347916606305710662327433722424516472811437662587521359086767233690443380368939591498888080386150890563076315560994829765365989661724544727709293551740569664840898729906111974878193709717656600178239663048811675144622462805395892959718045663530036048500825304412583996646449743655885946164512187636757954041518120106188662369614349188547917000497858128039872612741658630091606042171612557972836747054531189244830923199767069352537650234096968210036891249802507642696444308188671241977237432250220881370527657376067425149415711312871393947490786668017794953724668972067468396174666255877987728843616196151105717663833776330395001578911099627081408434984123525440379923062960228843939878698467813411645997384925665617194746454423781392313235741319666548891844505664929424291318797169544066866637445222962950598255352210840339588703256463958409847393644496562952581004616767167517292960978820096796257259452201422381248336826735925358472131402579332736237917237388467205916753442819591751155487571492822083691502676222299328255586494192839624726260266585720041605393690418543641161881682299356784093653647139595941901546540682590723369604428548729283048277227944078282844663892052496052108303242191792354173279799497371945674529286730274565821687739115504105238348077293140217924302470707261051074314167775492728872919701337317899256358732797602217070716768756095587873777901763018847017732555897751170156405414209493912691823246148202064524888815190801691507529177888543369290807426394818764883020402783173490607640808851883122965730433859301947547648252785890231810976921587864278458581766931859643053758439925621931573687370574450242680022189831589849522860867284755434542484344171408158999894583250321185363955614166880694505538663864349908229250807121505432059069600296172223217324249844926922858685963649375204132362227455132893425732107130289936218770349536919831715854767896193910438304468303963441439237695034591145963920479506989739513972771325329585311721548955386168365132859233172810930139034834621899924564323810493770977359622070133259980617150009487367440222874207440744000666505653972486130244771659791532260676208933475628603446897675864344901472518767803705553228391856441059647336026943109589350255267568122222894059554402986476182313825164509092849769004595115956523868095302172859419134721157081364487422653133781196625894934125972193127808870396517082529056968153478047795932594246335341226783043724063937875510518409714466396833022343387072439033203507871755318022799289653863515363253791553638214013660580538806378285656309227710490414237456531837195233554906032153577121035819649140849987172263888999032022523878181678781615024740257474098305609265764499431591858950953530640416739089265062479229458364414812387857412225498359315267100590609369178146929511968524893810704678746364363684293599200494364430762074077511452257624299513265077781372498305322760311521598352712910516333761221229618992800882144599843279807964356441383833266061307301605270223291454194835120402067263534773850158379094744082289131250886719628013565000898523191104563698487908380957585345062955713742084438674211459810269362257178327356453068985932302541632297827864574865439626424771055803101118313017504154514894825015510513174662683731507606317611915382684556996941657643242501808008589044233117233110146846155349757922865507131122312970704183755495879347687422453660193235791987355149178786165981965383288286780196947664730997810987857418652972583851242595726643702046035883106831251057581020537047858130901164248476317503926912389125543464194939343445203107424022123463272171581977360749869742934901141829204995866194463365376625244786218461676236921555194388631661468557774198506664929564330364573061910509839560373306447942905826437186404259013444042712909720539560923663424126923549136069414259819742351721406684563843513139837160378538852355176159837342318110623520333473097629494019258874869383065120251422343121337955095444973369362624351790102257972820307171521482881798388484326055866274874624196746455223405991916657394111855914983881719807094622116744500107524435311278634835745814734897288068221085354100102099521259105440310123846121122047851785684511665504046663311414154753293318997315962278348799767764760817979247287261676070715387364305774383957901796454489713909711995784100879341924023875125875033201386108166835458751071785351274905576852837193418798083214440272560221062878402610355301256670941262426090633931926872049427961610549911342812277680174249296350853783211857607063188253889569174905891948090880729190589667829124833440524284489261010952702410304930763344393165516531154179506209515997682076394177202167400020114866606502471428587644450380230854953484174096689124034741434818255409492803757539414176989667791685347777293383265872584472250692464898261790883969235396364315848467456358028975137447851523090409662398491802910450733551211075277395074435641988293744091501443491901687400323846554587131856851599319940172298173918259080644538777031704074925278303179389364591027868316535377274739333386424735244780826194166421959564861661516641732912788547538660508597123596362028304894118202759951180855557427250859758939790406945744877423527319468994784827818577419451285931654597680597764885507589332757858803021865180041205772952292566404782472371685131350897536423903534673866371044912014419939730723600352741701901574850334069134747059007038545061415680484208529517045249904047920936653950750199485691129372458909637430638006703548921961409671214780738204415210833501650678044078817702666107098716957668998961262244201531746531623973323644722410330632783888049906304938945587649839833760648171611072395350191550211749437600056367786562647179967501478237490960518963778513568709454332779389276170352507005843573589788475159365960197448290068077445560519842310846434762998539525778612364515405414954924961831360551453306680217924982558704906694987712172288662865150891549174839684141968008219814972563562489248968917462892357675642450053406412509504198784581718903631473224696967129012470960371262856367231422823486818150367237422951595190724250691873953508333662423875448020224831447030906695575001233967648884707058693584955121671205612202278498436070141629371767378460621889879035700071922881231484828470186087628809906437660079562646506549993180233414877708778972845855905342963739517031108745925782354671355306648357979587806303591269190748646540630209167531445673934453099638747430485586339303862047926408415886903098091347490810721651435204396626180855586069027608761509497830073207503171548715263336976842529532265998379545799138480505249054415855559168472927833005099723512688498344001286282628385102002671490720649607645351643093398982346670455194028191876619964263749563019686321344452271399507829135612975890428505647313558098137129504981637053872751563473063816772308994294096296748437390772369501982531693796677761164514070334867785865713345296764408083558743312190072533328948218032096492615783144009615564211154000027576320216243108808271874653202788436925236423464905007271618997257139149158422812363385299319035639369820181998761942801240847764863293005913318054087383152685054490521607110989066992698011698478997341890965389265721378528774263195539169393284237058949518644846319363886082262192139326411124559877598546537126532002937085396834473833956830142421791440357372659917371405259881355273623060894386245278675476734404797330995142663548260475311854947448750961412865255446102964966061192463232501357109488085333065070789508153544405157788100493932987147880834258671475322669727415062001198518096627098789014438579080763058058407184906334056099117784721424360330950183235731335241098336756027594678976123797324957116993558185522576132690592483024681030075311916510397206722370374763335966909241302265649961779630679944527681314417006245644446024645458048088682649309535851309147328475804158473504797509801224109615301244068690532449223973366550268376433917441705260268312000312829593251453828732893243592008395099092277577213375630939108989296006710291194335720992799116208658143485535541687117245394278537385065297976105915564644826348214613489211252728798817523644831597801375019960782619659415319568990359021179405877180934255055749408426331807237377912114914237559897956288925685791949876894744842524007201947204467065624595483669659149518146800634690863544467598650869667345646502061201709647907901761850498995586509348972365750906635193666850623871267732741462824464338962137050196086699574879892867184054767562540758979071099101780887862009981412624271840910214318172900641188539916603613146606268296669331357493737079701040804881513961151680715850583173214125000002494184785793207068810891159321277699875516199197072290416465108012685460925418259102229547581236112599519470371672308110818121660983180385533373354671697216638130180125898004286839111891512678910070356397386321289670201889454426347541059355969260081754159829466583577019365419210767153379230313393846015679962498600966947877364517986188249743062530738061632067815422959714432292258786252785112041388570117276562159504562101691841437003211123302865295588988604294379513049211043862903167662834763065654162417929798922403225523806152951535252085828743285123235436030066485282556448510632261465763212705122003476852361415866836383019714294194122513371325683586026059966488355813814313445257852212369237782890708456881014317876509928005842080876849593919989864111747030238688112822597068810531575973667629119534122563069428042687793457864515087675122072896273290743027149189051014971968036195298675203309899281857112411119757417551745465106175716725188944910205806492402398756831307892104521872091661356040082528811718886213679286131106146982827392899230825777953554211930254274586643381329507297441846334722020977962869429552173080017817688759763670989277210681307800952460447906116464864642417065517204682948103946476190042443902897409653442532866324555805722255076107711906403145045093246441868333554354135228788359476550272456922187220371892071482101399981743442430064940372646652794694968307415854411899630980945585581270812460773420863388280041282776101584014943074411757273720154774294654204646928930107389697079664127907375682557432906803373802351832819999040071961305162900547586846278449211065984772538457238760276702607106322288320831866771967930217819945014329765781919982533943714305677443118310219706060874681686376222282842217331630857485021966080604058763580949661749770055739675740670761535401815524146200476068110374163339798409744293935398033271216365371432559468695466491169928342675589405969014143980206113730917253136096840418481497036558485212659311504777860208805348078355330467519662018790143664868411507200277606107459940964453496400825045456268020374645180267524730297551194667572030993135136664831302685280238057228137157174338928864529903482710286067786419645832369781159464116156544068011890041723203523105307323223467838611510212839089031072278288120125030333413471803331344568452017368732483447695330328421212032871031677373354612847954125703235451496565719271107569354656356023167567283593526369933488389277184166876817351898763683318835206914514405055057545511112101273670526538611136995322737893020114954236666479840093566271407115685936371285165814726952842115374425136576131800489670969166056676398197192134103407584636866975041817060673516151459998562361662094418899562171639276351735774326908588069549857703793667715232040018675464925330923248639619200190119277460156821962847113599079077908133225638456580832035297252358838646908494792527114321238951035058957902615469247421108540479163845850414674187054982787386921461260334556732523955889719354269241750278415454804157513776839645141200239429723032008351278827423007067290295431031731627850493480677711412421348817393502678617857963684908746113697839503473753059924528932960773129579041300689628265317904085668172737965668034948934571431970179469218151066658840259119218779658507997963505582030367722199312184831831728178774584647876524495396598231803169930603220586518898455235635005939476816395180421968822456253590589765585572031776378310806490673180259733058475982181187946294198075476828595929594976609820436070945916873868189397347341492354747901635565287959782967026104861962616968604721627492724921895438131331405286719483196362367709866710693621161827223834812670483345091087254065154629003578377923221565790315863290143091447405579733472539899635245661726931905698501168160532497626126712274862203775117426363301064710551837492818096632914248708359227416205326186221053543336974881541596513397691142333301062781007453008427582856881776483655553721922560677575989766283600490061506607139678761033575967961825272332161750107989417234019227273137696833645331989561462523737462937794383859779298383388472675182648872585649394089602733974944477411203818919044842455178874477504961269299240488601217922229436244491571007823614884102335857794495869783334347917161847622798673147284066770439376340569926691257184505582748960154077745453544270397229590922524828387983008634375241052105614123203040886157539456627449915453751761279199134597149813739333560289280464522368380232662405048190205433456813787315147017984456201930070286598798489108034343889914077864833962027210543200124128291529143189009874170118457944327745565702044108360977507896883589338492061850235627260260290614220264195022463345465527544836136903094087789937430181761264236906549316411835424433347820211816855339256748665780708724089776860439877200119134736568651544645025966764117279334898878709438996218653757660590171125331947923585804103194494582392123225887049174336021637963969320986148357607222505075203070077319064011602343922853628845700601890424099215779854093410955037155866314334783477487642441837371661463293034558350090394144285188770854157767005185384164287083671231008485412031457760463188740138721763106337157486180648102985294458348328347694626848409959125362583135294119331024114626930784560420479792328593192141208526242412673593261610968749117246399201003522427819428794008922966274059492812704876277001744576704115399000778975598075261045277525087330012611185101197820947448915315892328885169179819551123247971813699418573086647930648661748083542821391446246188397158097712834697203914836412045139432076362810164714497342103494771813231706415752182037363071087595217069969941069471452216917418723350564788174833589141026951530004751672327626695098611942241119981402942738748761615119529696746936779878634137053468726216492167126958235487082324782794091964425891876911630146964713067520148327655414227524145231918410070260682110109462232360044964908476864893858606667301569693522375871247987222787154530531881175129504593878805494025986115636763406749103812851528722069484523595610178908951217484686034951177096553129479109843110802289253587330619408339907144041340687748246158440023559667436072007175599683695018103055868069655123376845139529861572899135357315415228494465046626381286212217186672408760545613711294111450019879168910169568256926175462285074178154924250608016457551672377967611227941553396608969290754341064251678988003877084142872317119298347685403358402841467144462726424637298508206468433176728246862262141573870202858588145979487635939034169192061264090102693411702066206521994711664670559340690850124246641830810368690684861824306749051586636212804037232795778381493517398211093017529413580096401205276543054755994690408672847182523548484854813877158728601359082177188101020717125498692511831384717727397994743445420443543298231409838123402172049397843989682885954977541732477513427800115880016210537504210658571316336354480542456165424036746672181227053673116639472056704775819410506879355531181461178690483340696219810209815067885633986711552612348853552910752433321361240649151417421357141818721196668545411636672772966889332768090859208650670849628160239774772643289496767001524804054751617917789527382475640854201770246443072328636943967773993825135944418484840939175784955785532867106993454337792917039064849810083827937391831731472444432777460194555791574656343472970805326938629156679534629027208144425678125080094566886504025500954722589185096813672630976373571630560544175017640429926541203877677289650196162091363861085401994937999978951552154308187790537037697761880748737310409654790916832599412861241484323932006486273230311564501739441563726961897679251757176508761383756804058185225667662337159020514688480704226732540766508950032010541888779526510219072792665320149991394084502178038607305796333267800655585001353725749575094115614458492717555361936028383754343740392519412690835261403471618040734748962438236181229950102987090622941817383155635767885202819621052513732482950021239855653536465139325243044832994178363045418248091795867503785482930335606954376718589250262807536437632572394270567438657722219817109336495530400179965415387336421218852512662155105470179499493276597022338307420251748970476183154190316085459742791022450318753726864061528343374216212863385622490841277646573506082165885497295920690845243083029335549655021467389131117777966111778556718217458394435072730496864182555164030395309809581151024701287566557803182891530145487913727686563525794472786428982180338529065193314816392676886767373426770521181056734967391216239202618830685716015814445941054558589573635864736603970117721837315415526601851600645225089763520328467587753596989565303119052727411618116464198171835781987405789316534616833466056948636520507690934609331553999195863197577650865707876230898357199273481313614733522305512814286320911138258396447812281821766991499667982567187744367539994525777553124855455301251662899319119005181696133435775830583169052659866687888246927851984499355067768728039770758562313819203833043649396599264396172333767158169158930341969025348234410122285014030957878679806557544331773200775689586914876758871918891292984509852936165259673994830911521320858514386417353471595853425303647799047482225659742674342744354763850741853277808714590381141806630183788797203508324352977012525721979441079606078573556052951493226473496872614793527267531596417038496034538576051177262169690844834015015351731120373262985830613702781365015545717474634064047100922005102164923600280323892354878174379409769213994479271340578964860792446777594546395427148910367126288937268194297293470457323933040041802142713218093737640454931827997130258351333025692963111094220907552705031578797189172250454856273174905800279818837103569964951613190818894871912150336962154548753187394445719551328933901201316033258541422027610995413187936166601466093686994506616044817693688901072789108514079764320128683202777398260177960700520262282357436470174931497603450474762045398402511232971208275375513358016950710861780557076726111050649346367355694372865165108816367083932401575194130457918299617358703440983743441844878374947711237729632183527002173988504102423206775062450927151555733979703854390832318193888871344201755830871958524890460307234013219329498270423809750733081699275076874776239603840867368903546630637985629837160074153112468582070295924598682064122792900237260086133282170190386147710463904456018500985142493274770019647752450954040711022952352961193891742699421069309723621133467309723993786866660898471280935058420690673337601816167225184626312427282137676941758590359801795030154134917525062658371711196295018338475553903124611273466707660564391904646914038382863694435299471893078598121952192370530392518506746308292695182500368772677626367162145097922450999331094045196807738847827660766543992198933863053347350801879322013606417197886819016235713055062897684516660205060361284161073183768564895273570065129968822151624678341424080551641071592758242448377850055832011972963635554999708020400704358945087096477928366271162903057657075977955516074679063925011744682463702840811652901248020150329661942343540378778689374156981454160123658425038033579395960000596727649637807087041801910553591073804088349507628890203547741490702684649660848387440208416551191946180941998227120761845569279428036824387027606840140697662687172640295125308462516566866914243798893793440687646569490323571493249972372394237339593963298417741825591516460705009808924433814951897716428901634592753763888340532967924806883731867509022673137610909186758633622203793087283830416908456275602392801638464647369407494454748814229273472872571982763352024811999688541730161157949321977096138109532528983622435696616341902878545187615560767249046997805786184554531416080779357104418803843992359262334110715836251975292062099625666847316027143224118875166343263606167291058464376680036932749716559731080347498711679811786841839867319108383430815284974461915852481886662929971192769851195071101780408484189466500478547162526697881217650775992929432398047861957987678836918131672167297437527931975338941222081401607342175772965120832852490078639634949067876423501892214416913170281825616644174759596731741016306442439763527796628777727712600717410172969495956040006637214334419986422415096070743215424762111108639240057256690783675647804909559238897451089960231693783933337431566431112964070006209401681988037083113370518977251788239614765735614579755393556974488564275619206753493936274617849735262550787372917763249747396590920232443459946799281662681165679711390903198402811372498911765849595160638431126300170553243732996022042605073877843989309134578256137139597433491714994025216781742332491909452949607842931812924143433072323964899627618096187387119028654934968111372455124353542019796729381155471350690907196054373108723024615390552879546103289341849907076135406007185218056580980918449300641926587101199407791323400842770254286397363126075300217513382429990069840744310316320050105888717608753136477218751319278773009845274339531538836875314164365815348128481078975958546383396615093732255279007865007897006405753587192420553144410941040968403484163065980729289254314789808559535980020029235261048746592260061777633843479733622721656534743223854629895187655575864341351294359909958636083971728765617768788735121108404907709489682416218937617312816231781533031290095055517546353554168418833341453664571224566523709827441721878196984948322673098894022653686284495389622760278190189671283240863815121754084423733907527881200029773282596168091991509957551230144933025342698937916816257472542770258633024909877099004042787824429607469942538982044234832110252247652859000802844821972710959380135154819877536367874038151386541519318227114647272312955137172744314337360038299102688987098526872477149728469033507235641024353001655701201596904008774455133136274274500353603115071238193168764490214783082901312318586888809431229699319914776641188774710032387065071329950243407842970763391221797985566299152005685046423404727869363538654117330796532452800978714392494018275595921534758350700750558535419553106524273580524808237759644231525223473715504460226789872197334406976908971674657524744802012024478440119604968765813577581494449476363694697465748235447094236929465743823669795297558537852930422036847835389637955426314145241923340794244199204560582487559442880425022376327092719366772934980286593064219143075777982424802223163019098430894770659596186620186332495458876772728912884495003676928391014115745276085595672095415242116754339526932147262763090228408695055774270698625876777887549933459928973422059158088595172709878791079513335075117046788400661274486071357195479082278335679787040850318547027740382636070311413830035324308471149084267546369806996572338619712860120559225090223927583464447107900749864738528581550323853204125970720812925734503835012074507699649090027477838536448124401312701302461726961766879893208490611335875726287727150121177374547294396320867210598338585251000046297280146372263935045047073697017133850436797389315265613223224948277276545556663908583388178982140996857511785267770661057385874700691648953544168906116983135756474623632640980553933404546103798838304684606224653881041333414053912249389607566773357194780738218161181966334507947877072815446585455111401282644369203323269983274035369320497366892377341566851368511308227772991794939833769608678907272571731151672884706752711954554777746533149605242936035573919958489871611685781285867062592048335825904410985423072514261271173073776166988209346635471436714761328631969137101565190152231159136250815850151729712858240299024563462758335713363394316235375934695163622815430797442059233166430639376764727683544165750245240568864121524999045460574116837027784253501935994201313968264157419924507492153147730660057950049264816695678272700397714825509211894123121549976164882339683637264589094909181897434225447637317212218666046182912119941159669802767930206577516704792876017141576359514963098792052712573002405706206257417253681080620218340075088869761771324930313371326712815334096242225575374017492591009538659088660740876223820724201415506651607452231284740471756359600306050292369282440380495609263078961654280176959978149106402261936999721641908581722110329459156632952723020624842818344631929190927941113407605880527193139687978234458167987389555898205538898641479392646059365201495135292683073236260283675452688386710241714743880158476958310283267542194218411293350030822202121993978410322907095061766931840761634249855717729079818002377354979275367115092234625137567737971165013145895237124538695026766412218759631636896088045898115707869403215816202080983033951887740829557752720349331795089777096770731011546520863727260901489527150131421608622559948990882835541016012029449243063035802589914952867166769594134671416549700250750186848373201764513703433161397365858124754972233443363648340809458419717096608518553834591813989772109625400765913104329463505080726888949679871473285865700675148716499402210768620314977310633116547990162634303818029177988198891932146623222287300156352135736948112989908095090845497905388493002810699226369530612179125881773581389615835299150737657336144826004186001473177765936272586165397114663479800395798023735928292625906820574549593818235562369810381880370484434536425461373893233657404352929306759603196826039594144203005331457445189337975787837988192321301562911754917840458711782788282131234919917202839776876869242130593448393320115431626341105193025155346675800898896367042332522484895867426405197023331998488477146789179123240639884853009768016035689041159717985094209442158058211090091944129715837276988866750066955042900458100202279648804911033181174050297940146899375403550399709765548527710575728869008075132128234364146654738462366010510321571215618613731988978529354184193405730811422991372859407768712976323676678083066583096065336047865424646842658267546676673413403008892787526666066915189982088995687729758978743224592050137684954909222155169965441575064282738233196657115665477731899617329184706794764903844433662609850284332440456905978578110578201996097233906961435105764238511652993159267321806097019209768161660054576614172905416225384398938919901771259007645304580365645782388633728585671344784616734798383432866537767692187223337482825243528809796700434290444835855606927690607420886190220715826704797764888974452294000792031511198806602050685016143126663137915515263148954337388704589827383398488980140026208054045710538050436270552631985827310748761086927424853100729427398282978611762820383779880593790831870997868334971872259221915298043741087480616127656476885803702929583273433682442702764117446866379763771042458268025489156858315703613876278710036263277045534365334537430979807555580589499883864530748211724982263013072007473390875406347122683771666411280350245199279079083782326066550620039822088531919183523133699974079230286641109254945072865185821669866769035891503387228629753569183493867546769507617232075640237196175139027849949525988930741517942441240501748765335754610970258402914753679311834742491207890952220136566869565393786608807258133545207120496026475518355368749702755951746483708933121912251697520687076965107612235678114965879374994168369878075611026456546491740499520383927932626754617057544811529589110474881933264001997832852921503050507363906234430137459314401449750668370150844198733176091026909023144606591076970743635295738115391808894085485415776436448710015312368559408411691536634311262724309317896763899381694888740943138718176173288499608454930062659654759827486799744304463456394758346200830709994112100747754537025720545940158967756821745642310126466987547028290531795246624031624494407065010488370284614892927779709047959479849877462682060519782634860221992039702506726840906895154152793257555847901007896302026750272189336079034923479489844707927824158796364082317046989866583443206492404246554300843016792204741563726471395677338630357983953980023300919593746700592325353592725806184869535162834664328801848836042048798750612984139234428794971987268639761534285442952359503849631058100844856972157810223560866741143290608513260168340476001778755297833302174549456222239324777494779357962233529048260025725052530265294788859275057888240698055395210507369380330331219177396282351753813676151900050832134166373496770698565245986706254508834205252174891077306287152171060764254992543558918822281701645345114667650094983238726325252165008847495961922001876535873949455683338766734845766306564138009002454459715405125360307905985926672424487970905221579366985661749495448642903137256732944791402628255503685420347384332217558540728233203492720980312615986234108566936233242725156355361274579805403023752990098892868155738697489606715040895744037271262699729042069481956407640494192611228743219916934262720560429078217756134629807086611678967771524936566477226407257847747949673679025518914621372399930847752243030429476933009338880207962091524895894307824424955635755540661753026817280106300033457482907498912048406423501957405523566920823772310053466291808957358368989439696041533610652388852446737835573746399312265591039027713081545758091880568525416596905458368551811618412173009111208505115566248379785540872654047490291497901170938218597651725291241476816736727369520243928195564885473847497111918075954177796555712158679078804885338178789916615425003019272990937172052964421056540953616196862559323893321478356402193526558502061837263479411551405505011851327508356681837361978969566467667799037396329461061032068843081309450295010466448843702002655360162037139959455337881498931067409084095202539840272187288509203354202746980216353985417639848061773799744668513911919688438046133838128222815035060075666645138511158309423934382788274947160201720126344017065688230841563795878851099787275931554800113737041494486767883287082840345461403465650968569060475492424077541325765409796644920932603604565336781327841689481487335696822412997260558263726342414732078801432600469883467775012783568092373356022737075662478225266552536600179146195788521109168667019054007060009049178825641664763062738853197374862426690887596128287724049686763047790525873170413893587852464838207929864181515259797514468675209054025290294050717189819526034415343933111297192249224195440003813751435184254500416367151088126688519193755745823716468310133125629347977047669524781485434543971191660745205432575122837869255688367419114623764247724633049178355908805409783176737333738315551210267833919812608602463298474440075867123862424629288146219065850375275655430282450155026373220018653732604690293312454842121247953494819561732986863409726368701293111606914041806277140252897869385110825575131450732923769244133948365108487947678863519231260706785790826568351042689523343445997701459317934749878999921740931476931208037660510778168480489147928130910719683388261422633600395640689527753496249274632929768798898747711001087703322126914485467805689545397650416638399698103213387575675390100502167753846930981380713927000902174889474553781652092496414834761791024191313015033619030986267225627659260566801797686671869376093745167696316351789886451191823605173541202003059447814625504606679642299529143318928345904902897942164610368358526338642499155451423270002886224168938947599053909663858404078853089590267528289437407650747950880382136674765802841085961476956595907525573178362107904886660186561014727106924535646640638048463012250365935460034638996174612597879709822219100270544824848667098945876057654870154592174289811646859414269912362608124329852041114100543593907649857415506154649961856241761501194367302239999447312418612937216780130313994253784392751773051493004739397859207762383607900101338425704982894267545740746702482146199928793561435927170124274992332106089317406581076929023513073095441803841092093074402181456202073300238205176722064342266921798466269821686614062127504664367728916409757464825300566575132388563144404441287309831598342906351859281458800927767567407607273630112221089834730650687559433213159097211803125051199615702528374843098341149796515132482217764581873455173468864551652955076726049301012775869733437752690960763986780400954290063842220746359724788482671505765413522224265585142276804925774976403097495896705931818956409194542521451978931302092881116111618997097753619588407477974070453643679745564127526583166271166539944510088356873183796709578394663030608492788267272097227052961437417909901538305395234741132259387400395461521893831262939080260261288997236348919471636977937690940106243877431280506014951215593806263350219957781183991985904334020854826461257128998317413254182885122189150812181584950359468406639019220362846786081919061596881489101878050302186127271764016042306558873643088794603130245003917897089808818915585520732407313304285168340801979423407908344023728642822606771049230621271583816445337313665638220452334516978004121935819002375050801248933624799484097797258179211928322992128333687531638917060257991595399253105304136610902414741832193423013163166239562580041629347646659272796525023782929459056699728682322576611261421800555740161656894730870012568333919286104392329409856590651267059002630000766087707573049452860899031476881685584828709872937493855602230753896569544627064646217640992819016241245655706643986610245158902335379887533521670000320399576995065450076220193915064605195662466050705119475928500719736455674788951463599648748697176667239974774136387470830195371779290558488396610458631215866728955885930538083122970178708181075488491770768944443064195014631173601659757438836262284440783926617514173722082488666191234315778989346947943735985702445941015925696141812504093653159201563593629551884061684289965483352189607275739026936862746473959390331384847709701121932004256086091238267778988304403351615072339240063126493576809786508435324062528761998386155109179651469699711185632729757267433944384139732797620188403957243455039634776250864287686214242831899990394758907705493710538108815513721655439522514896096203027142897673195527093754503200321899152573967473555895568062605944356066250583671939067257648391851999079503940834234533587659334265411032102946914921059734185982653253782281552753977760811383162069652566454485264552632403016789091975935019657258624756926327154053027221282722932037359779472090810802368576073783045912851789108275670802465631948521414531062874219299956002764041120394650253679710249114481814704573986015868664610036517690916426254748172550909892611823059367053899332684140211095283654853646733565540553862231006641056752890630533356117883243094458441046649921038916469321610863487877213945825041412050572857407761494817716072646558577705501379002737974892293633864754642753081480326540783231368801944262902781843302227361119123254484536988827735848331413478525074204549427814215742433371307229048701784121629824258494438949585355646252130741162392247697201086607723762499610807080581708536404265050817690969241162736521111906674965983162796542077028634427186983732309914135992711735216740398559748915030370585326055444534258543983906997210721896776312748213630500846740119315880770363438323452201069602745060177189411319454710659127560790023525513798514723581403860626186888178821576522356046741092228040200390578088216695234032853499306495120718042935736402074668856090882178865526492548260461495784093356947033048999749590816672980458222522270925881431292154644443893106016752173242797659184966305099487367924044920467183467693800257668342763175963811707119086208776503864115852999132522631023256119199222821282267969078466929842440871853049596222476550683366882248659527882823266653398344099089174967158839156864971872972678570326564370466773988555749297981416214427048457359862349428929622096582370496620814682340608486254167450471020453146128629649459250178942025248735966082035613385243396457407956560005973946217422704791434050583629909985299539824229513257048941285351348083575509195110284092223330827124564764473648093172107543207611777195214702350169240847376189653393438449977663952358395065009491289471748894035150029847977886668578923875705610821561666829893823745333731603023684446844069395610308108121137874906330659015918444162087943412754321504629135338233711595056801513869568134436550770510801518370482591786176186186069375745954481077478051401141218545176067404607385594892379227777110404114754689242319293359622084421498325979153811969632928758602496255738014160968414911552323317194379706778441220780809690319566201471912564549137940804611959453055092091598744179364311209023371397488312215391553697187966457695383552378072175914249183513421136338370996789413221104939390331218386917694364827800704530115094870208492897869236193255024571952494316064619786371072715995611987984958861896177847667365853534579607974332496398852492176757826470163855696327409096605343456012671026307823562670062882510549812349981723639047793127548935094077408477520740607413174155202089910579550619280097484134505115295368191307317302474558645542308201732147596121671851456513666536418119227531231237304457361928195126541015715842864911241721071902161213199604921422889274747533050492793020825551121946628278006944330600697930441671149210070188356524345854405899149458013898654668486336786939241553743573541748141698135859231402609190074756500187720279572375125005022472566025140916395445716767966808274051871666615287768507453551953386141584691277500393382870315405079379800435433240091363485392265984335967459137064145966495748614212356691974203123580519339845568022510037020773014686730813270742316513699865167482023354702480088840843044999088805540266221710029268153247869984960862546774486212384570329524893136253607443069700959320895829357095468516059908937849747312358002968121896936550959159894558138287318840544671074215998508701870031973397506710257231579214400230592678674056240665203483876358198901670117460954674577236440907013118400430372191750385152474069433489811494380185802606947679454826975757515490181134395274947968011051969076470945923061996978444068666208500261896746810467843076419138944177902494169086490914230006470105447615491343826368917298264300191520815314009522158950967064274245883370695658095086543168000807059154245506442691861791116523624817042536786009323760747563107191777704356488693006145527968751835863611648483819281218380667397833288239256986694857955632950703696272702926122604683716683830904260624159819931874843833562970434852961812139303656685861000464988738063166213066780600392561115912193808909054795056872541550233634391131198488206332682067035623293579582946253522889722466289711534933595725398303846366220885077746607415313160166484273104706763051825926657388972799470134056617728766342859196314314587176953216339006809677110329785705662327003493983845858236474691927302126538130123062098680491165492746745223730534802189382107428665365690409950260895863355632512988732495181856367796222881631990348438008775624232912202716898819585461221661254026656660561103594267247538381324312637888521570579239345652265663182810322686032673431109563432117661585272570930033946373809500929833514358908544782044055476326128911133728536630599757838068697716552442724676493109213704370439426820078407563929910435511944976590122207147200045252182509705983247140417777092101559806480007904767714071136762142401852652318938615854529351204695984044026619966242034507513742966644521410168845208366881630299317679501161993722432767993844928485882085169750947631124120464880282217916250458097645893122351516319331433532038054458457789134272520472068555435412549504120481161234050825498370530137683746600195986884649795669500577067309789510060029274146423044167896167816042234150694992476162330576676155929595726939283694526499194947679704388044955330226943003284609670207846414764610922711196297649023068976382240089805934942321706742548899227788667317221469726680437282228397643227168227763687230512014743996327413642604486732280747532519902122637603156999858102121490178969516226732241588497453385073947225210737694696205437216826858085447068100753472569958038385080341367145004837668682058810371107230016456419126095681872960141488687983270607460130343347639059168614243568363160280422054096914764329291159933296680624865921896790202689204538153239738211140636025162552794532537130709279367292103808189992579025560228460492828747288617275054333677836333062297022053599966616127133803054391554547424793655822545459122773451271572530579859130928217418263887617464922302708993198330407568673875236055386356448832646955280148801607574221408062242339662971449515899860184526744806566509130517358669652843935701532783971108092510861256501280331608118829283008211195726347532551456425416208359201526869895048744917109303084111463146124728603823180730384702459724030769984585663943190134435451610473048322930663444871002107822289245000938400667173958972130200307183659310283425167554322222618933316400172214955284486280051665175519237267494220608160223544477922496731867704541158283914187364764534016113567510481327057652622808092661200759420572662558271302720457283560224520351195906619631677706389324014420646154506296174324713501690166691938788104145929061539210052432423905375648664400704712379455366379867089967730980035382820814537818777732969997471306337096229959893373803578537370599423175706688681419772724236855102325021487062178280869171378258051125158766863255194921887915571996709319548150553048989878992129435257469509315635834439289518061783551202160801438548483074720494215807654869678781379580527683416655521823205994161331780219521459233333207820407165985493544420360649450158010281290339291796407891711308665205968175409758279584674205382924146743131854130309265029894636187978082938732050911498614562985475428993963346203011736493938699983486721738387430985645868956532988296288947503198557821245836812294274808140163279120498086163904804930488601606110550690115630922245548485644304985415327673310581283571455459264015689363882816843326474349780002710678463507794503794466355116306618560895179685017839350915222355249466053728604196849003305000460611892462196937472723402511651561375548838508208143899492765748581625282642812915157156972616938743591712894204757197044179435284050608674794651077405554892894914432168585939368153278833818349784066480061661300568276792041819847908399525358086556097065890994611737357353250132354544224175380118263530139966772357011654162016708642305207480535779789140051392752012253990252832368952840005773477696652543555243974296857190400634377755324680332248279011921734418246015126951755180574263314614669492459001680390539121544727630973670368679190013803055775733665837263180470943398278477813066016506438474984161919454977759396391538013105047607054074231897483033534273311128077888665850484126367732097938567310633858303925512381202343537292292825196866853623014585681675195173009738164575301087153374136710979855680696893001294442543582303829914624517346104079402085702960269542759110291622048388135824072209660377671911858387715518486027657935879664346627277319860452129267966443450965744677322913060079753637874921302401357945949547273271887497165620967854749417040913390028237271793008602070226848050427073001998377462705378709354315501019754664209362980361357255685636656993594928160140776261881302029808239881095860702903151791958480214305516888875531839452912632855246652240966170823056727292733227292153046655201953271347917965098690544974267591761125408901612619982678366686129314059370120042663641921129543019175052822622609610049663392436640093875816289734383257746309118548877240443754904799698682983569357393637487627540562993818663484124025953956202959694972550409500323854410717399635498985565781194163973447160137531106245954731527389482236212922016518320937025307035012218919784441492489277837351536660034306398171851656841215774502695679347844548563197561180905244165007614314637380961301446233761123105152319963275686270224237059779483855705289716114863851448535477734558153422948665811504595244632875143452652758845971178759390333234685098025180170711752636053662287049756005894939951559319197402928624963463493620891978662743944424770409702180833576058560089366611876942130378252941520210841251791396872345093973360807258144400714544426181200965221990372512745778080821880772495335569614968382471403909528768982091514412229630758976806867839500320816838653109451530475985100206895208355028987955975865643164577149334228917464282314340485010362563505452118583500647130530405736970726315816530611810680974694122603124717478307091380254174560250072187400244391321241375737899834843510362770321637422656005260385213459426998563518548726240304416062458336455870059169780023786104716393481970006377477951577546560664720819865855376585879255688741671913376119323275895600546178853620110644109146013539173765608457659800927108695050943135423156869434638984829165170569247040331175729088996521823448244873088440351338882028556693933967390339194506738911332412562006574800727059986979733092423640960564929200826664192177480298510077065857182645128387691908600780718122652661962537304956285822395366422299756624036663183490895717802602248030023948644880271999139229528070667497166953646075569099526728166800740911638513188486074256708747154675154320086701633121403040738275098526132999809492039525093138580784225470704675825636849176574784758817067630656114701260321248010703398133899150335154408340333609970622301215782756547134042327476942136282573768005746819758282023561700437881214498106317390615584515355679384823230662435317380837225213432586907949212341949165591193714397167153992820615201637114499698887267926204060991211952317866743450490825426794928664631712545710707803044337009301861128721844436624007212627220495929125758832934196382035842184831219697365125261679145545111302689162450994738713903240571166183750442840054209178606965369647846606203555529477465162713228276102870355970853770316117920972438293627910267848771746696170145828090378639899748220846707592100642309485513592475468046636123761695400071645236217717137935752125051825864697477019595874126741336926619464675662536082660919169861761610896715718684988304175640986425985776947041302231967481344204995479203591944757483213534161218317887212500103900020526750962480896812316655681508940966982209364401749549943780363728734108292755580177569290158622697554180662865348710403228844229970514200469209612061771430002560989276629327864291858438215338007421082201864576329118116231142211953188368828183186455063181107417052898741552175711553538023492533673846731216836795618241794140352319705493032230661050734201026169841784480552376369318038482520727375661326579177555810206299553931384415792185205170736129130804726013858641797937040650151671355509375681106324561898416755588053323103408288670069249903515044558585367950137493989721312447922928922716866676766206614970090387527547286438341444661749230951600171000752846275539595726481886885581485637165876830396692791832055241465530630985049735622042524550958432308967429624083842638545871790230711548078863399513266779402963380036650190434332680472142272551038355520183462144386216809112989235632057010560140657067921133416755130680634149830280526227047239949322744916189368170298229119384705960545516205291257686199360148497874634038704869106622339626966302367661119417503906042546781368832570668100766257915028659571136455084727849842987969570395584697284102847107828072633256694419720294582672699091791028603543337684186073074357100092626277636444685508428687719962935145053564253730589223694220423335831414614911713885121376396591321123627377586440815061161105804909865146669799892511408065654976328904683064142859925710770650334918797304304473744413206743245475371850207680282202452334754881788649902035359951302323418387349309489497502905395835343968374724773920450823060849431179246497090188003017042502210330197929482964960818266274404908530106411130505375496813492106901638128776944006514617244719477287330204848717704451757972565665249046914715157717237133475136108034985467202587729630311922143516655232077950812451732059221728759409551550997345046878440703678944742475526424097835594814507765344484374293010323143241958015036399661514872243628902831372622616573130192005036084739040147534453688559563959584115080203830651962735250150392333817223526172357980953846778131709290748455673082391866496173010519806211962308400706474084348050285409941656401167338772057020849410691592574628669577671099608057708488808293142410726753571353734721239995667113751736583360361749757984458732948212630354187149661159243109609502142945761513708692147892719793293474281755549399775390766967854559650321639999255610196007829513879434301625572128794598934226998713543378989176111300608662742706349779113882129096542791254169412156467362724938488581102895333877111687320848814759103653127113097903639678446365446582591720442555427534730702116289907138930702431589616094410930478229114077458161292328781514865721041595802703619272397287405348500979423174937000565604744335547893254957087096135511289188148412782976669928580961135022246833380737132434839812552177062885523915093043389996200444351215964428098543669130859553842350285204059914094038015913487961369596418928121962731774445665769914770295292525887840920112876540853494431416175361511783164893626279097337674068728291873558841884489214569698864890439532580480569064727749845665202483905865710481817665422645146284742666288871090035516410880477999522218011931030854962036164479176933023705380413603355255065404246751609678612538951082201701188570824753591647352373022252498763231550128298557974489005546686191666877116598126566532355758602795771966558778236652933732419071260646342802844070345686824567296075720993162055194862348177129151506923604317407576758000953179023376362582645510686485158314763871307688333058153721102912874587352385070251352453088984104295383647742797687601440483023882319598199267679020609334797162058364047325657330265559262460708564698452905948746633554646853487666475796245871414860473712700838808478239690583445739478416167775224020966442136381844764447412771749162495034911773667136463665275103111042825127935429054961646799386410779635003008060664397341471856095141257033231299231911296604726277234527398792022995633057424373958782179655173546900552013276681471481373447980289457166117317524558755305325868971205508255357140093703460936561618966404064174836478643936333156771460495244309967505898760844624510242369380803552351405813286554543626599110780852952515298385463190808312181900004418197362455893524908416193936793234707718031584930741497270328314818023179345412837576224729535799695079256606274532943631095757365033018915012748703853009385848783290225536703075226851150929575230819189414426571468242152916355981734317837950893805965491357169081162203579046456013229750175988254163564597106586473717605386399510299973054929982593384061194804888281538136904550139007561519193102528796024943780431344576203639699955878763143386786460735487549176890965246924246837735668616619864299277554423460199037852190257267960869284265044198527310834565646275319157728661075008890511307499495011193386984729334180804503061627288107608614822788305913521821683381292441882932868961224168712692266552992938355688476741083442617568362336659395179860579017719688872511714384639875126782185982937575218204791773212194161639611044824346348729007438250561925147960223578317112494634873027875893482953518007466625632568533412889229552526906513716316325639424876040195447737303237489176357021959113997628317510313341991845887067882211649654664671761355116931935773943343035931049135780273640549075135488534668686569076060062193737049930536147622795279488477503904894213904387874631927056252297246778435625462086856661853471561829367262286095974792245078304125018533970765345247791651316181138565674852538334615507154937786539544802505833993546580955712536039472420271248114783255693181400180531683371646294780812396024591760278248364924257520011637944976387375011930931090959492650458129007362786908076323101479072105915269619388616546183517408420429873036665942325293118721330735508929560207233009961839251132861258797519979006203600283112127011560906420949500305354871894488820563532297641268935616596992880354905164239623601479094273572799352886604205851123365967118445010452558285151149790418813107970266885167983405285360861640928598419431032477628668253879697145589515537103373873629516329029697474513670579996446448797120292742134120979566066993822753553783218359347965779302050428441330723889577710414538184849578200396275116693020632562575345828485994651193871970801504158965875207833440136710303314247855657002392342003574349341596795294014019630836939427054785544614576558675218670253223382364609492372828878600252631965090794153658689288974569323643525009562476145878842217105063128899685708310443150303015758352261184378135958901173552111680279449399491885643335632511000329476398971040570594041300100805234395370366174162241046572011078229497606102916297280898145670846401347533971915971975037229510274265538499645518111620407396397894562544754889369152838327917730910041196881228865390995735316326036465254534885950231783094664402645727710182408568517440893346210807293477231959082397074508584547343730075953602694472819395707098185324473530578835831818638022665530639649634335266890830166076502267287488719563889493255284176404155271308824825513830171901022480072612319989637848458753370646546791465485817132751350144787716381793532572800702998279587175294214311769367564928318918258210401073142997126669498078849391674652585751570248413042122677105046344132952631095040621296070406225150740811078824910082458068237779738755148983773505582667538627294739822684131761756666471683190118270671630482675291807512913405165912001580251012814770091927343877668820573662302867003441106617887022141232055098612787488259982176884260238210958786575009136564143047115359154522313911880377398508356675269756210526881942238494194569393325860781853768073549004816156580375644774417304346381747404160769257456342413639514756388359822608679671626397597413393600168727276448326929399805688948392108195919695658408404369765475711824701793180652891489380939012262745297071639003635945083600671074669770099328465245582358471576700468542294548251196360603512027831163704404812968821137292188206527021969713177159946026863639906396813892224909317509957690555419103500024077615101765175175896158352886994919417569863703667922757344892008945847109191900166903703184268897789259300812421955624726005042015500830924377327811208149088972239047827998478878619601158805127422478593751732963128046408560607692246804289859648766119901612732189994946442623685046786684433104933001773116942083056746674769568249505885293789731787376508357719775973436193719337583038318279906449432265983789093155055954678459214315426518651762025870915770642207848861231594954332381238780967908843090451701306141726504616434514607644060506417227962815019497780522974120982354311841743788977161654368842218182737603121360400778993935790344287651793891902384143820043714206630114301865874770155169618646332430799779075082196532251142988410823874600942893248787106500403477364346624237143181089918495258029337577415846919289239155940025022616938932866141579817957454298843344969846672499271698454057004940069105551065180033112462992844899440160462986108587072111933690612648958171717242308297616189982903601517975439666033932101651916967290266653777394663193309897284308331450762843414974976224668176457418034571417232376953116716480743855933800572414598965477831271518734971009755350033490984586891590760557975382389869625846514467802135342566246346676693598721284836668237895305273435575243489154701238011412747394883458294147201629816810505964310691641230996549170772286931893100696949245385384191138682530819623342137775740812124115501871067538683269582653851455153658910775133659109905006245343171769117718024658570196204245266714093986412030441174731799801408467848976242061778147627426245344179098541981471948741122546915997096105730406538505818337697472264617035460811355565935814609177446429542484285849825073639313631051517422777100544513565919432859100159965911498781722476668279523323481275710601571945536184713900058543337742983169784953651706587944181755278618901322793257611958367741618083944459653715740434435400025571358031859993569780878423794192156651509348677202261495101142884335834439751947125657187682026906557198144354062950400016101152779472008758210050975217052110072946414202015541782440050822084083615424774558008553144227740612062227451693436491390609377922122182622720607157976655703527077272353407330265276990859584937857189825009002167818746296318234168404607440269866987675647366911172856698768984470269409158922269807911155553318656930051412742046892706920395940933019043682404502550467555781629228999401040022485203933602433480101755213387650159763350785214356567645253898122386549055573878362661288063926501138145473068911990092979641966589081435693682857864229037615459033512264955872949808082212372786838749839603332330671105623870920082563029341620448562547780424329225123498646809609448622291450354074967592076999945995640482058250532599251644943060400776331265186815314002409052697732279314052235543403027355043025378369526252046660509879707186085937386651511162960230509803941786414366454659593953723393192410294822262521696144913720766317315067000998335815596997484120517142743033208392296544335794402657333869728567573157428092393466655907098761365656151026653622381493912114737680339581059264638124246721339244608689818483590131966939111658714322534284765725202149541919193371623317359959640599524362791987536874384366339148099287691928717063568832656722716366542067861991953764321002496409076431765882286467277805069080478508508891586735497681224610670809629647334087700749693144569549361424897353040814396975248529902194362595449861640362420167191619868635150980668124983661267015256382915013381136605526452130764386754055288223667580777421531348629942455749195365942965088949471604011085441517794793021578001974841413552700849916822435024902838841088577236034527646360987129661486245130335150431872770439256434349358040086967915800449166871424031580224008559829753363009157208726097586082653274046017204173343300574661376687510094474974409596424329725940162165163781916991615196274269433682548938156283416844986560632133270371116746722683028660775101624938094435158118509038078933664074857318727435672021342210030153411735688105349420976536943565954887084927722938418452012060902173361954813824676474842558953594120893132496160181039528962655653605226476428581170850409158394500695978851096531802955320625471227905129082499510278531665360957458851079770993474769094149883912130959184974783575368576187002700255108028214414090992559552012745643987946795331976874013812591323491739627608256275959411530266405648451023947993556661629566323506441394835219240931261493175894111658509211463188521111029978042628806613390677491591967269704822332985687401592566238268619454201299052418673624340269951830608028526434361501199705501033914169098652122175862000282332554821958477445442060997487668640463748842836183945255907904756253701094074460545945899461801683051936161193067949559348479894229662562972681902080372559375260052999395753279232681574812997851719885200270065543993164574072436647953669945218453708422876516008193951286957063825028066358483525748954789852766621835081473079892903736068076911574901009574431031838445911902916342814415839226474055200519268106265560404757311293150175478301381715953386757348005384681634043095515297693534074931668142136595820361840097312428531200741568243209627142054003375781054373957520567587327444022780710656674914717210831742927749265951937038191035329280233072001581966541307078952907280237300465644171383074672253033885097681226215181182566350198338034903967990050258487976291847978633383689020258525403726869322531249657153930231645030212844436177548493956922565844435453415703664519369687646772965865021700933725377092613923537314387872396751927972663391896516686487653937370878679600026168863780687180004945800857047083294240793269497339881570663670032331612175340811174943395622211056669275372544703039568737387337836544584126241399102727178727075344287610484914346505987158130942499159657504724815426154988852647753785206887092370807957552576673101072533120767645850406981499090472502393866176886486993097122904769548406841262124012724956962719114839844742773380527291880512163276579922602829981900805528196503631958153272760608712767645316099387753575039249773046995888779773969566276312799323544183115322221633090940677403635426377266789214511604123091351374103160074244739147217817129925133789379215710413668726147270337428666803573446344539770671750294154315999984043335422746668284500996678072491512984097510053315169982007956083991621520542995093516631292988887041312749361441336448276569955526536925060202449962898403227758577385232001056968081890588207947975562689729465231990863359837281898598759909993309873886508578473056373331196207726756711125057064527892343662917466354865224718735224128573356351998523136763366959119124441582264374041912206275104345109071701102531249234067879397645059332825397899034675333412051305116616992033522259744581637915900280006493755512318578991250866077148855348895485341940660627202105892669920576336457724641029659983306403653100393387406330374629285616868279464106112274690527899001744454250138634930467682148579065757541627016975220946366765575669830766562786161120447130788492878032509595676958564059686215887752126772216527192980664790958189894302784490893880654068690612246910105578967621363945140767687972672195520571041573829118390670043420104347214484033986897229998483274677969840627746092392159194594867154489355247514912118187380747952423708718677094669309853674017761720297154750393801605358497831796414102772694106825431331844901694812933678493277920653890161886198462488863265968469303739962352092842635426041879459863258303239129327983200342107219738424569230197580918770834592560322586227841133702510686415101233670161528311429644880530272282920386348987903514193780655706565866295264866080631760806826446950898109329188352029405456061648543011440742428654309501663110708475483928690298299269595097175255009647431436640175843345806756850418393502281771140706010083902204564107041520136294207884502882430336782056602548467042858488093709672770237819060123708495555048203756927971303999855043317623839067817206383153976577062170499116992868753850234936995648377268081662027729377084260861318842189536890503423160430852863394054116309301074165873044944998185153600683609070914476930464856377518208947416082389031964392032851977679678386061138754156258158207775586262768084097758209839487754486122115161971410197884372131267416966746608723367558120052686030526306154424451237775368318782350521262403730764175325524878476480808384710380988693742099805294323095880438266577793658273836424289787673033756932146713187829901106216360681558421776436919224460392791750010063233644538999320632703303599484823346476471213382075264844423499504864667404285777005473272813216605240228836815639431510875797710019592027316567684239134101382344995200153053590738035894443657446654075653360551690826024184486018913347339158771606654072931196157201345790758199183716034036778700070086009714808041142132371543577768473079093922197001201318834174247139579720412892902135311331875343552295041545282201739419538108093166078301246446567158229778076094324907655766789701786267535785784081548050616857481706959361015737738728143949074338973151405659948309511046073778794369819304689453029705223541938578689428371207534114825276511058838229390619930824309339328730145269181865077422783592632657372173472153904932900262092227649966362311124317641509256620118327889447935756875460844804334407503919259559462948589889666917596261160401260902748696945029526166038902466502992354577351789468077420343419265141294955770345825635114407903427939706658433208738040667570395844281247307071507799428954187637225903089104113577728970278652410485916140045759109008490538872999528415701859031643170902081989063034143784197651094089310407555392777705107688776151742597128126096963374622128715524493768496596984770224079259533064588843553114427278579937238375795763899082510649113693831149432762298956460212469639009165153781870444937097802354348312941843057627494659452201607935823351240271546808178279841388133329715414540828931507231702075383965218089568971334813067503198838079983886688949729218602122325004385432831322606036625304383480998081311182716538487665090530564227468234651339032985023708550862346177270644922247595860844615410132207835625190329820884570886829522558992293641046411985264547999043828212424419629378294749479818966001413627981660850932422934805539939718654110896437667488810061846251258569260307567376226814293872345926526997105515379952966008055121286068992721035769906129145759648541476408103346398190829407673255858657519240780520238017239310321583084052672400252621807568938802357524772490315267987835340776382282336267099530716320487354387798082629735836000349527991867502936105204503809796556481798661390991046765201186766287046018297948578783134924407013386331103536311386658095887989599253074397012669121914937089270296142539926351424762320567671721189957668297427539313917639865367226670956952220728401656117521873359750853625147619466321219961670868976754955052590417869568388457751056825560256946613610117579369818344592418613301154729971124829770506525769196944517649225717854898799902610472842388577390683144923899708268124601860174949946518075032694603602252249308158536826756490392995144882865764259959951354102316287803990408289533420024476330661747725266152766305372442390499317338423661847856854204929315047976740528811670551052409653470554192263694474432038001147295181918382488737378932555307157347262277772906781588275340036325758138715630052283954522574960065607175850669300153853157467003692202834004840152116515627520903977123827100276131319825275977282598648427749679030505932774001897582918431357780812569760841282109123353388036888937949967037047488971277791602141240106708712073236259347262614188389588199646372569593839140642768634361761911268043528452446435262175600443561753340162134254168043597880246411309031193914816108002821399152893561949689032183868679439907530662744999311699596651307644832196506955980423688248801719283522901689159271951050270649220705465705508134851461399726819355315474466655002586771585977494353249894768558564048073054267365664544910859814585477676055323102917704843712337376420636078820860803707052004304473417808753214609547955383004984101827011898514542480262683499967813838900685531023382524089682938703376463680421444376023305868147822549445761854135082680976581429904075853603613358625383543224832429082051714581535835276320287550819071931801832432520991845792722917047608076657962337170715361132870326237999266975469404200311297537239446542699562998626994446918332844760626415718649690091289097872113525375548459946910583783549956414366990724895597404992631936823523178911971652137322308125445914872367676445791773553816742614325126668707126203023943530837904651254364754809077134253455313275184651372787954012397375214082474925928787144229912411857192307205793369994752580426476539313142355776673001639451033783422125496456699760153571844371936655009397111121619460387219163267552959759643321820838800537782577740416998787039016657040024448712600147173425381090405055584639004178444513433522603288082651282644125827057028474682492077914026736991216101542771082323622066253754381704758764088171254702902872921371128725758116199457784381961291355466906207436218711617320687533361693157716182112665418089924555214892589080718351828108092462464172578958484788385297241913376293278919813009006286798590827948304603578434021914310554604741755648716249721804410959044626856863937069704092841580062544065333130662058992533237375622635632315428603849992937387858890386075013474298838789168089388052846523299043223406375886599531412962174385692719702419589177085029158576525156879233718508378084465583566834890852172748309178460698376145622027950596575278714698665013763161831327075417452921930444107708714711572874521813046985130111354812689009036457826917425985516095565458094890296203771716671174403432351470773920250637132058501744010461066527084723803716545143873612030167295845917107137875039556568920849987450518043940436619991750900331944425483327865013077727980212605371713842398806560587906198549181922407301454065442987357218515706105444236055767966967673565735733074226964310973691315543128851406481262881474445780429959298741577938133426241132979591725121220252377068232509503077991621627674055869607079093765523365293877442737466410542636361564275049866019589471669557989486412487944705156242369864406494405850055839296118368277772989793375659546586269875219441120733941907454875921333969433249664391514302076869959281789742456090092816294870680336496734720532877324594861920234087415574638814188418272473988913394659900128150855273698988879263388460234262356532526117986298572495488762725084362596216094049285071757666884005619574848910940056021652638479240802027547037002225697128535320020452867706559887636487345580932772151005572606280806412560925167423819277454978160444064814719600846937915591454544271301134943670682800260779662706063865555039129345536358453261494597103483814077301353403936776898744033755934586845465465928284131932734062164549946621409851380524106046644033731992383692259340759310822629483518117459930748741844710037342543286041001625859812424906834885295555133234168768845686432190213092588415125498348502336390804107776379557400210792262851698255149788020995186074092680668764791065309620654176364604046049562547924430195874483834477545348330355894101658281488423446277836402576026899957511871272310444540501445487658837489494893539794385918258767571733087733107629553386936930219848010075606155612152653443653255801839302537776467513113344445561697036090948218859134077377192201395717749283462516788939163368930485022921470959971309554712038487201022416321225626147511427049745532548681628021241957835793559482543807786551812709957636524849447680091724208256680434634676652973976081375790690969989895119040419158200995169878324357588189025579859795851218849983911542771880359648106449759447947920928986072722062384440618598207490926897278056590575172319210143253713927296946034255234080905079532591105494600173624169597314868266071936636490227463650471598022297866378954132961197605764288258857622354390967201463253517679461755534749419800626695655961007808934555835577965141020983640812437255465919099356516389208623586154125411220444508257638100405104172023094113963951002230776291601141708718128154213876419745102615027148570365287027471591715624305573788428351886261760557647841846119442202067036779703440035277048937978610441106919470621526267801874721900979694336920618147786542287300239893577145695970790713392739895792727745133203072937359575106610691248879955281698456975070833138290578926114021526415688872125921081478699843514535751105978360017619659636098312430058760172758400900763216915915058357185490570638890864171215873017223953827579695667392342058506305452398662778906757938215376252189793807386090672023655839088709905117698002227830147085988866811142228175469542425389123958162442434805634322215530183352762374148818380027604783027170012428614861500054823207658622499013055546973553044123222562335805711034274662332460745727934540743908518196600243869859961372350221147500160979763762915056143500358570214205051401964019109741198263119474495287930536424555308673142508783741166299998714642626778583751768907448817486613800292708687157372609549880341767957008161663092198246337048780775032000136203292653706192042417726719984707178985869304804350711857119159474427293650481271167199998841872639879446653002254616027555215417655878361076451122875751677755648050670125924598983100061295188107189599390250874064969978845295126222016318753482480635591366968977055014689362962540895123032357484368150079109238849889868514732996936049672257462728392025446694872591868312921777809557502977674304097167821969176930957263069306118787194950744744814382778085036071953096559367818376361524660707097098917332185004956690451956426567755965624159208796788577497286654035720556838615097248100411305979113200776379179598248043357217649653837791906297330150767359411683922851540473101012464388920733326262384256334504370571834118045162261606418430212044078563460323822725334746439120603889696925687626211259318535876236125329950301311702977577339591741234790167258069408765797021107504409372318763025317090296978012102075946219758811869784370642758719171263784412032240730364721946972012232717505753208683183618697253640910095489050107726802817383834336267817785601434078145479245422442820605148245823687102347625121691743028609345831988311254288259320056212531986574318632313195572923636042587179186756191016313224147079347471912424704420642386729209814178098749152455530787087481647467530910063493143216760998451865583765844799840701231483105454754519229064280831224545767026707581902735276204403145386335330726045624776471583666151837547333997013343100346941888577876804939307135410141337301357083093584525790740729027703059221297232236496867414288775023075657585776572337250523213519200336219473704846475657896317421533236097975495438925177195402759802439158377701080207434148128475705858920832611550305754357592134786451882456403668748204570834278463201590360048767686204094237842662691834472190594864903589132990022913997424984164797521342217059295257060626645026116836494768948723935896524474933433419971909865780183187278352298536740652708731068405274924577987029156108875277144038391223993791617067971386900015264717807107132357134434772259803382734980881873430370014231162739865827272379748035360736273593350034015589824611266204451771748144762489268441482836125036834238068901091623700663534197581838732954843906313405771267672922354923806002276558553636514786779774428681666396414736542705980650735731090270635473083830361018081214822713245803881171839452934228634474321948913791647385205912734941480877353238534308668352508281233918406570665603656061172601199365263179891534877112114935907731589709881395329302232005932016940253558565376745273139546981321703463306863527871513357913044014440660732216247816240599459537438169262039540713631320864829869519190241313763229843946745353589506640451166629257915698342617929933374681586165712498675956563575480150264512767512447146991466083818188575873640348420485881727243096937076895063323637127603182291916634897557960644727812393806434696702986234713158097621786923330369209263206353619505939855600377501176138721552934353783546748914049095724150170661104556346243850931289976452797072094233946576840249175684663099847187455273216459433568227416271667101962958002696507981386460901301996956754796653266372360430375637866689477686772616271764226623762345724561457083910320971262126951142951176961250818283481001311199700196786566313672925877313341893625680371019408790823979094006017039238482528563886749612409333846468508922570952240257909626156287225142712815719147187552038494942963388270149916149523442145580946212057879775069087127987728620349328741536415159345748827377778135705370391525231273059442405033498487310397020398001759371554302661614357251978709694751366491784742764262611592331272808715512442358611950682690760167465461377986121964317919156363708165458890702862624850244794304287050883932590400837284757672201841929459263220686897604057780792421793722949286483370008740264790405753836159214120567190903724770109595596052897652325812624095125774796546120992882262947171033505637216779575339315686260998234217090925001614143007707615469097980490136417896488878073364017002680443332413969984323844616072363011504099646530261602281698504099422988771661711311845607860706576331673832569091189248938672130256763364109353060609098963162850464551836613924080809396382295496165365467747126873678005641229495379139287074913879089902820083521499240378380950305243261855358856347600060825250060033595831620635866471846318454872261159535825988092950257903607424067043284470619250873193792544962454162056132525905976173513750148911260487091310108699102614246739997481145051691826272325790624896183134412687187442888849978217719895487315303059336194991790459080503985673149450431189910513354420825255591530923450623786010699442756392469785513493693786184267731947212709036928214131887533070199126564862747063834798923672008223335497846999459105944760205017045253588664339483503063068581270917102562928536380272367677896919171821182743526683349875897123769701402908236726892120877978709197221619206359822831908317783998323711292032603589083617320910409770683860567850040825222682742806732244180779342258498985863674518378213205744675422951153730673423008873049728828516659139351379280231113352570773059416197426729196196370199745741526825099251795528541497201013685475429343310780819842432573559926505224425321678587110739945773639517846669637232753385395078023891174848528808365245930308242787706968579513647971347871246764550544806248765268740462528848743097678061876711184627227924934519920044563163341371321782837944275790560689368330100594537750107459853789722102634064040461533782165435852266293365780565469367241331745032951981652517794559738530981371987851385141161642289774774251744348286402643562724559825892125125187570144417588304024794139612399542039297239263842131354515877292917134839784874673279483395546041035085887315330071229703277876854065083122695903054970103835549526213271020129715830769580091586350023236481712564943794148994221118938777993512810350626126982837099008315197263969252030873491249532418322487428853935771143008741570540999421354067456002829554603894012472953933830296660507865356151430952139856871196529506194211251312597583823755844001991794989867508281566698526074892174401920885045960617345846329560852204276849716417424901307876573961480628327861360681840962931104526730863417015342739929870147509997743631795103566167553305438491892543292676972495012278282275759921140037871671985178230288870713161955355110185322727962697634916990047307069974088273177330237985664494872035362167646563259950180718016707048937834315256120422182799373172691646172659898877432464252226893156903008337328891778795970082356758973695027262162179992684757533223414173928815737825390668509931854227350544190323752918898747204610771288029605950327603226017243199408172721077488462918155555986889432394848243926029671805980351284180535219735555594042327183619233439424193894833126495684483741519527653683084471163761185493177701309067827242696508114681072742310733164753951380239361027760421835301596049062133825856617123244213742344651826300743129339831353185194363683892242904174546363023101402667794042561743070520186361070606987197932042500774117128541723642240692158846223482289676796713014271937717190464167724472882423421478309524341059565945534694690851303379619089324052779509152135931421153418300781187392632637067496529950614748357325107118883799989765707255686106792477636439503838305133228149948956921668088721096392024331472685312931661731378215805595901876952106182452257584919467945059146468965710165250185369852545918192868459142255732090690101601929850417466343636743156201521138016477243243700828269345265610863761376163919113151543848428583185896469970211174004624654483844568685316607453862691748637927963521334907293441901512546401818898369045020705249024362844111169637241566458174025373946121752729050164985496453130720924508194324437325705142361771849737078763273363287143180884992417251715719628568218524852964680558620844702009622192641038892673817260068361352669080338730695182956407922145601301224879266626745030144004046755603056881051503072338072271228018426821859379568356825526426594689688061217192440326659813703573175411031616136231814915145767280686369432073827051722859575495339879107744400109390675924125355624834451256513529193045980452822166389841045017697138782071582979909924839660827444251936723510958710234841986658657849979144732636736297451115515352716573397420751962957107043604364028894222674906349255886284192575294018503527791931818948043171728980340307620784786878565006799715054811877300133534862908494835827447267897408927010426795259597272976171484020911049760976664201311307156392951150306334830319383483013602259986561216477442931344999723803296703720355557954167435522736865882740004675088783076116390490611638973347448883511208238858544715903163344631241934956636236580769693429408190550040346246417158264732163231400145936796807597085907173042387325190057467002400595973421086230341200753983061489396738424387112395832136392174104074151780101770832460789387207464112513634275682184068024041180968449758400795029309221855260523621521746608519973074836925924254491556563354684837464731566033281745570356916964082592340487711548309499607511702728797227120588659261789802276470783708737913418428906673864846532141208385871923172929028673583158015858211630461498277044513139570895012325467016857367584869823903161550828637105870860156118512702801838910712347659032283541954874419137273409277852496491592026395169012449997421574466825963724702591939874118149438364683406243097455704582074556221963201258211988503494644508173810644378504569896570351561666549081171137115663860497479312550241908023436765747812833519943960882816436063267668081379583807960653406530691000011632517238891610523387246901486029649874040689175200860031281175363720439120910493254530742520794835262352403624675560843646298794365668653555078380178625586036664868121916456422998345079914081177562274558360736526084901034427921276808647191487719133536031266658794565955135623874650847546659968342204976980018889433736835768193199242119370532207838488445199360112219667624554194366340548612646858337783846278289189057673459788292043713167073765277699789587606933052772094199206423492086350841976153122813794693571499097623985556217373093258703583424376312877434612198232824196186587238497017773249380400214799891006820464465830875459815904259366810491741170440537746603248764369939929183851129824219607702203908507714060026789599730023748128533954557843536834869358428967551090839716966057330868949469145108370235837638357330628116253358137488701371190959444562526827237679132773185948032398024220012258091788621206367973628717908171072660312950587312086229239123749570790284024139096811015964741365135503184904130080860768804618829463500612848763561624227239008388508392859427163384018449921330672120446096832200865169440614373774026179267703004417986371162912297480206171688767316824853521909373940859744687989168847862052726766476031743013733548464539663387112898259156106342047173862950095738764113705202424560366142026206785523071724748834221641806418483610250267286317385715739525825993046982476022175456508783302924237085904251090275088777740336570015376638586196307325337290784802612171875631637132206023266179310684089569552063102311075139954005695066240522965170067840255483681647407140112041023512642427991671210700241621619830907917088221992781012164866325313707550625523057102353600935717177693398534540928958881770935595702641292306459911329373256395515735313530511791936683056403428780530180433706017774740920545773506159797126218197141771598474661391152549352570536211419928040826796767241016055527612360356597387731229525523506077519308328327113495284237981723231333883506061967055415575620317022352537481500764611658729098105430986647378073716097454524427416991762078539139021299671993322534625817159056773176165373364993907461340424027765044490505707633124084414720478114380331839704216881933709502712166509230216535871237637393655668182400862307879581888470840552552978635196610585786969802431214675426731363034002917274261518055393147185656644827324166146238336600431653695360585700576521265863741566006268754731488419925107363824191192133370443262483635440719071565077258678312449240492278936137118502253757068947150222282470818219259308809124873705794032437073781628060446525761349761871387791313616646952203390732314932130707469850373081480687084641305423670511724038913299569571590762551779039423463038454503335127546133640385312050623403936554770993890067463671283119157228997990680560538649890984288883496884174241921750257648567857063266805546953549712086944658118239840712634543480030692483918213651689563377546157262576924276407107037970614522297505175870041567201138580375753017343557949450062164986093225665611845906133422791300038290105126890143059853321049074220014702028617037731243325923714200899256216549171390084780548049755523301943753649407309383870969166289205098338459861903557876727756062998931491377395760540930420361501052527402518642388781284862637931032432038379122530045632329088849536229979306468022067589213888616057857815316459783773711083438686575984141042067980062306730285940481718155863553552845893319732414496330822367810172489657557763676824079282981913729173651802181773974842116838211937975370543422025310723209218208343045955769159875486512177748085699306543202907022176820144905856411108697572394324524218244929893758170617015009717815351735073219392093844524166976499764817471750788845919281638126482242933366415626923627938449059640707712883512792764338582795105773343292363180756410567810883328738152831506340081904434514723654095077160139603027002785163713589780591616920429278635861087011278013987474922949857760614254007504022644447011188304262337763736542048713752849710795953409432555524707265597125059429210127273270878706374508972204753936464330697906742466290864110441748166563519637289075167547644569174226551685173379046131840046939131576496083474611488025873571761508341432856812197896460590036079384656389054284140286170449050526268286869639978112446593684137880433325344121882629691013936127664490378221430517878914890736210965587762654535889219285411762279889494505123507063075150699195351571416194398582447363600690271839823015898605535846089921481892424609388694149942365063122312399394874558386584448324693187917632016224757750223616178433338241837052631036816503890131645171368213284716223846909230983924680339796858898295004279836880268664263048493400379863644724988391580494967916388095707035763515141101620060754232293104036605516073602357687694696347922028236186889060309288230284500930804764860226962536173820718570165037381478509074996384141387004816502780766331107673614724869865545486122688903566772993418401802662177902855471652883762778836928887060878127075954723097587970246580419638039793702188887645700232395660449828761023191269046611658178672858065902208997549091205029693317701692914027596907749985951410247361503107110377059332599917796672866130696407937161580190778431264162110415793154242594597528049244634515413447743155254542502834237494722935932190896488531439895075018071995728866767176864320735483031860185436567839625253980593444072887101891565879709552842336461634740497919115134619938987906171140368005072467379566638627043965953490752230298022122870497956355400619713249421879380339248640817783667014573248017859570018124568394996738316527414277099028910806801768443997961943699045007618423252503127685336986867517891868851508011873558416788512939137616145732264055768485179537112524190436220815937964820571155283598227370169162492833205735300986579066964032227568635196216035598156002284611036652755228934410888297706030707487601498963902183282632085016366179167473125136782879436995952421126131561449146835480649491970680373206616873298117619996600380913005236569942956884616995706537318567445835044329815929515414403649692126831573336155556134479363236990431712730064129004738823664530600843914972455627516291874457437991567815668353135134170731160518600453073266858660463078601014382773984224093997292101903377368198024133200694376895502931108512424680277028887163841359899463984136899950105089250290652063235292180924430002880331866875129620810338574216238160858665001376584865384482290257977290869361986436693005186817719765452740394041364907414399043603990643735517726609098157335011685352106682082012147981994656800936931419901043806504605693235294048507154666213463794511041451064191802638792029444190940292166249952804671814221918809615778152017782811684389050002934711826255300435623182260954488664712385370798474620286306795592505549167133493153998151032671903399798611138534273292106700251493207495936431142331952534619032270914402427782916711995480670885576082168480136607605073267300305284688034800443929047437191002897313771190825796643807257535337872230413581725106466955677574155291517615921391459851948938419936618532413288716735300926950761569542028947609960852156291818693332562739942041155865223932465317039907715987742741074112293014108731454073268907926666750931978033570905397673446257092388485482252947470995178953564618826703992449486340804526371198175634558559804014958791234991260468624917443478033772959519215209284258581320846483951648101568996612287566331597593863381169894373779070492549857814825579681057522938317883382886064596974499448826190071969030417664354477369192450770438140508375688433961744097712436568988584004909796555394210977781896463229859422615002650020096435693992814716170901559088121356083540907228371693745573655982218969200342636835447954164317148735943760839625172802375477715338018949775368543842170635452507962439278155375184842979492032469844861467144410174445428062235862381332773281554537589555826309030593083109866225051098761538243901742540080017107462884553265709395257550596402368081960373345920121613238469363603006922043991925277669117838007077970931479132485924250190543539095900610302257100623275704517799624651075049761847750167698208489531817375469570592560061711743418674452314934824498121655894704999943808850193527278357507303392774808099281004431128868629671209175473343561065949036216366463582810890332190739761908260238368590556610066622228410336244652549217654989275626939592545965802716870401817112676432372003497338070018321432034708407902009883488791247710440685088088073977144098056822024776406297737015617817615110704626864143527055100199836168640599767010082936500920441539988639176429059497221046468443692976736278014460784742514269884310862388539519362571249300454901566864754187398229353623892338559452771411343352546081497020574363717750413493230279233869841982355751294230119332742001521089559537372170172481276282486943580025151698969741178521145423107076710203035305480278451454001282692291210073056393108297478622239441441627414744979759423499764728137480052143226438591838535953264409598145118375777346985995708121311158307316523216391418202226216866513028295019562518221911061085710802835662849828400459021820632422522649042647850432494701203196263099240761630211039963051751933411670541180780123493852403185998671139238746239848302981745313750500058248724392087442106375826837301776198927970356439448261121388859887433709570592885384520623808428777031471729173345628404624080308580571336671463501865990414900082927416707444608564871757475505207733591108714781955003943599564227296035932494458014164257744432131983247669625445491615505984988979068649968312340169970822971574598011430167873384230636451297184662386981269288273214704589082467290359767202818629519299057681457180176657636872204742308844433769802826786760917340875061538455891659224400339763920764608463598140500991332351952633851977859359548812445804164741383894461622345511589853369981940313317437518369299165751848601176492939606841710428263070497758351015211701461598677584152049896298420834940301011356132294665135799385300459970157589651450213279102829228125631208197981232879059167801002905025970069662382411470734191494404550539390219699758079364698865076733456701105802039121075470707666565371544019346986926763170487508353080400831664482286615199926835468862419346816916704502388925170429432560045703473401071148599202803573529673037392766794533692933152191043407291119760867021560302431370608077121444287956235006007885428759368606933571761158808840057093652811140689635921134614636112194837902680498143649477129637381170781520102712487994371408171644680071951203418087164385250386369046573622557443485897349982445613649508869820036773937468415768983107500299389009550126948298358541650670430494758366117608720701497184136721082632536335958760618833741551179420847564688456232270025462373427939423254435628749600314632206825220088756355214142880462552386802327092925858452038294193027699061293008315957836226852451096980837419492681092855560888383936578580630684847993933836861634138969630767785506852787046231635487906198718761922725103557920625734298101656466860954945856329228346084481410742659582815292992243377255146875599676565120272820805049748803413850159230739627283046032365061192521534176747030643193311035949552924845349235597410512417734063878471782544548824248328963788467268082269219077620016983998839514603941570809930611166218595146432863688652136521332251431813095001989065871111122230101665528460942623973648865124572252096579335809547726587167670828155976996930364523046404573253680285529345789970655591417356860051086349025305394550374062149219129208008444801276424728069677205594267550454551101417279302771687542157031908349396376135979809812324396467281742850267774790206044897876084246647094226687159131269129818604035580198740205844693916866790917989280234768169996220944855275567343312349329523272968096432836792092104059637559097676129660682578931630167487470102665700967401643914633440863489984917569549115707138029069802688425622296668953591339736660795022368558641159640269507950720170652988303862358064051367451316504295116039152191539452570861705745431521188510933439237714318736269074974334955101492532447229955557131086613181746303092532739502246282265086811212678009474968712896042855020360389967798200398646130368883885656384659082329002394324986222119285612162080333717789544985459390580412148359510399724397058081535044382077832015097905729230991782327392775103256666753211277922022628360847880791658400480567688160710484092821641855121453110567105924919000488938231922022793610229984894855123665006295024806212530490693575139088007377299239578862956100872616276695654971450931967695778368501352740740988866051560329176155445859114178952527754514646983223873935430345046049331016436003884876565723024076595057998763961977593539456213326181915098531036476012658313498487369820891601359559484435490929678867314268930024788375237720801660730509024319093831980424472688544172413173693389995644809597623869458187840828772387738611813749948638215595014109746379028296659842905793101370476384093194874339024802724558703503583758273621739371389620193470325452149714242556376955581819312606796724431276422526807764859862064520251284181236010540168441255014247104938208467585357191300418295217845235393484218595982260795618418246169155407315039098020926909662353886053174029218459872925919315097437131209120807692701767841611404312176110723739866831525706054843788374601182733273496633214820155591932314312381222975609874830387865039595997177025141292208628097330721965250583185312265613896295577669497258241953060940821198666503118538340492227820946251538465897047637302036591441123223346273709502258252856567001602997349840154493244813095692347812167324677245634473072728527430635132786842063028558366711258388562931306918149166325655637423679509405518640854153851611892301747305979806424635425099695826563584702033234054159419135444973858063546248864519701182304258089722947490249951375229253506681710490192989240177740860229704746257916540238662523534399647401129428564080435409133365966473260115640766198017854178757778721782601693410686263216099290780678498756681867933341408787375113882847526998589842808061205915880507752453595642224220958763349333312546426262803314234806807741412796835064888708092181409260221469239509461353911713236224555474743072203642627380604390981109997026690066503494248601506736245191679506389428969890768708882807247950328054238613812640377850650558639054994828242521743448158595298353458621711065168879068128762800720151743639254499153238911519207022190766716194811173635838440474153224851634466891612422748510421919866849148121196650466104768454677042808305830950792159508186255320240639927605476197770080453377871251139239372187538673296234386685229977825152588048925513859616925231678978384422210417696130772520394929826838927146400176727162659043481405878705226965664521102046801176274513214201703851384715250920631276405808539690207946857948033292502609237820737949049105456594948064358446119127737742952851672528951633719361454001662050458976889472181644829729808212156583731184905346413120087142235675834809265745900242001545759000498276734718471477755225439767151736935239650040386318138251799266299607907897353470686039800197135054051105672061543863829365471859908180550958024604452493245004564009336818188442627237362017687045855344722746768219465273574772383991801038126790990921786626487746880098772188101948624288295459381688908189581196925583819307753383000339966329156934723648596420135614632193908871183169710604770489079136452088125567325680899259994917230693519467169579085508269679188167092168748102517571985441563370395583788407634778094499252984350579025549443006904632032917583436759185647830580397705800166714626274408171016313137964140086938718033556787388686491480012106879097107033381934708642796661532130193440722543609041899250357010306344395113279417465971520959735043658002174474079564066184599151171354982254029746109904762973921397800212545392110617406674787371660561970464317440942090625851927374231353603952002400379680059600016715865023388943448943446067538112814551059598531903220318016016522027972302993447895999540475328464784378180998506366093307254902725815164554461761043329528908246259853675242854769925908004652445333537637572330792859037060829369699609924840234497759955013549930211970981131380699569982750562981724939872526975895471328086124984260660711517320178328373829114763694414022171552045804860962530124407027002545074772881721376878757696097237325410045906333540399024432448980081813435854856234067838290227849871113033832506089742838508867168847422382783342457827078191952874452035895855905157344832614997056278110200113712284564869554438493563101765118720895069216537624201581630694467308219309650507600302926399077571378156177370186263122120654296993874530263461210856929232530444336950293396509980363994351985413540336767498562124670883527522783633802813825366471235171251093046472303498913968337653521301367120427414669860422342113496822721261854519750791034719947125463080039635957156334300407092901616210481438302849482901248827664680263599081554121705457876095571280334336916491146960105402921623084913746923241605703080234432864561920766572466632774852130476863977910488753719813083548680424034242328843341620462007374644191780461676245209805137062315268215054494412620290645992975568220157333493077234892966161872477592572891209344222319706118005843036370534780496259997982782481296596997775504241170097575849732426569989262930394878756006062317367810673776235406330692987967857376000339122314452855064148984579352864741635186275224588459882902730571034081841892016128467514936036556878188670483064802701393231176394663844177582718243176257370667359718603859506195739713937643280569615841579683074808861122398037168942321601838355378278149482939488674036768581321532676922194795134369746438264101531089168515779201575096060326675409243888601481843537581243861798365165247171890851958900730074723132062118282251319607255191287443213213879103132577405629022267868948567643647415382214935424014703998953477941544926279934755279788543762396236607907816980577655234644301708211807117362478952651001093052257283523214463800481483172483735065979592922498008560912515749964330086916179913648312439745966771248466899205535723057888287728209319382719918896508983779756426603746770191914469628721464142852687183898173258889023368319390288525345427998976182411326192540690816558074937166282436842075583024352227366376739679459774351825878739704083120783608849591817844564047376127901005963577726492046213849302777407590858818914174332901531208508795609806997552172682163102006853542273875436254500175903168204748283115178472109925426629133220946779821424293401272165781971811160224715895292843164008108660189563891757103807884499030745061284465785759831766748120758392462420303122396521223757318341839455251591080508642897026611965779640880752175628687314296614785719148138723243530612074369034433722999872338756594357489199898477781213253712661660214051921946781686886508278650066711245697272021205346024806749824152210502645352342651024406954431534151881801727684909862936439599520934531775022652523414196986037261926136674283714813223707579362560787375179456904967592054247245451114518182994690081357171499532332936916067430278264683006619530486536023426208383780454970132135836022133819241143258464729642365138203518229777310033049471180735317408455089131179291420122481716386760664685306347059271593097917882358140397130357196972330691666133094099833469432127527270928166070335711329203687973403876681169416625682759350677862253817419338016498916401324249755927891699154254264274836249366198415736195728498477020832041628723692689560327562273873199474104370611776809500011670602780315155008703795066528928520666679696882478384144582530296968799014753799262043284646493884561266563275202786006368516025859312146250737565511800550756164183552388328515075012338906896247346460701169763678000598014928595612099348680483386336237613899093789305056713698111318442486332958377750682213285070353442995122777239259240465648913307454850227119372178138668355120311902260674139576642946734582206473250756298945073100651601887367957421647797057852173516094361318622522146363063740926915622267020015878756461563823804984524738779370873533320187224804800585190221134855731292006463016851652198120165513722779754503529172033271880817237280678019189878679607254081804815437261087789322883115230683303824413413604285511792127642146809968087874216295577930094514827171577977356479603404109497125565350236498798027773446884042040353017259557761954770526871384762360019600719273025747316099553498757169081099398793032929923580244937120461729509064695612922412960971955839066285513073413324605510596155319923129876193254745676953482839443390075562981027644720387847982442181532739136196970824002660821803001671985390611343756355865701122288818135235391400381245378813992441064921829329013161961874365817312495885418893715769598025404158188970165780641681659251020106224984550020239772526606867133905013071873083271807308494901518689810622252788955184801255653719210018406831613088631220205458317450492435377395134382376562154472493323205313888579398042954809355115899316360450074129913000859913685581685246240615843313181287782063381383122171598157904174632228528594181404377539672777582492018080784986305364737943953754939759731982391521427615299257455464978299454663109891054657243994996774150010608603845469468888195782607271592838002841623435096874095365601616613232020901637464789829744669134312678658318232886160876335401673056925209651171207731223329540970395667548623139161157967739859528787384763260554455375983893674508427914991267008418576499472694020927580831081869851457440990243496895552530174053335114486153160552209723379366643070497731621502990253532273075359665808062339395087369090427298531618942891524137621838665858140922890759622396499821100111615738655478454279175596140555480748244704024449919926184663438766842088501458782421268451742783879209690357680523688831104938443016055179303890413725702807912801289514020485105556046879699876017875853924599521395430973902684144544673053786309351223459903061223670013583474141460569012383306040574343006189423100666310509630539634364727277864102877938506069142768806150923127150922442165626216788134358482284769454227939391665282070515572924900318517923391743955563065280620410908496677288688499595551246617407302582934553050987098701261767092371085775252664523281226655335145126935379549318179624698545132716720061129523248359069509988613552050068738071195413134040423344767680774464891401925232582234266801106753855628975107530861709732968560492412489463901328721281560898305911164424080807499355784344216534810704239859983533416845310591185715252463095888790077130316913847932412424416157207109619829521106501516126010787355389541823812010980604797908731101901134622092774953139335927125538181474093463166234082264070566613583023405041984258125432081143885383434255474909770542273706906497525058558678720808470287959429801690608643808586931981099307424273245033942603188459487672034065275814271782412231082117870061538371503746479341415209571300936332298149171750176783150869841615823999258719325542016558429401192451425016665550370473599256822249131856050596657678728542883044486541335532925724631996413554414327472541639277046815008036600839458882433884707393607189227812693424164237349781224162558342930430782965704613545582548310436038896851168700959579692109971515645801989542055447772075507733430291079177903658527973528034766252971400389464836523094924447929760105486474023924576576960770924227403422364380916696430430837782762847604621620455827632813841895971100012562042655256960849901590671820993298937986842436585596249841388199834013687897565106943536644510091838730755728839240482232460792607837715315367002674935405926438219451105229191488882174573013783711349778774354176125349899748667117449140299072107325907049180579022753996133664444165130347252906776426003769208335046665192930466209780749041667593941899175621162080032079964491271396946769939388393139874216993114872425021183001547556831177965455653268835214675781206293651766126030206000180853791915851258190921712389280075038009985935718764353788108487298239069764694538308794793776378379111539536202982092308555258458209485152159918966394385663961794181863533990272499330258458278519322610867171575469223055286310331170064251900818197972068193033103954082839124052520275879053059833668211926065447924826873284835511677277482977346771426085457531403211504808196413571933438763409494334063608429931073495110499136767347783713846323500810870811414176666133113951094973515896128559444357947690308074976589006741257474121722538904370339659576601967514984694773962482273823586349248346356500510090694921570131338158726355590605397606069202498486713601589313183842162066570192869865816552385107575220797798983536661061179595663284701070674430405907209890669615323153213080631965088455991389477245082531767622842956019754130116465302314214354016411515313610672269851816008730147812490269668675240322811515266920363621648227550465982425492965031082295500799932317335221211640191495731399828419089216909793760351318170698945356270817019645444515267769457266411943771490243267184094977236784047745352699774847790831120888963043089476512199683809482895124306233280581324106311624384897804398340287965091129913651781823663851074109390647059866720483123478819889189981299343237455036894828413450758501545701124401858951409113226846106477299983310721331388156865631548255884555661336961269164749542685647538020840412790733923514202211433950355616875800357148425011507571270010608336802716864816309121823108582834604627262533499892911173050757296608909764178400064586098804579264090082553347244024153117837064615633127599695112836792369955121877813512915503982964522967878119470794009922284382873514691852761874311112566471565683204195268430492372890327380355576001057578204937175094644873787527018986129596252984458646810060895423885481184171182194945616935505834015433142348607164377171744443855911179495781745673408703284608779840538682570808168053383979959890277075393817259544627505019354737871442063886608506426782085341113726331730322083519740244408791848944525770289914090709297477730084699487480526787141205216572001326619488518771759254691453909899279278330095116178920523730462977660481741780767034185159933254585815314002817380731545511586859887589871504578473272948234619749399029197380739664143754040126151998185775832978798153548796952102564634492014010108307509485801035558463762729337665091186851375509342103523784454164748365046979078712539474916917690685938230888533862412582660278295960516926687959860231385823971584784159432644961661785335435755659854839567929276583187781431886743114190647703182110724554052345491665788839680285815415809663103775746653155246939635077844178139535161867020562532230671132125027030777168280461207810710661752806701047613031972459171741532676944399045557590169006098082994032111209803255854296970248322346020484621044550007064849687956680761655948902260930928837922460817814445851917977333609028287406191962596704912904824880508470932468218503587874453387806638830734475454423495239215161154414279745454908439672789161657657283889652521493095977077871039657586921586605657788480698570721590190234658831437047356657389820138204077036141155556473714026727688483377517248749234088862197747638305627388628143806772944845294557710154096099213573572408889006208843698009466499063022935457128131984153024667859797717352772172395958956412144450225321029155069948183027566431244900626429892177452473143532089565304779960551585815438232842431859521810836620889340326119399503432056835232744880008829344719051062853410389004777834435017781499141459409330007538384626175903961049350111660197046148401572732463629720620763796849253506609804491230502838232219077145581020318440604655157170719426728068653628047704640950736208827571422793755961085808107593865965781164317601096179175225548559380613456381512311440780283874702987117401475026092767897736841284969721884824542768268689300213396414658499498048012045303898540179190905390016968508078702739928334302123353713090960328400854281651804531871259795783973647243706809358500698732742879203254043457530316360130148275056529238248872356576478148336107341952182927725778580761865501939155054784125372036175302997413508704756066050901887658338144132021760751815632128670375295796677819142085299899080219060297319542823865777153604920935819863819345247233590754874138081701493539973520772930580349141194949181139122178265214125340708785571877559292908399267593665335807662898629829582759729412790860517509599809033103546455412262254660686481448327822986023415081812134802131772055856482987428991020285880727741473318675333146608241095255718056731835874832605838111996343760149082762196586722383835217785842863306869620111091449282750674029340002743973135212861117097801571572565530418761945874738946342186649786738714917957956235746686448318788311880056674098636391227376055671810288278238843674049223349727923228358431229737504787195012749155271057627534018626495354469660331565245304016020394168274626841291592031683392563446145428630680911644938178172798737660732329613996674200971157039972330326335782961044788998059867384987588607811579165961450567097763707797395988405891562924840861924258284922076118644170685960772617124457471406170033650981267312865212478132760047305818735225211212221621984254246595948834402298942069944955590457927622349716808759074750913977784490326307517500222690740224758250541586168730754479948885795890321172844658747547315895369100484313078468541330973203623689273591431435382052491840182500482147443175314854050645083918551798188751118434636964560426672906507399101116035036930642302444816210511345497064228537828575654016273034502353217029180122910750167587232191158784157170884889165812788521598636074647626059567797047385127494294614610769366051351267051592534314060768042345199962618602713961114868701350028444301406516467993671737422784380477305589443605881231645859920379552067432890384862659575896396113108268096729598044471185648814451591997568698284168457886822340573406170109122536851638415204553543765015804849252154964153336223513629117008434428431552980173437649277485476158213944453127346362027795629067374377175393404828396861314468325953998984678213372909491003556245386124143209041264835293164933163603535263835894604373283115024579298571825446734506034732020919083607336988833378562666132894552852503112841032143318839756017971407604781378318561372822492829610037034645533381070343769003528293151986088924263810156809421536794611942861513311575945296556381758552457360486783368382063850173328221862932112981064883304723036504973447678554815189061405786863631654767784481765965808759326357176865501559874015295353031904869789419135260821980237100594553865215583484225349036443624693316200993890372796938127037413947763811200616940868694544390145401705099011249345182543198335465470877132618615455691625971071592191488817677673650491205686601076671988040242858385672824895195085799965799958005150906261325173793732782600567293178656164225106083890931228757077641387312389533675319053833143493376063426750194301163518540492455868178129398112893145429669130941709318174938063297388946332736842139301273602106032291953975138170498690863624049362444873921981450020320183910386415673291824186784954499453854469183389795289745059855077906417584379731915988158391725698748923440931384017368934480237765866898129518840790470812039757243220791564316747589875062864499324766482811876377262818526744772623230231155661208742508968068087392056768764100696431340810326312780704710684228739155077252038644202052333422704905142381991765386821951747377598789331928401202155247160420422314640327378180561651771490628675730347179633055313125050633945112030323027761192510777043922753999923907589834432452555576167650249034294507828754177944877518644808877984174087857312201287760474926904739758196688171797016408714396277246138096583258468999492032854296082180777083929393016369567918220291751180115148158591015316441677629518791039502021428939255399282456159240147474626865286252882219724433357444569195981445116847129854498384379948459635324442866253311001231293504592655470754212778965666298350756215624585478469352426096059475738695898630174159220840952247823111807255692093657971632671803828270254622088462044913830936466975964580994496388364201883377033831260896918705309820826631309090004375478566546938107642087290712254271023998912173483377069052682717900039969965463713122888994609439816072279252298256185902813478779009854823727551043058454716472238431203712596994553778227828590196810896758937434391827068814313550473551500556554860775648890493616260568793365043136810046650854575839611676152461129809809741017958361238187573864639484302277683066350934460478968917591842363412963495573821792426854015765493308397645099167131622244199552061908515651320210160266615200562172110560286631359871189399467571706147430347714922398316143236942858800719327573880574328576200051935937381260743387582270968921720898496863557917267941709922344869576807163194895748815349861816621375407957997199115093931267038902617470656036628952475378470849386294626295369802330193524356945359182336683625429749364458263471971069329398649031227052225030197679651512363116690410925891991834989523405617165005393861712141265294570701093575917219228468227966292605492621700762822740551702511116648942698071377786837485225466893273271280108656049443149338561882006833930383271836870763830451833079281044380016808269318008573836253086738431165126551079853650671311306886521205907624613002469818521934295264760736690435568622372947830420645884129892408963555818139926021893194900043572585635662220481250534280024473827390193381502893148285362350723711375831263326394120478574354537089314199283064562759777732874041943898756994323905239143649530051028809433606258215158672095447211573533299285846011894224286143064447568538511022825035739073052013765753824134578249602498377526366769471660603870264185537564401427319216717085991880396293640239429744535269486647150224455707901573081312501857752013089530427601254425006165794242829183969659993327587132858571397867873635063368343529367310036891876811193372808855488470332028515546832151660269238464106664232569211471393928097354780539699368120697207434581185631873758976468789439745708183317457286669455578090474524177192876657875784178268425980579274573518672679488317973214885664169174576409758658637942132204388085159594195069709475918130038096984041538672487941956456843813981651126271140803578018609592581234803405415526545918058070507705653115370891992325304388401173901445540362447332500881483388923169388888909794431471274871130258274689888213997815670911231038723742233707992831881534925739013792801584132998533269434425846151498344505325836845259932904283037868234097802371865409437862370087434902367207839805964471284087726241639186242768941482061335737887434116575866461018004277728497216290454735519773201843667612878189169629605202683722803961627364583047773788873555413941574454732934778790335992687113931229048335878936830103258127871043917955806520224601494701306135552644116578945509507038210667850353368947089332312022444062355931810859602461708470105659871595195878017667878460701285553773066539079505412996866506949822667744764545948213742666641721528539629284025592522844265544999302073184150777790652223265706542079044545962833957820189185181759973065455873701119177096500282698701331127971171773884300972931098883991657834890514558446587545899977743021503992334393240392541582476276083811805133288481680706730717128985506630476370717347352206186064097802895701694937040420537930332234491646651444365874973001860565012343754937146902830756483210710544014137236227004933863746898202332749800638135315433541369823669119371296242672266796776808462289220656343343649930199933804431464955648039325681357382940957364376497302841733380561231495458751275208128201109428956725751026041378906429689707335100998827753805253077863248166484761506184699090523430224805250501178779749623323660970141545386145772402064248099423236064902018388567912529550179788234802016394597620375364308529956305236082018247478020342412852313863631728209621235959357131750104861996851550607738252590103011539599578930897831600962386203341333590243659848788768928810766442747434979751634644464715693947247495402721318089934567874242336472926980629127075727180441677924450045388484968974569670948493799265617081146144004405706902068532542309369930166754424413641708302949598160239639647476743535724050204553963670379446353105181456510072169066232778323781826684565768940955337954054915795835206924139636100630772390875512818435740364506183613372519883895835902772825931010194970183590419325601654645459107192050624312315855782793894350179024492623978250207525196494026311888378762698792254544854678441499772638913543399809862324626950176421829937019571672581129657450690872151455972932665633296656300132577669169869060500005951554350049934171059379353119224206627169388495811547250008783362470486262192807965755818216039400290200865983530730933428572003998414077280717603909065256195693735653196670843334710943531932271835731807565598798267577907630228012228377089279298673193575498370861831436254021971344174992064265751999197847444083823178647551669325703951453637913050938883392203982226068776125174676358581825781559543666351259806187574766389405796007524338579907866604346631271281840497356812119771281030883417047332365402215277748557505306384856717380189326248556113115034523661781163188263479774894313247531235196961666904345543785133436493899239754775669180100951575010436071788917208806912492131399649932014616597115619441960938284055898440906333512846070468322923402332500132506032342006056286239623109722188675658322189346605057756760383355572342550493187559859475852624953170354029667859471486592003190080337741619483659973779270167561585959410905411347683156990798364047664860516174391395713834154579670320831797663256470360312578110954173160457301881090555712399117230354508084330207951338688519233382752192689893668215286544339137394147477189347786165921047949083896009707049269131294745020513582175205774089374576959397395496184498605435872569923584382333808465038372845439931315064068578823437786712495210934997385354846598612184785409776417525769202315701843466417339358234229690651390481810796241820975327368847444611382770575064072533506313607032425234050467107249728709773723859122729253102938575510682800713430192511987555292591974150092774492430581047257210972273346550208149187614651363285931385570127096385452625697131298714190326526933351568989190642489855868038056341869329603413937582065004498489814537871535711893301844004932304953378535725203282272568028794434359723486146784611099459408338831343416356351450974159326568890443411815826258219909854552916081770477305755479008364900125694876728505720183516772548999584150273781308073882577227028371462371925502188486579978560951537942847747217037208503889869944190341921049185520193898870858976664626821215382481532900510952280102818094781932193461453500153216660827612304932470614217796179950742412753358231770302277100756798910480231778318493540027855505111490495762140233521914406157107534439683358957181019333725764235874971356382921918964709769336954385963999855909240692125917608349922735920169411787992340655103411828142838129527067500879146985596330202450652678239632377343256292378972141775943958903231299721388709512390506839810854341894268053885234003464113889713519769030571393173514808078156402793740772932159896618697469705541559054601204357019844839236543388044534005616722012210528240320566442473380298500309503316097814702731166023480127641420551426000194272656625246287783819754197597643613417251552904663392412950638848763133582406656781900110729977573011569605471454288841064898746543302780218482283581966334567015540484009386424078608983582211150069487159421812087229321944411306186733752431063983582197089016977364596522810161746154163534421215226469742093110896430620075958294285385012486056503885000972137530219155309332047314017867677898412096663092500442154996193994464196576396529819167466954006774469548893786053879575674680801331166527323232288427716466379336192457825613611671914234743024995007900027232640565732227434455309238499364526879977493511781990942807673290075657179045453588489559489368128898885834021160404230010193860365847874275174899337328805083785142229268386217764670337295977462733656177995175464326073303656770482708811354751217652013330256665076015322226648500688630581000996027556513688168472487587294840911078232841946295505373341725732564825153676860953365023847467718169643915590837300119262757219264643830416159964779056952883803336527111580369064494558071406222388256730431563989523404140915171038591163036345423792782035511920587309875525639499815031372970698800290440910190032127389984192400914853173569136568626419272425354991536146234001718157880220678848669085043519599441983333107113559535893491187175311945114881485926374824072979731608125644222326568808864747203955827486817659095318850109060889572895074021940614756495542426942959559657351311306792700664768544485931238297209095542705484265391516508615579513221922733526923065774599853854220672874480424967094536298655398361768581206015037847595866901718951204447045869818867302669458581796773450244136215556521191654070032186663303284274413735712761929493065809050580289597729651599705445271081545277225562403790467191442804582676481700171749100015444475547075195890338487475164255550530547555748040721435692306103870792357546198957965859376436514912075408160708777397320733295063986594026340324558635482032595943717507494276829961980356125363013591308645098604520197452466689867813247428708085098461575889362386350925665103891119064007157136279557687351994687473962147087781882856101741330134278611901526326367348039205925005488917597682149853825815637199598381135609334925831092799161577382801040261987955816642613524889256085643921307449446165375651120101386034679586794114226628973468866943094422569541517670060153015088263943908692445256793117441701630943300374491210521736501740037948273732475168558321357106037418748466523307217094572031814660002468369402361637540347192944120379579321406951390061140185918000699571325134415190863680848492172629099955509438022556758282745005969616319684379208378276710563055033412363995381048851057741798620805581473129547978023012817360270785938124939771670720506862110361548864578169944863175651228096221387026744613866511993537579916722159370474154506603400454621771551901579422089383590559126341329812640852339894380580127283247706647745196073638228322764307344064501931401264364872604585231071564138931093998794146625209807036935804066011134170501415560056863167353905815208053363791976991032200971518585752887622937861146377075125929159766794323793809173671608524404046349027512509116385530043171121646070662141915821554345846713363718929587141676016216182121956232567696623043204904004498720372695998131902635751212631238467983040273518467813985187794696375106701854658904425995013393952485124678569583517247212828770644646380349343614824189983772059090856869112290849113163481692002690548409881363817168368370429088974291645169677901731723380373781803521415817383033539244885750351002594018946065844859902741850851710373074250465565278826131875804567557326603139721070370948420185399114997365211436863478459187390832493937156012659706303879549413668686515177694176980602325036711838864046222463247915068163056811775545327512215147123972699329589384464371204324469662335749217149696346249653949763543172005419881333544107936342958075911113655413002330485559751491769437092715515600164132765374559770265849105061682074240524345462517506663516748131372004303025719341003315830443879801239374739323363293888606370806740365948191684967797549130921510141651125724964460863417952576743398271142877191650075203926344568357722446743608143042913380016100135928959590977081562371434173227513037457196026285735767867535569130939583093342999690334915491744578427191574348661910894356822248472795913034216156819888539814735679426171158721787994475656741764447250280643017300140277893039588205634148355526893261614838729468503078694271521974516370303753263209511535233765389575941282653396965058624720471251921517786212858834362691671953251748805197619181803349606913022644483442973406411982854468208734731805308805935616510605366501477337435320639323983291080001273963954980648571452528924867015585085625093069973661884430382347453846874812811361896996523875196010501689320011510213930897347852542986072982493169034388972940332348412696428824915876155805857421635671753496200047215063466570578794364241897228954450654050698252523852442659470075474168145630691502241465363616796128510077812936866429443160039656285962072553540528726972704912008886075765347414795328368186880764613905352790341574772366246639606730232409310680903688919333268834790202646833930798400488105307706683556526704050968480716863051458639178379264078608318213464736922131946722402203271668658817245189242765826702822477574527515165165015610701234688652258041760666499878285605754015829308090477634946664925226263687118660337325933230332485455935489430512722764920081998818123734102851462513157505947040873000885359545781266970573986762994255025275359900542108268357165261262012666610787532243180184000614098105735776717902956678739513527549556597076338100031353168952241141068228529377644826126098157922951081995177095918804802817015818524076790807117001302652141276559658517446794109711884979589094549283149366631998627896466958646506728442912292021961298643269967314802360358059798303002535797420768950518158985505766055946457118617684519165850028755445930034091920263132144180882636653615100270785924522500600660326111766002786806400210340259182419453169837706338148292212323178696818910752413764803497813954663055472601210146523493818021662629466941309228410293927495027420956337571666574934904076802350651302917886808505671511854855233053646387354634138481145530505711399739830593972303073896258793778504339862733873066860756243286856473172010696166083290915292308637718893037838178454467043849387477189205751679933960824410536522783881110489856383006771084915832488069269834992310874405196164088112559209370972132007628930641737006576300523482473656590881645729555067568291332658212921427825877436941409937458679120945840199345219184611244217978820124213146440048702836675306368695306416990210616789171347243111502326783286638655460756512917060994600389573884168006954551223396718360362477329857777436754900684771935865543516574678475253608274258932655123056335671231916310296068373016307140935931706854763288988030285850317641218758381614250881909770756144242989825529531759008388043407413570147662512950356983108215482939991060457868135802228041850456897339712409312846256552319799676969777924910809214464142662068400367669440353714275238277153467111411533137377034064313800730373920880939782947066822852050750056000958352321405324897870332487090769978998319684259341095385824924481708242191008411271257578610948684422022275748887545681017272317738530997094937347109709522566271334148386024152795791990479985336185261634901518633041160276595148292000215435183153415419604935554962679107893133054747661928333317379101893445021093884359620428226272114563537864970585517406509641011110428324857869624044268759334924641237663120981004924718716045718672463369836682762930602670071058272623212944521845182116144989291400134371572040244765108451874947613607264275251096737481150586522605556849651682606796514942321689168449456563871337986337093480275553419622825300478960908820186795457156672237150577506692630692427821252495703196073126884411314187014738548917987907901103249539324245564644883319369555512234689987964977707982836632479432674872750376558691999844863786570168248740564421633756260274992468470194174862843829062697596338568449283659735891405121742049900857088519878143938978728701714051705620227351285813856605949146355914531680588710083760949167451286407992721516985331000130816802465814989738235284708967503295410607881139618449692524501923238216652582673707889679170848842496505079549343174403522730125271713070108811344116238555059927275169698226677635248950566250693422035380915507710962396763524869523496272195679239521252716072199000730450369974056238043417841237929738858678444333601359238939772479999007335224244972986823989655771705880782485678030965460231178557307583353216872499450424069938199791990339007666151030747955557467168094368711891423029334383071850485843668193573431001321069050846330261041280212462587375724058149955119677869776557358360582483188016126536097896532448325183166024593231059502309772007044223539803819248455992636196679837417573195289682052343204573165718433173501858539991200413356642853683559354729036612520873213245832773892568704815146246893119148861271194989193799823413620903779836588811951373733589262891482887965169172963176118037728821357142139531114982655981691776265536627813433914539671462118508364999345105193973850627436637760603737497402662999845842066485830889799104964542416013633838410398901786382488595280782687673577643351006133468753738121998990089414226411873910467506270556968022872119489776138735251417388436599362912954484620634850418140238302368491369102838859087544028500014736837513228561307083340613536095482204674481808786542149795647975369379408587174381094537513679578192923552543740129101369236220851116504461108398782211771598456117431014743318805541896113632746758695096782536331285750902736381147741246300492730510482378935687466640822804159818964702340839972208731972920381801636281450560488148169975915688743062874723291465076725531428706464075287217265288876837644043922275084826211567741191786869455044173954913865915301997861909406336832227814472061976180862923724394043509455834267889918271725085872312977849267549679812182446184200283439539859080693399306943467394286065887346203699251378288129459457599189310606959193030925582950730876502374186001588464633320283634329347025701856851696263742837686514306716890962300296340908490821841356438423120897842688141426274655792225294696761016792542960851489437642665081863497781101788479557064725478402945508913778400188491241469212351118518650850458287999314020839390552188267663170670630257574514052025251240002227504954035019817757820303418436243813183029391832480470533935259976295477776018193397829852383144096400114743798264071467743668738769571406028897065244656444439716294725821007912241307131779875130008237580902263211359417200757962737728965381045904992624641283374034303685303723148045595906161584305262863698874768423785694477435426161949030714102400101312833030293356703799510850707155761343539453772738968109983961986909919491191399095661097710517697511968937194435628103044371534408185046229963856663366343145247596252465190590132702166655962633562421855804578450993816077857211746245738436631323413866832690848022595637899732781795125417292361593945506544050489241909961846613494079699344786287783926275118669069388841595987778852469060797904096348123160713178828520563853675825629846462750801662691133615447221139584430877724246859749750315235879349694828343718678270888397981180269014194270372563487307420404698018590699750803312268606412545458821395895160003837133299772930210419538261831944975552368652459623855009571425252080971505874072541985306765859075732470273034611701307803071197393120773177417441294712802284008825052870512386181009564156832030799130647605771046561299363569910935415396387227084961462492562029964893270544781468275138039522935180335540570097249335295729355651758541739571833007077605901511456305651206441249538106237959740405815675343323533555986550758356322712917577510776195147118403106010718653269107870202113993529247928682816605321459241781433474845380810341797417909075476633232385501384554626389271507477824495701958734402285853526726039176690411477040837308219296978788546421641252306921939688255442059390051000669489210779969782161826338316092381877548945716217632055878567549226319150874126973258636498876293887262299135538620729000308794167071999991468402673112339266081071676111906170753669685366410687281645738023966719250896689189934777378223532771660557759934141207486471531972618670736870368198483028572488482212450887254165039118561056659028856682042733924779375983514844828992560245797815409728087989086411460630005843810690902958376557138981709364590761121736821285485720587389547713270931822623112351314109313392643858308018093025623413105098991945930263564018863591722090037398452371664470045405950565324080204188060628369987513687859031110965930100228878364368182099851158542812515914843307576204682408622666106814189261801181149666563481865778754461434090572429887960016278910267578970496180595802891716939462818149574864221087202064796907513347161173092553734969269270320119432728120254587380890231017957737284077805144998271351710069147933276780352994342542428577557487617828690452852043757349809425727073896216094690820452574913509028946915285622485080570760161806241069357406608484545300818389083491585531432099680450403767519267947472597244816959524574828793987597879719457402389398711068536738694453978021511391113710868176558106145260994492958834514952484131442894861564570589859949306038543237284614321767071342818126420091205485607075018514760718319258060174525468003626890472334725093363878526277033958784635417226776690990424693658156862727866541101260787940444972209749587281606419543801579996435017832575646557452734136112162307775143289268559196650934218242639478633552784777065084512556527075303542478701235017544811325947447341053078445062190101175659043244134340334992774479458594896257785209400352620672564531512858278769863323717098234262436700228941113138120924353766208233988973677513575498371616490309002822947698473521041548835215240362481116216353575919489551088933323312405067995694138162808554260928308473185408562232940232883481144202569453481799238803506096951957952968750896315810273524628181870847250459091375864575580084557580047578995259409171256473044027438175657415283617773139951957241193822577390960274126776482891078813603472772226361141666967563781573145240472589185730919083481344217375284908042014904262881016053476429149516366908865160462405625395165273933949633717830376522258285763777990395810254338356094003466515081834425472033559589318340756612885635355938048952631659924781937889862889322947980649271981576621900177509862357541165272907287843901760382933323056302175919038048052426663832357050676176335754195667448027224367293993874809816012898418896284468131362569566039677573818439849247468897766498095009256783275167491172456101970358898499656619292672328083271705385527080371486490692814318858493964882878380988052069567399923999129853157764322928143010475341213956081118755993042878662254202364630900982449781831752584153206160562148434124482389721180049655657232984156489992422369214690747686557606730695021287141728412264552203268164952035829529271234929659050650114329192757529054226016649659576011357822315754588704044718361410285295642877230073472017472828730572691366809661338830105407906711140510674911052577072592042520063522399313095476793298913633516636337082939020467739276195503773864704063867143707327064144725911898346059718431771463311084754780345489859495981716719454842291768560994859979606828498690017968443293986171414207489842172526419210733558545220951978392678201867401368922745082251850127211273646398656618577502058909121898931577627625323249701132883615163107388941217405359106640538702927774141416557520433526038513372321489421983268349799286800004170863036932128877642939777104737027288025806052466952234605940039640693461013795788482973666694195478553293984989617891710630420540608608783617568317580620385962115219361385515955987253399227287457488100672630401129580471496080346752209910406598890592711557243234517652180153089976488016334025577057269460934755417933078781168019361664098228842531548144234193944524191915758217056196307774020794870982094341625193324799044203622911334743626728145720423714821396601915147848495403692958606656197373769873870596704590942680277942813062379140198195133370976287815838086071254367890964676633047801924844569428596792173648405033000263268863949798017767453663765470716300566050868849610605009259899760961998708714764986184205809698428686952580042468818630666623787548566550258560608211348747707343246600341083118255374560713334206576658449514916762101544043109076076998776960681412824240286185785346245090757799075428935123215593811492656814542274395234819672016239695872316395950155099657955650617719163271945878330003897006607877607449581987071444835237810438858369135953672536612645330465498591045557954977393969663157677211971342228925083302554087075346241863344614782287668418505698125632592992454724324349145235963984956973766800733127324248353149951398443609748419202728592362721274221703784980404289448481086651394472682525309983349120674055583139225088487375084704633736720283138301938330532931922301285269686155361754625659604777415807504717698051273785534726628658454543247240294884098658811680560627037487590908402237374311416314284196315063607165092562445498065025500983307621444545256945655981508950172454201020452086995129464811844227199445517547150494996257673347741277582839599318675477317449281805575589198595264812548364976676460319876861584431437569243157039088450588521660959521951371181254037794656022113187466495098815878318387643184800102685643476108352778567989854155096056575666779864847780436393754956793341341324929896777897554916378880007165384696812767734108225706568750149433116766644601076685514089478190872464772498554238524556402955471757457043840327313144144027656388590262060314507303170258314986242127775555221337161636475947779326080317315427019735769426425153360756670693038449947608619534370801588686698868807586963495563181980745928499248922866364453661184013145996269936818122605544077709515188560758467363329082795997508053426315181462697942900195712179830243516633306382970254233686504689156681406708729067468195171063978491833871382890123416116032851845971242394811178399542476437125476286016422318237032841342343732455597606187221560807207267139473665002948097092450684545820315532480096874514625630906649191939711611159787907968276481625076800678034295057443510050946357073057085338119685780193360052103081262562640454426858815607710864049345074822279850563913301511264958815038692762109756888246725446114704067465157814838055813242000116480393355738734194817449146087965445632374825047615313813634628905524545301670569163154261386340388477380363065366755244161654522107077829138699010439967992332251973996215362480892180524126242487615849402949780001625058891651835483704721836587168288154810223880491939768516536518809120391608545696852702029702345990855363304829515982976975416613346760579937695125123096663322086274057205272302762257655589618319469183724516729858804486164175431181063410733444369663248090350206832361004258852140924162257513762631860904368381400665001356623162119194447530425982752017321527191002246734652266284427001333435872310575715487398179897619865095065638512678985833679663032563369218892528606329275750514442345671394139611326705668265729888037818526510190463541442439874927430882007026013372090948976677657893834759948333349767983087126401140570496974514476621925495759145122668424915756236942308068487744985835297040970502485933520864501460535769582561859038624988476903850019458029834816361694610006812219567076110545706168510105432935351232741930907533781086528335615313721617064959039941346091571003849628888492013510662217520281215117486343241331925453125968575191879831514762585611895254980616224355334583731635838011823724083294739848095477123185730597071301603003194002882116834065986233214465258390042811908576186814126196498444693090863282386480601900454749048619596067974312181854291941406452204138632643004400912154616878747912139418985838161097317737351211192541502615675087055939443817782011866802722988462002526222002915491982009382518845498416910466891134157764865661386201704882809589446007395203285341000800823291677190263775116693330935576557822727089405184225005172370565244271327363374370656780423042637365097540023681533627565533650345943566181198424685468112263772967528291694376277983798117298324157331710585372301860121171115949229089126519105641835526928567311042884504913925539447206259629968208399534034091455403647575071437721512894232254768603110326000277014120931349008640570467470990356059386124744356135118179293501882558683100710892190837469033709950774494509928193044300922571689671835929328672467822063994426462979759039323812612344323876280059369424399216453897096281686101598011355970080170898766839596418481890885801592293206493806266538990490306925905805928791583766097821343794998082855299258198838182927162591318938973516322044198789684191729278036911337663951789656856951791075732183648257398215817519761177632749368910938865250608301549828916059258330965807403099064508955045663230274523003996406042976364551642533703505652426543883665074865097209707100290040413459568711643836025727342523761118927308614118645943318295363260095665186910867629745241257815065773838458930221681002091491140549102335947090220695621891742006268249919569552738128070901456970348153225222785613831201629204620632838418372910948566297114910918155898071266089245396740883303519321176133498051275036747282913864675878893270093962351397338364672105281894443243369523627331101303376286652797285710738190953146908644853026962935711082118269430531927564649476272784982662782762781929748658440562005267640972881332799248922913709824158978671159720791484557713859983725600161305735769128686700929757376957919479299948868043643179242362346519742494137482407680916520170102338591636223432566034965364112444610928954124525170033750320441020034324078927792572222353232614122024760782598436301070103044110601944507074632697561470453954653145470408576195531609924025983210385308586614289034037101821589112872170513729000012903169443994243486320655472619738924209514350237615732384296857558539519189265158248714358151973022667141119206732188663090562381169818429151907027722559658005043168309018616742011805509765389587369785706487947550855011722763907397189644997305035158478605905909459972927221373258236573088228602002794527409121486146718859904796305243917267601545501673243175217164443475697953459236819253178234947957867315727463424571780512259199701577082341954029777046599234473002455718912344566384807581088362865594730247683726908912718691326755595055789187183910379130643585405150028320289795581829145781639894548221169282060132423947795089583531550123157170425861894961064697291531943089103694555983700385858970786596330328329383620439716961395682247852856901715434449120315541262689347374371387618136162500707910837538789815696547971754584319794447121676794297011812801532746415602462786682917691597054079295447195364588574665414406467401986769172284951275986724664358430372105467401703835229430317954168426097677715665227987396907445416155866424431813646834851960988424716113671585161956139272859558425858140697539156479055908199370038531905966254544354481916056570248866347782261365368063119720980390219262700812570275968459113734923393128037248771627427457009732498962986988534681662808605871323191954136076515944075772205137693521427984261331595526186814794119198915818489129219109760613140740281477699224755020115033303351816402492924892321189650659524597532387382047273900787386493045937571237937919104796620393418701176225734364537626545320111821162495694378105342171811527001068496913545975385623343223595456034666952998409146739329854123033271258677693134969386059884172574895519563789597547364525444131686672706319639914798279626994658443512423381717871140658692530913376421582365821643744105606170197061594554686101234892284488535037995357503381958148256437067684649302838353777374605160853858499331485654823295835676901287885671574937862458875197704909524299558795208273214665913692898543370688747661025846534478143242253615540881917061407189320499114404204935140185103426777553238974891500111609498990192787800771319923162393794637487562896606823713960670678855176492543833068621240732607067885652135667241660223841739319020456077902864706870153367657072550343739332178798474070853111884975344091495636737822139000511381153449758063600803197041356758534260180848258164697739257211143793113120094088456736256739198228818040157111911667681739901310803844510651642246948140586463753838403503428747253909382254281443676852388874313810120913720884637882145203230860942905948554245459739902859103144686357558298868006234792105489553689282436386732542399193853803214529156392956200977837130955811961973351153304492779707291216576447658585763379101151607963387463572488283519435387104233774055778915258550052242943234105001029201081156118327344794605269412294272932338976871823013580763133341356152488521334596558709242485494888026516170912576774637693911684964767688481411499435410622478296711878939262719708612006551961567206307202775929231987703947941206627855507502218001631940819237229274386528207989668258570607755893129404904012091990314097603824098251801048232337814450711703224615334008892589138376427715931856618941348504159976353069060198889129609739592507077639273606552966100359568637743425435197059353186081090932431924295552330258535896773007581999541362367131480540073010080652958012165699082135899661856939086308846681922265183920521425943880579579221747830871904655476068225509139051707895675245621041224505505720230105246620790548411098408662848431940712508047953046832487245787120229424987892112364177321359001443360192843540712806499296860014063029195712257213195204193282250562511455801385460976546533236482236835038888517370371731566479422622137654227740408122532178378191908227531776648659409121739099187500451054792509476343126573899324791001024449698889999487425999568928580670182337062639280051113900226719267947828603063095267196339883722778901887900248262797226137676576951557445763929440840449941332363643969488928744401239174069392144889762369874490179913797422671811754271254431038391937454019872893344823213173740355082515882762874788238317773554412095914861573432762646501530242017549698126419487545183561663465294224488257623487416076858592760881696319311652042444335227838389881529194441992955817573784930556893519623366329747946247465456532683482823720318736092426775860434711561735494490043021434046488989556256860454418852857796516085982542282192532339177149910086273133164841659488730130545925025220953636076900264195454894340938787103307009819716468699181183969666918122190096911381583571418176391680958497389550645480683194230029716915436767616156295675053197356384568444156717447814090848785723092075120752325480580096154282311779217909035001212295563384808882929904039958768793578241076022794526772087131167808531916234466005939237306859411765786115405007317214789646094486873114109590994191068806989418126733130831658596474707699335415578785129493483387173655231092435815304126580860302005444045214411973272856581974975818876374656553385379614591877231844021075746677675750677565256352889740318332542878492171480754113550396805898380108801576606418499981061234806939264398697198984904215054431041947394063418090980393782562272235182082538814548186665698656771555516220073609964690739564655994086274636201804718892700002955554551080068308065679518399807572006495602425933333841851513946422268667906411087683559457582607298187065961072114199071220220945560646589165948079630231857122079302676290145365181480430116894849784273204268672291010832070573196881410666792882488117181016277055150080957978187372321542522875755495927982908765753422420992723949034939329248988956843498452013706979476306360734481588036707077948066894099719736511389992530938271890710764153283019914936580561193480966572421162238585696598789911957549653478355744141728719736921580883937002642114323805988021077656025009915266325740600535007641011343093073154740470283190573655832252335080843956098790869507868208248092491421134468114468244113117291286011451117032345869738248868468293666185514153011191994782640648271837383105891793013006548055462290897576312236259794380144980794066238030303463751691804706523054861582864076452840459531172705498416306042797365847084727862932639735836070341239843027287227789257959817778536936009443157320611658545295501926828245632783977296440480613345565234068206791677968590899234266980959082666975344130647349855867013387909593065595961304138120830941479777735727205260049304378227568507380368160691679485301398657198687937086317268243878732877400341912699264264201346083845101189305018597645151274492389867433661016664706754069922472959190585851533586330320002384802685494170105642659566214193175294625362446926666652383641696958637712644436703459027285873500030810519915343766420736820358596682976636665736383440916183408674760483475442194940552430725446878301446320741859760275288160265945230490526978345521649281856935453340368750891953295043169289770325395655206288373721815030450432780265663063228670047261863516810423288562219152378532182516885609649954037021327763417662396152104202392260939825410464254440096162591222601724568456250810272697373265571731777332330483066231535329381491476241223953078096176732197297259873042068633941642227497980718374871780756960751171420831760046455455995687024737073533275231926696263805691256110456030200740681664217842427071600778059815935435384400293171864796934901240213043648631247344517155273129505989717929999888380769354105786309095953304540042951060295095638942498441420649733930930809564472695080086294723485463339762919496078837430301611767528485003704416257846258970029745127372605656666048439679487069395543506093797909745510811385048165900125134715240273091177214151025711649471327023642703300545651661208373319071831940953443129175063363554356690406671218614441564183326164864897422602979726021343337183332321647714190004038435182088913049493452425238695630795393364267518320745040019928439561774934123309828616051269120789194360969620865818090803759688884145916967813876388790897310303841350447359617871107742655092334026386331070761213574568364275421242487975058818069211500477491804674762314486746872205063426913677832614480123849642643538522779093719226414376057640115603035249260317543799717878260915659920228936909295900163246092260188496277475970966286077057612590579469714708057161563892131889078935127874829101017496615269099381528774666967982566047861989351965783778285186871882601676702449536742419038647891829006942454610612992180074968033858647283712070598431066372360773063958911157505737991773031292414835997989871569913161281712910813119198186416850960485415267345720071434014818401457830956137604645161794777078353756640906767458728883490642061846506079126827881141738007810012206230786367151528084384461059562424893691043874825173608784625905400191283169332390086425484506649599618596895999875998326392609804327644629772140879990045602605615225505390881838907463575867197747186120891885677612466377816397815992135173317992121845650543267358793206491406387792602995175380733460071957834766227044147089054929535618120559714226974959342189420901373289075802748280575344210773156904557141025776064389157678919218399687391823894484042387695119085474520208749955085056753199767075167928100035988218845773712271707016361296672529984500545888495182328542514279279225422032653746431603631862533308718651173726048717504787138912205439322516583548872142822621757965628997515435654512910024435159942361606511193438766533422270320308829671036633260487000752914019091346956607999188355071825983218020578004881206033192663597396254807331610773703437180318776551700986052970041714085105446041769402614668231221226950864372640934058462735993089211744053195820441572586820944468185250327849291621947316318246125253885870133460782995765054970819534615275146950422743576494027893750142755897545827199212066657716212196284500838902305002887690705010428555901635957725756735791785189351820531183554560113996329145604473926264920172418108988106199683064207866726571393093396697717590394358515341242243316108378111050865253002400673594645841594998774190968709051622505221083945410371281803700642832888917356305367241562630959718094818065760617534227250465738084966321680788012500203715838070720581214945568666561412658429184506792260915951890797193593664185200547892707911731548656529012801738368704495746965747864988314852477349165977524177051074604077198877107514323218522802058725575440076292546577933466409079413100468633135265084998976109313807669693805849897002579064213549209653593659622788081251706087441562309258289179586910646109902762787117588593726979082650985565489557196549042287076356866713331347146394627990994848300827691086962332042717329922589342085758869026122526377410464630981458816483421778434187524149913968894082084514014608286878340275623278893772542124960867471499391650455777575881875499561817706745602347789500744813769690345336001932250378000525705710503601973378837939456122259153516560930993991916441609126960236720282603557209333397649361088698226954031501874174656703726952573937924926511904037512689422925025944839551249221126213917861678851078901120035135829505594884090989946499044349300199863300301201491859232473904497616230652838112674256161721026393282144612660055994561868702864065664777982305787694225375381013798651864939230849583374822019029957214164423443850828580062368113620855068318374600113555441531847882719381601855865714034148826829140191749503796621570039366115783518900459670522817801773988115798978507403426021121725339389707303702672611004765859349192308221201369915231620840204191999481110292475312560601892002670204840490396903836552539191819490628344907937088425194700960033533370550372002097953178457925109326238245786654446125260941801856160216668786668772392816865090932633857882789975725920878485025688774842526398987031130933950890380447613540918136413349867386267461995100281956195758452480120325524581923669940310719296444344589395105960108393226469949487379134840869746249146700701300989531385699753325347948404645181191284547138594148747353914453199916526739225045543577873287333767457456044023465395889033121277848457993705016249228186416448577401953748306689554592837167969976727093948479865098825031744226666032389613970942927346820274230358968245157468796995644929560571438059240908723988872121453627320944234077162661105847363273697447326123793654581427525667255251741416299015503225929141942356996505574027678037659999028075617457771747763615863043366651934902277257789112377853153556041329800910672599613729374374136309140517967301691863736678451121452974244269951439109053331862615615203767588062051182598634881358384678085388571238809804704548941782005393034441993804327269134363428665261696880288993207642268063611294602864699063207124377801029080419800619303048659750559971900494500758134242850974245423967286683420608909651182293338436787054250363859789780177047817054414077239853011983528691795984483425725794904686228064101049328982995416038142169123698813034458432166537280485579465782882602829055106113588937746142156827357313794493255360260438232687256734691955968742806618138463804930504806038990627740154818770583966528746931067314129575131624313960325061258758303728530455057693912957236726135795549993246977943286048203309752630159073421829252129280746908298692552238513710989300367377152921520547674512758291089059741428100036892777663965488106786972343326274579765530911139371957037820523236207280548117476908360770640203379269954016502899910299957114259046660064751895345316715602481643499729199969972880117000573192504425640718037177296674099034525979107387898769529350894007310697771494138551687662537701761616332153122048212955711964969933600441762285394789314144963195604800112634712380181398786981677497256637782092459125235327945762211191192629312181916414042799460961936810871446851776897735101827892205482770596213433882579419885003996273520366389115186015252355886009971081422439065528491173655737299571836467378533822998341488101753265294384259216166479659565499483477430879845171478159195897549173606424150907543972566368036615168490386759735879528331889839678656926122032467966643516617511879700202955931843315718068428969780585863043092252980359314244667390817947985172306060333033725372126331703786429176446344736375897152491633394563980438350364608857768295407515738251900902482060756755436403317717994531477217429490137052042506118233052054717017404080564420476144662772108034837039145924149310125240388127455534753192464762936885906026683003111356805179630233919311342668623879840355475242136909285673383595495570857893969675280149335577217185159297014987954579242373683050862171216322868860636907373828214019373438496766155863619914084394423116666092202337949440075497994902151842374527284744549927703051274061254081716036410500945564746907612681515258045051048202416899363961469470579976913220888562321903494614608503379389543212706883075016856916393657601075831793940563599050214095971164433594038832008110620313737993741118601541423918099086553898730217278686606602982050524419184256942957954286247691215464875063266896893215746730276383100779348860862870371658016856283548124070391423584980395006221566760092166196953127412725248521071793111304503144374544375379969876218358799725478029954511752675965024069474420027109624229692113371399094749902050421067808683779376398960081642639328370218612509630532576156901769784122159012725647120419935946346617355942355747628737884232737178234113212028247773797278556866023977895632371049511576260379615711755388313796338247580352078862092823088610821589489134218333109731221024547796812398717904082427797038813875340839420960319754917058557805074623198715468601621646415722994348135671886170576953959042503566021275197712834526365147739270058252681545140123525949153133400344413186987403507226109607860016904510055621755011693735546336390025317218090182331858707468343352814620209827610813664377781639975007787911155738852404840957678633493093805078338173577612460206679540862018674231474121341162682715508597005575661793935312659304201572885894368840819378492813335589185834905384059346904151592385792420614088777913919557523768016021037460153320572611495852322133150045310567194575239549407702738585579913285073006975061407210057990758833194475603323313764682617320106960951618550488509784575573117631815695169298972679065639171365771272680079874064672845355121641367812486672633807565277604979897035533449989436308520528753087005453126294257511485948444949233352143027308309897930869086090420479251694470709241489828238321403778777671094223984250197765294327424582648262455149932057257257426839615648319066359456662762963925171372267147175611194467740761893949509599585761914724119445701372831357649562262270761293985685586353929278083439465708955303442100849502411747276736282376460965653243342001101718404545793429820540493273965686908356610342376322230004312947328566931399655950449264975395808001943951027647498234001496125164870293745213570943186947091590115896249415376505191820611535416025191703691947670046749648427711077062784630422162600970577572585377310857627568168172938869494727699472831511761291671671560497782184739919023355692481419320057443302062724443314209919736117415590981198405903877307060242237064223135578433101900734888612411666278608210136638941408531460993315221089062826100291942885537404629772412619033126319604035776110123564938786708382226535999491763816041759053618470014763963054775478770057466038678455637980133325693523622514039378608146831797254992597856049645484890187424243134349419189794841981328946333833597352049115300630502479848946078409138497869109326099475521522242544668805995441130376349019671220471118808304536027988955842601353930033172407742179969977954108316294352119767679559041132306921839302623679453829969840869685477788272769514445112805647254406847486451350278159009078690727274089505558904483735339250566692673436082768513073671246091442318996044527794060702359520902918319262658407040643284363760412762668694499753181203453216916223454877238061488250799477506077768585831439805579412256765194807543840142659885286029211454753986023793550089805612290262911138353221593458528271787390696639885530854955679429686745175924002033858349968115787574591162933313726340960684280165690360747509952143316840180677378513524772617827606768008682179057543472993467557420520780760825436327505587171144951893750847829117705398123573005452302058205559482381394540329629208089333934230911546875749206739703185790953726410297771702148553301725808666457554056234177114128481742756917819890611292444638221639809723378717387681199586932286667331817521595505543597953033779599506838426202625704254644403381493725900251618992043697667929012291066246655296811384425480785885615923697306861869950909015056487682826894625221988020922835603700106765506347387610804476304198865910612095662250387668817946702777236045864252079792339340936045879429358265495292784734831968558789329187663975324229723486030006730549205026219856394585737999772378355701030677210899343535375354087604712249414408649513913906109842863827887590910954843316804908436937678828818120354221281219563236588003625509873575493496520236795382940523474831452234919721634398526043813217057134633298606561317761451862098180347042641040961593192540363194598835542895845889364314066979831511401092425464598034380357858878822686257747759375859648760889693191165263941212739924472799894684968689680347550193530933228862400898327981599137695966435408534087317377348493829353019574769190660417750509361420263181019003102863819960145244503953215570765242458789465290316953044977231188909211993543291690118351536613462295246046176884927772829445285179214815210832195059413736649487685398900355380003055141000048243161390958877043803868412874034888449572564290716859733656099023431965915145713933921309310562720654527011771502245406653131582330919205518905319717871748269040172884804792027688202427281087498641180810866907302548564225014673909929292513497149606082879076448162319234982454332394990308827731753257158743922412014742595962312579429417571504691285575772086158178513502428102755639511470718442172547001353998526788368741718823853957619739512181734401726857282171044935421613562337886334277471971285497397775007786757260543086759252282957795977590552114563166364502586558693137239097710373618430110260929395916265905375086410832735788637416834530883249783731376381478768888197729699799707787467652008344187401324247025345896654409491249712105379574786364202489830135285752794620662056151927142314960774037592159594800323497293045360572176369257917229031561166225010202274947414314062928200813758333489285527339009929343668958594154163600262391955289795494657044157507069812049305847601658057618094207750575340841824563286986088732687683765986316822518904800680600878657123266612572684922841186214649028788833396397241641612477631605594010809888449752258467040803081643185784267768685399186070680887544344551967886394781773222465077193136602310866548312039464251439262737239058208473016268227170194702375350050762901532115498101645263869024861330606908006805407101109525927459350733265777536596352269363538228507067884206069901469063229463779697094370674129712433712771420220117977467366924675845415197200031592418357631450319516002897279515702303256861301818094448004866416115953443317344073551278510937026325629929673402823699449669425212508735543021417929733193754188650270560777877357751473715494375408888894534670198002151177716279477622051583618958197333897110029175537760980664556610856269744184199288920882863037371859392095609047427731986680569595957451818691129427909195418249281200769998911336652105215009891944259035228439070268515462010924101177665769242164505733665981476882152797532936771655716692711994509160755897740667882337104263675961525007354906427788973181258084775684367768916444066852918383157077076637987246620895312777139767157423790279570343807670311230394358047819542700527636281067755291182336426352755356998411182196144176790306835781533793512631081012552132279543604094482980170519613883941330459365913525130613353056279370821789597234014059187076290215371099981755597952289662700577019271975353818300311796016459440404143726607492652929016974750000041594675033723316703806447480581191058268344857257057387873542396208495160731949303217788215058383853818912935402391532970771239732225558271826420292051875885681259687842241414745786942262832383661781542521424619500507147883218804840182301497339897994676959753926942794590436114320720354996700938458972270042542104711972449072449411157507328837518734529353256763240935143372191254183803251225460555467403349497795207151317342982568641191679351277703218597170040368157674128117264567525815561662140560988510579035263163971536626923153495302524551717812636014853317270639362350950869783232421753814909402832521051549144924155741056779914798072303496721010016379243308849538773302098047570945838576074016792614779207628277133003647531996008341071801720210592001063087029696765226740181711540976392572726624172195928330914167755810450403022643191888897359940107380763357633058333794008078545720994230854967076343532388086965844403132465865002088071185632844169971593214809257952990070882035678034411567604709381319173473811048292644110702599833856670032001480257467705822684480212998011947561369339919701621480264181515049641446185764582931811843082766731580302775905477432329474022519909380182892429524586431604341496010452220523739706158167227717601188946354295053718419093836028032923508931048324376726264510604962266503629996114856398029858198295889186619710697384424672705395410510205852065335397068520726809741230674187855392844550060233487678944047418157753804395782836585239283266007087814783631347691267984625010746614329557481022445434584768739875651967271123634091277318456294727980587778305047299294327205576163483973769155868777943389886867438479026994174523179837772012219737552295922315601408477690642502117941785224503630510803067884517107768436866103455822974889600385244941902660038003785660852269889347230901861700016940772871399651038462581608954014254141093705336886654680061037615953959555554545725869138906746328125180876850163681074179210223524774661943123228789777733705096913373970133601972009884810909791548698148508253061948405497708765314333937727469464863031633853094333573990984361713627900584825580632354487341363850864047912351774664471597991418662938127883884295920072789089828284267569467024170551082639451639352891655174268943000327789229331302088102520040819272334836717281760171014330995841925065737522294158442048451121825223900760455972129650586202781399427186156447506951953107929723718139355325557239376498259445789094708947407061633201943055664229559780118353189641891140630939930859588304858606255172995774767372063023967919514406544589139583086423356736919339146776882881451081024512174113283214352834764852757068200049260898622417348257381216054532975876972541831950761351425555545218622139918410954033113477876674023583077622431779276512087103711934746305818671612088956089879033460646074281581809686332416251488380584682046080645348253759610773905482824674437650020049629448366593828192688954854105267711297033920128048423547385981469066422862994858625135079292901155093823678182654279154846370791707135671197109230251721696325549749044368033223106478048216289806931002701041702205364852999271646280822165893746824470993804075155122725228191012907493209873528380301510869014403403181958375989080468118311654360168988696655353869265360723282233782385636777925191994168260439347124187660516034722765336137883151640673538763634487561527582841957960396120796888967854227638099287980242513860778063500241877186945106854882395783437235274941861418305868551401568042520979191038273055520407012838823334371110200903427882809911150141491882350016210002317506705881471900477734256254713072853816953012900439398794694169708517305347916955504501215524206314054253424397958295052762119249221690230190455685928437498874112493605821803061056651140251095909633507609036249837485778389138036392707282169667737564882636635325819506813556716461874876357464532704417032737447767160883021800635636119378460043107150036536583647675847558106217728407179758017590018216787279099244381106986142106241655179454435829194114242036038462441977139005082644798461355283887761784433410089074003781557557526024253777471327177038874068432229996092624038362606137884365111195766129606451820883857723536426625770100086520804658612234984896858023723678743569083209624352805522831913794624313245235525427911396728617280045814721075530169229533081346128651828196277591758484137446936396858075121566910135443866109581939125574644878366577665568821531823027948411336663552561925466322143292922516085776593639826229640387637088759651531496650609043438170469370381092573575722234008182472233588371964588358031716607378039396535031690913991326484497376863093179891164403729182028688700559478806092434974387447537710996028562902602902056111885191912396156392889145201778863477955018619297306490343922995660465117505568895933190116840581488946295155604786800473435263887599583014265948535153101190540563111117797845875905320037396358099327811798613482682971965049820607578023103887054503136902792329747242297397361836650157927155374240206003237648803042672084800262396299207357853587906159870027804251598955510410662179624172454725635839060480912049251110445981897684927283807259734851061326179681593844635769909857903065824186151260990941102675307216418203296297962440295761253200020791258104790023663322258018760648247435959678404667548473739875584254146515130218168823997511408839997153266604882023100950794308720726477110676346536992618177195017262423402730466088056506546587761924574754537639284756428967748074492384692462106349319895772616391932420649763559266759979703566984389736806698012664525192112775184991895201872875959135808810479761354683035685761110248110678752955639086077621521124062843664131430237300441700194778622453148448961623181100232078443979768273942981388967857525120208201790778664555909829862615875346583926108139444118963207604528423707134416681642642864092138348856730221946379220363917235997321466604600281275895518836266647211447256506350980397020655796962181002462025591191756572992026433629462781798245413302269104509179549136241646612763625043533206035440737870390579856932417255250291256978120259652008781702405866173457773360326528020932163847471612562095972653097127340445489855108177698795317351019373379027541933271137070467412231162473175474157521771309676334959886010872261540229075806026952711903520939688714830362298939677068090773113003929634984067113585887618679349695510357740766497746679498058258392448174602215748950518979867809947156845232992680043338463076018155677301376177389030686834998034228167074899815099189075114531969290592720979728628304686898096499603619013668127648105525931992403176281909888957782349490857556401836495803830182704741559292116201770633671701532212131739720214924215820162131979968105690758572140042130986339309319466465168120161620016387202382612726535561065078996166599113279877328921872260557949049736007028549010991069155177993846576937473307667255872139883424899992839966102428586210381311999474891717062299858096122324701357949371266382119676902784383114218238994649850599812226047711235054166244189626706748273972396746379934263536749025141680812510479877958178232584460148512661164951906051588495469925176854191778302318081335852558862720541347673096406562202682297537850506625251161531705115512741207075632724831074918808765391630687279311255005119227893441572989403798369393583330075284248948244789890657554566788839313554002714473515903236559790439916803932570978852286334991238298556158991870700346227634835668469665880695945061201213590845142749201788337837865651159506967916907576816575437300643010031751184338871718836755080057615853308731169605690557622573691880220488116808558721270871820367886499964875195184777862564349509779577099432990481079515536192064962813965824161653288091517000628730645966689834971900110774862524671950501208116011668901796313405680999942927336743306039198371080517998534178319345250072371088046329318558037647149975317032110480263358095661062470364745904544380182302359460447431129784485692384679427132990350798907401528561618497773549667458317440621985204094571782922835850802444724329452234766971409485833169803923097354374101327689948421397781486648112949155495068697955178577061083790350381065835549831490477695519694169002281205824884538205988935504708301455288796945840371729168566739989659568145247462585518593871852861275236411735264029610517063815732653214416620233664839427542119466702141687723293580084616489712826285124145129057025795670835725442133438665252082396257149280064870423616648591303770688196868640927754610917484726485579289866250803519967273001083475282320635492421677670167390547820669189334801962530873260260857102457747001982477298986304554530580777968228662537611611810774856132086057236533572182134002585769332119321460237819494077358924306661287854503779527272019022144518616253613188154433238292682294240673794112690441082545052018212078525663361214715698237214191303152391337512352296099437187549593019333325973672992554791281552053579916283713874394815460882270362369472973372989082083701764917990832370735452577143551609512647766879808935938981243569882497960062318637067714878255516009584021160202360965911748973131859906347626465850873498931238342228519486564507507931118760228249967482831599849630282169929088326812238035732095315297302683194330010685827168535802958978506402840096145084604458917981157844409301347770683660122618983274457401056014258616549923488645416959990859602344815130812736088515490720071678951525152259143682334350012021462787144807892178741863490586038526243184750513349320348971272935987056048200181290448475895944347018828464692280462094269457858663338425689428408824300225646864259167372300414693560806701938204072874200876274787077340844499888748625876410407990774835498395532533469951006254195314953358651346748877541958664677504464012123509384297483347295865902645451993868343765162514334461749943545735287683382031858168974596445893699363661566230551552432424625581378097165104608343059245518229844191180435880472676749800558230228871276922453697381835545440201815346423476131033046087231994662590213416728640454351506669620675032109695973365293196058999579146993221573366412789184662373938213435311104191761721165416473682455982645262120449178286335325188514413870107044199869153082644690829096316179607973189019515268083842383036014502735897081276154042106073388625722604363268706963310892306736479302230555832296451008422491739016758013142675350743056784999984974922460332032371719298350772755376754692411175137487892560142145482830479271831937581496242136644024654763748826451222562022665993907319476487029594245800278130899397197920375001094137541793353502327803655395413819965980404793129308086359938672141006874599302926497201264655753697692883706591532062936758007003107601996837001002147175816996366193151814092830018579450119754361116508070265073082527411756852942783507865279120657971449905438330483957287333896745825861669337074839545555197093471649770743240610384573714302279499893440633309005672110122525762473799932276872948488933934397727907398717873995242522123068941509846238604447255926361432739410011513118314181724705247512867575150608089335135296153497494094681721234062816641713078019509807414523486535345233835098798639960147094695688558402321698751219549605908968948957332314050013639639165527960772216834357166030658378854576039528154632135830026635637777984800659358349427440762381967321977538270466915292933561395742340187090816178039147560756397099376839633134790417966796533934685754303338084027682606462699851838545440257402521243398059709063665855002181155475939906781528586352228362213150210639170302821902720048979407306542479561323269477646407615644651539931037460450196795532237524740244311185846649371009571588534869854323659785694126547266912312027015485038125316421933501783030920339257155436364873639890957252142952612094728973628345486210059867374956353212838660243943264587504330904667368163770276261959487300652100686970219636812105431725492609839795495759957738316635101977879425259421090338470392919575501975632521772050506154180997905293168871681826739498289628027120680459411091673502766355642881974334712167334493124792369783217137389516429871612554133032873321155139829706735500419828127673411418326105747560004458357829539197983629544587538639585044383427312397975673567876140041606831029164094541897695939841672099553714718924235837568554059009444513635504675393135087988581949889275221204374632606051571055447136884676023561019624031801000763175811762440492430498355246111005470815917298843244256347139671758514719600297600728785004399967065852044231210121899566815610461516720152071342733447962435569508638951616048491902005790891911241672621014412453831535369508434695786676041071641729126804837635346262037234858769581432216887146420442988957903623667112887238606569712148466499106522890334545802302175694640805814927604713345846397556655196167947440678630644055399079864156964230137679304180411552568247025935103811907523157007232206824032647415671624808579137808439766271351141060553108831762084278483795294778313992863740542447555129729169170565953240079557698931168267032001038681747731562603216421213454646011377038618418619279892119132071480776936396565559967095630972537327516215317595578713063052652367923850038604893914076718308386919062978642461669211766286351000744415478376405064379626214061083923230910966252432938893468150377503324435734728957456185414636754947065645280713926140132260749952059371969727865562798343484111220177858220264750972136624466653503141996071342103862179211964621058558537208826790970134828386767180144464697095431412029536172907828739740900306700491771616764897215645587577508835364646489124739793497551024083782973638927851362366178132683572396200664724822852633083098050481388188189641030175653207776158978881440714955412772959211617120740968330420869104638128443651801654460991662581789066353467290041381192915828981255312464711974614987216970625791332501814153493602819412232223178318195835840553499244714571796644634033927424342880093001310398710315607957403926727274733400849213508880125983825890740476769852529837288618560610261914511446276296275836860851758908851586480508891896214003941389197773592077301517395531133948765590678569038197404997657072589811197294386605622782057334027873783705774353521193300743918899098207503568083184769070546922768308432722223909886874204737932634020768591707963908759928739239120564611789889022811520298432436657894269491215553566177513843971032902160104154439253930122222319310069627114534037712169579072090858163793899888561742908503204474389452371563885737638020131537910104929943226947066516736132731292225934671762139919633870364816794467169905791477508631446156619118070100586869446218892392726108496397797025696943987225077592272444992715939625022656872721572011532963152208828845533820209519815257482807029504481908848000665326271752544625734404419553610608046828636980004637523615786897407453248555969264391461684598757385606631176026733002800529619933974521580725104221192888295375915002832754568743318038239946257011143473353018451875201863483570056321154023873185865804062450185890490274482852672295660920120057674512608716323534328309962071130904100457242409714744643606705561197704496412404775310234668870072276394892075947281493082181945374786305131670777502976662095203709937389038175071659719081409232605546525775548426766034452491176837560958032189781356521323661474995025715315560493281594670240987904599536715356361747799871893904373759097284277591189624699341473725746553516957946034951685756265157784242354724424796771582631351373125853908414238701199471477736124745672912811373205831645273081660671259868070313213004303969526399336496032162187254771749843225468004860087337822604836577531906122995872727549888290842172033592164293950042693189621487747392016852656951138390275354696446457188808634690663820995247682955393062802881141429359853378534270133792503443814077846663456190422143364888086759907999705870272724628575782328411272580228223842988788671814096294630953460709644726891550912846839810754398172051743169816954479280959274250043284777098587381380320545753462791576104155837847640939226575332076082331019012608501027347464204709640480172364614731672126004854457113211243073222382591856644500224173107523641133417597925171418201530650760111076186450734647785059920964089798484799389915287845088119600278609261390574120074562379508025482368803462413264701100958333483454735419799336246215646687496925596771144013888993929236829928778597606040514489730801369434848277795585796964168544537412696626631392290756635498203046372715134147719859071954371769022796244421752173688235671403375239018418160259444885253667454449696209731046672731878348967501907268552744498383941572166602406613092816844476248670176987261491353170984987007742794859155648557123936590514044426263166671995496219466200720561409173861712807592901312919580883078265344609659290508122878459031293748108390662697567706923279871108107420995524865895837759151937837766336011090402555403702286468052545427172227935420015635240342797342609702221614707161380268906575429998356578369513138990889436832762591412862828258184714678259272143743683581417954397251144665849368169170497013641350086578414340370171830666561837041974748191383379414009982586740281251318511318389797226316293722008674807155650396449703620950469853545893573536991479132965579779354360809034706421036357309520875781900482395218972714132810581790432792250952621044368698826957353485968801082520364494784219983626481023602082545221981007270100356216968554685787733079830362054817585520539407195924579656322695995664511041754683555578597387639470642238862291726052523736894562176946851312654325594985101741386255282155096569513427337666912908329303979467650663844610236996116686530495795625143583315154597295927383716270130788133021970530797903245435293165974295851290928442699794714294687270748319100587746460066817982612481332200437687927276221322558099920746242803799760934348681674372139298012376493900386879803764363030558502443616198637514546381911336485734233788426480412364454094917319762386239325656966158080943132250201763515981814928712831663910544546102690070896565712628721298820225026583429194747769401944957034278970044517215219010191445985998477257195009219602957882521563502169336665610783976575895076904859715683583114753630364540378274201557437085154767695979938894962564844804008538752671486174847412226538284661625376596059687873799154877520126470586629364467091774792559335031734615119195956609299600457699309762784608035930812183517772621750406479173401376202184990530080725196873205017361517927280581558210916315454994373799432953835212496805991018122703446262851529521263848337521292779998097594214106711899893893789694340798461176728497047110058541640188061220270320178333942806715867075385862110074956077716218670395784719246069769956969008895241573970906397014521240097774267862318622931668033172474786063718839425412535523292767085061704344551126329350313367312957314894293160241586928927953237072502039109143189389165969457985708635170034135694423989778560571404068550822621527396945549787599645604838947110290793922381050001293636299073262143237548539915451108226951161613227285955648834772807384491329979818666533870419286750369416035630652813261413715712405161024002048547378890331846570990602087179764325523645239331753721872479610104734859572957994648344225113881049851821244849336468687269050592798915185381915071108957454619959519791621184243119322109446304005796175531296778524282530628343741091702200380061094789726358405187546069119810075873765941048358030414044266760117078756909071222636978479275062135212469339787489621393796460378535752853967439724356319900190152843060508111693727132833272075171821977259866510908479732310154373261103759808345352269939190465616445617434738062320784192234533860872178510654843099817159701340151655802775939331161081055679764789821012528631253539020094350585103337009036197954411245491305290826131327274935397686677272535956015205977057775130883926895608400822938117207352112273920003186279600872890827584604441998931919776947201219390244347585562862172096562253234388318576786785742495094986414383798427912645580330884167278460625664224416576630290266294160909627849607709797251013630773737013063784773696276376669453586245140530487446821731710198301782388661309669020016164896083234005561907420658546200111634759646847263234290281377411608317501679471686812222856025580987366222291602274726454518418661942351583002163646401602197506297833440535542682289032620353420117522134135602241880063994636285599643398559877617972280839024377721876965278931500542897316501525450673566111415972432418023006633577533395888380310203948293348803291598874138527539362152669976061382632473505448781808647385770328814469554899488043913104332667333454553458879005360839427282975172709454806672899277568400922841808019889435798537991718104299658841536927107148907778332631147689945526827664116134199275788763252476633517720143733451783981832533516883728769110354141676516204880537859508731916703912520538102577896183172765649196404895760847461175165501773259676976645288924081219622438332960987794760649271999950781625747459415667272665343204387523295147217317409592446380687823601157826859943667094347418214333035128090898472869335576859855928037174857367946993547753751225847034420077225373123478146462465830368665070690326367689808625129262024683374584937696532346985234542524050129207173100611063273678321415374231095991422696477431104643528834456738110574570767995548053869967827490751414073361944580614201587024868293287193724598498711462730866122126508365451742621897180259252461090713727876922918283005794511028858302450723045760744297736769811611108809374587254534592718831532218172269792780382671175300344693225443366205073071221727078936774790707129501198723669447881246982635252186669658145726800263502219317011503855769082156903972925990365598459301190130566932733969188750208809092953658330434170800213948255264479716754459075109824565539144772820671958051003802153268362785197037870479362847175632133443929019186547195361410734838043606017944140316683294854505048121483516742550687140134665562888434603257115547254871247930554411826897783316011461415898248489938831725840252185841274039480344818885100992075778166232947967708372818802244211696947752336038354591311164205647828399957354133552918261562173185312017901108939731167930290443581852432783164246851026269447161620390045529065613866099948371918944624119869391618682950436487570977411434578717511658569014128532054858287464335285942701390882620622166347542440023180240828879017807517776815908222512199964133223585287600566210216924541739960349211132808075402591872751089530716137755853441644142727530781012057535187486766601052500710560528558225323605135558762669285695756499745460386215128924456307847829802466120292036826906959394648830182485819699341787018293182899312835060830274163601623580274901220969406713504480514868533930614485669681719480873234637334116762087541565080271839197733190405469060638396749131398387575061574309110388687574153893372145089304730892146371857892661584424071804800935858002595537078723855425488123442029626119143667043474591504728266910542903098667661143502488202156211254619467513153127126762501012895699021271315781258942626926092567239672029182523903512618730364442401050680502492105254998307370147371152823290679292772790159055319593358087134224033256056113220878345705580180723684063145538421619530280021886138287395400017410791676112628256548919336573699905710920548478927668649753135750428799995533263773600082699920519690306206885317017017102801568797823651566636132260466619572198920655498544673853025095925223912385422836894724922690896804353698439923856596733888638695466361595194833552709206336146227495714114668586972847417199083519353406663304440182404578048579519960275874292817651171929169570352563744832095129347981411887855131267518580212933939419276840259786903442694951107213307181480609176239395488597824300907911594286572385651452699797695299683387274454301734246461342204818471699194256739407186165025437911148376978837743321589026135518254297333315740604592698080598133890998660581083680911494621195158168399635088954453759547600118918353544104145356489246188177454690550896450891089549404427304300386113154598562026368326641448788160587017035001070904166219214107441891545148248996962628539477971138435234047325803682225662503711827971446129902176794267151113051723882408237036629613436220816294451833062596892019056161239003186161288433864837668014340026098300127609180587857238871041550699800300864672427317805956602064038212641328576839105864656367376112442201303081177838758576052507856928062841854318647000791196984581955664123982657533999443123661657565462526647832356484821888168428780199414284235117626318883175320319738610706399667044528333792703486344704381647226220345333721375516030637983303301493028819333521541551027093636080627747245634585662182545835323521560223000244744473588316684725326539191485367221463212567885537002907882053053697229218475964170258186854826452206631909727727108083686305502233356789655427862610908037774654150752602388759669132571912720530851198293739596334808689878957690781334324336756082179388212590893315422399895281430514932218353848320895787849967132999471636920400131319002341640720848916311014960396163191571300846359200419000501099129721582229872515850869144898691281423619239715165992813079354085310918557259715667586217782330452160343478714661364395704713597887565347336014039238345380953551677300829296975351060348886300615579069946778805885000716918452776799499724112192116626761964947478685602146613974879188839875402551020128403079492886794047892042270686632166955039667833614562200947260535672555169783163634941797078223699449816510298642603954922757638132819123633830352242568840081308736236650587325152476579706160382758570766101883136675131628893479392960656699208444232018848685775591766311387046156896327249450154658049920455343766082631144903854136623101242666436633754387465906426927474721310739569562202368931788143056461411580819607448381223824453321305767674177937093844339922833090238353305685996079561926889934775722534039519669765432817332348557196104023863675732639062618356323178539088187597169693059282277676601797576187557164683279397267846045262324646666870208267064366527836102169303829597291217288154185769496091368367944128608882371238760435840366265770482590760951401935746205692013386436185050785915194235107679207307017114955818504217546362546911584595935681822437665839631091931583951397856853946598527465569154918582906592223649363476993860316968670969126602399806814371611327082861990750136800413771337819822712496936319714582320382533215073990868283686008487822762816173878999648585313397879018819350047268185950476615376022676454766411435284859196269764365832251339323135010156923427106131168027683707443576807769240849037210659508401870243034470010209217690518282150621263989962414819542046739492214375312179542581930796436283160378153374764643604572165374721637229413293179818731769298701222615629917119542377859451198196400484625396942479824124456498717922087780042419034471191120044962843654645406067001876738878474449674787172652222371777164871761780977303914798376127708069256454560781288064824148620244484514332177411988574082338514769499950712739006162375096987633298398939899882164182762982659351269587498273206634854049088853032571701068600814826937228296650804468067968107715467779020200777815425913201490849950661942624005770547343338305519884299809867360435512356561890767446576063780860689747501734480857971741117366761480636426667552709623010596037897704019684964191639438360385537434665461167164795514929086027635264048722715874243441161627796536964123244265251626853864065308753825602752749573915124039902247202452785763367518870994181499745133492244665732907534166044963235237491186010334184486846116108394123521819527019866479271261621763529986857675415083133671053986846694089614968161804915628311736247570341096939669800867803799523497452488625378562544109860425428831369674300653072532495862027432329377163275388193860136869669847817569427061181760193274246151277323260606964119525851363054818936866107321092431915181141646548038781102625040049074284190973109605991595719089009850354049297887633617044390598505422567613653393952061532819396037471791852784949344447151922281218168064172880733892711689432927055249341904175458066895179760040446740935965026674439754640287228243137219430118970302359747080422591416592558905259569041156243352369361928715821226001200408303818417216863968582802511244732641096229872661243259369185918354038907992204393070816865674291662302315506163031050857189017080722474940790279117019709503417279419874041200341135490200698712232850914100270464703615793727088274201646648434478346670788114231542994968489298189623946744806595948383851463902635364653227047205626043432637752526050997836133730192954474491946790970303635937588021083012516144993414254862953611662868543807614065999236883444049062926650460662254806560155465756530862242299359523944007316008697148046195903386983581396027749761617558771861352889530078208682247500288231796768053838921388487950373651154788642234745346609451206333086143371610507580036220241844501226788203977511221253802297787441807270544451899190811730587137953847710507217935890031449597255989705853936501943585610845683377097296089273715404688561274433776554170607429814404580725422982612967292836005945168938497119078230444753780151818290986950559601838943573796686320095135604520121177592037741654634516980409046890264943250804840137811495040901128675745556625012420647050705581969870048924236585414455046861419213359514240631561760704189611598083297996785025962944054009418999610918131373847184131229975102167982142244108766971356308904723642380561372536763272117672591539774177574473927633724902288984769718689614790253680009628675503881074387003722312389545271198516988847771864609024942095929906556563631222497051079276426298410772303827830460728038582624664590199489863900603963730964904336175408558211430537865786140827101639989675098962778849781034170067426264975147981161728872646033453064698295272829662323809712902618033129720995180205193245667722819795957983504944507865127681194064968091461658682990323433975899532902840391650990903151497352766294450539056648083325789170858805426939943117526073642915956370337193740327991501429814444063172053181027761155290560683336283578105453168133149301764259554712636137397843050326147494462039380288452083471320253484490680097080654147065142282846461808198306621158249824759350637521167851583626839549061653244465534795292795712119659430059776878879237034633701587772436273706244201143461631744907798998815976605277096821568056682200472758741720203629605245671894469612312265188734066649975327423139478991560087528949027263389986220949136775184750726682523204397633681939292236652274239623503326692591635928339537201063174049508839398654505637240199015196526054686262505166307872718240712934509099874649880789428574089904009025351456817898871176223829626828751149359159631062935442873188217528754284368399247046278630405689027431960428377665314788610912164617765131597782568110535564090075908614959053639599375135350427366593572390372289933244498104303161319371824493438190777806197876213470908938791263792878459543839952398980302833177644682117541857138361976378784034396031576117676053771069279978192347071507851943180455180461182260944569694183300750728953644768627968776380629125501268539189491959159828797705430096648887726810491089606586116135636451012659791406036316743494635542244744772523695447765261237041532846040493903645894116097069235803126019760960647661895940293190692035007171605124467506069796958936837671294557433362691321158091214812001640758964533281965422828919688256025966543662623290230945563489802740418757365878123389389576442398824873568700888580876744594867975535076049023508903548155841918016381127326842793637884772143679104802145686726071213729588969142442921532585657670833168493634261127049874505869622646251465986529592678847548412556125543700250154360096093231850285846341876124952287863333453512417547551914363497468627021290867982629506991369431839526843298447132838086886403485886573776664039343911438491467766283214531335837778555036528057797546270103771814445803178694531773436793754861576936165470988735826424411272601009535864624484703195964760804181428067620777321117064649548649863416463407228868896852448091935276445911524243400598719925770019330150000013858627714150691934037850175206678324101023308076270790814387947045305580386091283803096469398075067139282380990106749087186728101194209823880529634560791756105784351018173315347383515623447858165203976783419110837519693183472284039774231576998485150980784302174746334488138770152233930401919011091005883584910977264522592891759918698770302570318438749434654976838348707976315085729544079681612492330151952431096918374816127626336593687591000244159972703859201340038990245342180603256909287779931204700617193402966079434783320699866787352842942193055790910149313542895392078631186806840601777650700213200359068537553043233076429447588585455104670821792915537007725032802960186080295044594739029672266819176583354534400402907411186803897958694395230064062864699032029331026423235637206035694363690477148495357424949589666992805672874583042222809502680673821444542592263906191983384699867173034037484608531433440453067987838484804295212104592524623259256919034084849310623050531504151554660314283373397465833407035822534700046358648486378222761231524706108525544938117552484683649652785551489637209381133890852957530943678881328580045793504074617062061004144611499859634349286392083270614905051951780971387628012169937966372373678147915742921896305689133394528284955390218776318155078209238568926154249165349781148780698203122244427050687087622165217243129637606607888344480412813708974235853906721412895232281234502375491239470775181234068856263136731012697404208278592419613758209357893029177624388585753618961195823657508373669421771217654455311321165453815212701058207326104206138562602345006899124644971769340967509163236931605936362616947692080012252745246671301654672693055237477970538382458082098982971118806817052617935772022605969513957670883795483415159934184129978229585190246395985540378088923013945182380783514491617467043709470267806073931305537807376380218352391787528979746486993309718452270159132118533146641472633949096964067341191116238478435675818343980143985772394845277026130889634371989524313313084091065251453079783038278107594292118243734166572190384197451639533396438369156775318284888120123609766571179764572509957590408220090610664450433612304999910771606959032211812920477254563175279446527462890631803063389391383242040441984203179760622430637049092791680058852160711119874717723369519764751900224113658544948583693980333783677743050291012433783995206470734374912738357386657708546592577941105559282197626472608275309477347852524830346855225491250102114322736659370009961954924212505821857653601116236525396679294214155034483560769871438199322029762783056068119159199709186809681475841636234564553919392638733830525185848190777229277118897105269404044207880783934167377962121838516591567679143702852471923169895740638616150813861775131870332673427214787758980265099553689549897913975092402576046621484775138898482941985753176464218222310514922624950134165674235842197644674460282071047960905595103253625023161050615496282933733079878187646210256862968188514090527596830269788565296496479655448898751975846217798442410488838224061516382922577850854382876653909901458404921719540891032520094892309205553990904893970780215102155432677302921797927084550843761177697559449966797181887659206033926884505743627882219549151460662105738433383424055752696501975141398588290473647519191130670833106430369604508106456444807235688805658174906031754723684092999108837814133633621143160626247970309303503484307610068522421757071999245884146496335143974339197519042987305950924671753665468626453180339767256757502629478671614721343041976327066663793217600854488194157611334239593126570377623161816504331168157777462800430130693761301570852391004890207906330066112301022314087594262501531906025679923544373327006273663603306222206049114766814049193222811404087879627312865065345417572378645382266498622409258583918759018116052683893617818246144052571809129823651056541974262604269163313575828297222046963567816867279409388140008368317738203311248926099535885182769577859652280440373066837588629102745602821309963938384021380284903293318925186635845377570400877606741871421948643552701674103564100378649275950470027457793368964865724663309268866199966723247022698852464315376176722570514078170368852618919635765004986451232730916278001830022343015353108495146824781849391049112409150545026503225551519132446615425180816903678769123823124367353555450089190856898461826607006235993297299296949378388531366747664470285496162197450254386315174047126586631912359042177075266446348690937532367449781696590103499060049913348591024631005527857330590686530410840812647071904975207488175115766394600800359022789979259745546045667659714644556110871950484444619604380928213531847797915538507351618800159703292415122908850048674520125812753958647436327636620538908718653867647944576318180535189905857717530137033989705712130154054260825627945153543045251797802478342748607011069773559341339218646024107156033086178587089494808664841396700119401387942819915979958066987826199816226337547193485065264961167652930809078607190380934399914813960059270699109716626105764173592893830613330680974536284677065678737312194187098183883525194847016843685212791423384914735548944476141104807409561471609834950650762643726156862585135096638300459022267615387921135520739919625185968044339815945135727643672607296236338282733280150254711857641151055243753904320911538370361148862002599338650248443322490960880380310897693483328564679616950961219662894321202522750055737915175637516610950697561063745686050985956720032137239194737615528847614058801424040551162656943891846246381412142851983011948829252323956018336723901732289052750384719427811675019143967195264405533988704452694792309202917821051247767296465852508944621860545387798956711298404976443362897503542049663986928153809436017214533234860298439062648358680360904910355745720836226069231429195486726874435556448596557274926771998538066747000323453982763941232728154132924336108881443321651528153324686340303029095045574805540168597503027562832707679696894084255429073703116632345267584353868870483319574170226902815560886866681169206534406090604537081317812028150168949001814823603287527234153509627018805081506651254654547871355776737979614955409134036229651824997704779241844445455221041864745188128771268192868181248686070157391959936078451135730912979478084850071022281976743098566365135828270115652599286202691308919828022269182395986633931604276862089171713481634766199512292093413495148560438877270258597026588295741802039525789075705375841154786986435792968651313735289354993349828699919013665326719329191744209139899471905677319548524566116024299127321833854048852377281778382879528677147920623234525376492467055877670275680510750281561469443021169509727256356427931319958596148397240499724721735296861276536399667458344193119769068392020265408994893672520229441385678495913849071277370589445461158738185365488789383517519914266951412260456897619103131238463169332367283269088116117381147919776989776733938938894937979157876253335273151034014303895883734618381742454422839971959121298134569978290559262040362229173381542037271429519782803887884479689622536635985112811528998256040572879330327532807329606810828684642866186137919527564958703179555986088523083474316364440626231459999961379581329794359119220253169766809449986520679207354243935910374626639479009124552743337757654176792429158826938263842713021095987309818258452639809243805773683858189509243773102640196672602160142553304318321492301327288721581400968098097921770701280936435771419107588269073349368877391404903775686994829976053419604267387259347023402476841038408912972160123310167918424612227094440239457295219594174736437349836089945350657691017112009767403382490144718818204812833021302994507602154516002756472548323945731696225677162923149386090048267417355432621223016903383343564923862155853952074155699463362518188038177792955842149251268457448721729665027209058102552406920564218679609372337412956571251613444511874330838172489216403610147299140656768540301380691890228305012942958718850155715890214563741444849144385419224168251867548941232248237208671469017214814003771415586701828778733700647429680856609131160767998317185936363132264424041747844677270711243902808666940620293308458605501420973552640017543912303771542579190110253016467325953647551776994623650706064597289988846265547342073871613044294391311628084467566999970913413975478285559187703147551132624922759238273198785315705598188213689614583678739106439054747174281614138783198232966863334026336201823345241755627657459657473699841828016695979612404045967944361318338457875654209254587521064706543624608003160568639439530836537260129298224380518125200635008643571186453923297911460590933152730324603104046185668677583658877042221841786493227008252557274284055445563158213294904632485361926634811682542810769703112049872903608766190304676662225394335013533853916543808464744990338183467624229884073649926763553472220545944199242392616672209848539465818239991207476996768238002525131778211633961132465879395035273633571700342600144851016787390988471945695071301600221295141114435600054452255941654357098723715275407650410823161841980103874549064919804478803534952264988371306161506770813398161474895917776548189287388404344750223596618818561509022001038259022333615173176834907213962382284899803726830623295246175304152104739274721782508782674676922913933005570549556802389920562829837888480545728785488051126822250386715181427892572029860903891198270004705925596823472826862871766274505634865481334117846071817406938731731041855305349532976333336835218887590898537117260375017081757661834331854120491036917392117699348968982713050550142688103755161904857407162721568670598573357943281580203268523059303792147937370195241009620532772258488834078772541098549799961156854103662841540294829022823860915401287399181274514252544079862248516140163304204883880333742412444201259171690330320116529174037607614022695513611176003058393409625945068029252007043051028835541321122892500902583438606950845127574273080352872109082565067429845566720877773884487538027207323874906981984910679111857382488192199509796266381312990478830203917587924195459946947322266116054311721027588456230563478097084059889514588079363174799230078241164665215605418919206149211566644049888315405863283751127903031930980437022759301423240767219308317594360969042128333815835508412168647098126398777349148956633964081932189099399027312603860076146082199668541661278220192798997722043981154173041039171081358199998537921141247040959673267040119486007753279599756696005354805866148358000248370939316079135979997008615950967935343964737536127729828059722031082993030234411526567486701496872932331973536861804021105144775884720079322221499434651619638077889429307074152926864659983885424611141618427982259943697636840763888276137839981191601082101934016980536680050534994037735842600848805029342612868788302067077132028876479622956779323600630906135310993013371652597000854083314471382116357223953464912990473669218199868459945701763095221886241834735956941390034387681416331446268216153383934996901345883375895391830743454606672472470014344056010541716525559605970992767291632458411351042474179913023302571827166671342749135626374475294804607998474266575042129775058817449549905046291911623417539980500217264092064000262710780813987308738544900647653141337454291191773896832514952007514981357269048086532146567133705192176012602642246752711378044348473127911168688729005728045140327702420474710168550115189163637492197873522512682032172853468989624372494542705290996585839450654696756113731373346561033634973026692021113013164136093699321135474833554404024637911593541808304627185835635994569134468208093004623652559663196494775744693772631820349389139372305218888381632581101119800474297944659057538494288787829584038234398968764248219832439189328864035955666984602335829523028595495671509556485595110254548786109719864253045850711793033059315912928710216517736790746827118597431507762163156994827378534560847654739186285174866847122097001262972566681207372455493797556287540648127122008112963668452347012680173203635273512919325849916162792497320632062397968940774136272511716137130693010847401761797057757579034557497991928837805199597704198896053256609295463749472234526201403197745993982954960367943381730467431958097069005170761712562423719059779188783299724070692415347263895489354160696424942640259591230242710865730970556155341672718562721308868540145906251647745295700161089718489820782269266533640684309117472748789777267588428158490569363877590025073620043460758421198744636486997646675521024377923704249803861375263870262131082771312964434584627649788934122747519450638267818215193412169838914460299794822499446646087053285826436670481044585179888240263615172112222897542886177473001383666611787977941113676355799542214157144248086418615831753994104924163436863723089231087395190616004974015582317133779395468684845810176780384666482772134480649344757230830122743705687256385191142505673410418426105855942157461582103673670162000566658043072453201743573718227927803227310195053064237477473886107497160960532679934741103210613859512518448283428344697644063941062240856819781702271511595174510909181102758415589469585221838028814853776868541321574776024485461982935454681786343800321545112363025931995570056299557165877101441352006642636739309623347328283303640098873516784514421464019800145446286844130785698059021913241103714385323232010411792650880842789573611530341389059836869527861298481660630646822587843206334468014982807087891827689932513273523867832024249772524789092975436437616965094603374059221902045545550305126457761656370461834030719077340117713935431333155520410039146877223330238435367743832881896811006410818284613554424856324133120698717808976018895281171733913614013540331284172564700952064871978921760806499837799878901306922803648328099689412255288615341359226164765423911276806127190685931150130304557339092932059361924945660472445257019231703987935193809544667292369186134001882137964633097265265606000665604393195027350973884799090286909154555221177519430331020958843005923832253686880611944243074758185365468807468999497784162458816373437789509132866611234128774130172929520097851991033848186005058160929739262661397745427798115244186527417609679276582445453673227069580095183000692436729886357728029692668586882972186875223481564205418877855686447380569208891051666522743865852288169295709545504296355358872733314944006219220704374017958838525118393937210486541757868499964059449493105560965022571399652352665938522888312332769342842598480561122516971050083110205820108839659690288646808223820805608241545772370818625415217764147740228713117630984867261514237082655110147407897666474278919385098283851187608311438834290238119854169485072953195845746142281525177581785627084215753383682939775026736950587577666651428697633994751564099618624612183268618168488097226787993790484008325339409395455291851833328998787311413401289394537791390590884751905463305502571973975441505918550930339975011667655944642633192781198820333384055331463956568665195103285323278139359103559821514830748428005671982395161954699636792786354509322890587766275327563859555854351896798259701065240914444928645262831621113701500072545172114190327347571982901009822753978483187336866144098669649687941017557086760739926670390501559477785299206058772245083862821948448617189472569770415717230729499794029329987164325782487585863355001025103147483839816096230692325110490642901371700219509142186717612707966369227005514362078261524132949698120301143980176632657143041611052052829974219626533698588512250671899129291978137111344091111225949041135082884833242502399255519149943215095656930077606371939220392626791182112703848491379136479729077214895281270819893052035357821123486592069811678214913065916328755032363789754062056736881698049646347667886333237244833150950686316190861122955264644887985208745048225307497453224262560637717611315165122928534670828789450641071340164736053471197277755267561959465577460272494937082303784336666986054791464907857120086160872484163816469793906284337710955264968362649449017199868961325771268744895110982185181596438136291997469650217525360930907630544798363434009304118389738774275208363853413425926117243148858512382060557667922002169065475967760857201907693353968950050976872639993357549715988259143113078586046736524346915239167701023049378890399138004813990397318036609008872525724831798996262018067462198751429319376108569741496436759158896834227081819818584473813281107674082199080876186916149978856223793501536295676859137253876419196221974319485650711682756481917352325374432278080763133790587843709013161792068607709077701977668808009906370981667023233617710343851010213950129108534977991668985834905564032567828867398375734280473991301532482353783289408003484930862689550967064299777479771416898464487141508486804281854674934551759851578969468151435399425129985507709855898137072369923454131929753855328062675639324420244037656909590171106485101184062533476942374028121324508648735460671165090907423465432758725849799815279297812716315632564887299322764039995592851155226831286662703976892843813290799281823323208925027547461432659303176208933084046103684756871968160011711041912385752323278583110759933660621468895262639602811818973527363183287994510021018185343826153323214811846394154221515091603964634842550972309484393692195436857918675815498943637807328263772989435203703845213008005223548738195500667368850499705971209849021182025935067641285073646906878280494517190916379382388112727674759528437478577373172575201576207874509532604026673024336485609693851077379998694183678229724136651665920627633804856110146763866891834058144542604601160897949363098420038197935721350498059686641090609882523852208219392836263383308643545116729930682349174877269062722201045932803890251975598052844895957771839786660419451942869532769619671165951802067442012318560898491105077736948291234594753481226259390656064287027967141021413041379924492330285730233429588430823210588814311715282096819652480814218906175745023663035077803016941207901325126823120894625920738353701975462318811390491750011938337708686971270814644797205309734897304279624129331870483969893480230085865987744765136726798067785593116856098737016517129916788430092140548994062774226645876445022767794488746703609733074245176012979219372572603688823593998528855912206083599711046279173959309111554114938224421830474551744470346713372119384397746287564355573077343643632667788044515034363752439899906312176168618307286822862950684507195104739769189512878050719174678544242291876590191658728525205028179626536842554014604093503839996300257218406119068154003570391037484925453469645584224561869185974833903937155539592566169299608286058892487838257015142146631189372048013140657106611297175369708689153244642735402221535018650155782439573743380495629389272212628771177154512712365646170282663229575039476290628824268120119365449157410862433988578088391160438218649542893373246043196911857884649413260780038880990875638622139041556092029546188479697957047262739838664397606068382796579026109815068254937162500225272849273731680296762152424568941883992721184531396364610991874508967099074045932460386536748319295934359848469782441253937533136453121755448668230265559300672855104214048875401138088965877155352772192589185501151511628198069305014113215661526348303347321698779360903519918107341898241835260628745614730882076042253972505022521632909363510858210668608871721384405125467223152965729709336532278092296269268902861142334707527082084947203746851511828595979403438464764380511554734100929251137758609421115644940453850496229560471110913247527232009563317459445146824313686462969850541422044309112163633888765512057367454574272604343093658899841357592075598188493636263165264363746946537094790454647953653252505761276059291277756893228595547961150125599815463115151658778273841646404151069894289915091710974242500489160201565997823776990616710402052484625374553859894406181594687331205323262373020101713452938855984427876656728836143092566645028534891291339229634975808126702081279608724275722172774698275466665871555440878026011761909363604178129310705874123400663275580695406664433329231158928327950903128411643657494059170952676853453374174989871814957133369860890145719192810307944592458918356874277430032437990018349311408919995486195742239134189620489273125199111236489103611694837121213797681637463635194861214062298947921848169124466407616965962611988690107123831984984369806459851218426412010754897592552569218206334402998365481089807070602788529649639938150413231061730329925361697822038552461299958277773551709306579759149286725609308619011351605461464380979448551761889972451763633014198352430935666242882815702539399537473588492898946135844878440390811276848270723452854719787821099253103923746961159743448801776580724021284681054117549673961331419100677050582165739632154099811583022928164063176863442875521936052712363990086327199883668178079113386806405252413661799463563230641407222074196906757601196830286114650033351915034651290284749960164402509667683784554639390633485409104006440639680990716584232219574783166356570010054527645849211416636442025966579162047344061691937678677088563785756679673851820721511512449584906705781296114819569735268808568520781816374981296552527406775133094089790426059167249157884179494879093031234350142438424820430514203728206883398683718816553196731069766068202879714922710180498340938161799658996738092361885144119837930182510881941031482576560530142693950723868260466522156947841587118429137262003382358507899014880703974170114124185120385701259113221251770010155852375230565236405031279240872692426506416711672899419148741277976687930828794725536012645629913185651930299486623153314823972540599926577638419772661354828301079687089410102552781630958796327831366129746371022413544053580989257581579241191991058268331657113517787965578297603866704785416129805539015208820285667852357152415492107584667348698692220625380719324203102519471987945128801585008588516638295625615932115201518202603135132862718555528930271950053872504128777639532091250413294730124925564073693181325674128465503497777095919781504676746832615038549853567664575734033311460449844205288041454962929597976021414344332833622135875860377470050215712681658525370624291108600697498085729626340283483884997226505106417532616509383909686859836344996354310239284126983891189906180300736935538934686350307312590435859241823211220417158339386511047059612503765143499547908570310253931434893118275039655745407406606525547057084815482091080616177359530407724602095180713763298861005924394342222005431214260023422811306820460680214823678003505896631053192680657387789262143026088299096822889569716832575065507432694947347549736118080672892223148424683000351978516720713912108377540017036804761331136559236640417739704680198605324365969095807354506744707931692323623280545536634657373519391220707567804364059743614327738653057499751678981754551187548911325571875493919773086658184074186656196945713443793305103706509931857334827071205006588050029403831256064247732430967074595004150304143208198781059420570139529921985065618193587408262997050670833664405541014752102264367762460271427030480590660074803620547965652931189719361994124392377585830353991751120150063532787259907430783622923917688941899471162061095577076050042002661135459780321723136370099472839802081854090020535466904211371736242815212865885849854184626982731143071291626820142831246507078227601974684341711513931356297683801813573000654602545937265293533253577762798971487551957348554347375369911498637199584644809185382674229471354469906653021629075400815393080152039989140300485697235358701414757010672612876280566437792732356674377181610676232454655620237722513991629355154162265097176687910925996676178908529663127098320219563785615739180532546826457354953060832381437794484772504962084658519303870347540963674304769122816882064668389496396605911835310430808357676537883211848418477181828314487523321079259685107322375177514377778568507624693393092467786144257775192274666607152477852622044487389468344753094460196317264110696541594151556620611839484517750388160479176399583944501645194740688311024239581145155164934496145696427942257195246741364284271836289278762725053384122990645558499105569356658655695685195880952001162976078228272289735203941967646309935174388135444205710408287467046961187914544879431907722113003372951222179795786457255086497917114923749625721645303316317186341302086638682635270285428252475510731447364798306812509192906627787928023343282556869248106826019293802092923028651749673809440675335320282079690924791195570235867626431246814268150865736027275402051006900826830641728667571651761869482047925538340773752263047347698102043464123652131315430595157632157786588320802669567657745571207861061620157366272324146243374291577951107858181488934249974136890104088155510501529652542480929441774210098374960876967556330032715164435802876728090432578158573761101413384329639659044722599833754291528732046741831372488430765767884673697685261073922461637007905727204361494218936452004921457554823553694391937257072669178436110166770547681630931498197359373227319140646032691915784696984737361342192475110398594497773185243759323924935059454478300657697951423454337808615600733122162686210386107009868262685002471896474475279859462969948991279803004668113427616741454061400557070823505791675528756599344797271346438255340227895294174490560784939141667394177460970721143369752036141032497722441992432922740742605100824325631853256202594645628483620062900058042120455368757342443436255562756170198185600048270547823064138925950069995937470383117317200460551533078242502174493634540640006297814627706818776799771198065955900765482884468471153457852486736711514636510234919647887239841025628388604372482023298033443124981718217693508864707451206037559485229206751064447998568167622197536944847828924771632828757196712041246764655912792525384847263641846706135568005251198720128230474684492035526178535529550685647798380958436608847170960151216706157806659270682758395837802510694377472868207552441647417020120970153782568686899241717865411397502968309270621680370412256239638829969566104926865743580487990112568026406098996174895802454780777396674084859854295801407881311126895024184253354451829599686349805673158263089208273169139124592992364847654530687474760796203695360932017974333090503615281486056023784581864112832170528540076636576198428737941251763576458851515435991260676132140143269083309074744699574178854431106692638173999761921324073696748242037341917484594439336648595146866654851986682334972341015951556102360536591936056471090289275167813073420659436262085123108319802114715517137103344076543195106775901697395430915627551387476569693747623976923799057125480147367663921807561404252428972333974436803191868607073371561905200156556230805995587388870535508716433845834443744414113606984693713580029281013527487466021398931551170199849489639866678884468426988985371819571948096071978169488455041202364107298981659111546173278713177080834708572229037476148635979740134683233847291056927668137576241663012826975641583667558240798938570150834129995913079229978910480663610568511781838889780096883931275447629727692683900203670764067996371254666435167363205381743745995159317593832413386187052361724333666431101153605170854563366599986461067853559180260807552569061583313293224102248788014164230236859667627061123322901908663113028181462705018477053878040994993964922099940424827382946687374478995385930820861663844065688263607742963002639260520326935711848876250437376656646884128039227838746053976557962908593817406308865815013533326695149604661100628801549616011862805099371491153041551077820097166381929739132444182899418237694380562958749296500295634909534578882922093599203592879240833929878393098407750008159782683011639684062624905612514706556278806269175275500142079099441267372955239948465166476851066010771717234659950856648754724936259824283639212474012179108877047177988381372628222393147964012955684360919364591427128964231372277232169576501799900849140295553904883646045106762949358176976403843610079388777068305730915115597158883056331696026510209990285099917647826474597371497259005442750187873169877747600618584868344385005799162238938668894204264010809730039101541626323807680616933549415622166002055058593363497550568447743779434047687759520090639199423358795385499405728863999847989958460636053300218082084323866852760162228304108349185511479739310239481136512701507321997819147757004922132837738715648074363980439866856483991131381898464132389442360522739473095340637204417789346149681108677187399712026886367487952017212162944071729225243415584753161265393150734200337917888788052138617130201801317273394129461643741455594085700362135790467803383216735634860712765444608035723339999390099105811185713204261472042008518032412196048269844662181552963310471923980458231745140362913714896727121513126366744505017938573046203269969113232984776905090436131688823854822091211552077702444889283306284775474644008611676289684954740782018623434824474895376097150147359715915729805226296272191963296345396582223075185441583836805853472030724607139019893869054580742403831978670778685006912165229007115281368230779212394713952574566022394093507733373939261165734352386382610609500826423130679581938864931558663389225858023660873425011507653865557814641032690081190119190941872055323418764549109429916447443470633164052552632431986538482660410358068421263906863703237200988380444798250158694538171311480818390995952571744445205320164740995655577821800900150081548606740313263424903562118123589922602585419653771305680168353911407883110275798050170417903429408041204486567405236591691278299720825032900257839249045767465362619299452267991015372245936976641430878500236081327476502117303125818066321239375444416191529044247914928180389281811711681625676353747606086355165171540324118694275320306278040466376071697277005511054732723202729509562745550702361074084750382626403533823273412580249894322906466477323347968334987542217544701675880484674979056831070829976970569557515508258296812192304747492493516173081723955466013348383147376257565418918226975536876469348066054728462147577787936740418732587509837352337973566732718829315605058521969030678367565740468595798411439403759243501674576964846430362000425368751991183987944148372879269564156425224320902850690097163359419836817311793033200843787757986686050708009251509195253261120656931766183593155396206315338277746050922786503499602105369645763754653363823246042362216187418099022516280148327974915332390183803460716273445742560468164421330562187612042456969816865350417747585072821580265027954832581120062234329845154346465919564762181740303578451122383811936448331555460570487235104194833433317084777316841657892116428406719827264348332108970657411099470424159287702368398182851944069495913308292269483928617863225190358733649028102821612231601274919815618153672980977935068297835804813204710426576409300523105425126596659663751391317454760453302980692222744698582719037228188349017284734280597301999087970247721489487962662933164769210301664649741609317448937444087814990813053535943070465195347198301554286789781866395921531350260553901827464341049753277181339389747665010217442949969834041226880712237189812821727235167989956815204849157280539066449908191073868573695161844536842938573307225908037235180041379370272706142871865396876872537378668459128387394720806377757596183814382822369658676866612907925018868904849036419127245559362146853056311592130564077292183913591437010228755213709933915356167242891859902603932733730322608302203466619955873308950030362926157588427595923463418644181008560919915640911416108078349613061137402640472399286719107848219702751897373726821457031787787943290268245509228004493039356542783679534994309329044063729702066400528332516457218500141228045838573064270648083112226101994492358210926630695115003719243315054461800342995277634484549868321257952778885283959531971829695367388967557570727225506646073472096894036865765823072612601535151435329706532783010400613664715835505565430149399313716977175152262099225522066302605388625506532918708523676613631212453736020922471157556940816594306008463867890640194823911148605595515180457264265700896078057238748895944404579070431317331376889506619901349954088031061256584014326471762473149196744404735275739457990623079751169070609971655526312500497462131966143238931388692864568894881282586279627257461839191626039546505418740850519402685714628506002683275310981082550016395686450660604950105535343595824713682540446755506406287097736903884287518553279680720827888343209573671367704390790333983455486473538143072161870875907976907919015793007299228116315751340479639812133077485360057885840633454935449738253210989418469468688917219387776286140817867237796326886766943049293191864207570414852530643612542080337551998523079238911198671913029076810700156226438332729409720294201574107269695125211464418728815143190936428019649762002604465701446928621045173850079601760597871678912881437850552577235260532551645260003800234119245735852273749500992589152323006876604823448106644231631584082363531909988111961373286309223570645756981789624061430198155478909185398688440010188551231392122325072369197637658595277388152445084468720397392811995823366973718475422958944981639023372957111609102107053189043584476833210609152730447219131194881061932429004164054169669774845186085241437177986205943086474628140852961492323054693925555633605871414662540535804970867271762854698112368792302483913243022416467219279822007346679454696899548856928323934905375040008600177369082849933689524153509377045843715260596628349062198586057112804275640535428973335793445135269150061673638451853368457211425031796897773688724489332667372264064088180889623398515078930524779709992052756620051496074601196277841615743808664317844858492951180848285448090670041137001619320815263592133354256316896722470323559481478834443655915696515174989661868590732151349090833185850090520910952376445409118722718553707900005701513475623236989868466271591145261747677102829816243569499603207431730118291761910999186861387466689530588973476335141786410952654028389439281850462795391897237242423386513382702417879643649850193073772396364977617649003207288254677419902144404924092614527303251220458240578822518929484892787203144915557415958070313999341870989517461205762736475739878323930741254449577860732982271471233086033122364271495078023002525281576474645637082998878954907696924794283963158512324922991672671071382355210814533848126392311689642805521988867795119549262426400246361909036724844450373900855625488054463186367923095721469236499164615576438950964072597216173854014110834462196642896595742142520774899469204614631053566108836408618183292144738695776339345296708172343351614238384051859927237905141826371344366446988271657391962164372204845037284038458600571022780156411543448483949865331886529471054623128945024929585011512999748781527694574303217797320537074212044599273420707561439508345847699857728075296844233784813874068396125987935150583174995637447908932620562256867958322335951223342201965119786824424160452138514997061649548950424920863769667925568232174803544563985688711329669196195878304133699937278828019924788794814772280104267327190600170132980506338597294662690969662283540770038369495714340776520091074297032990541224494306989656077965429302025972568921598152898587333860686345829718617668350924335306041428774185336616263363405286296334280362939879504599730524343254128982505012145265491123827770315106729315047942322440466751895867782377279350974461898399334661816720315598077360523384383616292649837443143752461767748877296832377837102286989311560210429457697267861493436298350135896129062917363367093030602303275485021206350866130212650172596384525606387786991821169201089341093455467103681439841374503262846082237422800715569377697446703229409865724908067794389855634927342158035484402137956185812407674764173580296670565901962410287193815695517664311255517179432324420503531609087679579632559816192869424545512908052228565656636501947676670224142823893862020441666935039821251457557636444434296195141082976767698533112885500675172100457157026439658371541493067220615610428586239697897148770454422050037008911993262304162101020702265641699161587066794841907817385224271519449674685001475084454426399073028389716465264401263418924302263675582129327021225729597387039487718460528739351157424121125168094664089928370026676721119962416944877154696245756959209095317306016737928822244914073322225627921227761630650464345906365485985559969144952160801536310176770558941910183401679912917535528782522095363536871927702312528873720728006200627865634301515668196859672059193291376527695501736569011897321184535298881376086256638476092487737142885885586747999856781025764274398349103604051303662025704530361688563957671500218976587525781054837406724358086686959866256961671083135053933806178433208118091734285956009031625016769914252471055126710433704628639984961623976417042544922673180545486041580802019047355486294723464174029205055044944780003292941270913356127401031866764832359397156743138386895455425454119058990649445389572167425921877307613020626196507284097272113703196926508134882240227456511304520066987241597743860599851477779146681756454268118684374221878608110054030864376059719955029837869038473373580448975078923759834103111165715349833151984474239467181202302119684789427979395485216795071100191415270266217090189087953293602204708841937345060161203345737190838861511893506825906104501960139644759628367625291472879008487690645859413354967458502916692671241250657337473237987674854939009485369929637070998428160602751993278026022356204087592438785123530669496062190024941573376267820882223561068437057607722632462839948156379659249458658979357144333343331009734745360135490695486357202935983645191905344607212133088067232979604345281079382130827811991743055040550759213148177914911733144709740064924744678833531506776979137010667520653169547767096013739367729308410806705834736886164235454589032032218490109285651158142303842869026411989959592327434556484337279892230655031782843595518848156690734833043406631084380580356015341476762294249276976637279164734852780120140607181379552784286974134683310784399708394958110469419859977514141015986989325616900071022610296044918071472318582671904589603101089080219843009868243356672542143325981257316522963769700356597717788058476819738596523190253703873121173790517866770314215466560529589530575409316449551422098814037241385591589059871809957953553842676402850387133948215066001645728770276776899837800329599090993493065413278682391264537535800112512990180086270913875435344872381989229397850804134790245856827657813026234586569285366747896265757061606561359788291256425455852046088594350714077144296904441661577565958373027876068155678718837462039849874913168988601537327684569930916648014577298105525283061100342175156498329239692132939034210595306533290878483855430268744338487791032787685537526200705924915504555441141649408852107382295766620316950985327555078343602868291497614742796959252223039106269470402755939506552991752535983921407243477521946241148313087732358180122757934231567100345581829620247935730655365323765650794610958897853621402621958471943216591967069306208732852564493476653494374262444470615426707954398418632564825163322413900156521590860362465155515829182803587739339411917893599405256706709852300521637412953405654913096143986901652738695846466281511254998474164713419418597525679555980148399897114375829153888644647651135532739134019596290637470367136220311146501397549171670233748405794746368466407455241872945324605106202027013226953263603545452964702171323561088801567556369862312688323609286240774633695858240523956981592686631590546183037573315185773669476482954642972663951788869855882812653033599192775131314656876992921255046175061388754726517419904698494219867551885743455467911096146141875369415431162429004366487772104103412619482359549316999470354225330613200749071397001671593521772931917755806753320772996729244695721763414539151956662379438706985173902698412304679193542611770955745584205077732689274565137662604112465892241240017206938177684357737686753367323271005559846462319454565324717115056700602416329174478100278085618917246198787137889935118829579095482976608316179762054495479913526952491970346342734072308929979472405925857037161999871503575401981014914508974682664686457993951164313881834206206390589912041300413888697259731138245056939240918335046614335038518622175399833178852207895249183800921939278271289578136596430007791605852428490454474375988674697898767679915143261923299016814704227969373086617421779568406040593213762925334174483901513268569218240981579949464490418838357370990386248076941324487562445014630612208607066595253580644569032727222749562341249766363798850763238620578347665316348730069866841403616081273713543667999571460651573537107850022725388382662164622374632778866539459896383512710741491392944975274662471914176592810254287496909587142919841252399256124741315739196775800802803586886970317245959309929621555094364667221245708052299152599082761198710791617453744507765824915103079673802330966926292871725966069966807802482158644177309434022578137174545275803789701696443070617606252698960910752134856003785395787084851893714993838902269888939871515116879535139392938653400178958487744114480771033329807652272140017220247392240317500803175436149485585342528096640406898776480305094832755654914877035083843533090785821118702320570314579599653209682959921577548948456005251175599328093350027661562569935802466418818832730638033980408594693880607814752421214964040957099373718554501456145072207688327324662326687903499250125806050004082146503027381196248483015576757751668878367662085233992613489009382428699478504891858539713464419244641576385115710809779276415132279425720528517610162870197430424872776744742395839681322896534857819178787415616209948340823965072284002891470735556060383521761766705067410670287083265826936800750346213792092771884566658507568267887597319413190722127509773404946041959812599350085537533996236162958887070400920367434967557024774087696575486876980739038853201781770408293781906816667859148500872296235383066824248930307207259010834577351380328801977713335189120789072962998257728680308087595905920125975792574993186122268491053688380202941521509193032580525289068418204252632142121540866029554170210576686665072428983705728347290288777511474483342380411229215610052837426542985182928055186485320968004463148437766642083241291034883925109462189332488806865960626807276538204355838120956672241504231639613514915877973876608652881782491522085426139060021753531506416350285077299660536653765539046783167023564172868447017094422646831068247823097685760329147923687368896576474043674636813494575486284937432009223369762840919260182097653206646293147205593274481432618436711265927291497459783166586066021481540177024558506524063255383251965566994899926221384888279808264149571740455886942257081101545017171400348089555795680255396391333838610526564722938334277596428961057836910660247949072894341933593390330603043456906784721253435726467326523457002143321950805184498599584064658326077876433407821472896335579979723695614639464131592567458469654697943547986988033736969588266950168706425771209772834652980235140771106370859040554106351998795537707032617849231142449829252521367818316730415414583942338953041807489235281979508742439877531225742967580746374213057279669261139827990209044815356617336522400602898925375445346823877993822839086491298249756926385229844346102227381765219170437903164389162778103944896751298413340705754714839259064611464504943845284583482953298652100824390351785530396425329861956102750109369096293493756008274158706383238012636032705574805125625079428017393457510923045843020305130478654179204918857834886332715640854395877716034215037663389475722875911778294887901505825648772975957091542190507626737065680791493882914546722078416650901060431554064580555987782958995449371243092184443776542852029137717248319298018571990438626839500806902891273652340514535979593282657832055979029039740467000348014171095808773868901587810995356083005932826555260811171343703533730266001910850291658192297699927137565840266287716037599162670728676052951088274533549205341360146522870009265743851109821310271761653652552114165582648983684035953467566175748350271591082951916369533614785016115749366563258495930833306976680665529871288910809262925940397268904577195073810615882195915509617970781607201109036772522199196662481743586650545227920251357141891667904610826465632006564025735850503796323023909880181225696334502006901565103738605244492457860809240161650008864002071686979764412362493102233951701254702964338657802247261519538182979539787664875823648940034671775273843031725499746329917698848714053411184352804525749352357722690884579241884010265114096296805490068498961099810856565232803241596973482403723900519617102980946752644627344547018236976053548417305436404767081053071773873767790753973262389425936174532384570078863529115049441195944224046377429023567946781888076206555281010123306490108656348336366663939251161741904657903332306836881135831756709035689549086099844539625756319937907479080217676023387092285266300811163517828996730555798537858770498273176332846663961228829845227657320581688970349539806223526819847835997770222264059446226990392037468270510064909861135378057233899166344570029915466644790338267491749338386377238883471595759039441091493449918996648597229608194864729961211919108151800976551723508115514453579546017305842378581976959273407207480541707881443757567715171959370490791896340403673432700144119799015596014197885060427237271996716998915646245091741453017403347590043649174339196936901586860881004759524323118976597799730247849096016245003258702403396830846585641987949874565882739865984624032385826000466640983264713392345948709324921519831939284800529730077256557300273077985132487508626954989256353757564972200035237321103594186180164055038909817508663727529929389436328623957186552099927454766729951504185471027050077710906914022772290954636776464704026637184123258927782565465450989991713050701986358896630177046263540779515200141986009138763510611916716811281808691254928456207215955437356809082124265740794100977500716190125308671309327555538387409935957088264939676707801185172504724370194778378198933217823606793758686667188597384881754866499318013781390511777864501370510330612732596616969642337947683006456884559903050755894132526919032813635927808934125369548021944075674039009476070170364720344999380410757234759778518691224543750646186432636194870579157393329582589524975591763359254680064972653065972287111679741429679620689757650298106615359406678747539284000866028450144601663665112282510274479558495745190719769355377933835775170599333232208308182553606268481986694589595596087915039635591226898908896059383465181488254698515046181311748456057040790363853951688746909525041276405205667050873053331730180266536332810276753187396204164609013202414076928891862691325358512286421921178183383113699624899805652368112806461353941863162437671244347818651821339555382697999340264516904281523443073451025412490125405440151594301343987386042590115801118912002500329305060979209498606299671027662053756816486607466553742151878982506667856802709611899109144280783109940305922879497009002510550043572140273793427993341532631186755068468912605078041308090038797429410507221241998019657872015955085850016348834410587277181479581871816602993497268713959377169277499963124472357849792549886898665552792647609284059256725128036927241449581316543300494940306122532622889753992321737231853925587999477949801952994524158789879362854492214727863940371951810093054428813108285969590960771798578068310107774351450408153087373889927654975253510051221359874029492485015574937208794931513016388669249190620899524881628534178383618821629605251426117887578084796876234397978167820935856579628263210416844361411347254629820536060242203386505627267342622420705883704185435084629416104231848252270618491088264711015248974430197974032777322274877771766443944350996933861998535400413415867693776294183972235014810618813276715872586413118501020343512546262676816655284864159676003976303410269508265702947756243335178198887079090280603200751175435570361507140146306755044059709451836246856612863158207449708699341953793628003022044034418119510089938789485328093720462765842787160243483058557584839137368441374601986586284907563088004598607722251302554330402383060989270975901528825378075718773889536061029843442246712749057021162670720143967512391696669719777823593414763749924341036441683400822395892460816219124679943772404958405115192396686664983093815713332250270721104556610243902209152601120033368501054243778537469002190505376302372266056623166783386851214126697104163846895867390697515059001171303053418762056858256873628297995219135288730735856800095656746809717952945444233717244181836751123676859816268140890225060810743978899864832530157028591074583033208621739085176378661040080564680960386608842252919897083528422959342063855772423444989146276725828663602133166235884776935991452490920191190336835700664930996374861902692525630365668315046947858687912505178044308369510896701280736663810162396426050898122485662787486641444363351040272355360297267946390716404315584321264438172653510837373076803538782523250262526436204032045003033099502202703987036877252371986541556575768144880130267689856606608054702240141743412127354969544254954070717318307487047254564021240755035782165032430574215563708953330765781366903272086927003204441211094420336374756602953609904843962772522070181743056676359732624476660838027294911017693751614386000451810439440661489689726231634254032606296348874181196344633508949335252846762428179168217490607928539036237615477389499201898405646683314551147798808901525348876897834362192393401604184163094691480409831633981184028996896871699289697270448355982340127260201858574814798756814990687588920252241513996897731279631187865515043424831027810624048445097552277309228867550320314302394455447601687526550385905574859644245594939020863656448610399317053129080873837223053864915551682805231403445053232559358312245396415617288363005723499950135547936309954491221452557218214028839575718874833122826256722380698920424134337799554528112061659649771447025927675396537294009229361061277520409215713152188246887313189587074245901946227598204577014098975117172721222071142614479100738203773267969946797526901018618026172337693467000328568356005573164729333480788523377060488080812244380236178546296087757180445689198441076632725759616815317627820795476502313866718236773085593830234657023424493446697075719290817209994852399439467218226639193595800807982032133365359123812290146427132997607895668488481008456806318205592762529096677949326345810465237396828917585810789837652681214552141023806327140862534092550367238395054550783029844591262361103575852502340930208768958148133681832949117672952651652403277557309360818225935742675868484885599874732727799035956099234145241766314177013615237545737055138945876080620976501866312701671192090251694551969672012786918072112967968375638374448555383114433025760494664766040893136034710298115723990349525847626892189742006394301984894772398861915845519227858784662785318068902821850863701243191995498322650572248542506995326569657788439761353134762374111938098621775457380374186350704279695513747315297347602163789538784638786920718463905675480358931087361765526882826460128253165390814998864160388778578891929309025109952423052498715287911680198105019810644784465421545499418547382181414609561610997154318596671395946341733929507573963309968592604578632489749818367193771652147401347905442354861000070806377598526797819828185727159468476889649942225318770752170403753471039760495689876271842157152281947171736468701105964979393149825468279285117229876231736570641028088387130226684238516508999058159930913164784389147045527503589104123898879684058191561670873715063872629464061829664257635916133393371335612197215920821151142564706366841400982519859340348006752416881555385840247593947608986993032649939857702023451031225235165082953116682172525588328700787285710594471540218442902049861075794848931219460966163373320510377554705075379181822599879667615241767663131050217377286546600823171552753293990684859282479133743671847401605406811327558580766548766661313018875061839939451250352173448306072579895595104862499285024239889665000135952745884267683205568144839702633623777669791597252034310215768057166738452522517828355035200511086293770390020342206264538337793838768240985818630841354473825662785032111719562796411570395848705073160732758661841036151517033187323047107645132562147656756793279925361425495003331620085441788853220791998001640109129194290566459045696489253502667175813968097981525630729339444570134519852283801149335346434194545521209338323112159963776283927514644386459821842762048002302519958756519414444551454893562575068577825555840615551634017367493635555534516531735615547517975019399323285644428984087587742178647439483423299792810129009893187816361605269169693201852423896680421401532606151994586950027929937449120219320937540739020676183148999870098707462997114664470243273171213566558577205975642537435213691299428041790216571235206124107780606982520221652152456353235389630157432912213888905236010783536349085653050836814526118927744441203383856410879507672107843615004726885125671725347101100383724877565666975001360263263384426805755230633953220191348361108215691908678176914192030315400098318120937393445670795172441088374118709468785681961598379088095611356910447874657298018868878729338079972197129028952260948328709131255838831053358039554789463305425595075297290531260669185519805704401215085476537706501990343683888779264974708135709006234135242228879581824504535235024816824543061371655401759358722660592244873732081121525156864682557920276296402325372365139378804400129976513119302102098581500438972092743841993923310940680989505278620128630389290914155779559410695620093258675633032464173380247635871358545217035099952625858208997253127126289656277584072499983560859147483652448516164566988527726426848986862538230637152771119112388137035354198970234798415559588588270990079833429076532570437763250142018143341985429885720875371430607565028316888987881813397466874544784990992715753610757310410991493862891557167690652813985609985389703552081860874307581777593249946684874713764668139992939272365091915764513051434398129860104165644300747673756430435116469096141777873629614051268657167181859398355459603218915978982788202249859717221792493435205626478481343611826309368541753620903268641599014514239301809113306334972908900622881938385524525519584557738573548322456314626441626134119128225617347172836347198704395552958307809696305824610156342285808251873900167117248711103860730225700417122584897550828168460618490119384242249066073768723552960438163162368591974751585232974171579027860014669072352174513869939193827078461591801931132078543545800254555877021464346991832382412027668316393195998540286331758486310227405520018557919134172107096171233949996122090808072508616332309787150093558190290797396387740635984675595786719374287428443555671197915416034122837648702653934746530591095551516333400513606060914564648390390558172199459624445673783227198293435139030430479241112450803019116353566892284646285354999251342407651882923442583236660422929843165692203823048916612217025702869768736365354774752875675597427508976372454815128661817337807890227589357311747266395845216683398865353030943671552755802585626278367999776652883103066269986934901698494679844419054475333670932782163633852378189113176468170001606983454657803890386473612947250322236248089220569499878748019761362188629249404134197283763475772408749962172279805201576878946386205115802155018940070349550229734921381481558134556495504258274383637621020021792049586138651064593645517802325948282685191327213352791094902235094823269574307004671771388190276853356148040128690687893825712713365144343836096928495518015481661022201090578226052481929507835649292381335626370035377562774614282603860387569942738744074967269100995879646811554691959514157690066750034705360557998678995015318747627141626505312884643532032499858104225597956586392296450184637331314698337118577757669601972073236463724647717855018582921018752917452064243268054481473745173233862977848164783941680904580158190356091473728750399010826476325635340363630458859553593654719696609760273292837391244379866214432401100636425813313190844455715827848192692015729209282456796973222677812649257240250566167127769284442770161850851893473250926264214160295071614679945883790532990958429286272200453749444490413994529393637856210096273533344824406375458643569179894023780947002333320688117773182196490272161392600438727706951281595867131566761492189491658684766661394804293335533688472430969783444441196170048189891030618068621520188382025803176463335556690343047645351203045672472297476019095497178688195309868476231927895272096352537544667336992516007953976722663144420603301772366409977708427222378176232942896202098521571911858391511951463129036595576258780062587460948532048409206371181129477945495170473021667771386762175278794573841700509609548867354494270333727783327273545336817586399271299170351751274333315199579475933385862790336339986388044317706897219277607306220940419099287501121800915289830032778682869328519506530860344479051679062699644255968379250758992411249818445121152939040875179970837485482995032598250812968097990670088294307550742584405739493209497850362563056395371172432692646214941038093105931020355959852084354763775329818915159764765609309881547918277721926150614161057234455013590777063872398771486485262182057076508462683773084393347961463904272927662891491206434876545346635611338494049127166901629192697820996740718409570005059310636392520509381358674895931970445994475413438239308111636120373920582509687013130095564101086074900581621124291582838511432685341145974281402709227101262200747330364285190958428897772364138628727730170226751627012042456961758039232076564445665339653977608064561651004520021755894237175230251176972110753753570874335999195306317708071339643861769329563190465947818173141421298093395417657491430865199691788085372953470781452510704445021735868278537437156107674723680298604293739187127385922919073964049266683251602003430834341144827905169090384329222588096353196139811415376197117343600629611685049160477258188423466962746329429068575220443885646713967479570767713925043754545117719103611865965248312309562398576951702137822895192581330745585811584666718046151508769518415609663017548897550808231952188194763947607617735865668660822004322585516962886920735386722353193028853494756916401954951851427045751852411228165919150738926774915328735995775335214431378865338454191114241644187588173756416801625525569009708069202703067838102747248248641791349065929404043372235711734152224924768888480063516009140626891247860551384041719254390025982886978214523159708183367843359146831498064617259338670323401370087259297468448336664422497542423683620538779414999933596895205608118138531324128362251171195052881909982139926003249001299125827399411823293523815392926948805535587859029412788442298453365636976474399624501696079820203804236843710907636618269082817603523776550525322119988913180520518295340805109242258392885253126215316614834227811125951094928660427183246587506047947928824366539987281950749015592668960823759915948751302365134884568978269665276234938056273790264531081254370721301092367060079428569405942982103771032719847237434446239672069186917957502816076681306791184512533820835472419518480114113032591377677472042534006835537226614860864070126274727688861746883250497335077309825546693764471002259615597783100745568739347925265653125123365046174083562818053397108079241766137742804024964265555155382225609036075200181384463828944447257111353278492887655582679087184322667377012001531007734464941920287277523035107828300362227830664829709115608987406611945260460653533803980536694117736073111899758372779501910162892253884991206692180149879910626593990758436920146873868155073719918338862581666042061090037453985890796590342192397926613447311095561806272070009663222906049722797624255205784781795982011526591754555105052039089659319874897042357003770704119786653297419860325050076234154862659621602844027911977508849558049358846240490425257038993400586033711401399217100622798070525616437321620782786605799377013651977368141871673362992936133704817067021119411153634789311442685374010265415997006568469899001137352559907283215488813155382872818933006746721538124976831535331956638510601730608692925224075234998683924695640307476670508594108008537196091780672133338041431667838154479459550489076844245614488853335085682151862406459609945257020725433715162800304947278541554152877687093527754579373951884748048932492875372860631664228406637263784805318861086855692619958922472052771106932465878104655516066372365046852030186116734299927005368553413807541325536058456798827096329270150272158068954069889713746734585464138613723816384693507962011647343713664364453946603680839592896928416407501320792591767321349428332400020284655887075811258902781851341071092714393228096312473645439500578753286387190461361140494663846585059666057969423018852891460932008566248599660361822163537252486096541673642828677656079583594294651835368469675868900137510435669325520992163070317597199369562413889004678514210783311475499653186456183435208816253604873883460550465136509339508260416775810990359627361032212890684369452160254545730226759488544318500188101295266766651405745695708794184267927426361666998472695500690893223796048141426280219818738211553902124755578657365526239045253317110037353988523338132509344837290380535470503763924131219427249974520074928708723582571463030624260527975211521536936400503433861604932293205196978185199380141915934707414239570120668032312055855847167259851222998729985954626698504704671615494695758050460111192882474312576218108667235991131612871503320307725210570541442195679054746769114605165473438732185600959681473048091874576125893783798716366213970331071883072008924602793127623104574401085240658141836602881168229594542341193281020939379413350371496185658287308604913259240244513085457927420551970591875053331316140782153258064134093124825057518255455082708203780620821515258049980135092479686219900612822917186747839064357752077631109058954627400611007669375346206335794667575118703076028530095943388896950482357343876912549948627026464629564557873350627941846569451893820685944275376791713433930635911925384440312947326050605696649447948336869328783163322219392659954439901395126668372275635092581838587853108377241925375213643146519017841668409879304203659240113817677741663243339211628884063717154178871923507867634996200486164654735448107775558447274841055113623756980532875208638358464485507046383440899991239517245817514926307054596947611756490777522430596903322674620393984423292246812630845200490319307947182727708289598760733853874794034606405318775945737680269108440248657634178808262898361035397370797688052653971980308278996475498036502378384550234518147079743087554117141035255567422939553025259064959541392814480922409671061498697308018649367151221667055448000171875318868011810804440790183782031418004614434618543959376759982644690988167795685406028749339828877226416886493658471595418032032476544414915734508925951511065480606738152657988212260352876875702619634506036139683960506118434282831899605097234216588512961700104046416676990611997697789395277056951907320068045617996092441997455324576251813460691444847638625415936056444612323327484839805600706381743714281074435303473704869279022549160460006182346760898821034184088482953427561128385921601232504742569778242610717294961570700696148460228559817077005545058932328178133397906053423275690775252903844243539724400596015716453498874549280050149310374021180672356201661542991767282299607407297023832488766441062644753620468359707150102003536198324677873845460829692579131228897014539207472118887681440000265615863204890665946464806138959356367688450372473388978730013746261314479363994642298221903657998958623727131089430078449944693298345429767674635084704163034360744382692109176018439936174175916171887420748589804740821150058557276326675351547069734941401051907266634404092462255530776328627493922454509644484364696957029373328669229694303486274648769817786895665799140883462031825161181075499706713004456178878714923853802283454085625474715995959198280627387378406747454874891663934229141130343646024887116117258813490088305039093043907545426004489855357702530843540575740935771717658246300301956402749782014259506688374725917981205516603719230536748229621187324271443371073521308362871504923610552423736027882169363649350205136746424718699418909390906812126048024417797882799058720931855143150765015366149791997455551933036401311408166318454282143597433569429458767101334189234703534057330745536181967718458128152467559256543373166850488261187404901643660183484686337099966870315027528209040731744940361078505781175829485045092386670512586835707855575498805569010944344469269977902353812509620422935321843289310268628563279474435039730691285671248158864523768883361717300440780243941828522987731831887526951640883940449077982713332192734429658504129953536655794857887469525964133328882381550390571021801273177814208775997215497740307652048496297752557932912230311519908430685226904113484650425350173965680989735750078003377371336039806457706876274721233938828566473247099226026679418214245536914362477662353584313921110003181981025536207637827388027933095584446542977035256762902591623370948427562084374888553751509804268730905311818336314142857648558177729286116423117816895767346902916359167101864199790021261163507895470778105372022748188557803066748060738945737543527537557247633528074074226286883566661750455368266775787928690980577669579992699229340016474792521457437780406812260696190829725805908604145030171897355880069966298536675583474828956236326957442612705467320231800899373364423356932254802042001129662270868705344708388688317761831840974403915702778554583523446456971059816243937973399014458688930559167790639353248672455706859098920638058396167005308915954220087491410271324221748169567232435670443220870597573973623290593499129046111610986679259014964492766031260503666930077832445211433189393761083084991141602174330136805959635685356159159571264787854683243042272046642147945058804208237512260191340675409819511460626070870196167010186350094967784013206471872251272962965381298039587132612320886617699004193000422865231896301061035843645982775928967284874608265432120970145848259581027880949559284096186078472086046222888230502641835432941297480064485216968404681155541882711760047071510333836580452494841291838418156401444894449046900782593169107340761914129498234500220770576737231696299341889734925990015005493381473378541684753839272329341798745474562682127843276661339485779576006287046125620429579442176063652223879542019427003470672951164983126034271483079992919716297177494407133862840728139784432353233169431082115074412615234446728409310990643619115393132029363409968312165394836932549074172524874535696170928576205545962961249552254757415177858011879996611598868441577237787947613225220052970716933304503123622285545682422739549392148916186327973216229956327804650858121672301679208763284122516396968978684523514831724990473748493469970525920089129599008956002100917571538878828350127070262347966687676369991048903149597751109072432218581847401077785231288275603168228246350559726450194088596828880316946380655917018863958975550488321511922664735691549069224261833631564879241212546791841405568234150658116093572671865996103900045857254420087978285943872026718614772296922323811626252464311925142496094926853334729660031196520410559554754736774912623980798224377167304903681220076640509999488040335803851201410547286672812742206247869147544347071806311167471955270950752454245643055713065996249339184163835829417302732470833894410414289390738179212792328932249173099464871711366670395325934789832331361709924191106824034586418631388164620639415812593421941650319885003464764575039765465952307866840082343170513515513531834175067998602934963985548565549894286697594921499284168397853781175739422746040410307213504196070187788906926150707652158020691890303826765339436684891522566614500431129786537149820519082813310630945800509360739775432240778317139770246050325370790180166090526744599512716993509010365709261754647897641507525869890179165551877856690522194958972114224806177895777504587339955820711883838487664525223127088947717640590820888020631904204574199376577756534862906636609237226932589779219748215401118034698238597608163156703825577311692129684100027167770074278040506796455362124241053403927095654991130299374694859998696226960563234427929035244789215852978351093359290876394942687155167021580909243517085697456053595367354074979041631720357619783914601368879160186554091570121508244012153524462040869554059746693796031691511012318941213747149659274982531670830424600440358303200258333204932579209384356976744237571823440268833711943689685996343986219252623369175110266983988632984551589318532550995043864532737849827013882910987483897633605715815348275943660599530034309602635361917034481612028332847719807525407110444843224328020824302334805195648411737050624596606437043985922652338109003789472722828306452769829134303932074941203100526609366429369656684947808519536126431224418498899991988115987490372329726913778381686816413430189644062686435764699015047690095016755085520948668119115178565374886480941730964846718426679263146575612923314415204417908805952930395713996514539204079283722432448944294864700134291369071362975681222155076941229166741086908258667451436058035011432963310433162492560964164932229202406978491160974688815031720809489390375927391516773396013119103098424452494988732464394120571278828687288683476774982084166937378393384250020326732358936022899328327025405215416786846170263652743772598752631627513053507503511146586534645958855153760027101046176445803645713435831069070949086893177454518121116832932470286195371789260428075641460598289242323585376489602489548194761751178122202885823997411280673294022260369705685505692331992748273434199157099938785674740976696235478364712125915863084106804941078096623387887948215861436842530140736158879710324259732163075065969062886514103701633497164729747678796780751317584607878945358127632233488307547001078192197047517754573742712996691403158033477007241651508161569996931702773957181953253379093720065361227568388622650471312897573056263210200454035229447446671202418335457035392023650975895805547798108336062097803980740043369933638296304491201497588636457735128816627070751896720463480113436241230742108151766132243250947523714709920965563325254378141230855702043637494086463954699847813605221934168553897710889583666437823726695051931618702667968011316039181978310312145304985712095129658952199536359763070937121242331844311522290158632666740906519723315485106791270404246489914943930406350438538183207121874059835752229294094775743903226888668582755572593054058316543406033789335452773513887713855070879378605275463297477768838905068401314046876474816011086049274451458466176487175794817664720903357139597030974553623952518312068445168145062662856781463692261385618213073773892575213887702353412297219826264536956922961408009492207965874533152176631764790650769725148843219655173610137704507411149313784532391461500095398984914924236293043675995281055009960062288890639224095840516731999123990831467589886788737579283337341822617634711089646470141454755712745203899464518539589886093852800881211623242105890249762203213739114481899871025938047146301465006435337733579116523846473343981730388688770887645035160024807453062609207615859890811651949469851732321443007571870117693103299106913339451822570223657895062312467791448562514207897949719499974438422959581924249319817234095175597306478473555315970000534050068079075406842376256842365969491622269482440036514444518366197460337712082749455002408412688211378375621804716469128299507109181324510986227244307018249501541005735751384147984285215757737475553238887712893907400896745732406828980054504127531145638757971515283255320158179666604101793841392404005033401307637113201622635971011403675148423434555193074545300606883401237345686435582826682982222511374671016639220685084191728860409108731405225893656395675456125261037669975250332655617946353196335622585079392340519609769045673935393935198702017880517358125073166189977132642802399313611050675500995973800727870776253729633988832575304363834338021921609270111197251280025465480446209250764056858765498674977290077087504418239417573508423551598496785921492455815537905785617994345471522960023006726495775315079178842484041016270091608417665036654050182644935240591394227687533625580300920356277619974488082445320072830706800598065198816960535745395080359273813804025548823244966523982230302910600953817556383308098554117615481826294179257778375351326708252380466277368440035468485870722042551271383037487754440119921653498911890786495597025827192958015968299810809288950815450111861007860053945550186422873488208398807342969301274532616988841818887076337698796684529939591805625043766462826749413566965096907998399139243570076994416369654116482062618818041396158093569088985805601180793920255585706309442549859766401766321449551394831887055644967730916418028079421984140208792130724323043708672031019597299230457586241541076675912421668083171631699709094581653357468942475732309123607755797996212865659470501885340908109917241129347663403557889564702791334996647719117166496592756090957426728406967819650745002739468307298719558623849146790253558940155772256404641062433351852103482332073495765049383379352849285491665430982682465944561963928773062915384335741892513177993086287585288058439126793694244617466509145304700870674023060185149578650034009769488194313098388330426111222324900109562785112855632663669605950106113522749473367237678740770472799081786847840248406460880382213707141739425425841785211944247322689215346349472745925807705189212277807410003759074557989403648529569582841843146135380042582616521851543120049446669837674595421644144899492707582074909719219626126408712620602962121546830184861538093550116502260683378006580622887154403621311861323701117886188830205797953730033896953532534862688731330286582168411022781038229409673885187657247311051164902919594705570850299471741625392930252715072228356514504625122643025453539295649598411817472832102397035536225147777862409906877761921549239181568409900666739119076525593101968968389372147292379645003852161519260560313707285495453559594398635657594673396998680808654802415855160420098426572895016919424914592562542010132758995040811595992720459987273450779784814417128318371126693862831907709685014446921402321146742766294870092806461013666317383853974763662875815791318204433671771567953061252812637342488736539811249050642805164943672775436154103595812332090471047461340718911101838569787126416629469083173394977214500027200085989437559731801333557883230950506448705022963837331830261616339239126963313748169098458216466820533486844500365588337318335575126564411040946426064357646933897557583281339019052281402130471547521531435794217194030638028590700187200180339586885390906904598333545693142260349897231534790652098945664061770784485708584235131382991915695379265987308403726291621363377920044630499753136891823963874344679429598899296372696062382869098723013902274856960429331946840165371308809584908405708803772588814469762744910723858302389015208733690501087845353174563223217242312788780418276718538793351427407333436636603890441720541849618061166587447492801515624560560796427811528692983598070667215211478375722304018686824718161435959720810180391023575715614822192051886055691784980204703428081904910131627994107147782989414687709863456578857947871219996551522760647215256822671407069066987487665343878602563958242886900991428128861576369850147329087114305371471626942439378746714151415536049943683073244039713327050015326348253170229074390256185319693469190275084219207168865467346186069254695503050154946474171469361948370180055840579861287786323125111776286696262002338198186336701407036386599894893608228929408981136830714219455719485261120293614930327926840689834816368176227887942293592692834940972123546117805785553759913185787142872047451033225978421472550303740353620522875379337473482301142997161984020747041857781673671229271416302326936606732431441675757808690614586007711264994168031356924014694723761621979596795921897730683364388204217728673326134566636112359779995424379703414466768586284675572174878375526518625529910324177067180777952641547132457978344786899052215867567276682112430333451003687925030803565145026067055757339527377322971053494682227018677003864193259917828915284983741515002945648767670101208675035026531966393385015155939842983563643408538538020837048391627564488213634734436315778613125554977242975260842902889837656161952477735361426007130679180481924524428655393834172783001976924939497306108114486467460279174684977762950105110032453277813459814221350397041507408996215819671965969853857595189976386549436059750860374104636581627289203956475095145999333124675197629882302861939567524653834933026719829912791750188439614970117429084246814674718053967681878643829437275015117150299969091299436337046766219241115484935431093372341066558861402915294919708077415664223999656729851729116025554184757274339085528253154467224248097766722770578142679619942809627294009947985918247181564915209521535016203114464771234414006588264531278710958549305521497235537080960545269937328961147255593284367451783142114529932567491655642600409151700648479201608761619370991454234399682828435529831845280120122284819537909517716710029887627634963232311661518300316286224584559958039075605361589399281337330156082197523094929303532218381977734530396791281857979294816898953025493417490198454013972811440217341801042015018254984435546418015489524850318643811502362057426343593427693107182322762310073863023816049497541577047363604234161526494216341766207957763234565799486584501684158284305385530409751722102079369128750413840644218227164764507056109204846944165516720632022001751510016184792638735728095176904002295788849076961839837844369200631256424433473235210584039646066327976588632343535253929931959257818840145306316789169016866545736207828913827434004365169972457289121016672393675439836324014275790948873121690685191906432049583430971286016648576050153760470456834753990558394382342517549821077127593120904786035262691472732978062395520046430197038160241393530332323024044320333044719397035476274702903837060264399368135879524524066465298992467287449830159014275389727487071012080928256019162291747001952236144591553265127051391247924897995092469847144354276193820005151153996003494408840067516391406779300501584242303384611652419074897798448753779945872538503230187452606278563664251633577857947294503087287700974195300280281928215519056505328001787276677711552892224875975612627685585731288235767766594999354936402668811435046626240411893781001064220173496163007458739474708608483825660666824740165591890778730969803935295670679340401881390470034238665422930625509659371538523723387014125636642466151309084016615889332875396172011620199866694032641248320657359062419077642850040787006562345342902911488926626022352496458400190176840038649693309949397659744062347465700686360618281992048805422399013363511344144175987892164825792576880094043562423774115302842554066724823140788137954655801756898555852120613155779072668453789851213741727609314383533237605066024646743908720696394425686783888356337878278613577968519449772172244677918112351463361076849647107333285242154123365769301023449491745549270278593147914735829195088812433594903413898640908962767991111875446462180111815419789213531914932672073919463380144548767446214158441223330365940799558226862865313532536276519489302203636197040064816248028361446573474313734360297142023789031222706619303756256593901198176475910390909998805331756757280127443282974308301751575545700905538793716781092523994783577442636201892183488532090582738364247786684610229415489767200546723033188613085346951016744709716390611591716920218562847025836147301545335800267890329787831600057536710749812239483432290667565713922898391999760711463435534542274787460783287422350223722976571142347926741137343028938251401519394804942574581707511680300405886527473604978787881325595896664698787433344761385167937226620328042494954195062593883722452270305072271550679121218163286145458832082555959743857457688659122023133131801320244697852485159990189501895368932205907863949449825618957500610243247212595050624311277834791203698823483494977488545235400302970013787976574006800755869729271229164486724374074171953294801363521433687578007150629254307134048147727027900177644819034599886437841323118134749179597344349258926010749048525345964460745265310713633958148429068187280343936216965974734507975004031741208656516466743607217746774514782106969761115517012556962626312249524589770365360410167560778912833569370770191814551285300645858344946274138722026195523044091534514492193794809461461937747991847852936235334917858453356483732917903455768481114034511458371398635562930592781859209331028516778904921331779756484394390218659415251146631972580543806272190061480463005473400647215330321721579635903623311476786338658869941506695170165589395353468948556862939080676002627827547548108534613963454078064562854100841897722429595703703820312502742470147243074198329414771260139075673428762103310312549863667549362506416812928720202240859784505761221636637121354969555338751106591905430399769258726151657214683462361385990814976650057056779453586332260408983574245841899076010906046847100850472921127190010539443726279372542116192735849145807894262655587993732691957244639871490167185067391837409179864912217271678424599161534376871775174408874431057852808404953848086719230265539671117862877311655306542479178812922844558283128755535784739927338521345599011832009404644815365900172016111398378839748524450109872491052477260714077652958320258325528754875297273438986000737510450101533019395957158726999451352220910884634268824476296258567004949044063772326291528646967788831912561968090967940733457618117731993994722049858970386294506899736578832410195908042143176365392815812888230075449058623879859435051680308163284979206642564711628881530940632051990435171643850803751217173261828453271051038291704696269691365795781230379479474253236284398630212790070460182170440951162592772038445298414338371342727563400970946636959335256466111192642674715829174627455254919118583933383080740429627908117827338348857777983597984589410767665761855009642644911300501427851371853158793031897165122144639644351816983164148443765593288683904913571466584175061313610794222851093693033658702179133876958787825983229810341941032519204828648657555506527081799639705626528832728675143159862953569675444517646845245214249175188457223032178328857072297399576358751990105529230515665665853603500426237022577761134779190012594046015970308392282007978711049712236601959347936179584851440065636825785916540710187145626488897424813960996973400817581550964929301039357091804639547484756235519458996248160130211494582463326764663941438856932608023086729660652353105677612796477496893907068098489890754969168760797675965967863035827683162590881320288128721100115773341364836175052623767857182727532255711455100901534839299355711342997511179118880399078846002674959934593433176126631738348629848911686044869943682608000155658438714382585769662559575761391631057376096675704521527326947412863499249233705780546263689187963067990175553481513701114557540188875961092193001439028574074683464458490209251986429288797218389198154379656048649478945811319696044778456084105995432538007260592620376336667090948203845189433123338469846387504121871584845575646100657536391012093259425635552356071589199909788260504788420199580998095761603873559579435171065121148126693851372836615900936631851446439405161831926331277325803906439361105454719938400585340307188290390129886240060425359619006580484969489815081787102446942955173285347901808248579277156282093610908039860045385015173646122187013451011912211195151837103064875098164025851050779824121426870106888699088382435639438976969692886723016026848292979497649045294075673370823733868578238687724142405862477970920863419654759242094976011806543084956483622143397151468307275106912687822041701924847595521229192112817279396564960297961587473039448835735715940830084565089623274331745486715599180451873854292044090150308995415479658680567716174190654175744001321432125691685032430670999631001881313997805224332120837007618851360812271127377356381081239649795686050393863474974120475806009805279687099639472570784792736066884514606210948572608453255211375951983447111014227066159486251460784766200776558118354560049954974123180781612259841816436486541970478769469898028017328226500986817121603448491776413968716816515146498497653189576643997691087060818159348376773243484448318782856863468186904248314675480621264390474761325724600059167008048546605570650725903176912216755643896782128924526943582698190154431861303498495341261799278632448109726052270344095192590220780864354203055955353566309478995357796870371358021969173914654828173399859644581604284190891457522109136436240334580153423114906859783920837361735112731194146337104235765465069858476348565255164762988135827009658003479124230280886059242709263480652824154602696565836398384323221035417436501997011878638372075690818075569106872578813371488716140068978013956293411373754493237279829844117038599060914731589368222566244525769095562759805044246915586916025198541044957622465057635294129009538847321061942369697689177665135793520401705251404451393043236776145649242487171355971493717758221621686991455598734621296326788618685698274783503246900654638242679819534747211783901841351504013090510688035775048772498124665965456721586564374940128081266277797917871670119954529795429521560674430180603916251454598744080112709793073626991521229110186423608761316598502659117397557118983462294347662819960267384594712419772190381479599653681496649076286520877137138369499380886282731910350122674875348919657521992360089479265658031625166326091153696323477612329724670075752062324807322873652615800433545483637528430382594278790909098355546759441534301302707342129504293596781946203361210912966840236166017086849985653243614075154256185793710015681640230765615775645543941957899146277059569082432842850656474530998531240716394588941861089941800538195726394778766951883538473391169567571374836972720358218316792913608549007966911900395828443618313737541743445342034565070684279410496166207380288393529737184746198751626863657278257466222909623281235674932149250626633580735118009707169174486765008833996735868923373397576471207284618663464108182221113458892757868179910609164581007634696851953550267112382023747956261001141253079706591321270977660455161958550491974057950051746014036943130036136841063833015621505769080946391775844325369086800852359925080073917653995384769831171581793779009472251996601118355293862492272146723618588385458208187956956027339965533672480933066479785422581291182151375655380761812347458642807516809845034125397795521881068419725352322866652538076477689572493465296736315381440053411620926779188728451773673553856861819061304386417293202445389768830181568752930442075387425403834638927610200050838251545468548170431452448338178709407861585923948980956343889496834910143313700899359332865271372343782487799206005760479452865665985586290392121076443310913954256385462276254827045915318842729903203820800558769840276187501976250947423924761853557631706135099876039139195731534193272816337592880790160995396903956568815269910093764818204383242088866938918295227122437712904777567949988484902104836552361446388878706026919972984713470227767110583435744828954652242051269367166754760956154408661760972842687228529618490497997705222757742664754290522909319744022826136089331199630345549447665460448205234048932583194175570820731299180043686801039781628892935847476829815095857985080475551919085003148377396523162535267176191093263163140708242876551277300300577789690234920478934634932299767160157069655633821764327621071523752315081522805906547498021281507477737871445593044506209481472136206484858837145793570519233463879792500995113309240726742675074808237953671790346419953056115680115857238202277948588190430059466097145592404669463774830587148397239951960290288513862649779202971470504013095840195620590280903015881293971616795221890290991848898632595883054494776118353050812020013373804747857631935076598277103877251190321510215184836395131844070943174280611397654948543853678603055985668572392221546115589557895176222687418455550445243440797714283760496600772486700753888267841727689071025229008436723770959803373450562133862080656987281920693000544276695091988121770732885203758557842423828642715795212160020400435155279937094843673981605340506387663524903244365236026875082391753301405345350061326495344374230799506819590875658781563264330794877291852240542210994266797314640520062585412422628288226703780105437119262980782268147835852263568901532431260610212559298158204385868388825982235924651511872359002027215385574330297033934641152899201024699131300807652287771243359451733169827279437384402226810156918359748877940266554725858861917097246045047670761435759564384538305998397481286295448333611563296278382784041425699263333362373529347550508548959348789166646852722154838506008854067064820029167897426730359603865498875029086635138530387705863301845663310396360328879537186261751039056995644933776288980775374507208065000918176122046209166644934664878135826764661822972198962599789716697279628312179820134389155656017228435969406942936917900424656380896768558640481092153664561713761277130805265499646119443583817135448941015003979998132442609721534635068444464717990053000624049052422166280935269781647165785900234991162779551290378084221930305814203890405263660254576359752157753478612142699254381841944979798878461991381199502634984325029244808448277692327249355661942743627678004702655885850279017042880769033738315310075502430052267251246007878546732423505481172686230794801598938001703146908704045817374957592921453040751215469510478099542622389589065944061219433405956626356216515861058742408144142802047433966604688973537188817414724275126137788264225049619872188143817757131784674109266179955627500602601013845752883770654649867459397299868133432615399755449549164295121927615459107560254377231602652500704356625424973178590541466839447132934796199787488710189916046384337646872192953820966549898415602601729061633066321340444104764581624306351292656451077909743612734739928951106958693638729824457390102356487694756473825332537827341014051475052607922449167987838380026544916690889052350279045858870270866049171937862363453612096652845349351998748158458579010402465049138366171605784257008849447212190217335213515538729957833634871469374061141957896372447607542366424266161826915832917457187555708717785416996911941078313434735926180316568391579348941680844642160725748655057848915440755063202429442462645949285717944053391590784665196987175274571905264426002165088255204425041214126938320279388168090211618770329300753567437348609539520267285328866663237443921655436755967420125117932594469948807243762709245280470272787018648959184189220349084942676983404760618570017599029866102881755017716146261494843082843495570847583555620844568279964245943403071447518100480681529376683872283721747547131662555796986406642530132032470402107133975840986299944453861900117082995354849670111595217719647384397291490346100661887684469605632385146956357964073091890428170105558534703842132997919434202491328847520250603756572485298471198775038433404832302170685194255089976341830758159594078673680535113851331012562963088729158259102852795270486375751456234326333057970894420292016306176723910441384151774708146225226387929063646997442550079657524393289773424295829633717914992951530426872682084553624588267109492111074961319800245414377032913966405419446749312110561222133351349458470781443626700567148028842778810483531624442785697259541654791071075914183834232512886666878528760859539426350489074099180658504494509378751561718689681942505711745220813510912649306842575130978679899216991350931194616238170503639941694176094653147309475666375208262994652500129121452971572165829707296801789891366724644279040173873173605883009135964556492828062581655457726280403693374731605767166640472976790307397518692298473613020350228970271093390002595995930171389807743660833817130934247492305651295331186179861222935950844865990796521181744421491730935923607630441225834087259143100812761472984796302584190964594310274001564919861425764404999304749941891301505967443297558287529652838828729564409265959359424366852616765755427101430768163829770592946314466829569733743561008975337724423157679746379406192706330239808757061004037885946317003181369333945993261752172582166508309919155393100693733050240700366090050402628107471415592588946010845400470433094811373590169664746677539105018747807465547721242056601221214465193649600381776955620400645636292338000394555840106212960829850565881664457174118390177594705716825676591651469788548913600857645133906361748048680269498456851330475660149937549426956936249207017465403054392027219174145861552221848118597128206834951613313016826199132098571506921716900433739491097569893024814441093088200376987730570843799508584283249465127177961462594685708847563237588264704746498449012291715423607744958932129966704556761085460622308288430848496032421187482980282991269122423026504898113671570842209125930316966137664956555078813781202450514686448457086985966568239609979627201906857914344890618784399242815893050433601650769626175027321209359744979715965812400750319602393588864690439889233736408677260432712088585835722115846612626123364060784169336951740726390512266092251039440914318652160385286124810340049178655896546471936871086068028522084644907188436666297950493946197558539645010549284541678318960852159282438679768334235038510623630516552817764771415540589676990722751962952952062182781223884202727788487316475621878825320749406483201828408221843070229762104537653338623678774346464146132570220371070893592239284482687510335358414274174395173484808311545410163730031379629735685188836758284129658440166639982702721303370480961186486163786274635612607501400602585248569107129778222709770786600225952068365735891895944908991456211441215540214562582489494565379159260161950723423103946905359000619227130057567306955816042085071469157832890919657998755392149340389686684238612885079072366602548845063142757032645362278657468308004305674248452201063067677109172124538547518234417555191260517543225929715899610768810173509080429048935339145884390567222581541699024545255786129018520453124607318304592766574706001961148113493069880285540762859988543928761736465405703105262556843425432621599538129995513029696055784951770637793589771970654969717038343585169810917570761971318752833276188724988719134928470023236854977782554274243239289991053071284601292921924719759053301563607319429225855289739901438494846497486655175749460088657195399695978347327845263867687043661095682486563554282352887613829220157131857024622833826158185894458266903832347527304293103320875218800157944865494269287037182847164074150755434708995000965237247445641666620918123001542428346687462710423088286104312266885477909157570034579150250818104235085832343644285357939021661499767303097396606754637350015533338397428405218656632859439012805419679244744173751104575211322933421077779534096854557655407313355463550727405540357795941318795970179399699938519782427437288520648252338061623484637428719202787477188796865809756048301994994127865471015429804013912782215132987100865864904208859461073862518467675991956448333342175576136330829647989634056245353457334573892756448031489446697895012233425955548732584608306266723270855390284219182232046171293145629151787618942170301574828320494066816167419303209056545357231130441162713936291473670225692757983618637578292869488017779144495789173782129006576501688238057717303043190506668851755924969276240856650431677404471981049809970645058717767392368685273658233222979183055539928120324512536913218409649028655533467257953408177081907864233817756109705106859621549552203404274330766043609510167679942132234216384996402231832340369833195688078004334475628134355334635043589804536229247877776998674918896470931090451508603335683431468172160317982292425916946046355626452104312355544041908791211242624399008486808501570569048399548801689391538662741373981895839475339374566769234179814529817423955829205475706817548254371569331901496714068902926532462479155213041170819546782414744400541993781752835359136583995637521603450926619247731651469392193465270736476664316220690531148674514771586345504136708787620879051263747782912922654351088741926776896233275501234949724650756297391246249616999921548314777452131219605239243763177331625819353761749508302180812935383198991524659560412063516482838260776059861061351620339103851024217158151524984390156507255057190848370435469859706813825325122993618981393485838233876412957926186749687223273907802729559469761279975319464467466762807938353074378042402167184474602104436320847638891855823102280054810911194063206416905821546316986151041895176630917311988219891411825149262803090323623084958773697736075365127638543378485320527196459899645835957228071061544412125768564522822538833609784692201688064105534239535509379001579099073557074453478241696567811307983103505535845757606099178764693211678685024041453408059686449657135170444521465355849525180960792302665959785607698629007545711261554518796263830433154730175768453538443653088700918689625760512478648202584759913320586450666828192959613536305914807585262931726075041787930885366057846991747057022306452285665050117387989265523620969049376259294454836594039400998546582912540940166338377147240278137775065774319022832426280030626132273172336041684460241283240324289799444699661780258397850697677468629189703596278882098155053286258632997726839011910485900955718689734166375828777343462990755982349880261577251544563848494441912239160466533376807483309107713987968771976022102208296508815248228951163277354486339017409263720253569903617595638849989864037200519278781493804211848290162106729210603505496354973257316482044442320809457760662271674212735601483869393881187624878912745000242215570923028549389424721805402618431795891742562841601294144171321037139344543580978774753514901164009332304954432206873886012485833272700037757985831024419635373483096146501910701430026401043712622696465305039494985325865923654966923510273406624284361476623713835136542561126982406577263923525317937278355892726269476188666278448976501950050544968789933181185683427010036269190200102076696299177464572118320074809399656408773889377154241147353966752965129359457485101117186841753175885071798283669063639939334466984905151631329500974349481985474003208604524763723657382211131443605534427900848174976945712751094502034134439021144419449715133350142020682365820090374081062255998470384838860372491768578735411853179027378860408118357838789030765614522022001618201485930749701248959624236780354942900035871519953642499724544386152238830228592647895660181901717488519806641052580777590992905749642053356526815285311854699460012311554611041513144771110991486613753427415475660141286339727944089589961891725743657196348186857284433934389527661374216313899515154000568730126389269887124161529676080588665048982274775516559626256204955486290063817937616636244090497494145379097315800543077729984073864866232546988857060829100185265674618068559950311202145989411270564562660155289784072727827494596911420990005479042613422394009892301361860368872893158046032809171203222142212501415874510933677457515124184539996192332867022424146125151463875818184444750757022984336682496887922283895182878784645768139555798432169924516997955797791804363946080553725986707726546351387526377453040286763837121584163464399982056206082018260811927441588280093041632196251374132482202483339358141579610020179324000557695916349073394076910491847200588963759969753035147660769822544028941482090087422221390306018787088587166059578451256508847686674341667045894224765870437500782088114386141869423735721897149571950779492637926084941664248351070214536855038295739122357666158146338393464795160411002638872155446221568065226757431828881727532098752624391537751135796074390160625196211626052978135775815427666001951405527886705857517184621894093593656700610858533573014959777815249614668723706851256656731905235298394266655702920003897779943273990377482896530953276991067262000664922100806146532376605374512138754649824517059892481286130309337063753277459106479100747183543739935095514739049978210893139492631355541931271045511290865555147213190564226189276647270167995005082329778129382296529846993277647051501281674190349508654940076142828612934724322202976787185221104612645082356270950353889022430699594956466874483276756076075594411242281842391763302838280507175059967771103527767856172806305654540454490209914056802517717255225911572580489743684334601391616052954066903708071598954079486119694553129792799341362878923641002860782121531441938376737117819781736148704399101672880490294874581070407286482705021758690422756717638268960971392649189959945277846013881610525250390867716816758000257849492325541498825737736131800604051637707594343224250028853594032259450385335332719482506942042872936454956051558669453048881051713979026767864399134994744375342020381096327605918378548756667473897556356051127855832304315009885283057747393349830869233354590137098192102178859821245489505795715459772289248813626287678387686602766844272330022850713818732108427642583432537476829717720016574079307574229970883774385854919123662870714701539379155254332246546754483770228335456485801027911358271172955776258842151866996257551798615590818064922726302770051033291743701513292516864654495367481668336223040115045489297538730462929472726050410217490827504322504235447555917491242235985508657857609058388421875195947276501765940020256785000178577864825236047170385112080528924928876022848854207988809270734168280148073014037524560409301899460860662917123463634355357799450424933933471474585669650596604545419551785815790224224815667204054416555207086399283303090317899584428303265600773740548550798163982955846292965523389019934191921446472502121849263383067332167403547931491184580722565965393806868594275537358073414747771045984024949733296817409082303254441240214173011833102660103805229478492206106871551489166406629745796277988907238045842161682250303980556090519705582457687210038622503327354261616602645468432814516599204828283578548828038418680050090915477585967138166544397272664314917260414838653596014373697823273223997940370220439542092336118527359958530963496504333217277583850158738609212733861311416755897030591351274607566370990450764477288128433904379787097658490588212653911726788719556794559680880763919036790262231603374723183724528616391904125519128235221831911085896665582032339397219659745650735306493547405476686947949339069859285003829960984974481550908607441568117581347969058258912718384190624488102467557013473009595038291590018608141922952961928013200486139865143195177496110419193685192486023547426326762778323722153302969781558287930894103200467031399470286231466644068218160897091052347741828904405222666741017447567491280998470767327585941565175872472326594081244808047877875674819411319924662090311317854481262470712630682644460379506682056161090371687794585590394317386436921523712360169911273051693840242982564652937122801536236695025410318661222781665983093846624009240413130874425089177065981850827420570044428881068675985111314352566419207029435172908102112351691049281890773544749493307453694258320107545428849710680727601888634697555321604543945355170615114695733376091215587400462737217242799265432252693275497556487300282982417182571661621531233806711843203434738594005752810926612416987935616758733262396017681930337288697790859778637792869627076194337588532580484777692189161589009324269196758946038011784223496514383377063583128480896936789334910991774524813143361179739624113525234433971585046090123250925930581446000900939806250544797442145544698661739846851464434720481778814394215526171749377189009638069621304693759604841448571724839052393129582674140650996193462896497158572913875597864008412150877794481161391606973990204890075325401105766367634460914521350585204112083118245644358218387175021542489192006272122406529202834766039550773710968793872283951709232700101931388796957275835379933292733757956502791935233368962362330743428339239869228803997413847644394431277074844742688306034103354429738769303702573052804825254492225521413090629814079321888655001500204940098850629873779174204260528044683740931271810313806731148053722542467250849554736992376420937444317555544131366267724607747540108680452997853323550582983367493811616739432239571727506906030015616362473678285846719676831037970886589580437802506574426014551150206984764712592122621165860072366653469955167592602654320319708551886771690209326244718900956823758046904215531591577771172300959765172354417390138703701527805130641835722725815609623839299993437681670058125729761951799108401241645242138897849488882378114515709684879926220753290296845058826624379824277231326787346954984239696970314197858611431714696438667158431539913164492975489370951826638301306540209620388497694269752840308746127933151939020504552163600735035413539992922848939206627206548872865338701523041178494607593210273850014660914502709361289435801164132591992835230579199041659622073038955053262374377830340037456959914783643082296932923316905247514545027653792847727427942670052392738428730686237226841115329255581996832220558102412292583798544645494771445266277385918284295693819375747561156261784197525651984932172850348238519182681912377114410572915415644514595891112607249479162729266837458473795877312306901004957020830660092157499114071035628226986912670144929110849735091093258682109859595580626967620064807503383615585001366533918002998821101774144480028810783392731591639882788024266297806613915337721114320377667407022103857816457814820024866641317651276384841150712500344731517110229401838134473608281852337247779538042742090605548485815131669986071403355643903326843407301353098277333266230740246161847265364484199579136904427639334138954176258096907981691394575581134795878405349074967698064483159588219772120795931730434662523294456239969422724982963946509628107927649106820907039958914097838026940298914520955194941988805952141299490840406764303607858565085656085647358771238035469255505579120126085546749505424503637003231828929305077918241137547463835481374011997196287014873670239644139634104873687726167070364563890595145764420384236660768819019966423523319250914523243322919381953501396542708676273462319964431947047790458690815746218105650597251195657156255179742470927847415812162803922995794278413720131030609303732178022139044495151261900625418865501878128214714290075992612408995578835890483100188557382735527967823118717895475174398472941422521052207668261784921288413489027508024654506508259873621537519378535122330339751748269237370605163528406290416218492948500926784038195604925173960655378627209532928396930026286095208567584039039201668006218081755017387382254807862210299956131020239116575040820005666476799200102767223703899347677167929267721857630266018950069858264069645201749615772644910648451325845085808424861546638862794288345063189564266969339374015507613328882315022684702436359023494795413348895325790651753080045872234869472420077587111202782249032765877028500219886608836588021134251911103899557042575408258742266564571195069717922694641552298435845698433291121896987763289487214253232460836003622922832703456261619346430637057845304061295680609174580113369025922748777283875857891095550388803375745207352560830753130148781538111163358294154013900970780708370899836566785549482010225797610483910237788429337359047970254209547356177492543179496475437745464013730082211641341087666328169568560504261293956273010945508870275949311899710751224992422448958590573845013671662495091050681479803439242686351025182253005163237231612573219800677772052724551627333704879291744721337818256256172864604542352400954209861682971847118698790404707391124643323920027711665079795627655197458487214031158596593271522288541211498864011231599576245332566365678828196114068297704038961163634761064738086883313683108369322643675542259075133004000559937134334516294774017287088583352691025564146742637669614214083014394599686094407150260934046308611175934418156386049954540545135135029773172593535398516537056049505431903329333242545014805134597272304500722460927557997892737400174344316288052536054340000301086326160366444781468052080929410749520561424016754848590208353578212373282490038430326042415894050364588808570171173276887064175791859766245784721222678402637212316180175773077569444544671290441897503499962033739863410535518123309897602296993803451803624913275324376965834922768342363109698726660606549482933982535514378880524613750058237049094179086938458084980443425408273095224117457898521492104745161848308835814344787064301444322986122328256947396353060223343060036518880864160582269228335509476535153913207775940302185119058572260650273295122934134531276187006685421075596883329080374921512419871450451986815855335330814182744588230850594066097102422864770604721188127307510563914186579531512713695873548570220437113615643198309691095961565452320043699313824564985850280286134174811879957577261182334695560027547572944529514078921876768179177158508891237391810447773463729233147353392430813739283405150809850690548322314357123178798773972987990668500680637543865432308698564329967667445366008358593372307956717167303867119518596840418202101290251356929731145622298527456616812832925525757090716444830742133584671802459309472839470677460993690915200813538764699913621361005269395830108305100181278873582525773143428661629926942269619352185218728605901421472646484079679493788147658184967403529794323769936021339721057412134957372737767561858269926014016525187994745296224828929914186351731471238486853641480409719054490977631530594474209921743153681043362984250729133199590878037350892830244062129150894212945915831226444481375647539117214295755288462802118948053618141471604140628562527451037832884397691962404180850894103401807139697676045901547743755544111503691066793601930886610907367561932269150895469681239840142145376957589929103359813625610147029096281038890179168456050930651605334043531483563061517881786532753439232659851548536590836222310399096052022042846702492945236778542579541503667863479939538630744171077176590296707191718880550380557648221734272644826158061570767780864036805768247235073258228307844365657883413258944384880896421593793808865590842568210149201308344438294916435648047279101128344417860186889854766577406562347755589976868875867478164701253318157876929678117900627046207812282403502067021176534710687301409697266909159744472878153402101715506978335719261648815464423187374419309897616982979085968671223922341877583064328494292865950633356762690188654666940860362263127177619497458783389857668943683897377737477051502926506318201868072314166334334339402075533414385598722315847523110253180886507237297160052314505091011711907927679878436712617458754414750542996035246539729051665260796229451221794901218009653734340503173881617182689825052992925454312068040274882945480599208730438442386018867792224080038510275837296455888321159797730185075270395427887376572723355538524495244504279254473505219142494950035596339848772412522330538207037439643956474824345020327961865436640828157182093365409929351256314838503096785446092936402317840114921182113990434484252981336857266448834912210840485373852067235013623080180293903504616963826347453274950462806023080443349701210044724551368876740673666678244233554462615092781074289015543236259848338926049066417225611114324217982318978978438200025164574595677469546488417061209245985472066292631949160915156072878717855327467503747902192049142670964856989190292382806068177122337672799548382698212583602207730145423296018244280323716082822062725299916173271369481835503599999516510330200111730310606807296057058500175974600582065659564743336275471744792155059897693743245216670226746920447115703802522037894167775086242161421519162199933498905563183945039889858748963640530109203838541988422618055621688446404490640613944571521351821733840215085564248954578797788816161923406491308811495891042515703843799271793513749615894057567817857848431209499155247269119358510506453534887254569040008980583243188895018641007641576226795673525021715398036469277615401995894076353512596380329894773471953829973684231188866503311659327399281193709186486340702410805607112904412679517095361626316551851751315472620222198321273600966554167994598259300988830071899897722298951331606136783470269059823438760170937235300283110043143803979918117687919699308647640952119129274590832026122028796736906685098217504543528509233128743582987030591397526560104761718348128309518395223182466176389211017609826846601421030810747260117765259220800963787802843484029800058348034239057289461128727573356534304872352121836991238261802598561687685033315543305849009292718700661543006315514477063819394818595729926122214823686463317699896508667641887500053617788765654598321514251599584824338569346669534419312520516583482974075675719060464940445007997580407098614414012193428730409580965169649973270077846200455954885583950262429338711664190464619958861263776915813380551021749035458090547822716137012889135167233930133238968404352723318996407387905155402859403557737892445058561325484220406582523417973863629687945619834287850654498267967070640581857945340857264866555442717914238412597428403257389953068049577868009714972386295736544410024115180509811592539049252846209006744475620279718420983910318665465098098541491397668021286382037148775292054513183791056434410436041460416270858042316431852899794204103503721747753366032290216155751671409926314472473322563404043422523438454881651936419548524229947939728736670239284140010767662873748994861084677930144294833344482185112935582993080582162378272571309723162392476271926980196427929099388771121697414495557804268521120380377198385277221258262123320903732664830865725966903140779364502596454106676624579991730780545492796948378455702138092538030307650661833020113930560845902565910469557628693823031113979220862042369637113849314523393934788123465725612661662750884932065132124274601381233821842157880619181313941856488408874557015757194393841650554044414378839582724748982716220190628910257438540413486968569906194778742021183341271382368820672514761420154488092227304469758510386657453313467234466854213218952130399308836729379183535549142921111750234718108089541300872981138481585909914779698964823127244074846815050891047173357122515586988866824440161945453999562376480755346819369327732760405403387113254150471457705827191534197119040575133169710180298639937407356758497675664871450287160739611741395726876975107631453909488132972489793040914686146552767055232060450987202530160824989961945637171245572736028454677700803600586244426271721110233616507136814358744635948006674652668262288760009744987864889025274575609285353363409883567876211603757574974437085061520746857744357191930928537240834754528554638281539850361004703271459271572130957150285041971302769502332769078871640552270337800348420678047914516930326671824345428091392464580925577316377761959765439775494688134327452185859052156060530272319623369414191029072231060497996358117344440666015306169396823799758761637951601156548416393951128157370444373313350377196055104649483110262759738366141178254392400300703584504533516303751448881543820451182682514298039451041499941093675186841787070564484345927074346990126662730901293108382729122806673907528706940560845294179795470332567212826294598061108188737927137898028839342806071216015321943261942143319514213477652067037987916064158880080989685795024169450314873481695211726891387114454162004544598279756422625471676199155385421404299624259416747048355125997328471848294629252951198945010603645217519136521113369546156498541394108635683167426991965880891010560895943882582920249615346638221754506828108145579902627280154439283405594838945985705664366347604992998513868140180782844119983891903121964567671799809970841036843724049459209425116870232909369939963515982127210167766937770330318392086155079610886150709867444300322553795740087158396044450099115406587302841085851404687826903577221653765659478795109352922123102441225717476175783838653108668813480288238017052995067694305041200224517983283863150473212522091803975135290738574389991039706085233156623084851342524869267684665463336795853671398907349698513213556033263235412417230228107514867250798058174738462053346265900753521942922495561788408983694139384176896585398548436367286169813427125663286152438194184121019270591320249486369168031167579910809921715023812100217372664470610908725530324117662061266836309558016092814321022757566972895448950323261559575358235667164064801902640975945393413984188023498809501331472742041380791456509768187047233054103046298112156419684788408698380933359080579597768458416543854669562588071216929463194494946712619685089641845671555291024558902985015603167765144241697591366081606951883049904224539541585738160567883326525765005670982722910920124345977705535867653511262237711572979613122614967142605475002111297810868258598694832439491522969285844337819223911910617999987722202598669862666192700181966423549469389731439591308562375152365482771175149878146365114475522717841684834968931010735807403932446970143548054227377424189077417175332396138641512462638519069384420359911866471352005494109271755821862843518689956261482783420262170547986817150893614981680746912984949008055193826298902580467179527585763226803134424242629242148648653870039912509011444444178495159186440112168275148969382683332905524721214202171046421508868537688466646124953238074935674305111176151917957960535857515559173008674934556758591077718147749851251779374482025063223392792169669397049256778258252210634257530472148686069339368630338775358620584329905270377313005730614619852822368549401322252560732330278773743230182197161372976663488928313240069425249789809372669746924269542833925314425850605355924780646921942131577671105061221160245864525244353931276913267836667178541953522151699995024280051975369898881251570405216034697772703956540600197948090366673352880032421817961812332222312632488916296322221196430143013848644397993190169431090606997723509575309202838510443800621142812370845252569309089739950876414136260045364726435957573271681406311035239293651049192750673837383990080663528822508178102143499628895976429506468882747363797440323009226069916799161441225216996339829934601550411697359963003711620460397429504947133895306727535963878912765002656073006406654010323262111386431483181038024824455399567351699135360011044985252503149957846134600603908327861564677428112276540862729649414289448952317443036379951435120518913132813117313601900593179106022195704953048043432964547065074442282296628221463256877195953120210207415194044381585344763929724390362700192165695180371324174633967326914971345111836733750224272593855691099924194860184039271223998025103988730110098687663319387012048723834839146868591273696837093320460500200415233187849235663113543628832930592607283979210591917753383062996362737794508104934541854824345389777015092101717698643397860298365698704262544528788047797534598739501558612820629323008774197355368222381847949673819625413365155661865516237309152106028518138534672716022264615136185289311188790644046957154338308417453077668496963670335904681691988168366916257236856435189267594258800426524304590913195261678926054913883552889781697738123843762924105934675405119455530241988499682308359596722695399257131856974476427901849844713557295483128402172315021165009720319030314601626120579833164632529700056315849941675364726618353150138531578486297874433957661988747428700054698244429156402554282662852634650222986789758464480105113324470774755006107913545557884902333957953653365339758283855465537204719432915226246230537849146597795594805585367616846917399700042588299664805804050681136929057911561209996282668379988568038102096527850883109189307655051488518965262405453887318206477052609037679157123059704043250954322409585962164203271562420300511824294709919135275713084094304519962449815470930875726137771399322601295745106592303562894176433037802257319529174732767627033649657603971636442589038384242543202868715383863493786367861852445140408295027958815629414094289291419967000410079138459148587905229926844005583190479698315977984718989309686498169869244203738098847793852801493902973051659616421733052405114396177151750339614318457041252089576180748568727292895744217696917639902752256266971628695008397495553521303909618869643419755038368924769339139804643523458865190749949380034370430128891866504975631446937601206649775798828413568313466235893651226060104075445735099874818972772984013523090570259421462103245926969359652808253460418251687711185803894164715836602446139769328767909502462496187830787331514424392048011982632903199853761138075469601419434464937889057653331026612207350643146123797267566158210185247054635648453100806735742065378717907524314330609439584556392691330103409884104880648302940578371430866507198333664199846456952306980825545611935249417319864010527425788273361092204882230881554247935486221503008190257447969419009222124341223033195859427477680552011840778168215167114696171294028988448122184467164056545447912776698277138398532727592355976807383019686270398655027226001416063305679223918333218517927196221545904364505356758832200243517877891662231745068298959321896508882130926063208127546394039057467086731794640817822657620325725489506320722013294851924804187718618301990704943939648800239059170552235951839655897861498696145667978646966710177575603216487090552549619277143493436419862559725462896955287021962726614235739398698846466942746903386322286752946346344544363285141176862625598452283580651009956304366346963141924848695159751406279281402963444210286280479487684140457797420350121489251451964869338485424809657644345367032430623987780354866355005472585437870362788206346739797420726771485667457473876220158817146469721184406793471071800590083474119352207298794655796423066516041984974675575091261304826251363495999400540956841425893267242260433592608619102681262701618701564097885678000527097829079265399473089670166424892679074624603261135146807745906871197931139354332021692176984531265606214110793149512945322645291965548850722259047993168702620721878630951043034337175338960173845991249333753312604035278462260731604388697331488136027787384764939398004515796382508808477642193684360251003986365876153162756412898169357384200198412746244331077487698239612520383294510613650638943091565929988906015721756968864197421909040364448221802301289714885861524856646428769925761343479230604019269022336202739044540971829727680978631094491511815222682125118216523007590665768563780139538837130815243738474340845282763009317454738856663990049043798709230828528082886348081004799073409847002968029048472435710972382868761697569811246347421595733292278089607486329480350629530001978053863673592426606019347811603749320791892863332140344397401847989371877555479657968501022519396531894593453528999377905307233108442795243079240183029277794397174525182399287148485559690228107754844383009293188800676276099706532289762701807683480285150358677520015548053902661051901334137462324837875843020731057073113842672270341711437851086507664139525601944100893099844437497546459751105230618953850698936387844173859455832594765970041532491758418987228841631266968620948181305537942156350977540266249238824009940982083928154029681195306404508285900766024181917179165943264879235135906491311082509287017152628836460765654008510970338887458458111085561124274460121159693282826789934727191761218823456603453242262957487094576269827739443746319775748066396107811029604769581548853577854760729474440214925777617182630038333285178858238849310604558230668494309958527652469754907248543493851122751847714920605289605508951286024718826246436396809239199994287431825965639157970344161048771605066391113223283577663153769864236070416481588207700796357444187079890842368002496468876460202335856352697895204433882280969606920044310921311409807945849915897934998113666862190974352101226013876789754192623968283416996482626084300951075546681554579974204124840175987327558313489927234209112137765216661482703160272564286177870590052190388515361903499870806761228237065013172909805633604272459704622607915734417189112107894470164150965314488477045764047468604598813855258668723359354489731719203458581510537720555597096681878470418339344813204709154625791786728528170334761872905755650495044504683554601402313848855958894257528399167844942701943797527216029961364930499727256625759566192168276451127374666840776244283232686184924674978907314169203277870757376649509016063599136392373352136813039113072819787554917687377093503663938723960481031805435895754053929699615749216876920200642243074972522700161101432404109181319012800244726607777871781214038480538908618827157406168723526095117953824203705906677328278612038103981302651743770123436246706471223247535243098937011693985537382193813621640634023151305325585021661921290396471614587772252803016208397283067663650293709930831811519730831628549345913828775267709878562971389931970672182793516901527732898795720603187880119953265636965551302670220072142835564143789224409865250473830744256127585927623086257189646509142289285684737271295476961586799928935786764246916209923615229238631755049832476110127803766788086721719688920832235414907318579245725976576278758643540220037723949324757338958366300163785093851401086025028408249572208490312845501765970356633087625907837774478774525186206687322349158405117518402009500302022310559468602708099864116649664814359675363958108003785633733359659851895702524534484805203484559990894206077190873669652327993238747804492706675263749106536507969961441974613180894733671739985520833581484425963115438348366607849791081011627398691885776732364961066002447819039951719460627494609277531514265977752256208378893037622259482914598355962739254512007832623389112941552453129229528892920559879045080342346980702567745942389641876079804095022189873931431472924143700217455640789905531509877266920241674824919441479926095789385432931761875046607670690614375663515810850828852067141611852892015551872218567673200934251162946032528205360757847783339033475907905076379234653169836905903428733075612886058359834353275041452230130368042462211371766566136781201897972355851287923461809793624433741181036040637214865415885595959212682746375905369393368920305865996176827075931859115925350500522325022016640889079810540911240949764524224461624871019714496075321536058888346148343933389683165951082582594106381315339540773058720059249189322268452846875430465747934632814938061639861357490158044185193732726691152973834830057577368157918520369803867300780236414139223144381963666104361773905066300568955566616228359848637006067988787532746678104509339878113825273809866207931857051362628889013705469277798004815574924095350700978339113323319224816428023727637561753427203376951145992208508211558405772142747673835293600345117147931241083469562152544287619813162374960527312257424266349352508000627886592057522426093092397567349235809374913177710545797357027978318654346692110335360428958947679557305382458449345331284066004597252517285848058688778320799467138981626082127995387254151380677159526432989725693213803116720515602369861769562184735163688476457877645144156709214349991548965716565003710315636476780788671935190226783064621095962945540863802473358170826347517086854962849783873193714467271983271995141272267972550262843744345957828525430691528377803466395459317221575372343579631638677722038303423224317904773684971692325517913292650291636699829172782254666518568019786598771017262742242432136789840147533512299976311587139380870563388881113479152205181708682346853423621874451913679478826959199740557009174363094761431319086077859495988441667206446050842330294583916411178642008217795610005715110874773833700877209231407188229033105296174222876887681335394680019443384038494493450276782747498516384234244073505001097185516708818245945758899359563055452923830992008843562070000671364288474746664476358982341865777093433024542872817469461065464581432087654986734339524339655534424269969292200852086716651599090446995611275230088119980805772609756876096838777949870343759873825129142362458887021907164843708994668315703895260414472686108963601643641538242351011702470394799328714012215349347871302829516089935922046168672196988072579907480236297162932973122825172782851866741494900762010392709024512179052305488921532803090715120630907277259108541099829556387011694451376017645769239890886121417061147389365065646358631830030532740770430160948719980005884675438839448170333724108154635361469047919189017692125934210782442592761918812380902077114622549894710800430938417570347374960890473231376907687062801157220733575575592096042350747624756091381913535345436695884608347760522960102675144436196310905158237712853442810988782725970485495004322680625540549061886002010770834067717568839136916050668275527446202552445267060881041909955111569397144731059601700070829664981833385030688895781958744974031067368697937145619093012388670739671911680696925700842477059756970793926673724609442374545739952266460650079758262205798789135696840704940559211006195361725216294512073527559282212488664611972037092103641123116141089260927521504413147444771786537474010567762307956367357670106522753238376177274321060672167299924316477480013148262443685542383191283905397014700288291481592921818380149395828030902918290271959416564031262414220834680138744186812415589302836212243188363598217802556732849745012842614378623874386820692796271353533012348157665616522738727650181488028748326738850074604853536875451760534295663414638062429765025409506240748116508244063290527768300065263609518409891285829585585014682064179605887429015067713870397823565346468874336861795952004213659319120590175074501858805456031589771247063651294008114270803329765894425911190445939504685410581712983245024507687873238228004239489587764028730753258971628337420814513123829420485577725260043066043058638419047223897638328844273583455317551501094425735732405639544256632615135668456042896318056956490200857691160999307781829562544523765472954364510167427747487928719088190858325764291715587670728274354501314344893803611840697370115790175510830482587805233833283061676492531388681886836416308170736582137328939213201891638696353808353973691833728289654936890080067520897309888526324663204429103843146284762043234275925037977817649128944256108596473721068509862288705596546998318532377005145368695781941432432174368438820951646687122902829248808764875534203029315103495656747187113739201413414626387037899365176553539879511440564203031167400815434276230154900895955330258643608763008121236287725003311294412860847237016525456660010365462943901497558517920107493391953081636929231092349262770570627826863233207349644708339762281639566992723480282779099848722815326249081589742743333330507212271425996118342524094677728724000068921489993222122532479009541144538065421490718592749014942671277362929930820117958446725349857924329846642529151268032786163302893228054908583526898415599829376783094556637835057230762749574326514258856168141273913449735609322753659026565912425685784297278442990127452776002202980486900113221288141022784887616532565833945969465097622066121867494463585935834755562605039807506044357029264199817162425798668207974924963915985664012226985913761262246927036731734921146864591264329383612806742466470259561098894190616380791067448504230031437504174106409803672937489070899374801992543735837470540018311297198182650303934492171839808448435145184137993133059311242942773162008383087807465359175600887750483275181119044714989001678556601122156254502558469219921075007709109261975954358996787206310592654212841408157625974729782648764259543773070985648410042894121370406202148753361721094412481221007025801996823467358678805088033682979455159398328972170602092576653018173226027085694462394382074635953429246770960398170709428479739261446295771549408595527855279392895603342590554505852629324712277343558997092719368863127249191310676277635724944391530111919570393250032647938666456855322133778091777322278760810306646912952433276851022301154749067463188823731165598401020448503799119479278610693590974162392842827802455532252267139605462800945872900758551381663045828923519568441975258437834574644534732535771546760458440148739370115253813134384192925247040104307886923899542123971513774727957902713210175677478539413554610231434787406514895519925813445394238310195982200330374761519492578008559186724889050579902456277364495994578239212944103244251883383044235700343680890711962747699380642210065445399493259592289239418484296023448239473681863709713874267371309677247751400366782011906496722531904743041610904889952696283025981917704964217318866579919628221594184191740562325908952024771165730682899637909039040531190940295389852279004492741835837597885384804411780677834760163221206633416385913499081217013072470021275842973264508255888227695571454112294867402171918090871588037636561706108903129339831322563209692664425040227660544051062227263251710418690795579332350671258076040390269865127680524863918762812498681745101369983470232224015103952611283585906871573390127937118892525018542105941870903404834689238038942927056893760895175486667204234564625366661231789209648822007745250858686122444974766748126700992392028205851295365702310398878080645622685517629187925833809412581613228041479290301615627842329351471209635549373046520520568172881453255971020390773358745911502866725669074245214081071097969666707173976779425857294638684622627777372519078237812297648352921540938217612144906022631530219083758557516026067656462468783699536889957169615689859274412813790031717839857889804362352454757534664440419037342856574310629298485567356493193488877914491469335037199238877142973570797797210171419338682454616666305883835678681362787630066098573201162265479670327657426819944919463042255686290792560976985054586765374385972479684706010876119288222966655394237244360568895570920013102524719770261821741662584540874913884786895486540917547877533993923489843456931085139314358841003331093922249568145761212846938230061734273056203155194714291568735141712302105432530030119673969903027837989298364061263518388706207361557312997557366809368806098798843797423512607200300212153669686968862992000763167454746379194792329925689276430499841095330766126377485757551549586111735470228592772269482540349735786925008441538414616635446596608161024402766939511751668068203275093107264752277746279591264893154212733475458445933264611345769477935699013911638578167609288629306482819323206358456303889514593082247822009401720035405965366600190754690888712985635188742111586435359126851373390147738267454890721717951046734190119757028792454665737005551682653961158199618940384058014204030040525253950465260005106726800363888345119312044405919968470676842543155475862576620062607294807718107674146123640732816242537876151829295231371040063104724592976535306186156216738082657648308785329188446835223065447128264278155136504770997241974945851292852471327577476429666803206474213832379579743169370383526045896589547998477198002717183389898749140657707867129469768364587749564541429790783525590537985956188423290454501833251084312271069738988119486627841605906306406918962868385508500004168096945567893009368968868158324622126537083256004493471578007833228694041094485913472413915374173096075364232708863016282704527379256844488268770951753097360592477340091221575610157650252510547294143255749118757506008330322015256557611069253369382011415887575463575284861162689442974780327906465896558217280856892819614828566448432104506592121093926482706333216367183144203497836718484354844624921985069681195394419616899536272049803346399455366612989381551360235868296206996994104039585775023296473744446124678267346554210612255613186398686450000604166737983890349642207528308986863340331379133524457037893613292409732757973686396535871853958742834061000497450955854643231527026016305455722487377865263872684353923974962719532341253371416566766335234023811958422134548877137672739946736812604890702658820928704021973508094315455743481194166982642326889595060102632233618595294740272228017864591955888220830126639274993669392843255645503840250194902293049597850871216796411538880473781364696509943041114340700990008440210551429336125605810279195505866741088763972032019845331657209439008462692299293681093538192293023944369425716462895444909765851399034365728405185635899494263917861154185178136397575499049484840991601489823130422517483017251397909283711066871454200693824854654249975674791019142366358195463101290252632324429225630086880950486022646282244785093229796016810570372920953630683643008267542414453600269320322842153912482935042186848779399863826066094001752008900777677964278281722531179604581618573700420842462034695424593071406195559780266524256113949466015471681377897391066199919826270364242991829004139803866577338843165931071323140842978643936869166291226938351981922820143265628360618077095222256473718027345965850089561258187299639550745409553909909997130678748515152974957685156497158998403794779758024383059022080263922060910526507287148680564274248342947425653199367154497851068939836862036176573701497721538960997251328524729796267600282740787926441289119081473492969992332393636006326344652605625072518225910391281072410738423651147248090969722953383043331341745265474069844337663530496226382813707116594526786914396524686175708087574366594318952743551909419326508857248610344062667433869649376114801408574055779259020590240984943544808970105826354180940491321431152337866235263517557446145252922267429352052840799418089123046149191068302643747703341207834573691544444232995184938583315370871223354830386005815192712145774288098235366393522748374938643430630902407453997791905952732003133987050337794666529606896811027706253494984701142835458310758114157910865790846809168506793961739446062351143748072117497908399947567657580076655881474192431791453079854972168492764353444509114538824883531572722410986503508800483056003708944887330948454785150915952188522931727640536426703418283986951335009468981332265367010390525505364592728113043218473022209695063346445326323219084069029159012788538103040208831725039861421992374477680616841104426429026602599843647231726772439602376475828647378946022977639961712125672031822306755144347235259418879411943913698546263333608699071186213802661201089847249739189399518955853355297893122295463075561569940877354777099555382098929372556726987003237470747079518511156195868645376891944394780345268595960759369671447743991514869710501081880056946533003255837799162233479311824374644419149237903783029803349052944815195785049763203340705394960446867919878000063775544460886823221079806767131136397942057524227313241955521298517793239582124538755858472254704769523195594895474157287079820989456486439522161922882952184727523579120442270114263414436180304225454526026739698010768497050702455195145835231239786739014444038888706282241039820844874581629181077796410409184792999072062473907717806946594277021476697269931838000104997021787405879051965544696337280470877469860707084822595262646020667934067580002950656926870304235448178075731737695431322856136101179283173283234310001345453585510044000568183414898123137324142604120046468314138626333295914170467142567450038852478401653288157128987893630738925987469421687115789307447146667098371474258635621798278777652363592039365141290833364179559544847901539160600739828870679179094823950373958319636522004437928846810541422842448032566126177542817745944448728439670706478544499309499815186458246296591603954154819589247871154532414150322470808451692776802441769717197168552620168895360178910638379903622178519569409699030338861150518477744013572460972193366238135546477700685306457998609698046152381222428311625044438033560759086901874840635275831461775141118913008547070120458882300159609712214851107139497219264305583298503407617798893680742210100724325785063089062304125760297119152722899427178447637772225855218045751535842900637002102596989036450514493292630504339277339265152890957552356531370835169107583810562968734820521060074144483822595499683330615171723145301967087313660818691684095101500978309431648134156782696981704484374744328279290794304234092910056841572758504823415565270112594698271861956413517810448210797021388226819291440065068573900286773439458356702482312011038477204319821232886390245531820353143051665004159798246967226405534005273246426880801173278356550572210090934979038744423770264782349331724772755055424463171732755171247086381330239208198993927295599405459471794148439091500955535213623298709062051704922107084645324483277697074731640914446086338855774463292995649192608469753462067995935685204095098449085509312092175212684848083516173809354554226975371239794536115221397305780456179888946706674577669053467439349702189712205544672377065826607248657839201705331745385429900584343542805454971782129038194829768295901603504668121919234753767918220631473715739812885818601448108825019434811216934232931206374990693213803194669986344683802124302307241477497402105076875850948821335953000488905795819230950103616704827645786320877409419965187288515187101274521864979534980042251943529347885577756208208710051468129127969065699132603028611873993052435524792243586540724024286813267904840517909531472262933494446105207131723524490964861767559365870820574875309570895358225968289192865569774525243883597336010176582743686247804857836773019977619846544989248412454689005864289188310127696877128804726957835711598650858977916505367011398960410019284626349188914550396483278888611311534377938663018616228441079130132311148044367000336913442419259747923679932130648708470255010713918575131845035237393921949550792987927441590063636990866528527718787128040328704210219204233511891472036405014497107955842603471548269667269065424218655912088331481477967210962434843871304885100622432345197462792655736417676758006159813233626929043430587688779509490697978017224773959162444020183888276837801273403228006535939705406209286489417740452143878374298115764848849749691852787531202036843116329192136163320527677586869134854641864066610189945634535650799201644623842357203589409113747491298821406779868884665429780746097891786452783382747062190638894691007716724883573346737535672078283770806443626308598880186460635323961572580801328976535854704334560715750401161705114301911045483118995372637850144581626308007568615601777379274891231488303717107742090903888376743763021736812676968421016904563315624255457808203743829081582625103484643486239293518888023253480401793197388646584073552953413447911670040811073067685598717467408223089054960908402325533943469201486303439312055589453316544225645118000163741585351264474611322865266517908983225709049929946450700290520933662215805262986302783916561027064013778713503656617252454688671331425295901037084259233824105872038584839010597233368616138582253051782412176690973452898961777213545533383132827597063197592786174346142675064511086526695248849843970957744580968700069140009939770108611173437906196780444065232140622082320202958900088745484406960753651590774653779762005898131074324211310507964516809880334773402914570778717281050960121470797403058434994868311839411042877350706705163962391908175559808496025212279923952148572888995530395210898577535424826885028989925244860217589507333626825326632188027717250438527666115808489173643506488459698793960836881412645775885594274997800440616447722600076983389043792540881537277147539860862967391261192958423818231612183041198314245523423227962524813104934639312972032480779512124574899569151921820890223379874200112606674335524933831289647240125315989408844297818948538360001164306992661758472336581504111305723682370693815007893671857383249979468577964847293501657205550383938987302410209818743012907998737019985349113508461789744632419814597314340219021356692687954042550234635804878682465598720548414763624019352407129188753671952374763107931675358908118149366067068037052556513231372249884991782522303571434912199017069655150104189561794837465204791596916878410258121196066586310302956987953860160787008345052773116189636748912702828582623743851313055895157373963897874657262935542545133972282992693434246484183238930546107514555811254859550428262702836602579605784599218222205310389275038972418642509122604607125973634057359618916024660486004053053974376422808702205947964292105231810917527653489328566647605805919661512399750876418613526659154375694183995127123435849872562399749790022184237517253712048072851300757061720921087762456293331895421251235656747984888996416574836919142006092719448412680864056283688840935004778438079654332126647352785106342060092649992758312653728661422632243307117217111525080615321227911179424388955431265875730576731062936676079113095912696279195844301013892968090670638266535016243185233428208490831469294667621783759937699290481860004505713960057920293143625707391174566664781714814636890036049210417378926682595893078788086645022956206273028652690479900421178506075031611838870375654826218870572743551234424298301748235734083367230618869283291796830632736599480869489656495152129867914827425818601054203194853686251629825475303325842052397716522523053573504317944010291404252313705946670688277047331018548621366822122907399020011293886584119869642394385097695435002903332940798468407456795870580776449462775156844333242065185343724709931651557866526837825110967362372879235433408361716757153437501108303297475735195907061151927182469833889527521635724091468541111263677169486177654382619120274889073858307331024638951422420400451366279113432837993809957954420868253264809314954257859017493544429751239091980651040754006036640299472477399293805468981796822318942891834673587990128955782569724661275922407983782436007427663983248900295497201075231446744855006255934107484681080106314916098935556084184853596665809516423193300506108883996900511355710447866701795890974953610554855622366743889853978844205987348043637781022392485164001777047446696140812852103666484522945672053712851567582782540156217631391341455441280273430302252786386242828077864918268416033422004484246716287277168255544682732686037293318458368816573188859362973929855761272688176170412537014337104745057912682522162213854597660179873420342137899786681044555461525705519317825170560866334932092081597891612835880275997397481426662342230196900252644857505343363000273353960520296715208225581811360220624231932089824445653299353941961055065668388649037852243122338242160107539041895319514545893599290306359601003885367255939806256419153727874886220693208326049455922501971352098309489544206132265454743938895264641478890945890566689001325884367615242702270165621827710045244438048770812949013351340026262261861843615585861441201674268569114490235423432795192303011492041886241810770729044150207569664349659255116430609251708048114122087861799294444297481994026316102767398616688176582704100770432924331927685471701987395139483449285443712355032483921287162802723377869227103842271280612744061912515073775717025273524189162269942180345755824648447881441861987394447843382247574203954982950031412309179156053911585974000230182467215299462929452763402162907456717405338366987626091872974302426648324418070517665979507522477312724314627931722753657788369943879602005514233237068414684572025032612163400650174054582054253804585575714364278607952037621940959339428257511445108387918914931767957193703931110954249649776037139674876639715606674938279281111519896166507228802820665814836955811446676322506062537214462423161457214911584410655653607886585319217269207357328603294525216124526336648614238459055840214762051306236196069556693401639101177650412058766758723199517783575681343155653617774801259459433977147780402171010877836924700711683290011356199220341035325597467361150070983230617649003287694993507380250351735015416838762971160985584686734771662953800346829014595616732482959968018384630775907377627859614651206425135006802645043911745149587931614367025897311224398443766997635262638897652093298134129700906974256634924310418615102634998111101399662256670220124176899863341263044188319784932906013839504830337983111867543630616766926344895730318577642832199932907449099505985694033668221605301448172613225351713538836133500141093938462397479596107148468475102190001615941984574586801930646263035510993569307037875257933781244587730116341004830805002680268797026272894265264122174223636045404971324500732708874140426100516349747220203301400828941081376670241165906342593741241878821707942843197514978554890424417006635727320815033769805499906986974679789123714606823402915622796115933729529003073796625864544338862719622176263674320389492333004375594834217628380917059324507549535161234601968750110884940190046577331473756628374599168774768433223649855727114143040797642788317416747757153610456316677108878622275839801453069183439467380643434974348476885620011919413535210324817331694425475574166868164914271498559282721735848973314015578028625281763797710050037834038184866786000216219582140228325697868308986533102850493489002637362703865413923591394231848408792664447103555167986331332098110528577682240032945535375392025586055946619172473666916295156173326382390244007760307298149140593535164723038409114916062656010858601308928408889173174658841477441210795794134285312494122771297783517727973429561560508198113885258125362394138280273890583441809280528758599360186820258553034635221886683665481761959203023381689316122198863820127349724226506590186831667378362720396309759174069509729387665285288193152648255967753612873004706085284564396156716013945828115002008387786734804934209796920285073801084315936340124375801826274016117837355844394166700863696631634555593420367979162243540406336984904195694043601884532073196460484796953786674059015208023863963075439370244644530794314541767026822648394126399811384782267646619318594893598511974344618329103947265190520336344870590720477133597664355842585802477805797831766577532141436283095628605562497865986153144250181508480465572054494350170785767447558028238588476904281889953896281063492229133504193912699261300327857236710181278254159575386306846983183218409136116472933971990461299125072550413728092212203889362525303228006193486499014637565791779346704008152058569182732432297507071097963196536562431337165751948913596184117596923674792478773430867088120344019521965892906250405720865325358345020723641730510179139174259148012630474863751776736660847043686077087310243232516919587951309456166393979611888986154502619127969123093332689956667887679184716175621864919593009976156794272686470782708151876572769146218093187384487236366904832008849590260120663909701296123210068799717649727377549983300360889932117863440021350908935025153798261386738800482486036794398245189221084279988936059321286134407389019373125814027163013198270091561172199465117997481682036410111790206543597897857739178930743056828512671108015309239967467317603529725282375733525012993751840822137875275156524306688044514242564560446276431879300690185493303334562191540165515092607485810403723754003531228600657350585219977930253038494985466913143470051338174953976387227515464719973032835625110630016960616257655404915167621725419926462807651469655618415242428769839690516682193033958061120996348994521993568717518271801646588846929205085157988334704201617389090493203785335401357423803829091617897925461620913580627177343177161212251850208945029669694044867082552943735157817678286642220661624853030577167081584334794968735571121782858273104885887348251710897086038340215460573211349642187853880912641516696184468075812642947223082428433812783892988441849066399282129959036764527390358080025696901000115286733287631354717962588110268501917408545172279726762323863472453319729394926117117346762700791842240751329459813093656959242055124738793257677357417872439311324426286187948941268536713139931734716054839697015005719865562114568926539020806778078973425080968256885460066373724345973540138378909244962848352799453401333551851612806677645000480726362292688044007015419827955116657296689188409950270154691239469982242801508461161877077533555414695004282347360773350202468433463535376245127315833349073712314035180575983970629244283459589326717987959251523447368406345869813655475910408379977688538055064592957826917887597766237574949878686542649421804109742425957617078947025347353447567711278561177495039350243397709818740529995826344890106283073699713594763185553528380560430005484194083429969831274262875182073849712492167508096644004866943625984494352131415312199437388255908392319484754836692380794822781509522876898766492329406171171490739215476962947027742093185720052831147271242796897410240317271637161634082760874364114098207161897426326747329931784802270624394814079413061254787066060107096976647195892097201118629083149848805128202578348159630746075721917086107085904586161439167224158737124500109513946783149731188244717943626774412025466264022208079491056522829264901082820668459270950806123021233864200471917492571714154023226661966323780567301626919606227468988976434026683337009234178707319447339754672534466259716031577975873798491373019558872941928423123707205909695269317185100943108322409205614198447306444871575823957491406805270868971426829663326910569225175881521140447934460277663858851516110566006001418205775221211306258511895834311659279524290368083479618951649380383485333022998496585978539027384694574883718979274489774841618349236864496926227595269092742452745486555414217005391822231354388407486052424360435687675035378364538057440575153249503607442072472394090254297147244282904938742075717697974354672503788357180012826743695696205486462597163921153014619664681876111676149010825571250898061212708125360301280375501687523523875199238460614139161361463935383350608381009397908494443817352194919583898976085583986089485474634618799708320143308347857945260109237618931642068659019463274805035022320293840924748375986172667858640253378940773957734307677964303963988365039536775140145666461300501512176624443939235239300393089487984415569589125101110420308297724568489868015645067967499041627945065520565377265435178119478753180330130855189512413228395627678113479202404168599380182244816607682592501915989759483023732040719272731569667256198027932591077172699825189458739829013112764112439334905320996401589634419458450211311309592227719903641722439573005202813347477880089548141459094997509234728301333676238253128602611335231117591548795795242545631794461010004687102323191072060729254684816494516777969719088658387303874708960592532220710769168798377892095423156134680902072859619456416521512836211002529475811391246846232187321631416434511883447891796816059508380358497506708992932434153369744495545019821102784003258843755814397585105484503106894296159692849637736527224114738299720857774505537618094206767742477381259546996385502352254431481536488863879975167063704991987270837381191434499598942470149036998221085597711714907115772517501086019492323279773221206047356290685088239405693868777872124077268817912196823246439696588632552727336103139094530643117344471294440189021412295351301643184695331271902503113097522550019979237996928935165984658273589381735377094757579790768790231444635198486304612119860978284977792103388348334892910860123714776157574169944548521725019874821173677180057453363307649829126698673693397555726504568981111896433403602665083946475637930213248333686996181433073158026010568880242730319267515641405226702052162657399501812988318906562248587481254045620557855931896292774977800261509195961991450479553411657094464603459091635283586773598645058444278148085762512821883967388154849479898717382584163919075869054457474557402896395703550068475929930130255698089755378158364344989146802757723639290075567557935491917768555203634658377238477390086896751832713820593649946295052960392386264789447829726344008664946109918973724744507523961066505114226695620626500271279255938056027650337582323741226457613711375666911832175122436755412764844477175215287400435479847372781156356250826301956545724921839545593819495214273929660869768178605202145300760877408287547475253606298427187204104141238111272405591727799330454849792700819385552456950944171587098189527986361124067730659246012079429828554921945003887608360630173020384253254910670416277417271447198984875174146679729434155542449902079059790481121705020948115279165731631567750984358290937440716166304212477861831042147332362615458490670341051914964919171373728868510659512423522674789405516967755571787015119999120562639085549979645059039641512546940358075293428718999234261322557163195779355873880427897486702119921162098337922726469094310758227118092575183188710097174696902090911276950949226646649636057389763762740832053371424079058135839821838777449829212522819966156070127550168013172646743673201121557691213077114664076299060340318808570680799704511433990810229808114364152972433900005960103741492680255061011823747410452411950125043775562642183879102576302473709358257416940059497219632395037697963126447804866696020335752544293610769872745460185026231206259646460936875211806148956744191885353514125672776465607313098214696922002110831839859154116973855796803203779030345052650928450412382456642541856248780966979383908610148598041666505239744165064068143112551115148216341433344452363786104792014819118612561099914824910945300535162127668148106863531369106794781683853782546959088660484024228496017470938280615086250397201939663294833121820100160548250933165917574886703406285126118977059654810152689002877920763669643347235041272379751230954163030170103314637225674806250945284280349267940700893454276274389104201591945976856810436645235483071307243204680558657724508781329206704432429142076625650181569730615829470054430366117511095648926073691704286368521141678505156353016360059531803902758670022276016841796998391788741667787756735617429243076317371574661818456614079194890663867743202988171108986378102515090708227269391329042225025601740536579358765841606043207444986342958950292467926547365442660346918675962495034153635558219594471150634086431390664819138776412519199821671040441341573714304004662348552080963565903917404817696157453524055772415780183616023573635666595627398213258452408879213473589273929430708849584011784684180581918710617116643661693524781593420144241011724308638487252049920512307530692069665825656642689466711335723828630271343227675565464129333159760104679618089336445356563090520804746636163848046042181976302462413464783376267577919302325311195536564849836884260888977251866397175217873126637321092012053771516295929696125900690210286940489815654891683518910209606498732419071779073578506402319570263732435247689286881603678744391279306210243109332781890395646692980202146346061009884416904120324756336045161289271933152554500210163026929932218095443047843544660253959930683944258932804141084392656983386514244770496910782344330652830891035379638154417630422747373075126556535480120242698436088809412095726159482259170894506590488700222449393378761767185606797055340415791224914181049322977159465673746708917430362423425251472306194225220681954096395275069754713026503436916390800235792316212715548354338292003587636360795144497976377008190128254042121803997021989385451231280044510140158065185545922272300899222641345035522208376471368065441324280822482349486159935048850040321486559111849345770836862935379681249706471517660634386432772345661567678585183051468767773485394932805357475772407951817739027079483963376522817999429956358909439229691070697361426564901417674956957267427638500393282778232830565995757249855231632659784173344699723299442362613071355528203055471557415246877551406861082648099807284483056852127034647887680771777952967061210466034930843322377871178303958006462331696515795274219822482303119620452013576600733345231990012717358696255901868518686347145740996618280507620438397567569099936999354965772331616037047355504304262592170443300340232159217589611527401456407437791286694727314701127883760518872896857700730738904571629519364183893569940734799497020902317911995817283226769920474103558459576407950834229092166000166165000470884310202949336739984468940545147711096213928431364390616484202623512554273012506685814934212676236431711531922962597651462343975203739392764883281425962051554242134354902460949351207619882181128316229683082290338202920387299174556441650522882927036107281448266794635550848689718851652724005003509984091100448077596112886635869976951981018087110003112032049101169457788381219130671340280296819657671358959812370732642191050416888213535552910039729921387133238037267064888989081158767755561371075680796092605308193845270845669600097817327549866849065800614224623270361980978934452329073502666435851259830296313129625370367838507739155773552347204283580257990161282271608210919371805930226833098707348088929253438512542502706763934098185757882250146389148002741357029164338584151381169271006784570168923474072434891009970230916082285929830556479604837469329815952313578851723850005438138258397629607970112271555131395863759612444872631512678863322074133747014111042386679194865968249820512561151539589518700248276720507855267803277984177191738719741642145662931786710195058943997434888696470623901613663297737968669023151248331457182772219665311065914616314312312437808116683422069070441955159644138700916179631082797323691028765757466507502829543426770216472892473283111906292538047965140353823889091581496419104904654024674409959365137931746777737901013301391155212715748251728974056583465282991237101557625449025040635195107064865374634860041386010755517695918456079600876246969326175018888091663719914975106778395843777757241700337342675257737623570041350419757699087408433108497142114355997894416480690150406167675193022529974443680396811581138375322189009604210964179269321765436966980924650645196189445161407255189564176823293704042502051664239206663036004896971349098618859907097446797544432199715993524580067818379091317583708400599839002314230704437530154987433690117082209138969283483613981621402172506940817345009335935241710281981076871982989872270400646248639255433058662085324391675893328149363953973867455143973159493868203821090144870859656047545076114791568379456255150280725455153128591354304836672538721167146169297183546990252892504558276387799245273787337434189911451673391297495030393441952690240389280411451860285418938454213139551117485597421742812366627365720697014181845244928438903675274310523821635444926522539995249931169337845882665435933093684446214802345292944626411764144753530739138982912856745672195506703175143804858075881712255253560647331962479746497834102746300350531273925118113353648383356045043474278578654028083163871298979952152341815972311989127143741660567665722895030564047922683991239689605138892533390623720095438252746272176583814965013626578238997527991272653977410854264420365519951538153862093869315659340649235623585607254813579150280073591776066251365482208985736591496815877422502263800236401704039105571777556215982206408787767105561239489421374397916114564213391075350799260299526151662773778560032151296047164136791036110648637923294471500484808980376009036072499748197659829232853315019399305623036197177495307840260608531701231689783951956788085993402270810671265531905533749737405614059460892064980257454620670499625430641127146904063549844463532383146013431826780299678758247446606754520496490156044022469369288265473231237434824348023172910356622365949484011275348408679063112039667986567086075873310362296594339662437391841347423807340317198154510214811797030623356051819978951325686512289923168872573756185376050443889325333834665525331946238994567968699656086027633190749306439420726548958084182771360941686082696907820465946212669343661778317495983270858174403018648424535568377152406221021230667745441782651812718109465754292273223614119750667347707350870032325232280557317656035062026010789550757935380480305215239671858878969557437096125344881539270544118372967042231224475476350755445212666565463191441446946362087205258725537959598635204846105948563676667012079494265526884650952169934974967558726504384247765061893220725805089346680370768437919417818152572156922457772034314608964782063898944204149314477468267752300180896992029518205068522057129356354997338701359586035510021389705263642369011888956828157001877366780349640359300869640177574145925617000106347824699777783135819631258204250207226662160070117075700462306203418129407602736202144212101178907520746841630283225054765204411817548349059161952565219978742051403829229651692554852259843052162017147754767496287244905701786081294764717275405348144656592105787462904578541626134836636135768790075068625625185749585274520285885260433640150695862207473454353424153517377364910029805895894070995678424961932239303982981020241607011115859670805779247031549064105718398053726513663769951582173076840484146283290957756435594573511523433897841999302567993239483577831119587568820055547909785952277354998541149257824129206323871801033306046232287424279980313905228089286017783934157181474046587130959061326870313798183867071644400348150081088449756893237495675519740467836862658725686990521945255734588948660438633895989118637059507510614181672633951347606551835656172524479955190648939185228711194591941766706207605784798556763658751853819977534980796044263209633776301693246975994219800373103712729909421631029303274152413795662974007830560585769328338227454945717260908696426533648197326504475061546843962873750339696122088892680597682738739718897868891325716356130991461416454477658022500938370006545771381989036214511034039461199027376778038040894568532365597456268836279320960709352980400616657952004601742066768484163691985574113415269009478783075972815912932247934554832348664092980274908246806435856760466643679848433782575406248008452011104280962827007925643210620839255990709899405136746967046481552081260331979162181046515240731180628736889185091037703012964400643873213565433128483754717123354732932396333149972921940110721031960637443475672170146986894693607381279179619520482982206218716646430127184245550301770015781495022239900841233080733548937287362765197860907963982181857722574525044548566177820024508806020921474823254978680188915875274253163153342304101098225157979394536963151094423940054714249025708940039457382821932634900439542093152544736290123063165554787611364690050227581715953720802617517701977694709935875121762889207385108421841874439190585094771713082011980468430345562584428910280995214392349346985028159610466328807510384654348408149968502011214902182259722035126603353009227949400919884400033266048891227478164640594929916214013332599988397230594627298340446516897658770963265134579623126309618661741207997757310692403595314933934461883314018515314226405254921092414096451828592087712099943219005936792487118313435286940964542113862259662647559971811500660240357301444617639388588438636581005359848323605491597718777807427830572763329296701468411917454661248741992107858481131539373514024591224411251864422038041440089498260819334405235871075660505337328919177181486773873298905549155741261426691520763811175953931592687853877094412089212742445503073371670530241273018044753875367531109871721447534644280327237510091262859417585216778511494258324512233842308164405813654003288569150754686587346477236338646302277988058056888150230827333393169630041941071731092223955119891053821897120313796531213191808630461013078813418150509899615595185507786596025417325349548909404845302968597308680136695510862226887425810224786334629114226349040498337635772246416473432175989931948207564024865163542382927532893260774898277466350299331841202469969568666822730882292644964331439296786259308137263528569556989359481802499739759626391212783469040101122195587449329042133917408982071659006969877392477752660219114156878511225936157682110868790924978088336317008464764428404243847501156996666283601821745204674915722861438456510161331306693466089974570252414743883209368212053197210210936051418432266402155465039210281227374153958272372329471190372233275198453197130193848116962060990250906195655820378332138384565600657153174158091447505836564717111920872809971644420293720430189319449835901480537464246144051019718951765886984265520004761536648441344385871911605680535784382406636370250579383296866922280102808591089586458339511595259221277094890476939721299436611996388221187758984166213309611536670992818255306794314369288417256536295793768693569849565038441783510185356431769222132032252295578522121370907983777800212371763738753676450312215796255199609900227015769945678015352132878940715399464377092543959750675888654941576223943626997152288966525896011183231628170482423784163440540000293679340988709545505980361456203672047878667860426177191739690119989509098471483775445977640516948181623201973627643610114800635990571482424135804270635368847140490348109481749016487924166999768409499316200281942312036021680887076680311143425517568366574057942711791223829177356959055052552676690887263486238139339631144733440793384767604154088746458236669894776587653375417327321614858973822543215416022938235629618819096371847439774394531139198404362338250991781047904721722707578037522679193927942632558612578924066546674480214760856914594385098689456150807062805278194749303287319724702040676019471755348600981010527040653926265441409983062439902510160544415571437824316109487039125762997296150571016815792787148826684174447944502837591984242715077913637506480025469677490671601727516304543226570335706811188461053509348976455818602872587514821137417607172312077823894162535233617405128516627466386095009612873139032007314352407036394049214720079947076023475058918257576919930429983058777165164124239245042920616821152536297043968402052906810340206099783838032499258794624059724969098478843483928598268785355604314947416705967583277001125662077701005311057274585596024917625330826008521754442184031325482012882297294052467614294667312893289103484946063725277966403111991152801542717221069177631588838500877445017197161951984057450719132050781625663298801367390180877026868731797919094749275566045691523651445148853509315576500572163813576539175029687790525373939290984058953583271438373317661659062645000482303855384739102349805481062527106177877158913972002354826516604447656357552070779554998936773795674237331256649673941302606769973785328544641916207171519708018615796053193205430291180199055000703851432907891246934916718996023271066552296111378863773222106133699654771913389936566151929402088611610912749036382378482186649632013563291272372279120512201755834136822877879308103941626679844068982583325218851128503395823352217949453679799345776325306423147208682174627529124229918716757787671935445576535964875712167631785123192956304435464194481671664230038158724826726221373282586351230299892871352196784607753025227949301169052418993822556995227249465122419820043474346173294465645574234810518647318846335167299115162442128446523623483914049478331440037272872310982531536196810430151885675384898737907648534409857735672555076231811583952035073736330757200653057957432644817187800601765346827650466465571571304142982722756537006516093280532090479523654521816125104083626576358474722177128235176508719116103553617637893948107503078495502650633840442274413017023594336659008922745126456710802294619846908680529097329956078146892828707121619599558023120981986853689351221645759968895951229119359918044042989358748992189971854426587992843951762664246571376805879108181619821127647858791921011426220804799442026988682713158782833951709537004849098430219027620725147088466266764022140560928086954542305714171743243337366479447526693584227996198310370395613354634085978493948686651006318594115363114700198521886965849231609265982730757765686568146235547634191019113724039256578263227490629160587022578732755249125526263664925064478157190075555078540229988540651489243442584547375004245501193510350612628007083925158755010967617514658638633558655159818535832830607354388802775640552899718903699066761120104649074900271047001979262195202017309299492765604827171216121035909317620438922388863181285659732555829212515858197397087854252982631961754142090379050618671591627859208867946538840844759370823263509876886164544707692709406191155280083630494071358970958208603790956989861605132906690185751601819842829231998010963414667240073465322360706109235675910970116351156270816241697380270021585114911327075671606926217157877296572279475505080481370276285880694735246412047839286078329452888302281063241122373250512662762485755915996845539026140925418048439911584686932463688638509576672297584751275479217797890058923674400057122933595467133904013733491011512350086514824678464018042742186707730283001671737622864850491162751056105627875723162713348485010647963984563853061234831842297900819505056991792147475614762095943135498002550013664422080876761001332515524780113666293769700962529812440699633387720992191013859775439879544502120846955821208865751524371212037276029670234436496807716342939486068076817559321567988327073635216447653054047122686176622645546232691377597910608982937645463792127368796675103477100503648835544510527402193209213177851707202440580652596038678309476280016489679764019247354138836853577529675270530936716059383428687242925390003856610304954161240429836249481574425833103522144152314723765946404281602638076505719093910889286742308282913409769049866225584716927445895727001423223800165784873819958640256190068646912232475290848602114242313375672350634004280554104461089911629131450394249006837139399852138097132100208390024563208545601480419190194473501763868204269576049854987589803265340753552625032853454469555207656454092099638880498907615761910544812113911698660476128457750482249238754811659949063429754444957291953379508305144604888029507739140582988133345323794266493804382715950272945652934345873702392566833772866065081913971005886266985217428632766965870457833771934490085484750729663301643635506539090504533245111161177092073646119180334544239476175319503115319015042793259796218414167748722394877707391699148121041520068085122812063312818900199339311811269192771983721575920462971956742449833161826314570182808425654856136672736234426528121257720039796683050926625949465758899336507189004133080101933926806444675313639373216595854593775685576175197789742004789534210279091432031067629453011259617485367653455819037550401680130369726039001777293661920952227342298801072776542569043626878987736627439365394638103253291485521397447751143944907649060193985545768379837526786806779709775010927259010520483128552924655609719156884578074218368032350077350394474206262261743186528453695112610066464385852767347626563008537659909039325532918107769969296598309371210294220765634564698946522634445573419203111473812543315002781138934937333346479684485241369998458088321139647825456751039124825493599004932499179199948780760154692783794342542106806575213534438752524854377828397296833580124849517461869631228569393065323830038870243519947534054721193095748197705800013708583725022240293353682441134102347726045840707828488560659533336709060577333760759155217301928573596686956545323243009395514138291337930093629367043480633165290826107607176594904224597428266521897073805454888498845659091660091556453768482497221280157807523012505700474979001803645900363766935987280868962367931825872265056609019441984182697706043175626979475469423693630629118089663709089234031417912249892966245078075404739625379028607919106481899195236322419158712660585424840886802284858004039980285542653213221837380144294812663568921377042460526214918756843745404758922934414498968303766665560408452585958931038620580860552761508611746961117943436733074969262624770665611868284965057984117787613368108034325558321804436200679374356179797021382381551644742908438452795135725998756095277719250169757610849837213737039663139834389398723879916919448636870972849322741054087637530277925263133133201316110323640726081296233979698982700127148605404940482973584924027283557137807623097755440309874251405755028920933913996552315869643258087723486921261889055200948282248681571369928140722997350473385200555390142097113252086312400871700774432738305980406098194462961820671531214155471713483428214599878668112672124690160431261450613401690330282907478968327678308344211061740551987039542357853081142217553151422263803128043707784006280141466047057680527703538122361671285259953004518830004439023850958560634763934891126131216210707513025739001623060750012792730708427163382010580058048874252118950788127723397953941671004701526554466777078538642330182346989448112060773690523762612949009621159398957649266677046317240180395792480444655367147417724131986421933545208415092700923702914373995003943763569342039767158046699534557220134963478455595704019668211108648371549976923332893129587049851153366206211148060719952534809795636714551570826502097442493327454775708498581115748357816998519397397720854491308344082730621431085891660433629087862442558117542451573349057439253559466967702470750865490954550780844165624111781085380481913216789221093032635573870672785374797433262379759930430293946297534955476265539448128015977670005595458691221497656370894475719378036781773637579218874542406343145949728621178143968351614213740512468487482578547466423472599829099353218225100732108987154710383563910334962558619366286049784231487643975904360894305839419867115914197988338404148138453009431473791857438522170738438552020187757680078650125973378357912830853573259082584473738577104526347728686397032355956721003969430713214168628802701966242263214665505255713880281641686449636873144345966422361040010355808563511982144282891753782609972557480584564876317276051593539074933710045688948000710695309697448422190100300657114350669630611094827490638871448487141617180162804320247720568373354355140683515844040015569943617998910923720689202902682891209016462522544880046417509781050176398992510227711251554801261390045175533075535976889165451666897791278560762547061216602998022615487913445951784411268658165303710241636835501681342079626712405440153993348076889752302086921368013671779237170387187517984484511451410409244724054397753457912510982426164936971217570819930323530727201220481054906211035750862518705877873374226696315138449014846311989507355134083750726176460787492775917164843134787650256102933652035332312385781991967946532448376317925890030471571071403447953233812800523879404872048514170178050504439576733970879381177003268038032544069525214440433148923417761346464117719967779424028544941582890140495108743342113255975194760504764369232522403437052602618558034726372572402239993042817775440646650554206641204267641143975992409471361634229762952730853839396505111519909599826608398825663399480357635701325704153351203366637076994278224359934714946713997028786853835745788678893503885847696297145317646926555978206415978951901069317200037581877349495991711463895743486184268734897484787497988119798093691357421636280595113823601126286638538487875839327817225882097470835778637754902993532742517448259046630416683143697931356537216886669210465884003847386415179752896591168874731481220211793867673130171715437753933296587629968756139460477656868980979108588435647907427182157531284265662828140178248306169314633557863314277318209542515518381032818175498012709974078663326908719351620948519012139489276431918838334264409804190847092383370206527923923775121674731535559659986758555127274186150461023826271817093421899270387562251496028113032515203574534164112858676637211636159327748320821518754420496276420365855846140413000946942929957069772705272920607513563175898918610086566591515695143713373794352622656624677040716386256560550678219777161992676705463831765951808144341616950868658077311488036455197698708110689492714840157503860255142248726627336771426683882342963189898427642273632703343281452274386262366135250922461112554222482457696251470631613189237710434081447918296583594547279652622900355229906075650983074157699011055429914691735523099281937384998185096123448203192996698028273245696433859862909736141373228230114710232695710225336513744644353269724881346343952429169238330576031603397040446431646565961272152830344983069380334928851179204169484304815528889534055206427228836461738806646494918426309424423828859354886587941587978237456371357239146905397316262083691570198036572927081175084907105686415314386738513765909725914891733851596192450028924545286269759361846344636666305793150702521286905215803302033362619744682241951000497014981995856251122971325927915362103154213520281737713301776077509332038437560939845228715257633918748317384440123784682659860053847856787816016502222293684984580342318616088585278405191712158002100986170256411389846782609948354122086748678193085158089836871828335367547328029452977849112889922269306910285892358686122238636498607614012325765043065252609648254550198543458953526951050098256183728738426573097751180832349604481185434542901366337959797293870745308557065552256488138543662596700009216672664639259707040211364973051420654789906077837737156856183127965411447731423723726051896585870369170620894930496136489338671434074906973023973344230394139857305778621832968787888005355721741756104225757870652915694360438508460755089239995277572856780419246179950440578491006941279512328713148490381597069452843730896569997963271558961652543912107485800057516175179611855670960084504424677074258120681583364721406782478598438280987913330517243577450902132049195327149790531428043426052877023012454440614625592091684921451804602830723276554346341150920539044915217983560002362166977553821765127569539670097699151969228464513698387867549816902671776817613562841020064121213960401024786640386820649393413303639984608935092383536882501519775867763416356457049233105617289743021046283541546930439810140255001703835180464404414431023645478292509753349661739040334490246894397314499979060455024767410248224109168194611315505811200227980699274970581168838050688787406206943881461329145320705541843662956225754592817081201993778658978057143014957513620874431875822777924429874764604682397647677329959451827447368459973584806899481723250629599243224548506806145528731302922465862711346962276184474498027787224515203109984457852229358340917026438474730424218479961224414865305788913156214370153555112543920322876341648273889416560940745061144257621393736911932124624355429327026496005476841320359764807353904984721667964414648115749131527253399062238977898931525919700805093230887501161265735457974477642863167066966513867602409000810117228099164188799967476185028492735181115404742523467007056757486484488647685594163751589410380510665943009408751844766198087413821962736155653457550615078768628936512407387324079721022756282954463959996819496506175648391793715388511668149386495666420710923099467547940026790019051788954249089523600164944620183400187131502832744688055557821185091716688054538127244970084190795727373737684017265878923853346283707621983641562188244450206452401758582836571227241663548496070127209523988426690053250425423592739064346462279648954686486174620846068572395526009472686439593544520870753141286982529747374815381829865301176294826695450296641166373124379465035459077989743168363077300604122176362797953882225437269847812325404479972323484218166814972170543272402891951961112085640303622023593126227038918809202265004087078885068161385823215055219754793597803761539605983741528793793421915865755401699906785059582097875137051410138387192925124337172792674505072666377727855960190617366489838247894405288667951196311756596662593432756938828883493528547720375307827140445198124635302352930811293333634297155832014426981463154304145402326474168220920663217585765972106004392135641368182598263914542703437183007034297313106877269259418056575802226914633591701014293646884059594234728574507721180088032160751753933224296404445571443219517518550468173380598048583017558221335114023014735763880835912031787289702967303751559730293926456382080566821054732654485596107062203858506753218915368798220055792710630559413429622248895584361936457499300611171409706297364176587770445344211705292327495697176683509210172775799137559034570176524158931631382579183877201682622048302835488119475634653837269621037860638180406259214780995623252154407082774601674184128225253351164265983786829645618671371862660830989262799056775790615039939126960997090760071890151431260802227060308726015606645813365780603064896368706450512055140773449887555634225667300281649249784319934627317508052124323858517723111565537366762831751348443073806720164707883411483370611882706971392106715737640028366593019241189917655882003899374310531183735480656286969816115988637264784147124195833934495942106520421728068340427119382284200069560091330009549931990936529670381276222170380117006131707818543392046117629397757730973076746855183336640226540421104209220046243188550749676618504582086522472965576569224129214820831289520818483143147946129900955825218555230825946212912049213690352385244933490082319130440519000755206994210887679269071957338880680848129297581434344367882107704985518467071873830997378966643502790984188601820239190272944333375430356826074124529302365902450005452522144900891527497989651673790441677256530077804037404367618603783684129122301439042273755923019667899001695438444033662826440159743648435876407021818326263823293657340339715887453554969140862859553545395987205194600994745519510872172686131038509199510021449197811440370426016559006585048662114118115705701761246021570782374973242140851219727035694938244710421997292679947225361546362408018047549385381671493889084411036990306629809375800631870907197538339485170413617113146789542229756306799148035397492399101370873677764069532470828275288049573781617832237364713274378362886314921301991831372898657549451187896710456774439443332546209406489387148544943435568514468901306694467482759139094364488868205194213873372705738564767732284628836419420628101659776880930512846528697864585509910082152288492979718963895344036164471563568468133020569237619082113800894947153772848309055822364761190706695972790848070208281407650909455629128522664989266576985958073618972226370990219817854946039040584857023322126567212274111794006640413670244737317447257517896153195162205819467932045197661107565256999265243832408570393522303489980653503752776965826460112742079431638464309492618721037951444252483142414898436864983585547882375647662765654696314384166141657168258508273865156168532461266079892415728207924998258004879624866547571764468454050498168716191728771577817967868246304633309028527091292695839091559026920471662707782619789828363322253837201955502468635300449603819428655198636804723098731395601640903600478207236055939986131873190810482255810633704808078202320690402131833473614566200375919966865268974118830581276024088467717472731584969915468685173893109101603893786684700157175545808776351844960090188346542046262264448880568197228623413019984032099088945586116708643159657787610070301286698594208547980561264088339985615002802376214393705489914724281866540339040870123277045681861892270041493065438570907841228818431551793949175956889140380908178877610197045214327638971262910147490238727989334195113525454899897197367469337895697534031867388606822769005502763255881620502487599620960937596404993198418521732349332038228254720646893302689951010171760991549039500233187963778826221016254061398039596299541057196397599664188899982848361450440226959976997163566012717435514055273848558181052069490403891785657693077017730996884895962326819689566442118091923452455258695700984218497322018910386178996424675114361361213283199537473177259978137060897673217821103789572954171693994125370686392395034622033369420355203856040579430033139203073012890998051845114532387388413291147339809671328443793482758032370891047018195631435359480720243726954969635998670398052802478175912027572489874362357037778145993082013327573106641135949780114802808403829400950863896413643707916366127878904162872875062753539543840551403585616746032140286323544312063601961648535738063767895283968260613391403524769722200334361864124271284476939186234421592825395424793219145261747465158680084079386934530019912432127217638093417991929352623220460390447977151276408522947350385402963391791426334123424238099355330008968158371933716056394727813490444583062526919764253018022162286351825883863618965483406122410777206039932816478044285014850713375102407737730158260658234396547324436384293368753027850116474544493503119936534276182484219793883841166721487434503342447237041833615919305158860539915932680117931681964770470517314360349304691882640189472933823870526807956870667013644583491479606764579839417533804707714011774018440085775840182773354218779649839390073190994012903579272205185693733142317470533913774332828213231543055767447570816803646176195803432204405713591797378406002032653484904504439814494251984868305359543413286458141145920412110802689769915639818778525509971744139408741170568272831168950839027747586606135714728857724671292486484368110570287253365989944940928876306470151355545947560370665138825119387172887366056751604559874741898859613844659256118914226856308541989826635602749117769378818604381074725684317416338389698634726119884703330260248983744674522601932000575197722973888741689976524403607723526728947847987174619519551730746955772516288946950970624274891381225480834551603481667549399654581958432930404389112376374515556978175392155907570613319822535476299762115307940481003164604162405319136741421046468132446829249018878565639637223523098448829141520021405859877443353687847152779296057185580268673094545106675517739427620667281933343271796138404892486459268334101200544585239213980156975197993123502338668992939371731775111623084109120540758877258866046222217458708516926605907263588734470290311474629294580375854971230025555830859502098071936032471306088469897511159956231395541413497341502611356553695141604624362961156842237511028730077245524172075077628762197737195440126977583594009724469640890842280962085192227460520461032514917739726512080819462571495163376777408820306250901380974289369609444712587932932842184787800185604393531533651058640500929111410089342487270058660811280164167128034308414241216584017852519738368559842155780888347722853944190739868069215797305149163398673912818990874410692585764706555574249392331266463350530478229742661877460596484855746588252878217969601365360096885961021074245226258495545784330924971954803669288544752937557634370376015492663452618367889006178289068175523965805943727621047744691233592197187304180751523681522879893880638656756315503650618502642804421083918926422962101217075637076739610842826777225982098975594769981216095656867590166241712821480678938095793975337324826912018791779548094264573946417902333698355425336743848095749636729506858959139230134674395922202348762687562745071912002711731326639774124918958334515350191772174328728380190405229322672777099787159781583354813083077931270074432760837900252301097549168589495801062265750926953934322917434030580916163462474708367483357130976570387193858853561983339469005504643255801167877591906176538596526618535485562037215968145653710027878897457150301009348123446112561339225839486224489142148734138032971275040581421000939731097604357098541032374807303156409044563460278816849834346171399592002671619063851645757614343175535654538794291699355206991747485905903775114348569326221691610089368606044776171824278860691049329928417463979871224660666140168889636091406352727375392538514650241718791605142919297664342429366322512967819546237845808869708380367395181072069516428987487810687442645341777559762842603276249658409280554272929138917912553467033806094043104119728555557144526985342720825759690364466467824414490884995946887604056008090031544433138726076171132224500561580946600275304379241737522504804221046814648244921260140358473758135962961604383240845043254673621219702351182725292425887477618928934292941657922746690255418385802958161079807692045816488272735936925815152592065466833607985662730065317856208359497572611673978456921171180377608249526439776286207129752031787125869094448516903567241858199090471714498142630846750642606731302559517852230401115487890517116618005939158852253435647264727230888569381714458028805607034224232873845442501246928058505549369791010764187794170949206422072297692024775120049923753494672659501798743278390094761071832550685081374031150183249498042873638810741754086745578463892967311459061979050638749506788481866455962029482510084725707792764576691408407496427132892798988130912640055890566331781217837576256910423442512511830138610636941250889713227506260947138635559276966538337565006932215360782459301187866248441894054984045634145843433647371314864270561927473008685982827579703018545388418253157250553694021079440767214751316420039110264725196403717304456228141564063044450842947414410645352290670566706799480047974572731644409850097535122715115936230453707037596750280360485705561152751347810397921290948751955704536279523678932674677849474823250918465123152156624336928510109344428559999675946418017712516375007432172111675129957717691537497964666694537218778548759110228602406307620587124361277364331702155448540021145332842105115773567183822241364303947468594961999868472938263362123135868568672426805962654046609959411264569606246392229016168750174171626257590223120749586276189145029229213931620999782177639867360226296971498839810132381310666650814247308245824293611657159764198483466492805643295297734923197398133217984308582503140259165839011654586958829108015081334264864362172372445152343079911023554977127413795868435926171550336764123001097069361057050914774633296132638736754332858014323984041890269137215892628159972499585592894900004408006242191913341623804071720601135645384269046245824023877053393118810716037401893832044420094577677836556641383239887172347023209086014097051914099039398621357080344104662075361481110005802007119817104681934010839185244502831711783144783217486119306004555049668209194506226709350584581600202702552924361898665773290194358733731621345207026173372536216296579245323889194220002817774816070562418147956980710668123883546894866114953473733614636861879880497705567138443378814461009129219179361825583671817591035598877119610566038626276592594664656074246067968271042291320494963025789636634700874483641368501319393107673388623708592866999162647999130595806549451417516528274233865316588326937824805597356959470569028120365069512714787771484986843339735057466621878447674234739200695888056438613895898242341947862926308684737515729664103188849869658939292529343336524747831767211431818677331257374826304607894601812555855064149597337819275418468312824441909393703568922662674700202388774431299059790174355320084371560115955528652829925150250949058708116514323389360619799231898762486103218219877893831100382339006378108511045402064373780098697547698473360362397622610480320257308598658195522587798257915009618211325978564841731409778939169238059614052491684719374047632007250694183456856875443105802838030067810560813009407184329824911790392674649813403723837397602229360048772992228816539797232042432880474088822671034886398656373719066287867390275961193155318335255608829169632438388407413442299889579286364469498238144362043331087173054146546417387825684144747869993293455123253755286003554978501233427199865911877252032863167138011339540363287750065028490112865113528805737898467234122553958746964406031484456505395686423104836881401388648959434106671412151336779987206757212561199135554561425282790101694264917576235966650748490264708055642750411890486556621321862391722303984530792174928640584095560136677114663154157841205590722728181687937242670771114789078061779182023509077154863909953115212376418279233213623578112749500541285867291716697869874120073039662925333867946600986665176679174564190728069134737473595609824735552725381100285529716170794531584634173160314107316382735394172405848250793081851197847607935615229512844359902958962132277735999332719686474039144921092073612202929888276419147105854521453463260979846868734230813380213413860159678038518043121201352566717973196420043355255793336184865424846400818618723460926293725297933751683227294731634904583765467721431540693474030966022322546284519239268129487299067963513529377763687241661236469430937196889270563866783980253999809296428645132961903361678929448128698318936977217365142850889950389546411374783964501607634166901618496736878278779413842994630706856211270469850156591994597523378272874102289505144060413847573508466434411351116117960916023551750823541461724315489714304777688538158194051733991248903800866195171684931660036137655463523721628916807421926404393729958602146034089934649280009071285512805211922977752107950248124770510325229151242817241834973462025235809443646490390507720547049255383645906355785566637016076468344409475913295869588818675070109371283989885063769143766677446275858134187051500891122951211204258296937139518134557092294751944295640692213856599253971186048487808687059906395559722818558000334654347353047418519664874213777394138660102239664302099787193890167557613687309061636703123765575146496168366751602405494341718075255733211553831452998482385858573263542659558696744201530789591494620102368946065573200272565573076851594707188176205498031050323011634572391289161792415956587705488584707725940701387169103532039665443001943681328192409857831976703526042820530432724708870847622114612469886357410394477474767099342036680931272335352947276809463945837601386446528789942142816845747493525044126898735012861355262529949118013600205661798518793167140128426293557418841970710958065564713822337809476929019180541405037520124312699464878211741518625502076482207660417143754728788636532784256876744445293815707535733054339284671848525594719216094723231391373303685740774136269352242787050905959962637915897830310298670303803617710991680680079586372259245808555361099705218299875723740798159070732810343925071200882206305684222297117629033428313784245737871639774206033989878176359174273310623977857229306465828538894839801566686332002031721246418025343681159278433482663152943833118230240156063299036774807692041899997869487794275934494008189040697020250882084996147660171211840718757940787585533933872600618443952016771066700937194592892751582744214979085264403144192897516742452506608590375963685005131682691699338346410599801912042050492325799978710921118534167498364073485141759748748442262086519392911165993733774012141084052251053598825707583105966575974548533621994128357538029048508684340398941209444006383076254372773056318045364985522123405086679869612775540815887660978371873254992938949608438178515834258452385784270167531810209101333783434084471774732517004435666456995342290133900276372878173106331227442761376044674117991723001445837650021338815666103590340275413097213112621993410381290932606359253755450538884773437169753870737005913150415035379576909445351606504287673175685173046881474890137944155778788584679892838086844193869785176486798102710806690791436593890323666322052685958343168937123129063960869715018267421524638450786702951798351406703248314210543448986466200402525286516773823546240846476798737793878422921320832357256762118301893295196791927562260987827991824236725092514188625248205270322933277046090503548336415553357293084571275181734934405106678317854426331007996609440202143702012099169411779946144016067816727881108101277010007615996319087934707441075405255993567743154853764797969799710227974224019837102991019556667512545910527115811550470515244752270137834530804510612242366066728939606320367715686852171266677221640132899631573577153276317418357394773549105229245024241604735391974314026182393852297709341164860903811304637786092947382712262411995839615423383732751806895599173573994993970697382146227459024856679113124532040245412680177563020565993878911161628879852486976553197512859030568068155100103940036257781174307250603524245536076770316883419847087849583495798356640306001134218914029642302527912843987765757018429338754068182735048195264733447057256348363340473910292081702964548009011566570656986592033602784058327582020188564389751534298346625438927406924974290217134377836462762051718917387675648734313922264302484831063231220292911647191656664627971728561259863374255329729011101755642270243592297176502009795981110558577943028292123831670010164723854484803790139491399375009177979981578928114300748838305760815297434351560025594763432213151388814648997047984325525834051147364264891922499025430578768509100054209834395916880891981019776095074018907586213013891348589748830694756001158399685081560715857369121954547155738735133879749570025577879110643850879633242728321648120077175522536354877716567123087845186883378201251256813364595100924862741370749957161562202482799686701802723998196873345425414171598705953158633307822807448612031191396549366668597612081514535691268990380072871393185655169286055417263688532805541206440174087620550975029457836583700283075462614541831638196765673264623397234415267289219197004680923663796595005829727189198062697895237449143013499854306869842449045965367590633192154706619915354417507405601775779276647587499848776638399000011313823055983347502695447717795238159172685432060512803780796282066714071530684488460522928770671652129563609549423428951639027802585564626514756398917111362128204384345136394017237185800305936299893741494018190284064496219954405445532049227955195763638135371389163249284256713351336324299521789702321911687692403439984930786150104246037319069894293399381221400475078153585167384477484368939454949316059670378547869582456718385983614728250234110472142725370246784985063731948230378520112176344649312680002643570906238429203735929455673942905421626266397680289782414897115945772663255985776200086086012257483561934792876653802920788034608310357506914980634954177168729511221806541919278868782909694229397063675301176879756315491563258670036642920168670083757665842733747767004132693381250556272158478456287571588835572998927730612923301910207275129920431104566621708523379958302808233137817286048330641610091594665833741174633651088827339427563656477111031459750239242851771137490189435234126304416352448315558197102166425124306848356777826723723721232482677903333853561075153473004020884787998335057096055996241751381653305956359512834908681388345997843819155149984040289409492461193399358160793118798866092581298724722477792500459420601745587725183149411862904652877254857495123742102332970212783808243275077360792913037656793286650547169995352722955776936514855521225069618304796141066641349003335122510890326934415355657933564759251797584878449847426573740586769707467928873224012006091093178558533806491511430728537689752248957358302259963834958540682098851437272267997287729269606275744831236440798733403752658742667694085901041672765429122906680191470716284894242966743472391089908252917410977987655545677037153014883715536894853017653184526977832258300667486665826063359742765124563439817172447842179565395541268178904016554532240419227925725873849895682411716892039572951756407214528935945777583155538054913157582562401830088166978977987660803213301612791785978150201004776446545940238372482309919236967749655453263463901358505106793551357462051757523177975419354645568657183268788957991628632389769560174667407866832370607849373895465098524522945173353995692676152657442111813132572516886222538686988479023541204045972604571714922934006655305801795126914907049893576092502945942420126800061340904806109229986463252510417966385425438494720895685478645884563125333269606834544972576901669738984355388254920561589377329202802311515790299909044918911889618853920815536197536854878172098566265824817819088718613086950784602994851524247030160650315882710232752792312682647526318420981973277032361768160924992564826756622769646770576844896832754526993218320719207912343402206859900710244584309382260262705704744329067713233204460075621532214506295910548035961694920086824287659103911180528447149943865882472405017011913187018850429607670159756032497200073192820201666632745125998813193454807526421237917061739205898707210321763477635201900622588019900133913155626036925498470728809131951532948940999679597721758450482049237880797961731929923851115491858704797523412932962961620175036259268693584082506680886251432665940084774459208817975795335914567156367226727896433669462029748153220113526717961347476948000202135525771882078212646492644180428136347828396294974892897869057730486449022989931713499135088597103545472410598950771404047825489284252792408901441637679256663648130719906292968215548625867437237190311336256246508863910853420644840673122824422229285870701917728432125143398883411188599731380805972272487007764778100630853650862873429919525453593155841686235153089732394477541807494981961110850275512567052243748922010788174677747981238332005993246665610644184195314339955742380572654558311951673776004871835508720689917579196415906542066152711555376099951895213273935954707890204347790438170874756626892167903835517278972009029357388463580966396338234871521294216872553729809344858741354978103950724992888472546127493369191406646903759373115091125599758163824223101060160741965599798285298517416816556532581134988206854750784663924313017648808989201775650678970180809235272267269280955471573479291670323936367191646204201308815379662850007960077842714893963979969936138355347369662394184422637692506727191762024647314682741262726520017880641976195841900730110309242034537827810951183880471775891169094157403157681686897336322364497123418632508616570623641673160901568621031475297899337176214517286766781699495978381736856541017443152183011530257742628482535391446732712410410959044529054255763811309577894591589596476645313652445734807221942277985213902894314554900299796738124803980010303005205198921060876521374496894820486776892564774498026586287527084945456609991882411874731623239888862192618464221806512768965336429545652443482672969889723662916540406225911214428476788873083777078990371619131892731814367379204701889314958916146209143687091405141769916763816955685384066564227664559692329455521208825686225890469302456113163813560125809824887992391991478154697245614100886495606296970356404025869644008683757124190226339632586397987674971083669835045814195425332960406782065384398551279317377264232753317546576053892016513565904194802917087457309735492563673211228843699352427158105259438052194814625400277369284832541824445899454157435281835709389025728640882862470724086419006242976887271613005363361145238528276604240176365013733205203023255139872532430677347994401805974190701848461373491646430039993614873782981259014055834465873554804167465321443743135440898722539362114289998672532599135094042249287362003074465953828022584114245779153170230208246480117759682317720035259275730695453158019269411090713625800315581504076809804356590854692458014214394698141664943249998331648039662286668440436192210608990101524953890628145104852755883864736953905984107192233225855312329069566979380995556028344530888946238708982487727849818821868802485515094654565819834810215997382066695010188613401742982721215301615340674404089166447624439465705891439660925315097273080500388430776245843977103056074514529768540246570021357827798954934254291090746812044972460847944415956383822562843472802518950785345580576289753723052861776023993715156633562452556950843454888064439123877883770056260779564739779400444720951608114992633181866177856802341438895168048763471973095748057630185436220574106299832505695903662043709732351169458625367010110260494267311586184314210279556060991950516078374730747657476272225503912196431640084332768169191933030749542208312690333792365623219865057683083774474660235346477164243749507684084395492645147026923747211743753505688600939523720591626006823094038696041855424323287596325471829678117548397088338906601533747766304251925602476705379267135536310795476397278195403633180114863166048501417206508111075011392221913796880370554708343214700097941342558708441518516916073956442942360234815755254018263878511250263088324565895334847659826563248484103061671098175698569990083391958094136249126098775179491475246009082706252711451167906726051212516203341516980040685786800056029248310654988887277945880163362387778874736418480647340271345262721903175523341886969707470998709378037835590901379223935732374555489438885469273836726420893000280719247613329698587824503886397783160573126430640632399556223066044968232379554656162364524892282811584288300583848705309356545118187993178059332497461484253629593007132040058475534600042560299971914854102272422743614668311607125982852732491245627973305012797063173134086377986236894639217177489597805230547415978429101860043433092801164932230750227501834225495013976673763031160773365733574985398555944769971227531676704664908408695538542695273970949814895871211315818521418872170814009379201781937639239408324524934012874931597944670115521860458799322393641716995492261844965599909709431925534097937083610358218352433369481401957780964010585184825559928221545899618323291349641833802412838495216775335276702456285363525851120589975844870983421483180568726560384349040334996552542283636152235856359151649740642038054101639446137865852272344869281450732824697289272109159949742337771732531134622122416541606230086929720817260534125873160306304353697614054107906387512846750825284980290273088310652139762956326050085837911242235762719203277261788346578657979323088353885236090198068159066983535926211713678001396622259495270033400281602264715215754224995211915938632663298420729370700164637120315026425418943023814822481498742139622495198965703216183892031804261455059776687655048770358749132872326222366898441167091045482455893177737786582808673342868238696007679445088225105853809603854622413479898268304547919513512935327020679461721305155470230508603146336271023602485621590273548579718681642639680905315415099834815953120251166585538115877856625564070420498065284681446620876327148941076052961928147301273839504420357100668455110559661589140572072054545204929795898264328813890516424184634876071987054215562386125584072693877779660794293055973198550250295488953895978160668822195934815434313629193520164623633446044090153879116286997557179977645880386174027672626488757321543702710191961344062782986135981292792988525509054529177920367354880989083177414452425857625922180596995906865023613369195288810271613899217762625783052172064360471048953867773462228379454392933958693858421044461420434366584030687564919073493154785876401799037711944142235348349727632532897905540245432873334183902066288514959485376781919026877851737521864218799847577554553104292881277288364144462326886102840320112625530510473105894979097369154670990072627368794102197490032451932080741046878452321342115616664960078517121986341912490838625931990048153716651520614958934295280716522234300952925736493256759225961191588136265930702889190571885859573801323044969765937242093983391996014230273294230731728722768412412288422875594630133159410527850222833593729514109317485728796300287987426187614154344887763641701412860573033380393282850689533383478000924412045490046907345202552717324216951285916877893509460577205957900769966647761310237471852874090046425577473350042843038105105857865693768306421665588391573070570110135276269705243936539263436707874222681005720440429775438542075230175502012625293224134024794245169216757759345701094484332050719938710044051287886281579087036592105923657338465840468291569299730400779496929349284545411059926752329072849832709147392924725372767136470854278743213672700906128092469101430754589310875697114596204977574832913463313979578209777986781379560631544038715588208935166769191649291149133182044768140406026759365250455398143504678036338814777874053130763277103244970743285150619248276072525848963316294855482237751453071876049618916754211353926467228533250526095829288177163016703269434797181359576242501803373344591843290480012985958723710998127396431565022390649281440143604232776008472186172119175198215849956317059967899765363064828700262397376000328139449203554883993606326358669350366814934815723569414066892375506352707433608661665501405140800202778928525997192857060599560019379769289537307381820883343125534964421499813815697822221647777510081470607486313514389529121232048309312798974583603105275275325621937208451754141956851964355411231899470276388903929278942559643604725100795437819674517987644733966449573407713511540141900231204675180875108872035613909093495689341490626052173355446346574833152903755052371761990353007091385126868719892273845963038097588174417872524126732299149287419288159142873537778135124866882276281698078830862972470242321455479038624770911667118965957098497255094879002302300427676169920053019644606264077236330660616832744854181447308371675905117947177598105936357226545811177029007047758798952219610419317651619309823989714307619212029967946588166196088878193611837243971976054327540849012489431772175001206596586186119102371910462140951299439915820781048101031171832544701337819893523747602986647012186951638544510691598149900496076383751926622003963198063086472091952683698550809003983322164008642645348582130752900989167946582539071556493099908391246804877616789118310045034573754940078327330909680676606152331330310035742854605235213883593293788095160302363300756693140828711717088341584661690902335705300420728711022857481809085522382087618400942222890405311991326387382535144646344777827035505493295475174398467079240631835824118193638882988782780758203145351858421377668225073785936708503302371767591893869058466543369920963284615168316094926725145629389973592426153472033304334407204756045370408293013977769558016734657497663128846523990997551126711493287278831854825727407072795455001168731279509314734891898682793241771492248056827240084512056623118405700854688951932571545463669269812852260842952932379950178593865182381558216970524544687102139947260685972561136502854363166629126489242072973922347221206612260816517788531491586325631024191436656435949477509613464820437328012971055780389054766329225509033246806327202252620101711491238349173853991984601407572782178929260093043902818606092581955868453504604711745498086082829716414815581580347700788179221853090148923769870498119060147150898794098678326606870767706725022935883378227659592647810004941470263721759176054708990827632243267102625610900985310523240403959041587051122074946321986215655222578765054680125600614584148744777356437083543168771257723357719396769529676254211573854864933919309934985844076668778591117477190359857903594203379087080302160333644340910056440182335124433300353538166604157253107848402903761095425716575694252840433103217421340035176050558020716846201348465582393659006664417728952891124456839262385698476446806442646817124749698801347982332587976572883100394598142947509177777394711402731383947698827230390374782043585700593091719258860360377578671959935870263308670162171029097819673235044129842538123372430717385638913878716505199836090066146302157501508215470608273656423234550277160706442965988312256497845637331796452608890140346010040893850520503196724296983855399947772388060966965298456640373063618338361682956725285489418034990298975726838335567943989846226758025703413802460215010571781613604982218882629101354191635536785180263003153848672743200318681371116965948807327726353547357153348199348659202607061712692898167236767745348072489117934907080189413481450442945987608310252549320205761696628520553372419605212811606612616709411509404730417592398225582761545428482982179447612977412010543563964846941569418131311050474095263409317158398382488967208962702425712495108808327514590238482021373549666828529018072833583386881517786004030845289781220371137258856140302507692339559617560049708960382739648077891941521898163966263228196678438344559752600352739968252872803524301060615627126783187960455912633404013434744223557867803417745643815816439816917987118157758787896341322539085668783665572841743538638336463799611397242334158549435697986366284543876760471756018002204861123496046250470728097672425535958103345418853142328250011504407898135290614782157225760944997076706197037363164258455750173319938543801085998853289875589036592534031940101305707000480375452755698221800157481316024277872155968111135344561769017348623817394982618084613630379528379065806900461623606963904287104195205406907534744174768840144882565137599308542778130326936870069118490846693213445017765225822590371053042812313956006774398764895800155983564459706232517852097799395461576604161302221255547489913685452847804514708181911745011104102817691923837938914164016211691020181783777949595472453222921037594332768806272139492987530455706521389389811772550547800037625890604087273527477327319498770751423284739264810297755571142921765066250907400012957898504734463985200152915899015127204251606598018082792053164124773692385065996735303756556950374879649718158878913233529294343224885677301889821491847537553477230226610419424574146620902408567182576380726032713840833658526764369272962546355650565902986756218575407532525297798457357465032931455455602662117251696650421470293166834846174526024751810696387792970692219876957828733809552136308138658497669606295839925389053480696252205445460579184634564081008189029459718806811074022285845254940792930505325018281600709765822913431003019024545684619399223582900069590023759025673006774865614744169459388593269131333932652753210560880596922435389153172294108629479810920827209283747032915418842997435761965631021756258023543837423752880129176321305869173460115719561360918803247980209217253144092779551150154123816011783063821090833137605106919863732907093228165156658731046276860094182762790035184591844805805469400225778746835332939356729464651558299012753791602728843320231236047194271149043573235297956059610047810097105760253728964064642883585656973262384389106237033388663178453429095039630852265078876925611913725267389534829870042788498329154194753403149819502909472034496919711706777693463063468314686676894318746393222656890761694473845295052002195590330488349691034783575967871072043660585971103084655899332965471312084662587101928451271773467235515587207043179310937513323693230413649147509611787511305574527535592036547342477614242614635943249528234408358404214760963894960595627540149784265748197017127683464205831025077048147124477802706150237709765205263220644002899048176179536803069255710654963919986714746552807053983247603569365826609750745102319141685130853337512757007297175086896999842811760180501590814812918464547022998957296165856016818767745609898207742291910703263868566985041134122142682280368519119591038655459200559185271116138390656566646615815213551154960477322090440236061289560956018967550241843032303873069141705154287891847510211848523694009454647446389482574144763726447551871665104232249609387232764219056685633427853864181824962040253329828025677410170031523244567205022571999161802086727950466680215107394635759573056813699241723642938935195233893974828352298644454082359059582700766861701447717525611272311333898529874923697909235119574744766727536176858667811384952942439609193183514583469103358807424014750135482662519909435088358661949679841281282528665082793868978955994478368369948519067300893873230202435222158820797466795320222256982905009930740482070092636608413399666182901998649893158572503831912245673848370493095889795699274342178860538650025681639370814694625155315243866741868748895459218025810614405477142860563839445290629303468445201884778483685784975291383876252393969115329592463888908568308286150434330814024405537090432601950914854662697238306751862156787587270232890815311759761505328751613019952783338696184368578203447520875564974987590421802894271584675139506228640732900159516648902856774829037036965310339334393333288402669457086147114410168084927782116524951304241144891921520941589899937434647206526657867300651162727903833264760087844942673171322227449452889490207579540656743019702662714854776964659859179327126252875608565612764921989392973943015606876873137443493843606582575150827532201231335439553634919748435258547389233172294478846245434104497825488730133680337745762995827142081713815212556552843204817440032429798528490870069140790108607634725095949893080190018960780097027432624701135794114137482052700341480758590552468195795096515646078280151337503525080731140853914130596119281811430444070639122919263333286245756886232132419811566925592721730436013826394733456238776659425180406872776454877331183547605121446698235467841696394727579459301913731701981658551677583068946861758788302375129016897715354632903468004891896130373370222584256268502270314627929218152686682206405673410366030608013824182916119480926173653505425656981248580123565455930098423286482786334496693357902800829334622093787951382069969799686322892524780015584227958940560524222854277185560995712131492191262850948483210012033812724722113288230537811693695990751271225102631203406321903507014806394673309781080861176794677139921512089012535990397988750660271877187039875842047821931390453843907153629377797765704017637655638524816970467067631718284998343566176179518982177734180172625548734426932717909781512795075529972545699445399497026570264515680046147488784521180924429566269647362536511237795690893406984956333373900017382036009768228979061640598198859236695276800841842349411453899113325151628730789762008997519193352568343317699680801328161444593753279727744999027573319390811817975191685592042167174959094227819052361032988028158418988102247723231135441323104245036896722237129476936548274334689248392540715775798778779829950657011502233853322588150197761458633360677098849247271990908853925099147396928583814136367621535411948168614669050566568576466007738667089601618491583872685369981005953892286575858348804949285367510100845550745961190175154490683908558377092296971825640488208290018908577617063757542374114487969957803030684920995079651974754456507511659403033469769228731570697896734964522863434835033479453715717453503908291390830630544849459987971194562945299315318674951202024030452626079742231150238555154216110891266590740381935315203725176828315072116986133759352033659134070338500030492699269312996113163591883521168330372077001423271078482550065143424358953739011605275477281290141856809386500988843267167763131952680767199480892307922323704625768069522948140844011583530198761617734141337017577668288259304379728650795435880690867526364621047041818559819641718994907633671404867281665528036229670468581816675276988532913958297080239446773680839417605941410578633770425340305521431337761035264751923715033662085923192808329913110927190143429543401381669882449386786294676426070195145818522439153420970510476248402392753698571482189711119474253854815029530256528904336000969530409759501867500933960778782205378329315148468649412109604318342777054404835345157040777725718229737997123542979839208359636226442578828117517731906014326101044587687153709429240853013580413360666750953525607346984589912817827994472965692686240560236379129408269614968412415898008867122566568056140845250824583707125251053451350812413572878737181485462271152385669770074659253806834601897929041944148697704171945370448210907098414708826686816311757849457667643142838085984768987374606503071281598970926079940342946504201784565602628255626212386368973073835531624164453710302420775945445091203512270764275768742260312628697125015906751077918280614650407820394762435319195586860188275225986651496014263435620880262568371354713358605639253042401891065498309492570000399428724541138732375008504666946478679152226649818190441898576974592048161634321857589423622723427520330929283547508089404299841339590262696482299161119180701254471905085275421713120285395993135472036757218113623484217726400033432787526444921347308154764409866923652121097238534621951495539880549617692497864015441265811358124501969922929413436691668904914792177871407511521183938420907356208703124655016039208765485039280808873540626017636234060105705089228173197207541821145853554690966055394490783700857644875802298060700806041026892388463312126161775323719404963283221426296680170122968276682168698189265231225355566471152168260884291166722866176300657897186913172732660844045870284152521284282060716139044954592260494673273503124558053994711249419064098042999165895082428515484287291373059533957488035343076698245841933921505620771489996069417423457803715627179954555737292282732097704247668546051867189918054556794962032172961144007553149376048005789355764897641082854984020266881440982040141965250640769408073086373442441093834167907821179469357365180172725607294050493840845318145821001778138598702304524219082535798014669657191443814875345600284074421073300011762540445425709679772774625544663085272108125522499568384946005549876009804091403832778526694927826837876487733412432468789637884629154072187178686177337705782713081630128996984643489730389350627871389062471373936508347210826274461652790312510638202200596488343931570931249546677798104600031376871493892720441325824938239829504551310517504829306964548732047826773239331462701700180215200882988804607115258107962680397373708474727738767269460709994168072510331465745025642997071587327726797917241540978304222787145467199135252356608275322156763649783869349396366903365266943828660218378132668008403856549560115343064012367003377252914945510226247785898727513362417012853974369099140380760109643711697177022124401503549367685471043984746081782927356365043246049585356523769487183910405511553240560392623914617259506115029334831812585940809901807517734608596706811639451504430868506205072722871141460879509824733210337599865327362239835827473947450101418213577500619010916202335124493179855348904338831556189055402907855749921412660629645080194003205164796809097444019681599523825660617014784215963642811633720262294567061477979020990681842136784238342903920522654619343229809389782091005989215808182564590365791736755150005653867994967369140631376435527985451854648688596317873191009851595201718084626042996021022539691352791118088589944269095962986411206500070496543866136649800709529887139127823325639651149907876805589359822422469244774857130782373696607445127585402840036213520204424546180481611529598384926322839882628545551131072453478011205195852223172426146274133154796883483497226731858404693713119453318413592885455941877520321924246538585445353870483064725088311833341346543454402426484321122565168462399202456436129309633503262230038941027417640057757329562148544148989953485161801578621243126282846491200623703115776094024588800870673009420558990060880109472534935906125295708704142150738996824872053147845379894203742090088330551365460161052188161909756865968708850693763030847228712869716697401311299429626445058503026321532140043669964977456365065335002527273198195267231485998096840243353030480667763153803686507412215377888201366226089263801951296683065357420068929361579731628385520562801274802460918435416806469705956440992905754867004842216523305351048720716523244925875735465303994092398419592838128998079074983489468066805168522655975866746274603463771730104225521227230144914685722431706073374511504756507854230315096576197389246423596744686674501570880034632766264782536635778156488688904085533109320048407578669488821976715646929421786937437673444495360348253272154105012566433707855348401052283669520134631750309606245689581870725812944045875247954849401680399308382262695422227856463632522236523572908728441165827289495864546430341276444133830221948951054157329030843204323385887842191930695820749592063380483024576700447931306839628768656859905244413889532122423556051603564806380240788015607935481029230373133850523711799945618188238027880655313327298705369690652452348113495708717049594346112145150609725619248485435332025914110514592113216538348197174791131503955947616087466293131670744885979744673529583320909451344813300983633522432842097592087235984495047169615811926397425325684641814158562168150088059852137034117664750723582444727085481688737483650245905489513174646003325970835350596420264500365280841776055306901850274993116838843220424488803714101155531105381945459797677153681017458114684025842929029159285358245858591798982996670223590273411384839515810348166461331742159837402686893650634795919496465094543774995229236260290371279804130521747700426284573819394461146425686273363222990556580258121206584212340340220323589962929941074929467976578118303606060008094674165241471956427921289763159307814316496501004410174868959954148027102347406204205520182091302623700126872825480843929955062402863060696501773019025073995044673728385668781099843537440422194621235110861389578351257000966936551242688618629760931429959976980178929160078694891382765273569577878045065991495352057664859263648367552963879261815970716261500147887015786514714568228483826053290423222931660556157633147723072519365011118888543921286009407905773064149549768999747999822542409315617604178100420325589793075615180264584022342266829922245946180624789311545366626717639836589370381353190717167443060275316454347753786868289201191263086526263107272105579542184715277842065889114205420543432702199502315298550783743514087685267145047529758989272808501934198228427573951264475759594555768731844939410102424776756345291964688753699792528847362821856997272020434818878225695328163019027160404461928777563232467333130168524421316489114213381738658659552922268368286493641302166368725963470836931219766585354123029854452014265535102218486546319344800458151144900143477713234891410920139354405318702333319067607070693181647598179230935281673819835680748629608875221474001443660088512279281769664608639785802484357032816630056824983154658620762627862510510535933417273867670077229769932544638050284321983861515537586560112274209222889743935001221722897419233100212549435820397476608662298716145309919412754976201678129534615940403039185686186017988257568019458593217384339567555387474058634512330507043209816323528218757021917539181929935806081819430281563667831311318494976542008495454129803812892717833187205147920545355512456648262221717051901418686761331131459877459147926954954541448425882120867549511591344959235008658920584888577041956799942516027934652988421305363557798095154770440995225391370062650977004896609773505148003031525352825759551068735891877115277857842121024254923938470118159104290278086389377293775964013218696272262125552994270807263905601243646797688659556535830055795979883915092471519162115813012068506854556503257791278521798981264457244679948548076122246978694279804579690782907765903933323115990635189216042580982389725845831032675609336256742593579195658929043751443987788277146774398269689302884895485614285929858818174816317492944068064943098240488033015764356273451537411304330491832537173827714113299787777189325243808977278311750899663584848153447395757551489826577872643005687548845905572509235584373158627864640484813745624883825520323595748901512371380364799028264879810796428205716166786175707740401595824136073723332723770321088293248257230628002068586490373771796853639295152878846798034459985793617302928346145456261375115525138662304060101822133645169156927533215021160934100811480870634822349930517172595399511598385330574172946443847382470415515435258383710888690592562358130684878499756369118874606252488244011042888535832167162504742150660950571954800115057625039226590678889185360233557839427143805128398576913653352216669642841339139635824926385979159941125078734785118241041514832264961992957838500065559731324535645443512578237416672667989288398930072879882297919037565793034076836024180673918571473534387504174900030173694965711767934802437970177049438665821904384058005507569315660979669671579888371694358629922361390341322103897794645714813666154180436772233980704976054264272488437970347315703220471464697773431046547114919354703730206428305700943004035107531146403954111643334237186008970634907203702568231204926864295700777994187801934492738930590598484531707890978754412355194916268771368821826710248864902833964645539114914990301057138073721446219374649317985315092780252033027111785890237856015939481554587364416572826409749229252622098249936970987488912057098843908854561545630309742892857644936632737992916824628063453550098080626669149432184460621203487008507344496815375117955670352809658712670519568727783047563630329742366548642702523080514063274308808360941630731812837296631746701624887778722768360370578569559363973444977807619681899034208226003368504163233308592874854203950844908265972603033660726952091441223284549266564220817892337547763361738601492674351104199579886572946491771545165254667692381502509719237148397434065583086743200136243292088604028437762000624994259539524727753752700096479621158821855718987820677732596834687336367590183223400850727295890798760268406980652671367343198918352504326113796936188612905558766299364912450039952317491485418857405142845133227320535908130540322364003616353271591538032283277001689585223102525823095402481523344337176073619891127964515686560632184629755172863903043101959289784415097390682329037161197123926911873917600643006788621852242908211792770957426790474074838900777561785613500775785924121974258455009311060327719004130208842594446944111490597819370237329814675882844543492061022865825521034444665709162994597286573052547455197880702594860061298964991952566168396461435943514034860071780387389593882099259329111943873200781333300179675787795904276036273810463408791947699246014167311701281479039867033103339793126682191253059412457083619304327524433861397362732136829941427790908464671348162425386101816920039723358118731594229751830120458663821264359958780594593832298148840117448098287051917697293588786857477696368321301692723982187201283934067880132812314575679694085146993631914185393677975018115000532710932684178744963251928549114581098768481068989149887465490365155299633259371904031819725005399764284439428194581293813465416699360891062163059212815739555013707684596373816546507639809968536533504078237627957049274488501973980350512388302413917193141895986364198917659717273399219356597461538481778308966348708556759453113340174189747271774027112337010581284673508294462679566017575301052243763730005771302275110683167249159825167325299593654732097562597152983993993452956720111467642377792700228913507635791208244960765255430040943670956453523054109313253489210977584179749316459669982925353481729270290513967498353943969203678405880405948329478979643123566756524649806705712992979641971372882543880269949835437043431617304225870851957242919179811082902533334738447114142153715407372094295042255727757433610416154313876964659854982998353988918497611419892384181549812858667012830163696693617955671753945636992880711692934868713601911590141442986829132496160108834434787403980376385930352527440322138832828307482742164034789731953418840849155979072617347635778304636199128381679297622153865620138738009384487016035328155040333567532800486958494547514754523875496322741214133966578617061036199168590978614892526158906917323075742422704179953563084356385257193032271448993711015293295133951421625082753072050840002484723902434026221854937585412526431935173709252982751255908960637332795781316895201170292186183334666676903040588483825990047632553937373446086478271435887298132118995940071236280874265359252338692156491892325817963716652569595282475392103062090097385060002184349434938745177703400438159771428363479763922686048316915534348574035015805964183094483997741008342393233908106903196570936364770555604612969004385078421684036816835642287623017803267869901172836533708047481070792698283027076817573753176318249515177499563259260055196553357672446914373899445862528846325478789183183061997084106645877926823968197296310176665269677634771408943352037686184643152303809018431904865540082121554516890480449542933150707188541026307068653014486006572986309646400022881333084456591735200936905159206938703811014487847353522624138812470217139718006254145205174528335258834429173384945824212989608903793795292402417369283997550341778171338230277053288205036646208180211287966179239607290656952130933874813631450850238028351947769916752762421838304292565923937736932313564512559728570443306126380791374152347142977207543098965868884003674526781839655585634564130434718076910944710212326795937698457621691299313194845298526693962178588322216541307026340531731178082637956083519400383147213088852017126912662456882621792417107094530998161557634203078212956386712855960931481746411284178427171419516129793910201372917193892814284717968748239708527834937951086873690535132487699186918360029250538980823750975726145713689829911827113111881709802699147866865575037855885184580691822032193608517756603855157545342053513936791425177011713639723745998946505432048118380918641313891705126553436633317165395298540259246616029148815256351705683175000162467452921036860055824960988299689022520465530298818740042839113024729172543407465187267656765597940741153837358242736571453901999341032093224928474443080646274656899980006628438309263828006583648330340930898431062477931557682745507302706360269023724190824014199690749227373568843144695620427245359339728039187398218244612801466804161846332175125880514618933489918940520365648368475693923881005165048110975788630338206764989890694659169400909670348561277786241597042914686802212736762822971065817864155714700266806123162685791812500880945892418008257068785863055848278605355072757294721772220458179433422701123430585205879327519639394843490930930648263310937822061618341464892548110158031038806695293847201283198893891608469527461919238990029408817946864956540192907793628891354184277400574546711037801000603641547913451318084403104091069124986546891771844402401353825023864411584612119881363237362740110366833157018736610961677945781353226955392579505722545364390965560555282957786635071483371615399716294398494543985615896802217052222590625806934326329625934654448604951900774042668374185833669617688490404785060035989399293698273323180149147280036757143102325398725701649322981094917923064096670828086151845695147181704512662878834544644230166643659954493626885458887707613669386058465777378568656777465684991677433943709289000901886428081546031255165630588061282485130795632678056892653865949120439502833245573755002799896214810634626407049219852122084459700647145776667712306427733190203401514960095375965722984996373964219421263442094360322438087232198502132857917410247542972136643947280939599972171889834891464388472492841416583038512340372570767057184117958806666416973340713863021447242517999568507094791849765796163321029149995097617614710349304285270624302997744577990452674011005977321758399813167814460435072471371846442862905566121171335803007014922158850244270810590130569738282214345561989466930119835863256596957499468602882596424319789185125381053709853337590942582276980984145713138448860258942334454832395888703758045686365616817273202322943901690078425613327311569832102620095577629382429965215925744481027562117331983533120285526346380689748042609981592928346843199340037341417092731761433888134049488341986136741483833301397155882638337697797552468985804792199001717290154017874833386405664674442399409508657054813863450240667927779964710573407167799104530089159616204794817927846047366574392177957349109597138130308882017777967924397451376999112968896646340759484347582288950268139139478709623240853377812969455791597404360024715572733360993735284751926425413213731751878141671219435624056884773174934038754124917008883777038212653559396017277309847369689242499642233539031136765864410548186612259172475471488345421640530409979598291194698396219588490399929391491761321985115114257904581777495250447734414738225502863728549646188811693394805454741266593317451599588166004149476749208844536346627455954826012129176834346947704757502433397371611470452045016958565062559636527869718568724290221908663715920179795538949785401857271862621892355629595218567835140873213246786282344198613174573622625633234435075184270669572418263780631051399672860203440288395726456210608155280380376919192021354253574706044276275567787973110675889137791641980217398735604759700694192801666871452876944869180995634349936660948264160827284281868808654060763710652488521466759764486364740506464066932544353730347564112398116591689111442927658842982080208103839146996736726232277347198200350511429745495541013935874736394129587282707792762284911893577697845636939511700187906554243812584973957173778553191114466480888675714048370014975068375560664092955749823888621179653273782290100037005092071800489993749959324557046919937169683819985489711921719073216837319625375032858192403393261477897280251113270797900372344854599848103170371626730745286271001430054034716268284884996852145142197881751359441545832335366480215505096849636107814939160093916865213757269582321554527061836933932134969027453999562776892917085063051700832455177843391936637391442963510820271307812521790588838518061700139141431521349416255516625698818602868689295112247507871201216092313144957737730440164623728569283034591698979562479942540378333229174502921312996177541965301344230919123660584330512046566241330601538397557262701335408138091673493604520485988248837826241215934248778429838204300157119983626193443391790758440980582903045508342192141737162141811517294361523432505432062796734423523406752779008325536400392490004872141808206977491266914067147130296529954060187470344465304732630414305040468337937964637056909789488382065072152882895066652051451802010122785231951515765741333259620071953946527797146090625970759559207689530570190331460809119078279682207627984369121909851521559834859035290623886737206475881744499844127367305048467187981822713913716005112588965384102624761854676420693190055893554927764491826274451728149127114738004143926018936111816017211122769729594681964800005260355420874496409427579635545041258070398701157616356434266713147349674437034071902239780975306544666943939920353013148474568823231680073375701904794620086915825325656406372138147400185016824835323146318875980054564554951119635207683644200852457633323345262717651990972964396695472381600159568219680354235624355754889208715137049289534231886157882739749399619390785251860863853419271612286379206688642628504299499023608339575788139560912473658555112824269954108840597448565836620577934533746351805120742192061699466643175222286890629317518949434843069098215389516131309286191312291636282780035314657947377107927961071859885905237787829127473897959778564283173606082076932800904608964983472156893002224789826548516076874037897558261526578260062358247001167297649040857193194886199830309957141663918325604329238202277954015165818559404011164655067108851305862732920670584245140363777326813791047304822655288681233149160315099404874658279363962704376183227511654558704686709324362584848612278284349302322454522808701804359327843125881952804629607000946491824997241479972454914365636946104628085420725183528534749460909790989092848494875839918693846180264463741746971131220540261810360856168706452607130729326367349422327199867594253245473108156581495485343674332212730725090839203063400739264727849647361548591851772599148020361296440594275448174271193477669068613934919478024111645267026421833675671014031711147985344225701466738983381095754294878854811118453750245077940341145599450863927362060670088587371141329706197781492378031992032099789126956020590681590549712264782316767022172544777099303531514705848209579269561765101630947302367168429226064909057084659183418962637463866355979115263920759129794555168032944217085075860057786369216399342676107124992698099707679091327914619228503822062967463431519567511333117445563352786511496276089774983685151505857846270860457733766391861836330002163894160163436260334031555038103552729706250298302623224174349409383893587333747407213563703353486598459414960851487775125022853925951797809805254566489220020639339080453648053669757740473730850358977359394662599754830455642846490086363048094107802766477861367372297238856728560389873624227801674577823831586744759018659408155160905486064889822122192656782151775056286388516078690520776703011403161764220220373531435329765547864967864709243332400488254687288350238078936661620978809851270442734766775302247839515856104832237327174380720899793931519176689541283057606303196120300066267564555679068971369000586077873059017642908210785956539172570392095445952251172228212720676998915478674706256339803915589161006328230266343061569093517379844901715047925857247373126787518360143435703929755675262057025830047642837554954651557849862217085211998435848913629772920140117667274072199566514563803483248332967396673253082159751725188619810592527077530399563033339580164468544641238666976925603120054758613295475338840119260180877000298157817667388575532049371991329583996795383803273685397409536154978504800431792817430169140067101499340033137055724185115149336979326681486176150688088751793750208770576837860285468745312233115233879617474125083291825971338475834634229855038780089571843723473426714117586805984761398092948841534580563836285375891865570146560339405966649668016816381197534937718961946107176986831430730746770970042152289557832722325375443740027204867736985447705362310285170934700360234619433084261577424169012632772414391366463616010091563392926427298266237781275726616949347681610119645178634812867702586266557865301493728293405273022294938679390581294684105199899748530590910548407425067953836080055504175826472910202459876493258940402100357972473029893266700781376151396614830686080176919727018467090994543276433963542073768540920426869550899269886233751312294986765275364766102619592237786379733338245403429897054051095115190275780465169074542035609580142614288848217012743750263587108345508226761801986512757602206875586436682979440430619389876088641058246096029680944730565342488422643166254743306795982445435389750974723524983330443541298087198413779998294131086069344359901926800804072987261042457984967531605506834935516246692979968833086935719646747107256361501347419053329596716286658285212553489246705189765047763900960825671081293574695114875399506515789217208099845366459654911267425003224606854439120882182969833057886412493948832023234553377517495675669016401637057068904563102286446335876128635314662442495452252497780141329121302366434377705144135828022539337178707945730558456817193309292707592511211994023599222631990500108891678112532986605670377541184324555263552655679269702123237923108248636816797735956164424145698113373747905462166281659403926959550483971301413035012453854099985555662927994706743888937637748450637348242185621003109504263559538109635495744939658338425663404049384671045790051167914898395434884825487686334751545772056338746460332417347977123269160877274391138266362101205750549370802449954288840310269157145327738910948603773596317396902683375522393974244384614993544844442150406842762701532682371797721198622646712182337488492695315090780213015752023223980455920213832818301887343144981746623777285579823490717379621983517320249375032833627156330486796884501461593954788847236564295141277150140337766775338713687905549098810600875804377314580375062957157746105516095760125493566736187422460944917543650606233117030938508520454864169083631510173812098719417281581029352456042925354910665875344998226909501108609472417341462933843480345982056913259576204527837697636552452493985920777953171315105244220122026091837047025344362312993460583427748173690756043885428467027425335319033412590536060139622430392542234712750273577696021226383577478057584958046027651564189700378754915174570195119341914083564892826043711512474741339826771387939386495074796990965208823161316102962097189341766241521125604601600623007407130429271744632377451557927330403682025038555025551388727253912006101281145687678134807988017416200753374592113000434026208204164872429316263958105521850674785070215698529877467985499247706427873324048129481056390336793428276902488469487181393059071322269740956139106478432072535646266426802785683406686303151895119798928658493249939357035187811648788572977255938634424071551871279929394369819669251396676239888863118119610825823899670802808153638286412786486824570195754920733576184817204262855263487406310937874797883211440905732843353133929780568297328285107034230308729959677474013914952735146504388222119367570382993110473667133334369689816036884870764245164022038641298313478059616042849392374847965828468949328477909929355244060948755270537855237630986498728320211679287378953475020836335058396586543319625549674543494463626890992856113005589384854715001699008265909447581600828143283197063589543603811423944301589638397154084174732744829997804267464487781598317777989019786744975642048347880351406639643512507013492589962843940889063846908723597378331050176931671460742175618453667893013317743148124493147307620900080711066557887180162399742835327797067768369194515828394499069639299244284356230486308108497253751548072745936780757695919302742698509677536848675968019681719548848845718271041693983004890118626340198433583630586959841583713029704406915053886996441675210220473467603530083173943898629853714774405080754200233301317871404063433613912295870222268585459221444471655714971513798503578499254912037625582419875120827614987459120929784740288837121544901900616912730196822231596152405772573246141476052200225337626689050476052878632323869236008785487951911997787186805485536982039107539957685326936476105359946509418567705088437534115514205875299218403980202850537959604540006765858798464973375655723169826614659185662251043630122599580374007467406707523753672759006152900177370236597687647444575067378905862286454143193282599224576183274916476353273526320328346450427083395395131184180751998305976874769300025241586143998779413148186222122328441006456636913304721304892992085987486330001705816036056008223904000653027018200974228904262074966608807584031169875769727295028376067912411524278440957527828970557122623652654263041291518863425968537869778652719530504154623961900516307697124689343032361823029448777419040622606536316316240993043601639233250647254393650825785325677802202931688256818470742289735291447184749251058934073356604937332975849416046552293065256484537503482352092363660812639919090899521649180551778105745083978580801443198583545044142038108976553874649409499448523555324150271721701773041851436857360715738676457600242738340270084081440741201136259242177956600490321470627566248458590683713298758189305698232219984244241021712363997143134850225653986022560353119817030293959399432076731153505946513667151670447781252844764796394184994879735544598449149874446662873359648859622789134775840304599588806420814747297216224588395961063818506867064176547790211247208414228144027703558928100169967604927611701486636152595170766671405515364357265859732798028260254084842272277177637930434421990677790688680003289825262436296034528776702658831285889102983463856525534981690566878480570131489140409938056847833517294672208711250524437178061157306533286472337246882940998963220726936176697540967283572977180624229441616415261071304041246713796623805890778559588198663811276868545730435037171916004104971207459437204136021097197848687478272317549864526530412553267953904016622315011253595767655861308434897514681044806443764200599521382063143944526025754100777653196864445802087473467465495838619120293286400202230334696398115442887146988343567957331462743151118309703665275101776613867652242557216597582104328719363145867018783304062554078576126885396913056874536670503888952464285801846347275867164186390682072161196932133973462334551139849227190992096258973786105541925036867801517874174735240364268452845653175769364611473861816683263123861920955213816391326849357418297977072024561365572155954621909822946266640383724543821387692499599680035600629400742959092572299366578195929864581483542568940549243796418266421492264235287993207207876385277538001158459043340406032014582529341887686468262477310615940722962383890044165600840073521857585904356289248137789756714145111050918874645337686510545448062438504954952624262225520144043559718627167803240194140878055302694407033817171854291100334609648039338028162182359116050075312818841697181224740611662178761619060091465414954064707200889620727116641253906269199910139989837435941745864384016152053967754590343348284359491943930917735220693211607813428690237869732586743082406464005477584679815183409187075934995432676684554228516438316878718619491121718885080181402820347908487015621865396343874507513578105988922270647037171835118742169832794607960247516746593202811242126714074730834173463910201425731706275433517883447176135505519758228173023721817593604519995101945659050861308508280471793752559462937567188367749311667748180769036088104823345190234633389031216978801500005650372173551213518179778057393915544199406707226238279978009009988338073973913359916002762672077052917703677419513536597411288788179242722027800717028141132284986560360116672202083060308248483600825063954137764353042718284763410938928535609989078838003917407118859783634461088210693391232215412638078656988761537849079161581462208477664489646579470784700918856680967445281331442795757730640682218233021338538833818646374636170890659668724510257529733521722999050688107275176668614819026661101174409251141438712185354791502387194420141710347602150218753246602041532778514465637081783245334342779550538579195036751743753301692148824067556631223678673993703921000252208098476872246097009409423839655889567919368502766419959251474389487122315437037651223782490045353973134243012962942121717069963957652725133133684462213349763310528872499846489626971075777228700477063796280848732140447375545243898065342247003286650020505690464147613021447621570474176679046524216767984340087526394001811069918055576478582763067365582488186638940435423930410156214946203107603956292482560274345091341765623512999970764564456804329457949305434322350971484419141146553967378949663108554670686734820453796846954408446846635412301440775847295795657794699011514571367712831624518404282521570697995336918314334853057107316708114358201807138762558733983171785346714049893465060391329247487598410711904111066725001506233372306202392205292096952820876184384320737000120021191594846007510839339684033895747609350464821510891852052988966387593677176943216112793398115314847123836692043179351052823073835766022964555362778843944955765621265066314959068672562930554418704384676192133721130277407947588899219214676654598835445657437028923507069063527283577665704180137139870530050808595707950511197583768119776713295714441839216379500021430857460551828074822732710208805288482971011426144460089605576989713661064280033348073156608735716956397862311951742565472762136970305035733218480972966177172432181910430635109591696641666855066848412296348087667573447367292411241991071735314713603584740015729088172336406321031753020363893100835058289837657955210886392154148304524962249861906102048152678872729118899210366033343995590584722474496645473696217788547968864231002234319541799143627808536221361294302521054580731674709272170215478956095804131627570360628979190631897102718577487025160973414506674580080472572847052392865571739695830475739015712084518578507292358975462109257257329073601911235611909075842124471293893464228498475104021898328849164557632337309970067230308209501721568806354135950896188734620767217395918235722029954268155748028488006068338995742680800266202442135868295674926472076426140447289440533792978000644350014380064133344729416200278801518755422811485023452028987806479477470489718364462268986934387931247182172098650630624659096765765313131385849263835475137831289621288666687151161639554044937326233681612238347668266019537026658127608821716755898033755044121805430305313606184205917871690696159894331802347791440534191455038055662315793099217612456650258893817468813457456220219827854270792507862209723147178164289055317758367386372153742378930045510291785269202808938896234344483638041635380847196074546126645767818936405108243664081339644485051813681892886126043651734638719817042660703224931982366459338188428287306961199877636555596739187509548944600756504366068073110464777171238915901747859099047185019002606521111430372929649054379410701556163545883799615045796569851757220858547264331195821122289898660040556734188932346854112839021237068162022197490187489619677796986905159478011903610916659562986863378895962203447685475488616843425233123963557360212783816500372006995980434962590050101500411506553922906657428026171111235661004497959881952113876435737446845949561216343095109654726778302160678771380893909134714095806836066288533043615749892699789782203016544271960457938109545135935289774292453188387269850611786354435690707083729127641210603918008422915811350814692967596657071468687158676691657621448364752823196575321362124935606791608693108813433677341676691639201715398405415277411393777178313156164262024232263486861514312235622609938080309288391579447921422837053248578528521979932024893458592203771474618777025287882551123501791003575367566183191607469914519925873967600754377231992153046072270866317303168065600173510197747307310048117427976909571666335143454819570323175895518986093171373670387364749683989557083530083368800202605514614099483602536168066593096934395052003890910007421225328714473684330982373003058026946001127237982683588835846382430270409851806109715510323369783703239975525343816391245880153498111435455236074873437135825499995655291673662013357364461369807958873234903984754327579730507565993343801628900155180389974855614634523355427584290603940235987465774332894975003324464050519134435312942835759940021207124585085838293321414628301878556710531598945523467060190779609736354785381882679762288007515140417131852886200934150158079940533036609371170658187981967460790632073783707290622434072477182003228148268162666332290120103257518051363421125872981425688021667829616255786574714761631157161882768393652469525282447002658206639472940578816578491209467235051768005121430944616778115655039302011184939038668780160866933996413667970762622576430699931179680557849768807368852701192131730814304189382757447379537272680149556887915518906350034086622506600469046559771593938169552237757457767714971067634836283937062863597153144999068679025101512345718587315426978301872151518100270092476438477578228561510300588663562133693996639679888277954640056465511777634072522895420069564931976430197520095069576782898416267321428003224082846934499491797245176214256720008663132674783685506749693696473347460897300990013484938948577068030791367596352819024787718596608925706884460551318863016185557484379175481787710176363204985732428101865029281658367305080634865562420634014294108717021572906367044388638643164224669918885107758224037032789936100131509498714003402584325173797109876268878185670686364660086600805888156075226867706901736318888611372379387009700267856146458047399506687228629205441596134286251503753169192074258629830512784400493485066928990726540362824831090979245083532329795946701374000173572985268828778655144626114920741974383224519790791149581622022746579389579349030081755875942855417133172944907797256625305121871119171226505878028408572897560607451079987005587012660524053519896627764702494265716432920728347869678417992901985331544035147246188758729991705663429435541499376138168944283286025251002656127826424073986898194776418811242888436811134434243759719283368558081284922529263489730067967254247173502522542982459965980903127498031874941345521856878757796110678615870940398546728334690894786144411446427933422181840403630996181647749949848475957811320531132547616193344481169017975084516019008687720336404805062278761827158355588166281686957110591954102384560079014241879358609883556928241679990723947122626960040578841449911270882947282600711727605175080764810963858934389186302207082858672522524800674547175650809222318138745923935711081408974805500848324223600464972610868902984778709100354702531492290725870374912666156820715289457884017030886635095005784198279751202316536151225386803043528196013918812163964108844554898450476493387453111825297497539843350031234290683699701482795738068037460272532523261449370405091786873785324671816628382125765094201237316013233497580782748126490503665574335254934161865889764275175695212855123043661039329288192623839523747559046548445823126458287901408066957282597667560620415119958594191084539896165865945711681844648446119478668661407129855503892625126891068211679236443123146357564996904754220157779986728221667400163783557114147185263964906696390608157617537354423281731249129316221919353739329240189864677159943366918349584778347817795696018903530867437688894537304782157229880995153790826184206561410345394692897845115388844846767365027678178050463185746934337861052033175757908344659536878267862749784515916211496839602697305466118384180746944639453647554814983929769240403689164135569998053097998842590585126462463413210232358697002721214757520818902007570703949132745274972023112998601119027523338331554736869076635612200535042282430138333325921219470344996124137976023685862642399737317676277409576706124894068983036982232506494864633243957362086060355804128746585658437572862411613705682461247469782778837094384578740169666354559057164856816256582041272642773015321685176217100396755905419061714854546167733166572073614792768650779599994878912687374487994117419514776827029134990435907602951505310402291139873179136123650454051137748806934671026576293438102814552478285745005483625077674090497013613673197545002473742980439768252181872801397796915013700039907106308194512102055595375681004946789383627517473164779006889594233908366216559624767070597815086202667964489793982660180771148813680156729560431360472551042684740936437819340086257922207017283597588609721833849263102729470819429775079933319543581428556410446327242646270169128395979826290132588165038147413176347259844868381078205063695132759641787989004532119521036170220731486719075521623675762241012733696925079270899477289673134501134552286854438148464536824595049722729223955883725035561885867818077100336456894518645004329345171547374656189802800627783806483887332021374787636766475776356890585537896156580332669002740801531333122851614787133999822801785413065727873894381173861108089310277093837803310751254160840786843611115934471773941062000462222600218552413184182077158423804287470127774551821832756049651608938866692589374123424160973312503362492136100077055664708762866579946855726092026205037263921157500095456575621825317716248399073306655932985508720274415039244888410509439684463578206379186846539899174841955926705381339811186463357693990637525033788933404698105588992799199041136151567026732420789369754954850563109988672381924998683233097581726847923506750800524323162207459014493886913019137680234690340273150467264507644100852453154568184519401027689985567322049063149406266868453436251962972977598070172182915226797711576055568417460643850947952317412971769850383495692299582603928330374370243480927922583830573746680800564703074238004503600107237105769198192138103033610056352143480270758805654853552310955956511689131939666817504911356231802245459489243322683409685865139959599550725907216759653025191885642614708643990855258607540582974953483393546016216921274226269061162905867571914485065727171892999802265141656198216126347350892143437628986723314918080204601609930424499047300235908935021453361046930889874490319539500201672424330275306515967081588381174761802635333060433669626742872000996914037666914717282371622824589603290476089333517285305565130273712756800406641407670016013530298666138480297165970231501565892817221366004191744448679284800846279254379742945719247058942258405338632726614783845112579722105089659379641980490974981821240035193245409333048028095751626817279869896714208208580235605407237742463193567927386474675759928285100675232160819224703649342387329150601048778226280542728519558917231622287472644001895303478436207936880078296245321706673830882074336784321096247711193228478263603459031441264937129597531340874622737437000465880171404245739732780063713949927733699363347195898588489905725746483479931080598201516734474223754235448015619344082481835672640716663683932806446322465155654627726054991218246905930324148568707787476607759143117073242584894094949488948974814515650609171287682696332654242310170671899979656368598299346896767814287540235145597967485823627393851469028666314889772120997914704215312312144007707884651169263427590776751369802368938847009134145828906204183361105785820081577442831762273116631887680956498436105146820325054919926767724328445067003176726533867436483197136329190793496237638612843224926299855222188713469686986487414922197293944717479669053721666955699430076841568403905075588969417346289444404295222413481352699030405653964389366202530871461504567157014492703204062352470676587245117004394544215244077725830253272786606696352531296095787453434527701256970570282767690852165303688653231776560304916105750274164226504559728477103727565937999801726232117529883607288129339715677064852311845825112315331947204060649033912630460758164320329264783583185652437481912259774530752960170355220868834156098235825478181049014352647134196060557046512393860617939267258065201787605741316665083926849264914605257670913259363934081789736565183510938311098489649321652089901949701414083179803749364801237210792178846925113838019687662558529025173745866449379370963312586564607122901643698531243297503963491563913799372441768652275188029908907734251651783020984622999665101632770352439514674886433608853185279642760608934613883832943671498803037454130525923485175716238268083845000121319706561544846283646347569520968791763113708334566508725999419237132700377678963767987042939443340005428579228293612059930341658039459886314928132909052446033993147231953914871007920814596979196643296006771830515648270140604238437781112887475407489746757761518642348516468771722977580828088365532147859528913052139406515208702784799804013848869314302982406916008440462234850486024095053742952732524379599860240687150403444878832849349129566489309238029490373371043042725131973832483264478273853486709576902614220431846080194666178612172300176797754870649865770150314119020485813810556575871029273853017022421844215934291006464910867309792289223368828802531055210735213878426023889457240542527817662632681531699602016261230427633439028223887672237082792808320804718753513776691779613175935435802355599053601591662650689732183321289401572926266085338587584743551806581863576686223962127239520734449023394177492574922594226323286613134455073549905751935983529861930800756037516524113110737911815840555051100045752527197988909312490479514621543125975521901813952974311107637827974358941201182404704078768839576470154392208806568889498782574248233583347714350513172005159356158246265179998143858688643699232825172034654353406066564706542890252258538747608386844059948974918455825493834589028573439303489715906419309795446184407863987853214134121671243957043632656023862551930285343804621479406036012302832084774141535536212177684281283848094553760187414963972549127051879769687885475919642656470252209621889744061444772131562960901618983309296817049945799006547373760751584717635317525519016532386185920852920625329574276868907198209161227176005421689101618382047256837912750217060904360015756954968848383263854482973062743703163316024848057086115148919473599580421574444165171956688313574074863335236426823654157839310407283657180429974047321680242196753053860959072601051426836463050229306481614260410166415200822026896681695222038344511453423277457904501231937068496756501361555255056346318321268504792498713269301986434162250027206398164179329921801177497977478252294472483968379175938802197810111553517586973380259459749757659987428082048724645356415631467497602863882350277438724070359658798159730464445495976109194694316591862834278190960479593998946793795375574231802146285362557131217451884631858653302236193150101503602791001146951206072110072877548141805382138818927520611335983003899363565659018566134036638271154788440830236679324597675756157530739345724199101489209635312086831847604226573176760159955435969812550397772445161465961617641032625461822192550926062555782795459288456931552851181756254568460891713502595153816106445675674742235922011851138091555832501029065003889476189316980738711403091908126949086146316742112106139064384261584392700613526451256561310846268435277877547736748043639595748683213659766047811463442058017271125294017153494757025367494164931714082319776080657004907206381844144879311639927082445025532323262015229336012364778004097357561818481722495138614460527626239756724847751343208145024044884544457310351644707365825165122842653747449282661030403094467772986093748055576990170880701160125620400969726070138544038577798667694066744002125592574234769666881946854645815679475480904002978316401555995540451150421998126942033269893177715922931240361555431136048280051825684063394321619362666444209291152943915929177945217093648859774056059984395274550365740601135810873619908359693577276284601334048648741391943718877232438769392824597473414199105568568489813875091456045403761272775810746028135919193598066174531915998322051718860616293847896009665019139362305258717365684012620834018987591125417483005314774841393375790362212606340027463024024117211625932357043134142937275134360829696040410464979420941603240341500136658811111575101361919055888757290214433768885981626481930765931810919625917343349002324180671656029410712533039195572098633378241441492357091205882051509528798722947742454962271111975287494763260010075405996109631021595514169430952559130844185937521399927240589065047343122911130858697459636526970383018034299076670603864416583896853079321521156326916146234901038742997396782459118876467413265971044529021046278812743873625870298732856022082240335106457275250608313992850920524087478925355534606590386700868866206681988586130068924227084874155409447250419668810320970877911861021237380748049307262662457260930959518012029281908504139466982279190923479742325476002926777460273644172310716339522299225370401105337372692603692316757860146668471184048889292006690547107265261545597635870039315084335231572797898085863757852460880788058875095497412799334659934758302971093484375484723453389527287600784268415757414434822396627407446523999467647588484267125135734666537922031691837942517200658180884431902983221859208611121009335159162692702442728033040772321603907636807608199975585697289333533454350568284311681923855862743763763907755965428630589135991461247194567220490455977590127448266401365924438876046081185635863899012864902406715298807118486254569467942423913387684980419548281703599038431640741854630543761652946621963037209648600555952704296965259926656161456546634811813090757920216324613754193670343305370040823850243905060236036698201888808819681560669598096396342828452097772497453269161643890758138956152407549501424365653473601826091692958368701403975959393656753230480987071286174479179832038426484111528207080792182854222537074543946970861772237369172642810101712977970797699597796909213102754691423447488302475890842116846538806731374066574356538137423993982810590194643835329831965050176188997661971755222429688786483888970577419032797812248216746532759863608414759280982434576628632836257438146031595263582217269074738104893824523248612536433058424703296407227655310282020001544610499447850396599956478362173265695636664171657289682066448201988649194302639379839785888575850256635985656932531879395905190204874125691568810115275614196730443006597572162743046320848131665601426292291771336179036531543350537884506511240408820876590028974892646638918876006763317977529728661090006521210882591490141024732011244894129928203144168703502345088249916947947348759566893138730802020131927209519880523824638818609821831256527560059091086406288590954392942797624384445810706790841431711499673257304300242717732853962859412522925984896246734265999485504339315683061002575868611678372313010586604507940819469574842049799411421614703047634781025009213872281435721493710363103890644191575468827926020815345578683289674185372154390531988158785760099991241772379829423665053519178694027071657600256231048142191965152753696591821861664222055362246526541217042764368414688091098018952301274063287059142987945206147373628337767973434644180818248653489887885753251717413966655851740275059775788188290434961853803638882607142386830846277562042120023898752233349902351554910371565517259601877556191551307965684786325293808336177580603037243182633674758679603244484548755743010816166804714019412850848284099357316441437908131723388667075947087278970094459174198277976642231834158583932332212805067726034834093544809861468254455471347377394869364992207844188982757260274605971446698923186001155253101986337341336146205980755988239118676069996896317016821217891662808513274840899394912705867537800691655114046074035360229425716473012701240934269790926226984973115158075543362727330486941911542742828300212372026238379624678425476471859854513051469068671500882120011744639894161122514177684479252159744847603372708084990908338266449805966929873590194955708441336126549359357484922223185867802827974882378788057505044646118709128569842385505799973215703455580145135335923109015070888750719447260942074404934051840404554535517458536114919199002375674436799956493492740249067089303649056108482194140404517951621217941313434131451529660963181323902935977218005471896653184915763999486567308337422095822576788526701595539877908325163957336876279387326192823212169658192918255462602905251355979581671343943236101228069516115897146072059845745809980847378753138171515427382065495610813231202374064623800934095387198159283631429019876684350199141184559576566675262803609986228047469996399464749602189593414144739396612469939560567636196756021209750474577672496145339192825057189756458968588690566723534085591957546735943247141689795118750542815570927870720983902150496505095001063447832131809263582199008309703050583252615262737989337560521776440781717495431985499937355434644603869547511533277049360607868295091529871979919540163974674839449079867826231805267565620453351664693591953852219266317483600133896221923416830327625073821512490983938726844023133566589101574506488364986106112010695141645444632140091199738350559871130715518503380872562530522369719395501986594082720944894730616690362813295199896255715634969898870544261878834284469845020238921109670893163110771372585368951763519562937025104292640981903662894972420225250707435937889681445014778710637108945290178302894650335887004191995856246268023082789440372708724533634645024183313140969880018705343118566970137271481605297823703393966874474924748326715940461477127536150029049177696579746407197871823215759154317346959334611745093210783985675666495905678746899218649673292751576271608214327504794290636610540860792719444914599676849189533463968962079513484448089485890318811987625063605502704772368174132535887383755467591657170599978695449465889954596906956648989188706251310257127806304396356762445642117012044067591870004303832390240899406943915513618511045734514315638340651868422905061452736598199545893589200805367261935071693587380155815999698986706908678037660184027813771743240367647125040486264189913892457608556491800993671795506681919064355322231028905732680504549302182522368530194241147099045471100863510454884246276275127925240726190620179739525146121474629426095576255251630420906880570046791141850609540175009559147017652725704004933424328681467681033037827231338010148362139958438914493578811832670683861377992839053772829018594659524719269507864013100424253929806427787012766597120412239786363212872738529178115560908557460130131913650371066154976661656376549381260398503249736711346242936180069749659780360247696165295668134633090168640468758617240252876877820772481084551219239801106269507841036664111302718140001943078552009031198224763239119083974506912215563821607025199656137502075577912736799707307626273210052492419355679435964439537801013575912771571662157427832174005653309817828521198680548591868431358000873186987147319258036691893061200607182811984813658921201349811592188625608440263134462221023046195930146628776319432197338948617599813046200793917548745471174696800249031800396007751552864441502110792303493762716501129826626333888389810349083137024924744705982109106802927759510133280390847969098629524360367394744455823347444686471303430036242269172539042466279875873622400877785511839764332156598098283229581753237786133433611152211295195425436303909269367040880615951521787606039875884229572555761619039687443476028275231022954872071514971609313904157538559574592348804150513840591881872350901735963575022081931929668281837385593565109370633350974848256253184571924096936617760648144994231592969251671825776325295637084833462286310661868615918759650186433297628856989155654485724595732058365807227299854366466244709228067597507628078614087319943403683456354693168799571600474548249022100773340805710343007634868739854017936776683839621024266532459454654215666869103211228205716723772444301024340549739292104530348336995028600511543787668972983733728995119975871402727902707970084197734952551681651678572172441195883591659067074825171074998074588410816284400460499337334802404164505955138633647841558216027195454851196751072439004505881058073579451208128488918065732111699661520411880328649413494886631635707462329673096001998437862493645305572072310820227115832300740484309772218123824265689488613120488216911980448588385328257101008829222604491360452117791200523390452449889035126205897551507096349274721983927657882971797352625969611647488025549588407504018268164274879712216805167558530936160857575076807243317897428042661085320942291808272034305328838207550666593379223923694589519144322017581082976270606454445809366321197107773193018418319890665238897732790824560987005163795130558737929277062700151631600471848019414485617470019788328916310610516709021078892576032244949845942888236553390441280506324842343846473038833739727366174801283908411083958317008456180231164738413866086690783376834466590215377712714399924090558454891537733971631538826548600372078423878658196112377815282554943597823764046347690461460467641203822918461789599157164423814560335585234973558091208822323441953956951456275294369075765524106230721721278569527405282822125147618855944876786092422241390929524760160410869207589319253375318196548853659743210730219299060203133162473927375321667441660925511630660507429416943895647186836678584934065951079857223448822780329070637668101302829910188232760701280698889215429643312792872905395604136810801484973493302481753312689029190442313921306582258360198401967863696168940486095772458788335002054179597777367502141839545365771171282036393113092002431686665795591521339840281718118612465161864201567149883433951235056953882767750254150384837970041112238521854053417513060113441137396079804206013772939367006559505974478203023054528465331827322791062340082874372451498252026483052063496453136648196689830962889330700903852643732440476194929320845039590006426418549365169741969107081955756307598887538108175515057057084771084348298317364720653068836510521309946689556885656749360946633954085191918054617771426648644417433821222615619460603405785066940750710985997555405963525684747907775372971851299678526272340500415614699187907372432980648571646107226335310248387962458720197145456934896080746729541296972380360615001896742904650475256359053359903223082627231123450569587798813801663451876357792968145801374350318053632812731077736101865985315265994145910003982258894173796834623230424577388838588463297647973084525486343818907642061647388475643117744282671606710863785861264099445687380888215159594221819460286711174956273893663092493542277859663967183873433618616589922770228567060962223500109341929244901644506403394856301810525543052799085987628935445225542017702026142079748675007237260828680436197223209424796188349868406931580750872513414638157662021901653350365976824267358706529194274010665411737105421480412152354936772710935369121975217471108142372427223855615144094844678047153307412585964304832090568033017462953869726213061570849212072729383619960541841835677007473591686012137214353880336114736097236265948398680636430709236502158228513075771928465436721200001174953763282997141821094134578386696195908843049723646916216019379856356452812614713053598920926635376987632356557107159253889053921171093271668818874665470195463583170993962792622610091222866606022823771664080698636164341297122183371709248132422256659941883241827726839086581732602998643682422848451091070540449867128112808340370927934699620377185369541717281388510378952899961169070138487845238856072311537647036279417121003869334867679901067613619334062663512930772367941656096043695123767654125712811410094503530641196969447725240066048780671800024898973919697686231358535748008864563376263263935915987877086759857396584451847409741914143450724586055051368773594162672745620135271477375650576476785502654639243831902524923137716275290137916483678670413603321652358912978196801428839310447263126399716842922660083319629224927228465426886983276492660188981070942585738542149709090279728341546952370438098045061897818171549817660858702610165618104390365880037567989011854109851815690727628829699986288769884282228550410108888052164657829117923664125720181242753311742575657779609927901495729645340044670039250901153022861834852913605705453679334496977920005383360472997298307715544409784754996963570649934376830010421380058253721690367401272461714691760938291325278630248261248239643551309832323962382538332051549856624036093063106259083741096209074315952511308124139072506230277564693121874506347696997750869676265410007378324144335577699510333859951881605136490942408966983409510140909042033994268732717963573127009835559430571800152170409857677496410218273443654977066586555254182399441978797292353019834080460657172739952157394420076088646186534361660394882268587229991411612928176291129577825994539130558102320586570347178492686437162921785643165768313242070064507653456256458657989763599873064739546222334127476118364503374051382989488746238638994999903872955790225850001308889526722005349510354584619299672755955775900556729862130028768222679705333596882833276345500270568811115274140589712353874600169225483927295179755934481785297443559268250494108817046455388935477593856774677759022393140721651549864576592170312042031130986370606294350770137851089989229191137508048240641483320835906747769488593330559237601558222889027873088094646164151730296472691181646620112568048224557475504378379958283094739608600149522189923265644251916889851918442051858188800558801415736582959112558563806364241079113485490181997106884258391302632515148768729944705913717891534745781878678991908618953375560064236069122311236423808023923945436519698183527341957939094601060982972874766880050303057727176459430807281599272668558954560264428815447990422577058819357919671986963293772033296702796830661433251080808006083562746758507476494042002876934603679124684483644225784173481322524720440291624613806778019277793908039169724523109152018840712286291622047838795400678371248610119089198881307586935990115584495812056343182391820305772334313419085843269643423580700674715112066273153075931373077941438922741323820063002173614297340973804377409810027574211774851036273019459825233410010069115517483818362724604580654291510935754246683465551355130417728521255872449220515310210740711237576104039770799252165787273172578488352224568460961088221711951368021555514446747461199398597650825774136349546297728199425649181503644503464961826965243002851086435971792481200691110952501084967849340577452067486833784526949616436473270938865534000177691764957349753416088984599026598318392129968002944294950390598609836354605808653314855575777922995052150514977723009950775203070386900811598314800913179248332884619042285222011208138971371284962365014945997156633027146322622142120450348581067972332125708334705564658379161253546620281430040379881449818090738631657446567734407762889636466871878161532317662372568129886741700716865197352203836721074149203947881042825699355839682184916194207651958734122036936434158622886912676717945511771090779887149673651466148904199648879541175819451354339686421589097509530814764121206547263849550254775671546569202023548899682467714279424249198443830713185397922764594217500652126511997716026368425581287650538005538147795676417940151230916308140190620144429667067499433860555238447115830227613588267563473478837581066652442978543763492190519332715288153783378316451281739691245048244295838842090795459222021965421864463401627159138336746159453073729850433516085942678343517359818407385783402460569740244352485647653166924510380137040230642481860576305274728978432374810568860830104027587905928679390432869100376823396286076097634484346470754154811403539391261642386454196890003746995785879237816065342724988854026247977834424212169782412076874615658046135259580072963689791484724168041601293114549586602381013937405775431840569518297359962728565760128618398119232334485701923723244809499118971848049831496980042544609455126175531946836890361714498783465161149741923282375917749466769279439527943908233248761954242277458617726244825876337873625859999145760754869125900087295410343832940737891375654160327643736262975863243287984973956054068109406115764963058020012512373623212658032297378766187096779552074445481438850042398995402070791141830776299301691207624158092644000891770183114756198653041412106491903062695561434613913430693276432662204173281412416244368447711991437850255080381650855494284351498733097611977066677281488034537544635472243635850548947036721338301969102815257210054835778204539953792672572102734192090169669536547218901867593724244842894681525626646013229730671597762327208868155301806405489228267817524386357281250573457749184415532775116263921606465299413925456861922997809912090286309320156283552782658353719133400140441834864309450556419671310968160285520561494366889617508949178641764044564984862319308032724701428850335720852853701201972533919314835558167958841976960484379872017901896216476218392434249851438525641121183985985906036593292243848459275634402473603837319903570498012559462034887878377536906613802612482084086038336986953164854135694328624542239901443411648250037070840052796719819513889317484773123208853545162985569380799050857848898934659307795322300474610288790264408414065953438577604430933676387275254357609871311144791297200100163302581319312156259703312083492424418389613899671371773481797245089866278304537611927920327892436523870810929303218353296707051053274665094378241070259822819798574039147245227208481601818632224801369572018474155616902769199359827781605610600703319223329316194877066215009840383332582367345739553024134664530843050658122548201227415843476502460466198090036064525659355840244920071414061969972382728491993614593733145682453586894278810365555871916818100425469769006877528062362643818282882321433359809793792364776830288653037700816769226161553594502884693652291564928411735988522695644987506169089142037437068850558732755519863604360930237264635156016606383314356039938779460495323209623731564144580275263992246166302387833737667674536728180054083341786412453642975943986311342095436141458628953132674105658388661282487247305776255468963571133173082684209905403576540368359859959865692629563969748374930162531787135469959162831892638883088289223214565021144742972268663166960303225013390900211291870191648909795137516152938783444277201261884753436009645395853973819843132415847205988774967610801099064162895811861389912467269637696220262791029860337760879069224031038088356362403619634021863433166793524222170706860308146544626642626959852934779912766222316850469727515713293240662221978322877521367331122208242132009472255292966351462197394987723267852523116654133966181069686010027165128402770859307726601521328165836975945043909013548906320053263634848545955399526576198274796066872629355926840585125120059236603344468263912314770006870570461379858574176280172195676597239907101103800055525718733187662256854396097957027625947628854670438455948148082724915992032527838382061732351931010658835814793817838116151085946826102393145225308242878639383277586546914818565533323752117848233242628062070550126515756791516213813768172239480966209320630455935237293019877087164029324086306529136062852728400926180029110726956420905425271371305532013349010324354016301283296186161893189445975963758656269592414407043682040087754368913030129180269691423768900946956285363286462849444105947397658758732793701550146219301773030078557842063043094829903006396067919947376754929278444541937237761723441037007642752160903825133433656542502271491747511528228238391123881659243811699879978626112246213995819991556357785704029052139239361796471249308358964027757532541999606946122361140981876925862854304000694225861818639004471615749424304288767635575863041664197898991213615653476243904336645378017758776285540899457770158978289566793462220281067119116266437459105075039192489589429003280213737760683782389101021806301367682401391197025478246590465455875979545911560674709140931053927668961434981446123710523422256761352107268629832398743695014162849848083553738188318971258682301668933300866329508076456360185335193142515781690926643994806619724074854613992560988265699024606673184999724028882480990737168333214546400717432701751842580376384857522771523163694332589250095837254437249196450834107868304554117244675980444120608871810519702587405762782357679707694264602166819259900152087207665611090007770972704154821644054373007468794842446999057963230564802212113011059955735918661200731900409244999718374166800586212818461748157079527669334050913695383765396461169335561743317451649549047482605783445750850882897370024436664987159139331758310693852633124195004384822603499674214740256006113327044866759828825654806686216860455616314410803570683621214832254472980895712155618910620254137652701155992866434607479707606564952824700008023251610560868750419292074443309044065792749829537991798863907966080478762320781581541172319924365327351758367359759349709074725078483595821025524789614659745755884708108120284438119888378122284848315119037395332860326735723844266060671083624520001613743078807111874685244907581428369079252498339323731755337493587726737915962381122645911863722373718087106485241453816810666666090590326286397499506493541817078082102143291900776919483848288415129266932887903314377135642403622326634337537562480685092966367364382450348858123204849301707298649462093892185846877765339878073745877273829885514553252751392001930573397726211488283078237325688625130154997602150436737968098438387671830901607700267017177506613304447801475283572346544340686292423339648567353525856866525637526330278996816888389947854514219587035169115903812453339220414577500444884620364086375614936530357364155633136999487018553590025266934564310495464747736880649829330605259654309067039922274404616620322259000989597503843811993762343747371850249064054760907477597376168412223379918912721926607886040780441065833890510743785689066685700007118692733110297306210429816630915997145924453016391388646045321416647503650220435898339292924222859243255625355085075781903280322983672697509940692839859312202217705882281353555725336984009888850701864078717828788869078051011254541821616116785019205965918478389641569534509213365888247560569137507843859973967303015884900794990579844927830812451257407551894922130014881495655269895361245466242186484316340473161878461083895719906862535954503084804226988087749921305508072179887478377656465091139964025385411650188627615388381307183474671455559952843749535592832476574150643240428730565772877695542895900756994818860582426653897138005725868488830269152224896747669244741357059322292920089582531777504139680901140689959720371428445281878765617982472858636206148264598455828036320259855482029058164789426339757393642889863248214963461896605048754398271753092585154360132489925096095363546605022544887480016112591702201057429368518583537380591048730269520189715670403050816072460383780757116522896052288398311312568036391988448041609781271783337734463929583298660799380993875530629432661133248546597512291809813033605443536120639826815647617079927440641136891199879525630825241197196959912966927835329710261260970296536194316213652760786831118341064859583608247136052289002167358103066041399041865314685257117376693110696533999862426752803360771639837336150317717118177725548901963671080823141985481309960244631480004624946722426083626425101602935329896238154005098524804152728281947592258009036818157636020869478352214279171841603894467710838330505425731062482729128684732419293272492586158720195816665027590310132114603043512877800843043203546420542796192324786919578332532865894703125348578508010208374342506083538495822329007349583468649702719434086762300112539197613700665761108989897717192124718274125990930714399038253309816083872288298898343275041416633488441095959890012069796340200680655798639915679641475274477703506862237120159392751537028479880333795621135151149010709689924527789749564179994699470021169388082545174417439455043522681525140410522414738868454338566702462811665305811416799962371685296024134425379855476031501298591183398576167999240085632491799073557218614272623325425233354058001313424427958184501818737946152128727057772202458430873810416301156536787980980523666063992467297385157791088303178382262814502338929216681153859785847813790416957755436529907974047569548961813140260414571661847130428027559296777524569137240795135762575893167058280872748060475688843162603891776658229970237385241810904023895869490217576183414889037988038887130987406215346646741862337630879920752774725755914477776230484978327401943798884831486381922618530155145288658085242873401859555968032574468914339072347430705007345003986550194449151880844588584540983156193963446285552059734912816961426455867197871597533234339521837993016380250293197714489642979545798269237218827048978760062944956924809207233717299234176176866212818933963116397371338619995299044801985299251268042388731165186581609537249989629729013051195983655798735811928886266274892376648103640473714122936212441188247585321157983100731115154361895349073708447410552149576755014787173812419886839725689772459378163135556312471415285211905256514941537456341856355907908152047443275488469812569303134100361081113777030722195283616590417502976616537594975992248060543231181067376360172208327272243227650265106891397857713644200393150578607276808756260046995977162849260402429936299254177678966205028293620103285601321892895760082034700399938363807572628718932161801615009350885017336588624306939569829990107872338881288845939372385543201910236329203978479658561135233549973975038165592809494801083184374224322092321565534069153270212837432462314076929061491545637182990773498495248496891534412692085859859587724486922803855275755739665890607573958873923732642494613264569364489245017810431572060260333663343279511092197805190127773572915837131394641552645288117351350417181678821358988423141681550460436216086245846013846107410744890363336556350844732120123073068817947564051109826433810583369509841907967229672521021565451038844978653024209765765246670374318713606945146819318969206887275099701553841475151825322524309613301748993353022764655620077100485509636056920640526960064144356592713668491722844558320311736540972320925716582416532284268685290228994305791809055840618281696048566648087190899840987298421201754894312934195661491746570006324062185982852620309706959330445251782373051007954867129316887562108968089564695108552607873951849658186889060707533692302133429807074979035897596679016585368883370341659351888338985639810146596326278043132279105974143813894219571453551431319093578704700077418903484075923115542389088771105324548274301876547482213720113083957850765889562972955585402213222325900757054501332234194583951096013556372598036343703957247826889748854814630336935226820282809826607898784447055496609532057850136771243064941923248782928708903745974630453417839496353025124919384798274784550191312887210880412644163000712044905174273901039123707640240476706853241193822428290781041277432344169554407099015999366610375658042921989437202619925539090422042898203936107150821490615358338701527801307843710232386505027451744189576874883694163103593700522915960789847130603705758731137581152583368178076990860520581254391603085597736786167627175233693204860243710255991331876061464799143958690372877090975083712006904127621502207100560071445747959618000744095698592050914541378469818375832264056301376415973939233764216019094339572256396388841555208608619184137300223522727000425235153249917419606098189535269674774665058805299188910918502769093558898099366259367319009068644277388303604059622923150006055192512800759478353987000539990184808615068420219038700103875717046632016558166124794492268572576495994023573104408929456860979275668937947423863667209365243591549201435351207559547304278839200517864315923466688426462277620368478016093447457297211525548781972983722291641202875381030255564810102419109747259595548642637596747609214360801144323497927334515502220886776171673370406277122704636096415849925631325263777859879142558582928574604389791913741057947536636381710123317119548046092972023446146608587469959843348158451269389048305319211214217594311380597667390708036681517613544498268516977440586414359990519501365578387216399286814617062469615599534725551557041796809268047438693691675015715151907091731838234979897098106762871759298117281844237044511606570870738538223180934536176872412009957035252195491094887762955706915486465134469711322673533118231753844683799972075101093935632685624037852634629837956077566031406176366253714198237575216607735850882052775732548190700287805174169311433148016712790722374487732360852611650759534488401568836886531544442440400203402414159981993167031356474864762299111021659313310122286380145892283783321482039478023011473556149604649847799809130985044169575972130859343971917145058463796251384612396127193876883188433623714533826671326314794432846478757084892935300406204813321846507502395566431685317717230566071655409901221592239163790514794239704125901338056078358961528369850220682417645474651845875043008276621023307447788854746966307688737899975256657791662296358370149575939691253733608057666957579906024125444202103799380470084890688238847069965924207838150340797664692782836050526323930239630536467522546715725394174984991461686814822341350903993640144703731965828108193865264723259561565763684796276547454493575457357937401903960948993368862877561559026879179129034138347039767408583168669548037837289462292067447790914208998028236068608548233732615218455202829619792372902364100861586401340483317102000215752006271828179750505634217474136809021095013524157697425280936342425006407578768375636716027822316878545432830580943273854884165798797789563142402852346100066994538408890525111813322921095787144050001476276568194876822169893567556322676903629574346159266209266287334619061930065475665981132909888748332898130525579173390143539024392364892688741653335977235212404328928466545702128880512744639593060231739845878302746735901426900540668573273597966982644627455982015444808952870016376192331309312235838285118731891842234252743716942492812592564780388366571092218489998465775216287403534230021816593818287363426189180966462215254205450783689906473393096810666576694537231210000918144498578122111840398543975848176261172699423815566724721255838198260766981451878112396498098609526702374514163497478911911777638765688324357377701678811340938060478643086099983474407451499880051399982400131791172425503687724027210399372900903163168711429292438670972168799080485074241967152548209076188597622227817747805291239881503584416173793497679435625615777771820247149935150144495891609682810419589304653015504409518940708655510248226222465518639479292203493970094913604891060512882698241793916037103841305803954348214573415497173541273616902827526402416901107422075860135268250920454521613608307492359949377296491567537811475963375732709144455401780143406611309136373637709698210263697087740148788381168383010906658112198691504535475803534987589397182577503628405899522405763335892002507089510791575866327211813433745982738081660493249108324944569336910931275361988056168749991711003081869331515118039437687266635556555486070765591336962417107186992342573863788091746031767403533841664329717843464022360742790294429970709170340885648534594226832026087209727608047722539945448889458479916473656520960112991951050884151746269605978754117850115015225932756935274996559947622865310205672940987801487600426384325259229496946374120018028182718812448120283450020360649418160360954195722868153294706195757944515527311308341204961862864319349038787224775626936476828972217392470990748099934348908405735954372546837278420348851001034177822233373034419877558156381745227370599900026561090549545303476540287227842313403018139103172464138581345919325648662683991007442114041156754143637656157768065705803338323041102274083736873225126573524069390649544448954777380800872190456557242777303379272202837674983053444390373083729226177160649843773247920993400217023590663016597987888818014089816178088192500987813671298686048752717451839525308020470208926325478362674119682185891123463041024996760016438719185800950779098454411215807789856993439387676217184892860144139610928315321219877356611226567153120206407816484635225849051097535546685661368520870453025608660271070020201132014268626844450250520072175007953304296091375594227977926898387101253329437594954698177310004346110539159212107239998280926164253857922751942039204193028572228160827778422020291096480299557439897175782494010564285837746924851952923646880196497853144113970032478623936446656908104390247132336904194587702198861567854578307619824505269769872287855866142223216903073412226798758155272705736402179925724695682788422880761959244957188663213483886183360963656220330846037467904283007965011904472466153075555088052253247706987156091909162535167676884153503030312349708831824946164246352129319475465584435531707875451163024813918876282378648780792156785234832859520309048472688681921084488043721433436852570390389587124886193054745800452339532012230210729308068592583015951996684530685398094577678595548552682935160806267386543489658353407683125282922816774179494063342769626698998668076513836325136874980463350256543742501048185015846599005021388554691731763754989429739684460552788061131183321128889340452032618268169221026239825743530620812235168223626582990609218844972260420936377593368316521684598812908182840855520540032789694286827504224730136740005735339742324876922826938723262295853539971476891479482147174750172564225136289413791024021834971520619000356733127554353451775635731211511873099104013917075980546952346811431856220240054483893618569790608538093835610556018161093062580383462557069404618739885120147908626557744169359884317725840135912949703206884333021488840101390800719423788186645522429996390692613704097617391615277325721206603218829363198603098018962910948416369864593488694805317031714164874763274735950014758880761408889777418642412738097236417377544658465910673413726377221784643408878650812800814891465299330685019317383433380998815156994170180413703533550510887482802232542850539833047873818270964367475352581486999590192708130732679864881779129089386486500071015583556357709192724209195435691406288212215207575381503324734206564081412266567474135833223267469927021734035054231231132380121919625869111178697820897212310802380149338162180680863631511169878267626850944048200670019438979959167313897585653473213196445706770358013436211688017199366659382511026440272112973729611190741576183241363979532442860548023908762176478208761068442561369643513390420587027270342409299423855759497889721992873786616964085942430270343307869014170287783063063680842323044575435252170711922743143315996658515913716292856850079982966085341319730665346130582045505419508014430665916143533192472633381445468356010158589584194049321259493756914078727166685229819010727006934352188152182101994074200253081018394006713012201132958330131367011458321999093741878142491424653184728121308995325885111265052676525185760872336191462082755698143384937058710151246199838710538379726295754401119723456956850040873438230645804189407084882594672154726658467555550345880691076379034787161596304744323044132932875317031353763997064217584530409061188144063647647384666789846431278856876382587740569031457595408337716256227882423169008155001671603347434271654663448186508629302091603294445455661019160262013852165113012908452414542624022950223729316421041563248868071242999036747719620490486484943821864649318473804781477956069978042565105687874282503756970285659220884781435506800563893444591294516394128649437732274319685502770349328340834422609460682514996469531375697008765980172299063004566249133241192105651695842834772606298162430194067840712151268044944111967367528142443694666052717211944655022493282811565340560602815251117824718406365853675184474733317816524075299484531379090742595607557850211793970708673438568769397999599941519929957676301986854403461276063262369490363580735224208422797845561760227852999252262458110741551115473313161108891350959889229133112102833019934341998514738114233441071580984889651334120298642482516441865016899086795168050909197698976086206761616177211186325869733958654601216404868866857642347062410088790999315129586458888439990760755635947944515103425494571819987124087475002604507882092829292545163251709351204286356214151875874568635500533725208926369347523342058403289106506277428234292229388165326982858715441326192733162138208307291134713094027659416863930152977777203328455524851809774447195498899777096628252266285682478627537646609429631905168645655738792222540113064294623550276959803686461514685959745666741926176885967978548341637541842991790101227943145972992522952721517320741012051747567549251226144607888187172453661939231397899418651637424922232267193837293953436906845822271458834290400232874403976657838645613151178236425052479350762396879358493037597843103748189916099382225287385568293796175839025414842150038432487897903746739579446631159452542274076485373347200142662218991529191789609531956405519055031104595221684560935291880487195980522126130638302863569486343716192520697100253166502822445657950736949940103970980818688744643234585573180730325447959986585161225070471672778695896750292624270131696064609877398084173090810651581873504550957906913870570336773318300368797847789592407874571930416618157040243845595409522358345330423121159968974180191874065124536067019459308916956836599462445003045631573069391808588076737346495207252474501313442149722649367988799239801268709421292835221936506935336806014715920932820164995311951160384888833690519696497917055838110809721479588716473744811444715645927298060372495710656704922100097344102766515851573482553073190822801630655300722049034809048494562531328739149870254959836045907001721997300479737737402981610280224096361509661519394288158531849739721163174310737394490942919236025882756925796004525012741182061098899331297578564930806011891196561066978733261582786155840131088687305108994822022656517468355251019471655118943413165632667024947298415510787404798723657700743693197992579138948617751676320509156207669988621145794576682864024531014999171297034718888843435898643565199579572544228677816419978359954102264288462543915617468299039913114611136057992392279727003838479037959315183255005447444271357739798569468413597936442575785310441157713343573181824948594100216009248960031856499605108934799621355031243692428780174696149035564279307216948487528572833063244914348249635614217736277796538353722130474794333360215370444115896417301531752730855982297490566765308664929775874423969096213310946283652573110234560518141590241235860708337952771565728534493290392717366854225973384862481584454284886266236027693170488120938107981584889519094703069830750636404130642778498883745791684555868797985401804761500897464652736431772066486726962720714986139331396520236310089988126504931548711138049013572868282453554891342889456949845258450159419253103646879728761436238372143433678822356953160303168689058112935536919076959083680760949928346609292247514806725219428975818106748642148013855503753223426235269348870247601763894825520714953284701428199160048077181061847200542346798580314235317290708812932069808801549166636280513443956731753659493779406118943712006640747141258106422302410927701429938036969164069054327701899578087321964066794376797052892893247608705329009175452216974872924104068950604214627249513212197056496831510690932904484534876330791992047177835470798515998918079088097304274951424481170791036871145025248072312271802288544605371164143732917500762655551563182871275253679504910945413463799788244415957984932869746621152965412154579287238278795533064409196164943118791642025865403227440187094454228878010189264303443964983249763287341257768094985765408169824132927587365042887513266910718248828254011326667535760561185820901797391462490614923577770553329426480302066263681315032951689554740276149658441341032462580597141246130799347007433403639495201729892359590691915194039477552293953434421400977293317435383528562695152618808381986313119767275451060248410833239719638888114741665423891034893611027856405528997665570674405045806950956142098549402924885523057105702898098251662208650959516045295587500886015829043978878742229673162912074478696386804354435914722564906079327386230529801498563320192650788717200889435832421963037334175072111835391400005610040107207624269166524966674431515738500240998149489819159536900749589905848614154298404434038984286490584996177948590789606875893058675919108800078302286036178640253247464797173395611209749424970867116817805299751868465570649495466577697449687894086852276058897365132604534081395244852480158830458840055568321161190961461180546961827743457817880104245022479659729833935142567193750910459945386747675229723911048977041233893692706656510697725923557108001267080353380678776390906232018954473617177595625795641446689861714879177979225836837976888513258065081365211327422429804236295250127704865453286956778615030992691034682583252974798963459747519312111654265183314003672380456757294102749629768233668202039729954315981748635907038335400971953149243768589445206368737690989670707993936959837000571645505238202390097918677880256556550056004082642483201514693772445464790180733783480576159606757962758971204024321685660932142292487291006377864755325896595109970466478515815012437770043276483362135815743277009937650584332229165380087064272926852744835150327606199167629312614059907143637587668054199345293151436190213772533444600764502996946528994219469393356661464053721673633977504377314892168122701273197094212077251688182366191496347069218996837048110777862279657992857706821997379871592531550904796195034298779909262418685690464565511742942063836991509477200968247552762046451769303067441275972449499064293422153907505211143652047584471444564642693740497619877670381123440376514740003848686400961935743418683490124986928767469148323998489737734222265054049808201350591926579963864690614778458283487282498907796376311602630328727045113913926216151575964482341022596470251368920812288194080765307491533982607408392529825180933502554760024481190039113598738904403247295677481227136726966951478749014896578686587902273165131606164610911966460374998079947966873206569717137313512640721911252665307026686867867655786619441727037998843755396319277512275819400921945489766348441019757747049568554914128191479416248577591498798846585311455933145350767921592894474396183139998865588681032049191175382935524924108552356214593070698144075254623503920245044824145229477715805692500755463879914115651882667096802056995414103630838927547813412193746640642285735755289721058960789355381882036397386692367898182234380891392662152018211623445067389861695400762138094333987345274551410890827453916838913539560857291126413506860025628902237269279122322711010658480689885878254308991307721203771236132168686624382816221026991543163887462791918830964688467573182418054093553550947259128828127566508030037705522130326887647941711178175406775503360514357136957167175582729686145919054679445392974533768962148304965159767626898423509893337490246791534457169363076474562511255318950066161776423070940372722998719669749109617172018106256236852339344915279487937570027045397032630867211240684974796056453368063241507352737048235086014099928528963918514653684231422332016335735793590704905791903581334592500382045650198794666089135753096447495587166757837959230846467272662546513327037042108322480648703927375125604631708586271958987028249519304380730782493918955095998923158558675155988477007398499836909105166462156452331601602298230820171220929978376451277970576961862089642821112671133670089048737613719310786439600487173975783548759933301866696453524678311000854527899428569032654778056822360314203795497304442733507141899523089482902578667780826985625008612472878283878398958983697214614751655998664169113246551126314259227600476956192792070381107778666435105231282943911450570371362041534305894933354670369497530846395317624054214014409435963900763422628267453796463084473720861981257131263143193922431247366503982274689211475510762114335667262085951675135863908422230887943748834864587001681207112890781289844536455819523491299116388162659301839462652933599208218029473375533263556409817699487347417728797542596316534474057415184286119936077183422352161680062891174712132291428487512643929496565470245383425837854688199472182595014955022418932964759674753958076093425541695608047462839597605645568809501918528689943262553818282735300066995835045384439257985043416550140104233660670157786293625840121215619415542968715246431458254352657350545931471170821937299969744538887222967289661173621976486145726506582901279798321382304183093631221404798854853613741350720485073537809052977069518242880016326246009595682973945387832755215431584994559255090241143483675867920900816839624803359222416563082915794841049010226234056205028917748376137654685755964544647756672682598753919938976822791583075781110117581788085504983531402559442898710232342312936101808264258149323332549947384664576815766888942009423032974957433477880405536952747308240627169929415199215679158518529729177855168256733460532820241048411163881211900218711303322540194216328947418260241864308882683626659814541888655319098816587381742342662691094123486289130236593101470509767642284775835079471940947457204443344499477228303214309841796122176011435028907959876166509711688990423739324411634889368808804231828843557295736126059457345996890512786204029973939151683909609252317770852265682143412873655325834041135262292964121916699899286656766961549082890314168934176797880049808895422541908742782766540634154508367562842483418174972064850895591262773898523988602651230000247493169320403690058863535229487258118395742854994843808483031642067025293347008599037542179504527268371561381229413169896994519170160289732354779171849250351044947538631176657394841339589231159468001055991898375758865325498534440698159767897131564186926070091694182161677077894727374361494418361743200639750273869836973313576929076065172138394266470057001804530742187703637358205925081850440909584713652705996092196641899729555253919620720209232001402545550682488239765062278323140489243292488316805943685359374252505678029669605533458752059966591774773852640983280602468739267016189475432513555892203084090002070682883194345174837587284647484973125509491719258990305478445223089428762701534377753382522283304773228568042711380272769674668161930441045582425700202415720619384146432513369849718961019642777271902190334543398060786880932647503162071937888869004083496093337808056752558955313213963362558707990835736875853990170677274661130151973551078087718157641416173039230869843349794549308636508742311225065218726229316910951911582359623429483158016163410490694870982714470450297874170625794611018984084441009537735209820189307526971366915143689071497196091247223105857007961691078131814232923070969438511055110776945550919142213259110611852853753275880468670671013535390299669491893038906121031294457882087257145609784062906082278993367638489154999403863608425540987815766401377863606545806515320047526262182506106892377795100218395326612032127773231881902062212994302821147676804556602965535809815169734151691354728453285429719991198283670217038141513708849890963834912960426976381941837489631564030226639882721452099794212946967159669203289310882809520375350361052698936661754678869466139660475566235962916039136860188130309101916549397584947733391037768567014849180034059263999809700499171049866111684613913650333241377298178228894661167461392809221536453110634187353086466658881756136866103701228656639939713675926068628730087000256731145366908141469611172626859617506868330830018411474944450601659139797942319462703248569003902638771979767934385440676683594848575359808435310199019508486207104044965715631090913561140319999268860465776163897780092421293206687994827621737277988035769461902316062212329533486135897356730561691434680870836194960911995105268242560421280539288243642568417074535441007375293510484107382691794770248607069167009731665200692881893654009412470495483206551955232585661035795474428782801248829320724840011509238735714107188868227978094716130329825802265250183866407525181490986669460708951404703772195563484954718703755216524354687410576697091651241421371540336499060549345863466040225508225702011802452283829300719138534607338185392138302900462522487020430949196407960173823876969473179569775242971115705646265821888496526977014305897239633758920659984127725132490319362470298993977831699219380638155396705776130758504940601395932268045848881254090012541645484999441232411551006727675350549969937545206170611338471330727113572911290312855409182733700276509670266198566660172777885630661731718708405502140026123788409790317306171045323825247991370746293123525436103273345186033217106096280149564245957853121710662219454548836315574212562826657912116701556753633814211570621612498943327908022241212566217492087782766722247713816874736584559221284619523943224230024041486953597470451564524646131935984925789614410604653694746921542002407697232780879464723099190314205379627453913599980259534916536337619679262809039220638226188160998636238510284482247907019882484028059700380278324067647214791952040400518654086659763522355671651524007497562747288505213147736049140146207461995601813589044954177485973238625487130939084561462648840272727981411165646441380607733728152407481336576571390487517138655989640881385693237844899628371107038764915045338437265448557186871403281520460714372107649871942710932207477761638188389357042207017477754379606842961389864665538324116893194950312112223008519440251270564425541370926929751497305756026233907350444371204711517712532484487019376451856687999923741453599065365962162335811817198427373735622751422841816960373817578687080238049429120137368414857641280828544769720685253079755119482716492465675184533636604290206894482571012443869160523207390429176560532022615802630067299513959541492081799111151791014345332879463259167495713524552483857029835232734822461077063427572962889666164107782372597883379853865763519620529430502514766805049462667936816207191188765107181944972457957114765618854692397622888153354043443420173571084130009069868180159752233270846294855191820730834039710338229586978257625072845378455858474001124254735424709045468264072025285023636472367379977678252406032100862481275917852220434937599127217341055003347233747151282560366969630877014408753985983607448245627571832356954261023741457796575789690748423937751865872226596589785589101049854764367686691567789485279268508428734094708275148086188795540533995195026676546564843963557587275728059444744614432154499882277095789577973222264600489171803980822162798506696225593853987521427050236791144291895309784772490768650378224087483028837469564801273971356998604780897625731805516938704850828438509190888276979150964045723078077065422657641498750609305094693339494892932174589564921309491078596631940329019676667886936265601804225912577118680226797790715176214683311334671146757705331813156829034066022532838163115685591963172327971759356717832837507606083283402741747222129757261726577050211933888483236067300825500619870717574457541604239447085691061581464936011938454931340577597021200555099272991630972155710735109517949669230545346512579392763524462566796503913611499972281736268469490121236219603960057864294491323297544431539678218092124182144411009774304649367890687451499357530757418418409962634439703373001336288086397278260187037040019556960087033104657285882387296891393483984594609166488862918507621051521835787434702177969862189813581641424535354691597709506238328798327298787232812494108124568617732167459507942441957505488685875843023575353711271047212277262249084670003863360694214384170329218985197573108900666339780705998347958508050013650581911375111945745875792421592870014073456064022459495367527715865454763220886845559521051617657430704500887419192018577015056087786878507187129976222111754787491455609502137463110074981457095208750057543656583954954418680892256761119829109195191204646362472954183160742449673257945329115278119515089621911450797535517942360403116660449588472689906598694641978180579523438613473611814165041500232945802651598884290149904916094945937842584019166421443916884657022695857373372219460247214337235761502344791751497748865710289693405067945083964906240889843202777780586167984936788988498785047679438410275816113130363784730761823358520086972040619180483963222762568142025068256681558717169378076415855209530184949921973670321552579095968907633077323291058012844295780024045032427432124634501024199897282874566167423601680930271338046046736224520983820803340047143179156841123779782072323271957696908575708251136574841557254730692161124257447126766185890956432325084681726294704973682914956846221551101434392556880838833009208658211505815304253954005988343882552683601747898534537840873083494005514489481071887635730942206228682300343396259873174956469275255702598301847247326240242904509047132374537876499711978057199215958550494427430097062448458188588033591089954426715641973640080046892922222797819919036039147735350957099989602929136743933136478635976645136230542296978918217399959701154315149524764596183617327053086909185339906058701936589447923249319188922807646777540780761186729571913002301288396871899054459717438317537597804661586403400135033492170841264320352888838576256888023554882048141263631550426106617031483102638593689971466078709390384538811021479214979149352036650344278391431858270417177401608695676081870762052262969410163997747118591184301172324027197325561884126676867470136026510281538293670250396628407343289493485153480136694913432187948386625431973063275307612747892002801437378601757804536132574352334503055244351672582952896460150189425730046477417500768485916750756720982874149941933949696649303186671280080796803033364570739048319374369972016066964459250654964499634508603233378341118083105557397291266501842999711237237337125721300071314016846280994537343820960165183473452687090154624205550090976591614657071842596111257986276155452438764837972745076001755378776167357573868089330363323027266054378372428434499905737410145461636861010441343357663904235117068433808003843220579111742095148595645937201816065713147889324670227554129068615843348301343135933535646511237233798913254866540753207218434932130849636312582631775516956880827516877742544365976296546064617102891805656934623709958466129406493127563812369673638717891786105602782066176039486195194177308675289162131002926367541504237433460712613160453619439667909764526925459881940185567845639524951030845870450510879544829230152324104995096588066311196571314931232144757498891612932360892548825886412028250859861674938224581635391726067467917953105061934809570418843507054015586651738110016646268087683600729883754639677141178195341103995063714150607752256436883843553974014671608509412694734630232753330643940510211183475717997924594331522957852213572060197967113815980787626550065388386441628019432233325935196230499686505946829644575572945447796397581041913187852608320536378005389818216789387027062709253510245536945047944227105293367777640360086588909517699427584211143744668229133867560646939236256480781269115897567275784524953058348102170687676905418415721945886782262653642471054832092133194383122968939649346505088928340844243567530318791824156054745915006526134150217883650740755147109692126167394470962683181388315050214526889293005972785614371065899589465187515302647325244511957674643811938626554645729091084456800310215777665329337798731932972751433350332302812993006168775327772371087388891454279091518322937561838914510530325485414953530946234353806469554725298651910573081417448476323534847080294784331663415588814543765015123041046847285812029913156275069393878054752099138905413216711414735837932539339097712470194689380137286302341536378032500609777956997925922438203100899783918561080837919713185050594437900030756113752069492602494366158999416082972971242176607737967895325749560579985935728637951425302541424163213977765903374347655455535679435856151991797809590483512831112372771540739072773360768177120863228558018257480310652763000701411662698834062618350574848387437519393279425893117320391299754748768401472918646294626628452369751476024452384716181595787504366400393832656182604086024063253187958376416033611457460675219884951977458243338549526116823784233285481334196698558823675790788098727846568300220017460157650492017988762450107169997394130716297709359712678639620248392865063961656685565577422466700939114702697900032222861185578206076210799915854747258558642024917472045220265293520309210188845825226208969031424693290666342504327540892057740966625558396196307829648953262511425708176702377321931764801169752596475239974609421458268175610983215860932694720861011303459990159458071565473927131788799573914289664676416819070312714136281777425680980023151537760225333171164977170827113648976416998850752638801745822809423861495044141948371870663242283115107764408466431102810201685766858542604857715212161595198730477420538522885089837025276746839143826139830732422379811671122006352766606949983151172308705738314490564879700372824688922926489386951734309179733527247773916861923134398858560157402060855332716030165714377000052038139997062474958599895528992844736354596833318889065624321250794218162063476269188521012662081163094359642939750402135917214389001059285054994033503094630721129338983616372858363443795928668456571109178223220871595288103433390252634586701306367414830986378586839593583955951279761839704892839487474765561631612350633922743586455267596343543107245620744973461167812592500274101464395629896991476155501354135238339917442127157616204420319753517040209302181540455346078297566725069185244307474614166194492529254464338384393320409993587136203757382438648990134078088186016285585087167668427130159173999336335412198799296372603298710847363964586185003548525787608169762343237460485580192344926863237513154843288016257742250579287062911919372696317527561707125376051413367556169025062869216516675832508656014982869514059044489056117692195972521535188444566232427391422977214951344150898761767574799101473900501645289202732847488721954371122137633752574621868046832825050325241856838708100113455755575600227273977539044627684052575607746992526484942926806170683712318132894800285472767738540455416015042645846015546489893553193114762954056351754295671738724331416691924372234782837520977505883387790020480212151278134948253050187589510325577370997630902079350776424593932201099685911755863423968069645391796161230001633208031125847106071059804139193580442538355801398458020121294528613708290707298771183783771173958088082911072871391944946709382231845594337059840806818980544368348211519530901315340644171573646365329539450358309143013324587126369597907149078245302883702009017258580857671905995549953935169088536831419375786242861780631552207669239729315776395906038691194677673918220969091159698060107669769236841070558730313040026385517364884156157217036592643511429935770092562863311394129175137517451272430850003446558866050387046792659449804760701909413779016431425518149675684043126904377119508784166200034249300683571306419317595486289616534811862523172935460048173693421327857992249074951637600891410476969851271468851348711611043471679907820224835461718852883624748640103175854511905733281374847914386269874109021139062631836597151155402374277771747156235971586903742654394872169020380205336799617058542057777354352104128955068874086228858620549019208702392522668745025286982231995028605788178824290605749531625608323440300744895126099314362491767744988159368256870641691584013983721301413002200256330823016703166494331872798025799666109950081028871475119250476342322759223371710759181732801809292551399202276404939659750540743739726744843079764865081574825299713325433199697188105947711334746930897149928597934047090480340395887507678857504994562212742500917684391638596365170453592691300161372617657315131217904209337969573113649522490489728200110205631288678119663561105386975169596188308815932623501406405353275237647533858100670291693788729629024500247967754535678983335360005400240388758246742084843469292697528896817910216925863055653462271874268991389158205938272911333942642972059853876085805148665727390436960369011874631954672958680577274033325498823142658107932114120176142541466813735319495538292571862745216167453437693848426118780988738042120356994487795258567817269981293931947087375482955588440708246637819216969954494609430695249777948165429445539190373688149641976147848650062880049797972054834256351217103298696174892704641716736556531703383371773211888197810093276877099863416943221171557699138689094097705751647947597880711010232033105783193926898040111840954640965706420662342919625871731877958861800417501392080858768796151004067176393550582693918142245557721102857934563666187735829514385960045358390559928536348818230170107364231337022231141294235910086557561372892372278381955673835595498098687526224735378565538394468473327049377799231997181122200131544393219454524913436277468582548840926427673016947289093488571829696348060224602083397189106596232097811994459480678421284356552660726298044139256489644248424303329286977500092158753837778664823412980158067370573400971848221327462999380356672657262116645856087757223196867474879034937059762927077448025776850373935076255127908074504206626042016746134161157752999489523311447201583687843658822969636202132039771632534176899357683253921140648309446652588118074292866627573203301850297368753422874113842445551255496689127097575334175772071914951212650855704367141361306534061202898114629472856418639860563852270962748466624961623243001849734060536499200911316424634396924183239758807828441164265828713310676280740472299767644479891228608495055401508171114298551167339789096014821890522629179757019363870340708626094760821740693235837324493553920324926547254024688532169340702083178164311078796149204153608481903709801736661501047423344311858895439962680261012763804706846147851773491991803567280824456446557639715448209437810720848907926393418965646210376834760414151797038445927027237255070399146889480817138378175822220552764501777271632063347643777448169075058308342777379902958999732397532295742911809915125591538668455614955564275608241779864846068423065415158155249840083243141549829099230585314834809902320371297877037877761079624446221249242525637152880812977779537651138500764442371001001267936921086582878967372995863452472868836310294384432812885541531905239645046656786142985231640434436039396983769428484021170364040645948645024560144775957437523239299984212630329804099745533267352360683288509895510709292019780632342542749252447740076556445975751067172378608091282671518564336054646351454571575803584512101931841096657383395302349026018353713802322502317657061125413090580516970995699879632739395643521759135418633705209220594609233069860806671071202054390825635333255985376713619249010399416026155622043150941466071404164341528167310805516863041875240869061231849334981396166418400708340488473569302788428698440763086416668611032903293541251715993173056520995033350120940303511418609777807791161679037357807772523635532551667486964937979083532974221036435526403090483469422546136095155372866841169951578979377344294203795918606438828932884372387545734912356552397431989421591031394169225995123994596020227518962551735100410146040445542514503732526733552028546890645376787622714640322482964522601408475864544455963127048325401172227384931866137938421089764868490287814218995074311107854473880835933230847522813765881674978158394067085800516227640265269736234148549058786927458825597847228967274407519211563161358292542110880361804884544472198983470853982624098701492130619600508016037738595073150037912339705632274491080914498271546662758242497051151063725242280893983269478989255197524844722922462408521947478735493541398199320382531492909027835641138981083471617780896465922398810387879661613070008093085288944536813751983893372460292913981951758633615890390051956272405047722115321118562496845006134591265348158642231070480284763345328179024125741813267228749854829265498274488745955078596379861871505811110951942389542163987428137024932554003012425773405105337004678613981524728111706070045664835942250190558536394100274591702717930385674911339331222686517021786503121468538765173330052324125571736443755497350463904575858756894049938109083542026628225050955880997339199326081985924028757544531227470217824513143895652115368066836084179506049226375711742994750992824820675788809639284476186406649266433076520652788394789905524361838424157086049164762331451099680242157128582907506603233251845804582172959311635041929210624183699206362599364358635675386919794745741232091776066090474120007702416337324410568953285015475139774555890047828250642098877767130972963684391537340580121638146499060453263847942449038371257895971263668134943514260041903249317776787638516200121042177108798249803544619541399601317105146959284313179803060996870976805147446700192127713832571105466548129931778027287368487288486788074092792721164971256026450606107925605958587591887203970166688430233650435265051556153325778832069755205056599052200142918835488454321003347969410378394072281854986102447154411298577265658831649576910271119164092368490770456123020039371847990304439344461410896643122279661616249579916410245462746014544444052776722224189591856013209644393189340164500591120542957997212016648227707686314328725300562995224519267732213451130091592204929186642160785676678480523568232848352957846509375408242814378272275799802516639008949156546859624348074381222567672645409845870895558366747069801274379656145381547976413573960050285441246206933948670108980791887583879833694088388347660972846587796701782121590872175578876805303356329256902171295259728282920792245715930562904248159997512567733298821834948389901812894725545851732520493859025252820496111895265017522764939055978751582194194888456420677287598112357061076037078297826905605122109947739969063940627610487308906735766321719329588528998319598158046033459230575731740103207228864702741191204656713788462544670720927916232284672097817844876043665075606848457864749329452328010841520036812615795614282500475603884164888851755641566443653481481272350483046404724315977370615722012926465840359690441482944320489624837885457249020934595130424435423122376227286854340035911983535789740689501508601407961019281974871002043039116600237066584693237726383356257176713803416039082389502865586595917620370688610705459342168287352653929645603377292099061356752370907396986383931474070629338311624627582327426878140058143564813758681294982764501028058920078639396727818034604242081410024036450892846413825491433759557341232508184156781726409080263562512323803687727040398248620187628232965160595670348106747631651416642694485571357523907431870416679507625769586791505019088338837371498396124004838023637123089634166716984176291089390799644540682502258032296008958443876739987391481522621685075831576063826092682967414156268151620845982329125115797705779514432289462792525436796195935249992037548019423526284361674709616984074543012333946116248556011244147271333150365398596431718785005540315659490798395229744075124105900187117179573699188702392034504150328471242084433798102624457541825799127018960279566876369723503020227180798709002070671212998731743778109915032665203078588380709561341777444997844716253804701345406586457720770151364411828295704121378858345429302470257362703763560561526442120981052921842922652206293301296695878809730531041917734870582872999746654327696914592642466267224254123054032341736568007919122898531819806856551838702536242206771489012212728028844728078977818873587919497148060903024591073412375490914295859963633648560446963677438878643877788246984838423691430665142111660767132726684218590504020854960724468555079877595299855373181422250293639219220343759418250363169455521209807974785674260328603748743283037811936601708258158278976861406378175905751305938852135412547362718798708188036978975494834723726415947112165218908159595126911409001530572332882355473332841141376443305257354379849277644284223138234457746489193368230111969031414298913840486597436562618974086605938472209195955113303086275036115386192144727862753103762498495659094940271835997142970450361015933577193025345985356187376274388911925434741523003373252529543564588922374248488009774947430177815467076375929703076478765404556473702403649607663959864455315063649326055162228628144100500275977692679743245475270793485336207554823660322290584848996613017754409128376421395674078573043471487509257151487440699436860776310644628837030573982327710615422873756627475837934377064904802516032228033600362494596440950005987904820993149257324172155700567724574045635219998238808722321427795875795095602750671413546492021939518057882980507389356548921375898701154305430915766112335302194649784261233114027351691768527872603350737307147514039353666122076723671601546431687517706648517138154184341296242033373626563704646503528170013164055090017742260051416961398366321468122422990518324455046560752403096534363199084581564734224165365440611870892786798779474882550621507103290591406755661582553443713734583867475152548112227725868118911548211963796862519589491772897640954508636573852194130380399549380731017606736814040395428180374662261883933730952738730198382066067526206211162000718729190191160394316830271608199211345053988871798319637677125339788298468381076245494763381482856654436603816182072827831639205573867303561396126404957326214220038293272844314446718862638996585824351392809185850934224903985288586635426998135955747080942651450657083803009890624221254372760266048740871964092514206102098717758657728974664829084312370369050314689237697932166679675599535462695404964686270505969206825443044729940148379436638075419280861729733311217490007479617697768744598200305916807457585959056607319138059796085727513720904193525815072183515274208383285785381879839393319250817675908833651313696326294763001800957503326504873599419632642446514995646382869746473436350951966671872857617275378802422883567414529260623653388597769583889361523176273873698394120759771063965901016511364237362517396752414058829126336036925885132555003065004616279874982312594795738127599336132592245408403844334939000772698032106307825795502645189364846757582138902801693852192527764140362826015865988558474382751053557045172879726619733327796617124868930792239063559235346298665024024846804093434728136198303199211273126126590765010170637750226593064772457212472047632968510216696825388200381578250267090255451012277404568670956774635519543923126626227181750336435479903466911898748507121047852344289071774065818808920102271116330912435827880289887891037644352650477836442817856155925415246136970727122733668891972129487192243882261010714359887971480932397003506322271855149951324671854416188000029734039278446272356572451825736838601463284705839686123316692046531569361559400850225222338171580724812822174219800144875564259294207223115943536730550456939748982613819929077373004467604911808453538442200470211563169753787777814382543891578390266981436674819617099578078158673259610628202156234087290805496534608425950569749528377352000863941909211330838291645341826534627026786016524555107446850539294987126278101913631598865249407014422652490457167226673589539524632510156425459246346734490645448562914186144151061620110151452539261409685765787504422619453034524238317165878842704106784149170760492844343807965781024436116911898150131933563239899242813240783842397800431668402773475361342076753478619929376812345708495543408713550829822719873891385755480806395532232423036835174223450437033715524143656781860104102243753064759192397320282488064579938064862116566111237153057882511759879077081905117272971357714305472489618573432208491804349676169190249456729220814746467659858822642771375719313460637376696447796800001096823364183280863826623899024555114557814627439493573742594407771307434213283533504328254275975723548427864815495593856907257522901803039185607005773538273818908956611730216089450247117588309347416079227610576298911393409739414320912788237459999440016374995423265338023672901968328703923303529121346716244326817097751178614593697864732332017943961092694050061668130850957936466184468553416309411483106015954166462983071624246697513347687921138548899278773658071099977788017423651341132153083275332190711825762082959150673545202926059405171264756370481902343448002072213064840322402865241361001932757478536298815434585055776636854437347560228697447862081136357138961762354390662720581363811048981291195627495078949131701877207685000417661834586034448603797347893246918259714756845550627685490273450036556709398682995211994056925150446375211773727198178460000352519745797945887396165607633657887814255081346553762213848375259764716500045690491705674242745960724810209046556641855551126915995817140178101640550326018872449037929172046237365096966210337593937032478092674217159766809955468619210927169749170296129717928841584380902224308653533008276851742405922527953024912359265523409284289564531977872599028409114817609267066907011065032232978139151677436063163743992268657104418741113122077173513359921886923628247521283650474673364235512474939048236657070489679285741296659684504718795713847103878221226585417314003919671659695152313177519222468479432009936610411792198958990287037304648609748104700175249828819559429685258563871976094160397340708338012510286972302249733611324193260656213138229297927716937510600954750007937104881339656547513224428376844975919040694052728880554027734797732158324034821236610186857642302169469025879085519553358975132343975449013530502519841183305811304858122617671239651019939293250171535150364417430902636156794197545127524905796715015048295897736455637302850697270454840964022225951109193214266377428436278546139750410581652439697889936578073606850033264426885838137316545028250884853770042422628976087320217205529893901121344877954002911390205776767907805662339867756770901211323636553842930412273807965473643473155568306998075566657968245947371268201774052421912599638846198891571292783240729905221256442862688845988531044122823846403496505915925371255209535047520155127909552404917317419989680281387803143276777260834563655378619624338632056344466953414824634945950897674758863717396929957643512336178260239389333947114916344011503405632396453099585120552002449372770240636812839730074468107004979522862324475657199105647834215471135067393192117515444566381973625955604478353138192034934549691290685793920636389304771754099160676638676395656901965088181922744690926318528835713710903905529069019466662217289374269707824693246428087660377305466836459266785276460035949569987048013219377184641764554014310515090330669421481212858607508944951596851494308541563233696733892043667369899562189715777021394567122355863984113657367189399246356435576413097896694391617983116391487373507756418597222388870709700332854482779453607108059193111381831347619781485277747375333769975998884341262995564197079637549303236380574499035424221472491135518587007369996969032347357620261267635523837129836607314147609654399138667185245299400004421397757624780750541426091534652065357485191826013341990073308453941318721203705499517100784095414179522796011163331100163216017148561396454119051921262391152659863636771830439849776299298294242693909552199053617200942288076808415313164574757562216984717202023811910195709478237754218732530768162562305082127877390640906950675340089797403254138914213769323425825570103058233671908246871187869762926798739661935010470444774269338474327962098141602740737279682993826549283946119762949638032195867529425711806756562661369288643503969062221733395970438106121301741527392195821274523667757322831312767880605256174719461086472895386275853893095891251306907998347126774068370039456810163116387406917938203587081947208242782441421292799762953562397176178915114708818512476353848411088871536341687736194214134258681284080850775862302805861463223387390949555575489853666584183702744594041742105526140028917189540319684547600391231324426697609225709005407012019725194396098265257572333567464721832497281199201397439945490932656128552265203773013659229704921190979269792177923291535191579969496777550498174946756322864227120576129777969125275202507561128763264048817975699362669767546724575593573189698412820629046367654708369684210493159214394504602990238391307200595227406856685509945382901968366283825855484747262017564197169667340031531951643963658851471441140195723313009532907296927820420184153881051447948669844632667835009979654907704896540825099861256199058822286778755327150917020838785131075787916671143805139203822201290804551150137396609446763694482723958311945157599241950459090682449138459204857370003605518336324311797025543145712920861424048131029911867982449466360549928698193061618580031750755717292505706504700155345220101962744336243115028162045401037578582351949070008296251139098216842724662018145432659257250034313143382592724581216779834036020698022919123056127819758919640211944809269709405323471591746170246680282391148940447558073244170097817262170364790264121583931161606339910794462445202565690610904060428122481183112092357858482678248747587946379992261104334492995114210957423598821677742193538845562940646775732932759007681537555122739008960969841892013263001741899413170296800743620239034702378523295106167331608031686797419662764356169758655405331141485640718809796285825404327714579181230283222321211171313985191522216287378378511891063161207761906386315679310451961494900759867365291817128941125527731994551861853240391495033329013495880313747334400583111315580632376050253122483144920860030099552376605214320128029676583364807788146933808193908699584515675148654923816922505694155933574552794361164184224258642094476930956416144838015006921207134864489532418053770592478987380556983486280659372570352817855889994660074291489082852045951966588503913142364001693303026269036459768013869213282841831714660975862603002205461375662588312635656943921346173178466791163405695065706311728337333988521083521821183234644341712304368676708992465355152695412010799212607894555067904499545005210285404003838029773302812336809999441204616379794998817487013232554005491744842562884537018636080241585753875670119158270821859513171190392183717013762032555110365765867491622927180068112634931400828054580605426201161507867785913382324915075152524324016355896124644395004598963828600581218730731157623219339445650968041350990894317067669353832175876602494761094917586698246450739849863881050210363379039788583023911338884961201672083933159434309152802987547036752943668694267505711269324818064350369554605869958396904338624898921232551265745549346407088743829429276928582515913182384716678511939685431328809340710802000148722265839723303166997752872823224804442987565033801495585691132193037619553504800831343139596059345084402884010392766577092121624714564876698198897348745252985733281286200426432285868908198711166385989633336021492370577256355470086714610505976678463965667534637615373227758903608467697332823169774415465160464330718314798637375373048213731849857581222630778382894904312410700090685803272633117196617370887736199714044941019799389309609373832668333142828960900631967693427368342206583301246661406426603773664501352526224742754515233211533590305268709783285408898597383058393463452700916512205808860139885711701748919441902760055199617103831171638667046533376672496081844323874998807370494527392614433792467932288360472688670154021837012297492254311992613065885311638202703314064667575908062840280153605079326497863792464124962067889663181894716274106279957609246026838545276690142220578667055862332228194526452217054254152938885334861469827758377981744390819860922201307677885342056539780982380212016680816149534718759224478177704370787406372024737522870094769339750476178985170032430921593394402063456732848682519604016290933127190703229201382057283607854206428064975717790752920457639400543470086242621337190096770134848871033925666712012459696765186697616691094576847906954179136902382669011880701366944308537105008758931562929680713360514377337805877507093255265010703384493676811406146228314696881227915474268065732907526282100447851333378942305499815725449228431945541360340712040709262746745576153559847563851799111354960897726120688753333288647809623766260148952121047622367051460530296480868439635961124081206338073570695722235128943474080505047997364065918160712027489105338365108323657078839341141071081719041720550085376010282291361963384239002290137301262595841317789846932611028509492555712175126003156099336904342059835664008082129755234728514019079368773759947135720019110240004342884684092324969156572282084780223201625772861692767154410274875240649614038213359807218551538867387002160911830116488147832003652023072311135269406007912889953349439925427419835942462206916532646455962328550648722377501840035801540699969477873167717490611543092132265801791994747297256427658202706257608531027174068644325689881502756930745089058204255657587171088747720792264598588010722107784093198412575340412072910410615047535679962323370382313916941000950664774017873490172603897582865333696521511174983430418883820336296174570359175236725564586263247315490307227067526234984408460739901372987102784174471574348043297361679920577271484271752864316263215583552432704649740284538516815194856652630261500974107460982419303549708204732497352046897258708284064283670702745649288491183964554628871002893169138394800606689357416764981201808883197438811193191831745847270482181049133627715153594972934132724364221568913766297789355109143008102427289904829303068860255122614357890517230989222790447869855291378619517293997511783997225171400107427083615975771012575572097189257541452480309564554354693954219134748806168700822080966192634319690168421493977938991100982338604295854111626785270462749092603205327884513938981473636669640043791754830653536499750638765901183436241409621744213712423678662354583160197044899250901527432379375347151767309660513360133210455169467394752355201242350896903191294481343686900437194273904778404653902493051158294264525049590005486033594093229830236754662430994958151696040296465611662629806456263718316631681280927208046889249889518448879189490972641255390770129939553084761569274945661205896125976602564385711072651009047214908188128306891425682138796215079002207649988318308218055868047748902218244251259090200633227032368432049927370024886305548020024401480204784126418711570958034518794028986879799784421718548974204719281735133712392022987334770513645149514941512680442976937588702331909107316294858950452402781714842757177579860327694740369361100519049792913834573706716905948155222836954368052611083185200442560023009557216144691148472690959509445862681394990082785049444712560088081846640661953961493039489524081711328243021895024055793019325907426863174596004085368961565138709729654955629258214626619500994838236308246412569299008745401725994748656871830690886310689054042230037390175564899465193565830733372283612990138013178498023145773766289066846874049114770058016407070438404332645128158845068359135385454700669220344546832702796830348923673618804380668634595562846182664515768909938569890411808713382734399612348645297678493356862849600079566829916285296776778980395421598778561278000555665060246576376243647842077808184225044218310080386269611377841502753964370676820445296464032475248827629887651070484214109087500198070907851951397258825556765494228147609007180772003175917771791649899554969216856768820296086289519463678488114090791289511252615856850383848316767743381187826918318847532383599089770223382318551356261488987318329580253171747583843107815929386329181485562474550127349452657411076726778144013660553147793934925901481027631266592600062287108044132850046699111240001798280728196678293952479077464890427568400677515643254126260280353864620008123009547686538798229815802725406042953212131730264434661825488563025015553883797333224037188615100082521530040948630498757701171754126851865909356806711872089699843482992638215809498161502991577162749407518548618586241272477673883865843368250829339951073166652805080092314359940007025326437507226997937131753133231549830405088443126863173022005912723694183079026435274128276089505973699063865805384336742983564764674892743891980177924760778317722148802831808586555561808074548148341191016013747462963528684035878980115129877867678390227758164370933020175537231376390827122372653569034435891641855532406340770544188076124247855718551474411598283314024245467026941980545449490685555759042784597300075781286862123015600151231477259733787208237047318783684946655004346301318773323241360406926857488575682492066454705057498708221696679550839570576226465820828881371616646553930580015904492717576534917227379903861564066623528234256720228952531600037449302407929932018659549791978128827967097422999971668079078357399870699717633041810094020674013108385562162061654971140209619917234530940254930554424816688259705055626899876737587176940948562638907773478088459668279947592570130853234289438463695901864185116719481688938120910650570162309275714815354242832706353550188841235981245939232665215383177159903586687230598841681921967963432967292429989888332931601591820039799813560735268118429283649367798010810681228924913758178300581093410592305714662553208580786928197861531998070580844920629266499114091603932021787783209537151408965670007197234542657930780029392762199487016500005854451630326166896067117268275195031893651993150640916802847873791922829314233171761326012983181130465580473222879282714222535971155263081964824245188838054501219966143420122704139858082675855602747388974460305758070801956134134167771780285264489371391446832052517615975823791941881104219707128581946782025652040593832043380194864187223856075981251728405967649004441151180437420547370481512818236052348135401050679756344383948404827596520983216503229901964053712810214282267614603974995629568295614085839448138006919548271029846582733239073983128421210290339711526243529936379092768102084169188724761990493049594965404971182107097214740209444653646100120481549616229323018339759101883341594714752682496093110140768826387039849580304019390894534519348393731754526773034787422014197586455940939042898991697044934522905040383546782644575552383617703895890658543485041021829508133073264757671515934076374250585688398444169590470807735414339756867348398416166724607904441661134265879448512988363890418670964523408976070054985691405115517883643084003209594877804566286629199840449400675970306461259274826566251875604700950998997074464881675038219801193854333914495421157179025339775095317204053592029848590219717262347092118793113254023677009287808883167451160643941275160887650593254802251874551091053662377732712682445542462337154928379213432014807745904762564143564514494978532275937427066395583505240744526686108760571697703620367811999795091764901087139207679208626545263692628062791820695905820582874721252284835141845340897828310079623218224735299953600948313024011210182437599000195650552729641722726565928355277260770706535200113429722545355651110531361451350871566468091606586969704206383763890521018091936261302076020345690300291488334475290005121022193588489392653281498924380921744794160393928531462961719004072248575863271065091843895730410487138349927682180729623809394098182567648870044427137497468595554399817509248066915391077854286974799993721753987207219259117549061634730047798950895567419295849103707629748094490205393776330767688118427697326509904154390811259767076740567973553167990823121351068595051479284974116062692711745352337564513503524362639009063144181689438780792488958712366912818925145988505875663560333981194675725284197390982322995784329827246167534818397119075804772846743025817440049130970857967687685873822578123632630048469661245126904080725527806344841680790554852256107270863063404933771590894195853952762923150333888192612315590679859059775808992023300573376581193438898403703857404917335510994004175825363269920799251967311407027016362108453597017040247169329586213283047595443874491475895346660074595148889654865297403813814363337025618697307956899010021641803669609526355325187097381737809381909625780035616543485144122631680302663250241701902143144815074353481658686877375006241927051553916355829682154756371200935989983684118337910169438848924591553423891731389502572551327227277509120609258243060850633703123258821125850167812020597174427661742960523122801091898581554171174861861155331075577272804095466016716962717735254845285743040190645164957450260817806472953182996484583358325912511902498815709074771896062097819004593194335993065463330552725278026385124732253002253599361424099250240335279784423417853379264517608372689917141320155017526286834905382924321436842720167315761631242233021904535118675656359790678179027814747543671492316813980665160281556209429052516839874011987409563665855260726177390008544460037738857382362923705323297016875649292940211116225163825824832933992126620668291569723579829295424833432200826594248386871972049446956494397061879266611466162723348564652412218833985700852340513104261414211902559410722118891241049650159764052532144931566673189773353693924910523627806553339093225545515365234754875171738533762651416622959287609681502306571687921080553997917716426339987788597927003201914648857126656735966133367486908970582985058906581747646534185177354477433405182148679066018940804850095259177483222079018538633066653913654393412889488469866536112978389119009888199468102511027710463527185491020625793585560968742319894575414068492569699048296326027389148767815217139385289297772116164586498965099375159100125078274892420273687281003849038623186871242049695465536917699133880056000503113982761153754378471357515196684298834951890290616257195204142634826396431137305431656716475015814816052270744378521349772084433778039928450069252648470496568923440851181067202544799073278985938284826270403808154495084502953856138919830246785841724431843339100812466276751698215070490414068269467572539097895841694973451469866158909070369844006057888226125396997508111490366348603409546576702948951242536368222329266422488002575014737065109136956443567725263237880846198374766319989625195128451910937803766940783780703926398092984770035610295361303733740730063776743141245891505178367235780785737348536829932443131194038766595907535063632515065559327698098805512225415670734287478026436113778246267469861718760051365640242244471137534048658456550519551111326854802926612306204734547121206878247554127127516084528242875717886875916784278948340300801181425998684849972376714930991194080641560814637907695782796541377424806284205519051687634601820702044850649714074224021999630410537168417025228921363440807720146365565996848180760836095844279250496736502750457287740506554945085522668154004641327936950654473337367713058039827834027807172693428678249464084859360623007873416450235148056933225326979870015474718206963185812966150941802754106359846894985888872810485446756789989374412733451592918835976473394814509109908015876938136517287359897766436296628000064919470983020477861656419779475821925660479916236259834995314363028387860657549156350138129097654508093720038096907923664053952639558766789820086725506342331669518222642679489540484478902826413648633503688169831566294124657592574837272541666434685914951541046650101302353985912666271409600377819984032848574569287916325301945990178442037901411740909599709739073990820422893004008049096059082264620755714825689084073050864072367815302336515211831774919136824972552429118744956705303740664106274485278391783832448081169204294006938569101599451550226544837020956851577995693236557826414119812083858758856039800363088633722563057875972800858358368623496536303515804184454770625233578833835003624769365614618082315582889989590955543590403706818661718355939691714566208657671143960338335730024051297842477745862557843957415961026447147714639169230391723116567190292574822285436292514630769339269755458893947166062535359840954930192080827731444118765580214383169787482378634814596228071141580325570041585501063545579018841718355369897141719418756599539843390759558378981813313566798097887333235718969987656397936638631825095926288919171637194607932047854235726723270883089834885127161651985376768983221112302695040492691403461686739853341411249246713867604428359314690176893455854990810113510077624295498722666618414612530109013599151115317120262730921608530220629235462395108766733013291013289813329106097357090428830204117668144698081836156630755362971354565759442094563741332095475102823870823315659077179910078384262377549482343813425305365779409559165044740664531870344074151268231510030628285143065274853373610274666345219141392261330565074691061881147420504053513302199413578640121166529152807176904833613587164789104162191562956894903627624469719481007075365794263742250779791855537590419654972225763140160445021671610241518622063100538856470505752194708960989967953812227532950531732021128482375154403189621430806318990191597198615839130026395030168947129527135248081890246374597889019926458680735495350584416107257735100810714902209845978700731269637865090248856284834837606519292007702249793679955124575977600668001912047414113842643872014506828294946145569385584877213320939431535219679458602390820861420223586502208669777473349964027374840476544664051245910683431771639577663388748190234072818902400668124435240067562665404183658708896472746938368096212228671347263664807565738421088449472056806327283571972853791567173933241971215237883081813272551234322321755794096912878071424172095723084477945949062317671113467050652390379859095739444800596465583307735453693099105689464502221660978884170436522716843425703564288016029807423230385995836775926580213748913834276840456490816402785051367071386208191273431280914548404784024181537820438202359026763548152778217613972962673641555790743230747496879678812529726466992237475293311270871887395170673254945980232962082057947901323981407254193613802631460322738218929483212332757763503926125982017471313795858836562247134793783045542718588725505093421671759660332412787604187184845613456052867617927473201136931005824238035918827762038116085169403090461015059230990312877485593415183557551879640301454326146559606414537038542767770461357473756659953692083521467923081977655351121911441498730531078956144484263769660974334219259903225562197529509500463359444960447807221010376351141752227197640106419442086818908527406472548768936593301829138129796432604749028435440764975010875989167890458935297829224008478311177562149032374239829247113266835300936415614456647595172756349736819582533181187278554760723067223029638027079463905632053319175047079714619451544488001047167689052400600959873981969501999786573678824412152832964438624230340385629036663922542902276110281329822070875261225013333710965612438531070759281644683771787017077252439429992661918982576226314614590736866254491273129147147926111735098766925407574906033952348789757859294030544528206176120362314038624395821836187582230974716686699996252112574427665633504808159077372283550696561525417178684334207573862950818149202621406222881066252051310863842019251001537052435560320558131740878060798345501065478207801344643343150842385686517552425668416335249948179815776617838983302874621910491399046825645419633223867635090457276403494283181733497649989124051121521605451705973183009322948871032718940885551268415850321996582902621092023584907712766868053930754269300958797720973260818976256701069213940629232550169344330301958177170888244268912163858041202120226658697232729141609380342356115157776733157268012892455400422611200318949072957265985364189279030166640110817892447063422384639606159660955861315716256044898662444070064817730868615315718883531035318036715084803422464137351815859067052884940801023237845849568192927007728278872817504492262257688659720675370063931239251897928425636481876587437147127031576032925207965634458295448418179381854453747307208399039228902295150933430429574270157461933736265334378289187661240396044586021152824308456683516037544369515413435531404604165681816884942152410418533008402353395404937369966402328106839096450688828145208745311806240874341420127785927141955371886306457068500046456964313740015160512904559222157308124014387147432800963932068569595966884855677979024953041310714842953108810575384985330348621545335614133873844135935938636322509974596487263987401164937687772303085058629265781958599087300702388763631018005270814535544328466232602990836383135099423670631207001173255519089116709018851486477248178811144242261899001826730369286265556595838506573267687429920035829080799402264601465908026170810509199679715171239741931978898567406441816203832388012147447071278666612121643683811831621655924924354563909195316260940671963647293876158304218064042586397871097490917996895447740233743986525801684668540776195004739416850069439209008935406156534696794704424474333167587767884960457765327468920370409009091030390117788185472402603708500973002115491245380683954345215064279268762083835271864391145194173568692079546252694118018953973843825767365648339070726525713888057985786328824048640082239488769910276911261978979644848140563667237799933151667748181674166306262006927059841528965029713895578264815029630003109656933311760425204219525766976724514814307460858842065136777351255004406787620239593688250713350151346763864598056076572083672391509547357839110240724893862020240037900811203351571321640628417549875290718507951467566068147042270765355759421554258424273578420581919089420669035789816175010955802167259302104513881890416518175585272416145484745811452697813713270933619649480591776382088030306682522186216013431007057468333785674041419959417299728232764015558772123487717393238508962104043426475876121899837472907930972806233468645320330239136534058283042926283893453273147274252669751807051696586671179620587918130704500997250714462415413681433025601890121460791468682458161958008016398808728186997774636623186525057117710736962553313660440964817967786068847741546921435379218019447513541911793445664648863134648566375007606414018271942369868121801112164133151770037575103760271716182180252938640144247175447187552729902471726237988993977530057228815264767706563143618308575982313730850060201029981411714799952899376134748579902771635327030263634317714942102004063072379084444074821954605194421596716895568179757054615582543644329252687572487392654233427003718575104119722409502361596118290619767587181713759928167711068063899584232097796695547152757747503568679874603098635145548433042702016542953887561721898735872315177991321123856356387291752062243357190424079156387591572443824328821384561928282880695434757857948080819152182813392667719227416332066818299747308400896563779506717219639089936465942301031864982749880051163634064935771815511747101343973288602530869742255862271204956883966674097569914955024801900987357339137907030827819596153234572724331305589436036701679270053285936303149718680833500239489465213112688271691412561197564542899056615903944592194503894968382446396153290479047974410200833030983693040998030978750566796678529910311322037307064102386031711087425687164115771558823255854888451983234134045584804483652857552669280127723175142609270162772226860075402447752207873758536558117315865217686744153506292616010815466322730543239491418394031307853144307787756048868080447189653214878819688489620434585863111274384885312589125960365047946665882355656919199762851842221869313535304911108077771164734744908040811757032599240605457426000810019377721935314328845575411363318346516204798557286165386709696910379605692112408323853813206078166217478974294675939300844110972489582697437937271689336124647682880490883282835405263082544001760796604406938975023221245683002650412612959389875933857474018161897634327136612747109118605511782452737202361818532904292366402350072223940117801860762797851666469737543222152032271183402069201206756401001133121946841623147118106033982293423141313147668318770448917320953102892856974882200484544647339634760789581152114572497684835586094900905461143594801470260298431245730197024090544484917752799504670873303108935611450487690109722901748478135798774966290098072321309773188728908976382853611171892017575995887584629858696121127932928951724415466651190944705126819411349084016958688072939631662245986033233149163110014302665390896004564665427887724208237624773687048974627651352323528326868606506806265910266898510240099365058352573027975711984879210072334304679601091315571915535240504286684302516412072445985434955025851492390749366807019169449568817442754928438593818929808025794201368982480546612999913978154901769838137557730659314910275178014541390134604210183096027195741518251191088465967952856631718694010212047969850842648212298999371255161955319303786727371986904953953605011152265142123592941609309361003297967815299777589182953938546520894348365389663161129486953889257166486105944768449471739966096549095071665757580761868559662419998228099006356540724398869493532231561963293930465437674058829540080581073389612039234225464788900695259622064124142269775239037366544254481287819795882613237422476345235135860068050838807515842330297533264799821122407731232848812888801634568849417203482170153068411574957410984080157878994915274160479615669930815947549598113937293059499447709410485280588105650658940559776945165018348029175119755297866182115385412695278924176709790190658762155158989821973774631801765436362475552976443370431674118508266311662625130272111601630971608364139690771794760782855621582435663864525318613424964907809456848701384071613488271486857250608622397312960432062190551361382128598339610015842262087042639850011220563525249061661828790985015025815595146328315424902980626021934940088366284180809298251448137519219211370145405702842299444764939867394474712332365131016603043474785118753622475257901483325971548747487728449529544019776650372675962183910444676644780173032138543695907336778471665709346240098280300940276964053622288140315005601852316743806081693361270565820788284305451755603338843751574086452933414094122282898823976482909828183830635410016958617125177162449863341890802105977613457687444569706645260795638096900342158141154615405513188359413351529496676526874029944132348220159687093952551735621723945243246939417829295058975422646716399123516235609731370566500214134262434879472344837078870947106186087962192522637764959285504980608633164762405549635993500813968732689302153210856675575508826702786626463795985655644653475967311437993864773009144032340038254471078281398517308463036915840902827777598740897182517661791592338453332815710448323080528603800310184305829600383251047641159891618629922020827178245821104190665991450177944514661461568973249443399974221276120113526967517369108511550278017757856245853015207028883859326570397680305313977745172087966058382483699193015566174654175554185303065592337128559084311910704054587055319520235405421676873900519929785468655851029851099368038795170345835877238136896214160507861724898272832607976487511118999957915508095067338941661086901552655472282293750294293928031041587911420541678033845176336397876987189940052225074621142752249574414575791748767219895940776151015632965978322637494056482956532501635947867602690317703879148537329535151017854456328032959132636198571586877823320941566216978879469445387649359148155316171736365418833430796692788196765565096539910128404307745422005945129953523750072770657682115435542843453850659005448286557403471929613828181462450650032876988604669845532064220692448134473385423525337090105302241967660925335936073316236494709311278772167441913296153856000199102886212992387657212509707971715382944457405857267760950177880339330503386409439591695631647200816823592003483171141488170015836817661859541805569691939755764734099825165405862606630524405355903466763903228805980158491358109645051299634940195522854027833760297173100842945740403863199878338058971094442139562960215093456476384829164087529101447515332613728077469981641651223438276196914526177867469881895339161156129378035438221542620921530538814870020037477221485483214357878348188294474879919055876274930268952250310484960812280381108219555175237479376127011176175794235787866762022180560590578036886855177062071421906772732788954577614990801062048545548825649114640852390015366738438755634204362925716784974907783165799484341951450745764526838782853648771226768071009689128894695403071148170571177015095547142861707094872507701420134151959426481314549111448079911383019235411563256233584419996859304328957518208637915791810773586464942150473998468155720133530484326340286314505207589739772617725499888969656065682035687865180569660658762621364921889542563634548825910902501314806390812798308653380562742779289347790314856243655753353300371164254403590378177580014476468711064197051417064227373602793610827059416552738731380227383922798681772852643917139340746613737192325320734978724165670406145280750070478506803607077481242115058708604395788813917068428654568111440797385021011266448450653627165655426928888458932366751941414796368524465048977713635917700223360429962751934920690763629914513387801686993335583850529839121477436629803824026362613639656836160653446426485411990846806621730669647287480857949520287323844144117255446062115956835434417897712297945830875525620987571615374118553244054115834378106110948417796894106363017882943915757520140814987134094447712015858598307458147011224421293144803079825174476839797070145147918045048459719287109367202291774796557785373567309368324502254025472620770425698326670101356669508706957317073179011522814994680819979904853701049656558684056460834840739480495280608366447324399065427822399590883646726966742567913894089388677545478486113523935863528203555139561019234911535335869344407837179119547449015034363706288208139231475490679023151225836447062169980905628579708401853104715652348317107780397632480394527451108408883801208843483209689914856974180312254133316103218347515373296151678097153396358567661124017169184611353671475343356680445919534224244991338935021755672489026026285164530554113956252764434594264613369548148341139050090134147503875585159019375380301609671678291327209286896453281267417328407314936077127433192499011594088150120786448077664451694226394148862772953903860092057256914869833196125684869420622753440275181370199576986538670166068061308741099497224058485375790585587949988537537379921045316168278230742035416663301121218222474675987018111979699629069835147468299693182646153304100950464512752642328234798416530556841398231183829233313186058112917625603354058752368694987832326345694396001541980885686982397894266895646592791610588648646136200062989675656391011030342764480598386904334629785417996375973528873234655250286934260549407662315611377874456219080146181440593504353363676677726813444398574467229846370574730882370537532266912775113520618987672556379162663689709185998039050832589824494594868782205829676164718462402420170636908258506078874358553339047599895432916484954408555320623082386729883776316996381085349549026545175286493574248654550038009687265745512982290035905747415905867536437209143851655311637896297300058826715384509000147328824444902829922981175089277795698572757339042755736177664674891828953971938622045449289552360206060298967182966316070114878710346272123954004298034341315414192446011876550092212084379835045875101173908256839732009658050628586612820270322554913146527955007296388487658734543045630307255911806689112929098695520109202726961464009234425766029943230024589783051630237412088664144114813316257226719923140789871202653227005511852261215826386493939379930574299745333029552981942679267460425132820420084785135895323453114220309683615356074184775724600204426591161810242972993373823021776002049111733660425945002934244250044297660444491717479011903055155866780440144657602581793728632508019915025801894432021483773631234830437083895720623350989656014767300286582812377412644795476938194316349612146953364216671218397586049470484307491046187280488849394168572351060454362346842659176553407850502819905075422359130020065062480717453699009328029523624517870877300366342872815591305045898398564158736381992855599422601608420201967074585086927994167370476795561817276661282366379321588702006199941013568980770760007880656057211568745989370561473114041891756837931165960162059306225641971404597561273885125777753419411070716358773069744702647596268391599906078863427880754211522471016087911513755756100141108163444824465786127425213905764403652815175286158091917278280592832866951238485276666595052632807439344085547148607945898397624802308680073059046658171493956415996212607357469128226899189633880257791033203857799211549361663479068885972379725305438997883470245842027385535493487427016317342491263857883033089564625509154175885153606571233134508797269075741634450691719841396683331826305915879097500503227677842394756787839441743405289645265895345419927455475458475329449123162037446799581728792730017678659226313417442410481389619785147025732483833876781059639412396325968765907934614143101656884307048646870482583078297423942631293498251233638231104657021313128239034134923578840131002218678343433858277106105016501945811089030691871957446519956899894332058222537178750045773294424161736997419099748947893950094340795695904119337197336402188023465807915540372778787773369268984950240404820499025261045267909494728093484623062396515382095317860765254789525959868044386635004625097593555756391884644546201690214586779461322120428633108036504931919637211242408397590033869813720816501112667638952879290813438394149100134641663505831986829808299306996188926275630119669498990001805947358421906570408496869440023213859062139446179778109436080609936816166689100768130462316506539200956543085335315116280070473748241783636096596025040577731999572199583938797311373552440813320124689926789280235686880875374010697304531649840385674819681551703875917192501017799011495354768769187969411736514323906338649006993590245526610363396785340726527688436205669659787180192963150522872843974249589210417706467914162714805237346313878766192716212136321686003718190042493930284461523700445781299250091812855114817092296371227177141922377094984871375714391084788885933165340965150497358650451988165353754906874446752277495651971109678999585831019294315608851441087077582864582113119550831737545905278692563130628284849188811414548893732663055807812603823291128910617358845706999082876956716860054012689236353908016821803193480997294094912465402863824975760850954609408237455353329975897133963569867344574402203329277732633561381916251676994408404051732115288053012296021039031776229365304299159251576498727314057471321989164448019268098431149166970782103644321375437611967586629416681106134809306165254747376456946815928091621473087335115809817197988032190197460509750050464481685769359932817723112680500038380354066882478799805647836655970989986195100099224678398498046467086809162521988647551604868235392259551382146083215996730885062019970229489726722186758026847018361754464009562019613122734975068733199231936685391354785798498480507369574194357127945972398996517274026510319834959357910582171630876442916373978564134820583915374057107254946623153441744411722174401892089349200487100252078935848402595345783104588925187359269501779034924037008704843197499937925113393511701030359420376642497868929820804434228209272432047176438423702739959472289935748951263232610636816480058329492182361680166181947003150553820711631252862885745729943653984106986207180655379237649576811591188230557007475451994649447705268034930545259107621192765751574662680870251408595988232630417564184596763971207726732100629591935894571106972550530181990153197468567416257110760706414984309361246020508120286388772977771434185023341791021795453203412891560996525367654348900997420706538302390539807074873958514813415580153476079413753232626909255199497483469869057215301475235535168740987140850150859046387275594819529806551164937179909451562099493473554398255914470943366991247304376677038174007269972789437264299155138851141901298322562432478733426012522250556408679959638338380869348992234178063799808126150814923664036400717982928082193180426205141785890971346188882322693755437671246038022819610242078766524439200631700895168132458084148593641665912148014537190158191582391678774746856343794842855467469944636478184047472244790705594022202933987602904670157272369917953953221424258469857529743239169601019868716341893967167907752527302649082542602120886903682937662562933768904666769734015707614303998141521354166015705721538740739806648979945177082401602920573219547464582267124839406586362970583967550670538620467821904132770926058048996997305801200900935438909168535423645121559662296165686675984480995392072388095037605956565878126471681658039223567284077012675379742418867047946942750886579628335797360029276941755951871829383133079443675782028094042543493897816276051258847259730611055481087253204612992328397405485442507483410600185981278327793326302688584223367549997853640518272829789037792199023640589463248160056026500797417193373148551596133402528758633267731796803172005075458775879324574971986177534843029982910318736226342871885708727717437413733961482846739211033984590006628128829544568424032353633422313010844456361344021810282853955977714095865164984789418812078695107719528160662784614242733583438375099972394267960705943485073834575615719284084788045726625949512726325326699012190551856260410341511606535266338405472380970523603527883633813438428651137363553039557543246999174817760242560921451720751016981067175274708553118620737759227295090205958163072214644249852408302815004541343995362993225876971497518409142845126194948180123008987728321635749955495729390719972113530254931558577923109743845343585209826437022854582463782411827034043864663661559646417427333937845994234490025100396404819541181300351525449763484727060073540321306809027708496371204973997925885422541421943965627161150815868943581465374733905194181861990848369901357337588673015067145287784447024718199781978285984560105258176180240878307583566140185451075860549375868020990333540992425642169434844888393473097842746651843367631051397744479881564014408549075102147034374007499594967551725362985281455048308125529227474828211526956437368686080021885850344294304536828292025653517065759799177079033716780005002100930494800292070720626400548498543155661708080751989657378427169201371196609784300852269219657324197638771305281101836336492951404124182221035150631669789792321176080871684576297073778068495714524925640020424873105994770529541958532599865922140362630893036256456599473692381753694941184204075351384363585523299199518600779786412850085845090418090888602326209878702585937038374865265708883726327150357627035703648100634821247814538394276248714131149572722922217873588476744481912965977327682503109538389475152369587393255623733949893146099394375624045246990447297167366218115738486004570867031889427844230930614220038403295529080184274810505890468799454554620347435456690740687127286935868485221428728698087828448369653405893914193573929324531209758169207559003170299133845183655811183501658669362334182401079982385210312341491325736310345265746969228435071183991644597837255376660874389947194178108871998493610279404786159999652397762611888894825990898580773890699350198202515142043503482786794917874854257129935627822330548120164188892118400908690788414866974172214142452264316757953387587383327250887362461977265447899304331810593086736222122190731775186475858643613571718639295654667354937695817037965579895656506882389822764364645945250089390604849346668192011335809575298167672467146016013390540065498802970436962770446363598362702911791848838225697133272374815964988604758421810861135860934936124000342405799164842372633302313310366934034554228616144272140648819910425809577507920202354452355723429034092181579444673893400590444910535368391178364402267298496583763630386768680740132427350452184275620413275278384483756346516395172366541977127126647250139396987907354390106768316185654953440904920959103145812070349947248548557932722981095967232991456445810791848153473979323041612837741202721767733082485456036759112794285540623923907755282787732432754719868354497345102104210789770533485559495225161921909015287780035644614261733930154066506446256111689498834574482473969282670525411937023301620642345032225252472025767079598687997137114315339113163564336157489743423743358506960323558650877297637421798971882161693743044814241971888339375189888525212302070197270068086202343981548710060917239765519347425854191775720642888710765216767952249064005865146618842030162013545933468172543821054292586469274921203778633695770644559462051626910963989482376441621776379421934065913655958265092389223057378081618104725616791154368607174317565034303881811896609904152202901839348870642658127091281896874008610451154865899459862820805184607092314088145256130759135115812861066419791823663411398889077401708193656525861912895078755847487165872903591236362176608120742643406089529366906767427110443531265397732888612781820279679174615678766601515012525495535197740862215243229333846550921436499588660515248242091048866596179866809902432159696605894832076180537590498687238496948633737341876631330671250637495217181405849298979106363779655090566624553040615857303210688957661791732030139007899008697953389765432375374347985806857166034286229642079569415173317879813087450945377220517651238690759964046410705587951559491459311540638778993952889816193699313670309697329235686550970030270297603979757655571144823602952345372916117008765451598207830242645611838490211243471995153260631582681803150304410681826894299603441611387736820037937793380516287964250289394561998568333087117138350419189174199415617989619798676645648432980744591483605808074677112745991168578388440400899658296507425500611422794425066168076923310148173708839887821441792104884216722557004819644751094357068689593505121528435500772391146985452082254200519562553092596608134296679478263030300358542306370268421307159540030715334771602990985225201026591278900349388403143578755014219370930928513018228896298030994206077706144267745135513203249685578934792553805420905749110117196349729403451598931999119284451946200887350270590351040539350428356982270058635577882116757095836684139555942525106530439987157424436671566809317832041326296672557484499646971980139816030954422170563039887784848657766273042335618026841655945994512340614353836595342479584003417338330967849425084585720657969866040252310090271673106024249300459328323467803243019037242242537285427998191798705004327974354137358036164850523581112487472341685996375357757409237499588606057762682897163293826997884197972637830000942697444323755793458747796166741890611380999303490940135409004744122273243123257687890570701706426795050953408544398605209839042273617165709600697793840073013280645850259864925420356154147758822823661690181466099696522769830698306157088259692627088103847278818340607457253149110887811357938154523387220716564121068015368892450919431975405281371169307498761664333139899243543049194571812425488493014292011911684289794978430853155543346401835202446789125664002874832454585894321164453884717845658375487584186518710666413431835015747670755509634749298980114511742431772319901432452494581655681621189006780089607741222072243725185216246034041733905653088475237863996705897628296035178213487846214813720991500666615722254112850768468765270872614678852790435252182600695619415188524154211292473252731481694772269654428916867054795164972131098347187395155421943347244403672957331597850438731829452284655743103471669671997167241142110419872621513967746403982426471049234414106121691088196058552889181413670249718596979757970270976823305399850254677117407270926361112818032192238544435196154483860667243691951441039892623789906366775763554997559343778754612045006438900256481979276843870384792423004312169164945706629249928854719908179529949368021719363990097942915465667767789413661124493477698734070674460627110826417407939155732765374427654469999593557366909677818279797128023621106453969132443696413720474819843908356970630610268278627012292401084313330963637973577505680537146998569271377525252744153260395581747664828705015914086614867428216662348246747255272359177072605123288131965379849359121530675914943780118668820469973536723979862183535465137787088584264534029941547576173533234320643619341416671989737823783632306311960124442654620744698416823470493443892992183434019037620289662967751525741406855848425874249043019898981637701794009250417969452265849202461843584661939015992490783562810509854967823799542690847135579323766456959508616390815494436607066942335398848229408066163265267813099211079757634441563778902055312114056187045671550852217985773667915286650613459122682404529015037193640045963976246690847720159201937894617405509005620059409717206708298599169209910504338806429838321196901105132643034406605747135476428151193093997689465665611583814140106570378717544439020890506443499258865459536798894067354053674311849783940139604707143689015424549897981661410435408239266706754469587586310361549941952156945383535478683231906904616630159191031387044006583087996586561368157247805473549925801180975940160496879775303808157093575574400379908947777474572447495055046279995405128952302428299395690118752634164727724848483083072531415655108496176865632740497103263511496520739792884656026318382300787763611275348171494455634423857109312277945108161356639324881172069233967624172606491021479832390064617595999249478694697794563508878873870224026171277599662345195312695706697751917953529732540763055061882499898275350029518529614892433115924970065024440377841043697567683521539282795449610221071314599510099846905995426303573042698765855316101948799300482601532092623956947445644651768080339853309544960130947935275971478749146016400819564045398277020340633338440698705679627705441088875902132665217919795037961010574838937465973004201646269949722004082516055646985120487088860836781319862308751236397200620426985304543748744173649520637992757386920850336331790690350873306846696358994503592344256961532440942614796954513055755556354583365587156940842186635612009282052293748521488737805375992925678563174169632087901998628113895060463914905137650429060353630818786895033126723254658406406039571472695303147134482710163021419526204775043325725888978733579009549826448172098631421353756574643245941050700606926598423418385657668928791972901565679818294266256239191402446739436252520193600098474990745550387615914074907506983788840646503666088371787843838831277567553147656153184055295177137459934801525933316153207103639238474265520912093807126186627072505927093919039739992110107584160509360341237767502396393696141037298544736453135593742253721637876792937140654875944574328331248615413463318677345317953212556515501009718074125487315107848099019793119232725440067279029639562483707710643691721747811137919605329256427299597720267644810391687283341611243122378346781103043599261514525954751225321547004206555308781674834840833750137855812942221551625296727913406117879063383437990963197947846008207347308727936785027645904299980304773729422490359437269917992700301050525905696023214628840330289822547458170234777721188512661583896128333077550558262119121956622002062489440652037049771513884371209339565615810399967524053882269381227274308992646162103609895266541330934440141896026333153071479908487240944882308641843984650375300864823564028228737483642757110579759252741726106378464056955425681251006671321994439383535924022447929809948424420045686753446172010880809048069511104304915615275130781185423034470746894817160745210772469998341232424278239558458278574165792012594694901976991577735111792249438290926304506242730895479518201653999433709045278857616268852046259613375183446737293947366465504373682223182769056873180531469456805949448132028526370076457506643791886555383547550070426289090315853919676613993328322318362491110190535027514457201261397190092415510418901389734893112533206859107882682997737035101600450752784114727365081458744426042028202488380846764299492074838497479130175431175882825643700173951680909313848273249791277380666126050412379369443643559806031155788178027829922904874794928350416017235003140795015519642446492754469391350122748429285449132661702293584037785883982910145958187602632339401580889174645380682577104621265041165479901190711255726936139087654330739050435094722094981006304905358898402401230257835474633848655428118472062738450645835067119871661791451818433161608796748792326933962580168842118784310658369344466249472683580546148829183271117980984452871228927200035513096323047422163506020486119330312070271632733431884532981463629814706050865050720293242713246961688685469115307865404502659960448220089557252218656220566717729307719946503100023046548459479501000204816148488915828274800032183941822396998257191629047179046886625204262698261199403839278547211535575954374723866538149265940730656609754279646006969269901581846948104953396769993293284765999722317313115842113662963050259600027769017405975621571633590910463308328777356195097245246834933693483946704078860045487612307810755048091603891843330993488847640372936148724631311400603213448574790308016748191720339208684980067010833585982143583537220454317140990367091292980424525634814321393798726667656835657687068132296283850987054855480999188206669996543894751723245149649826567046441901091859484253110494248323451463688694563625762617508378863548700648556526296324281386986959104038142366267212054620789486399577898330156362859084372515351636429692842297694030112520402360724979047387529796831662023777570064854602229187175859867993478355068484405288243960030942537962081877392157768917004630525930420912582204137338134134340527502106121351350699779874061935672350518812780393587042737842873466278269516559169010009511113530736891587618630380829968796479086787605188876012636570862041727540686536117520326356103269129573149361137528285039381896581784068148432581290428175268352194338836896334890130501254311948108531909697582201058805270144303632045706173519092621098316677162588292360025514024654983754119168901594558194661473552584357613427262507214102231596266088600707985315915346965344243759165523513962833447803184529552317275322100574484148747481527305074183002788884351391149801206284353765330362262170766969869678137556431879039618464218851516379279636889891082565874541851673864299004177390541492561336436431090577790325470189962902409916031966692298820501076138886199017664286765412502712568722909121408016151294996816836096277295460008082161378458907783109525563909502411743953391739740748248955621182788475462042571819968552844008586534886981758981715297581922678133046897896007373164718911356154916638847028087454716838558816763457675875739686334764176940709874374735202883929678781334247399824074133212226297775614988746266528038753567926212900160571397274384272381334161359448895953674214317569151228627120665953850776198175447714176705090189723197142430001771014713795612706947081753206124016774953623952893487693859617662937248852372159726702183320368620707197897346262318408164878607269558611884538772311362813974282332397965347545831461550898094752615699444502612000455110705614547007759065912899743448421009888648368988607564693211221371228982384736222755185297685433306448002981966151102928690637592045293679529610055977411422380507458234103669270929807544553447821833209278690738677942990242078880003438670820928829089159561257176721819977825127078487887330917491056818822465995908989357188203720794079925314156897674356387591279326147812832343900446420803787440222625514370542698298006289785548625939934100932474175730706004885070690347468527183796932088361592374920683183074694286522123440781895276875009261509795685595946944384205483311212167460179230688042643436630692836385678931947589404262363946047920155376307835515790966631753379313294757626170808686425175529901548623026888185249139397228877887660804279928741493992757418036728287878042610350062840428061965938691091935644057006930129601514997381179352522141206742146999147641235426302639478433604979704343388878632258370227823694190905123201438444379883234655092503796218721896786525766357858433130620645262355810541893160568458380224903644934028043795451254388351041251327728260376398980604985524315464576332746498575250069886054182750086747813266344648834436510876446120952514958203404598137284363959934293275597437551828661507744836522954017274046293699790989126158402056582546789779580770394554041408115754701986736525320524345532281004081432500011263149192049660440029482911468072889094070821073763041841291970501575987996654838082871211832644258369609563754872199835875723791303272122620940405422277953007304993595628382131123846394098225996874508613886791409485393778877281568515404426942661169818233448479520621319636295872813772646007695399365901469440091847609458144098047696307936063173536439331971267683902178341698270291440249027668159286026170720729309876195412818050646472441669583602172309539767933077387370117364211600399559233477445891519424234530629295437353469051430001550331117054412862897158523677868221593724468502427488764306546162982207671290419750008717218895669130480582794978389437356731558196577279421271195885277215568563621012988666523894897066550919989720128480076597579919630942809896991432051454755372957166182694073513691071827409290808782787387604182518830320574322598259126954547868254075171393430687333207357295803215260297597419408345291937484678502319719244317758716446631134224460735050257244962724075545945039973560971252990947612501646747224389199677898055822115061693922273146414747966102723278410740043937405606381573674624574755625868768446159650628790595029800144077327427015720351319380622930361369693181764075429860766049800952721031011477383231883445934178936766532764567881254225813707316354965420987199557969711510592466049257411390956273809000812621002616992810640138048319070282224395101188670289955016621516360518052051954787436856939802683650679728780358116677678062759376728580104998429857693834228037706525860338179003070119003646328141774579697819328134910994838043324792949680671296832762035919335499712109448786484945464179821459766669946025750205430803558938264511110494913452071661460525689805811323841974925346731159419273022206476460151024877879011306661433507220880681551738043653359555535681296518677744912703425235930065697615417309365976348648441096757991642933490016492491170782877872857912216331365682787418633755188346285679894212970963971195258792350923935921187199316090406851733307140123056029693769271702865513510393469622340286156209213781440516989242376014420558126118457943339267206871556105656818449538778854278740631647489750677294677678692188633305080167979686178761521288714152637084406468517664482838262047294306247567530097320410705045879147547797667915182446646859554643902769785541058442541150834860653836082849531043257960639885754608685225092734910289847395922000561382954574312619221795140268144971367765863431257754104348446351751961679732949427085530927330036274496050782853792795243369754685029892422504041966166093724757882707426063369605286223078963931755434347758142770470541824056272905025154652930335988191937354092114573973722002277639677172290021581841156835885890927146984931522246141505229563664566238109399068542820388921872764044779349276573630058959533113561324690299975986858260963857695917250433021083915539432434189182958437697748966404576969496753726066458581866006324614552563638643105513627735579797975064271202881930552414769313538357915822303367845492335146618944215593192939093947325035916373709194902614647585430910300697624592339831220051229711754174956823101892931938821283328809877796787510969952653030430585643941777609459118691111079493039180101350910142800898375903321290878950771323104374445477127944803828666351927825634409539064528746444052346880379500126158496895128830037990562209494716859921421487033383306789871870426471588688530066093119593197404225746021265513689248121578761711350530573210043234725065200934367447982829280579226995798948298446442089253158761958641768981363652725616734883943154689280918290932907087927326677885953493670368350034581646228393293247781024644903564607660702332622218421349993326400038651872397123839146996428590137097997181717654029606245681750238523914879257729575383749011910028274862310367877956806661711609300741835752093421389486247760865487775051964823562921571995571818415489924957464183275356519992213495322872431761491329785083807387816822863980985081545072392284323105061898614499874081242190327048316469988074798975539976323294410718459679673505557795069853380537305685291054301092330288498637132578598152903574132758348535818195069704872057932233095766907099507983226547080306741058994041930753739099377141181144694567258550931547537404429601210017201388181740683052806009600317083634397435846640998732062624101564064870583666266490602453661153566696733447972544145528121484627765624385921334760578238948567850748215937051032196067754735411170077882120125496078247725900415521979141482270794767402358699808866730826654321009324666041194527548131540172460569460681513044788570572023686375430428217503010304875205889470225238692099962712931952730483678720674698940763385457754232860825342287409151976510124601090903948967555061230135114720229496795847024552379217491950942651497354762796538784967016099812469711620721351331547972954432923332728441612005899900192502156847906198382892281759801033150847009857848805496103861813817803124471357261125235724062277989797562620756193053975446010217517359041758487086012830786348422463030839945918130136145797350681182440963209047680513408788421236032566942403066153052379283567901228597329016014270527954587564618388181916378611374091244681378853758857521501395900550233399745132892930602736807245550819886497585182644439231190930872178626244834759526626562330811048859572214473686760666188614045964689028477557875395407048869731395316842053676921874084490920254817281209491017883614524193657130595898994795294083286705922987091805863452454009724370871679107011963070412518730405340600509314127224881901007054143319980731388356320834918856606694406559882621905574232931921738702614064851916824482483000749551396035224987657893761483408211083871154978996231425893804406221415340069746955960592620575468057806440361261898008695661724708131009685688112271076002743424706826742233853251297160115611105735653984941924508296073926278761213456723697141276628705089346884103417764536803284429175397200184580758229866220509818264973530742695974103853465046752740817131087091284380052877001489108470399192108113358586660941099438162509891561774793343747964971457434950816355168962915535911099747131611936717085433815899723134168044808267860219328248890658971231886086391273648045087063728959246688839524759919652248392595593412689358993986919834555134082848088551507102860175861884994902983093587035324240574021035963928438265115457214014403796318613629492554088425069049195649185492569471643415305211679502680049213761684679302323536376740813616283185591584325105383311873911127194392437175421313265541254985907558298499178749356083662916816990025333708600205528597661748553449767158378407708563472657254708501729936230157420772647126734908022953207051084269621799417727746588589061412369872576517039446467622859357223075544016426052051003387817456411096587335551863593226377385926303106600495659494595330278471730214921101390393945158025684066421055869409332456340229290332452866637115248876095427218160427707793101840650730589898722488884410773976566079405836933301429589228720057991602109257575388465879417447316817550155542205086140470882854948320108889040437709808322720512426303379262783253899551450408959411878658830619928258788831222245116012049587005956588894399502841599926893542828652588215391530338814251333385532189641048986609085468855464768255072529144909495113275757132230436255404933135241774150741346649950959107401421343582039436702905177704309738893831439490014190561512357872591861564863982140488855699939265060049128173682769128603443955454526079786650542930362062230110698471566731864692373189165893770992575329395685656568058168195756580392782161349993273685181319147708096575444208212216987858299710463893632636279490174956849391209693448420308145789666971473292579226103282897150971419551410276285615666302067225518688417160629090749965665039492698033231128940904108208929964756410988470602581194001142872695581723278325871490709977102089598690466765938140652694476782174840242879476491878333309928354364129741619007551906568887219363271695694893369678797551002554116466806632386146602766452471762316898717213590753758382591880251790043538859032862125057959331328802056089271452091627765165842535360909952419339600971621330539810130640823000584486325648456503929998172960695059567537538388204876229915727360860019867437303780131057704958891879339699297856894822787225277451748175171360518401032592611616620205548985865124882570405719945165240470088927264491165817056786151840635646742563264153605040008957610700949613736852646233647076241869455966406366120654362808282284191988640604757893589160476134349905059549739542969032245554775041446772181965168203408863233316836719400638382420452930024794452259264636814601443708140494984022363097465937576308857714910076343833452295453306797846869299223604276839669854694993244484542237860442117518237696753101939784493364213816636185749304965589959915461782390964921459938057979780084805520731864255536444691584420553229516411427384044551831182371049277634074484444111316140472656089396107948159345746830778293187225824867064749572948793847788708700725066792613840061473010443538558988195777201203471509494270732841670165652580333856404334614550616132953484069000044796178682538691752978082279418467670490983347093226809953279248577365102763509144063572269048544902511593955554880054660661053071480384160486917225102783819153097634287535075205184257804154503474670288712707701823900010722575812319312663145385902774833767911278156082398542215239744989212128767023127931309308116558380584388547012106675535946716673862545570946006175123919379188983278850049228931196381802584266855929664598869142899961512653162498979767199283847798762774031728176662049486436590277261265826304889929627712070890976536500064794442682487337349208158753743937376692584350776366579491611502663025604416368708281784175133472742800018201101237103731136919121376386877752138966666881725290458060271226177594306405173139990115940543625474379100650227011470478733598650805773322404891407273850947714377721801521997072770316066180868545475165633859945048484143723387071401530383058665321202155266704029483416913986480702630100888963193315008635410374387806025643870294782558092688793836290113464487476971047753190845417412710044886886258937922236137184239050818374345175028060885691651787769439056222560139709742233117792569296934012261248891676273376596959490817147838265188723700472171666471140290412471453430505387903916320575675183715495741540342730184999191835120075124581579078698905403798548006341694170007897036505439226630636445215538270149553497376687857232319122574061366573899364159569957897769188043883704616855920187632918423769942172167803982378755216345192744987575041349694876617018887844074429717348063231277819713474100240126142193010046148482877853613338579510453012855156056133645745151335026455601923720676559577128381063725609201405449936908370263034070608901653930395479760144268524137307793689907248039141179953428294357483824258835795076499021279712203306184096946111975978446327795587900822759664869198055750272932759491637724356402297653390056612374889300901891910606886460664609788583042589782077256301169675423190935421695976566287596821385595288902671906931379201089123705570719157944398824521486629226529912833981153502431055194770778019231895305660903930251863994654974702387704423185200541867775651803910473188833020033526663996349568883158072584553464843717479811451687526614087756474981870119895967123881486245312658656270720542635126253891261960342893017298638386589930901941411363119624420600127509000390469148544932694737191340048013999329519114009171544305692853358490178721338991188983003428464101578217100555766844882069684081643983512782445676613125262052416274929329575917713689183096041996952928108006329618033866328677996690029647020018228674450068883540713386933844761675801099803440825833606446033469328358335656309250552502622153159465318760699274641874368278302232035666081719383066726995266849795213132888022823141936880976670773468964898500860845025169626976328131822170965770021790811856027006841635757729066414315108581017266968167735689122728954567609954482147438698244940574253119871732610908554813810804981856684303757531608071892311623873142173344102550691949751964774465173872824289560204301935504611013410840480793801572335322062410596612329285756917019398560855238954580449663450203556835898417375051752373524804550168352494094661808103001155348540155122962969103593500905180298277294808051547780476371156644133538004067729200459739016831777721445007200853967135293806250734957548132903918573170585765301769304887403701796786855527125669689098879648619176112667811792307696609061990385035510413048948449977892324436611647876324840916268337969700102275817151978252941807844324465838947165935192755523324294677287149855373466612899626768945535827981649190754979332159090838622610521907824393532891061963382075378672119400552459016255799818306774703069129731247127438675223673617453826300221927630633445724874340685365390865369529219231099511518632194010426129294072345623108507560458673896263311554046548098595393569426236102612446882660634550167635480393184408724891090550611422657625444697702565465844394774311692926570210630616428915391171055946966769468514967722779312530421075252093046033335846913893120298469210408617915013688625747300458787628754111723884477752574319429770638977137154899572130436086569272325092459862662963616519426319209967006442476612568027850640798209912250366852448746290011852385275299668031383109573939336296121557850427234542194649125584791941403364237563831723181681860456009498268628215025223377628988685768392451745542587983284623708114006588981376814307044554669366042177707198026374911788894735068987376306681549869726784405162565489122650107840506635858028520653379498669802706415471931326484677266032405297320676190195662349641075193518797997245898253376651029505866940554186865507305863701261446661810816828162406516465144846488088009995565316013339933672247706334438744648264600092687529948926183204981068029611595228454133339137653263173408375941722883665200372533253835626359362007448307026223938124949636866415273587681886451838970956956194678692449627756511733305055405195124334953013829105423620648436306820192926786973577950357810606617205404511396212943821503702676597448940260772568593907649913507592843019993043528744302668360571923712309130941318691356852429114696588004162109914805319818575161702348360692422091247977932496204275426903820193348196417919560518399291723669138675832571089666678205489468548275770977155667223669539526873726246801873368180400285944015988296262302542948893435654640828278797783285727670548270686466994954040298008123057227680408484553758507467643424703309486459310260967053564165502174297863421680852988579780752739485067950984744225039903981866722702426075522667332745758982650352387523649950977095396035045238110904299754240895854208815217888796326431448962012846116152673680718970308714255573081581832333267286096834288629520422112372111633840860356307342809787596230638846509307367374669056586725750649883722137270238682009391747430522367043187528733620438410553013191977564510840801674567464981653874491741401401907950215495711895556152708434765960271268524114121140939520520392427090138905511473284520432739813232184910873821218151053833283939017522782322695783768879764212627149695564331321306030823136111669843685721478378818591838644981384998910149809319821360399918763257037856406047631284213825063999797500619184163844309405115196064586059606218558308414005176244718953022808256406193213140505822440652301476827896991550128401874452156007276848419183188660599391706315622470662311644334488423663410065956758297133613448890232136970182598545668390305894322431922332064530947782064154972291032676906879522201802121675688422770090923808899853236132060426183463591123879526593550587451386008690929912792610715929271964870368613035219070072126064782126332694211594868228118260239978428090565648384650777748697944222812358801209039463855810397260787966343384366313543852717371068901873469690610380844234469680378832526441287964212499984436294165068173813882352041050195712960006434036223521217378024687366186050329911557822503861843985326991657240967701873437270722255864158419058650441433390777157594000130707999591199656928825194845107017255432703775677433716222329770349937132893669906628849964758203312696694340633602135179248522621650870893776603329571618627662284419878518911725091296381662150715764518067790309864531791208068550408427460384385004518060933910035796296143048195931841751505087486070332033857441241598529737078274210805143989477440334924958158659678033918865776527768347339377093454643335204812383361531170097860370090574602640383543657348741517678764955826474414643753425964127301826942064169580232715732974242491183244014159508267828921330245135660175838673411710911245920487948001299875485277527084596567454851723608740363632502422921475529845735433310743325311855574343054951040070543328513924099422390123109137281252697090049521848426655749969099207948282203733356223510263609919392984707650973897732948202201978631283991421433773355682843231796445384272320860662822490210648125172186225116033452687079313574791641581814026300941541107400430085364457505656599456952535031225781608514660808670245973435841761863369424092952123152362493478516466228393437509570414027616610045584132958210502620698641534409774807315360085076611322033425963630344052865120230903424738282203282595902028452162767648419360160884322144671940109873814577109103631432962684910818014169475915184873085490679095965237715691775944671267613266834521871555135233082554363474787554418035908654003982213686060472425341885220788783201639051194939762268024077743871645293947847670423436671874609179308973264914037317412779327316540301147958981523186590303700247366655678504971599315539915415074179009989288929565372761724135435025768332193492212473460447198470236303684761460485554233186097889037562890897213726548610236539402752248053553993209671160099133067182567772145925804849638030424890098766431927552227370160329710777127597366599470947640987165264048519934175070555105898179905310838768637166832063439037021685443743288597624241697053220329627088067312503444452474960393675173774452887035052439727453463113442774190622235115268216203303150455835388038989912151174505695328744288282429532102121498202673673873606345423826843733608070144691997540956762961859922113941834396436638685588861121144286109397934954322747860540041891190054476247637447850258662816206329759248193015781481891461359604792579575151531628175890150528308306747253883416081023869873588805496858980093523531004314511486283820998347092720239201905143961072589232328584416107711487542991462575645748090677956314075440750872393255085779755748172159027260903321475395135454242872566610021815089625181282194966854987160466263734767792741796063461602386597934343606333695044198269998271171867757670779082568228866087143826619870714031452923180760375574142716425582837303089038774994370636128844915616199382843741816099717816289235877828562427177598385581053523737631480450905671284071998247359276351616130621131962324778500107277474507429166814303388759213422699564940143862784917252884227194072131488687858864401111155473872399891018501160797669583601313065389282873362756791484809751827714205458303760178243161967309968901040931933051175782535457249927449454443049535686153067222468763175731075907562524980212094150721515164284003727064981013350279467716151863231785938927391196356171304388045265935178316660862175544381389020001031512155364285614087282458958706537308158807266816416144937894889077631014113540016613813475440265735786127672963724769683881075509609797955081372934882021633724709738010063892203595604354774376645537497352151475923608630516478010913389968819094731404872219065089730430231258576543914458908690905244791324400151590724191729572450416411114220402173389218487082092055419231989183019949891593090473177923674642659383786111577877966856123389779122050234678191752050275868680353679563495259584195378308540149881221342590967862153337111861486561919139747208259346658180313093919720640551408655367801898958469520874333898747499932926180081848788997420167437907799613818718939707358006198596827408119939316364832911579559077182043855507943659766785689343676457271271498033559117468839996655679743763758366516139664736211888422826585240487313757223631438899923746665823946807538537196302847538609769506733129604089140335357978163236545310579386523506804961805481380037170350242609239009306252464020695944373090986365876495389243970849956316874181613705582891391907189833701093194364872798705869518409386177931626402396205720174579544960945048489136423737718481821414078375245792316246885585120743894667371813287715961051329372039884030772836620094722617091118949858591261356524584562407325556136891010877790482791000972247489820194812448264901394821339439603814084328840985285547076165464021443674647255773304176189485768911331789410039881618095289221113746807621497030750826337460124656408548307557881549795607984185291243614848742344660715302867397776813606237799603681051085449653627964432345947686313798934728446714864200558027277448194927399386810788878000498430506542329480742751162289465055827525989698786603380774678002769039186021232834040245115933921641736079652119538591183888427351214714649920069262598550738763411805923445818862988332468233276401365474921547652689498440943650052894293640395090553533948359627087430990045736446927203977494649513219378876766997499925965616051677805287080956259686680641699933459831735192853801336188873690863309460371162428453472339281186231449729608271797213894481774486453794297678721217097624289836418615711166874043814370604443205282147390589578482530710599167953222573829845955427668283042979076626539111791272994087073313756019504744266031034278318629966847167667490170352361486726458886644543080652603871418429862917402182896978298935617762491573292890908200276948669961645106219322656119714248173065031470388075724059116712346867857582807837545986736185292921856009481750048078121446432558870708143777658108367094086101669264992004864367153512565578750583378343787548770298072386348392818532635184251588357260502173709883073687764832176011597490980990200568557183132649243862540100129995201367690116440993731485741024666757927683101430044001728307791567581282172812906857558048733205107886328400416660968186817031568609000754087280516102903102137245349825145803116819465476355205139014625701197701232119288746084526423172646853264476079517112205291160548464202537602378365545882774646086936472740254413428903608435353512412995406229196250317013866444647597777216354332379512128708409333281262074615845565908903144356334633577148056694595743123809171672259212955073255210798936055031883983561775600058547114369280313362892852761362940107497835493301901384716550894104982664533781391252222220823770296876985597951302517069864099699711512623566467493981030101332342141463068584165935088056985497880727992023930237145806159965619228663546454743330776550144663214000722647640064980925348537762137327056465717550565131111031657962236741114901798961027128004312918177019606220426358524925035048977826258751960508064096569758132059929453038489074850031809786569657946234158647722783446727967558873712749680627875057584631173811642015802906032451631786730119480963324845418571240884760146279397119185979497151320656892287526468061935343849111762138973697441268304626975152162597675158631919370562004462132082376336232688727590902682368271405502725094682305114942809347223708920240439133707336436871580108767336004758086987793106875113435277229071165355837453255002211500501744441567203040797949386193554087971228842353441249899896717212325258397568232878995545358112560710143637393378389773557838520292588950505952998624867918470034277941387531244745970092801761969238499599744480218956173156529317586316908815302639144889796897957805533926436906623103087652219866207737599885544465081401383160176014653427058063014359733348180090746384460889472986320125967241240052505471954380341331149969930705073785688231231381051131369825441287823066407025095334755099860180165258717570240512302505484131706426965136203042255171741072955578641658839659809979613458387709991629491408608701512947675558334508583994372982641783676366611925725761049919593282741433696380288827281475614995532066096633581157726073463890030320157443617883931705916180363060626392908681963504991211886284548023413973340119789213745546023731543738458419050774170773480910323938384404224650160634482386327421731057034728284796067051404072003684063225209316278346740200175770250185363857113152931208005822288987163709912898374294725096827682345991006149449761278193501289632659601702472285656638365874376748111089108634542060728729667818187816495248894573469201321144366488888568176090839097005785944177725016208427731631831290926861875159690077258803653548936688733050827756550877276910462630485425495752881242231815492486749314123236079555634557122956387792892443364412174656406185001401094465221850669267798679491824077228590508528962001763939656081328070240948299602113788028883405302995030144595760343039092230689135881223945723059941591190438204770639510057064606875111593090104202491165264780972763788037961366898371893524036674912713686029956209251154172366702168142647216920221445710320290136601090391440370601382813269434483699804488346839930648515811244452484116939622610671129193007387228067716636869254221108904293756379749864102677612175643284997153806904961356612413524639732309970716841613381124079143390369338934438253152385286432056603306524851183825312224149752458200235303824770647016850432656985645024793085246104083757751942474242496995373296992234923447956072758636151505421047018925862981492985250145165814034050386387451772274420907023747374585277627797288703945296270457234437422458042407053170265713200069424012903403210797926092356635570589296617237697751030145720317756711290955516199366088796625654872384960239383831271395922110011221950614956575509782949213917896368886935650790337866834656315128028968296216934559314273885677677918305325441682114963039470175589028945152068061574947359805801299666986287905476993971705202410987634196808065966567718828812504324425693682072100219004363319972577487911868804053120009091691552037574436342554374843048826207161664118546556086863569074756110952733986425857291027928141322414838481212017480722274257273263809570565306407967190986977276420367757810393580684587351841731511436662160210646418181534475861658623677761409982612106228511628426874823872398594181205081500750169350572490887068019174019808624782419701687562353993006188761110918694429105829152914275436367102468933913483525685127238140346929265722706731758852684845108930044111981674773411479204655224143173480932075256820336915754249339818259719621441162418455133451341661611696016766996540031075630478316355429325345311996765057237520672234984826991376397402207628441775220739566769170007474555390637405125999320563393964893546967560570889544588659534613007653792766257906112445671766474469970725837274868401360334250326188817992014985538454250017958932595431874706650301999867238783687989024440951883847792561459313503826304242410225071414292916321292611197097947607030978329240674398909050601794065156043352904317641335192916100282004157441700603308281464188659979000628975099944821837308679764441154232408415251938831819301364902088111136612185761544233265643930964901366040112240519845871315384788337946490346654426067518400447628119115248620886415204755138086027849170063074981466999329727944595499807399278690826096199916284182224683777619986228867664093619960789045799483787494041181373551492010561238707049499298806572455363845699097410358847139387685080171569512960378498357243775034091726071552753714768831076446027680511623934479864499359606901698088702924964277649720593013346947098574891904686684040517429740625616798479225513402458638034492388472257580326976153725646924366829454303932249274716885008894410313981564675999762346446857219844638926734184983706619556411482049220424009414647426987308307197038481337161104978314118201577284582032656071018267323666500917788753980020607754196405772801309957468105766081813203569044944634801936973192367697457417635547327326625375088684723759401192666362272478967967838229283137683177154971254683076564915241670912834033343999493200529433724616550366643124626081598826308587650303797761677956469226851324140261105675845027285830702004473686108740996078161205493984032047777352750567392111134018040697675222088135703633869367006848922931024800943782779560378703088802994088804933481413896310343650256215646730415262056146047819899547264574857097252592613080557221658115738723985961285430881958517898194779668702768060398100673503138241930437395960972508638610149815597830372928895417628929474072834841677019077250492122673427265544703312789746296174130033159337541548304669971300342277031126067179318733002986554346059614990612345197932242640809398617061695281158111009879535184256909636236960084757995313559254904416119536038511122450671651646564982841844521004185321880688305099598645715342765275150751019666969082873802936868074035434940684154006752186547983232882461626135526626434834382818526284911659516329269354242530268433068536551234109767148084932305509816095925326292923254879900012838278875935596514820620634566414715714114448154358428064367719375012951649677636802220286760095795794561879742567736407693087080727426025736717904563993389971253368704581961649025334190848434449477516162654848439693273622773832581095519711317897853260625375433307159275240089214231281361407987628195963339375839112126434142678417351594256926828276382740830835073983612513171356897002095363090280212853310603587874128942769799132894929959368529538774009541446502500647901382019752310949861182262836104937855712442552726650885868866120915182443960637113314173372883469352941645677078522098071026395779238166132533731497960710557014773564124501779309365483617630505085544551616846035076732022857411166352364628106371659787279978181237784845107302465223446248157787870957275779944092571656361049368082505099216448707022436335678079886153539894295280766759260237309958764589784493400348735112424397829695027180749843148828698083577089367513989173654713499599927749545876004727845970230501061456595708518557571931214595194967446744747268030694427221730594243775102818593231035368005484832053027348828783588575943030716873328207159950631506249577623143644012344530100053890992982545285153185879622507152956473817636347534415905463982918237719437946789231162891609377837771828435158414685690269450530946320831246793023149709347722873257668025957745276970311888247082041848317619490078440931521275443538865876359287213443176470397070372178934307350646291349752831040796987779107656497175662496313665139695661903155318408165417911917646711805319325228778017600360358336688283358874511593563880941581260668430558474338395157125424517752758286487586001235810824165548327393929689105399341099851425525292884047790841506518001921845306436881240281082652520857224479918198016356346144674843110068885656793042717940899297666305741431307914745655272338600288256918286662768101961393665528381238455651165126905058458108020364730695691114311496673854589715356243710963611922629097347062720140470667937093726103448631682128159263973403054495386624789422125591696448035286764105104236621471212066351688645822822167279779343688494997278787759033230435669829378434832298484316347463529995134287952577743286794923991545352797862622623383512775787758320047719067915011280783179155111734976460255750661950942802472838513220728427765096392455767382524332041198461310950606219776457882424467437476005408580368012257111985638731300627753925777883195479434350272657950682873092059785756400091423693584780857386580062373841344685122374162117588523571655887843732725093361185471757583705526640905759798076722383216047235562424455121965755848219303608323127220225266986268638189534236194461672315828087070052060689482586516265713834910679428708230283664458848298230294691761093567641515959132552282739503061676646201907625944387579979167443950941857593493062165383876360916312050591384150313615304624439450124561713948374234232193291011650068435433511402083253034597114282341056821094766050581261860632791896767882404194553032670484477678773218821495475181570125428524508704086287891726680582796469108300520640982192429092683117607513699321256025216393023500470643764415298204683693393633944895862563302948600389304821883679645434605253332446425074703578981432115133228390009686553354424916950048919767195032915276438894077425280762696287480777479481128514057995347411852181864005607363893136561626973966982581295405920925157795452117405962189648950285875406565117631089436501016731486929472967003524670865832289974308009181228448398235752611115166119002682464444107137826406678583186962090352565254075502687160523996649573891064978078064259051980347192534131645231667028433684053201615127715964979329883141040048576152041620713046053613943248017205586631937930900513851841705792399578690971098965406238299678231869401939801451297882810931390824293198540450545400294091436101012250446500542811601710649987812688963080850796907445704410866506733811602584922099233308796185101697562103199889837664717963136847640780038118271303590757391406668606175446807453005924576894360742494215748539362572525503550272833844860759675061700622896839717243766679418497382626907991191657484402987901413791355449564164433074713550386607582383000253864730738290153718646384145979241304048933956546755059214010505464986422182341742643042478598471443465960919322206585135934979082120529744376651677894731861803661266902877848402374931199315811106368129763986272233010889739742839083258015943011063000881546295465071804008259439353627884410526216751083414177894150635469634729110571754452299066536352724761377281245189018045659596436652583570039693132769750301433654083713226232118819545072420627577008128491057298117922071075718721584236327247300105450173196381976686528787068273333085666296734728160111013871558358460377803188950773817466152891140324219900003003223626346895842249359750831113700572071346526514840814513919086272622663915607012113490694435634249378205431953847453845198210494288172854249567139885599201156052026614821376174700089751495414961357570181208675208642133412290715934058603729337315309086419887186384617332952365812072215092054321976850832825984187369012461889248596198541107679307586719391031439343126380678524930580559963184681832080988776975073442572517803483310092331541873539538870614513954973259157920676387955191452809799976625057577738182464122748359107468590809749197186975189510721872269834948349893993188428196998833553062431899317978183763026684571899367813133545078549384838442786705024148451345537453168847643248620007999493614037671650707847672115971935022333989690070456285860871006209870369739121325068247486610047248292987696974774619876123121467581369295565754684737155774782439603632051186400808403190124713742858016611661983451503512478395560422241465266132238734356686984476440969620605543884613090347699335906917386071169370370623314667477819588180577233494414291828573434568859511195745741472631887248872294997034199818565005762230938233325428579212866530019667719768731550987621714397357094436845422586210527719260659653170713409779803776821924513379376583748868364317173281589593985658890188746606988168569919489007198482948290971717715144375569378060719861147692982520349306771158124101902099643101186717357790903262273523176208068007441862187756640498258378234506523416229064929016757852670717026173098178610591443906675088484861228857579297966402666433610828365020682489244359598232248145108945422571401582198692650885918292712974369192333059002712921513771644151120013427133432645152139191933128076718678970593943281401564944775312845157569376491746550006442487242565099229727434300670567325545604569465906453895694204836579982562191848191876752393874305116550770611593701320421739968415517564616739965072503900167692939127945629689349374329920056882166156684239317257069148033237652488095617967456071738803995240408890118014023068498403328651876279732186623608061478546920699444810029691914650716476715493733131815283786228618271421391682601598480052757778781146253655924685701757418917020066271542076575469233138148031282620080869699160989052988247323943865731532539722736319402288882111550030311066500701992555468999149054529253468890436082304658536714882957688069952355839423582584594208387665359444334712685016336483840182103079262495864344954458717018414140637728646768466348419061676294172077249325877431748757956091767859161853331814440605856379785085932569954959088651875890133401813908644246665651130150167632054935749051475463934585011380043636457358693226807689325192359313321728561479383873022246860316918850615695340108021013329424638206983960083728576013904632753819999589121639612734529468297791482363091592805230466963642741441851455679666374525440436416335133956663446040881558324937141741036000840121614122930539836410051682572923865901304485545757820871609607360646761443127256363042518068249907267461996081186017987557664848256143378679440018141158833446136989254986546689565030855071471090840888764567243466646400606372211871525702536380637820741848637515623900091181110696173041293084690618320308547958250537095101733513602302237044823968691182308829890282498732048474945405804231935440231939939931519476588496674042903525443928282175907070046202136181165190188107048198102917722765235836984909645114855798606994845036308176046216531694683251221848852566552347948465063866925194992331346674831689642623304406216227896639429022269207074867191080087507789750155343469607857850917683783557427817847511997044457065231489099125280670801159812311853941803621985212604939397775379189165499785584711041170436188548097858043899344271409844240821373284692005749626146456195034374329088002129271780724752110968438504536406551321098137771403497267877804653614814097978665395140734121236070088300183041265150060280014013053313315281304701644209041508524864360817852572559515971227149329590187211796014185528092759658181834780140647762894503149159887503100839671520465791760015488590713171841477007876920309556992078192065577189078524208896354628942730057086089333955617190313660057208728284058820719818077503565687252419376706445724028349053493746450158472364818111622584208756052099043334890747301311770944195075709882693432555760260419256427026128464476295214353989501267027488419208991462112733645665203941771686930110988491008785863821904457040035370380637535546351807184180198668830154734517021658861501287818760177777549309288720437602100159053968580026320306703318652666257050218633461101859766097095789902156531537794161342681493677725022452994148585185346695080951295301563709787906664030912154873506083340821846511509234390489965273044736536678488983792159369277398756589775627522218034714954152589301303695690762658378184466029089514519684792499637193425600509543520298627369039971725331959177197509160193359455445562878910367394822243925947737901903704748661605061772749219873867618941098301009056628865017593886691728549646304369644721884584556870360526455949953541137483738054746253423097680783821158265628382116457374092130843650497415093482592704810426310130072932576383226953138532507171343738820442585997421170262183072159453744916061356208827650913578985245369009015035935304740568989413648948960552126067416491812263663398901275180520334769463487610019781801353290972982238842638458913407235650115468947129492304272192172005084707807622805248693693707217812563791428023322444316496591836947957507700674883013821304583072284154260502972528335592528644631398593203657195844947489787763670609531084146605766569347698357630253652279869310882520265813098494243013710316563001790929872726035749186623632244321075319213944499829473231092838068356737728782548765410473864877319847538851394778550863218927504689438750736700469361164311847667846827686350727763848619332824006902943338895109526238765117251847902618303591555758048963145331536994371525246292686476192801703793021457669667691833017199895992203057107629372485759588050290100327943548061618095715220876254819482516464207516570695017644977620260611440739233966209690474212607076380885136544759112495433841324071298466162986599459980287543143226638274472812879808819202183173020304201074315442061300370530052712171349916471412103623274934937155845991489371614954987345608393383784126042073014133426884548717398183890689510087188612506880266336990561345005550041368706845687347166522889156385010190259148789635440737071866477651411115738399502062963166224370594942766444540259362670460191210489158548240873588471093239851415063065911824799074151138625437558546421196307394304629767080617950190435127723579394175973651685275113043417524777149840316674259692548566875476333144023304545897397062588016870820637902514501993997613160806984759449155450982409673907953767490039695586519023153956426380112722592279691340741567102829077466662327008375474259987049385778674981785419128693275242903480144608692219381480256681113377389179863089512002590477968752995893921304375084655020568254831800602031465367816957200592609143400079553940941362621666316042894712349831149942135631344646163771850322965538541249112797260015026079171066261036701038984219361316815080544491305270039084544770192449791285918834397933029096448982993956879275520260479884867769668296408556953762429243145462514393201319602775161367017379549528943940039477908639233670981577415140059261415289769449585860421300000096543949814230532934638343960360445895421800511267472108712512045436342434646051525147122233924351122285679730790368578843574996458499001513883244086225805327403801287885459710198113425817478785078921722435612127279189699618836107537596091195748934423145343603363722037283588231843969266056321247931201848880912710548798231477314582175896905319564893045155656355971710085865619643454672093767625191762266192898341069378483942050268515527676031081002558082345307577917662537761185668662049834070468230131226717789247321728736170430420017630882504475795586611440981986800898346262586759451877945641939544496758722696092551677042880659358786127875145994633953602859262342472339698694750758588436359592255210158915639466377166913378804889656398471574995965156123551005693079201427345448119598440603335274391933169307185759345651660338875563809962120951768217116095336604639010865918961697625356613400302855740353515349752120888314422328561944860390941790394620694872349915498611765890656675222969434355951706746948144062312880550176161138856156620953348857386793700128495002498058214590223667674890316200310811567769475589594472834891756250258887923269436576415397100237721758215838958981652334338104885930229262444572014781441722118860118487957675306176429166614778504154746041296582910086615216343847575516642021154878898031790255341192754527319965938276318885603019564728546463785777968905785616610299058240879634049788591295710492176052190314871884620202189803190950621545514532322142394588655540553099168965111143110196276405019748202177862214532588006654386295374014063023866115409530160694558775971339240357263180592794868957217029190434969150709613542597102769417655865256185596666933125084509023060992860400922735339431399914577225707158638902116377629031218903270509275265839303909041295256430395122491383529079887317534257655648219070284737188524647718184470115978313530035833740718994208845655535796188486114235402305604189728673849581192189512152336229102141310328660753217330437151508197253007471403935253279291464085300227661764241014593704433699976068685181127821597098312490508249586804857017521142245475824019978121770983205056178682777717893276308091022468755253717797119244672913149976477601097497231081904226633918255731043978272425018135148210860415454190506439413784562474880416417762848588751592706152185286743591338423029807503987714538203190772628275161051991253910280478842664090739053143712978117039895795773353670238118948903682174126512902231397690556571613893105980191179657560432714292080176727490544892308449695365933013866259485976724998184925948772253291662434524334539695347572872575590428776181913370498348411926697147842598988598396964962944893472310694506112723593141471086568945724742644840863647865868972716967211389583040307368161041992288823835527457075688536641741523765845233940526382382148658200179719296831043602358163976012448860727160123565974928101901436666808407143948133817800825549320419160057489591446458763369229359806963491815836761499432952895585836182501076613079754305449343594375328521852163598484369623137510387969104551751927299209551948275199516587659178609784065568110752609897192128511063604385070106336495954460286169292034213089950807135148416556982858430810058278609580393989070574259221663450463809860629565801026160204192194046570563199802688090194861430778147870926196522522132252151430803217529513237745190196847265635060612866183523472039897219522428973901608350107535880286219150779503045837698765536731127683983573505735590365613230090203598702787181954295001181055310803342404704622272265067869295509855721031936413419744485655068185104396541840628620495005401739660299427530657255948523876415427031082037144334305983314548768845794669634206317117758129941704248703847810611500883100758270517293380013103583858312428117156751538250886446787990888331817852552842665594679709194231742918167772452279160569194940685110799915396447175105573358013371638587926869616032947027517635478737639023599713691785718899963163339258945796722830033945742076544699659228035849525210461138214760492643683477322844420858160059795316234413951110832083583858580547549817681655324836416784165417502754088671295131450848278552069688814294203310759374233062618462436738984530976664569088631698960699295479646217194953554538399842719967114043303137858070640505457158103237209695538743281066522387976683936151748422535132234638925879370147100435979664274630618258016642894975123801026589385089850782126096919043736907412327382326195800080314648551606117897203412036828793535094338534346765151938243990279082251376752627751767140783394825681474923428784077007185912714670992409204610672023768042462940127941690145103334907357684303711600131723475021767238973076696721210179700873523098604067310118667333563652332902697826207494028798429980395405976515730547247158996043774514974264544398358580358409787767777934915719497559143136031775850713705587350830603341397102492816189816506891090675750179880567165185312539359392589229708500924636161142251263733208833878675261598065792275545860422120738039450836412064073128221346816402807827659959629506780829750275973917650944341953416712657287939312191049800500082330816258525022698885626057585108536939593723940424152516915743661215807002664362773606719938853898199511218632271594356989373178591954730047494057269443679377669590861987945658805619113733565025974266402002512668447447069141439415494704507573341931760951900236108668480718141748208643295584285223909324723233347274703919829508078613750838563308802948536517918216916762075791319330109111573116057394347363586970988627888418141693603902819410835565006985199599727900333976008850263650755419085664447186478642873333658806619321772301442369150987265182527798180163157457863101030146145098534891809263038267587224216246291579879474729518502376966284721059767432033590667961865780348485462071935484947504325307395422279736546948544836511464373359529130862917923309678677002756251186407138751965312515092320535754213140333739677325873079603319599738010494593863188689939329139215882641445459248657426748169350549440818913708933474398157622822672584780528462751467752288153773399992982705009038338693671107393854776687584814775534637900214053290604143321868900394478545239049334954231098912194713109523323901262966198093839652125274082400783932541310065248670884117731556590679962562302152986975857141321187993907239201267681350563789424545821179014740931531804120198756372766938720025328470574204283447002364663313837318780229722321330080399044916292595709645285993392184475412772637134403627015342426199900253774860371384726039332429987226650054451123504865221804978549890803263755065618814144044227215644078809703943641267370819083793537246469026738074048852359647980578936538594240598144610728912214149960736365839800296077488678441945665419584067241436563077725558359106195174178545957267233098835987479997496746371896353540841139006782923774327154888529016852632631770867841108325514688594219667075022632544516908389491898796074545422667311365661881772619405080928061140437020080455513158133515749344503813313136852683181927645287642230529143292766427621217628885657436733163130438190940989074135912483100859149375445353550822441155322711611885349887123336617019332581627133819474281299248708773781425207883150925989412208683005770977347970593994567441647256528070980379489892651594565269133537955388017874433604639563634383717855806253636536413018171266126577309040909417011479116524682710487848263709772715175888409659168632194219626794567080857501097892773801550850482380989208802192283498281859167046263382738864336498381807012659735316766490746353564919114381265936952050522075386802826073018436102004897697047654469579475872905608583088187184389510593986236299845868758881089796064800421963320177434645722571580085581245534632944031636683386061419190169222758870110498490557600334816991320051226158333045794681985615006197655603286798308008312629721464720107748129147754175163237308031028273136342002328051879769254135870822052299186169274584147114383555641999779650393959736811566917344369428139364948663222387028654531946946869903218896389720710728873447532246252632162413296964986647764154924684721394067907704398570941366468322934665259221176026593215942761979432716578695475471049226903571844544793411608071439884532499500499897876064088212462658901577612483169914756364024309481467124513580561097757180465226180741162280350924601821039886135849294143002632484425970992886113180302870620709997625740244236773156015242036377964498332954055956519379635639177364714575631793443563067983194156168208332308226568964417902208247153094739975187828377609831304469495831257745028284911268490197389366918087649014188513092033030385223797521323616420514802529574116526298492997049542322693343390211784256577025973222280571036613570763510640512061115928924408429125999884373405767547150627883250255682179376639156239015809571927585655043170864161889064163669092605852619178694122666451790979022276699487843292856455525134703708750605472362076151213681893320619520749045124031175309738756314414381480441184315270735648048948068930827311037127667642488448267770073926250809934040655889614606425102524092339475370100220658181662926644479461509736237210473405287719591750320512719157999162937577800939369057711027792760185322427348739868504386850187512617892238404831416808707145841746635647067365903200051492463905198881646234980305595244699130918991747817857095077492810892474183626626242958372221665481111419744780615970480648797897307666920895137198102510242402421734171299982892344989625066148643410084886157564752719354507248639883987994426358645320875931461256302452010063300785179987570724180398719670471861207105276123660268976804913342423231634808265425482305844866968955810789168066735712754800479920164813321772663430070772258170585857608749690705452524398837895739087516819670162624192136706505099841373629986951715795170197606298469037285388532283839537427961330940463534029292442416446798598073547215966345750706903141518944618424767686733554738840217645625073819917660750211380068909779501959736406927108151559691121168234755629653240899711918575590244589452795859344107352691040473746530980980716082153056789945687991678579530863520395184183238507380557275627083905863344872132194831895220500136776314393554632082812344963165417236775850410763370568195739354756832200256460139549358160230130600803019662975691280521044934081971948855356733972251439726846289950852945741142547411949865944069433925983734500755097803867313293831901292630486267865437524141129737972223439082999720342235587963094381640606449278223275085599717730340312279605152282028565649733628370745557168486630723460998634354813766422124507754077380467786921426363679007480763041945106982072993464656782465858414062616977591115994410009355818228367889476593184680598777870526349220229903538629382681046996707120421125537044555040819819704487578031865705302511477702122174165751976808242083250985586056138612040112634866446672946560806520526232827699157282612931578204032342983018034999250315527504308569010186056311084823894957806612100791439913154052142556507971493916436985437339079463484697685933051856054567536444345670357196219884551910126972592536200294809575632958989375627206009997013793573663414828031407888080796366221714124211115574577056368660508016973477403451907321633707060106804308284940232013076049406979521063363198620957708802733469123651796192596734022282907992725768005170772982494132434429091592243039775998637482236392562857652342153522737301353880260752249840801166611663350701568904626028291563707171240143571899224663010954767470435658987774731186005901411433630807978128229059066515147640393835912317778005285994531629322638463992186641729483770429796195365488842074501180616893939727747667101727516504529132448870739309284422833824300394790421349871757967159332104439161968120326186755681150906483804250038509732574951632806418907553006281676679007100753711364649776113390754438204840472415610159119418219294523080390407063500988248018397419899506960009026303933116454898305395580035450576825983036515544072221847717351405221407041212599192736525045877198376607068194868789065152277717217759091331377225075457572766481880254853250566637771316081185656636838626232880283149764753608302297740166486525603651463092281403832428207696534028256073535540278055176079189906599967209859664649978193972350070460630611146092804863452003194443056750893357918384688108671854177376086342459545633172897703525753961043887368950645321139456822212239522161105979630070959784343227604944357282495124642052511806481984143102129356601369512473698025238231676819734422279876178960413630597903530558544011223560304394643871126137475373873676542284002017999530364767583347043551623681461758679998977339174993356577597878617510355011065406823166343385453649592051361469319826223508300747104919746764284431317220497860231173838875584079309169754759043856338051999574456808861332823211472541166635447460342843631793997353552844125295224401808280229806631232301522444220675752796549584723496412907143755633019799988718134032406646255211031249440730761501415375736393632165335923323379432619955444251292834688194621888536247369945535104777252102588428322499705228815702965576737264757674948637345113311857919587271170784806829093923776411059181986277077678164951110430607419014904876748007281858260231423433718604144893139408037486725829601325225230794500231293874966769124726086095138294937512945618677424272544682103289626227279274641069879565096987416621104366836312854937728759422266533822089220940995287838675649330751801343265059692942383133989403045382009143033533432926579308415445097030504559719070281695768377145114542928450462552561700140290731425783137916541059709252842613278126982516574977592647737990658300350936722421242005151850583804143832260285793144269826090370103088333134472806230737032904995200899279107769090310396418603468192080110095751706581922444660205285928557197757553187613955262366104743498289791687558764629929457543721920856624111372059302328997404308654015301717630153439602690078398725259553671357610369311705811615412454421642496510145591435825218138945327835685167106015969572345584609470866304995895103143538530458834459254902250823449987055192952266217716929681862654956666475798078205721788082576617601519550182698221093789788579818796052181849979619252430789963078403484621154902822502573093835811586822626010256297169686263127536369548766114961517152215784040998369304799805806458943235658777621601272853766772456773927145938586712647182174618872800590608664235708522651901115443773460617900052618330022600211645191471866955542275163431488548112776736985217953260703411745538069127153409442361724039774071600198192301376018298170516778460520711957293703522154706027023466196943246577627937487823145800404954028948999552398806058355656154708530286878493166744008597698499217940556949108413224800281320494352769469434996641774814997067177775221992743020829882018132813134998609972116631780838747737788042325687684833607041596822529941641726052817357183400296074155032325800491125781054406656095965004963407997935382821927710615056218211338278103244278882195666628966013415278456037881639083387555888436636358076535691037842894556898093988525940342568419385758968492521781583188210371927860357177276110624757879699629963832054427898024141375050977678288547153880556957669111257688514096450005072644362854959347699414910260764699184216499922254778720507087476208577317307142580061627653480700112041860003021428307200095074943284671676892655976331206809490983812099212157696749247112767651489429437268281693078860814833927594609797973531762103187348642905984505127779066458915419113939252284993160761385397351774542608551894636327182229217030882473052699074106970553087218667761096172838768100285657326168281326938373824652176256497951323228995499087512951676445726880323873987048005344110136365261366428918468937649949044554552526878930193132561727622096783757692678042751604291471770281754374415252466038186828814227416562269852178792628786539032644812334019193693806938587092228639236687859211977794130541318832451345361350078979211169810783758063981421380898289673902459762184392029138718975512226117392449474884510677008634988635766182805517432073533189864513539482824418540514498972126344725903863021906072434299012469435566629913414896261475107006683317783420877851908034363469944740664065874897593599361105231686045023759401727943221055939010060425644032303810305113751251172371871646855555327235891012178772190710135495379765071845110623447680067743292639590412242904659772016654226990828090194844243637603451531177947881651746859915040872362203803201668918075487419230843995573453708747173907983699537634388413201011853831610894422728325526153166857169277208054113212552560195692005402992365276684111236794084989778027705471626118876738291367181322411052184440034586483796696252073225804033138278375457259192486029950367918425235852681607600279533097907981558689857367340901023606506642305756490120260787615376049110751650657635637648093334106689110114491953105479222611966258779060788854755961302303322515744036925240755480138968737430786250534876820565560528604601552842390777560757174061262742463562286170279366902178947433570659631109077553499113978976635456782305802131248570534797931514493991147053746427928102972748322338066046349288320126889923193036355399804560454898279520467568309384667245387619034594660917359851900280659562200664155141964485562751153503975858875973927553419558750043713648771989680326227200537263079254026999715158560158169976102086983990704782115409584714807239555941575765559227779774179695816930046554307855412410135385080992931521526691433449311992531224546249893738361445591528528762914489080810356877470893904217284821634201576950876019778726213630956449978523799244961380638607787854653176376303200768113494579646828601173825519539985057434861517661717266497309955209305889983454100570356713547300526306850898719166419433970647316772917496785367807930407266328134957097464247681873921237972396997225428851394025550228238979788865047156769467764619083583472040839792336738610200133968565550835966882969911389367358180952022286817990849931414298752705182532609994325027448262192407273787958239751757661047892946760975540285622754043151586180924762413440512705992503090171634604520300098142996966874135537125138639696509491026577543083520344267716770294547098534467411551188310847450027365172859946866196255778400425056730814843579815125794085922176008625861445032073543387667528572532756368081721720914412549772324786983062896072056838679657138741422350789516774130508130779957895394608229499404962269177852487110196045290507766475719270274131008591467796525541457315542992111085408495070510153542028404124617300648070490664498846400841569080658645914130068653531897004715966086450474825031139733976706910622405933308360370392660209402672499503922429318481066231757003542242564491939972331533250430435712913098159389236003031752282250974817717254737230001823206644025346820521017785084456152474626392855855552234702651523294160837847044099310295668562458630543877779793397714203147603936539651710198672634127277074246891760795315489329103553141185513480231321989889629431493202633469687694025261254136972504471809274766241820528248113426359030288127769501545485811454189823070747099718040738597847550681892210308824878084315814694856053801407544481116301318448052098205187841543134645298416473776678763413890342892507413492460193709325148230888554679362244454474859086448411111678219790734242481779293967360338074281437894824145858939718761430632526800963469574950406251406807686983856352911851683166993272580508589985083882087571469753945605878076027149829638298010487376904159564900950778769564030110024097588480856029782766261341209476591390045736585955720847894874516061978687062251414041282167628851604535860409415103643185883697176881342906120854668985152367147043646945894508113592041849589580149850848179905034467618175728762800392902680741391962455324325617204867862920697429999336632658231817963385107426449697135424659068201432464809376059023801614513996855486455774191341840818640573780963931842308394023226508622009042554167758028471046819240059712823383151490619244317046882238626732791409986389229143049165936815441761543811919841030040459966440177058398132647397920783226243006581233745532802452444846864728686432868581818853081568161635341704707587536115626365245145718338555390566090102280257274259975592688796979580400205805583209169001112078705092776459725938912312296847905192755223740067129797912821646243870420266161367539038059233145711351899788711238959443833471633754970337734786115482066956865576549117912673327564577749311348403598890406457057670812643236646544557326734434669251865805405061803814775047600285042541126149672817533336954029860486107617886111384960219220865632860948810501803681802755708258305646840268962361473578023784516153906084567384477625730895430037972799242295390435652170322055909982449743356948089180221092913392511114961591769741821275943430487820833070463762311491176167215126610913327706816195098651271127586362443517016320654940688977782283263216371738566948001306207084903582670236464827960271022163198270047547718849935884930346219884541065152134061817072569459241603125626965193091511536859991434558860092545221471917548242293219335920237898538653644785404990254014068717196973077107211929285730597895615231142593586604679192975691411617182061265762394421665114892782855793557329422634495981770716612833587485279345196688274439864894244160167500827736690491596868470936514639553081033747691618672106758823416957144522617808529336521588743705307565543647381211475695540665244305608911958508204148609274384746727419244707188495577595041358071856177657547522769573396430264185815961885662955073724518004376154530348874249426382770965009400443558306882052086470211494948391959823388093093123613567503266698367117914893338578410101508800134327375400728463872991641897956257531114637663050182453506156703560869395042610115131440928692857432345958922887558268030980706821589275699285064097081901867695855032753397464031658588693085420673711267770495583722346857405928123875273153389733416528477669822593073216488821085014364338980195611340160561221462455004031359835558598608684891199439495987273764856811003519265527468470675073577346391131622648481427415816447572190955043402691585052229961093085820094912192332453449507153364802900946755528819796063537463628098644312252659401718513377618032076970666755804048237301342074972945368100888521634499828398600252533603584348760416355495336546104648069143493647643653526608542432557187465315729902287658566424211535483525134599454194695084966636896707085408485388465201377617209567225617575346689922892944585798199554096541179967905320457546751259903079042578072861762445623485230854934206418214110435202727387474525066377416674374620520219545956873438333819878744939409116638155692809589722675164028840695522783237164107792481626945769494801241625553905710889082013612013339570392235410445918714987082189355454566332005208454731932321820940987894177991578568908060061109448331465598467802794805945794119432611438745461856576099956296141890758696901224226882100840003302452683785402810648537264498545784310310394906519398803342684195210630236648398768528669040477384565562500083846872949278374062916207678684427568928160592836966185465751284640703175593092405360259735277945462008740062567908555995905357295893975417755130205970927878506934768309831243530655678269664497648677983232497890365290216799884617469954482175256562329783002715945749547997651549248333289837518939816244619952306913195495526289232104242621942819430146793818039524898855111203476120178697869177232017334079233872310974019210944110744067805463924131877925916926386670193997469798824008328347066027337166910933706681355754657069830028203640834794423899209270683159048362185022408237969470041032252843133260372743867382340280402298781158040240243015664320138353852417528491790254748544179698015707044735527045186073912766386499093094144568434520727738771811285492022948345158965083547107202635643576855966478234344879941262199772714028119712983954742758433224900652606358888481520342176450521606827034388124868306194164352795679717881049846043859115256518759128475576279259564446762722888769394202483466935557701126220351939490041708688742921440251356525153997232020474871211828780518631542760560225033396696986516087320610316330208388757954656781271264105426299758388504894152555797866942029645984204943956002062603207279718538542398330977190436329416826378970089385028353983083144243634484729551034407917482612189126434877020765650246154837918835825113141457651083495652213536054617250529692804983007602388389028710155530087262623857219175859713055056687604490102484371921789308811753366663315652214037877923390785056845318818736079727560944294407281577256044193983829634779940593442287854745150531561089106504693151493230510774893451051534747498139819701099470513760094292209624050184037512039001620118037690403404106547106392282432250337832729306964739391319798250685235230193133717612700960125419373199454344079069805136189943568465294324573787993942202486905806094765005956574123249309926889560123293531457411618770302902592268123850649903729845332298601037565372851584532146974875911688281563809998279311876872294278119511284921457978219937241292495049556480824222344943925499556361935223201360850591705869532109398482139334310353449304697663095589560793051374364651606571451955784449805642367948236507993455619710650619319887635720894709724834538229186460258745820309207112870269517129479909382496630249151841914679912378487566215078702415468556289564621862740069598818438274460977288328330536341845764522401856145938702704028380666266627237428232372229687352850544721435313170305855242999927299624105505896618939902348916426194772657656924287781439727600004922899506487470548312108666864219653563201591722835954348545538030066472300740582681066499204857598890257462125753132325917877005480326023682746930928012952321783814481473681259852236664984107183692285654366975814999151988440545412139971047872586834609176995464774737308181916595801011945946859278633790273052280339604530576964969576334263669360995600247704891494898607496518807513519154276239697202687243486809921184690000419622353513690897919960560450189755092844270307177080672500023031274446356497973792150869151947796384336705893841851525506472522060377394690170196622403114369033889854706422475680038367723746720421232891943723439656376772720179429211118953334118059428863627437385391379572809115997068914362493785644693480049509623537382220856345987808541945214041105820394719968625902660138936543018815618726964840564921225937628930113895346814242658354996197471040010531931224292821576432317927117827195847835563838498170587021376946112023430151787629642890641267790128315394285278517853577656762055301435224155429750308418326788885198367590673204653141330336544086897372743044388890138062844405058074151480015963533129324600274178210359485897626839577152848776112433160018237313461976386909026493125986097244144292455212488582528631891654099562038207452015956651982419031767422899181356264417235413504657991232616630915475860673988658849632348903253893947137311357600772550855553846423625428061995468792839787558986582088231322211930385744717074188508662711117841077200390693898741573419754407461591627250866382969949756684293088595076327994041734341941755582648991524204403067230369917796415004568902661620155130943912173449362292285002979718566518612559157789500123545481884079242441963520676564230673016920485397967088793339745705911707725337025167017816676603016801820333017113132220909071133925492401075514515484303640103211337601579029500701895903522963436017587997084764008023102594357100133312957515489817515556633864440325277386121566379197640212960700754281896593577395028136661610443700235464223017591415865298844234029473789166755189841212827676041458328515808869563779012928263292060917638516373547295103849682712097750687147163297513900833349316230113480519721523207890342219166008325687671970954149462973230961896906946974738740343060702585314552227927477093621866593303332740015192486284335889687638082051361595946497499808071308944811536874136493359250290699406283513541561832125224595539290451781161196207890393279116217673195917839904244631381586884129133681213850125456556286442834539107350456336960864513382199479263264177157990094466641434045020113681873189770271501217165067659479788246558407727586651554286593561166843046334438385975442110784835224523657842261386515972874836558925063304955857179904320677527690388284319651184168643934987694695204120668646358802583818031369312836938529695940735786508194205659016314576807875398509793073333314208273654069364367575213984526457214114012300922510862787346441957339487297183155792322188967056785626027122500653059751023464446783817479962567223218936329504564391196853660227106095185362322845836736204176612012034962931343192288428815088648906950731617413972291038316065471092902373132096788053531905317681095262990680717163305199167139683848448759237791378722617135751615465616811434840863573796367352384301510160723527250321591266814125879888904084238893063223599012364499125816237009044905791377143982044852723270377433985972201629212489828541144256602048540169538146013697243655285680458161516815175395169472222385149553364539713967393658635198252586258083523777286916610355291760768772693735675318740371482100102819489131795628989517964425860951350432396890793381780175088279312015057599642826163248820786557728325459243440171042857702774378891669753467351780006997175969921785035246221178181800636415199361308432440380111541846301974603868047832682837535255911276194571709545984242957105790078988291867099234716269480932769213889989366045473325279192876668751935314777262429188327673711327814787189011055457107849492853424042486329373144178639938186392732057979133243224938832072286036731635210371747162029436277230296722707059742200462778608327281487445048445094415794095531057174659589085924220036230198503287788211022317611634546676865875013232491743886305782631800651018974653400266841593123629898948263872225888428550076146294929284271888970479326352497956203326747472134422067624754537507855401624461712986966810560233559987634351141559365695052889418084546063702309368426912184170215309438979640730810047338005449337092993895836662614919671514248935877003531576198097005880860018522234347603059276895643592578121318027603837767709680541299376361047175005855233311396121432376002215288088813904024947711872934145241906847582029540836735190530776279955661181273203070235645001164870249603184182444392940040233599381499494911941453465663369455986896074677579982040395475045404100174184134867799892973042473471507094997071212549870967304180928978161757236502619425231011363650883519863299576419156781678313866247157527359099635098894138016157497628830020377456809617377570869189622043524376904226747129939403215569628017518493517957209456650396172086208268891673729782974459575601642924735934591402136929634695740063231788246474904826709783632509822589916137308630720436037524243928205208024637642153951748687759421415199756186197236690423082735255933597611931731469062030536410504810527507862482266300888490464394762906885827889867415736431633464829541773879215723739509257076965122954784814384128811789616745387852838721564133796087126266609030353053646712990418688250477225307987549766217315151032656894181106517705141002074215156746817699362105380040466572190643871378511478769831309109046157836235799477791476138974557429601536662394407865036006744886914185166413072039537428405075090663368188018721165946444402989038775188360266892128792391776648147305744501781593197320985722874081477727033189367433946660284220315405174261605453161367614597473609140351622885346664863605756383369212290688506583797131980898733812476719855358760901777719605706987318274409488417245084235686361873685365546612191840586943709115399110916396669836077467912605559393144552609342332354833885930557667589172106970942722449498582020801102860319941042980825544238536694089292243881060294305425512955683262496465841670437953677985816312357193478401104781174944040031448602153070368054056115149808234650217626248493085326172209678149994597247042253552844218263073476208332890328469389787376890098619264339932106869874618695618322883494337768064505453059418541788265298077475727648281875287088565641957566865704514775438377744206608436620017893184976393486746986134270549586721747704953763677751686698048551030732522341933995277917294737297818326137572936004007741489300325423557497769816756241595067483995942745375339060551816493683511173354764709517303332445149429769397859435864406697474630046609168616548018286110395465371376299815385925776071684081165249233356413419188242880150796694398005584083664516246541635501396462203251042286729901669946205349804550701374702355166932685134274252934977576339579475360999964189201841667374082510596311265614305320998130899378010244501940428663428091080640593065795399157804412274718617009907884457672989876767983244227138173780613915535145146267204635206979306936209797070908426969715185398227119387068350621841406911935334049927049072989822692705175568296309235282468385588681406282186384178021708781030239346781160322787195802521605095276837034407271179778028828555231342437498373617914580507594236813422543607234931768322346397237619115408504669376858834526054141484384452236809297105509211224509490595605585613721023544166956559670383906135809099261040579385193558595786220592283979194375051939100123381107349737708074976401309988541343034807595359503425798513745662445220912105008018326939816672690491860066868930547890518381524719565879394179536368330740034767286616797809066191803211252653349754871891374582283831661413585873550892643337074175166195423617660833527129812282713447001320444423488233359137182614723519398166442565951525213022517839948374135801494662501616290237271940458507952377675906565130431407710821611772972141317718584141523067113275448567810657373156836075693801750113539234581876202620202637183517950412025604764838580611049657198277367812832348460274389071094790328510347207593717662739611341357012525922493917853006242662446557724495863563884818692042213189041140616377137929860160718769140486803212533307204762592171637587076915553933111261027406931331238095904374262195205513425179288940117719308406658606094143397897653270336035106973821574789360026016621563195135291338044821924377524664777631217605036775355040366412634362868650055939261367889578841229300105826451974458874144225588816905797699943561035468784613128794355591200329325379442322521660792888466158971468111388905400143819977335472652628992419272333981818964570771865663205182112600753980121802923113006476572425043384986464242955355891269759558510227082518956579808868738843535719937418286451821813856972508757615023870992850295500714057394513410026134328646657439304346850165082137066276862299512535062981163944602481307561006067736015166203209094699854291682805797770415834415071580294426954082949214425577094390278347705131092651948939573338591943710379675457290135752625564999399553363242949517563140925138467118512816522688859920245702598100585164248432386095076744021268885588140064237521977890262030287190448124593969668530899399613499993463606501119896535928491048221104876347982410827390912543816704697839136765064888001830931304764485792171906815408823044681123051563387284549709574582667638198072867878928064806391591690195546710945487635557316154823763081621434922559915089698272621490922177315043116894618119084011280896979481106845006271454835153116410878436396270991326900154390434505923088204017661997609953084033434027506997618377936344897443744643287254646343123021445673473540777246495680022085415535869723240161617546793903279402219952207809814462690561784118104039732148466757477740632353752937263422660795257647924335054756910213275418924466425007015253524737746510378867936351458956568512138962011618488133413652631584716907446909231756092907018399881150029678446695269669965146497558419925226113845075332084908213435605139677672799790078495177858849113015543630745798769303974662980525410181448656643970025968971376246376055612331514947019883527290691266251796116252340045666860947900425507061325170627479056390608914909746922530660077237361279340557274360163377445199713192259383112859508298524875959840840538880653094007004259130401049000238762359407696526298577662970688172569551886046547569890201211546153975452625607769865564782497682466804933422709661623385477866529416634544839120076406831376955363261728157227286157394618970059315581137140247398127459379335774901131283135823442334050454519856686842831712985064395743100557754544725029848007501500887401491238245741867257062327445379088925408799862051345355819524812828079705002381086414654767893261198073987679928304307126085398229386910820447200492854153205938529980145846307913476082499479394609315678520747018057487098654349607508158196115648210697794830570295639929965464859983596990165624881772306357760459660344618081479051315949886432041489359771740047177795244509518383470467362348614341578996939110859547080466097070146012169968229865780130203335422701188554694620786021472525790007776112053131968922035376349999173308123226394037027364977226062935731089625078520142742513701422134013634499265665014587086395876898114482963884186140095688972655052380992396987658116139816503687851296617083041105595071732545645676580358901335290017889186499293924363269825382303166726513772590014028092699940730535154501327314249443248231770108199136127493982208622285802614873671220269274108147182884009175276121503114562335178472015330212200140447367426551717567067961097697161643621863650387614727077348464750998874358929995461527673642190693368818780889706029360215694157697183440906238158289690859539809292521048620290282327541311595672066489177896719540041034600211665456859497318312238632122646594534855598301530283901562825005272559676058809318024498737059871651306545371278694092098748753347394277682341340434735933662867552656469714968740317597243952778237948762317546311674024463672836357724876104345199068932527068645337589407004846343359429093553185895902266326661348653114958203502782179279618944485804932504216762551510998711690100422609892716323343177810819446421512990833742149276509279702173630593194985157573713512493164922227495854089620192233256972134007897493217164571623331578657678300110346422063512921297840850473194690173301953497231036162935558960586843574988237181364595335967503023183915735641506993308545961933132787102553801573725290977782946663139948138659438698871894553326813499059895582584465193658246409480701619138274772692298960586233545123948989788132912412795733556263860155099940185812970519630380772897150353541173449476616112699743921907786666585116408566798079806506682148997360544448565627533302660229474322235118856298546548507134785145564765801583973429296281736107751884309747834219785916124533953322885511770877436542557118020124301564406066008121647141611549994301909541762520103700653076795734097743946442904159935569220170546464722732023684655870680402748218009893945178415622247480570093465855321430529790834163931433745617117896429004908682897134446661643088203264275213743907179545328553267171175085805300934494494346296412408596782370194467354217286112220636925199209741612566250530754623201770147540094966612372809966365630282148015523150409540252337239536590029929659289956331493264761583906876940414791311609883031847292858282918088635356599705085211108717396114448020079114943811577524627953043965343057427582467229825219447661419008030564917541840381742148525241506860766577532313810012770048881971117970524937419769327728917476523114510100677805841588612442121739694442596864635479619792438401692745540270015880980814258866205113815169004025850891025347422335781282941074413884087105492628410155771229125946843864257926370172950616123334580604328464089855608404201423299421246192026524922862583195151363425531296892968604460845465834983805806231873732163108158535530439202854474184788238537301577095139512571398031425290046939797927148990248622191020922037465477345766760380430369745511610062436705057382029525442603856180170614941544019443270251450689239658641099129855566047186980687991316037495195805493765707828784556518244958991204912925301629913504728861011066810290414206929249112232218730034415102492447746668810291338195424219375003485398860032469689850042378729440424076475476335771936321411776504989713506489370499566947372853240289517317517172539974306985491490157701728187528708395100671258231427554972704496330186135207678251774946468870797592526336769979793891292157431622182972721965519077908054026255007098057830703034447101541687173767882221680291765485820606353153148678689042008510476590790267002939370742589924822012764096852045239083655709557993637306298610062793616088100408158499775511382922784818076356415955164867223835923456721444980025670289990192339823883404897331795652082240332939112266610447381788507916775066929911022153146238642206612580526787036346235923131090808858772028775198086026751018650876886344560912984371379414953000528275125570029253645302240061579843096200699490746976709280804904546094982939766439921738616103778496907141675770284098213011432314052213827872973520074075929398836913293154123224514334036304472038104605241579046243748540059064451517402519914640262647482165004071827775435806311200085056148306598583249218020295886133893360502286271418594539069299209500706580680965644603084561029978540556456080269763516806075518559550958821464984165088069240386490753359370726417756793861237827702749372331735942470275451304703377842095965926013503674622902470222587136322730381717273173101527077154475563172605345718401197121358000689816550228594378628859681637638336540571067907155391120209603061690580529259779896264891955809016831572517478101590862940142296288041652806101166481533772769483339617423169893393151451393502577908874393850241985474943661411094184179762287130142791669307972395983221228454208103624823675255605545799362501275813806034538226423071159544308106551593786840955494121480305364726855069691653027570972679883784537878456027088121650894171101662518834473233335492213333988125291345491551920583974554178251055460643576495218838409839734207803021329193091864444374270103861809889885893801386593658519572289127594650683348814241979249056798541508357603453046205072271497600959879947104257382221134491591562295602607177944063261820064180756712710972226010649141874213103541298303913705190260027666351484302611748739333823362275660524626254055200364199813614618339126599305158896877103311489432960367364756360988988391272327620590780376311457671678943499624050291058222989195315944172014656660569639856048259030274991293572390802369415600206145590737557389401796542466758550602213375420007247078391535347379488454116995489951411892442194295889001472546793515218586729716103586289580056338206572340276513474380958134939014674925823955718449580691437144690299411017100982661535404425937549280012866060203672803247678575235433936024755772938861591533325143293084679234621489572274693833283409735571613125014736746973630015492476254712974347121216831089932460093709364610244709728858444894097359254583999095922157325962853857920528066020182002578833748730920166796765324296190410338770849750350080898823196078464395936595607122241134245132465658333549033905702783753167626316537848374700106701623904108908894262278635531944793162872403369968762588118878882239412847214972004925627047499358532252276720885659408018402745940877692606830915668374532060570691465821191342746133829236092579796008862719651190014790602956458428809160449834459505096416203931660595909146308384722429669295697255904190953228782483392519416848618974477587688076303813006065243786193659095184385952004513871010333713550112125215472697272296403915556222961901947804835757804929460656485508258261174637849449476294289451073996892708608049636107194584301558590424393301303488928031687908165080725314802962009040061144487005790223614454667142725206978093912697555417575236268455203270226063037521950183681418193338285825625241033461757842046068235131566752940843849335978363170160114540791353070099808053262420819560760628057624566493190943535093949619817378718079059178438497484380656661477632174657193820222644607431658180457586127573858731809143444070075178233601753773770135855369060461514034828159696017895664545052560759929861436199932828163614968154543239528210116017381322555012477658049764070925503965058984252761707153739548066923292900351529754609548499316069678189663747385475541188303837126125652575464506991044907046975078757508410987483410298454984922687557227687331180537086686557873836692317522508327670321222651153010969512457290666782926534362427608277943029903593720137035059243598587720732920281052821775269026503398784590483683573809368512026992394404701338127358831484815606176387991930375961792758175039661334717430391776832055367171754238753559596048800787429691542220693221027747793931563456801048675877768178112222777779566442178860352108715933029989032173208333398419892683014060600313237480966185762241910529385566109707116815887963359330722283421559222880862441973214772739917862421865594880461866585418008928339053188997695501376313897193844225918978276182376325975839276096716516009720151239246595940309504783436497222471510137303167706396431886400538749999806256416730293544489552195875194865183035517556831073050054730598859837512599998168044769140220507941034965180666410718817647702895242715226439752562183045618451924547087992748592345848182025839847372775759442904439905017833595935161034251906281736517958107021228206826257187796755183813950572464043225856165451002698134738094583210864305309679421508042670503643030041773195788222884625661005514447364788298283328553127682409480412141121118342909255475254863387035096655528405623151540465605147309986310361139412937039499761484939419714028718282765664132101121653958452147817066530384703116643149947472478683982132717492145292272805114768319000874948643218656444470051274231741409402259651567556398661022857043044718502092467573075761685767737228413375252460127402202086175508649555626969651920879402957990060160298612909710772092410724682653976235473131050368594575309673574757320764250733696182580671346978783677152725208282057794235261735176643210779096913485803596296965460695991075144407847414699623748536408330337815162740717385488986148757540838572480013078903598548721382739097658563704985669159432073463542314948734345476237920250576513511373468527053110128670636937399558743021945743123644464816907036723760427205570578281710715444930527053397329255429410618963257801637069589380730812265821025552457747109364062099737788643274284861802817248315513091980370896864682262253318619157546369772832029573876471726494633004739685368605316855626709750938856636682419701103408165781652597170128656116311660730423409408211958153427665535254890389885876325425348325472274928966784954188073047144977618730016639932604456227226275229034338654960262979156256843552499525842198412460627981308637726725116443925419641981677893639468215686473022447188747173187302834957852799098099079382233910506045865552251240710280941731479228864608687067365103180598388245907133327130490953525139643259264498012212634061870945544766220348155034181651807957918387364730555004769726465181288751875746131732694574007268375214450182443250860080146326154495062680104508521305359585545545780870213293496704372570512556867869226212823888607519865595410158815424477515151635327629073561103551433447766878538012330336582464264034675179555713041622677912361203911100152164727226383491888500103833839728747305774714720893277240504467720226729156489014212156954428968306436771847124033177421845561551711404589473032442561234606283904589241222257184676220990103968060018833448038571798464930639898027992146420249039140095907886361797650580807639952655303952204766073795358348150617494486225139157378799930843833426053232883628390332092853985363561922139227397161499905852019512117878400464937658688457686827836323006900010094896226039698312157425956312128115899912186274942075224921430725580900947058646963381451310385313486514020779707218102821178193252297371535164357371769597870834497735603925075910006072962885512557636006560116872770816006292674337259851013473270352670647861904912727679153053273752173606283354653187539574594605192106409959944881673246143027848168366151275126413313785989424391398195201378641128457996933057589345182175373363363128726769056797293048602562743174213074283573500304708376798066903809448246044811559809767848863997251510852077297598802513061936685571152614815664097068547278257425949906177114916309411125437902353044523262227286926813660812726476794005873716568292274717839516930868784177459042614398605124621963610121830807257335830211232310446703306750067583344580396816627498647207810867000434037481489315048591680254414799185429888968629074087087889856455267014418666524335770304022544606180492094037108436579863825935802837059638370286494510283852316135448684041872225407627095399262604292523952037676016710666697768919030426931866292119405493129973783713549171695540965441959343022754750879904045183917331564517648605988806087442270026617219566903960298174040617121637773873425497658241739436062572985177946719150360241493673235733750030215532079350286315571435638669404441182909418707977180268101410233183719479895405762968502100856899944155433199853306018047200341026784735373043906487848026392634002209830043817029469809571157008700277581610858764722536340817968020175408213175399805973356217645198865976592102434779052571580373911058025456982445432157411520905497512319861686311992294925071372452976514686376474751417678446751161825425224454102942076448907803641378888407282710658835315694485734477873565214518836374263869759185908926286205190314970749530620727893055513946062766632420460479796662133804150930489474506193804334419222004351902265261316295278310577240094607948541680283073035806020586828723881496868108023682761579968350713894347924116389160887585497358102318649326606353151930281995702707804327641904442916619232028001127936600958515382800378255537249714042493644168404373189078339091133748939722520375602917648269879515282587234946457786468500868085494661528865874223465091328586750860081712240905678401953515800212881536106350440419667224619928395252558354566478982113583496871024274423896736139367155366432064636363993676804914163189208475484804243427477436810713505518403421568521211432974736159734103135409970431629919258825671238909368091573421995831345774622140545520981764160449636119013287338672307866088588972395902555081748084158069196585009156717567058922548447375009762920981198552581961967329088289356206202615150069047067063159725188325339917091767361003321214914030005595496101624074358338756630604651088935108528434934923417665105885387479680687768407215653673480311774129469911428316742735985934921632721492913730349910148947603059774322274481020268389943328006512685658033177743300607040455326474203622191739494791951328047793402022518479552814637704859550652861610399861569800478383125787493148384445850059118154798275636156695091065276404042500507274293296621760544014464062634309860623554342788756742104295416167835143454828349344288710759956286491718564943104729828729116045082395040268601176382273316688636877501628078641935420726466414738795113720222405470084971457396187220654160767881930882010005296349035888207172741904107681621033363444791173926922276225086748354239433923104215269269499809145385159538285615926339834273468748743461045515613943330492833156028438805799291491180007373710691651433255863845822192494161047676989530513581904122161715949573402483853469628917064336414370565526722065701695713736759986330642472725591554791133381735236781025708704079621312238080964065997708285970325132993851442805277679460366512729036860769196924349427106309944953057402663441597852480973882554877235962589209015478456708353891956551835010094557713115146927141136258833890959520980187577800850088877529300074472659021825713792143461858135708458805803858064449784494232977231374652793653982161082009877399398076416725284948258891388541325103554210122131350316979296567231640577710211080099199678543653429079572647426515405032994099185518428859788567629126880677910186853530026705953282693504264255683908889617501526145553801141380750763344906170422151502116515405210316752795650432674746196666326954562180679592354803200224115512765896167366693616662284405934728187018897208006436924556769391200817067928445943727103953379482362207534459481479623125441873919111633063989931932002119440362590472611582599191308659528926145060198501111881006380603805083415609430013539111144105822962390784559321679872987744822988983397481897826905773691900631030055041478072403209242509315515601764689573282764861818100394788457595036442047956480686205225028531310536510685048972731327424924533775770486666529003861204366155500794645488931398188048168025311439597237783351066493725584381645938883880877752271977326390820157256529712739627829264462343252174586221669772747393910145069668317765117604571701099948442317744583427474846558368678590925179435724993337247123029518801028541100574480125955508257048724741421183592132693116233805969973700177514599869307095206707545184184227076226094581706736774015063335079866736187308196175865502338844543762061240543567106308545465927585519527625280033761280594317059693287158515988628240959889661188682258863187525971469127673682282000617037765018043729932851440616498661442290600664624418990547824137930678992622520314669561408474982752217646004720770689761300052522925980049044341634849952780873147830829249806104715916021319384639331790931856481007227887888974906366972329781532039752184400568544185704032648553036154385276942871610053614703152448978670890158403675042985753617456957146294572488312377950548646218207308436253655324853636157920090364022296752748400614290132931623839062705886265419923013819883701414959719883936075112971590636942153804085073682892470048123722546059629722338605211090622564619358302819465368611233176183000085034984384921564536143485837733003753052813878972281688872128682515077906142425926349311952186254142244841952271314450778730800563201611280563253210579952406166168087862202109073152590758282760419541247643253221758194562997405091069969505018071873352518371800985076596671597163886283263100189628268289479120939719054805236732080148494199636756084871642794145429087965008600521371702359209616207639247704369971279501323382200699708406225050947834435541748745740852746571696688995949589483013928305314565635605936006871090032118920303198856634959020210594208660901761223833850766093044407373739489204794829844505030918015936503832664990899606524356631689348331727687713135399360795522821688026628701772317501376311595496384723596014490284981930488330365550441561309194682035973262056449186072463577845503357146063482775098706678196308358668913652701063990440995807774757344496921476616911895136328917914373500774338478399852793229943578725272026289592432693959623749988533545989445145909395466202349068197204626286079532210853308175279757810859368857077415159962386825744607304676061386238428021036404415536817793479501342712304078510282739717602984900358991443826309704098867601750034344033807886009593347245377292368360174694769786449794998301292268211851909648543978852615991216390640714490561075651353430466879126802353711763511192742825079309832996679325636536737950079102913045116747105954147072192796794875012304887313535158391514120769563805318515178090735840973072490534890514422250073826855226756032732203597607940910009905194818238137523012025025008881076574191407182732012056088640561322710560581776632815995152161015700541618693777557866433792786816446422261553787515557260795306768803230767353966622496451432220498359343544740518501430326708853036248340901859608589285705050184022668453264763356004033572977053949427184296533384095724506410741240102866496609196187254013623847821918847427731968258083679405326679825782673494400264234150754730059534379823646511293195521557924640703215697670585489745133224636809394217934398172443941613357446721966907132448183291532764052114047442335420856881543670053886104295989139924675274409092050821527498835206577370115609140555142491188354290329406174770789530358428523473077399189583159969436879326631827082444444456137824597762793027350258400438332729275394681599953645662794303817612346746083234859806220947076032330827677226011783505331601554502616667641246451024903502295110538106400195740099709820384659081673577658372476822123614658890885511041579810536641363513359907265663579670476004206016287365101896000449620926154495747169520149822256413028220908105099750373512445473953871711573015125656075785885141224041756430287965750149416968181658644073739741695049130776041749911376467822199259055240882161896917905582962191680070833067741189338284835584684850656059875252706660187319930121712543082370924443213138152593440792072839402191171624472074053418880848426794031951484477657304756178286031687450246384856802078577496721912801584473253666318797936997137288147765855049284429990737834934703549249472323554341995535110954852343267293872015491918811919659112623808010009228095083403099595008279134544756104226256942001007889348539562844556772600400487097025552513201623730175747551509701002334864712641054663095949458485845090764906180191204807191833714625269353205314992215746379956933107571700780300313437903109827583602940499943255904666004838003946103688531142815135732750177326574668854029080080181807450016684363953240593565331208692756729065795634022792156585479995589177320701375311432280439159395692041961976522642174927327494788169536310226948552636274825132734034640669756791575271291343940154249229370481368893735731873013742065145898629796656497731352035188903300043199790826496847651786287865970559669032385626430529698125385203085399390103732469047939320499931225856823341770235288249307120313001046131635212648970400751124374917195237700438506896634466401299986639629660055433373904031138136038880160117488713278804039293811178554687398242902694592766685219637939123514067228274733903184373163138660995079877649976418404011813428108077888169092285654724330600378281722482948063591972162371600958980035564113794188907899078119358017776293031588928913796053573304832488598608243797788276398944431339746612080950076546348077019298817151078348268900908828443397912545601242728679927533926385415971080790770204049367698740430460590275911841516706901277162556633541412688063609584561530299120451975724365611757888134878131263821059513688245714476529103522459349783095280245730820390273536700536164967779310248412923059542125176405784702233960921024759603883829213420223934428543838641308725488974801822160209368509024597053560771629714937590612594394717085708962601839682706512766920157199242225285602605452629785331903367278271183890651368808894484564229710369483105249417921747636330003174759975483341158272665886101970776584597496192765142547318932648651846503672097107679791652413370971293188792320594976817975081660036141364097713895974622900798905358352087757326234576403497390808720130624705754246304013639059419630014727899712990563379287884409973227427727709561216165259990038360448220374932863821605254322214788462727163217788003163345627087652650901721465767158135661899558673055109267371624239413025849279158073624474068486716905071011327579146944893300147285384763110446960872985742715371469042542103356618384195733528255569436325479212094521597388486792821996237865119528670436585429578492914781838075411593064326666837731727605243321600925076663290390701177162778798493329692315914242108328259301798379952429142763824574383469250326254767986710069558152073512916284476146737735982585100287707079370412580688083701496227169897420845692762945470855109824127995778759463244428708827006380081302686653449680518892703900443033406441933027891624462119752895964372850244346262437917377090616303411617228200221506581473767542784506771600342970359236732218626181389265961432387835135640190988282166675380552827780938136297569909683168967363754166135551277527954801546835269428222392149754218008141317877055232548805044912544997578262570364003316869039239021244021097119998802186605461598742896773796899976884533970729075931617446496099717661654832904543445957129895592954158836790710128132791913723201033925588800000055091924752894075315683383963358429606009182132476966145678932452105089764999989587202040783872209535832387959848767558637797764037046650729382708441607725044488797461659591375177948774745105467197438769385873514912995458480787237817143572995013713809947953371329369802418322835637002676515263595039287181199547981893629343871820799002014373402726002494772154401026740823881668786666449025073881278668785310602125890336544660460963643342388341551037583577427178503888921392238005162611979097632974323805764769700130406005092343152250135151574246486413658136155179682318582082018898330839953623173095779920027078285813474566173350352119170794255731954461140973109901733823290308401076883816679101484740528846773411398768969846036538793594491881060130967287987795202210749750389704038186746384519930189053076291510349774770502579008813819484124903029844038695707557635477345934931535664359011500940685080903303351921315186083839923941896177841722327805446640376921733713947111181281517062962475291155530699374816952292663219783794324306167457430246407104453346562049658750407188069679274726982109538865090421977871225708238871191842001374643079800252995782225643411997591453442876378972809059170629018164030697875567955878345110322486789241037523581100999199175853809061774203292185359343164735876802988468226286627032697754393131204353819501189691831882751447916407937601713653220888268770441306877419054227570647959236501636807275132748409997753073116844124627677898840261472508929651221186682827732732750617644559400330460028417995118688539254254959459141968247336436146741423227379694630950417684437502991200227700144585537389810696279843770053713260801406282141450631050147801190080026204503837337132589400761652158205248805670182649310291561854039602859995434315658668465594255276843541734692292107712155857970774095589212693197238345693508687527012365285139912696403188786195641041317222618591737646129502321727914770332617804995216656489496731294319724390846624086827238305930244138535922609941765576959162553082733774146859746980190974204543153946068975161724217840025374041928830476816415381944509841017019791772506560374900389627519066390070567668051827507176975990281274058394222913634374522671807819880797240512039521166347219689988754548221593222486086938900995818314874828525913847706797598733575927252047044714671108934722998713956303137633024669300279741030583717474593819440560207136533489176981214452954959884240369892734366746539986006786585525409922849925779019596102017123296368756835620282694978325692324423564267986830854189975088509804870740654559596769069178659340522612403096182832618155892647183792868365793456898917636366497140694749827194712482532608126479576181665967271485641179975471769907101308397431876051455332719262756674184270871445213261623156703775766966367851818645218612239051570962711626756941352505439301355664723055728957417530839488561348867614384669811687478078241192011985763523107545270573618184863318232979019923799767234845836818161355763205084225995461059067388437402535520640338385543485817724725664501725822102416446162974187960875994584803688730739492932106656218679966894166548892312963057266195690583642718978169101957231651762833214303716549356237008672781426125975238351010257961903202790894812877494237607494499951624279031966730202781867885508186587455154321055864372559789478668971164933008111921265654691696829286691389052032268789264141317813016163340127535196992374776527964622659520928054530643933533110436574324710805248602802817150087542113090417774268046814452644979883662649464157622902782090000719458205493894805991807654493837504642764908762391081877166511416750418349620106560979979812664992805753264749515585990027596098677490827249485482948005172833617656274035112166111471659933744705324561641363120725975803736546268383849816073757381202601445783608781088648355555415912451532449357792510019807002956439762898338623866296597354153711647006788556921923077162495500856907539340586669224991314771760035851573383778958637439500681477600065832831305648215094852104043545505565054696743829073445688602273217417605816495619223574617947920637836325464635996719448893209220640579918754117261155137971165681345974809263037713381444517306033381458609388445719155156034440418819136614543814754132765870906428769705345464526072402767386400008888508612551341117107765581320615620391153855347690133615635231666183984120929935454349405617517935174472387195705476126827489564537184769613986191483265219393387031326635357384909834747909047257385967035588850555668345189774658198190192603441140011110984209919442528853341776433986799767156088893176535916956314614407267427925455323051545301040465676234243038248342836390912422577106713224121864606383388086125266679312751215431430641427923637699080732797096787320519406206646389056254730128457287721715309809604385289989822142454324405662305669669321653435149725205785018209119896200390777663725695693323925369699554922025002200425159275335146069875292768813648505536171742214735145599428977049371525818925856515072897289294985553524246511253042236905890149221014827869939158577576177742404523781732683493270131117133812587961097154428393393068783832761264563067075628801604261371358423540034542604575821809627064548952190304719012639410864224661319702893649727547820178343962715742367153199644764580065855131005888477681254581793888649366635713574296259919893669078377681325496317113003978268034160337697262740626746843992859464860894148677817162611874330535581773387019705029051259981510966366589609475968003321545397772200448053129003683725394206992360800010604769848329879984694975518157662481309170230610339013372645301382088699778284031009592887691843641750529467254202166840398143905996787390799966334373271843770962955164818906218482171516276341928844173946483028531370727868626749459848486444080665535787342305892327822678924098890476660713016753584385859227602027133084121195181641946967385972848611357935080680907897504694073254322693166569950129332846079069620482789053218945800711401508494423622674123034378248951360291304536419757656010695042184641626332771968656063111625367727381559670613616201555644263055532395761807932943781656554433488657315711668603752413546034414679661543868143402251777212137380373564649779778349558705708260644786751377230942750902225472230945372915639072054198179427164045923859551362701619757314659346583759418078624374580498332026364046875027597755575604844217718083381734223558720636524589875880667102732879475595480362728877136754174863345425396722964237474935998052643029361888051581731930193629189764010324331929422106720150640636155394741529784290489322938018589340895709455383650063980954870698571311866518963830172403767598002426216227202126384061036369610078791702464127141080386658254692568563812962883861734431333365749443852499780595731564418381069725398658776257620048410588205723913388924623593313382099545732863212596179649684084988906361250037518659264982513078323134989827158978068154604080376632281344749218576485559458388239382910413879036589786838370942714103047057426891258143765603111469940342385978745066421033547378648872712296650447395221090495964524014115352535862889689227588751195107894691622120087016915592649890893750849397828743021656741942921037638516285596564119537321065928827154260481027143200737099621037061549071678650828619548306158277847730644163211302109465463176621135799234628819047478895281936240870141433484876195375069897614116705422845455633733293210534682260526001616567829498914644166999043577655889148704873865537933302949308473607142516260157885519920108128572281860295736203231809961671596279803579116104437136594189357454612445231679780399170185079498869986158393270513366347582721688386624012939116433382312278960130110121720540009420799918704878058278188422721688251850514291992508236864680017787682444524093018853396900917140792724133790389835756598001614036371260940019220214061118414110644689168110482703415466623256441370692230339597089426941790673631890262666192357620619689038800774801061533290614726891368438316455428673482780337243541927795472526963445165418113056777973573015058751337119409201245896667210042382612674717891188810845979797867206857869652717346695135404421800950574291825604890197921914026447524586690534775972372286001394431135993833101422775062277042630119961919534032463469761047323103634144528801152232640683174011814556939826836146517315419942472037047649259244663761440998892715547209675177504447125662032115483865935112337740811918864899502300064659388555683315203580727007531407814520368932179423632960756974046734914601174885866214957317989155252333898815898316782988009876974746682332267993604073279447237298179308442789131061826340101472048367410624320443745737357386441112602087240585479646685957188854239138698971606265162493788716076955002139768417682070150479195279540253363936587256813127297140062574450660982724986870661057061078345885124124393888713672465818495139313573070137887489179537178414113170004959155642186969514123518421970165732887893898378547004275850760660312731650639687352914018993654177421303966160936168333517507787163112100065775247525091335825747899721886019162199084047411181561195777065757277617022790868897792700377017268069331461089485266398934251531536788303927110151325840551097601749574764114717366381599363081346936908339764747652146473933965865244355392294403304650127626944563874456180896444515374954184870585498768364045624071068360057301082400024913664168484882426228769245291659096364553174700311614581002819621821574954480321769496340818052081442730794363702524231383188973272424112081643985370468131903703246931364644605903469601109384537269614990651378851906825801651156256050006817221023855547336522962818168514612848196775882818396258336405283929288768048098562625009585326871467389691805296511905056222018196324421692509620935387964052945939347649010430109615393279069136063517911304310483143830982772848344867616694704106493060460474293640809431117186691887776857449071861411555517954511161710990076032564992770194426445667113022350629241363474823166210027856961421679889144482043115958496743209745846703009707961375980572147202783299011195873866241107799981814794281219512696207181233538544168619105698551544027387970444645396598575705477988508555626306774541632885367869835436783567003046699747556318445480235022070302171626906607274285848669425176220262010320243685301704020539064566224618784606079495936642578131873322490932389683219488925899267773805914090769459264463214335910305940474782874386464673504498311102625190919242526164829126748960324144195559355966842592635817834067849840511181599065271440113141929771624225360329706391102821262381801548044744457614776462722583119631449882092251835966171320950974153420968593110855277358582111124160737639582638462996616974978882636489023565155245414785987813295899968588368833962767605155066772286339310392789866454246942400525073797226719819817888277123472340096882996555274061210718841869705035429857598291294687619694041672399172078963766977439230900110312430012739613949121900781673157946057666581294795456292848676837744559783024367902820078013335165988208765158815207096080798665791033174246788584738328776217321157945516766865732189497165568696113197810125091823095066774528434563547639168508778776431042405709445241545499188057990058556049534261531916890820822864333547953892447490593638726949186308896801980081665082988759226628593353049984216895376955657936021598571421453634376971355356325989481048624188984629373831354717460620060295880237719415614542755141319615384968355701794400661216723457085746626688271345402837246043164814996822178337213159460715013100442258356332015101778435909384258997322833883277419964962636615088029233473238415273921577964972155134705818510578496686884296829164919519107805479471435356609256302573129822634731335508948542848626233615660743807699386929517124868566151415875616175403316703960202644983330804557216069111737232208428262100640118239831963578628602501782710328337307052931142542687829652390181519088848944951789134763915378173755004420269210354595658593326092666765152276603016523398066542433113007922207815064545251131938591933778209750874054107394206196831367169030485030755991509162874614199594230687117440659526021068365429726871185498165370730551033045778747925875095035358993465051617104219024726950130051248578118317420514431229453479256016898823037173253681150529102199003434637670235935889162823799375768600940045444397078120540285205073779747688067079861498140089885453473805013471989767766265463789480621728398610963293028251261734637364903862607828556223284925222228838281900620773299884168382691353424334513906816862301977593125396028786222866566235508453092140817016298155472155816040219481149649704664784684105501505713491648998750865272505692048968536109802596969607693509422495835064206572381635534138051801774252617978271114139404875347143641372788373152496809031211150123237238949199525214142562675381547947728385876002113362228550206627279463485769293890363311585951019600487009050409135698528124498921693384365354397611749810196446403331661359603224160265384852238758055802687756009651554071450655201028181932686136860389737391439800423605730031283250602197398820898866208745870797161883207530767011804300851539921231735007199539801961713697296258673738390513574416257248492149193349164486609033932353477575766166556928310713302662337179803467235415444494355567541569599733338114111362560660926660603474350265907588863456423287403365198449447140840398282018538945569211008206422518404611559859121407567675870295584295314958812994600176712400678494733016189129123835849898335170929471411063851915483855359311456569716142616977648679690277841250060662198813341123890200176060629475727111923886029038685571644526399804162571041256111165985383492782020568626398796788134082910968042176057991886785139782975278096130121590482431925252677820915916428146952499712849355311015324741740636767786529008856148646357581432749161649485876726196164997382943391659074387597952506762641111190203783895156953478181068996443485132688530303209098595302853668157725377113666083284570481146416762210449513681390053437708611805347600481817663581104476046945197471275233251637502385715868623047037027912437499495539231835188109501888498702485904142827966672187689678476376923619807677525126732562489644513145672673781859271733131702761061848590816566259543947094632405637062182580087034766834164834510813618815030056493691575115199329871171636581208733679829125540029019858435815234707822606964245032043207270643402723971260007285123066722028202995775787996074901429564898849489319552639444480611788367405713060881642924835231545273242212549286894215206100230806366430466596464137893990044236631738148557861090162609096373088134905634178841902126229400409030181012594170400611284371725492899796003976589248015613028206380868204501786522738550913251225971580882740411707571068386194816767367504608666704925547286386612325915315979171493794016957911830559135487010844849948627714625963142306510187070545473426030530100914108901319209822690941603866899465650786034559459873968991372799806428672890173819983289659043881093008976515116671910425177290076210434347212138771389090962588036365885541166754276602815127144879002852594419613100213574017494610875707917597815078200057038426191324163220801523039956683930311561223905541454019909035164164957612251215998678055231683629565117177271076327493776832666012101874830834340991029741765360540910828695987537314970127499247951346390021714159715291458424104247718313080722671634222245855942564013432484636829658306105592191269935538827692545861592130782305585873232385478497679418554926262121707154348374288687965022184080570097021933032671020069581304502700095570217404368286306786763853208753217688501846633860396376729505994908612701142580319394864182343862480766541865853990972067276987678375525636201450294677806323219650508703323178233079477231892407167395555101206151803141451683586196758369164882394274048623748206330213955444594866515218771647731608736558691938635560515843249534459262600527015256343461014090736729525297302867582592672147324083149439105707547794841669327217184066046715812250439252259151054081446733134933932787723294842706145468255658194279288443644612761634261612630808591947250869443697399468837987908034261662756601934437423934617381784072740958629175120986974661316284191378501995364912651752243711952656696782583528935814002381923397335462308535065885726028180565035837351832095825320224438582256151662834635549139498095301426689366882612901693152599395740144736187555912232530461269911355679440229346992091039263762609037237015151363166576548560476133316133160180362081523754011791772059477633038096898005728230788999529970326656666095884265740394159400470736270830461440914621074808237070120481792420455323626220297208806317163071746654676379248059393167822708535222385903918070586959217821101304260078462541968552843428304224321753419000344085907760378547713537032692722663582837318251804698935703084396283675194984285435864827647311317050420388461087355552008861912852640282784867283500397135203444289403933884976790450098550539708583799334534233820150138371347128542011983083127818345566794244538072372523562211555659187822308045433969777974048681313492415875466918551085105470570608749916281143098104577038602024848397086624236300013543308006318725149425247400667794672446079641260726798065002423827484275603041647021048654765233964976079472300927751991009847921964428518343251766039363427147387028546495099807522372582393287538050317148868673735241879265619987366512624996906746172249273753275901151469380726786010166842086378252605675592771059674907635805888939443229675184197707535055049566448114968053150404731933466418690884857080440572535678069183452742895793514056844816167746655531906746397466133698241435871159484454344581343941888563620672811476722610486108550210262380159162773571355968931149826454141407292618400714550042226451989493166007787127386437999789342705483935497183402769596658256102995285280060921942433122134260484515220621036338100117422675997405740034433409102380764458978425510575152326692468933923331501419079697388466189109760155334595089179544185227289079606909107731409629269468130395441452759794088104882496703091057318950016158789461681579424537151185476715163157069253028423159839380326556638854321391300533772575397295800924173394599898142323943057079117295393650358088262820819061470471236510900441706198126603371823518756020087503259251993590934570781128798219397184928342085389565003654458018419928079281877325781398793705677992558741426096634443763471940540111701241532878578267174835019338215501551653488837609302581984107579533364983515033402408690338748194701703679825076708714264059459090583555608697611473081959845897331492685255431344903850326852457464813194303341479553494480493972980193238022973241905155051357323096403886661704834590895447907743720788614583875114300233700635107160166871914925958396369805390538770020523675485522151560140236401289179458933278927493993848450271340695298099074908895875364988217617461757024957328894744353972489271252334041718889993090441761643147154335516654709627526476520705894542627128613053642127182453826312234634175264652223988025602721981533579085017153805018914274652695125923501406988768599260224891756956533949494573869378585869272421136180388656061502886730386035551375837714936424271123146564729400760377936466610682122671103411316793483231048211818773390259666437206366545741352041947700184181697149931882915850113765685269426564812931908865279505726456873211861569146170296696629916012398333550868498876968994081045984773414243347205947548693748129753614538588744241674054893362547030768636269428364638590643710894618377457995316961217289034259135076333140260531637778449007241988267968943603373736028250109365148329489884317969553974310161132031234388785711439416756988130562500473248370367157981244902818538794779810168350148411881637639835429407030354250381339297266284927988259770545058947624614389438027445051284492717746645868345413651098484283722931801300511037463902364863431940143356322609791501353522305260983639356553484279048118635468306452788546130413172562427300476209997902176581844822562512923447774121089536947433450547102966763778743991075376586583572514736748610669425773673727482415689706339137922455214851164150250603792063960009303991766699523181272002221344323262971621430586637295291251807480968458308647888231029540502514985259540954787346282266060038349353463200064752858812357157677150849448955193166107386917348717501646214130576766923228850034789004532976040362964314589715342436350921364715623599042182790399646459388119985964182765168654210822687327731750512684749180751036407548097155116373232040295884065167324427017604223566238096501609611243513002830785841551395550182402670260089718030867299918592015369839140815449022213850372268827291786965887995112157898149778554935722019740425394119100646438636600457288297528353694333613674228230925643689891079602037742203108320592797731962909133103084800277021449991600588752853608035147170272204181837866640114989744843451406855439779405202554517942170278688696904506542625177582931181396580561531977030851214162119557282853784831067500164761586342073692949431294082718719250365772979876926620034692928141747838067799441157698477788455152231047870639982642879494910048287042998375163974284714322628753200161302020689825008916324889639196303440825464970615198131506524481142270006653647080817955451876811176945675189727106751109606447121945299410060614745493594292000409424283894871804682518375389153652105583427518253954725395914684579864773886305456454020888866357794435044295453755690704485142730140579771436971112883143550170817644798637126816593636726653534125250061429896110701199982041220032718577545387466449409927591601434720826453599548104624067662095945211955625455035260603453997731116084827289705926796234231044617651937031254866064306616026732195153488407075230792128373483275012260661224381379915377338227359995355042036116924963812282504279619750328428775900446460718486240411306163823176075895111992625325044643688033155454754775059810072582167963637346575703197998209080665078134288462682009118744959184251092792905239162920702980571311610527409234089152218062588378127506633658065107399465798229763559542498106952302085044097301145781783047899968513604475755265149592726885845563538204737875949037728293513880400312333107599314875715527312406083559237223564798662537980289481761081345117404038768542750453506168136922096877049686102066444230067757216612601589110919942242758881394698524468521389189467592784658287060945507451501106282940036016540013021170642579724017251978962031045593389374553538166005187411357802766267484345846260529793174092537304047930510890701879172844025970870362600884356284991073461560942252884816138922265718773379233004943177398354491446317213571962565498789573205215314933180158428625446986971682224466226129477607587041117412707756351881235061232359553644696624545933301749518153766682697797292909965504008875092727740263776189398952104834028987453844323345897295082674696851271573961362521012324010913019566700588903200047902409003842750363031494567875592111300310852964764034218549871808706928195558833600313047069279460566598667846900053604142519122150797744055577568050962997849670462776663517057374439199100528087364117758312287460148143100830738320489748590925535011480712148034638216883047282165575302281800440624421042951820070812026284762913088070165828832414369188381273230280628267092471872135481062263359989723632077300979716659454090706746842961659537729296143013832633267515689713713160212615241813556305747667815352376599466724078365747113929342301990995129161457591208477835314634096029780864379683856156662566967256552323293466723322684063939441749247194503358769192356923393345604269564486514491103580071602102621861927160529832018484273751290893521832297614604571878220153149448420002853010700125313386135227906169326011909816021171714540425267480990965734417770558708965439156409270376017934514991228394232437113708879574227431438019756926363036452789355041531684778160827919563397454924317331200792268913643976695390278938144424348246431564452563594378583568135362545259948502061683777493385121064033736506996247588601775365458726628542416437391941597315035159962053414456797021239474841912108726477286220192548311265262159964011711993132010199345101233405634964665042857260044240428572462936231962667736347078267688004031022265769869203608340213644966114293132343574358881459703463101920002789961422981841554177188878357276395886164104580665269279838376803627146524596845817238315955257123453494691468603279216636223290490546721133917788302815718978542888123333553952837252714276583239700877304126410733480442697810103154638331060403827236945580148266077805556400516090448099695883471790018423482512761399126236358342582768524199445146078530097973727917635131183091074175664171076435380547524239151437475792129346777787681006754613038463905906211745980364850719548588033230798822159841160141520528428850436345642529637484228198070684618434381558461920880635623030864218719166607127291218883016751559602459156519691799660845441926835744863859721692824041069458530050731638370842765209184473003209876412084823551772402119279623231180759574827379532685239714687411342696858750241964592772011996682529057191451030618163257621142587596379223149899737616099928108183732705866467868059566028931736082236059232273753747450725827965672803505780392766706136755062499471100562304183933430163779957428153018804953145636612445184079118979813935625604457789229209793258670255025016931746637720180166336720245523286448636551007481198761500775593538348972620994450469867824767364474425349023940308015802826235180566945978685194077638788013721158957372110001501282958683323536370764552444419061232787251162549356296125416643418433358891872409741608886413097350752858086077024783788606191312432302862609412005849683000583708383709965219552647724861194729667380629406272008464655176563348586775529818954589746018798818564210233888168107617316393433813335486287685391624293983842096025902246625552108490388829455602849060106681471777967384088072399718782349551789153778636871799464136710956568689264699801890164715602069333287012921565064154510724904802115906798659958934431273662573331801573929981317675879257195363232755867542832578716765914130027989157183098638073826846587757168977992302024765148051152856840304645050429751956903378588717999618226399410328820816533879965715592168089972058175226491221854283873698100074733165566561862189432323552449682761455839687584749158608378660806163528000303107411422794691940149291329335316737941436810020057046497868100341872383953470149771882969618441097205633713353870110893067314962609406157878828142961884999127106251269125629239016191268740413947849638305384868892028310821543663802622211973642074508311867697109254373121910478153588006275064409759177801651033237503244001967811353109655185871040280976131040861354380611843492008320466392215281292780037009877420003467695469068686467399755267449954978494105964345408731059929083569731782456064942108662894813015458483268470312364951891378507815179733373895854235668007668960769387720849033176891678390840238551275820255015906551604766955082311042224535174128141023968113270238041562349141424272708223936292131890722670402878302966302022849519824321811887927005303465360173366735336218978238083431123276101372844028516867769723956042099158238646690294934910555883016926842345029579246455238559496696019146911523095800174080893030585681223770800278350249784067110620744163910423919755940468593963230576601170557705359255152812916311122536543767703478700571796097550995680245506928620561926570262291398537617161843505076155416424440444760300588829187226981636119847831462527800654102538252898472715782576117994391330629651791253986658363083302785607685570358375666623088015213767743043355115564346577695740556559038776388323669983155398913816463873887646161552870585920370008233303691316052153890759789498688232121928135040214284365968869949590184336737269721002994779604285365828601903321056640102710215684765692908672229133155266979571858690797553204319982999673716225617980823746332314878031228673565707420619103312732085262730660274516052357678282928071585994510763367426010440075874818442095385707748173131050839269410460519158423880374130516666343243790595489137794458320063516407702076114959144403085878825715727805240325873401084061669415793543266516267672596080842316840995052724282432649976785917694084721682989658227437488816797283606822233578189656860631264990882206938887584865916760552854522242217282816788545329250045878664069832049481168722228428794883135786638475868018520151770609877760232620345731209798869067695268570110417917584582994225876552286864677705277931658255785471649220277240267630511515634407669825343169958682108303840486566287629975422215968849560435263313828045169404951151093367441116255001729784272606321916445174219864424902419116975687304426184215661119786276726988769697715585843399431901506141062124040756152399550349730557224926466648037577404461842129262377801729104085201105676664356145122305112133404733196874415133014942754122049513062868774489713983406130984136413592728135139076587666109407782662745931009668754099844664210024232671652238415104720790392984963591992737455924968434736219617972817724791736173037856919879834080252540787625729341145991561088859067121990412219190380203426661023918434964606443495521634419254645040745141536234347192752838629453697798702982746750221873024885283847944178824740315696794050108451191392588157712447229133561610590534389842978575178135840863483481870344659237282125846937266409510840945162006729631886434172997801514934245348156308474449086242819968849729043017406735255553006340017910678392647309765547795892416862639609200009747158198520417539759793188246263292118606602799656541052162318263040540974067826232318639092876763817218440310326565836611048247606033208963211247473159139300739627840209477169612760940939100652477452548199806479028552741688323627852174290871837644448906357700152524049261644624519751745477951328862379264338970457742993429684392116992432349481444078615582574377501884726472838468876887305165356197652395427248156945937074516079144897781766059619227827825710673646522753056586396434849298588126924456101293599019604641041086495443665947731528476135348279640847333767399317091665263055806876296736364198861019386746430139005184408391298960324709027223445456887028853240686456658704703054140930922459694511448091009467817469914840155964390638547248444483306886611080728095794134570108987704918923974677742108531010916951711071247892371502641506798271193632176958919506351576538387235783196538644500783956760748079705148993366756035031276039038213595330881117882199286911454458089643561251391424738481583349911746792932276196837999005522573308859754668830351502896190599602007553225601446824346553826708694446553954382589417993025989095060659334099455045090188170245573504824112791901763939454876382952006179287091033982571769129121100516587921352346940928577925103227941160111993715608862234956298937202341039540942098035577567813196035914289630765648285510940968344924978504276811821666751744909863586973647856029494979409568779961395805991185560380953470335707316418992634951014333139208342542463197295468226926520502432062659348783317539942096549063644938032835714406081778593003381053322265279463286221455209297387875837435106697323959108504445901768092189766627331978912499148406369464944169829968632491595408478876605798083124364806362109789080968796670857605737870721003547634525728490584727377080833849618602160549827476556312156635987298842912694352603095543597639467039241406557727749427346512397649055253755833050622581432037199243625979225547145503037706129950306048704415658825919709939614734841998027364155915940479757020616289573444502432091644012405389126572371472330954024528222400640527838555978408457546629484742908685692130522576636249512452719863953335183222541674534971884372289036098429744967844844073296303994235353242331718498225932742450146516437793837737101569287579981239034681175230768281280417141396257730090213629390111223747703877748513565313046594390418015708041823215624752988083486542498097170706150263763199651887004928626691367200145047347985336135721908864204588214590499229015795174934982443541352083886893462151799080998381915392361057932678677958043211470352223892205179943547085895628789224226805270638621718034321762489292030508388952995358467460767969638579125232263952701699121470902817457490232663528302098373461568812473225382473656213175596827097040348925996381939503286345816113595409808732679797708564514384770817032732429809426215043121756639544351815192778575888802814187524025083359579532952375094236141380698367761779418578962968644501533319071733597909583390762373765354495187983593960478824052724227802267737526396117944365647801075772771845186007668179318598479455948326176320279429679553127809334211417374828985175881265657098133093738393592545013371767279197774199162699735573767485094333196353892218058006870763302145586072242985915909377012999105772995094213307263279434563376823538304200265993770643996362234360676393353609371172052000543541452555185392813188730637792311298143904371144410399397808237381832951551687425359633341603968098874597491638109558010197182390045922166062621605600480124819516805554881136649041115740630928952840103073516484619595350163601341514583292251564230674838980278726875052267724577369816697507307449949184456222333144517060425408849105895934222256904518624485646428566902749683797045787134104956298410542115038368768982013083447262615042944661732681196911649167835864506928365727478283750730263444032423918820790495977988181491583342246747183400962278949308081443301587244675072096134558696485226718374246025490695370051628423315156194591497156744317454255888155001503100662703391144899255811059594306998159556958295620938214960637769177008529880913680938834957129930621448308807841441809851745658726826719928029434717744368931425131538584920896573747992269665499839557668483787798099118299102331057222421589772166754042278181169281370354377265334124278457581240523316146447030106163661648309014833456595857445740132464284476898496888974186005457023800431040318111988718695396829469166083378169746490903031100715270704247080196991071400605330091928511116477661695462589068401342652994562422645241243460946994437944631969208329361230711636457840381007768488972978364521106304403913028451253021862796843873453538204478748051650440270258266656240994515570789547968561037261072390202028763932116544569549309167549104025366259893823476722399620014062531711087056788723716116700604071739856875440586299631919003474945285417878621115071999458150578623660417989445514328166031659242245297748767326512017854198237005922787250772835956597111505180597361613377679369445486423502331139175715188801880089451630630061701824809395540428340377562865892665266353986879097606908081857348265299571958719749899287846929962533608966850653620349317614995763624031626529815334923664119409300932241469611154608865205629804041742829680004743704627934014873964545349961815241418010682033182275127908572611312957579946910611345246258877027554269578703373481498682063010706546022190490872622375761067976675145267271945403424026125777839258592468153384084132385597977567271119798024159956358820617347979188529382616317165576092914174167501534759439919981680878752379391714280763074953138161649109048306780828931485766881286875824540026346576201398245917486635013785101258365576559498019349723356259951048642238100856548484325782172013304691431305120368931022115222676993718211909111225963535114687205289841829029282215262110275190176917059961284064397715689769422701061316788027508550464895353619153720408604889248686683401447604588910245811688166756718567686313922446680418270984510143709753278234968924833046082432659714817066523943038447917381527373637060596844586540840346459092733747605094642927843805898728093289633325853767329219670567533293783317587230316075898428743092326417852720957576716766056280377013958811050192500775261210349635639218691282384290470582305154406394493786906618921868135987998069271188049938956684265135298052664407405428070080660592239747415249119178747112225910034899679241100304707104651422921474078913481280340522845481022059616935995011257364758934450457896299202075432240030819091186756558162679623789516816185497859282297079966757602877258258731330225430396452994376896881753521517695634216145074423307206259673134646885231630222287800818787745076467097435188883716286838763091183813161533317733011630188424760588317320450732676237350236682472198466938066545937928484909295934562181357397906097267696254459454354689775281134364672935762914411111260140783303898665367567453622255694364809226346500788998445321171625767791008523763034005851504049441479304479644352996410760998963196348362581814467613099475500770971842824170076106356641487696227841474386085630823617381461129257173402686900476261864179845792666356937375512869545870553228131971783702216139310996078457153327458841024699810848406461045373568946829780243025134728317535931271047397389099506096815093824758184273661502635887906711448929164537544978675529288125989660618216703679700103488400628986351035170936707717822890679618382923866039121119020155751631695836586150313483034650637666856843726120465920356941641314205783151396657728722715402234368889049048400226217644027586105655182115940282879269474086750980234736365358021948928674472937520555867165682790178128360654726727859494210627220982752477940106521032317922172384313521678002442860124870191117154443941183508927363460470523411081378159079354890384412813212230791648485677360175584079736136530986673638904162533343982123658455431466250124490783875223716853054666374863943909847580342476909550292950197857661106121400972342410594602592161525769361408355114891624255849287178583875527826542116002789470145643486714431273434166165887699060367455331933225854169204462802271858484812916987678099085997880352621546155981169452025187334968450350634999079172999488346764151609520365549876079991265417061337729853951962536622574472311850475650217339974499806171451500173513093441295347737718386333065437653993317160904677238248013796102378167225596140555147316449186331631495257029559904408067668383408121990154046285896893444768881765656019908804791944813171339458076101648325350268258471269737950754376008489839606563552913086486516189063422305121687781251256914711396265962438718783394394768117171145162280165324497160862751129097215515976304685616463055863477142526691893959097213267300966082241535197658219532175886774415960772098940379795478150692239910294185546304537137635890590713874773228792852226119026628232813555851563554778181646687841776351951730752315584367907295020153619153777013404121639041838919066301312644090285150492882101942378049630768755559947509670917242461384666020451662977564138534288382969838733394812651515959504517094323304545061434850776869148403832487361552100608670796159808828958119056575445935476098354896888326520755942064482028189129886414230686536349126744223050358617721344118454723913861248316971290847278303891823245407880398199802763250568448598487301329061300249484390884212057164387533387248215742347591733082326781777844550126660023572896715971862441008693629950479106333536515631060899779106674368844967007094510559600674835010796565188561062599531801312868967275691762188076049533952978866312414694587146857922674572165924313762761759436376179976547286368639367889222347752104396214365082613631684542571493309612020166831050243570080124645870855870433502361739215034026043316397055660638879370640948452338873646524947527981755639457331521754466654011931961180736578561417976909466357100640906927928059297174721107039379006172190632855389474837432471484437694927372601089248068532172722092818750903200551364122265476900640294855559004888648036591483230847268523527185610642775023617379670599311452408447514768858302488572029627492205630032693669711273766508975704934519210036199233214281407272372492777329555825844803552496172873166951483446487518119237345579328208138346248491641068621300849084654247021598057509572733741318297174697772229530631686163763714422275794007952107308290855416695617798464368643154263184916475756791424175615952697220167808645868569904044006198350739214430265137063300070208823195369310682483615582315741821979871010797620225806802863994586010442315503425027062148146481313585564335727952711441566249319051413878857346892471721019501731089313640403647879509146551606817793522075822279606052281518701167802581998161553249319352945971140307376549703247997840544107277920420114793747642135338752827189845380203420467151317297848171572142862764907627159561466061707324251583543496777817280104303443271041744487373868164457676257599576423254882248640597182583899131948520690430715886793247642097188290278314978191249363831513305775961191294299693248078113211896250792695934069496716966936308147123643832380695698012903406993474161258000523144839822665644171827872752271816384179673630316638310494116858021820922592485969080158966452928956835206841803612575317764052205882229753624832490938841199554483916268449300892071899803516853644255952886673600865255328110502410294072407488067082831088304707821641678834253062625245391466175859159248004394000966856707461058017613148237547253074618637192524563988695329175874627139173012168951685466445274931575888163088152488656383593781639545324889142806899575083578476505335803711086893407408956609811185274015226500687787494309084534114919241633489028527069867038171607294507769032640517700237651964728853058050418509917693271945755158339093024976439851911751268486417961048871764834116876545930997929750534351633606550112911928262980759761489492995348383331442676482217678605443115346134268058829953855117290385189030535093692066005527729329211051428232340155235537868985723978029201705558870392782594024350870809898334783608363762073685941355337162937902898777756810060403899880703007475228621284533970064049921404488790541528468108398366644802440128417462104416858848773699739641712574734693775735689252101052228322199081477641467124094674904310076459218893086088014242764357361090003942652986377728410632109078856801594398559106192392271764635198904615141349335776326672457847855083220370218952528147141237395114290390190957085781779302397798253382915312529522180160324451251379847493248488902294169772080611151937391364582424830043649049943644335420134930947649786893519009619749594380285744850125034528572740305944915874584254394442808304394857828761315306723179248900373361290281000575868352892060163259008376272237432053187466415612928662231921053520532170739766160985494037263882161742977067894294779893615908163277316171932888830386233158627187457115593204666683316365287329091632191583189211296730168518795369791453265002878889929838233545052435182659888578656325499005087411677688862024336282175121625278531791708401434502254301550832778148541124251233433983557111994686663639646362625923749508701971786047273190485579422391963862373990061313514105301246143197434398876682259243062198358534624089337325874115672561805208430694614618095662789916889114666133005130640842957071213787331564138540808089639248670313190591768210482735400179035963721331307211299209084227514927353057399361295926189096752608081150338073163611754498931994433206288265096634406319765889916055863887709783404570703954241834773842850079481275088774894360856610823687314483965710154298338059009413169990737998371103750736323909132211015527594722801943005263996063732462869927302147878017420802762948036397643479602556602425168397960316694787368475860830289158676014717975497550460001577185693648632489799295328296974665571097020758667231717155079419869221439337827195408790190571447037898506210573065602063384536958332646968628946398037887533633182071424595773836068244721939023621807988048248469292391024069480736903133441333156727074554363342043832311659164907748668246991875058242250263356638208609667087769065537767296856149513670664450565129624252775022828138126378187121816049596037112603942003214659047220364146249693865005774235756084649187200090908913774027363661577148042600895194543272962794042206034915255174917578930135861248084665662352636329842171759297163321439624375729737861330954626957402881285513543795289408022851265202961381419291204428497451308510676645121808570469285547721605460087562037601058156864411158612641118697286435384180203351333581563176083634354776269187503388248377066032745704735117066217679582728212581714546313870812555697121837721472383065561158307778451612874713900721475964154906587358072187741071732981162465225434052237155525200236204855600194145416773611330148193213129687275006150941523825563625373210591878917923160200903353037229326967951671717562316132811239177240374987306132779582957782413110633320248758253789449050030681203504254084586466853073052352457651924249677069060860866154380217627040905054388310696186354574112880733894847888708361129200126619054772894865332752172582206150135644393138561637329310203011750641545670751311119653185496794100121065211743104653542024251524179335033903208360967388793885204712131967306424504636522334240869426481674975031235374313446086072343963396171633688711824846661568791816486356526174321972419237131597726295419520641843591202967966965995902743761867809045855506072342507408704438040109818357154899970017536050350151211051727399160562683199228337973958499177332012786267124259934862006699936075429603743231560510059262870770994425004718542086551244571524980932858519773307360500089832132454159054746244847610466637117692938041461557881221037149544463569410713772710230035593967970977082246634770272807624573090774450869256201153770874293229084472718286786134754087587735894454195069614690270292527201316343114993110347464975340069318418026266069512375862714990786486678766792279308625093354763696423259823176793425479504786416920427272306216439417784564289467948742590607052183746865074867466872679230926661918851308299337754837068167250403045567080922948689591260335287415389016160377430803339985714435448313347420107735971308840218240905044345687559238239299098328814072153779148874969428040134729025597104824912631627303848078943408683846015675265567059373753710544219843098988236559432187228224719575615714794662829567973497300118598762482683222454778934730626655050807305304574960871005225891740900458887158445546915710521807505724470362332516044989562708495044106880308224994268969137075929148769044111458953685870063582265822480587176651647957207719829781575011036393968062807716360315026458271891993950952402883221787036792268873061616235737664891983435594895107794375166655143173609937607233994274986244293742939709322050829677215034558657714372098962297658389387342007470157134102594765315269183470070618227739281475205524576468289298825589510870236288725156075612441431342252968752794170895194925682548378693630087409783911449838636616415239082650132971899288987244016574137310529819520965908995782844998627983565527860752336465059825127955035762555759659255622460801008023593371826261452796367179568495664425648575622315014374222767843715025879516754105768393823322852723471799651978785551944757470529916385903294156863453598605304323049012514467675467504969216058994795060074257461643086191350198854151579735259505704778573152027327262487862518357642335490836325729344466298733087725846268687757766751969996208358742975792695191771675796115645766891849366615527038855563159811367512867582824509486049782835992102267434664031867644166247591460957693491534429599107823092350792827110029238543850572916210845796707436661872490317530041864218157426209844473011210314592328261254432224377376477968579122668989795781583306129213640709567150788248270963711393782917902131655207596059469516333199651439053670657758129986795932463107143906775172133673742847178698931142114785270448453862504782781867545309873098872127498293221244397845430452147665517113762156177237716666861150033535088860509858715312048580143299078021579135786087593271141135772953390332321606385838996693582620063076724776150493970240944467528296749731138235961750747015664462181225328197612627652217889417830032371196223986761878531217140314620222625950445480581870001347294678816655470272983296679427466134441648611927244871038820920727306903011372500113922387783228848370816845768702356125378991343681112206939182909011246904064372833217974056628569379562002191911890078457656665799988436291075182766003683276429799994792857118937159100650577975966363137817617268583469252795919920609401971016334837304936774012847425971960066255251341864482381838060909272775798341635875637841504885439230800227919867478565122664879466273424972019110047917360587752245891837469548061767833239934444891398147772377090981853956107014562156789934222420024247604139298888130510077651928970398575306599164510850996713007196351834985022559944879771207785476034997064153461276830210591608707660042084348519628825733905801128761878698584672073835729455891056397683737825204031606813822348456658076828036139493833465518147836495541380158485058652381654766925457679708901300328939275204429798074948785057079446484269787189440026923089017059893588611279798660900840263151867732747523053108280917469535038301162444040918310389115902756527938235608925846901629508098273581824681536449171524136065178784757484645311587534650311480881093314991220782212647259529144712360134278562457493447254608962094990133608488190003321242135996102617487561196183219669764972367638344751059696559491124632104082040110597723967312189741506699297973950470796324149976700162427666542405941619729157733012040611924080613575412040139037970410228293606318807502163699997650315861817526314701569048342185308765463219750975477126561906600978445504304866316606484921495309501978106798948281242530018762986472832014401188063768980273740932013233890677621672644849075752628172773678619128864460157493082649372144642892597424130382839669498546980554225909793547488050944180459431177818684854804060276578879133473888241194508247058928712853807670967570138827679841600030836334467804878251623853617638592569732253885873152577663836618090773597981744514645316184307270147422211651100053852472844483088623800291360432817327806154791951847374290625616744483226190593210562369344291131989629233273493719197180733690528402203369118237964734992175215248033215832391733669228077504694347191776287018748493244449528383743724325951244974421798428042647650075940370316943124873670198800024239965532621883430308642979392558933511203631788287562246991874375895413494328672977762457606801341787407636620823518694995936232583521973678203112966108479747855912553076713743729966638719257337268475548947707061485340550251475668215371830437563611159109345602988418825281834458070163655838813824326517743895886806857177052302045445085025426759789796234434726604768952293270355841678650164565388882217671828080597807187578892564523214187508484555333620818395929503531049043205696054995331338391508479251094470152741427375925044947549518379253819894322380254693581039219310802440559769200857024006775288337331799507216344154103122751364498330763088919297796184536680569578665954794276272792553332355775289182152878039826663636689910958215921091216852877102218936978550918965325548985473485726467801591347104275717467365461180440233018632214401897617489158661319368529479708237063168121027124112295114465148418582102860175089907880615112072340599250365622318444889153130435028152645175376194144697370048761817018817203826453286482132995289552482327447670848803736246092195424291066783041127973917818665601170868672635030135905724470609527693145323134352568536143179285712190001172356044932531580491104729507910652564259745419267086663207709939074002082323148511899873279858355044786836185854510883779706344133026730299079332225563896143482298725041923250156948279096178318124991388036646482581661107244671400583922093718815551336046960835664514294948265701162116853253942506266957373145067392949435438388082849063390583055870273647301604161629858449931009475956835134373827752844226438192270015074055184936608996507284599843359821920644388348137304249799742104542110528546731951009437873260705286971617218779693959838132495622456504468195224435234259965615396992452408295169502936370681386896296056472618943810017131157484436718208572999699202243303168454749778842832174830775598769158063308819793584344710964157493888517772322309084491930098211035584652018945903349814777253972830277490747928366156760268441881631959683453237243776694416736122715059378478722968387779322457143350330685426469267015215942586839520875604832950780243978975122201711941333769591582840149407443342378180849064962060651306088300513321299156851232899753257713500841807527732849211622591271033341417258646681054524785361107810677384226323169145800930000133338011081855500693546849449374760216247946824895819863875121848739226615387568654193591313836159032851369401824745396644972860460623612412280639674641369949809292969339798411178884213429076995844117898703696123841276347603765520253786570296183140985904935506662863469043198090290593029637721085247488404864338309043016525690174145047291357942549512902653309727487378002635829298803138157839986671319111571231427872300071908269042184061441242241525282612103598233259663486352519995929594359989484798567934592164959469238816050591267197934812706025144167359687567777365349048415928504652624325297285814084383471206355154761649518876165254204651427685284342507993431116942483555902395544394102130619660353461675448974296067116755273940896455190264815957027844997041988135437902427103948449856155751711850078726895640988054837946961901202695399998740370301824723587483777502502090317456483702352844799091640460244967053631242124821622949531418697067724788585073455781637078597421542493299802369009175435143724032902623111110295794004841943747082294607078160056738009412371895205297819369051191408222113261824432576319677550836248342617600686931228882013225959534397396279180773852985254919908467721639220347152241834617644753620161548078050445756458532179328128619158767853577998224525552841526604286460152923555441075920038793131429650738476445185892899858087164649728238567127680327878895725343233764964615245777835604747465351631820319639757424626121141050352376318768225382126773011039577726076587133466721573637958392525181667405832892764011052049794632520800910585257081363781693595505883233924584436105925992730889984650449899309332832066338111730013357434882846413278862925718281489603322428027196153199202455392189167030608656772548492697377496593291010218889566159073766413234618304998548824316415123869044391902225752076377975004482978122477094315635566881352293529612326754349003051040017338352976042751102703332635981549910076355860007235281647174707674165094898934305712177683591206401323486441876730510701376529812354463222385060310680030919298219666890011017075519049691541701236477307964238838229372251689805897359436788301931958116570393191580835423366102940405538078582061915990491538599782001403436262826391405206070128020352542640823604864948348144967032577964798887000405899395789171655367047027055130500263424876713315958646330755029041652151489863947977859562503961637130946050070585834472526628392851496189951528829232752854084991318408234831671027972059890536322711759931450657700251027830514988420033946184900890504718788830993168182350243121557565035700094665733629994414637824571435757552296665237239056869900876254440060442539988658048597027090637067575441481651269358954459063426255110056477679150665314759068464857948995421877291816309489878517289140691468616055356086652633163888124103358953008857604718709226417252517530669089660377834094786482773030977548384856982850976253245882899433338413224445195963533092280442162792638894097862884786528497575908252743368880520450144991686447826928405932656443071285898237827873202066653127157811157700140166294000347191727837832210768508589614780192520094400800345935626212973848089271221508419641859527782010671349762985132906554815206466514461648856944309917457211443412678155335113308571839013516642189257929412468789058305581157345915211856467928533936604391139266320573182972144190581162840611999145274243574933661700718634091817569557192964261508106749275357745609096511374258149442959035466901683161507232066680843415611499609378609027932109417172639394925130649467270415322538320424158454801576337264225091493931924771264518820650023447134650432322575504041856984219217547308991004780027479920558426134294951252919713444678081532604463997192375183749710680924995516979554764750121889825007225749391187574626219723268987307337302788858722112315251827521793931194909842486859140256742744277526636813221940302866619917575718000805717500339641265427861276514049483274042522967240413338238322658834199707843749343976218317514487152574819545580887894323272351679125762993137207113646649870253578926322767815269501436745805848319957032221716381204532130057405727009022261425969832978350997741251467130660036913080837372920529028014259336253168090823422797693418264915671591256165989148223439665358421749046360459939832756886410832411202920427644725320207589488295520682482088285600529829517625169235687360867772635700387514119922862473904535269412449549494085718876571507341862171101103817582320266845083603201906387081395001541049113079386156356895422921434679748942448238246422542032578769918994313326592898500414215363673030544315068248849559150677782070626365631856438073554969900848855885719539672059494806933223132763708759781340115317275805130576346033452600911056424754411865591850185804147064043414359269086851978748668030093775526434673881101991834053834848446442374225374703068100838415298165442053714888093103322881548340168551300562721793215906519241462208066209836146375380136189962042943544213990422752945272317676125985699152783943800880073896954263787665491220914881116281081804326005940347885632260605883711064072524598980760108430400106446977290141472339011408501145867278181266998441316231692238601155047572277255582131524207075532961488458953566610406527953449452144946805569122712831861019440291941277085043857570109680680093737988954871389791919831237594133545429517453889416858496295582656008647031257293929339177780795410543986999474799568989850830106549321862749546494318556558293985115634368778702245219033744930333083627926595294929423307722262748997013500540592341478770912864802633568002686984054559869684530017159479235754686138348255592148112727570827444790509322059068880326630240031062425761049955574480042831911213456952938451187922622704769331058521482239155911714530775057821130412770373761890909521855186925671274280604475973754510967989399772161521667638411209208289799347747591864358862019128325969196867213947588534365651821502313545995342774477228215051008902188189504385130449325414821830358472018675772648874062515627013890922182865527409196620522683501626343224670413989021842412832233187227940769826236383787764968788618892525650575932487137735181579118454713472690719422826038182814535948846667898544116707477575359973389079699602653734402873488642339152476243634796248377233816908230669822546296537961287859875935938874200385656965653240961073169304811997862981288774135805855471949232549824098677009614673498756570134697572857363647469661418829057080620422182753944541377375970098835410978162984069037254791297239360161895360567823807074783595014722527673629493736604844991635667504756491526934214772204338646042716667830729274173667927249656740238230587422697911035175271410357916985438009791612433332480414103734878392366407917922665012017777773044744713692076696613610799879602348108872677384758401884251212607608457943016437354929223787641194651226457202175746205892966221837313831099602543998329331794881127484721689942430325808498204991383494736041753527691110090918721031934335261870271848618407682115126492472863926619109745425674981362860000985482553722860029400281206904224615137102006952416602553991457757479038560352460444086987784711202197987144938329251344826392080150069880717437864456675625775544155636278879702845405868727678092980156051016043353481796209583010133409476527655817066096064239883798215347982683884662486135502774225726451568588831107064487309106403615134233029242550240666294789747695793049429786826874263312704392534469625182993168254943838773305791751905952262531492484681238803736474382739036577629359430446609553604946990483137448856455573711420441716709901401316490157025410496795548637355713800389255718818998009154424697990538756533445653509764391768753824067599648530891214610777658472070658884103467790763096389881750398092687069978481150773074586906187180997957959098750188101273147378624393614611075479581635092777480389285268167355696202873797334338383104854874180615442731110241157922485318174595288535358687196810418039451005597565507034297887352726833210815984722050111066578477664479515726150117391426559725711525787354707039171522953510252247734463608141539727236945442156846320132808130079609807244785364210495526542271331282939643253162083390371706901338610621499660048899330649385230963324226728697799232035795552333437092675340488646727838066035125006721955064922180733883429930597126554694064498387615045054698478229452475467373946730524014594317780080441765794530672603129575647988993843626366749667577279658164074632243158181042681047053684912298548303331071680700829805667936490348447052376626733070393868380631062036375801976611158690725338516654827389000917671444758623836028211645038818161627599411565668513871916502195179177852353514309464874386729623367933499071578543529483393282852289661182824334061618353164332687073479869710249755173490773736897480568254933388582292286341792344660032620916868345038971122885302572982590450961974903160685000658812832703204772000917584567588417504908533551635069714377862388464885722920165926893698642422804537609198411449419397566218813207398548391143923133398455494892225010251305303082337322233183602755486151468086032598630239046884163506215281970683102258692327599501057665200578186998958108557777879207451698353340933060557473044175847084843523985052500984718536393234598872977086282872200829389412003149430862766487145262483451867981349810426609054534490885399990538926546253273663402505963856979174957272723729077075849204882447811025134776759417860651315403067202527085485255370231897687247725675594056050307458094898748400859402679824580934456190892907162400576396509220441214303766947211294317795386739368129455774822352730541261518954848599077237614119207564711431825588780879329113814800681990343460304578754999658652636251808065511772873174192696116774153746939543594652322987142460023394316751191641028532218782925154639009383335221614689481662480097294711683248421281322714738360243673155182058673397136312912594813965590360606221820273893608987325070566525044787859519378452004500980291910164833766368586298021215746687620317220089164498699315249213077615787406934069388731238578444453520102505294127248620183245383720074199095046644713010094986271664779773944116512444810409040097504620634544503336591538665364656879837970183793847239625132054494143528483662759891396145501257034062883389097404856335047921009214335216601181889520585990388552887189621205925970212700684457246841359552763809063783331075348371348212878529011453913184133195594415310390415955081353293111521638364538549779849467357381862117507698982387024744731467846567655152179877558083185135493667986111309672927644765448236221354654157946675481628660250864689575810915671409742103509747578591953298726646767550825907188762163853341937651661240127078942434043327246369923285604916430002726491817692857731052915668706297960995578056045516164312008247701775642617220273418840733222155403370748534368733573883402311037883957134902668706625070762318717675071609951084530149697511721181182203410379137980945498969556136864739873476050305765438034133202447548476678447258399522806185436744987490641649857590101961282595426281339834958186017921985760211682631303225443757514513306956204523572280370938775603793554538122198581349933632546471368740298048857183648318555422479696865174780925657286222588833176708954194710492682348750663998801643161787766226005198094899553840466626868813909415856073741244758677359936614919672021574986494001646139253832348493794994103491562729344089321774409681812715369079560015876735998040797190910993780410715241691320048269244047420584355717614298095531701082415566813066577154711981014434436615756606224225448626367109642720614129048056796351619320481686745975683663934455470608555914121070009456586694356436709395610145132377143077653004913032963547122631316414716485067535522684864531026480546051703772009860670532663450451164082033474392763749280586226532122950242987796465224935169681303432065682830277372974904135169934287993024949886412735047342876371253620163307179952708032360384220846597092826012304520367206237324248880896955047048019345199678116333530932006056305988505089003590792580822736915276409586115406472838001063871258308226949950478622380395143579257248217990556882094998796695090050126125817160441185512151815729624615848851834477313161130117228778384920756340627303405079963462820643586400980510448037887099669621850916153644185058180362076123949000189840213061080119623505095463239019080620522969998277581357388039336647133706118579124654023043862779929400910426035430395433764862891052106964410074951530975470105447129834230205186149962843153190347028557514520095787577513197535488013054796546924217318681038642897399007182009196056285083313505398019457682038825158953270036240122743694508483832918660816301423133657902111351941127256548299504102172924531753488065322256304020404839395593953474812807367892911954439626016213608358953886117076054374307929769836763044885780559710267968852987150029209110201611434057503786256810309835165733054096019971415340429406288154426012988291140206620926169968190416687303885516640249108032131818484041301873199205357368415803854675990940476559113733693952584502349514801800970322973923854982567358314321384396682983968294699370194609784626405867049646512599951347045228025252298080793781342252831550383520572269514561017567436030492921877163297522939602336898269558059217842670907018694226929469370598194517780034072193784638646076722892322229793474809930738120402931452205948407753683568834692913362875626285502901196868854766525298719842630420109335673754172390911487573509346569319384510864930811048212202280485184991483003549892242294103602561313816525712649184494950329005706483375853329704769680130595445992160740754270482429311170129655459590274385173223548656753028968477778651843803612211919221854726451025430699039300549569007294800578338060261600430087538093952263741489213308563724327010157304109582374674264045102317340199867239007715045244124234551338792513337120708679403640649200635404401463854753656640145130492185636365515578299937676060479144894068272441968512897885015942763679781220664374418258612573718928701641521867027921167610796744124960169228572004820362422876393488772665844920727639208918519823698615563394369427278594132396946923342146352024150197746553303786448671019958158368166926397790087041584586851861216269703064794635138018922916495401444217959195179761125486781640219594353820320492011396832640219575326564173144514867501267990261187105484483167532901443615683125709034674375585989290756501112942069133462172944605348903567603727204029376734091929144069041825506035864272649468096359043379472480563934266000037328912714134473808310151066352972366086272039608884926932920738870566191162746455568781690694293214655963339885696987585242077186756712249492950792795272892416785453549244644966037544647636298422430934121320444198969616701043860934160250760377242141606523277949236300300671275545763061013300058851353171134964986637344894732393519623916169065750027290232679427608211425551409290723081920160854380861675808689588041470426393177558785016210593815809328351598346432035923722116726136179566071695367550966483907596333546240691451748870396524789688436486467897374074325866867205228761894510270764294037491268780654202002709334448158534989588277061932243850259044843520134950027044876834166141975259385698061430022033705996310684953379245962451088385054696059992048712587825859917425234927822251616565887147320084133565826833425722412582438912742006826633729452241517449350832719133846293522902879122866648266735962632073906701297628035336175245992699035899544824710394139649959679760107192708094626271430242966166750083616413549312870519648386254583139175839476480955272307865854678244163127064303132602617825683677831455531714430278361958223580241772838571314991230482962500918087290638519732716818143389198860175324741775638522176826561800557808394863710119410348585059981418494377289766048329655714848296225002164074212435768339503889699163301363055848593818287831063633981259858934621695483152777629868639000466112117267280869454993587662131742374953456032296925844174898685553110211756644285059009506265852319049591599203150714397779003433329953429652436002291966459172879361674201383624292076431403171976578572760444449055132214838734391750920901359906684459174289210747628742867104926657619021002826592900310547636891942076262697679076208084923090314629121832470922465211719357270184254829729192633941930770563752445280175119010647763489409853539066213518121433510947771649125554270488980562524004057307976152543998879132031300339563638856592043493705165309175436425642886877014801594373642169292311997591388154150949994069731412007961276320311331462056869142460266168304887575638837128062321027737008732176254764503163810633895038858781455507212248803801690892051900620750117016564623744362171294109760822142443111589053792223131305979145821818806224075293001093503551356605122360705822554969981108326182586949168482064712663510509508382588760196427465013022367310795547004105719815968077637007911471397845528198598505778247276261485946577129496189069584774233236892042961487737862330436657910003717378112047246179326994363495416801876249260647353538979767738117985073633146526848790514544388484177836280007052003268241884332520222035722379110264145592255884420014897691906059887720521468319790339957592429353832140620339795555514717228398197544128079869416489530600639708471029782575155369579026944068500517588820824861349070214019074657871963627291760759951406819213879180430909711104264004083320244648126550985400744791609607499848101150960773380193791095708606601405907206552281166989493835441957205913995743820606579653086271648420192407244345365521259671527433734051655099565996581399410479945958657191051237810396205051634789705758604012074137663200709805103025638918650009061534099478642510854718332162354592521350131968019300558827286417942687726332234728100292660886560081907045331690335834015637232984375607084693158359956104777767010039816298587148744027646573653456582201993265981890359380579624908621702892575683647715532377909699444603910115029666218828818043490728917797459558918476992805033699714853043312664182323657606688140897796267140102650276653413684211362342460156866010098777368593214898273218392806528817040157240279199308867772456863927249105706451422470143800159771454281709275035666849913220673414838793460429681612968506082972148264439617428884504656812123720493911537079753462195976608855090032098799595215347399741080464392956540608319791504252893898328982790314900107892481582176852347839427466278958048442033783642459247714559066634987392625018974653205771384772234486806903271280264099645092119457022512050717148034299092500806651932999815790614517637621337896135638379415388740584434388907522945057887353623833573643879142172928365071086983791416944112384178615434212221609281944125147916058571492968196060846256899528632084111975091091071695401764163078992061299414057687320855829482371535834999020903021479240130693225881345566048213039572859698932727533394668193603003174346455686985527613437936560140317149214466266671951080299514829807723373822631934479970911102574408805226257569771310125709433435498071601469154588083650715719719254154864141508815522766765771389974284801709153591837916010314474170533752250879867357297586487079254119055314684790435670352312216285512975909152789908031116465866115983791784681549172754090959219928850370189334292786941154632573984331851649874316434020954044476766165652411735603574472619406591974955801164258465766320834523084429825657566836480269716327617436967480964024252222574885968032079988530754155193182642771912971444755948602008196442539979784444763842765135839968888284463961864893235545772602193712004430879573912180971505006238288027981262953305806772113021391528453436411295012168354772261134039622722037811267032369431005435964943228121318155088496502278350256823754099067664772242890273072941192387665714970978098064892335343955447942803360628204630369186747114672082542564660501449039817768040640461841797606831395082226263626619428109161412098200393864477476675241981177011415145375933060571513233873190215556942014009601221864709987924628884849668321891431295190942533643983987741252174463877219938977557931912902300333480433888204948780098241945790850195179641259478028310085128174805126968891730347730366595427596269319483906725732149097148403374688067767342301838881594044210026098872962933070569133516459565499361174267620760301687077604679821797205694138109317895438034416387922455770499028240416573789437798248419807041940764784319580792967976228644012711276568114670417776395164026850679043661354537474516837376421823190973521333046604828250040577494637601186715112227379591476411123257891792572706553694327901874072558417630195368496320532339930762653389798134143615716666586881562695004788066121694550493636928310537135957354813409465012132525757696152702923423869756701517575649008429108790328389747374913775707109248856904436146959968656440686303487013605452597605180894635949881415844061239470234194152453646733290665446505639915998434858473645425502163318156546131106989431125512957410875506654445834385106540791476775518127885441332672646546468244638042436749938517239161663440079440365454816765154558618477928222622621555476460638217780089273145009407409686712207831274397896111813876247681561869908571177820310670456357041576647964251456518715265244595831723671202342219910704638793238384546667399503967408158242667841827602585730457301208496312968093290108363767858742543456123739487163849246240693215593227067056830730162275995702133349961365757841356862712235918589721029440823644322227569009107869848018876193749952350045810691741502378369126454929760246567363484365504208001688188181012093359222814569503273980157579405438599576817967720453460528327757995686027425751404230660410867965946002203586652719439626943451171983189993069086806629435493304439207754046810362616420991651039049921880538903998151333953943563711381908085808924764377153370754997284725415037760504826377961864905238002698035838198075340925688286089011150033056968401642569215651461672041802052052024970495689943666066814237923524584719787393547317414342583703122504186718649423818091183759380370268932543555412486077923417045535479097053853186226404688644987293724270643904874140134050288777746587386778139070503943329635417498807732636870124549849484107409202581666469622438667031946897729519022080278199647831420138388951562801407591334844202298984589175651111910231875056225018220890400546699069940086790220822160119428666408882812972783416264690657358280887908041472399165811204622798184572552533090239828714740261566451813339530041917491867406360920873190948185491497686791682044530450814335345216391509080809528315854419932265231564633905353778905047872293475181945170620285948557140832715248379592285623355235768891392425384719885532094891373255982039322158261795540529119188006192362142755632611900970906846818549709494699713143892893470443576620077400215707056100844348229338452781116491464101869683011434088029351511464576660399734653925586652936457978688152370656834485180960732929450272691626282837641031282283747648337101221061781106507199828716414202576765802197187532154376826172565549587230256355309036450783361051560747345339550439361962268097971279117710102040301732533189546006860558092003673600926060999530912992167698523141602656998114198044590086072675664001032605256683851915325111214084156157278662353017155738011263184013953940724665231007964658688046077354546455515271361437166975724339916700251012970278421527341679543796456118441050352551483912696426009127241608933506249377789371332766137512808813147202048932076131568644778645083993050608165520061883897058083477560981189241068681064485830667515683789025186284368933857346612172039651014360057813341596017034832890468995612035712904483971713853918207814167156392296584966780246713431999163660466262452798095652327547980992312055925635574878123672804433259754645319013323993441954491714598508255795727799002106000360946670986585666110576469802250600528095320189136303667713526764427999063264005886786725806563224325622286692800080513093050429028156738078807862918816750237334336421284895295965490239792159014281256924709863214496567908379326554979492798982289534397176740555889761025290400389044986617894969409148981501702725891588913132061627463454296571979986935848286837671553908319673499353132273647735514817894998246733845066522971015016497475791455811054135579117831975446778111660382916305035088669875874894056384526629538226903192394024091728900080030690154496353765508339298992565022397045883042374905223505759057515101542864385806439339047238650270151275148911743260532113298979903232668097465415878717048630879715685529299228484454586509420097805115269012631560562620118291383996361040428816814556853999768766589122030963700121651851438783748353660265688985038206900577812496862173728043094021853961939995640492901294207648528587185250101999688356905790478674617849754902873054637180550230805072446980230710364976222672767309763491182203696221371539748420398522499934508529877453499614417857843348104480486969542187333902935542398070230922523287897040417548343362210138694291913352730793850946621349459962371995565477143285899192727364700749189756634455283034545163742273862591934471031184171709170888324975219220575733566993947093520725236918870480068128360240858130351317711895155941075840662331270096900653452064557741956995395622672781334412861740623839800569724931794820700098289069732620820723456589989779604785886746923338293423949952868493823222105733036689039755891374964711650300546031145413722345313161422904784683435611149146561097186881394179228141034887072419107124443975986482633260338139116106083518447772560804083596614666193413023351569601226449171178258953675320168148837856009288371614493647119809717620908056388717584991226190771142635908512481936814450089889317928669506487748516517537541506017504802037286791426063557814712339217563699182503300811850845712515845619624012723604505802458848811728269617327786927053193209627136117914534826195901114692491429779006914010749238286562258328010889628004781796243341738788055335726577308067820580194350640611356755776874158864779438348816597083134746708662401238984541064653659589805257504451326121498688177934619758756270104817953399511762394112676075476567752553066939313051176970350247915559065171711319995936521112754823298194049061533043898940649308568879946845427252533944691952374070520668497669430269577760371038550683269478739749129688137560197381597823813306006166299737246551414847014286292296371198962484187753037030255645240710793645638151739645699466434867487327401803035370479524261505310030667014903816640717475059093057668013020683811295547948825244804601708396492265274274793931661487394713589304300945896129112635405753110348987687605611428127600145524131024982006366657011848574044466128548685122055247961622350926173197836310457015758385251158439650574653423376447252598671043959716536700797739796238997360363007917797031656259284084110796817959418176429752278863475298602403532022727583816011313760882833946040104389447067848931158710340967655127969335112181796127704767148983470943452259549536956350114268281914898383802101170001814460391489015272380374680164348054066884130182635103835265200391074502909107831804558152901228740039930016999869660616568017536866445546914105548909452660191470509942260073215561014811492433485670913180674384046662743977311684122387860163973531019671997168864569443890741289870526966688694876343644999787833679144727012896767852798387667869434135961984725581256524007862386227735824548705240913205451651795743544258574964579448215060646994393731092544909959940533672532148467837589092022197300190918271976823173540736391055541803470045647377059161814136859701358858832268624942968365934181372342799903476593063173390784231147176081068492270964988532239086794165918191942121591401344376666317135865187177734101827008254907389933081427064799327271095901944998860414922192298174580713955494812609471527285623465844226823769404234672908282058146452596124415049256834448424584272230733256864546668781269806819780981132225907983786817338072045721578816566960756140230049405707805758822749789626902794522043324091645230252337380433824938489126708255347960218470739033817751732501469978979707457623949004118676277760186577373121912190644596939336712499661156645041976471185862624143701637250712271166776730339388625531827587194121525272345984811862528365632091941949016709717211073074931529961861496886774434691629013364764679584103637365530441171193337950567254994108894338584858184999366967668252284928103667265812182659458160289761130102615329207958802282503306241387423160649852218961600751249755557155426647393888830904495078394628515153538834354376950930810551781708581632438828641654638536455293250371288394090935823236129198474621444818329101995087558687966432848361591057731042953703632437131252898370336390383157608575795417212782234620062094348345824719527184481493812913714107115687798888940461163232370944044467222805166518519783285927651173827034383791698655617006543710377055298527849802966776972115683776456938780013223841430067455711587563327939471713399823124069098688867440924577612995891650476545244257597298446558112558304069868045927048156845576311393563946356802975871914650693165191627986977036191141401331285593413340348970561093835925423127674528779021575911520323251670529748607249268243499082127506663774234881083404782513130405570082295037747241995377576512102954255397143385113179674561716435710839102724252594728603483134658717615408746303592440465287210953506967440454228388121606795125140857751412577096406352609494385243459880207066938211637377599690874766596606508059157461225770788150246838215772425522030005931911791886430557965569949380616602373557542884966291259307856999114525122624861071013983417701815180651166747131686989348080950749140210999591102330802849672288694728057736490120308941401210816725002642083656721514083023256436013069098168996898255643414876989696209518223112030524342111027239869978065342384714619279940662643988829209576745969126864564342382949568558669377860838503509170981926549562754888577697954556737049693471281240276707613548893535624355435601073563883675889326748346458744641506834647646185502664662393185382761740640073635170936846517447464127565726227822521671568333525612383259483678600992770834700579027698327969785516082777790957730003747976141954146135552802314316651459278251879675941867941914426980013774463028932395192512204716000887402304121931097004727657566339490483711527461370495604953959557561047968881867788203864968734031178594070403230872017076268816492024538932671840797821384595084946428257177930682040358948971574578121892326865027836452875730357600663612520641448452248960261035437484968936780694651574074048062181887936697762557496079429765190791677178977011592623888578117895760312786504860652327946855632454517220721333992002809610851964618307085140287845129223338335954062168285508994977685671873281314403865090954350302916285391181245471496646097263734337155941253583930439333568129253495868939657921963866557044853616751680826210565959279469064384249606643724250237587511632054955919291645353156172049060889368566495689874740554927225881877224252427688815673345254949021339174484243416234870918923855108632603379766074136842895577236734497991521249565198552789516488078618117284541495752912826301580862809432719380574802969607329206572683041844326792667161340116866048835362171405273948290125552740191487187674166600754174149467062017207989378814565636232658361288600314331373088898170295085249724068457368314249635556017715587530856746066111172010190537315462558003732530897237481766387686774351604302896780816066907312289561872568814354344651656066718219638106462952635041938926614834463915950754542456889591673275234390658013649321914892809969677866795119760743270295318738898737645918804189577133434435748905938218753713924693071568067392445710710281247787761743784237702540204368006243031491925529954505932259602017287737281775638147567828977600261197466991653247165773464983378042574422259481984401545504159260825717681769566517141060523000551991384053198227420065763789208863639772658936526273647886100199751599177474252051445399674475679835538065331603264470651419931749576499356110735203629572103938633972671141100808179191164518570048923304801614213472610530796728280334590966875676677708951373408680501780797725270416810467801653359332906878489993803120531212573870269367783297409238758012711655636053548805483170534988380950218482631815072472003874813956394001936308067410031622760624043449788319625249196901563500578823360484901776791297735162639792999345306605986066397008440878793056177280630515387431366906446155030967835591514495237800391752503163435799939493895677660710664973151353805478678377511903141966140683302685517752075042598078022839851859815673472511382606790635333091379081345761046380572190050254440052793948876442289773278823588899156945619027760636685666675229826208929830592860008026404303479453065557612795993995788943277126762095173385431365968872122666564778105929029780108402789438131607897078455948334668171228561149511479916076667633858500078487718086149828857787324626248160307027569030578505094037866688223397851762876071576862779376806715557586799038242911362574771787243456633206080884323448717775758093826075139467805861875142826381905804978518390491680689081378387988866086780899614609912687020869986559498051479004516896912840182949759328925903251120416621297469076440906953619787508311903175832591770672968226696045762646801705970770960563479317652855937148867838977578955362852140131140893330131933606091534457234550292358710442926174996251652460873719859139297622471924224055575555719625028893768732715818726875269457201979932703262865665750986179966910839355528063867986096267681301413500360358619842099655873317658814033276472211514402488977407551938303954261318678451091279865608269519208000816401506511001875274977063356784596522029540553819503851589723492179328988141237083406964020746488821603184448636417404561191729473534124424829103339276861889554511923258398911004241793363750541542135385798245764179644630122027639111060751607844128357106152723371316261122291115249398378753305249614637242175364449032740986659291735068533788436347406214872433561263204138935371335077234725531153104775971517484924701020838144030634548012167985208141735825931453226378360153727145577409140283856828970915342819056232404410189410668415213707108031271342945753118999142797023449587490007182959892494723023224643498835580898214229729158951732874190947975164139476459873427901868347235468081075123499280043949016957482285214632150083445412471787562042295173374638167608109064062770047673984884842820678608384045647979769446446808748315996878625490564512785688157938980451679589764140642675450665528432105114985982197766960691144574862269963612389744713285130230911919151514616476697736178847508742259855105934845756012177894643031344036888448298240817342116839426795451831647688987800542364716593515957235451993360436451222343362432484350099178557597346456562115102380792907455863337200250052570016429535689818926506279719268653931201761330237464168652161064280626638980243018484070100326733138391812349634980053104754151526811045775647006351028163918372085248240954044280931870106795666945235626079470556631307191495966379071569802372023669143803208632020716076230220194508988508380806642016557148817481519885154311485259785823260388730596739737724467971214680684935824312714055238715508884144187055430716579935097810540423169865343863589229313317071273283241312786382809057229482155110516868991213171137832326555890081508914331644445295925567965596190492881299267966234138411446499968924287949260533752481541669612876851725350037686048865486726492222366595819993505683805338638820786590311619471268549384323644900820594166723660219968235095426134154232790124881158956077699267572219877427819380395681079413773429779676738688109887368888634100029443916764333457202222981320778509073256595157259110066918511905811013761646527172855561494605565627394319077425200112559202918193752208503843432620961087692441023669358574533304105617915937722446286559861070908623419516956554324587194504799959317631195429299214342113173220152505059988592030824599226873114114014131850204816640731360801739287142382592468410848170606002214022900987239273375615701978154783853648890663227239448006920404913235432822709554499343160907646251364720123355798924172741205839638085463488250145621777967166914339954685930272392658494204040531211923844482854078017744013143136793085253577537839091549361585757275091134551973613166789032228088218191370424077939351704403267711365485762558232961201953955475480647367554047198283082803856377844872664215831988946514646033513976923044947500200614367422620735841115191786842905139616180519957746567985566881534817717895120268983247518834845486207112098494531794981146463234364089236227428881706910644753075353315113452104108621677704392217917869254783359655467152431438935140372354886548676526743952541954167427475612262419351451291338767955870877176543236554910828292867339500945077881910797793967136151470226576296588476449954522213239117177640754780914532485504936892157934172363872257001576169238000329908742645874493997789602362306522972640416639958575785950139320678218822398744558895574395060142942224174615837488320797137109136749332688249809033616381483121392812006095603227643290822839330004715589908192668468243180799810177877686034614471104560431205851557659289952679866453130018609535319727764585787950500321735603568016827959826723240446891172573023988301450673780202856735473650758874968122245700872439601269614955261300978591077969975790576704946994115966401449843340433025699651588545891836255823143424875864751050112511124278068715520278537843474654872086606049768241906918301939201018941986288411503578384621036548089223518961827730706027542563069723222962990451561263738534475532399151272742282333074900621756187198709583454428731520738962382444016273228802070946805867785174463892524282333253222043077938431758679999684848920354562828662451815636759842646498167530978997905402069474684412157617135437012786251729255301876039491871713855434972873031775043925116714386416901134719526196893270486386791138911655785076355388652158195321047617097891222779440584982983775538280023877172297653174126611221093170505929642748710392349978161920378504225803295896845802242624898681027112706087851753506224166862137912281207435397663361109512576265462684843526335443103779271159457182769451099601247968968836374540995086274142329129546713740102463782463164347670658581949359264798275350315769098980870547336462185405539307295520895793520533518312382703523087935571722070071775882448661368642449319932486267493300641080200921937759509019670341426045403155026856395731587509423675107688159822267564847975385332673828418906340274216996685301938894481456746227682946730549968574243313824675680550862451376734717354107549916534366498865756205501121001451078592937882270058313074255576965003943681552162824730028810700142833377488695213149829946017375021549731811412677796584639706581760635067631747311655322630955837554273051452266454478511123813379391316445656132005460263895758597411197122016659599263498162077773889793497095867670218940435149239642491755685452087969509646291091118299443687368622431802186708827033791139149349605219032267323980387589839321778233086375746162146370756591790565937632239267839190671027409352079462399018176646800288396340250135905957439886239692973927330355351539768865558922658744437924549939733242919207055749395663399825674406924447232963043463132059016414740281608156869717805492478157923254240367915025116146850870152082699843983169460573311546298450054541812020544627527413980151088924756635701457153113598187011295991292505322980710830182373266801565667752815824538408964478346663228671155454079558254888737568587004346336493975605804105541737087780893729930432603567193075263807568503327998797484766334498910429367062177738792349815399626442379394869974538385040167526095610419772594161615848198068554742432378330851417372186377117124945119741608454564917674499363788951488306000027325047797854103444136190807092733707066638448921879814490438397988246816801960724121720929099994600881514904484361513545179876589346720073086829692055216048699449932120158530136265655358041727978722834340128168669692341517891508019360908396802987176727676231917339298437526134143772192449040929608838766317154867970891198824609565663115240544773725843459963639951793883015351443301486748482896206557748811259214076704539242843603246608645093493370028641991784687081674018469199651522727775065206958011363338194909112102024734045290540174821051866913087531552672798097234072371202332012411555510168794953504821975586645443676189918393445561899020774626041699286526527464523988806065583973890764381434402099121522586086715985724427990698036022161238600843086877334334367157062540084947301658623859373698187764301141526152066029867839961379376189310056304028556989254685171501584839452497719603299274139458831064820425594944011552245897392558626756221245767064841704128229731173369400965445014207743660673950694954170996438226468632920186952712563453058255207816601196838980340259880970877814306455968710425525526283302912153012466071834301533575937420811686086500904323945831938233284745200839857204362553405035699374672989612111140616935659401808535352754352745765598901816528694336251546144269674689988948032377875746438879845483363157111000188003576203733067636818643418404188199413053811638484762545951450090369887006204654136828130643024325031294449340386172800974469304444981922314776320064603961709614598893047956328818208283888710441484324982571823892691628001124129885427002486823147650549739266094785484122146742420708945358868079934298783555506535868000344395037980936634094615673922237244412654563682794484607189708842132504235099896335102612274477897976467309965957204730803618071283178203054913514889195268787304184075631338180825641181171833516235017215902605971002083723629834194856699860163091013769711713589360760090884815228706526545491796091153625640892759888331516271024872666606149230354607007776866220574371127528854839256411018094048664657515673582515012205440818833910948107307739009070150476153449630500444237839723122273745136153408304413124607873895122000304735859811840327987095227868720211361368734798133219293208828943204321205919815935550238364145584991100059943779062653043412009648666325922654322308183533423086913616464753387039675602918426086013781930232132009545981703958640882519492744114098788834003071219578300766798778999786949484058115962190507575100102048371841527224532222663682933973804519772455853324433101332414331260578854490939568767090041068325543821150781887640408288002571183726824442239488269738839469336576870431363881003476572742711388614625141581025860531171924487746554936938000424054646086238880776912019434405026326636149801847982909093133450981580313406269916793915834273861666229805460507728236035981854796343936800006074305739172577277028353272009289233573709071174078559558802301117307857873004870909086009058291060634678067754233589265271913436016291275030206180975908779036312098391930897928585535078326077402581048461135832463952114064295737729627513239812429348652627434265024932262589795518833567118149182025758395932466909638780582091618384193620054939479551552085885383374992339378278934857372733771129008667545863379167011076895252097431654189920173685385491444299692976341430098259015234628234277783353165888061877142711001921046478482599092523840888650218832355102843282707598961417030583103034508909656250376371871499478267195813145775991892944853810987959303098282293577880940026397895865237444575511992146316818217089544973759781813442929011997025454792577853613142270826526529658910002542373351420244511571811260999943064083002488222095475097845146611183350131319937431091701995724521374638667737462396798747537040870671183081287070686616097087878475357671649312490088359341802738394419536816557436151753826458091711053752136391223636812004914913899809758958027535090830334893727142739514784046895603205442840045221022611076878771727410144292784083272413073004694626363362609553781767331995250253505055862488665381508442764644704366386793765026032234436643745305718128958983164736116599914066087786551028285116127896593376393006422267858858650485336793012457706062088642833276885445349160459569743096411589248832276333568638423271243477988454230491429448205363283997852588482978139151147007243012351458936845698569820290922372529921377301592480908241132141791258887067883846660340276263850843096365125163519066413411737509849089075555091329788387450244480954407062184430948831697447216475797611352122904106171528301175254099002047780013861905936121825828706140305690433459103045074098367424059561494439106429734963505220313500702664814373204143003993206669504839853834887544110707798587698359779274782610429215583055810666749548401084191511752197214930812128720788901937176483935208345729380558240512999809665869366900516882492164993718969624075268507508902480630048990738317708583528949030136003311371575913905601759092682265997040621148865246673746189204052021292850915133653767709976052609130984914283172425763253856386267338303852267286529185205692652277186096859623731831427137200277612150511240898147281375231175695918882599037822083899817514729250261498851245868947611971469784505406614352292201864466094162159120210752809278415279645207448451176376660065663102932540667173579971674882002042511893009838640073960661985719552213100385383140927430521096199685846461456439479848895364367969896101687224177341989550830226074165426738817971642170798069981288695823621469023299806663154797552510945045170158799378958807909312857230189067745534803342223687331586652687716541274622910273331831816954458283267330099003588757191915165882506664339789319052200272522473217192029802704357527009381098577093091728222561088957478399527760938595926564127222815378935541260422998605006042967943768639227323067889970752367706875922377660774929351882669440081208375040845000162654503919697669791522464703197363700710811523597696314613024855874721269671573517341036480440299588337370827461375465980058532180921756680676138301298451987463019751236865953697749216454083204675293087771034446592397688929720583846232699596149974133062223096091313831361862051789340193290519419858622936438159826748787802958241226647580860308522877334184590218714505485093880734175043032849045438799665825362690938309033557548551453202311941748630732157124241169044693421190834321898854817675476146277203542193847419191165224641597710048912570746104766762040062910203789470060403667091402138869219348781863587235881164693899504160577154446271410669569620982356829809027124012973839396558184387954138319071527986518413533473587265082225269428823190867812095307562683490479378852231757001701169064804601208265802510990824533307768435969995094501513086514781123515728467824329501939122600616541059207019000602395445414645902275650836559341601654401373974827975327484948330931102402228951992000045263071508844410281762990896614033319450274162462183379612130785813305858023114126446618797131733835321786441090620947462636893617115300438975894180843937890207202726609213428841993798997471499641243744908817156819847928326000982677224303545767356697579940302612532702580990790414861182314278156123768874633241912281996261042120240499857047386181989254968464735589849905015200252098086136388203549314012937691974316985781755173551479982794022869712820134365683308806989596943110248011720855479793067268315436085270201253168404699133013035579938272405107755179396993898129647283227197604321664246563429879139011733165300399211575169705461098912702807904068537344955918021868937316722037095199953765500404554388403374324787076100914008444126964443608733042869993980143740930649494551915302904869173284425672344586410547874645447529632580841949978298104245213506608103449257254422355295059975184203794760902461342515292993026212688746586966125146613943815897380522984952514794772469512845500174349964164175857397644344792437080785120887209703302466429854422817187585541538243675315498122665408119151937978586088681905410604351481088512420799129756425160459272290760924182204838043235731644868573516244904370978732007862858561304768960680187427561393533562793227734735891669693648750506560230925338167178490395600556725919031295658945589366658303798839726825056119978246925268755177707652350439693306023838861151639722483502182485464842006978620120378557346602458662883993454542311976536156037981107904767937052585585430925533032873736286281268928742996970848625069443435766519920014266171653502325815400658934873186287704930876779575579506604946980154634177983521519932957622577646639970279455471479797774779632763870052961772602365891005662571786448374899710269074116668427830651381157306521558484713457641903608550614712855713621874802735626333136990374187693324398312117751830814677696006750682573506627338113168983233515473796376556997683412040323033634457570912448185113664445108585555748700161048081335206464037573839453553132457736280468577282239817380594348255964371078256616137013758894191704202494157232454057214285113993937011053283819099441511586853782030123241979542319189498782001223776265544442803445841387385590663462511882711405476209349571377119581807273972349005593308921518359284031646802555735791478375263260117335774758953232599493792353611745834329756854521477805093466619672365005312652845184976068808186536709771378470016100642445372675383157039904846748935054028153582298737911250629247217494856647667939727307733214622493079509511326246227673437378017617854324524862026662500091511051311092640934550603997346160591779177466111726541256355327883802270214996646822603408708482924838191560800927907088654459798650579889349853430526686186700153664763428933801715867550369905559124927215969859115071187544480393859817805280919112732556427065719668581164028830275704935766635899993816005317738636253993666584827922136181342609835791971452579379897672029825017751890708351940405210120731533900350279145897475315683949047480396312637175794747363350443274319372194186183392216487481663040419927972638368697958141511238943934711540531627369634721256709054709773327064205836672360478628433016310461748296004040694087251664626003386518330519513497833832226352644411973528052780009398860790715975141764271017545664664720817781557560127957214514093466595078732481714829033409030191118550081867630420669761777786385164152590356405970554149440293905455830421693591462332718171081639516227275630019355773774207294726891090718569142759556310625343404257046616126746744709266360790731695116727765231967471027115444359411851604592895958309814979935223078516462476203576266962663311580651250127314545916182846330214992791501962195347760000474146556942702498350375646085367564706144015344676931488055404192601129405813041481470466222904251218825166810575546304127706598986382494700430734052865593863593375947811422577232760195718446281818783128532066388830079807465785002618935234838029373167423891058681394295880569809916886823949191304786557601106049953496831355704488229799368712142666474255572360475636557393796957131948032559469400399496577853670790347176036673049003088121567437949806989993497663727868158118210080895361353730383317436210744613048659699110440717168771790264630141485780898672050785037170625614124388992249345615160563035466947834772124156714881268421835051394551759277939837723480855544439446535731117228644151045178843771828514874620076549049427689838862015927068793930787266444725793056638447960285129041267423278699664424166064028473795724961001774207963788086086831387399871281359871357521735007240292130159739602648472475083469003140980106860678662471572512322257577284049892393855785095984488779344088050470384174754712903291933963626259185697231683863890111804958012596472129116435270314177362983427533525867315702362244643493376721309596154196918643705064387738294970727762456932779031282600982841448966537706012855491871216502525518334713509939589320812969109389857593889378739593069945882779186602715485892460609099035390496584113435862006552093295911931242380265424432009667365767351450758437203873652349007881675461839361176464014095715469656632254447641785887592723594712227024050520822779011364173898757219598898483924053681207463205458984285495607861163011611485845279974638448668047339117793146683438985953983924199040957877381462061782168939054336821067305309320275016177768424204899265936143350421713596410010204681522472793423765616702447660786962458415978504128591284012857241243500242406007084293187585747153795034794821516446639055954805082441965032008694254322627390290789555865723296950847775847171011379995952126426437469362096361160659101603239257888113178679509185828432458781341827245179627086496368322376373535354674570612482497061767741272046486804622717311518495984731173306830318157552837599071818889951051821117711235885132491293895514586558646540119686147101460938432877088510017018509696935194820385507202350215107638658783851798880397026370286222675369615345635310976512322013147930405497008031616784386956912955806262515875010305935653590610306887132300048532118438499273555925306579143056018845437348072498259081377046249578776263181149720809760238158532652894568524317822028423774647411304079777362151485590573278853547746360906188639210004787375462943825000636030145938589704023181061845462504343761998513519428290828672697391162253844536809118611393753543995424747245981439192208403389175358383740774960597845191238528261524085019901442854417518361481530617066749085918496912474722385086335960765587354936630063344735848064957750783130440227544136871784526088120608698544174043818082736946611787196309070247624645386470850463291274966666786577564444297406681310425189819148740750741516156204578632317385915995682360302009269274804860760521427392566868244946484964903849148262076557213954127823089147208573416824203421861372201407265768470357032766099329215658180640476375468912998782800108345305571267461799081463090506031543403485457407419916470901203401544497159021541903769124665670943147267194920028065869936084229759399275328041404287951811176483707740570224522082781901612342899784007585464492733241565202209942701195344583247950473564713622837201029501321832039357939344443653799477713659053455132562886196364290627338794464572750388112724923383897647754698884599175351506709111382401103591940500210137148341798744563634828591649412334922680380148314016325255771166043098985580532081584978466268999837320114317608376336891449654960746628376185249618337989565802138206788741214318445126686438622396827265550703801123691042253837034535394776688731172795243069112073916077146182650624231963977872134057781868876010639166253391316565339076625628009944992521616243177074060309675512161102412583968042923862428542777153119881096035301533139306310062229355844475705056220369830815613084517921114005198324136238348186385255627283306132636349542586062643582039593150369696204936136517211135553884163640304110924258759289650799268535233581714029077423095853237422842378400775244401874978564303155278689276807188823535890052245496661073123898559342626886928395886316550341599254679801311395011825927667632568075719790542203546968522699520661373985927785248403645898482096463577402983107044185890465873377722937433369279361968177085444636971365830963674229437328865727829620617807729902092155137902614343477144309524778311838231640686341437897903108967566578072272157000218500379915566301585710000322337949604751363919157101325637210612733294950436019980758727480933904901846181971197069854373068463054417821251612443730888764571379116306384712233303222330659696957555678985711713762361374792658783936675538383175231018273690098397969838169274837904208149830683099291580622471389463045735323369387009608587412941351069539176510446929232644862340995991298651162844323609777754473388413179984934992617495962116713108067176361717167222761704909556387126209280334786245155736765503519315484663023607484477631054513924269092614217206399312564126359189535500936640125110075341182440497500922611127197037810544906957936142757126099377097071989028432510666747922508362290335289137317748866236323966402125475469540719096921261864235133874826830022616655276947728796394836062338716059974613133183628953650682005011277518040263785519172440302563876772131566780828588810272924344058013782723816227502922633897290455450763701509387641272031263554179509193663352285974104270203026328898190003106173866469921121816741556026410095457178087829707607290780483976837734667473469471276968787419385165904807259228296184993764230054850728877194470032339093971155198135983569424551416507900721909455373973758911671878595944019344052707618822370852503571542876399399246373963381046136921461743995149411320076367433735969215832068882858226013729215263112310355669008266374648624252694151369287610593541963408593328400551915650362876478271916611999044233343494479291661035463043192349219714070145648707400082023117785068370712169534671352782695017792578497507110549650532217513526221015151575011796489374496427684774988932868131320370970414915583292051886509136009722742136595127756151741537596029131870324260027427348560920163515584482607572150163844611073336446451852528695324381004194551816558402038300706111518336851371469636183420553545257278764990364772344212622749629930220267219521808938425611725880867309714446136219470959224905595930004353215355047539380678160318173400426905639325700224332755727068450547363629612107113121769165929505092712452001213990884331694311893830292856847822537912498202058599431546529730081461414562966466491078979540868245088490532561573204028879748066622702784553789934522055356295808627304696550350215108109326545066989086310472823012009429161400899273610990609513282886428898445192873786877587582279097128490980017751550078576600025165820033992352037268181792381782150581731822763848238556796871281245659622252807823554698891617390124220393043884690975197171484510659375687968516539853104766142081957941641557044834264795768605688055746894840134327143961691582401037911086175437061587894639087789587872157057596164458092695285823466902933752502048223083658963909800644850729424212718467114740520909976467455954391205821137029804219421598962142816796100735044151111777236251749628515086390628722092057824452296293302069030026007664139462641340952165116699256480994124060726730084941920048351109995657581438079795433879823758049026326689563752847567590429797236492042765276770847524502372275422254485002721152338383143096079389532766985609346885356098292999363222510900093206063292645517725965059821956566397928461698526245977430230552219562601422861439118982542678926701169104455980049202334834996458122291625117868971235076943115615424648367376878724411796174790284602418431020515098814918170100860159155905784270232050580418393527841826019068619011310900146832678416003070357840485776786005572165025776079034629040979583482060658993443820819829348325899998477442237434908346838093255122491269973868628605451935194343535465926724125587874406463621270864606364778889894135731854489385618026921960175152350325960367256122412352202854432117435552626384139902865386825426933129680132535798474909311187724974327274583362820128127826454718579150539099525851627946657047006632838431509874826019985202144829605036661575992783378494250231604976481312597136287714637899402495361119216547621652688362863392884012240618779700231875719330082365599451202365524488343021484035783708433870420750023805549246417850605615096103087401625598427819403724737693908113974512269494730855592461734762958338925885622992336277844804638478988087959628475880563117292695025213939340900696609795203048113881978664309572948696046815427403071560296343966967933059755873406018435625335303018891143457941781696514313647142389170895850130523258173652815423438606362313658171373170780295821137038760339810351643001179811033570604925968090722095337487170605323701486881822362502389574480655206234373422315759016154554699440464906324426405437633107554240190088579130859973329925835496021527650168371486138969520261925013195207355596658303817059150633366237172901994048765428971364055541444416110699588412064155422606134716106658621903457201933839912763707794590054524850148757110110486944148318949115287748413951993271565979304489457530886861687975156163527890052832937083239868035200587849566694719600304836814922767912410988326030931616126476686984557819608496197817737490564932704829183258841276091785032585071187726639286648408915184052882842432771444865565463467865090505159177420032309672989713766447510902752242228866120728508381558124791849456204454722851288980164691795455585950078089614926121536960374610844940233626598470996814171909724254467558180112762954778645178723097341232007960715581067025744015270293446031207542570090937792859688122045025940827394846094758864695136554361418533257598558431219175215250967201983095181387556906138159833712278592119207726326581611135472808713789870516538342345013240098987299343254837296202990055795393499899672148390609718014122540022848062383342227919475233946561582403736982514287860809427493597259165863732714577392170794517870866028480730953744978945417755822727932156646212492083738692410947900809133790647032246448197649421655774072932594572897318701264817725517359830103262020783114931905754515070456347262638004769552583236260433341411501964925528638842039642363335302114045085539465143090875275399384138666540845444354733411390252186446689638528249286257026428905634497545267583260410188982335237376790380478473628389431381721706685623830706917062124672824415411640683243321261529040783801671493773192144766415136410480611363151057569902543145251557533760659762452640792143630919118909296880708554999528004601110988664930107753761182205375068973273700763602416720757853617462137682609551528480408464195327842217701180572241283953735164131150118299248984986094936101957090773464854662253327672539892720993107971221961855222478224960872559188016065557113809993395044995528908382294043294601558588070186511962678563359763492161123720955414782424449558757749475655573916912142163629486530952272708903976998816564641919370592241457234362314659763403941693695388808949105202110984832693273740042644409753340923311111137993950829089208565798078420154453042972334048396048879825600986213378746950888389849926588400439844848599097055869334820754887644119272252790814428940306648299510112984668457844238194825229916611241200110696989373329384200461891080956677218507602822405012865114792199703421404983940469534200768719172550885097752683437617194680215520616570730573820759529907224302199228597772462001042253450777584259630207182059663478474465812073128908450357504733768457279658188393979151470050516585865878374722207717687379577406122813753036681712516861120500007846210773743180762567828063167700936627063249810382067174353799465213898557967861329869366103849575712296545482855154729364999358036655614844510466333094203055093068621369146690878408467112392824053961622608703085711833139039901982661902799640090252873907455783396625858500136118525045769986706604861792837235718496337589566763451640004327619142424596363257501893072787660633221126002586587291027899244343433388619307380398712823273412401972359721677497945941713172561124242702764401157430466990647895271192205343606449175134935610488408305912972579521130319871879796422118008678182313588086610136394041759273062142866352416038486902059513148772968331934044446007765844206919565847652593228147882806055224960566282409490255051661258722123180928792573480397903807592930020757274543922786741845886393468212758579326125647033678650878082179336976057052109109111571646337020192932410286752465518499050165546355559753128067018408130685908224558663240415687420626838107249592009124442041549113014148903571631724350072923905671803824585880201307149057640204291837113448141629511250726742592221370019614824025112637561469672773077047538365140940686688116525657457220698088059222695551048888081882923428201494292241694401790893017099096956427352982911699972986358597558935910936037344577255212531882710881226714160984693357542462458865458502173229801202102500050034744670587497681899969811761732593070776173041874844759232627960801677120896289527332055383982844940274618226905081277540371670506405834269643130338920117953340684575117779476795251794630401030675421672182412555461703172446523693660190668212302598658373618348852812899875068910903788229110067593462448907829876019443484651462440421945778187201797992281943373586485024322292031631233576058044669764183086225711792866212246739350817939764661117248109519369657982412614998641008649359033561245824363500309241269807485300548630410483318946143875332762907066555408914344277563410709692899900754353922311792674230365461756452880553962750050616155023088423810376088776264041559828322430068362876511854754049282304735510144826049929918616216009192860511609348898193716257540269592936885287215068279273360644279569026726248788813897765242354558253864455004562299334385540837341558157438545677568817779977518596100194984016346719363251633363579241897042251359729126210879575990237821662727538769762147913855915634388880361607404089046200298320656065470769330104573392796619866011952635856267271127112981971483756535910953580808073467164137094788581996380916709523053691635212596444695803869278842354857980337380391194870375481705422896110463167551103141898064820046392518417703227745237174744311835184772272267937646842497193696322950755990158066835919366772491916506339933424281086742010871334658089899714861843411946495215849386941769036798542303290001418977801640737586383813645254066030942175898143979808315029623053463146317385738667663345054911786902761282692766067110115716745118322460363363479415336240312179340152930390424397624556033561038426860128380792553036882990192248806337439573753411869330430119453429365203147078515652716153822327676110156321777777020351243618546054864620685510190155887339560699206833490855941846888153204037719586155886859940858799486904964091132413999051275161312937568825222551066493337791831475628900588219855773383772498418131788072614775065832444824038011524748933719469896613604682210953980421256791977692141064556463550674554292118156040119814922324378919930191622641686546281277351842360614381733292250240315836799123603861880895388864849482290952505325564716577258028601101555882385390344649498114125564142243960652918819811266431085803711282820335815410647201469728789006798643425934467318166810616354916154720723967546509793802512076784685976738526493524309120387067191033749162609718823717505842513798432348716914095147338482925870556954618582446672582776386464243858780338591039214485906121122017485527960655996446430121872468455254751794470209354373584540758609367441775802115067733194852657544226681114125192246488098353788192952781133598725704407283764539895888640800702747201094216021918912413810342656842310535052594040738342058315466906473109490730753049518452776827013337233448558197157878413669273647912247966473617766227268211740466075437509439490872364187579408487566541937654825871027450508226113188578406685912098475141637190555545176323147298365604842076840773781595221367184690467412718872977120697693644760754143797617093642357734841650174608319635727780365687353034361453983503071932461484663897153874120150181653197529070164380314803681367160800695408420910254342527603746766541962453587586367468683971767538963692467281002990495214095585339524387893927649227539640794687778745628963118868710466822008107870919660660097701763358324245165404316133084859305093962834592453669343124530757677861135739056917042800905122518200775175039676159809983630966545766724817550995347099348390568913110592981091191866069302031114261632597325200015313261097269009896525087900293495531454797839988415844143645450517391134152275998551847621418263516048741982427409704375895997320491310312227386946235876811626941562835255327013832272635896754808917374390166208690754456623667404381603556548260960529797454292817061212779805585995554976252859316682655845848432603126145478134299032271969162925984661417044206792748535850672527129703222616388113641680123416755650713519738623144896041803869886765922913283316653402209987716876530431144665571432273995171778451741566427671682909234289199242498114034410968679106738819914334725858746095317789723122776075236993341418373256705688014544435090618425241838680917117868762166198271944244093757374474935921994819397968316134478578934963920482402466118051735015949137602108918804191590246007376519467079338164401689366093468218306566377591352150282696125876449751623705722034357214220310183514735245527707660614630287437319711084423249526272675818733345985773401736108933486021803122224231473181955976261204038597795210098828255546701904285639989264378075356804675277546254150318622191902390683289164492263385542433235948940696874914617575864900588975434005259278251227331692238498782640572599712978505605947061758163140079632916691569582723439119890434623373274850665284469613343565350188400738252793088534444447820094945721331407756945293893127227050913615857136719000703199480760614780474689136267329530088155960684263454375196234756933878649479572528524885894888984563252611158195635695023890834459560709915223510830019797942552212047234546576537438058496799723432345093364863599041249443370077543508321732561266305619832854055084687711377779095248103217662107540011055110324866884929475626277658870604955793421129417258124532116828737218468661757999891792591086602000066624058834205957252484032270522519633000937095302049906958927817512046043342674691104831730779775887848354392623191641069509225693369812037165121208179351461119066626439974391313153746752123472214809622262608054885047914008004220890988749867860704784624302621902802873191342327834594281070304994316102028253157403407126680311581911247990068835441862404627103397833627890552238231601277327394032298325788119195937053456899364456099495214979440187910315165322913787436027449416311096959451926530154404433999554748066894503166197628144632654739633230644913409100260319921468177659371013817119302440366443404652572108189626573836230746909597394687859865740118866340050001781442477172838615266145118109173504255932579182130586614354229008231428426983090590242781020349912725335907631331303631169766135963149938190760796459005982326253737609120015101825109355702376562798203352357371764269644135197533846681431666100360275761243234245804723004290355145939070933374672982657320270333794436401444614830982492401907851837436924651822211284099488061338733242510872844154934705814893981023827946716083751794775000020322832362895580605911160600213088103156930466072959291839077032786553196685079203402223408192216234509825122349428025967128219621412460927379991601704629133532506142192119028728099489289945705237357410814644562915468996875203428836958246035750199118155514686543213390391067089194332533045887806552969976774054356291909520961087321975238073928753525112351034433862542954734685971276271283859907391334482347894115772190967502070845625289208226253790543663456744859922091951628126584614306076887831973018213575611181910176090672801323784262319988407935782608452991880843046979933633657822487590494770714973083379093840015999794794206223022433782113672091381250192760730484422708955628995478039874972625147148705239137007071831549870813437192903732697509651281464273761625492350062854690622686737791754625305346201650915790036650119186622938234061285841989896078304213376447640029448421838774521700528028989629833799036502014182623711869616691919897766426934089952298847509277984764485980735872053930197829656779115497146756953687080181118642643258725713249467809191116183525758532641631533282979041989594423471575026151665299295228250566195732881690806899238522089487010958971254263953771704820924450581318952746719644755785601905758699850872634061516722753403882523925686225047927972638545738029921928142587877095631374589260531248676435662921312144915140150178140163665084323566096393676343556479045959856941619999861876312655250718780456768134162395789301238001801175670456811428620401135244471589880347211573053747358442999115634761359667013064429098382805370436069057732271131232843402304576938007095035438105281059759773209093773326923373106674394190840150249958217127939565593891065140158027334860537066903365533896105419039954230357961054314547186071711413769822362150764599897343281846488537096570255371460154190066999819195150481261283107498197626367059008640436645987245892956514282391852995496756151629941632805389280676968550684323965935646795792852877074675471529437517746039949189456711796483233897838438484112291870791274862866719664955578839006835233413617070846586596673363489471514252791284981261854075879925441891283128641837004600227667337979837637708345080191005772085674428483743844976533962185898602672412302414705219803313153705220639843799051222441467176983576478821286403123740971775906435609519122907700818178220448253165421767479154973972336531002108683587483314032539631168539083343203934489391030945860894116081025425857553802529781128048508368803265680635736496040455048437073009516800481428539621351709720142604369071723405003600076673032487010012428791220787376060393062149803468970069842228590738552865335836450123830661248966246544455833960370844168548823963531389026179484393395693537386377918470325990026005439144743000676456580674742966630129506102840338022410024112381092671195559293852489425123197029916503193597698926041159600720488814288613336994808099978716551749712241106647153646129249505890042499290158087745882852575635850893548158421844561656765707803716838242274642802915033339572115353185415104834280428877091071334863912749240435192872618003646778581242114778182236039446189874399936838372704710216971555394183015116986563918364320989569228704777944409032096686809428146544744906448932627198922039266438537278220954988829961715478298419594957973792798227379448086901802752621063284308970243326894606679865956057125938558305395124592939095847550279712039811440975554755914073910379841885697611453166306725050035646040644351088423464248376399173749343578135198872352838877800457250296283118209231630325712374547183677519178828807513039128703706967907632694437302628401322484403842174177273856558140636606973503928078059557985265710337917955103600234918440497472179058552274062453848524920149104090452468506016411278184403090653874047779900477004586386464086041049485736585490523670030396193532445516546898202353375505793654470250358861816463723318034375593231274412752209451668724805964088496069584672045143740171796360399559477833399559625360777383474521464658327141461295011959683922955147098092388096793331230530137638782709691072649184389946031388149926104923920927969873857635448001175219999888153617870033504380595314872611370287561364051944970293694343408921016194210823736350406699019831192709606811844522296233134108174815242779431007094654715844110146111004520658049568470622966993963773931579759813080899744967903334870446007457933055729339399473545084948753892641674557090463126045316845438311366305355704015695346375890689822970836128269391955989284933226529356730200482064857579091898179675256048312387168538066893089865612132614726364284956264186096632977272616826608687559594237532646529223558013710302326352090959602958803162287688306797915479745615559376027709732102272971936882308227126354503949544869709623612791880241796444722037799288669516418016322176761523132071729569352995957176280578446683580972475831907187763314814955139893118582348628953458645227911434623024261276190258675294998389100885580398663375383450542849171466175910315044239730701954190684744975556796074518120302901909805274674141551761633416068914161438609028345514410147889940060771810739510769430714655083055666491524050106005157100246615726250112115563073203112071826559489468607497232013953074196105707161151774864784671848208881903009996601660600898805844412760146436159683577727004266866033096104234884816218470550858432010179244611981713315245172277646647684979233037559185390652596341134660278373699194891264028592448792302254980202013941351876080948363151894688373921558846721313207095585112662831129965528491227578268867342907068756013737396163140277214637914438429373440471394361046540746037292912676465644788382550291440184831233297248220701546843495317376947453544690053029907715957384995429576904982735226578679310946689816700441947354414175269124861494207466042374142939494895450372743959834257862547194929191699200881970604398895853418337222585126458980673490214238390574813704923744279440507969581806696168453294353214728753557708700228287122135065826809247402613546207467221313266102395620258388727694571963119054465885301369668206793748009291599185625984845576925779502312445597497328054598583918169504210152307392352867626462091389548870845112495997585172710045285268466070112283873073651847193937695999256890144030637669815700929555574207361765404595608001645469541421334330656132791215577209736624278581185609005588304251979706492018373414648805763074539095062573967895254900087875452902745896458110920966880565479466103287516736663745627016313769690794117366972892473355594551718506913625905650674770333819809836253814522422215784063042770564361882298595126052051691745487194564348389090804850711041775312829671478194977790633613367977395331936851733720572113995023590003054359391465539675425295957694575122348951668450187547611572887595220519589171356010760124651662324351002874778554515763008219394695861347301103497442461346185258280583894193726916071837872765730672977866065632836215077887979750509263213626487501109401817225857014180384982880880709896382979257325938362253404691620765631123439650210358008553253342354031979582485232011878242984517775857983663344533874024091779826593485896518953023312976452754273159908385860575674860182723462996129470539054965161437241868425418659242998665479112621583354901911681401537856430719247806259082408053098225111084348959270818522175022581486420666287841589815511693407871552068049367180621736028694123669727514438414663579423447968672671261079342122075090079860107244430566095672319163588289271361714599503900781420898103363345326741137229509590420137592262103148110566167177756258174167356927833604374290335532413878223061373021692979556141238604212974105457903749037829339521206209948968145995957492539718826009545261540346165463152553473632714591263015824266974682091139386151920399747047541772952828015261876251241154566021460152194451986137473181521133226377571266334326410189074384749416349036204690898607163161232759266572707566623868836625274216381568118515321968852331761159589450295531672593691996960819458205598859102392849124700776289594995513106645853023573155776977411210778413941895210949550702343646117087690880372557193117353755788831672162941398891232489022564749856496521355989990757699516771542948973125925480789625522769868248911856180863469882566027177041183173277930378264129225977394902874840941368987605766791411802804076803639052620190744110121580305031078952362087938033288568889677816128349715996187800017956518432793704472498103247412292547242297257742695991395711738283155033080538875823360464796651484678914743361239851811489717465498564747086729043992426862465739425256973858435255306391197180645258868129697049233309292668480733801389105502755375548725398713511461808672720687748620063706351063254519509934812655340668547166549685153859145286908389535632472000189513944738236572685328274581335681679232318000648533484384663910836734596236141969410208949559963979445544309763165154401416232570888112686456371280090224788236395289271076076596552010022942144151730597142581416657746119018493319622182991999849878170663356442510299888925111263459933607840248270646856509936221322226946186453570028214964539127590104504765268289442575781710389004898237272884536164274453413132664565828923677377044432428465080987076732984237562280058266283796964253908945394414580074775151907131006677583272893406609956665582903570565478597531373632805100275593925432592619151231041592082036999414884114529283025062654451806564386668373917365055108207597927131087684052013065508033556868320053144125203944465926402899395771395075210223579256520679432145695215060360645467541602369880445744285336299367827608213171673326718157134672907165596161284964253775913860579511070865122465029413069844286316824246728376337689187973820342681204172519881587279284863529249722234322134682685828737776441237644147259774988686079805440292914384804509907111343001188961191550709613326107847640619330175881909227317787306183836059692770020181009589968967636224595601025152187650503685221918675919660918577516106736073715731371962133466595246103162628122984440156633049293199058492394720988074995310945749007078938954238719940516691427726939170118056982350303027375621163813193625906076043465929478715825446788452834405761476274767738011443444756420179085421679597723819778535107810803829002780448962559273958195564015851578039355108504365917763343042293239041502398403755875800390668036994233890685539396710499921626247398087754570170870670777116623329601341626646257272909462621033286700050738308860632574285956259247476880054128805750837214069514686884155950125906007633982908461050400113850605725085941431172098042300077961955392683209799421764627784379967338393495419199814802680020165890665135733088225579381605456797668112310047109819317502205677839448684466884175294555244349719316293906239418122635103861096425003021956857929724159089163678934934381161301716008424713376361959874455287922699113582701976475113329815120350067871952072863609669843615949022316752878017046442381782097755178236692464230839104735231355142623203730475334012588081479277827916762081192673659402637579815857818701168324478770252580869322022105402586554135503920071758574952859747481856032324497519254687557614501655432810850829007527663647364935878350542163578710784228507595245216147718088386295408923979621991470779352556048807496370567783862319421518722812644256432009904870861480399854464211407365375754373225095270980215260604848509448882479451775945438141261777528403427873216265863207965239311730106995090142235825231812173176947489931753440941034860725346647422254800605224852034046768181366895410371683832678069994153589476380996213722666339746378206778816118801894083179491525429841665831108072308471751688235052056270139730731478262141844041362596989637021543533559201598151476952898222450628421982499717887934580509230880590111755199776240892079535566692025126524872366424912212827621807310723793332304991001611697170038177877923234197119803883609331803683307187644307018290249489052222994423991909321058382616752954719166157190217725120283376926387230865506286471617856602381126253598325491065359956617171402990543507710748540788202250727490718337180621782703282043978869510577413412136985689958259292891102700706875751306994875186931484096250708566635757183807264095339122246968021635600987667369470888995254174183444533132066646691141574578367497992046404821001639019847098859070800341809044864685063577231271025690669917211988353180820198729039039791816004616556310686423455973216273762001521271242610548455133967595070319477946506742166767936022450304545927257478702586202246347600237868870052055998739419995563628249589465303629253802609951917831560971373832127738257888186820211895693393226453728365321101121208223119300860711839539880823079902067778280081041602621695676151659540232255332842774910404314971983551187442868747199892654205738767584745999242696012133676380473650995062387867375807864388294366494527249405776734034701798005811331276398515220736939573628458341473699184346998618693717089636605891145496906551166898513462147595778744552439441608132581439240694741004170777020095580710238756541195817221319728451966745400521535069001106503989611404069540572818029062106054072917186088813799455279119687631681945573102970622108290717540031366496382530947144004818676678999908672375018855435288223253051445481694593908455775900294156300587346735324115406012146436520354701506064112530374909766859977746807352422852677652473610407318213817859115778046576597280550311776321180117574231612016889702804393769844739479843530122929527604634500263160197420654210401608235713815655812233748293851589694928716924823902090161602636912817178969741568769249140473333291339421243667535436318707901569236605278882686141808853660441261772554902573988235315461171259001463107037478287630467434866467344612146346524160446174968595495279461495084129097157090769751575844743022202993674833730014440101616605000675770528019257931366170926062419015879014260470241179585215870990578735893988006429543241940411307150837831990904692282869673578020592396841055339860926921164226721903024570003547739791030236570181563988087282925857741425103910538913487604452310297608791010678052006831619660109478385959268292443036903489608387159903562579899644774729674785089018204161457597223903195545450885802328632037648976851461043229480536488208841876628589055460895629013075937199219809898217898020945477235328643652961824410637273826458451605911809260852847731792229547251391946214143335214221773266261986823095989629306731184036154142101964584292625689942201581864310774614695744362768535956122559099038879666992042680842870803689192295560060741526671755442632225034300502146695486912570384244873542700543740414770704928391698716283679476654131134160998269604361660652409592619204202097681465793030885268587558665301878922701690227179002329115401872873439653538116542707384987727818745419175976841863738790602483062600995400135239640605232648589907605324525527373824244561792853955839325629352756245663309808869246909365710381523256380135701463857378188946366654347098590846375771899887632707238188880857774998403036207692024536266086171469982467528831268463281625124103114533459029093927662172422624398737966229973409552067699858379622974667317915472195103192229439812623208755758896801758076442911684844485765723577223551399055446506020873435705763236264019682222997466592549375328161023694601038742863645578322532300616439494706011793000359311929545847480259747846533358244640814121716705860913626381820296803310707243904277377275756002096538542712043635514285978362657881794802077701031295477420504687179095226101754541266693327215902738553623009873997077689341222844807946785984467274197115856552772545694216603571050472849406476646762506122070006894509681054812655120420741254618399227023999313239505046442523437162209868567101525726943572675211231616042190519765785698292400373943529595602899985892413277359144139640845071684141811349694923260235236078450266644460940175058045089887805259624930611455359325437492289121581483142501242832817980644622381011030800219107744909988634683719149144318053880037326162480357940143671997898442874077813443124603310254831120187418094180903363283019701732947549084863984194921747258308162672385605881234140335822978841831462601493836645973736652560508390315979961238227609871183808199656314556657602973168417876501194931443537337730929798746195478944168999602139144174024051032889245501856790634568044559452946986934859384587579833303790900610320864824150859117124225226447970207251636264030513677126116756342689022327021014626250238994195448326594395365024272735212721234240859655209826292669779479055429808899624361627789893269942222322967348584466303130299832910724715859035015647060883476544096991942532138297671711387913466986708577825853244406069440804771220514199903856626651597588938116446312646432885615976873859479623835062836195504518739869372769488965634156981400214517907504340194107062064601267585129177117647173583907835616233016621438244597555585888485715846471626698040950843906996455897486949955574471814430706628514009960137851623350854421171958301191190494084693957254162746322228841524799927203224192236407375102742419968657924305400446953124983441979235673901262477931647177625308339994473453222671594564391947028220397240574218174460603256004978518981301369984675141496159833997091762647576064229165804040147285219234964222206321188485904440608086150017512072399186819526926091842350708666440410125700449598360162920521140839653909083569405669923390027035610159077607723919130690618663276280636096254336838631969570701409088358605695613874389173543510113148005914226629693432897088300145730440456729672471432553489235538193927062372209818022867315372404997420731008653898629204093785096407439647014105417780834641938011987160493735900817576709889544004429982579609948382790154148352621277674882723560435376622286394870424234459363792168346527417469204016728366188210190995401466054924224789446994551213759986352521878691278222131381565601539345915120024278861022141473429415620418849023324106449648201328076670096443103583000586028983747885771071921513649834645071517174832640130647565596914900325094805933921396753150430843756520992347700753666599635225274746399723209309498702314669960752700656611947194064044267131052710913064626773673950946674555728525799925538652984485452692302844798505594867198812606388926987601899250302421621619433912409690821566907439788000279919524674571465959839235927107189852451665435572022569722206330515019418024132942976047529739869255203971880700093960418575429962737538717800505811160625713444555836825880146223908327576977795632904831479967263727504388329458153479106528424821332351591631489877671973194198586919989956905310234739213002082302246827634089915382341352355943832256146745628420002577031285209110330993210189171794881164429820004906149493700564603565375731842858469151419713840528791324499481625423885619689652044953966296993642621685891288631668555299045930094996198058587955343853023658060107130135184363319815928158061737990412563458130488447490315294039853216338852899407973193720387060544121321536254611657481691465408317438001247143717179422217933336076851824592915061789657863894243204470863839598646530871512947491857651593104071660978059611693088316599303368355124992920764016994858147991912429242794228570562016305804796888957932386416421241260191831603116691143029326840017100032844453715099513377051637530200523469912442252707878641048134163075083984718042469802367923552736039310119859088072807194516700888182364723017640064045399577693622889951464120108245959666297789491882449530485081643836100220767504258540662879289519389522031739164285984801312573455554349400508950336278952757446421771600215836425776673625755867576040250330561174672889589039053619157584351004028062960486566003619955715586495739619732673284352344474517607319670346672436285336113930156792322042226478923989681148427639169124825170909917023076231514585764594609656565161841857290283387090213903738680095060690763490696476477124592200599500869725186730883140442827303048916180546514653680378939149794041000829969829844531339238069079513940175919796433179303817801332009443708391651646731480138766525599029408370537463165725377976293300180925959062346202810816722992836540138435127089872603676537673906043678385418393738002760431860679117044055043625442748066431661410854089746689926086389422259693075097139891505479080990550396891312061398568594534327997604806981097971664923897463696204473778334214120303731783675971003153352586499540866452631222063797425232210907316686487849037014816705011913396165061537147368034217556890310909736261130641272980473563007134603465993703943632125675649812791498955295341587592717540173856706504902083269021525702350246107850864397505604796302603267215960878148606998138178483942877414541952924065102008308657279738941551703614954479510196461621384540030108223075415906605302148882811867522623021995669176621600652017397497731497612313389181735759866377364598162753452622105592999347347856691047797399996255374198677574519584403752711562137597520197567034455685482010104764212890878833478769757214936167883866339859860984067782682794972379777323059494769501709052896221159213348539577147192964826255866713551166134377237259263389726109096201207088739825380265623416646857808971853654857490545754057527420809659133222274884813623152145011645020847720731712444042696429634040146306231167980930500792320739757880011647586211488152574769108118588687523754824396535945880414991399714542400704751171726562029685024082832854328205094014990903145844385529871548652231397253041043413838419911095414608616770191028694516057893732602446606426350145050792302595922295049278965384380632260254635096136851704515852566307911469461387780274895834862588310835369010335984586989339070205669310090278384503316872497859841112785469447359258428969684094070626200576227076718040202041697376454899088929538873071113876173242757628195020822921581643465843494801785485149390343788396783840733137477520863545090046015612958959558080798428328823512304510405016863708839403361996580663951929834902138621692444887265284978185830818042621112103078730679935334613011446434340431418980299471477154051607257575545671213397183073415652891326065230393148644618386882177195090544553484579528134846679858184292968574442599439000786010719228411607061559645467834199960971901302386405817901710543437226648279700119115620988866460401481084321392652919069745239949250265539450559704900849237657207884533076995612500821764352424036739333258007395552467205883422019415904250924329604567777330478482206979464578535457033180195573757666508992368575328773902779505874051187695880512882925466661910303517711402235285363889650416041745320692647827342510675518270945368628141873499059843996203476668140807205598120227170543062004198803975302096385625871252076318280887405103261348439360900835179986506576436092936075294309456541596557626592243808427547169647156208464004899256713719381257072795761297700906674786711417535839761164300369323235054789174211257047541344940190244063613985058710882909287469802123669410234163085641403098775138203092710471893645007429418816407675481947926347070251555924667960519953667233915194780148720137885913522452334021830836142151626989731391440030735780087770917556089339450860583969238403800450191645357550419404232461180117784369189299898651173218635315886773324501138616213943930867954945619796437887834348710826797720352601195107341372757409798517370964601842824131203110655402272070217386723151369478512539771282295926827022630268948181103270398484832580401721657644792342142568473876869377280601235558677018206988283914021315516284806927112940026290413773288128030497625787047879892175958885794040649526875280416883713706870646297539863730218487569412050426128727944310783208219719776666924352881968542542526954947464487105473773590730821852217914701087390489075180643069314296404819343684341275690158516736801455792703538489939691067249002967251672580791375403569962070001104986355809282530694574594676234774842538211003757225544502186152493597869050786344418821650199767009206547726188562594027011366981288395718675649556914975578401878257101718895185236346109740679317702330499625302877788107133800073850832531742099087523343357362665751468749199873021615851506447459975911966579482235839903878427478312931812265196214938834788638737001643419598862870458920184366755759808832288628573667666314252268961666565448797995172496873169725742837136209158558174027114717927752853891378095192118988264961923720327675993095693179367011293248656168359830547134314111862774628736590815449124338951024570512867736618779550006623769185579236854916541386696445764055723459621527569638497210375641320717307201779503171009394471437305579856330069606665113028971059414534611587492577823365183608628562377380778281315175011836751630364977847739133140118127049022234609428024527789025652001458468444232916293067728490686601549004642645160723517699099531449195562559577091811038439212619986780489668501285446647002976246845225724677858635535584653780819188056678612547025274787100119838691144589754137124437796638123691236011293511558408983982381955876983553373874996395967903207510132237764466355504199635328707428216406862451932044736505747146485665389132071261316404063681867991881866436680243559063413716495900750211472086778031994745196168167393673653653469723242997313543167116782184434349019686372149094257417473883967211435006525165078345992472941251060570454674599945879805151335263607471806432014844500058749020122989463036745979453228943594098613055204071421397658635623231026078896472667966364788502440143291413333791664701472486990733454573072256292684236149542230316519451087703279220195207152615088482028615814167028337628096327784796293031404558595895530143215683931569824462573701729403977190322494823341306214215838043192422777143787279041093111566313750313337966815596944009486886073962477672730970760851004300195036514492011467046510658933195199727355141973581795520828724341432109730438235382691186670380890654564394368942556854659540114649183586232317090966306504069191330000281823927520227962431592111263260090224459656746129617907347050125352979049647128373747606689685862849064863494023803211209585897829936685169127870082497539412917319895070733833297811549262657538902191130591612259501988674042464273777955592988782590710974093544097642413978024849528630148865631382874794499362896837399727434614420409663319754750217196114705704539294853866365062269910281918687577845929934981767786755853590796721406638158669596265148041599521341422404553630713265606238859932811290457091886453690824352093297901861160765081758092223775115773963538636997443316671609123641226137573649032847922671609954876395978179860132668949849696498649819648738656737580578649777507161181920390072630176809596125845410911077283969914029318099171054969815974617666922058740044071289529582221149179115389828853309241599092732892967226083111554588950574257273705251424593232962361674336523961630850173256664203525858827362729235799027114812274406297490863566224496321450137605301982638652276263162316333405191479993764238199177062378491082287011206041895101499472391270432771575648302342629619483872245846091555363802853748655120007437365986423022557723525393046540288779253297741242818817534622185819200612099070026421674699163373899437876904468886117523333412719001311014560582649677937183506029591293964515480021632793281484795488741887832367817236027495011468830716662914425157057238499486901352892662363186227657622868731333813228536592280323172581685364890881389658692637628210685810636939336866306053870303734548922080221899145743330264116294708019658826783026924574308837060192901079552003594631677695752915320928727688898808588722169329677340563862645602660964078174659855196211069533929966184224430891517538366727460464645177151559431925489589173887521932911847287160206726356285572326455425646510119003871992733538449365858418088825390433899411814865510783465825679078642807681080235637054797159310435303935278351474009216288058369457991999614426919654500727920960614523287680151200567353086805324295149732181388374603325494543707481824580967224497093327880543306144770748169557266401413397027454131029299506921531827092517890447342747012767607122293970574706941238068849572538598581523869762454968642007525351742907452774964716811640400271170135684260465015949306505062954611894855451836372100785648180755393875467903226878207132612768484137955520476784902741987109341677283989200592391246382298912842015142005443717952370802347271781356266531108015036641787320856879902512203479112812976669760256765724670355415707059076814556770421810364424648885912806538601717728570758391135480066432742596879182649127588828895543321620425536738985757127465184636605972910379036223528540120974578008223611767819259620966488131419960331012621195715098393858088423478702639127658804737871811962336469760047292924963969494387652451564665539990976051848236255726744440743585049132284135329928275355045646794628172022500817150609759562288390051731215331963693470584807772027544882039958135181839041392071020773155309912522770582420408743462135952722136486977715812215783271373979994129905573549840658610954884979346214561644998561471038134112529822778338710044278500393402296217532375798721356877612138808294890186765760417719481149596950270040852289844570443121908534920253880714557065616509237174471521388518649897427912019119191993441643196221419085376662788713549601008461465489511384153931332911601322950042496500564233202716626064049425599208439185683255474622976261336547988573664027287160518452002211040320323952250084630998633651683190300705556279777818860004002150366816924740966563704970625173463775348936037964709591814415626337437951428088530296855470114993668177806085329717971278000539452466985618203754672940689740929160363250799570346905243046138356035386030267608524296854856889175092984019850295084262633565967130020774040138189756770360617435064806548540334588646634529993584467672181006685206113846214950880870051490687016780615050367023446960582774267853362073524078186256449256462416067610791066976016774937612288184921820071650483844811683360935017844638311555388700413201906610628563027366346513966800383241235370544378518824833239756576638026150692360766570766584436739588022423731640204100254788873390536793779127326336324981345980212028490434050989102563243321520701028170819908232806546434371017498909885885131298066469961710888217404747522125702239898137093929528081531692738769558795501042126503395516856060839699198511693176663373135045918317388563059601640814076402883336156015590488925025535172721049808253594891722072640432337862173698938284192527095407175805901677508050844944151812502622570330334150118393541457855156984313647389672894197752806168743240274713835344638960700501401463035389710017183355110135810474724532546662080882280896308141555203054985337862333206282098271405468110127224782494236461513653404631948315221304399483859236563547681749324661571466258617830888669075810528336156251485438018837683755730489994378187551098144430120954242851905538359055095070808542243804255070685879562943131169648059653418462071799794069149617122829610206498678547321185290460521953365805501042104963437860693735836725129738503969234938290538530374122607686141897813078139774827712974860382154961492987332925728039538488265681766412682910914178793717196497540044849523149080773223519779965209862350422234593730293240131584798502484137959077749706957847824699501262898284780858144215579017381025771345264202176367245001359696571883748303304018829138715471046973862924980635446361508449242878013119623958604406692502027043770357050869813511441358296276895319968236303944025206999450831700824656258358175734596027160561093383274497902460552150221813468234116490046655294988865248610884200663619424579835760036878333107680617077878713449687711486327823251762756305449465949416820300715602271148249193644141634790806910515267469046332722429781783327557261608660299177745790056506934777526354729992246171792428512817806117162000520402129129658222378442159570986561620887788607238457326033835021783074512074143832805929907986501139926871408792816762773549886206102730652360873506960714060846796181033714757963190899203583658035754867950119736063524744142988902355494155380335243292315544017339169881515600324613075206775891228599751163913811248632688305291534010510449119228100280431449549799546412464425461302889205257114329408647454717220284199925809972977127313878461438518379655869505483603249396300950570626516014760244642673213168549830772248217728138725299984668371666872677001299462899122069940952439485980993029006143411867861363862555340119011505678402076479251127873523773263407559955345311235558300536076663227075766768561792107537789442878521495816905232593289912853411249054061770371521905369612191210889648961104437611296369007442754680757035016805026264131222840876098125698862703237635218946837135350353042067130259393991486421935122713866462564309233574799799332546732727267539809387158510020433524198550695283485893418629399973211740300780754293246772587952784766491897644946996317807893243643595240588382256676690784114891020427036226332633088376727299117205835650787331119448969436342456405999905985811279589125819109421252398644140730563637106078039608599784957701916976286498676871449645953278806526522114596102922346036350058474958044351854543142752496854108467265206966478115496786389757130923305254779420623184118282479811896119870118752331646512027391949698395121242306802779093606428131671722608829738587120747841811906142309528761735903558198052262049764068518530060127869305874362245638230552409162663093465390977769784544757509980253651275610494194268696968512220162079499619544354856568192825911984422895921749481424224204224350861174295360092691207473057326963670541784817137127150160091472389593305323505568942497576044942554466708088066857507206651588048980093821064773912734389558127733995228843014703348297529115224348885743353947788734181186043041486722765166965384767960923782991961911813484773363627963802159846475766182400761290892076632026411875243914062880733821194588798587809962211311846099134703647179017607225687929151078590154416514350188588023043718009724164076606202702249731316152062755686914512449855631308954302847888265683600873653205790717927981138376543873448005791285128136904885555584703474526483670356723751522929623916520296094408411646810423888637436008855969131124709165875730139352008568344785349329195929936806614588272425226179145441904161873249435657737502150298981168288126225264967682343158123937968872403741502944681595750065777269754125618555869842826510786209757877777450725729099649262428835147674872151323074075421512025499362704867402564133313477757910766595125144216504647527137705372600527832696426191808200570384401975150078006055326543791013699581004796656569923383411136336311973535115886237787329610823527150930996891081009236570887125291413943992461372312893644821210658293532292600668942212257769600519229754841472890578154928801839697932887352175774441932888515171553360319526182974350387805107867799497674835088109364443217623384793465078899840394928677043981120945437498935154139690044477729916971543722645197310218977188213203571747872966661589815251803436889877087365896005337515652129946572557806245930160219786814177675826449900363298588676914585632645423657153044402829495639745987920173069389898191303804592782056330346542106609774835020173952564033718252232929985047117990427992496542372754117500680723838271375479986798002929687369876100943041730115788964415374131961678864881180077093499920752159386544925732189113146898543461406413753200660763789246164657009972303468611741536381404601215675000337023461488920201093369263007006518760734853326563924044722100811307610931558509508643181420580324292121753761367824196913007748661528314593331213756354825200075816900951920161266735139571337951687363580255993803760469896366544153522017685767828709021184647012580910745529408158120418642506379543084406386268959325329202474031273060172815977523671750998096317887597900435267687956233290847129374889720791697812136109259825740943351556376943235815452319379725317379678336741022083840591596364558292936272289830216108900609053507915989703493547155325735991332302959523165896638915770163782815945052663593776893594315459636133684768720216196785674535722568705502281393623734378586489087732164357494146936827503969389326643879909299174049636991796915186315062574125012378052115606494558753270336028245516242161495480526074570064826578947698195493084056289068084364949984044869747304562329975282678040574251987550535811803106472532418005124235759947901874576411414558062691836694194375506313939587009600543694537935521183062424897617805663032785376783860348387535503602634845552625448447359756920653029810007609019508878253300388887206352864815229548795485492897527999677685477527754509203199821877107327194063631519012476571538150272315129209732252078398248199698978939901597592686383537836183361948039652945498829190314760780230988957238949742552526833119935528580611901646802333968800938566427162723551214254245792144007653621984923940288321978505986450911347122634219603126072566358896070001894188914776191552394140212923720142171939813522285816068617484898763299318917296163119461738299181017085231805791081513415258680209360421474001623165838612086614753972373114065967944890488048884313959755826988210088291743015380052513054598633044310033871166592821536459983980983686197579774896942476440619166372175208453693129521950696326241519566487209683069287101537407295822735260135353446863936484583857951157812365638002299009138179425043473719033593355466728133313776733860692891503053472280280869764711650789437148123175471522723191068516706472817197598295413588717677676827285883320652938621550889427472843616625350640241326294519353733332981229163261537256181665142515333623815320497558145324125913659026403112958264375355534504786652299881640141045492702697453480184771730254182453389520994092114547834863189962073446643713789087848273444522131547105082981513565174252291568523153298589871335793360177965259779793445686470105165143298026450754370028736692223878931824775278268213195988918460371286317587672835958142687081347357957728529552692602071045841413663550893113189770373853250564003251906359642075137680016794338980681776628144644394028606191666038369407455372164037660383262146179210786495960966427355414413242903400010538650125533942366250545305182698742798411551312894633727800031646662371833041686547003571062004961311494525206032124602081027697513561954325208854237760697443312205392556903721208548184735181112143407537171176138004923748019852753582066245145629440926668607519300925147672412969137012720111009189207271519812204278014111358288105339815540480426127711608613030258198718543627930277499614430362497486259962108406054826640034556411763376156698521305395311111057854143087093414940685251414817722476385426903913122374978128202716467550385353635027296441755602894479029681273348379456278583004288962042657046871606223479226235957498900267442232478298928957205498659667346263535996843763716367100909584528673268032294346318959072683413159110479711660594742006112806258010146231841660612073496327963159216302538934207925570952153736941963006054575243330996092146889720366499865778871866568952111722401559148269250158709214112658568604023633109978298801038459713440578004799506379813693758411503290837467375249157586196982433762923324645790947808271799022250227054996086828226592943582260665952383494470009281540300531622733564100978597652402640995523202248563579422198421198520056249501844423027251297403311310510915441614662696687014669613275081064625442295190208861317022709658695565312213775901917849432998014059225218052920895560348035594269382212034340120909911261933362546765562949770106581947723320306291967128675652295067397427008324707882613512771458942661515406374307194349509856367346063189115945411184770694480805184806424643111733481439787933522346577144731992116351023826198073258337353776998137476845393244217812527049487907849003234712857029215807894870837829361984252952083355933380998266935247611681211293432750922355625545709411185587068424521864923966922059128394055484020291503227932323851404048925789875819571330649993804004185669338688002400671617966359698827843431041516159146250983651923358064202972175387513078571811537604356133775738850647154776166820596338750979165811890277559799703132033140108527344587263317457025436207392975413597773304184005222554545475692548003830677571331274948469387392306318180517210901048383765963543034216835713178991979493802031916530686021237490199556147415781132854226272582833830249121684459665619200719155045480008209540459199010964953799612319105179542267965129760351178569682324628989402682034730413148402869918877446269640475668464735427717827828212922941167876168617930074482725706182395505488341992620194780409121386846741007609725633307722476901830859627463080643294784337914444420367377923706505438195382974072251259229162209696908706199691498624597545544604368782992270780866102060923819733318276373613303685569298369106584174464422608490626258334352164562436164318350990209355077521637408637419764843733841546482230686608886321138715781484127291040071034864098376477832052726463290602291689873732764905594875765627053543721603288553107491859459057177782949428478969674627162222412290360426385256282993178793678505799045611464605722894408743664063381201635860270177856927057754836402002669503232654244416337347203833349708672923755422083236019703222745072395666554026308090983204541032667675985097593245572301071801228108062742277072740493285955813473441262431972086440201017881016775589171244495846314085652476764812349093603792152633147872377082659262596109482005193636266389723147534195276154157042479398752119849222639275172541617266660148966985336700616726618325849956245922961649599064750744256802089874027423410863873610082334568429629345348936352263997358652261619070981066760700150079950771784036936957698648356057502249550213903089572590338812854877656004723490703351844775493790261625238931568023242834821661436761298789897202743866109035117265901473647813733544249736320114874934777084994066309054517097296329869118450572410951336588312540722994798028405635254965729678398773305526273508687729192328943681694487002500837726390747078990685383633618447991439958505467885056470684421928112765780887154304643085092637588935847677219355200654536685874047426110194306812220347354926166368373294516789559884679359371049842140550742840488834121830356702762330094812500507285140528441549190245268771067664881585186682169660315862869947910532825333504812819975131344422200747168773931982621422969033474853297002969469167734241108445881256382275233032023247751600948599990834166090426359436980288565357085342821710316387858014599853208489447969388897668392580193176016189044506670718711061371469481560596134691265430450893013209323147771547641085437466550948819440754082880208920106931833808972145231851232904258923286408279518358254027623472785648045538650156510932208869891489833090812174666621285848349887466288237336551512380510157084615088493632815967235884903577562335874869670199260909041144956394779273301244144518334060340761480319926335371999487217397807182142003960459694812476832124767403324326286447721953118138446247817963644726456746549827532800543116795930701845325682860689397024802536575198910585945623692008769350839184425780295584040592589292762124746556584246974487575652278914164140471695531293785388981662811929810470601456629943279619055107562147859856633874778487110670519730953221781615598326205780768866642301236143368271947293557144467019250095501257757796983709046157585401364025776804916408304375576368286917177816746519659698489456386738973927987854370006074591815727717298473039615970176637705682126561273286479745797670506521803693435491713749764495200449813035768285400990176876290524893390088968638059401345295633513977755303481522283733255174105545723119401260443071170587939450321367502463435450583503334076507116492743778807747756620393228995263458988224328248604544366216801062822163079246895677734260745779496213334130906948269483113603864744067055401979651792286198446165671659886762139601643082373368461551930748877196677259619121370690635769283740840936305575170737298398166576736142070672766584791837575954013981870655007843864960593615746327326485798811973603133584275773103508298979832263497037569379731390391376902919444633889021023179601553150341192995677050259973449444498920538849683340482154874063121562103261171727834346406482466383524849631769845000063934432473923243698987590770021858047270330037506219351601632197380245728459372777464550982025601537680223613557700638328497259093996058371834924127802340922351494336832345328661006070273821998057897889642013955471921546874244301497311436991087671539165591389988356341130505656555402316481268814327299299316919540375755495359622073183403988213668720388979039253003834497093844949576228484439164205007359595194500214224780324302761076141207970684812752493571413787532377609973632238946522646547334898107915449547459331356270561347265938676110512985747666750982167834332022449236165023319856891017127401465472910463923870045882311103940412799366592461500000350161021253224491564591344907460725687770924863587186565567771932463985767552193646520326002128624462294385940953344640772203366277923302083082255231644037495196266990734198764792618199442679731293588218659083771775286830650881236323502185705486320352336673113093858895980258868860413030063209422522096528817215578644525745367954518421128034467373617758096831206111508151911068474666067455486188260863953729210377879796412960136771917084160999191025041283175284611549116249139864784510740460286512137845164960758535129312333900517375768526592507413020130947410833563674210769168355940042474933013547535512470212745504059051167127082865933645444940694077516037755909491384002909273182484001992659636361221765077994268659847738369442241769957548768710907857322544038060601475088627041156731665774492119467596859291450595034192792633594842583108999533981682929929245426140734475689987021394195024809671122732868850011377525835881005266259623307567003635765280836860606233653194696432920242265642951580249188542067583925443431983211824694192684000028985406544622180772450229303685888255829768468049888733869894062520405310736970366197552022143949393264960093747679163622040591227211798472874848512355449851718336619521871240194652330180184741101883805736555605492278969352343617034862726621976549122912359428594202021698140703798956818620157459763724112755313935786707671482742329799631007186860770334498238727999763302912835085731986725166598397487803078915345765026661418964060299741703933681540580167840963778395775026865721100261732058094673935401468002353889565464661852823964091186828744649264489339610958770772146822934260271722909711342763838415810707991345642173449683336577801690191057825287853528636886493790264674584014667981484513008849644632674283532704123493540589356303995592158171358636429925207967082672962421196785905001393593533021654014371693585067815575548490906931843064039542032999595419199556743491506148203250662321890595621486471842556160557253701248183414250337284196868364444227326727966327267120492486235413276988767763499905056665465468218126310010764897076152982840126644329596001502106650574696697323223731122113382831755133018099834140605599682988057316641023124966282533992614082008963328249191242204331341226679382896876671440887567665447951377288868167782771122717134224311456811534675988367767758537693852645796825608746083265722619075250757328101639667695624108829441570754870173392128867907255251038564716574235994517578596229962531518809875733660035102408368824653009520319258611143095309033706705052902338514832883466101124521003264868054302904673739244394904557537972853447460281123318070951441553420042231948242582244049078473671779320357568153146784381855315165423880074784541077104042910862057878999050629280398477593386795265034614747930561644447905432682218313297890484949233838398365986177317199841515902649128641457828530222264461301097687902903800383400363651832834854403882381089529783427891220849178354956902408164706860573868433180739877944889049206032685044531968231619320961940444586079003095481013463093775115767709519191911787538879955359451105430554011800844338026306790615009654103226033929301504121999058723651764934151738996796463166749735005630991372625759235634662973202012810212018782746398300395779683640150324415906004251524537228901142200594660684577035812319982567440615256923317656429222738032141554190043792495364296041810269073793362783202599079248997855165495214467320167479873736506242988190110961806897015453790165759636923177786677318804083856284306562697156725870941807364275461765229767355644128981544217000285748399350533991345940005425480413297088695393160624406569598550857881052640921329070772302954545590242500285557530117179048164571915095021946223031346808288481802293642024968948018751561986032364809294268626971377783326248312897928787989685679738182702780580254761375489126217758662163056749655253898594618972557998072193129222132033802153051838447943047461133803116660835359307779665956035428900349936071900339052765467885311580756645400333748880796088036009251534147171276826832230837124596630820594608916521874315302399462416337606708659292657983377684457631598681993506624220703993992115542610470241286090645323251385194458632179667836819980181125346103598011802014808984249635014007796622718498597886624632175715317430855485502889356492405722270863714161276305037406104839421271691909670574490819895744576577749531336765952943746419541733546293063222195747126158962203187100566470665499325109618230196561646416101416345264503708820394439982248201296598947688270089097593504440147886422829608515619415548029253689527487958639406712688339376753429157108009249938275474581817407514903506529316157913269717615927379602217615660209013432335048234144520467786607288999639698923034210675094807451536852856936552305261061458876788804817125086103076973572096934473294135228396364507219840235782117475868834258580637807463133258062555021310208011170578601186738808961549263159010382486192509906951163418127842426691483357358139097089422027203612132345384875467909558291098050308942438724112828916706895143839755927072818539112083559125101962791194558782759661595358313412315412086882775068666837480255207042015417946238552796289175625234844068731775830793894228623604168219387696269493134191978538645650713233393033782262369556424863469427478591693520818940511521939497024815486460508369544859552590561132316183864446984304339901244567090575071260865545729830400315492451225492913891179726393472510654804869610490669928778155325495465771597140730589418662678461992535418780636963832741177480424760130929704512459691138463879757667364327792632854271895379235198734404302578944810417154607116021476516024182798961707177443287391956495175981785371889635924280239307913233030802876838614764630714078884835922953694659134868309955029711375105046566151968302326636768908004289319600024036053241480024866419198033949616836578599530610602553863249845071534816796045559287245068568063202874935874398067102673142267661488162483290033045626600194096323249147117220688058146377369850498690361918412732593894877295275065120006400355405353730621238670151140986102308246770401612614412584650707172082653433794270907020819038964776918132758286321621988020889094102651494506999324307702359790015489336615826433480615558437403117038089148268666314841879872016063668700235106780683194556004094570986218500220273820157396873140615266861793469283540154996166231565477691902288014965377473343108267772118651233425647607742223413168881362743093468663114709135708262041976519591950150508144719871618390742754598117406938837040949178125561357344679826388169878511889695313440673938504928282328961866878904336759819124942057195547109924691624791460812943497280349179624284553644381359863473187141655492713637879260075199715314773716714960202003899585404354257961141832002771178664035606644088937728112696389299552752465142040006909919228324146135793075452382548809308045669512140862019388282611935483726350758218556705201500317598902594702731163432567244705264381558240785966015398900416253545218163155765314355276909625849363959195728625714070789288911782844707942887548866450891251717813327410729163053145589341948777914852786347521718848901037922776745798575177433928341449766349873015451480843953721251230270206709464154256235304829135203215087196406517582548977998046096819505357581870108081324965209090201835178523902424819922439593327555255721851507727370580904124093725695363992096919813573342210079628594739876002301884050590556617787028216644384038055820659726965905992930706429334860895230347835655666289249844665428406700558082900739512425325964706332672843378771912918117919751591666703182000861400866847599083673030172776896547753696334329675751412380530172701535555483882958387237749139220516287057728014017772915097372827818860135798233639752182390921072631998571907992956149362488064610503399440454783565476907548554369227687917234029561837407036694401927225366837535200571023876875679567490020202490488222116419286031687032803216337322222151417201406488377207497969736304908359585243660547274977102095781219746459317303710329695259088558639555505896377459364363520755922315113361927097101977703388620847536061054467908700803982826095718040144627971163696780399045492355176684822731304759188225526966417027033287156764093366420958646971036425433188016235926914240674560095281019172286714637997214192642171084245535527718301558648882525729276866957111683272010380926249580373975612502757469746000237512616903113086663090462027930042822998997309611201896599912694678412212403843111443019332915276770113240443573432973049818751419606253424640322360066586374410052685094914318848364223369466692815540212256182369337443718276565362245617996017011103772367577368341306964336953927108603299236876321881021373813614650826660857942460323079886416287968968470586686291140082715257447334576571092288077330971337441872843502350674920591078705732172033745937076515636052075593563639487974941926144109090171099775326749142532797235700791166394389339818035427952636258912751808388318032659204035468115635811915252831787563262625001099422409902491883436833365374658121484856708311480363857598061847098282293799820803427430942669877246007627655964091671045930335597065528296834901427236097172517239680576907699127464328094077948439751649752990002401247872133201011028628769824589910289809502695027185663773326314160044197459911488597035297218358470110242825587094588163511465057419297200664918789409646758598237669190477950599012415834809847199751557372025977795974562056009339117527963664328055467788730859314607912111956103720342696201427006578048990624072375679384909382433002517429710636046861938519262227498455545176002689270853558953088965752631962419947616034038632914579356345203654698991793266646159985681542241686317792678734737684738498130314064015521285417296886790180773236320502888504928645519038941105177224277101012991743641949207075551104371944884403290700756344926454233630819615617973484304148246374036753028014412108827215327715416813253689316690798865561379459964706966998212363124645713277102171594059108320913811210728611070642931540651771548013956006292054639135044333155889190381581274354827430243920878899276801279736370611080919925439707145924688369853244748860403203877637281799847192930028034796825890436283015790048436589172339714325133242508227521369484358969661757108697403506040361926918175429730408966727946012822450745969221854688111367455951541763779758702212427639467285432763889062641986050824788205339316068571741702673655186037171699535830718554915992833256009066381458966679902325297790178541079410677181682543620387584931438264928642449026784241308941029033777877171710992448040397754236668020491574157906389165883426130128587766027058885782583996311307904288539576256653362918196545280866068203180084836239335008639348447908207132935897209874372892805325737479598113814835331366485944577835742372549935981925551895420760121036733144417775921792345091871325809144984304033476293216215274787697257878435748738722821090749269574009711376009160639366997134508381035235026756308807433019949638092863218239438636112320205697374261092834253398703626109721394517196589238595318825510240043830275247886916322633066265192199840568014289622786360975028895270047504879476966167267037549571779235478414570785934450651753092370813739480618351285376909479423885875629759520388670860017096767501098406190144303052391173074247536332355755586386728922041017258172258699454328298393215866008798563429236984180432974239184524403502637785504164913797761013643904987570781451683556576344715577541999552588815688413302828255501637123518895383327511876032192165723819818787288890201756984672982396357445290749666568688139342516279685856919030739460809920273521396277219960035750087585985674938864776194368769311712145374494498995604051763623869871197360305145207047429729186820773398849151375048137145849446857036975270970398800273436056156878873751002395662790599269934454458595494138915467866199431733128602967486572320359407170298910122074631151606961105321796272500452276104172300933415199312033409705186692571134269777883809958515396536616502678098288330070963445988458823383693213781420321608100950817015652980054039939479559752142641398508525485412067209990007281149559196854873854956006871208956444628835918073720714226902338213213216651450186163771384577036654377641492601482788073664040331686696262056067893217994681763554541349560898941536863663267686453440855165988692558293380459006925296134624034166764535002841246085765230745442404117105356643151133316509610120067958140232162396888793718222668342373291872461788334791143417172832607117716763288316127945490337145347611154234903887140507955112195825256401121747504749273487633956445867908446249119002492430030201977475446344634300413528969190653080241746014138690328764793043311306196896429403745859676995016068712362880046785346848764740076114687595296934517210783685766388778034375304926153559436303953617097937507996798994529208012792504687841754388875330701986370396962017327039721877676244372818117582642363041502510697625138803867690046940542943296685084568230607958101805468929979761845919266304312278589978139430467131010704854268291895926192490140199405119262894848499106762681727905909260890012251837925454785286047613737889414335127312378629474639054741157867132242590475205785346742396521793169439439397961755903211781957413070957386797214403977461667981439722290178439624471691891240217034646656215702658516362434379564292067285217944795185908095704641779090609616161125752820628107654580281785016629279417177979914625106539118487637110427704667420074806239588815715243616007666282272579174418290524935264050023170786396051132486007074603083233981567464403672425787691477333053424762804071466068967312025542320195276589356439765414074467828715492281677026019677493154126734735650168114660442025655224078630270464269912563142142836254027411444995368325248157954406044186897452294604529822580294316878153086012185234339220514183304654267440690659576644027871185675524260699841951362132937238886509412759221907429110926709103916409710336327941586736532040197881220470273216414321109433697481037637889100740288034494069583065536270491523223693200193600853960733785467582120169458804963876670085110211857753479653932169439359137878875179519646290652560736314445637639736826425662303608794026200488309784754887814353312768013239565812350650919036273562569992377727916782162739222547331728606425327419330679834747858403459314905003420295332112938586363061714478603504829094327924799037088419820325736056836329687552970852100075381881366508010745939511981783211066412693743187143172023833009325452534043289271800550253406424379067337534027860000775714646511374245817205109895363716577376231921114766640179459009362312965739327395937098529750733931482940137926806992239469342896994823201067319789171924089467036505654704842823126309390611950823893575526416930891306119741753516362377555161247901761619915580445641200998858432021123836730061292050492921424494966382992410635112695854412941241119728128648159340945996171434597821009632804375871716493838783356430586408175985152852104227530769175249184067469791403034804631992847183956189932436880370021856175625288361502192501400017300727625300317503701159844459010063895654090428335185389119298513680592065710493954679960541442468747519339066365706087062238162406200931848762853559457666648591134624313765055015750787196649337756337466741124688729000493961816748720388371384414168556268582041481916494519660797031402413310141964585115516220035874457322933151701288133042802489526403630500193763444332584526353817592253137297741976095490965027879872957318433986063240901840437785111798882996523634611029825807334086596798934959127195882146767181684945854391602658662339018484625390255017968042063999876294426230160282653558050352819230030038612106894810077313352788390301938989651683818067130365120345859504714868437757349474635659905671992660132696281032485354608805707690022699474523122270132018577264827244267782116998503818786505473414141354489231475931757420479738570945464007300079251278633949600270760248182281356923124229462466595923781734272948380254453549795893422689000072307513087267152091324435979704365460364937137144981404380328868400935468199969654976146632768267183510284075048603536657024490599739510219695698438792738581060649003615936051624646820665464725334544692132404983850824917793094214976129257585578990157072001841065597898457728477228132385199380445864107204356727762720985073332297114398573146274681623229658809888211660390503759274415758899341590157947174615419760504797748027482214307645019768170684831823147951273495644760524093449848620743552912254078820071085564760020176077289976797025540534788963009870926819969081105890271025834412327629502882610875261695035198650377733683063322369141604122425363408993912680926482474863606342100603112698988852392822591024294528482409848303873120197188784907571237464903371636945703976985346333978158260509118700065731109229517574390746856050511623290137462897371851244971979178071734383826459184851074558426791032452249142774734036050948241168737484228420369310644464761970005592530020947286924446213237037119528161123880799125083425075803615169008964852736980759092553598605984022067815170646072519136528988879719370599464338600633736902056622036637141933354228560334334342356485719024713951192562894886293712216670777784963526603758459093154078827118905045217847115862455672041335440639893822111588725204703213256672840355546926110940799318244814767829643737942924648995370438790218876271969310377450446741366646491171044783613404260410027750809417962738707076238724379142439985861854048212872750504641441504387051326474441193686560956004241890273924176705633966870685286981655854454502387861802680187055106470288303247462389069967672429066925146486419348880594425504437057162362230094620820305600374249676578824519780391261047719647819618863449525447580784842107403663118122136486731324603371334231237557956835061348434670496386347724002994116528151765631645868758212471361322020605560550155270556804844823722640475417907436283416565680832887246048598034812780510155308614678733404050404041558675422049550094400042895177686228459089817430664357101745565856054008505366936501671098473589259771812640419453254859789971146957413785433756709751696729178542808516531388911464793444872251715097078689053571586050289819583826596285655207445128595099987525090735464684826757023014053053224383253842549952915955232086489736026173136694778355241267636732531288190294120137963203570613489485929738551092696344486869133625937166330401196285510282100494246649120673282498453481046929004785855127760988963941839476078600652254286246417534290996095453648602863187531921021987539199173053784474673197014179245261253284401806475957139601225499201967197112377953596331783640896307315151989833981830856760742483247467873027189882922563003473438741380343810477372400623968089073220701235003234332498473346724068511086987549212742734851516436677309491414541194975243746788039345115288661074530027044906579566006725386835596785134593741226772012222928992385895071742186636703515306187289324699434823840230794442555556997618936252924901057853897764991963987417520074385797251393551216241968212849068113105769822855796026726353756174767249138945137981870028411051504308304975177125185176026673193336549023662941791129891941836006163812309499301422741399985322809815351496873070790036708209481230948046025786130599147930484567115983018645158271731172763311830677743861627283459169919553451408853669801928512335362636982345145425691208210668414584564292329472766527844229257952168517415728000838721974613741756519864015946687810074878413689636637611962722292286242781922014790835680735619795429504096830214640684068446183620847580552163038876703735271561957989338120406119184847382079653586932234190173804449743620449014825133854896778701442647901200215745171266038518212786880540194557661308875934109398769055077040734904529359419835142925742663371367267989159239887215457242166809921210677771462626518831787325473025511476602278456314932591321036555031810189468718424136822958444659457263812173928084198417593730141926439147908857708084425828835256169259062745055134584028255338401793658711246758099298567756688410278918260123170758881678999992521377469787489735697704130117859208641371534657487457435077403766016445794387216492846251503024921902125120728260813056368728703606477985601495537123768198247676152492102770204349871941701748475459729539540465882236559022530879986664174151517881102351138364707320829823546283656871259188544832437512547000573599268110779872354694178351420815964419251938445998640091099685919059464945501926922789482549980266885655149841120481939032979529934032710793662691736438955018295788900962320189131879308588336537317526722352971966749739316075284628001686703472817577304898094599327783892697009137906398931023688657805067064617529481676211224659121678613911006994119243889054336103220980515993026994866826094792741411085718121566479362890744090104544990059247071092377537599979753527158142320816681088625224584248013796715492172675011602234899395483825641862184915570969141673319048328615661323842203048752900411001694253081778260664831371625643843140958768683208774443730593118556281649233543328777477666325279100893957944730792634169562732003644076561995132457581168637342958143250645110286388649313961156598156816826988735116087234647054863757597049463937052039542971596665495489382359545360776837857644885347050516114805311436615282419791730891133523704153087431181540516927268400111805084967459710918993912209003322169780845405304288937788076532293075098501590834409924653840515522724499918876130433610552678419151694694167048466782343450238377482489259671175485930540651281333177713201376741235350953251418058037575149444342785327523501244925341070955914778034594017304015674240513911294352638745039106939072514571088393161566928906316090403556923924343318418250952838688673130443085430298569674634170913765246612917266339708888763536138236573006815648149837913643331555191276151073406551509237546247898235239846652432510082498891984584336449994041932376269633848561833303513988293517737337167905970076246894990943363072403221662657517654514634832347975174365801212249463229330172874382726444176090683554116136207056504858164474863514360625952305243160632562505879923389795294191326426231096435880860358149159634669031972950985340850228043821605848324212853225999864584340066368678417809904944107801455419717646759420654532103569906080772122397251450671155848248803524926814244410647076682640669440004942963258412018174720768408369297571804921539876039993247541598612300619114205508321927701062426104394905737763768247682882110264188169072610422127675945373179033401851596560739694977706181906132830809195973326639456193888304349116746019850320801257357843607320470670853366947250700213799394801733266967002586013459889193485543654667996099328688629227240050446968842652016613845944971058051169125641296851097059423348011800938768217704637107376949814340736006344284057905715723594324118287946201399020317186042688516040132246121302776619261265809462197653660493362426967783592525156328807178015240585154669117620054485710144617030714300714543034870803702744104182352198501286048032634122466243753737711319872948037561600358583018412498802098303771497072710931320186009761064051081410056215163107809692498206332257781474793008535284813847097484413256032296767543291092473834163851102875817198499131103252006964094257676642747884726598579046445730738585599807753288071287747450924416305632148686776467652454907386916162795178557884346635274908848485994686747816429447371310565197788870923389274183278109648765722998175222442596621510160178429870878405436074522048984454833480037425374693682613685615304826321912355597206560600088237535797140029747617018418008297798828429271192801032257477738238702782849331924655688218969851002440587020306005720416363183968855440239030453913371049154593345816014109419697652269897810251741743230813146737770158246642760615124327314684421929995458949196859460364921949203516671750864407140266869442335217350376420947900167156370134890478042528868197012900891964448780548317995308001174101568128805375528124196636247326111953508931272695037384487350507846568550951997605895524982287656979336139689996443202582311946224652418960000055406089397958690417812076139820766976009042792148988130422940747867320099516150183461884405828403500134504805648247912411813271171110597379118075764200065169302577244768652780682254508606870531275719904832574598502165003102270940413899816070634550646681512832162491942822400099328516698174925747811418105380058855134768918639018870457134382567044784824523595244013713747943851157551664074237924693458939654838163229515651787966571123113813586538446288929804580527560988895871788487557543382684458579153291814969083433573838452399705857599957395019304157700439533125929967641874345241748667653529667265825078682585524833912003781100203499785279957355238811334821243049381999022647223540190761915040691577551182955785725608812769431139298152804941886790354590088897313872928551187508317130415474669337203597175645969486722985367694117481888575410172545013726781385948412362664542474930034101733133587756835184267235505333105627463555266725071841708853182202952262923254542185471015886483948358768693445356714955350556180053990584922684146792920474287043872304863304545613208676821567410573888338092673463903343691420795761894165029600014657569087212840615381357847609799958090260925810011987267922185560591430541935541139605615260128081405142094146793258734071853297282178642043327485947026295583645639097705243465801788052282423610417437358635960429675849879628574395209459396196847234697060567809087555487440654302839048463404750108550848091554562350745705988598026809204763502294926350038349862204063086693602416016371789470207340778918805922176741750584758715174218727732044718296259901799479853541924538045442516592259187982132814522277911598322064192442146638049442138769303336390655484042156430388493778418389571618003629731061869095903361471154895642546971679558673776354707339998660952515397819257308843077437151830521009094031453790455907597611465726159248302660865087619591073545641171009002185703332716805299942875821430713211186657050453806725768520622414701871454267306996690667625334128085007469942460864445160716542277519013240012670606386365740215937904514268370324017253824713025491369599668513530086097728047074721221056868857018054900135278223272602250173778999385688441583277932557814191425609005218526098472934012376084759105314928341084115741105415447896193363131844484464258027835632242939919886034902495087705365678067195011874810358531331564845066489010725020043372674018675214090198402636434226161060855521477594834222183022731958917627163523980629838427373322259414957223960858214884170716474749679074832773667425406138694073768221419147026050348806072648802576544390916447894975345927678312143950117319709779328785433652046319945132236588290840565993919612723919185260075500158967908177877566703238225064809320306475419759588516403634325662414372202349162442378916400025265979395453742255458602329428848477807693280610302763137094427389669905533868846147195220256565281550839238563312289236113491769003701247537786281393840499007920112733457055863057791109234325876539731529217560991740020431486399351243392712257398492030713940509072822173819483045467045327169664198073559828582107032730732888071935928141965826438928336225079191153107286040170384900170609170238376493116236431765788907487756072096410287213608081300884130087610352098431750748425337561344389958051668040100974337100575895213052698960280440633992911312721398587321595158620724220349578809645402516505315309071410635533564772474890132441936019973393656560953286393012529563683208647534638117532641453942028970745712796190346805320471906667738393326017612091636543014629470048760908700652580632028258880763377149155509401332921235110131727871725571330703882764258627201282318643611689797579627388135986149748312790373493445467131867645508825773173074936474080868040638606886290843704980341141483332048465140394197481910248579296941689069672359231745953636936185752060755139151737514199814824180515581778205144319964434445667289503696960627475877017066562073251466091968614092005012325225658237011977619799566755873421068915975319828635579980853115512199960246607778461351145067930293556476413907579775636989861522498828814405029227876212683431219681285522266132834280638758255868532810421511587071646696526728065719121631546710720674820259558968814246799473745044219141207857643434772674243962867422302957851524784016606174948235968719706687068711882740758197688190787678020896217698384363891944760547233290420533474354853730758577883991396024855648737675563189969532322178892589697862415095485572525797768705930629748786465569845589115280097351648255754276811853570018657028069257971043372120589251947082882444756393117791882812742196150943934224945800755208347840925082925814594363427869706939529457309517742947138318779829932762845464980958065564834308320211577577795188537598711854433935709624094496516512520113507633170037799189085531180538522878656441613859968172010862444351222018001181841584421926484721466144343161737001847183518888022028876165742737705078589615808669149832635578790159036247053799391811856876938943820906423348305986818360774448071942546481493871480874207859875551816399939773140410698648216096311353800388097084972681621593724497008579442655599942163100567402951255195962775736854025807246518425540359148737578102306188825772323787432166048553342659706455903674297478137085016911035559022160295538237691584036255194790468654867828995584041398867152245676515064792176648759777126570799088706266598319420159632201983308459799007050186588801208891447749043881953053681958984968867497199924506930286455258186461253300658701519405956021381942251998311562511634893961156443579849382894294116346127605633919176517240710295985131194038229482313981139726881767115586482625044567563189237452175383758742061899079080872822450573214144893109052888848554993556822327720683143593914936060453905117228626037172332473817488186500830121485458044347025453837863717709103522837282641990454475229224741509739854672557689203062865234216081195887258038334121376647846206002846860975930147503570345845440754152968625291427687121429911025949973022946806016350692389202943183104781522166416752070364128277594736498977688622900509875509339666238624192867938565548562673034510150503562103892554190568364478590090258107844891380566691402335361410013437483513479513468034477715607665134487546471658652489341143037837638353898485527911056397890925792446184424214535996717635934516096683113865639973822395382909095223716825753113809596805019240646185003076778421786566197389386055397925815151711649282778082879985130636433588394269279625611911049965545585825708787549224103478382893197495947133341192872327929087254719452897984845572786270668966443627767810766884460740692815485302550164155616407705253230332054986321627136099294954920681300877304020439837144016167763279123689491654334722436398531560583938499475740223168468313692833396369374254107834768764892122484342731818497195605793274697310580837204849636364261066303947930035609554889860889943604564034704595238279439417139304625326461240343837083375850288709225932051386118023765406892970150956339937366985102710782677025261712671883389226622322874708022928777899013172303548891729963423666887539350527134614663832640710944806045320845012239747346009642300813545642809917170241507025084241513966990840170323860287712085714789395921484482278598864041781666622689606280306231269893602524180299834131141750367966545205765939811639467184156673444691332793276465744308468088517375528015926940974176029107739932174467884859437720080362420970270066387808618224085964362935264608953103083250280853570002739917277877981117007191432165077501447105976275845834968137008517777655971742134792467486606653780955116347391974741508549108999757628719875737295634578437775035160450429279380580572033785668460333818572715311832772266240727506697023572699794850442212882655452351519317711135654254904357359769703121942807081439417762187084790536784220708750255686020716849661545785642551490714199129556608134951572423676780971372274666767873756156830090221743285905946263031099082574904258042416347998962347117700924708155112218562076375819217593488133922159509623290803056988900739832186888212203397259873417215653964703634082838170976658275914796115392321572106736921971592547152628044261564951673603882947888159979905117727229463081032194605555228779440413411204735741776559574444305817607875123247011648361157790896831208759555486653990319782644175386463993564347721662420921434185841624380227734756005191411597961406352592073843160386576771470686093691145831294267474916670258552867462559176159670421917284927863477837059087739937220618365948836166552476572917396329460070258174596778593669021908084581609764477108067790659721521766472933910001863265960239036330257529072679633744504829232561697956610811091740954454884148923642535963044795231584248231204286897095038043995326416210184349076033213499781100766427440641823327818707054726059957182931380943167580384191258606126737972813210525062625800989478062700388165069158088069607524948324034323735625045253578402180262507655934544488267035660645448582134162051019448903008040483892243820887189539375701480345653396043436908362006835905906906511546133000575451248438135446737745948905665215120066684530368452727252039958450068206495522116393459991676998118361700973009717436907769468054091846196344141190268364582749211847178363298034974039648328276502595952418343336541446373445005272191859026089262364016457854218063126444687467698859418740581413320365323511202240044967437149968288310482930586044734561276354109772521385385296275864780907530336009955032727534146299950919561103784776326435441173365427392957679197529293482636434705230813195878067746888591248336119350073810370640421773435879351611489912420762506356102193629361898610691106473986868672771368888777993501344833484089963701843804013157599801451527877195038370494426490693933258555595618648664519127196594326744714839029917846058588719365293380351705677359435569138732044748035436205698324836807419366343459131120020776878627200208940922714612128005930483465746989578881003796717240180252698188286279385399613998059039467468076750013573523557364249189194282746611616625642844597080346925229597835565568985126711527811897909618521002721258423061565027654212352597288234355122155150800830448979323168531610027436818901646675993627424392684771330512564382811609873523173915413823841508524647312183006879797359645859354381210631987714885835310660367445670559658934592637503560714844187284621702386525155192980110143704682609922603010030872019644446957044201808093512481226179592119912960985869257758825514805287392759021205914536401043639320722189407511216293698868026289662410227154618555077074173195887890934850529064909195673045971316773260921563942957624307859332602235661019491757338088378234332946412873859842406752265525829000572860474874511571730085940349468207271690513995392449245138427755548425966518366297786661648001240858681398359502318076879358690578580253719180029646430596471975181514831759808439355299358926612763933304294225132803839644326920940600194989901585352346567219308986607743950244004096336042421067439960551298295832944901964035943406656752931788111068816820622538462663864161745312525311749200226274533674548944650018450327160656495461622362340848923534581649180295860735395266051572630814657114165478727986829874155585835691904322428164814359732535004227935407359436523422465372547574825367693357297201119062909706001881210435257063050341251520428935576553376515353448098651641899962207603271434334340355919960383064317088290562947800466014831118758513462430020083667830123094490069559829623041552139247196931569645900041434534424441544506491913435632439956699038458972308438353672805519345896087361563025619796930004573768723420260507637704693446894162729903185623589330031429201540659055605177205078140919196731721889580392830559002137556511641176462710318939310450522661880097818872237978765078899063294307809103503988325672690054769066942931029969824429434329710951875266566829689153187166129324070751538078606446349813069084375224598080787652318549278783508439219433438397928850866341405089785470352588115571390577363820224874881566869302799168416645567030311676952570202108671099288375721596938495080447494844604435663321842224546405103889905466366890923781573861077104949848766524912674183256664244130914393938108169657840040643885835214883026398823523202128015831606689797888111998763758274360479429985044786480435090477196725754512940532199006788971103745390459086875431311193109690354674124158563010237713247243063786090676184016515892117814350879826929026186234425044196928633579250130929982530479764676873220329562565212123825379981913955622278604169476730195452589899202508924322124674911588861069236026428050400610059159077662378607616338193600067880703619615853652536940350159289097096509465919081641555966444661296547612268392853841149572517777571088735768161928496377468054799565417393559275878106660053880590878274622576653790499698239571077155063769478607813219459585709602576408176603483600640263771289936491939972224200727354059091577944776999496007114296319760778095310514233727070886770936464409930185090655459592366000096503486239347664421937195732080328704167464507220190493079581785147181011374310325465143859725862965620472040892164196923134267652172494971547370799609000300176438180701971799843188489364862328624283008627533611504159384162119966497141316740528256040265997895275191555251885311496429330357890008604370857163690152349202079284301037965912744664521156197697338433350470113119551585921246063220002429738496523266747179946319757990952744377164101448042380346605200698844318865504386059226956657419011243384252363770948000039305958470185701931201578807418834442565977301019365142906332174680695564873816787205496845828370234379422117624531381669074908802501151566423174590559711729424550744495117740489875363430283052270206220948807451450823832165814011240421738089072203468434342388868213305356243629605907655025891619085391007070668066614853913166160490497500876042892889633787477570265066308912446805005702806258256098121847668401387705215275633676952927541716482199049846843657087895770596947110555671853195437910160986481327531370579046260200695337085638989598620295079200102804225793076840426431219794060104061761821969114526685316255340039788744890327384128753182085098659390937781901193423511079760167228565642907510266536945146940988504296440970440046881023791171352168609752042576670772397804335328894999175399817191549604828806352640922963445072562984673413189420133169357552277917115282701995665612773785752669124858899828014877800497492163856454655275595784965738264337807011777967318060767034535049083746971577470722598170550838834269308161731180208907254426168168906493217560172124374303341910247429510845697913519042788463093630214172698067177167131777195252463222946970900943877149493587551195673430308475306511431756648839333766985211798054241983531485716773218336039844027913503599533659386181053304569247166340931019217565330985102130763392559726319132442040731675310729931846424293396017628935867023025435194927820932638932843323778629160654026795602191189033581610540980255320790848590625211109362100104463092204104139431027845956010878074491693874597371356958400041881730935173795506058391506459558668897259347071929401289557711172951210384127228742547651410999702039993694217433478123055235618735555062193760579473458055498906449369074520785458602184280396049209208679058530230541725813141708473740933871406090972198253866514644974883432702504470833961406226363429819037362539254043279161128846187695176690977328487864535271203903237525671650613965014423997319447069497574412998042360821764024254856406793397878614724125069977553791164560886885605002199054372107069799395820338277751402087931930791197982399444003942519759224385102216663411564874932943471837082507515257390087186490810316642802944251583891780940187925364474734552130910969489701009865948687359656354482150404378141908688649817611813912889525006894118008036490898766817709215671982716549536765757889273972997352338431013939652554298627452053185378046935561074837342002351607765517191675649492366323206542162534756140272502391829529546779035563226813969344351551788546522771979058432595305769907703510926178271439584079417768380058855740531878174138436009894262602745212284215500452597747255346519856240178043167380732826889910835957803100025157081598639256997715742108465222583851925688509829139360397331632190519394674752857792690156753830472976370269540120419217962060088255881133782829661541217087507543549755316528910514153383791199937151570304726674268056519003655332316952295911795190164298821831288944556077422046411512369579073207774288710434148131014315921279364893232320894483150970694898420727163461884911777075278205710829142191077336611865025507569606307926691115268289871567567378204414845020918424927808546638785384021047461481697094498077257414997872120833202236142082148921303412018469493117824215333527555866979635801417109947626357823651079680359642117923634260018438801871641387012433159759374953764764980796464917829283676374408302252116910825679968907174182129208773792537530820094139998464263193721347730922957105055785530041401694214229164121980336992604097853393739440925029094217144451288002721566093991762555394933636170349128137672001310768842461223490877750606244592549018663765254478385494265284596248106720382246417682620264656205074557141244147432496179934935833618350045179159783021454216963680844660124418002905208615227005685838981790354500447863872391158913568851714444610050061984844835446485378474542966374359214787705590901658209766730987031282789609505424151151920682877052634893684746585466343635414525121273146370317519729265202999468071017766234431916868721576060683934762351115135109364605215164459989239785554946437973187059594999498967712125320027822828061064180490020948898601519734318085477484548147328851090144400545153937673910929294537525985134461276832166761190878044497223671861773430781135173085556105569800483827550923882743083263658138934134579411159132820706560880613285186801781047180845417373393067414166471199934037429926460055948369084582444302253862057552514141458632666602457440480737139511849154321637336502113941465830589050457533951458125640147225952485647159839768131293103674388904615347070058188444283027584903035637682267960977221436295435066428780780623545251929725739779707219988822262149743826139671601043290956287868928283982804232399579577075733933532902424853340225587509920594903973136199621231169989579768788696283882659530165730275704263498338563256737175230074403558758892891496996529545953081845326245061269927317029389033001292619898895516176553535865535668917931489171394648469420098346920661848598911446062028420740117395307234276291086843902333919761802037376780057485595948229250831967120645431068350879751153453297002352155172289264626077453034342557967845195401044363878787256036015509999697686452572332241492169436160631505183891975261345487698589439244249198764616514814810613894098219994551827782423303455313247656824933479825977237841879086243773197825508186738031821844374128302362347460136527368401691518746791485705409616707783527305863568244630719619593861934945437298300584391425714783941483207217224776337114331615041307422128517931223992070872406105938358328519918534483548528686740429473453081148842637376844464535739042577463436905589312891356393169023483500992487049721750210283526195747920161315286929522692318772639998586853301530686663174812552183517756442196971368163331296277793130224280313417950584626069401273139410206839262720693508241403590564746297857760869780781479417727907964450322788223266249587757151776243006291644982162865913254436189348800830118435866998435225471800845550662240370715239743874520966861079230068220601840407434968007947031063804729771860039933329084250643390583390748400367105931439609351559700447614429679481247858585629863559374174700102750570698060953767706861074254818570155125873411184563609022859814395822316585797351124973466871431367338533680950031181132070073785944978155904969690059248840573199507347128122447019296635925288236950501083681875161840679335759008189348297206741222560399553767274735447991384789353806069810367745160780873740810686200149662875784243056457314541256372488575372099125430462316003552697934840916946142269110543641033059164800648325022376650225938337916320393022210476075982903336264720314876083019013334369813009609738400689944796194549074774152245414499831965536269460833281347728318099118179134286363934357178259059047084880682296933839140281493688811496757016031373490872275603870030940576651330607502491928458270659617467446873783194989599455052075098006310098885767622753174440988576818555834003040573862903898957630673787180783963234385063403772243290994459048493693630247442454695824049519592381271147374902709629287992892624927456756662232294408000762757748486780526300778557575384664416533660720581848516641528888176222401169747447789016415677786488450397281216273180929012113368131407492842529409467741780347726740316481934158740861913610080281196935493578295344536102726174489243890022097019931099593483502820910307985045363403789946620490641067175543590324238034187203380745622511700671343908375139700686987786500866160781772805011222810779569014842531345609441381221503819585493630289003594410609826405015039125698018838532520789409909936722555053321099226007261382870061818898775825444921594632195033899848866074899681421568766408955777985334364313209280890103022792329187458151025251078206110167160301805273712433491388789995747251563750913437926169452163190949038552989018167665412907827906099601098747428307328972719595766106793453960100336586071926767366353212960802585433529133558577388368944133936228978845197720976905356433697975925391815884721962342994584996423282291480687796005155773478168738175540770811458477090093896007893038882956258388732805173112188706471655761424899374288583396335012088931816682477377074274414683414701227529767300276150268550273157477723138394700199170121620791139367724147848270434604141392004637429738042107719276251874192401651529306591442493177658586767548191938968140500036008859596468238955480372586711948697327503380936289708261854672550421550289009949724125654315477243798189094189376777791351077187898945593777716408575609696461636009662008163254153039847433547886624657003799535420609545244058390376799764467806211475748169705330325472469328270305862467136522197452860686955077997918173536376632930838027798990718112735012345395724077408455474212573905596170732432153159356809378222705795791765408942076477949372591139020879182953317119268865475557811048538786832536802589997418231480081495327694066711395673719657934990325069809033463314611092779084221692943920161915290000118935909332569032349021857196366407292486703704425051329237811598287423589944501054735922256851217940311098110143748066220881277188661779750908026743164376744370132874953535146342904616095165354447036859021624432227380246455060622655591498434355327798778755629618762890757857983314166568511027149351215679235284861344532271083739639064516176557038834196793125679084593718536107895978856596117056813645279836095916924188843766045690512157667454978008044216115984360843278413498922882951243826786566891553396255072821346245957430217832878186631947919350728274772219356091565222470051984235695013557991278685506211273477688345026196560997690799757121737732355612520872715277812442555391239283819890440909599068073198271168814505823895116711201201662875178165034412775289917316683589416488129270668069086373463651827832101830093886366342261052776073873258451020365504347270262739070862480234048083612928199395712374846388779666670008354491729977855496836325242540857421705889324768315727790907051955251272295210604734390458854080768881487622180684885075738172347634666331043896243308182510802303265876682604235430438848914721905379116438649514664752833350341817576429132516841504641923493168833512802685183756700461183329580953785994463838056201540398997361310262488967796999853571247378858250210673362987118385370749593885003632981429838134567986485125671496674206989206917542203271806793801680394028889881650612325766795347376925990405156245904890631322259714509929634918530537670409507945711786346695172958174603659499648061616103365262342349394355810590808573188779792633542445763319908561139347640599007267072783872013557570018342785577347688221277644100397650779046063338271268800734701036416344276611007223104586867694599083684889678467545972628877991663582437293602476676788996840807706285527609558279137847532347824302969029820113123182513346307088425001064858926183844753815950686357443004184112710971081823459988585653743964551179747120687218095215776915240347956390972718705395474639626715234277118233200291877858293279510088689661306269807457841342819074194336104900477587663954666947898807553543146876575147979732788019040000797537828162071173655225053924178755854932165811977662836589191206652449002030807553599971395689093512693678154878565300046579241983648914922907105023848417985462149602973539221528588141914998693296656077820442571207928523972611974818902896009088982025385977726141347175451040815485323221281462637933696754697470313699639771747557380193108181981045726472931924764392892132671367881408142168417867108801256118724139305860864708520551699069565429123475679695178337689712185246659246323391943232215198188156132642959702075278172319809177827454037544720149781002928150872946784625048576495542812421434292805512416081596760473333062924541515676074977966859097728187212960113527582493002895761680851295432205353214794518336888240149615643923937437368349439051514475215294472347969578641441873133665699839457806238521558330284236506695519790684622805066625335284143487488156478786060174223534501884439321989345883262515457819840037695928979882159725824400667372972982071751631703502286199635884069740638438688697572120230361729318145306077311111170596987724557255255359178655647107069254172742925213708633966860072039641672786688624989284409171869117955214775368447500046471657470578769271427209586617668926936201784496942935686924301003870707294883165764701271220942635464959310999166310630400354974956295355158879327628482296206421380158782813798400805705693253267721665503360141148623622707986189629847546267127107750187026580400635961874070322569696802185006559502465541845509521554333183337896851923276401063781652486247788626507194598606537979081488427588511534958302814575659309509234168445360720525581087832963166043790951546544964710719703447717192457637412337229018084621621169728511673463013249642187677633042961556197635674640838558217349362108722220760321820627408288971601038737742158358660358182275617133811384307109274115976908024721933921789314710709640898225512610927840464152835946230303557902332765249792644012351254509876250822968635478621832806753896130522876166507898280411096201342274775619586264570960529361815642017597204796008992451184265153697242049560906724283534302342707247446161395640230320231338265627173977148328916218200761682648415696181932431178220703727639340764464650695970907567833533547573450833292236398455981350677204098042815836333896527588124099363508199541778271091176237785184022306709478707466345446658388680099908610406036130206177528624428160747068251383492659289826962654986833800331769346799420051805902994789804928045747246072997348891797119038574581773548317925547471159846713825666924721772240918395964218036331056049017205580271734406141358637983103473286842645746390307624876038118787156192657908087583329398034139664026632574939022549533096676923317456232487425040692275967182741621503494977248101866263838074266158406244117743793801983375780713354960509890175444095881169003463882869532594199532446118066250639483497918317383541579877216281557893357858938986925975881914726889791913683574520796710625310369846213322603882668093153501801672776167203665537129911803150963715451158471009888278758694699097117058899988198586766866927874201254246569196161333287047422907924855357678144625815799510253493784328763456822620184889989147581439936705353502745850203011094379807045842767087867028444515684819918044630919687200759337688101206656274498725185001297609869141043353777598079370600932027363426763266630279552937004685798024486836284030721770145903934688038049738515316229242099780234758096945402137903386258900960755498262754075685823134977956707490290376465903149872240547475848543510058407214517670065223410635087940402503970068356361168216842600362411305600132464720085558690084755140182642693505922827018859509352399243533702436952794672935503832025105159530757396526079635680998676078282896333210477003252590580228972568460728610093988485726653175574419011433426041632923693055705417790145618568427989676655076429407365438220966142734267911297554816088512651353331297369784582717143037563073409550815235750123484020931286715640711784972265428080237381568182826640323419450504715991980433781325422458055513574327253749779539476324970863612044137492557207028774848328004478341915896198298709833927520536263604714341270421536527487609288964173478180723517305318572576723898041277536645576656081861450911338097096870692617536148565305321461302001026409507298803966396952590182211555840056865281284591368000908073449046223442285911391788734441499732179213606114718861207200975832641619655724033147412601733651496690583789653574650473526280975702470055047076040962065302125039395812289098164895836702443103538232400156211684784098183083695053189187373817672613673621840326435447202584799241547252498185107292340253335672750457665976833789525728802051251936213492983484083598461136171987448964999778575576411309450461138719267509452616216251307878489351150655840175172113074922407504303375800350325239127354501939775655594776110003550398993673521664033581627244796355784113806849179813139786891236021033101788920977126236060895656152088106704229432768152701766503325254441332686073926398436154582939594641006520892554281163852776995859237306789381529862767147301802200248777248178638049741321928639752725322470034872297617531235178420343779371314400221314788691357747359829171061704314516555529391473468919930680376305652921483437712160429583672669644656282004639463920886953348669286411754425849888349118469176225048036762930495535841696473876761644523425215475476263183234184882739814876799799090526944959450761203161301425591099133002087622445498534658759795677870956833048173506950388428530267837982990333621381115827836902925742947511324192299407604452674606255355883498351775969149460773604948167580648603503616401265156259422664459505391955129570251450847654013301506476466137370201368825764591903247764624439881282048648709821126656921120304068138843854471728556910223836560194925402545952351808151841349679262015261984784052363768314190056272236522927301506089168175428026689009058697148531129657090472714157595171275909364910288718360755793143936581084868062597928414640300104730240627110490980698196322707926440706144315749772743179712078641574165208722499832312156305949662602126682617033162616640759765331673073875086927629881729084023317176418505509782005943764167119920872176733682997767185518367895766925413599148134790850927509951945726876144128547689785350472011834171490233614088418226735014802569199351355004497280311118635588874299168223504022196871450783182949393511986066241070624787551936979877652461502982403204733208747286574102553423756912463137865412753276938854729389850161003893236878996858787392571108315199673524485830900490553217383006053737139835363000638408443065607082330508375759411623313921046058105969224420857329892751531129685425343474702430569579191313307319369385124583344391264156485039500481302610650554536045134003571770705008964656491261206155132508529706322506515068335054078068325470812576190042901607794048909708362810711702529587107608988389694014206195237114189049223534116028965290178070640008568809753577095074370916178731154503481804365270931944626832422444808824430829287122505722386998382193389305401463420377482760516994850318385946415339486586493166808378191367277169022502089541609976102696999697720307061891005203298963663714108492350908974854980228039970637604100231802238581412417181682447539409351870540436858170935583597972236131194942361970878260449663961355589835435521624956738295410777740031850159593216365843070941279882490848156808317690336813484436187147805394742709701797934913686759105383659734837352883548691374446270660411535603438921264207851321296636813194005511703244205409727732816770317228762268211920066515841595356154576365325346138994373577383196781315783133950565869841955004255428604865841431849199223272906493737113283144856078152891943077745899206938364015272103169507627888148832068381399459715911423420138432598753757056878924387792714224986483203408886485449368977393453377977162099520149503316431151591020928218893595098667158579445657455305495003889829417336128557716296985949711959698110213740116164464742615385519785765280360178906441169733601116283660653039638387768438636534049123848379050328779702469923902827029970529273904462573413247378906953737677263372058635453695323290945083760209134386149305678667999084851266584426959654551021176571258035480216377042723657601106726486611566264551775092141263149735352600145813993743399122428348258045629636530138431164020641534720875804636389725446912775092052621459445731978458334448566732118643442227947980398388582182602178001615550276341585741680638145390390701735137948310185818959130140581561949661704120018972056446997479745751993470506124245107653363484292337513739764687531693741203917072994118742041176720557704936231707410441622121216300022997471491888021696907260340312719246322740654463043271071017441375401953706285891882672325115030528449911563479346514857498897466241394743261994055399639582654869928216284534445501327674811708053358160545133576528816329771886918240868863192096237160082414443152353480564968910637902254618833749863005135685447636076327020399829534296827766415308306098890340110202590112622704725664366354745363493129535931747538159339544108999114415561572697306113551465166933224847190985348234457388072417619462416501465230682863281318211443166285201920792988124404061409701571085314846897188978335249373083604139214595865910930290958277272437045117249057214634594399180638174051000728972587149664122987796774359998053212090253972264369012462686851850205665732644565567990381706619376997823384093011234849783922113007269503375001435457363199369390260066132100510440463111935324477741971727122319310678297873392840602789718313985882591947397921325679139904145292161731552353723888582435314481540736455433420745942170281876745216904275574927700756897475100308597522411321530315014723156122882125197567712853440977814427549696833396372588050420192014841276188141029712349877905191671471862192242417430383411658589641636578779337718411178348618547852737456984971615709758144112306624635721884676071920721003747166641236795486483996199247016099461475602940953819167910356083155446645958208609704427666068261726194469503771075618192129122837137343028445763800289596071664534456845899998858540599066163795160282193492167161259420975860581583728541483248841290675552736107401398707121345989208710898257970863813012134820132468205555403765784294717825138920213505828830918028273642494379167007858576538965030618793080720793421486882744826880355718188637592316393154563496796498092177330265550267821509986325103253258827494560962369729756711634714251981399246719830630794128283772859562153175823198991400886224047063763821812243283394093649356332970812680720964374892291880930184896956852187008291257750852705630827818600331819631950030930153600640251523335051445144249313636143119060892766224521759533095866058335157645606548113015558367844792946643897049680042879684591629933956180638462064960586413548053182620590435197492599030797638388078644929327444597806065163792512174631315696837244943572103998685818338907614381529258623941331759413870176509661129901840464902505423769205768093962708207680219894546099155526706296307580283564977169023631019256748351085580415841679418714699027359002543702057471867039860926705366722251377969034128627518053259523036635447559100853808208572960765137819734048086674015505601917208130820971740645027019936716948398811503987288892488367030540321210189912776815841291938765156053106692656722790006779577296956244654376742059196038673278853466153967254902762810040770078829528941195414138155931691670106078547381411245130637244508764373537900991024641332367311911834590390664522370522403839680107237780207413877135121410300937743393331380674482299187763362477908866513800485482966325630054706560176475663900328648441546879701606626111062534065964088612615028861292479768289476462215763132716323501713390300716889778904060520090714253214715477042249439848080085736545721228444022892477301513685638204005008198851639112317732644164356332523482927058944741579009863998288186794255402027891446101660113399706809396814695941041903947837691297144554791474914238677375647744981289180000606907872949680550707768362620195322484667590109470984840327783757908726916809099087285435719622047905073397974803787903433786686002865260469543726401838272250696479129131689504418761583585105414033799199669882084644166142253158096697101615691951269459026445724722455359641529745264045500820452680335672496149129130590171487718615842829894853164784493343630139751589394601110912110088929880598852367085609149351128844444254268134018834523095231733138192592642674171799717343425374694677862282060091531267664628854423802181112854661889935080812532666888383562090219967210765073132504730036012295511285411028125324859309506033478521526845023602584144271543119482198459043297422352659212128476675310731325228695320288045973618504488750432257444653290942474988526862041358989848262545829317300825075322663352812097650969082350408349379851662910174160939944066811166891136751597848462275601623425631802276502457212014485955800402772352191613175293768391598179149343649040157582904081522756383913768526243536857173556920134160787633687062411681122331681024446621179776100793846159558184511881454810266748102525126036454378828621465832667879722060934352811363990912339273152230963650468798136436838881733966468423384720946532062865665332356737278840343569241507109854351623574325753237031053677956867626515009259045191830609702249851493745361731535404883362853125135097086289102043179338100533367784020940715295776527875912588065288921827255635615317969742817002162567380386760612080351114067730816876642532487774682615582482588750458027245071542296966836257449917090723792042567265328280603581381151707038480138659289262619054202015666926459277897383680729080820405562787651609044986102903976603248643827067012188370381252485780832812998741914132630130497940003503373105783542169225189693109213377552522208156800525274097488784100574342412651622882340931302994219195076447353839720082064432844255662193754715631357836389766171012050250370767255478619668927226171034225553835975884239853470438879010888430688436205028172885888770307898244936984205587066689518579514833585032844309281468813356261465160083756575872173324725851231746354485333063345097165417228459005835266782635873592979964557206463046540285480594412955010569181252511190590441635592833383603927844779722565908609028998795369691617427617582688792809089416710529986959329119622054980803193650807377178410306902651992776320068152268469468991556467884517483308508133974678046838249038011099681988014974863611640226519943804885389080354753673118426178500302313576529337230512992227080169894138772603595130976278973938984949294216114840046603786448968847795798830345496282413435592269043645181907254428571610213940249055667822719255360544785988316646426915787298843643963985555080538394689833823077928601535313524485002874360301292653693061071549767496269022649842719253175038570275096836846278279536260212354245231095868615605220826607593791845757508100365271284633422904539089581252628469939576080324117943463727095458757491885433579500966506746077687228379102020086542932056972525527553853852552078315846620536691189699746831463161576229759006490918872284247922063370988952345266906389006026274498338587986872732525209382723010005185253586655905129530920771843697982376014203540298617579078549986349452227957889597439049641241699742343997894286818611111170565838216883910677152298167299802226958695477949905187742389734985084292187816945176365929694253086158100429828177516677024001089725341643725761820638544647060963703269202483912473180369168871563554759938964269521898136614356130676318234275783053392404440259324839437713691276566564597857327396855487578690803388371347321351851810196159551381643408695664105046519704511760686492828891958770998384114523408675372074779213086727851418377582140095784569809543530199108294238788660132729078428822437580773328929495149480409904323688072833303991663498738136952474160314687229279981861164276559306100635573728108687951416226996863652783384921185426444113828828963326548111532844445909327796096992279509192870151055226164590925907569756612570802360145689315031645178425163905324865882119220152667173489446095281020487118882118188911677306075405645874161678887232304223784337900760760630045193810149076594525110573467326926819476264670212573771660047991663586900834523106505983266837272824676767789510364909554017719195182631752617441878433268191426732951518095210274316540530944187527055374957828589755113533234201879705956000098593354337150311112563594727556056711888612742133122261975465787176977444257110710999573363787048435899033736003296361793982960975366541622600235845325611913665017711329733187762420088340880357583799037778529342984375100192993237554917578867745630468594330540048326364580288342975264468859928477718216638171231706923835015773720285057850230559781881877137236359025171671924270880838167765248360092921093143599102296231365222780889534967902109624812986929223774199882261202087909132725774324667747789980965614119273798562956949706197289288048069373676631395849333875825516131818489422278667496567208585141395414313730432768254975294403591717121138827419322101145353051581890181790063852854238820162485296354626980724344759835380707781793860743701006536236502320939206512680614349551125705911780735343964131236484794958327003151332953191714759754315724409509262637788312164112910799469823813092821875196273354831103188433149804268485226452779089600337934313960648896372161349728978184168140050501676274693441532026484160314796196408934946734400130275723501613031578058070095657337717279897383534229696626823548118734218476392596626980482146391709839703204740760316894125310485432186111674381683040376130590782323544868952180086717841674525782432022286379621530180579272122208029054090119689271338633778673510671487151523555665766073833955476455996864491161741700508514057677444638616865129528009242259389559574757005938728683365969485683485752415740089711063546734247277774912684598253025203849155252017877581423729512504463214924552084559707021965689405243384948506441586069056426989135617825888790764529402849652654314136279715170750492999146249003359514615250055217873282363873340426918671118309670566367933342408375412373349988391772497542053741742147749615897332460874895806301102541418774054559996486661901470562045495101535231774057836943355190482795903209282480936541416427135595813860186284467087777029175654387926285984443419151865604563668855673888391367925440209854142947958423962054761977612120009719263343299421938504674876265684349937816065980577099318668041840617868951563871593552399863857790633775099252766701261662015131872011520329987740114918577173670964519907632007726422729833727257935230771214843381084286378015264835483302634352463016807964808490477181754057718334127284358688987299310100729680988426104052969450471133968638597508218190971435263003131897842288493160254744424324902271756135693358037419935871807471595452503321596451980506138595077439375358232870307782049959759534418908212289999226058755944591585907946243395080576701147379068212402259878938270451640394380182108949704313623814318171813216136181637390559553672703462042806111809748971284241252642448706717328546430916913544137006081659965930397407526663847200231668749223151420212747351985036689542670075267455277023518986578505243108261408533516656424713838295184142772504989223783234830172481505438788469495995727898330633659807102884686285362057000758060712806320596938030110635656090300141203684758322023541211460315557251359307285034284283347742203109303327142329327310387340384409698068722989677533711628415320623265429729455870702029141839929768702095110575640988313358167501521694600960268262215320129837130006470622839483874917424148042527135116163951170334060550277236697689335223480309071062121741395664239976376363782211672136725741524255937572182437822771211956819596165961073342130760503216672962423299757584292064445986999795968263072413885923210142207083772610959421153587540227237879708513279151405150083700382238555046533652173342850770938774873842485531374599749933530039737384460027963628118480106410733788254203866826876079967768479668661996622842860885521025958786236659079821476552991028010984264807475105100844452778471689748132224219197201447990547330806139185142666091195357346093966734067219017323974830738883746394531174334959436046483339932646114773374156617708797866302997451887820933847679339814338082619042521207978113249617111882374840876035764393098081194590096991399510971648246704247560530192613453090285231593195280782683368495667895095359683161928969480734946117755579696602744057405566619176582078191608100318297464323439514858627482030021869857543978692736676338062772029839883040931910695224013606919142620145735412416366570198304659416002026409461293534098503881951041828224688319811021487581328286466953542643774043354518380609914757454156807215674308785745219754155132483549350368444918128909315098906055308040546402698945209832488357571393147905834387259065020827070309992116299691502964904302797690143327509978772673383820170290125760870864513630593503821916726642877589805357268469595093485135174163093240847609786679763825559028472435718201088386313835563345806445759425507303164033523516030590495707754089133301906088238305964053749798558983159327914730733989847901831517372536379074591986423006925924824825099088174135760797921057412859417721173960157503265287692983243987440469690646156412793666587024681845613238328546769870748032314641134243797490209626138714452305445424291240594514413565205071168946302799759342854287490814219612125857510445911401864524838225874634732049162066096891212223228487593099410770554529100036452081845490168791396110931304306125617645176175581725695144207692514514445028333696807207368823823745555241040373296209886945492268194390882502984048725822328128920051028166639713155461633599768054056824946847910324629752815316490464585818106211534503708218707110265998430667301148450691136434563649272244959948185980601471224218909454411482292465680612620247076793263566979898186160351546066526105657919769704581149597210479856827185409035860567964378963825141688606141760915526186435969584271580469663547636857805478504067837647824515749521271628089220041989684620315174261690468862626910906615611613054914522599020884970520890464456277098359392937617118413474608847096626354475269710569705647952295923726761900130453463394448476131456962406116428182576594513568920946499731208158887694917788376156470678084062706919966184517203813712009784584489205509236736404264377764502671539517832207762530039224198130320940440823829251736478276096609698583048524248910067477751090020732817910777113968580726575696394308391083440471951972295737649317171594957864446582491112478705578228072226019832290699681345173870298275571860192924809952265984683901531730094148620097938258650297226187648787502265101213361802487660215619646909947199663331931590998429608874729297930262042560516871101523913280532833223905619631795136641160957227895330577710912869849284623257327586060774449043520113253243262654440446147435097327154337481920341628598120071001672448923939312632713972109053897409504324188081095404691835627159698243608066675852924963311287951222292603660357365455927920988202322361587742663352545976232949480672676584899891061008866611553630678047866015593889658314946878143017596991898357272166913838846558685829601189163980247698784287339644220350610139652422782540235760577495089629398067104481965260774647974294760533977884704378981387941672941956821887636120714314835211088860251804550653220200939098862581344854951965616128536861267323381353366705081401405494353427471008683707207510888546572504161333636767602514453960987241786572618306312938046264475349945599687090787791379584240539969082968980684511529589801884146179921530374844487153494411090989660352136805626672881893982817319865347201092570969203889253657161413755542939032129283424851257929303406194544027536440539692981280486043618886795843049071180543393582838474824354131861460446433443094230982087571007127733439964663505574181131708677229613871145440625413346000844761892612308731857635621598622349011791590924073223869089115056116135887263631600202807323546894435390548935177376787694751235481999962787284187671983036379943806517355930695836722966894753365851222507268164013476617256362093507637967947116228788603883308162294695237222103799648294383603583008431961826678513805488620655441735724536019961366534829302999215614242090107471365039527379515150515629516926978342397681972981983826818530129800845905438104803712175446421542759721820609570016043989377334512574543069652309813553229704571825076419022748676604294022235908489325694695012677018862204029683309262030826126187118352989639804305126950939517725347886297865999580337948728454310873834291236375355913502836782543334831275855879141562112247939436589567714875968656528430316790759912519363489891539098378943421153130715645884090773404874042824444253730901047032191836507343381282255125311689231438359926248187208893495214715763190123954169229659258453047521599933457473190239000715828911036194569715109597226980819353477369123886169777844340195754161022539839584399034166970563144236816236795393667235599548084805441084835453579643518740315829494814584261609839826049411999106494982845028400176092535882104925604405726956915740257885560496235708815858014392724620374672849465187181458019309574344473733224370575835984538580628330683568627100044870291201624395580603076236503228154240097937401258623408752348409275402610226350884808670990320163412759327201010331334946082423463817152403383587402704637758729405477862904189581007773728746824393832257557768535813870591459963511545021962344249557607818408330722686102637756586206140469966917773128204746366874626208022959372350061377499018149917531087859092422554590025849917053712817433152294842750198585063806237003938462848023501820374458494162769401325107365744339217470455491385248688247649349497390488683469987757136562905614912913045387201798970618465858218758644036453931889922717138892462762684170360933214574664429879872187502132387858128227365144673474156027320958390832130576688836817408374119507794611184391059180052256573934631770927290225452528477158973964242770050111572758675851168033253123700089530084279334205282807677084039270567662452957217376015994970293582710003418066329177351423079413223439960189242276158097551031971255938939287225689862261075913066832908264801919721917835167199306395596269830945550735624451386664162142391842957765460291691779666975793133946510150848942523943577979745254905791278038707161160679895315876608553478231943304530474664792116926229224940981424840054575494271576326492756167757284247759762106991171511903698720244178114852608147699530152183467907034829232117835974108580638034727928656331143078809689374392479104822101600985757015010551794934828728585673553843645855234177936061124792909761664210192570747182212815520033073109137471678731966183275332227646321401597439097370553530430054012152348441504852046570400574196542478311695264501397782487339254326965616882370829144633745220278998658069444988613144364049396264822518775513434363535402748826402830589154591198813690168344113342961755906015123159915973001436955421460993548118042878715035991216042367635768042199473421360298982204554097205582361512102850868919874910324332808339208307457564055772842898338183219395529971912013140169404997815417362782937307653198521238323481753805131598171165259661343298732256065252107534967479408165741067571269180460779828452312374493178334292380633212618735137317156003658091760550443219717202383232486028698832810790314735739945531721552727207715849195173782422683019082950926396189855493915197090679385928162930896843204675154843865329556785090058996569833849684403532569940806421057331147206185492262335282979699850397702129131438367210816751858597657549905378706773961989803688142485962084533786900813036029602017806663412823305497925254617184141043119794012382764685542258022436735075399739387404205891012012486675223221971206101846964658392287349426965241180087247875157185117448017452713379328709233228618855226261631784167636292598090445887540877285001467512323181497880981676223252568103754751292572141052294062370577189831576023029513534826920814450738195522403932285303388943203532175076504132704134348036191347102883665986319533819184820467809076827980776749059016976057782494332921276819785313186506218841132826674008574723155054877386935340869051383262280283938492722250047076088940370499509764535887670367465883568545775339973504318070630527731337907807492385824418372877868130411051433787859812237338161783238666819333010917373388666539402019155961074696004243133410335050005585921091040211683593160330070463561296477114582759804519997555369697054632969077030920006699660162478995020326402433845766648295138116826912757403170084456512812838566377262725155316415925583528040352534109798990433629365121286683650443213936513318796845999932974450058167346595205456627451717508971977935539154786539522171564312540491877963095274938910563151973885980479704795476882895882985244036852356201571604942768467179099399320914143736778752128724088145267792192085804724088555382851876297869774175438865619444219981853046521511638859505087800320489704539927358061153044020103979779219529594411630811461097472895127252515996548225130887547464187479157899702208752942180143382666099819011172063398561698888603012162548325511593363561144698191166590123059384969874623686147379005504386546422751135254974677565203475402406709966182158038942988396122094243734707535870030187530334549763772827683364479147802709735509906325265218762936023177008704851068145700314936412889192599781476840868144068437536716117249156065643494734809152257639636378672804771990496861716759835293304934080406415152301737445339201646346641326538314790307549710726344533286920077899922252419831184201209671316011475377118952322073510918431943468210686770044482032610072948988109514856134098007389543411446127551655171056373838967406958432361181374381225598769698105598708135194082329286262207286441104293494705518164423664936902294420190063965539233597090804787301358934469260808705250677405861589957998114224866377642754727271089790376300503545898661925407881710422948454647931344956726318819629250007160508699244349358362889643832888279006958130121149133653228990526797803137740579112247097588657432725613240392443597078352818993509505998639439553233850317750974329287061704470810399154671802072177236219306228131501142707680313583021648682541182288470946727018355028090687991184742021005500099430853278886593792209965533457332047131685786744193036015684433055267288754128128445838695103444737261068028097095982970143754638883443389031757189393848690910142912920898066741754393656361353301569305933130157119035398216820970220676085236581589090375567138068669105987733650055694361269601533063363830602789954701003676135149706811602838378510356048367048373708023185110283271974376997336881176410343836328947521921319502063230918301940375528039845253333709185692627692305209335889441494754128681138564044696892037144077139980038206820557852580429098295731411510250820131709229722315986148606890785325668425433103935691066596629990755317771092592070720551699827887945098580308910112468358039955076298709894835986152191611671682769153036398795932240186764431697380765161346839976946679218229457855664091777105519325375480887036320024306622549620291741720574999554327488630029331304551775718836324005505008280003201052194305661557659146881793793295051413641814072160878545285662259114227319244027329338193081773716484807536594628818325929949059958069625369448974991097043731955032260217323406768367732857070016796629176602151535826176700091329139331502800273930617543973873010508345524992920582587802643963022462693747650345064964450471459201637800990221478514445088113553979075786128070222729330322072366263414467601635665047402188615209980370182694418396493442374172432017692664188101466844697160484575572192320930800527156927397572249686460630537174361711479903216235776671286568456246504624283115964262741681443573106372248436710714448431228121525290405943379888527469126832069315507322870135158764914462267462611567586975779526209620382266901080259979454398386054904809167951906919322645884691961628444898593403257745850294380080004200687143059425514414817088182333923739152012397761625201911447539426461937515194274578329548395269688815430513609303769330889789268374593521429059179900193958652489253417026501934762403501052046054434732866004350152369952959672234476077470154423264454257173033484957808540712988416854006267235767974764560332731330504540476659456693511089842504309961187015103995173847829487090933216150689465620412931943176295553174095794214336078420113191442249041524214646575544523392877797668923071833696240611769013882141367734712956274358692547782268795662520945079354631210433753881574585933873684655391854265014963503377946596037578547377811211178951557560598836571964211823652075514853992942452037958351677477382990143643830086806044720849564874851190541152174515922445426285852293099295496174591469538229141369387025369239939441078953570225215023008044538213609261098566391826486128500529700234799740862296459806096327944052876870466297922359156965868088479511251903732731172664380233357681118235568418468922904405529574043340849218911333100824742959050872992535844956968171328581674710794138439496898923277656597409295362607646183972587971820239414294605466947048191665220494045100360541575294194743505429059175101428699906261985608007484753155574391988422038248739126652534527463452857175901626429578650473357883613710074354814770697700595435887589284050779270439140111370357077589122653956321350813296464399437880174549924772858514274828604998051946158359292117322843678388129925489467382570264377672722747494147990298509122178858473626269973768708007498636193543190178586499992556964820492455597715952822807620034607388991540342114986819194659148040419130957349171778145088916832624486687084674015066720091719593242014429631035585186553633386022266520582181009899570214458246350929358409021059812092932676460928042436660449487080410081228827058957148281172519698744941129145252560220843380443747926709650225931758508611184330668632002495567460395873445406657868088585569394905348276585860766036568948376345548592199136213056475618458215703118679596916757801842405870742324892033318004865540465955386026962201351309558999004749804219523190843424356141160554584034397050183003537039464796557394012432513175259866239365947763342141439988860994922728349444857871404750077149158782365635310537648114003476563773708579844255741581680865553389703906429251755063400235303116846663150983648008061255428591423773849797424285963110413639723550246626704675862809913335914025531020936904972647541660286682284197779629977342490384120714932541622395256119147175384577230918548344416128690790586964304884498281813050513810119652054657652001426247955137283327959452920699783955800346399939387248331095771514639267158873267283291509110281557444755584513147057821028280901346091797568966901547257812252434548283719055641841155366497369907372178979912305361827030514285097881921598473925337912062489421751927025951319478904882173768315899906897081879552222770634360631881756951115936521943374551037259929350202900947047334565686479286700216675163724191480914175855421760379941355065248352895883222566200643872374013755517812912679680796679434289382963465893795176066256299939340711437211068995505002708004403611630103426347772785636745424432638179818034915710897043605583048709629668415929290609883463640828348489844992132573030681775525994201500255051228694193698347041468972155352943712185639296283842566094308106418950608926995654865060640200952080784764966841396669066827902407204199743899041437403073712315248782934368686570886621958907303875761436608491841477630704972266011105905762716665576617242859493378231690562382484807698772263241383020173072646454198113100208279063676565310885837067572308566902674101283156086586598668188454887208248798847840786188997873493517617118965126240925935387759441783584059514826271099189573021741575649406317113551432229746163847491611613839458750323672143433138276186755238975106774516004320584993606818930693797407598292220974044775770236214462525750265285855753795949267584199822200111402880873074086266602687747706234530631607924646146670603613813096529221996933792263516134710305559886525578665983020194162607110553888709476144196120335646717522885858181896582471742400946869962401927147309598793639455758568917527506368746005385082998052593110941561879722324687504880935473069292044179461436093812413471193521127943794468727887139890674355527217441807097370856726698496555117689217116951540285864477444987207296544304846052892764556184892289421167166025150828357332221528864260635750177929141300119427956343797208917232218794686512050514040560001761205767773777666215626001191474198189199637160415487086067780667410895662133377493349141668864737270328317553216186534551284993052496028849839912490739266004763427344883365657657233867245656083860926634391250873275461344264929847988015674579872986338353998068439404500136758062799519028932005972736526592737365827841258800761147212776785456597948176990946717262048090635717863078383228076108517689140727786695247586657034566654559320627641574920540626582382496159024074355798998996128565492311662734055557234451814786806822303965245314445989258332195361082256570065245982820843808675789817598421670834875457716706139160855723421581058778246512337834322890538395532566112266812816605305372967362113347878935889695299107325616907603935009493892912740499165553131377141012230207793639697450685504451758646331651067348978103626840154718705772849941815456862345294524719335861075673793274045737514744396446135162729615101750616451371253316935577700325901084207739369318690868829892084790231166951246882348862506056667031786785100165056682235175765601097193331827140811574674373150317097875421080696409547543824249833929605354649472734360806608976945422597232394527215617822242313116820685539785339900785976671360469865342002036006855027100751155010832354782480355634052689132870612115407126524303031971628734611445545187388106551127910288516531832318976101886885761168166537526932639706072138264880331458330962902666531204416316948097987494801966297953685182290150810647185968229965653523610993945974602110101601945307819888346815035357286176959757711318230383884022465031316844704441440011456952494808151521260748231629832313855356171999264537227046097643032600810471353349162882321204113429685500851725047475860315493449784125200382188587242221064541871628004509502198963137714781851464400139613533888297310923947883685200629005637849853302780072552119204810703685932837368400841558692931133680422177604553587214841149746689060024841760160285447069937796473937510077959524527222669756640511853525958150832337960779775030894059273107943832605748753520267614285329032843231124995663994477580230192823093763695860044922127432242409490467662496937954953169948042677092071313836897039240725764151877771673390453328812518240341008802092876280442908796766505251820823390566177306927498010289376292380822758044320332985171960785821832136454101470469435419151511228470890710692925107875606860229251100180411300743345874762525566214318278209602706575206905935958789971882542582904342669250682803678285926875014228923186520676851104333963229852871829683929060005490086494800226379127727898101863935701914212760662213388034890368032204250958542148501768458799131272359733631522272685363532462460983729191730731637546237131630377464235636518103985788441044691804014182879420001733904228628247024249656206590518264311535099514858282134061135707035579119233641467503916817266562074133281389603589607310448310866392844348377631350861844364867911802629670380982977741389993613287556877581800323738237028387276368885731348187734865439453061321023479621193665833059544859675976417550787949310743429216067787362354227812234881730337173818249770797499426572968041133910445090944345865135730043028430095996886272917701939890546131912588564855979022658797709712499804636750553259488303212062718860309155799166243316463262333994298208419281935752936243719977928491140558064979311890037577140272578258581078397295654262108740795868309591784639838391647158366024602250864804857852627645359894744849265591979599554587423393039645140499648949407842219941702932512852083086914854825951070093072333420400989437968399020219599379133650870107196747175094601560121134066544011096358789389190620711732526469851219095275581590982181481856698486586130611525428269425853008435873727996804619212852687708711765747075221621752444614609470624984733555153779116872681874442941118271886995998273625178342052369143573571688272808466988947687843679930951341342176091352311391914678021914807161120588145193481739759659415389365061832019865358511231591954469020358845191859693027578936979305371719255509600669514245905913932476409721687486732705958233080062353040221032934993504156457731599935821927816038473382779587832450863572654552971653172864770625352669242589192825036221730521244290807295529983419865025489990046119143573792266146451239586951519260632732191916466700615896325118699057437469371987879533210775876960322183737491239496424261431016350163689748195187167270417359611871739704670445755707795114545811845475554322137528833426134167650803585701247996691090959372290580962992254451607054005419606359501987142315619911555918109953113815157968288131120323415988587502555809845349567295173795316778934090018391381290035974477020935050795031897560365493519547760984298280651222420211393091510786834569293291229782285758892200655516133295095516127357660425225535849957580868312392869938740618165314979541257339265715116722747645678069683385603529507594299197108562726897646880276080779329477804386792930814506086713104545703902174967597802423096749513738954223644809003336547254256389132271035311476303520757608426699667568623320901157219172282776555265383863488418903034954009771878245467608925724729256614118288925036565904550915690157054618163296884146538407168678838266747754720080570221205552507758741875942966435473487966157238066117466800112560010271257676411256815131389815052800971306195334084646853900762693316430656495815218434576095429283254746557234845497222498637660200111870442215241053338995029277892944216878706082602336429517097295169372478186174437649845876284855209985770875778419710332624595440183717895239288418267330089859603465559116673738275667596919307581127490215029508873163385989137331388945579861025179727938454406300532193439638119057448820916819850092400812557037006085733703696466240199746820280767676531777619926349264188418093895956262821375882051796524108846050383451166497555467140659327835029882800027707842749532258973868965327449943243607083143997192261196034198174065043963620725404918102758012048873658750656172861669916810246502986586253511915550096673566651004602526337783746416904226054284081217086729402035897145978722353125144273712213938379320265235269848726796317843705517067195335886778679347200549756163280767196101024681370830267216064956696061276614246995614724856395278798675928011163275156238505011296384512032470861757133970383134365218931575510135275129558157881404378299662902437684884160168337077953238225807786210365106520373331160450899847379614914410868194416645642674390232406150714379707886378357743886339483725843637093024788993056333827480029751007438481904254035078823082220357466924617874698053314069514593587018857966832396317829939220224503326787570793598671290657715077033743299807493243847643316579520664240651223081065755060347876956712356228262863467428810910675577205724220831861661925461400686738416088219223314720701395749967175599154787116098033157573252322402575773193479038198072089477295100490556001094960610264899616461910863761269924742325140525824362382708958936923626117191849193614725909327884444156059397028573489964713406222989180176277559428420438946151566664877895641905249803999111121662516011518649802275781541695834388423470265638267489033217544832882757736625210767320391587681489815839622341543549912167081302374044353626773397072884732027202477568640441811766427861560074111487949747927603408502864618695497625833670729866120923321196985485100579652189611490593824833319104672420425841251401065364822977127361860254705912245256007801283290170153831720140754398402941120974580715502949789578866506884289611821707375128734995579849145599920799794819258329367814001897388006473682840789433015432050849788474890356565773185243951859890931821366218476368475732847197268140703921796282734811668375394786335326153339577850221215795180382252808384795051450869452375044443460416287415677433452962262390019689479946666126059225587095641443782569441783398229721515397371812755503848197459437757933776465468151980197555846840800751383447714067866298548286023113187804218203887594847432859927470890434358274831006230710792737647750371263257871471829054189323488811789895829328150574843278142818298204167962581626995184074912222062409865773438808998094401447824097828680785244564730669574354595294058600552455803130874556564652045512540228297172065884117960507411255293150256467576239154600227160278367921470482769509431495408284222390060291580402766829449612363997905300690058395165760727927596132494027024648757293640091113013988979287869974038597260882658402354446304381290012563558544743499550832441698527171204475699474994693883319913730816990518026324767490898689978929042363308649955966093971067606598677676606740760708031818355088029058691086109422621708611666827792639532016774006669550856314370691363169454297577125097643135591066702081719689348259334631196847865918319539202253400953300965037077044398341622336471815814219324678033718435450156543102125255734991664935767439026580513724483921097576989456451005927778082276627923378236474021866441730664334354130584725622994829811261225204688902033527755667964084080381145525562657346943483518086930725613028872980831693155168893536071277290992230460724060139116904692162673158837797503866747454467880318802636340370410752040730567863461473076397755604189051913868237278326214176892594196394344344781785321836333623379865264564847059175222286811864055639685329320422510498103252189306799236380257802198609666435842700879416795218615189617035199922229737394322888118666475859498922761539700403421014799464120888782608585527793409112334202010163910179981017463390373747603133818173696834228448646307967146877800322277607440929075020136299460451400073323285969157369644948688118144640993161926525196842004292363925843230386254125878208717754167533636642349678466288507809430063391920797206915569846718513564312847835668890254172532759968072896146255471017490869311108010234749586217739510158427165313600459289338188792920586790158438554762816219220016134986443770788927184108083206801453644942990283644730266636391420461141193817401874147663934157099539875868801701034435537251481355849734430412925446831939601455626903197959433510394190199228416434508957157520869131312416717907015416120942864670374187439717287022954948194330733220342748556552570386507637732808112441531132867504109369994861578762092019545420405220773626668795212937230745530017455984869864476218483689930862623672379308769549825046413464711866947066740042530141803185771486139237892369785502854554272947079730402279534404114593858513222341915793603372532093718079723384664161876601382917444065513531975495162929894640745970330677493308738222595277279868017778573382176248382470934592914823747697719893931364736451028927474285852914664286988698710755759859112872651280499009145720023870336609619853692594014254542802120632180018142641861594870684414233067967416310482229547955386286755996239208422615944569239302946685716683248010711656197574830086961977741965509089674952396146512210152298034226978809287547247037050916367890819436991825260269596967346431175646125150709824108664742875206432455164302861589524689896762794196875758566349068706796508655996328661013792288169101144837705568244747858394456381253981679658195164433112730482587830577895729071117140690825486364167498451273606171861053653669385161404132551352634980340725844183699180587604874200990717325845898219670208806516069759642585525780684267575605998703292692962625675061308443647273151288800747743905690670823465734714276496078396401978573589054548367065452301449371981444984436043403859127904712177721732940101246872354128146036951422553111706941656675145553091963589652264822617694126575468662625278610946080935888177763512641814971498258085824296992321275216343427556543282518440266608356853067648508879301398589177113879603953025884334191675399608564586402858015716248488970178936236733832446727132412680648583832679777684443644320500499016723151080053423440628382717361930354162088600514209738872880275158709275672488881875199817334620451892523536749789189673916585202110041720224676222275937668951422380340307330877994567216054247697320647269595111516667593752746145762215621396823706321782906559876260680859793026751202764455375608413917815131822737301325871996281868003599299897292852694918308208522936159348570776685045132773841273337252733064897656975540839762865006838710720689548996084161333862346333017403426122141219837521371660317473502916897419184852342838208855493996744160580756277328689289268122231960895633543940205317609616367798584310428818827482916463783671649500478958686911885719670274978471074623476049093457777762513090788811701255216534423930036812287652301734225920987453774369949928374823518274535981118426440932493507364969414648584893762256630744357148404945619822298875810952270577434238555033330764945327886253834699161571120150446598373565517293104151233828486084799348088356041287267731806958658430700968950835423743949852727770892181758817941435660583845113750588753482050077353032536153681656760900809316915592795135719821021351273050144397532806079901722248314925837810081753452607095394074096917250642736891305414060635369281642285368984525933441060347185084616035478459677671406709070827126610361066885382801182476122846670485442703239068417193072759957782761281682497462187769943421026954860369042643879540663791958898554195379801209994856833010458175511157311552762717084996794094868984759840742207588616324679589639291094978181651744508691316223747931524356349338894717581149818197121796481979602386176920591913251088871251950900866885093125484192120610859895089866739303994557222993973486713810957180559535098908738769010553537389010701759275816253483460239182562916167822620452817047768933086350995697767268403297948445638372139680808259130251427570033844054581700651545447242023567466510223298298738187099166433536551615100400021769092049207604887931499757671188152137109048788641215569897435104464269087889292560600069887080201230516523573389134521585850663779057926838477096061899158442207803217207909130345294985960245910659320499873976691829565704447786017184280333133180188710862511498858588319877336000810621783372223154839595561327361857570646861364774523704304702664109595354793617844205288814731049906044795967933674032855473714390444463460908659188782628573470741149290897981752804709862618008846927474580614753388867163963500606884786655101382496178204357218019913565600597000538320590178116547991941539210921202654018274390313875347043963822501039319998390623839746085866389427346109552607104151907251224848085331506964966409814291159291523780298006144457252261161485889350287637142855046134097406665671725868997858752891632867483191232575669135404911771755560126132956908271094486540253515042079040625650443176723677889052880104310637611208161433679813973148543022882193160066956682825877567763484877102175297301599556000719716478214602859647399285660688995632842854135857561291346384873242284303101323303035222274262358489995031914846725900592366686252592526451441832663894156515777276711539786840769866763174835787738842307358957718404397252105694034721781587580900162840954290927693694797416730760321002534254151429415080430106241384961303272478393635698877205016107024171521095536773044505647295955064080132840005533014364499631083050393900837012705456399678912286599437739768648941184400922384188578904925418451809661747636210248799610414825075275343924508738411023674994485228554351743741431481513420392386907947504504717957918088926623464774173231789381071131889935537871064225755108224505643188990291812479762031982779792538398629469358115293152689543143009559872082938373405731255479494075321511830766673552065899970497000175179398308956845847344875637145267496502158281381206630598540028186602219355620564335439459472582222783257180590233546593312662494051056452088246916736584126920285460963993815086469904953078057593613583787123788369510945760276310647489957538451047923896329445202129545920607497551785259368516322987856021629504840593923948224566222724177671353829992786137410794578163330695209298275950967241409759851792277966891094285048026098627055548045454941401102054707370589108264669537391267403890236549723474589772413778617455739304919601915166484964654402860443095483493775923310452239299215569936743524528446937064164856748586583445205617137683093320441521606995273701753652078636890430736623150039003498131885718245604656339458258526510561313523458660728385732607874555098863059056600909931580743942867338116897665040931431958585213447839440210477721796557982893035807933822629145813903336961699509621208606297648772483246048602065701681014987235720166214929935365277238199442275579056510023490798752111369499093974556515247665687284775933419652504581195802843109437549318933633739715560565084061236426180694016372202296038165178183307187434081458256738947005700680559224357427709018189418935079865903457206330174667105713833613203779437394017800213965706632763698009897475858675720121835469970844667534227179093466230926143758816654390888381111230281242596373793118544282822635663361551330364437189686396871212747998170859363307580057758824793320751367823465284521946433941496625568113381378104569069804162604550857481170178767265063547037239180898069156518690676850119000583672000158608708807399558975638716097276606686379251173890826497217032410587850769874675876741091770695943624854637629089389264329496500667452962594448601836812017904393896913183099911852489393673936653716146598957570684481870698822649588336503434083025631073578636095096604574216855812826316456938577559850258748205910513140608618943514577068289045270785872072609472427445677583059535530794948507364043216824762496687461607025070327023505664181817107175661766288579727514279538548990113467295560200278363169337781206223065689884215215961432292876644856894272579259160194318436114294141171216302496738702638856440862746379326543057752136954233956559782795908972917284146014386103445382286385331195038810859858148598090049038296538218365342149730895324848841635456710697588900551639073892476285976539383487175332600230711134781996116247717114771815593374996825506601357462898986247988994394476113432288837232536461788704476383569497607517617013087403825822444640999304985839808306514328153766623725649107058835580090096632445751589279254840515873329306934432017326981666528274789822867545314555106658307941742834528373422355063524580466004022063167439578419330227363728117427002311911170473367313059985567517498799696727991397830026601034122167624430693622559041033621134925423795513771575315729401789550931001755991342542874515234916094109035255602538459061855865340554971431235282029593041849816506196784442090115742011896247583754682413451057182696362892489319475736644351202260769839522926848835178955443235115603720144766047027109375361689910922254396703748179423286855671870937671690822500553285549757273763888281124882806869400107799877936682553648396676478169799881480902752645050927732102665156324610353951057313383426155305322948212438447845475302919502567279752280071026263766311918163222218806476451567958366137941673341527440748302650058312334278093666547591655002644634328142769901629169032266932859598807791129905271712369424951768743290237707841325445401282000748492195407510169283324522651634557050027220155699475393112105239016485717986429311009794561547412337105304007565538258688999948852136472139023311914176499000942937591528047308406722656541669823206220189774681693674803092848033325657155370054583519825641311312638559021287592886408987674708491262746742655801201274664511678123019168020652492413099149063282886496461603938148294789449972037654970572811350545517061482104446870696383907489540203444011650296813983953225333716688632620298582255221683359304402369759508105545767321577532242541378630764631328672170594641653016163013982814486085969954354043013385719423522700630569266356813992542348036312036119925150771591466014509955095322753982444840783054163135008798574739992788302919555471564815035155851991019655171035091542848819654088331789050989281708861924852729739882872390051882483146063661902266502191034340543028616727652647639579331508019149686735507652655615621262839742666955063160090334931902897711009902479371040702673587234722090589552804397030948791933173380651944718847968907082882793356177449121408168059509713429163694690737688248624456654238059221644540464416232279473945770056470775957062077744979167120750934543152098335524974490262840721910624046510552212354446611791929582073705498156551446610001192572954297681607524171149925559513820103771253597480238016474785919463856793130896260391087579155422657343357716664546425824284009759954652606040900548030215519807197451415808424432635482494101538725366100089704817507467914161193923535802784661550781381514718197886757460817348459950459259109621432281179599488047222200182493474853696607507679938558315512196058276915979670393259197963749580116776549282679895903692009731771018021275642009825116719773049898198459252734547946294056056689824975608241418004074602497852870273636584468371910403372124537641793674660179581850154203236044530768328642097239208610464286509347631758983799231549748149258693407822337026191258297135659041448494607052641085367306365673191419478633930065768335082723536015273188590759491103888285896645146415167103895026689505645555038060609008811161866346859875649098317300183438881546934556371004912752000112427860758689630677625998721329399594444113941513163761953415018241318287467387921619132180199052540433934850989783208598373249846145711686659114470528895059624295298735689497382802420244591745964349730684091450357883929266993811598169310262585315557043673207905660977461763114727146530116311196440827986297410589215585533466882139621852173514728305646851309810707971891834331679132891213112006478605439431616566473900035429703118178943878274879122140666668877195100990460475084777770105581405635320246019517662799467695737491911526218846189592814311291269155916944308775310026701624880137652463020680004470345926798117941314291025365773190712266622496436939185884692715101577798743470922627543946126286775127394796105937668805704237778426840512105297257396267656012027543746837274757286645119117967980853668698646979560804159091222876770966023055069341883690514795962268603902601410398135028463401241519601653410818960361014945181555287912301326808390169640252013938631606674531177965101827050043437522490391897519408376821180916751277842232771655218435474088588612368290997876523265874296410901151475116608898838379876089691628392904576710948903389301065650161869478414197862739032644824611057234381578472894080048456670067467201819089829795774382658344563323763545552151429860700917006269208826901699964639562731314253848162917977112673907966411657337974561149695592702328756640740179060857999659663363033207840982761833914326607161915792072771560689521911111885139001149050828220395015117864431451800632363386282078858030474834711326583753565923978467727266120078690390471351919031619055566938809441658836003191217700327695984992137326146582657486795182351539685766235218383548253038882199206941449163065958434554924211699332470437653330876857437274026658154605607733813620779220578764845876086300346256650249929765411300675651168452485348069322710608843356014815414104342375121798527860264596661258397252519133458399209907245689332669430918562293415707903732284283332659137699959667731545267196644374096062689936559522523888298016029047055458731181770470338034606739273741020304341872744320125298891628759512973201004733320678551266812086636647578291343403175874371681772391932261073659427538881884328770517670299249011959966743230027760871596775865553192690540963861794881546421805874235521081707186194579053830349093125794500356324335679330715395544543583909612531487405434818312484775903384212138229284544188429417217641016487672240514592852439407855341358271157400438834051071209473629980402749891753331975932814870335841230163758619431808846897691354773009333024060730480013679851991080886135126565303424944330729673204297021951117748652379211196950594450595838265257397575099905769995564937794759358208706180304178603064487148565908704853963636979557987246950119646960219703937532107982153935878042243475595764573395262622799319848622028897343624266563772322840223408093975824558467374883800880914453703267452889968780538367803112957695983571464449593168404202740782602557890838760764177959445188465980866316410027215345987353616798988691889652747215419114349005666946030618514099596379628950138628019568353032124803471998653315615937735911695639012556532284600393767958099425279068201849178728896473710682122610895500590150336497884471365461080299440004123875362444961955704152873185633427667613628061389906528925346828087607087647848504766237568859677275113967023423389111282388759811278366053676945331061142205289933503748363086817284844091838630170012708730372162531668954374047150952241635649008935575316058424687394459658944615800277996523944013274163709357766874330038159039699241920622358384635840249306627950756476281265804749554456773651990933452362467957449641068054461633612083950572550923304867075842938671381429815488027124656733198369096066358556172902585543234173537991510764878815020293782793607739811236592053150107629455359961663284498482570098010891897937567703798383942476069662586251063097161950216582676843665538266492130958679523901008327496426080396069269504188131736750091219364145934565337260830397928468521552850457082729514802310030235664384786590134675577411372847544135634470996575961905395338699464105420510244058349175540958503880805458174008998873805553942731742750559038491461453311919139453913123344917518106515116713801827569637491531801187318036959723641972023847636571898508568483756337754529675812474787681185843481548145930649066818234312517477450361351211425874323774200867336090591003735343284201896232679131842685023120033385064778584605823659555292588459105677926108100269401252355777976395532764675529371206986710201456005624241664376523013627169434140421555684639093791806829105907847141675908229235291555664803572163595924941285706816766430534777104602274119984724542658760768035675273574993897371991870996482561149681541564380695458492693026390126000180317082908760999226511219551414207089100590076115461620683619285733947236335469584511731784084209141159456610321554824000333195178531436715373282892102436478974078259088905533327276320324228821051012940456646768358966196636148179859714185886905037917755855033565308400475288823616475006536657485003258389458811015616000573971014589567798298383200339968030444787094496774675230482007113670958910735920893453024371302415251357995753056039695990238876987504937825584702715273149245020995869990193792069570606926777143795202217400543246549177695671482766822872792510947739374061370021711611322513580672532164002764747134154310929299362660324191181479184566668541552703322428189554301277357958606812012448810490981254923608649351439492337804688407663886077575588987327604954547114996827998163290953765381699825691088763682296429200701426719440830427974288335845333010512347499806999910788798305892596715050354365171033708006182689287565838901412341698198944920650683582984968863933476577369663003118644529987434683980595185335004042202527588114074787079632580824832766362807868161848011558582944508231782088028201179161364645208007644766248551100673767543122596249835844500609069569544355271097801090435261545021193306401204431256435804174074966668794437545704810771920361181112204025476655150784406500071272335885760699822687158572069435058194140022555551305160847225287815806220350429621903900895245104583575675406309051447323613628272532950745736043480894235935045026365511438023571735007870254915896471464377969732829211306665162390044059795737626941100060117411531061267284670196387873928112547557889843036240177309260316959304464309069773728909615454771365270404040411846409484964868539972525289508109990337296404522837707276933783552838956874375152073133293745359762877146984622295097535582527488148741175468795554856165014503273475791698889190133005469457044843914406944211538833155179172632557249207519407963644412665275083659175261182156611845186572987651718453718737434714180585134302368876663578018355546087833070310021572191753622172050478149330796605584322234025648052660135853543144110664272868528208714502627496904236057104563070153971294032185618619880065695488919529412412523043145068625069460282159572381068369160786573953814060366751888075279970071596606686761773373126665697693219500833056068707177997153342454658330854803718352756732531712058235564507520352051608118685967519577991506254229421579362986103803519212781731487207339345562046476839240057541273266867190562684453486370368844236799926672603633071368432052930087278561080120289823207646867356490303043842026061692061256527253986083104537955729725904392953518774813488890003355708998867271554476320603311902745149410463149145541858729936910266034466054290703910766147120656817344055683949712803791526377621328135191357213481066805596520759940950182876229171617536997821688916934447454361522681751933975065157131960958865753429994839558210144243194500886710534442971612307667365018798111366640206962258300863491995278736891543773179544864882394964418797722074055001934454973774744968996627185161174043765244087223241173119275321202451095727878495237284571751159467233478418372581100035192058963123125402301057074011465258502960645402424975985966304508911270456342608403185571108882877205029891056959502224674586997388115478763735391635389320298835831117361314078989268286127702767547981338991874400032033912333343787776334515321372950035570142211151057381172048815465935206818114668427922483882176075519218013118984058933536213973386682831485872698100235475819519702525034543482335041669913963172506855185355587468781757973238477228022233312416970071332298973863127463361929701421111985442973295657026110390863748146247508233589559684398918133376596781161137042943475646279302774303751015796334761943936556843956553131662612070166880499562847206211588846745338622391163853370341388969900560414809454058901188824878941940679584554999254158113727802998829859173072597765863410958149472392963680776877254353573573677806028697780824832956425298773983826362973789260916383499226323995574413023666883100625620656257571076976971342570094793209389623427194719697488740791289597321143340029836758166112435483506137549021340100843177202748045473816419021446424852740465433294339019411693405519576830012260092263363027832886903404136065164187610104884651790435645796762598142243513384778945127520441247968457458756918277551851293981375602775091312558084916295401015891390652387771475846197261076721866310878972960567648131260329278371339069341037032535183546036585535001275151410670241786841026611208420147974131433915488703432122289029183818088830186379021189480657268436792480324681027990110189167330839654948652548471849514080096350129966382216004413559525671232830807011005212328860718170240186063757620814718355286559353455301398293871584452641463835347369498652503189740370799311595063895377969601723448780934893139226326437698768260320049076686197269018202748175850806433716399128451501963360535867693667104813210408051828548673203255688798326284510389131122230692447203243109226479202027631346962299242363416916533509142773680325342511281466443654112635050034050349275603892797865071526637747453215970859797571553925915402999112073024740264349889582824823733062758423958173975532241208216893224803212379493935079603027596089319293803793160660032927525025753922236793291405260758395709882391170599584476800814092646652529546566883139871115982142782242196967095991677518868341910466329785180477070214818261324344243828989820334330419898837616170313389539107395345302925246906788141716420083290981857776660095954564245583636260752482789765000944876104193061476762760997364488084922181645798864038561545536484456699528788269970600250996107109261122846887168531981594854394801023885727730613264176831451040569597621693254003364547828946895064784006150828324389869427865099514165284381479967604924763780526490915595566775277486893509065607239366119299559556091487651329052229212601890575971906024740262125769420909511568345833213591730785414280406120232117181776575326119868225121256343201652630871236843978576867103299794959521809516146090000614614260427970381692268347097411572533273114105570662869166459543668450293263268871105738591980236827235795008960423336687558814272430636434727955679218795257585827985032747701692430151903413402941815441839154813055965585087910550337511063821236763175389934496904223963616019071143690322316687520345248286648531884453406934987811257280380805709730787334074316782548052566524084478578831708077726627031042652338457226998097700996174269303601957857989659586032227268911127573364070152451757452240828515618471875371977064007558034990864317883007706450578467737511592336698657587783856794774753897552497012705334618438293359447366329124581464610323931584619515891787596692109848578784142613244747417480068245724472155529325887512829068120413990791497289496413343331281048632713439723714718365973669325809077940279504545565731868724758623218964688342231655675402266641045319029759268463135421164611968849418124969793319966354932255796439409293066876590271048524196060351187126614331204338054608069028717146397896556394803076549615081508473112236713745271484200509998206358188947338822463913823647726052988751644448864126366914879286028322587819668740190193891097167221264986916371566015475404672812645145359034526426943635552811280203648037126749059138630543198028218805883482539472835370918634117609984084755313270228231824189005649569015246045437432260478059941137572334868085868395475907431252921131118852747468381943686375982086741915917673773576764834816305760379039564170818401271707974290249220920531216094870293796606741299541246264864956793683755687863216373509630795188297424125976468728465259187177128093612561349139458431081887505850890288788158636271178973891391828705470799894318642521660106372966293512037057233385245476101762567920938655641407604872054367736933116178370445861838532258173936226496459509155318729224999045652003019343053283405305695221174941854716647883538002139629569278049467528341570366159648551842552779209875622292410217529261662326215565895655110139725565215551503337301761596144737290746320784053118927211425107173026568462179461538907437838013137687573024442021739589327217157800594433857916884210059221500283034859317971140155655418709814338745902676066213417990969218038450910951684258696645694578614792444436086045893160869811800883001802190027095348691592766942833119973015566022959760047005470538736892762194860165502274862544120294084516872736240857930588545954464442223144054338989304798672996771770675682107025954196720110270094678057128988974154863518482793440145235007620561130316727803487609175329071479932620212194600812314532359697057367023055142671920771697602135466509452520048241297201129633622865686609299348975076803363990713858966039065949740688986379346377208044780515954997081807144734877500728533255986491503606413133023850508730374611032970823983533654891367474399579592402968710934415032180724193358196185042484686903340616210770524233692408206560844917240291867466658917408031370527313366614259593465908180973620430698903597624290697888296055822209989289257377152814939667511458153474546735826443207363412993105170356098989385863262511373009896004331686526491984199457561024357780897696089884592407139103513314221852664218029619224674874690865659066563542985592039693401180397984090898928569821064001230758665831471825511502959067146431805721758085255033330378923148939054384237751992700380468724700440681522738609612283618385893339040922954107883631861094932736704733993937378244246643612371416147290939970422120955932985270896905850193185976850745824907153382933088710833509137063626028787098435930592014913733621212174608680911458577548003234391446001174233758586811959735113876850897472713888412645088942830191787077983419384648285196005033991952742702140163991253536089573365837281507092362573242629538184027880317869114934661670115715518807050824915999267404925231163654127666599262023061332040502309967668056850007381010085458430213401985434107179608621945731388273213167773434750600247570276717382924671808479053988740343461321349969697771223160494401866767995248771107627314626526287459801247625438281665881048237134371053526095007821859216971717193666663753805761438381178090045546901024650043019064341040751870725417688470871508541918476762111199041593869850131398514377907319530029252365250167663217398247056082504137078919781360032700178186654893865569550752637872853600325813529602248295600911125577158305019901323151942600580723818893247949989784092483372545618603714974623618907367976601929970078808665515397553983328752802305138274681068791521512728519595950487664002577397424070700965384248283638010403259339029846815806024875081533315594392847839489929372978615261949323380042026638328627206245342281728753975262590558785962950912349235686424780220535029101888819278065957900056983052188059837824297004609214127090568507504437659847100958389335869459971869714019265592471047872159049803618634965476826878796579850819465719254120018889311197496272948641588958602730065961724189336302848544385882769620691682394157897729241318632644341552016486981284964539736201852857097136383220376972927613758520386154787029967113805050490006250976792744961118419827605693118198763061633241797498885902451067844945943097307631339162528721559827630357298872910397294213064563573038826587756856222347906616277130822772757122312224987138437845681244116929454827611857257090348075297031608400431978304719217970577347908047193697830681679558338431643070185129594380644034086385324135181258819541924425931754303378877941911983804767282483312818514883264895024771602311587428458781918951871943459874149317606825403905328482007954097022616476055299649368242473868905552984215520408836880392247544893110164459966812690878282305938361799507557283917666892994345085506848758025017677801623356262009688191785709176192029234472345497030964341722544061734035865638918591945228583726488555196012434793323228303144972595258469235515508670778399161437675957520008708074480514216433153308041183788144491343011829338024773762990939952083674759281648142123477452630164279406023344821757473001155628559887463189028408760940094246745708795422377673890688379091226170415218994655357677992218029763050292197025909010589205177375035051217233735095612275344091113267904717309752066810281360779091400768461866469446597363756876038669673916976309789053155251724112514682306965976872275266387686817081721880986887393483215218755596356660702008515019455806129387852585957872725544434402867337318344999332054367223999013007130966399166150943675608103804171141456826316284022061971753628876711420802281874806956021896268297196020832750523206529625920920617225334517457445151041288963730253375561979194605002700646587015639103459970664565068370434911298278260085621611719002792030307639583808264828109472749541317662623149658072220716908403606958101033356021746609886381620135290773570521672525807617451733721722846306758336523011908983467044587355030219691864831249431259834106056436854449698734394735299058680829576246712778277665112674392552096756751995330163284866986330131088581120501358982627154926805313619697338179518090867057042852515051787593157985798290983124890276262370833599648057082347556976175903172424674950432577513714425078641705246174220398270898809056456790070347418355315720062634618337211855595643815358253713110959209358375753557248845572822468342234539025829564007703853658393514009128496534011937717146937852197636633089988642152308419758347112332493487128435690551333264448762338790562955263998469526052535822636783327187847896350219154762993294133913813007585098589669735706821569173985085290738316747078239113373935378352070356295397596273490279619353515667798425486693763442415248886593350714197321452107761251202036828339304125655546640705528731039458042980090564447106095395379014696283446237387072814024645005338126822754925636706958377559873759776556889264304076414222116305784127162682563045163559603032476415258072519983497278995936892723824346616004776010471530871741926457247478099698486543668889043489439150035406168110730551369181205017495970011791616211995586063296644913677455900927368853131495848484860323282872538260324824403304109636985878639412934535134141331328259166827905563730947658963256261494347284144830828229002467366731682507858162964244781496006995858109631335446384952251295466195564449119256499400105331287654380289409327865147948933679904883832363179651137411619702374323984309202526092673161411982618594113230612887041821260474322025700746690447994389629650056175430709903407166375083330746605076831683701155707885206671284647938123074758508543998334452774989929072902280084812342827468639364089929457676364951754378202523938638770214373904901844499106976606967965737750350888814192369463712170143890817225407648741994544949759043570734799768463836204722935282892538655030555084150601715080445454778829346283098605506965975865295609729874126624625534121015331984607124065781321188075115333701996581169747934624668676096437844913519608395195893892082562809630197717228416930532964904471662408288956569812112607778020461295908082714072397001201633664901725703099409538443610349226375319698221896121326506844999647867633712714789684939257398432627244185467300918063443486437871500893921906626353882427083271372312702914932949291587837720058290763319430320481060941162304707018294777145568184577695006023106616919477876691939820634773136247894443759616559657950794058866496800536051899119840530132443837019219307866141886572993087692467510362776942218371903248167083094265937720520526651361816138898935622393917579927594605300848598923592874945951200047218761510010843591190391824983722340078614130577736503976559980646892560622707773208890360604002399580232456673770609101403787511024234331438340533554335071050683578702785481359442848260064155942483163071599816384378832027904669354974703542846323175485036796023006920857076555221204149941788383850423403194344008540349988674043949040075746150832052666400607573674094098725461043178805570030473333043438771932362698184828900993226198618728083935780829088367529415921451314417751654697009231556002201757924457762265413953897610434156876899437460558471832838167052601362101136922154476364859459138652139636542391488474553498423015949576858541822575749249581445497530259441630995041669411585955505274115943828036477477313500612882369818751412383910745133563274968557115807401454281937282209286218660364667155572821261892434593883303282662656603749551807456636618674782696097947664880241507263550365973634962307586544758165709929911787691125850963938016304676934226904984765011254952875041981668530196701618972444628553928841630777444587967454468712539672003639454998080260324832031207009002431062418013871207638269662808814795391733279164157636074190442038934366563796559852428689260866330210368070800179815689735099791132939452108411865852923121233398114597825719065591229338653183474298903519406595059705811568516855185789121835355330694161827589794460209694964784146450017554844308871418793092275312121877257579712897040669876728617581887554727726277528535015859947556704037176089921685548422048302937053376716655096848920667055310650108629735555760110527241128781366024399220218582172107428400850436141136615435304792483512560123832921389722022490982003770074144074408593886001981569447161806634883147834886632196789750896653756342326053863168173080996990809309898112494332098514741250329114769930157275438703456855404210910617701643183839230275325077524250760133555532237749737251707033844849312135593272014186265125664158989126213599451801283685689257557562581010242312759457776652076302797822695597778502683862210685342682539286705426214558614370995830859999694033983479045635391627516029776736624012801764477181261079768968343373586135050434741191376343898068075122171234355007177216175535117237802482989900821160454710716240966291491103603136528466563337085694655695835643122225093564472319324457926511147835395075178297375794383049530520348598667359222101478798874632056631439265798306694168221528147144807960222373805237530315166801119361937761775478157294539691867641481965815886829843077329107113026280333640646986504772576082650718844465992924433999590271043551704550338782606608885680212114006907941404653802269472661387473683882888538619680047971755460447616511246850488473385154373357600706626120882629180062190015430147220904249823359204983060021671348411488856356112932086470755304639206961860219586966467313318739360955138465100752053230623723498361809780816261101124261712216504460212920216999840355473002224027685742688679153237641820757913775408414662759096396524736774874721114755530816051841053440001327528526872131421402717259006632321704763472908033062137591586143202546224337804067483160232235586167864156158825228638440196664975465655539591035360414060074884635879371527074067615156582623099931794002744157846077067305657846223007281793997380748351783992807895366219043807607203628102220252462270217491826179013868195931383822197415636309098839739381471925683250210137336935555900614917097191438794308091357037765639833307773022386149897796731110456366064466661660376380305408673472878465500169896572104785668267570084369908877255000607853653311069182531881781623842379204418785186660128573047246140454121527919888068806175552201322359696978139559715787109013258431566000934895404031003156341186493647043872040875884289533352857508095326017489839748924251149861978068820248225080633370494049441988011217537429283109812510456913195042149113235457722218181649366356777189583804082646430047576284328886452132496943399450448102651285260246492702648313262710401225716604628155265516501930893009664357371474701287920648112893728876392070932639517421501582863145949988577633584768236669510042135228247189451321951059015191482315147268466864604926716294914617588029940280597948160861792169093237859401497797848662880166107547928333531743700843255360128276968013746112580060799140699133710760158919503845529494879365131556642351867033789450426598960100509183770192463059433465106554574067200516609501390100717365636326613732529732808123159130455713247676202130306268078955679169891397250490482380081076425438099052749739206990706182132438060778857685872145543285162758369291376343939441225216792049038328345936024436767491197498395062130243011233542641463562118354291975889767867400100172365173209602589603990274441345685576708726713258256011509440870713508134135941155642016084967519713217196938552049932367213688311356073098327073343883966940932194507319048493619792216227437332586016350739805712779401672136507853097414286325638618735409925037429482722655704784081580312389817027235069519171762077386586483745122874968493267291619483901360358967661794666252025767134560142399013538696089838083013765611856143029178478788017246276679249702769436916066464320165774115355880183660590307090678468800343626112403670277766370768301538110232746931767817654868998299621316934680689341272198567177356606850307330977038925388794204031897300392518130796391267115259064796010791297301642205843875465076112790187401994215705650301444965443402629491860195576745874242284517420914557230280041830813776604238130176754935789984707182493713954030500566515762348424061853639974068857061738840459162050436331023428391563615200454729010585734531574895488750245959700977060856938717732989659236416338380063190807882659369394552582707058797189335097740863886493044339347882496807969355867088245207432944260443382612397974372075699876407367708192743328406568518613811897685696900976122169493589388864558289277283068063395412452452633843014531061100909349858997306702464512445986580073051015726157759025876526697672419863267674571446806480138664573848915882111827318997441283799574963548041275954592315011801666510355834595825076342292212354194267337157106569606880278889025392545378743280256532557125679457320362745020712332576120764243380547014600865970621352325840300697953114663175308065856953309110971660788024260613338263033072873286628422779549444597095419432681275955025944589557911626604713746669965681525321502670531599325371399121071188580729491228203475641594054723379828663730633889802952111050248617471521240261622353870178056144453515460955472746202539126465137792765453557472036240012525797509197159194494962800981035863774159352865502166772710909620481330684166993627921030703759803247134148869508639096664530518598406040207714993778629376777473577350920472944364716567755559344779073596395307987492846270433737672933441336162012708662576658371541976999755079878959258417034236217337708081328753245563770595309933708346333050414498479845883638912934927984952719733515774640228611077391595323030463383058315018966004229164913334636920919965738023529564328744952977853627147626967723686327640921508350769353690981098359416469680736271678181421226465294869165190689424361586507688867722810109307387318281800567032337669938548701943140921806937266690116982651506084625805831332895473572254952643761041249184413317053070153779094411323210435913188474339370207710174506139259098812904440244296366244271268715935426504953191451653216392061189770082563326035071480209365385106032352074933130333566600549021098979977720168401603832718225872514070776197219367156998382020484796890212263452352045296789000550028496630942708663974926070451747601873567466708729069251699614436730800584261435403738139146552243417939420137710500857275330762524166012614619796363686803711257588501457469061191211491011769269788431116102975338627297626265273280982599060946519248532427855450184813447131467527717157615895863978130857619036541287871700453748577265626784301123854381764342563534318104335264931036817520434508044997816479149832672591099481933118428520296467063890205130043853016591543248064529433140695157959076203191093513821096154426578018683719715597259135162589945654228361276217875719084333232129904607091072023975663080097204292458451029473202349773003511391033005128232440711993850303963576603883965456548077224526419046161811902465268463997003266762260774466180939299949490193680000146698194381116445617136971442096531481381875003686997268300687424455779866675829932023644802685810494941409195117179919891423555422434595298515014558661955149459942534337678024713738031930572662772258183629603849293822754059833542136146919344411997553949330901572148517016359304444280232977142771039217403717283988385865436622171205884218731849992082361987494002509501249443767470886573262706784054027357405676347560047102018602262448952794865183767565741907344420090545708496501604642497965298802130212834449013183455836409616462494703677558986264426815806222072426425713848418157046246878723782653037785267676482120401062733084324132998498777883211976485279354025729032999189087689036252436917538366231740334804208680805863675491785180418081343401727275059996091127821036385715948216726340323809264645495549281354126340295715789486025158565587542051494558699070315334703419546715739237288431064005752660457154576830308914995247663778037590841291123550374146698022800694667054977270245742170536850530754039424902065228066017296125802526720009819101531786619465341954824701930403473993916475979377152400063835139632980537238320865172301673791738180853494095120406163037170276927129832748835272230954587186245688704395910506591511853602967865633930126162464143896667776480270531394185959436595977456697635300380333873726502010543554303719507740289394031009918003943497453420449384420205803471209067681269132930105468435104879657093457394232262148918098608408213397024234666600628022094823758244664426068925826054351096115068132444858708465245009767454253621337015873803312711977483506590480536484907180712613556291732217986684732182878077209994039263217598218420434358582058767319244803704408241454249482777632764209055047353840406774220846573335752750598418221134107132286262320636832145746422292650684481219224769490716608698139510214706204413578912116713429440756384747013819144873120258174942356866873370153504738758410945234587968385834574111020175691552755390427359271058915449642641723635292842212207214404097378302038388074368056692417918993820016732479984628598189970718400133210313188011536003393057928959297764256048942034456470943108372613822071117060602662614421976434877505389050612176124924597568241552480373639304407431651965699138153672155056062692134187048288850236279280524637770670909373666511578327586909873610895397124002453559993348446339383359196553279965789278272301820300170332738329386589485300130352224562878064224148191084552613716185406478294423117041829012908361141446204899097446281365763883849202529388429390286752176277808529540793666940760844870677776639868128433559036274374511755401386758845836263055521666315668586925974597013347999593874732066545635378038997713516944730440573492700987363229700750461520272601727150300946038039525669755765849491017437588930538553300032224126510661878886478380750118875572995379581103353500064268024403203061071998821073424490960468706568013638196299306377358841228114407143360762795643035153262070865538437823382849204711450120677688044537451194284723277049867786515035852475914413986369991180341310497518252986795511425457186577573370109904707102217916722171630837184028690976700981212779075447668495456525519142751799474587337816026553944569217759216562425236775690304720942115674744328494684555918122774168168508157172551410963393221596459274704356332525166742981086953405088657600542018515701590017533296988909586035699902510723750829079641475036451159857381812909538661660404528909216878768537233620194744188217770729965108873666105094675020416465069918202899689400957093872560882188259510901406735060859674595388180730531784753775136082107078554828201310737605964790669836048532939990847803140562144330607038139151324151726686633068627297774465801527688365141898741776857569351919910807776354163495463967680823154706747912670425502788901548637628341997449031946209738050988840584390277486857911101110652058921431617265880271794700832185837971799991391374324076897049057316073397839799735059013382450028229343870558525436383217895877076388289059243271938639696189822038220117444292746438177559286164124226067890068254325051791476109338221279977804752477584764165964731228925897106974300064900131826935684737150007108356497474311972865187562711828550793218900052212083611568372960022555629696821368884910286626490284943041773471020202266413914699434578706899884224042654297321149803299574670051984009491458272594728517677228201296815169288482791257004937118585808190594630717394577950057300433538988335440575704960578118376205887892003851629828825847720976021277613931495724786763197784369038511102042222968400774908260392972196289749901470122390448863988043189538987404218784144373834704933810481747155509405595053091850339795442967782221021207827498901959503066153714988773405988434777327262956577990633007550383226507395132155988924494610241578810497391043387660932436530618501675093729060548153184826517408922528746542261995469225706834942714978305862274822881609009489465792072586187585445030031866811091389337358117378546301259236475699970925618923003040436810512466474639857742113579515174230945651654066687248707125408066014486475986720960891017470118596602400944740298142009233930357362212962649047649395683286071005776101651881255429216767484792128359493060529777801567621325713464641749602831627000333111704323091108736777158735998985646207334713718337040120150233128971394892722372429392455522808963998976822071638758171607249924684387777065064064814044941001407463447127844103471147156937250792144226071237368522926136211650689328308594893179769743834724628137406438404431984272900379261942472509140014736188692654633589176949428465245227195819666423110858798264149132314062726969020438195618730206487615314892096175298888291351765889128175284177987870207828755622351852608829059832361663690909306962394748414482387612173833490373399523316657523472203560037092709887378881829463262717348917754616540206288349245881987343998497271908553814308849727944222637910646130400015193917343840893041936257759852451146256823242415396702882232307946213592629378149448376822496440473047719341539171281450263662310042387413057274877560034192860867479189092554429433723999555934627931108089691266572411691647434796284673995001756715147989160876081247749725519731622295707066622174134940665066265504379934479249789359539515515095431272827155000922610305300638754985835870860139240431011223419224663511066294679048365176070708384925119715018883869588596304637267801432044139282084906693096347986376785270937969955023288304717939579343842180806244710037314213062097206472989825772347204481052918460447382376579155263956281022032500352134938766393995255854117431966295261630842771714076460293993738942313164125582222587957833559682106541312236740300424676195946924389604473473087690908452384997600601076473429254981439203241556667007208662489224609183123771292426331267501265926893611700872995502031282491361900388662591407565614461143094964532378672166794456034286203300779410789554150918442603549897362299191165929703791655516833818875591684817640971303352953201617619633146843558205809976858427662848389058571610846792826359250659539129610475169788753155886615925943772222088457856422397041955817087120671793220331425857557068366951441071851201048919107185008929394074458911813506756771486821053402258343730047481821729200460081262396983235368784314464451224251300801691359259473371490824600431922702699993405924063238783752121142865897961171303541422715018873883289218052573107367626714262270061911657570950263015393343199278711949760666452643885335712026186531501537828255933263308605596837733140938289880771134110469966072166833624967809777857151981576267192777481765074480245729282773906009437582077557666565783380624696510737943136841951901275298012671625201616608496937391722159559599075320509249204428617139749717670243692704817442354199596904089473991205458020895144639456657703300654029480405388450006911796906649550749986264026808657280528762231549216378848882224320842711310722915165395728984034527405951094793876041953131998659007626096080787629962388289950908887617752908443529574822506446486794873006442218275024257229779263467629705468286680196665128056388471872107070852323235253095551684637063316879259414645660129868028588141031266817472783548100447541796699858528546353703644824161989104340499647537258258201314808515717527584593092787812857621676237943049347123876226186863686000746143796347372660745285626729155075678561351242108707600985968201054569654991353091892323872609323842313988836960414827933504851951880110057073691425669127162027854784318657731603457361074620359557782758419749646067634445007990910244559028334241342389980208171578602892224480159774675117556020594794985836381903426858589655838687485227697186409507302669827240291345626373251807326249246477627424843805871265145013058795956435722276353394768230829856887626982495476690626880971257157267234138553392105360917916328339017395289559960174812891001416065087506457780162971944538397691782117589924622184443895695165423371623153572460633961174260438065927268803925985280985339350685188505681771939084636191122957142140780484255418571282396493991802314022697848550334468907924953378049251332469224348923757673221743547139917812691987975496172244733003115967363788856746858989467662084426654107845659470983118458590622177766209876660426009917327514340465978480995469379577819741617645425157273867732470796851883335807264624229033750376208104176300962522673828045454890720054899207430943494033719585048389454424565383520312523769453063066948731948113558034245810153220434191797804652619421014804240044769684603097888514182066044267177830769271092746179463475137892536637876133769516064303219972163021561012954203293675802362243425537577866676591903707996876558731199819983293834026916407184923956705349262783380699696693559493369862338654623491610772944547707127310752044534306227183922066257458294105824465430726834602147440553769378981753746366275513927812715617756573110012683246030187528160220660092922370798358656838988772725694267969454209097811296079278920324011805145511909281873972197110351874464146353708321701864904092282784933589466778546074087188304524650067625051246552440310552932890077201077160805472283165984646099376692320557540185673443046023320043290919607425171610203458253666021707917494095324458039988080329633325294551227713886253571324625084871274076120395110330809980064657430649578382824698843554808740474497948110772820782413387981217139791111341167654583525238614614796331852484682816586441505759078867550292899505135660811551836942979717058049743397883096984134682538503640339029912153482601520278787269075613028352606347513735439841670106576221378597480766511837553923978236207221834445391020749596105837564409989451731040643952440776280394506883077901420077135506416754598328812571582854599346402675873746244411162772216526359505333469091212490970170039014513954019281147149781622266170535653937011919180279390953472394271107025306150999425086416643557899627382600887988732383757454602339435458577374586032443607222106466560885720325310830974255367002541869124292884938161325097068942291766053758367413290588574326520215170100795407456705685564728915293565755576531051101084618499224940904449209667717207427278593239834136430570088718444173566585755114528395712534295288857868424936048765030874791890440176518342503834114757521591399227830960225952217626793230886602423145042377108552244490841203948434613953412219226258122162264129651655950245705416676282833320603710352585965069002510994101591339719390318270799531179566696349780498392281784825640812521844847380914082342408786181254778215089110197432351554010550741476369369782695235355345381007516786985144515947362797434088232146835443383175386296959085167040664122301559535455659283401396599676512619646190463958698022063762107505908391000255496092196577634839414352343933146295001904962577499672547358884504970233516435766525601726985974318323767853008018487963565805302640676609246839933390901376805643464953899375141313204684657553605720724738340611673982985490352781367990052841781731131621559157398661123972831030046483128445422630712802714328516387074963255786087620670768054870100483363949702625338763223161533928299003512364630976965265705358368384076166255685640803886530298516782286881100380414517442858040582580346218335682820511795312270667039517892840874442863372588025352666866637454738642666046903481857887058139788284188664271843844108902647596475123324798457581323982102540823477117836469362186911141350210825830787354223982748384061669628065945208969276436605087046832629455401605933695458014049212372814190706589293782663683367115556492663867727991431293928124653467280336583974326448158755383126736188121381263400131921177675485227298154359207627426511145762552239129817561044220863306175063436605039028326450973620705687033700553280666150623733264371040738058617459011271498042155584366049054219022512163018998182741468455791891304188405566079091334450199366285354035219601798566500403953607040266875117833391019287183919862365113634596497632255029203543718269555390642642913487881236361499029528493495054799349333460880771100246667791218362697058229984406505497094834279245687127092044349555471938563089275624819315156405093107799296086282697089073571971495577411405034477785588303434817945359173053570688231560961521311623666056441289439212293475579075812154939144540105396032145953659140296226650714223224737897470415371517635389195503422824633149124737431877094599227195250777130165513247586088616957913850086615627587965384213820553989511062892240073863170337144518970364271570086989350409190461284721798558145796870687788499740152375045772863107281256614012310421874061315971074529030926338930605318803969526903181333909894215574090798326358857001558310186278024744339715891793526991667102470980406229865070664113070817211036442600625634076580383197817362957874368814351066790006672093045552370471236344052392796303335407786268178004205133441201469974568859179746857956737905211165628543735713188601205252041647203853709928811343117256308998947123820989138052910240360168985356457414027738950259114627732391115824855229757719517101529224755919784604928350857936934686144594572980323358280500190824456206505447919121222113283882471869429808965754014830009801563105243472863435315964583114702826007191359807151915944852649241401153391626431888491176117235624957062284462030414133256688582865589572764503953410940269609367143814957271596135370237806286029821141785685984171823913593835919486591399946479850625442259844336585417413211940309996064705325772681840398230087431247663227700252176122293221787106742086766122624330332996654218469435420563409647849879053152948604723187695307821328207623134628034452903870416726051709796000618227342420126515429508042152939839772177394998489590039574673748237586790665139141355221502973305446243697104556740362288438167507386667693974078255875140258690351084599337342189710614866802821579399135007335367627535884665737971152891671732843782074441360296250077622698635575631032604894544781179108045056598668168860484776353239690504093271031293043630371010855296908309180775379129945987017956453192155604826533501270075218357085273035791743414522392065111723604896327255322149545716037692991553207804520744272692709424762331323092214423617175092011607217552021963140957927887799942845693795621262996638386734334738969081001821446896113808525158858421440494305088646010203021041212091484906024020367275851037950168035497014876694453471279410238259876574132455086605775699487752193027910274018993387483008254469106458790154331808850583671990859950315361998674435788278551778283397676063097631992218928808393086816365278074241203327569361111996110680974896925596187623423799562133947707814841010300722033398540002420314408027133028206768274021784730878040576457644336403638854599701399381950829227501037591206048193101098883466020817688628594297402636094014928910882878121935394312318183597883347898823909351098005039616145350990828565043565294226634373882211493242111312343319270429069650213412465897570735168382568385686593931342624739716563800950552401278886630812164969174425680261294554011146324601150220739788345811822521716852890298236791413434654370620515651963157747525295375068806920399461691464746203083079682419290436503870444971807311308483786658544502860036278238464027568371081443991076601816143559813278640531959939008084235561614932836272211017024546188374776505239657353940697469554432354394568586216481769232649500158227714742440864398191188817305018600436368807756415034943391575143661432341829631495501462512013110699487869934748576140839530638743260721521104145326557974616732041064543842459035478094355472961372994203860374253989787421739363471240185965353990436584368328785254235890742070927582451406980591162837141705688875440994109465028540812433058200707527290211413249831235550081420681403122278608703191253515485095414945689096730177108562656686852652809469977810535586120100301084101508560847718260179078123259492905960821415912204952862831610623357324896923203418345042886374118633247461403229904454712773719685778045486600501132543750557377109612102197188469711156896286395990950265464508693259345891756530790661990399279357163063986666854948418737419664942055452695141388192423068710150992669064219468446010631922866799794580688406777949599035613948490287047551727043292343307556872782026316871690869962181013120217120929522772592677382300751672573645648197461183722411383964747897244562717671478569036740738569148811779969931631661066337196030271059938912290933426136249611637864422896095439620645709899526476401456573440607992516717503495750270252840632115149319454574492142916114600744067053570546424293020033498272259038423037712162208345918229666824777912233278120802597741082100483506559197523003341069383790368005548206888800135148906526270293065830175041241276763725108782893002634800669896572323344024976770346587866006616822826025171238829767235668383157347604780804374717998319461045295365551003662401373492015329711390696162055798557800206142302209027942826084427728928837928271235782233739833684658978318608681922110090563752487294443763448318983603661508407386559908270441092712632799177244432357979366064981489081413257141953459557904599483970207312414154454864357922890703776997428611616452163022537737370467846586738740616323427166585614847233606440215750489383270765601510765106899769879526676976866291709832816813018100090787648472488038793594161192827115985001512723508208718622843301727602864807814570480042938405022233100430424429589014796389946213573190790625620078156308789575555393815791869384639064301221440505892602069776882412152970583618852028539154340503476999115204661823192482255170468850653492036019681166667559504986977214086305245463157894302422057209759191790435152563855039304691922771590292124922256312071156783067863531716785495189687604631536975907635987357412627839296308222093591441714634784134954071674375804370231559430260541490849276423981143429197391307275046391187745844781676042691796337081259187486185509707786110269748743180649770357798552758798634260333686035180903963872696326236716884892887089585856137958700564878313014057807640732903937719587709188243389747933147563225435770111502192384596926966720368502235402613853244198686623060459921655341221386486661597297690955321980192048301825611843516340334014265849754825888170558672523157225064136582734434713887426509536863882196737914968004038009961435851208848600225733986461057044532688437098505143504637324022301027467004841145462041322474940013452528404736215827577821398946833168055455504746535760199740047144946720488884718984409505200150076824852561002764936472632427964605735961492128424976198856296827277148592205988307525483702524863956960395196533773029393514904356174106691229159642243707643603907542817208081124343913863736058407146108082213647659747170222613958063944973743179225117092874164957366411499447859437943408064288416675404382282257265531702014127471752281382815991499347169657907455278965483057351435042383578838764210371452556771817554376245025646783342436070317864300985690342167006054723418599705179051334016094702505568435139383999028358323300900549293528825396014360703454265807485552809250290233435561038230389708705272065234614522145858042431890834476242356171881446225824961093915795847592126365633817196498036042732026217457498307955933782287983808091548920925774384519529139199774826750165257823460175830843734381580489527834662854390409096760847280064089255214149628627175149226045017047379428584677982884072185948661910070844006424278099747579439025818446817047626237250945488192817219424433209915209459161470649934964225921933558739377818450231866073601833890982764842648729516145852446883709738390490746308712865904611743528147901904011732224494409330328806592459461234859346467637212160072449043131213603173048242891398851368149137670516096460088145605063209671986479893143246149489577335273311646446687558204075809018673515144491667339369416811785008233019963248929265813679928973220070034642914330304142591591649244182380594000517483556778515987645859898708019711331464599509141495276492252488743842177970868149497250721348735862558950443487379615959618389468478172635211911889222276927756767799663164560880066708904867700905279599041925212803621091359927293326767534832411904797034903208950086388015014275622635235910480979342430023488929227347859729866024680608609854894098731391985327232756075968560851779295925108953131691911730874312958070402360242713051709377092483245450632835139070338371284002467482014753753367235030324553973291585592807601625787912662986916852713402016233194091692277279885111336237613186753105482628760781958495223540458835064352695376520448853539870795274920280158751252709631209906119248080400132740883707893487526101536181455739319949409122913838278661023818455072202762332302917289227797800165585800457268560475720241137878409613466819531922487882304189411348814568759933465569194652875107753651394930742068700173856899732647893061204043950097564324403515072331275884762938200473458519099517021442527972816647975262831285783817783187153271454434174377554652515336238753580814628941829308247171853238396593102833296725062671996903806204033766549086398679102519562692271620595963028171186414549562311914786846109131651126972121427829584503246536767361060162045629319390532370473413106152284636338707583655910771842013649734705690444033971676482309283776428829138993452644355602583360657510823252581774529144471731334005469683742302274565898663689744536413913447797444448862407308622960312310372717459029076975150231852083995128944948220827890080287815235297559638535353248413086826842174815692828055868985584379383514454585219158313359672059083411867861035443263716635152312021978712236328393650673342812933617059223126746773126129989199491704722051894280221792432219324822727723640870212555216746025115596251623130626027434169524802861294479658249399812058674140255392233427117268401742235320375128086458670042389549734749562048944565495145557761212722617101252706586740230841071724606015950606140860672341166469852945036508931110089091823312338054218781412470966060620775930678324475582332620554594944689351642810072358818133420336129731846419204553591800975120741125358362420699489619988791353649145616115787385906061197044724084321706631659851470507852841702672387409426589751884573357671780963154646045274533572984637974446586562000035956564994928609884068929167018447339808259022043034188640870112716546770584892864077856396442180418375952930656534566344985485964791950256721050133818378480581564350525018649806568429923147243744772211834738533861158319206993151090912477796981262481462306511389224728730713881611640609004923278712356416442743576347309423236524151042038062417746646216867402486024205770369687947903478959612144382319925938329651099726144301493710433458460299243754040572454649108822266519667951505821916684497620847036802378689719388137520407131230837746917612474632712303146488109771052838093970785951730537846446608838059579746401857424903515977054746570672831658031306055456388073212172034271943359515014183590174330937782297089635881784494710991987250816296166375326880130973217262093705913723703378525173351566348983188502130100578325091421611280760377604140107593174269041953995682717465373923190949129029844337050236020147546201939275399152841228768547636865395761932117471572649841357805854538173078562143946212480930895505996677538134317687325443058573067917513853042286621369135520262328363522270684607048408813036076511087013351904595577898531648423334984638378656853298858553639527533516257268465770352573395797981693029122515995976578358143611955907266354854393223276689141542607042949961678665160657119227887538141959148580690715614917345662357747546311422250397808957080399256631067721547349381357999235487255749526910179884420008387658930427296166366669237618779385623700546538365744492673089873130680351765063462726456605675240627013513955336313243577210189322879619012855546896340951221328766775406656070100169190564530219546999356466580789721571540397230353258126463421694699075487951753904960600505940640086788383908574455965548107727793520289423238924500907639125530259589087655221909763280908695048648060146401263557301529570789294932480979014481124867836215237797235644462632215033325610449242425722976994522268181130733459976710539668652684315405633702783290776965305923396331306425499521601410162820618354891144926298687185395709332088948607612531182625893472486863876738008103307427906917071680270577565169077094096607953983708798928671907800160969679817394254793301991900220031978714334935913662193759177342182175083499666571756621002312212169664498540846905431941948288946637245708718480871248244447684966342182179151081153817513098159246701631315885508407458083559392021888606903430989841754382590150725581987256284031402730989251510399068874144581337055088043835761371854495255514676149289704122950772234198747414597383178164074963007023155711610317955903900555392421493712353061765130255937505426915849938975829435154755070756112045245808818948346879088012201239068242648376567696757145045424587660197827771030756556824606488328163069454470724089801286421985320874413749855191892008756426523715646298137254807959274963950253269986907169126257785119926104300522347477109327931504062004882841961148643078042670798737674533328758862565466195435748579671819138673230876503302552373761641089688792064791457941605159290922035753285335551848498065568158450540917715901530313628213661192040995509579070286139476933507559043524037684852410756572542353015331102255093992700529344833658642651981508811083298792661405065524843748210365378441660138398815341727807034306020347291819361723848048972869217411934132730729902427388052438408599935371155928153186309471422969622298708112500065132006154110857225505385063469330159699715708771953658588532408335742725723038774470168469914465511469566590714089609458476042795986634588118419607141841682812479606789250579387286668585008106319298233694066447071068462696305241171036803019838143332555580395348589352940377285276483946009011665123612706712980051552418239200961791977152644370511639467305359265400863458739774181285665736242402477760252172383107728500042673973605610718645870630124800408684834880022359383318680565421404708356819929882645760343196431954640318493689356857094873754373522338601341140209826480402213842882104245126665160322723047152944131892376356698292208571456555965865985369016411287497353420530756434516545122960875376646463991486192263943892046381020000386701408439238908400493736816607095769752935883300992753326045713174460841572153941138801925014762221504795066564756369504512383296767872626050211025722556641084958025464182704916618357494270793103358445116299506123462628407241347194696953780503252853734114536746398749130036722738030506307962034643384902795910161469710889497503048372650582160508073034971917561523475486613203375333081135603046591022932991176538766873969381592986725092301237898302749338814071456547755482695002814414398560979683641231072978375163931136477837585991131702743352571259738163987962465617840816383766955041074963102054190244065230024715162232548052531855886800226058710663601942439947237044901853309903435545088505896375859891759039455940889002029552893408869012235306266358231282457346560473941436541374291748898516448777396869703433208218962600694806985450986203644604226663648137926274805934655587170224368038976402988061043315140509818208955872191046504371900611277171583092585229225997884581393547065273631359324241018725884611426242196458800878352865493070922996171556902095440817424995708930044644556105475885357397391393043852009315543612549979814348394823152635750592149006260524505693512356899971594986688151056624201931538574445763560798972336691919205007909028725127051266197796012550359630421022413365489484612410121362453507166549412337328950486592028207261055221426081680572375055139572914710786397660303686812703937576201329024223757236160542273842363241326473623883386504400249862096596128614660326242598258393736770495903502166829425153286043240265443751296769984136785564459035300370560776067671609780965266229917213383107350249520421973253314132071632044066123138916141421310235923788617963195878022755797947391764875468957376972201039385967973096941661285408537559814929193600822565880071149479718634064001307034408479258776157318002485670359100325887250601369688940526197657000365126116066604928884661024679567340244779630439534577945548400478189045411954471580956320884144233705666449568271188591305580309478221672130254973025093540203984154707014732096491108265373382999519571486740640084541974603627307258753033854222471374811781827533657823012350239739836419011853136668450724647789003604675456014313804325387374503792479466083632350765359970045986532429872674510756469900164562749241262074164300011101763185458855011068820201366699119736836395258142764512481763445102855814443709334469585594880030352613438110820443142961398550799261453793471701333743361829115100272860546725771581682320829858223588756030778695574007874976847509477125445483905512588112472784658489781583010908918601463932996702053091244472409288048172513523901956646553441117318308018003482878234166098283259960009219648872579819658314337837830900424369490007870646135908794734488707222474150477523154348916302048476148114641329659865004229291839783593346803237912662275694990124002531131375616534871495371254381995687422849337118206383503875971792844060799688394450274724418806756407839461057784948351844191436132415605173325589549028583972582422738737693066883820369052531972706259707735767413028417269644081009608751220392179790250841262291971416664133606735772046002695826731532047715993270769449532908389719066051096811716024700988860672689603607266657194000192920390844743424828634030624487790154437658369914687541689404578323272117557397057860498212248309804984468473110500144610319887922537333383974164583561827255169760015809293975686684954164139145897589243219400636329521602805744638548732292894850997401067827086105475265091421544780389193605247490921838776916360123435902480053163114327299543008143256224849203124917523432875856182646154908055961942577356205270983914443769877080564402831870424625950411489644064348689964477986432263389019029951068647893632664499003816911125734878856415081998729330632259665565041217112400345691932924999369649170645905069341162763068907167872319283686183520769415251914967790626725752227422683171911986703784127020964865134690882826959790565724025681712431427004733221205361232480371823081132409659667371141537058663454326127250110959062733786905390218904847480608691923016859781763180794869644461444474583131339213964087479337872738466446189821403383122727653519804027865609109344148552625658398396679168982443993422453312793158911107340842361217722207661691049497420368160264880408003181471967265998559501629390701720172608611413852375045396801474922766260997256503585780070684892003773225361386215481687800151468020394670403856557659063874547084066696170202273609480684298128088454400861117783419798871746660911511942503558107123740496860759585915311867307136934481307650033086870822579835102910413293673500514191320926837228257317667470409493865926060663629654301969321463247997848608532369956000075665092045305437820716010956455830914580241781565658722784832347088673340681440400467048886995030753424487098398265196331789054519162147031304294164800618453703736432746977054226555554905669174283531481024845351895207912422430497395624509108779645934466257185702679763325708453812548483953579507977497332316115843773198528337536035829320600379493487319799621705560261481996861252149399955121248930659105471474888064690689962675994150931462662021309886375578783303275862476245920986475586281641823695299927140128980834887385157371112183517305813034605729545140867036540248895774421154265858716432601722896547890795069317623164384794415374827932254513066178686482243081076519623427399891916226315997597185200796350771433832934456146908995355513316182034769036722632609921306336413940903162481141837840793318294498204397964506243589379789161288958634892287172178157782178708375938782772636005555498793039685787910026411315086248296243935180309509277240672874986418588618291647205409551077419485155773618541197235116684155142804723467744669515522692680167974960749195024519437367939832549658657903198151045465402157282983752521469543423823091450884937620171003578785854975784440229052294320233071866399683908165550621882944372355771066166536323975304349967174086900767419839179570772055118050465074937605925329697039786112735401672280182980828199757263252715565609982946784698200482755354389357350400882050649605024534973329271960834218693411144367421653849711336749401459527220362760358793403497688581876463815902964260045411855465468059291293404872286766758525602733799343566891097803850246726822722936370972243094331127657829987015537202614679811616843891370237349558375847491606677802191881805335934412502757482891202211897229940252930123279217729425489401689578866822869813646611156817700570647499840788162791703463256079734575080577099198264642112484557946059312919247293038501090065667244857935699210296752097837257162195509026290112785869561560123971541625568114945779958780111439888481913871727398069961834326537904295384142306185463041273243197500611032720218065747970336156079641438329272067826920965193549979944135706119805886907192467551167669666976731401521166497437787578766537596675686017286690267940210783045209888003193762632760528337987582466763234248235478437239893360693774926567597941200519191334585282981405717884328898823110627271174469002990552207092070577460453636859188153180337346253472308907419358327076199462110852054762771850647662616247164835257858646120721395484301780084530129744243452865840073703023679648219934594031169322111855159983533453549312834102439786822489853952704598326275467142173929415684711399173289450879841581855116612332729039543411938415283511331143785587898021877446614614772741854967240949057746070965601945980161244332704726424963456692871337461472273150298449532440404427604774098491934024583273276737289650708249831993529638633554704571171204171681947978821129261862596622961958108306267976590513560063410167648954739318802470007116947102981179229064421302722478275848082156544128885606854183375740091344907029736083408666005013456847881882608806166083313248438211488677743427679533100406373121870736373732612696435314438221827572765407399603240741845548062757150794773788239386737959284946506227932369484355002152158656076740590289683302524554005841896793891920622625797131286661146461607675477845605260738490467571937002081703103923002631980378450206416631290614992512090542005364957007835116125245069073887181250242852622690463079616154157130080126661330492793656033705923930929889596963605270888812225032871749604997672356802521470214915879206085296722924450493961529560770792412405483658207018589995697474284619762349291268328254561624138239947575163466436794072946646430377255816663355954823389655299889077240310896804589059907736151331943686490212620852907283109281873637117803601088810886433710119771443422749092754293647534323461217220099506979348355119692868009155739732087109615212009310199318152492949020089702420911593869974186215922218889434559919864292235942594489068194354049500365744061826957113194623624862559781030045679531317180128833370372822545417341989662138506615360651046686794811021811240841870150750037784984634782457142310962488809871946961967589428953308651339600601774050183714247838831628196480793117662995822314362226543981198648442811510955638133229059037564936899739961135247287255062877516284682688698976395474002168899984658318942373101274624233018377676609593209186320826734470986201124961432466856170453008344821896351665626963816796998697788934355382038997903632615223929759349272235163156574231314708990661574689899068557151269304057938913217947931214863575445154406004891827104837295660996730238638329953540158550302734277513237853263415969773262134409528262373994572109577255335628114217222854985830424804295196347091902181491121104328965040610714014117370073670942364062758179922180817632488955178281285409676566889430696128655530857859516841742192926692479527153390528387088097244848544941946656672599407333829542581922997764666322488238847016290770106962026104180118078058909593103873762172559457278083141945498464735611297332997431557044132776623041122016587764881175037981989889386666785032047590394901584303398859368615377996893000273358119081135850465229849466523691089402724031180384010313350733000036424465563628377778350981211005004384737510306062504512061932795136061950945549741476674280827790722083585649552180063428109359828235071711100088935398382451060893328444159144362910870533502687736478744148412742540606581766498668817142511494561619053985896447785745650314439442100341931323292711550063556534864670150771684876532119971344413011803403378008628032739598851203846606614130872483801692064002841116862235937204227455256713355925622572921217019750654199423076686086992042998416524133982041454710347669260326972447440145325123420983254054655242775269945213090718751210412237814449476011702126489217029723789932574481541683875734335631223943957041759105862331047334017883667849364227307883876165781151754761313913163512859582508784267720780168971510806880765092316712759089055912936203191412712272780118820248534352702784846308694755015547620818795160155659050078399819061447840807715531927607096723371868792505977707828905412454373375014299155737763028875715269801599877543322372289125857794756139370389376863631811335492943030638911046290030984856094032996017037392873541969339902893619569985167343401918762653688074417549031329587829324873427681760435919100435835853941396632261321107855275005670342366223191057491208477393139238658049454639252854491600794640706264020972202741804420775402389839454395387638922028695209415065802181053735189219167509362794961139234867162672221850945281549144816892816737474722310310842233034048402724475030523047958867363162602341909504510498271960671254868902071643113403575786357119916498885149604501758892583978942573541288699243850624495342309613816599004788839045833476187703016193007426750130398243210984094300907453782752805861921877829423171560865397222861910917519077094893088973733164190114714777381980109645671100153451671867784415878980375922682334741690378157545506699524596640139390846495105494003742763341231705734178677407545715418881434584261628788529035898549553341099894347969480064856439038935305560593453062522646670288490712782448897165080250451980803831551645272225410946092664893862126842545941133913069112134693566351565222357942359938525453585354206847275821121999259349057222786530135238434766074061259266310114469753845213620639229911561092486576977017837847180593351468792041923230739438829211352400902450593225750587640054959411995610357532111372949765072552786259824809023395308556650271338577258424521500921548450218441921833693867436829827719935645791901987821909008519268507646832349814084199742283043098638620619431181009571273190964417391787519628288084075126179427998135844477312520509225436732629583649439533190182287806292109748687990198073201417221220720709356769609410177561830420081247653179431730704802516772586274316907818827531019797810730411151562800558132562192629310795884702716131253804328865263505548709967648021861011748881252952316321440001928680891070509181226080250438678559525275911484735168875749106377628151091075296968003623765466357689011099932938677811233372262066992176178396943517120216730865560840112626666126008593850814504222778828748641448500765095057235933589845740297290753178327122358130333047789385610993512257727072029157498782827859462642131787735863695428702044306270494928175682965973354204061568263273760195141751235842956252438119055483439487170418069245056032780841609265839327165214802999318605077098864920357543827094959381895672352930324465187388586332259319712317230290415637614635773290374046232392285675182734799711951526099778358767842572980676276807975703121495200393304230697933437265153799894511077206714732128168803129960906642987422181908541660988346435478107312010890700055937933163169526318181685872016280158860491187477764964226283843416839633370894289465581404785502557973347993021172318604160990624377650806326762791215845813059270940645509938154082011916510668593231366466001710010233088169590923153487180259173364348290629534679728253110136237295922489649786144615955936667871998082098133453767865011710761299396428430892633694125741411807357090940024103918064808323422917065652534470953324445165020202499702340869350996599155217729430617195699397480363415685536300185657858411419338914717408884674098212122590261751848149692590178432012380971482349658780559613787609524784812332329605865402514571756662846713154568655435427371103458991175306612698465594128632366555217551211303326921767766787305393119735376522451611183230372160211984545314890860814149722443261858155560294210900256295503586874035279738380758806208017818152599339202516865561144864579246540814818635011422952373104398628096811243393144696069632049277849772780103415914799798495546972649423326603617061217610022524099630664371544527957913180996815747495488541349470902332547455050077979161332757348092257968207163612499591467885912937880052052579575305981625587521978665161625574206162002802141947537218680776203521501911241176090340577744793739639597574106747844323918885734247280867953047579566056833010573823970822298963610857827877094758749305111795884701186388451002825714022365185176023275599517623949649096973857487368125506758532942856354936958822977273139192296308980589678786916318338325457969115850994674670945183589694711532853056382955760491012065782639395427847698500292669806251592826016994020473173365778337167708603328478379194707368627627855145457157522027000859825532564000024948412535421051766693641832649628380583809239025995456385476059011751440860942265864818131032476771514613014427947034279512016924486258563227019404915305487496744801838213189612296892215280868028529533915375882420398855363201073710470637167997632820455366448278681072138896052863183518062400658469701482827596173611140762399194413842662055015997892892202314849939517886788815578868076901636859966995377902629487486519290071806618265710786849043653890496566734622468368262478599244866992397557510308405070444920380106461822544394360951576236010439757668201236085529343867835942417259635958174821352016701225028200086036629102609254365603183117631807332523654270485879488799421822159934300635366863825702991785328785231306857386274171867136580909929570583032902438388145598725719967668087453475717085960422711854499840799232704293369168363878902173703587749318192471592195087536701343270011097787462222611118701065269801918588449569696839531226716099448513340792355946034365719187538546250954027464866118324335866641129527784858836647723281955182613162133906653154065683176166392852223509594080537530529272692554529848470803651941562026620352014883643719472487650582263982106179339533358704747528225296887054061584650787074281149359225745060245468258758849526989934046216486536058628404967401813063978032938644097552750556136853180932298344334660227972326683426582337671690200592450564184421868299021721938180721526157572996846093167595784891107110055949486964874917454671118309425665595245653592559659565597366924116263104280358002850346206463930326610663629238273763075028781274576822535524690727928281405628718002808434938417783592639640539246531015436825529652250090858271625574250260832578446976734742684414564962142112188587015598379484416333485053944250340845002959127187037992786701545105843542503537448849302468944742293154140740812987794910902374585107560705450724278104071844154046084462827457620750531392697048799435267136831725465990169849222697981077942459390045256688587239097429618704836352609240300155121267593963605469334894477057805348278418228808582793194443767285037970291003927367651438597819610737646498499725589157953922343263104932946600857004230804389851815192198643449555654360680670004854046160662232673084558672242217731477057715932151743121786147201313436885073006082634165625805112555769763996297289750004788312671382157854137858021096654745915467751155848354614751019033583558103456757435288647669360278337183142548774124321019636277148365882073194348171768139878222258734229914030681974896020626534217639314695431337918837003214939838976152856332973749240939675412056103475262620929532978206873957573173271531685797583162514049468558663079602081237797129535892202137219854893458861450301395732678018540913769934088584247044485853415173419018196685570343075386173466189000550176449268414241296699118438641660796860245779413544018192068675006986248594409648536043290433828974259352056282798630723306151146222176796190636545431201174047830664584381478803787537751995472211851175279244253758499127386886128941121221093632468648092129198758109281614757708283246449286706934485906881486374511500423112658192339339807069061165416921173889533172218068602666147183058682963292309066050034518195008958072761148722225304751263832248536834236929536541964572501849681088187859931886191817110109242370268011477872798632066865743752946351396130107041522049645105015256520609350303303244879237776502440724653981167596035685367724991138576485581189360958196633619649420126742281845469781323907682066199406291586566199974239855607613790259633029512669267016297620081407876963043664040121992531588636192073042351715074168644526437857876877514016860653111395358995564761162735736122392193090065712588043053055213615573125989910039176530900717680071120732723095848863753843035811874421641477647255967186824665196208938355428305088921863079156237452750776366082296411878876111399117444451818913824462309889087028482479296323149491813723554167708324787159804607375747978289715586809173819513102943078375073301928454910854753652707277008764181583653040062755978327012248104473946648205760654360170993735096498907052884122138456445771770191787905199956685584702227966339179984827166576857484643861001408384868005048633734411844242407393595754151766690062162791101357155604056636418561210722141851557068739557495641495211949580538970631586320465587050538502828094315741131846775776331655033200668163425371885681597677416947270087585136016042088999478516840796550230021422846477930884360860558521475716873274316929833162044739624082563078763993737476645858258036389732761640331849638790934161264726078424287532365371368075716696153722948615879963659026162731997782772452687231938774496716100887174145446165892939149544888118452926101992216144573862727913071022403812616203862195761581617885825690689869081075984183235436201988815354416358346577712553208203352063204083529578880442442971930588699463514029920692028551534997964171693922853713546625221096895421345536621746344482646195417859591635771527794527048438887107696669431330577009368011076228429092204344119913885356215076550190960310415343809531010011925649659378773111590641893879263753212561745269827001732769354585044328975744679083865186950024235431471207914850619302623796544780606531134050352348904346494340794704516550728418822847784637579910486036628235385404986905828347335564458035318140638629170067713038935101700778122859094255585812336634290401937219975931303722545015983658327962207950031327599788506195388072175291917109617403234904218476449918759926502284969570982677586162438899548118660892324190321145003931908009349107956039710603256801312113486574746527904015909936465974450662454430204723922068054300750460252730303686004315964726782713038566377753121137589934537320625279442658602645433339225414130888552759900316626423495158569224202873786233072744434315038328471621301474611935469897208072202469049977861577831079398250292515329239026303954114334379674464497773958370603373032034357629084725891338825778106069740417468118022007542325014064782610564330198346824131635123407239897951062031886058300883079420757203411311922795098022347319959606804777111057930445331442468548630856718545362953625344638835843954753815677586853652501092770462320493535648876240188774590436146466715859471830780229304302426238252260186656075186535951380636833698485279115862554803098989016455113066536261929349692749226570583936819882164108484826539453122937258185245864931883427902489194705313771677830527406360522786592634047392111558502741632951139055731551813769548015599869284885773787699052978634483934845288966931491913665712870052111935163484363438244737707914013092246786482981570838604088923006495589854465614097848900803230677598209469775679640809649069778114989395418749493187472400651059425192748279423492431399135861850164206343393877396775583152135712880617551117259179559538351929423215230393001281118290984390358432021917564295582115566847934466108057612731246518922696034349837158953874387225375227924033852325089513997009351218351506069473401833879015282547788805740658995294734025266458089957100562041936615806049485358010105396857866421087031940297957560613810763303788358397263490101161946783979199373258814366078043360110444988503619103031960602476891879157560402267257661449757416167350224934028061752224144502197921200123195160858663194364732642775189470731414202996258870279262378465856558371967433261410658288082365217979182587079067505782144405228780683019885036658414927817969634755403931568299149087790685628502448837888402477730508686597725424507285374135440279254344146166599216719935096090592578798880265932828255539417409748459158873268986760527778165420620446710904415423871109163231913457102032874229653085247520559777525580053611772023560506390725399204453287392092477454102849565819905864692274277022509969723265449878593975317448330374787332370408032886746962287115174981628734100132285857897160594273929862368740353142738777007932178058721083292402600246513484391414341592986590829187893722412858149983210778399154762460246253035440107138342601848038940633008606129555764958662668658629960201970136108992105446958903678797026141787806228934790492415236962249096696339226206117682256233722510352130386129192263476752566829904194956666478597775811295040858369651091016723324678342539459954536300760266179358240546807423410949844095243534642207195800675993790624146447365778284045196293327757765166718801640387981370294877350448252887330987814554616086455755514540794512042955725160903163961905087138576901380002396575367764512873853786963610204672828318894754044778282756841447141833721419092645475634113810665244809098704186686823094932645928425849400516618502408126257254481859392532975260340343750887613844577458495524216891542284271914887229990016715292116355172132759250943882145523286711868759420639474073920195667710520537381839444838925461502854336357963086409885972407932009464710688654214669858892555430996500270866310092299336201962582007850105477374440017060157750609284368347838132006515259877772020759418851943809400508491742872300292551218994324077900422057000823845285832003688728279856908368080965897904685771049923531362888249637068051242133965349091876287519793914234523230010091858039198192676570667665083303363381579817072106595319408625203515715533328751512845067240674531987011185821223452759181284871303365893806197586565066444838701833286671720143626790596760466418235964511649720938018128112054607095487103467396514919826094182038969401743812026455309568099804898980749359083363852517183938770034604463899329631855447468191476523618056663585546394493698918124938133713405909879998251322152986428608569197188288183903090197555298960730625179087547869376662203195035718050450304891560313287852249444222484704090434543498400976358139497776219476487946391800477173639454829785641053208043233625792367070217643286250202348478451970663830376905836872770495750322133736707671417534545385709133785963413244201435678222126332279018091634204664734393660738433694011608276114631276794585720237756068839684470417921908308632152221135557447084644096043621475600644098261074969587535392367617387782469892498737592158208781099778010778678615607437318873549574198011101489443479819510499786355525003290472338519387839723923913488751757795466353039998418570978706278873594051374537035861101662267953352416692313654480089567885227268021680782946985445279412200644499548837151953304104492168627754329339220987166809919797251969203538538007353752767594573549477530120134775776140345258888034092590684362243147267561079649396301576029958173719143831548475556329537574161571048998676578094235706066036077761509901398685869753983098734718727468552278601400006505958635897533008385548148063312482569379636292011904271924586938864081692155474804801863522693686847871517351135395763564273877141792642474402081335950462046195503506537557801358096799984787535086360789078173699219242959171452994121340764251931337841554245515712767165042670952862883939470111688971469598413534272466229881715963579999970067446892474500457246849695151738285020771441978120214961556422713542713344528049587777566462563064368426772316395036643260464257310337182334568043831168334417569913403123491674026483722335047041050953864650803040443172360752307782510723477052562199750677324803656725124135772767803210913860639954322797059275123055901999850221803222404093360233197507977721198111985022843212849550262205214179202437115055964660577507327041436008930609802607377599748090998661982512707174484323272885806054551112589507247397883247549638897948913321893876886848293745803390584463723985923956026928214048141533630235568569874413180965658201646295891946302094541398223574072720466660590738676446333312074375421419551099461292568714030111886896289833489029402729680978067464236301325045475024930700052093799831460293525093512694924113055549927934580265912277142552082022392301714428785732427582178941351216356184559363956163833848713256288163440218391151823508127910258055136881977720017907205928793553966577871604605949905326259232013515173821335202290586299305582770911774613013611924316539711147660033809345181588086726154992674893413962796020499940319096088226102878989728342726727124550310755748364975094116749684391028931249384905745379224012209438888234326121596941595382508275095757056398788397059197163889120249885191129319287315101855038873195343301097406336887685253133011042341598901460167591098316599689558558712967500550242155003614041229686912714636838115614030860162725898392312858457273894711434471522610914957028424896898079551480896369589133972131414409870742052966764665676497631181559725452762410683181342414013889319904222078017808353377072263024349019798567883347504196145661273753347647037805039694087425164218020742072700092825494459141902370396061522599798223560261058061709146769856481965725878491031946278777287295539689719643632095671169037555183344483463134346331501494825052607460937502334428415373131392148419794413916863722767161345791581268196937812966477226678256380420695610246954211035820355177547521535142984099396908891704735574365386013576257517817854038543051198570941809132740518253775534603597085939227251000521402995772711184222352319726450394864127357659040815319976862853467220523486514159607697093298366262236720687048187109937194988201623448492484039336171627596124631785504085232390424332320526196058864619090488069511707711874892389780470432108901543314400810446990501880063624758880478409741658775650060173440826773517350254554883505975867542610873830693221665896591251609434837871250983214845858653633123796176318432582529431281674272567596131727213564739839946633135544236074674628481899013023706266862101653796328120205161904649034246129141912261672838033934217105865892646476550428244133797073992656976848915059019376119254000978902100162122627216703054630423741191967718243337319765797898416317787989444523950046729923910303234862399170275829931945609352351470620900459392814702017992969207229960042573778126125353236291010272248548792584736139376277539378771086188922434620173134573322291614328310148531770770994627089757288469378698768080527940225991059877116705125346404843358763429102994739744326833818731478686929648791214686179807535179384772040021299994682049293048334338998503309432111133871227433457017446844802085992606035943422043884930706952156750773308960328619641918971919369181940561472265319904316016467834976749362631980620354533345462816447718247024775037827998718417809606607407417318942492730037493536623835843730130998568610259078093194768076717335939054113733771484000559451599334551713135672382163193877166727558522695619630811516289967211132725227100307619976093485412217797449528094867448078759760839106728160759817080706532982908467530041922650531873353214747871254304614783076129896771215260893686507837103745583144554328716564072934524168789886552585120925606764232312290024806607659785441657636142019649708781524796311295790511618040070961718845895408913857822900645068709814721027002018401505085403401979797733127013392777563577117164281238269950764954576946816765290610240148692574948723486753106842912735421871413274228984053145764223719266713805845974297434529614938241610013784515647906393959944664732533553043111699965030841685788241373886072976757879340509623601941382420681982783809472323495610076595014177458072706783840579065487036565583286360066560467889686885275174612503796543247071905811051677398709235047666570970028017277788591380664084980645284786533309758366935266472297946210096552862120353740400999431720246181694945857275794040706902076899173126283572459644502521485843473399691401371044641630088651073743035526405962546392088453050752756298186255825998722946843055264865326382519877878351054869471252649551833396702015523653636486692578574387605755490047203371338782671402642895208967292168663718343520108585383830559278541569607633892503662190338625693609909182015989867805508597882791329529809390165907711600861296547759719105776753212258868227347554993017838779480468821671327068877065392200961048447058477440175156224711397979770544646773666605057006255292278348760261703778619978498243976096315305750106563616296959802868969822471986139057640841952141570015117797621988466779646706841129965365726384543110360108378173349602402228960368781791450445035845149466963593866707436606008801623131615103781615380750239533594611331080012806768807365933025837973570148009342398308396729111735979249507637742937618224238985031100448182504548722284891640625154006043449932861182638166726894268163240659886853916205361291130794026934908098495608221663936622389308517001583743332054737074964857379952091557860582406478786330528468132970595199607400028159977227014674886824973237898462788734857066844777092600804856604237746435354827430144012136810078208289384409150675688070826369858208324518893895608738458674805416769150984681359652536478590966823362148398923429870642019381306466429537625035013484770851535679024544221877495549852980178143021798728845951399521921880617990967585132264175660840372249111856854265543364590867911042254621562032428546823721075003244397197446207903933292374983176697989975749158517220228180477994085500682683267013089297386817249321609942795403527836788680317209071737365209294637888192722710654691236098199960274867019158232657061039480297564575259656868520170764695194841210495253038414162625941944901959540640175294111664064177348694687141888566132618556977397249658939571910287959795051469440356572970589629672921314976250001317538382179233090000420400233170173146764406258030367281899704034050942455661527101591951838871569456320924084523325872943822018485306943615164026229465989587008485291712820405059286771845897059806577328057689324339584777381552014606859512379978484626722366724736401588002162797401451574025651339387061731033247454895743014293576491666553834682976024918348462709091342748943089271126902264254833456349154496509699280190548785281579208716878400319284048905510845977405563175873525393321843978902694638409963195148918549756992203903520010989452871039050630067977264980699908822611897952475179987787631254318915857414305352527574042380902935488225634690254707983407956425882823465724296895996248010639041355254072481275816761788383093618145021747038442954959698687955997897086496655049320149144074295066221739691651740423253253532884494900684298892844225816994151039736214167129309781189379904598997007657979857590505707054119735135133525665265995525154937960199928726067388443743807763336045519721398841903389779755148152540134832006171379925811230937905927935358632025261089299381408752910367701089425702429706460930316971231840022758508554198287894332274683648630585842047331392490044026586017840978129524605521616169862186455777080203337637263613848198895770407528846610573547970084561475024972804106846502173535286749225621976511492659803293912692170803353367952962489354518761317407922944961605750713283644325021329402798956872177357014888882156863979625018669490354091477250174143780484132821330798732674145932707263888718713304192475148251884924549525733353088607155218565342262016229116158744828257294358053989367714445935460004904028138908368638558822425891326006481923604752745594989431658905363462300085193265717071998695095337266137578948916274818798729316762689531675904256324771058827007498846413583876205716696273760949684031379882868358482786539361382407643164918245280415647145882910601398186415288767728148756083651639747118803292320442645632572715745811952734479460604388266648818441411085197458626133542140875710479685058372891665023311176871181561296308612537943689371936632805104264543586548221788604742212905988460116523212959075593022158807224862480966380218787277637175835238315139022192761644067424369474289252637555929904348919683270698054038029254624198529428946163612862830412169555802621975443946325404722072868254934127632230637757599283994405964455959800771940608836806024286223770482879695608843104763446731408289532096755977215927047513116738967025749334651250166000943293071092146203601593613363409428780442600694113490708498409496345150764672982807616593621518129026675307365708485481065460781587788973995449098976389607168240126803248770497661769698856130384443295440505113316489360190203562439374034270692650203827839620324150506128028470143702561722312602751169076964556150860995886750861875498916265913513631987728132231501005593322450979175536002106478959152672213508867912405019983713388598471163547447617538082175121492655033916880490706542238269102272347445352381545142708491420819167308830123269661230567232645411391640721253257990963788532469016902643851494586660195054821600781170273588342458984059013757030138373213362328809946411290941396342001111516532119876542517967182472787836154634591704897997970392053682232541692810524161943407145071469895297181230209559521654845738619748101272099042117691660872999461415620697329688334949423787751049047271981976712005149894816203987149076171958632672042365468958703537801892076111944545865624940537914344209450248754904156582919215878843318880737594754769007342403786842203900665435324969333592027955848246242719224312233244535954948700731329388727498811788943108766138382372827849421100442543408128881140358067808446816993396531893138058212498897886682227304066661103134156013994197703091909727907391915547923160985684555118430419834799860859972627401627157434778808314979872378502057739179642412865096053871219282174401744093082866908667347785018194147467746198578038760701698856453528696590318746306065199803372440064990572712908884601516142818352000346638771699195890754016811083930634247114365768012572063514809794581739559596598041120246584167943502217666038884010682817901170123002480848420113367771125163487045838707476511148478990350677740976224402017101743619439329111625590942950962122066470103282580173671894422746057018899518043656124133515463258612517160607280764295635567870439872483222557182077148566937766518501157604051846595946434880839570320403417834363054094772482265200542929971959319010797251690797536843651400442404321878731665979451293374867754422308260609124873034362694155630860619583771389008682721801432148939890399420616576045826762503792138534087171131300060011522686320962140611394315571668940411943355525304434464480913012949166682597193200644231701844366153563004553155018175140918279707386654377944950242083320326233664499901989484228154755710589245176081468240864747912605886820810333897357367360504028514073103484946181251468745196380631015870739455296458786814195716307876038389599714952496196316457905793901463026562617951568400705885943897436001336593879245492933159225357078549567507553625689281486726137690670961285921355552993763302537451775995741212962428580022013075613716652787652389753551007359290315667618177890347524023984809716539899829051893460043948069223650366472859537175697913952806189450351991393473089938904894694294208832020400160086280182842374838096500557292596717439026801546884177628191624717078901812262620719800508161103382894152638218964185511221043893215059658945706858382114235919989043121536174470609405668601860805167091498013481692181567321171158750586858421922001017456651761604872575248301456995801320675173839120427447115908941918658334042571923302926638120810666566184346434179333557334751028078894703454980865765381123283647664622473885217934548537280431908316929841226147109316251280028482345090346982707906341576120786284300310225965836650721394883693993821751395640309604040555042073909894539403785489254283084766354153208150370987628846988821741795132075904614993663941763341319767782474117252624678652773024279334941380588256060866974183726646210119974330630325024733966109480205737141590352820665166589418091041405059307157232538717655281592324583235769496641318130116385682460094679864490230658027783955801785189418054161169877612294849081276664366795639527375899120577705049254615833349143561648401633138924151193150654161764601310017613617554791309654006713598210942233929137201894074787047152061757412291456377931407931674667250597319054677791814447743459524319646682647966394641947569902056604011357949016036048718312090745602843228670019817807906009335953764269356992246157813347541244999317414056655494406655991208744800670822515858072312892541171478394258467350022508946754357500001323522417364519474561837473318038146073363293896864678273257233341957676168891952375003187141918834053013112300643560977017495291760275998845820795458118782715960607470772740803841145017654035334873818055620511366700113262145554482091718233913643722581115949513978966975944581778841939353853802405804029338346977867475691087680428781129886596063075537228434768242685136541954635529211951992995888553787506684748164124929221404602148116733057026746371494102355277068484858284468917931067392849552839135435156301041964123334731950314825333848178557430894856123415616272599064288692512246198404624698986980406794034426700536801639369331190291849397628844842342823942172466434233391647302058386192817396043101534909514247225852109615243786718999751451830441791756037871902766740710865477697549514961608961806134582205380039916353507838102045193161554731060159424804222734836766444988946873434676528716275909215881571683203624814067581895083004359249640226441893289632047108700467780947590063520445733130441065533474437219636340577749573132819737782009711360812925059641835494805298537714147670289437973850918880504550516633331942791029197595058945458147451931743513594271577934267598344644147995469568718718642576444195610147482221990724185629314138716425619069456211326121731482128209543002973598915316060585817885182053077027492896313993790731820130770964635512481703504022756192708408652577927061533349694785324733604358683759664962159354894140501638484686988273659275651604989715986245067253831769853758410689383117694668776313272750032961181211952737297533631912630355903835566257513082152057535023754323318629767743822595583270928720578280092617905325859286651204292396178109004392317428841341560084542724903766654748069334796722300815516598281074422178906562169865096644995030218163159020260300594075012761938261136747884805487508154773919376659411981086130244498022275031127623161635718665409326489377623895338687451504585307045668374218036406248044860776200044217343013955871218916324020385723790571123279889898734457787491578869353840522785806529783846809872644818608298125670374262169840724908187953684483059859817734567342423361372797884040687498591926946347326612552702423223382860511534310390050686167283255913006217918973146950316569851206690875709620511216088723891338014593999390123679013444906264568904272772851279427798756782234134380688160419546284450815240219817512053628054229793273937172879868343919262598169926540804711389070433321429972653477568729149003022330539684799081138870114141842483671984410499284387067791375112131427681605320484028190943037349970681684580042336977535584576536630130089005558478775708647452126072306489675297186478073130022172755688645470565271461870428894125592602162141226810978559660623513878211687601557268038276333553672791973841762297395909039945568261758464334621206475592890830465846851574146920498273200907557479094058069487623125432185900121574322476708067958769038203898828937372357346058948895050671077165699102514944043040374432330398546536328706103772113343443632169779329322634936982155839869657751683713598840064084375770208545935902202991922412380759145102936086481000775570125788813771690288199606790836881334817791715052106169698200121435090042442625035239984125836020280299718747013190040400438498841536117932332501556337141939486402020753193106226911116636679136220601189397834324274290218977110731267218033919933565867035682967473597915926754642872769284991792801184567236763213575394206352121251928178984539693727344933145085812490111417698324405250085635834410960282039039702966882384900191146598362384718042577726681618202309238191842290962785286526465414311445997853929166555011988249984324371173489141560777175407475799744069710051955461392008198295445550373271158792530010840745862951001754663231801804694397672600601055324122710907528001348959348554838065970891457884714323486250079379358642442003515930800365656562720223567188244838910992553378912013992676076047829148138439617403973987533116016203363998131801084432454604994599537787659078169558317391201835064660096242424489332393222018627946502064044841888353637941893574438558161139840892472667945110234674186425387786281724948065431572838195132024705291372346396906016819912544254868493164876606158124992828283887513942544937244834668768077326336340406762199708290510333233389932602734901480555875852775658696071409232066919168888978111230129227299272845023535070510762331077956045087804849820896349746460930944060442607007618897454860336149718796009951615337238063013901456072919629119272318801300026577492683699940861407418647118896273223313115737007354654129294979839965917365805035105806498863500376920838399225999136790583553511856321458048495404008426642064975385975367781361470242331228672649798754415164543998300236275221581815904049721387142806841230574823010557814299295555619297890736823527246730627764603699003013358690034632725984153915076541323496275841406068942801089339643347982544204519857545121793985073633640731905605612549236628373276168610613803557653559423374463886635282219693795157107338213169745233522657881312270097967754838363332551652919467014131239251114393855958618978241775159870318037230792381922883420531437374555079444392761330450739911329712982457844021245194190810875453074351102820262587956437255510580925312236789864959576366515161790252221364313957710750749350845038767767610655782111278432548990866731655518448931858026596451274646365061246691304745995225424035287726728581984955382823542943949175864226474217053554190023730378491129986580421162832328737208217963591423022064171265357140599022372611440951091760160514926396904636054871848176206174940149100963758498406797989094826307816204250385543049874236298394590526243350355137159756810778043919752764962353030503759049236445500954972020714458376738769714703073484187748035221899149349221634067614289303227250970483644963216372340370043861531261900277085118107222946486783766345238333021567063171164548206817643008787325204702468598096245313161147894916589167702904898750878140170515985571359931174227568182420095216352940863988896124718249783929198317704598397340595494093789970560419967894798880348405368626322840569110337906650956550554368170610919408266102892864127103347904480048463868977225671057489808128962179848053886692712122307432701017877843437970908157157192742639535247742707114869301739452646737564719691533756436870178978052262382128014705699433152193173192937269802478810245503567728408297892957896667653140239736629492088440090482683876204720124678245609653545304252896878149274254629664868590362663220382939747637707366098809051842309129291781406825785312120549905779049939004265049559052740004415237801849850927921169728146447071039381685006471630435108046471443182447524868445963314253451535575462655554439093055681448038478074692529374251038923506796294916116884096844586594110286509356828013398076097979715321385286035104573396503084086953122084362789980006994485609315461681759261273686341029705648999582479523285994947386117464367400549707279662080467243681765579071957775043352833101324071064475945890623838236100225757141644501729403768596159416107222816580812719066667287597226163046815214231627520229530034153193285968438537665809214202035578898379457615107008336090267138153999896353086601688157390652212821834128362327765551389281916302390026743219221635404203055014404233135082378033649369327683230391114936139158210288210588148459377941521763458246400467549347261343037278888765986428333101775291536250284365937092744757493840658284848286099254927668311998950231896408845999028217018789983217904418634559239228429739102928812639227351978093263282997104226886342690732371527756440613826803638356641916686940259770968009917405529844838147728212635860753063362925935263299666766621152645044526854030580033146819232400877383121113534687079310294292073230504768601499410185762053772988508066548100387665389368024314556211724868286513231284427632774298589092501795839120082475975831982914639531885584237806995104845782641519368097365474176353365529606809754716999974771165666885309912566587035910011140795288890292395296626303624216244348001207764817520402012853985768151978024200507948127210741617721692584628647050839923559821966075206244415826443981741033253725228146375065961698503878521760492806813590568889845878329115843882572605014134561780702268832370829592252264411798503205732399611813230144932411300709910236722470531650979832234394290698707734097812255956769323564301428224084093323493923469003505118229033912221156218396142111171249773652194487318228668101039165344005549460795305694319671223991754031785160903439428370681719832139705378246267096796270091045508703343205290539982656611463802650877421369046547164760253428840965184296102042377191782186829866526579187585966760806080552251263964888919874349851501752189820628914544222389561875064515845749365773578869393553633432121172588495374118614944189310604608034753972912938177506199332593241098834523149527553592976774326640717912237868753694125823279047499149840673343067931323875963404993203424220549533328848849388588045887252369890921825373599051619746437812879267527588996890169659920571662235553756662684962740955239700856631581003745002206161054735571863762536264889653210937161399674808968774524864928218540844416301190409172503225443951274114262874200918048949098499396129920393133663173616530086333826465161883561243040309364001837639935433074502583649160405957199112690303644150442327948674326956698628293272851027219449511917370206808604554160563115726364433047167615425074682922317025124265049095087829798765325823806636613022756551512388700842728888880438157342258796544531521955692549194091261506750062349549305838902758448681541193831668417218103380618885946929796583186924102788427500395782737352583977761671525442251744549108231253098467365445982174431827079536799566916033884502775434827828339141302026983586514148985273665659559972422818075043970083358477916131033350523439084777235017222778811091056576920300121761000983933782980453591877325988529637253854853724045331982790914178379227634189484444209798382256846378841525830141810580488079890851703056119978209554065354629008844247971882841024349772280940273301743091203513978600361449565442921239672566289495709594132903166384405724608804457731585506579840056729132813586985358399991006384666561612469885070561868301673525308484520472299349370868517194752281390524298092230868685434837207864186796962260857759139491345333812021816377790013457176230379530228679835407451067563894631344933994803706130999149895022773281111723190589477946299822667332445362839950553528599111556827375709645395891506515521739551155387200203883161340446858174738806919876891988488077528711928328507349941997907604208619495314427138194275373699751936505611150711333298423348059876890531569314965469797243958278812247421020792197066053510525876030246551719805688214505795535287447114361838310488645957864138388810131584187456218525497172354181677547191019622855015592033913644334337504384937219133234989989206076398912692989741902310740300800290080945459063200185931113817806999641070819084482225955327946259312852650724026278104939794267075025661644013644552456742186073598931321129584879643670047149692484747379183851182207860293138617885569153936931143556125905427743464247048474240496520998838813677401004035358615156409098733517081349606384771643596976342415708996982520020210873998786217270904920369330513962581686965373489007407010184951729601602472832027337810029948025912027229012727668881948944690542999167445391800429099285824205774084627279106648058076194546950714852340163327544499900069989120207177139345263440050428761998907169886203881384157760378956555395696865274273346157340884476240554307335294085455664230422025831011076135141110276761034143832783994226467094564001219507466979793851794617812386621466089257305613394152277105926587232186887636240827479884226406396489824970464191468243309674451911885974481581264558674709825884350754214157821615150829239477448102095038260224925633508998155170132894320258173383248698349026670172520360604748572853319573368168915390239826678021493593112851276189196226986112677795588059988757095084320694314547612883858691441142486007191459848577315544565590236644596641819295793241293897890678238236105627308536476008825949629836531342615031740086324218170386017836256773221885326846300287127785644896580123497073515957574197655973409688141701376608796387557810927970139970055009809297293898874312220071107395516151009733197779480317318591602503103868426097874355712076727274446272529676933470700571220692267631578374927017990429107448068152862065515695149990374818291482831352797662557035642004372750431567847219761596890892629918286103186908970598120125366338538937833476261611958312241397157517467912399191933415129919827393011070125526704360795289174585281089216895182057928290836553280739455524106321683283559404916699840285367121453928562858282988782673613510590436863194625906200586652688911832771189069112964831510329138811756442016136289847707215997432766299776820442620820138989888532958458436543002473090313472694541351795443152741678447123977294384693219262957695840491268963656921393198557863681611913662967919025177898512982968241741121329283750967874951669815186023438363457261275489442345656313402695055363493640173813180758548450317564299652141074783058424149870123836771338882103392696411914578574910276966136919510633894028017641819544614689148397696530595961373378554521607508053279080556740235158368374434629278761146996141352465749662458791223116602916178636712032179994818741031281330631084324360174884486900306687752512343371861064422128626091862904997353263099003229298383522488583731152678687128718384160437074736970803068440341089632500099305410671225611506870009803052036569884656002136555014307316478707049576505504369806264654594143978815210373722480646095057389342278225895360647666409505168016004905383660830284324049855081263496598364989779198439788875886254742405242850430371940777461408553979354041438060296823938132903536724103779237700415368448309056230198748239648668674766347717909191661588593261895203302768517743929757945442745953594331537426205244404317877618635414560859897955998987680874456433058981581054345753876551974333360179179542263047332957024309851786092129944476307703685168008459542245825558049348636281067126986855761833039764665446835450171204378657585555789857561813387149307268009297702579319553179965290760532659460367787487110676328487722222841503364969142005469751036926473300143691615077312805620888808027000696267483533992543547535490230593717086029158501810596200735298646463462582049584755567048822151610773720406996649608052486335356294308779891668652370476261457584114238919717204464286396188685398673584283312522619506988382824335871756195269355658043373406947487242662865995588971969183974026264464531142086948410871535187396811527993229667886393933021507519664125647352594775679197013408621686952249721445947780854271561365835496202155239232999950067202146742969798962342503894656776062910448620338819252063598966801670683714911069520080818305014989869881686741840860202089827630298032493804787242585634308168518591148158132531398468631803280891237971802085385251505461085393024996050969120733113001272757482187825791018670790165358421488278406638402374069889948424349094938915316576030796196020671462861319555109986783936255923158107246217453822572756882468545144443357228257352123571912224675572296426575052724194508002193513055590686485865998847525158617502545101064861297861922883172810329478498479198375362535373220060058008517494532110534175279777127296216182418293263511253547904518389819273333542852544135645403673823870005286827560538284540642019660970298954738812332301927579631546998811226080017480383758473130576429614615870740764982086182954387682965102443070719655673828854475216262609748461713482648176910286484092352306069324823149484635805506207983230381168307063829038105242116346697583344713200549176772685709207094201091801573394834911519480295670710832456501075364145361310904935210561370413778962942490394508380398859773613157163888121087243032705009947020529653893766300003094276972727432988807999607115109571002014189725300793732577722411699236766705483760038546474009817251126558404362730678534563340282184350516040626053276552462836184320461638407137360431305803880080052444220972709447272520427830863809857583495848248244285188531436485178529383140514988721473032577379213075527712647833333881543162301740408445956817428383989913784024691115234327179841504481907305999783809585724544211444519466212290508558048800528783767670071558456612712036384385310616226901859594606807900144763222116413265315913618347059201238891981294324678130483889529501512660008134071224816901579919835146739806844585864521065198538174519503037505488751176014660933311750279875593538045255219770796556015549055853748321526383078355980727018513174648308613500210775558732935943474233093148912616870927716302696153981996298264953398823229083243181959338821806350574624802096057040907187647563753471839351814773038212895802714042501870887988855677609362618960029334770052809486263849250360729664826449026836546972541486498736479730826507357978154011514017268029164373970862295459475666562965152501281713685875513187277879997412518744618208722284625122990164802788125230623096464735327169021171448196079897960234556391056037734973531795356709364658819882259360539229505404953836299358250911728524239721812353898447061360615321469830541389783923211674065984543894260506807949097054392642451512374893709816612739485868303982432404308870398797124143859265273590474399479588227553966755735283173542427415817279764096115152757141282159173858924738087968101124645715771218121543420189627667529718321774209448044421559744639318258810274636201062652511821065254579667414613969771664491305926586481264789614409411756126904515360109542853977777503281224335625844932163256107089051882434230545267105297118872273648519112938967887444197230455029365273049062674497395779892619139387032637406435796627753726096772877070948441140250214075604672654861896134269095795544528057858917520178468699616546146983124975606149086991896817556498938063260288247930509417537039089405392078912499564251868679276583956782750136004002657119722413364555200993582839253471276399957771624333111829640481902201729111150310365315117573938117927723311598009034350885480083698150873605523994541107779866594948261718439616575550348086333146677795742366483354225178677864336661460632166759097870607147378100871292920623360822551486821230578573435023008099762383234632820798170130706644636102265488670831858158970986705932351957479294131164980622567560390316127357332393054230455805509314443739300380386991785517887607990629436354908237232071356824616769694417218464748854597760078664992892095793691151870789769736958595592635753386023311033829461742095572187451426077723441069898731392103679272306107890726573203622129798215375344749149499707972725544799670909315721602287519666001288814022024429413809085911905090637270364497988617817859410893198481910815754827051451351864466564862961549522356101474245028517788466988618233074411565403791943422499451238536026889868876357999160773858518878336630426119786609818173520795721767801137304444893214895282734466450647040705795387602239342600420407302165974937267057842908495336230936224016039383072556119056661163810269079363162550962230926230523505148201466989743116923614923256067379992388109363267328382102958806545911104430247339991380430864887570456179829558026419995681850555983046400657093065985175144522673611908581374201198984012452642740078300370156703728706710961238296603690128849691669180846091247794462481677056326951499729937862763787210097815707677569037724573464773335465806761866381932432079437775200509335781808551676415768999062834105797843634150868341534688714129326699301550768371166957271213122588922697198942926438666842405534192897778682568384382388269900731992049866242490235365244472701752359018485233896825246689849698573638377403206104788874991404748276435400760569891922403232594066434424323632635447949374098787595222700301770605369841216431351343490244628494885171800028066992829900469239045179109386085329603661700158661951659692777080613314607591867418900656004586518879395611458657842923092691812141991047454614787554002226764192347422547902072269134725526733034218277913058090805417361088831675858258667475032888044924724750720859975745673320319850024165100107033768977331526649627702484475833685604696362254192082565515938490023540219315399222428803091107471173743550778407190332077428154961837487865225882763725560849240008909872603959589381397013942261593158876182955558604595208333433727600606519502676688712516097805106114744192397507950092460411168395084278714534964440886503024753529099436081375982689203400612097199237992779021391488422116776079739437513049951507400497609473470667178597229789216074668595895291229274781310101082776663386654426548926584814368744767466785801433185895563659363494009658937629818312634772352938857519103146428260198556747002013072673378501499801949320713101736452330720064619356961047059788818857076828850784344713142643661539408745759723249002697830888829042608016446104777599303154677058297064886344240475561448129886587013791572686969401870867434870312676217658527172414601983853251310966242167611756870565700031776947811100880333069838251340397363876413180249358714192619267320602988655946816883385835535801443660645579515211038525546136875177732203834284904117981557320228795696166934196416373577141805622388214087870054471453629885063558263004168763001165841698064197709451289840173287949697660447796518233346399139754506762482237472071752471963312507767277441109458393253972335267141597358060544032655050864124030979718706045128194482938198558479300370153532571888649122004430133751760520645137414430970706498100647151312601896373338231273672192398533662563792430612661518150286721517515391524310115770530039653795616147813113736941487621914634609501128024013268211948621839990683675544225257083147933685353934876605526420979671747894868786829696985731590478194995396761609499985978379056615625670887190719123369732871136299951818661573219232788080217598065343890346150670039147854605221284336897935550709723928741416441904423498161775109442843364441695905926363271290219453092366475134959057526976090158987181961407955410640288686258643417450581679339473411293799804776372966738445309033599227201766827514939008725723087244665901668210457326945817778057120808923594519578046836312651481302767203054528167020676029156999166367610689399622617074503638500871760982368156482707590148373911824246274229744266641407143661725796154821318847091962796331865859654854960411759853615004210838677184917984488690322557622729946156186406663591475007048106941420455588260594614334998217037211827675485288351035290560698199959968448032675788365307796190834229580456363420740546735303664944348611897474208800625499927971082850870644197942314110925911445938825281645920851779486520172979828479460119874282816845407377690326490776922282130922477115853673045744434688078171578120111621472957797612076689435872247105741051811743595846861752462416021535939519410382098371459174921750542371925196132178650671168298611398235854012087154984832433935376706349707767085406891551320721619535970504507592030647296724341557986803129950446336958870671734982186330767261487254120144255390314476053511116267786443905020729811927177469206420457596181101497091400165104824759926124827707436346805271007833719586850564000337160377490285957148111533046754027728538575975034760611182939058591475842697816591095735930802498472948284388394854252151597098723753171750310663996957210596682764156856152170579471544056996104125988022083339010309349670946228613633680892786746813701539260303442442931266088451198481358133358961572599889562077461388763429220663156188809178185199854267268527066486752534854928684274620921010626455838115705236463853201657659141810308502886710017643347788818721991371191454745268841025531588150728286683765573846310564075188472727106452229013242269931489779755130920005152943055946217877168630832635900453053038963038006400569282174243707442311823223716265484444257642091322357689804268316705392794131691959047919188915634994772196148497215979983240688301686821015160939992670355308463365689244879764792851919675853138544276859830820318502757031579423150841170373406272819248218461904086309813390959255742076569431704899340089463136506017937467474247399649953910872953906463904365157739613256117499473171310762562357353062246670358715248887694890039222453934337048381720811590311315148458874246122748533710071542330882382550838186831667306223778068401781497273987397221989899061321548364599478106992700085964388757277827346116902445607798960995730405643907640139461832443416399638679844030413563661151261108717148988349572879555159329544576554424236201279711007638425821806236257418886391389562707311004586898870363450588326737159196489205327552600823357607013624782993360636809532589826998335155202209972351755135648767829125949166351730244447833681855775613523316371583383994380222538885967559596994759150842798058990087410999354440918610528585882082441114295880285332376194741106775759183141127144126013087943978849375354244030138345537492180811294244702147564172887402395338572962986670699135707625474041654267885640882663753703610972392554130331293214444765039174106490937684124832781565182858975107458160504969401103927573063204228808619352778353599883757666942690066924244843206451841414934365990852683465489098045726797598179646391773330370264781346790518660100797697813886434493405051970408144064959319620664516467496663498873917134103941496868090722730655842395897627204296623660748051965088361389513720924778338748894563197653011491266629141565004596102120181035681149312901120191243422235974934531510755397913143408895990387252352263497255201226910283582886555185252689331916598244497895960373615804200029966090147903447314649039321655637882030614231656477705456917755149201668511034033438701202882812786292889244337948991293621494318914962957539389325664515428905222527639113079523298206055980128124524919043368012935951430595616128867489961411731634825710798888893204954066420039578106577642955058132767180106272752900331452542991437493794778428384215023665531890115171097819653538904311238363630811436975442019161348480069344270645040871750810262113697341564357605433435338255352692519933746923052119910790243406341228879532701518509710971616906720351748245747328146120375327076725237054791084796955765900583214941366935236912763759994673594482440922543888471311222310402194756813810017898954413106146342700929774155435976571900742641278938931881964141030227766996227285843210130574293698660503674941850146837983292432447105483878862143786387672741866821226240870141887061834465944567036918250919303881580186978904439614441159701850835390732115317465116722074556105724950722960497904239315742536208788234943844549746260382695043039683605980714624658025214527220843011755059542707146026543049424610218210586495362245858734301319220305873361005980389799124339364369870904585498120349981561233756429820731727852595618887060989322922045822247147985359532320396131206410812173757671204583872533790030797309310149682344452059130921783445651282746474587190215302170447788740356742983118787422912559683651267628617092033535976203651412020802030279718311130479233875274465061226797828902254731363036255960652171518542531949045664917165818478729233383591207172446249690143496193994285104055819657016815465376203072814760338240226367702733206068663450125077295901578036180177078148517432040832247579164129726525231498005266703714754192553526882285296810925078765403332992273042205983830854513828542058255480532696824557066377309012092382633554371160460818818073438424297397546860933415391421114674893893811228907950068593496685612320808412735550464990138612381250682241071303049519919458845454127557547238390938967591929241706998901885383505111305763157981005697515102824748544649454937768075888486551014052318242731071505803000770180676637047151490463455925573596767043350172240299622694140533688706400812386735095057244396550415794528386201499232591619894198818359537217067524526403384817973991809893411651545192208290387524099976911330942882241340780735127571239496681767661644342412763947297959885850569623373421386303386985485109254405204428907082153062624005415007629752391720329912179003789310437853201877195301738334273023002602581930963334478427693043885978721882212903908741530009652248797343707096694749499739203949135156490938982549163827881767729474072726552553164188760725619382058368907267406090579079813727571617293712498464895054113790065366668457887075304973364369355049153054175355566704042901655091298905987249415880943172024079422245996189880218614403695885912512052151579728214374935726719136440676235463207424831134261543936415493572964519270191183438656369859846460417764888807378957293724966589317796378262169726173316411139854048339347215928634724090077743860198286916479362584045425698994761997482816016081757157642554090159951089995002386441961388821637350051674214523182501261229306651095851063729485920489368375310784038172820075473290121249540408153831948873377341623997355630299252774798536546355655776060738809710064216509003431206778390321500827373229916183304740336472220139919081507872786228942665790755228569374644406383620163870062741596583935898170479266871898468995393957125983809392135573148273472008434382444750535673952302243510874810357033344740318940742819952401936391956537695954824917153688806409143039201627628364054112226712808107269389215624237079806116493446351037951817774494586106065203481878220456249107229441490413487674607450438425219959465919680409448578802637481139450534017920230931582109727309631737427129366533012267571367283227052283523463271597661895706723766846219268187701790219401239003314755878437273119992297789630966672864377930727053543639529314516726683372417920713204124673733382927984873364582296000769911577005311195559265725734641970204011653697847330017955365337130369458948458114413711354752858858381809080799480679357104555915376837206887079913870240087245253349115043783528203635913154656811371888914497531667744592184302708318286900081829690614769051846458876386257677637543802913023090904180072485292618231468218960669527553703072372954470210444682899148111011565117415483530290118295397400949687798765972546300945087510255430392238048422328910714303539616872835106332788330465507817573536042544504838698052004778200948124826319161020302551322377571763007164037406724762786290064106079906752094074704633149754938053881153358573428238120243882419172868460405501657200939447596269048419446688452829983999474005626981195264474664891851410869992459200079441733773551459038981800488251498759615420103614203325996277143451562724642424312177156958688410720603319056632667013157929614700117721728457534457750887856515609340257777828188609770714077289288916957376787091476809113302784801773754166169269161029236313895342446700110323126541706706903525258252137538691454443124209405786045431274322792702697175343297721609462916676627779762530504745802806404901342880960450980739895156802797333592494207635209274529605926627810403461069174029072631944306924757895387970529074058230329359105305459494429020215893248445871584289819940482443248164077870371300637018587642057663463940019390874355014031381093958432212467214058952456206563668978096541843520100525381023356443760866583576634276644215972696269677333814628334595878435997027598210821505746319204671484413674754822786196589744712442551295312597662947269371274988635750436482478497648856105689479165306274942357079917234077443426337930790005678780811996455470803823338334121011597368865425613543634309011947832616143899648892276488876295510856427646674086977086746903646310969464515441418616827878508379720965194236592008282651554139071186803466486761552443822746123143654292460793098244352029771713924599586948550252947954631657505156365202445422169201678077037836425029735082677430695315512518579722944704324873823854958071885460289639917517285650903875366058179392483932344969678055563742257605362434038341097480210077145975047608602179241093062714134472099524750311030806916341374986000047652030372062133837450929205111013918787875399043707080728276214714781386008313695175093277628337998466539965242480481406869104511311821738462485535497058849220205678865826790495163209827965482902682831293356873557949534567948220712832078596969690573547766290273013215300417816583348151532616282194654337919385311341801900211060265980128128819344989177695934932958024861299445047890366940108920365861614847536428070323749796545267641377365998161512963296455584489404678496156350303319639709319992946878148290398146400333523472428874166966935995654752632588867339390564377382881091999208391239120449881731268286489069426179868360733646403184427966922823099373893742366901636546956202591552694196109007760167467689308868441873854650253415390879384959814751509587226307439929348504205149322805478066647992262883735388832075658833689785945602160180823508083260928190850248335296508476819718446860318796252292827917403403060360151726315502194350264589596627466199996467788027192929403697902944440683020334637338791858131382756716253782999275216083803231152426871397199916411242944486121999750066152208595205975937461802129290930128649246291511196726371440263293238329646912609709725703058545888824739405834188330743919656788350681333641748994164618675911164461226937267938415920663994953835526457415594516642853968437118099466785852800203116197065841681769101149825572364697791917462744593741090920159283721261513993841857646361308309341900494119538221437609827682375224314386277088765855145139159981241146852116313676660015729560123152140225921952850285543698123134153985373552670911064514398155366816263231149136661910202071635481936318863976209813796960232905866036169557671808926294395830685594528444480518382936177559852767765554991246287902657044457970770141171432748718807886368055447371130391700702044390156955975306225877998013673036794904011708322918756513593647480207840842226410235536233329588566521581583640992554593443836255777971491090952969923626963692989620404964979271909371066046170358166896949003665799836376433367217898252198432197587956473043691213769263329832312594417650732910057510695028343535040186795402164977010441027225463039397385325366568839048260860859446430276527892323666241756896931796580381867702612723662909532150271058966737579466027863470228485170065462235162141788129825343368774536567458584863522045681071306375554139832048962122251026974626595142363970908491448857561830117959822771911452156447277295436871000701291424729116453761091838207644128954530073033315798073459506763290128064119195880621973954184835146346798977864699463482312065703236632610401409614325502960963545213005881304532652296548393386165575656738538090067602373362758147784098624148035118953665346832824185678985532041925284845246961890888580121657907865965528502153351834152917243739602388136539883739117140516170232230037585170687883188827221801700151504395702779020415068176096309184063911071729510065621049927247277066919572316083641948053880864406060215048720127232816726914558527438961815131295878718636626793984606205199225897394024239716530132149746639811462767769853314794787372541139810434243594391187850854301683963745794789119845588646891099756764218718138353204547171556062042012551670470506984988161881488562691871017232112869334199163199921615351262351420956119065011426291010518567397254589858839088411076063159795966140929282229435098719061761531490933582010990515141014196734642448754553446522480852038013947666378627466207895630013142303799847982372193658063050754555157968569933928391603400031825519487094841908994720127864448029985068234612775776136740640825482697970645393925964103153152970995326338556468644513653780527201085552748961225220673300646449417710187446754772589728434326114863791713541583294520804904879594545643932756493576608055017701169110171181741447051491156057354181907779146030076694094001383494839019669478061361907536243290717869549534876464317741597646466479168224860973813951369134490875112820479482023516568477049323483694197816706890035487651687337528844740496079438400173570537349422382236054398845885831284511264182419851359349051785584258585496769899274946197255021612226387817447329462749680402518819367198145108246747706849593923229275918898153191322173864288495525901443683739774627429275353236182412791612301524836147296698720646065603340738993672824852231088190548312533721627182755716858252294487709994813887776118779461558585041141364741065794856112873937430847306320910627099889976960753825609316211056770038858936876060805326503665842643811245681927381286584221426489980303353032847142999501642959299552214093535093056990512183633959170743905380371451915043721182670574630631834848380307108260459571777913904398373484977371831894775964476580564419236788978749076049025560687157472471589125861521431501541841078897416029573492165320187923756247930698868789457989621119014390880945058503093696191118198638947063873907184918530886694769360396402172504162342709268564642033661746243889719838489341748331414322919936487522115096342182310172468594552217631723646628243197922240458333682219594623537986308291211087768659480519961943954544533900118525946406020547226191459580125217352397301007700974823005591372196352980115985519890933632636794519715284408887780447710841347800241151292971115311842083185957661357310669417106340846829048864958628663650140967128576682597223429739440150482815290774312939961820030014198673829590862886407473433732462959152395674494570845305330907087188417278137500734260497680212696709240741968191165589866022598883799205442095723609122903687224335679048648422223409286525579451434523987959888588347004444433504168069863170255004788552134176043934894884416902077057771155160926104226139084624966168582779574209895406078994415170236174045631630181441469284254465420211178697280933767796400749940333233254177506154715467781470702122430315195034959953890864161408392497294327175680095560520450134849427580507308554931978978788435899550563939851468866392720783925460727750796153804319326442911704032574613374632243539084913774175539522531319798727292039864188624700971190699925455030322843980791700682283919796343670459151903539189540671510186543526278198277482104019108236487150206706027809529161294289589016001529349932862489335181489874617072349072833312025058241750648867497753419327743804011652039423203650335100651838377890896239828039937547734343399319071610313256986566696660799221231836918523381911604168865364661767598196743601686898202972587891229511004280482462843399402490888874314570418022624506240410364386853157527505072806717549657698525738417902758126463253004181992946926409021333037337543437075941965598931158350513166690234843626637012779721823228827470825940168908794272702939765393800598931178589910312293971924362384427615539391726735147333877783272057425555764842056844795436479068921330058147267374986943422871895401935797594462928054072492555063300160463700883247713085573566199032034752274405561883057240976430868108710123746548130915188331227209693195932918495587457831504633809485704297705007580079506498091657489395779174080294236283368421410342744572079680874138684577034342051130077050440588263044789815570487079515603835459432482131650190469119800755065305371506434407977427524675754665422375021032636207768712069262365555998269950706417869734899522024847062135427452950004513798185503461868931179217961463189156911088715740223579189184139439733281192393168822351085343251831374953985896169663394540201477095322531908135129498452106302351106563284829262407134670557620655122757371104574911264249567942648574868018094858453751088492295286509000893278577012893503107332808655408408611487260390234541864276204998084048975200400944576132481465272337540072124620693095230999087569440490665864642662117848897383414646780823790909805763851232833016734667845572818005363022769763015094162262091934935411997830804568700235825404049090577551003817885822414875877913000414912613392588137823667513047626014447573221013651491600797257761289162080569286918514480134814067464115800003515379224085288022041740849266741960176265225932063213060663185299498546974727400918927345928246134898672372297309666318711578981431933428971634308374812245422421912634599847674829900432720445132659128250859511820090880429236586756601873226906833682985914689955591431526149604570621403550019301113101151564601738296736063830293573704137667116168327208709131992985664170933937319911778265893183245571528535314999345349463162628394523375263985184977870171776576644936832095149016431504822294460253473678755302189105181085631548226898929813208493750652482462574053422936411237470572792808540370571630247547892985689969231665121776510472024611744904169707279898912318181726875715602773965683864249980531250563016175798086524987267294049184354303713224415183277154003007045064949722318013687282491305869932696714035082033345730703674982493671382058081674426119350343036122211416794360407379921052699586701645566186186316224899652471035779718012347093276778168755384461410158374624165052225938653333966546070416760411197350695025311237444025381422666384064835710764725793133494851498085899693836063472430677763218894004865480743710822117623347637611074130441906869806518377311755875580402468316729526180929291307004195418815333605026033608552783951111211080535962914956924524603703807404414074522327520174052634536916980920061928850588005098540856485640411075351705963062984876257125231913637531752157658673226344270921646021821420519616627408566900369461179798995934273702920358378223400052432141590847082995781241885111552932848603635783240189308213907101713186249128602940867399809115166851206267627774197005318319138858112403607653734531530286704346018994875521769197616672850478296874532611063900390715873817416353919277783309962427384336040826680135686228965689965236283850344274160098307760657555667265597060601023786480332390440026785635950942189578915916289922281265532606967476362213678151131503389939054646992381827790057377044926417881885448863843075864594109159241023172296938638403000186932172504604542083454552226298266616860731733059521089667992426228360817315002070938956545464629728364852578550682231457262638814795786057886542558286518849016368496893246003397854531908567701091452433945325281360088872563685099950344281188147728678963647873152835940901819112041381593773191179592560420375204111068491615472849738185127367980012992322782481463173504309403537994307045079163163503478594185551783903561404931065893366472859093833400275325108929837932986749636356879066236634492668627056888638787437543516170768068524722671082337504314079296161220346821369550526841454648731625929318457635479060218075524704635556471604465853076677145396849041744267435457459968893046475525925121944186155819730090356994170549076228612528493943184583616081453219435883351707991972971251413119396093297376530942810277355037190246771762757774333631559703860008848876925640131313914184413886895639961005111073120176320570186826239342311838422197878307256478652223753990960479890863598353831269893492650058075174967106614601163762443891940316217765075129712531299669026995268450501215688491965577923954577803427307298534208665124354695615723732177159964542733024752664302596072224360834869169902361547672190056119401168439701248798056722826163842703172028697112692761193441768832390947354213611897163992439415688689278434165153030324747711582680279346202180525199608192913843660502307630209154492069546665478032905665235793017040027208532261770565436235534342229846457976748359600809734983895506045272632934700523901789667391267386680979183560351592042347159139895834936874092143105251550818027093392771918239812477826595647775249718151051146122127597120782006166596089267456434200157517012476864700458792319064446054307312006698013273268029647414585266760787527604129935219464923767676747556723543100169807842859104974039950320411662487245109011818530117899712774377540383899074457306447621012202196629080933356528474784678281955233731554746511168182202719785963819623371949479807867357133138390938154567250995579109428308445421278949596789345186117900991201040689488609230140690003679259559265253542637240926490470572015126864553932063950767345402227517673707088353573175769036294600522143516725991264287192497691967337660876321769929346670909636331876348298785890553126731607694351083277545542381006731579378870001355672414864646190082702193235280799081358024248230310117782020429290979188355822363858544591999043439039829294612307420610885182566425539282391233650113634634489556289539625642151635279931250980120517840129244236498319359568382589905336482668286200578084308744007952573648705844212867307456892576258950201787876125802711462794837277232238570961440167631340170159607291946400259111030892309701428592905614610079260605662682282929023079902464367435174861469773307485703107367819178936839118899684350877227954477186989813857199857092107534019936549481522736090562677169829342331814104777014303970410142483870431355417998419844934787982870847357084832541935139248480802637477381660637778296317305828764956524701926285366076173865576197199120291193237185733204433922910634299838682789783871592472749557238782644094507338292688570761353065743126665216072797754035511852011990164547131448698281567499023157973354433653443853597161365267423746038408758469392692837889491861521765098498187502492238011951374007978816700382286452060785023262605472799528204774214316315663175254412900392860595231334085157906929209605385545813303309314156261881371334762207614381169759727131970674523676629157884614903762174011980163056820083773619950990761343017170092487415938651976038306393418684914899086303313915781610955887237754849457437761738984835186692782137062561577336925553896852168230522825856629623131290265084152685611058105039330161831845052793248757498503886091513469543277274026172381301746095400355305966336461114867234981598618172995177902283089548013860076250927214851949774355983387794347814045515522974545483864806349012386426913849052561097770255959454958884141427678353037471636845159906228317261692903209307843174676744181904752990105991376208880040422434167558932213296129577043228978122849827539531466139551156277288627068856088959833671155850455057064078027436911850921017192198205908737079398395696876830321246362039197399872483949584394277138227333892428104621930328980499447445458174490614114936723756095832171944770375191877033378000143370816121927450284375912179621212736727430934229416844290036957368255522219273387367724733427149386084862628372149348648738391362095876715823529265772695940360162143259591561793505154466630178307233666978565479469316995177486569701381123372063983423148470746825314147021012340606676212985569753003932480909743225180600084135355116920264748791082058254921525144511588982681317266203104385968703596868298301526072205104455527560864232480113458621941949743974702926470838071480466368455203240752422435355961555398529305312896023508013811557261842231761384854709753102072980774787943122412451548135141016490660060994372032594057440567622913894045125399667999435646056958562280298827409085267708313642277107928341676070627121628541722547008195395244386213376916991305201717144559439114777375461857175583362505306790479504512095084775134495888806141550105698976264398186219448899897984886546330719432807412971093512105509429649747151502249523596646051213425804809632287863609137750866380313812074959206543431890836770112861458036520429076834272901281243402973765440129707212440913664057663503315402712337565845646939831282922595373075385350741646569763046807275955436719435051015155288270552340376448480327604417776786273619110015327262741466075906331049770026648461735395547913968264416294172101406935533829333167179384067841583754468131206187737345990928114945542920228699706718282287925863643798381258805304560964957138955493398907227400483091719111487507353805971822892117589830981062815171801950786361938390396849090087669807970738030751884904762785643152688047662730836900514195265532750111056474302996240745415680117692635903281629072163832517181588657921977367829785091138114880385277698907709037976038812098820652204055071634026053082048707837001449877465232125090238415923278957720971206361881381094140226782786096178657302705989922598080318186053616267426218650182452823771129553665116224406104658665762896497437993816553460379076576475657056683476607045973666749378682720927955255767616292800820495889587559055332021504924880736618274505901741007254103784420143569917963076889633028104923133944421911872468397224992506972425417173923101614480237902918151414768794466779768599907273042582886405484185562083454781158527401091833648215788931692326810863490920988254545246294485525955307531815178645141009368330873560023281974578887930559445149482647251414503154520810931600548026455640989886218296472007733533224378188881769315039861755464162066062078706837661883052954033123547193653464127488579040043577200425261087086061097093648529346955303610305307039005641342831768740740932348586167585013625378298932128176114585544002026495155257172293791127802052245674158256497652170468890524434424095817657897927121800173286467139740318854578714048818516664053484106050576712554527660795047017531776689723199105527945224599438480668738734563654224215516600627954010090138150522134258818594197922479936411781409372132671883688324112681562607627405091299548198309806224429965968073946913437620173063511703152119403621644385476583524736644292895786054732198140321226015987853901028919174934350372766624379700240558845432664625152937512313458026252249050334472773905973864528189278960400108494468607211466829914071857389966626542432489595882544193553700258333557311285646631226898869990927851750287488222807088010256023777826696917085005018854986935721158575271100297418710691718802240037597434198587037148949725112078415399893901696673667301349491318541721385972776147111132621667382520643926896053073803915049613997928269619116768603934195575234451453373108416954096191611928960487544755354303166223577372296625686078014467613050365350991333827590638671790061097768239800597150588231170963814270448550362914008757145991195762825342198446368799576171513517499839768537478229873103659203225970318688829865611037860134568999588545670965170542292761663623448889043908493225115216895494023365893064915627344968389427415099581626324062198094633672356896995025713581175756885099784468660406842974897591478984464433229459836667010731963419724717162435356679702863955151060841371728333303083285615997314537640030295333785774361381219251328842082113866042435883942208048643811516776642851727280954845636331241916020397900843104508798927615569257888592608259243479938860986521336724158795468448419384252116189622687804588214343001915512769636433119283306667220817216459909584715327500269333529611860950888396305319051395875938824099385003783300385570036597735818975929271258395345172843543546044918456474053045592300089781519194069251856935743521616378269462199007180139041676549470186738889666677540105599026949191276290979060280709710562727269309047039930620081267189967871536814108454068741604359386011635026862118359285921508324486599877729953484148349929962779183332641827965066121158734408953144718572872166250780605882516891041479089013448143184368498215640027830224794026452128469522963944916606316471755097836430757056252689260104693217991016244639813110788876620031680990878263517566536460685801845969058857178690906828611764609106229415863211263445927071834986477277131747432504364572934779233227168253102284440965023952139609718028286947372894500582080723646997359716707586802320556898257392847461039763921345560791825748150716822522162076397131252828566460711178775498953110333172655256565835357452915432849119592437711313521444951808202634964510934766009118269812452388906670784632582196233763523218193422521467211605480575575029111772324088838406556213363246402636028900180083132680294876422850001752374800657525355161481715167358037465878882730472974173428689714194371370210074504211704862763030814398708231345008748930734728930656301263818608962388447857982967778611170930190138215860604860114024431390499531008542526239385294853384154894838053548011709507991240953391012722915691712345291834371249179266603934054124633205643328054500209266172438745895549800187147524318839693747506947272086705018090346632382488413364032969932720971069121871893777311003371570897088500601935146309206353446086672728601390645012542701664625428877982516059484059604470004424209178097791715791807290036004753187984866347373096026302281154051799485376719959101293855007363639856376522000209484830357365658927531539695152366421275178057426422958388331482654848434063343025362973412391426655824532644379966053882123898506262779425020618128900144578223087840259404752803341760988473126803601178269558583961235382705397259767886150305379362877299660707483600994417232405828303440969157268136713135584305329843663988677303185413572967218052477142260390225531796177896546204678170987464585899754818336967812264839671255065123525697148593185822874844356117114069086979644696251866783089276120782858010847323642385040401360827471115008974921315954281628571873763859147701755872642318176173456937915985696528493657146681098195627037972143078867918978800813540612613442271318741675056056853176978536872495585481214570323718614595855858340812615372798717209817240927466022792855597366519096701159721690485848397340368341842543479446120638914089581067809004098350995853890330895242928976491996567850992540764326721189882118153968392300654144323907360771935917687284526117725639675133440968024545957657251801681215624076125444803963815421065090982672293915106767495109101666499916446346136837927597705965362734255892057443398042836445853902268318193088313181105807855199349923556556769114594146630046493565756517563180876857582515981183792818023158740100045063528042113363649770661031030413254471369285180557612577605509120726791541278583239099828022730737949646764122734493979061072319663945268739438411687996937768729688266621109974730472244521640775995601193832483573148236287251551082222466081429460498251854509913027494498959537922434045680890513860540226263217448642758222013215961596120695699156138908122301189050362615019824794578887107598968078195493624381549576385370146112432808663271797426732202672139066054818694594525002834433656104236621396608075698262342839524643812656946867744666701010069180857007901087991082422644575064962389768247491764424588374769133701526157221644912505911050946409153498673057088983382352704324579071735393377993890653934200540391968115630604671602501590601437898147809304710110223564081500142323731541325779664410194899317955163585656894843593662161519744666190012285899895701321748919576147753593807723281454570464208334701154551654184219044102554523168044898208732822880381009021126746818059085532383099001271415280883348831425844461527796153979784994904403567000454780031629560376846647994595527623626005336823907451014715740063790269477072410593566486084855127460681502223572589436888459480372167941655071343273175073217412900683632127336077053526175316984723809087040881753168164419302941531262460987723556729525948749732385959859148011448587954463124852919191651909320164713043355218506727549868115469559243832071550595702624955552434788167537488556309042294687063479023078837106418766733152574213810891388708914756645496796579259172489908689297524554337644032794572987043327317520062798948629727947491031246099959431819204257520471542235783517124959098222393143204157462879777927193409724740781544035576344476094915150616332282980116704736208639475815713715681924311571646722327940337506218514287857696036306928029164994941078749230150564144349300897678064255833224996211366994495069025452321746727256630148517445435012421516835627155986360599196875526496041079251996238996932604228957004942450477059662362543761638072121274577755315314777222307382410279475848180931767795498320646951202215652845183999106484027929739479897022480120207010838138216120529981965890146677385394087971044363818978195585325348069486072938321955126889469452681498912394338080196192268935280556948373913995361705104618209341134449914824807041321297021539740368039719938892331790161496971917722799836385900419730248286255688398026571506804323228485725581125814286372974047876036998945529170448746430640654420405193256503184407205517615301743511898262977985031748467937974422347478323127721935439038648284308771842591836730630385248903092588270484397429542733887078451179737259958142408751137186892505683376654066156133218832284727070058456010659497646195588986840392783920100632209898629636035086937989072816517179771216287075628376587757370610835307850961306329086591355973365052249608502240942314330657999664758049483433963999889343811728408674991617200134945062750468438543139339181476883992262333773108237921326594045263146279396279359736019605217334681176570669841515538798813777572229221597886656687821633195067745684328827292912061783350378197614975306384203917584927821407492188533606140981698951746130143685799372589439820552474013337332798310463289211796895649150928030762493083926355155202025293201830502650650119097353340315880258003495707309220215350198338373211726528473118525616702982926766218132491014133900776726052616058875082443614608179437816180759506425571675043533095578018329822268754979344394683920125029063654619280340591796811987981386726719969578735492894044001008738085092792092136440562326540098530098137671224856254849422472746363894516994669817463738965139916267922656747165224137915915959581611504150036380254075478227115195901212609007800936124827276623781519212923466713809037746358887048358116811962484021896234946960542323909915516077463555113865496070783753307171902269232694557644638806226981216137730974634888016364369648227971469323702380659146466259145630281416741766889278685179222258012258907597445202994575007594027624999790447689589507239065632905292912208023426782221431976463242804551940391989859301056097682412857417777790160808214626517882628853566884414629604211019417336915617305682165768948802910657389893972471859088385520425478808719977938690072534863067175477487422373101416680884583814393381065398940688610121847532417359329733313524103059727143640755281611183422440545804593068245122397904802775821686101144663417116513981409159114001136104994278534045849342068142863691480231167718176575907185649771759698103993878919133651848520309671890233504247643216607326374920054839018460238567451611458548415247893563932588480836657259084398816417740792571616843064323003903021828313900796084396091071560392265465735363030051861682177416259195865203658731560126769317349944614459115775489818397346071440481175336315633243268753225244243034450286842144637407575484016474892523468110682521242306869262619590579487938608393165503524327948078679772521438755259450505828668210175972802118267970820509395419594221639019998636289103068002140147090108752447313047830626169266759129902374623864604620982118684663217019741017800661604268625576714816487623031432400256955817811072391976561608947412185860706582313860809525960700784976039655148139322200668559687495642301655877580963958038058492702701435520886661828362028949406781013211471036089769696637799020451329377498026850207882654392272643433207877730611641939340140271468226148739307287855943768713534993996119014329456009822430029470825551992752665695791081928171763550432672519685040554373446203613779442779661389631779175679825706182484156764003012725867334108189864455780508452335054246083767729204426777791042078509069548284889910403594671467263532466047423192892848943163659224971057967943557909167977346551985068844056904659186437472753475290882920885001850598676917075285425894231729470854294314267738484910143179194053408468987105957374869851410562595648025081331523460808350554788506918855840693517506278491368266353370236517928218840759312244031625822480407180565949138191955252385322966777122563644540192223282686416828230465638409584592532463374257562754124687227559577656191664189166885683835390102588967729298491704481999648108235548878124178748746923174474557263003699921768491066847860486330713032817272158255007679025241034483206419926336630478219442942157245825657162894327846951920268045043212974078615051458223968381037942319476936784252969195312184022242958665126817286664323784562565825537955525159065684162758905843256813576639795616882099995399849584237050148140643291319870014177114802214403531075494871048499523617806690112593170901113738456911576461042847491359953134143606938175618773779507353806656421904735607164923736700778344487272082210311207389191189009030603529782470663122689163447133516241801428695697374608112232690353117571409371834661921956405813838881318437815042442879577577850114359867218120301732265741544500109727427422154134738228274458013262780060318929104794511091771754167262550829137809229280187712858922871481039279463635849231365875855943815219769611590406159402055931582165275201010628433292920540435557930841263842560289183780977632561379874588875930247803662400059474329515739294537078282621021839200873503712203498436498844360071048665838633154651891229040657182205577977696276263170283618635576132984950715771482188688222576615021810284655684118936386070426552713254226728422058994125295076509925767744831110136984447128753229976416653357525722091663682995753460707807503920068735732555102745426748988378992725395154210015627911518456107206314868213718271291332420201250288791584470891886895182101868048954074422072654495647037322172652172333382482477991688639751570583665562788189103059260660670893728581868989320925022455012348077880694198070361850615533678024967774270093945540579475666713500495632100241581186994494703811173132745094111369251724585581194467596367322928432816344564168287937823686155727235193429229160120026272102175869907538355821097133486138773432625989409600353248103893132582821235438757212175575802903569555286237663681285683201897947798125926901098913772520841881362618341693875211034996327891949276113146463504786159534400772556199374333332222444021921408946215479683493334769965909305394365013072415350394988932715019470051175091955357249261185925121209465388027286961356597409713823621267847814992650797165904710905053399852091636702142281846338767843822510179937924703275283042078280711436127414360714564010132028306060836231169763447337680911479410012256576842989668921898307338507065559889279444975630647945850825697081202123499153492550902962181637600995073116298478403451410922379015813999140969268960284374993340733586145947958788378180703757115551239731726214257153626590382783960348822503218380877831940187964943880652718558197069852485100463053168583441649966481965353810057648665656011776771804960569872959257052113992950838021526938365724595198525678196098514756531603693851311644517718737166412920069410446018516721692152849946768909217144089858738942761667673030032150881908444285318832907776338103998169214562958964792044945375973685561412440804530282129379196797038630438649126724672701593934626174410916028740065633185686109247258115781332315535568641235915218858072036558459897541688836476598715883733347071877624467927538466178133091988779264637820687713672460117421952055405020299630034349139762655875209658958396030944805730443998562900855008114546362046812053882622717678783887234331948575514172745365539602877835448229741140468455553209745729446910035096171029680279233341398906057872187991906324843423885321644808724692011522446182219293742930341382096008782704729494085400951096923521356110480152987744940071289988715024528835961247895832621736605962774067163887633315018286134377598950504046929802662206983115118429715868449252243029492742872748165100985354404658054322947691063491835550499347513489948851831270348717129982079686680293575709828672604838204177492364092201600418665788902789584167411463241841246478074427625875921968234065226054581004099627128807397271877858829983878884909729180032012585667802250519165426073446380784797093372203155850183761586925239885000074100645535132408090813016055340397944905475734046027316483630020783974443077297573189277172454099465267724522364230069908341018319197273003530400056540255065096235335186050167513189293531095487569412841360992169389357525628518471647990210111291995325843950804156171894491803135131090588829218533192518256571237171092407990321386788176059533031574641025934490537891689337659216833633224716722964448077548420083505902864549395337445155799655693452498979460223785760918340138942697534715203191046051071145460158009787388657370065441383396689241163542148835490047243415177440033269082850094105714403528950327720683263183016109646024186680563384365431086198788468539509031332530387789448347295876990617946620122907004347716121572913598314021840881841066010861107251041115616613806901624193877792586705548252510833646010315675575315242730133825855671870264513005238052315031045329516377556577999116663001732612349870538355301265022583866316588763918782131407291400530264836989887689615283009665140294184647787289100291482983124506405400346600241772688002152243173340337689386186678863747343621812544827768742024260070571343794083502535725745838829067251496551802995980302328282843796768385319220593898678495474692059780289290832376693614600926928741579219063026482070558834018908857682879796830139062340120822661421295126812581224326240361648920679410324660180850269225458767251467483742463365670590136989940052483528800660374017573490184772470024896565217191842539687091520145356370442532797955412468937601419545346113150153159744908228704019033372753913976341933427054408565960135208329885051275157879213065595544454036647464861688580243176722905509608317023626398477169755936476695443968199515495854033233519958576508443695046767718995686148278120743243138913093381814426004267407072231063579862952499466468895947257078230985095302408434507823991280353973880822583011323229504676700441280337268888499581047298279979181136415446523222794098010368610676756851142028553533639299800370069375531983614319671792727596908070311964958100199430560751477343910953438725639458425010396120448071291403305985636329894339017663121900441834951110754674383106093630805942491747776386127938801976288704148858299162307603611237201102595886389702672454120730760958779793464225294960551167012284483529812880397199959143715126651131749666892572766023938472685410342684631709194823087264813010906364237743049506443250911730288101558346691805353011285312637268144046089291899478609022964895358834714044128298704299954681341212774988997509137155568684886157401187588212750760548144696931267790467976144257779782679632779820342933075471856776896435199924353994384874720500310973886373060093041447822898825614875951561432079057179261044219608926666103850463000403609703945993792794065535274708879678386205847125959374115397131828543049428645559342053394903949547274883662602708576582420726418361425226108092811856414011315247892333078269960080802313192145461939623327564382935091957411977357343939342177163475336875922003219543131833717677040286469613262659175723137378281203702431700854028467794870240417707414581056340188411235264545834292706297659762630485827550930720668054879041670406511444614727605659014767763001871589393812409110504067821950258250000740677085864713244554824715715606302218239662152699666603998093678802932087049005762705608712449804676358764734112170315561944563945546277172142592466779535979966698556042787283518886568690928992987987723589379198979129825269571888399350173201297212004205987224268893343104729387077455529043874447474877896999007756830737730934232967770515472105291626301819879607256601298453545670312658288126199811906577990090775893500447468996711713951401996895286794434146013525026920336186448716047056881891210621963420558987029461839811222920602287522500867072607716240256856503549403851606454480180782031813851577502635783886073072870628551983386540221918833296417923547251906798722230328047386439419356501695322445371831388878934998638085013737383089594852037852806612560502657771595657521046975502627500316058849417724431276148857928035453416753286525196192005530751426492193444394628785604315168729290739386500693476139740201669424605931327695376763627028561489102013622027059601294776848392046930700270763793861620917612479320021940439567519097932163599524984746735777132844780513978042301156623095859692757013516019326814048237222247241918535542138559735400091176324065170199133787614064062200450642572995065374856782561683264331689055673145671576850600488275674322306869298728562402089562996082704829887194281657416652428485215639315255301324854130869466707784679711957298484904260941877025152545759991325620686343481435696281878741290863418881173339463195107330095238569032463526660814813422260611726078854483341073677045399842692874877756423734107594174147313330481213233348822718514864870917882337568411778784978420908624100671915055081764606472819072319786890458990903780565447159726972399168097002514970350805344804744874535459557087176692909988188383521937627772357564682840459880547026513908393181321895888847976522966011586757471180315079962467482668915881580746457512239261001669178700082728820935177572184405655922069866341423015179486259946291850847177496103681283357124720884686301635814068291582759695752055630012844070909696935255836704452301932322874962748067253784118131198227319162383241141535247276674799370737698519207521650260772252821884658959969162906517444997656697847857142129944513480508565138296464254868391338436257165854757087811365337178852877023660788263526365265528458451289784628705349790672837629670083128133403967716911100014226578568569765956147216182490941158558466284383760456301221877507147981541408811401522405599208664636467455681390309357275346129630037441942357608977493598126898762026754443657683842104629024409643071856840625982091669555550334975903804845174045016206989816854127899211848296743748218800287452965629005748107166568527408258617997865945597013007125992384067928672743611058659315077410808739360354357594452204812290332559581843981089726956464741662433238021860622814537772936942455404063232232850852114800475922033300046060560437723331633145487479757307097565855756884551920114575834475916698428626104130744157291677159478235566246714221015328233800719754391779384637894754242615306440167642605926102939618658963417853156920324772351287196924767139286849216047673603901803960227928462291331627056714932237579847973397620729989622563646828328504744895801725038533963756310272550843008877349069932166922097982271241599561686043734833414024415612930306269111220262717662407791309051236165032335622439623083955287188977091971130420899121814163256997493591740189137788956976593612520311805074801732924630740388173665842571298784716842348603879484356919009997178752341601911708618979217535084812958274992705350984119200136740907540923047656650695807658944921437946503738428686403873719070221674024176446696221600519427180295078934309583753401800976364164850872138859724845474823874034029648871558499251030346741220425634934757223701386308477873204038206043079464543329485674342501552523677230738885160090112376523304981140585402102187052059751129955997404413678589669265342408723772200164581525432896422109008097509904590491099242460615430345958764878837391314114694981161453707724600359251091869890700933937252596110896061894321705092180495653035520693224184139663150926557754099281110034755553150826648330724549788861177876852210970392757252129251179557599726316925166486148001227441798939144531607129148585912080802823506605555304138279781296466292310000299318250300162190927330434270160934976861468148003670304705426830582753422099462557075160914753016787880859318858780293189696760279058929685596006985667647030944324769175356463581259812671544224769652438699841172731849519844757631418388219645651013041747100421773050686827865035893931753363904440184574134384485777321308684504263953163224041094931137314964918664108408722390553875647371218508405383222257318046404647550584082544320188817965078453092253334047238516004294506104368850569742013325994184315729215870390188161374402724417305427405477547731219368628584037503027222891814630333546798647308395361750134484132863570114329209647479488512996305936293432366278435112082374416399040006315420830400653535767804771332643890909927133429624336321967490623645193487244353389325084344948498902240658812450400921843146805871833958241848703435142051647981129336001248766539943457473749120675659978121132579395971495625052835249055454940705973878466140952461241948587621565077852755928940040152919995392007266382288017361163737034478979635971227221739469112573469793950942380359635267359165901681703377836713123381703628996931790380263561581299056861292290006391309620387340540638503405493621914221140064352085372583425111517151327128992089844135149836946736923786494218844552954907840403197126900055561945072524543047021419419876306989108514274136313226424785927738646250150177131200141276001209525845859998209317619579198549596807529361959923899941402898305755944032329502422618583455594618252733961466597346984860230232711077009694051729796108392807749929845947971936102364474516767116994137600946478834767721410944436826416597029961445435384178391820644044870686937426075326225059719609968865065817829221648090196521644352215492315987806368769387166163819930034970565395140349008302393717508256065990761224435421489189348832639747894043559707065017679922451374008544402704869107523537746764318725222936727459490457217682591982931247087608669353336731086234054671548529888480605724180990404501487368687565920476271309518020216672962296368260472139415145238984296521573184146939173817605673300380488314291722618533586988491802102880158454852674759933144820408337093695780425255568829501282252739849127936896980150111061136590766796794558550169394796000365515345926566404039677363627644705175019032422784622274392688167682216396308877189162220316391877005943302492685089837618570381632899666033682344264180234870407373906157138191658770275042293397113275226404757044509643342887247581643056029862525400437347209531398876513048112862999107549506376247263610106773255762159549366330860782772388833696525379844718607631583107074350487527061983525346669734584072549833776243544637449993464338336470685398496052078480398314476841696812058342509217017441456637100630001793416259170074323278800852273805587635960394416855492332151280405085792855354716601374037959778874532349488262603675279007556958022532611481897908555967858563048297368366083797294986521842960126321262869263225238024768477571433154665565244153935098242541701871611638517491127811738854313467046712516574237098600291362879674494373344967116254161090129348214010698813629284121323871125227977667714400823632229644701378850838096148456965226541242196396005684175903323585763592650440400220095505381756658972219590970203747313567177385291293780018010292526234112410071063513172874381617849070863416358296197635298187720448939768176442612577587645525728608846174820512798769144327191804955108419490912715561201059893513024842630070725313406407933924913531424345901061092713561475898141720135432398594947246196651631744302790007056301518485232758894090952786267591133090623002861338258540996721333525211852457637329089257324956045688178302299272273067776834938950049649710508111956855814751214051608834108487290409748448715335754835651929591499531453280182962050222883161671212909769620181306552354206010422358467300407123401097278186978789746044314345439391394476973224560292069840806668659820746451396467458818843161016928700692656839391148201054488659556176504024109064776735508767084541495225092992546909972550574449635503816495233608537716593444306115071892882766276861093995322967526507291242389308088224496665253723217066978217355777386606609544052244077615374422589071345833836702384524254421961049129516932850540513730618095975662453434900832079315008106761967480697127596634932267494028030432720947077559552927830419950996018996029885997098253099266483705206152594582043353584712555514511143217323781384368346397314013777400631427430609430358521542713835309378141515302689423735344360418121052857303479550497657772385870453346920044431864811495799411604660627046047426627509074228966614318090296921845450012428002316841317817365026577225748981776781495087249099445808834938487065696735754377763898741817882686511402675552313218825757616125798588059907316376822625795900806205554429830273784494647362947039061072923599104800461775933919606925144509757547819150678339784819789568628310035534180981901397001299844093843116760281370185098458143534663928842843793536569259423095098982120144510110908017253679717575552900727295128640006274939979197931256665430751152152354367833348161095360533698418709839349690339123092768500384553898835465695200364803877515564596738285062981762184486312046209003331368371157985581653437172935025423765092951311090073127674697239635901204808178283462890037065844422462288591142053083306776374952922407671741755793215468460160928774202440046280519787638083315306578839148813947456397337207642226353319903547098852163906478681938449883940095377170384630231115594009473158388824910967972488182987349529925864658338471071132561589801215293682712701098997117276031270877104304031665995257566113615008072700260315678187665326676498092577050458534366623637218627947525281552112850069958305710338787572267292215816273121466736258665327332500059114007003000081580307784712048412016484579236784376036156031160997603753258626632675873976194694264741587170921996811408272361025244446463184904281812938181539212251058797351474083970187755973405415793055816216205649337761832641634656422252006220170072963905977226463312787212856959294601608437005056601426803833803619394689583112267343630034943569556401077520099996179899026497347765667133406297212838787655964745538294268372563275315707509963683504014956452912295993950519662244285774720758558473789064828386813429716593019973494513849635503051429570732601900770641458675146830556227532902679603057530584742321949676468491613454876334205338578092212152583779596284343991548856412899440989411027458824560213390425208025481006250310809058592886792593733501970202546225752193047355758809443382008433084667695616547751026712007415475915585614828062993710476649811796978557798186238643529156983405235606455576306383430518538332322779530742338596864837776780708067149728363091400742627560893088510695592406804679007868174189159169905541922807044010544696943667606311926482689839667714754164388857210432652491051365403646924245439969735254081145916137910150598607501706141971489343993984388134595235733475434057920832969679668665756188948344258446257537038841577297464085533067808423301252246558626121884168933114232581216049949056525149314499547543076823587556814596205016904043044458382050187053589290414300963869850248652971024128047615619502175584977776725726416955781442920476931752088522900575696298395213555161280713964260202318495583813777770811767434162966752570768857106819482919253293825330207273861638243237434906972486336035029481000909262675769215828314150951135077460355359480937403721496323482831476607819384080708636595298596410681617995992565016616874669589144657376065921452288349455091446415855101215525813622865086148907465885860610299899949100027379454060324428557603367065167906334963964199841513769716454386164356530691881925738225452491172222025320303912549568272724870372121786513154709552505240567639019872065955896549156358500163072093388189084026096793370284536074343036387172603445986453722505704367351917022573859250643119466157735854017177682864894604482438505030814859959186316737984383116163778841723490155653521575332855104795122315706269485903000350903063438023955422017022694512553919876399246246659180508493801732635952789861263993845416316817476003572138020022933741780738428670579514189262461182162905321786077921837574298976197253586070980372247779600224881422920134302384986026025045005874055933775340026345878726117334240496652465685848264505101973038445966696183930914136866675337639880413241356350800215841809929103376608572531483646795633198150231077920601044440182489585614051960957907395034703980192825470717131440651964972573740394434120328630465788865502207358426315954350854581677230993515618677776543214474862904665022177550394409018188176810732837671603339884569915940207582753656899225331644762130887289562341453979536259671753012354495063662647337982406957629028408736808572979215423311543563993793016313227715252954208454379829168991694324698290167179713745768430613105299555179057573178033870886841454006118329313571742349001768970460224466961925344395835218255264413260607340670110157829788223461874664918713541293766456426631603486313282118321714377581969034331969504955637693570267290489747491924428479045196614001915791998604782608337529875327140883598383934947070544127290075292633075610459799217686715653297069819148551548851259653699675390354088920589157567321403971881576765212326684844949827194322575908353103830001361503219651280330337404816338454114006969577371787707434876149345995911363591525458563088525108487048080482099809036570346821765885384543868512758049175658697776643948628335923204004124797762381570458611799893265218544162271085172452806772921203897558033066608089969788830484590089732195917361957163986036041668408242478254348029526807972748409237230645011765475909432597796500698573388830163564974419086426681455833149077845925948433594096051778053621315833137916289120132732285875393584088720116099831014559538928746992555007190469308354891634457965625811761264799863229907596092428283213274880529929766367502981379394821700278961317398404920639458088958564714746545657392000496947807162373652717553688989665957475811142800984957445554468485656566397279069903444252371843044909067197132763116002088056383560903891135823530177779244619173730756026187418389478994740794499619892596273192322926898769000073235833914621465661425610583631511855904602418086285871045992129306899717478101547664747889977351073022622676655986997628193458192631007781870710944212145503221400634971817464106442572073836021822742961651153119896725433963303356008696398843138050128822341092947754033586300028727717830771562460086858317252159435470799700950936613945899564216472958308977575713392788519319838753242982538805601279170549834362337720608134666287973410869427149054161301796991913902750801726768302767082187551620724108088603093016102299647307460380993644335123645544175465996654589187712047266711647870262092178660234853881539202961045322224199609453308713843240937154820923249557279347964626650172733641800957228486754167122588682179197082609260380041268814125337952189470968010608102536029050096694097150699481831495361190760808840885688164797072284681651727117338204619917654803958485851992501809290257101460058611106521195469430908347593526052106073731716711484814414485153911826111914458444410266190753971341154406854287280841387427673347639572830230984303194006891959007486077693312351378506533983132306973211692577277939593861041913005083921373989237660703960609025528268171213658069675300410803719818421537014778753990247255830542419606618872295708254197815967799716222725120201689064259636953354931857552559091137647511354622639803901855260315634136910142856143006495186003138307548127894467084730954067250887799796648860339266972394898174780509734614671356413808655047823750095884059337254555443894587791697970473005474208881399918615773619117499693117874894767315978709896121685756473452714254814611948801025825230321473823393394998879326508007555203694524267358755624170717902489816711842632408095420789598750845604758976361063136575146389857398541134240561004783916059513038501785180441023276752416250532928245120170215351697342247206691532394708329348762698627968043209510401936930644083988174222559270932036756038130947445840936183348285529416860082328843767080317624205753201831394315598472540447475163406986745443961296283776204169627408514932801651910630594871839408743417992103923284801498081329255938586662149688954810062190222682505130751081535096442241538027703415937299367234018783472582559171592673942656897350043741865041505000127291735404617234180168838970780785275980730866714959874717110900870346711818404358937634349769693619547800732669160255931473741579340705546295024970271644615959723118315188599639381398772927137863872016830129738382337769040526302255797567490747754066264082499101166833724209876864307572954749697157108197039118415009694578433629217378407613275284676233550815980461918987280874578639651648967049089059214692006781596112533094394112926498574379808643749276991924589388990193037725937395467655170176045638039611968462338486766114149655926803452691685014379763041156590491474504514410468558260585157200197976845857350633010475910445850380677959450961977786006262771937543505943560161749983656271147013470514034226884689421270059617965046703501652125514438884266685628273825740762640540200152196268485783565317058532518990692272617473298135386364582357700182199224060856851567384989251155175055206275447353375435393250136148305144499457061630384276645189042808821373839091961019737558121389671140871212211635783612395045972163235251114102004204672338839570279434847054398660082745533496073899859264181036292279567786838823521568052136415615890273114402248674421323174546222603296587470337672350853306300211075744805993164292275405087343887097704132010599756976490956030039125589361760272574940698134977710639352163780907433352770859714452754772516924697471145929964692632542292533607469021720306310115547965013965240270570858744379488016223930767241707113831162097368257631963344712748551193971240046708148955320460048597321440166916248895482529037571823673184056448217888795972536098332478426280055388957118424117504409981155572774649522819056310769838907473770747672561749804371266644897965329234234438499340756723072458220487016342167389627973852314798387065879518430241557663206834512009722761310063042129707577276463986608772925210380904181959844753985836531929038908943076237096771387347081022972144973305580923887212871605779663728199591569783156756826819159132984338680429621374361728988285476410421696954645935035420002947384585932238464346014317370429682257051690312820626204960114149455837297547531701844930975975424237408502640171239135229782612721262992832738153225759464067663785634787665244235401762032497856181125043116523758821482954250483436153836888797510807959667803380554986292217787109993703656688775635501082824838145341579913004031904489113170344515044770047635472926265507415939562425498612688807428200006137526780813047074586766802966337612496983821218688656829584676638984091250176323076663354958766936220075646039707578389871248320671527235682005930037949372188385960424406634412150438453892721107169277559356911384741815306764808120347905544568280601152653423010792475832612340648813432848312809161372048463156990765303526061748052048595696881802830555217393999286931729543612220408669997440278010458723144415998207967080671692312144229694917574167963104725664794292132426469323467450535915971475301111585022238374270283905236657253906533281352774101479286970670546686027639999497665258577499745351807788309483639077476962621122957527320996822826750379905870992338425782158614114775440630319540509430331519548671559789691545543861321042159847332537988921509783937333251203911637109538762713609073115384624906861999465321569257994816659771972506005573213606352248897891168562782912375749732056263111908202932765599994770741670212076331485482785632437105620826802689081810066085165402766716305477301304256581385473215126558810327897462735238459843889556781140365579784130222875555000987703484220272339410269140734163444644890837785080847652304645453295109950773193554095950658611182744318200915273811276874318275759055153894003359663473542880239007696991388191485260774626597504125468209471385099401826612823516918468270171227599671628964194702979991636647651984711567559513283441789492694913309825833561418222097845984922757729176296878647799882115821964937148924035167877293847864171697876694385638373203032446400689820064357834665253718300628935091932851339925238475674233404641627776004818952394597242630412192224248823591948891830085903336146533916380835460975271475641856823498008785990604173130966742710925859115889727034716639810024125654054244460646448839488230876425051581741360448857135025157319998154184029983602416156652022449850121888972538685448567829022792624602590865008992037383259041067248612667214994761094218475288980394665373568127622621880833406485987182122087054620963926133499052563873036328058600905224514718526965098441450015775393570637685736518804946752207308573001440291156882654957523072326760337045174142231470591456743531859299008732924528098210401916191233044509621971635160599763079353450533903005378806405051558894354037024015878971092240455193226243836109700913371772670049558405641473845662765825612560631996235363834040062176544429446912783311559553265743776961672709668765395521019232822888496068974341169656494746279968267967179313822366778126074034889853187139371080855737438521285706577090874887887185218071187527736113328181114479251112105365980512171305718538041839892784591183399664183674283196854548491884265956523512499530293658087020439398901140767255547343496936142732271504625740297078079418656304406045499584088749978757871158343368654221243909469019392769136647148821510753351865732215344314058355580749784797548336185767188962608076683032362369899892166721928576865053405050750808133308631084386008637329987905875332322470084870219430588309009690057673358652636360864143933660011104906456438152430276267740106009933308403414970635555584582635700848732305591593715283015911481863578275188382653964522735760804668933721205740660815026247993249013737745799468661812809114742225399179413283447116568650248651802666345264569509689224067655300821703919987347873673875203649915528254797688794333730816405574424005279439150284088920541025824483674608280829065157014988742019907723860272638393389521560899413424513199227462303581768048774791238795894029591363776835068814215312195765862734084693321612950679344063653502396094416162694502621469520958556190558531713686895899121025453740836126647527944605941916265181265705262535461209641065885915933238028896775793680936403154446670855089229636512279765528159232315707954598286538986324175532647272724077438556176884507342078691639960803814911863052823084943955017362570083447875583143464823615213234877409209014123755185513906438580119398353414231402387316233326049125618156476570815878043708362676631966889191488147128674731278762472485196571062365582049181711861297548663094372563311883136704630253833568784001582464651453592237075731848764645999429968570716187982967852277091402803841026203056165604696553198732497986808781716229816378754086597981542439157340620576746947724812579311802279169438333868512775986233904020346078462549776715104896496698992578240556956476296639230152897754276410158327571473258453476041879460055715555040488346399971472825642523798965193624012723477125125599994638176993738899327521444470630028405591899869010141537247102638046595182098916513971664536121158480187930405680505288359612348384984650279483598902369627562870032991335134805045460745128151958867028582477765444248976304064981188668561509815454010115465418018492827244706234645035122406423557194832459830764834657172302814663262564174623399375824393960335772759913980832839636929825798936976977959422153980569378701834605241545736750943507851071682867691392659913337123887642496706643390520909220724037070127569675294750939548631027707581968741112788105096242558848864686641095223921842376136893817448836808542272636618104255218985409464034978793126924551562569873360853525918426488268034697952855664061338375336114614238796619217248843940845602027013331783891697869278544712456481956391617484156160156441928669695618038851024381039481549747019851202733141195556501966651200157849094177566270708005492080880638487259371879957173836676043810566140958699245627319005095187235847621577074146448336176534380717977861958883674756470592176755765814888283158874444575500230833945748709570370065231796432374785524661161559738652179609934649271649505503325992973095040706225449592362964583252452395653822796934744313346455754921047701975011437576337606896681448035693950666835884807434306212666666474002865762553971991515036488462362726166365111830326622025408031646875554696464182531190197561797173739632450924681020136708656554738789407085303155400873378659704834316933368652512719061727657672183685446477051947345268327750023409256296058641655873779561808974593899782988103819292337872044952317792220874076109179546674428770641908509881715556614007058755716838258437658572863329007244351579667333701459882278853818035398910015790804770521512863445245840274888973212333070027606700513777780548717838136158541047459242387063483977786564576883527767661005571568737621543066178461202336182393204913028325432346656204153913429276301742717290150207334658632580150885110590078850063822096780551889473349963055132598654706723251800577233362131581670207302115583941867469400106902014252828384790365155300297187004043894259957519538626392296283822257325410178980133697332724105120992097262112657878060001907419727571427540851009515693634149649379142210837567591193068892007154360554530977610110891120349273744074968377544407502894396385203994242033429782050289260913293720811755094666522309839968704339973773469012481352832432402642702709362236195795763917496981849862260799436609410499948222715851223873872401970009540429879217421756343978059071869919925642234317988360027868864170006192516915040168128986314528751286147402655796176094635527126869110201530963554202379889543556300675031159771187423668428675735901027087590230568384028803379541716971478949371919097622108600306861289253997768529075954920752277915461833575876760914374384116282435715026170119002644223552882153099750186594136703667811927346259468718201629219727027504472864895403173246929079432819992000823948562091489850666067221076394382102610926521607453226241525188474895179058930112856054551066921146030625369640095615192000896536928592474902460798441385832289821669296421601502556868698410656355290444195279893214161583332787181015799352048688352054608253163317029804128272138024152772485335603342207527302450906622546026912920421216915857089876406198804487530804475304184545728503494782025773470338670200417488103358344677622526217287947897462327953473988665561790168610811409440277719336068258926519922525521018663922563633362407086909513307842193643887096867691390900787014508200707466037841590535527141794774927326109379968489531742834055214539396891132646532806842520731617571996513767607315260365723053955853779556289501633432547027001609570839350379290556230681338502996110465254915839086202517847340699707907324529025569995171254309908164618977842655547299751133045706329419314642883540237044587371334450036204156253140264099005149853942550824077295467782413061181260756193474935289766580887062440038711703852088572669824539152159600138805079541224562093232078710108621714154273693874709739795573248780561717123138146846563609193197051662292491063995028200798959182614552894477408708752841355093022911800495214113639972399857151160594509518390699559787503490342333689401390826390155491549391719480632550241817303637416939097576636492407701594163565683515161832371390635529303988750792041826738566461277868679335511227554206607274981379424003640217897058670233024228905389287303628920050924345682647438964920497633591403012742324554459619619128317902112185306398116799897414300278550024795856408195326131788985091073978922885954112079934382531357348454422672906440405453150760372061018193801881089441771151626639978922647451499241668449422028064629473198582957375282540524260010407308792516724214016827327267200627982561135724076764894238751140892398041245045876123820999139527354243819820700275984794026806504491366428261335076984012168429538833645884057254545961705185365577015705682791604778088153324719107738781671164339479559556702305635720919934844396745190159737863700994881620733150546385140778440912237644143490228397759441023273190957579597153830524180748039685417229457251096643661936621149276227397862678245663670623271815938208448300689959087883209401909889801750086199445363039824489426102782937514974700767026132480489823001180841815717202328822167383187200259838188497740027271925617033663318450162869246479342051481818533671684549116011375415449009445212105392456137872328270500834856319795776226742588123575201771575230109149227392759223123219371353319404010727953705356119251321429344105316337781670950686655968920245178748750873480142094943346865513362723497356881520410716141894143174258330168096762623031408026777990141973665020277152339840858403009263870619947174912313135962801658232325747465268493667013246280258945519732283548955620907614943513072716299999709792935779218909161729024055328930500529442008389441060186006437745945780761197175720176458975052640806822642778144555805630241479608907796314749998464066779194992240973946435800560565707876887984780406480843005608105043083265563803845333649719345922063532730008693426136307490693848104133185802274404173821137498868883752137329708872016392589842355960715024542847099352027976566171249972870392124898222529583330975641604360662377977447586766387517028872837470869166186229860168540548176316151903769115923019540584406227810199453566537632690108967096563060800902813338867787035525154845238073528722162686036463746591337182079883968762083312112144225773129608033728661508030650576340102643443165435821005745311446086619607584642754725008987172986329259467746219720061122723479049559098792841998025110900745922556863415418316739690933125306553348813799221958513348020156437668570658954455498883935351201002472755636872267952311473252403927110996933761862337225874360615378607358037637917368631944412734673990003381165317965258304135193006471280791290465227766373325084857504450307085680415726470809866070543740344498038513071729600878716440952152298181601159937040436885326049739435621091468020526967362105302396203396608010412341286838097745988542812263776200581776890380038124658153384403158665609457075134483727698799366021502317058843074940727211348891188215043253177421736137670815589963421325910734990150977260862596983816999946318622089250205299649175783193701766935335991695445986265437163209628454181049389446544468360306282721928702499089878693302799333171888822314876029970123140734108186532465926773441525352917234430585435011744565416374569909095797638220756259367864166908112469695299320638297300669008332024527727508693525164965857574957632449591129666190629902985897581510725761952709313884336415411636723488342640904318772407639217486771051496954109859746267699255976476248317650474163203139525002191849031727230409867168266836536076880978768076037489949721344681279712883083517226849491896993880329695295258689498903308936116494539789057166601931862068040836859286385757036309291066396912824910265640397536573398740182018035757419521857266382471866354306526520564422277762131019226663660765058345233280445997799288742377834421536699383434146708844144128703607887534375367473684321368322383843711964646100930343287610284548111121844476515988080805619006987008375356103223622591394703954272039347025093479854981001574981025239920135343568347066389667445072713608512152767997087861433874089012746205892181188328451072353086473213637735494156431410504872309399378214208277660027505440983582491301589923259192481988447757142046946603835604407311918616654343050659375373452488025657141289433424129395445392703718656384908904390185300168936015752459338202194972530206177800049633262062337708996614972970646256503327392427400391773353163780488316554060117177511324116586560501671742036684144996414943440065232792216470381768571210898521844386598460495811045022023293378363097109439048753407044487944628084742746039150636396687485945720445489504977001021173951505545336517643532067067810728329127397649135827533488310667013388997797634204989172599847344117304070040801139207782203500254197719522845071998488915691760190034872520041880619718802942313436761255351261755492150237476269057108767703019361771321440919665419947534664840001260506960814218554275177605028090519570659452574666578143816981742455817702472989142684130949404364554639362748051557122011779880232924498721536693009992216745827365773139032349108163374237396189434391640156944868308081563547774558732692905028458418518404008145925888996574716701611057148195989607328666163296535214906456813990697704708467083327561828353016707105962504262003838370516421643122653847413005779240697559683034636623076710228475811525361729973741546502511053990456430170853380739893579556176463138328621461302930694955376751773860602864480377375480612591281794982202738266251076382659089105788985398698785308343059347966349330036001591202506087527011444055736911633645062078138694240002591868880592721202546437943990691863537016179051496797787425241690269712949206376149966862658939285758704301884118285907667903451886811058956303085238869967088876868058416613896336797465621671544411132122726211477283346660121918215114496258982186217393084854556780528391735441687815486132144013407972639445629994291882724989444653822008516285141606318906794733890051149106356716828084853796252291894590112240700198287868807422558208185866419536439715250323936505997685295419204827761844957276423097638694220917855989688899686211463285779482533791354661516718288443385831802567460887616346405095911765692183689673025358102077020893319456281096208020248548680026815818152173063886083770149746610180415386689925197642027393151833859808334221255491264137372149957482542890076961946664996511612092538548187229321019324824711579046964621883100398111284312155745168064350279606166261497015866915086265509096907056930582524280689938951594595493320085399549937257205097350061678246501662921006751277061808162580647337626807150488577289483796302659474608748027067624959059902440247521222642910567320256483551991181734726753301016133311562042284223093343501428240344023660092036169126125717890012025770542291031138634865112743354560167993767170414018942303570992391708377975091026749039022974367985555838256270155927777851404902904477329949153665996977224848136035999200130740584546891949765819079105230820429169426329518742545658315605622461059422523572052307518195158906916886183912778437533392121981311227278649828699436243042398837813572971750424585078637554518071662773347568960362008767532905227843047067975975858107647824319230302127345998887461078117059126383009660413339668504436495409681648219242297249232560701602556270249758127609171591921309870620459219673894197119630145027189703040640942615175135462699995200844493335819668236489383970528549890532884445382311127895922459355152963606305087930653029453080665865641932998807389610822438096589550346762348897607090177376944398260585767586866107546354770774091149155250003436242616813095729260418371016566520445753833713081044460154799362135118926923771001223193299018179685605093478550949146719026515550475872342141362601775913441703931098819555306130783162572250504286596296830972386927403769226673371362744630768400975337032527163864052824185575883899936762553449444231928902816674968128923277535086846059515047538649861137799079676783101828221598355577821312296570123825050407143679438635927503858413805426149983451698608251438001483788015083853362925927286765269193272033641938092269402356844231724983037300038438172035486484910689329203738041859040703617262346101807774211192407073614291644347111319584710770409629982188568774560872015582295965186704313358418645385365692195939337344348881692640018779879115249106843636792319818320793699190316666412897618312691568481682788521044932867999857411043602252786906177552532539498513211028567108912253940703855909909099275492799376839397274038603595545288616588191440527347434699437100580803363782726871347503514273838442480932552242892783657110093335247684921471003609183977771446267014113165887854051073511148749490469311159608946690156083495156683897772743991636617844031780995060628876842711092060341195499584890954767108141423986159897330516105520117138643744223729274448208572998524282830183162441759249333256033057449735415166617690052955486662066211673123909729524516594650428188845957270521366969962280477987994379177201211149770588348920966757844326139554607683867404141673970347676442005442926696342723534306180461489318892117847155820488086893680205997672360180882679312399891806640629976189565440774019961243696047266297291015560580547288708372579407932894179757455500250746455381337144887409786208395067119646437818204546921969468119564390467137297698766916318618229650869185739180142628199225202719214399127026353759739916549467432988247028144025882556114460810626529559895338509630460284218647613117404954393668992074263868643091767569488741215642966654227891579720029806643585106716486038192218498063319835577129010443615385535962945453803443370892432790679589229546854179663200977103759289756153773450898032624130485025962842610676964187822295935280174799040167707532561018504776961616228599902171867523857537529363966221970823209957453749157788793680797417317643885195574257832644403440424342925955739437535726512709676147545576315695113749922462780245328035875884527647601291505860337770674260383178735727202812439062654491287913831966961937771183664255011276534517220416539619211924548558414958445775684155541108252812120567018116589643615285963693388373474968322062819442927860200912514993280728436389914740901839283394824881895997355101857263506109280499624472904420695842024787827271888825502780836108007845955745359761973727014729284494823635213892741477262536672039404972131390616995809367444304630119264626635367221457549671746213393848309602331654121593104636505520151890780215458615680267080820489466142424047650727125672181381319745509132077481308281861418317804752825530830842991799534067235484075091815894484850272831152038496639221490931008741638907543940931367630145432675325517656410200175957882498426402963237349786612516203595249767893327144135560081865403210328548555202014147301637654187785697896818778876473748765464208153776349603141018532703909849306781006620220423144107316426027936738178795824387898691088559539641119869933155192081145584763718928774816110364940279657858599991028517532463734221846680130282338807143436349917854400626101028662782525785370522239932035013783479804819394958463499217668427326413310468650384819493292096105648360170275908944516968752726632629657546379438757430399749879427623889174327404288066839456764308752553884236165286366759265362246970584704379788097016830147374036187120360696375444117932069868596687132029089151847704697383075069905587141471983758315423942929123226695165863366195791241259201837875481710090681731960354709156283534766898816089983611739217903755604097084482684978634421258432654718535449469300448259984220983717719177895331001305417719314693514669783809027610551792763174252414294698402879477809033570347051403481100963305705625640952750894484024423446007691840240913220411804193408548786344788637694878023264917460048486716789634055028230556050752111060980740046338048309678713417664770648358978999095437576768713434459794248466429503123196371362263842054867899961616758207714913074688338389458425500873947084165828295361332575990844039126148604599247994812766041172307652886304832514558999189643626616062105725461897932295171723596127858316099358665485601528901611049149073763869072406797951792050348809440135876594611338039453771860749058864346620967817367100783391274458169510630539104988166530651291104660894467171731642605252221251869724830089944223277766683252510235558387951327396758541760398083298194044551672753144320808637744089011561677394957881959512070535722983422081556650300056746460878265584578189276795363865003556520221116551169920648146921543044802029345090203308647611388866376002521352330323877872574928231636982883906160099886544400251131787652732986887745703367589431178285565855082746132437777689391307191801103548075908962763545464270568454045121936538954680793621427244007940293531942975191008293704958106865078080491750339927546394223306399896048101488287978548692515558350875750722995101249157989950141695554735252048590621311242212303866825565478592047100430102122135095382905650787317613208219215459270528791665552763760628209054700554319929039605980748722229273403999624461744027083022317882835323896224021444704808101757936150519889435424151418289275742360646867252273201325318837790405567472299568881708477915970751951414360704440976217458753018182033787099304792280521097600318109977391449642435823962335147660166107644384013728112788736007387746366845173583477676525875816023625938981366026649088137812193173345926363316913223256991844017376036379088222698725485172193598132874469284058769102455355555474590126293515487336044775460627265575152199607205492936446274720358045898924286360185912658863007040781521343694851188380705041073587327014088161771206027428598646094128456814811907039705817479993964943531701985460868288719434543230989838393262707948626585951640721179853183139199959594653287202926220272095825732505733616230844216390803431823316914882955490866181676773037405399183159198358399733546009427370905207013023267735613420248590391323828291088819218629559965249158381319312308497739211835563740771506941870918355445299261095194785452495080580739265184049437817930381969727782577220642597824486467602852852928280071219149977877978524914683897262833866889736282523977664176708970961251395774735981697874477106074063359550028743060503956956808296371970138951395404460791834291177135619204487391001610779174331546187535237407057457026058159925376947703117920656767973706945402954323797130195868304842925890845688517145402443442777016802526882970905185583897166015116373799504555248885735509295762563095906646968261193433520328863905444619766763514494286806361594287341004612003249457886460853190262688499557572966450236301127098015020716936328773540996680024004509607077497423566555806620564310004785475868120803919365889312294752640699936038757375542116123739194410171198344894575066141651960570154569707498979565518528630131520898163558735096034967909403794422455229077845436894433544197210098039415024164545898587649236172250005747812276573645315133485864977012820437225048638399010676709402043660196602521150529626862638570888328803835071515109711172338615991653401124011014195946406691772450966023272676596026789029160600338500252545542393851209832794866756174110688131829253851721860643036123321561332967961212468870237877019333839075616595636541629298522853439614812126564908811151020883571573078952518622991265059825052151608841983770444823867984180013490821544687579355775712541867218942509480093737194568400647482506237246881679975124810313989846323160961574651367554865314480798541005064943612800512513358473234375514010442392016642794023891232905935014209355476853785367944365482980504864301112878300484533301184071447391522926017341733212933793598783475513490094780939381705160319973766589873413173679332160958579866030357714422391774114888282908485847379819640656095622784540367483920692231219778423005538590247142672488183958639700007180239652241628310698360871178465893616208719029621826426813646957596253742085643882400354781259164362059649073827283553895656822734840777518259409938778288756815020211701014356883560128623154349774540858637223842723436070087363341877506081371064900982775543052998203335620998372884605307228168983898669810065639116934312142726135357136129164649007553496413773676553961691157937693731203299305796654533021103411149957189851329164234948487445120031015547530019626174599361317404388833352038481149562346714315109456953861590184128768257652220503672982142721877144241507578090783685579602664977251947749199298136342222475727436971934739375127141268468146896147424078239998517624116009081202711764421874973650005005382989953097086880235126575599495126558074184766537407463975114478951507965450790886357066175651792100126879996662204244522129889071819922663726680305331699113222984264065437550980495734674530101459962688422016410028829602596312615253498137942491522548351625628641936589540487845523373998324169882975325854499995550535585166758109816805413630481362831840022811023101617970890029187239639553649384966318443771793189541880340369796455005726256986174123309823641701484598571722669452710440572055444764834776963792632776186569893133470906560179579157049248334122457293353473506572692398969780615958155744583069712377169229882485258423528826804567555618350413165779411083586790648492782028631308107393046631121065103093085298677043711420767311402394876924822770961493152941659400456621824555408132977285908024099354850569987843214560638297352902106490954889361102128829240076558456973062065100708202296871673315340817355616117336166165080020515660934801851157829497943573067332654814635421751892094017899567874744242116654660569871598702497942327291753539641737721905656531925864307320903846728032266523633281241839563581436094444010681328847656103642634806382372420289025374236233352361901662259367428554860694338641842958962230805840255107275425091023023781671851835450525506421782617591657856104977575961385948088049828981831890873151641554948897312396479132137501786807656071787868249545514518225134016963815663804229760133852459320573207330448311236393312902610367103776625173240925356039183364906439198402477664251877351099360212115074080122165024126710607354301454421022255247760978790613552582924144826701505833587068179843264979892032036731999090098437589194245198974315332464785897429276991118624787781464053969847005328516951510184024618854556576290311729668278507294738323062722073843980447004654390046386776079288125667516971281666278556820928719528156595497204337700050112619964401396333390696408973748423217899764571854326927374060771883475428834063785457463684412540858600336911740508689948871818347597947571660264896342444211147405606359301139469448615563234864631440560761289522719129666661870859985930969047285625056938130747276088052099853443418792221766592923187886524093677824723270324581919438973317232718909405401732480172217036582185182942027675174544530636860009210365854828113297225440917316941755872669533725284774893038738527134433728786170074659017080786312829396245849697665526903736078557733203265053897452571154262161691555703387735824884422958830821947153618320466229751100376366163556727714807016534118833172534742623317002644591365605636802593339786893721560545136531312676590486437355956740875308286216703768662703987640032172064504641879497983645976687762679418920843619999830361816722668821912562568172961499349977428320340972376611902379502000437549610100166297851184941960314923244826559126336414343115894619527946902430775045059016660036016552622504393459235881031743696809013549404271939613329614076210508971530181096769504423487733728154449311275756657816639021548556342558757962492597239043710133733476514441694172359179553977120736147984805386891699132418110922871372115005838683869273500399365883712992392241846798664799077989032947740115343559905941778667859446335684139039716648636151076383182865777872520821513733087771811518181435140015255028377009880340991636327404380927164170925718357752006670438525560797415371395659181930555983717062615736710739210428344342686842617867217480882866172014029016863346354554409426498110526955938579951365130306958884308265095708145795150704765183698774044755722190676104549053736381104605320509294165791297216538489532886429309303938707513392971821039966995743284614020059387686031293112234312791214800426424467568786288769094712880935763919707773225786892351927404373097838648320363665329106280495273288335700943644261351962321085101518979972961913323140331527281243118184205209041082504005557517088237608990815862739125097687513161682583789052569595677583808056424005521111586623066456735115545380372882940110939936455659726840749483450668863371135828760537948067308064218408995991782663999192762866918971561583423011730617535452355032794791787508729380359071405073603587718448850287187922970771097076537616938636280597437087321530624060846860626756435550000246783180230120745041103318378821364270884867111397558592682237895673773348117801648363533172689125340725337069443536910925612289694185735509261745996467710045657451813588152799496409080497949361787512310670671091691741049359596057818474376700034370319372565230108384729900956159282380074363739473648647303547728097987817557243635622233385292920853695437721219542967278212629074050183754205478320597058062351106064971864206209651009880108837000027194315238377580040103939968923748018526107992031972021265094490444512677043987469376032299663826161040571365328235443840660243833362226410946419683459984840073462405406589338899612598392920779072174003746936165499061007915801697392800770974458928337654632816765446115134205519260442893143292811840368638695958549664545318855368214644172159585879584759049665344466684396883426108818137287549031898530893647366347879083553956555772087007377326676928416184517805527460302105398490353731721783070399503480775862660484860269167883505745507294531940390067970700302570093987052981634598690909429792463512401235542568248135411188186239684171096101566521966151365333091710408460283084421880266516935719603478752814198541821773815430411699704661840064280544607620025517465534062057448549224965814723896728395765782318316544808719514203792988501432270765891864283020882084638785682845170419759211484406879392091825202090347791058365222356632554942195532632523356380299561288239344157896395817208288020469683210551971859841710833768178426074911357446928070952110009837789234317748975179870699451929222550183846206684902735073624404500681400388897760236226239944609092792666233786940617001345984086401869734564446344841011593449113850694814328873944002487605309894144096288810804741121802771719500384629189352563503503462010550845773776974528173154715035509860048256877073987268588975158094417484990684983565448537232548466641912256911722752848032774834782774400038534021743236147171568300595343674338379414996963415746512534750193322634373585159439273689984512483312796225722357529934133914145087621884627433877538196460531187918698395212671290054499315547896761748679600856614489671894589207465470114080381324290288813476294150976661765025037895379484362735427220132348948648406598342710384065582142914406871764277286385574620878419966541998544644302499584591148589563341871332992841082206607580531623460386179231269884874863220617277289187049989770460695021793761632252224110701787575143259960974123659200306223943368625959958788158905236613906962033909681949297412205812961855605688173902386086369383616297635050738144834474495435634901334876330539159928114090005769596756550734370902672242319514208532638715109407504972449242963403835796458580709662750930522519262006599404983475848251287353990826509279142704372510964328931915868505021128430154039341457859402835132322639889134207669915956405225185138606127113472312566977941402909154453670423785686716058941049669600761171946981683647426559249367480186035970199884199012962772162628679071823152006185304878732906156604554826718423772307553883041933932717819100486079618675887627980947574956115458206410898915716851389367014403565242175127438771114851238446964289457983851260005607465929396655997003694627304258541782401118180314903025595229162791012215711554464519728115813967792198458560149541752209435240271971277106632056556973948345124659559556079569056441899465589565119866546029353548258097640544125782395157930525529316857177058016335571541018262807859888836458801725341363743541611993339493156364456140518435826072995226123611956017572627432560895915518728412139200829538235892946088885543909769896515283955617995839550278470572608289667721114661583007593308006449011166716416331404333478666339480509966766984038189867353633156278330424954139946875156093245615731833693379759646767517330767209529505130877526810697161112753325249608855951061908244672245702700620356308546677781817973616303408078269720020177434549939917446124041938039018315978524910485572805214283506540371883446238596402001795077176777209717277257219906298600317662000781419719408499115164004679148594536884947062194488921927681448454261115537106568492753180736302992124429579396162501513589216260031459703386126637478278928779407562990992156071660230525018141146554270518153858147057279249402440548182818782924269680412117624260305613281320817286132717663506475215729530171704159549564069128256887517176846249662468282449585395056736841610933612845107772523494838274570810409891628308167836703045798915348181115262772483224070749541945828751830249734708183110764950561820163371790725842133691764539612792816731497109754125800107882644734598866336721801254560103651174892693892216837766149550315436478125272270807612249067599685582320073971590072087243347523636419547468301812152550123345936807061569979150201618529199084002817565660546849798016367110487773797017421661989159117408528996792389712684368993118909944966739501565267122932262652473122126150119296784264314749457068330665350285167099350851574455983977836016850858384597657002127472014213588593189598706073631200466712917638155468740706042878992170071932272783593672501883447881110296006219922583713500114244095857291851599477991886203443510352830187313500586909633341903058491065647651113066546665805296263469836008305471810400847219636895669186074204823282137278536517448485831875429514552079606848239499555692828024045627512862738993513372739854715646869075184385429091501211231758943806517365484459958299931508772208937804731017544154576093383488878814612167036706333865713423730306973254763706548468646011845413727412927261013521525499823322858880663585909140384353605664239551231773409411538393844348793641862723638420431109583970655762983461804393720012652226063804723588401542402890068086462184760375408359467358128743246967052139274089899425372357124700569273784631001407048184742708732034160308899631045733793756341339865676710161395440046232437632063913205468640826173649597619258095126467281896512304845649722336933168480562096645354006621758844698770950789897152552303729683114559126180083920526512381708503487777568107845250333361263959633591965725187886692478582691879224963350308887043331032213290855994494494904079450537688811431405986398602006062387014306042666258847965487396547119568789668864796157066305279322783098061335771122388877190609333752309001740923629050174739373502296243973594193945022764589099431267186408684031915717943934871639566844682134008860553871593777176456558446883303976350567444609021693185396772723998209416538976540222422148240151067061510016456924204664750343033660449895832997818787134649710811335041811997174638461732793389223209748472165068892901344543930209594586252346224147886614081593804287780949430783453930809168503797557921271871470547237362707299676899490302920751667708924634105437337189230616444641712438104934857901989533020311026949574579039303803998963492133722944504392920230324419899815678313730344421738446517744210014782742539940499630237085870325600511074560520991526725712395703587947639316697668309714891442981110822535577617011053592119134097526371724798227011616212296940848090284014889396692375060071171314328596320790173298898140431718434340240427778720715885507062557869485663297911819231727947399652175636164445380343573255761081986747890521467242438880725502589580694053204146016879402295024585144313353204549998720422694474484992269244605162593755422344872816927961508208893528255070963875391480187108016690378442504599092644010493814560823703200638207425675866935270583371340492990937533338780488801299464263468811461400093563626094441172630211007685427148007024480302990874532095638018548042239549544989031641768011422682484905334939149560983645438265159705047556041381102232702621570359515497915794175608120990349965953429583374147313059218916756462622440330227237317197069555325188027280254493222964661366404634753665674853988319616839295594153436754342543606850243859962487858276163535957360189333235162691851054944189928971960482634231977766123986269502728447288884529439030579581221649290567926679405776662092968997292533556050076181412635175743064288602132614485146066748505169385387283688430958498076341171663007350237381289676461425354146076014626018357567364773917677884986606930171325409075095142454728477555454437628350562986960904860867901381192506405821357244748490752861106293570539424265212761377510306492701498450911009966117823726380907791058551242236097160754434616920542951883164326576145774549110105266120053114014540966490219338392558778571345734291939877774461000347898974125252820289262798007119284080876405154272842612974848724613708860190555725108088408086841596828358384215478768115616855114732587395018703181814957501296292176563685896773052916687599515400094270820235483325578441115785892585073160023333535244496809643018915399403976176268978443408348332138101977995721892497154226511926928843900238416826302410496766673660033292016880485934621240789752741520986225451263751995920111410126344893622903256679712028374970767003716217092632589962657206113739314779253447687355635044973590504962782960545451139114675975544215140400395524305799416728383687590996840704304057572929388572139241820467803928859163436399460059812559846717425248130825320933735187957134964461072360968077204894879381440549260664111808746914493562903790850913328260462003697400498188915659498689017810023819872758395324502073807921810429740183022670559205886054943700817275568546706430132727619448584241826909183121408055234509728461584588880498021370845641833084991100392885545307225161218856712320456794056164687208738600016195176283591199596643365156382751209278173753860484046312667170042998714572088811231523636937434299325738745379035499818476377345406974340042986534582710342758139279493110700309428116963614613150667074828013331145142776905943191424004621194495739880666353618091926101872891900712048440236906747357409700360040464791614417001519195588111045347659130464159028293657083292601165076503571106465735227521158851407525053607092412990744616666890143882979579495931294121368542414976917172816906493230200716201810674540599556036447338714391989442923113623739568023677289904138691916288270029181807501218036929053866230217524520356832278503030591417322612954968245078729608468870002161287056716720511017684380124715948755721990575855036711140783673971602298418551928534596378694936351603246692540893943791829970030021356501299458231548449933229760983490739870425821274763128160259510829692135287775681665140376274314635885040874950982962233341661593680386359759935459637060608059662772306429588419336160352438899356846670833922267763590884552556556636291335614630021959303304524333651795342419332080459504910551448055883067086144168134453288011089565133372639286127255625777496423978496092887499546837723000772340445416230282613995426612329913828463751735278370422619683199002435708054372527573196420289007110618350180357263751466663248727154507290174371897236504714542644058687088591373204398717290918429726198292937957488436823978979331056668598749135649454655961688868957711173195997168416684759303301840356864412586561908284743599497320259479302683958042849981823095625627576852355093731794546665950879607450877514193259672659802721696495196157108926408603965232046942294603341932542547537564077090426769608267920487609250183931299201337855369158308231674290910738687871483173757855323984004661906624536526553243714789378749293382006031346508694755356750645541375588733063506843329075229362569014212551375921026315927617097094832894097420614669645479588477021494293665413897436877537746564311703318425999901258586459375539376906350125500017305970417508037791226285215695507706677674265963724645059317969208794752712934474856834227188990068394601069503482838357666827947830550999342760468879950040218156395081278463349306634569367468458330717564052172232147559791816262293574534169239809138647463822645898542208500462745915576435926630455064293398025220639560052702921603349311732819818582770501586649384742550706855445964537025997670424989620833424892369307044666493550528461530074528184840669537368049167761450719786578895494769386443466540159922766380247552889134661909127326142907796055821935811376682986386969372718339871286418637315922054797285537006005126864314218635651758360024768736735332454148748086452890367710228817868665814802384329216917654673121492076190227497102898044692033797751464273917056430472410570168759344540758877963973357516997552632474335262440016393738401493179595192893663618716895124541503892779282808238583831138087749830132518612805608707063446418559433199925958160007888403204126462626893244787605945121288316696380982664340283498103869813580802566830923677856377082619678760861133733157387593672549271608739752139856525972753608321211716684115998687466106512963753062888214490540824290091085354466127283121131231353751475163755890114672493929794714315847150895611079664959782891685764962210512017438647793212291578773662197329934646903779148181278564138068095163764069940963369205400690301136564877039841578575552098872071644826214037638114678779681983015404905743593361835778537204396002426580655879830861990548723923109181793404487320512496342069299845293842960853775813433631611369673967685919430201066226565125943548554857284773985053622099117067838672551276220208139753528327729380132766681784806141399768207047385040908345253538777883635151337774657499975672616118819635354514246870226895984484285672035996488612584929137783214665236304059514809583707370366444950095773026228676111691553238735004239424090017206730423673521456645393649025913725528003633449000875288963433273764983605187654519373824711713037196233662898029983277019524995247159927248972796594721559058101202155766880094943145629096640589024160984163777872283223880793943940261252095010059806824800193369412415117923070574753434986361777228796487512842778105971857419596783723134325940064774733613781083386251244408955112716462961856194613928416571674380093392099777594374905056960974971914778934981574795769473263995691821369739315974920111744511445670014157873113923479909506303179865418819930597411070640480074561594315168592413378658017601202561663879958427829792428978477435616599149828028665947658604671052520042415309096977826315809890440650704127410432693045466158465981628624204898832671038045598880588662672080191689518514782562887296545515993210137378840784254249283789112615897080508750356592340992336382944202489198792479493120012753389517207185858554698605917752740605424815425239890880824122036800063979176344462592316790780697513035362660465927157628782649468393378689105539220485633338168364834618766073873856809678183586709414013943413187804020852179338501604744921890209593714690513776168971787459199096043300391330681561376847143120793535676808947143796077317084664902269051840709892648745396825214076699451026261840366343529515267345403860752159066593228705130725541487639775346181309217318631581591556716970926633734455065659059127788918508912189130879762245832761065111685294255112108699479767629584961702429159415046334499442205575499179567232515856068937515340767782034901798951641340540569498230567029715149880178627690112995216637985699873406416043610658065577464715704774535899892506250112924010628397811508560436236511980638255256923381491319064458334710764121925491004044059511796731623398172101487632884028489338649796441094599376837132519801719930749812401906651710300311709090592275112210124783878657923356309263040353581186486530269699398359758131485799418303271357300949263006163855895423832645378544078750456505189435001875284786999084514003821430969673413535690204884399628968645726049697308512014001682225523488474183700442171212450332273254017603164371455407476501415470004327179155716040055486166781939197693604457337136687596870945103784418438683087617116739720933024522248530360595575941163694110703338293957806849138180855689299750105374527732566189484194815770172986764426796012813863094244669720046119093655600829404119265469320845682210399811766989141826580118866296831302218330472672385541747126047667776784453921740852211959420956521703815814207417035946727432535209286861896751252575117096271851622053201351849762917790725928939695902264979975590284401224514806802271830881616732928530275558961751323066507109043448097922118910962274809739560977986826410993785632569206876336368049069611485300152195665503600736503185332705170952643920536363203514360461184052138795262590532178695505613793040917380309554509482087309460361355812018603152383196158232152449861844167536688017061644479301735984894492608534901288174318228229381383631640366898186578843227766272017813018305551299276940021934984677637182030658351876131897955064634780224056429123381658225009795385689728471223181053848668392859156654828556568517878772345169167195022119979384450060892866096795823217400954280923368192143800241815177204568932619733747808488875349893248663742799564986062585391459953459800190888883130412899751424244442281112807156497184286655749204512862745857930706480146658036358915023962301931670133797065333025362347470886616525778021379703244607363055331183124513344154084919304733449293059782345593017941674491476606154986103860256548228125066738663681425348269421731504072388105413652175245130729825957005933478511261964152177532649776726599786084339614207020274424581003556011213768510932575456637996359099983979900769786299934152370972038726923657686062258925151496345331762318167173145803650487818266568108891059617508286623565668961075818108595432086989274535397486158604806739961313104997345679006786364643174833141548953224970318480254051181624757574440332485595751805150597116534199909555704683604350077084782360620538580310173331187868901731996935867711020993115076512241037577325559067378873246089384976975958924111581987332905759745947931032453651055132772607376660093411960679865312480848205293668327016816214071306256905657783598280353676207358668907882080928601814508934609443089506802664206243195239487118639318501971931950932648765480625549329676970717726453410728727410782512233841746556492189673002743205380632591185221076420954182871616395973076152030345280196936286063852805125665750626179678554117050138911706635352758161622927420625099571917033240793357823110383608236670663118858240866218546571952047223563829574920270980933849856225001925769983530250521107615731696113803678741951082449214546072890161199872376999652265244402741687496652390798175981402350492301149951285226454040571678205790313197193628500474678509869311962238705780852799533827910779908607720988410710053192747846079700805680730194279192326568173643770608912682462741296970686756411985658841820611066545297926913833932280489768766231628621191076859336801367311612259100096162282664402018814843563908852592581571364471304405328627776083217583132833155366711238032793621329416040183820442833417148376771054985161026456009640915590140065577249608131638953401813392236968514604725195214115619941892449926774253184552600238323942616535999062179287750719079863629966354853777435981873972212704228238421404446086037087835748910051826740310692386533051439242866493687553737608120852665765396742380670879379980736725542615687433781393392137846887300483726667561771978909652251772685778613657429723456510860442694756313642910163180546815774381200183309607508419421335629370949207423801915349889074701380245307917722291146373410358265959323272376533909420585960085461322497120308538749081067334393908678883779848163431146423615423830780381755224832988516089789807159219751728446454772784322761562268106075231378731188189842127437226799207173075057985461152737600368595288048829648553938019297556308509611455158648354218775260682134658675463321048489030066230244942891621549809250104765504603066240167933209862727066433332163791216436945480054729718174058809025184993471903166575353641574285946724116686761374151971352471218931186205226796635845242745336553176572841287598537986190557223140788962149457097773964580621879697767734654675437762416188113740418227640035075623281229237098292939388325630880474832641567756180056828495178545728983184157874530822541788191814129406552006677243654719643473708848566666849429398338385792735240763094830547657632027576104967460808144560877947020311570135960019293438849047021733016786473632632328307122648294976985881242993031338747739145747888915811389088978001246107579221313494188748876114219078591552385154943140256165925785149879930401519083012173532932522698386624416593484840663598938481103171785572035907999185853464116459219149807301775090721405196512487217563877303161478090303607675748790015752247664256263893160239516220490899117557148421209975464297867441198619916623981105705823862930129721172494108781614193258756200255418007875015197097547864908915739472110775920105817027276955028866623947297874273817929617190961659455291815524691069130429591101664055142553162112191267224085199307423720947230666318641468935648460819754358031079182471915342865877776909181638750436886065715910750780701943111867249549984911205233173044461335293573058341595429401329602123367430790065204611013203690730685381877138087860647357891591960970800769729665510322205319524245173648407769093020959184242178437278218772144130581547630339789338689632088228635724992286210858925296696020375712436736377453099080533897013621825120430022598821566648159834559131358194980534598864101643837793640904752624730372794306352218561397333549855345742371022969236331708047076211229834352812144096419905958238176887539501144454197644891233417165708869382192727944272351386536053665696942079379610956062499634194116036920159398971032887675233436035105429506118180470345462013738706124777166729840753742080915922300388677392750995852819571176409375010122504936266756301145819567891092395810289768676047376031025118330105580503521153904402718401000452912035518627130375280822251524066758796211653281460397912494200333397202846021984926192787991695008514637084932046791674650331290775421730461135734472356858762590426221079548042118006087290828439409630467046043152227760018154324150636737634656330084983128181997380640337782999985661249433925969100161040614058949404359468072297943600599870326221449679523043569289924392166780511885295848914245298555797480005597968929661832271512256747734046960626060835116859452834227441467354165997975273624795938945147234613558500653578373099283979305176414032398473260131612670415484184591427601674003290938319627038804622563595637367442470552434697746210166155521238810813925672410483859962891714250752685448397750657239340687877448575123793127266437931142119091198801442804172051715922233243280987716006111282574838812870970265106779764513160790955624213474950488889836482890182503009998388703070703441750488009733486166006681085732802394449416227992555820741909065655704538781106512163248189535119209857123856038892885996359214888366031720860889900652333763359253801870009773549328022079364618915002768657134073563502239470390173227035986205694043240751217093832313555688379577739725783152493680225451795857873140142674010135494187818638767538156023830687874813331703479273194003300853726668439418571566641123090151881724007931622340437786015382748439432466474570683951807799940986865813584543662167824321440216302969148427118462843056773626914020234434839657288935730263042032177501333705632157178780603587141714260641808238154737568022321659686467016045496522890900073670460946447037343974261923396113136895811336370672366065542670439153261442907117095555272657171160964868967730357007993824047701352695316524791625844992131279573867443448833616356619645769855290201126004576471703923424144269210338980505127990420591168091146196741142386899953911128788704584688146114324769662541380880739069730653509055691741894389596549961077023604474770332728019891266712061768622666989854138659592378696938059667562934264924874127572744537354748201546947900443326893062270068218065258839358322138786807525672163647188938974501653152852286862476250944147499006236008282118029525468328678705128834248030970065162765601186328760614186560693940715299106663163332139622890060751136203036053792718022436756637611790367741944199963891325326434304265177171921123464590935539344414238109399974632398461431194162555541354405948927944939669396683647671140607434694969229388956095611543050296723530480354105838459985104054206687927214757129061741369744984562514850084759905253008523360761643725778855983211268223549826893793568157403083991259701268094778604280480878297058462355412454471826446955433461713497859590999790279842260646495333786072467481710676518887451911592553097617335353168350800900807243726372605563087116802785643031508893579494573206316706158958627894734259600551276591156595487691867582098992115997868150940859591724704884123566107133246367075406594647645604677589421903704555063677484080149935573771148630335874583136784594526055450867019984572225097645875642277860358587686529867338580364498741862966724948474191984813611163197859349253210471855017990965333037822044906957936676058899991843414602627512796069887193635473819474075986258533479301698730309311547042806483119598574930582136818436420844076735727416903557527789392283390108766584261769689156702007758656516445919109368341641223033884594346402443060882514176758786460552861641311026646304063640862607301947624436009071964434326539805813046977572636850923529931370585547178489563309650355806151241293209293202153648359180857326546535680699400662007870139573821425043532880336353448221526000583648971671990955727138403119263052964589738470001531930483907280005868011857122235385972045273889549656221599196501404542719489300627577555541970762143014906237955995736664549750827488073534899228179265148592515791510596424978989130952600063347951670312660570589336511049171948203079556020614844790181207454014203697460283323723351395348041557442943305908927883225618881156434590632433567445409349144338272081734147445075390803400257468610227909082059675090867484025327441327268012424235885666466632352748372220268010128472675576153323238762542851948024430208936723109906455807986773401993415801796325987229170171689110165015450165625807422164963808277362064069328705804491735809395758986118184678663602162148835867181688718404913785717126394797359383360421143941167473950260588506780270121498986768633282153296713311168346673101004221421452764800387680560749975096591901249117177485513809719298656973280465634869102763656019195631959717936794207034339486503903054139492959080294665047487316863512280059279626004655411575450752960826401883883508728517457013905158751949253510068794103231073010215721666007522387804865702134514024632915262157225439537363607417009216748127028351141902951271255698701238276165768679708106390673347763227091804280590057533271893285513821660147018744107381683893521866990465559793636151180755118788888145382754604045832681855604392171333708518008112186108959620106909008552032009051953233723878296393617251510765444273057743423660973201184002871022944277001049824488923800800690098307630772772077114917626032530017662106078830215368986999603973506014172309119670671226990103003890104539473416077088742102666867325087132729386829404693685560430347628798125393859274787719724616333660868858689787574639552420319168143820662129280402596017849353317746921978673109586618209680215228376184014312326478094229286704646864447772217253380526046604102740746824159484694065566438463980794201214063459075100611043555881906313006141188772686050960604940204762377065346205048121039119102281360685629457993832099971052936348243145128878178491404138877781763369305156054936300879306788733851594375575001090430184829769127191802517569303313115442594010222828763237839343834976000179225441388967345732313887174168455193456079899459661673907066311261869778312570795598565215699001509507700032726070236147819043091352210064830424886043006400128347985019371156998347298681824783646017381399437161816130257990516818008060870393437344418097652836168919788251982642523059126454747588006453319225893713313920409751827567706755255496862131430836484022814855124526138541653052889783810198725056160290454324520472681028542305286343050396480677978856321632210606134465291767964110788044392117468276658693047165997459725121680161426270660248085952628236146229039469761681657618334330133532652656278964908557574719619371352743159110330594539022170421274685571439079049672903172109572372659466142613110013936552628046193176229213744038617496603695273550256938053482461308395585217940826556264484413553643213705029548899975123321509975664009942317038796522421322863200846969539034762818232748761189403999079955242118931519554391452401038623131811233592692070539359488274174000699406985749421895149124203767700548432453896831151952100959666502625219492777185167278877909520177086293358014797291528642675794479554711428238397117890934656818922653434020935493994635158962207388981944569817786874838863997222832402825421368046543612319740899818991602089869411711337295388513804780198609938974421181429714833353841649319868863851170479020629169099416718926920198853524823051511299707951341750529340546151793254924305034603491526194022494963358098914707379683536427540614473746313620569667621229119527678323511278319117301977250011931555616283230066575138658070226740223138473677135107053035699500112166537268754164334103374467052945200362393648108026521433951376115893589059797208867594406408548870374715407251055899221678507903793993034311735597322453515352272830009102043578435103884864918610047305631215343398957939072543181996452727495300766842309378614002242475243079297598405372324589794621062376864359123270644127240937919824747265902395650577571215906124263145618246039692889357898472363514582669315506463198098729294049239433024023369709698445447715221807918218334034715639025995725034860988115919400260482827615938029317612393428922013522235513810999414933694846479852731091888866234978364405820923153832984614445556267795071271568595759480476756127625911349388648997691902153659067541765087221974703513894371026472483640546201830954907665515936832693188760202937687787896141157967673656005127457674334127099230528310228304640375739699481451091873250813320145028608531501616255428080941448738741775653460839865732965227329003390493588918725252048387860450611804253946447703761122566575531522186818012619706148608391196115174442828054239358913383856461091514194461179881694684692706673052856028724459783487389696197482448802765754372322325512018374217599893115791822837563754283128354678098168084621145743503421177154504687948643863233163631762362926922818838130465931270222579495546092586336528827926215361306387611680177399182264281402924157984107668782895275451945564951781111060230275193387467449170986102598647411192336494110975198624833576266643747525808136437953482176133295922227775120322200863702425320229703242999682345341284684917229561353183098477869212197964376871276992496080144737332882987576859843408603935330215411772722811717868342254619245457387791245394374841370580475891608117750354049573461533414021391222792454654318199957431370230008529066705195133024161485257341157433170757386633825603047659623745691931237790573869718123987178127026292166636885926980571849409588265119151465336562175350563769808882059998358779371954770686338198532262866935701678191214584613929353708404386083618090976014599652656680094866484638918559038872648255898954214380415614446020884095402701002692282969541688657415225075506616427894254590805937564128571937338637821173350398792811444568675836940644862683872886229679002018301886667181974996129954753160466914503178925882300554301308894949236027518811052353609991672027437907735780083804201325589402546676700519824381436176568001255405190653051579942069346413816596909651982786908559559838074087221176233441321267953870782434009809072714736980471971823179199213515397101898193847509701208731850664604808234537247952298844623812169015212215746909407589668344366854201313683782417083382674677925389567501865074188615980681231855707654525991295145258268751819348447238944772617122648637252548761419132071180276212686438921279469888315603340648572968652904115301120526674551665655189163091348182019931041173043265160929525527385772767398405920666220435185147645031444668081009152311464822018314266556875096906847999825440420441896695430272084665023960971180707170750074299352472609361301656577658319211791211467606192354869891190000856630705148292361779133080341514627255556988179345134447101557167786393152469793317479999281791434136920377121904987736713118417913393452618476394026417686243092670272525758128701935538661361579569650642473303046440891284282000003946860688403490370510019851568515518755267973176101838727976920129209478542912062302653993653812094459657322913146537812972444946880814678296146338860029708634890222990246240763408744099588516186501553494521733821422023679251215361352247932619161875182941977369730576828288138486838318229378497736941753963506605848958925418498258037257980477555265017644940219605716578848568412465838793867416685327722445330611107022582725964756123356904335624023670721601288077007618392081937817672535705835234095466208849932767594148189875249127565626609290011487541382422572471401247796165067765092460593454441141629346874142619748399560440700502308476190413575807778179640341414987246650468727520421501522509418534875848324578293197041718015007335223132663119654924254599277756251461967255840799995411570363139917088474980748482828926855009652250896213209078325545570812764233689251600270927056256149321653459352665314203978134106268492840689311165221991990771263189381998726265206766918992288310654829625390797249317944043125147364159734424948197349693635565177214374956618476811079365081935484434202271138922204595742834634082387715936100973118592150188970044938581425516790023503266370700873423444790252824403216528374507749519450820768520416140154905778917004970468402554608087189342381696608963827717191579220448743831863371877749609904130727030401961420321750949328084850890127241317888563684527428389627296408021480897780854069897678756423211320618976792838195238653962036438379703225891710210896604874562848807847684184000172231460455981390808775843508307783391205638927892060649580271927400708444970631259510245940266921868580960026935893843869802026108398884494049755562357078064414558094495707920451208481095027940964524310571503553332432422593680995921279145125151508305133643483326203760692745677061570906055210464633398846645943204900724479509379576094027855936095466164573067085753268487404888611411173293640665238914940029161985485353215999534594729766233609442384282821116972379457781677465157899146928128283507530008587960360540803851360369774166432501669581057290179075681696447046680801285962708237613471587071916859410357326152091167810876538562008650460425681919529934761452027065450373582835864809193090909057379479333859645576103311225583912698958418414857312508062665634213907033180190452193790077684332780558559503344785544882131597981229397260483158358958144262396435682717303700784017660881677589945924561219555554421363935439591833306257046389981457937291903894414386479773086977489210152945763890803321914688375883350596313711506357527244164485588003274069262519710895606166662650646675304878534369729558265508719812886760616806177846963605022708213980897107592453132039572192793480896188145967870249436187762474686037901170024953954759784837532326714378471191839063414656498154974631018811811464665222750303092056088769168760823327925620482070781754024979092972646036683770929320993783151936742665321650676212239955135458577974490766766783125394807826390598648641312826492183726453799538573618062667896901548313500066778487460844869657388394845561687847136195425070436096988878799367924998366804371308210013436645632829784760311894622186766297790481294906859410173954235261592153290861286707080220239930520919705784785658808048983180830786054216069074393876452189107311762992758957182820649356369772996470967645361174618808852175615926658277853084072056872036307862164908745676136688003721185943412063003756787602556726153770689460589674477963812622396029909379454607825983081589579369906041493790341268604078086643321078274420864357046350016284449508695540194048238679180620919966477183797466790861339701158575657361757411305491262662163388994165925930340731612336344908260248245849190320212836857737939292664612856862342999290288468657584962106399921174730967320123499950261359757107046125807068292174063901033064222585873169237115478884444011933376089293963167202484633195752315639929667776883680616248502143939875500589293883365720234519962158457558281212099482041043969882935066213322666959055948217598908345054814622748268898823411831185390726029256118349991365046920556805091322288482092456355397148326838317496883555528382513267971502288059905949082564700615641892079130155351692630101801393659987390295592238515072383342224009198319502735321451892509526284515923966806444208449831314046479984984918488328700218929104446837774378014625793016371122082555817144104971986739992151774584769471806493408509147919667372913170109737074950846925159224178040365969656108681297397552166897973923113431206651372348034564848869896021850722453119363270609686626303986332189717653329664763085310917628197371079847315261706303167386477634662072987336201545186229243198192519289433587419614193339332828452709732193092520886236196826225416891714188299031877121433853893005528745216537917910639311396147262181228436293100781226875199665530040657556264228705321758543610949651102420993858419996711007737540219189824712394635308525159806709205998453768070687047713896132576846611926225134731665223492498002584530082287857752528075910581721966197474564299478733369753722110235346221599363342003593760382650725911803389425822191704827430772863793374098275704027326388445557582239088514901841741009137540188120033963703053239000819354206963068592089514447160238421593313716857086658802986209526936136352335077483227308437369633535191575259170189114968377155445680749216643957016881516554980622629440762866116748572858190604873478773411100476528208695780958779903444689644678970558899603330370137980600286409578585423001215864817855947761625026707980998460615354827592348174625371698911598104835606734872778338873952247694188513482817669715690212205835494074679346245121767930844794595079049237398051512742521931885756796085281925879904442910493970384798144645113120884252392526355496380256760951020174617358827308576988687063641605765619388341434088740402569215815065826426420474748718290143186797830315632463290837018964319197071586281505505295580021882651660483054724850101717683508150442839512993065912948299216070448382143104181601912265796440537207227546904716595779525417520560964832969845805939481303484969073063947187864177391655835168536359963366485366604609705522518924754750298591218722346790085674226770976497850446946500926148950778629849292782650051648494799675709314129380357590358816116103051342221169232795541228141747297131363119970550769646327050416584831019083095605515621034475024497613835963146680825806865467478899778044455675306136977460021117231397283867886568169229782531246615341600009329170147208906242966164595276029521376755006673031106096580073601776239187260295581097491614657026485840081387911068146899658466429745510443373069814111668161660911270174585806963009906737026742714325030859816885451154351112023005504857715511840224221100003455937307466598224747184523538503932370223277525875597308835333514624493055436801401586558285130631124374914832348359053106266562293613173044548922435898221082448241985487932446804030350580992976765151421138115418368730957992414004923283950994958242023000988773339220675016590752157826356961595147595637898290578121864405688626765711557905804434375137767580012628226370476842265569394674352099713614072874797177159990156071757203351190203674384775652735677688713619904072695510503646958078549408223161619804666256838836217715374248153841343028595766818211593980920831490860517498025434128947910415544846669190547092834303808286036060706171673763150123638632498717154138810880436524940131026034705373101735251346161672999175667352315352648881913714368577227508366000965778085112089294351689024043066104360545139367084684105753280398393745255609626901632038382409173985545379625389989149506103200572816707525184170392056867979799356985069012484051029869226345130306473868761097263542579606437435150225788476723219335298319337779554170976167439438234422007284461749763648257783314131064850911090933789803813594010569807607338820312025720315172257351200049189308540920907880977975858705668260359858408139503260300693500954332745914090618399095628349364783410536220996895981604585834196385606018802348547317435005442951210952661285855648853995342985717044563474022543423400231867567215179599755400226928074204808705324003186895333286208091112649157975081931680298467858306604406526995037696228573385828444878493243008431813090080764485221060998981035187616390035454757198001704793404693334246361291063203996966692100434644825427662176618593005837486161544126885331875431977481880951345381077171462343220297428404166316169098134882363603764622705654237542364870086546529754799155888140966251672837767244496721224465009790233350455231862528842241759986123439570185071770537242936726730422739351176956294033337069446360840351746705300460332169900524692074037344724783039920529558775309502287111507844943148518284234432830188423962248378240571736320350024912626946051780615101758363262202005509607894162363683591823745095581195754699811799293447421107662717769182712469884666577440820005837416298074297190709018171278292035015861670324018244602473779236476296446828549347097317614648561971976526832899764607377044955595283641729530491642134795702862151257740301826202445634933391743346546647300736656989555287836603550949186502568102657752983605416157957412942572896013132436183927854940607613505557187642683258714342634336941795390580631016400164726296030263666397979944006471944070667311024903769977258586263758098421066500761464599226287025141544219630985198305068999949892893586608380925073725830994661265224897005845973968313090944532375326001366090553755691899557186991715309296004328209793937857838330006722396679503669449693855531952261287855835212000317103628024016191591939048122192508330859291202451694286956842439344104119851272283299936674152296110742190530896619882837705494342592071674982225287188945437710656446109549487739479264571090172976866539906684624962697287837877020793688951964619930692782642119854198106106136978185105475744370965614617836705213959712296390033906688554529354732380283187321083838402171472952026124875552410395577771501506313390073111994401915023872357314588652926907091549504175470687097160487505403877479804231037867989076816945613284885100743593049209100179505471627761291584640521340024904028548114532941694908394874416944770516272192088768877053758513124661444206227474418719842013469597174697296591905522375476733030425845392645460848135106500667756208675572454556208715074867751389062610629393573727989196396105409385414444895135343456368320905223446954041540719093824881953553719380890766247941831859790246336898480522641346823230321825297724759622983112284134683822109549937663237038400488721043777714587182417218221662946153116190546000051086926413450871066126498472974788916079827907887279726306052756183123920872814465930491490574221117064099622249105658424284849999567555730110615892589860016830080280276702536101933194842443975696102852756766506028035822003628835542759428828068584645998843278068033647517413243577183075215332192693395318631784178620916326152579726332788671576216442186180425248764716863123755138459076614133813721705053730876673579186382522082801684598537887835951757132587602741338498070292082559693016320021673238316826773490873999176586559231649847360863209309912397304514432249844609975450567460858233264506182647988089349837948670179887608857105345884368548989723690917952112806572749136710176269392045957851730410474226530484969941609755618740327598581255832632024235597671988210157450398720783291915376369400695807647561428414542863032707005491110517450742278936991829263483878400027271800353007944924736937240544921862792740365653335300921408309597445283841662489023869559963424941167584979953057536312014684309789887580278476248695814440840195825241457569740398758745932297534176065326592571080418458926823803654591333400545536804843315529865615366232101065927542516991470150685491729154082084475481169727519709509964366485027174931420384116876755942209236708597239156796393150717685504905101660891858539433540264754421211444133234141271775684399285936920204594119714093595406141723407702420957143855649023510488579598935572810606955371290914559286098229778563845122641118685048984863195482231563119295610233719494489411882239297041868838933349768755367287218785600944653323923031195505583379275424026488952902162957431529995268081252732390271791377912783730435342933244093737007952322413358408010390441693367731956023333309696125215194109840984740316928891965836979155519455738800395490272576065276948344143036984096011543054424691364181629008050723482542699023567263555475547360345156584291289048191814812654969976209690939198008721166252913441142063918767228032910470814993340952210270665342896294377614901663584586110327632423917150667222755845736096768123694486830334044805337919201922344650800597898356345891573859164617076819749000378114846146438822614746620376945825167416295513694486685442792979602736438432208890066304486536173800586123840234074461555164655581149051872500696190611348558523887633326955918119721229201931450079138808379918105977053492096514187789239703747403583876190869551646210497284282732111299241230125527136758605842690772226071209342667042618186239694676797458309185234093893454361782018677145201755596363563635959857711229786219932376780264467330662089873155465625183047632701040885833652926248870406865916208496395302468423774675597028428333539925167271533552379635375094233495089537215149006124707835094873716673344014658374967188013885027552723063214530538913931539618729630600693884895627003372830258534876780469435294870730473104879047088792753504367287293794278419753287689717615068534118219471742985461721999816660071640039122016376944660969550677506272412250122095624532061415416366500884092767217238261063833872117460440884524199466300942245950116780150673916545330721705571675067908382666957849689864583821932403947671265063137711342442591715493684459758371944719742251579931986280042704787975416391613714272656107690699139859583443763177074564478854352579435235402285366374630162137299905663445238373489641293563118939822717548256588082845356660328036221668144720592140084245578917102931626019129029066689802689466755550947331068126703648565817629591095758468038304682010553321130437972063895768834203602803979494885831386356772248754714243795418045925230960747482730112074134586044932810243191376122746797280667721822302040975897123636372951336027576793699360421184776606983348059019741603795549651015672454478847987455783306708546620335417998867775790898850527734600782853840938673183328905607968116013164439743097817120993845283877161951325030569855404197151543344736137509383045048857398290382896605197895068587078313426844285907752511960904120817205205120104221942164719292788463292788795856128285605990083886667531207044666035636246311270414674187317782848797567921847713752620736597097909164707345838884639291547437428619038797523140041155081367785072015040798783544692190883038575392916565473605910453619609070483342563607187953158256366122728778562678204658485143738770488388509002288304497687032112394709996166839995237690644933431484059040140115804288273811118848277592505190501349270471759396297887463037108896518360490431243720386472239951362006461589104164825218839040037448101348980591911340172253459705864076600015485776869707171491043591823615438378674491726229427119545544409195895265812556540400718925620259392118695366107232147272803368187916770272765481696286976006187517918060610494433836457110209950558114868294697583135836884043434626625630928124875407167765913152607877691037688629408505104498991375516616746356572576290725273328986364574134536092949350625168681854855398391720174713183746475185783708567565681775097975891436290096249299587632786779814077079910636809640824927659343673411552329358369296827891787638150224940496552326939869152181854484858935842183521251359047767277779722031284508654745787732579087753058592492258082705852543971521864490791049328838764463205667060854413578461407403036644116691081020006735841760149360583149423467314700426428070272931561158905126542143745899340331828759731178477530582557452456881192834897661304722307484012332295161539307812218774384244697765936637559883575406929138774681843359512085583992370179667418560748159855395075967375788485386046293675977236875692599773211613031888266979674595300575611320307655312970591211111600038762265220357076043566932796533419430561745699666401118531254280649468890436639053634462442071188855734569969754310706510867378294775997776002915622839283927491870846404675158558196541730269435762143310202055236110045953748324994498278382280884109753866116746591471748639165558932448110405004064083932613501729282077708251951812036190859591789500929995702781502777964421177039767227358430986626464244616634825177881163446731284030256885582154584411475253186664843738682766176490501841190615144886891902201681655108559157136840957243498692362349472538085709945680515712610189785673471156462580515949901783259165796961244635464694928664927210022430612717684751242666370670853181743394556793264045303332205724888053630240474964067981549794717945462586495961411268450789367443294462447284543393545169529302118646205902190655720975044156854141674947921994856431252836004937881399249903079826562697486154105239539878036906884731339134886127956652727820110639573478905960822047973116722268016431460606910821978863876495598438297431583293802159577304221771570373970520722399377859117713973083581125610982869667141978531907149403035160235597978279475071833867299655537970727577769766741685850335241428230058247602493012455653212979664687949868413664015485002550849892139269990524924084990413101554594081751008728259216022041068621490692588720294144673455029405774983414639327981475971678701323163947537750117687908204019364058409955849630912800914731459418910002725663069340971841851543500418204787179514562353590694091602040770826015902243993775769849724707707910357965382348991206517381054404936871236079947337406067479652182532148892332041087655656177964640606616027691233612791336828430019536261279392610911343487917627084073772960758169311838636363888421655911095725226500829381924782765917254030301089421604851548525305329443125057590361795146041913253591765829309185565680466985921958597416494645878699454062095798076045775149371312828215434082118450076124171964397651966064950723978614441974159419235458008010076053228530056398820012269953458718511600333152300000960516268967319853567340805670590862994790463267687627232585286166736848647963233620784423657929867911937545748458998991305718296924814542494991173650537296566001739019170153869327294988346915329114954963681615716330545032626701382403307537810563369536379774306528862003074577877964266959853297772600437629796249678876259682589992431475896132636824776878355132049210304395168802422858049502448446845003750808339040739229867212755610213596677118292799425858416430928904100638014905544013399799468965620627757574199514701743259499918230816152168712000799923499425906016222460187848884927477450596433048455869321354125992014499681036140112625448839653874788397268119661923429262408645643957129386628396696607167762170866541215409084150914924379030678094251104766681211264159126342925471998575457431833793533167906175843770323891411998465338517315041545585550521399934013052518995788894611475881137660605791436951694283068021546600341991819915413703373922101616904197823219753758669988963098092258331844368566965164192909070523954654081917252993889624973177463086420220952915951286246007721244917507401113877342789435845958538983212734444569822260317996391783735277225450453268567853533047514547242671633071901332376057187855422465124683458077478612197166243099163058744737568048682194074752358481445727276773951272900887940716919770251688090230236281271420697612009749519107341921863086520063921753966085291981054866192315264054959457950779168987514014423088780792057784132639215624975857769301461958611130297041164680802754947946675868458055630707363715847114875777113502825384170939848993055476461925416690954562033390042359887647214128960463915872542787840132718322391851257878268794673515166642478566800580385138288446064380458761967964685374169558612262143898171651841729522970979170593868677376429179991345212330228486435405420287675394128462416102206663480063426670196306077539890433623667420835251929575391701527163372175663502044682074588762027007740556449140559512810819239252102714853630502358899578042732062698402405682935960883676158279884068665598149554262734461862567427115517533461829468904855028357962771337623035595064921679095058929969845314124220857790365170919011615349134252833068271983127463439836879089951104047475933431271337912302352174875419558404390402581238503855632431102593898992270784679782334475077113689151907218068977662798578396894668863544988141547762996378263867967221834632939830977612791048664243505093556757819332297848311375278182731907240126655441730522047239396785238981015717809151784253391208523130195035230651482337162935608831791184726240355923242217767481432821032080593362181142202204859312805237027066013128688786868532280877781175327381425643512314761499757003089175723175398247374150014479520724927816224082249681842593980057548655045609213582569015520968352751955841321312308260075579772518676336773647150718124648253810092824133152578555774579031482793538127860333244136639837221376049972933628236062728255861658564948890010966606196815914898439574946379180824521754700006380264273690837685462276787354980443584488542892819979104317121283517260498320638668824647905032836657742564180398432013166222705380746249806047508360648666414956717281590540006700405557881891649440763320004973678834543518141009213444753210169852094456564129249036690509566880485098466336259348975895276873160702374363935779757890721782452004792424019884517518563968247199236884349769931875549472203775846520881418914651819376801395215557948713199678388410295564596591486144168808791188577899595874896292134676465028046773528060007283832993651914697046828835128480343734579463515303331718756428245358356976340885481607589898150748637835294216571207309010791130564013851217598927535597403711362642742948108901356741188242292180569475804498062521140649129848291818169198733652928273039948639094930249542189434351683595878100051660217017998050649800080640606165998443320078511690409219909762923193156832864212852686605475513010924339370612942740482661621919993478437033576951799284377125872402625353828418866749934016889406652751098538558093998134315855868282499246130547408189395671902632472697970202937246028431165116918652219804618776862364045448399319010496207327486822938298165636220275045789705945852431733394308685623543806891842423821204297326682791452838576068714757078177270565515742742648435100190424255210540913532785479158032333280324592298530233508715528579676903435795148247538805605835293547710721735629687981092522775441727519528234775353623622440414740921631864491449986744213059062431328836605133725613129959577715355785706938575777697593818481884839220718382229850944034992193691338048913604760106883033850762102394889179310844855074987189429626159367468786347471371144625838396343893245725942326279739513014214880478797101620463487033948901165506628767920063990422055274449722636826230092472225120558345665411869237480548163790215421584801461831356688307886663970837832246538310979461901638946994390727139295284683653897818879937425726268030537737575245413254765086300403165294768985855588700241966905671787852651007812369828307830846897912181680130723940831677778085745114715302622177853420126702699193219080935002140153828409322170954287976663733399222536821478640049306000225256430492764750711567429393684063952301141359838951675524834630496156281296273010582419638407718645220470283638455910878300504134992206552895581135790696564084249450522230887631887998267189079503342162425970622525307122282920766374041333979419345390304405210186397212256653282482537736218843085349866739486266752869050407007980715733499724462221203656606520208298581119589639109969145991866171024824816291789315376609239383729481291964306062327840802334122515171156448954710533077592244638055208442977570069950829653913920726878257830562611951971303860595419023744697410570445915648508583703863663406942658806587677397409710935315770360235752335913537409954946418010456142436768832003398887066612890333303474567448005254344547708905373856478586641285323482446218391098542565490155313822245041532705214363892396999821542972700222685766411661986045649943730828273774596124247117840076033456927628523755748938131884484257344568918067614362457741920899559502152027648636229729436474960525678483853323619550197868220813344485235648350315737629363997648147437528250538576192247760973511303269572459022712109092014212995374227750075196329050867240560915086227881338276422183383287751704791626079509764398421857666049461045932502850609276912058436832363661490850459891461965224935826101380742100475881631989271727414159844039299655184353173761707210843007450981025962583273123266229751373851229104652841870590788660321761193251535526442019632058554261986515565591376083389746500610422334377035078568837011586631539986500032265826516609967757878282783163749152418223621474644225650263989819924039552165394466568182007943675566482283962184471699120199471019130254019637945923516675191739883976844126172814768514855725744077223720384032306748755002732286858510876445716132251177559574759252615655905943601118311259572997764906823846546227963166110996826278185870116532279937020038115689048419774717312148957636695502176665937759170707852543553085182934581053279018650846917258336295689870584785725458639069015199449700948039256849859365345381276806541471157588432648273561100063833335411638004620559083861825573629647145772799100638559843571244070795842146805622980304519867134007158330260930246956252965547175292597251399017741425146057062326780262196324610164432696227369355710850804242023141530394514319014414925395442252234164446244721926695800822777062732559974101518654689408274532107766886756649589319810572337667726161689196974895274649830098217923162554503941257212439672520941472097008266388466810383372507387518221375639169599565166214308685094885508718413443277382585095689264476223810327705703981790773313758160201166629028988267574194908729587059945769834857218406986400721026045392131565192038274761246671210797663269541866410302676658734805614897675688292128447563540432714920347319125331719364235688242470687646733257823058780243587284236841839107613189933818722235664481962627431751590365751611757379720821127050312410334324698506726647588286735593565645737020386274004558640635108613577634599959931865690552792921927636063701284121870884510872805992058817340781759469206751778619233563444287600371448844621369447883705916174487964831314090313181458548541629533759009397272365876587687223543131829889643590195824691444649587914546216646119009359350924447265708553859995542585672676628549048810149598562455320201534307801077333292132459502329540417069750121459653201962903811474322860439369032300338160585657474265313988710345384070898500508899212873341750605994962654223489131157612733919408409082020689482551436223407624736018154028063097523210566904752264554610277349544732789249964773440963338001811440932616648702689302063718410200515462784577868731738953810579645217595988604708077409500114570290366884741688110005592800280840776377035650443515832176171121035131310644511044058444638623637989154106895063526081294392310282174589357953450103063363940240735866353064679132470850473161642045892705682761116102571953143640365385154294634017622537596688622682786803641325301021941850498879533655925247483744783308011687486393262720045646541093190011613855779096077984931835098315618666207793635552832143253270120534367242483894332140476227096184023171838460561268686280570957014907229519856955258741953622155829097454683175883126068698591655378967922636176549057688993724710347562897527028629801143520547080709512972765893272184008800783265842610626508311204757253443193176617761638084878021250073947018638719977368512209616803034159652991874518663163952089270459497877857322323899461333426868295550998764225087498956696579395926461346953398568478057583382991294023996741550109879410629812567338330427911983033753490456784240318576147278492607678553546324052733655762715342756388964920043118748225862916950504433032797908214997077127924827104615048587012801131910532230035094229463810955525227192528432337541156733098694657259229791364157912045941144682257095412600288514963985395646701430196295414017978189116368507953849611799250037013141847978877727186770022165925137478231597794811859808150622091341030921378582658746361690753332077382218019034708313230801832531970114659155975947277448270411934941964918530925370911473101307750630482714360088733458522374071563974686958714079212782287320132216065867047742182353077597126716419072128295202852388847019019414008437447046334153627761487591050722526323648798344774309910716228726740123736036125516391331777244392399467194690167796117667935888584213773629569388481031363664258983599331722316473487000277556842304964111940457388655278200007092863532901958713817943732276858040888136246825124769091585268741819358821132562139106254514790914404565223810832799825630866576099920169135084748790373595324507459985908512149186413116848860153948632354034971455513670305980305753728314174125816381716179780434839780702748373879187521529298450829747699706506774306678865057232303043877173682943585851184498720774116879500447038709527002482178893787645041386548532489698436914886261778516909186436423631512186582751325893752750431898659325303223842639959414310374672657082830968213829499301345258541979601383586077467683475422175191918941383182916441774150259571247269730574856145832544631265571090063812382573308825023048675636736108102917307785615515074098674255661581254405326269774231927172368620513215042162548334825877347008184184315697928094079243406231385625546722062598441714766248977991566647429224712319238027664420554508357960672169664405819025928917719049317389456673966786311769608256935020061432756492992686703351999606766606389504399158297335124730101747891593479068370623244865906121191313321448629062774234329988196122266985901348689454838342545843644707139312101413548751805755593277779151115940573245413735929015478223693491066694513727985789994537304700801241443537227356273487846118898222276646235594513171243468420058002356151929435303266091159532792532512084276143464231105037348471457597223671684914548866809964015490232560137682734593351146836601988305903705788457107685021096983908562217330314344433577186916553222944534117560347352659154496997933776471006766013118046678688780078316886147865926094605467044514102801946971532850665263434626614026149830744607612149690439476107729851267524889618165773717964623294429447677308937832783700388027293709293314023363695044364193383079313418405705326648002253458857738931942462257807591539013085548805661451708286771876432523582957347678387415142487212815846099666614731716300236418010771760604180756360417281781253398603271758668169203400194052142982687593814328932585498931702972873308059773919197433880673758302648572714669354916559506195472422120719147166904033012144009592878897332716232465360453668200860994817699948543507475813336341087313566866362315503929131092154722716319240979319937814937852594584235815643918039243313778305254783971714411396084882788452346447985218387562684784448417396547696853201824022476544527288761700066855901121352587935690510004386466949636923847555727324349398112928622837190951127328140020826436443196496044130095970397828271932743484949856546636958718671126567244789045229348147793582887282472528817077199027136800341570906666383378674004143201820283284485056857332182614895884000919408643731341456109491390084976013723690158466720799046891019825297726482299961912525104559428287416017518265178451178978573518163278512187460191318226988689586642701537433602032836931396560474495721518267999891060949005853095027299667298451644826882772616817928402155226072148762331863404524272034822380038107518902571186464440232180342966756246759662215706336285384152505550173794937912676065429639727551362540250842159004134443813825491774042611315167718151822540147774598238257480249847095247603598520817766908769882013566844787277956314539178084179482194123081824788917953711669614368752568607247528101389645148565988748937067396734178036043245967709159297586718565449406663381492102370960915586536268529488882731678205830742148607025881395205380178719020068809055141990947636408899297790844952435650054551652025519682948450791497185911218871955079123587686499266033000336776521207881524623379841601754856357238187035799319469107191486746119463747329018892324896836240968672024376996811138799150503288122535342912868338848258552225952395524699602687918108113532253098280755246721209980464715000464585254555274432459993261720829571138500237999210353901323288184678858454692519308791106616012972006590712661319786648624283976644912882016242926698786462131397173475280242552257599650347607300731318467137482949922090340530489478181593912996278589214461090141129617916954396808938145285647712440830924778745994511856391260185036084971290520166858195144019579890503748693543374507763433022691138733904070085736559598077254284050721771816815215110661287911777155515823136833280179708352535489508050976662719660109242251237248563796101177357307833610745330546073572894839698151366220913197520112743234064003927969126041656903293179612267536409704081478087735790653863922400284943538485237597677754652598244883821734382610211015797705567372714765591754129825781685317255167584960047765387221828908092495455200269584043119398581967867894029622899269067321678500056604622174952993203649641705859574147563304333892242701604366804485325663982598867356677623274000206705329390108359691813516908919606828478628005087868520799043687460061572493970046786049966328137122689343311966622391996824121111058506707259370452019907100463942797709277803817295870113656367265985331221544727719287078244137814653725916254156130780195951222561595997684287494336665682956148543849295194922992919440045789380005194356344241276404117522713030047348305380076555324992434579480131163512996691169562635453047383949174852423774320620045103297888427663280807294769378992465094974120915042958821072260264126954099999637898734290411261317996284206167471752709526306989331111317092094331720886318899954554454084602912721204000804317296568074314897672330670766049185528500998631679336713724097053429277731971926642130267663217667280975483378249905451619582137717793510334922164242774281796868918186658298865918978225582793371904879115918197294237120732154404009603116664614255756171961970796195900358274408126015889984742738640100164065913662473549542441758899709811294961354558604281011380186402699591647117315100507353322214243652848925866099372892348731634513445791029669892971037660050501952512007463457911399543798357108222052794732144132348979707786270643755527011187213168930252171999153935191391033945563710677262994425727049091797924209995399097914569418864165732893559410921534384636796257841121154706752064903916375557282354082145103609542333237526571912732444102956223071307054388855488157213115124205897492959897376798921664530746661869835950083323890654261985446917446827425824330260203607367775868569872519172417565351118536585933962049053278246214260063013679450002257406546285793567391553238828176250444613895045344420012142643831973219638070293986971936710415964058702925111726581688343974173096963830347087413176720865505193509181345412619394689098936552767037313840478943203462338388561277592975556635303719628527740430675602361222212396846969138149792357189264138641673011791930685809966121701586906772890079906364675779646194720723382079384828737088850504948669659443803281929732698802668728311494807605246291347159247934208722090958678902111134236559031598668520062475944009971028558433890926902459378321467183297771947969071419877708903060799385437583079472062284865905267287007234710245031454879915025359365971389591414454367619883761569811094876167964375062826449586912242848614617625940122690749281063457378190306358288856024587147381444725050523799523672491140357009448013143062371623926039842596440172358283407788765993739958449537148682814137052616141437910972917742552129494595161718999017589076306298630877978448486043604525511841830508545217055751169749620886430122857334201319508842308594045128743624670216426331668028913810576465321941185946931459420063260950901668278344193221995919579762559128693166211447178073570443966420227998876216434918875201728647246383237693753059961273246379698378773481704361033240877399679650558807766192385275734583179734673102840668440101989183299231360542887934304868370174827063741347057768592896901872045432547337623328038336917611687690544089849703888721104019559818118704648934121444492282094064905140039579258211672207132976965301803892649540008195667054098532936374131015554716222799924063174908504179442676627948061819960949701626976434342170005333172517195128808677966899978405288644214579515412966554626967315895449014525565682242298158874843346059084272504988498363339119477475455626635462723783683927787115065960332242161156076755587289114965974612839430120875350860892092701651901349048166807179113791975764743577558452499091597909046310766239970053034402701116251791505382626153091596403907097553921310123393219351064331911048828465419258754471550316072808470437287903421841722365453683828763161380436663957764718316808788095258178919190872917170634140458201636362110552984839866990513056713124171015769838358190042667814297180987096174060382687751315632562436605044107717593545269337903771638195186852857762019590636101948604922132634450755189422429912041835485509215424824429262723124208525167459777716935324283662959730005067281883014383007284586796114985161461021836268941245473013206275933858225677209235046548765053153153583258666633867096304258871685845131670266352602582004903161635156526072403626275234465785329550929907538293389507073955338403477179865311103240562108375389039094501581061424380792027717120580828576305098780735443516036841935646805003270930249746923558627634665799047411094283418680378277407321477759950170893459452276259008237242165425747453848226202020348247257882318881991030796605684105735350084868817367529297448495978395910640398615459092051803088871670005634772024027831730937619821668345297486081569165060403510937079876202907191554411507626566911209769411678207619209365012801386545342554170533037607272940383902370168960882307500335719163560203460125888709106452935689149390104953458180341129370614244609374582661091636985920015010784580665225587700287957168203409403955155397110451737647377660624330528029319146248370523995524656349170179712818757026850889932570810889058402610822775576786941976389478437495409782129235494592717328889413707017006086935217177248068706514921681214506900600742414254979995184016399738508144817541150536674528371872483542361793863050059635361859445122867660685598506611587448192878563674112312740951007719532863455039717951282907846065420571383555488839192523235329910089596559419567321568983706126107587577013262160294593316059931036884173324587850748534270230450216867348826777382904385983484485114797770396089943886369794041084072667539376633169378300336591254646659667396675361551588990026138942798539173316224512778052734654639495011842978517596728894660878387436729417379151436397505409176896499920328794355659643900461285958353165537929778416081110492168881724387629949802562985961827429771025440700072552411611303118583626715990706417124800918731612792316105538410210477087032440513145914687695573607083348679696048536302057246099471968323516458832639555705856063418024197900397028050611180831513816803987352824768655928013072559842427567823102448882513663751165307237337353450054142442943528306064321870506342857421969978245652062557069749537322107307448977812780263562867704219023385836641995867975646345046212670022268951289190907464467712008065221466706149733369790785361325303350526151892466685505365905734669405029037404124584979470266462167925363731718308883051787761022665812459663796321344072944097147796604343236044300341894010160599871375504133415795510607293681773847795667000487853279346933354834970173965648293928716469400965401278008999657080759865114461690148523824382114712907443539817079545025038744671022182479229998364455788078141160747052318539487982948548303202076170033116345183566931756541705397254260792633966860886940557796906034786781220322462218821403484054158951356582546268685932308334170127137355510482784010142753547776677201765764257768175840337027800495132129452585264784259711286215295943126177108533621818770762251834727023689138717943253524682841884000035337575371868711104524945225990901562773735956431292497328935704685765244469263649502680510876966960436257356822284527600783445479804575008589613130351774194029311428049306497126312124018419182675388522587659541114786041979979461473426697487060832667129411555838346400218533220700033209969315238556600456944220524728593603802237289492446589041868379283720198796572889895382743303459982525647580706120391150703543881647428142132902363586292001840719559569615160075195315114554657398210921416440302948652442202288499779554530666585922593849343822250794586681836942195626229911191807573696805061843311198413286692424445422960670808755679536587113596956182050207449798095519202699480540520865149025020877040493067660362851334893988230776579809970082255739536468956313785591555607334473427710432321991464229085422891596550365421315959720056957787957650497709217419974837701222817398539893618823170786901176852881568406159002393688391613105943834096470014976693402764280930631130224338011659541235333152711939128070020368772851681925194547667642959692323406254192528818358215897718798023597045047479666256160909987500011836860375896970704070313395949588922943951120542191989224104183280891700189284130301782663543581723893589524724694547620280285619339590952752086364658185942517709780583255953466230242006942848460860523367430122840903523418111035043744940891502657391257527731658090402495467287452622236079860379763537157633573368425097067786823392905192586892291506211499207850328020323659983707170927078809587312129357418978934322155436705310483749238301811104324804752049201064503364510336573773613798246385180805183022698336787896474578828755782177159349401870241547060876562659578334721664036690351187278867348847950187471017197756012323398338699227027560192544259306378179101098008841705667173318057401048141326460308466156210643510980511840726208440140278154549122487042142715843417147458869575845159289062861783246207876448037374957972434854289950982002719039303523460376436805144081287958681863128528634442156920319426738060069512750012386411348741601785075232416501015358770026610539218727853430217358964230610652571165667565735550107241744042255673417072499728279402446014670226013742426805433810131583715517565599084480344652159677748310549438927738897551477411783015064536672229826470644754245386157629726707609723467572851799067650116006353402267240912246937596096574881240935269173184755728139226778693625183293006586594548614982668670849778049558267554457767457807934207275131627473158938864145815270739803990605028515550124567811690304935410222319561327533423570934974694851405334832227713161542776559002643928322759355007929763169250912489203420267611196934638268772652559262669989256766441667703383524162518803993448725060110520806973018509919242404926548611212185171867636664741309922771147963405157373984170637960001339437242895076531211167671561441339071550779569892816062995098231763641125656617739919321649378930216935496060455623344015843049042358840517751811713680346280769837610343627779674151288490428402926340503766281386768117038967063123938726552250122845405274920044510532553128984733797169231977461665670367501683057395521120703747113944108816619060465918678247394080421345812620310334400765136149351588725040447500927556540042138152266008386523673328396707684413715672028245779459227170161323529814870600145841241004736230292285064306639706902530905459965011044626687686869043220822933531905824201190754327137454491457892193067504613783878385443065616047102081942022294138442923549530698289446982612700398530073748156195534898954832947173868707321437034712931215084352006629326799469860561305812702283573679059107832225967673120166866116635928054911925486182813552538446918798862002076460694066606907255535038044039249168394275676723650725752699768847676252803915552697131993623795034306163732528055019638087170958910884526810827744223660768717666761573679191637987201118229030827434093927149535346922242577173644882588237467095481630663591848629704842961682686483070643307309947217020064692114848801719492656866157557738052117393339278912387297451638325974543190510458228178173672931128057020295710938196393759012738688509535315023473385092920385036006551523912764919193018061417318263079935472103736447385713403245110475651893745047169258947861745590436047156729349702072512634494645643378183634976175196544547024146031840919071981278909956348759114044340859114230839858536921007325482458736625453149643769171524697411398194958275372125022623039979151781831644972575674844806144248400406794463104338827717872857322047871513764108405121041320096540207739985598350987679262180843606899351702145688692396445525165569099127840854336545804609163200253307261809267825905799475118119899863682268561662836137793125690097113500461507802935347889265753859161754932514827640267727535937563537399427572925973217184929591061655774968663991769135870385090062863151318615341716507402605447328334103102680666823881029969226118817881556012550299736480454555421193717088895107599340155078255997081012933939220043711799275363523357314618487067792381305038944338273262330855673409027218970518924945344618669024152351936844154433601040780284484171685842097724811386909744158369399848843614401378400977136020052766685439241468945908283450566306107568956412128670588553964151175512703254049053116901912566461936034775032021376475093673105129214909502748721982324771097509723013380861449226568207286301261732271356007163943264268017676730999333078147330143973245538506954447329077664774245693838494464433347943248281838230200792730404590242000911884243882273951264514928289295263647875660227739493432721257055647245161645185774073934883067720373152311868900852743981606584744636253936663686146694435493506683202400765177286623451011199082611345954487638744550220934068695356421318680134144166516798759970670867005469069365862679603064712632654774066710109262400222310254332327520179591326906419464363757553543312114356851960911205790602242245380077880463451807272852493119613218755874114821521590395601221841951902026520962316123392249065356402379093763080378298921595881702108318196841199752532056399516048667620527170802876770456225403709086048614836531060849122681813903876545880533786523115099687693556657358651164397711268398782896007300203376574418449647334266623643175728029715872573008281603713242759270992741820825789732817022733926894650937215677314887260846140994220743529036528242855639538592835537202807978597518265811298458317540284755390648609889839316733019284489056827555783191898934353754692153191241520863635097579156750819998836137183721534358306883288489232268066751252220053381405038767665501699836920554858665516459946851874274603372985225473627204835618153825514970091325478030139239173835574778038950790135404071129765914608869016069451948142005644205216616143132982297893648519435630649598370218913526375714841788512106703335971977157386009956846395033553263391462402758539658025117774814012691949003997062008873632735386907465605178393746303686788464357315090959334235469947920933772530544391843082219873654282440942760551850085461746408873944816047689022913290336918505810639022451180145793241779532089947667685637931900358710686755725740289062357579918728571422297226589184275779418980285433000048124931261765579483392238970908472703949651042730194595825327847881695368671190646760770632047980505350676397681107133567594068471799158497756432678955246825477557151674206702105822286126959827250073032415078842408809510750889721904000812232364769203445779645646617448121237444405138562801041826494638954743358519742296384090688669064159363312023109379346509373790046582149130829834515224922263965670272693696682082338811138785394729663771357583249889308148899469933011990062954612547074529994129111479196970621506666611525299114858407893657688055873293252302727799688377606832065525103309232654144552056507689282551315861654543748575971024748324891863996378605425480455657232151229166151053824056224301529113251253811415645884979425224778622130401912193517155809363687888807068398899679350516686495749969248140247191010281100966794484466747932642160646552859717619483799191302616964372155109132266009546020151862013339695783132125286057685822395572224724483210900949434419959555354523276577611311633640532805790920488992769841039092266194533737437723794156390152774249908863675768405466126746107654118903222675327436226783068601652784088188887993649800753953539810317440576548965709640312353085831567822779574415574267932232752209208200402336933610765834020738083717316923489318748244226643024654274863552055470920724265095609606248578155464545410275146396918591889751591545179933186249875355829933896572942145658485381994236115220733707154079412928853403381396663347043290146866463887057097206014002002598170942327696798075882149300407595900162465209523728994233813387231042875689791572466735201372314474444913711206022126719470298997568142358213008310182405372046274001991333605197448382296010902596391101621392047463998256854669890063848056793223795471844993007140610295335361526399919467242213663397733114766623577821830744974424924391032764022017295693522713780483178575324527342137900485185456741957592583293456930344938687669798873970151308535580920828316509474572679327514409615398259304383917993994447336681780712461842204515469653512021758149826134943666376233275570486895100888512051805780667282263915001347282382056555562570870455416640931167268689062203451314792762950466015732700407694018796069870155601998121851784807820944353473357743691895925810521973811836359632571688007437654510566905303542259998313214095505707418904692129641756049578077821192701762037512411603343417613647931301398593824252825665257183987234184799709421020060098452120812243325207037210680015934546463628234582027165657639308718979841575182215145347668500651121343226152414426113568465712479872245321804650625798731930917383769368016678505815461041482534540404595631020780725374775258677509564829361134796287559925217956670792332664252521445983634449616745028188630039478346200808111754335323214856107863904512950754877299350075830651768314172307177663130503886680286052945169792203720154496485359062171696602131007891891136160285638181817357637443304520533629122280584030598123948307828172880418555781578697853405903973307539521004363484585400623555257379035109762870895349192142829445839462560051987554308490492605180272602555803282003477397843091593105257640900439555614761976529841332756225842764520773743946013600840794188452166491950165820824265956952882837177841674944395511925603242861026137900206170997829709766579465223091824510991118659773553159736732990821708942170550058911346577920044427359701528488593334684690907012826307323349239940238465278265340377240955296537461058849005720140309121027007545174149500493101561874771189872818098020435070328063140667035659928871288326592896185574307798207575474070785775195882755994842412774068262087313514963729612961407417516244173700711982482405785638793114376187474221296447220590421055336368868719543075259152896403812887481510572557563194751770223288272417948988980582967806021456855223588848910121735322162918016146942239779280300569906774274695057587670791771196288116323499462025976450608708061461276086271716807049347401092410930231182718103041529788053974163110135736393112649530767074629613698853030855872308421246763338876273658299476097176002505831280014174796766164316218155673738790907257053418319181422585528503991118294606171425237859679626563007190927234845071106887056230059611801448292909889005793264537344203780596605341161552383671851552606968895900832932774256338946681884801237582325128637351054240422010056448929412896973673077819250102771920114288864121912253562174218834716444674906002665537057679944977729660279916843847060286203224497045334796042831180797741993884648556581114967531946825602953078508540583306423734290286411417165442974803826167708156010281328781106065216124141389558828303822512290914467337744644747266384462429248304938340863290314361054547094297205416465620788528190964523837124729702511894154752869543411162560346913213099560667756136824376981894376315204151062536813985185314724522035565393267661627164211076016428745903404588070409205828717986434697920140367304557511533478799814080984498135552281925707467984388369528084199542960995312977352136493118131944797709664901328569920810982901341231764217612753067497892955497267113614758105102320302488824928773031395686965840687419523107019536585839298716455230778092516189828518533410880134758352223306568560774058638178336491292636594423313325045182670774398868380294801867191288106283693352001064047339014544926870473440194705483474696026434072337981952360968835579250444399368960755863344890231849388868187044461301569653725264088176141934712723581671348519549191450993071240442108241442265016786476086786737895561331866647834501657781862101122329160320020111027671627570303369184356978256910319245373633934367754414082383079877432162593830431730452412036181144713469685489025201580434977971026693595731598142837908137107204399498172546710407874799884032783201609159289317800774785740748370780417292938661337857527272593685019013368471925791030902181646694927249078027334971576701542303157259261118952716834045669685308179785018706325759267809677021845799223534692454509832014041689256316535215929647816230306699019443378938100649554824588044927172208260897220945692650041486175640492693213701407152476087000298064253505143199721854893923775891318674028488167253054028570392705473416356684789647725402257026032660788201695598867332311828987412299044396223631068867270273116296549244302896664725043321874812216311232262185460716354364734612258095669792646662644636132154201079829888447935798430023433647010937622080352523458807574983164918894690332707905901104749693060474068762534038232034028773782060883647701213235176542784035386705247862970983465602038806876866903639232371854551007888091513844031111071362023043350296072213629267048801335233306006991147601389663256108530142200227021817529708875804117919148719846945702144738235899941505339540135094889722785361911537226894734640090700753723573352136876167035200472846020490084842796799613715975294708949525245826101444764284475081094079588072162498498085350464534960941950764279161397480051678909704663356489741582862201292844906789522766873656173706965655266173857065523092160122696087760982035161974506470433644825599007086860811408823917571998335962229372920031014470656387830660061881984445707198253855279114762282885828329262150666991752437441930616290313465371758758366435710001672168551513261670907259374058904382995471969343230371060875221257294317153169687927276234516323747789284322164173395468468913480815297993528272690060947867554980186196884694028448821951737452331543361430433183692007367272754710200345757588740964799118632324044335554521931887976678226914189050593828033309055688491723137137732980603084405688869933095887951548552569033431296134314509325480514539993825293847791564668175962698557616559445867773997996323518673453711017739649522854476646376370113791155969340808488384413451853492252841116210456050408069717525005572763755981169180235297846766242699830916221120012939317176041394775982668500617186142057881457682691012422267423443285276661049549812020930853188362159061776551033485293484580567544002001658355676498065472306589924680641765117467544488435074237903357733456821519501179076808221289252865324646833809124477043815537954311169416075540160455112037555826927869025798802487092957752062731193938488042399308625401940790818828156606270384683974443655324524800224876845574834381690308785781310512646163172168993889515264984678716390028182659213071279164789769392605788367639803848323783226167410275733947747551414586752756135628627437317035149483028756756788925079356104082818558277842106954723386410490283930633167406705934915762466747605083945226126041414979382800160991395912496681570671389679240740734944176102703448616965557300278006446691737511580741367309707394584662963457468706408294904078365713737626797283610873979865645123167640708765742608794009264180857175849120003427384908278116168284458173976821975001678390001199714886192405814539655952027874156523943381436262617914236563163140791201889927001982715324864813665883385616089851814980676494028265991066215977491783059708485827832007632391592971799918972993554475669289230964522201187068317081716419352635649033589126933769887027377678076707949638883110331805973425668300866811524766934390746155532750777537962580420091671021213844838304225296743243482051450404987654487701407252357206190050004916305932167799413202532374011650745740997649388249346704587323338039743533891330944282690327400896169467150625066723568663926557247177194027277567194333548101763943897968452494292362774864928830291427602776354535008256844370659233654768535026011595081433394973081666648091600104864479888785655199869173936167038905226033100946076550635309750449843914992089940441428047583675476820564101441199918934103431211749596015458339181298118616180947109532437567198404205189893490248469416849842935759638196628957161552135755381655709841179164609253770113668967558401633606629772507881990712576345811768487217460840296999598577678503943608151899546895631635271772749132010086906140589986555513799692714349427189870287990277589340776597563641784924450394186780917949675271027091613128880251969195043410161430589475217982449547736700184576698388054868685625943662445545618701374888595845974943022591566863950860753928086772666216821469722284086551800008122569623633085350743516249891602950785084703787497698768140943209808504365693783829616692093295654985920035696022285186274031373208149735344902056082560405153754732207388359440773041402005858624409337864535036913315552909875807835930268802218136465953928473397724877864861577292145695904410597186856670042881153701918122000619302151238700868075306314491247361843099817221282409484045376662753670060951909874236128983730732335595814549589714264004924159958332903325155798288610650392023428323762384386213900949733548764839634988537840185111910194240741568554733489384792981089739634682783061755845148519559702006878820126133235793516764034722392080939365227636609569609089846114689072217351812204413892461778828946906086741228800899620441432906489475235792620106417215829716497393894753100881067816445783948441853447757181860788393180664157981615102357629495107832064850320864885177311630786223390844292965567473578330193015868454082944475474636871537516980035188030457872935303663086626482698110561828957472668087132822055026357155458357119677603881506606061042446385653806613454216061845640037902423890888360313532495669709654879012326182854674040466176998609048295607461879272053531413677021751455760269959388218153146901624609669023900311150269338931311320090649863521450279345369685552549810706204891135403513647589108859078006374419578469204097222482441156242721409078450092548577599028576137855578773675358205989551162816000204879494011485550271755727863012106897874031831050328449184423298897239880065196466856638445002872707953132529980567223223245051176830489041408248548719712724184403635832697124336923835154826380070843334937201406603616625061690294676233029141454148722815187042988211292990680278359238124144122545222760913621989856864502062353569184972874894485595090175433992073940851180393332830744734418532566824135493287812747966661148064584423774304702393124826235515728820081108527460584415566624606924196937016369263566819205426216810707908568600495095850839018389520155202014531707370489764995788232301932990019035943360493055614601802300503993948121783932028939126364583872649336757180722569645535036465724513975190874093638137094703031810682781729684346461825665101835444615236002955993261214147931416068275441525579093940977267473115332920826836487813021575714961850062011027049666178224654971723720244497275677017271384878334859414425485770940631026585333600187615872230947884595722160285387074175838275620576322840547743974661353493489047782893601963415305645781683342257144723042471278919989903542788288971009377994162458184134112680749783141851451803733230225948371340605005927702202765214119682109339449728899271122192247905564156999445785636370074085070136993475653145678386399544777988223536750376278825707993572493980067705363447427984630513518092129283943075101786221430480224436847552544270544280748891142151173242326897403583309148963555448494980169985087519335521879783809750107711871578362410470730043741329010366488301859095489847374276388778953478779667438857215591990552776538421877210232129743248162797222662634704909941016310685199789494641232520535899314782138894933407098908022897787076191006677421453433040609201687464008398759950427718859395900562932483284943112604715019086701461797163804358394822891542383355810636724638930944271278113669957062148330699105137530739153473606090367201714415665647892250760395013438594889726221132001728796237542847753428997277180458503288645855213195903276510016576374609913546915649344957961705529675127208510070408930324523543880636842827837531887828587051961992893807212672914112315077115534597947608755605421663118868998272383317313406267898716625100164222147954308612707732033615754363418203798030238561745485676563656126093865044938809195505530345785843831871015151629239094258959667032427378163603111581801545936961913237970461027997895402410606416634503007934695927589592250691529233448286872482419716416345615678138277473874788883302020117039129067548561711960493378895076293061355885301244897000778036420494178752907015793849379164007501005741532736070113622689997884173451200156447242135632483234479890626527372290072023404713487525483043804818321283469647077007346206237264997128859861705771929397179163294492390807430317095242016115299289803828404210183303451324649938935825672760478353265360878400946693024981632083301958316712151044205959824503823440952984684533749358464502555403644757442496617004848206719980005902008774570537962410344272897304510327387610646437405288387727748322626161970010527026234249193830750334517693179672655161422067315647534536147309735141217801776242432653004285254519514366673654583949367996025536013243320377880969485373869102597013227813592087436090684502902701722195736751279580293290108577628127259467078776062972345010073165637249753615697562726742636246917754480673781205977298656239854431128706825734736370405525436163957115799705409557082156272251282974510344258526411800182086090151502444953949654864393357759887127457317268298094889859512477358723191380227505452992341174121854971481118204732120621117459697964513459990892213805617961748581106225980618732540005905286944725106622816682016352867323861270020377848945884605272344362908028085333077318416492681117006984316269745611440985427444762149962742407624431485748829761900202235695329620518075714359765421023686151982969787084136024369866791888934455046951792148117259858196397805489150991582826585063513764795436977067822243189760488591260095532053058888540109882572950318979454254361209415680745528756318914157907050316752771726784218712235692130358921958845457611864980601735842065623616845831056216597958443863546882999082058919064742397558959999185940704962974145184244101985728288002640075006512393823529123299490431355915538838060105584553237168631297442308840392235406062298756079889001949086861046361142035886049307418478053591272426996527566428099547984571396548546792685557358537696802896207229861888630900840491295058494207150890891194602009895614520047753274762926386169502043288035318854959909657149985672796306675613623936323089783082166025702046209983260455110295841309546550750759228231735221781622733940975212913614416424760166460400963343729202429794577370421485391303984879123216030916089308976056138814408439271379216916031976385050076000279068701476433950555035098667837546221673224318600692738257309747541952625033654213063024690920442456839248436454168032577418323576769716652455334203727621324656646750434993926063583327230827838165350449742907960486250095458502158617419346569357930947746039438848372049764629877335000505470493322503138640230705800506228181925052687325721633476609336284041414585755718811910405149499677024136877919684726168468109377222846684236308540524436485172160492971862315585405317142067871975658033113096308682759994308718960541967849845531638668177096501008816956713593271205049009920905265391850210018258275385058512793304677881585185667452964356195899105360127741019726667769703058838726094514432804914728280110429281517150390820946098026626418118822051277973400922486903330462658202520332940483368137030457673558203313197319267324852502639014166146928330170762022172833017951249704102021076813788158039791248824469109106027894400487530750785981854131613240175280101602137599914001629215088981177426387635051845698352943393581516104766594405945911561841815363000771676128957671688557278755509435277891780369923044819551843891100009904614257872598332874891085051106582840497005055119214198508312271847308279163370839877413696927035992503212534039832664076535361906760525883210959675863027891190503208776837489876782622366748645657175565457858115923774245833464311690274032441554047923555777281876589283969381569843509285367061599279608952196368913292710185889702190423651924131478615315318231038571889692010932017162160419466669639507792160463114969302501665897637239616500114772208790828833373978386396543554664031081583141794442938729040806040407963434447370866343634719997772858304355977254350442998717859112757511914665629215662234192790112776688066312199665753864477402560578145167587403482150144412238759800971203712060535514200750788900943670192819503558565786556839293858111097633953867510859466433364149646395020757040367730188644082825751933732483051627906671734808592195113360768356723972686472080419569905521955698845538924626514105283027224144149426677070549600479703005423942058995462425686574575156425135425239912572898875625990902707651896395281147471006642579300808629998897690768391334395160762788569684810025044748391837665721277956560592483797662946978962378737448868437491885343375160893542542252886062955498421687314195304508274467249406975572205176805729418605106285416782165363472428612312224616834786339329168690380930848700474714333372111775287313984338908131454703963441995418899865472392560029526434288152078032282727470370094433154085412911466646346605560093956857669593571166239694375889615178949247260015552395387596899589274959557619575842590550329867902994896930849304794245304328505922878443591546836234118792100668991277704928606687996738868830043779584443730392527946658781389547244398322523576309329818754854817007359445919012142126596474505386471910411888132349469879873249814036848356049166156797201079809144268027630818748079529034454706811114318025524966472579054285604303589379541858068658085241035440500285155286928218006312468064396639973771657599917874179694476849756191293472583376691003605605709251762364466895969502701937987291966350180997298397618909194229835437204660845573851277283365600484729875440111590139847015514167199370600243032103767248337257119744101608816859395097338742397869805743956761425887647758089319704881695907079181398528380910910903799440869391307490971869202454644907456372590652213635550741983348096603372546337415737317237496623687433418113994860466794172638895037800726099771972378064510601177265113490527256633957522003854191439415090351347499716118406808493856452203595958212526778377700488520433510799357265367257175394111000926481731343892782396636029426151561569861078538749008485902166648318807482994872731689989823426040106438142656825698763722345722984186334579659274038773609779258166932263293706946441488471450322538904929411826743080774274176456111084052398679505311546865532435467211593612975020193502619377494281781923402550968205184624161240266497241832799443444350870619417951404241976371041462649177468762459829164227315756568540927045088337067640879490530670744210393769667183388969691283357938084081841710596378869588903434081852801176608741681894995497465347827800136738971218498974375841174872037007787127789459358219790593071645599058097457280076132050240021645603441965584204986417548898606496042646527799659494731225109538350880457628037400949746448066993360884940475999590175565746364780438842303808887657682229392511448047765144358486321667132771365441103190672977865664513516505633741617502725690967470881660199318870318193444520266173610692356339491611558699502786133639993918300079228130706852610649368833504106738547267386042236752538264979313513239709979264892069374249104056817926270940546381196954976986624527924043436019938491197697798615934002154363030546966799130720986053488995760137396583631613391480907222984046191925103056319181769715240003866896721322458232870901866198788035883984237440813174390357396033733827383931019210048004397718767845255242753265215950802331402999484379849487001640137351261528901726368222604391893519092645171913434977240598273281285065118750782508084212435439240702870926482697567379179874577282721667826981723643973498498667871589029824692888061099719919663529332012614754643744017613729147166748451601912519997209557783036132228602772908415389243779999492970919158337161300140501624195076881849046292628145509728070107549600492115585830551932957938005070751988473456596497752483431877020821264983424552263255842052034977843958551406630216268932053924082263311499156837242590392563163292528669762562915531215965821217351908063815866932555233705097746949418276091697999303098735665710483823329557436309353669905057425796596046421654983214775835674685893861114450268771037559357828484468864444592964215554016393996969871743278623879830265874626540636282775214253534108300479713644088339816157908304091719467616690570956442632579468121903355927016604694334754038859141537434432352915092545004553215812225867942886083769457225756795985600038724831353896548580175094230508204123218155890084457905759859578249607452210366580904002788817531609873908699597292542381045456573617208510246437258615906223899733912533347134075937920673529569065612040963752900953521577377400840379508177437976423001967105502388206243061908498896095644896299180375738185335962567336627316514671908172773751895043057814833827208971228669928707708552071125723312455346583836616004262426012829677637976546739889946861366275291595765974338280507668440010125917665036437078319102110200919293756004975009919665273418270019269093894441053483665472846940005968301887664025195637076192574543719428329434616879886882542044256568362138824607115672148454444678112894733882844277087638839586321660557652746897037535053347816548507695482263171358706223357287258287209619112230843651013023607383755947358372788372396973278960983700823037759155495319014555078207205470136755492808811430997331634186208743073980654323942448013151787384256598232335037181304570283768852822430312061434930678824523763197443045018561289350637403721866997751548410457945043211907284283387430737076318633077866617815219841939517674934790944962528354740009833325618636605796173296923286039377434418858129162503769472264685433904673005129393620099060578133699402477148888144764193687910486382302894423137510145427979177144825255669470221061760904923517684485294213886706881029682104976050211324369476244239133678323748762516894026454684121130878296036212121240113902934363246407998253474839450985595560112547422662346149873060834249412040474015044542898064849553984660375866379024998984120163018153560758904062499226154224302587235796060433280006552900380226253599043765569371884773983373181393921556621458065050343780186084414898229216489243140241827880728066125640430408432231468664979274026859281264000540734282068394184359625970144496182087982023897088273214304582147142092026981682770779178354858066111011358618137899623592253829276947256934299480706739544610636496851994736499744565808258667324156226769561425244206872880248333411802501955660370058959262230030707979350847326933475057431350507429318380196673517970369622160437972168247475538045990888092221384823608245306910905111295367093030665500363308360614706587502539236207421872474291051542661343142385225539318978446323893109968175076357047624340397339906591871249455012535332125277284061875724353985229553375899194156191981246125948977487230447481634843128468491125639547120002678190968611540732450217029472941073197851380221122022459173332648798402938168631695124402282338687782128638414817056227063656229571959544073057140707416467557510830871226207945357684169849881233061399316229263027188972608230937797557515283070678340550026139299289060952153176681554313361212280942622922477268792839113089761464297616740743774017920545834388599791010948367538582753032733999929744455949994442912885464781208126913688741535863511013489198072439760141153270701518197947415444471206146621213453257864680056913452745739782390134430039183393866211502965285967208204087450872091577975431865037888916636330864246575304962619747096934623550992137946804958604016455012251471803891121956853334836771434526713539600472949450977655897574250201411930017719124018725479221061864978800818140693751168904537088047442073310378393075294401166827154657301758190008956338163914160776985406735918715454060214452076153667725639936003806566349793431453697327198885935104389200360842930894705108586959504162098959596924550722288957402961435685588727827976874680341923429237139981460001027621721228815925431726281250337805529767581450941723817150631487588247182299208874103087497788808333017126382270987187771039820228744839416586666396840096225486753832335872980410000626867757056481403774621083955545175486901924373325806838206068933806899988695881127615088893083401340219383594191266714658019956313214747787527762534139351942911400821865186541419191280368287563592289846386324506231715173855389548545560949666242573729420686528632097461954764500215095976525242850780173597787182415974215241929957454450400798486663564974011461933357914640327851027420556590003798352118767254929825685669673979791041943935368081153698227613709566922030518217621901243845291019867799795706080791155182498929355073871529996586381151438656447756158233501741246026935268694008641946810533803888269040497355533099023491453243961944108515043168686529163526403297099335433024763944433679654413641003126520276701695373349421492180347205332751587685531344871439825269467218199970632292402268268916256122584364690666116101651424563894332035163459001072195493110190908249075254543482527663676512811372610883874159829177656554441541882284239181997174073036871941461398640340453438133114389475085048162588758012289442973824524324311790805836230155205006948531870800023933445369999764369233962127227521232477719566898639331699094837567054042343169706546788131490143317609597798682533323450144690471640664560013910304357267209512727832034166356500991184377794876054096430332163247891932715207901810532726872483543461012904120286485169298472270427227421543758176781901483700713005558446381570835871862346644105832229749067690146221513584336838312069048035154604320334664371060974343480335810590142177462057590464069502585624237701744080690856043165418479122418408023166759590433216203584640201245988328874384416141222204825756142146145148138791486984598123587455579097762089789179069500575426065318287915163920216144352771904397739735549051597139270933594295751600593634692047528171413308466610109254500442040008931809548400396635468349832771921228337412436109019994606666822871031729981927601769494949491913774341316461676463741483392422829871558846034695811951443970621842276542244922446137518909582099638908435165054886356941325532411487882755948117532052045099948813794996889989781037899378985984840541534855006112853295052667830282448559534975429024856107146694597878212353518121272783195864468834617227497629652815145608519334322938575855990968608044325983588919051300744477318271680125702761667407004378134987629013040615953206228677024620101388839134784415724704709080961685249405255321958561186412066263559924911330593478786885360146397310443653986646829251609215780314772368130162576911687198610981859711725773256380377415081891134118926867798915000324281251157708120435550639077376345879356595382642307862571840938475669222036205075168872893680042830594952790342118186100716297844870489233255702369965297969859534501421688923927305712059650243294522045270813871669106499842287771640817838230542008919156933674168027558575592957753525542696004986313642154135924891053797603659841165437767628007695567928185818208140476239016059458197051563792336100936211187930610856524119409431147647384450836364431378454516982356363495467394247811697788209880534071859892129022432829528652599891919584777000228285796962892030489190162761056490069117923614704404713747083320712879374473356912902355351872142244051696812960587193657854009821816859718024374415643641545055212819602896910955876118917411116296980851287246533680816930164456519200761429001010598461869399962894019315324022859223844124167194888137189889003093724465494509300748630611591112405880014580127306188282281148544290261960305189188674635243851692939546143275943237807304183098521582432713774856518141252083524761691260200823049905977141647875854662714952279790590878504692263773922441924911975737560680355197190981233715185108251663686193266081366235006314231354310261511257850192562680461833930027242777654825621296129502910624332405296361091846569487035861584763940091457688702091827165466604563324030208380423231966146417764746294895418838963859297825083811178080430944207371864815001441415828980492825368366416336797067534527091778649976401267863767888274087467484666583468810681100825119800034086123292700953090794322785795126256550393084464213031475597511842505992882838591498184258671808175006233098032735760234087419950733798737841876801824716163209015300381707002863142233956920699081651209558905950851236170185232032999000900846746719948657665065991402309984929837387554355869008206536866476579645061570433975823625491014394470321155742194103727646815314604823499958795220119396840273110913039270182529908347157089439705499539333528842108214621573598097616777397175380160898243794769617033898079889990300051565779418130677810040604729864924803846999410209912739800775604447773634308096827558120840515767351622090348789060782250061905297061592453107452588371748943053302153711156271335622021283983265029891861957126300047438986934590428358527296485947750406266513958489591861675817859561135782857709597595722651057867606463260612847010500128910337842369072248052352880464208486203078174030411904128884431412156840943971600221313875194218088185347428768180091192976436722296132030026733730279770490723964864718392324403759675915789883846645815738739736858964476027849623485568492777306648961810564875806785765045827514370827806746462712298587807029555730932718981014784729188273680280730283710199160217366666083083915946666759761579880213182796969378122147780280584419675414810012468434963153297578132783929926766987636315497276678519854893219350958147429230940082207011602457096014489281480899526893954985276283547049963130773444478795285181348181734062155434055835600741944883647619135692643874567381592597585746474088168817269549851711622062518962760102933303131574858391802404529473067069009254314076583110816550272723520883121641249022627319000822286255244739678166805631989942553489395480241340828884585241016690252612872102258186152015313538334842192420249466795697285876982719203010406656214814289260180473726034071481861023570303644390140423531145982135459767655586250718286911629181320094385184523168210406636666017559860111884671511402706248705762750755630139602057622355248246175558666666203643153528390039731990551701147109805165252169939292819928854679747776993088475298711201294954931743035650929808088294297663840504045352794365199688479477950029062759081167399279655356991198270915571104486835989754939258109430824367495698106009243381622540796601300631286488518713556692115822105487674033055753067278285310634123076657828083277381917808085282566203111475460674553130184474710219844950969436038872704628407100758134075165218864058127071712068487572885962662244665757443297502611221003499139736865173594062057585289741504105984604831792837180318170277186592918044608541963081759857575580777217663860953264080035768859906053035545461108635280446701756104504271085098836213346617233783529052955985474419224377483761477364211639560185063070673907214744589692984040160256100784313934049747346064893994589909652805088684688761118303020919091055751845716586647580215321428526989916885074370614043026430700338570333548103261765210206919145612911089624299662531253457393220050358680601835634652296699324445318733315315224761089032671522005661260549887711219919696786532752721553298238682345009445992524240984282363342531611041741525766796400974976564470189203107219142046530370840559704870545389155529022153077494041728230669088138892560672415143220470239232762861019635962834910840456628625011501767154271435446206409453821882147634736881263766827863427802465894160856395955554810295286285597476841930762365523725446041427063233550265147616941205444005424326761376435640554268945266547931715650730155328842421501081578205814370836948559026795394757600201794781864009199079610118145956000513349116732532346055036049105178584031946649416162934204676237794503453650081766775390687465135382623788213729676128642924731471570907687318726479702912766048750851260522791600802925372051457540706364351560236421095235087835770722216523613604655442282126132790896241314133423227589315356781199695609833125781105629140618062491608496423510148889965485831516570104812623816339299659249941394935777650251528851864124327938901096951347179691402312228746621103494012371202043019428079347370441247537409399444175410568060674544937407133749235344472078537129968565355278659810244195429117596406491310158910880094839548547776596207639441086225873051000570376659909012095558821871790376292601897904128447311339047897549654313099436684201794802833467376451215465982905720883276270805930484335744914015350208446126595409532982067906085034024267322244370950472158655307034835672774182736257794835974562278545747910698312126927198370111437907862521064425427775925316361473444969597023685851591615157306144346553433820401355970546536644253729993987273043147235347595733922377737524526933654993582708501577584200765851422401739306334555809119843351118411951705266351159949465678855584394255558407887207732007847379232069116382430621814472791142638651015128846780372907083744374756084497522040690151186268825338466100788490150925694106917987680219895997961832600237781229226829995014526579656051513839142247196739272610551512049265465307811263463196220579671114046534616177489365061581755592917151020450795279340677173958339666522971964364585081418584984202047693267090291880526890593439807044429103738135408231112740251104218267469437702988396804383815497842130400426962904769639608583502357531397636433346889046670380326855268347730338622171524312503384933660958671354048210629915852065069731323963510490359432393474855046331177520250973000694748488737643576026666333703702433442221104914542423166229496276717317280864353301741947696947694882367086532361124337979243421318523821011453218343416044453507689938633646648798731524622806819175412314118603483001475865244965393431338157280576888094932413144730021488204675812226997953432177023751560066134903479869135761397262022757118849282004679001443688863075393637361089716481737998199385086908270826705398207532031265566916301992842022706809702720489262974524796179870351899745489858629108691441031869414587128243195674576743956689623821799547026094674133945180647933203754486239986704966582292742360931041002017552677473969374493978348852865588497181386530371431325228523071519602356900339590657856899955649580920350385201041453007607412299880575310616214108029487510800453907694576523324932884848328073662386239544147139004871866983329965889991358028317851560282435475494135135694872799979044560298604414862009676868291362829666699592419089667527394554613644546440033075259429943137466502496390082322128878841552299310946338337895709322945405408611145993702316209023301758156492716121025190455111045690900847307358965137798907784203076844410642608459214298207122822564951493839240429835020975571969866666255866603327838081281682514325490814426803625888993943134435714752790400146899980447938226164864919782131066413530229006163026961676976740260397263241105597363299420804226489945989831469001705420560610610012886086741073791243590546145627056757741698172788828724573530822049378624461949665945635492630254198885899468836783896923751442242784070302107301691732767434609140659894145997758081382300626193274860865644121409604046254058447137929064426258216734602766827600001742475188716326506006486128163615633170632686493189147243649662901249078492035884317775212261817830054681184907971705733520926428025168369200206056645815750189363724147843888635180882706607916290604731869437025032143576281119325905341608873416407248519974834157262441048646754703880435318887259745313862123201061320439756161434899897653262759564806347846924758808758308118778749364775152182679177033710600766160247409736108922175793493192733151610436249125630702462413788139549849570502310147042696081604822205131259372157470515700070528783620980577801080126969496484024492886148491221349805986786397427845725330556148296798835336706973614413653430595781343329960851322183873681015937892126498813875549928159546192644928992288699759906840130572209213134805794285253140882571063122474978604867207919538281127308379964600398724348048445094643361446655208347946101047037797873834410268226302996661983797614257211546639782587495739409311670493826148478007930282300853717103159799018876288953355309651484309487125342072805830681339095148348429238723673955475654565848941706529070880388222926750158772049631553962427867541132187581279589388868192043121219413155895768859341676591653854036118906679296032948974821247381892608946465645102641135611091865828890108957454509967813269605839533538609170465231983370051284421260410573418428505900296292880742842361936104440079949064044131338584570654278235093046410476590884135161623379054690012001052463423245372847437496785113801494995297004505513419533187877725518861356931637772265388892816427525467861153897432701772982837059447255617504935262685528479851790905511880981404827677342279445576642740094868791213227797041328960939091643887974414840622712331462350476751989152913323214139936650387288916641395717938845382085414065895719910432464674176499581113689093053589155030320069566838320134767444089277033395902014025668843673085426226018622796337405723720619915056148214975040895449796993883113782573867036886358866997363396600956085190653046719605988223509273540081445007907028700462985651730908027878707740309533033547552792173979473069483402959827887813036039312888082829129160618681873612351728821354482223915476112906852672005814051193655679082491548404614114878737301601404929354941117913304126063710362391096494543321289227634702249396215803611633735045086382548472502912514090008449406834172673655214805643595231154019633215038697566465663080372369893370187602008531409570565477453254989039467411432738432256907711796120389268698767906328477245247655723924353761896449817153892217690842209363885434882869477987556839168109598182337451974988837661272731511987773824291807408607812490449012846183717846555010627264178804998631217246314005291359421615976710843690537435774098099627387946151444576538659679859473552290607276761758015852871112619230818696225376343485958817599057776572610708939142723338830424890894892297026007324287100251504224306881220128864897359232806895438112428195352331429758909431536393911472274730440437611760291880733359200038747903962312801826234162171988076445231552032851198607144645141948104061317602439108646201805652401873382701871114873059695832539104783830174796269449038945200808658256897637315594667205337891333314819354410777567147773892047088265241832995781974161044748440035099433033090976863426910869501648601239631598091884791019333653827210785350690151699127590959180706661662893497683762823157218994805129930294218185662144056706555146774142329216298998639623911701397281736218388500083546548302084027812969082929491084854489805046591919461225038499370590536163909845182416446410241845124507097815368852115755804491579642778705766587861162930402228740286934753075050360379491829763299670695483670815350754499226498580752478677711451071232925738749804628077320014785769698219171364805772186767220834367955506821804840722176349886170323044051033395316913576047826252394474989469730576433355743296135988835149199444598075573320409033331556664326416571319097445738517505209865285346746556321537644123216177616493822242580484566507463584288580015535519120344584502204726393142686496510348416190123399239824649477888340830594243348830685561451678276910149540683824153399965250465098312405675903504572535309900679372035451936372684212343682655835248191529060943162684661204993214356973602833704465703347178587512648817787667940612346362421038710273987885604419584011636774588003246768625064908853448115240941492926712190936475691959050416626839822873855304309367738265488476962415933365782994307107928259171231036680040374709258227839113168942079379208980506880269129844219810648776164661601502222432302137920562681933009276830681863416120490283772465918196735891209995854443512077013197822451828443820701682720321233441522679600993596921087565535139719895769870932463766223944909977828629661680913652883117358472435541530970733546407057908011187421472417264638609170651192721932299553736191468933218617124357513619045115924070081122468092361886378818744099035184058666916812599434601382542263802011976201836332292234142246019547429730554018877978577008058942809554874163636338946227158538859465154032711029900584775454579143462134702319862676517516567260889423903364155466664456684863913539257234796624138044170527578201714039301822556989526463359307764997886605795519132710386416174839891205344625334849473177046547207829837699557650261912737306586183817944687058862956314618152452487869109132619661310941059570072668656971179260625559486992302278759240386206352037605364128898255301688816924198189491992605376100676068227495131413688191849466330205330975586029370120672169930176582839929878379246671342156988618225999291314941156531970413221615863008875675187758371317609578560349844588084970080762149316353522949550268836305436233269607582721344205853771968189991200722911095502120078439499195921443252282165710624925968061979690022710422583888061514812450839541029773627686928295223471342322712424675212517236438324203787147183332196579489293228121629060787586432410719468884137371367122446801819305542127383821056988859009575695583161311645202384621859134957278884753970799578135753141160958857644896717968917530467672604892941779737500683679184493747003669705346767816658263049326622263957490671838580573195380698083716749348905111908925471500893363384861363673259504005128487426768727667295417571343012263451529194246392566983675019345369265614857167894066353238526875142273644275599398758657191891004666540997623221031096708921672781556213036717461176670191131251910463636870314616710830045618042828727549548763182593318500144211757335891320930118110514950705477599585732061881377090315772912414207288462573731472109061192205567024553259379310735645182823812104497086440294507011534884936602033817931852601249119637056880069258369234341740674006320556016470719556545246818259238330117738990965908328207566773011182201082042045221296426994992492948932151314041212475827261818159231871216363174797105768995082686423895041718798684018543694583973870305251807284177254156663577826677265011686443616373522417232648050375715902933883245923622836575329653879175660189383893261314828829191361361984845264138731498882773599161176571955855673233546796724776057751563060969036818039782218837113042465229969020079981693713580127240668836068111579567286587003005904213098233360077021409629026070951959808567216578828858010914396630236049774186319220868896377408976023766904139040832763330877381739046416286407268427311737171448862420656343416392586926918331850085194887705049760044715047798608543959722039222421659821450415983272871527836921362165212023215644274744764090857092244082066535988650060217315144814740669826068349106157448396451215359749224655976267712866918559556458492589675813745373007681551284306273456794747349354379838725397611198014314630917113457345218023589406735375236972549572778897918034982182007592027390710016614192514092429401445064345184675862097041743786009511912024769018981112341608471811307584057641866030851523986768017281610064664592262051842315019090503230407917615584116759460001596544841524555738919309849651294730931400361847197535465934280819010282076503377542571886407670715688268563705117591386297828279895255976582866461758789297707873843624061608108386585037540970736811421587525249052882186555876931786239037028150041379606261268602722137541418693996604223276975140218814552122319588317244302786732032727148204026609674065791119934999205527152851392136744189578066473526405532329684006503321268991646025581225026672507059419736861688529304210625868008466519012097594297475371583205043569502091973223740726132220124398284324243372508209860982012235801870435512541155688800583259703384880826198890663224119397365005812981057970843224077710223408640632537398320080671823079404277693074238144958918787982613132382623205255084642334706360470261463215401543782040147710728032059339700828939237669949318866710324908455265432826000515454704946400482283011682965882851974749691119225950268439472932871281542315638956722323815744562112460056315920378101028064177836731861898985857936241164360413383026626087945674381739155979653855989581226134433167172903497334740406369692101215235919208917810808827261966159821905192723880975409211747864784306232634590547702039569641808080987897214044749443206493400654607546450449470898262807835487203595265679918407350330281776622490646738062271188517030607064546068722717593321800584502290635132931064739547334365694882754890177466236075410311442736310040844495538608407469413091332512530271548035828200234908251459440388160394465388752273402809137030763625353859683186139356056970859458803104965431710333321363670734609258785800511608096673450604150502531332711520457931087012421809294318350874126749566025100386893323569181340271849858617846207121938708853372220135674905331425051766765979846490976510897348100533821015783015221637441115695932578505701211755774012442551000139233745671603078146703216891257059053841824735096153600107533550487349430983443300115089319201157121191843838615434486302682791543457813767050895947559919690044904372481872973755966258552491731282343559061370135653354657203592848854926643262355613979308538629354736068392810760938725190104388070542497843972330968036031604531539076026782231655344279944277235886633118788484040007562676713738181259056661468979800356052852704334161566237178114736708968446948008935087205838556677742201121272962924066586602576798282585866632457218418851440729640672791211846669678222106327578217564358193043119104142513839634461040223420293041098631915156063820133958569455347564286426432519665796318958136404943779322050926318812604763939658522066597894568925487016239029946047564375088902818519294475049905828160115552507255464188858765929250225160761853623203342723493042367636176088864883088950315266821676089664737002267385236061702349002464487782166186648529373056010204559394290933252428355733607171172097906116189878136237879055760423317720026576498872721789748834269110297666936350309445570446752802551014101116551213175310024677475872004039642821570709462079242389205470361994987656790125677057324526735612309472086330253708842083836417166798943352415170678059333690416086777073089905671282377737496265406070072545973522467052348253188080111860927778043713978975860223803394912108622707318262558117810901689024813714946431068348024130713323376760763227102251993726441652713993763870534574482863808015265396778578773402557721921102590113966489688475931096822356594835415206566235070461753702892636314056427564744925572872380712828896891522261337133168775699373168316598341116925510141164018958686217434493703451472417345493235625903671481400274700345627414974180124469906757944279492416116690235743660903072152681493317574418162174387534922935074116963992940269645900581136654376352207118626508537582730506823872548490451754766634781553227982393739826790558795656617360169301669729012099633800071914409923932262919531614069316722049309015254673650143464812540813941322323772428175003446462084040977355879462038409032143636398666102386752257082301295172601072604791187483767114813934519960162509811599896556680632332931959450562318269874901822664015026967960281931321621709996588216659265224504831161948800266861481081867653157341692569821234270544459914300715669205190977225471883589385018019831594763013104477631973552450492925495338558386949300533751891253636164794786470300910331678775651770602331347127128118862648017954972868515890846162997428335092190417355492276351668434412587100245190548973709947207853158212357744125768407496806509512045576737633692094506921098808848499137484298115975510808081381076584624995826975059474119596978553528859512596628820402432508428222810250351426671524062141565673706755549470537601757619604517219386791980973016503905404464761603138940614490624224034720636225413220917600313964231994710000651441615315597670899867484167628274073916343249089247013002396003850353610431588125522045630260521640677655919863479666890400757971766265757610498420554820889531851082021150406276366726179729467749649069423231353606175074646832464732666632782935811287494807989416368862099709587864386017710264485769596661927033965721459568442441609725474030939244198991254653912532794072669313049733504559982204084221007882053863768129024621559463653368452338524549713400582619200128004880404800525372834181861836898377272101666863593203866950415344425114816935031372641587886434300340876071309238864262313100861290546239091392810888843860136473187439501809131177505899695187977365973078523486128734386096048724015850183651606557830253592214795926002541332052986739372519684668332547244974039885488827438370275042544372940256786940300911718732327048183060787933069749930473771821258923751509978063762015601608874312796436273102462366674862620525876290763351710394691844584391730233310765905653417228846319511518321577201549815115861877617221732319408902474908725057629719323398560715742385269504120759809351970261969813241332831886777968214549711125337195664718382878414375195306528300546937498379847779513797952465344408104256303008308164445472884248045259137095322454053909519579806855575808952381528682716542934119456300149776017394148967051086696739053948209811006408418201620243313128735773925618972392784040018125636956385041009414879806385786712542218012608059570612281528729895086548866515054331097789975137253187443866946453558775578453701646076896060353478941867138616336478574809510006648979672247921426562269990833131761285473614242245721590373306455902673865797130137964129425906248913817023888386793130940382441297007676305055275977675522540893731966433824106413753497300509447461391081736993579009687715563372574516540130058075153780653225312547350904056598578086816027290321401585188364813159245225460612173563224895778018133244581752549227727707754570123313601595645872096058076503139381784829205531866161741437273691393351498438897316875499030368248298211080389124764330252173454650034461836243667753273409264149492178088049227510283765816053769006537239182275980394026813135715102234280919077755612256549884909703440985869183370174911165726826862394124431189238010382028598845351300740882088050420249437867078372696829438179102817701214269605046370752528607661278056080614403761492522808155323670178796764643806250176840668672477833184248276162714422113448539186871735664680084036235015974346511832586556499563723946531542531814640166744243287256550742932448540600670274828940375633206792003767313464561406089474887729375494483951781359293292571591386776186017056729506416433167079097575967457563332282918724824844350062242841186596758324672013907111706709511245959399906911651387731517733220461991475596853650988740242585786395704102970379866629287388465908062308315986582275944883781136389415225180471428975776554937833729982884075014053765063395933446449348263949553893413446699376952481149926925202814902795760488310966217095612384293243324950410609336178285315546250102215997126913634797435918523897036688520419655212687661213452758236067517647849457915029615842218047065628717005351790410906541549000552928381653906760524276474921361708877626153867119458376892806899729659705575634872091732490882493349385764165558031335367346291323186644475583155353920556463098736089219416908641913484644474441235907513530748887631929506061534748970673602948417575422891237232597767275934895557958419976495986977469948530982657239186500359390992292335385193170714362096565965061061342416232537139400450778441653583530525669741958496100126705001682418512559194824263079527657846043618252990049941869147010399661309622560023023357333565384230759484628776591604914742578731237583312556313132680356063889103627907195505016713105466599010821721578265833967657061802744816595238604736862674057085601319299613198345997105921409488417780627510150571544843322003540873418825754381880344104029728784506013381644917030893910742354507313389675436230231195586067594654036710615916751548042085463919638845417332022971089072064080399556822320489295125455051827698174772712366972553457910267391146993932327014650928831037176052900162668913666404177358606589223081214973724879052291418113980121892685865409123292938560399364246475890623031115693907866579532158394350297970440016205593845804874288206527566159618668042795497472385225030965439603767600851282439751300540523199859371611590381473504924459937001978064212254313241698199662137477512229532396974268197541109443500562373047160382514058299713908259322027675861175242695515542459205717894620663152245533180540439481824252779496396678186615393789151503189087149581129185926859643788993372452708540283791857521774512969536397520444350277290294318577227845421621416464627008632069209876892147849705788606535266185370427896628330588035410013182306519587628434010331494612146331525153305598119966743345763727016690685147795688651323092368481018860244883566320078224139268585788596609207599139441066283905920649084717884920336928902072948320508325812882347472328791923537610283411386340648740439677189950241972111723603039252894621372947002677307077455013004225114828042568208492967645371029681989800373225598524356845176940694444940107892351760063255481743383135510478749752501246779922494855983219631783935555133792592911153043172973166809414603306733460423111713639592819399874267660987758684649655503811603845681199210851077227147075078800773455522944890764511253083668763310892080813895947133706962001382323145431725929951755561488203650608292034477554635544447578714332543869891786816834664758480159987564851276610220190400042721700991103320779215740964414347956115681566682214269313800639202253172516772868767955562535174071612915070646252100171078702853717127067885844570743525691786758419063790187438373088086420198088992814832484672172009048929290751047460670191638839296489042647324319674646431223530379078755268793729815738316442647503976059616890588612558911986875076628516549517889331633707299725441990752752272300608365330071171211963612163861359209273154584589637459626768815435148266306329068948271248303309994094210653986623075424528844710803049278477989305710995784451590248119685997606161034796497086928392970416176429354752154055423877239863204527999422154463847772797769049285742099146803862779686126985377834879155286599832946452370154534126324583540484517166180537226487971695444049864993730034624633338759650612570634035948273608852992616616697799047359415634268509942323383911960239194751772505541276535158383653073672288574006321294295072023288382212597360304742901282825267935183213864704676577788734995011220748322705141708198553576377325966833926853290411071893501446353007554133658339555730256553531055646665277750966522944517199427191305790826380203225363039879096718575989295271379876128179815494368841573873478298317044886986697946665602689375796247389273394777073331293217098102460758584460080050712803475855354399281839631557752684455207552769620501402107689223034304710134564745689453986168251671330860887179922983132274260971929685492156829635178520523044515732200523508547314840420464077210214403669962027364018646525713261922486243556906799559529526625440130544097145059086065904750721047556999599922920696842986239743689520509569200420898550313714356943686520844595677891265105531367975899078981297755436156793414089258145026648853552934782448996827363069887152376927068330656186645468341669455688795721931769657384097936274098420642110503220978758487703818282005545718303567223917613372047662488258477571882463913578472145995839077663206740154473377991074295810761440974318682895785769238202684262832311285556496740097474804121734604898262118073453061332908367757948289150989467085931163394330280088098468171954088704913484044859094752863578740270987424914567336157581008008934470802956600845343791065970723132828232655915996080560713063405171033856902340121832124990918256476123771144839296649226754379672215429514826677753281806904964653863964966836320531303587199005378478541196214726765353176070572702838187566370408617385830167441501902037884170663241360968660913325347819434054209158240140157569644698020353332714380485204027402868255943921725087487175099969323693376268824557083793546551992599967531076050360488684023124219713659876347944529871754563199225983423191907432030983485324222455393824153900550743550243349614486675508292994870517566889867523669884953202759345494169627772564125451798435556003077472087920638047116990925164280471377938217415940480210922870475803193337812789297530879702137829496473333778649162687496167221950186969617805958752662503906733634806440787827056907882037045283845145737054390507783922992439661031928163058051331368507011043772235627791332720531760185328870333029500414015004662338472904604512570769380884131715349262907823739402916395920032169177600936143351209088053051773008182090197196255698979474702235535527060808559269400539194175209899882591389411815109895876171604770151660180934467779076592928348417183860512294993266046876142854191233875822686518838775521081552452881817244547060513692349934366904673369178239091423979949454097697842998800525135613497678291038246682181669324369699983327396013801973781649290708530853753310373037587738797597344707527728629539634491000314655224157971815835791235714756748117893036390418995083649229685348946039283133825850713618168191249517066464543769761822147326542484158148370844569419854789084658449821244097090308201074890809263956388419193541055449287751015406670844333295335048360017072879423587272654468296339997270959635296866975066187116647529939633321090147916717503621894671790634846230806084098573862194535098783516872474044699024863768929311101594423892376197489947756384105780796026181895479528578025379664077189297730071950960890227117022418272014155434054422993530020881848743782840770595730815755943041033285875662833154822139897674447848772818135598309164979455258872786994174608780070560152838124507743228963252309588423385255005182173588178319092304208093103843347556328085191835680994336876399661604177044591273255733056660523398446920940927251287454638531535523448578686844632183390436170732553032560486486522246428847514765743945054179291259188472766547091404910696032939165294474304675351103117940372022459301930721506369129673783172113908312551144546253354726859352413392757129009705058804255180875274655487791523769820590427207520748064700625569526939610297038719382121559820096761588305224925730789930288497044218821161514448498961269697012395209187555851463009360658198096921376825679400460965836082998563759248065697212836081730041867055612983643369473476186007498820778016537172084521381098913459911268788035699293358846126443230836436437544229208961459614059837893697593691174410410694880832116672192097441258876229657659248867391147750771083765525436689545101686997485100177379890194369207372026248405774319674821743530329542161407889963102981201084695589519306643640225833407506518864444049998564246627325771584874603737631963940826602127360794664156935587026077464964601322967278617958767457732848049313555774329652016777811901953113086538263211482495383368816122059898977046204033542940992939842448959288860685779955412671435671442839514835949540928317554051915890937892063282727880469591778921193899267973018801897066675958542576585938160164435828648347688745929634253039084359429644505197706716910432389616844145180387141380565758646357973177616603100804610574304289663352643942427049177210502308945896209426928263208850193312655487744344763851745828149140663178167780918114938981866374771445387190369551883369705388364784837503402074876937915674417232659278034174990584683988038088980690727059208000084528787497794313474753253858520464371481451578429946496053114086699685248544815385685795781716099382220454556952338000967535917864840284116303825772447997765819795329080138288630987614377472701133020869467293959901070963179776980973062988494989812716116240444684224976513921049495693386922288298326831918755940154666748208716531101335245909864979275732753488676848267385660306540000280997839942919600809843102604737083293292252194321495807892012886025477611159231799488467152040407651905443898939988071429081696105681738979502903950129429973713451815280859678605856332496301516344880805499663398469539620029541399691658412542111608267798666966103086946738980024640373777808685984233378748987952489973275583029182061079298301882108234657403489680647504653529993408774935204552155102027860844970096335179983797114970634098528536721416666731852800884162203051613601254439002362395881539517942024461787717578164468456506404470319664162978591835870893739069199207595752747221137407565743726796742256162442603856082998440051924150826845867542714852279412440391629724036782609895188535802159689649320248216948279771942357536409951360823564291225413754225067701850976311248897676707281834867843922222195210235326163122190271713767001102435330364144022856579130724974995284255823700994500354646242449415981093682122797599237204636692760401348215311260740177103005318875871930593386759528524645922679459960195172362485879712629697842331834490050649164094917265777694021460694588422502130549048539111749870098350766945693778532049490670765937122264918349353826983824763310437500827290188049137813376356996983711681065698611631291763308686803569130910835618151220219179693510668278539189056784534476740231625368855363038443102305802639628587098840223242874370090627058872190580928736708907658061828703952279197275522422122885598443690050038441277393179051923451451710043577376525127284461356518498620844778805880114672000744251416837659155091130932679279263723265291646323303107720263330487285206436320559099713840573105774846561805865856416922070231349634767891271889328311668243823012754946401200550188995393485977622512594365490995581495896750586492952862038253419270654090759350525605479930437146141413501847734882885092148698578051597314369137395658661656099932192610712759330263985621065443149651353325612362482093381619193222366044509286920095253335352491260387835308673857747050152897944314574807238838493479796706917641429980010201254374150869896123758201260187299827056556084516918922896554908631756059487047806028345672578030085993842554420695277472566782181207215159662776556042474006545693257418368193302499682361866531693848877222006761738787706151736912102614399482097154271382493917152309619807024105771604231413849819586020366176244768245990443196748206211908765685748694300194220248188150854328337597216468357498924462653694944848989531549285621556287005472179946673012573392176726964448546294202378717087969232939547438081621089170914338102404965021608802773455494891292929940673275260316712056946472309384851849309668808213275076467489055446167677092678260578954307547298737580533720194505818509717590913493546661330484486245118996818275794282197294503522999517770591378660172413853979588595503285863363573511897205698381380060099474827526830791602651678039784346717923448055658610352332387243432138548539585005013073724567398714472057195393114071355700595132148928178228620689819756236650813685715339799457164955975073222000218750055863595560138332420437041530296682226121769275489337542097072572873115804191923305411449509502573320345896420910094350458733697761920924882132321813270287217319392649428948604868121697598363631991350953587650008473003760749575199965522724489162186537256525135947065172008975274342083444466220953451393003341309710070212054188279127277234773532069726591396148100733402922914759095913942306910907827004895184215059308931706025347954644077133753528614897058961577000851143161407746301495867423347884579177068582402658298699904359977410007584938155138410912915332386049819484799166860747761147292037541905038245947905033891543960379031089918647061496450427332664970594108592855151668490206504308542518057026344362002068886519760639310490204454698286923686782506572871248041054911756408195344648745045019384749525240796208017214333568272768444277132302474006567378134279752119485901438117835799252403778203550450338486218704412946361715928494983310241759193465921455073852207939624232080845453056174466248692859526968279594136403988334876106022608572692692727894990065757743262970709124616484622957794407577304909513573232916609993787448443471580483061763066879676285236543288251988505114428077565362626986125380320571803775805921224981439941714843966000615700136911420673341783451955975671680871864638847985508771979530102588923670488231319869581808865801098298451436200133762354950534800231366672922045016828300493021682819951347789776759061539609366863353067820365959477801912957085541973930488989120493850984389136047729282434321942204285488551994887728182509818142056660595897190835118927015753313753163932441869967194611733095656727365290635867042312977000559895592391946471619957216820443591946721613524440646079124709139255776726570093527851294684592747031245369231380988100999021783120856060854562723387941450726068602106304476010820510317812350804891490383509998968192402433263318173417368950589719255797799529274288132929199711878943861893522498143575295016400591101260053471402517164680092553883281057137537694389819877027154166226725374470419600411142701173416154375955383799957048807114878510487683715767476629483452336847176051763347957812829468801950963801907852814663804134300297144219719899081729653778604644947451652897580035835390416595594195439154024554784216770688645673765717732480180838613322827171477183956428117619287680535599872927365911193019732422118586658412777044461283201002136257832598032456516056585929807951391805277489674359717012735784966311062999275030950827665622626421715749816724752313971317936138675986236840158273665830635571174103439898069006155832166092169946897328193209117674175095832906713089798895830517150950295694270331848299465482562920627039542391366849866401814346089044906297402350905741157212767076301227820678808695934448221733803968649458291529088626654982326476773567503289988003299659461067376191682741824074423067412175543894766144431149683935625669219571887124122997886107629922310238970615574378133020597590507128308681780271097703016273698807756442464775086738629260825555186398261677553143175055925889056852618491511600829623486036554109112742860993417977404568166247782489452103886460779046492096379831075066890168416828111427380480623181591613909358774103418094193396980445881227381895813943213530255872903028670889333411100783438298710623480447120189362354050356762055744595690303623449794567058158673443030027218569409604453933738835009089468372579308931394015224600998344084611645569929909967477293489861879218184324733322149151205460487993142443534292425279844587199043431447530467421324792862852300045213764849884132736048025590551500497822069211359786376708520455315063936909372422308296555077167703854949191988338592132949754227038989939342097894300378916893845462746450560842333064659438133135873799968107747402818027745129352218807073690900752518211308980605789292553148344360916707574260134357694397082870295962684710636092178180166290753468587030160809447442452978901485908410404765178132827225073295051715353431360019484958906709067721702244334430671067593038778263216539133493399985681175357442746717000867620551436606418900937956625249127574087494413745424903601811779936037451656511946694822183104920563017659588143256568499880079716467841610948212310627885100621508570515321040665638311274005600147937627789418968077524917163803214311761761436027496322069198596115102556461722209020583154504371774613276179033475699432447959885508957977849265917351070325629216951426211054298236183119894136539537717123455957534687249524193660008555726550272151906553591852000100923416777773280604666021671432713492068053448075541796928079199141673208427456067512735011112892846791956537488284266231578115762714000798844590954901100582482285465347648743467409237271198528200942913180970771250424034355506627382955417064412492212291507107746697105947986747809691494832233657967448033257896646561878128983899380478098244485983502791274855033616557002729571774384829589515551316412047107754725195643555913651193361497083972957428705015716127443004006158417231926935555011699969123379964928036934722375105450376626786469124047935193970144636489570232514708695031252267189983365785974614003310537296839413540441320504333066349539935485249340651375339603614166283186547347411968678413049471556226456205034408194897768093680303794516307445601301409531524660714884880511584257091027461902639620700055718690533232993141465227459459253396796066170645913081497287704970366290135180629485376984763253362428655535038784055390713180309975570693431864668419455328034538856372466555054923764694673155595524653194500787531210800878975228856541948129709696066704097948296043290266162870993723924326432719741699018714693864558599543342906271420713627733244934311943939724916352296522143865996218577146587601090328212878826830754746305194574128470608451614369262011121438297463395843060204692401813509089955456149071076337961373560663425346264027428008983994086313040697353934997199916080059962521273722646120978349548269639744093810558098328396472279066788438136867674975694448666349491048841684675033867129366070245168496005773943412984432783671448708233126469975392163712862054824729522066046075063580833777043855123244267432086605322408136573132325957809444776999905205617498354190114717928784841308411974167474839037149877998809199183920940341995803257722449176717985795461914488470924231302394423157361994899527556665644485125060156998777450942250926252275913546435323502362272945898345774235998252715842426643441977427165777603305881579271346515678652329772354153720368168786293567166146488728959261350955839242828803283539669567722795266486148973706879463507185281258655398843113773658751985624544617095462580626305710367326363542861096767276128359522867088849062628613902900608470793167794227116614001975496754436584753988531686695824116246902456171117345194428319619671553673704014911929619043282259959003943077771592399037419324971044580649264659439948812302229338598287510281017197572078011917816995269816763302606515751754668254941102897929636435385693885229235494472578236456726429265065101272125173624960189837489967361591587597997484797346584944692813293757387793705950696253018174055897340870340941584500144743362200941576888223976259252308571163119648503073470219555354746714588275058142764699509487459152264462810020266446019790809536750544011621877592351734716754632486788681922390180022759303482278409242143995548987843839854135280528246713774008484662106262344761137081790739635531457114796764292553719461100241362656483104589486593427599374060623856087330671299843094199805580404888367433360256511412781938107779993854669166556514666595863499637322580196319580832617019627497609693425549007268558905344578112851856912271404824921512485549856613253356962252105840890274122892153243729294571985706582695520145634550395355181541058122581091348654992614965164409169988361283912325611795018204226294596509485176833277160493577079755070897272582076272501426688397745419070531423554480417557742808579594193103484961935711154407670402612372436105502773185439408853100619826983919191791734740930440581959049666116563846188107320643024265795411765213174320436405823641521316298791263563079343814215063120475011563864255037531336517378049970126591824339460559765520763251104163923592444005028908537655498665413680884171309864531331905669571315484775965677284150360197664522630375728204509689447920537109398962901025520331717093034556272532467714199926497555713776092525128559184255795980845932094810054200270970525108200033631226739420582651418494214772117424293763581788238409190131318190799284231186673727684559074042814380204167018751063050206893603180288514578746419964453733793011228506825738331173349404030293326567431363971125975759467732938043425124388523770783575414399096072722593082187331885450450964433065459254791005312475455335067904874585093407077272447484610156405298510680188789291508300565132092835305105145251318996329841120813818947841771218921568841143570437967458949668460151633930184066778743212053452809296447427943008862264036920303976739458111423157023132726286581778793150329292830979384144944778135876914311088476342414444386322150005640337081055830203033992037595829601813738225535496000805585923922072531856151836742794352501961201131697088666794593970382466634517102255835107075511906551575345570759306104963179892025426229470678420840214810732272315693562421579557580068618509417647973359970749956682117703407452985248728804232158434956812882526389590034372104706064269495037198935396356996420329195711669886518525938238958518717459628899332113654423744076195775006480686828522237483668904107561704689645500896800082425266623464229344683614754765485234581636306403266395365827870426154890259566479959818319203034421000847117656290107258945480865446498994005636227781659463956519189387994571173246611148706200838713012146762973670362389741366263847027292188336262782054892764698433421784272580862599484813533560660834594500174320532630259858474171195541737735647234583508722718714267696433877784205484873701006809356032646575575212212098208353023035490078347947935734208933251475015987957704488174616688011793726344479076349159348947074962220585838094799922236676410193690348177553195746788962879803587171191590971237824649049181074223804209675221076657085831791030637289701153651511180928329185177033791747205182413984300242563931512509720154981609074309865145578073592747180215480088117417002917615762022369955071292656092862255194694531196047326004450442452982598146595104837161717749194904552841872935170301115515824022435947576734872753623736239981234270720932131385942938120742332175252724822451165164190046918557297955933746753641958537169352905644799473063966133687082914536141100696778774491811669560330637096591018661941478348949289473122503208233209996539485741116003399668297097143440044210380519519792500914317371454212177897096994490031177884219376647317755902061828130098542034198742601035382709296712162929685792285994319146642252051238650736888496553534785020606426531948277364766418466302508625058394694588009256474669758148903782101465364562276924965360679740682331805411097003122027333474647348604626255629559133812998257526161944124523209353179117282168460140624730568562089672554493248410493122130607734248593330542337654362697136666523343702325811714186594594848093372963931734686401305022333432832315674778703981570135103504410153460901624565947310523039313984442811816863730974562287810799244592398404005306727864730535128938521279325693508988056358096070772875992931768636054922924176092256703786764413961629132853970161960656739256074857570472955613046434177522717240820862287724633846057635027004193359633542457082935922649887691171603746114752372026210605178493480909688373198033500218621273082424518010164554657386845455264160202790252836089224903310112980268110102194793250855917869010798257616003093764815499454037098385849474447678932636334627952957711041527081248112498959983553487933593700952771122416666642050869796373008678157519229571121641989757347196473445244056902781668833246920435454976913358537478328805712988687186367546544284411964393073720198153793267716539449554941686516884463917205767034681052086509357640041942425068127049867076736706277999278589586076239905033467920406032708503111660041193021674835395274133016990195130096054303089554505414961771085604835989441549384084325199399613207720084266592482469855666485560126136041191053078739799874886347686776518714648544420541500970816566822590930693150659171095419515145988700680774524545910439803445207741411987298249243024154785896506807207176942484484002879358691368645507095777060987424037333501983721841029654294590925969824775418828741580889458460979693600201997442995614983596190899980795764669701667084482890651824176803198685907238732021476876613211287337703419738096137850475015413281393312750386070192259350166436304544427803415519409864987293068117414310284079928468988925508307137672389868080782330120405568921811791063450019155451644067814833667903546376487996782798088652359379360217071624893949123548293125894787304933766947679906922965281231113444082275606758968735087486317898466480561313302545191629142432246742600280325420897076216399555623750515662534212236633848948709208615358303031480173175689527621410332207966245462331506096004207904828139083270783451633925771078696007056500129034074250782330546802146535098900880966605812893235593947649009521648981233124187751944166631115652044693821963739988049149397989406081548590179035304899324848753498946636550466742085268062799632534278433370584380829248470515808133921964984283311372363340008518865688787498609086366455434803847568936241002301093674549952802176698119933733618560037068751997039260538403125032726141758358444751586772625371855235978630442344495772993304813483428209181149787676277721522903906885080900423161103259439892327737626037641476311029610052067632924975321197666633852004400515758650689795931037150179387248804308814502214435683622021592196346358406636228064828664430304111286397164875496158485424957598874639865480545879666145575434804998387040559882714575234744149529769024899406727466840873015353468188837739208078342748580980268266295338561912565071583900130384978902710561494179794741367534058822954938557115018237179016093991878393153471655608721329499861658707761109745043170227084157100022742463628412342201692768011267417065125986318749423533001397122994265276743917514125467120174871380340044222333436043143734857641213933802584569304481131864158963162414812017832113776542359176624417241549767766446100786207490745599446557388468091057599553132220017250316285736416480026545807101706989728901160879860669587930284432383781640744003089693024841779036954998428276909414709004521496007694317393002021435962491175686224736576497556521259279147064033735231075701502282928434803605381065268926403727784709519446865487006211418785369019165976966719545749364218146265098068484324141208712638673749020562873077834747829046719171323582198044074898900232409778897049056852051411971614051665038490005165995038366541302154118022407301259992629099184537398173238764025875392425184988530482084132256859936053065056199545163387269412541674419847260532141416781319974808107363588400963342937141408047214067954347735035809813545358310156409722824652651754496952408770908561389353121036504429475533605801525731686503123306978308498162116300532311292122323850241222743685186433660835088709444680670701860021000369481315063246883555299985067210038330232078331999300604664838444917796096962436436659626723496368137565908042670965451282771586051686840396841888658237486651212638523054933782571301547910343346190857893137404932523757293522313959721328493279987449744514970617573440012115757529755945244325729243697049299643240133145578300040263181866960436841967679479985601905328538519905986344257935991513844797494230005463991285749564385185028400551767136911055171279904212338466991658644636835923063553606661605963531481456132435070365404077259558921916452623897114867838261489205848215613635499348439722802427526923506684966588780709601218464081468904851613306712826204259886282775029456874746823044072049946245395904946073992076184707407072919575675837097649654131477196348980982898035244742623019250256183029392405614240646173426688988452396928315349709934087793697944663812933183781690382747468991157931558774653165354112380977824979183965421390871807035391533384730284656804962918574251770431186628683849416601272561888942834877772585552712462366322756870267140832201780260909276546738035470812963939123548400942810036385850249403020905007750430751196418324345472507167216404613241493560816099710128596523146578603067056427858623431560016115797568884946689338367495644640874699161836018835814758652668035695125585547475788268349733526300659883952952264792346390171904556683180400595251436450271229490291607232404525858730435296490565025778933656195265788607380202783236554646594368896769027627365063436575084888859202335169900977514043231027329774132698781636017535785000216401279062381676357052789647363946149801102650888846265999438595542531163155317078001074172103269366277529986923391138073721547452612597626584891776805859296158651602856210296200217931511979979065803505033652198644715111437970254914251855542562863761319253012869777249111282551644088775477644192756024849163281933586980522446245249659461279984623509969991336857740287972041884905541751633353119518957924262445339081869192255299523939727873072908241864454437288559258312579809090759743770775813471199781470744870242480179957637294719014329172010969250478725265017692458951701252853658567872685520113411339892151369039933551196039221491229830047148529532624558509295292669870002224117987198722937816166637082431498122190562959119994459364754556534161594466320046271119456811669908178516163858918240605951554267237676794221820159877290896513614291625440837553718559334478473596858280951332835608780703625893995419585342930217188426660762826944603486626371315466903469205198436609823294296720080011881673707946877603205861368354080773263259008269603229883032343165987693891615045635571116814094023609488059422701593765365364563952308739904545370643555942325124741124096580283659740748075620559658461531352722182792638707106592706128738608072606138595047804032400831395101781483255491487359676025415961075959427762869996252165721866309510850050839814101031423482762665953785327502884264547884880794995440397980622674603959341571867491903954124900847066809468461283262386116856120472605537248832567585674384547116820866877407527830821725975504793844202800170649607278781747062164994715296042707992475316993620657965208126428181981664712415740626253098485245461488119903534416081466398278941587830740112063189257097112460542778198349787252199693963663087847868606321522452003869434181444931329166242038531344164489286396034434746022299959613157884429629581628054471375939366742096126149181956447540111894982490172385080120225796045123411111401647342014002097150582574233024440216730591586310500316015467775465927396069745125703029466141639962344590879718429458284186528860193343816187760892339913443090571703693549252246922183586860944167892795345186052984846459374596346322577720762527536434211936765740999115460546053627135043578061966602990232879187263475383720740359197223008250560187655860068635227175610483172032082900146562998630929859391086126861491850994585791290729826269839237189743068736223998446882931573015433211537738640501205729367317850345550273798024114601239123058064778211564861542796121476057999554338203130453607496260039973739688597346043492164163188422387660069360616061610720478073203129049221506324464128943533288218636657244840296275484449019215139885754272424860438989994771617913245174832127751008017051962147973983864369317356723641506924797221535145076902274271618436959961429789789931503095214854944047225987561640252581337674508339882216423597111224083255710150425816690396976359357427227731743264335892849675149552685609244954872305751648991718956079304034811205991035463830642171505415739681515541846542181745635697300388075987575990718796614622703292650000181446434133951882226379055588074196177081804802777484281237042356936794526579137972271451384748097513467059480185777791527987651202906027027502391099290684109406755273825714983872624630211628296653722402223283872218414716560829373087963078112794467598682080141557176184798510379524043837732543844255274269797365153358634245153065145260395448413171915695834230135906273548335373729602055178104945668038316349971483822275364435906840639492193401396233236189843780503953307199245298172200596314212119914867458150384219407198802785554234920424915464895133319072425916096567551655135320666707665181918562167037551342848042682186440046169870164461353304805857799582945847680686522943267654385565834337116574301131552155344478562976890702489779927070368709013721598423391002012270902405148196190037915769686045580509600627593787121439670443378365671814252577520185367232732184154097862463316210420349120498320150741147493886859026425470610825353034145223425396161496575566200356354903954972905728218983381497990696703988614501620453695158884618397879049057398174596042990517881260043255966700942025978054067959120638748506151509197096707537742337929505723761975380281149392391542850658601865613328456551907138475696955713250053703825696896752225765725218491532674468968341212134715407139242653610409056122183160945959381586242912145927611353364883847927394207479401594345400843032661819168732051731403500353279736882947493998999215037882777535168070648158134834505089862231205883600479416248090752951195775856840553006354679245157863523515118005679963253995656107921197119039422259368875779241708022602786669356398042134366651378960805988882509160499950594045607494001172317531095569742323120102119763264459332427117550002099319803309883946002798375233398570232761940885474968611844506677108608879410021126372425552876088869298329083722044854097955227247919805138900457348801163191222575742295567448983635041998005909821262259631731703162237894847335906759316138207951824841514869723236149114621726831721111787488464109423727907373625731685326215398287722433830075731188372959022390967643704812124823356197862516057221324558255039221928656076115376866947859110065063988017398302108783527084976125749003004592692091117059577023511369147429572640290452809240856221691156108794242608929370931778011126198808659698415435453544021966067185422672505112471198977661961549323045981644632344073223849867349535463241479279938100863656734597430982965225842596437390239359650089273251286159703810603048397453481472863033350906376752703854945045840801530071951070145426666542495225927648815663230783338452508862309769989607305589978197603039894450533407802506998290661209531890458171711606167940901375810474061015891648519212367899384887717541466045735877728709467559195559710509978903767002368231621325106597620566000465126762754035092297994924108898923538781628413898329794281457340938237213688805132880439072137532612623568948243589924270003934185746482784640144756581634733387871222373143213512770864356562822057883725834007499355083125430603487348259813730663990272325032875008611064115980354193836703734971520248386928859892596193346592332913399321007705203130105981057641789455140382161916553318823712607586413353787455103709709939334128552245233492649659155197167670938636962409607701852378995110645649789312922175443178588703274587410707280877567838459466104420714285441293694659093675524973334139540062833290412477322357166155118706198785495747377207358482495260583013188917077211213476709250363145079050011675872550171185062835020339110452135980632473914266490560106667148339275412386040203791778798224844474203876000415732561920623937855383124797569641020448417599303025036393708129591484433198742394663462908068098711541695104863541357876661529071721820087221851794665398842674002590091654901502660700713888442045812869845380832402227515323827760485211496350894962233653305240481660615715344002301747745374087654796120165558819343334114785051983341576979799561631211474211807026881836519338083384801957480603877234251641905196359867478008329835397957017567265704080375601417976422073672171149995001127625959663111412895970827332537636098188363786616508371203111291513466332049217323765346087531437651231027105059967846320917203165752403224134856341835841345284121880134134263449253777717565969190530428908674298523867884669003406575358955620461809106286574757045215802134613411998026866147685989293163279932578419287550194519298387826691314731269681056439920422697811317268031262030422861509466768227976067916864252536117462976378430211314564207274750484358181559907084573436052887850416937057196994470367494342579159783756203043539993068326759071331284925340722615343656354249295681838854046501474364735391770059542193110783343074348679917096549294950784630228275213449376033681477370072616964374599532773015971062352239012294032088279834938125835973986281859999967888852301022032103112967369983660239229934782447426051739985561993376043687946451485411606869893954907201566790762462739513796020087352135356471210061336292336786467726068620001799104502090266864546115651350584336845274157611568110320767652286333707186184714301276667252736978377559724494033552105394884309133838561902767977449428013693119033217837361873460066359131708828948234261646577455280971827869746462012153699086763842588254951000080168108435959691876563378949326143029360562638872426140841583427862322761391345957491179918403157839341838733143141967414497907347675604573341860494270973224558087546364650378194173868495647992900551567462711544251878992941929730906922638357456154082705837448178745178695687605424988625810444150104474202025524252985233908417440362496037974401765651312108841423602648967606638225243888198532493942915427672687654483875808475167581940402378219998127429802071736768946186332223667704119888647977960476899117035462724571997337385188967212300352520496321087922077628826696553426985519326826488900055973894018199687411300764501213097964008533474991039921527053700449590851195899041908472112286996487164092036522292650156294945523350021033965568731714984074509167187697883261458128176644281016749621232011716211132678697751845317914988066810405922842582737405892828717645064167437461820309901581509837767457617574058052288713331781695940054948683834818813023635390683018392496114096548168570872793647664710645461962133262429299960734405505266784729524606101117367309271495342869431671598016735686275187684985005310132611326031294850246125103872831498452439057464537986884650687281075469315631483635657599653452640026113866862529668499258121656824948878547012119659622018658706200520901851140738880162015633278173900914020778390583596957271524381419605029608511884920541870620970886710983175336596527392030495497085102075283951150916140306202735696961126775627240434959353637816210199560086922610521223180962756553089692852721483287897206131991438803994539743806529667208877746824519586992296631715039999944802191188635688758311898461530884929860690799423996441498436775633406886718371348864322843934881706633105159235888922856309639574767616045300392274547981016004994893721941858524610105024871745782899532352844240714590385712455205039420414880080291003072605003540007155913464887434173847025322909359139612076671142255697246223063519266139760681010172083579779230176232822627435388166674341953713497897799681236388842563773360556833446848620441763954172849620836200867439770619073534133003859597485611765874351645313123046030200503245662912108758688386150729523564266590126066756021996461764075403438355797382203985076221623752107563778062297520818751914511039352679699865710375370411693824460711300444317408748676043103880760599118762182670262315109703049032071343363022930456311460410968780769308189798362466433955992015734771625310666651788601724119096420535831301391836667916196796057434645691105048388236959610064383793349335194258191129451230003519355738488130804969345198999578409361499441388644004454706896726582079257460898700317692146968694151996086583548149568231414764359413047933984726899343314310426624746165106706544038292909288583829335125003540957716877359536578509667975521723209592239381352590622268487206324661090869789937289508198944992805032105337957990689280416875956075211276756278812112295220660774227011895203474974726852505883745167782950748352956188897441187541114502945016186481510071671524341377387105370199748076504036595792415423683106857450853256280733972226363548212608564098952926183474914311606363133803952878803963881867889894730810449512466711317214180939173314591218051273671919045597121727612526313446207790313915643925977649567922192680361301271550692014046873509471338361535660290034350465021110321201731129512171349731663073978891834340632368667934859667646227303973656595594087236844301512742832135408570681040075505495497077135826116651345809935349274223114389198951257480331071612195121750431632921470370750218831275298479934145144729751383878072480585099333293042163562921912057451919857533187001507917607792385214148547610186739984440514330850926233625895589791743183370861657514676530667675921593946159203727045679490353406230644027010003957784558663182404619810160430223413309650160970042585853378784033451521289740054042248775435505761216190487612078822233813072127516564302489746595768442793907828119697559032221799035225560620018523304566102536792405496732483341887460216881604953252289818980827285370043811885797755134113225669248377172486100157806285886310540365901166134091706486202474787841588679113004933507522771196859639807643815766965419537123262110989997013505410644565192981056398740736495708387560270099652841730417997608389996339973945672809442508918159494888240132228220473652704875627939468706307455518800226054418505367828918341557709621225029656767934191037134868044927354216755792504904158056306490366135140244228249432323174912124278427859936088667863606782505867480273130963774423111697344066642303019938061440723214443267185857839304851062505783683682850565869213969726458880359866255184102311282506211545098285136113947926761712221025047442843826126112068217962458857595772768344423031001846277446461314148623379168027726759478549031473073886602656553869655891744688354807241499217419581966887766475404299762212787027074503627231723450699255807061099537511509874510333150471612276896865751176448588639379788530197810028000612191159063463477470213893207345785144799122569968301130446763444109347695665624276832049283544069127698377769771599896179577795925033434175597233203950701280386100903113178206325349069616028668134896974594399693246517600795302078399045049820617241266436219128383763941109246809007122821329988063614811066773521972059891056937023536270142456080916924435024853787042725442411932769087651974201123013438730962858776680808161897509145848074733001221813032365954742742727473147615762297377734372789307191165519389453883726617270538056441550603284283504128141871524665999373387295200295924140286124412253598809024748965172953004723644259972055916424019254285259811301779241729507085854099215343556845823637785014931464309418595219872191181919497984855852913437518188722321352030771715284430962421632175495024557875000341602919622897165351786677461114061201365978731073503413845214579415203784857036042282985356710251248304336884109943410410723432264159595823328586405687812780800317381785325166889739586385170341427008249284726609597154487083812443653831525074251733886006023225456964639981602269894921334018855805260253732078387195874293381379410311263872263067187336635387529013858613540483744639760490769585367859949117435055965700099934851763465651081639468785404842804865658950229978012161548765569602208309622739295920921244609235634133011329941829118177520754398825154711861599404534613340841713721730599777148354485663957846789432421683761116205248041202580261727281448748197204109663374720836969757529977825994617412736654615145308244242199408909540544366835126270894213325341489621142501618483956899537705974517140121531751176218983651690917382298652510329673219771003653475920877522395164335715913808548006186131327359835387653678322447121095733915164573598193088737383549455704831004523915827115296548014776983198073103879018518182675378001605482637330611450348669301640047996414844809634898100501888566596253929586565572350468180087952222378946969070546080203666660707429104627025329489677260876950561113254940396847213260430219243726577173403087475740445350230667334882056427741252690294466978890886554084035832842979217129370860876940452490322406475941307860863204894821048183199915462057538878240821305584412585035868434166176081321236682084023390570215903184129426038338015290853910697923635238728956537575690401780939169860246578420093618441587566269472171488745254342894802518499260746927205006419004974501503805410035714022813269584412488558073786128078520836590547017129248799324522837822077979398518381177879695143728895287312537613101157316887598037399960980607440876143220607743302248577283172332832634714727543312175153092550943365275126289578790864786364546329016740376527866863179363630525270952412528606012892279244177313801240835557214735646471807009545932233817991952481351193130597816731706758417540482423759615058503418936834830614336594178066492187344119442192021752226051770508049968219870237641974802339743022586673743186406209354750225013270998287469372698277038818253055361937920397175840473241499119157364935044677353027427911234026997487349102102890627749576861654787263681966785173332309444527817241608137354222923992511380442014601851018140746248195700951193488226026383079518721816429902976773520911223164501660829178975444157286157947514241671172407020293247153637244071580620919845364004971911695888999577500210485573973068261387149790591588729063086215332315204677721609072878101628596869601540166357420812526642223206064197384064087892693748669295207672060821459337697494858227598723962732157919417172151328107433664339643763894326338082025043383222035434301400570992051308435336964356332724317007101779917828997026348648863380335450192595645174260320895263730754049446872325924853905120298735460633917550420998193295685941309617075767413848566701506795476916547130288553545108510465106070990707460196067931314934270632565249973016413280843403399554429680765280325380972959665615704694236236713414878147004778565171601394743923480821267926861554711697087611689888102260136631058625584799315367094597806947834923365571925650457339406042708983849736268947972582209292457581292259896995233962372542585005057215967274889178450982449287415997701214730362337736851537125115702624879122964241473874122746469042685789559404630956218770267588607630419107442356634471406199351473423191541315420881739183087624291184931480078920173975488200193412423413510256878601207544024033059914778599022084109503036278740561211320964970655003238988004154174557179934182030241951685759647258023453528935477472773690780924950493332106241792750213815491466931172156719740059988775867552081243646844690548225883431787192265404353855825275873278672690563275173336911903764090392199062211462528242402165523354051130829081007378648321250548763539747458531053735288800281576370168927081638812954532854256317403664461795471793036296694579399851863464886712343764451273107727671295100237072125105267573137355432399763345468370721237577781692648432725147644143497682599096868486679569677489653437673209909677674446975192279366757765937597945863165617889435939098965863504434647332962682325162935553580056941917924895895818750591881350350967025672136931356741420178913601291955441973690343985569179192072902161959939068816809006007142981917917062111875416882033475126903516617661534549833900938212250196172872037877481369506795745215418213164199636751508263110003765656430206277194393988557874684110312841011681153030400243760280935088301002298003804837976675830579444055367987449299939790481938632161191157094211301390550581707775708032349562747433171943789269363830623203963514525689025355055342534274774644970347265912960417754518736509937673404454733687728408642127527281618647591898671876845238957492076993517826424628889129152006725367333854538790388875411572073439277954589584219933287253928915317692508535615171075737537146630154993246269496493754332422910896582196134497328332562295304654095173080169014660719198500923965900495062923388796017790173199849187966051954176828889710207312839146757802242061655078145206512661081452932863043259826497757345387012646701099744814606983887722356758044326740710461001681520441441591711723080152956133680578944244686111243174822500656928081861757792956225044148233191923510456847100622232141536495887844514174577482236216868168319117674714101256809426568436833006263291154762638923267781288127797498945552833468723329688588174995454941194207927596920486598852338595891258531210076598772615157333787406258785393729961812533753160464247330671973347135864193042262419019407045609266980890000946897839076571075254072840070309665062275349657018134281842270843694717057389441729980639863838109278630825747023671519121426323793458301634620667984823823435007047146692395727716040468645553731925526540777181995262443741272804415315109004600388937179918659486845705414809873758669001029446636955354622631288443946419276436683295807644579212058686068771536764249991476888290852056578180280739301102722689056166132250318812634253444995794269284408855702738438957685773654828082759842105890600041916298262935833045148980336887332715847811187747424447354824347647358868669599220090860366327267332637569254935584087763696178300894625326665323174576266847389629616086796657525499534099158428436555138263870176922448503319000756950307691108833151799405348432016325585930815781049774159173124313324685125619829110266847359322071697391302307560459412822846719861677874218863924192882307648629585088465953166263239593590622914802785008844394355230468420042722466399295420183275184643708794837523280826488407066839479161392206572149275549821922104610800136999776116747329859757161977445693484012581695980724308377140425810225464403596966214709259557745950040894664721922854890326706687946639277107559982151886005716828580391494330351565814663332784702282680090366198161652764819143209351577931460668933555199182326566066864079089392060381613731319010667145776322646482983074200845683298539408061126870615730575681065014495808906096535716924051859826093885049592002272182539539718893122237925496988471710372145080453741158188957641446022987236022865705641255282441220059904669146403606124160369247568397283603390634920772256792909990828552806899251419754798884534385490670922837043124199357667956380957164910278496755207407172292581774063478681707769807010715595960359681886444940025334172725919122059365395344151444602778285661609655510562901532576062414361642431942842671000678755342707404140886300159542074555617281395312986537922998018735701738821125181668225475572430113567617992860618285655277071158624831275165691924443293886872624300358441332515658748911179459165275690414313918418406049464725383705375833823181897518783031890368647019180344914462633717576934184846358162165250124989221249345701600462110314613772110363178119654795865486800859260030460537211292400144891439751095007055395913253077668862981071931753832302583775152378095869744250754908771900433330674653267179694251437557436414023123002682805094793265696227809145172143512051611888006451959243998002715612526307037963343420984445745656968738356395798480146122244386511955688966594180998626712960027202320514643453827002324890119096768908022240228335767825110523576853365115637993873468367263696631595928084707993786663497269260760346373634285799723313264708549420870971645327243688216741485515480440630666030345190681989522879184230866741510641814880657633257451389889803327656209671574666556604046139436340817574633345473176634581678258452350402412340609565971572612715597406505495086224150953153323686930614871144204057626231865237393453155415249918606305951045145837083944048724777142037176335108532235590706113440957965587073525857733141288862769455310093777729088728392183195879787342592321670019345686167649335350118247246867432511448744952291391510404352150164614254592838241546659562112969678430705386871420551676782562826412196119812296126763299754389002242699641181512506860168440741523437458574019769573383965343381358448256424404064153836599489258551464797018970993186082304425693354710710995948653494362744941638402404912719032736397470178337875225587433527089858318567196034216108551834884271068516836431720951591093535139184904418970927976542223293607187417906586833542891598055901202566482947256628116967680844481751408036714571717562865968939501220611972212025366941371021549417890849566739366909530859048934567628122127189210547778306540241167245757312844256838456093870155227462691898010876628556362948791131337331571390157303275562088584992985964580770591808421255740528938500165417636446844432918249855122796335400680195324627954008683845184729905321276058460281912377622303309391355721102484711610818267047385691225442584609996823784363614961462393922449186566600398643430465057617872721310677227408064761258239486457049073365580549125928065918842482831229819652262885452484122762084869659226055745257148520381929564287547734814522570082937759762636537924980319462647575213068992145821080652437303698939662944273140215992777715105330853487648170831322511325816230773531169695133600214841710955135266855925731639419606748814051830794333117142288271335054002299901876160499988290405784216319495341606795977299090557198060616755906923017273511267147083445036754418918817367654428362636370728637929474511161418641882616942782673748792401048698277761989017668921492811850862592471201789433339851099267103417544133741238215452143330948477169408551239013620152446791681191913417997730654745796543237247807397044028671549072482520531678965100421334093385744195517330725929816590850669557419916488690889653876901095522301668073374802902161645989397651698447583596369090442769138151350207573831798682412547009273624535621760347795261583359525660318704592659933386610864444884530564240952879181671409270137297050219643205322740589352552884775055948420699566554055787796890518724529503514792947832367590850785765834805732869955774805176045496945101154504253461125132908082776032617753278506338231511774416787217194460576352382880795996758028699084677110039752749602721598056741904312329137050811277867581793867484006992844786937410427290644359172878454353329919227947869571325783608003221042692885991105399024243793353433727219308799351248547349015494437819577488246697126657377407613501082324515906622913424097840270734091432005152629703060303891810515019374612839471804455981160700868081671215347239642999272886564030770522013363942482201508886185972396407975368532406625958416437896166831595636009129136726222448884430935830975714320239486541640431228688210023798719925038202414831976846250430074106861441380510723968366533657059370233999086626072447656769201149916128418849035561703062129758837913941669693646710136017252182876271335341540594339968491835725451647847281493185978933636139949117987010364890509476662622783557314465148823943625629678261308698470378842560079134701308316800365763131953529994726316761606580764802165036708665942748618538781908513190375715277257891440536379061528616391397413141201163577675981313726485789737426823011046191254113660900604764193525414114457994802340953662684176993280027798093526901019873572366426734071207373182820314492457507026622985256193493177371252173677319409026101624473953498591965212485664709857497088481364881787127890197946568752956390306835050596490108898736563759723302317211084289810699205526926387733129111027837775143839651197735503584114673422237669075524857189486878294940697665966374337235240432679481528620344693851094906588652500902343490903900365569041569755660768210780173252132983692056459302808446322108699976141215984653916632916556583773318376971522591767101836113386117965077903327553761302558702111677369755574115340340560949151226303215236138051976356833800444720131219174525822421553401056699058152578092362215082900410450198041794223985927926225600736525987009565151897961844551917531548169498810457815720207364537657004005382416198864670411826162316502886436706369334930013157183291284489532294978729848249478023454102064747194132632017035496192723024078931811390279517379959318945199844970130974542699420433933668077521605912853785534222601184670283038685749417384959372464826195464275967115013133202067546273055161795316731490138127810294878640497189747598420263176408710901568522082046787924195743259461417580616858512164084777866385826488863047905364343101380927823155696079252402463344041695885853673252395702037220206934212161140029499443824910811091766388434235196421793539262767849508736351903573676243548699065067245051652466172271273038566918823170214460013308805523507636277714811472645685829220068121480740412844122720803003912446648355457739972466314015595268556187311117931826510876256348972148639161562001869260673509708651702294482514379830287652170787734413270825466837175638091516139001573473958789077510522191353879702105724834749448533478552341621607679991554451834890348747214034118080109029177999584605714368316429956628805875139865919938095054646425219705645951493139863829134498075338003511905523429310855324007616153213938978159953756085782200289090602280459633175748625588633412849491990599430181936347367759504810501436356377156634706007631463429311831770620187221700993538266119618169754343692255252217422650374803138237303910884752955496377512554801033934396889498741805380756679936349064052966675137971904189564957719144269395337063567397068112462159563771109281350921634552552473831201991872550736064866223818699250947704351764937056679467524767579857107492345150026524388671425764182999296550923189306424918311522105403012147252160589206557459938006589984867356796560946331829807930881268296912457506245152520951755394909074807364818531820952173476342676053745906911005633096643646460235523287143229449376038001096839549365100277437736402666192047754292047736372600176223766584231477042578134461400308704330774083705361699688376151719463886346847812206510219669131188004676528681937827160751884362620338342917489810381410859846207882305262277672182769202189927986718401268776867977614417587524698588855247666443090490674313017956160020522708823962460217279446565574501534414312734600129318243255807512417626184441618052009571861786838580843650339050744836627768929452537046021220918280778297024098669106233988158421131820819513606860829896408421221257891101679916712689946304161583886760214823944958250189430545217253228540671797609322187168668730593487192823656216611494333392331862404949055964955316031024160039000851138652762101746760318499324686016527084634359572201051277894530854812573538880290041480142302235547269232474937764028155594367161752253198096568732765084928290278209650535512563699654873112854830718637825404878581250205846292477677155463758069412844413548734960515340338751177191006886458041070125315046708245875498998295108880151010829430910558426879784405193263679202853025589262504520674178424518382487513875789410650121737331597955461563579971647670559031929007906383439151964906350779401334575300292928039406963705063928978492595190636725148499407484413077058367607090247439073813649368892338251823982972997650586937356803700779919124942046939943478142028631323129634700358433669542573113360957512066045479012782733842926112929320884232426919502964638537614171993064842729514169610082051789895960940400756288578268105298035419426300956041593641606709185902841411864138064176789786389551653467138076786880873835671165101405193798175573291284135621014121171117796858882253330503786797119522331850796405017981815410941959413927951373849863454366763057942819031394514655991133066960580476997160594981941447201490809119429835614945227837835757196963698083601500356680911147527727009687157107710788199348913064350799646242361213436354571406449110322279694745201723930247567195940554035985741226962097729846177436187741937811059340843870994037792937054887256002390852903045648625704774045600898497048971388091428310799772726758874696891863915840930267389588390436966516376035707730415370676650532008765874301049569079199380773901961203364144208288864537546530338841827982199156549784136517827909063675871645078182482987250545148755773209100209212520022997609282454823690189000162110884007075795538140995011083430636733397645460864285557323119959904958431503244879796810425701811847757350443106492039605616015668887732886457546548382068462442027330291071172955710981033966023074712348545417192095849887780304384414119691555197138638650444043845769389171918666904161893411159993834677790518446467989294689290558555137342013521749037469933073272534693987520774196963801401305345240900022211179007302301211261857266104851360308894906524453736266379988882456982728159097930426435621577063069868628977900501307871141955535474942822055938979186269077517609382022756875213326693387903892405170194867650485235625245647004814778144590499491627002663736659607353071592374398690370335364546414278120687377672004652596935952600071989056985379853009961190668185168811110178778192467670919356784559599464620837016888999676889485693335791869250870212449644500138278463961883639069903377849557585635397769546324767253625039173074508714591936358273591086329309870264813621941679604067159923338487545756807944254755586242092800476901503557678404325146604240971337794300708624117758306294432295351308763935900738256641870231429778000751797432653605447902338693414853869887872932934079120122552938936435233853932201229051560860507589019337545066388525072862548976620304883834121857446157432965410177019926091139815221290570552568231528781843002670426968157948851339260883835519743510409631863047138588271708741283943298720398789035990214862591204205215462797282197077583238524947646914678846032567466527274387199372579795801149647342462167006054619195619121818463857882759999488019394181842344882794088612322623872810231641940621775582239556581094434381160834745531699878935337335414591113608394905738269516186318915727311054300973764428985580525804546150640161080848606332324623076174778893486720651712494821942032004565738856666331738065696026519428988087925876367755509899233163713637124237055584886479762939472226935925589172945554096903652683458023322384794079245053571591955589859607135957691623637405249644763560485265232857602594878413360066038848884325835789073024159194044267457346609528638071545887303076554503791569254442279312956437106762323648475274612866292419912121957807858816009553552174494264937697547128873691374389644309929093034084814244939482965024079942192757506708994308844552375424154600557826085358951546645459113553576677352903557242450166944487610587075824553898060370781787422903520406142885725149205727844326919371622390468886387765874685843534794751336956733698567848385489034257466718846928196164233736778463728157192429039435615543875550042930000803374050120947090304500569718458037831704507494851660408506210360568033305428890293685154622475577569517153829748012523890760599516359802609317169235654274297573077296118280406210978903187106730255785195084214112889945479674528887121573967420129414602484121357972976478577575931876918265068988019554545996319391816032168708485447614321758377336303576937954761226208535861446230768721473770021177967283139811493878583150383361546127519157339705214684246153760803570411370813272777609374038116401306583531326964907447905804190424340161723666249133036462291409080060939089101317533039600961473803565388514107510864363786381030644812299938410760889862140390300798091335262338111774749626245355116532055036233672513387211545756590345120144147332556383171518537012626011962891884388778064566050898273503135363076867287629441863286670093547340070233027055003395001323047256747558386069612287770148688131146886391640970095624285655726846471466470269969894965990046827281043841369452109890128058759647404107760114108772668155680492416959548178815928684079728692383187976554807866841583821211019162414758535713348893077282332764946400506577691597259247728560820221416516131296496506898034884150217497214257162196445921532436241421047607306130281895511069859998819250268773494087903302784006147801767733807255721247415808787032544603771667530914386370231933336724713505444038504936451507703948243776671789385577561439760561801317568597866212846557541831995834816900214922325065737704533881847345497774984671937887155250468895843770674996561609815896845298960140853651745580425442131428364998680905822239974591737823565890938363767133572521930409425152729631238290021090238445643710430074424837467182818312417921368425638363144445022220468938611703486865660282336049805322546146650541171945294516190900327316587544935340189701181476067622892442203077443560169045077314492545076084764173751446476322238988048060311459233580247499712793182864032606753294445083763373120106641562171424012554716066138709960211391321755358399597934743056614357520830568873992101653825236622529931133853216506225142453753686607353645552206738934059477579870953401704012141068486118458616819997942137608631669399587791670729113643187748942875452182109078845860925720327332065696721284502754707743012594126109392585849114384298782177403914236264241006806711007617940816619562409501572593242388674709823386376552847756386957246363913605347111708172535460322174125257259383398463698830189481393148794067266712076415206021410962905129385304720308983626910592882589923696476537494602931893650936085789211744044684025385820008774476892620565504386263388785856704371812287075370668915049070491991675784530095161633712582163758437524374510334277777799789307436351540940528680519821619558785813663424011975366165207977106166927820789673210187357086486900503851743625158057046179917970848890329058031153499429236566479998787453992375691479243572508695552674552223265721852825143623878652431832413826931601096593983154727092848501079386809258552745956889498752783260552189940378096387486104882808145308697560363004045992479759999209254604055839200557566421806548347082049567465810034052714781809786508967510454833171852391749207779214110179766397369174393797269414944518756494673328689011108468838228994231255926790424688001176471236243925088174978090703017774124115772434575670514944331814571979223670831744525230414282262245789307487234636422591864154495430258640361438487883048491239892843177164665800201022301660398989278772241151967023267950655232392498558568244269375033971154560069039197723078577921737039567775661842984921088494779109855320181417622622974287177264149351101723262055731453246097457373448104946991414249777998617091739559354531337308467640717424795515908640835279206058840730519499507928954923652461382660903446379770613438209114223480310086488808018240971080814637778148019604473426102030443264991517211202875385658349070993455234954045526051801467123711192935914852282044916309255168128979472415625253069173927143775401393874016583496012698037728195487839726186256655558914218447077261641702248469966792297933513482763543989823130547202436632661362386811727290007473038261003724671878115722186332566533315552087746866942626451862202959717179738045109829024303046034539115100274368937716883168160605221205273059510596336665361571654278766233605370274861472976009625725380528317865616152084071785510298662347921110508853724840431354271073728397699051016555857516963744788898006262041418122705805007792183899885466979999987334429293841880829332188430846030606511724110993673786991442742586479674641065851252082553204627547188815073855354953986580851727398129977373657372928747611799818602341124175703049983507613150333911652034323674545649921837504932678517308154513317426300070381798575218267928099537153159900039855069804073178433937747551096578881539882441638377830766519310454029856365251064004177312408546190843477255188076972920591051814631505892109713645559318155445337071731660699452113764136775948061558611743804422752861860972806833483429506656910917766669986438827359943936154467317976160760055239883668713328722705494253217391594603329727043426076687740971177038970147646131679979377238723148845030436389554715956027242864745015124548915956123200946541910491514130226033953631417697062832124872141733908641586300688690860639042439454341937343426220364768924074674533901655028286979216364247981059395445207505457717429479512245534585144184281423866339127306601889569595465803297489520931301862238572244632446689595977422123894580503226696681225130200743771500761788545492588598982726048783431224304981819253169952137532872210749345211013032642343273186837477689186801128879636520547560698404235315607281284639956437665490007367924772640774501068532061984896221992895119419158852409989047702818786843729502777674764002134234151563982375617015713069991218132795427304775332961431951605023131922265626462488068240603560865774520863726292610405447903920192826774072451408502237920201703775727701782148005975791918781219723680138010678461388037209328319078203021578709874931657434679879562917047257442172443142057184695197373706452175672807603151079105468191030042474371494050557374899683866007473856660806163742523849948557859837191766042511062604698713972011529976087590136044540557228563704062510396234988656264733649375862294898029802091840655423143423702514810189192449245517575207937125444144046274874890607847194519859402018295876840618940286547294766035415742552842030487453311188993615323120249162630744262851325635986468125632864861254007950192789303197343935201803816259761067107916942685303569660087980884780036925023176540883159868087654317269749621534411719256849468931410857830110544035181427395900662143083336914878829074179604823790524884739111370140939502643909807021202231285418978791505377272798649995511580992329361428703537809395066073908385568189591243009324509429812599977775392196350161714199740675371805001474769741886123698406706753358191709894516014890646020555552897249796007746837278719786146951287097112776516751051481573026551773607202083588733320446361165437013893572484817646155934536438664818334736543581437432220654470850449160459964662314238531033518147332668462177403444498370861608110000756868204442529896320149424507497596154010477061509975593873075423565767435442026614465201093281459520558492707111534215521061194279321254564091184591079400344325711919830533754718281826733780197362947931481219890759202938978535275458585752084278434163618703452621471296535036793421956017430621360258780867903906336469390739632998767562693916274487808674034212550083293156731807952773322260349260299614520740879307855321588947700690742037584801464225321428235537915325000082247701973057895633510319933069705072303936050286254258013222292629581765650388207100783858704810278139388724044835435374871134273366710688840252219252591444660126461263847114781195497481465505223770539905024751798221645221348148232739629934098834915443800144003243057802784645204819888128119384605358406170958799348481535344504511388184454503762112517580995312418637413130018822915296083232817094020151179487280587133832586893376088018095682037435522471517777467356110572391641548958964000576966360345455358229885758616382071339721905492513737824337257055770200582952136667130873774406773917548240074264444422384800694347083795120971848220734548693859111616649226918549947636699384541048818596702980517086127283069385946953672409684449887936089105383056973937133366196977879234694259748752725751007885618473112320993423314151456760438628383558204756326229207888554000894386058916441417864474906328349102305408861220546470978825338463040864335175587489426502957219129105026329619880682434214302120390637657643273781762953984869758052057753225658355826265549539329237152736096483132244608389098263114131083846913678934121840740923975487110514107781968734458141190155458557767114205659721665584545079842904436727488296728055739263679289287354095245782687810534727525602842317299930399031868348911799727153404535125338242961346985936581330454792909100102093213294674373841654159410200033869352296698056587586734491093409472793491974863207296044328214224242934145201526107669650911183358366682411012292459818214570634449902419158738309735912934618996960745304114357259078518887697316387908185495762144497041191791292468277583382244306718639528335315125463116489960955461428233525381530075324572511979660943797800278838156272238196088107939411957667034075899733497536236626078694151900515637389848856110242410993333929330874889710308149758849366679897348247323653263245526606701690286533533710698166819709692325195681031281562841770698293924377817833209198674318246987703308588156769750612674974543188610913462298389175080779720147077698977664522130572429710565832053163757714379712985130620333213775271013446036230783829678582610862245851475277834903095386929639495771171201983672424629426020682293830432849906096821761371864615337597086369148426021279030135185048780658128925286035328602609166172738526319251241532059090270587581484110764040961674071852997797371837242082010601703213173155865206435368939085811049808479545720310159697804232154430434490986176805552101650090889627246997544503181973952828873642318198102810081834860988367169852934573770154444154033831267274286053464117687061227212784690536002834435800579784702915016369272421187269495928786319168939397779266115332982919821849794399777881238563726585148225950957780456546161629189697744794057869576945063723734700267880384865513135168771931348891198839143952995178342622986508328565895517788073930756258831377933060355668826576539141033459773648634064462177193827111919077075785822254167525768071060493357978313581192815820314119287259366185881552321721952392225653909597552531425950770653971185757643201757202479665682410823533125371081953536076509292345811522806751580972913753595092395372281720641783372948442375868021924382626867050192989833244448479323540190558407327630756185549308693623396985263087412140749686467697358212704478070105204823698027559997774297992500844732729136718044286849446973687934538495628646536262602604104631208087325047570895510044848490746757146226960371424858486800841581881069938263929404199056243728431547513212859511032743407483617442237561513571513308436625167828594713572059574126311134946191144452206984522252226140509007033483801645307971321289022954784236486998434723854952893501871415178115194082695424066726005614539158541565331252336263332386823895990439069527149787805858615283098026974013149521653497006843436605666263276792487797035204244556804543450440389779705332041139042060216025370979578144506269286329776988613719730002071985397014523277841194361409529046612571035112275606459381727542890553354714081263429220141462941813474614336234242283141572192124862746889600107271298538167483346421036066269754641639064546297201303664164690451580735314276595105621009198006818786111231824042447353573387938942772068072822212138849440089419966505880355108639199026409424743800629089055452951878661465214267315576836702262100168703095913020586103814397038362838293472335235531638580121672729359699594093296554589119757980683302422307220320387561694062534060671536453795678304119665133776648831129590776619529904549649465687387246108416239567536845608875451192071978173961443807959411693767987322567291631761476418665592377788368624686157958821413911814871088905568530177883040298067063487339641352751999817667381686388638406243941731404111050622689572849055309931724149559491614369638647506155165616157409927727112312141403869206166921098753011623070764485082100962532149275518576219949304397787653658973246654927963327587495771069815397032548977763487910655944869833066789720104290791548757459673697169823840986564681327255574382109447958270496407941218273678868924135061877075914583829464889367433777629904408153015521830204953509663922771149165084645587771534583375399631802763751246081953248681366201529589572649624382349351176615843975147960301622787114599201656200253674226819510972556286438357995078105790091009889341765559577662343697148845524948405634309270765262719953583998646202122441847945174542983921044769170421795591661389007977266303370590894352393653459898239045776973479665003212536786175110923197958604111476715144444431061645691298221138631729070624834130137042028639986469050493197186677626377797366030257899156132886759486431265889806563462548728900719152909314215642932954493115183934608994527626891294252654999386634316632299154691258983859297097017209073641249224726995796631214478650063433056557962450356190007409696613093877889345273494255448633375100546782022987669774147710501493451754491744751294575839477018410578682603024298516832063657062308420905693318107294827745013325786953093233352486010132014821094068856956086310061665295732641161293811148113041391275586360553894335809935467500115121624052356255905807999656873328623313370241845042838574430397059601177983308919987776100078685075702226264330463206458578291674672040805338525539802441040249362040898920923958943731657526831168671902474949414220098714031960614661313466770847253888930595093449708399662259462568540256878666645879860881991944588335980942773045269058693286518234977612722141169447094231647304490410806021208789007488422793496610647072520932116519944994090559446320035297053764950701953134773902565923094517525759840614289302856029404621037288167881075698922713478794048538594752918890375779327151834526643338967156577999823022079520833599613279040385534039941286550859955742945699782170534499213568764748840063209049315322970086123915467878329178571519577494710670534941724502869550653533214906426078506992443735753682273186623857534244769489567151070649372412155294522505521849010633612201908401134620345544611315890146712008734604274221593969836024069783361246097825140975200289428201318690099249427990712590606166964406536029593956899883400940614429867383488716968951675436882863518585327694722734115344496441651832044306232261974415784450194477265357942494724843517223006363452502530065580887390139202951799870053102796308616119418054543274720852869066415317403434847001503071970010441946419419562531028211631458980365353065230260890235195727065528428784288910719927951032942285238731713742611267171994890156270986447962915656256205118993092557453717611625730542661946781569055988933877442854469209769026964648963921842349434573721153651061118501709639764319611566105468433919060498277610770750408215135110187090273174633358562462187713902013654325759102903265431060967311255834358835256296811498143765809445095717220387085609871695704706088700185357997847084360307926310875015004908581764882705908419315463820284231021289040330746923764765545394904824945072492079370750896894122595844642283041679849605569966519439180540414147202100785692968525336550703818037881573285163030589264431929500902883001956854849690882380597773398685076651381058336852933081853474113080059149378725250713633912684577088712206571167640590157864089672105037351039968491605261821092997260205596093604089848427528637794642368730395745609215036255096729463118616526235812311149754011779331862366248084858105918674792446727684470983610500685167813089917327774798506873544392281402938671078822997299046943700418129875710975776196728599096659838400547356997018355124790640183873661691219712146558875000806670168626326019551243877828375828911178628419804400714743122735134521460082061676130406950385756684597975421829509387823312862756663151924115447280953812222568386802338911918876538046112198205756231341080152138618349550003472486822518875842284959232896927104252803278087704156178614991101025211786343491064469232057274055402387748600763884510706265614465877428356564785931731556417200145935935634172846347583215955656986507510230959532908001434109405489043346780531070074758085738727226350452664077833921177829063795138585487019489841423444450179800246181101808340072723441080572005094734933183042667067658592981835656495271575381980543750114556967655951299923059479448660432158720476157395929535135346668565135792628365154838281138385455429815413846272917354963794882920196928701544372372873247658591339223400248922228878494350951315382183074060799656428642976269005862820501020805581119925499163703017516768329311177824062964894844201884267364361594843321771131831301250841896324243101722793288520952112528802149773818018489351296443831339755267795063366535212313245157577662134071986549013455405049443269139670785688551845918700071062863128776631476309300360291985151153507045080903204541901569221417503470021673200393494667194720360950953311049333974179852512103233411138182507898235301924396592902948053454723592860060319941492367960299504704962676795831890210096338133437501482893794631938398553161032199170594775537726859817938624537053931211360232172101263866751912359177080522051145812265103465658980901021310939461551474854316832552250687145089591304723194208116776391132880127057195416102826544541591618075201128596428222899457664910072716047839307616157829629939178142120505624382372269112758053917293793900050597930382565581853409202745019715701040964465531166410160862531126763859812783889718170808957890243717263169406565468341832998138231561796589329567805771747183308577088363936428475330114379355148599985432541523515367683113173462284813664526640350503329740703530429180032276741376430875702876591883147600268261959573101900241115814319525300311827483446010616250450805152687319312760543378137586777177077334126332020733197345940834806407334304849043763927619057331589046161773839540036974184684003898020377262596795924512356665578868604723059113318862253057524539233762949821102611837135833138866922904341369675091834518285718782960029707872914685550912900680106721590814265155750453576615493768302388355083095217480729607567817739694319893432373927434171496058331437732924384926326154231664029613164152480892101702524129920798228576796553154214612977518009762511144573641355546654583914690264534922530093514032716412359159131377709734192148334668739313992129177672241730883525969361228052673301162519184041274835928811901654785231615676371310347708705513899458517761281634735558891507440512804389247477120703590804607840321025395606623065027677865223830270569722612107449434055205466089532128914489586012357429272528844264166604125765214767463473999237511039797244882564143666335274214848165988778979397752383492899133913549101619185018305549822254221174730110545198808419159956782645394734365862801461089950380337963661529595451886660636401794131131241106492614127281656581538973541297547009572474155257435879520551354675437464607190088804413936778675839182776477549216044469739986948301731403355678015917225165841678995599036429481178920842689600947678419242689974023663518701517320023018679814840664115218805320572598497423786271782119230060133939130003019241023140876839296554593366549243931954464717461127368584380492860301362364957160372111267708742448082085488387887757626160849375666721688955603349568161317368782907805129653497779984796873715216158514159984989042761935659745141569871057520362659304542075251673147239137609714467812960781070824404507125109938164812774044549126033837453899147178039360050724192273469476376369103479638276911638105931515517599350310192967122284562223210823966076153621325579972693733211344499456097635520053121943728851394082501467082536128803295126286727163189646785629898553082918450038528955178420930181625835216374765479657570638963282366390210094112950493606615191058541077144643934124810841141363198589323323451948966058935580558543237567392161278978682097775298933370162257392114413205092577927860084051090564732442208488549418195708584307766142376927590567410448286390777226301617671539693249063146710981716214015587191794788049637553244774716604335752054028295560872351001444491794352809206879531057968020408806755014188616629917879719162313852440009222394062811670894656078034762604033754848952939419049129144893242189639549571704952392835614283566621455215169666941663094386088748949188800796606888899084620695552711148522390550076220472269947756165001528003933180815965215881389414831374671458195055442858206459228272005677715819700709024731324574344199749671284618454163332330945312968248336961359198684384746670100289759993361302017097969866676071197941083931619934483831711406749620818818233863604967680921802625950086359596490591540276230062086445001190921610481071826958474762257327506509839752136410473974908474770930818251107699203119780454611294533490240783338834983351992900860102954636231841674498930726272027637203478532447344539131259441079943556242614142810592047556223364197893300769504289081927772793048321476730773259660173333937090080265100469734397280752346700946606238253778897332943548882655487552675152717850266051270061299992534808873225482590314803005404401265945770459719981877982140820182652822731767369166970745850381475326092502400773689552564511753991651751405359158232749248992780281578349815562207539364701969164154121684797855268449966827901278950127043910559998740041541021591835310578807621175360729664178962657547502009149065891318457063565705511122444172452463939172339406650646937214655214805025375296615584916127365072272928149214720778637226657379649299145605127253820031370856544738300709435615674677234212754722759444444383729704364427254286780929059257763914732077805775496705347168645159383143431401099120564188594469370752186782412167705651787538699944544732994640857468999792410891427664569504400129504424396564761100717892645778818868485448314785615301087983994048333841312179158377293813169912983982747716734455982634654433576094503065792172529146003796564200104435106232056413512864488152387443792505359351026654031787087544212544270511095330118371726421806294036836059620840280111862777940881323849366890745297397895133479320518298255773024301452067978778080504904931764130581396325991814278784136720945430534604318486888215006437594798847035263570312572863245391943486574652065425586958623952521379412337565541316776897877496828924740910584182042942128256519058572146289847590403496638910709602782252923666580053034210112486729547408995499742839474388743222306046964461962529235617205052142859244681457044229082983137174121707056426340429294586487167560213956168625601820343726674875197823543265028180911660802561762279855495290962335550654844200644197615231663521976275608739217283696163578135946278532863139333867494803835338589486113146637599674534864011660634089318414691336766947831948462546901793055034232231836992675919275206892869673981798751740510896898433429478354697289777052334925632537928462822552962037302290494027808116002078150301265940091538493605200058591442687802039239651697763408349114882961698823404558861247052787648376522164004928201775385749635271267793919915553440276458285823967551918711050640853951927792886483879918218181232701479445345679619651020746795213647037488101699188205210899272653821463349665543003336708466634977751904336051732108125411448559950848088227731314580339527609067442175893478585706241153232752993630752395913039949413329272475870720439179552341855187230267237919802694287778811121590262282977219263759955034016113030432408812965287003899339237592794732219757695355176543032599446065231996086351612351016087695846117417871941105787713903636813191301285354706036731660836076123785056920821397014686032353311664299817097532037039774600870923973781633368499362069754740812380016807744053318952996497444166655284197074365661769866976940733751113349674132470900204299890204302441696115437372213073322868603197444432890873451194434929872847417348009729204951337326352213351302272162345187330691461196852834490485985331827457414712998026903385082916780972142801520820584307316265521961960299892936966476653752987845166504277314235821493809374927744553037048074480401224082392998405840701091481582724963517757284966002956903108550750627247951103481972021871180449464492989535754580597674893770427690190230546517706604669613180936776186743436850670464243249976335271776163156586816299143904680436358219547527640886155423031554942311259891661896494548030796530211662846632615485395268627189389658068063541413344000989160240178601721912950932698796766439787626078551553449898596369667591528573823409602284165562398580995514534528403966075447533312638165372732312070851473621125186815420669517785809829810027139567902641031293712175005508999186781237234300692463430714415077239630955372209118933680866823883525592093177073184445860790960005124197583102519869231837494792833475624743117707113953352608759529053587489594191172933241097304163305462022484645228734509490361540320363683677240064908280636849510608636152862531727132748181955617622685576171233708930790515762159125877561713780570089906128504368128758236888805035219699901293531528560231057292493378111272296800301593042466777056346494391024311506710482842753860610879428917552195435324825170421599713271532138774107310022689563483991215206918368129479237252309285375894158450367228063304920707226798227980176177546986664372810786617291227341740385627452177954106675325797108332651704517479749214617674683449927201623951122528911128692222242782708719845873584588030982939620045356000127798457388357208378612094320900408500260150926046837253367291506703279260711602118856869167202946304002377081156256727302855820241471380326761477088886479293160146179475521889544470722155969085370028211897076872657543833028773003323012884504686104283815640080885306381097076789075546802382646666814759976440555644102796932498114685798003531374299760385575868183727930804711033982142108659030508359156311016946255400076699823392549486174875675791730312041733774157538191265328669288017305868843891872467295351236003887138615077145716773811545309099718350968484994771130878957995897859566363720473031786934106036018707068250765145557625956403233707766392610561991610239132281466628576564018935557961408197281745024479317853012401902315870037443319166270199431020041917003127465223070592640225455124437782327296743704898857966524981216868666157494105892932372613085540126235618204371391210707610889227079510575713632827536602371118456108603396851045921790101370473057772990263559541338288593909215398932176801942222407147335624983631608831016920981107886298957619360233632854192695070265899514102589777547677500958968047822827130592112565616838919996303973992694825648603979827502007465651718669161216381899110210244803347679985943221512752854628177989035585860060612527448898470747394230617610116990209008108167339879627787565241552102121713897533083126591294016155815078265067554533934967907192656316511474555206005603154633591441110196893851392118681371571430953178971826222851647679097018130286130807052718690899890710785829117754375824414544250280065539152562575272521672819749044151466142050435164384335378164629008232552179356813028530140945961840169837667849197415027195514096452417544793300901817235207177349600851011422015639010966871603336355274431093253661117997618061408505932866981213766931961733923521080143757500976511625840079617073301592229478467126228055436731661013739158404622515828455233376775905027690396024767727141037351717536533104081383476946221466148861678949559526719253234119918156670503136206978826995145356624170438061111899882830762000486599906071618329309048057567485978864879504141417978856820236332708474429319839067187779514667022372982795460058592264235477239442064121962689740411602651759291431016452724238323109075737040918292800917764684856384796622420941868695122587086449397005861131963288944469897413377878946574819237695191072194046454130135382892114014530982808862673630594513920334671123668136963939005756339476800890492738095031120501477197473250342856083011127508044970232809698740698017918671474164831983337201101389966889521466875607253366798149292624820921708244736035493812495331046559444440691151624352422799105422082552593541058313932116320669919075347855207855644509315054522058160352133471866458720179567389378975913580047269771016024512958917208162639111578548571253381087079845371766502057119082715295950957365194224354868766310830795822349615134813074045570960060574286541763737097666579523318142954821093503419424112938412522078785789828167897442727938858274938306450202274354830482129262693869716020151166871847366312346867215580690137502525663352974499214178560199040414246986383259030091989873169842829373753447690233876750823716981976105362241666103892344029937017716299681868515996177786733760991402176322511663061685165113743975760670134485216182951797886921172160869349678066612752939654755757518977871892730783693009272367357453140029939589120100783396346423262044297873968035351287171270257279009199876339243164280748338900794756667806414017526245393068761642733481920736660981056218026794733247702257686451952095645048329876769212516453525421114049205479095623965849799421744368473250146491916691566575946521859306078741527411006547774937801457339655900439639776995915361885378316573755014507731716020829556492265342597369185763827726332732778883418605644453931666948502969486597037550247041549023870567724703006886608183295105338274930753331692641173285513168450009184409341761024849949869666095235273338665112135938559772783969157277627598269823664545105311508670099286594926224833908397563031564153011035666773843381765809999227915018466524160675977058675530177691413914485679088619870181978184361743769655650172896958966022606495151378573206308754067065256004316410449652385541445556036392928516161051467420149145894451426100349693635101600257707063908034878976899691308305063247225536593382852992032262176314292392477233848577678509911445487009482592845430729304063860219754450646322687471933199910469336222223747910481895711409977023346911787917225386330955552179194443066738438299385483680403324344752339192242389803199826110474020987477135741515837063591310524002222664811214425255593249049779567534598619712830949315005038147240851063250157755858346188611923397522521778363099940878953827473561772084746006263780231258530247731997074529949510173298907239501806311693928190817964303592723717882671791870784982273489615266830595466326332579896546339079090430510684473990680017896562256035523301682947334463473186546555797291012917098164483367922229682996918643915133045753344179149619979957300798729197643419301377672892561745694718141386048762516031115364502930399217531991568594956589696916723939523296638777486626377224760620833887368449234665897152156887913216227853007679564331645249602930764303489275184277489896809900235522509192682679503859371775259272623785339442004420694208514367522363152972556031589128894184890434798897607681020009984326458733334648326333037970696807084215561150285044840769525492251152789856468470720609286036265663178634487291449596086754926474997653460631555130101405732913472010581738103968714731763853308348081015155106380350204693934753306340023780950875363777852302719109941297717822776749934847205582501138469531759422259203018826889526615503535034450424104367945504622593548801823975252909461228820044422014161485758109224018104491960249747395723864259228598103554055748342624834544671154756108562404701889474136962894499894908862105911129906284222368247072635445910815390498675011368794493153276258640106999856713030527147305914284221702662232991290937613797194307175723017001926795752114274620457348586209674577897944623033492314245032272573533764375687766867352880872861699680902115738067280815024636857875180441132668607539036273846573408821204182190314857467919637767937135929799978184435760538460214442262177041244722635056119788251906884292841598119968129435120719827278720845894343821181791599313254996846093071377883691271641791451329546212264199630269622846102134298311500828297588211916512495123668967769832040272401597566880502381904608661406934555007095543400580269573305288027056681569468810437559483839344402101392948123822708095920661065862744617065445411991426864821079085415044992678716688972383232636045286165887906953036173368653302972378249854761560230339815767851865468334335798653113520657683641305459774627649350970715179119562556404541816611867362730160569017666356486116838478678951819867542349936623880837470926201696541300600686796685660773160395869003444161223210777326179341732438537660802889069566889729764206409803654967365876257320932418113017823603487423219616962133195635673576720745691481143834899541248269828678889367386659971012182736988234107660508955566653939487409070928782567945865653341557892212925503112487572874221872342456322012941467846844565557313976852613455371754224042438296052834593747181894932689490450127872262533462232256976215920179367806175378395084211552360332823231915698371186098238235494989447493938364044387177119680345867510150457523859937989749749540541620315113911146624273319201298085130369125600865890859229601761092021360826088730765388340076745028505387637079705982992054075195329327761479803534140471545450096128894310229222034125150200464144132666978661473125081987147445438870916825684232849478943576745184238171868499070039684694103136193227416149425321560078085102858060583231491222868125006533252943464077466247509471264899847305580488096423058168460308754732901503348539043492288425093226010008287789738491112466950436991104815094434460368251078056528215044596322638561425214861564458771398680340814281730911822996597189534337199385113550226778117358884263545940431453567064847162785253395167686720247656706212365694505783539037700967773959796951815742680171848039793267942009777668627224209090488325337615420551318258925097239061137311136322970861713181862305039049227392100593734205664183898792346947130590272423353685195672033089589456267688979623501259559062172116394417435235383643749429242506621433179238225041071220927939677143157890822891206539839805120850337022950629441004296631303392195470096651861670706045323199108425184439995543962046060561943511524016358316238693779793204032299868224634793716478154059825561177085199978884739052822910924026039814907614475704825435127196117423637612235574251643139041558043676070000943014737824802440726346655429551931880472390901610901230118461086204480018454062269471594812145585817864897274085217891658835188321495144505969062958358563669930862716730552085555559432083910519638807064657645502330931460377467717682641535349045640993560154525962326001424853770585828196637034663467644348177111306898122577930745917359477446115669341260095156166369517054605595190644023492479332441968155502337822265113187782000975773831549172222490829131945142067794569721578243284573347062767735319344464303639654759500811294353594486009177882161080850430530211086458937765475754497378810853188479742339013142830173158194677842565182631270317971358909167041455243076526049136203798942537467779053344294339394218755620653104755447035573221929158821973012721490710646056390129308625553512143510946730200663288588645615507739218911046693641667187212847847916456758466184335963158847400149533794421656706295269398841723619926812523536900271935863508686028134787034442745119862336209476308143637167143829248406915166905278868889301098834513380912491029813173012937954672784700539725800088296626573525498217387608488397083613710825315618006801940564350041330876017179260431215133593488083486336885596153001424062174933180099453040954209805076412914548483460633703017752637962557135774879281666391916614451435265488007906999204728622109146922256970586873058670029254837965313220533023653961432057399988620799017560544952537592322115593634218526745196879689851092242730261410829899803354736477153534878451009070039223802045199272864281688012337681186172988003561689283707104669556394362829371683818434266291001747492794543235803107307528759631557074705100918343486300319587860143997713400314473252423139162377582286328853640919762816273099794984942040046052417044413770411258573413210437333601662071660402796931256332724923877054356098419921624421865323492261068441162183164133520897526096937897456032492914227814022240362878302762404156971808745886660690985373800248909012703688691705139762692898762507508740057244378513696312736137063649786073087733827271557793757740931403157531841814663474637073479318114240073592582054137895567979952794947086447045261540299799560478491147392917774483295272729618168311226815963657791593221098439454821003423294946353458559515537813160054571463847950329159191211415629942703441555569687199977358539232631489707308849298359486950138316037351914873857960102345091819692258743465027357416219638534344800030304831302806716925641465239205075792787779783912938318738673246430359566241842521279459299302850399416243156929576643876851631159193603571237074736992506452338901518041811355875046539269204526351690300112811726573420994089898128751017720593613571340025788745526203787769517245673346124730102388094509722138548569279343984008952918866178316018127020930966909975124507541141970260263759549968392430784680180499591605716828990802474524127901313327138561536549866736119970967259479861302368606951030052174977595315282987939021770904816927752096894393095667756958561578330668274925705790649094257427477318730287864418694307881955887688512835961482150187711024939115142085758692646193619849812137762641130180244728917376087947907325410684631151471689024063930628765793917490842835214207995728447222846167807194655672034794944557897845207388395169583596509748802412883618547292193786404363269209330382261063449053916538246407932151729517835843640514969848976391106594866838480283704175688790986912070264531229576076063704809555077452920565763959020553553981557423448349325359268228183442238215866538221555800386451154143684903987140753573505929893071223751872501631647003069913308603766098551892255017564894824322808183558467158358822183686380163563763547652143323076385296958618482670249454498917862752292438213639510068578522208191944694906929742806363126457524923318984510464331641370569598068986283207133457457628645675792912919510444133248608071768823512944021713866321827998547052439071173625625660634006272884948005156999012041131804111801901570635967118031226086610239119748683938568962203762163942697876074999336913708523906623240769439000702315537053329478083359093231191777686805438052807841686764737662523605586304102231844862997013144644508780984951926902822504627565017709439105570860034419599267900611631051900688472788008655298765021463462411348285964460222822154539662958151585431680096551565807894487912030470225668617367183151962622755241692344585780427630607026061788427161019780421892800185373062724053644390580685078609639034140134862919015150174468501628709204711992273208324310994703131741470286884274165228183393991350928804249290430918391696453903392198386536401330164479231576240999481842363230854068695814458651260740557417622119592354611948015906825478508334002674991771655954027248457381125184532675043523444319796626585101705476386752714708075250468224345913839944208062233075451798916443298866137254329196128995788218946809691107377639286680064390623695485617998067738213335392474657652073262599301191989438936283513662587583553653086271065821624805667737273268663122666078181944797413720287498723677337282611663288944062126229574004852320477214808560299712184799715412630966597403127893230179272579351535826459723085385375956300873182268633053545874316569469543821916912257139247748699705657199153635767079949161375918518794844344891351054987785647692659910645371963924232617665061811467123902299662603007454109983099795206541650612651289342442057113432069652719357310694645532847893811812924864401388523620662054954563015043107364466446063317455015433927992742897011025775085338933828723202751922948377926923395931889328946009307001888726211752449205616010859288045529290475379461501092645409829158058589726081621241621344067085367573909333227829015256725455683553623570672282813320490088324559978139329241388776310072574979222387045239711659690073425602321164844196129336162730511247630833961159423163363753196315365762681787743615253999382686180358012304597188969308138949463513341990262562241818082370332314743796161688783512876894154115551956467133592644349293872329751028494496238474467619919067527506553756193326210123722113147428720395406379337597698491101750518171553142953755742604423440882597451636470059447700176969807875324813458793089346270154022745504797200746730848081865523868872845623896354995045377006855778865941973918094762694439814403931646286262028488472559941974667487699111340296382967190776910808797854606843531782433182944023001689302981615650712626313397746941093873700881645721131262331128533916559461677365457867310597734979587597463716922276272754431264018972450538267019304831024273195578586155207235618618898425366286346005844282728634235261277297244719609880684378901369567928229383996653527284358457796673429838254519041268217609369758601753485355118664266497934331439421888881584716592187861969650515206145196074838402301146502759790836726790768862963046996510191580903127631667670180241789928198283701282645098753996286989687262037594794743383629102205075157459983706319359062091892195481119141404038089707918595977381213104252039234599256977997274616446148228909377637318065229893073340959377671536304683585054315058078963819161910546514040016966857731662729197594137335341042686424783059071843090367144191940458056808742924245575523546955442084759969434426374111272698813859142018323903585614130018162347378256692500052205019673365637969984614952997807153277216742858314036910577175170202881048337377879520359831200172203743579237748126692988500852434910864242541004581202380948481507797442170410609720011221908372995399660195346944238718220058095126592773305352770547341729909266224631731389461077048619620673555526185116698803000564078229914624459537225347632287362831369755169766269916501257132246210953286202265390333756504768640405142529851585908531380091754483501368867161332912095318825926389411254650151682993637398943611886349674114012917412292459680150533298966482352599939749035810388724736831728003523439078306834639577038084727605182105543479043614765977791770227525268381903405789318189629998136465907539847621863779902567153258586425755387840069138414513733476027905975609207620452020264597183690775077342116481434461603274804377251755786342251900444946965182401023548785550666652007371503204980742681472407170570675954322336881796842668035091876811320669701592653424247242262790868811881532251405530896834497122062506393017891817117184239113384043843211250856999990596790379491632953599511625041255011688729757079221728872036798449191511953204622948241859614668584785099223515300538341379015716050428277048319042017620749298253159095079522640963452464432609669194451372197382970581827984285607227535994226608971330009508223254448960629599439384292130184484134619289805463831326968084481057153673639844980185773188225821047235770267585161023432114300173432161710691224756394257418962212243236059949268659617652658541409263793205783067399305999630991445601276783009194079859653687387006879943909744911019091272484901755293768563945109144098391224739642006307927620685650538504356508201360005740095057744828669420451802905475499892619130524070331301643988450241031060570687793805214329465477222349340305926760469206101716113564177230296444722432103099813883381079780676668480141098481697020719642339821927093190267604720614216777982071463603468316225089149157907297807259502475356546269264377529279584731587144418016509013060653476371458702763909973232801454407502593934682962536037785858357940612150146590292523830341708079651645749384415164927141662385715270401897727346203968324913554702526993751821651950267778426093992733016455873276254614587461693451417556580250127620671048619064241202783640478967872283367374996718009345098889276520482611191128996997815018817403301389710042186776943544628070293218555802674199147623787765666708660330610737438919321460031886652157719146120539708695833363273508905005753656948477113526723144944526417997489521127672240769919994727089348922371322878818361451998838025424162406079932974778506506126108698966595740172335127543114180225641385722428875499311718268902306328212994516513451787426259276970723506157800432396528515561119959358134423656720920912705214332665134279948178331272667244402833936593283509003615514070501317295781825060435055559077633461485166115210116220153025515850885875257601999963446163247399868907939445182381217256575847799736309363833161899048221215036920003433783348457430935597582569201918873740234882703003504607386246284607182491536787207634249350771956167771547681057085888372224016834051670637909737186692721428123152876493933908339625890376277061150449168219985564550218583800364582780146769701118380985739805363129918265770589449131491066026530260471691288598835516374341808070615108489261462943740656684621146885521238474354255144572723081013327025563056733409800751808406987612211270536377120288382643557245371211371603491710843368935101717446875885714162027839844796187094675034039302425737249834230003339671793755794388539197792033921543302849559316073266162768241087950037209251762892096715379425290244785606713344103370455311199488615941572395931273093499538533173856714075249734104951658565381955522090251117317102646514078537452823773423871267135919799456258544798642855546987874740670737274430255399034018636541216355522314553351938655895769002591982566940261587422789283776937134132902955217692053125597067701256912384804829967061917723991597554998279089547696936995606384529159853598034948669794374751393214842942563114918825341731821302749180513494184878769721029694317342213261227200316525087098655842617516082027948949174952159623662955413156039889629731912681071883224514630178940394791524840043676642432454074957379537461673726522057171363327917938074971442362805810600797438719705406793323940604922646864886376068314878722269213378352103551733814171851092892731998664850524514594248067719379505017247747264380716403824422326366265171411931026841486345182397047035662742838597818783795330030297352723404488152787072735987074181156981913169622734354097249838563496152638999976893800977054638157379016244844819671187548117238259726703567535582010704791216699525728730841238692599524736501390750602655764856076440118899116235478176268391698128462537053956061663003938824261240154996398394652921960213124184011753743313382899424546361185788977888077886772617541729095581304169917296789620695008481408643676342646640303431795252843315959879188825383834307271468807042447052774281410185506964749015675317583906190035174708922257395016397815494335898593524494880657718407559862222776034922439718188552621371465717767535852193527403058110934020273958676724204687519136728893511145938166282288493311963233565008003935767091657730081260334065939917637393378849146403351876454816693634587258093826123631567726867030953115776424211394402990870839151611708720707111444795154447915859379350358079427089719552764549014212833269315759914871561957254486257739378084099603764803720137540118084323649015763236746622507270713024433465618812940694793603120070152855575643200490038867686113259311945006030470000496874285313266120611132032230297535170233363404073440677227157765742342475181513568037451463102017333636071000036083857795632922085141535693467298358780078842475776340083924639155710583103690686141901491165042817572344571599205594185034979654749168752095744149244895520711336420656722396240505518524939841116299821268855071805690346978952157575800087978010895776611927008337312612280598461943417944144209275311452480362028258681484910274519223151103261501819534620785857552140038018103575036675015128533219504660531396700384576172389136168969690831856673019443818197260242724201866846961648095011778834752456723327847322206494518834339455170695648478345007066099504764515589296471620885233667330189896955513188106762565214444277713704150607192056945297812015455340671910216520890544973680547242026257821792170432683742114265696097834048063033703308654040609088559398734007030631403770544851975715486126512631173118699606217060090212929615613373516915221518745580781938101882735061544714300383360564258337253922900840652176536712161572552841999451208201016777768802876397815495271340771653511599879862433158786795182926452057800929534305538321542398576573407311275996259586579399240969776605458436711746521137048471458572035687386524838692500127833234856043894036729820273720642609383861277722541367741292050077958948944453638934977218702120638690383445784271875560927889428329766182975337714482924268955889752645191278758199000734111103063132573852846142635339671187421856714651111679941215480994696609507697510244418955204647919560435001060411142208889768603669936739864118116671530934036664881031894315878306117029772089793141956287581963363611611715304336651270047228471240396917418072698702004511539476547771361761617830512284450671877981051139293721367821372577143314241692792048795285061179345435910559299283232352242335263424608623027986798273443970692838687846913533781671212967403415510655400867794236615016381654785798358999171861209338247154927251872606213434604633826324126753627864087804199211645469068307379031008450148207241066570715988864378303895292643442684335810069324280944456671084735578684375657898589234207841893226438536452838074190033281163474826552014713038980325228131531369702582024984344864410311201256793989254249140293403519164475098766427043249192172548153608114449018567253803468043737109419975846495896892235038525634910729434266177235570082215159868791368496590683519746032889568678814510235103527422411587521584362363445072999326726373414804812193113646760006481692079063173553992253421121436817541481539577762783865606954683109899381284540691353092101946128770566549134601941632934508716135658608846162054348724958736588084801079769018821576337543917343225942820286375317248624441843634546347007930336352831351606200824670726880802975195845438321710212842146345892568457194537393715893330348154264156710498763738757226663848185671015611205279544388073668613804296125693325511754587475359883956878507928616572564405647540288610255032336291632958222262778270664917705756501679883919416766255268195822727093263003911773550359735383865359282185939594908754486920700299294041482345478279444129655559183649952095141392757123774085637642210552253170161612141561993254581489489556584436998725963175403287036911401685876244554298802523561192288780963473598277237579774616582668369132018218602335884964954390041524867622435210808884585459026770899347730731856060226354844513079586533115940705349671443699899575493931727057274692560191063277896011237512807296747844685430696653735230378280179202699583121107277447719312306607834490690174513162982059315719510711581997064611265129191468239676367997461418298325644742152624258858454003809016935656633590235890096830861622225713801607223142688147052278551356869038336108503112863968710614001167772918836860937600047417679988507054024962216029961543955359518429168550540110442052453517997729775057920045873848911104328197600140705646686709642302780811551503171166570416256879812337537800428292138449924867387771530208205933836074667156828128437324785665611254195382422592340637207291399924511974125074465569223608379196115204450751255649014748099613788181380080509371462311377220747673861916933089601913859537403048869221089954624677623097136223946028888817636252537921372454661026555145854761660856269386127493764009007972020277906872707649718497166492418989653221547801576762133987301181662112658230371723517100002436689923436272060738808116909777505721871757013693977457429629408332808657970616212595573098315765937350171643743674164232064192339797683684822856301135812022845608167872602128380440954077779142486289871126451487204793032115158330700181479445393326687315306364899617917655183769424552314765461226393635810515126326512218726021083054324274281649981139167924560963789412253282387588974009827321733298473836502668522785362596491619648238486770128966604264726478844586450533575087841750255824086698437930223182239926704180679711791989557603378081664206405869147300807089540761296442627959468015059469837887299743846715700838267106225291516832194307027241678357153421705922766754508642038776204523770646924858184199766450292503952914340735006394918767547260834599704373921214286099703108259421382002028924267787756077749280496267722608436711091021075149622131505760188627302310480720112912925603113554671365412434783668537801768693557248424229059606049416677218597307046234848734224027703176236375969446557366200204855770844840652301819274638838900864492886272618820132923786641271257081661805433541868918912336555930373261786552738431829175473603555074435496595474965847481330748940539936247251421550178143591215672730475001077512258359944279075136610688693569022811628371977080645873398369831001392982365819705890744758537892824981612547266859871036907761382045082991549037151166927960075553779116356798553896447608568591192789701719763711454114106016900149087899215997239201309574163676633967083915248111927337851457198960006078285604202915606582321041769145304639414046803332595604804855651628123327412329977358187686124951315694395356061607680471313677770761669117632643030915737786646556700869231153594660664822387263758478304415605399303133243257900992311409298485274632905723136496662896940749196190914201743672585608907132143235564826925962753148309240472004755672514306641545820131964659069457864736365574916306211240344940013634896968336066327784817758883596432554036655077688856494006688173137870057704087079134495548988918671158788731218850024263600604537427979101993372776494570113265335135752542736340507437723224098124708006144541669592080721123737274925195781180662715184081681029842829008446389350542982259995434560138854108474477518866844988147334269807305039142046581762485752545829995991206669445287524114110428555799775578772872106732196685648329784156656761152703467082084527147775004594466135054485037416424919808916467224388508983535128107420446227001376731114022723382643128893711210802808971888290622375400629125234984713850321505731631827601449518702615326652086471871966884563822452791751544768655812282200255354229864542251897479318266209347803470132015855197171002647667266126839635647700932768316918384408436390868653074219376989063446099416978088850398860414575199291510134845635283478429425609961344223391786530908899750138970852354368577019325445611638361150779717645651638385688158150879899189151817639294421166651456416286019513143147814880393266383867289642355631576524047898099602794106150348005422229953951011596325844197242888442377045022902185066026245313691892355491313104771088257856456148517830032213619970031973793860020000725656142109902360340843029676507996340549664410247024698152295389731522007262083092325567407692922192845193337611337112488785077554545784445915495731502456250956238844042091348953401996815442514234259018313217640705981029310139669931430453468450666672796599920515370092817576870785345050140056158808672773133813232547627808567136759265907712499165939968401171039332913450814235395230359887719340226331425638635020706208200110418013598364935132625059267772819351614801303463302119663990930685457417521550345450890858997133625380671544083687635269706555141135837173763878536953967462766340272628018392430572572992122487577376711522353001715253185305304790600850823630676948195979752657621492723220584366172071341822909296671817664658585275798418261181181459781905054553026008899545031392934708815628451546614445001940743158827520460659914546635439614269691930373761045708681552534320494780505999358048074013209832718442384218753074776504410171402871531322291003506062298829554142163500942450949718257262042049703136264680839894093892364485636036265726309067125446286961465950708117065895687351084762128436491779322329780463915280868261621592096916554398247679495975561064395819308275732674184883329996881880969583555323280398902475288788817082467262238443864861909928343404221818989696870227721362916078771238895105799479836974286513705522752662324374363378138753018894016385214545418162560331912612975507456568802743352027361344776729463242494979398606088786672472312535804788060681852890474258817651599023681510900621045702855956517078312436757728154460929397094550362231976017016256907537848325694881361713094686700729336566195888471387863990416270736191873483670773847760541918084225367207264923495405796755508266988508300583662165452871142042498939131641589102537093261261208236328719788436433118636391299129294658033968996460801003223304763000511131637946863923805663870381417398782381655730175505356482168293197108777196912750728375002137558098417237150492294666352246115935429671290280606501844709395353165110687195540704752880021222040677232759796473401073921508553107127686344544615354751212701819837851147919029885513908869028981528129153184435113132873133756902251991478933901411609664729202890501234301275016176358559964887961898944152313127519476019298573408491088261443799434078182437150077209435380503724214803497211684961795412467753643694059020311082404436482282367237763268116850377067978717446683666758448571628033742107125531915133943312713749795991275309078332923909236831954787019229098851982656161726029201962938337255284347132190868412398541234805222500870349288714036930467498010744478361428986568402746853132186317886046570862296558552105321301196067071166104468103690535766078877926003996964675311740195119251876393428513649891320832551353403255937981803892919942104796446068520335358056309464481176124971474441069004106148614138871990438826371474503307001211475558662105416226274469279781396505731678482792086583206575453700972960037563912887490162349491042926608769148105633061030474652457119023732554996698521279816812106930210719642435346992112453620608177814850504446089124177060337939586717503985806517303932897549594037467385561959874893905483482243313572209662289675043995303343032876676607416642041069513049584707730650175438574894606045695889158929115700071025059205112460438957074231455298459159324957431318383670473308080569633618261217304674068783362799500613019442585088038073454566085942128729169104569372695580423417283592147611594967990647049421555245933761594676950090106780057246039135846881748363890033250255249036905413494282795111917285155445427180393182266022986442473745789112459466845995352118638151428341662787429795843755664471550654408641584773261520944283856578196459648092627195397263026801029072851591081175348086623430227827344491497510684304062958315101344075697112459364331195262278571524867833940366649290487592805504229020574133778163927898960407706054244285839681495085108714183709911732615905505640922066119992033886409290393660896191844161018212495146946565971825257349936657002499098270248093479324013346396101715033158337715972951259714109070168727774480879701701183146575410460407491820217710154308486174844576229083374368589003381331984912629581535170233896272271198499666567043337834884191494293465945564523610351059149233193895949159670493632431289956239048086642010678370337478343820403701582562874167843520448795466151777341752904897818283785372322530418912777959598586116476791629293568400428556925486150918858873685373167358444840246804727992684021735424291354151703782637001096505546449432682022228907754407774781706847473730150985245835595963164334770257478314651215363438294455528573078036453873449863345158021478607094144204207904105607620520009138872337708981343962287251171663322301457262609021924779534317728793192727378880150607512967003373253515874572631473154063806517500543050717596861481688227355253701993318267844410022214625296393223313581097332649906398859379366183398911116932275943948013387196402037742970420158165050877966834488179465145266652266841117272158605950229666939075042111934540036755657680872059312183641803763516169491254623615943959978186520428999230216850468765006868481433101207389189824531025584798257158644711210037020932119759533489408874302080111935133768412632456025311693558687726005861370938877679142324294031908717410840233520353643855343952963881844517337369508734229821665370490134066095420043542996753782726940604955491158978134021186640737331460825690206391333715864666262561883112789852950977217198667312813448154487867839569988809058665591603751199087692031990965908830083330218622331191894599318627750456843011787314266102782833028253807841158483430052498155488123723926260098774563251649803421841518602480617848390379671426619324277985686675116351344558653645918098784387166110164206953284722579451762290426714358473100901921308273256200867989216049368302405719178721977513044422445116170322044471846405777962368645522266012847249608854369684565444403663319180308361825504618993496704914828091688143438891528292172383832255286891305027151541419991043817276253343103969279195292480838743124539634264982692555445558502342633840705286351505745119599764926048754952732134335139731505006484841743758151073015429186965272054123095532348438736587575438470228088430926079999484978580317459967112790587384533440371118830306309725806052631499343430758425119537387399684672596508907627178127590037223783259468790223717376022280791412666255532031426762959374190669850171950298199534146691271431572023772071786406898103885312489549176839674464240311513935406488686476189779188146670104965144085646203510802179056650548784820856182492513604764507414182502164587406602012847510814253791677812031504889363050582790150349927557706375508141769347471350974394309139226315437048348836858666407460380982774466820003224017577482437453188676207905668447918518468572787245837590118432587773303670831576673818282982500944651038012888439436960878609696482690791070283445524207411555486016508122061850411551657713545367399083373702679964958361142191945357958657575672298852486247042142430980004147601501836725382685554146947086640637593980548110931600940131835990683246136306809166360364146670646798698172574415664276681966306537817986923928531449001580133712401488049472985726939619520555161340315307284602478026044846124464834204207911541555745790297279070823612281295679096558406506643232019656639548607005030013311944485595706854473795105266009076037747328191456474758081376290196558483571367720600376309101108307753856614895851123657031185623766754478020126292622706543121756380131417936099599579523766809014339796751969021314343626297873388198835758252143157649559665699367759855630760629540227724727820351360205410626072694360670848092975359836190987358344893939375005537091190207383171294840016442847896194520179074469060301857998574286285314795974319393997544702814512823575169348527812808967336846475693051242736198254787439121401691093895578813712646554574441567207884860043981160186981914686851173121459841431805099435270730471010837106901619358106187371667046190908202219235337775170735479710822469038365055087773221722756159692300256619902765646249729752734156675246567009225777199199137544625131052382402634867861609522367096244064518011456458311694414093636316494112018474079521966065456811251770760682385642199375266598378299858448164446860251182413084672348611016475887608129590773215535551825575153315516004663962083555440639734045593099815612238656733286287895633668957991113675859576354555121078350997945375307896984406646908912080789062780549435008403493205862798925669729030999862199456379329840739959683349040040335942576854897022531618028622465429343326800369876526754467678829317987174405696313632900493576876065949236402397545308680861669273148554613600159065361252921056639508932754675774354774981082616598315462452825482780126232218524554959281548851008544961099605361297807555973165701419473014067009793156345678215063493147997703815274514006436854315430757238420340658359673717947073378871078046574148857314841856560367215216462260159306676886984968018912397773990775771148090914158574927347839941578378480681526976275063928281771626431574467724304106856997402581655764990327119791991718283715315894709561677674731850210173822612211878792805040578930163768484723618649781051514299726102216198485823224324678297944747018432947824203905024950023048727840117777339161209059677099955462323290972902642253942434193767322753814376997165713214817791157170194759192311717829919741963447314133913967409039982756559935637825348352884113662502252659318473908186141756019344324878050889362934267870885869390838614571149238789212208608483382137583333885947152240419617631068138319426288555398717076830081363232665761099316203240046852844232424492487751528784436960742288508984487969916120276925006790822315305505793090521084127648445847011116908384348238509652386043178645698964513622541462064193040892596426676435936034340040773012423143597975693707875671660569144676382224754546157407632766112015855864345731895962210102970860225268874494495415343015662044674904886011046289964201288518987237856624733517893737804710401303605772828091518977952549253127945575153408482733164938865978027940724209337127051348651901563075230945246675905161261112200668256621531305301034362071799902961715122250128993252861724364101014712773441770061627911132202940486471040610972970748247396589410751284921158914552638655248253152382254485649001662839866261344757971964864053231534900900931838185308024725240635316398475092882597708392265848415964902240140474203976151684013378742808067656894011972704509425723649323174294666258055996917388231805832013656057955086528883711987478996769035230762867736685999948284231938328561337716519200280340732490753478056628410037022958104828014326063659887636783148753117744105166786868706269330651043676314072861803987693367290661652446836247603558854099241922579577573429493120664315670307468588159332128165541753643173588983129624301954655427505430084846863207483926960785909040687151199848412490339216663855896658158249981810981312923884120630953747028575983456882920359562141738383352493760111590396126902808604637832439432482275012772632299378101955078442673668194777928311041285392278563813372112937119883026621556062766802265874028828511631719864700958442363449389765994110152487469477581122384877993491916401898054164238267762756283032654659907494063443978145214008379783226904292938392589775830713509833669438788350025640012447403913206279416119674281131686810051940507736155293597750448443596537230696612993365071622990355217043719561352416632058028190939045350899667950808291403028678026903004549750908733149930958220203324976490569167829834347599935205496585415785855988443745902085981225819495501045286324955301244971171687694084452616090721283941450708941401721631104646364575468612681361922707282236388156735739647081017622237089991917618893135879363041075846547282418881366292091343839602647273236891673327180600829626284878258347796490468047953629547436403033599005954704432771506549220699817635492811016868082196884526540641274792812630045974943853772790835622545204485174547856407739930781969389128193237770074533992608351993051421144583121911194451190339019330757048297694005444036101486108251056892532343364356592552160116095902094018339833313281415549639271471138440728185296901983987030543248011245785521759934057305722781861539620376540197470743413465550451626360567726986830946330778572315942888692272882007009921624028215291316308753679825079412668450688333536949652202636871708823998976070975501885794915524616253756602743703648157858242969534293344666483324641723570165177132359258996001221215039609647936901698912992033226579290234855873846269822153043542466354183367331462869427588025163596353232239221140855854532224636137751939160051196316168153307017076637795885490877049667400206396553888396290610527596317326058827784806298855797991089136647659884516291404924465035450348778287847043617455652183800226033733036209712789014549487883356864654349620195398514657030290618360936214672246903971725087928953665327796045104346618975065540831394729392822410137318485796330238885607379971975927578409920536310407571449898078625123834191096336113666697420442963748097998441915933388569281371796107491360118951286972196470274331285008126459727316530973678382465659324690235642703324360622301456621863815643010728232102236598301065254224507385910743299896253729525065004527219658551611097059978683530176941959570626885654802577615055783509270021069891693722096062077810409800991966767460676491419983144812654601269536415319173655958864230371856039006545968280873600548218622357630130872413407364345499763823063439079542792453870068140933449176626302250107891127588266427326327389140796656048324396341883040776298769424506538535640613438610499982131271382837243040877752687818850586119248835446394313210747102481044695044068639825426830372734765790000873125630710623728466051115016661539331035536369650624898038459792424848371141279732127627733128625233713096314279020534130273389311478773176118552761732284551139977405692102688980165093031446253781352345860198713784688863020175096432814835739991241963473681856199193077860984751835574789847111564115517900156015176677260503300483796429422982363378431908438744602287568849852844603048151412641264696869948456297591434429889605690004651705369761713099618851443336779205307106544028404167850031420557825397150529032351876639190889675315563657914440848109713274464088979203054513410442623571208953788680352310898814002199910904886836699969381536664856656147699442803218129303445846663067625399159879636451869404742311218725355348275997901040109528288860944962856564788857841165624584373257565322626632599534264914884773899652694872733552711292253756650959082450178011088099873778186065347527856911100344359263402787676671260596939503965904083762572774762772110747846710935794527294774492892142712805487375349500632728566126535937279307037520909922365826758542741901695985145536059502262659306744924992774698425465509622441347460417149629799213826071410106083273001904017529770783489946607282554245574363720996226547494800366862930715339865601785017157007754128776549867521810908832907607208901994931195258810461961471332956673030245177244091471817695543793759732677460411572034302618298882174421464239364751547470684785800181695968306707083599715460378096043172779684757421024571929958475319430175004035314540922516182284559757216895188900040991360418844121450068233006215242402365530756541455139988048819502475496322544784048709828359537090263521476135783858435775536465202056216243842589298054914436069271928381165065256805585505993505969258440801895465867405745081799498893541476562883938484462240959260461466635902181814575159307400247043300046591104846365264723087442126460431356898094922202406800329066634958698440044290964220516076165873108560355815290485524675295981881365289579524120256411454181968653793573998033780434511322020868947932426865843023945295408619416068795686769459956455186000394170860628333968292257462544492163557519570715739877148057861097119132719933599565196352915768870913629485647733454955553687797624294483829507612495122462198301944986661244648897413591993628468905795843778817011408373997613254645852137318630920167378952815968692439967724294353482543986247688411843469026373142666256660104084094948366068459838578236370516757433120011637545520682062615387139861509850677341882615217601953341563666810247122306101663350135451974628917511761716428834810770833049874238377345572592174754118242489205978704604724540449290824232574908166818716762032389237399886417020805979995306368533474671009960429113000557238542678263959637403209556642409645634277645585933702805496332021893321861849934552733649941946516427361477939636165667125415152590675341714276019761148750573619069063300828367560201827565268493369205315509309369321655779568340630868376784075699474487633047814650157369155474760920969706916840974784796242442199570697495259815713410683589448914750790442737867169552991042393708536533016475296441533244736361766700752644927783694963625639601769621991236741852578088617865477044152177348717792245666134591315534866539916971519513706693916049507640060040271167698228209324559006684507992094710940999938650247557724147206699357308546442223636444035580355471805855191932282260250976773014760286218608163100900977952147506229923704572740764326433171572314151722933228741490939299737234185168090814999628509665491856884474016965888225340053019218361556717017368725797419286175042655301304387896723465592356595291482075583945653975427113557837883434561315038096928355195936109888206432709357690751071141663646138425033446920942011351277203335268321519294942901167331575290185810102181536268174014381011351317282490417714388161149066268835399635462079972266280275126957258117489714969985431046271386031380300976403344058981857556391856248020695558502497813891123014930559378380895180083245166968456504889275808617916585542771994843186044453423162351731684833576101885679810110492174850713278082887846769471423223025308737536358104905482596378587080419821978542818252343783689138588241114313865008681650164929138732420080077146586156221877148169131541597168944403008369825377561785576770928328801659611259622735011598937760670503148495052283945012436641526965690939362926765405460477402335494348209753711420559476302915633752346892763240553994733417746469439212751423156296602984030846077327628656349002364900662821881054102167782186178776328360914691042201134285012263900474866026114148489014665967983589608430413860821909821912198626648485812403996929805377626154556291329736378871545184934748461848674555764086576900492499207201476920188812186628853951392832164864193898847638721184618813982208637867370675146641492323000800744606104813372908348904885621051843497095157703699391627863811097887660889974535064131168066056451869408928293353397258389801932360713720893774400047065495626234874745667108372524196359938312269571234307350746771151085950290268780143518640296913073933460075908346542330711083375887016817573518234454185480073451297352919711888056835902349406565859725044490233988434481801208314502128597151898788941729761587519456154054535740684048991699249739308765508922605758439792025184783794611841510903635974082407860160168136378679117095321156759968991375029690583218191716943718021722238538680957761352018096799152256702608195609544098827738332144200877982677656420344914000358009790775667529434520599460958889315253732094637797975059184064089011476304739070163632582621977207642833054360563651803875704192615427972229064162428927171513799373834571751198579978874849178492869818264015743481138547184458790766665905177928559967170748160881649221446366527909450374477805737657213607054662505025797298408088880481628163046707938069481892210305450693647592758637211861292852514692820261007551047178412522238065449876395326170632838459969773944874884270501645261490634016102526669950586146468026140411313731647983624866456540020769083872915239657425143609750828514599848866767708765220615441868829804561140647144627079189960242309091061502178933643887252194937315743238830946169114395812361610885695027002856885631691644455314593348087411483469803224349986858825439241114107848663719210167367109195405215176603159498923021171872437783642114279670765258313670945442882862456257482867413857144174667246092532387422834534716447533574869527483844312315887688368963799552589940408583507078138322683778047456188908137543664820619395148125049686873817050573694796712472791882075422649688249455305919729345367022867003120050324798780370406065495833099671545887119984929109573807971274511228305884372824018410947016985193980440072847151923394686917513082915452946207046542599731384450264273226912055376412037119173322492642376464735875326473819231598752048042666190486529015281283937711297435053316866532839912291140468052736844446596447457304953321243515943074349649703244483278425761217395489620086366750831559165164253137285381627057358425950132855383618784257881669377345189719496423581761250294248043447811977083259359558101710326228833606115345895694834960109184851419114110116583308279719631840292506693376364655334793074391960687968567867317104314860613347606334037917166683784956119909538829292499089462581645684420112318432893281949937584499486184248112994893639126338862777231748350538492837472264333200446944371809000764941816595979740865150192866546127785270964202912875334026904524820046504185633801210497918694393261707100837586098886293177388435119413673608939736820025349316369256452467058187797801048968523501892233177934849215147507746311555128455809833893794781590166891872667324461426790993048238351061823744369048933522442657749848211899643707505852927122851040236839363820195830885133519389221036086462202422459493475447027966625622339357668077288265810718513797818096329152888370077547869642964993459250170184434498985610747529810633233527284234427946103935053269132657968012051663092636063392699664317028727468420737448433849380484356064545201932734052361360858141381137877199426009235352785034077427133215773979798277571152782851669868276388986186158602138341010889094958507482437322052810626296528380946598401330264267241024285943355131425016673821833718319847676248918229914434804248070768318944895812133021814014585496582930713549550573271061330540819016040566912808393467571133580897795226387053142888071903975223153627769359455700277043679634131180940867544671861846562372711875013399114632041449858342996586864961970853996193003086356606766341094968207768818309801548591986069655775203473652648321097525003994449520809114557241182153602782358925017128771172784572793200791329808246983733495526377849562757729480221207264048253153067506889660998986659022287382290735680054548643689856341745083997773521583382410348186965098346015268932347426879189017517126574621048780938249115728088801049881811365591402824643907127695247563690875291333280730689958144642820980855398009039927077560416854850408969738115911515107916491940004619949357434577640286272009169715290916899095333630015911123128956649394331059100759541468109420895531496554445580464990579917513610896847366167273200575472192614762429803429416227870331081637862997848589321552742051934314517408443496041266046176835537294095100932046927167234999180973770767084984162828281668535987774064925976142479331636580750679688146183913277219675767036609155859795432283163038639483609439260618408379143550709045595603846419737618832920069724778243698984031245695030969181188241645411945632195341497718885466437394629771176859336840654673184467732130725760732961985675737979199367850926943273757433246838473782215092307019966757189371126317678593230895655871298506557108287333025029955480232803555802017920029919940872159044746778499797122010384059545529071975747860967487342373556575353472504462506335304678660112186480705463440038824268643269753723045870570965884553478834567084499407093890198304645752939436834651900366328134986278309077974983973525117777964145134882064642208024725040959559262089498869545143708556682367460329364128174130337014683138975104606117819906466359020019416009089501103135827566251030845449290971460991940595625005366934395148547131944228042042462527581962042968470576213964022961310845320214709015598472550612914297028027785861811709151796618875274885540627032106882755066138262876381997971779251296553330457778463599047442768354233792620965140268203468650920020886673548878410013642060712980306121273080249688978468878414149334066832184405546926786223263461806475175172997662148659030477457100434251812416567063192762146191628499629896888645288997734298064756792869212494998463974321100695166554448604558336835562705809124648109438598940791502285310264460459421803991055657136977640498246343036392681004897435818976441057454988477332551003083399417671949794237348924941986126972140895110865845400726640777805228672508919311972595947802048569514007910765997113781728277725148120063073784537788264441048427252718852569170574843520848395688233006644456488457534616839989631416462875603818702381771648035612832027814968075123086046941399091104310548881596570711233904984737318873440087131251644625238814090937879850636902542385984155341388546079561204355852391190689728775358608486062758349337019988307148778918472361712736258627795823571410699170010669060298911150624979408321977307719006534184304092458492685475957283585934288470079411848377817024459227067964319958439736706796479085070902159861306042374814822170107828881778229562952851222280166348932436481498364058293588623139170348221697716852563477274465796886514136832285663042161774423529839806083714169324039408928136060177309594079472666765300798461621393999246109830099175654866129367690758145765726394790849593860484296237963211551916152402582726831764747883292005536978896582556869595353626789504109769499624933138072397932698730706509523782116866253509146071622948193602011975416988605243680301050082124494471911148160015526063059393173775655900619956975657859048873168780863401823601138935273603854565739167657303572713185985594474718513416970071625867081258158083784040079405254315322770113133518205287590350045361036522411517168903145364975196458755004365632410107910571462447972267674029190009527715202854776748145915049089028567091325734502878513105456418587500476363072844910707067596584271374162642184285066846678598592356024233892038099070176516003538652169602400082533215462904895743214620395204274407250547792188371423785397080361847290962414316165148009436010439300918517944340321689770521721333465431813395222263475138758763474075943169487424642969524082476694002958722665627244043609765629880034889090707326292786208673623356867653592273098089023670296725148814559351306688031001642945998743035355368691389283215133829558033548618913126544599640124075096270142638497612596286227614518640754567960474424194661571255992552931030835473665762429391912316604836385525311651853573439191261319908554869634173684558744326495954868590362641118857782497229772437466069354178530291029486733230419151155723904167906800635869627504085364213840104037217633393755063493695256314592456583685629655284198721661714008345031103258739874685647937998274737034329160224377011427212749115482283136814257220669667975732178636253301301120699860208075339961612681170637634286072878663253184028221368383549871862148117660488685847718169171344392978203585860906360558974713601047712635156355846702847684841856957158818019306201122825213750279085378640099491450014997038985266882143335462352495655052381701802475194555188673887869950643163206967526318523954950257297403992506329770523712189156779629955199011122501668726901039668428136870277746373850559603033822239684536895421665958776463866547310762310655987631084673918947672771387266154660961225312218095094670297088005315862212309513790596344791611484496465537048677483955954790135368404611089917312625377284062544006919876942695655961929665853526894016713034089182303134765656181412119434866794505686089459287133807325471309739427494735730383203874303031190279629824370457862264244820978591917451101847030875469226915383245097138328182704051051248286285897626292406164413173143834861314571296152617264849814598764042340312149569933549154451029287914851663357569404816173286164662624321948158284092006066043595617089099840941475603499715070963102323733746246959368725959779327147434811799794008577464684939264961323315260467733812179076397522188926912141868743935301123150405197472371891273718736458318358491303601446903111747644695442245622068307231123916022548445813428568815141136159580208342860093626761506864073310016802709976727957939755298495452575878935209676839280974498660481553633622635219420849724899129187256638546711115939881566599217007008894298524215849625718686163722406748053903245399740924146664748849795256612399220318015415289156407062908185493855269108606810951292880501151577868861035450464413280199872585834980835731691298670699525794285119962967786735661141832428384814338277010744523628077077880304225942608842163065679960241302505149200484155143050098707104291829511553799707190304540888994758419256604793981376770463620166415582252702059724657498727330182842125822900001829855358725333289532066387518904001358476239138251090175266946846629259634839317999481362551664654865982913899362901174005416316713522632992629057784667212878263129859840622301005909239419300354734736443372969388920631000898080762763328688406569460323471565045344846200075449631109178311513352122939874274415011754127975043460748689556253268274164873233524242392145232858948113216485232116626449753897329486236870189824286991274686571552130959996815986864942600478756797098713050760442377364029361127893732102992514465256014905672687157454480717809693663111447246681801882147866025439063225960432967633695625539450285108368641197600786099088277274929973364953105419838419571357244518176118181749341654022123671690351021479434742980162182101171970922637477903874448112490669533096398761714747607192783783593734775738418895068616402238731716828831444872094835531268135688660091640484412655085789413474004994011987692321032621423077735849844911530396826930372344693169014484371754283771495006168061348679429505426075062053023056353785045900746025283065150005952091540952782336361323553102786228051277843835952716526151588610947872580853351921702675083881716462020944696380094301959252739920246932557608380356149078768051097144199110272000420973808558675955816408010829197536955102140697285307554698860692163034441887466736327060316104307805225246712937936108540980306344781812527500662375127896216379439652587473322723072475012641731616262217344106680918316127131176127050266680470786099268131578680467248465341884369475923619930111713920574962204907362015454184379729568455970465593208412161496339153623650178154260625915433992705299410131254809230678113973424350770503418956856981551156367751150528495080518341201231128148272260877334337429761895569373078597850640831351498358405992040053801798083407090506116954387956973356845440923984077886954028368774070883505015810271481011323802044937715554481239845757703179896337245563703324712081410417506907066130091031300814343555646338546142495946109168608292792809105664197333056495714530551785106954782848582549745731909398795057887513033390298288345466584045025893096069247964160998794114127606970326266700704930039999403397612290393430464504247434783984348455542687844575247744005879844142228697253685052596075062508476497910948620721929913906239330569853227916632300046939174031132800481893101503406552768586914482860072061139173432964253849225354341869189917385179448252850591559503328581539771914532886741036251187496702088742844345486015059251190749865195918157467972149567596206142951987742453346168955559844070007239948269180575995295595490453949618743121541474566707912330808083384943267225959000712190244439528149397487718538610677826865719081791710183029407134789952663666330784903053542124246001553781415903155005010898502886497085635777258821860069140307266336958268367348033193826211107593303846912993746265403220264514097722727861829200007328558197008344188421991673044764577664032687180622754509738411138864009572512102006552965319150288126635795664639917896023393292230020656808374378408458614928719506348428251389442566494706163919553940914012381236882879169359481264055751440083755690754258515247200493517411933883221850527351069462421376085388081198061826845810395531540662729330169782246823130457020988840376683467384026040391721643493400392995802472544663075545926967930753266370027573780717765330041054814917359734146991512387015451174178313490912697132783307930883902648353547383565440299826427019983297987309626081355250289396009471213670068585317310084481189714834060403731117506831683702589766400036924435011610149658983397563917626905487153138868471387671814756543039304723379083283755328025387010813050115883958038699512178731887161639486461110609629419070706385408175248355697656252538230486373573037982340722681028372923766668642955445784242756107818432506780526633640685785338270247146527108457588131144001491315641538602815562464187821010538101580888592912465241829960594833478723466269478356741471390758753405864229767952069926210802454453971349624572162764127513996241570445755085289001723746732114888727111226753956484633442045181725580305205322721883614363283488979361989478017206647053108167935070034212031701788709409975131883655322612626314458957707082219386506603624378401253238555100698163154583135187419657876345765695075810099068715408420334537714496339650827445746303989513886252141719093943858893683345009584699986702168568262689449320309281572337334101212683623759039565079247213979660560285221813049572831121274663605676686148053284297493297736556414853951039374694622405694765207602565424966072699010162628481418867409280158870268872899551164596368087075779768188179065058533380950981961243181663524257399979075126130792479407754603615219399526629092692546942246232889667647199627646676116223056316404604562828344424406393769534553224431561663614595579719122720670792028475977587783912446769311513907649506795089455959042892199320321674125030678646315559157924317935557070206843460931172104364434990110635283187546712768410527843015181926425834897448602571244529615845141829799816244647243202410977512938246126667524462856739441298291760829452813656157089418526465095929303928769878625874467479538172976141979333279115494938634939788368248770643844280119063716742925791053701463139751419995503387459746151743533489192264799418883876745562267346128963124972453052526432287451157251183247636007174724248619258740253482803581485777079407458449783754366897743248240294045215611816358078405473249264505013941506220071932177111187951266323859102702488380315897664677639020594526407389451684012737607547858242355118470886640553100800676191745332058429422102032955480919238585102435280933774141592069712421950279526721995458422787614416374701508117148793690775351627746020563970478756556486175803755227381768290254600443754426351421795646772729300694091485155974732322776728603320686723059287345017931293404242073681726364350655309755458095334153744961608897570192616438990973177948353146155380846355278727243794424377626641274075676286813326233895663167102007228317668912505551225132972969009022817077104864332857655970833807307007102443306376445202831837152332610919276016189209308576870332818874206121412379817107865082208476417546243721170031086449201463350540831858623715249282566297509682283843046094211540727614203568518421621639706926168130686067521991209786946024937351160164564953028324845195239260118586236535542683491123256453710443866969187852544123932982204569287396026550311915708771248948712895901593183908781800720529650591944144392111094125548315488100595380311582798551948733494504172707595254171575116505383933991792851070110611667918044739247176251446324346903404929411665450967633081876782723035272884267601590904271103552013434162280637686171247328074516530703249952806525346333715991217487842020487503750360454861191729661330374809127460414170607536326859681817055524521981915890970691800093839786516560466645506833007803433367503591706354420687002728212895375795538345318184517001965547666491223038418079094141327118165802225049818362680744694459836264785091669287713799457663122233254556533434301630994112228000882496492378888499221704723907676370682717406006650713528948780654942853976936453152628826839798131752783188639898310597375050954238343179247137354283204798258602368129195393463503728361620223450889430357193659477701659999544430141767223427581132709770138220961243011415941415579553911845913253882476566431977612632527417327737652888173882401848782488711072121000776431857022208181832150388429020043646045514942285370497087887270264087974376634341955250548937206839128175138735000409188245596514904838556744621742262585955391214082049343194199000775858280507738329128017255480421157795999405014481806501282467306653165679626718048999766423581124285393799496837150421532766951488920828287988358919622008967650759813892480609121245091337042086007735195448966210561193186569667199286884517756126986849565364795434270299493352878063993978039446326351165249598986360583166262784255730267838136676056641954502808212587055270509035385734300827632706715813796211537327465196231346799130113759544090678121532132930922685895907291514175589658589740405746334311439976030684666759479725482022901841231486619116615998822742248789614731222478727143993214754162144957806101802792416781407104197074787549217427658538767504214484789149839927010526428633229493599371229470336884176915623436523025710913698177009035490860400310766993917075053205268461948092067693548181491302963382779979740156061375066627921162611174368194126301482989914760460106714363092141599714067293554013667668741647992139837175601230930908814641949906209317538083858106856559645972304621605772922363578365465255517467408452243893835376420156117360166337119551299484797081517341670184461759814740257590037533302036038924355331389880232299742089357266872514758560315720570901870044150073463142909129226260043052456400876630124072133132734146318777378100282156491567267142110072499896061710787999154452951046178298095148981830303644968579985010610464019355459948470329459990236100128918950117307635217739563904652634582733293204143206354077683449277114863396659684209351239136600418460248689191294078093175061628352769692213423018367821680027612755689342541806783671321852129278246866755020193643035859775733191348385173661807385661896622071243954372978329038552835436862448791560706053050169549653796802689156332108389197046772171551403189132075440616890973707033197759163849895946451526316967995313860247640904674158778199007585437623577309009819909910394223773783004215913698765548976748641209438606498453895032430808789734818809384245728633097136803862190600886753256225021269249414665305182433493166175224644845702850312015337387857500848990794231230664816863295817011495586892133727694544160571766338110573395646863668158827333401907796672833425354277070567959553389989729787814351506764454681553578205079301737542615064319609146767749060328781389805074139188230632316961162707509790967390575566690601382033058149720221271757810800259468833618550401140436646574833419179102403574373068938261267510140279394971821580531947403661744577028364277391074792644367090729418282376432957090220910254291905794416326209349707635336200805743292219795513059491556352100254996304052404654374586410053382524167300252710337987081261477556401419733156883532088754622471249424645798595397891337374478224347433207036040824339643435016730474453477742911624992230271026396986931622960257143123715457817765044925776122742519482173969963898637768750317468262359754571023789597197365828780389415187078775708015453122532996541898897309843460402772216173386704693829949899262409710003422605745381017181172506474492636274346445058860618591841919407033899858711502638044480321525223821262750838733354835377006784394409489059228048687943978764867447967707975599880488841748183937521228636462625024758357635694530316525892089660821031460195200262091456383331169774391282364277916695963798775719101031281678354419209381516526026749159733698705036709048700084493653926419753652824034424555226477827053981006490652690122330264298442644727514419410444103840567421817461946151839240603824117318234364387549782157271700730104466304211363829568631530579923650467838290421385417390657511481662193430204184505118226367540812551214239945368533694921923490463397013221645148906045112516725244783168312867633773302955675795618356566252427865135720830392609086113656677932223873013692605100484371615685360344547769130336407084000033040819509549273878406520766758578401240307180298807574056786280761553368354936755808436439898693754994799281883584653101705810529461416845176573318825494749571525034180325752817518589447989917371078486085766111492110156149339068286982051640447015141386386419977001097379150475138820386639205155623925433792652394457404045395897056617606203347025343914186250990371060966830555856604840962931477765880203707983901563730248905273336010142041230660648240083995054805664519753101879569540838774341909131903948605592769677306002180131169899989129431146223462803991592967424517782304420374616165164671464280385754280766183088117155387531295024803322547434958770681210200209398136388012566061298179558227093798530667236758546125682281643789677811309327460490084762540182110208172246794049315585256276499577762981907073688767394317745648316131080910682953562371522121976827101211066929719628438688426744507993840317330808117278061067272721270940582062624733797907127921773806394646268436773560032176990152004308705536464102950886451838404997604813709079921196381067196695226035013818355848968314061478396050516527278555661668652725674730328223557770552856411464701316462920951674937170823110341166317741814230219446707061122832343083293322741083367469909807024994994723522157209316235006418238919204231774903342258687716302555254106495526246499990929814584637657044052352313527435878989879051728158422579500099934238484720652674463507144416471240765372848817683937979089091144636251838764892912553673570661736313713778336667363506223001837690189030031110880161919285577724928883467475554776659862499038080611881148857562412188755467075686568711471238024042733272199194950434373115064820193221430351653986691559717110567650921538582729221186366672918318597822160433638815995151433070274216360707220887954882320903344120821321481938816989135359794097397780736673694927010417574172878699088155333966145867538822408348409036711030279223610422185095399654065170044890680250347130218357879239414111521087006926337495834815164579452531461121132955923303608560366642270403630568384199668524505648144128684463771027679762731348758029862452505658047564879054425024131471529554925383637841265749496169512039253623561107245234418936732504991080571549362201563337776498638738335863790924806724996917635853068169789439079135228680549824909430547281007322236599398935417258463494600210467396433539854774504729608946468967126802106386940181765716027927107164580831403735343551911397807239771677013210810163569927991670095586096186453081027540358129880483261387474058544725102713354245714720313649620201220564705751236300045430801918815228800980101433796931207521406321269318080502109965735975081540243890034761556499507106013996920506960051315472616610999726453848604470522952228721358750147461788310429645580258086871072529205084891614909450026510839422944529745743224746011948674304741785530243606970710877102514727283216985587946179274091520081447597260181313075592527599278370572030691959719873358587012046829222221046574115116695387096630118468035610044214765258885560241967200380504304972221841987226932710256555433463239033832792002033374510611859150495211222677179749622625845247560886077842165660823308750948372342617457344503030754707480973889818081397954591342149377480043762720762086864654771714972585687398650599373589437901016424337199044873861068703656936158171285838862524191667205809714222929349022611033368032794283917856124026049670948285215983121061339398801279850327374460306594529313907351235930909848582558162695614003283847961972174778814615292990433234974116580201243964867506050723946943691676834872236073224061280984443110994409311154099549256690380259003644502497452415609088842789185114678277635333864291504308322736994234201773634347424138067979952209309950794877581899470957964120963836571743947474876751431652477571533139713105446496836896439721641503130594708872639304371982752512735614966364677433870379385059372419355995746502792252944924336741329935497715906258136675039991735624943294805791654655311506291414956116690590687381078797945781750723959351865949221496252154806160997596862780175261963638564085943231006244948417370296461951511871994662580644262692480951352300792132926707898689320845787047661540902063003443828027428479699283860177805857422521575801352666993585138039067744991045366245687012091534265098172808814732988763314879579475736517152003688569043891759165264168538079640927393124040070071041069214539066399813268264333785811046483796571175414157615021063711979403179321008885622613163201506182234062410143337592656708203694358755632939306618774754053364124371456098856028720330583678317912628891840644118569237979396509336304815766513798166382328323520150774521322263235009472368275938406977558885277568784976365513764835190882877116751503336929064419874269746113317109365512672332376039869524476486393572403513175349151882353746290844153734508650399921823828666996394183613102056842157319948572627422719882521531661493552165141203487360580813699432358758170832626501816145889738581417310221776858670044026222832875744566382731401397797180100107979610830960763482760702454775249165869412855729200164921949605469189713214806722915774810983540742079279608750792595362480085567506772509945709114003569821425406309740753180815886206218185098577803508568348556090127686283744439436041974501645983450648040055679890992938336443575823098513764076680895367299839954244094172627799239386952709716127146346175296774253112904922439006864272635425128528004639889956147393772933126397144847803016929252621869840128377524648797221330616713858479564804952748553975531507969015983765412777225763702139981906553859862224796440680797499520343363765772693818380339844855293036244616392759575316397252215081356627305182955643899674307926501693668720383462903008106179382243561453087274389252015581800466117425759752138309802401526718229208732867990608350755839071508031013193191480555448215315626709608917018022224426455856257241632813842726751242603974225197383461623491866104008460825758226505686921623055527578597558055923073251383837792321605378796985289129181176479670230598805110624466956134859550603017573602839410789874460717855768382516041140852365392941908247746055974574875167845352477701572073961786530713602774247161848911838953494002067842647303291143614559746537467726942621301837992163061128789159030743139908083449950325190047992964955920420462167355306525832690316304180786812198729610047396337828642517471749597923689904339583418992008598495994586658827862287766583950150748659400076865085491329508308884975477565034209065525903604453225052659518610031457303411331113961835278542505193140645024183152571592187494368815789520088919021245745148176737805783670996884373595209126835866625941446495502700139184671269614882027426898879893215089211748670381931632041768041397930629329269209589643265757164284389296964849535378056310827847101995381083865168564040655816221006626793839969271470387144164844937488530119717649306122427605113263281920787982554368519266269471881701472016233194739517212807327885781589815452323414751694714679845459796749619762163771953598370005268500349406978246020786078948916395568364715150230358727780848015806439713779779325762147973684265215237247451609956105785344522053604523966813953672782336987627580359750411709843681356319992690420459437860142621385502069537914994129269977574571508243298523744027396646561180609870758210141431117307290712984085091486952602144724983346855430185106464892125255642815706373608812812134620046368465842318082250444906496435874418100027251039479181195854325849308031239035847230307867974202320262904297080273675462584011340313299629847639228475744914969685544787579153429400498464598989055630220670057995522338677187674725208075649309467364642431545915013647324177263917008995547381068850332997821038054279466206901644166896071607762153073640928361983672104216154819312492085003636214043209450900830089776170364816205285362464890270744202526209386341083242469714598449308521732940023455331233375143702357417203804046026616172071065928637164987276440627338962848380265989293473980402005556631433835570194776888936855284948423020207014703030522356581301371911744221096781039552595315067313384719884758186637904515248161440657450073574970956638562119884709431849828380150497057009931220358148027663545935202706573014395240981803062524199541325965136416360230167012225345204664409124590148260855864349194271758854294072901478437072960062880084921615864454440102198390751728769662626785540340363757114736672617332157755516173268354681255773673023472376168569648968053798618568674356637665553804312373624826948800425326004605629430251425499308103039398577088373711189907328379498285353622142657796864629918841836828692974019205586600814231926128812061941718339975386058187829478649112340056621760538643963673867864304270023025958264288198177346004842223893168351625034844342387199588722906521408618125236398100275545922562105187030669028263890784779577727103397534881844958328055406697670168935730842638633089177444439381269158715884078219215732085552831790826757150280552873217833394428113039991777473198521272523142767157190973855394668024601540162360647176445045377200845218027330005369888929807690144507795782070764742226622609292302732737895626799944022165526644332939531688965559930121252309365736518762228240543338757896232009381947823108688228114382564550615748528979408939430070750622589861487325620221614450204419502626831005326381878808460773967048153093080135090915285313790779352124182751792694599551334041327203664234271840618521010992776091838754255624351433332389248014264851247701289093615559182001838141248644543895808495234347809080657279593501797087249866506205665147189081279493687670866814795861507638116239492538953239125083277862976720547705984674683483650996970435107500012286484684395143638329282240237834982570185718920568247682649240015187500026418377511421002738409102891562628282027114804475376056750434974728867477454479798231713359072950517551173070202806908774288032879846335177157566130960999681421523292672218743619570732019981293823465476423088790836575596423415691174088309242982359675946817823977322460109028283756844784665931715395626576511543870222320254421572231421877679185732555356980111487892633963799595331869579008939964344830277012672165079243874272757908720329662120401736566478664902627700498751301374255250033904663214988943282364711920524943377139881450651045542635943716571579609516268579463373233579168965176881784780919950468224818572514480062976925201466822606814842697619451230858339067338175688334176827870268208829563999834485140746489938988856242656423545619446444191282079585261172915803396438627694799160656515229505045882571105855201568012814449165061854847705822721228989412674904634841586965621779396828536462043889000503874218001697138215794365174140246615255401911378255927840268978225361618161186702918815247624385533772602770643165335074543528229505664437131711674377506462430525953994687724531652338790358975533427543519553581135032532382430864360840985777073912580178704523847844301283485303821108796648746755341006283067138722674178357682281010729168261716118744182101438444912534474556721912988452877425398206075012447558935013919338102802797937836455297293482553678937536197999151939810969049491476718659155844333990312682100721826250511952573340691706286645329596127777025145183708271835910757268452607035314534567256794636614510208563859130634964469930319750413508437768514845855912885762461638416102066063793972878048306753954374221645502720830299683649346252997321487081078712269863263392796492503781064150365266703948737688162741112032107841243313597748610523548818969593883887487733811624901122616452194360094798940365937457618306692673839840210732016695983388805064135460380506360684078085405202224800181083945016367410214130708771861243222084351883842233567721369024167583679268849906223132671869989838209429074899525900053718137277403030209537428798916873402796232584760002121025132405422531230233206908040664725522708771335960020539159364595207114975163785370094317381512280174477374167238124731254949499275294001669380692810052163476685562621642411159787529314432611252517055758926826931657900585801939767105126185778407418065793482825886598219296781945557800963759811730268327725301641961410073925190272012835786346096655689622191006713958644322155685581181494460341016844531689335221396487176876046055075583359809247890967876191040704223657754656946135960176334564813050046118931544547518898469975722439493302530742876801399815328004752781712751564187931207042299369476496116914377108354024136981470048151471722938786645934503255205060718370436024204861244934519035411090869097065781486170119818164741647666487485038525882073180014448300512938025507675696014652696516250857446005597938577899134582100537369076373853298205443222349533182319016054256848998575558007271281960169045565444228572776596431232344098431652268009179086050059402476782830963389118198427466959816199432482789961067549359482487517779442132541980038701539700215286267870826273383334561234605318548943582280137176246614426602438687352393663225808149781660151251265439247209693024535101295301679373275179703721650473660011039215043151822261076133308373589437405055246319690733923032748487707822584518574393063781801842648199613147216872007114957791019354900419191774807669798122668250017652802065063854939186678785343392933197398118919946583506605560364234965160464444213046388150683586697697415365929864866234878576077234435751876182144110636580952976806561238859772961756949494626636586580593941421633310398875921952140570063515994663979938261322926106498822624759508598323273943250038493188907948866317772309686373421995938436834763683690583420732259628792259318473279934894996382997974862903207245694066336524309577048977223809614903025531909990278700140395950453273925266307390990907786079084443215157652251783119799257101924093402319617853784490533539947371514148206759843696641334778798637407441636795292101407304997767914526856758928597870543235292512725221089802171828522183326180704721641070801364938799275947114706656172769111887884484257705059688115558482759441750886446038587781836427303203899616820641613862437918242695462387713158468670550546409912136587305444795368343208572655632864336183394922815250978869576605722132192000023458305270362481878141390429894885937196902446874434937692730746247263053769293303855885763167790681454749240979284984576423184008870600367972083813208646585953886525131882152952192926823816376078641272626688369149979709707400974892224347575625037579447951443415087188216604909185105111735523064672369469593153275531044646689656169785126358235120478199756976939531025363670665001438891842216305316731544119976360949653826927585279413349964729320589935321303251285441352317215651517225040628938583734848103397804495483138707859291314543541915927269755169348163517407360963157023378569717687919926972508410974430605250377147412527650438655332718668290424229903740385287790444029489666001076163773744037200034944703130275913927788839202250645390706024925308058774915957521132872919540569407235925660162871290147240465308604368003016416123483803696829118857760985264000389375748513284823020407425144388365723788933546588828458487497844561084585064135505419015058113913097383821370306238866091998784113852171850780482736077377821971000966685930117932829801097494009956845662649524658378783958384441302953729894900464473773831906975399802006861711828605753829536035435760462454965502097969522855798555078948865436309837863335697066419089336157626037622986771670796510545574450223654683780970630896607258857537177479210245106053712834228782438378585384155871780432026872812633487981044961650532064092262563645011244005490178202400569803893726073462846291242750832161127613891398293603634298880292124843401071948543932548772950357810681415795993354763374031918987183864393329979980655930129999644306549133094257499305958179885646204325617830634043175334198695552891190179937240766278887389943997111611548499420760556581218286928112520072410314790476973997031900789309679341691516941469840778061595997657187595649769987858963696792050277909413409817705146563419107831987639213242146553071187566266333370934562413373068117878724823330819005123047954705440616252527180027018005355677011058686812328559668860103260150821993741734023329225443133510070688007993958301328213079417400536580003359773410459803213156220327433722649118425263940219805385121084499739196439860630044901125582248761085035870062473956591670165388542725949413965168867065800734253035854326397398884588254034809165834146603557925203438905054341556649786775373899893169464707750889948822821832448825067462745617013755371565336274980390399355686379292528597854409234358155791806259442934735078407158043008349442213259021879168009196987504138183110135312430110491621609054128962886905947560956557831077450542917913334888594691924389082822391572058438808204064976111446766062301015005773816482509523114282380421430864957072953664452969147193737089494462261746771719054889425656083084754684362394040609330223887545842014426879580857547643667962157561255278569587435288965324573954998251411313746039495199399765523592441722381327271181487678015651248240309198734783808565184591538661692982508669056838911881191515763626557605459203718387383132982661725423447723483792157155888006773419232771626912940120325680414054684777357276570075852876001971608629618723971920649043409153363832095067976629730007363517457517840514515448475665843050236377470744418696059883306232789324993385351556869614109966741737075753879150689950370084565672587796731187026751220939931106043536265984508832933707553359861511196667839911052397791192492124168167199118755138054203891190306088283174801623297730490898022870178219052949888926697248226195166299504395390928372620848246006878451790350654637207942386350798877335179267044066669373480521963556784555324484383804424360437920639160782861745475258363054377259217763540767133803523520673076859941664123689406120206659772025618166039875478231777194619336374451532400614156575565544087034974142273391143172520140740516060735492906237571972801867172681921052314536161945393607903267214735920985694761466047890349611753371190029068230104308091321884125177836157558771640359599028195274290486933728890203861031997638697795527211432823982985348063890987434610519961444994447039034167862888232704437870794330567105566686117928657435667959931130835743419717307410787153013256331632859522937527405270735592473663893239340892941410457138762216601067113064594935422542062393861544677698906946397432942663468586953180863798555767175186368948838374915155164565752768257428357664394439193142061931485137992957979866188500239954345333619714262231183279127269201884290942328074144689140899256704726419677410004133096724469346596651652434602598890740113537118775790542998003317585434967993013102288784298953330301150916541154755331316319908170618808993831878997286928690523379489587503417720442861812287439049798934033915077739441363576453625078710045153890116118747928442549857564825757053520280506923934852993972447602054356865700837986296374922379971260225779109386987855894154112799925512867991321660773030160204178388065569041291523585621969295932168254323026706796248297301679797175894539502997096556994884070837718412115058568133684599779074741168707988980007253522496288773788529508517851548298509647614104821003930260297900232896854044201360461016674755126629731243188836398639036659469421224595163642924667222065448412462928115770151020619665315722446069915566082545312739056120464579579277713112455701359708128040359070194259679810513182533946192730935173393236541654828094291030232593331363939877801954930981004084318718017288612654374587501451403640208785256093025053485542696521133713371475058095789658825696866072639288472369337855002116391277601761823354618725492632748770188190237563497342657514743851139988096328281276661475720787025074571360519491491136580422178146258584789440817046258411381334202032996500333361194205407823963709947614221558568093323348356228642664078220479580293078335909599584461935894300258851093779968020576074310339767591823334598102588653770235133179559606627041565983842434656509439909509567106707446337854850412792850815993584065495116548040434391806328499374243272345893521847323075850883804295452994560775901419835694883997946220071160869549553234433215385381415176829947347882454986252896308454084415324916150371500146729127774835820034405060398637766066740523176291585451543979870013157426139180263369567530953242222156405899001643431103295123474252960081613185492830759202631946066511792674880417573195186059919294121721269448565794620805927573804593285100859553841057397439272639419868280085168309264603211969777185135595470350875685989335199478090608457408038139307463664506793485787899701173575306259031438772376465801606576047416874517505425392216223524729982735109814030782151044555630169548179920773670182057607163685680103395350779801282554111755810040809312409348398359501905272253169503348978449519558037881379802575924724973242963192288154416911272126131039958566686104373188488281015085826997982408926015151444506229195913812615002689239515305892205442516598050963575067292391812351883972353995339614728483779879420626510151548696333139494536519250054719438757332169342674449903802495687594842055638600803134752004360559817301924335631537197471543305037892593564930296955100628491446484793254797355689565199845336515789271626063598203621142297310525413652926331221965061012881424686696645607959495439344627240194137849577733250783767422075162876401627335231821568069551770891838154520701567761221160453139799571618090038652006660606140650109061414800702108266618671743297209354351999491190942198670197352077223329104075878352256645785243829266851514411819973027995968220777281244186851857379336435818184177175017364869626520877357239593846103760718331485631948720969187875599275519631185429508046461360973632680986499773766855921912617720322843325325282250236543633775587317670925249544164925734404264106022618694895142394294125604709792867015432904861482451410889543339252301909194524723417768032140040140388512195399426137273030648486975367784595136523911182701433499404619276861623994538662567173653554980562736880439222713789475948342761007442366271824428926569012313756416686913639455793310112860588165333180834812652788044234096456019355640418951080015765178389626341030146268872071802921106238833778448204432232698138700895997867712010581958699518828101110070348859844490574240408243875585127810411599270883048414570299430035295672524244760014319383206345128307425274632463119042640817937929219642715961600427660837994811694743814471588123566104733643847875783047691432960740441969235888708131537198438108177381171884852856798782042486025934514704180387332769424854183557646506261991102265478179397579710063618794520335567770410733703642565403160418200814362168718792382381377888461838367847790895172469552751702805611159865350648893147108535899906043629197647851222443493814383863946433129187254533740559924355557262802376154906649014930009304715814060869378502422304868824507384510901721999165811729243926866001522836159676695577670905086519613555529699745220340351613794074371462220116004893681763131795298680723679989790345409371949715183366443542547120112511613275070939666809982542091273518511027263023665202355630227354432258292444899119773565126029177210238910308471122715116040569055489914976145317414954729874846447547804369615240241253681255635811943026496916495030640868085466349812406025288144653864989765210756902358268599959927562937434583607688388337467487365443988796415574255012236051653436344840621576964024034520333634677196153104880254674507115734347337169446543705213535267771408197137510916449483664484547870000124334431844021437320407252642069430536470488772077282327851295542228330320701053979440978037886457476133527822393076029705878405808456851896648911194041932868139195697920026603352585508487567262457486318422453084669731381873118711800820775609355761312741239159047540101701468742576719017714172435283309851356254228152127786956276644008653566363130013594437161288815877891715396703757221292628691585366406482827659094612050654962781892832157442191908204676157638851968753405456686591352633253898091178346622609522589674922740808791291415079318090477430700549758097312251145910759823523551132880089466139045291859035405933029622040868838212156756234594339015571925770069892831109868311424281148569431903863733489330127103405969096652526566018226980844721708144323383331579545083194975681927792993650144727636480483964753234435943066847482842379256639391955385076015198900995412256239772726104640876387965200125348442391710022402177025500922406987502014075311606456028264708257543968911742917675831459610277501918445640241335199542221856965821111641964783065009758436513046126830290854243293607302279469890174494689506943780564941196239679072890736577691344983052736007701185689874911498183534721696355414066684888726804868630770438338528818242545278437723634947541321208230649670592521543851889607908259997384924569630002694375433356167382458875525419341759634854687922745221077762604813392562157578625015940048804096892137717753643095701344450155154154037899830363665795861504004376503640023113741765536042901682308210684264000621649391142097403934661078621448393321217751042711096444439037238954915378441316362544118696725106952561304317904170902513852687929587314682960667216625624662350244844419509326875562877044100683106177576891740734208327361301425978702657760435026840504537426150976426658622669395470204016760472032688610445032804467052016972006676920637992730306841974310960816222817547548814295535520623443252849838914002922995828499381439855989975292867842587109185613429419289905700316719639048621860046400816833279282323365200216456536337864785484724698516205449406618394710540599019242752154668562697234327743498113416744687730423056935784870473018907774395051963436806284079834714085430589716466830059097265563896217352171995206598774283698079876444305698279459336222689786448964712105644255722413217927138957915121397726775886078346756895219422930722208882732793411131638711033353446474347910041579889676496090675387072509269720585640701479846942210006440587490073102890389512038648087269793752748286442304555177663990363746458469736764235723077285344908519470539819759456903775465163736126666957249173096956321408170097095202879748520234278029770164627912389336966122577083361277284207691683704071076174012622029125964738809778117843181059176331079390122633134143409521885292036263323402283198746563206114972204261203730688760441351286224735251532025210884229682099188507591825176826082254208412085416704747382115930338200035371989783826413094483068394110710234013808332707497113032350867572507996901667215792212165168586066536547893483082041085394289257191670326672746162914490085468057789318173976530114112879124929470224508650493877781348163698747992760363397317457442496440694727159960158170522225089635246355716014940161292611970190787367790953371284033533009935625404168171895207841033332220304630343850265923127213183585751833393393855798936987103827452888230831101560205345867186761677948305667950873820225424866680655244214658631998824585934066964679427958069246041644703245922411047194195830064455053426065751390152937561131107896328383269698954191146736752399740486429344100101148564385090544470194666663123183840553556490755285684090987454906991540504842924033131977386388324543839629645388818764442483177907099624026468875870243365874576133872480305072657116579367558037084929366039591869573532901728078472152544689382344878865087677933536188849080596963606780164776982022165183344900691535369909819258558658421726583417477144926238482646599654696459150562995818621455836425306893202766221284428827841474562668993805880911326651277030821594323295993556025306300461821302928623819863815713281845790078969345066888190647781736338175523794266675772668934692381636546393013429050245335808707501081393537223129033725419764450202609076755854522180523734226992428065306122581279976312730970595703559292217452837387918324705060433219427382664698678737895591841120738416035581341270411278832571057620276388911950302752190768498005092109688671099899791000556736818139279023602525013192033264550299943537217739620594016724335801003687987729897940262709435798288388935035246120920966273807715439785574797681807768314636213080614181311341768499855614519706910870260208475661581613164741926311388986895870441550644311952309912533474827195552436523020490297313739884732541461491661208592734028137996585190370748964977203170137731634813558040340224831093701281862161486724382009366428430987518794792642875684158081402865725451398304540735279410621133781131740754163078500626234140216323947015943251827127040760418704751114163933563284592417566209611266043317143037273648643610619213271570725601915042211958426251290090592135296271152262902994043752161129784619767885606256356020437022422967574167361140547625257272497283210997267776638304523642192917846032682383575257488690603199710304728411174468033569319945578210779709066839034124252142689986845048108824408260642161372736882399239686812330756062657684516446336382086011393686445479136730345463474656003769789871019778253672445438892633631249298061650370507905979516245041764087043162704592309812851931716206573533901354325642936285549916787803218712347315421631064239224915553522125246057115007807055155224527839454054838166162893647432844393989885864025949033150872724321603218276497703646699791730609035596305287398461352787497106500410552969607569712141944880696668637726385179046113295936468996217628528020757841626331395207147570755600140851315748089196888626140728596532157279644830181421219038066741557233984686027348897443055362235039238747271692857865065193293302286178820513607787433058222096034357948188128654500800715583670497378984219411051254785133458635680337590412056597860604204395207269161999236515251563351875964994896177409233726469303861916130232007907938784904045435739148124469063131732422962045962117246075492310351029063930085580901080608856450751932085567492237539542894017262844422898523920051055353037360771197719641996577051657677820932472652194999737065227352106798929578422690817504252113001391617661741002212696848473394994855708791555394665186324607244603225910242726018899401644165253837779064106865325720328413172960038815621094101984140556244476348675317587495514607319067089807463520629819735002848018036929865431908732131841923622068077213779802606167008529587739631173220354023760449544905830713584833436615641826524914342828231010713049926776597023474866858425352207261023853345999709407219700770848814548678309508705668782787573458315532803166414193041287162550974116705309992596264073984200853451049744082268045056538177190583217541729810425960842848428823041276260674415761687073906546961128988886761085263627690422486430462421044929638367310993088191823421887667554487748602195495193707342257371059347905201958064422078626407703472226475084008445936993096495177965022884946590410033451864634312915953868818592607676543705725480503177330591715688118478610547167581527470155864718057957916334676235116544010656791191918659145095289333127528568525017060746619166454116793601420638860471223223182620193058936453726957850838884379312275287314728798468697785936829456055829839656311702586892035915337926736500005792500687815134435390151330651264309854567105218323814996293546726769737840148625418806107340794306442532491528254266600630155159188223690787078535704142236112035510439513608423935271746940857549816122017045971048613284307915576078869942536327086188874641538953870674438975229015472008960444388950730388589450981875608377589509832370307419682081308473114521553139340573335025840403063640947236914910207587091975933947629163795521044096182440652660423480470366190924843049926689940525007362138735120818780987915906496594436212436911951117811909325354826732860004275100539424190033658821685652978376539856410108366811255894495654570260778589943072757429584502258468097692408383626879289040561101370583289852132789460595951775110523662595904050200121331125908857884718640315348206089368613582948505605016060111898848644058701955014357235044750343334114634943475161526041728192933329386120617779928288526364147973849412944246568286896930165720659271276304759328234379097963547666002701218481998364029934353755288903214024918104937717105297459557614856482905045655393739237436432588771474936708096316154696805626211992877165105625509046679862613958877371651063231264418419370486408063058312048344572704583115602830085608228362894578782242647592450551985487867859037476596159246926158244248718484413261697320039860266849151469913929752358050303971797406447600281407651465170215650121857243783080124271769715304359187302127225523451016850326389205570007621240696407862625481240991018801889731933367098487038095448988438273849269737942056791590795996373861986449131559905684850335914216649175689950713240917816806872934905469450347518974789783767413594534486561616470761728473533580585147158012075092017770709629517708873593540151734624189834179944256173201809885985571566992948301685574447074642920829410966406751712706068518577140508682295523527918524640123895625386335505537020774144789823196817356373530731349264562411285514390321770043135288302094671021685104392353570670697486875225491660155157311568763381145821733277641159590199472547242095505837657830736825982059439070125701079739071313827013868265499263789592298072828139386718379325158061616607173514742575922606443369894272687435952239121992230337212237437208258923742462297262434236975983649609386237610678983737818110423151340413727304901204299157916391235798214668472120259201109870251972860022387539697913072455160401206653925824458399098353778632683477168165366999806631940391103911621866887156224260547394945760722745560242370555077434905609003671056819269791405548008585443017633640089542092866728200637925477748431245418937946595821136477215022027926494732794126641805040791518728276036479612873472334662422255991070820902206216541748172070548274857753504076469134631353848370916033673004351937652986755391872751407036766463818693079878575571034806419967418696341903348733253023676598837147048043686748224702281853471851970191443413713678193905545975576208457389005704254297327837714945646155720991021572174425099422255669781653832777396599152962857607279555747285501912390764154296905247774195840587611808955643168289480348507340196097146702102774792890600370908142142507744911282128387819441454169471099859450717778874590652642161493746383575327551080717942000470435048395054951539475424044466259522699242365309078903659754256012991954298365669916175203756160490381917572494097503547773135217111501398891531612265332967679037488718762300905984787485049693743616869114815382045896027366023472643411854063398497858178313575646355986565563488414649315339375907984957211079313509748263420930516936819141204748955753516745293691574778706500584474583450628403421622700980755996160768064378627460118377395356997476454916611806131737917936954442924354478242203855462227691247827194303749956211296443146223033127185804530096267007879138594476536686602404132570030661226889539655230886505123378334796385719915341231380233110747127768088858427060573150004288896077722400970830722389956844362234126683810283477182358102951732112927303595941551053557577033733984349386096784822185938626817615354628492224488519500504237678331548605039252797055397181770211134481614375191487838286598280455932748133801799872133305288616293956649316338525897651255582536745250851804859652339964310274369663408296811437738912301314446705697818326513231917657262346794022810770526576626555912883482038027458911780114561426613520047130423611206258415743040411941149044315594991724242388842705102539114060353980434907845035791739379109982625862381610092868278061263812822577172773990851993845804602448140486660597889257136780379025032210542608900161458047234054820762882635817371628579274582798785179561891230637370832872973006926046109282605624767023615873642382099575747188447395082134294017849464251483280496396671318697367736795142751630731603249319416322907523481228938380523308856299223285050239496639518027322565797498991341266783921304047290936125656560515642621408952846357041465530612257950610605255884858284481349670379538247628286777747813701670938565802450485189941956922595663982224757145603049566902471207412764999832079781897418430722713165196367936335527840196123127851383750889852946147973489131401780907287072608800798044400609881545472740658972093274975307144210331908131655545174310845733487859693776296645906135992597316076962877807785692606087814216595514902418271267786369025099144539093007698654822515171721057145590474848422904599615197810016248108308966641983503675432946418477866598733650119572688239953714392849290562105377556374297057027270815953107656119717502036405438102309301354505433336142058072329866880566655793028841675023381220676475924854736747465472774086076415665297188398277137083884319387936038086924465828076013199736488898013582471099598120613115348504436355420014449809311210271532626026829518538271907835250627696059200453018510595735339461108532577794007361295684862177433661719607734191551617742426098372562328783332060887711383178635462629630719863269816511314254435802335502142488380804827595147166784693948369850189933418709018295970793108276903675680303190563528312927910237516864017694081549649402930498201126741774553382944053921857773534790154114862340194785500087226077316025017137997265475041952978862892732628407184053966762672796468612624055825180352254867402225805326324936126682903792704403345652064620156402138332362756172430351961738357711443548256719014433749991684338313427051029834226995951454810224589273336659188647458007838877592603516524233969849531227424015198540605800124299232969500790962240134320282042880120651420503334501334760982486493045303015701935859766343750361202110522264523102786313844739993124572006395191001046417603852243585391373093934777112984777363125963642360960211646148605793260289175989021331217548282034166763641435603227782210805094820875013671245204559787895614885341247094244442873177884940067092009717389840797311206079429553249766952435709162691918430014904235224049470433053579335407756309764062785427071608930701888733927852069290104603571725052385585429953982080233507966934555876319763198047362248804494064783342832982158832606515544514341205542995977637226586204058816109501877939763772028068004015977634835770086376494070591266413012348034688831527130262490159279567459939626718126221077140270708995015911300566050812703062949569999110312114431319183337599215953607609596369274845750099385183357832114455000236727336267758510015980079482237917393963391536119148667986160022404243827050805966831889941192701834535330101013858733306311679004750281251896379254393357454425578110259277315546109058912997575885360248507931715598871581263969395945487590083437268760833837661474278442278403748708141491983487848057740994988869447091187290905200063019403494258833562130377829604147026456606332639240996267185106604827175567373392982355204722695819552869450776885040580061055324437706028447567049931127566460849603719211853681580427262561883342066153307976699402408461392706912593448969396571833557070443436872119468571881907527470409656109941215363983216866383750897468434935149569120134010685300720513778995609723448904609280368713673872072107239559441071128691581663509223809029746749210323526637407223886379366508334466628798707387669997106241326651125349061673522695124036185498284641525483596774742200253061525739822403826221505127803230740281617847110890020590195201805268838887068005167940429265811724592184237507292305697580328116844593940774116003576788847640429294444636909365791077850103136904913688862609587914403750650549029217930399801174313178618175777353645079261959183472549695082758179330122928497266652932265804519894678880716031714514248781222975205242196657546542866526584626759839228857836523586807207826078665638134209806467713902728033473266389721807629168045356596419857641126218913673128616430565202462058129768627192736681148009009005990384078038271191489481996596529837246335996782333921781110238300093550216980097052079194746846939205598113800286471196905778752283347807424737560236123021643198067513352308663175562816571406182139885703628774267305451694975482069197248853131637077746666361054939228421525027850065883661080385163058977036837970710490484068835957993890486812078400500590319161270581665140544635460481705238284512681974176248977969413389669097975801938981849093449057190795607092453640888911333252388895846115275476270722370827302604917016747248424454050952427930316441014056639843944749070131878682491594854904256412121175118014990326139103950264584267167121731298627427062563093772942503697101409915569410314669630387236068529861474914429918724271396543158119249963895904944787327244537343307473857755727098708009962443060701641323782826174304019512070430676521201816590411929165423972831900391759084698580148849914594233047192203898684344190183954058404056960521507292406081104703236291211927831952663579044998803490860536755034277929656828073583815560050169914440569051817074814932371269070538634981257854401576103849829592016413236986692990799083706376850866090028515743281584315597325537249942660352798695786074574474765490383578777217189551529000392623095773670070606583396994815557908628143064496096137003136913202085228493498227467345635800790649304077828590591239292404657700303823264604065419489358737312779698587040431585562852579578507684085338901781757662848698607584259045453729394584947589158324432878163051955753939688681469304250395697685060612221574066248470503023858654883858273236106961705730304611142681826845310853502031143498425307602817247437166954905973908939403266700243774582974947735609545761483839348661647291315787085939520686856830914565915297759360100396318664762304136813940563153534076300737004615723696324166391076498472934883921218790542255120648403622024077116654953232377983073862188660088204209764521901815333908195414219925834983082928480751900520507094383624966614020422732000003450046919436093052460453544906361223445063394942566049481571830044818063518272013983731655852409774469327521645110663263291498876560588435687662850711208562016605281321634697109175238636282443918631837816042768596248858397915596269940115707393842734689319160455244766057886636722766776699179583784768201186714955881018863453276614603705270453717380946840241473661342301234052094903834255492008611041195263882516562757176750091199356548141497318951172411209068692060042996003453872521684409765927199724358097128043634652522569997930561654274625643779301278247584494633368139524254009038472261013982892858766749849406295417584044727399176831121860231100415651982046220477832745929939440638739194287476053466749133052173423979616769755160161901186119451529187242914682209049185158947412259123790629208170188179988788833294859123090058909045675995825684639102324351815725776834650108346743376676638170923192615374737843756166094067836869562126711834211939982300977994547304864755050248727724966953054728496856582746778473983593425160224927746027482058307423699403155332298662518651300423377531060456504343763121810866590309687723087863379827559982041699825340597458690009597276102602225183104000944726583187626121456932279656219098840274270833239438848109982216376540410037539387865810920307825192675292301506486107394613885979116896687416729511892213519971292818335001450572932252122829237199630586796906058632218028555165752183688948679668703013011134785547953532509224030974114055819384037703016406182122846716147722990273258763340463782716215463744715742986109704982324965284105361503754954377902157066458248416529398957433054812237541502489467638466976519409488822338566214571975535174689139361002283422738688140010985718732480426074340309195041169260197188494846380809792264405990820721797722064638547021976050043164142053265321159582793548653947723202820816527908394803483216206314240914576441179149146172749809387087916474783219102142266619275765727789405517451991491305101011553819202988661811126079399417885041853702171781337031434934425178994649937357543479228396415219072729249308724118514481463986941349109228879723481830343388963862406354139207442425770848907632534920670657561340888975820525002951296308282984565010248057668195876800361981200223678736434111696480393263971107640243057029256985378748676127475181680558667868903139877760166630698105563622448484773565978050312043158257458585905920180534867310216101576280234757440003858823352720073729493520372284470205913040625502705227108736102368358880781055775009088060453083018333527082213039761420140073279440513445072594477448669289058384165191660739489976127169117519836933042510410223673731318918285284969358333691015177341048246167617641207139208870984035518170833707434869469755957434388419541781235916392124224502921308170093853639171222074180156548532593904676661644984415922518191566281616981131684093532153566283108040029531681950339402344964861074940803225483444027394408866950927439196789243819849048675838497176530090559745887743947608042031627660525684495352467519299742627360076023616925541302419140976812393637603435354232211661214298322088446141282663899629879808351500505535885173375884887954125848099615997335213064132114999718298632396670524630307856847747313690500408047634199255886691649560554867053034757149175694918628997085174831699995455266542410295245845740504303797606820941079861263763226259282473160448520692272726015205176320227162642586438306355713555800055443264307361179577625154603884327678680173858008095786667297594590139562707012857778565057919336862255642136824155085002345868978681553668986354497508679421479905043608173441133989196428697245664970446698580580591948090388214785678721611582860636896576909083289926361274718765954253378606902230220349527726430790862474949221137850410143514684598078147402784079431601601093177803808747526734458723441452105388046067275894595274968718881202348272026349719982978584017840542254568222203038062203006196200943461255426483559808997417452048234535442116449169446806027868728299493488908014841085872183441823410207396864399998681961129350530581879325677492324240851414128266188761242978902253273407400046329568595402489911964199544105253613709051862858716238519242470181157056423967901047206195475840576517273974842473941554181857783493917139339789752272123091777638818443663696572722864278670904967658700333415629301249649600661328405012762350264388730089737534641626195290411199249060421848888418140465481187598372008702571637448429775570580399172733714518737204717163878871211403009134285679616565129278791225041054833761357425091682506671819508049070321833856016952016612544617218635268898696498480604960432451420582288741466901228189681351959894356886793392261652992601143755070520819571504906443233227193039849871944907922417958092476877360086145352698979016455546381562633345758876813641240747535699764991246087965477175160034336475168242971560418255530277337912093991541923511300311398749395932511052408196240170677976248998679539851420279579396537135309811417829594962639230151333251360829860772222730782578479244187829950868794257884977801856462938042080146027238394112646288011116369110504333687121240828285196397421420849822685074758015985326570684815509194513329968564267823876583417112581122626630879232328310687198893518414761895348184910279719528584002105017970684659161468267064663828351932761226328501844875297635924134765994690454595901607828200387896059956783268532228852121109284015872809686985963519929244208944903853007191615752526670404644345402846624349485953912086612157103290689181847203281129818800365333885525328027135074318929278856079804710073423354083358907185372652677722655966204065816724864075725647174380624228212625279182093677815102905693695343629012050316481875462089734753780631495645205674046205267024888865296444688904592983772692713337924693414840896430110551630089770400207358870398650158441109822988980173413281898387933198276589907700644224987050416842176850072277210792109077421083866021907132486256649325145150816795746060243339112055804521830134367051207872172644761288274057678805504941156424613864581178307917114625098003554119193772293507325174204663454416938470663868397370139624927075471010940575097960694056563557543959811763473045390028288238610297499875324361577918394401954336401147914752299713651776034426333667628173855823532194145408851730948185201340153818892493275723062780911929743964106196773498297813922989045091927178346093562785597325130982480416574356273291990841314943131246906528529700186173157502986544124676725660464727583857905376328451470309562593860629858352256032888904922525307153045997141476123702401833348807950340652124620639524170480075377412077708588198358167054190583774500911921014233592924739930247112586536934936844679349169021032165456373799544837082991026124762334590118349676431864908675127929428531158542212767044336809959689134791775919669224250850513577386706831648373469277948106672080361272143333382873749522237666829968696718647402502957145946856756216051365831874466656119836675262044474412639350435324222349436296605462192138167748291263471618059384534845785125585682733333627053992168442544228752464257967131075609186651503452458725851100505525874920007547040889569338074962647359857780940350082930086036226896238794957164000907022585195006092690288116688233255719036396993835547535595686757478744692957328674095547559691441771549563581717824290612757120405414813756929755672708126692740028656638800010315007626796009317771104690173080923966231664617654214225404980607206573024220445317837956022994590991154801203627466383452043306870905052386922093822515465781393671648388770829867908164691117927954491362462661164305390395654812990926336921421180038538965048586104070049163440762364088916462243575763531562752437230593299804092075078061856613177233135310359599827449971178590488102911278393604781174502414987552771118116455751947604886428509878382928435754970393846629448143671001206696514284111313877656941931131106174625223329863362604900022917799962067425562281402111333335646858348269240327674542154509518026384787555192980333290242198874082144794016280030320254386104931973453821131881006942324919854982062895158011860452044069643865171946942040684719368054026925359823980443225258934014853660214955145381642521956013185607510858120512977705878456593828968225810949557273615045708074278344501101710847882547067997737009477986084400566425128797913915701439572311497155427712982829069852032433744123104270289362781762252347209524253983459616963696312784125139120907373227758406883307721002300418018525424896364498516659413438756965367530053249489603184755886566375519039753025001602465332851762741848181495147304326137025824846334698202058829359663932120522808358494451927108649632104871167428484678903144148697774700831569443917723792092724427882152516045248973368475791948142550064493462275918937960114331760960702582478780905773250343187941465490558136475703869356806625027176330349278226312153557856224562401050300411559683846819329628401844876139517816356718029748362183245906337986581297486673824303929336078124110770550272851056656124624808007411151300030883555701506691322779376244017584562371674863900575309388806202831843746710097464151990321723997194025939683707733369018657304458968970715550587467086515114576930442060000856810114069343223417643815838048837866530254318417820184444893514077016167404556869622752398418477682115536307192586676295873354424681174609618084470253693070174877719376460417955446216762102073310745102098901247469184224633778035681315803884467974689309402556287695370604238118526854558070843830671368990513009663814534654307753306237653110852826815697983059145085007152913322592391944655982757774606535910385268462861540820149519256615949320729414126913831413902657990561840624195031696954316962384366105156772581674243367950574856943834322443816652882443537606133927256473720320056797095580792487947692592920837001650288766794008599622058565410636244893642471881182153373229635902810561605868823154210348162574838261374906764442040953059280222915975470582877488621184273171176525724558756714095670067457464964549269938636386177961239855494719293625326711519033846509668816648834620766903285521378482144766268036130156319462746674259319036100755567857537914352696666217493102113847981137398811691069148634354444408820786412782921664477672013861220798056476509533329839435263720550788948721591072312255232139421204512350411757345322108425961913947209755548533194397149767133853062874147478083018194450243850083583781119188396127890924968213241563139415225799383921645037810543546249224717379277192111845132823925983381048020006309857752225204822904469236340526453609153374548790691569514312275112694626303833508009368788574306360252018280729483911418758090705060352281595899860800341476105707059279107944570094588647654028366087625266459089513244461640010044684050574917275982333948321414370310124569513985481630952621258979640183978529009671675126791811178481726501527826477644276632339202336849818755812830367806144102915256868234658985188960601704321417953242086791758056416766368324332057993096740856827578201928470580429292620819588616960381108303831829563809635600315166110826674970669770404425943528041580792232106749462747845614556152420839468905527014418302414243917463558502217443935141563910748130363499531598208705817541347490257905737496121409231083908408749758443961452331732456977157908123797406827627371062358895723421447966676952449895702848306333702994847492768418781882466950634096946577891021986569386092297788849116938598177577493988134050863285498421263329682036415042334358522720129974645610954268897523465170034301278844054131988956539544711808169744568451988606366656443598943724182957889240610433096461524627674776917833503303198351964650469208993231608424048956067039870165177414664839628864292152660358451887804343625189122526896431910373579344248373077271628455252862265867712902545980058895881142809968805433134608791834063044401077878922911710208672724697040028498387620130980132270614266858850876148142669128964816009147464843672755932943584890299778819788384958828658585405635679720655486005932570583658164337482109107145104066468084857235518951863597165814298111262128572540429277096368961252691023115899106844153222151082755594215299948867512816127327661510166007840811151528176529704816733554336087185367568608355170666186657613938032786725030097289563579994672933773828087290144912179066778068771285220691951116630434127781026593769478357585687390963736975457186604007059440472423513613478814449373647285340732444604924131622017712816250634111848611565655888247477812147604929816814793962972942999692058742814262870326937362473439558270219154873240130130170262490375720636669871960958685860617211088049061095855790733548161471159024163365249302619660383870435445076385310303033528386801031830692638114227090313091255644953533513291649776815976429435904456754242727818246701307878386075746491211077627941052685240597716444523737481190025954570123368893984779778529076129347032919309639184593344127068400482990076274780620533819899166947603317759126423416198699356773362535402159868518459003794276486251571113998492331614855641388483107120126402148247945281552523321988675292958420135974259830369970285916501403045624150964847863986856185527617099738131699631882437181322281821062852439086192642862850055631765945081930073886173748544316853908420412580152623121246644812502037450387944078920445391735497238227971695169000749769136281239821246490675890876632080983668154197456752851438281532110240117032667494720898364778777329446149483176798813592605763092224490825817398109490796493518046023353422044820947660998874294935224140703057380928061873595474033303917608592215201981497198328888904131556709751054744108196953173170042772454367275405927061923202592608544993262358374638188345171877663290216342898038298315585071133536839381390434574740288355939611136470305091073274551256455634511693345913030076645295167228154162051380033775098567916430088941271113803584215423907542272814863599258668651067544352052049793047010074592468452708989229237493701149208460041163908351438663138296019703920959588300550487515864808540142350855863979949779670751765330549877120907726023103739596124702479599973073025562395264754122533682604167268949284202769182345648963697253458227274324586749016012225543781363026109978934773844680560227622212788875199427213954186509989932857445159890204942615388747686895403097777452679269765657628532623957164652975908490182990212087145343438732121306438545574852231089843454923182365582497242724489847376688129262769599363147207939231487291187512256942628328846419518689571557753734518493210945048975164132203257271266380190189362395782083951557592670574732677839804709802781404612996448933706091864411106560880654791866495466048881923147450180697334044905578297264040886715723708416257751224058707868652313985113186486585018454849749046678758122686664500414268933584138330985863563679692869397071011448972693647478719776175686932805116863884279653417887326782907997237141162732006835505378263156623679621045919235161782766983155471118040548949633441763287304572164472776160101929993662031134739464824706444372796761945748687324072870495979839301830213092245816380022144604296151881577312630442720470518095715144641685324853540886081816548922945735267980895439322235460900688553181845936000734050561906587262437571708865008631171062163127637431850384766851149886543020430360288320082636842847108325208285515880792763373281334665825534314933921536645501349169687694404562217402280176591163958043220543090949353818561951690171960505197086795752374173008967176396898663887509763020698276147092640344990452487078400475446208927974817358110892511095365619432989421936643902868360990234150257381759746130190243387780431303346038368602877021353764764854112101608580581876950592233741234149230153252993391401766681136952004824365728610399768641536473792020121699126548699250626213167771998990296380632567738223659787221040626691298437976855184278538157558275782372034180910303032670356326966370684248720164738744164109824127026138856982372805785316594294041078959545501397089087098185080335281524604468875140746610442101224967771294100561580244871536668728515498753911979572890704883752645450305315204032335857131046810799395792449869554467850406316103465507387510455004667950334481649901764948422890386779110316928226392632395440235305912136927746142888372959711652562858621706506866440668326850991424699784257689933434215528643633107063369609236280881455048156573906482862035949922371891908954264534556026060243820407308554034474979972202318834867469260890090954264104422378826412289128773631717233524017312596299632231983309882757003371873177015117109253101634662957840335405310788242551112966657867416143300734407844651454794689349807403894819372952681768381249881983768411914037815892652804958203304145364197880932376444619656969208464338546874437763473015893213792977833914088293165509260952920040873783111515406632663543198423675288938604115126045756870095512734451625693837485180073035730771950665709699442660875352991226522556666062140353556475675336655566028124363628584711554091427113897013675989622544957682046014656881355406527025390514829720884342653695052967991311766847300426698478297284735585498006253149965626323266507832150756505789382365591800243029741079118904238640629555070364201793620843845370041204478402217706946698365721901694145567555834110041724795384150322508861992795711157586787661613183389584935131983194360815335870090030521501226503463166179869401462562718594975131004001233248712630894199996067294089751811825237236908604856554579086721222614210224250984022578594944630947445735893425298777791211703535109870600334516693927454272534473688607343405894188837488771565018638264890294778580141465102751953805613769999446693471223661694507730001051725903138328252473273524417720347288339070601756470928427509970226111507103627891937418513211302189694529518394412841579051861476886056890296120822262753969641076698148382739445604122443199639164235114913812503522439992631467829819149159749663930329123648118212153797172672250520039028717713834827909602176522789642756519760772416664993611032428944166176630349396476205238298114381071903123510746811748938184922661592648354084754068955094270022792478550119773556592550013698391287754809477454190330846018585325134500150811700035996480769221238943596432615641869265280937863993777202922130121703066719850752622431213260882142881330468295040664977424460054952676905547446300057574189922003251280829318727052809909910951119375725487892764490412906936522701262547039878378761163720321028891825525686798090331250591831702726310701372880181706326212928469902363942441193460193509460591641849868628139388887278352494920003098923305623938258340154689001980906580118039031025430279655632341733848467833648504283859031458107721088153805915010562243812845652626969597653337581823037993776355557226549206426031004629080354634602565097440540388790143033905713772504385529816606345568344681556574018572458529474120234308349180066678455595087078907015726722441365981837236195056554616008261834571076450697995038404752214748188480293048050736576039783725669921070899168052651279742442728572125771405037895263387951401479939345930294816538113384641149093748397029706530415714136367242012992440240601559550961526915332460460875588348573009493904204134053524554268102930041223925997223633939221800207531017842135683726778822599482673583692186965005658877007578484985927079436438866974578358586146540878622612610030699175267189952375323066875806358331566585087083918892628455312113271146885069792467023940838532469705537947467659569937277678513343570268018563252397422722280980853118290152030530694838702344713132924898314122485710927972884722016553543521517687383631476663360235945790591535139615117452285146028676608488954692073367285360965193544290762387871021597828814771877567971647489254942180285262525790066306577370782223593393949502768264417682179235474758649661378866723752061921403310180880536548399465096788601561912263705499219126268964710646421094883699902802841626738990236961074889613293423057184312148249488169255558075730931395381018215055442394860390562462812247237154515858824269321556908233114676246875975222551121035303613781249390153571894758657482204374162117447357153093040991042883694450767648601163583985091443254619735564070106564670669442145509114772915981534370358910998262372562028186034836273444940402523752537706162395410751856029021334054255471442261403982479662784803292669640467801852532306674567577646456494054560906062055438504526490860289573914242637166459099216052151617278202740428303874883307107629249082339862570452984448701993062543327951560314013058375317988028679368726373644390055869147746079105110720558311275032089003453453924802271637837146869202964306046159996300985426543629887703599275276145868382957402575986109051049888371734472340851708345323271741879153452389354236929810471345578945651409273644687822566638562361906950587155188548138215338323007820255218079909755985435702002632902224608562397746697382186608750531556705991807682016554206002316313313775165346184079314637076911436192643184201388938352780398784664719959453242674922095370983705192986199993542116617921598324762712308036461703153217132987316999546491584685403511947970452302191849678109421677911720238406464044979434243534555752913744475819405176760582517311389294378998567342236511642248450084962990694161128051047443981178517574916537366885171421037005383482006042585137416798432364163492657171675186004706223564301411762675434148299153014498794186189702135553230901357216108184989647039345962340410831282392865479042608174731509985242073808356860375338632049170253472605403180127125865913341517729183666998848089513091009502360916544385753974144071204334900814280002285031273209626647045380465699689844656803924364761364909429949916619742137140198451062144844752854865439989057832263549055858393422672260436054604257597007700773744796576415547648357560576436914799553586191456312303684591684218032611191691696001539927969866888007499668423491656909627638153584438386675661811455356248374842722840659648700414941378178849812045824702353742700649673540862322623057713395018155253306006192212656066522599013405278672679082705508545836960895957753529371021417158007071554047319528105682476148419412160832842923447372529688104514433175094142605437434581702479391268067600019384371180487801570845123578712850083477142836693050456290946697661812909780825370110062045925838858635910199853872076327380139280846951466982082575477515137084972881387658398928282457236671023510633839494055445884038586512299980612135451687904891265951290613956928937686832170756082763157940172731419185499246544037850371233972484340629788814043125339568468978517282536786748117167564719421103759731708275194763750563448190364735275843863629355053015025447891922912137108200477165652569281925000314490224387931317036703248882082919727250978599719378285107212624031348262686569428024316196890605491198371673838719504780044717800290966924091215700149586711954988294379737902744089099196411784339631417279112488894717163968362244549483102021055382186650599594741456582555379006221389045632665200923033781778790711992955175199616111156535768300120091970050947910978419913749227934925985957289137049716430164884829187938686213873460729857527828215416983564238941366457986032619243061201795367829177797799713552873216434315858941573616860568860832425885302084546220813349152901294549389749755671319503433190555138328869792191918417827224784452886159814148933711166212354627933419457591353983409723863784386063824496559406403863790776627985996107100932320590655285271235890724083463392659391243161608967876760953793831491369338853013093969447693584103961855742849908892096716013271510796820281440541220300427144627090095864693131779079184721304104444728728707942507053436511517722501473225051328711607444331159488249858297576069953449921925815393516464842635494524280063802248120999800356541896802466449684788189741363635842798025051227234012804757813317511830183056689278482250544505655605159717910080922280565979440537825447040568714904442348182558707286609270268658731294453602388173594809854464728353028447025312717772370427213322868970693131891726554396616183055931191527836523838032155350159559799463880486864562035125480197675787950034948727986520761774714149905810130801305487185536466054299961735012580195222045260002593811853757638823194739786547739403797058226588527517364619955211511466829691146529188745074503463638882822430249156186370751519525913964148667656636675206297097442040456916142057608235601472798953927928026946419186883205181016384241988703294861369265915843681589284984340917715385797670188468259989161161129652264934934062367561917596555320019302604304710068300083373717623846189182985048095516195007959859692382924942266824163681931514219876647673904572949102428294838662161384663400242344898299294026597340446696870396055596115706160897115777369584117910850133427045185978832113378389802049258584876634066732445357928340626262588422126947591117315027329108074526183076642872515197071758368140070852887143296595151444349440643771634766923758542509949214492150117110020097968116866950060932447131447238426278020239948841304341026028437778498777494796555717704200793020865519605203307423586533041535962880743877883306996593259647281115203477216347545809565576148347024982645721012565860339885134762791135308311372283630758936615707062039784523514666866133142138880432185297817454294043659559338018538449017558836724022082234776655925659551429498836956469148906791436670034189625811187965852001034430607512035075790536330331562486263203170647032257704402029665049293239697675144971509490811160511153798181314574518657359118936098242916688640924271593514407437571733863070058943498045438820093348704100305324297232147823207594348382375198705871500466749076626840676695440243202686708221378454416241431760480287469463090191252469790979843528909648436430603837423661642509278461607760740577656098832064600921199487555362986544654783296591046937557558162912793099127504415377104957849541591687017270024119839602961915479876735280519833911008071854935975438469123754862261428006907387714131065524701199834712574569294789018112686809172248981232040384826454146790227011493941548014067761236075650891377519906564692842777486109855102051731727791772658621139285867537237402363737103232579361174084173929652909323666131801880470477174892682753334714018002354626283842516874164155928416110419537255677367460433510110436039061269823121625825712502332585563389860668348124885793155515790761042007722556316822276447168331198505680391788236711286033044334338284367828353840415955011544378561621098552471902022841060198671824239241925743966059404054012858930155582997084116459729877674120740983226125411085353095693828566391747191152794202143554718802334970589956589090008914940553703535580004942178590086104556289743348497119522973920692670546954945818074534904050065793048231366406288376125307623021911344404640728777563218682941523593786702243554636267517968252573277154398329231596321828994934195303523208369126812516431849309038778001368288080818486271823213926050503995880918873696096972930450859605881296603783600691182770398514097058314788419396000261545482632679918188740465219991717461676541860839638763036732485988776607351488603590594128750342315864339200845436079204667264982010033568449075679835508681238352492816095807880293135777415145278220540888760732358391348892669491192476690959491131615759004968969681515978036740885438317422760498936353633731753670628502651965069297514242380330912841151264132819771993678237829801804447012926389389024608582995951337429922769550676632210621557685972055520459834911095044001411789637798568642752839869201098642338217672081453598948510241945897663860596316626751195439159403344368384534525696311524181985662740522663662880942477402817316125071741748966831077748867090955012759022651952108225626104655601169600351988470469243258400481008536742667493027687487148861388602510407961370101480096313244656968472245944434488734277037236222270702511084483818678138788752969312083212363037569403270892130444412969887199135389021456976692384356971438749394052430344768954220014593949805611434627260537152057009229098906708120380249023901355890394486535850136719497710133121529216652993276966520136481096196288502786623783386517150142240048408320495767615735235224688442329094744570964701536793625055176871073052428592087340512317903951437755825088905942361511522297685938219510249324465002685162931462169915143177553911555990443896270508368878510539846032170397016524291486156866915563350275567969368259957561661785043864512271278750127322754440663329310052330226604652743020360787091277515450430607668782544238804842451822590915511380357133215688429246550678499584876054597074838693448139019476446309274500448017231630021286877659066043494989938844971763719777671732452435447407980631425815994137784859904674346811256311815263267171271282770068973804979803868272208676081398319710937068195233105389028619728231244771993172861216136424519237960284586505372804498979724626444337282744984439414785232434337451836255359206376903183098358773483026103105170022818174307719674226668113920094861249757262275426452011434292148076408587249534464608431870162759653948698863481681225812484450216975108740738887740958595245549055059327869840491000182068187583546848584188598015912454017966591299364611991604631009209237887400941178466815010498338815467780432708358130670908689440077326717296975323845690360939896116061214356952061752042602947984499402178631015981359367024918089230695547926668612587338597257485369316801744713736535130290290641970879927483437396288832273865561413275100765829003005873105345972011210537198567718853031713932625659753409334215103900524235809068452257113975510768941712763247824967102524548892427863567515845437676389374712132322866078875431203587784776709195368610000131861518042712690621675449139549105975870954677398588930811184130935606745525053554672164425436956689782453832195195886276753158195918948637011697148702797994649515237168984021698753929551937579765554089157412605999002007294685814963914840901791438891326267451832503241192266336715029019921688424537235360512906734248380206368699048455312949076512111704344969570409648018064687081021101872504133366542937012850169419562080325443060104024041053468525727882405255686883451089949715707957156162793896118611057261268958563608824180026995835907503433362392393110785181361552600111244533634688822565833931476841681971741934739783316572514943121442567123609877251815840973356519334102169821808090611393777479405835050676347673912304121903559305931659525188695569974899791322608748212939777811680941080897191855863004164668477434983750944749557172676989039590123751505578591185242222719798397877719478085581243541933357943858460181449541421219947603265384889181383270796835722660164568699727160810009940532421219815398780801616321101761760546874022907695208425408379960835128934111867002847433691197362460013094594252751087521724529005439755431814698209104847519559088451015414782198946516721808635935392232481397020395128278039587726915731337592645135602025340372515543062829053508872159892512581956614700098477937743390989908364907787232473056353073913874345390429376770303083592270800604927698603238080084999793359758152670229393335444496951413375241066511134710541623281516050503711726161662485154308859544444744001284523896943694537237446710281947163713844771630900589871412629120686355242627586779958874263939776301641888266752850791256790924576005002869540797709620251313253743166275134617766988671081553155800035366410009750254172136827717767105325126486304761727431735648622512633646271141552411771110495981460825277909635725006891792399850234495327880209627770244697398810216462861987736712646921476431621609686597474352504359308563573853893764104860100640711239841626649480971835045865852547252560364908534023634674631957811777516451872016129474706137949527618096367793019820874805739511577834764315818655613493094207581888810906784520143384639475528069369271089944405407005372024274540966109173264715360492274838194419729871480660716700144392406921440980760142060881303179292910806088374774672027270076251938723004073419459021022482969282659005072795681540129615903825257054006929865384872700407297058341199333695509394716735140796662954357954311816832042447193759754495349680765818211239506905676345281001140123138864014160076569500615784138548566111628182112388777352885755319658273523490614230109830729797930759946982035914384473312155697508916906470153377278272336224497959386896439712816847260648882309670584368558795488358341004745485493949449162369377518889314987919510331263682058759931232969064333288513273025396277475410364227227349274389523968843982753870679897029362078764102455671420273494462637371905188999072511645910545587495763634580194463680471375780846444734110634630141856500585934491849984056694066090981153632107291611843191710048972647165223211145306622849718422920915212313620729382732076780038496285076499485879447748528165735963032339576431427856138598886094166696520552013760485532865918051378819227659319792281650604226942639533443070962094729787296005970259609394285333863139318247361510591703229832400848665247123092372638020778215618234566805195464599190224389261552097826443688471395780437841987174128741066552180048490031084142458143054616572138561492041955511906092220417710478769276458861016394023197131223237120716296773551819056452476172866078833401337561083359563366463899619780029069082699420872596389164419267009310923401501996105065099249356981285013316549223413220655758584925045514470098097953122563218289587404195344717493988336213869987768563900477531457143071812933044981702342103476680522963527864656442210074358905487898650977231943990067760613715749890163485297886710935511758248888259050380989456060196849166938254149134709980735378357749985235592922961523047477364872521418788837981458765311592073521510828894437030071876854090921133142064338572494947178336865720801229365899344768895301989401738915719005350367994621346422722160093736622411932756402176730154677256699946716963316561733118886121325893726695931004251644248644622460414866043216657100700564142670046837046586070770522316325003120228145433134934406981215325181471177756076446142343215352981518308585046837519139018460689867880611266987428583650782562434378164124244293597338388371179219800446516787655548393321347834224329831180372238907721473259181881925714684654839767023641775793484503130834716332784272841768679324596738058840965626748556394823711569373504889761632882868410642969368972855911093288255020910258813714230505074468823262420667992611437252897316052996042560164782942633827776198962449270407501207710844096281491897371290971970323976353142878557671423647961974673546772187380140244485697252727750957577009940178990377422467070923210857764421554001607617404105656178677981258072260199781680931666965456001483345125877818797567308210927111302100439245496048262235109643666376891722763711803608040744147962796774257219649280232754392651414986145284974771705938287714745290302694289107047621009647571010605821042035274709121894406247589329095714562218276254808138217569841542047050253210469793098526729798850880778962884392236316737983886399101990636057909780896876257193950615176576830943632770680212136912560259607916428443040267076162629216304791853315842534646304331414149824641552057801174446986580026707887498838299087509097580295753793949501685287846137374519931798372463100575545958037268027950251421457025547791667936813469438007072803251909219278914680126022217982291698596501516016416826604294624968254688765927221242966138715922909131675530488454614264129737755415917529386082193720966280885806801093545577819213964494391554140356493699772835220491435166408794947547727164925271567091484918399123906597672599269968051914977331156441348317048528394856997637338243624650631425010419629220564564587083927504403248768775298491244745637857041895519844207401085142105396494539786974017437334398795676800704022172349058204775536793071112853121735196035662704643668727780054240807605100819448584839930244272640453672301945245112462624124100249397986246381328919945733104296403979361429022227663789474253763416326874320733342569112260432872025938886352295646202616908867352025456809960701764433219599492711496867476750683076239293489349213369989077481444709985734281310256026054031228496140844853402291226007922178692286268873638688936110514811863635754261691995772040131486905421954096201094780627497756191284762024548622205036798870256357136665334309640088232145215426140183338768219041988533065611603616517768125670450534802710841551518895525473324313195206481362020571941176382804393931971851988154007189979721642529808371083212620036693405306839902130421011331660916140866499868794310944615891740565891070433917738280830200842451293967312573533331458364034018186443583778948806835657980404591338333637225354032520132623968444185320043733811448268081228242144432584624078739379737921188191804009398926145459193523697748739996264430807824455245485111798779319260021867347883527044535155693151426044539217748411694320128610358775726332224735948661808967872310141714603429326630397253217437686246018716730163876968902455642289159730900306977284486832883395691208920514903823037950184843589780725610844661511361480420795732718760474465416584834436273052791671467185096564219586949701200908802833092555456781636197188216791059036843988295376838744630942798694534885863948307734571942641900477851499905129023982675540590354164571725874763948945018636111417613283771610021355067456130507738624918989251858073931342939621562769682457315131534118609033128652130104082024131245322852672937744267222754109451380524557260383740004848923064332796798778050015247778886357761584879586163056351829409066997289567854860746634096365815439292396450072399719242582240460594646094650069133402045780592038411308292928496409528198077889470705168705482855132710370681640351908365184614063574907844282658797190728790588194815251662137996916355495133232093087282868215910243871970913083500704291794707069162519015367115910771804572480962435063511757082980657859303426502464100463662091682138344240917845999333223290123980115419667786451727076233095738499191086191869353567813971400427837659410084233867776910157460183444893910772576811104709894590951692883791249526977595003779810789602517500735262241591372823336878227879579231485225921560370363806666252968828801501516760303426338627849912093590207169995575906499058292522888569685031782720683496684957715043834612014146650817931295069667653122846804412252797200480801620927947607494659191053868987027689152548127346946593194757511008723705573905671235449476902923479158286448503701717505229765873973288547305194177884910403330842594560637816624890117568697478703384862954872333665635886955432226579624443340920605493362858972156009606024671604017632925548712586124877490294305339100408441744335913436119513654841539475644840962670095143575469863994856455953967708394680604332667709249260383672698701854069478682023581517905579343205694676292033551711193322745654150658744533795865095237706950143911400455240335708237853026577959987800933972901080143189802953008481243113582966281902726406915870212856997353478703955228215531402129044370302418287581984544563139289326115624113424104185673464531543417801795717106686351038354999713546696932657321794466979685667302407454431669537022585580627054831143338092580228365101217127112969918669042590543989550875212881955261372812981317436737867682839170675495213636191465030074526716480978453179411115270310229642110069477419584577756888692412966023667359424283255512814055191795216202342229069528611379637427081205640086666835037710369106441067906705032750559271429063109179771615449220533516468558466295398392334263228664409438162289352796833518034781110493878196341964190010258100888186505303187532317129682027453879120640207468972393350788004124594866578967048301932396556421036283723721973614973861408335465421051452527378348234540399035775290486617962608866190061795028445106859223047035166692592693333612056349471593011790366588035301249729181221435540505796752023605631233738572238234725391510894268637271181114779442941823170326554539281405762642432527578305526911578201363478717713951778951546380098480946239932211783363961170225693696163505144563881557808065346089834962515111547821202674780667515622010849549519441964735762729714875418685163840952604083405815426701538228693399841094011699456408144756150140601424424005222020217837298801908479148947908183665269098274971212395502267870112395760725870149098556299028868992553834972321711283845827812840836500539423630582798589496712942504055818798813481097799772274122863210420591007654690538431460650977945052394806341739875637609140281314406795367124163461208287458965094471290947474280081556411042865975048300501311704462476999249576401283824164176896444411320880857633326917147810830835598096697718174861249776483107399372500631305935222382089432212678984390987793789147541138394430609554057806759799985919525816020010643179262615073706379034266041965636259669556521380264286529297208871756107149538105268895824397194219749681408176948652866963510503388277812288117935780168254730308717385972639700997230863017912282739700830818447948041209920064215904805660491288045667937438499263037275580383172790419041159526876251066718720001685973310548835592247707805410090306383203276913152055974886808136498494983911629193875588576613967192647085941369360699513194929535532411928202422500884285466806539175373139569732857128957911667339231016377028104226546454883263996417327515638426820251013962497384949141499691475163602492708786229103398070032204812142424494183837291552543799922207474105984816835172545914981752472201734870843449885682935221407017907978213662713273161640522321867262674321507194925974774315939967780882445577199401147556378965365054519429297766712688715910749483865230153156099257334660435766832518370544277787446128513077898417330999763833019002591459567966338814533585573463259332749529062438063726395224820956768042968735939521352353334766592904920399809137853417186650557542696106438258115403936882591291734698555275777493543678348705837173736449978229783293349029375386172825913697453380214724948119065010611406971310861651650226637011659463255107215190613589254083272458158391125599378884811356999658261276356269539472458127787656301357139909182055115081766421470060286450710961563403810458142104201895905455771033613896977766591070656455759069491315208144748849622713268034326339627876226030400923621755969889977894932719792332941787692753846118632110486424710179683376046473558039939070255188155339496786102025627583794344275675877068653341290717621018135188453528181532725832956903554246918852884780180435173645565567830759198775844258318108209237016558233152401349049464969440499585586614103660201888263014142034080084901905015691684575418137507127753164659903917234385769919626835841502718382452583682881798585513745165142057604738890108087371190120809328373093949759557184749111354545341409416567357944687026075109345520406457378549337485011815779304143290395626729618425496094042760779122480712035840913146021174491546206090733977977872367378162882303257947361809592046940647866239669214041351491453737438787532678412948176682764922680011387325736460635956137737611339845736432491913260311555949882928489969442104297609834264414737749895245200865521146887902224480061348640897742296964209801062472298196779775233572848240172883311828018508341536019237598914554561390491750335696879122323095317824607163576267733478491186434761510577467260972190443176879673141568417194912687790306751150408243255505044385419921998178175671336452270445748397719310958017982507916327048913290991851658243165645674320096442287244663723545053301916812580070711800046707547212566988957634679483791264426416633221410236901310456212601353436734297048964235734701028011746698021864107604341593233852787708131527743627742056848391173045744072159416315997831134563613484063508257748476085034025556812013632178753766657125356455745997709145811111389803851681879966606040683578768743291426866383467848836846229549217996356313791284520447772605297804559202756682909538444548651812872056698149140393549195904890503320822358661583620496626171128290157036920772415073273231625325988793929106081651271738081852409395012975178595169788795991328832460347785742802804667572990339802618221622319639015313647543626393772672781069085888414909269904469735905627013781819765864472215399261917328203674049391407435627789539303134380079490712806538509350811313480289647299381697528828132240215114380331305687580985948264889294618055656125139286334548130270901525355904593209681259910169949947921085620611863706527256229636457899461240032848211346075274942968243586004339177630190345853092128074624937321834151520657411662891167541739203071297659982607057602463319581566862786576206144552648950033262359464462523337305639306834960257546229077964761615319785383861015964111201555551906510073583323048492038713832271514747825263047893429298992368989658397785414661156534151654432251115055893736807348934432700375654829588401851875747028943486137421094982110162208818717347561417907066714977676860194856653161439570959076124851863784142934759158606691250137970760164316336535325361428003362174091124068661777354713851629568972766030365567067365676596606828707253177056238116455938535395821472708615147565738065382239226475089000522353288084494709853685002110677392978136871682050668208835263934418401314030623184532852854149598204861206125934017548243232909176663707366621641396195619453260584142806132035561300506115597322815595114018145005501542553485049875075288571780105602929207543387163044279086835546225290312267749525803974428787073877409877345121055532829018137182276133283789084618154146072687455142482458298971258080221614333465344704209199767969348566402473027748167217323852971149516076682897629036613660256446828485231379649102418582584524305439568913196649883721190747836291383525168630804267780539650285063659137652906182253458489325102282750148983564153909496247227281131820259930757610530853561643213517236582645287552292223506170441595436566535563967407647512457203803338611354005071205126314312587238669053792875618908966439283879451913499496603101423578302477226280932965751308663287215967856958635285242612830386033096096011921835236585265942227671523954343160589455769218817008100089823032195678902222872779984692513097601862957402389681468426829242718969647081031999929588466791605166444325722173769177413016002303709748569563600929283553537341374267511145840308478106742420507788380883419288006978198839431033980440321587661795177763019759542445175682828837433016494972072755091592125413225658284165546451460281544074470005459250685992721187612855092232829180095295968197794965184906177762135742979639724130196313087351109304665729463879687891671278505412582493377346129903073621669716970150203650975515517116950617766737478857243010212056376854244515717885389507532849480340006964867900085496196623754921786693740848473721570183724139523651955308586840096695021309857431954676801048859021758509324503277148175233516568990053676060000974534958824382095114125552446813691988169971905584578525127298055463621017555486975013391378989481114416714995337803987617007602429214003811005084903603690603683864213151350510002829810020215828233712065797649846735877237551424725247083933191333200674194928186383058151577527189737530887936138098473028916506692856479728565083211093450493329936924079672366490238834866396292564978767927252076654089820578576161834078379735720307996664711653446295396759686092855715669728598647720412264090241539632071314077853480832087212969011272982183721455225542377613439952782983059008640879920686125399583911565830676230429994306139779297161688586160073786074353433472654569274984273433265893927575586054987199183977099726443600009569290552335257038307863466345490760940230661403506426848385229436478825361336153376510391764728673746944822487796272021202624195404249321533653864082438355873233120203253361849328563158467553393477939601118238614904443913838236226550706540831253777706842469129698155442426724541080542537516468823383843447787311716063041837536081558612766009618214729093604464948574346693135789673677979189271779422222873065144537152731395875717950014953796698020763891750488573326145913249774147908407577657724922937128048657737656954632536895479721563585746163348721249995501367241306905644384989290199822237203789019695905246254313389699974759359602862593658365312418356988021448665168433628258819810388970305572138992155634216045074721504122608126742273570841320539456675572060266744311777447285532330117599925962261247920334326973598664260898918811925845301488617104422940735187921415417407250223692860213793555572075293641297289256320744085275522247337928554580553560975294432228617504586758816938665392522842540700223744095895171196069638369623434295097229198389448447238597663298937823094411077886294947136258858466465055886731903244533135487412922072704418421941610023176830078971342872503774632185998823399774411428413690174515177909153912789770831874587985522273976595994148029475593187317596673857285791351066602733320953307766290932326421579545388802529021146743019897056403240249412918680456616069021868097039417895048702219825036406874841079000170946719828445644165807609526766552044164589440890111941144949739910807521508002218560659173971799538277428652289729739724356185959273482915899776344070195550883075676902625958696995148878896193666092342229019985442923372995617838483959784790148162165268981070079240877997361945740342443386113795482423110736648465244772699029429895692948523435833006246835896194482956618543184145650650021933815670512109658207597698626180802524306444209242024369782748964176548241944633514183469825328138791202374447809891630104626546695857855086950094457688775685972091993632133396313246387525110389762163283068909856607826913051033912718197434326216260789259974178938775715003723093794327951858491557474412459993308277460490251549043656563878441499576965482461099693632828511375725143209622056671057757175353905370701717824984629650258048731673570250209842066061523528414754590117253679623512633180103278872093035816133921138025177417178412051694534654084736206090221643466106074185544298985660270477699133592237452900567306904048413620393300505730699300270252952786832889728545589997863857322463413218963100203153247452817457260495280790217374483014841858236992098545734940648071827333720389764635630329152586599538713919589744224529380334014933031528651051600020102462759266976826713015261515851104994045532670048313726246701725521272142510441984356020841419716152321926590652572967587666439131239760713903597572081879814020296428258634163704382865754662691130774945883685775171495382271549065390812452587337708466273932625604227053034034443806744069886136558779297673682872606931524463387467283332148742935791506855296909296330493439620993625939071293464985610342700956708820619107349071538171772257697555955201759098496648137207026187168058418313374960585772387277897214197506332460558072246772669183913320757711289205845381076316703725344528366052491179631716206263629949078634065990281666620449582953080364474387088113729428537608126237098232836916985276084284788159525981142310737002282997646211190585433290644285995868961905743344150970205840380662615444472550509336411696990312509755927974148965156195916005042061367671966803048067174590595870751477700570925762047686254066544550480309272713299740455329524924863117519692750304908853855576481146189894458731537060965867268768709531165511842861094849253048692031964618299550308853671724795137652249048542766855958631285116775971597334228369483169553004037455916168626461331043622401145702224788804814541520902652466250915782619090660533630466788836831494467539638571421259381871376827082851268706375983906144664300479380617622927948765621637922557122606326889654660220263259733817269249040426290013286974191877206790115478520181581999289224470635475254741295934703110446250756613625784531286498580106554846660935949153467220615466941107566795104434599076593782861916817576519610805340853777268732428789656192345447519349557643041681925361688677802565430647572721609835893234918333070002473971107825474714848215905230157551437347056622154489127644987646217092609215207835628053552916425779172017444761327130098990928618363516144930588981927217360462035621538411050089273479789102775491206290334327925385697404296456693589206885704568969350888476076412746144988258619479052175629879876632851875422362369217630445951476269466091574667916625997276974981607711802030151769796248204872031670560709709190673860073287049803775624198366636636211009088704679955136218498199734097450958858453656021312505468054565701431598930614490066020187043899799634118902603490755928298491027336413874630896117882032978816143758169064116021837423536509051449577481786461443480644454635382628889708437636916241305188027850397748053949860564951710917489825135967754622890364949582937740450136001190901342414815050342559812129108660514708109435679928097477613223662622685318450668515132276241973111677137038868892806532999798896764073433657822032100111906658021735348646488588243258231654927508615810724477314150535715949693038420060163311182974378881798615985001509210337391849883538065809963412625170016488148315896983376431057762530610825833688871382355451604927967126865520189557798860615264150708716722477715734621586043734233376456632758039449834668060481582329717841535638394530838450049970194484364691519484042459506314118670507139768526424790996896239873200491342732099856740572926552867670208374596416770293464053624653370039828216085395201719244567280792243040675274176689887413497968857480453791793066354210484888070480934430508524837910711721297444903888705345068383741912927587928224549384756978768167090687417644252178082249576146247659662939064176975140324388704708854649277618719360103912807884313214959416967257785740538535895310672799862252185559498198512254121595654602436187738763936392879229681000048019793976537921368861710239033083194625289104492232087610302760984584894572684770973000125474776971224425993970711229821617811585745699077588142253897769822436931193734819599781704669611110774403268685834682418750874468402993141107933518579301627304116608218416366426431851042709802918238538573246357109463185465262962146155264021932201180601373833212294233153505272736928581955081646733987396060800411281670735687871865263722700491844655957640589110147811272744816997161844846660908074675663672581698985881004254862860577697081543876640156531847089112220216869464670566128101587434427320177614560128808344476500718283746810045194794486096432332417930861920774831078667942322590560767786480806742351710492278623614354947223340187182451193229237119445913793748677023919215298536462319796400995435666488483560632036045771518770885017160091672152284328725072432988553466878142200806770609997333193077827292566238895629787820266326943811976177543284268577257100409446205972529618556946266197195432579679279973462066912717307345063792655561943860779920484702503824243903021152818774734476834687345522819740081231573810184080830523345678252960955177887765726531271959855567963167517808286146890247574511843544870815502181368498591718513937427113705022146248380821978092074830398487136734095072652909954389632074108432399492249014680924766414492483584649886475237841700658745273390111417016107064818138218379548129561365074431461447989709670535980130448709099536729981811394699330796867876498835617186934586140869571484008214947488494313488196384143123991785458877269906240659072304036543808020338105745939686967292206251510784035228694641745280769931031989262334232077090170781903496492352414362323970034144474285611948298630071053538918908961682974162385922976312134113341795235396043435151658464218292837375196528478270506103946695481527452248281678471708824638543292052605528858480335510372173744550167929259252562349913128613803222384708033389800395208801001301344923341836843459537442024959748849785138766311551625840217372462949657790993081570161246817980307267136570413818659571147573093204174330173085319535198978475181415521746062784762263139085295703610764510167486462882010361897589420357087249538855621957944622880100788101711071903282974691506797333897691951842203955312008357552652116223009417412677184278755884909740086194211456199228375717692964194059829153710194533358520042012608323132198125156904078512070533090001430746393418357627986023752182784780578642631394571334359010627420928722620113482198161980253043944556202215917896896370545350772924058225148145407602940535329694799957667404189665688289931265548308534347278132028883309693476203360013884581491292045374478450244373894561641762797480836995160625134449964363947926800122569005284947864019966724266577480824380812892800746128005089779090943555685266877171740074016286023246968996598891877653770074531615019259358443678294778137532242829218743318429289098101794079162544934416055161773972815696487030337160517799214580958094029666323036240738531944374771461418690800578040796539434958854510155006913602610793089137265046960795967201380250683261411708664438965748953738979243036533009506077541254094751842475400143782201945851707790554917891661174139238401807684407459349716874667965070596044511035979614214975964083070991836862348780220000416911443115078335744435190427647763759474550827483152381063947270272327212007159098243536426871713164574112493616328561727131570185855441868530707672002559452705076438402662920615194556082949142503075229325021615312875651007890060269831220672172195194604551553503836715772039206486511889604894659034766809136332564132091376511252546063796511378681063681271208436812421238557867643505143496992491969900494323858712209085549416270019018869757126211745384888945856916080330450578364420790212153185354955648016334093624497093020406676577857800908048797238506241208780471995242761701485270442277585260214783129815976968760848496034810815484519316974480889152407566544456582777199492866634065238470110380585470102304271171744526362582114855538442816635676861373752744264230812716827118700447101834602273886361450760641658127828057976307161817695865185230964423267826961693915910500448967937144295838936629658354991335411639962745014691883012164983387076029717250852122628076899330832782889974845593155511818419935442947951050318383108944063233598341310777438854845432477481101891425130167810840240165888904922614752295422619196566743598703512684690463416027861176013540749391477954257299921965682496048265839323004947808172621321323940613709524646208251793772157062485567740911432701509172451671099003539393106013009556215776065331418498550944619014323034111765068380460972979916357298119763427739460962775625944634956993025594931958970937983416681697403377831355790442972046751619904583931621755131134280360923559002895418392366613297153313677205215066791660694112414459746558252537242361368794991466173564209648495575330408422857069590338774046206926468093674495118552804807277150204746623629617111857323578195552107424149944254809198592893617763610015143168517735700967880576713081598103968460633286811187392120183882615353863113180573206244355688621117901580404692894209993639988167353856167439654117151928879777597776652123297116157439181507949951416660550306817180375090814075306862693377450138806263479313518635944608413655076229450453630451446968088796572703307587586762453729400676017969891376108478510230534230477763066687348543646571820986683194921736729816995689319601943702943355367641892705625827318813512862005922323690969341810266939530858587947203522957527846720338853552832450673213186562239118489971352661486783875074217040296920237481169616893442410174357930441196678975826349440123592381455411728543400359375440360371006133767137078914733574047664004636608535672223511892280473503466738047902568145928433448051768405234927985542009794104200806982949701767871593091338968242045687727877291585187798098549237565452165738713104938487203304719275209678495148936388967846408363731083926778991250626523753995575532864212375866580163649461846536603761879348810316356762680633543213156446935233146214136979407308249165625889574985577259121505031503903598010822494656316481096112389275223589408602006844901055361071920422864200466054142316039202506321421750848789039924383947688694735380257238188043758183310633754945238024588276920833239271488070841708442766089566291599710537299576942318840846129983632994849203499183990121048480156206919872021102656808502297099598462841806059546092971066289031613122559324351531766188189982346167857785741765582767164510626774557327528827837760532180395544004423879574676517175664896070075008903232220787220908764702133218135068386796171162864623136271022318065655100588379229239777715498301293795167963065593167858658886482034903848499430018818115015949816169444961207923900691583138046046927136266839569939146590317455751115959394779662547035618307157183101483644326075486345257687067976821564379039978369873519713994533583285041857128121575272055895506951811925372969193465328398743088842004915805917118562191184421008880638017034668610877156276219723801338706739686239662952541242420270291004619654901667493859845988006904439865607564338849385056978933523902715039177929799383363062706427666021699207305870879081879763014553259581575257201793349105729347889084564494187788082053176075583577455675504807380328169936852959947322164015533635563044951346170176401134525778481062290115512379339994001191508732528580426145867317361866476549660951498907819497915555443728877396140030215493326060455009222343336650308297563749287948000326578108304852277712869611377906468391449794895104587569419687734374122719815290493057692061766341027944688422757114912708485879186913072942319016837951363739980168594085773095890871784709723597310766198208844611723853800255712216001326744494061814671825184875024159198837558016369621152158105472956126478584739283830588528019167893106838332398109096994114390692066705556911312048635746439843881365849193925901171884712807889746107698096194528516205577571890659956451243437695575988071414467674214712479585892813171957146521487422101061009153498074099214229278553366299168282682551527759005320174395993876945154509238402999939496322821832253330404068507604381292334115981842604849233386554932306660116543507149493240770300098838185320623329030101323515960508302790233611790813801364070108931321075977941259727636548305494730612388980253988687792149959881567966573582293610189232546655758032107533944200649631248457530337155219478081293675438076857877168195656730095340303288622166722917769117610321848553148134752778460276591802483429981005504198866805148135834897671862172081720217635760482444973359390926713645822265850868495551183437530407658177723659451462706760164921868448172894341557063352955022363331681886638792367514014425225069997173604464011259800170110447363890797173521512398627439956657225898265874486687590074829802080157525506472215862709630962153963438861439389967290741674724159495794790704770340328009552248994048967456479522840487401565993503648868406024126207286549361245020976265315184225871343208200257514279794728159641425494635828617561827712652224114548812479624758913519751067098058200947504735567181249904447128740927123967963712636990068145392653352781132655767105645607453553272332880774777548775989985119976466434740533625417091428121289732964243741193749159170403730721081905673736823056286411414935023986302327755618331483265040000056284445174503784084657343322193239091150448096856649575267725279881173141889857300453204668222246914886539468265184503377759065764073311710406227637276674970699241083194208870748669609123617298016678433704222160355359629032838756064737760787897655430588861588822226221729608545352769202963341888873913976542442400287292044897977002898699697908174445585221603100802953248963632583439976958668449256238537313180565557397387133050333477574496859228546845315036132866916015404959118066147750801052421150830119403508331932300596445210826553473958183138476380264528457115168762390937537946774924078175829843320420662136878115401099099543559355527552454487135070355479838207136083680518093258338275372492156574325751899497207538233343575536448879689000235112200977058185520705356839243061634179128326249789723388259193827485228579452511147644409338747940631391923175326365923389684550652496152472706281613101513844827693769040056302295375212168596577970374316393739890144393948637210689299337335211530997039883909334299696463636093832539165191170976080751595983898499367267730620243758861109085521908128118986282198263803923422783489818102438577278160173777187184354023829432310526541003187182373216205089326936961675057651104730468362589886157696920359774989733793015654167532165770287545026214086002351220167628158417965204130572304527938997295484019286742632310825046821201238223279111488384865706403428522491862338898827397136917125918980623971622176165976160071185425538360075813074381379388888148855278228419292843902619861411507546453073237020173263486511905784957727558801333159039653107761506107330968795057548546415507757026820349408149216583788026703616900499635268103542684485360055081481965638835420763677171169937370920869146170185484326835646247253941789417285824026992738150407836015464409105794268142043002370335199544341508403284829911620566771300554198378268143333220425039265135560677947914625825546155449495573824472231161372171339547523169200946141594870234245258900325223482869329876418100424224298684190280929149466674028828616710441246800014510098821960035106127845819800762528372421774877886974748003632489899175383413984825876715422265136530557651749575114470599212932654111851295251903173306045080999348055642810359162910575373039418134203788538550193916291103056177058030398610686358457421315458863452949936826370805525223644788865484613300680862033581016627448466236027987218649946033543004043360868013650051555336387494217611660421204498701156727794434730195130779031833794608222413937372050610455439245563339432835616773477024052309263543147415248287797530448997660322555413537344788468325481855805391884576768237864264726633833046538448812242407322862318509888084980575023912243583522334816544204389051575979918359217743820028202736476235919515127897858803480749525585493052365793299214451737803543576856414997248522991713874543306888155783124039210051059793578978615191261861272707527601483411660833148953403430373161662976248048842491307078022813769878357018339091936641419957799971749818779995882719874494021098537857469369722354578014479042326909598140250961740911262005678027584129688368529327379019753188742822327826788523694039525668692888202866336239883546863714906829238333445103321805376199529343003123744635727354099709232028176546910315812192074338248299650105599782650087908973849715559208308147033088098440937905467587140865508609830676857308890185317043043415377110812009952812447388005265911581421062434489932528022456050420295408879038244539531964358297247001461345807343918230350439351785113187423260383034904560266758643755199417648870395634193373844011469016465542736198534316459934594048730990876477474841651494340432631229195389421786580232346960677968150393939942079785291843064426234252231580174573050736389823589950543026552583110870740267718905276342817840361846331290855431311493519968340753807852729929441857011090383019576736222761657789571436852555537874069065252829101213309795459077767753641205168509583341591810483205280058491364154981614307060552542865675151669534341248142956171705742534438827925348643843968821945826936756496544640377046299303465604874734217600347421074296161830440883399488471020080108579299882744148829875211427955686301641894804315869033785651186029432655014316300292723100953334426798425038098201405974390455601948538312460405673416139840303096316032735031690451312955632109022337857005930631855340518065940879030767743904704458305631584997628830681161863553022324675585917778254282749346638283336990582883972128858383238750786938558238906156617765720128447090280898117765910383233971425972515978855918895298683630332870069001399630720800365223965844150793122010486189168583667209730430803901462043387440827400027844119311046565992828679543505349222191543399096766953616958162722744464971396481095174695790558111563453439436545906063023443018001296276065395429334680154365261749931971140914309311857235442098834268327533857957518427297511762200156183534298321995788290211185108500341730057962699669556008703248998177064967166059739962871819269620673968799597191119089874637131646142008634918809781102241347666548736822285289395770890794970679596350326699053810677340700265971766943433899138325244454224439057908133072609781354312865075186731087111199019154802194686233147364109948457064900456950281501511528130451894562121059117517481487018941638592601828705838325966456255053873835959111527874405684713002431335701496273762621936344156637570547034817475464124444854079164870035555824637419098374784101219516853977016732738668834134517413479726016747196441709371820302103812176113632685896102638022861561801183566195787439092445853455099876443675993978004711737745953418901472493355188281292744318779614365306281478458963202585126043931520262873053031231321185461371196180020767144075507967809606931988803049355953089755635195631133038200343682624321629473115156127104856436954687031973082830425954190413171728488864502551576353186869795870238011996781104928435116804917456657094064244968054155730833732169161385841957662865721828079587337629658008422383326344382758021318676501839882677030008514352535449799076308087117562066653547492410135896785723510569602127865947863905451649167378911650328646900715038713291849879566013241604511499334975103462306311686181083205749575283601551829020145936762916681335413653792600898515501282518018453381664651730754202874721453285210657241822130209941346231194520777281071900255796604302560037075237423689867631772073430824104910299863321633921448234665833021164670163425280599896648705474511511547801080500613383418198710002347817748387741870413826842133698600211811627074233002373231127241960980885631846895371791670853661000670755169095399075951786380770104489917375537086507832304195574219558584029382976322195482170607053849791922223162849912480559336355484783023657330243421777886141837354516712689781469380654715694056582376334700611500800357250736636920589923430865793537691648722724308639502729675058334857376964348856505484890785507836007126658415558178483033793876379284842906242370924698536983543443518205667294464662997703316671001166170916276859502296584732270542419820803770089893735901732648618613145484580275131733332528209017975854076128749182610827547349620901647902078611992929498087916574199633656623122913594124300601574907457458122414070415758081508173122238982474484983979177307746209875879037466530263967384316398212155939267660842750847220909434827524461906473696207518708184661715968857072019389090978613696156230030381555725218812495978113761628342436952645530306466156168673050548401187395930372414165432540434662500259022256862990543149706132353348757469940216052657314224890945158119396936232818517677943522077350161576733945614559000397045416130220485845281761683399551451037572380129650379276555662870050554983138015493797412635950036629259541814658642039763722800426146765482489487620404243284308095531640909074101541741756078798936631894399835647531727780078896802709863979492673301447100423034680795999919962448227552840486105398760681961192351644755555787410812784132464765876718596216745008241118790804113261238632094893079743605063306270766122089806108200842686370531263859604261258037845941655304442324358335207113338985646128977255291078185158685610872377054985902579506012274756882615239833886005857922634296399756612294749607299698287547916600477486702324102375382373929515782035991044504578483330258442247127164169853584366948522856544328696402508496273181238681017562786481765919217050287719586451751870540434416680718246864950411677705125246875203897677029448192994517665036555510423713871117734769034489374400693274793377813701649113666040610193664874159021261075008281141903554208423641895772815085934602062250746198621693175931155792626435240036068734038637643358198061963176759733429639110693727634990651863217772090989149793376173595719116346676745720234376982917308850481833007454441249470224351582700098325237486735540099190600924020597016044315902546332283166950672191602594912720309511146412476837517122995756159941560493821188366518804808079325414505443668681448212680705301883227313255984105252811600878489806358566580088538173302541656751816109474986539539076079207891090296726610230713600255917346326939350905255111099221419536083080361695027194324227007626886049832116774550513718022978447077173916210695652417585234590093200644136244800232371748785395176213879373373593217065364328612981040276279938239822993509698973928589482754971502185710723548647549355096107056186450940059258939077513111509731296542777146133579977157422739739798045869606601796830732364135948163245243847685327232595487215567949118962835063781324536510097994827905337327033533773594680095909592955118565216415219020686145682294499471948078826140901003823497244392621946141856065552387708052128683958539521898689643182725941083238034870697946224130362710543021972135797800360899238859527145770721340560127362511958236554848859349855906628452163660961754883006515794751007430885728696720481223792684107664136157385556660646608844767879629771460902371450349230472088823818458952782574331124458999041496005477979903486126079952042299693190350646561939157803407881918814019340283856362860629999392683689595082124163270655672496912977034941824464071457366517693679522336125945018471112954161548276186268665979314369041295960725990383935849433560787317137415229225923339146244729701641537736188412446310277858553887583351040407464270906466417108274777140668974405084106225901771449134757930487205405418200521101086121387268964503564418529153718806725377598828862665628607345062460291117750825649947489132575112955623316865401273935633296911513556900181647720558597714267972951907472414150278182887762880266859144460302764606034912195778309625875666087762965702398577383352263526928137746190379380788279387964491025541805103735300574569155859711049337003507961010918575781161351380714661486686271505893567895300735106548179756302640185572121459735568953305685591471428042988760782771540256529445043765921898817684912645821727594359484022393099580885782963765771254198464692235893159559284478456172785323101359186616077084407538834711923855803790652117618202667661705601109469457505232993276873873269185423638216863363461493948494789420339058734952086918344950468592178395344901694679588097067657376707117783248393252838562825205243959404070894513310128750202381087860790701127736149198981002656880279878713581934021926434498077864980291809707055198714611178449811259887087825005764237459155793612074243273154763302913348220352211346595855412974132038967747509488962178040737879504714233534803129198429492311527900051364564524239476001829439194969510351092739517224107725748803555994331824545128536172312464146750261116524005730852366358055495873983985372775270631632266975827914312901689306923250475137981570287687376848963208682456976258847009028891088281690577318986310199882891927867451437633017549930924345166825851769877530862458884741751312264435050531106861510176390840296171498879046361353094547464633558659221360941987777828772391218150207677650125168327354535707658777028714483818035167672225687484367720267509317227294256538562356671369870762122988020890839618208037053686652155674333264986749407974878111755868344116965590142606425138555203754753010723725204674190318613601991220735474456110445791436979669482934452165817685408738990536581069464544189664295085414752659996064128782542125409831213613255160602635185488494458450448862305893121288632205338524693567205686711466801695849768423928204913699214177763403781496506699024275069220192866642963333359128809825604273516794883868379093361003087379971328093680029143638535977001875854267556276062583411753791813187016641906543308356921319493147177275116153852324106484713341106376203395829700328412693679163314441394713641136292591672541325081332136534929458759647861583700109173685167315311139996372286882749296064153556441478543501705414034587962583648187003531834571505580861209474645439372110720795802573615589320902184053837031417922438146632528307082034627556169144467403507624939656370077576225437292550027645092066042322215683467347290677715064685466578900795989480793572680882789677357330983464169780136776696403673941718085688256106557827839597109253893594516318909861590723803789031320019553241092735760930134438404692879157766837920741057308129592428050809414150136705207256793892511881291948326282280477960147853838836944979426701148831858862748281903810732780915289762577351509721818392360898013835148355876519278772879318047393682013361377919696043308805060444209297986582760518443287713373851963731961392011175478743352251131951864767598845452094830181017698972019940858616324209075952352669569432304461217854043614143679171031024202159658809607056974993341452107089401575520013927508314131833335760065632982596971123147140577111775242336603452956596368137613546643857285592741364984933465734991801027454842961223955373788247745468731737862287252323904484708547151698649393584804255049447959728836531330536341421368272451609729334122291646658288237139974376578029931151790063999327644701561353374902631267330210224046509375626799135221453749186718809586992498905750864120197864903431986189428024228123943818455362732992670234681565818834783995031277582585209201903005870079188485510286650592716101865089907841126344036387612815323128713665715075764453657501766476776770531351760087253338588788837050908624943619390467642533119498501117343673098130766346917065237312656919288794006009625628006401460502733817165811083251495694372330295803812050008816707775500085703829717512058255009114346935429078777089013635235543385316237245233076683407023078245467137124311656302284385989940151984142362419994881299222419097265929691002891642828985061415412597264281644619562418772321611441204182154641822322050823615277768613569294846279415755928481480965231513236004861648180897159320208465930962662010895044804064522538784912528110985952064662325078366682642386194087508135751007002889406777378860750700882726682080604740692109501641630346778437798927284768219730457726379810970071125059716727915487208967207741800974185990664893688757757342294435824479196751750079927006622547077854371210284511472221836147267398941262845451790435462384313116996235566089946786588137576106009399523326366793939292694482746598160939482750103980243996778447526804149215051723965391879751758261988472129922392938565343536663819787915451616860123805569811183688211170632102790290302700034408675369900137244957311563781561945451939713340528277899829055433338191597258748629918875227273952738173811236286237407226573566594775685850710647337852685441228971917958577988463174540891664861757565984200200380323178539017666579681945350229559113325383618527375941818930226315069467981414639221711430656351206575807838486717139514897132534586524360199284323551118209974496986858228347863562436238793446933577663125731896784402114142566102318154717111578901754829405319268464428389957639165014702911151557125986321235818755341566752974068344253275304441492207545600999714732902990468779289759682811242760732271076226833172154076158772978053773640185202563729070378908768348868134205969376113396531514039517812725012739833189240639286869521754416640101171022012368349620774879902832837434681453857411897290431314480151937717156485493129545221154229703064704637653688548603411206812775442554920734661371451550975903003713221789544773828476181278400267516092017046125044394680429062210265311239002258534963532253610108771144548329971983909886411398001141133243101798889711952208486589808909266611447375700449399893900672263094214227328880465292428421332949949556036188647208115059121414590664986889717090215573950391346629164205555672633903142443524187778878046381841996498753947581174297995926508809888117458940703152491771718198457073929357032927178462673992005721468655985265698766627923907528734392120111315690568373866690970297845579635660750459575125648732517623258549136301914547146255493508162544385731499885780055035047071711813737663681108531739011447733221820219606033267821946131837684459823863504273815437375417526585525599744681017525471774917594144525991550512468542489383618201792838734766258656753375192732022930058703961485094207113451963645859111323334673716291715827817493029693198784482521643315002376319244992496488326873490587836299114127908245790588893873023213073347191669818295328248277305075791297060995724865748632390450243908744372616746589558251721156996237523425503999127457386789839598008337404584900915765908186432960975103885646197024699936518566205148680603471779099306675434737011611635902685339839273253590182219919784987089976029653468820780251987721476807454893795393824377431392917721968459125874472521135893236465573788608550606699244624453827703182789685118423781355953698690381560699340334319120616513366585841331859490287841986967096926106763418227204742249092127020194107236811924801501402267832956184283432726005553296957953545041341028581187084012237422063215575211989556545840248778189767351967835999473118751418651248241400349665187543856250228116434417028603399042059476099383165487588396933042050532116991659488257635768891890164389536047100776486512291135659552407512796502979291284264850642294922163166140399146125605867227820797124261082703343143331381683004893953115017716607407313408847271821881163655632728988967958833050645180304072510134804105732174690938841241995120092284816946774228439662745525179257463556511296891693313455311155782472584933149312867417908890509161789864132717365579274147088876945928739317427566042993430978744449726468012501978005020911112589712580142761216479996959369125662861239829518528977978131157786826550208151060259796920019145958686984124188508463449292754932157265397655562312375532037253238221687709639833728586357872790273869957002203300711993503539718980342487637062868338855024742231367564116061776773328500044218782264539455524581119457528461600430106747630612876428694548520107238924139767303220854069529135959490453255314441122291551250804146368706804069087164164042863272398075461162822614555187902328737899074551806160223459950855082362548189976266294541112130449849684099031125833209400264750792705888134742886062995249560324801427495795015803159011364159391051910129428061693794997996171631906649387663126062898238503449185414397527766934887940976913016200801011229739272542398810580277392952304838120390124787294303062424676509481417711047381835266791467146917406749003862688993898633572281060145051791093893002878485876851294234865833019754114338275321242303655310854451225954447217939871335321912441476885740210141289733061514098892397537270042775972058392557858738211111986913194116287094516523077157003244376073857924050243408127420995160849650303840120350745207970492987453113759939224472863850138813435699940675180129228658303819737621404287251811527845777635265071719339299658263740174422281219701962886969230962020319058158831184273672817088563569434165157151045919516101060416893276087197414180884079609489534759833362996922003527547188958470528370931588338000815872355606577762481064414115075477848223193357515208073153171423844883548446119472879998154302681999387596665732096930798013334637319373652631824754151208985091420472601108710732507049989723256766285918159645936043974596124635663446346790704544276632329389832862209678703372010200856836233331601633041658211363603832942109300313351092710050127751422358648420452550166454912649248272291647141764490903387376958887194782002967086064890259031299552617025585958070594239988865181602304641906485841515452377705694078803183372785640668192240373667940714371055354363488500302809226754072897898457296169755612577320620560311080490774681645758826324058679829290903439663416652195378533891858360428205712310829385476522192714506745210179589332428504016167246377260192054893066346787020382058049825061089774082059379101286884109182856551003954082588006229722348047809681902215584487723215855846171276242405257349183882598169044038536098146798079931704591507694470970463764970092483700831756663085198630550343777139116853938462065411937184557458139999751996950650007117834845031068974117215956594234790804130784266974878562882228465954273548017831075350965909226567449546205112355656370880044940481785609666458646728331282619554813323715024175760070864744425322975146945222148173514866280453247586895552774691770103390653179138371018892713056781173872831679405986572577610589468692536401318204972245517524768890300926066392130523561825905437837411942331962228479296524162536726436056633589836421351830857110938197027784214462141762208771254220942539856068471096681474016930875801648910912052126686526072627870330650091115113479550229524872367985595511850708308956284207123927816821429363600682067658844050451049046811948944572709321563765548725690175831084005222407898733117505714415806665033462523663480723962641879077646910650729904369834800070653404477452657468998809395452179726538850238207306569450482002278878945528523602756893666300683112395532509216827134162777745761153755826442084326158753358053759239186016565682667627583648044843391405875508751313698263785282582135080859492798581865436490437195590734232386869274768461749986795344186279642355991236404937706917943912343156004516935678986725278030654356576731968286217458966329600364543733226606785316826830380038490312378850605737913749174487141179233706327828628047961297076277964331988444670088132396052181031050796535880288862583078947575314667381115821763153523830967966032271476113359522800490219579820064400430571317290092102510577114946649830634322009502897363145696839964170243861632907751175437028888744872606121248623087952387861584672138572784067121278489677843558906519416607257661784157676041271503572230688544074194124343415819806427645965406461406449662858241582153746168563868539539521671936362379331334969430950153513372367961880051148450957005622753662521020866719027730169952972411138287929550753363952062819908127843353781288329251702393881714823520267191274768487662278769480712153683921102493745982744112094093805347663289682108730795880015047587048907071544450071465136381494132828304361952145088269810979807822418250790479171374564591220797031284970587927077475228280029670745713145604064253908516518442650450750354125384262655773093825578881296705139821864165350068712593691384364756802711678160926400550315693716766278980471908731088741780399691914346362445694305851623625886807546146452471663517486068826103296132322393666469469550152248806297657687385820059067649183785018610974359156964615227215570545183623288101031859285784410136146672588188849243617013117686340907077864080767342570751148918403218929129839956145284453743844820879827518941149592225993633416969311523915232018689130653891318152890635652316908709139765463337740388448400077592665395049701178966454193308004006889189958404957374234568100587033578159326527035432071624957498672479152029590177397207100853548918148226325712023962210366311097121570104147013810703720200713519704362621209010110451636655355075100596536054500481805906332785170475852802552003898578293626896261642048974703212795469471926331440413341423140666249001378832256835493910296968056696417529176986825553410282439718215370062362170270376403915887271339931015748426436848037142756883409642507152787791893242708476646252456091594962489626784627810665965921467846437646212258218546183338526987188594356998287198525824408344431979736504855525272092215305085033016106365730600225251503970307576284528082685825391839149412433842723347232552166840751515336440866449306069480927005136786099529115475105317004581400836359708475474423120546271219669464361348715076765491237547075266916599269258401787685128624150352024410277346941156397166885630337882383122470240760144496226716148624871994677859665484544761141362106747533870779849621942152004155027539153705955178659012818726001018149674674898282127061865741175469730235050060122700861313301585271041135569038506753055545045727286517008544861648502788374012326150560419022365506324629610917619151610718896285799782440190080769900950703662982712498082172432857242339717210717195197424731706000542839772150136184899988393480724351396691511684924078702057938535456882739226587770014811603809850853817861828047781654582920754056844073239699151135803673400499014563313703894466266228196350741122452751248182518580383323610752535512943399510653609868751732781408726713232994412840158947662983422880011988229355563849794415830143565646798637185697459613144022420971395222004960136809325356494430710550179652274853555269940072427552532847692740787025856922856708939034645738987761323533998666151453378329560996976594768945624911581455034291778204179859503055454605833690170780732616889363787986374555865918383127445198648709237528044881343807614629386913278335046914978129995227011026176739143396325898619796310745606061846280378350966756025965301364054308923298477538408448174820850328356785121174399065929650325269122237708250259970043459761039893258580367760789164761268269449002261986076596990265132092426661457125473234532148185120000180955443500551054975739795080736012100901648357440810348478085552666633672345782977414402360109527567663407652827938637085683989926073616734380430903818451723865047822628078251336136536895996140686950138562917803601667520877702409793041410269317033322600140777671417483990272543843844891998322135365820788445374003989046917471312910820589806350782145983487053222493377454081970105837411488227992182335312535630155131044890791934697685083489145038456515071600411984674349112423070773442632033225745755916532928776829320296317670156869906673578013555417707906518116400825157422263639321480002659893527436081631928361020698274995880838893842488699365266053970740517388223448286217870313131305401759729482111376718312095041715108157892624948467706568444607523104454996349564662607160081110774289275661749009389566370316391633796404245260870258878284341775540021444547345765469227213926958213478470684782075127007356730805533588482003329274044463992923119842994027748030993324911600761002669657919137601748156311702063235301902067666185001187081667527735361715091642381390484958247370223917340391412331173239620523626208150956351639940250160133845809507430223837427327942417342269689820631152217737185016520147043166810643603556730776615430883458452113277874357480747832468148137456835295995775561714603897129082342845759440764616555895065775179149501344206693769490176161112079897015741851029114797425894475830331826372826489182928491887566400529012839666421016164629249917471007107622041051930608633051214363637165903412222277308171830501768016259070955612299047521054686848814456382152704406120529267518016697954661817699043663469812725396791564659961702590893945532832522506529226523983492690556186280562068977129517955087753284776605032656610109122987093640231633679547191837239267738753045254929155922981613767718920985509542049067089447727381859267148595797405977059747035885254273145719159019078880076442667558679173973312841370942430569960418306163104184459704043239366899323015363968091039560054489012036586868085545484541754246065272687283626716708766727262851536548595292217786981899881633454789263078977180329444798869587916699484801885582738324900811950023784405035473859367047909091731258391721998523114704139045155312887213901996917774668897610415227426952336517589703586436705091321932499133562039746366659482137147407788530480980646744550630409775622879791882429259069174151260965194159285188872653452272480272491623518026085980370571982856293571410767893013043820859435947352742608295747240211517086649185787168402548697857559856795081427141350291060870517599256855009345743882758503523203290576896024197507941177602078537508902940450569783681061837368227671391197209106224190168653459776203240567583086666888764274390923094016230633383698894864286634368063321566222378720029154031563078748985896211340923614990550149989927083881010377839481378593407406906187480399684702362971556832564565343986131509397995158569625441866218400545516961973654105897002255784284975310565455249134529031206161066488534290937288843699518634223646587567231207898738792921875884043986308188625364563629393476488379795117463567315835284888499903915284936173858816903809681745553592139723255544260487445765167694225859516796999215224533168106530910734301613583740243837912644109153838388929797019273114854589366410583797919081040317508977264200115875309311319403447382698893456705485639261128863629653518264079841171350342470309198769631670010406135792147425737263049544591231603139198088004942721664611366194863760962773242123598687152949768285011232580701649026699432973011145713755223976639321465409056003691993841798781460955397888711193230880019017119973797093394499364265218403373650544843444679156913382734301408849333889646480178526912505073037744106499981043027961163759063112609585873055218241501835553121764566001207618851229491845705119711364226582869709714075790349620912977297061033678758852433698015542157060390427636380025758088192521211315718435244736699195312057662944418690749393713822189283620893923076411835176723145263496949452216387771259587385096585442151790147472131191144146238107089656983081626413815265661767254146632703297651691252861868718906099949172544370710392907847971784471530444777382040940123825355639989061512273696085609430994847611756161748523072351156351810533658256266247119930397318039344248070470662156786883332772784742127248543000449831476207079430862392723717201169721434386795272069898266242617581533019551884108556755245103194926962785774925235115295288637921728026145178371707047446304356892856670073332177172639792959887964506572845732502223748783523397077761981600790205765522546173519521319116536634363259388888507065451534492643680248221992304046200703880263398040274361034374961277708306299402358231267440438494665867598398740734637170286082065359128732361459408491178229649560648264894755014163819938620836673342779692806288824049149165023244783117707335116886611406805904404332765981642463044559332074621849122730585016990780310274719006620226617464563908082537828590567586784008770167996483185586014886229132311703126977523890012899523153188323098869358874850549491229297423178464466169016111900834339655383617214568813501672166220703988225274181613325824918462427902548792761768279823652557099865438599747836886065103709201896107961505010615786702331643217555412976754519208699442967136770879085172345786892024043459916541387035340038425936646193625467170190930242580453109696571263184090665733795340852759453339241361618738001095120633199989029279225805326069519631380543853627319866273972242729520890972853532973279388859864177365950084387303798008905497406567162950489495765792796019520472941293819232845585485156352915226390508468775667470267100350147183005115818533792246197522455849582498764447551506738480719115155788655132468214145360231367215377323001191648791710366611674090252542617034596917881038581789350690967736720613010790896398565359196564367686072126118234689622279575696517396893553118193727012569738954592457748174210153011740406040688103379603367283243000124759604674764952415577440070628426079893903829562621922417168032250147008910691317536880460646052558227869996356404558458738173723713101656227145130239121349926739969079737105543248467729365385774046941610171079209713596094149884893027235918398190931477570345489754401775840822630017220062773910864231711228582916703729865958841767446695873111714925175345490985941890890391207295898737612518123630508226403693280718133053498747715366770876034494422606557945406092172805991702739425577796540365661593587563109856739233673870525014975872873813916357919522469608998060651279540607984309307282476669030683704753301431600811790044897358368287389356784368597375668656150834213788637228756010544212953147117800421236605259199812592884790376423098240365426708845293395288399371141001946908371699346222479637388031374590998733421264178861079828699014694951557602123170872426973852071283596836226634440091848792699545981838661837022449799747397239751834299599209511366859120031665733595901747149652441722818979923963674519718746964796672945191395268844832664593056971110502383672877156726357300657326344096020807876180447408270235031272470610210952162535974959009263202378741843129633106073324409906189277735350823628818742312192132967357237378769974739039357198316319103924645890229288658151910000695783201323060307178648950485831365103934264476803938581631618729254759156537293940142526825859457795706721779160916429036585303051508090565186711610293929143753643196633888206969414638440020954961845580944111085897996807070665160260124542531105697720076718182579533452091810499241804982829301970780076600027580271425001081742025408394507929358745726943836588846868348357998762132226142786331527324769587690623657411956319873562111646285300250066382732230148334994924774867658950495809447962770776333629167559748458015005714683759652972624141712629512897806286093048078632843047509650838005393320095805561160594063080453763039791631578569941378507704907327894021778783604082363749586054089242714008399770372076914324879432754505236240671064183777959317568200004872833337022351761967209014347929181486925229157217143700958405855926621279477470517048898016988442637197503930268885116296786902458063506400243322048669401377955456629683623700605011967706496450976723960253418721660262760785203633732583110524992444119995591013665746759494517153947635017234650481058528185254558329655192750965110657427723239958467589426401706079157944112124304614148321396369930770703186495814415772337472196658632395075003922840403595876903633596295070159288459401628443062495200134757414782027697404228730707213423453390525069685456615897596580170460224974653387721935466655909103602384923661434885455424601772270585201705101337822326282308957775272352348271977799777326853685220266781130315940637483195847796634275537149682104866521888019369018331337091004822814652483637952733726645441092854686309764117888071667673058994580306861814420136150903185292695236239419636948936361621403937989168462859055917293569328452925088546181299800692548304125137435871741349242867978539010804996177767534829726802862655052190505450019913294233093221983912670380212823861666972325912388948103606826776775912488190222500893819931238407925916298470886720054881569793812688769458424534544684862370474309367213090648754333492372780405197416754496274202217218036872899646625801126439906092408260776721233204626826031212746114378157298965697505905923322529068512000337934578380615410598846783551933507736526475956090509803048268634089347016777644566411483365684510431678687638012902128148547412223693710991114942592843183998186926378357764574644780207540346984370642959714620504841485223069281595641559461365679692140811542002821679781415830183898626282890688105447368997103512024101512229635635879680908128787963868312872746238480635867324306195993091024826760219252643935202643549498291544089226105327283920079086309769891168515413087562319831004524400431167329199057980988408324124356316363145524148051752564161461320199204945743110563580661802561431624893466164402731217255895889945503526808189531893551080818692935470259000863101575693101531035861324097990134789374428597247810596828802167159573245673916604352644593863658807299554961753253696184096258391125146435943791235100120021525414862086360555969081963218886777349147477786373789291391313613231016101348003206601865371412431243023519848637170868923235235937770024570806079281520826273436006862181168587151304007676269277394175747772976066155907168006431875014578681086260949924580349667295118058125924303680516849341607701299082003002904447003715204561925325764419997141764390827210890081960089420932017393811920387892522056842742083615700509455506735916197665075854940678749049512758468301115496388789684035522241098858332368145577186237739523406921841825843905710575224502161371939179007894461204797341599730702507710729721855138531438827537924784485837559414382080572640345156134428221498794920177017375339877228045192422323857236420710056684027336552396197501546479249770680875197726343345271856028367712330660094710029889715539969235941542267351977083853292466132416226669726887591431056200420917273107960205752033590482028097489564468590395981452415192694790353921441837285324049526674032025816007386733291465256436778620903525633753461049751677091805543485457193811018467105925327351821224451917087553445030557895312846007653664308994929854828847733878682167763283164082296448124827856623940240120581733206679466304849018002240169408223202047189451784437355612389844918776380180280448478738700643354705316885319747833371258341909968474121806000989328108663776505381170892377645061399472304079907486846755201313004380613221335640065188167415529291238464080712106341873027937631461440331919594055568106162599784221130557982422610652776087908896297750283000266560014801737922705457553588099603474746186960482049626894365807892431405414100417948739441150652468530393353377309037740090258603421973914234129883292196301325034954921900241914935618361530971109822044939864241025753953098935145945575124528050322962516263794812757130266114029604799198313196401137146512184425566283134063969890625618933307877152277922833826934094469609278976343414845807852054176804272270176763787041045531807321734109499759465960700915081238718975456542397593961252093865278144836482129456108921439652508980931606623004564353209203069071401906073332338769499433569843620134329829581657443463222537382308560983106923850386349816953804525905211423331065156829649496610194567540827693380309791691783936292489784307505513792357007408552551424501914163423893594354742043571606252558488836719188643644959693207540206981759391424496880557236220049313570591803515232697327025316472359210020890303307382454748568973576424539434816058900614401658337251755162265999217193659845562960775196323999859135648046370923963615610680577795971256866964810234758870823583855685178810874327242803243758607782282981819485434438431280611216036033847122083370892742712949534063263282893238068584624609883619629558094785461638359325592608134984821767519052634673208352550339988535375895995864304737884299378733209366631141832401209682165759493048320776902461179910150644253392778639156689246028176641030411646544150698727086940388303701232601657958330158239717912239473123267765465794298964202554924515667474103981490072177401611437250564512889343386475557982557106846268131890450560139010433941673265219743846015897110214990115831534385082350976119054726398796722548636045869334385725172271389911787582677613613730908926823452495395032634050016263153394956898107588471989746894665199463815969732188123867296217403805694930012163923661710266331303478321077843416297700366502816631981755038373497809027748718438427022920108837489662710637607133541754294002096181210944290141985170782900939795978874357800952876647259404463932340643461830441629930096164195146235530732208159146810108033243569993440923487893446449208991940240473374562579761889101358281351193853592199435668567858166760701341233499629957715106677168729773704094613651366706500866186265798606494662806551086089904364501351556787142201148324440130033801585004355412412654984416819003698568952054276610439243475099601615442649081833559953836292951882046058303986893714495725357966404211767952572270754832504918720434199137850772135744181912374807601927936995871980920990182089677760922373767833091224639142005454923301771461616031018747291969868653669017211186800581830145285813209917719421131708614956162710238464555217413323877455088147553499911142090484831146889075432707687198144726000472649798088999259970574835089566048612743639133249792105211910774054583586043560524321699131810170870604169486684252726117474127401241120335270220729690487678953585339957674900265338926320528774270857305305599772173426046202192924891608531273984359461769550281932493727386517668975586467850832094698258543549259262507583607684697480571129116036135028002104901793492875720190575622689613023344878165732047396586795179700713913428023797626422711391261142165723124797797470865118082603591149050683815834526824454349914945413746618306269083897184786175258420502917515535288436499227111166271799633381363294533004549921937790827410030950406617831103193339082861079350095391503419863049039304262475975423254541529005213146617455028479773137040554642794904460962074996196439714523533673258943355612012747631615795048646044357494711925833059316248351862564955029013683591806904933258281687863551400271209081624105418936362181784177789686566596210115081871554313361134871704204980482295733456837407005978708240094461224937992409767107391340162538854454514917484070103913399639678540985043610862777081206590439992685166330401271411094846728305559194328095644098682078584134459378280440122414867683654120748074584092215825222742129889505437113062497444383180471266971896720503676252031731512481522820005215660559676678671872431529221911168991817180017215223727409096206603896575716401181408942617104540531131514198707019375833838340503569675756876592700485736206991251437811191884734385335818333881050981149114742257376711954607369637043057550969315964269391427825873880698906188813347277029789049416517029197920413844885275011740505616137774653555479746277827298103549882270776394431284786063978654387079047415256867597791540259920846396656728098637310675977840905623723839574168678769357073522341033980709267304436230764157967719209646893269743106602475512810405274170850624957176653397919983601553897376644499514695004122954646785856080569850224032421254360762814576827621371949170263950252846450239626685800301220910931956599949233381043183431351068909399855660841689416533182273403921410319943204202672945530304381721497907227598504357615591666068623513008374872642904855380846716934748232396402582543840958035647163464926882253267943734026978401480497461733282764759400927582912038675866216846134609554097668759714237847496925659837029836087117046365806855820925540525867859513703475854037174842204254867503998901508665626986160261837401776177360533753747717246881445937418815192773462428881113986109441650738040742482713306525620557337208430937579964148012848035943159018033323969113493730971567523636664144671610706305430296745912754432184053778522846379364300106855219139338584006615751053179876578109178852944233660514508247402719386216316777889609717215580882163214335404129272852634491833838744441802287725189824032233711466292147643484837046325106353584820494633205104316159376909169285101977047339083515507908491189059660368352387309510698402991826894554666582451004459358392226244363518313017621989259703728461447336703665632179291281674978425832674333321654597055575222635739469679770978287276993828650935184741570388713630570085802114484595774324408337674084247824543347977659933805744791345804742166013959601838172802952981625428487227927226880896893280861205751972079086731865294943304813231314307432292293024198726039054725318070579218568443152450834322331108282013550414632682098471515436442759973235668568101668235499342649396707170231115191393169120826082120090032885819938412880721766705602406689573140310529871857680099142940180774796885095941470610075128699688407775080923199764125084629608437115056791878978352371971207187966685063902296756747097113941015127902521355442757452645741268880321953295323652576655370475151126111645461686726395339809929068952119448050614835053121522237971536949906728168022064388032816273032311262616443432460926877863706665246126022402537560311161164398700358143383910858418380906716707642615486693357015818530357614765302216348632035170151114173464657735900800751491341318897338521054626907419024854623892744269112539207557429468155049196363503278663182527331470892548834442344504005315503446565969241760691344762517546053355765217939990958241022806656252929475780306472459424814861247684435449783066541527837513084139340761655297807555425383353704026158641384538676762039530090531849879192770805700251832608073373602228804187543074688916281141539408790198480321468689832035624828710355629785531551006310499271425666605520325944206011424119301416808918804222091701334337336413411251923497848635565924712584103426653215046868949555743520863366501915391394543325128517642889252297185738353768566565418598850267080150223300102814191511135044188186208339174019599987231510294218585752574206037378728623969506761690438139049611398678996843927719419157124275250976756542279983487955419771449681587838153829703934809915726545165973554757160904909493927045158799118706136716647764146573581535971654176053101237665915481939734026070516392122140647670168715077580628646508547396389807976479309335847708058875914034901878780024498196508106314261046757318524336879293561171672097891457339990715861919919529188340037105466723041227795746851446971596742286060102212271444597323997771964930615417911862904769065928337350890832471332840405097023592943583654853985010807264810251784165033394417278519353549843464003240001183808396271187607067137715110364565572672237096418660680058602789029296190154251214351350196457481598430192252443625572914446711246211951078998147903742093600418853520721792807738558581471277131424179596286026298154825976541129507403454311141737540901598344534649668902419200928996339146355765670445182517595722536939818288252917900862825195869596773555520802396745539940629800290142528123758603858989602526600774693328120492704969324081006851613280627014267990050201187264982429677742844302877608679977006289753387860815506573811470104658112235881855409730792575072691702757613092409364598715653496156859339540022492102641990168132849085798508522296584092842894032375595447842009192508023178616942880845515078254945754605166739937022614614163727587382905107102173114992850728947057217765317519196941098651327880607067594719778974826364089344545374248302717471038703807840097626261918947175407930214889768726731224448323356392090529538387050208016488290809540723367287944129241847529104304188997405310650866991050626931751532663838105244144953943439189511891605315269276339860140537813996853647770336857009818846382755182460397888558921304706385433462294902354838638700378880840596772002226032797262306446084535589228959646152767956305938342520921616555367756434249073900527864567647156773176468915587900224006371526824110928295327222122256244352884820006211541561930211796419924621586689913174683666860050917069949714916198043393120114482639691264178258119704567242028234339380394163516113258157834396942270579550441399466333688705192168627385363430636447067968835818983936389060757367701632442464348079382270611966050472376485300249568549290927748885523988600720529399488636870212466997821296095897811449833437750606450637219186672804269582439918437127655222207357888132829765376057163976386751923248675177829214712465614763635596881520976348046220024378070467985163118595192045152010945817384036146850140203271360065212514577675378338986040517306874063948148324236473277469473486441671666975633029203398951207071056694976281001736701419724493122808658537216464072034614801296520778299931793791120174248082314049068240391436402988012400496734967689957173132948863250638090248656404784204463725613003697105857363466998334487600915859909606272729576112768041260489271094550212568828693553436368779689882937611846704993607440850103818485562292018485593878710668859757863635910038141232294237265608701094110611589368675977547495579560771595511832245104102070205709067978931509087709078134243468874607280555388588302789292479733784242280791804668921444895009917632881604717086972483621879706943640411183174588862474618043541707374970228340350496345273954497682063938245748409219454504334720196759913423884814826749357163118851291062278910141802401135388082163405595167368148886025070607751510672297121562187639822271311314631488717138664867985167878445579228060355620162775925830010126554559633094064714429952717286951383308936516157594342098663024751417987267468211299986567803908940397954762305457100844699508011106171497028550224655120052447804308156361652988901935762989410541493290013983724383535710016497302847534048594061642188686549104796457704449195683272144701546252613668885395779802166834723312296298324685603777839866624656123299608117649367753248724074509755456131368476683941777837836348120560473631054891305608092976182087703454934299835413334034017444928271349495081110859857270803946594477369924562530835145610899969131482272038005429001464625132947839955744918042207117075216913384641920167307664544945347603227474287709046037017860609255758200145946699249177011683151570090032912409556110561055499520908934145221938067225050758303458912645803198844493195645066543636628247319791320518104844563067329809488857642821826153416260641784189563468899788607549999024432631361120764246276342838317400954818806075099649509650260462162960101307730191860500792427265246712850987635090759228711947588355056580787884354109824710485687025817259947856135382255153682470154606794158620070984353475767478611939897409410817067432133843369815997991222434922670880759233623847850443837174314666512102220226838371908007221053556521998017969266150825008972815718395581393117514587678342673417468532585803791808043852724576770792642983981746082461633907571903242689090062561434888260250853724144911898714745610366547626598978103481841318198828295619270171731939035859921138680181540810645271340845271541201460762451098430455519008984452506571000197613835692656001303543762303908070379463182566272465795654786624068395488350941150252532157389703163993936584005650182193416972374713562922615775982805048139651462768665641051494036262431708022588256982546941005035014101490363784668775137594821112857107843504380120071726765289110134449276673204577336911162110443322754280866493366729130730131625281644591343451839182744752697043259160696165913962773985974664192381307919855761304810049857168283730808589032789890387532785688885091579834553555383533914389213204462074823283539530459360565435345029386961823366856324775233397352657684968530827235333472556629606639146326947468374973389770051585567599704606918744188351132817296242053897202697238072225047222431064291348602292391425227817758206058151414089088469094423232609675083697946016274404848535292538761381687341942983068543483792212312145778460470658780822862532745164922236502659423093146174717619844343634483127984645147187111740441240596119257920179611478834484993059945120983890915655601720025202319266925045719317553407409928550821388377674472792737424296959736455558063022555421671394083751828416757459337801567533391124710552959735374812757901553040516809807919178311096268086836999749504931425553421273051409920508869215374193752361793561931822780120867500271718497598138198698461838606928945280561339465228237184522418488112605787976226093450613668479146746772705835894099768583225603127461820628682413020695815778432215621449478233935623936995622541409772302394062466028490684052418447743370622723270672017663778872864018790347823632996974100560086807233440330148783178035323522615645993702074478513041146589636472068015910665832439134483844629042853498769356756003016725422687906181619016024872100543852753906602743353434500929206563795900567815720033696109573893227213870653059712540117073498912637815373335762879246684423612400897038810397941022265728507182461511619048686358323343816069824262228239166062388734419866347365368010940580162776689915359317237386124489424106258247872676735697382689751902122846344200912178517082207411246276877532267647842837271013517081058961523146096788764131737054069557331498360376777617806132318708708653155269476335374311505955035885606769619051216708112984627131770356468354935159021701031506421419875178113732062800276054562794516827927105434769934739855285559731322676349450863419722517406477326629687529310500470024152153667317431868959692333273912400108789939629714643682271628089646253325470051731408042212960430786693711193087140295863797272011898417335748468909289929591876522528588956376763746730148485351155284836891190345033287158948538485263809577176668656520669816696751554456264280190932481370074300107060012528187028825817315755242548554895305400855825892235126805051569813698476011649709895840182851725408851123053459398776630988953516736366658611117728697770921584526574272430853723614044465205075798959988556766280343903746155274772123699788518169368113824560174388348582310921535527376453865838936426228465154330519924050120981418054757751813766712523944907634486806445966424684713548743550782125959421480926274419976764577957780131425217966035510083488836560780013924073793550260626295921195182293391511682854639278345380168342038534213343137827914177940306279496673006809496293948887417245045016094064889449683277486763933758525914616991891697997590068154437764961286095117605526262477591933308736778273031742844891690683515643051371795379981302494911136764776669010766929244603865580049730766073981915091558464165287345083303005656518913516842155793718528209894096807831611125206912879196295895006577483593586418714251271263999676056048584794690450541310761086104448268150549008272322609151323781202196714157764286501306971780167766735535205237419650289601680447806528149459166607034574098482767632837387028879808892412769258085263579873131247016130029013592730042712776252989878338763928514432609030621431420435430120024956260303983412294356452847191059485506695326811179736093397875570159257575254859097850047445456231942737963271557449169087918378482718202438491717836348280623435304966369384729193767125546265545752669132894135812651993255686145642142215157936064314714310105968293438545268704633093273321233582863528188194737342099107405623170041752405317097544020489290422501216035007999201524913205711964248171897044960034464407510204706033306902538670364753244918545762213903877046682267178833663546919938240166098393870830636069085844185120787969508535110781688865339871463501524989955618067655919634602662786111618737581397562089925989413295272929799699602064759029855552623549886988006759373026175056666150836899190458152053971733601009225716413256625185655856582209524514383268824011430797243670672676347915310457566148595602347168676355700634197569054457840371600978941856002961403875963852376678986895704805214216362661555556500365681883214977348805425365683032483080233345945510400609502026545128334737305497944130304908966546761763643471663249042563419302992691711439273539537936753942352317906270328348142665884687249474085732414963393232027637070960517725071941149900223814850440267876743657862217483120849724133622689872215178019715623921763858116898980786254202482572208389911279576113143634327397223206992359806210844818646002285465191147677582615450211858985007833996130971567027210399608981451176748755805345948078669900251653948109608514513930004677140021665502643172283494582492082967692123800305584577731468493332726024481988058552366629129861949639998968027686842955244174285833875489874014973266256751412505433850503341124141055806917775671821172677186930863044819129738251068433870024618920588178215578710018849214028888932764760645366868128307482916641746608402737538577491222953626700689364613185474662447505573334377830055432518041126629935702488255195264813074110107785691618222982316882415318719430576035071978649865489888509187566694699094760644450633822325093631626865144438930057115609770991635576774040107490739031641255526558605088068099490879385399839194891849610128475865505973506126721227649922640231023138643424476245391578352977741021991646351562474338307619143788326194892620417394971690282801304273514952231012057427800875037694487155337836593715325253551309831737968015221233689874662261805869081509028660762519997503803972742031716713777514842643105598703061462288979495620915934816433862377459261604220404500237744865367601977245483690092362969508881627758427097366997402738889453205344828560114168668453779101145783919173086984990190975425606550032883075354442295954703726866216304505305036207513632864603239405900951422752555989747245082485126545583521904288129720770619493317992110266524647590518868840617119094556845811003861518999102962926325362711354078858358719351510612346979618383561564197289314621602601894941708336424019569887286198433287703234953819588673337764060256028972093267266670755366021360252721380310035481011336141838081843150476544996068262335484845553331945443350123847016965651537740382336166437526921287350987800291270141500219121452556797865936958945132071140811819192727281393899939469348511457285965045343300299192586321134259234623900489037336218168224313605677995657833642511791906808382014607608001944816054777816311567014294993845920103126494137577780431561083140615944226774689927492320026923329165702056634550570468711534510069827160808876662920481164633051663728902283955805056154716746299080555753750550041469799023009949568741797589598522625938595072261964274126108767216323039980544841839019441644605557118334568249610037260090255591486677261419195323392447977591986493873534908618554576139971059926584590237945001020090389663945118741325645122580357166162277684724320801461167002206756976321888891142810349986243361735814381073480919833118567278477026748027613914906424796962890054523849475560977063746080597627075816257078598810484827454905330050923609712279041434300723107262890760855010916371354800678588537621536790889863515211549504900038132396215076556636903682599640255828329338376222398717641768610545638123408152152990462419586241214143546609228178862469206899508144877394646945839927076413419794840996416717069378434787563467407307170900201978730084051242989498928580952422761077360073162011295134096560514516326644305070930317840381526691353471402854281155762948222561205549353827067195627533305501179946291063180581828295158449648388677152731774151606483542469451707390506135232841784836843793575158385015852925793841124912069669294476685085916319099563543898433746202142934365633815165970690790125283105500528786084252449038943533627332640270249120454226643582849426364566388066325977805065077130131087388399236820368449940564827310033168015911973926197350182287774928588882595327027310860058540030878725131153534614091632027298699248391032695370912401454185206629715849234764802054031566070447066328611004893782323702984045426298234234382995360358440628280524580126567468492324800098601118125037780863458135406018549985214619048377192483943767146789755069079911330031729764715488133651392203942220285339903072176956944112421454883352327520037780730581266353115158206438014304529581938723971749020669417359109991725239224498540175297282107480000445502105847115907331769900988024321738310663548186512516620706063026366124960276191164489949042576592362664122579556342338976711182812225828767217108601497043998819457585171465442929585350399416799313635883909510806684295910424232226360153909073934132078916140340185239092354251150998274339354140645893494206364065216227793458004722739749386404675092980100256020253197571657676679096235047279542315622634848962646964844398415944750595898476113267660201753032835521569961915038336584104143074525299037947307580876173833491507590050469714868290869255292354432612596000243095955487713752942928631478705268938240890413418730569834789549289214904475177041359939774783814734474831031511210595605229225822172520641813555924598106923121683818471972973503437639309337249475916602471208787223523983092043857387978504526824954831236612537345131750102562426898268035104695608132292710096940346126892541546978175238978035009119933228044319531044700996308352331488079475196181080626189231692250343718738797767453364502176672743300771869432698240653970433054315662648572970702365783972201053956168060796871497168258519379760902981086313933213752727139967385998101179749277857837869886866206394892427972788568324278842575624800121799016910680209351697895619575464401306707966111857308439943580717729116258348797326733819565299234965091399070688029752287517914800413723678476149667032187299887468396027955687618001350394540615117944347272999290004731231188718155212189483483731365465426545861600429486813751474241297774970876325321092857813689355158150122441033387411119569679709200350376870367964407814598955543807212245008170519806365314084121659421258485018140460438234942040367599653281090937631660533118798133567989990602132341844263153858581652487297616624235439505510284030660315280500543266747659051154643809852502362875437374476639814032209464604536444888136298994418973486476186611239975214621984379156934065220741865267212607837007951052163876285934295035738398228331261982410978856824627571441575966283696230158726232293494104357484120311636611836123846628517429946621482498576261172564516849795360207516185139900996295094092877367388447215590468021216992257378475559126203660448266503452775045773888866261919263008564899408109995609278268830529165110626070214978461339172941156561039950263863243203961963208816738587742149869829275338960345519923374434443235960908646141210788612945388970264473215941875031012595060429899698821687032915190539659050834559076816979805192390143485066597105804019836090203014507892569507243847963081142071184234982099423958033224853044338800322289549299379023039618487685174902894852290726397020567927633482862095075058488003053153431130427070231395070096336912755346358079085631803993512912266402739930793145969699613956147224648072093543479858513197454516885884692134385309854354193860294594981140537672337199538121228080085357282062976521350550697555820907361796901171130041281767968870977528300475141014790782788169238277122692756958035526462545646504077022256066123441079186451921284028732314717063392953237152732342150162853002155821314325353052114595486444198689049837966131877512207657945425356996932369460546642217192963711386903499959646997081262435097295287003637287912813781090729700207434783858177132200805081040143185190839185248924646942582243344282300246115919592473143787038166398463280161502430038762268691675992201741696332356276507392565463080090123099141696423969225851194009436473862280772384814405767555238041577669033406427275418483156386391364424391436163345347604747176202136422066726746741423636338897865651326459957574101773279349761161103252114320582801431674679510809675277844640126725824389623801265938865641092087200674701745661575596980361566568650870833116100768241521349639539731973937598455285098803158969585800585807509832276610104571262024369243698314214483463501566076304855392430781721023008556999254293886520022817868658569349747664335237890549420230560489082296006426280897656333567646207864646771105763831382725030039981007999734894233481138903367092397686222514937698158207794505512941261952558087816411770347551586433503206114040184196397688958050752880308664499348103194295326687472459653890734155592757589115046894002336893678117842503550574541634352666102824553236702457817132354748703014869938517117132832985946957291678812861923152685979682444070857242190712602518473513735495145953969046075735181860166600366295292751921655632217291194095977072766666834672292975086555690648361545098625939406615477545854379959162055823664033729648598329992389824915453866896699177497979507431121561755174623035949697171562698358740514210902604975043953114724112535386770372716074014272639504578993704410870771958114745433533054675576710006242685086614149665416258645805844150882190849013477693846220299108797339608868295880035852531114265845309301144354834511726527980446979621118239834234331577612853739528670362708187976580445561979825744584641512948982327385158373673700486554015097474310191468124096071274161219604723783142236856891491580964002192234915234302086050603251067786756400941031475391954973972085415578138759512805726341948813419069696093479535703496787356116422886645021345754688622286963343297227967048751754326166734160718833734251740969818298533130173940636680488036205793434728722409795190557408355316396226524769455049421423169995096606544067765515127435896297159046744189004045782834282228176249518399969241283633354705328576873805253266692566611232163222105446456292569556123732902416950552099876065468025346370951432121287429245594332500383145233012588685315695611072771930450269771843331543078819047073028702094323249034476750806611817883992766642583738208168332776180613568948741508415322968137634617839350546651774617061389930736476384389220227352555275960987250654954225721535385479873454740127667760278951654850375743483940895305051114297715288672255010272963237932607556008072435079793340573411855464950445372343515622942274404087476929242379578574406845434024132376199603647964555859072120872144393634121037550958593116963264320019144702499354672495174364090790289485327740450158632501462931436509297948820867012914252589128145215631205940631934967627212478623265646114101233006847315101435580324229024113104210209078958977935813489666172585537222276861272404842269134804006044718331491422301636277060078012881782489327206364085724244637449638594910083804791961495848237614043370221311656445924295761759605199999323600798458059609423568071541716259155722245109605646812773100229321577273140426750112350813243460230222053796655319046082208033257139895005127445969786503470954973321831917477034548639219269924422430311189817523352141116253599781113723676651378821839000311129632860071489127179833426074266137791312256183953817841075037734857857931939095883991887366834918209428678056115927543050267079829514914932978570135409340932573297196541462191858992218202173603897486216770376401579358671525583305818229773506561360047277713576831229150358220945633739256778250116593379161017498516132684998757965803348340683033679306931502310563148623246736217552750101187894641028662591727422768273803014402329375628016762546536129015718812354360982039512593650141223681146246527282143946462489739961615339778458537622638806048793285602793898073469278080774761382819198642787876054823291287015997000283398288454066600236944560773479573165240366120367968339551850667316613290981963267732544030670299350546748729581495954366421146486075823010957844121841266082902326606931931889640745807380057842900113709879691524531041181406800083135255489508871802968556519240720508008771857671859657723768789037826603016818628566611982842468739392290040255927206767481651905466023893196419701542456552324493939419165254430005391667210430087296262732362608320485988213554616963479848855159670649320690618099513848825227741844577823688924038668072401393582798100082012897100577578192065407859964861639666322382415018455349777821401301143964195100193285853712071159415775910070054421047363551736746931538552825532426684320052193071108378322016651061714558298336276417120334121480019509485786029393903949271219658116864821120716879859647947817793247484927299995765274031864730751884526960928527521662532225937944193090540745230276159524278552489122293877732843456600334726827972980237173299079576887309333548330500773305999882512049478203165869833643412683051561090819597391463046785862608408854267007421372500511475201627862775985875475180656235125303702856225041363708604506161586916439118188053447220994938194777731948832729800913953024455630280259858153046847765802660958685440908224258914089372987934291332150293096947347523933935246988713296123700179560510749828424954452490278023190348910534343435983942855375552506141106055206968558791289149609157116691552891811624491595389295467199643227294397352293359544053748756411826033073231324798905830419714810640796081610590266888905792218813401298043250040258024730891527652393602061679780403875460719647255954474686052906622344001451965340503499305687700983277850880886706791404392555702925667751030737156525670421012085316187569960939701834994189154299725324612082960145772254931583293284864488177720353582392066466706538709047578488486404794106031720263352315748493004978519388799031983624007992478614949172001684129742918453874298555522819978829912670022403178103227065334110992487062697630882395942806643394078006682448966007327666213933995745369530986526612379622026489369527265586573966516955722248550774556919572254102552184060600321529741664530165909941809084891129805095810845363640291449796527767434162018739382164788509138069915599239788169192508082618133986745673508448434783340970514441153202070404229462725608755769053157241964147341911537429151082286737658483537224103805447173759824657177860412237621068288376967015678962790643336386275642093379152723350140183383121301456684528122056170202366139088634521395629971505934639794566686097509944067310547760172336077395250296725521310298655668636277954015021427466555812509300304398383598672209792048300541065137200165364228938143170912331326852245973559888498689478456545461164713741260734810479973401446029028383054155553445670747944439997110436202649537025830886600786050866869550824008072880547534358726197247656397890834060326699822617635303869173853696154199213410288231107989073983599463213858553666721101599436311842977265776890720145754443366476908636960916321826057504558173133170523164202342642625382353580497452946888143820386064116404667387182710988795057845571417001197916643744852493847776986176558691752638108485926178852547333155155917600224530970055431373687966864302379799641696809924805835081445961035800410846040338431058752957645593590123877927426195385277783287407577000406406736992436180441297255873107645418742552045908783680219601487778763210517812925286015487902055583193189666742414151440876431319193263226527448819805124195168032363313494408995816425332713878299897470903072182496055415962335949048791497561620590125004688719918452056476535577507643779116803145706193404778530179628057863346870383864989192188451080626069902228782342433191133958935281587117008069566902787241342319380690682226515236418359089641245664931975983500048113217134228206457395747528740960338067408862650114744744106086321575663097229971749547114171083877572793939804897522134060985765707549525493999919090506212439799553120611477900317130652528425630493157737098860905069365457139152880199154600345508692060163693674682939502592869451148080696307707435421899088330503931910570267806458765190242358219731214634960918150852817009755055100979382618356236822415424019047300804319793907470161297702529823645780744251699786542781238702377031485482524573277740119050341452457996406886096608774560088246612531069876592225735649917614515680834685090055185136670802045288386138600313562721453013899567480426140800005231448466617709731382918312144700460927981687675890100691733640440526563440029518834451734175056996113933520716078590448787480447998334877805824699717377412549665214758690059511043261254022457410523009684127989121966899084520610040583274966127258290548296042065306151256473668563214389035481612322438503527878575565077911825612852635992830144155214871917093378284890420120947927160003654011362717448884917025234059299080624470579349944154021203053777757345628300441733524267700293172709298552585821276445197306613906806064074330578555876640093075979519179897032330610434505612806556693442564753717957673995333196044701705426184775067058997405124529961263139574319140001180700943068708695359608507525633794319584807065168534550833109351393780076320574445565457144639526377211106078810007248776740463091038393088178271601848489568095154382071725180657947663902576337513435320927199062863341623424776952443179774921034826785854358572828166677731360896124745295905496511175459310073310740497007410087034200722586732815096878739319710051166322942698479340521264487336891553938931539938600492954685539059570995189258084000856236956254654167542911956786271440005756083720566714047377724990375196615787731781201777297136917457315388571807186422898784722292815930179450946252815141820982225865175310777991166800235881159942450167821708952356863966516106327982944985572393469320669228688380705551556725780563946450150413645656490568602503808658787454114493891742975480396496560311444218873282160131792179639268371664119883859984135356924078965231802638418140984597275729593246392179415265952571895000949115851077220927318775626918319152033277920387038796723290194923681527606332599940350094048627669856907475925034857290976302306789392894321372730623518562290174694715555865214414973711050374219252479685362021419377160052453922427457158517858391431247875146866619114661751133866281337207476461032367491337771565931123050868112005956516457194701161301227572926192866190822351266699547706360967909419361120450673374949618065637425400230459145046061553937256424173526560553415278248392407689534411612194882489625570629981295258707789364702762300790080717285196239354573407942514690344639842769103259223835762196538097249056242405938020587565578039846889860915452012143769477620606163763725888550542553318094112950968078161793872570344635337547741010225403490183950249471253547181453723252704778415615311485991431948427700291865432258615586882378129995779472435224738485829527998817588250842025813435343925847198679029213757808602969089318111271767918590626278599345354539850751136202972741397975825074905049616542693949224467155159548248788895393936579205801287483262371381369761144032796289253833244541075444016116180671522151143490522445697992647966532504749751012695020417151763533264541504749903702968856462311761321315752658373777899712079451594246829447224074169986691902200606405897305242608903475074172193370908916089542239437844876555791922153431568767496502373352024005039209171772087512776341575136982407791096008439013564823860155320346879836584784413522892546857492613681831174752025400201734313457260212744048683775190447813932788954662193750197979372963942839724504796986065314916724339437804749210423099126627195301186238156909643118724116124319550380790462355536237098450557160249221566729887352122019440607785865130515798698332695660480107564807896572639032086711247294695441632307410052816119278374863002957087604919674280052830717811644794778954520226959821118033262875614736835156918160962962007271929480697550327516181607488141203877319278619834254363685848854955840027587973300217872850776895078084206450823340501777699514865293136387914851185725681647658055560651597847777698911764536571636453099883943534218554052399422897481647390507469557435614313484145276025418885237571445460824601529120095105822146173372942882716995026561836620505970217946416316566865403740441760114940690452664568018630386891008737540291123936552631898666470284575439033396494319822924729825954666012750867787629962930396677687217895528563487823249376015350790126778036491713219816663176421500031037239738410505926757063765499336283049540930902266068939175067906698686519545711711102879002096247822697011257360233290819168243665733134398804563804918757833085467732449845843668033716147611412269271707772530562090292613386732684215730425073324831175733223570540820729985627133897173981943417090803768803058128521633416863910870297177701535939131185628324424292072950874995432509545943849196273149771263609273884444227446890821285999287672557305218458348118410081397540953932665682682836251087831681374461181261970926804976378052073716754235452332203460889664460011878449584861794284235548918621091909120408648678301970717183019510524148561751037002182971374997844885868727167917585364278625648123420536504211802255894302831314458452076949084532803206905939245543268836139522295600837317289934430078500771587511550437142664338366385631301796462893987352878065485927058340910137373709363664063907332223612465236117993892422885517561937404088723008662261798094546596805985347489809891532260461826888447192903679197950030416709639247511112308550504979204893437981425372509019892277946989477405651679568849734312115362459822508703665896272207036675338233113991712651059761679442014531865070829690327196092382653558349829210153279674511541014525528318810647662337374812531765304585569798264129917829222507912768834240117045728285072230403549713574737281715520450139262961811820129468992327674308059215205507843720096783972816074318513578489213333323442857724738088878959656677008910108970935346386202886324572067143679762158482152675050840548033104146472953357570753018313643198434472592259020814619283571136536793698964247489771801417760306569499978660888821583807739736082660994278823080149931043012306135339691885039734311976512657584862739987809524682285782281158051067063404284625748267420217150340715132747828966654952226909860944579303193639133347836697157722099757738088678273724744411313585403783258530555625106446151231586628402420814840208193692298298569791406831056940762820467226393692375491179757023006998744063708485135353346203084456733540396798160991096046308806803967259897054086256603154230273848592802240220583035357240604723059587486049633799921928411964480578247524271361364939834947308394699864190425968964891014103553726466647997773491056435766295321151008640296845403524272566600573564184753535385882640261777673841814126772959388247442139209492439945501208589147448675330292988551896931517397661964604566898822697148455668622309165746350611012355444860499697416879327259204786954253914362875942494888753191660144670074215704683064562198404834808099993204125810385485124140630979638618009842970653246350605729028998035447177385259112464585765811265845311202536747484492949753722153388645020362105156962933740650247222273209101937686541499826143265601254687943204524431576009854965249255419803271804938426535426849999949961467379459784397927942259564156945606040757467856153143790110838659114227114775488081294662783812874836557946397196335689105498255496386021327704407956381176849791601137982814750160619801987922732058239974425746909552125781841984146812324238545341857226370758356654861325580862298803545610951769392215114254876526501944196127783390756128689283416320572691803866790736982972706789591734634996695415959836521766869796369981647377002890776582856846593494398029388775897729516895038255421098088102760296560261829010920363225609939187208183470967599191354633471823215689467301427835428522188526880007683710689763502012655358110480651402918309347948899097783598157979006571874207507268020745414622945239911048256318760909050180008824416922142151804414839785942651970401976917656225613832622998730192583903684565610971269249050235370730881387545062233189369041345073295558629872379704187769124898532065349512521365307221980874664553382208431614627521923824293163783913012663534168465221920153898120814276535304506100591314200228238706048628955861941819070637810732281801152878757350384273481833902923306759262233306894603012799020896271990863273781751050006960650061715973298878955680185821252069644570899979385603522097119471874324006134826177194395124700123336466726313627063586698039997369216494077605343886139020117678346543726796431096097234650857600600323763596191945485717074575017856261171524247094353086145634064290022873293985967453201926341344445772081916180525683857288564800313734468321676276677058657204936661445149443956353306683260490544033167506198068724006275125783455092926548972908598893769106657897817127953484183505201578106106342205504395615278938719732834661512248059911918809434479973251238066116149658229891926007178456331226165108713730023829162618233384072359994392080201698188328563636611510684837753481476890708079540508294551369258041016940924954910870292485974498138046245434843664032553106208308346100301243712913471535323789088005073639091879163409417030488937030997174987474488312069640869960887410696788916395720946989996705056235337411249548104245426014412669711701418433382821506906687768965208075399881962012868682519195346490872082065360779146534669786852341749213676567025329531080291724764672775883185232806112509824530197851842316552010146510596562936558473580454272043012808506349125688795087763499134167216932659275282569405419741293917143533932100826174895348386039389191390844397888355742308581410626348461828645899930584571353967512013357386708255703005369211383494347775948822444794594588068665677784815581483978708354728259192408849632547784697078971470183959296738125345479094159047070375994841266673065550326736237081009409256924200396599948443432664153921770287313815223527693351933201598538300461127776348385723608942268121434883838351979054867159688047835161894198263438236966989272360859098587844074263917194397763941779614248139767438279342903560082847845394777453153946602421259252283547988563562127387673198950103892668432610418494154496664983927306707286172390458050056776100462656533792490810106419483009637258111731442069431850416415940383332188203198325771128709935772066386877181098842971044365132912510033431009900489852537199263491870014200203718936965058452517929681700745149222479692109183027441694984332308396141653784645302975608146413904095107741610731787491649960794075648157927636057720980661185387093942026346035680887557573750034689465101891112728577658379844903995845354368164532220190515315764001794197752871960932122509933351814999077166623493312681445321442321020208362887735679661432523156500654012346489056627966778815250171809330933057242184023327301790835736031333204299372778635970320702131490230258184386051780589254876750529036020545996861203008403721394731447823755015508997528889313122452051041258436012249011279878983208919833977781057718487183815015479304831402015603217969315267579870639833728740935924303231968354833603984259560492114827198832541246357639612323091447430091781192042891346303946777054729589244308041845456026598699078655783413715146396543472475539480768072778828244100503913759741087116527030394137825001073600185295612751261250338610487024839248382624965015196630687837290484848613410808332953074352466458244659825726134091773011153923610365985484537792733922533051727177924108635650964606121298981009800449190207511415590703732905841850128988485310472083156249420512440908126231949946942048608560019467581938379171767764072691526377123303244894589174565637538379953865619335742617809652822729184979856093065211873375833490360786091705239508031077976389550315817523921680886209682465041693987626777416591729132588728832618798478826530016191627822635693716640508618659957157686034198693721321965914172315748284780556373252338868488919951734735020143572815979954330281618015837722123983939872061560572094777036854156988666520903197242447105495638870569692261429587306299502393963386471008026638101758873392613197146033177324178384068916726399426412476109155851809963246318629604417584239147125898951407824674837825966911987805570877548627944584622593373569633169122645388050293652249766459309130907369382482409904027717178189608873161426219129323311978918247557520099238902190647639504355662133318795144820765016573344638004354372945329642910459758249507323869535013212001187415850810799798576735873462662826470057560421534675231462539646723448889557969133631347575732180158871713646359042935554629581123498056567475708576095002795024151261005511310600882245193609050786182818585885625813361301330355949740852015513273700227845090238580128319376879783420507436306118478242321445400589120085935363510127829982434409849577974385199740296999357267356059399409828197609657693291071629134199789343771364019478193721210352340015856822620159215354444831550966045791120009762240035415831726293790425048430459636889403523212606146011199396646047853985200899806354446246396802377541264366794862745542091468489367223068690105422113767185444094149624082402628830878270899719628087613225852156910469547878026209368937912025569673553378464063403886218892806499725122485118527364311755599249504477485805490290505891573879129247357719487773345359420385921156175460507913442218123421346215851239033990799987557499567424948199136785161046041716769946199482383785512438733383096437140893547141824945218490418206809794129637296320141824685398313551718022012962905209919788532786090322152784202513909201932261053638469753021577466074077175701025916344438192728933649929715941948651901246265343016237952234678177648550574391873380310790534076068003759952192615881958122808478553483058995859213354799743564895834346331722615131154487499927998764636000510577524155323268057265831486244188445309813269771428202157514155534988170308467462519374439522421790413558507127811481904882462044016712291210270866585109561557144168891158955035462921375430863993982322803915414936699237864118032293526056862261082311807256409727665995889760643847887413712451456922476445965814245196031735041222594070337012520766678340033122650148838838754380234849895567431716836049561031763804575319741958840950814477376911138775979290016515781796741268691172230166446389882658768268517674626611693047585300094408093077575020131087850121988518721064444629021987586998252778873532574571524803550889653074323723189021355870394823339187758997449438651408818367598238503080782521168896684025237132453569661674487871602223400630739812300721394693420153414767718021381052347708782019903548839818802026296913313147804519827734384909645659267437202806265259788176037106449868928557296615976348773198280365535406465644763190571001407772696825487828701189518412852976168665209674985945407764984515408842661182683585379341057732898226820438847596522588130842624047331191028545266562683295078047876353650369202975929130271392346095906068810039195866324693566257861596400813389559899804605196584457808650358719720478239998022839964623175853306554508356946261312115283349758921634885113836991801359787805759078248674446026926524468074222641312611022213991714502845269756179561469478581502845046885194873930935448482659475904919427103985501783316393875530303235564251761790778584393552197194122103340352606189666777699914681189276924442585955598881479366976419641588079854514631132801748591047683801321180709447097904561540995713897831321087923801411500912175393354611718737305161742943285988815071781583457415197699159878326309274570642765371865400777675930037404891110901365555408058751552638968049473504819422438438607913821171621104817819804968607319602303286111603407090893009388733447952870615237068419495207907850293787561452260133092152192029834697002704681114685347664054817062096878203954584430046471613525661646221906046466526701935291814290710274723964062001255667786588229702716372227881251848036264197524503270457728408795774319761878048143140895099457183910637117809674917050140379650224364688700362633730154034346284252676225934671231269964621402483612518696227343794558058893819451402410860231704414454718957721292823384858117058833582510097626532610953390192586326647512830955741678173078893087809342285369825165049576327728109766212381377236865813964635510779913057789686893793339861192078611213778217326188270228201142229923984894660907291500743424448508643232324059636591009726672744127219480140235133047741404871483816397930821074031176230426144618186327370390666504107131596013809441910360935279939466526214430485826582414971182277098242024086504631970605147243670133318110879695463206312860657625350168153909940336130444204513976622271661636045070924200204050013601983583620203404683581900668600355614881404987552688046914409536330434554627133937343897247905057486878835957655059020467230259347524000650589991260580881555263225201661626809017644423942730350210834893490711999037745974887984529564205441595210870750405557571467553022452957543599825191078100813689391306802686269507154740164073833029903114857858677012684837448750802897626651241322738103814648929977294512623561012867645684932870465959600356213730678879576585835440694235986517684957883926146269140812428608616242296828755709138988123566719486684100792263002131201139918367484598649746501196187642422308803082038329535517109513172207022599378444133407490474390961759278149902487092016475391647216459563507205420452175071164598548641468980656461164104265887842793207138360438381315382147222160208215998427855628623541289523585453878429234810984419362605931874873609975811419763892148272718729081297031925497983573844987896551142838516983252429600793441223761770923086114017478981007195799684516845522172581233800521264921410831372231296542366156192294719723011072904279863021393606919822815739229201784294377074423081821139252877646758827211302712541173798260970675316562342472597281763618838717175660984559123251615002786752074464094704798067708340346917614595184796523464641754402375115820976133834351920307927790951397403770826184824243914190532903406285495362768094134186803888711637054363389132139284518776059092902378144145108366173659987542917015265867227698639825952098598058313613993749597769820389856651943381880489498720956237692544733293776790866780429075706040962524354515993659502488118774714268134218259269246222562883553047314953023380528669870241239664068336146007075887880296048328965383154847389804105317811816135859608035853719030721666094885416429122023225009442784001111520562181460699433517658409122226563823267596187234434161157539555030027126321417828187667603710753171771608642186907349699488274741311600383638840877414134313559799486238136949625908135295513084905244446727424594257049638969927958364987554922608892549119568362525930647718839455491894798149088695037641821858913463731207286001157819506128538985440743403345854163486520970839136383340549207688561868831820191054005450736985768561682748547386794972544391826869942257286423649173985322508035612273129150271890429905661451264767959313402810570477419573019609071280403508429473440852200031956396655565897547332473810620727693584824670465248760838377023507884422457715560257291504335173684564113302943251732442164558771278749905896870855509306264668109697473933702509724218427916264462749652698107168746299853930258862945519866302393395488672997151361662889843036158835592189967755214262106986173919150458226506630654995084403979076281743660245235396790195477769302296996532240796119155727767108903612615863113914879292186769067502112134710773250629648797365175750852578086638494594909545908094800252941702237926447378519866377674992910175151248823890174574506688542257531417360973366674668726538171778577048768821422580748031530760742661265322400046246742670719974929490299276203017782326408839908796538373682551533190780935123976769335247028339412369690392717018567178749127521054212872604443109119560610541786215076167425740402833157712893476302184787303942138533435681149951590848239058868348777880364483368582340851536240370026136253487193526644229039476987698345009072150257252147618496305808270219670480723329981797754345534382916966400445156176172133231658199935843488486383909172907423712294823264133208159993711343537984016882392214373255182226933290690953681730753464610601300297483791347383203152728487661556531036268761983234191109962927070873502106707531706320344532805409389654768329140121255385055018939539328812891124401481481989508908845040374777923771640961151765392685971306464099643445317440500572486813694932115917533569647430935928809863369978482072756097948200295710368039263588231795863455943206089490039471167550431856151179975715184508480127574973725483101725356316238888122049732773478487040078656122650653807296487098475505874888703615416728738982980132162923200846861409949565531859952429153626738668412646120080242754282995835506418985056322556550247176157046104673625179883162603883235677309554949393358349832129267118258745946575159997696279717347522959003684002207661606729399126850027030103073809806242776200037634654958680372099207768198383749658654124894804982883050865159492514056828184627227807395789635162759377678029139423281225430586486600063232356324496812465662973367238848390358627646886313768143704179302538395346475273883531467923441092221458376657491740226736912405286781377460423784782544049786644353325817117001850820933251731953452562179600341816149521348340747761352144320872174455774040282706320087610878266892109036458787908619792113873866236177580527360813358696304728933761580122789158827820065261397766946645038679557139784450682707377427535924374363482623086710360510860192429275554636264137669487275360952532114277102073963717252574175073225982132784646932689111966451965445915941177372462045658504342684224977377724676792022894273578323772251849573847202840953193354511963471309403859903407476744173918529198056343841346302172110988419188768850539216752123799261813750903104613465800471427561129351768302704902681241905764986601494716162850556233312804853224752539572122775174586097998726555478267574750686552421792677217368655154590485510443183477081026952501850187072977759978872081052152967608761274932216597414201722564285281288709743647581117768748309364142444525458571486391872505098678626154800579948029601899565954734280003007007417764457310806350820875287945619957423644597240466506409421936610414623002784033003226026837554252671740477333530152311558105360342104434375153215778804983339262877104032446492641754766830856755737217942590900359974452194427706218545796381276478594796279622326635427571516904141101681744186609732913885363163493296775595811357373152869429091360492566730621720496448301737047445573187672383582780604681670977206912455666704172412946796210720165738300407825200900948160958561484508525313866257057238079046198486797261440730421799660499818436921213547321041962114916981974135389747829604217134746536587829722586371974736323528601490098664158852194675559961043485699616429300226960892753753783251755348405724267127249805640715413788241886408019724078916205217193238131836405517590770486573952930117975280380728201792182569197024234311022184407122639765748950927988459078388116556121567510763451439580158319546472754578471272092495372469073962824827088092419669376999502682586219215043520670659707431937601658728766385366291206364464005124502639496589727983047002848346826921830788214507980413957571838442683648973318100910654328210744688509862883296369012454350221221101394670492670583498006889517858433145873996561978092044696179408172670023817788868365949916842030879693516352466489007242769877872788639407259306625684790547927394689837240246999044211669490652197291696059398226085872179555071670113242453948823121063410652691872066527030556745708555371523885638316743085536837702121868482578961843920811626510764326357701967562130006401092481660183186169856184166312125491089785895459651517061762060848227378997373074438514021798153368444254233131376352495257621764638366958793079515384292672147769560522264483823354338368044559238075043597253751991830043490807453852488575225260827135737253465876541533390034246881940533885884276341471287345777987161564785434559617023740299294735487885995959548264676244530861550087112754853542929452088530718376855032114678461236831548528519742694276688233875805846462893754919151562865851777729268551846658835195727865657829216083266131679296354423155952447721528869670796176466945085714048717115446997685029187625750085175235480756231734512495754715242520168828674811657746437118651238389050650315581634078928911868637660025496263746308383850186661155764144802435190701235091254936927563935053808417860055605637735647334777520702666109317109741646910032140796588993617827626336998691073534297182586347317292299255554987710771671815797630904856896213612152671622454163771212997574616570920612290329377335253969499950999011982091774486521029929201909466708992020253747587253945019476109903004938794423394124537572838402159297167570492170802769599849698859013420347466729531059455951420364020529536737573873629157394422162368010947525233174995987136291038289079887797625601096209407695446719312877568933903176203956189265266475825917087001733842365397216618558009464974531000091161841335666615750129184855250527249926546900459863997577097203866858602525354733422841318933870227787658540687968452342472872340094463554651947019067849027139771149730463329815891030050974877989447494220105528789590647924180453662045468111426466787982303087347841686102721008927708009466454011014575499280656098111179757328278210752757751483033699099938185132134043642719907595689969936317767465177457957953701228838304535289428967558415371232629157636000370713937164771446704573015419871427080088315708164924553749912495793998767984410746407038841488249379311575882131532198245523252249060453314254671990341937042371868300927584399051227827480349924081060010549377201432085107770612742811881192722351598839247079056121913053690667987531049132220789941907471134558069306747987852082380083073920884993679949149942801394012856223341978913087760637362549857958654564755683786984021496566766136342709318488500788852416733343153025004038306115262647079545379986768783402250985428264301744304110076119997646633791338839528782323061837465105259936756222611754540632444490387869192913630036620510507379708303382169282285188370640200373276149129454763378013666689233500656267095351345664947386274490584740243535559128675881343948769323811974640854190471806094399606490068511903692867153799730052158866442312759435788108700529309936089307395876349451384419513786574379520536692315287961475853929522283273879891336546177693394729889159586507435703171807555232896552690794226676378255424043005320584749872347541478091083254276302940316971382838789387428128319955707374049282937669833785505286436305808176155994929661709048908271773092142551755440510919526570748227507936451682551353839279255158883241541681543860060058729120040363386564830039030778871276926330651301849546718154553352639259217096273318368983206427233661278928003917661675544206754272980420155876554628717052744096178380861855305223312835562852318166886356847803460328839941112318947505032876516204674662944981796028469502457734532396377062340261912991569196568281065533697102688875353637376923332916328323349522190321334025245723317409458553792416299099766331905421750990815542938340924069744162781789030992930716468139996550484614980388090539249946625903028970886399765955966390409835082030784787631356904925427717910373383996063853994083538312508003871035586305635611668212343511842768025749346842627480284381792781729507948458150036757832543974110197644071960334278531965072636441879805535653714985643287219045772548311640489885318915210983767860864887032226941536787091598803352034062998540867102591904232343404796141741239894949131324741941039066876672394829374261616044626687013189213761383026045348216956569480068004965110807710807262733534214538026232453647560001710737714836335330583216219317307683321026371605536342726499439432437167800025898141456594723528755566414249978654873260744661216310424202668953093709158604741865353401486308377728533532892971091851995928428357384725868933016749389165826990642308125481190047746146759347492295190182514313803645670646277818914432367390263961108741955466802902025207230119374428289669988449095944986049156799513081719780931356056878755716055278516507083301771859058389956978705311487985110212157358255239335974214017379267229909572315418445532696079094607604093399097733760009701886625214963983843427059035238693792662773466325007391069948507977785031462098805107302137830332595778034375583368546195005350607159339161589448857713281955509392574604505608539571335102869066549824916103763103325338764659298700464337820183720516279776473301147554333853476424334381098412827893676408197313136767038943408765190757636384320606686900592681787227384299468081900135361605867136636252354290337584731155015080177339677393013610425860711785623214913608032086768680221398544037771735707202304289552202802396897032617191481583059000989750392255290358538588451303887696171626531175600772134734497834685185922118420362834011973262815715263963538529471523754553240414896969184550255733375676209152369120263841411416900614133979330943094661858914609428994323518088970240341598374022890364962108103070631675365256832958316046839574609930246896635954878866923104172926356460901572583409246890623680165248687074811189158866622616639235075418118541712926811024314449783202596471082047074850056778240469145154588452967114466133330644987895779313606447805438188902567708144811026759259910854927220138116970467997352820064006492746828103296642948857520593685242910612107129569412503923898383507745279353693665306328133998047502864718433335248171982017603205591115584524541739666263396622569792600588364111798678482805347856833562409709127468131891703627327919606913010076294272803772855820395043187889967101976260017333928896680905241915426070464189311906152659088194722062667871097938452883858659472499465525698573163597862023996095516112383965334818185813419371482199051601338377163400204000375792939075058650674912915015459091180326365686962265664790190237197077915258186316608202897560816131951304991718878825171520959585590625684333818853033286156108324028318985679806878681947615494439798110515056700206344978374615697091878416506747750921164261308116751757508953952457275747283225885141506331081009637992142192274866030885904596195303802538872608800420925529778311489333570426539967883989869978622098588597102792019529769182513834173802537759458689255504591906673779563654643191048203325395207900596937667589090230811624399842253963223898948806076577641554106717451049084759800216483470566670784692376959633532330300420953576134355544027264074126633816309327255144506600701014663939747066457709612845585540236631607526696198901517784161092940049938796015285890106466801383007076015332566770240230344171022946912192433554352533772776635390104617353649877272962818478610849064977637304045449664331202853490834197490522367278183406968872094496766060159028110040552152588665654729406747591245936031898594451013446069572470380622885014136969973336691969241008614891208551919459541104890576030647282867467791012142747516637893788869330213596059812910195607679872187626312455456581282534403946123781758622632095882047012082403258114996751394812249560003109379299319841752846621697878875959142908257546813556707569105478640572953218652534030003118035594323002849905747988241684449946918382489441688050180806377370044589379223012072203370488206665653354932294390392417034429979534220043179726415706326258128844947025758381594704349110857988029287785926069286507801593487113622364927084941269311637849637108575101312568947530944169750790466755387628507794426204876365071679899343342001366607886104729148488448632310904403142003321712051701011600675291942317082622754315674677325312091824880324528636970411345675635966522532794518536849108801340210825006815351831472501138846349777317716994267350582535855402885316689600226040993208028701044728242489849727886100952201344430503982535580014336727892892897144008759206338175408899834094554375862292575240674234785625632289592943784214454716890002688088678504258974864486880835848289982040960185580738686143847622074233849983297251346595563558310330015089716128791342956129165839169822465392484766051242415353763972299467395714980108520466669851581018687374142396427137087976001504299740990422404406331412532846446295994478375820517460093567803736343535060166100522481984457029557994375621647176297011068215355859260942596668718088262046062365607700942283953279845805834793620969100541438084707165010524955239395579870912805132658996041775599963001211550631677361271314839566555667329154288067066340900558518730064647457125119408641532045102701073560049711752204411269884272535339738720440668083062839306343821591219887095421290565829233154559247013166912725259754047535286648422524847562221095415083794140777362825237838190572648978552926647281024495256829157094118354337026293066477136418694366809646872668258639842828929380278319660198035996647564716030588828394842135394516281234636944998523257719089120725711394180350980026237197078212624185452104782216450955943626545402841677856308632904441736477511487805764816257449100987524479267941080336593662396788480683077786762693380162406097344608444950012082762097988648871173281370700515014831000261263755550314478836897798588151104398975805603841497347640089735140508185156492762032827010167367902944774629160407818691137632204670633928869890318437189893668066111048530017716396556338121215391326308860631736327732696041199592938537784912490823421853110917497327002464179461279841700385082217246801474570507428358695014772963004572600240032426153042442123491389603524943662143020549008623800393915843289352548888663555353560562940819597141030102997199714604921635780678954216265036087931611731864683411696333821477580526306580462745129606605566908184671374826885431298532696236696219484844510275413395461452201647369279573792065815499217297901343393709762504224122103295898288644403457043553560601364823524602599187537912891922145627095695392203998511690745827126547771371064819173064661627950548746012476501770179980665491961527457842871578227359766476258490334131427826082745440020196250769922521066706855509892540160218576515091124699940131161828481974048005013202704006695676632003240356041176755439226062432448807469533235746253989727529821007225809123139335567156122598156841382644242125054639239784909904422685799798662546878245259864874950552574116978125043287402846021170228899938586600762420233282963262430555070332719672884275416952832614041317451208352183432980810031846578615244564965522245911273081768547548185672491856343998705877142413824086782464456866003782497041679055986066925305726530517332308487862806473647585259698042329959236485266516512746795588252395989546197164634163485473101060562717548960656889821260539296873008504930737282747993763904847565834256696008980918722931465055720605067208909526787369215977784754631745235960483192338046669839211107640706445063677157862719098814457739780199348841317363943560660920620941142279911490343772085217895996090110142025036528335613737585705107428324473670295101316834343251934910763881408018905807560775231528275412667723285580686171313169125737175524340958651743021613038566764788030672450986048236617973101894712393208157973631620344712773737110732221982731031000793296647234883191427259548060145778011307305177381686813230996827609920491437667189989870997178596273346723507476071325692305425866087785987734977303260302767721394721346812596254183479219313753863318280425814347713110260754990708575401490315809396568951726246806321293631743166638625451014495370130517656129774640541273214926037667230036209980918994354249514410452879083901213100579261421253578196419914318705722960364987237396965889525162073009612517046328142685929980631934076389846199270691114102786269146833150328045388581697581435813387888296570808718656525651146859631325677567181690044104409477320508663617217848078736140299472495598901821359015041144421901910854790841213978693553946090004075034786040193782416030802721521929148783381948117570690720740559771355092355360106281026180674158229841214542589443795255083186732734015068974241424961620189087898706494013029528945088848405446792494091151715519765396895366692811542047630929443327187055778214445168092188172889458812796471895588209175457168993942985722016434606690708396432474687824604073590833322051586726709657161331072942240743560837862554401899838156590596891945485132202699826400009862642313540854879256007113441164737926039441309512433822437041132582078279429051110492363380673348497736228084588007593110628960912135664484042014055334532498507888586757908464984033787038211776378230422114378515466914447099287710912584998757335345027780930961072305959052711498410691002756090229991518919584832287593737131763150287475664080191679774081356789498807651332107690919679889501795123769966057470534669367662521130314934286432028948231516815107968214868724560868767789659675821597657110161040209512969101682245570155381939612057535241766109608648693359453960823629778431763054022680364484000321057637083360496265400859786765659706645012318446987397089964564116155712820468711484777733181681178171807781939826964164430931583868366635846248343332918049745070939080205568131318763627362128203357516223407848294713313025583001536524288247824847482622684499575016432140182164172412413516586200899815844898336318801010038511467407228227512072528784293272778526677350538125554961613670029194696927193779414804184500642670072942224468967458694110166989860467296764512932637386560440644787155567524296930316248477275916449521659399722688978514683134569166711409313908979149434057904300054557364281952099735878100171077430860460625227915480663482719641614912578516878366907464670742112066613929018373889504547726358322000161794611811185843312684089605364279194448324597218984086141073510772854421719422358145875354438201262132245400372154159745385816683019331056728687668922361761349559595638527303417354236727648184032794942400127868320159743735034254580220951136416899892976533048096273977725113100283901031145463785113826662732138575869990790580203775751943517076987802908279562364300844873252526453756142705511462222928179256617808031240711315906613123754071600117795322763522431806455629794067696153542068167047591880620308550770454978679764145235586534728446742255766721083429460453395229017749477291146650630557925033842507067255202583032094275566675753081218024318169842860799557883579255852598382277170557844408832460042459510660516771822414370107545502835306995616161807744885875664682940784453786710790889001773614780570637000072210818036073762962962777265483591051114030827614339123530759910739643998458806998355125974315900843016037275169537328228470096754413587358997193536986646332053989472667048762446627348844616771782041958809593088432840402860337082916912105136436562683530858947966369194153351807845476412382441792988073008126244983180528232168127837717019710074806149448940304839131733921513401661264096054528719245665621380832496953077639076540157756080621766823823603665294596233827868781531643457745941711393971599244921755693395243349955250503815578021017646255994941281709046139789949676929282205185192919902169886963476307581526916129726240732608587190463121759343960698985370073315056098170369885617637345265722917379752472767880656860617632999954313815657243611153133602184571983755106475523489409435400843557656176275134664621000236868337713261287797377675236241716228703686377544372652571056642439180281048942707576143413106238263169035565215078277291378514941675412256402682594626100175688728838149281480134556480552421143169332588338414441836099453367280566810336201033143016403100675958229261919543239757394610555746434807873691458889103228823597418870851137534666964198899946474816606600558796683419274455491134021307491937394277703385020978649752550550359439411754253550588693293646294341747297800390009025800828680236454843289169746052509035859691518409783988280569935902168901449278947971518534588419794110956226478499661611738019767398947897429524657653333751515116578722828798012987914159345117280855015709649504393125331061840854954568542841397119418902322087832424511823181994478974562173574490834421257962904296690024599422082756475431913168131139654567083071798986538076921933076733377120449544008614846774880616112217914845704904338676157231018875985753698895618161353845247079862792751486990848461631390239067775772783393523255511149855923558497960596414562800608519704158192036847832726107551557802784478364133966511790861539394420851300368656397148245164998026152083331593318263491773527923417291038060491527979133093683878146289238300086686335117936043188186306648820937476724150192899542814771404736544275999034009649671077530494178868188477819159098909236553725837418353916565988960238402669961104294539437352155317238269052616765378321808748853607618935058376787869396570325506414334080785943942210736416817066548095569051652818213318615480432190160464094263875074428854010060333632922613884155535463004627470288170680375497947387486332691620099746454841683626915184740170292768016487811239115639721065514198357247748453348430749807337556770365625806893788717620600655891483713714868149147003923626733903500280771656644305649765013861120169722891749219678770505506347036370029351330845447890907545156488314736281527777428227865020519334772049229926403208014156795243880334090487683322321522691188193200118195276847128643646794342240342152218021563156749694085829379779293798070862599325153401430664467896592100450675367498287631497764182021129427585652706408200768498151090330246374250156577564348765161198735863174084520083426842450008519783873828441719577894173792452904638818721900278716334662260979958192169139361748718292261786597878476341571225709730592672431121880107666525411202193128093382706356790716944600834062919020225437169655036648307834777819220859718703528674456801669732166077724643582142195405794826361606269152191022567662913351201424732506548541605891525467460397343434200309439182645232713373779506011811901409716385268927430447424043820346481298591990454483363725220910757075330831028385211801505435702559672812143857210324495181779402838747937849288522322723150043042889839539410841282588395421174451572899388748875323971668253449766559749567905831018487868571796493449001075981032555343514594462074539015252998011646934244930861100674015946158038073416622882345581786015696084836584400518854404689589151706307760363727134402892383085755939866520397896217956152592799150477235967203142815699195788015114823379390140313136138992735834088762888813939688517496221535095792729252526307131037844828956918854819802194894779644721541649557639401321922514638013405291064920455899597309601547157276691883096263090191026899373524947724196775264623781174634250025977657062340392972974340548082989370624270427860214796614007935587355835746522955959665581265334680621796116746991183488207947344587287212327176932289120632117843623099136564127230881117518832676703258454754997348040939103733639663819947576776350148324167244119238939356665160718817046914987946184119601989233475640537254944155054358093149344794162137843590867387676705768804054567896718523083497885907701417544244732266411228113876199127211339054575776212373607725795428880721372810548447149598843501364118840747267209164163864196879202400664548618606443343784264668022058084943206752176399325141435741713583078395849738798835120488571415687150814942236295709227232228536890047386707054828596216599727811708063611655052776445531572503423841517265970209848617963880559679713477925229945295358875857527634604754285915716058650298539265143618829342618230067562752809977399141900720591102201355148564035835107939906036168467539840985093412054343437072616692741459197096381484786238591715570523995147999533995998744582113485643199044867287164609065242209215661388307094862093506914314483956213118641847799813850490936168209304862668389184394456223622375987607019725889260987228830269431037777563646436931978426411319187492670918266385706551167269787994142084956174682318239008545751522061438548682313765357707840927418451609186804034096652517585348750284724003150412028994131848011091560594324612362621045525988152228225042234646906141083599805960471722107258102786266032843157954615706217479379060374644352283787794036680873994548521371972638425305611382860744668939624712393567577102695398882156902248667482510860469904334950224140032562767185313607756666790282375314932608041998098059418104945553139196949840491394410498168870994957710240022240083052087293661963211302614989746089957264725348631008620554302153844189072689652833298708051914628548850505241642787704893876407120910160562509824691189478457101277298877473033257395304363645129358169865963149021277621945755492404579231379446915960403541834797784897034744581751899039441724547506100624121929200482852387688260404588967892719355545711766480987159459613760859524259557631541268689931581933302996173241773148018913324562557054216235997986238605109362127089753807200045188622197934161992317370108959767630095680091303818016625443064707996249537951066480780251181174132109450750687146321675203409154625616403361748723787385365853808482043449910408175962618010389243238143342963273748766552069620402937645652416994186401708312152005688713182675828686970162903917092360868266809766215904497839166841785307669429348359452327143472989275928590054719549057196486196257551215170297061679203083756339290573687093061764147254254080281045263692592892980694987430430121325619792457769230800757757115166370980392392652676851389390267678722046729666123936766198314667241233996277648824370457565660595782140551074516393606842439995944007939900706652268942434017986372477529559385391157611922194391674471319817886514072089888093584001455970401508794812131794970791536662138801304546507191512200395236928658291831039963933174273934534151112843790669683833885257771013792224769906551552598406826367622434347386472359913831009775166129456489995026235975206396178654275803533620153894078964862645068656113897487906181067118618020275094070998892106667776408705246702389844057203632786168032956265084874424426254475227996550783466219186166561608254705756228356407998592521311387756256094879976080320854154767506236329219466209772768441291876881578376421103504450968779383905876365464501111262069987758979872112728653828569760962845717168866349515834402269279025772012122587065628683571719378468879397580869311324206406563155950484760122583405626285294653342051448373936281275399795378829055578518872322578511821831856049938962957425415331986825461477903526905312224783705809432916436560562433977708494941180961762814381556049046835707724933601970484851049135902294728530099897485210077001522110772944859572442533315591406916751438771395978639835421700542959894721882919119558080312111178100805803209921285986721329754821129451400539827015559792908523090165511340352474149090127428603582238929571074493523134602026149708119268083716856596683802858677886224653036375536656390841201859753502202852075830050629183107762809029624984876038394457639259020706673286725038868476866232449975172164760132905278693509801729365662153638121358524143619594874105516795631504724210402504787603906391149302594110213515357217841493733365023114680792311671931900756815538462464797743262582547014409606041267927755886589103649523688977334320327702519476436794126618859755894216268736477044436334582456345678683835638565151402309829632218865271416451403622978202788831740531719497504175680652372597595573819863589357855055203183836392191343317989330887770068734126263057926330912189654034107662096905891024110114238955367527686923408313599668294150989373564933004930158285191786050160289530401810096756645089779357584671636687860321740695246901809670353025379215717536295072609042792671567325076919973229575043761581054934811883098375012904763587146237100751128516731271329163243795554128506024339669152183313472316364629464281625662525381508784705804015616202759075876786539135917800069019788716236304539637173835329474462697596858471755672922923079990937261889539611205348163419540739693492076972568629372079417513521003694827749684994360634201140976754395940117170330904706074346164344155357002697637364135198874248691395908401456857145778761004210135275160461324004324875808340659069733083992429258445122171872289022955613997334704207052546819571149888505962632050464866719277040152749790483634562752681737419750130303840288493770642423561986854478716147630214315625781239058266387746435616523883343603266995757362416626144376117815358502268184016163533423720994466547903016899150467643216733172362106343475165185365191205925736214925554072593571493999245842141225532733531777370372043173412652595433790828523733380055800908472578228235366555535215917424552261894524198178073923558277286005101195827085613966154454197557471412682847953252180214136679656798981054266412161488603125129697263385560052523805573688329424564457714545896496861972983971753077235126933184580451283073127217931648553775744076434854676835033116272554004723836302504447085549978500267106106389011041946270830651800274823567378320912119912432054600741511609039025365063887953579661214916012575626473422451844987433961067589637642163784473730245947610832645496890461495426744695612458965549763519118706632271891109921822143543370666057274848759323159614905229523373963742512817565582339176267014829534096495138081656526905802673038141236961007917866930915181727545022614411462261565607248593321386963693621547749792365294100213107914000822857446779268549458384579366646160190139999746994019005519588129276549184674843295360259786331636539208720494533071478192544629587728834089439139859811082465929367016482958011761647436695084886151275421017578195786830057938400455446349914470572695061828329372628700395087649778291038849808462900222973324694504534764443485678307053808655672756360601300475283288701288897261827924361698877915296364534118373457447405062524823257912461981706631398719803339596097312683997891168373357175833820453711498887913930915898648714704949451068759281149123898007209697268242776227917683020237920109701490869038467841453251680100379989336493114835278777486807586795775309338719400413657027460607327442651319638562836939610484061942292374912376250863570454362986347044227855672699869954494026703755888821773483871604848401831152951679739065976257707519424283451311364083716669615230691936885115572942428597003425574978147419671515352123160722565095426707152091470565796144179802780918400223212312351525323457735026379028296667630368983782611088488610136255480206127820157803514293630723271995297489933900273899765145296451077327464138257751299340407076204869066077148313409538710220932942526635426864159304737317403518820050956945844040872806974405117991124691526882926354701600839737682110700930661285307367709384872520604775416400132117795166285724333639642751469924859437281534768348271783173044707384809735152694814043311401638755892644096639998181680348764797286808138628152916463270456650052001637929712887938133432955935281973388176005388120494556044151373197554526973787251452968630235528880685715384354341560397658870780974981631222607248019937860316195629992608960647421041446511627317781830014837043301831643540863481801874959280650985984650796907212028969160605876543037355881257602364402958370628477934539192470173231069144789055014175914955681156477188438141376000559281173644297578344942154845738944300318318493107191410183390142819516391479272543408170449979587263702529776126081367614149446358580359764732530475622183337440928407777710425562342535707222742922601920223603158840099092352393527879952952235876058268434916199474558405456997871185495298558314444009247317113087009507225839823890488803072197002491303332449177215525821705035021011986483946592526725717094552928938466654284197326737213669463775881378503724769382154661243176529792394968906341520069168369053179512908396698640070839173803857313078131519345044519427262490245869652306575285614440688951252703909636247663891592731269032635650923182947590262854414697166168398423240140571390883396028038517027692635254542535588275583562055345539721521876255304057916300708067867264452522369326307955498682421839448551549992068908550536136284384847068292249352949499728412780352189440706041673771409647003424283017493510635931231921850171153819033383738458599040554221560900539557019734350385966600243601454411570758995149439347150158830059510684713604844025323293383148297135535802975576642853538371382141462602821543973936267599705149037476073451623607290031514196864473470089481294522400310360303819095748654907078017766097181077874277869670681161775699699450596778681919035455938905587078863581074492338751834292912921209321068883985213578023043319920120471731360731051124878401571110029792142201401212496088114593936191503086027419744951830848855882598623332329689951337055217823946647365931889326998665977481788041904584635520049641304056376118150624889067453005550507454261402594750944017723680807362137126531697992297322860329369003134449893140872768356447389274011184188387592111593481717582781335073760039364572606475725749186938564567882822194012927580655094649537325696447319758799021341736767576143073232090276865485304574913272896516084284499046296972491554430786198270754208077732955792409445531931382151451298748818212470438010705712868990778915333788920801846917824777901923656148967347065768457708982695949585147171955440244604713678974623998418779825463495390458238533228211986473472818007708095070785865029811605663379505604725611929984176410102356671898337556751739588944970105011232656628087959354465773599748949822399145154214454203665962852746387409005499574215301540367673514895488423627887881237551533206746404712354262800575026865949204230010629854710586649229564237807971611843408875463621739624796034562803156220230120974879155646961166282363433722293884027628982908380840116754784960343731803733505009580111271891641197937630082406449445505430686694573593091620977880443084092390347106682808575294909310007382770668166454377769004137540611507124316297338338634729071980691630744874693278561301347667235848301488792880454426849646130582963089139517987758377272563798162745319272914437747928717179842275390363986978294836903709903270028127756392154463279709918377118613856415042606578647830776446035772986248869030279245083570916148014343853165298611830806058630362664548931713575812550180813233575252957366231467059142300963892928450030856264990602562265119449016058555319669201220948247605496840268301404317051353994652003384774521205708480389752250063865411599188809160034022142671932306565198823517289682617759526292627609704614208846655083423010360844248743123431811863861695972092924685181718731915086749548684605224974987024806279121702392224458058813510027250809716170050516788675132196915624114669979525794334052966246131403555756191497022712261750795315901815810088169690620384028387657959127555056736830313164266348347263022865638676190396253554355292803777780460649699248707986731167334327758473284474948333158705511505005425387687224921065454640574112610083755916047819855017340328430951670820359692195345565627820329160329759569356132255717956234008974463574298699901589280149840848321294415804195509304630414256277922341797790013323279712158821186989451583441048480882456434444030806537571458880964900200168078950748602606690167695428695679061382390516436337191816591422124342741901869434590464165185749682700739365331021665593824569306806426054492347890975204721112027328685984387942551941554709593752308313223911696044073839484121544532972501518474443925235168288587502127754042973791175368314618217260431630607333327427808588599538640489907612903214816928691061179988592153449906337921795194458389993434962942425692628618706406733471621437406105166921235000346560915798239483072756737602228255800825119817941391067636457493963134122262583720691502137300608020463525756779138557353484451329082520426763991500434354494430143062754752809368377950985763513027540465433784627020325131328928185875254835704375681366584608673752963081765607717056581205532256960270475398136648552029530595964565477785209233197533774552176023421200548250161181757251909611430940705044183405817462626156267774656711942451410480130152185872582578056732634715852251939818216514950108340866277027054644414779848727331987625879311682487753684334960757009940740490942339184039898292451752752944670920387114307200341251300490064417688906622563182298238074488500862034590090969288183434199678299113025990608003716747000863246639711204589868239719527807687897298637480550235292699029936654306157326596284425329064985523380670759715180727592217751639257753291196828714464174731052229878402469004827962858870536163274635745843104088395499178692126339414691694851494663524124731784575383581260999962211034083648021140245628018661741978166283065053447697534024742340811748383810243954890540101736682667348409305088995473820447044871907595978443740300920073002672082829323452325543428886369210579692830346023641410986796551297597289455297469320955623808232038108048693014642946450524556548061117618691633670817175004159554715605742462986261216308665010224215994774415860895506624686459083930753820462472953588029179720636159837397148793283244024559208876665688209289084648686018789759364854858957071181754296676498057657914831973049121561544403421013898181070226770748326000755815885970889114421918916873764907550558041399585125958675178693798734381501538483863009365006303750764770571176201344613616102440549420018004014466673799319053306848654007091530137417869915415199040023006475871255510645370306444718861032817843502120000779105091854226898508485297062934577994256405083835322403097868625767044012302419996519669098644564471178738131001443958025065585494940460757561569204446779167952432826815768255006868395864034042534046042905011909287307637089931390182644497742963241373379700426608359617935054171295987009211118960182418316542263426330756028575065716213428502393787818517064915285919528828124249837489145468180016691692071786087740597457591447894919494274189918664440761316871147207581421158891923474491133403062595545165690214912370493834268899137387414099403590169949203735361495092891543559384190349390944408910687422557682648724136989743979189755733487772337714812829665517738490626276175430347993368592689310221882340992446493607039582113927891151996103834242736331303261089000966974269898347131810423025695590332272397959836188807578482593086997063503647956415929467110596503059828732641542794088044971697560079710191406227292826388993013749887580112991426757774487482389308241450432597481887606995566079395756356804866755882201997245360043473911926752459710070378006937701774246020738929725530395800856501182469056040006520959888328708308057082463937859443012320207330215465827891976729935124229791430722096910081315210638572177652603359681312257729077232374409067212553845972569686438675924954156218863332775605523140845396572246846419743864113343849930994196553363847277197822261957916840399933438130078174114731547658050446200090910786228232470245941122559731070110341507164597805747209554459094544416400577831242765264175843110275723731711888863306978823532034325362908513974991671452118120676738561800104154681855820455436841573974946861460697688187082335822875058835650480626403896742471617688213567127376292083057610354951490743669105641350515787249914793373245477082160920468920411574242623064764326777347194232917249440936383052201378520781664377716298821846729111963849990157289961632374861277019307246447462319461975540003547562523398182030254823407708069728487953702018819302444900624440891191948502434712600083310999206061253004488376712086240733605092199271062380839466352764831520144256940277097937515388001645234632888516088623918616820122179491445567745166053425777642554098203160010765840394180278963001847582044291638300215040813192332114962257587532848845935584191419578370092414415826085589488369271960998567737703731085100801901429954637473398347035160543504143510653747958098091971940876915721303196758892671183292141836675766647180505956782182619868011930770862052328289739246134688280202298968950953736035725162733490822358032455467124782977955102686587077045332643595033984020322219622173860109621763220995970010795526473656168431700057852589523292388836740661640290610685969044452432370760411665207690799489045116837732022639699718769060684301970090168347108750695267328402026386847554635519041143886087047917565992187715493906883871047231000831666777061020472546300969788052470220639995746153663931134347166110321920310571604865340349073766241831858377164623222959754320524997185221701151733761906950949277806711683363095810822882318912919430593099366279710919523772136169405783832129981596188790488760240553278869215074150779847105021877891433825884159060433392680927418863134076273632548516503387659653517822076822976877205518124703113781347819049335207860115652034800329140678148354221207023562201645480705249747866765360862208453755343252937761174761069419252547878603182217776211356020085017855529024848493233338613038364733665749009149126349512997231451601605672097451736798376541446627037634820637956493278641672040365103506237394927041091196374172665697258554583306464195613821333336406372755886631825851088476994609720642719022045496021456855197764540541908623467557548374023328213256242704547262232839414971682063836539131736973721973257435574452093318630282795671902635327081099540146953701701559341097979782091901996325953140145136322890270434996306628518750334960248674464767395659032660007526661992440457109312527275011503522950954890243846077937766180174450551697036774149547087392569730365196039251124911489356215502927518462659781093780142208622830334659672024432026054954338662567883301501746974856092259810976235881417612011101828914417618893987239683098507450175391426318530181932706204702360268986081106460801465819130760979540483338613334047064972575134327639042140348039470419360970625958241913834414438609644961673601067979488452730066662079669270158392670014667101032740143285704654802009554891126336322560384318003392266661011324697295186136160552940427813560789825446535518216602323560345015578613502657518176290722795776906617065979059103192702684131273573769133364286464049586491066167085981291015816407629421368065638279247165560608375231157792613199299926934822346831870484822636829449209165939622718756015476134793681523454026887702803565912597966503529163155954136050988120325503343225364605803196249379652218412609820976292768271474170533078342275764548665354984735661412575314615858872185064077622508496286910378928096644737881326205365104812675935673840997800074518397458779272412928613172548064240964375889809754569239431927349358843239503116841205517671252440531751893526563191915280597769064644241276028441430050060052975299062188071631498004866184011333483526146923854816341886479537398217575560016970876269452609220117351170981892434427584232699182079931387073351238417942600473106048021046591023177299815295467753272844816036152135946864422305968943194246088735840491441166537990015350019964278002543894298723431327096795640731916444289122572213392855152602062468233894770446519726233673595418693923115738691667470926215055507721938581944951557897987221306887823841973250248927628836405031842617217459752818066755066292953008206494406486492067977465494873414069767228158457618703916960447888259956283085142196766545793638550362609536645204998945560700478240399682104568097810360236404573492605087715370694940409944389503679485000145735479639938956024925415750185787969096263372591126253137396903120931532338457174386049809325650582204587570596626499838281033015539821226889349851182861186087531395222944899490386135581860341690376178695137089819103214920441682926544680792669311266677885054835601390347604095400304614830555070293762031216986726760880165015301660691982892560432619994356583579390485958180128113231452322465815938741222301327007044074627228760839756837662466161370824766203552803746167468820892300421365132743918743908342892744557419712347355047797126413142355966983380642884432919730423055965303947824074901701085110300935976667767064415355292060477810244391431407956483238876859077866668470338438439111855456847063294822197276069965455113905818930589659237057169581220444711779221612225705860263486172546641436175557215139123813527732831676409587927415218731209960164091159681490820108040738877732277570084189485209343774454444207233213429678757487090575052695069286664375641134430930505097061623546559226047632304524316283731475332163532498239742750318415729948621514820209032739920184946738823366369025170266461420707282519273577157845364016524648100411795793047736420608712686782330534962060404718656224955648318047578764369215712494103307215188419010669617355732487045739846246339979180291657649588962995497544943792408019358268497760394230785932038006750891542142073257953888392309165671956130618696421468243373724236963107562144933056453596201541809040158704605194216265965134843291529572445466784339654290156233875757397546268472264439183000027045800799260205432929887300470905745802227468346439354417199299450325995595368682301182773511204679866203738931637748898943273181224283897359630601095207555110389584215206772784186459239248941556148459689549635562581614928450653193314462878422169322072383561103950679735445745851362452334618542878573125218838174859236412761909370433029858307256899495867100510805240826303131201199979897459150300117883448155599591662677361381506741498111046351244118508617907688698069449219281885629927815211583591429278003905513695707345115375933517758892726231590461732227713072584559853797620368172491171375908715187148674909914364714792033321987584089029377672587509413340439947645462108188477797528292430125405924052138462672630419751572660406956072323037755596379588664041764106784006024187929833224106115217582276537054410655848468921445760754230952195360572879535761961536046157908364732715919906008029467798595319518173483234490836649575069744080328596100769929840582870602557863546659072944808806224243802544780108023806458822383943050772772536689543062626298177274925530623182619893799835495882684249866167385948992286932012329770943625951273754666646315823760434885406179112286799294753576192962348851480334493364953014120150609020308519929726981606558197332373137914282840406300634960811934277297112483550454894972944725218572443846665995459447286180221465490333172569809878653376022990622722914093134668557945202655279190604964769940296119649631071501226145255383755372559797770071894142656044001687556788574518528319726347161439663722482175524937091817446611434732479559137076608430742997596402843860018201373135860752413190303675576610220824859711860934454596706295134666757206815426865795181252726325187762191311373568540149191197994723965964614130413054912083757569532810905959252641499623019176091472473010326147570447979625418960003385874136885787995658244412676214906153550798878869859666201573218619964573612398209310190538591717352257286127757244452392040614846700345566320308885480038966919963179083989941724008398109009587557773158725670681634231434049520673224096377058443943279271569236197832102251339774499924706259033562204015000210734640181572012880187553269286207857536881881225590925167387170826594871242302129996559471282019302604389664964104381071351722924576402599777010289818337327634890101288779701092675818639541484633973463836542089861193622654614549350001892783378945415004860117544778949427794895154838268972690203761514281930935439297814339887050384124747909820909659103382528571050993452739369023919346689573562671352656388160448925085415809367374725972289820237419444340939762460210120226163584543977263841799727554560358642009261742497538439188886938629089985524939160910108542129858091879158188912099195143298047150339505597872400491198831103368307517961773134303460581549938982694515105885659685878939308776802996697333623422556790077370532153202043103050451602300280090403740290287161185444248443195565942191252610694856118829771834596025285412703559340567306987374227184753714797364554769334438331332973561945042899077734419602787245911567688937229427285463344935429400074223526145573253898101738143261276749472385249330810439849187038488490595440030721072185743533774060215610491907873956908237879943462630351421421812375495172612220875268536811539543623056754478671239188961486432370785794459550812984535051112824169657602230592673239322030452815826197260122489325689191052655681972947840244855084615684821930420911907206070429263629650406746235542791096614878888551432302404315548263818110393954430527027485636949725290929350389344127977688805985031228409095254643079869308097736742481917323419364239628026223407854244444033518529197119035041958481295120924117229546136786196924462728075941229877422995706583827383211633045362758495255143585512758579955495424475633224060181991174357822144321638961234416136156124065430809003027433709188736667081293582842002495333221881369382352143971403192271200375933819925862621127778670118930150147015995537107346629051207414831221037319632590509909940525215142170035779607961645080005333090986958520215229778988033535135455496557884867936187391867646915172773459959183110321150572377476098681377746819963442238946771386638006633554309061436273185373245576244894958946106962264779310815155206448829886040072501349565278568409619752565114846434835820128022802491468384675816493015905677402731834378911179413432236089621709472496236564600321754131915397116219429297081869214801493916877012170844084255896889571961353001330843669373077238976184145528343773388011979705874339856190454794168686725416344701776300218679721119468726149962923562576525561308394016354794031457382728353071630799715804862176057874091903164545251556260366942767792219071469654136338910952465972522367878350113057989684104002036640457052283138813552844069847932606148963925131046353977291310287697873912029236631761933619637266774101588926545151440070609723951422494589780670507046569091597156156533135598903212797375674719351653625210423184515281807010346889961140981076412536084720423241795321330562957682128488697289601430528933506836629554555856950065449597134234361630718000046354706077539162640721291209089950734262764979964119167423171774747180581462900202824396801474104797240898877058468391437991112682126268204542118365059259784646510793788253770472568419084301865017482508520122275613103696607428812859993773193391792816234969448569124901193373685808476307197658085436063119313833674212543991931802587955479985894316912284972203181327620576487927903904133949932072610842739764729507653319744135195787102882973655955310144523688737679760220208658170843540557121340853304460199579993908441141441551781175582855363029493490063173787167515203641539244423226094834888143777859386509971873332608746995544749112700150349347738882888538720804732739960385621935289974306098391213785549064910381619281807082446175857610732715505372592962085772015713138068730721887101941413770063497979745334330469022655570633355498236098268636064179518545887669485471769467114147544583340334360372914042639610653525301277481187243275909034505736624435057109669632943805757359036829638655233033501668287567655095617950758764481243307148894254643964297607577740725890325509968357531740504588479394582587630488844910227776289746771250255457591472483012954512554706677666000551434320010671184209958766857434973654896272902164051523812759620828655885840150482637847872677573640663962654731087748102269008338001535477126048260694224531365369707554908892379837932284845228417448785473718123169402652385124127884635799227544155381912992085680647359692726649384274890412457092940089728347708613759740019133072699678839925926556855520949427173099266614170168842071208706851495435783974832075609306758613964784069730532564338266166052702498430287398814002466203223260954948219808418794229730686207896748339342378880994167085435173016021216553372526683745782547052329760782194776290762498671822461701574810996075448195973156307131728960992916419236644232213680551388903478722454601734239493075784287164869154698624215511155270832059658912801353090954879473861754842634419957083216771926933429642323821396313069268300429243730531028946386396421162274532656437608666143798645100246519673835883791236267051621837462508227911107325136241976107813965878889692234674633152164768917597496832172899675203835394966728624681381695845295206730771345681704782047482768724882495952942983468343871500021505791407482146143636408625697331111569751594951871098969677831271719433325685685684921980582402969470062346164707490613662240416954377983206660256410137679937452497171677923863091342679331553303991107579751164376967843140718945914671567676125415542589965114091380568118436123217575912481102155855675621927377637584712914200898577584888838560094497999319072121011663698813550089224634870612305764731241292662284846617517870788895832105274830950622635867573865579114355995128277290537073300416809908918032713169479949968522008051431824911917134502278071813420481538168571819044121058240894631270296576730187660337693961950768570829903984166166779230150855612299275230698402986363797863499624384801308812890365433051509511352624903932961894530135104984338646190224704092025075090928269075661660378043318545289498678151738138657759788409835773640823538239245296517530752043581623655251671942580368137421323585810916060121089780738607422870997380227571737898367189236291618442506287696080979768134534441861560207517795816452559755400390474135700716034127517632592731101300734535071441193669638894876054415707400136959877229494696998674563253564713857222640754124310670843131878931174736817894797295434810842349025660632035741856613696124953599285310722632462139473964158572957664712289679356742310600964671593814016935288374903794565096403829362947154920606379191249170034356501074738075554143940794842861826398896527642598497860369234881375215274967546220858309196621459024770506599367573526496980192688448397337549753749736347838557797256501453274491594224456317128092347501923941871637200922361018247989184943565117255170336326197408858118488637546264963062922378768850638508437954567082654897898781768678040738806753751936917460172719462611054356817617372113711395028697392627230290283486674431847776405139733453676634687871415849258962190646358160020565833962282195867911128913995744830226344089420954849871707876480774997622623471136287728903695842877022053311457130053090888585419969840976859516799269632744335859963615354064937945985535134309690653457708023243972835312990121804277917985532051926969884264892695492226237988786775044193127243330500453309321791054122335795465026667874996168531122578884697595057379732328562259421442590819442478235270454194331459226290561504464068720180079054218774573162665333005212286517888550722865469855695209162136604750662901425578664432867961587582891978289634957076741123555560739085071969476330613663558931901836433958016549445438195537740479339082017922181007743311186783081772223569532593375150064805475918879543451092683091144376714075609409977274420285757809145693509264904775386048326301664757341758484239281898621626875159855452203607493872710355540008225109596529328382335190007772291291235769930302062240430864094421172574003935498642792541364515355646676341404604370154140902051283557820447872903257429035569582250587763267665195890138061948136923494225580116371603026149051617396427702628815613192955360798023689291550717311516476279204076518592766516102394300573586111054108947562955820343212679728280243901678303789080849680403458606585805678281760963870067395942309385613710309876439904925508328229857441493065794926670404166525267719876944762007236582825997416458837952112197098689785824087266841794490346438431317492885858804661950311979303749125385103612625202106334567340547404161591589655431441720680082464918654484239919982977559444017207962350858802611772852916571040386454810759505596585769246964818903266361529576497340218563353630268333408521562252485582858003868930182231143685181621932388691510087807024078190554608628320513330060935509848659875173970995156546399798588245751204084859470794781717830453470600886043830512418007042409498511060950473368119880277028233396949302013403137089549328622248679341844677636701783637517542923253510805375225306519394081478847524480879504134172803145078471437021805587583342635817900649673820216342954096259107209089277769620183699978052141076942030221389684228331947663128651682644127458861541813084916874542948524372141780282739055646809539869160320205885357204793947834378470437180078847498870861141482570608657922459497984173974284827721720179515581482114683463483596996216571049447533542059988214341746935136649208944170661415202592073581575670496258359573909192816357049254262211034662883507025283017798891825935650931178049992857499414213601356799494981979957139221557976288618411935474613867770942586827344177796277396765750394281623359836847793733598041982245661013795621414481037759188769374636996983694307356538833985616763662996561188138469243603014227619833573148203196556251091092192482983876600674522137285012517933591796350691615989239851869721324940230982225387928992214946563819086442644973321822731434029448676032085230778497474748341933304013921402181796892566538368185495851826560659671047703365184985250308450677015907446027075517388890131002732972373354330903137608204702331478219256478328448736963528316827984110345944795549641203673249702381739840257502681794731853061370480772672318202654263533297765836781759501099519368199168207853246926176894384982567895573220842344331353183080127034407168533607190308139713167424695757675462646397496043482614573651152194024863452377018869542888496259917878118484750013926333608377318587022789391808081635732554210838743187727097590698571651088617998510842448985433817664463054790380135084064207022445901184679555968547693246157732334180412260573692299128059299773092213938781169149422896635223732624931147621822296062951574513948538142595256241967188998663473915763080538915015235534871048294582103632525096743512381332794663478200812510257743831465314284422718654020675193510639469339208099705977107750113110284248796023986363062491508066302627742061274652347692244046396115750650452719423176430539565581221025773056891523705549831016460786082785950026314616967708242836452645266583948051754827808005590489818416551572594247337584729625344130151662967163215794692202231470426873942407181107285742466127134279514507880143031589845777896922459124309133485570833536810192778209489525793127924876772189998725936571045867113207372189626309801307979514361771400661612682726802253138614740312315324675353880386853489849257158807951073870364128370078144773399036963457132875118824307138540362354437572900610186946821818908049402704125975796421813675285901547792609106885932530949681214949385122305206271994970004392316002687123297259072726394322094530491623022284847019904022317806666260522299326104050714519237225623925597376467912443889450330725803852203542281342145999070170908300074371579652834973719142363145768977101663709021405868814793846728901929496373107065913959474369547157049316295133276266610554620075982908040865801525501481135256953306321824616509313571584773705007852010223126033820765811400478839952815712601726851632148485933999861282301624047842097973136645820915619785330447026937202690858054110815934768715076120175484894754665744134760685549785935951895061105935305429789876105087317287727982099666025427379346419809330561511042670826251077955383409806309979565673337625613999819894825719802566713542370317109822296011235837395321675896918939239285075602926326169876607392820893036482060657964630146320915738935329811317848880613257096565332522988217163553217746639768438575347485319730935523157712473375722729511422505830668616328865920158443838898089050478003569031044889869092649530913571689461513593224453590851386246307769052608008702556133043763386809522374301950250542671129420922665713382900184342277257792264480423358277060176851219860940921553708457786399586074839810341140243775279314175993477952292314228199095755051757682780933359762595083464743930752433757606073178539681206622098620932489627897090960957978232828731310134896042025406132238921318783506141321889607772981100411372985373264550340081823282469859332479884952968458344781024360322785252609861543113557921270481908425539885806205272239080446673311372838065534940179137919492228754349922872805997954758511300889976757801430435176936294992432146203508643922523068961756055972287975237392582755598915426920639612301217574966974354705253550753682567243709492015620679739920361259784086247531291752219377264830806209319607215174440193426110887466694869234617591237259486857396778513612434033599871268962176003816456381618610412984283498852649792159253454245171973132783646020540255413182042004001879326304574569679764023267389936139334336393035887455437870818255867694766639394786154838426252285315885056346246626343699766213511617489829373072921886347521512704249436359736338796802120556671091475672039613512122255146738193489204002883354622058276015850835942373115014182718377820176780600959172722709382236529259335119576039467213121361398493737725230657807513125863003747943579095329030099035140537283633106962785407771902473273198596133732776269365560044818049514218460854407725436762376774264243401202572716871603447784589947390367335415584835723616099309045943213523328272949721688835334069271707801752185050446084499512988549116069224688655675544190528057650976108401818231130644757107137566610697288705196373168574759629793953350527033770856433969000584860747511310327216919131085356508581386081357564078832362466869871413764522681508834375690955339278109264535276122058822812077690430394789956299354951908561767617074181799738841193670768462047844882722258807951884155075771595405067712254022328475495019452544504670824519601030866205788407093598698767610013873183577973923157505606567248204971469860779084567031214370277092921105623120107245612809616494713574350220333271892897106143949521738542763181404070239711536344471543745481276806524524562794887260474934692809225735429910852941771779456331767131012992317807225717065370206514535791768860215867377203805924485943222870052234278942816393091075078680534711526135351525186531505490674190106179809882688285764863147467988074850143453371103699617973546310794955693933413802674462066561425541758887161607459047453694898375139703531418043541569515977241668413145276469145975065941287116055543750156800943383308213460427824438349460978176778081864223758671964926196440268796645600644349224671032654777455353302165243792797682278908712083880183927312954283590341396135610074440474460643417091588928524373689436230646370894915863927245397635346833248702924742245306665684543310654248236673671613954164790539534073068494506843710617697745497502059231580632397269018283649322338059907052605814277981409056205589733538549613696538536395442415589915303651295624030760705136072514699599892517746064801155523631429841275290853299735854358542875746028623098348895708693077390214969604511248257105072576377377014055477705829983601902890135616001452382260803714480246880603770565943391964342060995984561670813044025996187646354877953933253912652097699622407357454346358683936663832556401535786444740417945667809789754648972013606633581340142573264843491700876529327628327900756895062108560834599583344395759959856762850217387369182804282551694710277433843257320092889056346078581825438135615284778193207112890024844836187106986706799178382328995951025043182275158584514355925584339199814571409256267206857131627709141435614257013304125072344938225109079848272258149687662413677497135816230454609960953971647743336712483411421013526429764770722839417989814802798449315419908135028169246331595079492886192491341255139426968388969661505561636853992125845097862371778375485891923215501985444406769664303680149463880898924505654619087372917892913888103135285038056997842183125551712390538628143667229105045941513018556438296923072537319332586224459809008894257619682128147080700785528774919050069137020457766408874424327525215413053423740030108900964844265491272890057846646742392975773630115107108407420094455011857162576132199938274698323189967908073342902328048184952060169446742936154917225361192627816466340228376610781472554893958178569994868359124731131395355210633835982753914246869703894677079474877241782971755117746675654677443587855368543892011390647983706317416859035965264750476636661997983493373019472813125339008628073344445675344656728845430876737412403454418568587398326334816397666902849134111809287054953558221590968015748360534479369936808802237738076193321863114435748546733419330081383410470821733782870003604626667573250778153635368378742709510859600841466733072373670929910717842057055616449936871408081032435315716032286577981361021697611231883437004131853987874738355270450775366307782530569993493687452858209357227570302570695416760588632696835968190408890213636515020126905987088554961538957641322446724938467151812685056012743575011574656359562742064409220897629412726006210759743562647069844276022901921845047069648027804926275283262698212787430761548576901940709681286741505584335784411383986253882058927152836186832159000375250806281329028024677147739399825757534607671068132014933836125726159336385954084930161965047980573181222158882540420747720208572100463247010825051601969833758875384185108089019950641242186078281858016621682455258317626982598883036690076167369537436705498883917800987707625772655555288655767319086570961965667650002411039859007169220859522074831597307090635519181127976039390904983438291781719525908600858807179411337353365430114197326160965959679742924272219699251513719608136690969583815032522464498650067371835291806618123942447224934971521953175338689101647762667036905279329469095453574541810690152323584376021301542626123574306129969796366239690277976456913151827072548082772295519917922807780340003460845975904197478838008545185878817063259205716683965385890100141367100813153108672126791536166123537191444948437798550908047761219075131520059834966823005179755816601539453338156451008790198505948520710698244638195342151758564001629340434237867888267469642830550942472669527076568781788802520965800511620013477091873411164515600545290801294392574459555152848511213318929970601884943879014161327790176979675317313821840947504718916644700830733371840123902894063680716983943982161317799398947955667128616129026403481855305501103920040237172222185754652331850322571147495961234148224845902729852744291961152250752801575366600018623297818193275916269057203698021355436276909892734089547887611803500236272482985253323462595210339520233102310918460217312313109519611395235238981748625256154603180523346052113817163500429860692143986940598696551898334000654292590748352710559539845761473302236100358094601163762422702258138112915157375276209163641371987993207659911290435171708804597379980284115508250690194803722009202221257379085655588415782849053818532447669798583525717715038418979883722652265431984740074593302111696905224323578492875249355604721600485412993424704064615828174151702294370890304683352664196559197956100166013073975259062118936935670377046536196411106324413799060414041863563763466540148076397147683894034478102842105863495354369288327778033682392960070682105089843990458668608757383787814532465471631179746223900910489599082551987032876359310512502987509583171911587060940063739759622648838280112819803485428512018891382370728757079045925878514902296466579504456719128855778245467730422640393804285706420708798923766920769190459678956497103325989090054657017541332503614588367206665665792679997522320338362067789260615822772900997878510554226913543692931777187135151768141584166241494541476344520531993698674293168061335342548394709846149875691023188203632211983628255202747362929818585609432604519734774019613275156715386163149252646781115178515261012252171821776188790621356151382526719598896457323613080214309328661523330677358377039725503799243706615946662838809029963395728936208638256911952229777944797840751928153614423620423180897117504800944283721946831859963431033710364336012373126278235550314261834204565684762183480818514452562233716062249819451633173883771494959200294441285527258346216057054448865302129673959853248137893168320530591360818060585018101470112213612845884022583163943371370203644470834724424560305050649820550745103390454480143118082435985040311969731006990580432344693478978383619457090247301373374614199865146134609005415504000582898077114163872314433533332224270643478400842233327854106996154830260516146361825704081498696103561572649633526252462915353184118901546581759981781423120979266001450291716863075879703148321286449127502819505960371751734764121382876548009733441974443811606683684568444993566288255219460054070124334779248811942367733728477392954914871955351085098699111978819952841757421792081095132391622467808379676815917474202923819938057856926271923699570206329166695446628052983751725894976462892510203961550223672002134880132324559441061605977798825400608775575549400118542474467292807532770201823612417643362156916569479340952798833112430058585424671744492566536720376567558753773298228153243582504720220005614453787909457395627441485355639935924433683116478638342734584790078341090768521339065338750317246501053839429359120053732122383453772436166114638285380926993387889908795118823843670249362817273231213090873974691777972017336764109237509998465472382481622799778695208476659665746510748750515494890480992430081078488391379154058286106218021298532420593915398892439406323903043562556282044675165663854257700419938070129608066241480879898889258252986364960448120827047522002257347878516530963973389446004999396875251231988208624618381577868874230709972809588101663786733866711345954027580463046915071640645540821379071063876486482438725569972940242653288396416595063624584632536202744786487457822393167472205137760309971067854252050520485963085963390091266713222875192794309503526653462950425869419031244719489364932841539134273931926011964849153717884809167782745417447212466878235621730431402407168389848152416873169533742364972644110310270224430710478705694026390444001934612787767945064549943296572359437971212279638250905114277177532785096775899116630682174235711920529010373923455110346175940419136473272772723839827232738824904941306649188879556138476842416705552379848329690462407678638927114506344738816685614511962357421940367101202917845326446627712926013736945153003091561855732590299334463536417669983928579010278046971289797354377672077352670837925195988884102645484457189354104884966729374491578377653773952928194087699238121305296886718315478535993769705105987871794810609741188839771763890675472887232481229923603389896816545397336660868360785820233978735292854484080722527362985957870372695549224952960952253592808790055394170371828752640902663955436657890260400983689194879115151669468822957503040103376834313216166312372925086360579633816516214385515751729738413326128580842233913964615702317191334133372447654369234800151208039429277295068991015563571266413347912356643611475499160855725390914841245530599798211618970926744303137788198155907305577607630474186694717229448356583756097431519737481485157650416377221247565817177868044459528036955103620698648945311637199814216222037472419972367285979423752043989438005672350538781140185047270957446130259983027004092432006580458688737199303866880036636159815570731096168333023432306139470671023533352207781592350964915262299946357074927149739616875443907778813431364350305815511545258331166331659265179503744248654977962385141330312859460198610177834674205540388317598496865100751524469565841316679163212128028371849415288207180333949945605659616329352374996881571724081613094071574372728040985128786791003306939178057079480244247058322458936424645082936546083017637519021457433081384409240012401058854982936473816995113386314169675007283613413529539400943068399151428346374623201188153333334418809063758421748902348304336991032934046738122682664870387348420303911520649087784276479103602529034032465317349645734747712020137708278515245818198897648443489264047462485703651102868413158448454668870500032960077353780276885484061148445171542023908685013703792955466990571554388671351102280812624672493349010677042589025837291241058140624807404351920493405849953652272468977514802882353394630602265405909169169492001159272329303371789352312078025720668880284033082159809468822406385242570956253073103295962260094989330286820324134810029942005428119133404870074973384756466955566444895956856947978676214442801558451072738303758064323866526819987631773226481658779007237240033363663929995060505021271452985403929225256134944313825768960125129260315628524259921342715440245448767305980209317579697860148973339965037735727728126307454889332524699851569661705649712709122881189144956650515649185304578916873566678068680739008596160756233314404631418002155717598147156797087992657117768712314438258673080414515309873385860196630512082878891587686460229998984000075097580226731233258982899572082442009368098367186544247664788792137641309814483222427279374077009844548515518525470024330561650196656064483651551825607114659328768831131079352822568653707598888334770593832254774659526243874006287774249142957919805857842756003460454665937969553573402051154552134648964880520859128914055993098197615963599933004429823246010446954870267742653305468605163717954617177630669151136515564380239522392178420903846013236723967390587220821735530364230877383012124556460959312881396982240018363916278736929257876233218321417110527411555130754391694376350120003433482784488884133240790962941179502342350936965626256360801834574973144800771624556755722969682711510843553392907677772845305630170321251309894973346014844127791862016274901434564306329234708180285846181097752182569214167209716379801482291515348830939235763285554775584324035525196776769097463228536261306912595022189923707501434388153254430936729339844621391350919844662456138766443178107853789654819783827089839370311236529278195705453423025316528031878725748235826495952614341829316976289308262156667122778435580283406380853585935229172862017066087656467026206115744884606893169923174770880105128113297342291926696902206497039776891698127722289722979509247148085691072269006247326401043359381617016458944517339701893522145115301193194541406010824953507908074816646642681917741742650180245870871114096513025109492777379241120753233279664159999765433784912483779518411814235072914698141791033132542299754423177709126342923734820357383157997395821234146643579144145118090709477773121067507373633434824363039180193243949246287096882285842362373745529503229187835489437873878990157551480158736732161854533420939562910142606450661208514259773727099528687362103313711617605125739828701338418527953188732142358086209580392443306959975042402933764878314666606041225526790536803041200153295220976440723892611933506604636866913289517440528495271841010895051546427929324807163417695497222579263707510761394278528109005190202529509465148298433101596137917511426313189388368396233413515106717580153876706933550771505364345227784216551579542782902119097175717626487451339431028331637012168607872678354686388911479504548782666866985099632513547532171003691354304983231261357681803872676676625297281086784078370968208674694958482504261124156371974469737446249413460942768026312497642713190775979705138895490284251740502744660583784917174458014530171024669289074322910769960491118932953298985874480706046717285631843024379922371409580275699366357955907117927549179783861269684766889254816431374373709064815270572171058712955176571048627067532999294929253711940691605652344539032823586645139206975114859383667888278178050369943609372255304067311213316115370971103035270551114883585125062027281760206440054214141997210892727347104651134131593177425566761746146262580768199678398150624987746264295395213543289775598201199153616022099098382277375241880597061314439605968749871913285858798039439417868446315648170975019078693596717241618382700414388400585129562405377915381161724687647389368160169779138335276439474554547391486906483814504672645610653992350903066797495578226228913330909531380070280753590710225002260445265805521250088258787563262901312546130720637886375414949257230830069364841418585335221362103912421264668278515929022333128753745859183482796169930796025156872763485475748335182362819275386032300630046282458387747091154737719666506575572163611951197864549836451082554314170231414400066112860086428400775675625212377972072094646104911039009752101638729526395317918570406921554173142610202463426781171047245005611651090369747599462380821870134995140462341311820647420170764849984582530183235935758955663870977462559596549720342708472549397091052457189668381953220587103893933197333434787964944604740650457318687783652359704663881479603530075343298994926570808351997039532179732872778826776651736773669274607071397868115391642203442371794022667759067271558219965641585578110475006219461514076921737097398486624752210711654404591349623851299460816796940334370894801325044177932300664329361665687318786069681564355579544352911483812806011302983726508465848190302877326866178256494925989623702682247282765859742410543600664525054608990518308336288819032974331158401845176122916918297909721909941914997828779338531827907423913571915836175021871332322232398041772593957084900225774457750507132127891898310860816756486196713256577972708125207098132681789768424928042756068247265813108117970570934898581682676386626525522922288693618708227621784212659065013952873398111925180497580338785916173606789032017359078969863093112336215723154479204267784658252348137414130806218825165633959853862596112349572933372700950827305187669520400392486169796274419591272298923689763639279835680394178031087017341204934085442412453800610538101111552897504816603567067099388919440809449045987405384224969908643267953670561149978166420287316895902783512493945292563429134101287344500233645497109539198002134418182700723179573747479138261252386089311497940323341498696147429104055398587148237682031477769735573972922364453587581325541495196684225073625302434810508639733208755257250767832648873468877961146289394410059715515719137114951977221273378173046968218069861764776826012555716400766355633794795900996342067632975885166312208043323458535446532208388091949516054186058898469685158109887566714257857649794693844372916797279099660396686350891265383037393635917189739373742692667971257209116960763844352120786784533432336278739930774327945876843317929060315180726509416550971508908447657184444668239769859429692763752528463544670494346647938916142760095607131956406172840839858146047462428685587174166020094248689164404512759852103531597480283023682870434512720542145694929242226269809555951227360496389466544546006002297298636190145498083494957415296482865316592186712470955052164873226934406125379835497473104011135697551884138920016388288283788385720586303357789137624616635617899944161945812580026299839216898965780867736845553218871530819922022808131957213148256252524062721405190173626336086283085760414205994114270918181090457264639570834201045298396373008143986900985135903089422138153192583641501259094944917377315849041899796963217699340187964703804160125680372025360059993068393076574274526070290959106037765403088287412697037741485118868304118427878366754562199162644313695746549859456722789947617159737390379900799441334070568170678620353683119114806018820012086280560645995069399108728607663356817892274710839046438542745992486980504767929846157418177685888187209059452065384928755690458756842206995657030770201817918043068951464375993357109702253068638574771121171984232122627337499491649725233068589471661384065710004761491858801855853413774324049603269566204588186658994470529959233859742176670724841041973737359417167707653156294734474084924525942010840814597813254547532414897839233020615454759686522877930623568328545920742046261353896525673326529458242740313318502731740953934585292046839383774693482077178502278105630463423902858430834532069822086447303520497262863722329957171564306091483145910207600092453654384786182121436601839661906520957354486587901140505895217922245287798394356149868634168428736707003816626026614150783009641212328525348989975200056265371278461422255995029774822022176009046530402398964747160814709932665050519031089378757266728112661851886714076388138691374010589151187347753010872149391649809023326083649656584413631301377818465860869566635805194608643610981210350312165319636579436731893586054618866869604127401184035763129442138942947356074677421821526363942391181267811359197870457021322131063427185879645915067081752981129632363654796255464946889344964615655207851841161420608512008573177909157841583371429357660552671268777583790618193024935074719286730508538109396194697057807738430500211463578515417785442283236329200276057392949935587109522079992258637078305170481045271342408455602462598016785623668015460956334572493856230091534687691007619915307425723604146580438034157087270085433796090115405761503974578167765326813702457650321467171430969366280166861457246211024987393949787395813837536654978009625953580031357205889752284486783852617769339749690370886102442278576587437617223383534350692057185905741039228499742097486613467681371869338573087367511363930602603476727125983825853309122540317243661521647905973610640013830689331778181162384011800488798452140731284232099797468176319382715341604074668526771014788592008458066949209725877471718916064381527731191474298724605543042525025118106438419189452819875733168523310988035091460180074523669151299628326598526646409700850384618246462586598674174808134576109448274063336948039183584772062042852206794173001221130930358819579550768932326123021683158994565261918353460795842749601633848366505584010700687405745637104105562959562034938428155485875403857541436982437001296092094075955151682647906613683073439296464055990752807626762447648197127598373039914669606542183531676542517266750088776934657071454146510367089770727544047487879503476549101592698524862704117006514106669252199295919424098224651866182470497298682706861869233395733687448931968970797022495677307511924069675631474036242093762045755617396689050028805258386441691884817251793996405572217308337539290414121050761468476730440455014550388173861122253250198402675915833563234346440220805273796374551312097841034892160903488853037547047160077756991711263430905158128340209437195917744362317483615251057082846064116221644217590374738740736590036740982475344654778326306087624636873329904272348941210193201404835099920513609925814359043266539213655167539458904862699113367439566883139831649195544635803468546187255913276999904116407059011869752997585250118879650456787196734156179462408113623123914582924692941017094058163027130892146876809133128370969608331075647549690867751409329165134416060691760979202302572083930004716249317661274620781745366405217631857486920607628042980683968485910867460270926436048102501409112045508216746163379004401104178929801996217789043096306738672480981553882654268426830345602977649863351414116579817419161856303160610945894447364030652713970510208670119653722096634634589319749685598460585302771822262012663432839152863498500862991877919655093015551826928813073188209264117044720860928698147326233691039963967895604910423752633537787601189652877748857349569550676441338237847677442712829506424472436053253411431729321078315934427011384243806664064856189499125379491927164991033685438764986957416615561856772978717361288607931768247282083046721769415506618021376177750977121074395102553276938517959013146571617288688590699705909746263096870451694560251989272037453726858962107651511121156990896736217386541135725867507929388664921655389400832930716990658416641341346094967980712135136129250667031630548018073967040633671341120568412334488190804799837009828867194191933755706570650487704714964997113629766199665397804236711091998222970481242048622201413999466140104695409920137412215397315545322831741866352449593383057307504099245608677207439592561394780134041166448401357752088396297703208315057242272462927514956225638693518465778097920712186662504471200247991184646410748587511497341820964772241925918009749182662888978627902410459552478897105028487852452661109597176256795617389995265974260653127443634549202006005319411979153639082183358632941738695208167457286275763404025623865366874734872854834719416416401698839217748864247604926982379705531397221842760215504874725115365542553384502429462592481941761526191514230261478403572716148353488834465572390959212947062711668935092177239489710965024053165084430977601289241816529921420080527689060490719341838016319507952466383540102720284775091076312243941535071611361359783284954129933146434338632264879356172756686450654563515806044875846704871709875938260599179153355342270843989258181558881536035140829854613800782928596719829708169644237591377281312515244729109939218541469692152388160638443106613990804083583615011473799703221343842069588832429365111578321751526103837302702260082639899591483585037837143035988886624890358983525197243919018060071440596199585978232233032731528250881310175865489111516766800222580266858731284244169166541984016825087428092819797523050465622198657457738106229363326424424095696269822443494813647363458652931883117045901896921292678023346280335340783693244735644044463862525028074428726239856576027160813128363791335363445899358086342475521780769034928657430187433193348245888632677876933557647372083596704845644495512649667932896077600945439040726121886198810590005275566310883965209863839727016275777671838989429496740187251808857696857469997511838463102282915545436614812478669167066258109050426712311560453037217915308843773576992715033001991656982794979649271018336068411171331610059081021905828830679709633396244602086946439034165623366325877287311452883951287279085393893833653031422370258739557913239839276841129113550321433792079144276323546844859626414220211891186116211877111432985627837902282896551043330726853440151418270112805488917424841840510592885175303634724143099631901175454693183500851758108852485065010568821709814732612077392520778859554407936826729509799353699879074546923590985850418048704760643098377872332363723286599201742573096923974801114067723182842935125497741734737737538720808217338654876036351116607882059505966785766983158039717058301829559674739021237062297371052642353179938980935816702292262985254834210768923254886578910409128968693586368740533660604987826382451894326666260466518628588428081321768572566279741891662802175486034082816203378717507869074014331353430369265255154739986861740451821613820753348758776039925343592787635441987463138296354858471033843773728238162931214968586145368496830612303279236688850927969161804667873083308768183755437752562745184762390672212619423158235051379882738857610088189100169434304687579671605273953066073606201155190293028684717430816058773533714969465745427207519545271079205326578618307888860479246293352171973655311141043513050030721010022899605075185137065004809751616855240794989841701510966155928852163254902806541446729725038649882031347090186096627739446543117716410241615000480791691043487384007458241274723951875416117368816807341872221661447245156005817155660109498900244437583638377275167472136637088812416519328019137967222035434461290263783614931289848347698452941293849795312377713863646424590747864312472039208927134328993767027337817117402386798994120419875325823109994820792320345227855851737020302625146146112256912964714849486881214441383610121051860273419046792709083877164365006651930154245925636404060002092992043612747942092131677847379352210861472995316079830228011314859397972096437148425697092901452328471299078357465796020620290767860959533765575988943642311379049364135140342670718306974006505913900743260140463517692465150290656832871496658868602158176949752113785811944728444615548080173121220280094969733341540873898366988065208039481953292790104032932019411869154149662314712793609772860632859959233326271486934829778961314085441632453698180861949901953211826829580218417354969136368752480217992329816143555370341447519154166379700840739315907217579709067299936195115389268883205971146840672574471747931439244165096805513488917253817593911469999598810510786652495772235815136867238539080561518301027385256658117346301214447204624995701231996525646187320502369730028605403998760377898051019182831151083155381548595668320214321923660700122385743371884539657021353293489751386430075719024837427258407439582425527435341140405170539251793733228517765775847901768446298412915379332778297239022714553178632841194684075328872693964598236609184722942291253448200966564583920231009422896774033091344177027175039496426778188427942283519009880784618217677721658390467932235122755950289381755275519705190279763629220114091387113318708398360095884580390747282492417225189894532355399294668648755582854017738362019807364263451580015281293026369046224533584369712865822607735196232117542479246787543799815588907084322295333179224629436003383480661604168734019927442342826348182468089045644506435320673788058669552357308046513083099828476267878199360527059806451054511444694074187580222893718613039735662974550716100671351938384608705404563071646063812373707387094609587418952835014259373620336867731338457431554744703552999345073055594419469206632532442635083187095274941207027559331638257273757583719822628727648690470923672058539207871334529909613043243740228630078297521888147184975889538429991382621828215409309961038387726217480099801676567616853057230693970510139332375637102096759670896791047138927887618864714371716566490753451400227627021598091934614031901644707912330313894245162467615126488678581010544718874009008540413151931309044069928961942836348409052890804628635676631528272881667619483827280972125621987862312402346942163561189486261891923691121204838574661145897779049564470230768087164768692088348460729730842856506175387868968227240698643364876438813290061423205560171881669643050796451965680648411885185730710078372360727984910009231045241146241550084051176231858662973586859348205629308289263581035738704080295214180719506851992709583206908179074563050355554290848605007614388331592403727185202296853075536935414820675168783905509189348949713353466060274961841949464350643279597544237718763938824346405556791175743761130319446573693110939555232649795631741648984511832131388116032735955416774331280818969650351856768065521237527510164202175644266714560399139023540824321545384330285432160614832316859631625321487526486457756325886882668221948375180018075059651172269307864237682597192071915666460704241663267836052542200381705056166629114360792975869097816226947183987738658857372074974136451325433835247172990005800844184139564050852178701376104377881776004655218200291173511160181416502420512935407955247954591061510544133643387228057569750339773779589071830779319499096580175775640647009601660276065093674173824568453893998940016345798135649575133594569098284797065407095431238380773732798843822378384483208405687954733272494149145764188079810329188258813202430463998963943250342868456116276073217312222025276479925627666594779844854118762693733910542377980229099639337328100398315597253252650308126724552567831398753616430343750374184304868517573286949196954841828869041176161680447043342698387023418970717169779716959460192728310959954484251807744373851465709834276720141195003099967074369855691449505993535065343049310823904281299573066586565225587004002852118252701984861651098070965578030221998250986189375584071703462513954666400795683307366239466309539517407067207473134047683482204485671693053936463102983760012379792708639548223902876280052654360006664529585520103503251995268533198319791010192292833527501017283285247568264321229632131501999587948350750194427722991109383442013386218076618065910754400005055109281786902620850011709945843942839286992648519219322075236855941303594841558138367044417587788243309519672950938651002931312058020609574591577226883422475800317526953016017248554905362926424622062743477914090691691705441181675823900011811674559325439730340939918686321155759989911374731774202731753155881517667976734763785857032658828978767178560062319885105478452992931774538473942580376279851771974498314011449673417216504665244468226894859773283152791800046851350201149066627318435770333612014235412157099801051197155551409392435133233000517283651597778342534671685797723516550462636652316162877680341859506388888296748292995752461706292366124329948330994041352553984921472504853872645213258143950751859439569956878976325360400707364330273142627118920519560185784797086745272986959301202188010561481810950450427187339277447834180471398480230419495563347535787140194264986984776351406029029128004623372463685219463667889406836433323556272249910248317905353505918566378757964489398319791278504823938776213798349755632745785884821011949841271718600084437305150149613967090156525845374104438277439896645502603403200510611967387667289969400084661257738652434876404038861260554912760461407020834668119905646598939701487632584023474948333083076259305007213990826187012783617916942408243038690579584552059112560073314917209365567702210160129068319642114230453463123729920282524546809524464478966030250580716835221231321492678451307620663673104608389595966013881430657615799099024442121615819506796544443819344287670456470549626534657253165229638265053571411811580253307198951714678151389464500466084699563762672314673753098631615774773995459422496372095224238157576985610545538119159611909837201579763231611678590034768140031695466974304896069604563095561739452303124652889174935229586644328517088400089005107140018110422549658355125749470379641680048438310215094429413579811624846093199228045688540058625410454854067584185393567347550196868539449686126011396928128130246720324559585068105247542567890691798619794487505010995701448909338386522358308077256205449022042197791840471531119481509648449684412926831409646342106274407108603535015907929524668974627568738491785644806878857685704124353744635265893062581821353745505539286866116479091433399408919070067716348967381291091574022899638513687302518342914710653806372119794135543251937318020497476391443059780712386333922222494611932658308213388511734954723278352989135574086812695928657478081593838315122727809049941109289737188918537569164326591140687845632589786559764646511710129961386296222402171118394639988054288963170720134605282845123545618192359687484872295857918571059901204603147518432967056411995486651699081668026758353734551222148970637647325944880005015349029198599961707525869187354169690562201117176525692158724934308109942900597964091715177726415970720484056378986880259834345314698147273808072219657905164946192132498774273384594286868672711846538977756587018215848014833452190632881743773257932029002830479764749655486963710969411808305616425329765518606390230353459881879571377454814728290906502558838969093956065506851267663462582024248416980915157352319500229637557085362294975371711729885042826705477400115098239478379601718459200217614373093968848787818649143239154616901374558821038377946918798079757788001477932903928478657927953953326161057189936267254140720607269551646140198206294179843813683965154408907354968960142067934279066258435193013998704707085850208378097891742112141243391559927567677525659882519427251953610955377360294345809127917765849191426205987144359576674620685051186934741071370336752868509062427514489857781419627301673657057098579875422459208642191319848190997877937256765821623415080431105018621008196657109004313733711028772295847742995863582156873789619530781553991860845382766563698512662150648942006562894333450627445729923889850235425544885534019178944540742106363776130627626960943321393311677286956627228178500000175242510686655643697575381182990702728529183068924004382717995205959268309372761435932985105809830912906820503343737037955795946831653039422132768299964160839062875360994808464321057026059276323450471565425359608798728840114242572920459696243992738584237449224270133957891802674471972521930909137660541461403759709310054696923360394258033761835940731843689162172026495891339426177956020606832212299182936614948000042899288139188149551560291513910460774550982812897608700017945123663236977158416197181747942670125442340390214547214179102535246841104400577401116388798211373742403343340883414160165771049454962535125534458772895968052714055686368094807193969225874724906826321849569835306181808208954965007784158974976615134505363849729882400024071820353044838526084271160177393757152870585084312258195452904440486656355790291338442191812832825346249931758012964176784227767796967378043801661682102439224088639093258233216341129322812241757276732311049581166642447492741417021816452239013526601132768968241189098722789923775614222944298331850513592082597328729995440086885745989508338449598621595224369416143260465610175616983783888076912424860485872681361700855751095575193369591375368579304260258472191414409471300768739319475109936559105164212196363694358651410415592072626593770573916613044606625297600041865108170042639289440204127141744692752923450276180298797068690125554838137340898801323068088382198205306058531865973501948940291071734136720237114767319234405842523828990957540691209496420766482101958672488791469273230532202470735331779472601754557171549088499606951581074859411555727947951339063426313636159072046493975306612679054744099561645333570926879644729809472167347183946520212824510703534301853186493858285641223530378869182101862738487565067135348772575217027846905081166589954566974432021901389326203838755452898492853298464342944373983756961595918105121540787807835170867912028098323767142312581742393217528873455618981131448036443733134496220830699698451201858630108741150533932209830855064861999089505726856273302509606625084067180880281445565046150251594696296466598944624083672017012702661048967570481986687600763851335846642757469828930102486827642836801369978879539211118872982006966080731124295163610507926439860856852837027792353367922625117073064687026959562564565716061790781801559008016494154210826675943402460522318587000553930332133635285367444846276916922490491779670189612805033121118916506321882279849706179484597780207533243361276281333611964460470863568826235938578433708407101566721608346464170393669231663394314368616794593129087156303427327253222281572490414502541250421125178724317201015155921293224028704277605224743976768613412022492351347412227167814942757790615094272732689247206563516154205638382980592709291987267001908562775346932461433538680204813613437196259290374272899251666623889445897104322938493904489846261107195632954934072922379112498470960788629169424871896647554681717732288366123302159584816745281306502101862125504481239741557312238719756528654689081711143355745114494348517265307702862586015735327957023360176199240324314097753924735849659159370586126997730661758390928815632669186469880803595244716145195292069551376494184994083241782122659285312508009644845769383420650222056505656861515970344612387170823840173109744946175215896630502828268029954581489014361756393148686619851758857750041641441947830859922263667913031891551474027161053575833890673675878439436091503296739862334873505435777089210269735951132743515914794550661263503374112684342040359633548456785323904732700577533210121626195345777411388849751110379083339842831990200394929811094127218088987906264361522644254309276910289796382714952194259532866569439187247034156569600594293185644600502117989633853807169792395775149166906077456666043980139350601684874731977456449902888616033660922047737991081847510272610936267708115321064660701175563075543504107666880186559310543990013522097083381676223085236065659164530836767421058116792065330210018329790690244258962765952764322624518152770749959391225443261668763377653872400808442088858373011769465636635518770145599941037199404664359460735385383122380526038443169926372495613970995482008612494177418962048318725005779131318405525489235896867596850433935418458907282511215866601098055383331528463622257753702133294760026406334643657357541583968472027589773347890706811227252302173972222379624125806714201498747181078561219396769189824788912115302299960404023364706709079666557894148426053646724406663356704466561044633872561692697634861826277173938372483965224043675201957000620045124284954891743872559801731640504243567404358757531105419069842570772363128740132055194350325619204846426117210513790698699853205495785142399827099309889357835581073640416370802658615694632873558610534616365299864401099888893995138415568695006532310005352805817853224601368730129430301323942247390014344204087428078191617398914610788198616870914404611413765305082696413831537179560147329225349006117120167411047493800832423707805895555560312042542709625931160354559426536894908545718210958043641542551186359218310036145661380611869955160454235495476219363790191173050158947382694132278648200606609275678195580784323682085161303769334243382780180240945915639781092946513285740140663108030001543239541241256172149632908339585708830519212871602295615645218906667182748926471797955080045899828712553765207278317425246245345881106230143511030654419467023846888732731261049857804804406598030872491229694875498601893091541480449395228930888004352477251071612145030542861843479983003685917804990948297638026631006878493057605075274181382720247545316198716049801814754247371345036147930698919058898331273985645092198315822790521942086477066794235176266747644570062735139493747334283134780477782336801792181240050537199804034042760765752084092949870753655512472605823381679174479258743186824726151954381552130118154623017668344255380542924659829276453078738383780573638782754735177882339290273296701469674918718041600335776213815192466052431715485484358689710328428417330573759290415139958375599617572623238688609378983109858869765137904648409537133032511143136748924076529008897116571516238902406510329489577972198706246718636122179040271858239638110663639542061774368677550341602975689059360052993672429966464837729452333442078889222632360189916603949016898433127950568864794462757937234532351022553126256054138519706354603926559106766268924773005626614958904531098909191301447740466428411893205425788592260114521342451913942827487593828119459137163835785777322399845368631702050521289332172060994561538256133021009194206487114402561263921067562703149982213525520405341844436736159294539039808431929681475219257894144092640364598050875857542806343089573761659752570463919961483727003278976985746591687496284325835211123597784902438309568515572827939923806036170465519353913666665451476787608957711062241119470669988228135551142547398786481982247274572180792887128294552530823619443688449394321834762595574141300925793757169180535052998219442071262974301759208088612224014630401745925809515324523710300806822838914394870961059916784036171599258885842479908089210334900376167853919589108645716219418661284099366323651570465495096514941156798087076795448891063749087516880498880422727374270411042546468047032804248510430443386865289234744023275523097207100600034659515111006060923114986637685252975562268608015927500796087109991807280820017142539337170265381976300703799678851999329656390207585394154848599221676386446110852391871089572831392181436568399909504391576964794346840644273960336558634020896034539681035765461678662720893543558299640843496340956458167858431480595883564989487953102073883371485107150901322775112054727395497484884634933881765365690309631322866966252791358462813045089325380985002971995857790100514086917051747020890400107800377179683847401798503431503006883015582297283537234305846775348604099093537291453258197160013161338891706773387992536130413507901095409612257021098346733917058580143798064177679204970106138187509794481266732763941353325409242350794972935419158442773998779384437261264890809808797258240488958474231131115395417420217328315687316005900945261667003703003235681837521312499890725919554272373387477555269292958037993909152270724748370717943944428873121492388913048318545000646492233858278322259485235035712175894089135952015902235728926211047332305975362379254803734776960393410010614776032229298889577089005067243108661453708416246810367928841323150053135367545749875630529396194670164624279758776469890167694329650527657437277812577278083205377904025961469208470583800647537076363572381787067775263249048895797479589457943973531728223315649941267232700208371401613235223879505261149042222267909727104164583774637331608112938811120575053452545177958516410340814209257323630911347499664861329308334935157093391963815981602785312366206214205121970958900969067631850540807443485298817549337384693476743119010638904523870612015215597665640064328305014037596304154777040100458102515989360252593529429850760807367399395433174846245599716752401097010686526680732659229084812853897629095695231990750727857262567650873711541161728518121030783928388335256471656955295865742060769962163841836555445429297060405994058748691851331890248812776642761414666056443854025572872724995504569208900806542561860035235336160838372417800028354241074670833254109297430249492071908711873619213530014781646724039760890421425044589364846093210374942777421058297325153515563416550999015818152849017168858159132257243676575253426924443955241319574135038412323507609040883389027858371549831071869713183216280713722227874433937312917531738839158991509496894874634012802468840152125809719559701190019023283399973673183046701968769007440764122218095478645572001622538140264216741657697255552499052187544654643597708135036760161700013658719057888909461557480913654816573731289529142732349547211843115130125571119824358795718661378599175675696638787396400240162072569263410430063197361366679328823438856212181351070161159415005526967494179238492452972061920305294048210156363532813968920524396453014182697263504184904319047741181742915378093689895220416323597295047152340067051063352380026684188246670536491810743259984596588042135565455854628105703122591833744829617440990060681524860998126305559236473252221193344029658178883970481301724056003062311534357863416274363853294291548051839440659295547431865367425497971075610759703793570738643593366554152652422289615366677077850681229151809939799037009170488570112858185731406895169351253725701286897261613955385598877831619305994455629007126380455281166367068242784445782773971995337944372312630612457015235747881863196383719266068900445958248981240913724424528420675844171898406219795034632517263780597105341707234209805547069828871642562075895853728341074343319973648506520768397956501581703996785010605505203024178466296338058065801722086531801534838954757546846715142293757006341592816924036854862853584388866316357973278454339217878618740023561703494008551165312623549106618614258988366483953471707312494921211153485717391453960256048770867113858859132668665594557051294394099219723471391251719430292531300230693821005294783282280333958160387449666584961020369114159536613456690029680425701342350578863582435421960957234857166179800265461177818634360805202395347675298107678006008439779588290398389231197070108436349905727535765680387458749267931768705911726442128202978775217104232028967361298339893282908694876669433978316455976015723435447760299076949790925126745342848488959962298589328312030122643704777847629193856506268370663089398391505504727200929806209983165219096090886600300464320862547556615707945876797810980856795159240518544882603226744330371469121549099723756225457606791464321827310089947708929505980979745594102045684039168226925886567601038585104365337629317851549171237846833921958658048664380071321733421381071865547357518775441802196447440275413261749374067696098424152303519293869210994963335346044801344840733254589791061712388533398513289461618789494018522740818707054137915504429236843103797415040544276459271558819279394491209989833344871576992264607033032031923304795770763257315742480709472936643536533637525417086958723770248419862036878811384528658654421988928083387368660953596841809691710927427356578588228933653054294154872410382595105395597089263632698199130009842919111838402958958496034373220202453305010597667406784593744246340966331893665502981050809021466088577800220636555632697413463455451476794236032705993832448453559858867372501044342921698659014398978812365561034293972653598964117348403758755245357023846713609194135563040041516256426166922115848095937987634428654673369851122755435106455885004734383941383252161081224873800098158319779072839893753885900906875540356837955100497034197791298673287337183962712867405234700342713888343104768669715395908658562119167231756654568980531932570230351697458225249982767252558505766797926895570658977767061943060659318229882866199270020676135022278285421242013889165098217612654235922654722581936170847543325150986417334185323351225414022501601460477111514153868303938340141401773847734440169934976186725174520986531055631851213222823039503863056775221745149511511335273634002715028922744383433350294114527946598303579109261460370860632659031112658741348958874511507450789285711158045352935908638335339357556777697652510716193647368789865915194299910658101978413142050965827242566913992834588875781707028285769904783678341465851353519196053135983352488409572786429381570728433083817625925246682657273544413012811374050546531730691431560741943230087952144979307015515633676596029241901976852369198788222670696066308580379169592162499432511241903063716432016143408329273677936532169398650423429996990413205871941746513309301844660850390141686872680165356770759560111615154801580981753735675685848554350769704018604886899595885919942059476733581119826706632517015295005902509849436946917371820021329024029317713024962954902254662358008277909430886627736592031805261914260449546912671594756418644595942279480312557161546611186616317435589020055640322259585895078768488506149064384613659455792681150535026919701231551240885845742315990954121274260425500231907900495500106595634116610406294490800963090567405155905606524334212883789045596148385297456828538231717167162317251920499739659081903997699627621692791664830463142344756387258114604441811619168919222447356007517304785046737392281297781025106491938205626992015696219172681632534615653103853068709935959742014815112993810807928544034796840719729647227420220215659957296143420684999248299249138186303782827816591273040942121273638802020313413837845651799099329874916272854701952513873013072583804975263693350747708511816758574525732431365475253426772171658485025025680026973007896071160081073729540713675718336369872322653513557282381395726138393524473637840899295124751556265754342029085426952124310487752574564323483138111831782042900705897753866487897397377536815585083475895030131575156176830929768842168844534166758195881315236831825413687158821911151885305523517277708404411036682229820881215610799041194911027420012387685663380835296124802087884200518656602036911790621969398296879833503334219269208262188655896289827823413438456286027119737141765012901935478465879767429978969020207354309333866968448203241082443540565418212222050223770997267803023733812766627966058486546904363217310642017882237237793897275365390619058139534016415383400058215812336660112270080269595983184639456951500192377616594641669892630549563806306744076740341273832959045519255745888951383212843705007434731107138587899085669551481009485823567560413030145232931616019367184814544222587546832884364923488942322620120111094446373454918615332295016485272172033413024316118243270584853393261802126742773048576810378353246748703031380571778100130952527596365234639474009241879646584973207306118319368715542411952744948759427100595897287563325850696033930068280699358404267404201006934064089038885766111546340309569842789030975311582510977752893659792559245350868944495508784071534381308559951059328767720957017115243502506481548686730812873897914776641873909139237147978129343125157552061581844802956060220904358379842063422328984766454978002058681669002355728871497046411238784667267584739461859821272172489666491317876889208733865304348964012584660848467361507685056084478292957668065493499112944318453519661013394035335763883593607738877121886364550682629039528646829050197468167283765488420066468365481896613740056691118021469704333079908166310710164344478126571847739741935128957778857019925443654389529693458889898662976429554377431090959141144971127502040730959279598473554354593598227154248184847764340615872740759484347782894903682989034729629693441010311978524045314084920021184888846364185198752151603925343665849064493293040443771501386812547311218968413567223250208770828971318481805384079295256827522324043770326719669232638437243829025411386294089726062655221681591943885672983975874341808655359960849268690525757142831099214255184976755658928269859308260366372977522378869636884052257881646442267631912869730734665050451034519428585884435266180099196407860909116789927239237258472264143131469226551480235364456129990317509366489794923532406956780808169562170164234770043218217965598536311337722446275913900182631012106407590678436318759417577822415838107271386709217791186473973776533127081731224753775887163342178826035962796556832949749768947647680393146890028367606814634350060450958358578129992384905403389015763197524867291279335950871938482972461142219223045631859333855367820401280704673817433289129103490086459015978728743057501271028572708325326728743636503926886703441166944083108073186478970374869566391435950144184343165348192895596472061713803498983843343527493079039462941986845805864182583487814590829896521754227737645521119064830104927920064371946904340783103045227300716121811029891240548012811748783306130433574879037006232510985605946237466663691931403066358021516549563931434350547629615418799838727482478868135741830764020177928115986954957944596176951469731440199226725882540436242975749589242265217121390503262210876698538662815803300764467758393379000298270809511591718007769919317765558005736623880952035514169121406752587002116825979403967116932600328141977857144610972960739341343897725898087389549995817885768438142812305195672378158312182809897963382183426249932653549053231386905399815235747223010029989061017133796934050742751376678504266477268560714883091319653769653201517817816720429134505710176667297140294897630252254933525766870556291826348778451223908421666919405827057155192150645371415910272818218111650546375504537488645799840789995553234125793700114577762215452538445663059746667388227296929239572981369354632318932479089131063908559388796794078699077835978956456938661878852749953883267416020501293428507461261442217619129388534505401467625874071235776656410011516753519727967831201953418743230002857148908134430993771380622900401635023594033306649958545046175760007084867568816234061562378213443754367833290759734790104068229909824290142160429510767877859456411816475192810847198438218383593405832429570453018763296896730249626399722750897245242120626770194230367784153127635377405844273843855120098445405023563893922763346245071394034386106621439457616356290087737530040022404142538146805066135340138428150700306214145989826896270176998214374693908399382638168844747010481203341054158430094869737215880729049836601999872248441624411741637679703375314710001357428243258854422923198758052980078704153811428412520460133613565726056570699891718180350064205421491383551954158476137454959212035788680560025721155282122012888782019091106892544742475762880861479604670162472789858555779940080617106291559596254171121149986191340716882873218097544073287448334860704792504620243558566795231135393956731519282302603854292695222382564588500624595260388171013326094043874686217040311059890475187510712592438418667264683011194866985924014595501456342307610776633470116788825816044349604339757105112827619355067228974538236741552532312223231239334808124719735460763088212693987985301107988814289041477414241128262823093958689636569672858764891402308608272462137471935153347790362048548540664547437640827633160432706139574339765612737490209878410036104611784045237802429796047111329356984087298982109416851241886309646320639848627054296492129034053931449575764705304434120906011407571931834936317718954135549814095553191182849118093836447491934227721568527406708462716453965378520573016674569730339334995481682709233290018335207004268786868294811007611497419854671883848410475796626826508307308404786189974225778035112525397054706658253580571936186224250712589820580888315190601425292430350569894089164952287720000014268625273787328710675097505818551547265838134391980861596964615285304998979754557837434780192725613208399025592760977555927853028376550673530030078035737431618582382830673950762709826464307398096494887936493627863857850552430254767257976141455239454477734129900220606698513627069794945716636286653759750021446796216984635274132160505137783270696327577635048710128250976872339513733818562683954022077136988221011127320236175773856638577972468653757369098582401572196316545930235299540622518840529178029276516456727326145349290369551589077834183856653716255178682796986560623243307263670578845123775085243827667789674287797823912187686555672360041081216437438741859112400467689403303279654954660237645428982360355707664969604368325656783894982065415427177446287575285977535360521573694445994249342191712214501842252273123135023851216687082241200647755186496575336846755960689916618989471701952744325964408176895707764180672293218789205932040501535368357818909426450339395369337296030764942810358900665398159480529628554625512307388051435061005187791993517251886853413740531112917095898312289777022746986969127621920471217770373650102144414629723956824649999017429478736586509883721975963371785416797725406462682090409786090199442688610525356543470831048103463824010349692310936821781872270410602005660975113171066194084784025992067008250156902844051031488762481678949272909406370722544029277028396795179972817448355846303607957871888854773256824325380882797884594801528316788393835000078086601174460850430212457431037830290219227279042066143953044276656134934242120430452359445989523348688026739754251566333670436885287839664985362732880307856570343072722157588907941383426020305478468257107185051317389769812713065623288900154539602323950476851214545285252223175333904885320868580300511819300969530178779605081368716368830539608893337429608305016789864559806351620042982024408640058137278547272712645066808881857330655948883326739094368157410854156944179875410048214294307846448391729139648357381548345015462263882476728366352376943880246187530049871005168240076006401894202819199855591749467631473276663193931661781546511853001319947842861991240410146501091433691160019704722228610143988008735504755144357692144445684561862123813633989138776934152844554373952815799443804120317723896521473974120319975300194039154402583916007394313824146016918776577789006456765945873989326467612723929302714824833803232802024648735579965652040041000955377134132104496300925927349936766370837269713197310134429970010674987827836617763823541359063828020904445522251038365188482232826609496512881939364571317890705395054856650046373526119515513858399983206794403684548534112913322592177303734214643302550696778506466232067970918482670433177442436598261313259336286244814522347834272366434496579936530392637674571653539889233403253848889059467422472745289476127447117379878817831869813221730259981324427591334666532346217476525148752461237942122883519987864068776868331989410444399786241619411342634129331500602973589285625622400500413656676902851041680833316790695821461897010864897091401050480946547022637430727747099961631909568260496941169961303171635410084773941081196070960760647778187846512574486581092152452442868556103918307340843737438850612522013605421368643915539107671703757232784567981356566669644636331659386856920717937984414304277083028793897133951757180945857905125818614841036350756341868842324265840355534699752990509280490339715753144127384615223674606730268101083125160131879461353149095749065671808599770739821352756528496070233516381395714272342133623261428529947100325679931155796863457092048340752403139042962236752702029938264584253203413753148303182551098149724921974338301758663807418216975289811531166968793408658621314385379408247443565677602916914151301742627796184263845066602389484269835277248471667214738093153519743786459264786526070060698907940669875907555606820261125305024582941911861366011799951102714263234791927154502497457092379877970080728651644538167704853402356966073611427007383849239620259976702306216755852187115527756641925144465300302090396798340102393403564313246048203784073439359024731169355114264180778729090315449146246845726647905384503318664080987119610882748202625440351198032721524834689093740283719769312981729059129059367031142619266102686587762545649448865676865800844255528332377598926837698071420117449386952450486479979122745649943303199843551817991991921783352538724142700165365220008507540264540572491524320849790560730043171105919975915443752736338435017754676677522073068555960142573642952320585450120447185309890156902932198507037355457152943279747778503027945115695840114400746789964941590226596112164097263504060409402742299203058952380075303802248695708652447291037209624325627940941017845382892793450269249169839001867247600624756287705571377459951504848721539706407128981879187447794951195025757518514987878045073864475522200671002915771604555871937104298438519896968049621711670405811711266303241505583684686258929492539565524287224396536118863503438754266318631251142983807743136659566280385042025354348277939225142470542813555062412314562325790897060894605212180758933232362064923560417031032087297227976908188941140898305299788307385087254994808277506021564743211987827683607563380777823732205160485037768326817575124993544710886946657580499182975659773397468528037295499379092044634402775178803630604797714305668634713177760838365311177732120350250268404172983230472604232714333817368800350824284123776122556542587643822688012974902114224187086783878396694657554724919889807156820393341435251304739079762920540061463790585876427703752628967905943658743176020925815667712950703656144113660988060889913676819000036293614378217145032449266967133011678050618793916645001865077118587447006591650348532256712708362701337067324722578586076660650988292928463619775429415259258243369166202063601983773740231295247487111773982436535268155260037707755911248421882977110820266763061326144772298518818483222163735269881575868284259599285668232402878371214804204258436024212229406242258568605650392309355771164875786305384049282053811078076570567163694173975713593886888527251131169705018241471782075005937790523379606721617889184148611223454699984165046450142142435802738409031477269483130945265742344262272527620081559145556849604624728131049864388756283383460882610198339334583867270383277547825196303439192702600497772402455357485393689951799633523151407942862020662194097499368792115043792875182000627722054411938316973498518360469840578705398310924342537904829544329024740975865771580386256193783704741175424100663231749184858551495370981638378841543581762007209112571444791514519597040442059485183130826682552846181336707393828571596126954364821340907787002840743224696675271523425411135831722519133303663773398033892417458540964100458364921005002385297765854320135679279293762822919389180107652942771887079507610107688100174163486670165338376807101280805438926817492025722234379035931692536474420578820104188834142716201649052164647737012742650043628729668433463983969992823470022729497455628756953575648463119525373892345193882192730674743955683901648156017946016434993275224165793935919461499428987113666814908751608953347346545126759652021912050429587606608793220958329585814951517899143229341923051227621468729560163360413615901879896183364963061326470771046853238887117088570932367834304099091468854219627284345467226206228153494995179016707721362380947546344513062198555539669094240417092973559397437205822923777520548605867967146087143359919657620575456893649717040955692443499178215652676263650671898327216522165399834740752668949285212020146845823510440324792123589039381408486063454564574002531025064478078124216976315988645211422493958126275074113016453725012231825910065961942814024311541685145710708437434780786724358197735049643974716971302268430934597929007168666143808861715184203328205201446046550784371342339654179079088646046250614846540940254840121632491265959228637953764787638444954724726199115545244504594987796953275013374240296041217216149413446473732568008880113165568086573631669135884062824672233646518537866617034915248855784134406653465626684025603171559649228628796460596037226872549596160836241086052996901984543878696310768327807246417455610509992130046716718583460199595296432902165047969345672178583268600086240176320911946752642411099187781354461549672560670405784490108410290312295175449927137483470905856894115667399470121080381851570500673796053900025035193552363783066843298710663544491920853116280771488615416754061814735976473603533804620337647734201883869515782927709881337747721022244218985711476069353644191919825623499336244593710259371198750750284639669162120191436650807332393933202225246940126507167600774753797295482397949194545713992636995285442315366113585429411869202988469977081372733497380515683324894025553587975762331714975193400313382097214274886740239113156187213256539695942024991918190810315208651070717267260806476285353483333876590487620703972671153177878349030897208177856306529120486782911560474923670152227012410721757029266857983027666297740001655881316704312032343839262799452334080903782101400985447031007373559604916069698594445534194304724686131396866845258656926784536851689811012683276132506801897937308968346010866293606516162466663621880993596732399301599186969506202509009459642125664619490457552976810676539778995187989662931711832816201551001313881224849648397875929619959003923051226394802396548214355616239457524339081489699372585225389434821135215402148712728445181176258441987445078225928555968065488800366669251750146688829104196856620865548939277164879910321240540889530459877607729617525534757393336046680019176920515000930270733044822994781531557903729052493786158260933621209135502082574185222639446368340390201925952959485457566617583522275383196022174297854770402722016572515349241153822859408643395116118496688747658619113586262383831320361883911241419141566077976602704808734331508863386705545264613068460450741011855203839747368256165708319349635142182486764758945877137273035087269909125136220985136891986899782092069031198490481594891272869729701991586380024763310823471463429625004091463624253006327891600496854690711130222340578268202127666481369961831527701376691578069163160995785589019648527163978034724195165382284547067046441577917225337195316817468745068239474135302944893484127504420351636495204865196617818605527894146927558140228189574108292914705264558368835340274385461221915598383001771296076689840740029167794199809312798012636260021976877235398700901079870653416973821795859684319497847226732452179725174822039841311358761738416428048399247847611624852867918460882982060590046567863191202538661405524570843124760640282230996322542985130633948357773964848420709364470840531359048400577396576666159607499982035084673774722396223405008484446384878768328687929061463689733571149584386041112988941663028303584956178518143763311687683059429361612606608368967379021142793454217891019985034362225328144912094132224525333937794796956102205012100579811797554860490192843057193925567017119379324066266991899341108269926032207773554336999102147162460048082663448528943897699351283808382095601685773830950003038021660676420826913851505735992882198230744899751449878395689143045919456700575154249317140960504498391486882383376575607121536600878767010166718837848874132149073469909593670359036301957331902955464822379113409798495090813994938215854075981781945685198300160525853471279475679878066567591220465735695023788259080844192278818787159118413315464973210948186555733716325580466956340731821137028577513459386818693378637101778301882582662516407933827842950824309023696459848103475154265025378913712656882465104113841099546405237670432336932099881152769050693255988465145100931625735520461879483424515375791659093070688596466109343535787456465834139091118361389306586261458807208129093414524790282957991395227987580533187541796227343512302731361941338625033970768526998868264636901246994769348610638877243614724183777279437074608399156074911312174552107422447476008593445977613364493980160892543546135987060547821565237349823978865469807007608456009937911001074239747728680617148117072958826336627819833775937184244871757906154302148537103116166314170109071862333444554678877996581770355946183584492675226233319322237349149885871031537607198002165442831390978803624932044488504775358984396864449138977588705395100268929165379684123810711377197844452566912134326826365612551806246585369927182603665896405365413138594475373554879410600158829805076864131277920501113734029185873526883763967833643935118016475059996013838008959008398382464832841744468166617754462651423276423414833455504661265521791343176355115664401556109172912057624463919334857750183505584488142279130088093623247652776569460399449732458134710732175519064338517378154097688259521145063956473466723651622117907280291935699287304298286234915284411817734291434686868651748572520488001289372634660077495884496878638409965539346395234695782969141522748062427977071423409700521998755731313589101257865120842560913706230004784458373818043226842839200979910248100955981806411460517366431669534792704362173947443806415785507304997165900044044997633657907184632448465742003384160008611205931085421286273046806916735388617396225563848739078225884508757860613374787406170603937157116037494204073937885172168095668877042786862322351938818372819501284246526133092332841394624571727666493214043833326759583017458007397554633856619336332639137576306890369866229186421055989731898351276890388301896945400856143409351659175331720081904589296065248418102387186341684815746971489280559572445073314041261485380804300669902946597221720724454568717387833404958671722249357630850239218009806506980770272346010458558292045606517690006783656242433490898724044588585342159250719745346988669057577968593708176467903339376858433171512019061048487086127964470385901053236481951031233682341726017635134727956097875429387504754380516325238541929616705179059150057445222694591117740700706733827761232047885955222203828907053002362726740974848924560713754491038186207827812931471384825719974523463166293198251122362673016376755114464056279901628641351087804433881911607577290336691435000869702140878506998298156795152569851585512667308893873668386349612326682583519338243246764956478312053239846228598806030621035378303012601961866153640062798145315817093220983617860873620929474345341986943370659011817249144825008215540275818513762991453914750715969831191218977692651081445130988965264829404551592622166912954778254000375335427641137391231642891326036727242421048587744523993341730271725381702781617536329069853537715610111469686875236576395787787335581998945272130598437186537574349732100051378622913011704472611344690576920357968698805391076803263833054223791105909372658574247440353890124153643766805559812417465125523582361877237344944059222391803312123470065405499604805286213662172674569831287850302808020753595359693054535075963443814656582771838548871439377973078936498991779241219361238370585638969836415521244926095602170605012262851510523691844296916129027114273782918005228183384943743476508364156762979489757165274912292018153179908362664326369197690597479433098152802664644968472934714960760531878604439500151614163481352185343311112501153401455885010192791000270656938587641725172703005414755779670927670144631663101980981555876130901436365112250909076531709606647340872190523466766075035379942877451502886617760776530592214735373677952030812658987924816349100946597725664781247230948897217421539343370130692977419961815040414067061979233044148064966581229456586495068983616921745814629440113699982308820575804386087886328578880016026364999365368594397950228804183936325167838816511980285753930308398229199455266944966854475545250849934680325893591976484150195121307403951187782301875043944890631223490399710962056670670069915530980207280792767926931056761311113269282769904465884649922008667754904789225039877607601307853277432682535145115942883635698464019705608951270147512954628285225535177467387425005858424465487203183086430818608969579267282278096903074575724780783926018383762042412090267940231243755858027448134935300429026377952224090573508934739979975050050045562114482076284527475092555062739799164720778786493619852384139831843667480223745580041658959099808210986717503661203388124407814731494241897291487980467547001148219345679578635193405261799365398502089845410507153260097294894114482868741358278338242367204621454531513880194250709607635768361011803969542952827979245766894655287049127168175954344480115200521227126211255039069261306221992577657949598221131390088984971213313841390162705221080258676604978668026174766174048544790169122597399411919899449085915844191162282819236704067319687108252683027634153123822060275915360815373563107738537142846298448899986705033408693852054081518026295378089774381121795624279834032365943740759609107143006694145307449463375826582984655441229360474741671061944738814810304917818018912037865957978548453460788438835009056683129196508814960893209104055088304814849466868742032602607912019684336766615538123829001028609139225031328436431416678128512348882210561070734593641225686734278961974512844346777657834815824981702955404504658905687926807312605575005051035293360017013081053265273247549787864158903832954202417408447699698350420591074015966564238913810692954348701956539154215102448421146305348149349392795214605154576068854063478526206354648075189779695150488029820226188956451209944150367696019860880423392560998977209223679474388845063179110707776981455609087417968144636955882142898601315219550751637215094842714447590471613331822737787021723902597462566202862629024411782567688056175949376967465511587195828663385947841324560020964810250262005966553910961037516148093011344803342780912352225757207520215033958682108136663875271567294591455813881199705027851662843551247407165828319541847206847979281402684869937695033584760284762703919044518570817486478637498817607426275738967836456428073297231435045103302654942459379294170222042885004244229587412271440515588595738497759431671145087022481420755626807666777971660934636553558649063056037378944669432667802214363680562413111818227676988640496854937477819708609171280825269364574743458318622184626106053985939192707275563508812248688821320479392732107626068892065507997157426101744141317744747546569616818402863304489286390000506417392223542896906598707957921804218695800127214416409249713905503759413899301044025016242818995171185806763650080725756935247892342427094629404223622955648761757174483922520894483659490956556133092714205718800581603274954750447053544255404115458983912650422442222962106124735508966527596796102934549661089971872337903940978512744768902692218910081976487500868514416744389702099482506332251420883423374184122310117254575416086415674584425419020520678871450057583040499170551867379342903723287222741424024010414791032837556474977286922927202794144985598620014211037254172194081405206261071403257911725118567606282457540809117794824670885482230629077447222274422172502225128432728961092559632420058518386667801799178672813774157192373032668503208808793747158842854959902708311089096849242908458643747670757331390272813372681611842017581719652766480341322047542218825634093300033987894586715307147734097279402995125566445805351603580399424068981224856894743823854219973029871042385493716558884160205322066015763815137966600831058973797971992649639412980623385984792833847253333411339007882205055600039751633327848716079438415600387818940593320544075448088726843721287525044018677754062676273219926546184724562381994267165095053272977568097364984780095953175227166946406314586433740169470261220262634757782891345106807735764693852276307450740928799113392377099897065725371657728517757194074125144936279249950586851758750436742907158588446365978870874370291226805686707135842048802510769743484553663333474634842224356173875357190787740846103069787253435858916428312000438701989658230643532846250506336803570422778363640932314804363775722857363044972803246446653041649167175347370858318542283443685519060247001765209400821162453775859811054318117394672297021469989349843021781236835558277067743053492602987276167506718166099471688453877016657261964320468560249767677727341998762768237807007119431652582350060413702529953962133585062846818931311618478764634651602242545490130031621485792350341837414692354926089723012314898558336671551164261129171942241642794552838623667175762326592376425897755255033856490220929120131948797419311877657736127124159000546820193284268924712800778136321146937251381532476340449802901388590997488490273811030697272687985965105042346378369170928406737539175571920028989915569186799650278716063002772776910569689127122166301387122279464842040911844257915565761137761688734411993637178729349099152333366183981404529382910548979435406706110600022513339091380394927720540006170691166535671947461654993884395728372836860430406762102921085174163223258227408625041830675210980223824461007370551651591512603297411267616993568385939174633137173022283610005093118140705124991728338995896523953035295521228071467018221048223765712809847170577777494193871939857805745115023619620801529601364855254317419700012310553523898701162546641290594719192390838308984512608217301154214033864925837697883019554161391263489157361933816741962111615463925250845948718408471913954848307847650434046459927507263429393301121923553118641292375342080140738701703603557755274536146256974419933904760491313250313831243096030615953524316276526192411336177110210856088914455834532572298959809064116208489175962219336250151879248150992718172690104899150184492674414996648614599091284971153527449438724741765843839521854120560180770066122451814142930533078489721727651875737848360162055145213730925549035695753747473631652221868890433484095720895184121916402379050941784806182970480312003296301587042294085663892739447724019225480133780602954669931821703216355543660125296670156814888673854823775121051855746829052839896847077201515325014506705742478836506510403732391611605411174628567077923787363323482142379186375320167568048345546515753417356495798010666492427825415398295461846930634690202189818357193901774185293954565264511621199669056551917625591391602326552404718432332063480351766806427015354173991510383810452975672394095465753903213300404230594053043085956278180500623793799048160261558743206367301489431648109153708560936841593452714308066959879466598769541833430096176535241701062720657641259857379409977087536736534092775229460980830065743615518081155685888998259916601885264362182408289188004561930927164740734817175166144385428625682199609147074659863046489070271150972270963021282572279506440558955575853687744414911034154558563498963813292532636178482152228808297891632922980117568444918252006652420882261750840460084760600208307252295690038628471260144921522041352565433237076748253053379851404867816644949775747460289518574819811548073987468955712616872451044648420475800899479682958054829859231817870240452866602105787498102704216263152468907232792404513098723670298103328229891730645534971324475277413940445992751529796417654494536091283073405333923743204314714339750278769531689352094692025161485942187234059862865882116316081332840568769522344292733908335405703511649898500891883719269502974733022729971920996724133301805018699983183584370664267552894520317078232160834062088527456426187782023425804915331143936985159144209278232453876540967088994154093535157435303816771288327503158046478646917371940090545921355415918728085270130126849067733460363551681569494720446028360975207708226614601403960555383805658340578982083536211481418107229573451964645033357158714141037874501005334457992273511811355782077841730982936997731275105405131580949742638937974227444317512047711212018186133609279652178046131585203351473477391189808821549772922637091631670905699625907031082182636779712526566440052793357246506043909315297118240611427697825044979454434413349377638728172363450018932174781114475277399342396195410386295465368477645602889178573017282003809635371259162125207415252186016419387074040746815700054977055982082028352104160378151894236313784580025531375162952086907794865762308340935395204703395821430470228143580427985662006294834262078847930825584315337880196860048105855367235250283615331917224815811293039824071779184571574807812375178596176986887000004560796114595392852096624753176480949830611782205051754646933592881248753092933101074025308092313873236342170173045651176666513994235833826343727977982216817589716106251532713382615643453283556936367523101150688105624695873246631555069749513480062860320519662745551705286995810672146197292144095184119844201762437649009034171238351439216104999341283493169279296576486585150122165737390674703309819631793324056004781524092031800607110282729637269340491923607408126952220980100258670183533877577860232024455471575161107277370275708933088773448864289169279357154380822511631228777422716447532464875472275426291667215808442759282190568449382433121623630900258511990190149539774417631045032517809666250157779615247249160272774554766603994905959697552153159850406362958085562025459345453846693746748390553099226779021519990522051875778936891686332333265082736686659494552768435509991493826021041653874098931692048415962135052381811702191673460370147702548918015449999662612932399050262916477165580854518120513082471883037690530979208696856216384364719329823954448145728361188470815685369340174999550370398116151431200274894779303269770307796483653328832186292390083893070735872240611343290365388673693894331436833732744927017334353368907752413816775972598377877886651798086456827072635215167483436886570814952605879448554925044212086537139703349783774584024543618326264112473964249794004379266940655035661863691813964732596295847689712716380972510208201098567222475990146245785076485094188196690886248204844522335864291093530741301158094796889292031570703642883196389588014356997846777643908322594069098393916782910841085988160609778994131930449580526407184357533598923385807406141567456431643706432150368630612506186964722138214617047626861576803961185047333322012640220727240670218657632424654053833042010692339689203017532940872462260982123839123720303031968548846809385045922223003436510793763110914753668586099945628390090570969227109077045725415857760511584726847765529559969522308361014522470579788983375079435080008737716256660224476975193489997130468120248734837179323215889311865604818786876506137961479984952408275420365487009514632999393652231633435922475865089469215361367046653616370972684424418751549585545819586112074284273531446836094541543892548601703878263062693137836702393414612076476182709398252346738394322309803928246678719165982881135474138693490157718491984011975490073481240758113840734212227744267420171181731654571638073251241328956744979738912891981268722325511044037523179193565516329699799718116218114117011024122693998615152237898977386491497976063362469170380178076088804989261521328203122679355765744991581112994896432727069803422277294159174925543754398257307303764956466933092806349983052979019287132335626116999946657206462204024705809262790269050509139710286729939247454123884529648231595047304661180685264435431752427565898255477715812234248358264102780000919523051683432014942952834793495018058923779078748612081075832107109529578573765149978680115851884137864017053949730145019439627323135987781359216187913797563079370616029807694987070033023668685898280156360914952746604433472395949705132341932815528973257031079514352257473749950620839105129232166024334705690669230368024513886708254437567747167704075457042534403629193433032844706745786504088339720701997936049537036007804404829189588306483464425334168787395551215056960059108155838828074076284663050580642746090405790692702737063090164985300479003728781354728818206985429318636569066453479857657644170985118472745155668109291254070165388006023135871401385746999409966532712125022592978948294360598758128024001450831643690337455619997391734560227969126854783882811461269788108634255919307177444135027347679305627934631394260564070556755961635061508835361902842417396425120866173174630509554667519804283590491347374495746461843626937381989867140672571586313198101002448763455685441540412259855352096675405641180316912162996181854822304065317247728637629484037367181377096088534389893728999956029032346326210714171957398929783282752096134471008485360097536817476516959250655781920999990885969024525337585384999726444754114501084708569303010010490012286370529503518182697318574940250180722513009273098346964251838232381105067314918804886795733385141518280228094085160861886171840154047546049727866782514566110221342347960354383699516835066315760052701190439368051987969309244200449350724498815484284766481270018607711242352829380736357506631497966225093627717021072721425971740335257144513657138332808039078875897612589246038032754290779392903348173579269257493506001908916636861017156213338920658469203435376124068241711970642123354980107605318877247610303494011506769133103130884071696344190359322485638559162100388385662588465490788359442166727383300012707261841657738755130289167706066455090687240803095260874906277117434852063948759066408402026977293470557285612397323615304276351847444303490254640305628405964776505670170524865918084930435232384515368706118512928327182044708537528002131556555132469411861051166933573566745858739077287679399440577991459361311243368845580013438955952306885302702364622812526214695489420789860864189887665842369870580176864502371620579564518551042236926866561807509377203369269883448315320236381461860458571872914965423364636303227209869621871037212220781128670346464220493789924665638930420121759116426847403936088127194098211240286239864140725327618178792037551466901392888942473212575677665544670014426518830945163833925275447624672901512652018374844861746206077437777884836432586637743240839860806350511342866610548793739215595414526524676601990864208733186921818081830386046426906292472967324977049742683891015477076962641699515370088354910200406765478548674639960083251010312166851344330175688539408840967780947892052246488989916023336111336400211320913482130838041410226591612299080422685718819208006939138883773944930758549721928177221013997243474251286921461199373531394156733692731653991995049784856535144475411980663612280115305176067855342511095371903853459176691827115747006963394849214588867286710411916474657533116322000389006987407260580356493009341378127337728724716562595355973508236278031646574512019992845948707659536168286525648841066371990340070493311055190609895106011829797488459871819551171891220720448646468321426882452305565164767493675151980117428724426161812546644939401513147096113415026848616796865167625969868176098990427556319350790475071506019713210750010397433960320275539966066718063614643667645686843554067633975839158609366579059226018087563245052353534600140971081878092054501142236623248581528809441799507980760128219242808868254950564840144904496343617945069065704785712385018089069514881100833663034368501437012361404650477008920716784900472944158487976747555236192057123919449923438617948322180741794009339304638229741956932738311139494899488406627348763167709553740812322788189083491082731900743428018904249601839910475150369913510890923362178893205889474945898130584625239075450530535373789918130271519349840547705066679941730608226753685704697500229399322196525746029645627666514157488610094654196138974379368652521039916313064565419028419947999461219212089846659806964816625783812234258569578812048473176134414373836688842934680077555254012003125499774661576834242872618129957238041933385399776763151093786899793554946150991558442402715458021284843798988084477782037667666026418564085742294939303939306651219469873492200904832980128585581311838107494938946515849144679348958835088982220153741646258164585508657465028562456124337482811789193508318417988386498633384678049035362070707858692591447834842419718797196155635661356704861666621897842678803172524154431401354803847017808047606482619080724832866618430509303803887978989330008790033695714258971852757552253066169965336051059740629676358871758812837706441358963063798738568335552934782438967638011969600319906807852484983033683860582874141910375423016618048223468457992866195742725326836280838795067376850232195437879457119361808085609213471215879237733520388623868663935657698580951730964657722565395059669579693388660446022339074952930470190272528040282756114668667283224719567254543130292073134788010515444019955618435341380259241207220495327310134765539862271600181988472913730980625396368733779030951369687533575603038847873090141710699058006431928649449958554848703112251705350629238060843369624134668635100002464090370471215277202166112484728833589464219099168772153328475859926384739739507676102352689322350640244895903213584908399097955729306856271129810444153498661734560142097662000851160108630647988234738969346502208160891093950213002533840929347411796568044451853281485617632304848665566521981907384545458939901390841500944524563463314962805499756759283802154407129186952399490224181485172492226822194665078547016114298057906684151227050744499744167337235032413718982504566266504491945955684127193608158030936361642691425691126023503296788469284791604470424377912422197181944897864258627207207869214184780462300303337750333834779467893576602541245427421315058929244718059912570565925818464667666253061811231344136119827413237080164874569130010719013366613780879765727102386543578380453342823613829223152762137844519172651736005123231889536060848688938298916194935744449698010403258966568597543943339736387902823975411131499114968490425088997676655242407523075251168843713301525714321609155950629243000372096247315660644688866422127222655763925508563135198371996338547727305136751961418421651052952825787516433880252064848470600350719755856109605857673906550265527385427554358455233077140742724869210691619248149764623526246396105024903633189012790878260148771448791968690999605776331415813656632264577956016746310212570918164229277927516502775862308739120168698943568601873123993548329034632469564154207375504756430202947923731836284383091693261751871524639428107869549779697795821479760484369119125047413318473182272013283423218170020417441958841099609739189073912321387086196065337646684517313504818990108742897404457430981737010114322409215996644982808337029953671578775305039106886200864759787057658930094619022427403121836709268550092994080056857892670382911459969724857531588334543113739336670304121724495936929446347746860821143624533229565816189547400603448206458887680675247080217538596094155602661449685154414511548092046102546483768829687419233974870026296689140479797931196805626240391435157920839972198703370590589473127578965503587738993763441347486790706401382127043731086754458698166634974582296634562259400024786896911931741904917935301897874505285287295796144046434107911633536977909141390526818917178827832161335637263429822371853393651967189929255205407811718894868183312595320063090141803273677548914787656819914007421972202865452862632563616904761162966289304515213455542588827124867650713333270748262501687995911460823892125571842724796484475745490110875306688982860461693685735573621788601361512570685817298823976850556588773447252395977225309853817142277617190076804733024814742498610935473783646759264355883094167392267140682531501313002805349805472396396063353420263318284372005467660235838069608397726181722368471448840719614132414008320447571882853903604998945163181176370002266699210157399419823640581085562023013037223234532294256032235704088175006044516451507095978106429369365093447889482713313478342509396411782761697737492795349451639203574211779967843149145781207100476240490046616047904754661832548458009096179844073007497845017254869115843543633933252797334762974574767110208227025523757025184796004420272864000528037076140468920535481335549502712051723540560454933587308348387390397579797904563177556977934864036969208622160358571977834361905815784441953433308464285766946232021120777062324838108241554729395207022571345384838298881167225453549716916541772409336733259379722767174002118266506157535682249893994061940259367074648152554247438348140764832371485212870125334935644131503838456907646125129581729175641012967400232580907168179760285593325051057191371143753872284929395190091751686822193522943868152590745796808899062262533546382138847905716873249637699844140729884486025332195351861140893740326840258881697666791098269068811745944246539716526587998616139271266762541999862052521906862635383794340391731583482962527933126170703145465286362436227390071506592925070590889190067238354551125265493844768256276465353981892233184530184214161407493161010479437609031139055314374550641925352781521715908940755092085977934971577749691353325900072330115369654388286065572303440740809402050558225743903056100842646545956329078077420639391447123072034594128225548683334187741464601149406464239039820980797740631174641203860912051552135829919687884462668529311790092155145543281534979345325920328285502004848606214800638976632655713288232521802505492494545772505493052378210032744424019549091504546485475975486953768936687377827616342462590954705419056512413563752521243719849354616402819521182124800605632893279611650252431745831096708017349657438268090780399075811354648088131849880476385975385216372324884481092918501100526389704076715744091165971966818901346612103276462301209571418065269062666590487812655323976091970294921962111223759518589211178572816229198715004797224094391308879045271635993483773874200173314191357316583044419674010626148868458726351540855753558169260635800125879769733725825203412261185682124746511002166512557468100498306574436440102315293495899912720437988373931860400950161011741597193211081368475292727276200836609259220431406174837011013105289769647932094747474851343745247043963879342604885179248010608523714783368111610697277988008672995846827647987483260689140687256340649061730924934309845993826522799848077908828365656671108534599448814181575181675836254593235664770111912733265451369440552287913706861069328035829463630006324734465936517127021395425026459178582551282765950584508396751555812918632584153160796108946273835356288185111538060458316307828435184710053413763233013870087693131107409733642843889528098554938750951885757180011384187214844927953855209858983822442019082721307941074089155069115355445947333854010918048519490742630525290732103261073632496844452161356497220051776285774334749946055586861317403034318648570206818063482237860147544622623298464473784364940061982737732052213306296193557169384289203747107251380458723453328573965847013739443953012164657066098621003276136026463393080426330962860494772985960364889837164619036687970764679124750718609406439664721487654932889508031901063238664545246072490390431001087877482010660883540233915023202885230312635597021956942753674493562830020253061265206508864399701428978120630983774893019975312558224464117262704777812045345500752682860218512505901053295754409258711293235559646271300915522522120434663150290116039117209826404161384796647153653820788984163944572495670493324331151121693065062445432381782408020740220160196877062222431802135553893169928858758543085018312297356737077467003863617672175648767691351448674012929026647344661872066210639650432284854606208744005917090201566615874722925088098737260720224045037045737023822541250017367983894329477143742226051482049447115191305318610958138719078100538642517723667092976650075767846425112834488552716427804957905343230340808214166335281871181886008646473871660853145691351666950543219829757389833517485147799109690475644224130701838853879587387072621660844134062010672730564544979916944121473553281551929429174642407789820182145045180302134547021369273109046694103718701725874685621900222719692880757375068727445805010186088105948538117931797765685620851742018136373983860736392812358927370603653624476798512607837008954934057353753635386539203578921615718776056016380698353219667830730669993169783016091833581275129658382257918700894290682308385337248656231883525157771469974327083579635321765583114971955227714676518734976268304965006750537864636140326516062270884807383572104438188806520835833680333049527099962187729102730202334238439771600004092270754152638579026600665656871521115939058032271619032047790860682837826083231123646846787021323861824323971025887040012981082463340644040244314620690076407887518145513728466974635730253928579914886283008698535480283853620555236879708819539084013898892393165983375765542015052371279627386343086856884684153088471722089496148303027800097571762031967084938079989379446530354958346318000350277910849013998528149064714141583888200629960282659434076201666076441116603427795230386636436401251926147972551590452023787217654117807239096521683798828329138319205090135160024709828069395147518256839577192366192964661354906441445819021707224689944231909087187545410329476442271560298639991083726066989339860958692749492695313027908474074039269535154422423999257566858504203796495274151664812120724208511041417584574532109833002803639304631068663202606946693421336792272900751133975171456147026003591147086119203430564210702479391494374410244614911698444215451546333766382203464596288149018397158213623973306127176881586197086344538063352550862151387811042979691354435760496944440183229440635526672938671336682027369678810036628817529777492598043902984201049913790778872101605329716071110961028123046851004184228467497975217726406413357771426417358961477147854877247934268256180021425333717351126687338304856198199997628181718545622224854825725184171409874801721766019374856577785051961098849760938253619900224737493133868713396709237123255288965622983107785099670579390790083065032064212692511564474327267207568389737640688214976118998241185562482643542709821237696649144772327936012033595479768811987001870836880798776610537734276341911362156957178456592491968433121209353684748470570719252425101577871784862471001650764703684146991946809423736491819002404809806432939818736128508838441645741780050488613769166505071526586707046275665751491205283453953003016306428843721671319754126829856725431103615227629778570587154916547927657644653096169896650539548790691618983896849005458098866397218485434381488995703805444058035164081189985249206941544105233607474857941680262893100086839988245671752907975442238587085898380294058898464881037130501615531703219711123895637429623399432218672485515135791986846104429327149163708271538229702274766258188399573424991211058470864150743177277093214241182017949158142905981116770850048214062330290040170047338007974401544226711448922790749322462267594507609337328927413043831231230952312302286572757980627810057032576229929275947136924726487600652569425608766468240541676759656000479010442702571513391709731260799673123359215417289159939479074114825510760495494363306810450383650119654946808910575524458954474915007495633497603543277706412016141687039379334641791606172433731107289130704137230490296741088104174843699732841709942073322264776628635656474219778505049088049303766685793327946370021984335321773925944802991780337193090967267221720479635067518533976219734374383781864442107165993076293186563497118115278235345120843085281035150521964343762268038864858296289697087593879080589412132827204738079031482248667202369027140676597879537106180872786932395028820887206684377617907158474419966066872859340920820438985972757393916487897620250054871350794932489586863935882308569981740640686013140502158464537196578482376501227781915507256492539272756791655988273835699922987097696771987426886044989825633963142002922345432343035356868726518251857632958280059954830991203422882580864983558688143127327706653441848838534789968486599034830060105500682018424135873909995549755272839658664199729150138110241836056852202725125638461488701161301753004659111768179457489072700238587829424086650422557924295783536985693418062925488733981828907130361265172413028610418674371779785957743425848252020579398072518631767894377234556471059565171367865628561617210422448777633616462893852060160332551897087029398566992454054922615874217745149406209541681013003910460684997662528709983376679446999923850194803505552582016319580863398232174949589092283988396582344973635074272725030466752276410918895634442527728963340303691641457043522081199891803455123540985612475292471362814213933115806102811972277984548975892069585837080184051435570550324074929510038183781803703299237411986649554972889033556021660735355900411967051095860799236249227668518874122604410939989851198571449916715962113573831345767924223855250853163145813256436433088243689650219701283708674722514495634526518234580376062998712052137937519635278209056111694176890732878674141177295386483991160128736079482728701091692642359643735161752791297266461475087140590049814817971006738684753163117590118235687544464731975383076429448096078000737509085096675248088561466934055004414379267514980076270762950370998034845906923121504317772753955147016583221528086954067203627232380986295271899196203405350926143772675709616825104184903359067528207739624869887543019118215173484261793838067595748323372154902115498309982442356152643242286168431778006699171313301257378837587095338167327246835738238648581572732752087408796321380863270408675881223660481301852871589464819291048916810857311561071501534320938008481662790177283727254244849025159247698673464389063043744120703229252463488091913933053203803901580355859619266446870971427592721250361920305393412068773489384719128771736301191856906214916622287546916705725666643738638021199300486596908673836151083681436003085279803775189229342047184363072537400163701027947127539261477584558328312635806478311743498750576047630115676375061570672766793273103837390402910036969432987982120510678793201299012848467500565103803201246381482190040862894657000027555438592783153190557785409057706547434386610219960097204231907048822081707739269380393328965903874434301060288231940166371666016129751939034733024423674028875724150257575132279516686171389574982556477824081424158438809158366729129240009887377677495840682142400898139450014975072458203882918447422631794555511420378596935830254041577980013504616387318878883976376473953888872634469524215968580567543911866710344027987356867577409321145910940491073954617215074505877822553416581176544408254209988670108149396918775117527834710565892083552316836510165393667299082131397644219045111075067234169667914877079888547523320208029591129994849133067138091528420538621044586956935627232685929279859690170985497583691001424996166007850214226496654041297651407229428858002884716419184667178605459938398951438891000156396395432247560112274971893200364930386426839346550179223176282865761485253992090612506859568498312684714898453380450121748930153316129223955566376526088434631874074486319054359595134091170322665043743783616964342634920188907470616903676341645980526623400984417755008545086401518319448237390974217210078840595118429814251996592827512378123360670530161339152180084940242821821678613082853389424219166992918333812731585993906618483579718042235943101677746841967126783203672149800895871285267229601008368250762324587192276124836026106900154715384838606741368716325468984531513818814666832603809400177734872919148347541882815888981131351598878917090491754805971280777593210245950735479710624394196691933537480580813762283330261386145844527860706511475692096620245104462871497698010407045906355421085152917371559179958300769933254177252281252367859241732728653457912590909738909907304813429655523205660204264078495218590237974074081905661729229408456595613152002606470713107356215433475032473063989981672303320081026217735326941454218511246224685075894991985728677690733914224827101012539806213962948314460895735314264153943880290146958264899645089423610501777340793261984049982665576827223223440764704886764619283580258531550966638390288011502427092519894151689933940544661988812126792920676750433717251605874719620453071032767297621122017875562587581027866901503460483718800637103619412252573587496386382297371647520396814749634690894433028488292488029350274660864346498271416491726509440653474558445352341777206857497851011173185295765688330399085993306580307549275717260132733120218450512720697193718013376296967601342093937466653810096893497947247948729866223161099417110207766009395103043788231329942586707946066165862249528259900008674017140085339975243671502833313028396065658494500431301400284392124903477123628424993988258970582507046206224456055343802251663195490407285687470944934917797371021264691755029219799655145028304666904484075713288718687942423569263939722913053044296092932052195775188685577537516764685455969977123596848526302452292446008781692709840345676432086028000686596544603747133407184393127302920135578488875461574982580922666364192012553522873561035805537437865727056854823062724541134414108710020183380616764640430960931842524989372593199928868490262600144212266765170421563951135252412274850593832968578755861138774132224318873620389502312237885344034344304828605599255004431740091873588687388250090692119266595261639182036121923065364646586881513138457977589084404241966541352755365148574992596682233384001520253191231817076563017390594857013590662619508120588507683815870478718619478938553394735267022372062294373409987912053381287152712733236355389662779946776045030646655752045678569515095540133632904454705776007131610775616669929896908955105152829174428694617626747177436498339783013617070922294406825179457873129803803252657029198224141808022872263488910320942614609868485303350976867522036301682783380367010412169146887098297825936068457736360203910637615830865620180732211291119521891097469588610502879821239828432774844162431743845484810854462382280821008491101211702312427907617292160786825079689010957236590561748816502253328266817701891823015949124126995216212857033472086818695277725348512397351929704693355621090637755764761184932385895398379950470400733599975981172497271313600639351477670388436389439749676628888500155098148955606003027137341616693692327480485809770588037755313820822638142181004916160628813991855028883938317758963097710862753497907411928965304698953717339388000641364178575915210289739608511872611588101449331844878409548423681884793226769376047853976612047127779067905169302049495881587987832957974647046015928475441921118161929227958182654329623159438337784388463004338539934590485215538463326811655864739355744678666184623905142298899511623987457869369758905610485548286958117383805163453983872744524175583703678433660387949210760811656170269042517704812511324147442290055881399868664187961056809607127418296732684152781888905816248691273613069544160094275297187981703575082628922080463169844867248042147150883018812735738401724230050226398212156245584007768436386674489328827152329236548778592463729082297496491089997789224118450610935018511693520786037622625167683415950914222995971665815286597841209671692538786888876262294377363306928793954752236495726292143189577147365129290651349836547160291697300631646677516287870686861349869961416419060637575228946947233878453223234304497461371223741601060134895306802576776087080328246956874449357490541029912336401001839497566860454806522070778646202349493106558742494050595723065215765091719186458257397610071491925029045182296082016214649169111522713260794882363410034736800577779655712278903603813003209312401857811585806077864636869660086085513889752640561658772640904773974174290373167890836495008677825669764155121729676261903391098220861793210703526731229289579207739162716061519142904525245583451053728099006978823397793196236183667766571971117236329351772619535304902022865812153704547306566742212455034362704040283189853796370494035606222387749228667891486268608526821866166501129944397808746327157101988494628120830869618991299195952483390940892576294588001809348303670081456874924572366284618961135695539437898284158036655682503660843727985436552955372705165064270783308169500603515043865197016245126842582610626935158133161599619782879881243044369717990469508322384780459481460820494890363669467295673911792398877656993914152600618840688462565855706199566542871027653573726058590676974091772784753404309849256266287054052459023412834581270479221219036516891339146342478385684793059122302924006471263284484666908350022981735888269573482905804020913433374460222893500400226297440579077665828684147376976276427881777642021453271022585110164987605547145559103566617200508721011970810296155184377292668629056141165394547719412385316667910781006771608412937467874147994909811024652643231571311941109488688659650386193639075242860669731277276618939330604696369765389782625751437992157029132349089937933902164439483442248217876127036543062444182558022451824536248323227569688404742561202605824931343149479293972513918705951091676856531990556172874203001428124475231477621770225043892734137158791039890174148239438663783872670286024973871792149082831375798296919919356687537500047871056408947098266601840448714307156135598082203161487138660438020395328679107955675059501944066346849426737053128409360963908885573158457897541970946611347919403381608835931183340695538220578522171758791934632292588068031856788894364499756221440382264839411469743097683625720067758997332986879004799481083873828807275031905894173436670596725873578407453271260582603960916557446752950006365766491421126709276109791529342439226107613723021027806986268881189192001937022394097256295098638557433574967297935595006712637668244527384980946478149447927060337249440442241485626031001316079023279522339061232670546257122454240069737367486429850879175996351771324915653886190582794991054577177034105162614305107734950747156059833904724852791632387827219486134095697233046149978865187350526646358158482671179411422972112796868116130156820849859710069176795573731791788199224119141456531103509053906368477857114016620503463310707944459953710423719781908169316796538219423339201542914598883683687254825045636882540687359718623923476752381926158066111864693014757438425850018551350953754345979179336401933732707962074991702127106518122732398555456681037593185010111075128832347533286693171351764168334655191548600628014712569884910658270932352851912399010844985768821800900248988373222604907888778169474741728278552188652507203717407316038005168001369272934690613809991139296536891052186706593774412819334718556732244207280612381340297902149677221166771240898416225169896236430687192070158024776739700404749708088270707594368341576176483255737511833011078599359592740850520277873527408537367940141901540466765273315062558352635687775143800371184456610479262256573641075462780599684149671003699816813978105281168803809684178304040711429600560899673367229057809034092053877751967202770315148564297779062677720554088332717404659453303171308196813992627523094434839214940965433434428100445274139230703591831915299012412845490573032814582508492616523870305301248919927157953362489763467733994285746278079036471831595647727848262999396896457261814787131183290514558237695432778174069212203737762656538139798175689661195226010652471533688333648579767986151183734744597886835999305249228019471906036885916701844097985257520158244926085900771823647984567971934208715315593746533949373411981264533632986209058956143553611212228556900939479972973193522673521328916703997183294792435165525256473394659080575016988856947992011697157489696546314654548541181801556301004944895366557079545646159346824430343801242733071062725970955974196877874882134037306993539856280193112867128306675017794339331584695676019903901802322271203613435408842183242608221659584509210514471834005174335799623370727167267313444601210769597442093050182339231715912743600467611350926698811161862772688616959024985611626555115149345238395431054081609753241423231474791908543406488872475033161903187889491460936583332440082311977561099555261896339658422087736998068567657567831075274895411962636282381459388933052313092773119481942819850672636903076616099065473420410871901382156294789482574360612305107886611638662421514303574379246890833829616018870974932686778419863640737674574353574703498246003315355135211453757245560324911948215133433077710022891039885367734814342887326449416338785194065997304610929987554830435674934357064651665346972948820982532535340165999016585342200896907111099888974517164904686325978941996040806480081708482726762225395437398098390043243104249912298932267837761226628818883172068808076250232004908842404510092723627579231798132977174761897958447934823830551432450356092688130861827951813434667221894737176438459750834460685828372451925021396243140029884639494596190489126671357654564520692977711355377694949978979875537815615068045566016155242745560843503582734405185191496393573751337668527790686953017220426699530140174613147361139400777294809848058638366286098447640069497587471697289931522231979645144873321559670058520461794206762894511764975981545648230138043442089566750467830617721122289410154802722275637584151799870415839422183792301522157129586538170285883131373310632132210241779057170365825216801482304504247873028748559587054566076096331111623844763825637037614099475770242713179830391528083917100304318752492319505706998787249393433449639581718634701137444942855394795954274950466509942258476414251946859697492319138682877452292549178153400119198540810713852689728339679164604944209098527946037059571376575150256031311809081077209572873769255692812822940597902685412726483380302099489018802160462709198532877720567117497520614605294568129386915929324783005753035487730587407420731622197086456687060824029880621672276334161896337345034592603320490167706301418300041741739210107537979822428800530312888789144980271357096941480563402822083564406444230264132092680604660671281476877142832988966054000533919687021469760212728205459794944478564097209517359920601588406814309608117138113944674457793118772423598841666960622697835498930152030931569506869361724332322098180718485859403149213853271192898345095901332511596716738935808280981331516485497298771490602058194612362239959179777069474338460183587546759819877334808496657962154629845296146610940063681316365703087343167740136035123868493006659757513379271518703431315990039953965914136851916510607461376889102875805815643931262982823963756816146982950674046563710128244021474983547510250729674805486658732244082324160367948738516760884783896351684533787636580932360373269709004125574165816058519596635084100436546320705989406902591824123045662898193554985521184425681321873562444893880480700483188242507470757513765390132244542205321346806436346811095194743202310975018782118293174282991057715088870936200283609215594472307690095181587666574446728539538600576534713031158391618507669159244415868526166259894472164502650221664617800244655227848367114244031720865150311751587472310859285095693569464522494155294018626180774180055040837385437960011701061468949652514031661795158155259271374376019877131345031499094717150866382260687497357113817445710324921138910392512044043442195430353848933067749758450855544100323002821676177426642635016590239704760785584003601578379061317524663423459550656423626523684992188992165501917438151024978658512415702647361278127809316485782266304584397093086131212247052537472571963871597131419724529802887226742345619131753895002574258034634093770861735000178799942618845860106857238753586103454886038453390636064807834242224296875881532777201434544450677002465287483739722199326729912405914290183681295909108322811373516975844124963249752390374723088267455788004783181035908665595249286513130487741490543750461717289611969606914273883847624353496502985888737813342182402626126111907382091354582407845770200299898324552392867307503472292642743092772197283179080414338786137217578138845632481468829344562927323168400906063704355481665846142361465497418441852856291804907556531732386068790597772143427368230869250717096550998244362487107460467997175273221614472582083657437826027178254153428463755848615469167278740523662744142550837455919800810758364588473352065332463517541463773094761232708249616090602261331143904114042310534082225201432762796915700948084507745342329322362884732421738891408876697674154902383952728937383236787340118568548433253500590233961693509311205219157534440628796089101210958794087707470775797069138222220079259572504309064889290712078101031244829640762113864980172029462043684857211325901560432509821628707313749733039707021268813804929369392935530430194999300277257700229971879201536389620098605480898954347739773290882678881151955582193212300861385548166180411494211040283039241357431454223582742186573597066300569569988138997475844193395326307778206233995429434752751001932156500388407018645219963959157744606478713576836154448589209309048404241230070611986754001717984820029050678337396690905181630099729838651833404756043181225261073338309163153256872605646963440109617698059628995977358081223102324301948797677599285852142698505054421221635353235233057535112626608366523886929268356336680795905127788450930628355587314799275543252119622867845867235046386227106653053233917583418106506462926578137192077817325415798417383417798966291177988959586836092288981222199090898403811426661819835501462764093300032029514540985237872605884017328462993813927139637634208835037181889195558288579660520466466884960277864025046721776598794460071222074243853930534241776765506840997072966145537825323068445111504888438514929206628071134121563694431440004336050951055463289770858195761872555595082950151691668378356600623361261413098237183823803783719833472579813621479575821800832213557132253830327268698144708884456423712326350012204550821641502839182039546061030114878219044218310105038357039759345707481465232027337253473077011883584464195293162351581687676873512717503162505818798324286856932387688506347548046539896763459846720630936929360340085800342663188710396375873959173568384530646157413596297452981580644301007120722756751816408387722645967866663837494632820383557524697297332372437580265403223168834491935273077782254236577417219542103750150380442160776364955886979686454162013609341932902061220970681513291465818575561854756505065176380540176591793472503378204969351811785922445661494167592172236550494743224098608638288863495220477904749042258581930508998856688246526394279239715082138658938890038366133195529537177536502886276736915728869920916634692536378650983192381273347198346019822536609193769769956025623510086913977208686365116544417540710406196665599719998215260617211433808435709991544311531264662228902854599972653460413495415878393175875102877754520616956050082496187814454584443661902594583880367985069555449660385137308819134293644840731304472255024363849916969512919969239632510134841825325811358239457617732371935271458975286911705483955513559975960893308648374497793846384502765060094912943992669325461308154170108877171037253894781180658381600524673151476711923600478975341336905578694597827024128311837934767320644648629853395966839899210240831678578695747199948998292083439237917365042772045666097494914431338484994703304381586136279217227946170395411192744576547360019025366495784918039329519612796422939433089090064163156714764979806413897943647146908785411702314155224628793834810123256030478726036631002749745806529596011240607339503741053652078156039962812029905902617611132874855805526517356425421833626913285642379814933317505841870514520088056744351543846090383385752111400828891640674196367296690815295049174135647644756117782524012697712402266182050525438081199754116926421594355773681011420230470145864115962925856638415098463704772126468747682201590670815034580458297649205017892018128169523810654823103468878090023423970114420601830651289967769332898557117003349991776636988399014307978665107492259374725866137139359159959283038361927775414520381416286838437809488757234682493700596765263728795698412912259140064362842841841485713094704173413257735884353569427645050176780774292606110140849540725328759400946912890554832211351356076898884329696033369657419985384858478785224318359395095861831506687573386448750313338905568904192538347708472763061221106924313124707512890042581777658704403995361670444275903039716509927103663983050087506752589500064573587395219878086314896333846820193621395401014695163176498579458462357049289345282854700755308114171711107322416287593822096890552484020104631590908432700563432679496561440460152032473400870154904942073580215404196011586094956130367361185135001874907458366146193093979061472261662377247142283610541835055756034794560748214625668545729581351522535686559078793532083311139399491540532076307614049760613546852426915000378639932780054178384770109974477670129365564444804761252359307396761637674337430203632777035207230358531583801012458557632218538244522106926564861702708665745612824781599964148787145222121149428705780794447481902843344831754192120879850662032279282325288603493195484750703328882599399728718330873362002254522519367405871521848700714668744224593833387688297944793549999589312892905910233397960946706816654949478569213023360009258966757134199589962967950255574550777911401861119565780024099534376025086465468008667602661637335897439661003677608323863286079024055002425745359448193060310040391258300453336881479213475044774059202428221403180311881777300352117447005334452522213165389005139867638907165220385089854251897118591838263128398824076817119707831400467419478147131522687557935174170989920543853807321374930457773268893331152471122719746673183735920533092114088920023974977011543912364430777966815977644235140407465126747038280714888674571261401466074734182495868889353640852033841127289999149362201697121493486404725542509686371923302039170656646935561463303817291676152897894876136257626782616031209091093893304504064804144446008289614066749043312863927782004498214931945033314599483237048900353300873949113826837428687980159838273427361190087737536691468424253873421483819493724065954998501513090146668621450491844371845478456334141577684876476385049428846527552976950601902066283362818408229000547032968611946080179288043695249523914481661841902910180411347281875764967274894941098253746580420229494854298015563126995142585434520308234045466551869170797311223497430534907676569527003052868944433907036227099824250866946264796633687931393496355000648682927304161550003839982076879492491044262537060668408705850458526976246487473344870076088799617510442082830184137953282976888436193641805171304280878065558225839827590019348836018013093131228697716972916206199720709148657197234486058166551430653609561801586773379660742218471083395970472880862483653455561881650849551378871455840079082898861402878682008105258861107699023341966742180123723560560131485952807101389938952569533787305760234994745021673029510649264743408241459701354525041990315150756022397047858530275419298984585632532785177556576209006476399422895157714274409895685357533634051859925051743640632025754589090331183890081242073296066241110395425296809128565006847550914077560602075009185035837659749321339033169689255793380271000610323947085055491616251460061297161329664497402010563259076831515187974751171801547497706750235400692936113766509909040094618648578320243550673801321669326311328959850658284147557492153387067359081388968851721753483311448173890686344911656271793860731298683343424118626473377518903767547954263752561119501535450944373070975195451298821734084929621859493854805428917364422970577953735396318831791931247947176990199795534322885229362669038536290955189270294613945517697751628280610976797832458576856313541759274027086957213339034842150480212446550303328393859165945662773983988823790254095447827177206732438991825106240943440165367799396415028542915837711833510867206165786492346649641404744781529677814260418262110487810681248007090053042959047305170307409220459020108948456485360769587649560109184030033899095395539397580134553615659164879716264441514360299564053067313769907682050773149030128272250789577024586051434373207550471982524317567699762448408456319657012429727430960935071860836433800381276861564942710123875837336046942233908338776992364692004582223394529825687429419469211916910719516892807024990625760045904987421912976461200579271613564937360357127225177456601998045547198950654739049435439977054204275860765783216940098360882700392611373408718214788758139389466026213551913025872583349682977079759459216914406705369796121141905566859114447725985898505534037785242914468386415734984778886148325130760335875244613625643375112145584708541632111655900203522024316651198447594604374176232452238042912816091100738634499352619916967449611431663181292111893338118545740715240562787124008455202455436327434369000179027602165381174201391319108500189534401789379643908457015559805648039292766351542411507651949069421604798066961249983675473208172273286261294921661495311418275378174438590139901862011447932981669182170338902194368160205829418443885450939981612142412186046751339838394478672696915835291007760306364570223967922130590868756236478071833526450786154151657531794969830875550853754393240049702307229519085830190830792968450526867980180570269514245092799162820735674733820713352729619006348922622254815690698855188995569208659565077991958484451109688808738991059364907873877365252284321586096949769509083435029330574874189391228843385950299641263250803284864003266202807620300369866818704174105008736013200213060782951799249153635477578774804212104504261889042500553178350901923563055082246632681605627701740496408568939113486707689229796206468410969601089650233815196503668899449742042800265943302756978809435037018830263068095371253926599749594253606843305588002128235313779552612134579581273965997313697506197271518112184294002745699110937555548827534026189498303697004398704973618709155505483066774204474413040314784696299933899629284755289452893628603287531915925177809264171052559868468542774929163008732247504386881722208639747164903619232575370871930202158780426572043562628763067793390422588382394139513949037652840808465761998699885945194016599287685929208628944084597595117149832630893140346895554182692232245374485321217618507828671041504125338956264080178123076788934794032121566045945962321367715751907194675729758319079750639231903218030209661061940110882103947826205244920886925451584248031061204196519310201794983254527764740241826871348724220391198936097895409289890511688135539608928580532864616577509618726249539378680366173865137888221328430767384020999263046837190675862528993573939610366191802884816606744511587556878778235393266965602676482767655272455959606469024211260790362836689571455488168193714424699419990641158248235751907743950891099288399886030464486735825342544704502871352153910161232996829533535200645741688124286043660519718149653032155888830160916440553911909875962179549736943277019182209980188268710923992782394146787576476504688026925437370974608661889335000932891134028419522998921713383201353064712738756540128795209715106466910802289807543404348037304756621425151073063206093856919625329422232044023120125220311974965933127348915253650751833366418825199094066893076260635002200732881083298236696266005086530991177191048138229862656302394049605490278700751102968724231433622954883397611406733855970809308924285337379331767347508398727627503241046916811781357656074888903575877696454396154868694916699832452094456205806251407275641018505285456991187081386264110720373193512891775040405273926829007420183563175844608300369671952601959115248321126712575813317645725483305497152549862172389861541978209455855451331471082062703360745712886403034855454856404852798970985661443100637137720967808223962809633763266978639272803039401226297932771064013534135924159289020489478264569669685434275556252464147723765185801946371199369293121279950715599899659555385197777594557599570070313857608597255410819304618768155887974508037172022386260734673042100709990451076621561367229157657883431813359340033373322336434217734869064682684053190034039799062850846624605676593860125858682602328316117232033181498428349994878746708374670762861243078411011199088827870526928100955720499606590942699876825244598211615318975877480186802544606493427750081073245978812154222206525320615981362404532725482342386370873798467296756977059663363199309632730590790690971993146632926427674477366652956934719329555091488339081008136840843345517696099295839735404391951953081621539119675590268016054054789479510772767339953238557783881008991145087063222471659468731561712357434481567452549908355515555025797808752032550011198772691680719178643129645992950124182269802215562056257233414580266964301638516722066588515776661233555268512883262700741697876752072071387027672478430661897503477414925303442850094845448882245561488102470571486585282307764641648728715992679556105470865804200565215149527790965601003880176846272131073841505813502562994648281712614361303081183344155644714165524187527065362842924447912394109076640235922038137231918013283033133126454282888777350123511087310842011428243496717386946287808527634292609351762495993342119613221356814635164372471838593177813663900646340735528692883263642217759136320476879103235659104120637049847209956297375688760766867102792545181558996886121545347770184809313728847872775603056739062937222628717680336613252630307934858240684356940387996896702270598481367983183606280994107918015479096093428717372883670005585054824555097142247763592438229441060378323184126721650606785632021665713227173543171367757878683270277582090197553887596474153505516842559095579078135651641454462285899555554503450724470942563849841455503816626350443960398209064399795634125809173064796533209536894703054255058194565718907725289909577671327059148187077971588977712934900329318394439414898989389344990404428816050588810672698052671178035695425543938576323937301579797301669438181821000765332722717533239892158942826413616927173392056397117252104064533726310822472881272531832532073208325644788774364472526284198361357608423641093801454554177655264276285152935426158937438637846572558986346353865749100389032552036501447703373565050858961628278449688447363559262807486172548472208454051006301510569529124277985475698046839489565475133439355772162727446015471617782938682399801759473875783281158847682529077414025115540391404391313517873392826329220807780935623990915261861953160028177579596332839929084220540492352117070209601575215912723593461868108321890779584331829772101047162265381375794065058201288138807089959332831003803991386531475232835088456607145180927975959117593764741592191771553049312867858876711044211611684099419692328689598094196806117464818375505562335720813267509857595130609237144540265637399049813074662062887159940855483916307897272177645078045698630353059477225482167091825178424744352182370625630634572379911155301839681366584155441897208957271580295545595141244493838214594926037255300354169378281814562416639638727850332789745118030058226254912555041348188438335225033484252838470705677208060706336650012387749849062118037381147756906716999630605175788384557900994237663073949832916846342025156918580477496539298381736598134882497448022323452680229902409236777036973066209233714001651340728721519032905320888476697199093543573093291302118796707541959975532423708829035167108630364396296743836631439435691528344667987694176670380027414884085614302171299939540041178613661735753072347867119241223892928886011458119396119892587566720016935166391742176919911512776507069083458668967437272969280790569286043808792512770856811395841519735294641389327504253587014406968238764938783965207854994225239735831256379354470565442266057024471381509900932452518252926363243218162788162879596351521628363401808835133276913902432665776683681726824880865622302010396412518749337855046734682582997609170153628352984840462844052943914283924657949819371420206970131713534817044178840470089603144720009522943026536475620419783224832926013127844941551290073611793476075813207811261516563286581496148868306166186860582228387124193366104689320780504933788679489481277180558732412696870554405614440639771400541986220486796577096946375648753112045016420065274245212846295600867704557484389733273049954484403750186306783562642803354103869514821229667856054462912521109430834795664378546138762784106934384258230938352200017567623470263411860207541776319978426371524409581916022245099895843087572015384615150485173569452478674459484896893144284015773933529058562813693711588903424590988972407069594727578976659724189714099961994552148094518001551063957906860552540803685478676874250918190126499265074044687847378416190945851204231029638238399465966427075633608963847277864248688157490280379776772877555188534108875666535172633744514970883709849990833882397120138282246761656783766140665845523959220676106464848808005964510525098414116655645983393041339090043140459900840085387911596122592664792059377383245714000636429343490182441214137539108611285419408613657141215197601333025483777867575785405327492184921301614255844205554681287888259162738935371066432590873620565340624369941739757331940149485353243738454702822767539865507613054765734883876011259843290270428812673054662422183745728564288229620322143374098160033826427628278382205554129309992705258903505738456002250920592627566551405005023714670636196452083290452337649945176087841114675008257505668684443156922821151103559968232229998052051432279719348075689973816883347474801916589664838274790618317659404072614258391822368249149201301371108809365614991904782161206550823008500406618488375365825326789590532501354367796884476370036008580236594099235640729835449780513989006168269935503058217369620144242229160922506513935150292606335458487758345840028594871303593312573996481441310349358479079534924389912550220038323218730620863446043385359476172671470032018173706919683147463630445589050760175388677751991529623872685732232933925578885971120849123733880005591370484840021729158636666019292049017944102456556332498699388400703870110366221167720533228662562697911592394893665392885844443210516478295620590195560181982500530661870843081009309269746256411462614602465197539219955306628259023054035027305499178425100343483389914070744776888369342532039655463747068211517166999828923270845199844552785980338900939191930712640739655123016669523067927927158993235032298299668586453126714321369820455837282595332525049165803698366727976868704305472745793880243179491297972864813310281717540962529811984972223726814439185308478854012639224068136194635245589906975347247502118823235039974958599472204910051188712474950592100502739666483137643934406877931730925311974931093333128866949575113298436664922739875423569515232746118732550558085757456239183158601322609642852440600611933578782949510350428711627642247169392720978856645372248780041817880465309588093191760029371357820245931068425064614427536051095006389785301783368538003455053410451441496094513404803312668687202157233464857344477601613545343548988776090799614226587198833500302301394822259468175844301153371673698508297354211850693333656318042680262886636143052184044422965870277993873571656058587760794523973535963714547066578226486007430402960980897455086245543152193515809115716749582870065604231633099178297913165689847606379947630274324367393003493403635653718294487402387332697508524035570570509989298032883099851465968537216139596609248290065121279533524958814473707520205934595786747018745130730270770595489451348205743446345421384582198952158481228902610912142242490656828884256637539668769286264786923078140059492872244220137331432197894899334929979984268002098772906734103615945100867400177787214338949661935753225276871960585350611119468716359688224365987450386045607720207967167194103815235534692428968492649305211042820594059422256451187677144684478162579886443275063360198907963056949642232185941769875866938997482003800682958530669720381205907021607947421528348083736878115297427370199769783215650385120700310098149664668988409574502095245260970803827903566870076961370269919709965809033020179243581726212339419793894649362309402057400867457002134801279381205483833871822975490591916152144813081844239077601571263355938301881264084754134242398678289940182299977291016667295484572491999184961107155630139650996546018317125715141391981919671408276067256882125785309265900698693806204611070427281959185981597489449046608133245595045019430594135696847341719480668975027011655284140588775801099918935058632409946520151005078591708316570579714851403439831517112477775232837659149324063679577963102278217369806939287865545824399099307830036765430004426973312521267104932082738586270783880335872616968993425324458709797171871861356553729396605864641441825121472941969529178224358633338957938649413098308292899493384843585578040789565573445444113587354798344650607009473676343590358923028873474478451731698219214826299297553085822044688153073191636912511001339092180215395387978253556481739094183038519967739870763039530668031592224576073109562022662439518626709312496030373015929863946648810436317782552674156516802008910222361925623011437349111839252459464067369140879666253690196443150309407174572069460481941189000062692895454380812829906010054078536144997751621385926789717417005170230810206051580860653195683772163641507888459740949152878544196457687437880542413100879524865456913134506143415334856076429966290659024862872115306799862111140393428311579298075001236919307784710283770374180660052651178945100854002506566255508399558563576436360289628972208155738364370682892361980856482566839054977420853231517336690133878809194412421954248062754946131799063390826155596755554131707412470084019869158826980987701396289538776627971983588129759366494325988817023935961619252566579270560037632697208186994323534958695106152842566980546610431930586058699649411926312816428763263355712565761685205027500341741125343140366319367899482845884295650968417019305102582911865344345502960278767972204584387080379447009035254510128065391171049612318391756277773028716291492568265177393078083830637974765970277547140034250446820691085680849475579658745119528542643362167407400033204416639502898042436692676968371613340767963111588799944915976281110547160696648989419127404252484152560036574418930275978495984126871783955760146960144533035755771032168728577297848109529231116875781776059103718896000508542820552433116849247863192375063511707174475077205073736041422661382043796961506645885650486214316095149351760822562700802363214059642315128189525703465499783416762128353885743175935624709993467735286107849059997510219418921995993438477294887117036707764062232225295703138177779897750856468912418849670240888194550656168183300301319943343142213120586937135804039726709896729535516069689187601800658706426490102151400010503365862888868127641422315224948606175248583196893913327485435667975803813047061298234529216869492936471539113867322028628431491518526532507633135492429790779397632508003578186352552401594933696899070266068440466370741084602206651416633223743848927189462046305810759614137586037056092150384769637486745762265343543595269841661039343430562444126238595652910383511826643785377861968790011160121061116814420446013692726281160241800072289389921634576117649758164133864827794768213498046812753428919249443929681752721709611341543544925588553473408638650535114932934281189813125906690849378374838583745870443643412444043567801133096348737564156258280994318538237160115514283224227713569584027356887870598364802567285416701694402977082621106345653085727724220876674685681497045741087503854458055770337261262904677248915327897752676508669751993330525543727303812448362673832278997730963057810194496382890968572616234166331961029958414469054513103293072633871741319375076692066056331692157826656390147570346252967978525354989325346456941519123313776021799175766423459848820498848281841347883285749204361125227618412383106986201815544677143515123410655165870665796135930471037572322773832911340309244427575926546281288782504857777542013561405535575034006117455222051655509346332396767607304697418479619128043601194050737715390347134487005780164577246245129061530404357337135013859323673643274623003020226725466160941107326704125131320295558688918059924408768349389395447469557018986069429566453429640091516347504227891059692243427080748937370193490289781788701632229460610233603624331164314579213325368585276885282757036504198250626846197372525750246981640578636716368356818717159612791819556885094404019669129386562187698022622579836842507275162374370790111170087299021311593637245993247663270907559536745976052586576147835510528299703815704961796424820975756424814204444565139801859686670122237281768478570138973269231496079157549386838542933583438168459069074647779506787395292187633740948911707598877829717367915732741547498851520571775370117851681538069015957451820801019015476902423946775501146343604272134058813414970469247488033800396671554639297753139549132649839598263490418347665220998900060052921579188496720639759784715279777542842752727918907127976960286228461832745429354320752341497019342870857149471162615674112222830800843919219357717646379076203861437718649601270938393589367021060037990559798435584644841691692737879638797022106830808890232509316244043761809371353476177220667251705230787282653974136990803854813541256438821146252144467372424274737836637909513744313104840200498361654658974050323608720027667194430991367650329840562734054829555189861034810548256317031815103484354312754098937818079808823292312581225697399762527941308896898158644623565338423948574756180296575057121735714527316068736265501491750129315037015501708380926911843224087306318147195021306005881267517058432441573749014405536771818899551086296031711574963492471949210228836270557496435538960130095305705339293706303714514185101193212910706742587243090059201534335393996421049024357722351452521638361802168064086336474972335652406156337823294091104086968849052394736845029336415159281955755353515669012792105279101909915418887306309608042785551189488527089154276613115474043885547779831847036793181024519085873339955189851133011811059494701841480236194901109516277278548231235153061144044627390032089070029038228204031573850357616498305016224614059647290126963592499437514345218752424546281285945154427258974187968509681205724067082380665500181792398580296598187163980004030933230385853645100937091479638496527587582032756051894635261958240830525054461897326490066244152909563691224076342976713450382677939382171956522995370882900170035588300667374863305502566529538974653601262620032570610775630747087472168879944731603012707054878597037325481248724326789778483599166305497019948062633304578594607349714036543981852473617368187703938382502619141337775157589642606447288201464255927285453439968823714310919127592092161100925577804697750062781401717811074215437876644002718497461340271645667839960233591082985276658206522965670824388107582670371419186962251010836698223536523675091875836796620724231844332926302933951074078153668244532499190466824267812810560388594376786321988556298029349998274776225972018030148007633119451219357247692662706316248753839784293748143741234637854666052666877694305953365624455828624162302062456791537954336997901722691694898143793689313721203595456534626555392325530423779912113695016091395279760848488152683305202149507860886575662315427780691323505864658813819566104804573623615465201119119586539318551661362409381426159464390618083845565552645337526641480985091937492650892624406821434896500391829370992063103855601526234273393991827132893631171100545703209860050674266987831445297357742115260139793499097722969800338208514088969137458948322355887084369524336283411335583025859771597983478552814517688188747483582802683777852260538991580319166427069939990445397377694552185237980770028345237961118075034858638596919083081667269037284191486650728391189017023417880598299396088313975966022021572193826372970825157854892667772373425206089021715054035622246244724917681314536792997705470538801150804709976809149234123920102834769137934718949910772733782021742959049833227748476326556260809983632585128584674707260112823922241445700919627848364943061068080129079083067162308373731603907960708355576353658560762636630139662235264500360755697813787167412051304113012139808714755854937152676443411975847789514325797197333258675606196323926184648169080902391189318530234979811366877787352464691860049977553401576530157303210171200652569788452534882251753075577628224332624316085338260748608222086875930226399075195634114454097377903718597205823712586650433709585220114616985513451630626055816301821236479291219366581703597875836397039251720312682291411014644314502760336477869399004687152412933650602543117719731899147509996671723856399030647046646289343113194743248283714710742488405306179879765457546850974425566333107341342949781913660933676725839695340671900857618302242923635739413833823539901907039447651387094741938494866921261068422554237866556356015686226624797881895496188946706528267544812505869956122571940006853213799157483978574138643537792606631351551840504366230514917700049841230780539813813781994817551124991044545166800571362800202973126883332742558106253087010014266659177351263219538615696569789021919904867744600284360025775651122429637963435125832117069456940584908013568951349374594676999551879629712166793172830314968386487691633430058894431366958201346882049813312979633272923531563039164897038668333388524859182696603370478089095957196229758959120356704653320796457086421863152345598947834243427223709134011309232813188955522407730687441482653954809543949625677736093185039946031722372954874145041082548397614883243203411807585176823310183108416708886740230130732263838126200108547663796118232340763080276299066210550605534989447894120383748772333740578115080608831510861703920901940719895071520288421963443360353270535701677760158060143855101548782832714099154584411377877861417847430631596438477584019431645084964938664767847014210496726606386616470325164562499215810722274525595895789614650697286993716744100450456247680026067229791291070686741716843024812036845807349138895765586752400503956798484494061149463763934930994014541990163668753608929423881904823660976011796221277464380157422109479280335229071785802277723480724372559695329032203974118915951415790101702417540292906832248980292525913339656409435818662614225444561421771607409898849163251559674643197596681523057867021572006068412677151845861369049720285486036899278916602975235234935374409522734660912906043665753848961813105353301527180655144818296376412355529213382557492660725632177857138383406557509327396735088595215202977597309958243447726897975401898466413794347021768323880236728819105900256061432237195445256179621690956757233311842616057103763553488526799882707113509880015606757008146769665286200130457328582395722303011313295446620575373420903977888255040280891952074286400498894217543670089666091651089588735642598516356203403812327972920373320892363113418905095197276965482030949289180264280808163171369187508986607277154685617858173023419218039601987698726061276849137358777556847061366170758269363468011784369110699878311801505215252491385522944827569102475757010018837101536440402335905123885625542220151814700294828528310055348688133296186302757796298478604353593177969054834173569390232172762751665662398464823333332543512641515266575886622793251838308096601247561669467718243535737993738496123261440042245354253420795895504002860613907348184572193659410250344007469761316373752920251418227365979637789772373609456767308287851573829618615892696351293884845965392266863752205749188810292840027464147450297999172352991003865303101143055881052870126148157949763298959696283039096746632706217131332310514077174492683385647473559655735116637983368526890151938486455262276508823418746036829816348923716991947923740207821583724681578147924272735249443874250184056639873491844115384214349302719316513952959576284030084312169266006109712269531043843944842394850899933389985986079116215612897946301113577443060277032414610570892577102099529361185067504495325890786571458770042371484904301752610565049288935071361445204925162541483619687954596962612319563426507285649673679127961304730864518328424178526531696212556635542142059459501425783923527591297086235217098039107925123636890469597052649431957163451316607307402429545883760105574765900187052587182341043540982666137490793831770125158161989596749333879873375625820027245076560270557781223057897890967608134145182872276538261000019494548330497116879031607913149646287899353746525370272757674324475193889053316562833794579103181070565738755606989918210102230269026295092430596068798130009236776047068629057172075727038842234851713236429321275783529903796665176718508959384083061929358597727943756980730636065907448622304070093427777682468049475068839353218837080210262109902004928099599023311560038090184343217028652180610472071201062366997298654465300306473309288518050717292817528079212582659868378575757421891073215447765867972714736238052943004615006047703311957865868314152344990870157507984623711240803950254255745555561330895725335716786048283847045534509189558815457905153168105168945273569097031400513627905700652702088880589233403658279532189080902127325401532692630966711839516908722949714699354086832062960185154948423931905607667912780613341328769626597142318766371458763356536124199088095790021790283353634734226883730541693351794154930641208448626356807673020511950900332523530489749087361067519955140059057840854889708297694498932737927266113805891445105115334488905027763891317347630456704952746233126926729210538046563098391513100481383752119901304730532828944849730292305768960237940058588820210980185653716387218855951597855749058634153585677275921476795291184527175886471717022384931061931642909171277280454900818079933815272897694213459721263329920268372332192097966397950378348775700965960824868229376885147419960856479428530719414228251100463079540899879080466565510955044066870217407421064273000174689852523717349074981590891339646605507510043326722319781548353024763015064565963044961713064679133674318763754808518768247764441012709306187417852474041796281147540187046288754529842736504687533399508675619983848813061778435149267321535910960382687151339487374636826985511031110627372408325892233688133701462008707102690111022884724755847031472403310620700731486768441244422817998024352129704769032175503989516826527412756063650196277497299658954144211641510082933254625724417279082094009103610924439567091589307600080068077309748360774310117706397324075541976421856770318536659002829279939029067984112059564175388528310671186572345395820562178075628807667979452152539073252608942714939487960209508722626664188438114482630441422291036703648510828903753760572387159875032529757528102490434539224923214562938028972687436261558009286279953674350532885394411242041593416530627420483686901224540550651814092532247849205887046067578842623902250920757061606819220580266861260762732953445939035357140578246532458435253209200203948166179811285835263899247136005281628512551525537841857532027189711547971698578082457200610495227620049539918159339275650318870195364895531812532661278266213903105217097130839206582276364006759745316380291336041075958785534789813844001188072531949803049717641737412106383158851590553634617192290383295772920791531039792403305623599062749171372973087912897701788107520924334447825406056595936683550199744181973291656347905867242870023111086235823799981777484153390610371771390329756400637191638512477197593979751375835419481931526067779985722304944491749274603928068146255807921152055945670960761433368565179339923876454973094676560389807894484641644420666835535009532150225262273490415483612171047155306498779673778139853248240399430422824875992629501227679018417674357716250397981545503940264664323872899169129107390126203021082965205880145947767271612213022224475994881768309193671347280666271740968183576038719548770968179770516377248816242043455902535716051455416820283799726027031079512688658113690319564763033099627539209837090968373771986573500274910527778326609978992575593797750361840318957942273039424127097066628762087499350394336593858108565290089280569720245532527031493060505567365047207881965704524250332429764067687647400335265053611374677830376945939016062566664820161806603370371071075701536367588330030984378375108376690032361478665530570072851625347340351424393141990099349147663204266878874416825880321792704834255018976263572025980019832790009140711395349690275496520332125217699532240919131577840445541692438875340264101739061586264640864775306660076529076436220140923763162619232334180909187996104871653357800346309705639729334155207925356511444586722437018179734062078991984714491824012768440387164121502330130508561847767806491750146515401902985300492061097959981714857121604705795204373623193641957447958356568975983717413284174750171570819093536561352561910563044128961333219171582930532444635881252711378240934519729277780966978544204926614694641155841589203371036064721057159531061801634479147579030412242291155413480992686045534804970307641410104135310455827186387464833745852195042871826785093139046292508659781940256045186134239520435439224770241717971588552495945128098400510290436655333838489196096012515388510508917268510264575697518248601280833914750228829084197098443711756710836671213733121407345480806798372959572669969297695956630706274019252168381890421564334403857167339431998464578052038663258262016909304117922356993248228759204841451220373276655993072514930557538735556464390808138440997662579138897518139611937580294542150595197843989843518222245189310279167289481380010975688527457918872130430146009673328571655284737024074919190352646624923158723609905710337479492587470541921363369990701812202436545861765108361491994095964782356382063984409566038310797730069250802412724981012172045351921198252649955129826990657089678032939501215585654847687517323345803826822805849700569698918386014363708702248825797143863161157274211752852522861948522553649037741613016039141090691805911006471170308435195284513919991128325935025384284499759755870654032277100931486435136581987266387299394231698006097146323938109973980133954193821042189699769883601880078476907842761336376432163631244005175025251742706363246314821653540466631038808141941612022000032080607920657323554690435069758600771426281116782796271549758496754244926510378530561495054696178516785401051347326679608006848013738955533665755690715094803924957171577182107511669325849198134073005301148877608060518661112399707472009493909700135032490418645974265873104150599794648856876307327015586066172409533998413477418359165018905299184512500452505826540360642643238431316234983257329922569298330641508687317576944301662543478037997002736204538850234581266418533403597102271316913278740629000928156995829964600430796005169070946728935169181727181595800921097883023722560746271505688585203361960233256631327850361756033254615951567630290522788988695026703114558943465615013274773242008914429035184930364063624156745447585740598430466502759935919818201508834426312400350323106648355941086057139070528176400759796219181260571603948255942662731676876584789563138132821513671425214953126582321562404246106525464760009819753575832796086905970459458713555000809754094807499585181924082883257269649076515170109694962052814533529530518455290987008873804868050840749707561252112605593500226905570733806516476488222510247539638413954405567207628091499570236878329018850717055339732009536629433737020136847404876766587370743584326781199811928282963753637792660174472816503050897109213391157974260437601693950033253188100784799609096209820619160144882623860116579660969903541439215623120427589796273566519702136543943762622022475133020885471895334109141522686493168473727670251953771123426260605408824150330098904502569057446042275195825898673723607282467143362749861457404268277227923477388100594377167581006140370176215394083727183475835448153159365221281020204474436074497111863026878507134300398629530273092384878583142269209824633111603806614450967153322231045545172569049213828644721025468978283098637607854069331065251117505515683133667328582616696305151024324292994758923216871459906510537269887895047075067294351262290546429709693489891748389920649327499517373432734472839614361224255984397961008876583019594385975433209809277488982601649053351012094387598235695807721228817264355261407409490013065382457955469296685061277431557861152539725763475995718627933211300112332948234048709052705141129257288677808856082699142632286612395832172288103886946292890132924472924316931113829682242755117102911557070177077411189998788274237125999371882665202776653361946154219412332915777657446015743513193657999598889768306447843054398850424959560710377312760052165803726144572111427959222773567614125513597850245079388711030053665198803552163564164907825889049985747536696651707498505254117023643884515552623863057128568720067972964272418211379720071171937004547921041219734002847979282098336322029705429439670181188564114306562391292849959737578608729208695035031512954874336176291544705694678797858427994112189908148555405574312416647922397770141054847737641428737266912551795874028684460074169455232651159215191993851912526852712385647218965444899135938531531736619894319056172893207185911295141535325783806463376393958132243006982044987673027296100807878682677895254628759039303163783907221485229676522617790729947160033337107440243797614487921865014590683423534203887267552834296069813355506528037834972854883101869893099384803127447955080345338197561863014176074986940567002359905458388589608727541814520077895107136710926548615831415098047741882510363866756240894313528797080180569240836925590000261128507085540181902676132421858389508025350796586785525788545325731127363521184743655745864125514082523040798999188864684168053700255294180034194578651668011575038621000546373870440486253791774258767389261436852879143932782313627552456546004700197606228001906462365267755736272152329618582886074753142536451947500024870089213451586956061507032462806117639667331441876172234525474151952708704415046310947552424906153146618418573180692584671036545416051501755243909679219675549753890733858153682470438255343780856706912816622071738555145914092609807685499086537006465349241278930467251824516787155563497832445182332214296059579394618555282775996459435491900005082749519075991413766909497086524238578802148405720623438576276575126228385608203649192288303851515302213423257502012897369845583252778035446730183623024304001413186229851539965768404753760777515079994498042456408052234623730020069416520739635815008441078000857425337254171060304771781532973466804908630624315947943033071365016847051508917264830358595018016939260860784741146230568021854692884233427766491408368353987156601283865040131924461353540532063105134366057506485266392293536921605053570847555906669025861148786971607342289594593562461995050539005018286160031881993932387113853895824310850466582793903298517545398446841795797654057751824290598098532058346611230770002629369122169784729344013984791924296158562598625680950548215029746136174076807833956903738358194268562425887333673906735849161656566116601125857349589447005463843519555184077442423710234849587162667033347765815521955039724557651233955296046919525901591847493188024404868724686750719040584506483363393067562353411788735475653153603584175783945123880864057649803768396829986795947609210947513473367499873137689490234364796837571587725256243119717536654216453520408284895758197195497488111868237421443948839472499591930434670461400788050507956085428648148748945978807250981842856736113407674104573867628783099324872241864334444109862972086636353745980944229272748760527738128432957665845956885304614739195112088490567049786318716991205728730495806368483366124298228479562018707573734545110390983293106372510251360001007472474919548013820657302621046446796875444285090876508221673527429633633394862821752736941864965492630825120459361937423914280163161949083992683446841773530970978671072363319159371091313169166812449806687878066529885063121653359160722621533584026827101606676881873774175590627456313625084457538076632240771021120615869678849162734155673174981519463551811151403628880716690852211469158065848363525420295731145837504801883893638535091693933981975400659882884020588191031954821502924219058085306934734509780918917855148476404737456030658119123877564125400144442558695514256254424235837816827419923125677720474696403051913903532402249515684859242940270395009533045939757172696066125175676334362645178749904647728932853785631830000826744305563866677903453845143435069885581304702818228027255240972658052457531780314447299657104163236754370988263411947661075131973581376278480126840071613694656469559983145503045356605095811908703110187769634786199362382158886855485614809153212341115908995262157008164379312840663402756263199627572081534691830090740732405737420504486845923928521044397561345929960294181470242355210350209537006576559334399992104686326932172328589445126027074094502529152748288499525010492836420738102135984920006420619427180973289154041791406903076668763681045036687201918627188302837748227499379991743683090546860674577582074301991658658969004832428430005921857255502195607243398737677625549133917592672953322746734899262129194442745955415603767765424026482390755994055926291985077565519541212495507020869964228178646145073910602974552297344817303087754396210077013711611854290820156505061618532822337417381877771615117015831970398776996604180221688061252125751393938930541331937484290096142812145639885926145320107169967688957148966245081221190645908436406913114726832626899656672861827525392196233601899504870722222823385023107372494167842832367175786732833066846092789718898555112732674885882602516506509932813750329235043327304404316282353020809748496903119737210345830635870171810254070265819430937123253350204375815034181707365417470078123977603667644164051726374652764041292183267988703617084672323640728485461575550404230896326630925927640003709369344554283614621443900692661879917474019910077211818342454620494969964222675993530694499143220421763611343790657796927046485427393660215950431685959190560762290857920386829984160782501925910720736741684034031829405729073755996552219086926265843801963618237680433575742749852027831243797522970707315026533625227015679658574959007948056940730677524376514912319804727751222025143930697115352620524330432796681828346419413582892209711999109592557182629517568715446649464505247568038498706736870443443636685093619882399036920977187106093828452688950625814149103884163615409790199088103519041488417414970103332650422251827626795670800489884450071598888984398194413043712345804187147778816415308267390175082931038055710499664911124759329438816299524619873739708980439710132232725134762191704939935173548837929919778927420685364513399629852623485412002619449443879465659005630183823360755967191815468019101690612172102608940018265275095733541380742692446269752322919438323130151102547287753945912414348529745136225400544207275212089046964957184450336508828755863589760601308588890272141645536128876875365448814019137452497646972031343078052858584533505178191312108226112471206695588663111425341415473346117570155334219393949397800994221454625795965883152674518780090989402657552741077114459221408915188990354116458906282722558665398193944306472102159143527993409385079087705923064128776664858460780208123349000526178765143847536413397849176658309058464609313732749414266000321454131182024335238625680740762574025050176817795421687149709227362311803298630283862031032322927216980270272583524441131333834294064195355106695048793579946084236282975080792835310624921824598918395018155169781078120924573223221582127175190085784929196975396958563936657835622565952671012228377633736950406831986310910100020968145281562784888625024175758773912016028559977452349556568657611508257546384099498930532931630339252747370550839123231985664649959712390787759273174203442907133253729967894474061215375867525827761157594699632787365746300662048969484376714760661295603432593416600157127680301950551394049419330675526085595619849299479012372051465744477778936917392408307002276402798133436034480679173034997324378883369633438253332211010198988029139449363189302530326929373284606854755191910442602228310248757798347448022455305124085425972470411534521047595776318201951669654499445211481408247374532057734547851528337494565805228909085210852992992323523191067540893334797342157984994246991748969512959468569072956541660550428128266778113933697117445025532688841937659914401402560026537508179700871748529795111380717598975220546464059961544409766509986894712434112262258623764781111809014256828463356515669329445017719307431804158379230205862321511961669387418271879919042767015486509399939767089019939746042730251364131745692622027155940803386241859718071948170794778346225722266565501097263252167962697596813651590225985395689517444032517708103968170499062990632445876781284804857774915449100476282206211572764332642673576907405905993983579112952543871625608772798989468770444639724384786096893075640413732562364300073472312044922225698780507724803754355208968631510262154715377639659339908540762971060796026442300953015573698733318254822100680783024545608759301976463347102725979811451219533960821666990974763146006486005118222558657920196334150893930838781731851108718076423657478297505924665019787951911580472972196143308534516214001343482559542110602983527978765398607977086792590175312261648485233774445999058120851426643694345704360663043680678081433376414237688258411012851811063163380579170885676809704825332446687671479163935237689179407750221209997568731074234600043231832918762304895595179255463818968501829911188562094905892844574983192440634354036633350332316263670823804257991625664853455187653810545431181867810624436431236826313202280034020779439555437187277929622272033828949724140985959788864722627267614263387469957620177693307605249024660319509539140414803713161028150376876702551191834423452194803534598184479722883578799024599909367013431369090301162961613466963645294108687100275610758183096186900682142374785523572331457985500241004985829942179489781205642855486190917155059479194990341684817124775810355399737623090678280058389579889937370726649476814919314498237085944581442905868142361673831697319923412450228963435280006675676486716595089447062309681377314667725721680814777470662644896844127224669208283426291623166791772535806790197681642287295255724925461604718103488604832456021181751643252407993185243648646626885569218871981170632446783327088277206149198646114906243334440838475070046566079050788578152874370846738717525394329493706661707687702685662456887152863980486042973584631911769603644709919793210085711546005807018935355471117739484860241457416466732144571010882799754420602827152159025415752822883291461484005282018872376949668235362175610412803677416155246398558311428129403252380748160483715156283887828997542619348091240450787560995151696990340140323287862399017425826267914525507414622662987716527169398608755751496537738734738358380454418884917184920940940935322855277555240506754529704929388834001188332139484215722389639878319730324882366176940063581267313974123259305273500636428474853521035881774489721884343065572551863442360020449174449934460371367691037872370950574674217076229968553295933295291333616106733339400439301402747604857682725208660559340174761569162308145144765321149967336692456080086787513218886269711060641525965223522375791388474468820486205693572535971320267371531093977797653912520865352398819415678819682403144867734282586899311837074201758907309278092353554675822597046680499145566423085054126790319144159915499874460025276337723361563145757735605196343593510229020560777036958694237151453217589371149772305755931435441720556559194069936351713161190795044739041288124002755957101021101487201963880253709112620921108380749340768477989309490801749305931139438226371143283459007221187997945967292140186946134129003827140222926635139515089061257100429644123352372447173999693096713595390316702600807256553620150246786140788221525321023830947247141187219723385464992421642022060332644296317429330733477423763403222364637446585961403458154162262120122380725953430908364523428965673957309918152174528738130297476368892954255885529963738377811577715152295869493848959856319607705699454714085707825210333434293543545966524456946093972099256966960200417248731693812162902770089031451640390744158923103906839830384695135181581507615584283278763378784468650706941172659725365340548881006481146895223484643913766660833753357268618097621221807714477754311931438470515169080103278393956681575998894999156014437341595491361567031096080990142790933069755070940648201207895473421457435896444217919490580758823256832615258710947877691150560626072375317125368493781803025785405136408925458499479522774911553885786372973904288206463828183636687721225625382842738775940601981927459939165459353288157563036440370071564170629805425823158893415639504969568544397158166134709555474558402663405399235952126788632032659750498084208089250540426122251090275006584277475259230723386878057203572735320151903040304406474908742182779728465789503698545945980118324144364773463608321548227379483822736411195239271443056880654566093343012020554467471122716314781821637551655136667717089076994967176358369320528496747938100144663090228201644523280525917146648406822793360727259021144384485899154514209631706520183866938219344524887667122926782803935390779492802380007992528290527623756012361087346872255856019497847382589394516180858459130288514280530491938763268843802615046330872307818109117327230464506602730337391468124301292317116698418387542230379272091205156076309554416989766681134311108596878153070903978294626921517641273382155657782863660980140654981695652734333357896621082105307276071751912723655815687520350762962329678958275935616119988123873217737510674262132799806148894309294187396084512439352451971460755275218596349047907995652496382433648894103746492563011306060507666360163197920275203704635689899103314630495991362301677127398695194672134663638225567783541444081097103084817090226952404265497155247236518132596177126947022446828982304622440843098471655247887662935040694348278582283983580061157659338690799373072086297171227361031057467891874548917682614822416636724347460533676576115999311572166856459136643356479259203721255612452806060948937816592257189139702884014812027978661262797482570945304156731166076895252623138845485822915802043003988711822629939448949704786155296387272395177392107726153588061148762269526427168865554380937559513934607279412869043752929455208216237866023747374507371374799386765629391354227009080208330734112563730375116610123604143508363740000156370341595996584076262051419749905298385505600985489380257931101420687200831391416037270669306640908496467085844819519952161350745672741696816681235145064093444631719344059990943410179854300186542141944717881523738455156015985855933454639737665717103378945579635943444806147493339089550552290899005910597010373556184162822589887598248222559670008687089797518991283788668700968662009897557587141868938949042688400152574070926769402925813410407965698162597000653344829197443003808555466288241968727756924147811193398325895681621371174683229675249818716361620323980490784241163798707980533832634739611570783799027427412587799359550299626855321663679313246057692162598645565256914982748845589143375868544014499739222575780125639971069479174637085859445701573781013914907500863765223822751502134213371999163735796509058092779094169380949413328140157226364561421337672167027342246906266440777994182523993204093322536224405037630569359203197835651541188184508900911367234655992478437311882460436770123892230160697887229510519827285303254620738938460713274070011351680815158658520751677012135200150661013272137550655297854220340922187484403700889797084686069911218468813760620226312361357114318431649361960593640998710489112450250346761589288257045743839928845361900216015309902269410475135007892163844673345633628378561604612686263239126779494616018121763846401457357214292845992160604208510950685259485089200863352839734203085108743818994234940858862912601350933656837891155360232921946135423737747340348192851620030411845344794918216426111816949650494708986134068660371385774331727443505469075984817594285738864697398664679079741654602006764306317355702721959147978737722260765247862502060998082947176572085262940407862302004595475616510513289156517047632436789564746482663857388473523331324064039611122776007199151034199566232056940336463800556474069849069403564383730708677458892585954071797806305829089018163900902721865195680195477128126083157135831165468992491152011178406043527069935058672132545095644513230723604559392883433719640213376609719794702698458409863426480161274533862190275598509512427135229489704668760585981323874775796784022042572261442910252448932419833682701162990609485230527959874118777239298092005310732797984157784573950095355749996723266236985257159307112904213050264907206189453200691287388576639055099788042440236973113627365576376157780176719303008386977495495393867447943995792097416291103480687327161744037486899376208521588720484056367980102213587927899458395195174603186331624441694394064811832057375490570522056039960948503715771492773450436291993904499083798606595560319485081989019533991379023948594964760532838811273212161053167229361957153311218553283374354370331230031905617048718144804478481701791180043180807327013741595313986340625260726336289495588970590676667202848817432301154251819672357839205576314412124612827143259579703482478207669525415854056812571718160821573383104043953105309149737221052981824682012266987951226901654506845230874687560292390018845169232539309586211895057038621033879277169520661937710894995818908414799066381538975661198223175353228971689351228923090114882775610497545256463313831865285109474750685136324696156449872763109711081984317887771078579589222766697545355628560309254126436205227033353326645135142745435855815532658402767633505133596196840165929058003802514616856376324639363967777445959584520735522807142275032593223702100541883083949478120462903195650521235881698437841795938768750920744685552947336309445700312505733608902398980071085370244914635750659758193369387962593989695497928954622379979940404089520674087389233553569807016341238733310140592678187439300204167681777689977540558908720472099617890281799629498663623551697870076215824382768810045729526651138807973215781258437885109109929790070705127388979806666354177709223926250802932003041953751277004033964501852138566840158416295367384327010657781373047035713038107189266673893044187405853976565070908015831062640704103096074377094540943955342985606238558583878696248939834958317462623712296385050770039071444166175008952609520982392589937309390674676425859285757791290439408966025379855541063564087964637378403167793166520441718745466470467411422710086178249806104683901681118420850446284101195033523104223480866698135510742147449482372733825051184190053711361813971070038765457179806491357181819189569446048156812443212727693788263620158594532121597270049297091241155299264581746235692682058240005457114022030004420867211805267201481490143449812346422606266458090103382852731977399654955738422872799827673657013481973359050662370570034711665955727439005187178038574098074404254057382334641449597540202296615075301792303973096161808920687813485938662745895006798704246221591057815715622036198465432477390380237453637400556507623299664610296799623372075065958246950084370107032537665117835472625612822741024706844445914206060105664522348147670483785006455700320986771829881939134197208421176260790018088324231189487353016849458115637878003244130319100199005571663242924565968268835289976439847278948653915452500169991188530679893606875007808951717110246062051165024953328059875412526981733244304070179924112672135585731882086808457854861300936087434750519752997043495515833115405538697043038286617377857232333163971233807009174269939924440910675977895147863966622669695443097811863322478163247061815657824253105501312699577785478046763889333269293457097966263837552425959377200697769575770824130665404418642878232683335448670266659585319699160649150911002232830044550434850964858628286593738893442250942603881435658974628999441192640709878035498928458978212984055218796993794159196214131048622652076135964022705139442868151241690530473787247019225641945331107759997036184047410260615912307712289522968976046449081278329648854273720432678627526999279540526444715192232446020592872524394203024291155366405093183818447842166530862397505630676144779464826525740735401367089277826324674735893665706264573451649313310334981005816480653326321606358831635945938759481084295849035997540659983858178044167544479283967395369076443150701068503399481461505834137067172714364295560680642411942458342505474036283465296992626124185044797254712296382810073306899657688244718143918123808047131348310481859328889726595701092012192488230188187736326293927746238549099649792665419256501411337563511360378829597204866870228222975174723583005890455745513578107603444661470873995137518827422295990529272353391607000081652049352848857113548426342512950044349690132756983622947951504374749639521544445051385857095355542045495771365751293952386486267568649779980728925100836080348390562252200202278261624502383198316186630799197199554047640403487251909948880610369119711859325310511830368538823342134371023530965493074368516262077292765756648684167998167098571819805007371273611705856974560260940414535713892672672791881123781130840012914685598425474149949020521026339556511043021099234566159442848927663946428676446832332013126707770828128732105991085480345532479018189482727633552075704622009049943894301496014833238785438012712944290711651432190329841659123554666920186786794441290545115286920366598308274830233034937139686027540787428732674364351791356431211841767135679539336346970856220603959246542789134504389569596905242767621483922761003969585314590187641652591313949090626701820977046761345867362404997989351449428650582752873254330642943253484997643704809741828828943635919925654003741878009853466874626957390271064321302197130083164468659426711671834380490818678202098696417634392060027817829133826857715932516305851403782712900447433850267996620434591652983792995219174270884287627160414454540521211998942841723998895702518976286013614138771904077092629102414773264294578970452234458713358508760550602529045807936016628901203085631705952587899686576181400370877596192237215717840130132671321150368585876032801053214268634302036618183652901455230445447520818264885705990476511879351785497649536979781915903941412774839027705398710133902388474137995520788623099424861117080881346174284941543197349303828885328935187485450654592394775695589895660553894264172701959913122191975643920341360677368441360224667607496100067810396645673693960899450726473450051497845717829265444202361624079506015188209666853246439337758451932693811621178928201850199559055724677628303400846578411148085718488526329064401131053799010971956914727918979328511150895442507385505055986845133818390198924120233873181001735128800030751587182883496988915298175980126090105201929933940270687690094918702149029706246128122031563406976757854881475202667294998758039884210209158752964520198437507348381549808624682847374692987579567286787610992612477096021765528184196287552010992133420405464520886482190977753119884398883690739005156319417611504565785784050374670069651621497092435182579882294337735960863886361616268913413065795994243839790015422202082932556947636266539617386115478559317634952363932111451305006091290190257840893394926583286856157396014246974536579849201555971846178088902999406650941111474964162520023890650878060005982427689291002246499747694610235535008018865776024371547897829940973965205108608393571632234779348989391333428935487982217071584033226147501724189650578647923791424900899332036960399787541754847197040487516392058550310840421245738004682531713800507540005319993109787664479517727245373362926042751322785187734981339972474044642107348444668752839756821660634369025165995023496296574365556296617198530868977144143434499153322068336592940374257312918330382835640894998655596501427124679878673247513039110846182269632455314735780872315551578644725392297031277282602353765750197085958686165398627435799491307328789360348392811379342308907787644038501463822257139033308145106637970773466206783854008545443018177614387536749523808174872532258290054871386544866929640528626596900082184254353742479978741012538249163177445901158885984792640516130894905437617223797989648974361520371583898368618335985105713444457923556022122071315930724584868653831442492347582186729621347106555035427559352761470336252800265099218596058986516474359063318405153456636692221870047892249204177333439735149992021967867323783858714905687274619806383189382318385289147415376297367150158693212497516251645169973872563564122227536710064925266048306210246452211075939216331668237772030072742135471538800291279133910617409699820022354058215982275148285653430995111536854705156807191509042408580855797163296179262461801275970821260523978574841377978498705933369022268107377093553236219672536194901135776276445762854895394751199984777905657372085913559261790642377760903364821620544503900954023646569617651892440241252638078721778386846259292753025480417390834639773079565268518792942529579586138323338115776965575144955880023660003530532516277134873606205650766764843609175737909682916315581150659895420305339549816298228086173437484758690464045776419469582310589258787786530933933594492480442715800489841152987551777117407197838940477102300325086816592842127549076482704365451364977652729980011640402554520942366006481666560815719097332586897145451440618844127209986498733155047310132462951660677305801879703792906469599102425755823802993788969625428508417806237267877608142343968231342603033541928062363390599138297686174216943851787151154414564188323842329577795655740670439958724617254656872066331575346670376487023503424436991657317691953723793471227596059285525374356784890877739742668528791604239004319742849733301718001557733372965334951920188863813813912431660223383401605625917725669186458269238258684284120447251866967879715958805582141219376076211037953359303684244644809268268155507643159646420799526612008075090723794702436204201307970089078365366038854408201633724227834145708337698790442027370512600722235276806632255481788423071874772796767784960789752093909385545741397800279637328231124435486655432578927187241243261700558002478596756095693860676437165743841463937175760012818662110838786903242499809209810546285259730667445393494419325247670057028690228591218943430146163129861472597668935362798076836851679226392496419989958135731150199496411707801296549653643525622800816307760207938035527391504737665431598473708322020606586878922655000179939825483183092565697484597061949435281507864690314752577394212086823949236394806927819269819806377840648190191097957648943535728261455202152047213381170090510786570474374198510829744336034198926262966779453941139778825930976646948962381423669860523005354708980294373284887211570142374618217920117280840567742469378281126211176745960104471542041524669084539180318573579759385909884124851974822744540370793314251264191683500130953642338805316891842667010104254147726668631406813563312167109975233300385891617656092542595004395871722258015602504302977863040685657030103481605558984692305817491510169156951818827606496242247317755722249518074368315316247977662525169901017560635860074299073232343339753492587338038291762265229835584475713754310457157453060790482213912761672558158715856731595466657428818001864314878899776261446384609357913770141006569580406455667219924952660702556829634484957554895549708693799123637766427795879409819097204989284131697030743515757374476191393762284949407037972199532494870502863024332741730120895624230051568426225708896209716493355378287405891287492937402894231190235859679531900408819469883542727537357609319759679878780003603697111918890494426717520538046946731103813287344787076739786511219507710302968221286332071847879470921334972726496582619756542615336223920764785981374813371362509152610886485393209430113034374064780642841561456621624718760193320125847470718510146397316842737962021622232328366148278241158881447126098256419576546399294105930217508146269134853302022361195172492174480149132547554117193758629083608787038785271312145731646419347961038630857952569429307460344306860530325555716801530651020777977905548211045757117940664483133250408897969570051118865403369606145742311631674696930124194344959501769747566137269322706055493635750238242415921609856062411537401256448834621370727637981845960874634551782891706417379771341020943982720039011663525395966520651782997981406888979307629428244759323052168906214850315067759131127124334327300057771186716155671318558526445962408045354243913505330340663674483360358453942282429833640726616026700492322159510086075403997710090792076434363500556175467891375546995475947820130916151048681880168211597032169684358403992722979660328581391336640660892525624515904407355043410088388952051088197730960840451157106132672098350749092927528228227503786470065088749843801734320171947037044114604608905617781665355915095731548287358344051511871022608409198236332935549995194839868708652330969059623796968134899269806744609517719783108399722899267409179464439133836180564108011597925835477528596354812293456689130688934540410888882338390265955518042597229390652730586194376391860268423762010750382624067941547847453260142129048697821232732086872749928953795116122041067103614006767997664934797676972975286702683541044050025608187984211576296104158580909818310293287856414590182986510644805794614315958801234322544787354477286853453797738828162768028213386819222413203259016479538256116082803625364192759734096237188728941718373901549110018934481880548106117294235364131379304461578063843852968723120506037296051932438537518952999450768110591738716256828009078306273045413985563006132375020526096839707873851121728211642179825149788711061739093122621761847771431528286779408254124193941009884718174629939791281961502092477930647798463092091747175121176597996038181940868977387722531766132372645621910799842167958207533739981156985568793688548761382219140457287489626292872775598207466378766201125771078252165822500402800971121077682180702020338209596087174074373655948986638662155161702194519065751318272524352075133160447010558380861005772177303827751123310974891877157352244980437152067056728882343452388343273242511471198587730663696252392704239045461922210620907536748535164174583087083803776132170756678484986152228917151714504313223491873883852804458064614588839330298645059653706579632400518317809983444966938956428979661624812840468028326067290987386767926580656754060152885317617459439633666232893667404170693131095459142767325685011676778463951943453298486381343491870833567918447021641689367076865642763108763137081135448378601888084246083671231347911513841073483760855890590830759186127300559355532916409994517957917199150790571644915965303401447431859570782472407163864101109348855200677741157855040264616123881784545452311197631522136569421004406510072805388872760890877522155113087890439251807363817737756993502213253996907662574521616903880693855912358320776031608514529169697218396497669960716539325160840451374014947144770626874644680953184496560402900169124377931249218266981390236233349850401053546251179349246328129847151589981737006936502910877982257816049454976681775833776340937223801782173992051088862510749855386324429064081342837538686527661967856770092330429257108987045518240519788873471629447989975949391506348945100931280241847783339446796713035800366068731424428719637836825061985585365274508072352412005084847423935505931238726300671620941714431410510695114738260621044072197477105596886922970565715169307853941831626511629583685590059038110266800031573591902502826529404641417311408721596875343069127036479000012048485393168151531053098280002586313796230099316913540088715547067874095780481768785559873290755872617756639593169691955681191870562290009713134726717264427049221639504574651723960812735873217967454277436466902502685288729989682684672321199722261533477459654398783148340589280720749642143854392852090993600151808033328362568224285179644005567804494401560687451863312413233704157485492704594609371711541170133126791021253144475769726455774997700982238944312359587269612963001905569239854883236150332713581568836293196112470158201585130253900846882093693960345849267138279083856464822372019362586482708485270201152816462761859408491607606009754369895490739973933868139075685264928457211782574915771364270849295121270204766847710474731823562274312980855912450009061111628835302090861107832025752806444321818248936273528568000416983977806115410699601147982922060453277647742251228096782426611696217330924427161245676340518805237955641801839490638801490855068524262455594844477496141990249161699512960820048202777430029207329081386548097421294786941058385936065817146511322873984298173607108285130049797836133689711526054444358624290268045651066236292104514412105366901561694164176934703719681806497144178674939264480954044833757024572464900840428488753840058200234033338220305430734138858516807913764775505392212299604681973739033088139519757772627925014354199823995226255846282548648766085078708134476631126812124744077723429334972666077468754341447575655655607954839346429609751113503805297214189177097110150675848357703006468819149549999273857314629442475482825683886967751985738614771843701443012063376779967461468997273053808098814611048645114478299547326753894616356964846666276048411782555775651202230889014591985443228659786715572978396425579973528533067093567092891072307609192000221867115605238254534267857085912926100407544994994483297889727769046983325816066527939599055652888515583431625783509814151892847132669012977238411116043208871594826152308844505420773121121885398332732683033574225102466912960229639829887250006668513007388093065355934808108666368613459480434534871947359917382271220696958304189912967502132626304186964216163881380578076942449111479273515952718655919889283271436253896314772446395533930945705240594687658746459939948204147472517443314104096418088773760478764530778829337832381923483068322587954209736978299996141427262192936475789743651187336807878865110433159407354928541296206491767851954539496962257515512369625767024993264327509682711883091209382518137542805183457547642404171525021747537532272216404311579315989473324657689469358800055338798738771747085466407871971346260676018634506243699402194455429853348819440388447152001444903984111837168082849710570291375779660505334773658425155606304152582787518655828077214320864928521829531286119595739365159036756984045470526736737989356352993160527571555165730847998705719877156548927210890323953304348887185059897204043906039211107681845921051383416350849030663096902520085103783222530548596235728011604851506325405452399980787393459271934066619381078890007047511390637813740245971646513744366418664650253914453395689494109736529978593365747207939519557251138741780169885162187702573363233623841165444437979425859236970849436246146643511708887868903054558260950048685091930828913497054923121281691151429222568338410327603538841536305130451730861133163245511404316365184458005615694647823063939357976095540999379625796069166486432374534615579416316216678374865840453415325052191474536764334876102905290161858906053107729351695623663242944242773617259659362578830700808474459234434516316033276573876537302133694808430605012698865762359478961047339749353666667287202550402487145217500591133758042084209107486806354310181684577696674552312950278634235983501037383594655615264863606122670234866652252047846570258619878893664916197911890293874230368247998194343041775209077751275687141701137931615094449997966472074530125927311505924802636123307779969195105746083271045996665574543013942283223898541709630829846884168303223005942957326295336925603984285236262091819631004885175923355441649440015450680373110344576326728208642359735411550662520094431344979071470659765883399374168346698495364158691175607598266647242716472422940184643623776010409816587450960172997434138599724389103012832507020219848586084897556924418238575579654494670804836257392296288470394955638111053767448151852688224891508692367476784984295876296312497113936680928361810615958189560954939864223995744667685639370518455837262107852103048404549318985992630853531924335920513852332455121952208238143086237914588826121853839968072362062466533458055673816141430110412052429303157108542527703045682392525972387133575406019824266292856613889131168461877586871053989960366845238745424668118264152031902768347216700356799960160965195848018052848361461201787085621572389337313646455575997286632501495119901088675974712666965161932790099578687183826679998718815230766593141499091101001340328574328283991415292361811350155375101065383489183777225227344859934489924697326982560383969313917537683834027623086526122467593779407182952451984602468528237884123526746303376761926077083793309345417991978527269452933029460738257458787558815515537592722030447200924818283296089640471550988948468261984760021877590108341340068547522406236499655973197853135663133647324536890137924779931992991392940446991298005092722745628991020992257819018968849647306014949688406053378338428714403765894569058446958477016153199347337195528749778079399357036423063740405711276689703958819364097586028023062473003533835540290207057817964141952430739051486582187851221082860646301268298992215928235144842059392306708273117317020835238838238375020140907671486444878255079347290055389695055170770314977696381302025783021478799141848832446479747214257195638393880122515779717591877600478186644974092757062083782785554212495962668560066007813983768398870852394535551993177427864614253437219419131017280232272334453608797570191201347786227774880363109922455986291037634457583102228976633534212176617421582328878918923397242742069045272026929589586160686438028645595893791482340238776530796659704137968010478360246668068308405034415749683647618082399238812441319249401567724342338032587157544725599965156449729660842425681146522444782828423363648429393521389462204345694652514470501111579154288803504727339714765041564627719528647182746934983974753491261670286584469447892537025315440486343917990473816067833283615970997599557241829798079617186463145601196370553296527979494317719551941884479482824524085845147589677985416975726230594790192109413016887113497584087349872737231432640972373001125144504069219010227374239532949494040894800975857260113612945453650595888270310355927675118787020070659880072193133893654435681671267957538572861832496817343806781091396630068753758971992933079481074889233922357942232020761001698126726973864981459622529057493322138364928429699876755956338391257088535649014507846806122117115899096187343512621917788369008049845935804382960439969663648618219824746062210061022958573076017969989620765317249565524950270216556684523986736556130228361381460426982643458084424069566513073067560649409417897926957396225302463054124696991735100158086328353027974960181966771867569373010118904927754820263252409310650748638982666192161377557227604486610998722909163772282458419965807079282094114889354150851535807992436860993357375881339096591801763295883051728103908692094506372728219784229502983218234877080061613730246213773879585338178598130799928805165379372996921615141408727289120408617963145939907170573845386911247723001438849470868090638557734410248696710501594570203418377786257471474034441468016717526586664432089149818827319222259067985725698270810029479371901094278142026670250182624213467789102897171874469468243260151055182759328811241170881697740777641092966733757770532411935930173247924247606659312553985228335917262865905238066214990039969259783045832112859674040467372043848909321981875647082133429873197822572394248349652861461450777112313803174545424385185027073170847962693430687843805510430589776315102474454900215715435036196834425757107872247030160766944807133778501728157014748645079991089818584845032776759288755175214326588612722085253801337328678621859790978898254781134669712601193422051942419419608400997794960486016061731490578609108673438123990966512266372607657088529462959753635582760302911447407467694033698997197182361347961891206575884684586422703754734373233069073717802160797421461739398458018801069452224828784241348376115473900039980702256667250980532169022254908572004037496862771166600242177337115491880882298790246545398088279620239425414930761293377429812325161549392755889518877632981149960378348945382803387549635068955516192039322661630824284317282390721194670577928690838682712850770409708901246745451480539287724095495492917047024918447673477813926944165125165075523728680098248943989096448641406360206395230178901125295621494872212031702360407693929999805375139543821363775315716831301356147861107202018964533835378781106559091961157218371381127558087469956283460570254910574770789980482513948729086643410354039039081287863762678991290374352292147989925220201532211359581759313513813641085805942859175118756893799380567225649796502445559780578157588050500578704194308995070973217030540507483441969831817939984299815135046947857241874245947637688458012300236523427628942218534977204244770260612487058835740009075324239815198304273748520091378841576673263166165868166624831188374501179692378723287959385553465021788107414457779884400946990682573018895658189094316087697156009190387246418570210387784825162249879996659742169619175059908109781215311606753779880164361731555676515612835218114141566498870475696186514837265842756254105797138296155792463487247970222174810121557594188665869114881372303643277682633352181373893787062529034748901856601976749384270614363293561111047039740312418624138637631805701501518832067359385307962904112934051683445853792224502239111576558216977381335926491333819386433294037039092700487692054023116303407386868156469212761801090133094811119048598658508476630828133242718207710979936555771075598285257035781227501868988979131385549741418731121245590200392247150644256258181861194349236658178522731298903639840666604934147399415620039890291615008767822296082957618563483184005080518629802231493303255048926247597843095285870598909662214536038572859351548357355610594689064990411002324417829132062993107092892408814469982236409384748482905579796044360585196473989785725093088742828714280357828332040103714714269301260131293721217691421133145951398268731434026622522769530480330067478883828372836471716154317327350676051454610641055507252440262252557924905878105642923780985618933998836375538472990603736428936650939414557584982824420297455297832762817579083564673403082110316949602278797844847093179663611748212723884862291304958914022721950091874883773226518955137416686312750851110439788638151427820656214541088493842394727937831435992620504027070924875565636232331337477871091523296290931347122184309310599957421519002575787371335003618711763652159544458126531178331258181405426435728846815130116787924503101280774192218858179637712306337250834468979875298349174258973663702973780340265899879492213154472770055734198973402296308643046688585651187808839712518709252173475069195749515574215273878408361882927761123931495240711633898806122248667567026004973245060644641091645820584595626685356896752790886344143869046406339757598700914321287973373675121677255873689952702467975861650921777281365194766097446278749681066840532339811016576016043601889487781989427420116338616408027885864383965169701197017137575447199135294847731356523041091488256329752583320283001870840578345221898253007519436444328842114093875914401151284000531450147640466075586853033652159254630068697535297315454439604354438390938510359385694973597762468241435054771180992241921182166770130795756033686394524618330413093473584431674078388751789977409163971292342323357696223955319298719243923587353165904665376620725407597557902737589064744977906102509206095236123245326237707265435586203534273302436227422796278776209396329985466811262002641973031059668608700549594004622017692429210257338323490834660935368121406564176072126375507384278253880379791270808046164304705362022057648836839565791071180140551692042500774778100966518685422980501469095816247520335317659032839984479012011320537133016690178973002259283241224192628545758254544845827679519452075992706659875969827731784761645439118326926863352265070631620481389685256000929634295432628663156127106327420149692982046499970571905954164716440741424802221024534631377641511258658677833982436850570306774602840352342403594527967166875222568585232509010227307167619707745150946205858078457320630025685100020899333247573010660411096119219526115442244263526046322499011647508072986769203156911934889439686379326326358007959003113839755767107041393099027432934041174555704182222343514734807641902732533848183292677133964288752240178319876435968704049713737635693218541760430443062124078805174061240755082394006936696337063689207189854327422892281342696681539046101450270351878471980692940895406862049972081932741371552805893043459738089505507768192090750952142560146377135927517097348387272410355578967241694278669314041373280986934452428794021504925291267990384907945111799105523824177200461691797715122860700589454443205515159620593084304054220324301013903868484323617142219456836460409590243979276655058736610456959639842703495648641193891910531484510794607224956683602139043863058038632781371993652250142074159776503360093389537548301243762127835984721493004327503007513916961888485256562285355591559504341252015961276850792465729239370945912780945612191910265358294154149707758448715000861875871293364945049125329831323301595649121993878403159561018282345811157728549016995132046190823035391224780375286180722565851176986708609043344114787686371416389869954653484535047392828532365053995927962065529796079812126768264806662183239989829980197322734989206473087275180364683867529115398238785530186992397798676364439554282297043913577006161110797987836842693483346989920031249764213750809633563453236415467093785601561906176598834379636657036115138096250789249451467661563648464288899397429981331331370603514322227840206819055067792380880206990787719844059011786917408292833171820077166893801886338379234383008560631306650522922805606968110256973066280577651058463233982018959276399021853320867065387927458179586864930594192728826198523796079161519171908949155375884999092496521041787961686712899774132118784541150522063312848316898814087192539934402341280852672017583587984438023343464383795575093453937288531436429624333877294194230781283720536518224626090763613672658038602905975936775403750124305849693900411722838105462898266326776966271996481326653777580052861870526033422997242415699281984156820805008960251877233114593798344501434618230205684703591086263780282924855571636736043856486910380116559344994876191245480445984338251179317284086036294877357143019217453551710890768476819670326201635253739960050402350176626020576554523405798423848813974863546618629809757541376069870714825790073781083160019377200846836054923574805220898516701120216323958958218371334610586120382314280432955402776469479966779308185817367016184778578757516460187546972756474353834273149613128724438108805035743090703016528906063631524704475606693203961927271445207666836021319698796954780954788859909968106850621044525635250677063281192163823880457667714042464802649441872749206170600214664325985962051744961132640738302985800325122720895868251249654480579910544602891222175768119605917518444631681827520817091529955982450770974654922091680082408228913095865759596332711967145870652342857111884349740496830792009600226285275700641060742125455414924254909720704960484972832527042484288533857692067675441810949209457699772162085102167093634722799383940341020190379375890568177427461402460472224333292461506253000475929106490100587931245244213694388039413512974524869118968998673427223175012996726696838442283289595600812134089357109730100395683563830696904749006414170446173354831326638099235331158638265609065928209671394093915858584038188224509011154973013944372605460053197667723465879944961284127625856321197295321784199313896340438327622642027247342589707790957903317091435174232835555438731328890622115824153404575796540580547460401278280297243784150252439444502216921545640904379264216863465863002201658241830061921954240498011497955471092114921446096295911064680868231173430995012125450786921748649465098575002196634332221018537512660549167312636450616597284355443581663678093072206001394739150435713097022974542981341182696113211523934305040847597830207027141709794231049195133860594950259851157358886543455099019118369875764518259478458235437115370367712299287841293816711176941019842512295272501703534550108117586019412328501438268645608387276596517465968200170793707434742270280240512812690707545401714595178915996912465800948831054067164370552379735727781077400608485618332822921250276301379265014259841092011018086216636992584474684171696398053529202325291744408272635467727939330386021134761878108311047097231810742695733706429795665253229886504109558625219304358083364795468599819591065617821068997329827338498321964928419080437008259634066002471588657659419809994202365101019038193864187522488097494259573624900879764266893355846665192033668804176142939253470485128340905585332965676861615086769207933859362933595877477062804465001473583677578233689339547672292698514744406635329835637845135633005393186925617481383047867159295853329931396967833574183186255130477273218981399746071042197334630259865396442449029351410907905535907755683297272143341998004338650478806174741545314988551082674067292021571788783512590518308894328769062654108244666982635803969386603684022410800143386476362290674006875493043008668119147775566241757178205159478273561199146728918805754385154831271488230728778507796917974480376203678978112165567695649856505290538378094868345534438645229020021219454501441479542848782905300192122502695840892182906587905461419418203234789850456185377658331758804977847399612686015822960815976345822906884578688360648330367288145856641710943945091769614072414641828872391192328720867935077024654058651709561542692747981950657203271169816744935302868490406008991352241008987033670545848044251355380369802485834614547358899403468124667515769863649047629301920680736985589261614232992430857499914001269384449446156927220434703579443275901541475060181941208842036862089178975826941582761622094235488180784359547041967932430439729584136330404484667620004533906191795847785902358624424057089387758195615514838494163215073331224221202419832318087064199968579783924397461497029963565140044340863265572433249712701831340654335067384730325697583597141028596352586474025287259163032726297024491731895670511145843023373270395727025376320727475868210886810103083727189616394165757120167514354063226351242117429143797098211222543484120137920126576266879980750624118540647586618731457044255847147782708925833953643470853040825472435751200937345169529376754761049861900142096484898676798572019421278325718627845552879893719298990972393183464652617020267292039291888780545266217936988269658149101291078575640218397331222245743631617664817524863069031887569160024029158273858598012391246384750352292229582065049425289379368973085235705968253849257454889836601503231144969511064636755485121581644176874671497994495834541124577811955765734075257273469417605010927537778990132525441877853294494031120367153839284058789278014101918901446258655707390526208802936178530773385545768022873191815853950518442518123091269690685646255248112541909862670375735993565394447375711534870335032429063189895829116968362673348625923262477712922747910581745276006828603699469426438862993152291029925920396683646533776479163970384747027220099113309450589762048412901551615202900672117914020798716046487913299049126039774800974908005199360227495616003247731909552184459668603316149597108539046854428686516277213409916532398012696435831922892744616243771819357080118462627590108674990299421290393650809309723654976333466275975828170165206558632171326407029232828085274436957728043165842866283639450033257324873682691225031688896470252160038177634281400137723666290563382089222458162686138739993371990540270205862037175976865715879984200214290131634640680501902700954923236742955435869782708811273413247658161200042702546290690590257656330216274651714528931895284294476699463886973069230548418699739912780060854540792435712393606928803167162540732587990060751762601981970731414150241236908202356877450517383097733220032870585603178568575628449677213717439236994503912063381757735100451958769906440796320123660488033616636656645764341466527265178374320706512702522020905455044575872512987168387386064760716419461675184620603901214089841272205635960097027539352629749427914607711990580067861096606987638780649687673718482087020984264506701200620751500502476602051624972564781281483125572702533393645566813596278188463114242599247869695107364750970258592479008085443880431896088761349277695277680152480296497864666664673914092741564666835500242865910938199879428643607815098242194415676010154052552238471300230026825694766179317611218906912167990999270076771687224087955601491264274653364098545959107220826629503870428560474100433990418177396366227413338337634864593165093752405888473228670448470621281688624910364346992488863618054864390615106861761893083152612500587484811004776213948087342434070239312384424806879110648716818176160311429660822501042353869423973800972382181444953842671938129259842705408017369727405236705418931343659460471238464803285743016601378414797220457198643843897528694463222894729585912463905291541849570435763621130423669661570091469990991814617964586126591397631639995678133479639510193620974231265378507151048565559268153631303669523460231325395424198705451428895615972150879498777490745944291859062308676004649510455516157194638998346530721166225685540828302538661424309451532210556672145688539388010641613963133696164120806710936332994801836165894479847556097353402166482810051655164277377302507586577186595709753652584549866948970389886160972266461275109493755190755996262062055943061230455434697597567421013638381752793023636318181092059322239131581527847026141015911932035525711087361762364191256474884389803356694623042753826264647953570044555950124610968835659595152256743739517347608817502056777025103515649735204740284540793776588487831236403807927978024942268630719884219215297057971433622899996086243441981554051433979057847879632737119900840049811455035373556816158658435626840571597560534167605416315475800354889006996154831232790115698580078811056716999632290934839346258866696577791625227026910870143253470384964566050275115256187845966633033148643979179751452172699684391612420079523197738080783839904011935436077754357517579811318096511904739063718326537952219460719033345921133856378285923656535935084905325351481169620738805384618805284589229067885805924052807875716918104157025347495384492566941947203922495387697021335953524606967227656879047128519516377280232088408138626051201189842310314542270581793948565907565381936517818071181512849337734588190284404478021428303004907630894126195185006983008337828014888490014365553269361999006290148450199168978241100241923257579300007181450627878003844269655584012631997418971518143261853115687174595146504502133802144150202566116058958730821695255091009580954518189595679176579464466588488486186082964354158351433957090596763922720284919698048301598043461387282011199947251890817411746300224383883948912144026153100654259285111428288796339143440817528273081126684207582226557420883844474197544091201538008454704913011610217224310809740561092091829302525703825364792457583936541774810429742449104439039969908984431435271474103791702350960961285477330214839131698959092825112788716024225256917258298223030069843274339244912033418552578230989912827737333667599572352328393065388496283124766231615167426244315964067188724424847202255775072130351892677416786448072337306016095981705209388976927177947710626841578050336125747177551008876290014408844228010457984653567370516975491198012415415796007067650560580820683353480051645378166363520243779849870378368717077064657191505918524407271412182116284925803628944411615734897310652944589793509127941074950166543494701459350191020579861214778829200950661218387707968340192204401867840227460542800584345920541532648084773182394653905325224635453410336760222177943513111884565748774416005191192195389687708523327681217677884723677890240418434458404789766809431422320927674378727065072718644409589781358351778287959454678969697419333390127464321192303040851056337127174309563880742346730880919850129859743361106647962194573204399684610811048743213566591030427864732009491718758166937070158585316205016232197246012313445663789829590008104518822417753997008965456732030878030176046179907292857678580374933092898332442008032230283981022002487029920492216041648792398981548379107394250523287587487408661983560304663526847273212570282636235071394838548526925069235203454792626961543189200465401811911542180500817321435239169191314038303736688870905663139117815054439579241734750908009438220935773926259995343087545237517826958549801501911897088809068782949998284000232442594588131138570521581704002434704743426859158384119773403477628126235637529955935122861153078383846168959087050465609056419138099844658480027644848763719685162568638516969971595670485456687423143438650977517616300017616693377435051355056103703196727393133320886880439076469487252770196712187455257068963766612573760517946033378239146215127783227042699055736145517965409704729423404663739756243763496418908025113885745875069578560419055849554683802223873107308571788263235647898851618286281077203038948407505708409624362399127978823551225784370271944161933454707802774393925968461993980759442205579577316264893623444587729768572593285187314299210212021541022740487354004609582711547004857725553037804340935663314365462809460178490403663806247036965579234421968109348673214381051193756249286360239541926001895934823515102851397807836726293631798125170783804759463689744871212252222158114008795485180794397943634310575843303431784272147531872924018977714161239047269689449936158765975008574669582768158166872336155533976862493657788269808972438922324869422182841778971691949058065803893605186042769942473845588891410715878114248814703184030213191814705863205968374805077737678598228326454730561745925935339110043056736739993699976152666317814069309829191311037545646262306583605584803579644357546678564825443514378745480569479342020173726241162539284972954644677788153785951468208287415910306941219624746908052783815315283267367711754294553064949187234923554829992964242367276471953777708051132977289462758232348084309148740449596847299831120588431224684106321568756189869048215418059111667388848131475534698904946320076290310459492704012740643022991591234727465466166277095567174189454287245176965675763404479655455634125317851916720981951040397819607412789678019010938625517738629702502868946531813465690975796490844292100419602318808311334557440140698268375689093279429060980299362180047018380049355817633488233643590000270671262013893883539859787753885433176775441208708652697174245109256652238849034347510011390544899189727194147485189270835905522102732046597799142030752069204305310021863274792160355375094255057024649744893701921097927539822502909724471899985347255762378948293175679876555292110199146441591394135968476718725488171063984366898710862272800417367686310224773994392848956518666264582414582301977483835526806222160107687098467444322434127867823786767291100095605044414295898072380008491224206747181956580750936504973072378543610520635249138810020016501722388386326289480315632318838655526095441118956925437737411705136150268904801825295376950694079888456149893399645460163475406977827525800710463260794695700658009758224525158591186284852080035956459436164865364171098791019583063312265141499454773953579774541222833576879197916469753346579508375210179016259665320396174881575396312133054604645143108140962267264517957840759078052480615140740145395031634927113794455231564186098896789959047300998012013757606076961451165550543151080935347678369403027826076314946694540691328810129575822720113051690938534364104308440280348763878801058422629072007914862347571965184916350179230759137233352843597740066130472258175890089023983891784999281412907620414220192876403694547330650910480269438440882299043684635568832352481670238396966876152963198393751814394354238193756165456716744788509862512601565498045562259472026049797995960402333598388261617674807809278834711344677699256923418253395860054918290998810386395163841533193445828549304269939516331095914828601112418050634006806639516839056844147372855228006885319588627636696240669841075497600567424729319442882387634674965704631935249106723926484419553297508881406892124968079743665929918426606601741036429714543047705596815269623175280756845618141901887878528833623024332734490981467172547499023315038346597519558647290460963745540881090006342414741676880324116175126696109940251446465990539130283174853108751591809279834900880738383615152539616093651996681281772918616242328224524983892041957420338293376748608560279875540709970536987722169794327512101720179447893010107339155983087100522412636268888862023343154732321963333772514246965173047958991365906933909538278876960242502466971630583544225771953764344305267725750086795235199755369918149955850696643749649980328586104255744997920327294534066113099170639183250491616473530930198930015055366511008778227596248776581748261620266640355606860232531772997935796102783884059314242246676722090966430160111445571623841558605663707727681004247453737320383027339656473621354092372695116540806253204789853574819345848545282266224158029365324467840213859411011365905871123388997331206091680465029205259251714338451625381474578466270425104369039389537457278423369234898684502620359811533308906129478020425058433969991803253593680451184478630989413503267188589962160542738648241995772035727495457204261842471004052549914083197768518651876729056140401261298777141311962576016630869464587690097548208620692270589662696688465652610403250310246240043261850900130118051046151060775987728526092459570181504013399848482168404404213534908784259132099245418036277703791201680401602722030930851664066002546032339319460490065031007901424632864424847544500264525476411788224992830424799854999560885485220904922658435577503165454687644862197800758406586802388369099473449786042535157601886887950005732030593058417544554036837855381965734896297728924362321770971703518411822226295923755507094333036311093275317272915518287633096513084815403727365919337739547417896544407373775805461136730797013131125961340215427276527325698429589228576824925853072570697114358514896059866911950233424047808373170876794007298048210138420229451621726751668040690553230507481148155890099220169435752152131597073033639402359327459118402855498478097708337652503986533221021783991751484026473660801793626399536529126847530898162186276279267497891014802685472210107810785975118018713962182765832852519442837254327535878674210225018280161997886299506290612491415044783448110324568254159194288857557696707224703567768284431028606763693930842441294684537132854054048631270359636115684050367927954264828455699407375263643056876973491151090704032834593363348147793723926362891516448198908351504789740380225996076182387996560121565388423253674631630202557978413080094426630262002706173338388832111487006742562233688924437012952651109291546192001797260698591397306773932861346175668666234277042326075002812821953657883692985871217709391375246091889194038740150631731371486201098702225764704398022258937830094432625774336132248231548301619836371277860144796122000779616244298331865569789030125361830958400596485653925126895531043114117559675199611608451390505813424870098655915004536950211662431714244122195732375964036154735609084480571130319857031587895235650341855105079082365528306200092354704313927898016572084527374633474871325920479704947581970305184639159141920704111151072722748223962841978900483877576844877816083677730417433591396706059900586164992379308317036716888623805051256490434597891371005269311940491926739831156398460628739954228090877890804665970836601286837361699132053355439627395859744615898158867668365287622116787543818049749071347559553171883016362033999559607471624806804252150362138393382302436328066794861897911401961272313542904068173237185113574618100892241269704817200989864110642136789735742659685763169170505001799527187120536146659867731161476146660804078834103425012271802706461605221298421052614027381613637030183126473070006646750029610812839174303833105035656643848481757362783822014457321331334672325820959419845235389493976130640985024004875057045139390881486898745780885209458042559829860219667825658210110767399663568095094696342788031401318366553000106626928835815637075336495439782575248027981381404210101260191396613470355906585530201084643342104703701638541384776475343735707395665193863793191101197375872247273036105219294260583962675489655147186651286583169363304159860572322261837561166424813313208839858380674115028750702741302515611379722976302513858957438119776698685615605029561936914245277954533414738399410199835913337909585362718822347363517418073495383630003352108522098042997479999276914188610272740394871118197561688043523494115383741919355369773361699871594934639251348232073052787796996039008938104598779641189200097561097843800903182580445010665504950571012940610753095240925325529775915506195186847156295332692678629731683636780989276037334847503135695062501061698163220163414561888410779239848331771781739233517171112730012228751303798659273280770938453221768576230876815224132003070993384740468300101644553155106380158299321695800523813302710423506176007424320782139026963869277015715751973035922741906345538999731020105792979768938065625186667576829256778547024081744644960700657194371907581950898028881267820845846640920146254257912214991115585645592761913564454738703833635795864284665912442327993004931562037532009135386683883193504073436059559064206939482005444186882173262263886490584725346716097371399479718990918008816011473818588959390492501414414801668244355416679466071169968753243131743689513790978730330185133309975902229889798141526418931035713503695180246248812239920712730505365329247995153223894241138700591993719344988756694743217825371369163908083439986300164425664059646047530823132129452065929107639802761034976414531775049725576389791350719884690019935166995187133873237112014144225459054119807097299462998221020442442621156967286671982535994005412859728236009115204358843179673385361354208938383410845552236452215862536283131923972826828648979558450242218672769787863767513408023543429787145409054169244322379252455535734575882639465103326694871192767545221313019638036797078478212868750885786553716850998921425166642808935033062489384129593177382618408258685673928613432744617359372028358926962442646448151976853177029845866391140539486193914232603321896773606624039089788793440150795112825090187823689888492708974538479745998169089662966901224766262911747302868604400172338253292794185190625271771877245722649249546177118852226148706714471290068996800351962892571977242415376132537151904301312980287807968522832011423464210591080637002906868741655936192542001227864471436527404716053929515221641360239490846457169472037432370459105635053749105815786190308985681482681889684852723716283810515957152789372928923954624977364662930948197729625615605252300140933605981053480437480003641404043704880316902336394578781639103489220616146943818254374178561900953998445337417400687770600584357372560225347762489790775288396602149101399334671049450209170697243152889620046092474994454533903580722482134071939122446904674533234472721586932662546208936578503475974361334362270232681932778101309478578007552746640081645700340041043341405753408367381882136835697774422869897558321261590960224706858702348560568334534671629336254637297431633184005366975520641219802053326378789461340400994763773438122937840648519569463063008852570010617597378320189530094653922987564635549923118385845238337358076429526135125691455019662966624472711140238736696012102041648428785046944592617973640958371365015477130234349144482959091755178990234061551486068363309337947380019774795806953984690541841584432586813046630213489240501034963167335245417497995117351066999930880735979675538894290489579344742308038201872861377465586109256593677487758854543576587180170445863003489164124392356337126154567669020018282776564523695016047349134502471521706794173183063852191361885824678042836118878905768049932973763405825938411884588647620657753771148219618533017382876196781651994916816837461047920847566536514332126402577357644186774919786156345501910570974838205177952974525495554562687396407962046596953194232138844660229548769358754971087918249963215749821866050174161223710707685500458491926263371139564323783186855297433147808785667354564760946500288242798805567529124006880385088874480311380035222082317308204387921530821980702046982560886055159873443175921784717760005754022109755478970993583651938503129000043722614633553054753489635566723730533480987827538193937740783739458316869229483540326462761641797424323277229823200513064145480307832225233351944247492411972999827639763405251979789170239698307410926661159156837783887244766175504651288066584681301494142020145229957452960499226612667257363537482165843866606239538581124877508012371100137899109463003327169703718144585609829308652282729291529798036365916449232717478506788733152205269076790710253846183743167926960540126451389756388367434438166439334527112740841620794002583633687724955115653980352669983076697138328529811835897345740855490889829287420118915559601033816239696358327687609411325917190417761413382205876502046995560826674408795356587568057417745765035958917817138820576122128039078993148413500398702921986570246549375176212375805654863342649103289567763733382279400926398897756584255206097566505314518484023697590295125160928655143891451846375028609336510433141209982566555247390717974514564862016809338675737418431308193388735871505720450659617440675981133699644335082285645056289671931913267783957758531803962667017735095949676686342690081234485115959024251077035779431485481582585465943226744453721997468283000280980735957215128324995873424630640840819158296302151284753015244554204676593801938405115557756824851481129199987980557064799490449302149487871738765022765011425549839737440143324822127670217040121990388868851210285778087763976616309923948151951495058149099849675359245753181059173099569490085059615392931338398821110637290650271585227370801606242179249046705418551082821422081848874186647899493401876400668519961923896238668564890281126823323128853950819344414171037592905449296796525582803347217860226595840458176949575693163061807180667024875221281848122748459803473805017991383042748210177559752041703050242921618302297037330884628688982329772874757680269568183473373028782268329495410150435000209854600610505364408763265221986256413931798140734566370564976203300074010147063848774860776697325422986665923863534886972020599442602564583128025669044763794968598051159880068760485389101284112343169449310853343195902863407885101926470026740097631749810126320914517181738563698191312967339190703593073075248494131919918018334036155103747255088416306408634992851321052011509506476488349951605197127831041478817314463772912506502958340217254398486346056604934157873510379014732046780068465924692613755426880631287914481769595875999493946100795718267088589577165336126302617787698213521037410176101667267030851082286129150184477528213619738407204861704553145584435208657088043500610798478816946106334551740071460337560992256861954501348555630003548962199240822372851596901840326659898091709965440088158392864535783298048239307890800088272201217930740963932836606832644927399445737213399080778863581466094629885693472474885516144616408002079480312888381903448800477498294540147091100571868866121359920464582009685914025473765006495855581756225545156289683923007525279445834260966431318576257608722844819854984186076407933152895168295672065250750277868808795428302588118127108706420384983149277413860256850211767492688957248628269058736510229744049030790604148225776262303107994257702560703752236723525163739329848633942665659812333992510963354215134131100245109455435609096269523315250086382721503084678158813666956283650948494589599091147552109525372739061075011000324582112090324545130038000155384405167349547483119714033791049488863439430778057853229464667606980240990492091488566301182040265653740645443911564968881554836760717684032265257046426000048460743471326181588696065615969761455611028609457500126178740483552321834483451093709246364218156059501912148972417559410598142922460842442789900227668801284582261856580349367446967685534835163641690409751146110550732662373061823352333067541174761775050136778529756779575312399052931446641444975497779400189343810761166755728708094270321484982239542379073927022497981178319205814144953980780201537228508911240975867567539986865976217375746062055792727707405432270030348943831768716820497184681677645888069203986884398429656796667909653307348779105329710552120061755428381237303929520232768170576555237700215438418363686989428828906279723285050322087072226977519369996429244096103239819634446328979110120975764285902223467753140550935265333391384562147015794995481151144713475614122559702422402272217304819031549186055340780985546732104049846455559223414833847610371057004723934068977938348583397743387755274493927204949763149002646465282642214226669213725310199823324372145429823406076306626186579161201617545114742509263273864202526323231725043713282852202034780912137906345052075091379313115846234460250277196087404429072796900265229694948594395037295356167143104624484857486486755584689815451550327294956248853208467086213181511800871084580610259425418035558326086779337942905801328057761020306926574159171112192776292890532049025717401430116771831772888233266328435330802790726655217193541966850489534261577674870989203492562057992511974701750750887395031198958309851681094075656241530273382089436636720596655488645367527983169620457284189470136079024465399710406520261405072238375101068641906281862046116439592297074858199243805415883150763455491716682349113016179770708813364740376976065771619468724651718296188147078256267066253179116288010365285255820383103120743839544340939962991055936257320432451045375499735780530833277557034896857913722788134991183128450858242449261371705003443276650781853408366963935190852821143321425684613277402792610749027017171565366998156964987566687586123493310732030792823008340055739507215625979034787567309905934661018852610709269774884520245200839889371663996154371637219372717429823004036744672456319871787763403279918897575063001164655634821182295934101487885419548763277499255174725242589849136933039077588705356659336500470009931555761614741882087008260042577583832215513855929246127444524321893090602859864207922678329788572865714946976513074303681265042823057883369419460304946999630254992385323418477464139703142423126227941817850781190550800228563916286576936118687929075040134758662567319171148682628752030558450453815638898911120536370365848622509250386728198290390288167785921885535154756540501961077628731223742446183578470515840806244808140070917556855918457031640372724228005783376383194831495562284062824580445700835820173366491095249601734248318827073069645988706953213240933431208418016780208988880077636274826442650841869536097144941933865873008398955054252007804997007350882913126110798149728499480295759954812966188277329474413688280209956354504880708630254270443134908572657825416421195675136435959207237940317511947098369811165093575644842120761469974722076790530210535844274054051299911662759919981615365920627240782468756638949649364347114714775429071982751431363484234155419923597820037603338810965653942529038678882417246370206648652384918095492233336205364700924053208446883352878729491156865783025900893435032976539091107532478074584786527153219688423412584981978908208513215615103849006035365439086851633642305105132880444947716038799907413859046841688940195426236466209186598686104010395811169256389278434814579664148311544660738420557337165476645505451657282527106997634541472931987195029896367722577609030873059816559822094978453572061658737331958586745484150832015525617909661774169465531364060845583168974747160314124045871377221285915457022472486952182775682507179543617571934672026883691444751618600400405357206630673940994497958430220389558962033689424046429853479179340227609906174983459734829936826343616362381789207659304173152852624388847867249922155178948289803846295689473394622674496583523178043557353757552856912910660586851951610902345962551096620022139369125253788816106024537265909728401890007735608696042268136654159751377261089673036969642354567876196916835810585213522573713020304385608514040369589066840120310315867023830988002707260006025891345335600435631383266462006632257068309313643049152967579921378949953153890521162904807169241935920914504173820768589053429970416125138438703177716888137180744988265529174644285291933681746848823369400870185191408165091397258391850428719325859642344117601984144148281831454353435405931215041358934751614715986477937683123038381250102413677304406611662697275577479923001294173864757276549047086610815923857022594072264004296391349922120402952419048466557416570477846579142614207838477520676812426801043060017934512071168131199488609591993867743084682607629171239728161886613560234419606971639454759945499681036562182446213564766507291334509961724730763760415157484560183799046315542901991750395344916241748103811239532735946270359411143527661420379142810926927944987115060563736292309180155044949811387954895125958032824782986965365635902281882135576333321468622571719012430043351447660056274056401107825288053116806863784810896904208325025433595236592473786550544070687711761910308727589539485465278647436840581690651195782268310040033171359142884970034956603332051833651643730394651128749586661039879247360022928596523802315906225526843599076596087546833720931269670974091392667041371434925438013377715266684586233239913682996772936673364962565825362118947917049896647324712520077355483348610948560060493240504859246525854738995746506902356711625092793636479207379404632902135975815135247503463456054679818892040679372792752606102880553641565055318863512469213490161048084738280001666792953763820202516662021758349559960743559381759144261769552828536243647647410228678616071026313425709783804563217955444210527062835459368003223665749296896661592849342601127797377301415093047653710025863977922968229745534621123486673757504105389291648248212159711000127629531876992491040563187854998002788995707050589809318577474237444113066845017248522218144387264283753515849986100399806934722798399610645172492040501144301864086223061754215094298238643180739714229834556801999221224222541254202060007231206950267406636615362333251707047075047261638155126472504918153707004233701234690644724030397069154419595327716793299978213274598234054374675316256841264389235372646826294313332739076509057900533729480558735266371494698903379489062733376155538159946034639519685058236940896914513405082398491366998374388154256021640870513678912154784990093267839231688897285534070740370982139444616598140180049877327616971691378408364271019417371563786136976918990472939904985260344276288389603555318427861479209803274298749220524828362731964758296426550465232673280719404187342320964783289075391940066972709252651088128528813075890326298590080300006986378926540503852893041522443386984276286241468090128019358310534024958431846946582151967626413755591399520372954533937703891236019955415113310712062382154034135524412034648814100893158602102571504380344240904853796578765817843717436157146910465331427599289990167817374455262656061529479809189313970858215030548970738645774037597827562153217294243571151858837199207536695504220135775215777014426724291527049948121580050943581962780054925539730901938757471651275148198553831632329237896886478576155268113338863313600780347449950987207055724851830893496751922902501810022283520108776165018355349805488932928517610732785618111778261295887401295230604898116259792391790983005193159785718979922678560148188075655530867136100873434128801069763310163322613272226631864924098146551961954864934825758577549561357766913977517508690955777223944127616220426675949306225787952985436664681933250360796246301308833643802274453163906437168906370863071578153185523898909272713713170687120393493820191509561694219195689308180721042594687029175153583955166139540187239109923354480877917611117801776346779891805812331868066524976578155448557442273502185890957894146692173325285166986984278194396348568476625192213776125492756011499968848919008974748363430248299687901618132687608065865018546313501079477248940633604061182347204547390906205651389535443708444977142655040443869862258708892211262551104847637266989682298870353712161558618465912039178533620315303083450271974602927591521205644578608403912358844125192033043752870142285020300396746236811087934702975252304860011443189578099248597530512963719055500001646154870640931269424884536661001380375652249479210046409885366580155485271050571630816887886977080159840781384395778357829769052716245169559056439604701177814674557277398728808841383619982044761517805344630821105338412407298130180016116619823539204884981940097172214016367096298720783605473084995737871873126484677293964249720691335140495864450776474982458194772782359205419826593193700433817823904974041532530261715265512581829376272272715268543859230130645741437385987453001777873111999227479338929132731537715892385846764607865395271363703958485145980011916309261471819739899849214429614957128268428769312900664999147172416112622794736880518477635629418100037353519307788010644920730159997766244670932305749090493861366759492162067830756274889546893569270683948093596824151633467539418009056603493334137961588901672808499540302830896672541556167693655171795312774634916110854239534531451978648652525558171108120624705835878621733706240617218537255070265552941274193219696414491641864740316101421588110438818539861537218138748437184094648436051797249591952733340064954939895278619407601165486903707696264405323500314846597242516695280775018569391630664841338906042530028655505900829251306247710757944953680127679208942193112685628074559345331977554323237611927493864223270837239380546736797245580494252542645485495295391096937695216352930245408636153821500562967351731274151319567245939759937408384417072070195553852617680931285458815421050453654910445467619211473624090782120731138323059802187340985619612176047586562647340428227574173627793321798585525348203114629922525854045086678410962469923596547580799180100352174994626171719684647103517521415284552328030237363094077005563275959644256864857449607937025348473868534539591685665356376233421450031788464631958327689689083671096086228858634597618610014459531681186032119499454637087146408527735479621618773369071045966050796053102326193517644228171708202238386289635059833812740490629690314156811357475194581748034825431670544788191264624797714566622101779235523190843278481039312615853858240325993806131330957154077088880146124049005866620611695690737195311850991293801255377478069074643679875845964973952135413506902551176565427076139546973935251190794997491680000490576933713198397425477486199683313439718569209840532949014099220055154023700792259570938185615995610013082759593669788276498624200318288046092289273810861940591262863302757943423540187541755757198912850506381587071703046131915357433525131385350218122511321090094536123519841490608850685039134276945069177384191916464989401935363303286637568753920932929430627382014815373941864543066259849929683473420689235727148325948360002049396863690293995217397810881110372034427772029012032827651136207112601186568319841503619840915871656331865929576401137188174977201315586970352544991788913875482537984567842200702596169545238902578836690638217657982869417204631197740853753004573589905944045602411445087533406884111329400986375046679208995391378052052140596371045750475574053175419578317594951125724992982781486490207428892786352600294316969229874204887529607489661732231974036233215656024947887997720114878315975429352967227247058503098764737239466990669926403462379061083961498662910710999481214411609658449537809911841372386567297289080995429379469716690720577669818933949297526459982258564542693620223109316908983438803967432784025487445647371673384884400099257116534469418659442172744893221114300854399869529857528455389680527673044695932616382668695950441093818779775801794122234832025243678425070251970846496507763494682746997723808413926790363824402025952344424794653519435258252097014562044024399145824721353724684945587518211189033588641390008876494009493112190481960612730789449125090858833765918883261325290222531731045104486278721701438869004838625950466752615497930700391617285507940703359910043179540546912266220735312997098347088850050619722634282570847473259222150635519301008123855917361597267538323355926989218350661013368790767297564147343437708091258960436108553966701036010026162860266638036764990880556949941200156789940488509629892395619112098757854873168347077766775410175598864783351493428919616434129025073334607312242484780116551770114135827694539219134756029459841630237816934223478694615895180333076602320494871252797342213428155090888535667246356479900613295663484632463227329820510280166565971311376313060705860113962132744281471263725752216266507711809461677191070320497546749188674909932717666378138281049920029948301322193333603990994116020029619849175472919110493246906802876466774229408300612058763741343158181639912428782073916080825472459845749270314574443769094605778439036436172103472397338844133345209672425843734031092970398332845428390504332882225473474516272894510483547783739700754948037263938746458334622309912311446293637616595305389369197794727110021267756313680340750561407634744997368740995033902709643067458342761559533515700960817361152977378700875453375500720188587803781061859065128866756457501708065539088860518209972549069601893913285331631905598733270550899581437170105417169643588910899920900276463962674442700763096411987684364225123118500048384412538465305540190357156195009581003468340799229417860709520727281857689967312885949860529372361177763234724371068217895935266122638990533056757373011202230223018660681596225657657593087076917898110152543104225257504165693761268074521222331540635216372842225630764479488658303354432728031510465301406402316296250096246527203536128598742850701478557347456995885726149347806174965541599270719952455723770782927478038320821794705622891277944894875108479724543038583846471495545185916526224902996199108533414654079501535859104562448966076815621047758139771134498029763082348883943637420897066027560211347485570661183323245697054812920766192467247103779019218016025365212147857312137448525615098861213398312226015227974258234614413562746025357648046611611855087187429917531188529055174766940639423030432985577038663375230603654565271945094353424126972869333901418472923290724117473305935332014719754341094867046274475923346850205171412190806186426666669643596311559730940534676319042988982777907977076198070987604504486216460944132366144832272032652161374746994851008926407221342870326195406966579273210267785012221399207762788249832167765754681230754726656270362742190350467368576487721511541733325013353518905541144111903512144322691355378124335062320911378540744610186417008023058654674138950238451560294969450019242015449062443608339256025378597992626741519277821803760848824736514924366378898093315448595098574389077863323049082650792947238716385179870883182883468619495731588674530309909470964312823083802741674074329730972034562194089123928477537110907320888828538598232775098905734631873664196923034978375932605401200959165952903861769765776944795079726887075496476782638181619469596739548651309755432496598347726593502671498460956545256772800510426729397976253158257073634629086492542580319975516200269405908141504166505397612139603172615123607929200846749563472378029449358803422125074800151541541106443969637621452153483729836243490853223810793033557338616429119378359753231898390781845774241685065647469670643376630454817739848780998737793079011907083249769480655129257720115833117512115195757105294915128325451397810073976416160260883336336245716015724139458456523657859515253921563234861992948875105200667746485464463789891584497529430803109112303613275211118365794830527256516720888790974181066393816163783646365277370050967497969012841261421185833006540243788007544338512575997225251568417034606516420822707476892933131501867452345073894211969532544441935758978125669151501026023666954868254024396416338076617275762083202662003272458704514111015349504574492629390546955623192188620389879585346530543484684852450040385108242085016955496899040686932844703744785631544321243878903095762188748718631053769042859642634631903975495632120495012593621811601079754365064572145433351683814528064088176143914200797372937801388716536513383191318977651288369635752316424879745793280223662808485514923443831940822952665931583365430365503187040595680663079332039398466010761563275682061306779676962150362185423957424100455928599397303411627727706243703198375641639493552504638390865350792505211607791388475595785810642244134984007383336586156289982275139375589940865184241534640497013397832064883260447258558127958771424819325471331300370931778346196078300422615978565742073255106988548365402018947235126268557020500991279110056179374226006287035213650368925756684038120367696590643426794261351002173617976164317547633655159044175048285486619088986964479715557309663069009003673594656672542459671700082029388123976054630003886479368462720938193644997195855583801848860366630084311384332610087712424921611825475132991608408734789978475136111162304572230833806627462520236656007470036956149462590029944923843821932793666619454576455375805478292807026550860537229278411237938176461699614432154483868844727570455804654244608150462951195172545489083135135365546484941053280806839037845647611960240814626846535761462717498711732626696802077757362592159254901414358115731135196331019297096844679208759643536792312192492136375775971230626760186241161389594392501058749462025426876031308312893182666139925188200029190823928954335732785882384109766723866451977884930926677098640232585119523867006989083846082917278764456934396697327738812251605464927243633320081656643488364754142072391148594253277473065108552596066609520697397608009930972395117356916766416740577618666640033810932656618920471840424190159911190812045173323499968396016025672557828260327093893284410346484953829666318888781431289621739975945812587430279518045679384774649834101820249181906640790121437005457999522774655493513497796151163903375019136864427492859457698072432542961803540867908587863415939174427310948187369118030966847217527222332616432439449948834921522786066526554366933519773579785615512017932108774215788130930754720285018258990615786282354941391681791262010555162615276756016580737478343865707003095554569474467611806998300945542621464220718431203532171611087376056988289499253960136620696278842740336050011199521188124547351679376605600914185870437572243143265352652068207037102295115779929423972105115860074770792853211523962631338507145932601247331248916941535130872392387165238386440328600955569538206361555351123867227544882982047906643796235073715763489199043033767552285514158915787922659678195102341694919726112120446696540235766232838473728311293503002711882095265081723985057677761176642206592441685914198133571431911607979304945119699622254368230134256894121190882661275276714439606556677746274840421913734134110441546730276318726136836091924109468969076869444911092379472773874827630327767680545229221586859040147491551542530892804293328551280867766420290957255688619347074001320408930732165604429697323244290576392506680329994603775589797781043328110641559471852095937648845388429014525652502816090680017065462572697027639172033224522911154189279996090963648590229860028213293988199435437826239131781590986327273905017682857214656992826071948264039132799585296688473168728816507504259190901503076259730701850908550588625145536486416526006753077635026689133821816731490826717125581216862850542683969620920202386914482951719197401297832433237860752209261235192387051756955662500653268591892956200009811815982388128472719905709961572749924597234030810268141350268088110217432154357643923416968872475611033468624302386503338253400018552372696615460573068340248175226415742993175164986372499725267483075912550019836920667537761756432946442889649741031871929537079990568595809716037685383278481198049812675395974488627392505726153089408689280780110845432444751324693668576764520471031456644366767382920343154644601151581046634549168304127269111900778698374012315259521516108496007797862131614387503255570701227391572276432274810096637503965675091180075640080051253078270431708488790468837157153670828738508424272481876413971921985420580188704494055152843914529560489945286764069603648336988662164711012259537550195183967427975034523875662813376481948969131586847861774456078401606856009706437599572117900666954416517544455504649084496754414102854710931295192586418995654521704525771923824513467828244700403781084252560855906561271099772255661259229745622002957456927937163112755690527109548524990049860464478669604679980379797237453316039284335810349581495608396966924676449284594426236200233698702962463856076106436464345999186555994974502190617048778673000071173412585096252553768542534435740581431453338594303231318073155315664761549720986366102876186875118971940805253755521396963798028826337171724929735362957358527439848350896590564868660728343052729178762987078643844315336637443387256795764002646594070449897088910451019713366562293118725879175821655589312612893520535639577713939022494808216501958527807607908177276129507309173872040711585294700789501465184060086318488859643919041031091742561740297934565174603499249055420419670247121032502936363048215637032227305707366877220946967358955958658387045363030517782057349480939396732794999095609585513977564391395393682202687314843503871709783328556583844392113016796883464278192689651265015447418251001780533350234958749847784372827830377231132241250251822463436688663482877077303245958977680011994233482133838265211054239121514827433913743308750423185584008161213980388858035420984922985941055865782592127077346756420681030976779634468263619000758118015379258587039605288421923421911113546131684281741556976067970460770652219895305065206730042084391030431435929339090987538210782066354364328809763070934150753842774349466090992563286634711070233158533961813458687985261102087179276122978992990246992055953661407971613812213090347494849179131592893033686814564849562016254667307936349178850497670570647448472976672134331657407722662294583520174770360819699444340806335673677313416513609744842316626057929133217516317731158107608905669783573475045763370717678764271006306934729791209979704342969482466111790655772276376008466259528004945989748970344104370068170144792491085135183745251370349615399348606931209169447325217704707528060765796753312961746662293860079482383083879475504902711965880309040529808772890626343979457435763166168150785228814723278956165863501663116891277559991184859177848511664473290323039684242334297424870091193341845410655336902513376822497065854397076742753191901601669180801357790459399956767063470790961417531629631131114377281947219899757562703514275664834129522725566074673467334583781852024658865506964210335957771217780223218072619051284356720190011892765557027784973566642037873511874452722529757347034068568050458058237797327135066494257234236310978937479623399783141398274929993731008047678856356931444556879883699120294375454878929003910960830780637615071847847585910250043668355397411775040767965673881404540394301867647518835589817189676525015070275639882124581494608694591571824729748330366401231660910888389975410554735673707934015729317338836215717051590855700321303590305847569280449298605616295274178324831629469759402462426621243226430872468110206522512404903416268641316616318261171110434201957065150629860990567893762041268464305630493427304584404927503030040839136264549637405456007010995193061408170736035541784069812108027208577606961475110297527781740378728408125616902469254506717255290910962068702595358445634951038100112926367393275252760116459057585130484419833096733186761997271701993396467219998063771974740633482587343934069807879169467458205444704513514335049184180423830918834732067864453285058127487246470397602719349453566705628440876490093016112516538067453595773192881759126171332403395040246658461590403263919824442338980940794816984196191327284362837840264625189606134785414328028960161295528668558032946295357315553806112119038686189807724825090094623773882995047177394230102035411697574639549736817442388197447181545853058098415118990916674552382336700434568771659558675365663462545441460096250044018749518970293945497886678661830243777149116625902390591569879480067929087592662818593948596319569287368407228426352235803159228541927092161116252758031513401483831599965121220157195619079401163247105319213185173977056524364924520050770276360683705751298513203702776725738881704442656107082720367254747559048957572327983993450931749157303200149347005849117986435844871608950600104885243069054076960938315634892471474874835741931193914399938684769603796185062899694947803830484889353811711720866839532140795445796084747722543197776699492712369402297221060154454404520332142326909890591175486820918639533406066719599880418342626775566437568805645342446522382408714750161863672522935789710955342300642647473148895833143635419084705507070543702366266574287165363509751144291392565184338199307953926110678279445730443824879191632688760661846205884836638665332089940281462345723334732066397905100887341884040646756838710717830298847895717697304440979301764594030370993932898882613572668820594837111795079095440076569354023622391769183042088946421669833446798576637287575451819919698645964994245585425827903281421175006961708325863211879807218924608847204380673619890743303234150690412117913434355189088241066119976043512604353750379726607465520240281067348579575853131408550773849661626570745354107400707559674989458666951513292105430920183415824589606534831554032660463843772001571285029058476240116040814962692447564558802700970075621445688946614910536128932218364292886576440398548560675805853364569169658364560787375886051208663420672465126601406159114034161471067996116932672190982208130048105320209760058235553007302070857345499117681792291966725415165916552773589357196375687716154786528129909666424949247093652568709451208160512359837728158008467641432584195723783838783576307915674591464913523328805459088991043363236975693878588210360855862185382950220984535091210021831362078830597088180679789058220348997649220392480281393879187172651109591341286201491744709243812984211446719556680217063834463304012159059157650877192805907706554145586687643770249246155866260349047942241057534655156596251484322591955685064653923306261873132027115626993782281337505838361077846447487503583003278926593915819525116500795726215674211781632255242592484078328104416219223894978411473778525185717763797846311010306160962568712005533363447646228998222619816876281474442936684502910526097925804675476922336702552655536767730401135681342831091704742143413561974631933707573410518738336664001065993226563951430209390785153763226749112638477062198346727851755323578162118830830159342649924240782243806146890499955600819911190773490075715112256080154211985675841452961748864340907806060171489882204677334370224054770730475068860681531802441378458499538886047310875736659415435293361510732029066055703902932471125803392767327690553250650852932850199016442320141910282067264577291802083843120173093349281010808161654390938090144875229891312796894159119192527970220167486875725870473760383954356509197162854586369231197917258186735266629240273027221280135901138529297491547709152882444009194118693872857818601630639794536329809087970375984455180730818767312593449643459273422162644904968478918193927616097302605221607952934641637814159276917917770153453659763656543203984971297567830658468344914167991212019846591863751233343421485809521857059057165167636177349106672637476117500496458769294793336315913448551647159454991991583179010663059970670319432252237094547081615677182290125063107822258709405218379533232409862307811538611270749307142416537951169781217166797266763686896531112860610991319040223173426302926622319224266385400858043891110115999274719508410784129667308357723299153476435054350807694019991962413373923254439818802117485246179843597919916273836462115717259727378513113829908158570717630145070893817187954923151654828034215090995627660153337828107511173514018629386430268308548853664704318535206809503890979811988794221052704009900767423727465644598472392126446386705928411518720918931773863296781808376241646930346880673914656476065578778473612965360208334887792141892695370800119385422672518249077115403077556556667546441337222943262729270860910368486253620256671475620818639953816812880024873035440481569440897584715794627970332564535060450617164445960893493035622509307851621458370177006379423380288558467706693003505779380554917166519557049855042121092100631413582953354764422678571604835861719443460839321594373517243140801873755312400214859065473647572749506053080339353000966984014778175015917389620250601479500173315332190076213214735349106415345467931835824041947630275361030391026251930304105241353010732931261691086700395796483279137367357658469377440034244537973794400659376599674857623363281678206357700479849901271045234199290901667132772927465486907252623652999398084593492175019141266144468829911979972044968282942295478967564592610937419277633259304546811490614679713360274721579430503464821859422676784581460956218624536163896938539062200458988797979133212224892192789559569716013001463096125246790521319388498561433079724050847078432717410269036782082812671476668685362057799473563572986984763883689229746922606068911613477541861574074593961827442333777084432415706669422303884689373315610705823051786009314256009970301857996743289200097184592781931262737291571864135936947974446729980772179932128372528596660943939506868909628938257121454378612668260764154753484597341007797394197591921754443036595578646569562542225326739796453168130670356081724554268273434970301193104419423990360015834100742567335331492890477157287420391445822293158822516494700656113536290748237992530093266951029536147487329857227190003441165750875760191590709116581437546020165066078673875530664572726333947456277306266125349757525689049492009413945575874332376602513589145379443579380491228561950092922519749524329341477823465254378046569811812044280133656584663019866439150082347739743423339038516358421892247235637546084693077597964756517785959921414236132323382008908254157131601372787890731092245996394811951776429071901237814665710192978500629381552210232701123504551642354265776266045902122921927177210469712395127134692228622282249207269145743886526043250686031977680494146555871714980134501419952090563061360101825732268744482252449882054220691033795816188148870565584391066180096106222218122717648032961054708824678026100374561224040819073097822077852599861045719832164018132067662388378130623701110890661953088568297881889956414319431561955933232272190292454998382105235975595905376022083032865659915587010574819016615341625191619649032934305385010984193638055145176399916468666554911531711337029211964081075431922872044373576678730827514151154062243477122879209796146834969404727290659753012524368231363622162525650207477460147062868100032190689213898598992011368798393844105300245971507465344154874821848134705457458854116114591027421194368375697234893069463222234461912361134568147685980476229388343829016344197804489687383164838415783307367011933738193721888429087626025034405788537995802780288128721802589106900750399347423867606970164641955342186341459885159148499760815864588105488880138637691082161526141742388805945726153335374343214999230057932749733855478973081877517478143658507092488101816021524352575918539910750297668621735141641771146681758376991851106320858211345528731433182440017976966645060587448802577226947258616620711880712067799462128796683048933946629090765964199518359313151917323235146953577655164802395034272582588118624737340548341226371688490727930221959115987816576104333013204306488188182275639049605393612015177908292643584066468435976043120625934574744063826276316450549809852645632481560365731957220574963236415038985434343089176033573092019517699317778555243935162947153527478624000648548856673758386296694346586197371446340976776554538063896385499903302424879179850190893174014344143028905803697403551308414786777960320617846960955561460829709253051737270604549843736115878532164532588730311503959718854932338664285345769391519020389093775211729472109257890533888203080477499543239386056861799753378526405488236954631128900682730239026867247743182868536178513900714267599345707984916074141830334078746149214866572793697992507639537790440598316716667950250120844171401444822039507758917352281909297159142365891813487737971629768904383356704137541110941146533473055449277612360022556530250409715161416393416021631281587126755696281947420228333679404535542032686926658469036581704660733443263114263285485887520840520672213242555362639150214101228998818674305694204421131115672161962705888814173742603942189132612330566990141510841513050352997069538839168804963303750006797195716220169176042703686558166231296717343527715630180147898848520374998599509541047534906608028203384922379674592502231716419758819774771025865748742353088973598677308921394026562384057501687391144741134259025691204483939375242459717319343713585755045867164562268823068481483278756986353567504016266053651831624349168191249036453518242375376525895148808691195222465998870124738145515452811450402659079731653559239965243334429720461266114025059070163639029394483343043008370360453753258826156587692228331229577000259988713780584489320033547599827907779806701496426488354807439449312055949776074978348393322088597175372903277673455858215461657650251111782378159144066737676958849622314869844475317665207135594152044401577597675868461246871478098016557890672508870294393150867551135290418189081806408639049376222479879057854153159797773896557429600728057612542959581217745115659741726208711803409587188731467209356046574858659010318014544529488343550147079098615838584953248578843912334529992662538642409631035218098494861530087522227473000712380460086604124815143214220376974759141124467435575227804613691991430727933616151819415059659944942496054974736391131118870624365675961966731455436667599795804485151722401820906096238498907268358555741423288090004094853067285710837350674912731869305758863256334216917155262485849930481042058687729517537097444721545407383219802440405958414629419855541352380934585933150253584570796996949853821533094837135398530520884583170309459414975742142011418025688244821849194813303370087627931816053168102936687486907632308013031601420339922704919092554814400995575274669893846330499062512779409374059024479142729149186287294562182259026729033354612968229481768756578792883432100634177082282371267862383373383183603906910123720238555132879276208791206684154409562357617655577760712811498437472051130723283132461405020713499979988480488065879057888381163171419456850243109400387798113521751047457716739885737981849972917197331910333603156225571015042781297980113685660828060955450704959918077296639355958460274976054872197048926616398836878414913258813080747238486859747209496362118647176945639608196214272436147412955084285878820328717795063977426937052541737467521753682337662134913667968399454156675704044327176241443275712997644259644744235316458501982660995162278724752092829636313616025811440232169744229346389622983198230058657468273490948352173856614961308220515149595594698382967341820024389921454301775736407277410826867822459379604390076507669135350015221721537975892044606938200840646060047344429055133206704044181252064767066802984977509949914365942004033256643615311987306518464634242002802561900408574332210594644923842763917345256819359206353503387963388055135924394831952900257760724402955300296872659155106547112229873875004542654009891707394613234011759349900514622973810012029316441901982475534980061042011128677800133895252296595721403236016310366067948074560212763042043477296504490738018510486192829437547032348235256816475940046107175030869488025568440031399933212990190769652461806539257917603554963995897162698078925509733729790657410127355815574337534965062673338428083462979911431126966361126688333502581074717779430784198047490866085074898000196339331611485573089615803919395296755371475573085498096677571686990992619560844877075797355862569050983740467234360321242139520404546787586587432905504387522808991902316704955209672731329244332512986482889958972841385792008690850235863331653888270613753625284512988829456578262861856370414587809771686072491324751126939018488307574501797060958203381328529979329990843567161333756493153303284218521945041235003259835381794813560370919257065843754373353629986291538359808800262027900725411052833009660625540966498244798194239938019723951555507000271870261940507528825937016468543589517668422607598968250633154474657492121836092304159873556237540024306832505914417143608954046333955425440947872679366900962843267381444725191663631374037991602550317929457333624175598316397618952138120093138351784817948043353983610359657801323192671354508414061038481145913963545701866828547834785544668676050859958557399843494949179072436550189259224920716926538304352905235177859754190760872265768303958864479949757919216888843022542206371902991704822698914273043110055486014337960424827218628423575693208434070731536107159247682295322648315641226595358927587329691127089977624241447314487963003941680830144970758760627341774024619904869812649179776985594698049915719798485452543485613558439519609233045789523457603593034322413709115322773405634255193503344429360166965853696884850378005158640996965328541061719104489493219283709837283589402432716745026770769069343569944837712962427172758746645020351645077529316198189570971753611800036164890819641345552781117524713472752166925068996147396495161416292438230850194854407177035636635713912112551497943848136959189893878067787408284351443611088565991938020721048694504048146708513392663787328768769542878633232473002279542929412002310570726419903437076824223570039856630033434570596372215530758928598641075815454411685073945132133658260356720133558618671117008240045134954415117621957537106148492458325845839024456822475997112208397009579013862200191166447439536577746137460766329452154585903071544891024322547423393606679531443199952710235555686660352399773107264411943341179848964468043248045574850180536980730068882093035239102198494136045534192048971169472291620280168413106911617755831304610405501986215434881648225376514643642023523067010382649234601876217461200497459302263486672305591386189255908979163407611674439910067908602126894527655970083042150063774093934870757470123153754326074686558342503375799918628636231352224244646990756817327197319063152614703556276243756986726959961810604215075273195397082681725409487860265072805799650793275522592488594949771031096946117616421851667012133948427494346262317060634455141044089822222568504024661996679222267309860260555485719598357335582945043887547852909964970738582368003616550388762038385312443693105567318904992108546899875317417488218462013068471155300775703584854660630556175583510622409501890338440499653357684033218967056597546124746623592201623771536622049671937812403420626492573717943128511920530487581042782851349567972439888240095626820071952324629481968162444981462325918043590307193334077350990769270016861726751593731929551643939506943748627188303570706962741299636470245946496656498525559976865354427042610471078481333015332856316009675754321288045803645282159283398910656038257900713654912636865636563332934892629624298364750696007811672175824567712915156775408546783582026836566067243894574917661013831667794151679721940087647667332256967337059006475292735348409330223892201894713399389224943223212972316501428097967664129171321145284512364619554253648824409989972452991258826956289496812544307828674431654119815581327899760963397665528873205667923013039552759444394210711658437640211575590764009920787399654909451263554698454976746850082266890168580105968542517682083044519265559555132905761986489415121940629913423700658042747433160282638307919929603328474380225653071317612612445039122080685337959636884779610293770806890794317773627976712449646255861081239647175934671133726730436802063718583565953907198515934627216499419854119452222864194191061442784070072135333553571785229509126204913672248708460869911040771300073239598691419786379968974577217395161349915039994956077240112247733005192736964974759847937932326250953898438373729636748732043969800180324250025936418296084493461314676901373917530416066125702732545418579683890953787028434856259687914270692305559665416903983135928505728449448743637450893818913900229855820504049368545253373750994133330474591687479932199418290747317794524156883736827877211628230710301577355610699815448338751589795621745705200916459394145090458125586899357707351009863699917816478779867770775446383015255001461406693265158445120671478999022486852609365829066508884800608402867818999898724339414337401420483832620383813994755480164343235085993581550052643272886815573514010191133190494547406113653683609891140120419622707907062867785838826378664750852327548706239041185467101156520266266198729561388235485232281168801524349549378877823135853533521661350473897933523400622178393275516444195564242807730156472641403789876484912250006776991905003341967851560705275678934053522743154929297925846560269682548438682283078122221449430596492388280579277421831745089722680677890993968328197841371662861814625750936381902996041404885196539334547086841667375253460811993329244079083371917898113208153865275268697846167146600862313483810364658819391552296968332390855141964175481143772033455839447366101466196525063496198446803077162641447413839013309257285889394414788894355950248357788583662113474143598017420373903492016602063600170985430011406055292245175131236738910308531749674671364956943998607241709414569295941683473036492150203330066241584684378076293700106451442800704626820585482929243271165980053060804483230780928869364401413709852366239398878352639604892459234806783405871459713726408304838727712117774893940588618035407814593588396427365841911352327608604286654956029878115705092287152734722497172993144601834374154125523829009284304028642325884982676788266260478314393207282791278812187581012926369438352498940937701379459347051478666245452700594457962033727285504997967719978649954134050204355065103548176916468841839088387508542243971684236844428829877927333253614527536374636965998669833534663213936060547475460823550866353599918617345800734438392019832225444645471490253749915585339749380474816174582798525098224674522421551370960690589410934009767962657723380909353656198544314182099448557018070142661892590149691887881429615244500859255987334136515313360575324787740010561818046752006634860391381132059147114132722001977460137859539682447980561814182712358380587309616823685784629841717254333445101703773928326292409263686473969849333637430625935192989632043799826152433940601731273262042806671399390350430628151958603851009700514691566793431838100267403425958174414350190704362697296903376778789638168705008085034239063525292652046863174011936212500382673069202533720016287095226743493444639539228018859001465220599737309850811368092422424597169661866703854674561640391836188117795274450936550705658565990651569148843705482841820838611887218892116629931904089390181609955014018017061636947339279102207205994657835633987117325684611792659557308026924701074319650667367630005214280710700381496777425214502364774400065628193288008357375959711565269981614236909861928571953013925057825042297233899891926880530631086831972449125305348647847196856175352746907293658734673824900123640320283926639165338793740848473644131420685581633900865964813535770228571511003284409590941831615467222390430145760541641510230204913804316373121803444027845096927573333669372033989347041769978658022872865711440835354651243822216973253593695916745566586662212611906449641500210877738671171237711052778553321925874598583916849634191484349569142581990413665997019900910645538341948335137708707060396514426041524394439111701823852091767354895211115742398706055741850861443827919775776186766787681312056775544546994510477615114678901613301004054461586952246451295284758377551152073037405086145248360241307379120941648321692953679840000068389892516665393118983215236398902183174131986431258620860598664414304764385102353597153949454102861053966516938690434874490979338915695260110999615348624366288441618634447880324482455816289445266136165706328169047017247339266344093238852748759236326919955928601622035064347836322388219725988007804636126822914177899107327598265034190407127893196867237287258750116933851130866284117172317004042286048139477681828534798442352274736312412842182450326491002612320261263399167489811351437150756868383190060229681004060591352898820642514677680159070236322772807803850332010673514012146136569905651677737782829531355749180592111262738418791937178760172224581702969271252394553488585775609719246514415420125138481772726185467043108642641216328745071213449334878075748432542381382976814902507263562517967957584627402143319941148812098602420521615857428395238429296881426442387288968522388793556868740983117836440995519261678955293209999102299924534421640703731105812112259810184094243133672214313318994685468450826735619304251943181017193368643642155374903594670340473113211699461128230259425345641968208111394461837367247183043385254651544042752920461321607969179804869933698442608327641468997595469114062377722145641704490044589167166111441009206867166931745551682210267898915816268682316664686516065842373732516780468810662826060625483156840499879018697144247119886599377917804182950212226492333946224412336616274961769763575626824372141558757359122427937053418493098729371380717434801748240288356866302538798524241522933283391760301174809423715814453294482955101231591466704814239557809835037510781026629326084168438350459954640549197667018533463188089229927758017543339364133830449485333266860057903616680990239868740724978805526358252398837955784622472065189051000320871040045723112553316795904366448696518497742926654529343789643212446128259968411450586414432597422630432303942872266780911472131377953714617001887867569492632500488303729712548229570808273268736297078830298588196938240265782291344100623739067004894480186748770544168070568537070925447215303030876987126926957682970043234404149995738897802764078682468235590568907691624836217192842906708878446059885505256111155457001482675933986873612719153764632472310564968103191556922781193389484815932289346665799255629934373488280541155073114855164654939843652346229250773836737345068152314955217892402980146769534904039564731035802423784863963790378530769821852509278414659244856677858988366741311475480770746846423795871201863564724633932683293560736797220022052205510335477027730566582611191564988149163330118955323834961748751699153357966372222523251500910464436341350678864077057230342436166884403369359613046903643706387018947194462192404444327570979077554915630094483741006179767719565782297632090623029233130989960366277566053327032955595849123484799041486008687297926897506766837155033835603595177004909883845505216192439017815581723064401287458542119100118618497692210700054698045604801930140752334154293952474329100270785289002909569784031688619922121695846901621217703655464484800003015563221317552723643918736028669924427228074351626645048331519724499660618890356344071449572170254261786895701997046559434971906299158053111191073569954517480870860990873847935632624681420819484855376984326419465458379762928563315653418869340939137817335717606365333901887330162977803011983698164552678293178737943770159538641303528298222462579838073734398548221684963950204486035480203783885287611897004647826656241935200073959192069658785986779000487047655397629224794166110144953196360518197195167732773830475862785171000493529812807842001228608155858967911899766923525651035747284318476297061488996128691723767608389457860304405117081582761732533621930244215685858522994858533567120744746177857884263517872233943827949003993142886348296855813309237440507439229085045485998964158755978750840651853213117933271029306985510753094882642288552480876870417546735160720200394800364429475888860303313192597876753108419070686336034182178980362206179973309894567520012284830216139385706631637990407616471218644314243457180904360223865489245882547321803948284911567586999781556844039099256679442240465326468816682637732043308973764486132003416113551354355190143774821353047392093900155597642245680835042490664036893064303954833588400327400559246918217751574991616881953796783985142737944259002210325643331340194841593584489900613711837355393596528473979582106144299937888038208500899263612290021196824632230408807738915204443175368445020852609358383858613867206920440445872695882131138944534916412228843981088261204493309359977532234198484740291554423013303652785646320304876677871585812841515813513671418739503499974025670442003273516991517369447835555700774891493051501094050786378855353195450594515927256168101206674220121930447785210551469072018956730133222269047366914598454058656696535391249856640585586932523235718163607614946676698426240626841496337712743728311846260435328144869968313995543884993331631662548191329744652205589807321831443043092128013193014164627190195949219407430741230206695350755825168818527499907272229747707829007639765468681653532485953884305896660731104834366510049843409797597626964575228447319056548850506278734601117532783790305301871425496556976626530347751908989342892550156654812707024066097644632027550109209275154723578215520081058301542973812455937847407387277015592009869219261384535779311268754701906963181340489641698833503858792016650070706248639102318734980971279771754803544639594275836412086453124758857863156926872979548372328813832697839126371320978190883766139946786165642330756549441599507200768811896777532377502313921716870491702569950206766100455841984556819177421948126376192845220422356956743347231770146691913511998677123163164265193437261514308708688725881415214452352375734125253593181536893314288098355360276319486444541264100149164981416251822101231796029697631963030542208170980397172403537275201941549082449489421248518530318000020129101038635080823798428065749444042822575944545910032386889274156766633125951944654650477988094142844309160353254964009251537876753949376198066966063624129915990115412864045217860053212185655495749243807021467387894095098836465064822160765326611373456090877375455401444681997341068831966682222312359386608472915755116083519207910952253412724101228728003610206343710742233934939773080895626371168368659385462860869190210753262856992072799441633903799692493407403489218347719618895947967899732475291754591190934294296148028699079982005832755469179160841244462527438001667108898943772566547494563385080077249272414469497056057708934621084714876100009905511212195935080587446288475906531987215949198190716398787060390924466767156073014033232210535660146373505563961964107330187047092068431831640551291387726449068825218846082139432038730833893308085131161833826880171247901124275175698594544287432681651550211662904009007219396514558412103294273250473512460064381405843915365003970238240565311760753827156659337632736516644977023960316473892593894640034879786176092953612660762943181243841871435416043563241763635556474883876248066478589912029731600828870004024885590231923938061856250368007755049386303733429983735545918978057498836940934091358502153296092940430121711993639260668168407093216386833021313538824509138960115579571879188768804560281936055599877616445544651878463276848254594910629840709471270552678568611687410243960990431094396778717226032014912590305981543932541911869067228112260978634127678524579148323704893325600518947391204458367936014319452678313829696816618378737151770312273927270646464364426255290955749075838691877444080432451944794552458327620483243137309007792187340660526019325431359404368344629073824569998823801593796838636033211806650756362147256224400444505673369943207200168978465423571719221389248520850324700058334537492484292450398392715717158584326921110559320782449354577589040591077540504675293974900889018494819409051615413431060455156474159948572355445316498912127731248688255600892054470849639585546408567721662638754231366076909939942657693657920030670517124548534601980670880817655793156277227536336229105015764452232886426493417695814729036550105449861057175273698315489663022303089348063819419593326034788559772089919734092799574806829552912925420618820299090207007964340057462060800134143741043890407762769893473669545293319666669463058168321363803827353556151670534679076128541083568953964479358668404370665218245677807825185901952272937468918368408743638260432761196378341102861245350717848044960311086371741506541862954023389326341869118290851101616231186458736641067833666075091444766625191141403831289895596411549051918302830784311264524110918226882792152823184138294264197166908088710948538232345050510560622545186000137423911417200356918843043271314017328117690684486965912353118183614845222298789682854218030969258671038924980595991907110414165738631022167776189385287075791957965932842622079957082372217883911042589252481883565232066358576492378580770716929910739896424870448565522452550323175862828492618274174461741580110207056646364817252251109070607067311284770603568939382241012266067771446404956790223136533947737662177961009127748918530398949898450543969705318256171347396654967395934491588558533624070842134407387196743249176144289103305071320240387098486883597047160180091074012991208502932000871912095990252272824042386021727435985508870859143582975503707290511747777274259697351118796252874027910379126280047139218931381010631262916397177600495422505596163096048045549760971964678351258858415462155112308508587215830761989000059118820308312834475197445133553851377534284407612994612578011528252312127504433519196769777102370416939670803910703334439580777299194765045591558226014034226669801351770468209022537808197608180823724021839760703916880264209619442968447470074039167270451893293829919020907985336981747489676379365396479417240611306628591761482787720041367684103895836706922412181050795878972374515699584186424855977721668680249440745651440576819508685211404599101687287806243674812249249261001118642706795012662099787078072208781676426189815149278851380238400193700399204080473220164872213726139728369286364030798385643930267327467476464012324681807784672229027715064544119558941046376722141681149392999511392010519998127586377219742225078720972336112192129364447657415240199167103994023899230214619671106182889787199940276172930270389574325772329243061259823529139573134175756074286011178685278993364634642699437094264149167749852838518458674881650985236474619218030626911764252292647356059383696817593714404417374103014841350574132690921670058511234445625538330606268869827703458124699301703127303522700209750167755034589703834531664564013674662692751223066563310303476595751315570679628764673760570562676826565855876884296273509964619370860926970342911189031475575126858559509470450189322566304763475301930169320469189613195466041799743104057228253531672039011211515805181779589024458500355110184212985971942785520825103854511468498332440991684714743426378831046969521393275436738829750766660385704730202069501094354861340979930234390715074238105259529927842186593504429994839872382510134391081446032505446514451078029169935031455055705505261251886431362158794090265148269234579683586886863283108774579201190678936553801292141853386844687451006284999957514533203646763135280463014358420045313217126561090855553970079962596442829673307103129429616671427015842563508481160829612462214615887636223855373199343559983820154234861850146820553200382220254610556108174087309113167828927270782610165142048894314159671986942277783643587313683648075938667572262979102953792863625403518899879995559076163954834634166530969104294653342217528918418522097697437957051657523321440091067652093895870348865499458299241317919911258442434896381082411397290777914802822560032042407898190184594994514731584579403922148035096230753985447039679129530127107126912709661256177677945627695092767780908221851021581073138602064613117618905803968335635004004985429186201784620017782927422686828515969467952546458402191823419161667529939607036073721185563477324333334373586869375374838229396050210337413166483404934182163324578776826665506381338101208478844426073139866227585978407814317464597557582935763778184897116971122077020279779271637220350620651526794942754022604712253507949232217567582084728641230743853061441187526040122115674234558628158198239566185388725606573205673736551690234599442186807296927622277616318912885237735638435727803704865088134116373252041808709687629033588687904103852421237240822270998233041675123981620725646346386364123720168663079249212734918149639084377117885359739567272530841180003889515458954810028534084743607265851310995085372413916434371662334027761651024298498823564504058064373799740489567862788648970967919647683114212213119415404599148333644370983487915463564088612185772516658116246949321053538904078620357991969572331181147021025892904790323040937943652266831679990234339164061840102109098994644939488878977312761247353997682152700204571155009119046924737461937784164023158004662104768121976022884126314783000359253768114146137470123691502576681871363316845793840578088927574030219132977335109883477726960902618429705192686301133245728712489044585874573583035031637573956849980075722419740513405026960539964442789382604053654379536620539698780527501326224477253184560405558777245005885494110722512155301011101268683489832442481386497020735217099269592905830213052420830154367732950493152951265958867608034070778651188916896644608147189581131033383271724642614808681693194556898906244117069622044068447868620615858436128137077533043773405255162028216843614221625337468680824432170824402326216085270186011270439051943467553423601890581329964512037470685964829852617335290479007599278851160824288319022618005084152488864396231778355448912929457886844065168436965799518933781813143935661152570975615725097393887488771379147880171465797610078134018336887127265845096927304088894047260381485537679726872149606081739485478808364588641049330333710936913060651768761333651972744928974484459959022242215794839099780268172349973427583209056350142654738215424295464308173128508275329358220848276372797256553334626139534059284662126930493300748810888885529489413994297143830583992313631804955164136844633330448470691795425780283798617130517279089263750637777184853039551267838909644208258037868107771741308303625358326675406657553580966947308682527827387476846957020903653791163252800654480222673151486732864763598776848111391353050456999166033958769724402427550343297993035470664157797219077982419052782730862012012856181620827163390517277459679744579197684562184356049058557154278926357759099617208321179687304298757680078943986574338692989813863230536483046506083999922276940413123321457602517386193910563030407117634872223812716894030494809026354408998886902707676178447432986858846290382556311778472741924850364684028663192491241255802888677295219955221837038828150510948827765842806809775516048098662529738469358430215647762604542385317021461264715391470305015094882972243773886104479576695487226242014911417157295405881599351033252100849674936157444915647626995794884702824455849341524459657591072061380705208812201996974434657307324978006245745548852920145078050998217340146159910201485388255362233792917975833995728872016365895216402653490635772116208531966613232703055665646381242136414863882614091418358329813715155168458750152394764391196132481954354089396401606100500040165560695324607166764574625563091413412548979489158602941451625962169744190970323416031478385692242882305992999379396498659661068880959202286377957275152254637861872041827781994411842707245789620952655901764734278748771348795808670069630463135243059018993132354666215302855936557637861686961014487247481930531160374094440268134503493797620172480925125596561760259286859019628459411644122258761280788828138740982906693043692062686520889062724923945423915605633601431066713112877151270119496864534518552644843850621535605880792417999632920545238129975111966767563284092754362251698266864128597592610874380948379150272054172894751212130830025617150663908722528233099244882521992113318621325885004549158153749726534678906660373928031966014781053911019863335961982316613844920039191348779161654909284277554715048043576494173524749758340438791032402253932993185600361821401580630010671772084286227370615335859091859720905546668102638678791209044510173268248125277296313624434479972309485110047690659958111550712851329629686614215612366552804975123977158904374193728584085227824211864817008858752164912652200814626690672170471065349502322622537719449956648083663033242578286337785121635888179919197908133809511472947025226548177473897190871937925351885629603571674133012674527644359099529477471433979821980755265553837551196233998957889918616185066738435866957671448509537998650057810736374233813084746501269432426602697543800799353224852924378927449866216385931805339112035954863783573718586661600931732872024227875478638950233993712702172152943484373411576240816571747556198298863737037873261777699668821720987617499755155627931648594078238744688475471686394453215138269847340367318455630525430440845813332718320393934464587484562153301535658690132226031414331748758128580991181452622234694660519048367846755006901794272819229297512215088866272316842574671612887588932825779658636683136665906418880393235999696880514958264956333343156634583495505416279492002038921842614694859533547299046109325813520296187018486172262403350390337120804352344051066355461422971287311647962133894945916002817772054553962276584165639100355412921306000026812723985934652693461177822652588479557509875505639926157822943992361310247725563775995798772505278459763344593947168189173431581886973028855609671850686350406494119595808443891846893048155383328333943775950976433830675592503434240949771543527290902270008368547783615286412318174758460522388248625505743361587577854080708867660498618316422006050437926427679158648794691416915345895914063311503740885571025170875923513675506604299274002266924057904925881436261735381750345224226060768429363066355562146680958574085291237383702258524732805799099624809308099952663075358181131722363031196686608115372778024693137048806116019296122075181417200517163786366496585495005699009637353814750182514701396560110916841298063052636381347862706251931459065511398835498425063283446043342966192877725570229255557869665353772509094992503133914954899249976290286698099573753244606841064803332893040274682486018754116967543796375550942195613017795028430115289259006982139568485283576518698253531364600862561923613056614630681211566976865581896984368117008152221403861491208953222198191862661828134415492195849152441655164614319489797435410747819028664636192849527229931620139945134507461380236660471409606406315521413126948171977180928113258678819033713109224779982098741360179126806628442026101849160316772265263681526003957768494412255161913029406492521171782198538310920558171344753536270179136767090097362862576385787298560153284840531694631130297188906436805275641500821348402236346027841628371092736018535956284445330067331404867386917049055646816445265805243332887631028158542181626741548447714920921648011862417245529532071851872236459819144083007989792510363060626957086051984707552952240478626831075029483930705231689821673320739369608398728765637356846616589938417322658592018891930337434790632728689737630124086147306296069326029289308604612315801234595003187813677148448826373047017760348805164475644076281910434716706246494700968592015173455996273822999509561854402754426609566175608260947894294212366073320808816043070226225607818361543945217763841874731728853632669450954270030382769778530699493163006576383895484680259738594919810755337984337923657454428848127458523464178844444405155335760201851937014319282500842865433841515629454674503921888732814282612206300352922290773034073823987231876773090273267673204373498045737267238415431274241226902835310281594644335729770114132593907113592465840141089306965473149432169521275548573270723293646863836920280058682984626418837271089996490972396771618347782584438745016337139658719482300575206735110796684689776018422049170754094970619982536371839991425693372618601838861479854909502264759193167455371066303688534616737021846229741853697236760706008329746231994901679562930900741822403907804973282618892577999284132464653694185355404912018189592556370691780892694150780191987975125605999513856681823806332547577408021564114217297877082738526328337674780383078864852362518165508076516747389152831086646540110037686688412222331894736683026944546245115855990214784983895714095794348173543925360646203992573428301942351264945179008335986396962803250522723881448376307316505175542994984095033133539063744054168354312422187675289525402452514497329084307669213978384210981761609249781634298631640110271173742154127704782536700745041172377176545710718870268157661392292234117603087695324076778225975263440025668147741072194414858211153188206577463547198061693981119825489068671830652768985917311320805201392771933787838661598968986413473453287704069660099793606757797963518330421692535273102583691035510236399463232060785058642092121917503246770697676020787379452166471874544721056149175747422047225082411193172980701434307530657367785803597516493104169794523269757428154841389572476012332462812936578589539462888807582623703063767517703976384867413552199410237162223395545941479545754713259711316132901464621864079888449389412039225909949403246175082500662567374182505606340067032021556914598486010197025724227764648738072555645445614541087857339665287283774708217240237442969247666204670708451088958706291329611792412368778173495124648097554669934072237543904892219208143189796465672900468311458748800821630759581051754978071917734790582517810132407723633400014047997406936856405565116584605832243914836961767289918140750245567753259952583998857072905924104937098644023994430896184273197602543681784452717506461439628232576466294411947857541661917703291786635781462219701390582930877111034790164039375757431352382967437276446564637889826142690487512434558769921795273023021230028171701851146683582671776564953801413970408027384719090953905352063689822071623966723272671725466887601677655426769469250549066369771490956493360710893484535256538299725533572745488352872825073363299354079623829619329967511985871889924397140668787351804683741037403073724031780318555222115103704688914842984578478626907821085318204106886105166381104784475735236482929080819713785314844126543760588778396026691237111884120319080160725386528099397699424032341630569396311270999303197338865867935879035722372749660561282864384897974836630904035833556559902314299362978757271340014873237255432169715802384490538222501659478985763609573599785488273325193377093294391340090897192490390182244911386562072010856305118081721631938431546510343342491080672703178547776812508187231419645377979647363545387507095533064815020716181778881142614591525164841062658984072696507538923754811536091781574273832019628937949418055121910110025026326513863188649492028674152795605872881911370246057934939731717253435160079513482487803615454123565584593966915412527705556783144933833748306514322838350954610845013069681796096123910607961202836394448449920944244567729024298202207990075606769600889289032397735568702339744782634943855058459250703367848321254007852665776380787512159150790037886593353280544989251313066856683261425940215026744037481135625719407304976910246944018282376579702774663002933602328411917222377194667252165529727797842586504932810345300470463602551189004836094012952599310848830663297558494088133617781951407124954368155180170966450918827317793069007137472375082407250249540018941481996898920236542893514053652336168751387082362763505154997232033466833309289997668033807030668832734382261580755054563151015125686998900235472626665862065983080373166983057695603164214815972874879157071569182836427504493504937320292100792937214836935983341279512684422187331272378124269786546398391471020183538086676892572413927318639263590620805387865802447711740369837233951457011641653281504337796668351683881674231740248223648803792738027550098489644947635629405951312583550446709918609197683093867015260131580828660891172780387472636114820440403438232400846463375427867546164393354096813479799050947604166656258657335394022193825996162452342328646365674265084408394334982770284165312518754409963315816040215550180318949813412086473000805148631790469911833286151646802165803432046541144163579206722466805495419513522604416575201992111920261238167934943865234353796859545466764546013450246133878903722954101599716945827261929692185292716836400772080889202282193734206186723261693964698264402851708404773481330756408003276968531073957299788508532295767359641358031942733662360794302419755791608031285717330337409950138800799264633023860163986841428107245400725991771011476842836389368993663377018098868772518200076944149911424837843749823916394623251383376080936322785430877930737162803644455847415866733645167696211250069170238807670255748736709378729054385738857549928024289680678635917430932067565070729981971690196881424044488942208621354320871022632635089401175855353868901060913549020053196278496691407245638348410669620422419310147456732441655336871152620982480734279444024667209100025044728276736521760033747147911261265443613468597747819342233351967958335774773448151508300565230997682113645365871747633308561530785882213206573185890076203083306305569106707444014396483368876744024150840065161572345091556070965814803778606646989217403657267085983775228070133640728378435053116405605793530873047009501760530513683374490631857876401039685135541529400121621968127164643930065491112770161391283651776619739678743830294693809278788693484080593674632222513091160575453319160866840504321691065462479901396599742285319697454939723092891483398561249728980031896614339354875557378376613665779624402027341047653853710213208899643465307694154222775238093459764960212308419490145306378233812251874443142727105616101075068014843587296480313864445802840646132469138971204335422437581651885867632721478661035051273937151132181173148825575157521802724819752950315288073343263447147160071099094000611085729097937898270579892553522284431378419573559257502370187444411879442089494357862392524168002777861705223586734367610620652595240541252551242547424762118082519764002783248880641278095130416090393041596170668270548889459763455597919889159008353653536945841186187856262938483834489830330698112385319587934650807938110465946956736114123718695381417523655111705873108442568457882521629318332029217404241009484097503226562404633010265777873481939922569137314604705503998762286824271654661115146506943260169139856306917314998315008062921589240932353967376293570650606873295482436019863865146392044047736213069835819412395440456676527057454110089151636001685219093945197502729356713628165616873112753064926847581914607226073814593419863432997132650162676030634408937337810553370797233145993031940350288455934564903110239618428377450032387224251116430716227651519951528644294038550009063351258571548047775923658038419532828117315574776968409470786236751583134899845087072748185928292374374678189002527868265268299961337524995550573048515119376631100792372307651380060846864740117721663281120279251873561424012357629351140317504212803013740311614084637565634643872763161329458940977085550593425647297526019735183798245804627250926681747453507000702266343693460429452375082105181612969867310779040342757204546510962515388084418355694153914326581986296892366824252194042870788692421569194413628702450300109446036091580357137250504576187154843909555572021589666246816725633136330324275650950929185446271315670164676002472239496078911600047989844278919546939496251093675745178999106636835059838397644774196780046579368862075501208998934281562532642953117022988349250884317490627470535571876148913729949160322506292436383798678617758752638976446886225807322505665600153628200994795873464595116351939542666577298111717477776221405529465600510469404281479258726274783874158888105450293123765796348266042913142975060453350835316536548643618276981726968333589450572528464247981860741916325105358319587240128987710713087997443020131604602537623026652313827599844069953876183976490338398433674929003564038739283210268158784525997904649262983863625538292239822650685890617095411965019281213894263347637010718841597917974023449897472804625602258585748818626630130321267994219538833476264550074881472992075541993950486053933614591617323433436148722697611960363281198135331987813794541624994823987533332259068762956217566907918867779384561200332145211923184715832130891238692045406780768562535387603793259512690081577943494685871108575427185251217189130924986038592402004865321760307728794471223410238072809985575861688414997858081115845700288621610854293780150896532316194236204034247160937553674914670030697600721487844756514064996365969516862332493359862407960858916381384328842502022664472207568556582069419820944484321583677279321652635878174738394136602732042762755751868724175027303851982999394701176386470587019797095799644105787155368485161452936844622779428354068119845154132235029007203631732275420892469518871183745787405802828470444148784246790696056211981844399997003086409470977070222604714367335942319634687594540032920813366258198951833694019138896017892411451514968072134255872799203578720752426495541013812319740639077449872079385094842650236375820252850618422797511482092582710469095729404910002932571152798663013926784957891790936372991655422554558365612686908213668233471992319360717876307782720164593340809816907910214126639411553045722681759311051251350430076106093953316875939667437454058010164569880609848486864662716022818501755932423498335440122832460414495786567279408646976889274732703484308171531106408354497318470372585428134890867758163111533279048196039213169334659733489706379301652074102195782665893805591319760567128657704314605766867479314478596064289321233981420979804844551955117086420304089541901836443865795559827509176070505797335385987644104145677140199307962978627089384432300031555975052569893188507326274786522239958693209545243990320638358510876489271651491376301412551811291227100020726292676628249932576529224126913038717406016613030772760896439763163448460581380304033206812728975665233503538532475037728443833257767427840763343534793892552939102792272463292291087972599655930342821776531805626370288260316651298544474033602774318895372576255307781073883527957718981159673898308198107664719805225447846726583466960942505247029169623846796204564741531477134138860482852258988901262978728811305660464803866312521666986619543755319802097899607998421234413687030083591004573367346352596638511757286035936624781314493891048880449257528087720955664875863111126978408964943943790765115039571680281635216956738356662450178488993054739910254305174334455104963484154749048997130598929065982827805376660553126082544811288002531217558742955596988082446609800862045227121594051615517499640223149321612598620176916166812960200185949204339755897432292128686808574282627063986996649828490141530490638357643953226236907776960600183451410392984506230472025624441533671674511254684951632292022290128406670612848179797726101194396774875292046856727055668749418337461915436686549875494237450744845065148786028986671180913913495695768078186258522932727843776660451172889855583308990180185594289362647073940661326068653849273005926319381529943448215744460774545495783785088564275334938417128441596733593524561950925483680816303134686864406839864231515667154138897151756504657823719284516011620661592687047672144458733171086630808732306314428660701559976589246318166235055761281967476257351728068381655005682772914891168988338372592102958846781135755003320730664953247721256225013629812290313447492044244891922900425836465180183690599681523395816880149185104729061802466569160704947649084519274834658469717134273570875750496079730976536695564185332697616023788622595106941397452093986459943318696514249991834700892701122230082308696030789979792469969254329442362779357340413873045301551391491664636201310116995259943774869321249353462593737142592216008717184412915095889130531215193889470704915957586469827719923426280737006626706790987479939822482617600985804970917507934435727501698276339197702888915819035785984718180839190187834594396341270773929798220320937847864265540375366835742247962706380001496585693205181915865356456565698489763337907115956651582025755701682099970728141155541553093090163585953117427211641448029446722311336643729639691086787473503252738243078803490175483017358668094689227357362792177234061254975513863532354787744917928916150231193504290199866463410933611316938978914520752025900551812096042793186145255837193619595669305138367797914113028454375071173914540643148081582935992617916814853272754663124142729572923406789087411807621444139594736440479612488676435057410111460747970869446218069680019729950709415597175660995320842468861347983293031896434985552618954929483708352951912566651612313895445696448417824600018057612354018134648752890903275736749699447957354462590150587334633724378697824776070762666244242092671440407637042717811298002962299562439863524867839835154486417792512834104091537850284098769600516198148278923641265883001070608486434338816675073834472194808616590285278140561306777877810644410214288910034486031074289080781772248342910086928216543021928346941321079165109486346940235644137442245415113695725241633504093248858882491769100936302126293621681922135594643639097751552109749835198059797037183634484919155909269060395835708463523425826959177901899970580958039931543757897659270550688970462779898439007366139159165914590254137297684306700571642258933454942367704765914848394498001052694875158046559370747077193510940952727086457605896617337264091885414797571906871294296813302999399719490001653274399462305422205815261991706860962553598971478403731388322158990470908367498753564949355927527166771872193050699842930716352945412062322687809256299388111728786768061858742769553469912537207856152844761916708803480093268630233522820095865440776501204810161670049249482964026266334231040927556121470877024572103121197078778442217336612467635469493910410894418239672180308039329836614215365536450785565514811804107146337080902179048620291452211994106473813498616300164046444062871637344891220535864768117208307216103022142274465072741371676685885567541470592579764499192338956794391406897416914713353016353721283913760594391156896875747852803542536375191419224344314755729152941635461808639073328012349027485175660437746145291793929860805055771230307627471105386761832698208206959195259713639124690938658254328403749946735949877073398142907448900071697725751360115729932678197540248215502720051542742178350380169488011879179121215141443943662917745588545219979042975433867285496564927072152361618258995647282259727231195200376720681162304174969109860051165256907153302073363980690532378608169233498065351341375706664621197760078465266022620419406909781927529171306341782937014661746109773101770176694803193897376351886385893622052603074578220749892621405679645376279885171944592906373159230318203720788093888467893665858999201500237027695100760046364608456347076392529184138760631023501890431961048578615235298524609148196162261224744871417209568065842899578980872656488617874294975673607740981086188030267825573360224143170848651637888312081617611130381251747323261070861125629821175926518496646361949891869414272451642102627260387839784383260871887567825632079228209763052763758056906429440574597842826265730150347964507242891426534345080787759586769704351823805969898148818271838729716024598438983526263404800291842053870947934024104395416058362530930329781616412414543816626529042046596469094487994875787862496783020682787102746260684507110192954546898305936678922209213270615689982314340962451711636156251201196757818870209719392056813689175494460299955795324572890157323432202103852964643353232300477272692513311752815213903190815983781584852865816500473048397381278635331580314139291810084904813357737264979255205032746352575279160284632024700923444348327813339773274970716043923220354763718191367072904472722877771276868036470035941201048834927704424681304486183184753238322870767218737511403074790331323629141083708294183433715734105747368412987374179856449661578610590998266357673607746460666888799878653622602050468248227533945294792084432961111501156597392985505901206879936754540820623231863508343656331660321442571565538973947601022039029168758620384455649552269181104150106521248162348148956265334376361839026150388184877519855449573756787006932433432296930306928876451491422784296168222595807267607321402165878656173960036644829547131124806156908571045574279863978523469424877829299025736300065081272471797616252049538053128088787009699210368992861228484866812508798077031659352311580476366126952556452944974024254944734691311369961383093103162022873346947339188672489468129389441381871700655653727718066066045759035759762368278068442226759530925152079293822888337930851650547115418055438436154439425749961086664175222999031622045059604561265004226786950420918283844197485920046261466533554383583051929702680833170440576595821190416933153199389107322218160426051681107420887516370208657537801781349548903839201587193906595133874592672523732803032584044018643809789513946499099388804557830251627552557712163465124376447544496829324037103451327161576590806105430810347500596770088125583702166251858878228647636073247082034175919075751026170294949709457477655896250196623169386498765180824957784218522016221566153992161472879644292822699651010521045447253691944304448937354029833996250491548658353603775793345528783109051385854075730854172395158617552829443765543170062878870654828432914407458366696159479418543915171648219447646028599650729658463420261295084930880095897572515940391821229999161582546949134866528495805520607956557584168289958665397514614224786912779299773674683675003768911976347209949906950411851288046081041952708159545616222685534131224649556828062245685680047459029100985852493686723849956085924389155736173120878120698221265390722261959705050826565579836307562084247444230178306125856799739383192698123336986815152215822686641783434844877340783348590906482131122836029875350590984645150773138971085103241506094971452110946782039918888114251452324907256153663215127200005146674206967288442861493247721161979102412340283872025648252949194408735779276575216402989293206901384017231848624462306096512111525132817437769613182624782608751860282346787315429244090565374327714314709013779296989346376476827128077615948248773823858291194256913888187845003869787700915784652189883324349751027760275294955571267084005695264422097130740033948301817319982059909494458993033278670249396544801565750564833203390542748184971862046293959896554375708988993554869879879586782548131010283634784624663266867314643481389760939844611305517886424853800823373714959216447348175911217469906994600115130635967860395709280819134875773380686494852284434487377873915185740453266298050389225849994531009750737594835705229227016369891528800318631263756159218052750552747825362444431982000231391991641109872389840006279460232150063679818849789693965505834577031952601402901969809936555253678897729995626380382059418128664783886024551136150048699860614330759754331404393084429058544319597603205336596043157887052201037516759858142208835784501472712806172969260934063958412244238284068481494169802395118555494340509569063609572410960974230145581787096251175282637133209560982048937070748005615187652325807782545640031156270721604608755575747983151796100301723082074817424225686076637677815866545164130177649663152160389858467458294632998671685496029038459932115264401156391997947694069617779425001020884289797802963246148410361364009580325663672007141619913975218793466524976919369537504186211016141959729278369684891103117419310393748838800434067799263131176797312563341580991472728322167372948303629030566264557436747234175749808407774777554421447202708510848566678191221375606108037436995258796467153385084597173459772389436018565760015045797108514687015337440945414964413309081801346887800168360932529769201650036856064803216863793135242055034783375575410807222694601128678410720896631566213651609802582619772378230496141842111205165872827958661325699367944223426124025121422707956419891276945663597279364887531683094720900087451807993754926760500679357568291100322622639713384384501027025651950701503213810745684806573015570984682061689729719548914355340501765248749235000435636326482492435575707580446894393129886790280277442734097875335580021527508470860656571045351655969936584206570601998549187045616562499756692461543391977059649348834944358290779344574951580546291208069964021433307425762552518967146895414727811104929297311259029380138062684178096923770132534987215174917702418540046491132076355917437685947095385596272656935542794794014762021461063817966198322305572910865938261861775874012794596177570829245696780010497865215134398469470800643745125480281387877459095883607395535453721954034234823520848278044582756842146143477077731370387116218428889249290017816126835988114400106872233625037824273135700556177055879675841025776359555502782800607383556473363775198771906489276024868746018601585376786654633383496104596301840004668581831395118328198705933310919471641919814341506913826339662856567398199948094988102445402848474473247004848265689047988553747708041722464944566308431777387439987881075981691751898728008258172603207579524722090140017014120051875349067751627175096829706158422792495586477647945272780696421560263230722209267317240591099999209898275802322626260985378318038520354812546455730325398851933452812599885453593903382336937217812212015535986902432957713140762475934495205532274317545196629247764934203258980297837469227941319615984729204725059893906611712303600811019096938753511840420745781898760979085112696839055589805487812755058996726719023152911798472743535044035183747100877266579407568422855466132436389563124139254038877053288046823546344308564548498275562494414041746497690716417511936298309247619962350802357793618704171189670695827647594672917220245427814914331600404774029593357192966564899788722427994058114857395660411875401426446696309848801882017935779487071179612751645139832633285759692819596947934745118538921590643057114938193440180498628179044999779057855338902011684298490265167927304181380114167296454383304711568963865091689188918580584802771148057379235127438949920643552679564556997278664276919150668819162383334387636994999453940654359290737770343264032457829531513186852978823024389863270614578815228408062063396573062333193999616160597900061127975357271862302526700381420862415463470029622969349580551940210656667713974568161434618769301362985852036659422783656849597211131747957999654056150394184421267611496070466759633757372772552194931070035655561845288852276681138547156864386737420832692047588197287599325077644413137448327786218999182575960391943909127773978337875316456259945958885930369036607244279397263957339695439286052076458236104745576817078384499549359975799652184189574983798418006436812567341486823234871871227642127436324098423074563510111112519738731579437224284571472238725589837977930938689579168828544994672547176010178219303885233724608356312736868720893889228461529365806055155144287684978377603012998731543048202738488577083355733796710918597484668243087155564947448913187164499438056011579303643472216783985531203769489449478853483516877399412167183123824938953872413493703511405958094622991516738221430779645531274027492402369301740716583018201333495253766492918068691382328543849875130089698553673436121449573565807988220170905745508019743931385997446697430177820372271142514882254125985533739380832680160684679456654833605603806435998849953597387545511901317073703223485356998257334035370937601199104363168739711971218428562822667822518148551741175073613151701992154344205523114013177769942450458975114881780623949742142034499355927603065416415792959638496150313734323914435358396227934290263290887499434867841388804821462437564974839342764228944173484002091113672892858360025429785746091380458070713745387164880572966898962322036256727157068838237894804804711712649637554819141901270236126919492617904068834463975663293834790457328426487196164606482968150426966907628028929651673778053587383812623655210338327583971432755557590071580846187883951197283131039641808128281038624233731495308468984978279710741080519702388473784609080104495345892694315192509560366623271111705946362760970518737613256356908845634112311436904387403629127720636019544382067040758305140487996202444267380922584727905766499127616721938779631677365032387806391249032067954889229315390894778002940831896658544990601587217897808778013561895108200909613809752053979290867691493481986766206117232413201226120332154484957424094631413455292007539179178665503755615656660501916871377758812165512089882125827045461748738673325760715129058318512312395314853407165540760428949290279609323121741094590751699259993526559417340148708763797281749660630986848794889028031394745420820018065527825366680035544625202001764609159631654612195441239483751385179916586518527305926600963785721885227425887102653961813009988765526075950522085684851877797373413925814528110612497164919015075236155390973974968749214079223301317796445738332904487675502408352554880510277237118047634141431398959063112276773492355563296282941764991939963739591169057895096602024181876854411316631289092343664209295878534704659060764212803463850885339665076953795578384574700878428351068290078546719924674700801101086170438637301913925359532575250161029138398314239204481152050212215627915215615432191110150418893138178937550904675131662837192830910791014710087880293919122850033273360239255450430350504787489024163047606816876643004966657572432915271420164169122356128913186808577068932402468750634524840777047983753728808744486014320663920549478833018037253301411149651930236499838775376699589487606193732938745390104813521031480975401240671044093832339716199970306919501117452182571477471158760895909359445268425470082677857125046919299442000050681835991534380452247962700736061494924066480074294436264979079950125231874776360695192475737978470773227091490572041249491014746437940153967605465493829121395604557104292940025822501919140496787670592488396551065439291936193662183583995333313281118802441843605716793657939143610760022863455483027917750711367444171716464072918410318953467080942500146558708915978499177919590550990420817688458975656594317857415487854784148626070224981757136591381904932928877208918369650048901472495390635022539790493987191343261145398908020220387938933398532430150224978719100401994459673269330194983005374930051755483040805490226853109089191898577395965097137173845418612039839881597026063583320079325184900581326146019867227031566677678959264239491847461798516778760944916138051036833736180542905695348865958598759744625265378237456588998316652238134944791139865012775306181027737405218282215640651069705503451904346398195211402196726123297138031414937237408986317292286524369858623752250480060164053333718441064506265583381842987443506179203917793385441393697216003087069316613527224193098061663334094673086945798227360030669909885182474699491811084313287279587436180683610146130847923889816485992083339490983484258580204386284327218220863277996045307875886029511564472808886490706637935112359070020026372270577287544042955686354549464143950808619278855516659648483894490495312595078974293736135843305598520838429121852340546848492998796488022421336202649079292068704923115452438398482686214632056574042455708788081326252138090431321560303079696451842980904066263514243395715620011558017641848060678567455840530414884609357181991921417276672141276263260653405468248168089034460504423568232546000361674361606483461001947560601622894822371631005154645306951512073717009716307707020246624141910992316064866946745672170845921976329629775850624960545178319307530945453133382304833659632842068721811807748088307309845603256913497029018490529953986474929120110743328356939982466118796317669915919360553650135458153941886807473957420256210827579044676014191561564404584523304427107946868967932403913635627978522467303938864328416981860036212041380842226965097861410130706775229139637423604693827700388572718185173249766731358540143994434910634778111235323849173763612184650843362343326657374563885200890321205350496968982081648992455821719389160937272668831125990207247361668533432592032806773218943888734292566380819087382945834563939600828264928945063705082695575349355099277081267709982054133835361698396876440412261927179769003655093967092512341039888725962424353515536835679101014539244749802663159818264806924468098016056564923933520531987767864230421566491824243341728503140277473676946135128331071309835913649293869985242397898528392298467785356280485042119225616862259950609324225809719407050112533038971980463161961726558199412780233107830890018020710387194069207928758394174663240387930538901509547852692986690386656585806356837351259589431030808853303431340848613896711200632170972260924995459291831550399551204887212227995875323297008840979170591100651633877923241424947885210039917547194038455327684547411082224780436693797255116391927912147760467747942561070465649152970962977928934647693533470278755523678133754295794914177794388892644212600341247054554913898623124796104665288882288817486069088364539304479015935278148279441413741559099799032332065621004528381632748298367454164029547939912223867485156810365665425742224679213892046606793151611998866592049097236318781788905464670418507860874625287105496004483787372877138990509664121162394702148685109123987432459280478541526809703289193412824878185526726934199055345352716345634742829076259605404236260226908479824649053794141210212750641853766130982902550599863079930782094834120133258958985192853554858216493502169993236784839039629254964829022366355926043554322273386533586936681500206775957317946745406126403185654942981520647185311329786464142857010288892548609807327190010775771501684502219655265744742046080332933130344732556092994310791861409812296801557452512990420064519870641464187408978157268587802075768476456965719783157377487253580798921655958415027762802695867667622845984042909960211547437135267971082930362335927114274670122915501597834092575192980298544227362791266121930188475991123153428149029524960197691935151647110404805619802641343576116519513440722820636622857939850455437092468170987973231655527394645141090887110869166055255158853319074914259233547357124734086473270639857780573377067287175608306908033094572276474738204622171058649356592736197367901472178119251342821449918467953448379915565365972101992589801003497461555684632358335493626863600275255454731108941562512629105448443547179045290742405375638694121357854806713122877390432334641923316487325072259085825013460985898851052158058626652383762173096406879218621541418689356829944860887070041803793756798619904093215865859356824457087916051170980633943521820208383780368739505865527729155807982941051179979731482246872920691036652129849784945902198259252802522609627647007400705828698118364293062322517520957794934804469416404712651333854195958058396492305055388878697023522715351714015910363664259599673122311043553321307135542853496593260481997044562541394934755631105247257810640808781039984721335894100775169161593567220809896425409778076576735743730688102730743400630908322181325156007779742474878609596421768447446864591803818257052179625380870968188315268539340122186913715184123944793532551511375562073051195524918502546553271133550261500952282930011770788081736456041389729630869138049646574116785823939907604163121740501713257322955950496838797331178397320385170073653242696430336734936287553938272662407631329370080829483548312419827204412334542045754807509884298360129117556620088031369457595872405399554634862704863145161488280663248041793544935229920142385300560675109062087517641397616924854377599221404467593564556078178946861955969757457970433577927138693550816636060471336835405720152650421276949392585593112571964619067704842222850793446859586550064710289467898466404169588770777752615067558207024109125057974212376170243163419411741412971526781000519926051436726949500695348215522348815762325082267882455946971972923651513335900501713127759097444626614305363313817490919337474113172183941553312032296059205363215140650231811540471734304045855789885452512215140255397470309807300735633983894687447432760351706549148318702360856665804441975548751931159074068403056577943968075228539253758912318637835341952819657085862569587643566986872746998106062705432344847635442456335386953564929701882152975412270493848070886799710251065785862532083344004668033151145297433066517050203913742750329609517825828840610910951380039694645385407360618258027459033632085611736172460997767146760754981397273126495971125775316297246470456219679210060100949304792336607885729373738214038395208730993098013161562261784096646596327762348664284209716250494793677759558300761939528229135571049572414787760350649342536620091948926315569724885379519281589986677724021436206150671718625364075456046057710510077448118017037598481510054523461272904988038425755275410155799369628107771670957485531737168997728824110271542741500223809132730006819639391235795297464244273844086770713056260145859198036541919766583109096053909033545837785564553031048712545516305326793849521362947396436581603559435005733595701162975423761207766669597733221604584622668086917821649585619708290623469912344639045074986268467519891238428559643303551976989615355686208211259982116763527046127894622563983349642938920070799179028276525457794901550655456412870573472693378666102524557125835310246886387411744608006143697306069119185418749865731140450316529927714082196522622893188339345001073290936564487362148889929999547768695895184360487166463811858349754503770161612056379739476708405388097450389499200984294621335007641563005894232418949300948162229933845563808199526591900718436153409880983926742396360313093610670241056081084103134409584820953835274361408661071517724867838527080953271693101902267923456576338095205830051878843714873964376514561405650662425807374368780338742601532713840637963339136055236388952164746032390154318242660046300091900077853315549941016530403410411889324510017609594218665637419030053534401279720816109444877660532400370580283787412783139788798190077542994698902208355531062134797420531147689463051749876898554244491963216631346617204227313442949819825692850596803020999674586323951575652475897167601314353890950422900649548482616065172035786737480504317980322659168727046230198470085065198603731466224621298724045396380765317172916033390058482645057052149515435611999519360860602060240281700964842540377155189534606668412443558377565663097081657189750578004682137477926956258647068367876089012238337287343039848363137385503397387146589235103634315765880655859098746188678042644130756043445153945683331560631340900798216690394889446926711689825374372896250671170533380964076963339696250717545205441976328537932168529367040330317269193894946986046424142360646346733883354063387026530927860589445511078710939467630643650676363707423166400374093516926635558964035758886397845070850152513788604071647306406127746282928524043185293212294245098215108073022337854515875192530758104268128832666330622808882209523516707923431514676519211680809401089385938703952969977264344215198466530106562595668945873666926439076960639269293366998568031976659292842221264654451460334691469138596440370908575641737209687309943698767782418299430551537504363303305543087395739047458587882295717951306159117594256116838764930449642737761101691136019027762549469756638718516851925208972332812446758479651222210718366030786391060940186529433983478323248845275745083291902508842497307669311552622543155773180786790461196799446177441272866983095622008847249392558518396297091142586241423833803901641427692617888870457927570440579409163850685454254710176966471925052073045337898928135676229483129114822414809505067550735762785277220432739847712123507079344331158315636804264429796137254821097694529819705630527895623233478029635785195077071698180979144727558827544917106757107230555128168457519015777002954955591904019609340883504572314773627538167368276471893797174964765064285022407017123878217110709492615496794173721683339311284363702366215293837842305898412228157889007796890431292534716908306155809676005164936596687077046270421740059752750546141692221199947588974218431631999213185313467030674229234102532188879236994044605791029379593755060314127492110514226399368089483754016158830598723362989331824610318062620043431674108639609391300443682679773959627859513053696155733164060662197664456325905758889167290117557811060493813773931669811151116594816699966725745844784573266994926198320179746619070920991455657250730727754737807452360712830158671482537250452456075149911146618809604431083259913563909808753720452314087213434238686646069572833985476877706031400495736904834764392228865779708946835656162016037681427400143927210481920923848936394385369026872651718306968263930587630360569388679692715837646485388360428920099041417660643503753059700084538323194685488721251740218754074066740755073606284232134076309106325861655606459276332650042178367105482347189333865947814331278530680428357748985924399234154279131166473093790817590920501508179094377397350822342701199020947321104314992016000553256118262708767028169950473420130089981632771520697065397323449626006649649036503060843568157159907231552738574537889895427317366395965839594151753965394834815754951525589372789761940756050385401395211088355915053418415881539105506642846520967528528521039522983240352714159599497399453193799709151204358145182699375003443792574937672437764923936332706749829528400037267254271411374284445761459531360691836207544571544689497573787012864493625716780274675537454759096996822253921535641763956321673572107686753759872253651988867352912369311737891819883857733935576896224185567910106303388092460027565445793328841202412416224599632346165749239914139353693311949629754502644251392128825922917324307804314422770989718986926530495600807675425370794964398348708996676287221641900828281099288495545304516926294726611286806188786857063346993036982170192473935677069169409468728140490400222018081465066846584952240674290669682124797632909969439055641552108558128963737246834516746098504163309979931130676349953089152350994609120127761955775470126112556548748531981961135908499139916157720077795682896948965274435425097823237664747465824883947785621689395794895277109614327673355320088052720219067681932168097801287326493127304993010309058272904068630478334676213540051132281506974836378217490355882889002217675214498027059347885440766015275631594138077882709927795372062788372350988116624894362239072361594619440494929283344396372464991691019843673624941633092403979664828856876747924417900606929795178607496330480285257725289453128876843139563956959564329719285658895784632350389406533518924914472256171583236935408748942648884593521842109856476317300367813886537653232695495907087585200947181470993339772129699910821334178745391239317257543874978591900484259428620679629967281159962850020070877333642293874912264614786295878653348464229245818519727053460127217037609104374938974440525860530551195143947471877641754805912163587063556782409824239660904697344468928610991064897186840794891209717738116687587194060155143529294607358385003529096009370857161677808391161051202961600518326713164830623455849520073799788319875423409628951070864854400445101110238085390681092263005897526648990901942904782944958987283134451752568684905937760802259154181543473703907866815041006278240035561930082882990359972305662254426800196276840443205899286688463282812763815566042236419887126404822289919685607681125383747791207529967600776470360025122321981604973010766506504651273515371127401037615885044635403681535663286910368747467353618575355636019954025328307207932353002878952936847550825225211514253055470776436813581659877045508056436872370173170206971640357087226184535029041879802358989714645645164708782683581755154205386778617701416318967958034259455998387932203198733734685868689256032007904539379174045467656059971603024589195474426147531234169198748121908099634800873597546622336395327405105391140183048653627558297062110307721114971097856522305022471525155423625209937395377121090001847044304499325882899600728062959101114627132289070954932052589850020214387565868428518119925016285362507958716409976513055664382131079967843697674747898436910692954808231731387713041097826403638821045564407544082142147652822312066324725091401818089508763972201535270524404181716928005765863934424819072720290494714394463611083917296708775994299175890185401835506647896221057177772081757843092599051531694900145454350430838139626798339387197854150110014309301953126884703338328160346857776759016373262242627642104644370473611856919161584437811335677110748490210797331629128301211620713422157240045572876333716388887654241748233773246467167592122222989644190516734768077719378531757326068959338405226565180956589544401103797574881912761817351954067392002091051561807809303793830629456060742530408909804141451316180142897393763672589271014751634566948686577685613685035464556379810703902354206752166292242720292940701171256007510022006100993010758557366081644822992769529630584539195917604256403586792693839526406776809051468593278852512592159950233361452149017158907692744558853676639312221132928462999157027559666478199154105363446659627806057797491537755474559447214574410307986680245821331614283808760297031157438247478833220454645812486517306252898060975170829214709744479279395057210549388237668721536533667481943559000893855659622227524218440608855230105530919280633175112023892365009986003051918751455798745942246863377756076584651307596247919720117391190185313343915360100631763212889222970250510764430951149209766904630241541780930603074717141025163235095781929186981747124700176150606643382911808082915711683671163933051544520551680526894115379353134656920740320088525588787518308029362196554287419027262597497563921505298932276995743541267572735584505725216611300824121510421322220174683116286096262140936023261848517575775746222569813374714216797204201583499004047602836072548277863065358541230277180268805313054038842650342215317778879037223213576122903233621889780907698887707214488976727876906654932461177546278455537971977324684331780426801674771585090413453579447732560494949034434980130239036542521706489939842992140153291670212645434482566541083704082047848583291423627716178677394372049223853817422795493736161073004540444398101551678079560306093107914605249892446082111543088567281741579157597524360847359730236162995473754215015794727106148168110826862030770533011609656032404732391992314785217181568272146646850851738110401513378110545385948068640077343897219488466033452329479275569077239712844837748958940516574977589161371664996187730407282303739269034880761321418230110872120784334117874375557651215572292868104580775334677169412901232546689910935225003891389049195840659322816047992859536410032153943474081556920065441024817260426881635690828663173258006081540029852301482206155814521467738452963535198702383991681930391324446391891538356310817083716031282699892023702749431471607309533647565193861245014972560126240977834144095516451657170350274269392210604641078509077722004158728838187802259090638085033480926028332240059068823028343379490327705796026816394048231741859479383269581580627205690960609426418604048678657232021935955346191020459456333662571473999153701674246755052193054616774162353461091957928749234440033284757039322832659484412470319975281920198593659533849649996159323537821832225324878980782062557518146448030516256452811065009549350011189262761693442389875872893825408353815065315904715325146309007193900343378337977542123256856725057838477638277846658344595659732493481366185781543480402830802839552052365068033234206952201970304616071688683630385720597100178053940570826491290497528645349331751820125700631417867971588348748695896876954487063298935711602257378191536065408943841053072123048888063959516200919857240458683001642228964130297595809397663553270554782336934477984362736967071698821187707585424601978050200628093200921101162567526735115198060721876654381374405896234528890946284686986809652676329720123528387739283218552409660733973259080369422486323811777629117357012865383652188731528459250161094330576271481454990158313626506327242007870643742464458833645456372894846293337714171582620029893301575876603946016178954275715627674177561858806857470396255006630933990954788985264115594057043539089112105257913741042093275334189776921217126122323973228122631524538683509416333905666646046585492257693252707269909491288362973043847055845938048322467250015860900037111103058166438451952842490759699115453027923064512132139264502827825147699190794364464302108263876692099753405645689485056507127788265912544177538212355535666027152361938117207871158919546029014570073507515611524994415285495041664434724747974331237558372505529436758469774752296034942673286322989677336263270020194553129027629070025332583862664466768731727424024575879364313552767881387787916919257230422071449764402630346769414865952124222817506709656147531845557193205553631895978585430563704189260022344150102624612817435874719964482968187849188328087407480311268636693963970136384006395663787033187123119661329980078910445368340331367857758250582851642325575281626248625960512830523875492787870845589211506480277046394909754449582970825019271011425931634553432846154787262246720346712362331485929518785572600408978009613815182337796611549688353203091015842254428850563270254336953388646280002971539858438280170507978378505026916115996193375100438654139428104368184962334960565331818819822334967539097416111997664709261935119402710808595126916854054987286020009384688988419508270461037599513776581454402793497841384523926930230176555438211386356076825169928598274876127568142356970679580244734226693335669796848242715218462574899301299086078878957957144985323725991662533151998562204803561568618114856396134907503451352595574787833610657221665615767911690286509503449313161653101738920904163761901794400892528370044755125294398312392893897569759453014128086891731310456898220812569060099123382639973078909264821854766368264271874857666950374128563153831974663027334587452836557821355006851735821108312778503209819710308349653174878049558723248490770917577113952655469004552585947048487031120291848588717236947954646410042582977906904907850620670466049424712283152813210995560532029020842225453850504921226131225639483664689626781123570793217070122968192829514570353399653830889760459364853059740252963146634784733766385383655472659404589939659249572941314095313885074771838353402872876593022155022617865275548474600946880600071297638521319298666354113673987159245166295593477384056041808583003323429297551144562144596476868703945515950858053347371138469550247636873771818321088506036084993314400184499738731351439436274704084983690121624942230561950079158543592709778217373482936830657116849422353738112642151105321532080030672614888295293218231970185913400117958284592188071540616841181336616492388345948835459426679469412748927737443029057005097792345931782742509930761441016124482022421439537475213277515093435070547016548988783171659680393756549603342271695723449692435664862979848520090003054760273553465278739421684920477101062067267562926902566489919746096293129070730637142682767429922029340295358640480871325046508871078802933014180783439887957934675795229036058757110066181894066881074581731439899636682317321993996089185179228458134245781976067165185184436280671798460967507762577481924018554049972286582975040375832927276681144537599257086897280823588380982761802953736039799886720016649282072079011656038776429542103186487140785402067284214634301174266717115150047587921180615993269233248370153736107340466238769880967977826772640407397231626176712912234175171512960732442275463076040719521382855031211347925620129566596873277388942065039157027321900757184584492007064167201591774368593044530592862952667731150767904206125501115516364033014807868186868583241608840521075423212076926172650632524627265675023938879544669932061298837260623441466118958974557592118358365885390956795534603965505842535069566492592928706210139003747350590336226600433322416388441022929203838649335611134349616860618883279369766638850649418211768935813453038397516145672862148881927739747997398813790738546721112818971592946250450760940870402036073732404512904489370256607723720274035715148283496795292090214583338835799665287590822912370261558143320902135836118991615231049324575500259389419741614663040481847813711785080561681883112271123294447161975203020832680919734387663057163455054868129415501324437157227641360749657334265333580847676253617999078769245313323285805796922483491837315574991851530280782804936723286372580195518391736373579593923799386132941764401832066940134592245952838545255751897170267838834823385736948319072053706738958692080673685287643014887898545656072770862662319717350176978714159511405654511771587801249021192115804339360993584145536005821799989792626015076517586016899110079975311946721738584576987267573106677319491972021295006926505991319459037167340870577901202413081073319127810133747374644624767651966269838603271500106382587485039544918325589474586994738091955337225869875406757722014557318270087723911554610631135514760923785269309210184559736061972841815172095122313875773635999428746013099148216170948282354281411137547201271770253764503953793987495208686532645547737071090126069074127765618830192756574253069039463989188238598844909435274380003702226491412307875596436848727597022598648521572790907646674186093014698914248793773541248317931298112070714200084041919612752712240293221390711553174804351671785652339022119732340906661232445486708068205788862162157847805764519936804950545120312752638531620836772011927829361069420915598518526543542377689599883702960178335199526630307424378878296257519385295765674613084602002778681219720357054903204100454946919493409235867734962785530937985536118962918246627255893016629907491024639928151748005651931693434218144284167817985543557545372325865621192070839196100780203352279068470155825186196699205835519824008312001332936827174160439752387345995120936680555137182972854989686153296274574581827564991989054426599861270840148394558501068701272823312435012952670416129599299787012143115188387785964976348041680762241061746515443887294843301014440031971325468260434476140427205007473720158249006860754441665657316738469753648763625709495462433617526258642820823465647778977008753770902424912358681662338706254099814733711657769726601716962368526091341717533745675471572710476501948311617126982174308987607928199766771776446076052158806026671002586270154440584109522059965517091518009520840645861701423694876247631260957846066273250482084469575542514857154999270437532215849636782368913003775143337310174290130709010628666346353286127384322012628699228771891843690207481484051533375935175763570021117289964635853066518874644680929288819616890785356814224339423215332397923054817821468579465245892862745368132373514334792177549819655697830353460032270115998949107222254071146839789563113991539109698143100902844107541118813160279294243463566641309967663616718373773902144279211818664971116470171617365423261742825809819170869371012758108667931805621172278003363212310637905355435942587783585624157836683230223944007969113625513976639967559089901206124576839540856144218415792676058485536853978390015844492419808950858826905182962607482918042434357106534685783985244962858383642951735703559809711881686587597896341526658812873175936949507158598619732762422326901012711091194068916343647659902790935853346290880433629935048956725747548818062216447652195011544293676186967931254748850040211602486578814299951614072790171581756347377159667515266660165219934286591597817959518670000748626172197543665856791850683823358748521439624764624289647311703208910175042002429664942804231725355164216687918825539955820298556778783405098370313604415618040721633462797620097968194947965989875665155199267642223249982053226701254754292147508817325628972342532282639884334574611745157002123696393704705876175464856976681418828208288358467904152163052538265054404156268981791785577237636161848762204534292157952193119835894897544462813999863387551441845626957855786368638200957514583553885193219926500078354483704457316478772133728357405732395079299096005297695879974950160645579205671463373133201632193943190344831987638328499526786345462367650935659977909564256306591725860169585507682824433524205589840025111715850437684003364838735003745688982841798420168186075824747556550970474586862002432158411395697403999484020096114400701444793714308931683763371601198100097906783007770817657796980033051047569326183455662689427541395808738276923277046564636504930787373462269281321872632019840776141304482665100070861986957546958610388356483173171305856053756114395248938769627007806906045413656746486809718959861771059126367250687608521557162865040418365007191234629150454086992562590332658604127798171431939510739382856453776783838946486054201093584359337258710213093433970093917067398745554245583262419685017516738476851820569492815074706320120512601870137488986728875227370500869570785995331886070633934558988998323206873312578234674191443131792250130736381459885894813578619448244947975578600705512964482762838263347914992702580233407271213049648941617711554899347672354170931653764938161206173493675722239969741511518919250566308916421813995341966479526856301791066513960666773022395110049026028436389004212126257668609864797359704739725819819765875379237665969889118072570986661775744574112368401935123810192158087506589910744248054541869906521209512939652219508944657360247274888473080331374808925518876888012961267648553437870288099567648186208917607313681733124778347836917872132354400985526470497501690808594485068039300473124730665792523176414662978648259658331297265006369035328276590579699903125767607840897732604247474325242709298494975854106548911526979510570607574220757795190109907373951212184019324677484917063726901820861009108950163883967312937015024978060299505482220312205179226378518269002743476126865641508607765979138660210110607951139468480141037692588418813897404999782259804629710940040276705018725906875721963264114337312780934120528328756996878776069961172868026541792192320505384943897534703546154068378271247376841249559304158064307253771631154864699359371391500114529222968326683087417087181141287277169049349771285858641144658306767974987293053016158494758595899514609783753888558908973157772852199445202666773778099905243014654342623978305328351309001565515082208886756922341077566217127308093840147580571171906206737235001077804655720768016234939204195219196275342746424314823213673992940825821054864294423893381460823981778505296909054150655987614322278599478619883817522973223781905673659535336890850871522095948974819155841361009589920646038037986963579032136247484034014415718174020298645351865484961917667413176244167643436966049098729842605374974842531828298576897236017828894569778449146536041275162227448037891661598826788537600096897429217742034513386808351114852704390550235724511454207558487559300991790150004142205847240766454319659614309753391203553929027512520488900955987793491953332591294291962001494923878205725002646919597953924083182731843065287021949102289232196176976132705939567489044199226195454068501481830481273982482711096794570216940130195143812698490314069923505731772449425778342556662198366782998347326800566906572814473705695215138253863587848017140520816330151348222062256034629811470786385584728145639051306553024502602898181086536446571618782833597457339718490593908980331192965962143558360790975892015469382850621025709942084133348013217994657796197246704943229109266278098559504615888282947305614055905905792773369606885913963026146190780903042387355538675641491340464118738759667678397262630144090363503947474105719643773060333706778239574873183425189155733372278898442701776854923312345988542097700089940866217372733963589235714611083965771725730756151869239492908149961549844397185334505806918108750367731454543711317416961520132076549844036056273958618926572959697960841889254849667818563193451359285626218361511301415079812182470819526783026921718341866521900012260540682067295259702063574442101468597384569478142260120051279886348837573724667875433310951488482003710684707573483620463446449665653598128153071196882794334386594601691667503817208272816778333892086076776691463022294611154857124297475204085241889290133620727830293208375799543750212875754102641151426593116254214589651350529630982358974110660510155189373155585234960338844558995200647065874532584115831690681208531904087589537022180843381201022735677246307716516941527168009906252087336198519100728606605398877879673903557082139765469371009497564190704382553177186315061419579575902760976814017391988435724150545472332288874205186387910923298448867679252242581731700075482714372569175649301167086570067253883200284003102297633158063781743753584599028533772807675297427059870915514489858993592498118233147589014338918325652300474921093064318689844979646184049113738223712038985017358548274037410167943405089896641743589863858703184442369554250417897471902218472114024281351202773422121882103391650530860616036524649825902380433025759310295111815051458747316530014213693320968060061892968005680763649934706604685459713688106775625065323247979942192301601036750208408581705233404587010292811016078400952674757178839953163614770818130969273131474357028686239708339878944205147148930785160362515628685704986862621575323954149447552050221074519639528495747263273547147922929140989629171952781560655234822331618202841470589264405105192783002109943035737134610422193164730753185471491814906698346140801027680554696456237386093810820777376254008980402781555057663214819021731965922969752309624613070200754107072034500299237428469411478987815605984796527625241924128991024871658985136477896787368082100207814134685230922987302988912913314878497753317225273381965828322965244080351709424734613443374818479194529474125123066428678209198486863340160569067935447746903859334047443631084832457290120558648875483829596582908566795681268463949083891054878937794897039722300739550890132232697305609952698807049466748806775956975529691250866837527158020081710048920782632345620311078454502671620189216715122162536820741693572943412919405032962555074168461212627753141452104923096412588509669633249156665404152762175406477539310726692613062482068389498224123716872402207261262419789827373143343110722863675551880520530617902376088093374844040080872524274654385443139509659152882258335746591658176181888289500997117088305910955549389001334858583961179989669909073933616915628846354813539451087187584054297914532572767870489746010809974888760625975914711487775784285226699113771467646768384044783635879878730375048901713611463345672606981645087113424090929672696996956165696573919295372727562389894644971063955602756108241776083614334122905037536087442829052486980782651644151387199348926601364883717830098184479963772785192164046876577449397371039762757214681329425330987588359746771691033203562088602875986661322005613940480711288517494131071272792044879914053637249274776563011746093627143439336795380781214492328575328411001901359103497773512584707607773744387972498232245088324655675937864328498049383737202430427000396483595049567999995294154955104278158096411414218949571130438949578279888712467291281966763481743099131401005347746874460924639131838248060931582269316911841668992703423152144033218863882764000707624985218266607237514381796848309374842550419729044203013289556067885398436517249859593770349310477616772405834124111353915751632063677758903507666545377925020444630671449513026168513840427805348811499287786000753836722864733757888630037884261484607934909487820055052402040611956625894180738900831037826429157664835810805595086525697072860562188669073671114088069415674281255755927626554189182422935062585594652684895693432344984769127125625327592370943371341108023012393919320332294359815553228783301054076272982162058395919501518181673123557136287667641378255549908916744122495030795206627003336194876602185858044098002019319363809960062797563649959584470924764218538125420723957230252385638628980451892555193436473396142922052482605261712437364368651370677860206317073903254826378243985263791023208532188293707729743890690758135814109658610949820716935333401001041025902867433704856655373116843567519518294736609661945890351059003583827198430192731098555720902204671765154260585866598137345704570458208224715908029212559137498541391945509769518425124725772367480136719556193976394767559342603859056574764207363112985526631850485642689694507563253401965356351138746923227442465905356380088274521336761523589801198569606506550692723715348716061376454251231303221420561341708124430249989362781796488810853405442027550180665128726670151177011652169462479089926478987578899393044225353453233626369036798693798315404970054363207723406940215161699829577387229822480586251385289528980510551043740940716820391629788811495596297711722822510073268472790332205592078673854146028827493569516192407900654933458378951984196345617984986958509144892998249374024244570612000900310938306888820112381701962067424059892086965328920791621633961990058532831667306115078202515621879648465802353870451758534889790541577979998855285819318145437289527629583410838043376022244100669013521462694995658099508456807458759212440387404209163712987470244299178902460699614206717048198452786867163421438718373958301641400568417099250585229944488582881537788268608490731942675482070553474013078853600225436746838600052972729999123796451515712799793294629095362136225593207839062108722417271258336733380098550386107961105094659709019893719354768504682354859611959733936741947313119651492547799837544208745069910769143694407157137756362601063429686407741486403597753127698950039871230349411272893601550251331007024806714873814402115855828269768261034201953301660595956944598184332605719134494557284502660463917948821702454161318774317466962095014539364774132060150965269658352502674283526809594417857358058139519671396837610375243780617661526946370119869146652334013175056885067657881746746596044609579016495213776422930535950569680671725882171113139970352312840000054511865537285763357205947133018785569444314496796950776104850760547492302875574731909855157301559083632781264076232129206864582160391434366454549133323258431314139070151504262537449623648641505963473872618191912342359855555556994745322262860916058624498124341991651555779500422414323759392859762039504159825904106222993523433515976187670583518794500179869850984321225096103742548465092957770406876683181456474900732504426914134446195277091056567348766015009303368055108227342954140813689824194812198933614234418086524049872247439658832380544741825643086853377751759104710035195602488215244178466233266278980730506588539104802602059383337498786255549488176995739721103724202271389267544555257499115587773310851015007658138087596741276485402708231236877280910750098289455220937630073546647242868905119865592798354849994845924021746398804538278987196897576318787502323941937273297755150020241462563711937363640615857630077452411678150815097148929157782873269862610556798681690867687533248997723868747658941789278071254350067491214062569885404629397367278169576541033398165688189822935094277519533671004184563006540974655645448066600103139208360834862010091354096619894141841169781655956262415797255029231876029364266257603093938414492981429493906374390301603303683660223401080676522601856589112818585647719127100557619555472210797192128382651916301106842248532413937005752971531648960401156292919886786484697124142514016671487729756423801591538076952030397177584254455661422209673867367195731681366381359540658932728945463266637049624690964869078672589377002589188557680752902299060400277204913529635639581950879055054108448694855905798965193059571852782918483096041235534673961685587551898383416187654060586432620839655826197125715566522030653393412843720144826972546913940728272237240078864894889627824313186324205659351247188010352378099553232003255247690268213122390471991129711570600080781303941355820731286738004115378134457487295627564900610527100094501623633141336333767957411731759418721095079996057418936152869147325422638607700484650830472473919632451563851414747282092867334771371698191442104013061591963705789714320417200829096712476519454348358987523718664447132382554884794556063041574579604640694049539196788884030968261437029547274758291459909858413598780326277554313342310838733451418886690356846774302371250271100963065925605981246879385653058524107422368017955176010674599497531377788526549937714702503823269446948115354872422222969180080490368463008982041679882204492401578622746368931864821524305764639319541232027155862647879554269359130394166369752424887933825559492125783631190539520772005432196886015792155947590663998098240170969859651460389302403601921735110040094828043183780561777377158394665665229433012837652547545693668640113791357302220573296254345671070604032505195177470317842826455922402491821188698338716117330803060709233240781622429824277936424509932006092213498934627426432215865898117787486874306599703826136233834844078665036577540416137101244231984573074549817792404551316756826358018863817870378069068843476027687874144117609601764802532380944136463509196567502188967757971503960800976770642176258126396566615615056063075217603268219145274046914223751536782109868343266303380148176511494498414703305797542974370783383427072632745099666974000324566253484493121657651509060731833780077186883667239162580535168218281203244914283878901401730598607286650687938541968436415762534735500435382109662948557827377739943753656018168221885692302123952571883129590556943134157448371320798672649742657953689662994739019827811333247549152141338079729441761020263401538063175025817902068736526278322937100550534086355581413076354937679085876385675124854770221864043051322022455678208258737136181772597886038024846259492228942340199943543945146534600977703992391625247134181587541635333298009375133253129930549980469923738397981434403000101219008438668789579751644476265959875925842815469814908187860735224568948461466390111418583691672985453576206385419136479092638440657685009624661854031124435232574824856920644254130804737810129464564957353447136623638648377776752430839081410165877859188629414293592216615929436228680990488280901633832514703193022456963717430723020394966179843604701857940850381674943845056189457219006267673149292235066205477369731617522401458729601058632936044749741278409604621377060199172331121866467039263295129949449789687008736155652757257709638931113212257765379007205683784056418072678614941405339048579866837203350292711036833432805401909631111546730055881678497125053825949472846108204938943991588779955922421082622881594993550411270677354894159653058073483174542369983640651571881235103537717828188356521825907675911682370196295822521973011904637333698323034061315024022878171222243996745016416144551601533588088076680930162693275226630452038791137084876302019711523927799977958583842727901291063270510678377238605401317197175934399088094758119480269111922384969438249611575411885806658649584392939064344183229211891207145637564639375233548103551823914156295486987471512227999831780109010776832565403098137384271238581564062195548190161272638791909284312023046757747093878576840768294602734540730806713802667700099525643120510663116113753462936711383194713675810540276874173587377005345856755204206562904516284079906520397545090951336805429009570137541095501766039091433149888834466321189575919295834262089592147034046347685652785001561461124505932755869060416161489798871126027923525655683631302307778540093307790945051406423071402222431661215433594950116410502696104120059872816985341239661848250628647832589526597940016927703218489984814281738711772260410062792909929334385270738943176225633709885619244392273108610059394014193789743777148648441757262118850917403357818705596600949658237014493783632242320510612011676589267336020917998061643030649665271065835434046695963936153244076260817881247835728545016377161673588958861296153191786050621904369327566540246020477911080369492382042302291560470655215818221777128635285286317220487244765923166080834548531523735857988345691196870902412198136481146767417322815326264207381990207905128053902060048341918753614150221138742179823856944171931386670005303623969975562523296960959714271252557135856627359385680453016790212557939218156665107123597775321630284843266746163022029286165145969849937071100144359428577735977959766191115255194412932114845180149773536777426427082857379149584801036719165717723389581309162230002011721283687522647048287049769771933314468889867945452372218794338598914956414433075898576889785203185857011043774798334050078519607165082813681866916925157301395301187363646314393535553406034080685323539267749517002650415707161140823948484737127634775478745615765216436085366607354306680689962962946598608103864366393635203906645772764620723829316784484660322207349111118851224139414735367245534039567646149778766804840015279456092055927436954512548892177555616424396757682360845176445853611721382294453657237666806015991982309638463749850287526290426120508727364021446675187545191991503162783977177440147829272769411452466448991224255894282550914102831444979507083936736843549035719582736668711354078778807372937789836835930118659310248040529106601675803587580516071509927944173647144936556875907530437840456684406161182750675452578909979239310189568088944502209247343219898750044467005554219316281714931180587174569061962037781820685730745169440057460964249455133584396735127682066597690195679806968908569515416595677460561832701357002114309849956973267981698342653557977952694409685265200541479771529676608797625958111441506588493280016473526318868375121476748357913791381163442073797245061729224651315166268141859470254029776885487919682969524353101831471439217954896996331668678741831685224300273972588185569474591602633615315621930999660017441128498218275479270609426926779725154521514059438010689787634705665607725745453201414827572370907966522446134289934680762586246954018244616599224177082476881778738659717558993271097233304728274872736260492968298208381189281804991658551667929436797863377008387373112385907335140842348252305288492157089117478568487486778002442067969454325019679689218712347563210011400502614947549017074100737814960144076439597570175895349004502296309880276367285531179530991423419310636719505297490664303206621250071318344167582321631697622899481834356959922724614576114900260608983866559201529076230268953497108677994163299749259167950923408317917584135799451927623157273952145297554394173526854778707311062966047738167668849457869780290909716256435856440235662074570645038559035149499968557355575830758635688007691131883193805089222173727493765392825239744792221227076356603218826504329728557776196581973071217035654275881608600184963760966623066882841329496091243059370875404546383240201055681496924089697424483109563930430259506871415855908685765859873211187820759330437811734082785720548592472916118064946360717903485590322213858550990483308589621896294473309174872131433436303838411720780220067384932606664849462243239124010290522548411248590379068535053325530635171708964349123764975345197069196434244947244260409521778506484828170193331044350179374432385970091582356584007438729776092078825511289957158172471182162559925820430641756847203763335348013320252238818696505277906291384482724017422170732860318173176307010115759679615017493435868670529116893260811772964791081304857405277122742161925671781714089944275569930822579297308382513288936955636022369394807798735632947779348876353316817432903543029003741655838533627130047226693771306683628416534983954377844307382767554184022467979280373863561749737678360731143726981692304975931522098366653859299863481620433368202284643659491684443206713189716690657255404444229908714851858073744033292275057004741156337458359407776015853216091094322436436550474338356018048329038759229388376294002159084224500484827884828421879142282763670918754571008462798693116310230371000649761704468306791974888605727490202736512635655355923099497192364526047920393006094882629811149930314419946183746291876760903478190137947671364604354649632056208842856761135623129633377212839017813215065076495938656094316154636518492003810342067611138198771724419924418509542573911671382547418266786914116587422592162598431378985701711430767439709537368585798908321999775155370758412945079258890211224446550378587113281970117526224885015173039570984548503287299909735677688547559488246192971030471590886454644064729682299143914005143023032662177169839943274795450413855029591903813519596663582571547740263138781159658696023716556919706088037481124607982834054643422705499406153055041252755637704717327130758257495114338799245697780636122343055567944830589904444601694036425700803986207289026612598647999779235171134476131104259457948425322392466820090269290328966967519057012072886368388275106459377520026394028610603500928509407176703698871325975617534867478552970366023450893634790232560122926632506062642730223029250649195984648251997773892798739643298042232555772834641099517863688122029723100325079340502121409487337003949880680265578568483486828189064346479572693375699827256945378036891492200753662554548712124095105419353219326498298827580826447261325130198063601672895662405204550304183598274978226214391740673511783390590615698626484840409516390978343132538654801247069692880854572553666163951528695938848674348172512983422831674472316030753312414046599835831319417420318460889645367168409271566293432688785869551502871078373575945877200158113060030585485085420810987116362547715424337266564738429742609075762253194476242147080026462004951260924951697130225176435881555127278910384271105715670216380412146276517248519971390458837516320018081643967588976392031148426239316501669934839321385136680546837216625172699986532931955470093216034014368482668632354655716687015137597910913674663812205059449119693508925930007485752531297002255937907297559544853705333606665023651896464599893085853009082951401899825270088644625555129570348034111861581943124002505827384547162785871408191748081439589804621105732782827815107093065100460928171021431430967182807132574287097814239069485033449370537392023474079572632224023867243519693862577688387592563691641010882980884778283838699716475944870508976376018290493090192302344387662744276455339923346456168757094968918699119666297995190626580790176273882764281377710885496512247255114645749514928616151858040296527010385707130731747986345446838512044586331136381031587216152478064796706217792237858444895583455792387258018305504687614114617427707673034763953616166354018549938125118707346926143173496336041806791832223882863164498599919952273872043948216347317647433877492151391449873816619791438645348247865882371888370473250151864681649053896655931635169609138459632311202199459889321853783988987234309812738902572470113156709878854768454554553751728882914275784592470106439316476078008804974820513985759933987000661946457962726146483781141481713915413563489220495634546751034171961012576792776664483887415604658307619368048465516966535378896468799426432992869720386540743082695438069812415975356732297228604487248064235063447499387296201097185071369730554579654570727903308131897085262751339892187320545563948665543326683745056219169922551235914861420577405001391060342749726431790542184255663297808013561702484685393148173034242847531675586639558573001721554951092735098284108458687490800278167721830317076640421988622237097223404502439476649254419745531661356032005390148583756290905544004793425313686689908234371687711854883399863111589544037388931978006210318636822051607331298825207994231435535627696984260978406227903806948688440789924740830606895660162419820168503159652688186055216814132122079442414328223322530123786014706977964137602253709853877215793191918008279872643233010724934538341535330481205836341899213371483985120629107967938509349506257877677766850141248035223532272164831300133730487508902914734416284249756008695547001124242143233341152469179636602180820248777236057585005876167541965264078735824724211394600133263331393364428901769924352731639129454144149975543529074433409507880205898217586090031961832779841846283359015179424447183976336278868760773155044247130049049972362645945356424890380617440806393532299140951383318573585864969436548570255132244649839798559552912780621464012088800521848381618506130478635918556773774887445056389327236103848848255372347597366575563664430801985063025214015661967521688751889214742058301576538628787735902169426071021558247582739622486419094659769809581412370724039504064808023431480043393476220475897786278520615615722617478229394889730368661293867961449404208840128776120567709889509358198375063276553656920233090749240402931660340240754836521421300777100476349018510989011739320350400685306308040791882735998493900056577174302006767648005648663464931718717000984869695617594908037784113684474058781476817610048147773106177061987286375634401755732765292245293309004526917124679875790052821224335712337459691288214381113814434309010604310385145769401292583339735200622031616807272748583315974457913511209027794155008575541613795044061641344616100343464484807107049117274420298506459058762341053852754387727580888079006583815472926353887216399347683291593806382250812258582884895651153284458246757212702667028145616777133786067734497771036134898353759202602976114661160229955824368163538917256020226569245543933705962851591007017842018807484039636580465321428351039353891637338602008544904389861390450023474949678766620044811087543736660660170113333398242073370670464986043952891021010269853289466147986595658809432846923036220559911400890739167295639267488226370414963615350468045025689521201854502484575312531244765534896037741413044957828270905649810014589930000675858208895628243582037075801199850818508157019541954689133092939425518905219369288915973024110902788489054607107039225658855465764370455631592771392840596383889246760567629288022268506334315424349996559019585058017302405133739729507097666101611617122831189194386496120644759649691870429893888802319030275563983121844319004665964385478043407656366843997491160376091638992676901028118471117425925134185605372847799725235819393019652550554779052464965014016926038752836520214937173583790421108452627084384776196485118738620739177509216312778277857386783155593383768940705400208886878104263525124216074566655489963947019263324976711592229027048581890896898647238823973580662407595014358085737205710458992144959474017685235949755188051287299886331028990812528770604626913608590114080647877929430484582417805846587108081793939846106786208098940331457233436911733001978493066189395440586043854646151155827465108587441873711433782550929335040554655060583742764155134065927635793136441645217228232130878498818113999123935103521528947974240038558669689838165795265530841612726701786443561994101113423748599974444947837644442719576228782528161191638334345197616688198606430621753925275093855156337103947080412666711875224236752100014577500945927948619283526728406887318218195494354672875272951594941185864186210392592069384251748135760763612348544103624887516544827417542341759941851958376275918309880748627377006495983092187538071254405528087115650901946481535128662202142664330333544162989820314756961103726637585721708386771665109220480105221894449112091924916193089187823936710922437875090021906327424418664696687589431159138857103735259482977426972446542501480288037531594360061949052564549532962903489072793579322635862011201396179575145152849284244898945349481918553307396989619974108304209811191254005299200002216032322817723159315363007692969146958634858751881604356124583057510941352548797602522553035917173777466694039988453484338328117785390461122777412418030119003642953110005084279950142314966781106159511730799770561378967533076969287255720701322745452662171572112639198870119533512113598332327472959076055497548601944749353261837962963244972166477689996756357830166305429259911905635799383807299045228184056803211352586601531788383520377716807020975224073727489710851991123989307883059855378379922350335003838504125521908866314149411223289002732338926195610632333501042883139831639144863945403104657652055325075970176732243902539826243879995101549866126486907763632522977296943862179257520913432186284382370343647039313987142422986205090361153238407951645845152715004574295697001751210642841664240740985161628120692724975796734975944015115358429976633085249123617323552461137486191431122945608665616541350612660353524075030233046636306168830251878326186960201996094196918919081024702460559779369288473310200067259773183364758710302740696269895242900756317361504133199534798539155482196991125396849970290147174190367729177170082816335592966424775819742735928945259077580839354559178345072243330120163469679785114161607440780057310766160755284540678413256828853291007584578445772196571285621559380211127373054127270294322763973395734274894359112548154963507902236015833430571521844874830973851790859071409892273954997817141507614939265393745992818638621208903570622664456442240042863905629708936322200474917651743247621655258634416693499780743413842658665523461307788085475825463405770199629439890343671151504347606714599357816637220935069739397793679634008494914030750744169815235092259690974129886365229586011452189839125641762007076029781526647973858466762413588884878847510580165527889584026961457580171566219442723878389624760094572191014782919161830904528634682732162768574489397540555743035216241101936943169208926528620535818885659263523330122977714399262151053891591421287487201778419502048610155372289329866003535165577458032761115913400496636809939196531217691886230692129197872123568254535301971287723373343364113509890544704323676461303605332993395504995975016021439088643034437927077789015682330664675444867829959820013610329863962597570741074529428870763359974497908521398535486159965722460109001749364167839475491898453288887939636984646855116869708215995585840994137331982015679028386353016521614286980629803100605356525736100919546889066438981400296779514365872303699122527910457417019725786569654186000426932778026763877932798221866734179559590764645457420021368099066000752423282608394910661847045452069123170425031588840666824278212111876176897680189708074910305569256685333489733704555660502517949817602483351827523445251484465834430860189549886142628453871477863931463521132084702038296987234398433615440742055127032589879229412568622602164996825090490541608517991430156806119533728622220287459587227299270999504597486397609497611850351792607116315373297725124748558181553117294394061591396303112486920860080314380131609236361720479227490556732325163389468493959026904705350067988339157361147973018749441172518265527739300493967442832509438336348410613663316775440785008945405314176037366551179661566653904069430688317662393127369103267735093024665251534545359963774912119561988606820634164639942855403753845795632962471679375887318390045005174863294648180062698012471185489402472986422876421290307030003283489863720924619309190753854477146715992501408429172787401709903321305615490656688587032315449454178469200732968659848795372322306499987038755396280054357092246222719993990141253217492681245510788749779878983409017803117734881258076899713841899293204528037710151210899494394844021742310427240264307887378001155020230500733253579393898790229985998376414936590496653351185683521702089122868626928855548166884025004914416316481702796814664039611485598034143826441599079847005425695348200293023832826368442346728015630093093016621623683026543185550182537739406793618724857533432966278258719771862977466110141163479952006397970821985817755801847928075335004569163380845948418126827157952166368630048520525560721666961755547865486289241629759748339356192752727194646130590422386200600251307125073397333134892528352388238120880988127893896906388661021530528303172002742520852581981354938401205729233043352282925496738323414728085297603543619099677031321398232601714517131626049913588483143689070491862933955279450105882395115765198453415125718727819875450399100720337318664260014445144704843130356784099466645790397033956655739137302974940059179397386016483341141912602642968217351489656280562480688943289649008634966627946255454601589249063395634421589672975783214374059002097891884501065354849123688004178902203672325150667508367315062597227611412845705500144334748934004143447332711631883731877248470985810660882254691084641276938802846142973657863438302332983904652285890571704268983616515024576575897523825010843728984341874709230350148470073757048905297297647593731763930003822215099925612203956407964542043794630096083313724322335495395846760713749648604314582745888905546822121646781487015742000354310402791803611421046633965874947387216700811598715571440121314821438839948081096055375797160494273272238152715726641424743052579167106911462461604181951510521137362554139372218166993154862234937026210681108898143227051198606209390637475408911659854462532025063532650956980894113005976298017174152904053236803324291084706419180908599855095532933730798243604553065291534039380897411810715171426244085826436563675658546620651531709088582458328636702850324955314917662786625008964753493112388920074861622073848598014381087932822438734780800297823710220504985761560040258722951493179293240322347820629405100589264814106148331669749960021131966391425709183458982814136598784723127606992265142181700226198580734339363877119422018755845317932429406533761951804344915312495836344592059937532954969832266515879060465530932157774670518691207442451657597779319035321865540960143471032051662580558164138545822447803123637044513485765567740981600354692265096658972233338111719483710793430384806031867952345202364476137048705270611999770634740839630045204453703235249951659123512000719784794405157844471624557878723920254296391389953093720350562813340731550921738532912992595300286988532090607914293984874634107775963443224090970803603458876574881532025211106885719113602680889753681287854865633162257576971351359714204083185460347195426412443703283225136875043202222476314491324242924564041852195837487183125453708455007044876091966871644649990659556573070805499821738079258833302495180557966175266238934660626763004597138264562066683945900950209526982096868376317084205587569192169890237047393658714277448781966616208145493158570119508252730801612290405410258843101801217571133792022532394096723953132873646172630852538318115257863033756161529087885449819317355791072584765495954591037568138464083219016192446520269339431442921228153801930423736478704471664541915360373886724043549774065675308118716654703949779534442241595792377425616877642283889715539337683667564925341211398901357670725760604664196302283964030311625478373284664093973135051658292077848249862524624868329543979423532002443694191108199862732269310939429529094802848228996409123022078262092305969395641181817797547087328956074343718522312120670481948343710742621571163289939254000468412543747622407734870720665267346309296061447932696425505283427775919554312900117410720372558694210281989734182163606217944212817610567353206013884512158714781869246614338356536734599955069167760141221124375281697898741922447215878204414454146096332247254436891605382596168217576569646636231323825078814007360102526467929667751385308708696100420733920759817276989354486157807625446845354948105066821826988486114963727797496660233875301356566278728960687446985269745532808442030977862880947480460359518086501485928527337551674927685581334029964092250237212613323290558819107834007053141421915707067223808008136172416696206756398010105662188180667614795055307534802701699290109206594199178845225274083636975510429756926490252168093080264073670568861617836501973760714583186240517545870123288632776999966237825982328455163404052067840558004039625443780526972199164605647213536062780957414537738302417550254609980768153870359268685040225123490724303016592617640616068968427762187270283252048340160814769718651339824311785273993298522228782480823644304347367874613450462873805877450144330436133612928204121891180931145346785225879097802072478486250115599936124883586761206458309238855161073659763032616153172906611417707255697581991903358064289539762073880839369339956564631231199730642836926937303836203038414778119827628545788520932725727337026844222126734124724367995139300363805455910225782129863655227710661963907330133256327772240192950394026928065179320547814483399807923589861088440580477838766277863662900341494154874643031846318193135043228399826696624574303518475510284919584075724578659059711763220999596971517975004209472525405569640478359544941597883582323886766022780802588765469724303764001125286547122344320143558024518425352304986193477719791969226430447874206099027800807199046953749306005692671331370970125558304146483203166989214537817126909064201601335839058284819356052526126610288841450353776960431715706186035524192802465895613804198465184266474329635539000218473789905503835825002209717436100845426439131175747292545130555995485872299251842967731027205176790748903223062448180829206109128991743531724686216963323512824830765226289032022056810911520543129945845702462629710130875750618621571269466178480713546326254373785167183444061491844541153623299247046859898946750433999817522342006147657835387947258867212276224106966765279705904789276666197387622122216624054453836587672590757465499132137491029734886125451070985553647913682937109914775541309979710187638954444725541171379496150120288107649504333258873421293760561546644664486718660526776468985822518966070873536284890895967293151022597561577984897269399320291420043006344868003707239331547546917929590280433506149540899277389920034065770944750060269884175819034574286654336937388065004619700874500021094501698612954072175344214900640340369306491924320265571080001878557696993316107923703822244060974436619776934298853403836132881377248815809547051734600598586141779756497655030323457584071086123543936616136033549116197091307838916929010117004489576896753821605232878879970821408695634432407923029722406151262120751018959088759706282433892372119238488899672438053323080241560182875157791014765274775571434153904039910405834325873240668059238818473666536461487976740866581970977834459731294588238231623943355073960407707938682418395229316200038989580300308608537200338156160814322017816552069142906960698159190986481067074862498132669463468784246299260286930284707100158357770748775507706761602751678449631619943128585454244331967548440118857724680779611575967972984088253015641648200369425306719981992365161426355395508442699868568672887046419823767844552723189508721684271943426542806352062582800433989667048717929062509020605541742518477010754182721947834681452871492428889173360717656044456967753084358122974382012361879032222963382208484139174025016685502337268382186564861619465071884366779113679844603798603373251661000178639106393080818092307243178639291064440888871016951903031982870459070808438310028663689399025998368705227025057929453364532364933205457540632915762781532374067499407001869759566458250394780086512426414910840560652876499387167143457380526282578571921610455620177693646958707152028266789277369456090112693281989958912280116233029324639871500180443902168110752163094964192058208498270788219034559874858385750664439132672591502702603368852596975101731907307921914127903015029566314615538198899996274483924717190945125031182411138413591196445842715396082311973183465381003844836532929453959928563998021529768068546138065193134488426583293100081143247160647790919633795034815991768877144274069393946901364196347298373051072062872816714047917086819824575710550179178460434952936498759701015589769944267538189018959127384073006533218172795503211898724916942910641958920432244886575563634634967362910325736419013639722919241434319123732780385534172977307770763021014695456157420497540533375350521353538811836700082757953281572562679688235311756449794167482629381445686688776639199541198759081534122791122064562247963499517980058702905165210404703249002636373741417663656532277142856102209687197670591433960929850980747027410626962410758053495735502895844968781847923994339292963358714277120373196096410112342036634782060281452243240245958426590488011153989038667218270915847083705622400443038665902556388462119524597022815318910634445239565653500780362034224659985673331642455910292457133621924285180128311351783588912390513899173562576345098607964660335501296734141021886290488301276108281603545730010310198255750526850609993633921807970733339113225293023053872165955335265453335755961651961848010012702811959080896825437643479638028016629859511601824542329738706308329838576142331273337633868889952174745210467625121791478368515852382063847944739784282212672430680760757148812120625148597889104178623195209483656440077049883777519995237701643286733789843298689654685004834105560817125584246895311297881710173396721470833497935597048485766043506678882692640541135001417488754690717226259740040656040431614893896995504046568463959626041443411353206146393991421440759227243813242791487390024468623545360090311663524039663575584164031553738087538179172105445861825458842678711372761015613704361994754234576523310259159414021640473079577049785226333825693465714301124636583744023433348753235943589061546475379034618639727886554368895111147085030979220460573196762604124318084028765579032425546550197499801818790437446502377782262489275972935085939915259957756126815243701218382087366485896182610758577989858013868876150093511951124710916831542381736608442716778616070093982704707561937261910142650038107967047645023629455988668681894976816878289652103922990537515084502055233309059571142547093077826734120603932958220851055974819516781579836131028567581115072196417274994230832490118375467099299880965824127833246363905626768943615676328394238130946589923966599547384775044774364655187761865550631147119008282998288862760244485161778479649352088662568795354397657699009903392201574824107828381866838073189206939287681116741551776330476211221966861651070937459052564893673665783347390390343355147173166262403069737968977856628420831286290255535355060721066286494527446523924199802838199093518300460621906190844682983569438703101781565095911868832331595735312876787157180771393026248448363168900244859627162069121293248757479034805580915214216071081740621251720291307824479450575401795939229776085111527056977257997104060438234667802803127058103896565244955495270831408986979541034496981317398685432600148565538043437874256607155419507530411602074933789966772287944344953847034660491246909505376310508522105280275288000417237429104001269167272323224520662929454581829331702334300259886545012267684323806454159326239790881032797924272195446004763030898403833445071627369972415099988741723238847880602315864765554482607211537906258577898508955199821016377926937204362362719280362199229035760315800700549491063392606635960991850191447112575992774777543490854609684200350517867754156499202987547415899462338298917797641790160694265565195091886993230594758997632642200390551419509835945113611300336355985724599456324859823697536137436584567251473448616718504184362007091324430738218054677480140298206529029932985007324480387061956471445059288960129288585036817970806634062938752305948862063659449576634777243409188886913047681941828332515919439858561189842416549427474815694838320325246211062122211172520062405117036193028031959213040741180296985487793866668039841396798642812906243985972866177117981331359095287004530771666643829653393739840976751088088707586474165915608529471173158452453687130024965588379695915294072923260064060734333194562704456525324842913220615165452006319936661033265684346487556598179981845477414069027884878143980775839263875357400783208631123601576825620046380215430106700118101315634516618165778621078213039962358263207191372045210953178499145491851584975835657575201172491020293669549533213000404799710590532845204812764774837219515103933116645771123871830459203796775877017243029363492387308303736184434861868843899184644251321466511825326631516357743421531691481183134049141786413162936225486708439519141377049124553618624344324914410964765991132356842628892064312074174307965889850363539877175019106378427170556250931908378829776387958114366467333072914313977194314032071292561568947756397642192700047396462387235969507952405609148840979944400614707635555656247765582064865181066728256943044157691393394046911410245507440858492924689293771002949423922588765925091849243002641623940218142474432613277402572988155427447454990417671889360455667877740904085557730234920721730835887573393450229571283179273280311691276684505302763359485456813893001107581303862431104006682127191789005618547917658748566313852718449701421050860502171092677596691970813347710397854431611992740434798431636663191968530304024651958757678477513898491555832137960340872809851226106146184472870360576622161702320332090350748123355571981837539620983409046892626160958903973861913174055795527350811267798145244107276328895532664214149033910453489990253292095308705179094557400814384643098972304074912333880858902371869181576243155875793303246531525456526368704796058701388838133401333498912350351007508749264627590299430342295980937050687943901950215189379266508662732815456160229593480013243319101960762136432759971482389833908088623918291676845539263401085009834269675229693525633259056427031229912090210431986617818850237275760499882507200023578307246719430674937597810336390435517436752730608268196327855449231402564441598088691677080707581502033173392826124600012858690138432598052845967216471211747113384743690857205709194152950006744475315424509983131686964136228654842249921575906868296060105223597320403762175851111451091588390360985713923258928842098627958533382157096542315710933127080169543508139108003047657995944959359665450018009392726954075866982335569431836424548835202698620124421039622389992682665749734907494054462278147357666573236007398812183967186007213926462640992735176272111991030649428883462379318895933211478166883764068562565225964891384275465511784873720064268018486824334459391371223103062436321029952544030769624010828262150770240864225395573224239949789232894245990691955650324817210912390157356201467529994602505600815755487681135422229505185530315018862239259292681724177086231382955339138799168896231779587011247261443179479226117871823243600266822054998332354960869044182680225285375844729960048516131718180027652903847776796423652744143073010829996189609053472944685139809609436829194489758110476853239989889716187023274115813297171951903102027580130156480628646793435503631014026002019454809021293610516479839032306992011845246125441703025709644206498909991066823255655182314288380049233142536712283199980952914225226511045968249834780214164654136699785574725348938397041611174834920681045125019427642083321247592840782038608282984122709854243659914598933177249290963899049390938653626365825138824660317101315015314266118758355687024857894017422066059038642028638575608166784184552454081114066026794383319689270226411297642384431011599391199770441363387738542756016006907128185018957771879338143051408853157887723722881560994948815414383477298244601531370302387598705477576294005589795977568845117689651652923517248820379730168071899119205353361456988866500109753294064196496322043075428258197261833610324056997949370834155081740288552661120748507614069706953878591321808334426080700001298344044619812859890697993831381776954051503510411031839395855912427572990043489663109106578669580785122092046564045541272793708873083883076319764764712240451743984766158100101739378324565165483915827049616316396929097499284172890623213512563816194544629441287284454180575375636113436956760657607292174928046451281546221807644916453593835345714199835989883151579561965783633869812061201087796890188153401243335347966098041848551126137553790316644764068400510522490736589323124882232903661204985699856212413088847873070292696591802478291575216804653859404551343177455471790008368408742194411890703539007544821365403273706785099563679346275914776081121728325450198920308332114571347544678764089310098052911603369901874028236770973478835969288627280236595950479525046403652308946180053027579023755510640947469652534943856916579838612195779282024053878430245635355198766433260666014546665081938257764374372021593935846209696709926446372912862802283226380549523130469876557404134757756076241278979495683791876477840025131719734115876026722813884612929446614798395901911945510032125009244364139247722732358520282506536493050629805450148840265167753755544064952915396761093258162836557912341780319327393354255185444790906880688285531239083153067498295549974113185628948722759519520345006297674277036360447293636581762869581577757133282098526638502927346634594647532775509620049989682978836156675136549825949314024101587972078710298331267645755643977348472797023429798307572807511618223016758053003990647183243498894150035234478028031279102741262720851783683461380823073056299497295356845024540040212092213951283728222281697430022283502969453770472989590699943673629913932840544036653384911103145093713423183478744762235204419177936396079472559843839496082533297203656089909240751535663940387444248836053885430213717813308287403407698965448641006964243713746697224634136403915851814716069807592200184806429956412800732592192763921074746174047859208245879163518198814565350163302686324626357130919830747946122631531267885287864393809893996140732057790590378088199813232040598052344119646584082847250656426617714976803179355681576722592992937506238740372415617055066020398612653112816986445338658025696035766400292288658838053169314608390377833047831523167069128077921220787734881199711715634240142265460015321510897316037368789273438172062124179496069788205435850771566347623158986310701072704249328541881730081520072753187653707049840068476521417155524324669994669317975266493432106840572145553080159703224129255335661481534478246498809787284975347550596445670916877581576887186147830047185794211592350372234435731511692052025769298497327457288944963860892107396415516959306830092773025135522504533849086349613901343931229339058803235935196993524964117902088460519612032694738586176365872213700164156569643730378067560058341617936740342451968065201186022769031498498358863503726156500047897931553877857118625215767935063930149430574159901325704946090169508810494522001067797086770015340304820503667321761481744933899324152260836720054180481675157769819541896880129379038788875539460100558673572042787359488673824976744305473338634045628532596841360331098868244626217513138743981518299572892070958070002917555595543729526481795246197532266099100380956459914032126377877180773382815026427938696069796392511752313237497477894349542745014025733291350340278865732178853884537298317953517057373733276765686598797018741605728345367046843756440134416716839497320897719327996962992577774828149961979110952024577523038679408413013631820873037732168727295537549747456519413710586575302278639472304209549495703948036310824677668180146541951977271246416580428960511549264555717849220173848514972201712094249771479899814979831613795947528736441250018781663068588156038471933367088425287246252525240035433975842893774960386866168762099883155773107227677786056494134534532255041866937788953879820807456575077001727337495402933565832046103214579324889789088125965073418703724950526006170489655982104373010019279807855983425325462239025102317923740278119366805728160400838931671829466764353851761430072988884345110999060373240674432788823183206413398479578959684438651777234816358617286214153192255870391429882693167576107705821170748864985025453240766837136569522883023796557344691147897878447043073229583155086206076490991238094893966766694449240702781884017511481472344044972149152639858877251950403083575187874082253969403934430612879102131350903172663042659976369278422885296072622834425613345692342946836632768361712565669482330426931769143845911657335470699333189133130909111124911728503740375840178273870324025801398510751467799599299130399968862782064027358516053841894387490778363327638039629252445884594010574320596442263108206775126859103190212325126252072525671677446662558497024309107722657273706189974126265047171569893094051500621556659040588252805454649524680432732857602631463909050098190214175749229812706107638031238647826408782606047537865424109133532265750220991470790763861637753042897471837100700013990706697037288455566801565319355168760418854928914123635026611669274514207434695645567488739241867904225021676822814375586576039607315783428994803785662079281461975829868619367201747847708317261070610112036189890144702621964637756054238591210680215282733401733178664766941045332530203999756484327477372107332331502824705180536291259976793853638406999329504494150778913055863268000657713832846894277110825514491009310096344456792320464801215746788016671723141551596370390797084028296154024795615713614911444339899920346383886705236622537769538650704850469584298646987885892707691101249836379697209888030886897969506003922431960844651690980341619649371444242389463063567216459308252252034036250390699771210839226575195072346617280489787259122639212973397676797623676274132175197728457231144081193457046832956365987275786843475341293088158259454691272421407638074612031775063392066875512967809813600215126725681545520124548067670897596598284011065045322776879544664797488251505512189320876503268254610696896429254415904953296166955448490814613540346938990673660962648093035971852013730230212855012869438528577292396169306692033602234308574274279206758867105035035523181819934066053317913378353951263770732395207362297023102867705657250311676126672482869701110175811003477460599288640157229029209289298542291274739286920262682007321706592865833212230399933838913891457513722539228520109291277519176316290381146552788850752300884416332788359555366740205014889989068402965631683081678820181075202821066036270811791494665564544522312565423185626393309977572330812915431944462917658254204842753094292494235056493692407100130530929816113382670618103847353397853393788509608496581197700228176807378361456033281602739358246808752980969641792310804758137117634773779541378848593790196430562065560963247334314078173186090244233431705810267874986385878059995661184797794035509781269797269616819999235610032852973687713202478244678938179545904057433425340222974854903229381104172307296201603129032047492745652856167595634014098460495065964455279948109322121915963984473769276548573795856888048465870124554373459285207671185548804511921497794800508532976720095330015229990934763645821821025011018404800783747590715096373509521373287806226941428568684252267317363272813502097796965518191978501457719548165302356224989228219705590715309927644294918479103939165077298329270491618010563175426042797549129983231912504008368429004413680312772107448840987026144768948323410999487610704779443384430470550057536334340580238702351017078505955669852325120798428179779926246541879934404293281758903537987238144170822832230596818753104789233115647101294002276257554129320188085414742491800204040155666056225824764096479745369565274778513211235788530649446740689828601021800715325860070673454432864014860090801903637013965891257532407330022434306686752550544226771809870476379004682412655749935249175920701407158707155243350194501452024649083372273146532031196709878972960915806537437529976753875158722658711465123789858611754580974067196779724423914531147006972645030851429632625711120295189764002321237773176671820768189493633245810253796595709257075773697782771692338229704229596811333252810550908445052763470652781728377514603587147625016257006566578160766714750611155043923197009272244849491328865113894978198532357579457839573907292456573024582847654432670349417160719400851951667436965855678520312711433900354635849942090191798203172480376186224610374805090584807106897535264391886478159632899657642864035985155903918712203615408138102593656728907371044661891566686001177974433526136089431915393024370962985586501319357914216044014436664795063477061859275362994661266776341809542330491871147486588729693196074889388047119619168052268410823323787455807296453322131392202982067673001620170212000134272310008964017629457863746752969234046714185698974388866126388184448404754404039461087089375177966822606194320298625864472751650677059416345189368940013032282054723930822300868136607434216840461543870226818180262715713662736548106874359799997535184103223031844820554361579857230509268231489375519546526216260551916658950972463850523844808391309158066587487126623824723232864369930768120768130722410724515534328665523462718080802610233956710485523383993003055756218473599883601761323662355553097841481481092639210285740192683622388410673450596969257599321708803899612615522585703022664970058140840153163765389066828479068209243598545740737668772815727650995215018818060553855146985179163179497986416854443426504507423115086116831643146675833742789114251235107506942814926108132742404162868014519836846643478285928397000453434144421422008419451171916170735084890982902039109811136180711425436317402780270107174018267866940237090610728449090749432731561192280943170603663108918110270830321232928174763463804418012066316248465825057756873531612471238132859302074222007693166850521669342662255363297082589845490927347654915282926757020045105520952176612291794904847077176850640321862210058950994904650317510636504439518106585820596305322577945428725340891351966936948948938565274366309050864210463184889598158577510766358685305969585422682140116682588356159610511509192263841709800643787145633232825189666044385876007718262111545905030099276839633731930258058097014653001046145221632247360055664342459384071819688703806975246754524799351283072036481331741020267760634527762341362562932142748174795433625365263483311203545491704806286842310831107403525048031558812366705354998640922820032165927486818288589386888942049871096022786802001465164723249246547489689251162307274803773722222638668934865192628288184943759801643159851083423919259533919809235614621302581569796709482481829014199234088994550630804193928779566958262451572540766318951298135789087909628661718797877998391163915234236140694317292108349174964640107779619520695028038433684766207188342171644116930676973881964503322401742580964451617244683379167825669016696539030463203584621902937062886353656967536127239379588395505641521490222259645228509905224845720215397089810018021070312485123227785095802027363814351344237325199008339650138539559188470120341088569951415012950462943230651051187025757164260732257095305248560204907695960957752680439869866668485020798209616890234836681836708142656284824544164260217990851686771864558519680704531775958872921464609668145507010264603881763134787482794196451575311502171998001784571668527520760393323186877434227111265366518357445763275315112077171063875506083972751596069436204525913336417655857891632990638220820219588398978447324399620474415335100778879913513650483884294450805920194681911682230320455830201545226012395263739159712942944061408848308224722685802028867443125228240262531924902043779867275997740215901211960317743705164271970599206576270571009419380653048400960773297158437682917216174546562483338594129282354159276291121219897599717029021648738910397607935216402746210239583738473701347200909279354116527389805994659167649678844576327940288760897849217849089607020179257279900879174176460008561058519656819541909407372223459268753803702391415241998318725927227528056309578622675248790464339426253689512387634187074124705007891711486108551276101993540707799212299148123184644082437297256395930459402336995078565658985330614381763468724096944863365435169407808212022781879053934118285027953407116704873621916775135785208639681068663256824244956170391321202062085674720262992629208193760771592025562193915735246859920873993726381924319826399106262191378744798523399737749692559793638859668317548465015088220943828528287537394010339815571442177899423443532392153391073175534742757942886642472282275131365804397753955847705413908077746618102846521806027204122913204798473284026331189482612376364312047553084503328707107589467814336462212960391160798471348499566524725943685768245552608717338110994606449189109130689248372805254420495046229675694649103216738691631382687822558609820367218199241177671887133767415019096942344114461521295467482734825319879136383050941144907797669377637168817686867781628206109809566598101852572827178708423982205577946871583180443647209566912513417913696383760246886966162724076939595509184714108485642977546427253423533928286228167909649527129234198584439247337093524907552872069943528989393395274743778604057339194552069021633537079034608249773626677122044297134321477280669836827028494292825115271579939982937877488512729728768052120997301219329124742206406521383671054048982775077965138890179357036776014647285891019016468771942331633510028589435213339030669270704614663333717499143580165638955752654229405627964545768758080094536901111098558533134553226359229858554116135369029312138762826876372964560837252434544419102428092407842940005416710452330559426617895321626714117533940520540956167732295224387458703842522259755096109862948312923701876223649268199730939453934738459778727024241651904514355967490282290724750815972849555337460369073570667382851962113774637272566669049158594855739018674372356023682269488524422821213640864139054489401783339484205218704546084800749071271883678338888984840425048014448744602223547535654507505665814596734090490894124772608113687328330260743077134909989145933623637692970863475882180969859933048321768893559898238881639581432090277891549407351836665201084866615660516465031298296942885054514220002437914686221003783626258195524715605516493074725924504861585926137462215662712014960097012065960188352341024429443201300436972584165657093527251551135056457279339451567074949449395470693958852873398520603515816269649819658040590561233953775578487963829359527466039692227695718935091551107828010317598750003777307161902196215565501877574668891242795450188969692816354511959064906762921509669555107812432292306950448384379302389711959564102656877042788812889629103263964073563750704512520972399830798335724028710114236514464928291904591783373606217407474273008839919954905371635719479364918348864460009565913928753669424879182724804746750366376351941268176435147853873783375298613340979069296327319416992994938903285607257515971048649187556765803955746194615029139492494852406784964523243016408273530960581656375688943054298959606442417261272272296711135447107755413066526135277058446940807101883751067383002938910759068124487852730223684195076418418734074623829364420361595039958793983504967754546692303010192332335307266668352298098581222276920276386313125896400716692763914731423422942488939721081413790605205032231450902245898937568788553911191178979874835553551075778686021243797554248223873171832629249681408781824716660989550168787408471883254546432703988289321968448718815901756040388347953703403435179369234726834791731889124554147961925660527376283648931139578047954163954044912140290966330490936628383597342215540213772960160926708431961037922993695616414646491266325320215123247933384187625268694138445542291930854210180243466255642037997755726490528314674110278568863412283296590893245145286752621256429431635536924369920453261633817835832217841337570341121047847143224323847105796566107500245880992597095704151768623172470207645169888403328358803628524067492908547320565569042720983323823904507635626455068308966956316490946708005673093557877206218852874001107786837285483047669240764697231027885056503970092248381681549511356370183740944007285111481255855550100090738578094038903668171800339517362762615400048696556202361927602441260280323405150071085582109553920776683319451838666008470558015069011128295323212733576023707909534273953467620158442125779198722320918915416581225731249169494992563530774117525289460906983770737309622058641402790000327925711617519954620221133934245554259506946615359757722070164302237539306462420401694568012089958889408228143531549357064275294955034144517961118971465405662426169521466781403672665850691277844409886752327966302985715280036106891143306456183672993795394865221544906848086605739691202465446454358575399072226243684333369915898802708811545375312107785361722407174918422409251295788496998106268754777636152568894796065725360537745724764050036623480406066652738779183754515027974620243540420382844086035267868557418511736794830775833811591685704809963223624830216349963307120840901474412802507826066082327841178085825780255737278396223000735774017092539121589709507101521013170413802056837972190527250624474640777555501645246896908093196034765374124762578802747454953739385100667297939746121849798125277396968233388585911080037591784169012754757746832982282489632419463465463684829534729879983558321608503893903023464969759656162297807634118737922790280148944910608651475856122925771190344906242713031787879791544571585770316435085128236221528451286375490922574012862807141064209692232296301489732433585833853352448517049509509124702581104290196350422848659800674770453568649999897031953881808186307542225407668971933610164565617810757312719992743530089056785701504801394483563395964670350238231341463404971051418288544689896281955510981629028244245688712318646963503977216025027737495148604810159466115230971733540175444949672818892506209886974276965813246388226701346903100963503263916222650409149379895003140703545660979209248018753474251705852749915822759505073856150180182249753618110643066035989825093250047310717431573918157939879289199903905920263925562736463750220079839440260015130751606842566286387055823274241713816167708896188536167307835040309234678897572735003950708733289451598846877425451560206472578245751499985986240995321882003651852210245147828805219484223721461770360534650312923693054795316329391232603081476882541423176312948161726989449435703086519706169901989661891848350765877906965601890532004015800918461151319899514464735197322809703844421689745413029007393238488960979722933520112056150055543293717600450184004443541983744346148325840073143791214975034509479343793143913342371053976971639010423826346286355833019570480308735917201844647336644777185728790189609130775204971870030497195567600345945251771863347738235592704831021613755169946579332545031140174913233780330978247033411937206859257190833448962413729341929373914693044895059482135942688947769276505520881437828765212737337003613939419310604315195484501372614325383274356096254304272432700349015943789849667514240908990164616283866166080292218342317625885384656955381407075349122136809635431674530862540094038392062156792221024443114132586487690034173153767418365460009553951578195064390762271474554600555305185625615208517473364940311103575778320902131722177234114634038319105746581556977043801998177964994526900900643894365638775203086339728250619201380594188167594572451517492930375735039388097290932781781806969546456931790666329400376837575501261260895917971971769014849895595790458260470899525286922576874512777308534723369587762617385011553558096273475977850073800134997361462891629761847176027111527625224741806756515111666059274682845753133148984338913316750790899570210852543696349228881577612166169130157011205939436144047617807475111136825651783981905780830160823669985975942128182828686861573334421565454639098592162103919632705606168309197636695185861669672810828141082548720296426625245874255454691414362661393441367410265037126669011528185897462233322132876431789476502512598854804783094327587240816039374202823927479231299391766872424037427988051678055475268863357979917056029170946565115099465218565179493727263871891012663161336131500420860416171247816574656761031209613233300009353741248805902353925230009788820336727037201228503861635267215150076815979974400264430559324190237634347087557180014462245639444317188308066547821941278237306407896241301463603304268950760730793526839838715631273816124380704826832863589936450267107823847896853514487193027211386927090597659210815460674533751249294990930489095618040386838503140251747674093711223682725483245996594720486966787265374929519993348076532502994358430079266265400392706937610253421330388089077270227254744580140199621841705631059892717798274006879467073943892140807663988512244368611168026392222694839652476668570276635818232208482305411001716605786805338024735543090305463344906682906165282511751616372484404285205915626139087737414091404366203493834070574031218835930306859944315971948103224515576164064503035121975731496883921593204433579166963710678187008764595772380568347805217729502726253182950396791306341369608004950585637658958067359884419283920206994861818571459002381443536263027696662539820668566891830149531727522662339759209534224393927768348970685953500799977955669543439673792889967154679916910723645741616291773106021153022070274397344389664136673558528904924503097517733837603201267504491713085463204236662863107587875145985885147208122788095449592134053608303440617085406769956663266838771238277646456701026290568683839022956969136984661054773016896074632288968904269316669522994489595052680712869596641019073011725674408992649900901339638878594932176737662518210600729577106302442895333869427726034027742503047746369134979474468534706326042722979104870095086718474130462418165695808969866594529927413594714462054746176399197129527126537863137771139370000085899191988842161868467728386320683728562084872965685228436689101789398424294321039919188184112176380006057594079037530343797055865892368234821179072454214678091542521265383331819062532565334766455794234572352345048980831694443453941899991992267705855667146705585791493754128126141144663437767518260204182343867305482523887025539507061167202488733457809199140688604857877969364549023894534037205732718689881959289028154948645519228773218197001599762110534694528263542595229070985135625583273531170050177283108134233957320608647226121340780305093128058321257362056696633087851631321689139671327163899392044274701630628266916095701320276347043114131118800362070253908899841091687089780714306572178884859071436392277945663446708435695559459428531237659863652858271618933290511668277004804647525200731525283911699098914387762377257602145156115456300963627829711761386598960788379256591589855053388752696335447614402223826670534773242335357269207958910489070964124061139962283889428956045730416506287874478129289949085514766206315486358233066569436061845279370932916593437386501856343574052637060900722504326509620611196406615457678158821539692774462316672607802367238458462746376509454016953690773311936233448995315902857048657777095340666635818771094518821153631207586581694895185906860706929119282215944908892147565626034946827101334330976092846786453877059102653401031496311821198807859073835107609578528465226228085992209959542650488601090487522280179641202866544280991229962798567862188447489974631470541029662455523790710920240417879478580499153673749226525224618815381088604709320640643809676410380160866847049507516347138340914639307521866733025953491769278774052779992391226034892706914736927385412559866919182369999110949134572967833735578601125604251285969354950682392289685347455550974043582739602516793274297837359455048154346583699307654861674840284019403145972181659220393605170679723067251308545042956928549013854403288717579520068586088417136268895944686280331732551695356655181631774747386216456874001381999696798314488431329520983826746668218481967120529913036199154761852777810491948248938922596860225120487900014150519351580228863344286273212382463428209439007637944134911520192878079815337723391212657679037548445215551418696898119274143986222701900151374888661042817064041028021364595729079304656324187160037954222502869537972502403648851983264187506195751596851127602420111333483497350904816830708125116388284184960266772992714815578112274079568873391190909305667526159199372459506618664681356600863356764920957169197318149410847733045700084466890331650695053507838373865524475521602317667911655475097841390603776114744684473846056232871227299639708708055151657247247736563811211055620674002009531769658489749932993169010857498154111839326914761470878485689218727451262119142813400440602993289946416431503986721900932863320611676313936779249618732203011771155448605193698636931442857834819658753830105676488149901190352744992649274291193464255317353593425663847836408118729896550254158213545270682455102450278059353276444621360819815769463780187018813021906076795392067951034452329123700056710152475302283327629661400135519747171533083809720474148087764146835345728164382504571899485175683821652129319725689148883760692946066138105377120599392784131344946202333733732245861679793700448637941998448464137346025787262316687359381128980544720438343008783683864389224965002372590896468196531480814063754607393059629959526643888269153201186497282868992829264382165578212602283688229323601181135156638152450045681992606568333197104939655465920336965719306684431095553202287541526827037738457018560693900509344929143322396352667781536127682452823015203121109084914593391323389936395517864616179691166761721015978060158976664002147413191195384515895020214638785910926776788746627238011802679554330869958933646546616791181347093993450808399170904459221379632981585549009988038648445391105022029557440995820565347164492276915710157465143179893422034113447499722383646280296575589608264755610032325821460212475318342120501521225088904280845306043724462078535073564851705643402073928050446895873796003064112409632245871532588038699086230160449164512978124177204984806330938338650838543627124753850481468588263951519654467632909362684446442589848056961684343988931250358496213497020148509795077646273671858964582153123736736938118435185619300604956307804207997875418553076707984754994610683882188975718781577557262391889356577088244599967179426189799055973814430912457112950874701752628059811059714787730652827284499910944432605117400571522168504505188305402345309897215041257681511187095293529592707427037769580288468084551788445247567058175181980549742739550685538962037799643482108142542133869602761754100733236132037004545851417393878562653985776772215135459319448369647622364253432875843074740071368746812722572105856801561587003101849933749106796411730676125103227447858166766573619206723735406430446049942604404286676785184004714127919213108246492845086043026065994094690427442502336087862487472799331852970739849121534946749471366130502383941779973451440428275281078767434835793293149464924901702882198407006925199643227404445811783726465349689985172254136759300115829926679716859644548119756015393155940573631405958300043949877738015039097172373899928862863874960436522661416529451004517080514017337792210080559560101316602139631759668433618382897172256079483083350028768483303103936602334100220884915519258948096976811066985985106141468751141992519153778180250308778118676241094497373642860791878360330908188881307049655418897870582242594293375533629377145772641263719726467851914615666071217268754213752706510783781823974436997372105695460927774980165297717329332903645003066494700276478636646118161386842248428502724164245083566788066835789918295364175041934058256779719733036418328154662572505284125812164976900825639550356909892595170614709807079433051843953213408816743204809639445968977804971321159507667444260950919566653635214671254663589597862639224773566556305601308838054320376096109134533006606593465413847067085512669940259402436375019048604694173906857270374126980248811195437739805651659020106285472024653356314301749223907315088122483340936055492941981512163447650503771649700443363987172220484061024039867170333907668457686163979004563576763898582508344421544560146277101142753650818923993042431244529594281790324381554745448994755444557309776614951020896870783622346293624774834489079304514976129554933418420822949021057382736076430029121748798342834655243929716068355350975161495323835437086869051149750755788606965270560192306790445195369100177168558824911470099671946976873258525804597868189618754023178958159703375910780590975550640578610661707636331365973536798557103592512969945415512988719788972853414086156844364645808285568698881523063867254607351864108159402801131857945271059366385350680438514221608577851927623289034197789532785550426120815323775205322715474798021814012710551624034278300877827615597917934209768626253501383892833857647444545519733583341803791773538808842031351339159783678844631460418146691456489189681050358673646324940147605483252003736461479632273118971278604773042057692085678657313728375773695753227904998015722452735527723703807796649199443997973517427190198373924682143540406870777279754937911512724699514629411287607505580917464418523583109919345691667043465715602535189843988397015938914736954350314458082987665721176231495310956705929551981656996130734178145974891780157199035032035450944546321663452549160320748860977869364144167431899990532856351458363036160063802525718335774948389524132789846484585264694492099420291845229446596090302124246178347588333150551089569006564660592215870257938787644183466124358439023453448717354632509192663678705443457039142731875350775376095776345331940680393106307204140550552870578180429923727104072776687566440164605036694779460621698063712286366941533942934159246117918459806694264319009818131067297588053108328111540709694278036923719601689671373476223284493712153606566889887574956349611966266793350146795677761365189651847294723422147965636445830362957851098326412114731744458249244513150317093102857067289309521643925853841225757655525060638993475448500826495860704031065089990267635889737085829718807978362430735044615788001917867925200867041451887545560635674372625278320189161326995550680634856674027524726239821205154184211495612806000924495491470664937577175161058242822370513527879221107501850557896168521174620156311933290008553208821310996862630995649092185066204979195686850739660410273579243158332440780483235442927834489277578872410086889857831489448537520905743755488901224120664577693425115378671349725713377755718168759210365995653223900097489101618987062677591546428508831863569641279730988568750955120596585051430634683353261219071612698542326668099152474897352162781501473225477262778466230035005637693433575946078321045186013883121730916624076899138679151539350954206359002569793356051054520348845814294986965414993703978295164891640932404724111907032162877440776115176412499179554414496754824005076272318425758155358484372474480216453784340641582848077738474727776011574583264225524785131914778880948101429285221227859601669972798254469934609345329484371887031637531453926936862634399907126417238541964163611354051131693525059919171872827297126544511091008521254353071032662005742238699578787070150748760457369939493210515888782579702010980500963410783196923231497000264353346509349481298385197081071726492762930087410265873631310038488187413670429770655933040037128278201260223651778251033504457043055479719440164360586596765350935932520522545208346018240978283250020169742611525690797835681068538817020824943346621832337183623287583462626468202167371456438914349284360888012475034904387529350604139636329856478168656319995179522628849046888935018836061104828038319315821481586929378072990443704518661699766808832263360838368953496251108028155546272615021278387667084226658942444000394433284167534578451820558104270821493273633790087988186079726665800987449505020985736240840666142419373401345455295065450028002226051999565618056808738462283961845694902683156885320018271220504940132514776987939909972827312858944824716775820437153127769289391883552319256577874003767422964035010111337844719143518054682963612169305666814715958212129635011108741481324083085068377591012727355925546653604191209029123720766412966083270698739770201724955054416146574495960169591844082701648382568685517294447531971087732225843700374990175814078501585094054886870510989079296801385471226518783865275293166068817448191234258206764622973213910634622062189165604893006801820098056648874167969555385168501943774749705723242105359678613964185314648227635183797361923580022919954268081275739111469936588103803890690001335976134617063832298766290582070513917499139030143357844232667915818208284271056041594776231220179937132259145984536623531703496457505066347863028354605132919269338341633937108319882949310587624420396422093026417101983874224186189876855420478352658724300538124159427281054527634568637523468804066579143290788094236169035296336904191652030435778775279981680290310721368663891308747556104351315217454959448615760237775687349961779336462027721664547301384460762733697418742848123442460201355351662932270235808634765545815610208026793302016741435885726995388097298217742251941804055433031758179552572746652279159880991593088879061661873224194504939010416476188233150571354911935290986340487783500266523027713695881601355075818617191113423409757577666901021765719994096893424915705064180299383060372293592927162227426455237790550769197542842750933837416637590768975354182083590705721455702863416804604914900937294821925840570658104034568804452510670052940410154686669862978440127770805790351503153974782668602316321482946605821889068823767881781350832906564909356131440725533571654864614679266640757785356979381713528491402038179017675094731586556333546430763572954895438455994882377638335977153235381677007869063380668264740751525579929283292532629054965661116618468515587764305545401795568579225949884806760016100428293529816621829468015354798785678533761618179318195748069434758631092170340116056346059498386258169858013188540498494702407626304913312822407751430379788041484375679251950243312516440850382259768539625010186961955841368910897462888713832762383146248894826765590135645036852598008936186418440771710881318618257669655918909429375047080118347398271879153263387978082679041186405762415990042305114645713428635477306502895240724229747577080942819025309776789765047439658131412668359425212009857478778867783153245374728669058546025998075744520443952812939119264915697054875165742775489528111980642657916333191554553545353109526100432445589812992522504028686808167191465344371714163309064628743211329651495118233777161561819167622726709870554867818625207266364400885743246263520808806662817643104848710191868033481043118815305318514091637396212183660633379527215265964547829284158894153654403755786986902409620178253486756007619489317008154671467072752046652221274264945778453588529507969458612531087392392652337808679239329667334365746344194068655992169248198970122863725853401432742016127645031884839385136457504019040856239904373430538629788780755999097970748573853951535927256374336793464001158581176342366016081236547955382064537979225570714573338822373692936703197839227606318384526023675127620718086448550276451049665162375637374477651705745969616314715863306092481438364412025447229522990954703928290249552162464383946293909127569363477804494364010023243470257308592714057045662802356335898237190453611515032788029157663011693163500941757959751739367478269274830110804700083714309152865149741343800698543807968504386581514278991140841391672411701264355225747429606910061196110210346543162454513330059162902628986465186408293470889678889852765429017228548682339968693586670544297883571601936251599313745187695256480844529755125359421744502128132206799734821534510653945947762024353273440814439281969676881288189514482074406838055903024228256520763362162219872013902808308442180608802797349833886176358792767938996728176183213307773327829296466089575594297351679047472035781023503069387278551690764957006404510049185391117906360788457526169840660507923044146530913943995913770900890418047991364167155402419465685392291738905719540727681431224570948992098918869047403756522151501852419695713475017693871419262489348728773882021840940218492358488413764538781980701342682111481254833203783299004773990627333790837409642089538205060904508938162596671875053312225458349873252424519046850194572090863291651421497592342966788732771797425997004758568973538578087756836309507120267438606774321952735494047840157550124205475997646167376328916663111296501746690017739656010089242161374743641961944718676931790048206412261577244993893785049603862723690150263999870977002386918153126584814687333121557119729418302869934395039225555774301855355036975032956718393455407121379758803760260635276721082094272857896828547222134576662740437990210938590258326256673751203360203164326944900216425092030028295940861496600841099759177506386004568457004526310412275464570318598872362821980317627324256866613285928989107490423778345009170434345936315983913467017644139289723795417924404566251340180020623431227725965608279785956239416507612316969969066217509953065297208474640424950607261190883692108190753424085941237654231235343362434210181433419447485000780568008358455634865021999413779243749335334532956994086996509831140988722838219672392908329185371539680250393606154235306862831392127181452312453027055197961587420248410387956396603113934639281237215553469761498451935157889080139908287985253289254422248594726376712910228861649968668157792892674870333377081546967347883034897736053600821384280451312638607128886990854429970176250127948644886808751111730370410935338874025008113525876768634292607318539946073424186793667676894630586870956350044366098001464387960480788807209850309772620173922535187461629774134529284584899999273928009139051799432542428923994550166151325224445927349256824071380282807259246527986736937282763383292305882963509152702772190077023886133667391105807966591173993785589856031093168268594046062955857906435804999859725002503345479243008116708697720925726464213845811400981252409659536214484318778370593905991674764655657037232705940756989819914502517233993887203744465066491038636141562237362049902350287479654081417494800248951155558247959334912630643213167352843207408096031550641601483604017063022442817870421310216764701710427913343131209216745141648532760238502528655187568510331350461303895580643737807686105177852530564866602771629185012133495676604211116766538698466030827419729240932916599475338030114021486259935128847424692991874611960670013264043749274862974275968767547401831955729176115531662416501063647969814319157717274385846284969588145083523152876353942849578868635431612518463038357487095442771015424651016530390057852225179051354270658482437620791383683724925874925362308350893997354978109426034529345983698778494704565343197134635697772431983816894002386867277757709150872046722535889868964446160749761341486392082315994963518688430746948369074753005068367072772598856938021609916024949900390787792375253003475562225902048379908967951255449936721530627430554595719410783067350919178824072246314052169783641645211575406947888934807912380627051248824808104623833425882825995429145851819198079368289161906246094389162729265436929223694817225117522248093861615550947625052422722283701281248628116592321636452803158136908642864411915745282590628874838924945153677178377812703720471743944664247816028583203880613481585895341485430668524900232728663103826299698705700539636553940190754408584807306972878749957508347793269107070137500908383067271175945550670668035795283608400878808300058285956171851432028844404886969386251763552321170301353471124604879187663868082335839817534805254725478945344457696835265428196686448771873580384047224536345511157359965698718523503926504908785011159579631380670116191421742702930779464569500172208021312064914151642891970904326052851421715025127491117472121996009623929893384398238445616872782263613550914213473620602205303319493670147621262309792729854220358618172401427151870668772999595383441199852185652950675997536165528541416504010634429295578988537083455420300681025630683174658800776228491716672309101592319725075137559900708345397432502321827543553897673664981012692347904420585485379189193919916448180636988846905771881716277100497425721973048655244650288488691683771732665238935781819514124015749132907138853850720396156120531995392623827240392145892080908985869780229218001941321218905279560583282627100132978563280421764206750491071883728697836910478554096463461333436050565947220823481527998809463740703452420277016454754641895576357778358659228514058201146000736051130159698608526195316916056986883922754249249128020018870696551574180693077013371751768070940376056156866025363623219817345399223160957054143718260254432600595800207200692568809486472454706959708245777736513331090342459624192521496199858300628740473396052291771021516526806014236954621563154062005252119649050982541935043991675966447856242153042558951512289472216155194818200451791063036620026597545630786494228335402201856149071608932150040929716279852187074203057945201733316352374445465270303954752828801457081013048203978190918674912880943516949778203149405974050974410762715666213341789519352361517138086261968189706912729741859272764491284325788213249325230630480055227740898217830427351596752756337920957066250175716905436597404758266695119482496565220419212899900737872450908987984050069674806028561045810897982283222731331813692695531052999065044647998050425113476652591873375531841399145472095283446833592458314498774322872399399413198360322726554591466055038202220395920857493438349139709660381945387108071826498676139552458704105286796271882901229842226314484357269249628346541963987289365041893093316362971137149134150506727123443836644039308002415465208018127224263064818063078664456223919563367048266184693100540927583526632914331462562235932668679475412435586807108494950557309688804880298035069717965208238313006050796309777703523867279047369954774190358689831615032040341671948715274365538606295628750715765398644203712184806623419681502862840508259953101004783668533548149534995659197001472929387969689569029658979895692044333173248439222020328973654987532982709435583970493498363427366105422682929773510520080033610320460040339147997689799810159087045404747688917671207776471143702202020715855348390265837557745713525505891587248651117772222834762634141265203597218459986579755728391838107777758421216757744037865642781157357850708242339313931938932827350587454575628480837239367906716664311953459596886452372826510849857385318452963049504566324175288058006974378212679452076828749881695115881640839270223191719215682836366977392573440826739126958739794542319830909982086282826698379722468866979866746847761824800580898487734167372680708653623367122307669269513043813405271671731284786443287942744625840471105366185755283754628679878828854339570578164477135006019908139049596342483381431489269702269615219125491376678692714395764774039042601245980399579527190904445153891374383827056197330728965940638788466727897142790176887070117498584556974357925632163533261228416662526552529031378205120846508444484915664730728030378321610429612324687753092418743200185984694686899227242507732732338035204690527370019529658326414519008030011077516929319277360943781412499860032886479022946746110386534122546956174840108712422243624054077103858895777436775610640885112405320834596165981561899920338300548155719047339969390759291270957689828782766377479325747665617217160699325463394677283608459600870483040195287594308715908271169491821770903973186808910644137916514605819927694896933797494708582594341013278218441523650593883862236061299201306042957387140741363875624225794349825238937530041130499529389639464247271748639322525094870243772576641402069109750911543161078033098617786851185074797881961089321564133529064083049848400666118440050687881306550924808835950466118602074576046200620480092007062653411099153699429660305298385264584326018262590434212465888300823673199255740023424666995362608121850945311018342105706502672866772212657955359688445357473129434598760135324267471738555669995351344735733929581495614299270080406553993811196772514913537848099445671673609984157962752409230102560851800862534225439497018624332542972838348220387661469394566017966896173402944998456759494826153680220882653406472265684835612235319626172000658397962785563585013037390585013915309235854186226227475057978295761168592770063082963123623427598961565103008314429320901126422248186431131545048289529865176936410151076256323697401105548345584672154468169078714761451907731115096537886909823774570907096747449959380306681319338594634091678799672041376040846320170631612770928614252993630337278587007810933060373738777540350753359661254910689432616410123090001770520603776401336119666749957482791304981830011714558319649421985660146595798823123210605906174423925592219900146524301664405251199512971312206733646622934329413345605171564500543955221485488558939173351689664668404059047695875015038812847322937015861177942286036807538235498021633808306077736935685729251669644280135230159562938902688510838205049325049951202943376231592378297675848788417690292976730206386331989621815516089644792483530607685879954121947324970857475353461656819305873269218231332886156031771309529362158905090219935194089968942428388125494266767775912106756840906055413167484020294686155392499156025698366986462976189812885403353230602909297410433856601635015197702406922371156909924469777435901450700714135514595163117307605701929161333408122867117431225366070906505884429160945380979373412301467689442161529655077081507323216241423199801950500424496868865558142768852138327715852021912663864487306831798983421313834056414292513337075676649428014940740624221166126148700283083114677950533835008672874742276582928725194532721509242880490838318100601051061542096639195270257132581001020642149768443299941544834140423871580314908310253916739945209637384725302685629212507824811882746421933999278779373902497146790844596781280999243566390062003115376057894643461355631835056604647240967809276572904250184828075746478420282695719506557094254083910237494737079269825666544167157121774737876204046918251792654021248319063536434543986702800395515291496368625463104179837476229125909427860545167040383067744071969535468756759326267942717026749024852002323144676925547957875767982836647895670121784237977760474943040532581820101261712831363655668885231627387095961736993586536881225958913980048870875371275489345699281671087372397573914940913659776008453294818166048280469616391894926693116000726218391759150899667756409287560801884700928741197385641418191527547565436119256843763119872433801524106391534728314887626648981861205194030848537734522568374427324735302961898208529202212342164157522448540173139004665870974229985799703917153638814441988543412603992283809886787697930191748460373008544388727166452901409208010334155962563013834173274076876544698762540569701630891140830409064010122145129161270078563046447952442573492217910043042353663796242044156653000183237295949336180235565064303855960111563390480660241639720755684152454195963582235605130144543838744368179546725333981684596606030334425207054850693393493801304844855782466226884872294213291914355294052217269742693242946797772014955683173013970159201818391552296480006535094422423054246780403388322559277195945852845601732804209554468358885240620947961873476345308373291952962008464320879066211938547462248588783809791500032664467153218202552195550162280998342688746106970418387894615660449859755610044375969504196663429278411210509730151855953974905114263593607928081313431951832474444631549107423791858556747538424197791493110132204808260627734677535921957563560292836551264767063161067171963694677915814754475318173598519874025219739941323088336419556486520879027919244124074016087362619273314663962455859820121049880422686293462317217761320602811715123038241884884059991335431928373671024875735451581656809082537762464481777814955066199163847916788328293998046950478674272151726121550889756604417488158051242251964712920385818508694291434289221449573627820345480582616770497875014450977129193575737134083214014998967235821161373962389851879128027979233652238801601715903834249135535863770030019930805953824601470059265638120069191174594903428643904401141865089984618161291964734053518594463210287364929498406065714261831466505370339738849650355122660727102180723631526774283881786036751215740016165793442674445389508398557492816901167468559752725254601487281242256933768851889099289050930400839301068698137468957321109608912792149104935756211700725017845743446799648501696927139119935607069829447726856466647087041711350323120082518075128972473042861781803153762356780670385640664769011911645841569893934043408863864297410913614700018917006384633451109974077604965811912540734692900319972184993978227026722882241836258253566036542366472803911845978399513756077034004439127356688167657950985036431572958910200301909497292005190185467727119189531275514647543452108668803510235928264783861739902051565835431033753846299949941128546109531206251082215419435503913353944461410604375898494056479005268341112240563605604722248261836231079281570903822251720350420817118036524173739328054504142412316021449859853918348622318634099384110752729504039969873650126977583446255386234444148954351433282187227650705950975011095526273474960701162224941853144773891163718063304712525135436174875462769654128749092209650341973629958509686593505263888878115979822693661061768489075994735953434685589903900420808410885290102113812226637564709313833022581989448098768982695670851185723368709792580645247741090951553269028720595812284313518430382973536411959735441853213288310871143186491527820152678134773686653528177590053690217633538014799257119452850461996214487211004858730276650844522669196968092825352493463388573374308022344226592045615441271866469971795945843843536283206689561385798211852572561871260710162602380841781438175450196277664342128491299291232088996713293253398413596543503175384516181493048188659992187438311981949623423713236889536455526644404057562729397701200008097178637810474164902549397602585463369776519017035877020862168017991004722604650895886234612587743050892429050450060093878394442467972134589242026862464294754831222732345692013210993542079138350808095225596614996505440355333963521975954427741711437543855435589135102944937722576039254356939723239096065453039617316783354815422859724479679787961975037876715418256651685073645613607248263122273530471541143472083291397758776421649413292492945828933821720132182272123241582332399493628439153027769221431676995491731687610546153851324681038814613300957135772892110118172836627659109464069990408794456669100189339866093589020989293706937936182453933433636806569120503258904210114711918782560537488025072234211092762164902033838286106329363798976379790939141672137161504187149815756720445932584583555151788015269900324509838396848274805150104120223916456441938489863498476489776482121713415461578500750567861831424002082850987455561689301135260055607832464910597192767580017236577316891735078431041060916761921687566983286984731616560992174860143597805504007095591459691987341810111180889971646676219874555714096960243674476287464231404915149072375840811874412517040104357304376622381898374437790542942208248564148228164333273748981451875759899190048465926492792707985862844321442905689927189279781022060642866130176760642518648635806765508828111036098517696241799135989285549293165449802485089669364787032252570657901852709996359927357981943366374617291118972144977726106687520047971047998373109647106672117522422779817562832270569429048035690853452935449711294698445906912814174289210373856699738546912280135618744485220004775096683090856510744249788978644854214683764579652127678928064654739860756117978080284565445741857846939705933706034402837344270876528048375075838097089718797709660160361713522669468449792366678736089254954594554325444608991978180292278778949079315521318411644037879758964354499114496867736830196498064454233576459751993223887574974108572257483782185122717048630105258421242429312062785816593495885426632128779128572534426960125636067594738921288602574122749742464234658819938738912189657608434697778311555837818030887904361389011328619926652326385890510865003126595546298475209090794069013386547962211385541550352749681152035113777217064024468079057685281598046196220594687992639139333320682720802510917067759772325183868999884491871314177197288729537311491414585735639155014711351502806689370209867468661937303399789585030085179903220281869239520696036983359210831716176866424080064813699196130782485490767321698858659830889791484179980375857709093784719573341339975059845111403290902285892706940324511444507130757704054229729181966799831772907750578308265709939383007803275389048824192628966399662856793152048026601057982965713976093105361816778712469136470210249716687945700436684670844314291773360120257639038249112153793573212284592129025865692547672253838994622038972122426416653045061559870026430688078647001625944336432021817163024992340493644437313164642380887366683545354092795309225995280952454574207856363532369230570707775363686942895802245067154107323723876219697181573240679779455323807785424656741714134195654847347830723663041640923350876550867113627018233941431359266141253247693169613511772534115178419160645271354111574852073653143193426822848281954979614479758609566601712057002855673261793817658934315322868003230934903167959560356609706986648934369215015801187135617587999108779670851285512947018439165054111303527235075373581024057715547879215980365347216909634681686475685261388900410116042168528562603048028841440592927412381580647919471539054841251443989274744057347402972673934488079352054946264447130558518325013029275934407597856013364681982599760088814535818169099414200999487862954838478499559393444305467982354651040991666462240285169384349319227325195117703927909999403500737968723923631128965850924832076787961886792070216888548918167636707704825093003447896528306765277895739770654279957419352537515119837063875031582288117210510843257092911488875834149898463648126055791930576627078179600504218129290897854532451232839293097319376563033658838293984921571275084186648473865368812967567860174105541820242774981652034700295464192762806540762033413938167978874762642939724354875862179729695435183939638627076778087066200721898235702570305181067328844663808292031120915627647423481586731604076301844953950308941384415820157970259414027724158900061718621594045391084616433355531980619714978284186897659750239762680236321770723503112242927579827770279333738445541681572273767560177495338894748950741488843692803942468572969360582205741054096641540136857266497127735454396934699869995221852592780470967467372865947603855888898158394834751106645678481641833197200592326352421623563985081635614615813315634841866150868959271060747069243110565652899451597533152186681312387608750506311923465497159944194640427566724957340835285282990515095454821834113200469944847593074408213490093092929599100446343965759780736193950483316402806139123774629941297816252985678870176859619798457088378382711896629077899882818591594680299475722226593832718463965862939698350256478850069347893920498283108399181401395787041730938532945561819665557743739695988563229845411058157224658458235823695300776375449956116933907907363791626768383745826328666463710201224911446640727984585195700958519811402894380671442659829382329373225460174742114395502908193469757924458094913266290565523718485983881017319255563659309560561460627234310116737577303672873091608559379918475599411173952148060432294398469512964110354207263805190407560097513612435515223381398346591566222648980495772503571333727501448824026798857981312578244425131507412247245245890084796282418820337565316582166276592766433140475047094475384176672321958018576057756365696440636582402283405522647375910628302401849660510913986145715731471152641603542943395648679650508722925129637027558678233790833187957186206498040530521237544256913277866311245320602445095612323567013750486439605351124555882611554639870630008733951261608832501072590945480794708800793763731192567759617461706926795629087456173131197080579045771080325993410078649499046521460484802237463452076150862065759656048035956337199413559636235000205999598123793241217764447993388931801884318826898923622802516277118097771878290559679191273679500141327597937674025528754572853253815178267199556431226090308688439584329118893955076386709940687098656037365604856290842747737295401475123920518180024323624519039779248166444543029961658546659046563185954308814639895674979656351956645242228233028504000028967032923172862389587012505518499052464588254693166813681767123301192468689298677467116410718952402102938644776140145015748711692384343009067667723565539737469849482203073301039906460009332677534362587650661118678920553704374522092396701669423151899534552832291754297718078308860823792663468995073751650789878953920398584623953120412258950352853416586986912147111873555512016604121126574590031531820160533034841424022728214922940775349377633411574467034524930064823202607196378668596626952517580109178255424071938168542567432830514963794506367040263754450248786498197276541851670995314684423585238307254966219222460389452395018007603639006109631816600716986912212721725960028789569919576980480301446375109299429831170277677348040631871864572884468421950108477036908250147007107221162713081768610642719982436262137494135155815103198602424381041497832973514767204279716328726293747170290572084161152958720246957200763138180526874286385585279605215070411361825637910835867705981794766740212762276475853238766088951264108917036649437677925923303134901172154857360134098821526775103125150014957641651852581579172404963229298698549034649974167349577683446155127689788854767538631714033420499560644777672025805503861707159346527806125860828145911884407555945027046658327127118039584418986517797815117436583629733134246814649278668353072966986188532595766473202347687844239989055043530814791476393074059466548489173545453516434018542162848747042508973907128898697047468675827100683459991520466704116129411591953247244148849201191902891312964174518553998064459105278183125194815530649576356017494754059765583257144253336913447712044939326160897479369788311581526491385645471741274040145391221407457991083450274905832188388979100210661678737227501651822901159966972396683318036148953364779508812322772603218115415447447670253019033970328647031005756116402676360800894753325819949029634640795296024588534331301083303299991065420268648156750391668712702982596868434701718087527741350274560590182001984466837831150025021311511120267706222105732950599957231227094935575934924732971315875687430813858669882552361662517597833666839557603430585397266457578188773832696775100047048751427899697299771197194732509440090453198674027581891684508449733687103747428214092209023233615995304068711370102028945925198545513807397030716259125429866080091840264236477428051695445463730978467104036593912456259729843340958182100808352645227225585615409163919934850483296855792302088298109834027292945677919459378372521228835418023172627890217060879641226540988989043839148844054939782684580538443490672803624891116132314087898993489178560574554101932501855459175267918201559432933089147849378327849162799778795074115739730746958263479855379237973508017162647690350328140441812316598714512329193492930263353546042347622492644329921798213026497988024333034413190442525036706935359089614605058462774704500022389685991293612184455738391895022868823169117399366392572684744965299425355799290040823890831780709392592590418764030934180704600694264663990158244405225225249996305332275725935005624867300145923942536430747602639449812396435029126408876198977001211652531982851364861137951494935720722299623342266047333288905241069915249883715756220785216887101804123127654065616603127493347081432078961785929300905273669327688982400090460396693047601770590574419113382080097635230955187782461942095852565649464243703335332654948695872966937113193053528843554900600655176334977292329984477212127590322018697822706533758238236537268826391409463578170490611524634025581733806862340580102473568090725689621025365023094311019509652580987249008957015319694412981012117010648877160530753347391050883563197810363733103817673501736672235344937158125928223996098190695594459972019087046543290178345814184863236299489207921221302715599416340410193468926633513289130538663859311011725786906699320695361006283408822427979764849943218573251898870500118999200121247252531721739538681159400083150874657476305938783755410394290095152951822061133981692952577692976022721930597943210665535417097798292450648454211530191116489921369132998241547085676804490514595790710407360511828312322092450590281822337655742690228116057800306793908040776682438574542901566361684306107107374497173920096564207966229072228050538912442349126282966184132098596035697941467536635742619138812272382263557537627122706424579620986373431166390844354634203612173858970168948956174463578315916735174783328295532367182514629828736553956282911024486224407369378709321575370244201748749616395811481778027744512337470023961511161046689291033166707170243353377393521379171139243490120124522011661842479549326596252882906784584331399241237862724116179050580416738505437625674041740970845493714789800677824318481812299453391749550094132461244505879423024156292820530377100538548674887021721025269499568200174455087245260304072851290721773707201829099622187176304867259565168586534721306563707531927429932289592950703660923569763647380470801497158677760119027149343539965675075328416920189819594210731531838699344414592940964094641430806603676599787759407524765517805197187448585584359788290507869539665085017216301539000615007491577934685941429150192904165405811051342219554620481457702767143654025853745557595388593566042048316126307981018201670470650528343372658528597309931302781626182708166573832048211162049816631083692262145333222123753271860793455273095620189332285255592383900081219270403510893737530496487524172718292410529159065895104472959036526559728109478486482037072592491280054403777659927407284218533522809318886464812180682428141595059301385571958707101133443737135108739973721141913174590851233082005370605586244994366885564600090520306426399402596595976757078656521542869659700898221144733488390125529011976331691135591747271653417533322344039411640044420010602021380291168011088583726549288536846608893448365425178964294748437005898959848489830686098100557969930005159313995904433179717245268905182480848521108623194751874527305386826551406742047114856328521908094225681586615370022738482149667279670153273557326253635931880267872515923816266137884747670471211594075692490016054570098561621169094515362188344034069329621628436162313257937148691788030295251291259664245344219331075658596603324657647447418744175233476087394988699420982985049057424374363563253754804381009852459719511219800017622040579050856762837750541850986114345064293690146263490423975441225241624952494294909091938309581165301880870279616414973257174542629491145372831710672420828048009843260385260778125632704533737213234813538539900819349253133709295474510992561864100661614594177652841592108126413199283379138715502799813709078110060833946522011129350800477802403359939306603380905364527875542796255555204105612915026264648930119393536691678648855987572923586149964481595120688242764470873120541137160302263370905362065047220097897922830710735039204716821840685211969670645937070326209475836876471916714360329747463611135650291782078312471162329923545465016006020540243858069501806514053104566705336973712017424693052625994553595267126667711908308162637483556758389128120575387207407219537296175164914542892878291798911042309573334680512913532172967140142032873745558309315059610182498064979933389671248994605093855383855172563399436269774710040554520648005631371714832998420979319430306432512791374018865026614562761791330553132376938638883282134628902405808324405826871554691797602847286182697383648308152793241072550209523339204027736366593485408444150451516936475692307709178760242503895601251112806968912284366241171562451772082258507303712512563655119021095808533310947242252988837190612876908297890779454732693226675777063474952950668962579382303023430649229102536109539310917095687547791917552821805061379492092173347722357312640507948595640863562222760265210611778850963910661503730714783865657995350567709957243291899230201506546935540356488692259916279740978648519834447911384770860654789998713812101130248658118727085592457267729831694363936486539174356559882548942301012522235970862905225438650774269838147204023041229236882008982784820702544894597806601544389501805921248666199534045082520375642902770325616097105952971251182486150049860744832093638913071125154641405336819834521979192268782384738669424313863857359372169387461338515382799052939400241701811595832138766049962994277171135702300394241837907831729774828753236498650316835128585304084140552098002821496996550865739332889272940890358778044119762821028192432971905985329935743245343215249179420853496100747762217771994974327645592986589481722407585198281548692043945470578459932561003640197298617007084660151385164238782684309263889552656338806217573530962311843027846504787617034398119372990936098165606965699857432991176746052480180177437865778585600315934091276137807000081754950088015409526221337473659300074669250635325100551541995924424270845606606951668843846991025913081771147277230538188327458435783948791390908335486179366208592507526146004087759208761861665973548999086800930808267121656392829395700839525657747065955048206625146994510620422513841855947486094886038332625474804712931562699335821944024521153129868665667926010808297467703116338710300420422621105598621802923361579225269519166416431296375039887250852021067199861950543552560236247188949310592718210774912646093373962940943068519828351278969280088362507228976662955371242240354572197103582632525895538861235919783906204204285376044852016384465032981619768634730945267597066329557656780597696030769007320733124026126255302056013218034381624024864525960718780734306439262758582014056245419682995815098025868672452198123817950508518028563914219879718015307314006508667641023277480702651590978575292415002108600998500988898169949056157921035959447381520238094967986255714093131888777440850045751007702551746225053985998667269369775823325013593366399676596378399690519694506953231202398556965051315996874624070542248122480933184833391113893063284609466464716669102762275864055433908004492443697326556313052322596280625912283322705718692444045918687441266568655947407798195643035871453003598438173103602959671033309184664682604719729643640611409050902226233674593291481604988027998309296112870313000311264382709633610562253679700211743157404666109511866161592984242512139208913428409243924876956299844323643182258768150374168507044795902168354705218314277296101166469487847302703793628072647328669854323327108008561710935357486865201505725085052399038821702971026626835099608378717558805823700547273396581498841216922932690178310244624604595663360619764536844365826839461580548476849350720953465041351837249847758012463337136974802056743823492132494598583579002229025331435638653259070427598689447222383787668663187758055229514037824381859153901618890623631467926972988232453717183300387043214737845406429791973758669712917272855231240589612750362859693899226946216665524514026415783494581731111460177364702158260891864509771962804884938679470709525549916659995338288480009679134145925776782774233587578677919049064063663283006581729682848418284583131548852925029362896240656190642119526072818746032143527781992609047601404885064061593057744898935967188479376485147999982664066882166959342502554729275805320385270399344931193328214018195674594580154060864367788399497662902209225227513930669748350960761950201699281559113851355022263440296772417276644367000455267496477431304714463899054134720093843182242201674002071165192819869752152267003248675413519574374680486983801830686455148254971766489570192260210226338141858452169535140096466197846935366582859282835055597254306111562645614087351354680187579684243954370823116947634266653768748856882568766580718142302406148191812009466944860605143354816071980550338436024599727881211110223046943673348970117047991312875248430667432648828125910726355716645605517136037582053099578733397666086589406579945790284379846791033823050238193588142230567148832756762301879007166319052813759357979151675905779631871868960241634979039001945126679217407451957987448804602071929080462579566954557524538913897014790578828401195017217510847473058300816421282378586632485994556893043938190074916465638274627657834671831759691951899255299397708232189827133517007312314708971123422401237936594819282953815839741507228474143905227725358494352476118013891341400389432702150567120199599153292974985963359343034109340511255890015749053208489298978491160226240856158980597032904056413036186459329740318431060219902150568755846472114407449891471719667573642975948586524974532219115661785971754796784043867003043312361223300626010592491588411217768106109061141237262377405413417400358561867469258601261397399579179541697093055946455252258191261087076257142452117518013102621885793561027662286754952477201446546089038476106046844814657995590646693571152861477485516445381248810016944912407327621321252065367224655993027274352120402957074731564765608194971498561667189464407125094859686330108304897077913212459176143894253786092363027153036698092086160442663567621767869268984914359380417004713645104568083320939789361838758814403381127161058614247021295565356062785646727212991273393269477082522443779388817426253464692854475296283146352375458391921038803130009904218823399644791364429223631719617689062393926016303375918021195767688673710547543481240185936812376677466151759003972814927553264127843412929795670400664993934779882545741310813939465415621284604198117059567014051117747398721810285656525579014020784884168019230973951332533342605733551013363177899530188779730256497392520735954656776854525158495518386932121635193955504766869267391473344700463949483511954303771354851269504814522492155187580989283795660833417846713348321323940319642074055116259112301438469668530921725999358801939888808785624830569359414076318875338238981043695932122640941176147390419179593522369533957501360326731409045009679530136021407636778351613474825425117972650860239315409931991493054214041764627771457560041757953561337455708691469752691953763267391004046063731803693019229782956263450075571930039974513797911711380844970587185991077410512263910089627008484340844469687329147587676772036184001079619737358592475801774708483517294720417558242792160552560117091809839891854816549074663928244015239561419309109145383874656981375981748104266442293587278293969269106491006498502040107101650484205477703856041660417113905244962670713032731571959712880022371369592767083066077438115863381334775041987845347303777227825703382177762100227494102515598294266741602238498936735743121372168904730545931747120927737162228060608426720935132478957529362235596831582074815605553510534583468650374237153429117436947799974318414418229108858221125691691767697502874259681622696317145546917662399290526071866091716632030701920127505920528113210747664803096824302588929012283021569332360393977120479287029011862714642389505385187490909160240499742343550523187141178209370232368824432468693340478144577043224671742109150593361005028899391650200234212305588396086838236957812499653369367009554918022802794899831675099037073122223475445204334494629137180005588982002536998920917508537662268313483836175331559827767857766468408588826315044182180485767270404388406362741852546955252378283732356167472314102231365527305272895571257751647838991705624829969250153291224025084357003362004281167178544383707509733715557802833501328277759973272786775224811136000573830207236325514729025537947840710768813265530901256250204566899892405969961685767006948712274481286142225567267630430874369642020587792686152536229288742782945386110366600667252349655268187910040137682288955176094230640970735905676056793161121044108176326327266003482790223186045387194924063892112762468571921940560937056712292420736491798939976279656937240616304441522526267807073183600750708776466694926263351255730844312640328054662083631631880406956191816522318392495361943932397703948309544656713555099381132153305042788825767167568255415207498190646130039546771915217968326010355646357766884278240493924736957692077341440248270487206311993568957537336373666851990179158765797857904005582134451652577362703622316711148725705363739645460209349402816962052559700164525766887339332658571283564226508317489111354349801131986687337236795165623532214932113429745412406500588127371978354777622566565129402246396891835903685589641796592880375212029801855719502492407209132222513335409334888147679946452691117168122916540643711961426664101890788635179115753396402092147909664301854631171932597638218311768610899542755157339713443838313636130153372394571375400162196006951809282158177677867299405216934894335995818668501185404705926535114042934029641607014370975354668559942284849398357525037505160619888422946690326650864935545411218540256771256643055533092257110434923137061058831120124463765136743749760073985049389630530645820118169903303814401482743050589643551294746214371461645704179025410712370978890260650412979762187976342929100102740231813616213366275979320063078080155994112974534100959026781567868982486483528193102970368712074698062399952622554539454286734810069833181918188040669805734395004492839177685436475853909859444136969859938875095126158829606591457310268187240958037981504241567814061492252986822512998997008130985753989710092767119970820905846448495688820899985789711145927669691867599597425587479755624259286811393655650806220157036686226173366909190264053940091157561823341846673476804702567860461492138013354515513957512411897427424373585201592734180438856988791901089479042613921023192597788513469801688914818102838826607885118554643597708883389939805509886619827947734010797185012729092020778695485377774633695734958543363615269136499464047326937738485106062012253090180786032419126243742876340395779240236594632641824351105075244029615708686648599841880898497861223852882817772506348470774208592272315104020368283579527621738882964958448627978469793324475223416467104768857277035365000056265295709529639332799318000570193669720167235113830505294238646549588993957550404760683238050819551427456974233934361929568806769344923555013392666097745084663641965882680898789595046994244306150010000180343128840724407222752186647825022819657001752696099868941214916314249294687911490898546660870931806830855292870489243156334778239806250044669990973149284362175836491670870903585030901329404489481460636386302639650683638098962473486386399522855264066365179469681367392290504361660730435280163439080935103845796803240031165544532528892787918158434149207723307575656942711877132592680640534988712802814035990605462270241074991148394938626283621998800383634365560154396787546038343428444678513964902211508965611937022803823784542817535378104758672846317533873066437940508599222904142896865394304216117136237615370841605115088216733927034089099760843038138293891221403246724350211499009964180707121247765749121002735298730050092595658173220311329790081071062006864857469108646994191236441485777717232599926430265224951094976633409299578102965010586148829067188502477777753809398325381951625829088146685335839782349192696287539812421102365870055885040820925408290722128128619989259227904051351634377766817076675463541654293982452110723597133951081138733858189314992741886459453181004428037897999793386556993028291027349851789963861494259443890638301231220627445138716949532480460963125286038400428901178755792718951235652544588176079378744637051775502341028744715212849090791734077985392379797483790823713082053732460011407695248318058254532710279447126764253271306922114549625855733685543195121399273229700159376849396852433872928641456765175154483919657234947273470776930638905807988197217669710913096922277594064105841021772018776216703426245061773961844580618639276189405738712141016848551968461612270378072705916917153391599417412216105632753652244113928191144769830363757814552740826370975508607476610541295569051295996444140926578435703340352730406694638687773969790264229503072677251573159034010989079554080873075369424020552329539369041976433722909451157014412074113325526903433066831317995347962750434313825185392883353313124522959715496154920403097230820569784538136412772795904752705314717153201473175465843591178212222873172898831909345561516484234495881708156860737379043967353642065871898596868742611512380785271410324152127658643967210351025546668533753634750238008306090012576307847601857839068558655859389632007355688887874581832259246404298696691940697171681811816347740892591144760741936128897640717833578097667504684408331039406394522467660166629504681483094801285305487859205850551378609544335938001633263856096161681859965662493429928650740197789762706614950461735179747403850297573604561789589322231026095483439423862676042425144073918013751349575643443439484771231598422996988755779791119785899203720918985562231140324435812051522009203770915097421782115375390770379095351494011399048959639673264783173596942776266415977904422459949798533576851958606833351915863534617805591598211827667164755790996603304407492048453076894591958892975181279887610403565424999514689410741210504468523273384163709904276371165874248024421101115143222182275886758334333731946280202267380140417318458851148987967063131884451817460761356846562509466834194404862250445136580820401710708847770049385806765652018262734768347478375252038000333439446650001707172402022080510473652045295619886283937010712078840538756807872617822204093302775215783021235097248542781210120186251709273017592592968541276543849077502021736760808743501697520654037186949156468065568414800106805295433006119213082806310975197748500080721733096163127129936659118991075521892505643532116902273635726773678423206447943975840988381927812592846795892070639498400711051515704583288004476764154973371334823535362296650312690137070945945792774667966530179118226928234930677010448697825972232484153106736819016766405024543823730955790353670526789476740483789294162867794032249925049616573555069131206573038719749113940922751996829724259214256028725064690808802494914430868616989581619808355367620839505051502129993468549678942000277463442967957910913329802507042148933432834629076167228491582477704778988059756102967199621796049675384381466487829594037535219541304794059258810709554693984907947487534238217313727331612899903884450461115434734714290632285108437441267995677122599032301676072498366666319691398809332167390217764947174272200262897705668433690435551085147968636026432813512940392607551861087318436217241496797249201612272322421537743963298396725432956424537947833552719166693303444941669591705385526566831678221914912745594562411370909616418891251945720922876679696114920147649537249806632004306200652283826740438027996194817198684695311231585485734141516560688083028082864350031989691164960726956178601684145429621295442600806011504436592125108713662374856122881599485142677349874992086187411869282457743008882724694889942982617284250807193371697466079438113312937309992415673892725029878737812009616402355533803549181089227569770722201230435294083742745725061615376829084203750154116911607360661399841581964311062027684713111822277747848745196515010123515974562285269056417946023847144911541338100208491672197892753100279969022311023880080250715808539688275423924472190698688853220407123194279553083564825385683779661180741924724922585698653731316911099898780262023380163078550111809425282712374157963634466016206738558696903390036636409231215981248248276260521274569807630668748851121816391626772112588314124706504504080671557288838116255067161999224923621805322218536784012360048417298764646749755477594826345390106536610383475911582039372876734498067892995751093847371000182194338776457147010896630589476984727281109934091574736624688213996690769012993861627988470514088116559311764362120692994804673519111807700109817328564649720921112860379312460003005932569118374788751456563487635746617647802992898643419963232722645969950672339002858735689704984558915897801811143087052469836658284731965803118409467620535686536334512635561841950828938788034553923651620365877167536660388549383534699475261517366118869608732455549528303667429331337223539753321259657596179179275418746644091749963136873019023978888881680405423596657172372594334868533040923792649799704440448118107558141866974515176409355257116269985353910362156052516678179963323915728312729911003954425157983022876289893021756977941318097236598698094048391307611845714336657488883501478510386215463503740165348703305563833132104338562281954553050577902283962889113638660336858754016057510682053392361418888360798666089766410120640216645476506966532834435593852918806925011336732975792345478193021190911814864526277113323578000849777685710114622607342623226212153758688822773786005956503752605956803547534189836631667316089783096618299365549037881602765883160577512833212666352769900394250909107395340766645468842739510369369848888561016849112865101725482838111885649648786372986526962323321893730674268378638716446857731113087472962349081821188291928294398752517522127064707287625078307327281315004613586856966607416870329545748945229887825402719493045130696066789506924031931785662123844291845090039878757917084810813127246204479312530308741997066010208639043799919042185562152166702836452671807645447723341230787779272243008999454386420365738208617257400435273317518228276879613586782638989004408565687562671977515621181415334359996687947242632381612571514846796141385869845003596870371479096245022168228940368336046067203370081202279661690223456243897378844424303376783546818663763324660655533171859128447970366257450518000586751903926710723471623022105947387113673023652055503308969664222438144526174765816551942447284755229041302215636070166890668808556171511189850111794520543277563294393933113423816351223168645766888869229517706201826892186187814970482499851682822968565477110091337637609362154078833687371528738582035680469250827437742946734745548220611896171025197020264298721646059488126990973412028122188638057752317197632194856917869060012067369609506973561757815550230399595618031719544744722145435375909131277418935742720697783886342462633343714302170172489856853855050632565723102873281502004370686184481789051102595624787809985141336959955574042253438408101390099356754843665951184389949289718925078606513431664425708739973688463608668038992980166763886807664891019708900415473097139157101543496088749906971655466959167790868101933952819285199882623363520790931928936211023176087835585740905777258512499017392126235758597548441789167583255246246074586122030231027636487929941214348980425141525721694683091664270669964147050721497514400232151441569376077875180431646338222645621428663046982278809437564215542681529369369316460028038517597021157175407996017242888095701109315180623755067586289090670174903482864989579190979404508869121176990372248573694062205123905227879018984945084028055983801038472087860316158562967316861190895159735527075885246619168061718363346693775699485675705249650550624572855180239878281672432538334246865028337606005755805535441788966437382032829926966431662929347037059516226396136691166490409270549870094400045853764911912857019190066730583444726574443617850339229306483968942517354895562364907519158094693305200190778524368769782001665622542658355826674569648208036710474607952727553132052016441149222652142599155244897402566209600158906323997796377086388642742844178350155348670146936730080252452411736808742448998933423167426501627337614355843807561169847857566476261476287788070302951312776942259467429543943094320057413120170585629689041367308606973753162641014117668832601216066483282617974950363956109599530138446084430943791232759835385804172423114941251885276723542296019851129159892685049122358787808430978311128690156764441380258299275008389213404635872082730888353697991222836988705537787438716496968548133355958889846361292971000790627060987336319089403653184020985022964524698403328951309865624744080325367758392583963533843758742635931616649333180657358479362528827202963098763505977087535669832034493044084304233044383593407817210375202758139291704628224300663591259270333979248159508936008631706871619247495010406435918476782331433689650605870873567402446939337769474536893662088828437684684941927576438474156992595106312125105472471466198161062941202748772475232657492414594985662877695069432619739676322517046522413492378797349704489130085088358404512249983747869726892770658408446503431471174525460505494287354763145806388112996457957580664341151887387764116743666917354611638283897572803016422074760177784275542747939270120873718000818999212170026393153318395825829822477657885099499713182002725149087260067433652272240207471418974620531590860673255011950252125221466556014044455127039150482677435335919173343779781289020440005806970446457591935705978539191607029998687092605024417021384610538488961530938328625290545344241686703262289247139289331847258039195584169873888002259449117175744948023146251490129249627606887558492839336890236129261454341411931561484497015862776118321630975667189368219335163281181989254821349341186699818400249552932888063121978249815503676288308409721237931538326344901925930295363092567046011600806606340221535723183371962582756153238861620833448052316435866663225122030775710642641879198375443874767887924610793522236123788382149350279177421605049753424958769118050405882263562700971418040824535217628846332544756565429054565692308354515071301002303526504678097332912122981043894606470526284759924123623840530777431870572219848699417391230130211530838490961706214373953294376153249373460451143408949700076862011078874172879101792951409617001401335532107379927109778454507482172864545208584184364412166883783845940429895264956486396872247645405075444290458185222196720070786454953500377690940623530100114095192055491101166101904699794746093318658515427612687521270683275256901872835550743688591535903193208788053710309921323119190306584651166202216923797624103966040002256056307053229572279733865926262555263976575978114477528867880968191478226194525112035910572062030663775014296302668345441258325014330780497962010346642703107151563636563772911441520444991079414408104122230493544684360042187554324047302967870811824385301800766576852130572934409803865444520372441914632542747073478504895655079658022055787275959770653233788299439552740162174052452317525985195645037304511375132433422173665057057502449817767363233267737675395324145968060257370486199859952131421418634243651612634633480404066851055899802497964335532867179015407362773507740335795926190331788181749437111216995276223654067615653191749028479813076032612134063787164716867938115424668689304784898939947551779502588913403461004316893927012024615220751059386946319237926666406712481896937147830398996218648046455058071042144776926656019885924909152817101630835279723131303020995045320974029346744613621454809090560592126260870000946688454839821286188039540084902806778325659735560967408305887847291801639810431163908704078437352652072186243133973483849740150945742443856958886044710481133946314150202259392358457902846061735503586098223242264918145851358937255408106031727884631447803765790858379764175834352330593072676181905627443664771679962607387224401465530626279747272653583754952989544075137031738897441431079453691449064131848680471225326264181832131778557279369996367276572803818707260593017185228270993075543263629981723319947911383821358982223310836143329681406441431136251494295487642214161338915045126191559528463154419560542034951052056756721147714912353663789099852711709539880892372386218772398547087756468333784500298015789457982436526120907979377950162319264148324244252500053486227758865509239673855596921629810827892199364280218696478960309482913495598145657453116504511105613816910587818220070749681675247083358116018647076761190465817200931299279442260090938087731095697238852717171274482407688383277991529918223608323513729396259410339838094448150992402362167141438182052931607371090592918159717503969456639381565128575520975705419939422621264872395519505167427945286101179730755021645014813952940840838291755207678877747455305909063638994858907678964950099337304859409003106820783768366666603108754714532740129437987735263831671663299228424124384765750624245387468839026725661806230208760205919548664635009959913731288426381053852969402542595510587526819049068374917187410895856017908532364392945064671822458079423284820104489504145674366415638533127969219849453493719438891024623236460323449387754688266985128541719743647234898874793106684527600146730152756178245183764147471295378620293544236947341000463487521227448737836582762028730243453125776461982932924863361178212846634094594042866913647725038349051422968388875562863623082346787419245125034211189880570967960285836034373199081043278826775954898610841818190967094100183152356169602284744371653510751867761378875828438215617376467921367843289595857333710288812217509681436963280178055398143579046519688295924381850790362277420690646902156111872075570788017112015317522666100661390310898374714736699552258292450357008082278119915805915009504382707324966604322764208446428404113910431526468593893325120124321626805334640840839052654371197349163594635139732568952667285341464158212930215901304963335115089365230122069804078992763681462096609688650685256442962915958231543542236311820624625545697602599199931892117115474625666058040432039541471306764512920171122514765054893111526968144263389892089317908666398011359283182360847439917171495356246850580792894581767409464453762596917308858767890625276547035682275794038740200020014611028739877695729646629920374286244245709968096653712951408154603483657386038946581066174890817503507448672907175189659386187663326531107611925108970045700045580552558080598365126837076778980942249719252040223276630124908741940127325795366557774868493196323152584482126080717082587450506973426336395950111978422688874734987192900900031792537583000957564036191255153958536490595829510292178800208343460981336114512726611720963504485613349658282650735485849740039659966731462881340259070097292179021290206550071297662272370337269235967651627203441097521870737910475888703488788531555670089425417730684106728848022949050546340196168040663941412396516661983544890920475871284510680418900876428182462471234706002973044013889711578608894625762786515701322290818046214721705082715042630157823746134500630934789488545319311797888829459780234048779374378217067867465706125303854987361150514200078058467317470270707278797671052837698859037792048677612051712448725462985495619824451747392480867571038896642145796867971531962192913302887186888182799829958942563591378600208059855732010949721845830763327208780412108529284654178853331832823012131683666538420261928161207268943737427730281625161919022550544425100621793959844904737693332829348264277200681872135826160779370070788760495222964506991784815709992701283360117112312719081137191817946380722515107535396253286715732372108100704427311307537352391427763788458253897708591078686499462072025652520304630397969799186046043606123580512581171483106575864457334715675477009629621312979606377986527961845421638778480587509367857629505743053255007096719105671612075657063870478449897512064443826975076181303790495995902867618113582598382733674288873883276180031007699175232155039991275545860053428443731445061864797886165700293728598397981385148746576527164200805737624363094491544213965681687443310925903102193728880020109215405527548138068598338966053458172219040526138741245684443701204388719956514462324438394928892827516513518247227908088598485547916966722047637985877606456663970838765234703676418594119961084259715573912270645614522043749269834395321457863950167466902518925998050814624959574138794253150955841977482202066724617577200199459070984765824379685440967922551366012177252426613930668135522768181936736325504964233391231790634989133835446954254566435624755480114117455394467138005407988057558195516072665815838694840674217989138380644563351095464901911467748970229541646205326888524359567046787975151823853223031634502977010564067881649747777342815413959289408355432741105677859489778650960340047428439602647548988546402821965002072153245439095669141839096948594442714463227186263104268090328712266209307680630022083284778723601081537012175252358903472561064503294933692230301262285967679693230508520619979442794031907586677266890623103965296227491456328656600484790718181044492165279340907343451077647509671604139070169992340569988602602651280824827898074088758684599555802331900725566454070364640739356088630159031750320415961361421686376735127657754887689747802166579078399525621882877550524600816353379490127508294995241826095960268291297013977153144276754428006473370734521188516914031240538960284520939685718368151175297887947667495996665386900039317262240333766336571298575517040893947969105973203642131465493386712696501491598564628139934636640988132030835759621648606815195488179748376057101034170859871531774603511019876009937563356700298539675593710629206417079114431686515041407485603940863568076217581850123725115363290998448620222615752371664380903807716777750764648838825598750254980447539697752797219490555021720042777832131542921822945297714156499138677560329732042139692896728757750460245755002530285971262634382200956085120956077974765546098935709731493856545112477902557682634770734269931067024335057762451156717830030944884023264437655822897464007547762081201140671220372920398608256876152227012268078428567435680704497491008109703575251229295211663824469901213170881092156746547769373050045922243846735813875658853939724181260197221897184867962788665264751222661418302817004015177003632980701175341905553736369769017310576647629632329823676107462473195328506768120173589696312185952304476726344249407257447897464534936106073594681961907547566294738033018142746080622389912642812674721152000590505688509256598251535809957648243309564993829895826135105653160454523676458098727368377268578739094645052561828700222247087698322677198490606126464890844330499766859537644330668581188041156057866935458276252405326470769184937596698998750207631316211060916943800380385310870518220093026401260863475826353130204639478973267278249057073142614712053453383887537964822621710259505121443610244091063053704361199270324632371625304432159263241252697148620019692534845079898007183523989242281139501155133723230013548221976634914107714729798011170489269041070714465862968530730805660712301310142047585511464893540201164260691445297871512426653001763651506260056512561901523187596440733881312175854622838975740822297664130492512008130463413774365392613514830898169091500007914971045187951827122940003808038508312416263927083244920081950251719334077234007134705650589798211950432484083309993729593305936366652053338765159825627006955782622190761883478161448779179878936965358148433993129138580768658125851011016270598862130226760801160704014898599939535408974354845718690174455266014773528892524830512687966280669264322050346417617995461264543655404532751546742099766615631585589663911795232102186810702003040865786967258211283021486166982410964009752185239820702121537444045683505168829436471056137945447211877563743547135847600821447340674268962360946364215736570305760984428420221038824819026281355416376050838258699120047456830255786108905273050189438803851376313445371223071663772853668405726753957243143783861228207246703476996942125255513559803414498852135753500085949061824606580147317059236800635634807405398696796674142967823781380055023243625684697204731805926065913220108644603459660506407429118705359134042458499263284530282679745768770347836085027345062234674138352568386148900322017493657576499454579561067821865712157333726371537341108655356630732883932031025405113496572365844340679025978158071812203482037173697572071593969801588129263965057996296396376895593070136935933446614503844822942070392059869530954713856375814099034820673905540949179631972643843764930270164119285603881673148465786118141282364491699891137309663601313962086299223595425837552850695425621123708619145724908545370191020947622100010412816272570030412519882717735616641104116054644677441219859538542653169923218186381156167326534022418616013879650453319283817048509369165371105371500546718140148275712628625949372121579663246916290147604547349010981933712610520934389631355591605800120404101812671858442347401551157878785271714014079311873947862067324262304284844174639251975130597801599663331573563320639983832918960172023637745073215850395081860993818138749480873404907009248911887286355515333127543757523029799230858814462637793762209098218442450649207192538635649649771891020730802998522336765000437631032330925022782572537514327023674463733796894415433986517826874700430878874365233924448933270914191874800821807179745108663336896607696196964255673553445649308495283329897922519680474957265277237278977341719372151490596569537152380121443332282873912211788806195997287769883240677207487920898809334068455562430780984659438779075653272558187951624604547851637513478386857405222649571895799803488282486024783264692970175920051579016591298941473104048241469303635548479775938149130072708850063653957045816920570078763783895311610500347019103225029799754946700991602930974437714650343138500684857363675626325834190378281511875024442555553916648960714528355132266875554679982895192739080110413896959974079404602906893236924042772973368081018010962697866064660088003732151573604577798284642485363179320548363826579108522278456520748570375049291268387683006474705698627710916396889669180141819528549553355555581532170220964075497442584187910926740716569201541326066081932268247056990384353210200987293712675081234527118138363844151631556050047733077607030354914879480140488625646592476282577121317128713656509824961131251538079431011598769522622138007256706011805109567265739920290819601977836765688816082901463345641040224120726795616446718868634389572896089563463770636922272477168824241705477895015967235374356443485411534644174195724929624719440913446537532343575805357930010958796183170982129727102381596882642419908984543334029914969923491026995295856925561361556779188835927935509263847928886129842025277621923981599404664991839728154334192901279965699956383188451292178676286366866528863216056485821268037498635251031400174988711233912262632620311496788417997075754765048413922184044715689844212153111077915333470302956090553378212625569512911352014927427348923614605617999932236511256224375836781826590674824456472417300478957762762922929714104457815240432174461254437570271388216367241034184854626298620724622809215905618045240689119600366357005725010156548391724952697663177195205238650912495391042904923999273968721993660573996221099634271658378251206495769670954258388220238525175548880514194127984907872677420192504105272924137713473719336962592210227152580848083423972109306920434000124507886881481843165550551360145796343327206014048373291307029601423210720896983495440366317755273391736691014881653718006730710278294858255392047491139823668533644288232877564861480446217487196728383686696548301827389774938387409893078873752143279203995426537002256880182530587547689812435718453346685287134692859705669398302112250087870590391182078894419108777856268248726527955783343987511200876218419150683261849548154385033544330877021266799700918371795865173988879697164325800665405972236226129571005268531862170402967644475938167933630354002060032592844879810648164997564365996102727037554469237656660723256045373214080726482619030439665169840702417952094137903492234641760501469530759927341433899617196459571632715376157210139170515868920146023282487972403846658688883240580414368022908650306991975929801286995844335593464575129048409946827728640944366450843692277710615407521697023598135731762479540770024267041987087642147636549863845850208961968864240192809888729741931301980306439567365036646378732250036977638840295722231609628006879521682701555446022590546730094285733620463754305437257581149101118804470494089309649110986051136711349660957190404103874976090562489769501240337628532727077095193805581970825357540181400220898404371912033509230631035954579454567968830561606038338360339891181650735869247403050634429256249306280019585958842609169416108353530103024541206315628977010843810946397046398412930960725233467114925676782225183266784024623641343108063190765459506932520215050084326709471022890471684076477241824808809211614443737775010969220678368975546524447467256965559544690523356948107409534836426754883773801394704796070367467182167428147516948839632541122403250524855041339565257363370680874859537934596608148568886462746747869115241600781401431304593096244240865519836063441305754752043810876836844493442675993210105409538993758946408536260986109262543701885408103293310794178222368319470275678426683272665066620748165482521224365950920666877263309834196877248970745642912879805653433194455644015357659160241796831554491462541064682749441943928586591082384605575753498213849684076229511309760818883861353639741414788430739629161974543901759833853173237977359095142919959765759536479515705843802729716251948725032943450520362067308521589982907988097125770837970460479826269142885899458266059282268188144319399241572914857836969712712449336637842454924335859505868105735488416467564435767209875447443158443923774762561580505044324958368150668274501672376117029683169144070786519877765239344693376430921507489318033301433262374049552737305883803926398680208964063113403920921263051313612990890696603297201557059014417921719091440137049857267974598790326355425638686820216122618584669455512667630530793227964079351393662578756389677107783692674491219263126109269986908146279845829112397337627612522260797049228931712873253892692171482259788798417760092538692300251282675323203670064155623854500096235251121418023864201203824970974595226442353608445110801272132384090338545141798582275074640159334078562573075480041289661321713651531613658650920921606284128504579684037314360440121210700330680161040260120341169557195846727426772702218580273273691453159028338676754546534960704645158298355080155834288129603530877875083427717738147909128423886780555163234297296225444641248055855057982442708412176071302389338626934707698898288011502879352736986110206364177099852603185656885690220334094492080414926723576440618508491614543833924439636443398992261149166151039002032221858457895218046210175356567052013501686609760474323186663220597093019392472643468843103468002202313467503435066132534865199438421555639283132250009329984644838564664215981898997076500309826974677811053373260481002923184387891626298607193882820949775588351067380053064606589922763448687679417288907852391320287685992383237081502615450300406960242951948940752612519230528431680341447593258246400658999470457304296828518800448413231787490121743453607069093876882385236945317099369326767380521946308167089436849259558193074101780505871590458031281155087283890500054036250224735894898633921289397142960877975243348953257069819235158066603467881605842438997715702916282910284666838786320204145985162602445028828006087498508685606027880932155419407748492860681534804215074776400806986582930521839484597321607487841914522478900269080837519591208233593396221226824416772951219588729102825694477472351821940762619389867867225853871535318382924443462262434134198356352903047802905086366142265975968164278458665023577498891578780072307983415038000852881365377327279244543547631554920739882819863459563990828649479861645086897190013496122882662846938679779887157475393017883774681873254114505693314121729726071266293674985218479634192347014296321355405467178904544098918626952911481519890722992246262123179313920222039485488692471389802095620234966167999291297189485507652999364806497924076458678669654683180840329096419209560731719837882255002232055769548872476682151964590859866494174407262989633080434142572370371040429346829639552905456340390800213055930252436974078625349804101646845342959460622384333598205214412779253311270376640005826764421784993649418610273763863889565794329331728235449360061409242190043262049499525017004862168873380528086013083194577342300618010532584157273723705410526333454546784732881440925075583056517891316890089330864735230933055068632513264294366130242709302099536140541659168730443021507780695959120298853290484306481008888530140244727988144582151905770051430069962955580877951422030478993275754080673614217872476602811235060126271301033399424926662810750321729651406010612837946149479287507131148290121256987562291880799248529435343476676705621219569631159762016059438966424490098824484016823377689771843271879582711881044487279704686424885120390693820159124639854504261919115556161771314564351223049610185227702489759462915909058970687201966091205903741736456849591525244609343633474575574023655035517240379141037751441762552171342589231307241884607111872089163028137227615596001684623971310171736897617097191580267233813699758637040654951732441944972948287208085680384337789730716565034167037191489947038501841630880283604949299141542779817348862533631613739578905465385477734106877511011275389069171006153293097975693215720287538333880752211267553100535008876934274582344819350222852149162065525270801471517800519934299283709674191509600530734859891654144810084037201198828213874272613161213343132714977605510513906808767701784605886422951751139340184513724957126346252756794991953824722136316430169259279004398438615064092397691453033893653115635372996005357414105767746745024963279366830677023601568318641036262950464670558079786290303116967800464627354216351091317696459717458471550413643836385772557057820776185926708540053587559832025241265884697323364343812673663481201502188381426140177148429075001997136945582728305793852993980991779479600017381041060020154043238561265240019821001000481773131819278639953165075313545116513825141792068837193532131086541047161933308743472954311391964963733626087251735793934674890840421591163426525163575627765515359220255638130755742247499529116243305512550304357629685527377714125123363801805857545037802715210962933738863468157151492839545960703129756948649280421114991409966495904553184151211410138125912069452968551319934552897775828756721212841348958998016081927857851626267388326565274483885820373546307036938958707939069363005631804707909164453045637865676810248605153285093606063896631842223110620049464529043698388220357596757745534023557188128265644120378288893696947391022307924092998096041818786912861927879741859186285416949918063027239797726487776931875450997020912053578128277038961133420182469854084400827516640741993192572630887959426329599712321599293458234253324101323675375559666341539757539758316015165120558665928208771641438232427799533905667299347227346385212776760017878787258692215708906573300209714544586664042211614095908090505464340061836314781738069544499706655242760595083436925420438709861309377395583512591257855643664723082034728827773560420248253797533903397211228152800867353701269423607693620035196481773893755581392044630222747469664311793028538817702505088440417109480746164851570349777666957814485101057405124094853920671520807943757953569488167638990487340374975611802370745327941868719506970954121796584670017338347849522031442330566146942736807864052529695577970107312062456401825576754312178309667422086790943356986837426313357855252779080568562432837689920736423011311631079202097636922129084348345643723800037590656563878701993095707174946167568471279478756269642695142177007546665776767707931452676003486260867768876722699423954683413867990515020479653447297698969486652854185213356138647854784745640843239627955766388847497045234623951713655847878349840791750214350111150329493060201335882816980705146654895484026246424186367758299659888372986654469387008233163027883189643493792373666024505267129469294643306417835049717313835441026053411355512063392045534029347147878522091837715262511085378290179531523344741196904703234947500691079702868837566625813110660953155641214312113615963816355418780364651756408220519020433658151238283663945560279676258899696006134492316140944265786249104453415154935984642974710718889060294770965377288912967648324730412835399936496624911341863793391071528429469411887599628435438475020972244895192774140523268350376507526539807473458258603443531825282181671530347770587516582429877847222546139095950551573208349322625423664746787671009632825047953369386791463812790232820250786721921951969658349134939191606490026730721694763776575601942816129374466591690945591856822586023452363063228561536638733344604617162878469764703797781841600145978495801369771879118695679932002869645387557746130800122184011520591208083559035756525592958289828935374646425630750061645545700366089446029556805935791673948671943705370702158518459075066680093477633359973500364038559234629941979219608377035629093136507921704372882370752851631300415576946698120325964479619623129215658672478206793562098883473976064597305318375142581045442222043911015063873768235303015411031861612410322553464665585966647684986331386890257023658267571997108474475510123959722762764861545904516838107970371775163263996861926658163443577962359461077410799666991475695362714189280405497759760225257113402851347566283793463782618058290729379324574892850080605593698977972528800623659663328945537426107641686738859637655417802793601000073397158612598418521439680121489244062108138281994385432908334946390685545763341187889940116044396954220831317646290133640274747078721656118996880568999208619774422340771941166952481729333085756733461279142475891257284976447001114977167764991423301906905830789546541664001857299023967357368988010978731969358431811152544944715628690052805894743014858446451686441880361808869523706292427333606681012665716251536495395500543369961379100673334696530402323275442063943898287306931792965153160270984515565267869511363312821056696030299235180144954811659681505267358477967004548249354972451794974246570580786179074617019845460299223026787817092480616442287363958670853172015568460357559028903047769008664836505949472406986573330133304444107644034805171556245234324721218713872797850369691003763689933444503457191015133492037357203649211890673241429536890737066904022220640133281440621223704942931391917223334530985736375764693038091695034732089852991227759960774484624108592260749512038331690099246126507608363492531274853701434587703665458931044941110793040770077273748217336676598722215386418841104095476582298134983434046302507247220232967850258998910132552088121049343050262790038733562584942505884459788160266607261822633310116547246272327244856573557211672137427629434731187208005663466599775148228381930418576434024253280272563179072164218846902050757113203397271639653305039566477536318249286790159310939106898754301194901325380714338985484312604301634981129107123454305099846638248888831841153480235354955179164797477039957639639385806265080617153677027985376922755187980856075732223032019408213268888895492590523487482895124463099161823435931702644902357766102997470231321020267490446279447268775811984626245651914227601341254564633378523192579140094986813615260005385165555003350980127066476254483778766199711323065472271173975103654158261645714265398169128628526940168503466830562311431074808320272073540311183536363028900714604394923836405459181213237653411348941489171272215335197189280639699587898632806404269167780874377271833553361012279579896507863551216572974542812612352156965882126216246480602186645891497204881895049312474039592954261928533440832459989324055224466233129307288053348763091034908947005977405105881791723627125213697128682971635629710075484773275640021106895601779302517805451820100999303296903554732098976427583585277308595963561973141877053618519797897990775774919486027638145200479432484400129211132657253812131709176942930361643360869456651378683331486785146632733405444412259886479458100789520157378697664454396917615358499555430820512551004339845463847209227194890893437976979352379158952008025258355380186630435085836771417080947797131287472174186213944339735214725711541977732789531854425510947173395094066881259712634113717135724703355275272766011908343718773740433739929618289170467037144554682007778867190883145812539819483903445130434857267181324967168045373319978868952975133157737539470349581864325364283935139048476264586649915543386914557209116198122769294198608560800697863671345932936928653291182784544637166943678798735714462671666247303511004589958841127893075564278373887841295271446515881834583428654685670093838125335025941286375828893962697885333458766338819204202300893008740266431848685214173007647431758180906794937676564518817095501454275032761434826122400872714132974976064262950093071286692340301236672348228641991301858511951004493688737986159489083287408893124649230697045534130612527350712648582429076190647980699517118131199731178831598186912048871423364715614624330784789936524412463917015669839860675785031057002898460593246458084487862231199736758778858717735251093193752578447974097063925557493160338828745984578062317429818666279119245520214040104324422335216034482058996429754852000260122461184884374139211169416714664424446020951300937360830935190266290314824214690282928555647046702335180321943142500909311223083887341509368464937579325416292960737458657574058904934131197968086536525604572448395770987705800318749666005400784954891637466806501269104834864034189914961489323948234194541815233123202148364407383108812133369859715587146018220539336272016409053232230322346331118066456500929818638561295606233106384682318985687826523948836046783497737445505471746625992495847899648199009295105682957930637008258082560966688508035980316054391836599286724059475243410572777316302435568563547588974121641890251961743876590641605641676019241597231817122947138876098859725995916351063494945488984316141553177847710419404736519006562489805811889771399898253085628157728855249866978719929058845783322632347437241283397797830608427174301487671916198792735767448789517360433140137022718172043537533901939275478011341569313383165816010561259312753050825239427860394702043507497406571313772318912832167663150590720748335499193322110134287325669170435333714430474571924908287446542083202236081047415870834614260651039236968460526244253244214542835583809979321402688031675303451856583870537895319316296162209136675394914371497861758326080067845118045321459340169293505404297858435519087332662986369840238604486776347145281313966205021766605545441234579451289446748014410309430177696863430630676266801492532572800543923181455287991145171982270108090226915183724332359134985663241953942203323059748309710507655920659607496581178278259993770759240761535607002982168597988384826013224252186726900860499592515106670167293006413763753061078461016626873933936702403789200180116814963639086428657944681153966655340407571425834486389437177187166785962334631783452169670178359153723447132042981677256865560641758529161201335816989745720294478513153572271825441186014546252439218059524164972192629065255049478732437979413535558056350584273434981444949565926739088081912717406582657501565544752712311618912266705959394567164051573029321341498583039288021738775794567696784896874663213407845490480060553789754614337896047313968147802855934647487065493033455761981967442220198052036476427937122192455116991808770825845881531991772165128939044088638858417855993387115484977865082062845381967389552676234921798477215787950703746867300830594059545180204863037068571467700709065546893853359181046557048655320188201242335653904864860013301108237785234885332226832139627333317776297230989215201881756322073366290787984401184727031142071094102978669971922771303551363301731002790216573910660559758467340060408162104770419224344122899137065276408004320728898069397057275444643420883070460894655859682929393817874127402426867330987187753463165288575656844643320675735442541917954856054853428266293678785974233787501264592519551319813292732011173199034943634588497693244824916775849878244323214660638738842422777094763153134227150164518583781682015049411863522608010110940304067067158113898539018937508707834664308412264500435671647995519987840932275348814626780310466627565303624558023912987628138608430116714017589474220243047283644097817295717873930140478230596166772440647274494321855835270069270364652352125220717378688295826642240704684071420584826402113729709102963570331937841874819475626242665493694085463094543528142155745224843324340074188814360320616260940856984702112783044273406652021462116547079883595044501016699035970042036505525514749404687846731636529894488508900144526185647385408365192434522631785281018562401173158321966861220228614462176095743197399898380689010030644039101640077859495588821167552897404914137403318147715347358763494038916614103700158262441281920073732279528029570139457617656429631293069679666058683264859280505459986485885097900412513115506893018716804549954119843033984091990310265820990344195600529224842046840735749202009183041730870488128267275532902244622093239113199785320675085619805147904340973846047024775255178075440477566049690384845707215437446789800695013354560369816578032160775451020831462187190143603827286437699771279559601546759657937887070421653747090446007953756951236423313987348736061743066193076034385355916304119090119565833299382279167264226837521010825048543317779286134159088970754971844319019451344473160148785863056304460291724753394705852562894911904847162865447466684904225045204921635356442208801895745173910158195734126905536728826319957036199537855367088392468272513361388233682968754179140569117458431544579031111641593826172416547157934106910514370462971760189727927951566394005225134145009606560498255331448976513797276973504967810392216232735568948829181486647081933962158813788183144991985489540164491148389322394146804356225140935205323912864306469744633477046455152133389038744347333615869255551880113363574842925154421495237265568097256071011078583058293888910113167593103849678691009499080670372962945690988477541257731271894702125857708955762753391936107312474413224089025008948022109854680122829994406358329638361495380326036821188157415881339421430313605768086779986667058268135439151872284974943020063905296848893122328172233259882253529910264735667135537190361392863985436702908455733385877788584340718868451352569241351535639877833420451941539612061148832296090778545026645488634039153804694493069196244475997838698268002707811217575651317310076160332530293338356479609721800121456795057730320255175610631503786526903456360297977268062683943447893880312948434034091958056341132006197792152398223814853270935767412850413285939445625240367462119574198934559970766949683417927195278533283109568454066535859641403569111597937017554729695921505066718819180356024943712636778395682783207900927676142154918088725261637796383865429063203435841868603554563308364225571560646312013758580368259362985715058704510922227071545250804696622535373202881007019473768431905048499908245510954688093236779807846310690480705748556680351838400862736997830255283831010180602104280467992504391980914260330874597206405477241993741052426243368558128659287071519379396882265645716945523219246388252239295150216127078727848956237019403688620128013175202308875377317956045943113857505070272095506694096991893558523083506487266980351149783827826227477034801542766098719970100924428032192354364083159999924469516183796304247302868706066479821419170517924984713525121166641649077879628305965845967183348417469306298056641410826666094960577623277921612511665141074109911671741542322144310182523272527562814280285565695285844536677950324382759178006626840348161917353228757035142169604367694962664013487886751265526537317478012645855814028921922999406576531992763659416923395400440665883486816921192920285261616548719375260118283266715978761085495500965894522144301165286927181692825786242284640474350184621373442474484427626372043911226361569141680000351793347643490185084743559989371896878051066847858234166036527965648099580558758006188124450707596877074917043309593227982080587858167070601897389002832072286041278162993622711742761118565026805555924129357163820008911715055867592891475047435742664864816130570387907669285947523082045005101609741383606495331046459045721703730501163906687529206537509167973154830236311564394775920501346398806745855368230095775306350893288521298633480311019115093265350420033857804531555086518703965744296817093204489772881346935515857670926460389699039431223423831684310021265491861452900568812891458786701820988302911342432993788449550125155509904960065998491787414339600644064326587147942746278432003826866371166441741424687279264948017557134199159128680284004257412329361708155592965901869410112040697053671225596361505892922287734965370890892663102058576379510319214265106138775265407432277618399400732296611141916424470655874052274996094046772864516109685965422978577442024463358797290877907661374139058391182339660396189543788131021605352277369986747869417748128364978934772022271337941630371905261573277735947918643280865955337250118996841389697418276035474939853830617208251156585237484633338945756813843399793919421495407857114504829392301497596593534650177071965200605175119932359546487068195981434068855047691949126555439173494389852254599796583691682838692590034197002406739586542121290502127441877387690076164360847171790242886683202315619020544266201562936118025228766291718287795547134350691774240972305097941293403156019305887992385123530067259447332271348913703512177031804417262172262189839314618816932036878627493827051656020452622720934121221227348215822182189881702516001470784708663748302757659603915188969059726081603493101795368023229509537623689309380547316669459840423279068440764227784595336561255809663416959387356175429435161497228501829246617901406693022046545028529565062419388794823479060667713860105989745844899229744914404908350488394552060244004779664776710464792737929527398599460369871391566036306569696489330217119670493594424743080617166337969561129404737584604264948679920882896578898302020157876243570056026723278020260448025942041955750398757295012140843741764269332943036479094028096221523737172113474530743531206358410596924026021904426587239896487391829403064783332846211786023001509350386488502901845045337305375067052826711832436403165804496459031573692469393207789076143596800726390126280183002098169143858338654480844279856451689418330958660627486600026221938736456023411407268751987585397438695687762852850554731216349640571717313999202065524383659940587536902312341253776415593588912188934845714020508121637161663744451090933471873610296564544847594576808499886245995738708929554528550565992062674917125963343688312514833805280020056487216162982862954215295587832297241351661097778253856485090469967683027084594579575105243222797272892543359076008998834915158077094250878513330916301667691359685730507337755004671522240403246668285799600277348765876622506006815316592791042577307806316505039948233398002695927049874947404324750060813414598036235445355670727710053683834553129820876028262041097968154128582419551565802840797064487358273781325115219463063654116627354503259634226694554510369540490536023868687797032801697329408172362759489479616395513557964783948184607846108067836632327616821885884887010401065027809076032855899388385946325621061380598179482709628622945139763951997745246739458486618487241380106696420177521449429432315796929370142572550787460283367474880833694199341408920649822443825063927416525362677156426283405773723540842792323798204825889898233296095870681531484665738602788201260665890466343083492782960286999553783839319401824424127891591171102012626276985843218151220504663013989286840657985452442376594952512825648626518876151578700799126781654996859751115505613781426751758794068251997111267292401124847097159488019443264847554011186497404217591021688957158660702340971045412328185454820206969317222100555950536230060083450062458549925323763361727879935302975351206522303229057194267663498613673796946642800581043688403446807335484705701280258466953593410019422896705306394149070087307116329369105473762707267282367357681590405796882376633092751462487508576198097468068982669314446070848390101685168026128334241630354764817276041734971989146054163955241643555383113564121734205871748875773715024760805189308618486476395146437384367722512443991270693815429449537590525254530450700590435560771513285520566114035301787393081971347923832113918025123171336189115692602148030649052429339649706287629129296956133122327868598930158135973340086167009277753327375052887621879988621211763823607141351600622941693458094877676996188436117052936147841160411889121068272281857484283818020782842453503572970766657369932453399181316812310020136587090059238581308954748386446215982299885169146524458951389705531587703387771443034782254550451598312117706398156917014405969567950162130807589795545362788188937689742189159700627792480015087509632836777519635044223383346144422657090251669802055138877353269434858226101651061118308790912783163948294595232630785840268748186837500054607917965941020487677708046431614337630355742799838132958460053792894855542611669271206603020116000042332531757211271350890093374661236209398384308814518505241341806145207622940987448836406132531906048854923165228438970841783955579477049366714006001032240912902795606253682995726845430800725155167452525873510349599237300951226681557167137934988463558486461774324365689575593761242797439403349396343692436703690400077243598949963651765956881088919154150318165818063484771657621932047584087142664408135975179712733846955906111857328227565831252393261972012566040158477531058544945930490568528300920271826679098002660338767103983187532172357368569267126426367761407253542893228501941646541050967933245363542752810682323627937512100773432526433090871293135810512822973298347028343135226882047537213775717950284022538944722702603931165870915792067225828145547013635298379555139468792460950549227410533781538535068424577974339040605865546074994636555968608768658610306128845236028165792069266124966183434410712734720092330685208414619326196758192090252500074067616165322216984545338407411946945217073175000983150314387624586066579908620031700588816582806352210146873659396372174674903065159115268763918072549584458639536055864846459648052215629145049196899387689949416747004164827889194398029215133772773130789610320637966088526146188610246717336132437038075685170191097124391263041831969679508943881664944203514358212752792642461960698536938877086725952392838568735971993595693779472264980199532426179181322281395498033072200293465094961099713506506230337032325815003160263965226109002989428279255978319897723858415479342092304336975712483987726390262766760823546453709772072721242601965526327411012182251533960408914201296241898433584630283899344768910893482833915466670012607162110043692040709488056126988548961381442042080767457264914545818611959912587140240814508171722721667295314201199224122139122827151491252884670013972872315422115088961160733110977301987722459299495299425171797532162875857484568170848620086074965726334247959043429687262884292431006357825250762196934647267086515471097876730682768660957744898579353204089932718121608219415965825441682213404429102917725656725646381151511860788063329463603348904816183091086531591657807064238379960970521460781457965320138073269943412225527333570051634436136944246079846923205253164062284575400845738731025739254373016639134011143601542308719158873653233857524267862159341866451052085574329505412406190623201119188760464688795937892878294056543423280341177650322381448672058568198903119240299003265763385825297348351658610698437960467483648641729845000132858830085260847683985589519882429815908460009738789894704488113074090307300331374235666333476884626821375647124726917617468889294153898785938869068016986599252341983573188824561817374900394903901988416276132928886027375293251675679856463480858821406594925999010637986087617989839773845213246632773206639981293150573626740594326307747783063976975015054124264062616392655670831455103520597178283649158589844346499357716766439922276724805306923839334688020737172251887835810826967701530759972166905301658899190975721281907427051866377310787537985938635574225590239335305851885947374295469738507497915872397690418056807162772341214998014820615293248845552976795108032772035449083775368190159030825881093261973845861664117874227541309408898471726037149096950580034472240658113620479478467508484932253852798288300575463237903791930010884886954448053534125219870414186033692047860535467660311313716427306619074395855936861151140026733981632557966364435600469795143798489297543699684000004490029265247334276029845456615109966476652972934870279465685631719766889630934008847383263748780298414556847528504866886904372157747271046220307887334235322263461112995125750213044188803826738058284165372374223498057868114224654664016048812437466383301658093766699684140490289961419812021109517488913196048928544420748843832585025151273326820343795155469091536718650781198697889984373436360281960222542846014505797247906389080102942185370411348629735343568167403351453006959392978922523289509809589789806709496986877093903256959875602652199973699617993383834057060083109637874791350630957800633724902735765674266796068358940144624744889211199165587836344227859035826392790035743201431949236683732372266670688244423120772677588144297827339844992427834408110943485790777915081007349246111314675335898724301257679411477325865663151785874187278364645654803129183529777675062169147480165972959431100699906978139004408119955327383513755251246854854480148857884900950744166249711418448966513937888037499083326111339862340713025141836707737121337445294273157891483916536088761775738585647648846481236935428345763659646582304045723431516568140446691704147652987447781708955285130728683918152216560550743752721592975452272126283348177552428584623147781512605734676867574406952071330170801688113133897536055433210250596728254186007869933573009125234272335712318788147931280603743909075537086393195159042834080700549040046353476659915088831261803610788537092884116981920241040303668190791948846777275598201135289425142799421131614577671715097541951543429535313961794592993536434053304013602721128246605901745386672742120603621268525298007076634610024217366533587011628019860268924290269207264079274410604416878018740567731042692491460086369763365199039066719541840044428945179350661827313716669918202089990688508370423461960629746389779378784117189347466193967608102449789072633606011841448258252634787879971608639979012394970475082535996630563635712690286384035936680587388077031695439670194614529035487084426914059538061649601312423987746178209200584276779655522236924760061007823818247660932692322348971995537437282115980376527620688530981833209309523401457463150265854173902011296244472853628577172111453535693103457226769743611311578479807228031640593267921118035542782476102026823936349917471462023477826854631395044821757115733059402985239763125218893997847754937718624813849108710172498032127440703571856647903023746809772827041630679174652097182434154463801341747275589212222326322819704885126475024319746912433438081650021275342395094787388644520976823113512813615475812248191664922787454560726498306883690171720012643922831598499252808058614311317914263533114484405428446445719235800788249851547155383281452156839736778381189602635810120087849212059606405972626955245742960873818004619411321553235980853671556835743366782055196825538984999294428225478004392553890253370489294008754093413359715159534247194955259269588911628635894461704141905254415142190687229411195129438030282826830725199585827072125526775142677764874372961379653106027351328966130537645651217498007832402956543938271956039113058180593880961992012133344404081514349932129720676400328752945476043553672718136904608812914208404852004169058862330640675494683738693328111134764945537663652373952762447301366139855360011578894327390874445953502127916117312084955692016226770868128058119504058426112081954973184664428030629688651534077317185876411343193642788277287840272990515631813142117332090522002728098196248030814424971291937659272889705995147090581894525237041442922224189805978260925707410370029396295935243528388980980096346039340700414605716257015271474570106253332892781114671988553574429271869083630590566889966924251209911871706938585642867136965579055834107191787771355578111283079908253993325000200116073119784202551499502511726501779221744730057307727895854283746433479407854444045873549437259112473061258402452947449047123291217340521897240408346224406978460773960121074227889704601587965018397861341331283802580715840853111564448132301318674090473060289176516259272111064685736761759517927732061331190283920116363848989289633988091697612133915746996271789295404191491005388348321366219195087286644331121590583597857295793920543747849829523556904431830311534344387783783479775905068136169470566992353016465157637690226702964260786541534528282724846470217586536576896678434488790484595435638115745459296566544583617994052491330113769918693027514520510630884534400768718094934525726720675633118732695487281301814217131757005004993165996918050406427883517853821605448029565645080416105194339966577341249747713726503585448326550796570978218445365317598792727009539776477013779855072241136809805931750036585782560535519648466006274926222283779881092302677107550085434675633940714935417890055473859206004134538530248603969045412645001015635311004828746399143324757275458224697843624502450512656725827183255812612504755938800361966406753438322691913837073508610590432473667685475799761170361204445468788078687866243439350621574119358285155702424315220017825349746505156972909853372019944495374449423489657198476514880401195122904783368223110567937267752482167905974642678116930359079710997902452370817478382108158257791787635427623422060271538601440918615237980961537422523877898051479431066839415756090432316805471722072340832752459358314501257591788335350099381973381860130180244311769272412035732041951467347117018220661343541314740834945451519014175441124288619691973816614941392457854003562214206260879159859116438928551769928781055658783690636147273870110946163235641138028035454114601791284140757598403151792962140024217510770113549365524334336819077657066581665340402756976251824024090590317074394653219014736960711550637126733407187430074214494734208537734520063471229691508053017047480451197533491043446030746003345128695890748673684142908777215427379013719955147415988138564606357105935855667498152635485766053513788237473023877806306850751765802080661324024737414852687390234804953639520158978018694262794514874737134361617118861565541883849801434683904995397313227172577055687963466320532258697883336890321638491709203281138476554516204878704650826411006414549204867389531229769984330345617198109163329789437310747728352264978043653184054546096961610349044963981091629647660122494571701612384407174731401819726773814694657509618606977243495638171690281192461203999096393100648093112661356740475408236983380330280164016413063170691666042766231753600238170659806425617838192019891155841382877193795062511378591622525448642581662952730077551005551965109502214076181463891511782175308367122789767680213133838025417549864310837859940337386452267234090174494777702760739200634787517118914150023698601884573963851015808441288672883141862138330162622237694541058773140666198618474610085775261169336446466405605212107753357051718285823748809962414291989838869640533870276455986639154221287006811258993351085688935645749446754288907793154991494948762698907218047026418933405455332797560310444587361753806039204040377168405380662392604631316902531258655484485256667363059171071125336250020902418542978004068300007628268188462938848001213151459256028448236112928560685940968392843952637791970921624431400396475950147088020160117026095400725356234475830426053130721965317157390390951932992515456960491041077355971032336192713463237177535452819212110419347017118403544334411703709492300789717576685356765823878247744426738160717037012068598728575979589872291988112084486456550705848931089508083924085689083809533526576973440043215605536695769541422753420880621781602367965407324439435904700402454247643744760070156824719631575235184461149854117756810184778329693695949035481309596329612303474692999242993379094801964556968989219418163719247486559746921201204021825411128575260973104454465534862899865344524526717986263315192678230032297926172607964961386349399145356406467154524361298193966473131088307333165980057744781905693179530380416721359893287837097561124056203698769446347534710241744237826161556366967645262671898339274184043634774203494295365528893266323758876617711542003912200994152260706800331245510399212233410564099587998258460826019483255716033270488228086412389169914438059233460046732701207524823972020039841795446349308719212675910798920019150549485249435182508603307222127010686236565861778205121438259828975563525169129252339187457044637401944323605966593752126996352397354758952898460423699875810977586286077302192501872601163359793266145518362240630579977719540800747436149498603008573669255405256129885189789389587529581944842769869147079477888994701050874673319509466012378185835695167747142659510247482717807549224636861846524965290447637220511120298726584793093805477889622193391916693092829805872130204321350084793920089184069899391154187262511790678794843143871158274078799847116946623538223754414217388854018871128264934911028959283225302016216841586272367076077531029744173171917017779318332157395507099427183046076337346366660975804837630206398373901431331595272933606513827529541046554810805415451311740970447518657795823277615028928385161832729782574866939782108200837064059203474118372061348696858807059653813448401317829831057854393988044377998598227681530216244147537788295806253801796913259269398989208057277086162776220637054708401387225261338360118159197138717365087424122134730204607442583931770182918926424565784821827474641151136596537775843626635537542465422214633124448753865912967651456329493118502544615649311399034939785576632225409781328281170335430614106322524632101096036894723831303625996321388142038266523940056728350927706317884561914339797841473487591682963740819139024815573339291144030801019547412531724482947413702711365007255800317564728132477660873938800643830827874892318582394220747714643144265453779776550899592254408140189105140060559887634925461176471544265839056121724713615700231319626837208891615988653037681793902474632678828492413301870560432905494798361428973052561423605498636916998634105463434187232475367347569115494851196014055511512028851507058401317655724844153599339202441315460867384622699440833794507809097625154492746553207254884918234788316348695480054015549143095109656854805339418577785200762441777041414132812956806681879215408375850979773498344227959321568689018617621356760820607669934568135061979314937395182047091990817740213695341130133533910264316360727294979432940723163941888224810641940436854107325922938894118117874536435789589824286310296418047483070164135889273690783358365562965925361817294798120349804585833383690322997506331308400260393794582182793352094197490621523706931205366344523048288890171732109452559107914900887037212713120564113630574505196138492566430496342417338213404677956942269800037719040941080722830866599115888641922089516272094143966047452019742993232876583245343364154903343077651183224489554357503971244474118563206180345616880502052512486448788994507960346285755580045335549951747602612186637707075665469811041035782105360897451938212714760634875733070557618943792660874392477689586259303050378723494965916801821431340030293227350962719257518491981334965746119489740498729908652207935683863205752180449609240114885059170343129142423476748113660840473832390341352041319478191575465755623295643737922234416541723146813409146387963662274364845553540198570595215380438285377812664442873878478521073553241884144311667143192599928604167474819756706555306105115788352684419125659315775851416313270841429711232088966814713137406281217765233037756084171919786970669320883838379841700729572915025554553059020235503448261085251216609887284712121409291676709931500413238727297438653631085668799203639460089078184582996271440646049192424581181072662670999909583336560595318388118591983157523210770913115142138371781966284705217159346545730412534711337311634553781712025491970827926006127473186749304798208243492010585758440994834604372406941760081425572398739004862751283237327101419648494590298854224430414482906135818490853752762204464474400487040451366198048903613960855240329898334736026704121136823683490000626170980870115779702785659394266164995586222426384986077990327924449263108606585289164496284064665066322100377722849550066214831419101168279351501567708638090311481543475282778664677033386894492628613795757005450879554614391827496580772023624002890331709427504696386845807311440836746017421181405762454179877522272473505325236302856307193404185623049096280612328909179388690361162957330142747890738256642853136780433931596755216248118317697722186914847240378719606666021212718741396611227858981756972142545214415262805657426966066641795465912204320694363850710679696529557982999484630055740966991958828099248816503544935104181193868200800302503879063928151065229389941514311431268652693253204672491129232045418583630293242774353768605706809537712420929240414638421340843602166085518206517666079541976225913459223645102097528300262529741788768259978581048397213077871426818225603653584693675619265236374295486739279653213469519790002073009368453361325300897783995749501278008319389664580861979623753777357370713687997895820252903797654597038272066060644666756589998080464148405797538026947768856940963884977774438301807515021782292875827431641505244563366024775785603513639229399423417653238261164042550661047250328238318281916075019977606322757803317648399678962261930431163481218563212655375569396284522956534149256333450091932017814575379399360963949168244517094968278028592850040692581607273692819080647458864415546258825559220076896836268577024112055253045270128572798999310827812268230261647448151447304664681616012359847369887709973744360661101200764828787159564682446889248745511387241994852544912305769958403871344664702175692143887584362080460681685370909685433823524208230185634011604334085145510383533097201906299912159222310682960784802029697602302346841636265103588283369258951801218754812879110879798407098894718575375062581486785211174009331537327499525383945174542494464169096162164977767941397407195413688141354049839335567962138547216951214499115503718640979383759048814989217446292028271170826368376013655676976622147361932005209904251418296767529473531589951244910726294902206265838455752840256003781116492008407276228998746655386183964388213888191229153570397319262810644058819173762143552347345503194186347419524128367187734105721500775433363248406371652784814461929707081812030659546325127893375438142014058155594835691830361577630513234217728597620724044300081308551214361921136499430560278969375368519415756350499334897425048994848720041557724741527781667436217263796700050708512548864943338567395136787353183652592696014267037222000155768601595535358188940285109228416775709487344342893853114561216557889237970869863833921879237994796679841790526642354227242086623624542816376448684065088027873306975522733337787536591770866704669534426855403044350907401946507791213697700201095375885005333365012670950691534785260770449209985213412869214541816128641769216742757356499219804015640815016686112049677834267502155000746644127052367638938131701616101056838032629723061825747249412775343195032903240146078100079069444282326554963890447239738583983742718464768188389091338542511645695962494784525176220098592113384132409571667344002288812294275466768554796446061840118081776716873817959862680486161055941924302965112973985040342458410013411431876539973925907830390102509585264661593974647770299706464608481050855553774654851074525054235719029781572782814301845109211581192162891979125532257563268247295288335141976381926702274134699034236928642301539574795920569872049110656152215256157455720894724012017630806158468103128687198827684580567681201010489686589779769003415636884220184783485703339889652895609620647500815475134941481790321343231631262800354097334507567128574791959354856025304801821133802788202511684302500334931315262924702823948742216454218532225601567346252631753678222790604896748761713148589758311504863712152004746889785510464147740060364048857491199565771869556544633966938477334618105457731252140872401081046039967396548420992658205660840202570398754770228427756593016962636235637663552074804804730827322330259968697082619994292663449400963789358824446985220194156866799473211554038458363251813478255912865352486710190372813590215690303256147500281651643247095117645764410158934362153148928296288125028835408259051263756482883467049720783156754146764698830482316734445086399678346323115373500605116298847326098595747037403670334441476404700234671614900761039184118944171146512253029313598415390473186147958787822578947709705833174027952004023639930958361836220042836319279052382893285278529515741369140968099950386835361181921427312784581810716424748797940170239858778794515984703344773404217069201171409617811174385338861686463151762159144775387976234385263840307464093913066849224258078379317417079161608238159809181078043479668141143615492460040321248750448550203779763058303736214432410174657010028337201380369073852905866811915676856564646287189726136979372533650278294331992797679644645308825013567112449218593794321339095844776623312371650436155998294026159478069364713516403408458801503538868461712055665530530347558908006460438592321494766241445441835579331096681385589305014025740754892830145294988144191132493830177927846261374575989260926598779026957747048896000117908282967242004630119944060235499266070206120914980289161377896430316189612709865714453983365918442952833937749619122419856439591879168376380588573919658033403083593868037151328763008015756623008613210009773093480935488647674786593461012545310481843340163477727188116997491772468346782982084229305043349553215720890960840777447122625112582972752394198893742679300738636962022743208907294961593229393601859644370141825186558607953834395647211029165322541448012210271932406467954437383916312805577071551091788995640104248036874143659157461880852713733214475061642809485408266228407336304057916781162828357161465171450104152014589684521855627032275753556156076885249804344590049310561168230385308689824345102176905398129297133153395349201205040635170546912372346506943408371474511982259431720995118692796326671209593704676591424557929848646633132031653697069473099091418283577876426513880496286043911247459235214066944922222370648489916001912605170327009035773651191199948619278605011489070364491581528675933518713657097238446799707210982215796220088106260029114412683080988616293506478793600932110493341126429781746634227923819314527517679159517565669746804994107836507521959686027959347896802872829416357980184227505721191489866593214198869346520234094365975296602907074314133252429269357454904094833094917383944051779316383755856236538817842093546122492918269586151009233600711030595907171133040013571932724333664702423436156844584518003562513591065227257557181920313296636209641777471973362917550176018359230129309240171345214306210385373523218341393431322629623407687584811094808980383613912973219978728349103976739628742766488169363917575341726481943252352923554650878633934274195366617182482073469901923708108409575515831516700859869821662751271707333644988624734964810212079835354637039159001674181471689629563167203241841067497867170360227486705605089243632271055247223893525916189386910568717903734249616660188187597543668992037986236286291589627242552592815095495735595760932294417019250422605699117643160549320069049824307010534068667696257500617533314325753549203289827846790907724173941229654956182532127959929067698737960202228866245449721707959189447240600591071208908750945982954655930776419773364527229152007267595240899156800624341891545088156512050182518650798918225787240263950576220926162826244195274867726413250774759140033050911589984972320907499056319853462982768237148850250983066258128116130324103416712408284343164538008941586388661740146058027808178979001522846224864424185612332901966868207388615396327601927720748844141029645559585201312262934778333586925523654151903713232617183911713278970085980609000070253307059001596506827163265355507181942343231810303453037352755280121441645441767198039041994613557236850064339993050115754852344539743998319621599962330214073636300726958093963381258963761966484282313435539166041996543402230036565377733638081086383779459067621892230241902504806040356293433903972018349444595460053120809779365255262902453353577862131004811880150831146224817639183221327213890436871159643811722204378208836661113039284852511924450317827224838377399998436937500367124273587054961716477841278647271523709201279038891327758051491128393307232409825177994133072140855898255892466311036583608655877643503356128298314427923287934350620445122878372976882591842593571907662479187288355639172005421018887531000764025053749481846552982596427500177286320594621959245776905462104264630798762324363240525271675317679678099174541302910402258803654586072000395490058305508960552846555814533460632957398432722692793526167954288197516138294508243801433648172003879855791267788658352411069154553435401455549322395027202696698477880925455271178175552640279205878679904636900581301455277396380035620676844160697774384361380009869530225975927220249795361917644816773779545967602431923400660003453690739873845749669813410757757776227407793059779641849677752666077906762253678997742070230178261319938939546190973377315972020954984747565239723986833709056869039923288033215480637689920673886031075134354132009947707276956483786274177341561963501968422219410958554392963079961986633738212952785092875605061925962540788504411653516637329443464580615816213895274290772541966975872618583029643103391290673522796926065934086517964996771544818391745294919618684698227961113380550687800771145412802917924458160706510886894747409203763362854403116820907279093142171529125516501220482814758645748903550513990697453650569005809237138449712165941921590058206261889691362709431135409351849107521308101931102397280796347997123725510542870045633444133095235314302310251921361008893863911085387166511583004645662210617920580261711024107732813610472353216531158628055744994727519294439045068126898490580081392168483909466596246464418982978667348256338875470174848482013562143894286718908650764274058243619176945075026303652514601625734861060729402314284218653309081555356595255925207030909138957471366489435162964686122737222957729318254290260323491891076465791939236181345274368988590959743876420896881559058083251096268896319607752354693078249697077339853811236641008396972893060854090355888081970438052194936253676385295376145141258072547685164655653735073861771824600095061453905469104608273662272686100347364268995515098710242520078883916992357482905696703745830197520133134804535900035840390106948929056444262630427880870918537893630232584280995067902486961651634777102351355594240643236108401274320368462134924212470981303344738194429732600299716070178141713512056835358883061941774132385644768846236802473114345589016617287349783210575278703307221858923369353186192928598417775692916239746441259895963538922150558219151878624847546938147113017100055403242262884683849644862484635296098615585839869274220046028439832304759330915259822565823923111504454114967563955790290869615862867216815138830818741282921062080316882245906802594174487806205773271854062429755840903176892400591559328126631643462561383809050606997430806664274428178916078489764682081204110475510863976368460476867185860118408677360353725740014266128442752016335330300881193954066407147475947119696984681014412726306335262975936164313908375837471110489046420924400281467044309113603119036530864595098414499603396661063698299856695520130372149027327697405964260307102369971601216949574411895679011082273803181386556976437235288447081100404451860759949439210110544379175256588899010117517819072185825770210253906708529391517709915290019456108937127923183668404786327037939109706258381662710890331190944577135600558810159615752513781830366931588890716685465200697630987848539516469824258942934222647671821431647785655205328304190937365783369111044730298666937888714887446451505556968992975027779215511774259494145437828373999472176417274757053450810053763279175950892595705317473961058145769304963224048372967053565865545703246804447499987289568352551892784473303456077426586654418422295302787025249033300777792790839863935037349100824122850110185585262987155226380677545265406033352419640542462053198081853306746005999482462407830179673221969558282526409614822652170580078545066726084442023846212703180837411293508369308138992267011891808223544450923107819934159263071343167470891807576521273750381581020377750542862731934971635475265527851447732035048599442817825914006990167839029156209915189049128403756511174966210188831268188638712117877284049918606571134986883017916381663856076802799497856299491095076160586585752043746274792793981863019449194386793414645366910305033251125293545097415665087639521798215774425661783273175288519254064969048942261520174506529818445151225095509533335022416528641405353936078511061724053984565599426216813734302223602436876669374338558672228590777073006474574667473092450185147425334706351279205974346547462879335306671398561810450542207794288227473092935216602418832601446940787390471777786089541954778920656022756668835622982406059837969876744005062415395256889168793134471027987150941631235731699501658761636236544756814104590126337098401012832483070979090812669215136772084894919612797384807323446882850691736296375784118731957004703963576953679748183963917348649290925663667309163147286696910771379060533769735405466528986968799418364934832491563482924078174209994887326057517198319968413633221343388218028154748348320500801651931868203701304870985872169815538294104315847614016403734634026095642572620785120014070776869772787369646443876968336029397104637369006813547815190528990403664826987053408602809258286304505127205789297708109052157246011802327574061726695405897367235935078263604516436161630136346210971331577475224647459902439831141102441719462720198795845444714949572971392696156705284267212014499037596791129020642808263182090565778403351601359796037611888368477255590506908461521086885705236931334756432250090424273518947502225373394330019864085179239420829317404755143176612672730531392644363363951853421193164474827076004739309772331714782898018015104795810084437206058419225904103126840213078527184295061539785542158816853776645367414589143065358229436647589818281145775444685087172426871033102546796111780041004943243163179311679741614422031105277653893547024572793519967346495986354917714608219632139175417193971653957358710764164115070267593680332794903937555883897347255528241980804982901632185873067691768099933655626638960740561126126007694613430034358056724698731879760096544589300174165904174523889768832502894191100042562422609406165689894398355215920126739362730425351319307238655958408059782537382067956270242669496797291357949742687583714533074494519969011082964499899909642506125182115131027064530307941332856322622550270685024847977333950696768691263356597635673099394847607957417161524288037603784521561201636124100256810484366846830352495057917645542238088530116389102318008325338008107721673881861079392980438057975013449533088364697093812289358882173982726002786468779173605626840063679962443602147095002649543224666655615484374509420445816846905596053180579676149171594448276821487062778566120813525519156623652982651937936630388073248378191528834195084736280089532929023396658307102365982860577667784304891509406521621080768298023902007382420886160533487101495688992097324404479057735872559714176577708827869542407665823147274717187866653116167172058744915312566857901709858709701423495243633779443486225364198899526557630712556321642806097315133833434418092148068495100805365509800936884623606182512719462916630707877060746835174865828274050577274424597063005880902720807977815769552844535844662161794061682776191461062968398304515620641855139323345542087357676802503574560412809158257118201293383997397206746876425534914902017757419079863684465518780991578362904278298364881427934511437612364414937821825029049051989028549174324487859784035398923812898042896373432114421901094756571302936357947365302168806646614314586477687622735062626797565739021691836659262653003611386246411622652380610639556543112434518548108083296581841567418158072607000943201932028611681899636600804082767854069487917547070401189087324336095937051455865476829872735897359150375779418982853413859055827732203564227305940431730680663327689628095067216564200754903978024558629351110617927689990868652816582323434591776457209261522994034484656691532344791981309682741365214496467896981937482297972968949635817205269392654156080577210359670128300630297150394320098689379338566233389870067047181789755189956495798003068099963158149064856528514540758177091508305866244103216452564265474111184558287674510716866019611031149403069547175023685451842251341050477836187408112734496774321712269461147767642962223546526906082109652823663567761844616966119507038821644435389063514861549326572171738050088685782647996411534436094352947593536697689699327989207196716157177311715279682008641904472518000552788730935042064478070088443959727782025666271267014907391671271409641126396901536807391027348255838018252403608160729211769780977175123489310165572820743933243757018655513947452055239854633932513181906189789914774475824642098166178638213026029408367536498397503321850082841476399230254880084788130562170200493820322064129057644494823840307812125685913074154573719498408236689140490837146909046088773400650444212589745265548304817572354295258631933695392205414181304483140034797479416771501818181692725411686642107089523420705099073145122161435060777308871826714201117104882363565670470322424862527616285322160348910112453698624633645852147099754523372388782501199842370861460036472932568108186508863540573416421873731655121052652347214017094355990346873946006260586354857930393718601243740301467297432261746601077055280988808153468988710387771519778218359205317088685683219294842513639749805596010074542810378094871724607490059307421400613942526056782880730929606575181666930372516811905456158285753445900509852920121291377181394720589133511384014286096727485855615182728735196424127592354878310065574160756457551746409398566221773517028344072576101000819179959687902177624361254412384214283019219447752104973891003125205046255465905829106283402319163748621261410689226239986221067946077770861115058847969425198721889129996088880052032540445417793881242068079543222669118767796131181005195709387696944226342949086449668882642338779232138216503112426105175115359318333092481771576774504782813206258156394246872230074279766837988144256612856081304202150252046041541310121445959981016014684819722109461349189986257250221133852327145364643100721626391837185987893262181497390015686845789031806920788257630134354072402373290566878995225385999766639433656801651450972540098006863590470406662975368966012811044967571906060862761718382338337916538345788067875327735509117586534510668319359633716876659038192598703823245504561641839209069424900055588838610747247779066212849418592702685537293904874535660613758591567584384186149840761322977796748114674311957354506399408507540582506608604701429470622624987419410905596360324935507491269028586205588427441423798923080388481152617885892419380350550040214447266917473907961408832267568479944709318399467919612203789228325982205609366664208846355407157744568691077659790567415254118456513740556378783873964567939501172697691962832909690552301650711043833285696892638877066176046655268568830119905621710228405410647136711023657457147938635015259079582441401674965736467123809618042330496199363939532931625890456159645541230416353759926827106627237379584203492479892753824469158321280075874744018931611429796925544928749265275103211983189154167123737418159680558676168690182104574637553404857289272705516356494154579131512569840534010922977436925015363403131786478950099507192635624334403079029081420040180384671426444144186873156871673576317933907460260376462135503097315720774118718202770763671247908976281143981335345715204035600819388332549149834849716361467260425653825112681199466902444880430679900138572116048065371699826904784197994870910054150149910757440618905255495422290580656014038212060030541302943904430983498101522424392469833244320085747855525361673157828698190689148486126602514526913673513304053212757989378789389788009470906418041359507687886414461978367390011127822863018824776121845608294004832541059982853110023312926754154993243082282465369230115433848032081575062695575759725517016354551506517354175583676020528433547454709531759117057004594671554349186213178681942845289535053222314408929888163915831398051375829645093988884089011198871804857367213433592333431954619435407140375486068155707655001275261235642680146191400899722820154460479209952987916874140345030738500817582328084464850149353195587349066553764635056930034418226854992993505610427613210990409172494635203480850932007992864769273258546755448996653341321728886510348852311801137044037628612430600019328422494047830364487654137852532094344964020685577513230350214210068562287492353794165655301010108146941628565360487396372378288136253725436877889909585254314032847648637754039421725842802028112655228169281646331421524678971455903890635586888976021245243988231908442563390214141971526182132331873369987261509855372588203181200211584410281589308787012814103954594158162596066973709004521580727518124188791070124530062092046129535626680904071729714215258509786115671466427396676270980256927015436459682632363519849470580018980372601563421204336435773331239675813651914707844874960282305871483994783571498846309544847826729212671533481266246357372018214123757365477232292642675719742057715411975088341713808394224340585021466571177247947991965467552096477506057478767667643673755441196756704108306802355531844813179945452394937763549673245362208933906263643767188887160791260376863551066927001157375974879378041989124701068543654958056341778529261549001265663945936657956164651085401244905643542349501906663663783904792148485430839086074273692587992488461565541943332360063422644871306610675092224334204264366847513249549067037892331786090502729160928002578710336439917108838861351096250555370722996172101370563649562706736338688338993993335722281148393872561727012731364147946510443872912077414007688042360877111467856438961854621844225796572778434791692344390537504269414479999894452775226481481203943498059569679921100271320579741453573211351139158790818232332422381515174264825902991814675503313251507207407862685488189583579827077012451710087153049195087877110412908910545936993494034191236544404316628365527171981039487901699785023210673613598368489623211441194861723666324822316880693061997514738129477078088047303950677126632031882165673698924503919931893935071160539738802071740252229301042573992603506131321924744654830740898512773706072738156936897286831148620871787697093357569785725668605737222466293442073843742309490238624343813590306235079074210537587393852076464643327077932198201611082296467730847826811586698730180543494418316823159345992304213657293127666863731976859676569614501677220169130648936312656223942815362832250148239219146906976694889959178131487526370588771423445546703421705285385048558136460925485836136915703134609823604246672559304035154289518140304396167946107821053801695408548305335837568589181108979011406316982554784141139167479815909109461503212633912628997900263315075656970257810817388225592241075948667269998768310670778192091771912753281118846680454188959264544443152438600918255576453889867523937566861900121071527502146323355344035872922175303079173949330227513348538923579861848311500747829870120327277750254027707008837119745955658687894160508858771814189101583764511009788743369237427868915720809846630661095992316946983666693944620059761029665772687910493044519728181942668121835192997654022080242301434884464576404815237084548885108493220659332800735113329003091423525910600136946418229858169400601547115437082110597792442338505334015798703931803064827104003915108019263442151738215063475878625615036830639763727625977400385864728174386937026509138326522606051841088380098117171467141418588096710612920890857443888475894091681272049100341435489162978381314427664087981913230395009782420304633784490977178832804469233238172926786776781730245287660457463033447163441616869901644932060544639111699531792200600057804608270565131081805842327489173194771181857574008105803063137422942414286301706161662726950811077581207793862065758377990389562816940080343383010999673254969958656211600517903115958185975303678982360945796365961629566792989838688096027282569443173874621056376399289651003035205440155912893156343003294456038785930169078494058650269993433995389345259065535939221866926690377075323082006635849326124777854576341099819414532764436531054017209625607815710134640095298000188428868945594543474831700961207948117604267574079394774928124875973299917702057945244011638358192835615619599613592988789022356392316643083682182360961249033341870582102606626401582577703250844131450108687184549440361643799273494569378873370299261407725901166588069596017516777234690006742452516478233185053297503233207196679648076260512270179428783218509099967316471696588636028819308949091182965777024952022804788263336565382108233096598652573838025678471029850842084140640583728764775879870064648521964430242561040017968072642864100937618067232921759137524104447759837972266478146205083544640685982114984478005754691532005354452127489686481112273614406909899361139941663299994954815836715504754477306691316826130033446945229842531362297723622756901387093231748201108196543924808174089234399731638642959188717219936494720605083446892161932391349159534709427836547141971488691278868069921157090828848527323790177014225451574791832382927839789498675156665405369516009033835086970713238289860384396145412796888928074057637548734042386010964706260016599889386818501907205633437799259171924091633071170319532339988607737440838479018343400813356888614662892201165277094822420037374630456176040903203372068332654093959891616024200714318621545522497098756675885614154654475293857868607718909825359365440261877534250437313227358616005925092824441755521869406007834800369916036713356575769657409975988838503437723275202324896261974180361274042772961924030546278942090240253906959585172138237774650347290397617796466735672590736745262774254365216783647112133028272204223482483752158691037845256979251955652203187332846254577536449133128183392405989641497074334128051639410647029291980427369948534922797719590046955236072574354100002956518693751449558090432589258254984243265912468710284654175529562820189219336577999333438539966113208366889392266609061151611934698179829997012731686282893309017456536381331293289946578570175540677406979468236319093160496970678889334254163764048605792493998972497718026404733276685505735441620391004605019296202374837607158313920488982162842205762307180752310317706654774223533924763730467955124462584045873109248849562037422683578229021990587692183770497001177813206527328049293966819460515837442164452554147098004681111592677971217499004312994352839637985715483966885472579279492917487143387269256756486993721620218982797365766957817804935710724912052096999260668992042539963596899512948755962189270503239617163774731922487646747761171225996124127423625966350911866211466201161718664493855706963926073808424676444192275183786038247160963773985706850136843631424214179152601332654691913695221305102193432811439652586759067506828856943224199308081008120150505625780343633048462562111940719638107330378811711162065499308690730577256168201472643306945054432844647516002519540661736177582717353712738584648522954837901303311053581537792472604349242130460769153900471718495062684710051036039197440117236063479959864197155220717558381483007399782042977235722820538428896906288523120989438095552831794661199346488657209707211824993405564105585847849027021411507475810903448207182786056966791913451757871186474295282069656591040475460372410730794960458715306286070084976554396950377462306558057106534147160782054785610119581882942304005540129471451965660921622798815407387242104691249106521514189919154985929747772116821400019949697615736232365396240620462945609298330239990161696334936263723531495488577555095617126345944359880382475773508815763364776085393468111497461145576374173724559798912599002197121252317765517960812646532922507223814651441605111886321113214683355598179293431689677946314799531730166887296419771480382323431214898681640628182441989080939651360191405621696506485370294880152299245820337350783474937764696206584976527927541829866228229984776301316778232958520296468974200353991337774900503747000585188387293780261173802662905107783082711897910500731303330877032953345270071184008429780518857485046572602329545979970477575082139798155905690726798203815292973915964857189071260297487266962793885653919932923051193465597628166926365947520746205804761016635832952646903188172505799872234326284922366513500000451705010210383629041464669465571513143172964708549011872730445358178676214889046938089477360091653352394648746447905917482826756278195215344521740618927233063920182208827130027891793165925113168235357156864200265659803129308287051125116879814422136628352763433160880420516857439630209667023525980754151196866391101192338943849341768723651619856475394232476006040442398691685457001134951560714273195432599569113190222882822142351136112481480406757029105454322902319304748648150828433895384049209689478395419975298838606416218039642663776812643730419671898808636751479060586816928032881394307279333987175053197653141837376541371643397923207816060996808288461787155298757831667011562803280833388021963493625456671441218939030737322426353922540197789388972230294018987048787995605617505961129852104161415980089863635874127162502192709236206492103569489959840135285172162369368209860195013587297242461003695724472586937629736455440319181210513475611797994615707484688543204134202526143857333943086958347275307252164328781800008642477206702337744143452110518453858293509102898196183346579739656998240920662995734434157726897054307933664889912018103956863009373731631930845364453448826450992098434023448728880934570921792746388886650575745464588903562172364354150396260213024020867524175794826805277893993762730408231423888319599144203073739611484870056374440539192280452968220681566519676196216679016502324592240945608796860962884081112673150055056562380712205875168482994357757465334291172036473068408195839051515248005597444153342677605645597621679828445941507477526522998287737467827334201139505925736044588566943332072242029578942227277875411159186783577004186370611375284648606105816622464951634699704342055161569305715671642325323565581137851693780285527148843981595838495233632697725971547581166656486559056484555371448838948455238791254328757225217178979688410686374131506809110563414683805221437966055025982341791549108073676607378207936849720082155112173041890615848965566762001786100508628378254428993271743499181213268060089884090724272094901214512986137101615256617611254888075006651057837797478968877992917557654095013718928166980483223175182711024392925030958298139471848762635824387664263610187786655677865023875500504262253011041531494720776884709222133223038997528100836799978553654661681122607919096015377915481547627791954529588196877705427740988435624665108699931626039476589624358203164192955378138484263869740207125346058696397944372659723822895821907681663857011466203229579996126721485507358219594504940210745783199365254285848316399799579552829623689396727808247668807629871797231899881857497680714310688532023181038124895862713207129532649374582097382912867554019657364016101780642499966124127105582050173747223910711587912310933588769939658861726126160204224420528580641029457514908747144459835097045700616817462510632032801124191791133778673466231041050187768910439280806633773418799900889324069923098218148155105520157645034852444547489035987913819682993132645529156513100594197389338769245209522671996053639841392450220786784292998358346864073584273055877592139715808708439418141177401970804219527140887435761254712885292960396482310860816554031582293672183302127390288523779899865233410106400247496295668493587186855787882831968983600870932827737223508006267252301514081333784422445878942372722900980459600555248297573258077489306792659400513612029989627933086249458684972703075399567509562372838696529859901099902354757969291555916666934967202256628235489250096071524736075467432494713642003912050455695777608526955869375071850675232282266626360494816102857790065178053793019676286229437007085505017400754960373196265051800786195375102021699524962201392500860548116242311376289300882960853162009835430502186815845251608861119076120054435847761595919311090920423009574673989913034002260327950706917573877369720002114071284961881877132142828765336250201447535189928132594945974183511125872046274433135797447613191005490137981558396705026202254089170612765900465343512601472101301452969849482098798697187062586071503267449704335136664330594503268442361231063139535663770591231550342231257371396546768016013481651793304634202774037180552639167583196997121351989205015910863112053663192049284715336774404081029255863203361409204635646550661613199588593942207727246462405037490978960600416329182308499436318673896638486901451615695659289324414987637500006267979184641956950930914592474530623682062927571715109057475477710213616462080508669160027612169420722447425195918413485648711165471485803916947509862683926815165267188580630747243822829300004051178009587883898875870524473512776904820309574336884696186405707973337064641131155042041842243520958543501002506843716348051813875042066734436941502120206723562585499275325570875099565087658685002930971835296072451251166857007478592851170379419806603837083220686342427455439399017873371344333701698349234891608791851946321237842658553830912838642247788873348728666916661585778520818378596207196237070568659944751312112807506491797572068452848751853177430096771659222113078508989905438817300450721359252564642623490386547138027805391157884876430309950505618196339523624878120506134459266588091050812284244409066506641810754252534668677302361668299408159650880849203300735735036738219955337088161457055000030715112078461939005357910416264727691400766012544692124687093000510739480079758243461816208964866915055560681148551792583661562478400106321217009066240415802792456618995168092100386805513208891157646820081600735448011654268540495142182230619927629918243805706903627367018872461655330232139545813468460056525457651501661651444490598133086605688945332049728286865614741343490983357394930205009830730567963985568606376961766654656713047783091002416052666304683835082186288434931938609323141903429396402367236645543917387198934018739632149529401131598534286067746436602603854648984603118422137975790830423457285352783226442797571353531784778761435689396440300445955890971783636818604400784591508017447832013731241590525605888805202609809481241465039593300952811487425093269488095071694619488250689192054730147887620514522515744551109729834255795931724227536274220170703787884499070985675759941694097155758215241929209587674030072721545585778299485280092403262283597625949715716476070242949238592582220095306229297135818944537653331014322754821361094147876159768582752661098851701129765807161483791948646326739364707942368380325356681757486273768277254468732604285164130956355604865724901673294509818938880079098882556467170544933746648378927541856997054848430584981430186857562897716226781586438946365012410541131367917557161171527567542161779890431221018581181414816916486251457566966936133103843762936374779847443219867765528899890554829283152494723193198758327821495601499530823806502444662236667165135432130453014146100686797081672790970522765879713143434120811159955267931368719790204689694012182011912848404110251725335614524666007655919011198926987324578945688030393153138691977976785056916572546117088118451608660411579733546413737146312794879424638300392083205946087033408476649642376767197368134255577372592592999554414190929566459518692821093605735049596266794556310659787404605719759706681046986385616790938956489173621265129543384683018232170476031595482786204064069924137853763590570544438709266971473743211844935461115179880387194626025670940767090319993438696396399787103084129404071327033106726411615953368234152580511075464841818451758997523735385620741211566499502653339099669529338929499294013548161028035629966996286081095723301468025488646059766042908366417172724593289018254748808251323791674424054503701907323680214496042185760115974443769976134236124028672573117159077427544867804999705395051295362848285109279280529984657385674159273387875854777904615139391745196250892982910595348932607324838312847482046485364121702011250629979670175964911112520523190426140938789496095065326542240531438017438709419634033153789860196699394918737179707385224219463448565659536506849341898289083132680808209549578960929660666712989827233968626484721531955721829369722058796530849080506809848331062722662548805821676611349509239568835294922410070386255763396377640368718509739029958709052513658541264954442024280963044142395061653770641239231885616286467914748346484721189830697653297456069834695430401623707013329204701244673677625344648120297894702469777229829942557922778204825532045847760445462144472528903982852837617595537807694629717169908371629969797713380248880009665204223027191486623209754237789237137161290416102104967731991010585234652068105081175820535326364493502704617501445755686857957839852717305030837342025128912881622918981603344924049078139159662230517032159472506760195672334612322096625389834825460952601271060913817912493827329681861935771585255480309829506932132448131524834103474844193085894682167193574343104305454910759628726809001483623767840579235076097846052722934532026748313362313768226182878829008019588335355583061698554798075360741448808459518525295976882120977422544458665636314062245872920408784009848536919662451352421196994065536246846409447720555112319818490673793824526282766436919042941823916905491524486124324856423676983540895629044078713070799828681688696138181142495983794648127970246511617576898266399946825611244331131430247681162831744044907813276244192547838037059475626553595319100368660907941936154835139207378149144376846160555925413942011088303242616306180305754979916462051921053850840713804174213659052722783292450487300993065118550353883928322045089689890066631341036842264704055772580244461232511413581945691428495139120361333629005507237870167738896342276077420433410198378422844469273522511174493153822422587306852330620555260228062370982234362884516800989536790562249971768933968106415742455306519149868546478832835653713927721564257530049152108513213004275660793970873002896887193497528332587513830968819356239142768519775812713512215480970862250824026577797963048740886115057860027855830277737888509810585685829293980920152357480813180115334054720352137543566769967997180770785806555058748230997120507832259445367893654597940743807367637337388509143484507142031839746984611572174679059429290332306058710677726479873216114376404084736536780168347023710425884070977390867469813388891664572539555290685101446021065256110231479542816596368646661665007993877032935168450636377796057464982454706159845982550780636290703156599373900403590468311048803258081362734469172144132270753809681276347462275287160034060819288660814765293650110895481863073898572964384861548320141296702304493025338691572105078174934238632716925886912084601936552318850247749660675726593736810203634308013961556260404686857121619461264708866897189809434366940857033157823692819970395610980597677650337677019877806891808500523759794578304498073332747840943734784832156813055880704274232549321580670270319856044767522122096818820269430519400325914554477107612032242404852115674513412433106955094501937651529889651965916260349452267408644593773335071854212268349082338887919793448258736923905485581528929798504868174781474155192609572604145541041742152351789018200181114573777742048664062030166483556777364526205010665502720415150746102678194868941499347395876018722465015672916041579475816553107167200982912237123915166224845695138546293266297759128156340861667885470164702950105824426581369893652814085931050667537913417233825687731327851728571671996640511568076040278826205563745880162569934568203206182337906159351134552475456640655857982907811572072783221631571694410308550352828785292098030699470304513489902328198265087106077052459944174099784393823412639925443534737641827722802210341421242027286913683026114221172253287364489735891428665306382355614738245669617227813622527534960083057247969474565251897377677449323940625725788852449712225236687087636228983827720893500782318773582001359265201945094803239655390884791014801137461513367230919953328155712879679037543765869214282467377069711261663207575526914354314977158554947963308863482391567807281322408036019606907363600601646815509825927950498056291005826010402912276049634760734305987795634018740032909573306493853327097809703963139357630582280639942322792683408668574781296847289188082549185264457516053874436013253081312301734791236226766798984012764084790238177786602556822793346037915615224806266466876648622992687970159990900025759802690910205831671751556933290732538922297739622131115502825528740914385696134540540814193498171787010748540444002053740937072520600198692541707577783394633937626902489119039441107284440653172844366938044855485022989483386853082056047208743564756893112391582240839921487838655117439037825641203366758807406619455910230134337629716358010215704035756975259094679978679277161791672632978191126473037416482746201800629555731499896397313325236933555335164561227580153506135992583195042383893512038304574220310724687565831915563826076072233134752240754904069241445332836738838361453866575731945839504842499873796137503145579759272043762910301424674578272387116612330609401065438375483432723438981963360384418832710471724208916796880238512162811474980619503601199764643846541590015308231841777953590585014366524650600163416184085654348311563117028022653216121690002194034132682738563141802593162937390711591233042227737273513399324952353331404600659856078221340017079629745205679384313372030586003912211557864136096022535019225658470765325207781126755445886511727843420792925990324466720213868445968330686971274696162506135920564101608816442439866495846766053429886975021047954036799505637953982539187925083662097021167026355843345727467262411626060287792650365910447375994718140219132921975946565148490110363914003402696997528794052394919048204676724565075537402099549162735907026573798770907615123057491444138771178662705118436969756057616320435373050864462831325364836788405824792016136216468224323386305084127137135969721427953089153024474346201823618983897865001637683719221853709198213325739237931462211405371972120321680481307216105829613441720803442079980510877482592397396817816510875645425663937359706276292134819171785776891891908743145514004425179856339481455983078738633511302757956647041405276987394415412653240690236343035211207807488301844873199494712482658716930151870850583628509663776237101292513074128863466193835941633672248397684980417673076005740243586786609487815621119475150067538843288791237069349633688204644143087438060815339781499941098461812835116082201203636664337410105116414762828162412517838037657594951032437012412073403529701487389188049932565203268865280127286083738025080128878154978607816388290637130544965549492420598216843769127021106711582378735194476798642808114972164937439152168149694934771613116469647793402815505724958479887454937555033904324437771494099556983286914345982474065588213217259478781375508337398720814292205245271232916844279264314007773606068745417277436650284244776086326526806195675234435793112132627842465105417758876296770953104844601552286392349958862966807320635743511181513984581699663222968701421070563838586934903633064665077876368060420069263610579966245182137178838369723447695924313195019834992784363882832098441683214827783926189117276388810290152251447449192605728028722140658894566219722025901092008214087303713929276634966795341448998138223033580528785232391642216328467374033965955870684902745591715810506453581712080335620297947190831990649825628706897434581621051321683482546920865093216939117451433811877624888382387446071893781608716837680733375685571019165127726198939633444815041981205420765298848888388045752622286749727132343358983679435361429570414747633331491480774768063802510248785657641553316225067365005568549643829428638579242409172851598013091245784393090427205065955960520307293635019587301999366030018189622974071689357446075850964307488948895761884001532577029380261886635865831752577939130730958618737234279598875966419205270244222511566579032836967769057583315976048046552361076749369949162122778739836317282130551657541353452013416932778430015270235288097324154380972710369732984976074371722977762474826674453397314134468958615340508530639168389975610428570415035133007611721003824655917703022731368807673575291742860211729930920322895198618658130032906676914039879706129370829666926822954930644957388653091487037564000847054368131232325163654474797053436930194104779674195648272678839097727417899298184455339337284060919666924047562464656253488994842088912238597904747722530191166270798782163527541779851242980874944624335985418181289808216971553230314932947739517411360255343374439971114959248602965298925067634392331941633804468008622717474890210723392740322007092293473757190327389331449438265436508994723161736043546958445739879468782046377671543269315262039190803677225835444430933728701304086616374981547993607432035985745446447191991539624636021158133598758511566182287186667222255867281330930410806034167372170147707823254458992512852904128940388711065783588539413742275980936933292076012251787836267085508202666949073381331698271797109395736056262631459883993270936680259236051980776152487211039605764950173265457455066103488512190422027885771891353145346851521048791872607606901541196541223329966002492222015375130248285034923909225425009678806435334058183447970091383292065968465365406078755760521215960952667397698892697877000202527462055545912220258070973142976575917106245074434740339684388944683818887716128252974720844630569624344516360457574778980945137152834589247292060387073868142805229680477155564463310351123516924596245140054002347852943131678630097583330912085413457881551837095248577012280010628410841510653542096555552109000813949332793119097369413501834839658582769006980457608316141040424112851526691851521728376881615651192590722873324568984871611391826334978086900378594035171451744064510296484446574912003711358713270296079526720323431044656731872944261490984177117934028831342274797532386207428154389851052513061369669994550119672404529410220679804052982368014116167158966496233625687239691996268321222419055592716992475820172259617537692042120814200256370537327014780249159116443573272685334150587852713396498586229597830638029532971818658099023334072783889982701960505497700106157157000073760412227199983245068929437978739986947517230899897972935423531338182821518872548343342946207326796075003523711680858868071143437648257357192685214389664297298288008739575074257389210713106726396430370930074031702540057413207708798297914962464523786911452109843266068522945158260230524649693072389664700470572048818010126114692357420399574792692923084517355938527255061804259441876977222582931671969810972727116868428725311466112249477319911091944753456607426173308013987294302222662565484692455472636831502716433490671498895983484947622109529741322436848528559099724118191341798745263612407631738861808857770284376689267409960601815661448928376096832417536500382506432317018549356502807757267505901868203962942616934684825888712729580394235641442003519664115813310976916145474116526509024894856128053178426702966285119218996924460795466908165845119647458568344101187575233642874570586517333727251190659813371375090699089214459144777896353618385391799917483634612491069776328856548023237439078049414917420861338111175465732188245702445271279810781168625012982349416263253577507069735205779766360141458170043569790161059532010482507991936103028574071495430858432861989796798028330512394732205744167096648694408989873652962892762835080358781643826544015896754180279068589084309225371308887218750416596987469790777637151322624621067522487511302442073166548397525579030952258626157352785638164077935824479534281247200635442685854951156821259416387084818534530219483023203776899406268057191194786261014149105671284390666076576567243680441730360016618396539507391929265226553191295863740572694359444074070103376651701564567569975049254808932518166287059434966958028933641806893668892376939993802943505439589965261348051608917115664179218197910820634276490115576039282684688991498944170365465235178996160874904415574039313615650438643677465066675889242142062802004594203619331982993218070108007950762978744448551731028776829319276081803134167950650179876500265950249989287890339266037421014821372860707426429891559200154196032849841005623854355767399758872613130708578684626973609371093866314054482887201067146901965356614778312755145406944137717258620214711317286170018492458690006209240591656772796928855296192432054628910744016052772863604691135865815423412609770751794915091915593403711988567069677896130020397944049979182364805850764260961084686941732377672916584969731523673449262280138007920509459231274267689867421020580144231213578266575520429741242151497820034598510993195948231876863011982573390833325374958670527386852459921826912967809600243525052194578669746777106128807653532169609105433855187062958644883591580161288273406825486877220367179220873013453195582712959172783900150178835293152040951964574456616190817317318088231894712649236642433655467858883335142366001508626272425922547959573861961415629891940324780916735422029093313739815660712489634391414685392495299224849838146957080717105547633096755611853025912146804068595143257938571500128303364556511399792032277145849916704633663311684180177494033780698222635996729689521100286731590815855190663930153134218637136816794263571566933319065667379528123889887891078462333636815284094377424852708768969620720554845972398822045881027327856400392675306613326552028390123066010681249780697523067941224291263798510522435177159187459759562947753569303447308159262156062864421982100683315768286270326173340843250965920890916598479504238824183210472020544776394948052782723347243904637692965002210898030813306755318042349184825539464581367315634491723725868525277504953951554191567450810840141536350286572545592579280003136385481269315628989162579350151527139755870172305107960721228481176873385923777219163395120281964876877238997952817741951244409638323112580151128917980274950726916149104336375905593781347177110656024955751785416162526420354069742177627464104724982847622111861083304391008476149719049956616005661071554379732104907116331672683405028498400061781795683098631541805790016599397032445453548192502617374256655295957722495610231836778139147364256458732668921551233235665209121048909365882726689362171110010261142520044885717578694303517688618044214066300412383159902024151631438356552438112997753968988045622902827888057251705158250281975090439295103767976222449616072796401928852385271950133987739971525526032008732423160351088319721714409306211929287328608764386658323698123615532771819542005047483715467546292684359770763716612556569231196378675526885641864707440710611737086486927228264643222694844112284924947274386206955657984875631184815445477788771790830562746957567641651873312246113924927719041436902598883347307824879795414830089439131211468666582645963276767752857341083599007159387549716608105634058077313214551501743854737513310510622658611480651575722949296825464218766135161790396060500118515447526553738712045059057508274850513376548264003072012983679428492053131875259897779033939933689138450315874577942854796362979169415316700463933928628288946231632802222014036426272614159538144036665044812026491907225453187476378154819190282284831871365270177503893518193057591516248179585493694271778007727120561320083518264741551786429627141520467913928375985780261288161064218363725362503443239599307562802321092337524557537388707813122455719046570854103940277394453592268944112972844696419209951202759808304619772256850128012510490593865269218341224269106034318049410261626000713611722726996750682442331094662872662005137268946518233987593781329964944146761353710831806703197008808846175639055440742088552389893074022125886742454510844640110544671871841540347220246957980841793458377909086185572302599327901373323062222034448155982242640335247744028438195287146391837441046961710837777988549261621318647135190099865099302859788642700686703262576867649515732447926846031470791261950808443320288623505006030298436311645427499069511005269140445820693158349412103823477650366134277627149133642206060883072976602857047132219789360368150364180989647890753204409684146525324288563812426111056416055402863597832668535840454319769583284608074818764452308189179983849374386859264900747767183911094540192608522789259823019917910877290258927367597159217867866830613368940111676965658614419615252281508744787352255555310868217452347189305518804247349080478256433072617443878951909392821725121542335949980963141212532136005558112848733802536481768082554598207174675099052579269167255196017524290845800773540654602494352716428454032274567708323706384365238094213701494797580274361366889661614795887213712355211031378587914598994201611166927275968768293625102707950385645277061094142749898255570358697885294352493714657465158656907740915548876105941431296373989939272174157760862129883931298055260841676923796804945705047697254157737635455652700809105932516800641627239372202004598209812146472732748516773501563699387278648530828856870807448758101740794091364835753013462529846889763470808919181380376157971281603510214848342603630534073004704543654901022403346482494786196493647216215567356383288285372365591413129978368685979846518583160561122871171015413792206036754519649720295334880731851168308028737476229584930262404764644175487329209404012273249843006546132876118794262676929179749925787655626281765577888239484458190949152669347524635698474973052200486307601745892160613372210290370896657045432238938670080720414879380050247276524735089444801897454370018393725155027695041524275699452378315707580586371542942985949226386254953441608091779585335428472657843979611159878530414302349227372343636231767282248897678893909359956161960824556437832442813299813608299835559132394929013357569049718337971497478134127476864293875070315006421137442681925576098101737131699430696994057597971338435851881491187998479032620178453205789356581077035101994902193117014428574532284246705028685742963981277496789081406966995913268602674906482578238925705520873829156575910841088641431712719796777151373696153764940872579384618420449841614671309137292635033555643262540413062724730187640462164112463277096641821843628922917412059265357421732940576378231211955501049092975763440368548698305814255876714227358978941115154451033384510257195136989270572699158176129505739122670852337904015735959927789251779774170054904389774388841081265188900602650120303459263115572135382567330835586068283012772854564171633472790478647855458538274776164709079322445649385668790386391447994259203438914716568568193239595192407776483402474511197142745839018631143376587378347110724365292909041382534957086237238358913754444411517800341633037399090894064324697587685236019593780679832263999401025670592172220423369523724559108946858096713485734954079055197646435632620256029281205408537493655494509929710202833188031881715222199078660342400993344795699748394263222283085010004524980024931399948862852453170101752965214465345397538418765664474441965474822348312019551729482771398792422951923910824893268136446281083014775442216500416378845016460087828780442652369575261836706415989496718364824164741563278189270732483601795479832680746980510440231031193574276914585778578759153253684245905270224968809199635670944935906975459014687139887207488715492452404185706263617733920518585676720798792799125844448713420930328039659490849201917084873038870783064012139539243972805850934527936390405510332491662355586951029570062603788112766587479529246762459489338956610607280693101666049744558099219127786584663479056217426887943284597474656480128638938812655414301864169098476075178834098375387242069402462893289667510642177068427192069774192387116136192655156048397879048839089484213122968844670249897638775469875738794261215742303006281457312431100228121579810769633585013381157813048302864264392569589652511199856455056196981762533462442250829379939064376635184138731037170399246191682567451621522085183689660180320119446243420856908293444164447242913353811476853582337341763335503428310646719674836897520614829320358209663914869751910971924938349328440669534528647193365227531555724917775850631741303608970475087829616874303375543715502066002100257143823000411879555284893441684167348665923698028102393587839486095837446268581124921911205361309768835475806238980772792751124319175899001659548730077399761152898351919086446238272426075477863247993636358170866313450438346269511735690206325117225957437436831112163059648693124539623146459863963589437440201333352186031810200613483172616297095031859532901441135368042986529221352647444005868858218597118216289154093463288890801126994184390738613172031032083135669472480361032182859847731025264531999194941454898247279410507797786009436386497371303060926898350375105641881748602209338367684066790242191051305703306345231907464407626547770788239967947902117356390845055362455228836863349461598304428776264601374681357456528732005374192279676857937209848986677346680743240074440288484955432829546643278925938805423208198656342954902036061722492505655242557663888917204274783603368936302347530725176710795230023038685780859810600208913424182546252970254209922051056823011597086918876029866506141862456847136307669770544545933508839376546829158826970825118485383619626511232126264818285877745223056958188613883263166704415447077286913789822462841177982726636922628279449303836709077919999890388895362634222007363884323774780643035355175460038756920402418140192598445691060428959209124546831277494725017393145613613095789270870985253914962826702906885644457693146957651976687034674307720935572483636100225670443192172278381118566809362062714561348996502250122918175562717022480456693082820896541270457403334548677706935970835000356316931688717041696549537023702857076252795429186161554316208054800138346970278678251428098882942781421979194355797635733772996290121320088690261636539941941669081544017010933098174221020168855215271673527555698642075295005539784084918755719216893474093615246146090224552867586919888859166136216770370685508642984596931073034606980600294751858554321366340867640480891053373549297684420295102414576496561243075139395991937791563424680856520630631223782341301698616479812891724205208752480969064948626255259042050708356909973829401543767119700888855949588584651564962682246121906622940108313975845600025665079856041747768858954445240053770886326958659197263682899907607940471859656813513837284603346325355880029844687742157594379904938251364543725127830108450071665171551064012756283509842562152686163995426165550738547817867298348941473862981305782095977811627450135660689243014378759921227561897567561404071364805696630725991684928786926066038197731581022223751532357440116761689206451207051345355440607783152533443291444947634894297715608982429996163751820808267593276470808834985855138086346446895993524093236656943431553328003378037615370911234595566386990251593865283130339458692714294048292602571778613349934337495812590990523571979405573193704939512818487801563840861367349278521961305309608459258538123628143061796819328826806182313914835867252232885763395107416130886033764674149693732685196113716386019770731948839004445986801622544069080964215900185722973175920338636966517809358728579420441386164947813438131360132736228887978876754471590785918914732588573524817430177583323513521993142112988342294609933108275546475745549574282530847293903537693218470799902657286075111836705855012547101603949501272899214466000788046287548936858654823450522191413714379479052069964529731684222866430368342242758546889546205252319024487416720343604953092507120579077045683716432335081750895034466588847210558429518717606820572166074345140922874554733970272901901544610799877413342660031998967579163743494791027320425039980842798594244570416539426268806627864342842959934351965826343615101467757388665531869303258750592867399753853367043002857595010955511666933081539940763318625158069685850412063654967006296877765364209344305291588551547550451897471996578853662618337985169755330245771570623228296117637990924652693842925389063439226669297491508307956408912521202338879129721801792779731794000484122608885730840199830942525877233010125609396917688553417382430345481553718845505168204965130856756382268397821238343742019052831699004438792407979190301061556642164977313984922501078550145754869621032963983000801717906158960849466360640642884210329568852129458657942225699073198270199579291193743163883739142252513456625811375770861386946796517621404193491376756652593634855298383676700616277702697969496325422544201758673373132646841514330619696630027554276994448919891614875463423466731435350418311121896577762815943426299616451153459681234202174514700803241625491110222141084903278091718748209356599096144294701807328299593823922383484244975244434343368673980559413789488280460786517661823247801572437388294949486020285110393810992089059790080359510553769259316796404234154213697355230952256997340110545382810418971119027188826279473796734732028500292690947679588895610764030832240070823983838734321251282653131562510886432688795981375979304983460634147887529598785303739393967859148038034447593442714080933847939670964800316390343811799365568262576600078047053128567547352007037925740870100671122785633676170735209844682633827293593520263607567915249363656437395762921978369004813458705657640257932549195965077323303143093035495456350605240362085867860347871580825669270779303767685988343773858795230821751074512957818756494573218856469125117037284206642891377274235881787514612586486765655952356290576535568485572462178693586288823846154510993396424735681837129375529846086530599057900885508490183672142079085225829274859858392599041390265915339773562081705109618220119273028974333890872666056794355399539342011271872201810003489372104451375561736450022242646525721613989221468606709736556680214879652321931618295997910491088180089479626593553459578202782521228777558681738540255851710194871139084117308550827868360915649019988222301991238733810556169824651314982278697130716183455923451043362498954769695220811852463202172713065112190597038735737418404611846366451193657109206973876368983968078417028901637744945635333797631880406093409836407811129126198211303386668871975354235416688380617787552305662564832112767314796165256271452168589306631668753713892748043121177125370753145449364814413329243749465636434363330408583189029336198971433578610105509879694116014992120397719979535719503194428739619410441318308141512716223063956580559653009913671134524429846287945580645103353737678315392919646477253047770094549682330817587351803869788623925601380501919406148733420025985861724748888015719342950418726412822095324576599761644745868992139634418021948907172104225183264405732735128986965420429789498247519566139930359171728591888072512656020120893392404203093198339360457612162889955384380877433078755632404412850757438038828954569850249431433351187358014294547211435797192512571370645114884014045035236631114772561366414950542067447084990073376423495303826475916138250753252553283108062312178774599376593386227859076090814647204712123756211824075938507506961803317561974837931735668133411450458086699258665167507664134717682300168270193261608870079868793443551740882320943200676556763739204313549087224276448114464353444421150307726108285874445620847535331538713860499000178690601458885049225904096991747370394345832332012113474572031022237889631449509297357286924450442313434210983951753064566402023074316376863254887689246045041329198932978065282674888269536275538007797986094958339174590443097717239348197510233687906235897273874992367352030441540568455043882054930483092402444755799351104907002766904034498067324611414095943457625160085418441868757795213557427433909387336040932412021227935118497678998101401878210396695295726726345779430406120982297007279857144798348750153102335444777972810820776207985196114961316302431654291509824796649337485426762569477934928819393337029383482134248582660424261373557484149654374422783703432775126919087305562375163895545599494041294488816191506372195526202280069042318391241811133161448309089377837935582612180959394099985404545452557658060075255877362533411762340671594008503184694679519510155959737750507794903976252839517348987846121983914728849489068285153022661229881485361612100520459597900742466245635921559858952559659360306924123868154732440715257052203117525975979703661277657664328104678388605650820307796794958676135294769188913519216394492588044587354666161602174842028241985141156872529795671089916822060188846277675070026920662457348069391894622230010465744406049841959299078119612977069001184044075508004948205743320466998485602940706831377403154588545915420260837019392720717147018731629198163061231794126755413998514908272819430184392509652105519250065030948301519634180784704359878802297316402506440606624672246120756156529106397717213916526790199919984328526131359072426664435618076691379759713419696981425134884464988282000790412277829454449661263748122086213307002873166338379862028558532533751913994766619464776901786707118456414403271403848426861269388280460372909988453393605466899776698659051038560891039811558455301313569107586370838794933361472201195336385686141020353857693186030612710660175301067319215237061586857368820390263328895056517935253322882221871601597667011600269907937156827985441800709602357456097481124224462180962070200466161862398082132941551489304863317500762909784395257440359016577305855497728837634616964599690169898333054887254062763170933157392305821731787302820657514711871983303682744293726107978124239938011503096648067536814112545443905709248732257088600093736439005039710415217242677154732259337530066296005782178686663190287460705013666960714397968817445428496481552276314015999452836358226444239475747864681916973778760429482757504433216051819054835089110279859554128482505433093208532710685746137115150659247346837557228267578362695008910526588620861419978144529510079539580750657562295379069174142067455094109908997544646558736302743425345416003503908899273331166451201818296055059293614369158095380439574575157978449889104246348752867337237597390252501278757733898030094156065846634964321513336360393722769070888064534099897967139062377063464298682269141761550464353646855207586351843666369149162017265588460249508791015207380369122716549236585173700383935351333663403625032250092433387878302787064416017344790904858375837723107921044861361896550887058890736192051378637415380054307436321545829299915973976147268695136619202654479873041309437237899305125881591896427302852249056297193934543698727266729886414306357179108676239381431364091079078246970276434949732854811224938296609536634583308806950354250436410735003808150460189982120757410036819734407826199620144984985313174927484375326264396006191561606673125318148047101080095197401119874563592080774816998840175396753749773916096628356238448472161439781569601636096198460241416347932899953620162330981116316317585190143548235797946581804959446361121166845579680536716185012024755358869427831081370410348442253717932655048671048787445825932388160214126965764317458812007791216865921017285567390285221659534560836008072562010613505047252143290171644435886613690477095109096396919870676386939640574783093973965847056490345739255682948541660875012111964148159150544669602683758485330437000407980176222145956620901737547957899006925207348759542077459324135674849070932316988010167881814488426391638691056573957906302968059068427728347352836628033324524061173576116693312348308270669905988106284515589601672058527087799470855128894127653806529972031760865900088038649893429841278348520534844668463344226621347316069348089606427471480813696809362780519793783325424224698118631484091620257014599827183321684636824973868601797086246618061089047209137826257214225691731984117434359170198360405233540071839145285351744818212078963678922351208517056747783490300036611681742282372007986785671063380982305239782575224905428848624043955393238150843004140646407373597304687996680318812896997359763247517369732318683787673560743670231523325439421751936342742619459681717956510946523320674090880461964606316433295452446498847366805388659291538262978223399737550814415440773519108471495415546124415867878151323540637860528942007257767505509642676108154167056858234892292086319239459439856006294145428209581205272807263872311386584865716003169358888868679431917838814903227267412995716989809801328915456307301194297410422069631658134621253322344383998784972691982824162952110741448577168182093319044163610954338292842792812622929921379802700682440220150277307784333499953421684680770143785959325823507553364526552030025121879098688861304415280764086895560891439795370993579307950648168531133837794305241335424052884307160352571843713790888990288218559867172693733868291601133731214111065180734933234780612583438000838166453278537202096607695057069581131967122862135581909305143533932320407777423018560264278447889030843971914264347246791600978345275094524453528893302047377056610085083599618998549384100608849874084585597870533769579833513591802857097870126258701960729732348878334064203500607388453048488003696378981478694120195048175631378222297542949461119765163462208391554190818645631786267963120449393842679392616717541153364293584236666488497373046244734730329783441218649338363852578830563747364352507811825620025633868820330578409196356887757188495026637109369797906706355711305400477251696131128497899468612344456448228183638833376457283763439583683530755804078308771501720180545484259366933004816989743319792148037470938573815791428124218982784285732011711929974252945700234520033695966692474293054608363912548947159118488300865456664691689404581760817374367429329205161041879967914386061470258667261790704109891200430865045993076974321883894104819690283848675455367857870746649871477258392525146584013066044716920883974551636577478692520366983687595167689411385152522240082575309920324414472347698794804891099870963197813609663350278395882303494594519462616425340068899052620845959618392423090199980559327118016487899743188486266793227193931793997345750703576680265677235283255735964268782006902869179234399088049377708564375175682819063635304896588911856970624737666104486409481763874642785316973722631557333565662088903331078035077679868453005705619397434685378490496085519918806217169538719821177519714545156723140137815052192397770224028241916682983127200625350828484117820811800992517665673814728129482478231747625268369204124260216186596931988607128614625293684634034213098754210342840262384165455775075722897248366158327051582078680494627001908667051124904103661909501208003394718107169168776248661187263039649414679860644432719808908950554935554699310294140471782942752694070756501116872391285295760453670977642527707671386597045588028737881474357543510417330975984174333789794136255916560549603821136249524186465366817760153901961441704643368034479928426476651288693552337981883009751945451214184701082186297573841523045887249130260282945028932643345661062747639932711410097296753140944737483032671267373354786105338378612706105645339694352324451982931044971585152352463834596828816324591445795408569852443252093132027079941319779664884785114667346907194933546323672988054621331198106305138087067392181417074234717017958566591450975740975090945766036402786216476633331783140709074146817997527999461872017098931533684968731614790545059922374459316960118385475355943169077648682146124767935984602689352667660565610494606138524943008653329185586185462435244544322305213523273312621240918123347879110748336835915853918079935905506984595947312122322200067937875328211625250111933639430427867305145085550375285225608147930014548104749300074427143678027333498193453859645272741793877813893114313042433970581608337110263757740529500719181370243107241677397897361869995088743605413643046063384769328346208651999220278912903050927585172055051595782810815672802626373357912019779462837173758846604302636845545419582749563834689215969956523239992866223745611033222885955413404645165118307659244867527210145030793487851940558450920088900689857507957275565140926519228991482365727519120758644632560329272173731160220629775014757194311930088385521273672287835788126410415405394573885485948033058430858446865270118140876211927582058663982193770435305140895015434566153189721902037547895084475112117356351827638636801403225050841591101480913572172727556814299708306499151631897982697001144116224289912039383324127968407252575112071404795382979716012955230006139165760665216533201954690435255133752379639450057301676677743779848623141749592014545693055594865959459993268051604060826246174748693334031360754196570686221092759002870694592451793427386869545679557791768544457847565012879833354641562545582914663754325646885633711681261464699331489202747203542635369206649344560349011530585625455047857353824665365346328733121614846100714693461503298505259005378384615016355753432894226347852011741805979906134139571274165348654993114161011780265570685546940293171409653766132419020960066625968302337031462338050080917331791777601337066739916101540723303043674365094719781828899006989424242574552739426196544436717714429344825562338252266145282974816184751305922654783039239246781035603431487256842162966886599057054786682630955747444872639309307389128957095919034305391370877677846887897539775516992813577349556114205703450324034863520479598838045023837328950741315600730180799015866660500676760611587368300061396239872959009666994931972584537500037520018001028406351925449423985583640066660986177395958876325215119528555092792144950252561481615468227567377842431473720651084536647242722783124592031872580843917907341933183532785409190583285882715291733169778829915069656125522955803156301627034429847394768443517302901913941038906867814914461098915871160252950358221185145778791968615971485345953665042938596407894894665747539835820122328935083039420306407507583793432655187806527766278453292305897747203966008997583205013280421687858135217747982519236959740039946163521801799733203939177789429601844416804221578889504363434284006807048825710755104047047436274226713282051643057859209453997844868683765440840328943517484450146410029894175777603012873190247225007177325412690372244496352471505751916644300774458741983843528402315110999109547689112011735280836431786803613073917549535006211198793581422862161583138242425817748716821134056096840434864437488807139996949073217542299123480649515623980139820478972432318495720756242066138865427678063640757413861663546681740330276401411650818386116707543926961262823650219198684139224408206561776632953602128040974133364213113699728220386514917025431503952191124638389055159758730266731956990289862590277307622241628965233367709116979606878791623246190377028620202710927139492855312698780543048304650375931854558121067981316629196552208105154844128623599187951760381959093976798910440360410365315697751532079340966184953435926555816720995459667245979976603265695809507304209940979022355419726431588696441218119381113620311463233192987888379576359907830113152686816426532311466526379501135448475580180828659871014097917781966385955442084566251148015282978199377388995798856872948289645678019312001455090330826703123344092243049136174769258573246451417434852128338186762837827589025276699301517174798217818300167582001016972264276386536261249734441764846725193471321892421801553996645361298605328037205606588510585148249629574685394440052425357588486319759157650367504916012549818541882090686984969445724590159511151121111132940434970159258894296473617305419005565856591184089564239374665647744325690982371101796152360544201915437799881830602877485330852752566929524217479550038028125581183251224441175217515502831113636952236729426756815938512493114735838644871706654712460774637458783398052791767860351358896009424572300688426627843055677711935715148658534431893058105162712976334798246165209619279587674294954785099493711306521074474462620190859224822861398865594794107408855074668299427067247377334009239651208314938705646395652671784635219951592894220724085657271932199435671303208461652362168305410018639702286985252817010483155604826757384700370372439777356811544081637498110479042773941342854245688845135894916388849621813190918653226182391149631433110665451675511756048007314475739520656781621892711921976554492089227629948871372686199353857505647213538803804997605113294048934832666498017930880845481237014522261062575253568930110850129250405062350013454941966497477645881898721472367999110937362011722081638502630742422226247328942588166110775413060261076406222685599385648422689349809417964703201206640740003250175800311360715250765420901843146634003977877793642049682976506496546637537390874110710101596533034753177339752920252178328975708810217118288154356992391688751841107921309213290347308052353522083722770452984842371927729727612245097737503199905086753090515189309073446978361242603690336534787249545630822168247841232451233458235818651232930959498451672578354312037628810729242214876522577787599494977927960343724826232904814700392390564242107265113261588905546457727829753194164382317161166238468919585874914475619247745083275127660438791124175603746382429244862511661038256216229723637744645260697079401735312566676170853170171644490927847515402656535671869684484817319217583689759858465594788833213048707444942417310290033865279275133683331747069164234538187629486169308309837158871273593394960953738492587282070519606873760152741748623328302129487567728789161471291668705910973155278550920308699566450210002367542980977473939540727732627111466674386833902093088815253864171772733698113805564348606157770650366526304021884014998742639385337365204927148387467122018753928468185052306512676816626252479180488075548137744072845005394850497540896559965940431799827707492405529461722830894487059907927593829296544884325801410811949832781241944726667239388845738723608546236243110377914420012041443996114625713231235515987173895455639891057137231183175251142875723171164493755275635892723952266763078611543719737804801859717826104965903382574730144923137462195517852521247119369469164007932697896417640665963978800619990909874547830430346045238883394024561862676881466512663455471422597207715835937854189054852891452753140484365353650215813716055322706374909833648392370309096167876570742168079257680585382528955246260129025432558088830574762176252901647593723048631758459060678757428317397448682012823516719305520078110801549131250843144224631758323050785747275530689234072830505030500746318220858705619098507868193747690811642141429408861873439321876316199376928227501543516083887760757602092853022500587400175846095421956117998837095898956727647522955479671551696182114677574976248293333473768274690668145019656173735931887609245202231519947525949486147780796932742343495792498491137271075014637538431727147718360856014426709327876299309642539431540172534698977304411314411245130476265329833909896217115067030439380307773555618945546903661535006705854088710005428124048869652237139960443136597741304602560567032503443698563035765797143478800811809996557899567509461902055680208597964456583132199253586871441012227076988423444490500008667245747530672744072649960637885120906853704939450969005663063798369504630841110350960017687769067729895627908086522181813783797679994046962944672094713477563268471601843584000209625159523098346253170854049971017338428378176885155186294203500898062741378817815183127605438286007296243732581351692081747859191047683750359377715225766429327356570066816002676343957447704982379844363050292295856745618595087182490705165355689755977441948567997999454570632053327255201515405863092259578971607047819780860529963257670969499220370162796291061063141932266977969062238111010472827370377665369135382596551626622613568844381349873396173236303328217454666987399924749125109768537399302469069050436960339459817815152047618333665875094643963156208587994581183272469998490530511266125080563406718572904744072046553283190160415726649865573985082628709448200385599042878077428415473879362569900212825123928839533208076808905083882967115858882214413040846016670229525415232867599556838538815087055869076061190121788528034929316883564872605371399757662478726818175736020577277452663616079915346119764737669299857373086037652196328569882501718196438107902087800023880403885104738329183422553020038909046551001350829342170877337436426842084592188274841909531075750232764588751599497157322154126283357804580841507944774031817070743861549157781939307015525583115366884644734894722874862160076940684921876151925215168404441569875933576254212763709298869952415884079271173156264915962997370291823548134277304979654188900964426853255961713430620106503355544397718428251915880324155681347251839863991486329485073867928176432989260385086636388134765092739993531172918868899392302580361604278721423931529661295315534409340258647511385408345465597281278251745256566531196136064008993624249710397826325178827384346879702269032561430555202754534333581794788975530463963209877414149876756026334081002181714769803307069949099370561492677106625514517859976199940143594743736946940218416713143469154003686517196595250573470180846568959920144027010989167634404708364237946998876420272528808617075172153716911931244689156692152308474978539256152642940649492526513158455486570969855090538306374611303639630332977401268861724285786886455677791855210879427492402950025333485347993004514731694738699056661224757197182102600615281172185030873888595799034487506770406032707234105877905133039905960552945556415061477224608608479689359355556039660275104050107455267540565713170624559955789810998026182499726546612519389497956279666633460756345181333433665081010120494548285841786353114395019582642980353571737976006340047056416493149417963462771746792494340549708460169137325450130077839266180762282176968233142377115078242419272274413604405423472731578958491104289570764064011908402899792100947866041573609895264427636122662261366745093643638149454793145572832830614658333173133224642886366396602498714946627802856477159494973540780330229474565058405614166639771703713767416235794014377591297874807699968649530173553389644395855803702872874930298486892769996663464576604167094557361120377427210875447872802794253020287403954893293881704212024770105297941477869578716851584731844732209937867036462069794004205091275198736176124331146043418356380416812683982092341200273995897150630880701545968598168239179518054836472457252849433783902934024437680354937306917213562097674529415466598010200256868531533090931154896635392824678641289128464957972304356390161920087953890585115583257775108476788248522202342479538819356976494955678649842103427773021194197230394650339228286296956963310626174700653038990550367672593112020406464571271452717572773704663265729184666176054891578220484479633189399599708685465059842782776292550028559869647828179817392027280305412939771021747042480971264039663769597070250709917454644055312201410469065639039135965632588444674637203437590999709384033577732487028410337416201390918725243080130971223269146323576299222427400991515000021375344270161922301178853722028435967451485871534516181635713803086210601851398215637438593417255054087088143759126076921016705267233240715757645575714499402124602157391152139467042926911207420696573375958998887277456547534501922220285862927222549631981965534479502955899198060228272766014385038397189725408471807425056463462381729825912499569738218522660669149869260529169126363862488392889692005407354094155698019790849190888208842102538255986614581218076054728005889816141262076012376780403847439939740692395280259572120487644376376013273283981103780399855946941608839092014771120863114804168232536100545558629039081842480525907038701529352970469635430385212059717629218066252669204028567315487923873278338140925831860120385029716235489117982910692764992645723381651003013214576658097392978371604803401278104140747108082643175008232813919870876526270139840253479821657201333716547522821661250433136513990173972199662090815273533048060974708990355456400551248254889517073358566885076744991807809143496547856386485968489277379253373882733950094906321726184502590026919073652467022527079900616380621874117692358128526193309961320859388090428201976875204439052652393823539222077055337951076031432275837499670596955103899071367904555487274160335550020343340637022146774627042496436098728017177602683556030358197779025801192426182520613529505473583522741712755073275324680772482566349802570918726099583453851580926819477346242724979710444908514782386205869797662798372617696959844308932820040946961716367409887457108856741924480302037738476133422705908799555908894287312240185078416776264833624063787234961379751347124414040689471770179661802801250991187847313629747366790507223598304090124708922698526876386195422334080018374245830995979654928800027534596783382707236130761290243768719416311342828957788269711286583585273635341695855445647212015372218850166527284088186709260853325483247585058231038010728753249976934604474645123730129503878219649160562143211380374395304976648992512260686107406977716625417591467354365322719194766611653254784848730010716453593153581613734438822616897696987132133192583011885025210645302375385852069572531834093735873803858015834339778191915239877773130624986486427266973938067111389750125952828113691221642533363048989154485360880707139126892152613807755487018102051184516449462971302115062919573371000941939294904747881349251318060295105845362416207869625337757673501269576968426566514316694122271597147769292941212418158666147607415133233721569156227428821315855708851988018617471332431465362213315270242644909443202175363680015426694436871618880975911933189649999568299291148769407191446510288628872033366061545522482824753530130735883085329968574031130285405948369586014868996408040050938639675226060749753413689976211153048997423357303240712530354925331726590500879732172703055440832610352412496972592990901241464974026943850158761055695540849363905634446250930056442096653225479624975421579046824327666100030709886625840340852664421397156330511711514267093425487857656498618956277234887517342785100808221844192372922469227695503318950412204565886220259775709903559369853155056269598073239084080113010909335129177763197031425199820803152702396582214268415467815842517368027295070735923194822698544263922779793438241036234446288292079899766766699397384913483011145330204795735474222147697726683547796624951542816904344427941493010121437658522064929396054565520511037847672360820657462585102478247325594238294387594145941392184313662250431268318911974072871542193905280482665142080946954256740300295064791795010626220549484558310278198512221542098330482415511891105960601995404359613611091893214230995838892396164815000724870040137648633457597873106164091970324814451125263446417752586740698717261469182446515857524312109481871799001570623794464519691017361412108305493205164359468062042386052992918715210585384714211226246927512690648685188935944481356332800302665122337646838600946801642686809021150698787694752119247788216271836327212849926915528039234821551200026099704735922322525737515421420222170753780765556969041400725059223298790929014393762166533073883386785283708274555290803915381193193393973082863419152288187193696866905611416316183494417731482549449804729745338866125818858882401713055965077113127334174121506635127687889585099276674254637716143846425292059062154189257101573850821220684982891019474066500910469951756539479056170686311651286387698695456363015474007695524660717789231844978841376184753711122017934080882600047563706894134640714772572091687757441661421390358079399264934216859665342304330443354117974146443933030546832045686423309658326550958980136726566767069399774835290574152450954751342202149770243359658171738190742585110990915503578963553293502891923832572961394525767993608363365428249440326404515061046046261755075255770703185311893293970378277592701453759564381491948236755803600496897070464262620465441524224855374912571328961115563429660337181615102219192513885368016202387434879081149656552120764917560101413711439343480937834662502774162719360544836024456424875136812586478505556517439403883202343165698871699913481678696514334915495189773199345626964076750744794716057468427555144600908246545056421445786010229067839043513040281747757656618465171370332482179737928154240530005429692627727022129167739268882150684426186194968456437117913560105060652929319119751052009758012255018576185132608360500634988132545864288688277978379677743426299627587322216464253045012939669039270076170833313915929277169612061908268158590780222964991340290901721107130562007204313876343358177643919476109453817607213062049513619411175332543930928027822437413206635702428664323486309121914688816287292993255752531861539489139957666516338852875838931762667844898798339628791397893754926072775582577029275262380566639769929020111883188212854348333982013992647005728476685298289336023000484379102337622146738163742477696326860209545521926578633893356760502622192526076827873386089732749179913662668962157988372633599564230779009341501833699533174424197337125344380056317610366587429559602815614069817102998933518775404009509336099255436853916598718142790241407578578663293108214201561959912920373484175345674701284515345636387202620156537004165307544421524545740831281003912342826932004326482630258557218806617979741494299446985496243944640767403302288336080741827342431081703483092768526866130093053517512989532514679073378800283473546045385427713629277770981158871569250020149895929305494046702663709666543857463959329562782193811160536969227293078389554334524932635242208283699662356080966141054452728022485751085250888276010077434452953598344339289622056469292983582216046746766406346876038283362561318505590566479621965397215259204414239121886448641993143906730662699910507647401808932665114599752209789774562360235959934151074610232934491716455050365758163502058562564330871054567111989430316490190121367618300960748171405428192129748858275702956096269337614099716779419241091511150202245450823298230618617178942713538921227821910585498016013978704607194744537754058383835314736393015976954755322230597485433189799262893200556920778310763637385529491099157140722782808361935193168543348983882874888505970079467152175034510276433382755365301887474394142858764633231323848311415626407555030430759683375853257705893676206280520331574905836918059648783316451591340895108552570662443235892565612079417809597314282374714368881933414765836055827698385014164230345768574263974857950565297842796683339092831301679485946569024530656610298578469470007724516489087415617450098876455142045393831704020486430984436054395685303962843504344333231033760079516069876550494558033514363176702090339885722458495898125739288461756408837388270769194067927020932337087771378170267246322054008803205263687308573288399527725773258814639033558752647700743244978005136409397245389570060157104502568942011633575961142005503926622813873497624752863701402500312912105258432810950541789033318139423136173806693517362825837385751759110318960665285904660704784776234249016038171986527762769786917837836011444115485371183930077408347999261137137963101496872957445278998051464789062442901132986874095207173462755047114922844048984468547445745003626292994237406463829067398888990891010944682577169062447849663518717513322896277097174579233747070460237068309313552421680738091624060091558061884355136616631722974222687828832846117482218815847882996150959116867709067099989854757944433181796951835063170164463884702389330432900193608987576943105250602905977669444961993623604211662628647282940131492745861162773114710769514667435486965067338984492187257352750746176568066219445877683669344060595898614164625879547657254477860690129763476146466364457412173450473963524068632034146201992724853334559202549117306191234758387249029460742904874249101488707585350582841689384407683574938028041815067267492021353963438193441470783152318094719256405480103402957395747666080540207873241871082221050165866833266306157537971463361280133784041903597456241822739043464928630455321584805267814882387195095541066007385146167317107281488365160718739698435684800157838840697978254244528155395530625253870030706456334580889724531792038962437723608171048127291469084107460066017795530689910747026726698585563366581505537991782946779274342576216716333687547700424763392324846754971588958126141891285821801638752800478204899452946965398026313539737513910855452444713615060406462602574510140515344300954011631452508066357527927153015710814339564141201925149482563352457709847553109176754075554138823164596743982199108271401604335698239152061952712736955592762029078827014348674390422604435412101470893122490205416975352112569482306030097435075196444343437179333584196638800128863452795674779249170436991069571532001209278963936429895811049493029266039582879238485050339089466590244353181012024373004040106316953323719683167199367781063935047649656016375826938254296154368800386894714173190719097168380509332433179895464330385589576814300027779308195751385894144264845330197727179719667493140158672440292664016731880138738857142844734514519774475845208957327847391951755682682763418887625626417697420158293487116810591152875190114615915002542218746412759223383410138660458034357586978353701441546414934964756468845734422410524914050270991144212037949544849353477382675093178322908592673804000097116065196298992025366181467870291788740746317469824687568175412115062446170910366678132377702158039634487464845129652465976070583784368552354549762177624717611180994863063455339694083873457155802234497521413297430833851145538046711880499331279199299398644130578967756876657789553346504069952270668809935988512281586497170622260106518086669536073711074565141036904226047673669967290531334879257483032593815936983709602027431067643256891813731059086676624954834130047112048357702320874848814298248135692217352394518963746650196399966130028878260983464687259269771607779557426171209280168075536474818728693780463486656636891934583988582139085749116073315696198631225411563074067779781023413031107715596827009758487004028579227884095577241319832477043799348357622708365245282560396484075492604673502020259396488997894425688523932173029608048561993415200404084369483865066601543780198693430605129937674577255278184749444466393242498526486555524542023531915297267177144277003767778954402267518831586493152960734252105792821595100257812792496345107991985271319907674854588783629805504567992348933464926135636821867490930033866600980269752230873742991852834988509202322230550562652988696659779323448140222242379437535294999992474393979042103044997851237637730569638837435250148237655790989476580240778497346826749786871776419644196913903875141558459712239319421566627687315369903183035839328235921496431499738973577124748051556178487180177145468778036721985561079500568047052543808568650936842441240288636865784832690535177589505125789645649656937757289223859181995441176061871635164021304850311500042839278923625659087484725507940954720692212960312843971261419605442899948116748197613639910153819534464605871453135304384349246233693305570759713622914078930324662078954196880837588050489713582119371962780559907116730312492172230602090158283720938013619442289765619704161381490947507191737057813624142126302859563552453928231965103382585030962539916214981637381259313839557829974863540434834735253901413014490741560079559327805672645049416026891309373626946857780779176267560900953652589958303965772281913295481865000655832015956380188103075162289770580384448877426695731000083578798542469583189602216895638376058771500690445934410271834934664935007044374283007749492551923255258034843340890039651505960171506185308837561797754925158502925820417607588078606493788713740137692666046315900695227056177480116927534352933792764550845273849133881306008409920970083088649829758531683546884608174152742402112881197088484199369212932579018286460509836089826476408625592054609906129036303558978884158124992523640018792062712322005790460684010925519567589787754149088541444826881121740045032309999553608892719566846050732997814644653486265996597327091267630875494893893078568786502938972226060252592772865046935853276329393655310477405202425526266515371243157675173209302484940383044692401285381015540985056507665667381772161164912727156428448563229439534190094359437547899571108319156278144756503679934763099446294582983721184511593753950187249599561518113514362230757420953059819304027140397729443430534503162876814753145033142842223079554000707287776332111600004273397564187355446869070331097146328628536879013277824257053177150969197096581743680561127338563321103492030790067014645562173689310703645854749620946313972299729290549497285811468199289729153411872808727329826033139522801293966095541957104900178193669312701767120610067526563293295185067408753366217824346536098733644134348910209843392452167809480062904050200032319186351184110322489867586539838097517561267728914320324412411594632786900244492804311557664365548279120020538119420510130451554759249420372231056712594469367392175115277706120738296164691304855257045159721350103960968677814997800686478241491241263616799273552920416796650679989563438198632799606611171329358562964226616824570305106244705771545913193847077432271463492559987865386920961627751010857028225548224586959566493161836809754010328918678636651338715904706246252559089125240529055651806425733051012549768446327139215283426923628208621665427168071063759536308279078370456874490835521575092059200210071130060334821572454245640870541861775850476707716555609845865436494514213865369011190488688614041058862072525412728537374478208571626333980271130299847568269975264475191295727926098234797984138474100511680005749989280831079928508443031239711618239892076453987581462710021869299248935485513031216542203641262605923004408151515783403360281883527262787915637572496083088888318510372803024684249851352991535011672655879703243033430387217247999625971861544010453921730297514131189069998092582929183281665224452544676001057483737669381777393922694611033810043559930911148406198267362024549117792005818724653978212642992826008987529326875922311996566995200552417487471646768208074662038093013191168085992838497176662624717626362024120399770103611795943238350101559018143265141875960529820570763889989003884842045389841533500195482109614398163018564682879966080975543943834059218686950064638798016575025903162728341065783038430743730778287374548185397933287965263395517843116289534287527158551966884481592817937236516484760387852741233148248657785509112063892798713886801568013843240851978134665225119172087149431621690457508620227689575124598685698568783561392506310466345537798562588859185837913997772750925249383665224632134811050480181581144176872052114084239596591034948245861939282284181794483963360258003955676420684416144155029594099735124090730564522323359273547089209224492876334643081262601824203851312776900316785689611702049857715655368647742986029974756329405883162415816479540383538916673761708825090888805133332295267035555268452658410161824408552316983324219834200041997622896387677008299902243898868534359234380877539104476900297435778487032602581118997527737114280751759974974489303576991232965353866351086496243677997891336837884289993556034363838598034385935756359095317120343437497966062459399029140818272108256539414874607441576468118087151099850356030524074608696799257137868738696751889972947090618544677785987794239490373969817553906258118609882214175652920512222117487629276620091604182795399983668853539198345357764254996781519033642997094459397940517782216780183737995798402835758542028640086160117899261952332976966806724675801124164530780479089356217449065603466191437006084352815019447850340029186560349731387647690355497829717277090820267233407242754509194283705372592440407653302155368245869407931170692608245040723543742258123826138673286828047240759289907457255190620677793869982778394609663273702936207455428410853394184974581432375503421748964157550732135577384264796852841520372425385755375128824075458205154595136997995536307096803868727345858738510536997780010114578477916531387610124371942361428600526943180049056308627148841826130068162019160699472791905397172117356102632115622555478450160426015935326806448649355769180585936397655912438162320071087878476668931232924564220039547175088570918383354970553022050571878427403895409807833485772979734271214600262261967001763762761052236669103269843817724146866343362954627289918574534445713077159268248679075946776069945008688876931409863428400836651522515108183334884224730401272032193011878607864104948200853106079173046273312431942420433937122082948521752732794619932867692884808880588084919785409634385210272204705273356158328761217902463224160755483010931820630725103077649152646861156697726502389675537391423176606505664021678827061545826780606657794972720184245911641896142356738010108002887635332553625706943257131346236639461835308900999726153791042664441044784251507729723234646509531769345070098769582609387441335684336416831839053499982668649354078059584105195316937529620538028116258234549090636699352733272559527624778033379599982953000601635090704429666620251886215039811477024450732859135967855468938588340162665518749097112432702381451975232672076640722960403328046874796194381357850129766052788644354171684838332614402797305457704560591593395472692144032010439767730564751959916780979016564821719134620663325312508265462895353182345536202137953329025691216326681076095276666604603605227696747466569018528164923994242832799802632650298996544178628128676481625775300980901769654080438976732260148117097063164393032451802266629535972940104886250843390420952310366803379005383301314492630348027161831563249598560520126338903181085409727990235076963685845038375439364375518187493508644293295501330323037783200841953621976716845918458622577327843859338617454912473370036988008723330344573465183198709149795853902614893300735454209094824544702149063570579107149441349821462278145431608047271672577717375240383135795950977642455656367430437143840730558048323916578633978703098624158062042222245283671022977440747912786959714872169787209141377284264395043080852480460456060456774542128420430324659355748966033911490038714853494126169167821097005571252649269291711150004208410378818544654725548542387467371115125412363268933161489098311905827611035854475335950743792779410764557194367870513523184054882498818264238007515157723194018239170626653266374720679358055833749685086619992237908156410514933154653313087039962211224805052111424145467274274912782318917825913325683988935727308046571408455299972830871015118391093201656574751856998668125746323467060082620912097342310053695781120005881472824881369452362544057920881025408457720247402398939331255829862998971049628670060827354958219003274016580102964610568715777900638302845684805685395539939973145329718913293820806941956291848582225876824013855137725684150874478189470491795011524898265226992619372355287314739663345758866466919974281974111466778562115892156343680438135378599315110280002180265655035061994560101267983120864503367379093756062689507634478138298394256546331330175336807699713558243107443741272670676307024433268834873827810191457630998081421063701018875380638672976426544525107928293397045184560031684865198536323649790702973743173514485362599970432689279228340907873009713148770009937689055937805524903887299638027267593817889329370744101512387672959385168616480150357329791551459403881236447788036662627005416958138907596599909962091880751025395081348112724704747479309789034059923937065083983721351380137279808601658189947851968279802953885146690542165330676127185579411489411847421992783061563560734787783205830010262306672113478166651179459510337844024918815291644271493119421101525746851832254226047814351753412678197801886699980731608161499565605257172079064320008061961643562997782235643855110497198300944890380269644835274717365661970793404595694507732229897392659422350094250157998463950158959371992068071373659427491703118666824879565306122593201000786658646551881497430658989088952114175603824554861528066966507123840032527173642672137249875704125210963184643498669195364311944620457219233653380637291187274127279537850258608448735783847877853001354727652069260344738646984947573255952100382926464556794729771917133326752047644400626263895489433204301798114828414987848912545155341510566615292375571135425756116880311943817989159465230255342447532051464266295670844432911558619811855817312856487383078551112201720759689459248355784529815898052465300122507899633646986243183659463621173688400566046926371664341384246693915176447483176141610924403867790640974093320545250545944879036622776775386343239544694713744240697665886204672174116031043085795729892031494865606465955870716031481548103480204435604108897453573365134640473269988323342346818012598478783590243943042810064632905405656104816393600854873828608340979116109318091368121907639338774920073835494124718666033673001137304379650099514720844653009298079838515382201310278684689412603868340215355364568625782992911966036128153654958638609765143986231722720021324526306540148336934856428595026817126714532132834878836124363121911047621358296923823719986299453071262546843946313108873777802775054025634314478782818169502094301146265690100355108335337317315779090812853639942695755501715138560056026724137299076792970798929305194993735897001388208885576511616641468268607475004582637263867353085141254072663873939275072006323933406549137341947010326053717090469503809381353550074581491331956786853449729899289903949392725339020384564735747373615971622565310040803581620299654524486848845811643757693381026495817747795260632215859050537780368060956695287528402815330042328751914774934775680936869075275016044441136670106844880361140510308932986753314944032949250031338083710946748204901565337249699373623923722546186678864179285478445832748618567556606889149782053895461203156295700120947939597879173975705956470109973558300599766435730170633677098340963865493670549041329824937956574836391618003172047872533579746339814485222723945177678130567518693409585198621405047237255893111660324016897059803858453360337237429181302243800399001119878337193375370146201574410814944114826668378905073158068326619981996397589770857995342064546682192690858802080907032548578498668983946544013128554130279427085633404987765298141466807718539111719904268118235326733578799553613868441555380331138736450194692401945146187074466715720671710666643951901218342023379623820085368315554199632445683517215748898009708774344803032814089939701868194194899782998928961077644261989869483159038307632772613510957916441805294755050560950273466160040681821920956313863987031425957189867505520484342271747316101441720020470148672341583302735538563247301678861141487814970818647308218926003535889690878882005168384813114626628789820082935436071944393350056515358741786655112485917462286365198439456375670872776525704191161391442614457083229324548788723839440521306645753870962543375519615198595896812121910316727638193550467701908496119747663288117524729568332647424002573155513781044438247523409285436784946103998592801764036744493514957003693277039472352642100979617145640907141960685209585523214347340689952282692198731031610775957898200931161238857931282409671170484424867193069720410610919870042819393943241057205180540616099262551537486061282782774777675620685541139768393737639623546292957397019833473721969694052532042911071113691368917332256013089731645997650018534420975610371537856853448208344766452684943479616107370737905566299720898333791276360485870290748100498650866534836875850767377987642654649391612569572941401900855131343268618623844556258637929536799561857616541262211205721727329828229225378772296285356515731262842706416983737528311139090438606150467435154223311744301418763888539646897514701372966676521558463955931830545339062732961111040533857813494245025537432167070725361897079115231837543040967920321647536551044832460407542361996035993169819737889077554969717693587463772797647176632525051298531484347214895284351319780563480461524876649887948444876615886621131760106039544343478825509395881960877599708928726216850333373143635409368602139638967726849600323790282935869356678510882971274286717180562426369138910899672424144304123310749460870927933849169565461495513732379116471134227920955298270705369164886126359137058203843086483414725312628691353022783748213121718306055530746394315422425774405934245583515987802704885267331150537464373677521537399079083407167293437109886404066433494336125091272976140468679394932308182985943294956154632579736332738356401787596819839582403620285202707039083919385552281423130823589603336373379567666356926041361414189459196202626435528817869693718055210760051954522555378799482977161780199567275572357856166000011146629332926539083372410213637256962140940769686213242711322617212867926456109755672813079957942946843588317909111608126916013452911047816270143666399145437062785683886684857463556632618215022845408653809300023973999884399484117819680035356909858002160134039576285668704094923748248701140025179165497381031894951879854691822867477867963546339014284173989906985973016255449890936283314266262101548049833514192746898905898892418344955077497349910568652666913795686439507959654364370823332908243010882620183917572111427934732994080087756402219779987465750032438501210277868120519168301958112503584525725522080756040482271878391995715542203843102292757029437909165186317065892647608091985834694474481217721454666541008671930040376096577676717538988771931518702246362858211925381872668762556514155932464548772005788200262154458479593211868615036873510601663706036149086778026035930327435097706182643078297699312168224831500668989644289270583566929646634763019890594321851468263179404902039763479377710208433403641577876462891116808670061509096893941257916328773169348973939479993338538154532096485407679999214011019024757860330075330842538127099147195050471309029044141690972003861331784053422089856807961609407316085618800012148073857444607715691907173486478182351404819504837821659181106619988707397180951659369709792798687634704965480185633356009072746665164933892497458507283725521038924727451993346763516575599024271660039559886207198187740544833266872514282294404696714881510380941949209869626226236044891193867546309382956099999137510933792288101910353094201357229470112315957391847777841833383692703943038222429682681344189986860400381722352488506283189074244066750682707619806781860831769149478794995238552163282909711366924267022398913856434096469847532975843110059715039522778098870237694681421736464094687377568846195841406985022702384242681029562104368891519139450354770498722569405599625638175003926524104848870514493566900037427441357287080930637830437363106418049132343376786969808333489017106450311296797480154960344360480537622209842431681822674342602223927880161939126331110430726114804840980753449577055085411233077044801562242574551595011444591882090647795727746356413483149347794333917597132208739474125821335359670037356211672433893634828668960801087664269460608466772509039479055462465164703721905784321774958057697660851039601836753813108978054549926976579885681275109083259280698509350135295473325052791498424789365868971459541098863710583310120066944550932900521982241114078166108057016404694541628063417287721076117977853589712867142203267038016168832673903165971965519621931103210454050220715831444929628563542908519512306546029106585030131369672614173430630040085648634237693124590082817087550999281778931202619685491981848640017394882855140817820478876682646603387411044461116045257162073540704602224288207992060146755646909793726355580960537724602004587215627518227179849522976353230924843291831907891445758889717942318915764961451354035253389157741853989100479103596843614576614744062929358845374730854217765963028154553207639956248378865915434606543711423702809177632690176251855331699917258674940328243637811829752131793118571532783904891597816884586117188535395965680281639502767337245200291027223551564287808858918475230684123064730941750700934366461470287309084949469414122171376464754399694847653975052806742601071438546805913187259275565005208969600975051372757645774915088389472438178630081170720829615199353138806798901078406261059999788012341845508066952815349998056339082184767243704887154583040705696751152448024289737110243093599397595527128038024410533980456651637663807305615848945473160530278823975484915790951620694487811663467161003137369450465554214376195327028307693195864326657857220434009783122290299244162193020868412809942977260243592697245264297077542181440501442935648090871330304995570486708443894275029763113459577336351792574045699579532548890253738249456800615193988290809705743650343046575591203517831106095415224338589457572938958950908471108708287205703151540411317796645922618166135565275866830858744332897466067899332592762427015096686634777100339476872383474624104292478549221795191960864386789687435531338771690457398708538588311224434773783411193149042860471612256383429798195190546978808711114812656500181342749550338846830997328745048109594839473337648982125419110278612318770710608743315006619950256129394424605725858458634653974998324225406670557753744517501497393517667906440056197919933822407087148273381312989208645752623305719144955424906080481302010955941820682693182739183043080970194995387106785282738597228289428925925395533229179192549093221011826045780176738070680511236931488840526210357982445908437333973943827336204796789043318216560845888942243677042401275955834611512604769509524728608261808705740797680145639538459874391549995510309173299114245113602451883775700860381017626311937526155583109850723196004770541953914857660883557107607737683014260216580874324518107918264860172058235955788629394523718720200563504005936371226371791722810747020701072388021765133905226027214845883138156029842561242678822823256917435027321706271358655104052554812048625602819831229061522214070292202492206622182784079657758370584898432134910390235092099218085525834155129410796916584769727032008338127487168221329334042622431448910156125095483969824630953244438470739036828402780458682470139009602213374149412018248363859452568912469117624320183951387733377762447388453587745825880494912225590969845905802330424090861843637320767179550059822078113721465379431419280221361796615925098856295582340051554531949968546244768891980719178390515590235242911130262443323178420388294104235984741425265679868975399646850538667870453510145611562778172156341153852897126295783815767156554606222228225831799527210618890650497842614484664959440882944835805090135978046391529541032733479381779615796535353694933003282310494502686544816224148370131238831503857336334909985844246199863260530689780960243133234737332488640325018353631197898652218489439635705440615353539910715171743827214432665848312258819856093371900811445305447587326611694752310548853037894432644918667991307952014886900931741840224407581146036273438488394743870767691057898458570986798821406691601560208809126726777750488314146278654091092818653973486019751788957267214442473898247233707469285719479244030204327521094302666054293284139218317077295110320381415201789423316116934186207564034652351742970504193088297108429708070353861776380444682944247966980353042561779753679290023859167410728529091433972243708900033047701489024248788727583081194196931033127370336481740882191628845334385212103043288821421620844248214674398960877059284369139374620931971457121895882215723004776743228045277474986468894933023707032700458904974309197493412760665646990511196375987401463454038101096888225123720570410995627059268325323949969492995102434133407323163088828105798643036959508857215521601028680741265403111903336079423619420898320002822923762240708459793072371332830457010901304123330662153342463927781583318450674738686719956197203918793389339585309014577268387227701108206821456602081710082804654496266871905388468292658756708351353899151502756355073855788603706384119584506355826424963693281200509188582471171877929691073650477678069789659041641440576270441190607113950333456790589478646791018806758475981321706451468979043411397832529622317567898677442773166659488674275938193822604967006594014883545185943824225414164395680954971090841497905605647148352943591437954554996177084603262146141646885063552349397887849624337126136757001088292560940976484995295049462770600387458956239144451688344880214891635348125032815931803950248865030288139456624220022988792730702740914611716488718796887100007660333779401302925552774819434022107709748139613033557118658818451669748841574751289579234779538267338741669566982735926176175034916833909178948011157564643390124115182672380460731075845661304707060147625649101978912787354341529864620532513091762530081755093672251409697586787488315180353703857769797061501235981068693447096283634039102576113164719016113643751991224853893940777395496618339956494062270628517632281211568807325423246844473620152852737368056104943158482328127635371948413488902493597165652366457335932114810217892154331095373693092253749357281235093704583340766321694316758486204219996157990813863975170037757031944166297798216011831667075489080744277377981604839331823115254960883764039810949793492015439746581544253355185498932192988010900041506506830157797186239304210776160923485453472774935452453471671029875164853783181518997409950018226652451006405252308995403332215405715586847879195670338754180783831039560181630127354508787749689819741437127102258016507534201597016456224013919657450216969390092004655634879432748856648844423336234413519738216892012326365132323401288565708603826909853276334611302000293025320683650715819699352061158331561450053795703342281280235535047799702474806846759162656444618050160337199771688036078210900696328982987621528250049022141360707636472217119762294467092356591782243943410081083120772816476318571791045068390261825326013761165639066461424478688839843965505778862827268254785564609646347935562470049781291529404156652301539291816019874253587378957683463261793611944803914697175735369823315340090654630327004671469044481750056836755936679839423062386471414670645917729348525071610460079512789136196349322752290893209575071510803246223424055879279314492118100928491423127485737541969147332088318669426449234508582578373834611664839583474720553006186240797182560176681319531476928574070124978474341935155762114238927837741576829669477795176133683384404218626651608772180620454488411026523472713705708299390636957217808990388440032310707347999584224341382017356033357900528687629617166249597878715972545579355918540076882690063492802396223782141286956649124901959890896068955864057855027254640326738660411185371751959277796605024016761030042876164640850985060397191467163416312041809944740459652442724322643140833080387389013446236164089655725315566159695788757859622343207579046830038251596232222155996020021088820972967704421850669912172930969713745515252353675361920859109997344780699854907877219542203189468108746216209551083636322812125840804366608723503184472941416961422469329281636975849100109166398569367513243769027789173966539008248898939905927208035127309450161655109198082825520091368731056112095559949207264124887245672809491761257289622295776975893025182655274525038908235731426964911485982258832253598349268884616406990189706202152913393578823455759318509739607916889136748389554113663506747885566904184785163062608908272831048430474026914889772263765454825952004524162501819418675567874754505008153898413234976989618198711499550845324494007314490659349405179222760228000426154623442276170153145610791410259626397381150848548811468860075292362673704701086154104646147168841467507380251025572490841359259254460424339919024377373905357034489592332495789401684799915082841563663526876862295531865583298813738310964642894767752117133957337449553369519636741056329777062595226550413934583911953519053959556020378327291844730907587171280468543305556126893280203769288711219902501297592432671542802153758646131737973594962767829703836690410573088010809266827135966743310522497811301403482070010772997295366827125430522951505033887918846645050050261985479342876697877722718462173035922552839801496816753534989616908859818502003326225531929600363079878790297690904465310385605869398753323080805507390965025220782770859544824530099063385279428646477267907602824286177622554300008883308487489926216246881231492664305673602331326221072534142372969646770414641977704062647779426483194917267342393042858091420313812476407352466815894343324644504822206289660261721135663665850703584998713619382139553106510017805856479907385051479262732347534017927085511581441307128763563557628123575131043687844519537306291361040346580996703053479473632954768756474352369286313184875257004987633501202449887103610455161932088460545224563640238749640524113593747679979135077478600544162269129628652692537229758707803802177890219825342167731772070082619777829795043274887110346960202747807347355561214449674553049794460829128689405006643263030758150130518667901148446707517035195484705067127721924073867699065915354396541459465683486903464983515046530088951849609219165107908312152253859118977233038491928877958765662452810617461389825278446692928069072990804039788510833135291809678072705912795904722621250374859381060504412516126426798237897071455689542203174686621044151427906660949975539578050317009594286732627761094185792174082545131393532453027848837505070834128719795632534412833931692153290787626729582748412790050303891307295943788220388251509202396170077387580042974555091743416852328819537793399345940122347592050640567036173309628337906580178800066077043544349396583741774317147603369683555345766377272218061280744535246025605496373371649766514068882324230209601548396009061997678663103841711003312886085074230413511366160748050126505013713348935235325395149181489884477240302718625389717841734964961200139306909436585480183919627501210760840949866175471012498618273972219067686133050606875720352697472443005226974591999857119410029128606356421603532967302462970273478710779292961883940664686194077548812359131264606946268249301396637353566335107400442990987347406211723534434214806226328440002253939343433627349153255590816406950712974281456433941543453486539337907066793653913224743097156019736525460042141840527201553075068759075750982225512785795448463051015891286786228290668706463711076254224338528881911078151912488036810267725232574300630172005863702678177738944795189713487485795552583710014851705283364159661832758430205185245127425598327662299586912845178482298046054976562612378871041636373781383784197142453958916797557561780804498290701971373331370043665803319081098868020917985733874317097474159339706504552529180602076857509542774234737466653971062610800607114994474450035847193383702233759974815165930949561100791429880861998230222588209463469754347322481122717971150588918752866000862128519183961507947629365139076755147873779500545985424277452712026787321829841501947949760071706288603346211943586758636209806865687087798513414367014233627236910993025276347836827010129125203068830376622605297371564458618961530993565456055699017797592432373750425353024434517949862958220307300126491437830886298392458270139159010721136832876561701102571808245763301887452191253680759967967457715776827725193780416953745601546258132111098422481648236477031571669080709361897911314126732698050934395719192244083596146919044835340596378602367388713504113319608671299848923717009328050254553028710356481515684715844469861340044367792069004481858177831572201688269120856094656832298392106876507232059406530902560450420815520869588637243557099330966474575306301442619284973368275668303418115603463219088746896533406526610881556381646941073649043260315962259905192921295930657233783409531615222583462174819628532734436547391925765093048463218803667344610392495247788844664605850525393765722211760176855648251681372082652017382445067593392757769191399466311966215703161060270145898698403641274495452573837255531216549620426942966675786245061044047469929354975034210229927014363453876347056797912249797401284370971677704932500057903016189128713335995435932778119172323155198369614884059869823056281412564294512843925052289747939345593671347855286008220675047627196274620958182979710231007711086400769167463774569228935893788849768916004681294223644891260590978643509662520643834896713651682892298070311078751874262213439051961916014269412730419916204668695485575921580868409513522677474521590533462964046550455683097138125059153116367873104356731718100919730251509697833799449458984422275130929302271702573959545727659709246499159093705673882589600424734835872399940978913929480033909999298840816408692688305090785038060350789523536237553320244351109419516551578817213891954293975922906945216218551048499938668264644397089978329709356847330088904769756312760600323749375239851196581197102611614892902556670035132935886806094158092753494712613702387126549348173285368254790435833359761957651595513323767831792584925364665687354371393484605722145011015535223602941098366129379798606696042703972763664691193004763475851264811488472764588853538338771018671560149708083180655817260775739440195099336692112478528469893632883716832298685352540229072921680878418437892238230528574191278317667546129390516726545443700111979344379123381231866355041785214640383446956673065474763985421358579364079270449853447428586873437879879179603756130361957696109970712025108693492286508317769835426107615465561369159577537314621889739592259347574479290768689635565373700697136228293968160956573893324671443573315686267025945440472751245150360311748581192157065734439242147294969264737935585120864111627621359739142128647293271432999893107790023750760000981975879847440742490407507607471405103529768872718527144683421113061486449351500103911995170877710699305999682990291161938866552716205325020695162994485143627938786936412366366256773442253590216405838284876300192618524178867421829858527383129404564933646569335743498566637903534624267316447331957379773648360361085868969743274344028804081605483298542004427690093061496666240396102258381525953295219553025403542946994306261508722201031626758147198013452052031605989267352795683491818328855603751726375143677371184598459696341082885235013024975864300499476607319949482069567184437999781864933252002031415786801423763528449579935469658601037223633215516659070772482538957734101857351627319878521743205906521022442140223689136600022332846927528578285161233671502654155432193111581277183712735883304893732263173891675694988997373138182638877768011770812322256685663511814252885940640785143881649617617752976799382816086555216791401415065782514182790528861602868073194840756628294738357073430014434851537605244070273543088842406641766700875605329034584851280764292103043912126971996793963864807557985019736570274103119060318711323612148849152246212585193398140001508806458901608853413371457021202033572086391422807097092701983062087651335235145720833101366261097267398178687391043571583903067941959808200419784051270281465435471538576994732883604590927169217055652216404032672327091101871692282668927773118116601658107622164087606597463159379529817282195005038747156732681208710387021336420044111668246085052768715141694583799321724955086141302048296898695507948874077393704472208838792615475598977156697504262632584404769258773569065064888620585264687295779715812544716115797365397086309519292246174068837812319675614082209469911959231458920926129501390585989769721436527158830270888715830378712309323161385046574200716675778337774002831258866199007557837859426839186731698602818331838172285881719558885235243134702885125082699515488263123520739449003105914599221092352620445601418480670810201137570429037714677673818880692872033698115479660626233514903337319591983728791099451924893707042215005756157864321985872636926192658238578434969373909795040725346489190027066866366094646089658614484860331724452783170938695895297153474700551559534093264727631061014262036512433390365162726800932863949173914875234327628549856938756003354845381590564790130602484932702320831211554358832802712315152408179064282901031419813645988055196239075654644382735309723553539247192630446352910765486918784046128094315825467004128333848096650285802369827636524191644307521705800668745085351681950603852981713444830707153234162364530459498612080357117100189924048182927402379825674830893527816469366587164102623521281408135280183034461071592143352490127560133543471791173987596307586184943026009071450721116890970657764063722186598568868595706854271583133730958988718575996197883576058317679963740825182628599825436056867552739469455798518428348110180189699633227215534795105162482586476120287142174404786555429644445471428993232061720678621568769151106651067588043520838777824250229067263563885803520170637732962159418513821585355968028052355052530552440010873585189782557021724791940712595442744217466577077529046732949038132127189142961484030583618731603509905995074842237424345441387076990498159454327054866737452976303117692752147855253658839478624634642631436396739231101941662311784662480242764059699326579180929762673932775804986147447897105675177247637506731222912627580422374751917377913505994132596148710775666856737218169160244738672738302256448869333273078706658631693115503885242073168453857421992999217398548288567948614631072130342675158487112578415985363460115112706402569541688031339472408010892011240578560318182156449008328149624031736632444226560399324369700707569447022752813471054084306182564395790697608275275313771754560147386547398404122089869692862778125439957149080536707494372222272083428768377077379775805342836377824257575195337029814746070146627856196568085656584298905127336529411919025768607572831851488636019972797884870163687493764014871247406051837011494244998471692496251112264319487494581037678413220493038618622384219972859340284341778242879372033770578247382595483865233562200285157225254850926697293736888285034128909254453892987392121556952775779711258314027368972948829827805863170167127792956235701721313480060754254989791859753026235940062524832581752353084094633855818582688302552449771030316152294957317951702659172017982234146968750536143243261547191477979362889766353811478818420474323932425090238290232152834453752222270216993384413697715092534174665180328003397172712738649859915043897814337471615578175159809806742867288830281207750945566447683420963163894025014684368727801549769652469594228771075728386147935099044801497974925635005766482514884384086986243954781844830238314297149213845585535484483122746234129867187659687424629218516960360958234351885553548630778214839861460364238965833582779894620061239677644005253902690136046235810472953383423462479049496011309913472852648450263493981235561002384304208317479528690442828948820079568813841869463772317520671448010306101615913843503512844749519141449534162846346251653689294322361449945041999396954718153381728770786853334837907695146882456661670739032500468498388173355337945433992001183832825317024910485677224204600457793101128590944758899160749580964317156742954948334486729468921189892983379337747264423688528978790785099502756206741593745435322044475689227645218362482722715431521705016473433167063946872755282372752146442440354512895448301782651999417184289289333574751269818815154073491802020960319578030360702844841601316906293510585850303677552801366576336002068023750190643578395135324049886973623359890183169994396742582573259261660836108902136344962479740210980178673649152403215756348815706907704155871417932082187405283723947104915245683927604263245651656456170212838078757593591969115137489908478542612216077012415156298513693660533415699887857146117107050835822952158104225464945579064333669700918033090796915284689937327315626255130673347106984158731419503983457907515705318811958387150086198285939135714239537802745417930746735723762720297811905010853912868986260158458071472738200086643534886425463292954392797649619540876734239952895629862104128740617936428346751697268739179520111226475124545756730819420921158225956193150179890744256262741875844796311172294829581276623574071049887785769143682238168117209272548243546564350626773939767932477169261524900912005374633154831614097031223314527871713494440012471834172295815887226848701882189046293769778680730497062198038714719038515090414117704262953982954602496973182620452891266315527309598084746584002062584052663607578941291278514761973233941085824215824599494974569095140709370608025652400560343789845591092738549473793406475288838987172873130790963810455582592179494327532171355866925870400319984744041394226985381888008754940187421469731736405562631458721773863406719069055784584021562048127490423238032774071582318163094417392869592071049001208430438905389536123624134066519164077679034530809384076058060171259751321662008474027315804341301986909713075158665766799925195940399483657035687566148000950953989621856322741286982525038885320234588271292231041046464148841917290690072731517947123268859528912451923361670054322568476088294057860107895415746511425468092736568917989431504554315427868411876725562160338706219643403603060817635304601706019501567870490245202889765103673682860428597426407500250514760723013009845171439019336090781933769820960532864556802539222389024689110431075364651384933384249463840337032769911572098328720464578810128653347881345655231042436994298560667153490929050551870044354316299721667274906128213843311306581498397766637191199084354328505207290945021062030244406537866144120741078021230475837430914583223273220705674791567996359693510313025365342291972786174005185647198466713722464533665058440103896637970787237744620619099369687307680687723729070839242096350338162190143299882733791577888084002517876621559761835864545097000619449262827498335274765341615334581887630792600098576566949978287737002497000511746237586186442221282454805769570358522703422706215673951569882128474930096638807162177203952099444682524792289895755865258914481523076706514518120754349294319119810111022139613179599175982517274867993145871478499087925676265509627529078329979636118332395255690170911907747544846465673725674027754361266792366782441820002480172918743442668753471423042563841067051110299130348054868617766191219847662709679897439600990996389579278768836962886014911626039860213890692454245808541825086423709357283031727098408537771015795443347024581820578999309392549760111839944436327331782137831363424723048278241454418049907435089065320891856967648012955800874252628045015238113291718229370006333535041600413230636309920449993374780651078497724315035169769404257948075588799604229809822540016389798257129493646358380313002545612245079678866410602927101127663482298121151157113703978024451680537967469819676219418280909014216514320136198571246763000348845572279559677296369144275513025591540970295016784280205185023193402686648556779746838647441122715373106309806283400057329668813716982347923848027281159892286281148013364005140326157541442203225661010764913089308153253686498876522401228729358990789254696461336023411200985604831657481185222082480223791092470469595493146532682404260141510442866153254666426631530519485692437017579680553263128971406097987605043949252296876010515015209922237809321180377774913858532149499100501991418189470195214808710516865275825386894341767111678826699090194251724108900248992528157719255877809377532924330791713521275622101667014310938418518940572928586016963423248003599614126945362916188248860114764515819225732228935474446034051964251231370851656960241631566117271096911123522112308902843761255790303242461476957432500427752148884554966032366786152259835504535497589281314914948658591935464678178247829742598232006017717598888358230448476722791890764405115076246465794635354910882622051972885019219194759803757931919679820507758225501510195694950874799870663773639155831998940507585967890391833692225160962185206103509650279888239152514965420239271765967211498604129194175876271367896126601106746633415210044882752369651236525343594853014432553624734516635136463753479855473263781927400190662324999203843513164902089372337790429650075452348683798465448554589945583473794731722663700001609806317407777782689813357456159661890319123967308589460511567713058097481579195996618198160819424167218019125201598401743526152474898657628295235643870007844666504022461928675274954299723226989373167106143648047579452860747832531928815847502252804061936278166938688196364725880611133930787113651185876518172657778399622317421071983234709535705989928741922589268367785721362379673858453599339590083681887065541915801905248003553430127748187806367927993703512908519698895814576997456990374030600573432355922079066534202169939439509978830331417372950817031076765919714431438338041684542255942105866744922863273701320401299884694405968676083618704366326917559970732583131987147825485980558856209217290174962094943602715712019442208698965851049398074635749485960274458401813566199389918712558983076548015984563738168110750970389075718431483655943418880987647299840428722810510572927248338619785208736770564429731880001530164107816906661143882142301370057466412508072153964921435937807577934427119843445845434752749616931258423303748099416056926639839454905453192947273881086078508493800594874954970321898795164868184388470972145064579383951618820689368909395433327648001008612052519667967402796872252875791614462646019080749860179540657069328942263303356732374452181630661511246207058716550473146070961949635633943930035773745909295469197607231029728752093077250020077400418685849392993999480300689847558012256812428619292220481404742024393175510316223291545760999600435210680628720945434754663425743776379219513267603417546722236806521506920041637772934822992910192841531401274234985364034432681907606642355888936338560102876793370282449216486337761856111476068994048045058669528863799382635950881760853827901028055290096359878970763533708572967634467123787869792330041288274772405083868553226082707236015824277190638587988813020638728175008316424872244509398306031133808848226806471776485900413671602861840068328327728946013521232193419126929471054300497614926081646780805274116117396279227704152793199332192982904804869463196812005576289509294407782667730355037957339817969820023222948688752842315214585540913708319227830043337141593904313867408083428312434021632415211760057203809100909019947428583406374246595414246996772785182397679088682098699440999029032422890238801289982437755198740539013828882753270668483775224187565278410704365208671583193737101028516679175045482415412214781712749910640415836336551223895153862169726412885416924880397771398246855552167367349484038912768902424284746825620119528512369492375513785873854829654795233540623602287694170479104700563962926353058149464988255169828110288093774283755768431723768198411749686248670478226196121549224429420833806616624042082737226343547427142753860632971393693476594753798159609926973564088500925585419773719879873114262995951355172556397161484245179743835931079936037242752247026058291846524883917061354912348297234479685585440266592696024394370422070732808014150925002736832329225789626808740936642107439838100525760510456843901950753662736612701848419161154184690999586097757370113040829812916188704275496415392825182939848064744574978083260600564732536596128246157912037302339803869216263678715637568047018417143508033862316325177832467906517288204134559577485381755151108735655902793979134030647692550125839951106070814849777120618220667390881879966256596098659322143395533416406425833640344348584504212980793452259984808778782728199674635205925024875774288217071925339708168453533660429946686288737679364462615563410047343603830382738222160188972355582642439872672086900027799878031004992668654000541514763921886946295007252989301764259622061780446388069812796417634359132122121286559244858970152493676332330199319421930895359636226872302970341141070599218133900709431153737419368106494777201329566801570653668157879185930464850010971809819168231610179128249105696445951432436334027590836661061006493722781481423066110045740360234128222891238820085810166459165138824899402560757836171728061694535136539076183897414970062533027809374784337954456569717847347904434606291405846893423482958774846355152588462834641525660149571137220978885750398356797052005671798293333692078669726922685359677653870896727642607933448116932158745929040979331105613339554131397828928474284338124792688158546862468753872649202683367281720990288014965132990994548902533855314010884462694218347164186239179097171508867697719533124729873706611144196536655870751705799993343193922637328297584206691125860671645645223388611513355284869867459773044069395338458797734615063604723568722737110199926654712760672686266823331410149406006114559682588569734955714631091194418892670192815538325302435298709521418448254685229748310690384461181892507951411987604182449888201674303511306968415456840082013544994111268321864396444390482044568290689222002491870497375885672500675053773472487042127030413329618168052745110249180574995911304930350991620593588674322343065708898824938839128299776908825295809413541875249403464534091564363881147260607485829184677157526281518574615242125967625987651379877405224437686116096771951562935211527070489193859574445115392457329165616967013243889285594754053737529215537348336465760052611459342163709912271947172409698889076020673634490921984888426143612140759318860903921688105025996616533055676875027616589281091342450211813377347628415231193275784257170599161723911945112905633327792825078407683053208108333378373914280156725475869439040881765202014472630300819661285583002083472723948934313911125936519216272156504357184965463725189017217550438028498328110631737560681072991140891962102894975544332830021907396008165645743550586895054020318961001496591572553278232993510919532199098494648130022170842312643799588454937802274023341276517336902409494149810504395624866737950156536621433732025350878757558442495903534104465611191674107248238945417456927496239981558711354063609795797957287876157874893483116534247702077703631078475731005602340589359377496604154546746727968398459783579765327357947903913924045737739015626267292095447396548353433278954696927202109483866267023738659477872641074707966010839428488394955327442074622713333894641161328575823498604890267977806688198881582790034980550317140076614569509371558415667173398327922426955116034698462600164884093915390720037459860723408284472432039556879590078005827912880785046853749776380017792086380938404919476016413635567045625327688464367039253408328782181826041376978449831651128798981083576240963670496186792227463459379765498169307608012799611731718193453631331719278257562070249435883002214937793554344129244289569859960309640987288383452266163405081187577733704375331406976110026874481268078322382938893839634063104222554927119969527922103961353368015873015310329948800225666159778421926262362675368452880362653196577567494320439271243949167359109038218150746503089509700699152853166721917421806623802872022226830133225721077852644591741879919614272966599943335958928358282405962866877097913858603524659271177620299163296261717715441263980072928875968474905822976968108609260291931692056398745564650078069936042929693623738958914306368677326727159746355574535154932145472159258229395296120587165416597390903414480368527673370656336040883786076228234752924443375051678398141480314331488286382819663195035313852717249376984988794701011416276075980959811175733881543053640984627216083862397020538268477538122088005053283109567363969771551031696732601400118207451777025918580264368586896683758105242286101782185178280455357181682640890046968024051110369142624281395798229617127549906776043260335997139655900287879363482147280914691357457422258851038365946796902986249703518654987661723826699306080574655729866789625114907647372281406804233172919062970450037459249729679608129524703024159966856245727515892209262098436797142741692552141059172707416898026693466371431211058895524382043088866647262454479122364162852211759845586816532032501656648094802497702918081769496864885698560817020692827828573548739285116423574526336851983437989258375763730184720322018883481699969903136612097479972879932534848628203494434943004982313745987657870104295720645933554477764360373291976739041002218172066192250778512460083012852548802938034510632820855258630371251562187943070872173555010897762919795394708408757297224976190049746354060834017879606544723683418229483302145063163332768546580771350057553105503654362374814326400483172707024073575297319052028190263034031757224270117969112472948340475148646627018723788523097034816416272051798357981740807329747833385402930163411824729599733605749736957829417626664846988893391186860499864602271247944638092202465521851271359637355335923224835702116209762693282188409880129902095638208909823646392019012521526144111506683847383733778905509087407495597536235631812913920894953652020616426596308323298040528649407222811053997736435146094300213691321387920118400901459839509282238206857240062296733678802843036579803181477172863818814787826058549818215697011829042227851105297817273327235205263628476495628447882562392848925343905043431164505454727553688764873963237387027970937144024806523367421742238164844361210874029546229167615306598483288530724604318791276471477601590569866855263127596427144681246572976268749642653290715224276763914667778278496358954420094030783625404512635709013918779586460425116503776357827543909316145402847300547258675380134980480248623879737855802802217438180648980794957090116928956918276671445368151907503842349046995467464143824154018152205313453656097771120592189321336937930520823737935292196383259269349241505125460186434040579930375897564206982770009002189109472664534007190187181075408665598711882569808175119322853095302901413098361397446997018997209802474625903195167609882868333743274113155960668602817766850911546322213324771221278854986207489387395415543723726522196429494864779290478370557568510245104243337850816680453611658398978613723526221343539754041119836514411038936847259315477300459077886455023347700857547084441027647719552808118510379002827355533113908066417765131330754564131157092068504916170396990837556045616113623175301644266124041783753452544656116385878267045080635074540737294177960173829473562935880512899748383071600292981264940846460752543278786570816211216643538588675931848337788092830667402920191602000395492528979424136642439784157985075534946976602592546580334462996566556973535651924731741191425928609151413956294088262357881587699671482374769140915432129785950572139487674532849980266154790708226884652182893396673974082034721717276821025017206392346831938220296913346752047073139298275683161221876809609197946415138062344265260701028672153831149173999952724046781411153283522722075164998195635806085394578221273964862752410491214390092780694383656564262114712140310569786048520980093207795206666884793827459175054001891515111336816255218106336800965585874347640013486452251614311690017691928473982605740208156651624189241028353350070372713510116546713351498417767509882058803632238871869703094964590536789553137136912295213701537743502558334826757025280885300028612646360839502337813461498238592362953885612287525909584372550081758319753594273838950369943585773705503180410701823458765142230451064757471030245165408970155331377848448662614616770510804733171551707421802981308327718431213359935013170235985436955895766644150015901441725352455304789949486237179817623327601100825622700695005393328251104094154127481394122722458899401346468999909449123686921723519488070945195841279181311136475804695336116329711380583510825074452226696852874564206065756337556779886315787152229769266087422165202963289528370817177497246341175800870236646448548475317208587953136130404326395847307321678123054695100037434922887557578888606148878060605801261788943188897357450691499173165940616730931773296509101087929847918333056113509418291713807227928124925402412698425729314141409643614680431568376450718747585965048240929170802670566486119747401734304250642333951070270528207642907262760794794451045764568469603190463984910656223904156341060941034614491447222920089923536671792423591750052736380219967178668429742923362404512970916966969040200139572202806633450283909238686828835579706631309188453269985608140613081863490048752887298048124873907017283475493169813542705181900299309876789612181589380164220640120046620408337581947783371277708744629828735524994571320452352257366945633604011174081291285117229002337113008110951761475352639187751683913775432140455903943557727398180758029547313281468475798710020929706863321953793501344827720614635119388691466979808333401504302478376430053567219629994969664476800032398246324865438974566309514028825809256175452979823256610983211253227620569854043062469211047215706822312147798734935682275372021545823014760839100727086381001133010482311696172694584361068494458631159380686667976469324104306730399296793465087352911137354589525159428934912343015963016481611500402107308305573487627010453338551543850484657415451703202037299569098689045167961890738262522288752890995627432040110924648024046516779423792213922763815180503725951538719673708777640201930386061327048574893593252029356520899334960552592492112419204622827500690978524144239267899408379086883118137673574593049283536981479285874861221663105770592726275476508564373096523262956798791644111125257854822999494123469649058012808519824363231436954019178372846199157568115800540188023926966355297662080123261091057591036486847604575059693276953743372920579319548816707947285247914124498098890496139900846222431252148517599423041146564006358591087538523737310396511303612566183826747679560903599545511692072504373530406803266803926497429973778597513530360463595265921370096308000180301039512582072475295430794700456339614316471765787685010263080108610628970500747576156135653409642308185408105043289596254516239903217999064785919218957272231705394548543553656855695806581067273246084296029432058670196350207185606638786946378624800637363406289734493612285385618364812360008053760474664808363717187171288225741762554464203038427055096739437176512536135728267283370849083690221472653869119922523552342004964847188348510024397781954080816303210743326944579283236325256120734139001307067062220100066211043106824822789781639904100349658091898967840147424066274633783083677553494892119863755091417432453419560295763567254521375480354179008072792300021083429709240374610687424879000724679859496382988507065684560628903852655117291565463681628242948311565414774787525897079677812988684296255323463235942503490527365977624078264755721207746570301240655586966285803169086868225836971793507410823638122126227120080143955400382023968433426634236383804696719457323327227869107844973768076365613993302463896175194632609008143235528160583861833316170408259341772835585117705214821788411507516347188256983860286929257699491734386428839535710349548422781224664354098586407507371725448965141596707063569314866469750509323981781803603465494856322456306414427779386635286767605020702954061399323294894804370685300177812329037901517021369068820342212832687233253705487936659813706754609534793528684681132964312278776832080679318842617993773350300417860493807346159339961703827050397330985138106612193833785675365102047107377526069098685150536039315334455348210603365504910496074762698403250688995134800025917500286671456432744987349942686454626870132846257273269713902812060156485689971259935754081848381459480093514284596456606370073493855117764258431636147676774099005270885810106868029168065036085957959893553148496186549879857893379289149628306541982271672474259256136150942226040328192420893990077814527164428368622304205948081766125694333072661477920553491017772817306612527876504402382199208429692608869347651809111006973363571958997865494461791130224120260678153859440713166369618613082863133963787208483902698438387530460766623983901016426904016034103068778159664190920019532557958094491273427140251484074484138765224021746290051847747477429467501552883572544789010821638162984957231864824627740635106991859419480761146945430339816802884886018901850676399881484777727540015425234821871331955120185945167950819037086614053446802922886804339210525095563634635872746977047255411717699038316343288800776856334225981958692286022729215914996356131342702651437921744969035687473833410628867264104319520291702928498177404061245780106571918360755867297812952922028811155782570241826589647284914471999632644353106177163936933443452679531541250130428346909217022943086674771627565457908623340408503024304634256446849758321390167155237526414109805745418430048239048409014126999692396445890577449960613311166764974898629337246551926870036604337786038735051741248678150813977798417709840119633620609492339470301451902657434939995484548287116722855587941252397123162011373369102430472124876474676496221536194605280235322075992143827343558807222774024791201050347828049595082787948652441127069226230572760151856810020418817331778715654570961070833535898664242719827747178572616196259819716733761006344596742520485156509880475092562419118565818385120455383619887384536070922967642240739953068331537144182889118444583794441872854484321875796241219619259162438865732441917316797139687950037085234781838444010430657923308108107615897110880868393532091338951098575679341293467578381300393440954161605905857225092772890363639842185908767695449758742962854294110166864822009162740740928432794654960427042767376524673415315550807859872381261374697223164174772056394716122037597728813564677890785582353639667928605932231663999208076653168248249227951094911759063421655929141405390707430886785739293041698140860355229458899129120615215853113383635985830010949644462709569249864459645852174875842084944868188562615121473163807565479386550260641744544824716650842722719390382769648358971624597285449635288586325013125507066835199978737192019273025114647400874293905167458663768600502148869941008954965843895892393973406647807016843262424791781934207426322126499083092304768047825654651933357133166161181413460261873348718164171908220844799748196488316064960527640749720132203455039717102653892065939076034935613979621499909518866451493932855312229372785181353864701748283438344845693506643868019121054977174311866127416706970086772667745126541221536110876169175463289570641300867377083800085607536115916322125512332875314201595344086690278690845510342282322095083128225537074147003626364731160870286213076037518747243584741137360925176056627355026163860786537640902795020683476774572026768163488261059411531210016746411047894499113856756985879822123618310894790811411796490083994238995965452417558503544383444338700188553727172342714574766179199143294215276667280306559493270256465708353148155791981268525828567962540617691314993820087377432469796864226139448302718373254907996358914243487678478008826594663264640664416964207936480263216042503424381236405720057619854589882308116495049920440389251554046225108528104610727431584793009230429068198825236404790695119547968277103537606873715563234240970473803531340498040187135746237752947964668464695891651953562947254880333102978842542555205365545383526924856376558438105131468708176518028154873720097940344279340691874198121918701874089988245010126219055822507244632921710165430156903367502210048409925438213393647502656714172383891586410175084228932114503731424201916936737868340481053831551347068495175044123013506770744551177912549633648208955191160786734616187452111594659292457169378947780297924857504692040907616404569289767620431678852324885321230992083058102307747049085844567809879831945969739184884950742496936930736757450137177245079837647550321804450662103478765801349455146973355139308060839168030211043500491153779260487741027052139867438139228070918715319043772580732564856712898673716282471331332207746463118747530842199569109925685738137968879955643580649367176564639627150481020175682973755625711286340679492200943540158884724844459715837756073426891581381509881847716485355868887676800469317720593084367167224613395034446307633286147892797917482881620566388493692640701287145221955675365288841332352395539501240875012360944166298368460948168753758749159843137645170882326889553652642183679621274489241416791682612024859453492093333548342003466636036935685907710706654182429232005169655721473106152962065758407800674541010405930765111257334792972083176815790369542879620937604432804156886276592676841643770007589848602230759309832367929661784458937553409099258193742797982500116840041174116833435861389969620235609629619206301885936941810075278594204911943030366388967711678035275857990366961614233210251668288224215282728548546750339484497961189668785902992628305386635604004809963837625115167463921194898551704625379793577763491138768203216377191195348566124041399272986228148071262234360492169087584998703781127469680152108847610337139838878086849607156207198440519442207689803215830238864630688002670785531351030873909874067285524131875749602743517156389296183629247496555819364178239421244334174538937807873774322807997749947671124248842836198589854211119772067110897057327635906478630877763816809710196707851357655663156355760107046186724478237312864742521852645437621546822328228785111783354070909128845834257283546591250339649676387360889445713011964159664648599992976161230628552964825379221752656638214905180034994130465312356595474261193282785649681650365828541814438091842783654300080332097745585685996722133374638310514031884930058086433194071619791626135691859518617427412398137292440286756529948918439024174404599564334705188360316775210053682885959343407925855003656497785812009419355298016711519480674281393370455121797171193140133126781369612966788513627398808039022618204760544582886015537223485328726024904507512343287255412755892990977876379338953853507725860313131966189054644506216147832714472896560616717184155354579181117220501465202672200854636704120963644470213247088120679378344529332775339749216818161574619178690484398546184858700390792971811559115672087572627909250472122880473070445947028891278172343057443532576818812620218550940980603067182393963787222774332843099184806943410291406973224860882702726183601589106813256633593741610796104266687645402720058676023636235909875209142017056280890589005859739198887084628024663006272210452492053198854474983867503228325224585899133498604786347175450107265303141365397462488001094610648221225741872074043396615580109551109320651869478064229720126553260966937042945564430995713615617836865299706606821418500981219522883305023554787965191116312695457196453148529107128124363147432114525389575611067838840243626960797171580655891418544383003893740683485166749423115783283519688204833866639476341912307862023029931856484370208512696737727548796947517810720911987595959840710246158936795365632626390232943015755764099270349558482370831941638874281567032968822362150968188003820454138156232997530639226823269035714543729801132420565338046354068430092591796826746199961092118449358209559397600394290990006849287862963039217535120206191808946737784231572020682223688249779775808850256009752469909383429619993056968644738117457750213321442459181077996272474516874295935573050446120882272407579661990681824626924541185468945210461489849990590369726095960818576147475047776011147070118143442521347275189590201062097306787385023532341696387549930203945345173226662752356054383434220227871167552594646505766096555388761387151203196036926194671260067422178629966870751655262242402392903775289349068893254094533728351190856875090780267610132504802251866317499713462291148519611988888744915627041259167112771041482992063202911477508967301668983713303653332934444614603133232864200283567760002561338961267355743201564753459408510174057795290302564184911047102497812759012434482468044804700651592624754531231857316457057881805104666395353400501867604451480156423057565351266485774964102128456030329227160530428807356489010070545420392649975236805506721821494420056680589217169338110078870192289466076902642370151095773432560075731852145530599808875036679122099627904594695947309488530298310427169742847271206678426547843524639749807107120629407667704242712961896151220888433726039556386133205605724829776252412939299683164943124547520280664523638774582008055681612491264785667672320813818948708796694200282352072537626955261835052237930862579003737481985246564207718912221284841925989031346937697628242048413111321619209064866039510361171202776117293377872040627303737212937263904429694430996549160991813022689236646961052500394348692921277994224657134345452821769274735503438117722381882836996119910558535653034988760773276228105778213850127982880718071684786424003473015318471704956333879693207092617175536363423475367647449536447943748759318516007866060515993985418800317902829591005528421289887901125906053538167561153470536075594011160696784732635390310856898303007512411193840524149399896891014063752376351177990961390152537107093766923006791581676244002021653606055006814292097766358684939866428053237738613149115352192636314279834578649984733335843144876268547979596862788308920683286815304376973818451906408571260604213147447839480898584068955466388867774554844688109852674004505571167151650822908151155227138434543746196123892631786831043186065086520884565917306349842355966002913504449801544994745981724377147973340709123131985830670973132729857425497047942503878997884321358924532613718270394670434006287958827265738130311835422070359983745275736496243746418833940382609572526399728339038251916314369604072771526274406689681965071365557098093746903164553204117963482950276677894622585576659984760275481535947172594477343371207817680285157394486328355271927891743359204927404012883976007287775175880957567752978654161241410767147259039347102232418087449564158771625169063907800879745336372399540528677062554603029010963728865861308265576291790477404600864464649137309228079996393288473594115059921315173585618705192196338970081170516682963040379617498663257595689815527707260670696476432432593380463302901510554579293561059178303673887315773048221767433674170348749331097006804064308773149243009347951705121347840047342202088117007156738326963336814025887957114416722867248688869219068734520478963168537381475817944774963551151428106982392892172097743514748713085282005588748682410803854602598621199012986087678629420600405296382195985396760405184627930502288772696671223736894106651106976344975053338378890782511633297968474507337361921071497664726707617441297765876023853333085220186767215273439993804241754204818462176991628976611435900784865166471695584250091380709167009808076725297164335681361479237859929468964769200195927392574054921721449956074806524679619598360732049598096166350587679231267220859791358293248333491819302369481377562326022856143943205101252418829154323462456000669728528807988535769500224221443849361577261584687706293944066386662428716020914549661037510731673426059966283072321939229862807048875462868711587739624792496497495644121330137451050431985755641902911242640901597080972566785747056654230107498194274109090474508540274758404340092848080418130917946480260450808703631408723742035332968209781638449955738931534254001625960229223971046311360866014452651714922754830078791156679277770440283066208780597068186540906698183418055189755909955752686127999540267824282848061607182322997757778278862336428237722296840668378611204545143593732995339651176827706091612552481592834635296056121398234626305808176510969879865436376934451443581001378790274760070332831720012254901470631049477115239716116807104924529310900178381960180787898250435656735886703307490892176282301833481302368124217882955575262899871247333793345283682407790742638127960175143088127239518000489693573440177159617349495562377373085833903467552857808506338460395077998387447400261441675114834571164865837428379785270513383963204552305670210280618193836494419077267692903013271208752248804781016092659541417894516296562576235514629446190415825106583439306617877809600739093820993033803922328895825676078734297154123981226488934823200134720569112743207792043611577047415041113734986099820836286241035022173943274747408989579058078516177325391016968421668125466159863086370345492698814976220701570091589257606734030549143865504997547026691736465783732018493717825718734007387295246538775947349705362818600512367575035066697598523145479405490390667966139472342113745396128407538021110965552065331734358492814138374503555224989852127424198232141781750329534155394929094358869336045215195859030062909134860516546887066899909044249681525202243305354971308772963941547490127894646225679106905450735974207767891306936470232970577590245667294557222645569432624303334454249748760295175818057892596370198937826065237472034056766071080660910396408891869217020041859796603047214487154551029671446373612605942085124772131819590443005850663798078529354964638408180776098783803411445435637778958982951393963207128027290830899390212110844621452687371313833214631734446018832968673397122155022198947959563508793404383636824486121163980335968731357101183192471963803594234488754323485858145870638084640676475802089341478485065185407361012744340627039550084587415691251935434976941541308872152750312699401638330040131567964050360520237519105239060105248073079775013158233667144840662097341253351597831139471809507487616942557708707376482750826612140575582159537694155041795004831869105363955508622307840979575096838082312197320848788104484339090666545278198746675891855164979326574327748347435709096424985992138603663204918176707684228197045900904752986526539934498152038362416856501964375475605940103764331505802963524111335929210603953699768610867817059623910520181969513693948774500276122055989373620525915671307469085065597816866941672192903942759718586418094072383175704157718258203122456493447609681143546642900212671006253484721815203036132722818789472576679465492657412384170840473645934866808973341434936748116758958193601563530409262389498204972475556999443281420482121824936388484396866897054955486389964431571753008844097413653979865985686367599316353938415480004961194505446917252145877349458366707077492005802932955426412042502702422313742744088600431985264894858350172698853431226330216116102456622100866030999962596664310825038921121978426498071357012083771196854674214059943774320725762149832905159867355468740204838995572013921583834926114427563650795035395801142740305142800278264397723245066681076665812968242367522059878513563051356241773822169906980128317980075945668778717566604786293485876219776959118597340568996969404519266387828545782721488521992457605061629834485492057325700829324860233449471956555474714542150755391104186236600908488143269838479269474519220918452352928471587760015918213379161686192595326968180185990008508715215781322636222284000883380408723230950290646469770665756236372795311614336273911615405969324781799578986122989013830269408473220976056149432222657899952623180165518203866272107860081175590358607632545336526397303958713706493655808690812905033861015153419680626972559704312852013995194053689580896363087549819013094170782031314036767431709013783110114140595251620057838199167806987452804968252666499946819038681099325436259890873213371288074320651422294778028159583744859931939196430746112420794759906531108226237681196500120499273657451802858966467999964941568170762045969274101217952111562153778725719966912209935033782801257538763683344239704401419812125056989406141634723740484076671760949690183727039713660681342730772700949046205282612182790580294572126632634246749948336903585920491968471869523166654129729274479308279115076176581984906984818285637841443434208209512711331130020621244560545756203464619343954274705069633619676778060476220809048552008490998377350750926517263463327237247952220824819621930640967348243453690649426275099922051924719679815429848257776505175444449590588967025491775311059466940905715067217497424574322618663573787847828046223448947810196762222353228598827016046605409715236695216051386752023148483735875199536888946897953998337575421552190164038103009278200115580542757300002085409600026053661554106870730342058873608663492729620175876034291965063796478477260676607517334912999677536508600468925577708765926488149140662773590692707847198251239891030064814260014010980213426672382143345002236098957413385929130211285150523308935738713480498332091609191323660294428507263801304036539655533709857092577419607417201610303307712830571732761484871952881057284728072358429432779767271358684807733895147697988828233429070186273012025758082534501301139549496288760232820744020863064751576724517893363131276883964054677292057564774903230590369915253955117042867795979992459658366407793704851648173051891102202331009620034896735136103723898328639855649635751064988191573297791002541321922894979837823441698978813739103206398513396994255926829450004969659731298959503211902332231012861515675385282478186407699515013187656719354052116347381523500316803419199243399240436491615405840675439648198983332603581947459251163320542660342490027356584259918660441051334177793610722482220701633516017440286174267602748673942114538606913592126144135626128816991553031081678445609093972448398075607621018687919538071534017958860535288545180969814464922147414852208537410943367300562147956116623597605357871356159168531791352331656667741704370286600049382471364532146263356580318087209473755002974772539252191735234167095378423201277619176114107428042704304844769703634189035691939218067852029112867423236825532317221315910968625231704315566319352485557325868562645399391854463507196055903332705409602606049495315915201521827307275292788811083298499121807854961984440655464373259432584720386922413579175055078023859899068517973297186735749538040249836973906098447622193389358925551972886200348018366099698490455539504201184716456154548353103094054969312113412909153863398812465100532081863798830896741119857352309772043651052703059370309736156109789909924889412834362312445516896298591774091590476928086564089693671050308028356862338702372564542507337475632545241855519520273696298484399016253166120505506288518563280994947842899095869304640676304649822829691078393573730653905290208724667825741545782614405364820912373444722255101150318243352378151652424289706011233550457625960139062087246903286951404121857722785248616671317426304586413305716468203897009837739198247465835442570778125203723526218829471418519239191952514858618739925881606462106586650323598667180223792353371652590870265659372981653578111689363241627273196125537632145984446177514257371838742672775479457301541474890215854076121932453524622456186491099290983549333619329619853117028615968283091619279700439019728383734760682800701688416582235386770824475036781361066477957917371208882691523388123276408519003319807539607664500311360767449215961703757422789096569976106907619719332806610707198475349445460347538045085217309803459028194740795550445310361180693131213560663227241808022317963884712200515626166411795317820725796827266812091256644516430653781967146568098677196991241136788290270334839437619274293058409585872807315037180899473998432889455270933097947007019179037949228949998989673509127283824132896699191457129993763299330507719655541821627550361720476609006263145074335878923863165521098698001579298061880711513918253412830655033462893763043269633657186312137025680580976100423954339818464589913444080722822824698316302234220476301253511919586830090649011371989276610861820273182289895478246715620879646584677517395731837815986901575671728058611378500101791451955831724788542389374781008626095250670584644148717380110341185971320495170532207629905902837444911885900665886790030441332309994577962593400547201779532835332319187397960885684158834210377716589901628471608683517817985765201552510301585463864858474979596322146254801703024944504764283781811345275627446187419987701904144536208067073304131179738960638416189775657332499715263301244324560348906269362136717572769199232536312487951670008387501488066343449918036013888047509190688698847380496002640410585905947620690845108031512655888336784065042498282761218074134730197084973248068050286290870869087902520184590174848335072957948160392758881909576220369302215228112045877858562961631567558606656066709072075957234532767055933150662487683776735670983231898918807024227523522290653353009951838849737253632186288611550364273128827501388820067312955134503077632797951896888159657401899278092585476707014033413700556074677613886480531783016361498712092178206426837814576992673646452902461627874598652669404308097513043176962410171555866457734686075811117715756428341156926058457465393417662216977778595085570837928038395972252267624882041347917729336292562623016515076334868138339938868352826298603263399623937948981571724558835528568746050167628306931988898271535775749482379300020358759054582980916759395053648147055204758079449824512416310053570928462535314363869633535297717615280554527560949353722496538224461717899389495159398286564595573969167054330166932161599766662427724970035866390454072249586122158898810375886648674169466313293557042058576656301022463702916924985519431276248151480162963353760024407564689024112982198319101764474395843479356426027346845534639444999473349636190544010009118976879351809792254704774048566206128203510799803387944954265699887494951436571018777417538191966733550030626251155192870816879348342080790681075205182981537097739628986250740261078759005521720351973311179752249886782889559914697173604196967976130798865518624842053587892540513491335460318518207442890552868305107260213281080210053859269167900063121288548325155256399577606123549949159805913288520336398252346097534747030255137876211713053011287285327382143200963016681636127635723220483081675798167922800721568847508524947785089060706014559462825923939504962044592967873285411782744392207801052212463305868476895567340397527622860454187155746704894436144197839507028798190994641671960053690384770018958006839110518711813827370345626653935251584974699977306848019533047524909026863089045971252082417456954705255933768199923232382205432223739514564414796725678820689334857435183550583678677426262620792538615592419365512419134254308913076113668689460883733235590357922340506569725295941492348505181244627249737821093396339381383467789311966601360123598728982267297980224907644042845998508118324107787420673371331955875502142948089292290065948007457082470608349805214369109065365179495114938569368803669743501445879092055375019556141599711709818332740018172688034385073401632011452539379164818734221575788371838990439727019119592282251049082968351488144516843177372780656923390028895031540319266321863192470112610608943476298206585120441775913395149377227989614194401820850270596844931947703115969841292239195675141990517044827898827593470789286402555234411937103610174357165818831665302677727875527277122345252883102401003922207866380640017489539112894328386306312572230916851527028946448391436346809099791013785279425076196817652054359791598953693688801440679447905270079798931863198266807237330502774121937418603454763933142677943143884897267954646811697077329533198994134611838332715289090088922556885871411066300549610381570714754954150083573763812404774668880440053339009773094497583558821485663725242968556753809164830985970978384040066023358297171509214756830036412994859893362993874221229313267990445145503066093810901953655924996178896967844599672124552838485727116253218477298743340736506898919115066424087830241749346744759617285516693798964925562594417027869304175110919946943459278977816844791346540459953941629225545554401630140203345933049265590874418137705632580553025779671747587830086487965187752118683979634146327877358043705752100602990083888998696683731553924648083603305487875178290889484627894122485620755497642149984573942503117675036256476487028826739628006777392178679013224635774810082128292587237238201224297486445080600344571174908100164093593282508861431917572168088645208250519982784974960182300674080280123901993796392978594435147857911614517633649658442156052720134952190495919958894782037593081512014755712148392288479075378952635771933402164271420886009188169603801367870807908542917329230249953822291210378413717602800044903561560785642076402923094188243889344488478146530740712025670152628545409152911171695091483438611524745970414861140857903976798250805838456142991152862445959659756985131584708448673757133571907157196721469629284920777054216947673589882382754185806489552681588003144959815001744330762570422045921045908217465062575620298868369780359327987987889750365114939520726117759871150627917842128905636541493448484392064819762626970264267910773380808675085380383546435455427964289919442624944514314905734378936601015814915062727497174129695349168875603336799198095751805408216886732242995487796293390293460162336224316810329796235728388866755582915223495330163549719012997670238419649159010716778474814128695454715773225954110584412078400540951226845889250361192191251748271839998235152498341566112240729790507321015467982275056489167764291190465424295538163515347511665101616359594268841977626799436200451661723944681432409993002224238242400161484491896979924204156882069334024080401825299554705500897119941008750186401522958841784322596466805414967896284915263839414867508905926988392627132849769881978218480734909181645579030442910131910739597004337023486896555578168634568949640962173992423580921065003044480429557259765410860766618366024729749126517202289365856114582868220206743021106485437898811552578284291886127474671033319755021713992572387509221754067040222802154104956615598281331856535803653655872505379945991628911326887500005208068512000816996913537717913335071795512799845225986389773740643665129063453083298859987928370210297743388141427168405809011879997226518431293793064075146797948316317906231864040261958267824789846403721985708327985075502192207966630603480152128576221614868576305009237736973099502874510904446447319016220657104934443619436033412748997357695173956243526746506711180155413737350215116710068163294182410019698847896563314136966282368930115163536849415247811120935164170892962592850211198838224480457319795557563885810470060174737955167952354598862532296550491609953503385058180440491596707149874036025372473980591565301417758652406642259406045682596711818764963849197026885326267349897773487383944377023220060877271490010327175613630597243114039685564102773415020187013525380693073393180966396632259173337979665525807447717871853239757044796325407803590123979744238332412194608905215068179589653516909502651788371745466486650347923209955902300901946804925221674241032890070175327643483872272428967097670773159144125118124973543369645745615040605252868285448652619833032562801689468590201049341913547056150096614914591322664287432111823825674037999993176424739502114350116157362642563381953699856605415118259836571209366396228417749696156978772405363499723743795194885595837711483478449794009297306547738325701782143137852738696273906935045414761112962699756281466424330260207064265580285565180925183890024708441082851352453552295267356776479501645926536606049734238641705445424920407935198396841999690362693564501961091409083039805700609480596590658159564423773973369746824114709512003371402047529702480467669983370319673002793344049253239134240205287290965430504711383840751701335102003096918729066055936888268491949378778920660446007231365845958074392181828615366777099455855819649959489375567047915550910836633391512384953943054731590027867974580047876757374126446343010504476494851648945064588216502476639512677787212040702867669044545969070157900035900785045986080135146002785796092063700041455574821587607653350820543033964727104803360249403596407996960467775727797292785626794271996777101094951669216404743145293689907549738536878666184666865715938209917399081432628584650550090744567645130938217650618683670309102554025867969674770991474825265692295762719344927302571952463443912965424443729582559309270796886606134101948295895285532650973475013875640921622255640053199632823022120555094995488815432558053757508322311685078838371353816639968854686165351228518053311621114810793251130259321976990452581612345060107150000932654236351096299264363619235528713863703575849970587405549553274980708850974154206258096395338885640743237464294107148022161842810290891696615669882701132776370523452507446253067231275514443158501726856794881859666994050204854524563109671884949621806486762497198764029556640332929461687015373627352102212577256084315370398554705835362372825855292961364460719926449960941683063454206252899051243506691541181147804777493938070367636125498551398042924521610655254350390657769539838450666452364790500964585095902590947052150586469773392439352982631540379558553848885805403132907074396596179180998100318575664302278597884978505918896555475314780265110397658871300180918336783766182426602095675814345528518546499557610782386526304181154309098620575375459991944432426969828565796564143504538967841339386565768667465921633828878424039468307920764146215279712104881886658423521663111374122063662559812044020210652585577412855958906255066374778569071081742977543938107226627644292230354310592492521412862938540392128674457217129334284974468917964248666153587029827445204885227957543024357463800516712262536012921374625520382297652500929538137236242875750266100785784650453834969620575183051560279506158771781340476762388157061184357947503691886689510549175169338887899452940599012953788740085726853094820357893274958356659313162132841733865308309596266405154324930828475838868698315073831059800700886977249027280299731665657863895425593406699327662710310587825774147341122936959093582955608533441648453895618257446271064817190403360997246526888331049942270041499013532214713689763906622453338741244943308658741200342606870263066133030879656787507608454045776649339262036695553708977420715028635595436859439288694830259972836642189977710007738798488237367564463772535609262990674037399929625932151414142342332783938649796458010163364445470260473491562827317253013770405553973773844152603027054080125910924454661471441469683862531405715341182332466888565845025010081485543240122955865295666907421213599377232994195053118280371031059034362160768486766639797445457132873490162347840552790742123176853227243624388426959323338425949112683388915946173351955047729356604567685517026022944110019334636129639300453009291451441365389115057349748840904744391835184748264219417281151039175885377981115696423882670858535900600363823492242837317843592348795602143039119425940055372256157346193238720131811921259086945529632786344058740239887977620384460828545528309907946790797011656141306932205373032484254968487978533441220508290923131079278347587551775183253825015484504579342950120598375628916278868831320709289596701885209841549906592172756011474335306878911441949391410580855862028209418262591866279149596330014288253179119572371829488855318674876290075543552133761498934081671541190687548250310300110424720898893793073485910768927529268723741182322060435403652382054190337238015238036871398069892443402106257477227522066913045990721640286734760253942396310224966177946633451111246380117535333957858002236247374351727378440712604263570363836645123703724907042533039400032527814385863675617046203448697045318315829120896338753775070250964027248672926665965996708783154592215513332978674002780078058737262290338520206810656295459819755510620887928397832005369665028159205540685299605484327609124348742400216208483823013410869510630855786817403798473740733152079866537614092177123315849841719941650509616731568947732072902822317116246105309639385821814393456819603550477246538287918971516636626594822045392385617447813574482820071060872420426562228940412333712710181773780145810644236264948675710197464948482997173174552794315100385503584501394640289583931152850969090823260611034080242318197515057634934076773587260040768675261982938090182895862635527212351288030258043990383876484109780747706361294586484225467020365289399364060467348938097573648387764258284245963025207426761567732717693696095498071139005573682749288587762376646226949720793990879560278838236679429766377233063750574333501736605432876107335510193000868353902365250279309850623173925234555822504764751949654395467401738739563792240048662653726662360983392446896055700634624770037320561886803790185816959648802783755769035208688952615767503637071391652953116381774107887778435590801728863490315424960099308019569121110188700392261337689938385352973319397202431209172137804365073964893469628726298066353276494463104546134318466910394564684710511295432385232810773011478241176221669317785953088442132728054063351077640555044334945215001093283107933047351666820828207465642222230918894878733889560901864280447699395411405186756204168716160342640856054770934864084465159004748489446122808890918022544105578147936640143277417201276106204870262051045842391758316715075636479803011398212615690339197675828913018723388785521255043614204928310267901224506784127382197800976349119736710140502852908415802403029310962841646222453163765793567772554509245399746324077409488780322763079775106775652265629723512486675623543890888630863974811361249779299402907096085180481207205695427408778378691654634440167951794418636313171572320446156694722328030347010996534554295378063799096411273328091202677978952545092324921253359805215083169911384947356023135012975961979647086377308939322720110569187611814542257784626137215475562930778623697344650733723251484580276587061212120924275497679013959563862719815133712083701544386581166553318397855900687776073567367841949813118831284032261691790670405130812622572317865758801812666223294696612116723299930951210876574002019301667540109463030324784538757304883482441604970901683353456204617253647858271450116230376952714749744439486490750680165292878194108250449333656884235202381645858783896194167667216230406513303733015909704052238219455877519404788296536178335593914037882909173988015804922672337019722478484961081288461673682122784122515623933663019968396499981106860471291428798467837710111175404346707510161771738773734666015172191003133456458690115953106138509986389447797172811199007173678122438704267150429915789832003720380097196898167965646640256489298587678413885161615684047804472527071479716914360582441743182857585092647791378657757770709457569569156278885468717049200750429033358091261280249506624548703514876257579984757712314881266949234147593541911631897951609210463128817994955545197337313429463831876001135950642427211678484829475868369585985675009803574017800836490264278458824169801802853760433837914212913053169025277644213421458688078199258074613887217554497176991228871956497202854603412918799100240611515106508572558387868959968286332501389347092154047804101101637193757852984614389138317411013056441862966009341783663245214931339943632661311573357407721032799723111142334487326979599243262424237694050265702838590954038157733974954765099887414505836965411220481489996149666383326890230384015789350712879430676452672599476348528001869342831932620795715450319648154517241400419035243298859832067489769895504370323610536721297181602989400205749490320415431250228792590780266439631707989339579941549432989987055902683958458740883119927238046883292022048757204936164020871957088601252147220740303688371407367185407481979539422447999806688922078891389651465052980882323004875785738293749124976284861143851467952826166618527431829634895765046527874871491214030856193135202170164450925164978125792214131897790419430292105199441384980633236715940535616033860981390524152800775404199022292903851476631178696094084197415313511082492023078907650435175567954265594503430981904847884828803372540897671900601187517997720912364505301177969389576918471196200744741709163557212117125604579810722797357300199233438173636467512873949303535102647052627254985212999870199528894680048015428303413181615296063227595117296952309127399453605032049917686226228788648069628174598900818231927514975722362025264204682826380977743319570199586023519722849262300417689928426828863489199988552551061784285232481760384350975822129782486509034794179153300992066318117377778965179087768678847898822531518272231835577322928067286045284120500176378642303210141429603749786167946355284086481939754437957142290461909066218368670841852115881116502990005363422894422721441651355355627227635491037481025075011205174729169382745491971837592592887924861363539074441827169133758523468577094043505224544205607763530717603711354894305918168563575339206337662508246469795908620422930804400007779336669459663288694478032917154407609984152622780798198932170909649039160405488358363440575587660413050886378194498040198799183630609214188730395098246374735878544517862782560968008628489733725081519505196551981502242316690967575968319432236084172572886525658363954824266764247460001096397422161700396422891958615546495543659230881832526467708997705369402753615802666013103062538531175346575721085519101968450316778977436066816348924970155498441982875953026868962175613274068521956750267391637148273703051893537067171282199691162282123014145866638486429080921854502633062349052095881257114581479396100399056821228110330324402705843110372653818469360991674591747150335454707354403979017976782675941484404622670927708906236536307019468462589489394033649993445077095108409623998511024825127975196230875386924234935045612755658052923482169997039422887710538967721089707098551791892505236515379567799035686358962875614288796854238989519000516968435597680494453875539257610194153808393488967016453375732672708914607895262751065802535205606490607124016690988019640968347037554494929337083642376496963933942814481602148362137487139947259594106479844891048252600085278577995517652990673642012413852583766246967461411340589448476238010479802270975382915678517728267182377723286176914298745730018233684383061582886685405561855879142680620655315148576977800214048631674277498278894000033809548935779535470983270618038131730857565146315686652931356812843463304308692678954629890867074297202633260661166624290362116531702459795732134957457587773195135952588572531617659250969956985673240437643205161025548412754377174452760105092051345445016273852880595115601328568567352598773294914407449298911915073151014662029756262804316726575171091165565937825622022882266499008160517963000026915620088586178145221733090763177140231400280783165629623347024652713845844944873501408820200461769861288354002403433172911540993390261137797562541485537075925758063181528939638590108522645052233270026330894736719203214650517893771705480568847910719250300486064099412898503076331721241758262306854134973962310559784979937971095025267858824140882363263462449891905910509003411740656808616029965700780569375477599704825648919640128447062788028260964062695127168389090679639658153877816099120013192411887652072414714818705271298714804635686690365478300385748473423465619120293342798322045251223435649380371964423211844333795131502334567825574805985116756703029160477665135309995216942720078534949220126126979020274431979553363650557874503525678160181844126032653328513908074005261691602409121391919078285355963225464938610851398174809359807272170364577913381493830928376959019843674137403208999293703131098840349903778605971793831414930881489181719838722609843832647247218262890539723936750667233443943265826510390479517351296631525412612841157186478763645419639213378764392877241084793550439005654837852075338249608095043933579824449746897442634682109022615718922556894204006633408782194796815779853896125342853011729139294625058307961613849540370924096238802155292395713358653929183999099509780178710824603653939344186280484793084233161712811783787559499060204314588238016089824364255013949449617086380990686171051337050208415755552471174252579194489785641925716485858808920941183848536376166319596668088188871310051614250844807290393454497698474690454171524438999372411137884228885386636272557458104209684637883724686298286450179009408999132997942875786082678057933463406919310230223089454044190110115093214976662897102224269715620935216725184284376645007067867216333884859731311352191143210592754315408735822416358084957652213788360665427591126118002479049116108251697882007170747013078846074507167672127544165684280550530536607675673070535528503903188606255352027357795473115693838750418222654743403694171904899438697760757776004679564528864834996934382516672530890001367919260208924918912992133395525852466458192112721507567556656231027154637242443419988442810946931674853469668039770396881128614396665923348075511239591552994700460054971428361659911583796297522213316566081916151905917830501395950705258270811164639967612588388475189865760976653391426064183352530693190215107860376420881149870160281295393268928045519013653849770278166255522784524310864680284148493064748980224975324970075463856820328076288815500264057230719241777216777259669605764760429011727467241300577507672787347019211914260885691884616407849375363085072062500782290835600691293885346001377305061321410344535233480759840437546055530446671752368544126909816845164503795705048459714987781118349149403685570028467376358297378059580936940639815228173215329641839325567784879463333450886984863744237594891819020429638449192505619765837160301855380905130702498967147201230016824982465079521524828833511723082244997824416414625581294187965396341485721166982661787824089877582821122592594944699572918945662288884434818666709210719119787480050299155388024617894339180641316814508793821287620543782256519038271765329088812882727835493288272160683340436120686140354309691151244012592905734553430888005473522928057040871346597322939596581850487664251271576222093467054534695493302972173099147116430645132246814364805999941727136520163819017199040761267429630175918588100348544183359041135473255741190334781696702544933236949001613525995205947190404400432994327743404300495885271885144789452426117543418120476154250522070418585015675581964881860006795152369874355364924845803534126118842022458088173908669081052003952791893034319817999915246260161308052909646315723243913617257903701141852349309932557600716704008721597513139932316937280681067716252044952184637902271187740018269818798526457200266154803908959401495473626296898037062016320266961627592320369747261674938852759503569188122795395011628366328662702476857079843914313190755460396443494880746860064686626251872829841000528120403316192410076643736251573431586378166751264277320598359203521867251254891820948630067582795855619299683376748927888594487230462629055168901972324042032673400704986782518471270480919956449153067870947459049780433443617363169540826163055744124056112941268627862322643692892651439694435006126148716712843305592632514361409176425544676750569497545547285807465532864842088732531249213307762396616298559232610519335258678009298717037331773146350655608104281296760706685761272565264979978651716351222173987948759316437140288769002906991269442273524735430002507662594584876180881474914884578650569836211076494611559228411540336099823514704196447079796911947927037255495694098683154025716452127886454112822402030464832806617657454583629327924048421224873305030217400803031114960605913566848248794448051254444807014398636184598225525729483235044750342823063647970580560401505196050273974817815222335607452604720457066497326171763590740145566080231301955637740664603147768517077945195003440829841612313792189819159405290611962739920666729303396306990190343518232099742517123322559018246606128237374354431748619508948338759019732498808045712376121098239564738710676526199565216303149987534729689970895299048417486309795164921461295256814570851138488616270495948298373834715741311415565897257963634555421366509171699669384402812295231964903609241218267123879695026038800441937882617086267468499726010629015844376241554129739368662410974100141820507017769271414715581973241051396782934716178069566597211783253042940951286747809602295885713912868189049525871470368805634695679419121055677823320228879345816501015436438657465556032772960253658081194861072348605199421055525293433448594783751496212090093075445903382389281380677296762821529057180570661432076802485196767203716761740555470964412310384206766303607974922613375447171540117727053742521172450983517519601361710250650747353787145926443824655508659776781625130555325205655378572541898362887535650536402893620596388128173346284749865163432398953057158701998277801294551184429695411041151092583712856761572824548588889078781298971666508780504296443391114764070395200979024150433098372347988423577895051693971164126252195356000280063125935904960185655998900455129370889814006466499643380843433020154512540799991745878652992923881825107148238768017486044168777198032098599636269711891717153682341881672986070061806464229504214563474117089468328534700509734844855958258535172774324978047950516247739223514971907759690184344393825125095187449968113532277039133007567930266325719320667003116261670651410698944437909062863589302905733457304332833911157019745105037846527207158048223956499844885955398681494427634656866473162955115012138330630663140329501265340217325731403519102693636875923505028831446863666597878907883486028830296203734586060082034716707729604418888454796143445562858653425661908324588570356683443779712659965428932657257942299071244740046541789463653074470747555195304048252646900474515352139455296763177854332371172044427123106512692280606452693412959555679049590127943929004469634995682000580238661143048012139104870657440921958495991744229637064884966091881900256552923110206830990152828221387256739005874548150660093561456767088472486725115984618149543450456492495883578294593876382732908411908060760952561627788039543582777713760799490482465350177349275493132471206987534324954000025111691073076581988792138161368306248865254364391952830267864807960454290874485043251788964111253413818731528542961202074550422432247078919944989952520067912838164628866923606157012463677250914957955015421705847639882951772347987082416860135636677736017274874517354595829472915596697217374077008556837663502787528361705498359051514174406890715459976664945722067033250155378397223840925069306776737721550307354795616286729367317268636732211503702440298737496368882520120201610298508319357258334219957410003259589456724865073203378914706297071348696713222282897264812489753634559414194789769723189850421063576992007385286539460518303786485911679774832723199705140565843428327873006623951845270309006649845173789771732744776344079634611482234651008596478306126885437576315508287604297107729580032982117066667702971811854607467407263212055143431284090024297880708661049640404473982239681138365616930128177688108637098900841160001654901965713314602435370070827361208256726452139079572262857578489542152468598484919703518062297823881205364850393995653938825764829821502132427385000952489089496310833897861202622082149267703686717588454207405827240194439496016173411917787317061771664664912828526104261000750042946760732009541423418977516555340873697723331255543119188204599081405070340376824852200394459307502659735778471170738944701558012052283801727969224823980854146815325780062845761974342303567224197207601332676111250492373681525642071003848415765582323487748448174683247091052159883483332061514378921841867427104465432718232351430061218089461601969567767145269432958188139743944145975349847172128494901657838858483924980666869370932471493633859958453858280467641926178448008711694327260613455651600403729775445063459354905000333929079515206011372113821091320000329172653323668796195572373491615187136467604166521902689286920322339889738749269401512199442959983455987578669118166997075417106166341454780851823593861622913975630478279819434112364786817973201873681466369526273981422203850957413394231884935930000950173295652987975872656454057408999818924376455700511588299462927081793561829646570507698506895683049477376160472827601848628077372014990176828923700605472762770073066675370456106400288530522512823570189533831085086117964734961714633491570311743530134454867318170576413532636155726171863494632969403143278274722672785645641349581456359730383250171443966136885821745599055747839720132794216906765086081851221735150921290026057912753898275596380623599519142119740315304072050700424485150632831054552376141434941816434487512994820339088926570005978237777214978968192642828808528144426012125309004566795722182561882858699762642156469318106883337285470052840241972053943091220701841425054146440684142185021103224042006593476619278120101889622536057473450819532963631297028575069903248947321686361753578401313054075072180000275682159053466130700290939539038921319431253543451523230754494041784843468863595441892405268685321039570552122526039544083130033280705010909832469610233901565183986657620986576130655133580710981597707034080194678903949716239537326846052804451053256758239120908225135362472286187979646227794871444182498023190212240396485103028987153747444556685557206589933540761208797672725848416652633222004943591561733491610017093398291117927433924556411256301701561414504754286035201223964161159979120456459036781301786793815943069260301179525032339167937022863794764046825660893668229161679874091450192071875908784272056596434353758487079057863271194642631924893816311827305846791121622874468117824563542157983985193801767493284890428513316507279588124067773337510777178763283791439036317021461474114951260535905795394187324199879390791259232665748707536544322487922913089544529771528251880938603771127536668329268780095236751982822548662201881732151064087046064337507018397684226811598768017380434508550680757967861498881945239608828981728160466028466016262120263894527106631637796043261966133416282689360998490394545411358792295091033297919087942449933938042597361797413949091175801021029306942014602198360224984759500733596096792856317046907317156783933662993168676932059007381026865158196973915448318359471774322867861674617464611575624869553801853837731153135463844606722421759963777707901658044100295214616392871490301171636724859622823601771725266545382966703708787829599206939070906234689953343996872183508575640655764609297208244101699546192578328245969636255143173187554279486677006625438889237305571388580424900115525686608762136785934489106942367633072075349233339876448947162077060653766070468476648819492241776075735440915577907649168948589129690122692513124910768431206118766078528026581664785922164286028243971094240031154937715659316087323241887021877284233873834359705851920667269610516409604659529706405989943421767730868799182022175649646049455520859661161737032375340904792029346254097504404292411160245349590790656322490081699694281023197665017566173637128590733031599523079681598032552815435312523315863858976749713417714879972775045249074151667304902101615281304473599977806177521939914303059841529418371981252326128658116678611405977325068589508333422417462779949817708251322557740898909565145594423504551408713387021398292448863321997405822033026670060587070795253314794303789670990859594047401684621359994107730591582611861131682441149780920593571136148581759614365072250398794228321111915498202434815747857453690264232219645438203631320840926084530376476336619723321318036089653352013954019218381166745059763526573100207600950799295574900701189762715937378853138637417613365883907342714512895726207646953988224367219504473584090934841379950337722949619968725369253914308167576662670559347414201483760733060973508125630801570716966020939733990170408411142125413604011525869514669700245058366404475818244105105540998381083884143311927194324889877781150200820098920845365854580922761655247602317122376160121221578345725912221156935850211653221904682750307378022892717420798391382941760914237525199818909181503208327685923957312900319449897339826346377122724899882510197015891037852817154265905344178915243382091906586886264640795006372519022780255690867763392702666210414593330181756132882465166216675914855021687877388009438982708381178611428037192544155452237792597262350602578481894744076879375425424338943343940888236139044186157727695717905625644926498272301266095170594252748660967386301543946782420222175834551526225381981113462455314622640687907809086763532224586132249860572170195134819507394150446854531465795898331776308358840901556758806144719275584996483901204766534425678660132477758939254163483099687914719875166564937845142634321318436556782772875917936786496948140540212645741600065849641835386017447140458856735574375615912723706148858931381356468585384808086056248617723425998469979354090576328007994869593431458180858578860491810251645834975913252691744429776209410009955638622274102274267233891916880667443397289329416074864169446280994291182477886763896395529931536810465091932694005567345514820016287329616840429084219249454969137685824055594026968029832511674920663054731775163333678778186217553786487056385457280800182627376094512224838952469843730934967628948302124977726707967965334230978257335699330786822383347827168238062539160171117985465161785992222692760567660580063331940104123873112028993473520627509809343701815599351260844435981548550987528780347268192522166464103239193124494444141247249391581307829211130947386863250108009500960887877202533130205501374358602556996119022860285322705078176982403251242542274425862367049767986077577960291283496141838212864538253494786824514768483210158632473399252126449451990197784111087147356601491101640446769057720436598347076600118657170531384551021433130765294219673009393097093766988124054560946224749966538931255189502297390036086963591801689085532523826359435683282054780620595725481774791194744945544262486738409178675153580463365907506610960545444245082323591321131743427381504936688743130949325652760471503417026658566266083110323153975219650648631670926118777890317779631906507398005607371908271025981965767375524140718226851374587200785899252611300833990750992284237495892000271805848081375549156301472997211218975937046259215169355466650181127485552129144584869649703875866835476118299982249849943569270619334511590576139192922242641774892158297235306028403260500896869314987421487528352967792572694085784571339382643587675757456972709013950872275639656143188360939769150164264843787861419414666301751592185521429937450972704662468852622977645262410899606880060135434837467365189814597518597093396854766649128716083870662912443125731015195261411140204590695070223715409943863795821693234441161399938340580656279870914631027702654058826636282884946608492754565992872892163153918476509587873714077253748066504610652203911965721738869909102018262176849511930630136312798159503515100958256618089843661073369458069594426421854494628781223261308708511346967861220788267445577516764197464940110638432358686592487380723116527382194898070346820526055372026662399384460197753167417523073242944647121925200436637007853281444584868047075913783349998132759958536602106261837648073012671433173594483585863137711062801748553322649267839210474074523452512414953138215348235954430101134504089427010481629383325484688643079491408206987569889752514417066686980409314748784524001607322008146971972234138141572945647580819835641807962397342029082306656662708172322654361806405811094951924821002772162612426021941118301790302969055429549947738140185237645401173636159964736502638961194269762440728825245289131492050699259022157973644924742754405524782166880168061692660119240562409252809447169221172571069044768363639671809630353082191108148946992285472782757561833925211882384213921374263080408598889041104613917885861939463831502185224513763859222640029120733686489699527960122244245878771355150588275867519852102242470069815350317204872099214854931469121872626046750968191399264644172199579161738722364555187067585281505564462779425070772123888660265177513473049652038589121710103468331794111991257640661275914357796005661796144694621359252589576239030488767902877796515463038173166537312749748651119784449881219948301421649120196140862305228318163563540080047180578764128419647122196828090334172456465524141614286882443597692775459839708466296544000318692519692154033728537414639020514973874060946938358903511843903812481091315794133971028466163130311654861274888494836862829415629953516193285058858008068330694745772430888004400267639583288388311007961875603975044454270313060695687544252337588869989912008975136659068285372490993059021987535462925380870437425888531390950455108794640874187603929559389753738279235646069566882608972439801805968799554375432350557986806894578528820468636946470648603363554549087128841486364760151811688535704632976291905517687192149912749245858155225954326992704929532645598512725200699584902722017440855129790839067205791413944842955391101490858023285963957441489056254004339145730735537696968285890047760839388534685436461493122725805014837813492065043593329104368723487556760223830415952292604347859492085943683055665560266958507925757861810650560405997507285432165875147864720425750347214812228005550642607641171781509196867646555325907758791652080742790404558029248776339365125856967616989370423854414747366404032512320807037213836180332888336289764393431171565158412789352880534064045526145978888166076958686690737691576572417709490983001358129703082874010488793095439327416599760621421553807764770731533642695753754283498388231797751006682510318126883199025960050020396312711392779421889577245283231796065189353958751831241221016469127488514532061723390058466123866427013925506474925330037199632012335581347070496667926206177340788196885838445637700864467329899471121165463053713256131002145076128842126578581962390253068778550079398831127589104441645405739779755247841296168067297677862594488219722832096131902174422318629202663819629310087754923497557590532115325465563081198675907480010317967414077194073830763743807915989218449262979895740725478664417883112803073430765690894976872710076674887073145863304475367098346496900302784901381478765693651067403825809734689422797713890444709985359776720610447442717943374671436240161134109160095885122600034318139644621788203232074287154329099779812746427924108051487072601857038656189981987031971779294164941597591461936805772151874936008170601321722549213256461125975722889994791745445195227714197370568755903165925736202958905453411194213000184421682478864649709449400123584302987803199108596699634512173948121834512269202674752611216815877944969043391139836915488867343683620769459229104239213352861985733497652476002536164091112957042436599002952842103337438259718123580238615821148774649790242969233062009836543127665478376676295553412645596819925890975931900689653359924517599342981665338521484667644439237066572517653177248973322510259922636797742985532613118867831634114123886866512656086524093991630812845423834165062748402158792988404240512076853629041507220732232138113042630011449928494211875691400355832967834550305013438329867962536435269797312668712275041547601891499665845817198285667754222752303309482516262499669513724068151741829146243775514943787789584339120196826273888131070231377678673517015879772998430467913509538827557368812119157628525865792801280310574146961255947096147002099880956814325660727894014160365607547199607369940165569387145458307723510807375042715884022391348289466268775431865763372125707235437220504126293593834590854966315884102328390949127546366468774521821283147352691507676562785748698105933862846587977680763081388511746421803811431448401390128832263100194032561020456993953455327395430704083491419100177790255527715959809419415908566384374592986433016672990807547287465807746378466765491519629368624201559309940829353036993093215794129735409610691330478941763475480500761629614605372690186407219857762033307882546961608167709210177941993840060419210986169611280616938074952764500951437667258370650533364932909244299072926703772024472971889976318343928760484973207265207189902307632191755196804218354914152219322254150012238025769122466294577469713247279194135351536266805543525199443093587353112144319809735732520170757792232971113666766707734598643476924773588931429485275439808680657013087715297712505632851588718278366994543468550154652736155716822811689447045869980664659873328379246172538274380141162741360371883358516029449047425849316290811843795110582564132758129487287701669366636485950392128677029133533823567841423406366164130308284315772746591326521246055185061027047122592587173230252047234489342219962698127836770416303415634282044749473745610994147083424031290929523651681914642725260494517759648442804372577308539021989348445290976788999003878919623124804938549548116006549615169714135115671728507460867783560540194323660470303989654198400244903133866891765374234126762556643984093654280144545179954662924970109895163253791498032699623564349215595332995563393953824453387164419602446025253390633694673482801376144730332075686314844057277511079495607180825347223762981447364449912582311336135806622908092014253211697480460420611766234646296630948506328526910282559983001336999889660661903646765717788856853711747230894512249761578903413590922870668652142219806577845062646416476165902183224122505946461484099757567855792667070228736526698801381721319907027094983781271132690860981734979314566615736435765197227790398210919374943023393067654094522558389385212188070091456311734322339582485703488401426524410108784049245528986353475144543474472243628020634766194649004843366101314970912801508621382737553603732661049341313604763714791147628862120923748554687535377897716154702758150805539941238523833209945316293344951527404388264592522211425783626392577449340659429895653637763444923555007901171958738746791468056275587075361547655000951842209952533163396130701814383361345229453986941867789612740692222513128608277468888338093798638421502576647094359889150903073098002030691920216530645038633266318848168238982250526732256849048728171476849515298269315057243366980832450034497948585905764736492149811148621863645947560619165960279982852363486302734055967021205711707806784245263659885648804609516317318607247049761340048837869606959307976210524724103606105681013727528914647012860304655389631725813227967159238441446360315052992013602538449234818978397957265738934989438651932685200903091383511651388188917419516066207951245708067009564628205397018975236523529407791769807405196538421529345814065866363337658150206893917580624862658630370918829428384495755498045484073091730624894586219829235084573222580972476963686975347919907874866009028989872362064895863862151790798152562339460299854365019076307121021954503803072167626670288134646192160144249142303470821185661471505652047085112510746337511311124846607912439824208943157167650768011504099338151810216229236904244876248718184592706518943271765917751082782730870338568687879838563528950572254966436229348570824047613851334184229942098358947174508460126153376760799693489955696211528571001809653153870103659435343003226295906250424191129549576218487676416780271496504727522730147011285697444131740030728250171349849792143167256367813714505675251852048041658664369642519957836454167914274539760817678765678417604971420199416078026783651940830106630943457206960677018452720782902802990819190128965786433022589016400505572687845727055321893827483352671031033518754534066708462580358329466055596810856581380851070475455381831236248184921598484578246119178649089158323094313245142957998855145442996365246894854825778811456283862867924779789287689877927078895067281128535291550278176250852492832514543802210671317849494133452953681938367298183335686909626258082188811012389916738366081705145197220214546396001086084588235780968720336170896557337099868905537875566510373380826543037296769971798518388333144380681616803380408362195200438954987403361328704745280841532144762968987880120219208866527653971415051885605768978597719432546295375600158881233234237215358876387061410027121922392243310088866915494776614686548354390500935779474950625090054308163960354563288967358034735298460811227996488845298553887997773455085348738228137063834705212936362454620407411471082823949075246495597952288355245494705572311166774858349691428464895836843821454920745057766754058072469323760186587669921008587224249268602552783576140395253576346882766675967198829405611271864576601760192751513660214820194874048933865347589603971371165871406550212578124983164005570754584468833676130895969775464475359710085856436186603903529986279259789433355965254119876241008663175862875913261389349591685634267285554272495937906507767894292700471980004356107453321753321029017444392681841029293143108720130600083119802300077010156833666744510563193475585174051002769519037090777695942900349319745863249827822772107703091354008861519002978333432232676060058795352297970285842560758898472269013498459094875940055029478921608325934265585676276183097600304675921447376924391275837057811293085428449752084158183163521134989096186488383393576329028946940903622264534653624148664347559833348498409107489249248432702218063526022241191393455845110658959256807201464188551882211317006051980280161229951603155112538501692831658539018793815374408262211783249450345385084608408330666272752044273746064766045830649240841334326583246164039163100987250265707802824386291988419186595491207150451632064969830628046811996549881635368255566711445942203513048603145515142035588705237514572669342205643312433461127179354378540104720741389619018838014675263363727709739968382511103055793888330788644614283199056462405322761062895400747499995809794274108881441322778335924329651117922903721529653074768758730161702666063397682540877928899119176959834737406554741660485565191734207716938404934953340842157937592503004129967736621646691783938892028309861015894947417389832764218156263596631744580301676542742970161106623131089824710165649428806609914331035702000550315045749080442915495844092519083419378854499946067787309743454190402486733593047312821403021587420730608026965921114749338586140137096011752159506520322357462909510603412303084372102136411740515429505210902961635672096677883855932161255321654043573218025835497535198250316042097107043685505615460449680069473745726862507406636661655624237397229773251725692225270294850539520585737136585800724397619493961105607409239483360347121293080881165975023244447103282692370823251233985087304710012156901196730232533807028624410768535983017978031174928384515912537016931602541416883520955519787198270418484427254978929014706383174620164654837087320947805138594909487458150550529760533813037987339129430048557545993758129662735756791523894617939963607601186321426359183294425447424316444701225314102141896129404141990817196591132873734251001561430141698077280512842264790929894528933146877991045184486637234499903275680702808487104568454228109958510345148388923156808603716539816115004450573995394000839515169264986894576592934111298416083102570495981009364847432642068551913811258220046731086837231179089364030741725735097671204148645727629936922617688350277179567779547035188939981921213348929032071871332849547770697115391941088359645452089068759178776264410277050273539553789620329938233771738360753482532169011836118009307875339021040486962863744969946700842073119500487478985536132486926063271653204094338171327723077314059882082146426123853850064057643171104588888625100699344504177110507639488147650235425698181380947272700161865131357711519432410168364949070693334617992811199578308385568916236882559047009530807359880968829336368984120460115789216653887978126734671424148789734275325062533413701497684089527469095641570700574858436609560931077757928490867886588511337489429868295127907675811366632188965961169875968730552236516650246430165814861627644081368223262778815397733203677565798815765719221245921732448732607346930524684705600577806004506181950092157560283767920640408163363437829982031387436728447852976703998962002455551430449393104731406466327975530021310039850193791100492218842407868405226996748384163643740998055330727849455141381992369367000083155078686144041555603262524688803283613527270796153173210436570570757342893023514701659730112502389250739690179873711132730801633433853482143218219904989775740966950655310156541132053439485548227031299006960553688281846340949032086886700623924707579811800967262197257781330814390831752884040407419886548741513547337985104861848897244157145394585836093849704112935159390312700568017082241233087544666140675173705029727964294487575824101810934979203074560230592066000535776424657787672152943665358923425081037304874685033520512887672547072172141329562363779648858910517336497684633754889908071368623173298513854993772842037792389019485571774949048136112279842444948245068557254092195601802261148133842095916430246755703315670312516385633525164610687379775785296319945809501613429795349873806662976071870373362021677626715442302823205375523733390498691801192999917969690561477656450743044269311404924083071373087420034935991503590768081243947222288831138606281764690595242260610424538499831955668646536838000087017793473114284785992101818517748103078020505596072578466506025149147353162280443568036678601332740124391838079427569968394645143534156994905639904911343594619593312575079695328122357809414701462845877511329553552298852279498549328182227656835919108504921595100950217153399105768517357894139235470199371486239137068135068873457008692738116894328757116920977183062200344347325146656517954938116932717534147967021173157928070340530579692746322181274461758909180737299450182852328328936914722566124304353518911042069283126510798311373891544326334828565891891608787598683107167619827383269141566905490518307507614142862206148416966394695618440311197355213419366829300826456527063684396076587242658363048605129208536064401503807618039652726075280048877685814346427031687452928462521679476403507590438060569563261244724441400433828211087243103807892909470707166107187298605455188124344687627559349250310752054920791662577872515317335495664735429629531769230637252313116298914968670269044251470980634133560221755392965486816626876196329926986312233062857027538666878500834529151676667998883625787999379552404380135921415855729726635142185584522570113104890242921582651074675576771247868183497919175811704676759917832712932635115101803947108036604804351436577986300098629077861687609001359667088303685801289617596640136707805813444950389580376595429752510358538515852011839871262991512130406275419260337974992779595426625620809382583874923424408214375962911616651320862212246344959178793123526196678268554238242164354689722302313303541804108843015503406361528124724177213913158582452749142534539900638748114847599301645232475317356184621600864146202717287656857162298785237795762823102274711758962089812814470386998100105411388191659621423470631825025947545596501579516845349294845665724845485484558876579073014037484815090552563514584639120997372903149903494449756446084549613071359159221645405111438256558128130632601516294618253622662483115883734749397926203282380224557311899123859988997606276677701312641858327848633759512703383930772210690701528214936475926975712706846766342062050617621891550226264709504857151971774421716482834660541129182639394127086523455096357626191352868402946569114146034394472565351633422181505618509866505472511813357505902499738601458621575992859113421867325256441543628902534467159003510583923161835057363869617681838082574003923038108867700342572996339533807215114224974536735070596011796896521545395847418503335943807519886026841456783992467391096419582357826404591456477039544187606844243124458069711599853795167184765378977833994770272965621598744010497361227222201300997310065460816331127816979677806576201948290874932907037539578530660150882022093454516381046926984119424998010625039599265514372887736783877408269011924282210962128787132688754249566117315029160303658262310640358362927985874429496372552367028074420393008302271700003579698529306874667819767112116451758268482292935106067080007505346930281716343622759100208267159567446842284308838663719948346763835230370785971708804162262959763665552497412817974474768050424282831605337116453765826716823600678587441810409500169481539061488268519697761606190655005627455059963535782257841706565578014299948152528519375705582211314171078461171159654189208965292652634926754726943297722323955990079652962953122125743403112226955137571711336998078599758557411046278003494427024268885889395438688227698719763831213340979521675968186494290610494086221028284744357355478860777816110344604918770229126278602549333710867030080666935337021248716149693861778418089104613475064613147102966883707979339385635320892703101449698573657346376385326992505703559243679807271885173354813539832900931767064797221969147790192785479478212641509739450495760040216834190797360306830581547913406032814973327777702601750547975899479569914601548372957716367282743425834465705146995976197788425384910283844354872665680374758098783480310511990123430609347174654285622647691615623853307082087682219569544290041564870950236759534485488880387252074124564677857382591817227139319052699835982037994016019800129646054460552858724754200591528417041052833676639735486396575325836095496153376774018468516431091162462198270497251048386066959098567805865051742491514660837725719716858238432367234031149326366170734723784117148977466329379944878737972888819702952409955692951810163317619636993651836798092260711435654274290694462970472737463565150509451250428419011876911942911154755951922103388302659941553953393037977094796185100177689956367463741139309347024803556269480583010549588159330236768556888858702587047784709241715890825222551485659341616089568769814337101634786533437216102879171802244252596381771740882734737445553778597988409225844686459525154115703720889957247881040230380785170657173565560313708084611564947808181260100007313628094286650529239009334523424461481045799543174207245202518018138583647978293034267051077842523818032944945818568556330620893209902338238836297865762185825839154278066708974546119298910984545977514901988301826164836491634891155349475772494173827019415024114119102392077651524035509736898460467650572940979348649936893925470009071936907520361303334919861721678606817126064357770589246168023247314222410930594993047948073013039368039039969746251093721131191982677563324441109150407019770508403989072943837640606726742639251614973943851138662408512602146828069264190677261249454464177193577516270971108742047409449383062379128150652998762516642198367473056148031122556498406822776468501770443475521026498371196708014358992975055033755575590429508409680171985307222027807091954933009729447490541537304066289288397580259493497155657488229219974333574869837892494447117899429757916958600284188196426015169351550163506090804862772197204173803363739746396710762074787270281099519820833317905274885277559480438955557278150808131999144072622849230787099349454388406702021037640597547002475512388120262129119372276104705275969533242965196722384271455228072592868082958239653838520463335823426322145103896265672639298994108956787153108750534357580613040848604278302241910975704338916831693012685446600786183084487321064701940509186597891114355439077510479825788652854293030675180228128756401923990463476986840370404351778159340691525059220552646262865840481225418868098303288787568863071744178754880650530876598872396857249887270188646504851485795862886541307353225582055278147522931039198341958255266438808827143204445331431655110369715103090641459017307170623215322935487043464144475804554198232094308624687140480897806809895871379717389291671566719624424686999110502781961862493096159118258141352234483312734055311719576237828687488383905190917900063748600024662325251951909096012208929788441837573420166663951963234789964151718747210368515245273592132778425401093868353244233815552871139192147008738298901301155008782145523555590086668747962944435070733597827647202136089425004327613927670365427190351649650375458805661720290942452807783545732864623645040735182521572472944477865654407326772267992351856048948462766465401966542362211297829371500998424944599571017549934842875692776131332845386386273255671000731068645872122987265634198011472439707331650919826201383815306342585459446153393202128025727756047619621517359999588735260102598121171061366632808157958991942500896466116853774719822980919041985743324867231115495606000722121344969766208791349665456014388706817445951805466399742485215389202311375238417222531035360907311955753471600064452208001859713015069120785232356801142476965436652468140990968708722531369436983001858470343136409958223647156129439344078466553304080300499867917271497432661093088727325005196594964907083887730954290840454843794440217689548356406518814799477197605217454360274552530913806308334275438232631252888201031077052667301393705549320160574546930898387502555927647139275020310486743853349939496490409045412473815223991240115379157090583654685747979422167629222459710244297823739249300593921293032168174847284968715204429318260788054227756988220099437215701660157131341922934020324517648070071403435056392800981670706913661086109364412822671770308983776412216621768578370610081520878103924352135927909663218030263769964724319261128096276209123594531977219356100455390905000114045445008276376425172540664094527030102742404654032953818184128962662178290148751754384738755495514773952029516990637502462835968815918883135476111902784502533154969079576146652136562374503153089113498968744392978178506383987160923689006733847319972068953449134485532988417482136392857592994132897897512885221245428934723768798103477566957062668410666581726309259143150180465456826748936169696821804625316957305687908128729034300610009850196751313572832162199996543839150341094510255353013888420815183945927112848931887510200316415374273126444565940939390344948072987594102684932564148164888112137374998644561126072541334700672952416654883463672396552799963678180011855335782121403959091027469426102339871299225074959269806141654699757108921949572120307019194331992792258550323983051269055212572196155531331536700620886952981320274935279517751666435528804944903092800844809875051468284563844485492906763973547297765366006334740294882462409936252124877147176947357508390655640059615367654150187434079967827773832264961926860752646026475172162375278418958168048445780497066051519226964759461804277587950529742717658441319964802999957229079033506926121655739138380583848716866568852571534843400629756778295639023060091374967439889032225062572805837981062055523823534805731972485866861314404112272633898611974655783865505918148743263704247383365796002548627257837011572856752844299269770297723389115563309077473207544478579504011225754003278475878508188112272039912513284302204741175644319146217116341908852264163124593088104031626537958611683648017405357189768180220763022061165925684303462604336399811081940260877952744358773876055103488265058891781108737528495108534190168903486140458100374240607430256130111320574315529460191893314215493617318384974616588693909086672791875162414546618287481489914599917916239221372599366799912871582748395295070087967778876429129692517519216985750845321547099692505118392310736349829036539445499865743996740782881558927059923223806496878926346243967455681829026321865055389857170275681803385429279331986395936630583397141294447053427627256535643611407845945939901941366241294924949856992679494491706995551020520809822044148714341487663895576519521285185513935575485049388217039384356117995366575899209898643897694154144657032457490136990461783113647574629911562597302275884512733013831926446546034703259214689096908650769719141837541397797718285214641437065980068400709805485776568252500624199174581120540776296673056374719406388355793008993130907768823667714645082279129686915070734841076083399028232262586310411927718702726157124039419574355442630507578242715910725479909336009804149338152327456407973862672179617998209183247071091145454996033891090295822176694324307620500836935073620379998615556361973826019670319830460417893028133564171165484146088023276222273581517490199679069149343502805167561524243727103364595907332432155413736200332766428317000626327652917234637525632298145173961126513479679157399447374060934124855920020641554604446267604453600210376708694830702103742874421181565180083962231420252750514669241121398650073252573027002924724977418407925681982714546993859154684403666311596600646308869646224081492512300542785634441872269441179291611641891468278252133234909377562187120232120547500864064129919617037374934059442574016171181185381211096004861842831755188960534055359058338949520952245561691461959259925017737233638202118087377144872588397299978478061861251222361409400508749134739251531804951216124917369043561193811727083893560860607571120069123280216388819467455928202603228766681889310419243606217489044270349279576160622135808265977576202304089697851829499658297477255380887358012738373441166318108780102968947041085008440853279297728647810412291321411525530865691615008965334258676008562622222796142859844056585408462692624063439810598999385566940341089292216630573418303247787487283356941871329043541063091301268221132976862767562548862132250206521570208663142767962856886595482279647809593359868105311194395628457193997755077709553249907936339239629865855717478091430490709469211533802173826847929231620300429967053894702038301469039967932161226673511336756828486452104601531343320118901533826983935778973527366669870331994679929496052663527223647733876563968363017486594538967594041942175931291957270465168032152471317948528900177570984338637395782009614991538495519724340825364485809567729567182784398507593015042411772202804712382182680466694501735210016139918208191155265349397322675983357704535202565133924772534662267706881440473079126899274425166290354467829251375353230599904291517641359312715864295230129127995756668351019645164458874968506295108335399457586541709195490119912984989105020761971891738957799176894436620335342880521165532653509869764657309707672039724755544781779082325390675073452562732840974110448720527154789873786544651614172601809762580950437832596556443750272018050354167016553153296588823840530162082585609325845229641788395090136971241864576168961920715748264199176704821836065448156443742657963712986062127815111133879500879932376910592561702251288899905360621752419728452861865920121353647903619545020788644243416848575376546045440553540976694411011263834900232232444096797321508091958661268277730757028833806803477503402560102619927076168813410538915607943566445806003362752207181993407193673881774853722839995167135670494488605218856825028952849989519007074676820226333231823503294419673301659065925897788706581707832628655825702995958131040976464465256180325737299463893946307466426014942574915245766296883493340306873246395356946867093064380023556230478521272475604187077440421832614103561288160921532398073180322924788028752285828578561333439782950674263834506984951386157711332283269713116895339310447204521948923270539460155143171797996460231101960196711218366557174924934360019343439691069166604364573136480791577570339248300545403505798458434290657231567729146606739809161143271225317790324304008355542531958452494839745129951362284227671184519780031538063991861134659965187709207008184758303375250273994883673913970387610018438121300462541610663899886939388886405910237213999722603905095781533355317892628922313791211911419241034354835824133751578758645799978759971963182050005945395252464278862219744477994108031733855468947997837169678559467445795157429169266136185744503215245762315977629017024619898650592823176142490216338059526300934161277953833297057774829905122657694907165387491354994504551340046404125849906878698856576717647586425338697517109351505997033167073481546554387525531321395158691710892461171941783201611866887176830815715388700975008784026869704510399276592689842806848387068604804890573654439726550121177395837212303510966963255139099359737106585881972038380778072999289975946479637221628317362652350069444984231274635729603117375476961763314146250841465909893697016000604729084957838656572031672419342910050665130431592977862065849706119828560612981096882004767352044147562081118550668134358953211012544134685452306777376505624197412270751214947251709454551445689542138127808796515687891024605829782582368842762438474452455332689506623389659449760823251441319301904107363525872253811737548666419283508806622283490874332117063870458450360494478821869595994860887568838739759739659123501839082750389900518862622056696772155955195984369130258399453152394728383108620701641388718259054130445482406187683755208350833097285479902644201969113975993899288251494209060502873918051840150366996792885961990349711519364034074916746494362476947934992184418567687969871920936914449698745876810506581165150437433345733637946697523876461391979698122935900259152715455477395676539350181792777631610068716343024886994485345395753949644319521777820980679533470605323421193334069566424407314336304909432405767807310517372541234674307482201760137501141407540103152948869821490212827067899308594818792437232650344607694617407907466514169874646786512936637453117788403186607538760838434659575995705857739984807690405769576865929722425381107923283970131812432679636855723505624144593118264280928464663488360190727986235262386913205824990166373117827170538174805163590550102154121786224985916760948856228738851986033531790524364378320720287616390158923612949806139227824030726774277576676083079412024550754410383506633101515490185210220882388508656032277206080435997073390373247284497425152707101643359335263381052664302208859472946340087012363253557797840980885471034812537181219452447951598290757666686857349501961407569278638762248127223725790643671168892756052393212762396728235510164523996440136428310979250472488350805262704063096344098086158288200338274566583076047659502643905861162063727010595745264546126233730610584432732196612963804546932137995701325064950871941271056328626462102753403541687254293915730822631175512280305952050521952520296870322051569142236884394801513541210151337215539529198666776988546415745922582287694193074319226629836826872719497842745518466617352511049989766571076638954632108603023440621569236965933350433590982160618892450315606874998003971777049965870271532189872903341327041841816670068497963252384960771604330350294689652531531360287315972120084547230361133155432323694688130762141964203418758780125209045288125639246000717422191252319531768054385400720804837723836355720435410270349465145357704185911383006821020216223979804683529358076409440277214197074113094427582826534196219899660193145857857175142353343074775362592062854818945286469012429498556934137167539149144498765730272493523779966190512247963815642519712585882584733659586941344170866017728207622065178577011651853783330241019908816829320883705551953179597578201056657796530888328920272540555258438203644841994489091048722059604921508229185749960597483075193198835743053008984074927957757082954685825067052886725302856067033181645120322383123421337445983454852287869975862444897847571378652470469069726904306736459375527026355161875774301483089276356707652752715756236753163388631360578372471706428024301285783810065848226517696055120618365218754898627330953873922259990164258799038196242333315806705741770958019402529525151429148392440988006676826494205508575940857575446423395070024033583121100942183761705182105765885444746495247909363721699800354158511455855506635739838534371006821716484194857730563757115629251300309117449445095558154888453984761202959155944504235420934077612376488048629216140737340701237744787816429160536092599379625226782246661154408463755136798451903817877547849837499251599814351287741633922997679280618422494539182814937988442238690872093666139353984351303000319100041058098000063816694301925798721460349613813900664339192885994264572786961956458174204672279562628591449826718817572372267540757494305095774312094722909587400469163549288800555493671559887441849563680237515929238449365098889855528884079783599346560806724486442637298767366151348865434602741175399594522791506762935220492649472008204041223730562724016095931831006556007573299672771973679155024336284409325198915916952855152615036675222420300966320119374842066556744781333117158798423063869621594099260982141062110235987974522139906627691870414648077097912317831169367688981932284884180288820182321343216218499307747589988953238226218015332265815910748585743260608736967720921023207938214871570905382443855635901903069785803622096465864636258932593924098728338225320449357061066367722042458994784934791017248568935174453675941864254576726522295308546422056765267099392598960789748699807370494775993858898133063582900599654194774441073134383958000980912443462631569861156450685762166151377758506210062130173137702702708669184001413696634157303754013387668361331609218203416777867914637733867837412924817178484416884054001362664548589204322095073198369944299656789195149868212263002407552326098357638737931269923841769998065573515048472380628052874378509154914611877612830994540984215194014974333023000942943864960635479538242439457739412130278650426356121776283301944703952055559430274083229443631640729063859801237453560741704503625095024655120203066449739516421930560760822634516700288571911437291251508712056114599426016882779939650261187101785337983594067964510235380294711111639972713089547398060267425200634828149850253184954466903042062253597284147908737992546151633173234177682292434923588740095372152360279123553174947530766277512024543346926328006567322128098292494024601267400267343484038714998729888838455934989571400250602263701679228757663558082450943522535422592382274401303272380368722829284369244274693778776365104354619878350394932348169987984930865761585840077518759845749806842499198483104196660686031092264688294963085426541674283115796181065282305839427271653737445595322738438856854037002954464590114912593565628631423877355382821929872618513282604157483070901216590904493491272373199315609586244253285849826522953224218182637419289829002056464271251979529697461839846284302707098326576431585522840706731519028534246004423170592608833575589382846568084483659674374887078671570719081354010236195380264420052275149166242005094119468704863911928892766590179755409859997855408719809223165859378875671268076035399321920855336080016569732128506200754562280571132013108329123559649602442299899505101120489913663339988924572443408875887211499065400636630085758940312679689243591454898909922107935569855526564665173769294025274059263255611233356510537150645050332101053569493102628824452952512577100500979621009246042896776203448061875691391276379389058181842212447892113504512726502675747743997270527686133983808974361546182647530825569122261564040696717026227009015373371434629408124683046490178988590404422654296574391723675593694049357640778271387079367012443979914697242969839796151944101445434579603010399137016249997976476651170462564370570120176532771806086224252679436456851182405854476764907362885344752539267179485846316799190703697938761211675094875986691782306661470783776701145386536360116848677998975757426904879605888347479664803735597757496628728113147854114529987423135003993909815613643432105498200741592609378707655899930893379594757010983981530563163472207907770824533097711046093482598213465425238618744280083218436273282428938951640829409091756158239491601836321611884430021770863580604047714668833549113755098101730102882515818313370814621730032019137200418771165208937980348392646258378720752708967377702524709752222719111573382465736724218400379367135037293603927779769788259523977474977410246057501478410501804963162489270646094856637298969155222409548502006968621985858844193278010055189334838105442105592790837876566686960199281109715997422924292215708079170250954332098550326108835046730801871441709436005839959673215732660975025154312264192927174394428604745129286064076294425822352781812157462270982076389316806845740868752052578293208058220768188058964471746767919607552898355478923532282168595034292978478318252894203358355373563125073249833146898270794134072288060664017232670730375784672831290384560927966000636981302322319547878340866754530322756202292412865598559467575243034052187405593156030575078971722793385752004679610589085729615829326265365003788370179975648806234355904599292269637943103388107959456056495377195406600800740593118762772981745073179543488154313924932825166542001907154162010091442124923336510499806563951247053463439557864354825716550755651027243776385291333987220598997672965161542553645255319629889401832711085065684783046719675634840923368906682934516009386206155335977566332371122198087107140548761204084812443945418403916976795979725641789417708531655563466840559300336954865521347176934823498163629891866262084696447522814819276244454337243493941578638382590647383044793586218829531116962949395515572816243735621970062389563619701276720841558253853746071083411293032872595070859546825713583697031724544080373258047691186456613414236582935325429216958438801341191200321264164199238984760210255969894223168793112488937015108828261420174908566156370117893344062795784232247934803621555406885199388289120460887622038853266922781552914861701645023821521985681349082663355441914512846805927713381913678952721359313731587248567278907618984803134304375341152998672661522254629566672306131408560694009661844035030488459606743821856047271794927681140851823603043577645801651754206516581471160914264513752990584675208796679911639517226035769024309272846989116052579627704670193049079372734620780947188608912072281659128928595938119333312310256836767350847515494818584709515314285897971744310098050470863063096932515192529038417125108143538744280359669161354628951610688416597520837142840514640144089116376059527866175260486576359225052380082283944843241346194440608814857736592337289380913685092669223326999321087176293480388127042203417950938962593298328739103435213883016357649880316988595105477178834902140125773760886312362298180182972463238207810905414253144330838633736706220723030175015955336926106578795496831808522149424255608595744813003191997948601328168639160674030634666645338343791844120677781687786335317699574801649990388532960614235496077218819533839576770069053909077991511040584797238302617014039479275476201080141123748679057574972318104643148886316442445537561852850197853904895631069966496037147756336562109468135414162878047948925495902024433581062123847688625776742063030228935229603442841131484773023326079927745545081286735648868059502790842366068396389730565947437184224784134298961469506804775638013837559928671876196362067341623130547167192095018733324694237759679912080910764518364716140737045339977775635883102058596677084453214169634587366204998699666384109272227829230780087150490404026283107213877511913191900205682363206617503729214275980973315628737396202455456068451592076187488953038887756890603488527347427845498074061864353082746558926837267471675932021151726926372424748844485988001763701842166577947132173422666381996213248481335637686340855517183259748030862617861128189133262037320477958789526220937041851102965950069905311841305727632000804438414020540833913101634556289424503583342150281578363608008904234758506337595064883806350672570317072652621685534511840610973879562460194153386635710155988759914623249833004716787402146530305993883507510689218572045014416888020145318225591161599566085705601788935352071478438699612162617882141412862204685868850668068577551359021136952933359744067946801154414800768693867246361008241603248495300415632663219387179816148221066931908785243952850088488179889685275074237092872107788433563866967401234695164190739813807839292702476107958183354633283960601271178126364510291022097371390846273321991175149447054439580659129467531101800537054869907766912302418803862488963259643858955549935799814948554137668031655315968311906830907177781297037738469201891298559068839307020194224973157550644045948918152323712833313719592583273387787830632743645078270618565445932221339082285610024565246815666377008888261884258652551694275273550832105362593335008766894219014814271600300526294049409285100821031269807948754957378999385053112088775088195720246573343470247222533298885517830770492734188274322183297109118270598643983857052133444436837694303976862699328556523914405297883784017526345122688917007434624150729639858294596891312773430652932883541967334251413487822480137599599168399942852354041418630590522891539978499068998321441506885108918753668189842312363854899990594976474361721195232600546610491278712776279955329451792368870332185977895116172788026776668806180009353747938206088397874613186377491325108809461043832523563130276570010064140359621625536756688585910727146903502398891312077287795881487648875514625289464025473897706224283592899662811478051039697458553267331111576443604966674393026254294803626674660262269341871789869033566075816185805644124005297601589426978423284977612011050706830777749689175198058113960099092832526805789089529840428541066345599286571127032708993953476198114611794222286983725285237206050946675306727196251798706251931868545056733006118351861872913037986890822581863955435272680435945091392830693321047735263973360254929133806059567721856898272423033611394247247378209628608469396774506401021371793676959739386875739817597057066159562480216667050278430418880166247016113432424468694017760014048450011366678295302144907742775366859571865472202456473142962583811374003772181983597974800375526987162013660229683695656650488849171554204228699128874963500841810513517389283643620264860782413576870305782774285358265615510438335154365445913197078536135958223009210052917781722280413803604819399499077640691744248463782961099770975687861704020050609986056964302703696303699877326253154829600691321250789861325379670460727473251797699560133498308851066087441737394625016994325280400110423658702991791503847984255515617338355383573126240715581741588091234375812008512876726318077881214727634618041200171177599709112234212179183063284435596594550402906939996945083532791702435225315892382053725483408757515563548809235109828615085897782447473968877259338698292740804496894557756248307095771274352084522497877739731883441997560859291662751804465841332252018104228885144846334378035148153105635621894526062201244155454630623335058898625831995101943418047991591347789066737819908029636041438487014829386213128580540235142028373645509462779132400320083349451364545244554570208599434363088048358900374205416668928777341113968666098873245893135018582532525260411927089961964643918222185074988545481297342768375541853816390210573890244765036909149057984082803488824868051155141987966263007564350825904743217987233216505223224974850227806564958130701521382842180419861616800692684886132901232302855179623826342763719885574306478955622494481572881896858444048977186746923436153922796994458969484783865723419503701685115840364952432626285028810833142150334880271306902341712071641918062317342174840273921809473433786032880198382345243324199989441657551030822568113657010839104837951339454851662760946344055240249119539534102329450012564096000151112719855970024422285746953918807867206672021785932141520597940940254210529316642296622017845002912846128630750420879828398105773607335470998559103458714299218369201875027717043884286567978315839974220237606434025219017853456754466191477836559674061913434644362622603129187135823770747421310954458306884323180168234083748951187698996829025453861314152013919248744272611403848820109127733510651467997951343912737558292369196772288077830454253801625181405344389654605920784769257588803743001699446003708704806793086920779696641057790130166553178184160078544521952445474466183110845225506716650015402355497684451544093452041913279587827916251067280350760618310131801196373764653460465828518169778822079165689253693512726764731640456699099113870845223349711426992542702571021680594993693024617786934047888672811096489058197344526346056577862432920588010443813468173461588356691102832623755222908174866728033928093789938872506848270165727547770029025038672526562339976506209935299338261046447183826711477032962182228506102345093321772602819570358678147710468442279044791383920862047013591258928068182139164458468913429643881109982848746166998035604067750682369914268049197618536507356821404279727523509845049964387663345268272495414776492059580402557071250810615617570794656057478810509180527362030766821171853886832981151535666899152200192125901078750140401873269102726120542413821726692930657196402724302109264295201275470101708472709997801449598048714486935916585729423264348832211805529032113556633365201052662427975920949012489197950269598216797278209129307186989255509493954708844440358187744010340205953331687125317425275031196448739812051936406665932051754653435298521834912780765135648023406370161844781046278815144672011948858363544265173128777615511476444652915947800059236424555396841678582214034448085622345072546931287425941399807834906825995719029509967662583076662079679091626020070891213326777496593345421663898226785236325498793286255210523149135240481232537018996539089999932331664937869205175327294870239129025675439089049304954695152624427545275028106819285887521714200776987252193294743248827726131632062638157987110299301134140719928897747488875243143089628575869330851351879961802307802948738180860741669828267784943352329438184372751550844589264797260741967525583417477895510273324652865155722270032700650912482332985165963517196768404908994664676281038202607417972639897739599375571353768676776137328838170565356857128259537735557312669469035687412430027974145688230319322349068297346441070622541185468268307644468768865278234008552635434629573976232906364153697469920913010191169544969607273169519809801670972161994759131185377132129060375180571160631704194221149615794913656140385297131845081921155199506212133997716381273964877697106196553925116626809557138280092863713442750313955101019751868424090361298515385487814481177712562042991589691204000655017562709872381526684488267860590771926871903709522182348259029667867218972875620196194444779409689816561466274925072565551089107272743536056071935836860547045733626930166313676625157766446751190082566261735555306561301630399195022910965103222995432325210621633365536156497497164183980023798583161916043979242037897846020189512657481742335434703629881924966493664974272144403089270188251228747967426873243764899217117485725807965891096021089401336239057758116866572521756786665138327554574806872855068875306830420455161292876488177198384890865533344545726446115373874425565018546660612783972699843899642029005993812948441568392070603389631149665003265336193041476498108358656267022737299315533290593565686404704314231479612164422500953088908139945081364400427091183917589560381354153255969262179573462954699593359643875228739771020296858205772187696044611795457071646341090140441905706249069297087821041283596049579076211785473845729333171976427444808093199195779358798663252347039437663842456614775841122953851692548806705614997780532696880863561938457469053800352179763813716732804214030466881907926525632925044752391103233508615430848049738189196133555601752726243577663780228623060906364161819424563980811435381381783482075806894429838784464690604810699694116121939217787339095223139330983397000954717875323874074179309374240893200212701709970372063226791062570154420316913427084955043230781057765971475196500536067202639026621220137367622501378134748320941464217549766379794164154457489576489166832027432742217591651774850118500800039370221645070242668186684620563891448535264691494076384923135622409842722971724660088026175420249706581341833409323897776822977954036138656034791022518430611018178871213400145739682217165570062017119325009902518768712023334148986004764802815325080143760710861143622375760758967861605658875862715547807312194256846767166934228793152602123636732545196543311570134018040997165664493708605494510657709845823980808552486257371972317877037884223060284161523813774768523378299816277511801777929370028072915369706215026822338592557704190034138825083842109020776330515061449205221673597619412505018247378015650446324615953391281016333147896923887421419589845099633799566648059205213798341889203784849020918794253844427375183623839459142308288101741611162511324764291638887236378114739323337820150525727791247919391853869517214464446333324654250209305589965152036236106480267710192844821815711596051278916457794278486015634830006627644774113771278667677104570633212434030439114709589836036869460955691805666002714862539234679744559836091686356276249088882248451841488761208213030174926338392199400513676603707651330704856820986629887618718994886647576710921973417779967329218015264816734499679544563147686611980157033409071728315846889621433391978208378128216725064362736788811065179942177495454890093412239064121595728320195851994567973530624465491509272120509655692009113816500562320034534263636131276426776004650905846033715451461685382025925458899711139410920934951858570050825352348228689452198368842803983541763723008965681385178132299920545754608707701302880990545885003040576504828387019479527309263118008385073969284294385670399666025007811157349984638792555310657538930766716242665408775502134796006123055341923386299159823548625324262773286511542617711450582733315580539864050654102301855148907252921709780890534856417916233747255323124099698005402015125825341011690012915987083143035434139524709310211269059376340834603729101604420606198062654910836579499264642606642337739821206963830369643864508833648993665875275838575053299078918757188815474848972714981773150853007085735192311740012108984894877175279401493690177043221811566764621158357928469028715975263206851518191949685455919600873726701688020078543259795853657143304172008082999604694321008558593825858213377077055779192395790995755210343823691781534937160819278265116765835359695843679800918414457702423051966313624805036227470778793667920350595289709927169142213235536264378335326606930821400559597396856256943232595722562992989965249426053042392928657594340596093842295397725029081184479401225627327416797615246136275383752452826967588690767536803727566825097625244483882220062084299615319256502111308897498144769709273144604050953795460474904125610228163746364533900793386735084194897600400311751883368937808871598518690253643992903218393843866879917474931489724747010917041489872346292193959665251346456534743327961221462468606052424536590562981341327403533439155978265078858249820369766391699716523873566852901601707299018082114998131040997024819597540706744519366820796089399818777903378638169055971680180241751574640029123999360012405207453374960328299306339596234998933161441473600320413693543377078598065533127236388069209672527749264135027380767632426908341319494298073274136828303282284333436350693700517890674517694697024494284865890179578780836099239374059798728168922744782776923001110214486421493216125383884510493693518995003003209486318291450311088831912887670668212941140987242437349152499559947650089420004138596666458827051970673373133436887767909966816202341595232531628035445002013434816097390636048907024610570480911097665030277057927803826412095286762133821568096432938377063764506290018035449737328848451337183297753500617795415337733924565828177906836838499170596728129869754675932353283440143415782043421551075800854813294571365940214244664700627562875619670366410786818380909902742562065038636087158786147072145047266201730212364571544995205609867454807463783213502118220923644628560145541226355989484606131118225732554380041738979654882636421586091382559693329631915205918337794074379889619049780504265934982559249195704064591382518733091504271413492515374835141694047983020057745244884185825390065957522563860351086448828911907320610476597589049623546775892790807124678751519997995527039041046048655463288476357196082179444702179807747486195271502913084279199908169145889383874776522963517458955002543279049055190574280266467741231174364369566159450472018722991246003130127856747623106398434186986721790546657467006782432502016795961502400783171982951109722355530394849072061124742917931928497680192951639530605966578157078795765529193308983975169617542511562514368339160056292153791608666343135131225662828464968729516403749985082523726406990059918576871404122963326923988476233178365919658020871834055750059712008766664810904825644771256879960969754173333480466693269389444144705341074742872128103508836849354637847259908947664207920894356403875686277684078697016693387331221103048256859108003546873382817836682148913597416375600622969209296529086196916061598097040979218317824506414605177389037323862575100658518547314663993479591086715795651251343923535590269438521924920708509601034400979975885749663496613774965774629999307133904996449491420310458045069077820944496682881529318706319365440375955609509485299891911196108735848330991195358998779604985879019904028872254297170139887052202288988716598520539854730481896352943304451784664007375186663286663170973681967916989769624384304320682039417094292417562133472397308377434051861857762228404208278878700485659807804567153614282658844082771502077268776035904615905834699885639428204549079643651269948308083711700838417916620938381183375119327308970366923909941861642979391668060813913221305440116369345082232758478156880660321867859025615043995525194924250194888805518628053112143932473780429729939154921364795230826651147450532385143419410852279836239454383048472606139697689724782458415831589923719217931925440279363830720429576170915428380571036729294373963894809641045685574502217865319784784052183302268320862829212169924051577626762864327417252408850079767061974006420126965130553798943755057745181188118418806206431549226147008788025252904389529890219365447029728988827115043189701677401168280983972951712934141922227364191479287889724672021611646680836451707007074261659569122561815453292367798498451787151441618592761076930650847805850715822891860216799474738788090463972960663769445053751587686311410741508800480559304524297740718733687641465727134144404164931163013184267296805611278964311170445461238547850829313551732001239450287306984876222854457087043782620191998592633279040782335127333535407065375694742686218880275476548423295418011952208232363289014889061150249521505056792260841180089082424273155772655008580635056713535037196876210484450547956048949918820964424673395728371062227357436997040706981067619201510550985247510229999620728285298845586831072848408979472591619841702281858368842508601446105070206188399438657773756309079912457752247145109655727985099109629075252169031421654304633177430754393935467630583778802426769503571064426500780990460498673198549451872356265307026913140784515843429956309018769715305229278279059247314870350077413448862515752354723128634499259727352271121377704136496621623670847994262451462843516643578669418077570449836469194037015284577804074106871098405186656776824689312451176425974666553969911379042039614572518870200391067173635553387208081828667417632507344340381804802014205866844147446559105414952091798812420377938994015094040633511547227782637396858676601174527532037359245587185420826286380431904553499634425923972967746937096909102428079393984717272290155160596284157809998048299120997498594929731022845684907656721923350329882337070543137195775248925498928621662526351231218367580205542258628386643852291587343065002071648754527540050834244793384382657220116520198485704483789247575371255285704104176988476357724937661220666434370420858434708707212830924057822334555101603142727925181539096551553135044059455235869744757977643487258578332454865926729288604633787245474468220101373438825660511359380811733979172522400691292657201935718106949134576206207278634726235711607017922541330506485986108079197329239084253968019265646116563296029064560052254862940665844875581499146787689846858894591954854875418829812339358722156986621414430889383895849342624628806155676579631869219590198678391783932740190505122957622708914712599506845811861631892110911211331054515697460295778995426084349612953844667448830912528251223857263346067090113470409566927588415098264455180714453855376889822234441657856701021748812344974552395671430664494524504377305802539314711806090574475778662499566293731218059078642418037251144448974330931221287379591789316576058125954283340178512293135487966948092268158897826881538907478611593085385747790686822533620916852818890613946471200516837440343276644033516020728499507339150914794768553164347486200509523496674004786734155355597085438753042306993919923829179590965084709668146809250852536825689664288437770408178264091432186790829683541074076457780941860461650134487327744055487693434296792654078601348020201801179576713654338480949590870060515530735230115498208853274870143506343564434934299015456330911784035265356701778508372763426166325986543635845573293628834907689343972226287916214034363691618966917880154327163171951844431238459731887812595728787310469186406550268637753725276811066258042925045875046836668314401657944398135171456701234433293529184935131175225214575656683478522265207540962043283821433631644313745166251362037039853129109218594645408726973796812405235643950566064004042311036351381700320935987482459367186373498827229678578162176093303359140316290867949224720777496602317675337764293968052595313765821399436238396501159684040280990177543320109583295377807300896656990723698796671605483740443150362698684375568832728657563380631320668941809265730094720892341063462574986029187898960445964466098585715144844851651502918355846825819518292494377138529078958446934337397361862440622970531237477839276425267737840429422870179750735447589291025097572347592371863684053197073429497691181453639223612584449133663284933674689154387333725050380404122552155747334203491017863340290024815277558723698774014981012337968908040122429298084270304279595627551082393254408888940448062937393070675844485260432625417154468291772581972145311271135302616942231295242258923842592537487884073160736749078448151462060168712552911124547083367958024303366816137355880062973110916340509653915694241403622724561259545072283072231114734497146366202282119366649643316905019109195970515059272313723600866027113336281562594316594480122820354494120155503838104918717631849286495303598406212307026392485653429530271621932236064633561395687307168055011121204794741281853041953616562024631006688282947747730297783707078456422473999179626600068793657774033782749704863138117840753823919160264611226476581903891565757929477531143617458025089331614205333990891933737633391878907188060210107614598552708185725871618840352335713527479484806608405787408265156681014996405791300712241080478146955255597512035975656002322982863483959510614057618873581642423093181895086999963852158515165781967991462816917469975044440822477142380997210452064797513831589817386743780245533400175006319083960725742904386687987026451500203179436506536407204843972949350885597752569067521305508451387935217730102501489659948159147707197693035616050755485891355119313867951436482161784091933891017578592102575617130888152327995045673551953532594812011130070560136974239561817295520666818367718814931504819683355268301192011719781315309379409327735340000106168114654824053904857147241391189161113663621650780396768691527498583632143877687872751751257704324137637138720103561399503566244578740802778400555561422955117981633124760464179616046514782587023660918305128700035775545225219438073160230943131243127759083882058227986820434687199076289001766995978971961751522041177215828037593209274726012457316563353805006904872595742076464840380819858871178700266997619111319336639662345481193839441777672672665152185874257170762996124965732315269798005956230971655538856145884429936847700785282166405161966212672877909184250915900632940322697322893789630596903318801842973896318420540279136484065603288840089046696164244100923324559055316825727281125139311095032827501302986416157641418604676474824113256064343909709215520446895940637983891354939311626536683233568821915102169129295168825291648045077146594778113055331478722739463468035975033962189643631466781469351752933630730450602956753667897755495442304787439752721207395736972750543229680260098830635777045376224890708865175619100714423481523963891481641075668978641522281774929325596622725481684188109183338378117575570814322341080517844833713414464654234196738562042112515059533226996139469145393336456351728906346903640696806955184770448358746411819560226652547322012473505211611469188127735546069841064860180257266355884069241589414108168860841218064486056252695282748389865671525691318046148522579093008476360357621360674566753141072960569070887226118648531723215877359967297249796286583190677878021394197291236420345122471345073829476885827261200848892928648465532802184586535584080748374253773256968959979416159247466522091024022179422739789035950954832227200561503760592664857698931263233596813340316686795515576344896407653217309399541059341334197689659255283040760780267706286084800284349211350204108346277048309800471879497786483826416927091231515210530811586243669880209536413737562963144141453120133170794720587333716124380019955105645827214534815580655896308164932019260871975014625722622841771830383137603686933020529596385376231952295133566777840737021121779845262760047114748175864643990626069089721749047117842754092622140013498170199768506620689211823447017504778303246475519946191194835906226757790696849948978700337331606015187729028240651338737475671699505817398051067331402524870994650830084226605362510290593554900072137181501992628461647947151101670071532308730834257591965269686141604927784680052419602324872117176347267506925464611406415840523627969873614232360512585284129853296408947361560347572568901479673424666617406621698741589692104697935964999662413854455676349028095282944044112628303903525315837972241826005681389924806547461888906184920170120751350273980754606375230893737762277269691521328241166085771781594202620345688335204429365509593775048082238062226037767310738896632525139127431674373414769060429840359366993366467212857368256470410036791209284872068042061645187850885816358275912702193762877451216859468527697937823460053701945535301604640885689379215392911200287828313873563459947677184032859443915913680428907966819451886123663315408931912210339641751392542722809626728491799725635921499870792467604255830287165462705908389657632950881092114565675916291310152717477616493347692313298525123126916000797225262470975756591966067387669473402158804607349686154465756634653171936468349533092070750653254945581734278354198978688684213555704210306058628819835770106429025642574672529185278571840143904352340228440779168561893845085899164929795040077764104509951502098527725160511733750990905034119924752425057293309990006887664761450059701650455574354268738041088149103626835032560028210937465890216776689440134555345097674930128609658080085760707543650162494841274664821885315826461082677750862471028721319937748140747517068144357210678311972123576801130352518336968287420669104178907265800924977715606300258938364469728975001377978491947747226170536599699577950836857598581579429662812436512327093004272427286846478025168247663888335183738384955842098235067005974309019939620661314912045893756161895380325714231604350947862355450879523882032164685045358919493899983042323491529462712266253383929488245112210602324993649202563570606859139573607957154180627915686639961564681519663253233175689913740145834029207556735057935725709094163705354231626580714876007331784347322683377384240502683779642156572722121416482848175105916746391235825829649894852752316336049809410050266975547624497333240227570936298316457686892361597482886744192655296765325687723496241455120236981259560177772966242910696319577069981279141596322300014085644170331991945562194946902066572060771321307821385930953222722045393930815152024829470117337364396537085895958196667137162321342037509030892253135130828943591202578679369862370910920261134631087389648656332887274206267028440633992388595806259530777830437846284853875853486730935254256996919637774164950764945452772225897306466515770697679049366084960320774190160639240552630539482585454874771365763193556756532876296449373302226277504088175111357334961290768349686822910837074039698088949630952321119417471496991179402366840471066744517577417332562771735519941311866553279936224689639115503628111391947310691752408395077223550913642440406752856338423520896765837588552757373922504523512643096685331861262906783574611345106636537485777130875195298323367652118208290029521289737692905745901240421207550212156957158848926821853515338045558713496605192209619609507882788590518870787078981391249793779649128903778319711804301637398053013544378410674223711555783900246701125678050426767747563911780284325453521143116762129994209202985412799581217627626078172758080292343878451886165163420762468369626626653961490387272166351997027847556462615399162043592727474966612129435186454716567038651861406252311886455497137398841577934006107787793165166478410464278764524182306418723636326010839116007097827007382984252304124739159723363183739100372329875605691654219142809166482673867146864752379806297986537208987061301070278523080263134526243307695913538719590620474290680256377794268162014974506747512080916623938020181893117955913741343710476709966207039936656710618713364424609371544269760798172883501623752071732165614981825143132075814482174802112196726234824759294024114494114487942547445952640927791245746227099880029772312317562792569359610069994377120829230281233279184289324291161183231377761661763554156766274929316992678242533620340519398068904855902225784529596683772401765363514654111703817665899318876060893559779501872193530299472121220127382233317778852060394635940903974695280908274492094031755781758855506352102584589508882272190098679154930728905676981777139493812566395647679561403922043192014280653552307463387570594578743070610236050282900064737108528287773533734790979957416179723198747622561434816405573098306153427599134806636625820297502924927663910894358113605824104276976276794378576361499695595167270487491409767652618452549231283932397527072213628824299091540416997066258295110866910426343795445801407878972812311998332258568840058453251253383506992620997239986376114081516755847684198744296543361096112086335417678284037429253640647983108649899189586275394900689013915051287823031094813518461488474765510534576002906616429645605925169752060253363664457614984369067990347274898084478802007309860178933473083302469237285370395233552032815171672800122908277734191104688789608679008931523589040217356520687121814416800118474625179626522967305937754032203978560026886983981252375093788047485452669717874304203825191356365551333926514435438929999197674565848924819650985283737119826830821534016311407052820653379564912037381697853448577605466661955803823775070114803184691489175564033887945307958559780099326279755072996593095072571019471171589201308409711706160605630510825571400776463638180386911176058961027064625703202433860366160472390261114832491829774760647397609954299258333126058150274330331296652554271235813475116705951279040549828328497530727499229003080961298709628307348360251762909211737682202900963333379384983027040321326613611758652719759794000829115063612611862783615353350902798593377853317651288621818604550774350538808694727142613426832890703931721170790391039209314396369386216436686702332382212892688088866838131641663650703787750545627654870830058639366020871427298581874713399472085987512399596151401248688769215970256231712998243600654556839911444127357584382213923297574481029801521253842860017110611934930925259823553400686178052316409210067974270647790787694590373734874721250850854704079512481183415799091703383647168075826427493241512603085427893872835506442173255265741197202902742009959066510677480897163864199104013521687745330432050963796535403688735810548607686005771850653702808132222008458046405984577000919897667488956744057625790200977686909622325551035224558080466267284101238462886230929291832940706169412991024936115449220448066475213134972037764810600683902492845969210380651856177318502539337519756480778800020539665843765295485120005348771978709502863412826647264560355353883220225020489403221827923273521270963335773854731597407834156893822782596121889257355571862631844623980726202144389601681389310305519784498779145286375559069636215605132438555170130657712964596598515397936237489395438238928715112968680209694396115968267623924844480297182742618771716159722473535137210482814517619907271390740464362960062977613699041795173843739763534623367180543899084005549435480652048949934082403719501938153325347400450545545987651863908093959931572583517649104078893380278351072302257951600622434114214572796029495245265654455257284034259467372225135177546002110691787208579491124406827450160051047746126729148194239972299117176319182734512625353880274108354134253704539160694448591650125783767192433990582353848018092907846219335235940510662755625668062843915227643224430132111464296609562895609012159452224775269340634885845641435206426101009010360970127090155744772470379247131154259616858579178253378095415770212790843287643828275125935434902193773377538846799543300659268262549364270764912293490013681199675475171354780942948641196551378198789916035177119798311839480439300165545650991907262403136148831659413810758430503390606490822290295334246535745617604211726736797613311044351230785349355866015765089512670310733982877976895227106066615823591614019103036597923691616004934800963698506599251455140193761758169180954742481175966392261030685211242414560703245938487150588555890837569967756040939124709336724393008143701892973428518505192483867351793914639247850249943228947797729864686183629839652015914114990543825029151673693212753262612371167990180857626087645597959568739611627725535278675092071878400662904395669368088259911508206045850282281465551991925208730134898780379002467170724201660138186697879700346320175607657230075544094641118696272217769677767557987648912141432757070019837459709654361545250621901611013431625909839283971155583892289700975422056239070716171386015914715597279893888082567772472814027988764108450945052373355541131962154035289569090894080457520836347188898885370913278123733230167479080793038374817671726199882363599277610789016430216358376952065926220505676778827935390799259687057139575612793624462347325126873291268388803438863943032856816840406251487673369130016450922662026769981892780107650175690134462940418850838135252642131892332801334380931381162448124218652606332149782975895551582753272373362227949257218863662919553785155513982265414903132505755828928519358971180129322294481979225831443212430713013958455040619037149327968679048259481864393654193984081891506561539024864704817014185068863944864838484130328618962346054698465795484523980751359959450640100902542658060139011262998205618262811316909287701650755854601767047782953650900864569760710458756540021914775877501987242993548252620530885634999424286101479041218672949316171903736193332247684680161123086756784093604023867682249927481841392589912211631481960139536767294602228947134845617580026243936652143373411422890793917112518240526209970205921325751953154139537035451882093367610988380563049913028584334658499786464536233930328097430946733796040816128172820411044221484351744309587342787646558268954413433389468353977174853550640381490841702535072771162373459383875671386040476122411835595766567276631865273287460606822903376348315611850823381652808984202726518618110032554871193374757257849233053879852970716639911470189376094705477942962268008411818311528620995374001507268299400241581919281570505611180273467230436014468513171088765592123728144804775109229041131838443831174407751232628598708744916237202001848734455960103586452832866114746350470073570862534825905871013492645133173662592526658429968916665415869216673342852479520399902645230710570044857281379384093490828829778832191973234297173057547762088154905470858508484763727660516839058451117387463659232937342950955655850663768199045249403832516748137546636191476914528089242545640301353505029334551219364950613255541406212810812823550437874165526138196764238201433325745869884491211117334237902344074502252305645024867963196617782313665253407818928981163839739979205233632289344571652857877158918978792798461434150026201852768947363623844410934500511161168959703838928718131172660027984419649806777374292439965792168064290873435451351563476075400876390024024363396803704325125180227247189237452472257080421528658714562160905967366405949501670426390675807184794398843850325281087614896021705050086986327546333447718096024794238974378629334926607880186658539149764812702153395208417936695018935680765160977999141695195122388679666172597817621746578690570133742707932354838956485418914185609728520910358159927906488032629729507142275175513080982905306092976523405162496341694374228506367324638978575403453816350745331393497921221008834670665419072961428331439742337062906912872188219026529655673788109703222453925566784116936426848773767602361198494526050569103284073929058505061299249879352642780453329350716444846891289238006692148359179454430555470864167573137174804270454776863745093708378682888877646977647107229391496952866704780648070324323053304597054726759917553457475073924251720328271457268252520990020001266540789586641848774682743118441048360486783011256354583786820073733827105575958037973112834194946881802570388518636695574854760032266801165846212497965167569317712670848961796564294655520071586085649570068299802565359614093826268743136356191842736143836767770562822956487580001655864822534951299673875718730656135487234428318803503121767716626505782953018486902175505974610382139290864900444267733059158471606396528526921207480245717453132720531154081654576475418724059836844449928386395319543418173418779623682578832212207963654893649363271425802848454119683360170729460870489362029235927713788936442263715504822936614584350204759178555819259491682566053818445464804071323402329547680334725174622382636402828198334335421783864960056178193287392958676786073309249732928001329570127926598349605810981713571688896756236571442546430375575525160249515363044239140337873305556188547561602257816719593342538990840357523676671076972751226244104498852142760532362902649743636640117245893828675443423336223607093351192217790365390653084213925609732498390305485802599213107602420598264709020422298480934446797396310468996968057602777458532317375401242517539773898474631747756488165734896305197597784330496044528665476566852344113807048095445243741832654844777005487937637904552540305187077423755673982417715304748206831040984997573360151701854702740853411979055890378970029055863107973199882560799286125966927517059478645501673209694888722417777394855718599290053442252658551687148643222217331433813670327124275498636280618242933946442851602124454939618944422941847756194116482981267069683395764382081609482922279281438767408056166423193463471724527850095079715247930814567752822049319854069644067702256436743661896079342933122683666699339267517312854252388197122558507189214942890841871497139510031862447857717149425987895859611913474023758648657736592886115178526677261802128595411035439086681487809522607564454058314594299096611536465241383392792382781179615476040499347987191135681380527995263728401821562981282832592398800542048558090850877526370902170985648232819418627601986038696774352553641983717931264782637045461706364946230441234895449653065728985606812882733068854488934218671990591252521563739812464277919796527479822149852576422725737915514038751637366737943182867666035978495485752773865136336475896276003802666924641864074921244648763088253702473760547105510353071864357807620412596271288698365618554176143374446828157651309336718405323981658871198060386381562614243184308445989738260939178784182350137119965154941878831798368101720297758165603584250189414443438959349343364144662589159713427592267180628278422262025181065508881384466092472343403824656859979385875005734665165912045976677166180770935990310312362394134133065615433947652012334264382893151766413681101693691770237408585361575400288032383942199634272794511796951475701812283792102636518775640852449592449053405194374814902516571536464314787107920292551708029969498399679036301917997678832834628895576984966862349530325026226318861815778682700634583761488042993518888656209318502795436838259858512644799611794432847052809721821390945582817424893974376793691074365444573335386002606271560239954492829092467360884920720890118085001238021739252780217607468651698256256089095106739763314877778467949485457940633152091997108026711187533732463592796543401050214483685444058821579479949741549554928722472974090927313681910647319290103906255194485023244917325571510132682696416055285801958462470196679491815586867858399038754044015290397138021447734325151682668234377299706703994452098459427874553986173648487206835520429218911662834887302929498572827768891680506132116884286111621612138964312199617808190936097248014255137180758569667211192129007213104008915099844471792669790648951876972076334806350374711081334506874258097209468317561335467002583265249718334537214304528411951096891765841692093102698617749270835331497172566535151033345300618315085749048521430104026943666784313918877111559988035887471478615651649410327926002579180171496955349457415243633368074862943370788075581994015621271166017426136598380295844567126895514729165182565237338838788434686357746278366889289925651844796212904656732507287060114654997646454169318433945456326860257080899870100711340247300587852997448902231584800016126142766796686123443015540147550293873910002492362896144427487434621409637533116034543723294646682847941419644513328236639199452844532997365144934123326125475096583224235227112747033773990762330594816810376403031741658157878096133705518782234894774551392537397136643588973717947425240830869639699339499577003558113857795877385477880290806508390586069492249965044665189292760828680770595746449714781574732407545115975725226986568385257338754170403803021215069256759556869701836958011103001439827479605755883086558625040413629041149514244783254871293966199274134315723843823349638997111950571483060224038003636472285988260526320188770142898294624394863263070685100455835973513300153262369961584690398154592339314121399323846587488420946114528680514545023036214134723702878056631864296731147804344690780976004263970696962760102028192705730639087231727911759784059161960856691359767087973076529308291958068468949164234541254465717725293981428834449219757576470348535788566398270333264300332959115260823322932226714654899248915970187375182259276699299274155980126439740693043490619786994089898896449392713041768022528178790870423392182438788176909659709461381312268381279627225131905508527732685170897493655322184338877435515717089060467650185502057303820821179932266758521763985911904592061135232511242856207740179826827679950168114315169262110845628817478141062106337993754440328562752762827273175748793675377904836797270542246542536951166456037397471273709714226378903476925346203180996565685114383083602275493330282842069806401768290873631427102789838166790716002211627497425604607141829215511643512236594282117699390582472502477377607355097893822700971162793829629888032979189143307263952835243179381301497359486193143053971183255031076742788585628109987006837855279994513384330323496095390469975472295285259940742983146335488166806354228927642577548277019816249130438595889703730098825172638587944841201518489012841586139579161295248720383651121093472871284027537627665421953412674254966568672421253788423742424355352792825202063328762798904781953260777313896806111923997839195381911432141825197163309477524388789878416796091764476298091132062438105900113384419054306557050156486706727090363553041879475708041052422858882808821449247943288533690336247287273043324306859511549246994364745949574451046916904528337928615828967603766280619521383400114485267779893820213691401028889006954592644194040998059987232289990018189449032242762533121071055177225336224032841719774235833747366141690777777656709586897108424803540557396449659388524998576632638083969611001330453442013623846734102724009679810974667040382596693383064851497476423309408854760441248244991187958710708056814331653557354728853435708205615369081120157374672799749358561120518556266532794837511506284450643890921015889533823648565069205802464784657210214529810088709182488244347680520272809724993474719431013920884891525944703466237829301621750966898384063552038238680408579101555082238281033369093306674080015126003127493189248758914187982450509511296403857532063274176973708641714029174082583403915929110854856007581761762290278726980189834538369045275940158357102255223492734887872420483666687319834580593035206846367017727722888785751243136406632754567432456326971851554542780370722720863297891961318526668476389137329452832439117399691737917118681216874492586030223189960176172159139486066133521025945153373731620804941089350324970477400134930619474470100605727591077779008606306761876599289678030871630192940567089830249256029831029113250998907118287065626309897253826014335557291383186526934001427197036646923468913714319202992452928663152892813385576350612484330402489543244121184083707714211478585929840374582135596380115767627543282171249025537482438005214726128964577722828505585039386667800194511709219330727560249487155619190607604942313378027743634835406584078107849156543935665252798138999870678643157962754095701764318726667415336692915005172617417239302711239812243596110411489581329161771968015294535457050205151535022492613400117359090070784191001901334377843776800089059403858335019104353177529799834261026469855724037677806610672444759506923853837765396312364460028642246720140763599239525413586231493820053713511672224492080240860106658485540302447177863015058787933764974431768469277571036464297090993010005468865391044680910157861251717711480462615479925632293729800401225357519817285052678909835427540450346897549343000650571082230292732045641057124192728455591265762477937519505264621921067181804710163204755214044732741156754290850463428972792791642372385590927893916274187943388796046057013675032182230118070452845516303343893330329219324532512952562451125397496844149649770158978707529631936155291166960233323015252537491279645787824237598169386798351281288390050849217462756770085944774891173726866095373563485325723770221202525600452728681822226312225126415703803544061045693632189085529483820593710889434136899965003452291093539574425905541962235133708832210823097560820423589732204820270997292957372345246365628478604497241050631441655086103697301795556566508784389986917748112909725895198104589333874477320232471961808445311070237260914192322520463810071361190105011390827935555124292046035012229439958970936674470443742204953983038610290869528887201336082771370321055912466922874947790222952591800402676277690256832439234750551531911078201705689762301366914083213266287681293584344450270443361677298702014602769321585312630128047210897910199846020968290503761002513936504582294409883446658216979439132644399100717893994060291303278662727373470671659517450311812481444279045165056970475775544608897688864164999881323564930492549226734099313162608690354813881298497182521555346622632822818598404633298037009707024423113244678695239010434161821947532423376379645153967182604876961798666525671478239856145811889936812439716973447926657654725960783164588851668292707848219497922362236037636476798670576462733997408514551041757551681963303067069833189086906884298054854386602897588309125221015016845295770069286808637049386369920310361438810507588664948123140901662712934137217080520625722585185108099360712003329876064829848602679389370541839822762247874805237992938141569443282644235367965023764782623255007443651287554002068094994680623278663954949840924609713492907659816477178197875786771888709798074537132581753804290958853477900864622314826480589074861367015012253931959743360529474735095603459453912269404012137614053945920940423508775162950946684739704410727790813489820478179425324078633092875262317807413851846540597254044061583327550431517826308321745534357673536406155714835617004829951324810966456135965733103002717237982127364393982358233153041042243820512995346733308719849060169545308942694787602611409527811102826564007429250581248731814183966107849050842718705648443769075603087537016004454468151787116086330420814234433791186200491742774427418560663932006386182223489359052080868787791130564879995062486233376461684040753596304462458758162226549503572507732419093923220407348579018405238859174525069247619384087062182700699425524375248797011378573752608622983500466914660297240007411995130790357245226797761384117677388224277592013796184558762244831224331499086468105122025797156173315391302911976445194373701540558479461281070130135032872223168110593519611999196739030207788911622114552082210688139047987280932162802225838314457640102576554810104039395675026431046527765971205573539496866918639210628171486250982258447855581854379772691050227398269739723689501959273883043200414596684106740955699516158703153843343408252675360228412641149189597925584759160474180222741283466750927119811415846778013481251414893212016725067629277578451447107988685419793532344388521034738247191492169612651661948052726008784808524612457613758669383945654423426527594802060663231353985395772361099151881720132122497704881458325280401507733697205890835202573750223451343055299110632502771908015334597890544513798646331195919394775401847117433707070306534727297284073257085087824720736900547136528853133594477489304560851654762449790816445607786172867204950057743733892070098484917842051228793196042754477653365077910816150726868882129086218320395189933954898607855554516037726442255277841845709798046662114295917776945695297348873935315691358560307994922897595597341480187792354579824846943285346336299760315107050135087937016918382358693635859550124297663617871728927235458999897945134010229168484632913066319867146404234252693844963242028012667309735118589063024300035692262936782162959692302501005185809539821762484640782547057522798447491508334814988029565801153777081816193652697582165263832408740660521741630737349541981416572757225578910451361599310505610075806194074807115507542459118155707237445939153917738581138966951061769228399508018125940079669916479297987406987699247335475922146540804172645782437345106682433926878735701715085378693061901545894525202309629217939758969843965906689435417695977635808457716550519880788425058934050313120986936448943408017972552565662134935750009795395608679256598401797262097116634989961289581345434666059074316253411988368350971535887595809476094006109234507275409202893911668679743011442707699056239192602986257940381586674094001033761748335127615703896293540029694253744255478273032804549615045922491450540821991665530416780662010923098358452281674593637957597161820873187267654311015347165341497763216574842667271573333119607557445221462416120524347332074753463220027957207906354861124788133298212850032605236957882685095654187311184735166723015955480026655817937664765601480823106118943529854428492805859455542504680942601492087930693174192436265958398185740083982233291717884258604478061073312386317191164329201914298292088040961580688377921978388079292528555176419413494900474994460732589682368310233879449933184184140029519578953674532413840146229278846496161653428866051987172689073586133256442229754331218587049254213731848631616234621536979019185217384113280087913331217947099421783116235341004774760058176778328002482080676722828634301486132471831717223022765484600486759103682008762723251649802820610058706504062385553532294176362784177099489667439834769095243903558723443123758516391054833497229352744651150831930881556485546767029527236963592348207968231867249646434260765760143156682298038283165735314665781953300676321748455044437356808363022098789253643778797914989314626685259619193930078954046486158729485792016460629871941439983977643026692618987366816414825143349534521978833796495325977936264387654787774782159294663173551277207681043775381592068483416115191064654629763749742799337230204512300953518882773838463127260827075239899207546585156088557621496853134619797951104362579531155844523266128472178462207056590657062021538208205088480798478370530050981385886413743566661927000173978980849633977858354910157053540839415684915451858314814175214154343738282887532846363821388669414607682859569217243828837010150987698907296076007594414978898907743524082764666490468306139431225739569423668826975249489192680125283788475470387210989452365474961274634002088342380041980230428747979123724710076899539341250777160037399567157427332282783340218393626052572665909522760699344156764397835597081695311987848387693964612124639738034811923191766898066726966770231874209263210968870701056618514334465269338683543517299798760590122885037660839414698554466471769237056763367954695869874833940970825344956041304315927102704721565641918399395762128680164636983852345669025698791808741705016080506352417487063577145786620493107110411982680616101343139007389689907640972228979509808068499170595829800084543268164866709842413134801290503790486116519637776489666058839127150135471317842160223359731588635269712018121276870528803792355674466999502423122469588466074296133626379387090430065720575527129297200034230661566463443686425002973328735453285655266331641213560410394673907672515425125262194636330542561216173244776477199133149314169647681516336401088699543365972226557722936497758250691459245130325924308796598824605654541452549136763618087476416946566266495139410824621921853614038046060865682383031023803711638498366159105896266123541142419477809075747979644108548251633184313386280007614456599436430648803005149851860732196337358837190502128710757931968623544113737625362788916354074407197375748951726593121140441080449134170827066399332209821948503638424457401513432932089341038541634338770209455093863780045842738287411350820783385840569145552162789022562524152894062536761414283110943207177366878720395158501411689532467689935079467488366172692299660839980830491322455117093613018583322202046462848286252322921065502816404670308550518221464059236873616323000978245419137616101237047598894598054624498591910679185604078002545543298132145499028074960006159411804937683828006186195676261256331038227426747245071055219936640835105984749867768844592121730363904535575199550463323523917002338092112960751701843759144442123226273908211199574621554036029257215299801630463209867371899947362276992810409167296611539453531809911472732899661804954693141268710974878423243640775554708004755862159754024754349647779486924520063255655979116458404077169946140529634373760692900902515705549991243423406429442593897906688792731654792227671370824703210446241422247041146431180574028113950747843809378386663524087876541060807201559726651189670618438761132089805537431247063224456743655865461697657918274746079077840855678022319865158200242040626514132906089569015657842705344133504495252818911101474742579025188149195265883633819593082654034675335990409732076184599352575633627092005500938824496188212373665663536000376926614307127862519699675460835002936136728281122199699862775474524655046753915735827411975150544148425654083293902238888269157724527282382420566408188994111281911764640691209212820296988840791819467191444972180242664502783732613496625249063907682323171835474807838125173475733108361705114309349051259237150269072307807436154213847093328465627802148220455940495008183179252345151927069953026011264311872942817863872392564944200726613486919396177801604980076100593967212238622294809208624273207835758276507446749585275121733372693903764063405272318734464920280211150452539095429565430826387094814214035329845378376754745658347689370184332264475565493232015821744580161576998824037088923977767169583851906096524054401605233468099981405674282342553179986973071340122620655459916893979111709906475172561338652191643652944720285660236063478439945769118957678480917689507276043005368629838262896265608990993739751338225236088760475700176430009215778848841294205707106636713885265748067282247575759273360467558081897977682374723947619343161518100024406595449858606268571424412169564625216906438284222093516183335282419649679374403066414528670481848836935082404184310129268819011288638712423815379960970166904609541355962712368118106399862963329367146562026923557641649476107177530944839419103013540610833548777501708417411614150997862454352179274621237617269470367580750226703511462200135223399790462336421399055657181706691455035860046862997383484701654574552819937346034994125873662609234395950331658576081896225883591066258644346030567803907842456480953823426241738553750930598688199150237661911707965366302227227481322036781314771722882473870969839830707153561837902407071170385674708364473703848963147524977894430494014100058133451333443578576344859980999889413750288988097466692098782263422399374193200514860426168843783138378497960366077269299217270343167543731342825538033599515925768212427118247053866534971216354347905552872322117003234125861501817303735080471469245270525504899999805884720134017858226269177136500628914167188822049633115451874228748036668507612237449223876356822409722905855206538896713133718733007863536704304153102247411445309901082204249959775799623489435235416515366728815398919055470896064928951007698591552557911377945609724741339336458177264929037758726021926563211427557745212553149304771824207409040617040688440656280653100186749230819700294132776066837351238781560413159874721691257203225731361019911503871803577215510206114926117158859702131327222956881248108169374625180652205947343576205148854118002803183291348118903072759041375294277335110561988558465224166684512955230646561693647866226807709687525189758198481341602145890634561945073899638174709978279867989446423881823144535072152424030395674052515220704984290179440806771585825088659069865023093067829986769003809364803221564714876674030921305805182809397291225616566968568182429457462888417646352032558425223256747723895667403873324135624121578160007947959997246034601057564051636612381562460567604940138215018453452761463396832742215403468983003323505008877431722905236052320594940237175591633617063547504895934480279016596492492227780759512681280702798635475476666161475549354677737849188746741735877542935921611094363590716213237915588656996665958564479117793948995953801902356640025257937914856659192648368519440615720242356517737701332795161813725609315820558056434421982155096839120048639077837491153351649153573499856881842138055003499139795206248516625638922033902370538861078033508318140700464512731607648425833713205044078561980040634926801169902938608531214956130981116223709451158682125441594531079943454025891392010830953234366147153907425976210283682666897426392762632739734400808357665248744188084324277933401609183627641330418444278638095279222752738280054957852611492092001685649860098383432433412515304377031182707428517521046237465362410857519518845624804516667307565850521182180244236236088262211615003509087657473029517540465603984968709130668745997407662507370415340556349753090228258618603478349521550624885637194656340525590460958951829221797184407685561694654259044227466723709777259472775143439821660501515876704190113429068607424061962534730673628244127451370836369046678985321407757220751348307487550252091412433637357087055491404116356787046463502793894781977302834451847453243081877147743880131954375882440579418721615201038204089908586577418014738218375420038187816696772469693066744066599065125109376612786612355970616162460750309094510924422293409794242536791317655638332945238903012328307748117859736900224094151820556555021581822550829402398292737022491220750157302260424855456883872281241724571218914653954781785780717651190167899717815648371796654342987769895333256380372978710020953453707031686854601194613312995031629534678179730148417751299286686561268207265934288231161929494427392531321259477407325141492673597251732682388245365171073436482105815574472891800029391402267544712736328775762685258966415051037583960987781018613269707281482003851323696881976732446816995611847166397161217447548183275211811835483835942835193022860588439561799740967039100033643694050520698691189401119726805294855149764395547277394703609862482468054913761311104185813391090877074613122088594742770740119496234715022738277186700576996486490855156452258887546398386839875394956124703343995700787873867814922966800457708574518874167289926951049608416333037327084055075176839198797954618973143553822646759477834763929304166524952983400743179447407008016861363841544490683585207505067647873689139514805621174602416009303288238496697113325409045124038070531564576847713684925955386822681115231958503448855917505359234197417382423897599222520896594749832001143427349919769851276804551222092618163198860723080266173700688617450268594538680594514012777507648809252316175980726052415092343964830957688749433174992305827736478511300178973603560943651751149331390912359953432500806042982131022720957597298614137967083571305702320802417315872320338072320997737736941599124429800972473046433494428236616121124743050862861768007958840226414202833167784181617110473989148597834057825698415711067862693115516225226270507303268546695079210426058415415380865438268653964036178169632133228370098281518437740241930457517078687896233368607996745932412804942981911651190829551596127656682169231231541111625084248494521865936249411258269535001284960629045740884587317616005388910452854338473238268064307650176576478125616444361502995511280580515754490765497211577111992852151900358432245437112189194304657297563262672001779256404097181024523439014871171712408355631344930478167217459454429989703981434116762814910240162787521734154066537475010127982148153032652012486005572419912966614984156001589025888293177834001778509895701710815619126381184208933064080087630245375074988619675476831762053132957616397140618282184778724402449090089178032208069226867189968606964683464404096690614974788552625645703855046810047370400620374808473183410529044351878353479241740353414990586669734222062851187862094941407114970262846490652633897152821924874146522681931889088025564428090035875927535552363294875483464283801861681841267375077574225304910592474718162661442834434213331006641097041330136067832834541107826543020981871783434422409432121979885869600280084187826573268656654929556085614152160289906919178187816901848910490097858862698029430473291886983143964749097974114944720073258045389523805139658861235411098310714856975263989362631440569961137188423996974261957021756491528766248476395808814539524584960743966597373512944057207753902439453500628743693549548760457495095731731112819832605908336418786641992894022181435126593194983751645474166709662127396033576183756526307237449564020296565596720576864167157979742444571404364094102040394280278508149182218942636755951391686801165879073024546786261123347458323859109380537368928834887044451353562914729646642509981542035498615596274031383761478408462492190932513117183136948556098264305769651023794355159838664783106637829209280120482446655235952441633531014593541347202118306386009724498537489322091603866148636910368751738599638456011928801185419431169345862911410655374028635350882959234714949685432642445994486768850853833481206790611189099092178718228110263131771586040644058741671763730825640508277297466592361101280177346547755825756338100028770676264800544771067347638644669902658459291717395591670243795499042760085475479738916329277528473871466451687514638576769434385492953546628865284615013326413613517416902576440467111645820059953259216415725939111909372860208163795409123802605553500828118934517468781068077144561260939608056306218967798979998328708354549076348945802977818013087487670189867431379578889872299389360635495488458805540934820728170591370687851606573193401494875696294435138505330521780861164080043015588188474478483883548750670885160943772641664277873777045913774408852882738773921456451875172448263683103971837594431419465975043328358602123700522995995557079478252444381990421206874724959526866195645183625530548946115988303282695277946523400639824784865204711614026472895870367627559603193624999179164447021227755071655152603699325867967477918110051167115551662858928101358405702828285157618033773942114551474118126875415328827532040147655613585740959136752100291197373454823713248817345758351181616879105077778611522243142263414935709870814612437904651093755153983838026068500100776317742203045749636116771088302641728669886018916761114807430405041447063017664034922037050819798457208766980182437371434488027994867990410963109300206978649088532658248090210088323046812686419723063474951353628968825849545540157207182999492598749967293220082902471309216415117771343129559823187959265946015076821350616543328621676381593205298301397339718365607272780559466923066504132464114769345456683259933630058599163946802953916179044021544767489506492024943409557136684472853227407557203015184240413402544477841970514170438028818051244427400264472540173329725835601715916508879972938157741539110822399210213551557497574635131866629128955301189347560546574683302487989914034379624198497990953997774009316967013360397899107282683931247897298874357914135179740249964729439331011045804907709790657518349814835788427118950722297439290926607002064814732649731183079632116335807241322319933896576380783649982415807748056601060362369560172727396292456803617501309767301593979244782696451527149259923500126193806571880062952615759047908767519195372450201625002999586500914980873896809683340213739260154231293226644223701447197552844877259536038651643222031158208044517722997489125991827576674002092521176518779946488079110769955296397317647586944429596543288932870830571595745326526873503383612688816593526458394196772728757523673327523478857322640463387547647545001599202449646969270427982584079236854203082426344198734446239266664876570551691697668431198925400785153568911400238063260609006806524944130667552372295231186362719629856030788436685362205857598532361592975492551496767375731008947744113506050557104771387426104113619455856659654013160808090891156241568719484314590894647998073385253294403247687121812220850596549985127924562875998794967191385354117935016189583890186928345481832446197091277939332000364243411853821564906629677580252487232917570782235123897292304375220151336490479155316824788983515369126903639452793774631308936602315379806107558247868439686353589969743161348452977789274392980454734668241709834323045277086588739969320215275006351214296100745876127458506362432925487036356864794856665291244439960092541029952977504591993233389995907246345058904751259465061212072816226717509056868632632714534621758591257108619020012537246274474379636822734150984174847020304331097306083419753379501032788286520377588696857772435996477545182179215221114192770193229533634347718302896861057369220043503707392155698989604622745514813747185006165213784598810100414154754721195124030024597743370834407559240594961873705148292536380301847150799020369606381991629929078936489095626532615486626432260956488143849918579051880848169355260596361625984076426071708668226844436657476418535523698363947793682571469539749758249955594135433576221855531764213096830903577430655753235695111448798672328251289737950544676156082914889448146585444501651584757988114918435407554059094675058820836780114333145683563571041522264610724860713024201148351231212989295876020712396258315869581347654276277314436759043501473593987847113432705833423695143547463474525212169147759837163692401197610465020376418783974457600066678996947391500949154600089418445769107570936456894205079965372787772839443577249018481438351839855666740704456170002803532579381518910916953986578624744239857369537854867136671340213304278838176049506511438649792138602680875435373587500732490790738387113102201274231247659285537466438011876171190684183765640124006968989467830332010968359114420128685275464356019447393631895112781188391325940911689593362309894247650261325050445602667932858215656535415923648746510219264637925712050548206856637748406274953077907534149000718774717786155524404880738732180718050108599546170272645669168348909078148270794256306141339472264527572368378030982052952855855578683053300430133064871217542600968669079380776061972859893791957823911626284732032718456669482660717102213180552118865734626337329603574712602366240927796332779932200148443686944284722275498221640409206397794853077002197943067272918694913774551542397593093455677084432813287182976754403938676031931889563269659378262193101044451712936383217624061252234523577894188155088996721246905161804496542964364808979535054303786238806562732654357505046583704441186197236817561097164949108078372601641827397673687198866266282675251531749425938851853157382730769671967574669077103872309257754094451066892136582845378604225432894899381580130073823908444218162651500399638822053070290337880711656993043947567052219443516716575674545368163915870152357860061084661140030237985765383114196805950798960116097160677083022781340131819940355345280983098265098245622064777375974628400839551176497017262583557128620521715460399816755694850381057777174834963698753893893650899642078960156089335419908829093895531540154754293365520309840464362928386159894612886295307889630106393479269254199175942800096516567189815915920579841694608777172933247307302176170037592210910225119450155063694798295095308811021807666902289137378490285830574188958732993227432789220401285294900322128278510188099660257264237414602790896492886960703599804955296057060109789903669317255839653901876374550491255449223606693649885952195394236673095982963812554186942806701480849814414954972374504233185869340254736412475813054937812076055060944135801974976777019694319593943788177243084380937061932180518504876964730063621882578334512414314960270636325898692852648745434634162647637696295657437178669690195692962762734153136296903484484983036498837478664450054457102944887865560114871856291423157691847264239366718490716308446115564254898858188761932409119218371537101852765025354332572980870222494664259523488058915979204153643290877448315740306142173924435557143567023642510053578841144123621501053921031974653305577174595778728470805460971471193955665579251588500276831179181001518811695903490344612962032080546846067400571975780756363484176571156797739040960946732751159704758766228276829382709780716730073971476154412817045978409749208577559223943586705065524443377387749630177103490911510584379115246262239684767388803798709514849552667637726788255380967212868167863931094859042578179381518322726080163831479921493899238643249832009496743002800001397454551421889248320577469557224833187587002582247081738160079883069803407636951179442003919656794016710545785895996184489181819843643230642346734987534565002450435126931886919382345858285034407002023134745775959941747767646710819916183701795376887698372436222416652273406390253434529554803087930866844022145242808798994422289394878346883324447529584609751504840083586504469180702223704302614290921333086587458295639969989476542998706954079137420190968177294516660825756988689565234193564658358521715237201214248712194509159282116599137648839689850202311163223904902465966341974791762565283114764058307040613862993326109200006131881959539091908614055478687792570874082002203587430528698394509309995328792130780101318890637558704644567242074881751218485288766434494252859361786943907248656455730622745876277452740083768619783696545422365525991190044080422170217966893213869302053027238904307582642611648261526002134374289097889286274558609205847938921486570310946424291762780699281212158933869535544451554196529767255159992043121587151481443448131582322624715191156880411080128333264299206062930206995590244576279433196146929591392371408167196090329401967881083937770186148508659605690691414165251761564963152391736056480219579126295798261487465081366928402038860787311543712908868709949077963411552196935842842719420985918843960744641109436479422615795797867662416819627999256888863929273006354467231018060841258528592963695304381736813761713558276993249552070411217691730647095218657696999063361210389267500213377710585134321060242749955253205944531135814086095920269570115070252617491815345794688098733893759869532327293751524113189384985901008511224441064986261735007089610867866185765562488683974341455885563224969958988502012980261523087215219457068332715763469130960914561424236916047398405366206417138574259570838057654430757531548311484333652932562164345699746541230980001300187437640030027012402952891457338832529845443567873371245305340591341598791149305418157415684099773603398632148308467289024506144133529676101224253524483118451654454050608160215013809940454713774481526995900606363008486248845857121648908223551850953474937773723036628023365949601575495376672967870406094415612550167277849433863846801485352390059478778681990595512251372165053134811846030286211941597467571991760430617274909654846412840369048515549234594840739544327379701822276265350431154672802302916224129806783852093976361733788730539796550967680364808629751888866078023516694255581522493247967872395677320177494365864901281394003645182019615039821976845262722604289726630016979914501485217575649596616613147644077973550680366015093157309316936504025188140280843553604078744342496420093299526423044257265149144078332677750375681640889859254802160424456718021227104162326612707589114212647423196273504439502485486352031236950656731914109479065300717585830414439824430251015374340224701218500965869078157299625403999591580086557734999874599349713458319129607082616844860216218820159597837536036364933877060671034942708883275986881521409497061438019258933646189333724604386222234837525467353168180691318552705199297118458732483524329674932251260084360216274106212860470857385783510205718130967128349543021164803092073529264876821807230419881002292969106787606024561242077833442268992143090425326144368869374302757777187620007091456211977402836514368135563316298246108348008537256270110691491288454398169017480030446324790671630102164503885079772497388343837321966752456523454003684359810363495042913583039720910135906357227657880087764389589994089847166960507050935706681707544195835622265685959440648282689338882211738238932973971117842521447893986570308627298486023329205728583063566936491366649242785714401123995563328252124590218324732752524914902678023483057411676576767296268242431386424264076363233775256346297077560838661326369261098839753784924447160232763659490587574392834750722844252734880550294548246361029689640488621261854844069414042984804646699590727650305040985660689714848350293361529657523719864926024159899279720755291079348120510520626041413796376141036685196622848603081180829200564458194892318055488107383816715888417780981825543294615148111152158122282598414335930982612279737263686358081390177310285639361908697376183027519011713582534427377354222538464908880173369396113502696143520553221764122630572927156723574904176631116032767262486312941724602745612620494774764688336485204685338738825120427410602231136106800535238343958515855797980541752375006472498077554595339385700509643091830813609316555778722987495585402059261589833124428949808366323254141444280768013893271286465473059343545502449264099073357639564917645839992721163097539524609532906966741091525672239800743564169859835522623520624671632681907677469698516632911098282272945821671949272015606612262580922554389450629843595044682667145512226230789026595616878176484590942977643221897377831666310194184056669663117339301079011494696864469909339199416307834927426889699099356316672481385188997587820966495608751928328107037538179181289529510064620720028188540566973397993939990439732521462921269547318286963594540646122420668718034744410172564237865960125524149003744054552587081593003926062637439090816110359072666132826666309027002711974025063915521938395302231313795947278651772397005408762418037346368684571938881841051664874423525086156819930888411897617635458188530210476196377789395066695642919108521839920720301933977508268421383273619746376419333050649861529198148900436473454107468416802718351820232096014112355514071107095744270995075646021581232415365084419788651343062468549838709353391639430406117846009996511003540002504273360689534385667521268224398568651912982911555967228988014504701066052420345890110602011768780969203435619750466535534221686190729781819829149450257982406612845849315881505342819686206908040127211143363787996897672974320429559995288936860043076842004439341397493946249186737659049928488216552988578222814492479541867058006332839568331824483286959270090794754043977880330315353867076141683406964934363058438013619171200591050133467228953298646907718431121418340744045748544058427282230102884928225667305900886794881257773233315839942170920889801335610211909297151531193156403817839113788975117115827805945108438487644599331117867079049163612336957141291723610569086437641592755137225127538911419187260124810882818004893975161462990473401079426133476903867456387414953677582938214405703541959345500636659465697371142047912001812864822238171503194887690521348337866591183286612187916737834120106352712493951536161368462799637895604396343425595083539851018023713552979786301480421405980781375519449507153832862039240567343994207445046822910976422282619725703069849887275050635996845932493564407428327327008136183752816941408388948700614741362456358769320176545494125627689148198643065068775735248301245308375998654432392484760695559917192169473001718266841864366418799331977058302862776426881371713030598529291173711925818736551179889740445511236092384537897295830382041609010069360382340262745439638550820432381460693006063653754424062377439871136319342502294658746140908571656558861268793271272388859875274599025030043519741139019518165125034445295640944018450456730903041270529615433245832254109310994703510372174988096000171194440388953833018830870619355866392610529940778911872894611333381909495447095354568480126370982755953997693303949260022435509919234316184526072631166518831057975938605172573209740351925905646107411576484284467667445468354352130011396973828859398583490694214193896069245909427678540599422599198254240105796173956842427463726587724388588230559029877764884279944259354476497609210612552320084937941599253768205997553288031348967099654809440630775944331495104930502226156650456327250012219679574210870105211330954631007951651985307529639849951427503904974928411200424066165318090071397212457103027077761410350642095837073188221195637989106989360959651657708731920064779186011666671257905620810416964662551047256647984757480546694514915386530179039292461673238240545133332231860911249035107122391220736743790165648897660778060465058722246207476932088737105248881882267776546953535278422148343802773118315609724060081986353848468788457498516687255792605305639294118807382210412510390140028607683939938780383420856318566522751996371586355234431729060926337508760757416224806963475369001663401787677772353794512528596126695299028011893754751845915470108917528696816697404555864921779725892783308403367624543185457662109412180270736316542253392976710798962043295921417154439689700013426832168723087152069389690062789292404607401211835927082537397695710804230387686504722796484166051085709724593897137561578951364769839697169928914895594797345968335319332109860387180333348645016440845030384819308121834724190427161803575408413961424000432134910909316203801880161748639053518413137362073175968862528426827504633708158777202485894515333064347831505569930905663593964578929371159725158019086874331911408290531727453708400057446430990899989444939559383338025316790401991494144663721274255140585975800420191030550942733409211921379902589377581244067977471436912645476964543607507253865234798227277521661022844703600062987887502889712032506424074062694947712291474184160205169687184029487722785644904061872721972925117753552594245147513891479662494212496351755031359403220409817604274750572819493598838310323266862492207585790624090314096377704617418473457462171494288697776702356176873152336365486901854639605208834619607679364941398401997265555556912244410625321257004020598950562089124074462817187427845981461661523206175295739691692540826039001384610914232045378316096968754880629994832931185019618070320868545943217014365962110867210188509328188058668266898450597622180938741339339475433595760498801631169899846059020995212167169008974784621681467420038533289393596688900336738646872186011589911609802625922321592782187591621729200084630349672820379260255130724874125774908513173690054217415952929310348003471646234434940323026974341397784062878729863030298413848438260285796532354818884406395780562921555197905420697989759893541065139426279218821195051024407020024623468848986407002126371201247811721064177132689466617254481920090917566930422565738353866116576957733164709784531248840000479651117118522347087442344028670076854189954646812546130842241792373006457683704448644018460716936350662161194721802963018197400771891284651408402181475650881385538454054877466215443044293188388851326929827524517662929351462001273230164933049614399709696358519081826037570242201123083157417275434543340883885309146824789671617856339784574582325178109664720491816318234780048065100290098202241851348970993170854548581315102844797167919670085267553121730725413681345798267207587238332645755840066446480692397904881893696704343423190128036223780632332149430460714693332622753214866435202119676672983935695581662701236908721325047514354700134244166389741979711062638542998134615369273674635550554695843931924167474089142908806582361862701964258377246620208790998326179576764384847917310499768660306177894759673696680066459565644779175833973349082138764361924560948232715252280077270796905644075284981829368719370590872023379929000002810736525601457048167047577765145187556405553688199589175918352807585853838530190357391447708359562526319084196918957956507006819076712167005926580822283140383883746598449378412822302188493561811165338523579288345186554751077312412092707099123989745069890650284719405005607510256751241609192117647957817980491712231426104075064646080820390796890462224155268542834673047080269741640444143260800163534747999275765438740479435148031297691531761016863665302111905223005705250609763147720945061712896533846526020871244970422306362850916345784591974253944428711177606970607692695146872642968829088943301150076758567122983851215217576799761468478280305339733455813167887775301679687798906776455255830689232107821567675583016374996286420731170717918401259222398679704931278404920261880038974680347846583265778349208590425433509793085956604257882232908131958367075201185313887846449612710677332866183646419808986863707216929493391598728754134462178192386192460962532657450768318857797090231308109651858618563679226085720265422121541158019265068663574909250879629809845120842063303900226847047227287519923534830987045037618242164905426606878105607190275608677780164505598218725805783023269419949093608273455890445332398283108018130751890760634658923617409790889299647252315528043636852261156834362243639596435996051550113921611874007833347948742387304698869517135470088009294485731611892406748885476830260028132279016690411328210390542485518074089291590174738962910466613288961478835038364440592433432108077048853675769382670414132700512021243183729542450953663159857548431214289650956297930974499415373100588990618077684985456449608372201214831043246928493174942541448475958793887284202539237017852955948899032350730612680099663755573771469996169202255290585694218936779426433670760736028349473393826413871643849941267105006535546171704331314378800070702291002060252179989597445793828240120075453305959861264726222969967975541876078836647550623582554350403589024133470621484947346812427505177419956544993775985954424074264053851484732564017774479386624868442611178664275613895733246653845340446427658921019905520529333385414671816770471712763419914436389838750802237153025613081680219668850632892748374880408497898266964324867841349185586949683125049102218291180255049184394131548386384130093442496419326503037624496944229270669301964649464994056421908171532639539474040252131988114868133036788459805731074961293101049914855137827248213970236393683307844061344123836938550283814221614564789560761707420119212110402802581315003953605233751910557986258200880006042941999998397285934861296403886221388460523970736066332333084759530403823849939538943806253562776107180256320335563905948467847746338606139649714136052232692452391294971051669689533643587518238403881422800089385744490392477542202376723455634602676877621812728540903661291059374036463234710064843919344023028124102020114995678463141523775757557626569346939150130444753695571001663080773869054533197389546464748975208784740366735966001951173986345908329240771567135412359312549015869085833203102910289554524277313461925279079341851225231375535711255895768990318889159264737661307362361122149794899094400840774676180107142141780691038272167180624939784570364394975471882064063164989508274242300236083823644320929973800854126306747550053941182134626574731587916965681835115567566012643803815210179205412681997383349387260564028196780160269398423179002737332823831863175220015741520279022298045170794280737289143376935015316659781380996195617658724629113442050211379624043817633118247838931332927272840628868771778406254314727113311066715103119440253388098240903638322004978645952183999946745237860791800525431311772742208356859475295043748506665215110532664438440098359107771431556012124208795715688863150120836705578558260789108647133880185729908745527707747450978816933695910969273214184560822000723380803239610220060158414590071233319446708673950983969313747801085629212704111460976615571972848286975153395143851622153910748977410699245313876904839352195965607319035634824692062710909070563019336345264571492033226222983412577233708959922987627439179034021668125745331717324569050610620331967405050856657249843726826185255031199912289109716418429831262321248804838734574004442304717029024766944760732504544855266907308983559900812561819407886669644219507018314236740630123533158076325338150792075891241832455837547448599194496958784015283263197608663251441414130738700967738992380308776441350141664749742114908981938906844200913971647678280296045259268420719147708585699280065680992510873571089462320410459029071369170557948771571326579330020564190574276917610109682931068952110650762850286881243886060569943636795641033860488398050845353555129588270667118892206569485732466810610137139490667900764815296940892521097867360375461806045287607499574313464761007608684176769339203483012140918641917228321006659363653978889690366255587313125075598712673283005898055233841742975609348140453918901113456725043942855349360217418211846503733435100984524222289965894002411083980062345249608114465219053261040989870591813154215424445112563934647932203623247850263124171342709786678765944650398493660519706344616893306021211914763447151593542255823510333084580194978481468513021275444169047574664078726627661281812839857058913736896344511842055447298542140989470922074777383745012635623170845872346613568902616810068602084621158310403281060116543309496077870327867180202141803487325576108272265272870358431201389423104329725854450383391779698254446715856082925717366983985385060073060275324684543958540096802007975421665105964512285599990056031492786718661823888658553500577145870575412986235766644157951193413661230877257186877748433198932496804522320589210908273037102475291466623156449197966046922478177276408322520073874724843728285441720930128046097421126914465768547642797736486697769586086195405998114962533976415663079108084595632549585707283296836756775224932527909878144442739860242795924980399153855971539178027010871106233647331405459517706803629425677500178060866008272376961661080727640695730293416325314930113442479971902330343398505933101316858387481561961054296425357504211760708617874095803343478942897138104781389526514443203795273344293115849169620726437519969090965708011126645771215282600624160735474265755182260310374301379395624807136011492036367111254531465381119844421291912731802325402363096567372433398620297265427604940519557992734041659388132694209918519370294071059095553780184284102313681930860282604062389176463793995685663533194749354377403523264965718753582577700855072815429253964261066512697132412402035788999675209505088124174572380802440102500022696972883373991207816782896473417320916077821320135539824705462509583741859195997730897147724280496043161076961481683284674205978802548606849187450483944659150021520859132255320167113775420369154480009690314163057067300830341515233839118340384505141596902306058776583156275372179622458289873692098385733987978013296747195957274125865155409649630713282487930953438703259713017683265258574504968183558592157946064334136273506965026870510771847993160356099128224519444795510738754940080896088408875868941333052443160546711299097014228189125078048892042175218934252382225037106480077366908254078202811886641311941764368725758902850818594756047951355374198673544223522718648451149780282607480667326197832820790962016376405648217036911837656080642393130600833922346447845083072976093077446692907092203814943596955933868198524622276273562888170687299429734268548501012564316415780079041833441390126017206234671690343684529310402604287782362107112828439872891657083563636580735809009983821460523435055596422570766155993081520678727680202165436202842162845068439348370701671457765906615322541440640078759409347656080492870111125864052878404461223177106686344125557137992263244059446594164222416643449635871391659732057147319299270050507224168496662223131790497477527507301322011886170299056447471574737334212632929019688332490661367887126948292037175723608274186852832289560853986659983863530079044465244446366071606558341100765389958177763827498982929730223968335676398845318435344798486683163681381180848604557325282951730428547966649890965029866508031136767114866456248728724225597624538957526046858317217270090673283306551890315154867083081989177501937753917895546178779916808953746212343643628473229641585104215918861218963654571191510949996189798826818388962118354098157386272876409192564887648674251475962398036477766384394277465198688565736138483212510459575099980835971329497877190759665202703194156742487770902470406873688467542842657556068137052422772634126205722154048059136788386701547328031135559963836773318339882263383188940508069970433225749967490297650725541031199756966460715377285504820287147195769086911207570825556852179391107896446638862351612240413049412056836045500452813819653151756417820513498414549747982798487434791498618556864360878042628847497718415783883251393938020392470812121462664483652396978982762966722442269558677041021953481502443863055848511826541419317872974201042171318598010486070270487896182987782638663148004201232555292903916271214645569805651480731225702894074574677361313720902352855613940140226042190209018645325465628460068732129542959042389026652299649118498083155653333626024709223194562369326606930418612474296061019029808438582286713105337404400285020870124327395040045766808022969794170420744424598949396973286715598498149630736964116275224658828003365901305748194543112212890115850476228164716032156410190049798432885527087014835592503016252081521110385559277496746278817362214662107544369137814734221756363798115515369617685675539125941391364620144428603028749385326655062066477318689619382538261170714636797119188831013220683361408007371126374317455650997933612294968644268958616705933160250589785216112560580743916696401682401029412750671615950846499210789140338900766968775048520779079516363778963191935084856283658432330751131833883324477001381867282769849527537971471907460111580756249320207659048777058374852479138228837474317984206967474332881232382967940232587247771603230855011027623454808642985478342857988737941643401253579954468969580697108294321683980023353844217569059251645040025120525796148230491331471010083511140624167949536164242025735376527923355043488578062238975831446567008518897322978188236476669517660299407140143217708483510479407380739559228554534254945885527849608201388619619374387460011865404876429832146201942113939313934266936218034356127496239372895168381049483418275210137789542672722642467985936499087152100278121171609046654606449035694582687562716400235467730125405563764483345154491158487723025850181179803978569215712627334736484291801238810271191626382620775181948428063400472634991351614762413294358945985816548006265521647561468189542581906664301631171466428756552366332737975501434480644281879748760694274962094012708606386916827103514738679802541721342866675748036314891266534692805815883192102195402699436846214065584446631531125621961280839962164022885636759545963691742064352565276816080785421398715697244411848274245179989072502446628334139804496768724351968659359845483182841636109456337823664819151399562852871832041266190205066687705569288986776934671175755264396944269169960807631514878429731343137334182466724451982308566492984229542013339632005692051287428128296036912455523757254217006932671579289931067927893168327475233510063276516146458658676562925116459677268994923130098034336531868811857977271626155119784424855319913821829072300823687608317162948290466534767910328800279631291394429300562330239144420403332699981911360613941173477673773736648779137711680707588877069852818572021551069124329639312412404729603305105468702318642696597455464007018366285090334166907612526513503140418551561120512216878020206410582761629934461943425715680500820667676105927643460398062374018177965527140003448353434515835371583340993605838487717245318481855659254094953221385053477110988921320373222407362298012916990636841947365281346606953592090119792925246857420444602953031811414627051032494914435234671264265943971165320588511002695119015380152587952449466873183427662202182158965886787427964581764797876027032248615059817564369808910139148913612618153112246450953366409717101355141350318562604562793793814668962965436559575383712762580178770430482723390150811583917498247458060364482705522685476280827148530263519187880338177770606346435732523407151205591391845925846296581963155545368869370306593396401665182173227822351243444425863177906237408608723292472672075674691539981520484029635799019669888598054077793329805216253098358248654446832460928075743412428664454863350852394803853620334695541647310179494538448605336301991315541972152063423039814720134938033637093735670358918605747108262195717848413660782475751508829627451234011037121203991090498717865878657031224189122077229292679111602075100653213487298957647690253435618340122652919093797757742382555823742213280336299292191291281330440675802235758117208596968908285393703502150628630566270758860493792737430610000642274207034322120872784775066749656632276848195951071354789497779293122671601180568991545269636251557638663547664955864361467862946286183337438124749982675397278983942694195020630742552835142723358378185376871743384260692507197257306965487001735715764813340095805006703602870111816236584297521170193650238619916131995208240839392268836200906878404776964203470246922509350833121315085071355932656179207073863620341332439077055074327499880700938491382283217174319075840525773416563567575069222410364927610740431174690932665536916103378510566965747602214138507492182726001365475954937976325218785185814258400038280625985549315764496595954706863813767251868209792140851790313911701684612181398411576525498805573021812686361576344403602104322658823449394564007361311350552262053245520126279055323721205470425599119912560356646008291142576695818247168606641255736226162659387414163572409599872052008304199648960040044214362814383552838622695792741016380896279572114464708149806031589293269712800821045814967411978548356555825640683930497019457470170591527689155034818168252707908612670473141438553912717577494057508585812256975710471007092266957211126747141784990341348072654899817901215075767857629074325213523416491772230323084254777404330170730826644006337874791720380118889269110482102875169433511259514869377854930115471724096019411614567218732571861049088635483073900648434105443552270026501123718123195225479631990777190769834739789701620861110125156599770624766645773276634849958421920538088538561851007831917643789129506984182695259765345120702653438522873540827024857249320458914630551779068780790866596768292467237223447119303445296153172965539236363960673934464658897299486133951073901809147415040112670680287707051478258971135045848504520948304455172130939881762408834856089773033374262267061021716065168989597664106799300235091197352172869094635958685031985834833573197900064358557010996483381208984596238281858835877970937198732477139795129083758396419486369143417019855894942802509328164157303319035299964274806843827981325596064007429738631673196190843583196661829324389825821654202001380051311576475618110215491580537332449414954154293310409478961350901998804052006487154998565993636226879284551896260262738853099247062302534850768321926147496328955813585473659910569291573469364342762131158504837454590646854863173553727663303530585626321030499836995574981211495274708388498046408988333921317750636899216356032387679465310444430339089980215544501090319070266237626593487716486862041672069710190488592350529213252487195116535639984504596290642952700446233985959263846741915500175486183037984969346685313341010647245463138518882291089380023275962797641755520038635268314539575693421930021856672981919333400676204018381932284870101381954148051143008751907570604218313829261476398944514869557570479922683916053130943527171173894828525992731340505455163268614053238348544331627857197765556809861742596771953136452458565950377050914416015918585751487718796697378449264421935941684725170753766265820847993464213517820045389989667473624536075878988662216218801381277927548082773211648254679573698325338225740991095266484981999977177938143126859000223305018163932883811638176184660746459456508919248221539877615563506335748270751538261426757869027756894181518953873236168427340714822430613678252920697045364410133286822708161747580595690802275624904075901515252509623722318033988918742708099756036757467207287683839540368491661178118358389857669428767841257525184794106633026235023641832995128083174161037847180530504367418125572352856477126586496627358061109698520096751656576716721194698973587947527860639951942234304895052830210728614001363171961924792124956112227109197220168934958557364419369086434810752514756803330323144912119502638250407084001646519089191338829052548994762365959123085121419736287159418437505523654189641989049894339378717708687870938635092107035825147296910453198212738608140047778811605424474655054425588467270381485397234903124327500355198982550318924285699891707332988412294031952103104148678948456362977308051439702768529030566562180129723721027888893606688173288052856138412820057070946194555036469273234222159627920868309925422127547716758509611667872324971249354781890443266782880583062149452917267898042956414434836219720547628869587006450436581950047259179813347526800225804038667718317001104520642426239105052286406060805639573909603417477887054883293090055852485863047356697643478734859650587792822092432893387992541092028870612224454759155165305359788443192200358719258090707010921863739486611426557384079783105194273633715120849362136191551547594708801286522937733480224475129467436843996482775740004996501487231375323152900253015391303423693978141018022201800411214347011290339076219779290404218473669788537930949879575446367607135208279442972537236277246301903177198467886754151755372582445874534487491603874212473166918293913054873846226697531009834212605326201262791864794890670496484940648952464434832003963849120772355790634150701921813191288675813304204111993851544678248467852546172528118455301988650744383109250368723484512069950303664031422283923084956941164025630005346390854172922944704296316039743711818546740270855435175466483258067043708171537296094992261550735880141930458058306892287860234696357515512522668276637566486909828121352869513973811496973482537743662189418099634895917087649657540138079562104185148642971730096251871217227458662384048141611653430339516005139521964679769467647057607266671021822088802244351072092120515941728817318476070076609597034018920342489047980147483349327710605508904395895156526324628302792881124520417372183704444685093641297306281769694191993887798500786699474761907408475442013847075256710501373751243189978784719626026739584089759566667719090168267967433102433805155203169155893054712265659414450079759469026860032350580039734050728791557564010670197318183940675685682128664466037622806860849778937161312621733025971507692233771138596071832541647459925751492129196534848119573102634179929383794610902719360448012661025261120702312805957279330077973787060728301631762038835626288601016379717111678064841228067872317898938663065814995319672866969766480777976945929381177781398556766182712941861147072801290074498521928240006115440025923066821885574789784997873392755164588692401230459221375134622844325479358979405587825577988220580540413937109527345346698650181389936647411094396987668682028962251235531796539917593532113843863473560937579361677267453865744378856082099273299741496246427783371976232244723514920493519515996413712446577055422894967433255528137921634708843630326956664318608217695368205812711891639358446519125656945717562829544917270575049261524465139017183648323128569105902568397786195148488838524412444243383762440506414577269050610905743877212213304749017886793358291916258748335924204526908713945655656457633269137207477352207964194287185756804946078536714787383422358630055318563013863394803624308217409700377227993377583174992479935492734241850531918629402119302800135145770467809731127317090448021599352643134586344335866427749463888138617945499048183405075047688163611548988768111004364046943285140970090403036881216897385627379483325911710143319135649576282239416548671328416981531502444751761365570851373652467894261781600320440564712325503060118640181981988323544371455887848029153654948732553809871451934147358911877824316003975086167764726471422763783294904572898315377036009399059025540954824766061774517287788773939366768286823494218892343032723836940080618880176983109890342183599782262774392334224916290304718069481569037399888270491794164131665263167477692335161561959866732057849668295437471079631991218528969909007016321150863383839532317387828317058030367095368504303788075511021315244843325382874488338496518087432472212176815606358118483481974113500106031841371026965272098614038916961540909330854502014908171678411458416222975880233344992748243215422575203942468414283517021698851589623849052670743484306239297730731154543863364708054581720437718464606487250390375060942855728734526897465179122766980968704831870450464684566748216876704848238090873521279581817830508423849090141572379790739996253461418166253980869829128239416859486820348728669571973165122698620135338053141380593224151383461674375264303513206441308409005677972125302480780208125792201894136086373920989485213396394737686370639721645417753210557399118838131338216322951713658539709407564591009407360332462472140072511261800788796638704554895777531729417680801868336309489004613264510582095778967967804298704919051754821276677553599091337718653444266853078718875017229487907151638766196530648708442031039590939116501770161792447139271599191722135573601409694254319715230297888587348068770151205221991472899121762098269920340105304382252870599384914900387390645629453855000441213611517804830107989272029497938979675906319545880519997101491447096211462173059315558209184379376159651736182293432024287685625408930822665744208101147934756327238960867047475993950482818167007419797200647350067901590118583725622262328154776410569667691390919495073097561414506846112980840296841044176317020374114798526869074757584032107860601328235193900699553271234350026971338334993405861364453080943480302583356020397002136823640325636003871337018317443978559523129032684271309341089345503080760412748482128678078475698503302695074533358830537574927791340341516004962909779037935433384756481946655280618128350017692747740609857893931758583889795508009928995441869648812833878538946819339190600582434097380527442629634582668168059147850474977953499928829830579982023263025084566488639700521507134425969172652801454748974083393426779898228546480222254277703074770654895282513011860590109562989782957467022912416201809529572973969710653732465597805335131303068524165127762751008951596041804997858644757631779644543067756020771929638985670784626228342336046889098157931510405732563908931380393822018716346848631512495489459095828082479091393107813019039918756642563129075193296837198106757619461821577892194892967264790752621061037000972342428166602601380302226336698288479031398562077659101049699344553089948796924316944199674908364452388211136921339241975625316456188735414604246596616147741761717901413508254135710450234193393339780837591502297327272039226761083718464653215836064589673190486225352712808798816345975273672188400667704113777176548124244657874300186293260066599888576480007052981004783618806387764215394905821935360457483960256521186813078778569211943047451084753139729094004251060752762335271013604982272551254207771903499106873012726329656856934511460024311257042066153441157362456453328110297829443561726011922908673228990945768032332550502046243956173352484186851077600234206400516580626146337921597775936767437230025700217679770017328505926878824514541677080224858795641993018955573150046191082377918293009425966761627051555806167888518795138342676050055290327461915153320842015256132025552186857081986289438521382232950352707771768314241111393267107251353191202394439256425065469888094417032934889693189553598343474876028744581262674942173918211366061004625034807591429044679988677879993807338490217481007350403271070641351764331217887075693507700769980060550998039560965241438592014605401448107688417858632936707786344092252456028505237907589390097901921943714165026033952729939392432147538671527465263972197708385530915346179274340847769215066784141846490198626246113962485433416123658264739742270710424571261677414610913291100094764835379158873233601474128284870395918431094311244050908905602803128215444147646602755022779177045497334905498365520900493791312772501087188474800497908108325838996569413452506285429907502065310035068054937836924370931781292723955570857658274436480032963732738822968975712227405130373720286594142665406729825389545880288653518278960088018235053213492143440196885678403077013445296566448703578055765040145585137991925605668813441582454309080919973907724402366784683753621501401175766295412374709519885219370155091002443145484157116120514399133670933711551882650519658858007982879183014740352971177077938620611037758835516443422873045190053953451537913717169984421695453742034309440833859298626902764004132963366755698034125887475303692330766528982819307129869231861774037725856914495195446784365477351914614076884782990182361931944158126571134210071658127058129375946323078904669143665421488317471355322076549215162835182202430080386571199417278238530020876620263884490341422430152376326655146742073035735688792843243673046014950352912528827503290635774654384890038041688436557632660539118426053079607708032965355888400962441713090503875273752848168868253796921619604401164405562992664240695212030869165166860578685543627138642640710049406784733837884484285401554981692023191401851834284304839854614518962454602953824138444488192256732959217631969112461288308044519067286378780552916917370471599118820161443887049387600545378369526410446279025987494684671369285962268587896492469558134574859744218080113209504122362008605634308962985220797136486404073129459002915486055288934557271766776075218759099234344667787237641992446872996691024085819804539737365511948978680821330558463115952009354759681598560938908995938651859386192142797399343818238063303279532286324005343246837257069612909177557011879175297479214376931786142252865023674834056436796479997542571418765026089001490047062167379333014154714241019912010486945379002112693075046533331684561048486503071183744326955583931396403857225546525319174778896775558697089039328646385806575841716879217238057767390163739935835425747345473636753103242724388019795380428146018439641686440778765421160961037928571431724167605316039356011473514452067894484372922626437924481610770944635356325756373088966428805128310617580029511857703405034433558444337751613860240313395704458994287176568087029166044094895216865350303221055150731920197670254331700234122043308767234948468798970873281428335836488993046674457423474010240813489201238677299278102129968527904076282669621606374257338854472879010771890873878550496536937485802093509688563309072872041800136283936751015280150131771206329878303658957768934417269060968019900862234158755234730645882572922021652255649378350294883798678942611219601169465610099812787928615640723782220490924426228726585620923376152954676608860478409986629893074192197978777619269499012971269923711493002949399093806687571257639125089999887572026520388588413421482435484305079595853544320853940804265640981152100144627907835798341178616764121009272592322302630878964859233014508460241793735613120369267438778084695914280458403955589404443423164493765266494447520538444448958140305011359169974501088514010194686208104153049826228929676025908638264648728051313975839331005463727264107475665856901513397185720787165897189849882534154517989141937831589934884098552621515071468189986801176795809834172156289869899624040734307425647036752453987603610659896058115825142459033668828424499652237696394484123435995700802757906659309035897313565393810667744390041010302776106218330600268647886437575719082898295999062976843459370743271495957232957381764070917512905254498634604447140217898398820941567720630751029140369428928590022666326164740880946147809734677163451048054128582639531148651761043066049788752270268736427801067473409410609903393800253591557033035166256679031432170509089016255142467094591485717262370115148375366110800605116129161942290880920790041904392000107981827484549422479163310122756528987280909334105287321312633423250496351660120083580861821514185455186940589711287374463395899180676192970272587348863470615272963861139233158404833701983521783895244863537497595464630285548082710121663254554716560866682752308040093611155700730947421826017587478056515533397656694205461673835584834588052905387709730962929768283899292116983833475473548130272274087700832066964991079682012710870217443567430232294582620443069610575764160839806626700205968261124388770694737816456790323125684469746093438309802386280208576050496228156588715077443885038658441994308277516317126895641675225319600136438455605672564054148463221903605975207005128368516066474167768164304306486500566389491830101296278651184761241265196315795738824226221607696801320385931486961177759288239706358659702871598506279477833086866856285519195216447235753185197835033523412030955743355758686311208659570272652509985424144389445567899814469626203043967692928937610739726422410623838192677332212930108747968175280215760319971933386753918731241167435851791553237627254496882243169125260086024589778747295521567839065756725479462768819993027373976268075612280430650436751317342476385237156958783222879711248320369249339661806908004302089940469281309483601183946993879213535348628216575410089477542186442252556593284954097220063730908120767041323423012179906137607102632264991935196350396783455775479812951527617374519653178090192839445547823075887662612764708157807751538563550295932858654730587009162481923803714661083199073474819113195851071122205345827829132625789781197327589352664651623700142613855311446972249564243695226823394666938724227276491859054729828518049912522267485514998584158897435645869800909865863667848969570254697009210909368205793068296445729913957831021017275387340728808413217660785676932733797810809696510979064461853998064417233721257068729625617977184394451145403562142038691064385354811881903916200163757124120144659213642560559152038893169718609551771772451629800174976835526760370776628078079447235446391955136524352677130132295337332235202271433257270932769204130168319770761753838707488633570698871465412491403166432008065345525609816371754160843823772836180873469088662092373654760178254561323810434295417386801552771792599084780424282572664549481704229954107710145750369033595701509388387640179688332483127494311153020779555137945341200193386127790816353057496023405544074646034565096997224971900507552332382066962222075061563341713307369680576799289237491109382412949170478262654880643226390588966725412347507858300419591379436987528947729102909287622294657779251280778313624226583662314139677618892379719129309818487672325592169639465219083259681120414713946898184534826047860511656588618891303822716739914424460462064238136150883291305839305104434871121516300154189730243010205952168328725887737905236161138953923765314284274498576609154346652911289111535186613614665356197015077808285909749232686014764753983340678970729389397877179958089005111045712111749233074614873816559413507877661010973530761138869928330823886230248242706641511613566709292385746142070420336838711839716106117144440961920384232095937359061163784496229998004837039489594136611953100509483473803796972972241195353607154342146745226421955110113233547643611180800528954131041208187700906684957314165928205482228486470614487310874543628148903220002162942929202839551527807930156345339835267640054230420441370344892169257716852638859037483104205956176591421128428193665623709022717042448267785748593789831805429768991588394548842048591844515501890862041126734642750327415963518372708271531423605423312497521129315237811916886959106101816475847003394521784916371195143618739586860879099286361171881755378008840501785128086957557062282061018414666357426739546824436474595439050010437642869636307664506801423572160500895846314367324552308223464021665162691517124126596027224037950906309622253577804677791710093604284941073223644961221265704017680577640831256800991631552311209479583610585788723027976041008870133009160891274381275038558927017124764433666476733085287474212861648177723335042601914495032561016596472867958158481344668200625207269077211075402540932825779412444533364166302434835255824010459540031241435370590994675819407002824024471690105403800375198472060207740281347616661569462472013458867152023169695608925014771891547651666415102911149935679761205080495919259097015674835780766436884779957919447813991835447279660199934369840364742580994597242634295371485641528422585941855855051788209947738709432042200358990669686747195879130084142859652712776425088282097613485504202306013101575013241282125852845127299478232571391477665206236380439817322504063279791038301796398202680912144691129385589678457025451987102678747570712216104362610684095625384873135880838279760311884620234697806420600783708961143111576799831541487415520002163869829778101111998596483034263791522808467968199616797190256770119353837003789409212814608376020736819832530865344808143410975845623195692543564168255018744194731056316773691442245208765757312890779001004899301269765239578776907309130193360392848859262561983419346201070910067751634897845748247695883867893750650225318456623356576013508312804455869237479390738474858903044456917335591627901042384700458310117995536077506883637719141950034960798055682069836322560441157702475030570937021354902706484518993183129507702883245257224847852817612028850613108656924800100637467782959737705967672744717233041891977124633146158412216421915879354559108945621805515675639952035880715139319478239250528834297473688389207665952192284294082410791130971740741895584503097309585060973194975002872085137886500109292959924785829801534139582272931735948852508203697207109294430801229686626109575029360156549355268050537136834038055872526624281968156068194018637993111767629772103858549039723206132516724254123592778342065641858386512625554304529101027150516971912918078496014515043439510138415438500378055143179605960866535108460248669176488508632396514884178962656348056622603106063272760853795390808070791934439365501163215006899537387341073596417554693678416616921826441079745048710205902175026691313799460101293255851127351634560484125734465472107401328808432250106140191942597686594723073467987603801191813430873279175166243462937081289031651500437662187290380045920377157247605136457203489558449230227478986033531472024255479612730970158389817192695569552450207363974653298237907896102959103719137819482893781013455924841848480228154060176776307808723501164046199567672760026089893881179848433994824031436850052318038550473395126632635778354588097525382699412402500730858522898674251574968906178681987079350473753012895799211205879875372690608025627445876594894883395311584937062077174891314152138962713265516114650285759366552716980331573160690562821487952547174462381240176760170296045914921483417625994183073931040128606785129422286280062434310620785157424511780161670451770903564370867892602990785912723520290662845638658179142946787331081085352625312146603692659735508424133236284890873836631254752692751833644589096322700621823081508559733059036967117914480874815181387397950382479435820715006033001604902444431232823999330522923990106912895929196710340072649467170013965823341629689728606711189143607889484492307893344651031405207560440753900107302398021494265201155607575566102809697397552537156636616690713517846566716615974421504968400089962597701264183765629072257834325702534687802390689105640468178181542281778527843279410640199382006562254435730653528071113822144860165470527675204039918547896359208432642473831294746840053010177727696803755483393603118784557723112727227697379751857187427034885518574074693412190426721754695067103951146275738424413756467902737173286026290419661972417473336251294183776810542086754230961946034890867845297194923584355697452708255344092358735283670605238931437257645264819727279856145653041468756242900208027562897601185545694061884614900681306611591435080029196246031613437915976927973226532085871398825402845511528989650497856822804264166634670735436469298819152086686924653668174139090567628447942903005514573183514489809603784589084975655972507075071133758246465630411113082039608812229438050799527972194917438926687471315688085305592438249736177752035792819146087436013153132423916569279530752161921681119282948553017000675634930350460812222360076224425329758194397470356566456281676495715982167883927228517860692007552978927855703575503624268585955708965537507857094955482403414521300016630193452146700725249764419257970214128259087120882732335430280516306099460048195386592944362838521114834797859965861867611497352598114485042557219138430750930985395321875997840088829361430298977475363865441722388807667593138729624769697503881300081713473159345156665797875576975325698319596640100406940363298444282191568402785231983923642030328770351653945209309944311315359311880388468090538245204934307888945994825113343622943880811307004006635579229073458041743236027308047015715335703366205701151448043819286318683441440223068893036056635856898056786677677188851687454993215257564055471038009071084454411974612779843626535794222375630916205815048665294146270345872240935138413470497708641190420327216486324858184296915985225308112290613002481742188749833602615121382450713116005374257884282693424544196594964885356088532085634137596657811096762130626886048698338920690696193669635977167807610121155070116929824200375442592420897454384715763855521564362587746148820118631402559783246197624848194039684438066939215731636321088486783762979651116216264976772836535882736061371863332164391613638865283270681426927864359825674424482729867584159191779463212359883014152287910465263110435830415734608249680072986661747081351889007786143644914406722308880569079907421053268371591993092369673888768377271064201515825820322667424753722401822357816413015162139299692122338563728413175581220972920582854056906929541754986113238373292930672559591912851139102648317978028106646296498715903599725153201972110788433731969981148032380500798610638319934009080329410267138953618075082940741194041458914855692670756659636097165048183955424471295397914517342137841044550018900630295296765253759478510899560857737860325342325502602209422183278132623267551477285626755597174454847761037698943875239823842040044330305460358040602316205057925184818979149574784668975103863121563590113624381060425526755767663585659550890544866793535542756974512131440496979431453837544643903015030472645950019059002853278799174047346171228361790203670710958848074046852431143404317395495790932679248802491412793893011581889968834402979557653158523539743180010428608306857889110598538530895796438023316477072762671007084315266217256323756023162878303259105002958362109383766391447440918383761726787261173085043583419094637503544737925171117373379586024676568730089875811939365121148431404945072477365410887607780637594431333365895706864886248805550211994936435217947680589568278563950366264792102092757408335850243658290546221373448267597409920090310354427566759006739801582389577080843934762953237012187951449977253669211054273907553600944809848441309640617018423102062258853613983538177733942046888582605583604400102291604417809962333414003834752384432333714610744553312872327530564660339563162480016751655904798922594362431147724476481176391522123490823210987968573383134209929949440921160218677334821011968537740529107409316829268923080719443620405682981009879744548417288163889634460351724465412047656673005574722366337468773154416878375200439449293762676823730075009090299251736570625504478564536060111301088283745803643516498916874253634335211571320194378287049188435137642567215373683561327645418991164924501232430575296369930965543365920771782624358926440965421106671355150161745427104194553115303706218293083977340819857287365810519167621364336494800957638202829950824899721797712677846708664215476569631466191593415260928795839705728601542142497190274288373376325586746849219159715803913012522506417548776143386458686800177249150574786967938980271154006095411436528853056468529896390523183147445663227783434063860913083107103331396393658478976146820890174153768127085992421264328533996206006261781941219965592620656868047956681832268023191479478460281268116382536039352678790259395172842618939997299061762082656744026631578415085063798595294936967676047593467000573826471419436409984422005813976938975247190780792575518756529535067271928458968103817313601851544566902788192979696041136609227618995585734524756190104568682690689892405064293942870335916004438869336153283430087270249206050807591738514709705732042998247243921691666757566400061085140128463386113997812302314329787905075881472127295245922911329435888601120427981030099986376149921212351070933912644515165225741238568762037055410805569261838584778418991725799635534764447823368832643816734138982420078699048336403786696968462373361877435741529740987986176214907323520663458279824237870278458451471055188863576874995260695617835788133248757040365139275131004072534272451791005282969897813510372241674609334576873799939735641956860332459823990910058806250748191498870178702745401953830164736337831235145881178896485691470826276414379112006456788470730542882759924748675808910152306981675510726777787985330288488016508330573917836146942529236555916225987674049669015537415730647082408770180663395296048601053175739511198961620908552595151666185721638447690691891079261228756521926846348306216772626905522929681129309199079542178718170128922064563428971214163790863804735689450926747237612118571928776574918589674712631029469756130065771513028756360663395366603217621446136141978695376327271675034194090057539558970387907237139885427595472770142246871474170815371335355410054640125831028558118269325579372458656709896283284194733151395388343306759881358750643004958184066372818114279670022295313874604454171272460923918034412603387591498801959006907298351560449347285618368066571551486230488159428572844188538453680846076406751261521325766072616386844855817444541217161219148828043187196136013442485834319288983413595124014929109292823419205298420750426817193745073793776684226594042567700477113679133139094716191269099334769749953069455796070261836365652181526356149885102510446292151775777289660528997430549516222178644669952754345419863761815312994645002152948047277023059120981832665802173239894034807334434911698028981533818976419801486884465881664373700397229533012913899539498741252051711213646288157222407105740190874287957853281544128006575815297427325382619963088291436905497870373672781671113309011474968504129732622926318671976812743067180918774061602030217222033080543177117838392021076230559495719194146345769543904025563363861652398727645810617868445826155461528800156191969543772307795177274785676954008092217750678808024185796089244377230451705740084131918334558607726982533881302884391682635352623115813690900551283622470810526176787709413704080798036032710773394280092266518312708536017094504392940626908707600595355048566632041844728481854047982537338885373760014957479874228711747649621808279410390738615475931389878841221767177402867713339184513273006178936754612241082119315036467152016417582906109430230141276968994405189824659468546831098172833959907831352907101987885583455300102127526225631564925246743322123566403046866575109877138139530504423805189588917547267942333784420724513440071359555454557353249871528051198385974747851188475921112659155006182624891828848229049991846597364437330505985180028815317692022477687559510356974283354572705919336635395966285245244707916964724758714450436686195078880321906214103716981222129757554677386871887074927931732220419275939013345295929935860262926078062532289781321538423968092266479917932241097183949146868735093458142314439231837449008728701903667795698747438533855143014366708052849957562566672541925258784667101451370977014526459770487723553767433874112468757307920458790911403301801235107551285501556985256493982546730691098208808685975849692058346797414281831348002604635510434111082579037208278160304698418731131641571585843316208267178204656736315167555865192647922125037876060457339683202339246437788140158608030883772880000411539444903328455562083949957381907608948412437199540200871282648139911818476146976658234598272884938906427516965881984141314980712501233122927375094315450077150527420743641947758894408420178153946838679508847698284942908849616276253918143711916709911331860206170013408769276797442634447378452004065314645489393838767608459541129976920951112635734940181968003357174836560052813301217998548314069275406556262497611863588631424943529429427178019260540957965771217843491813824907265645487481855997196710326144607191065639653669093745860334532368237979387166919158634256294854224655682970372277267387073914559951506887027733944438484910643018783925875550763036276830479332171884478127898048262751872383465446362246580428036327171529282935139544151403169790995084292335235271032514319382458431519965850804853813139246357730984510715927176058371989010094354136980486622096848878228319437788611203924685235870074328078433201955689362293374224392124194268792506530380503203587869978691724737139350207388439084876783034802115136891467082036345594234103632319748211267282929351378110867028889999537123918167586785354352362232970013272667443479620790367172110802755917348078760352141839405222530699223221717293937823486188696410140750797863403835570359906666143107283299740300705161572871726470856605024792707068943724414927248288327829654414086935417911860852400152306095259663598142878062776429804403437385268229092976588476404349339856903734028882064252962027287097359043426742571021102990511498901955230762396557717829373990159460551482711064329984778300448700142982628318942027010760306734030091239573044236525474510122792014255397677653058582363596300130650101836506705013594312712587948219380835347590462547526888059674759788698567319195907953066016486797777820236925390403525305784877917668053034651332917393901338716378174392692290285258196575547533591943814390261589112204443492433184717723367184605073366277319580632797491082421913435144589476394611415051175109951547910386616498091047043885982031395681493577772909005828076610150950322295113480842525152517488689427960152133133720835462986922047854368048490509017436306527866054212045287649203259943349328141976448827425269288660057862688160166977224851363575241547238568571091991576646667979638278044884889069858548599634224661823846858051126352891002177551666075519640312396143875029384922087474342331087022162149638247749898016097072822956347169819738750008214497968339623839666523320878025085717191479432596386455732116135859800625215073433935716478268899042183523348221252899139920176622262484317591703622572847713363361952155542344928634316481275623110623769271480940596575893750116283119162053135137124329921314099285602527981063361363112581557319292332246891763171245176465871808746537334382062439190301497473729662287919365336678345459704899842515299266052690800200231826718683005367062568760098156891908792294602483168798933936086692641824172263150357887913739226721226992272932913373786952418765441578696234632057698787707516980295513797506992632447136893550143917298414075528706087297517715078042177309843497619273499432755033835289599982731887234334571744654716236310612931738030668631324124208393506404937281750152926458839576943112618374799492269348443124657743840421318733114697156107384469911380988115419873727319881837989969814905565787616918436418362030622490468196160191934147830162319796488142296906983183124535199201228664403881135123441218214593951046879158559696098635302909401389694860759225226110142473958849648131433414516811583111436906911913020759489396995692425312095415203669509190238178209972878075685061574614168873415103589118813547925526314554567258967468172168788155783042227395005638424225821075057905129854351593483598923711098503773271805927656309670123032521973809270763590057488275564003462832630947014913511342122448041668763845685644001236898994967461262133345483979276151744314017181422233534864304912745451185770802232808513968684747196339622505577808055081193836978962790751798888999545319458149847580022740464869971609521289631482395338735729641921666963045379317111259268675007570081836156871376796845737992307220473614136961169041606654972174885561009610904471925206481565905171905492810289468964347757765364066074718043772346566867010563522032526968621038211252936882929895844732112754581861260350506681783683534421190134871141074181761111028864373918914892284071440550055062196606289348450423077090697428016483735823165369512959784301341890718844376579114372540420219298534134440511450017450810921248291992069414611706436499690799942403529062981635023107299309943213687281833718527148023389518138571871699699481793826582256555148173506540989098080122884979351232647739866951487986809183277172842051963729542680391797217155018651142556371820297025565826664586452883005431058243234053530582684825987960131414856032663999210522348748028808653242841215756378071255133747185683186995531424263335980192422833155850398726961982026266061051534866643370992588942888338165131680207205905562515295749307632289003930262743046768857089973251071366951321345503545529694849829292416860450232109761787642470716716240714906291056030065186245015638672005186644745593606924044113681847152236876121177927048804645240081898823529822089609768974351344795635895929683522084127294302068479877752726404700553051742715812328443535384244478406918042056459703153804626700561490688476990964369682638996644777670349737265137009481300718963087144578084515724958346997034351036113397274460838306389399877905700652961468813758168500316744850552150568097387444708157301494580718423124471223389132136401450828284227527755453226173242459901497936727489461763767101949281173019813318424866624895326785574140268320870268814798632785123508942744909152715982943221863948532211781360616468490188925596943853223303711976572540112943034027374049011966448460512303314092571884176309853331670187360220495189177259987404591894021144860830273493143078660546891661173163401961170324808987894849483137212595537088467832794705459659679023311967355385974575344611680790439498473872862629692468810031689572847312869773920353850456116080507241697811910203373411787572985864337430973637210302873896012758626703390757696671140101421160831611851074316514735555575351699897591677728295133544885920187027601981243016045661680683455957672895406785996620710767132841939241771879423689125872086787587766295596819744287875498529984332920260730027239133819913947252527790761415343060490472906298189570965652959773780939241749963050645146150427821335646624161189685375727000686677615069343906713117421949909645001737596490421940972652548987560690747767158199099718400545306376053675394126472797347116596930609670058959108422758565024148246630376770691169265536137571467343332462093864687186121129645177837769610704316572245238734284315666907528544807502983129378274899768764817674545151861803406286539510215998097423287039633740014263441365985766067196705062744818992402475136711647360308277015568837162350929074071550998751830032754538192826105996250395741951654425589946935907503541655353286363318731898877501284989516064342837082728955541704869417899865462523312530956423651575076120745676324407955426433131265313166702473117650990476352847677488512500314635805026024284999151038594064380170876543735779904238279129417932979681174923982406170232019576262531207681379561456851107758924506332009607445578344607888257894602624331108597097966463942050462383451971832056124892807178928764706767994295138851993080656309298760453491728820348179827656622222764915852634342073626207042607045774161029746251142558780847954091941585821074381685968577711127752059761159006112105085931216519394964409763181138575643972237220623739794685376900183772924580274545633226017243027049950152560705737144274801539090878020786304313526564179936579654302240526303979797550230840958584711207943226053923043018620219149835183971218292063781566263426298412468363455227213997814996676567786730349332969777666413119072833128602447290131674648383811754388710740871220318379550836183065574692265026471259512275766343275986747560140031034621703887513973732886999352107164410561403760534745328825856346548941286594903949793612207298436272985426806968864517201299870233375266740112168603302130061108989203831022575037648557511711541740070811114944962472137482972398360862356592783239466970622800505345045079039264822768452806770991041013682375609237562173842478001571847401260034442429509102550017239441022723414528983660905470478650678278649477511335153356454939463012974951566241774340545902522903204792926763256039751285880791256322038513134529727176508736945363486308865433489703394459076693722042132732877070635440204028564559624437192587560632768138290239704265747426539211029090579038507494216783779939869846745656040969012124193260397662984084255791272693920520855121386941717594051025907286272579768646567664480226136970583470921634838254098855699264340045313074426231953859421792906209934702275746391500144549841285153686853198225110541922471379622963964518692862495713756531381651814865984678415476500857951434397792546020473797113020619769506715745575680320434998652306981537450213737415176965347768447430819347113728796593030244947224366685291184126800578834309980830919397907756424179896237528811890257977201301101756991699352149425244302419420958137974902905778234296354081721231281478551016236883050249271831153588840345742873809109064840338663058810031966999593855394305653313312546840239753749631188797838625657522784101172075852427033409225133742334154276515859077158741403147332386180613569831251764937415704003848225838482029835242667722227049187414046774321782222946466699084500740762811345461813373171530410985073038471692596993718981150645343437251097024506053960160932795426758762957118131830539987598691241846844826556635816133476858053415732182937323081733963255531118302494478380674826441654651582772670055631146133344122652473490941610214960918730366490947586270846956467545967196031648401120673257217282696929072197275105460645948535793023481742301807187118859912368963479679224115345222489233556729341188694863960938474132206520332989565438773993797720090873779868996705668299837246846343258741036458562240820838890001649310621857324325176302813696722186514782129616040528009051787623543400021684904347022562863528846517445918108895122821103569995196619667983883182496233929621723484138569548069940023706655722127178754801222186431283046874720000028013973035592202323860679911473270779280348483361477326171413629499332748815290874675783236419796838363887377883991200224555010531952229378650824011751826987135429492614227868447941970135942698841599251901928547419052571049557487681565195446869027688211890838705736759004350492110563328648343805186575651518753607143598553118355230957694338130438765977621296886113059744767431614304047252778222179449844657876391365249822945199814096819706545533651219434610248626093774106877613850989692096817904483578396280100386167282396085307373945383012044418247117041507069287937876774876653089938834764938146619974648024005953853937212762836885955321264350788375811704695230031004327775988483715628260850241093790637333339719506375649044785204099203233657454405507588095249918627370351777994693376730964163005643100611378559391033013615356258492182177627683783227826373851430143446585628776997319054255835051830163309471635935517207365179663441153116452107408892489758140345355759231862106249766646086976192094051468976945133538873230773223267848085546675334511447528327671650797661631332981109212722802304875446726004657632641041521569512723325633621928004382251299724823678413405462435593125390016016806617414120928761163240417816738024606535034579467298572686674626538279265497302147738683167321865766079931405175856267257690544405648394375424380673815745562767656985643739435402755419310476911134252974335102691254077412998385674806853997509834267540721978258296640178698646023609537310204663940816798544018763771417142708787358744832312916566242799126869154374213667280895476953232542453605656929399215135426444256347255881079390465430780132069662485683635802216417818837403308056268122623835122891803859525092225472024350653837731908129042768289425675996216129558518320070355652916780849291746966124185643174550688006196835496846629539856385180033036937101599757699590809092117658487098264527441593757218293500907658737564179662800574622794351194767431237987416093351767846663694282473498806129019602462161595558847306185052515772490489038927595376713176680468286296527882460057861102440712208842392112424020572761199730909222988801719525705612459880056196339226139614682043767218903305460694270341537959297738139428474154082517724417266026674864450618286905568226650531982188798773896309943082040069221744309266041195957691472293786988804284213256092372108748972022461266802817643539847139150783931667805439866987143825499182303558698012430841644955213518782315209518080671731934192111162845065558745999097156912432180477874424336321217080535988247495831958587164985189063321282850451533049432712603381801116451701542938523170004941031549499174404979389733574533497150766547977662039572170251669204603511526853372660022113204621210234783228389637858187902925713375144903580301079383589642865114995517393389821311381009818499213607979599272082304517165719163607857927145047469772376591122514554103754355616321075748997518198868256547077412515453458764690621734542859780467046772812478394098816124254601946068441030961849708812296214590725908229510140135503429404347444285614906031641242125165064001992849699928248612088022505045931234519808178850210021902427916307026109556178469464740488195045379226209995028168221891141564436917344267340796715392526626218129964080779924871107351467987812486749329882716508089163219023647304413147241629746538402800178825991650978572490039122878806262398200773480372403170976852985592929182440789151854159197392733831421149982321166327806218771486862711860291846153146092457491255557375781819621296431788224242695009182115524263948060070315282262976557431138765221164915080589000103514169390462624967529361822804090713333550389523506266969383157102570867836600916186430253544930212717568278103598188494147290460358560161139955466892880557479825659223397704216910739702580182878582327528509613979908819519312143801049938229238802306957053847481821263818989287775042470581313344182663232198033633469088085482898719392405476365111073440995078957895598399861699122674854755186171440919153230685275720174917925859995931422078966617096052038339438403344328947789921183290488656466927670193756798733649171345520038363817275049835725475053616082004430343754920554547389528586964409430547528637508242025462992680763883584716677093385202787952169988986851397846853755902340404415410203253355481134054573925748988894944303901215812298972292910689195114513312164868669382249302371176659389870128495864150157141758171189826290458309598787081784921146239000905909536798180662541586374100968759773643380985588848849433250827253359819389363725740686356041123868311925787525488328666738919490387167302983466368671914570223754268348367609801999576776633876112170810843058827087214342339045249823319938070989043766789412325286126562391060131566320924837172276208000344729097545108035869159514685265279840139845034041094792938999573728405517138807876235017269333032579991885323492768076884015923812677186718563566898974228742969923846540149611097660883835658742770628974397804868160207961155988763631598770229844262129659796273307666633945870095322706366875555342362067470171027537676031202988062490699240261758984961551469206335373119684383551810821939712036109610107885499805553783121048159837276097011031297462303352874661562389777577021925182249022525540826176841018319673437172159160992902538655870635711022361551407805663096561714387650766014467729492874130152099186067268419650664782306080735472758059321866131092940674661606661206690482880436543410479616566827146569571223920517041656839460415417081202540321217167893977552177288987432907738520046730708159847710283894733225593257132904075130288028154454524512684986048749634335519895846641870878190364209554250280394225291222070113041313326917317563271654840342240500701688175646839313347271271093739518294566497925250266633325375032857778124098698544944571063717123070832617910743924472502435843235308837010686171349517868507784156740569010136220888439760613799647880797365787525626117061631173903193059605602311306108996195274982455511218715097658547178300578543786179788311445544000134079091360162892512032557431026390328585931734083180563513556572223447534889125077841592513599951087520050021590294045082187275889301388841575815049821839348368546296477111667835689297434217608261561744826223679897870897301285283731347871701193117705421181311297990205845529881217909006265013004914753866779857850135119875583297397540100061648572218999472853594283101587384431262023295381985657487450886605904233552728958080290865009937937224519810330076978347813479108922583516338002452354248850255719686078257607463358471768857388982000573505239919722961789524059671712928222206443860655286086984835726506364551752030422696361636027793749063542249938731128102746123972329714518606709725324224691969722799608170910863163188077613696488740632511229091017901087932001090436476522814913033399071314928683721528579852358885411956867411906024006955767204022389107561024204893218488060924083304301025747302368947913076960373756552260006641561864381988113810920027152353568325645650744829527752400137181032319675427241415685208644626321809190459920944350492219774640053036252149183656876470305255945356882591603983309820029014593355185095640253891504155523356421865536925709240540611238574461144057658683773804430505028134831223418463601281216840187989832742225615536121101252495905456371572841769581992570510413676482810771871849137177510211103966542292574498927738517089808503238427763686192077782726010436273028299580934892510559353177993173298487003948716621734224779784290174351703812579623392770793492552719091525673607598097943924915741655666031121879147697015741548441703854726690603927526858272455590161726153423499032297247138016975573163155022945580782798742892837541545389926461867529801314487049979343055082993558809319364462304563336559524709195449835591731371029042763927610784438334868739699901454781042791622694073603569943345890024097972966076825728831105579321608449477897739588728447258235829897921435351315136032541095611901045593561832206038429180266569139100597830537467464613745754259919678028395797974983259726790582319817131791488571854931178341603697105260613117020521406121025049662801798481050093368634267364520228609858014552896499620533067039559730597634588954905122406033060017488475647431964299857057855208633462965106526018612098947932482502898573975853490087187173943445281203183943025871068912523952993379865074125372462241439991563938444834701458485665046790623754500206277011773280128694196949554738540988934341407714855235479127166340333444525843131440516498666987518251892730399884190614059463826862118649781821298124014835018887844333715752848849138432568187729759632299572286693977407467823276696613433336807035913156280885910770044453244987170656735498318707339784270458754113411495437207315709019682095934677441085870039594662420716796505382235973855983423233894712489720137901383889323348739784980252509711745476619026497698055359295535374374286806705483932701237288386073006430346351689572366711849700819760506637706130450525356317640993791070925021509865705236818358279048555118825425594148224153410820578104407739185858889897645336824533782185701891193992494026972228243556807247181880757405799595850821369249226690617902810957216744569001293090903895015253026837511284205246589952997523378113028066809067084376104563616157702290979752091012683742744553949967780731393963686774330053658454870566768580009619566038593364591127210203654864362370338273658576951609610865788652576394106363104191727614479144829207794984588226829950452048526257479697975051222601440446586413556030359136384862359668328585279630269239444974068976413493485874432137158848045212362119184168953231105467914745122329782190210943857912235050378925202924268379906122583280305180795946034900766262168393328188261249572896468756417728566201217143617550374483233387668664844820086724697798294521272568564458616122586693566408772671049774263925311521700741707020380315415232392841133623564787859308942089220740653278076292607249576314122372129578170704148167833611619993115115353314485136795969356444610806546397760696033565672534330440750734195240480736934517689426526931288817252301190139341147711106258626429645302257238068261381582697841371736385970973167690992662624697614384016730401990839140845847979981158900809924344350045291717919524617408423323060594764826212079692429305623044208170936760907118226421354129388313321112123661238912998320748032252093635248575448698762558643152608472019426573655090145064768341053520607344949252098760733475982044698776096371827772964492275923776136800110150129263242227717737670634566402925077778449754179904557006643185850332357761780263503122203640772299948824687700277497801086039045652144164266675373644583280995507443891768709774109635958187228289057414545522158509910916231967212360378659888905905589362099274640706029122167849539064010829552027249859218017759113607363890845353245822263730656880627677983067364713235999428725396984272151686436954262056009499989386865355578681781144252909504250609714385449458534113323095696851730555909679809785645564266892594884978393015601229070176237380547492835764928418230969393162335030638867972850238165273221489894117620198911483897047329084643323429648495880495384809596087337731354674443945866420758998466070567889334497617548452693861821602638478218359853470016752392640754462666127428555516342619436974137177227664402019803676586415751562047711272479653793649835244520072725424283037565918082728874470708475142073027124047290090092063736484752553942193843307307362187813279534500991613270844698157831079335405141518271486921070003427975997232035063088347299190850468664836778089082049061748257024640698538984759952853225057341163660607433495907747417994833348980738006499907523078334304406339467026274377494086480113423657328490134849482369570418910488836000905103724374766837203065892320696145633827009768605473674614075042053127810014149179559211629360778491952420557753122032558951171651286096340145946114698073900962299284987444493551608230223419142028024907009251987955634321609443807311126311914507149315701336123608213658742373869999756351224171650262645146115829184336319704397570617742442193994500302938705277001821105888306410505189395883023596267125265346872494331807403483084019881191927568786910335234256579400650117640362076644008219384498279537466167217134345164877683864779172375779374244983735668754033794543107243705436988624105826179183360719030576816163725446760053966798146190683480347171912711151044648982773186117633165446615054807019970049789389088032651939655426625461147528462723321624572555723055413730733761919121153198196261854828126478127273151323926481523914590763876444980888003183350450680631228903535361342168109103263192417733157037137224519735174578764274580209309727260548079766495714096822886143802023880408503696960949070117419860764360599747159773055877098690478229833743507030082199732132965153031252459584496016282377848824506763726623471625010737029852280782014980076746895856105614812354885054811880609509267941520639465219884056183799690963687978039103516264418232618693423000319004398792314023806010037269200416731399700039658557053325075740277607007328622179910943746568466989164121491569124598103889476862610925539713470724245997861517403437883248473828880603989636724688555938071009833655993952891192957326992180057176184706822762706442820481602330066795216082450631807036415134757889048911218392383050097478998974293843267486062421450153807172217249531488320378471261240700942154560470313393650161683719086171690907705103978710870454642591433361117818137860901265541081688963400414858486569184552341375833663938284405084047311812578491422728988872458882739852397967103467447374366299765129621232352736751765796892642578657000792601121429328878718500514481248744558973516157973406356765064076232533748328692167637819048880160423384499140953056964710360606264131452911219812662101906561956130542886345400055605666982015908811552914459524361013269234826644146765357264593272425121933737144457929436127056298519303344191839551995373682621867442456754967539944081099883148523268883953950268178375467078124068694845353948438623310935248451833637436979129902369915915609679688054294237292117741372367305054505336826907468267068455945775883435742656584522400265915054530166452614526942417002177832258884725974765435231451259386233200162377028105392807599347117391974715431413389182318331416795181694715039075149414051546116380277259504179906373601277174967288718612577807036712389436581785676777510766428188213642241112932972978120070212143082091284968632658294062164499245594369799738971416847127304713421425409472562562978432586224466475928508820485953143823054858462761601214331887368022279072138137295719500703643977947280843474737652285664395722241075984922909849633576317907029078555123521225726240138481205494257022535087524492198635180226338176902090985468605113725452082439569658970705161964398646133196597492702420744729229288380352660281711682829458880348517211686061372370881361124430967030192205951236448169196821737424286155928808430980021115457037176583215828568733759796816197322509975578369238364493076739172297369473392411481195661966925403596887825633558334297026182663402200467016742452585499944765481398352562813416717902471111896693046283992661290606701176600153617279722745680019589185178773663483567694986858626720219476206982291729094979656029021918881062439134355915494277250200294102150724571372681424025609223260370146189783626044784902303058613695722896539574472456712891173733390796705644821962823585291177114064384041253708639271289513925062960091940223225632452763739591342500449814336729351408745816077094301377490891721902931180896437976065677389336841129165267589223395016228858733211949268647195799876876094565140688863307760672402166276065394569829906203268662413777421362291746651720926971356935373378813336459792153399606098990899415298947750448172075232345660979476651896785364521682221711857670025121675080975901668571037957453833908525722487696194135223394335631413926254568345641826826274490384411245375307006132989720925271952259668473985039407431882341690202156097659946275480801865370140877479951362570894543139417049083500762883806906088669700158945690558242151702978588340774259323536981904868759387232850820648307931569779541372493229511409174550824500843834728925203337335292267509191144872708156550186127947076920222735695572079356995891951764783997999901690579961482799431410853166637647889289799653895230815461652094813228441342615144444474572578822573250775462566012939353374416139499425609574749487119158677035954652731915976533685665413121226359135266621541215574324252600140973888872500936162323909423143597547913325322267422442598076430345993866170318351208201556769125941051176533749570381166512174481766515648982495816542211898503977510313664322621213191693795837389354970469314884316964402868418187991223499106149632575234474360294234465376987725738576753639565242674064250224625879959398419430908814363728763179234665931286558709614433675782519721679365391691818857574837386783057494122583166014789533554290522368195805409299171284979319857469082279806070915065916254617394676703113139126332111529899652240890503859238242562520173342159562466367157880900388108668071161094375393541863824525756014552440205007400639670427308378943760784763707158128182001665410564393169115600652344857185366877091521303692564009261624154568844196688353704640577974855161575495514332242169009455601695163969700044446631372226796705158122818237706861879325148728124484487011054823751292979252986491171871322792186615380571353876775834244247898363590582309597359465713924566895042233308850397420425868427099025761105423879979392247357567927310210095841308070658633648209656430135796142035907234154805203729090162471012360238127956194656538800719272871311191358568900559146806946301033562727524728986249179694691493835972005514254634631907804514728367905618759223682695264925346827784000524374390627315162106635827103698701507972898085212823376014800582254989573124919395774182384201645795336424284204963493994084509622475189974562167208562202822962626978301769631026176561577497050383320196998065164301553749922654769566160680632334781839005475803206401386602417553713458822372809819367680931729398856540029896460450691840951772753059527752273923389203438961118923548006418130795682904089194089659565128036642648046372649299315466872989062406523646469314574353879391219066837233418336814928856169009354257344088570208557944244075433555455146540086137552113572933965279229885968667194048782919722910289071378834867258216375087974738189489616163503995733479640406923962194886018382203151040517900418675094883524633945843253704427072784079770484871920362343691739346622190985512440137341123332229348347567280536996101358391051776438796625731477236320096059031667209115304589230467100113793945522463689858294848304951050608281245696927509397635136485857875814117783600705372259153598022327912153950103915602621727494236727163518918038290921794108602145084407697069376877775531129838472943880721254700541985431634006160058989082240381478002624697339807800717812603609315686879203716295389086046652933666287529656752653921938402902325909531104963911225927859753859121394720457540319896241109244349326681138986457477144820468019664925343159456238649991481715923788648527572039982536635380238396041359608844235659897689173090265995424178386854779639620017932688741228984756895259424698495133819925950475622438237302774700550018206870476705259617849676928628987421410907235282972769632968502335500471629814272872119179193699015670880514341188228694231225991849163718403985634475296016913241559430898147047165519294986776113024413333343132451254273367280682614225104179504838632671187214149628704478235838949821338750606413083258620611267241991903927418521145916467737870709608613151771701874748152164715662896634440921180357225254557123202574100174019772600070688610177090518506932431158307709437794415680310740239945446907228155204154735495051343505307673401049444744402297195510577909825796863572925329477446829712393677642380484634306779247734987946650431272418569882388191376457580170679076221153710814251872325899692798661818368021563611291744940020389930830922208763089636820391710122419051215241556480101612354821182011192893580686163781355159980093178228568212621756501934624872199954562028607097806136854728384731590094318850228267129180003636856752029663234793994188924392859217086733929700524164552124934139002724800157104530332170467156481060203173363612442435698657583340177984256958359109910128288619043613217173027300114135314447001354165411100647583392321034087725202936394638379474946040913970939749173782907514991321050163631997335144347694534698907762478887099289093441837584289602948458327028653766695981093564401905580725730915073426930540808357041265254277016093628733256734137553038622743132957911625409060892565797595693451586140088694391729292221465997926094256984208331098387284033637011164910585642388193401874755849763620964744723126188456729615245129923072178238713538344346838463572878490266790682557039249882818901597043163533954688423772643824950092002738338864328818447901714221576275117849093669453742608031495181453326764017803776454779027703477435981656658609364736816342168957495316869244027030091779423435306079793575201983274294668056611180861557472279309224445194904848507460045577924875676813535120725115751455949603485063906970540367639806560607984792897063500825792950768114400799736030387577154879816323269210623646394412435408362905208980513860398926395641322176784060193325813056006932140922771301294222317941635984895908307282849191902444617932231856608635445076378453575342406982714299168339329839070660604806919906709396421575402307019655756552255980378052018208802653049979229178636292061123808129799476971770029686119104952054295825761632576451572954683741416086032482612211492420942346277251510236032246938381200718937349831913284581467009651562625937900583588804256256152862687219209745210364548126026208729235721744853125273505878156779304610859036533072520458598799449584777560786728264067977880787190068559880590470769586480097412021121156247234744577269770026366650747898300257381941044779489370459476514800385261827081777849099457717249627154074816439621832705712004757415745674533988945709628709506573846849482047686057417366277706893845164889464987497126100129736815906399637349350646889735361405979292589595258365132589062611106753905174040865214653117135890537341121531726679867635542416265368469260072472296440656829384367777151095271151680637170549457026407880799605789854275431019235115828478473794044157924605959718192056635841497317919406773912441785211793469869931337131162164349087181040266589541566999022945552251957000242382197923859555760987531670802450097231288925982185298332287349174683317047777913019838852237359997151149655815337241416805116701898893254867694003401778403028483100714845574787044986321553785295773038613315675333963532296276047254402299395545880534670027379497907030627603225383175755694066686304171155320984507144867652344768145441817412985055458654627919302557010162860497291917274776870548806266917967655503161601890389676484861837698139784490366054139130185714114780424965606736667235347855823856810840897309900552320938051730239102107034734228910475371969662720419989501887797749494585131833897509023623809829926052754598388032794235868049753236402610247505170478342527898755696615807371796586686984411971485707272622494613273961099019527445218491505868465443326795764772087038513083755487583752328451214004706772333745506064273005903067244046666750176031933315765398978581919770262610973593242248748069797744818793186494703275049086160888278990244001444932394662187739169904165255932200515396956372124121445939976553473053565799479656152410893201712225937668969830350757171376731117374381806047242174614241223302956667176582385719602099921340253110856040912898104556250446617264470297769075787952516282041389299595656663836721860052764025506470257358463768245991078275328557591958185502423487982149657671022678312349515905744990260653805463213974230883702306961028604403113819857517757195232292620339787803966614647625667298559181895987233961085053716558966234850561483359749136423760062567807329881754484210386605739826131783608095531357088919933755117478410162827560858692525183549912230917359109650403371926497812308637296114979525611580713651845165535302174787775795696704012259625130565068910714240500700471006432801869988777041315212905348903400629927001881911026203013103056792699060881105218698651075091596629841167528341286657011201984840139077604659611310525967602070686899728026589759996626192597359603876769637520188863932554252970101762116050762584408250115132698321915304283927894029559027789548689260099320185009002471651190868386168773705845642369544333028760376010445013199491048933214840805932465630579719008829350425109523913613525753954034956723714153348034393033023640032995957254626938437368173392347207949752146419905383903784081674731007451830040608395891229898412067198780846928729867973521030520028859759110076418029151204295989357478849499241802193889061720622298590141155443052854834014455459509124143078416719127690251772446065580278065245749761425284001802767972525296185150830937074760769528534757369167651907342355050288289712859831406163189955704129573497796343312925951213011563125559470295057531594561660467044537476957189181225819551930998847121477793939133718540935464688278240300500997207800246776401047740060265486149466822288888395424138139806059261984471228956406245318620053245003202011779969429650224021258547685027208296677877174359071508714270088374794255902499608432458062703019483738157514617974267004726384196831255785235038588392891776631312838353507310145691632292061989462331401186033068497630231395630280109689416240793528980426515449553871242379399539466964035267548853301767096762373750282891044148207571253290908342114905283024580624905910654515019972862983425596641916878744845637484807810912453500002225266857134622514032649804836498426660097644547703214148065829615164425890462257174537726588909875623518269523409682716592352024790992550280843077515482610393290534913634103564642623557158119676680932283025349834503981361415618028418034835525750490325723411962964708546260469216097625449401735172093127565354473488068529152633239105862779692985096357014953962789454509837104753407130408386142592435746961519270622872762929159816780060869552175175824055845049933836610605788393650470653474506931936353117909467172306532752433983497122861351746654991076909287672328425294729232204213037236170160286840976706325657094305335441302298782818333810886366580686655337217524920196599083605515209174891113943685165066730284121696249109478395043603933487490048943548713534206716036480149501710583263133057138625598943440375304112205341148944470302201318947510279651358377256071590722401541933567597405668327585133270304894900785811344669223965860677541830059110986866029385170504607973506274170816141964227280334198406249455741057610238415578776615952208002068943565350014823890004044755982788762500727254521081487077749600900323110159526339300820275779430189813821473311139966699476258112259553767007682114996024818634111319156130657548965309471466594131483226734205583553958938182242338048221511065438605720597818243252587663801921736010690420833099441382171670605174898946308390920693492944530696749840283013474892203373527296169744692882889406690750276400799802220616606412140958627969177921560244404508844395994647392609397559431235308445987401702803739374432812051634105930332427657422190501180248348631647124673626158554720782085350747836409721390868056493005774271367818299224524567171653181639788334374436398807402877445921323267277186756097160210975800913956314881442536513145705752386635170513176099157739081937897845205146653709085413032188809798843866746963349890186423319173599921845514567691816524105759480021774481284473853338596245279707498795775950994692526779216874659127594967171259383322150913838908813004187522804411991993030314219636430151272948019443470265914462354900352826803433104960590144866362307650215460659638732236324665328782997887285807725451673548553008684162363061414289550131838231483139340649699790066418795307015502962934958904987606189299980418698563055626672339927585896381034848919500910541709274229944651715335356652658128707659662638574051523687055624775374890195863889779366434811391928530235492532681745254839057978727435212397109435527531497538083367211768490340178792432624854998217389542365673249303121631444616787492276820310087279323962282485560582190791073503338023107264760236968062587912088174085814028248979755378440392595713907550446791836901756525141816134769560151087329599944146042116139606188890573534190910197965731195772213885082159402000629675471092644886107032273664679584163223388520578575709337795208728502375228890443467762581263666713118291231330356695505407679477461022698921765473922912534091876501592062108372760565425385227309324858316453392084569179077825775500162503892765455295669450364438323624259444156960301913822291151386204096779221499827739306616361659697519923043552577645347423803049520856779687829791050343574323629919701318021113905067254113189941639544656735756542696682782592893636805803691693675927311462440323019906245924694598914869280920016443100470218340274614948112083374227227387097139152846227349381569933131356780451583122230960579095228996639397768679032736395303408121727367079742996265948329582420283384261003565901349411770554600331396629601754083196284896059578556113119766429957364312035754079177962871822272377719755213726021399505827398470746244664439373972186623886852501692666827093328157047157077489709339506034448211455934487568636098917653834417341355121353987482626474002704688586629722607781653542509346767386741145769954479116334272381628734454398334682591654641347135156075169683910291937556963208938459022746340877058384469072920201739443473508503384697192319506123555275667516560024070655860980641247743446939732456801000917198445486256127946589931928657354530221179232181649364499232787518276189466233913658840530982290085129190788566120996781803763494245013676021095729831447538071938351065303754584514210978330552632635748264513838017282378350954271672859895593791713944134537333414339491415915029009551566902655363549735563976816656801693201412568668330024026132881351424843193220158071246090373120025593233813065189430859143363261707378936952169129538049874018439270441016268593900526470711677164412569883248258149327241770210203410128970161853685121345303214375875366547059645596718435844749936632651139345449022835500114703253175077749927231550331539687369710581515704378751107485193943604941554845131426581897772967558892759607563040729038172528731226210270268312214213905418350053173085316507431959033511841092786660037431432099590406535602681576281262543049856189401615564106515566357533015152323292170870908911278573737165997544868475273162111577125392985675724067985977935465874264129518986103485256567305926959767547139438755651282978080524743798885715386741054492784292276371241350774787956012827923008822023720877585510240540916746179393931126022147018714094308978173288258248485296335234492198132061475683046065971832542445259127200263487871921050503414699328527923179841911484517767319604227713246470930679045075960205829761813668237841757671867740417216904600631252526624693004566012555321054386818065097256919564463182735547335200388306615338283888409585705691509462104646286057172652310240496018582538105209822968826590021229489970944359800958405008692821756410940976402812552667253757446740639319167923642051914168196521194028766130864952939201742607193730933896535887295935052783844423556814396107921496697344625573345774366165856112293259915434768254964579539138495713742007583554297570731949468561472553905492968530886612305053781199305394451802667058502889146515346297934694684514207675864723540005789052201128609084313188290525018638851098258159679098278830213917727173953483063386895161213697219946151683770645671322356859123075352556280899124858878607174920410364022617399858404208566191671418150453866363318415959290470509822693052489402670780569570416518993845380714553375983652470539272869314803921133586271120666457534415595572221761456796716059441558181794348965037719345626189461776723402279205613193406543658473314293703085708369992283979821982852438619674439061550055237185692060626683534960229550994297927417841286180799358282419516977377405744664802001905971093396983179294099597666582603267235532653772731954678207739534301885866215015625619207227180328772509337245181400473906215491295593905839553066634633724187012103068490775613679185819411642072728782416918318477974556152773840231122701832205129597111966712083388910334314081631624509088693579885739741973058537368452720207065025091217616734149474861079412399866249853694026704927615958119678081227684603474176165145895774534209484547303872177970542686482442596909011713075584409467958213805287252298415906519357735449243408285937875915725052135203801745883312772517440379725335916151281017744996834276671349147180520821697335740623692411731266168949566937157944269424669491114973532865572185713540580137652110754491823001360854981179693101052170253652734093449830277412862513168319226457649777756375354197015381594119093579095894829215599068995270785633425844780728714995234486551598071667164899962026075765314654546682654743802906337090023613675033382012194880549453571425605915233859344855597043619480881490319494090154910107065591762739399888610856980803930378286891651749191782501877221276736748763933436989002296319226008640617798320718257774489739132244399211829722952749117664582097275504051174557791780467719650438219485088385665570382239882913009755387109995249583733233870047422264977036960833691221351816886635281646418271914763200931094304993498711290895305838311227288355843291307646038778192939808161292537129179058029869571826565147228529267249601425156572290007416109518398039178233530595949287191523634714115442034003480490020661152133586491340042418591672738783675849194764463857419016768259467465645229746978332136192620147846177496345527366252694743957501492962200706571264177046249898024952919315991275501712759471823224755986171063561751470051679772302791735693500292244516199011169958666810184478917511868426543090239870564718220854531955315511135037562949541607557535205616077813196371922196633954436458388374786855752518221747556834607425400096519184763776485132706929670096149716691501054119396801169394666522896822433919101395925346807228708004110741673479176878868889833664821477415955298474859273119326241720698532317722453382615861699560094568912601144345268967998388341200892314431930447597335634294409851437752185994953892522172662422702823008752444777238026993119109542240605242449677925019177662403379135291770814121831207108514194927551477746381414082805063184650316783957760239644444749737883448212468541682862086807843258327324870098465107470009844317794261613945562620859951305866355483152552432186250288350092017334529283300050623247398963025368520965770841778865467420049330188072668118622226987958280041126484115378986182278486198071499413074839243843034746244202171773611347235772301853221233177889869666443424485775454313016117310033574469935005800729053250770094803892707977656958666483259139663423858058997841299235599708045997936490314372961527497176557069048720757290161180191175949178616282676883167830275046531717248011049312619398685216651485695368203859140695707245383776490547711720469680636600319306071667514537584534059738450820471572448289949954916833478953480685743096927370208570053265621636537883009161041187943302529548086421783375052378201328812004083890308673967273475849782886627465489150210728484272840414635029358024203695065442290099359580785161860666500713139486864297225091791548028907667969880786789776388272037223469564066153722142587290755402009103504493309402734581271831582552364859234181876654547591434304958619756584803620945959340803214654570364398309925398549616295140391569020842911159152494720202718246076345929409976138914109018710255893250133368435853178680813148588271523151487401382109205936172170444054156762105961083010473462687507074693258331338284622382431279605008808418796691089171197716815756108322952766200610886002096312081548063501728261165202900520580265694903257254802055584607418824293893419883461755955232912655364432423260742307083217593975854450285912199257270935284711774924978686827813303321602592542209494605268215515658660852343706365447968674583434127680643358629610241736789022255292147578542216456850182422383084311375944067950986003105637707756878121248822451525016317679825456377514266091697879901272623144829599305456303318596105660238990042797567417021341607765290535995088817984411834175311978105767512253583048080331078160212217968700098852177745956399191282375135415390753468890019785367741073698829848841400626503108873180402174627061110144965137318700171698682258553872859240207709714215648184903446402001958020782568336408273736481491827052746967866933162990035391545608339819125020268964952494942419484142303222356406330721475138307183469381448632048627889971425315203560894516533789627717911609125875179394984534280785826031367441806497979911512029834706357012907785819643678244294917396473500872794122567275893277568506296184247963107581162205500054714768254099283329723490073282155743126237201800048164364190155465925364607336613471642369102230646703916521107204345403866074559133568192128855328087517059262911889627466241703682458677472695620009054549548037630973084139714691275157119125011900825044583897685712690678338248199137374600331848102990300492168784748808969844897335765571449256997869264367197548836023580107639578802555105841783837102418411605745570897510944024826264231935268853984852602780330667168042239226391314539087191869122408297271248257644484365785063052493240350363254471502838022685016825490219772603748625722625158124524902332308028709080481184872941241569714553896323371157273534162074113318039683517340862305603874596620900978131936566618531184176127032501314733488502367439319920957784556685334839863283506580377210578580121587400417433700769410793812922375405496530390570874529608126806941720726087359760961641056499108871608165350109368299413521333214837055011671488285629802729738534617667972348708620425221902963505009991970326194622588283927285406823547957115715678789539862166891957456840484765248079063062213228236954629806284962993113845319183987669974392966088554869969662136026440689268445283945810011244110949186615715124798848187531432742748148015219627699589533159665256468693385158266381761876900888088812235038770416305019456679576129933177863492164459899824713504530200147365612968724082548418656896951141279483927977373798734739383378261773483774005481533847877530797875212732025073166021683606316143256145015894922341124245724091628451694425251914993817898652439454199774491008197511879369101273957404946589031328095510738705343343856800373018847878591811317543459072785224287972131047140451148452780351946204052728346235241023997660341000148643150009697644315408077799077388051901300197998539459513926793670585965128160615063325990773856597690645251710892221108088308961854207112656775239336736106367765037575794373326399623339552189907535640380772840710300090741192204746641821942385719249288209700854127036760319693820310583644432253153766878187833805245361419200530569145351535612564387648736159415419163487904944258475432338001051480806349943571690738056663653739572595913192881333991890417129331154700080341397723964140806013402177886670732410917594934031670298814923211907688384645613226201134829421885476430223066955641092110349007823343103629481375453404481240011598940471196264353512917708952509517497648811543796196855233358628902655964613186043629516410686643761708623610440099843207308050460341977819372253979440320962423741765212408061451722563334891762955820002634517517766715914720725536150043841026648311740387760238199234932809627548503988564908223883682698349325241791375426507799225980633594337216598120361716842536989411246281561835612483776318552554533602901027868963783227409870170606312190445382127021345753841528061211802054410589949194339181986037119437789956728816298546131157093097682914622894277384704520436167773750023094877049545064109579816191263109142640070744249569039084707035469958843336569923698989200216885596484075271671376405449240191993917203853647602544966549646884626345201597543649689528307019122865832505182953034428537612616528788647743688133516935317388601953435092965552358980816233794954575332039427014273542816163516867993229615228836124007417906086613453077056381259287590240866251440511616850001215181635347643472763680887441919850353863585974647831763269221886876291672910958186821178946042863781561958828905249556653631569812808475809721666564274727090115243574686856408224717870078053359242164419999159963283364654224694598157151369782034051102504707947481832629034849921312648295904766334170963610071352923943368568269708021259498043345099605711612950483136525486830845464371642257965256950397596677335158904423361481803630551725528887969364965288331043793216036976341531855698414411672539426250008377730145461477276734109277024221060246931705108426553751430332154598825181296481688324166499252099489838605710909373095950936076304098475678174751392378685304234112725495983567807243368735185685989590928174045878381705330292745779330856431654503457936829020842500685963412201609130266426604981054615254138578554346977914570905190865294368607031455537110270354587248175882230288082679249040197741549927955910178591427402419057589559758879590319214515607859820105070751788926676207682275458909229408548712048883499292436912215532242015436167851257583361127829057451210872249786863553233203154570392865955931963992426082924842031444527689979338015392537036496132252214163550357125760397384870303340622269099036031661390044091782350610156484603070092906678870569159449871646863329212152865309057610982349323776346672327834648016850161294433011223135764981280149046593503152703876574785449674983947918410215987338280456572083535618140162909384505762588088405164579494929452040056053385010317525356899480759271529214417615179711225850969281207592964636464100336098415496146049927733901340735295673095851856570397016840758384681762939721595129341913972095049488867112034290546462690567800386358708320702667041485444781605508643520231316697096699096687129356486020582718135926637427502236739419336693802619419884157771509888561570430110088023079910740114776459642075237782165986501236401295518747667067474935894169118342582130106151313661641705653970321686785766675219581224453988442204954853120099619622393533161017937657166647610065459671836135219359488193519525171021633743345236510038704906498639641326433034514016562870418141637683056949858266375227183510823313872515476698654598818899882622792941335557130196882339965465026885713909734763846433277984034270608711764827289380954467494292934271166938761161551255463671126411000395846495629862489130556139764209121732882607437884432073497281472387009239556958560578474110889895003621603417628566870993120247119265087267674942127002502658060886152959600786558339637693699652324152544795516025764676313683012233438288180517041047143364804326695446411990674722489452156475478304105445227733355889760498616386005805379366240590076303767531908322355635135294857179312423656188471181670802203220886277445503351456700611141564509761115651881758052864353504042561405151276609499647432095246537490763500640020019182786877330647005558976513193540492761261763713887422284962779093980590031921027214827816204616087495352676687847864374374223526291786962335616907360810771945182770606633139829133352204905715484570023212434517023381629735923213209935342974614817467643724002350680137460188362215891752403778903297041283096355241860883780849042850732147012934852396163017078732940967687978311312879262204659028863304089768543382131996050978835026192673609326992107446906601849896742443428198426051869355678664884101810500130995055824352768111352204220367787870411056930377503085581247183009051731047128845797871516072976618844553249491100319823082336161769964156273459756297333328227519337415661731583879896816768500664459333710124317566385286611451017625927813653755594005748368022630702357437460029902011376554896898663547456719508666045167939864986955345920570394218529525188664618653631669955839703159201345511892777471581235788091479964086589311607584632461653156061543201088097664621594871128327352620992842009877358224277420087824426643309454800869742022755746137135326806669701343051089474343328382606788545690659302966967780233197919704101924176595276706598671898186752377518562441724050467741504927049290359522563219436771573589098989724458698688324470447595772666752461126114824859787967522718649737906220614372541801048811480499083157034020914685698664308834312702794035902602811285940561941966133940977349387929760319484094344225818601252782428307936898404097217938956476582225331363891702063621497282183788319777681463981021561040314856838752531596440290242613368101869738813341746603981076894253569969404056705436401656879535078173959417365174556796917249028540045981070597201257145415379806616984017091249270049071268858495764770421457469388143108091175767117096126622400578071050981358982090193856524767958495945829823289404952433930283238090920911892645471449137295803984149884688322965822324682511401555337340910376328362158897856330555995101675727588388270202697461828369521164801125926421122357238662550177121633543750109155552417388433920566692308547179123517072386246927774784973650852975612693096199482471269918655179452822209919037584037298266570024558223445978100697849053482905378779263231600700072430044655367649792963713550645170285088323818154880496933208263951854032055171794161857919698287628381714193920226496881557255453359081601347092398517664341479258660446779230008254421901774281186888089490328751933829302209168186022224081792127352423076441796186132036749891118705020157706212989007761635660438754933389302528379236724162435289775438967560261647186856119262588719837440646756536811194452233132684879232835275284230299071596367004101201208217342860677490109906361046058523919474268923253115002097327976389907908135969129054308613406709157799593431991156919983078403094398634141536301631706142798320820481346010045962541669639514072116641885963909188823495070536159939954144761877801171083100889511550371679435670158787314760882646018572439098075696076550784007232169945127768195881024173148605816588908841336752649561171987475428791613798650063513722867441819140961016141751463450108021350485004729564685332322626352339303777617146755842915697897071764478647387589405075617111432843428017171142000381210370240264610694797085679539352810267274827429079242651556180044332328009488649413769694048983570449956872639858928759056698737145975333185586324499219092628721284261726766522310859724291114140026261019938773147851372440711716763756261450018256671315498074814183601248422878719004045273652769482281726612274132015736426609436466460816582720952068911165987825601004567545866815113648315645650185958663255735572698063703374554596664194105751119291864640312702389131280140648744463844506893044238973330416535615412757729304997859648625473877011400985402294041832062319513797235583485660363295320895495424489902098374650158902157948808940505517506596307356852154645335767388493376338900776217082226353644560641656533304638125563335201823631185879896792888827717008948051008565861122131625301433629449064959756443879559926204070542422413096967085904860481386377915896879759925975742856856956421386139941728513761943990198309559244805199455516172492101736142045939558564804979795729817901867759650795666167147969821186374996053398379305028092519034542798567697151216740233984733196518456888187844187301568120526902520968347866208084094445714049391885679126171821743344631807566503986298134291982641336134435111137733193486425542250811872175175238854161073544064123645567929704262355716592128459710420695607060708741194882894171270058619097353123005450103872486203593605700428647872440028289361395152937706354134933423966556066357888490585284981985634942644705249209619499606106011497414929240629515613493793140005637178630366057497266658259069685494732637034306462588410526051041956536166368131114436139715044619977607487869319688942283470688194244732958826834018134444056520659860819569038540503651272571373942921003379240524267318249307662894225268921307423494408031152967004670905528011410608721049828916995420953030730590924542077479476048682175621045100932430334606293377987880150801736609731510480340344545323790630503053859407474790246815808845508191873308876416086983294048701428387138469168714966889009815745189266574123871173962045632033644326084806029902414242888468929341379439807854166166320503916725510525638550590754640128197834338674787175936087871419588985460747162426957715719504796053666923238856947867461025296571854838305717237748804842605133035689650241486232088838735008306384344837177433067508104867222739000609973199268274009239741252513324188881287741633718497302449405884975107668376071489758303386194204722185158863614565293991962321848897121538024010655808746080726794729975463074171726760265046024763524872541261861981949807787412642504184735003773854764878622168337206871633843280187156501705378380305707589836661828931113219822125682059903418050221975251702227111916212623727416314665450970384726701092596921806679505679245402506725749816496099473253083327415191451469621125509328739856493485863100899391185025802605577309331228321045772178884787684504017191455787540674132001150111455809109968229949228258814809136552506365939904582958861942179328614373166034588920810659022695826552936939589482993373209231889604014382231552438653192976579785678313110903900296101913925391908341274447599713108619436059859796645468221735824394999408636543940283158917231659463270599765997881923062270530376493329365753212172112053853051902390680614288609545533462122957423423812574386796526652362435474400206867690609105724648750307220271333073636485641986318350791282838392080324566518665397186207690220160254631596110407100677907687813283282001283696027137884305611703412638014777311709351319114029018330437264364040027088281557525380652750655164351369260736149404131213374128588982608114172152289484778040240965931257940333328263603743970147919588085767299782954801743873706009851571913364808829532255709168707568044119882771531440024731588867339508008391887749468362621467970758555419585604984984617870073339796824831576408974759416276962747782955270193051874053525965550899748177324446079537776807616934662201791197775621286091163349786908153970309078512360753557927008958787390923542621046480135038464066692633542031973833924971176075458704726472715052619084444962151759634289026439016170159332189380175020205150784913739649500675250178271693876365246232736294092880785735656402788998057096797223307751739501806279916382014951585470391672356910755650633034047575886026533787187897868623561204517437112543929442838957639468387050095246856174290980730903583428092977321609504995300310549119019935988851217453705106299785098643383740217484715411130947886465995068410467950652962087263326714612280238786235816366052171850332325055787572995626531935394024008156031761731930543812643717307797015131057838382895802867595889310050773159171060797068975013197398709221770824912851691482537988284913615989756727894709798927696373800284061232128919860479284348261430689494121623785603280903068095794699105855339083159440626031460378292781463677839381923483314155152319625358913138223359026769594340134301047188905810469490733658313597080081200656318695089572877023277348608920012294234380841374402395347927236330189439067509572461267795667710055467327605005755561611836557695643743430617179951366639487943042072374368462515828304915408876021884240281104544332878737986417670677310626977819262866245412940918043428118016116440352445054593538318103109021858227990688227137278169198439964130610691173222957566602997197177964088220277673867677098250742266154495611029400017400682754565641769838974533083210803925885666132521519561333398190959449187376304989557692708469822765477844915310134660078995740299736934649256827348661963091338597564807175311236096343238142735859110478472331119089699952827167948559802573236085828937977341873223202528391608343889554407341515004805448645631781717153010855372981831913818575365472004285716825932062726405504212689572625730424109858927405806549306106814280094052696505045832634806170197631229536260049074323419858492842128814827834680533194807976730740789360689445531015892127276231303296190947986816867714539166257020163255787631214452259990504175957031736425444905260525083409238242177948169560845073500203505727437967261712435706910171500106667862360834427258221564753677138810423786108140859821120560836713220648188349598303743109942490646046059720183725049853039632116976603005389971410928796026689430903174181726124898280062973185623412182164897182463200032465246080537061357392340428577633412700695805641421168460364014128629599739836825293498005699933135942922355143314065445801172399243076484081055060230355321546602236376014335483288982613132475936889791530755821595040130135930081058730571299271778019695260391031655175380249250616829008188758713731836433902972241838495479060013213984662565395727690027783780311192227226267551112074390430489470672261778930971208851170482847333146193264029434239140696825154678562147546641200826439582139094848738907124408581550135028687068273174876564244843885900750278562924714366345327304497764035810156033380624153317162905851512657722005795004802493340191294207205510186712732159246890355516575405623880558129498866498866911182090830805573082520281688152305049434698863803864369793046501511475164425834902813091652342945015371800983023510235409512490668781217283236702475647929456785931921018044524780246329161217434722842508167636730917352639924251248115664257119409761873591383216754581994194116578212376620009681944302720982537331042644177743310580521977913847987177157279399125094530219929839307020482644307092093577512110162919405743918540248523597849382940128183006654429967189197400817658892102980266779621317218531396371729270764508523399910489133686005690746795614186519749642099890249522608132137272284586852820477366405440910261705354850077543952533716281601345276522323635482174420131224873612302171956071991020433305038834212549241269120720753673474027686422316676670130116308273080624489389208563183869056447554681330762721208178437889767065896693490458151694868402587623821247104855447574174635480331154640041332066528078045070481515564646666777996738785109864732282169947857319189515443452068069217876164229731576430871910560199886450266640315116992407093160775690436970083276076700033182170824642033787604215948850618008642633355045687581950490125820297606561299557153011608932227100795594463148442645891982214975778459693013100959101747752435762815854004190934623582596969507580822978915832975294851777304504654851984646935431780606028001773686802488878295341165038117688953834818362395649874295819602370404768421913839428570314942172627097368562897924811930837417809082230643468876414898957481229746458492924206670823166823649370000405545390898879062999206408244426139382361592903221132831808383876519822881354880446038181330785334165778134834303861545323917005642977784229179427839744990100418859233101692481670235421855445924853867529413487728793954054436976885564952444524264749721416629828184023975777441629041966442732517696711982921790697673696001814603724735511175121567738835947569968757353509062358987752901335244780790693745718415665307182891327424895355116933557520206542652131053303803776494283384562393322391213607133424688811597528325337625289488181171045906981112867533814311701033122556925093382008512095748132836470638393036471292477804209906394024703757532787682379478335297232369368329753924804710410755908616554488916166440072733791736522414864913072238503052629406462203762108108113298133789474853712618305235021191172727878835241824453940625577419606567295149214186521763995447042699316793014677587083424963215943715466456191382973644994390610237813421206069561202612591187365534530227668453507078357301430057939098793762322571283633209809238676910577662683857152715843268234054820662773554972879344750790609910758634590294618146511666364054164205664307891298364530437781471780601075806909585841382278855781733515948332600046031680578982774958550046832513560593268647112939168112145050601321595176915182145266146148333155327876544523605271107985243659882678767941139410470907487861841587116451520267024250046385112635694589706947327112312497245353255123683639557598784813736166717386101084857036149166475258661303333457856347896689238606231413869435383990767183223190589817362192802423009766508501662897701517087556351342933970010664304635271841446200506525881756919484792635891086851756902579919541451852608633723397684815114834672116339102761403380314893276716698397125512728831847295844705200499680457049305807545209697290141981444895130954932330469548131198181820292149254501657563057975269239695085515615713968848881659737235104483521077216199485617174358713614029893408651310966015123792516159718155488982406430494632243265622249587677523500709427613667432280192124477313936984640379189864284043646736859442566030218508815512771568721263608114640665938386040339306207975012471646334493029309055754266864414443424933473627744875596579133168650655287630674084825219836726486839739389840431557340214910867379522716692882130083215205491962878188398372316688650889516143075036184400864149565480643703101658054677844016701888439442161918243642206075416872367094747871553212264375809664248521738344082063753290776934185135162252650079126579316258317852290017866869312428368060428546548855056124795957621400947954753470031911835753578957135117943925181306815372009941784696448034308961584492564574233977556311126600619055514976775656630818498708282395148917013760509741208741043979729398910420082203817475348027848641677984516431731098538685497665290631127691967645008679592571417192350112814842244629472443576335916375766547724678109444054283010979556277746897672764938090215388514237710975859184819795631723907609217330593830158562247354150386511256217174542020225922065744506333288143746274078241029512051192753003062723988757234270021860945302977368628015364405365061892875948361803347318170179680875332809320503746805683212848171973150422916245953553977981266087611251784578611465408548776133469615390693070783267947623082668348828955891884438428524052071681633290663112760729420436211241157731934505353816075595835072460177121869325629704211527990448094571853785198419963301744071229685876605977844728861433073882183159268801073433770376671240612855358256477746253473906594762628391880032213632980922929586918238203030016656847992084117939093278516801460228009899139538911416169885756822585939702588332245407457156628440687951461144167527929852252051845370574742603061050001485287196172790171859954673119150788585281922592729044331444473522500998768702366674784426768089202827314527088125546374602818531946187178673863934847417643366357689753678781697935893373414165224399744421864166344418993475202114780521460058747591619620215029585799887908808022130149907352262304393621289708518609335655273616519418217163776496143524382482533887610111262456043817901886893316058930005435488816087819858895976236184004911241169903383595504593620302427456127540768774033421701691990901899784709070901906435914261193982410714231158461321127032049642836373523618645189254916631892089392387512972593407758471259209625489343096201105363812780965376474251299020449583433562791525736296593533669354555748734303310561475494497656816901419686723795406907408028477332390073402520343476802698784779810347023234986232723061442029954592911206782504570900755261770381690484728873134469017213796233249888930610957362749396680559684746766429697458270904418616436559500444341505761553907227725222763006921898679147017436562941191934895681949769468121981212890063827891354759448922038142006020330479625104455268873194462715075448791589755020802306358883091397996346162645741127869839667335020017961364484565775733198271250198979835067829158584757205950196739457873468392743676257208992460069340980700570428109047632246345856804501243661361404809550694304312142391727041601028667476226394263045592583321739789896828008826785915807671898125929382825164879533313947686672356344146989952617522452485784888705719994665372229440796985291852057601890724087607997655066483509883873862042281742741860067244749831257458152474360212200456039643390004109617365889571075513913612584251794005664802219611079872185560819815949853582711072442755344968974020634288811488415644633643599597853490848057539719885199043274950162747689407280953282076860549096503241539139294261179945052912096387846227551298517680018435165889961475107750924729548851857341419317669193501805358701530417134369898326926121034169742757977882980286959679710874184742844899393749654477323695925499618879928509340183597950983870751724302931060570152791906478785242131991161414950614738482387903231953104782097638313867070743516788055503651859472344550915728743992149882333302127951335516532329060412928286465954745008506435764033633356040374790716983665468486454909345502812751513414249188936432497317205672628043206914581172766738641166597256266481580508031913257155512381007012375395123780733346098657025508981841920160454660433364520815023290031793625626809305088189362756159108630465164911756730152180191540571631639631115844803760490989755883340682821355399606978591498404663767541766697844642231568892438831665621475916666308714157824807381442394166128786256614127555229211185205632609987487466073936729706136582089609554787221272515126892687095812279696935697859752766921143691291628270223261658117557109358051607003743182133165380776152803001939862232175361269592575000790796362484096635513930038655707474573438968936199479471854651967384310441872205714371888069747137240869079296101341757139424622037321228924181706898177176641010672397132870431965793442970608748506689020019571689572817305862481550602831550347804757743944525315469806068443711252178451768245433954330909971058686633646352271471215871447578699250269316614865426548733302407966977730802158683309021252702392692566978362705434510322087421112184358227016104696936825272318657763885508367305919870185140954668082907903940266684848659522719027315002018912778345703324152373661983034320636263181350417839665431200423638354884258110196823158687058994575353258001927909761067575208603859686714788513137201336583218449330963189880786051991773369135764528065214981660980492669360880466110153103886920357420910828203379013705238773608404838146197403668972137927760300756005717667813919895975582081611957869336550694724488008259123164492619316479681329860333521525733695783471329243070969363518512988819548365572732333017870448592976776577383323462585091190935913440730261788580816372460822200864796684187103431810617356072886929232210767587794828604152681072945014638501371576713171517625606021503708992975005416216168221564333307913863658204437274212596062550663884725089466654351091010031763251354243854434820447789621959507988962745364529127236541999346166001579237919319912768346763238909895781875145681726163124301525712370569700539325218145324343848297990654284737165825347599927774278115996610756550630663857730159333496640922859462007119492518002313289886391753868203521197379422355550068845302655977667162899163829721182211958134024496114271544115842171038455143092760543086536218654533900384337157065381568910840745134200610007271605504195280666021529284307255645588351405953630340036798929591538584766142314011018598875191956180738624305414897228227869866330418174933439080584025575493591106198736792563403123883550100859978730778566386568495173334037863162429816911328896950547062124851357876228993263730543559007098668755179046396740892389286754442890854558691424920117699906338033416938656281615928842939561737079566592744302780196514924055403846388989232661439897948204694577409439283035057590165415511233257981658475947036587463017571050076020414731378630168568037279838498633411269000934201153770363849247906272255696052965598910372528761932203819251587239547817526971386455485541978899829306241587428569630062844922708149305898629650373372158275682000024517317306345708263110625498155429463851729923153535261693951932814245932648671225838183722272802557322257496314695358342223600042959748534357975577883248823338510289296122377144498293165570327457690967042919816262823947398561566440409847551714053502593650441348306296995499184681901247798455511286014145636631547891586743143747523723403136153813561992716829352270583764505139474780003826227186348149568767353919913444452893089432898894011627506950129297851708996937856167407965298042637940613079792046186125423891717016427312953880804539306024799726083588204217103450648961490130492828967563814110646018108573408637084032548662023352931852986916260718991411984002650915155137647893248084334406422378232075310670592033369495747825598995268280508928232967110996209348376220939285648231832366255915625135692839096401053156566262250230137468932589622553115333662743909655365447299253502856618674076243080040169856989136128125495463361346762598087430821437843048088456923727322006304170930670877655064536030786885107295989763011790590300129755963403043827956283967540583947422949132596100713812004359774262277447436343866220092724069243064150688700561960348333877955915536923986680789665145955559109378088898512069756225012222689570802829066437222087216928732125987852979008617381354468740851104540332131751244426029069902212694244218167132675411665508362145040947119934028430564384103461982202969575684656663669514135050219057044253481798087190365538280275933092998942182147473556166294265759649123036463247546927313290692035742772573333441962549747137864228370945043963062286684469706079253793651483686465026327180755402842436332934958074757773782043470739364392567659369209402689207177769572034815344187525621916390096075964092417801797538214717784790458282210422199573652165822737884372540107361498467238302121292252762877258990176495026520379519115934567336379673891230007964006504147143264149875017728882883240445554617784925938841282689021780829416521423402962024971750235633776978274165676777764884888351160663662741026838393314233426264727690443659038772841933309759048047538988714052286069030643433690423535719908136716820502159013618569283642232886702512794431408656240279627505981201133160925898714021098506954783983231996226648990097181729432483870094101244027889867622368349355056451764463093555861033521368893961237000500013848013343373663212861101876090725332784522926289222763258759729813290088255671208504070805611976392168725894401554766948612351942630067962238522236631681296247138305831809414627410656991482452126699042598317554723726027406690469204176154256195076562537997909836458057639277871185849361367183348823647251706035376706528440947564309696272045464522692915430932820511669058366961487396752497968290741836543861336967580448664975489420850308946917430238537255734132840803162341794548944251480830693936733674872687751747571905927571685971526947307889396667289623953886826138495718214754214209380653517821330936154002064186504964940291560623064442393507120818418078138020444073362809039365003007327914873063650965460659709518970280890867409869513932443546461281718773298977986889163064900298938846774530926670398181792773416974415029452191762793314243317622979326764306934786481779799381232819140864799024378898763535169620906156782690621114761663036044133407734503476284487407577317591303415683014545791525018905614059325522351403301796363865278182580622032666657103784168415012379819421962990718650025808134155163796770635987313041565036945756757498713266204605679630981694166187778631327546373499590865868613234723809435594338548322498139519719386872071958814345416632733555660185836820761301377180518487761153710840339621683385404628925822500995745326646692721989421665754945781084885144775222411234990316246174363625435581496301629021698796385096689906490903766967447098613723454566388009036739207693340406918108039861821052404648312109960599827773176519324128303562858358659064629519021564273975436279034296953963789922556825117386911393597994360531395722373114551532721478909252052624688535690692442448436521214657049768427936034936709150261261016347854228720101570633596812690526707362589292192407974053102966913629070550383121418916215850991432841331587029265197903311630434317355404997291471079182963806202175105990243161244664314742787614149047805397445737204796962188427475004122274788788754927850202269169807754583509440776660317522458817350151686005378102214536926182302255246373435508939818670180225792481819203073129556923880171315059180579268954503057938058271871550214605773518372043306663931200811645427150026972650638582545683317449324499125165433802065206482119969974106115201692067478564524863588134612627062208309206832990812280982036489899670450378469023246754280856662051032049443566867189967424554149907359087937205096114708219890303784152757705219812879032959079712651298012819755107730946245130094837576929926736913348855104680149366318395244235109981920894644887825381982879018360591662130398829331181938642081732645006570405484213897410238798545370502737447506151259579144516352574055593390755153174866199523938984325250825181644496899295621694278373872566348559553978837741018024965184538295374081130118159365230591563593349250527063173946774028352252507521167158970108259361700100999036388315612589685561030437157301001738773917301597150527203867813241288182057335911612538158573680808749536605066020338493727599907805665504686123021323035502231841620584604902499129109658396541661867092919205539948300753898431776618179428990711849020559799942956238185299902134718855785442662042489091345359112968131028885420485014395808073699186544733012698527896735517496526266667532231389853501946375543650368085747603631499575004997217488116106625842605599173838095257106790527839346594645815453635302938462032665517172504785423889709335276743818071301041473278193093688030430722699142316676900226387494366240001263723716700879204337082673793743764020028351364242432427812579456679238155350943499643788100788074139613041253711656208571562438421458261031456854613946446544063698177525631397265531195404287126488870688439889345593710623584003328541379660047886670211555067587797765519398250467208393703356650015587455739545878897934743997516933713243647677662549393955032947383924422791245095590421711908848899439921842919754098409368219162786406691404994766150369070731240116236406075952432024536063820555925365688022216928172544817450669607685999913497898317133871877062844925508105899466365041460148459591956071792585627927612703923103898527407234809482590193553250392058390822210418781038553135979018675558113762182385746145908384180387035059828649670449797586990821252931932642487907658375744948410175515213924907736576534730534570814406115949829311203184882809932413078398986464704104534457295609632539693563733699969013454341327379629933192812110950430461884592251361409849332615120128920064656668977474878432163111148650200585917896059861142503189947499423392721276917670616852208223696542162932146446614851915234641900926504383117128115462817402780609776446012740740801582530789682251684609394479916114297727019662041774540823270456613435079621775962146657102589072559537335971532976148480409695590834085826312443900348999114229330386477906736386034796523409435392884149727684177714727980817417400368400003783009878243280263397098935030003522780318530716195907549452496219511499905568952624013487796239136508263946106107384143832962014338051490236102758369139285765633984794367477634126614692620840071059379111029747787108047475460757884283040496837326416331569621591335835857160532945670861097230114378441771362828210755404168188221975748594926107310722727813601849379281125410593366265204657510553468544875848804998075193600501688858773777699952896956772598770071535680372211717589197640417109440634719239857136129230150571580951323211104574975336259308001281333736042403180730211099995828677789631395050515782455282240971099424479936134235488340693845791942105496696243321576313077826517722862483991021554078444034341740821442599423215500045151042631391675326108016410461882727046855993148617594586019522551287001604871442697734610808156867333732874896432118553507666821992120753006266554802419161672839250576681429887399970975483356857348080359308266851214366354979837770506161964141361486311336177798093429861030624162831713222966761729834525387408211777637420784169071360050352838143414571086247801548016249189630101416481045001778081203550295370177179594872675998358117136703099642733245724251130482279342493176512425652780742079668482297357328823467009339473798090429462948615992673015512328673704300679374647049371749895813319768579780398932488254973591831592853291172686659385526574966426784303511867435427938840902625187688899966923648472541444842681908873999668824864664213858309553844343435874223120553788094030007833547798621435780131813180739278121117300461539173944947747904963241315383156579298944841710710415816028576477837238949213687540267206909066469018716406485168395950565816537348119077366461173220454528336789048423003897158243216891919393159544335447212124907297440241320808313897497053020207323033041631405423886745678984881771044757738554360688118903252254111519795397263328926796813783755632337968288956880159855858253338793536428702607579000317807188789731965506313732042585846232564587954509600564764870954438330725001775068095580617303774088280935845416800788152910385272847551135417358698160413087230160793808415117319667516767878552750062638138531977417726217304088769406569546487605985568129563325253754701541567946936519309639370187069105076633605779884994243291602399691554617418812784456795906639981269049897655358536662522899736261008512261792448386024127036185235185760265389069510362465167858238493381763394677465513497486409384976571804032584636155228708808433222798813057093932613885725850568707042750188046176868311370433668883875943277136339443733349495713399589266769573086614625250840746379813693790799662830089348645209837118614864798557394640645002020481141797041477244396377122558465738374510713300843036468340894516103369797393207579228901467402676928515689449092776814626484161345965072166321260993572739236338391551192170512872704581308174782180086349928220358608456566816657305059435182727042003507832073089608137735669344241120362075967242498716149883516486639390143658396482260177097243314577268204912637931994520180611109216494840257852928393400032645637638435476528458679958631334503203407257776781223371908095145730060212784984321456809791552053870727608482050929874154875785305392999725106603271527043865283145528059477299711118030963544618539663080036919024366469278275849681951251476195935104655928579760437079743067902961588104347334547646186822579979326810906293897019243396311699265966700176324140433789298825070797849149890487303447159463317641370439670139641944458336657917467303778399475692468701210911874719994436355894392674812335889029663901359914980678297528239537963220350117739818222966378553533179178486346193713850862983520434011588892979928743522162703021803032903404108138461015446845932470809094952159801532648647340580086303483356570084544493434203403454268453875397114989130530835466065235930676254910069435012559578946393896427295313465572424175545830562125232422609190832923113129807833365826334727461173075443460765536758589824871288244962673834198501746362032996602515259369633452298669394708105053889343910066080223966378250134109876672768210216552884791435708263207360292864966177662830965145914151228423783636889742350977815614815250140000155947783941496060736910651574786978562362746678850200092139404509263067178296525668578506296650317829921713046962524103689692996382561123394750628157841318799959018143184267535722874239321111612068243169372880527677226366973397893410756822985911397068851540853548550291969046586415125243123284219373761158816074448641695354326080898876955497720666875237692104493843181288539786039294925641805906807812102004179912438243241616293923096251759665811054039959501345013065798989630924772393373379319703872840363925726683576373047017478003030970027176348278653096371966454702299902616994593373534417480640686796207292130392357081217948746203533827159031855124974016265855647422144305434056596347510836558141279640561134923810475951746570766313191979282478796682952559563241275541464212278319876529980391452730136312004203933791329025142203153347330921911266413226160007133356099660413771738692156388850593945648219415718625686544296475520432029090027431816163969703775042600704839922570790443011186682487421227444856481771841468716056115000161663675368706958987974225974083692795454119112042174391740419660897690550491716340639889699980165226873020539642606311883623557716709621657907536063248372077029324469778474608682154652815871630438849755306262918504914850464652274710265752938825819814995284893090699649730703022742634065399735985268678253929908393468680027636254602649199354556965428193631686353112344124375961098034198224574261715444552815581607287085409800559981781544867969464883906621407524095594063175334152395694631061502750570513677170170303535739720421235743694585297237471140680779014608597561984520766143114406396073784114896784450204885513775061481689419343492538939480122333011080627340243105217600136959004492651486487706288794216519964283236725677755045995265161046529799885008408561800599958565749085803000231301560521098164446223281749876827779189627221615080421199277094104096911758062095555159529262797260051303093372395162488910555529954401770388801647537429693478498822431115735449115343464713792522379126833625067957311342342098102848262104964528409058209538212542803102001805452134018423051917740850919395096328857527616558720547283707557690037226727849547890999295123018883000428372014431634414907648965372209138455249729058634068232204051465133618500177649903067578492188365014237399041593913451997300851803212107610997314753865020587472374106101094578167273595296327324074162450279731425250972274120966109346852960504729314343665311319540263298218129793742081308294602790556635864196305369281669304261798378010489623145102289603050695384487463104263807686188885356840959349878651390264615115631498719205625367800510675087229774220748858584699323613811361670259953330827554396955132892869363759844489906833227424750701272066468177117357976879140904321421382048022750656474278152828189952443113068085970168436269035824941470807605643134248448274231661243830090112286281129086069508354148206281634310626796665193863716997180670784992019797920514126589602135890824014121995472181255412260762247510494938494014421632850198600064748346944974590264607252921683177879232296638601016481520600701652123689881865280196203657922789956985935038531490918730784954551548150971439535908244991377150452378976665191057281253615962473427636672974707871724431262145636114138805459757572909356519629084473264160964138186761113813360950569607637929651059853624533725420187159982665014792329029142131115186280733506745274453626744751666297113819132184229461896775607948406092625212444411959363261906595383459337922845244702283753748292434921496481389979666294095534923431444435342397577219081083363722517298759557991398521576073470314667084661619405506371438202756605233508793882850302291190585777042888265609914990015478211186347386181181040569090094344318933008023526470401002718859375302326612507658631231466904581122940759001370095478151691919139106882082958169391489210451114640161186141104696456586008680585928119309230765615680703878699905751411072574732819130736013136519684814289737932046646159406081415404620912199695922145639238767271057856169135945848959080147188980850458321315606589204753855031499494562540898906679487308208243253127308505681445261550667705239809052562602645561527650785600282381702415109751053829369774395033861854793816832362587165930680400446533926957917778734563351593136875110886474009209180775285458295919847078970287655168708725511800748045639316361447279373288771697808834976149042166813223567459624994605932682177148836104011002282710133652952965646360733082513252396112962628048619304944629811914046689989014487435245165288276611327952363400687432434118731057865652069736309963027479195328939816720906572118890776524062669586294561532124032793123475603402615177903253939716372291888466763059739371190108090224739661904873846464453838645731818819543357560282428531727376393834701808151596644447128247858152306822045757674110938848011230897136500167992033584645486651873090991412596877229360752118873219189366705255095220230653934450750141509808330665524072393837469859591423053508109214127018157631948267367600030352956146658391424650056730845362130902926175591058497630827352505909119759237915126072191282917777427093147249871245129882842443070711831174000569738689202701000749400674773707628528611112210842674212008807912328778899477569068062778895564701817917234859581878461321629825950448420169933816500746088022782513916164651721975232870790566441537416082273423766181192843622303515696718798136148517764217046476234734241122590452467918352251780638677646765815642350580030554590329193895518540835900808865489463932335371138535964923491780586283614396658190257468358128805243796635821286731231881765184973494355803811611565802492126663346126598063643938572778714599345376265190089409980644437302997139785999370995389998983544563728241033917043152701729163883483384636112197291436403014632952422009576258944267238416774292593804299869230817722236901336730058240212516260205656942280445860172088514208638157653762565512866458801757918119833899861470972681940914037043883535132733259001633546431127857242243179882965336147940758530752501373271774919384564315768656595270871616495937314549012602771454807729676127508481472752962991448174604257269072483117030854862406210797034363172318555931596997570235308682478084930396524728964387648695985327345327148284034453322589403735909508903445260172046761409116793518084599629911803212789258230941759459063033311493590748270931639101384751977394162017159433685056943164693285938099611159393631212864362775292232426920689277543529861333979333202730276316554619821750535571421585696173546007593366546090867953157634024894994450226838564990533766409506841072714225219225401112637773012520220877277300716284995341361076211017565921266799856709816614818007646262646853443439409471801136376072972570962827457585377480802363917447197368583863973135571139127062677435377441866701953525854787553988134776723925306372936873689084046380397872450337580240717649301936554543286047879294241129688046282082898729838596468079185004693804321324793392374025717106901461236064828679190623028104349446147848651292420954985337046287134740278240115884260033633232958171198889017395686441685246768826077319713681715123211196561499013502700231299746984673490703246232078808397184658204581436168265955160877080031360746777158437878936366381699104802956522006396139919784721709445152086325548952462477444028877676297725384355608669978636521808002894523208468443541146291449377836071653710572429323587259757717404010532760078748957348282729678077683732347186088663229942251505246436162796879919310066503493977483289286614192001241439669613687938875048137882276011374212213811146278086347128785083571027605509548084446627068180934410614248431527563279232718550578838725934199053038394962465526105204402129453164281669522514890849543059952264434661623062171889660663226549546678205985936649917514874337359944595665955181512182524532419289498906378845298406162865241560390597483255752531541827108030206683630454370494581315168383239000359768659808909699525631639287478685989741953659797784607833483986916632517183509770227347484733656039422443454540974465015842047476116317156885426365072450522709023220305550288409641760900847055752585001896976595515396861551571933111619696684373498612905782078292914314554823502363653195994566316603310201583786498644025605711448684696953368532925172320830283982686790797099979605298417339627308231660775378072876881625198614256110912321165800360112786060615318678713925970500972199213426427402047084135463036848826559477572547506971116531703421624791709605040919544177603078868651597103773338904506513024462716539651396121191816715694881924280197977209908072388601374040532373490331094033306989160224965236824808043325797278636011052867724638422732518670770906798998345400265089368712878709291346904073409686060759557653869676578260288358164916961007237688317685641939206084540062201923605175005476541978054792897768798390709693398816363528441898046889981034350045472442051683418273083951869628444264323253733719293567755002797783434218947151099685696369995340172151616358226951683700066472928953847714063589026642772925959900935202412840488852955814307122384894068223998940376837399046169902673797276126821758864990750846933970540358439564811561424757001509861641956706354288418709895075079593324709022292390476725145898197323954118819893334512847013251638972775202566342220285444719214009254209374463440389120355573635387265334342168897319092193995303382330828458519217943709151107482240810289373343711935281020189414842357515959579292273328361251573552323559050845248263422892209409796935227760987624384761806785912528864409958543321586199418648737437512687672012867692610313100526779856157944167449628766521818830226905345052287184478123425371963724484170183784253078266494290737747320693140769291469132629983596029317875710219040163595887501635440152913357797693360677759576358622428182663948551719920154404178084901487524191745856279574479758748509111680652255387600336834519407285521251314078401767613936342683295767737315774634364406510480257887409049032670967902774394119417402768570643754021904356694351895612747243634111731619736491515250632854577775424141931852701699440429259127747353059718685537467403782021151561364398725668650397275201035450681617303589269926152897374377984254270702054140228571352855815045114932317994602690270272306633412989718872315967601443681192218680120470654140599581765041110288464116786796549543937666463350073978676433682645485945497256484757228447831777374643819526394658141026126449053125306205182666399845812035466617061487243378090354777735893806896391050291030200212305827027001184723407740490099427077173747457599050296127322604969643658944751036270220624922291665523690332312989467034600592615983926279820859138040438219365359604140155863624340613634070026491774358078341770964905454172579742842663715400226382622923985035467145838926803377582809307170120715386781264775602613165358745959232997841580883944565041626555348403883171069280952301753157613261989893236115052054647186692149875600524821763446320018973230323698492486489902476318993171744454747234505278295011406129786251689158057491242958059009032498538208743425443850574209669275525015005415525568019023624463215807098822051046054585056665204776394907648436647194966266116278948611772200103943609961198116369070994734918142562343204047328074479953804509944049716641685930590739859644733484007587238621702975508498538934219480604017028318263370777492046158146765850157669163115728946787941377825036542676875230461453756551490892194876507919093413959479381314604784388489995849069274732828740433527517300438843284217226515026661537964623392880925900937315855531948307298027310693266758861549185318085544100811039493603026187805180917719605682385573755718856168924927227139300787929659129438825659876900479065298248752242697109454178635720691925364872554084994022258960314783916018104667510914064281931353959190223308614047748810021927535616140607534138799035989776507459281949861550581380733092744969232836291145841879489502383492240336022259493948260473221488640575455521011445351726421285853019528993941788828638984368427403048163134653084433357998896037765544771959389528617085094079267123292809406544502246981101338497883299982028507944037875702655639084815871176097661299877674872547885186276135940891132205063972529543567771544090400559008275318389529694875979637580271572911769117934676034695524576253136520095576679471979332259983272433383704131688421476768437214733135985642393356125198819158332554128708109310858271735092064579985730617582708653975994103838163802963643306279979381500384602912970551496104344437877491053645275843804645647729757018586547462033371900889586535480903554070892761431107194724356069467805408221743127590169371978449257493598495102327929747994526873463693867930443912593767655113343825560189218513324973955608825339385186029961701928375891699966603790314945003676176530817217887094558084801268001016743253334043901921455909777722806700217626369480829980103274563296206522439688706976191325343044648151356117092670104590429035882104278077156195032287057759559517181183947842249864581402602919907272211520546378003943893163768613573058904760766440265299554477843793932206789484000535815307862574605705949265466903577160625557243445691772160638378006019635146595529562151062874383196388713350910790921181339698946012982034707939223675122759297111973271213042306761756556371884711904572966632455323962723677348190664962403946408171102858454804637364256868913523506654451134526707769455267228325448138918512142375345841374856740936868465986078623855703212388441745608846464896974204423080875384626260997846997899280992151281244823092465211883103960605247995122161865470167616273541749157119380511605673248594676578516263686641600260965118888169853624441680399933169940589205990988326176459273114216617001088688860508826264373191828094458561528589865974986292983071541641394481985292466831950250756587195177077564839434497023837706590074100785663406905711885798286357640184394483602683038012208943709646159911772729710525087297479615266450854738267855977695023570318076849733850155530458423525403593893640315298903047919950755180546349231259336395160285454207565032888466017141890396477583237482125165281889559025759502547710007046638595514648384503898533291796380261654052912371033691660085269067508961737400174036498728340282866918866279505293358071736006719131534597608803412245859434274777681995552892747855481746471983129538053995093132658053028380270183024765977405240360742765876908171946521233778996625485600464999014305996259103585944854583419370922537474699496974320090403525765160597959921063406381333067409281560403772534838306555505885645163254321543446143358068771087328753392832713027017182195376794377564494476330945142442526244480069649260753698738120272931664714351488129165082023898809931627377460963040076549321488382780460116892200868685236426424785780173275390886251649329465738739721759394331204954097281695638160173618583548133806165952627515081753151569134501942899174468392326052777221539811365080609446335143832927480224099151217191444994085672629900486142556382323436923851203141422061886053005510687476881709940132935260341961981973992930004205899085947028194921183732611151684500862723822716955994888131378094661963884394491682821154760198073396364299243541838726955020091449065234454687814648795282949216287259295857682161325997648788339904952969066656186236611553994981660444807561926798394900548084925407492025615313968987853996261528309335355486435977307565762794890088183971128227456225083390094937570943916152093506846498274504761647725272366259590172308212601802008330341534998024446399569184550741849623296848512047052390655139526293606707902337639173753543539238264602224598785330844039074823758755541702779867961030147267356195424476818203895405234298226342341145228544391731898011818704686301601992402529019188077345908796823200892534251273144732327470715858283478276251668783264237918898276577441246903930738888319158967502800316796335157218509490905454557089636437654661989102384410929716663835462406704535802540700001612976774490229933438562309484427834647423100226967167956279839016614805405540733793063150299149452269696552966597322543506801338228142019398019864274412707981751620339457937503392600502780281727977346465553708057100891101597609930510070439420850677029539288921910012250166545420528641879000845782101511504237856277862214252722815235654401798293568787417012249261400196196612580348662155916364281384401753349653459765232458413917684193317494810846884916861626214181760139408800094202942813745967940864594179563974965325747125908354808865427465591365902460459711206758031165011445287996115558432437699161769629765862926534439870762138765688010373240063365184746681520194250493696479512158563426816997389428318561543767951467101833101226396696639937766366346318645955894240600572066084843420519334021788901365663668235563334687615507539277683157863796756997114652958403599855153751676312332860389987269473205641309988035655299709187956266908343657800664898576088563378289430664129525635634230956244732894870859947149715643111406022638569170403182061786835241894061412243987319380646301265166292838588354364149877038399943151922567278823564205307089689131299167611830910319502090847727757754190495789423668917471217966581451176433172632046698763256541420361124525735144460838633624311647646245506067025408359789058900673444703553890224846313544596304453183238461743178955817378228424080112617360525637596610961920993541441208870525285576766094580049802552778158492911950189216155223512984353881246829110926651555873711171230300775125954067534094811449309344408813778047524671851427527227698321355912952777241189158361561258490275537811452599184868271079032866289177988410785571937483625772363309777201295408942931518134541593873429649312936305814468101081651534431917070340819298407452424882022481240644290392351959300959970526518113233342426484647956408696134586750903127263227453054749983226264255170797909965856354884481632332033156419550804465186787512990713560225405568295931149271430737028359490602560314106210422608549747587147799769662069827889129726567967234294724617589691769264394283331262391243358528774995792948224964914522964943629273655395131295751027655749697927685653727677052087641670985339603199284351007749540818507557584944303587353908400319655363812713177133357524325524428978401243610603817424596309336095089937679492255071540347461787738055346734355738315429490396226158053984721830021668723112019836538194450291913173152796705355432428471645517499604751118774378433976962624229417468395085345817317994951360270318491320126168210877553148675091291594443707773845528225524905603281400378337680979135169868566472057534636955057082840084870741515782122333584410025276391365450611224934615166807254714069831050081298810215792146599900667906062757552190514938966370740974630452108035663231482673946924684378196828516322282588639683997887426677883997201129823426228791266778635581293052847954193215241091933515297612866104439812471406267720854195807613306253407673144975282182961879127950304079274972692589176665780277159010606630789791665392836189342513228950704393369094736626909783795738451015216198541653867955429085048915323619610248301203795831423991574089136042674080811386563132783213695729105721145202152724208350819976973991412133690457545666030073660005758230475227917204126590692374910601651360308176558023137605145006326957279297652691880419404625674789072251770294506194866784942381039939713269497463009082680055001002547984280349054571787937643393464376319882106760736166292054085407930121013023914319091777942652034748434273999937532498335546451631389145408281209299921399553024170917616604528023946406608066233931643032760946354218211392021476100960909224242996693369104777537186338162396541361809449746259098563203299300641384768980021407672855508738426011972944825846232652166515701463897976730181068966055010551733871067804368099646852717412112053105208299660252841885821626545754033803458601528323891792814546072805196982779859898533378181000871596958342209670561326093548961798982105925324935452855186218249248452806645245303818866378781211029596567481955875552641113920849659007625049584031237105595912389172892950417592370520408963378584554722654399411720020670526193510483502778307913078800975603409460654098794451773147916940637051141107281874616922726906605110065183364282198663197714600585951851442591191342915190956940974240728921448777998940625379376304170002830902934498718991301286844281731976779096507841418031964137614632870788057501181381482328000894992393324134350297515875570226641963594212430026635922620459760920686084055641266946170766288115333807888473180882125597885974361702597465057609253628201483159986986261059307910905807616460059992461725752688954753464007240397049878172150004861175413707170199229203149501940414832090938501944847137801501384247925440284707082383730931317030826739232410710880777833727986559940726299583618925880661830185588785325177857067005974882825666554901761743423218067596317467654502390290377417177635843539567696051596295904404634076102113645988053342473633058503195787749735099797184336315209157504797740385595267920240748863113940023285697798790302740672319771748764278967818794205029648677360386045186642196717249503656773877588496127909463899990699461974450488749826767338089417188568511777135085266286722848942989371222038837177497354410017942169778529746006122235776994112265826575570756477584734101027903736345011389075330735582441542346956543971716901135297609330223443365056300962673789321502100888745124267719681472904446813765214732055050598800899744537436105525389999480082362587787473264297303478929392611886675053697928020512921016011040679372092880377202845703236486725799889989243074191510371645489902556357366674845718007622499768717578236757317132777015418072454048629030479772124973464740669180783567396276498814111063766939823505249272296660607742859834217379775107055642051322110945920461966079923526314678793669564501253408822827520439523080734642631613827631793972483243299321357509332724485430731176127315132417904089295703411463616250731841980641282740717357591883205223633981161989360529018234968245041738263992082783516487068634795273764247933788823347309848413227617680978582745510086320084686055605929595270427599610491996724088292393506277201767882487212016312426437318338718517576364562651143491602088387058695118679299472870818017649623680093709880987646214199039753020418640749540523946087615007669252607919666796718204045320764007953239275451837159357572325609511077111563226383504924832618786717812664378451491390473401631511948573115581606223507639630489470406435561463328198289428046872388021667480188239646244706351747642273469570468980474982615724293105237836808886783809942925842854654610318791920310578585123122152866284259429996826230809152721072382362781584481803312004890647862073787623968835045155236517761271655149752195556663355529186012815855698227567473977926529025760825065270520704864365615139102485508093433536171808927105871162429997932199653292536165781378616720895319491978132377339340752568722582367535224618435770325094603200009510170220439157456469022251858908063303489217340860627908366933037853373334406675345901747687860254627866002570895623634235089910893170911693841890209703367931153764478935340583080808690424169867926804635534119014435222998321060835062173276094979309866422915816403713254328159226275690145865853241919887710948792439744575175207716251280811166788296820157371971489837725415073983277253268034109621457602005776353672236160696254514389528356813272104292590542744656242022108335285836625150073627529253203170773794147751834770723745474031817480540017354315547665138948408527388880281056384569063400727442405814351233235224444440928768594344172764007274175459385661971250649474676792605103448917358870191971525990096083764398891928033066107525486988713338831035772581285641296178711683564860227888064048687474787369062679863212126817331131523625770535567518158191013819374242295676201208091151188651125845131707614879728237979073421465272642163133138447156018707086265178260254602836896316461727103688285313378297336731966518384579537436852282269005831062473757424536580636149709093128754288529847298779051848379343940673127320795094973219678013395014683165095846522565868411280583317921492840388833830987653294760957981477995587608569930313950309932891514696219158989479735847293478745328770263460791932125970819832191789538750415148994204231315943590786960382266073475757583650518352387383705306263321463063136064872430999537864783823333909050237845536609458686576832348525846556496154208257296068109827587097443320204863790518018582106876876513082671903484184987985599735880561160793442984002977079381348724121216150696778732586090275392104175883700112200951158129292106831794617476652905657623481223403211203156813453405920937263460654494356958624357811760429218156550523229572801605426483415715325011075668157843671885434599020847040639810562652835556928675002890556083369907300498952235594873078549965474151036997104268818993518432993163293453843710489307250850127281995231209690868141814320658458498315878695649655755998983333488519561932599896871070429367398234324383116362109698812644639050454293152133889162580283019891500351945117761325318108765469411806043761526062510438396442616798596513616190799565627964080527471480490691716343613385756042919370049212385980038851420240269702283304123411214425502280157693593800462882903553910039028582396796557084066613500374598065608814082027142084989061556311284728550096747302822146189856044528529991518976058877945224403679224139461660652182444860235123054292836615115910116745471893378632185997352762604037596936766178968332834197871329606514828549764058907740437072322349689226297037414777576062061929337879380094401428250288500742093052277806807762186061374933455846278626799459041243331292520454058218996623881590197588375390698101989275491633052151700183543951298105994110978663254176822085568829769700064655010056694049825438481405774574567394314427037120468256746599743577245836919516693607527781109083995205978282848773287471649383433167088659375956732758860475671843544024772795168999455284947356349892799974654166000389043074466109018537244096021774643234615937171711245482244289386059636417667900870477511428323790823774106500966456462215476774021605837702875046012333649157650879585901950396073646789588953230775627545675353719597556552785750009418531027906833883085944011138817547948167086583471029690943251736402163402422876001636395480648653983379337647110043541708304070043445393272745065645575389936919701433816184921689909943011903469531454060839113214604493657463680678812276920481054227382711824987732744184927705796826983573351626594134985869969362354216886591506913413388885240682269045140997247992651941195485073368900779883564394297804825640181695561979104381754540877396604562935699969230016158793633950366562349107792549918790072687585587962549487522192526324763683026690230938895425355719895486847502641076090996070272229134567716417954714940554111380157341636835122512334922255664356910893584759065631810516371136335741413371791920759973531173840534520490800465041447806142752139362366958739728553209105514750851496204899538703244368959883508724557274101027261853025047924569795149936814341178037417080072055903007924752929963575629589455855216639471916458847873979089587911169169486638991962180939961951509939052893582633879583372097605977119763246209131934107728696350762403831924105108730199268345309976171112319516848530812146462428969887487085599531633025037782444423916584867572521009255532772673840003831686840109515406280448495900144288510438001552310955292198983752476571635315564654803880533221908510252633624379663374930692060679286156264142856401976075653896558000816093379964921422212561900416321578733270204422694219823158818344170824190740723790433484352873464200873484244225994579404501077928973468478854912537970336279821157030270944165960942150213176735244815195434777510308039601110213908828416591579740852984256119563166291491057138543341534118640784212347206517843290976255990576353639993248835944411892577637654598753897620805103075990516338452671239590383364260096849302554973618244624720845488952191416732238435468623570941313014936003850306625600669738378582286207849908812699529394914627025557671540540275742950504340217952705920787193898352842495900378189693650624584578820648902807325286942533806314380237462924596916648927026021030606771553271962819987781831598586951931149542500697543202503924432569985075446438095857844808416842362898147894267302321197331940639109552962409679519728207064701189989762683991202363723756699014060239885465658234823339374660637115914219446672678106991607354021331023854194038837499928135211041002810780279954147029485365169972764432900082271080831796190287806841185418637169497427907255903987631347501655204999531650316575271942912712174607350446813665877958844645707371132703475347352378809661958621610947135084257451488331188904083390224855763916570762734202787389230830492924768715837462642308569396158203020454139659699499883832773640319704986432221074678479950512597874573195836348750401182512442466353253430660106480727809229343518438382249988321625108256903349443231101392563788768117700330427158668941664981753469935209430532218600851122622220538683932547733086743925197155009779015297055285695209776201401738251588618890292032788906544235990761534961616101189911036524234616409697872478912092154238940113000995369342582792945415728812539670543993993334885494908692512260020942900603180278309213595862973076185432336005675049689850471549052146421981431062733048996398507830217714678430399944732829977053062874497158287775504910078816724699190769700685487181344665003519345411212035581298221204540391558222688665279624835051492495839605090597065764937724440713196026787387067540908069983171841505920693719350168167353001141842339025720350976847320690597606611433491705824136531197459735712696948992653385977908330306115495966407289199996052029040172869561650148355298296809065676374607864609076475136605341081662886949480427748333537185592269264610017081564469973093624076372496237013630174617838223953080014168312378724023644144999448317635132098214628494101647762862085381350677174512832872428352312216001776019050245589949243948645429910731980740854570262138388513480489060761328912416980103711365897542159926317475386306116923997730057463835501471577020670025632006592962348159175428630049134392736905238746742309903484356643148308269841830638445013586655547466944298954660070980810002253173520352748659727368551189631253701369267300813384134931279198524006019231921863148264189397651541466139049499768820660119340605301525042758736581958600045253781736698066113772691635234472597275269093408243831387178919230437983374281534025642817902276976923741232214666089385345164265395961625722768909366110626978750137735725210026280208086470552222586893815657093439906095938247501799901926407818963391153719969319498278310684102045023987152672831869930643949589628016229533198456796424867071458615742830345713307800283221201590872554506823452540680643305826229495875709334021570149958253627733122309791762582693943730586471383694996989148081298907197926018388325425229125955850627327111544335821656832822090675592838465419648719067652688201683868687219469706673516913202509632933933759262587465502660698647795657458632439286314283402040577612680949925944091150252090529227627822450722443412620229413780525431570391214742014291954614507488343849942879590806077833745059625452961561754479842771253133361000464234204333628435016856446030720140992607868118219233630416491643058782985189384078492899092357434529960331618796128786606660914887652327310865634817689312314642983030558177943342243412594771392715990646462834275512922069085937340806421627639836447463107307312055255486701585224065794551606103679949777153366893000796170836932870577923331132024985877330309116705127815317094841887334564854009260549249161761603192935797902463691922727995013050709059268161540250103904653703853870381034633887959804517272093939759540840080489202736773592069224669314305118612051742913858356259723154075071882747325818404542926392864331655939780239856956108548768556302092363123622444566519968883862842710278931095522176670724196405528839910019680466942689354679369442191616043521901101306555122937198637815505803994817535647697018140715544807869981968680078628148921237899148550952471860525255999347735494067667164916875087372575814024529694287900723388918285205987121694093920764684980919683899991772069781793566543216085287727953885481014942672599030973101891927383457757177558986608937732422501010592067434444897744197295278044964555276012676481493798231345351983191616013914953094596151891852024195419650813639217646743975680621423456629621052342448701534592863041267430205625325520915904732961890239963675196541895673791045264606079979415066339156668598050366579959360594655043873075804253951541763274391079634248764404285318303551575565025557297814162005271497389763267973100685370449541432218483104866528102809687159652687548331383729192855501514043622148491454373985323577983297333573333953011232720237228977862810102486681174491243322849148176561800638924804247121372958734517194406667017407804786330046372955832679050945250705885704625069927015151821743862097535730916469905498469051113083661342395072924149886069942491932874151396661670862885319850939751312722549541627628433873406377039909974142274107063000583216209599616032012784019391294045741094975560231925704744276068368456676824323623456782026745589489725397818576379623331366192194770858837577183037786559374455990566338823642234794852436566973013888135977077364925708575364260157511735747388446606586108919638473010549694209150505500240835916465059017618438675998915877837449121968632395708607813220159084027932791454728644202043173638388134138202734351914263258216140182013494865736841322479286112337376560131248505570953195601809077505059064929307172660481184701215478838841955728489694613150970867536790310142232538571089414718938792675854797995336005491467982524507450227117659842773174688863735494342272128318053055948277588784060889990593726746715934424100011311805795143288419106509416907685171824753751910344834830131843206588443495846234895510884790309804462756887204958829836373436433354706660321695485828583813535037486615291910305984725312144705222160941813013553793191624192385158599905842808152172774871883566044811896362403605408463201576145490725821954721929305172376753289406419054651544953475329840721472861399453787196354606468609696944117754896083227327744595623117054084077040974485713571016724429460672583182063734971280797091786127651539238813789689587406222653492955019899378170009039163683669544079977551574890636525616020952833485226474738980424332709712481240796954731407662757299615628404400286724779436259083819811458194877859841683009316285248609839864949655605887408671579504287864861397589242408426570843168553377177458455804726177770621631472768261177736304125709761895358116873804929921432864765288990088339102755127294935548814408582477384512287913504367197526487856690702487898143075789829239029204618698906478319489102638171089795352576096739966546725931444689730722957671435114745354917089472139448098759963745459549551726081447911281441363250108285084326775253122082353677746026604670517796959885235019388598730516298694759778746470938726230175501910573931003448413825979612420970894256429650056584947437694434253464479558578944437099688675403582436751857318184660325809897892384727266239933630021467692735606048927762340169672328878204312906466641898889775297756317197896608059132779230831295183027444538502594484538016397825909066066259174987608831365164024189057915767473405573003130860380389958617641478293806373134983856643764647873581818661494958008181787085334522665950615930467891244722774087549241084712884697829266087670125446665782873427904270009680565102609280035998694574664513305769247837271469856954925084268404418758882616420820581125089802114159668263003359526113036535554944036967190930103323352068824382695100919868172729964317894566658604909672905166490800292814934503834135954622407692845380376164388351102526286387026859729790547601611412929102974078009592126005660560778740211799387708906356181168998464464697571519862242018616530973350428723232066813916790635009701936382847231689851642676134572287070421871752925213962097009731676412593408157280731788359077597527337502951045294584688801494326702220890780980920375120065097660205025316397264155300872624363671536933260104893670088195757819165654766417750347491470226948970641386871805009112299262762198740159715517838598953018979574558667327915749624816995858912753864111370335217012669071927592280294310481936983869867617418455286791379044947420296602687208426916531101187256848218175915981743706898968556464783989274912045824628004104811359660903360177020100106894334890778231805532424704287545185009754423962377658232184413367174037539768471360790335939977840038304406136537876834978589342566946446636482117447078193724817512218905746858500870032272751280417631258953754768764746755274025275981849843181798500981132366706164770194920444958576872717882824212430955385983712191152883248832631600172786551851698929827160027357873265476837042089376249207818639427883302378008613452190793707123864267620319080612388673921797457745229353919345401416381137429745594293906474690868807274188758324326617996334729819427956345038946447438497884246494087884832206877292583400991126204287642737371797430175742462038305354887331867544363464443338894671670610016553238059654375159790966385604759147465987559286830933404524737484572484013123306184058468916974538080320561323670162191709194615221102042055729803804964539017292780543223692950846067494836951110267068048735464444413741002504360826112118216163154984665357357474337996072254993061646030519029612550646121868629672953724368966361148580305291988384830881448388317144821209793777967233479259911772950697320181259990206504345814003975530097488943037229985434451498292437903067186584285556658034864386438775720279174558581355235381842822328544394773446160852324925835063084096248370168257872235074940696858723727704470678017597866923172266059101159928052279473200133124471483967932866391046216350500781672153917364145051096522055252643929590961033703403764232508472460648084621056153920646199605578530914887250247395760377758415536111862545185468975379949103608423237975360264342622909082289460934765747966297316302125623369715960916707310267244169547501578870017743475905267170183092892208312788537981706570749860117846982266183883929546350690810475200196523454907366173146799732246872598701686649614666723072706102477969747210246868355884601704041001793666935411011283106710305520196134193056769297920608158487537299301283606903804233082230307792027247532576032275514856987362781822573712559727559214006183443859695861266621317604529412720213844794701110174479793666401638491851791480809684828055678188365760020061830906782132215635960693138277865684437174102901040806446929116083422288996944780244700928766682585743637861222284176387384328319873965861802421944789166127246015334209922628752336837181713869571037396410128918196830127541318737408323983636152362310065423389222033642201049968357117834012188166339264179801839984062268324926634182015356757684923333734316125455584528429535034104389605270844075882527818178903475416643292429896277720208716014624717888110036049833182223004341680808292761024213239492632709065894567243146624122075820721216823558338990149599250295332860848370689611358351358506745455142110351295739507132460332654671188035952622708377651932312692572764287853368542015320642482233125465887776605051541525767325123030958572197081869047527680684031475775770603615430564397996489208424900437512987805947574191949232013959098513800362091104533323890071354363246250640819294712118221736054618006570951974603831406524127654451414771610080979488841949710543681083494850052743041836538106790162246503288184001960695838597955811674710023567736456573935479027205763825685242792688193279781564267162474164585134922045067110576259745580347937493355381177436066361619281681632499051994806787558956416414496214535864414426117298308903701212601952984139829664912352761397258976978262138274909213584415046589889922760656055494754627888546655141859131194571037120064673790835291493883059297070574707485200654408561773716737218922844057639721825284191533705201533844851526356598161340628866902175504292024715212920519949989591784185960055610426689059381193272781462716224358504584714313542506481512018657133419308718255619844274822732017719758966860806652412037268653966944136248797356207674485475231502490052992721417170192285004934181646509750652938136271619940976516702149498688178330498200626994273307381011375276039740677424907332436472719497714061639980643900300730364061892286649317440870308042772359228964312090017551540961958224369808383316821779318973410448565609579862934607802189688263422202071336925307242840603456511529678481564707750494676620929031578022137606591542597384193831338834612891838837106625907878675417113661455578951006801072522349244497415678770666950034775582917837143520186952366350029080338487974354332398774451828159674317750192958685814384924011392567483051803043188721942403079413111170209263677239434423307721250254610912088444989556676916279822082711063968058177676869384064182968446390669387042738149113389903931768239130021193317229464361255515682225104654311787153347507573897919119317130974396314965741088576243645424449917847773019387904397299529919113624353011073089175898580118848497439216437805284571905030260670915132818690114355222057386573762789875145771145606800298911252881886399946474739461735367155341712450150895751246973955125169180704710960131763653181664487512366643951395481308620439973842611442626270234847402044542591338869965107035509357837227015182936797325037923256656785073086833887363338704263959928964410151853964460401898404666723550472879208684842637390632549262878317489326881044591223520053639761331265686852689252375091321376494975490345658075716928703778616724215511813221002206939254018001472796924242489422616178089065495951549263455466073101214158800117515518233345739579769567516336538959643121310232805979983022135119097638650235949064635860097860826333474326444419825661819092741728621605962013504132443034530248309963949449190941749510580446878699166784981854878796709375947823054618524171418319543872960545593877445648830840282150468019501310717358266059890138637736717844436862316566673020302699505685996886417071974187068138011473885642176445080348525861207798805729593701695174834081554499604600808588092259940675549457440586786127217701605677056229655705955707750505792868331286490871521940317441276854699527381054987527290802419154242114162985691572754007528352029668341782286957447495383100852573522210290738119131962343445516580366514982467967676748718253605144505990006202610978213544617922330118731141458232593186037408887556690574713544473279510174386591380656779938107347355322986094218591791630107763453590881023730135571549385382138739931082226772863966198430954017640136997212315534572932594976965045419918821075774288375159451631460148135075538995384016860323549654077390583732755720442163594809408056916413595526546849479370697895121163703674709285783609482498337073901472465276545382312265995890957791433181991003604513098252097301617274479007036709153423350049668057745559703076670050985842669723869910070804148650580549116292639066307785160941424281675534280404964233447346335814734864295385041575006816626154954544451484639045869523767703699420033698917354733833662747284787774184538973894069448041969505966282326018240881371416830992629607328661449385789208779461309002560781790787170676046189187024348144435491883174169969963083924166374303703097922622815147133620222673205943044223975235050406918441622284402672507485346426442652308981558595417052634575588114208986112286177410880683427351119356371072400856672502359984136874425262426027200053589636924235639130886469045887925261946800435104417878335984981492067074739656091289600643211746067108684979637473350442740353934039903688180140134869184830059981041781953804264661714070724919986928743912404646835434566002231441679490166609686789666344955758725503040122655923492329007080370073589971214745545313193578794382321579128972944760317455055455171025567881089453295293125770984221859585735041679733707225015008680003987274553658385149419347481872698052752774726570869836619757540929960725024371347010614234335118415589787290167274119217915404240924084747395528545052826207132264328268624655527478542123398391688589699405675256949074234034817225779588341431176648222728289190229905209742530505471211179590747718147405067393735510783811007346630675044872261102692288591422411897083495822245619095943144464197631021841191913911016993187572117667385023663295535295722949653295207792108465504842167141045670055545266226672766962849979986448501520536532524999398299629016889641439293592553013521975917063953340873729528620068897565536298073907960723442969073553276508038915537809923800139790547941026046248108671720113629272760519940839770923901408231115837557555125668628775030752231469713153531587621230249370204964204678951298470611965012729206776027659653918259830003264621324876874765580363013109018326170437564805884979506180332477721172655181300377546205251214895606504866961549374269641165169798450750786973541700161398016004387377932227898107041460301873924691144818800652465203758093344988541526048152905843160248420497865819970930291259622846839483633908201699545016795123301106803522760612187306349718843719274178336785119158194063010694151750552326243254977973614976344395491110345707806993432449595501189805357963840756567715992034035817338454964418461343594968825197721380565146436679089750443770640088861971872416888414287512653789170845173369035692172239844462943880700062627161223230181655421960249914603203765273083406157337314291500545844771556129482162880057001223804778258341162265483992064745764018393668868511652273208936840205237529702039915573332679002373736845595209439544195766040444586676414227545871797827577058124936129927297054543673598807593845111824567664338043083464138539020597465345814804428355929190212478823274969407602242408884269594408737686258010791002429328798512882299421566706094678684962991647901968082563383372890664426546183126258103218239411013612844819203206990596731146872657371880118578121855596252862117017369740266731481337783274677600469124522412948425438553985023339535916224518605568364855431245912224057533821219169474383949164030996208845622900917490084714293576145411091297829914441047692148043217293353812967729105751550574199010779200898178591170187546136158078728950310270693902262098185432086022578774333560791222425458843858780852583497599808099494924771918516375130512989256213969817494076756317249199066409434448809158595551213292453117662598844604635045308560494398897652155456387639915289450685314891648480730830166744525571344705638135809033199377004455975058074350655507738639110264709360720247862629110849259898649760769556692942350158603411877919303281303393095623006192316002340691734357225354915495030179268916939630674854366591471045231077979707222257393523449645180504360623616257394443853540401234043815051973104054204488645653456612173312255049057043777820995891473889905028040218480458199992181089594899080909168500277183889229814909077201566814027507417168680386866235378090512846582002026175495281408151768502545628195503669182197840610459499796914608228965372967704173855408745576466988604822852218778555194045178958876029424163682585153335951570258553705858749389099054453830904579132988725467437599199913163607245579399444761848793251460343507102394857487124945784413633819896348341478031063879039243104221571991092373255942554945116808151894537395685809020319021885295120081778518833592505688523644567350096636120837090195355886999835336717424821857244737938429388125349995564901899319109870322911688249019907960440908772071792697061063831145692579018275107525340398016694379511222171880539180282732555439313595095546888029046374250017641583893237336174481840909192507941827550037624842139493945433370925030596142428448644191710432294243271633181634831800323196095194801492546524355210813508241249632028162697690679219268127467927977717447450265718258279410602149437856083124429614022586809101504861250714882066375245379931629229904162158867530348944181064787502867131413862636072775899177925210206684303977151297140172920856627016049376305434441357068466648365718070327031266611363479894344240662674627584912124727955197234300663910705732520963103126235358123787869618683492166279780212878649930202265562141370613226717182004454263473735830153705597079859249507433444443972820152634904206202017205795984837991894189765335493255892612177759407192517522079957579347714149317189885949281122421208693025586927502612134305410487223894057559091952491566127908176667747425097669156872678071138201314158691423466461922942839241886880517916362916931433074075378188044657685605215856512803510796120317571365693608483254373493264980330224955123520369393002863434987246254720163059619569596721976995021670037105024023016150673122731523430512623889981729624541144843435370539743747369774684051260990612218706443167997866541749516533460887851352637409661979422648253654714633113293068205678668590851722256824999169925075048342711223688037834188529120601879296500101215209450559428388199326693456013887567994316426317034189725901103848161326795099639087324962545015025811529280207675716005349734772751515631442856245678931433114968045048522858353499540910942849208837231006102653059896054972307907344039514580169086836160604392715513814694009282195947135075216814458995775691636245288916072458213238094080346655987713513514065136586739552352403597135302086507163430426866966619068022253447023549938851120052996742869856804417460485867295329382152082559103148449126962608201431752567983565894133359622856349180769266091718979894070962275930198186028923284417965451329781811724126370907471047236635629415719981112183860293144067479871288320132740997411705453619884277390640868442057354983421366396864690168605344711317025459444440935468742714272181639988210635847193310234672185456191625989178743476544460352914270546724962802480453994535489184548715724201763758639014085899645762927967742284996923989105103785449269146896604116082175000508264808903031549662947148281573780499725730329456146895335105949848657062005726863499265372837917476117711877853599441359932929598202993819693785028577209184714890135433002295576557801458013738112329754660910218677560034172312513924632694493975890275164781859112548187199940037117749727004545542180096583637658635583585455926542004168294466020976941436917464328508570951846014071266503034934442316984011354021450022720450577475458951318430990337380922980578133618344388294510062908237656187642328714033270637248090459974261774960996262086119336575549475544065265775670764428563968539929300243838324415771280870031315908444356361337546830419831114625938087875514898957647707028562694448469488292157216258373252755959996884034108943511199683539533813885655733181654574466533620534039462752599664777113281139177151896915179179277169217149468041606121293095350917413944233324884540059443909609700537650689745219776905657806498695784999597050447106892723577792870309835372670949656280289873117873657810003570869794469492778141983650510681980107271636779322645385284446100893818934022776137158877100312378046271896126256855544206503443138507349181808639146618088446741189939089932862479264212075782512437168152244919882269948546123197805246523185141773506709341453770030305587477854383084900379506691114875621120110614843844732668665742464326369783176744511807429274457962373369752206381873482106574799291253783992067051591318738046022641348000080604988562021190937268098595409020272457364678422037982782391081335261626096747287590535757879965842552982981272533309286170136268849505789551090314870121306785534052994354492463588600131130131126899293950676356975684973631720670409866334259659431603940000840882716128744531365847710925101892069378983374825306437814900946393980038962909405317127766752028523801883298290261987169951266811526588517665507496163552792847409468028600751092252517415866759619450714224355397412310006387444060066356890790144409953096208341597547276829904711382583240275568751050473973124551218207247254529601706056185907922973136788663839811143910799860888804865803829176620735060705557024602144042881046168511226572006503717801101185527297028072016650130121809403006613422636786081172989161767470313456572109380614413156022933917989723595128556209837096513051223076543043963382439323506919369682802468566172732173412266797268887322280256295032995328492133278591985616361809591351172342072162547324547039056429703980753946680493307219188137884610988409444035803636788251898495669958611163800162145555217785562648753013850549662685639015238070403417535279990476212775536447200344498886351724061420221418226945286099528506902282001606522523091717192299306966182430944238647891322990878826274419267530892284270665449454610651493415394973633896759972830462843142855839363873868319688170999539703916789698297071017607658299949939557357288590113800342851284199022905142705639119688672422987408107029920567776200908203746970822097983828778754318145752076597395406398960778372917065240884377586489291558427235945141647211034089617211401443698685299658993275240898897525719206546264221447245575510882009737521088046422045900032816248938336800313525810919505419093612067968491531084186269730341595128994235526805270835956124281495962775184433429407359851605229732320148191345269752937758484172187983153667291350881885425312919335356470552483199562442421901623302672831849445945931667899604039079099494955325538252015819699613926828320631035747874830072588109517304800454017231480074046255365865764061794215942817111072308508284559473002508506478535497557037066973688958707888392083010615398446004788793914998836533809849761031299451207429918374181959205598178123591891883720326379552300447156649183897126908757865858761268556615332664468372939676726036093739548990935421430850615372429061512478891617053482403379975320038544421548738838813727654762894801569640342305601547123579366502499463038924542052524877862936508543401126090288547298239154757708469328840555817189047322250685097354245864162760287349911272051851541559118690786482542424072997663935396815428477213713459227309461912273817462844289108082979383261241029308354407031934919123338693320294173295791585345986754306067605966350304342597975757136838053936073353475163017319862502615440856163910016122505844947325093100174466682915096506734755272666707772213218637083378186722928521408875033570205369318205577081871538771605871404749048215265160477105018897097014191851760535849388493401920363384808156837194419553488073231206459925525935764664540834848340069691880023570450680199924030029909201020875335679115280818710243650634358991767324809072705976016684055257360737447932532868980069926297042019753775672953533573473293829105392368098546389033703771560571187981152320034879943731098397219036129249090504510367898187244074437156408875907845457373972041529565906416487802286461277475292908945934601233992102420403567233320065014260670054608987631171027378314417962834784928957577241538985817182580492036821151589253672375515185796213993242087508358999391929517072227379048154176402546050328669700410945251956671396714990214144141479768183719493785241690365021935268334572054578083752392585687326159405869834340511316948310759882172155407581877569892934106307031716182235754752354959608448736354670372467403873923094606197576859078215639161701515395339117841236160788738592204454229897831226976850614961186128184067713940198287432195011613134526588296216593081021309317202422526382566801514828219171375374295207230773535236037039145238329479449019950836347696533625814525923722634046219174678629285379212249294586869732475470900710046991700504324122240977667965827296954795566412753918850359118633250114943659694347867202733349567216500855333616687583283269552619870780105929961949652967713051631820220948911538784893045252648784082946707470983849376300982008269786482048751439246965364106043301082738359781737521573885610519969002710644456324603725928865788520065884375577146423967239841023667169520908386862127791544629839115652742868215031813352659732702442598372768071969547124762724751438509568715086060968619682282280398380199032223856265288783580286988026202992367524893858743712592002480612193088691917137060774072773116450130695001729900126812119422444183413809444739079216289910081444284429981182799971570361755857672158954017552552814120642666771590284842218419211605766751368209898480055808961500270967094214473349724081968218180200889834657081202222413332053900029321866284795247801313508704975332995041400575031739193361650472928092023646705947019609757799990930594584115159947396903591088021128971404283490620072893726368422464421283782167929565701242584670422349748269500857716250947419621910954002251446279359806886347674628497500046121842639434164890137095034322464582129755038666432938382446325444416576776449207800052894923842530445004299659255655264439074102258270483484659094359706589956946273693572353646252823997523001356699371305969959919540993161747874036507209247464290057089504810351291333969775621834772695706552301341166288422787853981147069508832362733142787942211569121015565785254564259737483079323997042236318082065128094484849450101028625958853094908320493993684825225082445233680336677705922102579322344334981701743233206233866834505573498360133967636311337087560460365045303867317222942154333690612019199663389956474599147726270516264683732991296885245355051792446799409276251682626029121577543901645253173419697550286722411904414937002870718234414713857798172945214219920108410559740484947431153555151311159468472822448594637583790274003940912159273454202837794366385219336963130378563208672409151726728078453479019798524831624969225189437096841740936045089612909382487304351199828814181775935673350222414721532444684875933135471625947130980205141470747926652423009467742410418842070232965781135896433629522972870521770880022116215140734666201128357569367511975292675239236218591411484983127957320621510518716093213342079065434189126815390252616494096627430634300031020773832779170135780630024092766796313181576128778028191636506720486197874884616201480717188653445521818136242264770227741668282791320260443222666845491967925264788527947220245028597967706682219897018867352770718546956131018967065413359719887677154456341847867595317005491318957395179940461087330097367809870025929745444528275331061815720642036662467222657979318939383703812297198311229165960401096329501906359254615570675057528572331576028515444601592382019505271806934920085696185737450488594784011651395093824987058879836237139279755378556327747683693517378347369730105053382406033494019444929103210701185248927733270327257516875132949609561952509159458729170043782507947089907291216405933127778098834801128782791236917292362160909905428394908553229281919625506109446590951281347988725538530715836821096716113473885046067373807598047668367588822078497665761720515904103911263708806777233616137619956225939480446175350965813196510379352284885750650321514821525506861264038240976946774527496570018712966960396263288648270079901102576924231658401582603049014766321073769744091741978154893437113844463071249745269844028459163496626186778696677217976281892080023379110117160232455911035185750247879576015898973932927815814767797523537308948903701818435295987037910558970544559679845747861059899958764447923461763368545052037710237034281142590598128663378752638487254103644068443860532602887100869117795791043330005274365169134708061715571593495952011162750415557354135565443731326294010538503734323610876870149107149498483753718639885630903725106307792342808542469006324539113058988042245738691332280158425838727580916090353322582382266957072722872670841702562400018224274124948994959066465217449578211123644917867297110333187716503656813434670784163866292974576131831458922652487447543641563219291305772264725177017368510134712818633892444656419368966634542683620737085691626132354046773112269763076147446750535818217604009795249876507401312831566345044292853232702842264123110445759208536872101092367765032981212119412756664107983463756290098311526316695988665928087219060789530996617460274455936043066003418131419741165925957251988382101702119593750443740901228282595135949357051127868766952063638094875263292256044414583182860131412323862829054009067488411120808771422758496021379489499102558135418665491109575300481609549504998573238655057708333915544085847268078335662426544450597028500790622755473261107915011090106201391050493897001258855856628406530686711933826830937834150923040108197144897651808043336068752306527455190287048144581648431882004591618426004823085658037109587083965944945065655822448894878932933775168869709894829441353595935918862664651085798977109764325518371706584836344468985408137904004921886583636015612232344952288151637521891439020219328940975386257675916218550301410241657266018318977865929876507026411115016767311632128389842824212625805483544653907507589434548458372067415864859419516781437993444293194951708932237851760589680367513824607364558941781976025662129426171008848099209897835645846933771250907342835722633295616444045716637118233800424234564303939899545874748354326103739842902469706481581387933841246583075042284104655863986691824679769394299621810694695698579040209899694379102218310248696651019359728897034121604717203345936225983142311194155027686467264305416432193344472344639258153688506081644725439049789375838723485716120210343320116018218568076849751419351137187799948988131499117215220174547148649013798708199067384666713052815375288695537946863136568459245165756829177329817366565473695521506581298505993545306089719781251043322879684608245693835051494884321718624490070440057865864933236871914851064740917862359017604754504266115625241602116212222108896519559602822407465317886915065300659864515394567517613359127528719637202174137627505072056137769580969569443428428601908192116170743876441206428671295205768216299820370155840075213292234413397698201114442877057077270214387607748043664889058233503902012382356908016945538658911787490632284618969631417073500127165757128666410750800398667525086426188001147876282848587344393992812187292538311273298324722767085936270728259809126759454484232177835946497627999013867816529608808448398829127687919665423350730600623985247927031266282241286584147411155922346041485720458374284062083061149614893370055141752948189949218636568723232215768256429648637960557585553162454286884420023881447460620285978223146234385435109524919780907547205067308354660180457047906369556924596141104639843737120714185581862018598132892253054407177590704110645551524239584104091996642231015726334276944842757866346092808536160162725372104503899237143561525072522721761480788164550244712320334896833454052980879846873607605792334589173521232989050940799701139034764219755456440620514949616441445633910525698578174467868262526250030560880680777433729796508530038347303434878069425159543709817610456468700990670322152826083983204308090471677289244899896121624225752043252471623538551854594288608498652698739400776193194558000950758569722952515245849704038076704847983703542485560038691955799017415641121143911080205017797249637167310610316542170745992381799153813751235008984088464889134381184789924739030891430587664084585949292356127450508784299410968354225215103849850219975804059797631435021661970056908910068036068284587317472859381561265868077989790056157049194710815315039327124598508293013759469797381131906899194560303018773955737898059346708574152240034725682605902880007679618663480490712455100202413690045188046434913865677951846846492400655497414106987770760929848606272210445887186954908382184012795707878927036252972092848330344197636148598989804085766048484612107411456961338165573834505428689445483693219269647252213136667845800132482741321440567530135329081344257377324112395480254576131539201642249725803727366179321534133226367358652008767078973150605843907753082542051170942296282696393442961289266968596243201790997496163153573514707962628808975521145937443414534978214841681544349532618841962922583345006347254004647952771937162446089491083222875019885881178984827891784137895825648532877681786923270945449067024481065716461313497964956520175090291159113748879154050809592571088585212139830321749556491571169363540946092655249489380440369055299431746574689655101007574529941063148363279411704919175197437945036623163952044411994666386304334654030254406557708902918928460142222942280593231636442051016194990504922748447377463883179310906434884353311784025991673327993545988939975873354917848994319470594141812552114679510625472381020461960060988308686808843675603678457533945827337145565157232350134777662103795671113669243730107592990305852332622710820627430654135936494412932587220593275208692277802219283608097229363932376317814729379761898694379688097423427450816976231566725523938148019299437618064188793368260011265762710961389451380927725949770487941595016629839470120328184707721110140083226577070050136574287700998728431869832335990315923569725403592490559795769744111811425024843999703217472175668569511999692959567601261219619391797935847696259894369340927650634295696466325658851409181395935615226596549934276779696504691955537595913498320635481216057197666861002146446865559550552230627880065360318337717794745645918667587315907906972884818020255847404361874280415468375162038726790549237968391371885337153252849965726468837993250458459011676999343746270515674470264852773525275215727424151067176067913433509281531371994017043057972204967679854994747763128503989555542574122845918796025049017606300761568086039726467614521421057331512547633077987982307768433198116977691684379560110812582065268214814569979011472027061939243645898857608182135325616647176328156373626897832679352158187960889935547260991718684718391859704297473307561670473476879888500412112446924241765936960230656285983486031305201939803570269003877806687489689698357248177647430075248777388258193233475758096521389490136447397690310247337631653723473445727193778489232442966190046163088195735089348656074978110727342433370818738680223720277448061384418811221624870438549590907944003175379383713720027102784305926290925603724316341087722711427012030566451317880862018122925593495269827242058309873730531549530838608854051806639047317741465074857793506373882058183595110513644425224272536319447741872993225334950497507350457110191842853592187324959238927606681421430986758592276124257881297283273865980824788687031323248781106450445738623461368202801515073047357427434905128786688785436749396827359884344692796439772619686185454001029544501546745468209835760451718212705050031676645478073644185071148307327044752515103593966802504170197726613698921198959114072267100135848757279226419956037303920705444894084112763746384211853925141400587410318561041922558879782307304196684274654254998537620309514226062774351011381686816085344498201916585921265628894236965627183657913653825505050461361258892468035657569324408659739024270794423021447238312551943001108976338401142857749950423464365111296767222675210101828253308781022106966952118327474467787265202580431952936950311580653550664335570287091524127145663860919045863432634338957337090133237304682105599092331077866905736154861947649844091714383510944261286242684285155475718552735002953363266410870804098153572642109121930101448771938000921092697355459970722788624796178984498766984059185201257802461134228001579333604878220920060811088149425453170683518624495862703061944272375646689478540393132345542591128728314103049334927994272906233961532415355398123179233673077500308498375885561143405464076631116004296138917996881569729081712133246973055125499417091252881108124627580761741566086189845564660780206613986267474671773068570866087052864841581258229425914378153499442756599580359873511930337451671576200852419308657408788046916769100028446466315304304198997580096388493267416085750619503569470907723089604778339060974513332635654162264783799028077407134072915555703557308042742473131592417814499508307731212465280399440726307327416976609757735826676515093342520027647668318650743065879799159938496010900738591824404651472131667460670876687758540940139154847465975909895557562475862507457711375501349843206380244125616805541282814544718709709923794823515776497310840717184188235360823578989894924573369431225495600707574506926841027261974279609261796717793197120709273830965263581548075916485792502355801802687678163875993732526408039012689920067701712902054415948031495146705685680364063956962002473631912876549788441434971075149913243436770967878967566196809831722101746648925354166135303463517473984063311971869025218911547448511867575024384083829333912350675440255887628974372358037121475703480083069929219023919841021426923741593982016204876418566755314807460031471548481844756670515999062323326695614961524766940131998713635502343569778248997316211642884053313767856384210582070911036984433343331299879114418760631480870723704411030529385294037930957467683564285172522063274916393049994701635149734314720714385044176119400525124706375074531250985904624798035423075783725683451100145447263239145390295236007093445171591021839380115416157303697477334110718096025495101114360501934419078045441367719545455397439138667042009088171575983395001082243874185335608724606533410110496807750508358820484269173250156269708184843842760010750487326507673421539355709258736921323519304198144465824184071403450341344533377427242888891310457777114235344320952910588549675927009149110812104182749149934000292781500772832486581474519000466748693528483990479923267973839157202846337973115504650162289416847406433857996980613220124999425751329121445376600030467194472727088845449941832570225106572746147709490887777136215820879073011137214168522360765274732271607279979718672318472401662137810104711853752200570956893971327784889565850044323466090481081551889798536837057193096154976076506931725987574265710580583325763570630505145120006205756317584633317373097590698735569779437732962016852071022156360077279488943371397044886411617500822369099279258448805214770266781160117368243099610786081643966852821176834783576610930932884166358802919189031000433365318344121317647866725251688479516623007210285961366070416569755250732597253805731460676011198824947901472140595937350737922297334472953531731980177814138220066241218357362949594013379295472930255770141702549274462754760900620597122887301143024487869230790140243127846136080760447400404443068476631502513167119812614188154824396670208600211335969416155452125377678152916221562064363708734695776192461185987841312456751906842786874911795927073136369175897801926942816616567288107763982033127706696320774265584764689365417125589811848674723700375565226897300030614265187502492655082913475704830064563681974775547641719851555737836252021651857081578256836645120727557155183606074526105146570512583852056630330689712063763236608324400659470196566958837391582010556718992160659706999604224009394766339515711111839350545411333715087229681158881727761673649666333317606409948213089766473696254145424136743864862799939421894931257827406505481811259795621036223473195352459532879158601219895265665512848614394102569775483761227756627492606923189032117921071401261104283709861989742560994913280287263697426474400173125103925386650058543677153417605480444372528784841326192117831877268044204272945771666242563448629627972084792381754212956732420131494800109790184572767646314876689599343299493622025818378742890532412157986679341808965977017334439973270085791392765867912827053741118081552170642620913627035687442634995128073722778884551472576279663485553532227255731543818568782896963877138209288450987078518490963107650929621503585485353618378441417360245422027316723524186481786085629196147447415732279487760492098460262887272392651822567754915746638885313117264319887197286336116149475647976955481441159391588501969434167025281643232100674817959299395790155286715099518730966688725863731118404254956789575038537813599522061495281830990625812206635560115405308959681997533360976789033306957305630627101386707157440147890934714048027966021625244318087674337673348046114353323764419953328519020506575968652378352535042796329766753136944838146853448569563220785689916126564930917201296907357216715659987612560844403063043129344674576036482859593149702650848023374705626032871711085535309698341050447756250845264375435663039443477072688019436549234949324397419941709649408856156852961913636101024924771727611096969155613472059712774110361014283345206077906214958732930022483448678137813864060970322768844813378620623361124694456530233543897023194147242231248785066357675304461757893760230804959229814824525411670579823327998696439022723255050685910548924857415679877650526074433361732687099296231577274123492664922233021938790263319448115919897755019495834397715504372312603692902016804149235989776407064873754680353620309591826263525924246308003529633289782374822637029014054854158930975312025518580200348833920408794272967918709102325966363388817198278185275030181738435647347311487730212712488284451043503197897889505166252484432849612640176882925804475349379470254154791816003735513625494633524372528006091942797737281861974125620972623887518830432579568158802609140269567822643851644363520747203277851310893002968784227987805275440831216383043675930944732693112454831759680220681941224421919815377226933056167828180062124343790436911144289307927154762537699077852621709493430378832570009307382210416623572729899264087880880336288978156893909576229816345197834905870738127915552658754279500306986467119376717732760374276220658312462630634932741410568342738457220893544822496980934320879308045231466627878272339280385522585698668135061545127007445080936764862337160220778637277446871957582344731040668913363459688714809993772821438445706736105871428818889035861213258317052563438223609806700228118814505119396662638473383886518003530903969074314368847387670570424312153270407670984199174736858094119819372455995371305754314601061970402754237317930708488160369603834298169090723025830593256048014343278340000119068859877127300029552034998505533339967577319455454353799153198734602003234539513684480988397832448614097708288320895310976087100653885937695646027841678447378539393279151100685955724212313415145054638691982520277314745507506767813106715927428564808417107466004821776640042718922817012385640788894631129957919828460509176303383464385457706512993398370873404149828203196577804086660971362013344477795405113291983331571805730765589787789744672571042508936591669454395987822374023617534072322266838218789494684280810833340070973879594780568447298983543808817311294341098452618625232347242574896783898690899885130953842921603870884428627833254900622903212928271591276349392279935696180978839791639985431755790528686260832871654093796944037461142723363227611159553580675862371192216066236221738220911131078794756343497011540620899451830575861110979037285009784933427607706733453767628774071138410205281411060214740260977360328486109840982342598610686670801834230470624535732136392822925030066082399301855565439782005498598420028992596924132910569943187940956816002907069576768599753840612841312335415626960478422596527096008076996222941366101760602820017257514149716652150840218352971714666706796653507368565991902467471230884489550541980484023337573597825025645278435773932774946530432277546076267441402975238784451030037798379632232237699545709143249969905780402164751444236123772559116904297473941438879172289513140391023269324203562812987994187467162334639180738528546941756127304932511408708511896324043751319820269072184581735199088127301683360105237907992538194621899785406300430152840172428200778697609979651509757172959620380404956429574148280444786093797538522420005318310365483307542873356955984829486468664219332699467859936837497425384612089736391833099117779318836570399658339082518878000416972794481766608185304236687829024286668340935154177572748901034895031043568321360883201768258178341171633627530021355329444073433850556768144097619445595237239835698021483994244974503367752544665816606299768163692286318481583505433045035357859627129693745230634373944622228428548189019390110416321059834694174057717534333102786105850623543113502177953884831865429719353366651464927592388309777482844187350168913405141527784597048119582151454132139893098602991950387977538946235463131093174724019033270983949122415978509901536927598188739856634946085257291714900232621837898073338550712105969071678083268906592180814320925156630561363832079628042326772766526173713128198622892053003973902030016073871042439134582103012361668430411257504063639076797347986615479960617303665189880590077840746482745237911487466577504414233574022199392021902354033390838425345696953715837725412096539343146419293323411733288108492769293222543851079375390053528131962183190696260744957764853928229203410454900234047372233586783127193407417590601082653378797923972371630611934194975596040699932081047853590285933630844376743475270452791543466721509560049947921817132362895729174544026288370782881769393088258102215905972366960910400810609733860079356999245689874003189438860353134878769440467317103354362000344716419050127777179046201018126166206399000526321824438322183032412167690776197900668503152274981885209527579498126287847743569925788027387984803979983112241800616806173223256725335643141320485146885804514439141607199052928410036029040870363649330230982490894710420287634268163467366025645237482037894590125338819478073988818399724008118365579804978185984422109811089550539800045682662023416269185086336711352739098045231847346389459592984920626567975928766952223269998609393293375246791847800506931953616252511808478750357738109616774472637002061676584141783571849306609837033477827659676274575634160859244319374972856534217813548771151959390882986366357230435803004514793408351060843840853352337791342299799934739781085126583977012831968781164151270255008809939081210732780335785378344631764212372855135731174026808591212279904024801333488780849589733273540317088218535559354791283978581600539527478131157610025795359357865482871956918894976646676678300646744551810997531048194001152258033956817209102348090395606830032543824469190717310854104943306761480731044860860832949798348506425077733687840178608085521700069577645130766271650362058583126651791452755260444847433804999897652991366418081678338875110810696010701340261025322046559257824049613038771935158244968469737010075235090921420151137709434123040785637976645011889735727705831967913339740564398418010305304698893447866636796380773876821339813453470749098826016155761571425319762977775977127471692310174504242078204654549378239243748701547605612855006864463843848823725529863794499120377955696815821930967909156439205938692758869971172910196537176869220042535275264264111830637607592367223368780438017984618442359379171579787887537999513649668541128891933754862067042150679518902714970788983611351099752945372178964299301462898538862790151367161933853619709003367125478847887143645106561585616047635991697215997302402158428760617541202486462694864165924053952620764782017517582130100958731808515119850052302364974532365771549862355650354260377910328196050208751387860182721379722679779922295845701223833473664901227516208146661048380017675221094317327300052820317045646356826888669189369110204633163938851774939621213927214855216240673067132735028832614173195337385406350063272742221008571771615665701141475473560364447555033599232469923800574506487039433300096443659942394858891771511511561801005062573890639545135529327057822988015647729428607253624434416937792447281911478426586447639801601364758528862444575573063504500078702865967476539117927554300085473593743790641479972779874741676170390238530240025654273394096603557362059620730471630426721194665880532053912274219860783795916496402058550626977068282984075136450543569887297212221111719000040765433565415602057860740051191961671178695924879927523242119423833863070918585339977737739348543141265340838454601742373244165403661655856559739592698094287316486453747095244953152033125659464090286127845465629614456850914045035848827203808690125264250780159670296836135675052954229085857803685491915061056772287126965753253159114880031658929434299521962854375467882105065017446792772451020752965773297649758717418402434494021926187551681441907984084834654521236282950598286191793978494324451934693444144768441690975297034171162354768641513720184775119707270409040709109867116671187741367716416057552530542882859684901906452574210011349045888169220579592620375902126097873521462149015901808588293197477654621349307697027471274846009551085062638368678219929094626503771502494789320951884301784688923911715241846816834863369663621395561225613576668998818984731362484143489749535006252849679921766955396775870008897996042135795286527820778492141260151781669473956093638770553587411656421978419099353872138378471809178173951452023507769591602814517735454499551873042965873683889937694225180483585339133985889141990922101945756758390417606983369000167772006303483344609726055655120257480916533564554715203172234515437852904546261077644432190313360080688701491444728663631828192564678397550912680978850739207460523990932889881414720497669856012782152703181184611999508357914199579737388994028869598063911890786778752584239013750464727597246112248509760051780503670433984852711541489771010796486072669852651572981237281980048992493698807931716030397357186381355550910934472680580719044686249790086444979096882777182748867549467621214368398091567383345828788063674278132936064093279799838577719183696885462733161028400719076040352331125312969173791745816252119637310099426755274671085524646352995689880759203347727387839338904138967837758631135528356678432719352928637984642176829132521085419639495897915476814944537157707162567929963211377029284521907198983373457877715247060062313989941255225447751412750347825213788879931613462986331015699400532310198904609099676449909977755993473906803724595536845501516241512865478714138199965545445752726917723715305658792742073064108628024934541142495152447108661951887646875735888583708149424271329505007963070826680292364361568171180214203795918658913997054825288341250447437882967780135634529257221611804724279978660581228615859479510724458001733856392527767997892742391023169673600714105051361861586024948418586956084603361507020892682644124988179917930215484042086941269350914189212130345249325272719708760041900933857202801293269555998666555013583914144077311754829168013510395604893667854595713726563823530350527865469087280325977925137118770460469831686775772119201702278563509610202457218826283224722596149954049608494681651486642617256393256548199888446367318718895448017799399246513959966718909923661291622917546545488871286172224209271055113232856073139277376780886261511035105657096444893739789656416276352672142489875998318480911005658816487031997636178904654669321081669813978881633847107127697684057594546122026770227496061002686060486226940374661637250856657835040315182617656835584638445478254701967278093335650538769580824977197840223121514536468338627482526837446104733251664998867699504976709224869036063732445345220831892832075962862491217698821476936720749143616886497300820612798154137131730689445244939113437255713466051462246246496739754424768943970188400062550433205617824327691206978397786112243220291032346690253530528907682053530766425443760592625468461072354250002938492848676384043202770090734769785233883770791636981271642458182481925120412876685854561136243464472110884343037101744598059416553731473960929525321293642455912513897039167631725025673905930579683529346361185467411602445947282482659514089827811074595098983603021167180498177150100569908804803509662733239980981529739566607069699625435510864512957125397493884489684340063983764876082115074825374810942224651298710307204392496516296557842890821878473374942688651352291220664024407167279541264715145683009275891448042012466048575151159529759639540222905911040426843829148007902056009880279033367690506911400786470175971361057755006796300594702086215275079183085621582063631175895099287001859369704390515827686624138079476614110273644102550244877425164624993595679191492699165225971434715532463057661222688824489780095927235276786979686393910998217949861851389897819644534362648521962287666520988960144888607385081734797705582998121846311698966627266943769268742548338328742248797455811387663723788077166377831617556129027813534694504365066807270017304758429299068902418861382548877609193338623566503488395238480329446030122929733035755288758753589493368162814339995851350908309871366935775609590181235482837058444263731788084413851758974163393701702588889528162021086711734084885594208385534218477607366657577433103956081465115391775139736373803283759615214596124694910419212780838081476792971964163463414113974951622011470830401920448536467719868521715490534884711603890048627173516839399256586636834829920684607591641882158901139412493117337347773058727044806692962242910498785708660683473576521849150182078442977543557549214743419393466829907746406983905102308671206379183939385191436421616326673992973590469671172416699105766813403348712681923761181107785998285527184617164764199638039758681482044881232451739841877160254451563522832022234995811610018676547314665470200309272554776644960291727323190720527888914679807827406149845525569577726991545522059916928260793191497353644188743134851353758936267636881901664293347874818535545532859160059153003697571313400043643587609788157376655983446704715926852363023481769988324413413209719240485326123510775031050797389041077572777295354063535490388971700862461236210085019974560114727849684969473124980790325695890911770499969881552111379545300807593354659332759908407513977197131720456825723583236253416052174321003290270041768899080968183041174835641923787379266732312017066359752137334437703117861062298186009546561578105880912162203640247039620388998023062772416085284889726763131863380041308155175620427166868199632328530182873220477847383166443500922854762452486342632622493749927308160466416393938972884190153294905944383921166857476408533314075385122327623604240239441752223743647705665735156697376374170567287424760613703416688517046540777989981738178167067904430300403150712490033917010394063309985811959918039934420382424731922542901910377887011195977267500400750927226883623464022762829797164027996217724555040335875016677930531385726674306213651826396668640670885745741355844011108903546332466176476916305144267484821689692529913118420531966486882286705954482186384315302350939464935961026429211538297048054635197109812458889956247467098217785187467092208408743681758274134114939384009030585446736581768726428307298682138327038622322983759112850112262819396231773558275561440195462463514238875902403538230676252193869878930361383702416613550647844308475112285257532919938309154403008056774313560887417010032507493428550690007719266269762334488533108936765512332055867496949266263818254277691347093376442160871425121665388216178030552319093114384280210916346285754026543736092596611126582072116112410064645187538102152376845970932696885996386905328980074647630334281824926669219652583414797786235516737448887671112797895808485136997836395414253538381443467779138620109324155765302241684299472254185088359283945360437141666503315441336306209126603116954739781546042773538060439680070046600697008825149428325428057887724115546631927744876239286537693045394205119644500422586419120680139250655825540369601624633161636347801769768217358197671922264986841515015364140734982262377895203964503672478363880524959711486866484908283237413735460321282449436747070453061159883731490012268223024047554693143869332935769290175451821319139521734214941352683383762405560624930003398150340728168326379600720695567403306087381169080927491333139634268927877795585384633706001350847486725373687691607206624681037564554884524971630468675764620136959197635322439421507687114925183574682098621212801824948814095817110398346748581650625131535781071806192183485341726316872922916288704189709302630130759984822663787206125865717343122199817895150761215311106703238197266265656487874864083202387815708419147604100345312513422556425010916605214782794629561311832374286339792843976478330215908156426651660263268773543580068962440439097293494039186333467825492874760951313744162768037193322617130137354127009127014267294510372171828241410321362118701120167329323781167111292136511333822256832855435495712968163382492617030881238455914729524671175011538827428439775388711634800959521708862031252691905228923645251438925311413322849644050183714437606238951014928064961083862230366191836385904719965701796467797309138256530626640402621056150800949912620902749620683072564137742644074665921546086882784437019968188815544117978002892336798997820913664127197202804766979471849380709928340716132548319934627273356239394976057103792003560237608982860185544303882971595491447055461527607097509568710622394042117881277354489898655303142868999302068732078633120892658132246579110983997712180670189230390294197959422222946220258471147069533660526927520723656696007287124675237260804557549920721338141715757508157238790636825320359168338016297913808576856983404037523089088397126582508690785373945092551897138633791207589297090721935971249160963932339570923511368210422806163198813911451582430186149671914589393939135033926521657583741058596742538033355896193636617086043777858125527559768839908080981954469001041555374233112347292533074701387776935562328447942750987404280117245643964697284800672010247854843019202230985613092056536652458581339707415097245394344669217152003412763621373099498259168619608787102234499366761904225171393996087805962811832917988824700967674538666455728650300242128292214468019218430344842578384848893703666060471343376279622126866470324529628276209960010179556579521453835037080675731283040665893513459664084599058815233540216275151989165878646288221433360601746003483395801852419135886704852836576163043331673771177228146202854491084069825387384158502478965028614650350690437327579597541215675256832378842424369900152030729175809569723339764690889157080356881951890869345612679745408671541554511282000933837551948210336108172388342670713838035188371704776234098418836216793895012082420404920038102148584548797956942422201164733612319598010007999045630507346815215574724827398949211101707205702197191763031740052682518219090444113136140569239947423990700715014732813001931640181563199019469297955557356750302861651995451518591246303196789722136533547841020342393318482109810591206809975142939136650340599242666686240337323235317673081262129790257967992240242996099475059223627288398013336057039899254257339170446946236703522877143635304837962034579383223068850250093777823011196908401908490166865219323873170555069786741663710100559065328053701159051485054443964151097337571839603555544619516958218384284483995997226691269180239344132437671829603655117643679720009499053652459420446700262292627356314705730927019051575513613020696098621248393270050066738996185050246093972074878683306100106233627428477646627977936424024321674628238680804695022218484195197411107543804621030043420183283014054500437060032592407299465260666823168829450998617330707096512508147419588950855513557007639248409804031707375138828520386875076674184415349688377052543806295802432875694722790810837599575929417215900670865207033654972126828820546174351199405559493772490899555595693405575418717466445760514193991614052245833487588032380700932666753540804841821783216774688992676362223357458977202505741168017517121431212918135747383620064744035999383825836060448262615553540541426126934622052852830663510404617547880673418932646376842282055086198967458363864158418308031046822244941930029881168871324372268861378018023826884221495269659864382865926562945827681565982077477285737701143888267129569500408898182254271358459647014789694451095584552050805040903106391155899769884201125809478724024417238431640513294805698919003468885057131459714123145010935904652990892376386394896454112662890488369046745495310914513103215647655631580833730055547869438562051187876972547285541411555723451892916892029646801982429320727984017611956764902028936379331513766996590082497473509086700261426766483099617405310962884554128667141461613713740858840318563445629504389171765332691563274797995395209337650411746418131980354636898576101572675058106177292757025795338353529301380208236213776674366592189592102517340643643900633718185455716686703190337220090548301465384152735835075449514322022525683071722859552929606241699882033220893286438599430652182493294653464689808670215759033180643134286579456523475891472336062945636171166295578877561966079723310473422400697315185223575400611554597867877411865655197907602534135286515788549066464222698381927042100196719901494285606387269553229196838351358040765944247526562883223452907540719487541015906057387635290511137082765054018206874202413840448185019824183084325241297179447914972303129621857129623181964776565767918790132352415765176198671442710542140242047660234334390109618556495124657588992906248275399100882771063764615564851653839479308899590997766332138919949637828360268950669011262965826272168422071220603794593951250783649936739981680893526036448756467379878393786301722327796743418685895217374849192056619904544733742357916935080302332920867290339196025119343299307532885692319650803317243092707729821868774954755920684175581604469443979025136946450065301512799255881699461105084981318589892242568435660083192384844464089407088951142419418727329990558650366111984421790652314698175670865112060803279051431463864602622660206653946807475646905961586896949730695989717864423641853930221232977108394124764535834175490585156807049918690908457909493855048972815612069030461925915678992958872766754468930159741021796789065918983819988796555862972640908398606691413659812715507588514589513632168302418350670976204987246640197093529010321340556229703168273332481077199772458821632292988732252287365226436726748260791126557637345262085156327896675255485030568100951806367460230756172271514511763036190045896052308792141857682032679723648032470412886407622699132964044748459335071655781591561368364306962494081429537622038154167310323294938289465326771973482601595926559113854852461245437872909925160197477011713180300335744918731846771708741782673043725790603115185237185269520363251261428244684435122783074536547647513821604887937154727213049296844359015939954608544396568171467891962457013267112386577902945317489328427934713101326994417892219713835674975886130557131452351374361703222966989544707222081903130862654469574774101458114789762385538678500043014275153934492971540322053026182724626870971741129381740460549655170656974954855870415794016430290077830787444324330420080201393185553626472765020184658247921312252339566430097940129895252358792590471468676344842962816806690435516817624163790703554213510870227534303605428766452809066703152739483054101262536405664022250392229042762229667516799318580339681857821091028647800441091824300274564341714916253451016629992716114265471671926943659156049205406787362304551379256653607880236821855884514731386595150381956673120164112418065862486560833866718192725574693673054301387432118137393647348137592967384804059795641427507041711202151341604098812853153774853520295875611710199998601149008106436719479658196124900867757388633503373505731953239119580712423356350455513118300358622109265445988476933339566638434821296057684199324002658116632821461495848427119291865012772576501856236353212259741268265512762119143072678336196350162350164805475045344416552348217389694302810643709801475970894834424167862398592928080436204048637350764252174626027532101251529793493994686953067453681404940501943045506520015806910886391795584804415085273690119270648103138337118233552397655774089296590251893131319951502177120204726876572240670539903867967062040995361432935180088586084118339190929923496165710428501148334457188558600500946140918757186383894728960568427690580080324616939900401429142963573381790862621832248965257957150536258205544122957948986064833935343079474643401055659253663952879606645039996811737513874868336226061396638831775435719021241730999543033602843361621056300028452639394958417744179001869164030860303498921586624129646944503341999527612329367446667020613669636101473077261466472168401656466812075487394297401427519707747513199563605528790696479934591375211893212488460157035064348488263148396545732839235670667372881496613677784468327835921783841191127195541666270032813274201993132934209170166184445513019283621355355009248441281585252062103071006345492923237227718197037148292405715639853863349974525026094720866748897691539696082562632910278567291823856069014626324364841361742911205727827891691420738354902816470038608246523850850409215300494693191338329657161213972870195160881376447174884593490822151992601040472776786758985398809376238155520151060647657155061978810746418537298099203711219313037540960232544886728725404932880789479843224623341403928551350208293445185714057515657582427374584187329051381842981199603116850600383915902976539839511268877781305526675016082281006084208686283421642019216226856935253521748088447173347705794481798077373201644634730714232196789751640241268999162566613618034759995115932855598784326336501297895143240364810267759651503889385897927435374628319001160240215603300193377215109284847180058852965086548551952977746232208984907910910224198781676350275103788335739420453706416610190000966106212467288614355522222498632527559760761262181741033705130413734779839107688825822981665861869231073513581982364095638644345214054404461721799217846376194230700770342636667068757188908414722144307325122151706074892678606759743651027473559209519966717536302640462914588771640606680054904846606671574786763423130341805822526089753379428729292994245669340335228807475864841297100753197841465227700211926379057194097725543486128540949004053414374808712326744417731384079030088923650057668703706724325655959406347021368384451503734162623459902063661393849643429764622138085737214433078619918844490444633145306455500241516993459164571348254207192910140275243525036560405309868166725551849178219652522629562224279166851132023639415248461112734262888524705189455387677364748388251402252030246142293629136892287512471439067168458876342420473778610246116384056737255993261639521408040835901756149812311395066340688441668404590814177277899878597201076124684030922623564181451563242346348736841838625451061454357074039767016989645277999647481678582040667709659205526072397415537723764843074619396316780641040437428511443105611707738829441921843320191090755604531094264878388584918623734445945361877250184369162997969776187526235745492165597008053153388716460462567597070601879756795438803358039429370385389286789498541811550662190664153567864472563353166282777992414702534454134151670525132405706350856941736056782135722240184928504550002181487905999508080855851496022902195921284910569961696872329530186275098724545488694164715904005485619600130277923762270946210140046670754626127271858632197532151518280325177820106894834662199370855625187549125538270931726120524859513647768439296849574409067670925858929110312940590134821686891762590367788828206905300507039228426057668463836855500205822073045027962681775985755501834008730636324085286467070489565470960490664747520182055817188368329668734978265723111433989287621920694334184923955925529167714530892162702988432242204964588252512266286775941390785912663495130901790885542260150346460699181328951162458982454708676707406750643436112813370898455404638958666661543435850419396011395283503120801310284375089938150079661646234896977424630843563985370327912566360472159731319280720120632134318070817316926943168374496390290813342078201186535255859305958230043493197237737214618849498798684354838131911743164479015940680515418951550744594967472748374233444392572055917915298652283468479164117683218395359535701647501424125956761545667927369834810606375470278113923180922123892534981022388488877483028754040490841797839246004319848120966600721078829379866230330185086546775756954641812336856841571586542589650674907597790707987320776801968332019025346459682511429271864814504294876784645763540296442694310453791793357734408154421767331822989279824340663932703735902327655708032613363637518626580395695494287736393007655760519156094571837420710870796898324464944685171107797870744835999914573048590506707132946127328499337311869074779988479250615220862020572210314329382467808288825283179325021243720684253347599052392360331354972487372175961577532809882716188135288250485387454575185279785172913784830695335648933087546929589894128102132549735450173493406145869003589805457483626668222387064783190269328764905031241915259549227857357713492961754988469187666127163801502745737282730944544281421988432682082284098866946888243630652126825426303069192735256102920942034006399882708496030922914000587692421071435828361452020346725369930591454821774501570955587264628188117159143977803625872047332593777547829688218647526222115178867462301490161518377433002223949286851874893991354147688843040071837720327520309401145257081780306972141588386974207647216780569886935136238041511811862507130272073293445864006778187266320662084445245803369496779198322376110052957030438180603654775804328190586494289148471039829096203294368310109455206935863251830315270073786430328857360997891510174444395987617349734324127985148807495465802806771778167593737258893784779978075354251190727276649448377023096570480293515871975174746892656270201437774735614835495996397407651824076318859293921043580573743209269254970597390907593638320065489405951628208644666070645474530030399166530822666992463398677359211913704002816059329828379692334331210686376713060632656560765960096626754818350347771825836216076260437630827842488192475374001625518869553852296606555904927003187106589309808791004174501280256142666408762144969192715850564806539676188806983663465134560251355814920601558237375987311144710788749674360227913439499292077822956253134983782036156673443261155779860177712265534786786559385293325715871255872552672858296481323580127345143607715842734330979446841688939492996955153184603901649478381886708915594623299361151506568369768908155199501810683311759070611765452735766086419084285951192581523201843717448188168642396821211010585684644733340979127079841076843681293491921185249758746240685502696188182383663086259121081091795743546420088680249238014958583655394873261530339445622847686523702876603137405218064671144789863803793135993600528735390063210939277985147344170201797126078930686684432741852293291303917107606840760105169392507470809825896841096355984248277024311943277882489123913149294613250956375314043086889168904893814727592506015711355559075804851991278478876593710250905126408121898048063707176341879485047875633370009268222844186329025935919640475928500499468564887232405587271175237627965630452679639260776821252218697955628030843070899899197344709835685076613202318100872365043853973718404632413138357763546656802861362159487053376639419854189990408937715684523567597421521420651965259276930582018475705562301415156559952188590199824836445817521810247308257464224530120384144514081350777201936390929509960325053058625956610096282915076694302493739594889203019137200231536552184647469387426641635194242977155342628623049915956381683413573306727802911989217449000269741995632389115924163675760231027491607531355403920315573558025284814088718538269307793112108180342153328618520145302356146276104040564363946548283027211481974053906337763900745511382105233585109569075544808958356504917401971785471763701675156190917072385949561320436844349401477694543628708079519287235542949351164335158313824801590349009242083349808148880534372074468639608472217218077415631038317316902678706382648991160535998185325290650989161948905531588413562050212774498414135749084820047642190960075884609245712742091062853095792431214131125882312771374276608191355851330948074592624459952108310063781076010839923100947294802926596510536952844099586697673360378972238380719274623551812064949990782744756122735242366377924704538024107993222283794964999911764959151342666983184028712984429777830614858308482376448465783091855657351288894514656918302498670092708394356968298868126737413049785789767251914092121362270053833882399539200778248903663018780363107018548463267199852795173833793642246916806154838758549141675165780496211580562810678111441836058424721035645971779806561745073219758712354738900956739282965144031445282867473804782290944711178165948459708111240870518388014098645074682858755171618017644105510805586881560268581069256112854316169311491490379767239935512688496583721251648566759054597081433583925707105792079494346171945499604527960144353456153126875973353988857408541326046886120120650822638209881250310288979976691018686045965619818529242291090328154908495589215190573877454727500279660062355853005000379163019893982788841988546850721680885350528448419391997682546493930836259029888611097269274817349623003017591987555309324118538311226717979570894513664126084780907136669834581196506377729824227258861443905740108411645701091824838048506233567163958088273581836158223993245545566720290845375001297763221930086953848721864202077428119253904699608655907192465436442995408808812567743663874573253115867189342237101413935545054690605343859618347062471708731303147240420164777595768955455644262121455886348097341048203855040292716001333432264582122042888639516359251398411336291731606691927436447824141818098486571897448194599895591675165689494897428130134302451331579776559475250292243239108310046337664800380943248541843712194716901033557102922565409706411677218239630097429647165679332976586899393262040119912588220879173945364378617679958660611521413611026399172425072901230385250327209535963298269558412865691877868396524145894279334256798324316998718528483926998536391049733544961328753543161674499353737107151480320552229525188030157946714193627213689412315600424604245630654440241574496894669981757488264932229880450270594410371144318992406501566926358629819896349330716355102256231066013084096597511856475794251367226723738067355634590161642920085603693177238664813500985381795707147142165260879106926363078189546585615109710781505858768248325699140946052091224973531287306611672410295326581507845361329559201958765658106352679354892437234351930349011754622610044892766698844907832958079375961672478542138412857613574904940758451733796969863351172789026176471972596228714604012040743133297070437692257026628404648688197321209187462124903893055779319752374102172084409807817522552327260744507020902014979767151706233254136700415993736916761559601191605348537161853717656819671672231978348625177876328815866168429309988268371403815922105950492580606475348459791550479926350444884979355080469377623458124096670630084279033732968045384029989893256985303003417921375997545383611702518308351169287184431058032647834938808988572776243517837240019597619378593329238856311965925538400180893843190566884942164762797190340125779355799385395456750240879654013983709043356155647602509884900223287443858204109820900033166957772530604194530340086699465218560824360103800808896143115385502015298574243699762076033948457940357205548179026652415097953580949798832969778723183214788044905082590744117411502615306186047486802409763673979819373804366377014474046078629121119851370363131773343676120706524670448863523168521598722873460468941310372825355928991447908279129738880247565191131204688027528860782949983229730301412124350941939196086280928276265836959107583116896210618150595043694397616046366583717045145967497750239383119913859083500108907953911928252003820317635915540032088673222616762689317742555241699202552261549867521933510141789057739747838597143207570608774474889483514294716006418910888490959677465798672052619504339007619169494619688998396921814204318587392934277232392095962559898762770271458359199665600917061574131478700453828070573595576694850367367678966455404930326043621228623847875166194666249230490999556049604529140936091322556098265045589346897858466956703760051254271522735045546253194430354146761783616926456220261393679234477684035452526993606281376218973543186406926125246851491057344341105332442213135557786703779674963010304471273555248144822267169292092424730603421794807251015926962315183752288708152205284497142988326819250873524803222870022968576244378810475936393740675027979546544437497963618820303277400257235014699691104518207223365790187661657007840110378759401417168894517422892814906698553511634935644149822247709829743972462095049675144945777266176282450424111460882186649690071187421387741739814395206026151237804166766691655865087092697056656959676560879300580855685814751613726075338668968012860328432238796869114357836018530511920803013548954490635149275564515018923912442589315100668301170080664909409997859310892943742141117200478043744449589257211914774020708015107683349710515555457956373535896589170305276299320238390483340434521331626938777328105738408227938219977422244597346534623646243791863827807972747535261488887426857814366871126094373164868843405383402009040765716604721292267745024818304968861129930459022897717062386752537412417723739276282508266358286977329100231772578817651289551776076780460526076464980638948351055944027073110691623104570801544537893522321019985343199034848315463340434585105903830608203013865450128497979277889263378778319223515168643471668118448437991216379087844140450169154742249063419476393767391145606344455391992730802135554475437121516091966915615343204033367193972424002831948516475677282886476186788826163682548353732048294859068118618354105100028431464884533605782677332742380892921373380401411548087518786890311264450139018273038040526700464683472692858802878989061092262977775656292918429859776228734932031863367710369245980527757515981897697056284340579561559694684788787980961693707242184950322853748000949783677511986386743117512242893086361929718615403745876214409813690666538099317749919813313816936060745826887091410957687468664730040343840506483434839229359241737004147410000507181699680703670485905195066183853719061649184725335643445421222822447526631368538711497169484959265338374153380866354878048252042052232232252735866958776823580467277696119751641874255787418838936299999566307681683410662724274330581970560023375500252048038017666633948465505753887551119395286945711286113530696143508330878072426152515403515539551490855364131179273976035652250708366199451702860944796261018778180470187870745611927452847630402687747223917255621589402328892604584144743549006252282842204145100139770301257585594937158958672270719788269047191200870101782626540624575930461963302441010040426949387235216488330351997338351981089393205755834351669670456262087593579806979233378473372632852922293043195744568863117182953461401633384357557281941251670127598746505927044533898203026687153166483871845863682036658685218282374677333518716248237262200530988338420764821466947919043244823212070331399438590586269079902736620469290433236260074088532951617594958531255067244823682073521586752203931445155222762457045054088786277999184188313150747985157912028404492761834491804333901290221283752912645875093057832664941452165509881640716842489886891086915743554960366269412260536511437271439357036056788117333464961830656338677253671823901144280938019968217135845110406689275827655629345139898216565973850446881295335447717108038091374569806866808445165527089910407445425485200782314768896491237467804458763763267372371892226804353633096457601052635798957217938866767872955566129170278901231866430719355310263566712681204915312361769790621277216610275321699917066138369140471847824089158763547300719401703762675380199458108721950136353018750715338736550194672783098643510228412201205053644095457576354600048918004734102053554859121344182032687036047616665882637474211021836598878974173935204020289257191416877195668509590554036505834679116025666554309235831713223963139686323493675649388967086070608224792926939912263099268010683681441777606541324735242510363912142490514769196951092257633511395356646482114288470870891973022631040846615195400526887048651401912034710912612455713939050412812279554628705678842555300708924083769560261013666734011258234242217087234923339312702872347386229869769125759974697311017712536980193632647589513547004347606404843662656103163956132327986954006315764012750624018025587909706160919504266219180813811184249570107823396594252220313240006338723377464428898377322460087542953784256668443999304733008539956969448186706396560485459846618789840309263976611582228462813452490129240348958092029228512334048366038218078122129621880308610384815542314172749750370219242967793754739528876064900086903215040467752805447679454036752272381829051790200230963354139029138939380334589801588784779771159272058044593082884066057428069815410389029742771738226965044394661567200043932679179204849449274216908771045558651167734998598544004467253111716877075430800364572123938222811058409486504141197740215894318250406760921978033616566878832746670170128145018282779529419897203822837189684605632934953380091458789951913833531960284335909805154834125327707707513965635981595377529480592579566151723015789358603555468438567967693772766041867032840705607236352196474109331875893350701264436543515576574097378229983014415241531160308403866711872231664782713243296439003624259177156283493785179230732816559496378152740433936152611698927592080456298976476125367006230818938560076257938629268023073965257706156753805553426056901044317260002583153418931252081964152143655254172885910851561557161666513413123413808563904480535385497671777824713546129111052871679009446014784153797603343388196552617232744942079325471488195197008815356813896639725777432405350339267496955447397737581513681307159780200443911306071821817202859605339001985386150809552480312227128069256956175349124534966541934975208038127179909698827366984174779964821552908831601813792139666896619210325871900848002951945719962245840022744191676948301586393175385561490715245539928379943061228056277784127475708717228878380508773581384634880649122454161897942558414671616589603879516568290876263712847124076148664331623086261639151632509387084438994690394528618902328277727659171492328185035716569182440663523173288299108902764944473687262371458955003486835978132996557895991744492368182919551666783719479169236481288253854815260628137772878291894304651073762626073385528035824060978779323679440651226397024733799411756292652138769622592187814447322308958582438448481678398900360129979002048755173381733621563998999361203483637765202031305227710627728389687860263683050112233087373911259893760614471219299802917921203933027670876565007393172178154561987474753277478307566680378350204445480575708383327654068407739265150442648149501323282239219042990662586488302216337056555995053878169635003747639585791756607208785160097247426906871216278892528848054878505281241764607548246970833143424042321120742034860043809725640038923993500784865853960790818640096010883456036808638138043094365807344327005519231322038694892070007140917861867114358084435435116657348299222605395188667221329239410469634701281810580796613213803760123675660657138679916109621213334235225406530713586473783239775203062362464114943748059023477243405750101680051103957392878986258816408119375452381658678997198622894732109244364820992257240552334486935134240835465786777630262390971885222209733354025178689218306601375777279041489220532957878022256885169541595756531997182487553897865246013153350840605924399687204401161940804141937167022876304273521412258996280567661272210068148108665396833573662290176457241101067313804238774836916636619399528525874346187630765808938025327651188590569734643808631042109011811594884118471655179461129971187419359928659641568816466852604224843102503590791496953059748456299691230506400207832215089977820231154808128810164118929292734904030375110580593596490144858504254063276321469418299181181436617259989046769509997995342790943953736944119618621693297619041610824357157715119219891323986750800877289552926855309684241632154662752142327298142039903188341035282559110879514637093107662761267877805872959988880034792972652827745069314420327620523527423866392829006171750599866000730704773830666803769222259955219143752299750349967956818756752304317047349876072107222153028464580889566255826098256940409636327250919220596549254213081050335488388092575717933020265522034959099899314330770421164286195439652791500995932808352012558064427859934148974805136232808462242617961622751218280959272928714157970874414569588728568935926415516704818302137561651786921734278454208633878157669519505621205211601897726845092883420329893730142629299758890749085298847980360808374706579582954182908266016872023900549936452908281916224119667748247539371608236550029145452371765290172436198415115477559693010101022885323292478669573664769025373103891689451965058063459093529480409285693548254481578156593985680082444341500739712921128742934014963834461641824789555839591511591203715445126996986100522474469622278178094018675359786336604801580313403787226851596319759042579543309810316845936971798679025518566678925008405176283162648027146406557824353029002322927486340846215568445790320254945014158716468708388974560107730429993864405090948889439422110472769490943720653193779028859456703491717130288140431554177434349260315249590688166236058703300064950011252373426392181053214182490042197326558797217401211880547764086356730331448873129595637091150724789362614190040896363813591285008578445969667668116264304338489163983386421287896384184575009995418191992008456188983019312744806266705392552060994930782650051382356908799488692202423885745132074288435745580595769901671994098894984407508772807433990706168216481660838704314983411158083103340713717222283077465014185469751833530794253924376199991975731171249842432599833456200140685469312427290138727509818134472768786469049294445126028315641170252367656492480418743219526848231805036322271727403929794718808420677933814191717588034198676430751408387632959749534235434572497402678058376925692623024425032327875736319108421822843731759469720361716851798206214536036025888034220819802474472583805990387498133882130765751379128712070103699484294587285265765628698929352231271933398990359568325675684913678921773983281178555053840049436630798279506895158789057207970046845498611944965866885625533146646357750543368206751417162250193840756714358392587325803047818037872018290503227004018226326281658575533775964288727042718270571458087624930837960654604178059076421913787804136890010722344914234592733857593839222194471689261885652427843250733202323544502318981727188723608647270743400108884275266643588838361594198055840873010661379093113313636911603137614280047120472797135277674039081949199426535337806804536359052167710209262303517926289391989982881947238888288361371680089093164325646367397699138630472046982682345817541004066465686623821713276339296152099461934849179380869425853352695288344652359360399023302250131177603513549116077961933509566813513530068794850301393843176572033113025708380650749012124114268495458029416795615014919600763852834078799019907451105587746385730508457163727787150473288725305787971000246016868426826952323264293530002235734762109166690491993749249149306792335123025857669852957990038673831564333216419561114708949319717614809468164971299670347463297027180363221940103295204350588940375449950484370955375776215144406883561776353741878083230086048418312508950593402970427942298937126778530832354445909033947055998846765824188405157209140581305009387568929106680601692960606720311670994062144134523813941568311849319532055718894924855819864449108617661343025536855103337347372231681629461883047831687190793702092264191080856129221854653286168713372409458748587331977279592438274667359923777791344929025324599818219692934283533965988390257463076773605565983928931141287650665666185951546227103996983317442294874591243717125389733737993982255173573681057853888701843728083089295442981076161618451807862198734534511068674879775907687831324309769694397191358794603255949679609046210877794690085706681113879002469841778520181567735138220285274622264029114476378323753440461359775554273069753913008405802465782925635138070080901470410827549150511184421187700163280806423628995011369776608322715633072560634828049786295921217489887036702593303072195026445072795185602658485267836240486746551615716430185817679617130590615627034970740094721585829551309554644533009766877992623734163180364150092041551609360985291921042084415769594348089698511327024737609753990582974444855868956685514192694908615211462935114305702616325651225055764366088772890786603761460022584961583024604463664237112563773588226144167501670872700087151579293198325355580948647461264406000923705752643167557312753748146960688336192162459260292336554907060031665464494793523768666348408797323359079467803368067627786965991351200366101289893377022728434342489261548367792868832689545130601570983821787638328010437001572891375781404144174024584508623566082520093798952684258012885995630538893359006981856083355336311498888800995763728099035521934380940017807533018273443447288265304031759646617725058556930812328046280542297444226785779340467791852323379940377566242285917762368528037056950329128929660703885214326651793550742556269737236454783379263589081043512499562661425216137383420188379074758447828674676010547209028812457917079445093656283931878919145395557721875675672261485061406160668559170071063677190337222917543857373000502189558847743423993623009656819266958383352768644758581588865746308931083671095820350036753326143861079222616544225361531078150126708358219622760517215316321545986787868571435023919196171771156776564250243471450126193016566541822287827576677307246074164885934469178402027597640284795157708934620266819188874319755146463899452422717990138636652344648692963743138302169477666077170787578536164150080491881126134241991737011003339725671921335835955509444966984626930019395442920673845083293878429081461564507752268224209362222102165424357461238885756621329251789636496023354477564341521026173566000817341333755899375081249953703498283412717837737767670009432610118958036067981476594658643526615102124987674157512427184393974007237639973317375089878014594087652803559128569723189626290508804940743052749591656557383272492190959693293558992094806102408199735371232188388372681231710923762702214491740701689755378228791044697046990282977633679263723794566657110530733233088939824202361697756345503585256588654780475609380585433332016957289204074290465121637611491640391260423394922253055475116881539235180363095046376881921083145166433512422734340020730407718657053017593783118233241041905066116568925777855357047730041092658083437489253411265984374277432920661327289154996288284256248914177346298916470814373785553307315555622581103502975349180412977058519074744863249421911884364717755326957514945646142110342112256430520054208853727638299477675118797325846238252409162506596978848589444834595461616985763643325465452412978247283583968773636377816048148463980086062562819500382608928931324426960114926942677390982742872430074135039836496589515558894923455323467106030636954639463677431887906738166036231426367802566401517005344306776178037557755793929965785544302466267879360549774311531012393825096050893350427389360332672402120110374159111274378832210035284271165329111784729026430418195353325591896757678580717271755086535148290597005705357153725708359541108853035662020568934207322818369900025742052132191638582477809561833269344301934979408889166774486929521253411667225402178405721496616688552929180692476469611808375000242999365176929834235938285102841453572888652230942196643520700661875589093455623110005780096712152944486036287756354366650420859131143349110872463032867675375221526448131314435585160521402147229871928163905090049039337861712675486084930458417972392938599936902347766985732472001123097735799900831069144216173617803012815059296439887898534868217312478650489137606224716294532453871898622456264663861255987445803530919638099850205540119298071915267503412452102782555918394196810259917843883668540309294689128748731539802286860139605165763850892387929479822420803858499578793773856949826507316935762314805809747542288898868854054002634764244509810032593346120265604228895308450396110522873553833810051665086017975297770141317593236360874160046587445930154998772567400951671471786453404353769379850357623904824980954536157854606564210932414998093177137601223335034880781099849925567110867949177758917669281114805964134543052572883297088603046516941328148588106562960818804986595605248362583608824234410644119001813670842714564146486161476935008372695029989604739140431994556100495303277298209685033470792618942570956511378370159071082930816807833548198718694146534764819776832663581983565704264542671381487802638936127202830098300225348765881165622949328236099771523740068575643302539518298563174439775598939021828487623380123918733416873685285984920079909070602812286631168061511361090004989857836128462199373043002904537342170552153663835004804542086254440325764526183669546539944324177227075107795461071975090539919488966020438025920395602938241672767088197567464537114801725924420521701021547563514171961741751517525886176538504616012693717144643610000223153768108612153799205419845156023183189545596618141197191752605877513307314238897532732994257236566315749726489297788686962912199257114230740188604917249602500662105165746054057139139551696913924053191337780889087639578387651016990746067023042094879369046897793980857572600645052246200339652864557080550988910129108500551845985756748945838623202903355971763706006042085810865184494114923787773252040626071439620523899790268627013296435315681094789114320099240781264240356449498971920433358716173436471591881831575156986550783914882556860902030968888323948605373180518270088079154998846972270556781491289762385660791835925653921948207531382547557941766080154665244410773975859487155701303006690278511963015506706783440111962490213992758185328811576619381151614210891431999111236517133229813193777060085130523699064105124452545653381763978273102830164086481627184960048684758394918476464822753520302007778823928447600475628430055894064284051097979846390181412192351909381293712645751379309939584083574609942649939958751330736457024518060333297177986219549151086153982947062801025932150008833599760604309465685675366929105623769856108291221966751500172239151943460891399460213474078463061733225650417280061908618859791717228987084269720344313656292851721507356140483154525389567866588004838876255047115555292915614045839761556455761324453866566810876768598282114388043855532720361608808613793691791048255384474633014089567427780451154941869083763205283930034705436194488097783963327310499777393803702058787866930251859933839481837674205870964066706461209569178244274945982584362903619073029738883359828441172237047365377621728853384825260337571427241669870152206748122883206846186431116695884792907008885339432614846211715112356110918896870486842602862983650303188337345750391159158447313415268746639015008141570964919286694508728508622384489515450250076206339240093107427535194863631328664493071206113006532922139796648769056501786163611874521163223097903678962784796734697214633555196953992141181873585331542300505807114924405987579431006879787727040804892010218472774093902745725108050634454403444164707625461221465346392468951524463910706364610790456391855325423580496413989659401771886965689362906576448225064010069676060517828767398648461407540372180024751321807868161216232522843064380032508445192047418266182559112991299304063810403804119685842516589842505311268972957471273641273943829610953557429946485551250550725873547734422923687328359625210319024656558691058954867645025367695149434319850986478757413033117144772169917236245509820500897884959330577195254759557536102692747109133424300271003430067396272251893896724069178824882677886415317839979020466067711516813286135380295164180740590791434630611206132583579484971552881693583464059456328827433928629294281891315739695681376854339291516167676275747582271850200661006492447303760877420161781022772562975310814990661570642491553119262534021352175640873751398523758871509224520246697661034006575531853524786003755105090369872199895949034348658325702651232910633155209250610068966407254008444128643458558559510237726734979818793655160290318475378882041771046501636299833056684415248041952744776233080436673868927039796746029696415455180168065519438988511542113146460347853578601776254176258878821557716615236561280697450884763851623335704580044093398574431270482970626108599139178739962229589830921651576182768406479642990684065065165237487452168604619783793021356651103274206492144711689361221721213891582450347944007865068244207643998151533656947698744901933558532169934040298826695388855967048436129291034493818326582113681004897465659764543760460491353924688165095440746064583796255492942051120192399127072819385291435625306967819617004442404171156192388161172504129038942039341468299127086590629993943718040362548762004429584659270007010624549788588560976647501513123318442785987118002693210066841663453201670298181091943466326491658844791474932472961686234163380519597874683688983941371222574344301159437085812518290110870252517723567124440125316485585502134886167937046822959132683697771235407338817280404798506094024705043072596460737949759811200858300881183076224193895045010042447085302978064398073941757801185351317627627321882171536608745170101718741868961789464138153737830247995344954911260469361324739531441669095515313277639213530384584343080611067076492228090722392898605915322981426461237440359937960651873957302393713399863268075117706737115692869163761191697593043429795735610107135064257214482125444339875247124082583857617742104138753719751936428350612365664154300478127056149922884031589190333784480771679804206280799894896100713146379560613267426007680473263169808213479306512274637498776968076723722548643714843645326761433676863707506651662412143987190403827043287143354558854343695277756797424368847663623246615348981878395480407474232693855881157411564115152069984581707694876479015112242268114191753844067978581746956380174151790151033765107481163008676258638278083727000358230398821798973658332630414255140988085514393795118795562404351791288485632086098618571150090547732872219026443331004513514274140916204067169923901637670078748907349342926134908613733728186062171868401524383331813198425102021540571634030671510874496308091582121211025295336925640892558571225016029312424442671297311516949760719103714748726083740330747768238007469587580891274340248675633223242273001224880198820154120088523967354802601766522031277486651284870085280179784808905212135847255716354796018883639213842019849193465390834813459166032773257655402613914484749348465000404786751105905418370576749400207388024785030606832778952785521095345315486640522466263055530364985984458958932298986456432434054809961698030788871110521153874701974545096085381071983025612456724321928617391215484675717727662489902922900999449644401668354676169250813080160260285029945081309457662185037413435727685555587561508671282898556981968980703396634653843158039769187073845561217506295776406496299836928056990302843465428685064487459171890432311362148755461832563502286999388661277466870600035098982236325991556394057594257423939571164591231858175968555421675693747863869852107376525146304653856731688351735613391703555265614986393453735184274886058706139642401188210317442370306839610562964378261991115470894538385514113821500664294172408404951912304329863606667654295571878723612196720316641701186916505495726627089201669121200996233936745821216067429041213133907481752510370723524130033358965185536156585147647036883975136545148733457627945652421295418370167078980157971648528804698949165055531853819871902586131831921135427003280966761522396028446123327154600864326607651952164289423540702902758895921151590330229275338526038580600714331430314743335258096515183793232591360764003072885234676446981294606892024664423670322152131037604982205916476724098455452478211743879615784350503673117592628145641599857265590022750794189434945140023900602528088425574920004629364664449061443916607523593613273179471680733020981438696264131574158470816071973124342187493028725921788781587201520986340294556090079456898717756028708038150545563375462011322615717663808664000474105539646382921355365982521824760653292657636865605148653624708699405521445314050802944686812261445901808407429343681548011696366368319529616887936892816736793213442853084654332947264909686320444153526337905720782711718135599433400210669743801552063422267070467535177162378797531412706044838767544995354565265937353880798040718810827984060445020094569687914453492689774128427052381134813223025019460338487042656072410753406663568738370627093911059608056413582587248493493565011457286044716063381577781289421043749250091302349275893360378265872051058830655046369039246523154917323393521702167712461818407100437399049785702544290402517574801378522823790039083096838831554032718291339111922118420718215414517754084916324946159161238105075060301627358715047760067277599325599865980479523056325653841863345238601534964139454638607248017032737580541150795999159183683009708102858362367789051368639890635340780005284324412992379171588317512141946651160786782937127174002488015423933933527308756721639518998594193159200497406428678441749828827826744449157670963137015177002501953111925021102282805968377859130448859895555233005993310032213474291771301816119267682371187685212516751787466497991433009597019574685287075263816336185785299237129017338947822469849658942212430410026512052724662674987423605166733332783785818487568203914394297093997396617690130203212664059070580722160673191220997981515734022068633428730850297771375733982643992300102405701102017500875195246722787915725164493733368827741786131312998284545577256932508750258161579591586595938048138970884999395512549235207418302310244901734969232774357281320500250299535212086671209908089114159313304157410110740719382305301033513295099273375476129221968807948528902588012759986403470388144543447179782145444759098406803620025492789323003598793052202671139698226279416094008776213280667056730019922202999920904739433770754185583443693872855800016624682861599606431268652568035007159391460881841056912515430480768176683294163901093650013806000912275625567973205591534898158959005864250428915044084226368800854168765408247951691095241706281271844439454847858663559648060098066441203718622428275229399008477469938193025807858043480092188867391805152138123272755298799881701086076535360042706628098558647222762054097324621405890213958987267864146201936999331501783579692353089024809939186925216702737454700385567164917763153858389437380924388117308817163401851896866226571698894446811943093305631108144019254059208103100908563342761486751309310078921876641087937224434689189979877946739090025995297473354635540371550578090905651034375113990154512060842835312734372433458902479550628948335098450146707000892203823152841169352148474384498183403087481943953810348681199205936852843883368227121557067663458942724445656657470727718072092131159060044615404762540707192734418657162083898737239259435442397752110947589855626751202220077024506395113326196572558622871800482767295597192704072865675437701256051519491143287014816083219392317194847270167889764754080550219243989846973096909037476326741013795497487873005085642227254854488246518387626289010940350328214302947573962741466659420668102127828788002562394322823891154546843918956550242981333374314687722973858215983503906582397689636524957389289923800141828445744340135575557045364707327774791727685819592242773441915452682497957755809139091131348871102423477098407380432471819878477392523083221474345743425235101567073207940265316590998272524591976321098531867795695828837577282805928653837436393240395692316949989631245656508812579268425909152233713958596953519773595417457513740818656349193344037037900368305388477517371253264253908434262073461401964898532589336267449874941111699365004052785774415074961633373988396588985703431844967443072098935539319319914508521616400724353307028017456149746351215210975482177008701253221317699972041614024166404937074439862011321431172232673090712017330560078472626223642576635826837291443064891360466488387467704816688173245942731460194830226001608492443264474531020368104118958397167932134673313819132878219751179453171511627328688870507444898362829895913695201508689184218051508693373352748540535197374561745673782661912808043378084364388551797525795724997351065513323046222338422910403444571532178563172747571722303749487376220995005803981835364009033314644419952278498890501955704985229863444498257347063575031523853034135437138265549409431265337905395316087061436107098877639124451632205314086447575057908622497198058337605409695038799294508133755211213032813062802694911124892628926564018566070429334338207291880144628916584214272993172472632835573791261441989463404052976061333213864571422359130021313310298547938781133773920806724263212713788641346864090661297997676924679393765404966667231483722426143301359575947299675012052336131304632825057949218290342705731876870346282948758107856559237172894915552917806955260711447910993592282609289282971766523006233937540996296898797977089136248139409112947861526800025762670010863551898122457715868953421070832359530635129763151115394171998368327227379822255511281908716518294471823739762734124613503540337328656863446221998405029722423512360966259633847143642868541297940964615939127429421928757699139440065821497658309901992997021545952748608915446615856944713851312703944077485162136713719471509016073628135427254433295196433013055288344553547476916641381668787756965095161214857793734043082679242277011749949063369843567604027317128147179440363151336961311610565419757400282285406125817852058957891247611946571305181127609211112408929122441389594280149500880190966009780663780159476375814022447856544920243167645835298623678122573555446954018701674003415672605335664080362264238923048656086070074965168807719114262561303305859495930433414876709790540853710775666550032940530115674245412149756161502748100798206235217271382839109016624287766261005496645313682876838932007224591766915491277801568209088850419145232739731214704240810781466040689306303367021729926796528446925098549435939095704944166761799239733173210828375246289064591776572610013782758576256333516696499177300966509209928853371403575823096392022789149491006817036007608008098895008215714317165670356853519366211385807681569868409228906304254233783415483546960782265851145285703547219483627658766161738829627002089691663642696661990214885961163158632001489060437935076856803304873711298414582675396928925597940967276535375372410508247492179848690240793131762554128785062379859033667970131292668441891027660815562678989997219863188125159757547087961563565305886027436361849601651678255371551386257166265302500197975661994602837697733575854372074837600567369030458028337469025957456551358768181098353461247885575998771201578208429250513678258035419975599231551804886007550124365184894017766088408358139471841095991495493285225545413693997993958360688626572925299018231463716804967411991403218252675769516552750327005329392953125783132819402593833385196095330259130147122080862137778818036070089545607764236977312282279778361049803797079765065269283610594885687219841394070174731943294903183239630811752165886606021400567399692438530452500112835969591462945184602001707768207783168091031616338724608459077674766551388211575559597808071610909182883167688424819671028147716759067037282784445913484756431861471617206146300743807930931898704593175439298588198219707289084932574515740358903164126104953324224793974170152472768679640990928036730947434285689732580433388398431392660412634270365384520086100301751645756968377644140267288317951880920925108376479028886024732939885197645989551142440572672433558362375276290430630382787591347748304180167462475973919516546294316764695004394435091420721296381117801968795984530076476717083672191240973308722815676941128898929038429875689397584115149475624738975469447488262677312245387766648819140160459488955894820789139097583717081518126602899240347439307127708681586928001851466105358599929417366605201299183153881081904227095991114457869983438941216554261943902628357715785342745442055623976709049265016893245509380205361411308159560107817757542944663345033956359890477086461470461050223371009868781023140123246190452517788774916761428872564375891191163164606093073981951271127490474216048256843328555524679891874258138274721873323827108368645226640387417173538732363963536856267453260558339759466708760218302476133642339581394187275612118354399601365016447678276351894050373102744631941137355406056258451391196203400841460193638399008125970490421476550131734008485585575193340943564626233429331883158858843864803703024580634790730774104164593160780891181895617297130936768210152480918748135120784810069197519944794101456623792149295144127880458259340472653137167508861196819444294871554250348694467437268300109089195400253669014725321155488164233056085856866376739504481005161442763643074705246827230673784291257206063645022801789498019242610286029660145734005221109123712149823571845897971111889938821002812596321974589037374967755659746297833601633430236600233367848743036242973210208704906741831485158043326603627935603628914981799915905259627217068646140742936861395642832238518675300962827716065944389115872134499812465475128473027805276267039000646619727182377249850417622537950512472135296046531554740691521378145974168462177017031586936044944210636677788293157373815088511781959513250763679809350627977318482571740569885560753508645002167551428546156796095384209414808875168436880433048070304602181027684088941142052055004217452877660798672402774354021008047166242709709411503922437582750451980722988961430293643014846454523727741450631141108983482277639524558827853610807726289730377915488898348125641682145676665292515755119690593046133918690189060994288476934840137317000820687760222479868267987013221739850944065156144115878496325389760047525344452754885962008810740186521192722880277619961352224267175428870853599322844559518811517604103675313541366526312230510891882467613838574574062134281687582656719185813378846522822043984171538027316603706624789695972675568006451562617058076606078413859490492471379842599174919860943998523699222595434101402248651275504031375476671055939327217767749397743976799233034059216970256813628860118514131439523135504017650645124618071727869643935520301322030216788708595128004944115965531471384104967479769706377304216936334981771382189195614517425479374588477169243436147210048225330790121044717927784517632786171878315432124865065355424097365076847533355042463506250374655553411570967064175215899776424980903536600426359478417543272824932442707417113466723376989671173841741947189021515428332424824404569950071956095908176139595968337194846964802852663785169553458494771115949302152773826871383802440760020066302805464746475285406769817340572203041817859845181542407292197135479762774415884122743304591137569739297852863997453820575776710406016564343725126543237792394512311624471185061065725261346647451565157376922846072559804588793397932763848480148117068899122631822104392984475875098889733877145865321893698514363005831304927468672212341312321983687796938927740237174958041447092615543569283710330692369800962084281289053758757023893399846916384814818696724054683323038537165801990616855902724419583608889783214806026234241903331127461746748548380321856494819976126441009065541264906217049440272685229788491051624443838433146950596468498727194941512941136613204803776865161968535650054110368384202205370640442911453631700710465864698912416628216121287806356596900441929322717146975570516688071302299992089129451847827649708107267581112395900873312979370772839724391876810752698134609443090919562607645233316828035547642916621086192016041672868124602173323327087651360439223963385766262358994292127768780282551321839077684045152428437922534276353210699006754963498960413666090481524663727681214826767024219568976155764157625613711196315146361330597052844726187692387457160540118517901916385620634906363376083042262274907311434554851524162195553534389553713230388235653719721210945355233697263455433305909138772110766510723406653621719356051662670253332823207925577127597743843343036999062818506875959139223422535239714130951129849396421873507133216064075504927702324581411847104908903854951200660177218619114232086741769260937219510861245516998993827745493740063357846564286283974477776769915948089705817052629430608523750500253970162586097200604943252459916276376761960551818675487059789708275669041359487656544085714319113109687875681933946427189469452920425300168113197768081252407496009738783932074579406071796931505693655182086056573757596595217661457614678402249438481519397453215147152716540354770020260379958595021182481658588834772684228522090039871274563893380008082229412676193071407212770932822109335049902790682390097519392940662000446505882886650148100548640051193960493248022168829378382330840576988056323805499961959972845333875327342531487431645518440739710342406391152334723366126090790538712827465639949969267763613303376630468617797818432403008599154952982918270811317175026749382856711355752108284402674404486203673937949985912380110276258489114850011580511462421178224528915399342701450997692927301658971907285179552425715399608184574530634703533335160167650427835769439106124492602174709259725072631738380758444063053468390971718802403761004228243054849255574576486740281713077115112501879041847907534159645518011485909736067591159935237036180593525550880678122988849572032003997289590775542620527222779571293239921257920748914755501779116197680338173580765705140134121137391026383959452714085487915696652236744841424893261805136638541899368200316789540521138347252527642008032356741237737721480033945060275250995770547360527065850965833995261515657736305960394191774280507348558119418356808983023111959382569151805205322644588071483544192196997737084926182131542984215235666142341434162514429524640029626574681865891593519425171956538561564173658085577261263494878121714221965149346534675300054483525290083584502992693285648669604374865505650554049493189496805172233928709149651680749582249570897886769334161738001224085376095712215959337130923697542199590911853228177620117829200916806982622326199702708033816448073787908727091133173665308483838431263022650167683225566911608818417335050856972382475748847907073481802085897912536293670885111528654295104323236794108587807072780552319806261500043578855291151414147134087450015320814676504372965072152144131817415624475126311673529069002004412531825883514858046713599743317344349111415648275684399867999589666131285903288382692789649443993374421228182209158480836696116060731421185948583140605106813374204213326551949286641226558311184538928177987466009501424569571571338788213730755573106681036664898363614399117582179072032484893626374992135849416977698201990088389642799468581409701217945505256842920155489235086756028088589018544303200371072980957570144093184225467948609880342195660300430543142231502837783482771351323332904455654558610129738928925830973176213685086003905991161731620449690055756134266574320314561838410453427299503784158476355226453886512441476154161243708318175176827901434808204474300771915287632345475884966817196428388696902171281836198138868746177808421766685787402407864233648863689037238963790956356951426242808501800383966268697324612808191840906780974454542773258641245292670115539759727396368665601217996932520699321513835450056740629545278081808377448141468086353148246037331744898375954029930844638828324070583890566126667687558833502631191288900074480285980015106339269081409840818844609960815769157527184472318142512151494800309623326458555051788831760544283633662250680469274380285647956200488251485958626909418851594469143377697768701918046556061673604378818786682458877084394360412228819419980238180907377673578805479048029694612147217630354533747428314749795676144795008096247040553626278624246598738115411958767735831065157955941843934660670759422744006562586498159090388225875194667604746901283879301149347984778897334476598793818343333952023841366024676241519714067495103846146466393670709344196157857923412609598081927053093327372068341231384190935713710556707489687035901312431375429934404820441468114112344545605971487526820686169236680897381462241770225477014896920750599899300526729658826460744845213734756283519851925315475076411094011259295988764050825993429827053840033908519483353546083012880756087084124927592960347461363418135645400334504433514042389290967919837552081350618797737145503332944397997910180573350098770254805853414813316497107254531516993978854226316774823343938221754479939402437825057411966968143433737517252066563123597412133382477717738237387473585573833321487595497032611783577924136040994973041484711023145639773079457013071989066427585335754735891857432721290952682500605097358521821252342084834034764830002432639555556750087187170181103823436390166202662261073190625172432027867208231761685127549614752032583257424113482206368867330149744747081793643574835694301801932629885926374383415343163867347270016294684212764777697643141558815656036680188904570918578922179937272955538310038079855684721038629986543775185631569127598231892301540833872596250210968667820061111950788967367707965363788630428844014742879359265709373976391312856878027708718444891433101533769651636547610872590910525116456620395414260417643306519461261362062484727149865037713675971474262313772956603718679626969032469814479343246942823971108291459217320203389247096406264845899348567599846263424656272667655752115805536035875834069864405272054573591511821326979635288280210228256624672737401019681395473355878101980288122406826416107977317190878928024988669497643823897220616868472127934237778435498581496422292484413391880347439121533022324819121601198969199202271637173446051638408759944639138352856731834308868522202818006612940089985700193850076387690454731824281886663944973577622521834814380013540190442062062190732881979866810717514341699251650013131362241186867487607228417629329675509132100993942427334071268890754072393203463384339651773241716461099487909302848815869189414512077453908730258411490506059182610410859015364346927943799487618787455113464636284498552399424862548329150405012034985131463926190199527863393973088274575060197676944360433430512677127909773137609039001179932097586035568639042568164948078499230234902779811554351049879085329043135564387063955711790919727133039565848299759904782255367435432997427900456454120206228013054024609279232898543209054625056724045261134168966803883407410331040425334375007435909373863176467779602130344838028388349803084214468280690106340748905554268338991610496528172390391173455856769078992370669267814457968215742216417516346281632910811930770561441576323603929474287729108449288845133361591677148198195773557681796383739418245208586392512716925826535523304283432919793416766638619941635446209738383168123995881568364842060967660234583202433686210825424657254930434390773825542792790385853813619141913842653283563591971546304332575810367724477776011775910489153800815120407245088043122813803085736859755845339279948385461646888477324330134075505346070095607341577350171567619775282478009940129552245001987161922410035185775450511555769220542325024058879008151168640221410185055688908359113410766690984205978500015921132848806471523624631278818070207674619561463266788112143385794939399171263385147936387075234296222310976711891015249353252399025930815112380193961522188648889045489997643585212356809379044297891334689012008951416754689589460878365986334492046058050994834107332524583094834781789639607188625349566021284522068454091022029663980642010397202483842570669719141978848584370107832730327100665055383702622021102517284747044214811574568935524306078486494989746534890070744013658932907244328379627181039426448620939307658767439010291325344854871638191547394855894289387779105869831479674095939538348684477139274229426633514350025657437185932909332985654264353581698249111498705743781670793369969825889527931089126549981790868240125938399934912435490942020927347370973470756360621841479119939381796049448825611575903971893441851208435976969938368538007070755980842972215783502375980390203728707463846802033976157483948504992467025619567576936996976065481462615498336325344587541640378144213144566252322263626731863872053205119606658596054306506883466694378118490993462541908075989325526167863465999043395566995118351344899060262908757663807803928682680913472764415244205014144600844523873872950456198161275156504374464215142090789000218063609371951222771765278736625051976453081881095994992615676145132300096671407085106858290498265547845144552234050902717200838935279763471225247480501475608909914659078872940633694147725121621246320872426552442962171501187988069901014831220326252952478151290290939696249188296140195260180304207442847256278291708798524320252073674797570583361143118640969132337033518556507860903434239115080118259863596925167833974900586890983892333763679747111122596918808707833060082887689018862047570576451722168876174548371035141406298712508001705189922444736654756669709170840552410235466616808915887165396615217001673425561169882070727956017389138408582523966423489396579117649869123070708632256973512500546503393717274042703913134606175783568396213975910103454237156808225955601367736409533047544287513111426017785014621221658250151102716427805757638106940245821318613309268695322126008294181448429798652778185195186870060242842950739705004672229138425164376489289232402028735742350213573997898842055407609984898469264303339554775736250441777425307471181577797437253787842623010411438448676247094201367148443989198939802718323412147319321035638829434011621970327595037812315057269941254786232857902132652758658601385842062976460093189860936438792651865108087041664918806582415709679873655996817514901279971273817776839947762203933434513010243756672402800273548640495600723853540790537952954859864160161214069694408784002536229320145068678106400917803292707983995688498697977153612998939638080724243255204864742837293912011797150167785522383153317300462775643531692432536510972815338153214134950592431983345886456635650755185914414574644850257585326314044429598335408397712429793099998553624029805868490062587268563326130541242683405146755215357793116757813094134558453277237000232159655549543809545494700889545176259616045561488190291761258560315581565874720338132805984217014418152259907754058218571350257003460772597490271008974737058515905911539035605231544570691489304169520900514047007065726186448011890700520770611874710965708196989296434940645977886015399798758730542930714680649836476678912109709507145235908556457770649533606244566132315458706199476707285958001861758116475814725072278048994081034196014815298450915235718484305739586067985461519955709752117853796190372916415090535467393264850914543679579178689990374877941849962527760072127133751663242894851322540982415613968355553495136659361720472572447221702135871636742793283652434116656047170561671025880552546759146272902877643411147165106067718587354988305125593850548726493849661673559209002751146675137579227395768619239413969798246821738189350849826159105598970191567455988640935667530257047059553930413132602613714856013437381564015378414484800484630201475973032372133575923313339494334524771992724747335190820364156865681549490265283268758023619882253421524515784854255509462251436921836112620080817852849049351603926533086883928841905386791111866407630064394933636420173071951257308997786899964746143816796549188228037148904928365429626065506611688520302790663616662504341396437614999984777983216704235877076224893466789217781832103361058961148164150228210544632545834502235979423298788034310875501200004699549687797124376980459926360217450096357765381149207683862225685816077982953196327577958111889768360067960040539071350067858766747108858824703372635318167493158449218927089703154404639686639467557219738633082875874626993151350245612835026574808323907455168830366641078235365944497348739754081785497669072968708329666175988193503539089412917065602430342324000202220711254926403848828622447686745460856501990822113474881433573163717313400367321774768302297284835738221816949927812773860757042544005909373179886784961774679365389913558390947530900402883313726587204018100026583573557451500369517998990737298462474217582989074805557957904832945711698086557868997496001244547560352225862290912917664307263749332274260985531085347809238335175744253808977923087881874123201060839471196760233861839984760402444832684500462024114607513221144093737941175488753202117221715408225787717284611645582427851402126961925990940288974932814751889806656382863530979887243972159028397037729112241597363918684050547635418409137937985100251407733520451396492642746755956288912016963213741936841386456490568326358860540772219710032233314153746215939089295744418725981642166259181507051284712698770534110648335237608843526774553473198499760079883625478352763668118527235417699388585504169261582515404178698465491916848971030456343271401027209007834662627054339313583470439228636002717853240947395284364405287374064246841247621376902745467270983698675455345665389912778353536263582269442590846737916620582465146826769233655884385366768672866315479649149979915679863761211868651416159752308317694684492374527020641499764472858361087262258965780045045630996722193895783637249023187383596704105316692362706644817150557200153985848227629308651818810665690875764037354478479515695955016903901790852780276334737771701215262012334681546576409380208983087491218487434215510985640967907827770592509631877953931661978209188802448948074793745805285168279946146134378107642815027044868636927863548109612591066943682779335645867233484486256041198667648393971594835916047147458167075764403747721979230938925472998580154628944169931123350580949864404522513316015257516494829033238316743891431296732767309810401238251816920546594724174276688712598617026977857288338066788418523926195427025446179509759888918592339202058421334041919148081561779409942135814782210727512190052626539628369728593392025319464690540343121129040774587482146568983631610150673802896826051493081984529811383626833994620803809320754250373499992205043818214332295292062281176017773932926403035406540776829089587166886582631971995468268773191930560071919080547178437738372354754568948708221175430500020520133296308354000301407545607474104899991479783481201988678490631343052887819429605190035903492269022346215284792234969295038372042118476513389732296334928354752361921462788123926899355055909586970480804796909250809803467858601767914341778087691992803147324963274418190890443018060685361205877789000647912685475749772578632747476900483955348979701311138049293008479489491226946366985182434694327237193616574164131724775930150427606978697727255600900958130853780817502717383911674906553930848116206916760101370974449434109450343056857976392721910789014738051716258100797962685172735462856469883475945234035871257621725308478990652424651821437667778425476774101691078887238493569139995685970360583932310228072910588642387771416203116271703027519598786094316185756414297394856861498686453113944054438925399862159028287632945003154476154634081612357468522953685330036494578307404299031062973073335385780536375492432422163704194443969433826679636216601133389503952507716194458253729647970303341286063119645375421189884711679371854647897503552135243953646636092803937965239579327209880040751451815502220734594130950406603401647729941571763943182685813824578963224627873772409418472553119847482370269096659043021906466629984642549693792697962745637787603396821939842050915708540851386390920489274120153807274088306984316890001489236646151698092980907877093985360934891871694841211789113367569033013094919817640015146442559420280601885823199165547452323938293140138566847664629091764285054213201272311995249029797447748870287051304610116648889855078551755604145135681858238119908122027008721261563237386133866071015051613677567949514469081124485711946928659480438968240514648259293260989444171281359245715884873909161804219449981568395049506547088851575009955410768210774071234740093540442190256791734319819865744286030450381473139511770249593709724717414671337585844615315522833529857773879867720344038305546005037701929368521316586444425120327637260965376604429786117951685254301030024530329364291805498108187332792986589287307716012838740669097650026775723204550601614412496442890930608751317495550772373251639997951952102472848625183646390729825955887761746205808874457810214880676768269631210261895151663117458872927325357301842363355726033106963881944722857717788739242991170533922373566207907139901795177186842717810493351668228600131489803973206414862712836902855726743687434875520341342058439703171730735959857050506152406987536872546557594898974078439055295547565788643156688210302943096179820874284626463476293730913447762159325481321674782061079925736865109790445010237039236608795745418380680985463034893189890682775559738310111363138616160270311139184884201736178270825685277770618308869771319911638502253426457370033605608516682348449765983967019712413111453471316365867455149803061301107126955233091770618236468301732427343272086321966204097836360031119302644145691987523203295892499563295838630321671980193325665429570189417504842430716703433076502592092119666351345597481590695628583228053089898149952290741734602745970630426515461005754193778349326537366258449334552019952719523173185224277651108051177428632809946827078159045260333885685180331513430558222915459498477819085759204312412767788415922961863914831790214484716845838813098437783001496518903531607339048569889295699963567803364282210599171503719696543824328615366339098554946798160613466409357024991915812951148769690413436615091378336081375278673679112741578561923471947248091775636568683500520221385478236023036182139481573150632366528755090940228850868796638920795388529246322079903878754234658541763124635739523060797760943228877675702766196993070337491603593814969104472169045529178384762520526990650636033428553605283804781881207139277709202133837378255347719992654745977294793919943622949159620126610685309485531730565028081697914682177225556873973910970033744014856074622132474388561676500852690920893719798707039172196926963748991799449211151646288086435619713113088773193035356185877429953153943577154047267213775263205548870994557210798491220445124656112011748265255178650173522458684766771853255846648203869863470494494627301574220607571038061657514797531931112036186496281249824426572591606141722761889103499810749156932899402122557417517538840918846695933433993733045867907393578119995413183038097632915961215441729431403395775330056728472336004479770354697357273174472768836849191546830595485397003930963025033885318619410858888398450717543633274243586873927832940727036513989773886365392789825728183904876691967575019603125292379701423518865431999963049323601425439653196310577568927828911298139487676580025521168166685903149875196512555824142072972929792032018523346861683029244859272408332175440766663646920745048884811350731518017197131155600782419337941793987166598454934082235633662524521717090355773234264707578125265441899935276993214963082460007454722529132020766811679869222635667282853426143872006669985252504252952128225730355127471001859945427590328788176180319001550014140739282773812913181811131126596602498576519222463142676882765260254449837519000223728986959772436311219130811543621522098063924472690123870695118060809771918579978557031531823355736613212944449384949758833982168094464912257204477251372077329822161980699691900701270006250114711226297860139916622311988832637571371430856834234139594080151199128528604879815712632162158291257922936503851276595856687204728397807417531215164275233980494162279831037474868532798698139327197593211197444034046375861407996748053779440328361423728524669032192686426801728435979024816668511847694824375150999726144962823463698812935412401231811959297158097680427262647708651117433537749989999470667370570134113585531237926136343687734560070717508236381985549203013091441389388458762844522288398031633500048330527515618330414062538227040670298517200381223812631999434870875174918612211707177914038180147034309246305572655296346391911131679719625638000413838888886802299522618357252875649457549704063785594657789654497815350482507696409964578525511972255653446744578436982703992667499761911826409606352617893560308073857970340180961922336907752898773322563391636493228538761069891626197686709571305910097847054165739245363965739930416760658824093833788329590551263797283807619704748551321301245375201693705070027472771226176721699820041847594889965367896996205631582564218880472486034047815962500721413978873934713845388185796491796916110645263377215491762489536704782285537072363935933846460691644194389584789838446272968554414765088266896029990441006754828688436150390733611375467165058779857480474367700017566188512886247570860535340933994349380013261265256342888025848700321417833383707804263545322870850787182844355032976993376228588919767189494690308711293409720826945029522363177121803999241913352730898495683578010050673924623539801299313556950627317669491214332190002967716003718334990826252401947403607702284186738830273277712561535889333412608188667754888245560396612781916121828739045462552316104014265535968319065015890236527617231206699372138612202502777220945201814435328760820184193881279630590196243369141206259441177565402482882898969238835789218236998680708478911302077026694617690293617838192782963976538540314812667961403490839533569579982027962707832431644776367291571644553926601151924239741291133156431743643747199723579611875297360376489650862165657612771259023982168963907802091764335605582535996610969574107096175831873777746283639500729579804684173598473983946453516941318245674881935064735586293807706578248661085555070566773023333336882406021323916879362280947227284751007057213523034266129847330797303310392171005637434113228738412664323906859372581982524580664913771337119170276476185467087856172042286201292553437957593349217603416894983609093426015995496699219441931782528189178614560358287599375021202330396791643153517966609219171620121780701602664655354422909028618990024986344146975413004011695750460234421779563519745636175597771432258834978891160490634482089875884507076300889411077248320586372799756960960908983505317438819899934163407779215011904302553726114243965263255494953566489159049390562316023374223699862029966988184096693184085478867383118770986456272824126464851616695417539182517572038040420024788037503318350547339440532758559371478799259574502652575456310555238317317123271343064959119392475932751259712522486836536488616004291032942849713533794431703338912422930902333182925107827564988921920782540176802092968088442640751031812457064681198999648205711300676605353185518595699419217901856593391000673796727480125690401885736515555922257776902659279400780400436038856450063620477638641854552971065179306715930812117432428844574907713608159873687233505593254814948482919036014143409406872795458415845348676346084376347024675792351654146748006744183070381797694806200656740949496569473918608893032772858013782110479205551827577445143341624536391190387716253504899038231457510634475772241942222243678297997705342474154806725714410498603127009726515416759054478480437720877544022277809920976757362829146616405248211249014195031971849044733374549897275945443177710562695944171640351890812043509551725716432464069390207772493614127794424557332252891750198367516388859201763462768120425093242223520259992593715704418630132171328490835353940993730945212085200480772706603297512633255527787440319492219178972208384386233480889395610029953240614646290022914075785532881366315576327483723510264586254038521497249176208409485898020012918128474373983311476618728058852934450964454093752566725946278752796904613142367290694401634682705721943517876594585574251055247986226247438597722815433522965592573775696369793371741596076910969182272753956161971502632705664735152347512926519303089686741258799275273308423634827488612039933601018212060372812535255412931640500590284296816759556221501014829691941119249823725232005852284404607386673481993946637602050032219151793024428245818153033140646584562804983017978291138128291294851916371381082172720237841741985297368280330879273645933826209058371346251653663665391376631177046184301591408578991679101919171474899973939125607530936044558877650551680553503400757683561413918645779882249435743448165673641577881043816129137164262178107081156322158587980411645440941198634242167277363029122042090539578347899887979792894879696203984800821103650630504164292448844501686479761204109066640721315397053570246828995966146029840376655212172845066599226091468661679123614101687375237305247658369200529763571992735781750456839916412761572750534594703069253495051608423032581489614749588981843316627113744023152101359871518062099034591050169195943186196356839089699637878452491387041875798769988669436515377421605086903835267350550751343228707517433286899432960407673956272477320429103210537786222772381428660350775069275788051873249440737076858576028539611582626155649517886751765336000468771270726071563021038993284126395181246721996413353566888217008490725393353312471680989293858001054149548754193701313131559118970129079455082565760069903860444695470454939462006672630056984420908383308486808448809988899579999879374559383917803455048985822431055021073911988051030605893613654316952698629063959567831014535073158377580095178366477197454040245133284431836780853315233939091644738232869935868411048003155950538981284308109889504590755350451126768112707164319665470957436548595606035449003130533764417434326082028381593498140937540953018524266441237693869341575327944555565081192447984984515082636006772133795559668536722439043689002440269907332045216073015251276501101941279953140278171128962920307237242925590370388493042697539657161702793240447667535427508510812715254944216086076583268982355721429005770982081553659118853382222596309868363972971607212522903749755441081224351568335757726310985781813239596890671884987668804893129405151397316704783215777176878165952776771517306301039883517452236925704073484519466913789613398449934843598786300835815305063431828360601443124145360750336425495484897633548926812404648147090259276926366008856995308832600724021809443351500793297146562100543481856069600540506554028740193074344031318534884659277248151757636509841848915655490861473451907332817969256801494233336350774501438578103763799217146700923200978705486778346282954597665731462070693206999093640797248145925990150862593680242828416723933632262351982907015587579408104678355971385048014327945207948830265844017327295557937305426892544522714457611117748166304943895681112298286955054869812016400073796070924521744104291416454798053155605170246512770607867943548491466574081904598855842141434346887571069503518734160949619632366989747854187208314459422782080643900738126834564787794205352933486706893764227101014415475280407077022778863511196310517746282284399888902342810354473999425502446149244950788075650710964297574626259586834557072580596294204219148524851342668441471214855821859402208638259154215065464608638344636092539011867302477040398125142792970717880960501196326011742244915438720621039931530681910680495857240784942196927684694654122704517120448325378408354398095086037422231867456883486077677809098725791224753166074614835544388678284610507493850589169907510887741708787328522699858979569594473204980073159622003755686901348654358546261054743299864707781065214157701445806677323526813749206986772725617182895808313631638767020854743901400623347904491058163553061898935450141503546265920834472955707160961477727787862665074546844910134310382227450996396623625038367706039659259112705769374146477347719645337050627184273563622735658470885969287983835095299819579574701992884559069349731503444046979654383916992001536938202063089212695738369859078803447520704144152794185408387519731859405620518148899288539752093236215649334264806637515910091156282076442010000832585944910752702523002320329695619166801027198684377911024495072717388595670498365940920645981512169672437689000524274472572813406476945096168754458708875022698715542761109999526558114778733831851108246135179491076866502179895903437889255439712393187344067815512829046157167245993386001366546601391905916969510893486756110752736428935272939379664198944486403123913356586601783428937394329077369677132590139376463526280012381976971999419623216545843468685169160652060751277186688032355533927274509455707786144690394584382464598317199235415214646662933336737880454194815220283023936211862810579818824209660858360202354347793448334073121245495321699110152170765877954436761055937583415114413555981249063962628394904605305602979699549976606756581847044518949490368825623380590253784111888182364320616206160262135785930143356683146384478679226618363642216634759108805797724450877974320299620033077425342390157349447745370587383047632564853029759420934374564561663867987732953302326304928030141822455125322478861203306221860247777082179428207669487567105655901637976333995059157911548580547019064184776005401895944778701393630125460517377203155588332409384282868479240050298633139778594230032349792072814431430198648394141404123364923366722900834538096763868209196284534028274698810588821791668623558364004947607242486248361063220132025594137889258762498829527050300301949626342341859843903942430937621087353618060550186425681869531146783863737414167026228636763399271543521967500417892190357278018253745237768886933721945469779736847924827820917369767893766051621887225176991736893688628767856389023462473162548307612321162345348678466683997048365089328953378972105684557450295864920344270943999921362819093160059385169971758870685789042898465027397360722240269252127862421934665262713041124377113399347899918937596354772621140578129124449159914320859912822178116713794752337214869620692911848158579248970691528210038248977028312810435353008359754508557194879934258432629391243131834718392412911720532414264154398064490793651893866102722753731119026608587032545231587678686735070698051996533166548246601142126395437310847485158895165000458642199996784377368241517259461866071567788680160057507728441885387351231153757002416866369882811556212403225838261276576953100766374192230686882145294268073957127198457359937454920439766211072700416443632600048153331274057683749987043096081858975001951344876057451596731956105733397568686673556847176087402265448204477057263784900896562095101942908702224245246757029909674556360557967932720342905597732572808406197127019004795551854985234313890756450793036851679922366275374250575204329433498699526381711220075122137455749190724590974490202626437342112226062174648257704916155684852825665434376217627022217483094196328288529937539670874478202948884845560337837868140561530351053815483436592823820003364448575661946644823670592834106525480497738464884035213828818311433385658190137829715705440134481237125752999005191964044204660942895229016100326015795835890156692235748549810787445204694317607534247437788551328691922772093950273682689727034459109599707937286364201096713068078320430910128944994521672876827751986159317587569832103531918003889365479888500030151119868196782406629581738959172107584941185704319006985568689289679850604687498508028723351057056949375515000157884845185819034767278439479730715804192126844162752421508384358303371897240779518934135469406909429373831872417018068871227885810083014018279680453200075685382778717854569399910636818518608052697995208088074151969470162061656142336957899689291677579671798860043060462572679562615583289919592287495915829842286886062181847535633196584772098489644049197673662773969406848957305057454098888731983466824218227908462382485537768807287371218859952484508007581642402562279540275208841315312122332012628130963354306765976517240793690242125427084235171568953981965060551570197234807268587029574044765168634424007007518461880553031126906684279864444531172778973334205758543922129940540002238459093486962809532157396089923131250468842590448755242655211382041358111500458004765172722924591874850803600538326191912617274522206877975478919242401693872964722120402033668258114266012168141861593174410742055322756657628428218634657413834910868374503797762140925289175236077373192932220913634185081664430148433280423805243558408461832280775484730943063323135874027212725800357805376746603098129400042890929699820199595003574945522190888856472980920002411103717091510446276847969062195829896404606591700745709051512746326404433439006485756297349062318239473831781396725815459493665506203022809463874835002408241005345634284784193666656305326299605045947840533470462643818588900853315753359452495312864136874265063720823155945218313159804509006528220913535332647148397328141719123095501288633375399549069728052338556240653407869747323360702422215590069832331857211440005388008930305634893218440929947259063154650637697699502402157551659661243257043354223855950603597122424811319418313573382791574111828412345808309441109484137033415578417426524331505286132157260653068338962318165012607980512632187501015484557455245876912417641807368889615779387897839090677482454026337707058462765829797770049036868339664075504189910516422774485260089089437348063687013189427699036497377795418779611446526021235597259965238652004541764329789002613728503711691730305792266198225533277418652868576857811897792435993237427877496162266017481002690518465194692858098090050979749611311839253139681296001121361647116065638434870157645096440929992520207913780527408871178055417964433670361616907714700917416807594248699105129339470867790769560159261843790841115500084578379118590134252873442073220177645161856760100656004015308797193759575209706447190277807624643146772739977827522063328412003625211092896692548592573693110973480908634426121316957911140001004268555301426672240400070756181212254675015948708978558507161244579377542077640001574683422385015002333439132508595885162090602626635625326018692008879756863081504189559781795273364112540639945168564141310507559877106249415689994026532435247223482711238452154958953587909535230172577695279567568401407761006704185501716546754729121517561462853885656790328561009970328683187291252199874644315802994588086930746861194901578607461358939154123438767201034470348256493692616193390239346241116600225477075824603759067136518118928405996746208648373896101722767921803297189778479074497337995269281391855148961304720401903944986544681395903581498897167187402279074812122057428071232320941381421981653706475837737982844000745341497491508204402151617838046800044619262972147682017508742987396675616612766361235498709742781004709215728540531329779670700066655555828816113135285545584877363491059728609791890170419859364104272239673213700311372796345386155357462182307422827285924708427577584682068538912534355064970089654832600007760476592318366450813496702182286870066335317947911861879347652182791286376405951743173000534619638260927172710863631493512250900595176163923981330002544263500572844001174267885134864648367025024645730973174538435557446597427416727659873761080512902596577997273693427256995635151856517259186272443320319502149415527935131229510943823536884539515912778478235609293865374060673340379273134815413152283899008064984912873261651714266447586619618121222167698425186239860512414913344852046134565526425021189394276206609054277668768770542590587596790558111140120236977009317986856267126320827845023829219620085050427872475005654994560172956950478065866825721288150013786218620349134148892850080938872987235646167281514343734977188915904631749032783191815755543563308349935910341221661451785563922519005611870506007922401253056633074027288369417006208155184521797555208360243369027165461707966626945417634414912445027435006738136273791551967989437301470393785404347939263551453311279860017221426995460020223071135306986420756562112559017715068242671794757657696021335280126889029172361453304186040603729512302112877107585151140536681774694179246911078234189801765839338060562096517613250858704083148154664750314714278968370781010778727790558557693659741783298202761697576300415381040509361816198675834162835340681450941053529368852078230195868022983978658736520284365903478195261306891922457094115659397115014141068049059688070920893648219020519755575714001252329445197399548531646960626200752943220763310218896106258244388964207800484555585607123673253633246059774316686682517802367416279009848589528576463460481299249241193885847058462970437721934090352685729815023117449241138929037174881685207358942878624771886659343238461662662039432014437173666241232376007814512811828361471369945334331593394699338567707849610215811784691420653220793157397425228378287497679162153409785706058399940321140257281018811479467240251302623858375789393753088919013139574502731249074618226937384507278083114718150367519151206905868651384029888860716240014583308967287338091114685752646602722573451752272329252506374138198339823088197886422087352921455036617192303430844362602162144161589508352414161915141601815027338088978139500758146642843528096144778720473153021062852798257321547720861353021540647261244457717245128278518622079464823716230790835058877248571747064838599295458494297387158422056677237864964802810469614869305576875498421534437413223394270535739732795739959680379592716658409444805676717132212245328615216349347905629987254179310946741561494665357984246819611922598083415892122428329743367150032767215183082192243127593244174654934245014995771398048438426550645624428808900347110049196103191961511979661881931320937657666038398495306153240662990239491111216035973399867958095612437967731649336227016421354895213794471691896639971744022664650145457091645814842672605104320467886061013795401932608630847491551640557409744418320617386081154443570877930865311687091089235593812800747690268697168222936825737322656868665426553387596638014303192255684485053130705995276568526078934861463935639609240363973465692552415826040035918855229123064378754167493510489838394144280439056950202651551826917855165967934140931251718344832929792612336709937036154821079002006141613865160401183965639745867445308598450099490856011120893843549831553933008657694164948215746779506463874774988903662214377441920292553705828466366896963107920050238084956458307112104901804687000754610294733708855351945165434068633671152241143574145694632884835766811516246091702132024705421696382785846623920095033715228803565792701483574340008530060975684769106852749940955155496878014767504867696624923924484377271971568875373560391914109535765656858313923315605347520035303431532893188102051183927226744417535061501155522507455570791833153492021019021579275284173453931102420083140071090187265499497369904528682245269386185478556262937310056589432527775047216375010098320881262344267939438010429528524842623395042976100104388658259427181403620603033201898661655779531633129409123442392229954233722330395176695822923638891999320267892420951489040351961574429581697314067843670686330240139574956740550690359929175737227873990268838551011019459716682527873592649219763759157807456359601556585384648124345233487111785519556712242383627333494876701094069318346917595948907287467589631070318146733992883587572613508230476710769050072446413542729396483383717645613798372055958490420538059923899098438419919400570215161012182209494401310291037684466165825197413281472149871673603245430759751877674875450856169193500101265699198306242448768545528090316826090906335917517684152845511825826064156873753106858886154736334464778235071220403458522866967592562027540183268702566154675595270238055878428067275950498894328217746688518960743078162322060034813255574035757136202436150892493164832143304661870271109328279347434134545673411022323288735783797654377349429939174435196224370786810793734584124063019192261643952716317200785540738261508283450515514873148654901178525495749215393268404726425293089802441211646551549741924497828896364439256530883057128691033412020179036170428988271827368543269248958143222122752507775737654781234159228792809270108403207605491046210017826959275830197580577233898415939429985107482002120010404973526742955865966632792451820422536856018425197322799857470505035887441222311394241659653627043963366951761765454608004526520312611261815486311252195638088136111550198139746821583145590059269091011617494578032772171020745662941147540722767815010008443707573375532134695512940184118536866268376128759035587560800277221277568298993062670235691973990503318348862982866300225832557831259209896241079446059553933344593643640636374019592985728269812568483495964618848416990371054204964865951245003595629984564423172790941141596400128148150510197692733349287376406589725073321849998046662739702785949936359285086811117056135512206260318059971294561068503926011611088084344779397332398630708527043930523537813689260094395047610776200771796918359956693306605606182736861117491879448979300072267352753002342739295126085116427806430861816462760648408405714716200116926082702941438282484686541399110068811373600811967988928225787520014931317515594047850088468411388233471691795981937933838156458593471447878588287188714801222623728637761391508755663493377521936270378612353097669525261600272188312597786884593248261013515065959733786107659799379617551576220889514578462733990094950764030509551903197133035012136104826870641952121293209884014120877325632788885506740893010261202355654856086109891088601330335451381132565732992023815497090211000508386463877579745054475601619153506867338928147207091547343413755350564305691290986956529301335064269832521993686103040058781219071437087509258540902416619408058905178200348359408520577483457211627971193070332810569947231957453957713098843126016259747897569086104716969729420487213204644313002154774932504694624362151809272162926376210207257672328534778104055523436850770714304857385307209329488295689910685147991494873358370760743612638814928439217713938216233950863084641831039585969482262389355643366043465271714338910521053413250183650177007272255124417053331846125412070024145055197674529907783052494180918898240424042650225670790154549085452664090535590689940188407530437081207077342344910978090877307187706186115090235957790491520041335620502105907117004856913371613203207959361905390459518200773397038793910950285653646806741949032282474608458787851011078216277077127910727514734610507955946435003833571853165270556414496950429589037410096833349505736379861567453066205673914802187095895709947368655006398138467548949320876577304373474181775787545703309188197745256726489629786510523639092280512487613909649213774281489628065946123381813960541173616237024998779614848305710277250603860701777210192230365784267630212822799582391580133453236750877642486359846030113674912161547199108684079834881570729884105206780566620387367586198032566899498853166374168995131838229905229625123950913595855277870147086690838180060441863454826997313382408631185625506610288713629468423159821823959220219272824739770395140306477382467885215562372320350184900947826376650243298712584707259089568429526680810498124073625462873898793661410466321180252669853778576689935490419879216876242336474050380616101300984394369447349961098261394067151511049383836734088166765952632777026346740239130403761870059007911964861472044199737396677337984710068568530759540086736478193600198288319119661369566950029093239548922045752024224369908282099200397499235164054773641954667595871530448446901036095262795560038759285930431893649027362458863102006483179610111922820142715021625764422978256600183899471150319800849296707114524860659538973742962337496813205797501822898729022635493484556520219665920155425781122550499083760602758117381042450382431820980681492521029809546624324010963152045362846806320393150264270520835549643902942619369294901834676334584685274004391583902981348452630034211690846111834759750893676359143591534446272657725985632184341446593706744603511707610962371372748287613782383905734892022530225724606343001187980690704860377730123807821818271549168795021629195785300225228277715412015079891494815994232662552431317543628615400803526327019149060859082393917000363807510473390514916055579268955699414756633439006904415653510111331120536953206864364819839706212809955144205071885191271558579398989237218180055216927295807073000321132671442704123965357924763780068583142492709624461105399706898132545930037432468448073765101270900625321017781534444006300100032005072209490905161345157893861902378678035570258447232232252146761156196854443352510237370119889883299736464130627977158927988516276212263973564595568146355694168032542464609924725242557367138337831908550933751514461423192211291724571034930600983188014325038530049522918935169462389042891887731834419580634519680045061620740171079387559913806660281854226306375711856389890936749316621712657060267690335949533767349921081687838588728427965965855445916731558603643044354429314224739881232958460790799983816302325335283430260620603063850305874230023399545130472729623813897408257067231535820467253444743308800435867390263044591183911413731860968425176942537743552015783506381596104216735864005601447199741887573846475755079243643688441015859117833211308771677113921858211102110010309684352240901978918686604988383149298650307066870615237349253450474851514178568878683610216154869942524847254577301733226600204042010325514626740477633650833492895942487605771449449795143112376512678271185180371813554846005143595836731376967030653540759125616613372348190905101991621910029620238967177287775538969143401744049736040340397982050480382661560850910791085487138484013965504676330681511217912204161073946764723103629272434763528653397089412757317297266160802924136532162895125822388869393387634225162063217624504315954726540033039038698483443239670199528318391678261544032123206929049679476133865081536947942908565156755894486872339575050916726525455085247161395225884851563621099910504778400944353680887607196942187824478439597101946194583466441254655139221977387206303475100973235528209898900813362636378498664649572527140162706831562911545273370561761739180219548210601123645000510185419406902516179540612225334959004751495893664725580686378650800192425937799017140352667620528624976040034682271214444445822759272328325899461006998034912618753110987483896218712695105735546004360485637143947043248020692824430851994220906760901500923817683608813060361655513817714580007201698595027243711314109903620164519328679790476224087639189703963885599334318909298052014717553967392372273953296366186810390589407047426287595652417186463843562711901740344675970676613403841577274728375449389010150291743367821005389840965124170880108698022090386345761982231372291556972251944666751878294862854372058899058508051837995091572823718593989010912316539586249138810876387478901683247259658997119899304254405837629274717239035239930198157164876381242215821914187340089895786345919472828536678554850591296393578559288763620784064150697300215933803877897682870382976941672612130876001843421348722863043989634416766446938327797676779398697820531441084319971605272475500944185349123646714544098462700346046555014586525591955599478039174725554829824851084817473222758770279816090871339733179914490106060621137771513031930738452617277184992765699979649559884292498196488557536891448208801510068562141825329456979208437182542228498687362536908329423653005270053407071020582622025707712921414620484893388422228528253657297727168508033172265715902124977945669916386885738930907901165930459096567755230900836625662881224080338055019086089402032897784669806729690014547950224270804351659135579784326785344955720579846662322872008763158509382033536982901484339140459515136898510674223164364757939228779662188237129908344993448669349942574733905627772918397783070777188782173746708618469575058498001974026734877516486498844958002670770788789490227541196839987503157613494434181803599946644603569787079600643426358116711286093234094216432796694851743229446527830127160957240963147547697734264941403551076964832517001203094041881579960861815473037394596933713346897896507267158431427099100858810035623584842819602312959852147140042848442078695232574550116481617046895928686531111599738120769203196436457854023328682440401318426625132127786039982270737484371424371868128861272795359186974583985405447743009367712349005569616471930941712341326388066238446464842237458590267902127839233107961511085136907675197056183419909986558472956783526847438970713972326527403654944929706505832447330036876745439583221734982138081703831926571855214783758369028231809268283255257891687916671113001924529962795643242838465373611221310292099721447502614065897425435578358563993638183389884173443873550314376494333316476932283565151859489140060658901599205208021603452039925254666469877032492152853252739588515562023214798763675888843351480376313936716126681256957677787282599043765639703223754490535346037496017016151640442189274727293850853019396139773957824183441889838500565188686375634173525330678148560311420255787970270202880318196637896311563457113752689004934107919522669098798282484129109411416903179402402148776327504536889767627467099239434957388529007465972512459313476047517624883772234727052020500791186379839794207970660565938097150430045102991709747953540403486087272512504301112272063853509163759668592222437493000085690153260554308084037750849548207156064775602161826191232930714729592598858949387716511417290318219521284098931975127493960999119895498727698222204898072007562625844401047859328884759771312140005158241225584072895492372046751723530349258091444516633113055978892107114723999394332985741655134306556880336375183335734796214230543618703373149006107441340497454589928638340598560802095607799094395246311520034151848241562208082785795964601355630934146600813061631502075126311257472748225339322357830895997261884330960144881895415058599916090735188191604538127634504816461659086449764391914732781888915952393262858485855705125510407007229735314151326149242322405431821051260051917391569267432604603158263506453095781184780480128909980418071797483535634909870864856354945815036246139693713178811911470848699521681008074908301687818748198413402974581808289135347798503516507123502910314503158130888131330137412145169943932743245069942443755692063102983342652829729966726851896402536042230376557489738253150663935550153798168164505186439741915446603897795583778912725135895070850051750499107569515441478509761807430156916924636744789440362499046689375045204308343818771590558286555507207466627341802476434819387187116627772387632451019061884592507362082690771366151392532733571226153613185922647457549238941778037791675700190863931663310148778529670346511538363175698516611975471517436156657002339073311025432640579289563272073279724039358245076592573788556218004290143290239584822415175347887097756622387450204555844946005739310220265610200985278158954320431098157077691435611154754450779272079132220393419246908464337147701850474181662883460244384112003657681545965106296559130503728295418977327328834387942657931764062685983336864691619467268075964990872168990285050663357806067746248700852448701800401733978561043310354176894213456556380812254696468945617150175967815759842765237670327667425408801332394425625480017027807730090934969880588426801751547662364007252063611085564133741378926054072263130009906366675560048344838372144463185173443625445153615082228711310080881170814965849397354688401390059374733999349358319117146284002754745915847548551835743409054740983840108693792681706761150622369151860814571169637258085548841017780362525667135254647236445260865017455778738148982075373670516827034282656059811427243080294918160219353984366881693182403119223352159423863009462314303831078910722446668577714134816625244740137731749440704930723439287325707988232866287098444185920745630268550882458200920238933609793709189188949578327304677445826192371115000412604366056798256961682621911315563967661998070511247161321635875756514915721019054228455214311932933769567640873804944678566597980943658955039485958736724633178329744491154546829141083956778887001378595191861619422492600303570024632633558844784703375035603940457811283929365627501266413769654509248851886987391992098819439702183597323146919787345126340508554039405116272667172210511960229162831935656202556689369456752000819450114051160249455566004364002624354449418111919175129957317763699280425477135946127925876312300913019520039048096926688638663134383631647016176656196822034727233381774561156246958972528725376010911206315958878252102238081656246777187328817414872045709284889830382810939552654294286536465196523032842339743786698330916059766629405865905410162681339068433290262349257289061625816410776928034135725329802958800659639516936848564578157056612336121157256149268336239765489943561543219539912794417409659796764388091718274400036552500118186742746978487902451082397414058031236654331320505929083871888026416031305189423724828176192314412990803877884889100069461921374725057940263328368292756436325285786735947505218292691588454886348087138268636235157619476398304056491054512455006304909804105150502314814034864670660207016511238029498276737169770771409219163234368553035384883209465671824242678044342533408803503812672296672971123004304992382367628230827429952728364713260354084486672028501715328588715514428182767474656298592656189688611937323540033856983239583219122231626451759722278233797330456999130022504842616031138812738097433677348180595637957194540111739026710168135907857984003979023789940434032070608344353303194567526258166657816472427143817373258841383513977311836037444625844285484000475434367353033077417666205039126630587792695132279861434211751038845987299601418942311195662846835208794050779429453742939576607321232380692756437844506040887948672908692761716095884862496341574790556175120884638211456781947064064138863809374609047510739091775424599127527442912770503163881770718784539251420560885813158195730490654861204219565765102466037829662250059874399464031138025075870144270074894116288308300080842328768570194363875938260015091886925645766891392338072271719359431900469890120696905367278834062311134989711674242623051736238997283760552308317034968895900740144992538529855314981689504997790951783915484609147228974167553020520150701900137848278495263713083829989622523973073724650209005628736606977566553720968404543690787760549124384968598458909500135706254541377313273391290911189805744866019153605163128390243676948566801026020096497158330022048345616337761633678007258064277385701453910935886483316434800305607830722804504090755409771139949765440479885916565253012450629367794185917675120125984752102025903851082801536303702003411809794506608120014386795127548451014848166861194233707197695940254843151135999116562302342545674415309994198764320630044846780716324260403531119844162315088907661613192476258338411181300435067922212993979409347040627111474069249505607690673775604760171112652205880708398979097520237244632229490124881719092429229004306412185239565406762825803179975583178656441726085753046504144782400635258155677852782622550556585792113262168595254471137572611012612713605447109091165389406715849290874927574189030137525680628696793299172397832440664807685135337147410322932345457723271432731905106445623799133624192601592684412053203604585484787773292168098608307546969747686293579328862329229776134230575959445621090401549491707470007037700891385046179653114242614050830034344395587729721448254177303421723068658469427404730804369195365048017445734886254782552170798756635932027255676218948287856888607271328762178932760720269692185087941962748265484378456407849013356736227781598899230266082656427268959955559065138382410977780904514325185032924206386283027846346505840653169665317272526028623915796141597294515318660351511100161243877811329319118346945646119229184164147103140428921591023233054241517435482639948614334657247474979427109874470682254698801107059434018441976703990351667339063155891614702520478895793030641263456691347008233564322839183016683369844093520138860700350992799180489200562583377367378686993479400667738551425861331763823946494254044130054753889561734874900366963535336816841021373484655073952306532460754378600643756369252861752398820936661307662215317140229305107458163457570695925959094641237453783983142923615619406010626421253332352306744211348952744288636739320742020397590676035027549572188658154684588583591586377456724307703278811189580409931184989693827729758613760856381979783401171727109047008433045619258593286194726686179303952419836287092243648197547986760418762473664813598261511385033483956418768875750299644102984378329032964147473606260635220666935584355323731791433342111628593815276311854723142700597943372876457703574291302504525476834834314724886791507895640937761467536441714001746317871496909159316914953532416745254838334113763202022724771941452533082648521009926601964006197446159766411958710702338015037565237311131429521585356782721821808410548252572224950796759738240843565159404225352951110542329335216107638685933972511699059675104978901117143073207333740095666737611098002556186237078326300228068602857314014235452999064615739343853724046865851839247029337805562180248162354543670331043988623973767423936331286311019284998983531843399740941993016172535654406193463578866751946609270010770403374002890372602418229054278240722650597745190196380254274527193662928198642548135831771478160249276202611828566484328933407139624183478072538996016854217161950070419379221917317757815603505653220967288571355181326122135479111635784101128943000057535802964962117450529693103380564328159410985427448742666620546374533104358989111306285607089394413018797115438894429027269704642081034351363806934533374135420874034412791735474848643669992005533176098798066805854761088957205886128946104171242902623763835535379881912765556139153168057511466825799667128698363686406244453952443162096914327349554327672157158029641877176488235223145843856983054243157560612678969570294637471293148942177847242320314746437769813756155348179766607238951086615110602805574126357046812091987382498762117518787073950907808020562532587814125947721105141215532281831912028536938822023987938089649959670790439689360381791290312433778596465052651911417433984356090164805729023543500623934813838358114169647703724810753123947353421829617625275801686394745447269118599753363837886480819962652319068501214561740051614768309623212907044384015256221113211717970222632952575001612978371988101595740356181383976133007257518004439913978673537946449234886242024532979126432142656422337213311209482029417484336662771904570474539766955277334380524741699432258537350545083442218890749333476690489885666457343140133345399279089760106797576083399758674565599024261755306190017470040079015430251331364632661898082652750148990973587438132702499150768224410268984364653884090493433904202837815681712862805871721382527205187641937555369063810711754037498902807328822130452643760402412304318238239784677465231030604006237731268138753134853765882133466002720986155127925612095056229220593878201329511691692267830312819653430566959132017556495136161404124060889196983625609781910226940981487856275765758052375297129717913463086528894417508187369287147149530130973860056856375094585596397998192479938671722720722021186329949733061836479599457557287811270004589515485394700974126694024883108948598273574114597398923988342744258005959705380646328366847792208822959602261358520996635430341129183065786068905343181388504304611185291809090095319661967539982957009088026922869840275986022177870601973326792535436331610817377501628436714860581185650868258651713826818516734325581961737993371659641592827789901745578985287452018815741614622134634097734049362022167883482834263618472093797143596262550054247308345485226377100601874507575299489935001087855393770828880199975892062624879856073351060941717843261632885517776749699877493599584474470776879380888008783265904879906247386155509321407698831130783359483594991349570726497173819697854420157070859217558340261736866867355283456188607072509618057658630621631365846832930881585867942043675557602386774461262012421312539527467656543478989730489785942236632772597372543376360091671387415719984115065721695090418381602152438440186156100551220189509126859992972622888418871558981574461865705242701224403147656758329935541559508088084239012366503897635157425105167566157238403020372206031498779471035366509827535932274870113809953312863392026020973823497556203626319104715403472998544372922363563995450762744084884449844846362246972664350039608526719600616253634252975705113425967909643000073536315705267175565089759312819099046255294194105479608342927933830815250564719778805109588027846460612915718005678116004091194289413538005375547400234381497403230864791242042204842630538554724542293795153782181941901982398920825193206127918935646334844263167693563650856566720978098545708681894560215247142669414499320434865794356609910054140892726648411885096868442443594286951977910976924688564906444875363022473025170888688341338561098258046556318794353961902833990413091310246960027329252512756229465795987255568363697646023171751407254809310382921909876597296666518820951435393861080564439356380684039061950874810285153037901448642000695431113134326979660402969713544066295964548239990747957702220392981583842790795875077904203298384308165707122440760274722716580179026939790248088735039006659831491448961124254610053162399972860174345028900499693856736212631373853635084827693940450187397730037846066107230846086954821215773788263265419084699435498608560151808824393311729096620919072297249638671390664194871594226146387390409087348031686978405136245012854243671351614292022190839493430931620327080474619175240999909533816819624303619039523256520936791775270341909108059919081926463188244321019884501674569565665040584715766370137058262135884738250801421454341467463594153187676854527026488089960194798478394831688490810607719231471870741810174304157433440886186690163302437806597543263243651079072989472264153685030774197582016876174884814302006042214201045292003660887510179967415365663288291872099014316888904151565154713664081970104555627068928301652910607853304293272287752320347828571131650647856835977790011174401700606066774405506864546054627146677470603808226370311387110970995950828325928665815824638727612867359996309165001776279037782250613638067717718007283857386591858573621186723418644476265098967669597388094657748631392981112769842969411381031285424868076626964574985782885229404839546824843334356572549252181789088543157328107212495951245359922626795457928817506001404680473628334916434848772590829733499644475596424140233222377397784827676573787917710040935507000698161381002727188498380928617819863751723094498420541154942692837876897177273391773631289421347348156651781738291649299035036260911209749867294092735392539089537909188226345937212619741387318025337282257707919636608589812924570034597934637874552643381747873279673607884069254978711539333490170854909233927835465247428229497595779838494029334695900395092567828702690141473660399105288552672498525388883107814713414669247620432178783587727972678528510844246291971364632090907327464782199454099382252074148216156879610810779607655406739206355147615201162826588261511117262831199190967100536578040785567241441110930941202502520964271036425398580601579671546021826234134640581176784230193357488234363118878048629303343206492122359639391623849477893223639448098267176585321874940826644474427820303331135962239941925962999511268156665338513907676499935937531443789072845545921958866428891721866270485144014288903971923871846074498790524362109875902018493255551927654593943861557921009298095919400753000760950609541773785397714061571170615397406101699990883635732072876475892761736139132803564056168895245766995040455054586095451199627395164552381351347284069075136839236408838432517246014588426861464998886025133053903942097965553929126826738720521076980524486306728740077621695840819417743420269061799490844687382847631104462931090872436830078964812132041871031969934566831564519194788765601161667359849041677291390057143536797550508039687734197376811555855473021351776341922389376627463516861703560360612874280306517986936752097867864916226360729459791414502424537931432909591201770169032026225664989880231240811946992399431625767958831432256669403415423862211273088693094296753386330332204781930846073321946501079296215060484356409959010429692670844921048209793922903017119356093901764530665972571860349534258530267196688832867607108975300048569264449874788495182655437506235822852983871628154594139164853916922913614409612309296768300839342931931657741345742189795863266981926450826777534707175841298916195527986950759725477621728489788565074914942842273848133913201095818078852852528258309987471711367894689967943663643348437250444716935392908586556094470020180818842551259216554536002396462652232999761520194101999146430263513991785485861936485960630460293188000581645771333183613169641440158610118657033850438705387078144434383870236069785590686706877174219626239503317117461266982487911782424555934549100276395435595042790846380014912009697367312897643432621730755151697041954722505083602991183623495806948003656582789808100123678146481796940582443797046586218455573480410480467687765147389175782295394462988305179153712419234198369647042608977190883942968200275851133056850345843796817772575301569538904853265460114853061251576693188287721875685765134317500991033537544927138957087532789054957312783026440948788750524298983738262908937856306233489491936787148501292167672041033619792341871057669928427973909754675572515983312877306701450183818698338408951512642657663390616715467363125093478124424922425171824813563436295413858543523500004839614835126041326200505382995192390555837957865848664850023172366483074890667788111238265427068648929539771460228278814898841091011651808241434400968190109416163022100074074969413748831939590942767808043490896224711254189691003826547804340871331612094927213211202760826291375030471261759910062863360984858941371888932531407617939493959828720721440282273790755471154624788283730102975794471711770496204768972434454935915200165306188451631750519615481454392039333870077103907045306414465627583192901480007827881989427657169760875141384372865095545692151782665415845451306072738953630778149269231097375875927416825243378587621279743089974239678883426817343875563707008014154449293262648249432454564747227939964330809133046721484842824645036660105506713595318623878494959432795704169908636806652141820729550418036496339011119668434088649972308388179742829855776257623372209689062525181535949864007401763383001957169876292630729891522412490721098211256207288558750960577735660084265086009036552161472522799033974792620211597130007828562444695486997936656476420485179806894868766822574378469776328993416752925136277679978465125859477849248220870445259333487782225031496970306969602056140508237471217770380804693860648356888177609732547838920342871021145326897957474103072863283809459633267346040793649122683062518434121124856490321636104547801695563707539990558747375801043617500417328231004649663262879266634578361204496553151768880764588185049227347312770271940571119318278594068235101379039588040694626419742620229095594445789583729103671422717047821702378852728464420055332292234276818480161322989478883734842909963893892852151334705274359754459865597086860851742688410879348779773714957654555934534441418435916986217710043701181450181857886997169097734683923275239679601714282046421206567816939229504226404702559699342895053805098820362974296043126862203378025194542148319358421807601972303440068460311725234637149741480889064783404269039940159743698062214333403491114630319493552561600968464274658533885221954828891225076411872025268163796006620799873551777498560638260501162532651618055119596182914774657113797209340870770205959464801196288213810425569628882583649427625685310277811650048295009586751959712756232499294209005232883910119464659044559796688725595128808158496363030207697490467723951301922287510481491644859302035386062696802977255503301925527190921745725487068448649520093804316297672513500987856764176071130932003082488536847389693976952101500270690115476489320181626050835125278202958411518876650344543525800944636301019960647789335290342062864219587437461393839096026098960322310966966547830127246004168735850079399183220378313932801113424163782646937060770795001081154137904763976907359239764150186348809017453993390570456633452493599512871093046087300918804422121825817921053641886137464955798706710395698367365127561500749565356234743726897795338220848934409189818806245783242732147240900692603775005808913566955194180327480088369812609893594334250184705000045870978446396144057878213336695821572650343349750204345265839431379936157349030952250125903290291835588300440959940446894590198350328951386595296671070475216761263886317172504374198921229728467870100427757587664744138221725773559681107156010574205032262612737036382793462634423024205645312754925057346411227790472120278490052906250032338220391126145753853246619141511945853624582773516462557813885389425477933986920151749848711957296912382390719318561293918262955696408486025254779617345445233764807250438453954388633076387560774293330803183288716988835208715132164579237751982647224917288314673336038978311398775283057329324237811145339713955648574507645816530215766966223620456455915975449617531013955402570832553626788491719226690246832022755025807701223712263131636406064499667476778813295639599900157207493674159046525163725308839838003844228225810334638746534724443402271748352363614703355909605816819564794655365335316195358646069137152856963755467555810877165338311772308258224742900992221966952577548189375658264416346857358946085169547392875123485945457689139023885498930812828206801053080732226955410203581255989168767177910376680738988595266127463334951791370038672130295280741705525202558657166374363590814118033314381492343129437911616543495587261778644414259362936389926790987388240881630094841873618426307960082887879671566620217781881733655240519110487987803981840305016788811519930579623105596176103731269613444186141743467844758249788731253049332746634491489874724243700204023778035518956532443535179494672948901634757342395815145306290040291689399594392907794666264359040223033210170659288336065961747074400321167752428825052885888103218707175128098113778905721088736267524461742706485213612952712971942575219468405306737149012259225730935047250751966849587860881328866915496028383791194909212977433300324801703878351392394751342419237568698091827481131054244873001597955586281681010028484784892128404306608316042483155640667277461819556719469991812399742989748761044924475921197904996609993129864036066958696141398668401068760986507037259150926888566996591108290695783016583568498791752572628340004787957860121280165329967825865843457631021587492117104368681027501953361202219828830645095777098331442589633634146860576329526045404892936760339514246707935450205982489157861046550240476482423287530252370976818015422352158989667147202898808801647037998011012158495373385089678636515026118567162635916832537978048566390239701099112335825043671305105242784155715583489992921392878540900740480820344046348756099646432931216056754994287902679565397972990940704239558127780804988588818876764708952533604143970603074174386166895833398214276549714206540409611196583349909162279954124226758712963138430323038393292538012042294763921850249813739464250697817598735559483726878363037840644728919038639272325780428935595063811933820723463140409003868164869208467745225081796138531453916778017454495619269991095403243709458982411668897568285543287721584985647895661166326845137586783180320694649766935500530443641868712522118569808424002185829826939633177742460937566117691073440506842247063429590281730681653325460946571016862114092784662066259638275169342412772425349179396853277245433848959576944399765479205221398883405999141935831777907609570263719581289877177787355678718646652321814632957119895731775353530991540182080514958833983649629414829452705084807450593896162367367459473872397442583904686762255258989109682616743049080466113945406797477621351991640358955024507672601151288389631186970800183912330145257546567881372851126518924778904792123843847459866322488135358599204110478858639303020641260372006986504149863680152507074220219756700848496440517719325332672004591342114706691172634193812589384679590661280211368714059319741495607718629302986030779559405243441686371582341570761772872987523485672862697129562134786431701205859219673332628525665035095050191476361769286379686339645771955183797202833750770265586499381057421593081538147215934176536122434559588242916429544849317090124158494959934774587411039735647184922196236803038764778463984776415398174739579703083757139596496750516846881900293372661272356467594925771780236370856468680499099925832751863948728077589250917696700184235463605235332914801468065962640356840252552651682264471025863820565052760001295919789131293746742719698622402331319608203270450864378312355053492364648329497858586254319910076668487998022346857315187410107244752505306976298573180960980026384835066174716164085907879249153273293461929751958921595017086337158518960831478190243112118177416761567921220994837567896434657918419762928333021076641093491281321263725488788373181590015256610045048609739771427866542183757159676595189696616057034232894067746519005724331652248192560085387802880767367205570965701609215789540831562465301186352198322054682784262254362702176607819235183043099568707811751175789234049633419058601715184626319770034691317548635580286265329576573367036922008573951114310385742851255362151466592282210445230646194239862142440966071465922871901961208360319148806046122346613558834567665694955817522642453693685784524317781414805355019608495631705364127947626372644517363571590235218015701525329321288120544063776470802239843231462267265664821186865025524019203366016726272964072207121255985125263120547121434174447275067404631400718385892721811353959262837893723322018498957503932273381033561929707222217185817442891623367314837933605091066824925290241182709827116276228259881861775080768277645735281409802481872562638663991372093778705784410278169624758227595528862780416827555922047695670324549709789092174503417107448819685382486517666520634942865543927562467863306218784709769923073393029471487604398755409362500147241351882115010964960885267095530630257496670627477904773043405321654986407996183544559356676495069165794155636771450084851789521817666782537615946415490418466183578268322930583551036952381338862313201644673110808683078376492940665293720353141293915924103238616080944078425810265166254319866128852441982826618885195108910854569651726927975459365004712488911292978101804749226352829334723274933668093858907317816126013449069823359239886228741937709433009817649512911713248782796348158926827707332854981835413361519119600973484084020403784169355497878195970824863320205912999832074001513356388048355985425310306742264141983108184986245495351223158533100861950640860951085694670450076145325568082322404461832834220649320187411470871346994640190835185350032422848422617908641121414772581941188966914057633430838969336932214649508109126211688507048847200181535144021297309970758883796672076494235328799808672227006595874265210184256593096270376196713169052524286223379252094837750011809632581929949513996342336058730279723194606425794481745565056893600065685803192499960259230750749197736640731910527829617120863938481242237967987690411982784583135686874172914129833294219935286601808512872497874477093623996074244243603878329575845721346368747517816195882473510416095128806244354254514047869288558918646616080754521338446762496399708362844409163090695654491412589757080666600459612267344249878431167166991446913682981325242056984417964825736016179177103161332135828324342185699051664652606103638636734159457010078593586746772942664088064267229328970681095964919571338236403833218795952360767739346163804312791059903613810977947716395313388299168734398337957670780676890240778830975252769105823667956221927083683474083690116757904180566246935165183100617050265362348020512627318066727580621658479476397738261135931517387380096935292083161296730441018187569115544731505523563081518271089942935915772753239136794940514057441991866143113545061976017269449109152958033824013624823847036062897750640756699507945961053016595445635542517328023406809237643442932332172111417279660700918916532265998566810364089152374567306388128709565640753812883241263182626200997545785908196377433543029209176423404413166425634244010676561261133920933664337834272842933988370278000744996274801759738791055206110078241600976117920341856602485699780864601681692855822617130919863820672255042038627303792154666207348699238136963305937475006403902369861140642883020236292276836542082503980929327552736178960393263900208776638861705583557761393304889211429090271318954924194302714293419667591574231342692183494284450316718593250875434728969016712504329393151088245959474071372087482083495500790026082290444698178612501492276362614824470155855665020081251440853139825887011323878451639120188536822520755206302887770837060022096683190599576140474126513434524276236304255744564819097508414064962253423536506213078028278566292908596310034895883718933601982246133400930073211969823165779357727930154873023225970096213774408973755705396531729034894739198116899311069831568235522659368971022912837544812244625773865307075902019439458039496024496377775973384831760971068707068530432342816093908151079881170346198715633568158905463130802198754409118593168746834728498858620002753663883007188135897588484286612735235673998273374002413812529834951450970596700847221808928963954570544138711450666624766616794788087392229626084165006883478382864051335312239768995320591028210999172690569856237823524194529897587942511196670132828364787521195657620267141393027844841687016081348256015282878212847207955223498338898770366866250589173966164001178206218961018491871321027695640603302681425053026532326269703880104675561810356252594403808944438991613642700381754904646784090241132780976298540559116252670431526224261116574617868773818071713520778742271287289323420664467310553311759815767404551725392933009408359146561321136436268836800905035358377309098905709275454638486664336792056619793541651074544545041461718369399859591287432177603882104018303680865580108379881931284678217621025207214896009252690831217936472649317197816609764752190121655642664095711868233613885371942943013783141949038574163612413002109560422064822445499524348196749513691774489077305512592511844465729921531347703201831489923382801573170607231040468312320511410856068836441248493226215087554713511926881275194386965768139935648553357675752313912386644579817324989201094882463504042610948152280712962511794086038208200078905565280126015449646960299645102204426605029002362458215461754844674005131799672240136484942390643283180264895238892962519842228618790076453917400063448659012943194179113071223978256552761113122219787560664003994836963633144079891024034948223760809581130451133570321937437359985841498827078371713276156263585237214075541848622427601013324188057437053732422114385597201420269790037943245847110618954367715802629551023248008237151428410651867170703840429820898605582832765005066130878946408343716182108458495861696696479467288062858866246498736928012443280494505498510538801968350176013262793867310586280150751601364843833429349122377263690434297322693768899066624076259654188964453244283294144578563673366129653802646921987730826738084964496260251367108585264750719770549691090962658197485904916640044992566693558806417517111451404088515300461704630238936374511237270194249745692073314913826797386619513889771678896627639466615602644381966482833355019013262411000757708568017516378961283223258259831216206526910183033960219261545109741401120105442453723833620555767649833964726571992989304309177063981087246900166447444574372885175433479093111238915368158025596010646403908402811369317688233441017802008581035683444546460399382205753185179416067438417699079315415457840818962848094735998504961744213559572385042386531391265920674345042001675568072593605240924510278215991188130311474367393126468773459269282676986513972361816582039138501808426132443205270353872017270699016866252367270715911808465345354197560710723798583022645329048296512000482802813698776416664398839120470312735115524725437414943044670689106008095105253246065941708474931034854678446764411543159835415915862699430387746117230734980733885952881638744084270531368850593420576644660978034924523622204500770396778751576890313986543239917061735919901946935585070557540769962995740579814818935565450906680399413425197346083806927765107157276244253353932698683833504754449929001628903348376150849760168626088238245722831103045343501848076850166531288592927564883468763586036155903632194204502598321578011639964143065972033993241494228940579773737175879834740843572588334337132494115004907500053951279514089573559649632427764648636504649646459579347839129827472656385709080688826328496341847251004814271798578123225977653157614042830415252940767232295326883160783999963696438975118120045898183402241297522055849215314828013070502055526542918404711036409764503023517071688457355161246821520827954619404663017690195679143771007597435905222496761469987087030033678192047999965441369949333941077834313596293632683954349164069922939268102293033793775731758717477215649754235491967046233017980061193323608183160250443165413667407483073538932941364416429591890205194741140143847003623594467437292742972725390514715545436030302392413370549595010850473692958858890807111459381441345879383253134683518885554871276799190501382980982787812598182919065626757272796424739151531776013801366966663430683473652270701280475635491578242484839116240748834433965304507151981282901781031062207919786899645333546868670503571630981195062611512364819711037639699440798631969232293409808460749660336276096841690994824993079686091744168195966451358288936969081593814315483690581928991368981692616982059264975989540193226287022788137710376648251755805744481430210708218969494371928599215228022822965891348419981552226210258126403975470517195032760940354638994445264196857658699540855411739704458930561735531061652626799888364520524541623668381851869468265129257759899484549037673653882887767742122367369666442109094989881232852978828034098281669398362453374731843434176738668373530778841271907966430413340290456955628863402499751513600141256452633246481450375848910824570336966860483716859998202446848848906857627862946707701352732102920341147507988809556511667363273457000691128290802140442789988364270993018861734875944845911086314238388239457296633205029377429849800010069482364652433385168657873296196186462756182556666773918790980691085219654075871787831233967618002223749201548387495099674930287032144999002339901740790790086368538498254368357666550571264775343623411426352974788004895953419802718186377750120357809176167090021911314533902777773899975827303102969321190519269661099232089432689027114799167805782974967480621216868637931999546374279865375610950758592539967382505158415547199406438564777055556387272467722737641728292413851892064298815332242197598120726593571403384987759783656109773592597329895920429074140209810229718592623359415633487257044552651983034492259033784430132896128019074773887710445857139136585535624895875692423560880679560136784523410715073583449619623298078760947266954733076346813574844372019374493846702404199772029148905516831692413374191497696935752977878186740869858096939243908857393945694450750628239802657290106790500958494876780683062453100495943761683742054607592816865968307969290178214849527956391135509469188818785522593486263714248177801585202642492547077014759140610930694120467354257182737180824020422609516592651172031540670896268386698111173785653761136226724885632669088549583722531410906387247523188172331441260776689736013658744133391689828630828815185056934613710023095216869993139181527761188000031929168359737760233658715391473834967479302832200336752855077076938113937386608733932678057065571869647039151690614583709560436545000561362382653827452970798058996653719646348291724881061297495148668568995808006407447247784071541799292955336256280272000847378727524320014917458869356219162717982610507805482048318767072912137840943231660800099908919463516910027562697435829331995507448375408415454251069951414423644695896921600287159117113894030897537192861691958022449331059013525458986273362501356442947173652385155190690530652523948641078869006132980675713460103298399539565418919176647716777777695560708967865019294470908812686331072154673433482157644854272938586017144766957223893795008847380627495909773103570480962984495903809826767573171803170098159652937727517882152106397076168221349401898601863440101127730604328095947765105679079777962109443761943853428146020066188018908558247219498532600902294466528392171767137356048719864110897946289949293627432251417285593787183764482255937190911650730549298898352761862838641197067371386753491863004345763684176585291258752904080937421552223882517359766980027346027865881463332328188090048689424480812460719548056405388315315399165977579644673241483729054594499622347155714737644720729240603393715828182174278741202587324412981105213507870368014767748378718341411565049273804588073949213443175359158727017437493595248067897420404519144243394047218557621559447070507369914866382612312665038727995998431779540113606896918395032431921111610243932251956009204239630584758564824805646684567777461636514860935565145177687691920428020617420152315493851582318619367587242298711269483361071856219566677079661445872326068027081392115805375771283856194938697071521530174785515617884536471400745048387625192560189354012096631065225837390820615700196996776763944215417701789327924820869055506957861046207903060068442339051910256125448202889927742191317958242181158953497167755878473762673191028078701307039307357949182825737351725163943048897362493490849838547032454533219872700426475712023286098113511551354965451736264966553577552214799849745616019244883403365204682855333335473622789110930267042636501438459415538301330978129910558631175466763696745102709037868399406518319131452495863687250283216350159694611521715015293115142420741403702042204432279016121450451111982176094135422770732958660622499400911324474814804814397450220596001248001649670638964464054675503513835426381161710473662384337377078897443740094806792971472479613143068326090230138384502759995935604525128425016927639173688368124069831228406919003817383744706036696193226213999426401319877290364996753762411386251446430938105699496759796972679908461328853994126071781467383212840486129322500361525269198051463284109749324975090179326194287830785631769136774911732930072073737345383766742828352464633055216434907727722924166228067456095923299905386745184547374408752878563593712378224362425934418809915904506734202487153561654906804131150251165068582457575698351423966728811294722711141001847880266455367964793955623849270469455381212660274478863592064265240061115073472447512766712725301440062381837804711534098236998233270362202739631372543865684633227958221195959060851091279384803018519577984401454339870710907519703982616268195144443916329983797790187402954678361678013506962566410307593778909736302888306867779593837525911240614573544143942076494936606422251001795147339651594096582332771451228019341016544455220041669274706801687931832910583199098724835277434827585660614397820217756275509400563387609793138359297007610299451733875444142206298386473189519751238879241525040948189383353212526072625170045948649239137052829821366360161595072510519015630617705286060853422847332485807858556564027270026132571512604867788342510031936774038947891317134466803793445977752502606195192507078858198894024211213876727315397363155352825948674215019906519517447304979233700846763702518325671512746252304303901961460090032544527424843665687147084886841106195777195361570333860876580168030737298656256094397032314346755788624048948390879333594069346689306990154854945299057239143003593596598116028206454758050774922001157674843585239290634279141946126266609675633264468872739000995523929470213889501507801746875319016873893546425944200832913673451864888160906999461902772127848634980054263175098824686159094941423039330536330497640398427004189510240175211820249834601129016030236377604991450393074977683356562884448573093227078551175808439345468287157529884980415862933099321898474005940599980057781027499342934003159099333248389638464974714978482604644219047141575326208228758156830401249724264139156441909344841503429613350921169902180307849162005560850620262572513570505663470946853990242585222176432902457562968400965360624053874153547626295765572352080230391089108266512388293029543152919084958514689817534789202765574182748031510872173638775739192588007983683006382539367076935243815646014599265949310744528312455923395126328911936621276931365633029163341306829857369560134000308997180283286528585766505401134267698638272955765655640378190667257414399228996781456640124374305165800044892432755370965016534404509820027789029008050581069184791938249385965458740443049446602534931396744047577753271609369157688008572242181713771310030293787738615428074596640334347225738935608493764370314266937906806715838805688971375546684701044891917070435481376922414804179184862646095691590864335810663700332683045937959689718259302942035024532208726416279060963043419117487527335734059110212164380655642396681121394681679544253330946949748938055841212596563541105180506819642688562567127286830945927762943735720841975915809174834887669026891141773992489291183796223108517876619622315780847028989350090439013015668173377893215648310744295464575403353833910782652943239689143843005281827837018773571903240588150460250412438011064307456022673033762831358477394528120463361450316137345897326980134244959899512044779830636969074817290076178005551475453925001628881601502557656729478498148608130531355160910297062897106074607381635218535649973812015678353761629923345088076824865026273927672986397789747058913218268926207305140614618049749201107182838605297866128344717558675067488268743886006337640707421596017914885403112098745778734509455318574033760383887164267213734560520406834175959767301270077261234268780695422635456772276068473771812390981163075539874235962593195198337415015759267376114988665953655082320358637774893204143935803796332536076549303537715525295836732588146363093165637757361145957415613229848529894971887785376927809185397651455087935010994545992671766669936576125918729285168627505999074603551709276982786508190271923627542948763849343809141343281745214591518841394376713303525074493018777018868762216948268772582033448757150104634824193092638406011161538851690395211494253369204287828280256655981625157562343095473435276048717304892912836552566081123532512629038705463868907236493075986469264365944111419875800506616929939338243357791657571348591269970987737341116899815029292917574607654769279761383621404121067617221249666404867105711406296320996413058350184865218688316719754029673074250288195594421701028985100878893497738181381219269502694142332465429455201983562649538017068379470418541892353854106141918879074453467087173077601660529149078111539267095728224570093902002921021459985748650710208118826721997588632922610847999248073356992227376126561782037162907138334993190824103064272483272092398421580982505034054408039867041243900987522329015702827876288984492941264448352313172051013404544009510733654007056834266933969309595793109369339780775511344179008290615265821793889752565654542979752551622161771592294036404543744004774380157951196855992115647300303375059808318091866400932153406074335206192066749158629283843987440985359662438694297157379052024928534087918381777025882170914289467975924377245406819947270391652855260102881235958642528718913328008719401692587986611173516797563057657457175223211481421209166522597403753048113600056379712441216355355281247238794961678598968830752368813735267845952875652241725139351186804558558840945907382201028388069101335123794225490650461437988598148094214685596430959963517560664570819860473482786493846224938358043432066314603257357268173923844370675517725543291382014773240938100187947978636450353340085811560346420261583554168200349307769651811808580671752653961996418600286206318345664097160003213344406345804727514962702778363328533164930312874768499964062473885215086231524462796446011341607828665162294677670108260213381125654027613265430973397730375875467360902317020945800036825944372757867621970259066266012500008546286423916845532382787839796346017975897729040317532663141862482083370711970722299024663498023294344773555044087400758580252596234224859704195348748198153735901715814372065822563774307588902949356569365164592266605620939211426081890821713522821574354371090530110699158615274930343393695640395178574511689134592173717850830694384240030545149485325692287377244098719189409811557489184191598911287387335737872592251737324763710800390808802703371857687757805203338604463935993487988139012767582159748321586525102952797838951130158353873758690037571378856344875555186056588991170024694849983524388271985567766986910867884791865650601208073621777571520843935198636503119007703658094769972516790616812679760475322861165935121561454347659866833499773384179252073672502080790886543679997616781872464355104198054144068441859124153175810975350728039923260335617507560669616405531324370057212869197065145877016476010781206995145644244592609776994170026395832321024803047471560929288426638544351111364553276460601278869002939631847008685253331713066810534879229113106514915743306833167527078325835786336572431841546455458252132384993197105555913961418669437019125062960752298521436198915847540826172850774375570846327922001298696369254625234611638838874285368983032555678940615032750691091892990184913851781442328949142595163030178016825090108938678829754032329662380425405214554620021147773692009826100828295541590303891045973254392014856079462865799332147056211708613058991600593396903518615209711690893254362657395907489455111700943703149076210521088530316543047388231548503422068387121074511000846737625702088424682564811854705145360493666633610463564552630080138180401227974711269946411755177612290848077270010827882503189894743456246399624264397632763480138319133042301810143182889372204336272247432233759310122908566338743051387807167904724213672350219010188718368994282470735250093198569197387908316659766769457369024385301379882677940598036133473757076599785009584308069903077842353996034930384725629781465286624161096312511908261337618357344263663107619991698891992745595431885850395203099950881404224078704027192014073465569699956758077214621625396525320747703919164102780513332208758187476700847534494840111961542242576748872423019926492098261750422719619412175125183709267899995342583882266912034278148696006834162065772244492343016955463153596320554573300013875161201186492304753429221295471069386196461927912144295757319692052241586688679997598077399635585470819150000762793000630366551605859581683131156942978082449130981300724549807814173261020973901564233430618225070120665272218443396883960593107472488584002468947078959638777570792535056991823649139931795207643670892698589156346750504177813021993028215627873283575009619281636840325421111576832438212206769050484068105839317069156688516941390876540630450116397817249374721025538363147126647531360563654380272751126825624224757138546725100312279619995377815935072868391129284924401639677776847619170109799396982569789911803089547819190582829613807181009457495570659250916063270609373364005813842156868854824741211327942251057154132982790291475768113581481089929167537153905921744232900608830595404698239885108720608443636864248785730380073055225541547587847793375434381968982719461239440781421064697643984930820013886293843643298935700272106427821055130813433792983535403910866673966073480936786468484261574129951021059217020809483693750647301248609072696258129963872731922652903622552215610849277911078328723705284228652482548252116723434565832819553844237270209598031418786190750754411671130643763001440767936010231867314958679321737629722050712994409786485645712116801838640657657173903881267742714184989272537463253515754201537078019456523902755134267831865251720183082909081497948293905219382480688643124397596764613650141739457906626120327702544253639388493777764585230605892176234984099333148360695274901942098950595696590395700653668444116975171133868239823956720533306933498373236340890424306642220363975491522905503317268732002742277167950734822122745169970729486072827325413404021598805961267462540889599279394426653795736028888128450864530566840412923537079354337767065051909913406562881107055809584487530457112546069736730103017659618109156790308826848551505012438110641079560928914270491098055923330803849555451112355381301116477886958934737814655938261081294456974811219787942709411942931604077651550793422241924472068443047429502889150758082231897308140691151522010717778946683671500460051919773498942237970030334955703092799942402956579378846798748635418703800071513122632682252614034079188455854685093782792469402115366173753724842943659407301696163031858786560774936978987391732956934771264563419874537689526974327755730809693777080121263316797287209232319702336729461826496234079924080124016495195782935496754097039049163666524931001274741674014734191529971687535914025688916560040600904607405023763139675610020802814727784643349274793999053960536115408881555106393736200336365094698442548424652766671201218263479857464429669397664832145860601259640982534806734087134206301637176116931668133354089100141854364372457422847812444449711090907026046263455640029650770034204697403528752202054159555916713221243946935512257689303359345724280921988313105014929213632100419351052713415689171935367004065806816075072460783788708047472461492456045894121603271470391525000479216616203081983182266097039780842799196125385802731586997434820612086220545409731543013510278436192541005282736728688742647025852928699332722912301064045648498526986762106422775976310904544016266217124882310315081699942929881508005369321283548197976591731337770917647654036873863486701598201018620535023300384212947786942062723384167660816159944321696761297347928199542114164266007413187210055749359868010762186335437725965765247608415728419356376198360781805673754135394216882508612968934180353824040843543287736442708562090016205634814134842865033727306606964956090270012602261337114979799193737466450763678243217303191777979139461674749281446633042113531146140642013248580630802178364595994975518980761925846924685294999314431290463657475925641733355128328784413975755280000226892097500704286987276770729247286744802493097823005083202032795665121248225357656839089308736496391184194836388059010703769658793319992313822901462139001211194979039499734967347163674363250996021707440870750101489975902291180140672835171369580119731742381035235677125736860221440411732420183644273300813357146389877099171170217360749121822851663412690602560164156362235716573526846125107409863510837058935341016098768970977708126554846794907892835149308220599297610480158970836567749453468963673600799677421864297240446034144231799700890076748352598463900721592394821951121801193043007136566410611734308791831281281493567832432216051922841466693919849598703043671478877777194029704623703468043731762353253821935750776167864602553601767835583980659781571676730133838177100594763233253693573808033511173751347798963348138550958101248513670346005123121909745545778127169275475064433394953249660829327604284368623809563080789207117151779067521472397306455243754319723608302201504800206642288145170565149486447435179729750669049439557706683748639456004140799079100591208604728455310734489462079681475203777473200496699340642537838700716295535184775007386438813355252520711482778649672590326691460942133478324304575879585392486892292035903007008301023939145182410905770100954854863967750234020669996760692594454278826478950619024341402446577806642118698029959051857385440076415812523097251408209069779854984240760414410229864210334958393458167264556926028648738987174097455463139941807396019205858967529305570683287445407359007857858861878712236258090706434529064998948908203787974630449284767809535685473804928763636490729320201317858135512024137836744248320373352279069604905619363515408417592383122666821144756949139538618866046889531772085005009415725262899282449123948493017862920175486047165351914065042414392246855899516693894372454609256993450664316832237562809739632336133045748585995517119905290838502442352807510573750930410522673858049373712841226870033382423578214892855200602199394162779846142157515421161546985851378777669639160413096519227201208892402415855383191790944248403941787091579921311332794668095491006635075007923443691355898272159512428610172318766000658886635183118745592795163949294046591272767413292079320114789203020790282902488807017589348773604780770805747213133908696329584507170581209987852830262573451217970963620612267931708127529189147495420073452253975623784873551162394707039512366617013395339950947629903007464548674390413892353544692095009752820331579269063812086311851971657295051061445957840678017494173238264440344725908504272494531869756601006350402234753513086967507157320321969924878282644755732151117017150953996921848351947891921335908209949788761101347688629589385270075515658456768878756377614207621503201013533652043572469003719580566865829333583083497899915502292510802149888709563058112374175722390440831925176868650891428046481472894347828234679328581904041326521780772487172289873755700486605284232981755314841706082666400600369480558559713856548655364781316783986516467955458117684476170020359633571499194326943595583578432362519353519468617756332037819712584514478114265464112783977670485597453598258520918266951391565796344767173539220029009148096426083624636082575012385148197566349114245215243037330963040381471391930209914882226097491325040325728263791472573771681350344625100531199717907191889458211846463071599158313707282042566660756664799662370826706663740773604380741305360619124298399774494216405291660566153316442160603574684035029766876470770798602682242853584444869608504918275604312931804093571749938770199815107044865910617263903283516739053407416883939662997617301999993592091723567687588931479529424995494241997677509741706761069763111321696347738569677319272286923269140055856897947061993666852962730603802886448498125596162447536353804406777141695030820784873906929332061638746421943350356879983805810358254024106258848885872189043316154395178319863619072384981950116120667787640139961037172634050434651025514918875853078300789731667484083856002411289280320918893781835909579991727256438402829267656966179612524501820489433321245287549770972829552783911644027491394543476594520194064620633855547724579057521598344363875672322753816639900038675130898711769557335831432483650909625474717429095536230142197946890395060268554292646711891393443305023036315912780484083046989447805179339409613301417406707879081742168566945023612046972366355873407275757258175654601604369929271468408722412656640940497473771970281372693640748282212730767043802848895126080884296510142920917973883403734411206579452906632634568384146758979416650635349211690823582995262650397253327411063424697801400365256612444310681130754196227240932979338246055615152020124666824870447003053070227545563447816988321212142934913445176759560104037835014013727129223031826856569773002906693316473238078338484943811639958624215874812408905451260285120018447445862756357149338976503347944566839472475186852488154152106224111704488212909282878283974651110234791695307994118048989647222998848783643963049399568980530970999550828007741341432852635883561605283942211093609058628909553797081496170831996015059504346055822209163752891224390067399999439423502091435317543486123927080886891829208893484308529628655688651067390635475993784795031756828184151617681042985872634063688011086077742896103857900171082634328371208026024383694159930031765752311114822022620521084251932978421085355011936602203629486355716689617882785795361550752476617496512292153666843241192162712281551245464330958975224454382544251640371489989159085021538648859409736232270252895213918535404804853070906900312010545728829749372469982265655689192315282682126529746695221110014250216386349638596767154409283196355526069802472095439592626693913100176651134603656823123728791181723270755396583948728678127873829520678077666091484440295934056385472306042711250090449261983101264822169840018749229719791203000793846606260142370400744321056807369001062184032858975564113617728682369047386657061827575877682346069448269235074490040452997024165483639756239607264178215826054758911880526408616725372951523786120665546291727028178015008596800865375341234336688898448047221102649848942985610457075984984767823207373185012013209877449034564767080369165160846980483444783741657053461155606186953119157250721100568238233914502069879900718995214882476036647673331410849902836524518970705001621558924020805176856193767212515713276193840665469213436315634270300256740972981438509348905008971985526699799778678664358279676317010694592340248228810245331494437247524713494200079849486815655280093585103449470474441890036913211888960092287517133635449089236032479807618752872530433106346952498095386248818169227062112127514121732426296039226474586686517221131065548126298372219470641430246526681540177937621169755005415475325792129547954600222137586708685043371909814110679091154018833474530074947381435057079366136090599432634322054134205679652319035903775221060426844074074362172297173721878424957827251258897555849330573420913029784644410331955727707069976463442691840933495067995519833776205645794924672960536393118329716734753502888695537299684918633327281387282025409787079135048361929297152701020772091474966867767915559524877024356630916749639796422799671781718243280570184948786641587627751251590836529358186208209951906220016437951844736736795169503188280322526309178510845683346319506728486427848173718428750725884241856717088994356335577466752555159513455871110022521184028212729525258293791316958770363602514420629544944447649135081184066435593045036346125430262276098434533202767236138716158383096617181804327945946405144548479139636656271644910342729814883643661366835612751781645969597690587226606027462801263022033091012017215190326093487757138850260026051216366333134262443881424653420665216474807934478698830148702486766863347389148438607310051810241491500703395239724772728942308244238262920549161755298561998959491825477035695699685576848799675560662830065127888306979758337068145900315440469348139906693943723196995289962084098904799508522221190882091926477461455901409696755466572447772138096636461681684620715140211825668192206426440272591887854083393918741988456641864193663945935370198666484178469959158294347381341708004960479451258859135589889799045861833295962432356982700477784956766662705215324472403211994530054352599981104783885308500396825438398739917997213722319419950075913400959386532273635833221806881476470310115483940963172130899462848204256751795878449218806342508076076758692077076101522603844482334979646378150878491264110182786626699970722908577222274343350051026857618950200962432878533426759496180322204705997292846077216745835328349482084387745664918682393853247128858117443500825627195914547681199288890213941080167975025409453428203064591045451650589544799983683012327062459787305489187618354352224856674178280764686114649957199997960489385968810235380375944938894830387458369066630420715568125649908237707021986446617683890857408525684128842811057168652007132467068920298810355781134093618409847321277347369522927010422184689075510854401221254536629304904066852989560945990420416888112266545649676792511968656093566186579974278788652047309331791150007446372370415785131999898426832184715163551955067231018464077764574926169388751505906625754407840779653530778068712292151889854568291853260808356121437347355889886196331725481670723979967025694179157671395171947468346941564709769351430985854716523573302363569439551936921130833686073632433814149354707301460048256333405539403893583427868700166266401681133369944249935954009558639065052845400058140308742916384043039027073674996889275831863353227235148979001438566744570876941122227758721081388792895381975538974582342858144227479763276740371352727514947871470934149331355117983453000579420437586728748846100288759275924952712718864182990683997764584421564212056840573533676608869115151321774617422553616845711938924882337557771592773517972710364358073808603037806886743576455011821879031835725803631920402736219915578123851905056594894875063003177216113367846842189723272798731210132327991945167313991404616617388686592679345638343305261409929617953096289396179222559897718832979921793675231395543183339485954283666243688489585303314636237412513813431231168393556917240938045772057289908715276524968025863052041974525206501918445902066003655973343820498990273589407632464062031968275694197723471636768381230555795885991444633302827591339890003171890784960343316182894887081750248584501886646739557327227925872350780802541316963972348309690230112177561508175820144604199287031706271140625365640720084037995710839572048702788229262599139274325919217911268536614909143393808988765412867673327904734380016456168941051986037837884267355666665034297030052830007329922264071147063278839838660906497758437935285079228345495098024806900380398666742795956670985373189269476479205792529644803033548549861141472354127392786496610547460003595963226474476616832116748404474790879932492108178067933430989428299755816238512835627501283967357234777119005156348547658734350060111018390135459102505938178149931613575849387058777050146895078678422861302445255818775939732110182050374204635825032818204266488001443147839896769164784968962710957821351206487397350599170516021787928767581913704121756957665464330689951499875517177855157431176103542815095327708456764601689981003453932652437610058815822146597812150759085960283271255818098583729628617190750902464507063101847095704583194744499658316258771081412294755123840674516870965648161761573249136093680468409231188628061894975465531542282816382905726792056375908523186531660859070951265790511897709332774507675037616318290653940739218068034757274458414793186465925820110787112634197324144783928935392042632561310582712003342543617340210919581933810059686308532917331653825233574542902103687978046306482315530815745164410442315671064866598934274836433404179592846738025386278956190013067665079325372916743191887648223129321234726905092866516140415053025945548713451003291101184832129645842260801198850851745138745116910725871515924421720052430486859517017386807090476719680929511621524977072351987816427621445236293189153261647575090008448122187032368634669258642937599737211407892798437957459578751697107615263883511622863389857321171600376288207248798055795844823796973591286978568786777440584414172240193559311677364437341872880278137469443684317384214909338324660602589365841197533265303799740938789931997665532241946572574140171548204743772442073366742006082984844747869219133835860116493381011981392108764518029387931573785360755179600601418640436653275380303725170696400282345334144168529637546527590714008345410668853067794849191347519114704998432801732896975745756580118900397982084482663362223387902366820235487945113670879138665921488939674817107338714275406389338083539426408294817542805541762342376071836187003319029177782044333492806866043407593775853682503998274747202096131639977957033697102708861270881939039563574229935530324985059439510032586340471386855364508723335663814450945450280768844564592543511723541491367230919650890870655814063698467409036710745414229274477422346956267327183005037816545650039142072514244940434514866099067415644806639123451714978052585910781137051469129569958004607761062662440923340924050655769576086525989506678949606745477394473457716932907783572908061400956268189860395602468122297695365049953914284020376852182787774540852044483756089191735157698695929006039985605449986228640094088560406713050393174613542454669981440438673646878634953544364046364774124716301795460185713919612403469842984623394070596445658842765153049603587387108252415065065587303245234351163116617391623390783684944849698005204339176678133805721401329157673796204357360535437722223785886331987009613786158129170828493241589372569406997268166574859408747506067928751556542100575472929061148178576829436064721115529271407617242903311019478185253052160538244815630971521219144884364675807997808297456012056791791845168410152106123936565085268877234856078574761956802023047162517321581908297830903403430701542604731192320411244697448488795034116381694457477636073658895798927070636370737235252319230331820459217322272085462878635753959117767669655549498371732265833873331319078239181380798829724488409984187493351689240921825414644390885817993634666685175839985236064787777494001883916746960497728685564950436025460654987692948146912289500685769840554957365957396947244559703184093741771105886948208219943684809489924193736780821103259270149215378154668456048806853130400571871441458862693612848781763106684805937530403674914508373205893959423139649227599360128209887532235871621121771074561276429836263205272215152731376981897963146086839662979750363462448913575112856679396824815917569860845342490622780640302726921988482688137465178255283303706202693329499281178950764399189447956163279729158752534922870657623978638874265225989888466153796908191991241187261005981378437602100643532827758631627733787046328488355085952856865843586198087705079101686623543388313874613861860408527046450110575832405261783902881727214546312659883141950814431741171442984903860470089923489857765181507866242684468491675106579907866884515376399716053420517207565145346054862866799979992005110324688879954688717054634756253070638356782936630170420152240178835394656087802906987528449399181997932981801396723548412086268778432727998890166091412117738378074273522190755734790481215983654287474727103868686788607600567284695028440365789668364547065522126855245460274920480302767255815964812783087961155315989156467665536597401243383585036350766869816845900000498451563038184490849277894855852107834039275262196608034957286310941903795636150426251971182734519711425418140638594314734168944423588251997730365697649012257791455060904618465041242204377363318915955292037561153663381646447546064080922601782609094345812352382714171355845620307385456186364267321469405677465332529327495933487322649488737617619037793917190875437458940641334219927001211872677201067133151549252661425833912246628590104151686474404010026978783712246633986950004509362949514958336001957745441511285004073771905170911206590797156335400465637379713688177198468653249151335196053928043592482134723555249576774248016365803102652917414242105304327983009222976370584043155192856793022150398055880910136405449025616297367293543645773038183436869575545890930850844167060723283158319437048636397133088567781413576927243090292952095684134631618515389123739729869046040366098227684391280658350581018108559237987952335130333959057157054827524758163805913881579712529527317497045350367234493729251529327911039848637331302799426675697200585261253585577974410641698046667770387553852368006630861125029289564754661570993520314382221741247675807082423496764828871560176369628377207157218798385739222215603829709682000535575533223369241063988641371945103243484310753139339178653977862912128553561421855890594330561027640366507187273574548258493314856406794590746503715032602962116420855242759242690566247125584710697599700495597817823612413490565136775011902313463605445649115971637295450698898628091578314943055772683092802750259715329068842871777920121447873086410224143475349796323859329209467946991664120582362134091908601047893857501314782445838108284408224759999000150511344126990048145089411092695194264517370078284233406634097227485924780578334664527263131688326176639385180520411972303521375948074679504047429295532936442224908474326688971237159930635024131517561603623040544784997353805594134707590224585366788300126398635430383129278670197939965407997748513755073541596247654398533468138487167282949842086468769631028140626424576316893957958385208804941693640046480466098499296016682337471873594125951184482254427447469906028778210891505019430557671255891036820046151490534024899551408623096963533551220263364367276983811229316771924535229512457736204305477096435418742231099051252924888385560244318775894517102915412009497622468782508429163105305698454628365079664866395428229648388319962163149678383423743274909116827133178693220148730275241068246847915503295796841181580685702827543353180981399118907366726847382861842999358697246529217315129518981826751896764106088878112328024577528284610307325043875404372614766120638563668540574942194278440815964338317382533929055738673572414661164977074141826840836370609438478845357231034158239872432498110548527924844441082958475083985435924945376687767084986947741751999348286608584028233384699474710008749530349848129759761434767685944833732965310657086366703809927586998829110072591094338216678418448318797336041801787432478940143433452385928172669283116529949516759416552550989074152915860429962985828962645442506345060158759338155383894569699712033328501900305211362423931742866072687663898259161942757862554598180069734490800532980877129477785111348210862460848708987855898250129123410863130932795822528043470116826391385231111739007219957294146989408949324752348910957322808693349308540070704820879379988488511616516579301600473213398870737781167520871288847111016381355187655983159865621979019702329832470406347786118506065891505675958215063397435618894975460942991941038041292540871093262181459736958517043821658968199504037550104914175724445465613365270822643362585787805366379877103515060126520886267854709748557791640894610709505863257855241742298795047218743248123308351870044260736635301685640193454454725331472349090307437822271125293955955235345660947546887637216475310205175222614376113881917087748070028268302087313229662889370711049917844966517176525102688836933039795965962583624325984904846326285947875513292752583254532975559192261608878156520205049461491444296767758179719787892754806726905291798773531486320392149722538719334382809291200901529623711627067268337443693520014658639771746755038153891062383642684621397455512815050830716552740532643078369900790689356361833930702009879603726242731942884004757436254550248944287303161060490007242598460217057041864166270888119197124364323582549106922210264273298296733782620312255395110578556485549466384368493862372665776850904072267155813528214114306478645868940350485306645698056599168889252093050831406256738841326745688320027558210885710072016013805173941187864063864221339364684804645974616972421466127677892028479824843149861441655808078060529384891387266764447949003449207787879531407041638028042253840938612684990472519148630563889234591423847134696337272536917557850922679313953469732096251158521923931576243257169023381756398839409493170464284456190092799589591647840057284694485057811821932247844541314502742522415199614912205839932072090066497276354331323871397611635774522057652851654880744551315927237184854020334975362621096994393761368316433489479986006488538820473505970398519142176150186704032374982643892448332462352479056176106667998350710951091030400267906502749475811991685824091925435271834964383611976035440262522121861062062659768495062391504234699407632657069355554154339896782873819664760444162111327725485198302398748619099153843629017702122335781722216555034976280151886829524951495714930314098613845030675984979481478814324410953349248164044523733940444223393825512153255383637634030410262852729254659940705971940330740434934869050872243413942281338821281748648146511755746208406866601758611025246635806965007538200600506063746208319456144361433975071887857314168384807331584665150289479160286103104102796944010611130665950926606783886575247462139504284176615998102312086623392358989456042837031450771182211339283646805351864837704977917484928363752386208198928683083377465306998547139522050975011439342236527517605761340199395158011631821847562782827328229679401703349816821065059653215753236658754267321190866499554998084296707619766560941667965289026099896418246791506588029723053724849081468215990305577074775432972589740781720736517955240080024922000292233701358714337390558096616601091382076649451466642486792934331871626669367311481963220270611277160166986024841269480186297564928808901534502450836412175051409492858784482557131114243607176160276096246543786717357391793776941111374740230500551839988959766862697429613222832661914819352395985323686174113861042614270826311372057083235663928373038662103275819414389025348293921252371335043429742451616555275598769238575113565228967084154601024157696316507641078999439260652503302260432568927789164994990501189475395879506813401734580058375762853687513380342475332215360910511464036052311086970829890871821672849023799510449429331441062300132765287944288664377163521368399614276864080328946983333325449631045696030245384640340555424356201459198156225790670669422660683819485384671906524364784943078510626493766208367812037252111333035271714553385635962353695414822390143448292068900500219881879520551620361129683341990760104706864931624241462790080552145411977082901982685477097975780084997673571679264758634389414153449360975908419234545468370397611774201826276697367547578160843895360366909887389824955333339875769160389778203963121869152546521122264143105358760904186820904603471397699761928134124638367169581036717187474167782985947217720286105733338702074897702207147099773957089860622357787677202952719273512486669353647980461860872343335760454534911220815007273492742474567394737013585895077224132302791024189154459766664046291820484078530979553463571442647624726208621776401007249960907456739402893609048778547032771506729814766111664910365995600645590418319745039804931061492749063346567506406812676776177187605201243401043040988079193379165030147669425367126518174723633176333876973202280244839180052894985336489644777858459420014185828437031783829774451211917943764297367129264425233942595009277728770393552156310994229777049774236670160039094124267601518851761112430229482810650319287898518249669908629620927594322499730202634570577543062294561511564551558204896494865885558268974132545021883782239976304174429199227158825194243469762997091219950977088796863544687307203547063102633105143551205687676187931097000904039333387781327937795120426483096372902098012425417935990583408137897684457851487273313845512418194788822753190406206821227076830643100334280591049690692238508811114471727131286961981275602334443868271827058192466387755322246750078254727324846279607282092571657661520877328612375207708877450437565250035068325889959063387057691240525413316826816245985979546307288594210228455903154882433775355292334078023181709103814923804956012439138667223294303657174217011000279701007550184479099345635469116062391850774880016464896059622759802837794686174281372374696414504232795534480724680873803000591470236831907573008463005567621075086016388949004337485752866239154334608186984056500954853140166837143099170204895312763716335974872215669139604151825505078882675473274457449299198240114199313985533460726970056716765032089713502845270724358954329513411585033998377673936284450650040201138243534896197076567995108672417651073101837697578826497059676129262213521782528740681136391268429743789770166052146429167980016789524628834483799460610087869030566428069773068134863511683491745246614487155058990333414303353462804160895445937797260854838010528073021569284903112840363769709130446062243755711758018728334200158487389450388435633955733533579594422291495924746026082133370996106659390028015544081150499615567268926808064156562973096496371641470407900997031461008228196780517969738163788233289113649056333496034377752084210100277392260970967503779852469662283930421800497760908338612558678079283898443699499334454907303184692959621727896735153828190061712737681135063417820615687784499481271112673473713936260109240595264798237651266201811576395433168105818753449045364846369418952165361824099540453185584866285096893731379297830925314055285476926110668286774875274378758720288093390410905595512829845531430554554268019626801808436073687996194953096641468165932209346601927858010583906680968486898143404359162787308156302513563487792489276035342520871886935150318956469310300507976116301527782245862009681629541988560249441695763947025731108899475432116276576126637614704645678768506079151982324580566714999660258118022051037343785776528437107312965325236365308307384195206956835784959260829112130830146184801129737558146267410620254470156640786562499974502836263092663679882311172572503762414076804100783048350585044046041343384969047160229392770358356122100519603151029903122872686520214696243747298356142580441959123542165418060346102666532532256977360671762841342869430669524886355383922527389235684332596601134530329908733674277191049343196124291010122807090558016853232855755059251106162503274340712898888289990124006197728111712106381235393516411067136517862856686010590742783902755177914120052375147648385182720575779133492127834098308739771392732213003723793184523894300471376365274381967257346078085788752501882352359320751455339395401656176200372149383907263974028918759632060657915539570044932781170359969555345524742436899571920229842440924711380008924631824867288478342414673743105045109129278206496247371543871720337916733011749261602132295490396840604413648520347358135733106213763176306192378560788007732326526493479893162309786357646043188256128564050444698696487136392842219540102467062800890172073081347389254946942007263195719879740664509032730763471899535999868513077074365976776081832116328652703990996526682812235119970618320960756402698315885105272037396430107288081610848576449084577078634792528897415151833229382590216566246219142462587100821323929567283246559880060930551524947161486176571029050408288054213465234724956593989788816402154096267289391966520584798245856603514971200685336994414582402919848828066354785155289851957693527699485045397501568253678872886716417194436968509938803931640217737202107839520149224176987062934534404997841309385436682281388842140295080067882621190599874249512492952218219160353976295276050967098231208138511839520160690427059904983196496597135181992679618029996685240775045315946859896605550880845032366758355104966456908164066576407538682785869253719426248397302692114061275439192484339969224329455055394552704789891059520962734998973396028722441572914549103165458589786323525638886168853697260840492392944971593527644107967290844710212611867131865979781094651642772013042700040783964574154514429892341695190276642514310921406684825687625620935615511039883041745664240092045220089007225501728459469023695475818553167000677061679149116024310624163773766799455077340846551563620349818019245916729643111179289136620457873555898160280893506517330811690314433409162452333619598881625198639207468641986216184281823522558032356382174743877251377689556423163568683462050536591249141587591141402121110727284958461636812454910370655886084788449450146648986459055428041251823463164481572367326090481235047554394693076386539294030488778916628800945257531495395679876352480555054661715585213268810805164591175200845661908524596801308668480380487796907405796720792435503002626039941748303938907210345493212212254765761268163396675839674764798498510359813802678593999190849866519731422659250638480131783258719146861562339724806296628025404418608178791047157718894865055381345631694580630908706823187124091727946988710446792724088890376096013973957876316884432383781839697293807663094413626886169260348469454510881890743749448687795195366077536011712888580291458992323659087450024627487435363398225819256626683831461494361311386059087213815242301883079802156256038329231090362734569539836252183661146961384505604747426259959262078334294726680401956051328511088571821270602181487135425276428168748491053102970463591993953728113236696069214519590441901112445656551929751275209682093753550584429031459354040153264575950341341656346057995692005273172636116260089802503324904406887625174399919870691191349391707799501284674565038524297414133892396867250437608312708301726214515077316172522375497596450760110516588096128988844796716651685378993976126205367048710082581179899975850288556899250900363019650448718990260825604012089249618406268010211608866318295336112575971723157216167936068390223382070462160812770278446027978936460712383823207737030640007166904041524456678770172116017268441393232913324152556149517851690930032349894494803046531599632567836877403423891291739583740342252567487924903922859466196069411881818343827385525030782118290598330367858593998663099743487281973541894631388465688034779527032627860785421295839275317736171482620461661998819663498374535343465806251216155758349513299378910818636023923456487483716389316336408722034251604618525097515210694639247075632579645557204241052573853921748202802547957020876761922852358763510282634971948975552378622211565799412696000012782685413852616114776567305579256612404066723420930563727863726894845489566855611459961465878584988517928410576085702707001718855748255682409729460021429349685054574163311090130815841154605052586454347294388108127948506295767939761144752769520109807877816504982564785365890343531703254420176635510976491783196451658761290663988110994152233215352860923289179348382818224977634475306084328079050699998686045838205833963141886905336845706858646145165827485464403097105461714879595525661838304073681351200522417578578876440213740920090318162096765451111601384938175921461593630891216838179164259964209563587528328375270706353822011604656625778774019723919001997132390765740682864860752747686610980525228961328807299457658554106208038579394016988781205737530587677171055100394251780049295915543672082497476243783706079965899080861003268706365540165920462240605139060951430814663624453988352501314963017737088251446777751739204946105882537787017465853790505392297610349679413579434567856485079451086084410563971449506191606889389131021636064990290779954855294541130504928579815841271948794359761961657335298066277329427007194849427158154567536963866649863635185411040717579171103106630375352885820417670460289288180289568176254669793430973647879645774509329833007613781031041841951268618164015559556404126245715939105835367366101410014770485073573668518176242850130566722453968739581382202228312646583118229334392108636446380387050363865399041500708154902140864486933490976810242335143543420826897443416069470829676741149356370990552496781268569529524668506090528078014864521902351974515316250215115590037549201752355036319062208576158006561470717264278868863805727195075265766870923172509177162087542700403004301490814447888146031394483928844571329113690812874697779079301603764552800309643407451382273242472483830817177116460527812591049919684928955070948642701081538582267896953468402862756216778114117010596834246725294620235588762813945826488660655206905927017305243275773661191207874646296676376476970204549746292430057456280258111602073860890849134199747311257600614643414386494014631807549066061380255517347959867813874870297453970628291937164379263458939308899199767639220164779988155082615567656040303436416097668565817421870106478842490231344370136983373937562629153625461942759749085591498092971127189681416739736605851394710942588987012570112224113439485453788125873494776809152386388561485996596142233490569473963582733337282342217672203191555968273512631262988231909516523908028865267030096609781874224907909920281866099400038024802825414409249702399395700273975626639344484698735889289501760827664258189182228291685553277340438157784187133336043053003745401627326852373983889097826081706328022414678381161813905927786317109926156748599628882815092306969464958659903475574111102825355534984074679846671884071891608797541211211985384627510672511818061609136423403023697730206873900183511098383851230814901116999423271101855051702727635007297422629200946126339090574442815865356142312415154161732865805592904085058364424803404733571899100109852947181962470589792237423284156485485194900466945492931983917232365663412519346316132166901948983618507037065010014218838112724326696732867753520752463589097876629561466813195023348193429474013268446812992205231959025531137718393954233894889447379491583041615827902092433685990135356900923374431770305665735223287617950146404823736225584219339672063006951463427785272014556913186212384349186964233860935546995299822161957631151934585401075219497065793335258353831491549459389665141452368668976569079026031547835467739351296560191033172255774550066618743191384045165192136484272559042045715198732390762183532874864058501020202233504631427703001577386149673251141163355981664536660565321910730860039148352301327989387141321745178373444801252958519028238008043704887902673918403453978579178376634104801329438834895093703242513348903728627350097007739211276168922886684331391741823824936886504969756208059854310719022791415151876177734678952231291497034457642598027027231495979461534887900776723601380677598934125861746336668336195498941542220996619475722106789512085176283788434850472534908255586087804200571112074187527134629452841474156648046933534766213849660273338038380541596308131221337574558079613629955948177903224922012092062710532972306258882134954876496833297325417917745082850926533415057681718509397075064474122822227305768050280152469149440967965274014987426429248021042958623248949986541066667922445225653529916735701265471276678676461830602408739103529602869026183323796581174010013695303846413440025666707209732508867278996652791324863883081497205882565536090959311132391926808851013760751079637141591721087572335670272216280777365993631739233785658578281085460479890752838748953492380642711895526806974563376978486035379738924861100052092454114834009976898347461778681113317839627377121087302038967103693111191484018882677527462592021088816301004088881094082321653910892465992865517285836179728870234538113906557733399784815780343658993171400446376345596491880097795636644760364848246029516728846220298039772649769365521062269718799471541988221588514812616498376935959426976999562480131333078583591359193937039470738853250266076259220288169043807264773159531145149688434933527858953392517790817550371179594974600475572913708939375388119434159212835832503234589395967543850597458242387061419643660724107278955559203379369270196321306959514070113226828074055233143004467486498458759976828239242329806326332982106533522774687475672182280395062459639445416228559678857917483207946834047659517694821612144465650430002980863263899251249667886121375960952604810281934592755985748957077584104898165788768081530176589341692610227773862735066437371477896235134826283477103468611223257177300582579696066307001479300357866201318834430689768945004567630544022328128796718291866941872253402083676124222613320751010710454098916251618798979775789920221226701469285421467740761743259883151644380466368476257865577850985254308729558789255836210096491835782339960457091547187383523884022658680548409678176797511910631666785936023219328960865181209266959369046265731706496588107227373235737616649489174835133870939065051532678720005043518102670921235400368555997605274348179533809048541538197464972955013810000489871821215390557951384119926432127254555943143993310831835845178491424779955964489714236911998828605485542284187359236227115621017985711132390116061455678056374306762310042602857854465256660944523298243363851938064489522193913126738210488259361988317509260673470074384247561324970499798343931229143850190403417642827519203032114965646616554966899143397964943707359337739706238881799156991817240210794883350911876989059505346040264441644042489899947689339094262355177554356489971275118139425178251291237125610740355785129374187419144091354653711577764019038166562965631410837367278927490893711758525896755868947399536868608481578893709444752100128332699166012664930472927625218907807262723181885050035540175739921753429877215827785309005914774968096180377570705535830492404849859471555686096268033708942333741004060954515697183115240015767082310497641836077160919688165627451419118119717783940358647696352885657121583660120952195348183923187005915155462104565591173520308313550285905938022234815099536348888763393124226009577950118698575746444012425448639353812938999932305307882078859138300606996843337729034593159801246163123951553117357244679420270303274304838464636760238258360922327235128683295897683507384361761753450662475901307358108210108942908798970649023319837693747638278376684744304793630552668718099051984134859437174266944925711700092008522218077842990478504544123965167619230573154751275992241152299743481519760288391838798962992500273989306078126165419052263564285434188421793742862723891236814379274570680144213509034182941094889670268848647971288977811622571009975904923310633782031147966877277805278649588069992102551124275954586542648156333308344962563465077368618853882129139125449519093237683620489576556640565029107102232906218399486589585914438289588192899468874203614161565477000521403473152976263093880671761380098607851048495724677581097704139979527328374880328532912983788328675921470982944262155574171974680019543724048434791022026357136894261280042913101150231330120652965317158176403771030528150475737496257812785287351837040463632189911713655787374878731273103347231170129088007983057206342381375343320421466611670210000349210374859129596020531598829699161420333968901413687908328580415083074898908653489578337988291303182745129483125343902737257905891674801375259994923299170554441165899865989831780661711505145118385223391129056018606962290561625845632691702424233327366545494684914745635988292658343512390532560355686832129511589495278268945804562411518572899180171466240484990132001195642285573655302878975969396658558024175809007289128699915852791263070253729216523373218777465482582523056892424508613837660685261262009638529257510933740250497025018853772348089877083983129379716345441548616777356475398678899181617160799753851370328965841493506446682872425878965305278077752657269947923142277913367580027954385595475121242714516493588072647547879130757250079199291115548352119522720257664528261394626459034922418083744672604237434717635281819080158900085653897133063638475686328799426799950997338095907419302746770518071278220248645340886457406425245788747488325649216159950498369189433347643383034060278171214889633194573225257066989850412005667427866357553831277770007294663253569717238169191221358740821926291758513568870322582044273267540702669059124093859868764041734740361482121471335153218597405866846058412523540450029408179468118032505675529233375422817823390988218359550227431994917210167214055311817803605067849202809680001595114704068279643243774214527211390732487453235334334883745173007929731190931714673820512698739205943892032463718559995925979786737746127356997533529073999869694651667362085162261500583310870911896706013413751532895538070491412421813998004784127291735945970505971959597467155010147449922240281317933066328062912467199722970717402526084883506515948318978454924984325906257003556313896337130864395898318380106752576309209340314000564922456395227793173830063481645384038520226090430732262433194246622858817619378266381834811825250229032411879942555799347989142403364344660640705164239870542559309389676369323340207101140263722295482348723529456498196303401514536209898454372390182441933781231920950289636178983677253119152327817078122979193937615772347782763709915478418191605472725886011791686215781617291424735744848305139643062572114487864084833674102068887710607967620435750724908065420200187784244550786363419464291458037121688998293610749508367725312756802690299683517504873266189827777152770117477808535052288587054789236387368646048221969029723859739545224708719310768874242877696874350466973520514060164834819957673637335468441650900444168616025466002393231087554289109284328796270263329056479882083580406581374908346011204341756916952639976730782304424962223364457213783751820260385094477037151766529009788535866691616051140980212997449292202358310415958728763104367163853826746769837429237015933253859906610615999339488912968395473656807770469610962453251443624159196476097651967926042808898120051891793681621627814446785080530022413253402205706259982016457620443407927124740331464807261091169630316844134023459013607985989541754001612156476909676684697135808400135159437013342381427652317247616661438253486821296113287853798557627402949452761515275989369568854957809475739581743624247418034793831615483146014729757679940547830181259664410445671283305825812559263957754880329752382653020582409943648413149196888588259014158128823875293430352091069904747880146198084192283091352068340375478377224832418800795317738322230899248569830277490920967398266200033794747825977540804467382088667001520227076019454779737289492905912168636304956755046797143943403392019258232822747499793296220331043166033968009342896323374836971022030196012699485622021706419321677340927838355346020105870380584727595410033535455814129744208019426512620780570629639644927996977838293557721816568783798978499200018523073858189689563056034436085481029094153645276839207893138457705951340531428607649233671406718281768287229896602980649824995215903224031612647067616136975776206076039324813240054656203317990408180484855745156463588510983691456629875506920844126320528472795142150096193394671487322605157246618909951430397068742049410370237379858986800239409258984919789548508272668066090091008155626931551740993574842848865838814823769426635490686176913845745819258104752650641958471156333032707985961242182694746298723076468152425757287313417530322646673348448541659359334568774395810029072411968492455049909665259008582551702454337852739251803691558221172570206712136329683640051029884330971654152354857619349457856446079526896157907423735816870801152047713463810916057902078895047460285640405251487319281118116336641353412905954704071392969996895212261976002035535809909713911072345519774085798508554270798622920788037013118236056174601175164584632349041146659724141675686252179637070110392415836974560434901936338483808478221439320802682492847743450185949336709683289021009973637577470134161523173751854158303487765261217162054813597360170509264302168004363105275447775855259744929836903035126584362296222605015244523408318322104849531656462123653363908186058825715593402091644484912839650568865936490381260894204267983576624616789862584486426561593676662160735676313247705987652114992996480491422094157916881164971633293489557085237458008365391949644274662419062096885612791493942904949011761488044744718193079938636388035801025992533773109786720984793042020738457821467050022485222277659265035658457346523862743707554557794433961770388475337760398115703103867650479679837162816313734085519625942799243409558038312463026194519426534414727804850178721881868666792255635357918146443265659550595091500070243128331358747734087907994465424628987782098181904596335805405240433942498679421673402760859616842835684602296819359282453110735327899256136679939495733572439262211213560074713099050312953393925916941529408721316323551035491783205364006705969612239791427271470366633726082241560286998404514827872494964749105882556649455573347017471792419702380711545610394380137291548342228691894746534054721021485159497840794609076790000776676868877226239408432915331994185144424658148552862390127363545438428200363515154346456209335166905691576262994652637021621896729836115372900573399144912397768871292638301852306900277126345000241980013591732058045688740182023279179745770026451435231459184707384277399646770306112586354790862944245300204234962756688175993602132935887849596189260409092437906121758749341794405949212303958785300385623762047554547398749112634817041536880949003458109934082477973152771152797237341134126947581430626606861254251567229443282556085610281204077616612364838171231370106290472076115082525836399380107653861920979145025712667730618191629713316533349268358035433328480768164939986446328155906284805390176053009176901986487694255894422352173038097821735253333142968820616263865986544029396229198918770299408923553208704974603690250129741938551626244499347764321329443627016109042931769331275119521779859029108763510372852498053038457335713000115796376955541354715309608118630040349535102067028017016474784415159736611777402107565315986773653929502931830410233942649966773329760926208604033112649483080424350013649834808372263100212421590739375090019299883720434964904105577558160314408285359377360689734692331600181266089686719692821742542962245704850700149314505609606771029900218142586522162682116117469265678571640823913145064127033618549810724814558428014173884623609764114864473693731627153602182462915176136515584376595885245446471763767307530524799204533057605849534767197711390994295569516219470227392386302598258183063608914085830859156967120873824997893132503895429010931436657432600698642868674651019012690080902561355355907397898620086999443272263977922492102421828845370923746665960973490389325303983817195462273516948745879099380973792629931570233980662538178270631702579265681646511911206738122571806027771978477668089126977952642310153947937483985187804398853639657937191651753500195061617460572555738376752559698787560847047792604827451965228614168007177486032231277847173030104065661293696351925819635217286474545086153919476248995988168008259029528374467892683511244458141814859105328504514338219217983367428155272219724028613962153944435864486900603140654898099159550619794239221905390045215304422804687851820289663080289071004907954228975884997491288282238471695135995005378614472553862662022289681974479129350747132916394264686254332459156216785964186604623917736398942617093264659263658717543112590239074974021195689342876852217785054675134947686461925536963421816596062274252076701995906653296161776029352045084710395643105500994829376869912999876207292534617964908087263893876300789977873838912405970663325462808009058277400231801325226109771513162343662929864329841309989597651392658093107533173394835270429566909617175932597566313568231912154125224194953927732323564043911571666216124004579630200151363070657714693279239390123543665670642615800364248340119292560700627250283689065278393551246946400479719560520350732027405061721736705044247923896929765745461870647524730112667189674260938924211761421901660274200535092977356896383639641818591920821942591683009535669376971618866162363941900287902222009299351901004705181606062701706280451795181675459923876211610988988324178151552153783981228062944055503135114859387901216790650732918409272163118222901716841579007678520772633180864579514692234974101456973999478903466241957631027111960865247019003318114091431714019809093202088970280868222837220195921537221926384061567954727615148590055071607491143830847757822957717279897327381009363376965122564786677982650060145233895863705298700276600609994663419861636764665638758033972683886469378863253772897498413188623343155245013965956458359102701605854177369290584703602090940959070948529174928423036367322453114104753487685581085311986406276163861870896731839051615352732415532097477321662409919736269844772403222882485188456327539614327162623025119814150566034029277479839319496441320396210946570490286677935813777035831169676227905781334058464680623200439246586114523994612789216012455280952179836943278542318715189447278167283530291589887711474662377772366218960398309403817941743840738275291222314584590613102205631826637882600086853059249649702224233789780713973278214296529846994555059449462073202497720393602874281929500632864508319454540824522999188399030067245513369003064195784650887293607341041583359596487917992930462822369878263809398338867079882432836975871753550371722615462769597650018275706853479229594056149801961315504578236406882883714068033237475437725695325039544539718429918442793653476417335286586362105228868813063442577471816424760098548386763586606548208130617634676086891161319725498017901755152778346014648062247952532635095433945670299902382710183139889743461950001674861481818510378739444563015406206355773273396571611921079658814704397946117695911543482739955201083427219548138539095410256769219860064187172690093394251140180181827526598505667044556826173622896510476931578983013908432478597456225194295419723280031849627656030202216454293146574658126884496587612187638439794873676514405022037432566750289274169154095097397165392607104096909378809821489951114393016386683651887235121862478829774150847904576988511964458564443379971634998417931868284981167428157510583638946879599774309700220220877154732558680611033205576054284955716054459904685515575347627332251880749526900251306038591190770755675900049804267725877134218263570935039000609341097011065386317092110379747650001208499736286720098058622727193990395840836829989994534981997973822025531061929490407518994387885201746883846165647192607536321542250901186727623606306829646295902148582131377090129343290180694521718316948313286729494172685675268879102770083525734348618675919946452533229124215757427227320039371394299268685783730123528601949308979327214263753259654059835680895594495218246023881336893248967774450516656044468189219259233741483460476870148994867122574338207520030219802399358707313253382465024841023323024603684004245824632456209713824086414255476009083637201002666518269499651156444784997069787244747458477306130619591285281784367933821445149798954676232476362745508364040718909591795360018584273537101620088766292611748115309577202430726800979282570696758006204596362128514286715315270189586714023039588972440359034510280831694938092454432225640608693269753002942980309498214469439199160908768624951293181840261244280502825207792703792064585026044821224121832840914528923061000746155168039828683931011432571964240367656993660316680264514277174805788944617513159528069125878021130389829231625683373504490792138933797924630021072486288895570991994916291247083080304221575464970431229556684581772678656590039352570110764996052913769520842446900228128656069768483574731840650286658655374140123026701010378578004015134637496521339276772138907253522303723446331355391546302580858172883656351928278517893640314809053397150260194985262245990496755572879628040010463738744716874642089525234941117216419031818183241675973048739191903048746017902599706076055238341866707301796832974576297364666115600435549819670775689277693026840114262004133860160989129976300915039460163115902238679447276214816356155915925544398668842537105886869547959914258722105253751316706871442596074639629311225192171749518905898176877494490416042642171383434397108054962083803994859293165473899716434613436993902507705648795752215923450491237818442123636087798566570313322851385042295641793348799108940272685914160364496762903090324026867532178706663319213855179098001227390590584854882369160131838300885108668566598171036137319218941103449009090497113034190471665368771803046742024161020468415846623206918002881705139848677690236461679728724732663675029461061542544821193486072558436678824404809371674888721360648621109262362910998738284863647455831150796176199227395018226425511542999054634408852792561798200146866820881191753627137459623455880342591210233561693578950422200276225722305828653806769076245994165772156457724879353826444293729434387946933195110857171075143669755624688191856184121352686106818724898264845150718505712083110657112042189829297990834162712789613464064975598723446448653825951398585479479536877215873250345875640159142423609539463939429973280795647244801003480325793250769644652180589123772189744392160328640375075724459710009651652377834048859251739374250054853417798918654828364141217993557859242769512273004023341384071836446347195073750041152500345858607266799883003501096778576437626137111260157790989219001621068630365867096950116812705345561061072909859407321291361672807053444829157069393040480891785444302347232754147003907639022495281297201430084255965166328230536159854224830595175397971038575508072723802661061181958015904278868754770745963721704790744061856818916771293682600443895248766158913290761178506966850776707092650916739326095248644002049409260974620294659449664491564751412276311993077796518545772088159729439991087003745332115107618549552898887441306833779002214188924137642430134373193264727259662542489569657460479578444290934105919927637322440156921583154155482135713674874580961321172853109129766422035569358378923252292670510362642946540595829375970792527094561841650076920096696940486498173941145450572427903000446949387655992729056471608528419227428775564751378200161919092278486817663995033756911314649488969836227185096163365829084926610619439437633920215437544302861126862033144273825024269555845800410058362021715108847448968851564651933475112418260914184027190627615166589638853775991812462053309465999799508078244360309482941435609570614764000880679713293169249688510367664215287776147697621102989180679486069330867103185564448209216714133337492238817180386031363100374129706413692422606125226500956709153257992098302225843907256898218892795066537954173170635775906799896753943858106837778227566674692834100335592732659241303529039621214778876025855761701075226964828382946484275324495542223150137089201479005042912550571282068325660409322876574171559324193112061082742337287127216630827327536331431626917783058709863881720855670173334527810253109967935790470412247054468338157415439399472995313774696188315252524198456956058675131776893013765170137827217708723065681837872853955001394964790846004942740826906233040233280047376818419370138486658705050810373068006250106099126500253889823706253462148211577846126540739508269476716286026969678578761127850586386153385912065958465021013193514190058116833785235223274567188398340405932095491312275215326816614328170465473114086695878786788830016538401915674501612820171167388782121309032868288876441440498621291980732383624834333300119050803737828751987162281990004278327167641790374161675701337293269884705020105198935941546733146451237891568215909623366572427831412961570035028984894158551431298388422271888570709804478733902309649357333826106637115395023916063606078168500628068950801012987292514857074747344230820148018724723654266393067085822192611556622241067230455512929441411205640335749591150925212520226870020888693271913407026798844144488077811013410309299650829500035571733680436890323747078716471056376495415557227849458281435336076031915120877437270301228368015325717198512378413982499394493160017778569250047824150630576077195905804946412367041611262116767019995164468556830450281656705264863052643129222417679725275581965161597655709801101423775521063758202621111883864274019212426878320271457979195834298872232009093082667000309279145453527824596263070402712310971764335203026940620469479455039101430954507999354479918040036422077855737776710176286829377944214021058796968888642051805671841114312288106080871874230409019861400102282854517688402581349343657420013806226254004716300311263653509920604168116324268506701572229342660781037192701560559669309187267183557010985127900953282887656646164383549863851598028516414150637555162274956600811896653537940975496688701085685954477509654469068336767419831301050267513125514359536239441666603290881042449916702329056038015642193018063931279875789396967069756250519425606764427979573677193095242713323308832369294210062816287972854444715615567602564999273624015375026414266541500480128973423380278500578350340327281255954028144203307653986052765665123618201024065525580662010703262468835079015269662223009762033521426122348336060865086148814386140037509820695650264267685017316733361348769802408628356767142407363701620644947600777309628752553399397809722363945452778463673917284664607995645077939124553644136512224098366770047931545697800141890001624804671169101359593084877409100580123781940926354895725424585457782965174430644365243979823762531964127883790931137920562884176048533780701428453970797843153732933928097650464006446072226472193098712607730886098096457895839102438954822173923730909725669274116003676042486518734301231506701301018228392280272257661451409771649560108369539084402861465702123343816257977260945134351080920600406103462245603412088297988168793708185642813171176796894154158917938923027505861136842238752318873002494371228696269412445851361719815651770571655144059635484620036872182305183776899895498083177396271111904791601552792673109603109310657816869036856299224831464743944002311020745469207148465147548609295240703313537501053235588769282736966250102687691373510281307362773257661241833616312730541572205385668483121543829767559728518536773954218285549374987371400593292548836437526581492641447203003317542535954581711579600204683840204956101507657173266039314673097336364193206632098019550774866031746880044093869634853789489738581916581204142196600327583599079339766078849987212799040080544734066171098809457730712295411554156082922322075262748491203390385645525480369521603159034758370467317707932167920808080458863754996895536725324684289456603509791733117486152534100474906102622070440304522279127215824418097856851451277076675657101635505298077236398940628209746347112534665149475636553979759171578325911881467741487444213963745351281211590920191435558568458634248400257117965770938006174828972632902448274094531869727755424261726894683976092022110250275327855422868004332925432320515987770062845535282033667012538287428985748000014375016229331539572337395680228725775906862511711840532182633239426504824831232716526172317258820864443698797495292111853675290029547196692653525117861202199626305533905705845266182765057658621699137675185057341134482251299933072204447007179507656911618129938254677222413509913986140405750708147711673289147838474316215293125040197264478678368430471205408886446491768219052941865936144787030622462149838839093532611026125492380604767333686128329295917635348976865193718134141686479550703437887547174782310421480525087784526744285526015891108872413620952272385559082772007072658757273551179249689646662070738391023517128549533916914676242693181330306082398922314728316668373483613197171249444717354895063166548735788866837008401706126598471999465628987355551976206676983896542051999118297053739866610264620109684529191186160023529996214532972313651560385841413651762953764542124930265057318505124191066368555341456538864040834854512165835571472434298670586000607278690863535140663154579577129918244092992143532687675198066528610065941019519760616603320462532370625365726388998882541165920155850285108040754698932270744558642840011520614079555579580221546696027481589903822539761450433670992850140924336235596901827156445287761684992324043005104295605773911587450521532289800474239422490750027597485234091188625375085603048980040422642788077260375219114634861218145282318633297377654524640461933607468784034437094295909836770943537439976683453793488409964663618916386814445971157752229475100089724313357521161398930128474730186094990415637277362038417158944730207676678876720029649123770920621079598111831227279804740124041312466433386287652047772032200679053241715306450063651357934895572036448751064443378631982008660267194502719188898313642439030911115228245446824318805030405292128680567010158775952046792085614753734380281015507468850051535328816215449820447898867771684111443373046982221419053904669488830618381536701850711188605233940622865724693314869489381491653947974113287707927671178714080396847797913095547983628432420965447128873584872161786571249388712681870751064992470372856493163495742918564649362325158055252594719966060992787073789288510891142295130073180919599833182425019596109366298790270070486674446412072991605474090903983458823087586125838613504816997353487104398187507338683894746918433217421857796724073076676435099461701969812001485444697505164406029185183837774424559143478735305604230493991029637619161562725818833380881437173584314883502174687669395952993972967445557200270036403505967116190302867197039681715408397628749768546354958501162161498507674611762954672138132278712549989213123710064201409015523337594229244433054962755058611690751587256114461615346877507382483291100287696036960324381986517362148238737916903019595586635672036214353509443547251955693270813513372208784896643155563774531046146243236231481543398938290027610182098441959000945471919855171859004871804980437130058722507728867818347461692092473914589261016695679933027400643347334722512320161630518534317459690764436220227962080810657564224520961165188480525800108302880603213705043997591552521421340488594106525919657643909884474487871756870088966756694224492976570652288759193514440698949959005133832627488237684942713048327711384784079336426369541764049778085095685147741964549858311920790736171039347393538238629228807674320455269606498020664878178605532394604273172824088189481417417429301894444644019416850851832928435295038741815577957797181959768445903853626736931068262095452234089152165180872167557010893867974676821455888204017586433250538057731285963328936500708378219430899781466057106133327874720898922108862519081025762179694268370294489001465519343308964612405220330367330275641547464460322856106056716654420007198945762416548150014369016356569329905440949088682998926737740686187828942300324238517623911765623365221415817421239745957011158202624587719776055642321858064193283923502693865541122081613165145265189917409710277757047890882724396426205745161237825551685380430113489504671837541378931900872848423295280007502845520971559306841353729659038298809882738853968182809818537859962383331552434956944894417841560205290851556022410140633412090476941578583509248944615061637470294072901813234464016161246831571403189847409956617039332967516305664011173404676631665988556567182014210275371675364909946255550384380268056510419322853161774515835218555109893056343549979556440240402964522058763337561301274475762749855865128935852012036248950754186313097440961092961828049031143900420975044690887057779915887132906530547353514094511591796813532238951814200764524311732643001014322160363467981177368096129813680838600390586567318097094513023174414324458772190526726860138616276399651825893038817116218795644869821382609936549275288975345363118590621373520824794885268831503673906467269863757303990040044050858941557289708348370120131888425965745629137200829815574695475066286742232073221058154061830310229619532605236301773227130730607708970046358166258191326071255837902033409211168146351629001378578505400104920926838713308515866100618997424076410096341247196386389666492022318158449899200467443977188419037604848854735995174186661360761222123633508453014424409039461332274110774074339096773320431913066227389982515343684122910833873398106895533060010947652597597461635659094325002844538457283081597957173290853939588607420975720561565532358000082104339565360750608802859550393685435672748733710786166718925785070651295476978365635150939182078527482374822106563528253689929673175280830144861286859007695098193771502732875952022288121823860191803578618322678398627633420637386691449961445459149095815124368505972372272681043960819843511474861493337532623032096686764915822561030476890639137897797923974630404150676630343655852684008224002786784416519674256287865347645484450915061845204190923836669097083844026951509889852359991666913866511002173339013597342472065635236161700675237458637905504355137602845474349594814005217193033860081461853111459303031134055848877265324375596256638873327462779331041641702051431902141120584550636606377373545896931730661477918881661681811149454135994810490721686322172832194316735012716570928989572937401728304803357666543408079074322742287292257704668576534886600850803412952634671653363056193759886241656322367803203111348389891812917086855402846145890452707627947930779393799770440288784001895723649885430327211334136789172075109245846291747567826389504430765876313481676775267413982983971960712901316225857028946743820954694400442733635974947129687782721409821837177374098848495129375433250128094691791752211893305030865777007895244923643198138186478809503571563616390273809940373778328944788647451613794069503736806230057474627107076060395497946391702454838646557549090661898918426331387436760397339346666864019082346787772070422292099862216894832782557801710533090009178088368901953597979303916637194160511942350808683601790415652497219511257561579029671220045900898532707855342580910928634316473183667603443340670079781171995274847099027026608356411649022618440527898280899935412202157295174281683124837304984633752426134560919475580711936249226824211854411936451891319190251339243864274247118054346122316851319116934419161918367402982100661973737771999907349380598150316192574833038519032561060279728308500586150033585385923123106500184091919585581791051794525616186542027348084823773512156030083988816931271638455912545057800829019559035932659059911912244074115899250737248615072177460444529522860731232962169482821698606372534000272713158945040136425007394413478477869415579527531696367896705233908549461676521065417820566331326978133983680698043214419056261217099497270898947610979612961319765415637715674665661495888543922642805288968468088422129406877501249809488291972306551691620711927024803097857978299360848458481408291427326428560037288041622646936234486198757827600459336338325761873394761167802552385126765646158677727896305588498617880282285841373522840943385375342765241777119064001536172516275587228610207919170618780152977128805921219716530763547075042304161814434247524771388779419643739516960070754841434865059067861855007800634040238761472093243416108685631148179953988480308597214947149384172378599023837853959078772246463201341308821980901129483591094744460168651586493534686875876160640931640649787837587658040841467554559853526393590832111782844183512609895989647752669140144793600333029824624832711083433086166547650526497789824182863288029552673210567254320296222718670146608215690212204624939519053511696962841320876777095077962682865141058988434121045456466929384139507831237897019092855393933435619568376548846181276580509750393399020424779065756244937513134375200573535569967576936486181516107615625827775939337090350513758843343882733104515578477163339053602551402322867628660297718322602838869481454374838609854423543851967440034731274228304980352037568874855076451551763383432056390211972916527454160216456442525853942174481044551284385824241511697256006316262839588800041000928555236963309508988519267123750813334190108105862582605573158131447280281677920506765582403567449629669756778864667855786988440643591679237039073072979510386518574417908363597545458179307655970840155673253944971535076559533781088471032339337310820618325227574932496477807365032100705500804762570245218497003329842055085199363299128824957958340077802959187930423940155885989500931387163268864898697002528821080362722594062455792713571494188995929665350985055191899105227018694737991974758493892898511055546323320288554330815151807564152966841776322608930278081562271295488536115637170969911386424966935266107933604911093520811746507935687180092953883219342734619024891960149895000000911023599798746488803381815900152014765854934526210584045071467368223683473758825862263515387145608214026541721809842407065634032583110179275583171148193113773179868476693461858891777625646330536050696906697702703974953632109749446784787603607684965241996098562271851579452671843761059018701581362910637892291878406006620847421772368292695370616919662413222202782941289516109374313855142009612353908708892076514989821073708147081829153826189607924814789673769587470887057411233821771224487973972020631925824553243289319815243555019534949739409270124260698768525355620942824281930785426845775050606048341704312872989856410009359701306821849996992122386160732440176012069291878463826295040153000660308371374526038706974857084821225855055627528956311843601403530214716046273618040766120580653085026735839521809392211658220597588294119208874585538708188640109977270003750600671916655292452165223988298404832592826856374140476973670105422597155260601007628036078792115855428257671288499565485741716876243347438203917758755732012657516628929113544047737612176931131908375067972976167389818037206127943616384416679706146183687531053939866083340148619196789223845561006882767156479082341994492772732101600048059543964906594498307317278453727878122861019665259044054080231065706643276589709846807673073459124098747828101485583997547717501801612444216431599050383070182878618123414236364924606611653781203621562489726341153447973918947394338488995002929871403580428632094780163455625873123615134497291335694381029905057969289753517661217723326142008349064572796219923886785998681800179782415757151287594473197462815692156109932440732676913882307669255334930836173629943595867601387572100743180894915680696712906281792155834965542106361214909383083654041867382408753569086515326725995237193346551272371987204800030985625723966986510256043448114065196165959963144494341568090779741453300974067293351182238379062346261866819962894435159691585619874586134836279339951634019048745745698497684111564476602390575146028659140850560302139188497176107943935256718487249826131985922337905630949859372143844199283779250722771668102176605817923351398684870376106927980409232703277063836073047366631551379921510960308255668969792240410476117902502345745145031981745945578018188508225787033442737240183464077960932676137780624429910994074243933285134943270178825117941651893674021699433817667880472673776805227204286200079768758444736342553600690862473640742557795121301869791858249556677023520135976138774148608668366973814742458545163016502604728539413320591935914115226152324447731288851703562547885412817939787067075181205414298506954705842776609766758549188253736999486011743176267327472951394340371382410609861380141995568748716112889413677238635863204724794465929137914968070382612259224844561394487585712754368020925907307350815938768532365381965906291352791410653204217243096317599145701226566605094477437535828055685985002044783779495717976168227588239467622584320781665793272411504922811966120741806070641079847225077207693510092539600230328726479925602125529076725955876100763306947938467633284099474388429552530753169485687823162319655221526814140794945347739397497912963570010397212540464879466243263553925423187668642218335685414188804223623054269491532487991170212791830673330389502839149481405259544816612239656789598558444486232967429321776918404490488324129915395440767439160605672593578559476295139836998945908328731390508736912505415519808638438323098995877369598152264654653417314207536574513191327243217696949363402353374838763378509461342551934960900803406266878964024091709394198280910642759577171790662146087602847342571437882491413969269107984061504668587823764077315920188915233527651903534583457582225893382961726785763142449762642217471241664862951401464782189090149684055424910822220858735707635853914496162751610898430118394500220955440544467192758791680608928912233342341055026300888905700708287333724930920784271593864113096394945401954009693362644931502490152719960785815429635779491636276656158391056744939641313010876243550018070886014896396459271436060100878994210348496069751851432977933383906253575579667341871519758059845352238692488662262318638226242727853068272736328974937251761389117049280454127316996509380730775420170414146496196809550329627244172529519972518908548163863568794824409640219825421917012602384260102400774640681048521496183568563937384475241618672735428758039446782448110951693467702145740552668487574907374659960712374739595186523256843373393742049074059719859262325668092169106918749480439285989190890018447810194632404405647027933888673841544112009646879854383837709230574605091372804600216146686152335343649525169944198515735505171131320853877121217129673574553649877677778919350720581971754883964540636634163603496486907963114601538415683904766556201662948983486474377127468802894534814565296615798579351801768759230317666066151449465547049046679263665014475144937660390620904900504625432676644609038653601698924958064604043246509063023958969201086694905951776628752549258663723262695426386754165742440736239066434479196139295293636527452243197775061502609502857572087470016924783668523000659075099150017458842104474293031284230605516753708742114247116112165285166366050546348708792774941292168529979120570526042565953868422406091579163387570413884643860115193740786347981996677071768530435166781710600115691288429198222531210263598173501085046398640967382652505834187682865890673436716916283490479209277748528149007747012307200609765341571910841550609916814447419043740774357816228284793198264606033995277302973253128968618406661120032806622957925841355944127276504582784376702439071998468617174593812953094861210012771249255281612550499845973847904846508991563921836274327274138781003600074811007798201646839626008077645407148504037868385280441443873777156455286261572925479862006045449109377365954841097243406768016812311744365581953613185003822187520382345485803428743136366323292053584342945085590606687828378101442771551072562915149105071685820523372149090312768081580415097073944896056350450932773705267334552272527641030222939889685856450870435967550342770661959542992578424936303462060543058117561036852204240782629689425344277520869646421098000383926694281472239023761059234608223424534598276233197387484815951430584659387651978667198373481372089603788326315635670146659826312347010720108582285171641732033666697217148933948080852937590693755267368868664680101110483018977272201509305403113543128250419756400386606174087090073407694285766426889569198598114768909512722454424442701997275403215181073753431340795483740615115718986773038416502794896827652377832207176064131562114660271751927963680402192274162513793621917393329523254810385157618281589429029018775353643227874170269037409288247967262565065789443749337264911670270685035307729515340311222241128712530887892737444674490569568360957776685254134388851192981244870207256852806618991791814502377700601873536891061468303367396539668078275304400813539810988584852327539948812350807755435879753017997969505321518270169107888603626320754004600684409337561012948869276970916214262899023831149645876913065722794058648160678557095605961148033668446718880279146563605205401399189179938894076673627771120600008889099381997961775964874619511267988192063601666506380776486005664880028671088007064284217539366821811093893978560772251514009168034416798096870672796571801256065103818873414058022622945684919812072773834012710597615827937989797578718133725779936082164060249926504023511267377363981024636280810811194608095423927783572553866159888321573273677431553674395064411448228131161902906971731604522843552396275286450338725740449742109150567396679046597093476422775587338912527236743719604648352972576118279417811167220034201562872393416394406855330520864859972206650329025007387148810664953871671229863456866315720770866555190008470038770029346653248873552627557378626092053774212276258308683004035186597500816468782749378041405121369498945221614396454690589276194128657076228522770701129395900833298673478187957645022148307645917202762506782965480385285965745313346145241388734921496981132663482923252714328701830760826183344639963302068829868226005231692142575915686091191569778121876128973428821117717021640292271050575333339802278568800032848078681732735431069195127902112069429388350946761789942618825232785288312480609136799303088391832808364715144227887047630266280108423541409318509425505417813974344712379513717419249159718195547227011770986689654866971204088610364518343057651981486155989742544204285157919557914051850751006048608394634566611123454638981888625206699916057481212793763441467366936974175667127449931005324273222596086654361117453884405355006503841823117433258859868220665275142310987463170299440921671673891204662462955233293158545502337542084205466224252849171000157781290158422755084659801881671238054205403041762587674436438933375173001766645280886574371801920866140592586183527006868995576821485004657587167002421947709053080884266735469851765525082658265938322880918860731001195911386975305239301033573898082495550328138687194906562884204173591752078916410708812422413633290831610381950748958746477672647462951896666416881103107924039480920950879303724846175269503033994500053842761839328627143471587524547131615460578596206720012088161355028520692397945786421597896008028181290161188311603034714485245222848862183560086279146689456985837435971631306179640967404715533211345574932120289522514735801689063260391253184693592752994293489863291681327001979658193551037913977619478043158807517263465483165217810116594075021655752411469586393470989201674532055394350141884998541477812436873745924983021801714856126182910470922291915131888420444084183793784754642712673717915424410828674973665146580790088363110241577931600620701806970806111666170163892805010120407047678063309352569502301959077217626483963935860659225250603555424314998450227654781852747575779885329147875175887466190358574058460925796264424533339694332583599707207420690165020951395994076946120631224086283917891287581772065677514411328514577046308152059969502220218110359907592308769837425321787183974228126338515977077026395214001034459272625001220356311517800565655469051685545251955198286095750333696472538771056867182512183002090332464625984784446798185073423400517050846796182183790910775468281004710091661048616268605396831540909730758260275888395079282949453476495913489855656642825905856311373650563725591501397344088521827633794049698888487495865786942336293283704314183782850011878342803426034512184529669013199042362513665785253859434204085790073000818617047678401403513090324462796951345624794842478810130053470111864768884822707146883316694215374139611596127078841657559867426126977854781605302588151045065443141465544020869426691363504128448886002378963127550053264060315889272124535067125716690781103326199543346450955455089254729986887812604218421277389107746914774034886109229726418939111590978776213965486742573623585436327721328440834712483120064469353892991375626120041088676267708779668229447618371295222935035902136367555771659991033877001848534825191560674337767373745735115013520271809952379066217981960240487159167137168866993936711527731058166916838931906856704480508476892122561420317957450122384813191619759785604023943243165500685638720858045939309968941368244148744421519838754539042597136947851358078070010908949352462748932896492645851064211826614883146508791141730776301930111678137263480421845793160748567095381354146608391362738047174749077861301990250689109155075545821213340676579509054645001075254529100032344711811851587968510984861221781911425207532449905487830504208664311846044190564133117061896630609920261064224262732988589531740975305316304958913353440381130496832678485435375321369701725810253346475015244047198810728313969704898579191066915317429016705717320270202056278863774827891565297728907347416856876268296249103075933880493258949295475576640164662423464372854999861645705020557926521326436268647995364834151967564814711501956953254950191675522270686032898817399166261752589869462281939017884499840102384018053378298572440481747713001739039874974007727614218447287256201167422709359181544964269393338189985236385756294860395969992425678450944692709363146789615229744742325752298723419829584647296625268537080163811155082081830356877871770786921504946113547912428666893800016038553870061025981818380121099019483560315276345529597471635294175911206221764402401763230221176824077879854908552030357191728987770441333764770189829386969849292524112405597379673658252270575104752800255107999680980838683131984176584378591450867606458101740135909227015461728906373400629341171828491304625319882745400320737302144041159288055480848102290591697181110993890157913063328665518908881485343534418630708571397487215655000837821931230947402542658875367634050942535291302642502358324205422506617411487558874544791681183908402868926062851702762405310120157521985305278263886126978832657982903079466060985910874298315286074473400767457402038153704531806010428269757520960016054357263566230087922576876320575097070507852596936035002148574325269269152781984064900145360579308992316043848332591814331685161801624634855864230283168815122048484078081003268670483535006931120403475442711001057537850633020319992302486359112623442574623026452935577472904477062301845863654270499653588137263173629419066238502950533915494836886503705150591184422575592710866127077297907412673231588962997136895554658498496156874325974884527659379894229599170851744029214803314123601044053503094726668928537926891631458939655537701661383288746350042525716446657898752469420443985147029917915367956324747049950422505456008449135031959154977925894862750241920576635700095665223465945010679917797178449436317787684810487998829233283415666558547232392886379532539939229072451758397960087743556285404955389272816191024957493160834117106429562270507745229455339514116254730069484724221811352648094760867458111574972512153334085901849664895006882000343223320763784728128571990636356901103762001628545037069289706341476846610491641098314019686511071127735042703223937102890425265472279934569235729757360993138811745862614587791303410075021213049456391579084364013081251737560150819445396492554081820941733113599482098099978392406382690329897014971500166461475495228084035278325452910732122328374130018827655978021345309561012829578989733438517023712767860350687436134463343152694485538136497499067782728824985754250720844778603624895085754096521348152348891390819864756441253752621315873716091578801903280349125752536659056168775143041568639151781101782607205804229076566878324167627987867954777868725839878612953884712270351995936934309444879346562697610101351436408099407588359935173494688344982246345151400331232650922956564620444062888739256725872149277261044691499942180789815980983070091385919692122887402871854310276806057808497906882345477359076406835537979756867253161450849088005424438362947194098993490222777399924023392706589920172812819895159664463033076450492696517724877246784962812307181238368412113211453974932896286480969317908351224536243942591388899975295364195215211754705483913079936928718104506173062075413688124450410745725841428671442623864454133169642248070956798708624007389472423315832633531497759544664409719736007289958244073944111449711712493202266953618120970397968223825161209665183710620124138852397303318683342326677155715811231335235969909257280418915267275568169176605007109119229991816086596353539238080830981637769681358643735755498671656167377742111801587239667591434926170376301537424832786054295395025271430104882869053557731338210039978907768550859108902468213866902173107361505644993042186201595116341727884721551045185575836286207008393921904401755435203027506151993389961519842693227472346141068707424935418259603882406672527987827847750957883871753454941939688220890117410958317551173667604485856602773994438415320843867523059727935139710951783306974357390919929880253522347491202945036727529240074566778201674919375315345250756106368635255183086831172912218637944962929416635980786667766051485794011734112959153641139843278143570089898697949030864502982937039659506483867665537803750489530302266962214891766753155621978526465101170261772967395734780384980902769129512118778001725203348760264619158725551147911649318659704677824708895373462785404737625763615497478136300875244741111180249565366498827999877928754370108740378761848784449270964079134198222640403657519608997074114115108462810886208748773172405017418063933104837310919148755432728625649370824085641490090501232373238139273888977698764185925669442776150165073379784768429380487590984264196835684938394595078851428210462176299313527113201896159520178829394773396034735565518543584206193680555165111115290033355489909341383351987553054109404487668791181845936055915246513854463204242572754220256751790171592455016783096618208565947141362749217364719824235777762475404955956929901133641453739769665307472303038788006021265631147295526385212480993726114259165625802437175380162283021856631245516724939366452919789103324042960053652818666068297933531777474712309371447566596931684897805159812605896235997141286535994113057288872667549733863242743449112123769147661534241593835817506494914381185224388026522601595626961321634846059469239345705646447395182530782439770588052110625908322336760039550718078294638844283446405101421231326393386720537217257920316109973664664576184491844208075210601873270675429404108142872313958170824961143576261767853939244958761707056984481034339486481210442349611840164690507956393139376898847074315138909301948481950502067042825774188254485660829073677185176350238061424185575366891677177622426342069667231848436674408489868062794287069972086565338116539504114525751939743829030359886561909490561098976624431499923285792017556078953954757589939019938487318790563442959646509054136295748030930204321227375261167597957067852431672898586486900477540135458816790384784267766793601503430669143147103428201069124351419245869029061972309419850807915964941214600680920549519907445995823693772410640377501246442567459757930608931606113581901784807926063454830893852997090820779169661243119036238203125460811716715805027706458686950603014994450173745691617649091259840673333963938114911930333961557754060045178754534645038885711811703568511873944415944058956214148204709390233679113589340320723179355973667176092666792144171712925176180356124430625858064013571026245578570500218540442826538294062249602554547357580232428962533135992852178423097402737136782309579019429298007142025160318042098734613486854487119252371427152454250023339920790502551335189786566496465558891773287624962730821255931693319450030674606505032711110209529326124866412420306365830916857417851006688713059146429687680856600428942849563474020330430133825951277304534865412961137093633568643987091564782618634883817009609187764029186758738271140180641319383468919205494862300010535463233053550423785327465439451429226175733844970530401324306809514591135314142837635975020681703572131892625650164992228076776078920399806174020338841967404800281865888587873673671709647386604100314440202514814038479628370812869488528270933275690629071591820438791718831007077068816899174854238095707499467942493575878872644767934792027353793904412848304247460028031933055149502031708493896206629922200602525713933896103088400425459036825168380664431152428930538820063211190932447906189493718486315245730089727934672041620544832248062195628218762361696364430079301455911129894027371356616110118751574842710837685456684672312206799934097551140393057515994175753994364107409337588797680554194092870390105227368606376165286100486053473190119855116663814540899969804625625748406460783705048479647384296085502894148843771556955924344745645376165169769132215207493565635483739560096644761743473762562791314687470131175973050297987779456907637493118411955167953809244877776060234673975028859172945120765206726678461067975814020913474279191301136783956850459891263287396421480087677174968224872612200987268697076741449116764885404852331193506584267763440571258731166190057234595087525246766475045221205741455129396868085527627484773967923911824969672865082172818867425586876843865958968421434739812690951398198056562038761883268624084445495945704605754665240610792199937917805735007947497407232473268468642686320582897092561493959187813376603345003162996877341807369953363201869010538866376733089011227699684039539114111798966608322281236265208286651485808523130518147038051996300135388868962383296211368374507973177170904292931623394716842800082062738659347138398043554757999955125834081514902015228190526112323977474043039713252968714098199635462476213072280889116389158261872537858842267038815097957929764097364095698148541359137418027537325260790166855823399493443956863181785704743672556007650463148478523423690538851625175026936587306387252805197707135466284201107630497795666929390059934304336555893369369042201459178696018582814830773730585372872419456057632934820813607097914404517225811504445066992027321606898836839330315944755898696285496816121142699311870627313675123110564612710643989902871298062854814203837652222717029485519263860554783499799276326809470517330233747715293576865914615401314500088760534259384553487140823627166475230170391915605258581456888491618292899051259912544600984806683271305224330006482241104387835675789792722372697166987446714378800125006542819838050206125333084624457699464470974817458323670281715445673061519685976066161154996623358950320737594323654565862179509098183457218022028134048565945699180585147219051785052859536855129196894178396056838922028370265941755325523928194041380106401328130137450778246165589464630323655830695613277577758069649852502685921079474518683909011890162785520166608421359582869116736800781356717346216779140235944063852898302743874029754392588079007535981862379987583677448974069378458553391406657081176432290130541794964461869623859720003268289744261002072098924580907533764073115723081373406966112809566420165006621040472232651130703961717615580849628920585836597278713074855694938755771642085846049538082547860017910477080370978648346023307723322363028641912006853797450216898389825508048417154867087014266322669276615270307836018329269436793487423128678486378354438941534451624648862989020329693126018228854593997406947460083432075472532114530410666681214630918486010701672483208106072975955128075218369963506986232463776825308530322871927291903466891498946374286118068556439431353084666712124711618632112173948425687257527308821024323783138760684167528448119858200857413318691208660557099243874603875761324652909437835264600397563692150651752495623268707921071347602794010780919351078518063805635974446305622056564228198842953154732935687095128175527124277380963567583045675489572225685904507679455354968237944693866868149216108834369860915571928589578460445730812505121625631894731705174575130126077689693347126516602684520759519917636454930153543784446191778687065895900794959977749621049736625477036670225512312684359079071121240591758745126243719042871811842141050426723419358659758456229461195996128224107226315521362305082471084795591600931937931755172792791124995059706868643739078613850310552645507668773245450012320915243255270091031263015601615171816040906131060800416237353351617846786131023972328610203710342512707437424918878839189934182030739438041509881771714682444899503626981387780739128120806927036856837028770025705795500830082836200484194280968012541427368222894942687231005428494328530436182220568737766802462623079526609280967325990534352176791646966182109046806826333602892467763006137699410126625640385321203051047534529793277639787592308052110879945841097733893027452787312504539638526845257300929357854557042155814478675594433039593256979930367351273338783973221716875654309813224163888279264689031951791858200270880425886551488572278392730676936701949590239975661626094925293193858166545105808324708313104587570654408160417441066870594098149882750945958936396312922383928246141308900124676734413804388895256464612754540097777484263690377710568706227707269090180330963714347955438370831498173200118605446663412185392311554925521753147549870549268734162818358732961093603800112897977021084153406002794943980834833444641350915866556324388109318722713579657435883345568735050351377854661374911789177275994573118617633797054401978644332167355981316581999630152213369760675357733579423586041063035177147209843337516199850029589308066749456138816833206227592995631959887601171348499495143217863800481156062659806526243340216101541532523640737104984729353055650477406914714139335619980760256007456717159243828821292493619385603449292815550378541079577190345022405639882196818471035967851843859357371438471318804006380628875974646727252659149990467565865345387724196107218506986184472030206524104703691663912862796546925727403207423807267691926677409524217422581080677460686612651535965386697496791733402396737191611238464114462912900915420526372110121138942952855125099702210013583902926493201464205049764264687577907751803515238069409650379323895421443231729999057539282448308513200376454683053491523302118341007112938171804813785171384276335464374345171536227032599854129357957553063565877502780790885038184245976379150156241936991527037272502223211183745524945345620775497502962365245103705458899418544341044295528982306562903870749542126456270123281189954213742833046200942805845864970249849291761390594467198322123520994171263154700863578952796881676803911731415341696399700266373588076749634058201830932256919127508607224069364702687988341972435876615549236313657990097209286006713977446609451392712398338980421406981183162305107374858672316300933333748188949746053402583260530255925445569904010931244514135393935310763217278242496354984742236131249539805356442151928391872287372856376113093513642606123794451571663797039744689350048772311427957327625011815606364917015906040094347709909778248060070819402500792203610514854355489992103456547175133515126605458144532852806668783387201134594445401676706405928156011838418021682880967472619174305754114900786117542088407190794778575881619063958157909271517513604823322668943132581558890739159265563874167537052913721801325168771753213623261651181538121237354125595489021540630606149666571229620030537695857376163724957345639024229031276741698343099025470953173669732624154133170299501044153157341067006572972199605719132118185728630285079126605730157684691617312875636782446051771632994090343120062609906591213927124193315140942409629643766477185925367906500664432545033905045632002746538564213315122935214543082789340845752528692444890943179428734691333624557225154732085228094824458407932029048503168594575924570366616016350145123454595624005275427314857682042634201213145133874473875857825207519826620481921722401870299858252131880809376691288263310967015572917899479485418554614175075184737077690496767664892419674615505776310073163015584104393413705049308223962842717548026754556046084476055365326192433167487726876050287054929644108039072088117035021494096759986075196695382205096410707141738382634235249915377756336146795725146678391762814122064523998762502844290747474126190677023506080416087080029724818417106646979776981221154252727445975983753681497472160292400076130163529725369532735880908609409620903037247012919746801477551664631510094923542795860835525317387932559902265930744171155713835580965899681237357865079792426304054580293896753215828055091888264728930146567156777104815639696727655507713612698519667722401085004454474406677428467135712467709277282055294973328988292528416900187852879647934849393129770691961035328971918094280853388777466855496397111751874421341381730030072414585487153043744890225072440537739113612107635633443315619490307409651614097676916346031959284570904179631985586340328812360083144997691844174160956076582627860590754056100825857809159317042009555508705827320123480686149942049945661172608718521275095264969508440510671071149518886413323450552005189886612145728510702071526027057370153201814242766751217142500167675217267773139129189516654455451182819375945202997826525474649850612476975346156788948229829452182657275048681125314850229778355552386226761113540362964803833202041349738598556339910156626367763707587367746939675865309729567405279173988544189681965646253414245111391442831288093050171906694005931747710820278864618732823916197475626047677756897198502413181461038430697705809932473203236200831499861018834061144713145581089853912094163897025655749124497775944854928937599552319387708947965511826412505047394398955565601285278495406286438314159195085894102775890084953731362747676368136755836460437758288076626322731445687398926349680497148518590697217441425957749833071111075270057501639950797640126287348412405731880947095473354071888818790710138908113542445132088851558536318614431221014797852144400882810672118451085977883823008022544856062526218194861996214276464308974573148567828594718686211785500911832495326376009935967579713238339061149630869463456415050691998556725125655471442623027847962949618951971175886931408911845027657757374022166736643422127688469493260589506796594452889007324560774463324765476868892188348778552176092870345575792322772232995071006541029436883341989648324296238234843339517551248143501265834593564217911994915451205961420541264816910066455023750618487612824551682817434925946559623708103859431576643102002129662985320008116160166344506404734104914068934930931320624021037725462176351463400619773449664270040502749506291040413608800248118974498417395331786402503676220397639750356849903971113352977246906695444262429129432360898146902182965745014871815014981970888229388347522089882405386272588726452959566944998369257634812707857467789287623923470179822791781255436874310390454999895744756798595033164968026510130256169896415031997799309691061155885813359996306214932750893654395083946433224344043306918090987879588340302046535263868243132869683535925198357354672440987944893188706508888776515846056472867757352363864566135576048873800078947526977796995378603596210044093660876408799534261626463614328837170848562327132014022985602948177462999674002138867598200729841233616109334881622023989131348857001650824435710931585567008068461319548845321527049552771953771805714411191240573308554800782911076662597970986111273507884439799245255871074904460926078214183820876310588904820387856252793601788332630930240241490762707835960986419201612040492757032234529477576992456261602772312438273701623053178307918064900149753470153176218610710883003457271111133362330697794579277667845769444312031972248618208604182875523216137587950784323599794048502219429181937634948702284125319123881051440958509232344661181750044916546934414276999789524911829637520695527768833391205468883734768990468680768353996860403733865659547098026418305112270480944856052064862809848931140571212423408124457920910041500770864503449694332351023262219758354691447305734832418094127760556699689548434397070734133786917897573698541102888877763166381683074110809934882827243253980249863143190654008365996000890655654040604019095767350242258281016450289833429254787826750473615549289681553202701093397760604612633672683279645842486281693305863333093719695401461970077632287922270258008000721400717961892921437296239864862952126372904980722880792617810440149543537162104012119877388062449480557167811932008486184916538238793502792338270376695482950332364053337903005046495556226724874268839468383811544856302824645262171470525762072813935540400745241384737724601959355179850373885294831795782520674296347304672165099413787219810571590565010943933217879125494868574738831927565198171658456916832058861699671211449081868956913644227210681058579174049266335613268790405194909013606503477224706460317553945473462923010043230620834711594327301696687158204743279494591195852887028209253356103113811708562627357377742189252543414810178662166912706530926681613457717073052583016579072913405222286087088319543726447816958260755275007538619705732264969503797375834673678569991170172520961259362863567123844858705451261551787949686354882898001030237695016122821230154723951917703459539178231315412487699719499115574556575278332408647475412919096501482634760630568378583346401118658214945350135312836315183584266806782836331756352048533696388948466383636338620554735875636523442247268639453067378392445646488212522942699547968383148532974624804606402258679560076708426487117544891567656039486169144583887465476473026013390217247682690012179093922687285633349496378644458654926915626176700075056239034748449304020237113726775703214852168948690359018705146288027659191618454302378960049422717913790467668944473945232100173992933166487849276591015892325937759067902649847178298734131258633034853583438726629960424539746030292805627797433633534231478767026789841509109309707333886415677131581633320749848211410852697259198102001010935033634732049580767135637513072192303450767320492311107269051347564206981303772189579711705744470592880181186954236017784732362507031631757580934945217229949414440396576153715014077225510934813759968747135583736024185085053807203704497346687926223054710576942086831610655294475629400204763449946556046616150151900103658902194231588903964169206945806949566862055831978165706301998594251451118268130775002260312911764121421813165165838938619400889771769387858448296937940780940163856093976548284157148066258044739724887555193427506316433500119660287573783448151955014003685612466439937105302815372710269017010780095107664867541900519777778909588071776637160871648512461444097396815784842343659435766013283138879491654724457356785631540685988446982330573957319464885364904590600286054024567233552343253329876070442493451611717993790248900341781637959372674893459444259327256202800531069370793233409864466629402217590960480691480988029696575084391282878379179885731421417099093838191222938120864614723590242309809805369782037565482670134849307327266548108033460324890051439969921668001191266135972238306106506581852355778630008417291767036816986775235082764319739883771252703610386533224653190365965630917321524726702526327284302800733200930045264178811364057138835688779749103053052062531371844702848308103102665234018694028972330251575452840549493917740366787375611747118009319831756126110669497490443422279460724029765502563511523040532481255127292327549023629672385422593248266194476322926424367474916087991874923724225656297519076192005372217890723353486227498935006999133119039781249480902710421243884484959127994336523624611197550793614288391978960572694094822476720338791015718677539138255281756886051484142745520888273063032578722859876360742733922191637732479464205376037497499742352196697044251334375998512119784207470613762086312022530053862127897794576844045914664624243072067821748361333772446217992401942640825937108211040414314377426847347215332296234346135259321667862801288671881405707632483890985496697002570395098999551846920274516896768786358844025806187361473792518143131753689615198387302766367135035551855534241217658558152655070920544957111525718480413132435210691693412490113626241958556279668013246354434825987314895100960525072617935322971366149796664124683043681531346939925392924349694067212016715004480934156140670123185007370812378072709578623509158517176655582182417518141955552247748814163915732066126748181688925491256214850278578367115461348750125084044396339588887458795183367876169117740628764683440134908060240948191754328118195250655755234641032061823178172366862289301841529092147457494221519005199499469831799026498213684616440385600999946863672034821693571925884351578972069470393486430898242554601585858807860770207293965334062913456617307844644273129725532957486460099069999650884129654425979330887904131800998410525105366662501452293503862181117770779093422322205199433517174040320956833761389929817168061831033367247809298292199480458357599046669358032472032972947398008264071605601778139325740670274381615484995417128631188264132095247781017079827815709131854297383876280478801446151667524700960331284132832090942280912960312633413303493320747831692219363926824634857893496316043132375604750025419537118135148554526565266730241012369129345993346661726134595073693596433510059390900899293295686708858012751196847515500435791960041855322263717327330621831856458782283644164654144529792891111606914825208689406265084959702951703399921672215458032202169182644443066353431430674333187920265214452346979900569449007046287981143647615848551067992276405199074674085724045437261948433759758026361722516552528680762351497636139755419347744919849691389794314040260013779027083389732286911563580343695143662051216596972448877191975231533639915775244099266697609532408259484623915767471395004675875778573541606167228580086285486891232572180942750806681756062209331623253464020670102984153094022743922475469107489725619382178847608622522010991552471946839754331687509705625304105858331772246472592667280107402294304950544820384119495890195994003407791214231087937202478140327797532137911730244699335462855981772860099992811141079524219181846481327882822386508604171414841922124967858323440247637277640789140887278179175918235686660672464965934836407522593736124830091607672039061793208487043218689276731748061500270463452603835880907064697852022339705552896875398369401559638251967834548025230045551565823203351705279442217082212393199661173060586713095569440000379628422954835145936006779993373498783137991321325879407017050117944360846175132679587729404862681932338180475856533107499480737653934816679008294797325102412707171755337840408692043629480787425345099073618381101459920513885660427513289016707314312708445986149591962373567381506486576532092840833251702251182807513332375185293549486645538453094317991098429313329223159618352714981620436708260899756692500750238574118130482469703766512676465939128799198166397128675357303036044523180634498975581004777349125395485994792430209532985511527772853589177527634627609622407575498595391488685219194039550009892975638601646715282352470313216791809529549759642434929800972833981346984642741179954256598104177828330395826997340397667234778970794148707499753830898236090062907150327650984228049635931263318874848511957564158312599729943252677287672517687322077447561458902256585558567829049103355310950387513146429624530085940688833370375517673319432148723086776418506468994776552699391990644329987202392434173610561086944060624306432383479699287754196643032187849351839476111509620791370241453792462760166187643340338214110504716558265156958954132049326216930523182596297125968674195334008070889078978880956040170844054183482626954161641657387733231851200921803070161608164665308164696552294547718984215520787955109816026739641943413498041292631187119446048497589357088726552375325870955489049240656265431885637134473741111419334155828817128769214969436138506779261300755679605355102714009551165355854551512533338083576733435383070691004356457883672552528389325828643205319789892236431909126204176392920857441757668152429982048523215194850565673119896307930367591738576734109010725270547193158685224930460621580204728418712845357701259666140947990055527304429055184264967799327824759958419248662095287788139736570159445490464237374861811187946137680196454310802231400538149468814757818045445131736673738888048186817132347236924749503215964017814538325966919023688169953152534673520974110035001972156645118326862114061335326492130637928434947546914885402929310827359264809023072906593277363677454463591450169213933283767333860662273495392100869852834722936406704660889952557489487312828076345019639556492849534142301856385570662733845412749637759897604554413221758765883299407085624906680170844989971945363603371291815359721530523774275121757612262193453793872818500595838242244637845065942162626686958142666451440881491844161185414397290751070489488073234070872711583370129837920163905097883765122411926839307355819066053287365364876860074532801309455803495293670293128512135727187977675736850436418195781871793904876723039185883886544046637406064758869459227586792491788307813855974562301669464668423136764284435439765641267964097430075590715267176907972607912657122032945655422390302789154905165595160018624624974174737760813913842380258076133260342771594221200189702278807678016533825636424978702892044840721725512499200868877238678274351296871137494462598176800208384281284276182945372278466121877750434355213244980552063957736419032699528326696066843420163542720919596997265039865352525186963888308665791046653384083722714553048986221500839239941304002269792525565170163327433686587761178201148529862685068440639245579839244164596216507089262126731265831240493990432287516558608778098194666229198051559146324423855267643761695959618780058245099355422923185017404706260508271202566053494174476313023995510579467893967896821585314445810434986961705810639031363823616765030503841654485603381746091268392125256611169806167139672729270614951072481573805768134725947132527167907527701794539577684113629500927534571694143905344876044548520394538078240513137936985312778642037340435056591878715228311323079917375376136820382651434143087470276812933555276461304862032181461522905546345493620037814341797235832571497368286523176260433080643961814106154062868493555166383677911024133200657415316058735237477242539680334835508409413355119734120871492469991415806180088120515532086038813354711067826296055777264903446544062931698295846599245122050727769355414940483889702950897016221480897755656989534252904417007216637470802166337371429204685965456774198339232038429685230973432654040293097813652987194229442409334559552523638951761413213257149917028412519405686317589355776779630276797609041400793373324343670123213427464318137390239552794984321361898857929770750315899575538270143876100105094779258866731383238021052159379706605031306575079742912730155885922006237580189661811338411200748412189109731866066486303838037151850644778087690663312509135395474130249647394449749736568186099795543740179357637363922015160821200597413207624447756541955766953336151894126219704582233536109219318415491835323043967744657267184287202475582785034160349208642570109989055958542626468189026767806680886574496036690587213614410272180780859543333346718138605412881988264267454163489610559357507638610544664021033374100724991215384713875478132461525361740608361717916744551110152953136275787448558554976252170704487530592876023638237491640146716276313585358413195559864417626638641578192078764474072492841130135579358154994390965048373948808648050964530398924672080625018443868789583794613217395490844619071301502969234778348641420498802287426123183167393486730826958568725089549424351599741727670791407492511441745506959939016706582249695391916865064552593247220924081555331600699536153440260190479013175630334859359057473019337636690810706531143881483306160551872526792464409126107265133216702668502327860077153090105017241966617304559288118253392423501945934370153405579037777540908998728317272474658739928481863807382102528978330319523942595787447716245783062702609648150370330917027638983562258836108419899111808377106904123638691893798087654104143228775007481666322350790793005656278598565555550513230232486851785523331535156661832431757691919900560501367584283119571470978717803129668150845820081577850713891271508315390535505306952004313683937407249795055868686110050265302610384484428478367653508094546411842268703821013561491456211460390385797806428824935112677611641046753155913908650663897195095443543886340787119186325821662895304329912777819828038426268949973228530465272371615352829371210294179561848829638013534709849941698448980221624801277410648198189734584632860472868407108551630742281256639672955653843087064705045724732478522358071899249195200473514386749436658948238950972591734867188961722636292190311338668388053584158719307107694602168005502090341267907693085748405216941705722640850961929013914859462964805310678470291847114636771777157634582065625790896466882029758510408043484285665500069198304117649540764452985819506812868021204955071297098563427908273699436333113344949257186816959686366536493963884970087854277952887831756231714184483860230501168034603789417585050057195777324321227449928629904893514116575678360138815967438431209343888222091251851851641532642277160627335401599924249810440900049170301797823535174001149425411209075837127867943332801178780986381048294529183701025165221111666986529099195349238452722992297202497794182504128389442454625447222784321557808855649345801846799793684566040144420954254726527512539501344190647069675202299132854730308533952715599425689109595124487591691312680852988570636510973123867400122950626462247809005553115291390833483632419645328941925672488727927044979161282060582883947868618310617047960579250449564334716302212743443812308329627753138980828242632301390088129703752435820503380083789517730397225417804815621876207317706976439855393711504880751584770771951935217756972909978808405837006160929292679836092725055661777041895046788124202080759457601030422005234427911980478309384725893322147160341838678669510036456065050182194274851322866004305059860387025770285871424598744379795183936408595084587760945618465931036260567311777912719743667160414382356682984519923063024617420597343843142805980039226049246710474278460598378263661960300217835257787797672074333621325067749527335935420215844766817587735218667901074453478199300247287400411748516808554335311864362593663301409359619812550361666945810245213661845817292116507479425000266225842067758060938484269195925939303300050859848341247012955943810453494516633155402854228954232001245565814186354090692118858546392963235311998023160690334933005329861462903861338668626494222131214748639509818634128190677611405323029875795979928943630305082134010201830157302880034285593657885382349235439592844829796165884597575462749913758830179536577227820441421044318246659590718308250951038310904368444851081811594747677296805773437113298199369332273028251875749058033932499664487938854429473590569121928686625658682332011139013563389629768151263793183618701319227363354192976377605104643005255242317940789613978906851326113113263937283173951524431241111748283315970356600089197422313665867845030345275733783921499501070713575036914509120550147125555765079722910189376391913451749771935554294350457834337247781924768683135779772984887040006178930542248079913286130281042731728556051353682257049607938238992216884311872198567110209039127735700205444911213170091723221543114568962556150732531886873542753312369378619608267608549046411344588661138048800901389899763620791049963797274999244061078013557470939446721130906514819105781895462272673675722421911736124817206001695203675161231116459219426878087095779336499753845889546328773241678635609662561236154039442830338822225873397577078723698085844337194950117343454415828894179970704264036017457134491907109335750186245977847866320771854405240510126160982049563243013102922432860701573047660014914966549333464866491834180657021986415488238451354262512167908097427673657949303971370390648697562781767629938934634584973512141636278753933053210081330839353445786708021084722032740645811137330213738205317057280750137645935838755467849259034168864591015630405706776213966207818384461974783184417208532650282241744981281847185489932908011012455755989748643073524642684074503542636421102257131936017583595562458984728965695384201800865901121976635450308056620611922021358586614506362524005276844064121799161893273885916483351413883822400699027987299935227340603728406564284652982297263988997019720447115919590027368743989875456941889651152049438104531150411558168289458043895280431697618344372435905012045267398247233914642263814819222447313513320048764149319085364254063294982318335211997319844305592001655805604200457282997722836979644442212466294055062043829217956063291728494888684643431898192112561303595443713519553647789764983775047730017520311837446290871595648478869024614289402631090776366214433880263513273321310734403392651965468952037296778722204721552950981151941455447134218166936988852548810085557926906219774244416690853507828955785137190988874297081864101142483660353465547860700719799148395313557978169213977334857249188284367985632951891851428358991468065057088069521193782120916382159487980721164865026676863832970306174135976697682112110812259303398662490490350417166227350235345586082980408761209301095994352346300570064768320315717514038482769999117037963873796355225460468021565352979459080983935653407752356501070864545714928193542581312137280848306398046008859657555045128573720575413367978629582205347409739182475025581102920681292455888793000479214694988861461698992276564779376004852311499947952790041592688705097069661100366394540343472665647680801377761907226054239048521315376357716014535095463438869977894257204199592373602836586404139941015959573371026865003495464127348517043348203213413498843159631094686037008241174806203494332575694036858367699963379765496314789395108174299263832370750917718602124141551384653197481001341478541380109769068612782005864608116732588055169969835690085739100777720666880317017521414079342287237392690786650432778430306226204516051659367894486868169091358184713277915948459046120284915828441728466684798700122768801484852724027430141995294889015595429907344884585813167311053225029539219993574041301370032177596568534536389795798667463630243957630531545336173130552515325249088931077677249956145080483209089023424559486154516874230584082508122893587907944196646829049843743886152999526545889364027864961661808090004646072914566348924083641994667138526237848111568791892949666799145084250543365490026901562051704742411638999535422529559367893653554729707306552285746900577391895200307798905881513998311503383069007461130827855407060906634697699951579877989902957693769426547147583235276851953054410175912259871881494053393236114176060643130687122190668181634703606767353075016195620387890019205802333634003718796608319360965802434342628820661493447334385537385972154872777859321674054027544916305971969187140298948152202083936671623091122593981438412718199985080642467365034503590726575890519441411871884580028616762668302763676364864793871258551423626027188388059551382594864836378265221680033701588356453927627189477716320572411032522799125118144546918346497285059595309591511460914736884439281550817285942012809816868604618624339799458700271907025066750929061557103088720342244954024152195227567109790353075024493492641485013672330162569294645972880044609312107722651386889377256630988652245744168985436449191312673024589699399465535288671551027010441725453167683635659324766037409283501907884445368137415872961457389668143892623896235339417156604186631086242339383847572808050917731060640603043809276399110777236677301933318616311098409469524528197441537698117219862836014838404052105738397399911598771629500586114355185104374412585044091460529098747520032878993486242511157523805111578798934169845361543544831762640745949589762453521363006728527811584899948076379921042796039607357266572813884815293058541611319467120396522425141701389500703835885044538203533565228313088521269258803959167370669480734931839180471167348435841306266638857941147445490576645152606466488102354666894450535114246414144643218058081214945579172602063316484234754811976856498191493188511745432686791210467746375731147637890426019531027120512941002396389067356386122045535493823010963102712186544115886287226469076815079684073552552584072963316110484998956873475351061892087214633893710892785767673722668138085882260823518917380679100066300685008533289952949806999972898619026102414978993235429381691773180339046919498760690696249005224032914933580784296262283677268776314779992680111510960141712555485661854967333131316921114942607359904796771099068243867502802696773406945782348280848791295570754002320556161261072269500570139664102775277563073506097830298475502280971597640874086339974633055857610769676985835220731186188757542054637323850431367710639739847435323615379793962350127501813075355646430930684835935601662565377279101470951581159176940786674483929339051725503074619438476043518933083027644334295535851149236915838797899565651212362115606923588939861329931383766875033635285542759992010406347378045844898838384086601432274036338127140126048902991935170847711581417309535153314740958845026104320834234660927118174338240241664019760354717277415950545742967687808087841028048121646136746344671080988408752162072219357789623097024636955504014043082583667013446217754353357233346080575860410365356158749437255720879171414641605613595043205893628292120625699841872377916721926198649232504031054210099572851936131049276018040176012244516895156388866288354809440922484343519656779127922027604930782888511827738592067911379955796729764885664198455233888290438160594924536772151467136989031929809094363011425978101904106421995782994548280630607731107471536039177646198239743598092085588957825943164978437332550882680971196236725926908555382387448769216522632423283050381603589796035238324235994431961773230068614804519746863399664792935811588896325211256054179376427989194271342225017116755487846788087444659385141982887504901430719663032741728549730414285638848147431063113188615821838238306279716652890584555539400499706697030946046685147958936043741699509802017481275027572729528646604847911850061043272758475647422983783950214875583266943703592012663777943289022275068087077789459890156651446071976137702760880086598296415000869566981326928896305486120565332235361204683483184545234428573126981311914039132202909924579274827365665384100991089160097375096047954250426903480811130582629205036212962207561166749542157403835006473349044505603747442300196890831553413655666538194038828389603326900180423130539027820525714585374224587974438820681229627225913730717213674419661637383537142147726549796613292992303962850978215945626647560990726784090904630045012002515583672011846443307887704572480758583082485005252326217547385261145882676518496481999109633625894809545926693343609722116605102034375990164808058954431720178719944794845328806030968003462519526310499398119749064965845606281425686558759433538421576474441589286625116339133245872522683786305296436672524173827691280168523728907860234475644451967315631310128908831003900118534000641363486976897371410785324914031052331071966701344484508324327880540537649306003215431865941643505841971158641412508738833662494481123859493428467551214899509892287572061419795400001168539375453513697207266508883270349334684744298316866046731865951366288151541581388367150000810811233201695994434104952044264917971888868069352525854442866972125607706813802294149295612799697005658714295287372844256213718552087422555332396882252057252356361190420694096024901042191716706748785613849338058306409593327881761572871302047323465058477474536214345834154905543200763612987261765406846155572471302310345417590974585080043351520599818039978438173885514339863686300396597840087644258486592267691290464769020256373084529987261433921954067017815202637237046972790447808060720586901916707174563481839674901920738384241298607077861870139226792662863457737892022885828538187244547520081326166546338018775727216987281863321938158904025940492781977541005839908248263789522276465172169576780408635869393430498313503680663657536243685567595442708554876273721414165341327849651458111488444960768581315813352899577818209079282757074988730819751225327961104884398470091384088342607344036653783013404063658875160356692260679728637139341557260142958120896559497349059435391206761977625776982545923937502851696823729641312484411479856537067831939777348566624423274682280103859445314535172876150730942469540529407619651194195820778862200931898214763187603325531187908422026198582775540994068167101049494313464790768599523388891312337708955008874943094434561215097850473164453466277793230797616747109424001422367399518859193611706749816103619690509605133307210713691040619549198278842322164122051410276009930916229045176030081248616194055762215349124620664445356561280414803446156529961368167924684938216846559099639339719731939936036342531189783652340609274308785693756772419168862992307450085871056002605806436835332698385794663498416004764452112753643597114585739969152543651641904418353408536344071941415867787362481838823100755946613127652718036854836439899880947688615851241510994011399388314223182395365528704534752119945672065774591633730044914370017157829351580365503114239847633369642747351869720856735856586862103470402210317222906430701186989536836114494563227221699923276714496157075637154971756840789576878776517873848553402495804707634686532784860528472919749781109433285108463497832039660518556565601594373111107772896242268271917869017922160257933057326192142033249837431683314725442516383111464505156160609413833857946432620691655853182593010023994889708784103295891627215268667370516243466713137728654492234310214420380289355348183317191899717658313142922029329579479711446641110581141216569478053259689711075200013720527907438796094029079709336126652439836460621119614111997517226261436125517579208885172786191053774657553775396350061541588354361178555719718770117782118395086459901356814150297828446826591503678459577237903195205874999971969637364420760111235307447366244064038411380314237001293604116278461014158318208610557541323459703357018035195046916966485672419166812880226173438799615880196723341930794162201921221977996653641881856769226967671127010712974349520819963256080010790746693432976968990370070028791554311599209802738047167983714819482962373818631571391901392607370145290539877646524475262507693147818602452911064944059793556614502341536733260385214010281328303526457749465821157702015376179464859568512872934927640731162825753470566104144306580916961122160299436824998810356451019314851387381288398126885567982310158976295250938912894523525492450869549083161624235065695070296162841934281473744003391975876051604952669485071700734501536290119674278693108987690182140263318846123134948975177200919861971670676475826107385164542495295290666016470442982095950314365262196729599908208129364766329524089882464160097626850502882356813477280244205277959354269806790147881659163980657619624682438533919157449790523004010174085974613880824777480680060944305598053340083778812988019203789130047230448594060318265032425176603719260734395328853438010758055935056449695781830334454040437034504512474275798669799217600137059166878333165852676030458213915550254578993358824928693036742053949985207377780871308409660187564776693403626979685780939752551306981211561642778077350187937615685811696990635485036727721939768018273596184177823407930675733647470925838687212079962306965413062648649787728013736976229313594534330297556612233469260206614950349293810570128400842807272312846722850957781802747983280291788144645890762565258809414124144362616974355701826234418468875868539981192650107345735712894043183897501869358633404049734040517783899906534166246403240767753430952601663272854219274241395439390270486208794638608435761264177887318979385950555004903977916864301361608195607929821427196149647382858213989250983853413785590681122755208149225535602180371277192850220210126685282032479199697278892919367884817989668962765575743214938217365617541919399543336024530543713453089336304331988562504253741435300299157334687076366476662874781315057450979245706349790415904155478973313176149717824157893683482577580741024654905056005276175981979674944375242542379454016556973818898177711129284379561076534234891125877345041236485416768860252041142062867613815829784787665008221682379994770158143864665679771546156012365956179828824609204023226781609796969391220645316748755214602378921897435154175342856587808136532693461919069630751471725835508089686473739210866374088837856994347628144316582433113248929328816786951922617910833314597878569930427146924073088882793420846548147753066781381807138061908703172099865715225409975993358332862423432797658612104434943230794684615678494806579128401180161012858490666506397560281400398428826805566452667966373188258470528881080595963404997659507391371703519244170029246103487947447111798936715707456867795529680644098755379159632678944257630515971322718350712238010319075552158242075562411417012335489556330263152129547686962912257823953694007932112540113735276767189176146074166536076269572826703840825324720766190989976787590363447156340597079060207907069397727238256998633999865842754892111431200817832681073769178272272581254935558057737728905744556487100239463859803461148733362576758765617804321931596193762447499472436434313438858367367815788192836483709263073475838948370064029193275783032819633093764268091120156478088425412021505955048621090688682774973848235487996899350228613259620251596102858445602461761489241237449973044667265666877126090403218120069158331543677226186392556925766864823880798799423092590054451071436398862266449868995534689488097212834178202326519440361875387525835429455257415693322676257829787856502839765662930442649275878457965529680609261861220144388622287698429431040198080460625014347494778034820628214765461942371236353918999021864261818821602457824382196455924198402439081185184832146864836807550288827371049950271112307007752127682793030194745467817233692331283212630378082097176865266779485172755630674846159242197767355338386053131340365899349701012739277171605440382434722187846826013935763417126141274474835437357526578090432298744674061104591982779947125620302306381909350959637893017339167318041816941852875985233098326152020572604274160932583498559749381506923810840854906074587328055764282477958732952694459689633238067077615923328357967925916183304429914539160617287617762532577196153191390612429936615192916822380621877500506964725056046031455208542601239012186670755722764405826929154930093563144040443198411204670629425680894762710623189777178030538820932726247331427337012170456738352598860500418688413680869390764277712680195072418831738485891307150291107480729365617637571046777110089179134917831823073344429732598493602592175295097435136971324093988697071901171946781164743312659878782509033621917111817482616526036794544115811853764175162140156152962998949141282322118533638321240315172698433221917937416480005694006764183652761172144855031424945871384793979770814329718577250294398867904510694270390507369666608798379252932380359774250407171233921336504207209340042470679675077052689008738015374944817571970026266243648958901627581819533771428744170624395144815568967902813158011630511613863529837525376625756333894791866192884835717477954287445661268205828515792434176251648611214760443253625258642991094008971602692766640793548714200624771137713155215131318443177489204354555781831359775210009967634778665086278454082479346558731904477306677034055465516024380380775582500405413635167706005630940208870579718449325543762770921038843231551236955972889472085584065795818901479857399771616600836917474245464751483255922723132341573831661576150640689543512034878439357642711929152326647784617382528439035459917439658010813174701325436250674511817932187166275972747120845422898299848181553327503311803526444564920010963908886810868712617008583394282524752308664183283792728132146935604790966988118842497001613569983896864482936536815122927251913642924877874448331513068707380155959784779290417925651557218700668927550008220895534118920721651854213101009777760067205338636107632607554991160286565711476673086433491117223510638175286285440047511604898723458578398145686734953346421650930620113677654933628516416448056790439776837216112937355233942547220304816846327217541970150122453866600639104273430168842926225006788690914513007361146108862233009303553850744956646894434929493275989618668252047843558462831718038645106643826045121117500658171248601272880386475854321752337973728057937742022433496714185022997972143836644581113140410717875029543535058090472310772891245707378599196684091774408577309355190544994597179247346749560923043985687030825851383634592707896919010222764244696747343600793422459114768600835815851409927591713584174972462078221281731294494411462724250900575072804892368540697621213753800906860855062913790682480562568845522594196699924672354412873288818254631137216026026428313332779755373718134221974289768196476308718603606778185945756174899797167548448713795402713664005596615637323705721084976425877791805921990185189996390486798259737076371513552355786306360633750612327215118742468732702328579440244624902784118297475559223036036987033084433388395159012816399090276423339820230694184079170554947278162826301651500719194064184330669274108400850653477793167841691609509695037540632749705300451616084339496610631075379586433249487441164695711919272858535378160589387367424291260483779983658246746534683646226331754570926985108129635738734463679577350162695671055174337501928990419770472109455145148765334595579363792195327765317323236292295627372996197189193619763767643783060544924273020055943995488363857865814113313511355864654447848142686672423693941967263700885461732573576617431144362573649299758369634295755815968769203392700947689790349916234413379580062993850368048630406171677846516329901059531986175146433389192768205386511942879669247583925776251273749202594456108775108432994659836270652756611739422438842376845063405078526681864661796041987933575240212313623427171883781248130106151320468449035664851073243431226419878641071559145092824437940650779212782982236038160223603332065192360040840965295385103280440194287338163306392696451201615989293433480029945117910251242098136197825993868324211503571020573382503675155565763824923287411179507445719906729216441074007725983708790685967251123448412281942026929539298256527456559789770130216992252700293252873990399828391281733920237306192524952868793254308810686204567935460622726358229620398961220513842347643276697871365432839761619369184730173401653706483146845544159454831105073592710975882029212681513725371646708686741734884101983297985259617610693339230781480365351909507024535404484070197045983283855302023297528923210166124702812841674894066997484576739619779717361596941084075471260595498741853797106341433921418866794324027510265885367148877991396990442560729854920787313034124289897635221924790692599538083246856506436048856341778166265705165672296425937043913660135047511590261775346650944465354398339450708739437710985225593097193862504991529905945708681793916644384121572325827380498942659043994809737451685583983225698107754634532362464424683988331829633842399925749197092609437344476703215117044212729774306750182958639631002467796041682535123000673025838342378931949368316669678412328892054257663708580180337671286413829991639194771188756201704833488712036079980680532293791283549667020098044689612040561822925259009319487331040585827640557315588766050082714852220620621110605069061157961774543200077226651357224181641765944213127110674419716542786979065396738304487670349697684624463866017918664264441295248403169514661528849172281327944716129650638192043422690505818585826371109529697016708225638034497372134242664803359235013209138968651054348714195956172246461158306505539024496748585254994517682190167148186750541516926537291091256831112252893717504554953949156512461600959631510887593766758606732294325485685186462147193407482621537761395088646244361695525298045222698950739521640617101746260521062940056051890825310273956087311578098298607311564480122980715797512461104509066233671331372711381388300267332783768905458749301173529668601098234775142321796929765612907150163947464628120959390380967158496689373074378544111228900129724383470819250697158509684374174623573905234249387307242982757872875962306401600327029743104539807175308988144052336832391855976870475877973066382088827274852244574093598307355687939956189762317807575802142340179704642695680456083204013659271970675817852912355195384133317880474338604941971881437782431359276549520005351887662770981178846655866862370574601555682125402879658152172516548381362891545520477776009648247489533185190573187352941233973329460868968134255913429275876509008486685962141975325669015333435811000745371230286291259935170292949662518685137537219543593243353477436406832112181934130127456606175860543806607681588897844394347253422660121478322793584564375098631363964659815384569065506380666179916246994858273666906388783968870563140648819031785223343614109995975308920304612833702065761119050195774594340339317708750177504017164546350942409375633989774927495174098370950853734862445845936118790728093142312991405295432527942495845862912416725086265959927360228604367467603107976823146577206321535000169030952077116768678898203775398206876530101616161131908528759583786938168274617689631879307887323682423961731328126627926848172618954353673111696222774902061866998176609257153518752854371875165208009014977021784405541202953581121494298502450383644772167475692500423149374767703157943150401027713206707239509194727930693164535797913239039036655845120084985042794831912232855525154552114254944620076494098844753945564218065717974031543876801752180043226406793198696169899761320256542113772420178170789046763349881230674290417678712537810745450635368032053687237653212120351459317818461785791911064249868270853975606355211954108639261524748528173030227436799223482484234353376182052773456253958009467571829159004754116828578022066511180052339927805558317359978186833888782995737832336180392849571829486515316563784485299323327260250103515302510406284333291002011765121592248214371566471468251095499794494666595462962539812311284920232823750379426888808209669417402676979598151881214103958887352797404139565787526820818062563239763008431436843369385340462409136318765957592884706339917513175118853999512695306256515670327823326488169088989058787096314186620149588761391439391535461244199448287984708308422470433271387801506616891915022154041422128479638163377103605177255830424513391740640577303799136866593983814266479453433262631103160211052412169298242481613814031535824650429975772743004347847009399124779430610613949647979442328185936849704604532077018421531842496071324723921590940238929653911085431111618784419537842896534358603813286709566799564996944327147065079722319692755652388054289946644404739446943256043094850762960799443996142821456341944735163804252302255971742837852432502668671360172951034537356980389839922725955297540981680375039484776323333219806745160345426807126058163444737510801607167804505392726171375230481466172448988479703975970678354642286513602810477925810562442716841579570006603493687122671860238065219362933893503805791691480801837368196959964372671636378056943887356969904224133390292889160020734982856084433415018022833589835219771276666575210116401570343020742700449132953413158488820521541798458895352576826255182043902885516018225899168524087235172444296724468630887718178813192461635721621720071430948649358697580294085389880748166397169982605535726247154786541372158062659590203764467227570687751658434490559549667785012654667817434347126859375169508770182219407965877727867527342950946106396837509854212665615186570184859059677631974338097264575040454838764146055393512517039232483347226042704490148796717564564908405003213288229551128507899023923895679079949315581022711502943153814319425837588200788278013854807511933315393428097570504752967020612240250511051741216991355783324806294769296716956453498823998932422061192592464403041238410057725976196989197895313238280440279044786979145188628479135732158141722433103746022086181915822640295920241676208670190735617283767788404157482174535853158590004036468909653133022418010458050191965275292299405532581512428311878069431881663271796744834599239349374287384712314290446490925108712386695518098924073436267541502573473637719924897893695077525955283116499968815800519308746894809121717811002830489265278651565129115538651109413615476468062445553048021491135128346009141311854766302476533043566290558035729949270076797100173174568255028351115924939113311232148747911609324944521953770973032916397526848986815690452009355856063127729533329263663057808990379442164930752985220055877046011026698468697509857482843328005519574937553393838560240568071015391913153167380248080497371112142234638956402631216067909010554710340437406260754273360802671048521673070536178843470210174692209671135572937472806384854140625492332696732779107018816159685786262432132171362264389090708682932002354564327830509158115945346092312081442488164218134192000525192219985065914723874069171594370129310952991292730281108671510668543330384563699704709033742297217723571287269251677291875314981592624178855146357205530664393035092598374058917334599833306908278716825021963230497383576561875958296169540081961883586617059130851037528877752553624368442063275640003419694494029296870509523207710562615749874126641672669383804726897558063482928942920770776370627304536863963354449732901283178112033399079745631892843987915655817872024077465754874114727853263946618908500832871368234885351591888834197483656557430657278097935618629135217177144027927324137612511832055427551339818076129074592419470474087181074640665245490563273301451251172641025980588571932651384747437122369033960162640038118005626557574627974155084341764659527843111633878103398439134206722300483634131427281425347482162946713222870932704604952038276688832193389300376917529083958024561886681506569502215956484780537447520993056486167192792513779979049366627194817746551266311534550686479106258188756234585999500613533019376665725027493111875531867031223636677586377410289613899385305910148930439290944645668400744272683924441424320952055242050526346939826170308586463018792723902761346435490811654015017352014694421980405082662145664189263060074598990544875381741304910747989200984188455849132324367232379038788125719491412812913448000781545540513976471143018810292720173699141404738025984257419869934369164247051334064476265873141552786898461447625341774679895194871763890723007553853652365544213123850759029920944117471804328705148956713602317575865185095760724374255565515723307080762976793107153842624183348671532262987477932732219335142583586142449359863733761026457821428240925767161693849321086089848478191978741609463429882551389276605547457284736463467558081989659519276383193895279657076981098203306101243063399026997869301621382099954952133968470935336124733003479516985539514122807444814899357051386239383109909453811707345389866572914119589698346756424648756454881776629283787280502306802671236939641554009584584422338831944730631952496131158763143696642487893284529579628391137682804986094618583482314038882796830163130608820570411780627651661488743771425340459824048701424037899910248284312658808093970913733253854853010678161685976716508037882116333131140025123883988123604990599257410547432000009310283129014053581429368552713519607591285210848752439113441750517444333055116973183546108595479811463144595465073607539040091822395569853066684761300801424428409793646033392105729373781754685085707736649680461292041151303538351112100453173192993983510269483675067643559964305358622660336113681734110317877290052206665904237272335297392887054003165068977123698975106994210631089428312517946259914090626585068135877287632100102565959193482838768083596453599270294340805569983207146529166465011466313058609319282259325281976347492839134693769180000666011659736129379130194257448394516099413445850769144727558878439196605282875517670247662266733197055783248261686559556151593501717773366224574101727250046346579774418013095398280147432754841306862489836849334634485104179790316289680317108366379940017917615905353464830385036058682235649648478365997740765203096380413924114043419757071310921394176307553811223554792701717576911399387616059442958782491999537889817295977267418503560337700747846920135537574176450286457805494417802166661878784506250069499386929053499170983824135830155242723387219863728570115240515369690166787010395644346384082913844480868796664048023880189125897375049816181876240064093297361617158725589508499011748684211763569510233377405367708733251675254213357411260505632972184341323185409429471375421763550607537501209943038402976542626661014793876810133529162238157139614475304323136953999477719518639009808052103885498294674664381784860225192269441852195689859703260540728265329613361373450558812891329188699530382348780900406994583270054146261111289197005915004669027269137538590652809921419745787462716607405804835969316034091789297983256066758868669706476848749065493931839255797767874820492513609665972719877701295928714765858525884618124863317641117615907714236694306082234492991282801014386387068468758142329819298207168452869727077773861406452279067712850676847270561523174812063924568121217982925667331285771828860681661060209949859808587630898533326542988878827053132740832990293070773274829030640174236226799752281812003842283888408136975037132548020898221636407193485147621612619884585270642602936024486676709189865337569132251363274584749410466741692786299708614195828342770154058806338999845022203258766455108555972095609862934957874728571498635867188186528888055623563707464797157783644020126174379260214542903924348671344421484062091220018546497782556306360660601722833123258774338620371202955805259193370094302290788601133942560076037690917180518134343095692987458359374647259177407633589883302264829873324699089742972860177892923094348158221833796291429524000383548153852598080696571085683485924686098520925524218327355592065595458806341247427243225561442051594521989876090522184332614911791380690124220394543903158186766823711220247621442989244665244798320671630484195782779526713536875609249561066042995408613113934069717206842194253187244215832645421740639871186448868837088103016195830851513442885497820633159017343532439255586377988689258376227574475232621650128138714657446426220740271666581522214516272077942475956074369229180024155311419383867122472169880045301520322767983427387391418710245179297599968085042319744303227169124492013499858545497065033698238047530661150225775804538812046964624096945237896372811588417019745126855202680164694322233692177230341287095837305014094487421856818401870841158240594041834702290997025315047568559040305976250293697434481510535490695995764084611264814238077924749622402225697174617932730230127637325096613242027035495373941319271303003200320106616810198104541720464472620430168013741615107783641543532186430961849462275770755169744529781724905325546532932954419991558096879429801557401504203907125266982709785841364787819388338543100473241623706714671724546143789865908802180928914192401516493084938357500608739194455297415446333318424244509090038251192492225748074955404332356507684091255919260107536158795498904652419452816721416878447266925894109440109381106577371417737110858424258896184444000527038832449788879607523501216321120192626530743571878554694325753919816697338275718372805015176984816898599378799931050490359047422738502644354752117990179791219826852454015948422294792869115639436821042395467013929155669222083928057519484883758068463437150746089861205193385934193523841780849627634736603151979133015065662209319748876152827023621667950131243005488994175772308085263741825063470908729060156610252657779490384236291906117619615233995147909442520568114979381834771346203394612399577039258029738376570025064815461899780602310322798464785626070296805096328043154589287365119204327728800117065054235024087823163847991074891740319841682141148903199001116893707157148182144934921088642449541104893307367719839224544439253143614912105503353918934904158076018589406313102639418604007849946160154455841550666957850122719736352515584300373311410005259405057623592496178279814274510722531877312136133005214741959325914945303774292151977504932937186663386552921768471792832621163724479517583683732679011885144303524275017963287397407126672411856069594424564907566287384314452943346111398209324282780539185887681157853652078996357593642514278033416468116508109318663413581864749315090603845256188972405178221774342530465524496049716968867454646731887261626856011596670341788956461685491944069627097520447027687394251854861812525720476774933546749685834314401395875189866416397568610099396760148096596370170477994617808859975219746672482663239702101859236668779904730530201560081873704636277097953701901573755570418909151612703664033024319233062796326387226741336344460186066086839839913844875583048889828954706801389414563017441090516386396518990279311553202834689020904361340187015855246199171172572281702779758713474240380125498338242526826656630914850893372541317132886053016816702654550710933002250606168918763572415477490204976632748670169288748329041095051582710736706854179358715137881819677265568762977667303133105980917909532841270620808740525443910149856200670320494216846740384105806208602868961492168536366705580301801002249033160358178880489364798468694012637178615639590045643551340649150410986515078469640566032919421514661270291941320358252277471378846972700102550492248083321045638041750054950455501902449799301545580550188210865409415785933805148442937759364751392403870537682270471650445192582714369806122964641249187878281210955177254753085217467717777178689790685795793538304227207860386933364306892496524712765410853296297757352548412167058781965780090913506807980239966860141643693129647551521950179861533784943109600063507776265107189383946263786913952644783721044968385161636376184812738782795508001469441545134271201098743638937114128902475841859321043823682137418357262736200005995573389638301340258408656399200283930070407393030312391562651041020632458425710576968100971873678294520576660692029908795384291478437277529380913685581190624081609872364330364735265828115150421226097276283433535996146464334555973465627842794813651338011484166584563668975511318868221387619616325019142427745568764450431326846578669508998818922161767156639324514458856456203321614733053021585125856385544786837995874196842882012490566735093388184356258332056404551984650439759091028228597025752978450074104693368937859225867829152545796423646256210142807804385570709338411942840081860334466935947507847941853775334972401599260129872779492081752656951460543986381805430444503925185838873859007013030867341032157507384301761731740029811459671978993851223578991565009767359123561388406423966125815262515868756609051357603050501111002003059000246977177709765470961917172582665347243882848691605862616439340926899263103922942329111426670106559588312685807268715281236981565369019853496134312992813907026975195653853678845553572910154607181448265288810213921615942841760406126929271366615944771742913844765653360039395989848878805829567019641065090788380764311014085729908155070039896071364639651535398371005524574986031521208116669785328216190046691172718184836296426733714688189026476879907632615476344875322112796201607776619529838884186959814769602948173469070627332888985316235428505708385264365271337727522319271901985623522222142935305765494303832948327346715412465323324631520957363870058327252822776215623249417603577328582011769865926042788127394214765934240721638441275820949930186920555241179105649743063449293922257700777468362757410332444546118792601175740542763355467892116418287240130002985937381605166944259527252661598826856654529945159053634929511936010428154662494360593570528685985711713373299689592193861858159713980265804726602153173037467947609215204195296925812985026781779136599216533996427876422379006438994420914906411712897335859832604112973038899592853604652761922866745570991695301115458286392687353527710989702160019585726427429754475154707442629493806327520475488327183842784917916863432723267710078374212206089474905655121421690609829830387258864798438446349981057409842186164347856131955995348681459177727019299105514316974261549129187637101075705933011980796529945918284868572520778873618041467973241517279851953951201104391335736315889878117126568238072400002681653257698310371545556589178398453923865991563368980913764594082947629329835648828118711628037688752963729886400298738715285171508312442061711707391455168057871791254200775368547259799351544785664181004729909174069314480322857209734087313450519776755058555214332851548236602781157609990709475313846846095017569713286411555971840249363787512030746187568384397775037460400034280972215710044902403195993633690622956547760380225627166532253717665467303770412643277842227649244522928324134947414235042710829236323713056136490757264351656167742312354280623512004297504229919292489969005351510360421038762128609174282639050825716845230554507878130662509294186134763618840686255788730478632798031761742764210601272356473596768248497112587632793716278016850362630247099535918801020328806377656979339552756246856381719557606588950724238851535886702326190275871552972256085716558210024098495133028517267640778127026938491593742325989316659621251419718663237619767792524752625129882605363798408910252688892032737348389391676994369022685969927548834148161143010653909970823052473281893918074627337662566888840158101553609195206233202247016415881820217936219927530104218217763567846005199447222822834753671981420097262093850974100653168624920641060527182254716171648088722315216990448283143270741775442058199486943592777702032811178660737978709139861874514949271010129909913053057570776323745701929831652246061876614289218070224823790686374694945030736064726704757739712117586361359826903285176156378834465489525942275370279731162081564898650782131918158026834656781114503780507120543675304371397148534590345722808787419114876699357113063427927095086641538514158060055051209635570106447713291156285075958597963616313771792131658522932111625597955097142196006399025269863873631356736865806028431971402885512848960667875781159868421941704300957704841897701203693690427636105525488500094868399905590665950553258603928435743316480058677582007597127790900164844093952541670106168157548430062848965775601679381566377934712423849783297511284746989869816558572989214760177872491465940837922909625530891471562648239095167789085155347506719001798460288749024322479060403335119556949065973547701916825979154125467975823038003782733288540672308443467481838366054266779806861124760091517849083094146945585698507721996926588156402248852000181067555305455320987571298508232823283671824953198423566213463353860463663367778645129212316428945606850444509172336555174974833473419178674462249303023231078088831818479595651324210029770245261833051403391236286651915648877071138790136215963486922338741957872767956608066981441238318221574504065393602814990240674205371880216873400398057973205541847153785931638321379529458093964893981759999908513835760361558340620836487324611741663748705127617310565958822771858400410649329022160635938884852748949349525580307508495354997350995677132173316051319098209393347278206706102669946098478103726849371550895034251994960884372984281496122788582051836725033004271268022636327077102847147812397181779184257459956633551125647636872859581562435219727219964225303832353459742260470050318114614288856572360818543199737278431378044205495426431791352371593411756402874014791893893988193357858506929571756674243296336865726974609251240501358244102010323776600554967186861444457367529119719784948691883966397513884212983433805689101076547807629485285229836624215576424171701644973967187100741198885582632062854412874369714661946863097463849191765841795437722129062807259048584626629634569719914600441204563403172031676891338498397664829527618447971689102767388689116864810096155792094673152115304639100322778415573011899176215142902636307035548368112711545970662090611088431724916334636818458897584715735884214716183483642939632738867383090155573007066078487870226935496982669543081272518171561895227492233016295603698809958453746623675383040833589141326685476185117862123883219676519917185690336915423580743171453439106261521407959740566051912148708051345208497289343574612100676907185530732265313138688223543883023331566899121865482427966610318227552830128329811067007069262602979893590644003977137697200882811686039490192978502943750318861742590994010926806345424864403804232758557281012774094514702326544638493816977711800872606988360539379395525966295198959644811228267242603091704888636724678370834165782810306636525093479523722580201430309006958443331574368619605565905134826735296185341687764099219180223512289378510415667352398372873620477158089232597199048088823784161506670204584520651319845317426174723641003923106367116626451961852166993557518294151390117360920808977640118904278617166670794553482047133177757998395113872760798128784296559954925333481588052996995972078901662080073455689793288984837772489691850050164187840350578094047193022417624426539397242525489377847051782526410033152578651290736759458104985900272538111522538767754452819175635199072690628993176086056418909461853419034247795658431263335580458056319443095303707483913945783831998968139616268190007983853821833689405390895068947318136566566509629112205708993323678030715687233028600322579667810794677469058264320888143274152011776636238051915712057077214341569681539057206707637944216445047822969490987929554517292104834544390628727344634537052387572846106416285608740407993942671805316757309013939895618921577287560162204234059548701034893005455431825348933572076697194801637512599639312278658305886183121245342890407367915690179662432805033381331411991339298123859929161169397683851243359899076182458423717218482485124754099672841975770185791691231370466163156813222402975634500756702218933899363086019040385309391904308868849149558759907426506281378768122092188694492617726402687352233770248431734977333365743596537048217425923503206212728654272858873545909807120788883819324334199171203897110993940189337414667444215748354142196662661779069380606823436983889059032651113731036788279610974020888461400705196669847402429971786630592012898081242419988193883321744750904749096585979963996710752769350480170372458318236684674909351505900022636988985757420082528798787062474036729907112883199035873036963611900418157302639440506549026750961824395819543809288402889735071290536004790192867774737195085974259000050904931971275859122342432719155160623866049916644412426272682274267183348571981473693776544520216263827155151266238067868817481881889315186976890342900715076574136882227070305700336782765377994494603312521562704721236192669168270310034909168087465158771459137828775412458457757810705432652934966748574306810950784476573941383311406854602286609199451470114261509657757871622622769202447950159560851757720152895516860087179225715837347649522533457433779694949427402475967959576413988121898667158283313264876167536125289984212539754064846715834893088688118268586698099464445888390764656069400700724915228353433711663361230847663445636818466517935092176541371319869219992414922785037656600716546215429282019490477338528301251068956607017570559747649283185839315309915686587471945994586623976931096707694574100974305575005517012057297598825690515927636730844432753050332391479805934937499274248497527693938621341027190318706440112427612049271313684753701349361858943308121305022646162316287159061890259220502624237198701666053080851565252515305404198129974735546009644773064757728170249966371312050503259083371328911468735832115712840266250738353057236971930024777586443098137777623865215264039413724545736464884041206355913472761250290695950298851812112443044495718803612725295983905225608788240704206254074560358777211090632503475702128582205504894742065485841003594629058484285256277379383218076386056489163340547524387094236902978986082509742266948153238430334556909606149658436850566721522135734582714606448008655732907323945796154818473679203232992473473597604148396587554974924993517125356652141624065734749262213738524946261979247798496966548574434717398463948835670837312221963454914696925903596038847037709260940800921464131323406646527002144807251221640131195700102672788022275587213838426657522721238162636295337637543224635077649301707161380592523343676403911900577158363063085862099287658765459478558574381082717076922282514087613853947634991421426527110780639922861817216039637367078444539394788024956880208495373710131535205211979440353094272931462664889434685669935149610849049882496326908960237519715224170997049741040980593106360099650673938133959685487283185544801418366940461290832598186660549639107707281913434189979744385686004208588347360425017807497854500063538269747909732617894073680177598668559764213448872592448097341437304201779756053439595254325992414224490068322762206924730725424348831573188385202204497322925495472339151428454737723254551721121915530821316697167973173981757379233311601865894157340939899380378914028233758604335027161728490414456221865962661399120565389862528931538636579969710764585342119564627215159202167135741670964689528791993381389121043522426777279616453944023553908525322585192608096127929353066932230238072004606048655420207280804246880855632193824884589105855522906284584263787317548561699225148256846358095877674270492825266480397808084002620462617536885516418400601717469168997184425704409377436764886381567100554324923832309156135683449881767559576337184464086326810919712426994824651223212644157851565872991812917825592878185388010463794342287375643155678054153304327649963546797564051247603440234603030979831019754137773424499751999307315514552850563586085568741107016573199581714637743154386947749177406492949242639796258278866532645078434709075024145126228023674942364042864080172952745780218360664455218681246577530890349036971118309882201412419426308354390068700496496054955476499322589822483537827752984180923598670272649484968615791163748378832241060403838276765016600215330987060260914556628857217732530471538008377518215823516435810597185547007591867612397041762504162451412017336433149584665739875385527627676062631205634093919524029936502441372703664686550284567873351448344132135095756722816249101911447332420467771368618844615975748178652761137438551013875357236165058585085940990856003280425766839503858623154204122610610474706531239659613097089971535843620932574285091642558369117411739288807965263021491061999562798091659636708613812943549462623725425885673767580663266276536625133796397472679159067921763183991344141633757750376190328921137583913502940783233055308981977276981734156382243989882359474420881389142167900284804850693207770698447574336901176032001981521236223345190549273516073479531542107042611126560184178590519484927502379323679789254553938975183969631706464238900959572753348344508711942422250005089449967203429109251461905375450338129638579403080009721932387143648243733796918642174540003345957426407543156692294533910043170938199113562630412387000564903800441986810449125029513186693740189950352177946844647850511129253267369461376037239212822239797330589423919010996077688347097205590104845601711371511353977847452886528598103438809425976980145136370402836424114022878572255832723542539737387713126627268389666596138709498016743059417057150411293531133507718810764220233997601242031176198604499026900696817232519367092583003347534038843046723015335865126910631547321210269778563298673638581614451387181376104642875343238857461757858437377677032962432046169866535612071826995283888950894727241534603260996660458937099845452175690530878389533412343470878056165821239636266828718418773134400975278938700186990528821689412649424903206657914168952169339851943789154617465702333313437121819251805303696798212482088555089590863633381751114693649162133544577591224237079266901344302713376554455552284275543176822484678573516741538575523443540763697222988954469874063262622776666406421043688615605314662957225910574465888842041924112631499810718916684146182971660792965615826406975858015756583236924488494892048072358331089335020079898987388558602742762768471814276062028329096894351703594735738298818391085457493098982069713963148752389066345997685402800133960647369856848015197927706175984137099091156398536535315142969125873844378151719653288037124507576637585904174353039767173273236451756207734872866009936856715153582973491455507717736205572902479565888236816393534385868339269312899332159903399683590954788847542610547981267749324232157367262852816195909015063257024075962918748071032172018660067029561600889387864297565545488168417886660045385189387926236535363794480206095666344455895098729641784939369091183992616666403543957535072190731411775306104207268473152960069499105359734113703613190474277814955366735630521012123902295072880187529151666199222486647340812903667485699072457356263474708178008253972740051940188151383716772509071891508618317963188069754090219319144122442902676696079268749281843042388614108901505956618463096392591847334335381805917219142806106247162828848114769873165261881547605494163334217779776886301915186854651153732158850782375745382039295042640734156041845413807897601671254950378464327778447876821524834194619755401043071123174761372648530547286622185810715968903070414672140443477430208635175914216692620399026476133396316505865621559071680477610250360716174979384851149634429545243278788800171046315522230111065587779566545579757069398398187065868180060244618715033680991610128561427921558247857829236303183148525224991979168346861785429894805561853394619923402351685248414935894970884423089613228298679310066684581269021718427592066567527328686223641886861182038338022760948109178734720775173740957090006305170163827865469229076852276481190230540646970571114633332211747521147914844062432626875928617953307536095391155703717825368903843151545271423212734740519868419512972206760613419450602475256638329312809324853875553529707492168145907202200808508676607277475324351424608442974887749192676679930356969328327525933493586752091092035493221294895597784981084440349177090136811731658336446442155113985283967392297379884981415526566610196930954617327202260889697922191107782991380967328730151583025152645732968642303817234336499564858164156029053670520367173086197502580984057356069856638684362119860692082795000295131424057275855536962152545639136313391381908975939485235480312081318068767748701266812036828486905518989510524157462726754393610145552455605280038358078144661023627650214993674159275012180370265608876079134713114822843114249895007505629387778942668530635953796321326555557336678128009411731848730591176159814244327844363989462825412640009339263408097335369587576980004975163600675962384190898364049721192288534000463853847174239325865917846906647675756565122602333369505830854763356537357884850073687451724813093194935543629992397874102306386854238679720060965806757413378451843947035064901991763967546202276143845871852502384362123453136484738008683973458220181102042496412181278520690370727421221453585063099434782548533393322635858521770537647811296981103936097288967607750567563403923838394014947313154975502673673007333990141272918248113860082945494195859795682158053464195221390551146661959294665003021724711302336375832615805838221686531026168999105166211806949438869575030150733641455944143162894887085702601824935796038220517860264086739714367990146188082498428923400593287381810954626000243650632111649826664504352167940136682811672688778173678820104146614586212774582645850665783014909174814520282745305829388817383864633412203887215717159998383420787159065513019563613810221915161840432797925462952437776713932922716790821337399863395472629318822490046952526033691616218189573494200867230137816320037703885192307048519369481080419122957779425617862994510388080752396121325553024035711661966649428953936733447195103687792856637556424385970639645687223217149606827031973326533113993278782121880744175926560219858824808388912247937665986730848898842500882549512382907762439632730847393395043971857722405866116096971232933641667113695902771204930109651087134733523585030420157607978554174100393108554652759468161253061008372980574788641262037861582505348842676572006186920628238201872566137343739466399266742627032369678418933160812193472373641663348999719445347573709935420002780750211983375164408387921356740075399200471672913697894791080126372529973742073529895164751113576432054839264445394407715681719905455298485312463527900505846936902460676136599234558054046028668217833092946449550015211766220183539421470098019323526692751232776245287635640196547307010767934637061791108086355814802506548024461578768072511196255231975254790314428701070220152737215201342937395511443997409792892060040627961396738476034971292893907318112396211621812418459104768212544511508489128389138045476026738499805269164909341250973579049741541362242817464815944756810218793471980465228175018805753506875548305981023898282620446038000977754833401752097348334211677925243818074267462272125502394539178930565270329749908304385063329096420846852322109099296650082568651598236686774282525613109652736809504332223592014036093162273914587351773571008854604271400606582162743164057794015049270238572203142966477099920486201840681323556547975690904052782629299297810031813564136683218807411008860556087480245009063674947180990472878355625658890367744025616018930174381383205013504578356964219232414277428558273075408207008903598294669908430726618540920635620723155088562329419319701983179782780369587805929245021144993088636885415595419601628185028060629514889173071828696778603185962753339813999007862847183830469682894768534141640670318794476673989386202299719391178403100959534616808026095871728437494046740738406829400887086708957129902935097978142247443247821534112558034859439600248255824250855941857383957822170553890936422269716914475939684024629780115303482307450814638010289553082841402146681612480964244287457074323614907487138047057204572062200391668966760828609354182667114589459102480893894225201803104091424746772149165611329517353868058978234227317396853501579136497822155515622304313750749053350614771800687695309338741325951423949931793176571341619941482896525226821926809927421296589602780429272811391264251174321339926332666578176392474634870766506975922043349432075111785825150448115260836300210101403920155150007066322536011752588978771769800716205398126908185782591586795055809355345596517735891733080461095705823262137114505559980554966539700653510114994359519587583956478381729090445407369007531466896695543159395545112285328734547407688520296112318397506251657637876435489706878416698627300233231254244762112409197134348313453556218745153040993021357959958026027050687187154463450680885214725147918777443904879717049686616576103242546912466880520595051369961629677642467013224899522848138972694693138643269947968593816010379211780465818344903435392539184772301372240550847682677698154433706389609399425317858874235011337100470035887254454152498192336229428490582603470177401744605598323600412561716990911870937035974323666325610792365773694555723181128163882534588759019255373594874049512456684487148961847426441062780357007028248480324561603945861063524467342675203262476431866249654929267585585372944085858340609949672858046493076897588298799905120166743123139853591927707038534662928096981929412091367612830480765970983811024121599735047565823080202834141401680785426831138623480009742451682695069035682684216394863115831707611360797631543026418329311197530787729752779938460017735666558655627771054395213140167339563911692424858817474620402675296238531643428462359264341608310157370241636041341309871272862896269662112315391749721625279948962003744220016625762085388275362024124342418618982964051399386642368527202893516257064806278359364206504725658912305767058938477420415328805489826284642349497047930501861802254477654970552892126301696971972707802605826095063971444877076805046757905843813781904894082607674003958479592369882093605265765724564391867568311472928940095823545496328672395272723013400421079423521091852797115330364157536139274330769621015343650092755564983097187506972449625143302298017374102769643943947471996524803010446317897283411457724462737171388268343941505007101765394911133745398162256453647756578586582487309950016744513633207092479976939185438724410834975855072255991221990729586913764505716059288360918031654007840387199934479160143648003961541730121060506713605085592386034019606882700604119832688811748172143312495711933280287662122687388344901261120629337462121100288945575470247073978485141437019692312101263062531372210170598762978874415350841788032303892075429857491086245878269711013581894431930808163181444955220030018188144703614903793898689948072415179416976214807665722465809381668403519799514169965305253207920861466309736638561810175491613387065203155095690120297896878229599061711599545324555746787960392946786466167259053439544224755471961907814432043250218515254371013887316463381357586372037798946723051155764645591371600271809231563112513730008262355132100226390958514090946641329588015068415310890087965605643668316193099336600520569045885092634151537473021781060140735456609969853829615333644060639774595702970997075254967958778952804340416665647327893602543818557462063604070324214108017770476649142436861609243070726738015811110930948133334870530858239722132713147624967639237526042715320085929849273206444778736269540029568494112538058912946167412085247226894800161330032345960396612279711478100692096031335802745062169430307781018924484511729467018778965102167971908186114042622449584870543467975224446878137090385795180549670855718136036737518530602707654720683205419094908207500681700172767293382741787168323892747857601753556987834112020102436529653982101228758264963459450777631245505655214523865525934486445123629366598073567418923342074161898695500968418026943421820941567455352452187667438265616831649540590578743339821444910899903142459728537030198174346231610832994346350075280592225897952323591593993483830380954007102293067469861793612343653704764554089627869468552297262192458057947615917576879660893507876543819200799665896214927849450160736390741006617629797161592201916975463327759069836594112265809161021276322802148636402062126110689737114781926914886725868434357693917903395068794815435247386006028598877102046979231395744638837208787676670091643976026522809624891863625488796671864514459949352451093515401008239557578634110311607966860571564268468681156847988360910492043803861582879685211988916528000072103821011760771130379030521666972491286719707228790733143719870195789046168097851823915587861107843372382248205846640659979027008984258773126917896832504037520343751854316877920307825099789502877572736356254165915344172952182087536573430669678768373944961723095162307111524176807398098882872465491953842610536455806710539657778332301822175047813897822696740897164542180731594431515190002230059814146744153822752518562021988456841188124493894494123916493533150983044386181557982219101063601134900461660336624256997395451893270133388999057234561181634806301592866809209705393204691782433980815167720493811361537807764156723000051298494814927472345841739088290130112458648542611899177467639456383169300030015549187239225492345484418863362836272519552285189369449116987035494364342094825789226027440333648931064682249985979914955225354683982301255403337094109811242159438409174372357494115740664099143735172669615831849329788835704099398570540597120379636517581192910666022412840204313462655101653295168764584677871705695477797948618648412961984263134225733161341949263563114868853966700255665724005377630321225199774517444966434793018922577479820163080370822743967785023290828802116496574519567932265372495658518456600233242524967955762385210875202017108819750883074204868858125489983323051145806783460388438985911424277286873133915384988670059564144336166932240132997862370880807788301083255495831621225882971647721765307142272756310035861153883147198392722695687051865120140710888063755739401169557239968627892303202998258420320884990952944209202991987495199323376784798603834683579719740173156823794760448551046653903147154822493337502621350300161094806640106161932963900644231405475386225122075706873712219080298658117656445198397131449388139372272457379940088442683843629132771205831856914418941760236241017747277460351874447670783073457720543604637482413618044885780863362781692842117856964709541228643745865215661050164345834686190462633503305073378966032307838129046058402971726238768252037279967901909805256671828503321633788810292145338148682829231181295064464770066622070849541089802506489820490263110680788263102803821773143501108196689042027287959665336528017276034966826533929644943380054224250336890054401031222189225131192627392087758351292812525264146936676141887489728283757157809819817434882538844453782854010104864777368567123424224825878522164728965439256691223623499340843510396105041508912686348249453426091456828857370197356873490865488566195625797570951912515172809613151022714388444224194823704290783209081791214724988268257232269249188551959230949103249210054463912636036936188198593570829675627756105957273723242907882997707922404602098144473389645639038808227704180783477223059579331525525809155035012972628161464736962408013151627358356109062865762279107878912399170794822745150271551229486595054017608022041291391791941179218986620107393000348837814813743986108094322163046048514389055588936977887746825600872307504455535104913403781133795306662456762660420021289964270420444557204818194825638766320948754181413608088814920006227936992357423140345889245268097043353007945190126027897806538752819202903258456315796402808283947959634252031039671528412414297387845350876096681174607529058041903357680643787352274858030535160554444381743228360150814924263203934311631090014308733514550257483745019444392761729052863130614764337031492672530809437707657104179541379432639798819954606830859195939708008580188905806322541791026231149243481730120769461792811892326275812958182138599841923360047113884992458798576485330723562963956314529054072041471244784231979388576481061291934346216362314721357024402932944282012976004195120523870075461999487254452812685335096519667925981810298250287945921547835242796759685997961279401896029594677001891843402858256648354733258157974803609711494228063981907723781189205331642623733720681640599247712331756243372292183141630679648342508078291617798608965816707602848488092862498999428712229581521553126277951177207492182326206628373514509703726422058550766467907577327873848729293508382795919595804985127483591639131193598173692449728867260246221104774879851689281607485901804355581934836407738755667915638923074423093335339795766616692398022061752822167843845084624101720626647055265927239012238738568375141088134247138229085920399199954883569892841563557652653965285897673972749778153384452929526771015659945845901607785630466005730963341791517194693873123913024035396525020048665122267346397609532818023993818633108174314499531995903843745949836148390062451579295357734628340308859863350529743483667990399829639313147310805651404456913286841945095208581129682628259168788425183274583612982993010089475731699842277130479531320054905969913262909942506017485053970760626632087464158368152659783572818627243225994345362749981766195200830271059586918292980904434640498559068908770396211376136855893371256591913477555915360048785922636728521065525472950642507344928773112768071142574067628346501085041782877267206098586384701391010530211216341627735421486759814449860821532916030111977086100628183489514483278819696199893340278698232057957656856135603073606988289661237272264036331453270482916220161701761971216819093825594456775699133998719678656536064093924094213297399673842744698467783621482117023509576505765935313907957673709896182236071118020878337554256542675765361807100843480622933672604841043446819586919895340672070960378861135758874663315435104167259938499328112605755905810965494186253701328608125108181250175549568809536671535602291450002703302182017179143858554130088037942967076863381715973222417768849822480945314602103923447599700236856835065432829543694166814634731685166538425389144115393611063174682956164406809780305385894318005158327761054510164169416246129796155885544776039262846687690997658994374941920263654990381948791583408782627345229636912975149145820607624112271786280855896109742956069694169174660279636158413787023933350468605466237248442899132653176060819288320588444134720300682196703334245867280125610945471755585539291897427952592140408958398841951646004121026266893094875441297358483156691494300027103292826299559863524858451052415452409871007361721032651798433182728582894236500440907284104131763558837681248993188622279585131249149302373471573873215219313355844916181756761813833463570083578371962276281681474274557122974184844635237034115499399072160338583931295124143718598047390456932772246673752740014104773350773715316394495388099600367896296810556688860966471114584384836962188003112879081054712686123704896942950814967424207862332634644323376658005356480277697006308315276915290380105436419047020392022350158206348122555573419125108160173982892543611234688229842571823401421731382114458308045286943559674716768142044905409696486693259874339466870422854643183315721065913893408246334545841976541009566881317055865649277683693054710497160400907342968208822058948931555476988240135075832060075439679769232007934309659465798827227105674120557229244714557926604192163096780919356852683886219673642829917332203011412809052846655297395667282705277959304808521632411107916929027136814468947986944347193887856634631134162164988428674392278550997667757252275589674878717155396616357205598662051322689920367589300239333661098750084576770232240690655912322659945761490380667129358049314563106708586814070500153639055909036956353009124440444722268566313881795684534071175441497195117433144347544783762339109555767063817269975892955381409982138830403191334348889234711971759173225835077217828250099942907371315850720964715242929332600776768377112860517297338735109173893710226717381887001561533331358415279862732469445344327834197100427139788965035346352077280287832818971655720834355764070399250641705279085310820601506757978593237382794928932442853838911278506933557425462165698615431235863703106332602247242488844632307607964543205495495861535782343911409832679863141036005588828174676676896933488069926720279307418087236650195361110331566629356174337877056150908634278277580889925689466123299674165658885898129300762125807021643569357955541442106384186237496787990499726561978974590112992359923465960656914083060134183738016802505047623409510667995330602205845517918751224938156459263183098870340728676205524459203128257247133214763767269781659532481780531796514803376993194385150359082673091209957360500634077365513094212367499851793414977352406727113470292999140243556952190478072977263575032263308854546205276380628017625260500566223048780183112059365141472947623722612855926270810549915077995343579486996741556242410391706821623179245617885187605376705517789809749245396642842832488630755612720542000065223075191594153260272200161846370832746549214115977358504773409289398397454242663859106953019977491333612741277759823279032483258471187159772652769136596027831953712048171967632317861247406943859602535980859586984375521278411201130978305232993482989657474686048394805577758610124076962700467299678853399616976104439895332550433193622309560834483488446705058999629948006631433370930714581873778347651671787041728477845628246111921064058712550906306527000533648175150193573213765695629542185843508472762841451847116584409596865277455624793839254569685485282258429108074869121986507614354565976267517614100394805034375432942798117225923068964216985259827404457695103569682733058343366405969840011111037773204367940148846773618849949826785758749726873085578512015979418372871797824959486244263231590019863933582143616242040829573113804775477443710205241679777332793399206607732548726602830933736867318532570301177666208768953750708544040777401136623118560542657242992875578080473795356774676662688851430541144883312790919918796789877932111293338362510322142485911651206278245830133949126464473328893804270214887515041968741018642127287407842438175976781439762153281836891659298735843763418928096971305864406842103332044677593535453181742541226689231497352654717765560646456705246655028207307280210894545806504976145618569484534127608085476675376752207083265620048606062028619178479346538196124851515028022231742635699087751523257215660707391506963214355802648015581348949727719435086751946956488272551843030405769374150662478586853233980180924054646892412840204626925113675547790443638440779196858091228701279567424503832079718886335668763105012971950272808187477359611410000346219614945275273956412430011762515539094586345284168755772522863028839886116919371946366042361377347052161010109555584556122353168259098868736684069021207344836316435936700669407696229644582923049682146227719856130056718450317862147706156556579484404172939410552544943343616818849145368787917434299093726458894415069352083307106400899409510292034334707557858763922767866450079255990987169979295594006822159000451083650410176946104669556707120876539412194461522176048651729595465612658292054263144650387798491427290132158820116089545093503994430644096037841946465060451953907200320364138180178111549412478397405785369945691751178999035061784984868908680717920956887307091481990861846831009007241022301661328869818604567374330895203120509201581909971770274340486234508806409781521875059195005248127983709267322854130159312563642782966104142399399619911065692201017040603929269704262928141580175136988218891293009906393837626424979505098533654265449136907065111929252856141339624868397899461534984477440186618791495830386825722238105955701879266894406933050286550498800018455940124857210770324335315366999522528791795996013798110102538368264212296839364998865959292927456644018497561306856457056521267467993468018436048141847660678736545238968908809324512390881429924170167919458446745175032006231214860420617324858504723664983931509970777519851646902355483914912541008716235122468856946147142253660446852580479055698437716027060334110155500583938248059989712369353675255943916345517160289411613475036381718664863260400692392659490070256395769928786941297159768368559556850119606019912044289677023746786270219273001007489438414040434740262417256974032569134901233689831704365166035195104429231048912681527305653487046581422199925551246682956265002493989476392528076958374245015477352134377929311883915348166457879511162607374925734912516748242772697381070051753454802344571815690699716944153699005293886662533849213020952458507690571344137258580234392427128344503944330669205844426236160654840022118444218840739972716794865298025930843492540364910110074418212984668012861374014560131745351919229569512890413249027956102907438106342876063709799817781049413905867728859898663688242646842364074856019557406922229730445292422198347947980280498421262655159294317081371746741157224950063801831261578903937064007294876232932989880456761676038635230912206992485197099665200642194225909122661901651167412363288547203716621664667219858688296421439659630178763998946161804001033005177034409820095595522704288815882462815012567139732870068647552154398581652130289215940461500748362282867467255771432150017149166675816981689629903615043956345849045546862690615669464035317956087706132210672478290865990859427252738663750167797479110551386454961979869562523806343959005136878710459503905851264052402021586032202643156417891478501859934638245293396303575466490122201982755525287191264351308878777604729198875347315246934989159393245365749984436939933642422476797089796144281995888414506481330258050306821071981949297499172573605118778301017068793580224077992184435308323492878269106661467348024554706509670360727934971168452110313474032441074501256534453389810038382842220541965423186359778821794504794831121375503049838152982478352086259095055733400714939947322431872318728487786578081721817082592117567102153820838877459134672293309470675232094119679884587923582877479326254987297632809960551400163685978917533069277146396534507309414410860567102270027469164182788937853251768980394352210921279982532519208364851735885267065826450804284979547100956979670379033797193318273390964404433295386778926595720360517167401626763410382980220338488513819176066361930158087665717731240796096448161914310243198379645054247304065076074640623707209142134132105730624104883241852838914890188470878139377630953966636344764368488578626143709267855770309889089711251462711537198435097306817107304323778808260109515858251234248623534150620412680451746264441430868782807877912979599957742069104571829102991702239049945718258708501699192815585277691605196507729530731766567407402882899214315164255475191388215453858611715403584613923514002560230895190823429971527791953783440653569785074883688746863444247529258352263920588173715562771795036248648441562814695965866832600546596532923566204751108334367273317598504705133718529049054078568577198854442353680136111263125255914122674893685834421379307778325898266020642536875856232430404489408949297799085205824342838798397013020064527367153326300054436103190753120018858824992480420481273026539439219417447684208231866081036445729415579233455806178694471042515642051140997059327212689980878564875749484952870513325100348538866175273669377558390861059771837205935271674680141907114084063615491282114368490240717281794303289591128628813695590194924877711423615906019621622066725707469911826992986245574484327856174575713255343495885797235079148739790232724485663135919116573069937811013087357627917222144302869971479529414456138267547825211608358605652173206644610942043974976870316005190579973732039748358691332410896058536756030558860669132131019627523228060288608154435957094547835418825622568493164189394009691053978757013400561300245360531649184192552080531791882792046782960411754538673899634742909211385436464519200498231312432501820150963943469202977120634514072784081404923418209515048031293926655416477664661918634448743566454325539966647560591528067183619503304013216130800808123628853511712349358170492744096093727220760396936360003144927667783910814867985419748824105830413937050518116552379655143227263295383408302008773844544611916934382635940845991722885384172608820050468814516588635115460042230008341272164481075079683182389188450481837594899444072134482597389531025802276181216348728962715108041831896605092456641695447443251390379636117057078360745196484372157033728321783770639182137602869066373997630453939121546703463433589231036919297279132549570869586715953266673577158004919609308893158403200750111330911848817101479012074841556929635942556661778746444759918218161945257124344240524529783357648518165924132247634563748305343820024785105779529183510986864692070932126852003980763439695437127898348267365318714307641314153777320299652346443171697363791188234998615279213302090674650779396086095294243051100604525172212509266133760831298092641734744111135334890773396674895220977174359587232096025644135153371367302279199204446756180741658560573438950747862431691371411248819364675484705727370516058519840152230002373171901254678706363392572275130310703214677349231721968790383271931316548016737283397863998056177282354573061103363178855812284133347902430703885021416665841437802028294666435353914776109058760309539457656356698019181683675383792881677838199588561027190084023811564538533969886350611723771879563665078769255955261482416711297227847609648252864877015629847160549743814375290020297960282854283222163841309622359641191739148587666690621036842801706933684140528335792524913187121732650346740923816182854860813339096987768814660675005542230081654294786277289371325984466974850414216414448931165240534451160135478071525344451893041665130626777026603703363573043047262660221192543248694407246419009206656315656571722026666992462543239651696978018280477046533462387154471585797292904320260858595716147515989912938850087373303549932878139345998080766042451984156280191922658600403111481394975243643267964034218266197247980933981133552165986403545704837966320537537280461554979758166195283512226404012028570662242290095059209964463961893543750039470968720800253828540462573096376817574225084675283629838408873478658600913093857550791952599639709732410047722757310379041608193898484944001315128097864900241230870404250731139192004093763216294817967301569504026162180694972139419218982087810487288582386084109999069119180909969688972833309262421232967424804443709549369520013254794813977902160386060801880390279688105088662388594066432745607711445209737813356057454044775711562049632555656264489929264096888984562022017566844114310154715109776869686289555707999627918383843289764598326831242310046433552850272482992797595368269443463642287292556588421425807030070510098513128831098131052086608730575651010994405996772119577512071867709185707048736814276816502411852446830865298432332432752516655220666652075416015446947644163660609428742362417294165363092309328843956171360760864130910900455802473539453915944460740783513635423618920585751583757991285736990183207807205466182482131705675142910817501787175178027824291731520847264798326879148573520215176269366828503724126819951994376761396663739796557794867274455225234637173086050554387259469548583878409684844255545630298988894301165934550546438825057069811659492848019970687855128059742173098792725646860472741851237504954007382768759031882434682274713475367188512494931391575047600604410191089374351199521785522439253746081380190610218591110951692524108263668005850645281762831288977975415547400680825600525648888679860387712393414164230172111074519701835588667937848100862498376633675569080053337991173208001709535122510726422875207260596834244348620002259370732825418455184027778855641184914128873504751598468350893104854952954704548278132814133622119613446280283933941137850370161480905966651543817474863372811405546172670454896314250586764828335985322447127185723295037403236258439559734702186161010066400880422396161845733346733645037062194185517810697195172017192775110690923715165807380567965595432193801553524312120388514472011227674160366911033461995919065242023193785069153214495996294055125202450878062869515735600221241740896050216822830867242030878816315524510193251639254197298070030945335498657501870656860304504488213963111685339734220283336353928358615920758270126860693574515433191932096757756146408516451052709942242711193915534311270836874723232882189365192857633820234078282060283165983044752821752370617621182825301413434976187696230436260562910747230049805964698494400230163122048562646856717618555415058278300625295888613241975840420493758789020455673243528483246589487864119229773860517510644483085120203024755947692417450199558788566664500706394059187310822156109648867222095609374707929354311499606632522853881262451019151416212655430904475064740516036471719432748789603405511836082787010902695820140482724996155396625294822062059916112758325391395519015761035398493123940189212472666477470858220799840107066290967671254911904980008789831676917388902530610056391359024941714282954391629732637626626718478465165466235137105234089116011243140360276210661589952198565904485955191585438842156039285458839565566207186019580365686435053411893947736343029976512903462500239337390239670549100285921830683930503875130900806141973792264704617335817940352098712158333675588227797827229357962336151066140673629889779716361692555746493209029192557426687963679597450747730911118829238375971670703961807493564952110578212845259265702565009908673851279224615175817012485638730287699845520573260378824695489399495058184207921680638710328845509069097163058448654962657082750969228388298657748945626330428813037322866353529383260675112548541348263832498534611847735994958630377127403601352900699571368553400271037377071204066213698365095060587119723003133496621197827852566978727450177794720655948431206448932447944853147740649330310999550155474397245234281285376234545612433013269333858981109486169693942342781244063543683862840415380979074786955260011264771021925385596378298399519696540868548500254780752321159968491441776431834591291547544683999827746720418459401313296646125673825910066350752330954973965815006588437076460484636104901893332391742963615914301457347356774952456299207791249273272165016625049929883446401175472541881567427532656888824666856676005111495490436388091608437460748675439657687212707701729371161723783239796993669362170730248511810732630047064808795848456978193611747466794865424716948800774908335018383015008686058562598578253216477110183466068605668243406402710361250887612226926773344287623778234456489256497745986873255723503521473837735950112650539137334947977281188328641760961378509476437896012306350521940303556776597645369822979083664470699698649482637595921792264159138748410137239239028576474490466986537989939786779248725666995740838660705182277613154210816366132698300089750215459543830936930825906527905430258292057492363159296343501853053743476341119057441895383299523616092922830160788293144415511475946991368041390778193375389551302380893902451596020216690841487109770278277913164387152196119229114038828043199864341809705378674701980433844382937133041933956956005742641240968084139430483461750830627596309455664220208685598227062508525238490224369673641975124823360688717623712615466386170074730929894523178951849680725373044360708057665371823844972291016280129668540029623394311679980903010849141646332987734409345989970724670227846501043306347846839322176806629692877933430178452156895860328152280102884419063788181163105186864590997244162304691308108750496019627345507383723415124853529232402191966029192351628760225782575573769625875123357230140637853136290364141881570703383203170815742200951998157035721434387454787034908590647514965493040523224129154692080604938522690409818577251711003671447652418536943603065589695530336357039992759529358829167462719412988540583596470479963999198906671853497924647715896846398258447097410849743332599105421797472917696231283309942143689581244199345346290179988884452324577912677648687807635007677393654581207223718940901727177609683904111587773232314103157301169210599765753244244833778522972836129740055184291113623301444190112196812061071136129185371954086177246918514193675362294230735487786971031336393471652408169794647553559669459063905193774976168495936361623230720514627600633245411389084604037933161278430369046356215940751444240136894997105704603514388601565508787098622011922226420295051927844920927332976132904052873821180293261350936832059795959067613925108098620971590638189610006959966848104129588205889958240835352996577906952792034669532734013245113668772579793662499788201616139802211722347861682826856420985398279324977298221518835143271092632887504069009373606207325343726617841412602208805159946659699121522092971291937733160229573976203014734849136595418804400248644729199803286023353968005181289856673199843993723999415157483388817032246181833740142183818882857764142805504265874994211010426532617217516850223061329210839277186754802892519583481557651163142865642042127872456457096730877425751346784651528741822207566712173952365046604230936362626085354624680430591715490073548936653296299313133009648858450819062506211057977349329293772530983585469774546419378346797037224860985811282653340736254725869424934374258480195963575627803764517350299072611707461072421276361726789979549464429947720249803554251053915064165352676060568993973976313098297255420673666303980336323474898970069777097950109813651304787009362438366115640365433341093504099369137367593425004982249299577201742176691247417311053651036429842822481819318152734237253283121936782779099293315602870658573503813084097664560266490153256010466276349466288255248641980307226166236853997368774008091232188330391274991812231652823879640215454953654073204157367664839378264744847101193750589766052474287868907038857179099978110335899971902795124987137923989140310830865328881508110604720878238400031328864486129930791089013187900685660991570447621717260248476588847486759011490939157453220430808082319221985642586495864035138930949188428052032232269396381977558188870236652379246612166217043683530030605758782676502261968430171259780409919652732092086304533253773149365180865933955904346911940736289275048995614599735019266040917505056031271491046353152735064534288963331577123595522270826319785824367335727127254414523450594220419374232492627708158307594507593873165088919502806682273642362256259014227713559073690654388482540315801304162172302372270198422416269727020332170789611859017001720677089571429257018218402041085246785801963382993115447439994048368788956945027950728809686685628692536180006943335695720608687483435395389124155401672705419855306751784251066452472060222370750216172850052403841352567010595355798740461671463965989180775449260216080199360216485451372533671900653514268710458653194939003322638877703005526541050941439289181277014684810036593678161639241195015311816187572189438131031741644819737669896104829699691897968087385287516655736593007976098058286202030384508146290072717861936035980604495914312587550876219391639938337688652227681500502967947117421615289075719554483775082875501356125369975127014656880526706581576916366801796020118364925720727943450097655121260557918699048466678815852680313623971116663055497007061737904624770299778701740403506665825389099425396632397683794075905097232831454309708487966876186661428941969229256821481416698622238367704131178108850528402212514209069956180988864596265226224774015687672422908223180234744961666329391893475280626897266001879199197464533747151382362417430547637558935072529346476292782135587214855035132504598018418968256922957476118782705643250117903247078711477749581541718019767683317484058583819206214822732674106835789761453926365532519148801104362824330244654437046003891234175264084319203927024179061795268882094336455208362823974575364854618731458470260820610346476560928479431827417420612833089499277843104047706352013689252826211504336414234308034343944975722898733254665589245049647984342875558501275650557843877961821310425667902990390879004665074630470496523692797711416849038203868071299261546897653536442531120203794272442457745223750033354050989699365164821288316404658457022928373421191935053695831827246501184462803231306087864325078319694599440457750470685330663491648604686597736448667648103724618063484297211880143448375520476884025134333617043133248324978550249999517938765443967035375163656879379290335769511771111891341674789181497889555107287106533092258065246796111083691936354718432876275034827544419424885295044320487565226023204427249500792266336227561277012692639719940162511230490296245510779770907887018985155171973025796226149655940319303426908998992009052418737967066754158766045642183077971188844818620698609484281696974257741332802423254556297839820579789702093914491307203689074070305773068812963102078970628182582604404636982605890544043115678419211925137009924575989471320579039828118293402216528810855812481207325483725255327398916152369491379464473585963782054675803865087824294964065578170625432104911000581011059370227403227269395345428255848512679598172714480894172767773823095139110948299281229080303252655867228042787742614258031970928290094094863446093774200308829609498215511645983366915563366439373067180803086527655826132676012023500714732088437856324008929497547209511965921181755150949798685249524016836687614735223362533188321828188378299217554488385847050233662671547241094393852333536492943992045724170803115608929523142722816441691850208801580879514328006852564346199686317535727372874626437365857504779001146983127592840799838834462487516902500245687951629778693634667911037168472740849445037504584881630396331732007468110615716006954228902633162596049554099624911226366745252115001638980413988525981743432049895775866960409465548508585680406039545223935551319926275771284534528899570855786884818502215825768425354839045786487265122779734820418942830040176596908078249585755540290219284523604079731250325898742364389110614696449147695031742430640855633312721273341643711172620107470147867053948831348758877490789053098798549945660572769548453272061420955770505789958175910136298928154292807256280700292717278832670668406994926977995241858155708173001362187094301518883694555743368478468083165228165849310381213914448030708742603432131010030774987879828041757536756483423298933635618255650314302475357481281934252229136784007591416207806010052157618600228275208473262274935234183560090068736189379569853371111445800420088812064234789700484747565634357718192300434291396587787430614270857335729073025337514182379115593753394197844778059049095493051153309642369422136617347467900298089747648520860481315383626970547222217826982702849944160961916027394353045234493668483109634106680000573209051518631524037199676568676968558927393172680673449822769589148460368303325027839848556607075297590967994264069382531688774435213905641129514577631033789760950408918920497174378419381300915063261610768529698665323926276290229390329494202761718620470993497695527765003771865329865557284377291293152915934736087707820354827879928064468666242630235415341342936474127487395511378977155457839958607613554211091881000602014930740722398312804114223578634024776850343706501676127850367879011632581349860306667914397170089975537110069922042909278582273097057980204375890342947376050290693096855920980785379033012177834140016546236319790929630413642327466258360526090107454923505131729156465064256654451370258955893647278807664272321102035281181432685808874741648795766487665853740199609475433931144958754950450586084024661752321203063364152131903815523937179137637793219408232368748874641541782317828132924217606236255022699046415037079253754915541300815657113290897987046137962709437219092565846739903508423992723435177956378092850346810190849311813720155162735884008855561025062107594209791351754265489354853554907913420411116750464100053647932344208098838612074595942298959812799259911202037571838058237320692690104381354663821353114960877265149417438687769395575138322870392095387543414342139101304574288940240704589296364339956507426279705799537857352532806803510975667170967229754986674061205352216985292869099155291461832108731170233483268944889391835745455923427654821438459022740834739790718852659444377663420116666669399998517571320172421667456232269119130277618789253453723919193134176906774424051788867382701663178448946875708910760965980450058911289432639466037656772615756388967207549080600570503570436448567147367452735799841787048986735992113975160112413939819612361941598813033439574766780063565725835039697634650362746457668203933596105874073055715839729204808007871937184511054638644964280912677855328930781788974638769817977068023979128414801070689515002202634127506132980304762165994737430346507190201001389989861887780461975933244242988157787952307138229034788659439596318897930488210519615456440649613740794265892282367940992796594748781657922759918293931207244463046786647913696225907334955617890185974470015138838415907709695676215974764524099196171045733381950180602597194143231096534603467380726652043353259097373239141150837200218791504285568926669982249891685469342637922057547138532509424916358803747319221665134864222365748346935988265690652383526838144035504153722964846747714142249750726556219495707061912805872191796868503739832863293493684749922412235083694290358766195530525187182601394484218413084213041965922891322846243971042494254628979890688138732411722694290803607991080363638215219784041106445260793205267897147592868065384071188746127816713255327275243514442807993309720313111737944399108564697175859911198604752477816137039234267008130387185630164204511108296576329745270198210981708724373200871943517743238766602885519605302786039786597978192614812340050216824409780514248296906342133435057809942363033782566653707004680560469257362892069989103021413402913420191384117316534984813734150896288642944764791447127823873387626070589531186175706369864878014719037718553819090691029490443024704797346740147889289929327241599713395890668179600721035391608282681464136064176516128211997554365110349854485735507240861268213976554107301786228611961126805103757553215708084448296430752540210172173517809663887467709488938478425459800780102827750962855641993960049044846012431484954934461372500219806476173570725485167894048538201089500413414800372628133087305741992517301226893382007598042142383539667580779492413203040168709454780465044908329898204420584225838436744011546467104227929395081991570769836398563287544142956893053724783832404598375757259788794097833674046782054033851934596442776967071821879025991939763716057949525530915142953044449720333869672860819392851829010230357668532296743107186219311439253840254362579254897548419349561414844682031681244486908692401472667981495171216485889622955316592077824693503358639440551253723530027740900602506857827663371096230682894678235824925714519959186224650902195038200025126854681262350724720442524357538702527690334017808626780894541237677122825732847136785035021263561050357928173030620137757913259800615532639670445938124579921931494067436261859207283410738017140991193774187671135983261353775988682049374046821677486412850113666063752418379502337744962328871876438237153218713770702994165695319969845026912497624294186853872278512512438151868932071668593201412040464789190994940023351610074297527044382553186715997165397517033325073079632870144334576971896953975778831382616692544365494821463057067404251349740897423556771974608922477975501249025815725355743554325951484841841558178054011598719795626730044505305195482202092160249401055925775704835309386426700837671423966530805180622078336103569683033726208246524938502412003340878705510489708422071964345773907037548782310222572980307132523684653696333473856623954628855836892915457051304915942273393213232739914686927790089938884944038473099853244949216385284485065147806603040012656145174453523860278001288068248310939937388820084212611741683090222393712438693684223549913819996921799838609609414037511873222293320833374563761579778728219452181366534988938757241601412755498247238766869486695265858485690816055825280584001799355209700201510402899358482316509816531335172088337032914032313490609937355701236306634538750660011916549855915651776490948379596805460039762790084669922959685611656314579793562879507472911229858045785012991517972160831321055139541185409919539223960091917570432305134726343018276063361715469797990434383138467217779944446529683690263782119891375303336353701734444736630435507534790194176000549608689253491179860841684426939900899209844215371318577320992353691018939501333687227504110831033734043065551818440878673294913908083993315776243552179839733626187807017039805111120531833212510187771902823399676266436990806801408899709417157615547509272448090656037838449326479180377017504285910713001900442859229458268085443206819018351557967148063094292550806107079670894527569539912988211868752528939411573922962825366128274010238836284504271651500847998512009858009818026084626713954934591987231624349230246784750247508551020769657925392548192035384700192313611892174885056452458505937975525759058244287104737525674227996767040659025392775382648597792732643826324455738005818703223387152439322408711174503689809544379482695490831147789328075806082094632099200697293403312394916152440176493630932068585770956088054254320768764189946899954910539558254151516181180889431770915388916032827773703504581912369796160368334250856314777037388009082984908675432420458293517009041914343770547159387991714423656009902402951023561983208010095457712612873236521902921372291579315358730494231324853775322147276693101376479203799339800133125606648939537678445611210339795825996006025953912058190269360800638156454633858245278568539027224146172987968500386340048711849616467049062034843720120021979909991825912632255126054413936974125931938241406549650118825034204018804967939981237997676758809673222133979608108791240627862914656674816833469748109151838378597303005150579514905495123156342038185621117380164676332369415072303143481127558052005893521686107388470592115587552557490112619602049922338691029604394341748235670133298206405715886566640723687851625565295802588778324850652430467223660196765692991436044388830966579099480551683067077402417975820794930558752842681893658650108381641172872486401430209615608506876855336893589433445536320780702858247339041604299774461227947436204976827277573162740994686615909651121433669372435382953744296769038212573982531216572644247580326961414255913868397508887216654971314437207108483525372140368680191794957134124706475667928197674033350822132961361171163602623425105041881152524892767784299351577486502302827568538217900706550732568949270188374584988196754525679003385754794322902678183809657800576089840003008579311533074492974482963360207602554981750913018164132577689274002094357639562730023444701279676240151627862641877887601790387195975517097413566406159883717275992380758994634878537145760150476727745527670666581873616428613855702421687869539236620767477272138891647054682983857623449987776949287884457147051547651676632793319295310846842026606570672394378347335114410656688193592162794148345009440986489317388275749707661901544070587205394727740862007120329506618960546575695014211210637758519314803729684048634539683592107812252261396777164086585210108702332253759344733984697258294150610772838385108165330827713609598905898081684373734384250387089778409551170630909275602055476464591263802928859769212012631369191279713381212733036468982572434924309153498385008708377716776525603418553420649073718987301840542792717999917191642893165066708521440220147869692546584748890155909521233482285470813815328751075998923613211881137829809775282212765008679469385923132265004340696058006226345704453353095080134341809939509267227150785349474313679926788080229071780452786495933281572813360193680664879516432398384438584890832459837602285167680040706628845101381633748681195537878094861539403020191087428648363078107196117210430212022281940239170913373638121807766821582061617218469853749177542625556165265236608562622324035913712007158746224079930555962062659490659757039049957603185645176486894847321112074444433586722689782767197092756574618378957849922313449173277218008828938979672519624888203368456713208639651078363181572186617097047137290400080631220336485274068478698446214627538628733096864722350795203555977583083895926996367235377740778123677039763265339909048041481185358286429553714270430826795521815695039421296824339763119059089502275234559484127178709527518987020432569600846768090134403713067388682580831725571013684322819217914728920502158713998324125148857298732157900628616471956835139436697290046499945797727190398479484789557917983122407432893764357775646714957470409643372531893956265516462970172416408202824804244337381215923933312243649878596808905332920661446456029853552151878565344798143109190551545100920756627398441606551222920670259596734753370220830406766036740361394786167358975858273809959094801496814822167949187789685376197360752329260961963864835534070220844717264588113969863139145295797842751750347587941897358135724559585164136405778783149912962158847471283096748746706223470554856468683369270602122417235784370134316526887070604966914478220822132621476160400128176965754685540712052846125832002215874492029201028761285617688740644983084434496125238169799114953564060076527343550719643559230778091254595189342388111350111863458838172809894781132560116195997219626532825807309043527867511744615608749188086890917567191615377974205752851419018287095409605263734217903866930932047101094443166778428285879530909059712635352058075853752468939528842138308180905476177474293156982596213472781127780519344975336363545726431073237339515767115767356638351888238311334937433911825449072105619515386666600130201756371434536877115041183885757131771542725892805532072463669458915626524095893495034743226171989644064449169350300998083003534306392423755092482587356116505258910701557091295479355555139165847151958524740593549471309885930642629471397713064102860261865918554875319927087780609615413686227900971106103191954155571515536356899389488048776653068126990931667197788272262441999680075446452856283626102478778926047660342915371025022527968047780053586261524730945600214988787810507536074849640467302531348532073129107802429825829222325290834476183504283909269492091895094934220704896448957464460782274616205672121704615082905541650866722367724204505143477163460760249655706149338950468174238841602997696550854756890055441625032467948828598128136946752980396134236040513755636418611453203936239232956812167685893323853640831974241141699065326025699947138815000531585782681953769384280558708587965252304453823334961311238278521372349511096558084015407293811224720459902636863616801496686897688652153912823639089133189395642947146539587423099727237272019140012433651317351492443676253854549812084652385307755589914531762126691724471544875723756613536101964367288363941315752886907867871152705357660587654890362461181298745410027035797712510860245699104973843801629040258613820690758570521838028296650851495169585124405202226632262959008606774166239068722706999100954131447207441025972153772548905235852475990106148227960670059273550064600548370749319299852333166168130216664082489700073084236700349214725651839020105395474537103311177318877509634349176266869865757405388772641866483539605309394674134143982102926791111487984744091650361363328292015580053486461630544537634112280832811263692587515073921703344973026240862220846145467810412105645168786664506638576412200269086874202955945276887605639419336360737927300582219797376670947258926987266758721266661587179626897004406911630353878463431161535096612636078978176910248467084692443218980304358252056807734786844879827140430515601979592241755513850164838119567712155192291576399348468774442133563026709766144716607683779911905430525143725657173513799559807929532995854602539918529933076588268976951788790025891866771384471529013699250680866938590903882421154639339082888534267655958321672583872366738640527766657509795494555092621641882637627273010669433404270311489699352219104948999477843354355812426766418779193310366810708337488386280662121513396230366867866274533328867173136716388186196696964823972336265964621670362769486224150991096457049962525101675911870006772937136615581063850377382300641505869485632741986622288182573806150470942758510236020273523326911866755927021072307858918580671303710057325173452909482359102201495362562607216592960952928625970531804227185502607655492231681970160929549434399969008688326989304687549546540640150432924638557192791075185078785906748696930730663509448448779188901049784430220107505065337332150215695945592592769786758580669090178082168854825716289152975413973415818624834097290478504543265647192161776904840095301732334080561950641904341271313490345884672280726957124030086594488468595639508172349727233560522017179834829336643950630559134394794507439242520163281677468109241428477049223045988028970967315245060186844914457485497338993012186549250795093262637509946439482221814613993201075497617233723584531599593577102454808124202488042352224216032853028731689454644830359591793888291456254940131596679656430940374298957184023974916485817783358551742227865192617930002443775777395966626499425817242484748013101220235036585624065150224704768034410701053697041237226317377712859158167575993916354980180379832053229826914234027849623782127916834517458049946583616484506648337324957810005051352582149800778124409580066621705429777610139114226058400134785562275754517782272852587168491455751439505985509068784938337309622091846675063474421962867596311177664901212080544677191241440427176757214909588481633200950719768391721175933911187848291771591650459427405075110083691658549277501079532089018274084170559604823612317700463019196342603177539041813541727291499635833065168760665787461382356807270027166536662151390588352710062923024615772209056758494226536253825789160774273459589430096910413142801282962352709946927736124528897437709648749032388805367305480496484084546969015290720442845844103366319057634186599226210033338566176385003280799522951417426660636759687998728351032120999311300455979650744496905657042697285040900284216339140265261863358545382632889172799894871274990805372762537462893248515240604650449055953373439360243476192822515684497471501982624497329054277264630271879256888445518395595582532706754286920139418330959398930203782640490333013581567964120171064519410683211037358343779717548037987720437004992890976279773837153741223849955502797905052530970856474308313226488739702635797614173181725129100004361002525831287455838164714279513683333138140984667894474535996757650671779162874452992675498358930549707979154814243201775677938006313339254899277222995671469822606894830678377485352479932727468893431479179518467095148950794729016395606492221525626184636723975639162836210278093261503218878140092646724229544635176701200043798150956702003339049619769981416599829071234584566719775964769582380018604997916480794667410002014671188928583194887061165922838596149196029022712756474648805453761950257785424354629923473842221488710647839582254666179914835094676813700257174846137663420227007216347756672048753862781357412802299081336469868984071743503699334845728580059258097820149771342337122046351260436411836510527532535165725612621652242362142128838355343951060467283028646745770253568779129289808900997135804209349758382626584308251727946336081660996716490230763940401868092495571803390256061355785240904607436968482240844256989815702891480325212288961386315481684754656821683661017341904361323299232453427582768758947586640251432802829031495329220441072494269034652122409380668100613576107802361171934525598684538529072972551275546447342566036973359114821730066194582929104687756659288303143318757333627615746993941850964427612870760723697061468064101189665933087537032076082541712918647183040519650123075754277013765932573104658450758448043605519964600273206691191657703768571187448976585867367437895442547353186180509877559382395779654861908663506161935899765095208314303687399725514059930392780338305789312527805044379983405351226489261656979360858592221466219028633223228727463824241559805706603314213977013760642497813216583679623616756244253198393936311745165364818739665319239869336230051455802370848255726034093682076037489048127353669343842948454194722271486741242826590951881856487516659427996849286630743284312197843970987763647405939524351803922628818026056017087967861283420349097092555897126709055762007323183976844931816710420992891597929916287227675256377823853101833182794371854520202445586334909394774085329702777094254117361503840620173767674505059894200085955963554321072963863615770480871642015780296513260497919336637712231002371555147827899942177928370796942337236643615709795833650093725580974297893746803140439826406385747382469991686510375691130133267808351790478416222756510789590249928675725544381945394517922430290471894534777080622566738817945891412509750156049233921964080897352574549831914879125663666352944943059059508356535244093527926636228707080186187750104146555937132079922591048508887686597758808960661288399236510165948775176815051539065157808530371923694585114423719707219058168894012112237091399381378292798672842941126538307234412804200344456693850306560653025526130315754585023389098261154349450420080461109437801095105663412011360399946440769194244956237487060835859687104539739476493287604488758684276697411946645087857092239276262177224001710013891129432671046392561611397948329532327438609003207386342426951192492069403918901618985415691395035152455098564730224049579252732725196929329526825115749816631467591241610209692819216000803619795275730084959939849087628255503870971652868703315210296862080736192289876434686402347499146941314268692347212286318921662050376481925641863959085107288917771806001674300779866668010318558690610203300066195579842369507871552279588343983172447375180156862690518777785688188459649551669502205555658959827079774207304619449921690861933167287998023598723155900815183269732854126402804690203605023941182555616247352918635097375790089835104757197088701869265411855859414783746584345596981404184001953950173506326858254052022261722462183509942186193510302840425606577975002415032317507128418506509494152644878548701270748653879836653728093956346798357347623863694106630795645729372562261850859465385120485074378745336338045747586872225257081815796494461668330506706929715256774888543520954920370455782414812728045356102756724082324646997449017982861095843887556316666887000147913771818172608331448445404294833816620162359359499088599304043988774335338535069082030320032997654673654895501151711429099864966854990255955163771084537613685764902891332104478554252625918433454030558506528657412546301376523338703707844526264411175843683407778827214650078185763734026980302760898816486380875363050341222137203019340484099243609725612008050016299010883685337485301241377628422060421762408697299214445596166680904303822639640528533578903202282018194527254489273146098036620509006456598413772004166564104688402118101928168608121376732121001160924279035904393925461873100413231382784767506280315121679902032712847214870111159305011974016112151037302296446549139491073890827717919515075225439247407869291637290611191744463231109687289816186797056979725122910750059482391416288375941105682450346586280275290442753808063984142803344049793856854903416687779633526725131048603247475709532118935402638839846520339943793893287639255956837837005008429837594835957634329665040544176151679298150466155002911368546752110956435039952762280108538705221410148453750537113160934863987739937809708752611551059959127469212401703587803341395490524298406179108534636969983591204459333310521494627299089482232607532032775486943504683065990190024716140274326813742889852901226032237507446263589571985793466113395568580678176506825646658547832666431527166935820383620201936579794890275807749534770646452828206362558533114003793560199962339633567346170195839912633715284896759610078633451684372448463054015936178508804330109735641053355261213964430011471882777089179685249321840715852433091857717527400063476910664394797948049239040412582892704582569357511483577769575345927103431551691740089546719633373571456110526196776192491931473284265830321085218202315332985982511302990981732931074076534014872995311353943170120125548328531170066384072478167340360072047354123238864704919114205845115845938303217363484005182548607101530150576643327153583376098523070154066380109952374332992170639681087111585702561982694942433779454373822519410640116208258708011809450306259230050086043890447161625243988780489474014658132435155740719039012601745550465409936381797920134800908624978434209370618186795436424843112659031097771816219747181092847189517147540772937854777934645763452598982286603102539819121395249919423405270752161410034802407903255108030970039276973885978727003088278554682423004637912879124412668894518658639289448098644459196609138787307846660959073693543934403912878055115158431368406916108171117915892577381868403242094459596675217162841318079067575784676289463521167998071966578964894886501497322415372990960303006107813806867505979046654368636577339153681659068335878216607309715203452803309161176698364783186157169545416694243285106015631121321423277567449431539816159462086622861251653534686857479673911607452583190447412434455978861870373883667560177412470104506083603038505005759160671361405821030769488256039241195224818255681570620126084921860567438203780765005871045782989304698412332136284054263671440771915000953959804818002911503649214640894970664406397645685176541016565024884945648635331164980292975548534120431866007522984609553409213286295904360250308185527502060013024094930041280377920947044367187646300112517953088242250330490373755756692919326918255723909747022355143260387505754301316618970688681442337338183880958499803377235103042572365920727345155004431471714680346347661442712713398565704576291042677884847853280728725370915829721687956057248514226331186235232428549648901844006305552361428132055162748437325554027217879250539834489510404060043906950425081044117375556342439538122656730324410228716924228389160884618861132326249137990298058419278253483892410273439589200443826201304501379903806598994638120837947013796096366213187273087879252130151202503948734735983923988362785845455049529278330506489465427185128125860002671367623043813175538675315488703878939019668486051632443074080727355875427029372845391789802212350131780087443348473616681368644130546340346652028755061386937364667288383751282198421319339192398577677745486821679338130437913779744802619746614133444444148586722135289895268800643724424049760773174658353077732848276680074310841304464070255281181158338201733912870741640761313121137297502001726507636654888601914232146741663673460621322248665374248089044460922974374608619487486520489561413133839268278598191122064820519210738056359109271247320834686594935243685429953924636885048300435351568247493899588518532301991202685655190473467042090235578981812815440000497537003867529051482547174141456869151244189076463361062642289903676650163167055556565639548879622141491674194010995764870782456015726896398297538247739922912284031919399543724975564839071735196350690810182159701638682333847747122923929194748742526935546073999142979831361995674614467862877341072675872506736199707013494542446313351149526649393355244105210132555545423165009489689927227827256761558802961630169641682296132323517608988964487243148755232877114399604546322400442409523603351662457409423909799556728362380352203743663508577491657964213573948850818325770993280379215958626855172373038434942175627872288366478258462086876710458917102482001362022990113064502878140191585921025562090990905593331001919927020685491052076409386128058275828756275239463406188097158996003769878619682568230166641123563230765149230691799189231310668873482919168692580751954718233909036293489878351885353243608554461493103645309502120162518773533189429741203583364614769339898663444286823160586327761119073764685132016771639463696807365777132637537486204827186144176780781928393757923720803360422153768285550812747786423604556323995858638532050991829469691537460696976138861553016289815461552097934860976698009940058754158400798652732695891408021503829874212444367037845566843264102920680230040304110397135464384887645945595592622527468111507346146487003193588595342612977753148455919608377099457067069399547585815833382041690196276345074888404246887121576362034692902427886181124246868248132413326324121950833398274373681506442805692228607407959818209897070468382563572799476255566100418719467864160063367099242082298038115366405263826710850023066492376987813473043722952830675409285606602973969580575217992825495609377124857754355055274425369967772294020198832725740639422436227597093809676149624502559603909882430340680524489498086497933291949844599446587057673455510686636493513219870584826206037923977969541310369592662954325232581474623014525931892021431896823821465748262474050605409118518528756779606620098025757043201178358388835538378487062322741850603554329366805604026858436552724497302143796654028186289052164400448478646751427879978041427875897187016650250441043914317376205310398302488202696767042101104679158398080615064275519863318709703842170013175192954924630046046520850609360788709166443519773416219078777483337825190700219771757340734119557095154366999058943803922892163584164266207047347042758241072259765207222967663075175743347422180536074810350337862668100384185120315703079922441007475261254071419835506851846215497253530154141363282647317631744017261086261334877246012740542236268162980077706386699591831911357563539521152971459760877834566235249368000089685545827087289700954400429467547864484761078961849466801820017077504814505907891787950577935698374810874509072623204560317654918113803327753551932734840302782323356240070264908933538086879284719652914867410332284558767984126962314552377508568802394670404235083219182682342992036468164737120496279485773265330739089836557213391235241720822518662454882229141456372860987684818124922137816155590092427393311378268840002556689365026555381375555349660936480709117805104928551783540627263379921103992192413946406736762977095702797395951018237088838147523525315987012251998850285708591680656634336244415566858496257377993502534163415644066999577557247669252588161842155639017167644974435981317526594839523107429714543737088819125223721877003486028166759557121795371108115496621501710465444433022238586459548199018500427201292715488306557093699472137442712195935551973511106805274305441306531010893677334770788783458893476845204550936328898721878097801448534929048106369557826791025301990769099479356693563209501247510569065459467541486223372891041442758287885644585389132812535059883128696126912384532647831789250347148431981913273018631253678831313269015224201612581541056733912382942531771702085867185255952411478100346415688913362406282958369463250495971556547838970731608345869731206036637970771495655320314151698034170090839615542876160432981281997032538121742430697520718584588359616196688610445204303256071989444161142665139532759960621894819317978710475126901572362477295415031621315199647749757809265755199144017044044618805258366906123597866952514050336903369824865247559563259974978583557851310079711625734276482630765871950518941371906489777104459368598939109825350626680156978173123262544011551061796783972125470268576896581852311403699551013531863263362955945455154918529455862948451416984242697622700198457215326835674305549167868433003390749434568299171529196346585172855163108111796726967446582018081546424395333482190136516433263616838049651602504993647529631369841569077630646176821899191235035017443262978641319899988328064753621546496755379722184338260749345432593397477593299606551103069619756872197889130073882764444370936787441990396151890326400144999722639203384099610889349936119721061096985718465904963857788627168328214998380478407011026314062828285616875312008253529031006802334420941154945299346625257214826950012154062595668507105162386824696152898267313319102439446435840867728566756429700955386508713807641774025542203218051289280847465103900566784419548838892809197240627504811522283935869707163498524014335156545168371128428828592592055338359635200430882384555379429983622845613611282409404587877145775813428758879993676878798290132401615494858183083102740254514680682349271449126358163046188157975970387626095262354563027967464893280008629993947019065278286205209414662085564969279474717782232939754111793568325779161510000766842480817033629791008476153157599235344281016732279624139722036995843363633086155625070726381927733533593911432370749676625126559574252388927649215378376364342505804914089020124138921347098498712905567998238330949150228696434136470430676081810909137238499724219124139892758273288290231351329503628054115311118836948734634093004775024169248538452193808728796993635488276007691729258858199908314540532609849041621518919860133001169245654756475979535699571624971301501665616439727060015443456728559462444815516852419344095722355883888355157906739748298407379180688614421081175977273268391012990731153640082284466535110823775491507149297734671135542270413676183728309696374746417938306557130132222321573437386150891100651685396237245557404203484054352282855093976084203957709255826765974052247157632577296696761736213147831101833876798502318870422455075235919979126604100865701025968035416397245188719699428480807908173147225134280796004136837847587830497096235942828168548585717198662851479946178298726814621376547804249207439339015832208737145545895200272534562451345565580118921598495334843971603497942012844793980516987027966297954431727955267724037888109878535027690593433895360662244097125315453317246597486105873176375319989735007159645812870645728344045747191648738591382632129242876357247156509045944443019824792162800594836557846375288084400890538612863866700844311205064237044190311856834965995358041146315252636626523016605303108382658857564026202566675634070032550395211415549367040725800712084025590302540785533273975391301927869883352919656564451755234126674258297656328436397242490496741942019439008630870772281447479238653382180457824043498854261829642098013917168468989709693446304973458765102112248735188931446934289535137891725807604426594123264848603914777094989598177815000437715372004866256266568667512619597439884011353263036110276636954486420579262926586474024732516350744170715230718015831940263168493468202886888783666194125835325352311157732782573447421356766353460247858317944873924595216945578145100478451018596582513600829240092207467198988579209769687463256153345910575307688836288160046427210815125602169335111330807101333550842575640970272470674491956302320301168111811008250920771306122141001942080806936922865399157996849101284583001823647797386591618686500882686369814756406363974443461434586451717684614895514336618214504981418685228874529283665077953810137661560083586250519130894782438569246300504256383914248390913563232261472432849558054453225689060832200515808962585853353497329271044985751810707431046152648956298310339018081977057747587307027301241499348830580939685683070117100453137829266165629547295131615593604653745243726047653484592897147384699108366652227956472655225238222916271764202075715617101734403743694340514929995907962679578239605417603791616360511543978001735028258126300372714581327611460133708256243023419040697061753878047640541717342812911061857784329109691833434012753388607670836392940912365240095618780667409836058837591368555086654003230783981047261190985654525622762801501479959852183720431234334812039350232883163826160093600217155640814070560402483932544262392204929976320961883279933983361990034576765742306387704375278439494500971593546043633150028929759184369965189838488985781521190570606613019717713171054399513174646645247079314584242100933879076600389361816463886079619759799308456355333331267544619444566619046020413617897635361641962016179232200580874168953681567333749381832682050490096339518223019389212533049279116674730970135891415992380654545675561463277145393946692320153157634179452121852663668325329474357727536172624887235158651999520592564406264434465940652576971957578847944035993583606036952884249384905415183160214838460197936964443546763275171332815188227044631962478585862819285521986219893808353466321091085614961094769954442204135578230670125415586377105869471019610629993781442118579732191041510947707626051595933427033748800282295284733606136653522609139664888120828032603768489544912994385063026769020447302000659511065275672027410737513745726573721183829339500652873248302206636974367390853161189406343714301247465953654433899090023677589332632030169875083702909702156568652239037382562821919594247163345696743086507232954611965404340595142296056762005150237508470636036134133527414522496911940173701807666531637354406415531026383921492519694651553300568525536817894659751972146838979004976757303782366517119305247198872081156320989271852486783108574792126047552455649007576420664975767631536486908936898887848334884831672770873009183349081252152264864388380569593065841097900985120235670668530104036854276200438572313656319739715819440217619088699300746876343886128725907116383555963907669499116704420196511638638409521618573053424543673060154686093415817629129277226063575624295063116535283849324699799396693165917688703695783884606502406792266412351477821132980940084539231927684739838838963429543152215710987804792320939626935140392744386037414640798822642001645068882579918008951905629304974568069312209241980788406625349275946683226812095978859167544052201085755681236128701475129895624706239186172084750475836308800179963587560956906515309734664048273297034741799443221529855104200961485925960662457857665389707891804587794763108382708487235414541608455203006613853927393464987312892830417506995211058098007234852639495561797925036845390563023843817397647617145166807917378418249590420061036927215935207477316801075179806371079235076264421695167437039766367675255327005612940090977739777798757992183333984078943188039049250525701878867971014397733294329779060365483135957731631064339108002322622571143258066098269936587587497660054878257159584375905516511542799759916940325367853774294429242124923261000639104148199953734289147783465901473153314135293569796037496412626805149945817086464584590671688917682312447006054958635024098917435842090955283899441684125704749159957790067998637922844541127868715188571073628451479480290731884013048710991901326390606133616891866949771876758617432818267379035839297163492793232563935695173391835602160036780732776834481741526214410751775026705452223587657484878159864443006153347540966044273543920170715058235716574316687969698053119203961420434946862965616182781299239526863846070443489898939693144016444241039826423569876126026875958832377891812409930617492437973092711993897263385464266804845904529219590634316039860245251283994204043202456117761059224076944223661993694880623080760099075654726015570335742635893476187672502165885861347721957388309561567424147202679417001296106310623683211309088504267820751621360602953754066440825640052077417676452579480438582349335874243926652737327827049786700379610463691037635166616694853830562084850953601441444552416135613809377951074392972075015290866177689129477970111593271483839857097370324291524658108279884770583625832653900368061706281099025486320334820816766871636904872001595179578303409776773581895968332348545029116790427697755739582560279410777536407303332260415656886720374262641732649122310677787740928505348083256291068040843725828989236711541136329067404450939854169623170566167765174846890229657909419235566058513959110380189864729633556437524213195525192998599150456568619571831824749100060939840579107297438432753603747708011279908291371628295712995904602818762738608842101564009925176625366423833110870879349268647652540267344912939458509623424253869525025912166007073512468851041294827746627915849129871283402824465697775348688457202802487382629780260062449418522445469386297550695556986110079787251183646607367613727852795373819392686758998402507959420718932081951164138599614049789621170854617507206329781993197190610680699012741922706325040920390221082395741970731490373492444445197244964854377795251412357563165789200713178767090008686659603573511235012964183324258445697494175721535746959594573123687217773175537540235720327619821355033319768575987179806293175006478984910768302843398896420596339867128347630084936171589438986361372362119811503231746567013155323478787695387739305601803659620793093746193323011877664243635815141156799277515423932690827964253007741869548810302306386256644414306323573970217081494905352385443858719358001965761159398345467743255819235410580104578572134348530713575799265732461328605371936818568104980465176019701699855341819227008129104129742838202823656370534113119936418413365180771242370677602761315660935627395287872083758272131754837665732287935909703442912496326230465954312252607404135735736456945987545713062891457013183669907385714789887050805599118254678641044898980870485620555177887208866839998933666558197702865756332055068920772320963423037703989377530158586372838815077381064097292437258295157381054832137160908262328549930217869455320154191430596405982269063077805858830804256816414219477041569111072453240560145952279845828016413391326573875995742075155590449558258269652340416978514713516455375898195058498645439531330817220696452348640266111397904640293018690563368831375380246864082646092100626416528449010422541056657391782374293577349200744884192403893715292394070103793588600713046439634271583054856550372680744453180082095613321748465302533630413616516186657595710541589641336507567931810395966408063877029747881774142686487103228433962704300397670578058271983570136992377643718530672297822702537686895777722910850481629378767421463788297674004512998168997196021608396839714457767704600936982926496661374514739835439759697880033107562645331659549693987296998807807103724402949662088994656197263928535906277528231533354185290587943803017548938960406919595772385004671161664117560293602272583472574208261726971637726665591489526822060266350916244250305753820608232213711164004583526702663859361459588343283741953997922774295933705675068241951498823434849214617141759008848604780830675373184616819691755436759641417780504459177933819764105967288095782515864274089466927807884939736012142575675588852152912855466863333155389075220713808710500272079897975225278075060520396154735722482226965042509245001447012069588702084324343131008168666490398472942063644046106476334692622028989690642793427166844415990270864981006743234035980092541333796415551680126737302809043884729807752233815388847082515890541874948733443294877962520451706008399318410294199067438149756112902706295335480507382543864883471814082944517269038714453535264089657645615044193061187734317397445988787146749976332491731716762436664947870166678812466694106761528708493634660446797583004602743282456872184850926440819091999707713073222030055449541920519489377521621895856162286874650265732417205745048779620261237595856210090201490890350062995639625771524845696166774280272351742952507603214582077243583444301653797101985584518206342696673715749001809926345843628569697670180768303897196810126244897352935569256599946973504603072142226592288717234202435243482136114981762072613247615449579201342888842136058957079844732772827679715808756816544993600924238241721112420248453418600559865414884778738599781040143179509897287299001980305288342072186599828014276675042504336703020918939557894458823756261408025266477964743090830078537707763584884973314861173036157126696037929327701796717726999370652289182738531875676795133198695460529599868061715762685305383911689998348131232198585228010726381061072574610667959718746365086376252598783351857730770635699009659878409301900103123416827919902523329102341680446760054684978987955052404271906418238431723674592573174717898289956293759468420660125490273457346597241098576823111833511670593175402528742001923555256217879485689763253186819920106888378576860791604379906159857191418232056281678903305829234066792644434090846253311733480966441233028292624734508938214254075663722499449210689921429535580614384164155585228170867752671583184620413691138175866192695668401952870524728659027866514967118634397222670587731721170777312058271316066926803975414710334196851920123007851245877944705124865891706831695220329797914745886876847608692196599222235219704882334308711152304445070564822196315775569184387896582017850390343810856884841649008298930591038141787163640159995335846666019382907421311446594220849437549909987456784604100899527437880516789224658436460094564245400925340522174050531610348367744135408707970482131496266075444216687154929926183057193485372136457310115799347896750006350356426886399639975077794948050715163115905113765178756662790255171347350300826617688419857553174092529805273151193268704031609894367446606473128971793008746389382621542839366362660599545951040636347332615608140619016737151213354929461289010488338802443816215594623800272863367001324166560298187708137577566026994675110675163769001144659109395092648981669209528917347509030549414526060519820358498644185745435208863301413491463990321136455932044445615845355246337321708090387012168443132769815104719378653957238236517526986207461893451166194725575473761085869704620828179633339391171872986347315508356574238235508631858946912323443058377113018458308165184645282381191133875493174105119083844831395072699587122067777428375024040086326396886427478656847727382113040251250768390920442745018442520773773254715881309722489390847075824042129358781113607137443002960549694613606988198453148656382475231858588624452090909008602891571180918682729390233799664205725861686506237603070075891885132517088206075636158049335679918973163836180377279470492147227889433895205191084824171654808411719120473684888414344504153313835132038651250821172171111381272258652473830188694374110793242243108145864810371879242867578778065896298921339205149993718224011151209999380671054899243583464927205093886201857404552662694766940544754523744337701066570704328679969514619609346008222920846191193862268226128550630145597410500023857319458486283748445304518745597929770757818682429048106946213348148489601928212088252218923253658759148709244573410662252006284354014127549479908916666122239987937866729556439288000108886259259332860488541206931703505171105989157693327635536800272175231488327486356531225023505884763334881737803135529282931996715350907027281102454349258565083802170841039430196441394005613463539085018900938467693902278420037834223388266114291621570639909971991508261439231348397404265707782607342360576572087412327103160176321088181565328527324019395590468097635222659997954081853677843365690078123083638265666571777191241893603072327122555878065877308230670835929161773354923463791623993962550997623143758481018465884541754310960258310804778745042000542527714780808241204320117296637932638329810382840603369729699957954225700883114771024614906490596656287494220989642384656113772221519058179787080178830785103800627010017140546282660873968018959143110454740621654663831164754755124568112653730149462151606752181464746001562559299914454178219481497147368216433473609611817526546031211733339634697547029489287408655413448835799069475181335507047561084676373558040595164597810711242178991791053351411218276152916177714169594459592014280849540748869590964603482835523305041604053742312819057798739203607098559545669008672306390178420562376985654848678790293861916606908816178807200461865536496686813239690224234375093900218570914134134262515682640626323946784118742793834983796448961649215765546652747403905807187557881036584116392211413282054469086793043414527777977192707703293929805780410995205414063488510135942700169592732770882378017931310890947930272419461505450837436642590852815063673059368221938945399928321791185634393699581096710200358636759814199083300605376502058508865434412830040599382259360955258549838178080729456100916072405276077647736750750799427829741625970106114070228560563844703945823105258491768938438768369824257398706512600501215710308088567147982900972935694911824550747018644554642762811824066427194837642669312056560752916904481685376845481377619463322618276488378371043608229637796122283726179619380983019707829999429235117340271420360864469419131677637647989150110085638027713971438372170381940447450629553588416409385097096904330008564953051138032611079923146981625630589954970184252725920287908070469911602307586178552737354644374598379812668723321984469764622280313205879126776067721815352087437140548216142747296042758702058224047758108856510625796341591790306975040682230404912130433947165784329408298254668485354334881708958930197080974460912097310703128968672130709927957707145888278431212769466891304217220354808897054159854095573932610719837677699420838571231636391603547643088227299346255547258401572773109130059005812979243203336746335479983850384457932380176001096300393512396601816282674225860555249420153031947145701298340733930456513691556352212378191342079398455926942269451618000591505575786952921793653444723783669809583738880779199970474782389437671456503661449884715878617799343988752310721588211780989279776821500645426191444106675170857359876957284941858413477264358464486203847840143114647186160997806725677055930862796833343417307076895237864759418188988750143625079426705793485055682050772140450962138362498079388189160970724468656026761146491787219663401002429525141959191572761814728736902871779735184342338473639871112068639736142187864008307669893535463213855901962728497848782232177763207400870500948003182062156812548639393678403486669751862186231071531615285389996290219012504706251925783751381728286230375258148469638692273927475107578571392920328659091125776419499529659171389407986078204537742535252559173399395301750581975195063988759551394907661592725132708569144784123235499175891133169302868503902532312757903956015733154195850764345450398047146810596698747401655962736270432297843541815294452026227820273066432421239329895124433734668236988470496173941457061374332119931561021459597484682427210360349523640400646144587154444427337167774918176572532028819961761069203857488036372146335691973479404679897730010426014708248815861309207878443893860991151751577383823801156241591163596029590215007572613473080688333965726624796215638796552158251972380546232006136111112551753791979218517570055043572273579911099175763289414940147787001079136048709422411812347404960020906884332929183546471618476736348966385947352229872225062327525501626536603270454878951601692176075546410485672935069053577241607637775664482904967557777208280700083423662570408360814737361989444818338175815101619506627872196145538475282681469161025354447736897709487846590487934840959886966104882164516464544583684991716316511515031318088748983451594025991682904462094858422523860145824660630324342146966568697505355312508760647790085071223488338160707447557905693680547609128077545103924676986637076191995385289759011147173782065293754964885144102154408870448749687827300108629149046789714440038014439118142012118509012091172483547464459491181872282034501645022681711157280257374190152656322820152236934292138246196391893054973013494841996312929834973346322712546927858055903653067763360487193312842928714781958764129121623297064327594849515722543373151986244313161505759774297152264277144595939521431921911396680760506664586482923189241802557096921885106570597238935525184285165704018329748773630914840692180726890041219231811849764823877059959097433152680285437172905149437970576036299560611747224109282157698765136307599190151156535642330068373060040620591533163947554248632103316326567179438748642190553680435350991333588573476458223778657625306057611379408298383690955678129666651752303369716539214924288963541403074463772298865539559896722939823568780415174733156057201388319490325671262292415957293100044455465408808968985094404033976662553399430142251870275787938919485588515746321816179366955374936817312589256072394265202549170096007546061926958124545605127779222561684436267748426191537285793505991195958438726334747910817038685257842539378190380309665520783074844157796169298736250196264083750696370566079842743971277418902144674472110977967648609356371767784214701168648401414071166324164531887638478636857841716055330476994866206376766850278380113239444678224883265940748665627548724435713939358252835741144003847910888570628492596816230045452385926262358758562146629309525604956421449443703015398921851029936154364108910597684173119342781073806292358881229904101893171509661103952847065821403158362793181653362882650281034969554372386397212988781191794274944451839840786192404720009896802389255402251385492427867171456236242666662480712669905565034024605060215207829445021529197154093179406703851524654422779209724373912644899590161542039522822381083188660769033365260653384509292776902737078502991992809418874971143074111111749717172037563527503079988846287098115783117361090704785128768441008825328811308358608135173396477117119748186702135411313448704000908515523921734889345595049397401651952808825300789811532518231132202280359443739474449282273786914289222729148173953677059425264170080829324500243903526773399916014457365043191832784890489511520246536700029337132428192371292986084743728650106015230013479407133808917144917216566080016061858897754538809514613824151478795623055681280423802446466468528899848403497232618161859778137919040309443192559364829464303761367851843217131810299407202636110857947073971484974458075990849742230475539093449051293241366903702851948164125815884070482778331163869194804670857052765048309822251456832210647075765003829138162041747577995785120714343077405944371412809064170459161477387818195934724335130707073390585750653096363405746199330911711368154581729158990563936640935215042124921706240820870810586732006294413738172602277261556919344788623873324949051217819103612276248547051088179899999766949737330933902487551824830627252908336411252457625679277350309500125212794256256672062258520912680741562014018378596615706048105020053856652481961651500760348902243484944974397054590470701407606998589853040644152079501718118027732192298192385020316774559752978121558276559670741244676660003384957307985420112250429558774952689358466155057863392972015544071732954555231279290537160584202555434195236597403394025661922200902554551169211332828754319697478748582009483714756305191593832154851343735773601998287978744437392545218907743467159886825957766386467277461090733395001147279544557946743773344693515716300700997274510874120407573491277269498722590167341240467469450417690679017017400155291172762981514077962461073038638171554986700809653766146483923248774969188553504695725431995687069897196172555703961378218022326690601355485016839407914809735436234208700315163875709525216959221682147566794484996143207613489262479346792294707517662920240077106030174567458850649541600176796294966261597350742958001189703523475962418355669820045066041702520641422521107512425970900488064972703037837022880546056654113989650815944006982579817542204209763273441342477511668225220668164674129529027556014851929998893455163939974755410315997027275717400335730528194601353061679292876043418010085785657216617343913791179425674452486731172685761814765310232883262297211856938354221915117668369062126979123158145594884986766702276366422705132668856558406717517924795880457647987198721914170997258936453688247159052099884559030142119174697446103572136157730910476083301661034130161873381496188068575680560637907546765591335039439731493470809727198744410653727690362493623246768780729616897524594058400000586711529250297136026163399244277276529109442830523238610363665817214228310784216855943330462356231721946570526529388101665780261443622210702293386396159965990037622263080234468500253472696947989675487869016634104513845220237356389647442118299456622487904538032260683423806193400587623651149417177170294741464223939195878883853276654852188416905598903500291549458880081097320509281861427937542333939900257479701455122423384035110572986292494935363415367573604145454373508981947981949086586216526629998239962514173270963831044075167784282466201889559185432412091762974008888649141765101320577928553379321846084603851293078149805499005334778341856723003265510791057575625395140399617694260356974763950509243392289848945002991021853365022365719971134196938553406869189696098285372037412132507032956188767405470781723202252500289204497030037124247070205660424759933001545333776271461787486655847661335446952825149752990674701593032956480401263020880460591168677901112720203638008539576244108592107866839775907048306522353646892868318734117577518742493599764760517729327748807485561923648648011025849672619194338800006057274117909527152962156567130055082874136387877166169751119973079374826973740545169466697434179292348328534880861908056462689942922538253763818696260709623844283787150617362042724661962352965042212154630226599208494885776017305992275017353357368753676221689164754944843593117995410763926578315549937126448746865567957743234518902983683373368072419636828792250146968861313038192031424310490441972245991904490365389012473195867293697150041298896964326439037268724836166945157867392275094068488802226683959741586968075087088987090224057765157657018604342487864763277802169256312527123493104564906228338103122800831856653835806259755130686941046312983550852388125556442944651801721647759233290197703268899427618798977065488229569900471683751056661001807288804562405778043468298244768131179129359358111331023967143143123211385895506064956591870037637967386532411409998899853686256315902298992102928634296578542454353856501195411152600502525524708004702926713155287025333930941959289663781947418026350377977751861455179086767124310015795750815600489963719195611060817367924461783024547014838057443819458286894947596658079288299440229003252338829710882217003206110379689433673387512334218999571038339167016327624900758240172022166446699623747244787085571524063892646236573857573180000301621345310093907848226373915832719752074514503838079554172459367083030788432692648890832646459510990917160432505162764882729777920575000065859573539019719808279348865588378617893072331739433150154194266322593781038173161903974919622563701960870930376967081593819995007136896488013584092088389691793545648408937586569272711641525977242730533932971345457148325700162553570160088353612580751193331219584819336998747189123241899267933759131704678845226111643556067870183073245917897150437272233431227095937456468137391998837242598075472070447804106686991856031906706345840854411995465769140992836425784397178333713539655030250216226774457758985376956298588526055428524181315491571430650094344932168492040617791959551249613234916770447278461742744677126037508183679902553773331490695154904114895660726906258880037767893550969292829401556581998787688710818161073028468122548457390813951070469402739433216355496874608712621417637430190101369068711600231124416583371114333289058267271441095179287227117508690127765893303856683575485396902026422147783634017001901396765278441325445465700238739819928950700389187977982122789150743407774863483933274724414218017640813099008654603705767942355630879363294520590621634091506698675122679498297393863583273607286380970684388750915622108759130957628454267674680672296300908063876405891127585379345309425043237643451496690015382535783956961600134428613589430452021766156903330269919792785782660910665803264518197480428736555106177345363184780820958590826644546187370263324017792103464907971503681848643255414926200702737054628471004672004727192101520167495264876060896681070459264869713930869684016795480550798666475963753527332549008231704546230584085012182078588687910737946083948666125008069970691134083223473880287273406074538951117891293667164657942361811418733094766052122496787466568392444313572290256637596672760666183931478211396823551464061482282256816946673460458104072765736091750629746469590947719394328261776342863441330446243806197714981643495557367135779365350846914046713768144882147564976226327469968435588212421581410499021036070002362267507275497027619551366450052845131098823751284449702128126785099569761533335929951178960589757648464133462215756841662841944010659167945428040887863604935261158072143448120107042667567765494063918704741832603417862355507418788015945100212154269814546784221053138791607350600383623790331423968917849722585068751253920561381860778991892119927727697905290853650836884776357033930783966491554311017089239985711078114096710263989328588992084040994267624270168344888586006034536923422365566252411743859004470763659709427373851310190444152406116555461494963158782617671091411016990909218070329095351170945151273268741167743712683441918892097592877597462802303569673563615678163603003910395264354278326056353234516301909704804929994900492338758653519287789186821022673210533234608089247472691987723944893154818187398031151649617647037648963139083633884289729925115811291207852731664359955011189286473638477448188298862586101727340740705796118349195131229300766304952194965203220270496924578316764654595313575131143278261029133377122362535349926330564052250032801964233268447950934365362625566093317921477194944097786099007010130153813600901719647623636355214863413222870340656392952052581937055669271783799922234434044821693750330183650320102943462167413291321171673724559624124917954440532146278921119521345351525166323351280592174731681730141963905158693130291671787146369708780321484213979309877326444466834897818854538570298395092480838080987208281354296417460712221807997818780773446775867678942676421169439574164335880349465684964116732719431309921399972376781383836923872969911514530311257033206305924922901635141469261249382558159016414198192992910346370298727536502191189585632674462035834580903133580604546560698664248244121795572542354530913628221371729158428466992105460509846916707903399619900854306573101497821014469547926468443106769223782079169952263249431952459881752286392826141197561244915739229082767641851468458066800183388792796960007883733810897493833461336686078498964372125617120520395388712460477620899232479316969346374293612464839647989121421625674927722954230678173873058995513077385500813793351135324052412124768960296458380415666514371582554574559745623727376109213646793969034431282375973005656708308935270341750686683408843998680324208853862704825221250545035093333723312270509865124375382449524092862834324216162633869382502425648678895249469135874498494194139414379284274981105711274246195968880917302083805886375089764518592421824497292847931904257032277632979378986474552928883054204572877262282840518096969630146703851351621653551982213041186734035709250804211371528879396700409623972870562014031416861548521987656779909474177991430505576546226922992750636556074182283807048827859183033026767586194645614937512181886289535836935862640543383158790943655346385968693214373410760779199820296054179837492705508340096439236284142641907451229588533845604326214031724316515384017987282871611980989718254658365272949400674360879634502740385812386673133222157570466216207796176879181483609452536240215469521380413230037966548457980532850881924339677248494738847759818325298345626024780395824101654218508984479228427650064814065085222057160209189940808139708503969901489674581225168305101689853665057514495475462917947128428151041611424805115243592352811102333656091510696876170705356429331215679896428944741120557573626957021771000367508741652264183731182784827857611354936176998067074284130672740550766790348429565694896509670950877438703965358443420763871379444121511042117204213637477494709371237869487232248392771646500153111959701925386754983820482397660365365858997298245260848786153331374250585428175001911156214814235687508844038639433899682335166315474451409707379687880797940698617758982961888594010643950137585590316402248116507733058949643532306411888146108835212570063860911462025429770649586501366415958934434608554288182446077985534751997213824352532901065847220322720802777391345310418162004402106660950805368335872334539059376666719469201517917935712569072518611176516798266263644365930462607094879798146360686459352610040316591568778667082449418865001905235445122013531867890968879847110220376594876200815059273922999760577280554123976574894035572381938087581633965740916293077820450203722567806062694666523189211907512605130920958245418252901532628743242038048258565145280129004320206549954662239463095939689142182175326509635906448880425180364633849592708922313691299978649339522714424407242612478011765851212546517518994443233499342126127997050650184467291485786482625348420686046347218325391451044083603711277915507928924871073739988028038173018373513059935799237989793631723201174717289339518567393709183569112609367441532490808398324719498790791883289151679817011694082311567431862664266413934263005313965498300652895927738602858508607232632961896920751613395111401790716523801582934472057216032657283353158335818497254926277559388919888973247566937063899647513661665867369065722714758434124031266466727170536865019161020890481559825919685817165768050931272922506011600594988862874806262098612365511808729379574151817730845118255563892288238832986296850553028347187401686604827191596951315229657956270997575925813993616597397365013182610099775521688792559445271055282176865104259145693492757608246236202240363755385097595294689395657036476612757107097889236799258110682255126852728695053532413061534537540974408408804738226528463861248549458941715495398631648657130914262382943859713042186906565598138035799857880356460458171426033260651052799854384652233373006939330832473115820111788072946258247768092349564337821114279845943429932638422437636335640117919220737993241227934533814226565439927461476706151570879736210113167514396632701544083826396377043891595086040202786665782896067290539919361668032182983931531548114043926821148720221745799645961098782261169552954473352424367817746570138304610948357884600248550325378152116699160546139553378005773192601949259653584200833317818583834697363693000562495135352082642447852391312899499235840980796353109222884118158060227394537604995904180438979574841957071302077607740553365243669503697217646654664722506856962246233347162495496269659578027791518514669777040386129233134897229066140109041250837371324639038982337152168166426079180374662619558585646090338019315356800342910311366013715982574473428216042823896406767418411609226898881847891852814617850199183511800976230457853806650802957764248208571777899414369036293810696733048631798187486961079712139162665051537834592629151458254624148277895652359273328966868801880172713045581054336953705540195093621086475529584345864760142561639266544190865447699556116351299592466672298697428545349063444804021069998751406511664322770229432504009771112443844201321458296374087668705736227509161126077154047145234706677901848111539787281473710772087634714537356772876401317551409627377479604606513807146664574466916194945076067953964261274841264955246227171292603932413322048787530917373625689813479613133821862453459108257657475852170420846809950122274825582293704342427398434762155260951284877744456166930832312539113677534079354508660088932071016095744936241549083943721057074968371970877220091204686295969113079751973188070379584333436372842978357400563649137878157993776822541209829125711622162864222616761157954750949425519711883311166381786346494703445173732874113795635607997275516871639425003688765274438890552777856162959814931717271753929756321481331308049303371314825487506771887050756506367262923155583130130862123964787757010524423878702337874136282697785442511443043895053878101887116444671958163737049592175164598153073702093551062645277879103900328027846960677538360184861764086798699712355353883216856627492988546487791791415601505032853513802655610099313989152030691078317136666586125354826598248570646344288496441822611467123268474449343802133254048194227998642740241518984917110813019225670963733535315728258208676350222346326359225567695214993969764054434536837102595160545199667828428170156278603831768225200396848257256551478980993316545695860298380458538093372319592062260200588425129630311139504837945508583062793854957241279745477315897064690477107748266728939856605386701629388887331665520698543170314407712605777594895509660149779187199762227295895963023118845852754978301850851809338628951959420286251032225072422528315420287641220414052439760421035109063161986613964584850108192892448033437968968339044760040940072384105831566186340888947704788584121415732988023446798265237873063847448332724195726795029038845740078569923446567707449406198195930287187524351472582880768477587408283590082635077958031007098736109470784445684539143006574666510911298735996364729502461694284766426034925669581046813087185772043750065667243536836396983270966946311250391452634916755386037492918127892672358402451336585830621553961030270083252496694013787043534661960091326791491873600572569977569188042518804114922954468966950287467692881783538822757417715528155866844197681975794846739847778976642690382717163825522194766019525662449877974416304826389506769734475013978217424388398638783272351484734260669872006648965316211151462731407383251093083315764252228258555094224887062427667964567324303197466995169386564682345221056217268147507094543968111924725333571645177059608576162807935226617595090590461733675581764171274236627484714237477359213640824465478531037249472844078036950786433812749219401161018248969915874419858727173300051854236335585235418905959232677225507534992814147365299835752359584825816629443175828139832900285625361569178723628128262830308349977176044208025472325209675366938592200145753189219603325639816007978904887182146043985568069116860873875228690371271520235610880369871131301467360631672017114251037841094816401095451997849004947811994704977967886581431584797617138963131771909272279746073132692316134452122924110857054752741732109935364419537188320808195542642131118832271514043045764618918706506547768434395502570628655938591168402124781185065551593063813612731890274258120438067265318168248377195986230668959443866634815928607817511034008475391714537839676621647572917259544043446338753460771034448550734327726817807414581689873868744237215983222030090144292312012136501601433255867987323115746542171630823781041794927497666858355156483307282915518498265010348400221050100320642866151468794023106335298289326056639215266052494315531272051107802440588437458034465092011870204482724307811275345068210712996399754968894487944440483285185183041106647214961377397169705009918257483948513248730040374427325189630848845689121277664018005005958791320463418151745649289657334718471001683864710247722156325699647016621706994331635593364786656674155026049045772963269904296605343908828209341404615756458784185032207237641538809626802882246498738943371992679916061300526930253894813815997543849434437124806830100524403212554906793367528205095075759962324239274051155718631894090975846728381388469113984586973920297728444049444547531676979031004340887516687292777120244627843586659695902613818169113486092377944098522689409669701465378239040289776448155862141593937905349217710278911247613011496176133729128723377219970023649592149947771224407919113103954032901469935707394113003436177023871527709411912446587400352533248930929532900955793207588775637140397485754674736699876261659671604767323484921054301047514759847342795658466130728352877848710823406436588818718541730878525967789233974286840291938656448830093208298519399350941595463261849948189688443903771917556954135673110897831604357015260573741489854713444851367573299360041865462411993347025266260610491352856292794119409711534859301596817929712950780527576819071199465515870149510288564616786034497659029318773694001404843526325781641613411809854616291967346513792321501813239942915154593169761726722211733552516074674360705091840145014415694977579538838324062309448199914528428049279892652828163713498841219584127886278965908004667565642923446010861575769881891336804249583596105154752591036423512623241229453852504629322293224975179896037324191726019663174864687071179142423068932689015691809564213078255237591368205383176547153040127329401522665463773021500220110155591796599675426399799586702300123428929815619374530352974486168389310790739728478101992769497936695038108706955205896211950943412715019092476943774249152610829499351316379995766895171951540489221269714661445081243997445090977881350354263200137682611444739431539486489884297142925762456341786120232530697407688960959751057721207670717436721702776676271068252484476891167230117709151148248596617600603639426594297317694865609028906062678132783109063189600860177649440068011779039150773719219522049197389319675288223126451116638076852996162882764787892144298146136003462571862896826551434355740129243736611781716709761113784091823662938370374637223860717887192496572186345553417316922966890525819887781947631072187085676929193292490837316026578096656273218282572162056782110736441133078296749756915166046598612518919218989926758275903305940705273606296798988097868824644381584602264767626285005829849723430211558925643906620183679378711948504510132926845167858872929976526115579311252712148967968570437960145427448868263695701918991394072763694974707198441410583048525563631267783609917040270538478136543978401618968217321050353114035662475141878630179748109658433954457966061364143991598299168711909305643772825281278461341977659122519876667270997036760931658960977238710079948420503716313180070442180438018806772454588923699938275352648591264640919814421031723163428895812816860055548825370659778775959092295685658653771498981892006991841452958692722263260287151350116745145792831971866160690623270207467615373670324785253875574965998721124911070744956241301740590525030030720675839168615055071700558250213107295545372475654566522616306601103292221832908997156258107186619576766085642627012340667719483534328779934743909559738985500898208538962132886244278625148606826119338091123035551813016405714801424518303485330067846547701061167554647015047963973749100377560394091330118281037600333964252721857559294600550722871229637792983287952178583394947066904500530956079998143468691662426991261601219037799132369547497749153612850777360391513647218143877523658898244795482821316945012262821101376338162999840036373067779661416371862938983104819613002030559463114904360594317634468844953252557647781735295719771093621524615180463996801718592416862860265268268504037568583698569760867886962728514976913605970386047593767513068071111112315821319391630244329761667915480357754991765485504956437008576104119844613942532563469915230111367297747909507923914436637875238728581764326649554264654161699567944725890067391034092779066245791404744761689626687087705260684353980369353778738126167949513965989857990839150452118947949893299455182996696155398856077153713481904134370510637193402900443442667100719597089852313774585353471602192410033962609988803593069117969810557446465741769850344022863703133196772725808929437007966394761763206895407381192335004030086498031447084638633997119207851078709276765287154287835249096216983536400443894423010504977017122359307914506616389788583796059564961316805984806302746859648450153702084839750324914667795858977955386829109913059128168352753861668886636404079178098771250873500681814123951042328940025440381921368218641080448068594017045019728949136373647616375445885642687213395850277190541899352000837001190362441290866836048048065927524539240286100247734586553407618539820717300191400927789284439446570712465070547756079451581313052125626763734036938522128711198570650878815231732783444894170886267762893602109825908124795973721138245067636114624497530043421514488170078488613535757106209725748140233902303810527830367034154415329110846363145478451823082458161327677418383961517935261207179837528373609899782445716613705032134414961512929595367971924502223585505955594657045990804304505662131689188730517454959245981466372038231343877308937697626435774783916522924986547702462321116652807584366776436199875870395184094148580866421475765497663348232417727378330816615194520438858894242336014583234161942934292718122095818783397719411632644070642134078799411631622861017687714338329920665585781392120435189525258240589741876770894891338077383595895322931503742538895673505223825206707160007218226808184352082132605526965497740402165118678907774682072055223812764571901561813888077273317963201345681051675584629814926405043114470332104450965582919011927733882395581572917619778575644931738276455565143413799267410784834747126937651531107218000533797422121543572813323956311595974689771817054219941789174625935344197333922085353712486287805015061409272343050023710872873507186900070768322521218792403790274722850813472415119770771417020426087073556629588112733807753109385844838243614804687264508831661355145387703300036330621079250780649639615606809170183511661254225266019825256888548469148252077981107013479301271178434327317414169673238008408608286084685607052738504546656005938147136950683271864948858343528059916843449910546059251860732810989618663105896704661055896201517246752801205857615055630374221299095219749066654583578312879759221105025633780482059288311752998857711299565993350191585475560871266377578347919748429956465773216359485581886206233153615345091529162556854399524632871048755910432649441567633808348568232692242542875383463815778065300116532207679921287188591164644620364915411029299716155068674292223945319752758078582995301783985502574487556012212887693700459024211245712395969991155811505280019627869675534562849026115461635537561429134925338321547383891455404535261558639151571292127873651085696466256394966621570428375629324260193834129191525378228317945019150612336893538498048891883520670304641724940147301112178067611540546433067507635627728470867855884905770805992030742947005004153011484712772013677738218926089114052277126996470595352127891010745161451348348287434488156068278199972863646651046389052475360106858310894604431649352472199526933631604234105835935324268634914221129983972283551997121431294781305683519326539332527517482480145780855273853960475858981695773641616455825268533441452406736975178210130881094331517749117256106681599436719433854590498311085544912044636504854019681099670735822438235990297142493065000145013022655912149905976947906244693600657942843209147750499160960836181483183266446577936652352956527321396522035477627848464726940155965067355324616071037869636158771578512667905048019670450222436008497754277132756730245417352842160447708131947013671452042029611840744085300203101013738037815298878108530010282478242591996291892550342503608898920553373938407439339406520740586385715086449555070769452863666414566731077195895587801879306726396630035563771541499412736866810826674888786223965187635996018846479515918380464606283818730221134930312096569654052993312433695043858018678519041159606355271789865479088664767255789245632615964128379149352654367583152780432287871549936463472819398317960164560685183897371800658757744974434292196151691041039003769027254597416548930487276804163251425100856669775860961386533466286743729441526459552235625089400847989617397063664141956018657028629706697004530242482406001718258671337527992433111818756559385482815683814182017437139966243364233877671892187893322343121020124057457795043412034961559934737666378537681540188676298978654182289978260756038119144219736021953201880446063142514094239055964248658529867703951735420326168567724474913582390041664582761702990647697011430724891261740814163480629564881534556622728224278095994848981021402655849733306379819540676695710557478802644398501517698390601761667221574328657511627208173517660517989099755458201509420409541889576585995540067633431952530647354859916172855422019906490873375777704008518715895049408663994765373520596197526564566332739265790644904124816626697640438778541833049378164944306305075939066676658418761315381268194353970040498597075405534024125002347775136185155882906402043468368456926921280012286600680650204559758230864844680602461843247038716900676926972451472183203853606249035918804672260566327025134841988105608956874828510236529117902275333977926895364305958675876696390076286611256619297820440051801882748720993949940930674558066591705471589288075459172053021632233860524777110745590859228265627059256949096552182101380899241247815967619319308189552532524526458897768505581626952218778911048796953962043899526077101836937704536937167257543671668405005189402479973758865347080817785495509221182405073170371111770445166024528824628033560309431137216713831650023293470233762966584626065860993271928280024145411474530917749718969734854252132140885057141700250902782951312225366712133086344777450657550789804403105436931500497676118337067476455323885345044240827055015245711301324694165298645227669072232577901569315304016025102093203365161159266193170761401928678516860502502681229195614652196381424279294434744723748293019472653122090441102721159271559622716498201465823758476293209358327268299527017378710935806500920317846947960550673911151125965046393610685764360201191952753755671656640792424902243559550672437902535689449496729198764844647707691794262485074147596948473329097862678515991190039651772493093705939117961848146423678747982426257290848699244808623746800787785849714463192214761636582502518280502257182821777596858065057659320563243324373228979845080530792929015024592821597915764504603051961683616963837376613114774050295606816482208547084810453375740027210002594953859258708804842873016143462254137040932979760636209035971277228021925010073002528927821936521218881021536166912618174823204041905045839781512460195952465174723729078052841210982880974974404766717804742118770263457420415107318604303429208443844756525182868169946022742580289101829781988177113815002431549003974539626816028548836419529970849452507506763002758924588147398986168986213009385288037939728106069744465412968420390797848790684227790486279232842909925744421271275859386876089503808270861664483761633112733898830556766300647950006961187465686597693120238853064913759443716529509623106622155084445713175442516349575032407821129620161963246429187591247368583129235126962520492905226163752906033693713134862407951055518203560774548426585468599974412571279846000885349948453693289720541768134711636749283626806564006052292193746639976533764864076585934942083740108066870687910586417462680224912717329856027138272438208627464435487421963107437381236463148580050614477635651126089763781031578678543041510280964756114883186494179645274254485339861646664415783271180078306387809032683252666086399069902111107548521012436905768708460551170694526811590826455997598392914632999612836022998275965728130812798731517734288572833768579239274339106609109536757827944047290424391349791894901298318867897179799327245184691411043775252377122016265550942942461408725633194810065774722980942527527336026526651273107934866671863339279095116660958510671945089586955231778580625631056147688839106088252624093521911135545638570895731155384765165726487941108740589970763416201539679122615413087505956322979536477801415283457514584011318452084051402888669433469203721290380075478985283119754624014401261087267886558950974405834712020019214034397046270535767317917151029629320899496387486395889437808136723072330429465343059641345963750467846615316060899633366907376442683368767921330773538006898369545885005488729605351948065452814302649458435965622831429902259291588579591949473052505882314753455649839654075738005775622363744773009972748274201330346684395254129444650628806994776530079830648588119631705334961536474474022108956399214637858736640521930307088789461637088127669843153321630269116969925445443040915053132871974275271088247007121316914322829480109009464600496909309934367960354071364102779970367850972535029094440215064830175173565013122807300261113696619503759236288759364559944541598018167266908597887932416236666405937036300473385188864354477680525589509102733969160285881262411916777602403525366336783493835060043535763638162350258796265422936712138041571037645529803604606066028084886283887166106199292213821634361384978678453495262271743776657883363808734439121491397041820416075809883573198218579952300363848748057108973294930910737994748152165399102479519849506608678457956950850891395487270303697861167299008716627976864607213580142565897155009672520761719925006132742605308054297761419080924356380295505925956336045538661324110448474352685542544527359306961802343190400072586144594309811553419699613077980272053055931104504382045277675703373410133405915523834457566141022921593396189227679545622779835680800589879805449356789762711150635685948673881372435141721454664245016517724911838286337821379155001363881503052244257779979729533977821920416579377766902645771301479722808295943224024145513450671289372750587556998457651317113884025835627641267470532546078179161948210365164239091635882802682506727427523674950271309976703528495861979153496213773121124516055193982797209248528769140176482971861237694263127699144779025064991963516692448504849112281997071352027842542485163902679016215049573628337651647810555516820424545958892095592177179410472836073575316719259093259027652177368758531978255266599029233945627885248455796217767888512406435956293471942340811339175238186714292305224518149271189085659295634598149256546082810618621136725779543384987216914921808059374069849503913475853127568801253687182693012625965024635780601369512007726699194030468201424791057480498057766274574161440944272439142965337418306946782931371622674770409739646932218845863961643698709814525359444664622151969995591018143290838242455012458438268973761618812253272623126540072112913958642503751874011036240492766312864417707312376725114948717291462560162496745196359934398068493587268467466236389095819865410710110431840689268060318772908121965345353024791295351327677845396707369294081389594276608838495835105682287496053792953023150082665618254726413732187107170807074791152277693041079275160537429262728512391585400574505232702674726421914871994113095229727863343073941011739787245186766850795294921784638372120372874575891834046168712574810931297423351614194436574605531402602713396217155130048354747395740947326019545456327641465867931082243147000287714709814062271979313501827859198300522055992814802547447907758885155804709141919189226813388486772664935592615666108187026199161437987054671529051045187409499418443731183200070409205632542947796943254118261123852233829238403806254904803002397123450472678046928416329212258666731850095583814920982145187630083949384383376732920621614425739660948280518597562205066889973205160928036034909527497509163993269768173083117578360591076455743903786390757909160665823865710362916102801666107224831538361279455890005350719465555869392686363433198603372455988880093702054900976709463092222150940648406136520056951315699711228521154972802106009759224829969490960848280342716623270846472780922516907974429787820537392088798720614287652808898732315410105454228710788739786378210532578233337402579914562594500383987675127615685680315289496348596281697011829357751588914715756802818343660883543166258427298123494571711009281005469863010571793864266480219418726381947532799265117352923996925805957644078761080421635061232266655059077777182043369560536693685880476088111421615943221215066600121770787560528890162293811925431535256131931850598720834503124980797967909172901428185366537572420646423978644541091684173288791872198706012007386487444381295573779794151336819214861894861192080047772304846178411072783683400666580701441789979668705178177819666991025694096987069680746020851889529831342585765058692596373303588767024157309251144078951315086011107408322371832693649983596615441100643459779607360790810242656782294763772899596256821400273969915242217675117352129150450389471537124401989900999869946835708011628683972556300708802051012818911971535241867346436783054908306686825631311312441463725873800418629395568820445884774720810193296759722391287083661336457399613000823425621421958290616473390318576461703984904562886134904183211070840392938419358292092319230199508962165374107747286687429892432580840581458856786468128496829253351258839923205080606176941664747300048087598440857988417507140255884668562138416908633265636098911557141613793565911923047870868395261683259205960114974923301389093045376690014092285929537431695039353969459356537314143291324419777107713643819893472510702395060253173431195330738813211704355125070943786726155915198697284107317728768651751656501677441325025409437280024953711539183383365054594655564657697980431211993001877744787796527529664802199785962878240877675737519066397544858709000637174579285147063698445916256512345709434986102665640075223564939689231680914065134351326252885970756505331950785969400365892043130918858816662589772086163046983200199060436871285346153030329731153860434122888569482969315569411637532576996295652655021951646176741077942383426063215572722029959669558994063847725854771723277769805036079869429385860073180885479466714706027001349000327739085415138367484640376505638622979924708094285943817077173990843533057159157827010409215715130740468067310922765489804487728666146293615953273955747224036481979953430405765050816474268243852739124630328294539598987653630358620916670651515487902996382998747217146712840564763995806679651987633178284354478922250914808374969816157104683322948283873371184966728033466786002264967152349997553616354282863794720435227114215976754016033514062116360454348568902071729199727005832161423205529595373799316274646542797902014026027264488605824621958470650825697824725619440510753447013265276232028034777630443537776964232539161018154339782956783739105725729352282108823453143762929596744438137591809064316475491472330006350454557283163566059791350717865267443755327696046527402783326280329053717466423056769466799959791477466071354706795690794926049919462076729781683021201234331126663682529239759388647240169698960904146848842897901632480100641574740527052761575688280662595393797359168871761352310839324144176262518477708190733608948990381717779046361448752761002645877095592114448268853103192063806744514022511874799158851839509896753755699391100613719179792634292410422379849599617076712117494011413692708172442072805891660770332504258815146171091181309844489785460548056901218235831231178404000936915992178148992309368297472281028830754952146661271576765574608049565043230843512121584477875774957519150555243927507207383052473496461252559772107482112847563212768826260297330232662532384087540614148318541469017458057795321720503629801464698978556738536290576730044520097098631010853590199287260931135964673318968911211705693102319654824435166215393697402674264796705090464859354749058498745111760014057372703503160037941346629842620963120935191105777875077319850840545785492536694032431429421893328760726135159973276289222338221393442261238344260644726992603052401206982687186093981111856720650800285532798810531693107223459726842284337082091978854203205078779192592900089735838310497313568577013450841819972661606000099548393973464062267124522363372696670116995619898718836223679629470925801335164344067646640333555017676968424323406371654637859607407358666389206402545069219026482238759644355472410963847956190894820276669438900445650471489949793555800751421322371131762174919225079180737265969080165131642471211361395015092531489662560778469921836915920069928749848480546581997654847281305341700382164783959017994284654942757309119296282796137733324920604570685435639528880023943860562798449662642588547105873002829419629623044106861668949368095532213738488309522596239202266720956975223954034159491117745116112766563882875003642194509768735068592488183167706647464957571576454389925005032445714256995931083039493103342409653970115795720940943791945912652067628706444955692969389597286587536800004897010728707717484379887750686934950976379291177459290255212814191897965268004633574877752262092037412192120432364227807517971706711788811069541780241036019515912801085615284075370037575173494941080852764647634869240439563852909686215120080030331092160891728018568337211934245606990103259845673177757059377760647084390408133489713840658925637758433946750974775766164850934985090486594980542020545790664893205123441289713719559562607026517824914891011414261233273372766910943434860328160621006499390402193089863832910545511424475874581478086281437604237953189097676787212789515218567387372718604758513136160667268822677899780709580144644749990967780054423314895379815222619829984643479433673106591251244829940186990798234402092042506875268768855275967465116274435538390784554973090986293985172390790555075249699954757361125303660695485813272793428534795162673292383227463310153013869815842946303409518701108654852582917118600936309136650049464816753929618103615832782059485302381676360710155668755164431943171471639767862420992626983094556696657107173061754955603009052638495593784072706752180108973768929083805505235124607784418253694194805932268437383397452837680553783730851108473230984586270157589039620774350466820581292659244571436888032169688453301113623082911202135941777144306652816911220327774460942274938000593221794104134816317726490812841489526723511434267112464370908672550727038934923610014074241280062179727170790519409069235094156521093716532128684524428409085784897797848691449447717441347481538324554111667911452818457856849543727230860034116602920001156946217309906368578174667378891298986580263514688490653545834170076006901413845681513227732146969023196245241922313420752266996118080541722575485009750513900887875961099624714500974288080761794370812716278452265529698331060928845310322129209476246029435548365280533810982220200551731643174007456691896826928377002608470118990130004164480215345052778174926761509151732002688645478626168121128357765010725017808983926059962519759080924665705142093938100541320003133582484439003381905808160793709179629510368427123879431156088007861669093335694923609125607084942808737949066909235107229784627910388715041648042187381690802440698488831336562609842927476415385593789639232315943274356746842257111187903771777143462130750789560761709593143242478282733053910857911167650763170756088198266303857738503994688191757421923538564891392685096864912476628712772599820018955608006264246303264098255052941836801857470343091822711086750205310392849317651338629488288327032850833340764584088175846632137163641403486223383587656941967988304720150872478649167254317958223394854517670646071209318377738796358106973905284092957941503014677230645933870824713218065135004449483668476248395247079890981310829399416221931553970844853057556850147593345803403988272395835594372637753814765935175822982308054368719337058323726017557399279452053229303851188858788546644325350658408852533801841066849164479517463565478160415797045155681462534948870401419876300658806457117770838166832191655586006380996874397801848310906663258400086523485408542104565252653159248719443736657704347687697497027016716437986761745781290460478800838243377627762200387406084083778321880293841968035191061536853189807512837554103113762651387337161138859990461459133731034319463214630702786389002099529459415502241160375836597488260138252250322925364424859111318506709047005828121811813401753926651485270641393086778837947866096822756558083620227181097432260359160203127482875685954816845828269190134149302642373696543082931011936575414428299716561710519574875014832379569071751674644846041999992767541925609154273596509463126719710423910226600112309588233656780769929553669689344015742133275791026811807518504619930072408714345156644803155687716198725003198629836404926050979798691896688288291136323564558222671735286338300228475253121746772263421380742555790726292251525974229881465199736685541194048538976701868318700357155177883118494448853618799290260928694078408470033579396034299577651225983443709477851583194639102362382929004678258989650185485383402497267038274456272222621147914100095188405785371662987414482923323934860315703385229869103265349406786625219346659474098839374291015291957974775015772648688807451040912474905404111575240874951325724745374111837335455582948151907848643576073988723830644137230203688291470668460431483930699908614692960943010598803375326661974071376141555157365356840201598379231070871381010104262402997273285882829551467108928467767465392402439843110696787102461716606768113732855387264563874831246445464149122903123228634385228908019861662401384833642683179082625868584136190235749642633321912711654398851297753138688879383082831233589440494415083874804693616299643780615872206710420606575680949483932362612161243180517705421251029517801013763377780880532117827159197955619691730391671786042762527929328587864743479281535127943462805493521119383939529817786242517685090768752240950259695470506363409934369736475156844516524074721429711113498894220727174600157182496449690018697327643847702312198657574085314072814812555185752857236386840859218137822632383043204065299621291278783008401760827864869139265268846480651211589345524775463240606320136511870065574957274280159650746075782073988428062279571344955315948366757073848411194217466645449634131418294986892065783139411541348219631561495418619700451659703757327389402488899025340823213702774808915853196154127676724005741404721935923122458605126147400384313673041315347554990146155565944575205888263373695505488106271143025320087962310160687858303948724550277702005215976342595166298227004550477592618640607213700699316751540393264890407614813742111259148128178975772516209567906793921881946987693644097614459205073010521077836019613853075070938912862303181732294375278410482725601265718452104626601559737219101005383576932575709240390863170550683624543189825722923884417684340950598593426274187913220666255109502475836022947242503169413066577265376415714459945524863418135715778728511307259948851224579470715608649623841331907839958898427689487002412309034367368047690139672802574391822755326342635966325648454150702587144580916280282903043742540801145303914920685998689034183070771532006302282030353310782107152362309916372947184010282108629697264174692206759089051825386175593379880463835575372613355209281051364707310282315020695127531997610494552166302921704905044689258500481896461977795212023873676625601213745159794172795164276686810735579065862435804679427920519911740926529578923435499137078359791548556665477989709955879237031325430386826821865679936837540842597889154104360236507429082962355739395063712769893245066253782326032778625842455516545011286852340107871026473975385010355441432940822749647596042963844255006687332217282312210328527404222141675536816517458839386212889295917230500908252264834100818716942334586636883263837011354592904556887198157402461236742619030478856572928231349233609075629472754495731559133867583731984643483978289495838000693270526485226419719447078083491246341238523029889103535579527579812716353547403400752821148339510052852463531915546480917768771899229083282111597835553885158754030689680550706870380423861555373761918746136851412340079303185977730825826099070827831620265325215098239313843660493283148503990699639711646933634468302673284186828435312132122294858700501382289891498620608920380030372140386950963514966678518156906631739471519833523390555472341081332430474630861343056432016791530551927114576905216279716087181319340416837576644170450335784435105423103154546882927087747976963686059497701811795055032899791462414122179346889573946255627305862268945556916766790180493722628493684608556356453468334393742820283800722443783940753796277715184588535985587690822475631692085038431980634106124339902716442033048056048274565211284016696628073112000575394900042885377576738241702354370483577688214421713793235296105127361863344130824469862947019194226960967655482537918120946245034392493341398346462415343126598237795301973015082784097058452555443005898449723863918500390217768132718375608772669453601857458261537910841819095024714081602918746171970061735474887047855749414938775352854475598827408847573016550824089056199364853568432938151952710553054622656482621509256289415847075586279738656608551290035551065858775922390895276807587134920766693607986858546946881275967435435874604998058779314054779436717180367627310036630068620882580031933817620559316949588766692728890437450316284745101024681136868158932550362054190275433485113149443780456884931561605508774924785194788774260521959045665116648363981018818902329052544484191580367748542698986077793962045437591938879670186908213562827484829265704432109074094271290252146267294932436624392478779924463596488503143195892277320114940173776793368464603698067637634275183714474025039432242282823681660811480800825220918851874635441585241679849026146849099921936095663964566756978984724199004834165487258932465882842081417562776349721921732615463926965575315608323767336117639892985340845144433346880989286217367476687150194047627855239491525817208249240321501202203583144177351375640242952127549537972507286629177941244767378717797656177325058785416579344320554219221295774593548136709989792338280719992989656035986250505122792476446412824565365547638701315706684014365772989688094694310861609854895891679402888662200340788177716418044348174460209202447435808283268116860839004566193057799257453273723521929301256579127241425799626073772957042580644180594662413845192346471192084047460565638337974238035241027108387864696252171296047828998427910443444655860568395096247824682827325053508599707222038239061293478560545626968849570698751336028089011997985438744127446335231276946546738677092849526696256604297307745838009616048278211807935463030012394488965371186328522272035598826856822870565901159176457585058992892212874372385892249811044817062315086564277713587959965017497418087849682142303625852944946147899574285728087402243617293715801142350609044799265685307779345474416626749120998140859682446833804497624115666867037091441557160818310075036001594127397990042546408157452853125011828565247404053063421669310582515684194220986303408973367497255943588559944663126805225743056234707602511466656665394743309986455766976956799815934078969003936486865002403929671810908029967353046294155677761763557801613057696850721885822657304047425255707933888731997932313832986860901680354852773936838529959103700909936299786689757408511270450295866769401854305546210487039973620371629064460346851861621295411515160102456808248855328134881448305793310591471810684865802380171473836082441073418049804035088144654249489923579572023920647549762731637412281203549358449926489399018515847621211603879213422384050386574789859616337787465893263836835921567665174452519860464628295368998235001947281869038873020762978533687423241910009765742952243655341310871083922273521650837976516716907920696446124718103849576970844797353296589018438086882236656822511013145236491446690242607367017283197795201637054316828949378795660414413039955087851707194266563381887929923492776207792227811299097466213698245826846363079804114093060443636884024008772604005015623835678663351973502848849007272797555092607481850817481277365272118559933561794271695234402875338046277961202407108142506898963865859250036412008916537939118047202840685261765853965192501720726027685556566089154384014381573245502721185012733559622755512896459548748067154531947143715681534024095347668175412653747156501085161394772247216951968658725022098851558401626159377318980257344067966930103579337695115917985577023966108784548094361618483960436117064231890722623566512106442647415020945564601682296609116829952301641494172956820074218409842273521380888156766198918443114631415316832189103055086412920939130002839001089373472886939857497336306534830395132469289401080044234197415128629197486276112276407403061984031535834030635363688115454138165832797759025924283200771069426197521928359307500487430526822967331980706497629528155212899427482528488588081134039447524222674821094440975539607609217287641259625276872340655495938914292884291662862601434265445343184651918338024557982335993755523972263184805924011207056370317046396310839980441981357803184353691428372600978623677280801321009877912810816198956116914907060026885537407489891043088424265963824860530749615057020405389136207383829399496939255713716339294304241002748341643748709678156855191551906610498280356368648512030533694648646721799098792830375847556750339301530025604993355723382821664701399924342802657714870741630660936087427301585915687931487123593686788957728941314258722461098280129003641422164977415063167782682094984537664442563458512085204296711725658567773330739798257450862453103561961816708252337342999932582050236460859651440250486146811379847461815057053628723383365644833582176430911985869251839440550768634061876477522402780784437662437676646135269326561002629819466321489848335160546279061617480364596837884094113895433721389376950714493454038103793525596940912046655441551650443833631038821042089938086402504388801962432493373712982428037260517090372535424653485908526684156495298279622702290115990789229327034839671189570686560030068039922516599372978452006966604977897824511794506953096337944531578615514187023772089841061622103085296237883980092706447782673948914568759886008699434772363757569007600466233190688534533590939023052925260365336845883795236820123628819421694895819674815214844912638550127447695912096337419254956443756207486792476815804995726544171356285117853436707535957499254845330822789408757483933704124982725962280482420843880632784951176747723383857438488027074165095039306444735445309882310055465433108179982590542694735726325996913482330530870453353927580616860624634128097548375888509247051810924668571625437983640698076978694230042997452231874185275510474698709876606921018094863199887695489984212338310036419097615834063869898105650822137470886076046450430359291939809585621748131943196174639047882398020147747605814483112892495894200511327790147701132261130303345321376457686380988257486416180047199399420896447310940912670485715600950318184973940537134403855139879730640839145091724087970617170060498020369585659041404262305692076393274364760292747666040454654388088556049093976461628857953595618207897519589101122497012284149553014447363007196458383605236478331770482946191495736631880957319011957568130164861344623205467187517588657767946704271218759409493411978230039289793251933649530662397175176591071650305188761265587494230294170662327142112401762708792569665618988900749660189117681197943476802069652953592385444631199535522355128523322476742434708721549028756149970595366681411808424558745398667439693734706302941857820055206581475995240990478838926377949014044033740198731447777927015518312590300289995522720783844000241773206312742108628610770762410534032242062350108767113403513495932949418986914062593685390204939241228783681941484025121936847175500175314344087591300771690673203117589084993105697907796377826399339087244020619874904507233464505626993192238219122923280813531675721399967567026957884783113854024209263862049343361995101412184042191839138898077331711559104736308740810830589574611703764800167896469509163060836288290527882501407203583692381620219986698332062082300650897012995165987999757136691425389518372573796053160732370588781436049080991526726365572990877525838097929119002922481087685670150429607722070386888802273058761871735061527059364410197760811099463932840120882559303520553897562455259871963975240216672544866666949154967994264428322609220867196850333620537117751144967303799004378277754611119125864639236577720889053063252195499594342772241903766501951388648816374575633296109720633594542527317653515290149597693278608064952272588079949481207680750892731375716038982998446747872329801860072002599029314121669720805530036476771601829359529248631501697635574002927737852279567316069452452546072651145068294828498639146377817776397002598174711478111982448231230666619288578918406004500499220182272882429863329970918888971028446265990701384154764941017204659446715772864870227383096059561536560222169095456491835737520541004259100821719355881464264841837571012034455726711695324523705018063995663466090166553875298047390622689221184939144052892645802877999021924728512818433548543740689889612434416017774682227353501954109119277123923750600607669767534676918615063453949290752076937679187997974317418807618074289020232055766123013863594363533051514974953130822167273594516788455204798862753010671595564446828008928596940667699384384790715760068890530963054932457008650539092570322403698213413355417532063376545909968642308656448257646027107324023212779418361798733469915275438975004474347488933234803724367914604178277136491540954194305729294811463445592465557941285254292665729820035059723271099449303117305345471769329703645361406067623275196092174519358076090667964731575670025837148370839621721039289213660787188892033853310082580318492971238236348769400842915793018500624440263575903295345111804505562526162310631642393752559789885501604814137260148328045085357183595251928064188608050912460768782476372669235424187637254363442104077875148541460681383315973732189671893340171558024180345129434544958793416532791876840789971853412907222098718436239311668328160399211171212746406858482954504920238583145006015168389645362044153930752157058775086118276021533078038088705776560193743955664551934442163383146382026617052500265220607177560677273325103472976449521728882149306220172503504417613973938446204804646298579580194187774182061552614829463228233488694191001045507975130820696321805059014882417171080284629972543139222880266496154466392957126177555619857910916754812678891704864600235774012767237603856162323687933147907589042337787373898519097118282398511650891180585236910628705837084020231435437745271224947478713648794298596871433012393053811562898914334134007594543740428426541912642309315258246700574621605973183635869874161642724065249484013573183635581225591291487116049694531830741662384164513494903191182093855794496645548613773820221299111915330464696003497556081832938843144247736246300774388033042050955775382324846032955755390918586662020363077501493472356829911002433723633836948857363933077493123629835512153296604612539861778332725563836326398424774726078145700688140320821971272967124501100260109925049365421058382700955434749971336223962086979940194855805305739591315846054170538391919193326489625560176764435581221330131623920971680136290675662861721958127115369745642077676392020855034757696120842456475109148207987836343627713798308946090320376773240434481847507918107643340971828299123707098502222004826031805191069133528864659629996050823122084149672206103470780118700934292421492456274499605157267588102324618763083570815976804604717220180021542548787652868217711091096345806983596217431949082649263607870058356600275750000800466901494617639608902055796847207181702950337261151218923555594165672944145580433450415886494702878836446326000332181311491974100720186458292157959275345298874204954248148121159187100687405226740522493006181732159641675180851742287163397882898310280274103487526454319104083948731501795127719270153721475693956741709034589086971990628469064001099478030943186806070845797161612896600119599363876077826646477892858790637710661032278732144468747123945748757464277334395294575407042782933429693520059022190549620337536549049579688949376203781169586517709327336041167880617805962767722953030955799769093431981428435353932080852729061411485189615614652457094277715984350410354590256329195895819763863196578765876529607903412170928293725160994684469754789599682033686487684547571518423094938956539749351950316353535975925505332240459977681907037417405135587293874209082590942397426916042993833924815456238379702182657761656117448811547894841704673353023652860548624589304350137935418379649806248620875591737389678167262362685572667745518572051115835661166403485412267446340546012695239957489002583475565031988317674325532603038338667592332216362589865545596830363044812646774306450020842528219601178660437509871453872935892430352797019057018349171120034677566714418272165631622333560547023911081892530156219362040009308530628691146304259953899977457978397690782772533908410244757226063583439001680527329951313987059170087881872728915832618128370342714570744823223286622047064933979797577806147369875988629675207265263063075852002954606662556228192318639177697023878925569660367018740559201886200600136228275354158728195814163862101404477567642092929679161977270963325091345008024071738322385266113858475650723741847781834135622888895590180639099612347573620109029658347095350359627864217752793030630568775120735229855926000769048548827756740880888955733395753926966766925127202046887071997639415303715580670130274112977183606128780757658664074612295274283880787714648522906461287021150114477286226102089116641820741349825904306571480552576585182637204769885301997424517952257796178032832622197602761061069547331660886939148878747576330455135998192595463136849227417500195716724039757905190639115051273820968673901827321619469466437158769027903745713568148364768068957510582023885240263601680523154876171088143872015111006344574436880132378745073543478820846667526774741536350470091666125790830039461320872253283445485738862669199897851124489772158513467690400285923696765251968032161385493384279784828624517943923682584080858697575323986929631188584083666539411497019686117001340298748284309109533690649568115113362256481282973470079185672378054881910502313549016676203835847458907040471988926007512416914357534127044890695655253839848155152712733004949260889021884305020246905681227201351223889061166845803773140274741977342338277831214810982616817951579372921457921821194181373841040799632477978581730883882961274748737346739327252852812358110147408932317417728057746979339830833622358080457672697794991388577168264215302931399240585015553032674098808039343635454328918197885260948190224358540880002109705444704321727716506004735068822783086642788306680682212876511721909743470702858190537139210644093710128264199922882949404313369815222103732053220043862442160663296572189474376957091852051379045713063472692092721485017536438557780529556546422276506403567532626676738477024092201407072936910252204982251131063100852005184564171908046039905501415639766879747720932642854731574498190013145491378750754837928162948539619414794767277976372814989329408576719557189090336780348455835753985773735832894016045161154498520158491045072736288700937540355519207592956172095873622693461455449435747875189950674418843483293522467967294711567243657267773973384626041626154379763780435815515655673208525699267933638578526269465686494241773490918285864044812061970702073587313945775489709819424182345901629633185151998212395116801583815350051050025223930217832720864660082118449184396768039991361867796150458581917531090796622494049458123362033721122207953463777224930371782896786715480907987894940842557690173518011995028998365520152029933548653834996974507128064557284431730597869747138425127131070364249531401925035314333298795296479857461320969213097420140238239234229324755998632497850169675650414993960719418883280940802962887545686485508928452391064643778149480689506851034853651520720736537560098303176463084546374013543428464942053785511173437077345929399021619542200007310798393701168052169484381045870344733219377327651847367842200968317380401236143631440012500706047760480929290538034475592655994755386627219575030785342191418456762850098811957251222284608058123498425374368289262370560766790984158693988973113013652852129735178937679865586330391740328139001720095933271085871462197444397485532297199941123930261537409221270618706670596299969179218153349380065590759083566626340289685581515727457694005942663589190525698487923994430672500083748909100281267292221833161095264527053977186834473345764165718958198275771092913396016140633347577594210920065838639352649281664080186789680813217812187174972574790687735034944936974879312702815696563025663305958740103208962416302244946627924939791899329881886155440604575883892160593086995765187368839951656369695499004556682840503849254364909776366160985567654307582040465150314809842025321845136496363520685399919281167929362082417901670297252153081319104365990830933378565142226855196026710176453514563811100016160792578680071667266408104435799758656814697480667016359343835293794714528199892312533429568129836415604444701214347446340051970676659883074249352048480496072635602882447032514735867612696503156783862681060962150067815703106508576968098710658729490585683655133472425063424866564831356100808993981075723701263198110782818925017185053392605638214811211241503900689657943441409373877810108924347918557033838559007093849978441455051438191637293008085907588489682920393919126605652611111775436780876736273292630447961891790741741073297072681567167410176380224835966868325705252014299172529351788489892199192049011334766051892168127835000179140528722245996384027272750492386797133845793679424138084170338377392788083132984661770186857914139108450414285692279615827770650301760947040772123148640761245910680189759894874397144780007637781834463291302455891084576472441698964809340198058917414981987776388040701197582971583187874274952157707120339291988842963577760170132201847218209892339207933935905798093495804735798007783122804418033061509711466014122626227611764031617371367730641108031812907865485262002380563167662078800633092814622514639002036389695423284393385143314491588479985805661966236111001667495654138478872859207893635143068957765469864475665347782017928503330288867488988973044467259737394771047338220829728044309075114420030446114580593326962976062633409432617834389456611850308440442331957785007627553597108750322292322611964764713872086558372369374312358223469783335259971537732261351417105261487801795988430616645189443009674908538601623934653478312565818557599454135778784093162713236598465589746114372282853134659531499755480084267958505831273224277304366302837620609046216616267777385973207612870627901367950722627291340810592796095889324130614132760077360705363907223063810232749194618027019021229563783669740877605515786487835927883000864600716596291414081515319147876864910711472089663317557012209999530533748488862022577878446093986051720568612079870035997271200175445565048812542572469820088006781485823143584502086684877454857845493696356475328322076405059912035997155569106841202779163096151806637905162366681563145913886356400261089728876765810784882197218746348619922564572777600714968631595103760401458340777763787945682551640542305688257890590857556041502102200474878650890747688712690611762417441953791831982125100040567842115553759515410031947298746172458175187766351246315398573041296210521837494453705485914012477454222626946384811477150296738496737182115710973448881803158665853721917903921664934430493620486277348968971449652408567936107771587852615424718749651886774705780382163681118529470546143201963309588385816347171224997831997949393558690190614586621518692798255612677727873422215980403417856612615172394111188910077866921600438398783500563272826999037022703815720864574683464283156937040351442610039259449899024001910108082211680424283352191705942274949317306734498675577346026286209287350213210795879990782526741167266471096395357926032791974340648585331702158423998215056735025641694808315340715913933368940542975340242080691347127938165481124226916114579950936354443753133867547139947260849124494790990073218273279116572501557598890923095805724633797624530111030130053891737519549953356612852772910268229816042057835170233062427430278725402827951188216837935924644150325021948326725959836782726323196403114898529686864780234835186574162609144201302734603048202135788585844446022035740182255299308162319250302667944467322747745561679885617600391020395845324610412199087696719130901792123930286582378529591670008588645448548817008624784049518804216730349572419212027120527685490364003568465012192843648799361781163738178581575939255271960735619432521611383195914866386322289452891340503822858049143862877452913979788876843675750090049643658531635266364283385223584415247937480564869631129067592591442592161511798341964766270776749919136186448278926308099093626540691434853350400509320459739535440387586167587420229116070127436887095906482893401670891956051129906839236001123731687222103225764320873132482662783646828304398959897537295261712811839823736586753956126205805450865120616925056820422818165861225918199116489183674179140131738071428337667512188480338933159247624730293296781793979112125462168143784178767661495405225249847329142234847010926225134574943939364836281308953044593368171497039567768351901405957798184052096678743416540145480483896747762535357069467766479364299013505372374534914828258284552846189139953465129581594043893144908834822336665629971662851578664986756195535285203226867701641760615901962137645674890950198463398388466840912647802243243611393265809198396522579524864866353711837062418079713222385367918231474733938388058754006903942621679722885586721564176821835136729801075781424771364642074123408358116934937470966413218180374926615269791263393029123498506117639671803942733628467086187499973615463879971475855115576939290943795527979294907171510096038768654094116631031333894166695892428550516640502385525070728314285368083303073263179618044227433456400931267352804721628385463600402176433674169051784783898044235773024522473723759682979189322078003442680566086457326208876985507659203111212803981495433982653815899328169384019243780708001380145264823530324439991433010401966999681917131126042571054867408591666178888472526742825604756486101570504657027935651701100004072302302992576730524675158909297589424930821913106669446886663963677209824836743406329407974175089373269288492331551689993431016674544726770781167146537464637881054124083363836191757545009748245505856630658726668320518437728726552920371761046649797126581731232243077114701307420081616735575709650943393965826277753943645406008840919124397230211243858483109708455731310819288304837984344484874889319432979791274871549374575269835481948357030196944036960035345033572786601474667062131356209172486374719274995916047524423483814930425488612285019345242374094527555687714818747047140776957434339273572643079471642550299128189426952213242026730197888303307161314250644706242205145277221943895777792741306263952071174054405372535716292764505202176877703216390338654560273614968128407549294319896795595620932539453690445647565281335527893845174218843941418352331762619797100090659284996888423321935799598953561493455025720152638697350265589812233251267128822738893131685935229892140032496659881337332462861865525534322896165846229028483051349207743276141664942070020183859727221483530527780917098481637820576294986343150263537751348455772731975214821235226970939174429994186714051213472630141647988465818864807086313797791750977175305986385841981248056533937813766553919996531709826605432590297978837433037855832498435239190876129283750747693366570097144805419964078555928519146370832003228648871729787401042224899615488281750530286391067634694260296993472396588008674320157717539801614578215345541248569839820050233090017910324232060654583780792844797860778407422096581941085207322853101256575527473855388572528023447374226985407947399318729948545679305758838022536970813331148105371050014580782788025066693375842600744214891960832441458446635345081002303084692916373142680076422769938077853792997911780873622539718050555708128078609288906739009679075467607663389804155693913482889955006797021986066186248945145883150970215790704102943299861174772315427425042042094780951016661911358341893418179608290403875440230169984316382293628489083714102544746859862535578991439254443106812831765028052958048792330466620860200382663934600324423716688175191901466720000406080519121100572488978474427404875704995424935949990216158778074971365728985637438831217646661811860102774757969255235946012098130089533144174308020716067224980477907121850825549122666516713796268016319357124670174869715126773539520985874334999814060070399155361237718043705366403156986190272190001521000157658992809071445034113322260470543437429846731852054529444001434618456738068076547622063357383262398681244746622961799155213087494624317464893714797213700156447197768609895849054204563028911446705813031951731121514888288912420546509700263125489779861458429865841705636862164512345095098016474863952083432238485314736793150290776612901892553307682068006181315891447025194956273867955596905995577521298092328674049210825488872975510275652633919075463402845056917497085757945433090584267145872119237738327682809241666433730324971014776792391278901005594868656257289436170752712380586016567152562614086421553662469089338743332471270890887456679826994963455503615916393742132521639933937929478542444177335509125168835504758391023793623355622581439221749081263228552730282137112750405994875372286440396649951776135443824448303472880396798195874540205461743667317158721138018279194149225253970199081224867628190893041483628673407587291649596779265118857302667946332299002977845061096558710615335710498860031485761688483990474809527570210150352782210271805794991779622207758413948735022073454246234879009085629807683223844094576599592471745070106542452636917969084899194875324892175407707367219209286830469997843048306357344067369217221972105800607144388681874990279811179108702780447244708480398374461918291511906734713024923641923815531663821931083533985668138021818475592475179444522901398046464457179506549419516092316721830854558073409388295254856117427670552068491781913751344636051295931844900805739378558813381708961285883544254887219709423131878677140081479692926930687450669835237270782628382076122374903992980366361722564272494347738859304337182825309461005575748107239518224913050101142713380282991460046225251007457367694836986911719153905539241861477116967557563931245424589133290239948463897267736805373812609125779422757408915673598591733542726628435091079608094849638740083283677948768340717041440342832247438046673171204487907116470322783805969960615099266637234461099976626039406010222967547585230534460455841973862244176224195795688549928632166277303765213965271937089728292649662628759304535959726745654967177761914657856812516302103438786146862853135822335822465417927728369298225012759004265952595543978458708963895817003516751821016567603562758456538977411051957296898136316920090383643152732946673291398624199006824791680213249385797381835067362358845835170494593409972279683836116847443896876928985873188109104332724398087127551920903795075751470851347526164460027970453849228165674220239773020913730560418783145397311791573150258309373323351502607830989358315540185707560389512009575761273627558555297696493497455111745749934546292327884592938773596686346718149771900378046828860887921087582608860368844043381737509244523148839975521294635157763603161669491222105576474092860235286318381397400347180808529795883486579264887692181120563490175649291531928967198514371756752127978551719213118348651573248696800597636070514714787119096833487109829973848554794517295929947309205594714052837920936358116213552578332710541923259164093474559281682807674994235287447041950990128972889204442629184724121138779240162516675569139990771869173161636115746042489180782054314025735845904970110473756131904120021281856862618267648256492271329056221374131937029227271090811885133881870581120780411877384392077091249002632839547292228102455206647333079828430673375770472891944913994377114544511615668230551221190307232874888334379449842340857578913410568099251757232431699130017259097391741535001517427259006629263864860924462683404764149848266468339207977421537921726725327758922998183298318065299556817141047116462016003165852972366107490498765284508471384284207347745667605454802739932870898515455944964205290225102903151719760493930034540028275643208022529865813235663095137107876965761483536233407877353243906245452764053330184823717604907516852404644259377381755677320750768428057177978388027490266338075592109860113377966696365557810212099913718866724480807124941286060434809016556492012965778653506311184345053456304207163948708276030705829866014461648417509585656107418886903935703097444004210612510430444644066162736408417581092484569200186486012692715847796148073359808568784134769872033288584965202833969652799236258319110243762208343891263364610572419974818439346145330707979946631721040777374884148709059251669681626521349010378750851865397049497582650873790774054513735303289150408073048778270503842271840116954102457512933923598343573034180837829345420659795389581344835014682342902431707124820224271410488521337898011859857100486937464612654458145538187249024443805954259769372678228435457438873686142334088705219767570617663472379764548598155801725295010842600810784018801614357772901510072912761854003261614450842311748922400203040237987486680537040824743103869431719511460727860679833187242737157045063594262731048202604805536946117355570875710126041543264039635287530094730700373889008240326861442949438003050280237508083419207786935046935288146391163642385695346925062673543241356295722999869078484950727842648559398557653860819073653713583872762384030297745859491395493791136970582939986156132248382319849852678255045268462393028827594225811078397467219337781924566527800934422465768044660277112855729597703752261813384661305995446058237680943523694195409885245169380969171727692062251200210730625785333392545397302078798495962760894663725087355627519056430499090780838130695568991365963852359252295090784938479779586498799592098546799794801627276632419924845454863691599257721012189381705627143303169311141843867256105625072183499478791453090877750506221814753778879892529217190798210259828105995519280413722084235864311857064470466148760103097073224559160831908803190413790324553646544831949279100942655954355676641475156645375216187818399268729983826719486350582009124093780785063715662342111405460139489852130193930729806574760512951030396269277507190380967464497460594429495628497454091018564813308748129505545614533841532166126092988330395526286148183080540986505604344669535671770055275813866979554814127123253083641710094212601073595101161335306744674291668804199354789647208145789180957430740378026341107994711309714698422094939021020009166987148335947323603288066502922234707238048279942605776309430894396188441661938313110648241882997427206762374938834883155386521379253027307138347604513839358752428104747336318966760852445624470893023071186074597866759030701140704718659386874372015149573863973699073274575760665448870989796247554281963531430961959893607579839874188716241446590013953402245612673263274089103837538145138257485767912500368104526050255132558134676879750773135019174878613510317313732418655985028695029327628197894095459902138850439447890229555179219445538039593879969480694054509462269041448114842852578255235906526821867838174633337722746006487364019042896711591405553914143213085493984740661360253341916536860842667804806787801342970217712527426886589225273773537015044303706472629819177288700643397598904554608643464681963473887519443954788382769794265628240107990336065663104847891326386794137945693940039689467326949649512547086995678897857117052429752857842457517037514635728631882215963308010357910169014263050528925713872409012982072130024197624310864699629299809808875798304105352465338399942608214825014530047176107129720415292537708290768781117963440296162479821766063826413801379376163009273807888078499830385004976820555083110060405690410944361345745038706738593771261367515939573623022306400523085468749270731010312928084631070381174424369782589633865959622018334699773422067612180169212365342707681847436962103052596075580313226766849533253811898971461035083806513718217160147665504958443003339280516728600306456922213836829774922228412847389176521108046934894487701897947614620989871500102450635024513764809215638938454469066827504402016546225736153382416366336267764246514511996863405575583530354813912684349188738063505870768181968106997877778865314249512836842214040881350656646929735310253627461864025193537479451986281061858950261818470352480876412739677794624896531862550309490407802537867959712731430127323404049168142913373776721066241618413046287067694757426408517359167354943794930745902120754693116353964523172207493243352944655502941097917391799365515220782656707235426125278832515114800500834439196613685340120993713660051336837189888108667700201617404366445439327564872662023438081455237338912565630246160811177870907605184354446466357826181343244624172064143649229993128519605662669217110859410140912723221381566554873897248760882351874159455152135975796273140536273454522335138548989845339084327450205122908826490877144435138627088550743465296949080647396499838853145720477815636620641281409317958184596070513995739009698333609208095159156174867757528939544640187252310170722846764641607801284653436972104572211176654864947692572416260767682073391897459420931063431155739697293621362129179180662558135429453611503384085347494126359444051302409133410547747012411376397933263411993908498191674418182083687940137487051116980286278059329316451443252903551141646978079411099328136220652712614105382554570461915981018393838405913191016210881745796329464135605265910824750907355402906573433863905436323976939663738704337140621827311953282507875647861674655219404363287357705061876724878001098935066153647819005802450727685140769077994665556224191417914749878008419388452120662486785908052070565771670517160813000381352790512625346946688515932369794381159256630509640584002396147089673722407816462259425624875648617221573610247898065692114845077432764993726462402979351047032676683798638516095474877160510568443956763741203534715098264809814253846054302915072594707083466707973767981457439070240037887345618083599941747661016718344199582295807654272179171864690605612863268804295072917685167011565753505335967526653734212741537741422159306360378139133514051341169597906425121328194881267871766236721111044771647766593181653541484641381615113069763239278711067157464547672767691614287651847973587869906479356488715342684443614340939969935512572787493201406746877496161189198710023129525880588955130625992857948560481472026062044970695422671446739985229528541521632419986265784250283701933287806343544485305888061389029062912714672033981433694777071625244201407847387217691661242251810056211322972796041469038618861595638516906817960274514961239373572294459764742089640091142270695814368011775467563822468351665862876388359624171640013685861170180719953224884658441023695582256476059179487650312456502864990865977264339368113407545134833525248471840399557360729549355697663493382714118800218860275327713294783908308670800868147013762640515869367595964222378260234946741590722040206730007451875645847160303130142123996542215609313232878297305327125540978340943065914757722568375442688493029639485601169267632716128360343063069538718046261242353757419064978456067659355887040015810407262893132480571902381586128748975490327958960745058412810719594116620234131573236461513029577702967192474757555371372323150218589476883247100080161698446416552803770797108109409791498430403823116272559291264458611952586546941513425199229832360087126399304471286822517942000867281000543364340799350527934064405742157257532316017219591937073702549145777263222962378054623998569728274815331867819901138519520303055914345502759334687000664592410976886650270884878731719053886031837345056145684616163637131208186507451872341708849587977371766303736306268809264243196928333166352534120730568036597378672495843035579676326863460868648947189594741500642735165592042200993901841058518245303236393410657812669197431213888388938305083011790733220968669549492339489883855096583354933733765593470841898003824332628930069913637858857688926784912823913560052635070315258528332176266238363168002192668896206369859907690837074175917070470237207834764465336035004076094230778603670972548726077148237519338654632469874384783855089198087442975888235025153068599668040201536454412235236551941559701757609875659965254372106440430347836839048480638638952773720535570235066596665309176894248950013014783611744783741215583966404173162638756445291127835090606399954823351166846387713062648907290713904406292897812779230204191643372075658510985333364820977918840934954320173442025963598101714278388450305921604896203908264349101191217907350066297847866673696207451762430249114113080277932472635607095306562723725784933153028555819986466372791045150619504226517596414431103131465061589704634724023653938642794807660987173706597265545831363169499135050155140770642572694563350579271992764874945605933032643919180971781176670723834042451147595776325442534104318085006433088700281059775057444317481022350356955894917867981185433917141678230008331648027056681221411702861400737715804058073077359716912951336196925931671885884436989172968809502434937862770295958765448429294272782757601804476791309838147954102249915911670000382910518588495178551736430639605904582491270046842536119679410772720374618753177227859014830920086688412605854525274564137764349712652926832501337635682526691077625972469702920677107263817667941915158739746451758384308014508272438015803899459344054967939899955740210891470975305402057063096830903480298465924554326021972761774069520720248835337825132833641601428548057386403947896858462805166071128116711987753712532767315594834577280393890636495074261142906378654357772297602219454232855326424484823922170683172817741624276693321725890702914359224504833109199818241512682264099263822440142838003354219819758064075360510347888938168367966200118312470345932390358246489329998416858586767863038867835342952663065297856721821764900070423138090725804374806436495165378607399037212701975401538029327080823784585054432985239658074242539381410964891666354624661290394610716206396451135499019667877022692531684655492930112127473315511654466902541955314182721992791094667381015892387588093309996612875058818345973857335795622247691689487707844566144839548385797040764677245177067492721492941760757022074565352422141531910881942750836530041755153046378555728817134231328712346316049670962761713981065607590585163991709089152567184462884151578226712688395294359460863940335310728975867202885542959874381995066686145162160122456569146150337280802498351427638699671322727696813261259736465347796359108595289960934555063231944671811789846737860361039309707138655393506311661034334147340070956991127806980935532167770005802081174517189921764385498198200405934291855388985054020045844938584161498824370008739022934624631351114900908875207008823548781005213375020528655568019042318728274568128655772219571332800581109007654565934464778409834376262566943386153177715450217598966576250349054075230512702913686656806349765426942920337142976031494423443600900939436115471579907410314692989177803833648876889992856835722847739793210372489415349230904345770103437813980287626389363134185011811844901729597590314167169446377258319227487738373109066680978193954030903286512220413567830305417429279922799756590370362064639158972099408817685799277717702797860664246706585170143932483116549533726653397452885124683936232287440080528171395766682107524380023240660224245519269256720489442610437600443397882837496320502671720908381881361330390342130104026590275823883652101956231384140021385464300482473771808772079348381166606669666166375349275774130406521104081429107876630377520971174324425424864062186202364443969246638270137841551238723658257743902488654733903215488363522042356563833993149590278463664739922179177525658293289892553733380683819824170853610810799461039780175001620629095324442476537230805519122044578583075495671573960395848357577995174374173621193397327756187165073018702024991789740483868317019415333321392465299180854227303887177641579816375667957177330633318972616935976553399637325153812981047628263889461002311592456818226907277110634365727034231004107117891351148909887091374481593544203513676206693022579064535850689240998569087690262796041256784065036123855567908778685879569492426368934385091683002009778660056075481313256767101615173480455354417404554492246145846259972192510258970512889037437934807180042916573264707980298142070175312409846740907054290687319537170964644468466046381899166172332537074242826275453496703225335745764042226529833956605070252280423060916379640606012329156591081476414560345726772641842040185521033741555639734618805851984673100963041269504699812034849520266065554059975160157902920892272932115569187028309052142693823393686587017961606397279413043999706971085486785928904669937228171821854354350498521392812359957807869467335103676611573608156746744545343935745795599223225372504501259545154663296804969987924360552205968303601524211509617213104673096775966267672046101496965705510794803597820094335157906985099381227543763070135650438530819460159391180341680278119132716840922909344607822193771443117757881185837597972186458645433361455296866851354380820477584824365945368419856629756858116833759732309353278697759327562845813413089212666985421168812153625090810591018493738547556344066631524014232898768594429944361512889982179801522642172544187473138152651445280311523821361938334852330581061607109267623101429570224144021781278041282117898775308980552208286487990987189411891371240045011993896491078997380383635511528270843377599114123281271813881010422716329941535828514372271415298052153853365526381441351130952335763019928773040332404070848986869361969874206082734782897548166346273596005412760812003078089964639152016904897788564042298346899219345965600559161804103051637790538932441431314766239899571132843349976275719947164617281525533917803922285940532201089767095754907280989786769738450409961410554382705677225986126154330243275152060478222900476032337275069970043741210280740880283752280826347438199971385835730234284731411085551202663850568432395425978209577055477175174358933897967150994456123625968975993345200653358922079856816336651146453829759254258621724348112802892763609935923734967741218277050864240216594103700843526399452295838951306606554005098824452628351458584654981575708448680503616949829522361862736756219778627620517228986460175406459152956507841255379607906796668076332892048907610346479417751920025404767911346606631853105125477594454122994544907748820814563039842623417106622062651538090278349265043448270019474343769296368247723053828597656848452690811745104233964063662073965823934772131515547172442345906530657569227288623459087274436277563638463916901481885186319197013693327850304346122750357611953978536617669432977076413278493804769836492900533243507448420581529514323157108898062681736392680124609899600195975123639036364916668013664951300299136232740602889909073824238732226832917978813608433347454807453688247879409814997372260204861567112728516030980740425964490958865636237292552057394111017584788773792371710881600459197330042914146425463124339761627555834046439875898343984887523138481301000472085814505447665329248504141314833024840263160769387813674676888826668456683364087202942299181219540618040697180700186952461684898094472618918266551875023115426095781973236691515791801594321019538919322923497312124985332817636957936523720409206824937027044026189954815826464575316079988874585926346845308499127053257682411510768137606138849623605958278176584363339157021559147923806787649699116071730073859250019808519948762885901245209418726195731757523092211459322576252332029271981443315487190992109146068181588650859762445495389435790943856429903803484289731787615664842221781412637356154920625061406089666595235533112836282869800477009009399513791894154063379422219646428141228605225004276958748842415599363275529756650026597846205601552222784050039274692926388711901899062483267499146893981393514734221008411253503918598262915479082490386150324999977608949627558540886221891076301191736991421669917092201924484612408612619776402345280154569607925565162210594449003211382591877675435668961218704799821882757885825318446450712994754177554719849200122439956582477248176255631091985318670826241210473305866674300425603949378980826631654441122184483208575824332706077970761293443933158446975836472712091115061567769704518908084659538500906083574078888871415115922417832691784078205864573237446429888289546393394927992952692437930425626709845456538610289197907251126910145507321243321370950399774211449154220312933396879931185256430235003112286397055500175098544034875769706133372857178427935875343416704508649750721636469988313066827319988363967575678552633663579386521518285615367076816887297562920189394440751941255129228944175788201757144805348900853605222174017676771065280183765710359645405208643429300242297235815668289637123164623809676634226095708103788873145240845508956554458645480458314734662419671630814071563782269730333455485391998784376622782876610721145451934044183127443954621755780572651338930744929575727381495921884389769267897349922893773836987491615017695667930688305413687942722304155383772575142429424813358967621844895379692535326342197006652455155980134054797350461914046590942148753683457792534542413172208260089930390974515262967747199331469296742338409506589553365909420677021235513866395252474197500363567205040650508510253028365103643856768858911327258587906168820046780745780926607880511148674282961412711246500002900537008740489695859219144722580536425355265027015659592299247476690077748383062479623404607645284668335101331182612951927691251140001532307564271449497846965642257836747102799481383255995747305001126270182364926874984107376960206736161658410683619275863801374215085618862920101232660967016345987555270574163118535572745716204761694792829208649580987814325237063704893089159770971921737782373503852096953832700540324692987521525527867061716284825659584447774257697411474287046849602445409221077479667638435954556449811804220124264847877522587203171230413814234349553522918881559916414022976498508192756220025311154238537223855868657836271431524372271210786900706717663154087806005443743377528060944809101609523750983139921801273684454469466396671384740454275623509471232028403754110661446742629119492056494522658001626891953876323957678358170062385661682995956476454060841239832807236077412086860590430498895237270036440158072133687527600794957058518893290467109491852738287834352462467666141880243416689033115890926960402017289764982631384417836392607611665700936722716217514271115871780292106484824507133802953939496867974870839978622981485013584785876601584310994730747088469982852293079330308360768134900324081880776936051412574970606070989132319258730827167700268341479445862740904134675298369321165090296801473902844303643762473241728746282764902447542500155907205557295380852758569106132017342032181309275546262336658814591924611094611054453552933015188132052194690358777615872871139275237273740057023851475668537270418860044559718564444133949365777259707882904082053146494119917397374521590526147194285306026348508769661228665712264948813537092127607816435611985950211736985378965416849638479262454562411713989101805804917471856010684154773885014008982245704115350168596218564335946954895506966740358728245794051759771437711581415106742503542552754350015847483706535623683514247218881167514703145765574453030516633458662625573617340794598320987308321062687166218869179092275437259928519566530185261783607295584666276199738965477668499810293602813002986015342259247144104792669288917758588933459317245396659591421954437584803125424260894606388842559870005682174882525605580095983588378135290607768284188691643491676183516321765846107803097251471192411121329636994264952850373293830297444409834973457563540620873170278890684146687787286511891724649067505327042630282712248723730689245075319420664658323141476479669448925617737077512348759912889571094175243477775336786396579026510382449383654737614811478519555955603155526363963644951004210835508629030240334263336918339646664633063576091483971927267250749732999023533083023057017867509185462574083231026949551677275459739646707664048741967937963113622505457574978245013181451340816644494751895271919892911831369865116721354417550167711618491749348357914626815958840142315789856198146028685584701736182540958550617011988225605436635944214781846102979964126296861525605116459421384527943776433785722612454046203735364292309587348266825525722201387198632676987648293368895885759206464866591317116780003531101396491149788116971484357547516057444910807064386336928119688253707146351362312672730179633345972994703363006493309019548743433417712388316810006895806984053983094649594458086874121518778540682858606225431880218590713151204149721485116654846744380820146635543565928697689314224420373509046260383411489687059165162642629687087825754846018672424131030571938287904695989804137504951556887425938777413573746249800279513331550385094877666430126617420182991583249333373881318317967419079809580580996469682323851258473720989388260698412908881354278713599991880067944899975545324896533994790140163466525242664180238770989786236100599099674294936337987142343078141558347461926516893877098873090559123515543099352798894619005221422828244665587826711380233762399540442510005192343635927738980885637246902456725103724267801282831699562578141573315611126586929975043263666625644189087011086820437699905267322473797142192072479137092888536960065057591835114343564576789651150932640808978756074759299172706623375159470104017146883223018571317678518641939923392306431992238031709401005752233418204759501031039325659046842646036122365594375138625797384128399142100621389053009346197769616510488038881073187449363883023248891146787090889806253434157951669806906446582734026165459080362522179477776286204220034506042173393204061870906466821244961942817632741378576257564848477872947589943406496130836395430891489789834771074656926425323729471729986731931780409532286239335236516470662787808578051160347434623956166342111494837318943167231770843638539617428890656267783507185295570678689717891197475595873409516040828367140765862290760044329166204219077912236894470189281556224516798988743433281789971952775454479188082092422393599562526133582824277329297926772693862526310879188087750736402980737124758764663087898086512345508376026412013743470639577337284789431723396818081973347394402527348803386280525446498472759461053802576571641460746013695563586625408642421398633162959596321390716640394481672709260009968029676959828675652330970428326738593453567879700199246168174671455650898658281271617347746576419511744733355183317146926964053458792534636247349918964721210324969905564991078921534248162470763074811647059633474236756109974377778870509470507446291620851278781033623373668777634185081095249025082261128103350190461166768651561704533641879160173252583916293480922336741764431726066598308349444434386207813685602339558345773026516153170487363565412229113249788241157236614142944076136479372377947608534374647879534330613665780498507165771506793625917087049558467714502117751727214885509446962290750551367714955940369135815387256409381266889123777060273987342004413843481549423620077205113522631928900476430752434938027820593572688313897435885849280903437869487748904128096739238584758237064598798739910213216993337002152011964232689844566871526429577649076998698559695529976090628821104934018122152522729976903790653368849231688876472837000365975679245162330358741691636905848154003195851322719298012405352155389929470865387568586313047179473645570516949824094947881440126808433120219828145688821516325306521192943940575332492057087797584343403564218270122279744998830655434769720526945671949727885250728026269802577520135495873730800653685448077216235852164069004255224485770409178141746588641197659042964257721315673719484586560384864576435459918450451484461188877454145469610702386950071614332490140958868703598012912294341703346941168282603509726120465174118407126063504688333280323953207341493216039360101094761060875339443017675438387623654801257827563372478386336725943099968301111339227092915988705528559280845170791986274632014149378744715428362341134064021061203375715066908321788606277103384649857974587838098589353437250900650275629114401450784235980489976419016116609420423403382516898439273060321241841413041957044307503213356945517781588114409160161725731990907678094225482520542750917412563625789450391448447138706015342593424984835691840985382263161264826513262643998723713964388584161263377925305931003546703110417247561106405597693110575521776328533129337923475465197800121966556855301786387964961550802336417865117304953839665879549295532827731865905208955345335163913041257747119260565292112258115683589604313049871006576729585487028141891856309281494495106553525410787382686257844872697551272116806007153331922631732312053507670592181188162966368046012648108722542439045326762632098552008244081773088118203239898514339882085085042628227705345743597968515171149700625981380523565829664872747162568869786676321040971925289880389624783814880637995625724722110064951169078086396214418713885537621105923859191543939839132634243392209963762447470858712393654368518325279229701852417260357472688349628290660261634231503123801491251217459918521567556779054879695878674852785155190834195878885226648722742940988597606935507258431418072286854093430786801538862381630069848415315932191080607895187890487059598049361628437956892027060422841573105834968255297070747815377219941392492299473384574870331642338282708291417643292763626487386073157807581133352188087756428273371543769870834317722935624581121803355257016487960765673281330213096922709467193235023332208325302874168471141217604082420894165859934973882833032409553363265335463385069094916923408494026269554575690741760535717585555522561120369020777210103753318415035723774266287152598021271746442788780360052233244972811285961375547582814211584622309543716245499777200806996630200664550297412598415025762284406173868703241514782764937005667849046475651834524633258004574344005751709770465852665816437669202694041971967557826653917122984810809787428568024125572717240258275270830870094555043673007756979697551391516619604573117637230321556934275467324609982994029557414509030314365652090653580344095812895283176371827109863530807300092810262984713337801337611210136158450779647551301355512258081818472727522125254467481463815103255122635717196254872781276007970913832051164713647576426897093590850042280142428707936509040202015560122072190532193823832580089915185896834362473532992154882151430477256044717806228806519334892596103295872500839468327719022058653357409058915123316029923674020774954471196416029304919420262444822774046697520912146115652932272065048187333257482762145129047708549545413670218951290344057139203245755904643172634548451708841739782893696203709886939399166232072522864930703890124977728087690734845559763404297597197487572416281432688659863851476514831916897493134660997484679025407656737725613504800989283982462880309022620173066374245153707128597485369416319711024244220108850336953546554742951685882053071882754220902705102643445085445179582854556749010284482393090385328058105466037367204493769030186439031622854707660522675406107711504184592793963816548687036444344315616496245278093464732606377966809302312173426398849237415785753364337755963382244140925072053551703321713314083142090393584349284017263494028015783915986322847504895413967420483595121190514270396920222559441841267070880938960118933867257364933032084996358293296834658265059396251721098512158683323769264002605657362608825476520484161647510340569504136696894490442155167501611122009862120998309719233968647061470634198181351218928444370251445455252821305690433622456250550907039952760542379549194808633418992563021041810533707582791190999774145322048629675698478313656768869279200829119940608387778697789559405482551005431175241931933060485149721612994785281884149039248852451162747309153993369018220465128067732846980653620481006829293665770476583197010412366097577487444476508059746700402988031290848012230793867043306925543759620126028352014269053867901293006434572832416370590530982702680080882530320498556531422212166528843156937170996544315979237135784351351713024824830039416927176624231840383638588357461958965500100064892685470832022887690723415755787454398828513579342989801596310888411188371769599749454071023460845521523519472913907960461256641205933162869885472647814416256893045713445293365855887439666965544880016466452908995481714704243727821737491932664529251404576013789863296210659006323329926100025025431572585642604522175168087431003185470750791579109848769924348072620543156121256265683742985699082936277132373886292090537505335403397291093154983397546782627573547699611143181748463516595488444054574879631069782535330245200829398116925754016759979217654233985723215175451614803833752401858618864028154639496321507306934822118163905329202876984034557401578909031277910632948122347011415255044471661841184459641329137775890680568551179530248644507208890099541149221931513157591887261742853275969183855506171721536396058462612919811076840643445578135180583195425133885028896050112470102448389126476333134989946215986575659175234333262310275050345617153844842287445898287029579402192498476357070490016399658307288104090196023401691715954398635199362829931347193753949119281575492450516199308032476332910271654918825310804503277088608058846853201898805773772709777664028593145807364365747734544083797189600173089076706189028242691821754737245838866891173177737889703428177621317090637530880298382716759320855466566904497206718215826835520164655781454133907256822105580747897837797173813836944098032323657137555278396887746854689875457582169693579687034103676200905418193663577196491779246495038463749378934864260415821681265823262767901037883296898160079798198741563214436410245967558148375315012609241589545578869098587327311208999107842618691031718659744576174868696553707258794431180302959099229721874308393905688896187854185824341551001786154603829907967166391208878280841465160612842909673260163731320692844383026651063435372621687707981542000958886683736773315682814264500883524596087617954769816473818999447503828536423976814385826134483538701050607550113434072645221181704248249693798978641092819267499012500602567602275558818400756447974840278651710026724726431507779102230886105941516581604928003534928863444018645922653174712617639459499146740794565986749071596450835649487808299645670239103915127043322105933491610201730972877468372026893740944470120176499293109688197935531251409812002752295692271568884020467753932665904457950371503177837974115025612017129993881071338648910619508873083624294159766476878274014042047824315661533013162865296367674029105257324221718078475497086588993595901061477697835041380980915222509539355604326354685741045699944228827408324652485355991653450691119852031798715800316808261721848783718740299232432366908663210486453728823512474113148804199757292432409666117508106744026546687427045994539171351936264684140769606049831876162201971167288406736957959513896075094021658695232779220113137035688502113591582895878910922883183398032664487185917172613152327626333899077287572415088545925584950984346682356817957570918249392868821130159496175808968571800702283239550613247605574211364525027744751074188604355672686384674129519029124459470926293161133084579762816770211927581210119600494250444424025999554192928215502126649711071040534832547448589169954214815525671600548628122069777429581981570809636543381866103657464437203494603820517382150158024247336992746957194147646993136619787537253606665756968114655132126854408615283159631190008255433466268206403274494750315233586455491865418047235079352091794110531709143284864450805074759185194316844052563468294880508971885554089521429679237808597817386818025703995211422386666386756457333087586134867969343830333935053123723107962154164385964309744780695962822076100493896664717832958907083683710517379407068939642580343586928059599674428687663304172616859985887417199990131497067595037637710051733272925711026225418437618659446773215864386629530945689175065514574083729520615191931741574524490914212740284629204693740099141647220026520415471950765008634607284343826100488966485923411396123474284891166699720421028646955604605776928486242643208595131802339982174485264940651232413241049342132688894736299926025848448516657923239452900859981596545580056980336618687330927321740830260743861750586578515837032823790826006791727221408513396142565685041590741219876259234331017365304583055861952224771388112118013242244671689054624463100015442544261340719275322488213777999800581467271307046885380814933137463890038563123998992480915682353078721320029632232664744397437967416249285685439583001671697508348006045732379304292616249782737178120234806434314635671677973246191284160170271882213198538268354461874579897316512836019189474515559136439651048520508861091427791485447986063925148468969812635366205350946015599947905117424781783404448231095857828853286278210722289794702752906533228656109862133851787889360630956267197401553661979387834650541997046740960839474171756710823318320278186855905420747902243368923243565533985723351920076979395248662617077651200333019172608643927184906083145563424475113580799180593646677335439811844844707487323976020824380930508411769434036825828984535971417571582275666282848142941225385584684304810083901639706410424608921014357675907193182750635921192186052212960201937653703407326071714718240680167178686163833059659092444971377763394962556843170209903060753784093914553508484972868930840513664042246617737589414991012679899983496962727548315575054854001492327840441192512423898355132765620086693798542045553711622233660697686339703112163482576620561195925739112985336466966824261660228710609155773642698214253037208427667454186936525151857996157578476591468461685420567469617282572606661668591600420673364879442202288203894884370786605755435598525484088016533029545210342158122168470143950863393381097288339930653968729954792929701432641583762311901398094620618844997723168380528493717095691858906182023381077333803446919566007801011103439248718905944441739073923450886900006134091232013723813491206684044944865109140815152727034264844275925610616206982335692692406667098826621395297326369563094287542595458809994859525961977224769924753738193448496795637420559753288786606145741375581049660092774145507337557408454599669150756882970522207739157591460552455370167685633475590678480341463076564671247737491974037753770003860793923008775741008596405502677511138659117541114508807957595162618455263971164000437789276790278641728220024674500243300397449194545944797458769198473430377671100104737316083098258316583490861194224069137794760291529599621538349105349731489670692963340932295842879360915060801892776452050920469492878501643083956878195808823486653314197179010295615813120323457197393388577936656397159627531060577052766797582366233514129430337509226058574730192991907962660430097390039938931124028202485186719965028837015417928717052700503633347845764138324871737904807951953361758674448326855076598969713736187860837093302443313807783059025755970468863225881085927592951004925071652670576458195276560098544267309949687192322435916933515604977267071701614259820840906725803946559868771859881920174388873218621107724210947527054835318710349462103808189346472513691293156256109044240825451506421924727742171994814105934403522545665225706287054214166737627116124261746421542601287993315903519957033346936835903817544964083743902080643974321631108871969931441555486316666233226253774633351350346716736218992200931354545847946771895344749762167909482086924837627797289302148097906922994471698061867559438001884570953048398186824766362050725823065888455506626484903285644843570413749247807241152372076690228519455172469851651815814209678077985527943961453666474564103294488698473976910386298937439083200420843677177250990954586678025958041538451505800941714459980982760635052812867115760749331470188125848469346510583862706215609321756134280206899940012774972028403727414666981742924850094724350793952867752442070186914322990907331360831455981311465954433501386127767563670125225569882247298159110015949923170087618835193430151215100523076742037687278504495359956518659890834271466551834009862284749750981896503074780800120250196576266915218951172566358090214873528336306386198206436115083981270824549033479303687674249558430864461674310095897547148051230365244377923389312753960693868360645618974588705140499628680302871374960083585451175388454311795790136085948722430606160111818027796230602319470529908527735939253177949040600559185676847341265786900238949383402013502796424927476551986008393512151330511763788332440656499489855794274055933439921699739257617746931632725007895945178334802523517949243427856790465712309058409303991575146973688847510217455049094331776288096075048058580520768844203704720845885578920179690730636300531216334027519761839808804202271062626742225296852797734964791561592005059192586749265367751514513080410933784844160361930122285540303952608265192332973176081965140584868701744006873449469655371600329387993508257198835176448105857559830910342824199540039021054945952658266451000735107766890996864318949133837266079456783686454432524935322394072753143377521852697948739477440273369299073008286120628823176298541484603509409923463169006884646023583174278425584615176771472719784071391255623269443693276512974441450174575663643064864494521360490204608417150966514401724590322731739543064973248322997350801101975406152110037169741185203244986926786090146865754470562797072626191889515749097392208645557007408189700562618979531103051997208315739687595228564319082878282807528659108385701014748523845800039413366670775724929680790133725361510694216882687677698904103842763566430106542758444082778644008476567282454177179412523279219741964092555156243523271294695442198061550248602238421101319728879249095413500157706239876100029037443913903895122917808677632197277952586256529562738063653924783852061939329775605531514113883381537460598531930171746415205175618174005514710296702686001901856496546788105720058160370089140195828477902504675791063058188667053490042405302794432278808794705407451906440329657792843697383380788012105252076306593964971445109441032644268638111973878516980733294181067137653246101448868199034340501370321523680149175976209893847993524712593741319636836996829267573081906445841158585350547206440980105099933842394502520736488124783450679961826971937929280250506303629101738100841464194676663032123058868344773481826752932101799894942163173899432655745890036795730438648697713261452860914560553958110836213293737697576555853957306822072213153917972621257870083568499953949523341563750864762580380445857544261662279636043617213176877631422622974920275479180959069893455494520454901432623761458789317620176134592686027215976961053914261000054684933844030623811732427033627495630494629560348604416696347536613330715771678390885029738097449797392945095059820859896744717229739576672113230319937347737114898859011371638619408537718416546242996186117998145316755291119713676509043297875627097034375764353276580647264804696241643660025315702435771313103232956799586005980751318856848140220913509996343725792592455666352900338257921171719928538321945870650973113342918435116794590305989525845713449421811286334423488573231888607601552218419637029731032689350542292576384091282471723053805772831533099585935963915740183341388409984790823897307383378781465824199708082668647830595234981011116623450735640286506280319637313194859214571900205113514814805976957808028227276911550198328660763011128070570168554742186033733885429984842047574857092325961278344102661536090030758430777413777900874383898017426239576325997570774764763868737241320384828150982367222562407401305046024221038873788792614729340940639265924786362651778646263613935289749872100537847685478456525532046741649069752675840957645189355418624467167467074955428731262836617981878975983552913833496641530757887800528720537992920212104588199037765998668393511268827331503002232049224767758130036470855755105000450835887763635739888716898999306210164643751770420718287598189378564666919838536687478724358611443567884233346651156318880157872597390627478681252507479088323897848891988436736727499229162566216990917814822587731461807320209501057724914301583952372697416277166451085546012349397142341316295373130207569967123444341456829487938353390225906185888746832896046812391939722297926886330232993968092570529802582673237882797946934383212583981989423346712556747632034016973846650837432086301056231471140012270277957043923378945204415468008314091457402372102451809856487026966452878962589604481796094257012240035814353772220498374919095554637870980589626114527831663315269477599175019140854223744478066914441808388296262790655145029518348962411428296141373574644307179470512203779626417103736334032648225640893710749174699551294494116982609107115554720636303240704544347036203425723928885264623039164341188451633966115727991954958593738896871011790986144317976405963345596792478795959818068104176846016506404374983944951167638304252199860510740485413025386365761256041373008862616160204923833130687065520410023285537468526641489892224307639489394795471830455065641375565720525545014616140333533922117301528405487796874669637822213983833074562841276299382383713961559486991993698194417983615294432707678287860351997435485093028681213732329370285182996181459325787207804267183576482172916575648355648458785324254885207062342891542879469066693903663987351546221533686195917248393235342171603236466153401609640591528673969564511804157545443865029944431247912072362347997154577617134429768142951933925449094582569725280238170901315815288576833711825348240981903884197051813028121174548359730428857922894931855412379949523007115014468490625218506337716584560828410773057104341347686994530736124572323287701342324266626537821207957447432808985598778167392049419588021387514547130691840680583172860956292930665389655718046282529398030718403336741121597448780217834211067857002695360649664539075285144311417602169318175225770488640327718191961457364209854368220955376737413947719481008393775479705461220401502659661281357716856014003536866791648547121828945274363145573549818716803751304953752698040817618845416227718468736813606293270261017865266299332717097419289363907258815458512150213982773317086783968773431274514201176800625929217919852521545092577787124348426294066406886079317000440671695053672787191248822441011680686663360926496079382343981915795947124464258468316492497338516775198182553815745672155130160656205628115631743336272653344579166177581102042740090488362858148369796010404759021600938972411865043964364580278759256892151235868655247916717969123694124209690300793313876611252131105373905867455216604867911341800120267180468886055491024361411823671935359313521811344798661183685958604480694087795080511860501529847178462360975001122526525042765280184322486050175680070017736657616516838164362578473383265373667582270709500348938743014732250907175495440771992839748354132809695997233638283374096769231706662364019081661358071090814439809316086017764051273328873165244028936470584671857657973782122737898468330904982788121717184081049477577890060364293218895112660458842281905991985191751106243055383638049439704737719729247065449375600433706103702714977395285330157453357391429585984221974369421315875651762338833215341434973429537357706001642670777243608394967888137869222918762912766057213392189677874999051573300665126867610440366328154802304474606158713453529828929752119797135813949316572848580797863994442744214901523230633955867333386052411308347578931586912427955325335130531255640936502954919127629739873408613012970171803613934231500422948016828709538313175129229110705508741842433933573248087949059488591621633082574808350445395004255531187147335435043964511440615004794043202780168043445671522420628128170357964697378942987020443226283112154304819830297589667000145399284973058376987072200741084861796322671475837526184348055394317057395123943423067897852652477388560983073140793816524600602565408609765589094532998886130935869926491776336345318096095328243808599626671277608747209340388136417463265225515171654421133992647863449743266884196622718073836433374171101232842267496580899794252895682753963369907057379152430299170930057879304679036468158085116710743991123762287004082083264015095253854271312312373344142004879755141134538408564264041602040038649867604045354382635161217847220597115945962710262399363453588343650731735910611246646770415258892828605646275214262064739867034767631962636188982470854014338064109226591619835600897058963447081417727381663319942389445357459116728669941605686681280646136665984949977908260432746580654652662313655418257496251233792633524524405089051210170601187917614162619163386981055847755754152580827710795444040719596493717095891394374068488070385882377596230025120779031578356065620565683544518629030067208724568244187163532965352111495352924387755537461294215106205723427577661368070113813725514521461260908679656376181646947247750978147115096777194546036127216163426951174537710244146011416782149083857141530234806538073498838640372875709307456439160144469304509221396039443903372740602643369875541683804390168254934578889355372193280103246793748850195473371194832994749584978832810778310593903637334810182265448758120057634601907003732033211316826443420919203424887690365551995561900359380670663859924824916790914986908820140742347750801833078149550811921694962977701234044174384075578534450753951819671011288917309664866852903574623194563600373541894920830211083645568718948361126966310718060447877494376754387195679315985203043968516754517040636741566276103415137723181832292859263589676786790613884857290858864009615330801385990731685012717732257171533493646210068939010017665951846016934350276786486640959919632076531677143436707908214675627621348287664253291396011132674234069212591030806591001420203314746948263986364638845374626666742104651110182909066742836101753390831094680792520134664624457964345828078753915763400810811404593010349064925169291282897458542169279414829694839555376443106859270652105518325596818055368676553382888302278808967958127817697685175797588698649507050859287104880227632067860905189594346244570648025829351044606382006368521339388432731263885819042581407915342660299444505777594918951761061870358766476845876380777815121262193193303260420280272670578409270211273651223617843674115153917231392305020183518964159409245563981848619436658613062782813680594614364314715770975680532131872405577509708643410980600771161906495363314181438212275434730679395938432937516256014241894768617722141714176356453486836788493934422458525539734815627751581591717240937558618051076850920156829970441780960382643013856365856022520402718186666987942943156432623106764760774191064891684811778102511253051099547791190478382572886816677989438582948671287036531631630190757478595444791266456373766450804752138983923205363292804774819151856250205538628714033555063748975407716842603021534889861332622076679712989188756258998619122765431187428652984643906579141382046957097837365166009996146579826775917798113015399680486415316200355437850895803206950226401360443822633902476456595101452007242903007932885197146677149306853032943349951596335668508234513935374121512654250695055041691691003389716685481580957400636414350505829047739859932229489519102543992347419040425132014947630655978021278693805336240917296215928420098272307369422775589918420210111517773023502388304951769540481226956814021250568187975565604256741908399940130000129736194098103546879266968248165525990914375583458239884259509706714917648475585827841652014071160468011433272540797075878625875052325076158145031245874126196305743525473974739086886161056444628795875673911052521656571214613204826060565907960510959882674706694093269419963895499336644847038511256559770319597293488705830681187984336237202824620457734975998266475116870051264025556702563327399896598678691703173305141530689987738693665162672296053856819597661978751669907576920126519514686658838627371469204553496624947894719801271395719608149948440309473285481854263413351073345663755449390823869108103043984302550717545213579769832088001282308380230331625083955086275668774423986147604857368713459043564657228587832311953210142198386436680818297535235732607512227053266425366366988007233360374254160874334160334574954486510528839075178118023026132180164318098982247356517590133177774179144051984605573995175120829401703738627989347206842573047951589639944899715231590777698364703978614062987575809856299484190409719588467594017943591693836768927913051387455099090932525351943625553977412103506172876298006823688748841395907371944809916073808994231619632061877153211317155494641901446686146486353204176363456606218624431829459381747991440417345985002572042511624660664455756930678892199239596477128647909620510233374782596333439490012169909724568795949037052067052609559336347507053649979302801533268955559366160271084171660552360579862594215368904440659127492457268755652698982921858840685860474812262370227009998887321176915144707088756240643142771266281871278922712121068910703228940658576842858885444104473624212266567878092666608988475825370494282187082366436501909282201734281197996380603341801698107570343233848399985509658082982136884765743080955284609648477955575830444298619042112447509424560769033284629989986542632187860212051676161756447470794100100942346136061895770482178800341776602798116696657859523153068385134808307795880137111270493081893323627023529692896647096075402266972879633207294904032457253231844121664011105291711305974321774028429470421566719786508879407050499828914668627550682234572296326599005715281256563366224563643275358598777102831263603730665021086419701318777176626664598684269688430787811476179668017990209237680056576236360496566082109052713270513717741904263181833410057763234139135719741008200197105884100937850811690309504969438691486614316700530328282467658083558476519715901136112419830605653383350851798581200595981561404697420357978992883257086492748727888502178173572500810155991447822479545342712406685957543057283465057316014452607125560151598422727553331829775116552322131569555888959418529816915205430319280172894316093050771526354877047884453096843652371125938761333521231817090337073599351386501023448510309833825665945136388778456691367203986385475604298555690242289049511512482746367721114166890667892588677688153610666737371159067667414225396254314658837783308933977401838259842975943821883578168737734594565963436147246025729967300199345422809992259531218367160716108208054361283227945703149476276246185123950597488581754602931074030580971848200926461778141411020512962404698300091994015172942026606577865245896371769713065118694602105911126873916709093345156992631647478915664198142038586150464913412372342166092998003080393668714255651344601241515717734989586746732813548302348491410435298003506984958930139734480477135185581355852252091966734805395916625481021483157978082959153076617906017891709458398340150270737799346572726628877372308967128880965815394758030545450033549738807975316833647987717422156319436472191861516095286349231164565297115149993701354992030932701196244741138722151186270718897924138088266654876778029228612491315766521427782497708153536646325597433523442994633854140712556471599710822228695787536763327875003646409635619571784183483445746063125549673958084784984796193456737222013500893177077704251740412033296203186019210477772647462203259028088268857789081494427099707395310252351432791125310268935684703815432959991677944698303017778875604217586587110917468499515949501494931643095329280964986452898679948255064821405403835661134407991540942059969822638714355932049446869303367578901886188408376350288726679946749743854048803173968099598264425151818354279066018123102703870670181224686911350025885491412830559003736821344923868545381385496424563207889362682888352685641332323488511213454106325764864992599101311513045120310418854043994194470869163437612623975555617319955668689572727345567038471433348432214309091107323001265017952015498521187835600732323744027487903813593178865968840411822505750234534962126607589055171728056815810383747078696570573817342591073680838252748418077388517531971910529614295462034297734072303811650179045585300049005203882244908171721111997773783453151194342923423919311583872050813575631791761836033575630784710837065818128494919073150715605466542670481069077598495877860129696828383419707971742152369042643163422989460080032952265975191809965386943368235842137231177535235829321279793931717570025867020878291362145311643752836198766181980815160989034343167804762692142737908214645053182945889365012698636994584659693112166285049124488819322339190148755240158671225732501385637835400625855138185667969139786005069137079579047603369691050953013521271588434739550043908959136990345568029436259724252777117828124819614407111245759133946667724945617202133191156861856682260408654683333922065616251239664948815891476915153677095376640238945481409324355390536206889444024093136800576468045462071301117951204005386493138470299451363028023472137370056879020820632334938549158068470780562004317763102275270782197950723005255778931469751717016561241504877033589377162413975711942555659572929616119061712158725141062928179501187919937812347765915337549100736334209610365772905262487770610765760199740966800894541592457508335149562748423894748142728633845594283562111498048535610997010188297555708627521048384257414602016720287196947611588572734737596846724625777413495294124084050176138186640046043105136421222072300625912845831882938640936034130418972345808484461246872573583572994446240356976137338936420321494817707095428703283465775226629636619064686503910051899656917366556287653271061984350732985681119311134941503800952899523037752046683761178847258303503906588081571082877596687886626534547093590532024688422108915628911174818611773539928923620203501896996915457311009731884870026109812278854820390404540327018038876537912469700954014941601554536614447551558867831583421147231035108603040086637803504522736164261833302642538801443165245418535680310386410617629958602405908179376408453785607851836471208664901248405912702422467084478499500231112185633642370884087327555865717206749300729016163567163934287743415960881393047521189471865613631378962258316083609107465146663779410982031371361715324021244089026169048426654420486630493426073465457347582219554544800840622189578639514249187875430952993002311087672907819283347600595833281605386910227105223574641743206501593358588416571551682817647881349250479394276347579150115896234750547130438393541803197278562523420468959472354259803876166534028952694304514341520818313404795280371500692353766705305589873958096831371323725638395446932959342359972155415336603154725940170562460589090269618417778182696386653228732271371023030255052522548428980251830161237222779250803286339030858987955863063424526452520806229773657100918508484485659583992192789815375442271126905793644003833407578092797979535070663829787488643781031228916707200756046871658370646943315471348153884224897514310566426616441646605595499506201694145370504342454845868672947307205731290383350890482237303023960379984373591443031248028784476819431355198495003400908428197878319720253216147960754622789309912533734030002892097509914443068876169319387247478165540347922267783619402497820716114896771673526818720038141727182594083180990508737356380256716164864827275365033872971546977009190076751701933791383550409189083074680250564796320085024026097101528945671343479990287993482531310259521953461630496166312769052921996525421402097408418702866034160950486015934341072098795528679729008932552869728878612137325424998115190128820287180669560713872088475197068698658024859977808469991643004680431849823816921474336202225130627387297659333679589754817297326408451705937858677834849177581233177225363669176733194261550898764645715337302519756833920499955610736227852516516949575500478365032595626480392328490351905020048479436669184942370270888714052126447527490495093785515453466316293153497130118432435723462073727639478496201036388926522675543013049228426060216815346163854439733812360607498089166316109780415215768682812503898746571741999527913222575555101953639453197090396645038380777567896160021539077479208371184133391638511162410797797108208531564832535275626034134300866804465550791237091869188369973182636685387286591169512297049704096864212624725794380467546582725868719078323331065105667858643755745152484304634479363338658710791610405021245886616169011549391872666271344214319152086899501516626953295045731018720818990132804708058160933698413686093897067018460463494346336157025209967887840424727360963474315347798595542426952447706412540193349768835784802232533873900897404607831071382059597007530618887096974306803385082734350475223509660725395683042003019406598200425790300395277552192489711027121437932525490415289345273131087057566261392353471296108389675626245392802605424679021985889709622915396221888229064816260496356701515851607259051993686446323900554467658501854425680345653749634783713422785573699587655733165669378631674948403300097817288012977358130462536816772553953575677609963845844929137810795476655264961964119423279578023913396161345568356888044191716293281548910212261529435541074628279370907142041399969141969225728202774412796933357580509795463624985714620614749177032133572305989213874474522689498545681142092581312273806531245496851730984983540848729008129057083438108371986919515148212032138226106526137657301071180772615396699134334390126694559785689494137177763437401834881522451857156379916206665372368679416819596828350913420482038231541099138008348373959632982760749713795227341115488898467155557927678609798177450818139685461659408838069788195141205256636483711695139892490705700020200716376674757218615093388981311322131443346495398448725461804342840463525836197416978645367229907954197727053139095272799496683595687155007349975844997110753070450503404557377721715384767042573057385897719801377833984530708964656067871987209594972022246258721306144704066201607447277439149140017332847710684595056287541994911156620967878347073360274305746855080189721815283305858051182071435798732306394585799643319598634460524974296745513066974501013768379481051559360828002862132069125640302530588739500741821626414788561805122325976775372830309511627684806736467591569241431384989467274798405366076763005841169534448151018610358494735815141643064053798635066241793287904114642782339276327258809039352769707485089986626135330379428080590100667681651390540736116212300393197737346681957485646100975258845474225268408019063896245025477726376760552265264066560831398605283287522423403790025175088497182727695325963239776502989709340559039441769585685295885522323217559686482468544405773928017942856861672347775066340920003826267105134482269561167329998893299236907166618766892030188479266623056519901351521619303676319661889548996304163965579779216062379288477740152792818875532092274997904688737757655063658310379473680253384902514915112621784579625367889024285697442367595972770412811310107732761810539489340907461124515607570150006203223097805333165354924264706736037185867388719072665991366027572731475403960863271289367618535146460854705296018081491711121313859040187109667701725759302028721501195984992308816977591224179169507356827850594087966675270219363659359630051945253934404394342226831458716850948781521264261413050508353889395910372317737068929617363633022129866518273654417991023450736681012412965002217915486220956915895116883732207105568760771060834632949187770293807719987794147959745282753021879739754652797861649135053056522687685349081252859590371858160276283255899737769893992034575651480353080605001570497651544466747499985771897904050337434670774614168659081097651959413597685736997272228384746003359501513000558512021748882004652787433080142502060961198786841529966322689066011549960856833397295409480048108291868411060844197142862858464749528533779733437896309730358964875817054120511729968813110662184949382440556469590941692353199530645820580532002442459453700681475053402744236000899551090955075018340610759567074012371956527869064142851129542010153683586440693009707398981253463174598706650412722183217472479250704749306328524624500543414824312996406009834048062994213819723341933103848104712666115224952046298876900880154686562368502422204857621059454249852210432744103905815469610610286001291726076949849064837166709208268889166987796035188272815892563505872224016628930660024711653842521504606757272217617946436908236124322798382169107993033952651026578816047265292828869132122713538315754169059707339692881370564106562958904361855583864063783138038596667072187849781436741278292688711944903765061086960676346310479138808468868098754952751219941090495151540017620639011022861661117617822801638076145684434983315044259119807777844938759141694206796821882033597904088296499580995215061418044226346883362718597199326302365243398151493260808362274679327025897251003527454258625983521514722675553724713157745842538424163567712235384385696425708183279505696819317326085758739834116376779611485763856476387277477394060828252557296587644809623818730829362484314305749447854537922232354418449939083285427562941843659822802744106456167820199585017924779533578575383418792372978154069806808090099105265725477690202667145825541048426021666111593980072236637693962716520950602500631441670688897971032310365766629406048940447007594846364825309461509107704575584605147681755172568582541370961957497185302330595329667913423754993439665185001954515767338719118506361848613963189567239109500577773419208524307712840471060677934619464029744187516136110770620086107983696307139499397419203082053799497014370406386886401741623464315745002573007023560018434533687141269490548323919454723264270551397069686548756019439542783386504610743164583118959639704123381844851559220845258848423547887863640112776844350112683752960304968773286793821394872022545111221809543516096524869233283028687766475347154863078143893210639858858799565987346637883605530549452553959107183453163957107608886706917154094816487677942452557440028830295876518069087554595612425893733823126396770152641757178993127163064939794614164787567615588617171999178702418318019316295420185753026964262860777369165020820228878508144564932657511081858951088525292541568029932883539169111103486332633690299004385917454553695329624329599213552158620573549970244332483823525124658860432304444893213808183124872709386943773776907301236137287336931895491516192192466753384500574559338758168600620981233842419012414167071407090030973726613097365630398774259256565639536623905418556245742981966427700813800413460285697397786073704576718960411890706683075936780569975673406541277022728330568680974796186613414788859082491647658364039639521836293491541749111132771639850243147087064588295197013521929337290926251513694622206193185328174811473263802245552485181543808001780158592627317181496774554881165074212524595380726983019959943391056753808167964837236292628061118589770590651417878351103376449995937482853143964300307379130734472756958058913923146932677753967833442545474586496633359019235683286497395477258192583153089042421306553277836176001637361476206108029464281022888252079662872469780968548406069994198686759037665752131276404187197059850249144308923416687871877940626513293573781949713189434964325554637206993762554075473050828680648057120358283506318539375043171968832553238510843483714017520029077509660180377434900614454740310110419756008492728077863000688821148871132527995198966269750465580349536005550123990944493136829139423114254291427370538860655617932619449380236811024472312035451917797813999749631483333700530245288262051633575681436770215960531833174801313827054010701404004490303805433808063572181757632276240167169663726290048482447451924337460737768716740312212634492253241683765690838298127406236209157491079686419006311485143888837778498980359420892642724221217514392324791842686630473256110965472155290814923559899497981063090713740693449989011874414103975361450146687195434832839120031376260263469294320260550722492566116555721462593435458888153429583442455400800400933764757678955867941913551399040574027116054853798495422961666933065960077735197260680286619174481802517833747236823256418631427144101948301891581361076633148226480630799033867734083209904185335467134034662629263543974627498951824153570798064087395572487613346250243795204052776489102420125602163139061443372338021499573686349543423096149010972084768705861727655221919442888328592180260435993737646614850732846681804419889587899676322747832197800802663929732541037465483060694360114157147542607102900525929001897408095675308221474060503662701641602103586726601186024310050051223066196814199020458512521913259924004303805403985494902857240139117695750922726645960185678639055036861595664679634788652798321841437346142889742662318231588596139649459080301781221991214391263974960824044221974661566021977033038726896966574295016912995404675381846642428257147032646388640740039906965293815530856745248981481929360150302439582233397699278769000441983574588974463460007465625958028047570856016840218713191593086833023116586430334963729153728602160679645649398695481952465489875766324501707270298280546766655697977892576118010665125500022127563925121305103456476682682062753520309909838503650467475975248943247429747562843209853424336621007157365113807593406228936806291209811069451366638647951125215636980479957862407433451763162560233742709133722516282271502035419041898093228576209411542174496933715520365027231164627908118239333336400579718850337255327699283415542583983070797639121308529103300474053379004755138489527602791896524058873770245809503307841998878824774298890066812060050311497207333389670967389483435077261316542044834568053152652026147254191549072294991171485933519234088429695486605462712544572339095524767087430885677606771978158785517334052224997965721531226351119910446418868049283896821840997756026810213080896696854211113568640327558555627305242177418130938477803874528229454934418378278875802665835716234108972704962339822781031811505115298602333345578992031073224236585403999658414689388784182605249949467632026470110944139257422024870016679016892241788255796016684473961078483230654961533322832451701418124874392131648887435460886827025834407175577586772051404755742322326167059706107581958444895975791443417327456168645026767156454048974140836609525887860411014493510851870611224559426032221170217988375134668208910042488274859581339975864235968084378943774052443777365545411115412092029581083256105254564134149450048343064230661867157579505095885867736280584089402222457534033230653890068668872545171909224503403500116781497714638789415477283496743819685097539873499176472021685194186732720462142482358597763850503018675907117842269852335822108047396588492508600934375726488575834573498430581421358001869067626240433176209081356148170877560376906975624405965040194067961626438496432880405566763466420816892925746382119342968177371628408444936887406182478101056041758247405625652509715469478175426332716595918539180714595482426805895124454251041229002480788158319796417388742245143685288490898882132505137678478276228475839396626940830858292753634183448491119927857869637466514717498167966571237101903742484652885666904090972827523380050542782499399752543657815999659851211949319071846580829918884979020999098077108541635531202718177110766141943824446673572223999252431975951908295452200966826354206513145850373559855801427932435158212733054831085307676783071909239834114589270186751079301719947487716732667609795738924726139268577092336778224384535316689773138107991143967057124172663153561820782453743327497272711576397276542901714513033536292996733984210926597390012430612577144886074969646081900607421275814517290691986365380534544885868208132260939880555006573622514521146821787308071749803442872494402022155775665419590230515231834128269104292159751066204699346902439076304113590931737203362804235514042295202468727425776689875256740083419319142604644030543749318631213577735815212085425736382426497986002073876702085782184442990920024455885718397392220802570393123387186793754715051671485317673848012066949230996443769349660560624658093256049099931135074114746329118469636783743945659746989349484798099499102966878825876150759719772743733500724902421343857698962543132254081403558292364376267771040155536394302661779307247562933316803918685515852777892218635279886574683088032580952020506740132821664420237410416060715959024391589549583956589373208499951722649429555548561806552359735611614007636083776674386549948636534583817289451480774618114938967618109933123985759367434356193045924149451047877416827854648359070867797369020985891079687407819165346731322979232622788931917812185782976174401608071595564078211557515006234808469114845455063946151418438100006201483994895522088601216333473468010525402667768239776085792550626243621172062608147332105182947967139565915120385798066745897197795016407801427786617620564849142843981185536704874892892913012439116817061015824114954172177955317379515629765218934908591893961166775075222303227428987759461230253184908256649405135830612719896103887987391707925469064295459333317528017373687070421643047384877017792652050497930620799147722683020114347929473188580787355794432323021227580236532925649090481934072563722852473559248370963985627862544312947008221962114549539973779358298091906612434924079472072575372534739592960206763603253310641753627010229072701286871058052114306661947037433466976567632463607434042500442423805555339569287951251035130833977224451264732131332511133757407052727118886368972927663524418852476711555467366414462177598402561814344609991833936169956613506141099984768256060097671801287573473765055493121708441937706316458378219520453209071893396552925556985537160645468657708769004500558826091443149378975282708769820310824487871637300422307501158321656934693627627641197580882002465721678924312690674225736351010391217951768776803975419294424774370471209232321837820538516691197644418828654495982526263658367717183690607218723874391450142086618235065322102747318046184145591070040122607536011161041018972034626419812298684620044142470288041781773876510556851453888435948678979792495923355363453340317258306267737254716685870589167803905271961122602864063078829327324844326241572380376459728338273330301461392132030538836817023641390535736358438722234075841000724162193836206161399693406313496271137694825211739619321331429217908473489550432749253846022134762683602587329532206428349330808109371034553272622575627961666303119094000704690917682525341294538711983652771734930969076181058043267431256077359745661050614940429426750101530452474315730989970011330274763912678551608992931974145043346358935327229762869066089015103883606789272762841658695336536361826982352174904403012824079760213803645037609873438904152247607248844205326265171152986611370427244559780880161353938350920326678256188838254370202557053092712782366528642892670511314407350135288251235790988528087975236017424344839644765784363680074964259174644544548942056829102524113171871542255452340802956520808155704896244313810032713927003133135181560288560231955463471190460143393198636656517778372081251535541826814748232784192511886278494313055451442825457876536781417572947196796035264672795622167588607799535543172521629777627703263064916944496678734820433537245503132080049305852889105334315638248406178313314259535160002742302430273952537084539971037287932559534910506688218549994269302099576613006984017848386674081037141571164673604017637557511920164025448521840742593128314536902464164375463645312250039461646143110245817566370450304459358244462325234271589882973049069696270099565013031258084470871825717435842933968152594285585639668951702235172548319861931074089394278182583834283820873749554743011004835574809408227599590902572079616421468302322124585822077972834102950164699767975237541732744160545308214397424541908900846516594831212499902600262491793539537089223542266208370335550144419333598344271979760844480108150750223783740776649375917404584363702297552945747581503568590119435814946138273961195351122054486602769122287577096636586617696175553545252790156900500555147421829633937592978978939134951101809559890140547787592818357951994284579290336963127963470054358571716617174706711047841054726515206525243227927015560785265148007313776385010910373624544682184336272427533783400934125268190492074935952428870885234121944850940305611246476024677299245426230645133161373774725415478754784340931720249699407408441101307174913838747591136830519199078621618618305383371643444082209475317487038766475869675707790690219306661815538971814177749652331605147471502763317964795620695145375759732691982122386611476435471201663173466984959788647123598630391291158824484962235518720305610407553222891987034135864765023862311631100008772383107270392718446126057600726602918958329566651202365034135571531628208942804424753468872819499097978349762921358955696082387791070132102056174955335130301466739948264609937137204560603703172383069279336685893975167729237709540559516801479514576800111080648237350490352268188810362479150274570556476797220977686780982939126314349257604722968727745660745017852248973211832284827074329008477813019187490806690582828234860677314354538779949364833804030560603194988727751606806778307471922605285370500275497164559378812547444768656497563253945881110458820654280806061879040658894043916584112944054656475417409885670501366813569458377994723728246034541734730906226410970603006283922063800937230714503501697093718761328381721104326231022074190200374987291921518115827830531094845572228467973439193457512387933200243991828517953047003337720478791106486357490545492475767188432722753375006335309394959238300242629945654787757583220641344713359376134193606176459146572198084243800197031007567585132313980605792858397823712472587391452822594610465421598515457210983913688950562593317287192000049366331233280763436165834551763735605632371645202573843261856605624943203210843664685059270444154065441153226311776477950011404832329501874892493229051936136402355502774210137969815010552651390078967897290234668436006478369264620064767917590764771565719813293949329862710115068866894025289829214763708945121273911294433377965696304272154126397331612508082515367993808035933573117811915306219503742535631579401424758833923318903821125141388749875552607685172894606923506950414402933129725028998618325734142642178329770080930705602931449425601271332478890177554262317924868780114280246678992460406204069739501196886027312049406681819863317477370285714211461501869253839868838901626599945560949365395601317898963247890239249823438265760765777441434778650592493646118602892758725576391763918029469061903678931620049363800895285429932218944835955175136520377508709482299931673344566698340714785252810765380766533537571578117169222351553648507053097777045633104179813350312622160173407897042959154367528836667479536946874181387762384511869148450534625585900772517228311536591128589353817138074199447087855932256132845311340944484216350893034831821629294195941444303227554323206377890315666101220157293220086507761271461194920557738577442175284415503968594895620386667739339968040166659470102998346527128830075729767408417762777021698806512749331321336613707758198696483244124209560167912615160335615026369560931130171516232272020057830021222713430578415315433463427632227033423739516261441083805735995719575783432668159177634416681832401182637786943326427172215666997232131471123314733940712608619579997325384264308163828521487618557174796011526533516043439897896023995316160480009649418950772957581156454356891282135743792858702382683991715519976044207476236860813222670580379223916208000020623006522913619468560417947668609281587823480623001973235184725206381675854733489937938748909087088987965216620810883214809123291166727876703687908820440610190964011494222508854894065721458408223015115845135819965308166049841756359945308573537359281536412286259310631423066697657741944525252487964083945038275136847847123612452247637008700632583332247427780092753838980986114686189337503731237482352427652649172824789766127934849092684797895597258084544698694163029913350340111191404509162066011072114626183080051476479283823167761089034937090977897699203848506708992103320825519624841167453561747794187573831748058570267717854985468889145886682995139936236961058194705113502923235787040307314812606341014399608273953564313120131030399320751783233310713580445452614078724056204183639155936367958968221630505706797922593406191355580552252495173738093138227436377193594030045488565462686448491432803327545902777980679504446241463993147320026545225614373628372381639691272143583676551845345196487725207200983982531656783183322104129449264417992139261728006265135285391756573987200861450853306350857333850441977010034991195075257053167477904904148324420975218422025631665449257677766146770372379889068932488553815221985584928676870891127610835692588412849600631763830996200096291269713290344998059388336095087645184269477631907444502850102926155189143966820601564985140295459649406136318586610353899755021659024720698299654058760180756236930451577064174919135637223064734158998755753295494209046681277670832781149475266092869705025373125505072118938646692448223579908176189288677878149504880904518154797482018041559962621563408410278218539606641119061209045164615244107363771240359284980261609998304983907131663296300316268309901642977767954904051807275300603574063474244167872975427129193663004791601995948450403864527279323986578905280490775032251293799487598480427248783108122553271443133206468424047135988877139630097415895395090755218788890406348334664447251123814108301474780480626346204056615776571640723830222386442537233111323897821135116060020901035510350012899958463220717401446292392207747572204859827311367509087905869016208749754881005464117058462912548274703773878187761647985966258235072644943657593288964218666615065841478603367044280011363899350912602290334455220334206776414707504752384554095719509451049640842741731492562541062599225762799729148793705062739932769036387064384429513153477200167457472716818692290351096304564398960108780516462946097358881376503914359684219212021983341532893479667750641166473823394147332112233362936802917045735686615122125838799834197824448170263912981714038013455907664348294920730279135544699417290586740172420276478024474530544039173059943119943537189455789865618912175969271624813811972687423162765965928899264859847555560430405754616347136011300597953910043101224567040820964809110238670947939778158944419563570837129235692312368919109648702464562542193565608639951603253038416753937891647522378201426067688232105247499184580354792118153261447378376166513996335019466441511645261167685994922406406818359375118279278660413939770803590681379526523478758447192869997481383675710785184865853756837933628315141763029345518296530152024623353618274397299360612782730251580765921947672828775392029667015432985124304734087330243072579561866641797658973039874529739284172047956508670565363479019775025457572285521137262810068434708332034860131222296607833144975018964972180027298324122798164847839272303292057465669562706350061480438341584618286517941011728075740261409242672162503240309732183111530643705224195164669498254320693825375126433294468490301838425306400060457769933666920460462529568958852633016850929907434533240712320655764919597358331116539684219605597461110978318100414414637374028838256845634512042447942849310076795895519768420912036113476930133412016378471924034567780248142766931351792348182575035622340438799046827633311648595043050143483939841653734872355227827139810252863836485972391953089737884464222217330144252713611565216490349693033132481246341623296335663516710475112397633867394873918263560509446485121536454665561814958367702755745633570610324434530667334901339151101080179793956326183797042590803116189919244637702462604933553956342921842180088688089454958325137678884722970828589353469156838728566436885293474589263301059530755074029254211224647217666995333313574777717663010558988268377245988147357463349709632060973834311912657604943721066945950815310547595190511660072835459192920591329613583058480487446793468680098875862988900107210218929734661086613148123390528711524139358985438788633853140521798204210137012606218201427028630603620729722796869409980966288335877823908227594114567342567619724865737928182218779830977407123149924214300878200834606399600789073426167319534058967483523348025951793169547209545186623667244712240333317166836087415064245136851339821080289610876293460115435024223093928971802370030462684648087002651404350073937364453815864768357913950782819446517884126071672959296967193666105643166423598548833348670645904719270601521086297778229716144130252345339312848413844793026636443101111766010688913422233773036166451210650362477472936332936005129784355825142365191487927117228057616788468457703119042258784601536724919926679552800427406896265926900304355523025902040437821102674748133615623766858115215717367950486062604220113943568262144149390631676494621406962976355854672382446599596880582472976680640203418403411931258811022312219306370345924190318577722806398573084102316897550596457288433111674532818738424816209295484917110911990158031938800522506051218544141068404123408318549994599443558938717161234145476006767681797937914713083762344736511883933774818807682676984771791967424529603300046743969435988356518969302517722568319893553592279048270889179546797206739935229614756948115440943932553883709366091791667914641166370881613758299883252157444567363404326164761522043843212418040446597411308793629987210105114936004942459327911021364795644320458332977773939902137473167635132406161993375096454994139323637675741374187885474449506566954806756455318724847352012948893158813999403852488930316037759037054487724760393416469646886970605129963575649473531266451838411130683064595893104932109716794200571538192863832042590171375025943789488552211242410308932703411442910252793604707645409954992494436429031452800094489339333344586059851228232007617817076132265511636819856163397624765250155170571515648159020669769468700404933681918744833222509040698251716028939940442161541838719317848027523220437461127932003054578076486630293922639053978294959443463312168454171974924090805899852160001287400739368246511135960965029237394628115171660894773021758304492074646932243052186880301533766312118440344314383440497022254935203091017441825832888687384690184144597035229656391929373619316468611274024944790506523668775998465328413934617162928050242619436033783122702304546496118628737033107051765905309265714565482372632040210393424742563167129995152681307478541262719563043981951180123952743758808472612610621552763002329472250822821849445688094614954295213544312889919023257299426421032130645153574675520140910235540172403581987740021878651286883320622957791131299386677068589626149110951447288311862131776002917769335876003451805691659854432599099331540377567675615677547959107970982681539352770268076639151582393640045804627769042859569898052131984028104502937036973644128377978123560516814533522158428342954926929208461886457801111380742584187844724263479472985721457273361190267873585028747196852524342618114358955955213407318382292285216177985515132218896724399478357396864037486038388817763473297397840414627218303267447595905492772867899085687079672825429578692612749043010724050525180402696950053526755985242624361799027390254539703521333661459393855620805868989844382155931600009673274103670485976060355666220586021277687202597875223488195042670496279556933792908679508568981209876940496639784523925715625398151656692633784550998950568652911132157994327642108389442562099560123730554827248758432884700059876744493805013898782227527287199004801186324932887840524371838113087616178098814587185999657104917991313892018005390987220629401166312200978735826768753887062919329760434030177439355507598941183574297641660863124807987424034156797661054552782773719195262252873040865101521345802636818104613800364646626750880775000152784576794092007952784513938696914010772721767801781040877256806274374391624029164311421932289535309428532643586694189099455062619869223992199593414015558177163804743026606152119831565182212070921102591202909351927057173376996298722157252329880670649366114338548559316411686587796405816883351637625772054197547377081409798464195044807949580017115042586427415427028387097228715358901775989311831534043595484103014885902239540465438086087351649646964825829093150287011381274123124985847894469675565115578968425786848435670654477047490861644808856705680146183769227088933841153382254864225863449886500974940042002416571115224807214009050915089417466213650626476703312029323122431434774013348350625504588048340559567173581166262241054987824246622741601120750778350243934489410312791432122110049139645566608514240357198776476105434657429038369025723939574436445660655039387741650893834617982606465587744459285587208270389557723656731284088789196399722433237202961417128960368622645071583261615790223538089029360468595497799998708513856654797471564637999491460575213235212446349847652475210463673765664753847659648300085777129933326606150484446672928243143812839446191131577537000295187247370600221904957947772927438435990909464242968111508784586345359827082749768463750209271363792370551845879142416839602617743972884121818045781532213815894035435198016406607710076977872180343133968975996254341552549282600078383326429932345201442311200417423831116316280814268059391713136905223904322467278399729430964531385804204687645271139067228549402864129253198086970551670167826533972155609499683561723096135175483276887141952677079093019423161149275879173120376253289712184594736966174418247917016833260877072282335895093442486456350146985757686181432507137630282356150698143928638474342050868371345292470842031360796028092458326322237139315981402265243042495696709692302089465872633496513022107936073696465238058308560942392631446888578879041777691858456856780601499036115617317249707533347038311876920506264158180102242801696585948086748002204864700378145922400274731437419623277584255543617073756141640703100054116337292557211092100525665815447482231850029103692600571683900208475469864972238469236805450004103408664099243717009712446409856857024750361006099909969572512578554773064099430020133563034067326568134446529323750137948175588382259538499811289350896561751700846610851748196153129009856853034076416686264645211948529826518788535383382944879945755217334013633999587508691900455370159611673472118098970758638043442402134031157331758323449674061622522458317772012806656081846667277691688027459018372381645627643633882301106725256098090619241631869106667697597188318033005110646024373819484778723693767201649153331182731494637222307065328184478410023389616118302245605004907921951010361431264911000131317221997365513749970298034145551576900943603936470380448500341113626499006134793563056432811691723135937742737840817571150995077041604792032504041155224506473681456381610364483220641292726402558215403560735427249553770733622608459361370557238392573290421813683157041244613225227842949375765815829835616714536239876106304765170668611181271928352604078352983791441483990137594761707385966670119457430395069558796141039459658245563039624348725029496988577724419589024870492584017655179276394521843899982538175011927597128620773186794389301259147181662149755290944943686389572826894066731563466785946505154313883652367395577368319941185301920668916145753446415368642618918355081460534048178798669373503364286936706443112424615997998376649159031636637924848548411881457098430798493037317174450452255382110624851052246925889858797574212470622685207368993649287046689273620881974588184433381803281312755770818849970886889149921051329729260934438155726872603800994610288716012999986075445545697399819259066105409126155921315590999591713031236077946586019086929779774066870640698037939325664546332440144759863611496923568776513221880267082855816216682799074775965895157552383818066036623099251725630300872022536221383067675712508579452619753716543702794740297599071521674475068658592156909417656149231130501040656156304921410059612764833811772172159306462295003392867723753395418639458805298136409801555407052676565002833867016733276107900657860792508424565489450116304559295435083808328523209285939605714083329006443284158848626410336407894162777653070796720106206447639572810569240455067045840218012590546182655795689050133932400377132414819447963500093779193998623953386660467626951869952979586013588043937647030369283514987062915030851003184949334668444972914683348577647945682536104268317114580083063239544361143523160412115965803384106798480295854063557045895411246647073861869663963018378732635900099487589890728265658900356703332428562420188532467082441879656030094120025931585226555172020327381506054582112443344607115275176130040058957747014122903094514065195494670049537019084435674737678963976080713487897746052301031435105517985352308500400235422745517650244221043929024752055430305593258500332361006086636080444766602153997744603574149027773668528409822526511938157933399708609328667402972799489773063517902941547738260926776817490661795555505036987493667064831775656901648976175655492824266077458346999443186308793033013424526590342667106246926393101161311781844624000786082191528734089891892820627593170906466456826047772352475730665724616597142658325753579482110187858995311138976540522532506415197314090621942545541578847182839176411857391579430468416990648433940224020753198256230424654913956890140634307508880188460439042758793864092076472359639842693643430228867378380607717323850050389885109492626690440644775392644820682329705536156406998417552558915543038939800984304702848072226030957643872994672042898901346511973260390877603613318618893662239201395030448303926401007338027384636835934938572532017908177064180480260722949518209668547468559473489935086501686893679430047736085656518159717797243129482559204673624686974527342032903039761851156221522943148095299901412193909001919483645338758225957507069317430504667157107259829434135191180837711054477575236911342224021908844526956481316763384898381276346387967178685596224529918722773185487418827631369419200711390586894113357078353241645450343240761105495534433695243197347670677657742827027992726545279846392487684197236518779526584517666283803568917165031834806844761748446704678914950650675368985787441138403851694076464554585196560983304626135460612781503984137457559754274094519265321833966963285488593293293877512409133838592880113199433841670188151167196276515809978293098796377012349611602284378827664403262612175352791299231268783474590953964431276672642411800168685186383991122000761574819249997275730664209312675309565883572252596016702577749365869225090426221666713705768670745331415773653803715374792381430538260367827210346666429438975961822504012226274276348536305608365068999424602438921859707000830597300248951490619425819013720649784275665078750577679375911796851158058199400524170407167158348274964900249171414334526152584379200695665572670212281143619198046539971965540698484730062827288687168811982085458141868765243972002870841305536822118841621138216623513641238100805351487592494254087937600549509143588869121032496473011013663783711929821319095244340600847957820222944383064133610790515799167950328774667978458662035624443308921716299582827222095295663229803011073426525869770278027003031625396335981717826087758857276760578262809534037579308129866685316827612221126132605088112617102313258395401313139790449681405996011312871256403665942561036702322316212883717486175327666097453318729837196525006411781775149262527890121450732126571850950628769231847783520122750032879027029359138238673068967674716101562329514931484058386604861392099031552622437023984504691409693851123490884461656944167619658356080816199512969727825349605018289818091675394746958892286230106871068311995630345378187583631366266100141686202398960656313876712905701418788017983675122228290135897705970389656789594536914886080570489563619165609040436783148460778783554412827210568062896537438492987846843901915788262871940889798828061804904336282148724973863802776249543077852403895278038427359595801309065592531157126846363830068575327222166216040470418093410677225860336745489409382931228268429998919810893155557260605843687908621977391692592884720110357167966718805468588255063746603964722842143248230420567322113758343270642937212388224147905637438625904610142891687419503861813576448633864529590066542063975756159258342557976481355635046730743942389931298530562224273551364798807646124441756770177583584049491378231305556069372776871431041818699688023439106453363725733242305200897786278097884369043525450193543381633128948649357168800433541999584516261299298499076156186073550283627636133471646601130785812714536886743323835369527332263147744841627895520801823085557903555277686571120983669449041635879990104859924783421361279647369114179724389290999662300801547524322564189508480416795140782162240882491652725791370660624141049149935026909549249970727842504480511856134695398854949722999367358477392107658700627260338681319636741511174542946248535953876598119897703546123149613587203968246130802723550590868950259068621463831888094749538017254827540226951518142617004179302888304430899003056987019983030921698208785175574943115099655601227240561675998307379176363310673841981096275471452669053347805972855532298393242168763331853155406587191932077924664145174808223524555721493685257062687281979024115692056152966983721836168525114122481155364645246823228014162870914924122885126069093602047363209920177927321732452272316174521849218389077348409547123511532684725990630427467307378742734170384238993489668434289083143527618357737674082076756240418615993856038961344077486240039264901780463327948381190752138381940371380147449494885645232613537321901941011505020716439217499119387391373378403921138659588586323775323045949039457686385859600366907372357179146332793474882722659634320983211593324955635624682994684924158913991717975065532772123626053492788405994517774866789853523345552576770644652255798788582172835271711137043274654821806804475245836636191378514152611513800120495580046983352567163245008601189979637763904885181336372406255700898611677065972696394955724467469172270236772340703669744872751511451348104707613051352097604734312454392606019548885831753625503571406171732153626730833001296402454853414011523744682468904263431604386129152347515126048930773520855357941478408407886008686110883059720311669467829015262052900908831495898466005762190305707158932633786772303993793409888188918474221269686904441196121644379109898880209657275685156676721706444545527219088316195127730139886771479165182508562814020066699516222314817722607921830978312503126343634570655216263303706913984139354384232433012741997951159152750269927005377367698358685922492009938554065633515249990400287120511067132007138365184195991403878329758064504562499384910729573752979956389075234014020431653200076475815166710450525209708138245279995076816122002278817014571654553712019662438263180858346565674326745780688942496916463295348109258345546962084802687835176677073254225314039428325058393262492477453028475070665323161818716345439940592039302886194244612741687287442220725272089403979215018339884684400296417610126243173453823326899686005229463096355687692493495744182940955483916631357944791941432399109811835686281977748580409640881018175656647895243226067578101784882744537676788831327751696776343736996556088269556442535472387124046960805277499456556949454639639978407804164051912138189054451775623566588630311706327127198573377158813412925017676938779708715838029412402347352583296574812621675080150796699441084415537672553983713619580123436969361168978650370138121660037747525659762219178744492098908627016062061208727347612622913476794242101193750885166900935468809764908928682470334061476301362962938689845507135245241990171033596738428776174777201217321879530961513325517530045088121110758651681694768829626174071380869416538068184442882777433822077151628564610782938682934977210882353684479985046607231685975845478317235906091868442448250777246818479835536629338720810288671128346873185001937648016569784068838609844680069581022160745777127854449080824409606008228472389006747998831446225282575799485667846818393477338494376675711788698440679714647447826319681674078703047458824238944706219237945631358548175153263738168814637265159296415951381281620365715719472302460439385198798242671718778649980506527094678108226494312085200878039033591464153928273775778052266057086208354187608494664112059315366960890597038267254125732111387061377584500335387679294590028756725480943563169800529047256151773998625087798043847780837277576614436320135539475036214569548128405027749142926797977437762932782121924884796229888989334045932742585912805646970734807598565349766191231792074599135741038410041276506275410938704037546250182969701589080053281364272605587562411578632152565305907920908918425299493418395914780607003145438794017392988421451569474863933758027556773443525382671464254184642257907364104291815597657210558114334987405025111705079270069139917975636434908237221827774771584797669350481004699489099355822563835970691028308822635566613579684829390334650172477584358896421162550515685527320266756216868047819763043779915410710127643000746609636410448179333717123757034802035511850918004191830197695022098351846388746225535750275507155775694386645136464960581824750414754507221145983200116315931529313419400235890063712793853361643138616292913519174533595123149512494105447578691730726881727252700518666354438703380031836432038685739076718609984241338348977389574535952782137448474762769839320097032528721887783324128077459064373980042799115901484937413194528638287530575170518084530064640647899425538172391935290759839582243700231121228087930686920714621122567137556415657639688026896766984348728138943673272630490006801094925167570648754937471217926549104895308161535060676728284505534469403914338772831338493268930804092262086474510734451036904819738226537494454923292766646732856085178908911777075660145340484454137828628365012879456418105477002871331115322740931376869858147135453592385546520010467539086562641780155396639084983569111701093785827918083519802544598993780876948343275392288459697933571878429670197024955180545723160997573429318001256374188652068862426674494908269176216040479935643999395331909830820567337426157657236044715443373285218159219582048326537475902647215264398196531938395171236525689984571870296348741804758933698282865809651306188962874369367285800785799750816521139400460209177057090313361343600471024961183543106762143690118988268697772599101687855889945665162430789741750485684162587099632891822032508066332236441616333093943845051641433626820983546085810364805137086270932868708894987399496429426520692921704923930034498678156449097792807855472025543870015224780468009910317521451300595805691697920255318174137728999336578120264654603609936565326162484471594089636880663277905500512159855693374301905636947117641205874658881436734899679042973877295555124993913240769598342884812006765023095705770054475917584732250159122593846243648699723859147942304581602561344048962616511282631302757713135997596920230169618668355443044963822467857111515079947954371235681230583502587546955580351695412234855141766671137503086566161110021667043372470608576989524544513080374004475619049161456985335000130185622210331344179540061347417602245434649848129288255958130463388335524439299358435908355404438925566221424971309294173486907060599397207595350374431498967967749516041922137643061129057008742660317862046652599774406037302582864962327430670613499369002990175491197185422474815480080061435563569252032875331008963084460219587921448041156832120038501789086773518744853979030898202032897814091052711272533758492575371066362350225656549757399430534804359644720366970963305796112747986824805547733485072025955357664164946475546371742131460649170365385020337796908202753352817046825984224812228699238599899635432001881157138035586459747128632612530369155197022992903131393180958850619495608245717895061285458040135262618192046109988279231390244629867754773555417846055336647937809429042876820453417523649927599697388566059868847167608561664567295232495326589906237527099003942612358077013370081912900318764031137967045511265553467688748709156153647669486958125021774357292687423120609102615630935952030362190369140206425321386228266610939550824030321024489304331051588599963755707211508669720715518354271402743071203768354829005751446337298054102294641598007924965910387326803149267913353691604534321575530408626581116943401130312172449699614714328777863913951982574675212001367221910061920378762728951218855748100852892905345252172845439715438857557200599492182961120324324328149258036060924234844870334564503670994436020795838812440347051821498581060241902944001965200130613226055074271022471250976152096507064765310944784846842075520016881838045732900038623718816528531619968916422611193061515448244314001905599099421409340295080403397651462851832437530065925836546392784077471047337687564774282634567875680323924103018525071959694668725992183401529533630119788706648155648166340864911045187985669967346131704019517461336246550444123942407413629736930372667341742241470278518693153970584049866501916139154963320471655201482105714764069241904200709501936316631120955354749510492181101665214110944718085071317814648365269111606561572281500071569333747215208495165070139137934198014121595389021711495924881088100321730119821308512461848365637266799082047773657255598160825219996199329974443421865226736862725816432255520403288974862064978686705573683272513522438720380874806512589060213906938908039597711828660378325777731311028462043273221664979005491164126808356020471334323681389270500347768762717745726366793364310704780532009792455670795809143132102099284842445591364692659492432534804717077007440351640100172262047521786770337256152077539145785552320801874050830501506391261765434727119477563031878167795117002713045759224918203979659610030225856725747669379308128109803558672417756882097715104667336430803502436267231774038322111496155697588416830921250324451483167154349234649236595811516312417252623598888451484286439904192071894610160326551263528983022650164092937296152598987377971934156571146046591997426276051936301060039152648061913379834382671193738681167121674976710546100435371144614165842625397987338191958932983164614302657478910272612290222092544484439495468395358444485755899822143533164265710991023356013757967863385355198989117190116945715427513302207350456343024755414170177596581478241210585196419087175718294940851637367704108822550956164172676776088488662667858233823800916786092873452828401171692667353574035612868778676511205171413146434325699510749271324949803721434946222756916137653290701038976362120683958907573779053036401378319309650752254449464802240218832742353835606398485179866468656532520725652903408962929273216931242320699112546353301864236548575885209136971985130429301363013224023561060211275416511302822821929884051800497691736324623134859920680713756158695499435505690391144263713148310718234893447183991422999261432941954459698850527826012792366681108005347476354991518679903755084059815341620754053604586671309933926840362332970331833766932294348607456148823826785596194000215219773320197905518346131914258289944862990362064555849744877974469449325337259390914340705246960684113386614386760798323208724038579286726320970192149609222312609564941007426170380140672934178435180914721708932738315255181462580719376292184773529503203497162466804950383156847822439398412761750197190171204874599669119112259443674531672699149080133242084410872129302092949578266313853951338791276837325975811828465222682459974829050047095621710462966469799206680450036224291967220774601282508719380025360539798413753554046460956453596849645155219535669904026132852977475332316973601693944440010361067342124837420140176751776845838668340413440522679324550047045535236217587705115461473787523525937923848302692362478906722139497097000817590688509322394514480894788806134673326516838609875637307865583075083927361506166455612449606347070539444120177142649682107405633415305279724762185314395830479953797416760234669812391932568269503813071444155853046388291004943673609700359681392522060890651313921415303142011994965043100733795161343965452274307105080513720772462788453712782222967497377819892238976702535028093940506175028128926460471546397876804006683223588055803257514964720515971642535308031061823086120154879586582293865355210731429174462288855273793900152496216755611668391113708295545094279426989553663493442336477194394497102731702706287097601539762912232488136050929477971739197337908952527767149237356861025930741198043495705636895267199722676303108170683163568282831045531563761262409612066680802020381680827967385876948281744104220649059685101909621211348158640666062662413958822005995084704081091430621038350452294009959579502453277621737757827144277138067075574486774486688539949347606657254255266279485160545019624723861754967208001485088807173119100860349001794787359327560892544422551940153308743023938046134201234466194813667500116574982402655579670825320915066657657620235852559252213825380050011998425709811361935369266673021433301101502764008249905330418748887451477653747658731801620767258655464895656923931043359797068477083952639526143579411941874342350819804220014645152794894256293135119975481577407670920814896392945153690720030469670748305085869042219089412147678485821908613676470750635680161742650427437591675873016811453649716041811936435486809861168236423948150928988634055459492893683901748727720700470072276952202703991186717743810540791962848853881076419798095317185091786642617432060364972402346461261771489578427499293608207510944486551635100367396691829712587098775162093426442263690650045477471525491306324460087813182018817545913322519549433023469629941079827117545739452562672852151493213012931197453816891703756761296572212908027416067718135508096562490469825507703289411374491649098883483631389966478324687689828731654908830533835392954475893657361732304534377431358302258621988098246465309578802893919555444292076005562717584759153961103520413704371886825390164792028902027552587000295668454066246464467623558045984151089178422625231111818520254350609099190402094603114772698403846028938712604998778063196577107897769991536212485814281351894256025708456601311996357160064746438560410601238768243273747653004903025382636446145689992613343831360159817598026182286330812544617448015600407990264619094679322365166129428097185992652844728551261010120503123180656401956457733889096218205590602518089047114779532368173069321712127790577523674355249286364972132537941868683015917093205831221835383423884748758778230258630919342207053075693280309496393931757974877020155401208479765584031691215386165031207130407777633449579368253615838667441004859919281895964813524955569010768102854705201197483428327863345691384480505656858398006012968402849425633881989937850010225617260285877229545402012715669482887015541647830923055397196816443571016385101879489995374933654200279177983945660092478804379766126575587659736904080409721597370193482896068779004583687956377015162790987567523521747253195475873675964890613812624190539827199481260753216279096890770799781953199149356072513099544240573851146039528132678714266445985767451732473844179182874725111001360296221390209697224926790234914859679867242141420963366161676009594830745642143738613353895596760242856367732232398704291980741896989985673772772118852175391896247750195354292525869469748057761227403614555554854124156075423002015611295057884208257427127733657852647319859097775274631868421400663825556927449140424938373968341511104723459112801145203402925435658458923021886562608195906754742336900628773360713297839596461737866224317306483642021456494653018714726343165602608956976496840278008057985417931153537865415799464867850154611187190399667122520956317262378089947569139556721277221525891540389662367970266666360880819128282309703683758433788082670289999297739812472089654701851384030687186585307347922253719910042871170651870797120196533614597675770915666240208534287800699867089081480092731845640796401173141095914433650045823447973295505491751266624115722239301649037259820761935906023016020350020272826946804055182859649137126922249314158853410582825545022235905445743003628056205889581388069052806126032528469489180779712983589731363068037368686761525602597825944093189575890960141135915602884091535243600748562533156188461968549641006591013663233842636657053829757664432568801982565951519263450539418601934510427770585595553741424726819518150797066722761535040355183945220915803310709341975587349909064151737412577173427635451921566144390244750987284526053823989628146554807344895648756659014309274014012490538613139860733422782776583946245176060757052730066853247631159658277803075642554355728509702438743900989809017026151338190555451981764443431623440548749655774871680342012853567347126386261763150953871356524151345183854439945392375652938803337639138593794904085266454299546753743125091695901778860108050574637812237970580462184076148232107786762766707957145768568179953220178330781664220908494449477155183594942928417296737191912885972879098335897030399805447074099471165498944507175391708941754270172254428937556817659057991487717544728644731151951089745164523935416647576930379928268334381080643148958901559559148500876213811396638953152089805649051379410440628836211580930469419053531365342826289663522485361727734570974822358121555294505836458951641822812192748521652170778010941691617432606157756203590502236882223668956151539616217258368820443419026156544119466145200628272980956559020037831266854583655204071037579179234796933500561272362248063055260757616924517867038131944840605738918727031884562319339281050023253684695703843877480536639282142799476455834410871102172778080524647277499958640775600979268115849389769557908781084116569912705362124992420762503284852592467778867268674603642632168527215630798706037813872715212342155115045550686447997995056938569633996671345940427806915376554687799166808882668111972752289316956970977074627752755028448819072883606505400338144641324747030344367322451069900807135460542014938754442357537754574587842550033047292762214595446494827613781529190430366780983746449996265260889670452125616875437255769964117503485518222811380527914205427340460524211226809207270414222422209306634024749949759464985638976010204855766610803210458993993077699028299987053398009705472579921502815741635235411997606922915559550501498868733822085295892109618272983358364364086361845052960970851810508423657416298178473396663047695875548689157100750778488778968990922633628360039799669971022924334468027686651787551620894572129818388756572558390241114398723346279187427531957132673389091734760405038550084868149946097948128572088251697477867058837596222456786617117361202753873379090247829645453130245103306516730051609944797425700518098306118782339033861123179534822722806803261508496667848807071802182877895542043884523035705470573714285500319224853286528701711384594252647064743997917056290026068751935142516872030278483456288004897891691248476405583886400746100481407720710694294002201246541111540964695861169267646328667588442154263973675937414373361921045349982366625182351920141562670100876890804695715833448808914196180710179618786981856650162793894834120361660305648860019120517815036150637142756972412562675369298833266360767171957886043873175207916462412637559317734942052983701468669008784629392660574009864684790221659932170830251249587772502646997931498750899870465433435270020673774927087444895739008653830064482644150843024736885414386490878737026984086012680319553687221097086922669493654767362756971394411974610899148312892995124963322070247413280924660568108546809055389584455991209988850251053409353823808824424334600624671969956470110749575038031346537033003451727414835144056546508764638724385981436106004176469001570889503112941728839721440795649955411263722943369532131444313004406213938707856603935468451100456331659642182384188785857483340744570619957863964502580441822934323767777550188648183057999060943626103505960838432928196405783618077818516810060342790233809596481466716147257393152135591798717136903633517606148357486885659009851880980520381032965175166431839815560005713166453801158654433988535510204807569227981041547280625854084056830699677075976174769990543222753244145881532750848174790998137984246749958322724665038932050471663769554449797334133095816151606999115110737909491832008333954455295015417695282513785142854627412086775134617883831643869705007217195216163241760247365941488774990290384062453581639133286349514076741182376804925541709635904515891275457499057385294156229981576499218195115387142208622056201732017682589326873243677094433933284010496436249186064474247237696396871120633054792786932575608684057815646049116959064069987872619009955565684782691663230351485751448982551239066448896992003741976871853220322878872618847860540647453481403328323304654081244068482569370028529651893555958579137394240921936060817636910115585073511397270620637359604330651677478706287743424732537127265142178448114223404861350411331483419243531083628973185135420089675291217057983645579546110898672256092076172507088231774134747712226536654503648982073983063211606102955006565073918621220424142311447370286007754982693464301680703042621084326855775054594107897986691143849996270510168875269873913807702392331266593145530404460732033196202038250085253965201328263588665534930635037271219128412688463836070506700142583534414568197903776673628780336026078216537698141691058935066655924444037419205725593290966155589958807644091971273667283891714527974070927173898583843153501774974022444602827536980449268220483126529456910807763968100775780622288684730730130416951743981650710411424192951382969998664690648366743116286374050455197056393013173624556309328015285330409812087452270073364409687403597193825286041876194913361705631584918568414912912132995180484955453524775296342749477460869248366666018352284766442552077600085643278990719793143498574980144827841850577223478202009581318672526111309975628700716683300319139294992854542765331394307937651491397570916161361104436497942218788120925766924291800082260250706364519004709766135918285548651983659614261518319329530960993250297436812099797920289906770460976448160806271538198356093634228962742798310037011123976896268635344641547198063317570976643631298509363618347150690207800972994948863752914342542805298967281332332172584155072609034258103105860154484776862211363386834535273606569266433266448259073969875769730063555520143478343752415069531789139727115311004624706852249755991987969595541369363789681488871997615913935198011313218934425059000790278496608754588765508662398946320896427310205409358359152712170033415025651403241051619623338076816306685134955143259034716577203714909954192780098382685883765143534054102639668137308045079859157404448901474446619550138476324617322641168421846653471807564388420869398879463575506150164767231365346430562282370049911371448389534065707454073894267565868108062363806501145734882756155729989636629358638376484467887453252180440997061779876108852458002653577218386028522896966094375818396374066714623513651684912247668254936285568667868740053290461809261975954497128466439969770108646745843129595541050460683531292631858390904980811033116863426936514918120711822119881797591852758670317743480221075866662216552390379608532958237731559815255706185234789054907652636576224618531420856507513903439108557600048084843984056072215815988143085849844685040075646876179688929000109932003353487320280372493726996562551195173403343826880482061936891958625268794618497665326497498387445707090097185945633115475201581862790961167603390331521609304673785116701580296829621468464750527103348794082470422978072944372990066798689284148005049359259438663855658755190759587977731306748481561865281788291318814553715849644102621254769495911068186629885426578047038705054070485076218960504597548307232359536778137899572538294352989025287829543924761643420238841929995308694014046167173289758187806063733107551897354032475799242096475888906212219283861587993930122372548197523243992484520368394913085870576097110892319398588528207536768904322389250160347695074180165476320713027612435668730617228320252512609862968202655428722999630753630639261581109327200441946236005884132809849993893767956738476572815788932844239717322661926847907898245140201131706322585548897355554645810995001545863220492627466607696317600646292498560884758535310133060692228104147544455421306548324831775496577989845773826329253004756773906899917691126312789059902335578500390347258546952658536527891401846645125324523892619740704128126414785441317432987083661190959410248077569488629501564323845507689172811857140068090940573892915724952853947708845542673366755250609056088759173616646561218751790972758908613947914552120947632610517086844878301725503806206116084649886683090136587254093192944688611819696526867944192973256898009314243843203318497099725217188955939916170889739184710785258315734678314687642993217345956666645763386188675376969444666001972789766264635227998241418245308742413198410050006539245894815467952909129411458246409405431418065800607532147569371757406040674682560815942688423180109761182803172858276771405184285234854065278409539064896309701054840470251738381868614636940651692720127096719281910941432094132292283982609238581925555290126139429185141598623150711949953255564823911718573070320001681641396454434083922813621207174144885545074737819401689083312915359785317018418314747176902350988622797039822856543736556399722502643085987082629893343198767422900618289003203115150097707805540649336386191321431040827557605487899917487842106004498165103917381617779721705014156526307594362625055200176275816203674479698208325763268144238889796850389153925145570084210975768379091376778392156192944995450592295015510403555542497992286753445197027898340205321933747460137202697941283151788413819657825425564374849350386948573478085184627680568480184238734133619684617637971424965225572007988258914051464652747102375288382883487409592578510783533692057501767244106936239616439405513556522302541759528359539582539407165912280085612269418062374540373004325172465043018263252735577215728682937510353437259178385694126126237117443636414421213651767004372542535258085568268327175711779026014239363535360740338722625340974888258306054983222930355163397478506181535157696287585240586512235991861376318251822594672886561385883909252813976748669086538871412943535800726019575096281453427958355286719182728891853033746210103409320533661303456636752844863627958785102459711631488691560813859004015568178006679527924115187722307190631254478150820275605867836007337484591695686482735860618426200969622346816622355063302788967200766602093094856418609433588081261362759688056187415606158201258391966117260804895466331035670501844083324337763464957860205291405201632993863186103355134908944233322599428975557856134234334480835719720007998786169721573438513143902338201910530665091605752144463996834479661420413576854345735695538841448267932731347919639319036290949787822527264721760507135596984716901852876210624210911169027920430334324826080163704713881922284697462898071371777986398382213688513468299653724520869755820270574068524738926598711082437521421270423717462283680626624161880402602469395072300171179673039321091678555325042364240036069224899323398970796102986014702616573637025479939714981150441625099950438417194982193130948394304607530399745176411772166190540826087964649692143053929754319002877136917544499997146689047291329522233221879104524370339717734942208708191696098040454153544050864889934836532832589334362090957609341667985792840508432541339943758132883217617949012768469719275940899756836325735576352146059900733168395385865090819556838973588872022556296018691748255473803214625647032501901670597434576726130615308946181188747900975610595642294305391583725835021794473613408059422178910963007554971089350722326719739951409071431415958225672304478243177934051009758343042806686131949928933701223506979942080785910916604944088078512510620597053531137791313517758908914970292133363114427197239619127795585660520874008055023571696740522469674280605534658013239425933490866424816613383526402015123776321781963208866969043180768629440472109083484289910915347757639006765236545175557978723217734645469170781179368853467529699180964945717427335097103445070764210821812171522109909889879774869875846568668147222255433636020996267279498648275081437317019620362371726803620893892288305896402731010953710901103332285624203773652580084998845276340981137448395558001218890285946362878841488805207654541766448763406222295993460024407978671508317933913476875305254603160308033664190228680217795309250445510033578480626803660053499730497662315602072535810297297318246325498371907676826586547701545896639369518473423527322704642380824946588581658689879432582376245741325343044617950426930496851153354514260794069070543385880198083636925844586495085013355835382680507294511219355528704767695826299343560856100568399183007455081917522620784103693207922365599860510106976548230634697955583542887611764995401863897328220902071178246940532758089151481819979417006050750680024915333839976457571397172970249634976905493974165008538658877325061676120916705988661092559578526645675831804178102875714490440858967332328945867629770427229853962217649411004127220486519925953549607785230907330460431631400594342832258745488040554424026043935213845173947356476304882398773003152721296725341595887171102125468518749528072364073608936394914098531788390086661755775635606161792081210961585982537068321230133883748531983170984276277499612606009008563862916855343494385259211770928552874903222150728713685946719327194904752092596245511679746173836440182231360462309404110722880408255325732879560230900996925500231957568977469237417896990973664115116803575984600260825867791697716239352518834176917614223934879924675041108491349651532414343411563750153487266715264158786758006682230234796163973385124655267310863948690483955126220284087426018257018064577707736755020084535776613613690354093363792718437774532920094704395031391028439528411983283450355897828429767387186000427380038679760871232044938154717756994455511676762364848955126085244700099412443120704577617608126608163118035876517419009175552755063323508521211081063828497096416220973215606088129542474930630020468395583686091608959506385043049444556675932083855620997458283481179895299706161412739837508263706362227719922905191421938937447177112954508881633759182321951559960160463596751159140981651532151747990526207939458026511359227555354941817341414725794273106148429149126670737615585187432160622110696247315435383949768232977634599275191949712738785549658874559656182998424726632812635911948175308653714732600563012514674526887464237665283561182731447376977925833363488127686470941085756138619536265941027672158022889619609940961674544330280196507420442034668904174565223158930097841488132989619287607994315883842544639493399179902152302731541342666231725525470486902168562764670805738985259331505300847605221946549339003666281576303857195067496943960831440741990017632172325231508396422383679039390580600589831952365076091634942414687845865022639101571825979579516280640015014187390845530279473713634797516328927422525935406380424802625711919540303817204248147617872101786289602925254671147469607828454447576162908496021843788881563977772586484018633658418220152460162540106579153853555183261402340387057507254429043425769673049441437798366607344444941235393351212926372062727753467504675865940089844120999632662522192311460538533338830640747524071328432796501626793455223815245087544754074800265414607039158381171268613066625909740680111663273083492439563734051695100746556204995971096548358233189575059499003360337888815622436185032518617564294063918136931548206063752433760626019148500759349655863573365204639555915699507051619229071404945212620286975444809074645457186237179656941321259286434020404740295968003383349211035081578692946777343555557458159837303201910260854117845436195472937771966190346744939774612079648892017109931975309486597969576163790731236308248255724278118667323880075179152768285561437111467733483963912443774351716683148147297224311623031292097274912357828569745125267010344680718362582417461379004431896868379436260113168870254011066566818989163329333447697105362213601462472258610875724270279722156106421087244130011761583551134949244884544480756595573821109912019525540251167096140559921757133963310452605689208043007374799298349961515257192774556269683678610606630272201987303912168545446223921051901947378351897590209085235236090686869657288154712739793402668831300587399090086027915618590494667074057756007750221166083025100363102847043178441597806364242841579688538248109229373630189167657828675866452515334130419119561721761728331133187048267213697197735492079003187681235544882820681114080425414306705228394606994843754605441783385148807490535550483417722822052701079926062568786441243634650915757224190987479403296130624959014774459807038658705126230619051873817815721895737189686365535610191014436971189043125048071800693051808605883282268743217781824155785176098716689025456206984557465552672767181838454920013793868712601219005614914394614531698140916624894334580505244225624682821180632761697230124690692056700158838846947389605377535524490194084331816762084063436165506428510815205089840708175990388741107092649556095529276748209579627258012783469047940917973326996568818138785410858676848525429747036749610183173474407405478702486104618235858043458106095384234602412247679739805718886936336907635369716727519625631060950405860017510734436406648497253356064026266020487545743823389412424037679570431140096156440562105798396860470833350580049018311509050173561496537640239260547951104534909112942490834536610182461666929818985383422726800255384125710557183393112525027469590957450202799139046766509523237592477870587458147930943733127731561479079620098712722680976235208735932913235228527758537010436773521127009364492082131223442155749747740010269651014938427875014619231820316281308862441923003879042612112116615604610684500306712640152116822613157077368398606687875606278133976523095949220857154513602832671436822881111964291066121347192817757778261167440419731750099492505264477609462750821689644846361403328137859939866096242618385647432308578277924483962278183534884000232718395046646016247962236078865579497428578509816590979227430040631583256078684655728427995133522394625469179541211549867464063547815389124310929255992663787791556415378467651521156472511581935606601988249833090377921005514057278080710549808021585943553863257178340147563880056573284576360698211640859708813735291753902982980401064177497411879108940537144948236884060293588865251128924143376917015530660073590403889532054863829630193848519459119466028414024394586199950351851630371691486317327105147869544275521714778069268829626941608370404356879316520622807213667255389933035493757542345843991687117837345479306891255414668923512966258113855125061417077124824296955841869575201401751849075616238716499073823070195526384720685856625290419340375921068681442812601963276212493614914007576654862982016108450454606231946956019714948401659663350278798503539624036304139099380655279343666014951978951473574406339617755883293458006541446539489975979630522006521812879981879884144990685449086576025055271118252245768092929573513129767152145470978714736722484307517809031680206988082545295730714344112187565192643455083961296306308106316638226759428295368991693441833485843555421989043025111002340576059649224764151549500346924688201993895566475559175735811811493566558486402451539251099694736925834111815032065163802826027567679893091692929103573134447137381892224045364394221276750277142745537359277744979407484969151924511397380645323688843650780734341336869959695938096773028009362358345397120665751761987768840264901475113128858351012625147709540452268147365011433788477902781670957477213707976901504609387952761101217292805162004439500569762640926133483727227889723315511781732165722110931073204003431933346336114141902852875275896874393496105699823461056824890771955035649797758277288076323419491035072084721075666942707068454122509786795718729814546591118493857927003690262366836022648697412720638100068557880879505076904093656357754042953886638958449728913770517966764663740547416820992036185115714601449550881526885848678744177616445956094333812575230040857813120906454561845216227757088773070047352043394468677811273944705634234763392568742592202561316397368028170877132833542138282437677354134648680630892131398714308938156463593870117627903603128475112006229995360078251431915649294526300963794267173751142670690376893755452464030795654454399790843571879601022940311321870607036294068339812134457234552089625505775815972639526285994099750291412780270527886183941409110804985505471438622298296059386536734797204032271839451415044381281676949218171706355158099175740567239582591575631611005632857801741880260527948753805850571003540254243014355635849447341457781859244412685689187899820447214298600433955032241312531860589011698339835485187712485865190472118983243326986837479090253866202310287789368108822489390288040886139552317089959693375617692096692546785146220008938581425882445217744083032243353326929965284238198030645452560120566079963213122178319403685472550902299194102807289376333177596401129638539183312587688279963213043993261135696408096589081952553801768206582607957350997276950653782212647010230942041871612016940710074134932134293307350075135127099605526844995433676244298291347370388176910494988795714782438910396716085216313083033133191680130383812126213645042682565006918898502646148342309597456872238560658546650183024429735520951774789921951861168091691352676520931275759739746761035479655041170156191510039254121245884917826849584706553497022795318760415943353074516700360868829608779892441918565023692908788244657851934158981041702503386962001808986777012058429168332202368110615005514092828813643404942203769927384092002204831246172357979041812269133171383575147320685083133394924771253532762708940845499374660649423514097814107679145137843556703383480562496770147006506240135713512666427885247897616959129051595164704075372158843536582551878149145301306093662416622921853598180350918054911301894456589338392446710702715436625647130168097239165964100457808276127658562381875210383814748922936969292921925692799917785320244047626555645176374825457388760354079363162082832133306353919611961426035486658447721731795014427766352597075450743104816562042804189921820396733338028021191342903157677816198207839604056175002000737064133928808892326878371357475391587852824713697639348384056032177835007824876146973116409031681927001722129418710375772669991763171059505875511798753648014426610288230301931890668123889822883964926734903167034563628471248649637573460314939310653328201102673359772272909343082489874635013324689830793363312702119732425322566249857461552856433696486874779294370621425724371278622697107782762242879704661520558515898734457323129970892209746630858594481493278358724061812408285648168250714115601065551590318278892287290705715016084477272394131733214193871039085051796925808524434694027453425352558714357458027720829091384581972777203050209310314342345946476271566277048679744549135607487661252052891039296634447928736433758353324980409383082382763890162368357725443088726051557021366441732605362165673118882792679408894410356728087548301361413075327467537376873157945638698467675694910133739236037719612626784579013551339661465578285274555695150273854694355220365421121015244516366960576920143698715094725899757876583248633762088986429904138002904813005632769335754471551855971106425110182242245176231901588182328976671970924045514420116508518388975597527535451781869845920026724836497555104518175368188918277730152811170799671166654512370911613073277611139790503103538842120382699570443536375608631868443582022453761838189536815033134450136703511026123284477627998286966596737477521291419597494315791994539562099467490347960659305182518365475614791053675291949978469026320550971683641363519093937912490587931202427334916148070783780649063776034340010803736413267737584235110471223893953160579134434189619747260094363184465338250393220009619716683625687067477677178521443396720794391013766035619765214610989823707834447987877072079715544258230262816457476671010259705673600371953770947809169561062831248959049683736592690373867519519166534246234504714058004292300262596637469128140564005637078796549242105413241610342594941770114824491710530686403383989928044760106940108447369124977912151795303553613815048314906492945669844443645283885861731895677522640315565797637496129695362340356038272794105426383586094751204454569850245058006556977639300459679189841448755675396512828468812880053577762355089457889576060895482841603861192855443359595309690084769833900171654831731646002300403841811811760248243308122494992556864771958881292068334293388601039154570150626956571505202683173423582046688264516359071537228240222174129402379363281769945865425492893641068773152176044792891592037339439609839087941807161756630968871199436246843306688379486966887600939100336107009677906525689988956598739596710272444057405512292715194541370767901032837318931575811894312947296692804805901078573359264264474854315279300556995769746428743767395631436339634867271228863498134972609396700557166117925851273591071825028428072176092939267899569072210616327424671900544749518225530531212508678804091165512535161594087583324053917187632382712759277144782956943187915632852309440279362124546201119932675487477508339142385871906016127897855525815370842139786354472606663007544762790650084044514019377639188209901230998081798059338175463434698552628364526339601062468742116376185541000270753639244254091929397913071238913159886126762745465308622831926193063289000867492129171470443536388151527679039483840949868081724997463296246607111542897835834194178833048609883208538314309408840669153681966054904443329600791922611282422766698958794180607120819309079108449466405498496157104656914936826383949135025966126274904800326877974300416437178098967865265892113562603102581540777902965473798091451655165777974150417855541628248540766622445622036045020195550586127397341130349918626553511861169599738294093839955955322454094059757258863071227884234077749052331878428608355257056693141237133040723523007729590773682786777214378518218403443055277318417510815066124829709853729019417106666723723703536568714801589084321370151157898907513176315527342258344123059351173695905779500255103248898614207353158395408840973143856561900716369905015186080985402306838565359202823044059733512333415449741186100229802399854190485131351826675458584653160655113187263475988697595509109080136205896577983382995802325988643773214220986065466171314103622167946393182198990565391804720906875318052598252250744205845143509867738690937571849036403688115280928917312522887435037422459065169139307894966686939882486762900596817880822915456301174877878392774717263274963422960147696146806084259288983081251804754075065315208344832914362837940309522259294605478704374292901143513303676815372958828193041317221582554834508807563831585749504362265093341364216954921173229946253640477069788193398265038014416831483332410600990828757194021004486115389617607596307609970668296116974447447995328162364360175831919262749270536705114209795379279842924128167344105397782416978768065061087303258730431575931671905905356156379161514220975184265083160084348207836048943253769819606454697375695211701146419429065662651524532803695504072859102822362173832774012142915441703571296380624647447832772561045498990835977053748856546688734793968265124119373119082909272806349128694143388378576430180839297175963784788867032420373737195537117711444961106760928018079794808088621125277074160141065471028649292888038789986503026399856792715394944461313301126285851273703712874971602573097372729633620412657740142488772475332580127062133930780559966355039519826533391321357358253488686025808196511868461694060245014759304434171944888265648748228798632929169333243819226530174220345569823764707220892624123652686800178374497745803397414038946447274664812251622930034332874890886319563727707415834727169394897104914718314836975635491916868845102003336592347728722723142873088319204800983313018245342650003530549202154408892440404109333213570772278722615477511933415005757737411283503992646166700976590901489175180176077698967676846914717036052737464908020548385700658069724674133834021338477284395634579030767291710698565055246415576953316926050116752168730114553591454123218869322974971465973140128462801694408637892688549759492548832640991315593076926863910848833939814107279200950464083457008595067588259298280902123839099130772598716923648864641361649440692454390793506483441133728879035186067443393129832923137048729127968588301085134698589964581986691259511953737867281622382174077595139760810305532464665414503393636422248315447535243406829768501328878588316631065959836597831668127804918604758129185617818345463793330843017484511403709437382654302092024664642958675525341915418327650571378902725622042453772587768329509624254370257661789577417504832699195339238023519884380483762687143430350250244717993523937155861992930362393062674324157876143010340007808724158996531658528169355943418377932210812241628796270208079549581021397876758614009647795747883500349176932588410443406619675239482090769647348000633825529039083376006210442609420106898141741177865821181139531386501938928156580205547871988191207184144826925233921932419216342055554687251006404008326829632843042635723109445950579892593997381815381956256683108415923066541553470806139159287642436166438212912449117677180370970626262157770759181607716477076181111182896246919699520360127564096969473873911130153737493509029262524183533210478105564966140928219018533591239068038725587087296739844370388465169622894235270500119945919013856297173929557175064848912582640096247730505343101791899388131820885646891105744844689231158978900567164359121316470372368267924728480821663179538145607159627489228570879364787518336442136978505973751782091362443653295104304445692823811162728394648832353162284168122166216740796249797924236235032538774738622991307907840309252212514652824120215312379111129098135533572819848999624801095577103774167225969890881342409836071911130989368318463729740744195685312051591775468868353996219175466586377114093526510981149813552623623804986907031300877950781772076690257766776546157279747363709465000183584466097033144732775428651512002309384377707513026617808086686057375832706522845151781563355169946608916395368827062098237157998812312308531794226243279582934829693923446968213327244949519756088082844387867618158759969517332307708062851673977740981144692865438736528875079318628389734207693016448278125325054892322443423068924893474911634693402022733888704172297630287305661265769199287951857343910484899758037642905798704311180659720585836731755250075140489144207600815922840002063495186710923765286659580686246853475721170372996140349932774021200923469972624250822018165803353573866401185477255907896970941322386698079756599155071562013877620263974325660102738905764753211655176323883981806662174216606779546827964436324463182993509162169715683366125247179871817647209004827944110636945401754771654793982739350332069756259520332127549313974402626520182830205164842316875638761194928132710838212889414616662968397930208255234001462856650417883158262066247188431433012054761436183976180306188252884496279396994146601135817677240833761025298024739494398483813815502426531496069767329179002387418315737210803200465127662966166109817175204314057441869703976262292057673836711121115594249133933940205153188267422393352071430205736079601541731427625808523241700964470674148092822362049507881984056090552551656981075780632530198787272703616668652072626953652319785156607866569341293997994090700076773951769066684062011380056293486345419607319409128913666239322347051367468959070735444211199334359394156515756899781726762356912397755330631537239552928310663218036918304375940625649763824271005682024619662938066960836140135649279798918032801809101468587475834504770716076909274941423036699838607454466994466378426788414614165062595300203399781904292793004891394394207390189303188613433951726088207709573462724374084688082107371945355927833216156909704927963393755037112988681467032769932721435637862464951545783521291408084139558381630102211837198668514023400910450296262967709631156176337654578614959262796039061611706986183823390187613128411416942476414970290143778584264204323810096233628314107329300588866010001407657748396120127645075267508509828812159767148682812277576380692844150180768027848177833339620381370744802047676581755542839986788432380353528835762743807678864269734730246513166048162634524384326227506624342835522170604552742182956346576288957964673879721993294181294908655246786909420590273872785868581912933099812443858156767758105948216182526410191755585277627313128997318876890938527548624627949005742879598510759892946469703103771061531830137601673544114872029840126371019877013576989704609253980519062357857164550254348261203762231199942529646689216725777995785005448710580245963032089181604686735640157325713780139345460642827899340134939961876433429671638538211430370775442072963542292520014184450442107629997281163806778549343070030912494665806920226064336138619155212691466559135861764739792112732835704386810911323316191161124243789582828415327290496164402634383257994998503213927237224984266005743158024361471626175450970178713332437293202507475509554260817105650096397092078993227599731628111598676866513276781119038414491724362823208265124993833378916454832227687330269162424159886810146447381118258436737988984299003668829132104369434678220160474699892406572950556484016842652744977466218281898523130433922386345882922202456879382723043004998523608681090242848441302089546263126645812141008794299154315836552373463161493058052743639312749303622542815512986869346893840318397679725208236133859767894247876644008417353791677420720848239410949540231393412019876333060282248094257324383572650138595906977843590184828940441644104749516148722741099309327696630596158288174802988208069858506169699480312160872028015757314497162210871013532951801041486988274627631185238043664819203619303116344804426388640508290759520944671380308390253377472829382008634432116407016703359043683099048004431630009549240508277663113478148370575911582554766155843307330912947389864957763756422163004203444143396294031722654736272208062662483693997882214181374792396479713308638390401201666149344135626715090605400858795935174854192063097165344058719229322693682385481860730985992539728938317356109483283126227998876509883266140153316096132281532236147906218954294913613377802768100946468815008262963231894186839318134349633958723639545537247987286158273420128526803309608483627343313919314183661206278434445874933571448789818497893756635940467551261825661768292747300242514173640164416455813816616076983498127361372745002910636556766593502993481806600684862529174643448528429106589796966555461456356318727601682961538575925100509437794952124904560608852432321204916066565026271417432355235204870259366624899268235478337273542292126477547946463035524772859416591641894783593496817299221698535948010123609065679312820640568722540804584443277934558718988405422302498464378880048139704477634315296684239882400721199727557494377864910585617010517384306799555978506968347831037673317889900019466699605984847207437569189270395480198884543332609592122917837477097958124145363965690029390618071480524772897591512709653053727044995661803888125250725368110398454878592713309797106398265091936622014578442770543486740021188042324797439098680683623209530619358849199911072389991777595243838348475385937172495860782861956434700137980960097289222322327006199718517382491279798073755233379297313860694514099690633073562238196388656816557303591567029221937032479615490523992764419773071180471608558396999522745544152957336627413376895983873517557916139130388114972243931428199804379575630209582186864825743053208722124713549688090280406813249202220328352452836227232323122124691036379290381595075847321948087211219533632737352667128500362661702259833937485008808048164819421221292063722415416090044752711606678316113144778709965544187336188072520732031770862488250148341558737210475880478741499186866200946395196879141950271408807453746044157352901546612333918861733909742933346696007405256985091743813505647476159120605301185659504007933670533601645774460427725881534436507056323827637797615540827981932992964391049105296624535746434178307509018752416514029486082071903978849117586680869682834124755110631083550557970290473900695748787293400947103169203720466952305413197422356667109880539082105283582214399906932394892259578740921767293785802418195445937546903964075764395408896059530703747228080866775710690932814158300183661224132905557252473840347654169774651477807038788324183904543001707221916700366318450079912995443276136983148954081744984386308926225870783542608453205384026498827485193086672398443401620259690053333875424817328744465479416015166204496863874451544809622053114492611435273102869217482586620185107194674074915805911225541111120350712267107512174876485541500336340666200447367852477938884560862993018479449176513738449631984511920019455135272383710442117580368778267361638979353581085880039871032172205020571937010331235537385910003254998964691828201894972954031971958861108512087622854461500385360239780598442976648719890553239096384873228527827326027489517585192724017398837168580339383791289019767901795919190704653861484114767514177686300045881902969081036058134550690943654453408498647672938441327839811694797041693139708733763906076466602979250098528344103527606624145057473337469723875761719385006090133213231097927758858315737971008361017679592970135757370002052558238022158942589960437650017467229963213701061479030195878691268108958727463270915454978270476346010843384300779666435324034611652404334366445414140885167389414287731065664558171917967599058205684882120205682125031169646592762190359512549863241985107074757621060980466438846917339850817733197763024535403463689393782035441734396992402488036426532802625412373850831664158458706145410491880721831610239132013615513415849674693200815253233090771041407922874664913025920594242567563494702485267192644406793841191304448375263702101832214076326183224204550177806672618054174081398648041958119789035427040681015749456913370664559323922397396245836453443489597877615819768165319819106064638367142523121281191937797202025609105621547703932697436325656920292887322920288022279325138408228224700146429865418176804710193952018609604142375467400275316993909524103912538989705645583660393438458526130043969473980969898358679077089245264943939531765139710889745108078270273136725553580990075144512904070609499825204050302185293116029745818960534905015324132071690613369097920603337119479646846326692011036929583546459735337879701832492313101168132794553970665419952709079542788239624477017932804305809103964177031170053729675761182113258748400471827402802081839331706168800650824349332197873110191449383651494804996430455851333508979697946147590250620364655451062505130258445116128220217588038232988643542953608515733611932798459177661246472614670537793838696144449551838363200598125444416773325280540338914160102872854845808899843608025997974551529348626140084012548177986104895104723817511724526929922655557595459476625911202187009764722975509891481199139521485039998928637255647015993875012789801181428904844445938328529593223959980389233317843751250676329176192859890792367973534208854060289120888303525165114442321918274257743187845413330257571798249463293831736964760264134370516745450373555051682121616524381038532502690206306928086811409570231591815219132897830974927076717915928069364832928964984636769103020431000174689900343296740568387806730984021914941821264288904965929863491873946388011873885438548659593811394342100865261209358012391241764219819497146629386143655787033135172975217482990782141616573126931831975712554420442721836261006546504920982979307785122200127946891002458224316357360010621695369706723174288035138299100751396376993960054459535983670160646583722871586639041503144265503351351587410029930792759019771008418814626202154196926021812975086925747346056944660319909877514632277136124210149325331545861278113281424596248076705094141927728247600499518816359050658386902724296976183085751624983186037045022714042523000302693159540628685812626868462412422723635208802426953424016164846344063271155524840383936816818426638775007899764798938629521724064415257387950705501379245728557316451606462199004906296009821871902743819465289147550918946510844141331657998448512349404094106697433631781215663048806796843106107861031747949319730052506476866965252986542377633325691465203769468440857314368107368222991801737510941459049239713127108855756716415495716497446687446716810525012034097917083207897402805111463893628543080636842473432484644652928223919329337968111311342797719400018750047439293364065140744907088575723860588557467772660535504906182677608011712930242039645223291832809428882142114081840178907972679278902761494006649162805679984606288384159627454016370069096774515949835929014243010693249052686763952032667848356140909475851616728087999612435011376587142666201295870253678370761570377680850609769154574252554055262744840707208239823905836103985660646898545836337969286632419025734932765445264870709799595409942238518288176653849896536900785840582953197128754252572232694093995243824871276881078436834774826353164399572134659058863108277014177087595315199818259315647688107485626818143650507266886191258447222976243947477396263524160216828863707447695959797196386631475896249084876923259799584135384639962455875301657346783032645370676438317186398643796236725122388175367956204511031682393579035112633978914073143013185919299773514419023083771476970466169088412824355337924693153652990544206377055267425336258391518326505180808176485266369263055306575286122855091352432533734666120819040479694208893734276849154589223449414165316370199366888169575215720089133804171997552566262163369886569515559100566163996386871634259732644114784063588173295137392070832538628273963525050172818811124143114896029185405938815029148036928419935325496558188260710958377090530870431271394702957757428186838877862168308055234720595899637904253939799825999880553132545414984177976563843196316273865895157284256298725387997842332704643773162557096691618098226100359747102096481965892144602979094379067184032405056952679502263635936204956180333666845609361139189440376883524440187947464222328819276118735136743314011066243128663440751497236730352042826209880182800964771729057226754212382529277453088826621733043390316676243893350042769746350539411528151981819816752033780885054658494813437632061412740298374214909045810056268841308623768821698607923644119908550509263219648980652964165831008133400504195857480915733437776746066764373001782211082157730229361138874576575791352578856400543092872704010679978767938795424972817871880493004980201742992827740422864890695296951319850598892358215868450789618849042465464778991473370217191829633291210605086947016675892023694239375829000256284624642244536201681909891346162570446734868942977322024218140740765833485951145976384263163627335876592304436476865934017053406724749304003847431367099430760194553620290314577016068650203367637337349265467222810365153541403045588047749611314159640285568388471251845850470313732685126296753376503679656042769286551477921220690051037409600059036342931183317375962301557763919065726917701331176597246098133539419116259341913095557823792364864821854648948978399337072793399889326002238453177399479575882685176492658747393077404485602304016210999400548925269902790390064044510132007042149010397685846113319956264533593107912436635035252984899587039520715143717490749038118390302119589066714688932024894097974903553500614304554646214782314511041275710410091553477994973309433776246723297363979862155670661184134506469786205678098580271161069541839120931596950699002985007498371278612778769109607016572909263058569651390010422980928928979662111688261748939817873616715357592323184550989298183492876670396702499858659975312732146143505496096508411350274609059806199352882425663095056539238046392164892464917058955242119504726050642551800830778256443596283048464460054117748468577463399671962662150360894037237979858014911957145384537010802839046872709173319947444160945812340655885988918062258532466344629917304726148055907588920144409854354807713409294831031818902040334854570378515326196779897000543738719411562119448957284996129681957572416985006586640752585865203010674093239074586432794237925001054495802294833798778543758534232752180024267294169241186827880889329551040010853596935133830043194419678730053013504839841496826658438587231028558598910152875632500311456156741924593823731276155258113333063473070029645454925722393073962825238334811024396673863821771719767397926444717733607855580990693955023075834891008656308379132469939872941686287683052658659467892730550391168583147016903759060596292429631636062719190050154628625282198622446067727412175041456567639996498951410490747663109591414629314888812736642976474669203764605205817162935928943512004818054334180613088052493702411284398802390947926826647896746359483239798348105419555229158345500846926441914434252667294823463475015689335054405326538376957043831955731622780614143174343785242417479041931771708382921745403088976913009213670284673233689773406993260529305453877468060957940283935293451039909915041453791562859350669002789099322796685117184474024134091588932369667709363003085197282774909352807330915544549035589497631265489596494599947485491795249699948187126654926558605385307206943321549879956893512243783207175475938416745475746981622257465780173638648721231202990581841587284350927212337074453383246915151168807769958349723423357848626786007439488213687097188220574346555958624371581928077354583040837219320078029382923003460329704312218108801817584927179120061594039210134269225767598906931188339837379161435745183689637833439061931471630955816853220058694842439596227188699674474241526684604788044050591432742200930097023167546280397361046423183960378049675455618398293342778958072619620159599449123144738791468796738306176488802665936647383083109105771527801740129649956384353255633518253760461015365690940030170159883478860674411057871157902598326898759657840712258829617122823073318541062812961888112670495586732642268779629691773060868085348123374042733636780957885261713897585872836386287558611101805534142944015276501698761539740411635295590286410228242202339288989055086455707130926850723166958497026908922149914200541963068144111362662517659087219307706942916962058790347820328549664625105219627178987850057476083518453982254974308598299150463199921646928652051161684237201872815042032205229659092080781055084574794170118755379018724246698630774643929145324769771368172175473518297205727010180419374679490745988648355382460540308770842446805636912529875740162301028697842017944329641587257288276824943472582321327113345866276040547459865162669686783989345760597632138306826717115788770767960107830532425761391851552690602280933838536651113444419477223679007952014526049648717305849330815892717732654075754601271928140307749708896794766774786781912858734735652784064364078782173960440741591121479309456992187905337909856425740662000793986753244618393907916625481766932767277057161928113444388008225578519406205065630718345014939285446699106466357320887188900322160867248112343669113227102413196006671289222112414896760958198307009522489768878472496681914428598500203381577841131279905186757091865568430956627584265907627456709046310576069765080238510900116459279392940129534019717589610511148786002717779262718038463418744105951021117891444413589842436123650916897490004829351748420767792557065228638636534619555032787333009648516237683685706016155097200858630770750415347080846762471530540269401273865331768424303591604673707002691046660505713968923765354546788391587745301059403759258117053718911084232691746037354726814308987235976280025597131764952536824320878062304159109558160012760819058999129925611786352277679359984679748972684045023885453279228643533093326931258015967127117467872116667549057598852587959975138734040475748284381881789325533540406087591247139402531676483837622246906405776756920597316981656453384008872146471859790252981885213565756829979138164890958881810146627826561772874258329942777539700733871634050940152041717540488841904363590525164965192999300164194343045153408865735088679723379886085718151693327603471527457780983486477814781514682775044737731246414494783025875995405961641747464329973397802939069857243836788143905332110917808280396843774461936005369034808007778725090362270115568462496276565819989033472101547957499226956230653935717755312116643271308557050982085397258595614521000364947157687976736041096487632658738593684742956075775571215287087260985498370388777295477011975517421504918102882367036017982396670767685210560496524488385991074154813323396435291386533769960435735428907216248128051488627938389620772887208870280953507157631487666223396111070983211355669223175546451957862823901262011802419462907605743955601599085657257777078437955213537923604426834747983953292818618163815792288987782275044857016597654210018745501843997705786691396883135616343719183924751205693374008543948677335075698442761662473389158958442155774108477971429946474714817804524924492123154528097040012579275348195499852537801457293929238151984736600463629497001025236769826288106375928435401723476621880171007505647648581454530204113381056715395417648882035084402129694503765244568925241592839379041828517882463640450245235826680875468289073794251926849254484115168530742185161383367684361189680300404574276986496739717507988698229957049740134809776806420387142799381736374244003730569086127047688537123867631682288646361364387271873082661563316648425013743003401775444528835965432239165810552774144824531737791905105201540447466606154124656841778761499822082642718941834817619568916273326601920330265647282413200016542881830602958342767407908142489679501774401604199039347056661427694506642989948406433471023793718218279172344152010785567054764826746585316952426226409187806840363119569797890663641023294614287566715687753216330720431840317477166976729928263822214961166666804340162470723909814826550414592602537940746532517559871574741244249942667532394598828727272067440961309244455476280901195619483600642035506450250086925413085842391477368178441036541840880825399747763416630209038424261088573780975805241906740667929843324944681591336225718399056758142296003051842390408627949843237579192427438117633290024512361065872127348235976139734564426775543493330049628736241329465452992661216323232688893573155608342350132697565442226037907321724329832982583205858069524913556596039556008152951136035341519277299463575933333092061381453623653692285319128156552996271598215739305950741241148617077164479854467021544983873327663298002856793725422137554110812012473473880647410340360086672479661008404634153869797775319244343756224496300173482704658018843131518967325464837287261026142843069340043929023330684295283673707012742701191660566454258226563938013984299196012772580270051634851306832433585472191187743353638696073578774782995479940521817277561761330648066611939219745517668755063504404266670303246468342440665246228332247906375364369009978725304829254895438138688892710925195648803134625580477488587284449760561002279531832422755951705802115634828634837694403757362836229788963634779686027780226709003200675630153664295871930553985244315845953352024649962906799499651046427084816170709191643005002672562158593134410554531241568185319759640000405402993061942392617321232434350110488577244595715797140060810003181283408008916795931651822744620932424454478009333887934976087821359516310849894208099632303975130064040087105189262392150219073118950833045096082859350946536532097802157651260063988359546151384276256986701034770981992288005596806936933302934203702904664580644653283540433957146199468780852121427062672744174762106635477127507223452586847316780769386858223403092989654093063258663060177648295440701496615902424157528277407512480490796663718483229472505193247372270891279944328755983376364273367259096080228283760630349489668336447851123173724599619363276215744801828150206733565924355166069837830302941832590785360186347923585661762363368754524371235429397160422707906280040659956423340271054346229366599131333182325007704580723950178109468634571147087058849237835164699856060037664084642548720285900152790694159201393241939001271640319252436379162640877723246258253357018543415636276726022058956906451829821452293000971430818987096343425069943155046020321328462302296708812035768990163687952738201326964445846469951721017913754208230421260146825140138845267936252853410055644402066535581960882523639697939897512877037600723496417544888612325694322532893050075604420704506019391792288044929742468210869417961126627833594136082633271587812149009848746294650596396918678645919127215909715241664297840131230587230161506072350548500824914343508383042178750801714180452118037294986145964038589698245445237307531323574210481120330499833326788713193765251308840461240331950350137891172089559750261556306926934195342866982609188682871663952975014455564968399835741383409178973817507103205992018200504438940105866458166358636709630661702804579138316782597326265699065896844655606009033358699328015667865100123502494602589757253922535181738542751836140397792992961440997962702552148419748865601903888061000006969097225194451292491039528842254172728305851473649683921883471908379819444440460580664087250960023433193340430542428310800592214310606474826935360485150127241212736529065008602827322141433109819976479156752917700881970669061224364252392322123590739451457646374709847022579055545601126064690611647875792175342113812643578280939475012459485166788268097553523586851304123733864718354286970012455469858263696851007255639498921750142994798670466496889762722811663174031736808654118942055912197631748901244401421285413874528575910240692338114793417571353267866487049362020901132893025172729850624326380315258701792958238525542569697486117462300140033421816629163384839824699300323465776125045224565751294221755819747449540700769742309925679401624201031547891572910377247627413153917061032380564334242552155047109074618998517039736801116155336387747133219737003492287100519891529533522537217812722148546546757923029865262752861451024201682133618881758945462103500128005137334158913791336737759257133037646387835771912294639305829155291236096395643496466398313712797825962813993083636605756032753599604825020484156613864013660760347481255692531915067896248631222355548516958811724642185874093483362682586570002632855092305405061853363591843522285311586454058724091834827349767541912014664766506843247565365151584045666774248477666117679825851716106786643969415563795724724456067848323811809532278293518709293732100442093783340963349895476918285763036578364324232984390679572838698695351308688841295261866964757169483615028307661592342975900032836900404423330957568370256188333823326492564894209219774205812950267075842637228044275244831569668809907499540375789809025885593451618135502775643494811280639551523298568005996604747680370311663585003871174573706057674156529550585707816397513743062272896309142389428117212546244851378165125816191622835953185383872914428253169567188876993174176158749700176117692942926344367470726383064597931079288963199347489104976512138842150021011078276133077159783186832075193118448914344413349388610428521898687641030353522158050543677950317161497846836665183469632123932671218002980428371706260411164255672151438214712085035782021245064248125615768808293256317269176903564851461543534615022735327236715365601847288998752514227446700735361627038997554032642031386909397192832774196354604267445681691319536566973585996695891726531205553528845786128408621272886124885935401578335956434737955206157062171052232801616438917959198246201784195278966630668693271083784748266292550194301295142532067626446563928355096167060954663803509685459998745155755110777535721831031545215676952210483656979372810641058820774739865064117124057359434467324540263352773012498050154542473723914552904600059711693287822051051880951965761930397458387099118292379512084778722063423882824625046881224821037952920937783255632774528251888632629215158525273678839876951941983153886406803914248812088769632241638997221990000419490175283475543342966195766563752013585731672303618148819166880772344814737274073999891970596991697146462296791857140116695250243534956213113974421153073194525152431557411054609106746426160920555109947487307199304564546398582566516703931060161767335027809773299318806556895029851548423241103663802567250987131616824769217095384165452471626527566774113196339850240936781971125106137892686845546572757321150626316978255850357097848111859812299463748977795394090477893419492818139651688972185121389528250757277867343686147851624938053881550209415858819557319489935729659617626488412390870371290408046146840192128688864854576650581896252016378758864114742837062452818255428187298333425752431514463105799641592642069518449989126845179825904751809467234855494903141258004540802530853092866675967793361968693502882922661644968151235537640562436812764639333651927996656724942941390320712228389211801807926873387212402943420368781176760311253904356770656045385717557073557984620669044135962440606852356224133284005847460305953707316726608301344382301026628529461058457498530236337209907742760825828463928386518079746669283599283350509417865553078840982151701433080554439188604473634876698940070736984010872136439382112763672224232008478457298649605296467256181793960189616324470026663370697178378292721246457318077460955281203441039673870092835783491673996347803954641751563862540849758334969541088999994207154902034777743182076050200849233225685778254174309473903510428836953771946478422291333558817063186651866435319896175797026722284673518437110903620339038470058697115352417305043543178145236503362271065933423870424797880766202043098308846804230636712247201113238429734988285839252671723317068302575782096764986038486734181313114882467274274527835965286509844691053350575902544054731491183486489299863282126805429578759823410969590289550868006157585019019708487555691984456837844112747078853653528176397983070156871746954483811672676058916886762880264180476143685114219594433809620921476040167629490227699073961254470382175093274470282803572500503831371131569525995252249747522270054985082358818461409999803911017912985430199306918309402894607505791062853600681131563352434398870176077205048221146948755378171063304368648914369062962251210873709639259555452413083798229761542921580994066201490219109983753377352811371200462257515679133199968027079871155442583113743067578653818183033961967708607126058514486614431091844254979944916135936798213620412661849581816465840065550306864866099010090727011647161703798301489649670085550632898795508887656535815812906208148278027397638580139675413863516898068688005279852899562728271292937544052996225978997449628821304731263101570175333359133087557289374155013080593176830325929611178317056419156173689451659167530199199359941327105850908012102635626188050191771072806470810456902260847433436452678716083958855190403134271402584736067468749322859340900888278109417194362949604696553096664607518032827889556852666482720693089796884161953713571516716256057311919164858664838767275684034407485438157271714867008034728471417734361391524876892331093281555254123052501711879295165475234243644199674609357883967227271148506324073613802513614297223334682096674623079580815455272905780781193161260721067972891216233255040477955681839542608849264349166740225920810776318723969572848150097005060790723022047612351546412144983269154818013799537767847149915159335260738420718410249968744363799735565658416730054596031784449121577936276309020865527127730849092380350275849237004455953609871230021423689189671925764547712789045655018449018501268420080097629041535012095358826208350614116525736549737420349426011956291704734707576202096553167686385857354428318370873565845482039118882769738674931696545156614919856382339831413886014315531923138041025994967126271647771446356947030143204090243851922558732708167701468192266306803790790147327419598976602198797745674794644725487453570969748984104940820578288311746053663875541301623070540265726156117259097337600154291859514408911380009808592511434904119523874927280741464528638602804143766782831241806615838284518120452034198542418481406319016362335290166257084732576857070345747016794256636522363526050557164038945376394111271269053182341627352464697385013933204561805297295288964259656682007862484237671386982803450408517229089192491663678140099793516458127193866430853725590895659430421542153191353121000204720992622524485629796605539525565571977711097271985509343149211697982783531112062331710041806956207220213697345610483103792423048348474613818243191126146508682938384311458908052652615921396440961562801150797453241062861034616245462123348585261662582968987467577187386546877139690510704406260041092538598966354935019572276813432751355578380147571828442783741876085606347738968575746180827232153861208342597841222715015573409750855419676634541224241239581634646508694587592286152779036284391992150744620572250332697637828752208176498893267741282532094397265619240004737911021696873509046947402544203460657845776076976518601865454326659258033343232893818371325909828720341190068709000709767879451284971063323145562252889914646070249988061323745794307442208109330215363977493874092319184415667777018573497662273475045677263194459633230709273840709844662431009291142996748314745417167897461275518826614043561383628123225707752153574262832138625189864791020339167170822401657365023978109658685444241124179532154596022798841904298467606230315306103910501740651562924617173956038586231884585883070135969140442216140259667830619756195272302150287167868887669932077610428551875254535708348109801285080052898591984162577537647595649813333496950286227781360169212502162148666222982764831617175833252541758333362778953477557299032764839756678994510961504642700610357933797118807416583064230596829512764970952762557835362672915744739847012217921294652227230509497788350413280304701616987906891660127909173235389598696766846518186640126019092530742520237811393990878243312103571608774281870269244227258062180628233192443761723460348711264359597388819077564183561881822572308293621457274686755349218246893609286825228675799226707258507900330318957804754611322049003779678674109727845694276622842833006893807097982526339383412852728374392649176667856859917918179227091067880243012342424735072345715734941543485652581728247880609629239313669197940798832280814354198792427541491788648886740114092648768905863439665616898911728969262432801890061443712487450266668672283024719293363286733210313886724396302080653518064102677556849139892844210070024669249353488452269735798599059986976681937810521528476237851339319447369998253239664217812176637960513293871113853935548593752472523218206217027312669020481584639076148147402552538914481571206121241733760680571926420893207250998392923191799193171456557054587564675265038428971780965800405764313913046023289175046436486738886899658722773637165453020475681446048548817299957547263968629141659136887824212194487241522960482828009877875856215407458000431953857666484303590890971137563836509957852801701482468627396893847490925626784728980285536515694786558120035090549646468710082425307648061230445598969763308243873780675340547371604114497327086664796792607471834723125685208426576760534887174492058755169185813218214203351823844411772684534730256336026361888673261721261917387952580187772865346804052168549797481678487256274517969323129471985274485798024905010497765893554003317960485944192670309894016889408024273174495095671369544827340938531567759145926437586023364467864788113227403670601857684867026057877581111683139153249142438224562335212135689198193349623986942226889100319307672249239492255643342544288847214164043255464299364520362622494325402012090661815855354743307494956527526903312684073246167210307086311158464686412045268109579992675802931302239984130697402884050897160100908025643224831208646624907461361437591509579333629935837714364748695877947837848936737154115005938137097491150894076918457161859463436494697613739743112689013855574342049545903156832513399708019477345153904735413489753992182357737442626030065488531013049404101538329439295692557287468216852864218844957674008104193871311181862855249946746374397183109266831721070946776623400655826103251018440229971158726349822635177929871618310934519380409073804985432136520915595664009322154688663879130834486000321295209851576413487301005925844135496203070169542897735374917791411627727444551321208468136201876578127323756304815783921089117830005476437292758085969398198205990356867034911379709560183611919952853109812986406265984757859880378613473091926261728829450978514191441377239994268548081568379096945608954247589044136026204706542829913905777027985749931986571910581690437401843732581068462983424563606049291453984102494023908558294222039492937459825669615304717900952364834855784296396855055164943084618725791012291971293620226138850544171254597681001130767085641372847048232791220358427146055331606810266012788332968683567603512978864673451539576323281000810541225028917280355936224494363230183537229813872743476894727052400091049018456740811991758328385460620506253621321852206615540534276630576322602336503953130875427238891593264393300898933286635947721688296410920162732563090709778618103451446990167723861449739499058883153443119418566602572771798643092506793566384842280383115787843860682379234684234896998663092729679365484742429578626521632443087593827256999699941750499164989564203731801990153899924203158445079259670041892252534021041439104658947557376032884655808055544203021026001714318936829062888528270613097572372370559204041077527096749825262844022441318385769565490736591376266221079727572174611720512544731848440984425934864453414594527853010055016289175384794924803425399408930751784861096486768810357509304444411430726063530725030016425445179691000089087366544304122797066318498300521265728519983623534089328424896485557621393352352375611433492945608274818929997871974876912935630319044862414009402351215116597774243880904597220009173294306976049105747410376719809994949339343147913008168189496864565648501857330290649469654604467457222797158946574677435533355193126288073602976368089291856765509321184348450247262839071614160836029543826339045572977228132489132013505832078803815530830036812971797895955271930425876849651479383028947388584687056987983104748819404323493588221102666609002141264533065009209491923625419559976968814433866452337633467957834904757117768924829710924586024532870041065386954953155671993729429171472967318530195138909393997365310411057726025548585628905509916680738203558600696118771248386059673927190100230982930654480049605353353599995690441218124391082931057598215001791580691948646728689580823968678054350320019967515958922540881993391600495461293354688462572267643794092664635437356608128345222230193901067524354632959301985366168253372257074636338737450785172319388510907832407946042228223525918040856104530313183812856644191198185261461312544776216059333744570359999357923033272165457963100056198826343938707778614642078700158809456037125720345609885265280958569855492108543499330061473358288368590362848357996218166841677833570364787303118383366846721787978020418197538572524375655596421130662630605044126954545398960496448350086753973891818282514952334312404980747600282248312535199095366904035525884799750495465097685339251161990811458215423783212117923091808812148417346484042087534375189750706097295120720153178913242667140406642825069264310975599521113328505941281077162144142425889089577931611104448966706738589440708200501802367723602684012750328535491584638059959687571583548567038686955948804648376573506022244045813860103124744862201663465405898003094960623240191384846124674611840345894913288754638408897039839031805810707616591580057736243186126641763676915733449416514367462604288124880808481349311239227046969769397188605598301493533027142967740813228262049245822104521255549301607214190026809696224247647640465112052454036594800690639098993677736257631309983936386311359426091345912381476114381375542857047906739243434771568080007904849093474375383843372563930267866799681918965193100948412710446654594036101524598784575458801738508400318831822397294654711724181203618694326406302293826030148065504510059093532756423788495563044319588553174453970401197554689172635498482957556243822679711022885973720176659840732675367262296322969277628210026334314517106350702289158585907782974693651871172266907843366039908061192322339201687527023716890047373692152763389390029839845713945654631815124857125853446480223676047285073376116056131612484980333701136094628863224689683462450720617638046891002064199358317186456204582419793038908121930886473433938019361256324048079146229249376400767820934243639036710272411976318411044300372280411837152194115874246887052796589023471211330633681666381227952894866529338013671886888908673765166839093354453266979341130286745230077978913826139297480714708894781604832768148954300342103948134136601112291621084070111126594260074668456674402719697670771935345745187453392671321861153309101227646298799077210672128883058782695553625950065812936750874820765645850293440571403912033630674349521416442149551669503523762624153346529325506153557840720747580137947243145040475741880474948826083847606488448816957040887525621973795560610705363141207235272974467448445973945037295481294864532842267879870553359239287161741484041663618824513924496648854695372893944718766151614541940050050612942913499114468864947669927715936854486018883092676037636595083914591762479691003388601372881700037364320412541795142621442845204052829347039372780477730026810521109028634108422092185608185534502114651984939588530686640884445378792726697772626891523364510231654908715423866028371565073674077540745705569117320098933756643165217328586110914611247355888107497092778654306995481801064793958384748154676629186247436259329016311049616486394773623111467871801368861249073318086447229258649829189276093770933095808435749697502357384333033962704075036664903747321299789387345603159518449021792035090044898863452815379979396104839947763327072723701668530328762626613480594867650481491713761924728940597365602193848738666904332564857620119721214493587600876825628958995625828467397756445646405125123649747274855927333975392272192328953586748432910152468221504285327758310307612197733512318063288107041490483243047594673937656355423445863283386754228792478887198794190750413193574371856647140710603084506873927094808440418057636615602530005644895778248997628731328667246424617314697078344470780173895653217219209294675208933552245724767060167881801269494987135300937282518885249843624382662719056950163079676666397137251621820083344722092862242057921070509532539993011175366689269583519076439986116076858603019593849011503624415207956606454228319510681346085352866481318825858269654489985203279856687334563038480359060515378716313306104968840205532063093709251096087502651216276861813480645845129600410361876989087301519782521215579724759739474793425894510238498439734635765838144997648856549367995995672976544941871811796780179316551196723452348828259713230031075082792079741186384257166813919648520140164584339340732984736996497579966899997219122143796747362896586011700582739479007448207334288371006820342339818551983791479095626572597315088268626348565677990922179173376453313733903571520472368234601134651659864734110700860341020405858358621067874903976070010873727112697391568779964616648319984041282814773602496428759951236421958342596225627510558401102637174016818206240509819361175042750449453017720215759925325345588845102632255468281924658164119044289783403180260712929057369061428565181135247575985581490106023578365202829990625008277404941578434062748857955166422893555423930740034151395029938887569986994457665500295990076670088916747273803900083111349882254679400863118294184379773749963364387760771022109643041763120355830546229572540420849604255156651668516791610148478859446516310811407116118379817808394852004015055965061014087880784299695623437889440103438641308673278287455480176449984743071938611776609010276122436659044553063121029014547070438769988245112812797436536346970317094822858349912829827075820801189257794986788414123529684656393056175294738230841665103122077617093723472054602036360127532177711344795774679114984845586645142892154270901804179178649104684294801463126114635893676183517010611820103333939743284749247735145863342615438518426235775094847455656806195798032665125773220167820892017975682483575665028168884757927502691244673526464753110205755056760372966128341565710140761657407472163977910028125838781033493232421391132073091440289824568117838968612575939265441760968822308616871475829520417974783949503112986619612832204532831330283317163681166181673564391111397163815333337784407842112492894331038106440013634304420118324968302782984350844085783848888759887175107446915001790573148139282818794131252471588012479607136379859291664863870836190345442690047236803948087942521260006477916843945554245739463010987358032331582336689106976850673431366874672917856440207130885562158597075401467576689842553519510563186788061244885002065646396422496341828003236089409202357617641715373345029318726561761344313996513102717148733038246237976500427068587476820818599855832499198650187387231052619614202554119084146811227820475602643399051772290317879876679613086793139351558630421198826429551014446589700883502659160125136843432681078348628821677649266588227370496171778557633423449866394142329925375542200385871078000785374842008763717641533394968744775905998693906427837563685085313622312068895139343711305648512424901953186588321544758648733904389557885701295166080601409432832141037766396790262838108458401770030743795503578040176657008144562261055436153501072930212404831063379075851339277256092745183675154626302991287513665866224140744927536593905019193926117200392452594851200529607683445633787990272563446441150204713264571453165890546355171405082860987087175474075518830949665972582459258091653611324525251255032544546497140793422899224935106405766824701474578582266165422502576933659520268702654673988468155450368389663536995452076141925985356727149409484190269161631090488223983429311457565086419376576573573057034453749434401283838513355173262989514236525405733670382131659200192134865945308835171891560596021967220334324021540028228567128262484807102230007101286461002404627169452464627056461854639696044255119353638437784214653100042551443499221766207719617595934069266383189978194981017902172658231933685884589033583547969612289135349089772899403105854400022808867081516709216414221381979773211456903883406230434457916314433712036830127344517595800709740890353817410691337147055167856017098891579605427762053587894416740287003788062522177154529808600974594040798145678266270298795328270463787259874573159229871590342046892348370196138838121462505363565962924886552638293966125384133417832715666970369868180888207834478473899650628452707299131415072843866647420675363128797911076338726462345599402630033043373947267881683988718527695184215092816916310113298873343220903218395552805666369830034692478378623428062148351345449954017885730546451858318117315378207489301403361524132359458981335629404941730524220287602481338164170646170440283500497121856053993543230348918243035824001574106129325263176140871768713087389206958847311191579601881807073532677717424264586719344694269318861896912077585318602700465635812598220501083714340455865140001443941903465132610415235382693936651315771243369716475712542351232230082837616377717944349530046967901492672067020263545038269889518655290668100256299264302871241004740917841710152053074187706647529370060297724852383362442064700410568470214194575852807956321673865155626459544309261418413149978415712843076554918732548826593673247810181302881795082045454080651001974693592273789198604022584412454179619816869629086958243987126687747477386998853793496207097127502198384378115434968359759693148187348477035879313570486937045283462777534197656086911073423081643009110515926069457013819258080889437417443207370975540494976010260403978254505199620155653500907012067409701896447883105868461720567274139327437843027026276761088300694587614798068903286142993675237435700938842904637530402752301155944474447412514724497586234495207089344760047004920371021020948867727182091666011284365108285945200896289210713895652753070577461923609885429951375955125508085725183016671295921627878537282520519761662432250249609269403316322059321117398458221155281178767056448037323751927846617384785441570865614417692258380158939628738286512028495946827748707141689678144796436088658624637759673175171038608440678509432530139039204782181498767312079601554245572337201235296495302715606153998507675205311783899255891177253565274958899513162188971984547691516287511379569648314452389262070674753158991426671286524855169819303612407546840895536917058052006534663868610633256951071134285514535623593671745511746478374727977271987063957743521525964120241108132923289499419522389358408877210869444033163995510821770449438694705094169320501161335758985194938419479226137256494444249990544661145004217977915757412839458831831109747932348064302873488533539100370503039601874217596164604870922748600373233876329451752818432478484485143542804205518112186565631150053105346964390749320123900917650151966074943448536528085157922116072160267002452109905609775639183330582681975396465424210416729054670040222576007204003982638149470300610129351719294155551999755427798301391255338278686013950041291024737349529754505012655882893269909995416951308042568963625439028418709808616400028734515025206619127009132823744267811870247487159974789837952559856366798609893494039036007442936153838124243090598439340580444089230188981122406374514157372350292660820361617960283727008619833311170061628700848509569559989669762132237380963747059165080635466574928728301980216827305761187410141543623380343328768390658658742056078597051104329418433250423183041213621077568274217540116057891509433795365524121704563853011008707282532456623860358181738591666030126792314090831138421365093977488785257654388014984587957577504776700863818555136418847761655581039981728122144083546921506943227887417005096597229171623843977842471497617092222570129775815799469678158386047852459724938744341682317895931151075051619541493661883628020686934448617647026288803836949545603022205305309867807746448607990353350787140117520042237058536203672963171765581350802598000991582270640299614090241785042995823100109419626532853106810190665471504057936549622450679074467670967766059764762067609596688825512866158619554599180035270983729663887312826483520309120152517296966177184477344797849619395720749977853128971530492406193667953976202518350344203961803889473011906658231399266735836086078077673201246353104247955694639013647280877103522433166173342055235363727926353525521482475056057977162204116014332318729943367704703879467563437136720975758422795785061565626471939945305855463729097008922650647230319361896026209005796815358019005481173233477230501996218561717678729739552256150877070883278351668163010051250177283713380651637114056824344551434780309412160041483958450156516374624887972423542797249723365917315321616434019075018682604375509777681959245177573828148258807705566825625023257467627772927647918092391151357710263297178743421546411324801739999337311202443034021800549847289905470415597244034021189555109603852553730158623276876847261122497849661037291956411030837914780350057790006166768328112106242686098607792057264692722994838888441872580664448000249377710436827760867278373445380029343349056100749092190510585678237541613984596307525128342214348077130733215180054056146357565622814833711883978694684981355840369560135412702685649130007349561119664948681613941008355216103711867949543860227271106945398283283245086261165091564991586326822547995060069714118235871552448900973910813789408227489939166242413133070439456673541525654944143331795205941085530577940789285108517111368878723165437975592366123322682126975894005352056564105774007811025575080579444261913276608723208135452942352561246800743983627847887972080096310499178029098817279070374485306012958761128284669675206771514473407741298897003353914931301177491866081087780977955789813791988427967380346591477437896243480007988569761014604994308150003015040125707046869033627676985585240287788691340459587587860296961000618616764587785057880033790821181194021333831687461408509229378034469798739760842582277791535383704331803316815141202830702172516490608055110671451814438985209646205950164720667515620351645969089026758258904660619576019356286880946947392900924923565070232262479394411284075474503345378443458966228144350976178985914933430168984822167786703290966327167725062580668547697701155486640510351341776146729931965501677131356936901573536347562231909815783974287004743147466155070016579436955482580866534572685408530980000011627519210293864838291146706885716242906145576394884802313880121862059446267739934734526491633890529710464950225969364485341078738537891112054894649125574377038365766587324572753901450916040180833374937441444331653206548673644443795955325785729400741968380083454550835351561479970180971952300378733862442992129341012837894305349495400395137753551811650029321465981210789388135780776396216583668645110575669890381079646575012673194287676393635956791037612339110943314538405140052603847965660697137326597117239381195207698793433152846760301651139837573517072141162408972898609825729535485482630294758015300697883300465550189330307172094689096393841579996048626732330314832921737846181878893534760789596183977530151458192494625161208344149951822479480041821703386212857250359557418506536281360471250738264880259528712324536938820439406325371414565545854325925719085402584799382945117642717464059838640635421846186950179400784685047446166210736310312370614073492774967890056299699226472560527131169367025540751366564613206944669620660463717400042594104911275303184260508186652308088367000967043543109275259458976222617694148190772939650420620134631466112668645801341454180440229980750862576409886689546905513865306105730749178075176001569041629513919769400917303584887016483445716049459913263391072560375181713888445454915669342174823441897471958742297663387803049623779145895728390209742804373938228793469618398361140928242109947026171173503670843493043556606924284839326735122597933502178809464862063403547797180160142236754932372989673000876488275021319486505184545772133886261003664420269081553099258645548787597065626473464857243258676707632414482631542482159665395518024776191371417177245224595539874449348781290759351657597784336096193001102995106237049803340470208245756012618417579723299498498540374981340506169440121427232362251037003585489379536261870954808522594830091171707684701410663302688801001531765709151292149185662783635588890440609226539043967657974913757287033505520452803942844080026395807607309776932486796038780806608408730971457987168693278298931594862708807648929718232610136892116811782286201671517965296642006255969418770999990288052132851922146641381977401831245861653205167270566214313300188270251606650927060145800826448004709459989434388674535682112501648403288530521592120391754936583800724956910932520516759006537099438512130253814922627698639782541970294969796739379106354209702443796956893835413759184935980095547302588296576528345604323265604019312066965329932751465022586091402276967249700419778259856539323783081148339362434434411753539927271450594186392882229813203452910488515867281357395880510693384613899410096957925524018460318968077560774722368874247810737208037691998527095691573877647687579349145508603026387230362551185888147902456266702827792632358692719460373979168952053372286354892494293637258254709176501987486928572934764303203953742720840458718698608007430559209403575972949432388604985407262313046750029049422469238547196579614900743007473451371363888809087224993257460730529492816763566244892908923404757254468671302354210203433143317295207826288181875801325369068439894259571320796036815658519383797533211724620467275773284283614359094958527453142033942676496881790397291759842986595077905333656659742722579840785141490687312940977755858908934627101279232883748082382846789010511965910086796883340078307997323440960274067000000768219199869176503127135101151711786707515135437971693119830437555038687007098799211585732191872855412382344910844998206249525467197167533792458462507554499578635958337651962592072683295449144691034877910582119582105387201244276600232177631508730395793319019958650705414311886110252655629210305376907377872026736584179597228459183116813444835691772800009615809681879439736501162854844945974915065039848461495044395777388613572208147892736939168144696762269275147868543328934242572605331755220209274500546007420179778813068784238843194185338644890008122388730243060324975382161143005788146568116492479690870602935709267724285551790838784467617945866717092527246847022839991421828349257389244995183458036847005040396455256244381757308449603422442993852690857372248726553531291413052141650859844525478938030304564734367867727048867283117063931444054008167333634750414930778395908635170271967864229661143147819443746014834769815217681715971223532672180202797337678022439638614912840381342754633102166379249463063140817548785566338088022005212653533639920027573523883915584723163984244825607193416628517060022856430627605662528907391419393875333883079534941471159951937480067294361982981500514541546027879025294927576504170247804545942084668682500058460490049778219812054788231922306705580749979495377772749763176030592898328772676129874984295654589095972804569426709929943941285383558768085583488881842691385041877219544543609793812285465478336815680994719187392691192711418945241844994425491612999836505139691365841566793824527097699477859667956341755343984618411967645459399452188661474707671834682751587813951414263644692947671376469671770769775679375312417011208362366725166335133009533526905377485098187363086594815991478450043363372797031710886114478391045821861358891980442886169912617332028565583051172619652727855482063895973442853624212129280364180889874341182780331924854141040884930122560167731223184022268121527730328596431061422464287382460875272166387311456306345740910683072386021355232901109912083245196186784418968677365416215354083139697694191823043714505820764669341093334136358095087877895709222080728756846890996686067023740757278925877717797897096922687162426129789869645021437026161425005823958624409366895324670613710376671902150568078245546312669763438557934458156554536679233947961882397613761460273403360870684454593795393712657590181276736451386051536940828857803440948275788195837898626585648361729145384188692409687363600135822084642110387104493299948533075594465652259141185877931639610815648923414052289948143232186129724281248255046898280608931641116836733136231799832190632011002186464884581482202228124087003070019184862541478957935031685867538861323472627920337630605552399376847110312754591601370163864602664282340472357244545038317274656711923676391263384995127222841005978492436736245118981909620765398141477559107448022362903536164851830047706699955669894920405107767039425785927158450464042986244352268776425943991744335977435027228298508580617816743751685255427331444122382807453791342937398172927991944708883260220404722482183009414942673523768698844342373644800716116787845472140860094655333615973692963287996107173582343641321485216129457903953156958105819876464913576471109291799273239280676268847405126451656493391577762740382290390994968434098812313950870673893647461763107033201773469608365170442508862425492752675256132796097976449071671863416158239859834615132250364080585975814972858727513990660632816478397391170126669433250446222929692471919308252619020950708598076816219531290512341133009490982669055805974955738436064521361757360314457862390806942519561350414642283462276855786356491499855000128422756426817825677604620268930687835350670890360879770447323134362491747049107731219169825510732635197126775031249110723172129816652838890251611030491326415351913562897349824035846041372957601702992600971221668103036853359846480641038164749770627008393055517838389818361629635171102987831555423360905028324923629320433195648675896640084557666168241723935816114887580673276478553060020020138370586837692430581207265675235710541249461893734378096503089091830664228138349650089643599801194117990969898832766926561674563162155826539921335602187997421196505726191464026534504608067804887276685668457174669945064147629005017305802744924747393279672603186637656036786711956933559201441134855940687476615201641373319110484027116371529686684931733088261406742466592019853023254983198552035594072704025244893066011976610660317404900939327759360168056719087316390993172112234261588746859242334839198081251907269386879264662104768941169580663265812373946082693388814672899371645293604321454360017530986488837746476786841828419093900763300946879682212003747393785760036649789245836808722337707181942034282765473369076907110780704671969983732504731401883280143744504248235766525207708670636708705551971983460838190451003323592223943580534027192199651396904355376989777078165867953102966152989816353913688908280582683052979844723252187243068594442678523568784702724563418680455516616838951066218861034968424350625139530462311775095545538800249770212592433911532917117831778823236258660670149408728227590594021027908087851681105674701935870112220336498939650109012481423033922810573539270438139421422971548377053056259884478203547500306683051990503494494632271969153919352868001316370479131893193250574667035378972793519045207015365061783947369915823267527234596522651816031594954610655919252530547770395827526558515593560682770339875699734646267307617533493830294689387208138524470177572715229974015218212976592807037759928524866622698669026771709550933722820808840226397487922186853553577191325126235268475621021488620246920930192491395284581174124745945116471772957956090389541097885454906484440950354763314593187017572579521509033488073833638622563170060676529183682882616594209505037814388509444752133868084453838430178662180115650380265500259663689430338101438608478649798298462152267061778016679249080302441128007884856329796651068672822640167283334338592695030326520865607209287430404954738147549254036988098620944442969066248663138286873990674398629339409558355724999405378905321522542813898347588983951537878149943418886958065756139733134439767960753158713345084946698182456377694485574715112037484449000898882382295092125822917461570990210497833813040559425899952203326170684220453480251674286430628182469203185553000409019937471433912649271368852007471099543286330838687167384340323865802593002769451820357871116519564106537697806467640068610237359218458795064724842092069936114151329337169541300313533767038370023111902345932186774308931894439895333971163648092908547973822592593077544132647312241862341887478331536024376392607295981491164293976730394146869918296515133074174865669765324156942957376191247585440534267722702819573809387229382823477881588172703747260281319203160215484174936359379977390093561163055663364190928906770383698714317264660724667710925316990367404142809438731412695066987084124873949394560517875568518066816760182651112408303836989925244741598101131097220458104440831700796983732023871964804389341898669087941027725219071145202850912962234235484249738118266253373024945370191974018606816719886504420336273499942656708597326893438943638447656373889717360263859947755688358526851302089510656580144165673080812268060468355186366807873564319700008590674308493636795337900838716056842788367167154332979095190978627080679613484523623219682428338503805026386389407302551027861075007454402400401855635567459847175763199493334027372145997276369710803202704704864860011396220315339303213540276079998056638615288382497731250846222559974338136074179221715335287203904694027893615889015168533602021653948233306472272487668338767764537817040559935770154621094403341503062131831391952925869556778504189177230626467967775523596698008933764082652387900788014771002898379394598415397830564004119842360995341317060474323947163733440950491283398673179411329140224095250571379506065262125146008422960028420082578251904371393571628896830215247861055109027471487941323861398528494771861864684638611323127783150229601398330136952718712726081908176966188970176254180198185852870694707722606606728774173540422691384240990135350810229160088634295374274155889293299621730101993129438556021981357752929134288664540158635674099678417068496063631620917178578759218444876336844588550888190291884288613024619689781215578080394543228893276507593217027727823266017861218568929764125834330600962249987934376486208324888994691836791052149785756834100800934324074045021307747158436783405904480127543801086292928588546753261993396458146997642450225714069033085334786723302371654293407309655345245661452402110633227808124691220122181948929845412801896485118310801886172871323349342762761814270544755147849279620993395680387730069501846626433150934871497168262907099830598245558144508371138227771572575967704639986865436267140644335254681066962164445775974548530357343494109983689764822446189224936925815706324677890121520232601645681162071073108270059197901683902652360804982294335017478986269338312412262339593522762617544681159089094760097973268138907707844566952038761819080264779673346427490783577054573994879410355253165739747468030642036183949694199046480781144093403801071849894004279936931930228277136920876002411092242917432218758984444266803467180423326651447881917975524606735598729341259510694198108399944683113854834740883582398858337678224486411951660037457913465574371472777605962253242532013565388133362935775091429792061498815488502256521814983138174937600878433186938848182606009802181539809638580834105942371185677459204981113792887219534283006383867814216908053385929970879676945466198673651931243946301540904981135907455198561843028171493317125009470906902301637987149982697832141470336963022647286448799729793654025686232524817432933499638166825147477941216229591343686699149652211544233140374590053332466031887398709382403182644556518730619613568383863386606825337427889346722598935125782646033002270371632845376757384788210684234670836668062008090788931790973067782627865868561222860565171037348283857394621165069086847950534935066636454226892449610542172391227745168084673627603603086744681394429238813470583596530001991573915783350302598886921350489560242838551214286782643770951641059727438341511554534645772903512883722749108792853398398581671194835019515053051588331947515612876889196213577078607471904738877569464801449083830571619045264004598444160487762021109582354421167411148211234783672686988865880500175082439928310565008365125596290455896926336474083761730399767576269253764637592281732125153419971252931512534448459028336771892721905405209236789327905962769455052084650044976222443757004662074854342556803419177232516511808227576098952506837796684182304653198497679097915036494812706473080066131381711270932697683908396103884331585604024050819709340837044485253476954218783719241922566407732435840910680911432829956575420600123718151549561549924777601810885397229452904058152955449531162664429835692703251947314326847649310114500945206318003955537847693333873410711070452540105295397003148985984272891094119396462870334784292378631559644093604699889988512630633519831270837064619976299157822457857787230367683409986229821564387405038873150100016706949756929162205745137017614677396687866046668662581543073420338911381248903736899811793309839869631622232085792766598648894542983496918398858946667970540882822771708961741187831098284461560854327072850454412950642163256430416346967093026604091378466794294320421977454728062599962027704224884059135160766861668913859158616574591443436851442067556177885515239869247253397758593652411779535208721051575854854454990871241766528141954500781796386636773385468580625086278986354643692257859799064735273500384782250080856223691602013922488775864940730408379511048592857492243835956295996736219681658759024140181728784501134990449356226343186517484336811239409542435002109058432168148286004623021268882941279635757791047031409377943725946605446049464346173853547989124944023855388785851206153605952846914759730026384207610724718223558904032988500329903404230705897907695525948930745998608482949934213679183899638183937245116502084742903654949477732863258859062920019432653883492769890257239027219475180299564484922026788375610033280470729174834998497749067588485414930447155362544254891993341524258829369214812003576993821134081383862004005256599891250298176723293930068699250912654331327735274400534381598074867401469230775367351032086010247110635498569230235589137597542226081062011998529852946773659789333073688580719579775779917372159184789147618787599436610359823414788560957487104514022623939248289011136775208207652597922964297400515128702373450907773869927699255629535123160442274161579640838692874256136992612745445852326485697512958742987345937960442142269165569692345726620213213920944612607743649467500819020828211255416646501630804965640544938952529087025069855422314536004650633844016670846509379217241743500760230550169527440579360086614599115766495118084429923383787845954376908056055334972347017503289737715721089560370983505531537528079405307633680129575147261909910482280085147321519330086924502676282117274380412464512562768724665518966652751971210131720004793108565518099552381664925149754643627200385820403588075186863101038215922690451577709026261473784686289464235336955065727285447464695892434643751022088749141115750163922575105639643303761060920076758652287501398379283792340116886802686629042965433486175705400782500358682844857805836389943106600103389738630478448032678175936706505573560580165896820235803056997635534430498023613251008977437224093323955786975464111191726504202227250744392936495546448541528586775870099200926272275428097604241217291438860760449880303100457715719095000540793595146072062443910485943430056510240831989317255069665634766990114240448489933832048798531619464534448154077947379726923431925602618109952215415196669757600421569217251758152481175595459781801538835280778614641640849465226141025958089362317964869595487411992169438087578987081568623362992996877328463492795094678097844918879046942503955383032065040277645546895358519195377098523258591873524125415954529918391384164063771676764196027971826101644986010349954704966221356217132773518355129807185644928436725238788850559100874541032128138519422273046566713183952095612016864895844994928815976221121510545833519963869731883439572508274430948483253023450459376737013116543718434357184383241715566517580024122293876006260746215080339758643459335083781243090999360291721853952532904063209801210510765042400952325053692406637580443007094862985799254257255625242780876356167528874787005038433647107441358996437943123322228011077421844650396138203367979870426092789702231750387966522122700253102573780230063457055056183519322687632683962975150299947587040447402548278810086803777266768287592008994063550179757954451637556989971316637339776591577194158859484652946155015886882669228564609992242439027956918566094080714068966456314998415033984701004087596562857759007133493138033826018821195795867271665376033847189279891557870838154007811428378595080259412227879456451310408072994833221369932816920254068952255411365608692485816543310070609307679156400925122414535556889373234840155763583344291386742686522687146367934811853170562354688565102109255817005717168135921689718170313393905553462189333400587267326105597650429188761832452062238419686742329446029583956190926901169293942778215336453267189285391915033368254097642160156456324078326294467077752391994833583636837190146978704993497840109833661535739458460030617642254172084404276427411472002813766281129970370774839757861161953449045007066035280483376855082391852152221438914972486259774483828564822851344686535363808474452284742786352159126684544790731685114293974434341293701989606580280018116703284186769888754859268379002567782398011970158952787562603912612297961660942401613068477686501757696256374676117731630080138944921785369882410530776841007776523800954409773913114520681062419040310687761097906258538675506220618179000547965518081689580463857899517957208911670408392677660408354045515933852118569552428149397798357880984980015466461021261760482012796379962784533891984233374021281797167583312118134685887631671784993312502938922403415488489135245166356086888575291109278630410572013178178014450534409161831541392630640334563981839321417938123826465104749442980024569893536730985372284398379437417972021130357930421138019531295402306453188768069714993158530856542281018958218697494457392182790783962121027626480823494125004983975714418185702857569344636456145912403916697724085795262884204277338871354574283431803076844471182614514151822318867503468578984917948953239432913245391736901783442651182697175524139025777719839535961175421298807417067185496074071185337995085878998012506711200473585477784627559125400532085404541191749033000117493260992956462777937087417486310792980048465636229936279494563243444365985464052857964484978044463419777285392085542198502796483555899450400175895961572987564310836288746358162688745704830823238817690925093042407173473915358186770330847948858241474624300859516248096250660530408937407914893359512586869736580704469953351836679424375305255614145928170610881460752098811431215632498560323413443720358332718557766658659905476928170390532470020668261625482785690388792327305964617073402416829405626871021242826185059759537714060915718214584015474432565404530421154446012312792488403808965185921112929266064464890171977784519257697842006499062541343850460647081494343138711143359205005261197445328561090007385366136934815572297001847354211497670599643887662064544823063361714042026612486000852195196585930074504480287467671495575485785481656448998811150584020326851999823742273079451348059638085426946492699339400651944500403281428591837777484986211826847645021063909416929343903064008150569599919202648669149360238515315500746909621732842322983097268624741992413195902007406002935010764199688139570770945548596996826709954679304304481593058785648191157700091198927469666128364726011571972949005115417143599759511659130635246703862751228312178724614666701944770253784712523504034747095110946427835380499737298877280724925210579843901755405641324276339116812105641929796848154017892641697916805425130503594211797013547099599533577024112929579841596647682999774373160160755919802763034995725953611878354639750156852129209506742096790502270427201780517690508069652134986881093702062376214350964783901949809287547605554648891013501713189292541900821051167709153926437510731122995709395369242195344348151312377025549207139230233747156579046936846923516128775150231228764865498111080857012199425587739387693897146664708111176421474548701620829011064263348968476013237046532989691849114992697680652287691879776413122492771060278981221793799206206612855328122827736407520928516698631832696774117788353037333386087143757443006721741993598330658616386737276531800125446882743804474007125113119407529248847803167667941079946721984953095087445567143128138503912711190905143616294851343828942753451952949909659424780654878817718526404102356754000066162746992445439516556878964266497427599738942821452703905446543633861051611349795760294590641469893787116110601971788628389026736362363947569620394668703222766327831486639582925527484525352859365725908736189510717070232515248579875438267967427913332270809723478665111376422707908414898048491190586558007403097160992568086345666139786510591426507496878906521975641920682342852180698542415955139309638309272437264672426599119459093195609810052071473548128387274375638456926041058500919260188766270424884237594944565498952024467277301116531444096135314532226745322858216256389636772832401359147486539266389066675742841264828747844019658356908925283682157132472413365454147742393093047941392420087116790049912091708170704254480209553363887640995975781934982516918761705779176593659171986873259011534870281823624054406669553566357838284405424223799681033150700999890454206794264247060817180711937388942672434508708407966226683792682244564477583827195842685830667465057652619772493431680376913770572220791776628844883501292259076942712164231352715696512912513088235777964248003075581790952957375215147609059474052571557887421026603019830745688030459951786044093367040645453749584126926988362020622748045961669050089746339085860800751819825452072003983345095744830610471250740601808626068000131444831832237625014379922510884728149108492891522157930701620584074523828405612866807672872096556777302610303886839261229860572491861177866024827081931638750880264140832768165462412770521441636824839394674105408828754970613733860873953865509426406919223065629871728615417995071454732237677583845393475498073209610524837915142039064552200542174515484985428703556623931283827848384267273538112424513489231125832157769059003354309457915438604698498428283766455853355838475413524032041976197082300246592683195636391821118348328852368570626485698263307367782277964943740279562434410142522245955671334189488622457688065491584478113459701103729995653635083946405932836405539380878205239438767278913958724714896889444154123099496431256984419421217261455353194144064019204828819970473002204143351008195784881035298980108859433595947039546103053238531615223038975575600405050378939868147907860627756057943904147855144883670147184630203279327001149739726916580483447921119789421416309503824640335976607325291102336787317049639987490296240638711191411054036277448802523977761406421399695854181809952265368957519313331638942899671130116540343018774264775135159166027983147112964984012458042132070475339516505568955609645429223957376294188989127312674206360726071205395071829303089138296516175513008334585823668554702503458266606727932893873542996894264353980893378189254156729381570642937706152954004620158222233122153077441812374618888585843596277422519113862815836009635494378007067711364669708750732130469206549428316887926815112552893441638276241393123373351715472847475303821446709879643943632732760163437315342606725652676584090805289484014971418419956925675677731627733087198736216391637600763164362109234633574884834307630764284905368232203779205763729594148431075461727631564607675941263730142665486505700579122685349475660209575386471146113602420822896908300767778611342560166379547852417132669371236209121821466163514880139128558414762129743388487946960064938927358288610897006104897040580919667831393850837659983150856106516799657525379375488397467070772140026420959379516995385575416869961384940320858094776557708449189922891319589990547900958659356461550255815444657655113013795525429316580757084608542357836912578475896197779689856693114323035849934651768474157037749193497692064298284814712267279076293793948321743064738409827441995386867240728917200396796145935778637163462031908475674910802165652198668403970658723459495777944505620932027111959492552194761398087274661155404322877736488254110028417143202401914201321007086239287068064745839711796049812917212296512111393958991298031119005396119826899104200146055108670366345674508178177434416109817014046332554210217323940551619217035628998719973308461401885543875403952271569066862926707105114454927967604282474571840254674652284127077868557740255243493011953899061108759026908773056937213323735519984294960929087283376888486028793575482128946580262199413826158880951496756573321131444020406156188420674736937066774423529948472344378976927414738765828408892125372174325388602106018303548534155766690267254182876784971914599706290010190102049791810616229296116205499159953821290630284060964960739047334694571659046080780910134971061808065519370217233091687872357312697529622623454056177342638521567602697038352986013894007609952757629219533478805714033291163847400740783710362287193299720058857853576082966395322523622722598744073506708466983692203558931715556905474636397819271046709930489117711757688666899320161411233174053430464217823110021381572013077036299421327470741388904197233899511618933012385701029272040540345061544617971128965743317023874034649971668375427432838895383599169601921496622317164201165776875724293676444867945028984986544781796156998145014606024433886624976258899401679204266679960019385341329146761513473268347052945584050072293515560149831256005422962933056881110070012132037735460935166052624939714858659858605217834966639645006441139831109220402602613620888292940338227633930309580236914777208294933619389743895810777534971537364135448433776010406407949405331780079198070938871425611340234005097475498190173396561583158504874719792126528902003554578600514371457240043274426553174477326715074632408759523352665588924902657187060561430179789630917856724402665011913460776843326035110132178937688912318743653959603986219794256860693717813473778244433643836047939937102945687581280249091856069167806341966640166974504457392625114965811847595057884849155541187789105316812983986514396291022692150242314288820434937673148520172835815294871698526691458627408017140472865999365175648205851974950049924831456888690225841509919730728577938116852369463535814944345193038725972482060010742047244617177832893798213732755035535811236464403591471138091772382254498176846983128205237498193539722608918020518422016651129798604872149277913861379124175211853118000194893117493860881671746173392322240716987982306258728022444231433011359832090212451101335406011416127995547034238800411770728527864974307382153646132360318865485859110574647179628535196277415228341069137967862624406187332114234505819983007456016664080088603691699758133700960145532153476714454175722030256804005445201199072339126164242383512104733420574900108596971045351538064011183186486606599361243673580902997333162507997662379579538483897794733348090505192547865021906820590901238857289136329192580571968311698240422085125563969056494647481054750251068165059280566562790352623874291679530743633633848223156962344482475964219160540972847310759726979090652053247529967645171672712663865331031916450176564159622307651302004172668562955463860378702010112395569750855004614063699657256704558664010499124856025023500685304008028233039113284229236229532693216344571020301595960443926885169905249998721799811914758092495797848419697935852260866091192529079649445172466078406418090934879585020472195502451648684765979316186611719825496319701551934293559240962136204105071629290544912302950020276369875779422136646050901510513503206737079325181504365626258476812281398596086170612965836885660737645383101872386418859433302223899309080937246619830790329778486247333111360492622072541420923114218308613698837466073766117494893561867181488074870181167685671595453175793734946255700655450631966005856709522826729508689326992093400972346112949604683605545498305415251118288666303034131721237527933763248871432133171862927438608202968663905042294017141748096355053777935632825196317053172652035835882004140609840370421578649442563422850817249265982588720816522576294439366785326525491602510048791130785454808112190713165185860446235110334392567989819758605678997484480154817216316002935414947070808077443381507676141794812866800729925584531791743459030688269281822506623231666295081258985538007026788341430830916630436666507725136755019978587097479274475213763567692385857207725399416638751105457993874718609994072609874116037728279501893121699929502008817508753718982742365784364183755213097683267100801265908708876231137385707757502808340244949990668893634175579994894572829454152271127049722835923881209592445309952797894554483322765793770477035949677868178568509387681341751138440909256826440815599728994576565046612504634745032109623356165691615501820710117268897626579284412495315515382245318398633400696999839609315088575609832710919694128570426307369517939726420068036353940747829681889386372248726998249546400001607174580367282242650470522445486932850708137937992371651739840774223543041027375966953180868911039633273669982687738873860037717188836866300189840967103119990845691599331654179892326186560836774260393715023821150458767318111198139960068104817897377751807425705208274970517394271988670785656525467633915913937893224257971551124992996943030689264972054459663385366319740974338482132917862280426476493118566828472815610107942772770392185787054969823785191337038618799472614425448457239859396554235546825469724410844405553239211459612365910042413367622438276293640217034753389440413616720522324197087043456243508747017117202740734710274514014479577602436939239101244157000412655093092602686380700204943832250787866562217010409231819183330823197691749208435093573179904892740490139640512163933901783343286158500926044620793217170212871554822825570567661020243246311076721079929898779798454128987559847696983992759114587771032334721974622413966517725093152965658121259976566816465602149511589692813901814837939354946150963049626006467541039997022097315198800342475228073635955751677982000390124332267276655464995552192315351377776166532142389255305342719019876095709016545191685088201309299986468674048673630057723342722027628092800904671154834151050505014140280620004340538482563076549457493667033485427091790652139537119628956166831013598455694474868598369759373926628608030063499156157367213410309220994625028294509769853783211565387164783417187917672579216984691621306257558876586024456979611185210360475493759863365757394937105216166108836368790294423834086642441585032910003425231790591426353987390341517650843457531088694492809562008518524026902582522354438722164031890974639494391677237211435554418867208857554689787030829896519363526645105047244946939090496102491861914855246577067640048345118187514974578943418045278012204435191574003372929444957593948521895334936076228129821989636125853773223525801826690237462204653124859136827561022026730048121660342092622736336373638584710822927826172676952061702031978685623242340522350910789458799997704965443497149987574912524912840013640527085950530458070843676486962617078749447171876998099362759887464778126676771702595023742969872347312679738283113900036616184148354051401746476839494182767647055919332313663470586085651745921851914877220436237715717444093252914943917270614966478371426848868641237192713981844141245131386599470974199596064572938778412719481486811140180372394897362034023795561896457394035132876680670660562503865862182617319872225075260224357575911465040857417903471675980675282759332567632368238690767242539599940159407891409760377944762790181105281826692455906249190462691789168288067575545906293338353879300551717876308964973226028932428029429889140266763554220114639565137540425486561062321501101403474270999702108944965828405966948101176440000166188216056143176643718629510750078445545996799659727203692846676299008150869899092793945215576298702273486830249963768835968287470193919128351635618270937612845539654740565184283485878801868901405683485447582169506051004404456882852014736992537802301540548291480215083322447694548731406561000761650517027559167723089783238239007609959371464624642811557251298463283010953102823772202534487438083471155584290346153085676861883302519470858760572298021397799301619923165251329771516714820308017418598756400535193513914337132034954728055101408945889075949426330460125017425694343015796673059950887639633511841509900340076054964924100777532077620493346145856865184817656757628307399220127834261849952992689069354072743071841531606517733435462138491073665249010074434325110622715165662951472216315581704874455153696641357645079273859004290903940664273218802058993017435959065034245370070144588759133373124257170944774087390807643044579377034688017467484209914070074369430142938894745518308024550127989865661063829778473226760507051538615645641106400251263536245864668965056628617235595387216358901011879492598622874321293503170591924229948378183847765973951360326088706419661961664920256085711373006952274697788055930547593168982373936628408499777108227239407515790546908682329783554224015989470462731964264250461841826500053788602879443167096299073346322259767764620705137482436113165713212924023471509037523831776863099477150099470631359422845598153751700849921765475200049768235995586560516989782666878907331836854277102321167440459758519981885198696209286843332281157783032436516665557420600069052132420498115853877469318809354223933886098694809183924666527289419820603059286715400309798566227635323574259416603721102136891387359719407013978387014867454852478155883551132663737036629364402336946295665718644042138576668976393330645939489070798082187947575199620661926930806775022091619962055788993317297284153851996334493252551849890025826038178921980277715076145722349497011670280276152511996053500167741630886595315994984159602927391021847527840279174681399633932506645326209265796570364279395194920945548683871271765134795720811092415845021345782651611456345768334568770845881440774662666192434950166005306175340703553106050040846637349831980346114146307976567765193245151152524089782786901076429115625831965154498782882413791642625047358449598999526072023268416295258853661672525660012998916501545463829643555776277732797080901708977037655252836560643459230764688680131225966384280785055999992410359474433239007958043049223481101355615706080534145873395523270325837857282148942950900252810975791980044388164126756191897569260438198000423278660240072743179540083124897818492663960566094620926147312762926858863503160802309418363358790731558538760389355590362100827643477341776578065839590875770010132459531976530310627292236487139917090348159834098967487057930003104873668260190858444972589234206949846412100009400031467604131117810354356009132294129348503345299132074977950528996908968028761300684140153323071587446000738991002408441457870528883186850063356006785673940137767704814705257264314597415243143153426898202216727721675774079467208020684332928114491570070800832706844404476482967061057380932239559700805173150722802914140162843716144789713006467423858378084076621151764778153513684876236418440646625772263345702979934343449003432962474370885705432737895712302029884192430881872790872850303002968726415028759602984214452308245957659312508589817290003546070292074306820574937354173272681225326018904352791167580381126138406595284499068796805773926587658892214447003553349021383703553376895858653788615232439567344752219458790095330563766307299828158090051605008991303997543614261206268631410324517557692833092739316275859825929127304723430766062651488700443706239617157495352537972424626178219262244030648148902609156014901034080256593126616316404146164683824942018104925953084371126787680091776494433340597715666927688460711127359895913777732861805315686399408336509713544716136352639646164060816984239295922276011353324743785752279002053364946227790137134842779641912263157125051554126758383440988717154599845638471029364019149846160818422732439082229474058100349284138158081508418701018654888187010091651026655215822016589913308178605956411056870357604828394624099060863851477740505987192384154694251550191501007886673319957766054413979671066842492061642361866866172381706879540491374033499307204322472670278812640427126523000753647783007041300196165915146826782044087844293837243668270388699470411767464458421966541600023951879666832070466950682708031033492804699780141793932924567166894581679196742849261808711016727781597501196181600696107327984535490204808947469862050627661396573451998987475664973282872197970833033410337006668226329920725457492093351916886881595255385949599845935816562596126517584121987382100034376242882237537259999760435371489171540937439573925014729914510555119296227596826605976548640103891599517436762066249377160987611295926811073425141956846919982800559162609702385903149051090112981558460041361886070947060943441729804887724994867627358114470357096221420512283878486880161804785835444070171535842663803054131131671748325971724820644315911810296705494517902498820789745258618981301496387792996140607683805064020841110121310998478871683727648557760720553051777091618498969097352041152732195864505129057276942509372196365042727837860551664258294555535849037444163885485415666963098779321043225843069324455378359167332132525744875599722795823872466125856500726376241726689278368456808418162982528138906344172106194617352934467182901626846961426890761679940572511446418765710001545042083097181949270226671087772856794342380801607964114056950960186471131502566031894898930558955788803254316918068862064557323100410353390943005972299918857225425585935250457562800979982659480371134587473858257435913152794155393037323325261320616074701567152312684271137056873650383842616375503571622372488479573565234406869262988777376427232997839992900567357660392665915585275384518903563226724733615275438478962020422709997360499847333621987379275097510340647043913699303692806040481766384243920323309685913966998672281199772440977826716276995729865508371878884509219092143093624701730971264173004952508915098733494774951430308055790289253070351234109116442658513580802892497973509915962693954298908205645025044705344638917158495067926811677624572169065614975108281988311888297790496252980069924795118235176173288514913199361175105244249130472821638230223506080558983055116988004772042927135456446080993504952732769766790285928285329551503478929680848122874979910549714750497006979761717703508846469366958012576502767922703792908435870906954967393637532005369141647139712271574522504652197275880545137555126314884279044844847416345331022547626855421826410474030093333446805842120869220101927637713468947097570282522653635576209549154457032479668243827478217115768035795780809304054604383896713213340112342010595520165308297335152283429076729199668651910292097300698496345070245034287801502784912144124626585087282090839150645830393221434182309860868508773833147486120023300025591510691284188520964703362170524097535230037234352824532140429902975084908961666705950099878127212990133994775336823382105719338849884421260458684354329465609654421780344637626876625283161625664994780507793282762760922395328494259444540541822123021173979314859526272894210617673933844510876444888292379623453887031026218212403122689382989338583413678394492254454856358172105011160206370623195536864425556581635761011679134832528631824670229510116816290158980698462252046749470507071531265450718059298932577018181784838782336297990712345806752774042763924695710503229484740663416740303531174256265565549503845581712390451681899601132757876511760691233920006139246715349669146671180109678707097575086541885929852946173471207165684443238765984027895070041066637441566510397835256021773615212073713989538557161690441070483546629757618195382540119448161299374864473981743610894847994040387047008962051252020837446327415289137612246511139944629419112512727219646648710420761375076119668569944746833512576510775960550678420935393074778523435183505995540059674973916184076878582358723469680049203622713029011481484882568144319200431151969706836581584058735553639366531695599662435712958546436528727051935130157408026660345851707055105276992613993444315493096221972312226749516622341699576987552094836622984919004715524613943040913924027729694143098985556554998664099441367469778141279804908102259116871814359916083073209800379987019352841840834799922788745631118917431433078372025186934650557677819448378727919553446539903324084275897633774908024305970364315517253128616418477010671618557222839553162411765566897152047321313494420636217540300069443535445650825055676983869963445796562414948805108798109381975129743104318450330429072105667242992130286457462416653664898495576750282409520561098816471559528797769274605144891521518828209392432379314266476661412161838796677418441405620000946052697386659602649740308387107797324724812776326281671640507085436005587559637993028696141776699411284637640655816432835357053512476929286215087963936659073058984391282975645375472065827626602233651722747033560232210497121531680929790164918014441846178737423212500168222154492858565071352549988056410316122778034930881831899314734574855982157028158645454731000104372434779590843158092936978214581749428850623100980214889426326954302522360608988416117621471764973440786554037069791884287652948541487110282042121001028000151342234010920627635781807582036071161918863953022756097320621895069084118769371823981600708553132432615825949959492458806607539439912757625110707160740517588130003141360063705973876562886359732542236787899723983514446580182191947446464757900639624148934126128431362352385797884858069921851054702571277619654159729696848842671860359200414460505064514769148656053632086152820942019706855367651177990543650283524243731309788552050855119724441043256348629633336663999690410546947759695871089131349979218084477493679495774312105852957704021783438622854942814171661688946540237408375338810093711030546218389734902410919613568117811634408505571418985340249841190864306712531962922108222932246617579881259541446633429147667956123330956284085550307384518129071146929678630806968513091994742243124822414684217903913233239675546726613348594231376089788752693340082018826497976889508891948593501478899320121531443835779947077221223967891429113306584218411522228087231717463781865903188925466249372518267461268651323171514419075989996549800078572612593971954473198159368787758239715646494989297207021902461414712513775358521203166005606674376992173023586187293346872583834440327110959510317950488192278564936958506009200969600898781180686943078750275303552391069135371003804791357001861895141898832947400174568539649562391038880661155957717356881970181701780349342037119483856318051436430679559278206656710099401527680550721711135714107182926532063507289356965964731836439169882352587928401288535257637553055393795865766105876746964133819100243712835309249235204863748224956910531059338408210858377535905261083487366850066449258592152058645316144062854086585266708468339507122054390576550206975642988200975376427139105168320025585182722546175581185450576606806801071075306911033647150982074398045401911837440053726749028724713539938787665894889319686296947668833375235537805234381589823377321127993327173080597552543904757680098681823130055816802931375799334528697333075448904154616059906612508153571267476770029056246681016084453342628328066450227817251797809947934613856145041961866998865183767495389723435562812235644387848496867380848115360116092646054383543524437543259771435143071299186776874177849601954272205341575889061567959191306613757386926718812619925213375010711186144309611831009935374634177697478270245741187520079504059564246669804569261982777540025856118548975618980654754222180515741285038675254354234724552449052759216974641173261977123555029812377963950178366791634429835392254095922906785296301123292488407294756677674709148508071844010924554526769688614726780062786022476141332761706358080944526603924668099476330205383048754890111239117837023258966348580549991126921275300775170761832188699723530513014236791752868253489058625551447960879563548688512088868187848947060108500974474665524106779074746147171034230538690377330392491245029930532541445407322650544683481149702166156192795097989959366785190909776402158350529816982843815996079768877192129488116055137882898825021889171806927559721499329778903330430601530789125649551232264606680342031160724522484089070141517785490265549662873072119737426163816629706934659746126596220050721538386709935209858982080509291603982272492059281024796940189220003453408092700206062400741654046721730165625026836354468437867052978355265891814932471691963490778240750300508817734672765658692434639368740303527922024545607990884852909510280938948286106699685084376552870489743177579577697506376568826480937935491600262348336200112694878840190390042460830385745028371236946146381845998806982959167269867317419893263327276471218856948549896350534054904887357927869060747024334720795455090919737975845883105771213158684830114654313423110568344472534462652163307306097571418964898839049380276206804734712706116643464345358457863009432007300108995333383212837656474118834933140462378142212685790523860935903443130917784563952789683511117580502199324176858449931615994762461772064242755585285910669824874424024463200979390124063822334954702858800607393833497831164477517282741812808409340326152269048679597199027084151592255039162333311334498159514632979504042552512797762184039932069216950707773364439562534423171742563969807153060980406496157024861183331680432985043303962172927306873012033263154747513920116283245100396153420824817993171977549172701981852882409090167642311626574851027708072885207650516572638573701376602101008594338896833682240803762459352037754500142064737432060068112712410844490281789155337317461075174442865590977481576250898560487075220091006453200387226754127289663391635502620912108694242377157385711334648244622704121256543555617393849872052952032203302888087626390689716921474303453923453603259646582030452221845404349919533486132374067384047076523041985582137333356140898783135310298976816100049071398459511094334611419982402764042309069344764740158893520046972597487326924485008312713262118098483230445377152437883954131631660342114849029323724706122755891227180472115993327111473390486522846351059785792921019611935098639086795596273574804755600044746488033818887361853303488596511936503831180662917699643445452676532879031377217195211525619438707519444391682698154824502095698604926396015307510302594289400558035840835764242784247789546837497946202266085139945581397071704399161923355693544051536563618015562019516001044526239207802238036711125110575690196878490860330877673996153535672748873844224957968790788423802074608100816836127241923743278759756703182584119408779941450974799391848078860715521899322896451045845825324674209815690615162324163274218121370767416396652949326397567086109468728039727231699298059976479945082544991624107128887916099260912909834105254395093796833903282504500909899140264402095184239135297823511495797830053251095351486364300272530774255192859979719639272129955739673610322066010725841158647761009222934565830663686549012901196823997722518092814013832015617994424297533582848036614969905779451226266315899996358515177454216378539371666918467566737607400806412018973372154609475961226302403987236461221314620423252435742855534320513199939062452689363793215629388631832102147367693029617030749531466098932317682195022907390035797982358211304177062095976100184230066640283018547410139380394647547968935216512038571633454956447695027342657010785929825731174427735312276627203113362349416712286800599743615121795555267281726769504052922900190522123273345718423948018686313363918685375262672653812319748584785930982313627943310663615998171922063135348032964351445776288614524826999517814005866889665181632279186987784087917646718362252651067332465480256523709450780358714836618394818199699669439132121244409110014146468808640245019630793360993971974581565311112276427045534253074299643007585517476646842466811715502584295977950703795290220089251840139113366608650667226070531249170128532500280740214383867382629970527730506171715508319847119758022175995655232630701478474857828792839611882006322080598757729906518512547843447649771915354283847570001329328086910200170960955912613677387946708761764727055952313088159214383161211320255198932750131251545981643528907021534137953771393865533818794007900343074763443724046153460273885904115874847958227310432723209144942262339538016229091387593511160625152153784625100085595371383942461000547312835582260685731591389428390307822118782637811237751919102803816661871612430659725396210892634722742471327054096954903380156506784499845910965844649671473942982125863617220557717088785972871376427092261315066364162322991201538010195813343023838134929293140898028324946231459949183668524313378362887607109940648718466240176983777467341681971448868907030688956707251870094497784043000033913872842518094240600631220220734328158092493052137221943743275910535743528169841619426878425621791121656213970586089853618398963794124802046744456402729146571113723258487045822201655619984454935817617341219954055194739104326452557968951021513303829021118183903272553728463222111472083948560996244355141611564566924500666539709756300160902366595279691914469298247383519437197468764511495276557869477077769002808183865826033713489630885856186690630296125023102540027675201358221457226388061824831406963643014901206878691546035067412444229014917195468977795063697985224527301755234118084904491060635092181266447660319672155073948184725827618806147701337692589491698423157345005559449888030767666178150314733454055598724719293217775459298684814904033634476878578150563798989015937015276484583030649033956864495746293755416905234738809274692636768015104353063080766748628237062622771290501663913849093743434438048687768276788262849453088040774682115426273335828089202071617868954451974168288224618112993990273417285573830136936746180138273424484110579636751445781782681751096873349003063216177721758467215632664487864462771983603491765223960479121526462784000523802852559060332724769781695140995605683393469228324678376207237761821218900404853598278242712631602360883163829737308295599567454335437199043788610773836220501407200199418007588364513020898315700197973097707643733652048234213516766205843209813676429311022267448089643749971960075752702797612543869907432172749253123189811722511224604058284966911026488206032191563002334960362357459826919795812163717460273791306192995094688579711245578933181126347252588887093138166912476156616342943073848526064962808999964263109493713953987906230067447937899428136156596244688232028944081597692015775723161580063937310461149726783687674247496551984905407693479792382934282699043877753382260656094139625115750472862126756086697621669414374339030733344770901097535206762910384683046331111359947640218300763039450152117170332017556008590937766298797892553777456232752898659667420269549897752260689237629407095656490931348732102479906971626331403774431129110345969733154659653650538930562465992117017032714273015945393841719063404549069309912629132029554399750425212426434474942787483195389291667403940269067751613837234893866491146431128346694828338188547619511750453631939184689856215635587285121965977445438187919135386147521716095974737122389778208654849720661601848623188116091026283104354609148527362190108722316578621087203526629415481282573591351956065842477489528547817158568380913712282518196534741058817941834316939275711331419396294759196026786480767487296164066529114630247140267960074215479063322776041310694704811693864414388772187903215167738063194232079030642836929894415241744453911820680400053665101950065564147080912047258995822387855805705287187477512971802262475500572170617539963917985085401501513717507864111037777123908273956470388975568453319067012447695764879621244089887202633625212388365990778880536554457324626070379494698639039748576282993555451536280326340785599189535446974383254339601509265201194556035838447643119308692688300152505130315343843022933976660836840313969021349117615685576512604261756569320392158626287222700941792796003905353015608572558074738870691660440431042561833889780285816445986560455787560977757496677992325130200751896941092864387861887173884892321528097871489376518124227762415134921138750911196580328410171468548552787761332138028764223151944419301084089111471399018453208519317978339888476368086304868362563194140401137903934870292383434393054689036326302615685885977022670058505741694369171606397632630705232735588521216888747650964777770909817947213383541886074455865980651842389700312296263593918715003757396911611470635440883245485941849834517924084345898301132052288131901226510329703968927299569997161682559248701083101052975793000318682018147289533698323891896065877708268983308173728716713935665241987109767448988840351042032484509229712018964306113579182190915659394354311861183471960449288664987571342691842003725104403014068209518647007848648127280040369752651946481085596392127082335218940023731138275183251164109788195266949507301542853690220662190043195283884247549584662444126586203198712140493499825035665102305309726057107785718959920789383375958731360752990976892559470092544190056965032234770150758680012410655498436004690736998911793096436886156605091764456383720601736078832339296080918756562876762262873662399787062643709654186519942899464330551017201975295565219346036051810399075301387542711243184385567942349312751043134134342483089420095794908546739272423691006135370096437087149624702231466473544205886562180710651334137570392531619900193279002236537412244582246896822839413135937721996998099487269600396450990315986409166438823143952533704140934739932825842797859120767152840722893738363079122003825881689743460073619951721779794636407303557602379808862290467029539732687074316047725978970169686938946859244303370856125044252449183617534849963518032770059966068324113101647049926619444389396407584011873460460221076803064052223184387172999529679683585498243084641367541531059112794579137302653466681482043411983794199777476416572803863599792836642782704957742264590681928886377071017808062901945766695396311757578655786117009543510240841594205870226001169896760736271985194295314827864941668453951285805997236515991881312412968858908750023234501246592589137740792361355726224971601025531598058771669545330247115078048065590268140917994220441189795662991904452471900993705049066763839822080036655964390155904726374682258637344418260504511643604175343367931217961108891675760821083452032698855405963397909356118646940333708130044732197353788555071405554952822779165354122819179949137533794636012715703164081756617629202234160768423768535833268951920784107865341110700651065766129064005610446821054835929386069077130337565967853391370645443765251279847395237869305736118334487965361287699141696592758194679992979809658417692202013049388291643599142760573136390812471922753534511521877079284375182607087358704520460709913430998050467867803113373459571926567138127513326749310346667694600615649294836482794911014956120977138536130346182809683591348007853581324010927103763308341123188699416742373630447417560066452735101836542024821671703534098929456981374485044740421056548147751024069116732267880071894524029357869711870853281871476905418786399223844608585149541220492177671332666454044340590867220231781901470965514421487340987822816504952880935009610182251771955926222573367982024447663323327479101766455061235486975771875123685975816377244227003397922085313764161186219545838938003470344324111047235854699453152823514488263614551061602838360800408180536978127474020705149860836391600917372271885880203377821601659014552403385456489536622717771111162056303806201715196930345892831706727424455111364441582276972922414963978081399507826046164825265289315245521027828323470142392519546060617894243761040707183782248336205178079552248349800734365785146109226180469969106540124994161615581611914395294822311221448220730235697791883013970897908796815723637949474227942507767869299241940613129730771233972146902838137173656927037757009246803365947014989612286382388065952370038190295577008275325979785815549942860614590096192750749169918050742129537175614793071046191963618434668038061397677128392168100925812518287794801969935395841454645048056321284028567319629074097694479673291074506692525801305912343957378246335096278444244391137819500417461436780901524645078660340772505414688516588760119906488683273424676964001708808932953202837215441281959837783214195536573567899430826028573163746007358077974121773371610576381362254445644102653053186248729358109139438394054373544730465694979702052965061334524590770699089573712681749871275893067423845215016013938883824488381319771206859303014565336774532668471833085756077234061546594906179900877092562948654101724012411354489350461759606773492039022775480423002146507973651845526363152139805734729771248564919185926783667701527031597509380320653288362377502351476181165345327527285710203319803149900378134909975852801255851201857690690149531119056568463493983088072008644077804703264836105256647252939829639488357070704166736391174046118975728533117114504338109627870806386827712254632212825973715795209918010275331494620390440559013768752085597017599569440029248428360653399279652575297395830844253614182358817256607036498069384759986938645110712155729880453184425512740532803519809568953812553320917198425236650674487637624297786971824685490289956076396915299773628239023819856707366340302599960881231552821595647340191252879771984831858491678679187694396665277111079711631991193343892778842093716441083987876927421349266871184059069001360460964133561617818030658340350607644122996159289241525702101120417886705023725333524487937139354728112719263870530446989267124660592858564194091624014863669717667997300352534528799735627165683863825466373698553538096383717580852084485711669376882307747134216611200548630425179312397226388348879977333744151511863125920240136355650083617241013840061692774113636708035465411107719133967618423624657736414205468169621869149736781467935848147222911808344486854235793591897354928413613061048741217045523210127341274215922212309575786480955193071504952592516235921191612286193392153875278790794488376863593748846711083999953525893756961589148044374829601949948519661485349426419676078748509472773438861950663489632181226514663130295065599222852870948483600032609604498261217220803436082218509787376984150542522553589174680248155125596290349443893638925969867021338428604414252083342937566000933103046167330111512392414440604429467072873666841076169488892102845633832177947763986051509401787080821241271051363024175836658619900459970328442011968620785968647981870001350895131909190015639982832373468698854328263575699959392602581036860789325218178148834312174997532448116358243303319652581193120714844944854067233989997171280464745560904063668213082666334834436335875309459403510042148448225332395656533952557338911335909131872591059209842695520094390753554705979486589540041993449446174137199821724557457760150340877690024820124730195881785181560859460848954471960249856324341323118934321220130418830240814596868778070624258056631312804486942776118303567850700476978452895533724335185397278888488035810802665283694848148802298534834457697219259929160867307867439633904165471656530692542819725641559166323989464900433526145100595417111817791991360098036845132272605091141509539962836214501162828895496369897996272509088002107300451515294944064146436957561545575678087377672742359288974252444286408366817406548110260537057034235063642092723321098210090537423868400579425257267649346491831429295663689408289392727853705783790617546823854584714690778919849652545470592805359273709662537468192993314860214174430996421727587865536874023873125138177975272684620586871712932199144201257978024174635096191308210901822773534716388098562308613080520877607415645976730183290736578988019937132102371179019063273876054055037816625006594137256395150281049000562160933643600492246727426785623733067411579141327168723115895051034759496913809175482755144335872774154537960579746359451325761503045525359488042356739512282991770929116509357641324514485882904506639826874964888733030683211705566120976573511299149783097052328466536559451110494307861584362713860454843752599857132209553460189530282746990089312181188614343250231575069284142052874425263013734028257753891255553502777456723388360864972347647540811292273486699130950140904652601124260766137956621692762379176594382646972618507923263867912919339906979821488440409469811431414387621159787836940114497413961734618671860236381239108404850391407087396088534794237211971928058574165305392907215143500352939079777490816890095184390657891962637409145479396957787713955990791627423506950336464653871874188270228858271484920328515819836782802959208267334124943429338803200831988278195981277584219400236870357511169691163523738829634358487414512960202631105028708626825017746009861624707132087242624857772837379003023995469181236553024822077436602236576870935731031324033286916658264922563374152587811531442354761286457841040776000817660255505179801960968815896448582736716239696444036130353656374263769490491419863823636874588794903011796389899658815969597567606543999303125413212412225577812128814193091277141089052788304714785145538570838810466572822800116641093950280147515557441174610709474272624108523118680230363132454742044496703497930448516389498266226027348048455849037084712825608898492894579973755086690206974517961518652708454687988021704231292029888550066199709411739581969577373220050938986956597107298438815149081822605582274303500979670356356899391303079721544644761660687319447512714056492600719441714791866176955866431296254670729431701389014939632127500887746807724201500605433539723103902917193655289727784440583380311069749850579591639943942219844173425132431339117128772852446259236762585825842237254308184200816807663575824061446740744563239436163091808919437356450887590950429683191107076020904072077655927318938887305010390959329624133578607819128519177421652579469605500400812954044869662085020608141237509768623543136238528877952525928802251102188121724944656174520061275952624470642283378224894286938463752677563208456602770966066942580954400087975887038902800963388509432685978285714361414698083295566030050038931434481927371569334781522092582400430135327054670556819500124026052129972131405113081331225252266329057362680593384625157594002419206760257818659230906422680936503402059812499642179127859904337710498392608870246854725241240038741472059901418054788947264510401408557162929884773892358875151854159568261876907521216019319674166192118439312548413767546882344127526508422257708256149697954588844668267249214134549501932091194544822243009262164620456055432299220222607413421016112929693738321513626007814461952834643141499632262504793742820220374972724267915729187950521770825744429630932260866973572669907066182297512732156930202352062137899721245136500197576949574106851726048864872765670776090669318629867720753237617191103337284128135402225359605007930249878473307169672869801665851904786295688785135643078425897842515296760987553495354457024170488840940283214873782010131262263859921643149335468715321955816617851443454876545008707893666809168091240530137680466609139307530335777824649891150537750399468860932877490517095257756035264923664787781210331429715460578798483650961285286002010268960562183808872780511114683336039257319758480419383511682073789444003964853046782116524701111804075785489539880545669195067905628668735956749446258725339171188954067134015906059471265075771518146938199081533264737126272082107879297628216253203306931574669149573531227118152018618862694504684453514236447323268563604848126165829250453110894717736418430489922843910833001190718565393543047299156990985805355469254643841157563919032435486743388172021724318835589640189484681812060444839647394173353953092133584618454159466751806385291330595301313799992778178538938239154355164840964450993604985187771580377725014248704193631396594336560487059230895427403647123551082919589490848056497976998646767506737111536694205086054553270788465318295312393370016911619150974488450192310614490415331237475818085818844441792442540515850202896238548666188689656650017094211491599705952195503806761327178554554508468611957425744502854009476807424262965873579341638614765858516083766980554645650435141532235968685391870978690387553759384875201590838597372292224183970877933672817106431528258940273063671049498741916556431892246269265011116226936948539090272065194307991307966784048996330061994962783030445490027335434156501395271504795621385596160455666361346314488991317476021809282292769185656107283381674501392896948495893604246244431267560019889341249374422743232652479755415008753701427736956435029164578837927440961131691451978365055238414038524922626314685910486239615284259331010616555905038070909800784604312530078702253990893322387374626274356323943802124242997245396693670620465699333467487833317123383651159842709408973023268919061414190317603417512267123818003740855021964513299702472566730761752185492193266651753655636173666359410506957517129457385464967971186607599033428237180179364814473707637274751503923174734032370994459958131919619406875714503399512632292047678504172484192047895604098900409350152772316112707454777108940446581504173866179690245068447843336234934722110340015579386405825885112548648218344538725832690749192848881990335281865333728236687274347195875949528624533205690367453955361405355897626690594071163350970219135709397526521194671471538264415743100431113537094055325421717375519387036559674027447404591419389957654861703343276595838037341491674668514590403504431715225141744957403061030990792065301845470022512132432211229066750609936965611811265667588642098739471272953875311754753008236889294767836401946160190914612244872286931764547453911042252570899207243730022523760501205345769799313802877658951863769462084034797518896592253412778666624147939514479190568572947566644114994594748932091579654076927006587359545591802325709468900178411006225975840672451837529903910095002560738271137012409581614591015366179157318344722384275886052056276715746860746252571048021801197532189619214223154601925324015575640839646752098857990589340120956906729305011170446200165157556128650076519619448834161161613085540382923856073901532090014056962514528649888804938007556194319382876161117143288314473959106705517054242455613108681674145930452467723185636904200939578895659617485895905619064861126366464463067105969240606268589641777842317244245085369936481294574471782183422613024153103453322522314562338445332737510789528644703401063950995899628282370503798436717977685380029058076681132170590467411401046930867578128908034740863151524432940720436611759725376038909839320457478363949933690325849510518078988056631641623930864981401370034899366431878258099844657137821854516395932885056364543653068928914126574787469051508298040511554612881889614207805928441635249923381415237157700055844273487281818142371663690512373865782479528739187921296823937787294460645910825931709584621793681975853774018316112187862647687821502053670344965624477700489012631604389083270772802423853933716790430165074306065551542359473231342617031050784934221666754180964281908267411368621288926870917283006316806769373982565396904185686138525064271012447129095474383936852913006250321247070884913066390117783679198765714335564423814971123402210033584405647170714370028295306626997788727107678531842260040048077979915653190687818665142697403396943529150416592952574267942492364742594251228173759088771816594407254310300001488989711168826580638876079080264116521786425725015430231564914990984799068753586662033564320366512578070729759956812001362426468528477025703499692865146915468660600085338105815401749385782802499440018499060107163352505494704646449290652648939229910167975001558718559751047191459263518894779318316246176063231479977061067484609347503735080842416875413821843091197085006749344014937771298731135872082594261463768426164449696547286431676511925865135255329937400141964585805449979459778315550221740148095607394091123194197731731614622821899582959022344768907152528654980228792367056173090899319704536116746830756456922578218032801355430920933442137149134687757974666800579778433482112069878192216873147861990095091174238933481141706606783088338698995225626130092109073630726121689983358608156735514478069812728260321644189534608340455131951839978072776080344751213581820103892001194155906377574888985313108402913840772558149135290851080350068211152191572184906737731479522798948302383031708072683999822808942270365007000529296657982374563394665481932659036148384892659425065889279071936037218348690486039087850465048070902189034887066162760115285596373354312575048982804001483083119829187219385253430231366107159721369157992992678508269466660885620835136964051098815216382698831504701524233243053711591730984595578713614413115172903998920561662652241365452224228793204693635342333461435809428429431181296203053422016116033479043271115115100938630280188705476964897310735891223056799248259848362295850942947332046878032441643207447237529921554497735562812624556804770225570607536655879694942013023635889817811721236715730742181165663185466592178838483824909833992046935223632260516929784297586047478475469297941461585020891323327925512711335344079611895473957288600172649813095124787340229941527812874602325516667688353015643549624011407420045905987656129160906479466164253669079529355979662036484700669513321497500367917359023997618627476827631255538700281638506828244026691070450167588206875831837841042117059952768706980232979425395375512308745282678454820379206783761948207845757133042174815322686015252388003728659959070344708969841522025123012155530087318495944631468115132249921984800795862279029647448555033945156175432570529047317126454097097305643973999055126872494091939640444357812335294183064585380224800222968213402403500439384714955848388514498113972643710253724798496769044939327410868624107452107025866716708065349071420887622638442046093675064096196491859456617168878669991732534060334283851624398081963480894099262732608291610861133359958701145906366048648448928530994503765247759675022023726284649019947750319933026071147916686239128462240947653752487571083649190523293321278547123211283146029755596332212133732732131980876716311019457648316589768497011654438105540655390790058428076735246295049515805398746651849887974456799601799038133129542769560205890036209501519684213708435170141906032376751586389116426591567113172976782676044421961331616307314873581149258461815737627105206083604980041568569101439065873541240968809544676671953188733476532071533215846739357746164219060423029096150615589201518509279726591423465351079667938455560984760289361436535895263679946075586127165740535905530278771259681380006248251885918959191413772425360048408046792075112988715100287900046842351065743435918336974220827151530293721147932956668427831849164253991494453604300735217364461088232743330267169023976242162291210725487362503638687193506336092688033669645311776986518137949912730406744244252608144179416922839319905695245541180835601619528639955732544721922353099837854483248963447244728623081924349974231510627939455533357578747710315062167362389762696227748184186870616016738617207250331144201232427939922136562784120540411820823759381700784548481446712545480986764873329420249680535981412750216401562702201708864852597667571182339828831201691818395079130890364492886890604975997539768118136568002505193183516113203006520803895566705860221943318938533317053195934537954832858904702892561212828909826778119293543497233810066776567813184700737973065305634492935061558000973864819544830694509240821362717570809540559277597725287937064190388603545662301789184020259172866790647901174752672137193769234300294612900452432869296131600763971816682773524090678019272249461309166297858742724573200483585002394462918917641950199052457750519027487758531278355395432085218910247638043827416480937519820373535363858090363437095114359234586090738728676650911799123066989005521445447643430642509094430007143578208411974037903210114812220572580911798962689215704512911112268434816621506995510216640482264496420875478900923342662835142825206102271985398610653550529203032355735409226006958334261844257755521045515528992054276711450265020922288317852893478998504794155762954059302161814813852084063514334039228834158616534951795375417291629233612103987951362489970418672807551074797871468188707302600717398731995883487224739225078065585986349179482806456273248891344263142864263519268987448481644788399802995298877938608482472843939369114312830305112514839729489280202805891733056695263886472184495792646810882110491204365403796952134628797912057311607579103954657218457331975941797367463706062263003117164382010871361047756311246426568423685653543648428326574228559607892954811511560385247841644025987189958455316504239930868199843178157699267726839972652964572301391868134611079678365368263698006328740603323108594894057346656281924557156778979252333693498128692897574945446156152325318427382018709996761083785053517871887898855027373373007735477250532903039291410011870614309238144637577423537710877493631221586402453214259658175204863818070193976752645914286512909886641492626232084590797300368359697387414213741634014854087741302782271628549959890013606860668275509170197356005558893871527070647744103977186994883447560938882687602855265436187355246702246954579679940072332616781658091957803492346168881913163421122157843578295223473100760415193455361111220000094146964625564541738532925009984985120968719455667981628973984673951944295037943749872775968398198551014153660470166567011821541752593609657305763746988143096219674964719215698371942761287536233347021028688729441076576776669800998085486970195384364286794339396180988520108088379959012704950685453053976437705035889898429564769930165734855716340137624051087750374919800996539004785700751590089098096405276318598896944508824757905701120555078794375239357615733975895819338389847710910194618788356491999458164097712707844260660064691513576372970990481259411247175021092759317397705740679239635172464353299053788480151620791900594816426246048905929139873028065541555276901409749037480074070450447865869852728759240867988605099819192969240888471363504422453503213243421838668643197197919414510672939054349292321703893716341507785882937555646201795226273779105438814822106781533885165012116412607420714708306671212954570680911083223293258623347597321672045498449064731092649792553185988480970364695608531224177979886800525431569064552632578675946260940485628312416983090434651721646842907094043121240042107215727218332293814194655208004249677328959725229938807202436423481000858549976475863820900542506177785563169546273885695995778782919431156249954590190412277212497679371328470699808249306382479136131899033432157204602758087003000110916177810801468708620793152186712092154961728733791591792726164201415107054911888211857953977891677772176236210905647010548572947618062538535999383020468529940124011395103566331805557082912570945857002092399649442749056742179602383001600572260191901745014428710984057826535712799522141218427976749398562712102774139175393073406799423929217589116644127913674521457529474229818837085844654569102190366500277407830507849219326461790349727768186338928922590157963584356802708555156020759624085303041476382171827503192818466480086673963452569388851232138889312299122280015992642823283045991844332449151784110979381880132419956653213309920665819621988478160171018089102720218274204586645178961202642763288936287650868329035118981585541607013760981809544550824556890364696296407167123688764235681673713397358156317972684824044986919714165459350498438714746827365226229814413048204514183249170054303528282423204032614228087205794964057951777096071267957950369446907453802145624861779462745491267647240665579263026270459296712425242548635865100937194096920522919359072984983501816776780209340713944417716374160538649180653079976118516364432925880665197495918011341297337534719244360234714737079655365539275756807028096699556198521515700564312999788469890528514926977665004468398977922822275659399411884958487704124674225435980292864461605292166681168726724272971790351461288811922432224025770981723623318007855391717458025097877918090459021927892315994738541552661394930731115593109866796685891164560554071095007024263154856456752374490152220383213294125058699309202736467295902194918185310050911565851096150827269644089414180126500595295537195518375699456013199029056721435779801613431343007498572425481282308681619194724929635333584492065037726065564771108691458675799640053571909847605322473290788602575342215520979644616520645396616873420275341475109074911574719539917274978804164615450515189896095781075944047166266493930096639467266493819073746783551366297146844222859112389279021999331474748440182533898938631675881066891783183088894074334804590668117309906574801829782458108323655397941899450982300708061538880079792585008715494590969673502922630790178733773862829386083119237713747845083308549605933680812607130730799434008505962554185179384480453536755400665577564254995622064238520590860833641990122485951140236467691847198257583264023587356079867160761380074832810225699548551031695676694261453264016575475837822478129485394889801634586211162569872755754532885654934139584573270435774980978236685019562465356278205001268197899659083214684135180560316069787194580978494060403382436328379130460433183051644890610892983615594598468882723961214670124096155895598222339296044694814364726559902134089642926972228670850649852562014746376076657053744430765295968850150837109440784133243503291044422349530656154355060968345604188848563332409852596598132174761352861721992341812101185146167687215182680055899768037111451113740828330022884219348282425959460628502479346210710864420680386034078516351438300291739551523904012518141943669715685393255840254622750889968087041570292168018069184623623440706287850078312886799754285616293682835480261675814361740744155259076652108399495637289945844828472794209378058193384505449320346586737419064699679525408471954417086425855427684325040813921202824726680679025699401529220629760828944140331085785686571299590316226600881976762605711112810764176124598272695802283971940347959904142673537665970493144768317423244503119014483407116315917090000027151132850364260091867049933517750060110549461933641461677926076762366084510428945020255988865437183711756271408178173049173927840324483504308470454689100607441307953984647260909090468134732160028968312388957493916956487407624981724471583074295434808589799767575069701513242329402101353763056074644224187803021526237735411287527063509712363123832921933787482529381944980773530851794005852013598492110820158598954714212472388213374038758928574769731721338266104619815716296620704306655631102949011980305355013040966435756627512900694653850544564437522091670894326379298610434697256058630693855405354095223284082438138225457510497452881222778397308836516618504953592863633100128820054879452973605267567878432929797132475673016306755519421774438995640287138912469443771264927673755877476654921255230846753841897034922232171068493262087904035916259440368591701034631791582837361840026567529379818892424874711668265197241792294540632455802828245677613300276744699239088526327703258349850168364368372300941866663646724139678454605071931221650852290471849010369084061187331941269226475413048270929468844065498511996568997075118179786653914864325907443528871920768762621611574655462244506834794435371035098324310455028438080214417462877121861894811932884233696440638299741651395438065300755495415072982635224009870810137092735494720475295676874377706357570695724573731444331366978712520493876633101237301760453415707221178642782618120090206321730952031216624796228811879371610903418950986626020211597857337347320284711919225839043629644553984987455261593885120196903823228940841805084595321124448011616138065358098888529478919056057216537451105361342794322072219726305811943658501927160338087191952904490988069483607986921470819614783024318354524737940430927493008942311989582547572459924006429382496078587862531186147134046488573766643443995328543658839617424825850594538043649331012758435925077899454502600990806564590953915473865869055278248131135068684913187795665860751400621541683838539572422583565796255781077756175549773379764375565876586108036459018440353790791442013415831960650770063079006758842559070366586675369184580604782278285773260793226581724028801056528888802702045716051926810085825760751741123190956764245059193842726657817193275559195443513295009547633183080153580640678978566368205930047739406078937389674756930435984661183094885619972025651515841536767143268453026013444436398168770637873258863596494564973570001736987022901075666287012550694452157472837445463752037622100988018115503587997332412648498771033301991575339934346735226782064567261535712840243772495809419453477268963945816060528144749668729546778002333770424531690738029446785821418128790857403186590164306675953330634361958677421406179223394560803482309494117998412335064689281585111709777579886904630575563475658998850723377427295531903916344365604955792119358325234879914554167174076338526177466695693917051720644266963766620340747141169059450150844964462246144494580273895830237964698797494474091046235669871442378168971864301437799682334904354582236638624117085418890100511614374780185363659125991522672992996577520509585667841733686281987109216520772130621102294301935756283215889066743377819850656045951014928090675431834822236077983178894993248818404978400376856831594716408721318144630258467174729290253144743724234349098956864492436960436153167832395539644738951326019721426686707442102273349486914600657775517316058865408107483754693342182300997662947841372341361612608678001718589776008370762485573402528882651072362086512862594076374628616019056058586412463215354206654785925224808859249326320873859681114056348301841255815036690420858312024613488404254332639291935602779406515407157486879634250372562664280050451526771549218424438099190896562984795671060146499415764719067905767410687090155397521073124664182481190495342779130196299716562145291604707015765534823853182749473558774681915703878203953500748565006286388766532683321670972550813756396789646138852372304855025559419777847343755390083210100559947798783371965411991073320364901652151036540859410798743797465284140124986276825184707922508108563594661072099983297732132046433571981233082141216345478788325804991258160297895368763697869243194483103410931465854991803848367600353560424346275971142134622491906386549293772024282353060352430251618254353295651887575643580892457102894640022323356432956679689384616928275126830035391671781815026895330189071229258830964304812170508961729171012635709378422110454661353124637274084588795396253929191865457978491371337871738221368545368614639613415716262284658435820080205146626287471529505789783212168213653578420606113305168253750423160580276633908062781685571995384669650205997787578072658361052658813177987634270260993472971229733181885611876451566516675668981417457572084030175110443818860659457600711181436682605142244436681388752941490787947967851834709761157463921375921745817794424668840136536121622062568718976716722627864973989912364728234706543115097238171690459408274786427988604995074478811241421404182038098597890286476209753366441685968467466893473267508019514811712521119620204853017090450192034609728129987463058802921259339149990388541151548410338089138074778190375577267393221836059758253685654430719786507363545618229300190608268734263638505847234818803458696506109468870950287838773229150155627357058774718163378130464863323801753659532256448282127355497846313459394143945194101843394133756803667369208462146867173663240281047068014764080490348874034435068375642198463970314224125054258019129100629245332385677605162803767748621449076957518013343474828813448293717371072660713190163957006385492597073303493278083751995191120629342478091585991431327942723709812782404235791351008975342008707704544500102488577665728732763581676140299048176625017156073633443116805422064845557204459297164645571196515223303367228431651569462953871457267346763009804099865361024117731071381987345723059610065214335673159445178253223104799771691717165709356217792435036323882904301968978889597437110608788609163975431823934225365944338319700575929076231302198909783351379827773467349130159025454453920304865487450110966382478415664253540472178731714161918638160089829432408146984521384075211363698841281606059763041087857303593729766352052750265044779929407620380093611117669721613656231198768696176188852171089605561585144629393365207432149575774648793926405834807333832061719853927809876797994081697367563117719834701761671511199903774617141840491180426880009197441275727664982747024166421347793684281158420031721134770556868758574807843041346349619683469003052132534280999018247046212747937136860833634195130473685558663697583688659726638939996757739971874911822751049232304305618274648380132971186376383011058931338949076279490956205984905822841800627963872361615476169349650272177443993521350038777654698535728895405884028683489927648882954284637779255352635430857801100413494476147989369571629677574689714613250264262846993541704496700205703030081908107741809971248226001344161219297722677261309642810787613383518172431036648279602599199519247602259957982538259255708196417515606310710672683262428613440073966983898311745982896767931386828930421050227952977851211249150720724219067236351808354389151183600383431929030780303422667111706745079811396508508272910503819896478101773955328365233881264170035793653667299602955048714209261650195970314560921745501134088280082673453002848714269569188665116694223991878685786407350409232800175338345236165300411233459780754924325944648493331636203580104409431881252523185070262389464698550141530809571862573279045052178230288085459068278717446683096883845927348332855362678206267812273762101319353766681489408404145423513195669853115673211376061992354015345568176672484363619265342382993066923664425547079781464033893031646854744693343200875996454838600867646095218115733540751936278991608428182868849991265827649345568564475929476566803577278331855156494790956196521361296359697949022694606592533339818079302982355344145099459734817784911362772040443606666048893449455187789141866077342210751370282169564135305948505070705026420641655067393138635422135939480966805603263151728836003164430394051921282989330474664238977040294343912807526178664856695139060077191993860063015095482007156594566525751380014819871400415419750832807544824119329006355003231100671712549243806324420883944853984998545689598773509432168277790614487623204331156647963572568805622113934304548949528259863849326127995839155273870866517799442053719947092164067299913394892255732149004177677603875576561678550556547616819966555908199630583145944337488036935343709956765734988237049568833543610946061182181208326508120176899999296906035335576523311266152810714772090588678828294197307295550853845938584194418295088150905814715516433525931907696212448928782232379961894568713161154248318908782616039775554841063535065874415974440984295757041178474987862777374831627880309250869351669925253500376604433210397867821709524588357425042137727052086116641818279314718658322312660019763639523121012106833431543028295155390326901287002314411065318117956377550783905275951114286205892245143676716352913847263960411984396162432685634572058445436586014592527117082060101704049616842368788333127859772324843209439722313974423314720886822652264646850309390750890058496936404211133675408830706182708165942686583738698661316110028451481404533556787569009217554020512731705160989737938303177511938578780943595235194626267888286938307580350299703785440057061366391525736247402238781991816611256500633016967785195910451966639332089805510974735078730575759927892540047592981178980987714080662380539069100528789546358281554408177284468338243520814008391155881257798033734068132571235501648597474383860544405210696182954051555924816495250569724409957839035401075282555271876307928470391353816016135410003859017976729467749540159345619524811932223454561851679078747163963918057720363752707893375797853731919813686870770933893012983245191943148848627002877790348705984220960942456616363978524132541168494470677387454591092164424988533302019936832592801984064007151755097738905284262941932720763702292951581581320404448510072785954053276274989565778196541669320199909503053237648476511564646107844071878180455624392007992403766421262616923059206995958947564163091900573891208990076741312054218090682187582568696845687998011606848710327217842877985527773729131882709043192991830997500849716808623671670296906899200395008023504562109656770937582895118441137002238507712173135699136183410101003415830837450960828062867144112230553238149334429117763893421845334825376689540839307846442767562364435977436211767325532067915927942037798442914542373072892557470375335267901594370164796059661050775770456833327909654565993855538680344483236605947845064697591500129874945210718724032194464050809544844647902385330700596516983431855311692946630858957207925102846427822443169868648362018781459356621404165928584914356371229541653774183737595749903977749144019913704561587707290738618212831377324364028078074940174211038243343450899432319666203324760132116550428093789233155842925119611111812047756831740849564796855567998374359866156578512141742060749745950487726840866895738412240214498790709446107062313626976848939592699179096745240904815317016605216070377710439102650396916490021800463146444619049982503270996142646056996758510707416247345434935748702094662528677533291817988555134320641103724184648029929994333250984734182236705541582118596840414777966986526906011612280841188499894784467859140570546712328926026943418217717536640719935350636883466366567101745217421570631982342752843561518613587421815817429542241876180095135490883015151732594580451396997285169522102377940080659565041462108133467724552169763806862604181717252834904720425090343204614378064452787315638356531200096783084361447256199777432787107772001158365010039360645689811991339946193247713985440772839624208650482841892600303682268973090495766011053816308031335016908103357283913130347292045662493887533703049233819043383980112351951325918478698148968126994990156262857787314058852208865497708376605185655219088388597116289065878492457444105050741830894899970942825498781443008206365365721476969189122811121215525100072671978891192901195684611217898711477052994313158813186864496258558003652738760759095452143109709843804829930928250665223388766119243466437083715544164138148046545180864120773668681637037564211870926142935749259419211519836737969700687786835196636637252958743856214998543445355368518413278317402025609018366986058853538022283657312158054613438496277323248696876301014417680767097442420561148744094301634738951869743697594912634367535989910128476295649011288294100909873845329708141843062511013458165384224313163237819263467734970877206561183857714770543970552086979617274086785242569550020598370640951794878904948819069863764387511777118546221666752856650067768632689275608417150861578143998216781661876310119631245723361521451881679048554754005405276222312169909404209314749960944996855609673006619690933493203432582295002267406310579541129712359275446530947187212732412435018075893118573107764715812218399732193812874450004887686825485290166261017266535491631836864000971218455550614161411389224828604848300326359255881556134426326200247151418552508141492968603171209826650544306777806861252469053617189393497539089707803873731921014754239818242797536985897282589955880738794179653611122647299529346091919134494470514263468140903845163720947405767287605880285237108263932150190557965504634303573030785772081091493759523678493215362510336813878844928673244647820316752747142422122937770016742031089600251125249858739691093472476106665673212055405876950033524119257539067836795070504153281366774733553178494296114497264364536496570764881648138246810433030865138651211399719800714229280180446883278085572232958657623561054343155928960557299711422240099829127368270179072300012904226405267140777483478981610724711491576491518199465949859428546837042912947962750504733389538322078367026083256803545085363644211700818729645109833330708035261960324256985803747013021631100909381317224438360977940368019062118919876724529544101520637434269566905832238405348124933634197268484524552084123618630666785482227468988511648578836882767744067849882782889467182068179292322903576426494261690307096728956689489601503743664251105541281849673110839844347573672769812008680065367962472106228903877996249758381160629070628802189898003142368587044225427097337125604723900738095943681987265904506535675315145086686314408209661619968271164068291484818005720711543660500090114260050949037258906511100712512544446766056110839828367103767549765918050656417817477232432191197802925508805109866292598600527673292798138620038236716027967375308289762702228894562728694310210965237087759321380954847813991070191164968373275085780173748494471125946263465328535521354191569207075390487984514167554870095393522656719150532612252114476934623198878529798324418882006570394645832973893421938361264879466759125034470852384434395144789812775449261166530979759968805349599454658106698227099330043953643139784414834850029834182610355291622946099015642758863966853801935206802265329567333403822461843815543453107507816348916666397320627526731656118518783010106372650138682573501562463535320850714319213901055733531595694708500819105772337564804521917787403972936944251958800470527731534249325365541187554848952654829094211572109226443219085315963590480971860816567604689045771056255687859388097568447294902189267301225935716079748532872884372922162068525112938449380490941759811970534737196351640847498099325638535523613039946628577958939092371846584434360872804084875974615509389544801739614518110361358889638308398167174554949992377539325593468615124521410824787942714458121454484863437396140596822621299444714653427747047084108407991896360115120946361185086159414776804606104161389624306279576532998868837645307621204161191316896076849306972859155566666134824469135147910821731170012540488921528126776915340793485625189379601131981455261492549558297987685824946085433656156944188955314727746373285567168879860508405773212436628432026935946551566432839499526460486129164222149091658635670471218525770641378048685586655200070160695947221799988108471495562771515535855501921815388523935544785182883882670082214210788063417930408999594361093355807735796518156232667629581954511667194651634186136512724128157590145843242729334869554380125652243183858851110870253580237852897523275491118177884606982412282965497414537064625408446296817637769541778958055629976681360558935789949132866944996016640461820072740948109719049175676098997534032303995610965872796067295297487052779858402958233742481629900775208635124397716136412565185532274694625497142072357068571302103694418843853864343268292572418428215851213226216600549397375735815690478411915605489311732935266210371423320882228864086554194884401196331312805517578344952933290751224737607879307450785721416524753006060581103306833417531890191597827532213189033990241095082285932993721854572040699711102102856254310578239619281610850968351399878370177562925591103140120183687966154469439812925856754141309873546294573125092603527055862931595469563043784003388117860725756758502363057793787487442681581509728763675611021408156696138006711691317189085531916542203377215878410988369791561519596481284834316839480327856103619020388990841374308940724366691703597582554291743306061594278377010156676738979588025499277743373989249325709070786626018373762307769954725045317110767324326201237496649274044019681492519443957766420862170044917002342479169715135341043123320838241543669691042655266258120118728474026819900591869134249878935314274997745402055120984070901815476314193438774554720337451885183074646747614836414879991086915694006009320489037429150507355088550157618082975144838854419808316642580003548042126737115019504342276513570671171684228814567950599802466388472678189447960563782341335135917785570189819693846600172842646142427499816043172193033413305875063066245722644856350184540325146681620002954343307837378712093088545563179853644737577167998074907063044411776864059983260226593961690129451784732371765772672144597263255688143210771415274800967834112822689163511217354077668189630252926514913008221872419538076616575093714219961564484233533939242933143506736191806384130624513381935144721059381095735439977146619437884851583740288907270629692705495318616762943021461587483413185710229086951263653229743753904403361706081497779296553794560564661876416565306155307374478641253807166469622698236713420858716593315222087063051353148995836026026448764324580270761879833172988056949014397014213795724225143177909735057437017495380967430674332631280849103806069333714716469227842867844914125593268406691487545696231153914593965648710960737125403259273620135232622882901508485756678006197415365295870474261461383530746291207652722744470464040665734897577985982556185300335255802884103348021410386580266500537837075689621358597070724435947285973665030220280270921893937149802014169406452437591419589369595836665803029656282999663653896666444507976522837476961299422040231626306932129060478759670592993942340093118058589485369835624843263559255621860672725780192863911402841324700011515117554174578417889588906694984773813356703781316225700062272728509288787444072216452986466710977543312271664674675754347216302405442389516916683710947302017991716768956286246357524783550908831647059398120628049592454258581561212548468723581078301697965022559308162101333093487196396695852215830186040003495882999310769869855547035464775116377103514214729930125127744351601715778583168341219851251312567041948437483990841076347106185557621905982574011580920286576666727357701713369059692258965033012277231776584502288761250477363888395319352121835341276107529657274121772998205551073069424457844794484227788461870542341331702367579257725687287825247240618762370253949190821509103080225631705518314428584048485033140129685307240800078058988840650669992597921430138045614375081713079405180231690493248378181249908536593547208219501918364845298933309379486812148230028861450021969971257343724507298166072871844180893095552186202479586853469592943483223348934253304383576331251307879678837889827706402322738714383597315636387106622141798382878265592548669080534829218906585886246250000140367245253039807293676236498084725649804446234388758813537184813647593219402748164379060443607674039655589453947975681522860704617150836934295979354393027156975189195916073702816012183141040816383286815640900013540465265643137179994597512457127716823110519106466389769074052534837232543607390235901472190936996854068209898205984194215898079106458636573261787171783756746749111344000239988203587262055419487886826891088418708756528393928601308473660753594790212638281978928207406021839197210381087962473366994406183864820616331348457944491123530170307099837025162615586149707087362768623657286888173100063416070377567639911258347664773205118454275405586366825120082359977399161455470420483215406513321282881166136962591592373534751489041883887022371940990810530251124329507330181939302379539265654992550618789973853886709462523766642619871192245644804526458456181680734741164550663323270904740878520472535014824651436490765969657888164673440452301250625045273692870358274465470172209807667853525083394356028696219996797683738800085803538077664262581367981499365362599096092196731717009761311678860078534107628219835568681668606807413173448271364614836030634309738336504157970024495671148571582223774830286075931132717650505269508248826133849849610804364467354136391453763097920629026117952930241288315915909272224382436240204820422874787212595626287146829075426655913820196098027999583684358883900805413130741364154532652254888477324726195240289645258749917347773411952679404907617625877703637956533614394434758504074908636929609699855790293374872074784881254592590452229926180276140768503829103005872600254414187006183796046435275502590967977148890728985990955997288746907525741620327649298149670494796832016452336873807964466679037048825281599530770346045070537488176512395937373432708696099603907044479132714105784719098317778707191763683205966916392836043631746329431285470391148623012430157461109425327443903748354012307162298306852241114235397542303447169075471832038146061424183697846404845186443427037084624862869519496199409117038194467628970257997878111274749745109704462989662326322024626282501100658716919431033331726238329077254240102525832353179858504685229872925267295071732377905581830870869079248097761171815595320003178383000112674994838867595409296897007080848350310757614259588054041221777455018948831092954748344359072909143873674924503632299840724030782762319397669070603552819986600604091507729758609178436096262428190257235078471729832327510164574586604279771149610871183696121244805458909715301878436348061433463634008391494098811616795259890633834631105009309790959167614952799310975051591509495308323350812123784404044510012058163037711083425369764188560342632936806437698260518519048029042078188798226350181860499399414749536198537390823466375979499929363590253834955715249005268544486076347689883822408795692929239207098616367098696227849645391330298311887030165359960493976197284994901811641487828436784991282110947305260156110973735196543779433408945757487536458706259230871772504895110034812773742084771106925150296834274094285428966620196163126567875861546624699888742689962543760261494566382000225796099229410797122755947223661541070082857573719541101268730426937842273524640629088774587280295112498052782893803634027187650495910040989192702414528562558312318473089525311834248839756016347666732965349171409604059719415400828636859584809247622101121367666953117480976800093987407697833678602579797192497447549614052230128292255327835705454025316439101083948330953756406788688717779983723755889125940761549936215981606590132754610167200284460479433255611547185573300591045682334097693640664057092079935522750321890469314209026048971507698265308615375433231488901079220253531139475274267557139981089068365699694476893867545032363355627739195740127659825427579190290923163077687554000441410809411951363221165717542278329617820139808345550454997633021662265785803810040014421516081186277130086159689932537098012520812301316534548175512756663372157065659860542848543352707150379771837194559442525347300095973916995892720762082327771210646829533510123984255332649002848542253046794004698568269791088246612572745768810637723008554168794900217611249930177693990937202709633009392629958909711113694720548200519663719345570951563180382751881674005214763264788922316981019211314725297477337844747622675514863610869121628403733059289592040254431450369526223906248977043166650505587907243238407470123650741552887017813994809525791979212303706008501743487339084594062536936713985242133753426769643853284081905713659160351680711710215585169131604311057830746278991441476229673007006986198684762331546495968174152991696319923578644553624017556509073251119387611634241185513744206896349143467252117363387349855163666165885767998498336618964413607114275613235937513118034467571037175915841125977346785865103242439145774525426389623859925703045212617409894048462488482533412434630321644264201128384701553557475283380587297812524241468504753037462163718494270713042846470743539716646425985555808085882777307387137602724650301892498268086068887243208017539746949003681142284995988058607761901391337803143570336440422235898956302413415192651051332752330268518479881962642882309423350414183731202918572222739169849562566508545967033449106374419057496377839205834251805188822714203637839388002898415377638670863588244894469304691210563564386260956467059919522061893474649072092559352286548964573752963129850472709608190146021048102273667520212943843748644873909268263909635682620610862408267818679678312530998000815253492252710400085275099479380551899478564568890937117677676180468542075136928852490398770063804675597720145842555525310501294264663675218935841758507753006575139252210761873965281118597436749090763459216371707665182666839860514754079929929791327149923497575074872384742818443547785805065207200585240877098479021931156913527115948485419595268495935682293188289070679799363718465552167035336197083710470394627249063035152989800559432184568142500084519349558543959149170955815144840039494194236220499906947205865459354595015429611864396246386648372137700229363883497106612364199929235701419461799234093215259824392247741134651863499212218618533535284953708042993420572074920268814878965090471435957182004146991875634816654175436091458177427781932793135861553039333423631793157811167565590786964327583148635517196163155061919573334563714497017892335416581833449620986515443695457195338945813652507238561894287112020143169683139951582662250098365010498906405582510741619084680775240836399023100197966773603997346976562312292936123788883205871400653767363841482951295302192163272612349499336201690732490283785163259735555073149485226810256553820524385955325249180333006144560222547823073252779510793291450648601522310496095719408030782773439653945720204601775082778692965733563863489378779239565349166053059046018849697216385263526340267339648121790501815730171320765205605682395521103692007372619322325368880028870269985151358755865678648866445178155894254979587160680458309411800014142433780649502408782417304968931317404637930029954496965002174565755754180152172108855673123667208982047920339623437589523110286615990510044019330488137466511061776089917374283345244439989508644944184620959256214878513446017097422748922161166060237018152260358233223083391076985307955960412604523995404380859528199573868791071388077694700192678019363943500127181880972067316562463014370695112677126042593761767612379474378340325419230388578848959592319063806560808853597487969793676315745050426640867148791640277390992577074582558457351346689931135290736644006975463199281889816074564391934781018485651549169283827785952738849617885457497066503863533421960240947055131881495245329052941492750045249840442741201923926345414416292897673948471804850266036576425129200245863762644217820964639904873425050718526349351286317774242420819091514857776466464281834466172209289789718911758220980651408351248905202092387300556523222175432797743368973115477428541077645184458267605404673067944569960070130449715347567200147168939946570742719983198322301362651120447809763963142318463984468336021398956823641466086470828292353188744520052580674778134060492470285413444316938022038603145390559105860309155685162253011893999357191237022910886479273355881474908730393912237818441547825762262530358034703394767719664492718525633761525721496146386071303750832926783661326086690975267200532434726307451476096467249166198467808405209638693897794080875075422246374756493289761255767137939676506725736329397801119721841946645313225386220313739662725838476056638036031377960258525361703422139205401753386283710687432389339171549416603822559937140504878185455976894045770460671657980796536996573803640778031873261062497725361123565941357569968367397028342491096603111650171651303651218445467535550429560613241284929287525115319466664655887640212952496307296437445145694705184093735864772383684457885057416749944526108731496139536538341171784553347056408830615119365018397892512472429249647362334532190660535605193762449862693134065775196988576604215003499958091473011740961691673165242096092596712871433953981676584267097352947571186710945626600676585908135213765157884152298835342093383788660493245631047389637856743078823166337789807148326309263461856774865075256319409438608747814539369323013315956089721100324259216249506587969483701984369637717619430796874130635242917893879323677298324077691342324109875711475470675418143402323020007118959479054444236213958495400607361291709866130698354105230312803816124584654482362911439899757655455521783681345995266131160876029552974196855047501887091813490344407947457279667171088072619995111491236633872870366852873607321781953828639098151034760613645255218738702838586442589923466991015516540027009380651304274528541430369852415811876839820352311551692106063458013373905188374723776479724885809648192824889255936125114222660700955744639670641488647438009369396025966306157969907638898969711890682153683263900943083403431726295874069171415723587929919104412451667496533952886891194528396128052616566967731225193647597872550500472423988451493975825567568315245998645166437481600194094240932785403736834051732926646194043280798859001368208822765002408543714297427722930567031528201865648394130549116154344390719328483023345856269159249888246425412183869264813726137216176368815237853158487166459346359298102045234381801209557367991109987460305194305913091701023878270706830350818088136836433897731176344988231445267469138166780962926777849152930030850861563577536978898830186624242968702960732476654507021903673190564705518141424706267864796858768121823074484016963563539940619477433522478789960235480748898891229756086188177282127030838022255552686234808305208538745077382260291025649749254628471302523807754510676233806673816185726879011974882482053659271792680879948217437115930059330602987128018913167292951599060122008647111005103207526317674160169644729414909868232012111684505945131613055780938194472024959023842023574505130039424228302358283452230814024696021220759521943082558162311393345708617717913606878596849990978447461820352868585055070316334901827925830969733328692308221396541319460499329313823464395316511012389570058815447846912249305492152844029776681867451069800711437420595923690587372960793895705583167678926943788036290769237860884882280498723322284483314498717840238233895012129257535442855357956784879254053690243948849148209693712598458468663625495544503321851145600465111326629277391898443361166845421556173005439443484045551816704483998782547627977949759065832160815088828693055709964220210102662297893547200530785267283416207874715015570387905465521345787181156063971564956392139633441641337886664436332563694889836656565419306497159467553318290544507316353930815529476505915761420825363786442795395582687542079555467967246544758457564324683409381059146905222389269332733669635107005832645824938494767200764035096142432940292415539144692451226386220368097582098279817956363882173264173648355062529387662861699158200950766007577972184314148013394064994006874602940125296918276101736685301264600689982957398029781631387543872658444882864873933785120874263182371480842858938891120755584792961827147086823497280638579719827259697043221312711702133940537560154999994222577594890659730344576361502145347303925324569914774088693888654482084359943711343549506633958575217152823975893658591742634448573275476445288881312810812345092200312820983009848225593753507330860827858711145932625725425527183411957270528045681289377088818688783418255796729012694034991465345894960853952198821347773656608215733996961771864328049629687542099417372002631846434998015469755587596767924449005110403937448386695653202058031070066807279676414982058995101167996948526032790153692696544347486663608293746542059937101840406512439262629547946879348758997792745858417490555086675372433635100882400451603680005422608929605684412094179734139180293343120641402138242107553498189355469492475563586866900486456725468172755082823693031834423531282909237479718017800520693011667371298267645612581144224616079752857434386558212668631703531786873629903979553324945696702789405219379260886244790672609548476940285929004593865374205299402193228821875266561343031279497425537370488444582126044244848441157911848177779749334400454396183015675318896532096999707218232825960097965129308000009217396431237107516647907263578807382329471330635764511894692908197590770112100396181159626109102135927911567356492332846438900760173816183344464551896396852974453196654002387844264439938459425930689190540046696948463876781485971713111464669983946030782309643808290418608218774413329298766423866644364005625008137494324343951944218199223661210455648092099203186721274046508250570884110168378311084619942473660192451515601494334087059324441616860621258575073138700177423623203966515710058038776015304581053653494926003709828664823566205610415370925118613827542567377997138193488735876478414700458888127803898531084992950165838471916651302922698215414364803827797320727488418992309191617744543801144467667801250236586914701668599001032881181198419010529563212198709525743736505746536763288052088344879546642309726979751275920241440209254670375178824035476495068634270480735275950511958333765946019574759887775137885265444428431017248353711430932201612549989728428621710983214814669235784897898855232078722308699695463408683781863429135509984043310850183056872200794559850535091315909467539338392250491046171391782913905852866154347952834690069225588101267043953625851140398959514569469724464050861458863400354686943132961320846179478256382718190731183438740913646100806739214754694444331631727178815246980180349438447632190868864798547283642243579532257451435455092906195876077619031884281505322982253113006742741282646770710722895501162757464939377174300792163409515613381987882543219233912687380717119092550100602631917539124302282203044511052602617569082295145582757910073909785497792009929761715154103051601380739053461145367684141110844185913049319928022317003667275664086263246523803653352023727516700160815461771660235004606152849710038024436481873582765129470751546674806659922172096346134799827525754130953634991271942493585408616057957270605127500836508063954319135697946376096313810571357921864884283388338432064415254654932120983288090215323855142368085298020282975968794449622037423320037758222829484262062128259938289244798679958663384270917613553045739695036003143095192479061927464751241036579195503974683661638966080399541432706364008488299761124188526851964682446381770968362353185226310297695105582184901909133742930033943828153241193871205498456798718249060730465597434359273533397304485711020941211454017203534710331518813000715580631365740414787768792845153504409465121919232329705039264355461298577780392708584107998213749961043153748808007534504762354567314116672901003432047970240406116088799234094802625347047992374136421806169664370741357306440347067925068773412759161707374753750274737569562181781046872441203403268379668703211453398186477623313466197898133371865704072962787047778972074267336539663580436433413752037221727259544934182858415039811761407469835229336229211383576710000655658533261486681856822177523471832221013756826407703935692711497977535092051200939874679536268557160444856806195830305564610887010270032004139381099671718948319792247338724568645057609055502311031371402865312724258315892485283944336990464983077229799847725636370938743015910091447974163792397303974749979350404226103582104233346189585671362511091008090651679426887521816744949368564098995553960828243506611431023792007913146427305613609075614225970995252366116644903118545659466549222707202616246803895079899076041514162512010688928690719971968322067268304106702779401469565217924712425316041989587597619706834090254329875839057731851878915219418222863832198970506496981080960826599721484056763270454774858944474936395016942177878689312074181323754149223889963088918726236153458798699205391044111782185138796679845089589485736821409277502294285246293566161727638931721003148732733553640431084376245389180887926403523831293972555409877099658482612270042236352072844047429426493062858508608841652548481602213152397226672495797623802371005166393123997988377408332651962747152008055284575771875567652227773799843777716800165789008112890649522412924785451385156663748139440773082405808960335834377184815781126146908302916510496923334337039510522313873015806313475766106486902679691190364999907202161488824910799815907790647832683837833838316599262365421550224882819022212150685592054904033027811301622809299933079441297937101572165729344368069007822068169460998755436235976713270102718443546814974373187676629323511908249870533851964421945763336043528824330515325825802716950700526669015139518494591445983829551042336030389225137719240935022420541777443004330170835073671345968757822586360086783047145102124794974442473234329598149810164921657036526493320622121928352272729167741890055345652548707468495387634713371294697023100003314506233089165835231135794212541379106936145964923652316490201153507490772925801634052957535530345795147779889572582054113629550549411792839483865294782306067618787629701274573926458294669044709463294322432662672258301663112924146770131275125854015866235136629079873969199117680429135203477168876532078642598613793524605239996502441471513556018437675219028977929258348103464712791315247816814742277587362712994342811291659612312976104088589781695842034664169275936407758626034680513701077340107838729144110606486474295954547357068338083566488314036264046759517111345592268933647646428959547575790127985468886202584427961024735503155883177477439591765946563232648463927670985662352535455034854767589480245965141352605973313920387140568659761383935506556720911787508452433431465370122442027951996385558028004615060493273105046145495256584021382405895879584120930022916737909675144755949977944084509043272422627885670923267874273784084801036917474721790685242040367405401246593169510770331073384841589006576922255258524666975663504322474892068650625418437005207603159923290923179623831493665275686446218114291856441054895322079683125851255451166878888285662707353195580054143266033593158145483102858518704937730878407728788996798364642393635316396825154068552804343464800786949074685395361800759298857809436824342693356266005962391262245001880714370703706284536836271433591957408126686907904589350061153488750163458971429085409348472555167474409836742932208678136690556391829253325684095861639935701806262675402826171251464053985996333081557861422387474473502155856836121382521084381847982438039434340739989802117487235484291098083833754902456529132102913701536882550283121309554749179770259922678186741481160540194794326872281736947550891911774594812591523443602572748944762465620117336567771339968398390390163509953547281388118678506713718755893040649298734454784472664429424632358348794667141462587640217727861634649698778516172266857530712321049956346170655552274537023729819283375148748300186584215685507545421489941729228812367644323625312942099040450179336492482546940031185184343033354739758739014927812518893611148489045212105484199159061396311897674577136167063868130439295163213983174813961517997887568223622229075926483592283802823818256195798739117440641857320191730653756488739524301702854535839296965288318174744025088630786445357658876927801684415771651409421247909003913604670585503202212807663433213293321868637555908328207268965762723163361439237832623130726157100556023696952065226542094839413280809975196978047605754884529961067933862584265284228850222873803495419046201992835574112312430906468659063318263962651905486097276876406348222718787288662437710462438498246847939241785567932876054615872730982679400523482165188918622706308235850337239373715053112533449522069814946007753677926173272571853841792046093876203809134009958406276456397791463904399540088973817500784501316713396812526913978622874055656080831646167859503495783773836929466903024678426325737392298250719029590583058306564512814955424318376746459245798351669266856636401612474732699707243595519195679790648594470881464887276811722066314917302184905645452295765621915058834228236488603874136222524189132536602803558569194011292810114064589199472387425191699282002682934039520849337071018303738661241767733583689007969075812114311270296416812255210059441715009450521670831187666878069520380274097455906131340627379404640643962743959748479497846312783297602103776577061428436392594348359459108088547362838742630870598340996495184978790013841188412375503897197407996640566035036625516555926262668384790631338250544021629157549033141338410444650154204019612083114570031129639031482580250533500800309884051201317891577540598225418640953141408035606219430261955997104124807965819169372157116504740602150661627655657522044469647937039387017092053985368515016526420136878059417895130192279255173661436951236871691639814472351964090145247193559772910987469866354311422130492866676943149133509228815331423962303311423689156422285445177236175921777600980541701254494000820226121816467117951030306879867584020422670388663383772936365649661295313540379263476331789321002127615429831355533030090026413140452340201630379439286378353311857542602528870029489846301873611919085841273289672025673761494581177383988071725731889248064695454170976530314754615359636130271958981482546316111794264989634677656940019430277100875788190466164098273540635431168448160878643534156644089015110974701335802466859106235254168319678832194369703405366032500736761179947390792293732027466452069052947555603363524738957674666595716897094389070044116581808247268999090471226550882335288747969057094626904641125107662476060642722594611346067506080484357629614571297018095745509854138131293612815794594629916710848432673512188577218914742613746589164295202279753697223713772368860288295505891579463676576845345676095872008060618159915354715246203001625300238001527593431284344100234881802668916489542655668189135512480146823634658079631263148513378877544491559282796871264149635176589857662906020900320677671172253501467907917985819457588696874768125475847615793427366992277222172123414280038933619950367642409760489613191984452882898883536233261523274838909536824958378485980858510431479611154138537431580133320697789343131575885065089456717392246952230420967932005178513045428443934808460392569530175176054308845900431000758883585235776460520593689096902662274623967487428609791113250854144723041841343654538337402412841812738657765904206552527514946523378144012643638976389106871243562153697268427329243925424175042179665798545674133651648924299840884953459437232808133000243796766101293714703962863234080089030355076920180337939103033299791029460348408786946022434877181717972111033343630522089651045949648002303118568029996622007410910932291454176429653831501560018026519595557925017251907138251537856002334828564536412077625741498901443596940992217058243531464069381919585362242492705704636026099686805355240834425377515805616845960234479442557282723045033886053087630116501057829394872737013284535405673421397398007957455060758174622977535402711699324062483652945855657749112569252769713915669241848308773826917428154439031569414561466150635965625169065438648864401967316582848159454181867829344453998573925970005511487951560107824672944570455983771653984479888266371171435618433258882948436775950415631099791196904924773060748348170175548492267735579467989949176181306029846123300745521987086374283269996339102699184773625425912715125181146463231417951668097905377451200840316511333890171980415680454630497854805634081227528990196796124807407279578245926766905479535599165036018101354869754362418889171814922122223498246964943516211992266928197260508940353180723123584594636460884030128907691897661764726957529156703132114389603475542289189476125013084273333841287688904344551655149850048455304395801272384542757312507634991029430506475967951648414490835764914241024179283939523382832369849500389557483409726258406820246476506589800038169648352260815536644677172955614485692050808186873449095470184576442211815512610714436450626331361959612986061128547926272235084240035364145730408503110607508337804591219590432999189521637048711019980063468394977407385546359514180282232811763711323888271096458496761185638775222558906066286154002982292405175970586481359333587815796961123998099032420701079223799935853017573965164620571423178868123021416601180869197968260699148598653330150564990662191911319408940985138887460915432429551140159528198866182839952733654801173926798702382413971391896803330041130866619455095195923933388037783662986974381813396342378375228246327523240283658585609825866587789133806362360843949341560228245121452263381913378521719464444681600715616429992034737437496848902757271819253104124534231084585688827876355050097973431647033618181213900617484403946298033025575766912819031000366379307570167262204223250790063821133099736093659033007522962342946592738389731568106156636726537401618150901973392530894035222303273416697632086100487577550017676662786654037501246424718170236588172972460466652715753861014258651827810428388529753063109872001150998530700000481116846890027468587289245940573632281008750979195924884890436868829915796938542921700665972269485286840332394810222711433191879103603351540815353033705743246555977992378365046923208227010824040710602326212168719719952453994820882326318928098772391216394228678622390421930937939534550419571512584401056226666491161052734915107004274287993216040991813123309581307973214929278261425838090484325381314135415363935205973301953415663934072930149819838198297148020565030334634937557688279133846302327573952304665635388776185438533197275699442521774626853570477102133707066256047370086417772514016207941445248959863168647769571257081952688187358623141890178131181317244653086281900494206415418388561337251485219615855218462992453173720543845922687184278991918525900338124409346312326050435197606860335927414083576576977524949176624924795062641563585649332729466100217171799054153415198307685806267216910609536866283978938294608288659591168772796619867537258128749761137472002641318292585146216814138136823435616237424063371556905393845919895968893216177840043102621804639624935792348116729758670235693006595311199592111441147807616158424983607481370932966477022963315991739656709086959355487918816303975132485008647244319278973198088611715416660368083391941366972701325604155712385609798807114891345329692152137967777196403718436306697223547766070249938622260103973905274527178458029551906822334746579616822808845059658520114745255864962077735322094163205584088076012113900806245603660005321414340199491084405077096176689372352346564725640381285432114153453550315755038039581066326640385385744379780363816546281597463652126319384433293447473278931127174442592068362229545718653394967551965145098224305209047684152087771816941232517303339534842389473823380477511047096681754503360107954793569520172905763086091660994673395816346623983095151706962929400341401454199457659985124907113116739570473621655449860343599532281001593405631325494083278138512728283232982202469660350094024592268962017468036069889827566812338485874255343198836139694578579091435776181831080855490399963758921491318552688550895280596172369532130300776237676451948503249194790987161466287883528901827419318568142511403731894705941646287201599113848219248413262161973761316741685165666075375306464682788165725838884302303726028028454780358499965952519723671598705047934071321663659491538823088261759892823382205632972617168258578586797960743567993603130434451984962258217633859064415595869853247887108445247980400734470026513751482149164219774526275334065217802656799997524200386105679273702831287486300930694875503421388187830577368623599234559170389238164554836835774830364081263757133940246220822706642212836418665311472592587375848607142069678122095640258439275516894613459031994825870179818684556411179444769094134205781849848923234896953615770833684961722146789354633965950620860709106538210057626099425032097304142563688380503454600477415442742697006675975805415634393558762045120994880926039828685945637680806971834250301457574078416002953583949399180387108497783266963227861387310170801649896629865166915335540885888687729728727443140187854411687397454687035880960009705554862772426366560348630795394471675041199779277509675908121827760072641598848354814201841903962166357914984999862720288291712926092578954327716237976250863109499480823952178609368421745215849225968282184619635790044401612648740241197700998494058562446572155119475806670086379889286408120185506731079877312114381438810329437633925486785334616507422972452346683397657138319539857661255153129521639859004763083058848269093944494665176552580293460266975519866022775761477329476772713300525371467251929657135051943664382634959678025017185180663519098558076546036157280054029963250892163309188045703290097177184602653774914936419115114490497474758284847534610506248231943038317620181023809560591632051131574510821640872841750034226530480525245067659530675130244869384987720706466754235920253441100626253361626161169924540859383508017589681056652362366745462706368013771126408890021856479641935229493077624229439657487699727213606800002810340806615277629312159417674337696210169777375549465680609838683365780629668342205006275962411853788900664910755428224148306547106067012419528692572152325812470304105627779158560599478282607979247341792082359071394068528495854910744723694344005998614456452791046190520423187191043055533532190921618963192602402928883618850192394788195105925174578522414679979465421793601584526306310778571169377548520963590085239649501415574687383678926282503005028171279417889456946448702398079016311799599252233435946464010035899321344261509224036890534516735681414893730758862301783833852310599778357271268380560201862297713068233241097186020995111561202793059442847509074740833697145918116385658713421403204073423537470350757294575224440005515355345301740537733669185945383626286631602562768225431861882996855903760103236149061453986172320926982899412071385411120233786295747835735105809552245733298509646494845947925941215560203785495437127882983706135158260891254030418625396935242961317605283629200468475436573241366613601113724463695321437932789964664112121402269416007504651508389724796012933117977684280274523060909905312713508305452053842159693055154734962523933979280112450413929454656886189192826944895632400299811287671285812313754083106554445500382695323291465073651539556792656862643959891993140828799827326112975683589736836609150005016018746408752070012019339139348629637909926840670630753895034051789379770651978207284547251854734274598574877130871794489495055159905735392947409276937931420204730031113290105534140243495155358965659276690496020623407726007601393796474448265789712905767379249980141874830553036067846971105858682254904583511135943490451065572795692936613164795565196426974410697009106276256852674401978966624624541358358694375476109540384425726968736505784144324260817900116374351750227347265964248747002456816309916116526225808309132356479786356863381054088427874791228144106294331862752051893701596299304295585034556634712657688662097737981890768853401922779977059880494940832424275806356897246186451909093619907647752419127499117510083199128432435494205841477202537758666841622597127798194190968971015990349671465754000275717366916151822080219419297306457110845485170242030162277118084442178588222166053452731019101702545407126214565158126567710180196634953101015375090174855138167683209842325612697359966895562290321841024077967362750636357471225785511136986169873890196871938944714373707444249656501870740918762720637644143200641381862345442966754263460741279965952022436531375004592621758940443555709575309067318685260031333050744589616059699627333611858294761863112219955814722180816080382255682379836100003662356914738771965026745554587800451967972041263935259841126580676613604398097457655338561615681187765073986693597403192474221261918096488707196545896123408839919996773099285770554713377579564413156858472355216203682094854579976247505502312967806164268893704338264761608844232160088717562359575991641185248336792753893434786791189029635473894635967414372379256559366116926506216001723724454523215879520037692285493295309226180391484048441414814293279116329445252223138016127419109509613305916032720131976549063705445686910939874918158091916456215183789660845481260011260190284244898149869730408449504614130219870598690119991545008724956770309036547766257892231101434640700361795252287516685501727795435343510829811647732450782820954328440794459612529311989905240379769052695414698229780781507551265246580726644823870929506914617961710397081591810085560234055940672638458928321229984214868799020091656220337779896199212219271275463901721480965364839040464236545383731409618777898796934289747363504029895822769552621121994126777661989770058190389484845754364807527496864056265408102170863674321368974413023010654181804624201845089035223424444665514480515619271046236410703547412296064032314683511811073003762971668471199431442561240516923574272972788536646386760941204382814706723250511467406039057778253975324274958816485011866738067399485811139498102588583795948700833701675288260941513181833610440494017698396646842314552240280014102487807058620410823765115388961269919200237433815923685102090640227406747607387144266528318910444361983027206632722751248977847186691343740276861788244941780515023905315617032334426972224834894370838776462611948179368203141224022534624063524076116141440062233158191679866270129622753947223628279557582911663862693318620100095897357044756186055701683785619760518218599906944953961072736545338037511208161984852380507680879168765957734049989281998786999867346060745228146949093216333891945439275999862710164323371722894982278129854476970397788863872577625375898283219340410338637979345536033572359871341899987760939158768067037356603843474616166000635266859661533606045556218017205177384786078179371076340709467328269940865830168796412678168632547769215062600558315473388200661659865997748663642388284762418072739175008629747350903535124666092682829387824226663763633620158340086565968450209810712645573341154529433561280818333916597474879063569103163747380917904621315711125916052399167528634075581154556379195474310146054735860518379186808802171580755848184586886848075748839700825072801636916812320027851951737558154434151976953085615464455173889156453747932454110043331290526219674466091984839713717037168614895425180717910197741862197517461542928715505749685632840897074411845566052278840911645472988008742587612522608022709253454057165421810594035879025763529805952654620886010355364297390967429864828547192207641792957345857365449969526098701381955069443408597875149128162703660772352884183825966034791844419969457888466104394870579533778180379996884797904620482249900810945868984792445064052092003241652261936381464127139308211472055080785543471164023508769372059985509636344689558272077304462073381641959750440934075942832916545658347149015635693569541984296168465717222537949611419931088342300668715015397698521141024098567267742164583393961849536889762821346417413108640529985614757520682386338085707286347427100490931890534120385488521485638532077856762470149386424966329400253433631618720549092664362696043580708589549716324830133550761414839460777016452320335449237224516832078436034906036906124292068089050059768763952381755418705184352756264970098586969491951232352341419476965304642976540665380719971813839741712527030394661611725737047349226677520792025308845572394608067758766017358699636146802610359032976127637636377114090697630926567846727155843758773551246799224978051301664146269533743343406773459881851597501839192642201050536101649082029746945664545501241404189640118683973107525461371769764082652659003165569222189754013460618359981476658563710850361637185766383387650383567895979763692821622328206558461154111821789760195449272814392257891127379776232576062165132708486565123662722239159453012783016092358305241129621843226977231338949842239564201237220255643196201341864361348640966101769646671485765328680329579103920319102998497771848678488931935222578498057873988790138040800173355165852206634936611197969870151528459493338005061899472496812161984318476642850350367302437377015443516968623175011390761328428496487395392522994915517418908897371211636885512517977626107217543539271799690076154925079046085210475143584429302173178625518276704933275174248026753998762511434202449522656118531994918398186395442912246666556132302016400764636415767436128626256274565892549258535798545055510214889929958113273727104186468352346358696771806279736407454448857694582093185895359493196838649589198581879857438519724113997920152112221217497099728335170183047931116934236571852315703303518117340822751954327468947743845397293058916987433286130960863371702638318961748297977250846033563685526090111432456146450915270457652449688080327852822638419736978581406736962679386142826560463645173096523412286471981593885491069360981139282020530957648756476009831926556949395729046542481895429569295285817908832018671535812081910935041342448935149811893906836198211043303309493603655997739918533730456432315003869072137575091342891237561509696050571821832654449674648322005742592645005620192590086761139264080090785914291854082205749607629077291531487593061914756425504143926229446006246353807072818686429469235743332099272075878565257216634039161836072841575455127650846732163236103503807490238491304716506948732938760979150584618542310847910216563864286742195487610896982368261854365724423656007584092307069681272620798422800159107620195857325343320283599253035200505550532106360466032647300670197889582802008719464018572619150620445123349135077995820013812757203502273572635689869772304083056106784486372551270870211882672351141475457007980170306599892028658978864451755881340105021621887184015323775466238857282753431513416865794794191986903411099830938515583295440434468047696339406671000761725455156197095623870843145329989317004406667467734344067027799470770224897536335502989007892949721274133847339543826402860407573887961563560699430447834335846996639471014268266508286119494837785185615573995913512228545236138558589223388760940171089266416288278773659308607519340796786907834855837814474039165143978092233183088382155628073750555964445782950662947367492259342319061855543533974419645141002855327193526443007881703542076622078468671962683273923563167360217094348036479260754533924940223706267427980164821798749966277973763867045765212517357886211143781797457928267501417264768115693803104705981848547208324007487087104403004717945401410632372651616097598183331045217291764227483035761667816776128587000880917288955178267816667490032271360275085456672727296664084856868380389673755766813193077984394359423391839787467511881943908877445397307143072144481987760801679922740665892511787784690256237783958433450726293018665184586802421941799951324352758306059842991695208341323263075213395767289748649262455255643857832072955978070467184341655850892366004352502394513062892619265295201621442943716094749818388587654134560888638801370968403629769264380145024835321303353915718243093494883724128466858398358574356540199666437158414214528521931092283111711703491693842085645848516185973591077526684345949213362742532296490895369796487848152508043210577667235344937863998789884638645850778029253314302646460817159517419430158651448582994615693681104811033011154528055210998628358676625895598346252836675684017444753487089669678256170503628418402131988460822603291642208041668988585471074600858158192569695094006512106022387092297424363011333798089960140869701704365331246439550073492783964540077621769770532481149232294865971417028408347531802346549382539489607717503079586924995521981073432682469217711588585827394213998542193045389163183481369279260081021516113069338229434877948258089407945065165255892606186138230808355608957024199930622693451098944768205527985860925352219033923226487910792666920123949023094561041044892626308129902243037806920181134050201418006866957392955575822127298012250257599806300977340258684834618836608388215708558999146963266096665021975084620723780235063842783929769247044796260720349723653402701812383794482469243702335484981656455463832495904830779095578579410804460565671114849158938947165455416531123706035633645880991875110689779280055323541257404517536265311590335458771939798840544333765002375650320187407757646909453640806044057108253429698591549821132697669023615562060180563908291360280023761823870414133193573076765851981596280265629096351179851876216543648225481561845020812522869109335202937874606310726370880156011230798680519907655168937507377988096479114035752769484677789319966802947228011031214226143088040557391385238040901449952405616378446342229710449104116468951868109495584821657660091969860680330701595433602041934351453259294143694981043955283174415508955470760206175433744423514598672042762823026362511533272631139474781342178895932183738962713213284623597118803729903613473018794534213262457050872821853460034604244335162391407621619362174210649661843781449816977940601374423878560000549216712877699103561806932724112779525630354731205895430442923420696250748249082339473710486903330824186962464940893316118065643012577115258011298925991719121934258037817057866071314687593558648528127690570602017180324965923779880507271644394969517871867751848314798174127391943056141938292174065493810073089261542510632091794029442207380419624880669730900343101342959287696524313739228891637575888091242716314410024930745323591663373995003859615366278182351283009665834542318097002137300962266705729374132459855468223341992415950320911874763984110493542944187703601100913807237527859649745349015551122240083027844362172320140199918591825689217002403691989862916618383371271175629528004819488184591270767226036306317899479652248372829812085976346929428113225981803150633591786131545730652159428623152221023776778925558317367021251660365009892257791514501430970673503993110164770697465505809756214847378343610761109262821009200839395815477936869658679067339206476821047968397437484437917289316549877235952873949638424616505981359092098595588277788582523420615583645088098403519270577073191395555754655317573822865911913094206994845097124485928495098616055615201550273545478150053461366877415075070232481619195024488353587016686435004683016207390805578180757699853504319532382296520752611524490403998795140710810715856665812931359611212402150371094207697695559486262482417573782753579138339783744183781169361545419680049086685763062092390450746319227414076644251672123766433609846107324852329559534613420066149738568204865000387274612627424452107767827353008897251496314449054743236863765867338437205432397171087888257904938664482475641524135956115541232336995528659555749971073305498888898915129373417239030563455871280656118393742627282152375778143326145892333008904172951049016501497636237355397256295658045048562511383810000608294679163668252879818169816791654891293315643856560585826375505886262060261801716328867534177673564685799577698104463154213306869956148296213555873279329249857442094205419558763018644149750097249107570427027652673512800473325939809428006755463552517852963407619080866538133087680363276477902450496266710234907092965167579326118575807944881339254520400649711608318389602341388760185232538891139636077133438254214968355688674524319662698977598085429711947297515249981924751461828595979374498108339846141542851701482840623747526573104954363155438066284733961428485010469457115465630026766697309691336798297152226394145357300462640157026166350410090693435683382907821905308112210729188210924247809987933524160703904451932811486303420303191847860605496506204471858289055883794423478135920356038273583846770033168763943642709025172716538149236910213398135513710229193909794411980711359196034699770992142340847127922089161360645598888904607194685616093840766323276386194156967703727491773431288800952877945429189013783796848753604603526901404540336688184068811876060707667536254582586352549961487589507626224887940839894459908716677812537684996761606013960635177641600254221058562005420297692059450862409844936883776055055214953397100123636608729469947935379207442764393221788258523141019279783421582280282110469580521244199750248285692491562412854108576983349285816973790857080782697183597469099027004675541918698301636014813182722942598575838124028041227725424377252891505937703942314753814645007516145904291114817347344374984729778549690082661024358884257069980628442663102509378925202861600477512340961035993781197729013072694845160465980900752741358379628137415280612245074621237352427107359772230831977795833818870993077466739419511542571405929394960263245127598175905691018085337518268619410394638518315791632621469087222337827091493156836163050130517640590382515156803627158320242054739617157239497992174404814342810070097667416426526552782843469418428427273869754164658955430440005294532871676523802842979120813971946632518270796567219841298254620752925536019769725222392379470778448584715613169151471624553377228936952129892538147541202576017400633186448852984268837555299154388535947326452442243599488536918537653808149730115979049236065066895078082253093751449154298742374028282067417567507073063491736704651791418215204473419445644961250225355762989057395817395952975280519646116260214220668986709420915819787735892726752510307163014998966373416792135194972246349362210201979828290181188661231706893271478119924178040466603046890902192665053182260544333171260458640250676452491929539687359749792629947325622457272317342408000487897243896539554175590551170834919820576864775667457614507824858664115709682152119050962433644290446249481770569476955429907515597299314985446568043307771449872011072414565708537920872312320400002605992738806377879143612856294716268499544161584913463284421825525409833602528140559583451718254560755056866951249317913766476444477636694147156560365352606944884193390461414069559559233152060688154809797974680401032990488983425769901980448653078481907788264411909656604668184066339901934213462258314740415333217754609794661541122263108056576463737134362085428873451282353807301818156820298655238104783966536330801928710132942189193735793496776481026427617665998146789029811632140333563255195831823680696720910208356417019698250799171794083149435416616943653050912876869277852622457283125566453604590929512627977940869473947730986067627565389860937176705980161502433961911953664774556711180003216529939479242907903545653388929091891392478367273479602159159111444639060795996428797992890777181995984061491658075251595048616408478654891751091918064319034775889493072624500206002487364618936387812724426495946838160176630582576660778375036354344312594244774956275871329787451911204018455244667488032330553509033915104821699813059882290783065218136907644557269911631603211215253286115797025920645066894410850032123424429231229415821155074374139502694460151796060066591568087160332545495875113446855564938401726491971550009423035064533312760338786308191790425624923333767624908649352578814532037217097567014932433710842299116552778785835474290717403643473933090371387114979611233584087284953866696061196319700412159327859205769487917997335221084476975341931021516790448490555113865954951743760954998220958918577133263187922730891894731081670778803698790350921562035707824156958169061062221096378082866111258353134633667996052494233193886563172995536552016025488116211828374414372619678369319549840991977127223328832638046793332394296831548474250634094583691745650889254230259688594147879728938064883132205890787933351612820328949471314667226412982028434746101589211268434602084618467638005063428563003050179954368789007089356613554367404864048561120682638609647695413618872086871959111778635573401795847203962931673822353735431338828230214453731072535058195574281242899999303691069124617108310660979808479312253377830622474640185128366967446930409702744121464248748278839297608438232620665716855113951041531454545100711394976511068424142956871160720965520897699946976390661038749392104184768886536684020394322069857745401696934936881932616237891355716909935529589216039199819867465400135716273168481740757060422517374318744736803438356157185015537484996586278652466344775533643365286043460212282739742398359327782135132415861735651071300318456825852700841431978375239286768364012192108325818946753349072808328357184872213418921684775792984559749294298290055914899191929567081771352816817212822078171565408703463507682793700142925304836015732667572452398023004039229876669901180026721328406030053754218217130248536027334385507229922247643589255529415510045008814148692839573429170411514724720032278819919418672563968189300870404522567582230227798410366054645353873791722563760511514119554614535091329242848621672483608392004372682064261418165626914172218220203554858201493950657107727899878275433053067590615777365508562411625817645117385401531355391672381455716438996185378382766770913598504669685074957256518443336077161551882743426217483106888255007955562815795262090602362135790791590980793244674652831752095086292655628579526558246818266833775862788350949861608672954053623677930798150072810466708857110220857433459535721645508837836240142566554465265662779277014199622426777301614388691806197900157222465919283751581648624983797704616301391210003887539366696491780019003493671453926587097188579657785233010024839341386568575142444949161567815983276242842406044447535348757490433283012365247326051509682904886621370182590469350001986554561648961628897188353562823072966312446895587057516698263736059985283335515169326788073901565545223503089649480468744370329523694707259790842925067240196595595211906733941731739732344837125175167545987312837512174602750492199008177712998022061221751347359991180052656592314910511566419895491749200485807902118427749660385839276097877610214932084692493614047120863696490627434787302188813706925727745427583141726202883880615892205797782811826668226771635242876419277484234744230279117006554131033309555527558539033456805102904572488918333760574923681244632365916203120606010000976164047968541684313622996519400329814330078687816610290980307381373601264286213212582769580998566879335106597495437024254387606196139479961992484744367474858957644947141672520734047130469280453904178228905120283503836464769241746358705702030561215630948038626475259739998025040002623368027254915296344470833862474374136757704427483589072026139277569951925529585450900797412130347709517498321120637711340234680639166888730140045361481874643359224217097798839116529169237415981009844178235398109216457682320837125345437292973286755602923656560829821984085372429076368453152063613307814711369051493962125840966239607013356256104158435437232018236417165584330874883135525276150490688631357361308210664096439223824204946964755355358711065553925425594574210109113571009101175782018491035494417968140024519344075377031249924206960424737505495898453882239842444638431257308806851722486462194843766882499242671837784298189590098577582351785440541485809432896331189524224586189934596340574334468778002941068557003724530527429409170146159626505740331814875905894067441173815937230606477997526072100775179573943951323897249430224371935207971250820381275103778673137058065908027602979221901266129602838868598443991227422831131141019787214335261773873488474375444881483599409909545494950222274589813975959038724221427064742050451015097345862398433996186505997925971129901114650457185055310561547259488334094412181481456912349899480704946495021148053104879139488865634339324862397122562367843509649391674858594550989470048628348854150572704612880714001181844791356766660226151367698700242431073777912414372635455126982337578249672412713804194437649129477938073239418430067092820373071668126330271590823789536743445089422102395807647143382429276237328366280750594072843608726916899546867460003882925176435986972071888845772934956797094210206963226073066290155386621520001036982874495485793652395494292420569237224248577775834092969397029425389629207839785654110272871153896774389482022446828863906530106179849324671744373732980632662721723183027547359335272656102308614767374916285860999762708404959362605670197518708761297784820590437735906860752813450652260414254567519694259559235373195618629037635156050213726798169742970091531442630343374991146867415303348593901265615856719211409397459576470404269032512076613834459027706644136288728633472824729729775327722153042262734951780267095864173040608910385872400964683345735803854283943849636811709566584615823134833305140917591747613407190396244498981374693301170450586103024893299066709096894390227554505411748963170558354888009070208115920809442320075931685348839113729571609588316169031472309494421057577876774288485699695476761206667715272228745633085027103531625814647307136075810426828030177490295136430903692199071812967443990083162687297631611197319462490267539081869432620987634465547609665917316971322892112350883426344775129723818527606507105257630649055217652187183017100758528503079398697550187204531501861971268651835966014218474286580914516221848872441150832847091642219012603063157775876255256323361417377275077116632736665156837888440446635010049756440859926474617833421197193842572310145894722347901402695129123349259754395454716981755954006548896553329388354080959593381230376539743935646297128735698361490534689075011878158342713296530970546371567574811150229406269317016472543875157234520905201348651177579948809654459564384061199663151757939607555716434683289864510236714102970188389529117438280210316905033471728042030452539076718044570237405278531524468496389421776881213836402340302554445837765341932806345991014758075875385578762438298141268053886540506503197251513374797948499054997790929022098342650807313037524074682051891559393898369656942682570107257435863842909840234513940077970297253727135506975868295865839147392084978224611195162669223514707913300289975572044399934385991005458504959828397485943570717898937694259248498726651233390846986007012048209466329840558571958608658383732177863136244853410633783733557392138672419284946712985002106001536464659093990100949981408452105466024315066728082797929967687524296930073126053757204554894446088537105266871503732488251631280585558177079775419816466857871390164325797455366233319403665453934846669468099700592821510860635995240802585297384193812216912156361291298310931514195514125157662222875729550777192239934357047527800611885022468048051312587494775919101852522813215980393188349012399636937476910200119635643103134165467256711696031484275797988757478673139702873583838914384318077328820009537959901203360124263694192484912730418613472633337065398359837078645225181810173202047320281713282573083342730166914415798977258659814942269347248176483138934029987763580684540699582167843441122876428689634006225074344820573498365905749431510741998241955404619217423277047488477710721037294375502312629702635792304528024829222909923586202516690162904031088607846092606234065404309962898446016788614651321851007649270036515255143547640915670426522314358156780749420122526197143068240046315705858168389081458428667143544427325998001520595781157689739033901111879294484719076880974849169103247695687399657946201500418497395246375320769974367246917389664426485360939409659580486157079778703660601844892207726741346970875131471440620334461098435535890272164135259152509431768833870717095942138844804143174770278007758489074365993041896276548772754385955172152596441053730390408870610076497154232808779507877890481474941638161002538949871393607079422332450350788899842602340856966392288357306373028401786927819843655559536370087822056238691060297246330432810018457223748161582268130283596264150163226879189951437614633221710549141892675086994528431877169536366579675812137842019130388970204805900738234771937852346007130021290810573308609347366707059644100003474181458133133253990348256316812015569800446258609355273049824820131425402152296788211921356626046786360824303628445177747026061979058030427566772255756443752753973384582364440694746877434534213150068886264467766297516304730855714741114624675967916152369442250635502673445503432665011853785921066989770096077518473558921461391306155377215043432519937272224422449855280623945629235933431549100001671116866370609075299262276244452850337291009241418244930046725632163462114596944828182363549568503334700053332816649256249341069424550639087314448860488231808356654193314295007641537473670955276096897045733092161274486723227581369805268733401153352056016190270982762088222065599315821412913501206768486994839448115381418381343952837857991695032461287079181648870107442089763096836089446970924380937799418121279537396165962130404174674002986354226471878145289264619654045585821085641376818607985101212479577045274853660199736071132498218369003232349613833182231456173804772592092646417658285724962715579466692414573707896446546661612522907568153110619479469846124273616897053176035417614526851136264492820170110802285945763687557848474975833644944973042281922724237247135883193647772752067071377165722168464544448791072419549905502960858044300184523140905396450855736771686936855618361785456399938947649531296444828370029893344131150417732412009140623311408699750686110767782523541821588144773270423144711118118699296352604202236255148082802369110777899205035067964382088041506430665916250790538376746239936965473320752197013602261226637991524962176253476426324525105051494322735821493233099969250849636918691127144701048217425182441987514626852640729107087489845007124107435194814045491506312284619347831942773022173186063485737219032882222017136439839846465957835453037352637909229340634821577150400875261967611774322964768640809356281134436766585072242297169017294577194983508393006222978037968353399559290728971531000121282466199905365126654781613146283215686685771450685461106674450754491700190954641714705987758068474621326646203946579611755238155264109651176856406685859481546830667637887529386720723028138588888901942378018585691307166260773389308156348731971813190264102094315337005013047170884317433813014999196362268414963534024530020211719676930469462789607433972945063099440134172688173830707107670706210747779257352180238765773499574120891191403710352315581361638588526892051685835426756491587714786948724020160882319808622183709244526631456856715210341285082683501801312191399802340033381417364957223314457174866778494034634231096086094105240564511708075651747308748157452062804460818762970181655146784000874617262423892057530060050905123909308317311942008851798911870263443156950259648748104013363544870428427735735932065059993008918510444823823244529542727699456235102331846443465639168614555174165513853444850286396460956863283259720555229550708382169613323113791228090126863168314717391683647723354881560027189428260685863096597140486517128195636435844896530877519716648060478079824932885900460328939442370184134158333883609944766243844433048905601066410388177891162778940271545737543438029432460645220417088256296382142409382124601578107500141567988654681389544764733260576204930521283961766303530436531225881794654041805221190150746951928803810215173778620766302644519690396222018647442589658275619438078703456982140445758067480797091488923653430369013208574216898100685834800745202463191544230101628910208560942750857732313051314373792502928549406260364246558073054855179070915047589869676167102128537305333330677502575073436449109535467509241575911167660251484348910290769299020939251882042872182654019805363221112521279593140075023941675716052582706967474738589983809073560914823224516104354858344548465817807757668200823967302621721393801004531988600670333631973999497359421962360412963679248829018761818055449060892742747851812830703406530182634258633642761740336014702008987879962511066937315954324582819599610181761774962051246316510749425789401085502813332961137169320455611058723322070161810076395901016212577019282592257300282256991031688858591315417102875118099516669047225703544552077285994668769585138376181250626418737359508234784416500249836537698311527622337290989836190154507345366601672007109985635325695290802305578125267156758804276863846383040707053436709341834724865337486152547137544150082765483194640723472551296042206239467872692138560683617892275823194026767500084620770503166693851306071841078445571759035794405082634499445674170480205154422964757461416927790547973616296139670076497932298161042278580930870004911576986658492512781659099149341950864959330980229809614397892740357035719098636497229392913340545510668900657037942496238552707332998333968777076337785530875743808393444895811767289298522713461345241904517490430990022372600202982489001027457097753588735688388655424369647814373844049681017418147950382577996967967833803696657511026007055916165518742029688804355220450463586633981709553820922971328418589292312713856030732797043971773436564052106710367338541759106131494133550325809593531189898937416666993230507423781189716047668894841346806005866248938961642065324237196202379974562821591039293122145885293660038979164212446227160687696190774689701900793494579552982657870528140386989073030090760853199768219844130127356041053837943663892312426143388662636578818069628561553836784282754641870731842279331143305152339933784173199917346092474515972866295802410015090229021044489316702525366713005399779061470607729381844738243286876029846705483368931769192719076090649104487931878789240399160699692416095761784631651366806270627733103051857252669657287252381782382102433119413200860532965913832630469075661147305104213959307717339546188718947408739094560964304058178229091465620546707531360570595665675970812043023081933452485552592317525222508518644828799342426433888360791793663012499525669242270911813969497993632616509036680704325202180386660958252236356499552782750886987486435211282889061922582752290221328320953575183844517293674513306390975239095866150987124306611260980869115118831664254566595404323284327026857289308914445963120771797377027064017057060694795312712881074148623575096311790940096916277040131559613681328377398922615696172577366349410551338367512700810482094615302819073122527407183007499175182158105719551999188009869284884679168331574411151903411398831744495423647743346085034542405089024703885285738141194951450571095404880828456636409616058133270508127879005669741871515939796731096307705204094306139282660464511714482540583111839873334240554217684377977384770688183830840111417346488999087085294416678367268708831813306658704744402332492070800573670862523333675126519756004610371988763457688640875135133444613260755693178639870626412446207678244563654473423144766613151424396648949438853844167212933998589975274678642095021202260391051819631888779568057820631700588212018452938653124190391949088928969198929115362556892637341325640128754193568763237975347907668950412073097449885608503870735826279246149729044910910754048443359236789028016644738227093323133024836661012749113261673379152593078644920452401004924120312377208422167969162892516999738706015564949152417728749968285838681010413116240021729827505251652154231070079487551565772019140516392094773328765624321373574798509723556760437846871506002157761755218951220262658862901009446281904734792006212517682619628820581173023243466922787078245595320015814224307973775669694174304650637766477586640129574819525876540744189507274663609651517079386072247903644732218941676191418431172852879822815609557026120951352970346164121227539867497628794694877546105780610471429115439728637913369428751460117713822858510156246126906482119466945234613480993979072296894415586789656060717351755424717416371890631334244107932993862415493669795109538757527696526442688216239135267586788592502667733644901416575983993868246238953095632247762424083172934339040955190173689530723234451297950763553862762640030903758364038092838711406833307198215435147889687622737433899977995572055814484109683212999284301106359571896111681117776710409561601967142327724720214075984565837630271892733128843088305094412264709000728031258777245893614984729968204339161035818503199844010280973973212902422923903617448610764394960782106087975617374658367008006726546071849602941364240170528698128017685485924717405217060157862246917459742066769591719785899547098521679923487690856718286858256390169437243373912798180064242466264858374838082917380535295554921134029462280681768310494104494498434865104291084085311166870797942535225158404016519056396395901236773293275308494863292701588620788734345005902604168320723846426310130612613273838791273306864208817878575720935748106356291807379609567695045916308682032917034161915002811285233757599418430444572144197183447308381319582136964677721506669768946784571345699946170167875938949990063685508941407953939830656527420757512511619693974269150492205671933059209713282539403880821705306355005282379188457945466496682997765214303474043617091407265232591287841962327389515205076973922637957035295821835707893108249209229647880127387725004889059146811671235043703753302654086767992570741674579674832101227488970821042172277674294893209724651531336272614203223246682963357741776694653174638573341880541422399508501917945209776869516430153340286464544872531934367622704338572239964624611333937141364618089555434804163980834839556625149402769054905583187783673953213749665638737080217987400688520434532745632744541615506968093891049310737450818223140184856344472414656688923264881655250472576861021135886011576886945984859069059994580048510494354033591959806005508720905490890740807289558471758614207593185603059737895682279827647355612817184829153108947187461191791015824009485815787642527869014906193960605126840985580904814173429742772862674896971180463941598525411823443818153988921890775154111164178370177370639890114562987535342378629385551690174362130789789883051456697715838775185019882902593738820481564065555503544309072946699829117833015986676278116718021286737116176889757424050654131884805402343075682357008693033444322891099767447296676411208517715215829210903669268831210488098447650014186477599507502580188390427015023980543084951041653326697996004141228306544195220766584268961477458508286111892539627599792793153380146292060635225100179499849867374051979641128761051988740123753465865627137971445880359356107385625359808993184440157475825458658418162886054858194401957806272248039367957159525218741789587412906208823225756808609021602370410860554994652391112538971424344312970809901046273326901866973515743253737213591449306595174051537413381440406237718662184779935722205026732547736529103499883651720242996251553804814328428645580766137810898100596522823781653500258751692056012940534388065584800016520551494566387081001630304563248337650987792308269094449937684044845783372446268413641012890951863725495612885370240711495608512691044442792947272812589873288091089584199416272505630660988164677475787150726530170674625960376936983483386098351274112023921656655498446305349903123117050965377616154244621349314320609500362394971371823038252318257910574180781411515885307533050907146675391681079813245444619653997487027431859216583560977493528014756934030291207433619135326627355681161196485353636871166416801038850836917934600344397157707195335902876632965532027507196512918717365217866132049070267937234363089541606919071317039777405211684831188263184246337939216687205862332359679272945489018866167001409964896437555930681458869159532081093916020418883053413059628199824654108965971981308942099318869187254682830809954013363521615084914192216273043153318670373542233678693561080144392578218142161526014159781001432735497121018257283411338061280878246819890365478682883346263894206939331238309868063990460957931070727246223410390863984521438926424822437764155912359790146447579841552314892455092648034412496777300373471297612057186412313048909878858134358655898612767286009990310056772561046221763112519836842717983610802351947973011450030942458318571207545049997410282495411370096431029896367061977649993866892966651405129140629775243990210734848542379205946911243383451666280958619036510847800794292135373593848110880920726943296116683830048963282602777709196044314648069319511435012074079684827450350000609107307106655702104322898686636717395461672702673997616201779418161875219533087253821104237852906347388476723723965931118588358996868687569149404160680092500106071316841742354326511437460539971086910223979975667986617621874035385508905871328971432760267550437037844182122176026586966256496946945786321292325305087842458640725271654099116965519870449048301547229944835649840812944043371717975305083774753927882609558358261398148412900322037839636054701397066842707138096480233850275810470037455433429077215081700754833915796440926288163591751543626139384475854912322553380623441815817771241832852231194382377887859936385204404905396309787717598973339077098759275119485509413245300867273302082718214490833209804359258165376173843557773876443585458297293782578370658094699248221597852540363459085941863733460211303296335674217887438325601900140023907445009576626376102486218197197995706848663139872263222777669624367404196598932774184889040954509342214244822213726100091529317006619641348093049252289777614854671846411230587969705595969036825946903548216265441426295446282022665533605538557683883253373527913550605305322329513635012917674686822596259126503207767561709546913798607620348811725731358522133091410134899701902174647215019217757111605344769634139947467975566059249010091041738575544610541657755947994205932404746053848561793197500537136371527374729190859995027181645454438151796849849484875785972901054020005680830725691302469896976551189329616537246237037424787151415692011966464159553431714966483226205928953606994243361497254567702545920295172002166708560916250345092114483963639235693358606015211498587846078355493266701869876124040516677894109340821396620265157171532555908493516173064193425949158920831189260403574700890572435277262388027296792678092544225837647856239820403849032376291291370470421826001108124914742381373370523786464316865524984039483423715549347077606944128073640105637039341510714748861372543312764927880804702011703180877828482909699951271667458373044613302451267334086010558005055049342805477802016093159957907184157840902735629114698841007973720718643448263124928467689296883717038367936764913961343077089229589009383307786122233080787234979959479054669658671687160543411123994830030784816197053574539369159652958323353286240882416467177426571093137340222194037582296578051952177288308709539916232037819464263407438417902251702365138034238645852712384080685358083610242168516026400960393376267653610404209442876418918038977176013095960200218960036692855138611178220728607241905015157348867293878705963726499016190862574852375557790750744983050282491481880358041037261007753668127662162320627675265542743151678298481025468857465773465669814578548521894905221609381571334458305500517528746443793406475392175989301007552208958253306106797257969184490908314615878285858197161376074808491790225172773798686942306374922302597125036120089999491047399078964756875004245480016004749474936631325980130287998607117100171194852398286040268484185517236101807526433037353838541977711820951286696190911842349433982771456925906685009959342904374298729344205423325662018554955865011998230490677536653314083595085064115094621712025075477264895585416138654703221771484909401923812567378739570490178195643052866198341553059132176046806043548857195059669875691811510717436675401477034603358981238295257390833386630306628185287155870686489392393664601714924882925471648123628840355789761395370555454297134396360029133012057193468946901894212069527544420587253393549895897215982673376467695458932735834014874037879382650017058842910628789594716069100337488024400932177558606262220996498255775250431701464792908561687227822156986956739425093331367971060251272316244943884084491808190639162734127679458335511667464007977100575080248779539268893888598058695055046470947110768554188715664437466285440839990813003447475719590700039407256474206007717837239068080767926412077595544016132239072192939799516649345674981040487361480083360085121163682023390810876222902048771299371344513076765898533733751779558546397896753181036902616608845070209216358944613152800733476164610688258686503004424330298694797851890978838618026274961754520999465217815988040514093451429549749542315993686124201735067972114043980370293488323112791592305076127212325827620221353154679511840719028944665124980406392486411447122576717826795398806565574795168356537747638843345239368702176560310705910438586696946367368160005453120025486164013442715915309647440914623115552789606931914891285016835963383286542432314068266609633574746725143174566436521143969231342038195138466722984599248485845199640329482675186855735170161143598398990233537291985482167393122352964474008699464751973305530465117611035149191690376905086457086755815864293401198853302569567774847849302689895188079236932360238017721693094597559357146926500708912268468582256530590064936566134548366620630881081528461527055998994852894804903870373636647569599147022259389014692782566455773283742586767817442545126825114301994316505682210458342929083368357184225778583994413711329071891324618895167436379422776959274943818055428368635227801083193846507818312359959488026738596480480173617625438977723316179079842158803088144142624118154828526257542471552296870331481764249419557008495695109718972201860333332428421528986837845948127563706615215806047810947975530901199068590190179374332645085199003622185073070879363624725837991750245284128215989437881426419475362540994971823819784244358708880667739613584808772253717631975652950799642435051209596946739435552870566891127657323634054312971161134197134938842582777459421887318239484148509390834946265660304462215895739573157749419325424937504473488155847474249010850132687785462694727873746136959947585026636806105366704202802050551876468860859436877345335138829462663833117920330425912473791082126717483783815943118370590226922759230625549027669434624118243736905412015190279877987668359380930708939675123733242621561289258409431058961660925723815339362802520214734390846890115452094003880342857675342805420707156213829835686432285257704667158194635779301763797562940016041017373142813826344993731626710692228012409984410231884963030076000796657064508418946440573218370260931416252569839863481865983161367420295496598836367035618518341791457294304199673441631746192213694567600869356719267119633731967545340064322508145753977187026137243079068820411942342122666491543466861448868777229761138193771419393764006089961672690846321987477716845835193177284444202492300823265755299794482488646783053169776929919387519419898051278889930277107400730396916708805223328200655895376979018294135932708590364137214953792638133108995069959208068808228440139281032631153960410081919347868415357246330039316531268909545078310908813625454367182756466914456507441553152691594554949214388374673387030483031262189858423322027397999855684253128853270601833571123069637332346182804580364061001182039514435705931558690103784954242406641044270546830050944800484462535192421387958881859682644937882535238904651246755540737453868934779879437331880034693792068895602901136999277136794738673666522347443214686754098312603748249481307417971489367032867934991932410743964058633803583669005026014341253326726584649655774904793451609084424907386868489191235011645969170028503835937629485821540509191953911321047626982911636246902054884890589749039197888826401805753534531059155533669730120976302690914065933831518165241246270813423686741292819436787313925482750699814254267812372571638344114225071704873008297734837645612428726861068094868330119152513762907057785235633575330504757613756080098951849345198160747194490217338786395993471486003086868695503382822232139528516699393244683063847755989848990779175422196966940568179787928934811751175946476986212151386625551824646528991267997196341924643561109197120700435689563342895590030532176573933348852673523132399171573123243426496086157649437481901588293711303182115180509200793127909217534970247779643025397811488869242003340448292272545916952237378671541380273038437329309073807251779790284094984556981142559489257680478869788135638515463191899562958840057376787351557801628504443557627944703372254328057916445898779676451786411941769608458436339818774976525000140663461783214480091888341237354225126351549928410172473032221876013968528566760033394486337694190554618547649752634577681638528414641397319887716164026035707878529141039743419862376488820375429468293736721766584511712512170135888812086888376100735577594240952462514179876601062156981102473726965976928463078236900716497757021978566835178327374056720892224682214551214789887038342156605360385092367355487909454244798335476257082563343232554826985197864785621925994646432963893495438650689361648607323078246251106586832076951000695181090481603688473245889047601783292973546334437316103709487143961648568484399037982208362444014568443716986309161540538243748863264160759124810135531179498696261665582395621896445615168753243067106379902650183548396620076105703452765403134823804204576604000463684448045347962487917496037231936813403755081831976978798237931012884367803354794385762685767805445522128246978434943310478957684759185241971488387227536868170488942894050937347574294721454433612156230198776570890614511456322069099603339356142252008880668363280652178083681051429685650693123628978424517464832438382698116532879198342281998305907625966916895752906974819060790382956491018073110080409584292983670451449369488214632408315033088936484772547777897316212410140388189181996604621616896171079691453212083923642286693258644786952883940350849234185000509686443514405677123871385046588597833852019840755595126687433150607504195410706680577243398958316592476469924564424023103057864952839030279382140421556854169581478613417646584761589332061003781635272056877308290387981064348000121368059402927552579301799129995931572620466181655884817561906081761646503299713510001195600961411355616846079173203962372481455709351378693047984448711935532205682713467236421479810508348626083072874645134057464270511323423047285706644573858568749769985453359308195957685679532865589987280887361617455675827904380447019035417464454631175158817486898364192979879011266893974200841545859471578229802590112649593402148710520159422124011495319734755790717933233519965091627510084914218292010136203735513975251431639491266927560800829170206807505505008241272649544394714941848464577815790790646324843770475752078545514773410736915351748823241126397408710531828943757518907524339356757261216219831028299336682281614454839152778575125320187331357136835958860760401444910251445302092778448838234562769700259379916526601400169298559714142140534883384931949441608624300604508224404180800590769405345247024808497070257635032798214058877407757107891849817914513346648508712829853951187742352118667970310923310512095341410773506546424316163798097725647457446083488630804141540648040079046826875685511869843382429847265582364625151233444722343998039421981353204345043981771065448693367550943406981755854203746071081547541893650408466390984399284001418438399867265716208737481295605325533959563049526608653224300455701214900841645160306394900022423557946228977239287395753721788169899810488343369224208496186036703580802995443910130200571008940918797328501888199492108891134778987435834381448541846064070916399098934578206418593676764510590426501661524832479311986023074713922155328583019759583346134542094960925327376125997190086270402463454256260368667086329068592572190341282988479347989449312253676205145746961639546698000107896519189705687145729477491064375687096310626542148558779100607589488877008476132680237928034532924146459780816321261529111139492070732188180007662879216468408328901507427173665229649589701133772202753580125466917912838650054293972702284533397648870097165003655899414563410507315536857651117996774013159197616106702857267767299974906621938316115499009888750928025877034668594461492413154734807303771954497078773765346001307831816785480311891680746107337784259055805390495596124620617338139039487618047916322613008186997300719547232619615435928508105935783147617753445782257907769087294682254319792888739538961213592543377837186334349560464012583908148328362538943044514726567164235842594383427037549223943082980586223542900137542121434510056293797308861073844027189724554901065138509723253021768755556530198740901903733071297881312593604976217075828538795637381201196887471881010764798957332455520429189360111986915209023286416644308586079090632667624324821801059402380692964468677585754106464443979005416426414868742866220383040751116960005472536890026799932236305579853442257588032473182283792507317009856622301606783396873924160480917560235213283667962679901901622361522061802325228044585946182868814998743448681129983996746866629458247237649756729331018748870073618215730561586136939327048180200090508745109609413512839271245930698620149051335268685729641721743026133775162805754404730409153605601878417506285353021761971214654669737244776764563142245208774238921336964000694502326886161124402572806602326286209508304957854983348120544474134458294946823887463883640499023241695262326442434585175969469248771582805580911027977025068919624054575119476522425150038213422212163620266130531585083869611219266095236991091531072610359805598628995148892068939665780833982184045657984608159707467858352957878249364303007495857160387134321820794861987409907088369485664073206908739513878264268676332207139806947968045180001392243696935751082804279440272961965868435732283148883359009185867795946225911196798792162319393801062419933699555923737688983462865327113617626325309747193116750350067329091999470253241107884088501061552569388702286875607634577273024056120582443759095656407679449137293060864891723066725050079103571303133624482328543953106580229700836414173081493870281162673885483668276887538838231514556132651323960038081048198503148179908798151300910218653543745679157643081365545572838237096264051454213860698511620847362565795341270710537878837396348275683216667779934834230360148075653633955629192327993082433678394373979633928488399744821214805665884122901962138978154209163325082406174202233936515600344179328605284958443440465719878849915350122606404354158426494605358914903820568401425402754280017653459998144608512244899117055858177261728374391207202464303910768546888167582906688779209141127426712048031564589386483125388255457083684504305594810377791458245491482404837985655947174614059827275865132558984903780016991741612388708080967256371833944663258541340838779494396156228654155048488113786260989951106580642724546275912473626582612461009051939863375162886626306854022747059477081641383548851364723850838905982750392341442736385166389488996255350777700426611108960021516371114595512708781769631724058114461702831138991571227271662865414980965273093188748308744283394378268631626615170027680906435736415879048965735161561725154428810730025820020964907553582898294377743215405381229029252944569416229424847835483699848998536105839256183041173196439104739701740360268736119639107513138411910007644155629781947093405290510945154966227618871364966765105547134941737921680955583868727663877548029560519058675706586258848264596703781226127127268112945574550716301677370940350154400157697283007394622714616475736177634341384437202199888798478457199047637343644794117151378741660994786311004503474037291255022090118159368966326987457939382108170155948886943529929080783071923478455932088970623176349094714644303807348122267884924020626265866472411437612403848856373978875396098332163344955328504649298574802432059157036836292276021304987995964171922146172252459995905459191125104242397254735490655623616625480708546192853104747383389252715561810373186770498816815773568501919485938529639941960412202263923718731268751563098205432333028704467589215970952596165529627662052620871963362156219341230450005460307880953506966256323231964147876235673790575860496058295134308660604290703449478282319695805151518117472969224306514894882751670585976170111841669380795853727833881188879118865186471887945218669133218440127786025440688050631823418320166492503524725710663884879636524478816194260350684445677011572784604460283245141744125845524342423970464465706626831687417218193353012592917354098986761653538875804760924232652563337917149349549031636364234609655091608995209669228155711867335813729541229641515726160533174970601009908818352228782427403860661290502443267472146021992481356913736343598001023434182706125415518853252689643135429000283034545034884271144515809883639194124597664581230535342067335866127506111506318351414272151522727482175062809649169084629995625377176087538889251199503815827077672976986423699543578379940208747003944107056396654058439492192546723004180431415891716349675308032832151890212364299354304909489439365481848635084983633624000827291187670658325729817424214044302895503854700361381812353374192512476254366952153141588409495980493753468694371273412178425231251068112881900043268245887030510750123135980120271208522848667415914487163307993026726175329429792351238315893949168150582976514417230714198027110394609202192830520027859189130041182974131693466033955825437644750218105255192551529664285833669509078146368958554455982654852604799016063874059269002743652337069680993045847525992072817183719323229484184783355170313499887164074321736361616128118441717414304645332041362603406749320719946740983666044016596344169780270448160412094293126216680077745803394300598271123116072010344774503266243610097633246818723668858142197986840005652471293949372783483394907165193301454356193235319002310043826801628868862105059412634945803861246432153430784883787248755426722623551260042524279136370601853259704715668652010289572073677487681934218621090442203181673246035492011178018814660529173960482750263828228305737326600523493964154687895832662964841039923173858237886540737664178519561629760913200208552438724952447808516565259803924583394718408711218026627108082993022005832750486547219874788983363076377182116464250385738011911989847693031479317776113560202277640705833224004758482335814140972349973805719154387045092653571403671546027073508046992697939867281216529659908389554768599984163019185640173558441344409190655854952451550316606681518017166787150028031526135953696159173037395729344769447736829093933742796870870263655183193740365057768715788206097980355823897379837307326293668642250833865896706969897363535660851837538485121215951338083502781398690182518982671141618618006104672687768960623111028131921165344767146050214979447737630554917333866165581832548216387452936098051583092312638006577705020841167384620386048658768241505756871844895180780978358046318845326229336749706746609947084805715069117192459244112633871250912740485504198925492206929262205719802400549249693778501351278185591508515758787104848498332981667378496272354901031453998921700198271692440031124712906629558347516122739087738488976810296145397845785693546537615957950130911888239184813744947495289151819293911708056749428701663764349225491590517245257873460406806270545403793174235531414580274071081374476205779800454011993964925212242424617165331163496346247646150231506443368913296521679265157169491574866953171817790792797539568525597475730850310010872654276191438139322853671880666399615568325303055331448491246707183331095853499715539123664282913895991625012620120719118922381258143263963294926938753774292227054078724694580449746244582052997116480150390474506039931094542661828894293446348431785243170513090438304415081376501518041689611661338770788222678444601472148442678436744358746459870844862034642401773184100057177154600761848456898979323604259397353707735082527016044039473964973314375368665897456744604768303789434858830555821013436911323537603428038298803995246742639120732078923555262337969430985000137381169363771336425257827102141493958864007329715872891286125690909924544019734375229018926318867894470085040968598048217951004341626620696654016245571923246730525014184079125505007497118001154071795642306816652860840316671158315575591092471498724624473223977577856397524346485436179811715860262881553510980257487540762114326625142836095845552068530283830733922963589717654955615935724276256724685331929635366080844079477293367900256637379218858040019766933139981328870033113614512554135406835303472698756363492076401432373351389753946990421982129757879645849884950256320839698626306739896260281116923509907334233200753952207568838036459955591499881130745165517952898504835770132368374447468756416525965169687389699926615270433615083945955626918833681234624816300861084074753588212157052377883785067508909351136212858101336074102571541199828759898035591081233832312699239425621745449964607306061084470803722924495307528769915206102362295486870741456553919859567974028323012908280972781399904079989461784434536587317846160520798933814845858124082741475930396199279689843129674089414296139757580320621966877296861107991850319481913642285084700606157813201189545851329738033195406904558343865153387592701180961582891273128096157048941267756638680625780644743761286398731502625125013006521709583522014543967101340072478079061905735069444805890546535625852379416130226901685547944669461611782981696528781645794061056468001266863278234437768506382958520853495517441305098045485325718390433392684145596999424610531055699615244806426435912944264814697628351130587015706450923237919698969251648057806507898684257747275837892504766647393784713901980503751549318489021306364959340665228260554306891363601859243113128384458351016601229577130092458671045375467536570375479490701932737724430532027991392758973585550194587709006595087277814666654324630890645371809423233780308920277461607729299170454324123581980400570110947182214573156096604058807864892647810786445255653932367731934910993364820812390498803303477473645642697167073594239824202177461926289780738301519993332126378965132792359851004002064988805819961073878142642763307443251570738305069391312270447653127552356280554879992244882064001777715681808165687020607947647970595806073471362031694079013845255313144848193141821253224406881813156328676273872683197208516460576532853860928802374507505163645975692472457624728123523116698104661259331728849824488030160878352995389103612275652917994710830826910855156456217990912821829665813835607219518074948018547049287498073247968458193658224558471375284966960560113829063286156219292591275452471648290428024898723487603300906248089490351886818023134657163089522491503879076363676152828062078157777725959978538625167362358511525291083990284145893063713478484335525981055848468768093960110040418983889699662893229142481388196576949881096212114638089578499941722277295765848506042590677944407202061665140115145902166858393502652787569974008875451314029822220926238557659178465147508536024260495531435017914649816436453071816018455697595315290267843376452003010644256527560133658127819739057250875507920260846124873767927790694127733925616770202930674025314118177923527222009985988668035845362472457346088171793618884207549303162108219599987495640855472250987240252685375377746706122996949345100260494766841554626977407720176410227863675780631378670009934206809294790342645659976573428871027901086129891396226949407644956965221296825962372923063982030544605605182937990341091697773363863453709839559702426434305427069580867763164137074917504294939232008419166970938929918553253104954102971991881063307952673962256361475307205957883761447597632279668091479564695292154258842545386786593069830369472089852100705522578691369314066412418674985210994519188643166151070693466518105292715071433499791669107612473026541308626154274893135078979325324109186420524259104698924591460654245274634603428667253446965401546335854275886320722304394790097910722316448355984339187894828987005297061437924843102251636797179497855023857028927091304227970289602984877844482357776079166064219127220282251533012126261106005370523880525262117315708114106794508286575452034584555536458469999716994479408243319350911072788308564710961203788852671157190382984524057249795774231543352954064755186418492888296199833756674684968802718560180471932569496638508757088643071033933934836174457864183130218988488394426862552268099995383639056396951613176508102641340647944079338355340857906171956634773082358438136605170141063710349163836500212223006540602994686297125541954007290020080698005360508015903857566331920419861975485693570577309792650474132290575568799310062728280136165413405512675812668559123311302511885613461471224848788191005222373924243851390155153843596904107841225022519233011671909584930448926754719916947107166024473145857837882563917156546542877937403361244304669046616382540844643662533762948188685824812184651920842247616841283603149722664570442387818393693779780549293245209109531984583757268813598267844437883783708295799192392036548002526167019486142108175254339009371410498207895633691885589016698724958583301677904011412134489290506335619680313665938181350631525135439831552121867534557217119679457193602126331646564286409701560643131350188582495683590481543485531694437300369520233035926879861760790980928982231554633586066566979186930682953995566641138534464513886338516222318257763831919562552546495446613712128931807921287429179537275421584647200542364499375241849768148820882778555243969606868813509990500860616259268977248011671017628704097482257913322796038377286670362827027214978534387788639617604806615661324630897113900151888252749560867557990480192875258845143929714111789204564470370503619971451512110151388209555537602903941042386476147420242148312637359958663500529954826807797614641609137432400796272866090827847977339173715079271389527109585059916904585748583529112828036935829153884822693372527816534897679807463225890233897493861537792628864250164269039905796643177490564758506563360131261678440139490907390218000237279535995995649586745307821679056727667573733867178355972962646067851450420930145024800204530976983123827829671762355849416135689629189409711032248275688107385410167532698611963710010632733650696235552820983742159954016314138944334883521885202608488641218413847036791387668450302677986822543674709801637656372363275581820177046431739564946760451440804778853132179423388495865897757912072625937261471824104909577242939520913380591983606713655369599653144497021825547922093689881002611249060937679254697749700946533093798534810219555321424958924547458791760365113074994721117996352178208572420049776602399990460028371042205561248866956536873967002388252486895988178944771377963396412932325351895070832978340056763115399476345479377755085313188646913321034617583648186836381331959839102808619878402983697448194475302985486785687634116282847257488072025915481681253462450752158087515762357220494538462636428700872621651737865336787860950398628226827213213647609080045369328964848537205495204716071222171249893935600526253716961204412361751055955923060180441648367908310255204146385657146406358114737621235604880249491119059474245236007954379168959709445253728407733573494608579150619159027467841281080812816485439281714977615263820077245134712584828892011168880866760632321162094625032505507269954292945222719452379117976608690904473961503772774727447678091347054730082183769230458832762665958101523191060420623817529275818215159153789104225174726025409648813967040267376078973007238341675837224005129512258437946373510830186894307913874049446361093502420206377304702844431818448847766132206626816759603702744417369898804650859454132482198470799317993936440414383468201906837558973977197380705942016056010971994675483778445968379302740400113221449746721682818197614130286002008443108944974401401783984497316634029680274042243640348118848602298884998080426863633115467920867963937721600350136469828001892013927592222320927237400347191051745687167793467452047032066876518313457436024883226052233434848847115037987140553135740168175934774230042273354767360033351563239801712873836760362934257964656996738078339723904003353423521441900166794395994918457470492431455707959752312485725169154438853880937533476809524456114536702330471935208064998596157262907115930880789779487219526718611006512948105109857956817472146904976457057936964100392644990341123444441832114256242805786631362958532079654366516253251518679171117491348601380836702048068800425214329595232912460049486878754482350323181183040613130313466232622812344457817296608829186253792887518459615119618413740346664381726978111982192181869643784533864083098561745942259121532474735262058754478135054555874381474120426436128010855062014456948247283184056973041556011328971218449812439922736722502079871947760238443206027846484467959222572107941800427537379198601564357404178777539921670287429825443541964326289841808461425159635772098536014620160418528558901505535200985359578335075609612789469128217018805672500760904391890540216114875023796715139968925448999162111646330657198020976023246810464228358896838085193971302305062407060751300883306140237963176548133629045507070424235126009279532534421543677947034197500333248718237181099294729925145726742658997090770765951949408685598680537227127927249319576611401540917506758701494393712185675067792161314538276050598425616001402246231535488338157181998038799406266119916367978708265391393881461413006657459700106701452209607077603835604142259683972733689493543488090626328170998755822032036080298659145400924058271742098094833353229910437844461009527038674811505292651627914677505780663998476908342549735534220086347377660383923466413538435336232679657669741817232156254909711054677818496673632005817506062456362969902445964638912648342047731815886404361184451332865574112067237302037226680914625480735051950975417731395545629389486381193895307048872389024040558316120326232993806963092454985327209706962395501366931329870172246243029467761905404264348301996720658514109892385548562207285704207236493183519676804790081097217627718992707222792118944559945159790007475391356265717513283065196903063310154773569566452749920731392879020916522981929126781941290465443843606839174659939849722231070673074297803138700321280763381007400927921386590824077824553629496593262514569754015131284055981243687361405575433716446822780590734023834916178129208522731077721590501471967931743175454846607957133641791950371967794199103823500737768749662637166124781356500699413597304342992470932764367064599063657261707210790413828835321730264478592795035770528159890304655466913840705416212654559237178396762539490319215139437129754936377775293186471132626173974636815567624443724617797878329915008827504322665718809181347236220837016422836318744884673708568943674371029789359792952247593167187211483759174060987370016288830901302603941028885683718481441488300149498280775661649884963483549635656879418482450625844795365910608397061644027092185507101506979845606133264695258447438122805455696350763977530240171250783065330130915991962466082114897306843516421659510628427184475869892584850628461264942271177485563144616519038754480392884668645892730982126645572240096481151500470694411124372513831627029522295927758664971071707732088879380623376916997898584447866814270134573600879040952507699798517936232237590219580915895813531628183592774196771996358383320671204025027788523056035502042905025310088304887891396931595349014262864339473692692316000180642234234724382728005582377772714586414334124290193256735369941735109150142149172252447851615524399633741333700329401514927601424848565054710210070681830097485391225645060043112381011652994291099226066667203087409271548405633949566517006990669932666584190703201037581503012582583497862227097140995422326764557231522987974565236760404819697777459222519031195843629118980523029721189537576874606416328058023789564020989857915742533339785717674765495086213946470550550600463773010473381950724716927853342199346538461035471485303372355856880907981416667907793401019651692615034438273864203315317677171514936884849691052097031036636094923781179101426375099052349518640152932558782849522735760999646442114431877390033649369224419403074062519626955729570413208971664994778322370228743872809988363738918993837683471225804502791309043085523897964944731289660267623011682433314586432921851388094426353307330236321306379570237945884673479447748362621245716498973281039137031297877395916014639398371137207620352141404277363970311593028202745834469197568010762156240305842062739899261399888163440791097918816232653057213869357048973168543395136037545297345883683976870772061206144810442770609590667534325560274197609095071989210075465836431640571869397886455563721100411995258135702978577126548047810317747348140274661187270163347009383459138247709076674395120993220195597016320813421442515076292653526787564352896078287974203290316382685949578167220894028634655332960038644451519209559921687749192504286141420147329099116099478800187816211591507457633400833568698663516936929263838025777482874713165987385896637832120333602967520363705911086841265418769549158287629805980872604107929648303028980802165494121969734099575992322645157536540742054044500784095106093804255623825020024296694028565108359534144727319627394669790927691478588490689771746504500244070203879729045948029310664462334329817872957550055731832542305345529634562104298967261136177979751028176516188221031141018721512988965162143467672371820362068601622847216428267157606042789167657874215368335388128086214618785854174132969690753879462674026100992934789562799370552885836720701303127778942042987809077085661144056925305066854654293800279545031892008970192429288310848711188967854074947728926222935104779909186218238587635718020203297561213859788757898963628984122617182722850515490093054273817543109864886076039531413615793414448579894202586942149937086658657730732254631815501816567002639199326501430636101263925544954606805694840634478788249140066610937070866698659827641111519270440279484195871425205508281745431826328559950033702146147723280565894279796752019029428144279048504612789816933798169708391771377976103186162635846230921835050619315479075299326095607903918904861450685437718002098228583700343086238999460492326398757451396112646531664062664354944060341697688752042253404593426435963955585024478036293939536178727762072272866600398284682648844660671123015107810962635175813513699240165051375643697128478371241572794467484927798140968636469253607033902723622513424207819162039221501920270895423426579738523732996670680917222970749323638531779655704777389478958722337717823427973037090039577598633401466694951036859184379590034740030559874790738007892918838110638525163303138787338302214556643929758948661345428441793934786380587311782768564927208812576930175831822629046491552088922473042446458708746406565262732361693785195349769377599213745485968271003854080035717722868078962176400125626277248244636008320372898663703448283784274857314268497173191227236578320827606205398371573108222098731437912524657080714079012665025570749936773082769534780259130678720344744342470224727280280395620490233863610654348683847057906813828186938459789746969192992311545417976470261925667342822991924037685932467080201417490078007876271850784391499346072744733613471779130224620551266469734338390913398182077959124531805661044486384422021505673106083604266855340272016760168876739354710438628692288708957250485966917342330513273005649306032840206157122834573643550778937288211869111884245931709742139613943722543705939116599356898264799272555278025648092557937570008076887695257637951568639526555229889929733729013022123638275691679450097589745623104753333191407426371747147805105036532906214743292049308026313543773007474569108780091328592101408910203265726036054154219078104817002285654962541213560521643695387542717752762770785630844742665988028485170107223094984293194551231427513905352226625145694708645450663422423556022260652693986667966881482061863629475454777739690961830799923473845515791026012596632015691617656088879008270393785790274737836027379306637171624975906958702969421469341564854752252709834169173794433927267020998956967739902544624994604246969291946764610286877752677691737759448767487913594105620378141943883648281982984575811355166203328969838911217790480906373933553489420946955034423100708268779275079736024545972218746238991909199021128177232072836633031192616520298939395900969866756597577465880948494645601083129114662855381389066911579473381256504013430056865310134355405996915332041490736979279433338207357993578995430757375178995606589916000066531524565863898854129203447599652124427199655782868239213348021414364833286823945915599702341546195456596018307509850298733845787947642770530219407105693547502938787490134039168124574503917114392141162633684559281735886649230910711478479143179219022310495533168991967633458610766879780384734487984000138830518145854241411450124943499518422999434398814412209337403746449541981449973076450786322865110992908588447987922929385018202240635500940371999150848585897044078639818620965236702575219276035490788903714351013354092290976153027760164718934622686117769915170308838581724826258479364126125874462287334028541475151274392429746960820831419032866663982198021918070827142849191209337246899879358849606349447416112891226604162024790233088543990228623177125904624524965228942850961211857490169342739646924061131729981385166959867387879969065112266770000555572235453671929148842592182641472948369471156748402622119871379712916856228169118802717035379960235095466978227976995768428748919319046354910920189662429755958272984047705379481257027528781930254324295299410662669918535753097753547484542556108969298004912338221315904361146721238934514888414970950311582173408251410787294532427062876414760756968822161129497409833061452446528951108824877063523363341366694112223441912071046070067518877163949575535500654828395337288639460981256070168723032819990690092851633117436941309394579895642790005328663055339678237945474398647330475019240073478760169469852592284448794863174824211617003771417284382727533445355381920616088216588041237449973833313964057018706772284200969490485218129689034984690776387322186044702687086071857469012990746361658378382731157476341421027561514733108477689114977564810191556886569614219165818902262724489420560530233561580723985919431627902631970741082212488871270297279179872411651698499201911712432289187885330348885442446002093163622124515279330955733266896473450813609363829137165764269341370680770027863939476987711248238602168079156020501496905948598334861928549686053234338933387649706016280876110267389542991559481322809213018299911147775258686786417357621148186600859082711107442208800709266866129984213727127518730538941477021644688811340897087842353266861545376372144187470583668972916845451671387191549554512218748084121390297692725452565351044986290445712477059037528308558497926858677334563143479072871436268817623632770789927022092804957954483971046912348200374448063729064224130096955021821592131665633561461410916650417647796233775562115838156717748398157665785229222442745443747129377026545618053465125454423651863639389825018525946498113627361324522618024552618502257447397535887313337420204434112962365676721500159621072170268754517189933603818643921126095688196722438673188081528786392631968411906974659202144701975435081898333779673266131211943210133510362207487031055694685852620527683871058158437055182977432117876708680679800835358098598753891877918526084197917520422685237079785721184848107304596604484142431495341072543063194566262326597365000028795603655544050900967895694970746819829558037888736818646097064484926119525308258201780553201691182954387664409196749796299895051640822545756079346327435071303176648973712849188045977081694840620071164665619459995122594320577955556304389966666926148136337251110977472419077877564758416908367152240904468718899473186408556922655160351296542835433163882925199449247142936765271439583253797520170410614919911237174236952271382838206822513842048228117327270212272934137331954952283102350704955103165977504702350374388320549334264413626278184653293997745324845484373607572710629321966599615467404859247310258159111617810065170645393475548691637199664369863578058537417268548851030104922958945563726861332176472627989767178807177154657562650157588865631749305534861731149310794261026237550440773328166835610634395006302771219013663623939028982833758135853128454414818462869331657630296798574881368689076744986920724586351913563270938563456574186102347433230826330962084608507697221631478984650672438048378676442236271980703994386841874023109195251481003486971538617192900286748897180124600824263145066493878206457160114672544665486746084634485350628522229097210043079348225370712824636652480731149956248688785996085996072941193687652906993287840546140009450637632511190814585548220267150658808948425931770060869404498856424087857209733018314728360245069873503701694859774316992107597473287800680300237589875470217371658119277248485629460203167393641735846389429446329942345488490406549303247735060059139996647965022508954887242220954283811222837940542741108796013006184693047544023186560830443066546803541332284344154224898724427252730223131028085937904501360365827945731127996178561405699231213104225835564929000316388948150618401320520697559104961370490925220952356330968490904083090140722463234605177413491448720601683715791076515264186993601716826836343915589934791583533618236570088215252049935267335444873870122016805238076543751454642600201183406850610824466709647150684917755363889423657654136093619284115583820759334104966273602535518899431040583715883958140230067949736351236892672919762578898850479528315711609061643044706351001274937900774767432391764265834459496523996553982993388413025884101936007566831126438688388314799776604466374841654329929270363322220818932829408667328921138016662866849452242544079526626936963508779335728669847097774542959804551277823098147554314269764755155324652207354368977952244587180638170397091765404010593949455713740768283243718091418158522779779908131156377088553594564627085768660712449575893707087856365468044401805193071633052557964866586097730295705222512948399750690897692321668889217940941234414301990350760768698045479569012731421947229926649131712090460229663225277038109307943672810462740837236185064477565926830824739748550093268094551816309943848893271653277215753023653812423136476295405072115616918539202573278157376297366992748506448400692285970232408369346880313791945840720770074825144983175095969708253636021453091079135057495129657636270507022330108965172484042552017369253651952867478436305471890569752617660979015432186185372122712284760150203974342290991503512562310083143453007891955002378718347825340093277507376091295796518782385838368291348366681624980312328902340608133621191825211981250330276013465387746112049996089557408026479006942403456589882862685874475165377939048398140384468246419113852641091791196151589447954976123413910413389871914028626409843977182007688788840639321336044533400683147244563543586809500262148855420216848015061145211054829006892781905041650611222725712210434659940065077865446175983954252462247160250038888008558844692930965980482354811786842678860891534044427175353082570164663572566493072281003527731393100338644587891870308386935801502943988434529317731197463658414584835526141479594424364841343408945832866971026328283971217563189947321705060391363045597985479688901631063807983090569423989533023906095015247988781219556937172641559251645245950141697030718983673425380910834391813706164572675534974963517579488687736613263049554533907800736837507037700184838191486566313521179470329713942088563306937497826403480224469046270732456415489775365701713306491365000625103731901828365258423624987678438571716882841552222161520496979471863211158707200428926592813684587090316975653218434849016719385130067332387694864506663314580352868284446280571346613261530733955761809991389937756600730619068657011448498170017499521690088240976613715153022607547940902892761718810034197681290713674068003913791624656579751762444916809302759179522179603188241580702216907967014131462134189530441094380871964598486678123154104770106530350718832666195354475044706889160645632363869792913505581330300076516293610262411849807268510754032666359271311867581435654629538171017097915162495308971204569147004030802135791241328751604779447301254648648114486202638252631635295812859687867031019934511109096334232482224407364624342461516570086299766454243463962599531597045378801165094666335810024398360951221964191419691433386869249197626645012879567238393539341689907191101644392539511876565971691714277522836584227387261351411741044020946806662965597899994634017940166968241164437812018021536359996909835624901038738063074616406809523947019711066828451055070200808237535068686004449013761156569323183909879185616730820783102409045480103863084965852670585163341084542834151118504827572816904863243449567056600482445823244604865922739502040774623533340091538372272378686813617141540566695404329821026396404835345258706985764135257118602589251431070496656096279005110545263360530385684016270973954551696681375342070730874461885048453427498277439429671707172117551421174412504526856131739785789056488279918714433034348381477654834308096643955903793143428416730227550244846218431064755421504929424681614776928978543294539652523793809414611559647069137818742874851956951020406566478406300743928083815397895099731161531744098635373018429543162405520162362440565456332409575274635754419200449995675648251220746793040751054254688094596930542045880084820348069644117641500760751655481628931388536593326953886017134221022040257638565793503727368924126100351508113912179866301850825883875205586267988364056235870351069748872457945037112583779348216110073983827692039601546486742125647101777946625080284702429108667318166734845183846205160113098408931260402197487936176184382886037250857677045243686570869701630181568441844907761926080487884438554547188542638963302892005814751030666479425800710979529086562707444061595174626077608471777396158105715342634562635611081524554687657797505193030932200804286682846934037205469672046633095924745663831219424628219484764050412426952353578638302407586982821474999455838187304198460490219036662747336130267965297054766634789275539358327057232263099236624542085677775054613362401578150123811078693618644806834010700818907448733948294958188324756211479038720583528437419630911579913241926556320628236113703190619138549014001044130125395749035499760637324203513957482778201438797415270219684088155130138773227272335803973570551139274612234324667200206126136777260247970717732436282834003704592332275491878711066132434158638153687370391337091569159216127596088588948994183162645770678136941011794659902124055426600869203070520450964346958095804918239612200785459193321151825569839791714798442035146820235201235503967102127380645058582140348392702375640254463123928783129189244517678291836636173460750429189163823538953306890775815365094185357985299207102811688251794790229007934398774467949520670374286632899037005991290291392238156245010755411894771375420880534219665815255560958468066692014220868609257647905974840465882608580781102487886341284550829516258692384608092579367145918150590223624324273535010612496868575431202179272275235250574706796600851790652479076788378182650530296925229258408997612629076168926409561078327257749435350967327900127876634798659746270131851441558186480169254023518615948983845522320596885134969923850186850615252097843005303125559323447825279248150382837470830565872499385807055078735573027025337447245734761158820268520512391075829725391094160291545074603511657161635811254659483230733263606191993638376757426657147454584598848664151889797034820519078740026550871334884273242636994274880798747616135149324180635664448615794468244680273888106698115597626852605573348464649339680610308943726463082060623429614942011437547744853047274916444103198686270284521431599153345746600276723574441594882401149957925472551451944481627980324575040370108679413117756223705431169507282461747538819240196569117285182874842431753751387156841213060987270825364409680310190620579591758110858988878026692814644577014757457301494310289530967594677327327729477363889006527255403324553684273407207750464420296124785697085318013358773923244479687471120063352489239769026664860538267625971643897384624215565016516249199099274378286972605512157156487129358174313790631198348513407883090717879606906941473012926327128849012725702112216824682025970474949971219113107635846728411492015169540164224941372963336456378757787104217286784233979432223345877456389364655222844108590908339759435942752918250156686101679899759906076854924658865641912960017175376221853237851085176346792438373196503729059282960241875676040499221340469086427422414220202012437091493370498718066964171723462904375187964708537996326765101295057945869471017908487270491546207891440601360651167388700445190209589569039317362649560442205859275052800352849641678998464946898839320366375396326323375031546529553336816911172016005445262305091750402113290429048892948650485985024765277415491389957122657583941056086350766200669296825171443754516811533667622972391795603555992088613411986216151550827874597012728192250742365367821582027587958423865736566702942440173281358806651343873184340506117545033204835553398193612648420973322390165315655777919876074516743097861956470649263418867740864122566260193683062647695198124211288950017336341849668344092782326336946601014870957704223581088233807247150438739858458457388599642757860910758025752789406826392016433971523989856897959436477767686064948179043970112387936547801769037238188705668588759034709408243313453498322844028262773798196866319740807134828495038356006274684071742398091557833150434434741108366478307261688276095004481199934717398720053488707293730371496009716950714155048032319760415106965912703002847092407268451539444722790139558351536868623826320410812239222053036956051608979550179042241187669910202731679913804032663531629552542679492054714258876366459722956272678509932539702561576814159944586845668875903505952636575020899814968824174532834339901119449726164915689675580360718119413119913075516982642171728039682251004465087547038806214049314786642676304190864477982337916520023747585248578648505522474837855231919410261468526370334596434477270639809004377938574731050290315707475378846598982120962076391046989877695913859954499459925336226050258620764223851977474745531845829521815923093607658645033906402007656586405797012777145908755905560691642791338269811301578312843565838418847514621892414326700250036549092103643523726148388034567951448355227460052088101280587217640059796983214046159848319445682685633726740619331138322887611280598741089245502684346185860286386665097417896147279446841348969621914306997938822849812618535223778417965314056006992758043296932638324377947793738463573526048604723253899360080448905100274895928247736832927106911317777711353929967257661966573114930580030383204191137295295294808138961536218557102036831743913566451667031463527290644632830995304449065916737350043174978515428352581855020426084138522136370077821699600726913383903704120885781126421266257275518057944083200894313566774092988138476199954925989332029361766260123910895833613610641633391088287423164030500111410897523651250713746662282838913900524508441647909631234821115419440464051814623760190121366696158749770043718241632638126896735666779018377916124194662725005794876958444421877673707756459465346758635641679158864733989785019402001642723961425604345549202490691611225854943075643158721197091199201120426871688717064969299704914986587284545209548089455334989772814489597610983812350040357861933213431164930844529193372173705426721133398975174389898018027049826575950892437645558212728389326618638102377178812863713796202930791948275370635606901121763243320438395723843470995864499867029362930369423345812431789043390004152203162140732826221581023985131052818851144625868214092130622763441171774996346804843644464564553215988416971786748035217248132458581847414118377301946692710008974500965939370740736784579227874711948952596793884809083305588642165179529104338661030454999646132123844876439754099110583578489246387656392896873684957261514853660002062852766814157225678291144758092132820871393906964092934131483241041463253447391661925534758072321573028538133201508390237806037677138107229287211860172429156711791420109360740971583738074157913781967306875223489702569690511960160728767774698812323290486174569927001868622713708490726984741520370895778308321240049493731802647526064648514288147328116411230172879919971623965129478609219847001362544727384289592218961501484631656887067496349357096402966441426837619873714124921467287254598745699565896481540757768196838506565376051867101906083359732980778111033482677622489693794061531020780620007607307644218582800306773626697707040441354156227619697442054688248348615338676793522698003626519364316918804798244615835562466792112883961757104539741271545060219066010108742423485246325477234672051487985027693633336566650179068459697567235946349290854700674981801103060604186960965978674841331878221796549257764516061830773424976570155137079874274115732933194413930941000079725566062477434915565319884902947909563274142828716698099953632583629077456759207140313834622879483767336334529613118947726059719304644653454271348625599550029814708658683412133834722275180832431851772733988877131441775673055605868788797562519032078965243386844999510214262083673614080574901147119872021483918236999022267533290895883245001644204878773048444777062938714474465715270149535802443042261797203225425450758529073022917352422440139972625096137297474703303890312478103272198286261188359009007667538907661669342418412362207615275162887219180360698458613399334682412998138198281726772550974426465683509510158940282779991165832910180338876554481755299728340476310862136432632133595877228505322524247840167243397848960866418287270619200870736959050345236618312159545940844780595994290988357461524268294081898620704944835212163983081443638216068084909865372613105709269007129536503209752678483882525284048171078137758359982569272940708581983970298593675570644275349309754475985693226729625591350137297119908524656061552801013119506386565597233608797407084112968378429681162189134539899152426738746613674467146611820154851510030763831503490542061568166211642298233494600478265194107760841699858637090505897403563305013042912785308024816850926167611095972589857415103791379658622044734916744135474770468578597999844407794048884556934529638475254145320078747714001685654486928469053886180311449338208605259683257698126760950140798601504312286398564185536030316575326193968876684319818863582485120227429134547417296949073613207582145926316176201228752094396836466447126161261446410721858696538140907056006664288058092354868379548289322184403867466898306667827936657769896923851319811196596447730552565808555368245919324206451196040398719813283113703584882419012985110573804918222759280831736881064519719416619686249915614855191895700892729027710592579373017786915423399404023199434245667645099452527650813789491139219103417915291808482752568652218814642653518794195591236286994157631081285102370679115898746689473759011197772397097394785646970121988921455287619806526617074551002534133524195931294570184575846215376286549729507009466052205392876923555980759314267026612430499571381113074584217189738730914035372442796531527913045110825497219752742553765251571044767359500290150168455483917080712840271244301204093961723660767086567506808682467496885226934844364141976989567727842712448737751301266144338922665544257950797608358537776467013383253707380530948695191191713597664921308344999166484132228413506891828163368094496736347618015782388212149786416165475216310753827420348319584333847564796664808778305442543333675838965825861941336394464823441688188326209359149958068793567766120982982639944618847292249311727330331798612664313462188457702225165324012472698628374617171715505076358367246928281184545603715081504895535222793774499907865407671904070921967135035336201249297443161973510869300828888088271820580713338325950145728598096621573379385105367250293444317885615235307370314711619993058098580394075049144827613315275606203735703100495385145781686175868675370555058266768400250680903786135056241776425015704302861565647926512203394557732966903507596326035913632221379390725090483451001343088532597610795989437760119592648853579020944602211818302994497080581938222601901421970540845607859279439809829055719864535294701862905474695893362878588259347055479612820510100576616338779336779785531415243268012669923322814506870463035263625668283182897664813132256978600653824025243481189395067316173661102290977202941238872718220118616485589377751135522964424012567450654878028636731500016566102667871330078562429797613772704209684317864538987157244917885764204927080024960976535290154873268298892647972305207052390125292083288065208347020952703533181311384235380712430361542381128634561426332990911488682507470610613930992324705092250839069938746992835014664669703280451839853625053157984941203444306089482702152410513498670946405191102458910362495705974628329182428796313072582628242291510770914220517546398427031984108911000701605888975210310744162482157758163063665164527390833980446101438710008114058910578830596526519132253184818860104928783834638768256099743773506716237750712597554117788402111308813780352332713587745709288512318244502562110807249345095017429268573601292008244851239943233147312503539463333499863613817412275059868083902779505615711905960693741750074047099158242925291954577585208906013434982388032509173709802112520259047564387052672314427644566637510118906020158486857108112541760952237310807496903446861276860076695169286938836865315908640572049733598180152266364826634439178566793431115564475676783389646988042741726426956856562534553008506304877087567406828138549722884727663152197834479690368748689653926283917493239019925668065672361552496408370407511020347170827782151101611158485885508694435225905056224584066659974768846120234328592171862672045975357213843021177394656986251151796938942201194861363292865560441683681747472864095804887860150504861701432536251674024228549509778100415853542368976358416455092307219889299659204307436820138623384649731676820786436956071582590531175642864832341860197944337006161258700741907215027338500886342568384663444894475922341107888823175107618733602216614026706626482511633832018348751994908322105931264874296856794973806644772677329930318076398672003901254363465168072146971662727668955440106948291745445553668331119169144571881659641820239462402764091190990624122122765805354713307909956663210210215833850375823448187574502311712831702779749009791901566255327071881706729937803105224891038643550402721869428610131795845703846444905063098525280348092210808195559737435088014998588635497050829385722658451083072027325527399098509006848488211334186680935687393912385398635536523642122628554383965321827679596497314780234654441014649365693508132089230676094590689463767719444855083785148390075658188207885637271047241673471477198212349968067086293687573697456765389557975525668050726037374303656061076117167217819106878345832523292781271295683086144861256665895025446707832578349168862044901336342345726671905131613467726961004388805554255589698659906530422938065913259531381584744792028867907419522212679150056612192582104246150266530148183264454515534249502160020334392922401886549764666978830662487533854469282030967682029409585102675556577993984493646784211550235871079190039850351356661543644907797861606219129305801005737448696076593735160753995236581454222462235925572589933329597290265434089840173128067549525039854520051491123262470550648039243835982852268341362235496662043031299962038138524225128507716874750755110979872047137525774468865147869400634716119009348175224056799289061496199423391223454848698057842488574553849419804856191308128411579200362651706352268982249799200653122033533993472962031277468572744528158488681906375600659410621048350305860342658646647874962841144577606039261035867380811885761815597179123598686688783149233074747363152575750013987677785799960366538355549717022633396619974137536539479534887609590796977260667506553060410103960495835941589655335307962114997656551634891542016131664955057641204692802266276627657972120792870571776895922265961150288295938968942785395032968282957284782556086979449551597669839722708885105828419006721956048477297738122177194666865795836231446889551945343282925494639666888542200270293092683792548592606279575082904866751716085972061071801919733602999275513349701081192573102074115898077110663196598683438760724592026516952929109425374109750986953266737824210261463619467952238810625144626667384989475738182238271358177684708428049931927185904862314194721395480642192882289902687460540164816901579712391028923377595323482606232940283475771421570015960380208461533312404367690854377349344711152150690786347599366613558851651568712498561036492869754533897819445887261930027969737011087568679732227380618495667243623491338074565063653489804108509417352488095814778891115610370471179599830596755031349812864141071224583758919861662616994482436823490263954560999806123688186190329367259184362165711396750090249713790938777733388586774442971561578534471281358669593011592845587506512625881457648046160465464736425677185278388077270597826890649831506240782854430498031381909593461797187200862323308738714688562452951235525524926212858607779608221005464633745713051147561938439886330316698001856932592029471315622323456527494405728107511994048349475331094129484334838841448431177633208863598972718875890659392315795154926877738229827171217568159333816383226010044088812857995238981419669283048859116298594670062587471957767128834160806519282836468962934210656297929225277813159369184918594246990323906300379329603837768673917401731288029127777162234541212507824355257923416967490130376240855677152523273084922314660600154659965838011929841011095618096061407381763428368279587023786904157605866526074415028205383551155994457148715464162777206174610362270305184301542654858182227263756495514623477924210297367005895312505489812937924869711604311929103203802096862781759108209389709854700416526835168405468699606951894533280496187770198700431633265602386760034357746939576538452018254029914033523811685067947407770507435125233985589986133111518945381127004366923673296519700576918086879179005660972173988212782169443582427918005300422256922490409858398536242122214156106941712166720163685647868236695615579061439350731078143941446323947201466068740849588534529505424030412010464257463022597745538310012103333401152110953432566822567423923962519478744143387926755571883898984542273477362340719941252711861965893035016717075996190375390228362710229364823989110194059569896176048830855630161458975747850988013304876675907101166656365521089770955946764541459639501599221390521935929460897800538335722484872303791946819572546828149586639029314627576196366888017249460776034280998306945187927912430658634228282000196661765997245847387876510050632010896520975455403554031079668255290743727488535612256188237077309696005417162514008034890615457025207397965212601680272945110959808445571477541641713496871595547265437257708844853509549033929338077719229610145666225081027644278615247049111002975068177522458457966013738259479861233132572152615416746949462023889595619169242547202747801388130304385449232859880459619209190449620180570871858698550118754252867755122959847953973377991250236400116069876156361419812109604907984195256106045104551996327839320641070795578111267567845599399904066844975626618786948404087213580659846623846619497996471528126868717168111054812492782836370477548687240080234934107320037515414498385044414460057676409960597671783108041891218858737728945915925013496531439932804246623766499005774408756083139727566870207751799627708745914405869603296048293920223191480713748536992916165313998596881950952274691426237227469276187247180401866837684194869432876253704689594027716655604894780974443561061698652272866922086269651512052227850775008660144106289198627396219641217299377668420153951165911993175116928119653302852929241550211126545891956966844236581180955692728738111256506761731074646800972264432358436149054431396721559723410000969063374006688779555425512363175889883259675947288137382184812472499771359068772330449939363203167523026203438229445003377870122655288912342208471572520834501204134152337321722846980229522231050720283518558892399911721324298050855480839388317930173729649922140022115334366986145188489284882707225703772940845843939903705117434437130392416951833295993837612803073801779328489130256759313843176599156964497794485269256209352312362554465241533841347466944009684548198960820289040047911411637595926815912319973234512323537567832072911059902742114639191619256586368048108171873726436137748418782116115010862790491984255226581778975675551631214364519788342157671759993545384723893518869893079960506903421712936342329089284850962745651992569415770233188683501286674392925612024775334535263047607466385953766322496627008011531480561747393729041115310980028041493148881777897655433541627035073676260972266192487283176983993790830766830008104698256315862803660844623848480209081436854328177538170891010048248133139604335664981145922425911251693633430078289044490721974522415909873558624424344579287004880241886860744423351893438438161801155741022378340992982843283395176010988587507214954360234065009644311556847238795410075267402768551452276171072751540143958669576016394254472911875957082397422790483081614543436750350504192900384201988663569370510363870018284344592558458339749999977781084755713736658720631076588846425592316423315860181228393614182378227147229381710811318144456967422558529758185566394454518170763921140914447368398795035002518898376790739377541280359666641500615680461458292125362325663433395458785913689852215559744790731138859772532976254072297299321510502748201041911366142386660359052740900291708556630027582465052842709499210622317525647093767710379300049638720235251911068649124304969334754745167348576438891732510967217629502193560385771997625650166184755984519229008943512157130807427636146239555819508164152953943477830841784653379808388421892490180817984611359538295592498370266834247441554644574008242160125078570794969713585979192815255389159522434302201961773035754857915480109401784851829571299285634086208422238945391415391987785537792805789424070391554338082524486863168097144740372128034759629904736379132545361743791624407492831148809133007381425964378816178048859490315283504404156404997710382327672564749615310020988586741965014352426673308613976587269097332565799977156623921904834797311852067170823817372956971969328440215618190046572147292943339596142796854001396875526648853057260255885629009118314785856882937817138346506641976595826359314006454847423117160447944143158981190560621044757280258674495520686350453959710052678903517329536018038081157245014182599213821965686295890643005482267534519872822187748201092784680165979338261209598874790076794901757646385310064271603638829708219080207152421617658438632215156089453498139480481323566661691895692842760462798875985055392061388259654917924874037263790688138623607155469512799956515455057725224775649672301799533420646477082868417846535113449258219280638564353410115893057853166006299537592142560182054598297946502047737558411013174153433122813928228122371905755471525380363518794094278310480357894365521552599879763601535628834833482136294379643003029950682014508278033428459174548252277632210424932371171113140480314117027315766369536489957248957368866849390960105653963465568576870243064849581984573730963232789776652088585792276599544803731171589729735322651745048562111410987591327342700013794806263179888492215082065103311736271308710574513359786685767076483377270675662173749088794678943290738517785259281741977786550084641033077851759206983160918860665240292194915866531727963811750464639730347423985665747532155699272789027916799720837293345109543308482455043032867911616360086188865960539013997537010680401763601775982726318128742086977855306675148460114661576001007757312716461763242837512948490151606049326497606293909111055427710678033186377614452044846429989146374250500200295924693530372996366403932480864861473453860502331853360305528231333879563695656597165216778344780448008405722250461642577972790244478630990339496455858338157449350464733472287302977271075459639812661627489425875421495151865750289580535290484108233657854201432451975923913408070186120785935836843084212411153889316829669840867182030502054439279457615755187213813578157711367613968804430623559720779862488659596247300311516841535518677222887152869739977372842055382574661802177237350044283407765006390251165543403669429287703896796849012746006891013386038388686743376494861516403630727140272098471783296966387570259760594812979622995384046943918464795669396905167401807755108866088400798252893403336149945586763299786454765682634470983672159221833616608938981291596579678828840478810980246210479521998140438460884713317430461740610712067754861188280200984018623946133948964833396883287132440792470344006940546029803853503870051755352126197861076209622849149323154397236676734085570751428610165374791803272197041182921902800671132514731412548238740682310054618078934855491650372928193812891611559955876497796302625999832446098830187117351660121647921856501339139945404717134437837576714206930547250228755666589205131724825672600083001446998793571786288559103114791054467204724328960352930827988225216450583426287348822417763917851744137745388955416300924064468545656100046867584808572385117163668712090822563831960269871905463978435461310200560454664566053270477758206733633327722667594418140375588243850108459903524670522347370779029840482170676230929861396335444086999208847991481492681728485934670581265860677329007392420857961442670752250319846741115997351764294411242278482479674472167074264071211053528826561575900950812511684668388938406835053056980848815573043040621135782045751600520931718442052309743939087652283849003956866682719269827410782964625341611094292156165161531871362641055074374573868592557542579637542486382518582470090160416520604851210212114052125763728093332664410211145480676361040891317778378235752997261603393026452498540944527262354952661835554240862760197229726076996241267925286260208402837503243087643094719759876056373946983092227161415931251177960478816184682697486760511594177495025443395493978206367499046472609724154438409672946197653918154311064511442836979172077949561736353161069554597661306651301431567351151078371375148387805788634593567336478404053707339479002039825372937118627188270991543825552661685455637384363981593765823343099355949788206332127171120875694900107575768143545796914328375021459922919912741279824827050511100898442298670960654747223373754189082118271511503752272783553206609069020593164019120886140204289472380905028571074062672498809780375948903441206088920519489068687121924764151898009422546400271319095109510028133216995923737230378650540046927345336369930002286621902781991111675772639967864469571536307964725821032815544050870273656905032566778800723569338965926804167611453189607545064545691814855158429572673010456313411744153816663920515246100313747051315908650596623863489490655828384833916426189869460386828529022618222421295175816500664891231781109808877317213474991589379076662061266192470551254884599505214699760530893808942841399478123502881765028645340871943691478352592650278652436040236225950527598244709858579275143298261147590865836746098618378643942704601539760545997014728568734687383372650664482422126431471228071108766507393477520080945574504892112675497265175800337972557593707083277331362217126059491982563804084710219048072794265203265112574483281174014467859196641298345589697444961198127060722106515572034279464616052431326553693205792883082451845580215312423458703726915476302679229699476222866966199082633177689487322271233997429387036476606783873475331312985244108649319008684440608755672646276342470496898614423079573356448579444822793927254887337694123155636763772155427362721727229285029230103973922480402940467178984013409012687247425685991206336712108785755187271730733861023551970322882873338274746838216866624779611288410394194002329592133314095874808176319193681769583821704157997193312187826889176522599173355738727630103702074986594983035558343423842666015759441353734833555834998289817553347326536913878007577410454108130914947626109827455549704430867926160538827832027552391643071145808422981821872815998996240669475646813372981758788847930207888224456545253160156722894225126306062710005222969004508204091524857586411464731388454958453720569261357928547863098812329154618178726345727037167162620394644744224366771821107168837549496997206000414024658588834491049482385888871722419482560991213003120238126076804990501157439568190053329796791111876252682754583721565854971208329995857193948737080411724639853625600537327047602026492539234083318047949242515299209710965565313368003348850615986389810025639476021759493333549817377578138848626720277816459423271485979820079704123643307097951847385580671291212373407764722852974576341775992754962701878944406709737228604031392169945129839504382885838555483726127389140568276749393814061685281931176256656649394884055771187065969277458885751020583006413086235787069351747457929755652369601583267692854925682006341147601721233012084445429499502201978223708190749113318214510315537264353063563364176052917885860673066423394179944855162928617577964114009417288260396771773585649954189177443857601673503438645157006367724786794761955335599753324348394984011106839708529247317776264347558948934545661832992774736150915241581906873914597850513098231195601857530237926573809650025216455539782655030987276194110794196426379159258401014357631633329399452679656929839859983246578204024551895496484991654072094073318270577964418626064341348555777943563577030942748765572205731352067145212820504040151692906049036565352865265616359704246366229646156530132585277055741681404503157967359055865266201498748280738413791252327818604239046866167916189073235808684317878700945589392447232750616695326087968295759935305545018386276286186079238064146441389360288081159416261445515383135852021412969117296578333622070216585795658399135167129980240589986907301872973638520729859542560386280973542692404434719647518696639486984005297301429448828817277151855817063801268774628936691292025159774688499141200049681254672078922790326435441799838881440219234320078855269086000506622092761630832017029272909664013000106475624395361443209700554533590749983020289327313241841963403152909184892036580871765461017418973466432328849700546771962873716028417927944794220805318885224584713394934559780793982992988225952645370441997699248332415343889667992559624758656326830440803114879350976786150835595438265445839731738611175838231975254917241964076835785637887677204676242670675534350167034410406492267463550495218519638038685811726649164120317885212045743544035427298845506670997089655007120800575647331661785384523236446800066552177445799929294127510213211465238447711874406341362684951467417137434988167886859305050451078319932592270148857886446369675947123492714358151651283396178837902023426943211024455821007892383579180017561798461569781957628745502788298604858332347550872175720873894762915650153435095246922555902107043069280388301392086900800020117905528201773958599821467970235113998268745664094283538986810080672189045552455584125487926006045424151348152501932765766229678410376957936749813533826054132510639512050923175854659029754222631111498530627576123679205423120025236024911409933385631248735631759032614536124771507842419557099134992582368314947196897614437870975107364720230417070584891143179573547131628179969714420067520652419793405824488334406623755874226223107307131905354665325409875907861900355293080484274769862567031799024372570469009603281729102708302814514944847721182642305422024537835225390144828451423773440262194989904031358108648490690735552592362537741017354904603933229944751330505346323953570492471340047881077822241732712203907438883728548128492195676975939322623751744730640911646335751878273876505741757366821911080065457669634084136341770040962778172672200878123366814928341184950108782172654600374975151894182192042149836454791578625525626118501741848316335087900504327082576552395996758495891631564114517950717983430034864032015585342012442604449096781424746165076525000706905954540920392349976530388181011342945694256426398364164842490590089783398288281354245349051224741354947218910201637639313435263283405537087175909795020890682912451319918062218343858328245327697606160342357646103482430649751235220873800550147696602132623827980355600286166059344761088001452418884824039739222185946609823402071653974356594457439001851355134791775450961959074666771366397380457183912202373203220221031231022706633066186517823899936836326929383323459183053170481438082214864399079528525197819652502686221028226072193935759091237272290396083243911314470977388287588821116084844674598834209405824369799128283651784390851188158185071153609158763125556955943226150512256884985331816661182084478286995900963008673365884604045708551538586568232575221781875808224103253329429597477776684096680953734852395250545127872417388440435521917022371360847884604485090857065546464246274772075740187994830621486694769553602740008612008679138792717450920822710454599875960091183649453516116656200103206037728524628570210315920351183695420365216712021700521344364290402274488381764587722349165069442646257546865410322927492982170040467370200215538987905046681948098203470574683675671946911792657523137764859349328529729991684135609927272611967576577389215303062385592020487910944159501862661211790325617756512067493590929853484856869111123730800022809304009962145111619530906053636235509907511216099565158108816736794864611852365856275447564651899217842159675106717319558373405081223988149563177612290553876580730994644436696119144912014349163922315866028522944237446729574515726587228638338352866107906197043133685961802277845162333929474520550536980445107710844636094496245736045674356151044754184078980799449209480013516118570308103498919302272461358029667058771269601367317346087883025862432080398671100652645165846056669844596829335287957968747867902514990679922770195761937087397521876776586579985556270164150438178586557768686586311861723976374933680041298286313290585680456267020091009559234701759689239040279427941709852225037765456014985092342070850668659241840377943668639176261115671314533717098228371534676482650198819116615943017097179981250346705008000926449442032303055051570131918055479479882562850584310557481547308658956443160486353545714250702650978185563077901187974747467876651081150510262005310860645720197034430847812267869310573052915268696288289591407979542792503893643168754870625347925512118104354922209083122407099677565638825077528571842834390334850778734815248593414142724999655361229774065357777579995524617043396568268472378168697575566680687180739753872496056508818937019301380996784709777875305533979597305989748613303573375819622227429363161051007288896676656706462567690089825379436145476403793350988890623236627921803475629297381738500854535569701053633654443146057566329140307613701087919889237708827479372745542245162895909936128893480968493200890058905049496861827120869370550305245614174462314014031758964340584910158173728873185104351449818987440291865325333895834558603012607883493768446252486870239813143327077046606849176211799432203997245059248053619090672716182698592834658091078103633078528547967463623459376859083749587823941840997119501829594904515912464680838026984791436377567063499856964067210584657714687413307157159270999682658840678016127339990825579583684412959894561840699003679748463376064066643557589879850302057951905030074994501013766604789989169445279387899956721664504628464987607335452798557009191742194223517180604514862294040153568360836019384924489735829011574054542004930891380162948753413983601978524020491440394446332070577840367359318911639729121408991804445566813365747821604219514775638380378363568538492486113402205783040718298628232175529568460281748733265061903243007528312468616630158547834046397764105268159360923257842089824009633096666270381852744647009014147306193657744961192292994266162857358954434212758312474326248706852749281111634531307035322083732541360948313573234242113701664966160921327193427210401300125029607726687688042506445352379032381434789248570010041763934289622261735483969420935961272813716169375236308699414306925677830728382916394496630574784253847122752083300502157776009683819070552512007447956230185016719296776773803031253167472950311559345025742335628110854994003926987748367243675190888341540044195406621192382613883886132868982504309657252939730217542155171854348217698297444149136394886261063698585680472908740401692747658610683619224851051374837885073889090068548535671706985672896277992251060827547416999479807799619254647450625233193134733536944676486796138816772315236611186209007194411286263409986433488872068200296159756307134395565153036173239110846814892101162198759530456361631820511707687764444474162513467153669531587468797287950165222375522990700786056151799290853731342239304759231145919943845088012597873486982135018109857715120622164416101868321627573745091515111259942059384341872623592962434941889587979076763525206519763379315648055881842841773148510163597181263445823203792954456860619056452462478100612899677094419961053902412037715056854484386172147017824332591572523531223963002594494117343697460927865439175358518228033952616485945425543001623540534608157554199479652865670284624422799751956530266189903589286378445780839156343101478345964562387555466292195411493768483828741067691709105715187456157593867577391961464126098103751973725524293280761580121255438181235258669733574321836592786739686671501652332584774034235401544508184870641646720626311283012018034897391755834364120011492302629737727090630257248014189459556491884481420852834438802100410528558275157970945810711495878056402352782611927833622772790024158715582245967997611366610078253703381380189611144868729710972356123249630526908176529909685061205789094118183209137181766408241578090967013812168121011609773132947708194213118508160132154298424392232122644259754030295568613535954740472523580324588412672856287768272626225332930716338555498905105252646749988129419518896654463059686353533285628134784257725012052098589382197295226486146659419908216904905419100329138723949165837114739007223613928919208154167384734893245458635618200841760835124986884836979866169138048400510121737034742471268303232442656203245126590418024583781099985956850336808705325958748104223139426140125144432134145827615349117941879475433187370395693219391692994665719895432879724291267346327723958105135205088300397827037841412148422777434633050920319366233649426966722779431518618847350446750170742060180814493648426280158912603294701703938655706893499540413882913224271394222351063842810675890768834041987120644984882255861249650296853379396030392167465105259214680321818495346303008380238994398524617056941313851716020138565722374207275961160411506305560758611573690748816468168882697801707522151848608706397510694851623670555842347789632952194203797415131288446549664464258967260793921667441393848774842425845472566715109187510433128046308692780380484448321502253594863673399804507941286303257486068657216154269747274146782037511110417574500924262207382468196735020729444975708472141792641370549529641870435135245506163438580446604755166371698258735974142485839650818151254774301699089450109561290516020075930808970998481573726091136334246099813024410549799303595477582351054043658488250655207617942335958799425819772300346212798860117949058378440110690997614561583442345060713154803916161995392682668556935018899649390952987436064214669818589925420047705096821121410726673234161386923948271381702068397641207679164387555943877142887839573767146409411261025953685797581436604064790734385235141860720611878725356002704749598036719522427731720792426346869099495151788971692442953000660729878301777592267977711239438907615489525302106865644636560086236176428851655374062183737464165851232375365500550663755903297348510785246361990510687414944695873585461348012709612610795898364667976345165744851231465681252874285631264935965224021903762308537565923236668963201046021281142969175365072670702402745686175900533931814057153446718210000953077774585955380085156737667096038547590144788299799493534866296380977343674205721230167402237628577844791674657033857931915258590952665638903506652030830943131462194717725263821476687030000661843433452872748011949570607942648367729491593523726761486778846237226148539027907678344727432402298787544291373176696894867412358295994563579463453226509148476418385346974804641667217558519239594030341616203543423573216656845527187587162144932833424976547900036695460726360962135016065640618515670581387758513469840482764890453386891593620533564456340506901301473205631429822233602666550851397185932764831450995401051775673378991778682911853683618062114992642946293550157351674398547677257696092406598483149707267286505533569692916487159906493806019716101769004875607835931137307428306389616328234074609876331772314119287241366242402680351834770886449376336331098978152470319183261554214309012860785977180380115220431375296593917509922071521855529213456559978215700148947621288999488155613674576041930660287594844677790824874260694274965939044972575046615067636353736091782112592768866319970141470009786059420779786116163262741046413282005179662582100229581452756942665211250983194527525288607990041944300437168717506478110506433053495835271832666498487968515025211664884337858296221228394531872445548169506729339127256840337975659671783180481128464673041282462650763081036097812355067581067186168437157603542235242841630814925965987513961943336351491092442378513617699659187821152037301200255453392665758606098127986879755552734580057883702701441418365454683742559519102599771254903127354118932147319907470294453397361033249337124706536912737164853625731550065732444457043197793114506235323519175377819488560963157472224757340491862853723407259088186372210861394035988920854096981530502113740051262508022062323049722995324428263629270879999065796652340074386753631165148025553784059377453268984586682563808763400054713386281045651976852237835049897003800500512955287696907141115478771252415995305504932267366256460416971702940932386222136586210484500301709876915114039845740408348114628947001795007286101212565319896739794627897504229021599740803113744484953581693547715015791856840061829187427636591043300184296105026674966617238064198643599074614459641904100720054991661223979365881933793045840813471214585228694566183988683258050913719269439867595323320674124081769940942611572430608026110000114197224383040288240237291817344218039242715457649243787872244760132573163165005366843145965121929056523401010506603850524366963933141388701415584057410970744831200713341714175465945138139946029223529985752684562449197439953259479682081472556703043481754340327052846756257144227841014557517083371744567459678848583699555676052618864189358061061533315402152997335128130565045300686415298011175086897365467681908021957124089671632903014731865919050078533904421758347731520987379143132551569335072856567285257176859165671572183675109274760116792987761381929812085641945445683411007367122893207023755032683871183826695936580433258337307022517606002918355346796430433950095344995855443137020667114266036028707844761816741131805505982014060157674513369918027718235394571628076349779527740888313374812041651108590056482312921945298995929090434036500568911213789214050827047433293332668485082235927868613047579396997118773391305209655081148354968706244327955088136998365183495168792624509297603819585035505288603209178853307894160277970427968317462489583042075708713198182767051355183609406127548939882697601968216901344992411717905215593814037948027668344538318906089235878678774051918162037482055597794297397803308390566810361950048341111692336053831818747613546752364336967503025579687153970981506386864990331671358619251485585499993818578812815503110812043551399748020327672972804832259094052745976552579159535613879083481589265694068180748407822236670006767580582308457931398795003869444776381199549506767059461284218388386264080558753567295601800363578580240053995508711265609141052497509602388108966738297386771175979385715204069376437208922177666859976178839143536767380953403771681156910427771355784137668861446814962979532744482008132340154339973468974109848389540554081049215580751712072415382564164015280010415160383266630585374549686676108346928931320820502278670593653613639682555027213294780585987595921513160831287894593047159484875745259639573428155972427037045331158435015145655576513366709526641756000589444298130649738927889926994213897821609755617841066854287105212663945367159074647711347354815238024307352493434398635083117534753528952507427315321359142942251230593607566226271519246869437445724999051078313136984234888342715270462946893381977266833516142940914897492010332078414783274756583992761571636745237958374562357371961953851186817037024128857099520562699471394133262325611956649566120679174460349827547250397242538455132255454330292505427854044561361426362793446297712593172560722682162047771828196499847000759784761447652275696536732841653533683225354168327497164430059622835734473321778234499473511193239709713390039430229734654866291850064081314930961937206659529628916705219617659002897520191695745037398249801600770659903537770847578255037714288319958925252374080102890209375179513474380791630420029177100919429859279057971783335471812294700977624609197180835887340421919662296483349371421710124610006782240511343085110505433573675827783706672444183421804100772164141578787858998773991412089301900024312267743028360671164282872912799235952746014286523654988359704817789485051030804699032350648880276093600098335887063706302468101504423098159045770207835398333138023827770624212344523232166251823610970725143181581444708452051282722833285839688845715796074414337104832672740054829472221957219954867907145355078635202048605601743774957210416192955154644921974570663748799234554782754268652869714758857699207518387158352197843998491817707120147266043091213346966218978874545341440565992230755360238943074767205073463166950746155087289286548288382274136186340816251282427169846905427208843847040558660881378680832802116105060259166067598253679786583826732999974719013754817977597288241223793603208862156658894769078773645480888503257675977760990453431637332136275160829668930979922132248940183378998794433845110214582276387091030227944511266505404112160621261307978999656273486945109046322436505612430764361055058158433481216023439866386568949521218251773764099477735652133146190399625233514737238568434807459557649526396847711622440803634373311346090115635911560517262389405327876712823411776588310786960340506793101745925977578241874967563472525255703253276856135300232501325452108741657196484970544953969224403240365789600203578702182568556213729988757586286385834401222691466288410884053944772718340633549095760095449618444597498503634441367866865549364894233361397303324644515519332451470480838043241582427435517507819916822647816478217777682673106718194775807951494991097577793664771481224956354247842548018969042129654489274094112319478479488625539852718280491515107526835760885121857878419774888722285928868927419616303663875840822208723898426731854362894206170956831108955926248311810815800025540409109554039404283698425222957209924320338999260291648456283208511513922164222800762469124415200667157588655240126337536978350850967312251205404805670262830802080847337186117470920357063410565325588720470465880781152210950420761025148051241540239365229297066002068435428365928178329642558723787708213759231038887846413494204925715704849553443040254065861669537160719020692146464149554108604259500831480230816389066698066947996840933815278817149681026531556497908230744225961111133614942057927752336641365398929536169227438441409041986112040073378255524771423798726681878523229697682377763389676583332826631873484678535560026697521138061657948130861522595431395404445167460966984500266254502827973676189494789272058144395579932152724528477059009543101140953585559848183321594973791605209959061282070483347641107062135690788203065414575844712637133037693353931474337249953136150577807767511777250169940887883226496066977909076731921391023014080760056268559873264161391266321746375046608576572429202205832058209271406358454473697217731899060724167482696621756226808168809643940194344963938551764117654786493153212820641853227056874533572573607121417227460742228628943292915613892769351128519828978699396842673074806109868030235455544009437331405056772155970908651629468431600652730777028013709341298308863032368524358532490306767630294024719377441337591979189233994201467311522525948492456531725607800390192179588411642173003201701648207838767674233831534587118978173671491838338621397353063877013310718615210273228809709257429945099012574698039877332224736766883347031982584303241856319309885940672549455757177181012436762341419244163310570356578214073596784742992564842481686802451674599661836953866544019110024991093310163969248945107177030486631733300264614748115491376957345100843604740556588641374626619340143080573492288693598780111182051276075889684179669522014555169094798168901704256277025918653898281106650020910303932566796567654769635779275534963780451409895153161754103130552010328187731256851723087239192846615488187166825817327736285982099090545645238251473896410735169825483029251730116608702550241470728454123198772262691595559566789302449133027747646681751019895236398791577648750770069489746867458490549785221170294260282415208713755458625735454226657899947775760947387171217630832323042294524923734688412243676037653175013650308735306592325947353417861762881657646835493961362919289482778711394506350219055647593883816377092365176314127780395217701617763767016454957121494056405845881907645345540914867972302735842042614800548993072103291979259043917679595581504291952727938605995787561942343853494486605586292653688502400507186019471943352860678586328104526825130182281439338259983687139820595777250457297860357605346307148148781288508662656661294091993038097135004211430270320375036672953914902338725971533749549696449978153215506521704619545772331832685843314481138517205746543805266112971886661985769141570558707091694088017594046449221615509238421448459503479486376696169560003670042938101516362346556277215242230900414272851188069414175681223071350217316433072917052774300312884826160834858920126173864251993799148434674297970631208148853950474688760382616803897489697265967668649524518362831369264886539510899485813475167995284569229208881896992709614716800661287574083358234737776576856283084082647783370255886186795641090904091247274326241698150579619314817983857817518781126357199317314307835919473058881114274573197408095592574541931521059746878824136930936615840844644820465837634857560986821778393019292586197124218532540920244978635306367987186313074012453501495214988495555509302599886012931203373047157333892463416174730191605835459635753954754020907458404159672547859970977874022270707321272619026806837791493357739420664253550392339155433024824304164472653566851172920762817525986103367671246736125349577213869303661120228212701949303418305262421944598205604336117871309428586168760611879758864195849770094427648497822182830631373186384539544206449497296139761556263253232997120413717990544168417442600389634838257995115511664934440957005187354730412975640009769372049284990457998055992780404748772865042637657282759336722409446981579945879008613307351537255292308584346221775603465912569433327303907983805396326535625167383740120625641307196419346808916596719389105990295625224694343822573633381134437476766426637548939551364572457808853646057189900660951850480704007681189322242662939396268536169331284765756542201810468583927707900099306002188169284956269714956810083246752796503283129053335822328895762306416491172336727839153747048614380484147898147827821915853848427171757886069695987975906677760877355449088125731275105370415559774361387727599010650192164981637800570381593154263799172346887679201680359537037263125433388650101589594264589477632725432491156080107397371187525766455889564580508978860764080917291424794027127494372054455544736816843608572835399457802827411508296790666068008475828853366038504872923789253832165326825431309092242648933240377123776336224335807567136165295991097648813917879088930721608607085251870723657343686271633348954449922801489754854942875178150445562352025011941538920673619151488616915947991142271152449573116059317437969562756229845100805186784694617230969477772619730640980762535324901584284158056669033358411836679793795447861406761287059295754172929657854730532403232438193791604943923891624034381113547234776497875241659417358935214649019925313746481325131583479995750273834203868728397425205422291947999030664915473841887276371235154150703612271372061122030099860988630734657129211859593330338181345854043149177940850640761621755575189394962219572106032795617562520448787504101231167262051222335761081080987405474677433810790496254701107431482228176356214037340887573842059942241373508122512647288884912942191963811103293843234027573640828989309400334701565707040992046039328389729910647351435105642934068071617997909889883577369342667132955228716397654108859198227653379145705444434670973870857807379214302121430272376266531397932026018968837388143244297526684440823388261525798527685673598765370030548053840522529544980692545952438108761024140884485301899183049652550290123755666869897804948062271176963992790014436203859196698988285371188379841459698077104953995107524995894495641358625909852525678337929458525789900571067635925102234970488358246361656902383545739435482509183678770004946619723242464195853480149373505917355426568779142683964668383607834565340422597788961679485919452522467061171839587849576375464545478412247164359729957819502102022622944127114936101192138905139001134318888040947002888958034460181215960301702619677654612650436685801857669775523809152730981249229690100246631211262901334526661597069089355175037284011064570181932719694291103645435788342163359806313595512817254516982951540771236178207147742056934924819157262889181989303082375742349464720856684859231714314855212404830450655712041079781207488095438614818065037449683341948428568776293225485676107101274028976297984462380209888594092207305381485673193209647623612335212549126427018492699498479048799008125415005024594170818997292147576865027634875843686967828760953316237419234658583937968465966364573295196158301785806123978917516947342698437793898913095124392886604821017358883194874447020136025322855919382044652170129708948488087593207438227371533004398082837966703205685195955805229573512876332304879034288210527144164405825527385443763035608148954670843504702087095157290088309107658967612595609720901055425636242544258576993307321989485989380228314486107465067187177084195722807832814096258164853162651213927139689265890018576134239067679529029495181520162023181750007252093061243789568527783455302298080569844602725974648046033329704400731759409960881183601941214905122896095769491710022335596808057942610964126458699213618654895497069732364185932396918509920559881141857107720988389777035565221310812491079265541446043827009368570592281413102108428043526545648569101403736747511544843051658650968079088616901094642455548519513798334228761845720319722530156558220423393803269546295245724162877678620021789359999419262809661441534851294542150464302940628564430319048804823658627627542515325470868502442598730566905595333151421071542880281316357343915399154437518457202246399277352571543355724490875268964023407786420808282982176316318250194352138887622512136821972265945463622968308529884531996085292413582657209577110264357396380809387867288467106750496988043983693640304787015166287981795438256056664593525515266871368147875765038920119523556478046098323250153897706606550485451877051537552018409790167379406329605634624218590802103200287826373181262047826992723812363212951429251540189337566136210528325913714547208578198581952231963050076011118600546803603374930630700346939036505355493885296639283361668393369903704134664318417634224478247295640446689710366243185342503673495046785853021055941185556290551868884232528081212871600435758339756143949562755676873882517347100620201881294567642283216436755078430150640593378147833964689744519566188002477736396803179587941269928362763115711448810918121915611094686773513991231325116880836333224810161709870646123845824484521573350498791197314540240782524907446383055268754608250282418817485665945815239640800724631802060139270896571657803018415930936674484797381163401719809828247227306002232828966937320765548931954110144650665687975364222902050398064725137594077728033839805669753440326869743468083813403999884218198432680300012845552961668714185657022134262593170828321454853802291174593038355615713173140579866686775124533060243502742679538243861221452303795314075905737365813915640712223593085365712661164042202291023507022587943753877560414628236426835276809506642506717451022285102619801141476411252938532972259723588410484531606769566850340601573966924542954589304069317827189195423418245640629862848666309209896862316192538726398199165276633192712041486338435474261153875193447169788596096878422380739912429189807091260034703330661435487810518576758914041010151111150446193333720122913837415392447092155510327228505748027068235413601972558675375074854133628254701306386642238853269245866045648703723472286963673821869788777352736956208330703068582347395497175662098738397747796149273800774893635466580312101877684010141295456720953592750282997751263940398420753487455659378975145366620657940647940849609553126856764401228165190945029647712106975796063247746732764939635680929291744580194963478644584738728232018298707966632166897909705050195187413613086625196234129805400759732973196561672360271727877940778485755872967988193440778950408419714003934139779281330083991716138011939812303597212217248567457312307877236865461546036362496039054810948247233718063970644985672698372208709389780262448664372244644136499048881536263999725211968409458787702659278070645581895591837459819321525655931876025325232586966640014730053978477727584210151338730535845351332427808059461032609663691876105711525021765904459735420474014954992879263162621292000603878222351374349598278012937951748432410585547637909271331662533436260826021766008912425674520724054298134252629601324449460311785300640936752237495049842937170445024672884544626900220596804797446274340695439937968625678049038570211712604331965146788450675686399055715019297943598938625611160238680158373373736672792031257955356982247824077534721489518203996702693802874540803172943838355643175140819711280828087193370578724027282524249290942758659042568513807832793765490544921345215765606562324853384646686928337833567442885300442882994812448407389196089164118369411928190847040899942006101535670266564088081682279997767990615909278183482684339727669639729848987777805740300513826683140631640296187699968559328147603905211152350112118508574180771678809084387918128397654639962823164985908093111302735285964484837171997857563528663284792412379582022652006000706609212270240587215595498328823400705369602222384254450947426583174678706967715969920018699924929475389641152241481722435578252068601571033916548014776711197469578782114986951784508596960648603752055930203250547931794233541592332855801618595438526921190162871405497571737780764253745656322434674717284428116296126673506424016554105682055157944556271431076145835266046120487169396920549743523534398424280058069475430394836276966149245534489842343542938240420849370529922954608709753657551116168524912804603586078406183932897856923508120338443786297178164058862663472246872935025581204753091954695221247160673044327907228704628568512261373457549527106097770680062343414603088639354146264951221553339194377811698828855453679574870755623330794226748994916951962448965309988377325056422397101248338472705306931793491084414263018938781281047816881040754772034909933270700096417932562223271304776638547180724067380328858222402006160105352135792645283542302345057334694386315881979778042067019828809036510900521331452890731915104405585259732436265764625567373781505840113341553502665826228624520876228136146119208765628488312271087694943993843686854123623526194167362256498519055854417780383137923893868190380900474556875274872302136598872842506723251064892831077084860914802204723014740593511648233944341225813655151102950208228390106269956239624088258503018152368483744084118054167470063848347384316732775171047764704414408050336189953521426806843638215648481440882376015300719028164008962879355069107661628639385043189883334140692646563714879259538137171613273893786436134881486158503301489097511645353568386207609975787411708634858657707202309782349410089587347362275990748207024145802137272145055533281055930232368379010933155851237913855374533534902776277926305738329939695938964937280723632078000368422318918009805186626637064275189089426081039677877590407878370157791543486553701140446221974387871522227954798012663799746051524846657676568787899261079328843252119838059432219349425369934551263753677486236688684015289358946843908956810053963466190931174238630522339373439392512083503064714230886625824168337354219943139842973572175405966225741665122628321626075985622990709029018373619590264458119175051499198437898862345810909155861233426718736015046704459778738744831217005334669527041534710320488716274599329036475235050693104299905648205130787413455620939653972563477930840267002673998045886796041944483627208334419225194302715882433333214282064221236250194082799916755532655260772007525571720457279495160540213474633413104831083981390354780605131898140639834067058899717946123552012169680734635167133841568226970456187540980944612941908104022364185911997018637459407954944357451523160318211299379051718733729685758572132652639231732598920802363340523147243627977842954097263061800262375862924912984622031276019610090330983796963560991088843037375527523284593475149205521982372161892844868630654553605818445326909315554607105232235755996909583979272558459505793402478382323380000947938734497215513943066505183348350563423701961533478702622275213870510189051804396638289285411967518152255155716312666429631359927164144592235466529597826578530918851688030354321993362131759633132463127578336258825840485232271739872637462481384841917242628148921831885316068734242433591670138519499523100667455200040002301933584171318213742513999296478993537501710448236181228214059647816429551637522961681066489850899870768539787792172421692586621347252086537840889027460067706121954873706873671357472436374376064208506249110406166905675790424021251492300382464283236112915990863981379999385494501882948158127879898263037801067173502490761109570495757804566055943069577108482643888903070195384439440844620088025662071597917085783656888991566606948166543351651181605849777397504368712666086482951178726763632424523454421914841546114658124078897679314097019678681171259352380542173792039677217539163309056341261789306073101130068930581516189596949961901019674930629398782159235889900843669506879581581416930498200815283075223739844573942197964064903391947210200913163830954876938402391170615251403591806523283474469239532459564826946033862946941975203643994086222113336748647096329153564187265733045575715268272467013594876721030675950951844198743446599117513310497280444176986470701156791129142509900003867601411171221483657200545255187454610578714829996192491183509021794870001256254396338919755506143573402176569625707498288304884174267898443504136385314640065568147212132262271544978493334396956764880439748423337176114329337040661534928143232666088775353791617821400779192467064212401170625085778565343205904663776145820111517107334051984822984861235108877763792527460299744939736305298604785180216282837816027737600173728352999706278192528955406487620544766439734441827585004506405130664202801014021123481812743102123602107527051325665539426236449487747483987629019273610994489053068304719269956784457532624222454486421212634172746122937950315326970561460887985345440674265279824641401777220487143337764558812947583887240763076872566479335647263008356918169598345677622827551866942892661538920749382184170374830761153592539220815930966874928626241206133492038120099524692024091166572417572090432538262153354358461076608334320314120859064905475019434333823718040256883307935984062180926797293036905898911833008356633558541646546847666841507535260962618246145286186445727887965299841706358943028008497189516524815691852975829657347943128125166634125276960640565936670333619509604694766903317064627253693921737082788668256599610807770061351365417753647202595551987069052942779244082075548859506909452871643399251727783357009179510817900120044290249733220625248858679283951487738238228103722247401620612150461671703008887750555346907653134322719739626533170817975958188642696605798786630448045460941776290324134207887622992935923495821088605049271526706850357967105231030486105136873928308532316885387565767362400442269199188808971292037055928760390613378885366225333508118664901899823781444122024176498755091155771149729811757385032493325332953315865158080960858149326877149990986581823152116573192975978904077310472339266858714106354204226385391799630109872455549717957940809888410165264324789875901423542942572476329488482651171214950852999022339007303131060055622815178047776160555459181309102603211513882717036692991366790458112119991422520295144702506672294703951218895476476427847320271881818426040041665754783081007303500561457816840975737261495680856162048868481847785200194471410823933626057598946472007329837457391121269503447976565658169119848225761194572588745270129077551959080537047367770677327974195993040008350129119000958004938402572215573736184173262241329231528172083485701240463360110471543294335689927084724061899898724868416523268432023053195968574310206435868900857079499339436713475894236737621280873254063402246629903419089971947159779157745986146323821955040099906845860377653763574456706267301917212078797538235392974602729383269405625873607901449164693407858221940568556376251552238838198836439012982831307172579145678877730805298182941064957865082703720053965888170994896379865739497214315196666592931100481622533062366112388967058035448949655274603034454271354965396842379484196195413554547674957693819251674496345206626764291349857366678487161094659197092002693968892789536190766437610147159293765977954299937782330669727715771606446601935546911157635844618009919527012632554788180758109388311948635133178064251995513811502140793494097604981234584755668284492503136441264661282414121544206627266960729615606131950816952700041820668592557029306257259500332016996709395836459601149053901728535694387118694106240591442225065710017217424453897175904867305412686112588795317114372666308366732339135943842874523279468060889134958606865659189518053491777516388053699488352194444154840253825245755437253887474635783829523574219215746496121454359903274499452407642097553016167752080812179876231145947438399559161562322544893598194629889910235319374028210130127430320462820065987753816471681869674926391336275778057597525562314321975723385084605504541571739878673740320548569312298667738949024421303407702496709369962735159957985076731512292206454107835432845120421718749714659203711496203559140417376166403752749111721032242095738224050609771822097694690032115655698864450858717445098537244912559461074632705755092377555771757154448876342023786225295372966504640551127618622424444463291633977016746313799705043121023340097169411524917606801099320136897392130897920775205894431899157543178427571619011206159000742956910609540376877076256708451794262614584387799412076091927524258755961239342577093870190491313371375167486260332044310757644966007205116427582482818401093903323137522014334992248505432495380027769614428019755796768047600123098216413765769140902614761204600030721833819841067628551414055631620493303850198829117094645531362523984335695842374944536553845697019411236150516792081672419340605884767833960393555098770695074920069050267539838770514268459207388328710491630523101602863814889936989035228836848287028443143760194995891698017432259274494991563821749555051197690881486428831408634203981604072323121665412731386046798819115007566895673530088111207054449332977878543107993147309713887956863143869301573720703373258850965927510929308428855530533103201639759020333302347320445553490446331412913778913543087272672186542474284033010808486890072726940554523688738833759736002058684322715731809271003740991603719094039118075700599107592005091834993191981428058175943659116667377733620329859042434254724719729274026093856351512976337844677341011117998878041887474027777836669544176130907101543918268735903351665130181508641185690041064713432484181836284625781440354358599763500507275911120149877095916247983668691523380165867578561062211426176586735307528831394420526366581934124434732422060301090174501889542101765225894788937774126055030723917442217311983153509637524764598111289366203674146406505837465556293937239158926843435455954800211499519230230678877934922038450957109042077944394976709008872371060625156349368833615134531999273761201347187664932839852316248199727269234396186760638327565635449173615691716787690953207496033585866299098120509490484626593404219635653696481710148040931059679069031877172747038982752979508601271245757885267020517717461999711029892014891779020266749671166644721115744156470165147223077889544999615839740983949475512394592722274824106735058996198199708902692080160460719450359947463464131353138288397901828128876766268366815002532094241876090233831308244182661177431575396032805489136404982995985792576492853562700266962490296854777596768741395047983870439365496486119494434304481156287596188203725206746404390299099505408487988874835205762633773937630029653747003389630315664604419387376120077378384823534476681801309187571772738463871440785553784104017573136885549844203118574266999525575663283887763773729983756789216353164500929709425843902906125004583754409977145685093341878505983406394938361756474156786748150566632119696205006387524902727061437800654257433905636028284551953383287941511075828381483815718788432142198694800272296715343406691693827969047226669717182724879722670411758795267947220441249348903194052297466035751366619237310627669011833733343296242919810641510329040428014166165356632532879486425082086647990132174627784243102344493234205481209458180010760900364579994477074890212683065221166732862237726108265870189808736690255348584720933916448350563566692114336535733204281956572672045791970468962661375987968531979141122984670232830642255311574016023817646478532263981950159615410301028940341136696665306814212922536087735696358438237588320337756036981433991528778004863088422346756050770225669114347409052216910140454281574699483080581692463870529848148792633335954495370665631453223791600682215339503665885940573870253603586941837505408445433567784898193478060754326870705391723742269910699734290060881128588901002172386397965398217275820751872925480353160372838685630406282539211371561996108935672062226182322931874490398095177920916949127288860004232312341496434311728529432427460372978071533052536774857844421434457030659919070654927998855489839015368652951315786575269811151622905858306952858071884724783604700899792063689498729087609512497985122511178236756662515322846831977591158945424687852144762199310882847662388670064972397039640091055189292892108956028376702953490156408473746465420900910469485184235498311243820543064626851517263671873970303262407557135284434162074997431327144355513590524720134974925450255117464836843824016274672679364688676560535378332137614994893358416584804119237519436548690449000450979411599041636375018247800329035354907172198248398767688198339387635304719999414279572934818498280323008207244954421981882614868891879714314200402809914590180301506434968521754659643378318396107537037356386195324321728152840078256387039157872339688325585761518155082121190237504857929562144610472896356695649668177411161421959135091061516814388202725790869371628674033765647580546496355221233829906690954952069445866745690675625080110402328452515723948252859208002248363283327557065436088187393091848627950283099702585713727337080155139976015152329973314960380723093389640905440869525075951220437313945735290424080437248232842182709350995069119709424455839095288779392842209004572408975127575211747388022839845258447417853909152150021819163399548434092318142588052164722334504197695683097590406525194403573959995106347994321496792615901231500047955790134353574037128635293958890137638695591178301607248910610406512692128736779237561757492364472516839235120769142368098243005755262946794028357245843220189549325186112885437137658241377057049658505037631023938766360036535722507431134949667371196152656737272488768213304155996796202073492845055134778654771356855353815030680674194607870617575420383441934549481426523421626621850437653032761096748320656434500017091320997242781122111042087514386524830916936600048028828387473006305954437750773150995175128435736014472555065286574971603158787196183588120667153897725695362824985977938935002905771938137929504470902594927896138709947142025309926174308372494698836896705234299584065421250771035573061311656283047560664442417182474305466378666231574817071084080062428647959024887950429952414546880391577418130971007420735883033876722458473204588160792909088297442752746990197909513697831549910537805094208379093395649905360593148174874308023634263700313508176233341960140920304066797321842061918350696599707017831997257863844379397459211068395188162001806272554621054598858317217550045591810898304290171291977807526900804220612721251710693816361715766833734887482223841392145994843042200821067901174299943675690475176206957839527975023507187707838717441072157040783958142910202033222004538777737314183237484556136965564839560371978078011044749259304687501988849137091463669320115591036456805332666349996975925373794901275399524364582365271779987281599669226455589661425512917913506772367973137484103662769939684197062388198466349693635636382089769385021041870851203081899568483667451036936343604775050606024855224602401352176120410672572614923101381045910807923063662562202922481817683102162264842938030176945772999020539622327096258609921161467266546813772413248879328939922344460805432232984485193217379308020318974556774895178046642279480842093255529736982239076876689228347825605420713361861777255117801958484646648154057977912547467191576516731262489443160191037239237853272651957878655570754532887462819516927581571938436383985532775190517285183677094777471027929287361364300394595148654510191005939198116557651758094358724739278209504994699799164510310409220297768218327969364973474281761361800192800789907631431891454622841609661630649201016489210921692250329039600427189087435192747040349338798699027703441081620946054524669010465501487983696705689606760794339494076180271009041478554882636162270759808400824731327058512681275613641740593373635303471955800511371248193219818778490416333734291797789518527136422159420517144557563898720028440874655037593567343740525919666342233932968807833195112912572573335977304168143869093212475452910337471271700111101090444404056856836572529911730313116725036883504058952112993468079514927193284066264482495522553138015486717463872501200485221243311501874505951929427524402206502274780110478823218487426505584468223533832870073389854558147151771244032540909615777962634771517019233883743815836813305417115308889800567666684270880955939507137016724944756348178072970935312222279570782133879939881228637918108011810800174683833811524082022865456064731117305048583423409431685901733420211755972333189225330162581078293796950147130398031300488097565954176426526014197291632873182038845845878950133790335901912379128728424370051992221064556914926102137497846271617158184255960992357271165533423807197003077294209138406306045885442631958277566179633559115792204062603850039494979726617999045866741533558871456087202430942436763954240057255009529391317174473568159906585138402571046979667250754435996405682544428777973740880063240066219637128290413139681295250459621251419609611447186697476935498976324539402115682874269801136629531224998880073936846213262287272717330623577628545591122854360929797738211582821032952731689916109792120057379628661043989564352191661307379428670958314025215176711596617448781650873388782653821238309551345924166042800112297237841812877301814380044086260858053480293840234016539641561869662043938491567521797574852896179512596959900203228041127462483355302929771072052227366607068374936515847458904882552155844791715837640855865554741448862067359911664595583678286017171249371344739735794305972861751541992112905447521942113425820693366852518805164484263688077272717752362831107609404263777486414186271882046807006632827039591461713941874441650379521511237257161135716319410195160155754581437483983852835812661270351217823271734462217476075097800108753914856119110763147615568612529453658531561933123148539709616265464373795909303696232976739750487340470221650759961098007447552806687281395002111871174967344798321677008359780851461291449343862053210086246097133214657231237911174004972091089746062885722151823730882409400559675780196484786979507044022335478286562749740979183111950245866579940121261193776343409617901701611524431981682390359042347177188308026514239976444238569238440816614922704231464828437138907315071462919895644454059460978026232495962328601475307301334259789230687541503128020778673678932576481854632702171612559759189458994337662754236040660016962216753747578894119381308522555649773981596570081363934476136850640007685469093055074407464657010833923405266495794961182992458392622408479394582151093642486928791398535209645995474154928061434261848460358102713268633098700519393393014852728671904947628217942029332031807135949114823125283597523952450445459153134988461753321015314646504530936864371798960703797390649859105536928334163850402480434437656835125681981080449747465444030759175728311765353185450126212386069228549393276546734654200764548648040577273337936040179763467021822826017150516979679241915638346812366535153599560624742180358904032475606631666725970659640714504852373991292965777997618329552934869014622926213068517076818340045781643132789059100438184391332941235573705461953459715385348150749920573711031051822157447357447838422119235287455247216932275953854197439632959596581142955103862289887607710537191140169293161715204807485222060911780109689281286209454664793101727172281881115145893816386891279403120331421031914036312541377833285728015802152302755316863662214779374832383734311350331166762305716954520492819604635473880397443368016426082473565862498686317441214049705667496284661034236654479121333187100330147267825497012234126430311509921392831000078602766165641206632960665511704662573477801669177702026901084685577096623237193317281228592065167242787429463364890844341500153849201821114534401649373825856984354198141812748770754474597402546582352602628427893578574396284049783180439919583131544969093816825845091022138095632215776896191793352316819793827451587355746413075163039097419158228372856812459756031307923333941415999492496986969803409190624872615334337242081823915109842182318417967787930776453882951487172995286282018838841475377289101468695160759353780354127622353528738284231622445674023900769240554458579606660480182988346137341551032196810332171999608790118180233508753106481748169739768594311537572352567815549777265775899293121006135202715162755834557696509625123410417956515228015875067188178974292412580477653390675355902717183416390400631656463728235778187497130266961460979814925350098903008104042856106683544150499540600164888164271028638554309481845719690268787039739055765374893388341381592834870165081394800792154137247729766892383334963211859513577791113731547862107403412115819986487688243690081923514018139443020728080845306484927982116105687780756451371674800804527100113902414161592482512145237648138873146649138415705738761884277312836070308867237947842161761268593198800204924781803412842414889287362706440430776283699203104662803687249758278432501307428089047949989699228290184526153735490514989079737115874023589671011717393891004375207660664726350294726590683058763310223253458192271754092416409885993983490567463809269728623340344789402132939687934621664689494198895287198475721928046101878734527839552002996851109999011621718779023999273787350678009426656282136396137791108979763756533497944593938292283189899982119271390047488469997808244968839710844458519907011685163807734085159847213586954707170001963627827395383118031615325220858698702531288823006140303941827569331039573667742309949967692832692150655214251589047916736397329780167339404109617820376396028063660119971427233968097558423463700457184607853396593380718333958328577259349268160623869850008724504928576101103614630315431113257603439318843391672341447343042023099346688917314845701121532739331725110784680191207558163316003158949877590716172682296105194785829484478571397918967510972078327586155965878695487646755262404986948761302574291209479359259063488198441700510154812425832303057062628306397131941019127206586403746144506911656168988257595580240225428208553217038246959696478122952398572688968052140427906635209527057897838552122653976702768315823640936536819098888629725193783897780233595302838832012571595054256166968312513082491236783669589842138755408531114189619135452564744096865078777815982036388552105601250996543909505103388004737360606611475053669304381967889425160960981809539702810948785337895591241148399864397439884649214088501591241683961761778796619351903553710049968962283155077663123217928950910468447520810895701787194036278501731323623210019077320516646784745347135319888877471598906995413862097977810053551595742691959315070065178036066711118759784291834823313246768959257868765810705349734184345335108650128908564475847045857626013360884457425367773459719826865796439217052273430229275786188925920466890873392247204726930874060382497787650413961451180152337699723483236817656211133916713110632641691409063696285740544506873168086977734900253402381836886017877118087941995187090990284405473902082489542765261850420023415522481459296197246152609141520147426032337114794731346125222195515460779111816389054655545225334817052356953208750601658985232146770321943852966006966109853413496195911345301543276952401326762569950224799212228524807396039636503614927505711574623302278385242040624392863312765733102188216292638627656188288991250889585283257974475619804903605811347542703308806187529470245639360066629476113681110442410563022349754936922734440219123077222273161873672709275444285554742411291345862197530651513994609911484151563561662293660905241884867417567587469970984966496573373728209491247018863969903839322454591899002425765212595440320842581904825155534997306555769399951480824820967002993055434400578098185789478193313207319742530540983128932650163005869881872453692638526582055947614243817572758753832102310011055110850429116812000108396547000262672890276538177323585086913316395160327145814567032441003740251614692610090839586101862662949819094104782832862250894431496576564098510865098350856122583902402025150846547433335801551612000439838223640776725379273200011983629312360156143890905782959284006982376079452046109220661067895110238404472551866405169631569979252054653057867741966341276596724578805472738788623832381809943025778796614778521914042291656774914039998785739829546510701082317986324457240786450743836230843759315650233362502747810736658844266269983630075728129104759177374301621551203725828645090416926544811294126306677766902669474776302460173658036902958366439573946543615776728157964325386891394265965337104797759354689424845583212097583377072738074867522555904757117033494704478809803291429105349942457145184656783192172840828442115981085670923730834424987596083462170119304678345377480174469513263784170280847985286419463444524969764833670149782262844066654113282939831396291327667095960117397346142217960887889940268632213539972417819631718709893664900210549906403305823548593780424415297404327647131070580431380752845174331229564837936308910093393495204815156078308714261649884912025561353342495450949589666537559600240398476904798658718780611689308556099580400251381456436630753402761408308315790203248582583774780603799189737280749618808766366357784591225501009668427808621413618693176923426286926141791028757633704393876374454328958607405507323803624461118803625075603121038420650170021689639299554050340225865911075367991055771264247478366614620256426006995623289131215833430729863507373939971430946761951966057494819445017757449637224546492742715984750885769312628760472100179855869740900834093380713852518875175357641337889280727893188329548032710077170402280900513561704299987479654202438248558545163861710248854536298103916227117518794777911734446809649461123858858257786312230052116802656817147273985516047328260722169377728598407306185252618450979415569613584472128332577144160771272045429843676844581751367992494296876661216210778712062175227050500842456148505777978921863939919395113280983647724582974157334262275169265206923149798832290717748656372689827882603669089198765557391500412444933429010457840057641562763010290179692620736795685326397730167939012136668290080790664274322916294750059700148614567774212806326882192830739616474636192984474105156066426275637417269717302855415685181789254571062361160193540189155947450726440566659407273282979085369169227796708832221809355884249477970975667433312273535415049189906594292357740655297621836708010747519455948803044352708961675470338223855080661070334804586067480984901627450359592568827354189416926697872766380041902467740095913791262308313435795155232816442270232359419604210423771346014817320650562213687976909276355263314595190450998434662804206379472292484102589668550852420010669958249600826369774589060881908101027799649557945482991248945005903243258031565267983651086361428557130677548348014363555443646721040333594500486022670073673125413501878979470230641839516516397199294025140020333652217585578722312818648837802583275957436406093646358758749659073223092669393712159761933028871023387623474118371090247449465748077415317810598264672769138211383306690462085450115366671482532591456370745842413456749380895306807960543746907556152857809165609738263026608743515612075580653663903668731725675994210522332271643228806200716742494281308032699207761990958626348308892982019452204070419195133404069373636564451524588858396828795052262366234290166733589583574256538712234336381170577275244220184433819210965318603479393953360564275966710577809867212907916093269448623406796121342155223257405477232805560855185851517365931602069693699999580087984971739976052814566459702308912180280507995594968152859734299768183230093575299547931110701885108578480842974654288019032854053920812210426178034053084297772936030485324998053122353288508708686915637618665534113582131935036154371460798480346666667253423821500942418206960951446282695493305427998503961377748169215487136436163916911748665409062680195648412851129016272089128391011129074539814230671925090864618765853710760722824754039077570203161276969655810392542126565118112981955574815747030813800540748303831559644059591754186325543179596886539810146839966253702489005356119427758501291420345728429545200521748192216799336357014547052000217261590873555488085397331382396422639472990264279470494826217098316756521243319306922648715299868842947423426180646657445593215178266911033366726408296855038567933832179912345818754071862000245591857527617835271714411987727541570070398301718379894309871637099748390759061481555627261202120162637776317410422411753371555632179780100658370251308429663073044164944280262115119910016876670507346893424510515990667157094739375338163522109500191759882127802984152791740150939073393983515342876786960334456476593047496023038389206205270771726509800308088464369911764386164330270823672263429860938295325727348623859028706728492961274270589317408614479236843779937344172827137531994040174794399238085214006658414808710694834794816835239033902577138117039380155027365533574037482993359167719975776693501230178710857468836806021210795585392934290811381990722097748394378179318453436028109820906968677500708566205629994819878923948157894851479385021438924761054316755726237976200008851348996627286841608089679044499399325351163798493524097164178901756143039477823756351626000353903594631432351101840361854130059242171521988886513999810342834999093904741852259548108609943615487280392629797161239590730179608691903100439739930757474517765666919545637525844820946559105475891121653265298336721434323095076194681387590244776313326261222994490273814772507610880509331353808418566860465151497694484184533874779138587122834030285982460397377243276361824875753725196145545620651718545494103691856775368349334378912727190539599363298389073624562202109971891419450051617938394480588584836056072316519559938311841076084541076088461309954081615508000634654278555455440987211366394491381762878035673694377131881862450656375723442739736178319130966120591324248152575019518752778341918932952718794373259129932825514877449224848253496947087165231387472145637648200838530474238149742839948890843099506254277652449058119124740671113510251324893857687000643483295275410253989345320235914516642932549823928525104233545142669769454895774600689786040628910668771402099340098064971365484580641146035576113827455025320696996796029104011361289421304960955293555635509891740029632005640139247685878979429836485619692691395011924840715563508424935704306046556896971345242780662145176369438544534629158515712613182776757381337268578006605477305173611892874811724049806598429221540544872511363884187187005363872075613254332029279628098056085518866105087152920585922532327523930928096031483200104532842656088645628473417602690949087064771864922648500811780153353868085440385569092506334429747036042202455413896909733181840368992321727045866187772662710185517067790643697562912482598597628263698731046193629826036291165304855416451392546535804569831602277637915978881600201548892955617019407278906906247519288906919531572575616627907808378659992311327466894777364585524265971823175773819502812258764754664872638205048748529391760051231746837044802181848376786130624873660524392091041955988435688700479779914411436606357553049635773609433023087894271053428670445823011965694375212103421308510408755744522278708249439577062539091589553379990449887456519973240519721621350668742789599382066478444136843869369968166708264563024984539004643811327376859150226122538198676576862452381488735869250995844430341151545358944486836084976170070494559791933034963165227192567551310713326798041961863111068798139347125505666966431221780165018662652215900240632389693714756548776245467159252790110927945178150438214344531635798445226573418940957248073824092409502881372779034220907389120449340703088227589253367765691418177369388109591110043076343263856442564050036764864109703254591727877871917863303717751865688948471662794932423117414636037798588979518452857414010508839666447854541961027084442225967583946341570643661207045996338673498841158464360592170870546397866848725096420763747096234534139072439148478289758959639279882656870578273718281091959819674904165702045799350254786387918384679918514571150625960124689391422596864845279549701500799079357897482236799119857974683582218620760404210959595730457820649508356209614601600966247953557737078805420542090668983140749075266774067117397433269435601946610382316205520332161606835251020100261820588966438156919819569963505599521712271833177879787629483507719296559187028561826015188200020544566631457721271737630327235689027237076902010015329674546957855758788465991392524705708279120752809644470756746091099696482342483049336438761855938428075341945459098115907080635709566439029733657168137296012371652360932647715209013913574174667771156475328776470528427262481382582832915183258108205969924509714230588918951338450135844582975904426827592214241993085521657464527362159738256504574226762985253662819974609961544345409238212815655452057188634603587713795886985553949789574738465910426058760650570867715492021284598359488982077116937706098263547254033326556917179348168507989668953198016416925346730054722158975113434709165521736016084599523261066782555157952756752585501949974585712284467777923858535175634610777309767712141630766321034327901511069161126678685161033324325296138694796925289421283569708753809546708995323685449141412236672197456352174672235470305330230066547537010021040973158757501425001221623447642445979282248905887531465017192883346327624257310686794158448771222499513888995191711914628413679115998617035144527017482209826824343014727933528016689355647729616960947902793708868305061045530292785872212388021183985532673329569249585718113418561820199829689095816665016971932628541814495121821263902894386693520848411865246519543869342251423511707676960696547263604016683138110998687748957527273014693184446231511006226224449123144321579841596768017114895772911847905690812350224982722174083491688796084246230412414042865535048252833356159599638594328605378197021551742076560461257584786224669799214279286077635519584864713087848486678311417505494061018569158974347918794445275880686555995683282643432702169827699198448821119931339103248027363361325843884869558695058208255895182935513692472710690246619992774048795790023427242705475386705576450885938298968849896176587405623357151581065438353587728916590715865049615092907390457208147652643994898121679788273276921661210917987233336809404909961848723682361012092159208898917364751038479799388112418616703566022572533462421025377976541126010849166024774572912007409584636059220491787955614568269184828826867509733458574846861510759978354714089150167862612868167001392014643929347102557590405346054506645987274754658514762946181701841361709289978742417402248991959514642488601297169637803586217191568394635296776817014485613803692114042894230857198817308170203403223681432214648536281961835113637448935149143947960223199910960701202376240148968576353532246963491190529831033436817990434779163536770151756858717791361985090361036642382211952954740423152458161551101130082125814924747671619936717069264837986601638350825448937092968218757622936324378599569635677290929526777386290616023866540677927482503251097210508743549372239545382360419279185774150938913818776924083211882215891368717842985252725765845237136946789922477556181977620777693083507547379305020620054230853004747318113586204652557563392785818725820062308458293560553784593967119616898111888626895917405216351877973520764698736141191310457484993069638652260738900089778537553121642285471522964807158760069337435117054862588671010796006579059354643693871764577495115279250507489758204219270559969308312070448225224850435025158449853656453012637134183108514911719776715076237725750132041663456948980231873710197081753040477763726153041108972257885835524752498487104635906424952082638535386291460317138081082645375148215272146078161209478086411603341944732758336465058235812027630389226770987649395013314262749152255581921830379144817571368347847018233753034385834538948105850892927911138342259860555041715601617598231910363925154019448661398666817903843223366694764128593994691267737673285408425618362398932549240346387418279114556684166492699801644307071175516703052430757460890503196348138106495965319473956702284888000114134821368833790566678209816553632857403639974628269174980545305193260610701677889382106567797117839585095313761760209107221609055916689180545798100970029034078563246504479143379233267847636842683562523360037755566816304329656433768745362091729551421002939748908398055062416114130966815679934422369142433625985383347632367894590337084133839903134356162871200990495729405988212608277154863892106901619677230128688368906261503600575548480365335778334337470759513593790100553028634351480962409341949215932749326866360233242326302857645306492547220351499540250401705155928663786832084916005711200539725214899172201206547435763496624088520130559188291509516958528324935177312749574834263564560837707628847351199818997485346762364474068746157619701800453113016403762709503995129350331166187892717830420925909037847441683012811482600602929627673589067833287044701061424002105581765812828400780655202630646905428276171785540703835362345789513417624748073742294059308250332436123191547116031908054372638604131049579400171424508044712571716616455013777856507956417690606620363836301942493096660547593487290265438125791980896083024047185129906170885973996210279295379594581335386297604408019469612462343462161169043786217210276979406132847525679629721078890608635261396933803074557177000913607447612790105453860250534745789510805838307765351703344815817257892883674043915185198632853927554032458572194293403760391363705787403632734751971770882405840142866557854041396265869190559343501074566240325432550935009598498301757836498332106270309805248763742113153364335068821024068181020483376677218501287319640018915659597458295182089479471876490243526016304922312313152054652405475422903090692791730894853472700304965933350539636629330388747248874961066799818252993547709134439593682353679067435906514887928366058249597657888653700502711284850825725674847422848319516765954638546137754098324093821444379476262262231199800579912863590902883706413987473014658731587144659917718260898053808921405456383695281292220760112593991056342069450674608693183952325801450645451046788401868875326733945951297335042739106397063885903468824055678645825588037209077326390308829776246650549204150238860642628161282105250704031226256497360147267738711573577004498862049655012084541201698202721519901825332642545371218126791511674598107563595975254081842311336147751131246933039122186491981510998817238962190068041887611665863471852593207070763590189958739455661396917553148837708646384246722148031353180128596262796312473081851562580950280775685720997945581715433019867387208438376754098836196052170205701279405705429870295818726460769633576591086903419356780805791921140146566392570751371163576803961721626282397183256591612068656694884505653326458977536348223392188452435496077585289233408707973032852885154922710228626193187104241066596124733650506586529183224501750086854628350373101322794133499211631696678057695141779505612627120552306201816770712944246895432755044210331976227716850652188938736484230578756189171389553325307040194770149674293536688910607150455538999096964655521147998631171716252703992554816075815864721941992491841964743985613221286952341496748792812952936577345662500368298916576488024335610323943803638449756715001371501355074837880706731619390196758151049961125286672342202788685765537189417337847672558979055149174131909442471168579148842851486660252057634357957270400486282576729279220618580404015133703703934823746552940842919940995405801378030428478603585974532330349406845327178156923576973162778265181026663525719337339776588611972895998544893855365228719425339800837747639956905053395007007685698077724554437678292685092737627475277966543512452177050010348151711441759710514555448865993475645048043450860245135377347841297137742850702099119048897127761588186247956249021233834101704269055789719307448628739929198079437161549004320356090517259378337860404205587091847198404579617681012940502467433806578051968198079847356728819141842820460064669149173643246541365395566599636327207867178511408364421528815409029506009310178486626947916305752340693081435607959929331893912567807394981886746679456339125322421653907807329801202386591876204149463285174834166720697570988634906511718020199602230912738261513995814561916240243382419432767628705422685863446315853517999966456378109035975071677989803640861980916032863684535905553106630043833264564020591502811953613268188525960512116754697948726135131386869845197376906770155729816627496049762800370295997281629771958825244867042270125520018542239956995531418585838167375654873114361842516047583080045844975998077862430815958748405421502780000131092210891317132423789540340584902713847306440680841632013030339424706659768210412100494836037534212045393194446111960548441163843172018801548619236005084239196743919519282467295599391859093318845501946000965786782250759835386612905346381047037885048833289401657775995966427839506927447412538483254267492769138185293712038041018154088882799908271990727426792273285865367333407381887622526249233101170728907954376464622629123863159824987970898040001553311398339340960777811140474060118236834207529484488629541861178358063274592620528599498718200675748077746187942354108304565300960977580977317270626570037243388278683559897078441351964271802031311122757731948505209655491323449711340550336265131128301362700968865096565965821073180534023944168246672603741138409926656613420034683057370243695993126317430215395612685839868289962618333215067972218313924848381592499039386443236969696232916205386256548418945409758858029214813081527270640723768094430876601378727265881976596262550972321524761061180145981064145173583369223495142802581440456317686173429381006009772150102191426065819951461563395985684172905798573621177000977767727335434228000372425379305329102128171250706886014480145435327196854841460781053674066328846421565644317766461992471982682536490577734134518975081131551544609776993579607043082452485485046251202374545314974248229003949561301056954540005867462621920133689651914041808284829858017462157250811763642186632241189473881495632253467488212575729535052214663572480163551103329606336509303210369440016180661412704249825200320925311467677243783705140004966062944586423488893677902085557896369203562145997356314703577457021123633018008915859520344890619998867984942076009474076239816214419000790817699633968986430362715778249800180902407963676397323750393802925922972237808591046139223874545800287612237184930261951360603862231048468671651778245132353069077907414347734250675507330361691926298779835981871649753806486137828123654184273008276497024791241002565794303990326922659417646613079500446721812408845982423253255736923047659095423553980054985000630645777216387242573104611061002005799140776024854497989041217937462459315278347180273094037403150323514245689515837817962727814592629062527618676140121340054263199439512689446718961766901704014185215392004779713850824090984729602481325616342648338471003974429001049795392293386658241308334820125088489302748947620925858066498070637032461831634004132411624964959389858965359892162389063423013458139235897955815016075353904263259892048380911569741282573648562758413816333702193458164507371656643554411296352084294262078390270626875096884270155886861306807962103963832499210584334535173887050343330758603913309620696126111998455936789873428290044701372682364976776865618490334006073062991090359632400305542403106755898892668174449913166569290126071939254183140779870010929722744959899965141568283837986574912273967395671942541236889019687147423411466235229170293833205535650515620094878112781730719165609492201925217417451109880433108412030130014252996212308054579959036292739310516672129858875363544309509804998278810190158600959098952259965466153368028797011743863952195883882872489635151935613150274876508122819406151629036600173804664198742365823762504520393224337405001435128504623907551267312906392437367411815286867618922865557867351856838903088979001111122695149334973736207705504647187736455188001987213702946964821309993902673270765936635827943855886552815134106184006784338578342351120526432795192530933342896522682856992563106518691174315438120604575206781243583250078052939177030491716512611254952198807803065364301003799816729562104149430391823717639998887367608486454120445782056122184239049614352638832099159676248983410176848129410167224217336591241388225107129444944224078780819477708350320650170065275935862896974296258132730402720380230926480410393040098056268191279511385570207007036188346166066698736692275828426814868806219165867777414406604777287860733857615902523408845970860759845640681469349112839037118432780310722839496675783592347941649143285810188409721443932055506887437945201717416785316092624082925909111199386234855830734108228047464198897326771375774379856364190848393763463162293690635035533089885576491847844279009598660112915609235727635152947113684055654345456039616743352681128978963201040990281868088494860324005893343341390371380947128178303031622956659795083417075299223722952954400644631999853784888457895949040526158321896075282866466805406254786216629475059106526370909047785066921998874328462238589706807223125569345099025933021634057751904621126670010906169813252074042482056773725350736748134749873533516759674676351078863650881205249163944740137120495671651042142044042382957665125207700827674124515255176608276394778225030567824100724927438858791709865874693065134670873697318666559277706797581168613543668570606186297143790541461039751073857266469929151244024933812632411899482339019232915940422388477602932999471076670831556233472641860108710654436044928907321486054985610650944784278119863833834823703499120298449186718982787214914747539242607849620538915689257291410225319972918589449931974631592632200102312690570470608816250899790242014911293460343486220630913049982594719053522337508373340489486273017986909318744817196567905871660968685583519516030675125427491561552340099078657334339401908038897749588355572759713694425066051928410921007540390844523006270388863143555557026438761783819975231006254157720378295534896293503778790251935297238018159694249133574893856598509186844322436935311540226712372422934782205141763641999487648998272347268977545083067450272066108440950439144731585590699015214527228755220070902813974563275808750912158160951800777809913124977686533076602333334350211668478779134265051941781350140432099201766419295124646702766334155144146872451552135167221624013934002227429434503621078413390602669954876556433875296167883679573737461797719566600598126050978375579277429728519903007173254980431132067727158467830819473664109435722115826365505768059120214953431394864931156082394345906740473099989645762132171162121636052837474141182421359683539847181886366401220336934920293023216112174298698171487472992669217665498345302772127021345273787698364620839304721770040906358796918476161387445355197657246839034186441773435310472033524897846875695443655482587446811155931338157827032285441745163345029080988623544945320985221857906272500854696086794395406511069870484795568891608044197382126750646130853530945587782667925489799312225985450320668036648125982276322929585351264680264971897732051730967084461442931082056001313179740834520191121740840588926407492580857987665300998726768394885744023727816914840735905395348054755005624219941654858040197535670858961117535295580857955571236838637880414494041097507158097439514356337977539675761138238482037852566500822291658576223977754899666783357351815661252593021427334377888599248514059229578664699561773342531580145426826832946766879518742954023547133707879347658113005264315862653695105804902024454717350017172592220989969196614665362853247753206259031642194047715777100499900525397770413026370129146230695062333019870306709304435218627340832499669149126602964664579646818544392855279871525077175061007480654085096397674381029481069277826541409555337467616471942297034524423515884806062585468315624221988526322459682891489748244782491088492156439783856853344412902913355820592531478885719848154776732020332214071415759527784282333934827283214569648952188667598934353977359130433477496224168475452637320454517929571951819448627507581228329890787241949986938845780687722095951932508611348381175106741549643605778914679054429754820173344039122095200461609888405877208183157605778244171983343221475875836177783811124214926339118057055417170324359092703934307425405741867480468090596628122485486738858704711860527904544177103461995596243607517226633377461045040153633414717782085403359794845838556580837765179486232063593233475815354542720140193246237755192914618472990709721057552234315244082186981490837095915875166569235566378446115832222674673524976191654662043915451036142586567958776583680289396193681044530220707039923008712151629702153756954930605768977097657803507943557564860767246178610469058163083251415468133995886707096267119954894861995212550306469294375545924478736400593760724890030555813757993480657748935519124757251608916275230178405817522169198582947340911459897042096656671440811423754482998240970892925642689779585071394257815428858670758786415878148287205342824332454004976048780627107669035104439004893535027416584997848396652925543655558419338493697638169184182688356465802448450244473709505803111923282710979734581768737911337029231930239459013712832471209655237768559543627562496110048564929314809974319954374327052691239882061872586208026531958301723927584519421826917763616629492074391362002859690616969266524353093536952511067561834944454544711405080911211103984348411197803689346016133165190997721151962347839490912916239042108980419387884489245444820552478382255623047832798964506540791217804883674457629440820007920502974808685005106269482139338419252921967297229756442614567089655376331441892899523513730712804821126132992904773026376950307406116977140560491992093918032965672734588945166538935927172402343453924707936038326666005193844048461829827812462785453806376475982571583789449664010425305761510487479645856913870483304434293388074944740993257171091974201302320565162399268796124287997492613503634264288609461666298585062445386755684331852463092010131298660834174506363674127146191836722291061092745376740444563447583351780326593829952649514742998382532919446471548606987267318978828451222100660051027124587327514564294274713442799057799521744430698999256950481996308379533206526697696262695808606032452442700166065870131712691459675351283867464608224502739814585352335930522610360267336855395034262616534521540706264569054744600975442111940034940343155539326107059143030026799529884952336896764169497695957302393773862910782157850934174186944004639103025187216538120302592988680780668853086339116856144999926962603350431148702003059424755512255910311430784810845704593340572818545830155606604449549357521481690940553049535457456051412961541302841716597254860247721316917777172838471285893349126453693650520053344302513038279335224013023814563119443252443267907638516054998417994362923558049201282016639527585693061789880549165001289090423075601333141363606075532256842161687750665279044235189423743230402888349709513135259007604782526652999425719187701669659376349994104354466294381423562742310027431101919540246196625652371333917455746320265336067807892526010671424680419406863761203870788986691714606124460091242083689682073724334382203947944088622118547364913170837235995379165855171945901850963253113150050507575497257259333492098277043388596705345933678822873386322734946439261647165386141667304630662291076494352833217014759762842103669127515598944254047536903987271602752807749458172836860528271849118884763830175390889721176218710965202881123278657067097743524109007470867464729975860243184818703502816924818037383794262076514038341846439746765201136269481324916362396322656088816315937945411354798465963648796126143154354339752812199651788294910383458004716278784512905182568202001148923707638864014567979781564110084790725933544526698891543284145618062695418400700595221110532878090795805500165671972940401557370061062098973185238469584983979767097805848183264260209144318277828116247143997722837223697567842302542783910828324532071439757383907987401938412576347114008990459231552516928568610914957484322578215443608079673282879143860535515526713997936830254989161426809130122928115165276261380380880735678933051844442560924456572865968098633445815677734166076524846555172741873325260413814782168078323734199154277772055036741752534529979507719183461531518544786413599753434664676042799335447212666084000625086286960517397277101620690495938024260960541290207908694287653048462953172971653018301420365655136147422881360687000780024945289269460120005779851625946973535570589322703982599245621651544592973186275157661724046019234885945143031900372073127145698413689313644146232997778823468608364262859397824674712289967585584493769069671757860228351519206052280429470889594793373968452322223540054593973911079917810329057447009249726716730900086865666949090154104013290832969342084377853359672183755002754761221946724419592363258378977558531339072168838904441533451611014959256939780263085062086908270538260079304199155562386279376160516090947902863115261100934195806149986743541503661661728330193617488102248346495116925014773772194387971220437539651771861811918327608118239879807934369688692241255768891803182655436858361837733530718762932174051379489603469348532596357631984047194500813256896895583586007844647346528483465066254352771253873954295278499560516105880528348789087510986357962151967319454614163392833550865935078299573203614301878879173310570625696403041969263522731457329538048983365371270616569639294160922717171340160277338860755617785378208020988553321582253307019029698398526570987591800601360144611617165537553176347332200739054743782454527645028912207389848854095335537837329097862735901981735097968334446791878696758523812420469790626603021764487719876575368190125108766395212537942690213083302540558970748227728532708550183740186426960689326888899182467881502548732451868825126925312412703365429663497827375482406905262923122216245384079197690269843665753713631458048373128769916543941530798468901907637466229601540328020017435950875620769636520002918560561327203637107800532228299791365541263575051498573809399378863352166471227762229957199266925739641198152053103744553384428808099474626041753948117025084545395165025147398459291145817654961229280748673186036459722262062011041857717045651078721180140819045012542716416722355240932080377409839416158741254239882964976645716754830475015142717939802944016137584281929611692503762022386873298057436907644415327877029654537073567103460076534158520492818184811078709566002632003717511261905329053205454229249340212810237504652096082210560772484642118755419696626523498592579287436060905651624234495593767873857870496779868974701896437396802428814144261567702323216038261477093831114674584109109512639732056012159477829335417482576429382141034630329050866342837009816497228932421987567705987477360151111581343291416501985391647664807565376400655612420236523696111133096635854215340650374568942428994589381917204108568680164237997477984461089821841171415846429510922571858213791487757597746497203405743428046383717227948923315849143778393808547047762524050419636934068310005118107431489462657600883287836390288042615618466195917149536337847751012632159037870906261806351798474056045461393615970462623721571716294256254285809279497226689004125237131493859848008083424565981642188881889051995640150935028567966587402702486335423402144901505854813924326037126511262167068943074437532763617402627073449838642042952763833576360747443063469699037293437730505084027656938088993863967736065560379591060304890806232242457477043721484691601613459743773118167446335335429362084767618462575732227708223457887276298550750067052272667689811996023989924614373211525194615611012846961662993948407261359791723518677096823253669893497674069289821729494494043821565266198944530289891698101619137209547965252550917348603577261246080476211675984594116995246254783342602519134972531987817948864628755779552560488564238397032941344685428432130819512502851225389824030685960422757059222237906521736968507667197759665482027652902827735739410664209001537832028512195706672739689809279150012911962653211116732256097557136297328271092401736493455572632498568337061326424767540393494452094808101138617190671968211446215251977520174508076554993859110598735842710600281431105840099243094814186323301379328081490021840122352251498995794788608053277325727748994743720410406136977499030312339488194869288830697547346249407121346865810566155452029398969336692583369655420608311370012111394555310890116486144987252837211933998866714935151563812375373167382908639261239693175918536520093175218485852087937925020258929660924489232549544989190833233634197700628485209779136559077763993681261854522705902264237094692864783865340477250925106026220516229494973357838467046384057592853137947385432561893543906002707638362506170178893808871344768104276659153802873744140207799286444090069947399387192275684045616077251029623359043033400555256729285259901282460865597005772246947358062801211320148274139173837719461277236619738706972595091305548246572624710700472575221411197173327644058528168247036338182656633696510857088615280057384088480006941271943786360386887364958603972857037084862945115037098903922890348453608152449480553872585435670475943103642962179692477710932225808416661572831112789954384299278223279676170020318853834283611727536324161325077332324502636620644504387399625883254121786480565405104206429738733385255396041587807520981842475993333532048463383251440087374675603522660112582025657721904575314785384239513314514214604010229636169274132897199364031541108782538811487020649425755359828440852901905776958139681691313889496577591820688133315505810149994052892150518748423919612781290256178400173121713888150761519141151506632281719928667381832137504908290660104632845807863985387201559908257991671247593698309159466553355673412494320784867386946592727210508137114925683262623330048674461151261884315608447660168292533755848306814288172623909749752239909616704966614815461058500602607421995733678954003792354861654170451830759714920718765132474231397500659478910942329025320784578227744042772435125210321775135403253752968624382962863895369001865978452626392448191903510177467890461854537695136149707153891900554210601844723802622858003116245282367111875059471146692729900889331894059631627603290139129319094136158828540508279833452529395679348113183948811856511614279049251840035332068325869241186438915182431615405708505261223476465604019188176006151948760243326733978661541971993002592258103706305986786674257022305656601025622408981800960059171528257253718831389652882091827102845375162228944452742613950037169851438080031938012671747348664199038401587795516625721844707081744841306340052584644812042022307687832258568187956005457879173252369626126220335972274057104407403885849176868334736891319192538835560122752826940207898587262417713662017468190200404115508012261817291096240128851868786837718070595450571168984286865856089333833184035595913278955354408923253767305490223753137714895592420425937577411449314593767000423978831923805629359163669551023640120181229985442862060043902188821198117136173766182592347264772197337509661697204538428767504474490940806844214809733048922279836884967008665642101787767119185267951538097452241942281904610775969320378167953745580641003894601823611492701981592819066994242962163649720744814508358929015131055158796905442574109163850416870330745702937614523744382185920882923436748334353673290226505556684671207166235810095163231785561184661001830114424279334667553015305976999219824401467446622559741859695147829701178924323375343404825141756116743826545432107827308104931049014734826741767841419874736332025104998861163648167834702578132521778179991826252017217560434676473797301360360594866664924624068238240780211326085353571687508644753503600893187207767061772213194851007586069440611528220724211724837434768375709585491684113603636683235897537070156409649104217125697793684645891795384997438870271938896761577220329987460225459566103610847894329161349034385349048599240644971407375185713535532062815201895781691266703640482865102388016737831728132242876049801537172444657008294170577015473432374163307110710263721329781230688499940385583905946329641960611027019677087747736594246210959004574779832639189910261573323937313796221332625612074126856915638139101199986523204411553649595167964286180270764092348957375953737141418573485327864299095512642928329174522047751874422066282877923759698272761421604308107618094338535104970520965317576808545086872882868362426004826494128362529314488441278962900433923005097858643027641349521900241570455188040335601209665003359618329720960714636677683088438852920653986256873353552098654736970937348113682118941147538853255602629087996235280411952216758967432572095522997242200814908026061223566448492352293429240783208512884213219717631627714188768198041209124810252541237128991130540364107396177156497804460573388358315476986461138072225538883695218624206037467991306274999248805169198771888564772494529654231698460196295428263766465257732543802261928456920994381889432511264767650463727021324726380092538897730845686446549469796657491528761098940212311471235011118024937032078272816356409491379563173033419923760018615185003477459813688116337260334709995140677407131634138723940616826046344136946814850633730843598808986243626163016736676755371459302969019053006397474365155606943704886186747767812660259682968154173325741963902465583441404454983917704756370883375954365455703717399160579768821126832290210863014494209668410393042721378528057911993573704410284475005008934040974770876220220669069317039398591570426696201636412015155104898897309693438451495879186007721016039767297360816630631666228105743094445192043644623072054935323998904245090727642628130433915942022409524000140599338216342120789766017553732112952783989844956250878384271183197679552393943523567817855303350435536583876896935780745394877396044315174266297845930184627342029869801332246082441725096201576211302972148400791637342362056628296373480723431526605578516936559033842519207630733258902299251144375293158794607696519236933048352807323578155695512963557005072153338499558521445789596394583102004422346209235774879827405498019333248723042967842468328395108127500818497525324128158518620575231487074706018127244177427713499151722831342054567506752655263519516131756079815144179379388719241731597270499484686304250259054993392778708657376771468217808301440014978347325944078969681322979707922968525760120206102546257757047283153755193857171404880894198567707815047110283045922771871885164606793503988463949442459737591865075212476290529623900037533658511375723110973226985646148642413531457768415124694631417194601350191687365243898193909293522572008627981088539651742163587895109984747915751405911602192298366215212386464458527001829265171634605670380797601665321669540146966354820543329932562351140857193504205736474672776471949943645340901632585553356033715614052379548258476925838819454344212392290790900246798327978407589754031647464673348334724285910908426316361672191546847234986908029936944393239649589347479333530021137292149316327401108158274980249550706298208456413041918992648794539989883075504266185894715509305385382313644916771448214641841096715166486048075280617280725929709886226212998995557679350923041587250577720011024046802113938338994903041012650680841380217362857571438611277079162807406283140955305009026245917051123520435681938606136310856312802051614709947798850882765422654349014858141655108730400481100459662950207144332661934545254841097993414397847387848600789567057399372464228216169716465797296625512118071917060893456099537497882086545337676808342872867597462579926180017775727873537056179972670491173812129414756395874117937424610184399306970577357298857870018367867701265940154696230161582222082084579311359582610174612483418879976325888612216113685864969152672281490002193139051349014970198514858279069938227919988472417253156611259137828447844482882763880511999316416684040260283882825784998754693325504016777803306529854420120420144869742716938163175353189582771402469047378432228694409194234718534724916434758891402333676740133196181828538835667692820320904763333309465439012640546046618731731428119052002259410178952730795237186897244529925209793179947667667850285167837912577898979665449770273096731993395470004272519914492203413996633846279546554547343452164478462493774677534112577373342216140074982905007259512363669216578652652008660009143939744649992135805378648717937025611161582856212743233709000305956068473708086383583858030539363533134521180419250994929656941735150708954302664695522864306721385151573431681343483114512339998067504784017204922482005790090251011588476219756198947294497519842904568010269958429880579569720313433369853628684831833927525821920995864188594459504533790671262989418149633390061294688194643663866594961053214379730181978922948842060123688793384813798754044364823193920210271568652698060512925160556784777731030762897926990885186825933162181393457891861004548374110571765342834715981175582941247965109389819756235810419987963687412861715093423978512418040373743544206153853828895488630043464183228095186499898108310999416213901610618764876771387481910472997281231064833594192782210952166145098797802761840237095936969463025302335108235455034307217450996467458789305082888870836186013925231602284212931196949387482249106369874373131621448099328643539121801731158333548436702121482194119330971118605102185959413203928541827867962813481136010695912852309894467869731167699572989341753108666592951554274094035701950211112968015453698372483228755731372723374341317802296301047107231361795648232234066487819322961315130803622101562329668506207435831474701596439400724995817552265499097283213438885747455271753460780837846715559123591092645909623066160790313305540009951598856601468809892985077723881764260112998939241073417536204959429590065914832359896043876582081513226096776265867282457736097376704335703150657534811432012135301068191106105270046746262460381968909563612894527699084945997247467787923855595515361895266602141080075953173720597837333456716498869934835734429580508625208092147806149970358718355011002641721810990536790214314682644010574921888270615788626731606896824336415447252376896385064019170644778501104679874268172656670361306120385756197590868667382616283926391944383177197454438132480106827445591212140173657325080610222399575078601147791747758197072480547516180690568601691017461576107445762917647034746593986068571638441913247763460931260708553385395607780276681922784445345591997716917346929548343906565007180576733843256823986288225102621505109505552017079407819431449874238297691641094464309050944401865540092630485655528625997512734358333878214844670161716954249042567897169015182840469484640354332987049087057120336756023900111156135929494120797626982099123688367525244084668443024815067387628990774721720732205173745551138092224032264239862399462357712312778725112329626016549852179622760943906975938259939934027548968878835105584046209457451720314399248115160418020381518290535784515741406525864043248036333415074935501780558524806790325012634052418328921643377782685734830767968032704278023244907273568436722610990705850241976547165083072954107730304938617806676154958055350321063969442270963382525134642506562354411405372766931351606528452534994845330376355630675208826776038477384942606353894295974092768725767835800241922517286882333340106150504341215606905154445313635755476225426280320623153490850356621348816015244675795311802438567941663875972987894302450788448707312736586440075464290858610465403445092623138751622030187524823079122950884964432832763359482533146623503041345824069601038002143267591663287059539886751035886120548980154862956913915240878735652132935532455982208113879505215263961550992380670356543871860309036970642265573350004362884985631794738847894774447356506730073927853197075114994894957476651089213912682682903521765490934384662768937002734492661906382562411150426417550522504284730220531302070868012782409366402861969815276713814394775366980378592071627212257310549356149970964559209099309329709051033945972372157496636185512688074035024336084531587065070479221852441615533792653076174434687419309921431942943576068335009242901339460738950569725686317428334876964598470999521859669574799719784157350159584258626226864256712142997472645988634238587612041023957760734504174256270345084069264882866080238591937596281235301353937680715454481016630433785439979811081532009657445179650065151917916831284565199898302887715094172599359266256294920331855453559586448005306985015455430619766574941112511593408067221847172339636797393592236818587383523203841167737843589325675918154598716789998965102825722353162966686084618912757666367628436111977683149486142676736949832327344829841317014081032507383944901394812387607530299930719644489693456195211317536934903843239113710922438491389473238740234954843077746610146820495494763438769756972638303461996072879147209230887320319803669091681815557287511996081826923341590899222822234060452559146627256065962656491781696338925959461794118813672927394343569769322389802081396739038869021819413085595983407034075650498940741201933002497236397989383126586574636631675141118482572063446058644845660795773832191402644719622069455661366443245258314215264707203021776658900130295699090865841327104894747183492363439449736402060612097521009079563637952530157439149223606249696306079088709761803681819689063844612039283048923670854165557595999143206179706934378885758674185731454607865439069674590596237010307329944614575220936078654794702107898603627649567008686294167624882261051561852221122960361197023952910157592858719188024146816855913459650594133010772687365855401623976688693415717759032125742017829554556546337031305537592644228624604098500963966928484731525258729964821204243487520554349267188004097519891339027576840699517359026937497602206498326625672794783345938182752834984467238024336625872345905269125216564645049256402045465939912179109571370223048260939455652646600210194964960491666575244409685353430223331035823691770398956687328687698820595569915577868392291843723740250855237969311722991097599302299513662955690588868444110976857880087167636889286946358278729392572875735985100385010472938858999286605141597638146675669436036290151071721022008296334532607224976943466853942179497029456703049800168380136019136380606697558149017424860860491636662694596262707190859860585881704400225219509919136771972462316224889462253223392172551835415662707617319050576296254833963783249465842741907006436193146222121693997627599418743376101448690340930528884364896273978647768554232819959710909823691887870572822198053242606832368839592710687865075190364007405407055657589040314461660994147683991860642962626031603039137093203150459406830883979877067739234334359003930789217083538780785042979921497378431548519036536550013736649940239122431692274113282030494989234960634295663329723554199620645825297159387641475141731386894233378064682720760971393790359184527367960287950875295653188423099231566722792933226580480005312568471515026442133384849738503069642866872834871167836324994358204112925014176360865217942248304356119480733015235979258502279220147096336842052243111904813731975204107509347616092739063884616639245141969160083912534471951958573497348179030767362504067782616693471071342485681427329600343058147251105950000375548255872577257738830473552572280999307366092359515045204146520567300060758335903117147949073096900241470846326483714575872828819253692743753921413384977449346251047333028141865539320257203697176707079008910331357268516797881346605708594166025767335536741935237326231612036637115930826118369354898923840353398305990680502666784476139315709186271936979403417521185792486547346796073852741115145714793105314054462796839141882195900283471097733129481039835933466253086199897876307300527183814426428445197369011011014389812008980972161920833616882751326294078176095371550266070455907569920804684848698425045449562339859866402287863865998954077804368716961793842928408246318150398119109003689182908337337427400784636263614623839313201349617982975766109142937631947050370950630005654738635409202922654249051661685729808707020041506714356914013469728942783851047425890890526180511911416399955812797755616472367490336202549403195562713863760784776360845818035393374828735113350832515289837131449801266140249721766093259456369580735263986299283664371660464539226470678571851835433654568729995803712560145990816498987678247199912840510380876932861474082153816402574592148897420780151496695201735841954465567878586928965263128210147335052732068864779788568849828317149815800201688571668311839150838623146660515396074188374925215198074262586277528631832162214431691033454133744388899966635976291963255973217071005692883095894616559987230826506584751437048372313397754908786877977355919475514316000254814065928552189692580421167451866031286076284779173372285546369360811165434049588131970757111501249388251669569301500017280377284771525539060574654639307515914172826242538779113336946409959023221169210475148900010265344103994968906396530569688650339878642267332725890168725917081603436916371113232090358022250431359805630946013064836210790490021219408155195862519829099565219213362117105290599521897598874348727304169032599579664967256923411059043782687442442161177051349640266899802049177129038929645117471313428392490058390775587357050615189562179244183361311598469843611592350943191986261729826360752526300803906872936364776224252063857833059380738280279643454682880365154382285993166415671050863191756643814097689992503461760516368655429577353607754186518374695694633080228152091878639685409860473649776999712722635320341687837451381023307851659853149733009296265470376639732117047025156500562827940869397648478019117150348246548946772903069117998537595849950672827230765063578757793458802158490021012175682557769123530729938242987032755734554555604787341102343203976225535210731226404275984657062023840802966504261061662890834275619773641429609457846595488026477684770571968252682335872869265789076912501503964337172534873287239414171189900360992020035283080651151832875629607593984049565209394531241053950964846247031734385936656057777985612171842330639564907947622076395052128216711330314206021592794622183820175678597041463124200472907021398385362765760334614051206977742904583880610753839011017117739743000578143100561477595108131033080232688765782538025329938722545146026550657606715684525979539177851893789271082096067535422025868531039682806247495648544845313012988060939735472320018038722355449410372859230286054290140902337706041070111920400444217331540038413623267159585931786159560139443583558743268492146726655921922047620344450103284918481538326762552086576852597307490346573596778829540152046143295045976122769556694048749229176655359273074450966829278281678580979492501385207698623405012354298456247078704832516194982642919669888618018144644098400429433038214265069124203176057304249829542912919797426600854641007371535642218762240806568092798065182865136536280514915583613014531890420913437418754712630613371422811668567357866525971302253350486902633729435182010830958080272271229865945760411314531292625831971711894494475851577350823583744872088147150008737676225410762635695840356289698951092918864941606788684962873984395790700515947333083129250211512164185209092431162510180156087038357585259733326934718537414761906893176291953548245865226767215499129141499845818890757022465578828443122398774920479686992868517059703241692948580190314887769556308275138738693356686289163097486226783798305413079902150980787868168909270847970393281976831790179459774892908355591966553263027667815172547028192891939293891608155843797661840026286653186344372732217957703327475146811701166488233958705958402881068900826501232283429394397186377549188785837814061220033436745387075114452734691029555971068911945826520813219771733367179223628345081511590877936661680358549986408959788766204604938591474974860011459776408779325911683147677120569156380074929882155806227700307497745501378166872099483961356970577933601169353417502280531052793139557238555356658791090241397267474604287400748077913894433223016448142458693026797193759031823304262642212254083685775144093288885921788082198462238452841181810505604962378791490104072929854323064025208130678153196362824915524793390914102429512012183719210234295793875882435187717242843304068230424616702545932427564436642588584158183379820200789100430008949037695723665553701120649424118662188922261890420875098915132053493667800175774084849620610808974743624001544342973614492598114809765441185834352594355638159852607185658363492102852228323558151973394048957846696788051381182545177350476580683329569081565219082207994225336560820923950483424695245546772671183982810581032622887415226508986524858907070737658590758777209641582603844492682100039545100044462211054327449603628742205384177360878744558748239458259820264507573626975869434123867132521336679614271336250670476238918097692104648964113092981916887496540137554542153363726039089880563272756664264379169572609062151396449226759112076168559579648451602632185637039966242514652128954196113656688794869658165238714533027295797703399366507703580805864529253317977979316217656923536625479944135358170975075327475710738974409552414286689045397320858443453613918434138420756064357059272382171152385914488781305949030358503454610308311411846322173969958836687502239884615087918274295043405016911983178540880113151777330746779562158466897609606045915906038145510109473778125759400556888398659938890447729090047245340442150383792996778017700217149575840702931765284971354512019794622722152174558176087223506164175708739008110007584474809480481704483665967770341998577559621907618666827045032748252096725404171878970795921616035094061599236301344639442581187180595176539233446819216832703788499306374938704424553957977072831645055779784113235661877983318711167811752308530629049543802796180770419561323730899787433207010581162904984187800694228498645757647312078388135281654920591859921942601460403038803969192474379145328552768546263781968150442227183011419249497161425330170439728822977177291689580308682427868279679870198472183804073616147521306371162002014091166386431907614897690452592635217105590282183472865134884843792842397396405579557983496258433867684000123635403458516728570010940592112815729666974001329792542868049615124781249446008692569189257361073823876838350678921998489772002835497669490351238661995011143934169938877504056287049100412704082796997156735120746273482140751879931071504195366201522739157675145820388128332986326224218371465472095285331712591239143781530591774984839965601316626094034208931478985186313233782936423581305258059168174376330818680068644391496476682893775728804625786617771632262155040941439758641288967977834516795007392411973217520456013623786683998278224744567308909680169190409997661279411901576341668796247611004098042833592918623083003302651325648494683099524472484235881678264848447809639967469177079789075972284930232115338983608344541638959557223940199600519507234254297528499168118551804632811932800507181260225452203514416480221360812907722278806500062109267172981662287738248256982164206958774827892756459467576312793798170909333281012845313243056485648421177700336134663331228940217816976049795177143028017714171768603052156528589235777525937556907917067283941650903988615724061264827222653318216409209862269194354300776255830565860552578797133661774612436422916955397043182214104626778711975632351467338720722539951646151720860242324669704983607672300734582077700565998058741127471898432676092729921950414237014617527391111740727642151149000321586613626495800095395298194797326162939273163753470914425405353401499137728662378542799515835536410563539864640557221036042036430068697916857876162979337565548314314253832626937222084427819040798641187065622371630570727738655903754799453701713825953416016001889726663173333326500484271184884388576387815718779299483825122226599661678742617849387887876269446208711529203119735604307065435168636733926170370352669318350899787226151849039785819365906318862603188072686508576956160371252795795316218610141275968989641115637835055120552620914072799092114000402807702396100405215496975461221463636523427854608598095606338702550649333128592860913580236231473643134068851929269193278539774405327341501324147682236745943029858385689299394405019400028485539356440944849590913509898337719426416322263856578164645516258054855354697783900732645406194885655203127212632183985950057666211707427592697676349147201141392189906585423521631644797711661124341888014308608420988527177122333459627996383883949568021085355932096987692921314203892756055799167588208938299843965220165279165240433551405117502179617588712773514523718121729335120244386177224960615502401209626293819277714121372148476982776626966225548893625060691122357818650012083541076224336798740541441121997659871770219646241601746494594349878864961878246410552463007808874320776248996958368469923567492411481224033987313801020354053557417619395450156808201499777793920642694002528735827913066941843897692883796392409321659717081996157228841991166647372326781885140795111422757812490163220304462408916220170699567328173184151881602522854275318739128245735281394891126531663578354962527633962244418869447348416439732998926604082396399153944764446730779542696137437291649425880401514081139433065375679281221141255944075331023399313788402996181625751134919549684669229693597866073265244908729483006869901727201274698398441972745415518672046848566161019426466234754816031113838669851486847446813577199745217769980319511519775388304312156281437061537813787959668638684892400724065985252133926608278427281276983008386578570387680685711891222284955041395122144801743880298385686725164382636700433179753497270131281394165508624390209952301854207592461097338693708234650774821372336394541484030042572980691533176991772682138700427210410592088705123534453273751751030010632345854388907373320778912808532260240362237553779621317220299643566975717735980258067801546929380807519372317846550114823559763404423495376420744296048222926821703724495916249370194100734993770845560714542208772258277125415195775182933912819638847297152992085217318014743542096984289198431966894296044745442118746749586862524783353737281340272077150658111035771039469103917874264501944971827360687199428027843122751070299833838323748680001658032741005176487034952811130114840393865744891267617832677735413842579468524454185004020816115415465364981399074116586739828177830183679278161192121693979881349765991543214159808987398822920432795400703566787332394703152087315646905556584091315968663521129319017414470496703990042646126480748873573218805832649382575063028733342243965140472858308697289652530283060457532238302974999294839350401347724770816821380075242997579898801468203070743391245060855803777089393342509720716061748435649000293904091743024309996291328087975780919888005183373446683193293513009462505401895231223036355730052264050430646066138454722715098992813323091264889468222998117437123195723743176417668098697221552335311953805876850864489287445207039240081315524885937168325299128278622414538642074694084297517627705520800357505082128858137108010763501886182447203227053572323033698969245997227743523587772943059594850994137783147811265059520007452137807198252337648164621217731669098332042552909530172150879897801268950432102277439231179726370290273895681005308539673141044479933849294912541544107011412839691816236182546388987256592719764763565128412355793472988551444119737527460848766882092997113797771825309927490615811731909417754731720832647335977941232513836582121703523027519760415614204935383413533189548828085706883932520207382208711622167334278449904631011351055952778981240721855868944303037156364918354434090513508761360352655731136109292036939970275925592897684367163542626818412748170509098976055463438561003944947429812306556986494612998634020850425276143547820644121364323364865335937158710079318961601828922657774313636433366871474338384534489591759180803742710619072673119620176480874408312852020747710983989643858486652026915323870299818752025354449482363530859851830238325498848731716196693336465499946665226342983728478854122081003158475719152922161160679695303480592043771383553492109886878013216943490530218668697674727184611860829414411140464133387669054336182180679034894669333009164997064722627877879228316200895224163396720086081044179411857124899003869986171372988770166972028921955546329591557163676387741001112415807129628168813791672052560187660831739387315868583282727951061162400438849176728732668667609026277423108876169399371837069366730914467131782083404657594715913185360964546572461140743359367889643400911310882341612548397555643568127826937372509322729909972605616806319409612376234005527414388819836395001790778742290577572259167222137740379980316816474766600234035206728526114470399547036355131354587908199236589651085878355492422675496426860081686944928336551968840198499737806326196943513780943246380654906779991835641759026017721684728815690470174311637340963496759323411261556704799977583598015339731777285539876913446345634522202118675528563685674079682422367352916359386274672047800007186010114404721983740428685261169023514791090205352331037151964531935765671680325975245838182104431708355621468519941347078527128563457766674725474255693148115465445727761941750166841712287097884488414651536806101470625265761717565839368198557200211929859898855219668409212173277307484944447672607781246432389275245151000034707799435980040114991850593389895757302938938725292128259968016821097501646580518902645486161196275440708123035556126035200363694763176641000566470757252874403742492210423890795093064224039077248437124210439589209230953867863579014292782394095105385879979657521734423230184588470235691004484690815592834938341270892296693314319825155600343895674863383145879838593976968697465994320539951202393545202323305899575103058532145482017106129738035744115315604859451001377837526123621935264965198778392884161634068743122475951572620012720613125195915145939932129698533086803443789994456899348109571542017695979422929962305145627009773334770128212730583510664895868392628754618245816043467498347282775368409466157260884813478490176749552606975861317625176792847818517420063831380678063769599625148249288359244397905412409269499111571170390616388234449618161302876905205630827051449625588542513946949825956881169339876099335410041124620764431730998733445622679214865262789816636260845460178373548456012631205778235362493809321016090014730138576634779554685537139340115351092163966865327162690882881307745818317427426125692402227020960559868125283399512669885266858928111317207478915658387724072222781249911819618161915000780134634928833412460095324190540996112080771967470873391952729913148771791600904310842276500978356168268808702702036156513878785187096224756435660925699736643806945850692705666139005030188521570066149275191559779459463673650404381225454926267092286954052560152804371269551866671539568510225395712861860618593300617512379628168128604799177250033857744968400821395799961763962449346161573691981472598082289870719447206939278298270393771198637522048046641640242181429335561187857678808854784090490485255825146414626801009987013861044773546993603119837179975274087287126572361454311148159793029509170065587475175383381266799574627420718242043434476753973254151900894553013484144745633247103196809440915873306802468314598876479557813833551457698735542372014229056865616613412457158906978495430612943308495466282593531917207997700550410602930386665191763016143123626057196530856390209031400385957397123357324148885379420192337081074457834775438055995375756346495218188714197843937701474807819645580622410256437350947899844426556319349635928075914152307377347302022690105987483411883328166829649208798529264672093173423147980472944461322653705531991588871026159957389940059171783724689356429864124225742681264793482230940806129861529796123577486376855015191836678417258372096677681683212905457569631418865166725403483377603665771242965668038581745106530497419071695512389497690306518572669177740419327171579343063269063045013588039092534558251972972298044986579117054293082711759861179662937449886993077612026780009574702536842892781654704031080391555762950505182341560600762963929518458556395991558693924680568862159885522970841596422680598763390227514759115469634969467240762026095682484307352513461156704112282051240560474384581010913904653622349652361734354588032187786161506697324248655088303175466846486729230825124399649523003874094359919420144228709123209568753352970840154862354553943094412457347761002154129186446777408368275499980495816253404016688115239312991733761817009354812461196910374835677647167578247211893258589309226767253375083025154713571740536245856157256263941304057644202693511980182429827061412204504875568695491986984895356025611695778364128335196539890135148557167246723123997171543629760754961046666600879374107831619274330093137028907406556553321259417054889869675736489196900666983049464861960593337862737690087224143066694687955509903756573389261991963079779274493253278334811898079619332466524151517951383303477186783207274160159991164425321658970936718468646861693215596510182402736695631283627698107279985560478239636988868555661518954813156866161278600862855234864324519732361543096531901481032479954445847729322795683080887249163699735491152565702061933262818223139474324146601758132313610953099753786760521284583717726889746721794270535678136518061450335660834736223164016583062502007145515440955178460697703147301448792225935652322501408492702198514652774772908346741372670348022713952956771174519872973017047315915575505535888014862912664565722543419211780373630479950496271194857575664751758894755419223019529739372516403692708499185174888085684660048387257335550088005392251170942009453883846667949983347666202519604005068398564907805200535335750690487259213547205784874289671057121197554144101583127590234762547636231542609999038501120474081180984211816972705484222608999043417459428490864674742740911571691853974070861523374131285376122808695224705930096290505811376758053838860360078528408788299743425388277067148954304131813323242245999917209825041300639504964444324743826581989716497447686272138624812240554902878618025257853282023980480609151039312739825202545928292015725931693632774684665303879918358414833163737300584293372896275045530062470205012122424689654081629670289272244287061978460824104324427496516903586276215511408136556212451996200068005774351501366794826491363457337860728440485395603332488080211008941168088692927404357025156943387492068739325697721311770438816720813897938997830420120762028191222230412874957117126178120981861520598541507157846707262099283225398726360327146960757636643889420235475128015831753736835930802803343148468105000365612454503451546676997155154351017252035157917401174452716430919206453974153616121720676987273274888213828366405636526375773218369878904813693902743196367276744573432939813666985184433952080018030523420233359538763297021227438065333505328102397443117305262098386493475306379110736784394772003532699295656070549961195006575297523894250840223639644017864910706138152166398990726712776325156677326587691981389310431441067810246112205698003210663331549659813108725854191629756996676889264124805435142612294819936919112763609392516164690981813899072298135689265388393382099980186082956573293851380012059342474460923919766364748539334743413956821431499521056696625032302060290864898001804877586249594208078553049316244305591384460193088895187118341500024622364085074441797691376962386017176373027990037160903465451598090033161334765586733891838587453444791755523534709123746741896146072841170262565237802995148244037996279559951275893789660891398163027711726650140277448788127517886356058295812701888827841256498745841516698239167749134077948833809667519944869517087465762515501612765395885442755134782807038322330669179259790416656819768768968958032440483424623409313925331758694698543851265669219990993879951025736048327509157495211592852556326908681372612326479681269622449273127773768894836597209704173047851265292855204242571613852873982960121512959924362910634052344020861107765109153925065169530918530210637101758455455507076240134440049219810268104106724312799177141413875004590351134201686142419568625118173073801506366602104351409179961121819004460872091531243998295594081075839532232341589041240441955084615584935914598572424322026275233851267489159188640789125035601257721077597591357515619734476014412405813120125955665560388304170832859390161501482680384985820433688109430503915314878910959473187948729416013091310707082776363054614182449319454542288974405281007083004322304494904597659362701485925381869026626087084243513668302848054656165432169537825197156323199037146724920966009758138632909644543678076052711333251116829759673100794238635987426696429055635730579878480431243639633806439363066614965988281428429861475614021235804761768680399116618145017952202657521852683285541385643936252740988602326631098780785898853983399790739455281676865363193694133987986374360994637709098470558421964414151773817261247754215554601264381401670837692966619153692697925735027779163855387668149738912396011502628453532928908891967101738650258976763560870148931958618391458117209163156334449744112760748055610078049123823868019594250999063380492166479558737381115286275048462207078829939948703846775600699267585797802458318455587947155382017376923574269401705405526794457472971662590499988935620621893665060168320737057507816553352140754483779869325006909919864288043906173958865661692190538867641843689293693710922245606881784908223605498203933579267124608096665771341891083996445862043153814617963623725755183040501801210422342401576602948698706238854193693879626543299033321088791522057653408739934245839176180389612233236170246250200586878297214709124603406846781810099929669054805503608739761809158173636494730512580879340901609721266833151143694898592020704469509423684124504836953274239071956395116228610513086263269161865104329254174942472593726013545518048698538051867886016481552307116081086163248407962891264030407521453458390588570510052564808813663391574358872287009718946304489305519858138525950307415732733368570295298229645047362040111761568438978379631946684579542813049433323035891498508950103333586222455886811945455799012955797579068885320027424296560015729100400128515672026796424805359333151840428277206189339511716816343296629164452975686994923176979536461986486037505467464694018448333275537618342504265048255398177946352208137720330810017663614814605471969015454308053274042563973814823416232161809632455429137724808459742340337920488444717110679524381180382178462183837461136613791092242289950061277458184742963253545243073637080035386337018103609968287599391133332335588186945244114389598858676487979771324839446189038356719348535601918027710061994590602585252591585302413334184091108973825002036165953000924366542788793407098915234974341255411188505377266910578088206747811616856559689087225664534720181634510969905374956152035385062895620536865041788596117358372771054671324704653508121085782844595263516964851952214699034286165763349134040605405080425827216336568853292370478259076479995696315216293297463413461734676136538324249669138724535165246320150377811038398658490137981561103370909476295374763046579500410899231814508013287827328461352874597943787833299188217296008706990206168499622290861535980646276074364238296911547891175188359386169285935045710151138352912808013654101412419886249534838811216685463042263403328200496832680056025906840020655323265817978668962366806562041262131011422953138227949199402411442639415724170554667721893230461030030065760774301285227613169318419166091913314613246616233323080065214575440289077213957475687588200110332934048235366473020177971624881784190751106264570526185394681889311631368688498245798911032936366841808614054507094547420737762223018252152634509194482425185243483209661751636007582717560924562534896616441059717264952155017741920288145811849899258025228437864447732818633262372518989845803028830001854485425627581542611144428299376271514103658547429318708394607089048329306238914636214784580874600089912459671951143068431701643258616227241389166448207377663444216637690498893732834772941968753661918487262967295902312022561329879823161890440946320828319835559402302481609683061300065897896942991115535292322963956860038011517217901402535261758489171958656862884128816702344437448981842479511139283759545031435367809492467601445504564444685807524395737914347575832787554584891153526045949038245143514884816046213764108425612167585360274847594235317238560312393599064688386385332903988301567266897400632383585697190917551929344936281404811111774250857797829439402894449755282795088568303433369551828899330291816378406589014771197720313304533500140032702599015642552371065892419509063056536886400803464141384306535090961035719477074456978518213441152423805025761912679119898464210159488528332013889001119615032632347254560139892514087718727320934265532747745228552869733009056989155624401805370670407379796342924190108828510522000833272750877016986690331951767823992778973309329598524964951492641463777161331943010715908601550622724495638673877249512268275029578330675384534295723833911146274865532190549719552272108834992268131931734973861740249122550282529019943746634903362087840351115605251156122819199420451809716783379876413515405937790922135046682773919818026900479797961602205262815605093341170860030891472890930370885641327677587870724640118225851069398384783747134806847027415907697950055225438344216264966162211400493790797085953935786945751810999325538414780827665743995518971531482461846461548945988384823225075173491692204352927443203468404565416356504453554473238996985118897150070659682924003693907764324330203085172694124679557568877422627157992192653957831848492453266519676035744908672624740333657016070938570641423197736127409844995410854814455467825380632745930591340325558696119331741710584199804384162143039457818109113057892786246080949704755538389127311337484539978425985557059344028595332861580288240477658218971566676582837379181760599718867489383075610736885963766723004162508168813058320961804263750724066370047704214451407945812152800273877504430245370394190768917167066927621943690523059983985613670069766386817462138730880887123553819771435259283024693172896761227974624418461041926630903849876985142600926165386338823598373810829211502609394343037476684482201169499277188382578208403712069363619050440378361896584925032130398468863715500977113424171686894437933223557802742305661278987561460450662928053020380417232382134609716884345043881159475075443786748431134974435519071768777820452204085998265834189471492260945580481618098079209097803098364668410124835284905506536328652070777815257942500487397866453812622188556813634022038772675924238067549838162565512717770431681206201217660312819193339473962885683091395713535744650458840545175340369911560874362788366366255361566722861078311915628695366840818778951087057000641095201903602923227715122015061998038008600673575773804397310905790193796303984775840190512611792139721513770813859999001475422351958197983141092474729883005446369771498978881200478293280950720760665835514947954516441974844006428054744202471767749306141186126344537950704162182629647574264605190177754938051190263553417180426442836980727207806590266999628447943699073241831992714625283011612788895682584724408634450369660965734096125556973901303889493409104041947861006744756090396984795240564095082834353814514371114234419767136364279851052317970991817060925425995309980388986712247125680883554045987759960150378737175214774769548411243086508015038087004200169074485945842493957337769475473993899241390409835595384476915543072191505653890514068499818118060979055690512556409200187154240782090257337772214876998676455686376402966742257595808339309916422236779788279312839987045590592330607902217578350936793787693496252956448683039704823678888068147401725780592644108986861923702616618661018480163822954506733478910625578876226246229382319097339633907459168269490343799545821589671220192747918654089878074162056061595690967488602036086333877659961611844868210035058598505284207162434887828681759688328484695229331413585144342564089225571904564921973232484162573678808274039793505121733114386860911791144529906534204639868916086398204872594766910691068290341371452179169377481246793141058342659704497584127358587838273596063647549451283258347407692167012663674058087794494710281526535694958757005263762999881530596379806543024152043305031048590961239866526823342153876409195596745990580586820462103238572717472022910089277436026768958202942763014991668496734441596492057236339157737347800699591190750944543186539915582636828021221288101717507294439387678078749472863213510378247516720670226005356442704121159946552026566749843092087375998345841991316684847463441601067509520669897117550722240454737215809455381433173910832395094731324845073257273397540260076869505335171937816021981153169974012442373162326618561532196395020186241247882561687594020703685988598780096123153148416241781204539366640248988546880166258796012140029134379257718101412739768151157147240467450637996192793841044926826291912343513374484685868959710382215614811476158050358249249611287899284468078748303707247857054757239566417066079451897106469983566244436421483147463045697735351938882245731875545073704176307018748636111833216860526078729256950619055920010742885396400218743755464084339244470408560482312863031910832328109330089341498335051828560275721919334857145089861312095492341282722447998172564543356384242690072433114641188144820325394263259804587560019776044730129748384655412725167156669895991018153180445752949603890508447769506012058764792279688851792229677591094498181830174764484729554484645690268471947731712728120186371412907866007224135936036022842671082142442601214105204605711930560902354390376440054946171568336192616009830110240478509060213478288900942706692823402647157182538981610899896685150587265919226186490795557394363133419498786815759513332066623655348830790044692515667703207444938565962610848890855323095826215942165040071373446328513395127237285620581675213463771065181649039018719667705333744288421009334256530724650684755190107097154301410482797940850589453126029945061909634939510960582244787379915496163938140816920959965015835458437142959209669058322640236951472142850248789161998528787519339573181231896887820448966749440766668439039511201325265289247300258300202737784961781720108579806006506259760681782086172043832990909399249087223876257099643274674969695621954707984615113006374676122173454214730104581266982761468639325795606014142878168738475626713604261551167869871769175621827840692550222293347291288700328780996039164829976847022458801496724974817588536002541336336937858566540881647450550272062488383271083452320171566185830714237950313152647025576175769648083792158744250426564371453230662246203066471305834047946567028653862452229486849000919906623558092790405216569258300671829358342970899373597608109406082399570221377153585203256672154311571802994165159404895588096101449623572100625805559585140193281709533288554455093705106858362473371300934728395668503923747658414523564843887877757432553835353930616830044879087953336300152749293585001869222753561436975650857981254028541217320827069326841566361191514777258065489780966712036112079459273397651374220091998486757584969982068442910441744443734378912524776235513412712705253606488349760880763648976610393679436364541929946414067576093368087152860016268310444610413992796522782674932164124054458918705359578532525797857749204430449641593822870205141003609946421279986179124711185012728683318330018750472678326578888553996874529196377772029139407225649319568144956046548624980336746566302663062980502698696208235036192751167839061911794401082518695711780348688499187699344093115195499064207286931027279154520306752379991084062937948112653087927898937767282884884792083656579564676797630342537546583284306796140474079510440655479050212588694339997350595959770189025868159759535760321426613827835328642029370890265842953992004274825207113626354537944573627981722518852288408178909168068812767044621060389987619630384496963202585893344961446553944184012169405596116477690452466871716212195168877553777474509154008597057875088700270361425457424109803021158373620384649758434717365431160479458102633355497913893846899922583658587724067681554904117450315664932069206895204402432116122955890942758423140251801144194947171431932123687507026706506031850020280280833018835354207584079619835379387311769904982636195853891890222020190627136573686259162260492701012046056569751082167702744691914463931219833351113719082653597929122695804493896038543270273753986367008544038848813583295306898708281477714563433645266606115685158289751999634274134614134122573041674201998808698109531204071575133802644807364786809773137120092575831339278197328988250177740585241013548668662631433244566493309443382444127139267303526078594946027215486099608107959653460549554830979364191521472974417720225374438520059623018523523076480181006155461155169467143690067173087127704901007564576114545256063652848002204875743226914274189213279982297735528936135989787853569011879908038074470930500080795141142411106030951205117146045100665082478985119299754214362119859864936023014486341313514721415367047170288167474970084290742738118286958369407983340054008522214346859581436529369843944324696724957830765364232136509854419727131757998349741114744879505524640302938078616295404016267273352733879165249856558553781599379464855966422067115211085467359134584742290986628016566522614865946251201262925380779386387963677148769811638157844991002503348402045660481709322446061834508006174059611960590018740374751510582955928457989277243970660434116062048965784534729989305765000130436078630252420851523213757676339562043719991997061921867945819205222588852292241100802697844864287548447789681134287328920790704102304407728561027514549175011696533643136536031542052259347425308956360316568823267337370928734008869714874868401122675701604149802229424650398520951108661103388920523774348384840147272706752159240025377002193343108799134106230912622552860209071455127554949492777304311212846681566294776019896857762253798199730504019623164939988447163334007306049891634503119535185318825514169940868339646392047503680952943877578900509064746448308268980876082066748763911757372910429561317601288317093331476956826289621229323970802241290330735610521249110938500025031709937423524557073240516587266134916990433985022643519464846230137181636581555767138005490493940299517102881884534794457749709722462490463874872331922009371656964594700271777013156836642805923955931131868493772122173448312379291920839261537228425860450618444814595357237643840108998753389847261278201871091465610227183783087009341924811101711915484804193328532548050429350450045917746599738575015362653486263322415645474385953724989365520079815261262453932143404201537139249726053490401442081703670715898959699515801311875430609538326052393096464776604519619097857220590961814928187564578810357675936759796512157433464313301255254388613425104785861814114983003537855500716890460827772511637559484026684721370009916250007455968970718515904421608545260709333536887273647458025187841816367991370386582170524887838464276967614633611729533159379975425131348068445003256458239415169800452699087244748859687545668890143423201335184246540064509852203706131991724794077654423767911878407927025792592203403730350780818337412097443566761562588894319535072247769126502621027448072055335578610706387485861597585173483205432242063841425052165942370239818611137822040051149026201268294148453641597576578291419880234430406325664495075952697885158556786501854288764624335235243589344272816221060134795682043514581919179229029332456065957668927509657629751772522175698055196107471420820475679066952955956625547879758951400526272597790040805085578981502403530070606051814102563601627480892115805361750578461608841961161530478570485451219567093173904731200948134863923415462225080511276169530390884029407358276527661934194978679896823639177092407506518645434987718867320704292342047416011024274896535163714401312536219339208287751245036260083750448003752483285644298598982283242660568056928890115510013070127106068795162315823974037270169311037290032862373739139028581160656538264761039260395846433225140397757605481827226960723262940315400739165295628040191101305945542320535241916747959195194735431484683072933835236370739487601753287195343432973975662865613693526593321327255937256432605783193578242113360419383033669035631785520725414409166490784418926888470209436415745705849440555503916024211679631362993993730892673169537861518855712791638976347188920642477788611002952286903871179940730032126494536815648185333542719590959970865775122801291310378791594140799512974087263516877340790538448830152968680270400348143390812022709627928685286144492734025034113493475740686126053539138732329441751031159740145339119932448773396231660308927743789785830284982665677768895793671694248508990410699643375237218158625489095199871192364774250026102872623614735144033367731049351345756612771189228652508655792529814287143959938469752498099044341047063893548280127844984370507229590009017510683051360615417967531215423830625622117973942033848190844494967632074854757474830737108579259291295787718456937195235938208054779932702771956907907802666493729963205301877709148942761534313455694028985780561256711529698768999926172511399166678085696400902618021855204095352188033426418030747452682888010755391705027147521477414965824406466588203048275387804811464967365443684260128146600462512714045425669293502566903260078166227931426221196651329838184193888254253380194930270142773749614052256961733483881585414609547692483306761310747915528845267470024139563368232021958929461246643094185343430563174362458270370197796943106035684338307506908640218409613368194652026675462737448877676193743151089722057175670110246917803874350204677878213014546786732832188140302940498344507459927569504678030417278725127650329352659433642362546844644845700901908561189271148025956816490497641169250848605536045167771141766193469913755389349663496929380687065015990860161309805094838981183425769787660637813411870186820954839098248635924716981511834878071653858295728086857215022260076367969342292944531247943793501047373877961388379049261458077648445874314878587328359048173237487002539694151422162707642059699765443829413037230282317522757440407890865914876393269763942469802339475726902181466813994282033137713284882966929787921660481179091874837008107934542749421597805661605240584094674539740995471972006765045182660783857131430676056049962616355672310057087149651269665757231200008437544107255174444964549338066840218882623098800440728839378006966034246059008106864497317341890952619643295682251709385992977366979605096040662542039707393101387460583875008620254017236790642469453151279220930058453481227174340528106162552650965975188049124557660825667408474398562624103088457853350700517255959384096408247103386779645191858479825386058127405855166657066357258796366266721309412458945344460604898890111708795953100601984687579530776826544666635353564904913853720497445453116329325109166223077315761719624723505168519884743617185973402911485756335652418454826051768778590375015770274314568646858030590391735852754896947021746760198431403456695560737344299267196417862588355959823761536692052713718273755292920338498802071267897662304582982380932973953739378161913538540770766635073782955790409888092505847775438267554786661633791040198061902145121834731715566536186196878108971449210624641618893756421171354625087007627157836071165085710287447692652452440766598747589099006716960478445913720681649641300799647949644637519180400469352581649937475748911888334024248138629606062975126795212676222614208800594971914770292633756409627980901025076805688888972042980270156144573807769426920388561769929062099846159684134499946209951048520827338782895755498028662051666492981840402542132721377205044851756652103020611647651944060103586581890957073464193858549832419588737748976562237969448449521579376854996762296340493074137771726968994483362427951061559202927930103677874678036076708599597169962098888764186136768694066910253665649054797812180219689312880657505044248078802452711387911726085472260233155966903439783260695637596580991558048371393636873099030405926979335682570688867605566964192552347713371384203345201897857074924302254353819208604344752776460792906855369782558349284621865084114421527008999905064728604124082418830035308646334377773933409168478020278008736006650058489157334161577925856804753138618367816940571204631016990923877624446281102549313743246055351131115568634551709067397226336956023309913916182951896598238002190823563993588527774776579015090735022435757308869588073199705318331598288220431340719929786963758593530021550268684515276421530851563239407601752767493404662522404444033386656379233556878460170057080852582633406667872592020505008078039315781635157213778046071630633872964312974783276613223111960244161038788445133208658988157757260073247781730022951011153288138813475997135664275521744597312411495055318332178241765560300432761453867851592452730763200164197923572357237349608030870217323470681289575489005019304552676551725979370523175677172645189142773416714990385222223050778830572935172372778632434138242961654097218764769265211238217824466548113935264301447015404623361234592091255712645828376420621618710124721773556526282220132289908359619276805471974002945590524483201728084063414619645151682277677138351204331619761219271376626666289794317880121531142895211253336423240116763631165374742634504703852267366709844047263922975903103026405310380438652895292807325023790090987761317032881409991732712794543566141467580178977481435972540104265283046459152711584474894690770858928784222832231069878576671054382979605166661334185596821491529641974465035668535296845871194281842491496209242146071652869048143058249760814568354854168849080081625651678821171634965465950313447080217785757652736972878846447472989196713237072481830579002681219568743373138727346079687389522397956343962801802716485425323954693645709485107782502211665715541838847794512490079988550076184292570790030235280895678190765535549754702754325585799804190016999981964979891507404345249805096010891495549656074952836303670861827470078052883992594599003291282962927830237658180229940608692497626587529501905817705599072348325355868071960111300567754673762495384744496744942911061199341604692658094616025626706870421212532957847963986812304131632529821342637222032688633382065753298047649991787093072857469372760176333931484938353918656252474899011664776640051275649453998257361746588032276339579063376870114533636391491279189100094505389635785212906707095006642535982274586959409023876074071796645412930423205389961091200090010323189188338639230268975666945609604681817349731915154833490698444839329169783048927725768593903071708567569350785725872474566954238939602447001428363238128908473817035954605548992457087577455945824399423955245452097593085352201178066685212050436586860362074271548793327763225782650755229306211840866390574685184205825242227319090390997665588878271369747521195002929607467130076614385211034922371485168418085524282758113830207596910308013270972329719691586726039842141797876521630398834721235563481287248041591886085316111238970320817470789012445581067260534556614750106678311545024098567704150412090468430453384108598306283299990757363421517768780727134151054700200379541431419870684690870698331149973151171327707638877959479406800866461973095849229361588889785982563123527796531260413771147847913790956812298520792981098490313485530435223945434737298596710403121439260610399672849281954243327405101048599156586101291398583212449778973233647939613051519671151466019607053443629292124397165467505302340611438322589112278556435248209364076165625977692010100017388473324245676209921650772353021462864576253642376092345544098940851807376885840911032036976680534259898978663408639669021515758448003219229523337722961093511682894692125671738483809013052677143954340196094026672279899591351082568732658270971646411993578946551977086716001847748523575123648644956513482080270641122399661763528455498837625328089817804297482795596303538103386501690244214937981046560953236513471490008327049956834564025525268604143806771216838646374453337075800425506834690601810401575576719632036050287174810329531279744748257145861614242171004647526651339752068237049846273578226371779482434336895643828780112763457346907002474990064416634035882430624804543307280915492330217432879558417251714873553034270117962728210037350224667419537971060679223762461910833339697033622356750038986690273735265361378234514919766998557647483791887369487746978788811059053051134332175093932762875429902058600176425027546712666056669076699722292143759468945002762882554120141730496635628013940340714973743344509027263530660011028648024382541216884001903318301319806829621121125362362450090518990411834589473427394967827670346464754677304404098287442862808563672899629182790849656078221824270792617190928577967502113905771544626010411354055509489005924075259758988646782099607987483473802900951662154786137521940345445412084460587843219399558062442699063282326185666979854419641240341061805156850549264106286117891272935619946414501074903554904658243711300208321127826115411073789452789180389512412867175303458929554930518947122195384220139369352237229406918106623072239224828053840721313892550219443785377669837192361592430767040687509165203310123680850173993621804672372531367591970857788877199563333688919578476179927356383181960804210341705905887626578468517009047185656403111839722157753816844690469232526564274345843328973006038986226418365345558185820601036321037634871142784676320758516379202012785041765264945811828354177573730636024380407580118336081743499929484662166314050073646424068143644994269022580005323566707125564691442760895475018748507854616913809895572320247092671454691824948484180891493685680878705525728773508767916560455291248129838204774846605436848029108929770319719191525681711217861551502383732593286284530331201130175630243075532918372022715287782495564348509455742609133156575799547406460732088046128069102388907172038177525372989684132817175051603347941849801841665083333757997905286555141724245607594879823489202036663797587592323464354003973676685945212505008280227693625480212027229200056074754960795994687361054246444829009122730502156762298338822055425743522499399906850639313427645665120989534153906441134984739635082369642013895953878569400516186978736210611848392924940397595689250469668352971188666791528138945468652894316351311101049009845182559232946836495665982300617126696121347027198225892022150951480622768280499274301216914755041355231357972790075260212616943292850181813304400537187848101265469968989008453448377138006955733768632534004424065643623529272756982948313991944290867053659935786107675200655010543610664337253500324330578583110893116281497730582799513616015300327276449596725175681981228098978065158484287009233340493542620753486270831136636183358181114217288231995613893458274330122324238753254795705834920146744176490701645850389730043270553619292070259705106158785505893625996837011319852800388435621112811396793064241664729278172232505865353963122389503385254245520373224753538125489488538359550239132165614842593693379635978120732569353451048672230367030893535497256459288507004594734891553562910897433026891952253172191495039485885023112598670363694211630925048256772422089466318107870666001667168712294984472102224924300494176500842101369725921681636593091005910240010182722476810529012595302711874466254180915264783673724378310421279998529727472455322613371495904314512045982650679833976125816956202791655098916979919720585539160923078118978591049202665542619541548325628115003195176456701172388302190944111724484569584927150841379308662366184293373702957950772740516511054731589509723399804336600583413186742864868581047949364623508760039785460039161845302075791840817640046062397391601585656197227443727904306336085841833490249987970721863030262532839764041971763023236220176138953159496622715788744269165970338686522117520414143284345505447275487243196924535716285522535437903719217285166573382638578066194023600415072688620855596929579305844173569686877797900865941809208364706584309509159982005620036577506549142479533068584625772865109922689400666861016051194593863261560045434149507381224372743131222181340141925106121944944138689998435356164847762880788195375812507236492623722142222196937500186544468072648644051130048600804923150900682826609944835612630589470961142026759292496861540048625962367502678144915137607227753938425079058970819517121309079846995982777721781886873696496780649102270260207918704684559062832567561720378686123750986577160930698477449837983693237447347976246862232197893111488592710235993317368330863763257154082637305895743282305124272949828826688625222429838559743599795782352326527324031412668524562396173162621565102935038591184085921226667443357482655627197950801422622861933694516356159485481560751307433889763667768932864700908530728972066733237542710219330881155093068976195195376366085418325528863712320103150982725623548706638962284812348571806822788811455944065576056842087158141409523790783209904227206985583310629772004839519592913675637914624508813706576245938014573960453973479630556712827648801663378861595108915911026529998523993403569853647754631523002971142780336408982943938517019290651035543393335804758064631397859829132843908306284324528089092484909551789783974835498066755136303006904156417096453834200941680053399254812566168655112130240041841247641150707427434840032619743345323849106030032812267799902054390911421476766221151889049936164096866606181742125323044029593812334108721006684705223331703587716891319768209392064916275914315910473375404036956488818261608174881943529792895729007931441645764844534742663000461299251711566979539698778273923280364685113650883158959022426104227047005647773298660355140860259873187198307527237879695738449241985039248999332564187362074098856254673700409210158605086875369230153393829309931383916888198749799055647448039524982578189857271368586080314510529088568008237130330013563878686081468560937753816536123544443281851471653776782532834902701413165000319169163482585332819092542012095691092170147121859546345782942228369964398752232860887035402301762815022400794297929352138807492154139990192992224609211674633625929299935676345521080373129557944976131534574910215004592371445898656986701901450520716328563798140661340756393731841392610738637139265436834034727349091167547776220530095243650030662948755212434628295490905128270192231494037767788560876383953268811141560605412631611979642766056110800732935506715022799187235461949581124851616429929059434604122266515744997504335695227562073300820051912477857218138620272732461607220333426316494520323066364752082525517123458946287051675040058638419231452007786527395147747235474646901078567149265474229762903887493882581836099091190232829489972734604554377132197572541372060932759881606605979474057057243937964474980271263685082877645006271181773193136107959446926321861024244269916036306697936202890097550882558438741419690176917776183035580594788629479577557609326727234965929377700343815830287298252540260926174905140064856555522253689292659451560367107286111190034831450199331485840172801933179228362347984701399174222838223978367435909666950090821618071993720717001603323106399150677175669489346829132029906583802167689433683270422827964336165675827587551573149956939533556445534774384792616614014949587197737650546232502862462575255518666075062474460671290373921334457659525824702842176811416981967091813358973316455196598127014006823632579868032952706764074387558404826314381876794514682949640886401787229364904594558805701917722370225055161976121729533982072795557359892926881853705440094354963951351683666637956798118940571224460909543778669555927142516324186741490421591854943246665014408674452383035152636149729831090884700761716916973391791311015851273024158485649680478331000787286942140554403245404776958829776555600757987452630943844817402287791853620426971206756834913902185322137398303031738401025516740577165547584837169359937989573387513727670714818583963047142721483905933603644668851658021414588881388885660259256345001171112517856004178396107496649490377944010705329914097959728286234335027944433236587577961399054075514882990916377499075126671812642915666253807275551882892488871256201037391284396839690946778058448215550799831967221625393808664571307586031770222272489847092370108883582139926737690236017518288959072607609633135814930677743246409835890188146834404462359797090034581046914138245364280388463371364656536182979627004392198129869927710467034453772171572637067014369822736056006164126171668565046127840325206747041807791818428099070926463001981045802809892636286192685343615633949963427788074158330039767046777001972374978292706985693078351911924966305453113882464196692024123170303489553069835180943550892536510409248254419731383194763689069386932090448753391761473308175280693918529970292024399292034853064910959013217312736658813225278854862479052528706216553747760087025503099847047403168627027669140140300320308351677407017766901246914646722854252314927459783241791459574333904119355972791521241395191416009574152262274411124702324726853545970868622148282387849586988659715447148323426797225579324945702205119757759197138251170175776767532200732701299046148130102913100194387893316080446690752061084850310292550231889829046920233346674685322342839628998671436513980148974025833913372737172809369051438743096301820646175719451268455139734565481786235885105672130740819633134833230674783434268896250629116740625939962575716927748110483313528877509384893806660376534210737074122522219972184843225920773910704158978051528956482222631602049264866326998867721693728972052294640622788932213273671412680155100829062086518053946046797077944122843874024085766677483639175911244031387349406976596541553987912000652933951671843043497446881114297984528886226376207695622174751162950196214844323383424367795418007361651449806744952983031180781519494452102579639086407827372906974960484196152543111437998203539865890918860267578151497936558452533269343077121145269093422656565688946282176538567411691820724381892483469577016364898741462843535776620852511696829113525700741881006520837402316543496220471662715245587948089530337952665899803105165999314780853355468877541043798958476841206694888486131978284109040044398227275067695408536146570461119376195811586684034578189157332721772076802712999172063862761724020270951552189995861690226120702256362367404159858532326028725013697501349403255774588195603367209240332955233851433188868224166848334713229794011937645011232002163099954867418712808556161577149464108128540512345004296942049392780325962679953889501283433760272360337377523668588305465954471824477526583650449891141319921954283975834021530415557649385986871798401837596023584254995657209368096944059858584909360173272490694036569317651151300776642063628609643448703146338059990612465914029494427174391038247981431465014102752570547956863712621512109983477705136511074692713810769889857298537726658351406827143951419373247891580687600290244300037307400113194727985076873746034783271359950096649765287363652378100873445945020153776057626668368216271444501645100398392532900841110911028979349449409407640988658001938607488776988046792930274059876883666368954457410287195562816977179254914603334582809082535462040973842257604992435470681938183942690795474014852744161851176724580767625403039768041573790528604657803665853721866808496003835763319837628543876893279735140120575528072477040199673567563911121106534988628950999854020267625364603424797028722770683333234040948228175245355752528930477069418527294161784583662058712104062092163781050557271586726397469378839688830939107067520187737901728866148362452654384203449355181049445043722612702005999776943041338254549986377412708154608158228815396672495644764344235151031369582943976442060578448812213554107051389036919188394528658221718495547221088422922046534372426551538600875264992358529268220638230446811061132593479326225309406697184203233519400824206344319103813246062277226779879106381508779833190064672795320648384052615177774193811344081683334940964772808672478023694656018967731036999539968125983831592162636036920955071037560407872956272119401319541071500201282240315367188002206297317999873821266901950525902878098372976832332809375669893368065043032347147729097196983079157399113099620141145407108893592100440607974727364625708929297305274038847529439732911113526263236344143388058932362989080359765355595796867085335980727348200570146282597247665886011188533264786285935058925770309918714635054260792820867521858472646311587750609248746555200259026775616501164627454813952161400604600446885072517385800699545502368586651636381698820633502651909653115578126418154110794159937604747019116245765061824564117217267441527907368533409885303198685279341795513771483846955755481475045962320165346770734579188264384775168966185337224109315565293508934786679702531953754710148663612254144632801491205327011463451267307754127173380365501099757831882143537900646452910935892621852866942890304295854894599461556954087137662579244079513842364129767700982610528391350668033176835484001199950437814941662565388764599172371056994634032651848147527582536052023831748044301260210232524462758884319715778048807468574808525098824707909110662443535799229120704152609240318211954708953807704527091580714128056712849553302909770655581846503977814705002370060143359657175787626887848419671090561382795049915231287236453219686994311299359921636272507151866491015941769874028686377746864195321172226063836795670745076326100286882373398823130553348358537394523022329569931810676480943782953933654427145877407497087506393647108433827253531633612641833133651937885291408405670085359931246704691689370269253084674571228951115286330591377790194560457851589368053300056101674211640644517967222270596663152306332089763945660809504210415962992757162588399610490511574958812232797602504603434198209306322539914107995375436906045892580557087660909873291269798665876275776141375240994556460502621571288330603863232711952694521352294528791325393635090057022976049631729625320182617196164618641559962508592144326403315518296927102984793423816681602462916090555171345866786206309297918585852283546340917530631699802343373751300495238084358973722985761710590504265247266408670399504152385814372140598776709966113899747892552813443297713469090778127393708807536833472393085776835331571974807057909890019744777805723232611912297029483285235246900767345566620996299363230033128826899228520895230058298809793273394894190718669489141303971611771000262669520141306237223814423371207584961203639236540536342391379680434937168386505030156912632173627035320146343820488498946066454134411600526597964950078786345647691964783886304183707302363499403514786382032967699984148496976546118623462657402525161844620165098720623927989512595475069749968143250076240203979402160671087251664934093040434293772809355578005044472935114922752086474876867843829930319823661858006630617545904347752430308515344942606139240028092398268450605984981401849335411821650175841183503833384599154433756185004359999101130896843080392918607909935150975961384648452918063875514718978904269144195572371391062856230164729130999454451076306986674901183257514929066170997659529817417086955178730051134820043173601543022074322842611289280039716780262570964782166704698350359166101234063994261187913168504687729358478426464391127528488038438571347315568024142326506379454223083878073210525034239057232446414361321076476485784307437269416910626880134190815021510125127062920604289135079358897044876931765414398897764480847864469020005082088535750179303419961628144031675988942999931547883232719867426044049696874193116483117175514776812016588758214526310345723629171329507378597411988163747526396921224898459443580411026097111945510169132581933817387878384249183155443563096737824414765901513167478100884609143673823411519909913378963930172796047976255374133007766246172229723256597965987903537290558921325100742896614855813804650961114954714582259790693865567682588724015937039520557441182685757535473115713813970008210009778417965485036414216669310307997772779935533401491640626621183002276629207795824514200003483507259762302109202826753937699462278843780285841276838209506438048194933862980274024769904924342919903865296542143559892751916562699935763727031705643880350876519441695900374751528611046305195307092884187906246907747583971027075370976033448157858566838336915521576308251963088914348144170158104529939745942778044741596751531909528351052108072078831787978525760490591584145055675622999140337863570790410842509040513058077511118362613910617199862903279791963453704280745065329113327630135924188702784116353105257230348939402610335276219985662434279566983097839327109416645193694519337262025808506073905663590040416355498403257498280881324779242371749752310756667924786054433430063708254268296395739106902690178503248070622373073348277944103281605326167477289697536451031004004117792256393320991288215892648355624878267750153445356389510013122378758708135216811724809413175788475746246788240864625305063958552078685458482200312916635059414739437493079718985635718834149074925131046358587683776082134702963120905332463339288410583290866244240848507391718540124234898869795518194484378056303133640070228495191480912664482753482256167350919378992851510751473009872183295375370406546312114328249547501210568865451893107551298085305593456451168746875654009048560922145788324696481185118694698066860934613851877679378239271682589150637746354197277842850366723914162629872027395681854968180605471799225088474299288573949967488647530221411529829175253463454582669380017014630361556912401206471886140789604735375502671605381859745325858451134682016351478237493472896518038937741548321584241323670360911768240318772696333059070869217966744708989003762525889761004217612946537277581834321320367791951445611426002951117572527073813816948170526687346044805303462765034495322708084973237312090073304871301644976973455644196010721070062067947457793936697292176955031560995300780860156384765490556467809941005984775520494156159446964499744042889369473252293549822546657535485585233216689538247536425137715087270575918886378353025995327544748242888333219601624964585465177374469893034483960445974111236570346148662551251066551993593863420694943308455699976842310574816249107111578087124890568550639447609613864957440144895663619455388099402920195166716219885547487963822127062890616738992861389766190487425409329997731852371996711437842161112974667715371693856531743631772454279783481111109860640425828802566482361957475956780886970652736874833225009706746989540590819732539217029049397886481681538355932638536155556647166363672329929538242232263800278092105152148229834960356336900071848506447857322415074649216569629470839627806374644475110019829627750346906850319135307072476753055155982450743594175993431397618623332296100635794425523137829205226067357347995764972381088459389574402597103615263028587548634355397943003371285010741168144757329801993427501694342948917989211150912881004634874144206909250427083591519643504821505813246053681665989539582664543344977538805450125445795311062661370642053914325786679348131179482526502213265166239889166890526684480265908149873929517929011243740259652088818889939685040470316318746299772567953547415752976711192649293829520501545471874371676401829850603065002442510995785574032201729966146443820131886346659559010584677569453505982315317511326814625202607703155406419294881617484269895743754712229593647543960571828505623717374891876215613801645884768710334438192771034791694723718597465384330868349419364161758771130245705252257368059760967691297036062892876618060943532928677941372492739831128589622842304083691315608981981965258906232245400800563867014404204802091777282100452098342111331639015442887043494492446882592674589013599508291097981272601939906984482806481443884938292117768135190154315657824493150105310697695505149089862614501733056607516804163059581950965494506801946268739164133267323951279646567159557093348300476225180043255577152760967423642473579941620155406971936969536595547365059791486583515340397984225267471851576762518796269025132304206692697181899138655058617138476586331157356470392480580256130185986768227736464804272893102116010646470058319003652168157177424972216628294272899709660234832214360150588961485411576448771408552232313665439593129013207012123551330072589034776712578678195808855323104574721400238254966370171396783919978265724655194293757073150746759055745455689279303806346203347038782277078566774668579928983398228810961814297309474657167655933876208893361209764923866554600199483222645343364379882456482640372658599093466767976822665393092773113602643235812413753267557670704405862505551036833141961234851841754619503644918735627081705739119906482225448071964896655079927875462414088780473524848185886665019791814014470254027577417740160286038808570883997299469930217072291929804056521597840479338924524666377360772621943878473545450854953891508780723774682071002432494358485491039094900445380671225434163465984187868169233871590402034821822493665671867837432827419725370156404998606805274351997497834092749856577020879818336441308395845299584263600255190920562139118646890135794402135573551300929175614087213379209040714853566063378811551044222061391117606353050814688969542347957544585217390239864604586845776791988120746716444965514549183144190969827921063381642211850560646666341426117386758796382386449894937103875341620747748943188996397037726164801647018593839684429644988737846149585979132645415979234766405870633391291139793030479459773622157147851083128086402284830570013464118294679628167341251612892302143457056019318522249522548554604780607717946606792888297260986337380886813154841784496205242500813505415602497371098119653570330780300707872886948607167783338011246598434022616130707477514905827856135336164995312512711492837499902635445574143968421326486716778742461466763754765606240810372306254905080166286272343672797333884445404165440280586472964066480195226878330629497384765854157469129669345765731728384371860898368242871203380887296814436730047252393852848312746383824812939271541900018720358967433149101924674192057018116264362808596594194476979084687407590982950246819933460316985726025877944361498075350866880425597573466395841731434882112710682243384766864159405133673320525935754685597136762954531583916103099362348331424769438905020229125836794660472768001475708875159583904249458504867438633345529663539680943263305163609608051345777081211582594499065915616489551265503778000302217639659028489686819291325493673439240363259014717564669836352905507917839265690280869755048500701742259070708152854315692673164495764642941573896957445202625636234162913733271650357179083870303350713178907550479576502100205454045698377728552848909502396670121831194499973680622968834591492560178907073570198896231923197325719029437984323406213897519313553228968948269887193559099170658768784139999010297612642065473128475583671576013259783837635001106115772595912463481475952221652204756245192616801324838592611730999487348912314462821700616202052985556589605563537241406515189785287273518407923911572313758373044134639491139814554322569582738154380102757195796233295915512544170044095318862376063261142554369912149759800427003907772776576037815940990823365475860509596022451880869886905318636883513458473210968552154632987411481793339697595734252290767028754959460690245517661307665755118457901703159687686197496010102449234900919356319098192542812490386254884829014566091125460412531615914123785097933858219554470454853179776230697699050412995087223662771770840033129032233668709212158206548660406015267504024394105291514022305192749418552761237047773207089720763077918088414987000727271868624891587666712153876251886014578991238695221230031072681854285164603996842316138388568160423620977630785327111066862233275505269957872775424638916725009558004720187604154304499953209071646218158118979871972367606298023137277049116623753227342108279392088766858353506408949776224284049706731745824838511823935472999031407232091974657530363667796427093122802446338333073471395333788120392767239013726246766752632924283818500226454006054516159404538488504439819624969291293923125055206483427741812550725431488892739300818935299566929718865895738438778838790597138042346166361931318025084775225908004851942359892968103004779842037629597669886116374721995913384027200852153818885008087364480442952083760162319185657370625774229839880626286177205711079546323771075029032462966455419758519947740324414392736770962283041969772086181023314460465456703613344138995443758275463054027372178990286876923536246997163255304057644749526350157337427998341261396112875498559976679023774870327388246281562609430666804357769244584651021670995224123845391350677470602606635924718596425681525191738785480796059585787266311723551660686614342829643942767056610273854471213296495271004780537639361361434114621803444138885712112515026534314106771205451252254178597839010598689750617243175916989909740571729443681229826851177634351307504056270839885132909572286676665326469021167005880735943394487636491501043955373054672643047612329568254038261427075342012463286120007856321835834840596524093776685152977764278290029988223127810461492574409440440813934693574275045834901758878948098011366553868666788152077539210967559260602735866496501954072017428072785451590836514368488338143576753422074674289496092998797465704969759163027667127108845585189408278648513983049814057973512810540187789012428423217465885867303466188754023830218744167327799183169900027550578277122541864208757610597807349898287036343081016431833147386984911773069823545680886616426134255555596442676385687685634286880047141563919047002683966357102520071509683449180361758214565120317173355331109305881378993203145010352086358674028118434258689469757052631664785165959423813957606071210444626107244290879555433508277743657391874259100272727102183796391823923984155010404487598303999849836473174288229794794052313997952810026917208783384073550458434142844979749403251385876923647483848450001288114510391776313256936410009687755125991007682022791625678214095214485565960381183550581072065508952760875687172875180773572149222320971085418746673206694462023558739336562965393994488208383376527808077586093596681953765634378489778953154054338999459351149585205316281601960019128016082485447662239491435952899295218139983598460467888000965240954343621276492446081269216324957959118839794107430736933055121181381451810565774117393248203888455487360451964193147253875583127223472897593670422021239744223785874430100797397157299145826764492696584892856275244517998981984402699639076700501547119992093049658889185035548062784346992530037511376155973334626750814470450341912572186595594851833815540365205937301574895353691776439492674583724251993759324255060884703739766746157914365118908686910126944651753539835387281763098378628792890590756258476456388787705723137375721602906549173411482940197659600280242663834756156164367549577592680465779867028835494067913591683416075765119427874431863064157543483495965810772123391338439370907856386567622565890134768192166733902960057563605850980528730779293553610237479840463752310754360587696334071526908820442232396487198504849991708553179775748266894337821160973124235322790188524689118282083738408281673294472941454310935596718472835911683226650131857355855130164146847128894079103403551833883981215709736576757735484323278742916770557694474348787029780840646378604774101034917156445021022090106081703752202444154282187615269876112024293931019109472701795980971104783037298277286850648063385063557062751475086778825930763375039939813839759142184520845880338586720980475353738213092593696183336197474355866058568984310766135674757754117560843842419494005901633690291208206257667319571799971411828383606940224393404879276519978915834113580411849365837306001156472646481078756699075557568130744387571833292439225207050363980602288854315779959374464301645898723505870497446469413486437701531194302240055164395187034476874037319753162589781014426655916789985705985645691899972239420778894321176066040536012973657945012989704973657370205133976557045091679900952308907717311368287431325577729026918371392168170394971829598863118645903186483447110751240112156208121228984379364248325584776756959675267111243354524626240914961284908786132726205256147018474308980015482269846441912437124738422213832516302333387546615856255743337371295253748802735769606772240622615871743456430450938539314854881202013915527217463432107171981453833311268647728304922018570879911656542909788869435529827859379504330639687175390570615885675737339164730747309562405093969458293847760356224352773011473644321355796595299948686113982490701331554683286371297526788482687837217485942273994211091346220785394205846926332852367698617533497194637850562372920505794013504000162798589610426710200839014057551734133700232019543741770155553717271436460919403263807834778695857209352452509954090920325999008835494044467107537022383119009622515504444718166475815651724310110757052708564661479694139441523695594365791260287140563790999937100273204227363790271472424277842384785985230136932696231448697068554163614771652738791997642094479331060705377879903967088119552865542904074229774257377552716134373360565355192763406092429688994800907768098451659831739219066115990299493158700365104864658441611938390263052131483227443922881872831303204406469967996292123738373471397857979215156608631945829201318732358393402031485107778781584674481217433896251355201733255312911087989111345989216459124679471963100156664071694336071719676828379037329001331926674684423427237049603693680707979070793201143768864231925814411446077168580304857056408488369122596387732384754046209914235657635420639236872336932564287002315716357508292794913027021611961204451839909107031753207819311688527500852722520586562893869986573980750228736107136744736636157286199252744486493095687056794688275530503420702839563770640820482740689381983297440303608359198494875170913072248848297342731695802202917239113587530947996627408853898110556110794354259494468300241630431300596123254220803734416297482145652945855118985970267558944616919546116542136531109922450827261941224459177055282326199819928302690793764162000169183260995203098941229600192137905290068330159045295311957554097016081969586223965588045178167344800644704977442773377476865222446228160487406087599568671131677995800091765088477161819608212000691174961823922467280484009219338722399535310155967284603607997711184475141960189055335072673326868532324296489456127336862797688718533122004179712923669964684075956780238733663304593323465014007498461827192012359583350176714053882527133510283869089363866879449374998354718107739185077890392983407924459778258689426991723866806348005475314112586869237844010190316532764594694819638752001966373252145034374730548605699466886504246464367854445958417459806698208631482466620103626204786462342507174366861917719215292538139801363687218641517028724119992814361875985561678980390892086282879062513370651481860011442683747845322035210171319120460004632500253733405907371050103427520201565259618867618479538936498806503942749276344107292080338578306206763913523350512674026399638797421579457905131603573313682703672707861725825306432715504965993565704612817168780595448805466641179653815270554774082413970097733829313444739686382652761635901006635322683389315000282184051324198904304913536905603980758828230485067471093329859991894214554972318094578874477919094199797451142213044966558206217442859972244505691369235929195089657988634757880192114097924891602178316680490649450054357282547496247123318172324131601544534742230528771219774081332077349313550792405006245696348685179028755130183534742182192502313459018559983728225712462440050076371607433448394822254495486263304501266390131737179024888232884306227548161929814080243851467489793290463712918590746247941676601431720487591193551596472532566530582407342895176169878880566772773980412529740245804614054210515133202424938568848360336455736196531652705610991160156472659266406286725181317442489791228435636778043592546570399989497405274632688860598250125822607612193182805585715150347853382646052606028250652244611673478771138464109547450929090631463459630124167259431313455754740590912133746646271900572226929819249221912785308201918580377765999775323978176867848288694815830300893436711445551485485949524867523556373412359021315500906543362437397521123480884887282107490882752224325433882050284359357862491559768604652926939224221399900992050022089366467723804079720985799312292502559070179269179029462207061370274150276804967745889742733386260817752538471914883908321519563490110865618686838970214484171961882721555607584992643541659881569428241900224604670504938420925083692657035491822239434190023362958103593735092276370092670909468409760351410463283302116056498469481814248405470267885273391888584531602263519848474423119124124786469393927182813666395929427470165737884225763674258789577915101934748607339345739078459040507218646690784678134273295684151893984970680894706086835672680173642410621169810729302506138450312281156307070468689969204239784836359270968061248899618186769540491918079755621819981820605291009990052326257267128554006249050985608829440133250387631034325225395179386078758024277530205719906846365814171468972992848016643885537733276726756114405445740360753621610064303094893696416529539923756292512854369530312268254277166685607390297076057840127999344890018648863368008408341447958381291985680548348582217819205684190102607276820177675481090317914859561671871477225657177929019155010121954140864883359707478444248145232894878029632833404169999484391962450334304012423436325868538233097637313167911307082958395107967592128229156698797212800935004958703850110878699798002193836544221827204668908323833536138315516534045448997225168776043887922677952810035485421926781342108019322959124760094593095090310208671534539316498861964138596216129115871487724172160639562249745576598488343340882071132981542816725737613258423792143044055514373385121613247792071600744658815111796005902795184332881677604469289824727985163611459609203953388821137777395058475415295748691965797708928560101066222824146498590943751400262836582532764807325273291239134101975472060655886016652033252702217581933488441588001461628857517191814699088662712715678615324479308425539474103348990740940162595563100157025665340620252619987914609317236426931946409882626726409471294404739266837411216893103668913395331854075095648174798958798224026036180540518797255754089267367273037771115619572163357294794788134068073164114666448174887592201114398248694448796500666921634211320203526807002537805513068603059305973900203609635091266370110858017412730568029881513445254897169983482702252712462968010772032224945858705163009544132955011360860774879473436427324720385752646409398599611516349068119196625881814690901975794672961051275017736978337229865903173091980955326659395968182036905352647550912707019935618989999495208323490305135161768345376512226022561138822783064946951255959612490923370957679966467927921501823017066857928762111827473663779926995714753408450648008301155945801208386432138573759559523602976178825632343527883382295089109407916845309272430426686659779631009769942858877689234033966210949254835116509212295351767433315837504372959635587354004139329907067129047247812962276527969782326773064803133479259081991320866547648716751849723225022113295639810994638804718312693491346162762764327017034081602702601778038150520180016736946634821938881882075577821622782047142004880890178877445943871635805410332868132955672127213728214862252610235199652189809803302059943687488467798497021139195926101842807566891139107653459697435378790889628601413803248502169881050264965835660943829137809313007966792048596696876167138486407449425412341631594172115082712685520776071015288593343897406353019555672361054078170371263670113109010234836025344042402680923317950150051253514864746910376443102730567726131034448877285949146267401093111916191222548035899578404153004590663062341949473355236986672004164940978760164354511772003328904916933403185819780718487948791535791815386738427274435322860235285098831773732737897706513636305835120855473354542035420230375992204079700770986516943612552853799118986053289678676300543914323740398775296014737965162807422826017554144048168370223426296497725379456170137518034599315883259715019843236309129697320582789658760602247117953268328345372345380937300195505406499031693760834737470148397532832249046677149731315876370006585113156080428295532749593635740023811272101494534588403272327803020794138229064068256730252387866779817961804686420285858841198934502917229878075557151618382792572455708357145369632075692374727883692482563382740652719013947262825522006220380854064831421523006136845924168377068394743677118455409719249332931186939090171248283104879977397675795277145633346778120933704824984756928632718609957357384439787386516823735510079406578469862125050180431968912744848820407430295308047162233202397545793719176967454985389293021089486800942470804311477930095051205611710027404315464063279760556023832497308901190614029153219296171266412579654493807047520221324006702867110730354193251666468968950985288177970259973917692462411498685012851550814716854889303070354090085915442294152508317955302319255496155401470404243035718482664281459899982945049252185446001733709429756969153029900034878424408394010310421660891851304074412052109919249230298576122725087493604991503687002750067798506418299448174528854894757107666654994628394599908679035273627915942831555221333040488006559288863235069363620639853475053022042999072187641520044687093990086193682745192928586696257558844494371202366059460239520244922009206964504214864137484714779341599471878959490691022905634264601042473555150585460016658397852047224379541046215800515220940712938815156628295633236711571489357225178316990080627678667093107453067181127629044958628849028868248565241164820411736529284762600315564309448110151129112695209267048977528222190011364831974445194075571344319703457584964306726027161456494470118975948165688885025869600952732111109264125754407550697282077636062755424437302863463518791040160412079430421871258039998259082125662581508840362258079728085236552081007602093877446006096292447313186953713471980530313019073284557326674872665783213745018508330695447510684296603028132959236958241362501190090329240089784084701629429000875508863189001071731685168217806228689024569091276383769564955455112885022706256673526355952576005724748012529143324423682217309962510998746904104892104177878599659556173004686273754590707510476934413403214636965197039955852272970043688088678924098525758011218312528155144786890804666390665515493336790221313312145484815304465696739200563850767067680321748245363750840318461544466921301644689706575997875915331986005181611193239418087960242338328797118992870400023605644471518557112951007264603295012878980375909459234356372843843896188257247503830612236595487886830745571714347782123513710831965183639966081986112952573348074209826020908584540577964050416511796008595125210025870078057402239628005699302756768190909004024714084832377459401744598072698960290759502947581918010808750287214211669395804003030314814861929671579567520496373199732757429516661336757509888900894358941982712280553896076902317430750847462570903440559233655694628778242109655784456117523610149421234924426558636151164795506882658395835031626673672147172333736032640576078175420431677379710173458135864144999212867467663143132999080545896387722024338252550454784402410644652554065851917745757502012037315813403891180901922787941468778925019652340625455688920518986502965926792950706375662322597191478095071765218808192663926971293979966283965489468353989835027200608110186042721182233209123569635890738428551278487224619780742580530247004369053775110688480960869934491257811790770151589605434299758259859575150642561673400671237694485854350146712394023009772865582148568553788273463228050038276395805066613543346356699745409461192467351728043996208204830680766657676584896728881567605920063510897398187545159252736386603598113511018678965032281662042884370264488495668898632093277707794768955930844919669131270451747796923060054749715567110407701372889695843738060259990329171032868015064826664291818807892599559245636037095030855651723555903074681009834809474881013064568531355949608595447197731538208846447230732879231077091799273648322517428610343024187605895083900941203697569297897769922543590381331661433431095116607763193976821277292455852445581943389860158923730133316629609298634069233369859937431613504233017302218176643553490523203153423053752523884007906305660289846519048873001272139667649625335103189771252059682768936738479355893877675410377461294084967240425379494231167249367589737369454775186434609794508460476177794978911145155738900488072196312901900031338742869526355708541772709583830997058165063107709061117474766010385520385225945683987668059506489439196729519999180404310315417152248677067231454019562176751518814465410265810050647972937085908798919435292010837456141026976442937886162460421153230576425490749916936686697754192893050255818746472792975838913291829917069612571575674743492689550030180617819201610369471624155763332857081640343332139069770246001721454311659196025570003093143782357902694737238593568547040899843512537086765497296718690955946105644525819511424755920848465495014631437612733061108182549765754470566765589820522580943663999509501248740260304534042889796967630125168051512313851608159375617990923234665710939884961203461026696474800090927578291584994351802892530756615392737720085996876336821637365775479546484645632698199888643080085400903196509135727692425656687756481935985139078710274778704690397202699174541413301751161119086729255576692488703074900962222076660837024550921124609154036161319585687915508404405976766538311937462764084106579289639433896967300216195068356826112300387570416588540023402772257098115966199617834091498635103828573983476638741027419896482902531146250111072491195290644147640066282769126780860606711922113086524777655411220733096318333099200202417720267448178994670758545256753315064696782659294784516755166315699930234057989698809405133046757713799299575287360313470864483292083589643267600579999553096551054937485395001661717398571561070025551909782302307303532994235715767018238016680883201366323894319311076678798903154816211833278406101842060869617301131687334770043755313268630665296352851703257220719065220686589106063202805311034822040127102918992331646340018012866499872896771022339272314537668939143082030632671220711193176750892165483459338449169030535528632685931604357369782270410446490735445751136229261073771765642243339597219638623939972287875355961819626738659562172852029447429936266912699639408738788874713346060945733501104580521791051131767783881721390975024961624730392145808479298902567317169468986673254288871772828580068135782908050261153255479779725434711414277148473538463830682407095754698511342008761456543966411435622764512822520955480252007193759072190348151828244433952920948807843984996786805085522367491360874095361885326455099208262341704013089824225305052315305019900639917607877394459954072857921175480145219363623230137148201519026224665108039804173618417677794371303537437443382787586855878909266606560278382350678112348333842812115105245814997301475024240055909259436108843514239210841162658962754627223792032890297089105561617551709921962527729320095889033315075334940481967422386684787505325956101598961976357307588943916786666766374231167331123376198404462094174252842119538233519392905792770140560015080717922755054585372179746322740162643803325152146835004532626733191115835767856085358253351730730134760663900498668616242479242930243471198258688835030759715325310360988779168040487328585451709555933476630527958477189661004566467062126574996540019974432810168610201747001007964198344208378679343160696220344678059018695202197479230910678532674373831757562705851275794295637048419798921049095313323295316975059693490793246033365867157758469146174150462958591272481370456989821578767177157689075004726924896899079397848784738464610792005887779482362122326852062067449497590391744901238855511514337069203508734361459600384136372308289180361560757793710554824320780032856372834676245948503606194390940270066097757247805242462663074273180948058228483684792272597997035579905569224685748134191286981563756376292625596172044683064986823996157754088661917958945502405769000818104232504557331228236715513667261494734219983815017775561433083046351256639179166102363085507320847353264041279340671224896437472696483878242110424701047313922233151615628192711661995271010526133941812975082725563328165121315376711486602718311479491445272498155365922592873947217577234279080625958071465388915333353884767395226705137554022391424267776630635259641011915217417358499063842292923567838781497739394075279878270498350626591236999252073210134690673392418494079916298408755787054122589614076748079323992560201341060179100303239650304967510854028901983826690540333631732122259651799678811722989754008513894067622741838913152299526583688074940914439512224159379825486073778380264326846631880753514217346134180464361583153622570933471027576881391396537649163970943106869777021566364908050294667358326493632427117510700834018162291408705212910107791130943220858936104792330507446971955398446604063344945676068600111597742387119776790539073793412534473234088743664753862861985908263829912264073849640509343909713730398843163302717885305155238306271373261412473758952289538109072297473106677739106238159170479837965678075078457872828208341802976858905671260202491564991055759464838702649227323142684270754982556832441619134667582405699360230640151110813221315633952216152754193301716271185460804342843432181099443123247721766324867739393831641028946820723913180906154217029020174461720053415793013188202132186138406219235620135761947144279252042117191020473717134174272279062615081431212000792850833253810818117229439266096410806509294653134738326340244854810655202495707121215415013788381818463641233076489904518989522614598179194830308217173495615673630595157641076147430162419402338999095481528496511963229524981020180907795808695595216304800076140638669076123668336668071124169056563175638547331087707100759996106193639473862822052129314168688022611345719908794172769748012247092071702363859311194689961605965607421968548942232691873689382841926253802640356964568775738900828835151069005121527261662006287006976063597445508637872951612658892318827524841513517238719873391264561600484677613391670006621306691544457990765140630947986480317553488381965179923115416078618787450067069135004860436739547083615798801087908918937379396378818773163002532150181211628479111404055241040025362651004582891023683312884518749102238641256842063727049891429625968265337180177164350883917384425459957755163769133572739692358614047273401301911706685588955108958721299225950639508642497990409865478170742396078553953884600504332317020171910027117177143353678108120138217135906145124843863103121703530470319249851231531546358468081733043633059356646450894075010529683565820326445132725099642583488504296063675834924536900852229754209120188003623461891158359746467614329433732307738542955260106132332786504210843578609088477282433355444870641488858449676047992930032895255438109876896622021341414796096909625235853181433282805278320465405127191563087796027138931853471411129686450210008243018698821123262178035781339736186106687559425495622605949562311376693598408333008547327105548327189781843451502741536769933882447742181451303125837389698158101790324278877491634051261420866445789137770542136233109055163727579413092751217171654624285857806519292953824108663689756454401048667240306632219829759652548839372668182096020845143142867805658815464883836060286040114078332840279706065173116409430468215879838737621014407312857699880362434322525277145160070981668662513750441989618247237396848965377758074222330622053741741220331166120453348747880880119684422141241232834002319377706731807467149209366030588520415717878727581469341964115564607307444917332649070625498639249735788056805057455040413373660201488289280274388683610333302371371730959163299945489699280030986799814074985945252189492806480883946116117078456509218475622643218394545721367407176095986306864653878340134774447958515128303100455001864867634412936113344373294762913662107878723087434230887245087946786695424355954737901417087611995915212846759604503491008856351701782287614350151089373852717807020887496211574038165568171661796106000965482366120055811922815887271517524338881340744890065445186525305596599572605504925550030163212595056886274281574401836292966683481188079440486394327833598458888829567329899173488019984734515089481851562769033358412996525058256670038418844839491187308842125205752776889376834098749189024324514158259381820840814851503250219996840135068897627316482668375054162987143974430685643610831544417806176626018088534127390259170015395295990832140872033065341817787245186770773873153961523282313961412648658577551966895611705178458255973172198160963692593447706180021370846600284471486376329614966964752468762423343075039381205235988027507752930111105473541842293827755003733095771925012452632209622009867504424566104000912242871820621281302087449357970481627766520671004602614631429439346958779224438508630578690637642472021418200566431213849155537291475890213803924874271980251693170645538208809379005653471715128044398881996208936419415660379095851734168017218399794948811759989143525673346841406470609273987443405166934496816481135494130572308070011306490444973745732485239527144463506337034636647962378363115071183318320918409580395967537051351349808867588620883659209558159768964848931632166224748349499858590372167799432937328820179209543689776530058176405502988502128467969292438818453542360081356338808661556497358819876136115006087855374241857355592344496335558817628432290585158073512738573834448239549922286352528293294571115074735402039807886571036177985913825136902243022531413293949798008656184494028826888224451543098537262313866710090082049871178879546403783520636330316889497346795880116599819233018528298253582285388062347676736108845307292002439597537698405057911615877636078257121556810720638448249978462813635747864384087840869674008558091373022356878033718397026814814399911239022265667527071439902042255564809588843198542084147335378248618305939961041742130287410223166645469046228315293873796416282633225999658885918822015551898614547246028374438930613532905570906140780762189662739614202878730925956110662628598333215225797745496157077781629131324690746940925114551999958131628352017548314786318626420379109841689604028022524092360225195069535987483987203917756150076141261152025599464473575284457327298307150266165304626717110671770891061162841074543606248378848374715239985290318661459480843631724462710956516187087962450677989821118701635644125133280018652681679881211042125091199960853968617477402651092820473688713600107759269953747593664523723406418318952670975772462242630090918920147319171355907962878737349449770485753443467690205202635637085150508718332821400582913570267849577150216227106292110490630997517474760997110966582656757062429617400407892180052368556009397003711866723574804715046098511643813785836925807792629055809658016659463515899428140053643503946327624665076066545213933644422091670789244011747258353981895245414050593925491539499087305920588208267954593013364574005232546458234733884743476529277404036714918313479705723967860002232627758741385274675572450349381398189989107964615489482667754659683397240709072016892154078072819021780560012666037112838249930741683911480038422828753262211907663022181065509868141178293458304340848204618626224005883587899249147561938270796115549318298995653922707648072039922618182398660880712174285068962739947371865644630144893937331975279358042160291451463804409189464732111728195281569144604844690450610425799391327915933404515588696929832358218573472664846365190645394152947827365902497069774082426003096171764778811611040066412831908266178563060654518492731984942111151009564921265413443851428916622092739029919631643850245697136469766839694017651224721534215444379728752702184311163942196990128438433878269809743305422227300529932395122715914177119460161782915749811560878672386804710265837059245291772446608554119060882570981848894723241116182102036132114458162574713354927984391030270576074154823106497078027284183225539476806934827593118463498259749172513552685457415243322809126255802407974205384060258597840367630945123775928800351016179609944356651838480826627844686521882381832722557049341721905981066777916587670780960845962291349618545376213667291781497570474273227116684802652919007905206210417145877012853890231221438392505885449892953179471842005188953452366195866248052466929673220153929930314506188922154771828316086662048973094744420651025910071559890962091534430333820162505150007642545024516070547882092936622936568759971681753004648446043285703904482385087390375256509377105588958320938154645492673187731433096360117722948011509260727405576790171396383418748853997269141631912837465029889240773658029549453998263312640766138832368460264994416417017768580147084409565331747323217607443378886494646514987063383851760020229368486970438058599556218415761914059731757930570509363871957354072287254529355356072951213506432484145208235748899555504268665999267019646083873430520062179385827757092976832232671884204697800667640170385610022254823068653225952136117182253034677258396887645023617062256245619454651047661359975912087783504961239122392628362536317556869409058944139394546031359782508125872993565087773181026748985136629737306929068244632547473918048915005201536335017770978024818172077229973282733190853478665373405883931317566324735632757942551124335103805990925893852480129187300580428106162922653172678411636984938702218917506314204285932087817972389381261340619296222986894201108244362090127971246500506762453080530349170603459817119766573534582868318263459440695291899745489355598147512288383351660599871876230363353079862051718613369541318803114680969669969338732227033505667639491130431264771359252991717679875793771267878150581786014277352787758967235695799503720721504111174209048112352816489880200394105223994019644602710816604757078234814901271585079680217007438369767904002218658977498852749161120372408543221509171528413811275384735585130581080460528946093898186270114347911705944964562048832754305182137538855663663537324630999535080027828337727770432550855611700765729416950518535760542495343969696933618345029432513587256478920359780523685299413960250396790689675989558775489331497396468271380519693844589251835977922434480670567922333029934707481111890179599531079237727557155416683112453922805028883442759874421837320904120131779160293008834031612810804609379339916156978034853806883738466633547144323369533691761906364770683903552213327528525009008356012566435998481468091644870927274866105434244261863921380089597736399325046753126245386505805180877171246666425119604118394370874097466467734167144878816962925872574145053564579871401940286419008162510610553644420114151231723352538188771325222080217835509573109943676089420800396574551573075784747258661351777033907459144823824553972566033528800958351728943193337037366633177681012698691372262874530454599011108227397822153954234773691521018795433398787941590586070465422791689474913168929279072357223969197195831274028124511337805512744089467829436648779135609356530043450491796953561521192543341059422300793485604866820899761750702173692970660551125760412328158836760014686832502274381869719892048140743256676375784027731512574280760583932171142147747314346440303688799413721065631232459432693427469981017372728843955306791252760495495902551904601586578675757049413543140810941244579227930798883790215925452114043610707154665789312528127252641921818440321718786139898758646489696209867673898219521993462205283398076723672320289504332172448512596501220733259265544244280570650226115765067605332447033572923587992715594695955535456119340872283155265903549130558549829489026849712176021470058384946578176997007258095143397323731731123732742493576601619993170177598563753623157920828286962980282390034132990041121851856766035330130801786706061986493596939144490830643736454566790032782912013315550193995345356356694515162840542229904997644657743395712056114625966657223057249720898098908664986078171939976028026603154013907436033221444348181994786596376972589172824006989095457888458861370184035923342301889211353550272030736372356380441819805385504144538800587671466555750809239961376449292608531755138302424033732457206728475725267672958492850814294723410074902956805445631840454714692080798653077671511098551783636675257871117409461280628357248779412473643122602936318765029123392193747775775575083473966394471539275003879351558935295564664516609746552425551537441210667811984159905416463901690872305923811934303706303305506776249763482933345203681914112288479367928187429389321305664406412191933255395502319215661495187674503187585648463912467625440497605297819753818908598385402119389073842787622649298284302585169038610625002254300487211419262495496299452788272589182206199535683436319778776373278972257671510817807724066067604121772578526395053153404601802713023317702832707464034238695855155931891940926253039430722732782028942660393260426620713620452877789539972615941109895005921465011148697727275147723235328089985723571279665662236566507741758672581375257963897500684714126548419579927679520766360925111215183101165577664916379657907531536570713623861789990463324063612019066402022287095894703313999024501179767141964720086653329419111312209550672991135219234952571083079267363662127848986550950393907153248642683105076998782474714376059592796684177967883553280144091202374448901334763172843363468597918208718954001318986884208368654301752325661080631459056611648708335248618895780665584423602780706507749859925114575165226895795397722330582495143581827256531941395553599971751063882734111751763868413018936969759602796753069685833350797249824427364232772447946019353973724265359923295994162175872645868383865591320830717056935394970389463674386046078518718311813586379155700481558550835992619639765572259810345006382654933253720419315155735136367375227185220009567385490781574186562742992139026251373642571030569364950933778233800471975768443041926543600590683842887694610217552805571673722226158406589221204892947271348064472755553707886897252408791972607167030027506706394969199878007311948064353209017630816678039261548482147024407183452130681986231294422807753820581830577714081817253450024199099476515347514648014289176150572405615569777675404003160485004800757135128216080193454481422761775676793773943490735249445357472826217289937093786322600279263360276112848051674642264866480566553431731932748031409990820776519965746543478082572777124542451337153236926292948883937645368427996202589308942271310894491346634415801336994077881791312191143491457638707153103896960943189165155327024590196444381375444336809704723038985582453241700669420927263094489423671632296072642261332817569191634405075460679563213940732317100940993690653843818081640875994464470989140984650851621575256882601364956152144312302609394317848343713848100438776151391041741254931391608907567875550224612754080066490822641975947259001166691278876106674378816065342965377463609977168330100181736395106210878426021159335742458751911613391141705951925978995949653404270532124444560501564857462828237652619756022525005336170384013311570579679983999072245359012644795561199245692139252472589045427191851665784603529215357537469367112094639502030209275087980866734800238513095414793396965259306944321185365837923872106226183168496258275493744713332697840481488711476046883717626230450056307037446107325722429467305751278821719219502352881989105807278334604357412484497168438797989517723132614786853802189920326798026194196755483970549529006396838368776212313567016622992684183573118358818894336394287154954506544742694732068680199752769326567066323164491633690869677629603878485954127970457966247915163810101053541232321506383094848990213631435712735110856679101714691954096254745001443849431895542316698835642705041877711263062794544718103990194635607481159000079382664903067513419010646835277662181135262322360330031651832363977072209004229662465790585119919683513626046628675140271188877273630101415684670403056735290826315674264043488579321945005430934028853304834064102462236303577820167981277860384893048439659200919637676153844056489918912270391641560699683000563376143117726384013003541392752283357768470400638109418755476135053834183095308179093392664132375571712731656020499160989082994088145691774304017632187233216459647944282874503183099951336261273273868236372734566760310101215539952401185222575216301320477997860282361730202257292154842710245733895070906512398109480263903274788085330310251075152732083039741563755785582289320216303206626663047411405802068199856889801924793370288519037083486909336801949878470224010192727043030130534635078413771948022592832452006820427523658362290591186311178673253181138085674728844148019462096941146234586189793319878047656037641233959675421138685169401870068958893248972471326097426991323998800207130303004522025080325928298139593032616418403667167209164460716017171130462066480432268184753818022389379539270022259673279270261048772170903355789555348449448001979314566834188787917063918992811243760464804823785536230775229817516072727083826228087019502977301528638154538293086996187331698859856003296793017124083337871395787480071169150310326887887195487436027090787581315755316186222676075421257465633937421205162144619567839469669110503452239746690069848812161839914082390257223903906763536875133100283744944070455128596058530224561649054207322803175888988692709046684574844163477790005438115338291410121239810401135488606883035230347067275617034930440741009743021678435297364658317141592745747887885662623584423708157272589649627047657085513779537120861872526573804626120770717802094596849655908557089941981497606992281263921193738423072291020565612462521391977933106102036277220685770956864818897947805195719602638461683283513003595488334481193842009504523356406233033969207691375982785706301423442707318976993310312490709533316310486318640864312257637933906705477218251295026491471965506977990069102899346099958272386727415383736170176655383575075671464146638051314171044648468253941169924565402661087534631292761380423091122795938566972515750402029738265042251286249957275673769012971365314064667762005958575295284622984905426646229357422049515214461422054392848846746251570728969442871579670473506941846486684590617959216377338414393870046297745486504964838423663661879860874586858196058147613583386288831676663348281051597891537842600035699739228958037394997194474573148195298976632343070832168435924330560170113822993878232931650744327207435580481223213041449903911796444726219908335129885735559460405222369532773960009429945853439820396931582597809952237421649556440308583948110681674486057314158935086688129085749100790609096326831518708036067134374096626667167218202747749016050988025856908881007452697872671823159113651176464263645244975438184932920491324362847754671446635400181442240300045947386698057546138870226513628405338585724084536913492493021434051115401816176995866204275989152241930897021307401068786179011392539105230578781369444853002705224746479029651331074939235625373488690613111096474962315744406611577806490808686854649969528963717478812765642883945313423309108563615810328148247265676964104041334195268492444223971944061187576598938314569686743128776951901423061664234556183525926999306035829526836812064592307708333724891281971023337388448044993879285232209712642687858923749629878222657879307048433475651485887247729502781819940508622318348432351261817465964920538805104997953668155216838843204185935168676431688627593871505526787455784598964753277549009187208607631202346788214918154588691191932357016860317602884884171195865342879662159096316906840435011216295353018145648947110536932260387455287206647555226778577272191319533010550515552059015877657046831113973317623083767919078019616461821627223868062266601910694303869454253132799550817467404614947473374884173754087801221194063310653797735908465039550278975702882101313140347824232004249821178608518527670070968765911201947698737559358788543973245110428267072469975226627830652643579687641071045310621430928003598640192810769970007735576413726983451889559234690388636854045023408445247012041089998385359511031518745562475686005797841475654508993323471823677435620757400245057350639024723576449065774440143507276842045063011815111987735095316599118388275821243609665393853636726583669937828730921368386857851324372644961434254209720510413219797590631931796527051278556268141855734827489163368186782394649653829107640137384901180918835900664084716629255035599776515868216034192914467629802867937986027041779473166597148731338256331950320312333190983368948709466985532012662262710778181380064493441365577592464728338851900676364707843668681131053480371053584857847423588041455911945546597213003919889366570540641341288500733069594926515351042476352475734860249453268647239944811651104742472961704012476210515366650454925645585644465888731546840204236843093536402614607581140943087686724122219321336305222994421579872511073060430466448682635962338425821420205405628069694075071374214235316546482350172229847476650496098715725966427443411052055782207494823148487577336908363537523390712308863196114367508748007891471799569934777071212980553849703364972269908005568169514427443823836666111928388241192989647061772144722504305612479202024328555586198968668515005638210997952799426341757073759648463170488530117598096542413331119476250709847472943516768192782551806361870715294673956071075986412374069969508916775107374445980248572022192893015774624630288316271195292641832381949216540126087277853676908397307337456851961945533820638472880408280844002574850732539447404915586913853207977803970758935367986105155775966508615356117987767381490465632725750485184171205089158752232164483796017669423414152728861428713415924776709380930004193692333601300934900758848467701809657110277744021540279327988576188414619575671730417973663515345053036668677951111404911601633774859847345528631347736037382564495121682783518236863781743873690273272212142975137284082456083435509252022507326638944232582579419145960643117386988955032894509026359185019444192243575098822581015503960538177847692211070490108518789408057619618905973421179218615998656855603537363669699049109678365202815334491622163961775588866095767734180038561335305212342226137275921692366271328670664249561164820456104210619044445518686306280113626281448262097648184565942547864167373531914070319232334964213139867674958712190740455508035497233673499834089481946134038364832756296323924756672995173067847779346942996471277570398633326602296380965435193077981766448812830320082679026916260786867615310614591935118637005888205013777776866604060282446136792397150307609224682484856458296814172192505375170429795665509638431543445206872372833739273913172833998864588170551595685566435429306043375378161233895430745024194241834206730293157753164399042028184690223956358343745414548210620271673476829106314856622938039270858818385350359819189574565183922915954216783637077538655797236343096431764441305308302957644210185079063720076345250434521202166308497740552245481312554302795664384319737577055566990628555422441292019352584449557208729609907867868420229652866009538824424094475359290968151718009523069575189357034545297049196459817672214468260239040282874122758544794435270711292332978609180613107787926034754445229877452107022909282822878197641622376595226528410329605815896518727519125956990717044185905831851799365108955223574809666719235944729269402686495906592308329589429787790256965126145493758213549646679903925532387311306076009259428787778832233421590553603048414567750977193792632170200420914929465696181244200460684246977691658020360583393494617005275760816378110055481612544330706176760431596056718747532361683814899231015637349776600104885780262395957883108293005589143345262240178182181354224852988752348439944525971457323585631735426305095668378793593350184283372362440216912238992193568106973703164335473315981600773310126451391336672857956209117822718840986646988019161659760243880152469127793637325852717142175541570787333326016815314313207891521275644864794572481859381571825061939936350147197224541115892135594902046989433170502039452070779583729929498844958002033594708574969250103248406917312050585305667699725497840863975083389804352372982781882000306881720778216656684596973337142033497937427320799714672267286563115448780175287907044061503324481763288232006203062228371271192431149904312834387120632122280237636824635323582488046880378492810606777961361768612663248634358245510195136637499598423446102178725509184316716454073314318141283804165687532254536129406308506053213029405182277384336187744377589189357897730928374867021805273144131165541637798637043948080794157994091924440911548454659503512056322690218177854224125577988483075536032225466504086335038743507687567810800644441341529166670899308886807069466999245777334027415394342736405506111518233647729418213948746489872920273033346247341119664297203928593732983179825870874848789349977031548302619994123122068023037685781662713489565226515347684396274049832301549506388912433350733853775470631085333321062365580463026380957065311344645528740404021078242606833536737595716467739207437007364725264598942242332444286221884297474258862642789322507775113656203644951994673905670133071541973980099694988764037184997883506962848830910040435113508294162952115755278336394332497829373161057986994471506283464143882142657160843211494720310358161012856660657421811693326717494762859825213020706633669501578865566869148258502268196792243996221559278436835475036698049223043611106788950014166676113577858902666542757041758564906058396406009606018702659881212352442331514925027527348521410175162780187934679674119445384689543424547522975812775040058689471783116569109756242485011145272087676005262172760287276727303076153476631273390750370042155945845736205026992427545061445804845201943671490449929886019767501436022942312342006365466358939949560704448337675409101078131904205801319862138586024538622954571202332307488775146112294321360482838289703903643920231750031752188350846813086167068162750841187729391672081975841562806615218377731930287299548410064669023536139124147398871525641958634204957360907125774100645309438609315354163696553738893686378144608182785543426700840269593162966868137677517249978178278660654546210037506090315772725079086629150187538875996895636464529602862578666473737056426350138621031091706630511722184430858059941370643671076859818548520691037715586074075450452738259993288264820526856025440685638482899812224382434863035898988381184503709866310885539982890155049717848621333969588388854242020815015215271861711999787852811997102341101902404131460944341278248892286482063701958342092310568518496348701119349052259041018407654629958476565031161357152908112358289569032316554253848681543209487750210477473864181055037367367006399969079792802613571398834024494348423787691034793738461685218659947891074146839783827699982488494144151657479065344295549123196600118648122570058430910950997419431007055391178799948430457886325279217674199103360335118450717698851495203109761519975597980336400914491105481714844088754363130718186915120987937571452107829231658516777759945166890461493164629290596602542109105183955300197285150560650345333125710562773733393415438879166497861370704146647329768237184828461332743770226500318926450671567959714663761495456807180951277073937457250344939907286058712853680166352683419394978010478884002388696014214828740616364080588115860055744537292689184664999345365449788563499495291841976571790919797086220448405157459465422007775928607526083006986642557243285014224222991311939160301429141225917335499520348728432788688782287763937672238073309279476292072046538575866287153728345921476522952510588029606544183706141133629263100786045632136925504618621601167037648225682582482779229174570892782741933140025422544867849443275515705095870310297576894529854743510325049925598859759344294363492111351599830499262858222029642317052219602246519592002445103376339434406106429129098011731300424369252168023756553479152892662283454082841571092297708331663391351473935360274943776101349040813203564046182503955556725346102168309244477251353951410553588206611215247014771096828972226237344519840792908929987591133013862753390164715222617036621691972751668926720765577146939890464017281367108831756460900210410282134749466213476079575338698319490501834596428849002410673727947349071869009405999434125343010489985972512374454847863910319783524188204947413182948760140699606778224510576698226035900035057740518934583376506191952585400941258854406309499886950088375681753789160021852848100920129150921375202908260878081510645040976485858893608136974129054587117937479826690239191420001271921899065557220853865271033977636774888523586955295940366241697226588730639041400675785868805101773590612236913355393736472139876992212587788931852411533132026844461139929759719885393714976450473501884664921411690636645529367765284043377861156138275974616742181700750549151826225114732590529574345659371802766789161145791733764252460107770412278947171399677680208574467700146844442038573864120603061757437196101696309256051332526249554832989498977948838366931599912758735242054871515400294528325146466515574382840447696986378535179456257452609816638642928016654060513439274049510250549637605724782623215588993018597104793971683021688453639284123433528549096500092583024270993304072478662985787465265021420783129344204982019449327030169892279159270863477836256868437045973092519812954797013557390986308941258679260453450455783249568937008886641022869061127383080105658877800322021382737175170382644555662027668671945948802590031886582977315101215831701542209173667620233270244749251932479054680792757366197055366688201194443714746966118255117021319584290265547521582430292329766182086475157179404785384738715620855559425484331881124861694442767244601797419147320252238599517819674514028840058080975798665946761442156757596075530938279433477528257294363274432588801076564599057860165089162740610643367548003188916629478144787621905719635726778657652897983157466457052371503548481498491786849978967961613929196939215447484635681226963719810102255610792505234815330787521647453064343368245870982258310398779411788449762660910080649735103161598774980117304015963713298178401849256396028669554634813312527383204506235715453531006570819886465796808781032394028389476663995687230740115293013159088387913506684255581870762591063434456747176486603249101397249998505674725901724485126189069950790472906751882994571154839411452010593869109837208463923004173424968397722778528028376736284419877826153697179429419397024085776172975606069013415434432911104933115229157341918608736742897942613196769330099080369521162021895690488211748769975051043432540947034783902688112805049855446282765912877143915734753109681122526531459813405556461141795519558176970847484301107414691385306661978626499728039585636871008043881559352128018541827275168460695000821206280106943079466607293888688260673964296515939087856238992941289218168554303647321162754824165408969007259775011331091596264353092904434198077715519183080561579697082926307508440353819215333812297238586916133107482622921537944990474017045361082465083236074194851381407059368321403576253344537287925566872889790465636709476107003292226364133566149792934325861159609401877839776384704194650951184057234051540513779466171308202511507074507428756268076870225440614022686605573711283261763077404187895433912982224482706818647910160674621802994211737813792823463606761255976536704528879365161249331140271899302446596686834607724716752213111382486792420055639414590688707414772470526770215856979971885858199669579443053103571201993225142693469394379961267059005213572483956865100186126525907003352228333158511715531545247162314119203999645585370628027583855489496878605400895426682934447671150985814501104345515064728501730586591607093200740532895113021409061482042497541972324809831860738984893038458016505723304743261668719942050100516878148580444888019533578689454452593513768213395448353756244275735104180533001081338344011114107786833144363968812656001026494282312558696791032352340805595663532016012753322945337055417753446306652754884726736405005354068235952312683454875784756139870530998638846980439551983289338072628316145398462494175948789499701239968989099155315800653362398196805941460519790235843868126287486398778973090102993051973452673727844204053283500190264962672086492066766277252667304811196416998235104461308650538386852789217336546704850218647647766587232786130352601146646489349263407227531785517651468051319572644007500863224467688493528874827989875009517038584184289646912513798028743606079210862439092350553578192281228242854342055074080067804370840791421729390259316940465827065799463220956360237129375861321639284768641736824011293901161732944577237546127529264476213376907007319202784630209114085515875884283048549815079451571923299952845859486276538829432931532195482983748228445532146820491733884729655551446048151447390248721560087771441766156396276646150813549089345623943749042926411921010025956787492788719419400999825781028448909815279433227381155045477075998756219786423804007849048833991840219070845496113222860439665651447696209095788795211991593426512096306770116757645788989325285925895710493809190503951929221944026179757983519392049359484341606799280767859075721698648899763907937314695946393429451345950485967510720891321877758588136044810870807154300823688101521813340963354760325036572207400188856870572879290816265281666397182208312872506662048906199783763815278699380424964187248146307927957609155318333777970567761091788176392272089684638858601290417258753305083770958604249655251380368882337875257214350047059664189137188758414710234037902529652980660137663723016616173190835916214193525551552821001351627091567412059544311859994079374161198669300578634044619650380117819351965217019324094050898715537261414796914187328496476668566296641706839915710034473819127289688609567101100889448187039245389214413618480071371351801301053820861985781007979876754088873466966106096010616932692907267992351771784194361504798531941927063666419365807369128599198680596408894197047551936826584392479999695368745036051038862696558140587876426732353565506794269041916146739821684675377137696815277584153399181167450373916488180291571914860748138989446682900427906965775270386818639518397899204143175267017137941277864223894551970870513302546709732812040233256999842063581398235785641858548129020552911960494425518545101372941195010605497961539732577774377548640035093393920040536653294161154875454326227327441123769231196954601332042832825637157354228863030007852396893097150420371596756550204532206659775546205445952911938905037246273421181880487786097362666869212810541122897969988032640678051202668363576084495082817658528719195081708852159294751451493476961500655858125539674345187280595129380862828663590903021555982735067868937523626389443076235537058421020822870511275849482381780463025797516800250666184359884261942704606827141469474479062175809814172320898386392880603898066827902247162744811056646392812984630121640810441221607397852922628246522379570661377181838318905929924534735882663756723940728751857973433372710039412855163547074834148949174876141958981475184879455745951317529928181574451516497876364419292388314476395616096706828993709363583765275605054163158589649743476008362043725872925659959865565751671471034743051055482301242820469125569867993250395843034968777753566521228353775102241226683938328757125559381211278783598114583281347756601005313555931341002223324833826270306065077981232196098090326251130435292680851197968693844837216345299191033734869678617666618920330131693738752009867851315832448023776119382038363606847421973994797625535862456393817466604717278955911766868627507719699281008706953779600625172098999505595827323724752845604668466237489383003692200573842098263300545005805012134395480657043061610070416251786327239349135507328374995056187376673251043011457731041032726591024507122962534101021713421751165166620118896036728391795219751764974838025207995590971632685611739800940420652522050761603200109772608455039984732957562851583038771505504196390789475197126300171355112778228776484689464967305233014137614382405910254678302948191089290983033515956891585147685951400225494024274274398520561859995145850448369177414819655401926220702827628902216209365991186354239121687390346844372807929792637637140018652520119155934964061535686872908410002924850229995301467579316969817551950304630065102821432444537360627087469858908849287526659165561645480310181104657641365391601006269306778816038565345938427606410820417943221574372589964520632089896992783919283944010362442105317585442630953921667841649857802586314634689016619647494655971796887260092462550394834811166835941649962799500487546553158575242497524998569916578393433031606724073465263909751534899781105364097933012192980989642009166261342641729593652749875311832082157886353612874662289321501745416240364888055839500595122259634557327118153283372766993222954715783361572101306307293579406170115184407793380153168762097094319659654045676472556414262676371780647171363864812578716635296215152638229027426689012792075335088199645641159833353058070023192243757722312729824142210572372595978238091765579637781318378179109692528917538946810252818001580179284954950984360831708609275983570194102189044830957159722380180690519959082840544366854683243343456657436724257983155596466346050079294394389693752272809627196329619563376621977008846545470687135233908508842372263221802164418382813697380060292663063662395020553070658797309641647387339308391254675084981300199879449976976908204667013077160262852440729769765824318616484940658442423107260730441966633603407329384529634323605368078781136991440258146129444194294644079589193387482169131745312323743002720584000997378462186829897076818898596348215818887126066575734987293903438506886257802226807143231144414025212713985500081359843743190201824722389672094279984484750901879956177702829795494409826724641061316442694625114880927601961292467611834581945664497785530186394283296410602937087290123108091590927243153639695045627800467154461267557139137687505251064515071585454339854681379582781615395450853525016252732778443986539719122417200094518930242125258684535832606345446587023599967824783888365141160513201569363612102588448285314061943762232585719381167255376999413269086613860860630476003996544501482280348982740333952406726258182014693523601992149786467431733801881964580150835022186824284987006049277858495535952011547477303292739929905074338992354216257490035702691681025580900034111622013349604933643253232896281711107806084269257698611926787788465075665865877545149586999315083012686181050380833727426498951791899116997422391338212067515297065367518255408252936668530811701788442366645409263605445010835884757736329876022866665432713079572227715710613466266515088012120913628616247722483763546911536292762921752063833002771804876927542394473118735138816638946223907566016599746302287833857456433962300836910435992419967446175326459234037254373874488798756951195453467731017525566927217936638953217614510940978190394422011058405044989082052786685484104150848185188603531183046311215146457842852039987138491084490961842447338016210559631751876674485282518890862980868862285859063087077629191401642138625213107756562447409580125364796523162242811271641707490392490505420450708565220111458671586349886241720544014253337486015921396774034576753188619539665284648411119124957512209549509176466098376989345684145493267781732160811322144213924409831822891099766842163216556657478554771689205758566052425880722325913686063824353362167534916705533807868773356348588529181301149516582139189574555803838300679279540560810462494597398610746255804975885096427490534557172175339261102945634585436867370192635309165465587948535436654468085829039518949062159941745769226065081940399700195402547575236535422939588122507740682096127357068771213682851470226950411562999388866411815556482721705698296974663937887983571084194021975519494002523517326962008921156713332351815748123641217435191399764480161837240730669846125904339987360705246806083911625421962324635942985598169142090766293213289585218446206042202091782940020764557137078030720725091663935035005616443098953827414635778595174352926516562775682276515304282728116739045119070568336030676849143375066548262347188586612060002821017134345851199495585732791226975921484605043807345380381000730766443791877570064113026658194909344888455162003558466065155631870832969340022477260666274896295596745084606712172317779354879084894005835683014807112444503141439397471837962207254933136976708361667981765270742789681961313211752469488693211251623306119778818877539693828512725834822096851856554221344551231857300405787463393769052221150896260694442013040972355077728951996396285546742482329098135098681365187989356720840280905091753377842970516037114570585598512561282439927169882384628696194674030108281565632724357983284498664100466630636698497132963394710369996860256156523134716995119145478227532898403236622600159995794096041077814421485718249211703173003598687783129256597815505122575020241018066759213240700762605461404765460497217375781622716878351957026967395285102951074867173060067320149597083291883224211665403145921613216664783061104824702136886920877289952861542068512951453864843405897497190708862073914946990599553303523300970391991202295245953639169137796249747003136515093340889502754645178925319905066644776175175551841510349343460890357060723058952091161691468689373025710690422698271721224869496616643243067240631173130281285906825226988659311506914270603213191213887835008805592595122212821466748877231634755129919917216007277963124270567785835971250586296390530548439144400430791864646182305263003596477056503000794703999139887424265974401372453685896130639318606461843343275878998342140230070379405908640044298275331246698865163241810693940358789673349693703814224936600887654917199801089051872570192887520823834625343989890205100817888557855457739792784850046852204793455080274925903787379330896710003405481783474884390484440964688563043426775376677875655233493947882902659164271875135001127169369526198996216047888153851973454098882031197245081767838689499991113977056738800246413836849114858081245220132586257908035139399800695012260732686972537995012857614010816406146638229165739096923609046097840864858077146785976216992046241559223874478592367112168817463222652366657629038166566196178774389864314236541813310784450029655170319566112050842176922512555494142601728046087082311390554534690802934881848193194661510138171996128632435840585957212522046272099872725393766449694667085352150042497673101020066512744234454442311186450401148951558016397943881539017288259971520413707059164854382734897698705808429102059724082027728747834015941492406351314168633108046979668829719375425662576157825707973486497848697071697334129365315881393984860852503190025391901071511450515731616622224005080540583947509031889050489661673720804432974731358105094584688293986865283813890840248848424327482846078051818519338421549100982913212000232564370553261594909821095715791423300699657771672257866320772088236431807908544691424233231435352563267337142883097439068809282775579846544343267436718015552778505302284184596167013206041986352617619076256141726709714984515486777001176569411954353507951246216500246517071632255500707905752159519943088936335881509334395375143611656954851916142071099481682645879881963018251465723780551306387376613105545399561546402909069749541330102029915493866257842699025542588717197975821401482897664011230524859937538016042059681442976622178865426577034226580912350412950004995570617660547575862298813742616850510219721318451823205618079035299720294427757260268952393576635481362545538742175480798533745226782487473945186812383190270370542435133790840266339704797922141167097070882174742937956878418775338292455560919744938365093344578350013737191788554494408055079081323510111507408811565579326411264254991310943080427635817740000573198099602961050642449116074382588013163317153741258754907093880730963999913282214698548811425329854959615652467407516623920473569213309494249596536307794880149394362999686919457996945220221805662106467999593391945861954771588167110442981229896773210413809146277959096701492388740526836230331732988664649181582243318639662474857333145413390995712826291787049223157427054152911572344952259628661792564921651153891587098632049352044292571545339254500920978610430506523958206917912718874935093289043600846975593531094105045661092410020005057933431270523194886803052736689668644547086776572392495155267822615343145310870807544053278277510156701888293295626405256431816796141105908486103517429677503863396803956056680863726593044334688522407975013610580313816709624447054515284327028645880756571030859073127392249005725485928429670741650779905806643401033375953671297243231482805385315593637439440286820555923723743686515138892576473088867096527143283182720567550580581645724619859713285963611329776842223413426684687892577414913275025665754214507935395918875043497681734053849957424033650570515341756543352970118684488624059575789078209109657442707465720243793590676145573997323063434711323059449558343032537062319973244476122349021011962412517620247905665649504614180087023179764574434161583352029309039343343076210712764844332637990785896701801369136911836950040830834778239516145563112313915285215590153360938040882772876716425227702700444767287062334802915044708579501675142600701986263852150689880741239552569920463611649568489784043634052040680682267777276497764065020333956889001736509275329573361892802388235998726866979100438267722382440167893568717051499131514587301105061765382541685902520642052920541195662343823128669886248823817692433407800808671923388474655069616700352502251716575248079452769554927288280098342885520866136071087467432005157039740100029736353566054475693828430444685374607217370328350087059615447386242079631345566969590122508417759553778610607529273622851097405614090580584330572849438119764244468847011588745421222124907544678310011581875476935550484475621847145257073974970449680035816044446763961552541021086470740494412143432076190418874765143878016458910802319515101376864173319746286800351849571482969571482770154698655385618059114675663664447575118354942441532503369938557943151344476313497067822644179140820219502583957645401361413868666204340425360050578585652452100661984890581642651339165907814764886278891328954970132948400469893231102976328394909790564045674638224123215953729663065333335456536079053865871033272814740546517849716245529733770862477021518198594636299347023936340563270384650811664299064426403592307362547800893167104575984339595869539907677918264895463658476858700883132097543082464407329834699851595653509246322209755226841233971159964501016357261602993405950054704252740153197774421654557201236803180798166465708458758201526466001223939741806956283410069252056189031745930390066882420124758477447259593098446151346482716175490420470775991774390662911543889000985627609693277361379504799796093079801775608399319982049324388245625111730090686241703304321884302521418575174100302711642097687367215102917383008071366809208650713407798232422842991232096667083278217629191383848864179188424720882794630333029164378537479518685710000378418773356994556201712100524000840947061648007971977354280140109233595535869253972825291567792359783104416245927723436748465111951973054451846259888970187765199358176723477208959577931431458914111604956162154287505542922247677363750345470128861741694579023569046543755030212093525099465788560685948345685376341107312272794696500868930936620951226033771805593953358341500347335837245344509435274148969034364764580075695402639546027943067270586155463646835177141754805230517453782142428775034013273236600744325852216519004719755539891523602307183580532721977989575896411328002386478935402574396352091504079099040425398889635910347925610763755350353603531270639959319192493040572990654849708125345640742490529931060410076620080344511290037686104009464236092800024279430506830350109189787735281380731942919536357623619268698659003693852135792723305016368813424608942000903638554855594794839507098245288903878459535316351614625370529346883452865868542788843067348377922981616311595454609213021382919218084047346285816937276188463373324540594578044809872656310511986814469180215953614386922449796416765348953176708288252474474201522594880275949022138006774325118547272505108859351484093741608636034057534710218920398431948853833374197049555239310628748454166116798840596846757887576920319560159262423605788952641640564042645606953567041156467630033343515504772112002229103773122111387569153667849291137509610874558081816061575130846766706167500579409019114460696872602503948947432544453280154746020567570389088893442293899905312370708994712352587746757572489351213409013412457585557760131035313567471919069970095886166736335284512188408817488572286458032910273181582605094825974500502215801622440488146641512958979097080886035371028851606112529112051411891263540636919989246268852434306138323842849653026041602706650453642501353234407635057109819078651933898306195134057052799953183053089544399077791396929697230729578721817924993089365961338086884174369571879374178922644299104385693311287747748317082950312790272443161309596000438088328146914501053931598795101419265674750446109070761554550569217116925426130655395185371947662735986077468577359104372554528807169574961918625780321666127631523408110752217009847182877627937797243698029321133750406074229678944218044339237633879383822461102877302773782171634132706062236825948000752988729587151573531921329724548834424255819200044615071476744905256895829969050302837882355906393176303255782102481746560942235945378176366650314227131994094622924031121941972327540918352844546884700789560321271650980963510475365823577563159686662213085061283799589285839555193780875392657353048452482115649217229476948943006076710433739726558966537317653718464979356953605819780930060332939536972067262508820935791894178111184202901321548832218572056178655407063888156351512581656604255098486076518927976439621036138918990238371453179758963146888776283681456742330465576892625677034961631745980557249465154767038949580479525442890502371649466982498946006342237117475244642424591289442719482906263978075378243295306667956190008737775042268820543962321640132987902532292447645387331615557687551746918841329024503726677768788219517409729339536107226952708356553731807537035827544326429255112312103974047689119238107160069659556781035793280347591401128259699073332746504527923105927125891586327177599650197651120155148266922579301480045718396093826057755259764064552923609215649255954536522576439937740250523594655173638062214785274047293475831964022986814463511899330659757388615738625773997913136241253372802691897656947196556388815466661233655119931905304206255062887182360079872958574370999142199547441912809861635405286272854367552491357569395888485157562643221238848647485436414246982232112525139934240038254628384011896212200128288314939371144062920793871530534109760303029670695582286093585985850630885250917438318857602328045519324553748718466556858720904928004804097027420330326097503982986233924396984710379792099029208181643618061253507253863334317337318522318208511934875534079733234144718357862725051520798627723207355479640312313834699343213413854692119922776140115724734554263410005838354442137663710235861858341043574368221855682401163483689727127292327175548021747858191468913873749765210292828235568013646388610273190542732658675571141318353736893028544677601420639709372547130742142499405543466840725174329326281115250092075239913183388207860970300154590928823728731910907842450493457359526979692084317295325103665420679458160799536707201691266946769866935268577043547459005086546557346471546019102297499939001510084730596874263513725560776940624024290991552644160588111832170295162632105424117151837971919176826993537899898552971277373012175856025456605540472758130074945855626138563760122078274714532350734509935892382634078892941957811555782822926126925275191957024363247117161927915337489600084086237915304756039758285544288407076781554758032186509028940707431738970362819716584669851954429645303380676328645739244813465155497730780519464138628015885814825447253017480035222958165738690566135720019116441668409644975200285214157639842028769636971567454442229812126188966955591886418831598318311994162682952623658930758912994623449309648189689022663898903799167763967240645887637528803143554393400514294556563825505169801244738916802965115522121865335047110322878945817864306729680290376688691837859928260828900837499518393741591643628990840195839689798766198493241215769903125572646544190812712684598420290572966898709101329474623729783350132135223081997969085058833801865285475303726616414205074996683561685677609419235700740475423289672298406065110207450826930827090183811843175195564745998098040307839385223303939668698058910892557084335898692460346263645572053773587314630290727460124589267354871154466092382882294513182511979433799270810750061486603397093800527112289164980249644154630881202790082753395937939380426989293334920864863070639824475921181319885605499475004352440387961980259312011924404273063116654208072732538372989227112855186308020787132489942275568682091543753046484471415000485323291497868058786575926095350832176592766335269741603874397250855109663281340347531408758558857641086532791918136101065880146721442464811958726083534553439502451104119556327957293664732956750329501401916349114701549271283623244678186814664207725918648286399939594989712428950068498801849665771906393755931910699290977464958828644106585503008845443207069842348352087180159466613634754186002607100005089813365197642011637974815031146667386713885645706744731153869688316848370439842023154925797808956147179954445703571482771183198246734759724432393228560861208471287773932093139172398105492304744581359232301005347667967885331927790540356363685320007266873814410192976292984618332816885697187462900099725846690367078143974892785039890640820792228943915672820203306988758705203709846204518722335276195897491079245486091463802535369237684315391161565472550972383177297247961542456339008954826786424024926427213793248787373561714435997610767621823494364513812254813748764707350260866338357517935976110873574424985303553345280266019779914722015720998455011412322676476741012104520007255025375936126430613021005332826733406561434116691789524264245549915011109306203752440344269514980207465963608691724164283203297288552225247345064423490036970628618873564727233148510746483055639435772322633609788253926834532979437273782662724141368695453465756164474228536769133965986635045632457288624871154783458054376113481430586510003987318543941071723793789229125437188128687478624644669340655551380620943823568388408161084340278674971271976087472945717039228418933422882355674737715394733441034463627394517153436992532886947350625605774762292165620637301368091837967378438569307739655842940521162748253899481397086593567653647825330256960482924839123779911816468757896512601399797347694366663400735772038026276031707716947847762652781729653365181438226683797304916105807412605749346776380744724860418477146358620957330784735328797959714652019721659590814180781540325776992778840804810066614790122935360445210115340458098174621789231412053434497500303464605106219325732599559365341464880723803492043868613487916204300366825330893096086213549570939110467453116781111589381988316098549240912249732626865203167342173785658338094550811719996453004072474530135633078333047012615454386661673687414927425847788519884784293218507490823202263470236625793776253694259433520381911752439925241118811470101420294849759366235466289624678693129130894296525601486512616685020834924504581949525951093337639202854137817169032171203754700289010251347529097836398690621721635793759052748459187179350283548590390280807953917393304345518594377569392818393311887807778499014007184237794874486225949224370581564816666681708874742702593304719358643364076038840682687330825022808245952879539712610936730629909062811064690848185468338784866442088312239081513343939846655164469923559179512761068027255708938909069049725304062147511732995087440534422828613542119364479609212054617509457068013800965011229219931299665985236514923984017127254061988146423489282777980804387352144310255487501728120080005610025336438394508358296064146151856167367343885135323235550278704656265729497527964012718105504585122882934004864825432042606689547774245555714847079815309100004407306103102490169317195610895087613549425031292128823792597521824550513802462684186750562080418697711135499254531362874632453066839513371174809257517191071216618417492335278026360215726477072558822698708330236851243684218278124524899199298015528371990849236345762620045608387902480192357816990933463156758778658140728979152050848699752966547823385383806790523311567735809446402991295751176022801419565166833189712828238783714241934213755624509969733087572506679100753777570653422906286992285409528190852892787747764417057724612095272391757399987391199422155886735092837688126567842419479763963146532100111219441176307726029564192325762886909970315813813840483848109506409234284999634858715438299090949685844770199165603432818862858376863904704849144314737506073077713209535374076267407478078671739894199470106502411495700299614505398069606267759703188018411659327338315614988855708465270937994711029873551466481393213880517575647359176293551551971692069641572206587726476805466033965447191695454188225851008504116602094993468620440681147231020501597928357623604505434327487140813026950703474281372662046884025379284780260969694828207517456480505121750756226564155455008656224200089675252487538790824333029402714707102146248969815951462233764782326556509377183646513415415203204190368768323492873059709274341810666781826918106689737582383355531692762661096206301470607389445381178488993990406883690969559642063970318475398073001969157565611459142856128508451687976927899899604182852088731281634065679706687982078765634298954356359672869952805040187956247323557119422819393554666728460432840793930885302565357534918838063402737835206622257843887484458226741623161873314175544141425871644257755985080101830851400264436675590837493703287930283654583523443267445843568849459915748846049162092621512856227785383282745831394116715496009848526303267546215148682184119294708837143924946306935001640664928353807844650898465934232718399028260449015645603856225298718069586729033748909262037641226275502025627827701189177264682089344245151314828867246814119975515475188794854212341006267409294709013990213698436058766309863118528418291063874778100100222108266811454203893230774237970237272449411417690726990232130525869729886798057192644101167927881339577058394786588823251826362303746569163141816742885598388081495723105176922721749241790279407880780939273581438090530722058152302819065494602739572842930320289388294756954547514011080189165607355907836274382581797878561902244057833882225296467488474811499171453384331973889414349631405312133265678799244367828454203049641689049269551448711545381625796077725086681977416795515849445611935854025938318806384460101583427281028019206187344858825003778610598141887303168232569986153872713752410506266133772395649460064147223755660441109861180450419481632252050626997280089618288489827588631981299977807977753684158538554704671653262534895188008223047885928496236586547941700046442135472140584510609099857604659109744543242912635386282466464400348168268273489514049112048045511758739468323990182124816639632824777363323803275815082053363313797108750114908398833222031897105541210068367571710000837442874091606383440820541698534880134769491949257380992861125437728016312519783062447313442778909814809145243995499889151661789105224118101281696800881938975548761156907379870727094234625304722188790329241822868416092126508332611021662195664543167438885107729785024146609007224002165407166312837049689767789364417015197580419541318152957349405077720215483729210871017897255965997567642868359772915746428589050429657522570739862189861397754966544165559072404116650765269519824349537872658633486429710756460649278311789637661978619465238368159941521438659544813614029768423455671444208034809118827607838551192440188289901558101542955817425688649948479725634862570274283244412930771793858599031072567346878161402930721091184385796087763695220325433787718715593149339865094377613214484662041372743111358906533781839604702671754410523388093332119111203620189615705609747783599517612398513025468058273330741217780118836149982204935054499894569789085936093684092758021261385053542004539268271490473841895956344363551232706081666376190294096698154413924407320778948105031184732688853871449747202488578138123353478605820708804286333793526397349255729370873129124231583284103766510455313550277253852032275620311847243482324084560683737344489895536010509316070305162634061460087106879428762317461161784625596980134883104750064123336620211720629956000722990280728795030847106937637023157952047600562680099164048606344896355106518103374115005491354448921910740549644279796446583555437245086768006833817136846483674860949934785825047721948244517861090007055865655915507019822216688504877684767853002589078740876403829314665506214638110341968311532634586849903597724211692257394296881057729235082019393688252122389917563637731254702220847393074083486811752921979010337989023098605293967200730850854621799452130963423518529890006929062298475783790354993729237143587092633402682071453483959204083490717696845673221198491080658281761422012327023806234540169956601463203896505875602343002297223010463133619827753195846609471147754421936270138259658417045513167528170034608050500352453537908676918152633470409619320939622305392584207948920634916237580909349143259460202508604768831487231866551722520939391169371809561889979835143160258045739688140224468161085158917209146184620458254851499411676902369697867627224624759521104528121335822312539714906531889739050856973370343770104651683030141298146605594781658602547813601685645805371780109592744155846824701033837321277058707545031226299643926091152031882001234363407108575294282251238686690435218683425049790444779399894825368409051758424687894085038422460109640671679333118314155466536302947488242280851115438869242523728309113029292691201176470690113053936145962473159824767523227071983975864036387744871645749929451750967138626099562350258825518002579305064774044545967171294906348210514569480734015594027472079681867492668833883836672559391602282866289095019306567447461252799898853512746508095150289562202792771513103961288728967136911342216294405379796327243127512719472773780968613830110267846584757021908595587331294109790292986453858520283765010936452512778557823140945457566118842685196645600329129146277134449632650489308251758114856601155311663385712778295835170822255962279859854243876809909003156785181481036072178008427994079147519754187752597137357772760312106048573894601818025144728982387002066426865955957759992280551907079034038163205632315223441066818574893170537270399260773817672934599994154918575170952018110485103136981396752029507957094372332053615599303105258739344402036185229094655399828794941207486553587007116116685447384699193286176152475959158829954629636739190344056124733258554675172839089302901501530911673016110111217553744502590431774595557552233296509076705882638601522890927398061733034997149888242246759100205330055878139005157826969202599854202776684085253263679773766025434275881673082718004834805798631144770727659740968560449462482230371120509229740269768725702976517018353128793406737048883293503384869084520110601303411732514697071934037258376973874171705578696571837078261060480582183633356132540272118332206929276287406703616023232243316055304923033758975874500967743168530906956457310202431444674403327274859061317667503363790068426596604242692682741414455000932497128976718825755081313988503052757258179354115288515450380304548292471690048692437246156510736103508405830403810869956103796722768382237314609196945826740124778917298741439129240209321468963115426314802074468651483747086547740188252680369714373060641748076726389450407269155159431722077250504657117748942379117449796385736096072858494529944137887352333711278060961277022209913764009179726479652236447489100961690804311901184079001215992404363998329658509048888706180352893360640367608938749507375176780823290739466037503757264542691644963462725165451902652461695410392369475950921616719688805984607271922280287527727826252441844107804258348648630187397797745181083331294429608797524987801011278136310995945211610872450418273299500008446358933787730044485702742614405090629314304091511972393165008224419482289142562915113310448498732372378971735215194565578218778499737960928898687645741914424466203087455035583499667116706063608965787560717578389572343950124335832755979037135671634316451779241034587144893437356198522232210854572443603137291726443781172931268078834843325170109503864804441166299755303148256221074276273260044547633138902091248969551229794120129440269953109245387432989616466899820371290679063495215464588011715498909260084738881339676951305958928402223627298244776560284346550061819174954522411541326353079028920229678351759112319747451479666982040766214887865819085655143033709942309269601011557921055760263808174792561787689193082268423471675275312105614308744742167240534937384895779265268157056276375740103958533938203890449156158712631116716540574986375451421221002421887653764511800723163230557496682787880976951297980434724317406704372920787015693306287707229031149607871980158502557923229329036026655133587675441772753054054921468622720808552149882042475239879352806779733207579185605555372104650156661994955584581298315887869734865963415803174826841923323112367772185740978306285451613989011382299607917135610819446609471000991844522518036729398273497617827875009601531531149545453509222418726724803098939330518534649194673465730698670798256030713793659830501996983933878692522418961870257658671132900484298575921467056422057977070266494980091577881228032717777701132471477547268031307198272547800301222371150092158652064823584353228504432469406760420538943935796684916623575747103723492337259939252641325241323181077237654385052891843699883796905096301613596829609863977209738930704111282800937505198358331761723769809060047747534407265363965407167487013605380734609969102073929064976454990208743680459633669434888795615806011172729309979640066800943687251155906450075884079583163253549537013842698682112346202612023994097370381906130635510961547559400081874626882289855509031732338072740293288154303086915980853831585347349727795324275158474837467837178552510015967461535032762002641318597488805941307952082323299167335333452135731998437742622150629102531684162506982049428218106517562190811394471697140194464083416096834935272864657978395656304001850543577076299603147076791448093995805697976168846304331534617678809070597596506082373750901965369455023502408469704867937757167998320623840888096054031672921653243400900698204886021875527650230362144202850710566428622507948043944162888036059727443404465233269815106326601495656883900433788992128540531077469134180313733244019162743199364060537945212683287231547567438121429174701778170288186239029968839589228794898114553927377809020700350175120916621380559300112894532530322361789477037082216376450695457385734195164577402567239670308350556466727664045308108455907525473105133209893908519238055663667942773778083415012209637690695445870066390596107662388322158334380818213542615686147838943793379169149998997968414897335561651399093635037017829446650776710366015869156180153931377118330270140842923849637980374688147577076859511868810592505702946523535911782386889001505543018250625910914914141140337678126636496746326196858327626219843379397056770151904260474879021434389873637108712290967227361938242966038874688889578799082884639585678641439558042062443049082302279942752297072250023734085850734462395205329496962893027257127192944492775726046025303276401384441778877628764794959798819274813352763403913298562571324499279784731460247650616361606057025896136433492962751054409554298992276630298917835539881249283954199306269879603821332011252891251661423940433370497514797509906956224635554018775663994811367825715413151643419719195909605141328692830035536750509256103690954157910709413162724507488547015433071996890512029517628370006729713772837391546946407424965986478675817053649385598294984606578446252432104879749865500316563559258351922773412576367963139683982284673816118319992393976406758968496105234823051616605975427522496792384586364507414980423343598205489067006519998351950849364823022682578335862532505875171060460368384299987224077875122541731151201636215482969008417235155541627529316660740637661537243407784394085233113382862425511605255465774256684693841706164070761646370526713833926478050838358803247132647438648179362527670171820549725012312823097629942881852042157252617146259445422400934343509736901432381058669708811488445094078091098865412898241829700258943439323833912482390832091138250212193709879071127143615957373101457217929738000736917828445930644720791161419536090852192260659498706323890978674801802479107604345880133440611060570727851851796208826843769790591544137131668754011288661124630106586197604997919919559266066461265382910523924086964667958834393713522196304518593029549078383832553606481332442900771405806368247475202817162924798250790224665101402793574247714552300556239326964558072638686336725856734962132426146386641302927142702299714502857983073961004341040875946666482874595804790897155301657796272223783009588503029199242145020560660832289476196714105839981174596031700317568167703852682285886463199890019216034807457525862032418048106574370348891225617669776824558222138779085151278878014331806970774998753235702944852296844937939892818597047273482480994500310809846193507876734656200506555732099338034660493349441086783260003396933792016584775814917332286482425495603821158351309820762553111476150245724166579375574286940402923661227228764428416810034008775571020477232890774157221724440913387882968969340047228153245216234506697220677317861546855807209435231032702020353282356038826471794658228000514011688084398955611071861769483085869728002078294872207914032501338855197498975930549949805814695535630007094242555459344556436548677391759655789177336554312847262505227641211144328499656534594107140721704493022319251179705985434225487303806608928542226998220863655316210557537167252600019027431865015788122447011745158134129043275471757780685874516992768692616070022896701756648937766804174544425195010397801456620455427144117483367244881947748123347216262405590424331487351571860043290515898488357258271942088163877084393605247732264322907524866364079205548963217274036083068557325045401008693065467988160425890208121674457012596501463440460607959435026263057892800444303494156140958118353365689452364905514822487112335099851357668118562182903840861836738973519115181784139297580125609439842932638614240745042288305707032979472955610220175518849312792783705197131944358613548141447120532724179400027367475821580805264696665485421262760890452489959349800853006001666275651107805316186889564484433625141775961778648468409443294157205427511084304392650489718604320073777478726990906980574870226550051317977960569990934233953334465415486225470482219310400526082472762583561954701939567047767987120817337334169862075483895306950811715710033731152045994050541888772351598150593914507604879759531220351440633314746318990057345307932503984620700155335077973211045854548216815616116000036093134721350074737061010950807739705522463329081672185193474736815061479191476623102996762124932560935092488033319853806138265967088596980924679053005411203540351179548665390376144167547926947991674804454155511550604246627818563681444411244992768962805980073046778716818425124540925275076343880097993905989633048445522520478181775900197611074221383260435861280757546595051663581596249393407930234411195465744887423486395918159058155749021710006654224237727785814225105312582124187165833390741075353627953697975121268361594943310837608575290511923236506257390363841125604991775949329485743569720171512710896934844714859853139877007313725231078536612151178772042110937758859657101985994005866153207768830308198423304491735075363446715134887003901435044871493851860306958649023313976836828334042724297064146393445200995783497229380726196423368239310062866009825150705978132963964097267228089553113585597560432809387323047241465007646103723820668009536004573091244645818247775947019976223427653048186661899307973175210890987166190958039817574015994000390384593161712749987473432643363700451455065673492569198260954988498980468643946392674499894139063356406666151097116126843680899750374497970104637339779387072601692511398141606973217856415093229253246898819508566399447329026111762872045784432081489844629455480176829667372476172743646057573623144946355605125688230412092138381482914831885404840057779599570785383322332958288856174212896447500297302700610104193140264480095645849649337385729272841987460697991806144626072983305060537637477852954847491853499789538923195275937109207068093271971812299358879844055479172330430321057329273931809075198252629613478791402348037216887723089414148427285047544625565567359089809351115682959149225778603086904035633015674786423732241863461936501820425810053647958188002301738410064651802784112118128669744870285762249723639275469003189199992220738685749197997338162863232866666737196016047730279281914775590939116431879431638683942944163630064909704703527509977150319838031432127950727410109530396746259130453905994211388944419418366099648285574563780201823259143683860589458345284060482618192632507491380979649448823512452491597294834116068508331385811164016475268052858446506380923650501631232768168243523183772348967885407226677112175611860474833494489528698873863704447729897613146061326946854193927883369099935461808586076895744394711412749716044577779475053303941874595859164204179908592509751960187028713843035561815074585704895866637091201501572186744829940610449094776205534201460302140497047298735894591138350105055574589780999031062826498888711381484715929224312862196588358479081237809095392026338510338925099084467106702302537543394650005767922433803231435992505522497116856797309041034382435685676751458146790864304945711361298544063329742401329911001957002809316394664687881021881489301106301250771630475649983230356363844603091059847992686965837472199650882398495197432604297505130241289416682675206659095762621962226943402267825715748912908548148424919052047482708028345533005623407187886561876968706984958690315303006184440054045533600169056477085190255776507200232705014788011375686306547371792137575958417196329874156671892823952316844404867988236916501453292982654097721869352705319577343523134769872599675899395302275501207162091858841121357696906029644168796277237228190730633374960435312408737762458475315147286601660531762684848760054292457634784304053600435489513679825168803904871459681730582922046746710463608493901619109138130087700748490643328116780510079856317322556748045908495599974134960200690985348679574978287550755382395456132417072861649307240135018799290028811895012431667675252968665998000182628536328090692085006564532236442353866710637895238607363651136271981089210893812449866944030389109277677060929518213861042735895133121343331919545220219972465113630798196604886025249270866216213733313689497799050483205198849214029625118938437123383728202702062363086833243640403455819388168129972873395467821901214723984342255294166956292435655652499515331442692532987558921284868928434750314559103233752246306366812137148264301861527418463871137285555286922316022271602365913746951494231017321768683768243230373597963785918766948771671064410833021999535460863750841518460242933529607339643637411886134840984380258410503735046254401756848868519698716344334749481929594295939732628128966442227960781698506284500520660044645242213166091285318183003901181279263411875375920039990669095705445115563324359357618944160304338264966330075860238227096005053973879729764843388498001181303545806794426489230825480708436024329249187774216872014435760519174579862986683945720573007460780615021080035026776314856851951445746501278958299328297414071299985966292531805762540201077377899207218033113767656255644413087726165185492036904085040859228692908895810397798027060121821229790468659296431140269745223724212043739409922656982554070396915482879408564227842108127505283829518436510422339437396708002848123898560442762321899026306695270958691894140432085680794941006264027772653139636212235707876674373162444694618834645717898375332520798636682396443767109846592794346440600957124488113186749125681357797801802949652176728477120153226150695683279878420617737439343372968776041950577597699891692407022477438834740095784146583501687676364593518390029223112471522522405024599429404061772328555435407515440213311584668456776505716890797683454123502823507633863065860695429878287562897285339643826599746381861854005918614662871313134602770744422777170049550209884078171628925525977532210134768258929761341451379093777346821839350725162746036146336521107909768993904550649715025286041566101816389908042102944830108669034025220381582848452153711429633391788767669377223769041527427799803929864697485308222970891492657695404104489161940389200772184573918163880516553037951314386257050252417274227194295752919943023957291855160143845107718081021763539909952194690437191134355338418633992124190204303962214417328401005230198033677524187695930503168593939494314675871325343573439281716839731798158134881154127277518836187485072874496716793155672493797171113343040516592907382963097034295236812442764723510650085735297623292636597317372353173567799823957857079946858489370986458613486774960565288608562033592185801804958661538389037235073437009080212666573200801239619402109359677673776847921818195343128909251087921780022365111893261259740443292939123037743968070494489312960129769003831337930257365376590105275065933734219143382958835099106483770951775984796641593559021199130800880666391691093877459303916266018025698050391399656719989851188535349803207066353661182731910993916850847553362728044142481857824553067562363318224522802760395659445542356594836722653455825218511970321855664261155580052301174448655202646187379403012864153130525187811525302255116559486283849088126305630996794563347951851858477209614542728114631598018557573534503085441230720368597141988560801265071130810739628401451277146603508359057751666671929829371347690164400948885151317739021020846298657195448885553439500330711238945686725259114825279855218383557410105082468980210052957637179738800189936286301771786327730677223235777361729033118236793810158299291182880976599359254521662326997408553896070794242858960368518878928731972876804186287147267590478374825137641150667726658035349852466376867437196944170792689437313007792543486197072218446916344355083069730037630956916149393983504090360431998733167986007912110456215760784275709136390057974209923351071062433744090810753860922010754879281135491562211229078740240629074627129440718253693620966858360502056258376160990451522386420346745092729103443547069874050152108753629004006079644099343394301299633781017765068035981923149049151310673043413170659076394205245165915730726395033211482530033760646844151321340646130899394305609835641261844466693910580114968707083492732518218082948750088309232957708383865475568559679196505808408821077511827929724903821604405619967866998172890415032167695035147685672025528606511847117885878199910862955218296934722649205991891764773671534659430785452122538530578392477278919140909968370784634932276808581537013388882629295811359663462925504333168033998827167517009604571132925114220640078282698727044228484035539733171234573954646955593343489040211396438240565320492966318863237594057804613148242165620942721264871204040872572735467967170450667919274537072975211084773381464996225776506063076348542919626462329091183432710024278831088932429067335019443185379596577826978035985506999290182724469997443378864750273716270851527200695359850828480899082046814487000069997965729490788836876404104680503968648205068121682131084348221502839121462473783466928009489112800424593350688996829862392251015034054983264995333366041644849670410532706688134750336987370338194242507220110479826291773092586225654951714784522018498273208117502270320123774921271533679942270334429653191607257181275194286631906298599696122205472907718567674877712093357685717510477806388097586986833866914604955158329463417154513109503134940634903109577688496971711924070932857422411683393879433576430857491892613025962028995141712999601191662141673532210383129033001343432322395504982639370633417808397027780194832290982813780860416559440379787949413206383484054820030392154913612676424916723684916530779446481889284002855642671004406674478257053352563283017655309546050368443715418643637922974998837036927773389820844531460844325714454543358765297375007002300973679654031626758620511309606249054828200672303284419935544583817184377729213547252435495924021745318575056916889243878100374211792383628010076629633562334509458557315649722149050735827822514439989179416332174307914204419594663953636909550589771251988483688423584806448457509423902799081227313845899541352333269649327780837061318995224573603029077104503777415213562857824929208770751856018107312189340084308562020846734173704432186330185307902000894618917003066033595122822903765476778905342574597958632782226708741083330255705042260379823754030864857985426419139582077748150663115762356142420009700343784052196029744852515121267611678777339919817517267982182571628782626669691914065391718437225786625568103874061323589052402915320670917896624116235858980055900184040051599933450325606688585447174271717865463605005019580200798228997170504863064742645176270538580648675963354641872388657243232810423553291326078227949481386757190850772586534836845388316125660390821601088642942088617380188757550892304815019887731483932151912628879640213827293363026345434703456660358786003081008876074200298075352829149956900890276554680044290004460396741941302550130874376832036771793821304733776927535235191194097345908324310225227440534592459134172655377682668537088557460604708445732660507437073936919646660803421461228641706472573046761663424433975713024535781688624927184913840618652944505473245074238878235902304254143492855934780626142031100424148420003422206109642441991664966916542620117677838358071564859620699920776209542106363442682883628190872512768653555665178374591476602730070138435418478415034718341536524844583770067376158932387831094514741310517214219681949587813385600910356852219138018642177612886420224485936585554328524706649580247200880021253842568032809375499693872857742418188008685904105803844752231566799562814699588057490488263219709323692417453752975393695358421576668726793486185101495700812511244570041378338504511452349719358447205206940973503463087298551586795270118877284126358026662674172301101327265936242703132841582765154641918587325880891645043307311316240424989058466402640829419461055852209000352923156252475223832712888973954519870126741289322717649363263205229849032349950657312831051793360710456774887378326866288643880725259086592273599947003859856883377947315528619094195578155189153740029064146146434436449161209201856355333607586131951348408649150360070649273637150681463290885726687808932669552551593920416160932164494446350891357466353316976084509508407609398279274833924453944154010911050028915666783447250320211131678830500165076306283920284714523535524820202365229102645833461230738642613079596322550971955360249775802664663561080342162891905582859603403495607636299563029238857215463912629041320214026425141876674675036276262501250517183351332466154397576299629682129320582623692400971564478623798244349887260438371694048663737977849686337667840872612494235385032559069672207767617593031981437377140471167744237101479599357603977801257559342153948532889778163619539259168199823805911303418135228172819566444113379412523977378733059509952969780662950758573978856032126676230556387891499803922993067986911104621423476659930921247405856939925806163786223921910992242811901611755909278335654587738097865016273069923408858461900141056331597685747028088458642082831074368565889350513589963899269944124099251942405407905567509485410889272472313206998731547120990050967980864268609555941175217203338381717520506433069126777625615903059809316533951483512334551079544399276291508153581012521815622896861167393719502939829391860609386089285526380033393886101012046142448524351050394612846079290695847643267739757065282082255441755988755319332093154321007869722651367905323966864439519319202268222104334748226493307827083597202889810337573076845638622254526374675067183384006483520176327632941180008690349965848675180904924140379510514880116133264657443943652238079519502358272650037794317992996842035983534957289799631666500762819128527443282173562532428700992525732829544855730651855015060955446970415690914081523515630202873428387841135277567021752868400471940090885663960096153603164015250329701073783648185379495008575947780050241585581237553244129596745684576432989528896099237077286760122320696849316970027253778365514117449809502471010276821078445085690782302796086755220941961954111899263044393380189787437590058686237601316973196001383308756396275891283498213269983428492253207819778119051054657603247183601526255838625752063223216226978406079501121885926226178847050528852310378139418152586294767029917277306881331874361675074702473483151406321630957242419736684913086250182159718951533338098687456565224643670514061902847394166908222600734404250995947951183039077818426421257111902227721136280021116913467782025190644824218643442349965123881941792159097450426454664050558334141278009897809267006416683004993832594467981329240935501017705473082561959140445024308506574986810479162317246587490808202262269880949703778194830053359256103548372458155519695612694884284820160347346562233167391575373880703409970542100114843425988323450330265413593123118313674832285671676073528373995536244438790026822858161339859204723212813368364675318068392608246945612815510902911249307901067813063307564862510301665475006138467471832524519458302024894815459183553178183948381721725504720641623385332076406452762661822058309902264445641798178320872965864006076968232558754656794127950680421759961212415265233369638191920327953478145956911418173084608825333325535093998410821222311646969801455513955822758188137593284158119314729933239895455499085907459313943785495532976590947727159115599733866544372477589394525520003258270037540885062753438319871140490060271927192312744424893707513796325230399124293752106195254057197419105778557263723545975896285794901155625620228644518970898571722906955847672507284896133065924478658571575382635367010235906070365679946415971972339665348592457963920458083141354623784197753139734424558784177434401519114461686150024277312618305575582409183774408590419755249697687583482160515091681863638628428381127780207677212751370411432612243428703608962890638699436653289551804179180034555102985596281281593944862113509768196124767013483806468162457126029103857266990727810220273311228262214907951273617025476270788152008172374748617533801227792104541606721837690350715484937832016289734083818387514546129265281468496555718225696537656890868674710517554074966990808233329778718656726529016533090916859131270915305997446251450390096014572969962459228008331302264314486741535749920789866331195594800938120607464719793057542428437957183875871131188752783923956597895235502769834312159554480336688615883023637664102263060928551831619931866194616024798857468193114143431607716922225354739871056395226868279858607467954400301891772257064025591245448545704050363901432586336455606359095980303911577816595949279769723750391182619681345234299343173959574975944353296761958112150652994943931617078601469339814161191475649331850556509122698473556762195405333001162505543637773950946920093349060671180726174416270471352852795580663002204673230921255423820161849735469180300453085774946829766637294285920401256846232521684182058441648101735532584585756496150786095719568445080384972105439801329102297430246508354750656668880613058042055047615526162397884523574232083539189080541115842676740328578944464564256688244566427150528186721222980309928967392309070880710041981053184011883967470248715547129759076282466548876597964621761837360368838255781134073866261284510596302809126616213328865924182893115239579970691638111624785550979433729408835636167236444503015460649165870807699717732987553516077384014223732918215257666105322243990072490535349519284917775339709211094978811798903101782660160306928592519215830120303980805041704081677133529824449655671606246544018822782261221417177040737648108740769350115005667610695020517042593809206526606567654903458392953493784702402920285412300600639924530394595502338191310995272595464795455272322016500288444573598329606566540222462276129984383261697790771719334107605815439935616283314871925053029257832910835383082624685517239862911361086271296494108480433870192651240604938976100150207430993591183825265975601773826451111379227140219607623502733521160151413765504152560458222424720198925711531141021094329613497060956081989216434489208945356148340141145110821308464391911597100138410927465814011873674546461214394290139415938852814591551951796023620044489577637055267093971324491227618261656866765794357627166908544882421160574901012462637235168513504194632254697415721153632779999627464956005764122675039939024138275334763612467524324029800502899997340128633449638306841157343310886810278193883422674775463335080320263292588544663860640836224498498393554384143779341169209438533252038881079997241728977036074791156506494687444209121331619487669825846196359061550765419520443848023812015666799039335549985308176917709723021328542657969056649970817106264697334916277099399082728724766381698821139965942337948040702900526537908252263993857124671512331525251731162257796725775537078198980899674173794126482272876664003081020867475315900073125354508535831888516973343217010487923822033818412997066519164862665516065576448342027560811589312442236616152930120679734477577670083496693915414385616312098282501544174291905051734488952228731745854690971300696482565606701074132334988781455024270233048397618559958101269560905322212611796632498599117726720619016629243707336258549392784117553949358158294640504248792978463255926407694658938911998531642651961986414748146708900602930806380416783508636004056671004139805357835114992876149280192439902962892256744713415184372865291117252072814830388115482443577513244748147044750956116619622749587966164093119118054583784929913011699003089127436141144236438900706356996358376152431652679225545234407499308665771819947917905604452102722751432051690975185382189976297010901804857609283230640509583586374651756131479421935668248871067134753560258418569224608503980471019178123675998703602364705669780090915227252577441991706547103924880713145458387035963881290982585521432924110781917126377400803052351656586995362120573882233698390568597639764235346727050257733211907202876139236381828753338575915098134592061871079805930398295114928157080764436603730292033584511672994497964341713319959364322001425127594202440798900607895754485995026955929303757553872008380688966200619148769506699338796018654837865439912185581818092303964781013668829557722793023823801560024335502679448780939779593909943253225036458018423149640589880318726485807246854174844069436473655558176681516816755312585817588706354746834869206016262642216157675270863137772946122698751573911554130360049935976069830930030435107761543359693912379201954166675424634530291131616136693476077061907079243244329031825810427905565720197074359971825783805811865017838170563974532225715893625105607323114259532365141101294695988042442022027778629177993396229383164600035551842767398031268403899454512145089439295945417061639725515539562428782826200533987913035975018727984471894138855013125079178932736877039653584913464094163001452945629242770593804201995478385401475912483568683939302928015719994571775588952111387320512762758460059241576780097441722492274640709728709954179156603367254926503654361548222159353915854991795192982301620396792828577506156749588307249606645072121055639469419835456003295389463988692967727778203579888339649268119709113454540387183921247393969702046499087138160782606623700423870526264713933659301717231526476422822649179710573572708332070420979125867183905181049796792761204154489255971331003931305892339334775128672874775848353617674594733241960447304313688382757383350984382373089666380514465654556017318103422649024287062796991672660303447056346974108262879476284368591522788606988435678272418747606393448241346631375018689140724681020422416657304815659608955405583629270920836298560572048177109090118861646741447342981762168936919846904557646534425228637745228474731310684031397312658035084665445875679225075967532683270860090674474390728326095993982163498281138165766724836874024471552140579846897032393562276211144631245367659603803121605109576082963389721560687942452415148281750870260123955316144879298963920716705389868948417234342636298930696536953626137503870930638110168732753566721031453363641987353075554362151129934772818300427577974493722907576057606552736513837695621703793123373246401953116281880236405656418789583701253127680455410727692442989197056140089911764836551648308321294952809360782942557392927877875202125968175841213545847548745694530343064977719180957316587919353340188568076362953421047943628863170301436698666371853469750997545662506874044460518043392917784561886653871918147940329674646303929134676383625275274337565314110667681279595026392062915106949860316475153194482659357955335067201517693818814771079929501894684877939414382006920842035436279710338605286224754051700203687605997059446315919016826402382468491578586010198144709737557128449858588037550852983956108925225067095149693401538922548490725090025374160503773893054301922675531155453341862498657179706643734387244250268162722234664063792901964070611181916534494725644590583950187175664124105063862971324541622750481817318081492853372524263749219612242027201376149832630610611902214757003908357669239013683764723397419897467997970007858627080338404864072107414289771291428386864255571673398497564555172177518929186836152325482796030960858171039081375935981364411962923227473950214026741035700969548634533035776065862503841575469454628182778614620401406004178953896101383663647510841556397669088088334097088537106503482318683144887489605506106695553957605848216240775451373117251140667722694884580292282566191562720518677234325717765227499514603009427968841604104460425834371505326729475302061141405776212664278231174503240539151690509688768133814963056176872407375510511748713445314094553376907747249898643616469575810164265258019447553955428585666504524143529143241990385720424725792819515086965788637293250624443506229635277318075319158035576240773999204619526477525160555989892564236471793471166542520573626094815458895492313748889416112497667497498556089361443707977060380945519410865015676521243528859994692628491975572946765616562278633593679135295895854316436933266345115129567265268648893980418810229317846532311701562507453037965027517805015871175165093806889045713315297996961322132393712985732069315633021105906847114706531966809932545875350933039265727714288814658381772026574795893855416232876356888085871534491143794280280696202377777651617708168175001667374522928919064710007703902954171303448070720054864921631194492397225230969021446644966295891761915075039362618391942296220567159063137073693305810735630692425235903057786553222626001479129738056432026012065223426744209891649081263684695981080573381173117772300347954624033867054037644232680290072516506339071318098851016745622863235178723802250492191038165322826835566346231190756015032396811175167975133461552273532319789579316402814511102562002230177071405303773144935773399092928612408867945061059734903465264482494066359041638463108055892189420347960442727239550455840151641239587477893907395532727866821725230267266744686997116435136102711924791986994234664209957456095260332806794029955013970111243127208083499707092577251289209132039925747964319607080249188618069449840721277188245096379755989840466186447185417929928146549747105308066410162105734708253497969382736560279778996181753288480973917750448745272292450578643084561651962825650315812789814008821670892036182151831070430398771316155440169915358187759086557618691818765207138485736534624333089038865936490953272251841764799595031901351149199921265297501901976005458354500675508718099579811299020279349460812336853230663317958611751180330017301604674352453715842430558847414570506663932979152764711854044316238076693490577406016621157103346942662164923498530266309957012694263225064258401564863655030898322981462205559121364003786137965032987885814707941497302391768674988016470376556504060936348258220313139568017460707411269677646686041158388498021500684529946041952081156414129857324168052215248388239786661928428185903586028634517930899570319751617203060466205530011213515975419913859663945762692879641746053670465409911703832062037464666565340501870691842273804174014862665387174589491584735697825650406534777255626055012929449293914677688297167452002394758457849987212044430345369520544114483873853245140704736113817399872725417489094224143642910738778271172313383125205981654772332814208007413395115493536771503876823190532041064025262482296800560290627306124740799422448682555181573548034108155121801991332469849932983139006563697565319039469648314582912489052923026756812768305415668291299609673930915239202203473583427934115753761164983579545413521376827348215314236912830437450470044111037429073517505721431419480512743368958031304566630277839246989973903172329309607203510700540885771648047147808443732118849332625532600288835530673285901506560691298660839974312915869566433827623071731691971214713655546999665625161457430429721378527671253751208868475386127012749691046936491204602352956741116319861469504060228069130559337557970336050941473635384948445526534712666251291876018834154490683040531003350778315107456404632838328827327522676873202750248836624698378370485709938124828422309071234003449958421848314282281450483699988400805095881085126540513954100549098420713482287641305665452140803641793906948807634114670184655288461105891704925630797458061525194301030247811038017651847064126975988577004222699443026547675138783842996304521226866094063188492001616786632245184032854208375609251829063890908875462618006765953618160839447770830121370204866210403217028336583124242644404659260050961978865726874118643940102739119587888524680047099263749893002146903124040244304805303708038761471629603841773085785571518917823509441987221792229089747705838257901532684219445840999370827888121324937773241316489163509691632169845646270641284068071519962896037413506365374449007784182332547753239182335900203614245793711934163180416815004235572140583077456442228455222890236567751588973275647340911776405795065890399342959756748012397132472702414044911493004428800701837890508838771122347105504846834363032572067335923001321357335387992933506638679137054534364222018617090235701210829302798731926806935341233885658375390719263948882325300904430592301141006956204537334352595430611589213824628485882162633570475013393902728697187679398179076859741132283480772824993740905599224616404195711987168242044279305432515758485702459900608611147895035960720050713256772154552643479073660430166928261636185193032670139449834708342172032271270814526213824083137356998460377072147583460468343528064355744042083684726000328033329433828861357241869848466480340354050096282661619661021265209989186370693277673584759727766850412132675534595486738647013183876932049031956783697973677515020818436530317882119936816609566476820252906234512088564262953730931302999305507179573193322081278914107253985291593286945715891098324193804784377824235478823920676277803162565280330959488692194879867362497488543253757551854761271483665623412896991234499882743184430056364267999859963667384260128227395591220534032969294834609156588481967012652151324135299985373458348784832268279560601433988812074738177289190622055871182796950669039393646308778384973275802125551799866992485391623437566897886182794152825850689161267331231055733736858473925325757512346463533360575132911343555309309429271423828556964057695670248582396026461266263216303601502835174401746630849320558873697875187254793017644907088017358798020718232430606683077958105741945982390887867111603618215628878280019160807684808533463777141559711643480893772357783973569399329316839271530053990468650254353724190580972132659073940558709842729901316314739016046599127793227600725857053978936340342822185707960824359582959679396700180549115906975002076100929600790031853202366938074540395723573238889268239010578705745597358982362578428239592175208346481924016915132201815794476640481433908686544604733816428495199657065168333940832645748643823495835614303708934113460030240190042009894686716322707700914973024244113311374692275925733770480113807958048815156923716587519402556914814067787426487857079413996350830226013651155847383610856176869337365548492762926021310472657191138987409861699048469288629240089596962134942781499358294802388820010874069872927630160953192957954998588567041553035813385085829121150974527965292107401817479871073770302719835250398857908892427947509507832793677633937785291160029157680631069655903819563052060125356741048062820998498168473235349959436853829545649842132536377524883824802099429464574369440655040137212627603151712937058379102649518374583061497395329406518596765927886517387270375312730604862613705747082534845773695740454795595655290460060815582382550984246659848679983585620410192482956722496702511942340447964899880413198772263334407351396975528075698204619760846748515778060506123443835391188076788275780093351331642822270070431165107135102681953950352113134495206567215466029243148067906873474064884022435855234847824279574127521410830169426094642158059914786021451135301344295081323927639294626418280091391045778957392302869331694349532462257153722136644529501186639450549890162295048278517204075833487702203676254305477691356289606936259654275383408819944922821326403141497221022158660990595644756642378722511585463274636517086943715280318717236288956198605054381881438705306525254512963209990440115807361864054895369705425754552819583196253053442788562043502555213294137725259719810863612491022358067864254133465360031518966682568623905875236548931580394488859396087624783285143225280054638526186890034048487613781962980401064508063407091118506873750877256194349835197375544437708516038889465370906364044421335739244482724684690427266880201009076528078630087913313583191596988134304805654856702660104275176265692305573037128123243255457649175686004721270559361043017443207018600047209508713871033416130919132585976801094740152453914377106956238736492948379424423726436615239441574170516271997019659397833817222752445519445927883599883514528460169077846030130417954874054888012335442717910696070334961463503234426098832530449267677792688693980808030972461574618428115694297940978303563385447862983007111920197735810738357414631587154163903802898011202096919161861182010212134543941429472722204557430529585106176071838360020983725025193363986248047165750668443378345743013168321340228991640623034472112742043065239894314981284618036274441821208294781783992804369539256417341419025413890405163902040300300747624968080469438667291432461210574287244317516199045066502300023122142157368940623993264262103292157132931438877281465507978393228772122545192938626266137478335065729832406113703460361941861707913821665024388015643187052492001062208643244056850151070935768860635851988369283143102691258295945686913550975265415932606268946923215423742109079768641617539499894279957883110082023042531142623573843663386117096694035927624978681941627242194157894690004464146861712792347578978228034377946607071826808520369494737578581774911841203461296785038187274414829380662779003139622329189164307768530125053850385480072557523119536774804081202503394151530364677746253137693761712825674330034503059362800483571999679956960886504380264024991823196514509067504273686708194633967363027003917485418485349774470561612671882082175894146923744719917010578817835801187653625580659801549461911311298398753946147421183023037076030044378852397044330540790946842591297628376794533815475303833902598625676897507846547826593608429845804968950029470957668211775485888167494656813423923479933406818989150388061612551681639698655896666136351589993474743858349559160138026547459280789133617132358804149254441390401097836996020201985534984075736539163717858418120502045020750097998886387793421954275488127547752503038969446802694880860412383930723887386538299429222918675893905470461028576572259609549362173705838992827877782973781825962754756656858273103890571320011458015955462983416430856667051625829085221950160675257678462211070924307133666199927580855043793934952965112284681412395470089130281024916058215008699650301310133902168002231532028157251897420322184443402173277443005306697579283428630273295778537351302560295820978689643932021625216271117658211972453102118653014625346678302270416221955618947509365971186060945534734500675378333474061042353200128334587011990007804870146590279104481211985967105113167873292999548245549000424430527182279630336025523391368927397227569949769556095828495502760385249111164636966763174798327166521968377304075062674933920707800419048759886796257851900812889679581618657078825697220202235089065203685161131754362024343544249576007960445326975212750166273330968776897338147372023225983484371171236089732285329756575434332453470728997715247241080291089541538085885763119108016508777961960249030737660103997967065925090295145712680453200974715741823657625359213232973618422974419046324866530227220398900620024839908494454351493688751759210633787039824287516437028614418694270029022649128756641198268766247500643014016205961340272479267504943890123659153055936294789526979739136236076666762799980727636057118875674474406924891819894813563380151466279924817161448223302804057172566386545807462549133763751543861324146116032561691767121323965503864823986591029267585683518171931705377556813989237661876829554046146345277928574527403269626395690655548726278086535507738495358250860701427688987418240239549297391603289872401050803158757212249152481844906723277196483916575565612199616134678880128039992535262722954708937800064368426709396178451699421251232648235347690569498285909190264785707563939441842116208123576186628421165730131802499510965527997590262686203276519831048332864946714851861910967675097282906640283836410820017385209162873278965311135995498158083431307095956899895953940656817845789683499734185758600984535155832720603537558570463579737445907333581534558960695437016701734413688584479664156247861795426386361400001229104610165416322310085838283823167430842795326634309003798872394647887262554959368385502185637815542866803249647559445905110828931815923468645557448326377138201586836304936192159616138146763126672471473738213422985167193654891783195757340548151509171764117640330624918305101300274225945364616802264851675857070587515693825926558679162141827096950655790062394220431101086055661364297936383004914881527404708971116875102954112309515163809655374100740766023283385127026326844370784242969647584413110453612561241507193747794356090394384804650012566657624769837415149367404759385849093381032500912225261632465378078199858110484215832568632082938642878174945352753734776351975638895484996043243562618520926342464723692813905048675628486564923137907673208498473053068647552685535774152367660720940222732669397865406480579823390578724615950393392974760670986182133310960631652708331131318543652164747643182559079349248413959069101652502353595650814158495414819190294826827373334882283909379536517070293001061637545877067712686821502520438953654949076995992662425033019683549418841123363106714753897869204869713191202227761926427068097586678661950666889183304878543633274576881856865069180331955047390111706798067349682209347033581327502977759057100599255453312429873291498801474435354982116201761719636897600635878437235537428360268267380857226039301987159699702500621054601137114910193729662254395358759533035054311221955091237599286869970323630179591993104783002824511740001032627118367286637263768671639614388477816541149441126936930550765657579441101374266460634616845339367262867673690068627435031332477373955121141654850089059309075708789129500401287354941718020138276256814760502019825341437347487916529132072051844189914975975127627558160716679691684278291532046870262516658799197775849804948377031176109507145644462877921459606085355497584016603343100507056810176678033022024434590758070225665978810433641920391082104371334921443112328594259798774325227857573639943587455530152817793556495136412132250119327995971305453330085277348780984632995689591064330691170753512185441825901518131072910219941949828634707405834743011801575241655098708698416307521393899167001078660650494774970427986849860770777621901303962647635834655086148270769151716963330465284296932986141517069615419372790571303322575906046413582816582045715603088070489085466463835779441433881318109042118232860973276268638917026534113026271138302336033834069956497321577317609643617894018014507792815240170692881136999926198600245604921599265376596063479196654314768406985832137257612505148888252883272210076281907606650987547187356346139489160008443885843121284722392589628259649123899749730206059868696571298756772871441815632048059733304522260341317463899076546619246154459855608408820264603519212204677844431378475993653000379843737964861163918920204527266300993838896449056991747960295220895744018339663987307564985904278707959378983983148793943540930850873092567078615033200334614279149808810940211788851655428291810802237876379014186646995076206334846247931237657175862879455209059017336529650833480869873128194748697961279928700495289606521801685255220769499522482471635501717989652363811010881365863691877564679883966910118756800565113424077073543032686457040986721876879524430471323081357433356810007602516753431214057024839826020809142886269979207903032463380171286765150606011759175971579809432245082873416540326421597056784594425380531413943130683072263408852104314438661352310532144532486514518597240561038114115978055535726697441413304069397258458486573386480806931126489169098513328540256232207075438189415293237155329445871994851743759290316655841067102139253886992149193667888435238069446354986604863766775836428374242747721023614748566248924172120762556626061310717179645642910133547045451097155657650369847448672438355440997993417786126564237580049662307312998295375471500779494059708487917078495807413626168989623116547409049531573162436126552175845397547811212170329768736046182604680688968634187169619281675582861012189201539162442012405441149347240903126355532621430780200337616831518118283023134827621370239152685091953931421527667501031284425246429769248614231912079828166633286202501634912294777084618246860498082690384550978626121606433851139929126912182949187834547900189614736756947024022050201107598327036604814405453056104410056365786369754282036807690104375166928097725425282780892197282039600589929128210419193525180701132328861137586079905353301929635806585011939967265584551931081078504270697386078553035065795825086564394918723073688408581722645179197298999044282259802517958575283017743319642069434893859236194746324496254276358104067031716236973293547580029507261251910950436425914364799607417621014540839659385136170981084635988168262783988322390021195644012026524316308302961869458849627753406082340962549811500064975481814230834363100536901331969028368759052107696707092225612058394062398938210047849739065285591200831651540914960024209470388498708921648820375187848109707138148795753141448312562403507022168027560633767465555313356502282633846631124780326161975652653623066413069808041906144420099686992347905574498925097182736087449019354973965106579832064900203522385273943900038158196749236484214482059584940701867111551568840784236669733963220678094044613457489514567426400981102967456369594973198430116976855348473291110888821446079147002546740613987009771188403675413352740518196928615802219613358962803713803622999054615260801046364822329109016077387694965035397716159230975094722589767716653548286583270072770767700040176615448991328647487539099268635236063018272789543069967262791632718304858754313101755614151586365218775360703566394901504074980849289513949624265783582705950064298367285060782467416721302012526777756876090364862965350988308263815096247201325339200960306195736309472095580183928420133786226163093466252729931367328154059142392414925142968444067797837792492886123600921693680840146998403442212705578663250182636173129378487487315429424622273286997185142314894797798803998564445665048710125629359244539158298726123803588547022615010656144180825480571929165583009435258577532764702545857550269266819799436743830819878644374741652938523757160191619501219050950433993024193784968847266118618975884683614784137137587544974616985833638699701539797824140912186028560099250948627954103636136757209302798695416829975731513228268349583188166726868019654351895246467172085751426349550337509401027593146682526162096639187993300672063238934990846592644409913493442962006531749500560355751310603429614702889684240407240802770156089218783260952497963141126448700670149597722469049617762897465229162007211051433565249580510085554285883449104662851146060966697018037848045690799429362562795390441981674156552739148737135029414871093391064208906048169486660885798047757841432380699770308627463567279801748164638903187977597417734515917768103038763240771504235205963204109246499866193442320755460586131400945823168182131263691882216780096333592534586555800457025265818897207415419352998990277741779638921552256306594222503846943318229152760492837942499441087410231766646895720806175861665514558178647250927546959303862994166359039115331117353419579973273485547750077998779185834529824653010317240902281686422574529012826514317889235928364138995222260193379784939686209323450359923294826215548943819120832193050628657439199190289180971828023858285486889404038498740924696675265036393316572993080381784981161449287385370235662495850304754353116869722793086137190745691225269590196004581875124434785267817964476198165564381132555628819999916119004452698655221103977132248426826275477567743011503529662928938835286618888403004789619224911198642766045376332056134329389114162397067038653444923841631836728896607832098664900872139536190900754517874544638058961131089915638946285947402992188460153642289182935599532677796470517087065005939933842744959257042707688219973556214749356466896690634060723345442471832367644330193392273081347018440153090335778032169232657799021045615018578882915511735288466980227260850537111081612156959417027677707580094976015727157627434016721214226202535249504567814639797711245732008929088339424544983621408751192195145792673297668530191962195763997206424466715439812123482644667502465968072492642013437462772152895333746706942706226552899153271913658172428399416463516419041503769342234556828454500657999925596949612663021748294095299564461480072832448399417038648245225395714348847260909192779600297549524596900539881057467480936891249172337181350518070417709752299642089905874047370604252079752651331118126442530312249647673306780463637802882707316818656086929213555770131045568329287265364355092775903967889755614469980359599442578555439795277203818258812085212238109282164626212184461224987124377115529885984197549015859459615733852040791536560715164731631972828215459702708959891621587219815149912425952992659434646653865739676885433478053734671692637166392295658275160169765180695859944444432978314930576769107351342231679342141426832916130603942201318513645050015530900081331402013980967167819018038049842050569105881510528200377364245091864115578971345465240917625878554022535365300800525341665213769643656688061312086455975814411677733220117002926296282878183621083928447277650915266769112489864781577978068095379490866286452252953774749175497433215943968236978593729379357115253392365380435762916171628081494385059151248505159125155790865395345142578889433671059977433292572906454172396166000519270836006710013636984861677958468624759096863912547829127912310024811985142329867623364755603582251408386696304068659261505379062792601314127683261766966085957090072075112332442966102719182009560612190393810487958775948707279139178076969417823074004172631971112719222100846136121594731148422310153797696160370142299306679421535102126521011345936986734360257901242221085935276530326691904211288759288536910372180752571163179902928128456493791408350815709458305280501900996300228817470182929858731919463572874705941482583922269358172372459313024420803671368493974797930278031944648494712433961585143583154851329980956440139607051785092247484782099302517364771265204471399245899774066202128646043406225533322679254367540829595525500302466880845835201420967505155530521189277166260829331603046116815360850375008441146354118343726551093147207691984544498563168257505948523503395176143076151823258594052115590849039639998485329805335619387252674212304913789185772074284976383777188589278384364888205680681910582580125801226145053526030145510834866488904193847261406186579337572563539001972825694954026783765225667852111790365523204151192734544191428663694546325112440146013741018060137675420486100284660303614478370010639013856607430615308830369845641690680898708481198806090317535832806898223559374647330194060857593223238115230755099465100058277932626133440108242965584807744398089790433383681745981521379873261977223166939556889342065848622001278250507713400433267107708529615711213262622609097901193038060828192001227667313812112662265038908287683235593736750535347443179909147893628678085149501103766949133205265567278516838198131158280919334863490806968306402922534412981947960762466124753885901436944481335325684659417938608015814377499398931978357998863982846871523720238853862784199785253564708935836252392238055878846867595870505812789978808112755699975880857841004708641216553670323974337176823631465168417397050369704354255973039683127599324873046175852697440300698285692259835430598109518393753951688880896529777499018714375665286591288641217335359468127257245547787801366916330291604176979035945834245766347354620901461129178116057393114523856691411380424899181178979958072952128971991684653303438796858810424962147470296558364262540038589718322569896552738447686967919974322339888207762039160921224786661269464092658480073219445637171788287790261876865837617733072320009169061783509137211076441161757558039123852536713573180565871748672152825608740613621767055218206270780235644330623951965376054471768252431990302025306659435861642602443137730530956278133449206232011230418840750298581329701078517627591879793681738161465989217410977016617872737371426985551035941031106187164781396862489484289926115216049330916419293603477774857365867257008331265514496839537872259429189027719281398200466059924304790240766596019303712657522382114492532943887753153345414182263405189462781279289652408016597140259910977709249029978503615379405380092033070902227397084085789228456867482792129894598391110530647153192818112749615633744271234606175258700778588957553223610881475194255406396085605623272212774366444618770384901397891412446018474717081245404890770180671114931326833556330010395754087203364709706478596821551635439355667264096075120426246054531627835436525223333726471121878102388784200432451917151607387470817377889986140362287854776881048405920686905053919466523904603259705085034014534945687971435739792963008024269367849148623988214154816667541691006379057389344488722492168968547156339864552080604182125712041645022783369409485711432456760405956811633425167921137765206528538780766232287553861727677008119183478932921058437173498729315507404502080294323281669403132552903785906435904463062060810633476028150397315731851715019436057654700829307043408882954602533479505685115030054454432742949644447091377563117618480537689084203320392882024353720395533633012727803452578357345239488058682553786545616941654656893379441809401923484034589138402468951687292626073944702032897762020331819882038332980073713547816985109031684652006231176627756664829845789127991586863878708095015082031961398567953567987491956579705562949863115023136042323136771923209812146276473177347215970851979229976462143121938680618386336581868019208593257496641018610861503593582293549957100083348947722304008960163756806437548327563018106362486159858338402930709007246127948716747939348707478805945597629783299870182467481536699881418095648726407422452730269755847427672452536144876226029552557968590498118139781568361449442293701921732578248511337649983173323749367286269847654845518722197008003633245883781425384653672490938437569427854647774204228970098958567676642576004755353903850558542930890018178223917280535607753020432835854738611649479852058224472103605744397530416195937723794112018403660982461562194196333282911978925439382223890881779570226394904779745014882366309747693405433173728522445107897871019750945939142206925395397023853100114247925211200808114597668245543071729207650743142570225495455475636745131361080086340555402669129934761348274160376025574198064062708998118651663826316770729176704566633277193755365493874873769555623506886294272401874544235726669166210135105052422631609232042359653080376671259020864737999115917465487760333213740673714420862335036181431985070784174734767505446421870643132482329650041815692172309967046425037888091639909647275685995650270040853773968006793382127120866419520964148178742636000273112835564288180992862311840019699944923789479684863444463131720322939881710715134377991042000068470008655281066558656396795211813878912548021098908579375875458206440843379538559716578011874386608231683197000011453959094874283214086844081395966770119438506899056585201680000711861279435660418695933189072734577423675077258305175808889840010831615186017843768891755677309955015075387961452995748953645622226119304732787161069648013572373576062360866401231811807908984821817203768610210973410212626915540342232866456531423454739502256126288769583257027065581494871112109191757279315724372914320802176294343780329765144174924491918684281970475357228158483035118947823963460569153864614188368622629396601433635362841588799412825648249410135197016243602314669921803265882186349790430181438018310825613248475991705625645014409297465677312421487493107148601726132616178866717470391386415454991140721533394717968376657938883087474596912904397707175817928488976134026798469933125423143842329405491369009230982890747668165817663394237816782508559999949292069876359808899997586465717931536540416223370536531255087948130513777234627426506065389487092315773115028497257082116876960867878960994270484876088889980362488180366326723989756026564059536436942029862087194970789127633969222922746391714764078132894173616280043374693715189372638611048863010120846162380170790523758416151169023922153943685287423552191215144180056951942936403738064980380359963275465885282004369835586262426743697190475695325548057808412437882276556236375044972458591759628502342511863752907020618621562633911486622754219771177254517607153969460560440322512282031510302757796749276563442747538524605580412222341642028118253740475118553982243886177773969533090853895425160932231588610446084770439693164007297409196957703336531465770116349665680031457106893958707637314887977722923321549185886143208549079569813856273792174298757162440584832919054395249813703227376299551456775070746615317153703147837487322121729167886772071904748213698519952190322065687917725053596455905133712982796315589330270687896683230015395549968399647574995731703345486662742440130518100395803969249966035823974445969607162613963912881809529074482254559013474790720811122708043627546341955582061509975593270904724367741079099439834081004482950065222465010612298568840151181119935996357955863731018489214975940079015925758215911777446719516133994664226751050439665257385470337076543212651464985529463632596563373858228377744144919376121209484316408854469734154934426222640673231208702665775556681020352551019700002858421984293073350175182283240469651863281651820752325009776455299044154043412160681069069818688281083146473378162905493509348850015685141137204759409899521501824249974954765644970313493025199737406641497660727920939368992249088235515341276010788767818138427586351001477750894249658372249238315177670992299062913677894428631520055709615563280216876637296748402171000654320204472703227961799452206608782986809100805501244903749853046963653423856141462121915355648353736937180857517763244612209599364890363364706477905811354466691969964729928772693069964626289884171782685016682037819828459303833380264644467480713192392921851578702865356852187404271549385473067353027043822975058768604770370279868756689780165987007823485871735400658033316388977928169680759721012407528302251987873352953902677733823782103896867635957049296308680348304101631854876344633566513513389336121812303687778704242323195320840642632737086241712032516439668958400068933802468066134069430858376556159996256553763975361092494683326061213155768684494591864035532620675973310640228123118885478003749316491281330452458837573399668749206111217910382916431769420716232010578478978356336764070802557761863470934010026095980946247220370972244960181502160787173041295648686018610646799773067329520825794404220940077250355037454326944446590993815990604969060792589322233858046793916702877794466064827657603214405999998084594052149420238602553147299035539225561201418357971383772817370724850936709715993803996988760894686620691353831783377549969095782266221880756209339227901119600755392971383058684187074696658016121184883623603710794071522812482231106812114092558971860691301537735371687455906173723273859226552762764181797873009905756756883620112694189121627862567707020652886551795467238958747036226171504264681446771189610378226532235790016751527150069756100741177350301973652010569608568992233357950357955358276226476668019725250164750111691731557636150476994054825426681241754037188837232738622902447768522475308415628549994352365074576241757300439026423877024013675879317105010200566328686643089436358727400707654227513377853149969275118499271967902012527211222329779851550408466633139755755620900761922859070155261029996327975500309895656020694018240828672219210064426289054125977825398503610413428836885769504684587641820376780410612067629605663263698358331599580008853097255325210297298310010057539904623117284633397727493288323274029446148998333855158480146981510246513581018009118103972319195002735152384900861077595616352581190826936915113673791001474906115894423510036658776164853161007597949136895020993869582008204012258352077849878676977732212319905936084925651173660648536472913747156170721139862115730624403332048020171440044434581216479472993989721428904818191638967852413089689265186477604508632366613397350880778114301018651674964708951887304934125017847112130310061232060345748770796949889296513727320217717162004188645810046018168131930256142347379296232313426120585707528303242180110931274448379097387449110094225177745189132303791157933553514201588298498511460754742790432199776402646513602696174702346410688861099637810335021191708602051325876542618848152369393845789425799974755028391960978249685301587952527816617051512369536561377966033291901276321822319311734655557630341171120807872301107032078034342090492661325015423198885176771936947175388456044378576659296313484508295966924489823368133546866874572728537856530385351046795313463039808981522043986580054827844223608320777917375851599616249149333509246934362174568660188025633718313178936493823041502547727601336551855811048847770024743474100919934399637876794562315853981868403084767585097917264889209243154867004228913915022568002019103518222451225644603586014216821957862777221487049242913178644288631530860505607040577840197426761176399544514167044078579192496107512943184094315721779640313200282310753827305742173944349584444716214203380902288283757200606450996863005548060694302273269565854884790121629513982880976921908226885445391395266379785437125114935681054482378954739963414489200756611295216740106882650013799209796241089461642685955941433816185762447398508373736229408760766258211075768994686175141956510405344093376422828313117865637873553436716398090121799958438357014308030163697749773046221422351925374466712934290736446996482575238124696116968591182215187981538658985826637591924113039420159081734723828026512749272856314389292420494675361583283272569172064743296521831512291320953896847283792415671053394094483889889998788685349375497536767097785226407338838599930423449091835718297460614927063731645731002960069461216982820612049972134217874248994802526401012993474711839672136729856629101150258336544632998062117265978954845951012216960321898021293755756504572837631343049293505087708128921206225664845187591658056243010387178215362793812486958515426296906607593340501147359808945823371722370364476285357400659574177668699739830837438654181116764931121293704371951135834262482011335759396076664407161805982126535916987661904027964710572252158005225807239843960212769524524637094449150375782481141775822168226258933797443497268405547201618797608640330955881528408957479907483341878950539349424557829430043575753080746077245060676001900097942233998853614561356916133331882044636700877088857192765482366607634412189432234428218468856298744683453418967094688273430048442897546956145456013399697072843375149051074924025239454387460144864409505918262463064148394359780230568084290518445652072707043717242549479135152600844165471571318844174563628850617754890341373590282913409583560684301054101730345149038577215605146085107029854327860045255078658111228893121265899982523599008596495821468387986042464826221959798720559172794680444339764902636490242258931276108970004210415412980043543784955446565415701451248583795695491375858063711688162113131237985973289535514920002863338201471038312756373004285709204076282691657090074566760970376938952037655495948265658813405990521314229935317642391427198248996990843841740174787709545244992004000872906844502155447423859337963484271831360445869128635933605353729973570620303373916704828934239100122595048951521553717336771248259278101729536137717390120978640002717506323791869949043636320064499374114574663414479398250036387896183583372431640104619961570388753847370031365879206373316845382209536447582130903394969234687480740692388351972130645875659583149383743621746714747427178330709239732127877097878850733037078294758310813909495724314186594307242230813837744977624865318731088523183980754801365943323992896584417302396180636109547961941116202079860527331410913619831961968833811971061601777477078579174514377014986965818056717019171619954529649133287904340200960518037769727089446084918664188773555388991179396740580877640397696616419309241831242810116717243799250854352866116476318135434546702199345346381608651099587461863551530468563969312454334861021991569812610448919647157802093172219130176147671402948758860976970563919114376783578390594667616226052920834405397008464912492879509043807882380876722628120788997417582671168932207346491988827796877632358950671003954587900908161196978806809965321636437493329812787485399189659843664020084162966494931222439956731592434394052799158847794559396032821432136032150445740813881802889113352686634956457590815949958119336377641264356845236511182745607578816337951632700670276633993051833391636544312733191758063548511367367287907030086857521666619260284432232582062925057724030984466131352067652277098290378786263142462126053423910833266303192121485526302893975341341755959848973265224847327724898809351766555917757680257878727104893530898467980286583020270783959555292746096498820090118061570644601615509282933895632533880464760038219511483911049717013807210204751386685669362308621115420555146490868730020610165650201205050800066207325100816347271761320348378573549211722591898684331960635364070242187663820347923990154125723126373117342097383210787635789835426240654674755462355252015190806414830972033698768108842792605157082895947094018191540802999584443465242823624571331916136888640210039844318158362144467742406133909913858193421151088003919392312576239541878952732721835276512906018714817801285992186784982588276476359766834420635477139756199447873635627814942025500204998889249169664117871927186945020835933796320883055112785017794050547457572449896991235328241215902720388094509912576354996681433838764056358842615308276547680352065623739254888385727433785883699217912615760404578169108928098874760255829891494342079706362755243441284391918082412246853690959811928369424176726197892474141205657260262368111628624653380368772600171695772468338516030391769725085541594869006683108273271625790396153744761909135157725880797731374792627791738952960908947066146592235507633974982985149914643383958176471989108590705441329437516917087493871257736591006857472063403384298782477194074241607237632366748153350591162028516627542372166907064890776680668655521275931007720757494500160217863159474799149240737547324976860201915091148400813432500911981882532977868110110698425892112424159078468261709496150379607113153916268684243527060889699574397348833201435985541054777907091487091338454492970175698549366348966018469206078819923817680103242281923812185741755470320433083158868936040794489301478891449198858756858610590913638175343168071764351290805362662585213592760087298445049746129817363233352890935024849551767849238369009779001707278349809828423039152640475086018512165655041447088331377783915771615027394074306636094198966950872525889278704967899337148342371511199887925547543430528896449562380844298287248197195696616281448635587568197764070237854521279896580075887313604880776686282630015610475949362915748768396360250108431859582454448550434911103540980759308975836367334155590773082205237036054702111456374970050931409700920735521276597098819920347886043765559957712340663513554134847142404770511745694143398271119240473498010061168096432452950305385384995343792572277100248830730612719349200209905372950654790202128996620774714558672659221720292747542918148966553040550996526968029863560225089696904193867674850393336387573174686296713082878860157864736554337952208661024061123633096358679458448798713084074101878458738838912052458796233464372676769933423621955494213763507489174898011247870756422081418561198544116141014576730180051203359824498965740357022962177817552663650288268397483337554168434345431907845435203034558659990748395328465583164344264074650888039941782189827664701827707879747795407511568898052274286286940321177593979696110839441198196751696775396192381446087182645676275567744106198093486859866804394903184264874067167523118105320606083114944420894860368425595242496237384190116932487781676529816737363323132723788150473953086587893138224979053208765933363806582251574895149484386520601705315264454156374641163917933431036499179690251196935969787205294653288470876437634873612033285424236355222650680544968465852759775691571586672538932014944466301505157743290875898079088220792263979430928770869830608628154512892457387827672557415594054370031056506852268506163846435993255678422124793929523605904927004126727681882011744722894134187637532273248855133207757031865428749983338508325206382047007725212742513021525088184226187427165710666114939181799917081958622940857445343550932625006785531320476981945770463299013639792011155860293356315918341546111035331379642946515591757930116109843418354376154309786541005407521639122269252934992576176108718530654591502396498893017181555821934846077902263958571003743519858973154498136238509249243974592488307340021370589723942268593628749936549884947336322465540977749856372137989463857330863098303051118162163850729168613524503598531724973396307396931925913655770484935046964589248534515756712525613577556628997259172532604816938584670603243219590226683028401471639659893573296108984886494100390362201268585091003931426920119953686198992884356356273047004214539558964222520502778074813702785852749765380604332182949645428158720477266368790942586700488010283176650393552766848204229051558590013335840599402880205238895140296737079916630477430410735708907207178308894796090017757909705536126345517116015428925691760653101070450995391797322561517591962017845570462891641320531615165737659556192360531145163079455099508912121465198417241116870031829916689411802691689849069185890764206905923930012404953792417165611009791634020993400927593257380061682335274596554902644353583978942011669619463668719283866113395460115543199014473488706699133518318166268565688019035567542207970202216819285053150858248824985711905987895312861220507372880334788617122516205858220142598088778359764907339321475094982439966432325549552610380706223852079809427340347201518891554368648296517235195076006022973101617694452447476988258569412541170386267584408135478948176024858921660616288430894511142782438300411051892619494090156156194282749120369228517108622507419724721880857238969841740718222740104116408242204591282381240149043388857442076829762864689476984751459650749767758323855854532438601355358807740136994964364311004022952121045259893065933183372405729440313487631843023640019722529290594987990022998848240392612678415761962734926046894439402488712859530503290842241786837340475594056355323894224880177801480755167419198003205169394056114158534027503618649759826492422246540883581494565246685962781637346806305628569366307185517732391538971111097576479304502995671950077691516170863549494621225704410907860104420586384464787554334431630561608679703827287137546045550061459382645095634081108611445840716722424221126766872722367924828705494837003853428532028277599306789361832924112760880495629920058625896890093123312054871670469365583075472712014774796039271616377183648327147975283944664309156943234451527834625004824008729361651320613285953340809079595266322872927807937860091356132291354204805671262891084584595509548934715723846502197840157951241645809050680400222147245315434727474539269069951388265614268796948918024673264711029780002655044427909820235666279907423735204785295389611743633648851760884784069129496417432993184291243320115011659585379898080968331005613490498312267814240731324400780000150445553422445886471975726989344364795852339181784274164370263269032785079298627748009358014659769307336037495904671821363951626696291935863841011653555213736807787380181970636405410875517444790188305340452786057854800002692130141768768748478159926946561363990534832612835809894602045155942224491803579877728500727282622005280986326201558128006223621399978993166896921238087579979907108602047598582009616344884023864021604148285004792703433761594405340988273582302990715130050125617518289258256535750178678044884472336672314784915490281434270747815038937302743704690415816255966116426090523815828676179159582309964912318208926153923676805514321290794725556828492408559716059388529963173042968952143622029926676552310263062685704998589454476057377927031036881667521995436534913789458599030391213463544207347087571859931459022781661559930291674511017861062951473652477156204136144097862247206668597627107482381373267424238756049453741934497741122319439499411536922008414634901311790700316830448040370864008422702861726180020107302503596901259886620242986058029675894878644787363925756717834806463143513879952651810676175938847249373093770485131246190320390519057760248938188637863837613625772516423608500380128027376630507397358814566233640796311231924725092757048817114881614571608014283466156566368670523348010580264276386457962453231479675117511734446783696234823839252979579679511085528544857444297757270343246403990218541618345435907068564492497291126611661110559114877868697268051328492437760323188076489752070296069505612172450917140643098175752875316888369847192039512005455230848427531669463052665457078188155728101689416445253916552099146489902450022146929351176264473376552335455525859110023312076245392261198044558843684505246088909328518227954778083352810942305866544014825465236692396016724788143100828697177425962272278060576439837195002087556586222591668297705057901164902403637928709509251752110661939945205859265915634686125598714696047879239513013884039016452321808741118513894515815515693414665039204450920081232548863592246558548848759297219040342436273373990280269144986382199466738756690671655386627033771943503782636069211389070341267844163960540117834936542662174653488294473982312813712439957054875570864208481702545079451577931686835768691078161725711132699935191216067022356193820136139373586571727031174502798057812494327924787966127036638676121781854429369970568966694240324612299024651145262438265665850909247322233887375923877178362424367352273911454865878878958887351550147790751179509764094337121777758932862802081774745497494900113784614745987813101713239232108475622215905254157201890006761458190904307299445627164399950390928364986570441539617055009949571077004982343490768686251737393296209779417620001820467030434339834574870427132790738552901624771649802336843306701210343098786924480347810341292042392019960947585064695336380620901732906614626611098441302444706856358899099824284941022947474443807791125419614155402672268047631407483342984799094472335345669197896092622922310793580540042321172803336669397377679334451544482788850596430077928424029224141996609577169076061668929441416444628819005402443282606939788116491160914067127609694509816782989898354095727694389610175485880651687277071291974369928063618926437503487606406427771717447173198035641440272376402573740349596248235383411292995966372950865315871775415379832814749954161782207277138342893532663065474752194750330547070431296837181058726036331314842976821594104797317932682380360777093519284990694933659162864897453028828298891585159800122419866342319753412098688776727990760161442322959983161792507606622953494195966844447890740503801059956796794345663157879758071439610440112196164462983502420139118930592354655166706461960967757429435795301737192829221901334861817942365891443748411649486862141959938298194452686857955660304538773770484915225433247504258311167925836663971985191106173100428764966805272712503162712538971341051729865777903880584940333368965395957813736984246432657163958062707138533945643902174220177052820073668003394732946770173234671347365191855229534848262074249473494342660471056486231761465207238069482081717630635951436118670228929340502758970531566817821260004789274023933099187776748481074020780726832116619216133583243077872403587651149969579850264833821915144914675994159625887309512679606029220104096528758209317777004397282363414350448364975755459455192246419959839300664556275017551677836164005936168495153353841809883774414841337789276797773609976806149821633002509494079394436661758081534640361853217504897439219599360837417566067627398441237157337164856605210281207649959525000441481260491493619016112093329473317098917338058733632279854821431306254746384648842119898158389630934986573149187104798875877650250308700682993650968253789026007411731150510082694084302703858255078942883817467885637577519422451799524824955723145194212031032641536345712713699436505199306102506783262747185653255334594257315847588067923376915741413764544103024541087809137007028514049764895125069403589282039984506126770875281553423793251469847392835564633663628461318742172449839419037655951732776666297247155817599893146107149592790240618087721640751568082702040590100940082105073711766974605207046446137671973800090337502430690703013482031276184809339277771289167642214057673910812712323899315553976488861133016396158278544267590530790376534380886204491123496940357196629229149171727849912495639787859587952182877438987330754296376055877620745339490537254451602889916462873377696162861880077891137793257597202661929831610946367666416693540497182933446753433768380084387275081988343002369750298099270394987666613249430316066506709808448263594132871380160081280826328945533501868598558440447133923974023482142930025543238438204950756512760679405958945767450590330713646680167012326936996053031157675823812069789094537864145069713750318809613401001826341509123774106200068538936863237265862807374801398549945675497716049706821967161731970518722762147338893512723486373836914519681267114751214746769074951430628391043179506911828618449528609304398889521924405727972387737728802684903603492209364479706448060927879689059641359178872243019181840492522815048056555590094465674436507476016759944613387221201810420032044715906470631467811783117040140651442306595871571623080353154087780257321833967044550529951353435951817419197386878881746002716969932648083243023229986627774371428683452626149187743471438044098413588914427629901903454353337381078453377380773456720570837194221282225704869689794821312867421684376582366620430485858011600679380049111563165788884551988476298593257911760130803432431311618077963769053483613356578907239815004030089473736585639747224157181307724553514607915023999490447747012780723917484928850653090842538606362207175924729183430110716909930795143645262270375460004598398070332373178344379972115922208611001371113598902046755179516494518210665114079561729686785325591041928067531590249262610518903381775774614764494725442337492984340455538885169297955889675591188088557545236721303702419972021521672364552588032096387334195963070081393514004665558648881347747673241927434588487901860701528149410084315572616975356552775931600167547063725042439213915674306916857245330637080831499628374448092191486682657220741078349609487173672115105601465944602153498248067928470182564545174250058093837148195792024086171639525897100141937776278401827250545601525314336637508115871096279411797985435716165742766829465334038351183938481448303094877192897287626641859848812393422712231227811611355788181327014175050080223805764757894662082628005134202207274182602734177391224476702997276341837614545905443816129922012070171204055444478574466330544196577713565527965930451714147640911465462352079695657914485506718252492960108475454124144065797933835069262880490980690900974952060885401528167420627380116557840635852766750740396572041899824702659109730595558160291823230059950022628367495667151681700824698038172777238203267740407509100226874413879175687154395053002467439963606392078720997373132314821146012712272535508108555719556054352589658915488997054061868942288427027324525615300003746813283647523177980523357534148237666070217928994581049722099952026254611242232874715248306875556832186753621934402410375972733452658852766192480514645456237646395045803098553404503286666715277282703360755743404775726269987851965805914178068817518675075503935424834661059439687499463375308019888713072091048222580050234781729068831536727026274764590346269854716376158641965438069376648889202202377131735761060617776256942414042880042343869652573218592900574321773573034004187242960080845059569535894581101277350387269424194261871902820850035834455143671677472749771629261373541334591919271455889459804585682719936197196220230247469799014502045635540112391324985837977660753019377303440592942921743462654286060341443837559722181736659206647886280705265820245621004130609804259884668388191003478664174368153898769338391826225219036065259594770613030093890015965207767188187267216640084874312009650649770317708820444757892708256530375273322899556306515558763859686728915409546825961114996657605692114602464067809052270054615668263985939550359913921991670098737147671276343633952768443250659013393078067080856026115498593625425242426454631716374086726539821285991488419189462333061876856200743464942458655266371909405798038411007506426304361834913392229255630453662962549154568465810384728749214558883180192211428874026556730099256028752973023499921972974699408059452607645507585886612091528086955264191153278689241285801894525112737858739957404929862782827675012920256129857988655186208950891174626659575952354303478649350893146261739935293049730915895479985159130809171222784776653020263896125422825752586667248348494654601139348525823343778628398949000976645478256817224240514795522735934019762404653021121612623309544372635109472476515557305736763689076447806721792190765661379349557992657518886370564477413785171600817313501534942909203395338897462292868282969179145475396846702705172430375034731118740373353258358812952523249521861795857457025416754612220283359829432302191872279919020907895433583280031289176223370144815057965563476275814716918057646142241738207621070823172231808832611051397877557071876156935160452616424821628115203240333064378614463160606530571209324302729810356748661074272445645872801924097575987561059856696915220958027968820599434677902006578515512744535832470316654034375104046234021814757549372772938846977631089787452774184038354481454031555074690855411759906027842643415180677885147822833559222091720471315490219973131786441972936677598441378501753899633414362077371400296982140266039946339336961167989876267702990940609320065349301406032740147362336277273146545707901568149893692294397668028015739881072436755962254351789001644091787729931230694073451217893448365942300482281352154680636942209801925710602025010299109757591353151469603628092635160794050116486419873696474226901100259930764662877749352787637761535247880970619863848101234273823610430120134207228779702504279955620761488111034659600633401637487321474872685595989196675000405834416829547874043228742455639821963217956129513944769404965097147608881258520543890057111276545325860166481774548832350574546041573952639768442600559493262184044597302938268815526198542841025675927106812064207393205728621546009235346019591142288481111167697052113205095475034356405129846258701615708863306829009360941827837804465854189873856462901616013286678807319318772769423341860290283066269882040173736637969355357785894789786580027013247029042053487676001548657394383763848133627546078763120188533762947671810858490797722573831037609938626892045991318667624616613332779991375491499722588180161666173127208456207686191058343243226154863992612810719939513940107542166442796243149859988416870587233980179275352549922611695508288956962812538168295721242756358362906195197487875852436497935593959525151681972476081282123528983567612442042296038740213715416340634405896846463591298823503466412867392878236514813840657850577067913140723427310817350774059305068973557561550417782887626090347866975091748219717277897070530984393853053853434832100533992832604344002294790149674779777959754145596789123334191927856699911384709666258726633743593781483206632853798456037574117112889920255330101973046080715946365327686100879504696545921985722621236878952998469324827892737479454611151511781217604947175170984462688131438903597552688893890476391857059867604315651808230035062442869137481482531809258044154108235148270331956337754366499986415728137258461229753876292229552666783795417242632179533777281862433694959574296396411671326096789665088900770420591389774388589386048471392631932923308623749609619792427630750299208524098419532863945107868245162232327288795087481216904229706118832780569967865317203178547398583175256533861720348004930849095488020414510977306668425191540438168532330775461475256120205348784820915024774625263651419710317712994612457397747094822992554469953721028037938192490123540548247737809635488502147586239630947133512910218705417898604766201376232706275658069028558086536907190607821142103678148558183294667601977269212209041086375699148802732476740396482398819196224724477052730201788994674774267757327133048579587518079480466414314839152779907513530807491072386746042826034796096472381073174764752880840307399433217786928319007094060325048467405991573969161468359374028301048481461948930060973252717132462455266203993208964960978328153151518580459516194117680665922426235027184236664249090051626505972832127882460305992674174774719291316270717704005058670242011734290936175856640562802699316964478711896579780394846851168846933873646178331255210134451448895487237611112660894270045828524170053881725916749834680310047213946089015466833166160805635393759412332962702948653004022223492208119300576457240338430715311623556079505985059323752370737689404420040182797462095080540290077586399862136505479629481667472315266604556191169504359412441632858604202148711402564570656594772511594928074080695878374937454977323464191316207803156850047976408259339517298863646148849538080368093265812218536256073564607411561281529228286541430262571219532353442197581353313562140241223516177353970699076157293984965641540423989098475363089447542883556601373306217619631393548810888460586489698691224306639075909314629569677319486096299455364327928914126543486360446308524794641799916628157685632947428135278038646603612003177807944302407200812184086334201433963690475236050121355227307147733430809533999459804689646941936569910120708078035103784886394694421853576859381112705783792543718572938144187203405485235890851889860412067113241121241404657848248408441662800620130092522875980531483499307677506192409083270992033142187323280929171888374763998445655560623612825035522650506538440546882080669929848414053173289975818750428107013338173809673918438489832940343958848211345319499755173722950818652332485627437295847323103406771425077184180722112064585387029004480388535031150207904098691734509673778147735829127779011873236873138313714339739687828319818023982585979284351219382663563006389632156265285226538293335823220801966697288676432282927695735606044144541461119121611013098615986565381722535299084792990237303804179383712088618556612183509432281283031716393531410176188616308521219510671140966765058418089932619639303085606551082844909337113758315457466879694797954503337939801802034378832196089823830916037674698506387410521729664407044827718629932509580719078303150536716338430980923052194058195534118916949217856570483740744516846200381660516105317943595518859969168242233167095933314064033162422354141740765160653854965810404498068627292873197533702634316222881728571425548053447547647821240539296909720127174603506605973166081116959305532976456948344751877594351146592485440380026840299929513736135845393483684727753869690672917664008565640695234851630360838340315878926148558365493550672708746159939193827939148056934483495771499735508412534452311995073144455756842005255734964231843056884222855535628249074836663389701935895173089902142380057529729109877213136130987090064780323898962968553644812972871400465891183343907640969125513235125196856642082457297504307761372551818140370171609554937263419376816184557247060367282083136588052779560513567178218013125775886821866984346668393395911215994614396709415325576352472526684011500882308978697341806796459759490916639604884959181735795125139645689046128128756666728046493726438110430695156716212881480703101468590704996690634431148602210842012845022080797931276061233990604854181871687612069983115156696125854229508159353530092570183138160432701582213006205373326117906807312508643857443199254152853007940365140221309714395521408075326923019404158333626574643527939447646622587581535234989658669591354938739574274267028767621777119608288511394592546920703467629573676930981406681746835536520449821985617900247936646756364094043302528353348819940702647534008438761599908122477938045946788114013484857741507981146581648449286946634364248080345889191612411657828522042371229262060406306171062285282347385761910305221262675647267163958324255375904409798651928080466513804376216891665420052308229661158748005409033252938143408702285225089565476257154279712497373743083576579238039293076791878949269766581275723533548759318873625378083080635757661019470511189752569806584631061402896761408991110575484282652337199316174048258700103565826504694814598733167939681168445633086590564751977133238032969730910164807751315731989586669681308757892338372719818841814903610310164201328234730529889535689712992793276050707636929054672699331576582328751214096962322778317775457092917194271076706291399923881448795166386846487310969997584946275838129668364424977306846585538931014460149599978526890544353181739103348083448052319317528878959165481558602605249415288511588629728698530453757417174233803807991912927503057269444723258234429464384112740605189720463693689931112715507760129864420062665833019984443402070436614362226877598471967736275131522184189521099260158190694089116436379058255786261346261067109467721978279198381767693739863563068184231166967188758046487824490057358184868293648081370073808400051351646574754991918682707227265315393799586538918123460429201412201174946424145888716736398023217043545225540947802066028190654493025312803095836831467588500652031765398260525483027052822389763990179407506706517622246517027351456376283020705018629723963037952087130448607067068300180658387699616441842889629537901712883173309957327527100230920743192894324304121666752269510838280620201634399637444268534206792699250093167125902086076657822250180229909190857292393511762920466251419199293135490833444478951676435588202803461219208891610648114633613130052053998974920373884122841347379060275271532796936797656609731503475374131617445482396704255717520899999181372103836300218241580266548822867682495763431811437094301278094442378121401880149059467597532038601730740373703202942388088207721120069274957398013225244970713150318049876326348595065266016449471255814554961924710342960147628379726407976877715500768647323604507192546722614399175620973752677602001936649162977932859587697561633277172536448223270999097280901500147738860521037815033347438409371284021501781127959681368077934795282865190201243018176406139335954008000461505544760911144838030523072647605961538479659612974860422687163165842746048052168594433393264099304673569522884630467630385317238260490864360193452383405284879656027901722480219956633976258530507312724061736849885787001084575786752161381564554207544904740929710643591605538703960236136793896544679977117034813476967183440544626453194839340256932241838002090871174465086694632612701571198475359137016676601868044900634878880292141301490630403594389509071306971917320010265506487797168203200808484208908942495899850248327162992105238579955978703033278476566502161933556777756021119755093697675184507858592565881206006503882194640592646354112905784897214959116636060373300446085742026357983137362069900221765905220672469044713079108688400890937689123589404883889667788539647873947592598319021555365933980211402312835650443956751228701542482653012092371971356722666096334481070038332690317089590062931116468705813524595488078125947908516251564177338194470342552982846833117978690789452782185804041620899663050785522650990604914293036838688822702903058797493884109497415376424302178210474080580731684188823880705693773019639043292045834435607531200464786643523260808835190454162452779059312702368446323095029350966936803898444185366224432115438393809355730366347822298682031331491665598124645727591581942862063320271244509566748511451597053949034913699149986778631647828261669458930368946844996134330757904671104362026571240723965357060986025207766008828171065906950127683500398221783734121662222197597263977014581882096256062017359615127304305428071550050425908633736802537993583948828264799038777176526852975075388506678906678292708027212955986646138777164179720733461791694598245594953859138178860572280514938022240292467244328948579301133934858139134626371145480294469024266206022014070287907445397594856942614947463812372780501295341707272814553839811109570384960793426800411395672404497996216139833685129798057115151697801454027250430629699070246692910661589261123949433954143604621947553481486035608066782154427723291945267678939971524033580695200843764223692121489401909389675036258302427600055098152712360640557899586278899510448481458402922414736327565769997458066102920999966021465340675189852727600447007631125169547168612648491599132274741028508206721419353643708374362373272689958358750352128818169342534580768877982372167470333344107942599926728990500075795873946030242345846645767331128917280938091721615843769535047521593066256185123938074994214853218986309039732939083725912214210359364931277394772800547432539729503403532286780140097842449658887919780765655010733701784178335932403817827413179160308461097948240784834567850798018481350794616984332313851416956393362104039755272036674533333445495339816748813809481162963738974726449543735232818642246457524618094040101838016466087603886244874746913991113394872774918735960626320651650779291357793782589638440326016017679583420759308017924031135294711087938958127890665334885151212673630658705598770841157416146380320939991107845784418776927364424831918199222983519655107960621173052179967327264971886394818482460588123334785984304025430604003771407868170520761090984533742862292534489207640798311070066207262398652502644869333073453973293450264345726478636432466310953512313023244659127035243936432851795074185820621211037992705971180611033375100301257860679536101119075967228268854226166763172186124334362239218868382190458197018818747112080004671422863807570211702066141717964701323237672729507901222134327972095397748524442228380909295458880804465471058568318805286534432253192978473008013125191011569074233892835630320334851308506332768227968130850406983262152560425659925822891378773195919626165345590194799170069831134870380969341955244242431027188127313385223909773711442484175240029633578121547832571984532846050558165420914159028400053732185943115306822390965291479424301502547048128141961879927929474055956004159986058282721116068278232712117301754191583162839160675150212019390865115569722718322288999663066520845620399285918724281138360212798658278534473407358448236268553870397248254017395894581665289681222885105065884108373831272153627066028446123386498964121070791964034176066733328939110108412662069755015072120611131616912031211145594706755245633822610626988824718687769788880936465930194046253367355977913440295576878124829416465127022180004567641911984653320827877101031863298870983539039838105011337082730374209096813566677270856413688198586957051334194228776841434850307612535836825149179674599176735676084716095982439036865033482699881032737816527464048147412738518275505168324112682471135437275040870346739569047864682265007070710180707253587696171021221371307608501692177681252355736691003011568588373073636567352713338620109572944897565359138184993409069675512414510546368309267451348946639667456907718056058072615452079185223871612531696948979924254880364367616188079740218632087389493381267276997941170730151804376762184254846151460400338695979491303851733683596684482983374096739645991374177316069851347874858295497470947990220944510887464659929024264696716546077160427553448354053433643294131211452359484557004768029058370869071364047103403580501916847700028723498438176987070294830039689848419099844117211681351853224565572384528801714786398907751706082140967241611890129442663142807399753329750036808893064718754256274982916092735762744395489234210181681622726679741219317295966830269005718005673303883769367806035896210804875769272895642335476362097772029669386845531188249576607636725745366472539560617400606061088610864971676688104626665955834368264786747579388778611316710003851539267779657629388224105958018735165751643902429215942027769197069526304750446571921943442049530458589243273878041211767363132328221448281221087012552183154150704430575837388966816431171664290862355327676747199901927351871609290254051786638392701294191303222040880031539548500320043909100573618674107160481791899025566501358321118096309167313562906151264507333847981063193093675758390955281626480729491789909401559268747097490482495704176323951371050045040653762238308480394883709688783544090818974350846768337287245092978748593527767463166100192306086781014898483807764093524771854623780472532583202395500373565537665645868232272821758093706826159050466511875114149051522419553090263043212015651159010292476239223195118786021879868873023682030245383959483138486824258910100023643557228694210871306535911178755202733985236963650408624643837783408895138079603051954702969009861796770443749950709903313324817014459931305092351021298864449473404278038641117677058185915883904984752587478403750714463067294179995966988012911547068909358972737812211935979909244905260715918705198960883154554443047166125485370016067037632700225810985141596116360146585731906353730183265208957429743455155393771342420891436041311475516933525539964274679160125931935799877497158022798722864649652012401217528365141648503891415098214390367370078224576720960215724609623269725442794374528473657219860031504366918525469585795376513381750372665049737715643424617129457932423995947956634738383791792012229148263438344347269846632109275983801989675619609595985789981547824939893242404739318050044603072954919799028479179192865399732232970506415904930883912061524752408307037426089702896231195945450287277960800025922180653377587115607575332149013646064967706475329120472940939799700298283044275199857869525872544790997050934391907729337316358884675221835223689763304003825246767724242337847120953114010363218896385302439852540607394576238512689808718551512928940716281202624293244863345167869144430760622576629468504804250794920751083082282360557094010840415466106471486619210140360517473140338986772386241269861260797688703759907371130580392345289124606796480199132782345904103598178895310314226838897096249429918716910596935690708201209214063337882027191210770198649799765651518421207281783025144459896520734681473736438478670483744217824865134621094596314647815026113199906966821203738471799816296224127432910336028801445637061306975598312897348844375559249065720548877353912327310060228953738886572672079047190891134643633883493809916304670522901815584909568087035898400551803750690930759022406804578910853146587782268279422811484020749494846872934111169994529230761172969953877650559750050850508961875365127690660613294655125434024366744449452077359670720846313165121714526106598422150117406366117948587146720484542303464483700238656920518418313250923096436309595374644475854428757892624575244985161906262201860295018705772745915546364532357905248878829828229316966801056087247746848503108465790905508574983374671274358945783371429517765657739072559504624728736057846190691309130699408710228837791497530492705735898842238681246559126800889597088953528162942479306313505809535061958260188317934112164312639780324141247179026107185735674830124341245643428847422285367320049877595146358214100646751097170326498043168432074012592223302312118943109110637975113122842958086058406550891331720424562095822593231783180116630240925527734045635898615302749775872878361858202201583952844825625709327422403524755046834966754181423880840930115496575950378761733339859813540889310197279057212881007273381098573005432802090919831231393892915397381295036356780690323133283339661673972684130976741941015373157902872358536897283707829024152863534785854268184344716163566892558872728453543643577434999866338043631972105583317277604664609736370426028157132251494438479161024873070528020919777557673269378624665872297404893791632318231475631469790605710430750095300902119129051875347543247643753215228924652291008454469655446855099915884984084581224117280061929642699060328527623071049602708189128126958739001910824501084779745685974094733152799301975422948702366982899361464769080479095140940705275049111706173444918119952820910010191065641864903434471385073880867701174356060979808097147742844923534668781972886479366575351534286667712233822013504213193283584915760392223127756756767522239573570531100789957119579553060361767129989771906935747605443244924004437771814435827799130807298658353491627895218271125763873119272460487784381441955854628755327262183778232494337335663004496091732816941056382823112877784961509427612710114627669853963351632177532229867408023588723423191636590400985973988220789728333170797071665953409576429402699344021304737115793886579951452478296685852024357230004519766373135283900084113797551558870223076890749221521375830551377577681785544324170614163274765166953139454096460776351669210835373184440089606787624780245029229157438177534922646403541448561504167883169476272623279592435113802589927104440763158988769465182655784403808616350721899659600931465490002140138368178585067085224653562838035662115054791813288150858541267645359904092805441938864689998235671029903269779393062919072461020294113526976533239928927438139684648416042652433785332225045775778066947315200722222367285074373425890982620773768868584744373774931106652315507104074672465457674127701744456679857330256247418733738767952471562838043375164807893561874907408012300515763461068332110710415712187700668519686486607025617861606043412701571505528703070363103180155342207054022716594275819239167354850507220880965004026379292597963405448716851091356838956677291979627699505470213550510704739142459533252102767378532728159969850816072875779222872321327826496204725049484548489083772293358974521846188470635376677793478075489477938765874520486844902355882179269871668785181929476566305668633156281654810785943715187105586311192248849913973804409895152838688480364439940959234508502014231251404526498633026833466230640762264144985615343964376036421594792899109602881244433932113080555283944176485019321933948881934722165220319355439245765827048277816270165138044317335540007894315230143197207307068239708796283378136658330015047008342226190242251654657497444901452827992826727119683982316401909102933415264655826149792223383256698706912971138513960383175432684286796244294647829158632967030045820563857368125936880896681238627909809858852860696296872185215880348844488933423759988039856961040291175155222862238727096658352400027165477716390606397426663173526177019380792911372549365494636054956903955050006172262345688692492797816914830536032212584422296795983321691116999143638669970756334032609692705260482089894175091391058453917003954066848404773825121233808909103523247625457948345135441710135473896859438094190615541546909166832734920202832466771269644133245431584972167779663691706704263032202378455334367449600469281743007730952732433038243987645219438982570266224644056132574065784529544636404388385317733237137054415251488970731122811172166808989119591665992120299932662941357630491765300871108729793306816679887882696510135383090395726507702782959711385407886656192999397135893326271350437315629401385002132414759788061708162319680115888190304104838618217004228279857929291632616181178924805191216702770115329646139038537747103221320239636348642682209832577879674269743920529970871995203227385720277536172123313101743049077140904662022477886589132785583748176959972613257715241721516418701722140861055638073591717020566451253473304408924888773910261624496718451230509209746947330853244853314996262928909153198983454096767307556581902312568931104793709268110318972733433428041508483101331781026777225324400029722954791627031512284642068651574283769567606481629352187126784361710844858028883004678993296225926150066534639892176344993526914025232129023170052377877310433127524718790818051340878071063809880401111905986068031056401277167440938754503044272152338311464479995635822056026963776093075844616535051477700104809131772239789260508710783778227983544369517023838424704645259168175742421186503164011758462486525811287319903584532043688892448680006245940023970446149606089060908779113063181885117369422395603079394926180649558342369878740415090983233153710779171946607833555910998117056006006888890519027861855607524446485026649126815107947174213732246380277782881186225547681643424551357205995296373987780567594291564919910393694348398805394017649426377697932157002114411507504952837093641096227339892642314955292671019518424944556768240217266228218712268775875342210955206556864152932077562791863347666581145010918007067231021428143830776881189692021806612185059741131907288590436561952493095806929389557625096512428421482441402317122290885889123654337956505609294102982019946488843588623029750327923963653698751991717681273643373470577455120759212342341331415790324607373282321278400021333292739216863774783536316583500224533860087471485930256993178851907332013654386007445428538053679521711073696779906746394561964782949364569103457584295561949416656342324923913412197175485481906600373838527360362717520991767584086769483542773172597964112248187675413065096643176295004561868587260495122044301395734705335337247973626434746660420880612322823418197934978542964038940159000412627681220244010193147426689395447454724075592763790739539333256800386530422443701614870214486657252417256189133998887879104095687832830176807926989594429448834553377129181798223002759863491076396327510948037040387186815282419715789370223655455838356622500689204229986626894562274634414614189267174770921177315622262167057008256334272166087979752808508859519376906764212956351678173609262313191202919292707718169530564726332847581226327815789654748428267255156383821145108013019546654001510370846414677649904291768709198939814994670840959984168617794885667734127029201765742868244234539936962070414800751781472469743815065162235151544428225398625838938083112846502532705031859197766021172501806999696582761821973793691267313839859734867138835804475713824638151563409781012999388320269067751586763569551769637754289421869086264342593232671416176510813773102213287577958759551145403459660154609001588860491157664046966937320896507358627301413902969902430266005524337587680628664050065338533928340582883379561085070184567926590948770217830395172444487757742044939721795769868868783240597979798958871766409733875971167005189453703827798899180006975195251362638461578213768192693152461591099194506692233546642135923486912292491171697942956743427282987213757274498599741507662520041130897729414635321718535799738937722432162339019044321440760393804701293718749999280859338228059118342318169163636129767512708759975604691486134138683826057674488769886240815520571387528932263101593757115761682868121638733861071182430596969248509936426088712860494997630594378854600259603124409995608395251103996750356742099899101771589952304688096678351979209429924378767518817637893000557745529965307539966189024313460576924575086521535879684754374260557420435282838384237563181231368554570200402796494079544395589408265771864359326761968003828015099615046083235518476854854129002786275951440470446647999981105851952369659013361414707021802730322958958225558943874233072670068745562835689755418331961875638527482233429427381468996030832465438261174455154459617710610606223079070923922870214083458189538752556118168015815871440234357483688566738963772305752393772423428368732421473623799334589484559664020459657784984574240920539238411759898426928880684613155267929610628413127410626084838327735352445926785855165443908189344675206548847189415389832245248768970619711479053054794563276871123828342514336468802458498425731944280262907537228742619158655985864090474820849791595396992167646405565583636866336527665121741328051669146354221616632717943167964254431310798443215786876999773922809753923949225511747601101156342185097549126854240153149271219297733907885300810309836779007902427195949940121369262959893320550311479816377753937496332323626043858497668304330785314396544186378926619445180348484659249876979598140592161278588894198848526289487619091785627208050602425637735343004912861592657153837364033992920189373971779678868385390565672477055282561476660996963582018313284358934477399066783270101353918975433557761161382807244483956678742716789655981659163196981371969496377972252642876446868264877065694039359724286389658675705182206680432127179717640035986682814064501715168249476054863661827054687441816669825387925423745613960346268622782286628756529711143471097622659428833143696263341363060054579990156028066901875624398055733769178761440985131756723815722384804186276878866968722684952009434931837799617092749340169057074934780748096121102362118465472882499324421487482189049688652362094001576261078346792089815916514273927882838807601526051095485678369705071389645405081929455052506143405268786335568673492848163579462667414698911968865140552692286538513735689591680561099133868434141558308364855878271623612903689209385804168322413349746292832077902866583914426063335043415393543141109020092945530973025134422636105904890031980314490074252668221852631522662681085172801271360784116031509265900974530494707876619704533856273679377613744001769473206513206347161788720804711329786350095327888314692514833164141541536402029889307013914472982736576501416207969888138501485492988871399102279168819214733324030520281629850008956383153978321304283850249395150938494948561382676943094692777777541105998332057602710857301216584365279495230941792409435164560302767829143487448737183624757512889670951051668141919725731197844932012828228647127537641665859802625075184770204360560442436722453849532721178277770967332948401888807451446805257950176610535686945547419671198933432136422243263096454200512905361597948753733002406499905073238718116562233724562568638124247856298644540301286603339741866499697875025185623234694945032243845554813055877259982242994731582572192299041811804878595996523784506766339009050628302225554127395113465902464409111236476613397588974205654173234306203494014114140409405960328484033450472157383337339476724054826420417754555070682873294363105539218992058368572804560151353558168982027218949469706707305977951760048617702252474639102888321546311207667011131108514789168587062792276714588643312225191283617452597333659158456690565005953502163112071059600736918481385088962670688638196044539390693189403304866679457095269474268223374588173678833528295648898682077994366650785671572936265537516660145711178149633249623031029274544037124818429658825867279821818192006342501395303399404845143019821924169092842887072218286222758081407542165530100881505077837753655505325878118434799011975967826075428792944024839392738517479713050316481047114227777201095945000375775038443124273380934351617362176232162373382603566370565467549289949472573333853836300321716842074065890070923706847668191506491918308493789606639395903597014449096719678551485012698429059798798823667989585313081655509008345767605651532848949443832010802050783686447621864101845474742936620507039973372779364902404342418658492027158784177292501030431030914406164936969609696136294559164709447613920374564629583853681537365826817969007448594157494273220176352400091861190822218348295594186585836202250424625417956548129661013853855323844547650058280101867759183577712537527928813942896229326954501434910925686469133240864878555279891754097186358727345998546346453445573681940834327903396670055918673362690528352873873222089003634409421174999231581630869528372307143594741175640265198602612710270858967631109392381789907695302030356368276015207104221875841966107032758362444563077315585587317821543066964743755166324996909792734154053395419626273896695282610496615718922247874449968022728942507481110963335399524184367076299559987348723359363456196885876414282735785131924848342532973546692797752531695631952776982843910743381371576280689778438453850812775956030462674946811247156708029544682325647165932368558546683813226080434097639915541317050922877174160908578717525204088370450038310001699065602927149511464585018096865871174621106519718110518210857660083861446549787945065802104586686994309138854207977668435617938389269541622788004642759855295699074244020268701837500577471792984155388483138396071301082192971644313449122682168402677243979464899871948624157497313720052690330605354423425417689966837850908731496334508513272091874865393392941053798980935103351075455784294097479465248030611176797990915631078684575738224479748661652422769653736217277496504225454324706075369158210648118256947718379270463057577436411431725353530776949740999838155164349066757425840821736192216796492541263914319896503771687071595310471946343040996444928338875042644198418975485250338042066838048465351706960067353187583956009770555839948263451133097861141563767553928383059739125818632190935161732991611438100120325855013262549208135596826979697443113193155735957392054848692035309566132022433371959119336578860249219115809749199671254237536140683876182707488507147111345389897299849163699039036866020240794150415256183827670505295782834884254718279332431672685161376124338654649209132254325939103065836316363652962925321378437818768089247063582967198679482280812951948269939240205185711158910632233952071225977371350814276174104016301930838238971616130689166667728441556914479027234549939254810225725316072166006261777806408164982056678816107338162628498957447007749470768825623275120191675680302717972093789614034142570683138320089713388111092956331305043653839850127442422096514679164787742038422604833309459522177741452288940262007788149659819236265143559168504572934127175022824684425528015284828510679981170247442405076599164482386938514550284464670087269565577400004829972419286896820511236250719791136354508656992169210524841777068320479000372418386281470736422058041098345102067135436639952149267632812364476157352621805424718647589991528868611819769174147235246238105074849993718452103011273580934386946603472809335739392741067249222314598433402682420348934865231941896584531194350820196868358649400202732849569880302513294675157805439747047892316288839948264508798371509699794446178380178795789688069306023836868727562571161792817100190550845920582689787133862655206278366064124994636479160572858664611862767703218471337498657937500436656753662895130053829198276598859830991675388099528331013797799127964435718917443686939643230296695641415129535488204518085928850978487057509978943194177663183809468839385908348021905532326614778081063290156804852391049741864078055431327411675014967610750075782780420044541868854160875985081130993892785412175513424350166961361658546471711516932687514718259861503918291887345881294789799543157741812802634717267332785672339646135899928413035259057979474858266303568307015735800772545397089896360325760810908502523130568725664327929532276761460076272384886882060838217890306483918606242065384168110716979510106387621537133480930157473524541399069726123176846176980215800375743588765800711278323657294490211736442106348956890302761216888248391830220160669527016172858892473813044464040005556246811621659668438429256919981695902582727990273437944137707029426033370792982567837120062718541806610201079582792296141271275842964382515704203291180170208676265705475925959490006601446508542756831123931822412327556242819441870399789381332538582692715567490721079842699984384260962459405261092730170922998936331755573206368369246399283267192985099339893980831897213025614858833136683303263405251843247932349845798890070969648169186955871910166045830844340940696509615042279459542875820143647630982111616739813210560116097578197620566325207518781276540149885282448821632665349715630564749734529502428998147715444632882815597049723262991956490199375441553853587819077972568692926221043877623036388932159324479355326064215109190167332949835256814821714570253063113059267144668532486883751636526211716412880451371356431042163488315337815234354061454513523338760010896583375688769405355849143919052611457947041250873117536194225665057141531354158765151844965114124106506828355088810588757647197321388118981246845006262014047824966497726545116185169047167624985834773202695466962295033466491908462899650168734123424011373129286487134773171120221379392664305944633419249602585037362091153996422450422286392822300423147786603834679764933100764598711397991502167080904922625033679285963669938273957088037794601995929011155791744614868655564734300760169904310320781520658051026930566739626564210889293971041521467979820185169226233191109572193048389704680817549877455559256675304979309414709039962803100041316548436983776155356243553206194164343995166102713288731425215591412540960086421951245049239999175456838704593266560533099469921224380162161269219893847046787366189551016481052333063362768975145602399399488988044869285063930798739983690748103400705365829681450487220344219949310418632896040465975365142633630856227150920485975954176968686726463185787941726508458893086567627798003107055371728098975461827530912893037054364099071357253485860332828798637361560153636669791455133540151191212214610380124603507860785009058410612976564190052697859940878022139084529576620989418918053624828352702433412270579282499165891266807554051058666967368789051198947838362022410584569259250122137541544079989627767728430836574110360904624070280681639170030159566015596560383396045671870785084230430726966662053638649980439218592713557992869224279746409304246077734768954100066546040014858913113409354048966611937584049600005191988126135581538528142982210102283165870506459527035136591071081959373764040901150213035645529937792175579416794090827226368732411494827780792261000258096678042359483195695767099315210864728599096116292741242267317382907255122015177759353751811268016699944104473852180445790020534562483112766896991749372023115331478857221356931271715987242795654779362349963867675847308245382426973477289148457902510171510507158498093459969244038383326281285791108318732987741328103762583200574086346099922382015908773514199608795405170136855454666517618333802863878776859312191553765754356047706019795825967232174873068731819730420782801807759137976577672793308924932571144544608193843676362093597676007195832490682306912930444109222100200632575000291157687985082518940048154641236041727095609231424666523990902646224279129182288017366579725781726179726737746019723996735723423801318173091822966573371406078968542095543185691557030409083066767523963522531099695611652980169797085471387116679376827998996036659924556756155045639578825933703286688370157327337889426424015917860669358444282480357231768392557681465736139249791068785412995480817981374496724536990222895703901477694436085627173672292010837045985174132585597839006766270761070422278603180953913316955707320606893233090279020018511952085920819381017026631320347893929452187197076887775530244693373551676739434821850909816844860811012039910972811094935707498826464386022150248049495025106389739666887910064042372040418897213980897948023121179534882757873928698134828727551790456212369152766789336394776560984266055348968098230206710473302596226731428209793493843850662223000476208414988838478436552231347772187877413316817922351719884440017207255316933712900426480642023433438639324499574088071933769033484105310338620712660275490594954685094876610663075458879283068321094297421859618930289001408376024211656552690893948516585669245489590677036202821155350034686579423193697181807322565446942800972698771327237264928242168547113373607300477402677734828015942097886843908556484982755662066617911601106261715928542759960411259834800449368764203693580130587903580143353079884921254506325965084356782200972587228157427280892490761336572555970424997760674952279204150941761140865378963878308323762733186821045570400011108829848911472085984427470833244465260589822983323469088248783228741048079836431423746293654571643150165304824471224282786327953974609738926204090785450412836235312735135140008826761988569943225026314137844786655770002639618650104140411629132347142317232635834579179522511315633642685709146580877974674469526685594267181545603355144471011701175235141582905285887676860380507530772608786777831642120012474214492816429082004157466749631850578741362359059520603951137232383717146271718113284249839107736224155592172413668560960766520709418301361897762181900683994514670936842991372520721511732058879903209172090262825679107267366789104590519891922674943696598518433155835086069739768455778596881231222352679546121995577504132025773829172963776664801818642464597863578891489245488646010211905822539208912851214600735780380688237553455367214708026845032176463856373027761452440641538890452737922788839173951437859456862167217453986012728512943071377693686168985661198646526217622685490760281134758278344131108682237110137833228915696856557275465692280873492375744164113313070003262416258852139122306419822280809952169404848959369058225478559389340680126771546444261542671615075854673775757046899926480361579231398211821161807598664839837027538831972622294670067230515960415435935765020447249041937214987529963007951300167485696733593985896959208449581587778498291393732199164032828314808454552985263057953699645695273713243849322649298530954186199551934763352348887769461679928161007236266447603794920734443068155445677484774789547835206831760995431131307913786280267605894845565266609312729342303480342055829458304274312986639887630887364697040218023633280433049173867895433293381799577690784060514220299280240518632577051785904181871939560222212638344437173279235052225488018075760930292513386241687986804042424248620086258306084680386143133476475090766711679035861991515327652921777321908486694870527424850839818563524042006463465303210728584711309022213277454317990673246052772935226048713325935181888562485742869985474268946601411693436211269374282000452114117291333172381477713858721134050835667371437163172592714382619137129668880646148412290793882927279206618141997463377148555223890473200318615096740330794993911399956130889978915885523705319656167173842688467901520679528698860122737845219739932163103691169681788784236762338637132016385072837913063174748991113287272983732553472633649630931047445367436403954344292425395879721789585577643907037026906656435622489045189703525500040710711437411507922137596332719845718280373922831103878063503993135390520396743357393363344319146822200337525115634106612411614795722681028250844052673040150419670101871568226851186453892309892766118348505364862851292880355744460662283776031824617891913399695629883761400088169352666858104759128442132886867206879206038453419852275687295957952603891641112339089549376931210274731984689010606171672540224328224899347100331389271998937861425085352405764518936857695474275559426000351092000636694502977204765570146113010894918361488649378607104740808767229811897418673427184150260903048134021267229431421763125511890950658921039989067205416300748923550879592381241883647490391300648174135374930422784880006529562023940037999330424240543022059422238094785864100090731124506030363138055496923856240840973146426649103895825665518103887013898833241178825691245047560253738867161492549408335489437493198252654153270114887610590732118003655528723388593061521220525699212025001195496012794292885528525629419070326724693831394187848492576977939172271082903238180066363745368917431130035954233898684828062520198578036932862498368693743276515715707218115311919238246079327836550032467109401161917831037561452873668538332046095716877178025009099810305951801988865188774776329499136541359671443612936089822775434231671382554115801744225481097875573141602410156180895083418148594660119616907947953738780502062575110534819559977995815753931710599588450492541393442063351832729957845656178863160024425625832943185517701413571185728768266557196283667463518261876777439266720717986393858964003977997614006091801187187108838327049102234250670426716720359842805816191772527401089015327738506626482500623889708735127787496694551717685919742611186045283389596135722790075054681044687902327880778817063610953596780923635196126597550773056197695529080606467228293212678382178945594870191050142236852203662929663499337019752282023694369718427994440567893256609388343287624982592157154114526807789161672752370622945394438222461765996074850351037167769015409899153423215963051092923918992194628733974206298085655991499437934583573836063895681077264353283732513972609260727578121131793896393224283412511694058907288046744459491471561092429258203627681814957915633615723082436677288301942901283641651307013503791138865451897919056088083207038428241988910392698019374035846457484448490347990464238706326411148454649670333002564104409640130564099774074591827619356289985685784511655527490288910254740346726307728255390248498071942680749285014897706255116482325316427719527475811477990322255559409408485029853643937955969261843627406477667903367828881879101362980726556342429199854323140594482514719854118948587595107172453019600398874018002135285258564553064628907294292122162017857968718442802068518523713386460649277065575559979709962357625665505235333556794692469114857156811082378368228747714926084723258499758652251526473093744488829313077054163223770701619342349746924009995633971862186410113558355321501278690394343119016023221889714178361724564670815743583958325431559014915418795155931588605704735374049015840266525832742279158166426344467241854217669363194656149527748000958313676808661042178271214438992759341043201280779857281561475240719343050202586607005320775893016409611210791101845496254497030334902882671390179314535611187610832396501451320423795962587069639087574415881874447982030203167996343375598330286358462089423100175450077374398147027698499174574018889988600999812280444308786351033040442221540193969187147855329315559260303358402270687157084649456873210462307104102693336145800877741452807529581265479833940788112335982763264679817938157622436747893539728648846975470440614860386350897736648015303011844722767051279749105690593781007148614934641810388971024355440805937141080667256806602305960311351554648265618365311508413364599926294500043378263757576168350034993482190125637203144047499822892186151051008626417198583130392099654018045989399990890483620288518388958644588889802765213186818491439686617175075858026744194148133105492784027254073729074271348858282043043311783581734838144387915977423811119859706462025674800585089978664950696984746365994430430128129852659018117977927516094760651941465668534339763129824207564621565807144770633677310303037382011605930566783940102399877090316077908735993943416051243764615885363103798115095277544210364799636140576725382575983459919016027740263041532865380657993417549000764610970237441882729548761977024709647272397883287375778191125130066267779176942726992765696786591460083346230528456584010773072869753678694754288871726756468731015180879616550146485650355387879896683179514019322793308646926352350201585873043193589988429577651918475276428872265131231468944984523121038020564083531970722048131445486103306453351660281703662657939157955406391433842017340980023418593521979655395027466843013297948139301485238113121199974977130765417439519508848886299367628356896010580567238378038523933977912081370216340499678561691817556584827035991038400862096020537576353534437480138604336873101205637890296627833639174539325998808062943619069785215375839810628420639064105438102940774012664458354290144795430870839834291133890918753993158367805983255436872242471036732942627217475787469415133097916867448860738831876799169325950272132853537794228262208570941788560612041365420099163303702047196295365191147659620169524360916385318206331009971270282532309747714365414078852344463182456465124615768424022800567563065685607632060872050032425511120927267049524329573343587846918983531635136926438812071881322708197980403678429764172623540959318670386525864233723255446167909239621596767856993777508854646314573617846865111437599680221363698735011230096611013486305765234523106050507645566911471881053331528458966459720412354251185824933898489312124508008584472432825081610555799481120422546080234748052460537165523013874732387146351445080394208823242307899751880824554140949611276873671249500442868208184719234870450473550100802983323231755058664108707347937719831857392588509340169939636254674799241581543049220819271641483866544124377399640093947264434943596984775793078607390317022516240502453783231510917721798589320403028149603834626322349601846048165770600146712461545896178738601914458171306036146720788597378455959751914593987470937337011682877359208657137206865358042815609477517752968589956202659598582612753357788694896833253634850081176736053913508604835290285913993641811508740978923925991972933596187193615001133550409336342267146788261573005348325608872533325768144247575463005808610726388840586462988281917900356181902797304869879143561517432574588855954220689136175522091157352041988063768812189845315726899019563723410967128910189607460940478204531200691894142132923735367293711785838585763490533189457851400113971626838082743084921889844640680564562653419299468022553696925092903128746977705614878743490910585837578578379570315618347397235211010306004435095954801398660274436784113678316642373091444804297883467027594418033889760379324766267702668742215137464758523550059277264128976983837630161176112973688871550792889629063929868599529068080080856792458773046031678088949926548678823042028981037667427827766213005404429220141711486595585913597640899990645971362510246089147884960663170510754815908165519148797380163091114968300604994960147842736227556207793108679086479777366142591204053389732217120889556844231876600752704558876275496632972193518614441976254503128119599213705015041842012702047862862606974800020560927616799059024491937966621917195908092882903958863272813349897876543187742097222196396984414777136819713353103119876717677570828130115636580769128808057506525732606314489161022645253079435143776565824501784134561836273526487397836858913054265277083066256652555717021608882785004107484345414936962524761184400322677827475409943247333523561363653580067175673789835187374681810720456180551138662850517199914855893785732686356314515351455099500614070393120020349338812735376562759211101418618809142367988664318638788689821383523188616241188125636693845780483397516360499821617791965905238649813858397726923140404191513659012727370942245795093248427903452360855125060048507608410432061014726690430693864977226343196006735212691474688822524240796796361385099738409630336049068157131982591245087049977116129148425181682280609286119284799948113900114622530059173626096412238986832619894044263927061211704010449763854692957015393946029312981140328180171923968211601414960695421505013035168083253026680793987638693786207620972603444169200389726166773927514753034428361892833665565490992819598697701021820074753071721484763238423300654690007828538638423180380272673639326311699173614197294626388380044723915986932162633480556479545502396653373193786962282616856036243489099504464427633535474941313650168609815635385724081865751169759821658427739005928088187053640639959272555675427972352220450821167790974495783397778544200083073434369506752387511063161240496294854204048974845891091609317409314194654722406961467448169406027395311852765220825726884695599184100592549034002751214952181048689692996645036880893110786419341297487307334303969115355090046302655468985780625216009769412825538943213297168849204145313515013049310296538434054219747398259185323370381943271482678462031804305005392442537833501923453647372407258812562425733806302722750019654723384687182779711903238112619517590903396692750295408221711946394653693565794249719418590972717728303853924608963886730436444470933700294357439960889353057285823825950020469975250615731071167318569700408404959493958821983797112238793254233078825315780638238779532031168200182679717127284444704684916607237223170410367759121842698390638402754993000027374210544748666924014621320107777527027825151207996748856472130855326930526474539603169908858409584414196699031433544474249743019600739645178095386951628166280180688960765309131073462134960273657128496584295622181400683596128047971326945589016008493508794807757050022762204046113848489907399921371698160722905545549299071868561257816113400153341737720588738658626823444098597127227310140959317367927661860153232954827072026155839286390887042420651305194811508100435778851428680057419408604009357611157732737284650933474551648261082932891056134409794226334700475718107304266717251002712069188774836662220587565196720732701537208586394260624971618947204983917724254828207502050014785569539336985083347263006782310202821718144240770298170080778968723538170940111907053154478412397836701209928257344666222036039047260494223216006561684951290269638822181645053340271467609774137591844444089431861126031012724370525366718475875972227322061864205999312872332788725601230869552707079431591317389479116361916903678454711636065752770113541754060915067903568789048659648070921330180895461248426259405861388838543149874660304648284699444698399865512151927397265217928484649748785644807513819249477102409675968515351505351462632875524149437062117515203013343976463793105429352427040778648737398746628102313571899367418245254951001966024171505492326097326231836975119315794318242203247477099977637241798049968820316776537031342946136220248909575519247193857890662059215436998520385581068736113660892619463339973127183889918556911444487363545840968264968648761052283284081824660965241047064501240931590741154554166963349135261313544781908899633593812171784639121072163319994814594504480804972953691258605111449963320590397909385812067126850200050579413864905690624511404581117903263153571887898008901239589795889970075840852725036059765731151202709717109575550213836589347516213254190378868760326961163791569314437648780947248198553109877725352018478494787184085821803714413089477257470601720653844576758558944071385252706000579469257323852105556002298240913276608941882305783262635275052022440762234668800182893341676756886948250419904010094377206038561317359733459996198947285004387776658803194445696661417630185002506487015139727326526907524634656569797001786669958894269370129597485536416677530084711609602901864351172687993836809408339419186885417872481907315242505979077702854431544437644198748424502182512881565920763249137047839115774311758001346039052821408975837167845799827089085008368081973770497990413152589434678215284437704373204803502571419286086458998720804282444011182522584277279834563369354719529874871723537970011842339687703356300899237916028364138883948413479310705103783150494195819272857486187374174380906551474026553670651801840868736628862875649533413753800636184383486125940202180689987190296026893018316958912119202182360968462522669947126632232631480143039236921417620385999390594122013729721132908401831880893466485018012845676468897711738911344767741755538475785849677468308127331448223852478857039154465992860873445302619324895309491800115942385669767052782344699707437004660190306350852961329477812258188205583073229852676878998761023362152475243757856048705191612993719131868337930988703873140865095424068621402688430763347934658206355586079442880641946067891653407783621520303687430559716024046042269353295772769483558869973209747007767203544285748687107544157820667217744541390219315058142968127128445318250628854476015087931262914971027964963846085109080619820567473664090682043573332898801630523457767193942760105238120597091167048606167179774601645731887593898794662664036429544209868924630469648634459541780504722064958960680065923312400093983424678391072905340191477126139285863149024064794564950086714060887479104161133243637351754758803898674425905960608872499991027460288281113882587335686836593726661890955698171614721666218837459784860144827021484760822761143752959622321332301834618723373594596805371093657482893855615656433113066788825001529645711818873615170908266243749407868901717282864179072355696732707750898885168817976346363609938721425881798325429127689916985796777245317765291538410623467997023512421009333572951128477929019586147818051083347617568050138420172150527604397744180770919899370352533971414854468967088934615820217288859405378051666201489582016079055904050286034096073176353760360334058865963652071817997197935577625102290889989882262702402924182018854459777042271464502361563933012756782600840297507018023435171912639662178942028433317654128348249337886812794415219583726944146262209911957597256633028563064062842171413171674731754057824289364555609020791397386780428667146043710760892553766666705344220738310494509690922102027910989290294012260709590696464602717004411115514044656181589349784075458049068394350205475561546078665466442153065145047670174917469316986988379836415069649423846752033708136675592726670929211024473192270495651880091976252726800512998765631402202117581788603537409114733270914045194607019664374267307362713884115059787550833092451306837949839379260365696842861703277792169468015479073391742709891216746130458158194010996856512193931772579093279754028661995049447275695989853887246272204646788886992647617119486800615046724900120743889976177065390304026533704824843482620348079375014680761049239888479128024711026926499442711331778920015588440389623272547729535769389457182670147064314949724111236317433404170591057172934524804762623080116632684943657934004135244350530718688613638673644255056778693028300142378693838508341320126033461271628139711448561586875584254146932142184749779929767411500041014744377236555095045692527298340660471603198703820229511625567523462885358075001919032063487062529314493194934842516674368077314189849165688766005810442150103819476461623156009570223969280354640185307631919297703781108040139287434133074882633404056887115338711525100321965650179519037982033482546549273998206364257230099195017421456054886613615657211261838133231086393942031931035410432522479193500714784631322487611238309835834572198277733888591675460039241724860268084209179100832889875319353844014702192151101839547923482218187800016252528346550951642400132034190906559824635482499285665508198846537106550832632680249694244304976273868494542284123494342094161968752271845073638585095788810415962694140178245098760104832169686194308736566986912512211212461156045942003083100244218929888865758404456018211892497184764241068443791758213420628795893687922666334242193799505374623066714355107696190081565031879143349702472336706759031682748630487235988784544818011911394433738537247768996345426989261830345802810393550058272980554346139526951232728978359511636113201951820552711734042696140362127809761923089784497479366857194650618383357418015385930269868511513106684431014590452367072974017089767907789439566765766794531770591217045885718720969648402641296662115995366218594856300109018016705527328630689974329958722842209749486751018667533918606384493993925223907920783043027640967656452521061067013354385237442715873843511515262541556881831175888795159689934909501895968716359892324274111937906400181157980737869460732137053634696125487550202108584853332997037000363867158585591670256937138795176831728411761170325839537875271423285433738521031715075371479550368420881956475570660249239599636468868961217099149707809150213241409676282072854179470339642892487501935612959078737964767677864106753913130673842828525305284213806937997069018850732864064133891422627763963341210459314976018544108091029577352728002303865752068592823259302248251084554834527103633624988478943873684179226325289647292337340518659646998627993744619347006281545537877934659352824741533763839562962675165439725657342819250174741221618590417941725975572950674748496936154083546250348276546215705434025651450128096797455712322579368843845770763486529349468325647601990876041684178408627650948320616529992730393006732590523953567622560781435875841284299248161576084868987171273714374153293534518563547183263981401977256401920975178807090277111968270684730973132958965136959757630048628298468485190490432670974515243881585203912185892692084320440073020571756034481291007100859554727553759122326572544257729063173014085180074124186843787616831482856082912462892109597896548848314634558754029339049124539680803470740268881105128806908859773342833006231550018019826952010406627840240679065999064748828388213006892777086085238501097540184990929483956019013356332869160552833840713640430847967707190824181385918835464987785956246502371868928782270514197467144744145973832918708024465536945346601337670028658978753043837012296318707753585298330465624499346524923200088921339872552330978583339400676851757206439130713229269403055311742261021830652313780054294417010811260385902675112563669848818362505566720802202011852726783923922535705176200952547341504202872258288912497743707052747671560479523639646905446607261740391746443002596799741137591602995047072567077029867021517337519703149294988882372763016162437987435297784778198274742489434523503661624180384958945603875517864129589826442833877329062931867382536479694303755363816631294693409528268355281463755455071853692547138608388338474524268955268647815621200411064246192103864875002751300587216410719063745860699601384674948591587035967530636849229371431495135802851554619644812289300257657505050616197171694969234279216781142542273742808180399849726826024130052252258938114327978415242479492524126752387717465144358554135250699933813452914358609791010102410413888058645385241759936421394930717261543276381110381454249848050073873042213615957745206948457349483761695597267939332266854523228850037947496097352900403412990742119336479841318365742704014018768611104675174732026183364080146071477617031703184081724959400097615616896558691527943496600795670984245755399375926364551145091925993416605419500364456276468491702397010360055397352314423760817177090063999330003808123221546503547361370965604177903747239919078584748535350465481322155299025392455032130380509000375911497336458613888048952952235333357780167454074988161932246127083675701668394808718550991705799746581000178923255655923907276984421759915501420354491699385879996257444480137175011275935316364246009403463906598094955038024264285770519019205890172648415852834600210018931509953412527261498194301369085813170057290364113445158205737678785068852470761602630769699883951344309912396029393974017088189343431098967785079289266978706067308913453570164159636092158177677692970542535145379276565414270410028787620673062669564710635152151342988397843950361815380716745451273414550174584873649320541121974006893176953134250084021776462012764767865734255891438605101177566644519221590010512234797102705268846028875645969657039167872579254823620086448527315704660938670200315275551099933178168047299438770137812200658575929067723475636361245346663295681556237921066446368348119285304422762893245872773325218544205476525348852915557240132927039607863145764824343833590803811310853755937139762248535236236526488931696789786711298376937576649427112000118487907890438532258818519232630584977547838087933591513403494740220825933370715049423507955444210419308824727437575811526120621023134453406477689618985266986538354594397146357708307428790922509591692350680185841993019860189538001626245450264980456733590065157168595095506693422281847156596171055301160665004538002814407054218946445922818080203784528094474293836278551896855449867851048965227991206964221654725165073645225027907070089889097349755151228033755812043566178177995401162302881984100378130531095988079132540122885838187094485648189498427558271168060567520900187192192583622584512465890240134739578400499995049031971431488486367963028897646198821576909569948415283968137946145715038683004581184579109376113028969553144593923753736435709386498482530633538590368305096010988583402342746955170452778893095448319005229879860319565142538666343047833342789955742562762601558897876797901853447812248144320699300761500067235385402628915110761917752699987769225334564642577703702361455414660146785871220787215122360353483335276411221216369247975480865309958832518299654401847121621625297914839757849018445400376721429195166315141159340660316607998416136574992717043669864060472067010897371913630974630498522153046155188476399417256705318027543521160378306587647987872222354097770978257660311033500552884151197979792479710642541259984617517931124115107726529072536346859976245462043917056391446258136140118428487144761486653625821889462228247271387395969742935219681588653961012254403151555239080852497552877579977711737114167905894526011551591685102141178029716173226454012447739482824099059592276325995511437021526057123578037802487483116306049179994004404356624461614689501138814656166505987848982142077993377044492560517383426281790759422651396452977129229698125018910790951897131854586697339651612779389455642090903871811119622857713185349617010816271179036717046921111953085138012292990604566150285253706932054988914021229538522624363516632686437385040959290472448649395230607433676594933911967420535794227380714574685051078895348393277919100740757361358595519043019762327166080717151861953687716207196819213544334218659738701488061263269993091414484512460881460719333025197614507681335114560125172572335823957354993780714939674691746421779969170263665497048640043741983444873044184434027486323529354270687211765167838346371028547488869976535065739254333390380240166354754676190205016466377253547322190702843622269415499503605106934750003099339001527155230689253318683468136676453430813774026089970293205623813248141446633923516869837170883077161987639161217572977223068073739207125543574547471856470408518822702963363237901242418139039160456691325516903443212235479106487809236355572526805327622613287428248423903375427169518972783450668286474302692371919332916845333979580825978505893718092549433508513368115991675696464514175642297037315367540741002576750340852121603501995142878998233525165961528964621573672249770530595952436897061814038843374713179706350536577038486594945234500253410262063405909978337657801257103802682984815211537326265158226086808867353399683478770989688307398130410083507776938566724745370244153043729228467783223877228317314882763221677033685735961628187586013598790698676810415475042126037306561494597442513126372408102645671280594099018819756008619213983168680294751471865177128258504200487235637295105686605951955197437370041939626798381512123107477799657554664609363930465827264348272898826281433350160122062403074932288666070205624980332800957031344767470335483196071913074432793511917777946583225478994775257702849222524623534454289189685721281223902820646225017228808333559725690654175724772937120703132527031487425832282758725631265374393678148243937543814488911246511636463053225714420753286963064622609824602002952882938847225897749084125138447484934654321805101155992503189684239773967273675891397479541305315997790998827838988222014324335448576926970301568111329356392001227063544156764784121605920962527406793147356944341957943518281321145303573980523314376115801683821754742090069019673729513619321045478595777881355886432730817082374037855849920825649077973731969591034447056505664063008357374589019054332728313308639214297483686788828922547268698044251790496921883251938346520296998719962285266375148893636357373382549643978183795970133297813651417636424531010455434716419257413618778521874488384052098284505018905954166731184557667173441277795803825476030434030482676700700969036364563509119349247327403943940982288233414372462100813536056408918103193588460695858376576122587718125998138038573024048307714046047245635548751184326860000592043515422376363828696617809740887215166320559519884528285276687916722225362919100339900702495439696512071500099768467534710850355951196266557732060154706313294061342878524154260843728023842595441346072220305267389232381272434576139750364860073271970091353867640108900485468599620358163607890600391297055124085326645829798123968897413849367778283676771873425415241502101567104578967669534689878840571415499609623495812504911176734745540940724846749214204655734942235803467500225840479247893683867957243392389590842415140925103967364049978430096150538082725020724425347932152420290291362406961561971970096214920963081426655401387262557124110567220805554691727506943273041402973879429002778873051188522712671938907168009750154694939781220050574779971738560544210331441303619328779010351714011924695383588727281965531447788326921072575685165435938789557959562910245699657444275454553882289920440779620409033091867204167994823099135026165999206210192497395533684891782409137837652282106325630561178107997558475920177639154048855667938152229878753676247832476187884594310383315328384838604789370694709548406050827228869714721121234538863421383293562055830972322010046857433158828568859836311861667068231926888953323459899513164827566468478447541228033839685732444618679767503371102882348404939376761657529655712542679328383955370735031138307484875001797737108977627844736752783982703045404432694522369098293394319790077902289622267684870759442120699385603673670454161465285916579813286308918447611966392631782794499154232177200837391819256830939551614035946784316325040002057912592502214522865350044468942856020612636077101352298233980092911748632087869400970811254425837087336511928182580868389698553325546434671178570056582953401602606654891733127303001479590739809464915478493406742841478371494610534048953732189467265822272906716746715501399730191837229450079412390798151748746159370167096108060865792078511070941716256648062659811378825755041514394785112135097302380237408742681293410433997641989426247783310732400979403531104806416477790585942301591708002898942335630889543837761572024246535658998058549892938387543979260510118538539310221177709598624460638421881753781540789116267810643603507659024840760862743672003192670444781852422820918948943450388124538828395318685472423115782382010403876837833420091356838806581593200364544747892272397548081726931392370987374993843087811423203626745876301125437734002779938450261373819301237438479227359968267919975740704613872477424232109694950962651660748958957615049124832680288973345764173588343604527452997633200388473670657418560391979149778189304739903805540260864476719990432180225881294458406410177381720718088133555144580581743395261076120349340814356445072309220190180498555469165894391556672468375982197701105186428735602837753260000083620596688968870484251238464307630975608399390584013732947776653381257891589870674171033830007943809552219805997970704936987427285819698215199456528673933523406848957164526633090430460982334241928060714243163394836691211169986320788508214961233301892436259547539652963403419836057304687718451997854961684183425328084326395669872719249516390559144600760920427984756275082273836686204829787166577550135658295839896019752591268194032688472888671099460207541543324876398617774250487372996979399723541296142983126630561496629333518172198503437025696594141922802476572062442022257655073429164059830665580918482046572522715294403123667816135099500712675899290059963093562880434770476169732678011352350690090697861952176872699071428623616999571932972009964633859499655665617335406588721999445140346480094648727462054120767274783340105704240310096346683450556785799638393640256187287554113001771588248336607878649873901709095608745394112337638240321370196974227124592698459555655719666878916520505463034176127284379923538580426551009867362839009905610576193038487435914686343137889336956709200816603188638711009292856748600737334558470196041422004576472047194691809186105392384911132926749156867813469815299556086511191549282582525414677124730122404160588081817173614334620055442533511019474497542391512627524042599132022689224345245382421252216137558080354949527377675218720490251708576717240000397114156697777744965615871602507189974515411396256338616070988142242612859703114458695149955269254920361132138087782201356932850709808838560495664458750299423190484680376474367149549968087193464588921674449106305170122529234594391288857372371984212347668133617430341045420294823540882707632519479298215135500630701742896013614726863784163370934275934983449321313231646789705027181430239437320779649421841326102746794564338149504713377989531039442888557892333534145683951541620108747148057509031125007178529367260744979869069484473314477825347239158919717334577834092213441428774407025741997483625828439045172436740136436263359458422221067630767815667753072445205644488314316852288752672853556678761832998127179007274115083882377881325605431681370453468436929041663585092178945941199107595165508412048376844774700271892581706917241146701614184309692346383774641567454528833111651794588483076261727651933018509789288010150141806573036903034692804154740243593395914780564853931500825502858326668992736546044562237182848572617024744181919782798159724743069135223859894420255254459153844721397606969170632404727565955982731001874476654421971816654964682618582361617013844128328909487535145402899064328454030624569887523444043566009380240121595451715976325575502901132834419394681613597940439324773951951678806704459536717707709956182307008596956321099813042620627782651839614888962668445542226765455552120232239258825803482237044077465871626517065946593145370790753551450675726459566262714231553015879679025672396057904051839714930453566695902135480187699568825246327984260887816422341408475260153989949602142990446060337248796472934740750028038267295855782094950421453626588722617599698109109545496248552154155607596629457281806290368917654297179422724482782136368443991513962085369779308512623386876282582141071595759804743765826135271101741109993388638274772048201921179555952099740348560559818978076226698855106808308582775347075096510496368927515505347215207825529641021947374951834969987646394820318586901440914292205718956471925470997441145497124830696071639930999050375596754608419897627848105684071330079323934909808137991269359052350560758086651236260061651700649497708412489734315207037470548486943396717670104228091481042626753232282517239090809047850815914571518055584916372194583777308581783041532549576095044359348835603979794300041699334373470136018695999886958321230016949352267335123610732842985248684971726096678994481494179663877603300864964877186842835782896525232913808448024483258677068634826370648820120342864081734319604650207624466046280075800644953296829708406308401437258543095825290156859383639413751495414469361018278867628253211902235132092492353880642411171406328068587703530097956394106361005215251864954399478637443274642790889876403984689628463025492350154262077509282359676934241856543918012867713917608806638196815697674277236040845590311297051593019382730527224774921529712716079013863991517370076425778395442724463915580509702833948038893260129654379980548518593221790131383769669658092000131386922793079976263031124379919257199145216088557411012850890719075488226953666383685583180189736631647242848120382611465000402524766796580068052064643453394385836300342642067457757763504895700230396116316853358493398536222719984626117629382906261156318021823003851405778758445847473882018027123463119952393466001385716930450294039046161395214481332108345122641730051118976798751743929841324658573763915213099057083917671705837659543805093932235783408606340683137449408386790869349895940547091053364279549797240437998063640100212411348742646480793359547171160819989618447594242200417759843838789114228694151834280402243928134085704097540848104114968846092714346078077360124225707829646974954330555175356277471094995252175719560977889209873224904698668932377941690860465082923509879241320421574866909885804718885215642404034454850007432971633882114714219040634718067296433112877096418350967599502829664343775530782955303121513357671484258224941730841779332938702561763489621692442197366010573762339983782901205382773321582992723588720837729815699010046854118597298295410036884174010732139427548436740814628489166657585358771353253584780467639924932267810028988606663763468362444517645783520805287180497195930223329359837201424146723593224552523702771453409337641555170086844595103176807640148462566445964943020015034231667330431018111785855915446375611042646065818455635122308195265412066294144378113891599306754987998155412621306708207066261491300988427423538075686981774064903444978200205678142988007802092866299661578649870655602865954955438882703712074540765595374848367738722551547144793283815272641583998730339896365090593725199585016129682513190451694959025519909571950235043267083850603692343093959655494154267288862768074169992025699737518450958067364630913200304040215002599037160059448735456487779822223364815188277205296960486147041214214659429690298731513404115350502346010695757780709132132792538432072679813508942818439135061225013526261739565725546844649282957192885502741416947274605766039337697151687407634050938756689485891726455486411648127596763359830243779985185250554786201360011282581229604957733461547335291213973938356977356775194577347097905289708182743726912236733891038296441148978322562217015078411834642507582995513757853630513056323597529070905576226323540503952579092101383990367545412493904579991367167829471632143274518057067617637460336419342604012179693565636122835467216043554077995370383556188412140169519437337353811148009748208132434490968009718890563963776166845157770420863178294630836496662425192958190715075279852046409579599989600127713774851763599617844334839503640922790877567098569935509054186954031240430887841769944858811704104096116849943685515478910407871487188656339566464727824796465540839105028956719138266513997462421583701517796884578729274939260531085681840248625037697853899570169332267410721307511748860271943382371603092830357352558936167881298366226647002718571351940563358637828434227207525345370313546773618800839690052001495961195879344822067477413641723062024893211944420803706031868802433392639536812114317211189123466584322169893141257621230977685102268720354960650824344133243527114118611715019444849288615040472753300940348799746685644332925477818313987024972070298413358836000318538160922213251804702097612217465786917728669738282037651203695483471326516890380368252337754633641846428313419872085813486236020896220626542648263888905694074477267251521292672102302175393567488708864950673311455638505195535654395664434160174548328551011192263724870764505053224005676342844487017738677131909150337770935988528701275220749880601644346535368255306204425757397689391772077585440585827345613738649822819347350067018031382215267800340440300699315922101695204925591167656016949263773381484113305966874938732924531333632666138262424458494580634142549273559188070246262098938258082565878634917878189553459406538733893491025538409618603085241885955497657052945372416213875691923123080696427001226702428468090802870527415795653296980161818061811257360875981342298067311807766781033376787667152468302972210345406158941705675705332827994633844158385261356295833288432463475338151283490854499366814921311876097031376377853595711517894561861420957629865196941419601572573266272680188393929918755132812906969532093524389944609695175971944376753033812367800083136256949211282772409163587568292689519825424468413037837589253820594472780767237850512030350752964862427658757198147877776945288089353205446496105789210314400168247564915587986068997237937948752669691374128271637524526139017940247383078657870809533461981601926039352148502107904738926873076066965807042434077906571124253261255935104573267767253835406765223083686290704322155825533471054662239890560028084466699942753685886774409123357182333112064369788680579791889881583250899512417955993742800348087839899537926255036602293883847242494986364887003290152367842453465132191910671356007305168255954256533246212408916991791465245451219230940069465139095971028370246769060314857565728274979328645965195782979678115659442221286504258172284658417506623564827349274297706187347199264190882232541653088218579425264096378112800323955758963525357834822326080858807760132863697444454358928933939895835585070319315860609431084378588400155601936441075582152504459238509294179556758455541746945999100097460207268259432399025776103923965073267104700566754135875796269360667426653710393361811409894978733033781332215017963703236196382106628153222460761197039009177253628475036365386563052836763196826300864190330570052890808480857845950680044792290662608486561023245824423953400827552408025152893649563561804802149493026428664219356696549973782928319722421567150284262789302487396169739513934752880873040437166528519743173511108814484084733578912469229847126139281034501998696034146687646567789416970012346250694739442875920324412976660567363466576870283337911997272645901986776744468663735998662915052040255845439179153459501884469366469439134538985295356203253016557946359878257441056246789609917786754942753227418252627679609411563195802091151948124830794971276529504580101900565109385213119932392612847390725128228806783465534723584560122779441409970984018733579178456660368887867327105104542891142440930350241110221539466667548269345449894126340772321075424947291535804225084227949022145605730579513962064534508565639222751454120399006712195270155401482571089222990523287846090313601117837772036578966573076908886415709636704637533693989158099016820299451374831871566327712850833604583656436942298136134300396410206551356600479284763503713893176575804380860335580149051922943422855625157829300383556153816393896042862836785095456795768533689216944042860229313994157657299004382591272765344590612611246072075935342358200331686363429252439795212822848127909632312053906323989153557457565475634258552860402526272711153619147026707386467894418193497793687378255432802055284273742963610658210513141218893644505542222444327102157579627032424843433933476156652192983518257792763775336760196992742088136734696983835362730636535634942728253277113799333720180495704353620348376114597681071181442525666199161503497336887683638887722915665447920640383033082145159668913316073567021914212101426924710314755362543018600853824937472964646416869531067271461856628974068571229787639883188956462509060325584109638746004755028806868260647627644316364955339470546382798794970634246305845690954594947739099473820802223435108194178166887098167596283564178155024523335538121145130805870472619626979824979926655807888308191681018594520579412403822913392897057191134055298236853537837280532078347339649019935435378379167887657842550111062375243918136584124112117583227118178037090114808172918530397960789897759907023498421838590780762736739048245102619042687064273567954624095703216937120211089941660926272676270549827797351830704279130557611680308851417571788435209922222336292582283879803023736566738751193588481104602156160150991776942525973181247530753535090791099115139745188662608812151691149217957037346680757633161207170345281358829072872053264782403959674599949419825646920742449043704483270463918122857398161593630989704112388377181286110501263346650373193985026082327100172535110693866334771012472600730292870432267512860329212319498848481125911761986314362163917368593627594453141782594886057273169829541196693727085458716179342522162114795739876335276447581274291969785464171673480307701475013520616496206574729229045939465023206466345698096605191684765424769466990255412497905301939164224364963075151913243955992083573143351134279288124482051765903755895227369078396103777959379659323330698535553187646830136810938393290949178991936328413021491683144926808786737801092053071013233452382544893580179765251470188980360709995196637207396343144972823026190728195887522494959776511012114102242056233068030881171496384693148490199801928950697031009460092484140647423936878124121825271230389622214565876578146902173571773977490875952022689752730172625132272866483394560237035321659343233804611659051381822826436530958529916783078233164711120805890534656830591799919926472008535135955691276082652164712034137966711474806550329111467863797765150392503086612190649048876806859956848865884878339757043703720226509677251325904290654555194574856812383694960696687702134971820202387031747283883839697710589564423223717344115258784699512637108024696441037439057364678593018573678060765038710547265467448090453510610065487732866091241334924669966827550230323820274386329327593249353679326328692374603414165142732613656878067497477590773078216793153325261810548004273333701195909591522733579670322354089356816906271481209259296282506162972161969799650119952837726139834192582313504890345889964793465809678521015447435855476505488891711586186482543620300646094442318483002925738471073288612603369880121830275371377871786064355609863642794881437054187281801329976230984140869387884871384090077846848614883898611312517626512124494470369129649522154876118588481041786798828537219010130654381588589118215678616014210010073747768639444691917404023653031355886727070364804457551889724315347394378207262697777798323837242548185950578214729511911084562757334438093801463300313766009094853482196037245183451480322689037055428625300957767764767581507195168674030138479530209436702849180603530372431149438009902388342991059342177229553765246466429971117652132801998346159994812984338242927251160782487915524776695179320820830859380720778402419966967602908222849817576704118412726977373028126350824389855163309304492477561701789593853234774837140838437627576382446701058086404421746055082255108079182836581983854346939846941898329357170452127549548278518310674672908820945979377664117290371074314431002988407762339963469976654941138500464555355629406838449839362934342463208281233847444533769622340424479417793304127245172809523389873032267827804737385710074790898217920925972782819986025897455133573630239756716273489393780907912102827610325812529940351798913376723125006598122651932798913301009648118871950843914308225686822558913920877095647415991826555605177026275047795550093854764335099265182190742612575723714818932071588790042821219746323083541948509336216576973225048959787995200600062143097543763303612613700564754123825147720875742052661149876863833108648420877450747361691804019761821200530917579185527738364000819786593356831952425287811730030805245722236015826357210600595473125786267431023905584537144167344738083699534517860657876366038641180012104628980980771583463178377324663513671616866324312200713464095400915429257363604011662361707748918988779484686635381217737983222237723956338426156228458996362720660709583218785680789661130665212736502834819789845859295942119573492689117693249921919843779923188926041721155038947474652918086644563375600948429517493262936204611905826032275536652475495858135358988116033223008753396746695090640250815521329742983436933294375127230717460803026131930189352175278913861618718399569000199292078572983641730877295663973509613890951329048501019495082293356016431681134618607017059461715266460633679036873627553217092537344149943683647538968843561680231391029250156513427315638640136145117311919385708986323431631819265174139440760742084663939429129858385137284992439466757544572895237263554063271054375383200736542421059214409640179092842370141469461654750320911885299490375779866256846424538000376940400469098003353770707292805640900197791968614763015002706551239782455722832870237827295256037831652023942283166886565579136247766547185124474664655575551337268403359570446168700416026277823361823145595240088310985900416518205527318535507874330214604200781096463897972988955076558304838769710474752958446601526945521489993601026960768463255991981033381676983411659369754987102525016900922728355921932344857718161034766633102688689144790008315529821221098708096797420678471706085402783909248117142837989144163685651071639547223958335673878561555436447022530346406862760988759464703612367204322614004717350478253049820896315639003397293709041240807449564032128319835276864268192681055684536434696594517409029548706025089674377887122957242857568156412106628803308636902355899518252408977539516860022856976904392479427336024478904810028031491528009644555315806882141533988698560733841324525998690857133650085332336178148096081883889890039474891493754685643636489201012507615799384301552199783814460162178599604378091813394585761961830040395661613183619122794028522682183243976054720815935857989017399909059628845761967300879605657589126872617171037492326770460198163118768076938555497701866220844785738852928407098279892676094902007335887541083467312784917421717074005817087801223555740282021122813066875616654665377703012177997158289032961089502105158380995483719102383777286761291393241601457655032969147520740445340913011887028048779454344063399826456197054645314476503968950172173834915739134643377161048843547890124668094730955250160597416648047179408022991505165498840636416486854588421246601377287131263208847008581799109311311505918955144530100223815145320912766838380985385278541828007590017976589897105711947146414851885973478977243029555076713401108435794791165573116836375223199698519426365371599491898998022850244893359425596446367511403266507486527783744217110437800716964233999852828303094589627773085070622780060989364073184249597443317996224375747759776965009319672820848388929101595790128926311928392498834278885379011545245251324474453082226721063575985562152126202639921030234524855871669038847701104432702247118983697601731480769473838800533591015153470293059983573772780310752756526223567691043589033056438382187989739517752829165131484776975951760135317511978206446192325868529243413131141184225034824401109149385043513494698340398173835143003213303557599274300763840877386856293925523520584520523356621263183185144653425189827425272503070808194784832697184306604470016594130363149837812804629514617695015167645224570376197536761281379417522397495897273344224758762103942375106399924437175010552424220385823708763296649109801839240979406600036923818003057647621299525350902612208274370168955481730776216873116438127177422951563551388230086004109625162395336995013782926681506507515205076344696712095433377184344711168505807078669865046166384111211584458849205174177093079721871055632476512748515460753444040503103239551966436385973233652813450402042231061469842893465170370606516982963280377654489850258048564652128988978960986900918600977583401646919566722654568890352825981153029831096571960863422485680400088595689165278293084003774983598414554171647969987313585451557116492929760795857208328438670989079027705595317763263394395469702059795587950997297047040610551873891486993389876309533191586366294565583323936530178466034172466550530768900896487152404615308928585681119796603464254718253710761688756970108098107412762387585025320165941263587129557058082569724518313476851649793263327929336903889707198721460470755060865485091732977190448123862322665530211152552260894404868926360013153283598394138550818014612751567725601543300769556494822293068841974475277648172135612721724270847208603785341009842226106160516605314195321031554922425789832455378892521551631097623204310956588295008199401425013893230092235062290239913261161064319656581741508621109556095223959754567766095289519507487719920124141937802395453249105941251647194251184608067957339585602748103040759620511277835724751467711601342804677502821801476250904002023439344081674035283025155697791256565459183636618818523437110630852355183056831352263603986499048152723729801240665618085669627136041361566853519627096768038029181038065092521315728542085470739499069042297158524522431559495438890946457241577981568803496968781246556555534497789983497465492205785547388754553432361463126217995815950921691083357963505664665884341174828480500787769064200649137131569577701251904699974184805735101504168884019323310266399685154633730926887443294084979469872784607980127612743713891613196075405283952402742133382966834685522721493954094719060560450326224700157802544896429061153024135330679538304692963245289654224964169747126084663307392348749652823658325583900679913746477757211128667494085371871035496704442174983956796694087577842295448953037660901684732128800500165572216907022823322031191432872419469986067234208117798782155903715020749857283745521310737316084350086001691235802346986072017983603311261892523647977355041553096829981213379843699411197916300547871869131909865764667494901467933847237225384534290269084264024146868005927631680361121497008613513434664310665740950426337009274312524031876852586843094647231164049743889087729255911279610681638136503094167621048534526914783257764506988145917878391092295812354050018537382368227039123619189127455708960347244617784105350106219751237983300677490839264699596623129233142359847230687823209663077631883847264167278609760866278559779501890479810713445760609728110445474549515350160847900101000888451889705517568027310367866872585570404084504733715805310516571165541548302090984440954474560896213935425067858921526102074549714032267055358419832353258597077327978596832004601500808064464552659011693537121223827862356583730214007584707968055443095987906933800462448897230798748198401834434914300169745128814682198588623618771113419862131527570158162753469376378054640002885905748829239268212487788258577332187831399654990021745338151090615592160550835440239869839992224975137268422795287472266049507059865796716888657800079511667801418916166008775044874684008225954439802832929122741556879110325403314542336554568017298706062307601500109410370991071415114722445555597048340276688384866902065789892565706541686827298240934587895658001712310139111973284142733759523615848351551513691724417233451570218756187517337531273903267009582107950472046149026305804304002880723871358485480262291773002806505125814577470569848701038120833002862759623495812801102125908402913999768027181434552543505987588172991726049864844751962487617088605039746761563229242329139788435249103517364387027085709112035536784792376548744045979355802563265821949362476984582489108731257831351909283910456789621695799672782982975052637240016584896567436182272297480992989837220346066834138959670713144379238927296920955289325198721283080776984412265453172285464665385268655678727467147100690884665447600267002940125518331974860610431526995638322923141081281986148406280874992174277896485742049363663751749180477906578190421747321159544837905075070397003890380591914193325508311709534882260565025627050924162736816933753091635159241027659709943326200934404594668062776419600690796826962410460461320620391160203069429160740396000275506235821372491128522704282554074334118218446504373223502577067544799984085287146585546712851881265478343241384574845282223467238274883079295403369612777364911941872018968144409371748409508650387886734501415679651075232995978785930240064519070503924619926827348428788553422500661545666947237545420215645088577605686271487967055825884763515461931563587625807373204475879680144427297649236439198404619403809612349646056835728525549105337538337150323490807212391466587897875651982171581490320779637616974636467490154620016545284426454524411920087800030139525609032461657419959436208307523638749119334296390852334533663228565610721355787885460699179766346879293791523617991722431065123168720052310929926002122483887356629704848383148353817592377231231430847748876998875197988895579377472664467668781247562885407022728399638653036839679344190772162666729902673334180109194611271642622768601495390673428387719788770495648421778668542486966165730073906575571403428300343585530416859867025922438145682350586283887473691666584117550170379466620159090864161667504371247654842711043486735882297555006856838513036571670257160316105259823502155765468685505883686806298763018563532963175470647990802707752807138748244182219762312885063410649243768311497360423438278119295675623954317638990180872697599623381507154005914121744832206613953313300370180232627523201886899862995463444236717164746694986693851055206180780373167978423581851119414120161007846201981236073166793607792184038868665895883415700222188116351327648182045674297944010986353882807033787057514936449602245990882747580202140411858844271034769896165029047877119222862000426263815247580837995360184680927679235005018903130438822751358399253522663003840506045135457235747893623635889888106257349653122919316680794813521663008634128336534781872129426010619188844922292170166541164207810143824563676796625109904497323118007331676214327226610240133721582726858703498204941281441304987802542834095572993296836367792349080500269629278108167884117555326860022778132201945284980020624329409905649804852614535736440752328804906881708353677480636053028947572958829487258567162140640450381963828593661198541853646664728863114798586019326223802110880045562114375300126024309985672246611023472050637231616092078813983004255089331328210351374338880005304782291728302628099983846145900687430699091136651278554124669109579002966646156213526480750565644516386610339250525876636885930366209332990246704887747544671995213130221042668430933714431488590510116002871009262486448831035493450809177950912051127299395965161351527453226857324040807960565307360324160683477282710645169984536659413670811460067469506124578236563259257156288644264723361414297893517508942844996675868617436558833818205883408152841430787441173254648079597319526258990313128266663961406685759834237751175514327505407349855561693570807440556331279509861435348344082252521631070477966915200304805404273003887007603446144684527500930357360264903524849864572509811705813349094207729259217137465937943727881046759385740515199734343655864784212636982061048210997404942374105811048187496216165780970233903555357767506738942523517523023798784742184102180850056246527767558686421908653583818690877428917374067208004001511195519107055188008562796604632403193715982999688531364639963090520208645312915762667705982587597496085228526435876701832036245679444258554231430484884025852374045359254380786166865612869636360961555092835244697099300429406482541532698670552389423450960859753219146114574830215749387025890783665666855134163240881002274318668439117903037971254115556358852804812890965124877199055884794636706174848408600263711008403602376438374805256657754516789789330824686870690621324473560276868162249644522515389870647361591078678768612532318192110312364472308021316325967359424947087319072649802770645125745448378393791306143457986353920576186580495112969111882486661439256202008833335330781806799105716695305684904840665790917807043847890559979146756800107653697038568130186285600595516318810913691992217055550211285511953859641457594891432706612564164488288334869127467087673766189874009117399713271576458183638106557888857794031071656903631749135780143371161093205428551728362198567136862450866348035954255270394099544725083477899098074507386011197696160299697606773899785333114243552657887640106441522671583920421537167244903914205344608344896083602088963208979911035910115251959796766224165577254820240269600503970126717893305252048473441024509079658491504779304806522231538089636859110250254152125587808316525145465085446494759203950176053897958823599389491871075273461852064096314706787256994113105931184159352667301514551844979218515621815852203856077212088281964337291566195719889563174969543109395331575430623569190226446282097675142686604388268449462551843342902571892392237189941351125383769368921208980138549495773018933318814192896676608812216395438624082078416376204501691732436508004903744801338167698308012688845736994324241488722043962109470935909901957870650474952150466323331455205634504825714871492312751091828456175598732857799316791076355760227627195381859229035505498041657414437596917672939459323910296637156754049544081764545146670836366177917077457002903848140098858346010237412741054203665514894348719267912413576113820934243457691806970573236836402268434505510318322841791367708221682855080869449056018629243649115380868466009533523556709467057225182768627911586458228479910040816071072364553620653335643754753797575559342627545189461456469755505327284449468329809000676291153488714183022113951298363248867621754716213319612435841989745053458158735398593579180985420527122369209729161478515537427038145623222680679856532032699873641118315293086962101247219545277236417556787622887152106406863428352229142499027397888826164548804862946762935100539130267767461874655394576640556051594720685201212409424906095045973155909004915733964562470411540999006170057113326068660935058918831342937151479924660970736555080872337668129027759995994990250198422853596222255476140660735375662040749516081188235216389167715091273738308049261369647816513070291800329394276106913324129962581402471822637462293348213072444521525465556831549746823225598508576126674750727696294776493567387490686495807235666527998642692610576341242539135609479170106454333806457756611649402814685933384549010179438174869218995506745084183010257517463884842889973634664928488177294013506197293793206700133400390136786162969505183545056983753100611690752763345747012575796907442277310973084954427270502587526073614555658046980915123841527825100513805680226423566333512011278124996369730002078699052001445303606824343899582136372916697031451787548349230876130148141075752901923716890220768455126738487870853372026756454889759449467577975308846909075943104050882994384337855850143725446048667648709250038047454864642780778755496308961710473475600984006858074714463736571045629601071067536738289473880076028773826053877044440146699630615760217760870612835759581345340809808685037849351773227870533686723162219018348184231789539056945789482572808784234281380593834406427066787056638580356839671409598045238333094036196945750489858593328298450963442989794485809997312292642931761850644198718827848291067393103762469730046345672341875958651849792190165054201890371954018561016307737528812462036794311157442353472517318647808372911063657680165482013811840098130211263040693468142867599975335404485396055411288794303403137511380057064965072152210017193571552982325640966771888758803059915122502919058616864914364701342395481222113600859930632346726500079793855994253787174152267553382875140848975233734060867517583897449200533067844511336110673886713357591102905598602712021843605379649988822357445116478894548898712350440421198144858262462413115897652000974954087713380515865187181628368255445077269236690607167732048285208226610013086562105743751630746549233072391304863704871350987452229897147240559296462909244628607336092284682375977864323641095270559115024064382604852892104690433388545069419093989734879858051169443470643525213820720562321656898816379446611670750216784753003303251335867484362135068179722957467412851678611361202886212883898985457293812161262006939374594234934985898065811772406740766487068556380475103324941898618566646265543999639229464109511944539100448271328512035465845078015709867318954903501730183917636354062763117081742502710716970349776235861330659739953574051870956889602198720817214254432044989482811621330399020128153458148317539405894555797950012491189741585365807632804810786225617928505933684734090353827294442849072594913875523743459017615131043312510270892361668622646668507740104017514348252095386646378474593374473932425305014806350817601322183508573126353372853943079313866944392475366061340790996717043497117113408335525166613098261303871244440343839642817860648461190840224545911336998357875347892330966557584301814122402032908868628706140043728439971633357247119627748384968515149575908299529042120531959895764483268133658889657301873581027590043173353483657712398871944913352845642153280655214961913064735525628222812065670915733986354123027927675963073843357116145165424022931180199804910748792871766258677594610007896297369427755301315100287958054715339304055485201986670443611497132617264579585397743587847257994487847430228647790170456005936616057046175579010995786708446379123145316256750040270901959372858183587548416453069906498297329237159593904315626034295658544437687972663528501032061074916875522547229319354731917499868454403746537337534996321807487432010833843334014109046234895122526693878019750313664508064477787979649582437908911750505911896631273496265842572577957710528564494353929602366442792146709417338293055247221291062268309549697169353828861149356537493493305772193169632892042244900082880649374062441870996764021182045173310480135714442654788064516481133421902542451359965983999444757958983723356790738004995913935484430702554222328654443558929454368731844133677546027797529243562903068050217887109308548199440791995131006221251115447582696868910095289810774401099877193065669630246967554620075575393903992573356748655761727813043280842398227790946815255330550167440421285239020615185486462385087179973000456955036587880044960983579545147201163781996631253561119263814077746973510930893495545959459727948206515579454369165833935145546721698797923244166162966441533121428861522835933071300525486609830073828630059492757855668529105070747789899514737294797110249179874065007928224821466998306820744988558834935065504875668126509927324665806893047548096093061908796551907809267408164223416359745961003886885337812038539576657721582896506396796956646853166368425511384318273846110255818698549877875071817497437401041950798786275393168175719984956825139445275433757248908399075492351965817332751710366165415839538263200267558371145081851822889082028331217146175477485818253059239974728844122894357802583143107832619312605355688984732464661692694996390801661498958276333194364210725133539919773719735387543642164460789736402416434325460409255610059128262911137648770410405497486937452879430418883763136959441951522607497817084633595044557637449813119339695599473409416850021697818763166273163161848955607722862181947357761358390524144310224811596256396365789573493801651472758052185340107018088960261881772397695566568799409642784157082775415042058716459554615665237985632301584663347583102991311977719655766688875796520562099561472103573791916427313246048911915018661953549145876250159078013591761509614781030129429737132712844330670648050549047337995669651722786800892151560352707805914839605006703343049372077649188952722763144884484006302058505235304330266537825483884083525948424553464042975659108288190844005341535370631528613625264489662791789506945782690293237982236867043888257497018983185826125229841479555058145463725589233641842094986124846476948830340203092328164141911224100017409818634598050087474124678362327865353892106787822142668410509017470202558278068711944273323989188866456388727822350218056040584402239975056705295723205366675471053102421637817878396364732851420365649074142603130673523511772030786878120191134658265382816456118521440923441182682939222368177934719958344262469408266903185743495761858491148335256890224882933529775959850133984230816890774811498580778874347691648660990530950254151078773296807161276111182311249713882551454687003830442504494201672190845431774600307802589565981661768164128215378078465400454540833359166976837758152234928253238023035477824430603436054170435766698625748482458390468622811932967632770057461053360984082376439413937351532333953774768811661252434918766903057113456150341593299135620855631509736490460476490930174432686460035147722245334552506347808185768561733396248365807230653801040615398563144869674913097578959843076136314457012487794298315742273243514778959695612773281787492300890618701709059950001461061975093073713548087372019296055543936448512589500882849678228661230304880313859427261305751854329581442170465293329319577584035681626741051448436610271421017181026786249042170263496842028267474959242387875162446040905337834702930346760302967591742458066339263488206824976689353415974796675359301761970639928881243497922862927456863803036262103459697648449439522834188979753055320589568431607187184286345522339715190412340423551269373845917171601695045608859020284327561619256645891681692300615909904225441191662586046474438031364945003380533838350686734772512051967980417304203674041791346683374416389713694410301071961769554662316868044538953970425910517894370981105303073497605269802257895482091616497961651119629775797594156870811921574518671917525414522283494777244539039633835269022648074914969780341207192196833507993181477044893190673781975384975857530105007511452830550550349371517653975968266898337998235290357450222430696828197363474489357428382558418945554070659068848881594691039291289910117220742724504075350699915675241779949022427136337827795767597179004094412214297968012199077837904623607164601358749440848203882241305930462423357004932360763320882682262854258670300499476371886621867062175848203598680675083792951437710031727183021830748652925431413144585903931193836074826538425420358834812681811967741465869203348183386224474276554635506045177749438625715962005940406146325977522813944131702048083242090216868802360464308025083075973614950383697039716047377519385364003664332303872528782780091709873379824580143490503973273013929958173335239861522389329587978019242504135513042526353711617091635182985287981894522910247469958135609270650036318512433140494562336778487815255125871098279917449926565177860885486379592919240671069074227620238470769628409319323531221602368769706522796321074583163733069883433555029736297069056098928779332432452745683153454256251237383365738001007069624454416622653243805268956273048686769140630778489559669199404009911407636672408779207492100293298217940398200745253762107269651850549975818922485754113526641914437986137344669285598506084937525937711855252686605000305760558302620720264720191512361923609606224168909455740307748000817183953662708586317781612633269433123745413531299878134215039286502014627934989107191128157165635455561160199099686439063133095436514090984966336979547519520861618137141770269701025716036598917745813733158944700001975013629913769663452621538154396834181183335250684681588142211592960417690736564221508821167705404566482231266203073522943048179016375648551315051925622087840973924704879036990623716874211883710163964108772742293306898080949954461037925280506158642857683491634897195813693402902327463171658351864362360168244226065334757115083565341318178911022782625226461980508597683193020043831024807814009114332695212351569423619752145306261995470642268853401225192965060576506331794344432596187551669427521063345238858465892442296589197385420483591221827133752526526069721464314235318882932500430927120552001357995237054102785538316907113297207401224387349000804964175795256311932809676772305782883401013077698086753748482936960019762795778744991162115932738574585101255914121584700167812125367643386908337945383955382176346105075520972133497045844013894021003257215568036279861742430698422879300089010537351296092354332084260739066820578293074258263850218110305730813926802740373784341092174272644877082259270240184830664497808139853255271725255096032224497716121250526115918101667709469564549036641830326500799899473290773815524769359330838028378910927856632071635579856150663055121003635553397154750324484590469684410822182485412694685624467283935478785528340498889322885292695218200375601553886415889881575448467687890972974541126937515944472316237642245298920149172713393056957102828989686335385316770651627621188185137271079146811901821677181751239816941460488192215807034848622889079703659268730197192207925041827793716719391518464809413172513449686808062713565742434386930346920149515788642452416215572657847346406265756664442223858154727218964090599803238540369842127151595252757089780767414691963345847642207669452578817888419741452638215773349738012696054900668907080853035718736779749026668032770162124660111966421177474706014486632632067126361693398374628439693410667266246004325912134450290002743283622609471601499322895691888076076139335816885319285200261402938040413152891368990433057252437482474249985292904135732667870690492575334843458759186943670018838496600094868090548398829429208526598677712952641841297956716998463142278127781017515164124464998790104680118652881409531980809086588537005363763846083182693584663680101000429171600676036062850776947578709195433024594057403203116235086872845362901203332739335151873753628148631486445257481209658690083494809413121169270908050613855384159718563626709027093705589548766979925364240390382243471820330104867227667285111786242189806750453135598654062197339645123337463398240545953703643862011912473544269284881733914174376179979903286159445234507997279271940327039710644030240186144360983750533089586157482434488788033274809293225224826293478662354021792301198853744304275466618952678950579193522550917980664920529756962936266621735943566669410222181597983640616833423641486666189880681998750782461443634320097860368340051902309155878383795204475304694494088279669834419881745646291496537787245397626268900773581051937058648189475284753846211385853611867997498344061374870528954739256028475511866626437105157285305814247246230024915342916042820845513570040544732598443994718330351332263740877743782879156194070779079694559075270811894525609309817083064095983481821228781905848124662835937670109496138948385960269695859337103571417303070601232014067522319605734171921506710764181081251686514912814551178556611784596770031929912145194243424029035455928119452461758336153511134424068940126515117028215408573198230418240260682367996493788287767771980292614304377535253038020442861130347731592597654105734209136541985934142856644296676836595673463348899226721690886052773672967790900673031317710843742507930127717063921843362880371250375569309981755072052275655633163411026521456445728590706268701452446023370872474435728829271264317831260674384520895487218655189960229385428148765026520151882721185289501987123358870572841641835315877482998959917596859936549872833845721687657124305296941049218662342272779461548204197567542992901472374793171397536981691813054831509810196093884196776236376853677839441677050614783561079750958674489984745918360138697768693872321639635438006654139131857971453250500655517621067898747064073324540374582253684447507963723135128124190173762548799213410913867727927850294870098611543674085279397384934906044196979033453160845890793641116967458320666345559212365695994793249046889703979123807376339760337297266700746202868025816737820873048333612308506858258564240366484155484211528169650343459892970522814271013737119202535918424404135590216642260603623767694002185411751280408760079981578705910301538324354520944976778588736254836636261886064368178273755546954232515818292620758945025544250177579555004025121050316921783097235224921899646372539534383666096435559692293953751279739600536657508092881849916342011078989162989599009658598044869065248107126778886942968325578992110045754514912981447995347947157706556846005130433178152465170449937365327764705051201955148339056211276833846032775500257392951497126466603844639301283057831277280710673301598087461676073482493967431912176084035542888266552046447392204099368264154723850348320816160915781074607536816587977345041410940667964509545922390568829820307386768820607028371352160329036060582643125027653029878646118099353122888424254526734198888906624494470592051509254952717092214785385656602144593040678058607720767662790706114436473800816133960752270703729245001049814830640826862651569397692831760041678108649387430110566658515003954209379771241965746190585811376133408730563848493735642328753314867386395055134262998287626888598995600310975047615320339275329788799583154450347778580659510366788998930706140210497308437872595833510017864016971820339360221319106229384080552626524638354624243796121238542030177018006130845811293636347974396138100867095330583674758166383399260641137534149631348532319921057043457622743761500118207301228209251391398500589753253918519223481689013609203297932945890987971753035672492073866892787398166861421164333636616676740873071953250955195623267478680976268672492474414301982838788584246231778615423902610020283347675834637151403700895116283452289954646380487448261530971226832716697288793952411976365010793081574307762619607923379412164417551245260496428377884047369443765009655347198286684134106562465161326660463793839858717337345921375410717048840579790856464176953364422806006595602216920690618218708725789487471158847595990525610948248952830754440007571776594364309953495497057933570477890225942392299097067804496652121760363869713342416493290764281088825932739496329585924933965321094798210664633079047512570154702929366489838489416698912158108915942184227694360369437979826971340941821109105342723027096486223598190510879160454283994754116798162269905716608855630848603384819667359961018550317846398680288812369967581248166316338203718150201733499527147841746610880761127454897035123080097801955802425855074782395787765355134583085136075197797761891572718584885356063903980223540127935323532731482686107405409749933701565244182425673596882652839400931573219033554291199870506335873966575619489274724720928645379995118682633601910670281835508104595862073536490797808142491669913959446472886277038922712799623618264114965391876508184379596456117132460157768737824003708307533927912148878375970736638921495546420129934395798945914328768908032269278405822657501101844520642006739236584572937380706913791358047874236800948098071745932305224159544607351716685465211726674686461961462741135433558003520420936935799432842784473158660659196844335986708917266036365931672951472791040290323886205854613964648541590261194995045345040021942872438367259365818907598357426345940177035083394197496125124942077870162839050338337854697312834609836570417963613210651767515641335999970208722747642338348809994943578467072958159970201792333391124331610480345491889457779502788211700928157091673767212673635660631421014331982239634781378477125800955765143695673673527506331367435637051055514405960181682385020887053187111533822459988968271341293771643658003037854361186825324142685302523972771850920493673720042484055837740591949544056685495487729999355668888057071344028049314447095767294168739484957262168662282049380201728713538841169903646397324715501954148168712687581451643415440663245501376737232718089953562631501605232131663639234752543622362451075317891336129483034047516137021585677667514214695809384252884782242268099794900439829370598146474906150193764335281070381438805152542832586229708665021165163488636440782895402898658372086278631827371612584838363715106909396200888133481692555522911078467867485705190175629647059897573108969209999681286391932168550144467310135717200507498104874448214245169054322123565304100239411934629347924378276640532963883356947125497617990511575616758424531130816374211450027318949376300499481820944293169636977131771107073427926831445373377561353757853186078945130052965162246239229055310872056347162196151499639678340413332300047714553724699215078524810901374430427278097265443940604964101870067673082482785820806422162037324544347098678932991338134903110679924835950186747039147470984857776828018116317976399693153544213561012280731869998589731647259303363695279604390076208203647637827279676003621194469737402708152888593314285822709346571466204580027803630175887630631525539921085474246070882773548277582823920279393350748225037129580373624901936247968881584634293270277986350240803189643414563933725167392462974495793998717585517262182441668950621817475047055228252087644980248079319362441343564286297433355612892743090481415468771093798195953055191446176757414314498450514704604866749391250427579481839517745878520055670061058829461108438975905526379937358137964521208237808755301125475435661827025411151184113701448484349803291555853041912102723929051170061560575919805143237354158446180810533914852291082466958459544214983246261383101374439154599490087884553895462335566781803423314688285767374506605237317008615211421446245536411868544139660029262163123874752478008915477949643076729348735309240893725985068976335782432351115661382223547606664242157342648946817543386442438058264657651846590864439840120864346865976879890250095106034585886348658537221576764525426569311294672111310576675389586227094868883941218973935464270304813712512743338077073896376773801916816444754548871417406863808496025385032410413785216018388061620708538171314615722142854799292392362250810456123285834715647190334584265565517869686577439243530024037835477484503117130514690573924816402703115951417763168736572065137244411313432051893901382230813091716526862722851377853732969664964627281537346572294797015562407785251426523230405749580813956242128336527240752365846819201000522888481249757990474256172440704128804950368679454085507807629382865313813512719146182196507068229143868199626094175804713077829641160016273589674557528999338399515941889865705206013573450718723523380813294719003271553343951917168210384918943022891519609698570602942748654801864903104554666889754930000560429096167773782729883676934151620018293438344685558811354399848874237624428111681334795825950923592820986639871141459162188460525716181430117832230037806098564926640318207014889580133221227719984516987679991921539770097859992180687536735296876375856548694123261300115244629775143890278655975164775232350339709104406126826998191886409773502532893724237481687875511996964356031478314903422597921956376428222710345096229454824100798976594154179683086514589836285434217590116839061138227194329444565690987435883258975221766722593114739857373038366480471040228295856604811989756794004463215572371146741495102462138618759135886381217802647386358848602516369349262778009894640146402652992590595673501580908836490391706712747416389259289049508278114605209147889951924425543036159030724887625638047848170458444121650704234477127194623686626142564544032587364625797070233769257933447497878879069425768919537279224719072605661530603400592152254084959905290503468379742147580466500648519558484937127429279474385261737135214748462124727086514919662726537190252571411977474568997564636654950175929154088817664313800763903079023142787203759045820432745786734298684676749153300062192239898532511284808932446125771540174548577809067223449952743355634885280582173124558793937473233658221426613145604915981912247481744545676706275127427451340348436068764894259284046195495573599121615767149749266680118620197907995083673051881145782107371386793006561562896086228296170881311949792462457627955113992159152767540204616624292800937153343175201847492499092251220177087128629080692754306759460271054515515911025971868029354725604840917828001738881031420215277856888642957033144038091435906596352429368827042922750034422558192920596438210693925174944066954005994932265914095698633857470828348617990388314407118153001611917917154321017421805212717166428237223836830181125273685067830864522087549794737883376160333162462361138125581367455382923788081154694546599393201451710729923160676393125980288761754269738516206340569936099137037221157638558981954061576085015142066924705891247122687436256716074646614791611471922536198600897030955491475397695491788214873660089279054633948078355204092689715884878642557647490371750748111047926414090323533605032071938053027609042551714161945783923670545031687019682858874213250619282786265127055068086680893975729925842842712136866363503103313807118292244276280254596389963722994022924703546789678680485687646602970155319188152063082831728590733869717222287866779088106649485159871735031054254511136847076258456794765187460124908683523733972708687066090171786958811090515044583775783901786930468513666538980083755709886063974432030901527458701994219146481977828747760670902802269462852735258219920612973120118614978249523952233446256058343629828884862294887644173893114994151752543989741348487283661426962783130777773260646999238276702277627195567055885101240445291626161960234951029222471494615321533599616172831683550548256342184842912358579787794209684867334103315633444528059120001056198207735982894462859568704739296004215136958506399919512578711941574286404673501003624794691633267643799978767835656842603767795109223888446394974621246652150474349451308628079675609922877053009872084254972275060577394891506521308540361060969987388056374498495284891331725357871441669641295185911470568511181979128944202867823665895728637398562603303303875817384962623243535454700148960237080274040495109249324392074475885041853383639608255292757297649757787282766385328277689468257936365236044647446044779169661044488950351569954647178783196672760679485748028761521067355434401610502068029918970026872626455584174929288409077313633390494193823385540175972845752122700650769350316222828630914755391647671239162267683351407950052988111132215232683077846218780984377355327610972295229110982787389867688348766069764888110246069900740778583187880334000849802444486381063210631873827757286750123899967785546758426518743919481102908416267922055109167397952969916204437424414176167801433464788994934353984411297861683967073482418490166413868550783720893249788823083877032110524286683974559026761785184997743389997829135976116908860658970426822448620316915767618252166001342925467614553731509762915018720948792869487237695940347646263192266229804480547550402028524483334227542536878808186799167747462543812784013907070950452414488259592975218022341375005096054036793932663787779065782114822407903360948959762959572209305571705387255606776223838003351678443435745711037074298634367887593164738762823561052530686564774117077730354347633635399287075133170097693911264856074044634554075406340165652986486238764088605941650269221423897417881385416534511771181203344654271651695577784709154196484936301431197728849184237233449869222107704896056336520291298268363856062504139493402697201601116493817701909060876907348619903757371820440831394171123132979626032609761378689936013627463856474482447950989214390565706753624972940272040645228514908027402552175839020875924239675153221737335677092801856972950916433125177850701726699066796259369161628278825253314462282702530266545949199435232970650023503897014681784118609168866994158712427779781341312274965215188195655348982686279720502168901907367330014789215259549389282772290677100983703682552177086855896745224635507312822796240385099165993960949411610122712797128312620840546170659380171577059205979936153630325412884757291070740460001133764393544146649831555265333773112014841620308376574176409492526899202039484282364027404101260878367481681285761604216074542350814521090820182989402572139615595403987423317021913263227087535112121228578919907258043345573024572273062891811340321239027697446611850723253392064276210260041783982298346034070782227639942655666628714627938802398717340043149523087552777276258262958694993104516187972414314555061250845839596081394008378076669068285746916908215453869211234897688727451757624922175827716967331544434279801758361650285106677572864161169269339135563167918886237428981135053598496201942499498516093226785601271154653748939415745534972369663153977964389144298981389315020695971461336477456133751228149008404370234466929679172008965641982118835702296867993957298838574881033291371592468603578742458277616163834461278607612614414626005595841956518997583810358862141446226740588645712954093291641887667843141999390634621482902004882963180855813198270100735543679427364558028397935067143849936629321564014242427718446576626882978918204495836125389573355007566249232243558759470449533202793116426462071987980493037693623587627842730866863695211480889020229701467747534892950171019454601480146602772534283989864494499354110590671639070296661190910630356440638748981592900138118669559779466733293412822161326868433985292109541542452880697185391453342018319490585213174359409759980997700232598822354579655137314561123296201110084321002598692068640734012667160499960858955393502922655938771631030465067287140591476965056223583743096580886260593697220957046876330209262774128142024552646615619655407250536251379160686271676611948371356015846213302103322528083248522948488846237736168756570173238666308031753585370852092137425280401124662770278757953566365611563581785393365703266072339840971789208838311453916938875066466659151892622491292241025645870692584548432787944681965840151852845374094403954990753277186273112703996917423146527779449078209110562371449155334876787306038993831422688749087050255613660704371066389733384246181003756178460016314551753789280664280604636692192455449155637934859171000556763467235158118294713616409385890760965102264186867186998921040246396933725358422698200056106162847031204899112928138930020354831004390157460949697565880448034550179201390601143867922045624311050450717848922449187200185654620346111746697155552809008262757483896533008208228415315855741777357401282574107379953367199718681219311371615550222705130245935352413400334677199008965597347427547213471906585774162311266759695091137495503304977636706192921768622719301265456727571920565437463281935689489932200985313248473655933586000725581540555770216503836502783199487927530893052763329800959573442554435055813035375433782156836212069369306741330224487627790876352786441882656706930717215851467953605135490617064080277530049523053850777009970892280672051226975732211662729175342745541686516243147394886796343941830845014826758226644543163410571254615347964568038451707085573853140795574980039531137153840256549055529400747307987530125499722131085575197285980750838245999118839222922278712316337735159856303001343767769514433169884947747243201216100906057739553194171142210564390764602759096238518198882889311567744724479289393317610219323061776152392665700934732794831667635652915028384639291714606694152910927837715784392892704683725861103066237553195149484399939755620868859285162919956871830827524893263305962060584542280668971503233624909453382914058397486460016591554039334991276181497027099940229123427585245199790288125585475728154095608553612364451713639247242826251411312934061795236332901277600691826872716611158656943944448705597307751092268964496972836588836844327574582203092776424580507591341308188824877591778335823825909755188475278606591529219047063561166443591425987250307197175632726292748150967581220315451671352605294375093198598254861462105366603498524258909716428287610489442163771148924763297631263187794785422158172370284667350098796603802215811527097421769202893083816954338475587096202970181105140005877652780690105190457130686069519259056103252314864823378966689325448090731495612484565073494514227533181946290695063289517841964535955617509358254360405560194223431241098555031634378180639395661073276471670935903851339341146532793639096069494898080129401395412644171064649572645596805433056883524896068492831802915184893570789348695106896847568955819126639842027831476869573549747862890532640954785350456288422999329550098934044519774475193720157536147013790721154881157442621299052208314247305539948637534543137397839202529654275698038939926135342991286040300287419695654894684146039853221380517348706511382191442934942365863344238346486410663514539756296644279053782094609626656337836321909125176106420640202874660832812556552707107147783068091110634197859734324624199349761563858716957146750312242310745598475780531370632786776742036289288606579414746286426798457648830963523605132830947409666866041851627307155473659908391193006075361500324765086019099070508172673486503280649111307061964220118567823108196524670528378914259681066599097348706958235588086239791700176207244151928276872892523604630043228342707925539731549134280346666817930411052446452453467947057667042841768214447110700844745666973794686582106518285029145909328143778718767858844581601509359210393563921582960196404815802805013592979661163252711174659209295400942334699913289150713412191345641449475497132658883288049360416072802754796318663829992284988302067537347428643953868795469101405416918222338922532225677110629697028913785456079389885251154025525174680505606582834175351825716194101359309951124038885797658112464914180350476632160026012201413180063597365167455164780168613232628929113086044123802511550204172091155867538039069615985972846550732735713912432930710959688384525881503590342903229483526496906190746557984212142808080623980467844556048254363498128955076068444841481437565071875746801770808310694097554058084453844618713430759375501304678886524866731638214561140841018194265215101233694426900287719341443690290487976940519317979812265338156340523095738324661188181293865224224010774024760716613649741585330940580145249062524308748898230524700536032092431358862034783257027838176761347543262340757563765217151588914783309895058500705262596636808859029580840319564556036687156272396594283060983069313434403993422526243662435848748604410391876445417735099691699258695677618058466441227452122637868475385533298092155363802510944083329170204652170495547218190477469340451533017124023182235843427151448687872709872986449688725065721445565942792856092200754571374781308441710302453498614359275089230161521223284067938061964442726111557232155791654120013729333959846040472773612945743391688277538359711789660583634961889458985098981779927429154411133973645633520325663632325688453791823557814328414619164252486761054213999002763811009193916355590620027930381900985076038872213808992527362522830743625355474257216030634608243244524038130672279966183794459003982795526727727387410246794151501554625452842121412010210036942793460680978194697144173088745906953004847895796927459802708551636438503209678142462373884192427251363613681514076204094790315776927195029720024242698314920413589837699590843857818956540744958806501546565491288048227041312350248149766598856241430059651483480160333897643790799073826821935882989051207330032363767603236953857821363788007641416886075248707048938018526433267682234669060834819719386258469017204863693896463809783331278377679127639778335850147553921512359830904546836850472580735727482916074348294567598081288161766762039347481109909991270153227848575340680231410838816863299603797543318892146978142308713682541376420084519507806443703518505767675549391634374083098498660488814607395405612746425578960507541460443941752264931437535751877007017142216230406521231152552576862257672889084136354869710341465141240720127540565389213303934960749417108451822744383843615897282734356441154482023069562563917784697380338510535185428172345725516187279105688262184887608780818632086816120751407004041490458214102241582113745129458469873092757286513525367761668730939980204067007298855681406427372870831799847233684258185494957797871171192958222012145780760818696047004851947093926397199628807687249285613656783180741425483297381100111533932603529211337578864499113263191713255331014398166572059741257483891315599078721981901743946270209472755925001097527215585915421714312434113249250132670329067213529882898510390068345787471555627373571916786565747632025008371158703469988117938620622757369852769948709372208177003692969127730631033025006535548709999739012318738601737155400919235797307663230084912192081052449088368409466513054850740331896993537899001053292055463549593514825774560560164305015674799621297408672091898898596386004136488151289530599931423043708672734017028569947068717927859273097832333884113373553153908027851173404238221742551462714833572140043388306654959864335263755811761576267236568712255184661834453906461060250002941350689371601802338719218836154694766835055440287487415123440959422516522617189772735256516336560690380461251360116147121369085254434343658555571714606082329233170707001751090076318051163855169917458802650684083573265022089700133831474548255733657491003260431787300230406843346750303791308317165871030931097073567032596671884727123671718865003980367561594205408590963027768727584178496310187538704621838041119493852961899087941898387748789972230740592504628206038868577915351380870307195933600939336544292643486522740632725893883059533031268700650880663580340501762409312491471980695281826663062933811993204612140003460229825927105995590280125060203610307505104635235564630097048817601582865904642784009771995545464778433547540402719744826461528273520644467420515639444286998009964407309402232603893656728413574516223722788586508045045454512038308585598102724955514242815292425627560514869842970009040061223812513193863128852164110621710934371425808975606069177606444667980635998609479816534403950861486263782192950958516422381081033463305120116756018037708768104070052449503498954338633969355947476779022946205959869793287689691128639119845812348385131350454089009830084080187377943495301547099303508688328908821400955626324924726901743199244212930903886594424951810130058556866100304013280086834871290151390355768422211171334633826834969281127301394916186489306719960354230156584695031718101613143786671976578104809179800242649227389197974638306095481692854585441259945936650096837768763359263040556715772665315644941888227735883136552121213969673316026218775594105983792320186779571968837196834181797812049520331612783337903003175128184502351769713226052560174618354108085447675152110067011339637661184112202406251745564681794144632224622709493110590810796370963964351277866899435383626012116708202576798176236211527312862617427351832934591222675497084733622194824616485359683008677258697986016683376449504458272789480594852502551015271202657628237876165123970678159279577576841706388320355415529884743492660929114048875076789767231914483784714089581432674025980530879465001704665782365331086674805064052789561826534725548049971750978452558823133853239998387435360124778772022136213503470893241083328828956252273474319790956991895311209384592654514745045845800486951585549222392753084329711683089448295109794687466168056369458436898114212947911424964945264593191463718014591527366040512682250587032589653268081026113489553828240117231915915567871797972331171514609733520699772945729430043850255776940143306678792756158280071218149852511584105474295728933392840953696487803027669209983461733226878132354354005776439674136893304116804843452430985636923569643880552335952285552299257873680328939071855695324878192110058233590593584244583314515256373178829007903379670305119215900360790763850687962102295974117965895038487914223339231861088748659837611091973572167967642515391368438689894508607964231259108926806119598989322690086544674859192954304570529170111120431370992869050165563385320470228923205333114412507681906253057844357755647003165814870190517382961766135280660698109261488933258070465849702100899040176781399263646901942814409446901887986869562433937319555003971423234783542024401929361003250906353885961221432780719727526200231624111680719717774938472618852968739656359294570121647749010765428999482539869339932584032021978173985639134981865817592429853455455416706948850207175515047506087229578570484410942829480883356004621957289918441413175281547002737363212981091258689749549386423621492223462853359316363057250827732076174544465611627210247875118343486638815376630148323628396898532286823766318606026752814790992967677870452312166665451237555127516201558345719465996935124568236448882393802998635345982546780556859315321996673820756835760115646380542146868361677620519347630832794504919754400867428772196053747314504949731197439647229608498274935794198224292864879050548756598854405578150660943905126591773402146238716822586502284105236071779522187509608058654585842664426169897373749861049011432608536332683097187064016983911335465205544025204361875604355936469463886978765138448233547854351910618492203559721946328831569778992347456444382410295112315173907587834054980232049792064202387980245949983235188805770171225411574454802573265505374341655844814503318420241818291639826125405298113434096886504664092730164686327213219907189651807350925511325910167072568418380064796137957075212572303094587464033117951671960671996099855393052705658975237898655301383454959240206428631141384033782039105854571920654327042053902871796172365745609139922022501367862602706431784566032934006002018644636977262172253818696667273809832492726009770370570078473490351364019808692865577120541528147995446473569937826729893255329413236251630765276691522422604684527970396560878755228548544800271165774449902793999873177490373957781982676074713699555032490258753935277911038521597700818177829019048016425217523073965756520399478867328189029948397241229749203493838104704490015367049348474206278620757022858654552178961930192089993478403671019882861881017202455399156980322046007350764101796275195367034590202082566125527565526697232780229915751596352214338130824395653789906717126216763369792599625248603705162439280893267335073282889567185901998687041415564229340063241443436097718230158658120491487034564994639023146544606397781742252288875173059590621514463170745025747444510454611835984626495328539895823966681254902663821767926235926596389375321679488887112196559277850744924682123603462746185996615169616275483615418215615952674929737717085416442373064757100132376250063268399633118894158413164140845227247800598862861503349821838145778931090679070156732053960823401426057560694846674706757647975535991127114835729342379268670210621398088999462402292306958848302840653937205160332184090743226029721866045009596510615435345867061234203759989344016383602633643307796605461459129535058826364724262685082374871316493091195555102294569309694293605200345517892967184824657131938128989318184281686850338272548071238828732798584463449732036160421880922111233252518842909742602365091254547207159555609241909291159365944010657525177473658130346681534153322943494772870329984430448986453871378707776225590297762349815548416245810055425967064575836817417637217179031485393981600382903739105012666245586355051654508911241684859138353555588864728024973875447088568600151368745921464099861694830653286802360747876663920093033588376963665210066556660413439434514662509249919963893573108098877248493294002361608120026210010501898561559833540476058138865856872169833666959436288940196057729214312128224789897329303434125445528792645291190003673883444408705662095548975387591609067627595648367873708556534931499704151837348771590002761918570915792423433734581334869466307427975651148150557122903302528031978530711111487842098698888949262796239405626814773302568153181837917954619150479650473417594688381630105688301124528677516285288159530193721806822311277602577248685486400895071216826310507220318634620963665801448623956102262163332188975332655707598642197014271797667265949463699404968047933231076326349705376200820699942350853393546516028577726930832057210696289789457538008907846459203452828016686942010228008601688136156729494211512756134090442689818706238749699480030730497551704584555745873635964916014150515281159880251245813633213888195029989323069264185976849992622299920953148505506182349365968446107059332603293995043723915207362093605005472406971267187316465004004098571799843589318315926648205601999580949237820142880276711840756573701406552479799722231429244957332748429223497847204852816494115141654968630391066538751829314470471885518655512179742055971497784364450865966152203075856102819304846897789648127266314024487077096468287359507766129006484785300311184508925767230687516631136808999440462622747054993948151628742408947690101322170075612508091086397734787204045382179028471486582434464932037119141874831564776379969321879336258820202905018594103185723726977812684307786365178349176324840132324406323690828680219693956162054059828235474769133399750867438981149951116452444163354096589950206626390217773150434335868632392618194295769936265134605901757915807329122213742675642185605298628878872267929470932072264854609777630221646396069679020726440922603186862257621024379051951357201143552923669170542018055233138272742582290561676016923231971833348630984782499183901675965311800440130437283962606785661092737294883360515876008278105681704714576488017607207737411538930615354976269208554079150469079414101723695841335540896050274485221358458265536091256982724499974002070294095979199865319351539261124293083347941775110544338155040351892318439919405456359815002634098909873559599558026903360624463629609342118198838408014838104335397669599547055517347097146285626492985188262737178940919386945910282888759965714967620881773404355258659225312336884629849998744517822436694768001759337445936459125219091469073476251361929737479671077636125233310026842127692079861607661406807909182224412390000914452971391664921659866870951203654569165396618732075585669691599662870403677248660712924346832403402983427318217359792332709261484806212861630996711448126977635687345164293846060251553801813705141249989141504074318779427512727065137593439322315812620510895397224278664527880053026070408362077706574383828982872654814860712694650072420482813440888464529359054527688892337616591924687610910689204206029061574010090852649868918409069040933731337871263953205731853135290684519795014347524565658916044836315481113214434449245427436993688737687418392113017716445445244926531875326386420793271744931698444228387293645955268407332802751287801706445658797984189595044865399569834291373489492776052143378090159013003536103694073486465910337118882025787595612893905274101400839148671404075785419228521056737978053697054630995678043169177317925069430685281634992598581029691471660653918072028768190223431793539291753550581878270807064608177897304156456467190095797770843528369152030846010271602713810771003031233064359460176639293166071962636187814932243403413029521961451644540658392718876330850099337082432808391166576212094896176091376458178152404525148194555561805995305563273034764448488795131187416419291313857878584144932903845931238124760886534486917902997702214220844528866629944732171059737541034429167081281956840337404332572593564780632717217531678048399488623521488789210448374348199637109132298542973153344831475552173918296016646393364109043090591686756595142380431890464909742798412090576676916864488253958056014399565411807800269336200904641674394942745936276601314318418811417207029398976045784116728150335058487490336458128972965354924232338208925578274805410441458102433601057778762958323503637154879593428275198090160603527795826298581259897395179362539820781154088770044391414802873225382401613834649949068054801038468864229575461672367937187314975608235189029365222889895973528006086608457811780778652657388475720929713403418372098382010425895237810878790465035868815703826515467416402268381544094792571971915415704528312883873615737257192986626030622646552288166800046960879995607515720431333056126056661842368264612532534834152878104151149195006319452167750142565533357038800110165842938820396572811902292810975450982666636574403443103432593153732995366584532959757209487109188724391873375614800030575084224532579623951694840254390928366075203137964803414450506866998750610681857870409353478863721053936249163973296379979711316348774945370193296326326841294311919583677018211513695013048684376683228107395910004876419615976696145414365790745198792859320593268172999920096452275094031728174574806989026103471975942460007223084567082560415763892488473575439884258520970375427928531711574188890610251184661705346307335546813972166425002177751228309113751416887716784524584753860241839574052600118641848623624428955447467521812483131054257874598628555261330670135005973918476564270164069912543319543649146335190003845819910280615507112687131979595520757781703460659149820093739589924274354498564705744364234317354881723618378479655554964838176630022337070213260677880706706127353182807174369722238169698832689491488138794076860684941659914200876671086546313218660329258007987798936694430151701138431318317049098110375934577973316867525192459268660227951966200542938116605186975418815363460704566951718862655327941449949291130971543889826818620885483910176924061689461221488517039728643823954516520353511875464192078969845733742233306320245676739723366403539763877698555589234513032079223244019882511172902440438312277039656776961199961874282828899897113237493273929989100396390461230010883152659294005122882360743536331749013628038863343092612907824566430182733574184360158208966124780912903659937015779694014737044611914453166101996514306605925709457068624317779330241944578139819210929363276026162096947559981153744665215985857849367453903876488385644988009501339385495460145912488900888617282557168885535508488363999640064096398736077710151045558255614128653475929380769596558257201710031191314796172866091016839851085229124705466705158914279206668486631290560900157286194520231951883797913703566645606331702507885496094887439624527987265869244151183975478038196922249923334082242294304427157868616111942400913176417349255830029876557100895754055692891380337780707079842389484276386080420954061759806305279248996999635259321571609994773180969527857907095627111155459625012294616324551969908336753784049915744686349155735778811022183945659535752018211824100940980489010176476348460790514105079992392971360660236585712257990508977026035314337414275415563989540667141444715190845240324653414579739525751848742125362398977733242933171185436276295912437921312124291443590298167139262680564334246753712768919601522927861257394075547857412858552897474266734343783269063484918988989731224276421595531541554397908904463612156051893956781753938198656680457423985990326014327661257059736789452736501539921529306300160525210317421572419089933303454145426683905962166139856103258305761960078525342741871329201430028625273456760266841997377023452647900825712499509030658163443274238353352549658039040113625859743628033305449583183343510534294454047666781063444397571912582843167551975207101548540993750860272324462829509050489277167337977967030541530073266241709831387560481155838779189877700794689619866784472046677398231692666397778475718678559558852992811064895753315834405007535737437747218773885575799214607972175779104346673668988533238292803294988630770202097793116971340440384704873634193890915403691458153123751304894128044441508929661913741307029859449582767723277011149641036696279366758277442279638476273024507234401943051503076440000528703033720292271624838105055846778868435719199377595440852691353697875168727179688812615792925391563921013962140612770144232589786462200744473892344069800100845825631634548277110274393227995336163284338104067794681815361951909501855625014064070990845465571399077062789799796832191887901306089720203059729998791801738148543987423655885440516906319589088350337579394527047057484624865848588940617789290128066329110570436469872522552865493209515102075141357385514201905922647337573552755680105520476345495559501659602810275828310550089336792784630878860582976241195851491122432989896159126269294330365889134578632425048084163428689237928218446395152339677623420809578361322479619337235156569622734776694697968541918182836153195818383248072552954707442442157103424797840366538860337475437881169693872599248707181340984510092823968674072940516599313727635739524932461548133485399551621315034786873237066266794051479153298361720700363168710289674951615051685604372858861672504366670055840264148828660600837575721993007130017738413041867128370765991258096843279275360855035761375058476481523783119421649871328596175822889523275402444651845016940251138365711843117412602852673273385195412334619151956721452568382838508876728426398176091248716760519135564079490290676189332309327779474176054075862825891652456567240692280998701105423838536625192625869973158176350624556484871628216155956708836275159849283521183134002275261697685921373018131346789507008752708767119221406573210680651270946284708586976612089938806540244252718786078363709758697293780673103673800264045841834557796129007598577186068221007203613083016041235068650076514025464312870992872536741643185548259411384656913989977707662740176965253363405053620875718626266008559628785087663433918529136497687314033278945809594681257776985582097660730456577505639586364668756570683666222696053096038655357462471697848814556425558557018138500378770283338909980615345328447342576089736183306629801974668788855317336647087283434890216068478626109582027709462167789765303383657870191424958891272088998567176493612933333219994240222470766590659614191073465945150097318693748996105326411160660470187761717106171433466291562878850496992185955532429050290973052696602042570490219674285943455229880321990890608832862283608647330843892853974421919676233651392706296201054140300241432109626768071766885066513880284613846044329049435026533719443345121136866069752769386929554338267091164894012910231386046719902109951755205763017365375109340470357078773962184749327513554998726095718981069154985791180110844772420950086097573630419345788642514071867375228016668177092820677467578029845366762299775037113328170743747607184071560345474693308139710610274284874756765314201276581914315272338819870385565685800138355837144188236164870788548740701990635992756868238064456573699409559930608233944815416444532590791091733203914454138127162235052977472913050957145417597995245837400401991145633247661450434014931789735144574175051358097320048881590235475650918075777335560946341521565329369876450965511634849121878944822971250042365583065836570671076389870558029801871271334808013371454332306371489175457083968886455285376606394013621839406337500664545187917047019087603251792599449063476033835267511746426847142387116146898892134870795116223952592158597199893846930381051793357615576552324899838086987895791533747597825325911941708995583204617959019351027318460695886404767410868740474383554784890918647147461574461794255061117994300784109277195399544859922537846288884389324587603077470470810246870600876369136693675794365019798358950718795685583514986215698210303187563597441033153599813130824999021844450554572423382961237586405108437057411454775968098609333233722280159531903576997590955398450162419873875720006058278143523293010246261458073156941299784093001769071146155848009502923511237471797411196721907515626463018819560710828810895016943534150909483958360511901093851101015795189349105953874640777126433104838856164035883839540384498689327359060531985571587835901391482587474759002711823884530039409599108221190364323917327936640121068547223422658890568313565425182420093892546082721094628834363937145222661735512230775447392796594893850449033488397800693980661953737503509458534932580520964274844765692247417699662684100395088828706325881583344953203253216676510958818390258292058139584306482739432642667098344983027691420148879365726517338868049011383812879296170789478903267504145961676545587162523823171763148729223449749273925243375041106691305190763529936324767720916099287585704102173349874679299165917819021193090994145394595064183336744681207808235274665866638192166272528297636842263769912639360613904523681791737124557812732840540177219854290627358459927616414411890278535123691858753779569563339313274469011712008584731254737373151704932992096952862089608792608211611644202269649119832792935134829172368502333457425445764194157232328027081723112180240201724407520294028789922036543778405166264588444222780576932510236918816878595461130824079967891591749187143478185580493868957931083289141460882536425896991307337545303070176130696333495926995144454243938983481543832906207189202434929534012658607778689533226615137683324368396252444530505193635647063849824299993393347992702760913008563221456776166226133857047661048447933442678769154473646081968706039132199225045080752162373329080701523368609115971510832602373451965109155286840748342508750772677214917452983363981900135469507486682914893334438211996568952179670901980885614215266778334447713410382464259172646665505288077471427801643223165073422986054774856233211187590448144337015773841643374348574926441121322527098478353354244428605311965142338079766091358882091837145658517215882510290267878966991381325343058643832350209805337544033219928757141119534235442034238543096677856490697532073518521660798696136786697669039610790187576231626788327639824202104281405602037899351482499814611146085213868222495574172197772408675273049931391894194607591650817090142554924242268825759450813675079273633279058099952984506863478452809450882449010495334536443989451874887838256238443556666938784014961247386249435731117934322286636879911848157028499686387382563717174023046079823940561267527594424565103691037157045406318134443505154778915516303830624301487894893860579052798449312801003309164910788130708516952350190657182839001126857032762626700173200789477573362307693988249007655460641008616385325624341591115530152641278111524363999865994849208326301629285436739992317133422770552497332600001781438681893326864427570179218860357923759820810155460740943050507896246158866651463949510745207023799999373810827466051361885444979047192741019654679202057901338675651166381024080607761936457611097998459964834827495450416574401196204001656262583613816721800761512122411851268959227057463716379430124638505521061179575497291593079791476786631359978448455545337862885022272736477969311586036019491412636249012279085300584862391287719590409018661324699619016040417032475388258001440914028533968717927222294464729135448494712123108758089487568669420202862462035109740688472244440444847081899796757566288915370102636965498014926525260549446954823292380152121949461725381149196401548555355512688232192072567405246135383372611788630160821235091756892428256065153023914514881930576041737340711995133408713778442999426495557309244560287708537104640144269663006925645283630654258635783811700807903021460556770441166979637289932234679073468044000509718036340429119486422943273153029785183049201217432314943148083395589897877601856285616996566615868882067476307975359752232079191377305546339674660684591374550929354311236479060375450330539647883244417183672393495917273009550475688132122498861529852763472200828145829532150278726231688596258639434127184119822725056927656972544699554926532533821410925736822307109337849904724769026713853420130043759548256870220635584428232370858798135831742078140987369067806803909870474687966819940229128406289236307097893544300554733875663084501670973546676113015647965087678424341141758148852734646461936133048722669730335023585702427895964291556380139035200758244390259721898767420530648215067092460628241701341564126754363355044001235982795029068888549115705718303701095175323992067110433785127393788995568246723393180890158178678646056377316364280071201515313814402584694393224660343275023881122740223371878531906532907570830750315153870096440710466234068949552678039914740154375261970065395278096766231929609397435551458876177809107517120115840639321999185357366578301386015110884652753648134011857696658830683725205928127109642446831529175144389208786006891890400786266480868458012882682534019227672621012716780877751515487935796157243499047760615123423893564683206683636730193036756263559243241848942741801313119268978833413784927123998453429620849423598461128898281259199698122635384682139466066124181102497329489144525174746212729582445943271224919237348949273340059272747884060121525373746175242627187653933267042855556360731259555064808714003493985563689224547142484818678660159206953195287746095016160684245781417404530435014724414266702543330307211388960052825986428967489732837128522126297153864084224773312953972080501591973067923981485113857340222858506504043909898854873917645579454501701956464223582159845885269823350105896426025331188106832417886890344389640376907336913009626536476539872567725366154509326611626799425098993558630968536543702500683951200296869989663500319327986570596964036550401059162441947114146625462263557900205089754977349284573924245530602577126101861861169040209158871296097724113481506153351914839323150155350798604495833766586695291910094945882021473500509648246813215927223586374944805164342254728908552098087820443971617729679955386666414926086339322988942005780819431957427377592077337082782985756164195727297807487249320363819476815421575708450833416938142802988664745193247218451470725781696941018649569637422690116958872367161868379381941724249026954510103622081076418091258101076987435597033138714894120302050723102782671164944172275392757185696784385378937561019382848958213147796486309450026706038338900899922952751651897740714357893683963389826304724616803899143739358228573268172394078318640952557553902997962299563077793827209934096376040099778650071909531057646721029784703965513993584766615640829792414865253789061012630677873350673218978440604975372463626524076860568438297035493361943529544210940446220280188057689063187390637362843986787699449206074077741005123178051142573919857080900471878396244392339318588150229459438493379176134263207605597229985599829938684960664876008437253871400029256701417610332518800627551972711479737827433559512092239458360174094288676832459034651486418685097577717345703580162340554323885916479853885243946753008693137925828496444223067078306787104766891166007715976188201806184550508382786912827674252805264125274351624728340284969226730388587529441762362104986989350306855484796777381595753429609299559775246096171975867014149449462509989991535729546015538107954619584878323088012122507196270415947187992515550099473559747952742326519153211023000185556087698108043181442644443518542885481191791611245649931049019603496482742379135909002420344699724308218125760222354046949222583038879055489982364326343938255988553701839553998819572135445338243257885694227581404677161005556252473958795837713809876756647547498265441426822744442505687470271458397792214859514635131867401406195846497184654480063663377646270195762682142219162056348525900914274179985053222620275845328039616846801906265681461182360941224734881454718265692775045551314607001393718426787000713814182924207882579951456248920694106780260965083716978385333549212954930091014727846288179371121320011976212678714009121054541283020831469946105556635502115934167373399128858257678261052961084502206427752656663324236668658201951497989889771563792380290594652833340034862597606075939403625676619168254183290789988398713945774139654849013134842662410227809340779364538776257805201233771109041926073115796380583209114474020071373919884725113287955932164342500699094321014895407234510710789674678548079533822234595514089010977801930202758819388786919777196892202234079956873823040550855934853115782799360516912903684334400605568601747459914537571971261502173577699281328913888286939674699373108818567453037425243483271623200817884529504262747487247598159442049356969056543962225529259340736307639307973831680177095127862289433737442633975417454200145598942229215680479331433421782402748065908146076308625039240697850452128105080957657502537726321361300961658490425496188640585149832837722640903843304706573878125495313605480005170450985743183081675711941538610005411661201639858440920313409496769926183177827883534189070344150205671396397888732343805396781152789105153279740016998292388290683627555419239365357840197036694044497937316368132692798730445739832168157703304382450421758631518928032187613420702602840652613842145420717016490728107762724336691030181861013797784340352579160328897286073684331260994101846921761604218223816797221143730880338573762821711712718660640314288060203600534590771760066755334529287250522895430877025137551541024572126580087019002635512317210287580977421209182811532715757521686756533857116191360058612121335187287237920725469110035058936560014360410095380376272749871288063950066709318846740606496812137480359885084831163122541981739242930159724396165150631492445444755706040489377762086933995576703774351660177338975848005566015582215747204770876639036952406367949144312793229710019583976841835482617639753669375690527324890186447627826691940334608996136550980544484718812595379888350314141136162111481314920264346260227367821566008637618528279759283904746797342012111311364248244030547393267218516593478349072704494369060679888346361102882727314754053503656557657064295012355892933179934335916245443727013203958386612381746344147960100933428278292131262858302546864194421070789319877570719477649266709539547464887248905391828906309350378534305899731552709022786910475850581675624811381845778690416220068335504312133165707492305174575755144241796173827406848257048409339472618060785010907196032209210076662413195182479581820578768659149918412583567512562375813624271870105897447412103614924652443812837103846865013101263848432760459731255734044044139519920526154199814951826554032449616082312053283757044797869446148015169221766834023094866919223696551492517414089154689852692924035321831126526799346660938527037831337663389815321486043833566774896609709426003048363122436975025679453397758103022562569250439882424589227732392137483170587157368007750684123880549116141620272353262435305775475726552944523404943767527674388037171911174504363246537592198624702370041958666427593916109832204013592468661875589322700399879570524999992806457129294038463811413809829849200643951684553575284866731567915045470313823357104666625246288367629252943743069445762049273180334681333109649426508999920194712517330858386164124788306731140749466738538183406966535226877201571619590882642962113497074211992940049219361775100351819803655633209591921450162838142863355148422086137910918351410071434854677091315480235223339975445899097877936345187916632968288993065326780394871340520367343916536312921339772856801627401816422740607469084603789256610769203987419527789767369530019387134367142439700801104908031416323855382303856088349936448424052706348792941011688759795743974959148981331256799858063093287356394540931059439868633667674804164301426782510610463814356200078001555114468379499985001560046970470958363442548035466016413110729974720011935109297574058666131002214535965825025831223695390759493663630067546735350549507784554213041302189936361168110558333960680381431577256093012909641109171821509802343939767086455275473535540522871146519386966607372431309951123430241407122101770378141945142385686611512149617113706937709191234896000449009451798347742411776764828894241564415581723928297991287714071608260795135540749434270911713005460774570250244863700717486010336417962745565129829114002616705964795271025635824886731979238506319314451234720302734100715050106199350696011152839108832428273564523284386594603280287355802556999364066758062123730415761737069423253922500593537119709058524855019909116484098205304944679458470427050038549903700721428603485640739937584657040945647716645791993972938402388972595038042458787283639572656210795917432920909658023754454906484587598201908903752338627308712795877875308758818787065898268159730266116064244406106863502411051407249490624568470346907785965098544539819923772907287940318076894730353611967496756192097970947039056702302023108553267846399179074269883156898783306683980736531498683693311119185835124260590298630493049269243366169860035412474098295973540053133381914666409168371432069468013029642228643627919394051936679063312764477671546661571299712847497329112487633512751038265972611857146071221060158167424344715715267121484875181291150913524990318605939915662867492241050672124508958926923775314265338590376029594316869062557844742358435990203844514163827420852304137971563645063474414318076631932985961857412645459156982214552640148730389730171242074172622126702999850132987585624465304883486463088671873612868010128482167832276448016922333573039823916363440852079212864880328247317571435119600883936944408186088177790998557112793219886978266287425455710365392598401532612267360998100071168197788925610358065399954881114542727165716212047044243303349983675005746920896286352310468581965923779926646316891036381790375189900441190227650798862462851232769680274733839383835107250506505426216781894904676732343165760022535174009972407432535168787034520515467855839160616284590860836556305871559831817864392823226430465745744833853824082271016484802685255185484509936473715124306734086815321847135288072821692004097255807817289573486269983761197468131505134796854992816700088751408908272815137527729813442429488607687589779697514893741639994322292580760941919556099946198811393040768956785119016096277102960476414183048466561707762687587620052150622402155833823546647660486331538737851149833248865640048192010596180189642157042893846470561161771703299979442375298090544674236129333802514945007539025682744271534198512200698078388522739014566576085600387428299364782513150570232901932305292317558760236042236774109784777725245300468824730251095372455878306249022817441634534645896850789590525011507042887015217324969810721673106958894696417870295737750929882176482793939664133789479345942916972858628449023448799662044382784872978633095443238531924403040063527446052602445928126818012370619707060952177371183533898517554926575976902624149505076889785313422762812386436051057852223954515107416360133472887577450431689135933134627433441627991713440844892227534874216090906240670710054467193087325313471830812118665000254837260885795325709319089854463807890995994320886668763703403895450070373821954058227788698975123293473399748654271005641881233073497430856373943314941758665193892371015419140289034354382221982939837202691721614708891575189944318374797510663891458431636084019790441031780859935734993149581717902043036618672117278930051226372968711879055799686588268419416842349134281169349709791598825989036508503676692993249422879661005399784331174979414086914854139123859468465610375088098657933191810175845136066114969629893308714932186907036410271453464292838761706923043422841925697329542566152327739481794522019254952650439495685171466439351231953818634805030349291612553052404915789256961500618241122008414714045067704528600063004439853332778817534609756627746267390660506143840546247469104350649883298628963910740622718945061891475588368044964755371024005350646418148854520444813602914689921073891058313994788985515956182807915673692571867650329042405102947105627878896021156753415058325797189764688416399872863618737443085791226395093755977419204479715274211160027201402063492070045414263416383483858559178440346003317770280339750620147291308476419047528408283294271237560704870930231554985978437766008072176426238307117851290212214200130452384823081495611797503822843599504968581545758420729225368525653523156120015551821567884616750682765606733490434834047726721359138088333360557306613729603973311936860467070298993979713508241182678171308032940113781527470139494040509769882387766246616237654403626335036771660457301598011051056843882235352286074448504576899123439583578655582888788752524759780692031757503489340963343689067741655676385479622489455036082218912811890408389558633901794293528065792711587657501666182040654457562674603669576066342329652153167132037702112550176756258968478280507734078811363227615761881664707695428855375774349948008825627260058804523277771101207210187687700665993886576713397688178586228590270449309435189516010243059591783220204710515203996152647304009794855133992393719304149109417448296958060440635864354672045129535225590371170634660935125506544840267912851015213041557139472649769327256519967690504864502350647384376810057775093792658798416961747840337840125328746606664926044525753039659775283200003239848064227396440527624336248034192694368544651170137989830913704627260404312635612270514595718835249255538148109333177685510284463268158478879727450104585049543312077404733469455837087964724135232002262590888213356998660243958032401317850155783472473965512328404500995918011536707992862083954005160646225749848409689117871034672896193897272919612816970880595569296599036111338374863278092907377922416114571885168599219031140481686617907675812720648070107541275031262070202678925663463535697709841448409445355813541356792815991572410250873680377639875813661361729054069017439002258045051277035761908689601171803085608955998401894128832799112785695338976122196819978092845548663744503592401938848786889330908028619095125737243393628461436526316230740690388180091605451377529065353109874633360210869710955524192199685145608861814320299947218602708710708598101910551221918306841723623638953182030500789954276917527638866272789144495778655659467262605642370627604388408555423356105141467385177937436753455426455971168303377085270467261062256532059819185460875417177962629798815995323608257272110926548556851479693362558789708037254197173256898682720157918930336287153257132825711911560410404359224351710369424719073532847824835046127948568264376627430367566923193173663924255636745142361762910620648730166727038332326037003163819770174376493035463787594817551951998906582136367621140964845982732224895629603888277517841696766588069065925420655568559975992912678784185370340500010698205804528463316487504515529299249639569079826056392108022741515939629992439211013217081193203142028043121359935456541492260965585286180103083560708410542898797204651447657070675701127601828504461211060244078494140404412739373491406653930794597572565229208863946878095612974859680757766560262627124694381766848541884916114573733646890157709196297111944453503021911258814921671607242116847354316129469188534375427993408647971649987159429631646900726363956578994331110765854195502679579125540747762273424911729062011095137208433398815710426265775539415979232852140367594344939215463249685199279637446978586407810859584836079715716214568819793197784662670502902551716435540763736054718259949939343166646946919606868439068148814678221781058641843796280272806535562368430399667206037659901858429448701753286261813037472316717757286876719970122980953012950632059443541339981106272271323092752925574953309500462612694247498170334574840718036594266504546172422347500806047379226758303808055584203422453067760949550055755993799085551977942079656912874312820957971245530959825224861474824192488764334003036878668619775445093843008360281924828986106470923832843798204509935337736752610200467212035373983209712497751439079146881719748269791559034500798308255252586738592255157597684235443521770096218841888655407766073422069686517799834864476371338292491443791532672118446230959392077522055878830245921402915558710546951488964196892984437175215489940201798577645098467851538077944259849708296865237875125613986283159609343022475119084614823240044061941701113286807696842549710111275655179089746531697033416506496271018511221286118713104125081924229816603719803735006430301882618512881193544264196774036813194590033951741953024559160710722356485520837982418569105828664364579184320093919743026067789085750145451170696334311733773919012232718788685608667839310662969634726583165866708099267103241122235190357226654188843947248023610200477090394190883431362778764638306219079436230478102732748079353781710389893469539260471008297183222666610126780476410840178044538546065045714295696357405317999232019532634141475899506300998380508654251409052689707744232456983403609162584582112684860132785192575436385600521961233809216630445852222069088833906751693275174776719671810713484152159894826436732637974978475506786309374764603873815424955676977274018526494147267154762458583892145321422027440376579757642371445450316249332140427108623740287243643467570548898998062084759230911542733908585842583951180543968959242294009919524372801394961075975625022588928899548080219142973613216266546221629491869856134915695152545183514249140647709248151696961893294826879652212467365136091782150182846926998681707544678857189724682371894206742215873564130120007494985207654732615025695196373862934535085994693676891982550015883530515078252252184893874908505667063909840156111749348297827965849315310935662110981261517672288644335402138711262730114142439249976265288137563142128264645079029376685838204587927442798710754918139384102065750928543174739080573759883091135985894323854117787534967018343447065896821864175978765626386541571671916407753447649651334634662635973067069597422582812282879676383742507931484831317104209098344997012479921284044781180649699766997595906196988588979117975478416879238362091100554127608487500287220194881583505789098400343951542945066720344554086607985570553977945737211770893039762945198193876976214728992192363386295732889023963550394657915672085188679967426641437324383660838740552463793589461393439919922940759001281519879223491314211420918773816490971665529567956070599777029252658886406648257367578589529394221267502352256890950560153861150998276440477916082791989415027482854477368871978531466105339039726227827192538960457859337312480207514002955763437245972814318291165036641494163204350930215386867555072401632681191658658436989463626882650936855626266498526056329367360094130117563227563336289248329246568291336167895488946128072889390530061325130322441699600450641570733004353865769166845755885250362837376905637228538461320626867487077718766071524306948725707064474878550553303007503056568564370020619519570738950230670523677504826203398896087042009922102482902797818051251376944911960647607608057832501672273625510058281473297373650767043425036332820914999261804369552576279206079408168607730233906509004460958153695105391799065346823767345421092600842236797538656514954283727258544148055863477283568515766090066813046099516383014240200204644468077134946257191897454999876825404680670859142730069961963726405871913449665311469839326081510473877918699044027821567328525148064638140568664336844010449913238950525702679379474072387008659179360090560471857832370612102500759211963554035986124934355272617176549300221074350606920634982718109865669253977486196860877672418181412821271883295813960122526600213305496582034566232881272196755408074784328122754489492772915743496492914850016679548291040279848148648857468704505278301765540321086223344591475269396266837276574461600076250000460273558681034461024486270457193737582803409441551152657699521990279027821467699400732462810247873147366588947723654611468505757965900223190536476256959741307250805732691229244433537765292153095702434647756172590704277627605638637974262200674154720140403142686887741232759298633839050619788646974636004440501863468683195218866142772362403503692717098696746828193896345478260441415211698468271519603390251691332939030896457886105274931637957551456321647703433471403065423155935171482818716963811262501519166102789558944425036925423013098210395219689370848170636338451140657826615145399992011442187844245167306093656973262629994898717692590118917871288681176490064531792975978711096016868287278510706776776885716325030706639510083407718748233801689033577999788752370146298847676278041128361688988585257277280206146456890789772290638084660856122199663378293471382351021350248460770031742793291037436714669684977285273849817649540045946824191089325358523043448575676768932453642530346286348617321340151996713642522213749983705124322710829124766186784227396238539669579106574472295067300337267003684610226697038660819116431414287423086688196452380266396234679970672680066035556609841906324930308264805946548489341025380079645937676450137255269344066451738351370445164228981804343631237622112364929698952139786886399524998820207305885632432106709054196101053179467604809494696413331724074953691249072775720527157275519187959305551633410397080735671948437407912077992090287225579667188005381321880869161681161752905094317387498855833713380925859118006684402561524911830464163401748798839090722656375900337027863586100282812560016053029646934586194296184805341842878128202885397151984849670845728142881277530227576250968992365182311599415214834937300428204090891502356918183871556435659298614771675954502312038988292628854936984384350528078934555958881951618066072089212034977049546292818879569201930909605038196834181538053512357848839261710558734400285484751362093962665833664641619236047886267099965613998093812630670922816477009071245439075455828051411004229324581078126012626766404961158957273611220474249531975257707744640089074550276520887198598222107393632808325006200630740527869994183519621675276974832779318033121559133651409164375052993943700725551985307517630103101494155490354906915076594519269808589883317932704261385131367590287467823284458055136816387113030838416394355408310909981255774518310186482997960211541162717324983738705961093600255205335968808675443221245988606263131374178107969164847970798370158080963655164199875635571684442558132868600450816241218939088842683682912336365832898334334620121598501702709499744380953781225809152208492627978649072554698064189135294158468591741886010431613055646301569530553904377706863681234885401315415298271666222844407240655457107016712149489942675270755263011829539512648726981744269101713839471902055566950642818263293649484045553718805591457810179856017354249041198301524150240198456618673880408992292659771731740454339055297149313616352761570991851749736530304281736496484589744447346154700814756631352018073746818785521698441105066284671280346888649226719802304477561843619401936457211489339363159039060424773516272250709887446138963011138878757055014909979034911007830798345325843343786284802417378903171509533959512391301074873114609682919526549424512643082071578261976449776453941795340682629737643455655836594908485987437960981006543113525774655993815265115864858997106468178217663574265692874613727924851481892315465563480902384339944621085573220354529603068115439501074262091348847274820469607493225457478888610170006481127187378447353725990691338965573809287799908118206435633727168134315270338056981743095138017896133365663874801406542325631477545323115551295115821191947842327278226389029985755121918765809508914387318793752039716154791861685403452726353364788234401990361871011895645305543130905327690954911143147347800475399062884132466155542217388948304287826160473651252371039856169150787416710772550463333598768885458844350650382935648720328246426817116982792995215747923790578096361406638872104855188833696488490556219565095525213965279263107057170386185277855909439114742078200158916116785354834606605801562668102177691903315831700083152185989739026487355174629005183151641254106762131783669791912495991404217047602694492019710906675350068545542313629634739950938616970438741395676435741425161635675506767587583057441008190867902162495428313791801164621137951239575395368396121471959207072286090945171636501737274596889744519418977213042292587181118136820704489198349687028904699255346428354639194972244204376254294301758153973660684842078218712520916342553088561860350832886557142647681220397430409201860965676691204927324932623363862642148681677521778713884076919711635135745384680382990296104048439858221599208510326362354363485237135296828747858235952142319037894610745123645180686600946067303501750720015483695350037275646931359085338444107216907387917835664675404457725145637694444777079812545068823102640895338001227455669836671043507330110383528112193656022634618571085350243830878351114049381024344618510509510456961916971291464251050652323612645855614765485189519020420281605599162830407818986962427457768049587640463154032264026684917358234145239032412185910278466198958154767946745170520835213427620495706101560226269227168417889507524280339956900859009076886536912198405438066968165949106255927312086673200717737033023751688325338750577563597420900896090336132399819583599756978175128351541366893955498582812037221025604167424544191113108943848700936167355031636755241319271302933792617812092151711479941668448361564412010678056008196696164359208350650516851695644123787846508273741907464989747008136766596299220123927266634647065045945809526128908992887388401530913455413987776892594001382005713264257415555050398608207022515125571146502746050439207888954721471942711521617766095324552352108004821446504932347160187248542969689700429788160941912939900463100284438835404569391049749670862313620050587491301899716714302148733490599332032350570496659796534134489390937453365478437273501828840703296857655226734591919730500232916635627191505364459728548595831280804401764440870196143279858068068165889850595757004716316229017056633894423279332816142141711632346484304738846239142991717297918816978634801852586423918706455309087497281674884675483230604963312290608816581210919075078156148270910275357030206705096123078860114679275457907553350713375680826001389435065667846782345935731589005276796428410193956169003310498153693253725751082813496601387317894144380780379531489493152651943559666389229107487843712322772186861468348190733757052988967564587809080058053872391792163990211284971852138591382027493194352516911673458268179886174635150062372947315511512857526910771054154102200400618680856863497715344129111500741036486906432692308064224865058692415177396150758998762417081589692156642209871002444749941464795803436122614570800255896792342309351675743669218611306665235334855709908212545951553918597413026237745770458652108487704888839218777697406592905607371124409673849506903829758888024855963470237854636314507558401878282789630896182383943023049219880391342535720781265374147730963092464440416635896028134256006341370830541880660233172077159755365251269116560819357366036694103950061214142059319294869980876157634527012889224415310818322080210746126530625186000667810361905877490984876113681713566262339328558929738900446441757575420701420100986864559429253340702807919833679614019152571894979432184232631026528755314122449437063606373237807521141673779393519148603352305058937733224107776188684357574316633216651821022926558141827309214874473969092232195816712003355197224227818718381956761705789833443916520009708748908872667626763605300776694257242536440145418573995679204894064654115683052525758313795667897801042152447659237154208716434629895389078243280046975669224356424114577926033765046548030186816136284950215896835622950917946435081076375326135584094171790282053835644971024229361699274775681671281208199582445080795335109063864668326870141599541751307199819521329000188474387613160426100146917428503798836073601552970156183743342866604221536258641148075961234172719875970495339495758067732942712558477656017765534823871931693219781478041093470330196924435571007926718872414927281567347455133633427431355172548065871221561149578509110593406474091254086462972623272222676947315949405220331888606259766904997827661625019432036212447448127535610823409201060154653469721454566977302938473574819330691217822640098632768705362857631837293606519501490377085990279259222447826069061397417616467429629861072889738041171947526225472270551683824651521727705667671638932461670229288423591387781685819235587245345719041383909781318502597656828956502686644042949985849607452168051907738800341836661450801886541996515466919828349179748642431724358002108272284576132082306489498149217932934285001278006223248798520201893244571839315251169890993035323906242706407893805854499460616826415031538514444140202242574380383536105067226160187994300597229421548425805180917610093954183042560483543528912833674117215834867057451314707702231184158072278414868666404524459385742354179272529788299295226758208994041512970890425694251718233804028153025401759929170591502151756522247760677032057217153887515732257468010647085822455111493567140833726917043647819298672867752685987263439153250821776359120127139755991705947693085386845273772782960748667275976420649674238888598143741419599169143137905216293541735507714970569005423578610934663305375386754413634673755111624935939048824517794390450929138054832788244991576429471957286377622603470554681905733572524361186707192226582134386113541425223072757840308457979830546888755165834937288923324731615711840569170420401456835445955899454591269649366391706989349504655632225409467207728598909835175471826944486215733002077094156773455705081222012212323679191400768778879343992900260200472082467127193478569663839978403592334905923633819970808853530309379818311316471219066774633831393276597010967903048281820361371739078691488761238632016690172770829497702085004731024293088196747341794587029825276830157540306097928042954204647770127848501456004596462987333736153607423307081465398823479402984677442448251995882196234231688574669260656565293382695102295642908354156892979482827977100270034173154277133450620085175239602412219636780565256538684906482774291617459977393306349568982392283884603667597045132010439532431692352719073614494284626153327980518596020819097411654092852897455049428815719348279921185177042654706049654716781529470653059807356861791052907754876193836244441613049776236040045373043734594570700612329002245091251350933041073958199843403069380846037209637537474144190171295794597334143711933091756339073474993207272273001904609079263865465121295823765930730108718317130879593939679620880477469890654375771050426725414334049142324459808631253449682567388646235085479671262222916794807598827699632541367211526629894232094948207400719113068131720224104172948424082727229860904793431237365436460643268741505320906553587656005694948403457895476682509407342215324549273012560432083203559900562825830638489859150364616804856860737080302879695029772689205025344018957042291474398599189053652984965893226204161789660578077067878031792593485448803634579164014481456757413562327949046410393479954253807269223660558172225358248909098509704130849903854532093128000085463235655722879024667495741864317802374275698513587280741921314653331549754102022596961344793860258749978699997254139267159622475375474184468180081004040337897976795780404505616762724282200405728031899594843788976222752185857017032403129139022082222767994779574331054728426935049797591213476153736839971007550096343881059011092695028751552955778615281580962975888707060728144968652796007945998531637538069560761263363079966529803432628410355520960754677246215079123731997772212928190332762986535230099818483460247558784356123590325765546797300297309060615584788337231672559367550608156048116207991382466377961155061522233867946494987360533042131871507944823442268149412282998487248831180505770840650224546110141442210792181772216057608646746322182198206148275111139720938964147460612368486206736033820245930761096364570939225145188514816527123083044241056978822315554349857626459706940613455139995012072338145389316903851091377151804203145869331573571840616284463041052648405891385243848235648209777234292655409679202584073107071135720722303476279647397061731041670016578841701212848248442288940473585612925948915261633936735856799784152054092641291862348409734062619397870386081625525605430786555128974627038520289446652123468414327285630388271219260630039594440587966859921141304571989207174793012536789531377454834434674920384305356926528464953462645761329231594097705707105394977183241475776918798120449833267438066476730000843563940542148943223507901306552146738345723591373553265351985473885986874875789854098855746785459462710490652982518230147736331071678164944136878144400105366595451778627677275607048491395488127555837234514436089405663633738602962548438522518936809668989113125904266905657913560213312462627066969349153886853450413927288236074884099845845167104888961654765455195107347575715624908982688746799321491403649124613922968028180052665840875121919478037891112222638505437956699097192817227703412438574756641027955340947312217636271782372112528999939257117240294920567601878700656680956118430055654697361929204733139992219020664950331727189782931048856406492481544156209770687298358457145926727042621700479042207724593143173461767115094391404458688483188931459963838363644872034003961068220280122666544071242053468413092452954154602235956124310180984280801705280689039525991605118582840927168782703621132429899595483703235007184739949559431589730111137849340162309475067229604069713792239129081026197025875160828732654549225320820043594151069975498965529244020755496409084019439242681821092787778024984467544038832655510744434994614056253678715520178968233537086917033728173058543547001113948071498662886526159561775028733357323789848956846800791231151418713945639520310310077897579075268033592504171919212533628445221243697144405694386911606974649620266356856763363181242570938478330998285495917055365931944893403316553945149636822425048438417833654758275107828954729633891005526211716059907598962683901999647341122048121218750159466321353019906783001337267822758337263419942900226820407915677817256945302727203467069900578467257164677096175622742077699794464227142608059895437399281036327286317383178406970145781900209662406675145629078119310568917734280918865782905309934050725609508406356296613002207318309387067314160916233479691477584801476181245222151448688473198768679257932401700366921913052795506765990556732409840249195857161000575295562327451569008997470778842231858785088570503127640669737463519430007050058631978242269438098987838133844828278740176058468411361924111537995919711306989749249867588244316818723134761042274482814992515375127846563736159365836287663674006858509707597844902351683944473997033979276996991096917893385395472983758479132254657577102360999600740019829028868300942735551557694244406032882121705640508022951234526716540343115094868904125253155593578396130897713188616343164696865877411737059885029181811991371438584577194750388929625173898463676114833868917047874374201297248830768958797887064450518096338198534858133474184338187650437698266880768402075623602699184584871628461080725552913453652295005409999528351695325777984559943831986021104034840191488468586931973648712614195479669821188821404549180209603191072122367636570405996818203231457616249880678421364257999919646917640946815763077395479834502678139324822821844870752704804971575999527195340634856461858837246622429064074360347422603835531732047776700690257035318152352670805687858801208723945337853597264542806552147031965395676563746243996843829327503053736023008892420106497123265395491174475856459791917294889959745478220200646024987397113836625035849033070916118739522294565773055046525726362971123864009090170283340144315758214410435759769438285296526549915182003153396275448796791347425719074532503956476060821981802583262042821407752792913656939479898624790246933304182805109823572095821109556281531306964509350460808920118681354609839011832148681841482724575320668647740435644366196817233590657309942410467842514826636521766437075753562846320238338408214476351516449500426345601575346681832831069725390712213966134267492517953257632256682645951954047743426962466551465400403087670443639816376583710109223962689986694303794093245096207755773379656855529242529645230528919512414840040212536905608824266922035671726106448397077071263138671687739803412849751934881365960155516684081061420350199340573466220794448548712650046789734199242932137520664403787456274735152537456100722308022189784314265222862012346747813908518257867412510843940494546750477291990205005367052110686094706004046739976316423355856253729543931764920616025383886063754705989287394749965120706843569888856554304043693768849075551944649711361432997534103330813636545026001657931061841966289085588168573917597061592957230012205830693214868200420253297880656319194256206347617210783381372380311948051082720290899388904139893737644472976891349299909418634911913464578276601232664638769108807745216220777501977691692296644987999227483431985232839703999693507400124427485818235996591500772427472566213445022557455815035122845010118681084508577340891941377185839169252897763826553788993679285135933748552082677194755073177138548708091734464790675003463611761408450823996597566558475251187274099643318770410823172531810267810294766958668838561115697352328965785384880995340323263697247280991254416655609681144280011418722491806439327921841549387519466232468005165888145070798205500499778507123819604370849930932098268607099756639208260104777032696513325655889445293227454018028983251247014770126511075801768989230865022532689767490805516405832443117002965848917230257084426328296749079705787317536599765004143211293438328511610707602655467634362689014427310053102811594851974684307138389886283371303611218471349099012244729420473306167088399429064588589449735636996349707903793488653370344691473484667657307783400205906971192112767463304043482401066918481162144136050952212714202619981466413812258988855766183749855748459536367665225472061223784550998970597167263553840548553757965376088498655807040892437200940300881797020167964698309639657115578962055877293891622306319710331175337652085334943645291596107271091304192715575003681089625520264794759002813129527174651269614539223415862075360280979937791772042264258881252051349307805033895177068644788712973495680194093783429617992957921276073907183038688765885694292871219685608351902494547979102945673044385651565515831718407497158663047306613812570689861569476264685497620797483377398397607050715076187030546696595695945294160197941207853782434532095167910036650848271694771080895599691614745975959008334197915119136103486889044394047597830197226846611219363394777399800224935549642629051568558455041078737981587334473617402813388709628742574659535146603233965664850716815869589988221739295331060045616919706118213599241103437069430974258910624481491575046256118976185977385836490688877878474869938479326288977302249829273960185787656090954618575830989135025332907771199266825571768586504421101572969267851388357144870814140391622809064852192146894125226665746054869306018505420507320146689447824096684919231507931940868264376176371080521166370997673589929540184860129631290532729384206694126878714556791947079045437041611752192729174999975643919118310261454868097938754447424376938424516654878816158427915134601435202154064393580165785062355107740566975918078554762306411035294341320535401634795349784623714413768553475750904649795728284205179955597099554655151235848529090552760526410313631971784525210578400126348428378450870641787247661420495488760395438932354084792107911836450367958793230732553865463717180854051306646519809870991987657338963533352952688151737301976111100103335909688451031581387988089059616629979366835763663573081322321783589154409623095764639245694607073467417102768113850101657085452310306227343685926582442345002727046281710835470148464972301750654677012646185153499696610019230466502253617067540282448091529313120286678216369594782198607434684018117169156961560097340308324578306549654235984877304683257612055326255264573846807818109060389171083844109789873705204299403720299455875170474362276518248166639959588141055689704486241200207731716179556162853486661058099439564129518125664843205937720774069494762812211841900527769826854763407556735989580619925868143154014164812403166937160843391177879428396423977403837543658566074841673795318365969898182079118493499452105753255055915681455240050600084749803176568984617391602456057236302617201625980201038235962993512478142332035721442107147315538170535070639712696640115243831964621805257520873063518551348533209805942137225770974982723960406120740756166712674256681413828718632303711196316979945381441751255947555305545095698024181938171560455894624816634640882917993945824674123020247435519882998368811851145852581615696262762590051171981332937238947927834209744351751388943116160452904193698701246844296870207618280352638265414748209281907581773515031525372043646879897212929147397378472604729951438596226866164125137443609928938724954787813446738408740363278671965978155444266668523856189153660719669747030860269010251069409343956729560568676997297221821711687227058638779931438069727432936549977980043728030326400534313306389249339493253599701779277313884285106805892733379392328152242268842129125391209732137831909883837344388030810273269735744851007293191157012616542714721568049465710261749229739750683470904114697269340829688789265708436574912284928488288845202402765930250873367221205978538485279423694325861584401066513158273827744002816911935907312296474802802240928581982924359505765095216968854329098021148369229183359364288323752361244329228455171974531226138146184075577745331349623920905683945959836418713618496963508891335537709325196081568051894839314269567306615692197587313083454206475491986737260857331093065839491259079647835442207922447829649940470411710742635371461303435475138768897105094631123633062033675807875810449275438866931392368020787626114400103917276538577861279263968465517205265387929054790958275853718224291166349093981682630462712046503082262374699023591544507273277184736420409418155191357086121895644745021655803696397777104043247145679193506744044077862402254770409801969207194858690117275507376468478794548620550843615664163162018536788857811540012842950661440342919018858356483213584558407128425479165310883333951496276515350943449414856320040723755362524674757034179690816474526441501163321243756733046508857342291484112802432054066500337118132230266606894518814205207909451201268857796139956125175308873836295629359340542259469989020189752989699313314776753816223652713996991076361844212811942296269051278055669105226769796050454208583774695751612639482240087738964209794379013725832763163882696834116111081739732383366353526830029594574960657962168186890585326310856945567602578805195893759190961215006745544043645516692453067261668979118390052316695130185926908165545756598237116170479616147989414057997776525233808704778982130308336504872604513512432915735924900110786666608013034196693722494351524487091413386979295110886484058040040832129688178408879350057015787882614854411156265659689481641571363653494388043876626235674602235355345674733052375178080383611866257815077778158709681792194834327793879523768009967996621395903323074442160248756051419250974404625788304243344141893593797399836863544646911357910232493099111027917198486036172689777842184243380412799493872815586032506049467431261458898028479123902077197236336628214885005720176714235879471115332730610469483143060752398352109488735109913009245072102837704562660030572807228306572638374573782477152473341895965400241738711683920926785254179300621900234498242006616893179915235654929237619512274768888776584330894231861052899421895162940726660080674488421146326218011325455140261198938553980564684479552151347324236760343788444152485343497030538248070762725267186994849134346012166063303054463665633330979791842117161000779933918556082431386095578526932359062872236105398783809212244900349151875459209665897382190723336784077235626751461240637462729314228068508491793973692996897154820839427347687299209375797615925266059050104053170432685858255296587133133377978622840277099646170308643822518766499165694584072255698862695979432360831899540200124931475095339772351080980921853470030258815834234611935863406587438627051669989692001574313468623015790310735212766302782400398958096378283732732860044708055523706600792242792810240788827789016451550604132059150178599430082647453558636324834107372724664328444707841399520453966215192073623851056626282411234150857561277851795068185444386502805050307813109367509829862156726555344567418492142162565715635165636236438196364362291339198993382825506912222171972583167605074487145736078347549954869637596225251047001901454589493174330260595835252233638779547795451263447649038368167901924281126833208896333180300294516104684235467060961018046359335262787691043690412380699636293799937397712256446909935833822378461573770313134776906102106234307766842495452418905612634200491938289625963560855198341581505590130695694225946618757906787732254317671652395470459645565117032282598696733706441929778382398849533873609877723249081834991720172852162809841154406755864046987131819782497516162265062852427369137664752671407459465574082239166584177105644386881369316232125451398671951634089791736282284151215151521751721869162179537106546368524637623404954806753326001659100640840964870276150799958433862206816183241696059299381560673060133566344309184077590086143270288596419655561086862526194483969981945896860996616055273980805616600100350965955280278037218607372358462760312557717134838502167103393590404367388662596393094530966893915929572504206675019738622338483145662709091854167668853105782013061091011950478817317473781950632283810097550061444623865693747073111712364062561668060164028406982112199838084649164501549046840541122674165853157016220633379854233553368248044860852368788792953950027868853503820699130553519968075465670873364405931724819801801879726278023493521730800568556772611401297574649279698825567973742955888335203911779330849088933880516575151733056150369052238396836807815138268956768158517912129001269549958367830195951644253174870508408502078696664458462010119199592879434607262327382517790818684228900343997667904159087185313883755637480602680125324834689332508681160553840056831470133444759658466490279717347998073425971767182547853622036978445486997394172185276362672121254445226655164062988080104162887786121442163530714644027670616086527034745293761151031819542695238345666807693994807107418980666092860155082432554989546726306486591624938590304902199090154747138652708375070244893699157538698301000918101829212262457292480439773155601161076195952700555225498266649396411965821005891409582950818729479431707615049628909479392106210782459550060507305824507844113781470847936072769985285806298048843149784504640871387759696353247097262653307489167749835508070337039144769240257082364371106102926419796341779548534644321817492551455004068589540906795167716533143787805553651401807310354411210889592136046259716843931269426883380543972308587454026071620072958957817412301094034915572667208813735358860985423170581880431020863496612645050203880467340961281104348974267286071896053453910592968931785142028946839167333527695071852979241880216062616058508952154018887420291786766504879148228565044752653986116583509119810983889282728431058617539976033732268571681820194894593571970562009173224599522490772713044478381072095147251756972822639231274110137070930201253187090524298068923753334524756842097229670994361013242033421205865696348195850255938414364293624971037263638158892027251301383974114795847815857307638336907436549360729103574283631624764158478160236405150645649167977637654395131027841091099780054804191394613990789839543662014318414968215577171980123975068642092701280211598633203207495990437340041540272897300444528641623503848886424542306062349979605802543295522181913360413022101368803389493226070755540888313072910433039339043563777541608371845788986858913335908751095543196967055569127782212743145750583744106375585826653592713465265762467638744078708312729386904526893407766465646348997199367945990466222547446992234781471134706905825714416853074647349511347560378420263468957057129359861944306722130819339852489575831192340295814858822842860154356156785261626318146889775618722383450408459759021154255971018069694703399894930487233784885677106035637594378305982847858966368183523276899985388516487112453512328641654012430846813649026415321934265519796464583146657353640955254165794585127018027921891229143637018039384447078803550586520288648104878129223405466168261299974375201949017719552367644104658445928211975076237295428945218328796332987013534967846685821395652314257094472081082735846381853752421161331683419792001357746047644360374251038987204644866544426765851770703749523670235774686274235333632945475438190797629245129407674091589486033491853332119131086162199164471711654748039485708919953156925633950041563092372775279577676349806990415204425679377281093367278483603496982629256142128663720549731221069716038184627161045039468255450741408369794601280377041863347999646342568150222364829951458713635591676049097696177570302424228404792633477550385985379856329718312064444938307991479095433807208066327548398835653424369464353685204530003718610108006414064111642743114151155536815144523866322793177269333112603578526290724717789698503355030070849405196692323319171109563383974290242101556437719421798324013885523890552636318041560917151379581225087992145552261264471910662036598319272677141720433419871252330237537253873530996800124601433598102894046265950865031571820836021560043553188795927346311722282749494564944668348372385819986188586826168929364479125032700629816973878117160970514492096207322340864204560692205917308992543341071068159066205654616639519352959296102782397862955470763929393553756386546958717816122038308801566520527733233647040895776996910859812905693921765125233535260401895190081432955002275469412824253654918338380171062754225566167076129788702173761356795804924817771192886490330948334824309850161974236661877196018581916832723673577845746443696941420409091161721265161825864886230327853575135017617444764317117184258045536239151580531556124991427628568861500543479396397592203669336390185380661668564804658900254062959995804142723553078137666916084479278533119547747879931806769318036999427119123916486799558948436579906770435596490690587667346640879267777190856756970146098756220774459200511894093124071936543929094382857093824855909941783550475146606427246828506200112898286097201608096419630133761453796342970218833918695222872536769425471099058602253939128023812854786945996938589112970221490531935289237019426839002353962538666626747537065247070325557780807991934776270969119430399193972896789837063856252848994835469919798734849750906554927358505986269116716028741199725331917361534857561274872369886617449785027098331446855104718870701088906041331938728840727817515057425924988964806470740567526139768462717963924031207446404297809500196304547192502489800370862876965625823170469928826086347768278309418019846946593712929984007131428603190059063674563516755791876932770380986469036390977396097691120982461271273842005747988374608587433536414708967032113917394919062757029895434216242221740164520350597973034754872630576253950054603217311857305223978278074624979848250613180753377399672273559559102124972569748227997726571631793093220830372660058587374417198179206177170178147512791824397293425357831064387312487341125817258486480037143447694238911587648849422598444644219102586966438950549821798296459105917470218675987084310094487444253181410094068459837989831351801826499650499269610139234992235407694305456955471917964321899154239152443000287247588787641097692372286715021553790932147020654967121855342065155568117657321160535860693550135364520709153007745813539130581499548472884396613390277908980576441663347607921737166014747678709336926927004974553095747810734945099908031693828080465889120202986428371795444233216199759115366192501895900390663488442189143531609708327803596268326513270039565693149128078194492732773234473287705478161743255759208130449432315339308168329181072835790666070885594623890633887180843797655137434289679383619585174706081102782505854848507914749512412857269231069587320120468985415704234835239247915427895651735314041530970099443100884663279780661121192744196666497077901603875198017975445830048868564635263551028118194656789082841263891537580275142101254152554367326649044654012364211614183346909852408746671371031616540050048069645057300776902146566700109441607971823971536841263377445650117508161273935619420267536725802817795430923996834580536292565133716100552306238266243565231383701353785010034331018084608691392952120119421255141680568416085276971909391389205646688806247467662002911613980445713392382301868895747927868610799953671672455687793309569480187947642459628906063250196178336249262156155095381886989573323842825323862843783167673486929362419606403478306907517435625264079261658766332509546749433159143834183736366618095825696775699295119679486468042986364413891977728310671985960439054094753901490948272269172862447945707915583742197805918988329018229053404818078836604301161185070885130202398763797043413373665935701255152409692523512417218403052856680146159744455273426340305250221500977952182459206259311638573087335373940320975932723317286004209131880068152901517367393174429389799288436027921232644394314617016599977968727928866643062462930412334514565287540320448012271903062325326829319100899846097988035069229185428931872844170397718073390023769344300949509606795735064694969614738069224485604482825193018144854329654040478281290274710258432735535142555146094070783281549251501488675107093274949180540873401641044116140039914419911600215381330288851529049362276235461347761221300703661529096935871332585238452261798707799706584004486422040523470664846256695317217554079085298212490874530569590241720376802829345419368148216386890177505875195449998632448505818751538463463997122253548367811407447690152215591960629621811659003496874330486898060985338764805649028344998092765623018152495763738837418694297762720813104393580386359703599478679223870168605779597525013007468402383114348055584779284097551310068443797700928849793039137338942926633493899258450955170567161744967589353970080257794510228936186828236569206774951232818887700425254500886139196170309772863344615336222235797901698252021042920491201439120309481223280539229961886543390572869596399200187856854603718918172809443115476162760339816919041239002929396356847489923382724559176378622530676893116596683793512275580480519678249742361412089790058836867428015706382386437974958432955597436450857514715853498578951338779708268163686976535013828929165877803523076950521389814785697625130012315124044357052338978839931111292034053242910659926129928794366030720965843244658004351051794768324061942588050993801276436092121287410130249163458134529508172459403478272508350024827983001737924872538252851715969256155604264538166917906664360254609313520023644423192645591486345079240708026483571479891820467490419657429217735425599810732417096957310206668216966582254399184843967116271902930143055401120573615225949699512806829837787873434106931700982992071416503332251603143475894757112637273002144308485071328506311309369345824567287208700761202991314585281428076771343358285024203271639846661549403326904929876066062408423199459212667955521486735881891754198488450174772993359752323099490556716972186045856805675808604963742213178909893760481973638405246835854572495364180153915468683420776941176117851912127264683682043906722039839927812690777320839550091002717991626986013744339692018417834658946825553733912290514959293569817608590131620900172326822112621917565013130808724534698284994013909653679320189145070568904281187759908206819818808331712766319109780518666906178490861641353424746322819165528784489628836781893881376661680895443193954498041106262102063126837703313684504177289061355713929441405052801281035957815250328372163119760122733609458216088802725633682502023670744879750993684408843550456122163412973591801303909142008951556749616279408749739794132382904279023303259867657025679969722172268754101075485902648963739409744762297147537234223088301367285460701693279544163055584044794421061763907063200448063370450422129534199591689740447924832363596125541158610117092540545071532002572953946920210997728031193126987656888290152953996480359270490592428795792060959631097034052394472285013138976335100633736293530803270007192221938708223396314627435655286416067718755384837414692005353448778654900254578748925472136091436091349145384054235331596317520837724704255096777253405970279429567580193982211568753125585037006839124000870479969122714608188942690902818993661147353325017032112794436778533613843603083511023865636963203732257074011922263403756357271979215924982135353938726451369277513913612628602794677997269721061983147811797382480157933917377125501489474503502964202082657575646736785906771213720829101215087200569990162333327165416654573621194227163587928904855431391711009414162850286985654416895592743151461492597982009034244357638726827045985028432909916793158484060336403898891105884012266190823394972599984132680247963896991008403357297038285526459274035681062589341055409878253552045035105619591623798365877322681513171924027736870693505061333313037804228928572261561603944677652032802346444900931276595794801764954870912226688269513936524446730225193957813107026403084964476348138286439362867832936804039035238589980218786286320856606011981302261975653069571053490508920227683852680393648385211492555642512976478610418287763441591824039550939066128252577835311574815668603055316726686545370155332419001143105878952118964207101065823065367588456783286121425319783792743061611315820006818099205561175644645181852739715974762702263155284826215369267698372276070218807518590558891445669050995161873680140565772716339732273774006954241566651349137724648132457015798020837747598897389550293486243692495586499698105275855624207558656215659197665616264420497452366456179409653669117650584603076744921315939235657011788573291168381501891727240295683484184820593798844457226954524986215026738817762804059839423350343576767187176720753840627193724853384515040517915820480719323459327486253936522002379085494272967159777367232122036542100961850818090681484738036342599232774115089041745961620439044011601591087323413509302185029231673326668439245813852182057243153410910987585780550488498228343573168214038645530539624799669689107618656090744060154974875327279892151745870674487858997704488768997325540602226725375456050179661566514145914870755423973991109263290180573446316123925709238404977941766562218678895183463526062469686639046851460474270742239854893320966534268904489345910758823750197673545179996165659452615333805771548573992024404935775858041653717009829211209634979688728405821127504224218686955274017430336129102147843613257332858504866822551041813422474701707166632926478943072039237286168637729276941318467967311843271173830317306197783394142137705157351295781743493488496413510297338781827950797838777664401021986984775970081820164828280843415391010452635267391066389640383475855877515019056650457309916917915784391335477121673211710907089084772633639634530248424720210216922047944820461203448066594925281330881312783618983541722094235320120634237427348012592071932764399161721677031453021627646525472521105455449040680165815701869010253829312753163792301835032156584381699442694970731282536203502235975076168930509668597112732613824365587177318712759255441775954825799057945760334209816859262799741156535972376463313205904009163431548451531579097644200344707781868670250157925996476359469305087107316111029009284512478290392009973639471042065319545421443574671886361497329885952422168287907377841588482346025807793582402592310951656028701471261407073557464361332448839703516130157541834540788133115313124816205445889934343613466037568494215207422665028312506638534577886418878459503487562126127041644465991095619644678684952352027486988786414569714803334335508075294000311049378234723422612599086008951461069369741776544019599470360629466310263020562297025674463386438614048755815166690237354254770132291090324651946171155532425771210127949862646738489616564132125800323611316693530676525360973396827119540763428043458087805053047002713418331322810375699306937163203542285444570882856394122742927991859428402561592321191796210214250410268460468885327481141929418701390649326323441873246151376017669566202930611852096799849089043118853073137362040272569682186175823496592266860083259326558539873847974650543227040421968630064901439761005781756605155293112051115151299158701427398167487465590631911388439950960581556072429949704576716681460312865257772068162131255672368623311504322923725479978701910858037959993602931023500726188189241491181481117597834684536882402196448215150511329759926552426780713954400224415623515348597993987660327946091927371161409052607346378761391847025241796606149579487171677863327487447873771926897391781639576225095161564061970381795403830170328847715448339360005313968932556225652572328282203182990063875699591449492172963075768005321975810813118885921077144454022859493611227331527520606519194061947384387926980258464165602780494760807748950032453473416162279682790838262911654881745209739280976540178381116130997128109928840137390636351252415664730911744964714801057989552359486207705103301572923742565842787878002708298170972879361174026156307381490946716357035959719921179390963629008717065650682039094986279547492332133897131276089265921488492860458717028706673483664957995334387781790544796644135543976584634984027085095921040471401376100523674376538447052305505617052211393271222208736962295655328989784184947785793979393210914917045706052501065677642711709725710147718260964301088362296783905759368295647883289340327396372219895493856174985484684818521281931910337145495111172141777721064947248504883656655800811607961962445694709919608951174756657873761861981657287076585111978307740199782363998925249618763294235328977135373709336800886158680772488129827192450066452352079317075409311679462728231465026742207119121722230502724361391676873159318647663128421665619516146335418762826690260397251118328682996878730946149524869558526732412780621694576912932716110877955599602082429865142937096413811390153284869715632708081072736489176722433229574044929245626333292591300157036878889091378088455053942477418673683902339879933133741661990105422275522280260673928035284786646020820834052909347882650241116233581349913510849227780300114149871473135765871871821415610507119100622330176778486293244483938767568423060686251951213913089040586925810662663520763222267054839791454210233805405393780254156302959426799705702862476972158695092189144267132394775028334053576622295328681953286208643937854775588521505999142605808843042587144619433183984476557956061605985698431009469994346973231329478894010069980158435721770438097940064847969374391560198214992362514180093928214377034516336447787688659245569381090746058123008983467736923779349607398474951393703497302624793848455945694789427806421269164549371227018347150696993591020820799266121217261391658071271618073729042275403863338074241007144479899702739573359572653019682293708137116645434798931399249916656667791607954916811152565960389696586988317532926566877261745079186324955518414850831861363554291767162819350603238926344562119720471283965033496198397601739781957293771207256522145871544282424162596572816388766688158141373091472163610095963872925148546285329231279095685455593405519831729793215245430147632610670704276295949633662364848774613956653570999500251875106482916211333333694950806198031829965183115648512713006316444979558407529237017355329684974049860412408713971707003332042671545094786083248708179035393839151553176428581942890959823980815578745283024644339734186205810543146655137072246066760588721091200323257891318304100429805178653320802447384760742502396998036308014982480558883786269715470908682399588602882736312964608325546595567167481221709872403509366014279925251353790284778977209955594202634921598441984996118332135650952873496819990132255118249798414310950244863464766029692767150563855323968754756516679526145982909853438819167099685362640933450044360224545004468230826695261049359231241446889618170583309323113730157096363336325437361011499642428136109646212553514981208001005419618836454728360808036436708888255024027675970859050337530657346237368583419292161521831291382443327632363603065889665943644451568705416466133974468554747767953257080086112754622374004729663350566442938986172197728646071891609831267530011037952377191484508191708547135295938661611411738679020082391448614227383596481352741867753087000185031114559897898434381776898824565956691423398197743381732671638482490333686214584519580760530018870245823084618591808610347061237097912306099899910279777647716916004179455635290796030998512507702180818087671064681508289005806842706691132261159439131006924301579250561372690228696716934383465502417877682458747395182399627014800029909840459620163587272366096807418542220519836863749438865684986666175117495282394305427881148430449371423417659294732596359098916272347721815543084052438441204144890415460734863149042304132858405827839559227272609162783697556229822321174061585595357442431047495489843118692573571762390390618353421776085977079118434311341570036909900137934570532152152769479451585938692647069619634494179688196825898133317394010783998758781542732895573820597912133982173638718728155111714227760845227666255805728652082741975333192475207031682520266069710119777386659558360436188676284619348971372336803917090737211649428692054169580557094852306970741032778890411382626205908633721093455929236397360427743022898083070352971118894646712375463592273460149972594143644086185271039049025906538152122458707692221473162430982465678316374367824615169984141661179323616997060454886333061815560239527235115450342286587835774012764285255596901033235195243388081371695508818628810262988367541511132378179835772044143588590938765928066417403884734272418781005976417456091773424133523852848688326831514088147365034615953496163957615451334708412628519478004024761242542779952024698998080655897071366032675319922340718416950619353660494235471543747175628960511961596871285002457591952133834552676891948367015784345352001333516035349608037377457354283513109787862309646191376173717762530890009435886790529249637132164508535000179018871964905768731048634575107065400285064727831172310919127207690692977290802731931429894377176682140577452510015381336488732038958107752349108445821837203686886827332905435094087864932953919119341098052373888211536394041382696621310031916874946176160438499864284397161633623217036027081652806057778918096548553033831509214490747470841143204350777118733323950535265070967010719100235833956670709313542727094987759522389481561251466466799406504945913943722962803181575743140324169087236694882937437616039941568504647046553331239704071643626112395519957126530644977507021463865253604271068266043694229004547153296714729166158994415895439985184021684574638802515981013462140978038775398674283632166923005184537744479644371164984753145682231161123765528036399683786982898880503948675484239902056616184565054328068963088521839390182123156691357520000625373492377272980435552110876091966798802209975647428732589759827166234821436325353837320949692256316011114808478230341422873373632814964397795221862870888403294769611153259711494003560698835412479926376882875428917166422404935938825071777923803050353154642223686747896117942240818663439095530912365750382304705293541644429730145986318549539194218221911915810882174695354716885111394198550145527780099540705474600516704490165673707997356227029710713448905103685977927583365582650441963232649952343074975443882105331352574768600775427152319044237643742003976948748041874150605139203962190835981672239661423096050431696615501160765278973819289082875749009748128263864904940090589580174740156739007592879766199298804258400418314554281274369754988843134903644551904581014060017520301261450488284175036230127763088632108161147004797996484840022342193150393694277893955952703685825962628362088352895017032255803852693721522832807497539352653604552158475477372221356481685496240632724855261193918430266534570687443772207226864545039085010799556625263400463466393873467840471900548283698409259620615434961469978352042267527641697694297956953785528751104244531140748858647812445306421401230357875641846671989371383703739036618910857089386953352093254959772327230044730666733071139311341176574008745896965534918137264839485899423039522889880626118057829026033606800927950516741113492315152834809975655206679728114598652702756266842642440331639495379949430369240101785287635885864547248811388357504712691907090206583477260800292743183572796429874164655508249049603739327250500895116920897701662558567509387061743367083680936985579763534952315258801122143906732488034823769537517802212136593834539434518601732752584918415264347271758578887692834894994463332359721082768859241292066966169722383238363863010560985575374008987382821881055808523228144592566192905160188382905549191617585810479616051950409962200260470311929321628210192454938533033011524602735994272881829934708863098715361481827295934921430937658308691502777485088864611430215817062507922402885709384881008663963055714072513713166562011575919471825664432212987505279505380165774332542913671933526721255229445669585335174448368052001396703637599788707022466464881907455639927491306227626146725351866190710778447733862256653575572607349334070139057619485485289735776262891592496539309726152662330363894615277467251308414857537986205892557516530189577960057461398284344453430452100901442308196030434540053787107407562467548945352020810373428831699500311189251607472543935842348296753754467832139335795151028921687973823565495177968101043725475559315389304461230048149484503453708930956301149458705707863235362188507734459486063883389650242838092772086693971260127093788451062495055374545732734566397292300494987936790896597058513256527312514837351178577067610016358051588458697611794852224340993534601827323297410413493843170384783539125421879489026454917116107727308592347229799089930485817250591003777990313977486596115987915221418664619015955212332051118795992278286411824272448457173636440695162375019871653318643307597888109285590916354452490586239197406149841959751928686372767083558700018403213665083418259393686263189368088690395596020151462542795289786939527511972277608241716357869383782324919244008909743409519769323869168564703422711867234104307987725994677839876021286126534592879036800908414707569026329759288043585293287810722388414615109123309232486350279620720851769885224961188211667699663612741813493085903673284692578140524778138823247577414838609061695271853463070832362145685657762401265692051695695384430357369542714543125539280774125317588641752971805713250875285263293169808963949761701330338277841426402874285286064719582304965664228933694282370556326353336451985699018761915342937452178255684100192267865484348351825709569330752082454184989585567995708230382852106156578998772795962372485305839800580498525876159933978246670395747858476508152253047808964242497458568790263270875092281865917126371845158824574343321474122798858995857708808978737555321947469741746664082127217351515113928357327853112479563469428332259873858737890491291170688504736591102356244230760832189548994895332766666441212589177975902823156213644968357228149309236965234197218553613086254077310978567853049412848703269305457223646187843780390819333724872499354925364868464636950921979238525020124374129255211476291701227402055638774159301119024256635175560212136858665856316932375015737745774781544193582103971817404853106144773460792201936681028955946199274685503215952810862874165559976020392685789676335523732176800405425231314487210770808430816752382933695084931246467971728404779312871948981790938015937118890756407832678783320133914231164111513046858345027368294465688537859522793987867383899874544377833647955296571808855035737218229346699312777488771916070530690159866727849716549209443857364355001355124247267032284109345928606827548903476710619360363937611852673494442322579866802862001728380117900894557957737276780130073109358484555643047583803072591623820506291868371397120677403808456238809221081810031392007205162279512033263852848633914072221523589762411828186684146252588064198095869312847721574698793066227421492805752951077831434351832744555877345131638369321061959553426729129855924190887013343081850904914266664329252107277482482012934901362411071023976966777748502921439153317810813205784609633316837769604821246698050584842249922885147170615006083523588574939881305509536146588368993645852246860453819254075366965031414023890808431471026019027764303387358106451198308559226246149904643297799283292843274624522449052431465574377782846376577224933064904715246644865473594446267043027670459947148618554067868890087230935897749552138639882487243897850879190588616651639577609743859022511852406020987293752518041122393977101399684372075486379711717608660458145128955279898254632672942956199809500162122544175510341704214069003316668628421306581266573356191873356425819549862557602584903255194452559712198148782025072198174424424273859117212381548563936234103350775552442329251542807108959984540668568811809107718630775611413397830120132442558189920003695653935108182202563349798012958371670705185347882410965134220614067359734625861850973536975563468998579905642780116533341582005596643674473544905698086650507471901060417274371729523158884679239492147172453941618392811620316563019163958455016497335176159735633810744602659116955837030904779859725375207154399090956536965363776777646054705904568737537788676557327499208365263173970842642629438035253587279272550772962972267286538481484224466462901586797412430337131201938391649507744061771717489961292739750428347391443375605372532807786036712212065464272905189024861178531092905179186323492009107716728186950794131218741367598086477108665918281770913409404073232651717942163980165328208974951024556582575784763870884896606244343981565983721995122147223085480181846344785038391152008853879310655463648919907066318166211195930918804228512204872252266745978561104532043805669401796102274066871468775318252941147104013312395239410589341499008074897962148392944426646516252665648982773052703907117676725760005983611574272189510404566078378537775977676216785301975091555058809145567786239153793229971033630311487722745274682161472680500921065255569782313343758943528434182570970987859727661885357482083569485408638154035687534027112335002040452504335676262977008662557369063281530558264963832222327961983464885562309881540427038159207087390810608455336536522555565017994395060889267249642086112284787714654420663169149059960009608314622746095815959068449404286509594516964314732599306285482897630217892994432346975057538643443624219958526085349176383265239264174874474832651186592796232562036679548279184521414238015374661070144088152052436026980761673565289521683670124950637039313536640852798138756938463485936863346628147240199012380474926568202761506639047374467639558814503780705528574772983754403409471803422160238560150037421243554166605865534221471048423589447155357540727027363726694555788779578159242964147757960105524873605000767227627706069288191215491919183026334998059494228267384254186349178984880866268151878304006408924425910361121759614867243861797009560130969197846170059168660118669412416680943611682742884254172355107114015934841081636706789195961878742401657083354929937022421316963868358983178884670746511929201008776758495432773191545921387430225587949263475760936027321701575125211345430787478053868502932124000496088560522260765425462394663926261922207090906955707285670811255828583264789458742706881930175731111577946251028220253590806162670837348073708362162656051748038870496690974391532542211529404396995806896096801910972649053160063761976430259776422649315963916467923442347307342586283636815894376094419980621001284491036412320800521259363679758207103403210890883695832981714887378126815170165372489130581172469324086714863653149142586920596463692972026213274427347262704957328474155725415676551167544421470811808082913608457249080980515138041198466079545846116847081012398267123072770636694088776967327752347658850672654964916267196309882426865736284130711107354707581835694937421607909834742321872921367782555985659228836795122208648118443869334222161488582421535812949374627911216764607076594721993456802341895411105320366640870010949843021361565582616769138532360338811461156993390722409369335011477181496056818237362638154059800645415590910213126270103122086462066012874340883315186465110318464807168557750205489028057929604023972044007870741223796413527872661300454331677526579246611846464744991232132287619807261880090108212960809897644829780881144519146921907208556905646818947320134400348069586656415513427963800279829731091008747639550765596815154627138926349880546152255314105105121598507812355094426703676947792428711985343742726250428357343104090951573505835008580937483544018478345040684867132538279942039093505387545442617235153451908523049771592247363825414335198663348720435676312926323339774724499819712743857018864410325256806506063335889998907029726730725423851833837603570026293338285603414049698651005468074335390417881587646650372126646334960171165773237109937389403141419464420698964572417514323017922782226513885497107457800480184169917204317109550989009785987316634774712040018179701453681586106034975497674051069766101233639667521668656012555651825426566675030730301657096814998353688592098090654730387262026528963285468095986879132305746772476542154253811949092745716799367584950739773368962423253457672027922103348408568879293350769051117477638876742172144376281497767542723081921777917144814648325815691224724879581348751381403075262671061479496181271181764503134470094011362182307596199027980022798563327269290936933566355731825136295343359758690099730549714697901454908268763514055020038253229009533760411642055443510620395012528945845439029331916331167261116262572892129911163284644274342841485008206664095140426446584198252055027901569916134917152809201705938391498050498138451391041338246043320596201828111940016006986525124753065981340726834081999634068322769045096048897500920859224796810779366632397600851216555815296367474119820414001313910926112870935813466520393878727427817510849975197852615222827516589126451706657270495466548068501792770945008444105223153506056269189899166310968021876569212828329934239609578277926337681066950287295301638182468931293811003253807677928333139023909936833929050549688847164831326517031745215381707903763066190835352688097770275805888468034225536890699855798490832062796742410478828356646064516884826133273475128798534038138811095553874582214874406035829647877346534996560900221648289729422979357720009816203828656958270618218520625018528313184643118768837232998011255794493924479069201737701836918927318599991617807774214276386735015633812345639691221200904311683571737141349909955307320161696878088224232288549477251770777763924428522554528894515650709127889687557023824089465296104779108676674123155349967653023503691076559671807439451018601984849191957442828922267010241924432907872200307352648901909457558079887164254495421501780019604795621887814987640926930169369167218422392872158761870090374815539832931035642094976436264094928502261634273164462855636376427174010005639588059479415503548551252245839866406757097886732008094228284329279236136236888508035757437129653378574278807165230864773772987241317830536446258425181038029301773485496789120423975701394004533910973100618356702668368909716720804614508461153897456404383377927983918964968073672492381945237376711442700209433222238384946972750184229083695789701956864863946760809051686240458974115084323574682374799837265337174909674277424856449452928155519096215346134771576982778128569405371430581496759100485911102172818698308129995730253130915073493395632720039388864106797270731987654300633851427802907101637707970059208446739364533006934433483905951027767955782279174063210931852245820047904238271194318997021110780499555176701902511515793788916227976824578988478489170174350911611411237874639076976612591604666582331386054843977683641295735360681869296135381780075388374911781399196521485512532923555306391519389342493300186284788634236554998245269741680986424831630172895603510533048027616981338862266413863397804843878055393669239000836517856171174978750340988385035884922801631868002159962778503317506205867581633119834913914725265449723570592068809770253654615738723835522967991854744458218305002302519553243925260009068371551052216659444947565459089675892605587595067115864570104218142757532664099051947885405949698371792193335619634421191407477500488961026490843280961893674615561837245945936538025883702493929680558115178984145461112296669266292384056114739390164778649336426925689539178736093424693211960104892440136285522150287362930208816720709876929814217310900074904440774224803981759316435142042788452392562265069764378290480345967184387737480139277657559745438219259601923736411742754882887726400543301608353650067323887019964972198942496533202227588837318286249546160073321641736883675362059022164558229429459755593675439266103037105221596417165543493600960348613589829828705171820927262310919647578173629885112988572515904122983276506611376093425864696426870331380079475793662526191014069186125252704310154292977436518439837447236186839992609122770507036718298601522706517135528891806333759093593671286367590036453920818583811022650120285535279462376408612121525470476176212975227152814944595505913110275532561207464748511408428416352477827243939526281551514909841457967855384221881691658878012113611292035330368264453958536767677509057838863796657456684643411914379293521890429631997621746096634496815892023365610901054903405254382492594105586757936014265670917694148901160390344464334085371483786849324821761875241748528438276343951236946063687361741950057542835361577135184482532151974830812009001340942497844652038030971436651663641895771478588541914629513461875453731032671500809659920848096979767107629183754317007818914823046681310119388960286741627302446334152310839277231234491654539759024778360973214075180777241027423309641665449391679681569247714395776920777082677494144688898108900722353099545590613886304426539724558427324435888794040593378793943554143277220779184258884134080109456033356913086510825965923116677860112378514870280022679238091563210222201471052226877228859708946961747135167672548772134085556248187403568203495794339726375898498699255097083907986218521525372008897524027212239813266424817438477715817406762523856784304471108871464304695397051792239180445482332710971780793256494152237336508780698170585398491688881606082223719488622712073803047599858232695110178932975861542672169454030890371200838988951369403137112963851498847535884351807693814422594321286585266816333263098341867933587748255777853779916832413370469132220518449059424588621993092734904175134235358518854516141467807494279850398768538891179900828430234392282366368691607755665435088282223020185100070821088083559889258003593280584080798748555145727408588438226332900145119128383725963293308679043090269499620807756021166877406515317404209955188100956384486517647510398167861896431966156649781729225658068707123236693193338214347995846404067881663861526529110444919112340144194220989588428531196359039022646870456373339624612207273638799332711316905066405369097944304935996662764502308719627928730569962643117267943564172421988282085258328712126039781265611983684344533028334230828700991290613027973780616374296030389680651703444065866149815073206495545806354971835436384996749211239028430962416117821531180049999922800757895122529552140905419578432269427042720988880022311050807184370973934943207076430942252894151912323596126969665880648724024735336343340542973774143319651296987894333550870830110648733484074444171729050550447224464653311620342297744835252066446576368533992910680718421669300302870476359694173080651935712964276175891998559511161232370676757275412229595846993343436951571834854694575739985029731815359970538814383710012026755334500744528780461939252389802443156565638786281539017002322325703870304117107911734275144599308340587019798661575344519164728848191489083011085338334076979378298421553574654853557648636719405737627472498367105073707795212850361162264469551466377426149954545877380317491956287193714195497387453736274627774179764954151833742556140803114874229410974346499649624595668793815164728986735432387669936393905634077585302045555028356148883444006624592271268481634534096196237548922969761014632616644371745462596780872359455835953609878456828185053521321213321582298957238744109495126463760973541442437549350815970136967630309965981320132630782082452788170577707159033532596205580626755340466606774116490713104054506245817176832655752756904383547050293438563266226394641828724303102995038230451406981628940678735715028140271625394822054801380271959244783002241983886677781740936773359821263182877782594822416667265607162765831047557864798930734872540415575700271305260377217408611224178599959010690514486339148537357683933135234075363071648392410540321187337555523637141366440807803242453566764571899567402955182006056661023991075757417237853793641115990110900533068928064305566462482696372247536364624058854635843219409655963451484582697300935650007426850153056103431991138514930902870658088301752572859289851640995012408686182945455735263692563511522111393772421493512702910261028205918680614163856503789564891622100544375959456585528872199364241687393627380418115447402759124726535882820834422076756752298112653471566669386107403951852681149285886820220363213233669734497022876816044533695895529419094613772608734396292089486329194542577046300735333504765212240995934803305365428319567572727507655191612118803511061958001398192156973706659762029747477623720640682811605665653228471451618667973342636478110638841322360838745506249984531492543351365446986338353715617925401361372543627534783071457825584886409601131219685661250341191815905841087127495449294012710447734456865071150562127630883080523199825059409120668434121776555789766396999648104060127024019208506793882312185722182477159060126335922891612810108129810434594651066992438077563620084512141009325924017260383174993434537388465460268428212388575639632484882358143823753121598491274838654708578913185844585973814905069026021444363926498339932665253083775273959704862637775115178649665729445082184417498125160209667915776506464018961581947418752737037889558916004762579304658815531231253946292375657641003653023548834979438586005015417499713247973045047925405149800428341018281902635738210186867037822448781436423160464593519619596882093561755934057178334362361047193622779721687656852474290145992369076811433949218502226228209833069871538071837561340801820237697160240296790486639129742107456396874991478496964848344708324385303303467526412982740470353870213983305560462479501191840197416996678384555358370006554622586179340597642204725159387074450408451073962021314184338164221657756964011169450410179604657225912672918253591931873681584869311798944604943701672129504213799648738202168759988908902007406767779038409637204228254084666039082665820448442762779000440547199325846497583782423196408674522202212605904773037823528443563435433038040705127423800766228170823951653442707007636767658950125531733279743538467615747478487149011554713717074519411768897216643202192177276372207490384878603433771672311936138223507714974289662880335369551762082171649926739169100880280581637046529847064128988671479188214618617437463708240154814866599052170838719562379031162022363952726172628288886560117913496747476451768167389146501714581734180116255431634373883588847791881366205898001623978207611996130550107278568329162492877482860138598696770415016499292770463065961230745285605196193744816649797184114975573556611078019893807574543851181324788376641458544773449742681118517608363084112131435588447510049920445822691344002024067135168652231655422318712089089655995531233486368567459519382552220626713664711804534773310823566445345619942704229332777189769147572488402177672314690045152005491549968104238064193009320607349627380914709133787497795271027702675515874926945197892556360126414299588901569476721861864646215264612427974105391728070704650633810241161305765762900396194542877626758217127228684474261346046295589406028337653584436657394462321651585907154627249393278208582789995032209329130153663008862004482014493310414744954974153864558481454581330688055923516409320993266916268401517780466973154310705320486553279933623005112883764359123338718746611765337900613897481922658034039328122409357065275458520968174219611864821272971479722619937792159726770194149062981613777989991619930111928461203621164098877162114334075806841690197728510578215617682587157326679342466964506420332190287770243434393059565302304952273154095937758119419795195062653993401066022311432116821478556081295838031199897416637393911446682288213576806716206223839253903790629103041954975755447321850253898449980607542019337883020299002118704457944160196702984306858255589462072646157475324467371722043817996614198834743803464863133314219892190288776351957613739253921913826754584321336958406007439974292203047116294215649964550029853395425296759186326480541785841090349958340831628502717905947596703849107705135241081889364176912345255340491962831718788857450128290796148978372042687301873893119135829857703752878741194805376092713843633179599726920482170293536580418121032138662595913096033612376655448332483008280874904817952138293772644903601077556026871073375737202641674618442918453611122711909065383980579553050505406069920888108292926552499246958022288170063108542348327357239483448932168709053809625136926649108488443229007759923326066601088541464754072398281125002936103502657393944929919446756148796852870507742025291876738186177338989957762672328637639074345958923202221864457262403934228199734674722162966538727564112416173667892799882768255647700724507025229305907180899833758141333102663174315160368332080773904659674806025480228944257933544963057435826178035490774748451156431745995621879314885360058540078044388103636110189512693888300526652984853721034619181181985942641631117159180546030676079984752082776504552580952891566411088309781636674583357410410928389980342787976964277082170690473636096559671874885889930885386873082826765901928289911041002538712866466162171357442346994828298889871266592297543740340723262557340214853102248578242292851753007107762472185331183109853046177219793902491179592319411626026519206988480153318034198517382465098033624755193777100978177308917410844277502739468778478216810329673588676764275876564383490100530960179917067243786164817513721136018152168038803675677493652675580265200152543759068214346752081967144124122605380843009899223375748009634304307141860616277744282560829071559104075322820352751367386416898440757696309336256936134442761168074922984041099262863787858920553639501941037764112297750976856999302748815187878811804760932696474814608828418498271922619824469738526679910192788170345958390589653510780991928316424057279019157455538517821715773977468138784353219758242899042681125674256302471295903174154751723470854408389242540051015310998811462146759049398054556389123050831443362069875636212290336202686831893174065706820381992562842658645775071586548521782137051014103836445518775882099594325266586947861739992620368463232759545508394422019351261358679731858272001887524951329012017748835502161238681729122469861504246184269096942322721348728782650346923355408573751133467856104741963062222568849423566199496543277854515315718198712171397998841751059360743846742920063327394734861153632360327200881172777030573236017439907516848149287602073264799297755289847719726822230849122595702551586662275470366614694375022707463354016502883473529862598872578865614108842627347430264572235763163349059117234833110531759616564365721946777204642672997639900196287938821129336506550220300040378128548586126911875141254693787971439860136384511818022544565515520421789870108874674498877109203744248751525760852144610771667053517500503620429945306717377176071378119544598562325918737742134897119959650634767813809368841215835719223987471785720821053561128207608342121468207025861460755971233445904046045306833396452140314497112641871077715726597748736708114021013818757772949386729984787718915156052714489922471430814191787186847097863439234954390955563330542123469645267229182459699078184606162126339388088114928310023596186739322149870628681354321104748370839769050793464450350076130622925325801368993105491890538239994116967078385778068690418414375072835025490242457170495225585276070991023046577355495844135375810204727682865290654855778186438270539011359886659691396802182701373827712645233117293179151637786669613411254891584750209489853411166655627890583890134984781369182669947534512208621589495785383078575048019767985427909789174445945621684988513002428001193210433343491898921951553081393939512199696549654714761193904996288144280831316092735765803363962483578304873647512675472315600329503003856286267404712998795368746764675654338954292692650250913464791888141036735938668821781449541807911689305511616514521206014647091091445402331107295058015241129622065809831966743459653439350201304512272367231694241614469556080668490724278421110131478648330738625663632606273505194167569672333014348298072858046091719419639208947188358745871714397976794593704536586640444653890969756881138715123178877692124145124427211828667243055225289709939192785966411976306110165449001978702119933129365479590335357253975970459202714910770793012690637871312993639418994865109394511207393089975866364597145468792125348257954008078126006554540425647557548558182380946877411167870670393043295432437201718238741566105136665351582976596426874697391920844658844071119788694690504131997776151140683771556696972786988040563927214849328281174029339159341827255564736140485174809828232903409513155155050518747412224926741178743505462150342524081778501999916862993868112486834799802599034515533584779490572254081888696198415264930569795019138677067286863627187068883505080972099243738220348847682409386720095724223487078303634981859497471078910930168907784391140317791029732296816582174815980782475128094235564553295677046808840770342563643207586803222227096729306834983569890319487417908318728122169665894708957042566537383479084882134084237958902508118379105697249267343365811195954257106916153106340896132890441454854356213733741591556081719051548793843715346777357640497020710185318154558152402153880572110613874895052731085214400906175165059666817315789316280939266840187517603356089804610531074533251886727053090898342357388283299291611038179552207988924829008613510430105084721508635269972326744697152776611694103814923277171631939349988341056070247815911088936235504027800954716109339534996762185326486795169620042718011098399979776124348802666349531170079004285450635525698885543089360536745557390380757741099316265402918690895635930459653640217290683006790509552318093543494085405299751170647063973085131704604012588583501225183741999352479649515495123760536628581986828324782547527612615246160236079331597044522013338827629899405795141194069472110151546832219690582023468081605754980899618401927816064331596918609085192385809021354884318252118132419408524653266573138628783377951733926105484159015996344200718033213981862104897154818512259983493988472681511052261553865802267878519806295978223014506761041547531144878262808014444973588320581849902067461863967280631892116150650908014002468633841024028498170936806140257090797625527508997906318737481662395555201890618830768185598290162032201643104205777264709772333793168767469668300639730057125223382816714183074414393130238735534315683096978680615390083998547891910697968128308937708191275686245348840796139154915430708989192711655651112801804875361821864061132055343398153235322947800480338862956989446764074811229288828127635875186676378497558153795318509853700181187668669887828604803073564411385165399859344430934566002171701788753560261453494723946722721966097506557574055839624747326955270382746508881279611052972675618975442016189228070723969043025261195624616986001646390860225485345367835438937913567291896903481001705412649630773426333522173046972996879444583205998302347374781916832919258197495591186807824316841951008326059539026135693969712889824088831744747865863380523167904734475293199556476621037823942882288467465540681863083398656451316073850015581374219993843657725819431553274384796828810865970932761363895043276773588488576193231401374186117492416624535716433478939522695400372587381195056327040695249424582601053796193518672638175707524281320834046029128274860232661206476647869376692541933501456030466101678845943813478238177530791001249875399648700058991038520357053724306095690898804817557180114515816725795379571308413038613794177778401210528876293511549434580103066544934847377972152046050708659328035036440796137480214601202141631405249959966082735870275645661583453374422520118567457303020495810668653347263618388800974691090931620449956909081203870680561647734908258159417463269641992960260993045478924075380550370186597506329164600339566198144128069487785778277118763695524343263817761720834389372468312312107004717399701261779631771280149527866212206129521386697983981313787644909045167815192336686554251543918256246740380672432604088228990096762666542758069106412404871556285973854167678414593836965114315952918015895644230338117621649234565115880361844690260894876344498475628053374416197625137238848949977028484915087614091620095315888835169957195552600990624671180016341013641409632601300738380664658390982934554134430224051269669135053820612403998688913066049852439452048853558978779187197437157575055352823728933582624553311412953394824742651166554262152426131004733051876583823278695529878568990702359715245200544926511026219166623265704781839949012295326184162583814306490920342139525738714638264263615694901282792302694283133143212277769759136366947790594778921591323775174917835733617901668099613026600505623715479884713057213922743156067671174806959474779175710137353003170916667593779896953273009567185190550965074969799542238085363101541345025506390680539187445187430774556870230907955056439268304877352392598740669535617905202228352039799231771113181452122021023281007786952159227994177392024164252745901061998879267542474866772759269560260014726260492054612465789996468264045574251960931513355811065641375630602027509380779106624222341906935500249506540806661920672269839124937460378026051210580759071084625168096404670819208386852243788821719641328220295390836586708519385065429531760879522262348500194288835108205959147525219932005928881756366728393499362195567464385068522764428661178932106072839619376846061769272235544797670799577084923794988342510019334923745525058919941937004332220245151848108040899535322689727846753495070297196429770716614426559785100951732418094429875549471624438070897045844709306417395150076065532473037228746119416380610673715260969325982590636487083229255987822087968539598849250745013766400128961060665975987169521577510915491270639743631171198403322017036398170854454308130121121923320006346261957875594974442050940551864602780251968028715217026918948406261980961322438060023499418134376636289748528319207685212151326436594992508308178014874259899718714127112288269726036858797378417727494329453668393977655055226392078866974664570759052861444093594477789437657413243543837610679368922508221686302718666811235317796323502890683107350160436319163411984742395614141545467421746910288242650999852136595483143904599830224974557285107826112977875439590784179505742003596147142161633611359608519617050973210937893022842588634002116411228591382452016387327911605422499811096042676747608750990872378932062268712299120382238840990922212112154034605578674234711656711707089153304501850269483294417600914331902227827750317104745120605019060150816059283235223091112614651549878945806850781340876962179186663450719634719937822858752080212537664487451399930901556378208207446083831589800559515942098217904618822865723801250666685810477054211925171739663114310428171139724264627864311540290444606332436740829685624747708552979328054856423727703706247906258746590284927513944023615134037699614522660546120219451508833701188933223837582973893996579977869878899146091477314095178437880528922666048677837328793928508000386513079211315270276260151395241445467000546402040383083146867624884527884081013350203345531053050711580036790482976620095669118971867582880148309441851797684975638095073250612206557622655379972938434223061082114544251100690759373878791300801673402619041488519811633412691623514733260283096484210455599513282256908651881655949107236347138842924385769055784206823633835273916716556309625543593108489427993745046958512244644903882671094139865034550907944426212548441860770039009585545463729509526064174564481280994933200361284246309049445039031098046809622110942589280332101276119576077302423694007220837742840631082505575257954657619911317940542786557273237822252901378961346752334658682392730874913353987996457907154264811779352388237528702321758512829614253882880531251307237246191185469627450123598543392402083083172068886250933776466271281513580085238284649897530376841978496243103947467672914245324972420711666271905402280564426812893385475231465862692618683502617845085508980267508201502581603545878083077980294056082148322993536964296061802887512090085529636965605137993104315078162448872064134182986034981021053299865935667753577514872088593895400350508239829456479737367626070760186983044951018587651875848185090844728508410103427826045444400045134876931473948862822691297045975838379431018851707664931373239575276481368114079524345045267264302606384358969936037147164873754955605142546569090435846885847126329003183004736105024346572866455108754400231186223603558675154236037804951937853320587588055945083356894580919516825632189958496256177137461314650787065206105013638238377184348713090582163369151760245137415958539884968369393417032037903986444990896573492632956323169337782769386638443701381572273504310811995443817404652950410778327804652187381674086223417519656154137747907162611694501930269024515428581660174339521143661056760866503548796213321317365550071355982034155261540983500340533293742210697361927556926194705747553044009092143347505248872187829845785709988663890745464764302256724952454186529750042324929696512762062088217900654321488752932616517693849710521545098314712373487508768787740195657192273264004176860612265461598629114377444267168242216091426905680086492482911189124063236080560489561150640082931030076921374943054538236953734007490461761432593642563876453769796584995416650229374780391656033095619397057284022544395215442977463299655815976426529943699839021220352380433311973324415090708595297555674187278765269534808944755423603813034980470644694468514060787099452215865073077440909366701012246174231894979256587633999498859885038889796879988059920294212257735290772881086030155546195295188211029727544752904792497249312798340823734928998356878834386664564577383035347367123198508720159038406444192762816314367489191760111055552114018153735210875506818614161675034134641550058520057710596372008106442487437572306093099456672789871900337360796394286537835604176705112947447724664221764459703299533911529695845822253748876349544484498950247924011308083061947689299315842239016251582240723067982751513238807462032483583732924469911065006297086327144146152499509160389506771915015905884725594030470198137021263473487400954513201523573553800533835185131027873096141605112578380786883564814758607383991646230358837086146020591292007720552432161202970922312041110025525045566489016429977931932444567900309194647691625967279087658341617381573864086295579559070969541155747340720820209487408310618223283634026427591591079502714699968077954615215788797214056766201852230522970267141151724790336678752719177662115120730720731078726245277647554386367190986396028784723810966908041982194145737790406209606499544743059444713106937095512471077152700101493902107121884909550512390227543825650100192447165575765849327116338924790354640523716049618969353764347934883819695330163075615473890787717860725962384109225294712978510279175609390752845003605123572349245812113833318225289865469724759876861180470994545186046589137957205158478104202040577099265953528419518304997351036186748623835031163634526938395603068329436260332552101745635599712627908542069902648229745999843302113695193240659244922190466395407787953402436928205377255187374244064415067085615565119338684408503518588371522723658445154622855747452394863597772072042893272323778034629411897661750131355002342129417253414805388123122204632489667630946042402587662530157563350394748908907605343813505311165160992586774049241710565749108589170575206603429894957703029467743697957092566118911224626910107285576147154581435721199775690345767825091306867872904650068757585265352085026436848203986036855587580519006042906978430661214436992385526479045243290302119120203196336816170021958458351036108637408782324814829737648825912653958088823203087342023958294698843400968069028351463978216156614613450005895307560820659477829202743102305720911442640204176447109592535583856787972826570703363014240427197126805132303337119245386710879104456611990598123650675738131399627325524146541638366435901293047317301615225308672897110027247659562048328522742436615227439303049917454120194156870718653281455984195617053495377617933471080868270455908544702164179608614721399951778473107198433114823351985914164915744961283106634172651060977807851227501325978861643062225541504705171366284144671268160695664322283020666087874235492531861235327876796668063602341852813676593782862541706985028412323524157503032804415354975492084946379867592475246501243471934439988568050919572767517527383104318383404918174577979714139447606829876274178900245313859674722975706948894963481737233507644217354548995044268138879099542192992608305839001096624614531637404231738767248371292842165912306169163435375307262841173525862666205545931590932886792533891754286636010178245424064557330921011995753895255574515339068920727148779022655735535699256133954264962799486007506259805618161544741705338625232477837035269029786437347109115602643562998488323917814331013977477680950646888770090769546211510157336250103879816398959305401451283686975718780379608860370037471094116101475243488146304745903061050561916835380995243411493509838785086564937704281306283325151639176202991075173833947846751839601595739956335552410742983146908865761758909001448390895141510116377848046529416825870714371651093924210397317256772810209746156318368810448926253810556564903614033472112783122356490292427458854144935556536641426704325900511459020762279018310226106864821386733715977478933264289875658688123039364144470918724309189801428071834065084852499880243995659427926668828163111857531692600907416903681456170508569702621105979179258384611783026471205606752706824848079105294440334194601372848273626626243352050264058822865087315133630092460480170112910076345139310157675638764162346337105819383188059441258006162562800586021230526958412112477350302772293008741510638637886475512008235615391582969949205984847277374892852772467585113692313307348798447380362767204456208908940280613297748762351250243497248967485819821945457931368082395205185343991486825605518392944721626219219016809986682565655773762632224379519997368936969509446047948374142760279396876695531597423487419454587384849760165880650274504927315821479486940613944000021835843813520252889474903498853409240037746280030004879298101539044534809444916533242236693940768330613053830867979112655857207953624593634393668911133040239361731133330712850494743079919887046720960635262827596400490154884887643243978866994855723602103570320933221316351107938377448144492099160568495725873417022339726810385366226216656004661295745181654567122496272461887951041299028556393121205801650873035752752911523886914158751824744306965744047636186822985960019130124686092066137537423579130504637841808759667550736218968526834311612763455214392621533106872362698462734191408227598650873244769170979128818923788695531738155291899407980650981553761281094464560095281478478828123023601128695750454774217749258438947345341795516892107471101329670224233947856449510331007114105662713836729450571750961215815145501925067467370032666116502509599762476621144074529464193034615312698133928750985929687622858981426718968988906082908261264124120536158455701858953471175042586188138921049852011927513010778797177731683519578992896173682874297320800842431823720887036334967192028052290484176462977531753320494618920197309003684051498207732836283332974979405152365750368036530024850744990866836221826158746733664899266818237454411508773619978905146118179628689172417033266811417752971600410937646967423665236212769378992588291666589459947678161318001053288810086252175013613551285721334025160641316578193954167844592188420373510216542008485794968056060052685678016519178834300806190435708826334967211443807609337718286209091882241281877987817991480928967954190105046886411351610361867405898157779036349396268641638330294534929778884032279734649969947794369650578289540733632801629190741970562866774488473795922998425767812750629919373798023848018009113979970929532397956774890749723869485400166522970040720873018101944701684379299264354636406288393268134695696634725655804999392420560364256787774637893135802728859285120387568793923412453085646358633776022179324799277994688289716898710371260025452497411971633145876527718505070053125387573098618126264729395681557939943974755660732509924506029555800307007058601527366798552607416590018232584961056171596322629549635648854634931604663237745274626765298387921763849810465157243299951266917912145769001021487359052419966326570924477949246526399154839280513197217751174393068943274443697978417960517747136773365191256598259388746803265934899150994626722315788323967117953904314954112291044748101118143141091628553999184756070597248212162259569063744384650059704776871930080283828766139787445797937008169656750982016285244011557499497227342926955845459664275435028701064483452309462492208019447596021006776895184917804269941960299828558654094339264675136031424271433720774466203317070482609124950376892254564196582828835741698643860563544980107427581146012373646896736681449800391791101801108761461764433400305681427680020736239374724143370493728011282985378363324116980317801504506783769223768130250697385791094981360030074650158717253167091267194683824873829089122253826656916909570992234112325951946493529858932311265908594696946798514605446160669611758764698638816434797256417273100045103590358882536662533102018552731115118270606731403000868590364408839203848646762195582914343865364803248972483236524168876703279293669315107363940554205188991452992809479413786567958818162865373779262808593264849323445386694147613168935556522019998406762178278694517581821302243151577436867434623213254635196970846006468926744861903260826703254188406694036680921225098957167386038389247984955593189214268162690496489116276213128128669113649797124047091216295983561338386067770728543190737390812924830972239406818686228940451244953830143772371327409119877664593696810868307551518954828966052345848023546326249650973063029867030056996462742558971495093974428364204904277331285332109587128045509078392456231255938489449624855689954575538969867097903524622302999594297187557014538313176411073708990462294675360475978480066883433040302056734270987351870354927334421920037390112977797213141189450445554314702336465497313292462118583364397081711772325478119229230132022527401491416282397806379545737966170199006218002698932939079726280024756514849847109765498271323519943532653767655016544968167719907318956393069435816682463351618262385873428745544761543360606658948201871388267735464010688085829990042091708522836654158271554407366770228747118867370401746345533629445295219860526986069978129072146078928381417129143822604207390495953695412154399385896088856261248255858694596283551801665409033932545832973563214465791665325685772596835729995219881880865892157474865228577822423479776573301408385612195465626319771868087777877317741434409449016531050193785927746578757223738345017653250643906097628172485450905715476641987354548230499614902124937607793994038507916179641951350569444459912381553581662734063060602754931904681170080769225589743721468968083277770197170206653820901234369439288262666805411822403088519067853888649621054569521279635508945606488725728223215497073280812935049961043775403810391779933536789443539664373195146376074732992920181036538895467211076174948589578764687562052534551636980076554154551951141533689473077516552550050329695156134359402206342597297622513704801855425577504448046939121215847499301904609286133417751773476747555906703820136966250328670329983493930674647336524161115230998377821060526670951728979252886617722742947288934671306904364395474157166702353659404180224202950238959286548637310179357791610160564409151431788125367454565157609184351173272271465880990195045382281612627343434431590950161778738931651336521050726076725836122094536332026321214073560480916871637628865212869079952817814522415790021498739080668310579946403569513106941949186295714454677863722482828204978406480662412458593849815775931818259992051883512664462348805386178254987166743882844459459711362793662555039972151069074869439613216023348707313917523398987102404887853206255079446781751382836667871211269282111949915677164552164747000013961850916907133129711904374345650456924952411726825012948349660690630435465486202792915321127432713903167938764790496077255282174466486272079810703468639954271145304918260329799193452029472454007061053908430743139847071838077220492703232817079330711253184722100447204352583058077785102358815190320910817217204866803619666981901932735325351631342785640806167448763447620688638786279363425070961952287019586524440508508535482430675309901874474176133211936488772215768650342203767769290583904063747881710068659933113814730469382146981670050188108756070062660662787686867217800424739702333137170913938780479753862672091433456792632868766275406045253227175751899031769886504327838155634535455559194752679674216535846232961543221171206071654034251397048586584968317599705062647569662056299558895060827641947287046545181025775656926834541336319715400953363893580481713311782554628363406883045933703042371858576400681073426005640339172105460865169320576241854449169566235360946989557056154473734322891298932556162312794815159912499023303233339731737525183911773681585886195567867384687604464986969861734552927578377534605389102259541945498246142025916481769425044954639615933028722264487633371024159962888152144022850508626189623915534510284150657580590474092345347097789378779377824478993359073217909905481167444973832824211208335843813291837930777662886433767881142194413677378663209408407798358033817582283741701332669611109448959235608678130363024241864055738592637035781888518223430429881386920910570820827141834862193375994218600827317909459536695724096533423385852769416227692088010788406465577793991401646770897740972016808358608939469959391927089525020443569058234919705810623599777952069438013035124267816618521310739465847722152593333906905671425002185285087054622815011860777908666117883964915872709242752265237966306768858066749621577082132813405485540756720327312343790574681155397242397314393939906776276617947192589568537946933294982503839418614604648144528029578609478154708844416354842864549123606162888897524630613230616105628390992800255677138746275802174124107350409294499575047002071689095307478816391182898471827450809991934794804913745037825686884314017076378986848142602516581707643474621798067239247421315661823744155612709992513798748199283855372587913943607335133569546443257241740415170810838228830943235745625416711454771538320301237464399763125239249588089067063098174435517515260889868478730829136866504058266404123018310941895019062378000991826990278822504761779606208481222623754565219033238105939745790881194900374433311683792735531918680399945841086476479903875996370227254293151798521385469347354807950916496499735763334301892275400172859588496417856140237758550040413246860652427297692810998606683911938133290384509300752614506874177323147273026143739501696387879645743479120153697659467398947182477675174961277424349395606863712665259930235620067511848917151387367743044555646909950997061197878333570014250735475730586289178833314572360993849606923796322079768295791352193557239910345988885002633267603454733533007333744684256721116506125250892120324338629318282575169438010502550877160603013486619958954402983678758961849680725449750015053202164253305341782778826545324416142170914234959704396134559943713987351302751539638642140853802762851790567931877730383398050474280610480368455339928561859579308992340253828489662016281514295337578110999386577668508277437347526030617855467248602538858433850552376736330636505394733451806176764527481524323592910559821719794787793174644439761100707615094217267013624637969771313647387126310952560940777700386004099017958033916529997837599921672355459023294693373702689818544779309683168939055743612650198566017369019752550871224505262489835342629084844172400229559828776492489215374216608899997341287579097591798983334226691044178871370877651997802868742741708325925430596510286035218563819319093066516892272369262717898642151684295076810743862082978134959390878414513649599555101396908188415851210534536793200390185873423256651709125914835702968751097515038663728986801432569052176605583335587503172862570867414996582583154536501601765375303959722477492504616278261838492976286401338320093984615906464469960604358995141442954023550048409576754922216849344270097175614249276161745234144488572132325530273484985075696436632789266127338066882986203079953436047675872714794164172823568519956454604046741464728335502777282025013543731488765511075994706455471547736870793974673344985311956348914480145374793158342326456993749679421315823867407410817242320028978203815702491746593829175835948076445865869239843063867682502220965232973823923865814266688885938105729017094968936657927496710406632952713984042338884027777327371506566347975460120183365970516093702696365121662616168286938342366939660084583991261131811702998317182693670036836500391643509878953762336479179171643132517713584078323915659448825390389190622906990817052425213911005812016162905053591737331355342150261091334821911728016744786998486072899225588966818339655274288698116561492721076673317383557049384859878568507257266404816791592206541584437985394487021468307530313740187178941618828790257636124566314435022234937639599905630626445046986865849134384195010037996004221089330469825437154990394170710886560281341269189028541773802228821724018955801426568764060685876427712795064555817190681666317339867038044706864523991932325051179005718476581866500712551973907838850523469168957343223817602534510651209123384244486026686026852389993890229439934993920937167912560977067632248673138454048878028392395346842107237375694852402799734950007557456886586321221492826786139477123923434958349709401287108609728451595191671312269452110482661811876276150532159545316636069523105338092114703418444975145452890293144261953567970529218153956445387924006825684519288625900349715138330397560482083634912822968897757142769836369266086212597362094199552894974594407227107495935995849620837421556468395088138386693643459229269038148300132843945554536344618664894843425604569731338003035777812649726705605042475261867849042516584652697353318321631419442671973747866768271840696641306550603288685353417066164132515213100891940767587352156732298052485464249470449694835350811939571260804932035666549310260125233953392045679664184733748960520677340249702094136051521487573938149269434769086019703437698172529584160134120818086075447839496016097182694870054279404604782964293043880055438630942804050268846240158587810925576837136463811062377741049056629050051007761712938223144185081220500962294819363561245135692757883185803378257657936535163974880750652151202304373102116262376617123932863931385526837855688967004852253496610525959983913916122185499511961296703495629013285624423925321761535197314425125879661065693352900709488075886151609094983366355789209003943218089314760397283608040696778095228019469490279989840040122334445139041760086630295427773967844226009540463294556797006177490524678952211158358692913868614584515500412890874139300546015741372422847975708786499679605759010740232522983507216737231994297672180657253618301490842957425880570412568439017297268181174468067051962122422756921072047091577225575383455521724563795364606086315046496275202694643710068697165612276249232281266579722127634686743976311689874136184878723468248775012980027790917685392022355439923508525470244674776155304453040468765309069942777653425188583333035322540728989265862008687509213233254010404945911549279218430278571305465312771871689231615931692124038145436991393317711442308826402175814989160481116084701233366964845001840035615970563387409213041285737813848937142653830112404972096857974279832747713300173551339392478648004514067321461036913856660050131522377364715640474987421591089413386509768493217030141412515137249822061983401945956521234709910464628434872532784638877256963115544548550490644741715667215487062743500810999337261270418522645238143840827462802208678569620575290579789514518138285326867247861698665279253834742693570318608137874273062811639438495836072666324705958756168539725875016334723282425202762222852999247040106404333021701613073536938754103957859745084110326982500081636345803680389018022360708577476836558510044190630495947623277444257413930908049094369877003488812508282805191293688171933012094743131241441256930771058390229819809710331002580941160520566551362417167654223507819303981879526613321158810194975601524135397785031786270324636555312313006722665942430468299819260440710516990587980939673345439682659549568052922241233137825715865915508374350412046554488069053645099977783631589609636986449753153489676487038442400818949579064980696860687070119428832641912159631015416114174228685355655290792781146735802122090510445121273919097766028350742733832009192222051144977226770364972833105416439292874481017123619629237305184837180678043407650631286538271560701277602111574831374632460584964260025001083919464066677090673452692766853544093394719150553327529106659249422735718885776697461467864833230768399996809670903562804546700303749509679654841808776876253457563346436593450459571724598701309626930330109381246831907507897351757031431216446371785020456747254267408183158192370240388332916824616238317470166735279221680777149815099076192090798861181964426088677059339754081512520243536078544902684510467149292629532366145977588767662851908152417689294587934179003111408562687539013185635330231215498949055183138917646644979759000362346721340769466127843550646513704098270524440201837627388052124771579313566286211202511454349391926533139969692361192585773612330939241665187547855179133285679561252612430207755644537496086405692232697219843096785667612213501173661444201116984432248019948993579534575756213372485440931141104609274799947193551068212632409610934164715807191826337707201368626986507028501873531738046310620101150266527451574358852656973993126235369077235588607986964315801750267983871590639826551429329596933181254867716167433768800805682675354865926200018503111414646786110936347930260920225733713565870712102675904743837243600785812630118689985054264402664306300689810525542908303183157301702321612697424219237346749151755468432196981320813904719466517462989285986942916700572241772936596113678745241846108790611059006968577480041398754818979745539097693261998171552826713829808223207185642535543600829466355873359251442854567860465980651241930654042659167496578677129038326858799027431745257546093563334449318480425099712900080068022523299436773860839909658387888769122016637539835039699204105351424358763747677965421071501020916787145178079863959866908409115089987082129481164181668974742357625565335822201366165622662179210476461007104095969254546948989019356543895166873468358389640519732338271684485185047036272440068250084829246101674634684542096243481027382213391275605781893764578331221519880214088655255789826908828694236787214561000254871316230160126858531716548445007308202437274695742167712458635538474864459446954925863325702661235686113360913951826224389391933917787568130320912091282192989468455775541787352013808733312012864794420417694170514893052772063212063459925681175898264764120368748974922787762472749812469106193759294269565318906794673486597426667864534090285971345375006993361742164582203566132964738628398570031095108395205960406469193236565532108678032165066712294495002175481532069907441151682616753369343461601711196660890623226357505783258587309149966091158932676293166163305146273436735371316916587662920184846817577765860755750353834005942441670281205687254496154517840267763155678784065487859408068429971600755183721881886824581642469678473286354457292276230586250665624802802559661892368563631822094629949061552859878600317245270936859500203486580611116575297349976524901850001346625556456341815200019808433182761259275433949646452968738356772376836345177522513352529642279264311441980417589513101701425430672857256918574339122584990800182246704617966136521384230569249679554614796586089541061002754597491712155417823527727648955445394845970327537343465506766443418210907109636617441267280461861139536087504291660312317397154432623783879762432679829408410001785549312673002053420266361164180236403078634631321338234549565766536270087365110395935796369213478292868563798601533999280854221564562354040884720714160530936259207575835459214411212341604260081918980822234155267994176938556437152082242297769357104813534884050956419411724403450100093401326223063195664541186235716155256107926401298023045075676288441327025214425927323684719584862784653468764062386057784618424407800704004314010918585823097234269781486535863540845037449126344850017760922794032760434092642027883120982892676458259406614992601827176540921365135912149320837843744714160786410049838335655391860120663438227139788174458597100974023498549144472281590297997652889794371756366225584233568168606202368981383594651632529962051330242332792489652451594597706780793196496310435384768791090977135116109695757657303333615072577468896491290975068640897727163451787607533003030584728051852197156009245361592043762703229647724513716311994217525747820642759517653238217480759001156336849356160771396124815846378380137707970252369820552840679333670282959255589051609688170885782173750091399363774040343121610826762021216754833117037963070853102012767904869983698942044952641024361838186087019043050465348621746427001254930764899431581860225891910070052396995433884659821072167780457851879575994236998291126172042861016013008971470701030755145621140205553186490754153689394181722400438826408991119064008879933895450997973552679348870990825972590851377673079440878435164835617656662429043727850606542807653924856024349345234715584686564252474486442316174896438355885867407563927245498222847097258237758922346583472049919087348610525101795130732593178946162733383607390556053831129571603687980719595658622305531793332505955541522781924636679720874404455143937631677255317015040156369987905812162200758031781193164084784669124677357028041415159183077285135965672620445521402350493351548676731688484063097795615771964428033472629072268768861743663323150277431549356710917919984758671630190809921752807449934794153499184406900970637351525680988932283796300786306319038388652730482507512729162827916002477797481018373534455642207019342190296656688289123932333573234838226321962527314615778686176984515691874209869808188823713841754955215896452922957942468841861350045035187677843744984513619284469066705195705848228774692454557475231314353917751467304656176232268992692423163794903909503559027690954970973529148935033366533017761291969096596341907642531966893855222575180541622664620453732315548541836373150405381200191893593472345284881563539528603605292211533872520899199880982867637464878434971789541319484061621128906425111802632816325325354104280363800862504047679333626635114556197663810975513549590711782301098541317145300479336018036386070763140802009709467333341203233634336276225949310097574487784139137547470214926074156843227709801939024619234334450173010475031743516564742392877476537324211044570870325761455465838844061231826591781771289734096901129613900697307363472752669200138085290601089014773971768387621545149596992622629229354209523465325819404293180957445128597300143025776489658260840989040091838090519934173654707705471833556942191836510068664126946679364488981534769183289055518290715419300201313843491880747573817891084035858158592419985326338398141801291510433772262572997957298592997323292560765857374923853397901482048198696551314236932035557240314203027558792389677727209366967155260293539835463594883462077500834605280650617731030970688292044784280752508428870724960694587838358866621379547830273452891543139195773301528461208229990690446007071176452962495285464407005413372843843267255139720509077649108750858152680534347821503543660811011960136361512647799580399896178037839375032593940694229800772719347491316964209210554694802767295240246518925564027670674437006224822689376958483864965054862623637786171134138965709419517338669803079056855093076897327979342250699873245401193472279035369690797435668765052828495262990620277195306308074043451694865567215628460560947966079875814917369183735419718868864926462443066889530700611509495470392405445129997752850110379029833143136690138161414423662253397864213308228863076239868800019430743831676474994962826245651004282493167417089858758608051708886143753892662834326684100611205289797626824529090416212829382930213192351710910221292403089820119795383180594912173204164092904710159404256752673562029513858271704780752390406007344508714844177189352276042721226321773845507358899993890373886449695453035749686251416573014484067029336742890707063448177414680403005391466166532982016757221015819394365765649908057394092432553855595627108936554835897770877870400023965833703414455312904601697828926054419983097462487370629770882459589188269742296886193376014415998360537439299479076371866858398969797918199982516749949713356959332901547730009341579848230281221429232914339210243065116509004575672933442272458614200615291857293022240404300147309151172812034993941769094240463911488616349962971406092365148419449179430180298708334402389685473317740934395364112372921217527648820853587342810796960559757546418267426791175397906882682081763085852871711176026407728565953207222516133688264593683529927961069598737931931106869585513704572368025258251131900408190717272916152226033927048853000642827300528481363960719814177694348210965808858818446856190725212475100344098100817194993968050087337924971084223746656937999601972523218603802921332031683945441359680258777819674127409244028896939435875024039186117056185923458637479811147715831727015036135813352163915517071331285605026784464607101713414288764204144084966082614205488650410694704128439474500602507613096826249176328201590724434011517013723386021343530984547262143929123779677117370826558462073298987124577287143866451816705939007830172965929366999678891265956689588691985772592333687092422022024894597972744166487473719099679557681748443198998157970688958371959583808340146772274800076521502403292653992723954012427522852234583211430809037890993317509645354371629065798389318186225263129845242285539555906097490487443228970328513814808010891359232540363683432058077332617448723438141841202285567861630677629676328325972810315850727117700295951149560158748756148743242581792134734773190207621148970373353214989371770372533768895489896034614349782354106134248009245571226851690253509514851628172801699940328204413522745577340725284447602907422736948283358386363393752943609586918128114945276452408793148622870928966383225341890821863787813702344086824739536759022475021368314504387012698910514034966103386421525332644276311128150048419328952353179812859633947211172601673088441892549523417196831018318927652292792326232495712147465059045045132631099549210877627748023930407802678183242396870228580137238281315328833719702251950841756092331383358274044124614040897913413906001350413899948781518987374141767241360897441023022581889020234439576146357821805523671481510722473753076950055081182180098284859637024339792528156357401973698235604608982524547685387811988777289429603184908270834438658003989523139189169942107159147288383841444497386096278307196850254292980982988741922254431445149061945157569210776198399812607682283381887858617491872851742158737468428329307267974541619832281943345132179297316298789251771010529494367779686326687556742225426271195342370283516630558140289780586939278083944540390381100560274275040557837465076024689675112209404798552279433867767456291867527900930067806673141637948453481766556433836604130962425295233718289753236557311835738480938854938618432804601312685395326016756416138759789298563178712963058597603550639871487415082971469201743658611028077694967945708137272026245066523877864603580869833213072453977707907487186858798172658346433293661908203719809205167796279951662910996330877280489671023713896317707306303674946605163999082243460938497513309977519444176532455286909998593757055110528941646430120124395506698180511196502684038973009328007611416964651955789819829487277005529915110965176537165621746851231044200612369990910237551252646248913405860513254606569042995199067849147639636217826772589442715170595896355335661138613974460775036832374552776882362987509008490710744595799458656349966269424652753082321582255686447842971552230935989257008309973163182192372814196274970329989566433330186712465876140553451919483491019936363352783617789961542708684026630945416745728303409393347907093246926887020806330270638908677903302315922686400447520337791670956363951882740777798229326061726040643249325966273063314990570831413303180153456945104488500590674089208251981130903393763131518805264652959353793521532628088016569363585615755540301567515697328703761382715730203964189200113148875837233854667741394666310124960013499526684909328253942220868186820141278347954053859802332990889761248238034777932823914248569708055156728219653067606485959751601866902619526674153690537148771407466700121254967004897101637868127366261242971479945634589962161098341869833112453214045867906544026179840077273931865068429877259043576485874928058594770999037253212167099818195049494142105987337933055099231127525344133364535531185405383233690072414605330200296546960560230683476813320586155642677826255025841355841955390510783889809993757489566679785386615526494488321275350030408907936735704007460433822329964659507853991448460572213301111585104931080170817620579613637830336381713829723655166734037540125052128574486356885270455112824012758206152692819094020367435281741126870305277814106730997183377327517571029079919613153256243815494708928433600801223702754442166010382828062472223554662378446494550289584036887206089843570233290270578470798175423160517441498247873100536657071499165777772570344066195734810137981021568791486742234618401294558295978950668124584894713351795216525624660371236618925970087830547272412546178845832040520207205520233293615694986563775960307496266741730108503753581119763742441479387189965332332608712903300582565897800618646235928204780055583028058976614418012507480408081649147741901340488876453858845312167459413677067077093321521836576712347277300143177316845194538788665655138185472383378719224470557884098868237241086771800274690127889939591281457855420042914377653728963323636483911443908993803366597162630157820476626366360467546551117220865633576710578386537731604671186616599217310226944014987824200094495648893130215093469847454187441107633412646837515508127748760762579629455034466997828113569740733352097331980711493167283671909181987600352135983971195554145405511398295343052788023542459984309089960939622194761942217389399390996188485460241833683028331295779148093117143820533844587776130148144034180797861621752755234783031287222962685056159583665654714350011857488878668644380536980298238066182364870396061496045580131048786110654770549390011240506777673691320984658325452801313700246679381433141745876527037643096989929863798704248611208041882095300441536239767161099898364383884604451738772811497666509715317157664424419115051600435270576872259744152563914604476524367345534449100020711553489949931617330738231585420822775887630355050661420304716886962907903458029990855394982251769806093139280881751001956166405862611243143989577223431299916638672755306771486756992530058882760553479413548264320313337220221328676670287561037099196503872320474870783755523068099807574042381735152630702023888530033222260858480457317695580064580582527499848899069085831404566801403925409601219716885649900921464343530454082370186592734440723738569690921398764186766950387710197393360392144194883473062467560564691071763348062265348267106873234248770481438208254439669907628572148325309180407763250791640814370155789895163531787261057088570854326790238186338755401851016815121998244129961371568617714142214255596526606342210803017975453013417849989451319579204752186129573738570960060973140026405282628180183611082599516750309650888500041676674459002736095036265497165542757515284271329914435475770858681998734260191112126950599814880728166944824141144475562133342318605717220548184355751424812299371021490752530265333391069728563463445313097095407509624491384925918620567778393471156146812832570306541475783386064890132689205312197676613257428173866811177776574162072236163852436067927775612003915645790318573798752373319317275766406040532043821565092698693219981386676571653316134679769165790025781250767353510357563408186441485512321603279253772287876296974872854724061655325581692362475809259761175830353890038707072055211565919306416567506152742133184780296880492089529228150677605563174057759972763401201007138198218464758597913877842256946880316385969961660494105113079899432447371075675798364033703791625051848964343039555021925213706625770227183365966818497270413521799797114674838496271993325871198776732488903275126783987402090918402940997580604729767853540601113516377677123266870197646146641231374625463466799038729576155172196519814235716451574049604582783374413384764484993838297123491754819871790543889576557863894620738039123411177324999393833505860265089207390779829886639448577190791169811068872712891351903713603138192415118543269104546758745366324025392720977223002866568318914925037941384280257063736161140770299277534722357351483865101632454812561439783383487116322414014883149763494176662963623639017818852879061334678302757268126716449404994727318702990834041556064875523131533077344487000014950128509861863963229981781648499409289258237124711715069497501421232835030581299314477637914487872605127306935389374730549513264010771739418374883268537103379686889331320097824437355679098644208907921663158768620652651433307608944852818321831401709541391147676118434736189431178572336780657180369526032853001538737430107493661128334375733632587872726220853149595068764764780340575471359098326900379412059599809441317080725326729968343908986734759022372282947104350888846722989709764884087782079495277998746409986931187261618465880815801945554041242814804519869710893727189225148941028298140622576931482525623210275273217717770568445942206756820060569173938804471050215437037702852245526658496088166184999613340274667553249642828017281818589573173427924511767068360106013652369895995890390111181475233347486700200228229782386287255752125561654793358507542396570480513442159319680811682419706532268044808648546998074259447077934557768618239936613596049539045975935672575866798794916391656320737592492649907674639941652949104932863461307140786854388890683430958312349674221635379006425758439273161271368474775200115727208071536148372299832195361739894051417218388828204728998525734888664173762644632398534774791803617290450405749911209189267535147447060028970481934693499467498223663167894649064974261581930287774844182112469850448664291141623034516150076817173723250162050455026733943440798120677202935821121963216500728845704646761551567095974986284485440541984886384390864106301549071164742519621660348541249225830121904463445080986527579009418041890700868130361545635049506616066173379251155489877931049645247410732441762850502056819535288038560363084996203232984469215136834285366222878819209861155812639688201654644305177728720020278607202782701465328610121984978435593990477449837857562179640583580723849252992708968956732540192109614686222596120685964772588997755534783538607058669341162610767313576133248540942237916483483574983752315281710129083918161165859076945843396734275569163830725003659741188066322981294992613325106637923758846551885120786338642465942914048135619124776398445603020840835814543208086374033555732421910060294620754749180995858441786296515799775049068256597901468490699288678867544543543767471282951570070834512534192462064331195100925119610570765047350170882575244199593562037478872570925241927753946312524992476752073042915203443840214867110527204216978745356250477718129245715017053437861661799891182289634319717750458528191927521279320672582302399615783177781122966248155901837947339039019297260938839634371336126723315702476560256745460740419725707959923444591947458341225863565872332155688195134729578189871542535301606900850442619963669531379724311497755554640028974309692973919516856808372084479302924196309251812172500456648949522589259853097593897857770725224210509300468660227867738374956638314351463966330553574619783711139710978952490001889252964080093012710311965963661683961944203465826015293940553486236851065727917527117184617813952172174616094786446425235485588876325161424979185484017717271641191037749500876056888095487339519780609025572034783375422686010659290116892645557404548745811009731838980679422034985957185782721548097954412340985352501128755072672464582932586353645968769362592612716911928433392719718869509804668227443410839689813510383784459540384234503623010165594839991543015034640613962041462322224850197987104125138721146323653337906374158107819500377744857873107598994505542491993252475607801034627175263878509481991070925963373046852505570947266332969887210718896815428368193509714346147160679434242528464529315278572555553785816383846683124394965058644584249216751529838552558389647057716240022217616722523064276164163904261022522670589193618640748772687088364632051384931294244083233462878513291087597777713324692510628167659797395560984772130701359748719013503330706212497522504543482581706779418131056516013087265795693423907663619048811438364391832323293914398972884824121294463831792555391438766199958148014782726675094315432769987593464374087433208023704732203192944724322869729483242319355612586771996606856626542768877507267192187874750349620126472350237274523139480179149548948333469506558570738474282241598817358198649455444363006102264974607986607055560862942752079768916943213743617346649360055372442204926219837352159070578672021274091181782976935730254828792685677252226622413270479661470744329079786679859118819044505171688698761048677865153385891249584449872036305130646634379416989742264888965866030325029487696121871357702955232873648944845556083440168773629360950715396911903290994226821739100771976109972352705449319974631247988268651486597602888350422249507958510955179312794562407009391922853338377123384886929909768256539830680492411860383363874530096943516935020241288808142064573726498375792348694510585029275660485949124769941275647324657448619527570485432682620433776196602246421584040739347690418478626427143405992321756273601859603946523458813609684089648016618376819260696190285242670358101153309435718074501830270192355651058974546767963779460083493524873780062420347283551287492247088639379418314985637745962705350248915787948849654798774092583362867317930791791509543538821927241711285001034565702238037328784210325282261908225818818778359009622338499083755373699756689301263316285935208639450150271306334006569648938705971824418478836217105709008705101637253512108430414025384663269911276346550150886585454933551437433431771554756616994420086305984317188078917076561779219343616759833830581360968031657279795854930225759593784968448239754753280527031729907871608299187138755216987117688895786412982983048363317835832280590039645529097805120017097018389650004543357375162477315582209850229007770144131434800145346770367880198175807316007236308020417313631399664963257039182874860391702510567175313673879387722390004558442291811515258992143468205595456561676217282826849630192214249462826659825660763814488309434751048424033502583795020493949682412098144514263810877146856590008145993998058518722331773383076968152196470394045434300393682787547582760390219242487243132850638901259753709266455782922862129210278106792023607040653549509871494341990267960291849256880712542684660063707434703136410629950844255449511864723258818539430846499489603672928717944691078482268051584496933789952994771911073181921473923644748715578535683126613962005800550935140394621007898650343174480849417678420488211325089697371879052776978047903912576272458989259022322403712209745285699381834764886633927050451407392831815804549021798737309089501293529582312458883881794896486636987472055846198060066642819158958795750750881936418969982313505225724037418578849206115278984046103471096968346918801204893104634513359185865113149995092573331890585395971056261861247943466709581584716012717815425472874808846799589487480346577512569363867111114890382138191157207345136251789090440986706567083219533291601825486858028357331289109976660744056024241983936024381298615045698935444082158261698270476012220570292647331499754033129160451658652169603495056558382048690193093686567008511588712232510341937542048481454448478382360169903603741221985372054440430343051951040951960148544729911247443530613779851949295903072061929247283347806209158582055342980135249932482638663445673267852654088940165420469577230802902170972504557540064517187734286331618305780982065425069214155344186078956059372791261797076674088016995234206050418958002358330954969449955657254328243849097761896156003642495052121762099955687160605114154030102849854897078690433236280634871102988747847476857596708031137094164496127926539391223961867941954179487688842633440452680835093900632211864973612360542371890935418423609122273140254794510632242116079514927369653721537697521663566020872901965034009808584576475489040597619597455130078438676331470050620488313265267752524484239240662662056431580815672888073192483969135269807450937199456205209882082585929185092901764550504382250221500540831032701197011565766258982902614166391400692352999518029924354746349446484235577636737605975351348663250848239390136493223478666953100645292180595184324035072943815283515558376081963613807218256297117205271002085202496766445079886875750934152708031114255647289652605432385501553621717664579662378119335847480597225958886608863499909189492028966826819841155438771454537133517398097609321356229317711657074043829245166985541798457010813030773375437468003645096574195968977154224944515043412367086060994046075481965745816410741583324576816359799043768628722246187542663672411104495353513772680979798748208964319098900426172676826183124169729430976120677493028628428151310563647919720791997917014019959897919782861293244185319144796416685419995138829819952586206209068514668653306198140376901711472147765632745311638607515561071413039934068604963082584875986485594138402239973034911964233495630805142473875431713554904618462945456381842415239995832015914036843533199461763303864538622053257706582072513773037398313291408938347350554851283425325194690428369056783556232460459998224359569595688138659458755143167913798076653349862557485442595454652472493772597803410066561933605436993766504473536681280430884623759608379733418161394997832262948736570708571099781327086911102001068467198332223409334214487407111176436691610293488938219909311041280083447027636929472593220397547503497440774223691316994580940014671328704351523002872550361285113936062148424240183664284214404154482700206824121149885774914272016907437597766346708979617794197197850507517489005109818274251583162106263279647776398508478579794420286006584059225751371715957778278730950765540240935499218897779614791263496413170559969777316267333202372479856718686758048701701711294350823769862590804094113513330341266784567404815134902779120152021786727605259762256568811906871659718595076473337592983751213880076297177582333635505926000031183173785881081959824845356356506467298919590293416967099719050100075937540290947078771633645627317930092025618254911064205549799750409513329285425355385572126971502332189229192357781359059246322510726822211512394187368267331044906803464954584116655389716845362552207877078117773709662796488130879198289028082662661851856522573052149443898801054665479531787610368579548684075235295463937201900182643149092986558827143335185358349894420087749049453016192883705124476582885998415599001526150352077075516790084680714670228491739189491968882234151387159860485581571410389676798656756678364652614158208329605462914428419200951481577948674223040524985202895617068398730097398709201677714693857431055569282155074414171760015739216635521124750900470973870563249450402418630844513195801501794110674399630755762026179965544427907789244851569970707736978992128844899238792593988064488341058941351222166625331343601995530954483148474165796771627593824205037107437132950784005870753691608399912299098925137882000930862688164927328436416203178929207056458278190545076457318495134253447628355007738505660322081076202990781643722048324248751026315870972550107341953670773310191114193990495304856876107195036486762445671450410408979090985920629865013854571393330827431125803817707781328952722614937704016656638143780370806927329653302558779669384346476088792376920584106626378822194696365486412221917807752056834858333411783215583230878933783299606756942927785559382051046514808260232245742069031133263923081202115563689941674631441054751608994081053570490418139318677493974169060477187056548486717715328370516342165259090031772585608491612594657184318843222663296124923280638922480812551041012420050494485826649786510289525542558611131479989489407247370065820320816975974590256915813622795797029291852579764830765524410429710046867536980659786502443430075594687161070274264801937772921806612585680506499275843556981337505142474553609175346178295833969251523896694667974815159742688035635847378158614476402886683929179524478684003522638769209691808806774480021364314610006422713979252201966015492186479194264723422320694529974624504190208486903144454729986236297957725704475114408344260399458594047732754973925875882996636030538435251192624248898780417400256272345484245689433217582696354409897783147003151630866228969353918815870085319154739114950673604604636323432664165692258963539307802536973815949261523069430746286491890071043540224593471401810593467843803661317356007754828016005158295258205445546482103230227027029337303807068148865188908061750013085136914659334114651439639646413585184449109612561278337303725638065403146231486008605711760533262179840324725986007091784305013733345151220734932481141084063674534014187335152653021463899746497513492153820617537890687815966979146944786921745469221257438308303348959831476409773921225788132467792322886714634161783714881338796330711427751012809462870731118058239694302775216613971514778116217935565300022309600344177793738621844714449468683845460045278307018046916612502170700456006276510873342098198161737275819963910173035829938297617662809378211284777724304472327124502655165512766015805382303374110058763130188630494451804668653980165198405840406036740548859979513338996388632802965264907945626543512559514821621861517902809956992980528708867675647600937945364778408909270704451766814250384101161236099118596784300841048589723512084129184545743316136411853063135700440718808914127666295827564784897453820722321081443750915946385421054277922783736939545508484531759869328647571926942390727933540506695140726097066379111447470662738830006721548142811303417469272615439322632983947110609948804049761857327953308402182526041769328841881259442976016431819059145326986126730553351586523689397318912150955362941177826463179967574723165173161535859499578637178775008516746517177535056201782471122114626801656577743951806252961151876925403472519855304880333093165765316148083756518793955333200987662231513996125191674355174727210120320910915006246156672397071804038488005927148397631901881202678625030115274686511785433118973801992107186470704827790329211350415626757050655552743428405552771703370930065944249153557538717569422299176138344381330924397894411766977796051556540407985025210762473982279947662311843424641591740097691399651586431758540975737762874205193206164967222482921685994176583179838900425364369572846727055229962698086836384850522794074259680663934132010361911346276863665300319348241239396230511225550423822498797091901769898882313597199630348937752641863607006751372262086026374017329894479046250895663108090209656419246280520834236482928493689926004415607404971141097415517580808290745263856874787551863101453869210244857223014007024590172569700739500184378288250379787573633090776580466735076842978517885406151225655238148163367087128282259587791978412282639732470248806938333150480124189775182274514755096297351434980432305183155909233248227188243240325491763613426020381751557971384626083206272404210338171861303329803528411002284291133959393846571431899477852269774902732124045775327818979094264049073469824847774598533069544020125649681067845295037256044243197661496889084484338122565616631472346464882825325847774131756680224738653557899179244940084730649175270354378469699341419316565447993862371462103004492462482724959159449001646244618998307296237367590703293791015179824147618981404056354942946252853989278687135634169678628494311587234006165491131262691362777776437135790296245989858474239072996317755560027076040314886866646385490619777644727316595189124827932726903067321338907914956926572350363916042352533216950557676261257865737710485197466355567878923165308559710843847627695230122318125908677442968833926389481689690393358586726614001136319347775754915438096730107485476830829207702240738011123158196082026778730039570170546234704470689166413459336114482587708030970512764020548142215504174785863975338167619190037734292539159573255475844508563242682025764246547946322878517734806084480113274770501698047428068751616935862927893558115692887968398688373740498233598326361951193673315625672951331954096450955935683698362999818806856992192990897709306008131259916627572043940936235552644920932317870065657851067579153672963803734875188164392572870140615711420587268046063233537617136778742562287349804525716967525440695944233347902630295733313475269522729819719497863743586553567143808894507925730506632429024783217835397388923743485868299643747229243385711736056768258763444761490985882726496569674085642560050551833107742968155335512184743583347669527612386927979955203622848580867369383763276362890733345450615879163894747395007090605366775038116160419024039116276399598111993568224384269275842283042011635004451434136332966126923965830390960118994083487498373752808792538370815247756450304958718290365754746372661389142577422076000475925302821735499243451002363329419699545538106833342592796339467329229078027220637674899199577062199165177888402784253527610553497760318109533540897359030053081892534536931698062732628127469192090799317261095807899316867385246104149695981766709023573417962145774081403857991491316647443872584063731142468531951718669968439762257584003181860669833920616841996585101857980689005295363444134680191501323707092799651472761788753767103953630253458812504298374826147171232013792155744947607101099164687766924764136508817777916311363459905371263364350851944375158686722489884066703044803575601308118205211874449430969869532554288577695046695861616197738268098211597834875707668149527886888142769306843877881003441476015298906253171221479188196252160135809847708946566215987533605281200952098885338815959334385072239041629617219003042139184536379521179221685155475833858394279644355891519285588510219194418057446611220574498407884026308348022364290532188220259069290594689773082223410140380813443273805744947006412759523373480111823040709896346382740551855369905951088199511853847542456503315436938600605501291581984907971642655819029808123969198628102172715754790157129699443990786776843394438252595945731339935108231225531315756544168808322766814320449884984388172858609527986106019667862232708901878986490146685636637387654758294316709903968025953568289506842815339558355095319803588515532497827930228839731214362172661868892666301028947721968994123286601271498271600994491842589353474559673311733447142553589649801498037927119436585198725447103710693757247161272610914713998468014382198862967934888561474224877736175573129456979331902945559414767743144505459392219964820778849900184237157695041404780667676761610497424849596167168259447276313510966085232753895874669824362689789371868227311978007425389633720681999517289334702131055899714378662421225172410506632968805137321948665950256097885340006317208910743977905183939230731535493241704721021095198365750191408918797134377287895745646034440153040006580799667774957474521050439033634354340169234815077651096434192517621934919823490264770060296478187718053059477244036392730917064924713089033087332910507689038372789061601216574035206549084580714358627465107567689578483656425224462827943992982851941476712365239554682395590034657132022426351589427234069546831693250256005764335485449020629906364614618003740509589830549114917481880160826861683685847212756967440095301321614696506931959531208510233353388561782301066700666943823862309315011078255395722115954709033710324400845871178120430067363371699934852958041882921939155576873369615482551248748223153178482454480199483957581725584449067573707169927970500325980640664149441566865440870607231930869920455313943702897533111004983599246785599531794861425112015703473963922300202183429035392465849404568492126281653810224010419667495137123840614302923333721521174098282819430843261949944420237375561120084356400176751981710894722809402885825500834933808640619245103574832589245233684423174813636614797201889313629723978913410011621823575791643180519738678324519513606695898237210818178895172754275431650255029774252772350139111123192435614316447555967550319026376901106365357314903158006907670041311227693915074124422903022309476770396202918978911206653841816761488704386321747602711550717312066139047535627830410235775088340156248509221384575086080298217391263578098014558371980830352316023473001662857009552711296288530605695883800561927784924684758686061537263671273762098711136931142933849813417983484781278683827357317511927568691889915403502428258147689671508825950488842586047000882144021985042398735130121386131624909866917474419654514209389635424787776786354935922009197225042136899761453977439876798711586808307343301609983196388253646414664080315527386485931761264469384655670210111231487235482972682619742053972557477247532354232348802799256355838282242749056182118907865187628058552775276765023988113594346319233930124251180296687659547982964637628498839816651969534970445505623107327345854907615663524235113418854130818388497332062299998346206078614873347333226809962558227045612735313488018778335155173572017383366774791146701620510549606066129412005392290353899604850784531607692434642690248838786167942756716919295760699826411105311413752389466461452948410922451767590843708184595940857231440539220782693278875329904356483746798704857402705655783972840702489210697552686585307375286400176143379431663299949646102695507465056367910116485236569735322689841567425822972519446527214201573745391219097019417894533953162518870329836339189369041448734411560446175425139494439748552535852462546795731507343592729766028577973080387291973425077526900709291990806513880064828202273205357936866706991810474031831657151673286579568759508576117980759037565069263928439368666773881280525645315378089027942516601008898551414720439322855127470988595734630324074718927015314359951458477111205163161604119035675521946408964075384448815238724912203950883730546936319744730296267209102352490724687635486055943655423445631621752552200118847032741152420041981755831120623594425047575062308585077921445233357144890488624192205855524524438785724336664675658113923650356535414405971689786990313601400553810893416191982375839605250900074264558276698838026605269702467490548171781894601895678144002314160408325472332377161272338339337932541005549406893131720854790082523003189456015224833520596708091614342768121796346952136320688476855054297803869324326108909215499965135027363397967186719458900776992234165470227209707645173378935611284353403090696740733310348684912537944934416295289997453262552342943050793615963735151714621933114607257949462831764478008704997612329177881381531227754734046522059036749765064779615974083929988181509531257842150691611757657360474756418407445274780088027742115882764151206655150384694516151151179166592545467599961505420714600426037844503340076730423447245118114729924674231194944963655404080806677599909343045142275936847813869031996127898373106328607562997312152157334510996953157565969923955466260259334057621998846032910487636855459617880713356278797800012120376349624969301268498503946658652793733175142828467578932427834627876561364051031427006919240965068946053820633378760195499032033430587812965978730302398122654239951293425374615529377402779576264868737153918277926026609236468324603675959275975291437988248856151341238557028602037596272276664449577900283615839118065085694825380682084380676247422929987552280094858203708637104121177779623615478628943270843770621194050284221421310947760880876217180714966456469619117744844277255682522829518248409457777955783070806639090865471375824560216683497201036712185494439143003778036452517254379853897871952115567052424187903876743937846696229683129767731511416383455477608339820944022991153844837644289516521150686130769348025814812535265192934115588377153051269819292344161752858606334487536167861815448048165810651858413477394700382083756876131642893693283727565483814256359778006448171737311452003850400781959820076902905422498174583538914766573338728888932828757691859515332180283936803273618905403279371173008181685263001335656536770264831075357578763628763044400029445425005810019984482858526105451738833530310607164993974754990117004762771453401058853039612125798274333771219370174364474624295681610268971226960220997476037081796355621919281445931502189967138395871164057775185622703043791580432686089510557363835987724698472265576705405469441103157881272225292554710875494360213887436803221131905676001688645669176677701437268544677778878764583690570032199068273772203326309551968601618741170872326804475812010927301362554874129919584213140848829320062254628514045207959214021609740590128315750455797691286704624566585149728414239906947412504209564184678483684080612689529294874538833438945431141221339134669904639411478781899111641929029726116079760578444726040859070587435391829980461691319235270298626282719166334916317284741492700063130093870238304093622090796342560415748102444537840984216177526210213570125240626357456702123471603365826276089065358896580289982180665504837130717124736536517645856200739758065776247979160528114548093907471764479012690354629048624389752082240359234075393101548006461832303327997550753398075957481407910830019657566606349831086760364530943287306200363213342688337594601716608188360710922650647962461347627188211076036770931709393508811698840856380582261543112651046168215387951299052564021400870842622923511965755313213140406003927418498086082924426494991178708990334269972353657194415636246184015625644711415659268530309963513157406430693531077368548669541017547061145472223302211525717049329186666672912724050521599737435019811299781712441818400264597422979625172407678245460169334912726321340166502144623823469709368062153942419441077435330006958251123271293329432760070987254560845233857950491325365089478360616198929081959588844245316489919045559849403357424121401329233572752943819203670652708915056350997126925016634586042469580936312990222982630082039445654874592967031681670570542662447346299634215012159585478005995609551257970363909694096681942323293558391276053656755966258578398664611093415972733204992943060426195342099707708601803702691357376919521231414072161018304969535216306081054953242813805928234526874441894049588129962971633361195048768038580399975356885103488610647228832178547667013459070852606601021347614072546886673189677252902398853736902745070160331582498594568397111329247410610386736833039626932579435529091000180045869464290681512006670874877684196215151960840254688573758596551742413676954741416500915347108926427265223899813048765503317162516095420562156626709794417882799943095458385720050569766018472154220485567821829982758598947842954867174040913383743386351108526317474217830501880683199728390957553070658148675321808095391389819850699623277027264072388154174559892495839418385032083529556216050069314006633098759062130785417053243749502096160450371296821757312204680607892605296806772311194539657889461434761231999044825774716539249519407679388879617095962322558959691580042785607168804199516712600384994156977919701630758273499808472072397588334831929362224291998324412859257033364211876164268580724817196120135645735733257679677219090668099012503130420978172686864744359801947319928116257839224288079145333112888475528280397751865744193150487321379923544145896449210167579636657190497368749505759860998316354361593408221955058694176828864181838988563223528367695452287903975120228328784054469260451894924129048887101893086638997739183148512110615093198315916227711374045445672352925881909762036763322023624198294626810109367083495445885275871550482949913864424010835829775756163739638236451330875061837225255012114814339092797291854492068125714098619556227824209657849512668861636044771223844860475437055524308530032001415049551856427093166494420441867857802092628032031856483635888079314792824371092450436657193588250681554837637084953560898031781367985818593612411078129343666061618879668194800655575879477210873281888088452467248580555204362552765336143440156056576997297434976426349810671586036662249871676674629643105286557034155970149796900843075523459066646451323915813434157272206049760499223190424662661550086186993994819768065411958567815892036569286088476977592395402792577082236976921213643546529448344153376512350963105963677941636111216706767425766664656010928672445533291588931666047471437006348056071139733253019187492749053125651136860433378563664655780438747512930590538581844513312661406102502522310159298011777739532514164057628414667998960935263634770096680608721723376546998267133287509104614506568444463118364063679358651101617815323667739209112442989354077928538410072237606663019815461864636185101673219533692457027212844323993218071300275863000386707861202566512219318635503170703041931777379971426879358667073370322500611942655442242925133722279748403274016211418313323013323118270205870807034971441449562712930267383201616014887861196675244107866077003420257823879725386423290739234869750820032075811844524475413321899189532138010822608102708311368394638332008798297722349017590143118130106279732656181643727976230947475368794259573490578957770006843623854776839137152748738596018507270123829127940269163184543960123003934941910129699103153847283083411341567082278784163803462957051193546509991882589383034300435036698407805786917287315572338685951361144508306264578741711664149442645458262430290347637372561883764935476096122953688076363678321244533791162185930932143553598309067819727747984931091754421902757852252667946236776705810873838747360951987676403243277897184519151195644900214666432135695275530145639777035531875152859205150400068183118766658538704259700257083269251314905761872084566771127747251144701540671439415757742234912654338632905606660911686896112707225835550701339095857095084818131052648694648500097350062461416067249010292245313783722724482186512931277644758932197102956043633463651935283673405827070616865216671633120314061911694220476428106076129517203306194629661730453899943681461354065119233732965882369164841416503164395454817117139766489630920099297341854605600259831786165316513207196343662273391102226317519653797153972146175237355888160905616029143086136354252527188372410500777945238976840459470206394164280821459490980936970423012497625057621291217182746926926256245026931612380127440909595054062297407014177368875089877600429342368444893392324386874201102349646303954786307759944766993572188594040937145047764927513566562866435213590008370145087620636175777332367649054240242268507525174021694988848598642883904611139114399051386493629361968750871494745927213906563333026999950570234560788597868575261007384160056716607101288747124093134881117614610236520856603594966509146845776835449132606311237877860837329123462558759811381078550486299999831480250154224521702137795061437469298296597154688510302823356109410357485377067164946715116321340266075068160764548013133876856288346294950160668344318001135175196239625541510196175201779777989637367745959463670195591399097754809745615326181850778126961252848773777540039590633398283105348771567508690647937083469496793993258670096274556195818597182557756855091608803028802842876961884619982658207229955970111304149813024105532645449169487399725682938692913947973291930237299955485703524565282231983819887014972714876456176868658978875920321573429256114061941014957830654328660448978312251307055942099737566997424068312447764898043858738728298478902317033848418842328005606922803254242573740762031159938881384235269150057125393263842501223744232086319301463908128473656821423587040018278426674759493060452735240171744221339639819996728195814171317485504573742411007911437317325910986826998353980615375528929755611544199566652825061773978785591713012797803153691494057508834359561895830093946728355210307946361012374462619175387315476472177547688091771584023992748161858315049422835236955811458152606591418248381434720734181438167996046964757364508676287367905883216990790208982869596456594077197403386021904883104688911897257874808537301049616032682436600329927659520409888072146537210766016656993665468653631154951812724242146188684079930960493782446257525939554205773779371133729319683764686563639506035964283329070838962106180240261072471251217215125884079372465984416466639181242545797581588307118152282130021690668530123721987774000030610350052888655486280527391815758977973100494072929984211578824722803019383760124199610484674495263858298221001955229036930678745872628762092888833355100245334763344658373080619341682248617136706415101079711937088304895866629357155299577468046787564399683554138727227179117862619741767849836688399405405599731437765563963713718229102929839773304001491788346379756577178449760276559812141667618117961698068140616105704608275836906029195529503648098720693262510495976588863783718026619904418453488869253908603587240741455934676784724129489441001791709502298528524641219534014770715488149002416598673885756415056760561082750533639011635294495902491594673183589258476704155890519910780103411718411016583619322256125224699821566034579578007105712224498147201444911495853487264066576961017723202726058178498631693907313479912924580132357349367696822226838633756482552885964305711114084435909923865697775056196761607217062878548032738473248370742821101735434029297638032373947684555643506002801988364609742214285271373486324798910779971567765261182074001674455046239395102653717912075780582270932704121240134840978706431031336687123740114902658771983904806939063127925105913696666319596977837650973326241954042509368403011329625283430176905348230249333444584357594235354724625231969576482128430982586256962580879008968879389220799572040916056474380492967893285281690132718647951909916378580107818344447212123760351946952363145988656565316999284073769462041438150680432010764985688130006626149599818184108382323964655129139043705182848663951618132635670882139125661690423275840507257960832452929612769594757692745295558957806677713094441081630921264874643417531532182934112646159673650689334326798479255368859516761805799820856940218660799861920769689598197517156704957817682932184669323241512831209385122166340528794302725815772279278826925186718255505141529784539339298730074591013362275945757720590525172346735068362080757496698103228799580162432560535554834084317354326626508113428847943806100602109552027528376910996495658445445428762202613434598636253178481746703963142561281322673489093970404092292829781872905009782692409437118107400345096917959782274562974847068565874723251528502408126126646763897143191077531974253899201362608035180933682119290566052115494918712530726016489226675110505766992083403733364423808066227572050645243271598692295267137630293857218951467503576655218702828317231781087523733861084532176252236035206934915223154188450750581075586961811502891624384030720884088879518410037122219513615026223404682577304371597789449732685464757646362989469958927770952084940562617343755030248731180130468168740487068881893656743914769041311517266753987460951287753140980156727451271858711264277778875851598924389157102937402332285383252513899818808326034745754658880135434114959542274710693424226603995785675985748049290208268172332553964142091005230571915210574362806868012803523966458476076823184164940737522007783484107865016739413655666030388089308520213914135933159816403510261106562479717976397454901798543367748065125330541959000293352943125137118990465179164182200169963372055693483142645761715778213080196327730716963596504929235972564528353771211167601113342995904234924619867293595429959498745609640999026565064978154397629472283715571142584896611530036398595438438082474053109759613654761615114477107615057674033398561784667454607847858484060169478339436066305915803206011632479774812544919473830144883828810235021882744313881741594636300803184566725867486623952740743374710244422937644290738948440612403974052047956389361276788933358361265482232975855034313899652546893344884064087704380804522715972610809071434388485058194434336617072891493424373522126895070812787031311015790694701171378505093858348140603050781231625185094481396812927805222401335860236130289785419044750323182589739479601965085574321029654215622664083903019189761769164473579748684361274090235711263867614157578661337829470847288922224784784905946158137763947551725436879824707018755545334029275427828197687528584566739150121433659040507255285942231708828467385477471089043587295457494213062715332742110361407819168651606942937712728136145535668283405204545782275643738154111321830680466618377163895679836225787712816586363771834878913349755386813840094522337670149158907572977033525117919360988079748973293469145242398354131095061578393506197640365365846503039317950845714501425503781631998732014503230203707789953797259681103800835697980817888222775378888488394418529484230956555536184476912142913007531524442517972918532166429083779836034134425238954865227773364924652337984591540405164405095277388107144365540525685703708108913776128819409542026424488832241138968233387738926363364333406279731755805536620109747780160552473100411477798836611394409902251860123901182189556100711382819273261620231589030963487940183653188640709072977472353222412651598695587938250772077161861158375243369589470259880570323645961767468146081561303649092635333606048692049131338341788366973666803542946988273752882925134553384670791227308057778500274877200824888016699392923406790932347740510618823704059635209883006852991888333212381182439984835558526795993831120033680104905349212802612781038331023611178313921055195326471211706937389440365287375983435568066698872209079887785432502398745683787178140466645329113173502019519898305012689821383189000648928168373121009168755437246041453362011135127393419411806748367995631493994673994521496122738813712255242000248719016262735920563494756913050643679499879940864094218915782033260090670778104175250193965810903287706732339096085746140322504522628391362899986329049012696912113652966027632821332087700137878900898781034694548548353155000862999446613368319464940648715263414925813897899164311200301359611296138158863969792446404080395870270014490411068822293304937288436719432719421526981794659219046784388152914428364490629245931843541869569010330035600411673771549507212194313598052485936812017446612231778983266763517572030964978651232481890547397513649532241312351773194171123824794540836426496976643283569105719056983528816910321520515976867604055371871906572625700242465721606483606272578101856505149058206565339616814716605252562628292816834240171813400798793974191188881391361882862609634537558787532499140232201901711010309816125455778708687373492980591605126487094675739261914637135525630735481561061628457339865074886845521881775323087951973162959493621552326582488280517410889822272555607862033462198315707360276927195410797599182165418710595166975280508317618139735755266255849739804785718962604824043477893416875260349399993366460615215457485066137878981637290160660799980603681826120663166774844011500411046629213324022321582036312405956503509761633710393892963444157659917033342344375334204348963809155961230594916726137060647812154305511041372945949648724297977055770762458449140993336325509769405690251801118428110096977677121064686466734323839782572539960766206575034978592306703389421569396501870133251768949688240268321819749716359453890177418715816977651988739249815376488646472947224260657016912835568302354741675748397440298413632240008581391779443287313323429540398182946779808369132879045252877351901184200490343358589735813430032165275855100062673111083747237228755047611295133366281097197988476350050134769335561784263276974674026858339084588777352285817556371552585524508336658635275715754938946907935150233595125260335345187198507760616682637101203853967606306395209691902867066158165503764279742988537052733229538305281740364359711658397424730785213077900053304734727297570756824081271430736315645375051846245163435464130135616974653297942709711877800261555269947839978956096640187185315236455421752923519739912748216716308285176106175079140962519284895168844681417739005399537258060500679276727508764224954597865140326349815558183993327186152842650834401172554431684588205875246377555230792674485554489522720961908207677571321372213818572480787600043727937149441682656644141157185575629216642736311704988254605288718420039394659352652184333874118445075495488792474911621936593095872239312842653043140303272803686695621504265153417087038259243514016502210337374840633543669960532968607551843045184099116583575055446055467826602292755608635982604461680891329324719225857800140295825050033293673452608563699998157328580224454892803721003682154770010480106423087542820661089009073503667175826566198411884307870129381525392872144043778299139151208783337393383385150628418770267479767986168582862797417413306394575808657744032502092454170697871183068525748061890914336867271111888936406610023927243492164719469245776329501158599962479780632913263605732785101271194193166965670721791144274600566550545255495266483321753263730677045955007552990238147141412726111450401938540343394277847476690105914332008470656256046316538417568013686464225819417680947322503540442237723199919155507598876772623488252194131675345252729469469539628225047975481044613087543463742342056351034019504921414334251052436711158166326442022946841865821137178983708295634342355764584516151107097151111953614017823225989051761358460077560722284663003506352826450364063014161845471067766528338465289636521147677939919842571026630323365099699859404265454778129092913731707913061170557666111956257782873860093458895678481211525731558644314561614417183967352786007161742922866825816458349399631537214589740477427504677945491436909997044166990145284754447577021500107396292037193030896077446215835861665537237267866807953083767103476699264569601706701857103458820302080153615079059751503217675853428687165254130438030789070978413938891061604674717583852974425558451035664342144130795994764983339803710430942943394155291296371181740417441817832395068807960708475488500973310357176227300839080554273350853728992348549407135573417815886778781546490492902542062969448992065095652057715453392611865391998999709553389610326310244490128214679084275606817265125019190253046826410439060186651720173854180596918345926376425783528352242163485101702727786033247945668815907489608943300582550586837735203396023435649642415663199584225387834825365823046837911385507942885268679912497230264073678701479876255867848044033965957655157975268428402188319823985078913372238019752628208399352690587044402201109846295136283254323915374909064735036481250966158254138852127755617092184518379636836465701270796884896337115443414838491236154436045395577590013409969308323525410657588945394897611634143427544017309694861370613904664397158130297104389569750857183192356449246546672956099354183567163957168055782206941763131170383652923940663498547082892620467124971544605700349367265725869709401180919701126326166672473999976347289828617924094724589716486529410616273797843673226711725702370971895430393099668561100836723385736891319967013819468159123605358878283498972584768748118177561991513196293313513072174609526286592458856905017529498191146585584535685700251747529467814197951550659258678768690871554528625230612460081422132258720017843170762387657864931736574897809912587436170565594193882314513780066460824792996454469672365323543358083606931058381770256028640968728385351362150567050809371134579574257567050072629021959907115459881447927664365534652466207398388976792444590289494292002990397451525271441109309230607859747924059903070011131858737604960443071904286228847141614647141849919047613071864378872038192566460308395711853117684210599969389920156761141691916486532366405000855915188533136938810106134366490379974642917926394366244774509143297874150279916906040304906739859219053409942046320397975489263439291273366663622520572790874850141246500967807789474311717932624133823855031710652084359442947608779971830941726673168010017624538385569205398669564303434559301937886963301266294910538740177002567497702691727947619455682423945312852509614843952493682052535332360256389179184797482207321830744148604578866958010780407250580995257268391238508696482714199264966873961060295975450970371395609374236810299683460055104574940161524486383762187045113223117152924173672188072463750780418007846839021036666874635237252984905206892046654005258044433087155998786354014026824458999549637073693105541088804099367626568093493302384460519671183280391315945536609241021861819847426757178664716834203644444547352636726346741576541784874022358291169848863399819066107920670158101159881041392980862115569450532297020305879894939982518815123202819033425185552994622647598151751979416010840699973363471654211218845922227176267415959061003756711581591362201841959007344040434238981878516627441637299997274247714288289716554305873843662333974961219026845296206515759915379134321130956524367721065559397797620259728786837366062724814773837744163135086194150613581350737826179520473043543107475006645204402430826672805263373303769405716018104373685740616152625414301530934925740414504667134192928119166801587556786169136045341412369413552024613229142099950371855359812615671752573722967291445462619168802116482219516055173697842691954716613325540652608480472371541997911705351831056199811649055477019184009121402393579449877848600956720192738281713434785327562039463117456378490991853790566470600607366040264172528546451107451045822458597384470573554173554123845967475642997816856186965843120984077001078879986371944659334292667989609889468938507746935400714871251461427849844014014406924040102837825379871408420777893337399482583194191649329653026443975271326976664277850704939761350769655348012162560037886836214164756216450096195708141729736565077527075499157650139341635680178386220698254251482941979116722529557328608051770387600848252565449488155002317291800655103637776349898307710636929590476973045038639660818423450711269493950411791473457835809487546965249719552728908652346379420099148701344578944924087255388092218279156004532815269705650028292914909327798289767510475882209422615362052865604178438639221929062169728689263510708651549872666258824850933390648325426398977911699644840230385567583614059002010591201417772511920515085302614682521652520116319664930367501930310563338809551967092316004829844440920530428839889098945797254608895180904494383702457242354146230818124343521758620446228813164485144559369587798162392877152270330117909663391458389576370478459434324248557255017089248565194194175024471317035258952988806204110675067080076605405160691257912798762949595597328101025924267700653457481938563829888496205573563343534469833049362724375602256463548013436431910122924537757449890849673820896652757938907815202863326511937120880780944411399483572726426611862457154370207848229452878921810970349987782982508463052402865558884183977346558390088217159763249401533032436696963365256775872269884773120974032800870835101294919481991934965366739023126179370032117184839616481025716952986537439642165074463067399956311165025659203860409042690516687656617514347362721052082164283217487380370277682385674549744916882600238753240223915040237838961390870825091805967571352248054504393657282807749137092987980071102245863701304081009810216581128047424701965777032102961702362975242692452620784042902823317921071947928136950978845820396324556284701854523825590801872172427852425547166494493206725658142162318678266561424395295208631893341030550276750160601621008147285986806301075687842678495108594687487684506837360026466276525918370751250209135368917225146401855305252548749331780056142736383760262768570895100714246589404664598662650382302399117573757741868751265018392551116270595058116374556200579563830274748393941659154566690680639215860990900590541911159149118620056534790286492523167247325042569314448828465686077095341572505369270817727184542490707514947855625214340950934329506451741654464866461527224038513637542208967081205297258732364228834200423201050391740549274733431962202836176749524169285809735734508238999677933839772263761936014576146425464519499602137320194217835431556627553734036540845709504933461848342064202947937330413629555102017894992792842751624289694384738204990135776159117018085767474555723526727868270244736217301866112447388450559765105385841521786461248364811630521095781587596400096549688366370524144887366952640637533395650363518029218003258390675530981606157122184539804609536205201362044565663023960436053512599320252052762405351104485545853695721507070662059717614231678969380820270598910594853217960853958428262748705217545819148691491962739731245263720593838385739682436982093102371843260984883844260136089307712845218118927410189069472613350219433668502416080008029732120424027933109110511516042728915205899189350168239030724670491906348976787338953524750998992875370057376308481238057655453782230533443233029715507006889244980581329418807574547195479473899090108790799606043996347346226529108270548730624355761193782508017165595490627240464792493915221661756179004372244656046564032467853700415079773871495148415590058734691598213820197614499923347717984326304715427554506968006179641421469223796594919303753289142118749053406754922746404547841971307012406660055777024495716258939676375079758863062463798338429932664056032553353086681649275013525364203365993295442408668891477140690013772707372116964512957847335099214362842893449927836243256378793654785957270738641885842597095147396132079739885628983121632271750713328272474861195627245698530924745247167222773436702660395573370299967057827489964810811392673599579613419237765462509250260922026363794502373466040695054634511368046527671323898536009737177343047226343847024471584983018098556232518613987661564846924675309143549055597050142109132942608827613523146041186278774740225358230470382547370123209818136151650036574360476347373394157855237026504663574768166902505149365823912251089258430590775813607275819045274482414142717193715397048548501550600589415973563016578827782576654833422164178584681302944380803327604235249840305888459315070002118160372277309044625602951358996713165676591355805997660857464038695428363228140103838429630907939475098475819862891350269586935034541233152457883059185928707537515419960221247333295410312525330538006813310505321418996258533596215522608473855652404301703338511958750086397499930886749777871706859534049043736535664417222700077493834918452818640013730485000033109305061264314926631392178896672812915936726734112917741457679230108605543349481236505721119345658111439654111169449805322033940503157074846590800548619014161408655354084247047297997043374915679023862535674909284616999603135603301784693430937421076849192885063185027415578018764961116405010828536578288699643888841305197188761031529496931513694466026533449856200775328649424954580610663389876749981249709875095662059265481203419380956550314352675206253771276244929486047302539137723811520914899419719426160295134673051746632305374120002153332698495837574209867145768915594899994018722716896438195869726706784821759455701406097498941879488706599503673949540034837285578165337588640633179246792938503188805494355553467553506223069370697921898094129848857252871254342912325937802516156537043325027689358164023743849711487246245258842826383559061849811927453433253489375653141153812986879804665694321921962109668083694735182886709732091748179672416522805391386339243141824508484280957600623056817891454469355066815868856442876238045736614775078024819360457806695088667717999614007874728395117661861059673765009254925780685621076922825603008909784352007963896394390465274199477198677803585725033123536246984608285329166608529710778785702272380798273851708665290483446058428207747997369973116448786917167397462947421663821163972919143302590547897957912163852941446486655737483036410031097174276325869936366945066597433307897538845522620726272500562867329929424806168311754336501462571655713188133274785821769331595667632859478459626947451753262098751111172846524472616181295888842562715155574852838647166204405322257841544019298557127098175755903322672690713621745168791438832749690390711415495446586221795321710453419219661089967874736980780655875944271993352613396464112177462756039268034748091238791634453137882776450724364816035574036393430755169960630543990675202020267885547444330218589472057863302350934824369955147868569104147172061321099529901329865560680330506102265332950669673979059209669214207254356861759467856332695330078935832654062005735412964042552876613581587606223561157273321430089020534530197622258590391231234646948981288433720603427935965642161549273451809788422940759728764770258817235190093875938366049351071814777400881906108766591649295775902818767004212723781079079232911142324841382799437987239443685281625578772928797275848627567423745559430071643585645506720153873984446382709612949981139942971785813664225823137771660301888982955990070891709219544546661064707756212859887866424110751656683517323638764570105296110566904289218769016279294223153234008383182162670024780272636788035288705078707696820199631913224373481822075461247489592182922641307508393523332484652789403555396898783345133573939759896563741467688240279852093481934495126731674481226187330623515035582650409758923805490859405415139646497088606752759306433398352273265049333937071948302881253015375284761067347918526562354871646463530391468369456608296582237421084444001760264498915635118776196283478065699662662673866469752574748150389491098814596274553473313461824497751046820955624005142928427480252180995501111261670043670803933800045872147221371747766718810112071970002968500412152911305504779320006996569945209395245484929342016888673544544984649045148846739592924711928879322772275234445692214068639461928618374654073434866464790972275165415549616282144817623130979427939767167554081842441029908333346890321826999751933602116363990526063451475623540103431333577062127582462697894866697859991888936589706310968777387382245344523988271100618564477887791469376434065137968198501520692236619026874041476026952337955073902365672465865853953967742791008742400183913692247212988264059508961590926114682725314475035317535800949555126737792596775335554602681166433916638587818050658603564412651798479370753264019923784649399060460568894440607543166114996655287240288618462710162727397598353731269796810130180744237553082515352147263864137311276966930932476877994343983415552845280344370618270096168002835814385742017565994507037644853946894546764946416379512255022216895987140057401794352927550438710075121631393284062563968347501575295078757165401928135418362253062355399411865165550686955383111726472255958865976110166160235880278040900022796905347820301421664425701467247533598703441571253218104177643055121745784133467432393312327207735007832307310075535739516907696904691826888848321330363624835388689506889014745512930828182112477724549584718210941751677732742296868732004317886722724904363126606683655236313333419243850833589273034427846238459133112657050058124659407441096110427986934315890387850834341749746942618642777708436445546541653471095650108730974694666348062766414880166525082334766690505672865693854772902196065321761422973440166044496071116120475838291589688445306310794460089275928056122091384343783824473425209963473339626936179386426281935805968048374751698529734363070330382388222352803263091324111517566410236427139301423782709952565643519137451808734547028980878984182010043569487934282830519804024477949786651525757780880651804554500462706152459764323916106238125543935578799027670047356245756662192509379744947453453808322156268167271883925774489625851353677971492955944277797764221261068973030757650413405015992793134014288979033946530671464567280339636663501668461270459719792095084949643144443713208788730420486557007861821613900895696136711017951431026172394572040590099737084820123681746808654595069314898289548435429233166776006725836276425368399939509104611123733214718919419261502113786013911579486967147876693184081916343078969649290480118266019545172175502295892157841886884633348235085279847823138897906066079865523779127657053848472402315065946019961735202246745219655370974988717331287445642355539532186473958291552713464979024013778995616762585036929767720324603476358135061429155566615067463219157010747284151566419189618998618245605709532941258932928477302635638690194069713709618153076896941019011728427890421793590467915243966355117629699113808551927150840165149525800072878634605893246861144831734854348664324353474684206521561305774977425011213824401939697600507100616858776281393741661890029799433014332725147079895305541808357950361781623934553862043120305118911946772072718967357071309564018574646208462656958952018833902375277883700049204973296067194384090254994005849264612895370911409821692309588484766182240260426606616148173376868784243864186989402842321661138725024090511062457259515213318907608469647604305785903579107270619757221634161658856157007018643319523178548562107551682653198384145655568493646291700164487660074278281265217609796077547930365176185507186618413391137993256906843264587044304390683380441798672836498891490324852403948464528210331261788365402896061552548476506653512715317022425441321331744485024080497886475610412764303616270357441542127741999197921864753625968752744293685200531035095712209464902419612578336036996379994548865497297473791506833946327663915681979727518053069475244033021729870555863309610071478718312389160172956691826074623347770219590723129582126048241898968626124318990961696797645300957900006386682400881918761942207632297803263950140392432605944127069130038474980557839872050695682482943209101313333548013314400438037996658200723524848362554310284815729363341799672465293357249107558159581334133763044567341523029858671519433881231590232616115009872063615049334226851500628413940030370615032034759851183788172557847410164193808557448086470594511653397078204882335364049175588923487582276342542693493705683413280043059582771665226597388516599662546417874300997503953182737308195247184626451882289181248493319344954070237308864436011795192482001066325667709009766551220978912013796450557446603551031933406503934527412306640928837583594403749045283064787245273118523377512655528206354060188294834271000433373861488676574283673964776713242596886544758532276628398935965090596836540970214585968759046196807879943931484085728814819748585875011029482767026791835818981968245732309960475907607106900676795930463214831017261432302185571547817599131294894249380520398784261215162632358681108577759663099070202960018724814394481834226229840886770694587032593862100958438734703541568442271045385282340393325603680474846887401895707183383901807038426433482607041688544867984937758028158420361541528040782420988190449986139514676085011316588275009730273086744590008178668761756171431625833113912056485944736390523730659925051433528437541017061061823397641810395142682234134776080891937426344271170655303569478643842739643920465225707885550375238056071209110454319257976727104946208804705333132828672788696702657052820250056098709666956266962164532918876731699632861931489232656357850618567551621573949420068690269464028495826298903973510247856794380455573798935590991340676140821699856194499506096958221025977850633978413826490835294406453300675859084017513185038407813496961709738491783573823952065833149126804893466249715872518861334143291529499593933280131121743336690784905654979800560689540059239337226168994290856999304943839580401600675714685991633505369134912146331050644158771391059677028993916194436934203523313944732567149107605562367898247894991844743169840144323177198045338000251859926214299884100639830913175461868533323263526166781535966837600601370120764755459390762472215629534095290618971210732745075604487661806021480367515484271096125651895162737126002775375344676486495208253133476038118554164754085802970188590960532445976702835185729319765986540343908958559662166239499203392757218446495312996321732074909471100044822097511995971385720024619962534910422323081107943630806910270902338429558582411711927872899321439725100252974957764515653632211595440916225087119984728285306737206027216095242201353989884982880308880881484755804644024648744496281301784978151251063855561211410042756431776476309683695083519313711559693664277345695303700726360057123763591679102255709462730490547570765155199410205058481125348085503399321541634372955195113564420137696173906454172809421915237122264680716043644003582660487090592872255215320744732948844246015645832890876849669018006929350597438615272580239827276732269376284225615834518767313256660134789079388382730927254613918715552243394671185604879977666056552537244208982643342409430378233634481612604752869136306427954254292335538258438056321295811179186967405375760335935097451027376823336391192263147316211808425458541466740294483426051711818793604254007266851552764770973111569945938369281364501188576738952904119335608809765581457939567020902504036057503546921211564746177927767361929489586332002757907864230072331895397069817655735512167895702209767934714851312465103240994873391404376313784492832380948110216537705734843058689799090794713541436201191200506772286176598358283393153429978617844186977358634921751526417131951596066198223434744007032887942371586404643890428829122727164327898061635008613196462884464656717714281067498670240908518324303719605846619720692317000232724676478370511629700203017273962520074067986273862688728535203004704312982192150784965050909122580390377945477062846660102997475585877066299891324005600666143763358442625240644342768339952411816036018162087851330203024116354030795349153787047266573916510795963608381326004595794959619105809411951479781555382883790776694916051919287992407694656225158425403884754875505744085970677131421641042806854992836295290353427635878443798577665764798504953255816009080965984055671273384611707570110034894903555368501461896382479481370614635967187596302004230476053045791725195262583365999103475323513430430935111490193825950645830011002532348209356336037469751615168708303659136478808175873231739871488158037785121045300794756011869607228739987327023169293610895738703904771126813254924414003719644606974842322038471449014996509518539923839927736042394293226202045704553758129199197071239049999662901456746377273692922860424854114556173758562057966366194109840535270556393434110101244886669125797224753356760580769096768345182829545882038556939942865705509175776577020653496132910971050697100188251661535422397589355043891667367140286549450816071924260208587089480683071681574425862658212973034794352278348110709367295255581800559360122896033824238341915896788401434712664630612182505838404161775008579792886509041155024698100267153336124737507184947947321098017431919118293875792714847241271347414305519164521292656293477069876423865308964147865558840774264174557912323055779311227300812550162476273914327333443910332151773347591906846062408053906652456562813342507302084147792188167099707470378579472734015237355621848887591515575757458860991948010304271590467937684353587302145043553214470030855793103072962175443493304708496636601738151737237571857010270964550760704317415212933571886489788806815629004616743551814960615427319224144290544299890561617081554005625147737741518507781081327195028151586139721081991711805771297652635171939428575530989380086549567627443413605042152080396541793564128572220179122021094831329958110813406632067691376936876040193789291114055827230500525975006977791005218955826398105205514844687131036776307425962565039025464127272834492320633259105264056772075925784038377881929641036657273984474218827789897904917348769161995126530889244766458725273317728527935437790463770928466728449192201601619497320861766744010317184645806960992240263605227039511796141068443890467277687666640711895287543663301512212010834482173378536357941952240369382042791165273961642131763128976156379150837486687592445550701973007771757088618503196120677727790293680580414435021961977940946814029793096363749556441317896906159281591806849191668348557652142994076243862454297929046089071224121158047116527427034725772869270531555598159760314904209927305827666068217279174208312465524669958004845288056589802981676925607952602130964514980947190838225056957274734904746131257437571662881107966603417197782502264969703114565397116187802103804308411126928138030567541831385154510684868049680598142915259736816855771540627203061527779389675290204282014308279230445470124810607841093031204375963889337392199145705282991456379147450264047555873672048061904058547530815187429124446453130348213813883949170435531984949625873208296427538230066921882913971517824563251120011090877281594366299380537108410135838234880272411237872168715558235453984434352293501253017880071627447669589769855481040016984848694540616448578650093743901868908110073954468684642034817440509209176649702587776401784646047491275546560092922772411699215597872048375766801765561542822041469156148077663730734100495300894902862170496241066649213653595733226158906352862624670789287928947694001090927511512809910169053316971169979649673473829974564602560200732111844984578860915809032155038939695692114762387846921789709417088499649231550800510766411231482054784874274334103688409639102195633544880470217966820995009447850251240158072096123466419426890199723129665634898291972535927530721120535649168634807140412460339194848499215890062917811071212604415566094343675140592871935736419415946616829848669621439151054492902460550616684837042519338901206476978784912975422709313403670429228289948236183858901672279823284540562603500629631395472040799789562209183497426285851576741158591650763921694300360723403540922280726048169054683349111741244825437083850177949090434481761308018927968440807453768282160022676888599134663210976076106309078812630147192278332011413321923762746389955488709824819313484977317573759796322166866233153029472574931839249953636111714568571206330521334193979945445270010729647569841097717877769556905413358373846268069177213711973507220710474567107999538767436375001527176786390050438749058981202389495763186170164699572269010734174721364345668349387039420044647061698453028522559122850687096688905199647436785958642055611673859346876917265172048505972886625477263157469683671803835547278268681716173204240156568077065248681710850541654620095188132048317842599816875258959647558962755009972641839472439404396580789776066950960132294934984396976101360689548217501466050326832746438785149508600370748089589568149631346981976717349011511240586971782123077691443415051820263418421663855655333940116311638601526016121913907159868904639790694233806610094956846193598145138304541856380431037142518831867851554225193160415252107128049230492284931019540874788814943813457019904053432132543775869958353348529845583115565621230443953914116397941075721848507686189325965946413757000480969244272212720155072989637028888161111625775770385651402754425216838926774441370337608110094650112016622726177373076753515008007912832320181950828993317400980348672977789029324384109908683451038197360678912082734929641712968926494769604647116692686189767937733700237121134197208500664601066884969323836996866372548279459384538628558924758265945119119048192304530775138422531095879662953382956459102976555543161417229716286389653320325954098408385504362279418485630425602682963825382101990862231952764043235954198139816789974483423869308224510529159465841757446641523371997354593463080664490211078644972119920737670140981023202432382127591014255049423080579239218213239467541404666983689668471380904137580979012626068576796466153904141568962456351510347497065950232823589652283174112409645284856673380561448132147166544122339143898268706393519161406519727231623457602936180674910461561866512419373077106265896507946403886884164663890693319213398980506235560962780971994815630754430486656421540687391902412427722650572829647260430206444749517366614723684037969557959411728575492667902180910743350509109972528439124754209047962612313601229463964327948515453594264395823841653982030831302786091651222376283120751565178338068881229744340144931512195676240654470826175838794838064071673309967491179036496078404055358518140270450990123451350788478713243660921644845051826241578649140826693177959373320011021746919515113817949769107595736934494174027082532119895139207457724846060351194908314221457276516269288235803654479480383782422759428624688325749313993257571266324209973202696677655444681188415912356664735365955203936430693109629857050306286547832621552322812882227866710922703119484994432208488472793723449582824281258014651180333160123039101422370386259875715128089115370089081165254978934562626582667295752754350732926280466327298479666629784727545345334987109486283181213538270069902128368937902786543194783500737433783197803519460819264868608557295285826950931504068956079663890758310779395726017723035419242151964116557997922196701037911887744452789532357860085201680310983879870242322229057984051799812603056326722805203641294031328818567212432945184827801879417832906445238975904331229642544277959292508136224318825083243676397477902310050380989364874374064977092042185297456084757653566078410578539771319216761993144842724489578784828910632403534606818170248563868770919710648340195622866170341156988850041987995355983850175456184449842104970143029135283030290656838712436255235111364300768470707218052652824774685245831177072084191069309057704037265323173530105791368356949686410662271604166740722343582363001307614033049584537954909414178395293502675295576025105477073475003014777102600317148785490042237927070956504610877110206619175951244062007784788901090234673248808406262272089779226700236306002345932156235427971035499972046819071898986925637419467068127479470775520634417075775785250924372730932703755911524430494039143179262354743133927193925490880622738586692880333116338840579170274846627072151969130392424766143591766409653693469967968659182447515323567755114858922034319956634686011776082711769527077138807957377028793952821053789845333508777743443650405894835374182346581804116058688606054140861449138251617993138878364095684634104149964986461589373689395087394159600601923761105459361368139817325765975771332805371451054316142134425429436201962166116243192336724640272142000975447527024978730516629840691142946419646636280407886113838608425528879149237149807266555994882967620404366003826449801194460725545164841244292232127477010606251216006334272638307907040298769971109426165278649634963450392245204248218799407947104654808323161061807007084913302208532450165347403991404482122405926102563641149817956587792906177686692531293584619443339889474519695688407748687589175846906263741286039477434779652823843892662205916938838210454710387238774822299106218377205004738161321052711286949376723671184874376013444031708829312330327998139821170325372403353488940930867185181156409722256977489713429545887995938903243216190397314946805762473329926308170948091518320612745681123746748704029160951169557063912907081831330669863387553710934948545935568929992954146301562600857091103276566918739564564057813208941218896558968103208850276951600313365668776349381417481026170572831686928262050731054400126767451729852598480705058581334675907894577785965291605047961326796489011834694489360930701750222989322138269987484436452223895102080837902509448947582841656957516594012909689078804362186641892233227381832633795930957554748833749817164543776173566564896886471024634014354225858106415534830931682761445327309327793132453330810588848507490964258748554509854889527493085017190919971236038546042044855966958855206467683135737598753627564630974386301745662704450497939208338035518637830593675726440148213702234921275963433821210004352094808450496334344079334659050807887483094675970284439418416449706349168748559578488746633113874828580667410364865810582668363744203786322983008530562564829751967127359286686037072994091982235642778675738426175892956764080449344641080576544526867282925430195424320699068714249303832289338455991469979488869711860803725611511370486500213217753201773878927832188533743963974577280857429502208016556193511601375526732508239940265756368676551584030010384155247110265146388669600119331651866501089851317549751990846577445776939030282185647296435209626517282037816699160241899680445428992541830386232788129749090765552889703113419366262018484601776068780805603869520426524692383232676593951013379122266995623062044891191577593943156917958505622993381381560929040039747731905314258149810278930261976644612114359771832780286599320110591881587372354010744296064455404838944098041812260423266318833234695258662773107031267150438942277002532640942448239275305965264686096962665044299225758638741054851713054119927697712686272900615487645428574173146609876253837698319184682252085096557883761420243882223709787341491449245909755871002892565703778860706950079909628341985541042670269316719296639135309608630792505103540819815473097917795487567202219818791150385222792970539366140226120299094628716790745536181558873150700046684898654086951520389212091743988751397326914865442179498866275083751612305504439723670048349195382114921101557027369618908204624505344485570101646799106854609015203119106841704460221224570478752384565237947670195075256300184795464002759598918587786314335149547531829984727375459634597136471227404855586249268048978209035254137272694678387432048975284065910026127855056416202495471047243993433409254698106660062724387334808471409302104532529202188512182346404736120241852421330686276384626855378718850334197933182525533686381474104618318728027014956635269088332442224736505732603198863323782669356150936348918384594439874893849848393782229541670679819714538802296129864721493123840694745801134662199256674274079399971518928891772063673413023933149592349889254289967615798750964077073696264286464936552404674514607405471026352107521907347589075181776324268409294750511270577895375765667187982119838481311887658196786615243841690269778156747634849566546376851933969610485536099217343899927692460633909773447898544329562034704028725199505506541962380469019665017659366767196248676523269360341407165141670242459235639788631554141443031364690183723627253106171634033095969426248899169500665978257784808199934596688384124170883031248155328844628549718107184891580129619186658406020312586379540049078612143448142723167871414759712614106664553772883451927184115874161683789033613056230523581219618743140643055932704877378401048221544612286222040639785708344392663357615958855882640311187108777397770582994290532949751811106674567209475386765202638862501194325327691743638508295428555836067352887098837813478417324602035020071146966315376110454331555721659889985990239302295466329141274104809711706480145217044578592416750471157866432628356411035216452198754841649267312475781851508369931746577517222731345203229687513199631091204072178512361139750975431285755501084444856005479175579438676693457224938742459100161697716790245957045246234589723175156643768907736531249898496379029969421060318622724206404239830559540147662113639669176299473170419976455130024134511644852783959088905010859614270905479180428951245330111274573748692392308978248990229909388448219765991005601572618689326991231000447661305165983707452661289530893933007326886017493226090808642240122034126320160865294680573617557422111310031713466542009053811922820330278839310549178682516901457378563666290005780039048547740538714509975670075529569059342445458829061146206765544820506015088372925936669974835503908241636366498553432700849764876066344892857989296636338432061392270679942416010077677577608367097601828344530934988354590408739907607868189648982949915002260243343829172473401954173943345708245850354891819204370788581271559282211201518612087348306173523899540495354840231534553677921803084224166236371443890214971842391318975392750398834913310681678114641671424923865906854423539848277812536899071136990286234092489023923011728162308338842327740125278073420845100801756150760568012514229836325020978433129980888257506878461155538669937261828589019349728399592673987891816646236906313637931078109354400892108251168411354244244101203092934998455679346582318113785706658498053049788933027677622761105638093425062192227587263213688246864751421924635920845502635632147861790984428380676066327867492882677433056665326206764792376071603577830364055296459512775826299260599460094339346160395122276527040429448500726347167190656720930955185944639785450733726294075522560056467839665693902374244030101921390332995999761455411896175848646937580475796688789022167427727859373408973452464528775481483856662607239104982436156437100992529871830683374865710558809601969586295685912076088703769890989938209590712321598672695686671060623621395972508078123777226031267013273130451020837139932320534373015860329599222938167700119059556302076542649919221311135990524594358506467714874685565006266933151993131734441165185082021761930335260078522650232962633452008748652035730591596510706024545427248397176778492705657635816647110306000714520890296022673401872923435911320686283789419196546030872850590719143142059840427650494001017792809991151243418354798688380484791506779538437621011311460991786221017754272146513529461409094482581477972417621176988810377827690501129541162301275525581395993024643821295039049673616236969630080266312281340689722806300945203746209203164819860454567292310471445255306821134550429020396915438059847594780092167583427034950279122085105778337640384544846343816367069196748522401411157188004737172359298623207032268113378347188911151426376174808745029953370703550031835606245585340238851130398140331214409706453750479542106966030026088425036306781912887747726131609111274723761159677605383296616069957475664801216292055390500040218223512620200077347922939533122863223281158705973922704282326220449661590528323368117117006574014068259483354158911704411564849505385142428532053106943361158977932836920242410468833613560798490018304766967479279302164027750480759753056458864273944418768264892960544674249738847148121148336012447190275798009720245453487806920796318914246115351558604381075252489289419124437077437621529130235303021320384730331539348535077372806749494979488106909682799722419715684052632954423493840435097149535903055744977220551104190971320038542005198386801065814195283081772713114629436238399932134362442109927311066521887507527183835466380505974861375729510866196584516870775236067465798838471349471867812281058172811979702531024860668248217407053998496717095321119575198018561402317264404619062185159147166390557186432552558714385067854501360873692809648334669808387091280269876752313077617196918508513258505286103205623775278710954933692032838562029630669439268633848079463693097231874237485236776887822118552389806979735424335914619927295031669536489790141159243511061968317313177143381991178828348253448080203206675992996280368826342117576954220041531788967998538736803948895328886687873784651413989125190041833520397429362855961529465131691439558576949958033387192694347242385802038772667582874325911275388827305882899314130543361829410921980528231453976295862372941362319082189230200074276698352264464903352134443891481127867075819852609120150387978881207064220849829374946005919541138975367644074396622218727004507292096269555603525424752396347091160366662830855535124137742741325285840897893498181879168760324211351623876642627423842510648679004443202716375431737384671150166383103176323130826396308913118504241673886542429545727995186830906286782110953045154019075297535784587695629627065402582426254309668966578163671218034497691184007608657837949790350288693308057023879963390720996859305558689273980251019013157657756387097626724961253270695357430455858635562331559782028397095569533520113421036518349992991559885183319553097008527017344214815469421028731704881777630474544120276470919508259325939094282949000278859411473091241931183374348993265220183070812878532078052933201066443886970608037112668703828176885215798661529025369850228558357313371917833876527474277020500898339647966568836573933109572989850852435837598586359555761951201937618923704613242318081241628870286839056220862054645990172757462437476511459447549170009203457298188763260788718266194075769070419194117768632115654796837660527130269723108560176534800914253760108058773053678680979811508938025866139104477923304315821383559667291002504639308165741308919349620901573353321716784907999736717648447880699138076034901604843686839294721599928528897145611940647696887956104819766836515782919974704659986732415882156658084381925497289882168164190879125722418793480412901014650558901798922563007760468745329550394681530006850190765968683572111882865406607735364985400899544889301378040535971325555054882573551549171870458857838565371394317391238219706519400713962391494224722639870592292017404686205064348192337195957242272311082017084648198851646895555453223926808540283008370882825139521494361942894543713317840532551309311325598362895521225179285225083192693637752870775300431910748360910282061600162240315211016185650464399918401217420072400685794275758495361858748378944143342959771178726088548012982162020942099690241387557435127640480866671057986304053322891243477147760970469614419740811932952176275798895043259960559428802525404152873165183207231455724032496372608627346306154343693929877118462390446747616757613666985490686269038955192298945415193880491733564723140583847904947856855648318538664148339404067523082708609054830528127273791251121812278746098920594714323356466895049049806184514029374273704573510690899169659126727504094881494424335613745671955348653824183159081718650558957158657208701571417381216308392696421248655172212408470699934040872942219365524607901909448240616949071805599496502222043260532902441511567525664494601810950663059509783935388730046556452743648566069972506663809071061333642000698198906660370561732885320094339125645154043095509195472893867246906907685547486908876622231632536225156553850838653408800862317815135478948565890234295008056802567913156175929566656913006431335725442213041777135859960139610249791355376881539385961757470224297258728046421446340665859744655081167204026429318067568157131157593935925253184042758708508251125392529477759812309433615117107953311037178681683130023301756317603685874495884229775504931346444577296635570135539214818139272183067571451484068604294921912119710069643961642695919943614764044456020395722557679266561582101832586276291694366998256008990933620717112911966386624366150652409823170157233581532333250414876460450595867744479247790343270227473702330083785788351581954092460219222150648689305581456781196912824342579156790327121883618102680018035515172245291895437997762802439058012927690186087282622167544373730096939882159833022374916188226666031735553406841736926535419585137848273560048743414817411842483462038465977027012542686804188758974640108750061155522868590550117546251387137874634970141594414166992229632752150934817182051270217047941185200831070815572671554290848015464227092882227037700776216549982703443959344230397435625851758893967865003884627974813649641973616685635339900464555845449383775262784610885706311502997602691627886726330849199610548640971510134663940275979879616950648328141408176336040018194697169683872408542939383321474205045144365556955266551681452905630475626529996647798599204054891231635924301759032994307038906497349113912831013795231714079975459200764598384400296289615320424909829168575843056691244457635484799568170242407513263837110430961233697412211382493076488359683396574348707587856461421284125334313988742163558072279347819665354364088147971040904615192357409281503331969202486044159262239202347079697772348957578185752904416029878988983899422687269247747163592577279176518265234313606099984281882330795409704664848108095274311335290001689864382554461065117074412551791335746391848824592236939796620166797891432917397168159896930142552850369403133021830423506665545743262435753236783705397600255933675452765447280546166454011000613478065509850604685259738714448311079287426909632956272073996248164717944587185540854052496581671812740133375823815290413893184434987370946466975245986117390496187617952645036629245568127744968949569213920948091344907716250404158320919941847672375889155903148740356071611067672645930668693106202520033689045985829212889377763808800564888278908858341837714408872741612370786902559758326262965200470926466024070184602335790796555839368673629198587900247440520410864436581746433336454032310590643571535194069445420923235733700264135873713887016694762245843007038690714569015181383246519091618901090567051982446163193307931174378457634051049704445126000284142475235046880997627538605614389320953730716501574856745640818924812285588422236908032997077634025618121671519628569786096679152634040343275677803316311722608723031786524851317961205740399269421711963042467274252568867133995363530254339758661494333926168313910289163996802685457494202363773757415176841678194611485059750839014011461870443713448928013498535633775229446795148482747355539669620563626313209062032101337866697872841772573128009702456098663750753478425937278727258473589770240633824370480177487240505302205979697161594325610707181309478380596847673262001901618676968056310399226409895956311729391549769660550265366068093222039788357826992736151705545856347112299409287522173559935153628705134320243037576376408792372338840652751722301067479762287630789696824677068254798010444494845948624876169531660960647811724661945672165337056066848917686637816368697982410085210764875718061064328088207285738479354625923011220625787801879539967761498793535721044920083228264904844756383706549788964347480237197010421540764528660837720700448428847160894453755225543868095712692230450284079395248963483365100224750637996991802980070386733753278561995378479595944521952138224236100906832192720537595389732069731778069030329961086508760178507980773868441368163024374618560172217003486286055721014972077118352409123774753861212138161631600758481139421746549767956489591427409094408892727303809175750127632938306509206952576200179871659692577563769059783976794331505490801780123658731752803651641862097826686456269368436664271143124013591056767059125026043818060339617502772135426541281112422744963440856361734154480286651483643559438938057286517616206250315327310852977201298767787985871794067207600802048914420194910213230124360568728290077964322017624016258252226955002124771838374771725403941287963415787614130118286332709264871741726617452644199052128393915344858678192579945243129221008212419041134926242045829549190877623880378228295943952741807511962519221587453857197267872198076801381120720742190048593610189098277225885946173896033462869160931630005895019160866180612309008784606211834781602547827104097632658694256140176423973281678452651869872990686011126697962601749749182265952855729484688334079182307553620630295892720834897188775927063287918829934059433879032045826141085223953162692605233174905331816314114779077009435633074413188635201725915932721426347719420189490580586716050103131383983327821773142580989408959125861465222646172470474297173270136120157340104028096203039576472918799245089849398967736901877037837435822923110941704451664783653291390372539279487270713252026114183628337043641279562575969488976323916215567475817108732873611706629016225409584530644835371832327209560916311414742178405586463685395500469021656362809263772541073815480514331353997030704366676755141800199450932785855347308718447652757889951535919098725272187018881063331391616201968154321566567625599773877567551304304253451588550081405410776525323478453396092111519280505320556465051334914596114548810237841371944557991876581245878806115287961453563350008814404789988920244527269232370406210144552822486107194413321039491347884832233018705051773367197913842362033414440139370648215677101419075011393838392807559969761008121110841156548904233352133172292160577202783502484397372890536537264568763906299278324738387516000855079322347133064317361309345388572347225682701070585838092801038201986002474769144510146564792856717544327210768947382585837855307099625473369870190270384164917499592491989010268711469894483038156229121578744284585281256966132320567772348502918391006532060212039113376627420836739663503048973059867975899570251437988209898810202828296725865329278503807218348304120575331735663139069117020654637996747500052644921894483677271057823510615276209061733064453920292311759343554213783149030475639305621801827087156732337015128069771769126517305403273427639726060225556856296618250969981802843678856558331809414800469842727886307080673091667550566298989010630355895459787701196341018630592452599224685758218449085984121162316317746307657560308732050275109672160773611916847811207170644681251468229736633028945194264554378443096732834320304270918463046307707211275877940514466362489526323254096922272208337354300835961889019777082164716725552904714455973939263232488848114605709035423142835095830396413401953920463128404995642883033988438750485661653537961767868806607777519211088174496280180896518560692213934599261015223098656747275269497243840859330279874626261660854330463874162571167598452584735498218960271057245337606956309369382053784235481205307738576443769665387380845695046325600235436306335165770927355077729352896001040433488149750609512832841824181593878815498177081934012878413869196007412433622914870379787605331131232067228385420572655554460993144635570686969439744896111974265938778920230901600852383482701107856379897978222435066040551142966995305418575047784831858838498785366146225593714587884265091322696493351813783419706441121094702304009995176303854692034751237829025589141605453465894948759200864726005572633323234535416116395252848961178587628212323251358783202197693470347946919216181237337762126267252312527713984842144378200634755822580018685289945180879347458701667865303896797942253620761907588285804474966236228232244166345045531727660529353779787044278847197103713427282207816874392385657167868317928139070468887114414569891994879058986859769868810477094679392667926855000491593125765465985602365774635872275431061442110143309571078686572289258276018883270618801438738209498680180038159546368253767704559458940478519363357414655780943412375826549362013726053465638490915638294540639026149921763373343541523102503672660465980083259628069148938575151711367438319554673106955924886024438372203447343043955657202751213056391542126354954548972312326961261049200359146221972686153407902482819295493016439083713945873254615342779356361597873734623326239676404240084606855430257790715102299805501594994815401797101067877816063874113553789333332377460732347045527189340190233324903049182428861443809547917329376702146386088127356236223763353490107530809703146778822375331340908123345778430220325888024537812056917966196150338081697402642452146792097599750327475944646083430921411227108559582206066733053257444197260128348901183110473188188834954403831824561260282739226468849652202379627245878442529565563723683573251135105169737060153699981650934741607494893037692745152132821492361533912670637557996086978256769147630952610014195010655668090384759369653256418031980561634631439954605234298403029342077684759319933662720142197060541131142044045469723961147489237100426848535027069724952360636096102226311324934510059148347552963743348888654088034420036360121862864187708404267871196476239057958922551197105685715488471739036080296984761193929919469659141625390754493415765731240675677048409682766930209755193557620443332063394351931807759260448921789961028756066273980554399185384822128114242331001787254739327793378618958523894884695142477799333108677408006797963690049737202663336350991020491069174024723527112824817079231656181487559150574033872022364160228936753512599850963023165207689175597854884068397562432858742713404874001839209592767424414572287624677800240682571504267566971093601256163913841515305705551011542332643760612856342531879361504835748482649322595259801459167827369331788099667179489406684126152938442697753647390517996495576585713218535000499666423201648428461148612497374554459982793292507060173452381190841632879485289872421773078158822651685260168588227175127135289949794831373892345150236579753015027979668332871681538807413580601920525364188878623681730563315938904314409732250309628701576035006761916517501556307596668703376751179626557212009641752524762007462999186184186169392427720235069305528277967445633754294563093843030402578248125732013896643316695275889538513008103131881960351655360821248554223142278820317588242472136005721341527803210922674564342421553455673819084474804600907197730139404455723970362936752508231753928568864622203386778650562167622502089794799989175300646500138857252323782255228305957516135641965390074776321801196649737736165548219008928949900416405027525066739416811678116096229962964840497264480282623413767566316516915740760789629519287514770867847338668058486656560121887092027931169269131191764292972517668230623233730703195120210988613051532051143760716865657215117135549885740488424130812221315404104064700781126772853696565714723973865613398525246018152686646257505128374092389915801279833405888034459328414199232345145945141256089491186438623950247224716967036040703796641996877173183363651328340658410932762678830259940832202323689883212764077577684301637713274568845561725776047825632376382703242532413833811024714505890586264915685046137560714103685143289946227051377551371608985908434931712681035437162961987848879932474776257395119725346378628886660822598422498998171628193036625719426451467908499147768188018355641242339268814556262249614442886284200408150737555975482009136759627903961863504756852525878081899138648847460572589905981067264699577163352537428269757221842799945698477518076732937514110265502066699581174560741177401450720214033203835296182760140808641257531890636221018034878499604124129061334049519310163804002743477509988224510058748573270928648841244954544562128845819377702911985204839238048507854046431945002338450235763680434500559537494175381317333196242175294957300925873058477245759413269129158399889339141900842467941039982885915071395962110034681070033045797147297839330783494017630787828191944312694959012684384180187573401494428954257470680416696659091673445204071268153322215292046397253482002063532538746437164994411138986573438296366236003676809186632132517919406140677878910563498180393748016250929362443090350775840496563637895866053866764661183018081864198877417660459352025425112626343875566852879287865774810654886111841916488475234293375935585248947439223973515687082728618368634054760317652900608429317449341369847642277727445764421631609281725293314560517303175942929548087794071527311811102567542065993895040090463653824290549276456721889455795370995775258371106912165487763019789504920259896368591439248649916738882047223809348562796416227491300886208320794951090399981418866685414701883521359774097151350298206366035447736711506909317803711155800205609815815959262507792250292033865235836627913950414150432144740333092236010397410287095002253913042507917836264059273362035181531097477741145420794356357534419690431210118390685175824070864673330339468735139460449850317697930545333590204201748593970347436253129883230796557387095894440662449500223441674105365059210501642297077606859265034589209249885827875994331427208847918237001276687316407446484110788926707546139820886612270883424047212168283238314179802411217629478330160702078702393284805319916560683662045009248815078624988647351101405342466391553116635785019675389366757769954205632079737648241651532506351911052261307875052102381787343624170586056709582773561781822876960865051843882496269816606299430227409030932205224085728972660634148213779889785815162064903880153665404730476412659496504253947621223612449196738728068552390368848408914185099307920835702238061277138927472237106416666301834940279662078014350472730073965051902368537954414501695428439566478555508618112196647737081652248337185650543261638713257234578704711535989001232376068588298005812422039848949315537218510042863379349832863777267959330033200662885597259273002894786931773749271111323090105729918257158123553932238131981659004335161838841823500853624132012465397055665740023844070184720405107396399331117733226973422086722344146725011669058822344655417589977540956486202556256069381560177912180906293199315301324506427103955518833066984109317260683951578806754243579548477960255502038715841386584902824375342887134137051319023758509682141729193402455183193847352430940721182059695532615342092116576228025427520998475000686027194971926260197476756365998380120770498678831216371498976023170533768427404137585877825568858733349580679929673555798312527507784662709772741667001760817362412765787504576640936275115152760385299620971083246527510221058621236860377844400742718590567378382706707649346067972987629961810490671007149052815455384718820738118729159793648202114327775290912600769246278407405375035179684717595619529759032301166300546802880372452038908011816025507725371258039815731863465860495245838345109724318653598218887300373747579460405480333507805514738406785158598796163116983598327011163426695491325389031236953898943182398934227928544256844745774102605339768963996917552450138162853504107262475802688257696700437645492840562354412439836161962399732497121647626847790718071692979363823671727525369735725281619453382823327315125597771737913403045585174176930350418130398791568096305746417345596807257655389474056484006628715704987224444722647927637076963506461019713630486966268168914352179313471934214199666879209886340873212161633168686270482765197478364206465495984064315207914041088457840665847894631988583594624103801201083573227708781134311922597600264536249051095060411644000124552680813419641374915298667604831251319561023060456117331890554720274166612651096523599397549325103071560625884889026469404688779257931608512162494470090597579679108953012523696953774289837190355370749305578063914322264686946358343273201225866552217512432885894529503756608091621855723062020652050173587637433141528340893636322372515895745953420520396845352088909432782147292367528454191105862543694282656158175964679102771520060874679606942487265210066434126714882095301284466342141217292746648946169944968628730459519260489636521425567732853242818490376175021258381283117640276432805422367784010639556512829460341400824902136573843365326206133988904646824904359645546909767766460183577955352501783155418268859208670635590883846962365646319851927966005282146068813483420667236612396298220291086991855226276825737797964988473123993624792748820488122405537723784061139813697146595136231455968021832298716836476725871552427964893969785085170155199322755892667946050291483976442910169710275547121956482328252680394674567414185671727725573334661480222786991118529963547082652903001473727970290680013918982615337657891688980017419241320207954113733295793174975417949434587703780911182080804472832601700888329199029784488510368786098865215543658495644218614679906447732545081664607021333102309722797467457450022578587672944475690842304612421979490344743784099824806232362747902616962491519769382756446086571569853305540754210394709036425409624250656292087283535557022612415813127210038647884633812809992659491029116651742665920404373358905872301207772194205186464385622642177135988784290771438077821106254540458080805445179691555329374758382208069883766164620424872505817681145905850002884926803731818505142851180702140248264382819905302369408764495450601477531953342847937779337856740332899954558787339170297324776126039756791943503033854502084828358135246801000176781297084549102219982076830068160263722397654172415820736666068523158374696639338429347005644338778714831600108288166747314987522540190904523234325858900863939863469812252907242054848925518844568723289555855408867002447522731868610722820148519158700383746253324557266163845662257257927701417140475651624334243176278291667459494247655685504633410244312885301481783202393653700714498453841125382315122888847528380145844086139289706437064688849959253841443927228127891487765978678165452129342749181540312503285452174699163452194240295041110936063710638259783336076495131524239663861571394837952568905150105340706289633478723836833241043618585060608516485232998296103034646163263099660025298595234207753592811420150032950006445182756741874486712816845041229817869288927532917217783454486162683378348145378519102655737592977839239351683517102912451827926061525854029693985258182313041934195975909984588499079923137751114584842109485363234968107776132120842598269787214820249670007054503727958297079601329449300056732134365592765748272252158677562586864506247985338059619093606607761114424787778778766179139599936084577369714895392879757232718542817158925830635418959995832753405008789882684407310489817684651536095341969666904868672404743921280692730414686642412777707603379884148141248410042122773544526829786610601066555910998449765210508073631443010004833853360569641044758327358080899629158043840048483132565783702901897468089649337352510054457020505076952633910314822947679741019105580325370775426630440875346182879215118053215100860579732930050316409319503001920729679849407232661091878320724379849714440284791056943066838770107513591647402633172588190929215560170727160736787817447586054363132666572525945596395503027147864427796410919257432487578886648750480540535904138810675539121160038773290837229197703996329421422289204472244089976872417147574229531867032979815719531552507271235156773079752203756060553990231425798747604706957360133163671966557341909405369812234245475390431204126050759124864351936653692859031686791949433460584706082319748421846122926956502153040619484722906455178769990390361097999807415484843484222517861870320081991000322903193980085523078367106727672345332609375610939804113536795892282832231954474153265102752231744676356943685490938188840826045605293344166258861174342463061927193808276870293788741401980575237141343319464599916719012828380627084284968398554295882243669948962651201380836857839920359233904035542050786996933602540496105241807166438857137780935342138042985509771271468956348509637928016203452627527621219961911168520293175456396832850934433651822285767035513147054719482865615093283117005689975055201761832996502357024864771296554539361123023930446720175503734685947441019589220824957875040237014389093653319358123156333153669678697073230708278162220317173397676828483359731903581520571800924136497007542668136295511014768126469150045137538354320491406038355408288314097891120417990165427139978660982578867181734246308504261273570110065449852284952176223851413295742302874283081427934668977495501851795678412923277462915717059707600836755007662258253871201157042535705847531784872321119132818340023601225362790284451345386951458062435320258667474192886840414646521061355554720429862430905802205866810001240039023867483338269040054044244631525725687453080511834846264082300219850850102574084702498514017694906597427615611610066127806668550161841210888478464815225492951566179912118481892033637280043089846339321240960850152484100684258547303960683954375068869637065748992882259929874753786123430309011407520663235235354201780030888525736456638433601362252020445850625221404181611047647719371589800993289908977110436890304744640912395751405163299434704734904488670864782659361510792235931796772878366315576493754578553846453337586166927325936224476693608250506576791611423911195276302696972602859036866247792713010311042684634031207532512766580312609245410967733899752838546303870646585982698431719394392585646119166223924581230704318160994409571912132841090726341630140836955184490886753456843589363479141577617945870699291928823474753710201286410157768005437948196941149154969434195225266515174965643738893657126917775028690342685453069122208924052581932725176674432363350414186374506377530718693375470189058120362196878869676391370455229274496266929507409131265285664426043690616008877673996564310323384226870545334452324960806548900369996531459054160604702205012389681309440070509055092167832107047084840610979604143022393215974451894069914889076390806644326913116648533539524630518578415287260749600980119625697514285605665744447554599924104556272522652489414447736902677750572252976579617227129395151698640259768935315749772262188994910248783834174666503610995280708738446834446090838279871425637341262635163682418237413494784729394550426706014890629704559636564381905602603017197223828948147979901703226143128070284720511219968281432168146579200630021080402817138159060387861088937594027250075776580217568381506544843586830714906496887276599163409980464148676310802687422088668602162525437821911495257119663629325460936390852724762311008263689229898867441806467955441039213351465481393412320292185482840268443046990630653152766106097036641647058534640428630308467646382045012829824301005136577596633765312707861339328458714018133322317513922052725106286290488551442671733251324744548081209409900477129704068865685223067275854395378338880956713742825246930855529329776917061362765885630389800903261784059236545958194210758938990096906637677029486350189699558829645240362700844619535536295888744576718654672945481291584356365045863311127128183670101581608421151027704741800403903721363235324056961220695699246944073534162681833689628036670530447872359614423181169523992242446016718339552528145380035587258578942221793793742699435502965037927914599088737778230324498859716213495335188647682198162217391956582558774932890761592640195198050150903810691577747126460747818262358371287615328970090234217077914141175312888020273822642639799434086098638910682136071797733120813287266702280753388327785820522940152818702193335583038965001955621769634704184530032131142383192402452881368898066264564224394979579677819325256087889002887255703290266886622500146781742073867155633598620985304917304208404555271742813067020595996704645878277159877853842793910311828881369605882323742496528880562220158189120425967299056724618901000229617561554719799336936719768166180646143407645597699632931834248252773970918383515861477647872451708981810605421259649492610305619533634072320391918134132627580038208633331982491324024001206213427561206283133128988922108477564988018085226715328382041658354971859575395280495620880820534596506326291675445030215866100539570579512040912519745058852302500365886031306608243547694461195051499817507455774067891683026997781512014472578152944662878717279765404913350758181441831886771343973257677889187603079287756941246496304080804643777010385982338386352628187838537780251007184419973215274201952356286315562684559270764234534213775867064535627282649126017822145910329443641206192739969060064502468442702179226975405883062029880419039377765707507781837052586247198181496645055137288305040321507518742092816456010668193864859868521611271632731103227558457129559811619917015112552576662436641952690037221043181148506214626265284272083470269849890694459103812017566681835884937018882531446542163699774052721306446988785460680071296116626931953094450281625332402777080951219752016620586169497785690694523333051434714948369947295817830433092785053430710457359521341778118747296660250071207005852487432200201186342898989470410185250044927271313567931596998381511252007693507735819895066097349674509239252281651152210963848461856234441299970430278574926426612233765460971437076427913117145028436625137516553728619007859744927815492664735376176311286381430432292006630462816160094188400767684619113073798892978047757106723159626820426239077470521463003379114388561141644020751432047069180795041048291630519906762928076374329201646746789304334425298661882163847093881101972904892749689021219249613984997439346487222789835841912420497687808484353030210722557660320149413905724533233932589111836139349952684837680258449742403601981830752603208377406229515605981617768195556210766965852174708337818850582143578241581209879670107869583852822446474017139049732931419810987195936279095021128849231471336020404215840334913788153941910009705607850057084914773134164221380702731377166224481138442441944783276085068828557515508785266470837355221111409576289289529369728916580156002682814527255418262399666160336078075288164387332565893226846159295974558849187382862347386937104351019481670101561361281095976002770665490236761717236518860204108686814116588896569727503631389526678280769730467167028839009003341344220080857277919295232953521244679550338657746523044545346581389859579934151056697917990906003070502344615245454162931729911888268563412997791202655691272720124810367907296514803831156955472786236047439472462323973013801429157012904739519586407451538755166410677547013314435871475995110479358971953592452820128366138450749708308712896736792279900555863190905974887521092784557178860916143645159138256647822461658767160380300146445837677404242138945716701843918946096667032190553507987996565171126846027342399798319198458431629362896603324075521435143269861516685011706041533163837455749893257360660075764009159978593570037845945497838114728081609279858792402773136858839285381086707836090900521970245276432717321747296653003745517237044479449097688352589565044068503461614755193381448492451233872293865147346887077092200953273667838151825033423456895257823271515364753182272575302127173807230911882190333297768801666739674983925207811273123024794384782105332279470704702946109494361604205772108841508216436228021763860532961512530850943602593829385564982985664370476537424545843222737764058507368108637936735821406770331340567764635406013615608033733532752309436268161404890335298163075402892979625636557073344673387363923241201017122302883480998025253046564590129177275552482404407718731052246748226406490297270651232615270021585682034377460734289164328064602434789259867150288974823796505258025265651883958167077000059565000184410985885545416171219137246967974337110038358193297861189355053479690558986653290807454191279034487187148216928766544104976397809963667102384656013492947556847405437593495821092703375958457251411905777173745180710988775739158226755033574906500512770514070699132025000920895199229439950465935276676912556842619731492894727698020817711720554535580214023160100733175539250126290863353958644911022971085885956583414751928478133515700192511203053980358255778165618447316476619368290617044443223879908779354229526494906146981118288235412949633060625960505134857416566886485193426757480009874997498929345859101698874660394770894282035425994605423208015081366934013598389346362493081743946029109097493872204687540995789112941737356784854763896339815229567085852515117781924551375819067222973551269460338094379640042745964958854627367304289693329569602338281206555569921610022463446216958922909272133092372898682663244236789403060459115441348723367979126318230557126372641141224637667915126737598796782501551214543648281481189134625597986638733969151084175904948979409885449285554860130256145346584855511022522632519120533118250227853548140147862915745976765725311822003024565971812323044986878932071127134700362391212782271037371380651444597893440325442354954363251893006641615905941451303795961471516110412432727652082817421044646652404463372510488091182408851941678920546566485426379583766756107624577038536820136018671040055200903266434462602537836041715422449008316652293957606358766938910607444351634810031425161281666631468111393707930577093421537466945698940157990215275051232183644828072089910440095840807475536183759959989414809377390867162152871929900812513373599812337884700834044447284395148938373268063565019162551627309623169857858906866807635782284635331261880587411037307106110618717483396928664348288873568943508880537814518996279341283997962623464379143295532124907153026566742951858571948135603594708535990934376878773625926818674613347413402296359453190324882353020548335454758328705488443709691672640065854009902103961810463704977740288137888020260760614608083286420144028778782850782342798146009269911674863509819536280134982572969952109384902526175017253136030418768621105748558069135205710002412916425701819148444199056038197361217549596078644525593584017203791342318977912530452973742440307704033299849462268990508303696709958685045067166318668595292525474227291930526476643318356242749516696367709135814621993537622233836090400337464257676118862800656238496141086806825897082392710395174345799548524789175801140116822918414906627390435082154090633815289595309295915436814973544333645624934196554108025573452701664933409495205073008283070197669703105442494596203996775641724695171636735434983509151858272446862997313622442798509862082111501197853814350753387927906998052710288667646975655278960571913488313244271588606679921503221233735421046997247379847659473885123246547874879427640865530585183887891762415989921582681959653206326980022403851650862150255088397017358634893537428018947516478488333342844886821827303156335103187428605994292968052020591892057437272656238847366846790864165162600328879672439646482702954329298769574351253030328077478017120922872040979373146963812344384634678534991419968369772052404619376197731289445712640211852881874210408207356575572572522105240104364755454771930705380042055061547631587885437234753236741947969862678612653134651251494042668772020532574907060198146118369139808325594174467058780276161697732709197520461423052061201389286627095311269947656166967371004229510711603441274708892689837319789604265847453813156568534602237790334856408255827093808287398206163232429523347077301266860852007927119637374219627437344028410249086729067018266160252691129860312021269244691458324982941618647579113963908560707902459551201209489285892218767048263958923883970823348712518707671810955341837391826856340295921916638375844595780872113098641810549131247605930946795985670354600865373676143540201126771646321224647171382670095581198272932182650234043515479949077497137091503861332357808948286426789011710151891961149491666967346292003429720722893591206673999531354322299089063937384382617933242718564403910579420024866236307340401072739881476023171029315184718330877647657796137788111450713310614583013856985125900731123668238555347103724425123986554055322978186475234063136083074798836398652197905368081188965742603502960408015475104366095173924263952830807813649612461039492358461584510430622448314242228449206125456099798081760871225941539147599848567738524256044585942589532231685539925600971557815672930743763628859800488215792863154821685553559527358486709515812062890769117462281692511757046053759585990191568791730356429502614084985997344593153357468428102825827204357306111587070451961737699311519735732294585574355494880679492906742820041714324705464917401734224816908604174257676834182423332566348736160447989921908428830751982869214192099649393195187710496833254586555340662680578026900446347871734792868681142891830843813783005271823237421266973961176353997387617476639727989790369624611087234478710120696004739580181558324667983270081068000029634594249915072181721310682811101993962602483433569089901837671625808715201208606693971990399922649760079332202621449643390032205415918575749573486621386297016222157269100235216034089945936757452819175434110018257899123429376449997401243674348282946734018308344017569234442066203323545771459171129082629175635217600688308686927239612010606887747978080981392399306167255691961992809761681343950898208079566317047493696108005437649031123021474310307886974305269162169278500252547997726386444352612458893360130305406822008117086226961382747513213996415280087540557736656454428256233024665442034724540278723989104338855906400418246416518590209206970989277229872954440359391782635337356250568965505745353434446483607172689739271658261624615176246659883513746969361560493775551226412383726840204291698062671309406580649631106686951835219835954884461032046978999800979081757814165813341728409297613659926961319724910271661355711887674093282423598411073849255765457091357261609537012130868853775667152237171982592096475414051009545889484575430551394520022617885216397566496912786448733527864936871797117236812113335735448683347025698502911184020419957683789552833468768110305767374754033063275203709046945465555717895332301956787290513869603472202333484357075815407163094806441641446871777418180790907059073873651438481633488460580829148680004742956193482046124166685128607862348499242645948371318634225845924595152611053711413681956334429422376683616556774080149280030407006458641825920482205823882084394770253814007009346373697796040605620866392759783419313188989566557506791579764742955634440267367516620841839462463625820687471237854878736607316603325646462913150564127191931523822410047055522388401299703523390666640131706773723136459619437929876616464209300080362160640186860867602085250281399242374598542413125590502935560652459623831737675093987265053269000929600246161400179523198106014434659405037236171163713019001033173263386010316821349860154242875728151527312355686617905338647574881351241263983403317958124236778934843692050142469981900225211889595202748448359346535166314868288317762954834264959864399910591172538640578657375037708016949072741165382638003069232761933441059439739501295019410300963784020213966847153189369423722708082278243760843083441219344841892298337201537693193832271597572832831304003918724157870724694531187729330956070780530489813201222514683874074262044168676069894791568765465017541214224844187027329561036846001469313398187922531901684334244045019537767457525611800239944858439150237273011751728534407079275743481205055053753290997737990859957873625724494214376128077779914570905239350677626995916593495172895358196524354741763235738748282584484798473032151930407717226681030315103111655927244963640753712350482894144813287852924215620568619954782753789256284850620792104361747535669157761086053982671592676553404537883166813036581392915243425618807400925472589087666627638900771169088582718327870434016420416051506376819990147087989867299455684803390145127279731939872131448702977441463031142851690368671726670381158986250714444328344448579915027395262792964389990374204252758958012514003998877059460653895278373358957650171431343223336450289659485920959699312641160341829178617224939385431159740150305087557533213235582106294096695371513377817337740027067285794229409523824660715435161124393874785926275251917845008601366594385306407279779248126097339790673258325468088841223831519923899775977684795284719423703386067495686577372613520683912948561701661296741866166943295393661793208140893949652268705548467083603349488763901038169370055254167338527128355400839575395336749761108061956497093086602829363153789921597553835848023658268942494296123874891078558071491579280468253031426105598825105151122585048622243859553944639834351228427175718515047917474773937657408477239166535165585853946860603901190795281939901516211076330251772786068720526044436952561365792101106230239288974822772609774299824096784459961806390626622758585154799775745948304477989050170087411675668977570326475631943651202729128386519605817833678381768577013794274324811737751656035658880003972662097901491670346323383130399164098494293781760380487365064762542910390510492598654584103946783917222144656069829424149523159606502023863957219806559837010671023786792961640579199649608342236223870980717365129189270530081870288462519028193780908232765520369574565794328556554342342872729297522997081924854538921285788691124205223607405929566493070938898801376719725431493982282788246070324222927561036395713891245215062250065400948637900575037161327060872316052937590369145171485033619366356156050646568060357349760899139491226342569610758518312236246946664945300544153774662556570159469753732558200271898685174646102678730879038318641441747995679885455761283074101057251334718283503193005799478092873041263492373023119184302994309017014062150898417239111857751005381535653955147419319672872276294700953468389598399871538319259971908295357113469685569861228023988446151744958583466737260899018710939000909308122550908397310778736733021355654777620591667036827618542375183980541689286412329800286874572111407435557217488725749457303784947255028554694296670207914299078797299297150637883302335010506696944790352273918111106318270897599344967066171753615261442205994382771579808656261779089997914044703652700230538044175053074961792452419692131301402619338716522461260024952838820098257493994706588931856126295216214626270572141033575731114058067330610076316112292560685571840104690924878286907905618301413696345709710635417676059268964731744530140239505647059831850308642400823278107990684900871033116508211074573211612311693160223306865964573146349764670152662910736324317013403627166663776946480427940915282553670663912057048948385747147692042917895666493192250941351529307607505548553595532480934497579571328165730496068679515429711169905409039880773589250490832310516085557692701679371117368019285395164407360826339767692399472864354017413139450319568983575910447570853826265937890952211838999738483077884323962404137526928227237751142309384722616883502466569192441863436778877693096061707944638466243030156254111656943541167312037010334202563733225886196633136268945149709417467533443150378234700261216519363179252918878714135683535955802901696419277332140719713318831358316626806172990017744886643038189929852561673489156070844339257556056877353082419626454971926942748566824765999360316258594892595652252821770832915006252902767767873355824565305057451406552691533226318040252955660742881791020164363318953038481912718213137309310131423529967805288498398705504029125822382353862168596181474850319311210711490948915197155634237473426817065533633909907659580931269559694759654789963187617935194137706029528383478015950218876605299127553848889575937261445414943769951780721115729738987484653233071841643909301719185084786709738222794527972735198829558110897387453248570999354435755152397420844521278084967241294436374098437601410554518954263600523577839224347093484099541223067725611211576426684841208236236095098690839307601071609159752200834667170652772633329598820020489555273160086335876848481178243026366044710072984305520597415457214645359690227673710107047234754910717109718102375291486165968109695490012023731832297135712442553607529455443386556878948563953798640512751842673830002192568297230571893937499820107051890363920439748994581893301910920726718673395128268310662114719014094838102057817845072272667853496614397784047164339057728726664667029427602050955105560676625163037912481494652643504690664509757068270226536253177562612560179648997384418997816558957975945219892921814608025383010480923539520129280364247233655607923096017264645228518748599778857355677153800724329457816593431767133294441555159276628549477080149109116689287548973982854548180157552731080484467259166477889525918083978570985251754962096971559418248628549846271911085878304083321954723877456640324334948679717999177651591879974596996464927651723006879328837243925027567831608591267494413318287790880627700079746178516552037167171199923934168245742347689790936579547942807636361672806810775914576137641017419912593265983025204549609588126116481783055392847006692266424117336500160787947481614866744970734864655010769388761635542215410677834034364672515713335519302032719612553031947818741713936364130465461363044449457062837186132956336228811823353004028268379680433395459431236584698930035136942074482677496641297843867032732191746344939060139156357247418275566809209368400961811076776630568253112432480397953782135408078878295546935578336424768604284330187191852749423869201128194148836185808342657618663244377982433524637607582332319437090806137434122786032986958641850223728218801472338275311899234818671415792198109305925988317852195477734177325330709365014938261506666616400015805352173319004094008706898415004149199105463812244844536365651496119619445431780600636032517192078343121205955119412473945419948085972931036169297821518595905819042664895182067734843441306750835971924743779755297473715645169076648105574816671754890660630244946733453966337382661549420828443320091845678618967343937352039625456122398651704698768958991095415655522004850043206328254017075019602252005616881860111161680168801925429160330339697419710611452610405345279797972484456917150711468362922693073169445950307360335521248051967978691721360294457840049051993820323766605918901759287343089363109492880063221810410126607572055441961308411024061672731388529814011112931060923714646853925861253784618227868663651444182466402547623272773653635405814170804150142881948562766938675059442052871363924175253180237966950334963066854033736891934219300775317849500628926030680199963539215927868852843611455915420266928205631799423267340391156056085787611658409204385249896659607575218716207238740139363646035237847764058906711175815914352212718573499874583853596486130767175676766534284561935100754691439199211179212251544972452759919762669136158223559978820324053701549584995449202487829172711978125599775300486306609930085541387269371057642947301722390842644458335914939639212948504297790333581755448240245278678143963885323983631023094135155976096977131997990367167732303522996134828857388396108367031723022829252211203075382765114155483606128614789996896609919581295039878707049172423688745378856068405606534632209763802899331624619501084242220678475478932188407983514570409091729521028581762522269412235133461171777133580545765425743383162333238492984157387232514271444864847611229681694356106032204057986204302797678288934428507178773431145169153608267737873469609319873311661695257022637437231991456637867247670377871009533204992961871437332257532613515583329763931348707439196529085117508915821979768059814952930312790820817681908590285251755134870437014989706664444151201947517913586611906495792954826153000436189004971735348884098842607166863791096040091809708648934355404225313942365296510617161980939423220174342340151079238358577993051453702064334095656032270001616145227560304877780144882150499077240977198137340044616545998208523039762157044396889460297521090957217534544006677624203874631757627060260829745198093389904918724181154600718894335589235434951759927904960304503405640365444589223701916034803948871494608614963570612091717211767069713630967729651616553574197807797845206276397191043992644934646115538417740108009252129424437834779234160045877414642041510136665486816103485308952938639013579521035138219285747109445455870049375149302251904727417303637693784317815613283201678592173184996695073027769378408816209164146250225882544153540900349768300504481229739541781562104837572521990892447645672658223009819689345710569320009742391930143292913052826606697208965424393155737504784840138888611358254918349729189584232259950164517573961059771577401749635801550473765099822015093547024522458276235706600103840818850947088717322766132460723323995632459849305831595806242037688719016119869993785645672622392261867630900246333584456629940172465591532083825136053376362817981384386352704397550431763471787625909595426149088206361318649537223277654840794980589616014960071255709494652778027221205334235603269236650924737876317649067094899820153312306464867975010478859526979759668745995764862990232327950301088660470821062878979223377596919290016233641181812883569786400294103498241456519944789002895745567491760012175734716399194020296005295798131761342821474388470714140766782769192964459207133709454512542951389852936628479261779556815343238088236307529123749752880156187683466958432564495920265699018138250884226018955429627635257160113946106991009938853745236662119052882028768842325212057596165661267663905814201038006954218526809189589172399023605786944876316844049843900263284980761231530134281617644802835015236623328249260507605576186592269891400533333466234955592031879312305710025405463677385141541242074806475148368301479963179442139524946072212211832215287852409546881850785472935525664855507041209147005413400080280901338660397708413571430992071076087173409756513620598007702101446261655761070093892940974098227149936034382590023091402405965743883097078151609253086213296760784380780341765573033567842259326560620233085425136982486991102676160414220712205029827920000977218475353462661962522727334530023725242461127919335248611273363201899516333290976227181364279534945375297533984227183982192362040683958400507796985353249130459321916044261492321043921086853305511394494934609732975049055192400506242509715212377685646341835685364243095645900498077431379958798782422370136364824655415496493196309170971095373205491882154131584508321816937625444298773519375814159206043123644344823520010946472153432148411604477970582735710793989744089331824837565654006770515731090576005714442477114152841948118622147275703615429852555011380078844469630291289583012816023343656857752825080492665495833725253524184953807027211371881770697534981943399243981029786151323406665977522796585494628786542947135311037363190201455276959926552067028311308773515952643935513982525872193109959469330141760993238257298850668481704131252113618246337637518068862885025113687551304925858865819958280934749042783779360692221167696736979707137173231818243161478086586828944503446534648296624473147116589798698758799357651547782299052596545927529406205712711797949589054596840755268324882400211578604595268812287700219953436812490078906852835533377843343319956976427996972431467681436338957001511675991058690926509025334401961079262189718941856626451670035108805745667563969988270644383946420990617756689368430742142426678225230857728736080192103803937578831489490239819014799300187487840070344223991198965362189519701401236744547914521847623686934359474423431392571067041026067465901602624557233935125459459484392290475264767393920796288359185417266356531708720118513287661127878223707579674761950725303169042397887611977669013748927772326768434670196234711716365407603840036184358790279654144499089679388608913097206580300546864169470930624028659720087666482735579313401207065231020133279184686054417536560467368092091654643412717068742309075864770667890275954499529390794304875679204146534256835174088737975272533985841286679845344400305851435878642893196456337606829447992950632619705100761459098659798329158263321164656885064668368546927534340278154781534606104395238285303538429603781598426620172817877233901131706821985855562905702641541018084426264846119955956581568856870659014504301386902410522437287518448838721482926397662527532379384471002168693527193508349579160369667507784013725558338457529045997927932740050003675836279901278361998565624890687458976506698531401750528136736852092182908888643274902880979856074666340317174266876114089389250225115820775381811169312457725323341586862826741276571705895020087474381659396178685288248574245247581878623254181223282352757905594567745847302442540591142622098699847508768977744058570930149386563764001034660945912188293197224373313006302638522342123506051250551903237284940325255424529952271650993512966796962553621299074603016642868993928396420596690491801942387932820604407618210827705885685434962810450369146142209787605877247272415855929266078392324027517644539113883951033397151230079218028555198692397477737076059486997005682927250858532202269431330317509495145864805947024319746378975121987209325783496243848983150383568825346549872995583747005019385459641776409395219441574557239487485810378588549223452897401656597667800561517530293478237338793365519830650321016150521755530009881050253391787641765183104719305222227572485199228973448458083646799565038979091452181923281962592615315539482180090052646485069229617860139744775055417790625848574077910168341039828513643860218659730778989556889736727560331466473172817476947047801001583228023108943823902709553056468764141603011806348224774203302173354188343689035817465112790111153166047248462262040999226654760944129441021384424030086887329368586739983124638648964059425566210991534581101914532924767982410050036693067692846877118677259229594032355876218839198348812449360622947372111587805139135805382386371598662296657614948143013183108346670757780863365179760206096552431503784507975562744567152497045704475046781758166463866297119811863544374600982375857413672029157318516631916143577854830468523220741509416395584538180329476079314040590043908552281345606926832468910710858914478668318006215913776719120432902712837036533604854981949139629162348437947952438815339339962819227541862924391440355775083686503209940923172357787151143810540269846899637953809859445443076025325202632487088374050469722360636466848671220169343963063566112360700783277021482003622415651013816941582659952854108557861625531201227858111315897167051566364005328588269848566581229193231814298197827982140272961822456404016465052239641810373508200692836356047371767280010093153622321285332268841733581132815388972299831921784059516922813701730413163242731185092695229680518498938885045229266269754121188423458037431819126060818278129703119039018222557348202217404034803033235132667603123820442727563291018823141573230725223920829051537617525898064652412893082591385664897475634369999150924899763023141635365953234862338762244010802351078547615158773932275864211826550129044660290767246804191547296387396560941056289498647567494408647110696172314508364859451848540147743203169733200396207099210845791302978736095657406061867558487398257738389010804539746738345908593075071128538642806424841776283416238568364602776103470401575581280819205955303238245972419696558523721562096599463108649499232370080169181816001463472955223843608600026067320402299265359215867915689797335369248706654474507815289075406039731249851087722649742766868428963660201238178237242827189448714425044803008484808695604582051066818646912343703138356159219455111291587854160425223813379138108167241046410273241047314846434950029627323173308650040380459857461439806012955260173798942733607142250566930334306611795487789592710351200686442337696845378441192016344789461697286414571877722637838270873269020610644521740756358596134564843938429591941237798098705928456810135331859409002311298022286965838790078543838353015522590327816576576755653959535634296762172178493359814931943625458481580467235758685549061480493915713399123976151707171059675017932633833850716107828652905451645378724357796720388261872757618050645008430382818899153055463486789622697957983275300805325640395464737751205221848085327779838334126166444245699625926555948542321269942271019274894745412533169951552669545399293204109224094409992272630001857474163744842697330886229123063026859423130049373932537163762506538935918482428444078931342405699914608026636609932912466533828425245178080259198775657584787961971326660347704288416434772790733724256830790652273949850214028129977725906241731948511538327502882580771844030618006214886641134315376477309126738405742249608269745615612214436679783657173577495256978293496505961189112388445118264202169282907682814279867765653707142486389523446520533499738123870952476625468665169825033897219078968683519417849368771524076347659738108460580107472157131493274733506036089240154443844649317037370927971101384300875573720005938040824178847175166916053345583840508634513758008756973579239494652565062810877825505405924201318079090180962695994585664856975870650607322174211444370880528732006675329251717283352163102595640717670359720357074084578363856915858580698747564073750462019433529112262068196011209436599351581706860764574304036171918313802102846774073855790538077482262569301168414628458107120019117706259822222469371243873923210491788145702972169982314811518217283024902428470388951257581614515395424257642946421771617270844623881168781618535199008849871631782153090996652986836156893106258946491538526757986149980582147585731550868830732445966325249305793841974048720882537909116957018759373406285721988058652905368229020264120101030463805957341072038203053082731888317141572926198033665406330368978981218699215271855471026998440848735033052410737327544074862744646650875950754207942583993326659089597344225801296641247029950486190712715048496145148956832337095850648394431772289564285136816898174624468293983074898467358654885923699195762455954555855699635661391271397900771190138945869436257901516868790561248657933298175019182486242446616959468545100390708911081272937526388469833711308885796744767928519547715166863106247936122714104911690509489239272897366729657916377918537760061146351395829013519898218746604570512702978102706556166634614453619643143607882860307780273401013330711611703090356417402712622598571074705946922941385606793713785137361674529055112770088441895258510317753644404284223896339878173528867114966154186959597614463575968692874742352677346714728384583759796138311885298544846561879826188443913663924168658919297252815879566579550782772036119409126257231893488730145329966016331523425011972400832033096406497649133941498291962285334140026197634736244418499280411828426422884438776605592022197335446431883786040138468635809264180355395133611740127241552676826614552255960191229227809602731820371823824694422648753132082982619470142793409635307106104429547120915595742765959082720513389741885394253387539362642455379441529084294546742184249917308272404249714282969113384654362130657236608162337344060967003212480331183610334214365443835390273365461276527329216051445725545405498157182430786641246888441413992572104783417342134452957364731538699806713699061415792782457859970908116153786404514088695955792645937301221013508116766930438566584308161047202911021371401493333755524770018648844713728688578397143309794200997646955485362513658019565904083850273489975418567624267000652720172865272062692370757917450912517641542312195466106331154541271853135726300968921254847863948229413322942196884904870514676528293932397728160017398004017444409639819068306605473820581437642406467457366175635412929848845862876705178853183757591547262763803285750604712498976099813210969127767086188408836688867959398297370965173345334862613307802408304244259752795629048463219985516638027051090376181068293086125752991370035763547732543458080184712760618687703574294795953680104737572421947326239866821326055410937926140282583955431577622340345127384208201386994037121148210188216682487515286052714866794628712298012374295016783813370837213016868748671266435797203193240556657766408842085880228747488279454292674830300441247436559797035013707843596837164510877519725599645304074867536150801557648609533957552710077964990011157533121181627982674545554628661649595392195884252904670750328961673316251452155017231147731437678049298780534391271559594728298034825501691731890266069014970027688166284052260846160251718334399392983741331456051951775570350676715507746119204700253755514102741232139821049130572109034632204417843321893311589489044064509262376923245641464579628895689254260181380030721931551964300009299887684535798114589896870601240576806693262629834780233714571541043061976363254320427200050329464157970731860014705415285713142029700984321608037016447021887232893900058142444045462068147677979162672551638660307842030556276767047807379200007555976491705666997688198228551584925928558304183132461818207289986560172332057792865139352421078768306576736882299962982546480863508817781981615748315730700663728421758182290532497656378135469376864494715390403582863524481329084915755647231937007037740507995549171553638602388510669855492666950620256497944449988002488076733547608884695199626166544115133649535371605488541169020847898630662469323109915744670018361678450365322025829882642133506480666134640358231191140190999796526435731293745374706369639021417696594989387630606858572294782420543389990738309896089059616556879609889533730158199662867873987256336545205894761840184069202598123466491050936265874601928256136318803483752133546876339809874614631690848580394491476418649107128789415630659557214074168652933058574931108331103791838759399926619328324744313696020763387690585471298677111906614556831176884136578942282427176565574041426458898144027510985970578514201516024746664451898120639811383066428354075672682206421397384448271697743257245852884838514793739558910306247370337210012056067713191945801591860171871696406377920203160062323427485179130651836649365592474850685855047304880772332096722070940851115831293532074609529311174118678023465700869739418227857236400470320294624522304483099568865771176820763043607100392570735213267258125357749040159588422233898174925337922226778081256905607807788129976178910784835332943319645632246667052232335859860348482794107696514455037461232438371232214117921643239424478199748780530542521425956840071060261472633191605205901079921376018120234963493140525441258727715897259254984991991584973095018605813311087781407749430981575679091082161509915039984377647985518920477648204084217124677501938435284743114205442439975832417537729395988728239516094334600451802267108791746256182610292907540190605433232563309170052325297686017754621406545411773073266792514964744970169737521216626301878578648447160263555962413904428217488106082070275192658464413176207397237729525235563339588761678123693364040701764950105155261677450732771126995671923101788891185942728025961201943938167258430448246349000726975442953455117678645889829734930901429480892572128378725739561776646067756285844367169823521677535365411563385029832659254709909658812238037259346827738228687771060817001490675361668304822989491310404459676404249053193074989339920168498263471546441451332251279481952017895188079589110322818417589487859442447613421025510618481908553084287372922869127163559349076534050396075901544018071627498474736955998981238802062799135783749604766605823150219574643579256599776269653163018384617620204715442559923052411949377154067163713624701672925705284999767729280886081222652067128177144632573446560559624495773719887106421117098198905067137708470018094240188207675190356984588162760453086318233817474617905018632306395242322293634877301448136888550091861498506275072602400185894339940234224379878741048818933521352432543404602833605512624090258343360205148155061785356407960797841346893741972943803087145629706154150429801221478406708114881380841676803988029568051330607274666478477904568327387524696647228337881359464691335240427083851662035721855954535247072214443340053467547171595642427216713670557610863745598213915565132540029176815998359589593296701468503669695100960858290776918277760682142468861526630267481822564398341541799336882150638759257714394002295384968010601652374854145844034873902901979052765349083822282135952199874487757050143792672929805405457229010180120595891148529425722987033317397866133295369966887264097086223643610588893267169288930001022789193005976976673985224180757338012468994248693789902393465345016169855527130703238651109816794278615900323424993661321684746209407333137269853942407943288651803532776673244162002673947331018363766053802999192221913713932639036488833624488592629297897880442557338256746918616092920214254325352940552873622330022797146020119079088472721216359540134632145492841420824115626534616596400592054129200180566878537265889691545012210200307296577166382913439076609034919243092898602157642212267203635572638799168475822990197792742007114413550181569915696444466031260849337831525109641357262818451661966495630648044425169285007989320205199574943295430189469588709222006236538457135926469677040724632542052629296083193742440573839269818607301764973900139439494495240609204582100588331932615044773714154485727735822258899346721755208557067373418116156918842385740638361628598386852426190070501735728612093313223435818918902566360905593926722185937351163534429892580036005531291344902727762039742828446593913632560477856796510592871073477699465662933389763285884996351601501290960736767712859959878285828411506171232812440355552713545839711346274969498516829519463896827781878094568451332067823815194191857181974727201339410531431154523219967504972786431834743770160796308791725643142651439628188504665588101917813080473234423889567850522983822904773479898207510534635179993910455716629014967740053975112492831860722950558966518554519118227969451034539183669169112297636102220412519928094779658680331187391764358729448968784732379710813109768637769117537471472445249445661045506330905112119126594570745112606820665822067264768466276608826944189332715680652037538165685862030652035580383851632902074090986163678394720567365458856133179830265332650038659134853212083788763247557243888760462254394086497506863310910591066425949058014229557338425099996783149061731851686091267163987578922728395852782063147812689099493445495683710930930921238829394157817140749076369831822394485821426005291722611026491899568549419158586200550081375569078736886444751965715854659811684543489892748812607070153287356183491325400036474241623404234414422330993993139723246204818546540154440254004013714469376055556910179914247778611749791866376399733067388599599733506144486163673906441339189465535810162814737237098216422956873438774627513794040138386339061056210614965697493643927723099713437076642556283660592871572709808997250382250575631507837176955981856440690050046504935941948054078551751458473058253054442011160194225589891640725126110645451646865577817173214696204799463376486223340249948982956587522727434191384937396198873396601951196068952306421580739810932292119231777718987349875292501729089990993585450699017997140727288932480083341965314081545814177035992716904835135434827736624846394449166490860165714497143751260111311519173322116641408188765805659525333307434640307039320471106356331812231033899808559650662433422198951169512264249951088788852633866939686603810291025485700489848453150660918762232683198839584976298501633111034580756943932150045140700004427384872926972967522904130321523130667310359460414124340696397908364137283123089845686885681475123581177601108798304290655482993799080085452044388841218060532497063465713929503981459532676400046764004981532040520467792558835332901593138591661463549458599030230964638103381130912125123201124941129152927892416548704872466777135021588067341505430135443895465159596117036767049085550378338816404003329340523215612189504150566224445630595588748169023016958865706946572348460417447734842669140231816822729724851306000240778156329264125896567635564821137740208349950280044595152383446136135395171282903938153314046670620174031239863602933773020514302147159959319123633679424349591210779935459551685676467806000978748951767333711954684413110019826601096384464199490315349139295045076759595532530618732085203563060684786454337293859241150006429888014848710357878985914760250819335437034904022690182984377304474903043274048052040986375422492429715955230977059480950717035582618421522950246013213907806202441544018271298761131318533295252118650346823281089038450882029109579568114631595548542438877033699268957521560659125305426011686151156103963319071015884782377814088299536723695447074254427491697738348446145052795925253742407557445431273089692946534685994811260221427602477810131022770276511508259277299197396192394953400910497902075963786031677940614677296905798300213980358455644232783403677164087530370693545098794883016626133525441513576291087829837070199800068097396732101874244995137336372218900533374903316516327967559546231747922012995907060675378539662037616934553352984827962898929156609908305663916485042982360405008448094485575962168314168022401082874022676573826450190842194798034162988830637987462380985106866166796784967969283624491109013899276244625993183000763926155745848293246057546803094325062282761236675362420853916691323158530058416534923832611710481576672173738415058036874930275335564253864360724296381328609114041756193099928368217136023771523714590409587198944223027702918672254986093986159081494494016557330425997753953060468718210488495986451574826709713783591992501164683106883832050780503098011623098514947106872011191447990978419786822020565846937391347175796437083512894783859452687190424954449381525479542010953523170537997064534682219041885298553287917796019428731423211323843390073111250903261259545075015152907691699870727474966272408778265381911041536751553199488144035595679832108296714398739458564590558297622973542051652137167676144101946540170012196110524229129574003504432659761427125295040225080598547086294626110151992527880862671612367552865712425519242211024527531729882483127865732183850088088085325509426664737772602488511518178870121713898427959802021057854136920342242140509775128916337914884139629897373141131256675734712632005925494872260501107787141788593577424896886744882450044777653187193779578896074168844713041981954643184991450681749426718759272283631183161586157253633052807299063443564077361264030564845524517600137816700953500190165575223042191732710792131768619982797763952676376784772678075597382608483529201664555078607939357667009207063427273974388970352352525785816512702884244185268223777555321912789121775648569966440067291238551307832874296474301851196983799593668167985647784895158839487117180460645297095565195074368431850337529572487717924122674779814920344778297093388603260004992100629238525281209804103167442226437769078687619513431211605778678906081057053485910292710967862573470688995675990911430253632653322735596597284479390667196583448828604454945536293343979536008481166096182021808274294545228124993510669761479754770824913362316928959669138665839375333624815443247392671838606442002038294569391658794643658221073093963956321269502600624078999005516174833699998181594324293370982575754581578281695939452751811329324730528420147639843008269052071937355607521079046933351953572769487276497084903242862717305214590392685248327467368467539885567180061914794982134213798507513360024957070814002181268915215106617873825302905381381648843365765929337698942939013533018308078243990781883653034686667354992503764011808095890199747108343208550341857779916922419241500490846157780258374793806351840944439449122738120454357139268163335642427274145201338787633153700575814974457708726940043953051687247520185086064781842001610279100072153884560272908741059020007076242218253225072106639657825669832123376033352812073624448307807636751310705084298634913902350444766953706951966205729179629304756140469819415946866416522813626184934223863791426883512553240980555680472893221096285354998639157692603482522782275156935053897001853258402009713193937193919177735017248279084092924007109077654147087806553539181617835573009927764945086398427082244795729354523025494436750446660932659870076715911583908457031374154342525346490990155359945359477106564736789421773622829150642074583112399128157760820316539404175120538590220721277750786752406697727700116638388471420796833024251290149970616854184283116363561630965983336560730943607249632334396347131978667500869573174731354168824631602005973323708065576655005600978173206815209296398256253203323438647250497393240640713869164680943749354642253001652773221766453279443593302776520189345051539716995893588127493356309463316569023069316760271939432889340684833177841841675383094290508954993947743806088756854443605117340622724629130567779905389187832910336453898919336857547206528118777526873884773829226743549592739321332285722687500983189454965708282460388300945509348350334669659600755668777552791069510419239083110311749830001866564708107110607442599348336660692277339877718245158159092230312429107118090994404026859527913358245506747088028256801762210513586575690869940566809994961198998602901382958748086681541901842350233412976441104815769476834158732978551252708960772764676662181600768633459295757488213155386744991999225331053407810007469499100890582293354386295371748538503811610815048336382439805355750298223098667210928214590587163676154269517624021777464097890584538026147313772171549157007359149265684878833706181528267849175622920135751837743861564539120116443949266615127734839150250143612098102235204088921622505797003967907643525978187126819284521349758841910492130970118531969631840951324464680194583011209539779069648826667694546563938279997623232912002160856165541777070649586489460510482907825098612262509711161912649062853357465391145832330543648326314205082633568760906303083737174562704641423407689670242294101618281728679981338271626035514841203269917050657256075718247001022354733012504160249763037701129458111499714737726610239066689174552649279865886717966060939389528883660229432776206315235882034788695701118448214270171888446387150926747750618795629576643171394414366271755191918769773248766395248082429482658432714342301170184539533324864280387094232632793661059036423909512347160633293989978166528637871457335910874301651371588963220253333104544782628944694093917590682626616118173465348974943997036596072148577852265934916572527088167942593078791643801721231221627809825016831925946694255914893374639668143691467748386069797523678607259255335546130694512847321563857040697070569256380912482949881959905041093667700472352458074832921609898327787210207690094288885839438439769246974355217215372463070427793131904035966377462607432820209776982836374041665569869144889613294225861540248206246466922401510148911050690203942038039225202363438799742985050664893948733250239370990402323332784691344092432056163396695344417858069174203702458198617117184594074324469277605014762898357846846629014301730473579528823556605845201163448083197490155628805282979201525979425947587741706421120274043489433188360569316008471982133646887972949478776257737534217279104607168256560152983810656947113665509421819025624874197308938508215959556063422853789161570459631035397157786184080451868421448927194764034199140189982855107119294811984852504565671932117211952855356766391588477788549280871595260331106568188765599429917108750619776145323293597492003423110379638419173891531975050065546388307490722775980958648941580849348581735302538625224416460679102061216527916583884198730398299452928910064698430585673575058535672699185331916943809191177649521614447194967808189704703165172367916195681466714505105764201983317178609002846464026647265527022888412033592807121235941810464323590795931512786536142521387929560786452946098516662639995758309415042652673383371085464282123820695018338146222883494820022651609819541243622751273183111070899473469932038855947908871830946427092710086785742113794134506482068701019973626973044033388916124611977598892494556032560604857965086155812432960807485829184524557995026660998170232310636637190145379336236166209403447084411885876922846640436068985929556788597847990704636317868040172165707370462993583086619891691620994452810871114950911265766339646129445126798895626817832621675435022039333985465378543045858794036864680330596295794588023827369071368545888358458748124804068267213094500063550345915817079521419298787347276353749848505586520214150312588302711083532731822240811391960954011554685703631443697627471827271925159480705230990422660937091597141127112257612873971265673795832622411535002170057672434308282116737909849073461226734701239034477457892633393003504799729829219887422078496403478814006029727670195819137280313171651587630234244890226656839380743049504203679087123314163171518592362894976342538486718654640228422280009011647700539178052080174517751221290816783644098297380819873730108756465786190752822410114416890380197030766807591732938600878870267326832085227236573980562889697837815859842636861265056389207262086192936112601533236415422260161895785285080086600575892404514643182863973055278647767630736374728368734112666874187541579571431314896654888433977903633412395737356342642306594692442733509578176224506502267943393525085632304860811180479703150436406314675238520084179841384687251664759644370623782001157273747061279661357355642348936914036122951198806821665827020943713293856827541186624368872404982064095028603791829682934334544728298837955635750664861180112447559857669147192532154175249064906444893364321143996147756140520170325221019874725670679295765748663189038951482491604118124257311629533817867626349629652698095651007501306548531106075752142755732103643114310037435895788118734259465662580075532589758333558167440306637435699432714136576102183488176323605853267665289422883945850718874633928433379872001953457441695074128592422502102667258521420456928046866802299212980134464631028251257234069339894284103416376179713984221438222736568445500329308475857812722165412208135034616057721706649993531124909225617014067325251476463480466160480266075514629353621840936596688495310818677153994168041082126084287947052922123605240505405918731834916887167201034123304502311186000380769699152315701497789800878876148905589522043556827574348933932389779366061927353272064934011991215834529489416658552057912468877582958030304095855431478144161752324073592110950595472916692960986353824695847924137310096389823646062659355927674211927273071773084007264533418245220765410545875169113851855373409214557969974807827835402170907293751448122887632028744448174178303967298163246999203946924035651589522397103875356236725006544769639269723023934083763770302056112891375351158814748212040946467146483849974744161733642395027858738917157188991264936891364682958298177047629625340777347813105767595250080394876250024739485782333136571533981821403679748235444349722448835458786374416886673606693477122464086920187762945379915730408808738671112368053609029076216173267043688567782224882556070377246608295081953886176271053147276589385412332710199701342737317019796241535271105176323871598745115633128517578280831238977999698840838722843293045063038496764806291146904532418457116098905097762812040114495830244346249316394180514833075825631834971887789965909362400574070108058279271084888277497092559771505944015259967395267459110632197765613098452746076268187982490889882155903844466291851647168994167099154195608269680024355400650434211751851699224587721211230357520994343165609142795413184854660655612543379984742409586076831107281689400523686753748711330633832645837571115988353962085763903305682703123550346100629917966844356527402203863528923705368684943437222727012040281700362414092145266035862400158946879900052439571916491983624488105585695123545773728614355289477072057515708339950311341910638293129986888592583474852397932227542184532392593329467107433072169343183461726118770202923289663241526967985073917775834945569755677179115679065494730454577819171627789474954452662494450629215171057214635948672313363155595222055023311241476785339103198784191807758246275521901773992322921731624515087792162651092386206746450381020745595056607386975025853536817185628837316182728085410979478181810385101440408903963270978713158607829518132478479990091433107030519872097868878187827830721762230786403367347671566268114276778022654782288500091653804596843164873154770133115895619594262631270491250360153450584543102355122949345134560091183402608387977895835442243910313821898606893578670626632564846901090074541631862793014140906162977524487564714584107323095706013258447104058211791908424682938986557661965632285881206963745063576354545195304332627564612290859486018702178982137281926502540843130657205907089398501708321299297482330100002016629869563056925647831312038749492932086141459164873475823941599913890776049988938955050958987944537466642108566424155966402919689490457150666690206161300421355911978069557741857516658724638311178159011553609815157294020782558340432858695423850453961558013577983595274014363385897399614832660072540819157753862112911886583058322915454696994340341386651717307262089329760566871055427845277263642767509150277224218466157957319680834377910635978783972696579851279759646874095508979778957391421677381379110679155330934502497684190666494723284351296047016720231681079008619656969035053625106880791673835964609686387485942323744437670828636780820941055277262273700008621075395303343055871325641949888164146306308235786055990030657070748411115384525823589401512640253552500830714389518449443824093569997486381189111196872421478735971085590363154803608736849348869571355741980085140232964455013518471224929551232543252522026781683446131740262986145916639243168843893036435120987744003628325231914171745808716782704595640174749818223705318376882476027171626949784334314359972638373999985948364399644302775419290432395258128344558838030310501798824106556132712735281457922833981229954392777279012708698945739796943417167993503265762732711200726419750184568882932880962784004454805843137303065376648613227200057317563331275552996359530171577689286627631157573980866294997568696207909703770999626740745654737164419731274072120949837426465078434141093147084843625623543312748873517606399645051926721113736879535681776431202907657482635174427050291610333685812001978689431128712373564471887867383494126229585981116799542784410305754390840518735080124993584033712604752753987340112266940090818397374924049585262014285867841006311628269485406436383437531546318472020037300295329162448533618840307795655943812949524777359467148875760753661623316821866352170963002386229523055289469065112006349199778078286200758262875704768905667353282879834564513107077528237391334183160592946304799801674186810997897925034307512826992780256071741203137282807781280388676608397334811827266359119986529749517403449492454154432556967277346281763809721192762984675836665208530560554511234857627778580911228891400233260984889834843832787130678235421525321632892914613186594654441504206114542550313378300574522238155266708798303506370465719868723133303823797398067739128393943235520557729649235361265432476742321385652351640755410949260448254819498146832624555799351146303392876799021754995646157986133820207482574701835348263821462694389225762788622820101767159923356043097201354035696971069815565372234866262692003951525807804984841998410157805968402632397271263525095186657310916088944658542244478222037215275329251538531462529952530514207381741692840093447522480182481320565952406861454177396632382795589127879259351336705891277648585273864332110215241368971775796999108800609372732627941903864074977852172508446245584560552758460594312071663328097132341386409844625730163253129304155259164680690586805878131950446899710889097953154849758625562505900462823164891098698256468335633562798622771521804887690129305421616147674370149288635708102328639193035976444915746141985630593408424631386815826497532094633701013973006071041731914905724822871080957715452879549190203062255084757669882640092248243323159416086086454755646102374914740824688553186407267915234575141201750757595794805950749388502891855344389658371294014324473224447113321009444378690492955604472705942704345604638259124309540738129496605251311789604975132362179487843736138151265011979750225612442960369881480743346896223323674587527786320503970970537716176260451963434394310151326688644383112672588662602888051636987171053645942223232677805819201873757714428334062763296587560164267414564319523885447616714740353265321546884344495190691972004326163572799672056905808906506736437127743433144323630631624088195342485468469939033390648058587610232156424827695498912923831237206817675652610107744215937145235790907359656912069629613700450720417392750562839712038190060458283165026383822760457472663009853719511685127781809913156269925009081446917547662118399115768068706411998012434551871780022470140612861822706850129698752046896508235770345662830471723325993595977680741895931139773098273609817457042935750052114772767194131960258308330571470467336668209387513024879823841656193075274652609165352247542087680309843061636164374463239119362165007449308395828662409921942288175490852317575973010827610257384698177081981007346857781381524561871170423047833083768517138257247734301775971955143926832572845727515462432358597143081998032868108631932353580875184767309844862708659006127632709212001095930897677312221418784855360657747050235220031762575023907931033950275220891832641381101909891852749597964225212008741782620908753269415607965389174388960086040244369132306890772013002039035537947499968955055262620185075395324275199629639862702940084446202805545110898116777963472833720750398288167329521510851024681580616515441023480336645093042483087699970112940515965521451240529643635514817049696245666215524642714293037172000807707084792931581466562812548224655692703105332128609426617974096648354901148510727999641514768518800468485415298315745365759435490071987361312987322366144550856571390895727695386458314790024156336991780109099786855170286631170092453669312849701805830199501127180150524909800043033393170549831705958434518155654393232240185996201508599275132044633540282231543691112212880922435814869397434749477539095300207949196153263650270481146600850887415794484511503970609090911080320654731997180207502167819283886626145285187798514613850080512764639002966354033306609496521867060592970310302559577464320963946711433995389706429924458687308832080210318720655457560551892238181029562213175573202144910128453725795814024277819924283265732457699026506297229100440437237842913651746085349186914954001179981420933258826842469890047549820780866959808469728957155991281984791609290606334513570621477075624969257300327254036716248277310857155623708312448637909179043307847723794338707364069023853852525824363950503139511694888367219774636746747252427436364794007215473995823138096830103023364090748085254981466775502815724308603452978293649287721947010780513627760641321680923690681544982745084531654302011614431572143613079503867595279406187024855566647087092684401179313652831071853791989736980032547301444736524849830612657387940896215331127730130585588883766816661269085354199111493711910767979234337665069350628356296502340084260166679721400257073521980497701998476874681966197964164183380813088354030979193673524603009269573833309718411238863532453765776629893351531381902683530258547866057069975158641784201397135498238508955117325200785196817306598852485698403680075214363139644083782157588085532543478839477727655137798344637458084019221410207416329012401243021591908399651027509648537550629677025257305470308481285097347028521484869254481426161385611797042914432711053023100822625059320933179677290083249130716478417522459460064752605922827365806506991775691982095041526113930912674612487129836071283179364854410048553265278583733272166559440549993972172131437599056764918462632013604580794957301486799178219204775467542473011869515360662447507522284021403094878462191230220448418103495386298031956934566874161267958671979364315496717478007875874879860420309922876876946578376651182954790647600238322591659711156391921656115191213626077454157421420468693116567834212989275911683282201509505543948444641274983606519617937037377397992362486258381070365513895728383226957983602168180370431064964938688957711728269474304775346364534066100203349387771645444951459904680743576167477729240632915622850332754766866299057516075979336124557242094893444575486163307187666159138274038138397723687334680387315312257205366553480910081484192407375179841900049756140514807556460396654751492665611580769476980834318425845267677764100173565758242652260460623865503159573768494415448869960831878535756706986940821441415504112727059408168683455419001835861025149907574438224104286032634009530004330596590347962721004656070735743664628783749510372639119133665139286505314130588036841661666700033921109013585126886613938328662644450632878059165954276750791247381492477939959382153766593079041553452580472476363397155394866605283361305232259269161503379370082948029424318838721322017458559310503045576125802499487379401937801835176527515073269879199869356947339064001043462022580194371521095703169531930545963226352477924398029017880640213825112496199721431581081895239432624579755452881427528424958713010147337474097381280630212772954252714433466025601813671493717121358997306713976095617047613422629686118703429777725503914305046651515559467300738035973359850647249342639193853050618286935872543349640410201561611212017374461057817311257080376763936160372013215119529485024255159873559566063385874284708363079360252019547183810726199647478799226506785458429866874240132928837442667882223691630322663115740315100709324656095403780254351968639320600122551252261669648195703350164767795918291152140507520162793821248358335267969083504680465774360806167322327570940074765473200860158327373748837452091427043168410065446550112033205097541236248837022871168290791563501134854253624701928148034186428426492106917663687332240311229053728321716086637829437786461031561997144277423551336102079324196183043312211467140475566118482200874801183613895009058196587529609983889747939891129890488205946974115496606090610773484460062225676970849721083825204860858073904219163856997191216655995475712741898646851716730244910748105759686857557631584928470337880809538097408713969170158716104748091829865680501075495932129055975403614984464133654190295421848789744743784071666506536617693119214018350857288964658264737972500843122592601242473081960318911258876760824985955438631520987152057956147282495668186778395629415911873290214166273733463553221141657684373124433848937076143047728359306019881604772207772299739656641533049704071493439922689879805181149311297912211589262857168333372166506987987280925997637268353114714716021802396121073877923574291666059464468362766703115362102552216400132051557885825101933212276156265185268934900183032436645659754346010111831590382837570639256877176337523860125066514461822599392070314521302207508084176609658271354606595754251079351419270670863827820828154413232449402011719890472433190607998811781977398194479376937483958335400744243394131030901511885467617411119131204405894190668232884675954616517445125189474663083324081525135235220981111691376164885788378324313436850167598769346281043970733536286500070883181094618485480022954901523069408991323082667527193102943030696482830138016368530144411063208437459296825678198457680773628205340739891909917323452558688705289336053403496209777614256944824616711541677161827947442746325937918532848356651355246749531500063684091521564252560985461938809518753608661174914165401058677715750040781591429983896377125218583216992375920352919705089351268811856509962612554336966164377359114915848755305691751669860842966747561104871726362324959777649830496745971518438681442539266085645386653084312888531011889334236284115128920986216418415125586279933988980604555953948878480951745227363939587587957916658954039434314047694365070887468015488641277847141861460531787479892351317381307422998658815678167059115200507191530267995465327614130275452679202458885892460851564337665879896309626413162660651226051273619979970251228708732638491597479509851734126505030471403828810147769908175879917348801748595834315952735212511582977983317846619585225049288650430626589915915736871585294007960957689073875712050941427233508741213026940775810406282507546337051722229020463889913373093495484800864586399407815874850114789178736033903927794821019377289774211141674586274273034132172560759718471522566859265608072232928902894875786799532999729791478965829501320902745807277063711766523526177536695412074519200916541591733056399589056622650461305773743297147593236785138337146926447185756536643729262550331612469969393340094696761739239662714567639385620167565812968968174021660394483157164855468879880139075896718470073924678886178483072435923686747570306814136696686042307887963227042178220865223884281944136446028093877967091443846295426636679925393445750799651633759223299178361639949150455449376337243931898399828507135073929826904082677094687344512998294979157984530839313607501363345308723544923903750392467620564564181586303222680328902040104405357670202764294351097605624854565315986099012193157398340540310223602059593918273362593281738278466663995494796898661817467041539192055319093049719504329876341257750128926964381470647644084522814706203885115298954420986881532842225927623260108086835116449400019024574974522185835060304726173000010952357794341808460424204955460013782952582263840611349306545743401394731543995442210946216631808987833083051394602372634003519642331152361877491598794109674378369674783495944828729014043469725167865531242363745735381224306861710494985735565488139352149975980568326802697643652149022815817812718887300875430938342490338437644379440941691788135776244801418700713903764400675288054657985555528751512960321921931653659491026276117923863149821305007364013968510525028344317061651830695372577830386162360681741718351313893039229080576534954241941433421519502733484863119917886241371997100281319000679758997583442786751206339013154969099461647192593795059261716111499386935366302202724590884661180962115583792717060031215483706241599787077259141746250861928228689936244104111381112022003501962957033647164284066100663038877198644308996643795946521086959905994507506056862496019498457067049847872353740405024331277753122299141670778569476936925005565933822486861456545711150084621799821308042963177952984501634213463749145135637887673898018857059632364206141556290875402412636514634699476588278956112713182849214068935156289580195922991044012981070617568242298767946163968097295725161185590105027641485606387375198395443096191826901371009777201403982839121241165555630991623875615457502710353143286298823100767401017205260215322387685575141852401410942754001290181345925827172220976863877533203474580948445179463296210201380806601541154085601463367027341572842829288653942656441227515381358920375917796211551959745026166390573854445125718747012624317674395510153567323302968015320166658990288853917305579274533041995439466794354414020321134971597480940153736871811711719095422154000174935313963426672990945161769841475902294153949318476119259125556457166459360002978736022184188424850666144993280450566260823016782160718093612949593780189505978342472718362049490639675071615331191622790023416069901881805296514030063047148347334130911063871279421293831009769774159015764800594431384564249208060536479733257624090830608724713899640922294475158318352410103958809520815632863479054860546225847698802722655530486894105403822441431830544759960576547836989957979512619917079202037356050737470936016871682592288987664826660546493029557616688863990457149667327507909858353748104827947011795607698797009260840225415934019827094308592453661932020404737255279152132842308374351582395061851657554843096400500876797324945563033451179244010383284594955797019016327621535065608368415244657007350206013244116575046470036438522018839979146964856699379583645879794622984043119652745776283792538667603489330557333226384099392524668050519946648446564465836794771072190466964969766016169293531394433145564254586013175491640219198823086610253266436531182279701032978860568447504252527009672646005906588671023630623131611868861385177052722640682245504346174900951037246002357624459628799629480557413472065872236373899416148816538865292960278375310574739397097655497761968835095375810823905430960436008994380504470575081721952595140419222309896538854690055147872173652621797357780763067642149787887378618955484845661962646699747024906208107179371679006144654120990852235383436577104056852981301853862826765197660010580098383283768167259899270993873215126902511916505859780222277454716646364126520540373669592610982529961575467545381621079095617545925259365785312438041177092030430472474572544632590599609576276882627632056260191864472926670629417131102469540871160014388513671323136203446901227909515397174553309027393498024632058093594570242104854407723304712634740104253674726346481502859619413681151701835445388517640752184739673013247700088420143384965913456233845476836542991892146096838897575409265553999780371724413325328741386974136387689655344830662049176816623123077859144165038876851443694675442259693730528908643780180174646805522091966370087190599514806751738361002194481586252511114146835270402015793827729865299598082507503319660149502332861350153192409348869858679353956598459017730381217746736648144505273795452130782629632741186478278284503015416618909829348241050394546634279208772854233217563496131748297569849725129761983760064706510277463589983092172729683115945421033407900360865847587834465908807096168526737376842522486837996414928444483682630476485590683963191101549798875804880186675150100995737946401154214772653531106358773847077399998596522283815535155285390800465797075651795620164612598006106175362296556182546090233239026724280065233490057196029528109332734236253985599353336102733173828665361569137710964455728286316838111074046282665932055663494719089389565685487305045005001663003769210146164926581911369539861177045199910881969458026694427125576083955084121756642929346122397415051508338135463823591901718029367376640956731186285335101415654456307685477858931223180159803893991608238358005227174585849346645790447862346532609519280294124883823831374065200957331430758740454185390357272546668879036473967614880136820554707940042002815594314737570873532361486845123425152080546936893927320826241161832990906580266520269068354124652703076193670275710806431773372310159747742451322265821859175048538688616639537311569160864951531821810674373808544518475022638738996431350635759953976252788598722417337020321960813169910795443338395015294236012865862825152036317299906691770228412248405511363826850015801155547363282260474154001534829745672803134794529953429982336952421530676574489432108953724287074218095616749902326163755602955282442521587546863459903962668637676731474739015773809719564365338685336423461136544821210582578221981709387865060893737088997976574904856753556682146096030847562386357220790857363433871125524762651751770026770972126295164515626466891326376756984361559333628194846962972494493909248727313207645612236145164413740615638240515532116132620187465733670594969616914096316864152945241181644676002745502984267657981228067701092961896528602424962337507630257722464462071479561581560271244534964425246928427872101980747484618413418016478246829628855620016277512718192596847823932882224853323443973922224453046058579908624848678504952106920707857755228649512730446313177889385525084040298182134292415023414939022944895744274926652726828101427821990658071107066085005430391380989141109264249496717311130343140860279136690369226508951668284508545140916662399027652875165136107488802237222448577847529027218139385454133698081371516920371495470103636821621951778486373881235004973201431018647475398504751790040603670947801262916557544648017772699654545614501479012797478973457357517469117748474094455924939312416122514679273242335798710743513919781707662758169481330608185176106148529725994235062046739148515934249068864779932608347828639441591538046510958226793317744676191503043458897266194212089041100902588183239724262108514773899172899476970797562150956566685885281095294377751248221131691840566262331923041029595552483793112433627102367074470896829849171656532537764741867689912865236774258682130996355528232780716303444373742486403722605279018687341539954588187204391862277698455553252365316601393624430731810662582256032134695708231350247021271704535126667790615069285065900728590291890368567664828506783081362116509010614876387332993425281046292795324456445206519392943844801040719721980777430811861846413586987461931747143666434285002639519828421811348389512771755639302091398147471701704964794005219358197797094786406090670601129466697630095323679849762768755521475667803149444258551557698265097656073857054860167194194629944400489990937907484690322879451272362495565221661785181077936160821656562400718644439796561748962197262026526122914593613939598692787895027042455712049799990363098751490316762090331207397890719560544522166771853601071625940284332208944500740277146833247950938895005202627152346933956376635252269003289732178152299075084114996743523730047426308283865394733300310291309922061587632388580852054594178826912494181160516405715053005692349245498356860827698628893265015676842600100136176514737922322533021603033391624400343997686956605505514605219791634733113798966908329216519938355557349374242978879165567364943581142285871901119299366036052449667799208131421886032816555091578021194426866914097997955244185607049189880252578083856110791726213099888828808615022075060510905353810850047954542680733747351976489695098593146687106300635172223059103251289149937331767005788258021707769144294267323113848682176082253046598089185382700601842570694329854276758616330471643889830689741709280166856337513472849057063510948519224692814043059506224526325772590112488197745013666425435352463343061146815086175737903324546019118453663358878531595420928924823537560668240317294450659543635738658090927025957140296067722728579849402079888195240777184830682986104068636810813442291831490254919264087858844804202460556924049426724266240214107187547785369674948945893925935580791432906008050002154407720000640672570528917088368488145376733355216201556389975382204625795273083690430170373844428053102793015757207645056255399199552755040278057348780937102053543852836878995382343949396746675868708121376859947174083481190649008695261773637346675752218575418068339258303110255506125380877916098769257301335314644044670876659156549859342335265834715166262562052336736717146624326177882969962473786104071562790244850690917188289704089555010885476916033108641094263141959939121491153102121006964745978451018316859740938368952147872389250455924819180801274837204162021179595770710223982165530291075122490746211062071757596071146973765867976182977649288433421641366005892727675131150877216163699889369021325898773651162944915362141583444207520573261948730847766597861831861537111669726936682087450065499570301186564335011944509026279383514821131789346476358798322892661359941318151658313538392597333200537985948287703281379853131154262780905145563715951362203598042009186418930478036338826590845835917603250851561016321106189523262033809871827847517940759575325714658799613619822306610494156194504482746875564769171451452118299748183989921037311973439964434891133005992514418596351506320719618338344644393991520782146434477593857432188812885243415391166686697001429826003730749630371346626926623359776353515844571307304282875855719064019311676975668438881392166426428010187645777679375300498581411821718943894203093908455424828006741863382418490463446512223000703325380618868581523899937483315240603020915264490526150932524502053006291304136443042550353166612141638218252895995544754000894552021822440352528917386940501484059004871997152525351947918841129926456616407983306958800583826140121469953546953866567444443456830763982155172874216298455417293900783057709112758042727026404280551001077432701946568664123376234198361991471698323261513497619818404600352963021330254068781645350257253406148369679749234954320111359999523219969397035028814597023240834565226027033193605051139538745186254892215148134288153879432166559488662565443143945592033567004396967186642597237083440636034226805254378586406821848211083616124927936805878222057063993891427662854915954029512371599928298335912330891965829711355198771287896966108317791836245245036220579732304358324274876268041849478498470364023442728041781559521042238829596076478011773784687202538533598216839025767364574245523948950932540582864432155440907186293977496958683879164978450297242256330112397429011195777182709677816092481056206840546480295645218429319579916723121007524415512197645698794236229283730457980612976409230153317405133383826060210593681739566128033909373915127163206308646053930952875275360320312316554336485253582954687429837057234537124204068513195358390701463184024309321809897469069813044202571357670122950156121050094716032733773873591827081593025601924355800240803762458797589497028776656871302271178707264058931227550604753650947182442987758443624802398750078679573146106538335524977624519088218269982881593762999668074796770511963407543447295346012621509538599606545111010980067837878710924786283044468455294877137322982141069659476783468884984368438116223725497185460824616540548194587376856994842206449480022327961239516357443143946078291605492437157451623224075666425285678819954350329387748025341893755472288725247102637841688192934633936538805252718325443468801878098684063289568001460713635682648958752616780040008981690337532312673036138623910667646457774929365821741908006003059452042641815440882602120873056164527152842414924826516459811861408603259633338785929982052433721241789805587625682077959199806833414134714850810577532225344654959296743697825784724258101618830437790540859961286399076787873989658503981273802300663697345573535417891831109361460245777540049110769764413796897105364171149093535686985177100816544479471662147385474254958046523366057956064640649108862305787088305988365948785603979744221684265346460044494106349396159770889904814211559617946457156118243971343073420575490663731505728126541060278427885162970458515662865020815819425855645215930758781358438084682582652386298526657499766358751427630835779376850149898240517338344934184551633341413809281206371115042407941193001499623092870065609370093434018359315116178543354462711057168738034705276505359730281253691877303390078152684887076318819260930755199385893880932724474935721484881285996554043469478391357593433119644093410066985349633081108468332148146029718691383275154005346747679597889273397165298031209634256803691087231270778824246841045781408398402734921816439693070409284169139409463321377335663208302027786848386481147068684342659077089242514379581235392983110842890193470347372579205606178928464394608973502574249846206004977028697812404489428763149346150306214519587154802207159305232464735347057675851663170159257876165391254644344671605908829773739877454202918503402670699374279020181769338977605333216465777749657741206295383207503673815798358167417865191805141187099703778664455783589662499311908771654080368208460721530135726279682619293341794840635961467498128737284170512089192880754611821462310501136061542464389320257786082971725500569425944801259797437065312446982198442989391182364843662708931439452575343965147128635722332310450192995687100787109758050080097973333875608108937749959487214761921651594571434016796080657400344751941783491057987390729350522250487717706060855301463368671628057498643068112233901109285314912061927732360853452691592999725206871498165114450275651081469332022573194213317712433339131147775844052620575643103646350330570608608160425183666077319196742225174386483712803197519012205501130198554377576916619459971195029769261919009025968315106580749388264851369530439332426609437318323765250225830087524569017347374302589686389683139620975102284098255014701707505346693463987713839203428963640049670749680868970603287580914675914835234187340714055324703471029617179270139836318234228858562668717876731680119700135191307207073302792899541199858248559417201289565929909202857672501173050640962241527971869079888745626845896888679724416860570016576465710441588609898334416859816252482742646193531862401490995352948404556323258586553538301349803631010531777691989345448178743659061444342716137546359113511034303441655774436937011831467466117682638494103464075533861083067219574211663756602097967270260500581815503381853710507964540347157311791046364295918397190384008163402295938148073491182718663219805754742545288385651944489447528965673173771832909918432502908771328129295242510505882728392851579785715281468567728109781274101168035250167250666080620921296094665163073919345533150441911202130119317427453630100717601666361401258859129480490124322621995255093991778553098921661927264434490960744427154646250080976080524847634206715744777608755519939594904506105086712273910777259706213616937603789511109968157522431960634002736336822576602686163102480325705341223395659434775004503692454738946235413797869883954467915346380909955602204932995828261619484380479473944341486775470510204715217456777849448976397214391021815381254894452586848175199695968077535569865797586607617182695477514503589735324358085318027844675732453645780524721837577289481569432010785644876972375304958380018593990638529352009111402160650128051863420614839840730410019267524015204963383712124993115355233481270610599182868309414718546741689537306093669894246292507339539298432328925320194853609215637069430497311159943956642962709087675563371053066680791093276206568403194020934136560003774142592023849517761604067352947734545557952874460231174210735862742688752088143223754591126901869881801344304151531898056693469890568172799146871170293083575158934090243294968197864558442492995185288959903557302622048182379893898830615900982844733057566740893526198972814486406394597998498805465878678382528292746329853637115668037479351732252661763836805410357939180470132190266873641881043419805111987461768174065994156992140211491686470225877350058447797594986131890622893386235742606158890119070703624513247462864511906726995585345202495600091994369989958251514265443442133145775295592019984583538713509954249644479886301183174108895048786282266351139054944762399895070185395981096446941747045999756143621951937850702518744979461053042604633039534326109560453808337219842637755163201942641996335178461150818507348067866004050029818862357063433883698496890070519457371565491411350906451128316180989756303791740144941776353318328555061651245048334610532019483566378402896933694625675227799388903151995731059281424016339276980410603161559167687783279132567168841604612048541710168190500519232002269273328337031815315535119589939147621224629604314986094077016569524878680423000651372046582512427219417749695445162324648385922228668971007337244026240491182465771651462193520720290929792181338360665923385125854471411318390740217627545447819275943078909204902904994997435808812013226344038952107225967464734281214601273914539552018887168597664517611955783082208842438332926794181103175394007043898132050180980477386637874042498098959552162747995756006841393032833132325201316423547568532065537575488778762190948420241852801341776828503087582708873310868921396780380147469711752004515645845043364454415167500674544840953898797699813888010018044322355951228407129752847737416084008760555481122683545857826549826830830259577565955851801997118741461134579953741630369004699871825749930757872216553344556500483750085733561235339373990162245714377137682857626835881984517253702550400478774487825346246687945042748856135914614001658686057604284969303966922851723928212636479704341150911245803802877428476643134070933369356756874470882488440877743058621140208755749685528094495758968478671020528602019848562242628412782976980124916490561482276659826466606926248703418341622648754970337010877961080889350481922634122905127433410968986308649112648667687237970171047278944387464971812941848422499303215860946433638296565328196652881840238988163248890260420891249902154964055331226232476960155322103273743446336089190217759187321288238237665702333282444398295934352983055393643309569818484234411991218269756478842272798374436792438425130493563835871449391397220629296317738100629111209832906150890564266753862363856268871711033372231445732132858710996528082365743349576685223816754385010803297654548102249809284917956677053747313515176104051204724830791496023717725667797842255989468392275604242179538727930740591438440106530131354956339899536596844992554006394403549151054814644380837362173203353774575519351060897909891422134756274374793502858311920196695539255557543931458535997498053513638266961282824591050243303675281172574973021674961317546494503301595320458432550043668261697141217594388212160418001105162118506835090371598850613088903625873424312672649132791767175592327958947465520911046790639478658246774969428817033061259974276341653980193903377960454433173738619124638051180998711341168916758757633080971694117450668620833808353943835858330160760747429068167500132372264030936673752692698824281499675680556638184995550933113766878053272794106776956210540057403668336161048847163841837839193557698332499055497764491672808757981182902012902705229875446571598904466627111736562179566648356043716760866848043610217714397552413196404219404265697583373554917551348530849901995761881987580179005944826581131168181899500147001941382920525267779986577766181848179738048438095412320685014430689205917800056791672608314078457383684307970123622205928193770890036152592974730995405547789348246982836764497236433364258644333607089535515283763833038681901317136173665786912736132504297753313264940057051578826461855732738000620828999819959377803811376354192392747360320042724087112695707735346102321188451409149548408247041993027641280476097962257199925547568485480632544429293158209184673500439418919715074403842099934851383825770783952374883480269243544653997919394950523563184965075214891741075929514905008080347391718007365790106770379286700845156000033948673469586082508397129311201660443708714165632634902368496339745581118987738060407894809891793165460212957791171556041731816125100865785234110321046014244755271308499332019055570695566203040410847735393516358631652903835565594820376914527147323435191027082815089187156303565631329840543558853701553848613858072392014261161800206985741015384348861790349471969916345351601615795612352965394764228528245441436710422952703801526215833281526084566687304652142437874717640602082883269522728926794978067386542956580374785036188866305688144619722414728472883441238536187184656534817880155229043511041566554604687309973321153150153003939678756425294594406012989894504194263852982920046072562437410622826295439802078883212678909900306044342722175180073839750794342337214347793689730987350778457622156250282689641069751579441123468518642731006129217243333933598119691488126231310398772486092869380957149872129625012868464129453106385267784353871930505345233477084645492575732703453050867936871950933674956371066677595662825551931162233033498419296013220246741614363955933833668299096967238986119141457982535008896539311241120393330545012925512864644903757587322052953696900785420301654262538680792122244984071463363824800624950216160050839966680746404472911958169444700261326115654978978755612869396692200311255938110338925580603996195091808416281268668541278452269762907508941367319813252469854262443035908461701856423353122460666867483246544259996186705196103924490864520006795564905798808068012424153719085875339571022005900618406156623284359974540797045511686799271018646234015878969245073092582969127029809159472966088623899898051877171399494226267596770457758936412554854652635878187298931009662643637346465304885009318472014010172903500500166044411169954384970277111642302983245090973892348937764173710518764556810828264437728530896394214221664451937204632535331239453124043954281323876623158408045101366488465196747339234685779618007414083479341966464120683122253408059278231839568493478410384188586254446199997498174756639127646958720825555076903637179485780527539395756298045626619091712246854782614233399577397818900525056741891251639951162741937194233639087126565170388560904598957829474062059508242554905509014334063184447674895405299788079949274632220006364331161775455128479869131041214272896741625603843405227521815332509868607694187779218730977352307501967146672011556100884333344020768063585316781865792190063118090054880381896737028988034532983319600696204826126927283682881018517616096872477763557242886443598489393900191628160948848333555416999191079892980890922364978669953559425245818872107738003764444823275190710857776641772222007049290208889363365847254494285066466691772245603927859901279426829862271531234483204801441004676845181555982350433992175208614870785911526024741733269034096277973235554769294742796349894922559061306042886158534929777346994306741033307040805349665611885689533594893174973506645407757144447258202920968198943850862067604050602939455371106125943889688141577156039707386158553036391577161028170010504659391533241624367878594602702155704446380761990672791178387873261587319756778440016011150759234789852851259187087131498538902636599966976733177398982575481971574447637450681086459057730824131258936831710009396987612752646645715349710883423606827824478276708535282734353260234417220552817968263799792268712377496109729527276063083925299312736627096465756112254426474431510389491559059865915074537011713985013553051629057140220600728989576848398676890705085794629420059534442367745749857716664198129223701900579439139885365641807469277628135231716244902236794809953189086130366696884168765505774587161820785553142072657293393666275637755446786626299582443664118672934460730665812096575072912115213289336718155763374257718908708617788212810224183899476195061949817201961984124964200214382317846333442715979776014749180336945824663437992651244853066491569827568334638884184678406837239024969088085669676403242265655767773082991541222511626147956825966493814115863805748139492633573788361787329069692881000906366002772675726942145645425111571264763284654589086871045912431306014639981143423366155829899513168042526145924081348268701314339059961002396168693017556734472803651065726917398527083057126195563793250928945691417623246464218155199016832024427256713147482397538336851855998897811335618689874136882074223015891035051273597840552280781368009371624143831420080919761877328946504758000894310062436684176149509509406756974291859208229491865103653142104877763634833765835873486439808726163608836437858538382769426071333554957401325733975955786890912375359359211960871313515852833531111726298370177704181975862905997165471440762732538265640719058214014374525545190278362985777291070455388289527254516383958725470158204366023985746813107762471317734826822741452676732456157742265816084609566160970910484167616715949204878387992959651121400751550673654474453889574636512709392519847496411040407629752638920249765454750249997751123043490372143833309201852766563059146579658747956049626283196350398665917054421643973759711020568631023917550654602860829308934514098798522370256848083224365611105608596753666572749779624925201931044435538533026525681790225340781098424354298537158566992251473862653338353003945391975692856150200790033172166115259573942474743774261213377695841031203024861908150949380048320966504981740883371595543847588292657401405429426587654779576895148668220031310749271995329683712221001378665092824297501535799482007905894297975069575711968197774030450463933062344298426041155762678482005106817453017021110012692466323898604560812072981983822607688689530465437875625509339406692164189995027563222581460328548018507943892225807890776067236360594753577188547645927518223854833800002237797781807533361806439102883915530154014072232899354583298795428845482405458318215988879670069495532305340053676778804967312801757784153162731561088930411445835977076015611351455558308658966853226524018735833481179651631361995373583818968122773148873641878369595778986794118300458159538961588758760318856554157065276215099523775803285160097094446973512044415349932384624277320661906903609724320470866033507314041521386265239563790811585323081905330418488147555838558507985859386028987037358808193879993675175223522319521351886519622146075403746653399318656253991792174383190506055628925718538384257186807827135366578533943289066899918420446894631536028280005298403427658365279525306464916442720896580655679473136217743121114549271545557466138271770211144382260519382322459468193503536830204986694206746456550829533441231889969781136018392728680823005165377223412884606482541562713588934711939673235272128053197686988644879059463054715421952214835791177434904363961889425851439912657905914864357850499117956083711549760971568090468955026779119475189425115539000791447465446038345650020389850914814126787209295181894107537985994418746419490122640738436247728572946379709137005630858728345561151498889383341754354246811845049199608669915377458690449792446639331376845993985741076912099464400289994591799412576364612466495564851880600829138724132281125132609695652119706406871548900097546814681278843898051674742556424787163901169685449158857781472028153702331701342225668714901613654656063430772017358961487719285491182237543938711278648399070189266658224192925852721129954794230298724827662866942411254705945088230369674826963788508592486739855636938442475845134476672870256479345066502729697083895053041941883327001379222141836850070874016117229074522002974275841132594739218386220014130341817823139741659965297248947111394985941321438569942426581495524377181262682419258511095042667880064996900189811776558932679286767474509013999225021382106739623437214593034029048735764970043403550025879469214850048635330756615364530356168312037014610602509895216149339149303760296668690305106855940184785409984160652374968986315689093959445627189646862213927128207596579916678150734084176084777042933591822139459026626534969130071700255820062981416144731157673845638556936076203585664213294372676294200158863912130596170850050247654031501890965245064970045105090362237920892194035022255167650630870166764536266963723737119603433587484971289406181418345403606585215983268169135158177606209157489507284671140947167802717927883205566515814089869405624530178395279912088023940623616395336234534998399498471703496886522983448488929437865540665447850641628300859919218540645735164225130810191293863411475796652317364739663831500986539911924710942086899460304826103443728043480473151643912661842061872873593897836920548274512573942906675763550626309531450173546365517446455415269799841395139938654969047564330357667478256394028362777700195742478977348270491408477368273950414603570194483412065854438556984749291429042255777486424097244625832219207698019976396776723446785774560073526234205692865840726434928417271455010138117439446531983551052744051115809937148520376401314024625457813213858871861898383608446009555391762350001886679881630307952140291427501935996345668350507107652192040670751122009813298794157751084210840325016377156341293705723128550542214216314206191166015648429952111056629952774983509302339108178978143919055421426028694892237583681156154805238890525047540993565699928648425442589969715419633883521246030668347230273592219719337497910364498202271828940447325779264633011992912522270896040663007832445202824331362381340574625791998686931325035315688845159928629802578112327672134955900957364630274895368106680906959836256575784298169490218498152888431886139459592811067998541265810449333259575766210919034283879696479801170031857724239870886943520600215376788280853000390423465434924673263598488225565914703961473347825234602544871994444765131561483728073773907706185304394075335965060496101388587243405318302317195435034002020483047381368595287598927848709756342737719244971233893937340774215576737335506070806557314793766060488088337091201401456346085171243864497752960096107228382315148308857264755960130707460321891773065162933176802613615091908169087568485694116750940188959075463243220206825091804733578482860072666076109584535045078028965686700209747120445143541994031080805418776999625934957891051179711907388691608449711209151899420351687036006019291342215618034216651443570623698008133436200665656607254020901724260964686507804187843651850522847077031136041662167963148148353693518231723390804387077521428040164554679923618540208099179339410896079659068043225217055536858807311227970247272763742500099918429200778261385711091858441846044710852839676144274796076269415211937567333890989844649364841315890465232065318854626546403595644960234768018829627131790406457449047431357059999069692995766016282469369959292925341008480832018449806114165250727054579503896048009464463491087650639936005269636253438796255382316550457873776063070509231726585694193664335446245329153471603896783399379224670551035544116266143102881366562571780812896190851962621003945863906897311980782317987426100799060075045542889294233671889878708647722913984731199221519948129655227368293842084963180669862668006970887567053500906082706519567286382341678265552578832646849853470092779711639828596550860392871216102255026961509694250164417556385349202830430893505416775998338185795933771531093244505072169196685174593110374946856264731628876108360981035972451057009974936850285024147820611807488701276120341957844860851702798095845902712196835335928893587240695989388786708291928181782627884718935880742387588151928880143419700761443123918012177307118796550395439692127429463444079645379888374179286076240353312964038697898443436680761550721677468710192029335815735670382733890821748971914437412776839219108747937952258081518027404116158550394118566991512027894898340585790489113334900882111241426036253289079392763130587538602716874182866818502734888768060743141456264402992936063341965024469424624325928692541963347705908805645468106594175706570679600147340623075019751836408982725110051911974802011832451113167146828113181526906451994684539315740624685340055317969008535454076066792330268438156323721028517403701515501307053760296902325321153673207044390489400611889537157639162694734857456520175788823812140051946280253630302275130059840643118815865671966870712568878174028993471190312550245711500362776535632808455517351513084970644348329027064842770092957668496679203746306907784976659298980056629952052323173700860251638803228929913145987322640577623305707701045062833687587039513844788413183218637302915212191418637042469518658693785595536702989968043308531218426788747326332111699934542638667092281390359351179275523386733891047600389085837918508507668320199478230156811030893961152161608631946541340765635119953514673418040244500165596243471348526717157083704792325777149586647142666004521607968473206799093916074666304026548330249334801473074054754076185372886403499970972061785956860716597903494750083096883341968408586792991152617743843126003336693664382791241467454138588110687912517039541707600401921726410429554577913066333834897329329404853033311488473009172016721717249918862043234901001069630130916495931918881333517857086715862546879997422295793764831620491008845572806570735472379549862447655289664460433251364916150272543657747627363100461746401393599121159513035944002362087568710688583983120807571783087239333986620974283338546257157573702994904217721475860762730727992213509899331396025527071878623835998055396388784862840406593437933327798209578078810115384120870067300469283180490298362110021977251938817441751014905364708323629335396869944191038992769329473896712474286498630912537032417656130087358521263731311517948945703511416844322499639327225361626500725463933087943947327626305222546653202973216984980035954338092133145678509711227316042236964580190133990625847721614495863219280590242377955709996217943532273503422625291458931307955767482614118049383391164635440445524367708870059705161450594956415334726304963241055567881371563685454143541099785728051150003022284140900354095684641409021321707771158994456808239250100939012712985621201609247643901141524961345759063252799603417629409482740571188856325249668029511290641150097798037290994996149347169154868266262457057049464526451205249429412660944741269442529871127049700305471544598794904624280056446740019152552292779382751390082123316563940844630294777674200582544019954152260004371333225328869334700287797144761944046920521324456561838328174409629234364084591764189096550340866276146778521689687713396724640238633046692188355427776181335444294085906755392639721665350192186192835123159509195716059615143199712647984247856944780068671666926248412901672439896930622931197227945623334070139710971462389005331189314760693099211878669738042550868394536400344877597163786572059322741613897203546089032514669379384033134025908581752083164351909436264975680885288269189755734855098631352381579987082594875963489977692994486351660529779687597092844839262651178553062676796484225896559440119597476225874409682360317817543787900565489750831981377783258182996266573703483795821070870399114712676670788714849862246516023846236398809023452822654989982382998378644336574004448542640227603107387006485212510802336902789177493419399809356576162289696180582219090635216759484227489391107530998081919102635432358741619242909092153313434565284672946008849342601173745287416275915159158140483227431092618014098172231415264829056668065331188542775228376486614133916315064449574729354649101780831581744065573664627118412049345087024306379096392778827672334702467182796806829253859448250951401435053995035965548932723255072002730912748593421287883985072141698616112502302636630578386719676621124705713595096159610106638305599716747427558385454837648072633144972909436248064498809015305172839651788402260642237616615087029457150224329921613840378426996601387854332286614698667199422216185352802171249142583305999447865529780169738639103587086592811038775712120646635846915411290167350545944626792154914936971493286742883858493525677074812085839543691492376236454343003292433297054935314403262362449775281220482014367831765662214257981916795008944360767505777158559357364690679746656136888894592967921854411380857591291389153143336750661280131709487484073994773078034112927540275425624449380787745003427500297766149735020627419411917397042789926761704435008204336781429952504995915615574547802183447031232704772325305014441800383162528391268838096582575083897347828783621776000288138782766552426298660692064478834432368609264182770200479119572278898968079508979961294975602215384256297312715369952577269852260219707256014168618379145356893646474374090659195063555875296568200972606809628046378625887377062539986489749315230611251765561300458091997080926275128254562527153952914166932528218296836778872012435421518001782763031108856294011638562160729849334199802835478934998930320241478743300719673813039349302085484654084744785695992289367332803581670029612384529234014057108158932173084263664396696271385013794773846966792030122665321128344951279096307603889279193644801819297204663012179623590297787246838897601702510186926230658942506999612867567506630908411972342013104612241176816992907594490253940381857310342617998995559190860087395727155319604886415002935559081619670804806304757487922260399464381165156407981078678713772390907636501166650917178613504456566476379639749811340907565726452232611210496482493137931010667098706163881964380445860129275019967180494711733574001132409926012132998576935397227845420341350120298788483435480850035445251525470464152725293572921837578123776104914357816626814034045831924988602566150772814193884676684852150756254802971482050066500910764545286925712626512501452892688719892415823603342165894762851371905682261487108563452359220948434811965516793816190478799876815706083601859684319559180287021521662483792498084553823085980457399589183424046287793168635164887982386981359700138505309275256515504680843521044586478480872558333544570043961663338421853794284502547626298347228998866598926277112532695632242087530374945184188853183398768514691626712387493936845193270575654757429799429597256869061144024127979874373269627988178105941758158393528914297306602007721621452820088129791461266351954603748503816599871989716892858362974687664763818986989512358099963833143676389680801023456890535966471319691390659401535363250993807037703984791807837841357525770570521874218084389140139932358682408641424784930817711516246703967210104808999715905371384501034155812570699579611402569881323685813438634952957756603982924296027972337583860351217863032959394840040348290306313871469393243364392744559211959762838349320395669901214477015809754813789403852434386699676639019767638552505299258554886925087802979541733092427062852410546135758848813538581723577472151602126791815856714697483122592537394949723524370915658427586820154165150542345732820874791258057719841241017671478712931820389701649942223137179430635460558471285305465332514725812581437053960285755730380214256123885263261790555760261677241230442746822764350322023796937010804221512757663363885409715771297297834459968339024532447020546829870971443978512130353591522360571550079667263335728538366107363075227741811653702847306941631915262896860015737733411092979672943430620043275728383185010958445103268626448269134393191474652488004050942620282423904401995214791039782506731759782959110703105315883987669508559296706581880362522798452651249913636396753457659952122243793578932458578498742019126247365497930994766047657966431492408162668419595010443044665510280063317090627518235522803729380028457052100198354507916896319803662452611547539498336092079374304035452552044209672746753728980304915529273125125776298010423783351203407936673631646914525678513951454477735021960557482316131404510513216173544629820346199085137961454853718163760481083466910015751715399756675247198788435709654715384104951707456457457428268067425878420624161467607106414373519314853903376784436119572131202126237188937891192196244417587507408811310952942513239165193512402827401015518499139353905917611847035040101941679083594502741699695051265891545488661314775584344823007304871483806253061040345444003712211143154209578125530668359893914473186191028577770919403834447327923187769030587330002381250202650812722182642077197707188473674068026762537439946168270120702869370687005777223853878701805798124023201016655477872320336401255818857285865472163845799329992090132332621237168581503492314013846849006316209949882108718045758941937100665441765411695115435839857249782536308632871032219871197460821762159400012564012822912323663779586910843898335479076036602765805238840548242252531051324972701277954558301746031118236754780585620988010243407272788032219467263129531365534772269695689821794922491736308548545460987594507518881255262191886605130713327545036750949161883903938691628571454745372814705237581052368658740914555423399105282417038388915643572172970460086711924242310827059790177830305447751770302841963128035441368503005127719671187643620067631006988868197236847770950287157744195090514700016135083430488970175371479603541054999627599711895003938089528161529857457512771244573518210210592909125301729060151576520864598464552195526111368031565731675395323288315004132482687331871392654941875567709277118917104072002050022366180951952780182500523473968582476025316387943091942659906651398688063126532234053266330933734328911729207673089116935302715063366066555346189598273843894174792609354285854922758127367999443842833451531400630097934801656236414617222765010377194839773474701572242024886405082770754554152229449980578293864267325900076655295583962179207901151098361870911572374770040415040342118688282541720210245497016555207546427033280665848194667124995641552302035273191925535084760926766720965667966425833022047258804734337759110406288163807496528317320693315695493050093164187154530831913524368974366142751930767158683210459497966344497698687976427080585701407142120759172220902301315730720728460158304209204716131410431934727977850573810933607712705822931288764730471404940329244400984297826896357122386484642595672108668240476434189292708549278133897881053274379093731894830646760106086642230739284220527612681511615186652006478152309618091889319813032728708878013456886831416361524692433385500684234141155763340290595786969483194115950043444594644256753983899042425390965333763418824711541228567338125160167405242916128143157680719847515810091316605450696037934683211115196385175180507258308717595813150397112741001780792639661810796396778453193438083035757755191044797184055456027929473618480353262681757434230939997488315452406274903980818809800035352636097076589234388487989624851111057254516272201081789816558511033779643297243193297710309175701224168791317770577368541297985296385562645393618894556081508844063781827029052439034916748669310555966280449053544006800392944236088755662889471803844956288734849929847037051698687430216121468768941186159612400702771669739567033257715063604990274446833006237725665768509785966273943444211891809054136400116555197499622623108006542743254899246617923994936397545712775206206677932869200952300904850934461907119545896718461477392311880958481906632184758730792746355149837900447759337432299912530876649672564672665729936682449952628325389325486201095504666124361082639439779607227437972369939572633698477415747198155596329909469093981175622934872815063679270913817170789177138495099694842371091155001270651636942582116787717866755167566698847646004777569040343322113913068187080154881947265437140801897303717700042431703011249421783673529685876572172794638766610899220791936665385346951189196238713571278405995025425723585471834649344360402852553863799898089443944517348206769197684950765736853031494147181098434042997170615735084502554353467818641642709433518708541288197996170405240488208758106023429738146617708014299088782096650843407530810137123301437307431925230964376811408317665035885168692943526218398084722637808414719136186148464884751910415663369208355655067162422089518255312048500465585718983373472094036994565403419093939287279974998212605206333081195223375490603130000331634492901811066050977812533965704660725912482138120454416702151613446644262103267323417870798771625788858359825709239227320069186363657993296375350437536611720542058389285706377562463956489591419228302771006651529019022947438924386177587723144121318421515916135410599436988053613705614752115116831426547821232828124531207093839063961543823226864022508477424373394571144294009973802850561691772218477309265267661334219559303205876870602287456070117885995362588501641533221443510656475832308537030869689111347179011023675614753636462789087386828946566087660738795427783991235624792869456936179863143160328888478876316803968995115347278145780925080718082640993818827538181110755106175020222358849059781509541929913506676085075892534973764601124510736582817839837643151824207557861154564532975737260113439929416344851365645892554367113565285135998612538396094610781965357215368478079150522897312371959336934494863111699856730826139089149486779302359858464341497484642065327958620441766860429158728152345081518974437444655893889975454500890869977458257549619805891713204249934422978892491424177471293613696716029788875255271085299894533529617207916850444451952875449535509689179310042248845440506725260790929200860942386600417926006066263925150239807988774884133355150085765195048807525306652731452108887861554181828846576028124719236961708457843966829386791476464300276382712384736245152951185630823825453569206302347830320126023329202148819723636740368790754361322705561584553824375116357985088515466334371533809307396925739752004855519800816752487081763547314881570822669632513028286215737816471534419517375906338901718606647003319892261648545504684275706006729155183626673779164792106335876708612633980852060874670428598031206655832553589633137265384848872858995401664717002400479223368903393693789092815349558360143671252686569203229751705794873861242534043546343745209013604312762236962667028011538058003469544586899574165209753749660991054044475197557639561187238663495247740424648994060783868171963491562671036015679998960024786563348328378694409182267717953442405781834788243111031831941405718125935339898472560533331935695644769380088536358206512300568122111716840885686646319319638211850915595814627170361112359667151891462046695205240513055657408258181017867358050020996221897815848377041808387971515739069882140366560504306374333694551806656705001118539312773260554771121343890994716827010023375607451365304212017664111848988933415942921980439110430677407195748565387779126348047753565502461382806729805922273949208638213409038158350894395757528688912148614105172431231889077583063473837729847839864050425804212266753239385549663931293236525029163249762201030170885456281563956642011361866860726456884414459041211044872939812262129627949184680369296152201426384041228327291955486734023991556737312216826056503789659439156833537037909433945138459859315159149490215180663050485596683059853629932115172769109002843195495186277527733324462251262160119141467729073248958809446150427782817299319549739556512027001191109302533422398037860085582897978408068962676536609626012534406076071683987208682929391343802306144467193350696041395805652292718544078634277163541085645026635104209847644116462248926778432530699238801752560314741792031729510216468018217862932521095709951494950782152281354913030383151772053870032073695792784690296630497736975590653219612503008836534916550906659185318819543055077704855899640434721529008498806857994951322659065569419449603337738826376329767063888392904874195847808227170649657435866185939247499374200090365944845618525024152991166845875026212352208908946186234627507587342426558349577882623057439899500444916846857539708657521812719940876160328331493774793345986952505794643238581330301152006128471147535507376499279304964872737385573268589379748026820375271966467915870593030522665064940421815232021084681685066069778417581613244335649875745503761323147568415472413516031516066070751403314725237431741999639679102382778513631513301562507029765989410440410610283961932906644439003425067842714015293193567325200724275566542248834957545183760763101437964267747621453233459059498902922898620020322451206103031953590905440843736551881101654420258095257866096693515809106496875360597863866644710127984173952236694555490131252242966824442803653065024780744646465072424254068451650283015519426116857091379805216911161853665314934394417207910432824898889770729997921202741190785318655900568997751166868215351083728569458809419591230526790130733620883477711102495116071833407216042878709236725770650188873855268648792286609673138341511314493680728215728171571063782757216231921769571477692934048460414388715764998231773311763319188220351991201640478288955657882675540562384546411205820851258140629392559338007916503105110582427935109533404940833891488481374980860211288043337718625892580571202083083687236827363591568127190117618252289205949417303177147638315109446614368284827874818561290965943734281385492756789957369225399820765576762395478118095492248904631960620414519584448550885744715631095212564605453028270975203714216853380649961123161335791726258207289095573477650700606932642272980854599591638247922332026358420596387008947107270427165100756626772066919012541437867702271652339834221103859701098732576085449039602054742897423211711714682052748292314276273254834687938799159197166626143930848400305621281521130553783292183786689810402954496691773267907214137165602117229646290212522294269330649598936166680670776799963615868568121700396719460647710435822231927567727891786119203421557377675417675493616000089862692423499102399991903485270809524045280494838206862397345214920848124501994507169593233477933792911226516714698443175905755490202130684455406776020202228092573094050093690152571361963568007945062011109629986339885197277339975821838152757472646656662055575004596976139074541729618909031791413977982845546939359098248106899384050394823580254008445823398552030653652367133068167708640102957363880226933991094803762307604399426567675120108990098956067320955062119569996184217289140347283059965659476993509533297619873170872995589284811496890873949135613458179399538867183377503764270972219230907075449205287279039277651150301488433386426776781169167879345168420546451712266447997786091187462948403633717682327776604481889982850952409143604182890445326404401534294577560121561234994440350692091850697176145601957351779548461274841420711479187320097891375082354900395941879526907077822773690621275336549272905583140486005924705721847215743217117230636789757007584343743656405262164836660337451204056993420040104202017795773739180639578330503622757764201526341838240422932573804366052643665460142532038297277822051204038250315781949535068715816869850448732586084013757129411352162348662168095012568206790515822154588774772983212965603224113461228866641341416050309651662052874116278830635224251073261454019851520383225287014855657545853778237882836777874768717160890257993780766755219431990280957028696294134078430304082719102514428979868254492845605404169164662621497695976983097512519867374957725536060965360354418638293703745183174860818251439985067223465506388964761522070670328092377182794873442426649146940075486237282869990658459040354678447379790478503603775831603090474190882837454493128520299654692630015485247614832939369122176887522199408693307722414538236405294161971901624238227982607362182120171749474927391228613651900492639726601575672850523322137633585846108932810396595006017329576934423293673454550886068122054844545762913181505150377926140166806515206741654008673042319480948464856438087893916203028997147359895776284394665695107760047006866409896905498313099990915932048243321540130497919046341863769498366529753865563246169692001901986446968844928240274438466559472890409779794480368581733078271115815056832868897509484219739914999758542491504663022792934715859970940647798239800211484412818793510196072905139461480425936544311139022692280632700680948391305865528688153611240512739969326514151496117790231344849412549786642371421526612269783592285747586648218483167054839220175749957377915211799969404288677199058172651328320179846361486914463332785248241421695319326466888593182353753358005211985409090441642475408741990243850720564549072756102471735285862497485195034069033089485683801197498858767174719794196276652644115463435756605363594544866021624420838130271123506406359508372035098275880949165516597329306022923620038041582375496861972146870765918893341712986577091225425617724644843558935909291033776917725762570381028606462437477527097568760283163869974179664748773742869408399911077023002622436085615958618876934319782625972132453639512535700238644154413916225119031360407700070325498669178734515644219685040600761123541649847166354995179410121079805124040551210743923725261356060406412693859650123639215485304060433464721811163908905287406819483730882266313397895621141529228313447017341985247845367660800189223960336341148686304249414151205975616441809536650082322027509993531981775327452521546389169005565109200471316831274264834760002494034443553481082947614102008860324938889150027139915903709699439640410249305115172527605655090147420761523811033717560631272447528864663539942001047291293601573964400484945846820970127928225176836673147179314716122002342673566202302120621033994509630694569112780815562648102007153738582524720165493398737819719204580786744307948231391843478675440559684756238571753401727547365966968151974822164005061577745315513643642476023048787290638031134645388799082371505296809598085447526189685278587065611411655898382678347841608477254445097698123826614161206273941450734246403641043206329557082421392576377147076871982743060315279491873201927928251454911167942577342755670819112570340409318013487901972981655055733167581004353372888193818026012011143909042250411427179394023530454586873639514733964102101039062583000374248230216150224782864915561460926801144302977756442360107087817668851567553656052954428374786073443586920750531485408530390933486647062226318530842679290540607935764007280383438696843162762770903245394841743595982184981079105234444095636596236318761583263351043866560580717679438542072364039594711113972505811761726534220991609584577634940797723620802782557954321027188784562686188109526382188874943240816865988397333618491183684161266930109109943489090138899530749847291799495678153513667286489998371893744808539739213795376262671568063630853631587003423602961993552613749574201275743262665029174519873090562076962119106411060657785647375560582144811370025195819392789354273774447068950060186015759182731976286219540347415393465403018316874645126913958155956529962142125924000895489493214806077664080269065592726318895164650752906405548933386044274114723441925126449655089346462191304583824945845021801636542193123190422535097477525230496640077504330096111809396229890459339520756490816699561219611129782464411879410762618666448754147810071890502869146663453795888686989060379363795170498825244087758498610284585387242721053694371146175245515944679047042578389562947291341662350411589879199712381866828459827349326779533696253806669041996784180285069911794234375447506742858184208064061194339909906697901368848460955524308420688849552658900302907384504861306400294393898534299726791346650365089253712497020749973235520248469457718572383981237780524994837652731755390868364247650613862384364237058138433173589390852983657888289447231131047693416479548803617497561528520724793644454442118097169845215470277490654414471571566180783674649385983576801700273856778874488795158583227678014267563736655905253733145822547046539555976015119936612082779367959084050308417744565990348173076050894260942662679967682853843234495455445684194904902235487501710719486642393326215520469251060669366398858338280694492676155256825340155124274575945250374128441837187424644771804824601505193135404008397664840694047778819287907744787039575760288530241299470248947080026725539381540668606470785968738623334324484541010859455350619497010751445690545889672075718714607833028574944910580939473654631173113820775945871775509409189586626838873123710103648706214022001475295756601082492827646542500119407115709047383157822099493645878234002466117080082119358956166780022841870013334134677625390247712957782480434913731445913371491499611491222178422452818106649368689337640225597424780827208468202698174953304031781416160941223623804646354678027051801772552353880598597918944329647832379528231181230653917472389428627791555899208354204353612443071061137145649080072840226560102850364509266363645321587058555711979696829001011889291244623104886929478677792073463356234060184390369496866569992455216940387074557075437004090560971418734253020515763038625561007854106753947964069141324902951974030363691254273321113129484054557728357928330026737026433183747540838522248774888781118958268645528579673731303384543671070503262787042145278122791173475774322148285266600860637767717243038169738390353506961810966420633830345933035449429935141148035290081745648690759478036738121447032353023031650920452237665850999365150193230101382158539144271230465047210162468491798296424732462944112566244197251037897438950220404031802889971662233848952733934350778788249707496566467998662832806874885572853075402878361516365109708694079993457102575148415376665468597833554334943283064010788345546215834369784285161258791217958515201263451520862671676410164710016251449490337329329091974570019764117169209467990792329622197902793013061790724332488885919982743093070640946533661311786375550954261853859703489927344123184596259350303075839748844787863295714800830394039630220359171281047022309366381132927119824526535812517456133854195431464599367802650446762943130488785528326686508795530412609811044984828559229869123802179262201957893049390164636690523519347256557962416021432181547502383142331595033792450369988645233574438655067650650887273986259345933063932283181130313719639372578713266893841504722973908441188045604467391256017575362881304686824396126035454086915243773979419437057931217877796859272331050072371044790133264825494764816509728251339972576741230324566707402779933721169169451942207217956502131351395512642972309120565079454327165888004120945064947834677873324193622506209343233338783655429532011852375287880976455832174269890888210231268969466342910768205530523073987194737504766902735709995971533535181549320945948399956037512243155743540844873977328815131547929636707258824063927623380029560407127230022679767684662424154786199086718403588494123451912110944627233730336816297237084368655319863208822638805748836885897057424836501928541604103463933851167779042170253836751471728765252442007023036010527768632559293543877194534239079838574266119486309856557374025243326041739679597463765491446974705419475722898115549060557821460601396274839711058545293049020516115909378867070374906572995906057176200592676291915344432308502156466774771657723812588126401541361529184564600448858981402091731550420944944365623903254366379643371959455270175805768180108475341106890167537595784748936680906851692447741445635628787533208088539471804432760123607988023625683266222199831272006294459347103339501426030731649701751672961821828900825914575861023448621993221102520362564224885771195664775611216644176688642030805355936991700037863618595085377708477477818376238596962853604820237440973412546799172074470937125382932081517032794947009348181429848038604264511097138594339765830706100893471604826012597802763550839453197512650932792826354682026662014338746804510833245128441087941894988303331353516346720426258085357780579316636296600602232640395506803659501455797781352650101471305805635797497315718053852317939865859364942453844857977917492889055236120733263795071079762363360824687519417371861384976926248412100779587399815665725261506496309169714200925534586369913006841605236583945239324290877279214490618065978257139270143028700685639406246452706404184528853602493046239229145315248234180004016347269523353820773180438647618360723849258054179251494386975044219844450733071172026551186671062229264056348848388156509511602479272311348451030936887127069634090323795214873747992806229847717670243904016540518705614995317506884154944061816100932641157704820964044313275813864467410428798180490472935413684897147479279032210219159880894234166653914675975389752096084074805521850697770790794957053129602283115845861596038775205011455614077337609848529989099383073190773104215811446381908520751206529472177862465827842852620645364769947112723711564023661950496296161958557674016009832176546402993862566031144322720424152670872194548684288933735112189363144650782521181683784397589165428216181078043769951692553710531391452401407944435798224036654675733390769955756195714677657753807545155592489389851948313311118487134577357714700221104088797005277904926558144222290493431359076154754192187953076170225047607881375923162654599004765475477287875431967826732628885141975116407644859474687057981351370606582626632829702851291064079729065507251849095741521867070510326012245289282356413749928013657529028431219338298201267055916756038755342385859969281570060876827579682058952844686078198358117389808971672427848441870380474451561039066342116430271077336852949525927973540863681727233947549941230277951704214110609823565781251007615915827867476524868178006856381068141019116796850570979770177394687241992327449522189813317548415505740590904811627885384957572463523969792466056166768714275852694891619108207411894080582994838329407733830357889817889661270268819811538288166754993785699286592899221927936689782753062193916209059802578658785895712837972262347805848838873401980316765048580328168915240372890615871708829991621480839133113371561862015564309636856648524745230327382808947547723075650763607243474726515659162542558937908194174095118719716165365865738542317790825095025892190772101318419810008724440754065570697867173313098086193514562421125055987031444230496432704732787821821317250535759543950685919746958718195059237196623878539434134103873424514271342030515260945956288851701733232240615621466849035200265814994512933876858406399833993016036950823117215369784974582687147631418631648328925366942721759528321678330494940952851130065268109307901443630530206676267297130926962168180222978566645910055066540641992595721064144061696884259258894688531993788824893133804271860081792028823158295298607791787320104732655925294873763793662077120557711722765722199635834354702527493660904175858783710965176030470963390114937494995415583202088269892961925976857555454728944277196026097752188700706243502733361893429698378915954025767050641037295169810154046282335967455751191680742301373582203651144709191337751392068198325488148259793002230643477551796877993931873966404216388748682605198483887366951935660406433488512589432394734780514314491324725555795781069018762735295203438921984674283861290589503617186926354647811202721288617138459818244588480544051183628996792364774508862696710159579496257801772699362347932229658024427765970515065972598453016152290730968199991439793406007532437145298318433088643424791900766860151732987689563985119971693529805899199723141943621621012065817913417777434257928459774391012235395129358031007188594714076383494953522372519873550194330855429248887277277057800827846875288699179056171633125420468493252593986445369767411118289105839095818643919927548988967782356655635177580636077379373109188025879185127053127388242800159312822512183814934145351237260581006155057399962987687408732098616828442628444641950135525168902008297527372574235628886333332933945796737941231396316775519930290613932350480109885662100902286726333330013255754101598510884368130849730120980513708005193083044095477746389142324140244618279798060956566726410563337664369518701755980221144918863730272377300250225751818146877184664546677468825153802884739464672475970804795528085526446465273546940710459633416270737762120921462496578573014332148866807824968671914246943804367011374401816094234882876412582218337199030414672301270583868069848251061263124073139403135248598563584556162891977775910944458718096219163279120379305257988652765293229800969261551962644711641337613634040271351346535022371382835353630371182554227237200904250814109754987625009503350804216269329916867768312249191243873987319774820690497745196513984625741390488092474368029331135291700592747490693937320006025907596101407612726805436035674295206405655673678775077010115979325842896699276294245724143589183327786930069306622094154980064869064393003823486506502236394912707777330128489484475451167498215668227137547300784032747504927685775726626298964890758164692472950287987199755816220799134279281361269463173696956292265898999501757209408881610229425778033147813232254585782888032561935392572957682460329213552630629101319141254025329397443061862953088422057165127273046272104432241412442372646058611940577208586665526884106742634297269609303598284505718152215246665961182300280915758770523511622229711390844820701743967542698869031654334043909919277743916196983212066673558655822977145225903701283884893758424945299432299286740055589299740658346655564156689016690979809096209695308383701704508339477741484271540503328706668543635764924377566899953958181711094100297851341002507112497646163371330303276877964023537352419503034456396714065959031159678959430564581607234029799286888903222432685515295654922538137524548416106575977782095140933117290129601039399711149331805003609724492421772998929231851478691274906494617511149475353403463520009946196601291508621974996170142828034874917695254165270528704718840240401157710212543391773751519590081949224648664007939073028780843834498058351919092588715940061293765306654109597940518953265367824631944685514243759612476264327607269582991924082649926345535426866666194146971840914136760049604334839078170658211266838579104460138240545812950747145228047923717003520212239779697374272040428911578276573099463729873836624643524448039911410067218158390619804147235102325314274796738048011715644037606416623633052984591565564232709898567136942455737183916248896682155647774866964854134631203573557809036482610014533834962637736656009897420545888938158570201195416440958872896108895737935892914340179852056528006310903999259458898418778001610227763199065710372071911991470003217503839399810457532766078883902756172472502114127320179668738890998265744575373705024166375329000117783664532780656137978082807633821366964098394977435793058245370431228356717644728939349767606328898680248425715694262887361415769601108767728561973288290424450535560217703351722928678269681665198437190069128916800266465669227197582801647760689257984942137137134305404830144289197116059928046686990791569557284014819693203122934825775391183116673760773031072509331793620571251695015064133909289922490846749405451787293344456085635761789958863002404548182815331781753582958814138907817288035120422663986192698587929449216351446463439009187621803664689076647736188840487638947472580232465073928911986521917396096400872540319625587615312533892889512652387554292716278307471946036653642966800841503196044529438908554900906086256938234532446116288704389437064119224721468632960895090895464944973059220909816151728424275741463374663573130353014233543616486767793107738010874041787154725179848225167581696824614215463243765583215743594934912496711155343637668711389596601492481386218996587244674133319684285665821492167100450955728919937818115724886846496957416542871106848582710110721667581208203742235394360744975675639834981296121658685896904851967094018745571071357859243762904591141782602125400561092323801915622295412232880436707429881617452133196854712837527372421512124553842670329030722785422131214076857653043384096306508613996328254935527674238495505569227890620098934363304216440149570608262963414456515240347893636506978699329817124817565538748536546031544754946997902116390265228862907505190204364887137649523794599411562232671287916930376742518278202436572533086517301881916830483739973890802744972822957125255990582542802202022420475730085856899222976184586857233029136001338338042151297978597680990608168771275131347101897471933319871040390948419236329791360220832734019182948929098053554552730757993478359858895166080660245597949460949911409499520954112257517744846532038697573703835100285133033627260936448421944346735170577518791124865700160660394983424407702255549926943230918868118695433670087119109188790738841273797202932088353131230935974127410660263399634562407324973424130163202010794932748641887376891708502877372197489561448065372782274562666832647511060242961819446788440242022557054847543944260950499416062411798602572975127568423198439505701165199718135808984169922494334520324434532042629862971498233891540610824440511161107976517009952816354154949854206708365712709754549914120140173423753047022854537690630981222368589916227054829343452632626078597756523451658345402869971385923733643728194751830308778085251425399735897576147509045843335055558228637107183514154825328181484364630848687411629800419815917272263383449395110218789236015322476176108406362021872207962366253664071918618255694429287259741374811234483516301277616547330888836762475724927833306876189763356985967807841126212409726008083926269558137747964670739194057959997789094122876897068513584361491640852819017119441218498469571242864968727906040573731161140141949620814681213844993975943785616821366409320962289502188548623145200094254564549320682965605126510539355516608788845792164303033800604313187380287339526508964870876848229059354093236271890284196527216677583221562569460366785569830994096624926539957788964946667941416915356443821068826375887763474418385992215166882628330459767791655181596939850029021197589212715400102303190509540137784350686527250251770183421252601375053546716274194463676095974796996171773579108244520522641629375583732438587104731144028616111558019906344645105305248589985351728307478179099849115216443875253643250425568518713507110348451282151598822525828968788945650977015683719250487975099353772175192571471458895167732583726163699617777905789486979126390710372417402168797122954072759857776096154561035195514761647233453977519072006979321331683735627811251346224226197197146041740449037730647835906135084793852052544549325154008028782992148655315513575816229124586083602970768916164941931355923396150379516011082546546287181148000833013008799672495352163295813979940506604157696099284944751222361732078409021021407767966505631864084412989509171915163088875461305709764139424897373473061343369412250912069646892791975375846624578010491680585583278548263291595703915110884477215268910180110067919297984695744171150283985594541760679001894998813375673870540211278040030254680347763681881562518130125011963604254402012557449901904279921978364071935975852289603587718112605485897642101682629641757047691983295445458159198935202064551291529088610104088479854525195112033611009379433585436362264850212438006632106117383455817747260478577480143039893682306488979704660090096603576856855706028439029805964095661521076250429514367449891989324210726269944624689728138223687116539740167141941626847337277440620626751103834907531329960096405666689097945645437291309691107186262174795623810356674464737357942734099929350937135147823883229250390255443936283782256104657568239918909990367593247242419093827831086221107347698673837076840461070506263135231545509816675846067813926433423729699082885012238333310510551821188648430071368982240446950808698560727646530232391835989889427110592543524584128546617079922191017582152538824892231423827770813394681493503168924585379182045975573167581733186527117681507875043947945141945584433392215748878880318644298810448510677507240319755603207812691261143043170086655932574382262161703418109083611954910495089181543909140432443759551765289877806934081303014410060345325654127550967372029852526972828949729059711406642931454443803084368944707542700354651789094805384195104157458645735983906224230670840167158625396638227884999378230736820440963431916718059824355526995909378647911318360235582851075590183949373651824169531659043371537932184826388514806524702890068560270100156054213694458548520522097299630025169872056575061756676347478523933473616512602329781385047031887967525191279127563671053553367652160152534127369488451489066193770159728611160904301601528199528463605894980659859401644909106684995766084174269117828228442858542693816085629860995569282561318098593438474751342101453530644614157102589252529490427999274847468005534555511922617980619652454887136932872352042263354024687201824021218569972640809822258079103726766827839553429673210710598541264646057825505615459790487928464838300978048645116489665319673602824969400829761526903762155256003787840126151457730299414265852508885158366282981126267741461774255604836418842408776070165442816250062732196537398264404660238256948378274640826820949849721096493963042996069741960220181568419206540056799794001454951972626107186761143020977473443540284658900642992983209581707686222067354227334298859297446669675700367584326327810634892332820375760511311803230560281988403735533886781152880116910538720488754038783883895015789978986006690496207779596761120837030474320410934862883578507455207456430821354458695442832137534285793476669829219536148127498620908506143484793353160106498869909090498264793278551237132228512781444952984101401430846232624635909039896814718781934656803125546424896980182695199091684956495333289576936586541737809053163156141624299413817324905013716278528957950560478401139323566006830107509926889541518443860305104168921104031610207071740327669185209819015161226690644972176372589981558462762848043408406230893207701016708112422801573694740985322527243387743986634015551213401910348835357256849752615313129396360071541200044207238940974603227095238240606803523536525651333396253240785001245139619605179901953735267413680517230014329265364313904144942017542338248273923022840810676808341580997055311626211859997380079121201187318940024041040929344390698615280574243225035043664944068008200475514696136893987659401222072026225718095871705703514448799424168033424232352596990273950523562545996972687026334896438492258027160795615264003073682823940705013137769527079514603118322231036212317718478713796027025658933747878276446005918516295925766790607300288191478258156195656953047977058626894215882022703922695288778997316935306229418182029370154509003053119028763633146209165595043479901657921423732515063855981259808376213655349778633102641757012543068725544725917060708050741961774027514945283362726729390384261727434887399579538546244497361380713512705265526667320395191513400899328501556185333824510756955805098167356794827670074852823401008905703194639661799423766576924484362298301051099834236938681272558689522051868203961458356743988082605217346875451684840090374545962300821448897613400396712680510021417936420773600580967713270364680197063711288894579914692453292655408375163958216515630193552573667647691214352082245847505934361126675750345867154519201829642111883525040698845781164403043330079199619647764594960617090784405409525939786606769048746607407955312265764513073348002539602033868355967930842102105091610420516471101325410307894929419799698242494971909082779245178980131469641762960719849405161523126681561746320707468790476361373179224987537946677039065889161246691165077481727656857064256262484800380662198937309957235397625848450908189155080201389052229536572845775467893121584207132301342626791793562614796404906798300258802460206559129414833761686734820910477938438878293281139892282222641876534025352192883853020690883397588943241665944318781802157853096449272880008745230413334331955970468766336673370026897789698001933059004133570138514793553950486917279462355188967847315446141143804833942707870423324264888111466595290104090785609571150186317169560714389440318623034219429147005613752685253980488454286481302393191103185614530581431115449670223514504804546823087872409995867575088842062135260234172773382203996358446484204312033031304548736491838703545468201429423306209937029140250656636798577197373799812446220282744000829318349897320900045251188589456961768407807392487538493748197411327921877145882622981445441069071476533752402063343400302666196200551991201470335595834399758230036972621960843803320729733613170780058280351163783886155878356584846473348125470342954039367916849609080435107917912678318370606455717956085706785030399804379284418597311637087711199821632519025199539278422481930694010642731520853717393860385432698272518728941114829199221499179603751710577514630197630171888999280109969436970188397217498114496402044568942135119499267728542309254075012652130553519387741383221792994841333342593790439419028609250731321720451380651372931937356792473402720737261504257720225120484336842117943355751028671690365212708793227833991195768771258980574995946830723892385632257200456261621745192370479653349457267992552858757151099636435120394548617115537413964341810124443932177342939227663952435854331211273261648185811136795386502366705155435756216448305882874220147349624337257117081987235076737314747453480239633364018864568543588657346402856826298781524063568105357077418979216421377184084661045304216712684971384681498893147002544958650367244088257956309768700111849613217378251222091843375113452167686348841323738670149367927231816897950778492785368657175906547180373879414530157094479586946068173629499339085893854213136163641374574447193435233303180826517889113490959453756958639575347969735509935748140836696444777028072065941023271459645969426143699119023740024998049296321875550277536356213864443479129527374337765680624826376259536341416721995758969132491770930848430538437513866237423800046008728504360243786686177323998057712380951982718502371692123149400290191990889671764036859176684284006872119536182198126225113170717093794785265960301883925025682239243987839298007278436519562946767789521889954744073860996451012402963078848365002783488563518219067745329110559565986388070105067442008265078586687431060245575314131001247831385940407284169962499324294429642372142063258788631073984474940047875956270364452231599519052717507866514199637344665666292964613076941860880807051003126242238536825990735160989742233816123743005776400673235346676768466357918353884887904379711450659714270952200782314792924625642096093975917228142807457102811223309056958137355417629136086343651727306586512561990783904074319912611141637535623237986980968749094102137228989567270696117016843909378189378428101308833635552159382448227645759159539403295975247791060036016948663836728367885732876316141117800685148048076253046824749267017465539032416401093044741423956520259373322666428087840417024110093426266854295738430035108148901528292269475132109100825633508818980593115276960917926658110466056692301881821620761489768974654204887774250939405297886712216428605458880393396507968355107920849884328850235450383823330742615772375308239516803280302404393383160298778501007257993647722208710379616992251768371652073345950352315693090780729676030572263828707119924390440206603829336083990782912975417329193525395091972371205081408923349042142538585589170909151948009420979112002259564664742671630818363560626255587781939962614037272030332993001055296047002668474926386194472582489998989366031883027028158800772511313841290802373340195978057289616235473871610469055806420799515600644166140328136824921030642885187163356516430499095314370438609368378941788189256852353822857122585328894831014920463347969092215067884663635497338509023203065836028579425732356014425156076389102287360959808776248146608199872501647045083718159851372795516704110595511792820552254056895056161467312859531217665961694435110537194387906420348031771823179424315361631776143802338640842273126106823370959716645807417211469240307312900427874097003801581476987692128268818289504623663024256166481362513139166235848657156198559412230768689639967404256769908570389480988977477226681496166728567818009154410656068308727438075033293677550890818865950906881168123174003190337255168535571058219659510837825547984237297290556393746000574057928338726552045317267999892529652707176599861204891567800838728017229151196219212996182259944373737734626269799570225330363052699107415916798862714168324364588824668828639779592159840341251494198789962316955484584707396120149655788026021785143693189591178119889204086049662872954177966266464575294764853726221737602610981264232825453554117254285110408631225121046206505912771966048498113714727036277530555522641369575902205998185835945981483495080607662515291774653575209325511601584385191423013754998529440909976134403598178800713085044983995881598197883069869853590440926259441402291583489331286235103961465100188914231852861353522795906714467079860846793974925826050540380332353709104249352607091334542397664221427625122897390429285793583681727963533020202638448206466281027904156281759410469174579978072513305157196066312601491424057484599428935910477596889715326354775001581576844993134233281102458177581862440768753753358249281014147541314014831809056163377922264918684746375599935904462525927479413366035700358519150751662676999271116426342419753579367211724339325568397953708742838999334110154296745328584616884089081871101528021453741238894219764479512415292529318205702191715840993927989146002688985674761556229654621629472552031966675036048960239290410504811855120033646172526967740347382584801606374683719396965218192935216868100241987178269176709463493140885502050291168854543979770347940477358136333380607707115215022991814391317346458462081087755596467570347715393864264301211737721480673129917175334103010127861023161308201839838327672800958300102072815615788729039402877088151968687183657415284047005570690724005040745057133464290626276222374875068639915649494234088378793876790537077747472651061106832060774060814334610679075209743707918824521290745647540784900688480872948668733745589835939433588878328237129859235534340902485076471224521288179877699505661399755028160090138522352623227331684579739468820936506687211532355261980165728150185372739340553830610690883717029327679592187349938024996092970442663934929154638979420207637422348528326057196334821513954172201225934058483879585969297775685821634866830733492478726858883198339234167170212280112245672771165547465825777041235654271224936649762717538711003236248517375821183276330699078987193415313040570944960976713794569914261558512525612171263300774725837435289361135393374505533270047892686470169649801846932776135007274412806923888454903116706926600344318536537664044202920062001018176439543645798189315024054853722399363933772618160941797308256349926808378492162088185460504608264366629247832000665575398941935775135701584010771425302910911718142622892180401072653939353735025904134482445263504502065322774410433149840379064183679064881044303934130415458213432017330968858373296580535388199965380199726451032422615800463979593232166702765222866625877685585047761305551808649180843937112249987286098555788005782671358668976497390557048575101223494731290934861081232203110336665771156330249210159565779040535900748884346787562998075092674827829432370270294519719083631583871924336925864077992317331656965224170594226585042034226254837862635897260325267489930502013322531789844715710509283594395191198116273876165588308369190815965130086151191070629118567944962763054590590312279292348314814942778004286825919328652385758806215969254838922483106404188016563699085980669932800000575662988041536947584944880864144032602358445021140252101862114128930771851345535064582881373528581254636538597121973120894905943879664899631996911399640571639033143655402125477355672790102450307422803273446431024554307252973718495047283517907076899808846398353939059348230141434788528490197367936107369681160511421521105506815485237719187073305265270089149753580249000201951488924070838484192352322825966503244506494481654814272417387120596570878995117575359849364006471177563849707483560997801181361216136348869801403150744999653370180034311211730686296020054055321070874429718644113622581459341014845880424121221521242559543814071486264452730690535482280263771538229521872461524776130250746281890516856677290309908216431916049379734123352551789843595676861704476570858361153488173123812420986721980784514434169882761787420265179650234594053480756522563723380230773847004101424930147868761410782649734520381797788553148968815080467265249961714677825037395814920776255226426561317832791635193146899192649007507382876423003205709639430824419863786286615524693869961825510676570715595888105987103164102299390911015748225332074125646019596293850784435092494455549758567094559809533292853153682865584187203483859646465036868628243071086463316610682828310190714506199422361851842320440861012066448688036292700192305703773137593903982769795437469934431832879958441441807634761382556661426796907113206770892487816378774018068482449146875170020702072426704112884666300715591500428118831115243787673858717286053898370574927103433426925567806388126228858969993568822833222203701509936290088285603158256123709075704090334253048067235036136834856882425020586716252540516145469969648408650046969849668845532971030965493000001852657408562434299161117447325654033167237330590641395886532620675345381850272080048441294915966183708735174899338201955718177075669105219076667208799735472060433530681234313075568384133295516666530681340734253577745139421845646904237725325497346040926041871431009130278004560864718456371022211080550404791488347759403534326057989242059685496491749308740503989994120062289962053296933589760381218792429404802596435498717593952852067877426871061191684858253019651910586896739070371314549912009946347843188375194329521182733655171707835328031712549702688355331414214778919316714827240359084263168406130756176636741828297929133921025307721331812371840275171728383210849222946455813110095479271745974183389260056542538217126050370214056707322717857188731004765725284402426732809369110475551625518167455805101692223587740381008794102525779688664060995175720926162028244249266633048548191219188287622761731695201308678090728587305419729107646247999484849410675795105121550062304750499325075546987363854241652113487186050645267191850520809136722394847073003480953013154891435014418577439288144289648362960946593137925796013453216812639340578036714585503389574033747853334112124881715348201057252510665442336153983209643534465893730682406052453224638354283403762720707993551491550786309489206527389775030225158382594126374285373556426695731142590030940855910480242540077430983160363583968000552260847763810060965872331561603561312328242317638865638522706647448889740031517370881728777524980216650969265360558254795782720759157564992920020556628466404433164689255366504729004821903901719820336641378738568499171850553869492436293140316010268277931756420317634964824762076744085709184194224634535709885045289996383001648802984712967919858010175082799089574530533220314794554737765366164344590166670655309458215743084091110739384577259368316411386903945280300037133283502193723793743764614499513798659014864477580844124153198755807998197694401121437876877270595275981061652903358071529545025926542236358230729676775312057146947498080588424915079538201932580740373703560890369363537784923163842856998722706262542407316277723477341876900030070227581004866181980790618678561057813124622896612147531498350682088247675881949635010888850826762921121623161864658127309631505961431012026600577201816938419461744854591473643140599454578697991695740227184092238031163887626164157621162115996600878794776933549892953041552785274556281028800585015737716961735733125556039315607456392368445129285603746381550781099372346402188903695432282981597803347636696861415991464228955533185531714943740025673014187813786511553040727427372148099622306118100190505241225024336243805422427194545941487495181997594258367662490977954344766282902829048909515288288399975871330975420030246313367923893245375252420581387932989125893938253749859955216774209686719509746172359129555105953440545532615712005759220628877270300930733752326665983970515502737337892964131097902153843095956735483333505830717350119040490995351979311731728965371311827264075814181347444857133510484941734607278093587150454995745935310283655368057656226912100120699442687077547171210185111363116003064497444571827015629160040795055950623033772026743938578484695607775730027561223669493574580894559436296433258179497894766836821841005222130371902817234922550143650320808842478799176082852700585237959653861267965995164230794409054051953938984838905080971687955124338181992113383915885609029737922384175802236924246178251389967300802436812028886885326777114693853539765776669676629276286942050011944968145834102155064450398718930425422125923657453712065798169089090482393692789438139892899866023375919889320208444956940408643379147003774505970919992245052995023316172724319401107329145095740780585799158080717916180317432623573258667289468419105104055873269488706686378191338201175940888960474645648291493869674533364351189155942324952888381906547310017095336364684737584415002337865421065444252266420506407745173165003439128562568511047395813767518116608375591578265182896086028536514040040716642279608357521929321698692136453759905189900920270805623609929227926648036177651386204243091541332882191887421976585590108418612607004976887394094436730377105374199217368962819171077411060077944732754658183977002171532176446283025975476055568563296028015690697711405171387606431173288247095159491746731445833263749247577030009237648397318302206042651768567894529209519801529263599113727677840681130846713753669464341734287236865024619804448987097414457051783422497557275386669887427551702154073560227525918257483559106474255456340747394978396660694641640029624312370806418303567303320648280902618203703748858223207661485125330616970984311151399281534047582425349713673053840503596565781918910009546899435604328997580060524305515203648499130026025257481077238464497072888589729515438920228514746990682874943554950195555187892472403505830345728038003689018980418106980239138955191531444928057204032787131806001539870430965086179877975249269912007714253826706132727844554982555433906819122000770737232329495297464636480145878044618477614168263339062947435272038927565013340594568674811773202046974791675527895643984698898195151346525036757870335548013302109611422721368715513257652828573027934266017893302266141149035282868233245037860100736019932256581737493901805585741332956175842815149227285182781543028243195697961735276187493709367852810397244954287366452785398652463220451636746681078196330699674889278118173007824877795851798060399730180948971982823770914445076758524864191730973698788594307448784156574022259574818295593797143751535440635821634962092867184336123813363198462067105744922207802881475291895431191774884677870115308772421825956336795743539189893909756403398883185495671616239668812199501474167649324253998916107426810706977847188223752092975843654938336612225004002552032521972462255868672403706861692502790189004220641682201936299207528025484838731037534998641680705471548142834695095427183937809946578992976540837754565176872264271220260354038543577300779032581063253660306465865784282703546134680862719691300397216286760327585043149003291498678842598815180674157534078454512424115528614943258738088813484948871688021883857965521994765947458966589589074684200417996537778049433711435077298448354940618763714904413388388727135311218063582110207840365994664728220124146795425795361020291003694836400348056727042253824311834656300300373647389822446179020836477931231191340728818685576892640465570683798200075752229740488179854354262213771133051515957328720073245449147511567649887524078211725498829225195716136099425330632967390400737473449920951050218878836708532732503342081168354230831089375433579649913021990763610285292599373620415554439260458215447028311761754070262921642767052865421846362529425197319398162319334634959938552911139451058964424859687404640742775894943856531834684272351760373491470200202705198726440748294904145006796557898232604602513877000555242520320370871582291161333827334789519117208616444693795772608616535101837400310768171418012852289585987733697883951177691519186449788028018393965626883715334298434581689298717327123660190947812257027101261115720111914608044578923423366690868307948891804149376771659964257223276130570436679429864085907757751055784084554802986728541309463727549807301459932811930142155295882483263808739014043800679530525201262533967135107625711346897505784922632040325465717219296913911158901053630723534816024970260780269859310057606169927083120247844800891917408237478031686884451090705675009760509464340376689297184479410955459856003353274530405465043679510369919135787018986354865560225666460473715412174383396776310995573485403370119114952216242815247474488373625317123393883960668915050271321295825257804850807774955196069868263861791317236731738669323276611763140279033655162901716420036653339032552197414314348474140574060061201687714158403333644704613628361670527927522858755968354347075424101121439226294470341494373663980546881912697258363771120252208024781786871230565835916651013705057094256217980318204644096253765359828500635626366180602951731193516366596934766455633502403967917440392559224548317293876518906299615135476926012085594254970575481055425883452118892972767258588412092425220521343933306351377504062678183359706313673504281402101186844689188762290515457496366531803757696149167143679990611216554153955645631936481957145590735210263746184735551404580134640666973407822536764642905204883476154970330209931381954072919959298896301305358944374219606508855154730615821758446310155397788330578821061745004703592805283579591571397884968847263820427293054906447329770936097318490152099566802748811942318255741572461647482199358323159989009267809026190942215298774073670322910218648501500365550903434749813155133854891780395165497996663726811461649904195038831412309752046402184788238491364249611574113250139863440267634466775947164433534965808895318155421207062158773590200687782165831730543954318907693707950291711841292266194306458467698748348053788825150563755561862328616931252675917428443794151498591339965255416291057662642243455156962951409178943147521700594689252347783646591207209254831576556151025509157751531367313182740673257482499912814771154617425413032768096017086211017993746464107911483109962737239438484318237538635283231428192880873649116490992140621967762708026484107728394532693675488771076251376564262139861979693665003667918193309995621981222615427511332513815795260946804529350737410595606213748526634414732099708620718779251278982319625660675490599070690196194293783594779668950173574464729132034175393055355259831152605462713642620966416764678798298201537338567610404660468117986364733218962070232822885794936108618042508610411749370051431616756179248495643460388289834268883314188013558105483147211266698668271527804866037913564227897639975106208479113034017770441929056545715547611439982429083523696261823851896267424032136731574626893553088428877926692011153867936850676155602512615812360027658364986047262717943215708298568289900169556363245356460149894379228556248378094403831373498272615378923295624398937688391289264543008898690162943661366148786618970079727468523796985540206400055211837774462022622997517655541273483162500220982380384084174198304181500561762069654002220233295307620518042562168305270045923516986574897908924443302520762835648917291435129647356189218947433496307625016662932446686039898518343489536572846780789810329437259601143818915107837069514082814821414615699883182089507669680162130589701400723805936950227339956210476519948172370046883069133556344686324612835041786500124149782287346387189293881054389541295905533241871932725416782690946738097299833462652489238872152963917255780041130994705712042906374796931118440140053400599213335618045270537163225823170273557607900037578144623719994162770691113053630766475828037958005411745967516322075681092969939516554768903792410897348290434314103737579951123502978278092099221286091204694862876405082875888342984912719213721757881851235534311248275409778519554344237157826438994762031142796950274456757803875295888353245994964158934671754538283043645847535379992845297871424350989159496199746723080311209960482149656614390354544990695681523696543906694961869058902561918949738656073606549808083441966198339759079808158247603425450475106826901853806055230501531404038691747319695839892528629500926941037583959519759090243120418139393867176973686907913875410062892505997544114555928005004512415617143599997725712020862982276928723316057492422312160474027165697068154647178853838148189232642789245184530904121302302602405669078889296348723522034853702493104997678386723129037771989349305213925128315957691117553825573453137703293621140824610639295118374196388615361359574874503718087649048713146384187149441614658096162862011012037311072152742076955090105198352541607891104751517602864633309346577123450763214616123488215232116477481595788200782007829683124078842624555323271727803449519907095521537062598992506835543022197884507401220471531530875040158686738379087210209298047327217000852624196708458220868567123775408039122740806799292020327863456191792378102598511258216449271217757636912033988247171042839243237858268303513656569775989719425584407161422453382071732700648597077855817770868198005862319938924865056943777953096419572896614073770159453488084840524337510207118986956053833092674403222171005994480615852385735806011162740099086549689098792291175368082284037832035608604419775386014778129687597153897030282565340774499669110575004366522619115206829969252321289745139793356561535099809565685450332557740580533707405966657462198103724765559209629749937252807902589507938672819870469464229739482073871865600176217907774265511201242961476698593460318975660045028317172606833513043529812306432772280394780594429286683592011461861300497616518018232617703532338726794991800193937865771666503487595077912378887085720254751870316943765410920401593226600285471715958734530899567720653770487334086064371163004321906195366389737847527965910188829667299619065364023040602482848644515362730132756376903962724636114376018049202955865972854244431526442689526467411852810285329154289530826047996385000956631820669039718478705167509353144375049292073506074422742214172401485571607405552979252474218269404875359767724728765240406091090130767310881581027122302178819085975186893460765299411672381924932447220136480390575903657275986558327950504897812875134667975910034690600336538101100155356724047834320365768093382317458150863478339492823168443331886116261350224439097540293248771208613293876395092684142276282023304929949801187235468350632758807815068829898001451721533402823580988162595667109489871769392167182607909628709750182709443462873653589067551335220391865420790322827804516270059879072590215926010296262142311613919695507528594638389742887050537065049623704279104908402568076211746927479005987520580737686370746267280420143634810716411647414062875786566267656614955243207792932677023427399091651736627744301271060956824552060832446387216747805501134001434761875570186730615602788052578427349462259681963158341143595121309740139324218300456184954513379214407742552504953161647370855609876866462010190476108883173955110940152020828584215427895008802200137168406512935719076628221911009318006268703974698999817659555211717515720340915393318391161249401289287371484476560067475836073167071968885298124446651798478411032482379729025727065753314684925665139907830373025172765979089749049181842705270964803852856860270173019159632949381829094054362863057781241685031204949581617130067952630397160722737774924551633668110504563959400717491740770306665471469752615440563600387297613226150592783492512393716432465531979339790020188542210148916646061397388810055585807061300234085797881935202400734761391118481568607931018367842587682921704537536975110173010181363240150876649133321966568596958906103495414281369806984446840886984545716269455998462697155658914460347088544335340046663794111678031332919639747473321342818232225255775143262001716318873699003153310932654587402596534795047011317616653451713836714105740326498857891788568255762207918171064609052461658982015069427545023427128587365746669683513577849292119615117243866709973580598587982016612182677552013842595955752986376233129810949223818165886262306068847372018245117308869715763904247219748785545909737313001356439393595206150579516442914940403551975005839922484955991386246713758336611028795630896574807181790875347994553595501025936047911640642481509767664300950272653299335994369563470981122903412479930291586807738155876069760294519308409244008468245963814898896650399257033387498801961969077190453825751703841920308928429556734807570766144992758951330531354998040911083989738155397887638799052756632850864970077867672423580955832385259477392186300560646461372784409254290739631293869233481220911017778111767227259058451277842063489521468610544287297743831138028775337794089354790535018080855035548672232424800966401357000799015759960407038558511941480237745058635906682246842539512824528246827798595556922705111636275845155896500053026909147196689124901178233506506150983435108508316781022807674725833142054993733785816399877312522912672684364935571535900232880357951596948359070094061982089177852003984187917867073346713125610106579897602062922870388489995394179669534772699527000903575024255495435720429364061206611095471246480612809800538945661164576080845102576009751360713813397608054999629150000299498652000572888705820209140132471701106914280068540953082677483242088877943563800774179340514026331423352246971328682274368793110251754386083073195864177257583071816541968744851791612258698622961212273190929099542490631991527043713932832000798718029342779201249215043156476415808540366549744128809080744197721844591679273418994727464841497389878347769666166722856904955607635290551833504908342705050554486035093758717994404898413148160597886476407830911036249929180601811255318078696917531059400340706415521183354115646344518273196873275879028968228876034324216728879297097360219012925563455895730442185285660733373532465627753957861411147304970525421071436522316786069640335587068287231975060622072738216227657358901449763778243312288469586638737951661698899985213360457987684232087596636617840731661295704421842089335246531455512996158965203070944895410582677866835447587835762744733726731316287285072166979885076373877642606764975833696814439721225123936645291149911764876361947786789956667915010675519069481887684464511517534046686277049769412912917119596932455494690468396015253372883678862223606123812505416431240807373258750876123969483910888005559698096134873786408093123490042990174482936490203538008495509153630345746022688142381365147681274109903284345191837486975499859044860261973833811012381944692794718272391173735993104298390022386969290920132776505477801968783562527089974337481313970752825381874745964055589913678441648400984912398180685828901076036908625203091883313619633790069752643209664844161713555678405642195213594154894109241921977701775178568705224779242368429674965279868230714491849187349841790988769695990518042056065216900162539983786614292460710450024868329317624695262353615165370525098429510631852540740909691052899515189039687684505962248248239415614285455446396413118534139170136647020393021734051951864827072680775384628386150328921381823099280468203445959129611168829202022476783412502724666472937136867808204358395631358869179176467711707086554435012933436698969036712770623420025777043071865701351950481720274447126972119732822194328756191721548747799243856959442859630985359044512775268012681865732987264501959505541822285208827570406331309097217417628466464340203713558533640084684137810007326601479588689287229568854607075804607321137722722412677335020193619934695679203705473864463420468532537477367843487999522545954154326568184585778046182791594125730438729610087365920956917994178867302199426368439481136403336829536332128437312217741039349817963182894823696702493858747528385345278008430046445648134323448236203668327818920658817147783400027678927561860318521145584661296020165356624414940573590846404430862635986961444967424506974173325642980762366158261989615247056241271931051333293071778212228936727462207052218922305008914787597212862758329328030385843914572635398145126579837812815121773040896949779831406176475466875350798533799555156601492073800953610541435475132978705703651631562835173763636634906935339333686355692034449314858287517679082158543560235446839045067414117120262880965912128940402211976400732630201419692992416682232703833094030406377592176881010678030262478289793132621849798087112101953355134107966252040972258690064785454150059743937954138955323115891294940618529291618613882183219303191063558290124302618030594046120234019830581643819111370776510818232868436543455477615612487857591599888877020243808720206078890091550451817938134053534337612660430428044937836943869817468123166157111527709619549264002856858084327130589313966680453122418521986474869410673980881701967915015136372117174100810782639394926381513296163687731885786797129074363661077344323867944139825896910997429560692221487099910732656281147751964898468235309052947685361967544049857091162546338702493961135287578271735461881016258515944198747039032860067065111363798820884984268922190204474701847179207177984611998887392045305170626277214424105785972450909360475871667610793296941451392946060193230882264955387108421316665152478261873665144125907518120559173220984846541071209988675335684302795436557976984005318899610675411873294355053713538289885480144324008189296297831892580693273979204388963710810582426502935807665354150053982449618116998900077371650310381420678576769446348164938961691208071724375996799791284383369549647711417475292995894829847824318712904778446349073794053039546357635514549993315489117385115332960009893617231850902507897945713147448322501119580576479510041491612374938934747319041094458053576283373483248761687231547678493155690858236181656823756905867292397303738861824765952799208130855528558138009871991029927245750862535107327184859873432505253454159436410693619625414883618855054316934211659608444261068134259192752444873771767617850264482172746797528408115595429018809076785089894553808240724611893697716790264097073129152145854794597857588827319789743711633113289813406899056473218602366116446916314365049543679177545726466791769492777700658840625746381363185396295496055635113211096058721960856489997321783645843437603861573899537364379259878611684470048354093648667695874510996269898723626513267167053855578207004829262019256746917363441927176890133545525390575157107052031295504690617434579778688906480596342339732971233392928685357574338074490477250330529544377978038902653131762817139651142868668355397934531784000866962575264893380512471604929129933921224093618543562829739483530524237509913747711633573217959756126795217344470052623541470714894469542102263174001367129340429561856695843173036404034183216146668769723097099294541571175701215152905736012039800925949516969866333466828374569210899160662532070570167715405573781098965187866010392679020669520976800652913738136865669092442596200419114227840467241606805080638243557898223217208400507714364253915005038099519609612010360558371790826460654894911281181271888634725888290644519951521303441459885172446771804855929165593159156897003809451507811976566503007040609678712674424252066176155515469895812744957313342550599524622017221744064342544840114521565000366767256965317381037895181810383491217827556888476609639356439880717188105440488144976300115405188889396621529633006953886553733956904067074784977256509937800666320058124552993016112753143018801299965732331564065322409587732781801124869147425479027613043014211420970674300003319412605844168209113554489174641985700332331443701690247337536738678216805122556486012291425925082506808356353271534147782374938722551466423879094657824971826909459319725413856145412102165462640295046066318774985811559436849390412960689711300734978021199241241025080718836083893776349835831146130135782464889192229110759011024376779900388904298322781864666991335379454979387391436815803212495451185963996187844522597667898476785749064441161369427775367727621227194534658695465024514832827165905081806158712812384193642018588739114492465315570880631201595818812773466823831853050959216831244460059442185212357468047919863679321256955117089739462213123086179137871810633511440839423589292201658605533456928321050431650645997692436758699909263473373273920437121710535229297230792644701309259320402028778749767777131615314642647151198023200853582889429297024719059783221058307851147962051480484846482112595732597692532773616888692100134980719725241733937424128426482041728263306366937497696454949136103470502526083967315609497549870815717486265508537109196033608923870770923286400700047755025534761395000473908004552528032987356638658068671553742719175216669461667569170162927273271950817325870578888999936853067353682214428128591764326593202608243536963298912851638338593813346112729036348095116637137778685179607776242280621540616666969970226890626682212134296175290290438263787874086484140514754864347259909008118714391412271483911748666680705473036841536339036385866850824045130039699940400094071503505854726976369825032112706312506104960010423292905802808574290141148954331275004935445777519274416714731749068696410390646950494736909487876053141007944986802456454418768465223801898952767906137565131092748013412812693918907221520175974367259106760577118729059017678302686807795075764413885010547009358560926865437329006889304425009411521456054925439897824591970103563868641788863346803062673132025747226744622913558433485739547439735859132581937596903935779726660018366445463414490486060353456950599737924472453091520916082284284370492133225314031963297554152097492639452412763303321190825681654479848472840606486146567881471407632721635614415096136750661745835410384664295475274144829428661001197616436212049566794887221316612415291731407350622175460313503989562946466994286835611829661794408754230197987944728695869696707208903427468208200488995879996198854350319686842679151523952119503639005248011131993564714325739873153959663005222608986208468875739311416769341006061230443973045226456881559943745592970518360815158994922332925778720519226820649341990174693925427981406519071031006161402837189321175902227599879872866763165254819671625030203663828536249383697431149697887694566564199402822096970932311517294308033588709930220426406891024062560926936412257111701469267693963329638824998291635141363755060412023999953982476930306893653126568326437043288441917474363118577587517637632530670061503747264766590735945165437712905201620840013133322338730174601696087223117202537341884808215110678103511055173309552549282144581078806611536155013099055389812647883298737566988183349987809279890978400835187776422581862956375417385704908535650316866139433145869050320044599960818646299670860465303401223994956303004321661562806672536965270065134073194088307289107682969455592148231628216975156355752664839527518679366325409586630743701840116151989450856695492005549437340829119090886987315363170317923768099526563169622132445158448981021512334428294904597113906935346676036004642350949838522190447011256882022198654972147098520464009019627866457913484181114494418611625399647331244815064037918167694341342524724988796831194838559804774642136839954648461482230457282945579144779557524616815217906207521659746688396529380330252645636425518838723213218255695215237279341178324602279332534046644172448003531443467251263938502130317969412781727139868476418878624719088993458666091322291826118189120172816223182648893635520660361132361118430627192577259769548921660943355508498688933699312135451520412439366139700951675607434379563788321867738912247619173950895288320532940571429388392024435281831321602230475813448554661584363058755734636691704220011208825330738879271103617082002515309328892900148755013238126378693126668196359120688505730240972382756776183865021328543508724123173091960313621445399704572071272778673255856122314596443064804471191597021794578126485553200243507915499156235844396150822039926730158487141169886493569653758896051692920760812102010032574992820779497267924850138499412444610064576691253526168330196793220266825916411762141104752132662703370083711819891567439384401961936863038039291263520581231091125978034494861698301750472106002894053764300967825846962911483516139570492371537018998384462634277962875089205476247121859311387035762246377363221702807254311993894420673674110934167427395749123078149598981273449271688955639232810762279666290416748416194285514518372271235237270055510636407642976203589223084589648030603563695210497483100741411642851031340882093196637890816197518695186015886866162411553869861427565699049436706708487672014213003715488635514968959815750782394845308764306722265509526924288132767799761200782804162856808338755198496726323374569978844518079939955210250772637934861687837519220231822081654155991926633039734590497724726039924334972069076203798520918274731673439730396719388315171021278199867398723714781412538305761174287591582716516282144717793677268142017833151714476753950074751999130177487030790504955426919767600379232122367819283685427046228188881657235285979409640938063018628349055129130136055028110415473551329661722007117479321323647833621064295007426396863940498629489150563951466068707390164801523496494105440587439818257018868778106875113186835085145199308375994600345377875039697008615413559181948761509550262338696256966637815485287636901278925568934553321215796423359892147539071732455950647144789501950236500516818482605468018909655475131202340999136891096892742570332328219379696051727798822504326242135981990073193432825550410894185168654791476805642378728244353012002710095965149160105922979926991898678836374616586358379509249803151851011095198424478819747192898790882181980162223900513113660028596731891746678620031963941583523553477018937918268304967102737466154557164794714615140979464485099556531831926149194859395710327221800882763446695118437258719583990900452752096280385396916846017615443707618749929002860250818513351818189170092328172361472616373268213353666399713150309962854848517080881605639045655417518088560200601354612011875467559986682095091563155376391706511329333130470601314993124897691615400309655919920095045371017355189151790033660509842462229914211771209936460292505794607113993345729299394030008165167575830053963810676543434992582689573846625259031000032789232284624733110945025405493840904343901650651881155213590034071786973518596555998883495593186307787306057731991108116035118132578817356018300279930380899199080919788751024571922010100576513806680986839163999649346429200799269679597076953954584216452052153549014282608934920190701947231445442643351372782504384499979311797038812224948504387178681881179515139350682677048910498505356143736762842277830037709469343662602797688867309128355598818949777554214227067177487154120265618765705691103165612585803185670904358491446057946204964233892222611400516715425877802762363067813553760361250136446091680560603717955240353221685225692063328298861945965436566665986115942064760737854899550024825118678064401987896372812741081312699819985617538861725979001132510217694288803473503667340253652113375229508404122051929716861769971546083064253739220442099089957099852270606931512169774553947665456176425477044233826624062391978608251112276345731819078423395814997727803171705418493735270330846684595576252036556732869483750370022924619709701571167723963912041947133468446851661589976807947844540630297064202902360884873997240963340916717848962863625982562429584015861167383883546566894744265987050010881844450666560488031217540662253763646313047865295000970712622707174841279735786547565875850129945417191401038033260007347820866259115518393251671689946045745988017415461965522499344451491596025373472654003969790816851409424128344209028198837377082967549067154243381002917943593303684524204309196125289845542914378164057689768465125876161488053329567103789288054727024228441761600762237071027913624888618980152962872578406002268670094800740719800902949198585866491575202665504062033926157217247123274377990263322436035445127278570739401136525047008829578086727704349074770910028295565017216641397868754844634636819804837857979533435026235016952516609183642508594056237331133905886114762796528660860098652175271000126890090848902142360268985026546372556837697162884433734135072950017345582547803330635653876037418792142625043954165209487163286036020779007063616874587649973379700700480115464379218811990951446659164133161327764071835505785797085024097260638673863554221171122218570575758319495840008644418970741143505744288694531480409275953677237278533711373481168889384291156944621725586312646010432756298296121997534314192040214332030570364644540176580705323565159787755425937534377897141409863252375350589672243081391399425389001905041718181309924270216437076252777038517926852989212709319990565830852039342980721540091488364729558884209350599759082280893094537792338947672454658897708703989276066615426498240103710205440781440048331745906116949305090505674684955953680612460481140716318026336504702046681680872073405437384977592691190064623267117958627922293843586289908111773920334503535252146733030759422902403929277368485392940518777079461479604705676551979158344220222828988240961629870181644941799340074844822867818063376797314868166610279745421948410063121238415929195518389969742128499313999325044134058269013095997296252870177173133299654116396911760727193962017749360806198574087047803469480487728008204147552671706378089240732519272751481414669230412469917586324768194045823337572242746070552621865876569051813464560787351247816145190784480099063437011128924954523121336965508060434177731490985187697495252181557547988233473650818218293899174232316200931354519479527044079110524001909750039534426887259863709658792964145212239340097666821916064308397776542826244988043929366297666820386892962000475280315560944942825393320609134202702062485086298803602370680848791157959490203163811402675097397550116845378786033548816553209537415679684370128908731443394750398411734018560681190629471446761429431795629209918746716493759491572895170879735861095952614442083475742747279229071702409279237077038233204564040939903932847224803842074924297326242266868511762766099902244914374129710340592527188635723407313706259422959059662027765291384749911028193764207272705704241987940768402219829305331304694565971898716704576314369216890011606814666411246401450149849465255032602135156229194439636396926096135539342960607488278406345491957802594538811893525107590625082418556369810700532571490992067741330628734695473957735198290437099258346170009914664206435544565980451474087747320814875290852186861474333532099362036338285352317372346850952769304705518897210201438192897305316472458375129270955264722104207923707367006787468360453732154181686878506565412600042146237935470122132053288754476045601428178277870635777560733839810483925544614092238782539689109322273791563218747580685008632591380893430237726777849885198959318451049735970963822117148545899305442904432854093830839506072744246140934395340031221674436011745608661793070091542998582712798979755749572952760203436163062407932257972281461793415946948079957209266017019170668848284508198651375087786725735476258341624456960549084064887563484137291996299998076687768998387309914409205613074003624551895627034896926522614190095753514779844514467175068589894962905344055133989285895476332911377012712815311177179093707483200252235556176385665985992994701453684464950210341240989402999847907733774021391874761737501914847751797426968416838203386322074361511048441822744876022293768647003696130301112962791876971435363056895814155895839484224759622547364157741079254021173232403750733532420098288030957009801476393424353147624401411399770137377619715551822685337744637465469478838650955968953897899432828990534202664856472051882886438543060446119045399263755581423844866139937308223680473201304050137908042976098366116257414812567100970123524753777927779142509076251059211639209615508410507515043103572883665119038834435938836737600636521003039945801792799721376037563325776013354555146604012591945784027867373205625514899409393946890745597802741151573275852222309933499903325425354066683154587193488722860462781957338513107412153428669988002465524485828167885889748877440248793382009252152254217889496205098825778930338736521902944508237809918823212755149272656202064816810138278550111492813662418795059234949496759696077644957666919390404149600519908003997754821232417274976757423919802645725012253550753963256286616115391228392327699515249311475787985002829327428311678288049952886587424527204667719010416507340626210552925650492785517554400425168944762585335966501985746077494776812857029302686391390219851019151157735078079701178234119205108849407563763552016931175868371381520225781751742379131899593180482157027315042801141032613437328622823723869461690657796687890642694195827111439377828349849413373198245246347259764071391860299273882191932397431817349425691474154284541496857047278111322814760026016844106744941397660944153302710696494742124066693715996481981478152007758506916071839823062930943459746416538378232893610450420685593153685810457779839886324964888067590042153302435224287004029545506664005386418058701757829356073126346064202575476183881735830334479243234813516075185254571218070303014734302638214047521474988323332739837530350724751243183997224835186777898212921704930043911277110857297686778813754317212567773144188658100695655472221621338087514758294733096341492562989443088800912260479214667360940770554920833130777210606103169233927692549365088225515444331865459380712747043514536885659410067559089176621410023111203390172328534504412154400919315224451549337157296069310841567996850328633331601877156778381214696941164815348869288378124808891962009458929681521862522180936318303218377561460665186044855653998813450035911689473952849137472629286055587566220288495764887637764792381965329167835786848350274469127284256884070710157906990053824930630680428740508287325046779715241466106184297419282254487790986366235034887797101824232845364659531914255443905949360323599066534906871717778906621277803248989466181939824678298469500109914239011852874491915741476283462671334171765961114593006009536701927864429510754483390419753201692691168542580708748257663284466658462065368455993074269833383733049520763018815176558292897708121571938981457141978194647071469234775918180078511681895275541287158559573641467508647923234785863452277483219619604760615531676127391158155069760584486780115997250236991139083181602887418365535722924483026617743538685415899090825395730708461073416426170548378614956051114690509237685482872263841434312927833002264189882693995918366496939989094298551999770321179220644061399896249316777969615468227132877160868516532528503657373527456082271390304093490448495244980042238940937466947486155818803768404000336986344474198812377785869861392794800328078376878857223913258443878816025195265727655723419891664725135898348959711856924789590656915374126175406676399231958292989881490582395490902855051817302599296557094425750381798234873121596793766531574742000687835501119625837359489753213810039953925291929307964266374555667115925450386388226705080917156804254219052650309295604481103777439026151171745871305468618981207520432960412911027357147606942219390329741058615819662862107731641287308496181424050892769054697666519675858484193993371856817068919356508501157552447529902459615824644785361262828421134087432161054285656487085939444511061629216960691412326127987109716211827739670549514830052594318303424969955037395762793069812110298563660002653341470644620884243589845366390339801934077906284410084617486708578630363617784813143141650541948438249717886837888689364053097530902876088563562021947895268299313292076778180119264592599436104144858640262481566201629007918134113304870126824779028165832334949120779848419916203193564710346786893591895146728268977983536502411356907544523300345861322806252885319653346078920295479759967772227259852173689796895471914474704514128317474631936253933478895186899869851773480617813292007152301363619641523767062958356584580680873394535223776151858640673904673308016513210023914987883576753135390484680536497733500061397752772084411659949379671970665619264677833983251175341135843397145503943200229422895809795560076105882617424683711855553092296461636067904943063241490062349183924729257651811287258314935731100481933349293626639598573506294257425008470836612218659736909831580057687096086508381164424207236226642496129659030707151571463250507017133542760411328875272142786197358458574311511380167813493667600586518571919159941661129225736503212349857950529343176627234610481293332043128293789396859546000145801402747681069005284581942892122625667575528475529165955314415449497052033236461807138964011151693497143568947513517401682804881198570121964385167960248961480371326695343439819881106042648512997518561898524344951308488767699097779819674922648477833723889243221963169933860615129724457031174113740078165460428746023576465631814846914368912680214249257784157869802795444904926183944945821489998727025942286445313120229895667474531424118326938583253919673785347511596690869364897616621338870927360675763860053593343499461476901145728066846868826113141912636858264442796173040172413429721056610272045794945484317032078031963149441244594250866437640822766330963921929933927116981804608804118009552347327133182676493762258557861142036093318151538927861589214076006677883294161874215846125504453047193110501116370802114165811347678106765581850257729334083167625951069406267532636350340853919764222577863808865776252174680801301310480264722230613299847447915308402942387492527374099892854591245418032435430703500758425325848374683671795331081205231885043719314073744296545608670713621168907060889224917435538474348387469727008004823760326541236227687175031730229230073149691714168716978383032475167563236144552696535575162082155178576267864852200937852312624924075102901548963390884644437418470917942388565668644997977977687222880442721089091614291616091332507095199766519068429223430853885143002273467894539290184624361910541150519447228572298907840520722616688197641893732944015012913309503443575582701467030234609644500089002364111520910163723582487396662158586088598597827457485461581066641874036219562635863008666652758650158519093816558891923416128074642892482404247937350823035365315135815087016409297432217486906110895189108605093455920599195634731833690423976441812462293732314959752093067515775980402118433048398285905680702233787523621327734641799028282999694980647542343346153648767808637106719843962710336622123441210333579287504611764175116986515083053543289784965542827272153204074546488926580649607210492831311324324654263588965427491906910646134164177777732490245348654668292616670332037450508303050670166118183034987547248287008064830456438540852330307015663664303125091040966411422714775772267911867496241430119494877429664287673558572115019378968631009847597412649832634200071610344623160059423808161396098990367844610230223084390011077873430046008632074897488080942533221352928113601078343976964326792759737656826242060404277620158004220873844409903137919693551406784043051942711911403387311125088376400946785914439662956498332835942127766439037984665313419628828370677301326253046297074331729453971427973393538288681542098756635118814028801301394344097085458389389444999042990024895793220448296483305236628966923627412974280125499241679226722882900081960570872677954908743746126532910702743050680478590144950482564398922818642681678692203529716463751896900848769377104910242424784867880028663511202531262597940468738815038579010296709419737346754782402422189698838426210088643386596889425625643521475874520280509405053251987176321122781813549011893030418319009634432961296958922516007517799314084850180776931487096862797826592286105657948670695119375226878607413391475822090234213323104593652848248536417245449977368921928472499907134712408940249390807677227183134253813073532327014408467216591349773447632702223876083619614830357149585731689576294363619766582901865460391149646653329078563145092090060183555156742952899368573206656412145101337574795786927780334026116694570435261904088519707915358599321391431362136535049844544127377299890756809619886277285173571954523627900525617096115909416708568578700374593155258062181881042737393678618019958846641476651283335509988809074828529038012117583024997090025306840807862656510147027034594374720141212432614783821289551757388029268211902388056450885158049297955006040499639118222864374998285811465080429865761730534687963756705359393158600517316581604898892416173421481752748159383221641579947371396091376144320821199332807077081221433850904921758984740423773097965431430368530953036951395914629938414763353495505497963944625521817818218079093064034106918487259543428948561651018439419826869810945787356246197391547852980790931007745381709938180217642056971189102496772987979197389433718829923287857859648648054469415550663024024960403844865055554210810868704819096810465126638157556280282432408812474357042224071096201109247813368279090999844176647805791076862117904229577184617848073632500515060018086205285951641712703854809559222113404642601465158254077449620364666883508901401413866327743500177383293659317429809933023627864414535768629284068849785580834073800317170457008979652402563883697244320751585047265779223794269197447976206664918607994715098865488595190128195575441685971957466682743262001894696248931260355607860374573916923132336112700474749848921749371725299365174109782676519742629566705563449266093874178342173093647298034320391187860391524046186984717019490002971550251047934182294049358703527549005275740328302372264122468478751697786840301796976724235187854808517498813092245823586854006282175682644043166794945142114957573896932555280794156403064594892090370946671391314171299575564755835008000715930097909902360572683818006579253411428406050416739932147383866910870321377731961468813195275403720043370665304963416375746267821599426842458016930099204849517707033917555393567250211768344720884930581225167164053239262723346037822827644597355123174431484232855004383217553240869123110693763555364071108695224570768060225311657612963564720465294337404226650085325418762537651465497294416852651635139853219159476375983394426193140762329912592146342750407087643751818660429834240877867825284213141447562849905343155351038292215121230837097725057979082605549901814097199699903024014567743034408271693136661716300281333202151350199785015328925163178453817798597075341370299399777046247493993756331530206928675483395399290895064351781371650602257932323026851340378810044244026973633191080172873805943314555995720867256883801080700781086392180798852942687683643816501585387766294867982731271028727039306403423902312646295103182680807467086553563784160198505290183871878938684057265966582598191674941812709291956676298383001095648150442008917903453996888890966300070315591001619372338388524470815816227089907066905152719901553073298631013279634503362397828778731024574774468872470840847679141686231677345097589079578777422899432819802611928793992854202597799087893932635792077387381512753303221593777949336760053748535256221565179998731721299913474174996617650552890132929162409050496391469843154090403002661913729731920117186887870183451645698460493371032861271895320230297858266193693632625686994149348280862215574578215819462866325071960003693313952698552580045896225485689446659504325619330989346478707772672825003167310811835840642328742661965012676194167589785493105469722475004613437824664233484717781452443200069528909859915254078305063326875365558734725967656451216842805093725814252246734151934175326520530924764215440134366167381807256405354930992688522699809914794475953516903664401299867636359123471591987169636620289201241678844366103868642771196383294996435213055180028281826607593746734246560561587825628315143973334120373414827268475378887165349116794048947303471355822317678695527148795955555746410693423025402581497456438967797450778790542435188862526752195784480388743790712110829797572591329883427060301281201851272953976466629435576879842405812296847457200650996114040465071643017402082936256147645091078266410394260387951322281680190608079943729839589458764941202861193600370986214957458447304868789178181207420061526724146351136128929179534385718331910578303780094715494338699960029545205326181360773970999929426272299687430202113750249125325111463601280729802027027543669729157034956532444056532797471459418452319151561721127035828887589657787456083387719469641792069265154925504030148883600390052824926015571836049292685877485657319785750609940446775669339183306702560285489630952074851939622271519650072145745972539098652977150126608825294860161912015396851987502253354082788629772479860284232858620981522334785393385742698759267614981887189865349019306901750581975155903876776435438138783158242113867700904466046749759649549525463752113686431593044604188064131410782987236580052925094602841612792021853499236471429952198749360450202510796458879350013522795346670712600588778257980250197444760853965432118228009584097406463416310739870095503802442709288253860026259677293094360957238194254724629222070943955646556183565088930642483683269578767829951168007937513147234031144117925808606126918513900808034449846152807978424547387164834318837548545810426477166817015843334192054194734978822001324829670556609434741085248723689828513565055215863769719483103011878074226568930566965195033363059094701922917109316402546538121436300161395860354619987896104461847167463098440237593005918388687465782485264125666937112713994681165547885038816537549282008984845075647419666423060311316972157641970664293897833664636429145951486302272163391631510989908030592055313881253477991021350446954300513017845109834846393248899482500287135601093894714783275421533509840088200757832653613875753614962113265193117296274832013088809570216667705837573900738142513248191382826901276448710741909116065763062676517703664981299304353975581461559617331528169853345427905009528819218642739855759857113705681275297255187535884832609958051444593852021956347720673874727152823009353317397728570444426979023496238726679438247571003302310409717713904437202610526077283339310443732303636564461905271972794810334558217547243770464933897764626216888141224177578572445663147407709600830707584355447743897105589284658196911769541636551502923398084878022892023734906574854916028397025556842746404232496641499278043651324868631474990869391743428884116811456597707788139327172030327631281837334227935093305604147186064543495375764563512097142437760601572576683377336052069158003284978497731714265387445196733847821248691823337983474896877924253508877454276113519277379800168565237020161380649682557757234585138855180182361338225833597782395319917361423608809179377985045638538587764172647659148470634454228956287705882818107530150798515599693837419162189235266301368132161957819747084985049424034141042501932812018328386371331430932034569636945786590191796945467395261580818350364286657294528730681390857939512174460784228955627798398110330272442987663291770110905632598195655817333965157351002963185188269196970186735622720635670698298143536113692922205441812100944937094381048828599150633377945849440449780624981982383562490692938967248802884480609724725070803700953150209600741729319255343681138657584162984672900228863517436422861409104779958743701265680388939038689008650576497680931474247552880850062862037994626420893515086238080806528811243470859433600336350108920567994169291995446372770354687842503768780221050309274765950073318458374348918991140163902183011727373262413397520876276143354443175535912833910148014144343353605317663367398849336856524524978925508279336235574712239502434519862603743016590122856313336503576357593763522626409700625481086230931130939539239094482140665633510896507119303715815190258833162417574565555729530869890235708028385475430208043106314135934800200928592640695668999231648705717359021577784123762555669746701055218095261000673760574673310297631860193898925628391326004348445405377588111529528910569491738678466590836305520257699803756747038444240811409858627850858753681073667235672576940552328009785802713160949425535288879447165529193753836187174012340247637538664651529135418348421078232810962449759375055127505172930356760746741531519207970114479468841249195353719029908999278403376472728350554272028034920656759859040807694695023479677706780182449910634891195975501097322203242309840930316245884499789101170860318590626351974213320530024939429743986510307527267026068487841375564116712165207853377072388255304818279220566591254567054062737141798677364841330102274912821798810638815881652902493263180611025000146344198123184299006142920018738693920901709036190749268488088134972945794072957044464193957895636597447996102314121763060430467865634987281448324651753380122845837915762073990346624570866734217743098080498020605669627253161233868999867105795045158156345069454313121872917783161951984829813167807877795051779224163105931684540363185576457739919824291731980223885062043198440365560671338749711921278146924027185773748253933898615885791577521233705560891551493017847673994455681901814574888880502116630188178834550791158812233350191131311057507664366709531963210878074625856641454832160721941884463109341561782429846764038362366450048537878313833519443123675563330431150395189939186777907819556475672147878506593378445772418624457800019044021446703588365267882206946387591026729258995747769567430785968751463045554679586236994177824702383558985349286244418115189822246935174298056464021992883048054294089491948927993941098768450608874903659038346073297531988745596214039439924413792285107349915993015135311250386716183577471951581091289152448844509176579598431843796265938450927377709648349239968475542949048842034460030392567875066759179513177745014752857936399746772948268605536771360606947967217404481866253252970100379673602841678469160216128114561889925188532327926680269920865855603902058504993488197164759272841979654524532837740355061339339385312427555440052564087818296383815372855069634142102573727480519616585292912110129420558754927566840746374609531874314643904964482523668911030896381994188766677281485469927101153662941113325180532411331971994650767488998900720504294933574258327571949533771553834818632831937171195475202709052538350103536932420833469867560483575182975645870551350820948315302441112667504968284068664153287355073695732323384366381353868910558612363684560819041885707139033500109811614798408715773342507241096288708912360098178060494934451442600955986251307656575950360472795519836487406666410573262150121246395407910586479675510569707191180823790888666725461065915856550895992065711852263763196615155279305008946317978043857779752149472600358900436644139537691040489659993731674478055623314601307631492302024124394495384783259937919159557857058631899191757688818989985987416678890484458139719285773424340886120686130984497103669242817390512346965493680321967803873104943832372710371214461303909193636046699364849965025838752182496210846563908899830944091235086178630187283027361524749174958310383376541933345069517575157243339407007520665124058767803004882043634995899542475637327396021373541780455908055617895297786518663867377565710430573638691020858232661939124783415717650360192651438081194561160310469491031191810782635478102300884004685154285907452227100175432809696194557359070822297756732154718365503954740458401644414542169650848736145773556026641938417039517374894991873156731133482295646143065163841956782144132371829643188130509453628111251830775724024034648265914951355847296596747240788358509354255665571853979204946174730259067468225569954195291808726994229462597258430178722548531528806793554798935312189396223628779316536790837406396304312918352106924847723942553607437798255640163538241615861301834740224606660068555724011970735345955285773264237719679121373485232161850378143203611048835664205494325269572500011904004286430358740123358852712094504439082847653036905904281130937339443808954380892739759072594915203277917734114389163787426691190058257198016902078542592419959521880778454624201596114617841089311932461836342857163711776754727101612825485904164697141082363506911484260689722343676061019863684246820523134751109672044953133682352793886631140119356260451060347234709821983466776427172729195696327279994797923995564914215055949429483895384092268977571641595269839277475400257384429007187934010172770152087789732018500791713756578673741860250145694521897960701513400393208204033501772682898097402510361771290196354586023865277402969550178393761266527846187378526526781213285225457048302336809926299433395243702246231277803487204910949628507139530516364911953502643064954832735185800222273756134455281423761834539083786516830203423783153394726327328485801173094440621277406827926952545588949945286544467221357465493661339809712279754532296160964384798806963975950731789766236641372659468156367489100939611662566335793106671287541186735766673391289462453140063887399540411947533455915429118642945088178465972167520642264412049512269916488292870380723457901639263013920661387368961836481799634614361268797925624938257644071431433183016958446478808168989051850137229455192591340467400944612352438831300759106966484686200152345830102986691679265786691225491450614330703570719745019393475481116541147130445822344211421506307020138757976607812548212895688662658835161658090620739683767152455500427002694510074015390944447073622557894598699332961009461154102106704377619659465538465103051003991035904319957866906367360477055710332698464573172316224869358972223159314278582651606577453627239376584213222328493844880456478419450162196989244409349903362626739178480366863903239229294636097167753606657092425124789180682466539783899572604081458530401703076353109736675005942020934912910089412364059462194061554889276564950519469189862626256435190679689078791144637043665811382963640254695287654603888739844704779156483623853339289953453756852427568060387560024833484852443201610858200430493922804655424143480356482125675686573164219647431828982596101760302103164649734592818265773288207562457368779981121528936812709514256010032112386424879414103453852711253374825377962760078707725147982634494387226482294043211573995508598631454088545407051941130797036537116458286767161820020189805589195900141912257469284720184458736449408383218084666977196437794147695207340202120806559591402665070973912223198233159212012346133336078446174098614174889991470173950382136401014018450605574873455685678040783582792432364625812048836164994011880777249066121281245684085835762912607186246662637513823877452999517715401423426986996777732712523136732852300153771322198031796644092667730798112453264153250453533093697286342765295788059695392578085615450956929633058762711560119267854462403951505598170809728898691627953276391402816260588404366254007551176551635405817312918448800616121362881135222671612001043719611865655204516865322749307461254331783986955245822319556513126919459742479559038257946820918767013375598929735423868403666790152575597626741969961992080133061499745698355288241777029956619186005538397799873490811707692805595266776808605901376683948533504847364527410422630002309059857840281547862139815275430844483038184489773263534889240389202982544481129252407798274796116647234664824491594832299340618843421909254973409017218355701459024441589275467384057988350431271691577584338777144814219169875022310973827588865881894512474100026963298582194627733815276845618122269061220629494919032132782097347581619099798677778519705410896995635318507793205232005153871682491089492643513598488923739890087531078405419911071732855155110837703929487368686859279685765034247644706673113397626630930459424972314234931148340681249849374523292345038681162123476819160957222974423726253793467494123423600305278637877293509024175219240670637312233647467592110656334254960282263051869392492419865100385788459222630716564411875704532927241878849936675262431509539344843302073955205618609047727412563391304808504600528422235835954413939980965844820949299056787316332295151002124889842510719411481659019099095654060875102390405391202346388417936142564152476919595490084360644298476941441413645586840938735203210338881214864800730456897885597990686627694381329152169056896232582682302925055413637898245914813788767990999056526005216305024537178973037251945636064285240223374909062783864643628982148440324629881847213347742237673904076588804938866195215847358730110442223572997733794523005198942459510285395979296533820991146061006216178973172217587335522024599795299305460744928901147325829590837620128593755787693773315786733879359274987307299368868249361840311280863273407152468747612146772774283532157692117730792962171908963364389397233154826614471914678559259822975620130474848563312440645389707937491352479977653102125862016566964979554866925565855045168591338111151567635939449133924881416271761967358916845721336823685101038770242346244880824641702419657501193488313924628514604832216209942271482465841962986734338150018225171880255773787066965190946429475304906549928961922201704740445346119375423550582005113668395299500686308217427248287749863441376050190971563049445903877101730025810751672207398775753346636274247816598495972386975970495914283913694858172843971685514389335821630299306387109025738549496078883051928763852938792650014962402868526365630299525759188078540156429715084589225196437066589582792661880684435958529711110965207471323200186588540664359436344806834631618818481456516964172626260227368169374430954327885314942204569112296446845955331730231494801022630422373423180638316599093971615931547493297060892166466871314468403036969436467645230365975820242736893108734658561184823697287536828832606647999959235887337307887891961607348523440951630605375484982914756534312045633330428914826224514839798688303781821928947919899193618238248668238620292372633209417091545154825029900487412153489076216016687115011210282637320150384281608128026223443289683907900632256407090322420250324391543016790064189677539876470031057536864038005162839283698074483404344553094755848637730381347565857956281658861299794729769271906068966597583364152035780398310129482059119544410462287826704913245677591649364091383758372900832323009371145124145334869943582139961146184530045523217992798664677903536719000297864234361599493448405949446203661647614870088192166971907917508705930509925552045964308617219656988036544652342200908192175804788558749235562488875617972652871824891662062021246479375530922811823188252571025616282240656599752579760378627596437806407768853736586720035090194248710349243951126202100431244363594958020093290038479500425982151942212389926423599923154488515052309366686664199006411747984734157744876374052413987549131225113020238949971691991328293685156303406110338357607048823577638891729890993746538811468048384213836301172520011610027695441783662724060347078008542499423224536654543593758754999225428760605962630639361999223092908862028408368818790476060396796136222110273269296529285033763606903484532062933497467116831898763808072060432400413835843010558544954881977322564253283328796357880518814172991103164667394203301059368974766398398166143931636179514369123874328165161615846298742346096047477952093123839071069948372707355653091742312378681023507238649821202439436112261422921567003097939903040790456447268698327152613710106981733797728332863853053498408224073477305113869221916157586091430071646686530535043434929078159656986665319751351160857992112819646168504189454459424215098923033772430023962312784900802423006516582655764222977959720524835907775137292284733868316881092926116904444016413487740930393252145250830814795935277453949323836220821955405677076648820040267588106056348135655590893179965348713238933363425103807725426621156582533940195020144135548358128567217024773261004555870171482636312209520299523149320939753152328698827824866842627095204324179274054768064010317872685619500933885960938940017654581594367207080753633457953328112730099642383829238204870133263589501918090612883025031759811611633109472982857491163079558043471086334862331415663448657517857544146651903103354942606514321427916113445241272462885740683215214344528455556750037137755167311472044355233976893561001417873546821159718567965203687708014770641587656730528007615749079115643343354413404389840827335597187774141735293587965435036980138695179891479562276737744748151022867034657775058523709569962517005251225457092901481120305756214796910505580841584281200730122121185139942447776198751350239954655360097965093781195118031645664905295246156669850850278776433302870100860135678961948072505425240530511798161665390225637737427823795192736905281949106703922567962199523985626427726599458654926335492522119890954504344965268246453620493485971661177486268329201504164313257782816984199575811318389057074565157580478246399685525623979889149389594415537279057528013151921687345785733773358604159343519224989681631007392274503509104641045974453547782435806210722548893976659647653315474539248383579709718853243223525087434489409341991779673611212481326147790384000977697492866018067938364844320129789684201508508371721270268113781708558225955908777261470000823694473980503243643518488344089066383837692345460901295047943645736118431973380626233580760270301535709126914703438690871616034968208872884966373581392183735229021936033610914190797496970389243821253743869250315091958762604779493864351141127187065408070212168175949261157874060806162802292540284375450040260603668761683802819674428133923534527040800223100389044483447412594936396964876884580700089717925689348184997114297564380858345108317807855667278085005392007573038624293603308373792459767125218689410071622582081625958496791055663420595692845234223442701692285153657688981626608166013941107638898057661841015037919039777775802726643287238788256617525436583319466454940478587127824336122074314920825987834384853789580710098743444747875225338928775522285934160516226973251970901362838902694908719032402955958184659979962873100785332143938098909812082984026504764307734932218358519244798165702300977107353187863086438054477213604884535538657614127257762920596262873326850679355577184271860071151686957762867770584269660222307772246655825590270399418186509512879520020714393677265049041726620446888708479171545975551850816076029275129633528244452233410628006723036909636716471806929274823339050522002542188453341380908035281213747853746621655366593984199533278322179839029386655793474194202450701470925529347135350890977891495680121550484135113218951186179586692572647392917429274186966728623694542154793861361207124346425342372255679488036682804263310543810548240221998571720229395907219611965261330886284187055149542251361691554136741834099771282784915700936580755072036437000449354283567274596252820185062026017354049820846238502710236218869526690884984502285847133642545088429735525454519304923982014342887901932495123023659459844752413264274879633458837436167532857583173179638284826311876217972902353559304628265527632367550777157078369982224369526268395403989141686675303924183131171955463548311404197407456461824454088900471087970231373388263533881750700007409197881554778059321137637241103807569907025501311789921298763155343528172688568565403229440933809753997417894999093737041229719391156305305453717590338744767921541178632655569031334492193776895781934559100197819667764498500218662589896071250709508733505566928716659001244837877892786980766079441585264987855673392445483211761311867583991551927372218678318333122642267321948705728587675091350539585338042341727965314007823407937188874589636410438712381096671610410744707100844039909334929782720807250219978776346409788875056488304192717139385691875949547496245116155993077641614604992967976526461531447075339362741648564455513668099205783433576671368396007331893096283073426613102976481954882358063304467630974112082531211221056642758921421977767105909467052973008468610847182501557069460134888485507570416738569860400703277716218197344625640029418621705103078514325372606422965561467005392496697083332709610561126851325045742183218155883174487387332231057698107035404156344448099927288871672017017452800737451757774436611608574690405164107565347689788145720167770588956236118230362734565351216074124442092386896469910589597284981917152066634464931036994720481222905926746025642313564282503588827208983351484878719181665542665365907847578078785328473752742233445475036010835352615621054964564594865656995236446212169198848152064787829103331929527913951176991932360273530208329009719396539530448909017544773770590045954924442274489852315898283015610257779436917732391468484939211690293182063697910859661108125316628769609872644443120610594489396105709210374436613265883639538076541318490319075947543842536757879761658238976221138618042298907517189145807841929661101372704390737212767725583754676996508383952119589382527511443435823407443377477657936831005140480403573021942289452979079343424457087502176721568461007526569305988382500972730128749196417163910092591474160634441141983754937935532949721407562046539526110360615685238740073514057072281651326255171198629086246063494142178621056942684251472997605103839834860858464821330400154764093908734413456374953210104057465373216086153690414773986547142393658469467241160287337682243619496566454001764995823891975009155151736941226862426759535932115424556862487345728004544198655066440048348723830200968173563947739592220716794690106101304090681553484279489537712040928457525095483394241429505200755850136856924119953479161654348940165581810919459104447923194089383039876126286631487245007379990717870454482559967910324230253868849421041950655391140707405862763376906962734060930647736132026321199044688050496180454289545576684795364304338976172968763610507403969321162040234619887393132023819929614289865445931614745693486008572492765854351668265818868351384138147243275977581999332192997864885904854261360766106842659438684281730021388519867675518802842519845825929124585746701683352369022817328792822129622832374174773779233674462918896973627064878988802382391490675583356715771974317487976919274136148217081111371923429999427636740359906608182770182552255779288129706609734555353271957074541887219061427111720768300648837149315709317242555986486071775389571152196779342189019770783599926796526405644975646637977311436935891560641774075473060322066906999148671113861782755635546868494260751872430066611357982029409801972576450673260727555704829873431347025371245769097700666563155418380486270014880665243235183396588648355824392569150895559764113903488501862308390836645180753092878279274473821316809414716274848688958051699325933027796933866344438376108857077133471357430618985592092563176094350716541134503705263220060021844525810459346847893621404645851467772217703455037137683565196555611118534911370824685732317872332171450995418794783387424025774016946676607335186918248691232569777986646905321697659089362507388240206940660850979453718753764466988348341856246598303345548571832801720888988267864011654345790334574297279950962058415179281614853317117289911728298993956506727858870099577272338587622974814512675303717557214125985639973973069172380058721341746199848987905937474255236554216757217681426389825226323178971127880335805749318880269538438905220404666032313114478069548794622790177884347211142205560157141900613445343683610425225655477331412964994773451527580020014432136099435525463898414714232681331873194414931490847959855899768148353962289863876724895991574334439329390828415550089820417100343732111021132436641257373583638571690738252745702363107438816569608392810220010770749588088273186583160743041643069347591423435948519641373882025948415220330719164195258735243355377846766181926260773184531889526711504117336569917685107381907199062288073262836600816139995793140834049197441432508910510339914096974486235721729892474099741612561505793616659474588479194235945230571028506358282748191484926870136196896566553411813198401449427756618853083366969605190737771111482451755046094523020296849273867100653965021172636767089516064559775634933373534852897837200136315116605616694320211602005894747162799997982390990010797680951034091031391252182986781928097615706554147312623473715348220239794413595320405493053610956476009506081568488442639945489510240471541864636891102847027541086338821214514672495608856451926741113248739225874817703721107602837404547266697573352599280679080673000305151844443254373910846376701336426706550104589653790546695865700383598220356800505475412865605616158272024135352524651443254672746736673632580178317868003649283439887956988134986789051498291256632093686202327631488726982175464356947681836661242962905182899364527178911866943021446805741502376805749701735415221909302429696479336929076448150967221804911313824459400017185414402575197757622229855367325942010821468306616129342243337301976786561382275676658180024494986421181592487914342266592134988604914251573020033330531966277392307281719173910294004406288316742109622382035195368906431169509995316010099081414037313633428377622628874824370811631280930471610846597833165327099660283983069111807536915847615504875201946699904849960164841860003053320939819685548861087375773794336348825712876854223341573362743595579787281877095863056928515101201894104763348653638762406729273678451997651216089468782404224950604450306842906468180130550513043431446270232148313745039396766143702181725683136754050339803761287757220434337563194369187974428214506810877925381840030167582351650804672957906234674111785433011746274893076805743353196440079668864994494641182969630908302599919704770962354780094411003751418288290427236337379148785801731456711844736687956453802628010917952398181803201907711703336690668736332967959525607914266566917714386854186601233064960335793621049013980222238463257141835604343069168466700845701338567238178076735760226191102165262826243281104466335600437708663632494238705122696107353782035271588942980464690733441324566479833518770898442799927561823322978680184943094261663070655368667666738878966388281168669078469384683828694196650868979452095357960768674013170815584634682377031395325956177591914990176700115644357695652583452793781173471088984721084659908479240091060164872719118460440925079919821000352802764039957368431458512685442279864030171782088471698728945773560591792988688997780111583848388563530222779915417901971426343380866811794863355622529726839898821734929702989531396061075921587569620235734686163868162317416202255221977707512723807692040675614840179603525891932306418072615264924425025519979236648598532579908412761197139804435513062098912309902237776499967876351630409097695656944999459692274036487105919728407382935043141322349751008090860161144597721255863612927252356945448017732552051134358731931042306656909602503188944702444631372357188916005031293906596095380970317117187532819964705941648382768855738811076617085089461251224920356732199638431104831075624051569844979662584512399129220044209767697876791185872910942528261903920673385809133577275193317745674070253423790568024792310139489554440841970268752072552186514976480424230629857671145396381887569634487697229451338477576229909581414359305191370185209198791143559469211766170705322244843360877635066750966030533855239932995618843965863009114575645694482603296086385221009252525274402646885950874613201847482278082556646186717401107575857225062843981394931599298407914765517849298623353052944174762845640946548359059457188120464175283202391805529658611401745781702914646888545415188398948217351334045183703398530476283536477803059160693124649380790429132551954925318399321152180152963806150163474027651152377539454405189391279159036583515984550756135519217990679636684809343749700456860806925225490601722622104178894749252215544119533608335122929159503636532202103959218728366270162141674988871317557422599503897831763645942313428653925128833304102285078109561060829714648594119895466055319343274298066341006879840414286024600614672484339607369985529389647280065681088213237311587108579097829597231763450985460695876926025665101300049178545732057425034555249211795051942492713627876101839041669791226973144220550970035548904118990172238962448571024148909396849031417660599721286761969143179564274295344957050084298951098086033291878379605557007579587417629956414432947404117468440227448531526739613729175525767938548623975792927961544169285502925264870649850106744781947367872029719731009655800681306680672317815764510673080830733967011290433179172227846495754220758115594666607629547656671814685277067654676010858914509682397966713061883703763494638217523744494007239761375533159995368336673455423310662607753664199236781650232511526955009686620522076615947766224149676012711906799292231914173786724578715536185204132394459891622621982722241318872819125164963282039947182262623583072510875522761097403351990922320028261454116446384074276125267714720571977249338221800133914963421975289802294449074384557746618695893493921501602450102227700425113947436190502390985890784435748151102134580611500657466080582457394463853710161598691161152617147343008221229671232102180629660335700577954645145017922092492182502957843501488107638671654870048131289834935703991224140320695543387485037013013479873542122839161376071491796848687477751598434123803080859485400740964116759758869951410640640007440282833570257949337157888587490956586233499340291839610722737504230305490824033667057475567180584884586643476462723359761843058865924736782447949116463133079001263734215264218027646993704163007627138469206705978028192430975881874504637671150979217082473785894132843843532673314425654022861550830415318554940941420268799716249100640035381910918564286128683388485595732855406879500724626038054314957354376071783998780739853345787552170197082169155611354227561901198705824534517456780356847278508038365711053795220892302029270961739314795763218196678345094753425486637597595396701270703477980659342529739702052210421083696539197768624158984949972099891815773077038623002626430828266705015874979223854309249186496815882664116645822363220691318097863725594755395586576774488867708439801233512188746254881485790696601667030382040719848197916059874819089367277751610743923069288933203868438327792561251185804875271929286988677054531075369347198479672576796243971160606779519304113400972906278895757245910943808704453874976352034643224823424203854857010317133020065197854422416418003440974975484523391073030953142317826212584325406795708447613857227703335893440887124004296731894789144742421440400947094292364979327761434652041791186133755659496164829419392768292679053297615688297965300180376553505370156240065143641205763886613584011011641528218324885400919557135589615099741607185516738206851306944388815395312676228073852553167941836421637849890805932701117715151188248379473958718181974305561153396670563218047388038897866823314781007682500616956857187138402652552965090016899521989747966964090802110543054594757593735805712748737109410305295304364235024726005967837906299935088880408390210735009014266361904518269181567453117236989010815856370140109322913577645887415260268855319266535909400618925941597646672006019941220322296523995460672860063200302281766818807368944472760339196135264242046760600118600519574937108047057761649829950343241864577878951834555961276732856112294375169230962601414760127993088925483058025972904218825885033709076871247219697595497904908787152816575913738465125463906488844787035741481185235002367272950949149875020970614868035372083900070482563651975234779828505275317072910207341622591215700707671546759510040099518806907849556716490329826599397479603757849235837494484483183931787891260486949150853510119204802010597179282701956988503015463942817166480455315198086700778213098180038163724354562242258867031293461091416648249772920896082163791363775469229889561794132889896394170596509652157333111979175392851678067992856965383779100485103582544391448212713727910284800808110123575953998144118212618705539168319959151261094524366560571219109389656155657331527221880656727671595416338788901034985345814176130530728203358028255477019891271110330866646431707644022052738766769777296963167882256249056895451265504279821161833210315300736582199385152619666105791788983321885791534604820511409923280933379316119150754964094983459275370935909599939279631029034837854568916305134157534911757771204726132767769764417737047186594676599506046092844762207671783370967059234491772666491189170279761936140183594524435454545792329845440005934696157049946031614410039915149450588174772953974135702497056280831378715218915982021271976653728341092999325647870676448680013870825023707176269469909253183509395470122294269253574006474551570052662457803588493105623746580300720938838537991265322868178218858349967808348976614956983870086456400773899086521535013497973383864347852487117547429167277245507408765553540019485516023321298090176752825094437918525801167517521274843729468339857712944625681408708008392341606302103509494968420666325433371163285586996868009484697822950792244580486755974123985306167343574285084433122741972577487995323407104409289115808147839062954580781258757440296990843327013479244620111597303531291742580801833599177882805518963091813574072127556311642900763435866231697499262986753271511077584818644545393349652251030256501938807416216294858368351034924208171150194327893230330499526326535063717743693610124188866635346104870700552537083173806930707569559208682067302899298831519304837778863753802151886437181032026172393811762482216603307718973657890889577945859826964736533805584155641082163043934102091431551596278599826139416897079328095773326499380127697845784547276368514222939891720369013709295049566870260487087683485484507647556779215461625964879519792954051087359567309685398478270773859382987253285021751768914342369777011372663861321721197068617460221050014399009679571524105019422321249063700233355522976211328795067396173368980218540970014039779273408981404689253221415972596081656066566778693285650471166607177499660077391334121377471482399076807409351830520573726206866220693378593556960310867038467357034228017532788434492636260492569493053252859634010663745579130162091386056295808134421355504937626497407018392746362523395657155628436509671032337902541420373431068252542720771919732147896584899906508213211837635717936314735852532515269167547838566235464980140967645559701910286283969702969343223460476813108395512463950304309407197915534604984448663975896938850468975677391937256313947260316001692083673743833771233202334862146371374110826244333798233207628023075164862328113988416877527251341128431499717596648002282674153417105672001953818188140363546729933946717695324411537241089309952415396993331648677002157023291368519361817893374487753126611857106186834784082162795452319480890872061491840272458428188453910999894715636908503027166739040800679834256694869581831162242899083221815942402505955074689528980558209002432269160514275898560016902927373991116727681604395356889788675110385448570212394036578314371902404709841470151238059488689519383891770772302660298706795376147103897543303788473845970065558682605877147201038888345606097528134736975827490457037660343425471497054762228330770996712796730761556953327055851648437825373563276519198552190446529970578920158061317520019893977931566712115346652068615116549183482697603153119634883441544131563886174844732538104713491798915591266265271205974508749902137241016108770935798848599093582079960804184831247572868974873921426777130483014177902309367847439951992063823519732243789488180153668498585926797300651901226402861856651229229787778491824234143973287909122619415077778380891689241407410574401976786440640073782571768238536092730574858123228195294297509942860352925070426119552180786115585389021505470911280466205447286242992975663296559082172518133942455952527778420550315490339221715944287007916778253147969491144227195780759106584699893374723472196261809312541611656698679925029292461783901893216561850216003177902057163090393461102071591386495441940306038403419933786667502738940879313516387387943749228888094241145727277677205325048627119164918127585795334699411923225504060527310198170473197108978265314799414125569310512560139410827354381596181730036258524493748990690191502219946557431222290535061557657157580090873786961086782594806568792896036345963829414523938427114951465404917289659853946329668778995293077611149122463728498175017070529717952443503281596804080234536634443861256627966619376932028348240909228381662715171903914723374869502925779798039522545800682498544085167629871764535236979188498863183172828854424517648269785091707508063795706631390986182816006961483925074417306908029562611447025177819866462698963587218821610253559442109519185659289151565283016689470403105608718811331106110940151814751581574306238537815779841396875496001596814393246429244040336413428732410910073017779805218835837386176181764390452598281635625838409811382925325935443487629224715115641593306529216011555012593304737206283411058580898389190203191019388227997443484609742255312949911689906776040542734717852065564356293353307827621686178894690688364068630595177991684968115227253195489263860587516219964059160793051345929101591253187780734934738805621175902063440988873139189465872038846227449392271877296538075679349243864556392968517621410899962297158524113789370824073131331481205711962127491888255323283602170754504659766481648597917423383064809156346096564912260984514662443332014027621679339071173603249209354199068437871740441189148693117655432827541099318212758602629930295316184210815376713695401637885538932225061117658939274564506561733972747077704056341159335802901268211071026940860604825660841474194275701862890021939864743074633492671291976944444037437775335115941114382647912782198781330530800916510600653665932677070025917459622587967278961917704570457176094439292459922882394395009344683217123939730229887655450981229009216665319872034614824206230779125936841091049754577281820381200248391033726847186269440648870554581070844945087122959687058774698064266144748790245673835289100705719864178284721357935987636293853077183853543084005983026841463887244676168597616071964487667961410518178380979750389616341119108206580259399445840037636392489233219205372039800791567314439942027101823660832591231320860726852354098418612433801497366367575322907908443516449197304300598312863264795504488701610081534001130033652207030819049894760491673806854836671392903177728660636066165803980407050744048891715492683610690902988458777697197288520196961358902302249928884515825337508508818728803583973211732136912289341324179940614589108989461298070126721738146400702921978607963042592405543567475588144334110969325563348143931415962491334587509101631030507425068227655204790204609138772621405063009974739652722817138941727097534153561430363820333461034383917798108405254465111088731076254299314639831090696918106485360370843814480289748029733248538647722886933141149802436647457607615731112146953432510245998711470155194299289309729278969501049266295680203801148154366374800615937615106584181194586341641886419188248590276209621236548901947717156702278914838326324604820025827852336917204988795291955260231070612730767807320869539647346455660434818107139688387564701813882355879291522606824110196691036181888166653810953464553196561536682704224522266372334883211675792928064325076231949453846930238984081216749324539354028159675465151983878838123424974921910601669369523271980314772263359007540190981703417985523188276799580912901774879384756939297635648079211692879846673873106241445609343756206424547309404557100534008030803533610748614950063638165889378437473707360559049097061919227686346557072527790820890599255264465146902053469873332304385755254745478877300234639751736287475367668027298075573260376292387802196618645412698396517415782578404696925895785074290313802788425254969088734719147842431444424469515124673145193973588581576493082404647146354122098207399525403488241735723349785494738587611734378740111255152288968609321477446261153923648768407102409084429687792400795408927859016986488980105710732927166054737090169727395287973625511501060759985461152725833859268494089865070721961176900398231684514426091696569996985668265953663381450415020196881022489238812005371692672606927830848893861434551827025015129643662963517941417712086239417850024402091145806657123554159807655949307365436716279470464974077516774421710755780050661243888901427138343920534817887496388281216206944636048753147977528277166307548756021913998589320437392627948367508431273935648665692841472653034372977618969805292543715569750745575085292164177656025681544834839249743192802955132627083269960306110711250364446046469346042735064954657920529331301977544718980397369184607655421333164152156581645012256832847265467759446745541719899756736864982857329434376684647018992789770131329891897386117496511691100154561270320328779664519262931758437189778365749783657094556271186803130103390008703305209538239501504289694835781092869055712799408052750516636501123940175862694597149794206839137527081206045709648952366156643651813410226853065185079618648197993470899279809067273276546481783325692294313057817639420275352826948061068924494043863672700108204563165661699661409634848910071899029520429139567173001266320891387726082004734756696987236583607335365942716019007845458098806216547354122736231135447169448157133992621544507684528128138846119873034582314263186938101731190402017061091007023594379366412817518130661771438592407025657320139061161541833326890420769204833949693099684120496105273109545676125584088844151723675996942087143815425816107310826658768669364730034574626844621453287845196481398882611204852388863019550639907586508192885246993118705471415951568898505597952767681915962054754566169407072646555180824067234604745433136193932204349631330420436536107482752973732017083789602122154892652385208959936421903429911339483183945807008550286920328891380253791691074438043731801212985867583930455276715343075125879794624466282205450639856736904033089569570978666379758981395324373448970530941121854301584000816475346155790533406653144387744939881128741584963900966375979134049919338288565823381127739506030255621419679113605140629693446799446663236268054523842951846244154727779094396689899942725172817438708947479296352696341785257342544315916381169439602863535827729833891528843113806237540081733651085563341933192173363656779315069387459194136808392433064773228019403725465836638174228896919064153227141611610325709972722505533713899365748973027379817111155091301700985651605472616750907515221946211505680413346443773060414142323102070513509647697511078577562791873738043871174862709244387215688075713328511783146121704276373167878140764941392592712428912630733133405825042401510259178649292469981256884831260365905904776750304586617525143516594230844062036220083574260870624570712587297282650057015997976758426876793938546827406338878805740291917912741284296106706270328617917352427398849549343092287823094784065435294072530481792035154556504287898918369597082486063897384141775979112237106450169380535176214730966275166808632992272617507238847878756052779396457113678547594503518539102211545136530326306495794111742266872166552212279309789771732602516825178660725686732230161520054292791320080660159217210752764918124253768874043656701025616997337677028599025849362431737614688068029357420148278417884107420698230885969166543672243742719156715179805864628569048465794047652358727164284249476398955498396512051798698948088291808662023046806684217702537446052961964033031895587829825401704898272421451148646346387384842776803254703183748472813441621426265422362803110975781176440221330425966851408266568698846549878927738893597611480004517838218235097352612995414758103666224574983086992707911633245104772924128396041859454730724924569894289330208269162932115176507072786388820585795420470582325397759890304271340134769562289929948842372858222245625209770873344079882396138308890434647319710794920621993289888926301997385482072964564295366885834207419212957905586359633048550019864614168868883186900882763851374275116698092774980983974686754559516947939677152633203617830465750528604203437961858819762006621212412061364043769923514108425824427819496987509134126236166121574690605324290154796546604083194448039311963567113404453662504630664503510414848256999008613116348150656417769238562742097842458814061922023146396844401165560501367266098383872340037588522640677449603067535877951441524754888185191974731241269594990231628832532581990804438553094064019230708567853708969140698479826070727831449269848898540242527885847661991863889480570049991693090415998577080139372728730645122121500564854630933421202738833410207149906855837915281231668099109543252249458209956570819570680649380559073839014380243278891534531571731128172328515434520225923772307822677943691845300003516640307925483160717630231335768134853649838329544651256321056550819174328922607419483976617269066709366397293910510380861640943912004025000402252614810155989598683007077134914522099784966427123187303519375220269702346230562691963495994500109694130066554040359982039630195429846929054512861596205460732599423267971683989826500378276184640729162335726399245959577217758448706001619264560377733963123333583461254424991945855290197205821447610999864241186765003811360549150745751692841793965341230859198445870341177453933059876287958995756651555237576758988398900759606802139693795957028359543401803519731048422379835335052146340635481475089373257942270775027307285038734177092508828874494621613204687032796844166334512770900832829505411203697487037452202423240147173134784013358077395872989335004569764179889135078159038382227736569603801130917025965001579441874365599375208623403337477836974517996543157458784836810814095243066735327112760809726117449992502258236606659107142327327732085933725725387437950597352059691771887170578905741110706069900290326775334144817643702265250286999227477741343189383579148870746736950746253043172943195459812469495666842761758456304470166101063464961683327851751234025111485596031991195090881791595365575588260708331818976635264695613311646276869073718322555950551357510275611143393498757418741736301680978718089105778534716607596292132525341930790674345697498722807256990842729525220437836139224089132300468594766182696344109184793633183442544837722474055876768742691968189070702606847538080982021535758280435117157029769756320050682884263548480177108549138837675964245180111516681553534530685637166520366011383757153465721986899733728019238546440804271194032712634564175079697339718222342210864615441725624664861846042044040439422411797134041663686093092419473115055483064662477704610836547095521661326135748082947833040901654865378807992057219831703954594416653195473497794521622702509178054506774200728824170661135005424335792353871280655903406041436118961069855184987865878519742664389634659555358896197231932100864883153550684721378940115616705432679020563179206883582165119643010013317725106624475798050820605552669052270476992563282787996241698995010019443319978027616783172901233119161059172396156500778272475633039013813389698035454336065994641734635949197088781542053913698872036553981382254374728320824928320775851235111654793383098943452028863789375801990696814217574315731288291677326285817823567307710776227019764072989241674781732159293548184785585254805604965001321911608529085081195536006355258642088241685780825960358896687977594221992224747619028675741328203535790920062952317153129214680712400026188920533834674029002715313660978315059043456459899439893498995179606507660611454585477448113658524657584353324667521267211099382869829885727596151268072637152487105714452093606605661937870548702247944635906335923312027187647708966591127086107028298552662372125225482730383137550649859699362404244040127261248781436485392860786938607333926396125530810745888686348237138909872820072477878389135753367298231351928349277516089474426205294991055598898931448444120269968649759601469201112872537165568521453770262298416546818954939641744434747378098507960537849835285279952980058477986758613236038659999870696459264126205190570487233465999362460981040206653830283661372225155976922220131724328886817503456915799230809043535978072965892938216079513880512307385242357596660395219419915254470874929824617863583147281577450555464030016626746373935620677041559712578675395292214631074022014969194382898370917087025309017020598615910838283191732117628388700080299735946780647593097615332441014929819468164203003886793245403811809534815502736127867156437782052253572308197128031960856108720521856930939734249070998217676979260995997207007612180601667757840197367459742529032813956030441867638916101159670815906583899315140386141520331536283677081820398373993417921465981965233416605992230257534670105439660727304685813703475287599509084916908813744479511202135328680790919196348316604972468568754322679816428590963552554563342111655757411271093454695087716839309743693356827223394384939451276366815902832246759086467769568236363607603480085540521234368662420411962658013440770814437276671695682672245790653858467346179572974568907099129477553286157556263713025099601303390731330401778399795278229046861700994599863627994402477927805116754334969655808196724605563527638447507432824157160584072055482867003090387178312795958226792961913833852745348863353160525566872975647128651103631037743181867706586804285000346113084875836301024244088168926419331980527432985138229435110680557541393341640099447332374120797416233715808680938841502705093049585504234815210978679146205225444327138895715175175899652243919961605101658284672228993278058819142653956330625924234803003281861346078044812438849569193365794219452358790164809762673474467392068341245522242682057151069221073313180384677326462189933465661817148949902890985357957160458519155600676804697478570951767431036690528132773841775269014671870519936249383837126531271880130302659342269292583948795786353597427705288304423883882270109296310317438560509571733717575508650152993492164762191765183051816976167672589728207157425768648660087204069284870441144218555212385694021539425059788945773802344547724042999799744263350162803615595036910904496069035313832612762891008107584607011403352368718846094881031200362671503636090999999134333077773913274350009635385871340147669034048030877702495395714668631927243592015014268997447321161737979932064284800369672248083878144605404184116912036490326919870628880896730069469398854032856830544906201833912699630848644916158262002341523733460860001110102914402684444381064925039238710228996033783941696389980530049722383166061179318742388103394884867168807393546149930459532298751186464817883683409278232996307488563962543297214144543272752556468414683045883451013081764160703718107353041338375213059505228326743677325591926070974654645998764310379810602165062376020018731238138573727403695508406614166881611646500869670633907013457316394120827805805021710364482335308832718648791994664143772008618677344945844444782815087514153331349346695197242801758899135812246946782627972299176226092319969699868642533634201432285786085438587054964413367742666180178189300232208556545892586112239868533579855390928345538740225678296902300725289667469380153740252963508175709227955072622452503091336033257588705741165810065865970611673411941140450653808908667749434591740786762998099106839544058340709741664126954041614488405889296288615574898686472924982583771018667068004833183729798302285435334839730382518878665261504632199454743870335449075372309484813352782132789412342050634080410971608344311688643281073487038714467818047644017020580536407226019438228855425517535088576502353159333985583013399880823124084623175024936709789147738971248823572686518288971545742529560635866242135843138682884420680543061489544316183180065430032672012735174664211877116937207173931575052024744812116488078186902191096189672346313087385516665399606713717787264897520214434555650833169233777097819736200451448365415948598484180179532016794825749447215335627810720693504555880521041038680645908130088372033712171785535053180420892723262427288655322313843464200527164897481605526875941385441225564147989979388600049129547313353735325303879804878744313798813816679111873857669294428559188645690190951788661001351293599629589788848704323195337393756096448588573234303651699674926380583657720634319837314947339590874935135654342272700264465458415115644585088635683020748189184351688399939865012740795282709832057820879753696375829443530112079685773161057672320459112273091419170544065352435860194224850480905716250198545517026346430387267853163359003757165179642341858229236143679986776391222279083119930863263965376265319466330681463034324479602133228013320137379027509996567228587578944945460951963030463626623428509577436568512631773587657039226072411287030319756521870900618585198192717545581039039235539892821926431370492000234725162817604362280492559734492986766779868095874379986623452124107631226909968857317419179354858599308890991127700673998437761746195314424658664208188904515733642578602245367295061509764529098156274927882134572734091321408228668111828570133113819892847911991142861966779373898314773410085626593916043947526871425078211316600791814169352358523502751073378063595534671942581083458366112023887097886004645651773980306127909149040984169575940409638033984143250578819055094033413959481588763534018457892061128822125922902817430295381360098389960165264288155780261967875060737298115038521750095607424003758588703715447279130680224294047741426192954967202421070785953103316663077525099100666547713013601254913391341280656282265180494985054417503194423631469614144305566880464612217638420020641760897362347939368820011049340476906061729049366818818046799091141267570909841458146751508056080747384276669937330535385126545225111413493052497338156097202485468664416676742072458336127805438578501981764439454722440551315159733895360667824555647408638352816938280248744576162073927686299273179029845499595420729799653251680583966867798445840568931943325807064251968493545604542440655708769262922788418980907732440310791025287646162153417163518874539053229396562687548584115443090066299832370734603758076362811927943517458430635705269435218400822309097811836792368738821608635248358394830771631935668059376058022464416473262172857996385716096156241585373519414085732542388594302601242227193966382997401965851689382440470535388578656542893993099323139646150338240186083341963928003633243982741040837646040294870086983368057221715967968777521536469570890323287082784310064785268631862725645399716798921205004244350408973800541766752626856347713147561416878020252259877704808355670870841479537282347460798214171873583765779003260604397471115864107383522410299106527352374056985045503183297221680765892342864082423952056455986449252664141107515892139593559464945424273179802377318109391587180041286803648104509655985099837310660700584144006320760421558572777080895548927112919831657744652966035434865327058075086669635304259944089984011728205860493797370288427797053819222126112910926121444708563486159446983792187157956948723661208735453852866011844462161449668468130627970322383663544832481115395822970873836450997218029752411798689901239867206259845083936024535099554840737476417639142278867040817718697071155779191025511104412638329681208130870804311973514685233209282579783115931890085576095459545037269875411584077166081184355602959647650733935973296692452483807677910754954681639040981182478147901924194968430620084677954901816572598722786697770364725564954925111189342654026704193448219543005276908355974317572774432124108652704206764392355556096637810620576033750343425258168859411956058181550608173666837647636720747150997609416745590668811008330685241449388870103106968845754771824362599653420921948745193090726439408024122841311115505776830447913235548627972663584737261683942619532018370696395022434126304584585791613081561789321310461326781366922867247604813727492824407468772816946363291526774233521140314017217397957564061089028533207409719608286079661249576653247764559100185171248448488779056980631459840866053701751110762274483513229923698537344597890892807549577241460547571476570892388404018250979807877505846046649550015907245279273925525033080685107158440391133784253145113527076938091349282048156562267152667886029892262825790808259148228522722087960843445811902685925402690021889214115408612789284078312693875072985010677546891770162966755581438786448926607550289931221668347658335463799318597448383379479758199685169602143058604349722989064406790582533356034902273843547465663135567836323059374782756621857387393772551710814696104237532174860947480374310848285369108429418993573460965817419594632572697608871023545694844622011705777054882303876097341545370575173512993071393712845003621705172473814730198573720463335207438322753038865121081947313940383067188101458432060563806379190075329673886958756629181698624354070959542142738653415048577019914579754417531060022039392005060626140434925100715370803755910518520167733879347880803172598172130074652461060309540623953970369341522211365587649357316924858424656221556919786185500434481051835155599024950336366413876653920809766286214386667817169324024408920154394352474815233451846316683534902893930432860503702362348325656757846933298613920872918620091360482848063853106841791236489393356681339180355754553417952713492257868328520806962774357261539310629419706248644953274215984045540859055217876098803686977163586033174837707895296713811202845303390086481459178760644440447181995484487161331088777402728062189409175191745618447805452417417038396321754117932575975321096498225206966532318532148986039159341913169276506681410046609851339559294563170316553806747631874979954678082195895856229263389324644592005067632353449718406135815052196429044701686590977118628556301643173080322422850166310387464292042714612726033592785180462265180713201976396463252957410902143283491522249901416915478880465458361541987069274975261383694780084005777450193735928789956842293076514843610564599045024076294400623731564597496650899770849940034923475109007622125458561557101048886152351234094071957801671381385789409550059897885037628159584787929033709460109150633620841409738811016167186596400130584140250165637755007983468661928830493178030018191891651030621042400097046435255911853561038847798426117849177523150379361029915891619903135004836041350863480963817267638937260502654635768775741882680520311021514063428555574618959077055839711845254531493421332575416253332177423527007341140138685882488989616925833401702393236503834549587095990236092689413708281147609380109430741431748872453078426372716541264506992643291080780534633442288703893788796128689388009487041340092505241716456411222126215068951291110082466076715174786010939208793296512063988663283943646562895892382193529772918137953497491086433808495336603177809316556559466319464822301694470248476011591751829334704472656081096937868465867908733642610159016801425551822502769648075589568766994876893291670473180905494654863588023925432191644729611690576443226094406114436878070439366187862773615344331697026655713296226504605788603786757596935524008575594249978883004051294970606280636567176823482679175316727399734889413643700932064770428350263980148013309214459422640862656737159060306332271141199880284163641768423204319376840581042003433761571407813002318877285811946866545477290300830356770518440991179464915722190327579132277708426588659384556998742780929103721649584906520526489744288761488754340619810304036178513624180018971357480927755932813160366987757459765232977551378348628775074383185951662689987398716183527535548564469444190034609556202556651586513251485427992994280155206980286290678158982640420410187457669246915139004191869607880807618468939880813348464712177932852136725141880739156541520364151349872449279581339406520481484756117904073804293733040881784618506819385717402325527329617153492714298031800041663728445710811706875318487296920543412348259367903199928717438211495219256611296267056890134738490885909862441991403819157747917199655849176313800936474185543284375610483363243319878435176791814627195726019233707265122764111994873956832000253123126394105333921693686876154870113102211737953192293828619449782671700535477870748739865264852312335781733310794126295729506329962193436071615824765815387245183749378033719297399968660596228723181368541869941591575983953301696300713611449473623388379921241672401255272383376035719944764146346622764536599102940608541539310064176461663997895170859795411633671936927399907086956398786952980370582188711571219085479400143214215287324594610300981579740786629980453759318437491988219622334591006871307380671921205528077305779547067787637332973702993469463269733697144335904287476760290099670947961311700645492457554841844851816720746520280940291270619203133285027905889800428463651101508972920598335556056849557800359435175455742273565998533656133839984982761037246832320219968099970937235838964033890376309862680886404949185772332456259515280244109384473326869773254746928021575315493338841922589992793444777519510604571000314273102668538346394476881070295179779957395918847082788290979066030502899511050058751176678757533506377743424984835934747838078748569490783527308051302943991361313481638737180629486865267269540831142931745751964622869750331041040608748632831571947742584377971892387831961521979678644465947632973959857031713288825756019816493366664800140402669440724640440108219782823826736960517057624472365000110480120394071879993577775225440997192058315538999118624612173291465365112536760129380927378643716840848399290150241060063374425165959022454411616108998116959808038742163728121431800974685637093672268904470050990017296515395276924453916798600403736146633643085039060517925908612789167507654668128283128317430361209061685403361236399345372923077211887209856322519183860514694492057378762018188982634514628000434561474060595615502072037814342999703657759431129732356483885446265155670823519429075720365850861474822711378457718879142205360007333819995192243541415244292002873217461686407385837989473962129903198268702390412242659773215246641525794856360143176339269817271395208776106060101252422100761757589788152184948480518173700182969948141784514692470925628356521176217211325738367930377226331594757878730127060138825833543963317206984380585638281670603168462213311041933584089481649355970581533488599636963440530580100145040687501399851682104316184524468959183441578339478632413787670342977163095675988176510036417476341910184105660518295681615460424782296577938991160585404294929966351467427332536530844259290436637207514346355430788376162371620965123344342168102780267360426352059796063697041843069182264469851761064254687849511923194450325596767023155514522828142445450465936761784633090957969258804163223804594006292257674191059158919627300243830864503621752220313394707798096612912517525733215816183241403084331157907240509837380900040802015663425611764863456198071483629940702388174985011312287795161500974506764847584670595150794390095659849557629121426932804649244337161690333552981523133543724945776779165220804823938815460155840126900048408023008113226635226371288959756156731666727998561089945166899519543197808609595053308874891965900101518762693219131662765245611571424899717948385258380401487546280713275284521596607558066571610065914009450336232758649145001394940023854735872634548245086057591050354991006942290415843155150782103839924470153015111891772435621311202392783725396536830506042564754118344844873595262817959768911910109440654655477320165405832994187884243638160445602501668213334024123296951942513641608209686394299057222619161538316732011719614182599090076635604400380300547394087133725724979608182687934061956883334872355249519338952692729156423111410134186444366654236754873076684110011654152396953499242374533191061042512016307565659658782613102757042924332823850709480437997329494626477156939506716316677965751200130620009256389940375665654211968900760703811341210778706996483466143482822186715443434469299125432638505060096554002258132221170567719907630309662355992360417177076470399957320656968024499023851488840560178924679322460731024063789746861535146667481622212701355417275364989129375765247442633977850785095761848236152602582198612351509204865615077349111651179834681099673595195710880517261194119321225232800479646212988191402206662405787180946195605927032774892199185888435917278930340158149241560851142145728829659133174447520993508452584878302784776144548523243342339172133952204404238546153409225954672197496282674025561570813591409886744906288234534588876564878902244065833254792058341446936101728501124928902547386743933264844402668264356710052975183715652956758632153553940547019710550659480009298336878045774639536580041706110014375961583477895254118413011309657206408373475873311463356064393995697550744449954828875607836217596946270480380921612706708867830299345335717941941921742112756790252869882474506783979368600198851935407819633190528880130515702560390645552818048990360089517336816568119558435335241075936520049262428456664556443352046102574188815515629939259429541561167249650400912570840463552521908292002990860007502883613644381735433635955598088454625142884008082939491620918782372806686521030800394502593324237222254214658663960771891739162391899884204629571127923147967979402907360219658799571541120433024823242656565912964660957507993066363643955893037373342495592676437301532295250931942256694654184402007161922098849295557228109640296337138220546033799136886060838876613319851774243868184447154012326374126808957439841564599040831944794845737940659544942279196805288535426465030596104439084050063783487043698399396292420409434071004275311927860657407981364491193074656403088682045214278943845363734685628641373656278170164054297081902449837974221375666650811309379601212425363626418695375350864852074119811951188161796662661055402386761266777817852996873474023310675374185614934728432165174315302290717361886549373649088359643371202015205707100793986058838799276972182768364389837402435938970968906808676522287656910811767132249823743366683859317202084514556797532877262376404895396965674010863840627874788672279225582374617784563362698362530185112739876639879916692267247875903317386176870429785902816744927900625563000011849502804873284374544300171024866610592188448291951698911845755068467420560564279567854916444182316165739917645696012360120270546826114469655837095129623740813151853414813068294794029482971435979461501003258902177165133687259553310035236074233254165008578704329825688934622840496840049779214492852798511786487071954773267914296685982931667019066988969598314613425095196900210775030514530876893711651900307672940133653006234778483641809207767845334899883585842587665794266147875457757758402243713070029316015501072577700406121559828069669856585976581330332062209707974021622243037487768058845294027703865332411761086410426685509721692829251526543031002162444574532852187760793409892566251620355078070630928545841729644410195331232689074838553677060421272867726378181574044840738957108171509251357032426598104588580904468939908435792286338569194425855300136350470924589446507997255388675694155826170576395326867691614950731303714870318228905232368026485266297767856262185884448872659536713694778717256897103863870183880023563943472376509533559712984551960790360634998790778323703416946386260531316809290586597924526668612039401708203354104940893094788131334030791822997247004707834328840011746743664563456031160074007578471861808141509103271663717277428522936355355651649705450103000423580329337266250851953609365251688836864211588523717579418577033303045533529938253606344264348376469610491383157808289236297225968635796560956073832794685370628556692788804732206214734566649982708247517023236447668228440474547836002580246134657558032411243840207653297343628398981060373730613101080800358892629223688604506723929966082286413000386992026592726033173911560356000902372606507417263262642084017627216470780251946858193173492728329410483616297969281575581579645416265282215855244085736698225404333923744861466360590964285144678623009775097445788411940349976154443221967433119414348584262729238586144989425727681414670073124366466621477576295127324328996581551793356531601521960262454904172277013693692861263081748874242009418585965472342917780100248994756542657259633797238942874893656014808009873948308698731055491021339180571559368576444006567251207653185411719007519919866534652629634458505609481716666957195093737798753638163513732568669262772613707264557715475663386557437058585815047655359475078582373307751634567465519122490359424640108641915573372693191154500197355715261495714666711737836293468943059895875010314810749369615597239697748350103573154901906794558912220742368484802460470519725529985059625906031641948131045287733680600313826419369861342510216467880607286266179740934499591707195890269306616370603854823022623649003343278997640745299916601295602121336648184225316225130763446948050322294726023894994008789319029361009642512492085746354076415008423549862341473039562847061587811472776051532188126405875796458949728971520550620218796022560303506691412703980309467464076319557901349643179187409305834807978191274351520217202050788864563709415919513873895490339315177410344462256595151236014455239431092077788228566813010944093841499670747344823843521832521819745214407806405029190789523956725965923011919532278750776987499373138897992224091759172353996366392947693193436965501094220314899415950904930970947966408262348305497362381236240421409591048259782280279241066303298802513388804761683098253914735160545494261855418933160242966001365178724002159073485279120140765353957905754509054316151709440248513483044033599355337477587811722929370317848093214328069050577099800031812022472324158247853264360637778216272634755958203252232742228951846166551801287964099312713236147817518582226928737491424395495886518050937004325065807492122691472685180164632383595703630707449456622517964583203083041911983671318200345397495323105191330434749670983185829879156899904136309450786688700408964251921461026464530572142645556531286674535100283171680642494934173246881831038322057270101828486752212755044134553369121382936588354101558538429175859770694381065729849268134230871297306027680818101590976197625963087511577462802106920293707698301774801300924464436826190534677518687548613417573305123894578100182755042595575510195848446992140957311654669429564023345236813782373123139872367880420962650928985748665862091166595496918351284558625877745039460894583835713226408668142922388989931394234408411344659797261742755337171374940272275105255958639584911437020672445847948689949992822910855977287682703222484856575618991937709311319943022866995775069293397441837922292470315121967946442968375692100403153903461236313963750387426031498566092966950736675839057063557862373171062420617469574139951696617298659545099013953081778794301219935678164318315504284957081527222586419369202979151524181711197979465457329153772542615123892476349938058313102224276873392103321921165478244083718693519219691194365614899437122790178420013048224572564178558678639926448964438543831890700539356972264940004181924218747485057305847602294849569252968473020516978424247600064549670740237976183496003280689719418369140896846196391079457206076593628957383513253083382960538786211087421032513645410528689007306394944423878213562614462858873562705174828925609067852954702340587800447339324301856965675987284612706587013329062578325924673532027347574507877287484135238819509966356520067075146220668410826090825033485423125314250849461814983614339222983457335268205489472078082224083831830635566695853039008019524999248150154462558402554848688550001281526377496893042720690289242902123719100510586425774811056568001641652136484808324683505159924136206187033223565990016087269762978023249294654189617007391092357898546694747522361891547926880097679279059606889764164780092397939764302059020074863262500358845938710702125235474262453146101395262298345768564572280007991246323593217992974403095091493411565273132724597552786776032349563264225385392248807607936979305047489482156539171887827268429669135388752564923137371361564208768660946343913862111938667768912368601852776886837416878799356505090917799402958423291309549668626358981828081065962528761071871741703629775844620740555661652328625845831197953670651601419099652280412188575816454662594468536762157106965994537579632469327462686010854926893624362119549503524854767156833221336585885279944421773804057105740785423739410374603016923432151719013129198061296109776039606588431092697670782318196042870778861262541477804609062497449733786267805807831527055329451676891727715713414317598436003471398542751426389455393085528948032845019749143303257868028001654577791616037998858859512700717054325158269197184208075354571588675819507722261534660824592977740356558736293789281681467337717043470762989646680583389441791471268864559805894442694834642624180947660951761984921607286676315507231301623524308156378923568597599693121517672616704036436425732480143340390269766177409261880342106945722349365895635164147376707238574457631219783522620385554032355004377501759754084058182032901417427812606536246588914644871410467759700744471424532295257966055498307029637334600951611638774041200020126389684316425849977948918218397907303308645321095617270653371459351310587040119929871441095251368331729249657042494992194582281071969492463079333781219623351143096393047770928482360684291871631699716640915371733397226191990486247779183465554009940954240205112341585491007738481462398757730912518077484092268126870590218783709332544590951930153037764484814926405600965828357072039533813031949152006653439421831528521141358771354606295551586279784102886989343716932178029390134803472423481408034980425422096494410812797250591994410933697296869523085314204368138137403200169853174629524951255206739177813024449793688308990665070891908875685296055259198491411505033882603269952939318036372996729748891460495865758567126162873370403918627105611338096381686762490353583104602716649410334421105617584915999264963885661907193903478590739896841913191134955532041668289947016639181586481882225720728107450376874857240444187364655831943975437981741048146276941953749106570811172519409823078320691051298969570594360977886606286658067331602115809865369548368223430248261473145820608376823332815842950227142883776730423588168108794791450585078061045150308043772351127570721862916183268923944606049354120524385117619382935872065515318438986831843474402879196196134699728806972196362285316405869790539542301469879963005810508169169408067187477468883124431922009570798990663052917882488783487155775276132261759917843475070786085209177136630865464815480899351112051851632434830753607753689792134410951754488580797910002195666805618010346521465495014841080748445247407135653315088503129625828400531193999388393460358214605982437608262961448348258149356552376195745662889533067593579656992876902693143611970318059437337755758450508954250022630537427395184731416011660721850083658671476039018908445707933406507457660535473939966637237434115774417143930317347234403660942296391654140944228070365698173818537423309710671641538350577189684043415658642805763502804305648632853788003970087591344958009666648324007385169187825248771537279106931719014278556364525034798875815681497077453005848299688770733613724625839853279158374102071535113208232089095246407204180548022213666793376190748586103251445707306519840934127320154502270833956416489915355790191826060894923821864803072090353958241007604268539401986915948123888051756487330767529302039515624582907071102666280041615760717336852018802155137271037199846239382261166937016902909584814436178508221313247919866573916106321122611960915481263500495797847530095532082729716784985295425993445121382994403436137405106906027880264854156383931035537765108251552640550418809171255003219243916913453853553429636043924820110943848303780820335416532954862269604120891512857046682339263031610854128002313310830026520236146285631193673184243703293154198436944235847327368633897140263787053669695590610137543505482431362641546605061873123909599432353554050388233113653200682799092691064292271280949052165963411107319498744169084259125372711903056304743428332781324815446028963383041484047865735469945861797351287480685425025952687038721850443120209849468691741227069500963436841601289898760602710588524872743674600098043464104726288406404018294058727350952180285567312714691576247884112143007594676627085281561463927566198551207661912815860325926572294632787213538130551035780268799963446439711057484549415317839914462447445003683197040384285760419964156301605121822975255721411924849933463655247914826609582873201042732528912832982110354045053319494751482577051759932473421012231432526085339457740033652776976253421555323861087558412503399994032264982236456856683753485595672601263950066092970075095119760553832528862697661832071916135067511194724922607038335489790730231016803060108298244910894380772534652335050635877652567777284272156250839268287260716080820570537546069722387591943620483971051874029666234655745613352868188141779674937832872359844474633779407193360254208016189065480483521197094369092046810218620725001654017985789249823052518924470637949176048695957413422631577337451091030096267618978476415973366595840233714370970889715870177430392312602717523107058027250551502843152583152308998445692644525808229686818226440380987263520717289006815740163198286672229231805280478057831948263848190356304381177025704571356573362560039595514662558288021998124613341538771571209059839727074891297896152525676656922899336034648337210656977995724789717397575609482106818102479177111625077806404855815243356228769497868358091367939024904847811522956294795692809365153743782545217922339919922834652786188457979744695216104458925334512308883807702416756243480462271931110757429517661329871598220799531668273374276673362491503468358835311602515971197664127215865425203448463194243444128955874362197777130092054508357107507038926995242540480023949874720372770272577207346719545718014811008124434163721362947300930716624777725473505843461059857407313362471593367593329144953801098277629212436912291691900047346486108033990081002207995746686564138623992587238104821092212368986753538496575908310966301022752643565013671150934780297349228853330558880242558072773177522251870152076919838138705375076144567121635219397919644148282003043036944268196044152102004587806772008330208204386037857121895639739607791793554054142600224119878041663069079298826619184443745430934295104159397431419785794560651106754497536693074652797331764801987500156450181988139778748364953827550388132892685124860737657014274625584119410665172425071526616024393504772034935648466167795402472108638349537649034906822761154670342511625846886230992766092933064739008672726272781361646386468560295363303936702171113593943167823485816158868344061146255590516151283481381555491797208609838019589027808219706502046547865949383757437123444513550442414031498271366450043008633791618202542916629939934111772741608372615198412454953617371419873906541823931773105779552210148646079670698099750060346670089789585064697829064357427568629844712231419369261460961024285296819847957529634615559628716787988186474577172019708567793818494532792425834878923413628688057376412488435092277375101186460625106065534085125082368937150276660149237574261222403603016393291894750006003913149985732268254863571223942055404193273003130466608387151659976417209326225311906495326564463406505271912876322513841855759518380648899244848131687491860236607931432347102763535020034603062009293682159264444656177994012836153224299013642321204526427257182276293254390719556503802641641996654149421738230499595748467313327893869909778090126992446400490423464860589470688945764579413488260087293376725140550718117394549928469857932776220828450924807200215805040296555365060501539965811482858062135939723047778933309246663523661567903117677334008731761466998823741603343611559333834075849214195647806472118563558267907207244593154281614921602777969906500490584433603189769880127650801396617498505186968766976782014321920466331966389481313187056048541617406132092318159559479279038762314323233308188447367690023614024309263667411813203529139867765629625782765375851921089715943289282740427768734935692374382339766100737269123991276569132423169039086187950115839050897001314280602173969208191390957637841748730283740013341729683823489438427474309429396784330870723476862893012624359909672799891997548546481678451422481520871850156186627541404823205051909844054003331970979898182753921323377736561321375458144166047412128780780249438981459442830648148524085477648872377393666710462253636018848457516826898471206412027866133443310271816779261810168982434649283999838538597028020403006399260805073577565516075817262583604826381615533146640291018458785691180239994567173756330080629284773037796763874056800795976523145955612084816849293966926736806571652744099009229009961833281806875712445015011096174367486473253260693447840809295810895624266162614533180019253975606344358700160227932850750492986000190081734245833177094304204677922026578760718054323707381358455557371777409543657463535793723851643910500190874913369993479878767372285036633344572268440963409984628795538182932935164742980936209017261936016143386929886250343984087859530417266995061494349730312409557584171310693609416955993092584405895012210018377939096311865450632607283788119397621159692671967505748195875545908140691599882474130844657406962950979417560714328139254973866198829606541092949898584955811584276827917634434261615567064152081134486710935635702823213519360402366783686060514174792949250257396922084410568994551586639400553368727473914682378164859970957234655187676175670605527693893140351043038307882935635475413376295843306274214727259400676515944465348495332736516349015966825486840072522977289431140050790383815936022903068633478703540697984825444261158073976650769381433727637261978255340385789001243248689318118701949509716983581600095807618294500756166002363896789319343128135625983514616201621580786189511333267701893930110286109568930278710669109274723186622040084096058857774517928953211322942123286773355451290079721896459909493196586819306338136582076219508917034828517971881026233177966840008611521467665528626779258030198079414884579316643689858618272404316128100960681763823177826204410721050223907084065705135747862462396890547277261480918471498292182991855199851287262336354088037861484848621648784231810491898990481196359254998275586157015474845124141700071558258635563439372631411147028475088392995310871483623983313806586866590625012434076238042864870188065259414624071668099002648848309246172930186679588475097639774630581996991834758736152471536076530904956160727688700403040231735156729260513855529095706802775920916087081392581008261614201088102031818487373775721589606967722468133932442958411861116114414145924220517823617268915641741088427176727055807094235112820424268569658332160569592094271330388074919928297558699438066380408952228135340799386731107748516597583799292013231638385638768031588816856134196131753364341742506798944745885849887671320076402542162202224135412227792383072907720328665268878722104553563549738224531871612073817872605141050316327361955856205986492089875725862790951283144827562988257510529942737519708230470232608303509079610596112565869245963011933436726291021947170522765880035146545008120658039940565518342391365736546634920272835140453332559223224870749143120685317063784942033713784018559227166406542664655193909670042882159117996339624045355134787990839973639879394664432878295261982209796716739375431892389611721615198419607360313347631936741673676966202199559514197390050729544601007849352883232002624264276436057077662275213883749096539869361028210938497460304721083003185091394882620382587756774060090718691024770740480959255678215814928385910893773254186595561149948086724101359605388425765757941527176772490892369954813692795040093242709785350010309063137541646932246592447963214966837924487909682317825540277648749119034208554227345917922368557704879271450748300599825637227768984697421649784669566328430594222537757152775446176471547474755425734078123941791728984872512268950545361879938135014660207893885474236337168461050250606216111781913210497595803555854710638630844505607885645492888859995298852471801565489928496344122710714853423885137407528289410506597252154189231609498884252335332396712519736311388050774302377996230922566798962425252821551222123409988532164930439351884821073419321491893200125372867591953200282445092916181362253415779592835321339004569516449976895767322728974776700644516713730383428767788264652350588344323592769186952098804508826085484720318275634254980741014754071512646684183866027480544473938680528581071829169799461079373679968669010725342302891171228848840928649029094607762303816565352536188213492286251030659684225063902294626729836033875583144840728259533885491227493234879057424032292102282665182690874324037164049388037644708685751820705692190084239992037649893866372188627939835383129369416572323692266614601169939685413211765857529576442793323413330611590626556366087582284174957033476406315785714604438785849476429808156317838483038395024476314239535752999264028222206586788282960237689578444152655828695860899104944018696412487373783164881549705093310051970287443945111414676439768601362944488032778547380856953282162168885689276227952440225833090187568213352706980876166469670393190879193107016706740400451829982615783711124874351746399331789455752862498503146256379334486222589231071459898969398370368536440706157378922776577357492348994477271762248272984091821482669554426211897514750597786296216679878477481298484692155689528261481642025773091581515644272618498465240351116228052733547273278954347009086903076627949252188149950821823847745407604741617248361710309795795390096957407262964283458879785560575029341304124014184749390137935321751440264510045066271080396807078772915167956549526319761410188692062535636595879846366606368342923184820940771419159833560073761966732717874723303742187392609237185583091896353709355894904996646466809685558978820870256826935722280748113194942107306692908503051859917124448287504350565749024886514167622685686019485996320737073764084425769738427855021376963241382485440035377794011289673827006696533193257961379536874694226987384908864081498864119740332845676639795735968639297655769882502849735639979038548591980587219747637350471616747590069640192299281241493593208886613369825453550405724755440828657646212001387524067712835064620956333822877584060457101542667803093700079223206407544763864604953405600842611652376529645471978626972812757603286730316087156212496180925996110347646314814757083909611578745912082361196852207501127707622367129878455267894784786756132336308557224812770614178582702763779272933562428692093931522664714995843500872874814779543297654605185320369435362593027981094255252392511748558355115969040395971256247323658206215442627850255147638801858429942399749394287816020300706308904185504995302004128628757988738834345247707877080088822406384488410391556792522109233361511809849084152543356365020097629387319012624766674778028596170110949061307388938536389982088348466771764805063177170945341190688402373790523313047735901572013961100901589624306898220175553065573010735453684174799926541244761114604285282651077080458464339434147076128723198036534341344931010624888588840752876840998998455334082250160134939399317133123851677339999402502261558912953738505750679788027635808243830713852065155056054013399657383012020706756877392339131162748349388819089876401097979479219554923400410631643827564307526474743818144253763578894698246264499557668218002291159384944957990213557341528452958193298802998498265698503208122392530309627783263924868643572381290793763756522971111877285351831750453215696127527183501826966932117809889693076505559962500767859500431931973673822309737002128075979410749899249020068978404546927993046993773574886640177713516113266154729859363470168022230927574228714581158026532199052543072543071018696871653887373762069997234844069064587933934112479847580170986742560571327357857998566478612969665184502188989969875512645972976706395369560165463564258465420872249625909303515997669153766302215584871615831719543127818067054079897550198646845970300455791343286281998616279994508020253549986634684781199122341345109476666174136399989007583878803272447458485082332272135530898514302815845019491312585955409814279322668744016354361654296889249827517578722869038339932758060936944524058297598809768689395637105950292191760224364531998333900605929622105069178415932789173134971820858971048974337818546387628958569739986182778687600235094737740469257129559242362856269091142188968983737611845117308977167382305918077946703006122285970170025563656337977225974229963616746765578297960570143495963921797954534804754809021820918640942147989965814907032893493094834057797299406306695556462070271595720150935148314134931982491743615414030166270169649059915241146319307710463039513857023443791741340514625044105318309448660177045341377580586238721691738439113331360429991659103589401352658618718399108079141938379190944485892899505636138247316650373886506232726379722709237164496368079635309214846318120501901308147349310822630396082025245815695756348108073159396735996625170239844012495033357273281447803146878243499374463498577624433963293204586784073573246217414899504908460538027143736205854815332681065671610822651617330935003163932273724735852657273736401586156106287401097559572188794956076282346898850320677376095040975192292120445070215598015657719378392116157423766305876865682436173838072412123195586237026003468412769053684320160351168452120221834765984557620668066413462694816656464144648307987063980760439261306407951643691306514105287178138016316386516775996046713897287389814396125900591296240105609804572919440537446084068664791040794173987077358613374321917548671085776135773715372271144862348692599923847351659310186970087291583115303520620695009095233103801424911005692759658943594207000926642234565523606463157485065837334886701508557614064094076448537211421760573297179275234325218583597451506702319138324941974066317672778203820696000106694739139204436848691497102214288542050015786301709669828900025348747860823412027708561455801207293949534990850228819120278799604914015654882804322612023827343325542928923103645150144104593409104050044568186747563501551022400062289280143163168319692045090194744614217901582564631300222787375428109365696272323097588158040338781648563829718884726614437784020250609732265870393033206288784874209360376302779533217270414418173473148885237675922834754860364529946626535277316717144474780243851867094661955787289729716560018843784681589645372086735341889344414481019383746778213308290624011723724465605168050916962116802311073165902251367192035862399038089550555008458280665104837614607375961809066555601403226924143859698176437684343290255649296030759601455500447843084952739647018541851608163912299411349413912933691681607154267679849377074975180037455781757035471732101045221378913432703382165788413908004470822206828242640541823277222985178983560627949179671851096527559665332056964616091315391963890790791570984046787772373495058991340944663914110066270247083351204412083827640017849181987876379999229084907476125046387256699607100428115073943103754097862591152647866296589352819014487422650970504364009024220867049959264798458065398225264149977144192654908693366146711313627600568462597028477023910356468837406600589086215317307402175312844659974217373613413327739422282525961191029575594936202249317019750240439684202336635779023902122062064025234071043736478410589841786771453136559431273408156212889603600960847072740215865609245084344739106571102483308500922088231375240477391290375243907263721707148032658952576474740482106446326208712072420954932727905259659689910161165213494003063276750970111308802616459382260028376394973728039687760494397492213421838906020500877622557620579366482409089588204624198477557148591165107508473611277029051655143501588509006184475448738416455561648901391671991776580603148122683973885932648585826324510325330407423100663204941816318345899295069263250713498637108583772922284634218614125322639925942893949187233477505750704935509362147572747807386090587646173888648618142750297384009814029672556511642164847876230377006131692307337079617182153323665233749409853273961234815391981937358770773545326887067279861690867337629192014109657574689549351236365818758386689239158013649104360448091045483985062414531148834352342584928362386365399276873178962042086358773578314443751604322094629136436325783746348470129018632099344084699717141543341538596029726481676927562753302726299019293650334703223529132888884449285195826302635291865961653127814526674938839521957861044469094212426658729699953123111043719848681726702707665333352202710687768285818761671873981850087221164129643398604933238642443747870344292746512900588377042790050385923964548602407178603490288206332129974493087882798058140462510646528248028459573214059945835748110038733288426130473376085466916965157596314017292134963536964152786371589801635088298486913574953186277204888906877862997514393347421184241167398292179428084950392686552679120299167592494133276606518085390707570629237864502310806808898825466700550691081926447633319438234805984644263061907229103599675111784986449222399421628329669812643882640626874975597936554866294565466440530070079138827019150180256878338922407460732989370642010058666696264033531043602324012401711559917269837089384507246847593903386986840615379908698204326991612413514367573686331074192708847300286761564898435274297724563188450740637375412614836366462809923293974784279187814843898788695179570768690784773294996772839022942470068127930181988795547663771424343592444850755312655316265828268072000105919413137132987293585351067645401305466757103282346612687072822654121889775455869460795274090666438773676152630992127013287806493451159640829812887741826282233399319704201971337020993574722823606115188409215143838215189164842243897148697688852536134275754593456034167922882110183056324268776810637503163882526626623734600725084502697289062655364505311079109064884317491363487029233297504030338246502622633370459151246404172839746122794838216064134225262423910568687479414841772528649374970556313712898180615123361481107170236143090909637022671543339792154887099947016880033293272931254446055383686503628153775111677506729164591017861388431369327869243171084964286917859850588813964052791374135147692986905838909382383894471883795504305637531363967120041826529999991827057606998368291009776931791842350599150766152476506541729325643863856925258995974054420787688085847226374145131204414983478126062216568871056871753973701812942820175141705491054065693924066451585625660993931303779354639455824405505409921030035253463421284024492364920950150833838192260163411136375586187741574741766983200049651759188175754254359646157577146948208287736974663409820150366374697547456346389036754599829935380054096573796292228930084768014266529971832839774898517948992851150225237010863100615246226557093134345766406756740469097651575635246043112086451552731351846939165513488374676854608162186555397340176603107952352137290989989385247055505226647725582068710875062960279972317338265397018320203416422461227042697508637755143684104783365452594627213230024624966157362700665880971348397231179966508065321089666360456876917679152116309497796494389930007485954215515427360026432952641926518511240185276519857378819534185698415324859403236299353110805053838931110550456707271957744870571671631386182495506587059293518105768957808055549455874882827320068425025135986791955672112067625631861066829535051354609335163326597357598425732368875964571052260291306434404542410507295946344429467770819804915609940996961752528668031277749201168190811815707816191190570025625778715454675585307395238932700508651674222421043360820944724832359860816909039560941907206793981154958335320608777128815550114978952731896388375370038644951954093526691218160332110176947976486310161414978939027184558740150759176669301318651318165950821502026619114836889134423338553872909347346905544128024284053623022612155993672598075994986434657371817658112827444395890061945319103601878546791986273599735666677682975905507762147108959379584196581054383981228630138794185290808144354086035629705469930934582971438236618918743141651616172845587110598659245365124331328850693999183100505642693412043281241242654637188413533737265679165677797536181454257672835692828837352257464755866960492656332201862840010017260482889576846661915403917293901911528990245457287347081931012966364990581766471700794889549529717308469006122021450196368507045879114407960803335133662557386956189113187016345699082562112637560994080805686045671390082793839907379881677449315837436666965224938450025286994561497027683775996156633797538842745790365379815748334393721211371281721829270176280247800415229940855631777515221970058458534149907906296330123521753219887065077190034734096565435274912178541916584538114290742280215811146369311131411336900664867916188010174077965227754662622807384834637156691971380367738457224239205680159650283921467447184167532984657632130517656374250326782242353926872405348580076792865247433460254849119119581415790171528825342028693919806023366451271774877170479736173534702623158133451471858179982224414730164372538468800667373168539189705779766185377395167964524222592500585640362700527216741926396602032984524651801957186644864303751159234508816670767247359356952891531341601782455874897484140524982937177224580564003551049897805749258678638035966434207970011422487244637108674239818296903602891593330113126848406826037713357473144321094907160758099660867464554722694619569764723897493842887538392188512867330794082256272547574379003028796878886474325239054795981259742478943605992664745865948878252186563459743063455473408498436829654658157824132802653010412463328436584536746073252852130934189462706101097468968111365325905327931678098495061182576391060102375219016956606714098710161207586419443685279811144340206983489059949475128681159536749883606861944406073472483594900105717603180481586366606453433891834872801712656408120552247547469154809069504845693234163662891906965924306924430043267255982185001779883117670507803446273454866744384517836195262313648613410464706449708398845488294116503380981746980325960633507043485219980566405598274681829289888003880351274673710559149974134883023457820389531080366344053133822632775237735850953433139670381896852621152591415478468331652569349003888060322086760202832591203862301407070881138617523964391488832562108674513618863489620885661813792761479647977978485357519301438632273840853304288624377746451213964860862223717800977551988510235502057752193119547645524223444744097587816747052922806549010802870614320951601624154544425881400988024055553617970723475104795946931911781026139182536798127412352815976192196567347884075729628418712577366979362998488499652286359657758045683982561271890486122019780435125361443663740470915921107847770027036943717263830834991570305192238061548429282823735525969368463457163458105822623492209089811224938012021051821374088601740732795765119904420114658124598581198218734974275436675958043752529003450086282876247950396717746186142029731111115377600556665747699446643668204226754722473119897718975284813218832883878172057799280992315440627743244967354909728477733475652059020298903138624148801582153202790714478911957866720318344512115823819649058817876168836931953430236747783670422646320475531240471075204527872730815035319713316320569528597614240535097529091414619880145901447544405165850262184290205580347112135246600507868179561585221923722679978579625194102245843463475933506024566724926262104923541568201544925533747502752483025202818035639215007361227402755588448978392092677008014200617163563966944100422015602888519175803129666686103073789220177589322008792626783199825657564982327543503231069980865244953006112053924519524476194538075128523659625345860385772697616447034413688268722189826153179080129913938292620167856761724834063967995357412259916187063006474130213002190374940771721526516235299734420872862400241585876331134373970183617136452852593855900588398163411840850209318828177299584968598282747067576061546566882793124591886702628972956088524922134962981061558243316334985801854836701830270810249948376199736539009732861754730377877095123117249005304009204073806219978656531439616914039002625259163018963428684587060928000095861873444874378882010793112140092635118300607806708053779222431460869102054699711083490452794545609057970064684933713680053965082899037078742000619433820274613593313175518090689489517129520703385351738731173828857941020505772567156694830159089904130604989610555216203506414647622588077852606657291607343276692748696424385497241806042911052145133434682150878893251844794055527250849972187670854364051079572582114902433519291472507914415318379663368990139719964300683681999037295419717319766167049084818919277672135943333161172982318107876454850159397493838722138919429411773741346441024207712308986492282763082606186341223619102637464819107086654208004990808794152112097387577661674893692729831596107727698140732111942345580037172242993940939645173141995950948505787257755947557942758134789638059332515228274240233637137506198894911425784704368279923895912478967657590505796582395585452784353270916398743614536717850373663991217437146381856457176700227256619920884410709420957918351704652047467516310241228740673873395293921234565592768840736175410943932519046207761153937193525739680957555990225704644328568050457897482505946425946588754692335570441505326708565470312518626454653085547535094201782093795993814717091978068957907084669099010226550809272324175075368245353036876791298881637844598506409631575780749030146883496023709947871287375041906394400798044809768898292040683793430255629984421115919328879076443825876736135866144811747551017003303119318914982320177750567405388163110029736654210064065539933957219341626114709434474110887225753825672161033113706478051609319086974321565084421578314165778367088265836499371833656634528464391269669254995922914021923018915915716246796742180716365630138757931835779226943327796459147378801777786782869831815627056551599701989412615607725331941666905012190030157194628677625769823785932523328130496531546220079137396356089319575459383451090982444355175844429098160288301383298466496153798684217293286603178299787465486986600864963284310433817689518602890585214166990707839636873031116137910988336148133559781512492255201051880828791173571266737468054558218962228408418545472734357271689113207870090222164827379628440157939702224595629438705606097710897575306822632405812563864445266117135328915465484690905846814388034363169402642052150131173409113340051648258714170642909135271118646807047229165668520368409528179678189407213801885976814988350995604932785610084705653527331377788770698216456177441282255038807036988602064512837569310776549332222012056399229262107635019648823667807415591765094526018999078668691678171753373048797084788459198704463063554403559419318638569231945901421069628967943252283293852683172456139423521826665862486416138553036103105667445318109630018554964600690573794780382583890011982250306155657476450302265562701822808838710756892791344774710077084096068083156393892606920833861345881692725059914137636832198618348643880075695165823266529441205450202198448402432619906773527190539808782524259998465496379095838589236713307488486799035287549041182265875917214910034104137754580058345499482124512548904485368107148097283212975180908674109531845517533005465837090692832295862737777840883550103130752685199442393519186300255863793285223436235508446355478000430053729401309037364083722972147690598659682901411661097804803021115640502796210986086751330858954216148084435925301110579251989569212808644213002995134042241839561962100756759438536871767638695519223960961720876460195872247626104909907622945742342892847099003131640100158678237603525886662308623326532790828188188457056278664177784258858852408920399997771950727477828803390142680057321787162381669102336760629343719360322766650466091855397460430624289667062621354468583616545489797105675429598701774143962196603530934094041010678520684065118821385655197480959890340120697485278182236230234003040239284232288086398812023814794985957050045313693364513234255038821036246892419152081965231050091367815091144337480319032968810287972073536039092818070347419137313403590183237844013553310567319135100257030744148452470893625482330038296740089695826151330693674704761228410068015626735560434254996591602901364346425015420611360777268932014202403532011241375108193355834802309626536683200851104320519321366833474286146921415906458735139949546881155061461016134135770742982687334190328280854252011429781405687801393039952961678110443813273589063479446415845571090225411719607026961520169469124760709092850975207987024707551739824844194424335561236712213214097159600009039122996973868988549191330518534893709712690207745193121246562132494373512425500486646826748166016529313770082519090589320258712944836451063268887369897411511871285786265708909831476861184604693140045081087983720419519030522878382577259054823056892015793177634553893802505517397017192251168909174670023884745859756238644785660783396877592853121468304633282117238938003179436788090082198952497341069968501839785660853526653469538387700200836440799718406260651189199728323347547334827090276489680290305202161081037888725946642287471131214204259738058849671221264030922906350655601161768580064050277501246554716787953440458591043074658089300045595005816892770515771368434878420583919245442216917010076707610063601874630133675518888716032986138899093439516276323858705709101954095308055834359789238586521669559350089646179753851721671976115570245792562810714202279896106474853851045726683573693998085811059823971819392133509734645164843594744535570964528640753010113801664170649248003004563469474877638500382700980920545435383182696852481032064702812209823190526760666199555663262882640291100840806485042615181944476769852429139177380858569505708616451198549026707020902324204761475785868495174576144220684653672990381171808522806980083105819184129981535021655627547861585491105754866395885995443757953056868591265204323276681893706494763643808196972810354324486062075278869428555929330215380151644252191538786569545571235118302158607591662417958795136156244794472790216205602915613096525189439227638383850528980763567199828140326679059742500926970745057417642956537839654301805575514568753415330498653652505297684606221260277517107971014636169489691816611962331306196712794226255626499547475533460800287376111643710924245591077568431699811519051835719397110485881039624656320006819949081828297818517864733960597746301888441802140546595620735827546330963931073514658097400402820166806975458020376761372396108034601432490633733693071572881182439562405022722138836914081071310103161421163431215640282405493459238930238566826270565437685627805176757842716767811736996958294981403286786435484869284320277023569586441202333650322419516716720870946064830346676512800417598486362710842751368954995107249609890201324074005252932227598070478726193967555772458022648967229948341068244939742367684213666178992716493735034156849913144293017291220955870552475243143267983652095438648341605082034135279667283714979962580768777466089448165368827115948728821386339695466646709915932303494014859214516582481671330605343520482225388846625479043551452091195678402864165925160350962207527350472509598951090785160235463861237564571626844104894563164733816885849258932762364424200700822477772562197973818746339547017053213440369955230478987936476223071204700799629618258276702779775642083892237875181581945443996930626397220521285685054511058789286003885004888986436161039812023098244225381714303127207296773904182710847923588069281065308215715970030650467787086924497095014468453719837093197585208060278501923846593190566503277073433450817828954864058895744679237159563579392553700947434116913836288505009110492749688550813238185096028444216376169558792493383807168631720268285856894964730584440082104248888292154337774262780487923559370792650780053071977254857610205365861262047997634144581149193388644107798413079758054878663138161656134261918180223553983622086636336840032900608142667292486277697732026383444959694283864577823256308326778788024519290101872129746039557212905043640106477693330877030237105878134811728677288189021071100675521547590558119615452677293900950927888166109346578546389528413183819339082505426341375364762689893787293823854792746959319962194474193218795750103144215373445459420710002693014300785498621637216414040472126997512549382409906341917855420054976296067520967751287071043045628564076810984402923750938484230047634182045318861349718585036372785620498005865906829992506356058610676706526324316943575765389174170565844767310695624109206598859067412431501106416805720678410452252095356913287830949631979012389966072794192874404924628705574243286396240186779694191448290068875324861253114736306454672567092119767711595075325611233908643821849099277955221381556825241485176152268736772396460768736080881194414073032059341358483026776970401208879270384990761946311883986029634371435570621966440863733586345227084817830643355679770765999905516799335848127735010535223176508770188133316136270117725120436221985047760890372508771774943001766697731537610272142542535441430666647803901128313148655657951983781546567970217446258002103692180422864547524988637326562910309324702804694759747369873908810396477576328873420107387814034520675722843260503927511184973515522272528225165383520833800520217598291832717698087904589778602219018444914261610791706056056992061886143651715613737207757027357805372426620336275574218428138968330258097426726660284070548999146113097721199948867208367534616645849640262464143308373558046444725860533632998515446406954187732431131434561206201465448187319270223658859164450677054599096764847144915455175640238244290081547344795109008600688911675474781182249881506678772483732868950580525007798027374838445194059859008259854753151119251149174242596405056107197257301986839988728992502089363549148558562411538531357001489202278491589094911662342875191060863076403948218215258802918914977058686597823649447534151322229949322486033009647471580595604023576091175501226474168527354602245247354416148366533193128616580265608066043190923665881230251207714851852695278706661840016235672094128763475132939664372401494437318049113486275809145678411537349835028343030513723029384464448573467178075958687226483376548497623311906726718474823988595998336827366229103741736575917633517325128797881593900294573704393605712417307628167346491982608714244748199744909370526465826623135655588905909397601282183721997829030664824601787980390694132432017035757464543449346135603226250176637556432627136283234388633356314581346024548225003749430046664314885429639561323719063225686847585165364643718587341655018886866243885859872159948296528706693825786434672897714772680540940563480163698878404134519536199406351010028930772495919661186153245725057823379867167251228545978506603180292582250058062164918879854848069304503073693242162969658555752617092100373133203616423857122211168319662762754443876579309769245391425449665255976456816617932792169217324630722526021965126307572161920796217473024209280982077137028519771583629656812761947363581580467467711870297755410358859800777400742239974425499198026555695197491409097861551012918232280534165599915177044350123331728296359296568535514923119067896961163972721471640523187785240152741330287433567887231237756102951902944825312422403333894886761467622466710444836315141317789346546731351414308587505899176020436063800983700826567141117800912230309120919456504665687585987342007070213690824573012530753957602223352287794982839125352382674223718447530188011150058557434092017085995493189993852720219314313199676720957521214232147007869862075787769481440090258832099650129061301045452403348421380279549347744392630660755010447681868928986538260433621423985424585664103800664099103538382551200577022507276433670138581231681593592668618879538229807025643176635213375243204765787845235678382418194920485600953332750229095323779630127259203957273909190714215938515226966933402115898531308889039080724480782204080684445782980677700047346341681321364034207039161112090340283241731267524410714622047454784882101288367886123585643478447745306080119686519233025734040887296886273824428618368999055316527505456086683848157134949741512050673677588703454804164020775154202866057278512425368983524822120736991271277861527429448418957850254757199496514919791571337768281482433626364074520311058404597820641992949322412061772521437418601312290764956757670601601736475421055928875127803438206065761591145760469470652204241211717150694768062733828703321837051615800847461392726917549941908058736059183433990734748507798698586241205082666837962848461057878837509698726963502198805016070804882906711143688922603534004604107011235353106739324449782647066624271831384061601524350032061310198103081362314729561189334596997228553109437822004769335437725749627986923661960994908337316744808654898542045737793813810442388589316612167282025356758715684197510334310898179998686099717608462504744314065262114050666511231708268033499550423528539572978148327374220692603365694514493479399223596078341164791044506101544190305855839784563486125876344228261232511686003660898444344312458738883251541722598903109550369362269471029557990090155583194196517292206064533192799341600148406289400032637458055314771141812203237176514609323405177595957198501650606576589479534834327264715611214800374446623228434017280944986875635760946536080264190620687038478989591873775262284861007548021253762451008861925782460815477344472508775223515369876684850502759712286090644780054118873538404129814176592178513970767484556660945954199106881327980789963498946738810352645510264144311185392254896320972447929019375302509195389216468660305826075587326892103208324853632062071602906288669565899081245253127546044148246234249820517642408710899138284593840349807762804924612055144343804106834748349165008177597416750707114226112756022857668026902029452396366805568694793145880925540963030601802142935671643669763339209327027649561349857441138119556675559825227254090282125357483293050107489063192395619677803696486359616955600955239120647800230951027880464020263748473649311794724487940821697907657372336096194253805124276346833192991562475006926813335072585186116564819439771278868575105386877835726916008071354713397451048802278623170156517310411792470890976926977264238907283890688634442552333519247646319151054344010912805834082119574441259104296359591256293463491743077931248424203383843374595467776589162084964408879837386889472458586331802686396018151900748919224630655520378879129169933132505664640468127402903866123094510218061187155010110655418782279832634709111593472051397338184336524610820146074136745100439240602261417487646710044237257354350959954260020987854909031306566731547966588024931818695116209000600867041622122777536694868372061515486027473496917515565342062968001684109660390268375242890880033302268851073234069333702839047129833390291443386864596836068570692400807132999750507549340483487998028154017306676553826399784129608714827757749940904213817042864733730231263417909085359834922778518144190013572896867223407898530466268833557524991819826211726899987181899406555289674690548856507145786935639066117410668435535299079652360678705355631716385353725611896023248880804925628465707552391176185888972431296843162648205650794080380580341801195052961740888453814225142621715380074496976989649924884635206140385773991341621796132544456251914095542502811421660465309406875313522481034974117463649804707196683182494713100021228177624309521864750593465148971387139054852203179389856356707572255818152874707829271476977036071153468345717731478501004946945034303350745345652499488185045268646493593383220029480021883771738588233773052465985916304464484914118187213401480693265305865714213368683900156355289380176197868370108807783020333104407034765499943777071243642730022259184769939465063748900772820693180624489103394923344575506073500914515418569441639648743457439180885936441460962114587768514934833572152069442747104907931756365346327896787965366513667326115500150549136350184735590533351605818531552880049942149421322418258902590618732494357199667173645620342597330451550819400793339135009427859579583488729264521982478428213426248561066411268360285072504149265101895263538764311623232005619354926915107362410224107335117265512926737917907773587484991401076312104262826308994406539804595227993955597662716192472693630486650979239194689063305028868490331455480839560648352394283807355599441313033780072008188934645225900833406731893719176565186080556957760070783556923695714580693865438573528843813856824779683158531882193513098324306843902474846071455455385502396868486884422789413688636715866639426750375133811053125203286900841231905343780917753943864602047094637500025837314076207550580849653907995326240891498068458067057388905232665309285300573180331373168911822766489601807755159291478980129346393558331177208711318547841333723918955655404805790447561417396171819923954060023776921576426012021939460093742770691427892997173375496512249314449317764728650816877498151430304846727316359948900344556840330683771647981513625878733519460707414426277888156616238234595964530309225458030264241438297903701019596904741831196606761322137844324258262567040723282992877876404189867305919758778427359283759598133233715615179659434891400299777069019233825566706804132531525877122661158247767432536688009871879394848037040959063535075455933493387251024686415926887463819275617819806153241347316068640613778357968337255543860198892751148247881573855568505603733777834929761513863020862389552079584357517261962635001186895402017858126934729451048992010496503535998134965555066109385903480482048064849546192502787413791310868033598599867040229627305731732385626820640119044281505777004978741538105668638907853553655130782603338726643048403633034186341783353481191938365095754717545015580474840921996756846345855210916537777333350597374408010166407396508565028123993216250151332150317952758635060915993891827524015299307733901622345459456385223604553112824592902770171456633893728226703157159199871061410888861384283778912774812814963874772970164067479107336393259897196360347019595597585933719310389824650362463371435948097566977829825601835807234513763097298377219600978179903953440941150974733861088662671986015929010225788474783840453558155921170400841057771035271065634208353564563588854282378931972777071686823911349327057572799125775805178617438405139153783038441672870646468165196845893918187589426364306686672396843657585904272495242705453852554889645760543406820779377987575485290725449962451898290224262647227448130699553612999330764604334685732039430700808131641586387126165456216428347193294003714550865975185562636016536400452011423644404231849957603335922592506317455293220798001559901926479039185656340914380491124449668032928068354727880960287038268007968153685190304795595418204757610530994617723403560256897051761575017950214015588785654514367252090847481872596553800930042569424781354254894329675851798016107732397052554182901073747070320668796615430525572791735015496367215201752138699596218837780372756012182913508327951218897333628301977411512558867775411879535176037185120373633408494637768448157705276498413505559664435331543786307413478062439374853804890785361781084757254764735553646939766944947898575231562735325123482418196445617304895765597884780054696491655325927487488606197719751734387035577968211774509726232496349452830569960487819269005067712221571229264337786695800737085982105227013327606432931409198613486617088642451303860486993347987471600997099214968859672439993825196659958686307909602593965113535446212793685114820953461212208373360869027114194269592090026453286428871798797920581105545775321775406117335617701069644055670285343620901988244031931664007243298779715166056627366098077203121497924810790892603753231708429354198250603993135392740535639927051609427682264550799568318338802870836450592850157442238097853468660148616541391208098376494275326481420811144821794331225732372459587668454738244018019070690829733956997111549663372637766614067450880027280843185497333333248841533276768383813273978410909241543651966734985718814236417290691683227355960313786974544826574657330471106459097038345298034368298771562446878089663998444135125491925000239536027876640687745406961936312494800172139737080463282183811567173303599201491734745883678204271721068478850704287065524023030561329030004937317579177577649253819107165864375923571434320201332791191266936313187554152449216233913487407821842984705827519877015469992134133904839611317315236919153040147132956394602319837085397425294855848848598744900332406337809844802225110369640312593711167770490983136088744276490170637103532492702248962256578695557559375269983460409771606256277001214793634806472252849587451293785798491516999829178124256970363687753486914555919060925272202717511663795652027377695878610980991935215817207174878051573747082723115317477261981272829207325615559422285862571266976842588057411997805865699971464766933390821742497343571028361255174579593348850277921828614543552861266128927110251105342210341520758160307057488546833658570931466191932614461233670088347968541792751452141231623979036318122461890691400854358939997335145966709013921693356347682186994343601181382968218827138228998274847478000054365507448428701140925265352305632703990701705475604208642345390870769734313134805331139875769578680829213798629028651224110835429357087186189670410265148466735516778404557786615575291881769023606909667526167817417046090391227499843296641422683596552928061346543686401081963738550311897556400451903454135919996858713096896872802803285387656452431527670265703026092104672455127077833144384069031391855530067939143083171148264014535689172563481773466155174668957162563977596673129426334108231995947341287344697433111214781441880770733367791736205348188118836300209519807640459845974575267153047796374203946162520166546325985914005317297766248728717105707221289333242566997105700215787250550463574818219084125643137668294793014934303517483572666105948674196749029535142524074339028918302652606870605861130992103727127069803192362651432616335762724226203807290691023254464940597753517275059084257534287704929013633432222275509442251260444761960544009210690622681874081873006643150282344289425188487001951605715809196394198810926742680161039697302774471621732550145181347783739358249798809605970866309789992822399817433125601100933003268083967560310837498436139753026200068107094218429849880980767391264209292677239471242941604748235043417051628464816936594605484285000160829447885826789265434831109398315776496931882161149940573779608350134669443592288694556198598308727626362581325314740876994207567460750267139886993137350115382457927650381892683920908676730711809968712717899852351554478994287914746844052565886750951142663165343880725735016664456347963506178794574842549155471454219563826058480577205312884003692701388855780822461603811441343351713289259289689201908010483339167113181413254865446642852990355763266148010862247689713785765865143485453901523930082625331345804341667557940147509767767033156386022778972368716895425135917922501057827524222360035894494137193073240183662819136120617773652001494919684431328129655403873206264144819316694522920235775105905727519265689309260602926136437413458506000001524924297599277136984995610993207935846135570740299896679618050980344110954297193757086602108004568938816074526297561192541357843734280435034719565739985022695389615065909884295714769642317474127777029311826737296033991668838282601114353011542908962625335980856606241296678262408637163273159496107608004417661956983553044516144456756622818282887705413105245601814796296380061173418239025269094772966602972737489724013767094658340901078598688082544884721471658102780067450063335777117663609200594212910557952386571377676110252849635189156381871166612089767077018117457480981364475239865223363945095093765097367547979283122225203791786209520888017180639365141285127038889256001790595796534311689970880445394489071235048069612114921875897382667191837722761380346609361616176542258331550022322678535771555829573252837319323331398502875467690688290594283483010971969998475387545941643846257116899173138027064128249030828151859667390125821283468877660872783784659546862418780021162102348367597771551146010870221883965042243420220617480687374080189658778563491834114608972707238760815799218223306481476258563030519345312565940443155546532886514498143029105694052939423719573150243944083806701573670518046488555930043469636418959377445705655465416582424002559735815017244849760861650593432553253375499218567248062364387875158401111997569210199106425769885163676548268245514744286186166938485445614690540888306735797501734823489885778815513870495390140859478653831105295073657996440981560401504232504358896361023392143510743394311116810831685420126044593849341201247711222910267648738672497273682694280318194422161392778537721582793665816505724710770002653473010392977417093586796895329335264586212202275100182039169484990071738987248498432464709840465918482693136534988364513106814616657016383772925541208412166313858080999420504382641562661311380873643928689927013626585856117955257296194956124834553520745372714397725748791531337624015014398318475614528304759981119821408166961426109847156404261726344104408478973124258401016241497946325578492998537648532717972159631553988981224784624280749152670984058519866754508033993593140021131580165740382974941418732212675572740147953635744512584785540418556564782295603019980281844263421784584152931499681329775635193140285940861327859864074460902965930800767801034669100841388543508352749214101723286904341442325028942661534311436411547732589125506728043099447307760241341492287579304555952578779349302868014758032699704472122068267266645399324038699283933408526972627378775585849264138286905574352667907013758167844874427668394219667590462359026756220618461985153385237660611052036446932553825587259571275409678689678260546095563815642707304449221678626097248956563043580023395631904252969105606153259607767360311800498025652664916856619673704911237077631386524816637122685104323969733251271467194466159654766571615647367757395245835576435156663975899313326651177303663142092804901164544237959082193182660772245416067267347518311098715291139311003159186350669924125209800379215204425200297734891681978553132187316292991728360353736603409124597191155295389494831875195528118268986439983498721276085882128093303168122518065635065513984761139554503775823549595079218186993161493821921634722648274260053785256387898750617063105918815505182992439344227526825465668853421523158492473325688085582712410254944247734253005440869325352439828846214542627475123873826915462176437293621482805094761021239780304760287395438964061977439147464399280989459246495266752340637620823966608555688587370642443558853732274499340280031171784501846658103960970567029578064464919236437198416012961313805101529240986290739539407541390733552077231073215919176279136966163057080618753061665150004228454494481863524799722300487403360971533771357085242557242102937617114899458341680323509552728832144652120977373573184989545884666917231963657434641029847358365619073474321902641485440541089134486569837631698319379244198122765623625949798795674629132525657681862761606857563307657489133587637879441936108211253073221456376254765781252012933438921582062848245998289757033217685527204190392751598202725631765622154902058219329819357504972603557345162013664832845763085783280311386133273919826540314831937095908395208145703763598478436989931303201074824751607465466158930184153365086253883903869837714378128048572284441534478262171456659379756490325015339212763185105560842731866389661287754906993795523115196279058428772427863364190819240559788787586705536918253450416686099567780000858785725192892500715043588169102587931895849191035969439881613355975554076526551288338163149560264899458385610957264457673135803491408883711582020699271574773314165922891678999073587871634286069484967879484506931147839678443486580863224027369556617515336170449729284994596163371308758338402926913877200055126197959544873424717763041170457383728276590540879804530922809344415728260690464574602141322336132556213975677499449024783465431333868650874998078701166646652973554728493727526076528156176063177358075263536995632536864866520317936268740354177819910414653833177988833161939688916575621960084854263438296306666838362647416579343564839749706518654698551633891476448353104979973810789141750586169403992093456273805297699958627617640269518243267305577655713212284843938201280435805016675740923949489047642452481501919503401986128702740351996089770608402329419639782635851266101957761055989861147462393941748126945965184574696520543260835883049872857910703898902962060204327822030655208407457616894022597422484385896838599665681336307798418966022550993946824234887137312652941073875433066656837761315245256165656971684232948235180140726077972185914932596234606630101674345030344353370651199275526922044614554421029011508154211801617808493621223233590724560542741989948360092665724132944067239705479582507440083164878832254980998200519130415954849529830821990348785163614055366029621524925107668404904181501984349280583165472707398834718031162283710608550033789201404167480943025785019809645675763074362116915625569937097967228282275255354687809034934765754287231031249980213687287671085363207506974226283169127143809202912407172761239602673907467273165290570104465581610735337186017421933255181643999072365227434641790886085553974802008830399239140240668144239667732627370674541096149769318908091479407722428669820071718020989812428255367240720271308393714314916257890216254581066264702089404047154991849355987493607093414025083794007217529539198184931144645675761649588053337403183842748105022209250065569529660818096512041443172003012909579492354937798416181543532808465777277353803960416252484248149372045423580557270422272993552480794644205485184018631854875684064225919712218537302211457808349868386346030207279293251611486653589983340377681738209593330952458773042329924744486433746821396298986245411374704236388648207944090147105344431109056824787415954179651709709547116448083499478172332055804135851695760191387533036091868545249051632665705282695872993216540746319389338836673766216455688908919617238080662376800897741361925809946466522251105784638118046273829391017486433551302907966091269722718245495382798921552253621651859930865882039072654854812856661954814584752552204006356342488800600048778982002824104727261773844930944654386902527061913809889611724278466502611566837667803694286809121624478354885048406965103239561341009368309055713578072000867391777101394141106839028248029029011640357762313186796868228462153308298895410534177451256215527112943375265701476375455255059024003284005550962606658432300420115789459027398553931695074521942204007709965577563071476604225891001804581500474638407742590079428673254814213039896079088300564297780080964337278268975096627928214279627133398798793927136390503904487807652464466437611135604479214750944889785349820591493265879856377274709669269169472968927743043935662599181791494314189704376092856916962767337974864758751396150430428308376705233471908876033186103816180970041841802800950745841996192073360959441410592557311842926094620589605566163018431849437243605929797910790079566978388050399348226014067640945491371127352439281682367472534684368307545428666042512509424979105987063159713760542903678492725656058997952671579353741151084659416039921504077242653779067811070561035048813933777639234633149651288839645833216016477310806972157458625027521475412818307131443351765442330739748784757313567269657786508324067842699186603917940096620908156079173659760567896412830619439181242389531267799045415619979474512023466231792510121952759181951248808034039751377061730408815618281395756715717129674642787692501089655456113976322424448841375687931885806503416480651555625628444092735356001087771325221104666294326465575752127125999013893631591254623455470827695386582365161079969052275117430528003534571714900659344571988237383243637268761032978292388392319182904559068898447565106868970295332116431215027267921248762340859162567428675646490248748665433602823104987559341422961033053369839092651842755012491837303444116496654153841619085467338998495559454603029341852969808387432748454268306125852827934435735256370706543405347192187314697421586036275478984130536516439587794597660743812315006397900082817749251074182037772376033599680005299754465708361114826939638826157269667875191544628173528145087167115919628096042332080113858783752708249075437257904185516392239783103733485384714337821166537978374271972405978806503955111673439584486548835850155187416949656105302509169289701660771619009294074853556906835531284780694944734933677940588123441697780008968509647523116772941869488011092933915566665521832578329532514464087115313482605036773257164877724886715789035494480786685869747698573488390977765432585038335401114650036062565057804152082988392370840152789702360147567168146421885915807552490260871970636130285778657930747648885214646910405418546060795102104666315697787048788008974516920695106197805993466805378936508988290978942462765601161614338598750825838380039114950627013977517660487543927786746649146501101778336081885585079861687109169459871506758694393015110238701591918478910757056501225208078761637406641761609183086648334136228945627447302370250246347543063814992444815411229354045737576170513889878139131820411954759228752177682567647552849405437366395697864344638997831425784349503517467116904313978378308802862857993491980941072274205380085013438814495989537240527467949865694563290581718902935795707224746569219472170826113755999348252543820234853589371714911481143950902382567881377637952728051191246414403131232337100772884083036020797658954712670611919125533059813067301143651855939755147073940021162377311182244762917643886751438191457857316932906662461051134030275692383058788067859355816732312488002740289646017433496677276266237925719900183949532158746178872182796792347349338065554386882648369051017651502701234191001837999589280443114494110720375794432643399527692565111326651015407490904280997840378970686140650600896439249082539158387949399667499875704100148971046599887831688432180777752484722503730612214790338699667078564051689246012808827850103880450764749944542424621487607498979635138209901054227313714044739081028086352928720665736232533207804519046848419349803299917235756443061624620349863893419065859497039831033304010518684456392914301878279547064757552738827682972354851444405041685520669323081933006711176512546982798949766317755300519838590852016842981716444712298792209478802250247785424718836116817228874448530527889060415206997542200426884856014751475893852440526028494849533752113155169217408986170291442767746533935404855169962760237822477488974941795978992068393283612725852738313647747776378648631428289037006314343919745149542975075653558885452449605494236918076941773299530483143208221371024538123970535406427877048061654619741888362011609326766341208246322143303372597473482202592699464774804517242232117171826354447747355565831231756260532478547550927357092019934087172571593802692351682224882954664788599256742512024016010333972391566677353147729552867485048168735231234609809316779895801920454813343374397905813026603843793009958162081176819738458492434569715209021908698391591302579945784036012941899417577274452220931928223066168856971636759404376130913641431586774752160057328261535737601733366091780535260150192798508196574298105464338438034557111372377260789679635121319119582857038417443250589031188938302187047208967905407732038661706059456728298797861974295647836996890453443770460364705229239965205363460750853829558389044655514606605248517679498043006135214399573407402483453996550504659420376736965155831919195788270568901547125587415141735095482857126029366204001329933554341272076893918647900522881043088955870846143110886512777740969805134643353994181024098910553217902765615956192031199618520770679935913997013982130218450528414801026967687870072495816577921952058831807474630216748646327396726623285209344345955215623957523576559847389300571195801460221527987630070028486957364337259838084332849270393940272236838923928317773466262088682246714645727387605027783960942407913368337495917603112089634848165473833972004119288238558852621812660237518859795347801106782449414936453683519882984308992286302048960374194163796538179857356066310142994419980537973635475260920223318749364625954076572044466093108202361938889331853375084460983372413325300979641483807953190242591007458871998122033722126700861163366055120954403424897587767355740856963892272214599820301729279090653074165520549562147835433491510579232956375028099336601948821828089377408217567948276807312191537183833408943251054576080528728880175614194928428639275273044231076060101165352416386590692816788627892264770958304427173213044531477951760460354421817347330814957929107982230778151509161749023760765389308614502701165102956570611205592944193839193087082912236007894920595798570327378843450603927543447467856582435558463819648569456452134253728479317917377560377579180632235142417775710928285881707927775321443593268784488752920873606085536012572450874559966899904420521352251148160087015482011848430917192506195323998565678966308421635899861918527124492494646848908274736081404646940215946013243365647260062812680031858836743980717732699126175467857042260777246750726243258606295811081657015690068888949157376270845935349975313801702153971230138884745487839803816516822618918457503787740226510791259389473055414661245168143001465599474066817420968906113534373766691005852922825923052743482886053056442463478806698502136402777045173189686656370987167909014237939599621167889419263946137026548911249459469457080134028810897985234913368975274861783114681997982638094930178623721546558861299185189220244069706906847515917666991167945515142604888447328087607751676400914610208824223063928126062818513443661319080863059223916227436035615030689918718485564619298136975087002871313555033695978896196767639111032682893728146863262594606582621524700318275346099790680506859770946568557145340049320367260881068176241280603278953954410016616391449434736724101920741491389439057721718260248310900371058480329532343149413251697255902059900371982037244205916837251998379089428805921623886751423288063085025364932261522232446970113884641759642565089495670288402548255909255248992673070134438832779037939920914682645666818782987509126236561871381191166491833257904073531243814987799207031079481602673527851640207691168968757204733530198467684624863917341025558934727090854524721823738660111645788372920221222843361804592832454286017400241841422421300296966558755336721596285351568532069560315807562014857788287333320618801201227056961280114370215777924137322989229205837406367399986736044411662265404336944050385046197184170644002110062358829314457595152560915996518386783406401105393688092024320154099199212538014125103082783097085064466158826929693186879112722996128876300512090832492723866458571184429557191464931128026200537304702117312638502315514304736517823913238380206292765109522277027476746987667467153964610620222835804416111782662165499533600553024676046940007573359682925063509370670577527491169160270116438361474911238325539886141401950929883498172380065163213886258555583569534041801165245645288224034134114837502610503792342356925392199942088895797853894328575458442444854382463286674016179875893446820106974379574416787730589198058851637964993475325221532819135451355071383976271006477646105123635635370404506889352315358696997632960453090794349400452140613469683850133640088045709098614339371415641755643743590042312132333291344243806650232550862308545501152250502507211782682089344550388166435168329759258574275441740545640257483628225332621235327276891468076131066129412696308326956679501203659066987450456771846137501003183075891339304708151003972925375328663967821970857627986844520534497866730112452224372786070511245867205148510250279950289458149454210661157929355401522037917992838727437576851145347037322933608337461791358373039259629958785157935951869527552898787322727993203188604996529780260200946619765708854031551234923209844995046916950112053116118139587349706706898770294270859628523439942306247621063204229806077804429526907547899547926578244991895549444191582057341846230888743450882329827273500613631299725428136857679474775353297822848564140433947703403394280056283287915960342877094593355816639949551278689883059836003546051172520901637871471788369861330798842396755867561514884244346689449451015289250992625082056437428255660227352329897362582261007781445038925094641000336782537494432661008236797884314600458640854412472973459649147837318509207754876720898586266852643219247103567761311127680702375087698359965135770037839325617641693151349062844862934231013803347999994094344387232723055929926005661350062132841790536486393638895811857427605884436549766821562964177198883611304558669456593926931747290012233750890024860589445752048323233041450427883590751849666138301871603962080288355853387168826759594179581608938838017547530063632693223170953841240653089718010413405502414816265357715055130781983839254436033546551146295145249179592973316164660483211143268498994681336086674961200811702310022275612926873437270219755562695142598496918971802555347216810140036561530465076118439023410695112082437856430477054949044197562481088626595946752318494494691501416179084231493930017188955058239871449732688028582092665143213474622286007591701686065302073411877781051041195328155623202063920555853253711720160199490375771632736881407911732350833045643428562465363817792975758453311957030591647011676966524986559007738178665923198122113360267939080979541346287449793438599487420744096908606091593091442457513281164314135946171283752522124823661100259927062009640105516739292439683717383768593305661620969120518276999644495029234565158761029102933900865735347109867110033171132899058116417551810566731419859583227532064234390890969169865320889768296469672683625309923404684917411226179527853385575231607621147080314787974544014682625816000800235109937620203313294652069959928459719068063905288121436489352277327065832359035484514920681592278265192244215759063279123146822894879400933947023879660029734094531529719925273386279683190641505863727213809096269254685549782208825237582974575044013437604910345931352888103291547863699260717218433975044445931388305793815397108505880982390890384893972933716174728752097140655927016550748006646837300871365512221618181782715615589357120500833684832164250295205999768707925626381314313376559162933958430036873006030365000692110361032945663315825873659804793882639124673965166987879980567430183877690361069564019826320000245002924881991133631206547502170492900919166320563885164891915728667481895545435697920520820089803606445144475711373414727050686582002912407387703152892451570252385331976962921368059749563500475787677378960017537948801297536052059010479645039093850952139482875346977230055697647997613145170093637976596472250576306571967764330692669236789888248764020897947128423678893119067743675082248666826758631312748747932983990975915947688165220317575831423207780428425033789733844943371162323745217416029460234894466821539836692545509407684995331060138870030610791263744332326525566708121091714402789224745450934309084270021308731648727696323065136649984940174126510887111624572671689305042228613960992770855757616786471835388536612908733931605630322039408110622162502191629544108808151047523160551947031922729475403880564418175025267301861792911455720329192178683896393920633151187155523044939754939293542571546011076352104358610102888456790453474590625456899014023076562475514220867501388748610787678862731516943684090089933626939085641433285936735910119082621268233847404981835767561426733820743090783329080138858236270511895478771529163138686042393345089592643700617061216431353536630210771580539541784903809577596427354328969041287567873233041324702153065962769289010911510370548533502142440380140490635469098758008957387790060294644738250762664809251180965806251712999837758907926721686375677402976637344293189697855993309652132236718568617789222621409457021044218516614801468975009224104423601513411177585765643242503834050748493546044311195031958187436042388640896053698946877006653872869007719199700586347200437189925320081126667451152360752177872420960366259527268843765360428412044387944875744262984092647581505597539955014635518678838579916304447674668809278613505171569669146076493962138327564242164892732447234074064503633028981409597177979738634097032230920281976381939712549239584500844520709164039519072680085209974364815636764530686030416346839954856035959012858542689035372289126795238254594374600832332481179576270411317914769964124863686223664703271042278142815712815588989183394982350873941129757975568734263426028086298003334271009000504852843082204396681787707874129357387924661867829583864734236144185030086769351328492194240411585408320577946071093349538389857676262472620472876021012999297529774392059998601584343903400423685142719784700327671762400269496178480471166348448771151704651327560109475891315002278436848509379744045210893850775287206419207874507890770784823796521177268492680654643728501132689387153659229631271699680325725149924812628479156630883818087827963118943104319699866432579673864073479758904724227965938413429828367448656343871247022129960680647282357687228661578444607204016785152690185356986964953953597943833347254213748039344236686568198713370496660452694463573640042666895710092567745410720649384322825140645700847586761513929857858179418367982877570546575298659426073477440272035503518099887372886726229202208397428474483814359279898946420865118952334485188196563511406839913952710754613578194848124554665279580839870934313047639410492579908496794839628433574872998455124061741055799087351697671931931183931770024805070783890694601866773124888463011619056977982219265407898360949263323396440540068658313251151631626620259529351345558177475967089105207144332220383141795764744899715680886276001333537851075132023437786254640633714317408397394073669483370432201720677916380772126868992411911619824132832416327818431553435568891592515902084045449571767568698904544868303686099096712978259118770845592096240952974358930201559679395702857395657839093401465971123743438602214390745197394003470029664089948950897117366547533710953007693620917994282759958991863757269177014729767321152169478222574737029572604837617113184784651700943085959468214969423296354237486888579109043433650821323205534026313892991008700988095825167362841844371167170918896710741372938944782745232288612707650347425831408127542186845833994532097694808009448072815632032988714667916403886172303778911018368870496003783700907145738836425823103115786382937240696237749943489887141528737688503273738237712242232315406956875581513679318919925052074207901603565398358131877581750992312580190006856955509191863968908345202561410431369577954151276964360155431862870538063643030980088017978369698598349968926794662864730613697581197335917743165138847672737138763460791784198120404362141406836521324520053443536927568902117828731303174214468180724058675295947293650640379306919910311783317033059632025535150082571561913880668633310264480558421502805011145745293923406789041559115701475070960940419238713651940095716641850060478522517458743940171946856994242595369526538791510479183338920108555267246332688920424048634221494897325443485386542063239879299616328887181643005729552059483980444111078160153227637311286528668213746817666667390552795970476622077231770437294278111554019452277462726993553962738269076314948335041304318239116025762120119491320918843892085022969573528498201773678024400322293996599032537011917126464240778224734624036124500013454315892956703913429546957288222709378311721010153862583078538879904528806711243205347795418076876777030498559088502205668119895381790357586979607102961756738503111418132413160440477540698307941834625405452091543477094133905163243242867719934961317399871295828336548667859085174586704639206484649333449946934583883564676217150379921188416166933964934394996259229633858030564935249251590545310034135259750518206848930723197093644573817577692060714774066142742442036809386222143327022328879273056626685076233346670251166751281697457492176724169716225498564110840229410312612759118874820839313528598772114263193229975763781351295985359150459527757463089347155303473471693512293146837823220646703563363303873579727872088819312461975587444634776975576353084997245346299115049771726920072258859197468958441452425344745907491889432158719051665710643180583674090171798776962757792786046190460400766331063839360699517788843767577499503377705690443102863159108445289160046911118390713052790163502206657584854248991672173189443545855484925748722160569098645084905550460648780548259021690170665510686908979706926240939166912733048241491665947375933738578984877087734196838366259136320691971830963704405532955028768842510635662722042568862730495128057248579292978798470012694275675206276890310583578287337455169692205329312093353369409547291357932868278314718313689105100292848548659513415533257041971673722250414589685488923978835010554196634296094057548750006598024278481692450159553530759924591992550211046327017300668766348120921016215847241004507248793821992479899030544066020611920389114484055532434802378171339020061582022549978497548482983537995348978217878080384215409474586319676544027194072918111441882505540296535629575738644814650933718801609381794903323440403137250642769457972497977844480866464029810100657202545894513556132797440533718348541985379340414475285246212791659071578635558296258679544419382244084172776729291551177075158353975008840660855554182010745516738126061685084640103619711879657957002775622420300032204641912415009018577801287671678028508136084878948225687165542578862956386892313240838293738004136993132043187378103312379569785638928045794949845465487866303208353720817265338264603173614872831630707089775480727919405326862734718331005786988539021684196618319671354970991600669509277144837573778577897651141111620269252437762412651760473920060447839212008740959903236487521838486813928008936597641850548591925115967635739743639321734078834488467487693662677157978706027221206828310020668804058175227862094372289164198112010103691669063761091163025049742974605086047777232828894068601761053018114103364884616859042822137705699170388346016592327454049203448578655961347816756499682643893233783149884728563674567379574265211951503115401433716276206934811919798037954139153562574145277338631355274810205535288032465092126439863163055593736644506902168471910726575997083433768272775154907127620646951760158370710883069305419351412207241999902022346599161370003897804993727155007352716097818183711031070787022456892686383057108112360521207195364961502333166672539428087233134507262835580364331006067049368763303136941892109753543384434479432241622599001686476134131243197273470212877407463863832931715980924640869606706618600338546449905308529362125022623048118667983196679399683770317297036784623104792823027365784692107417483636564637568612910740498375803303685787304820339592565630265081038474661367959779841135699674976136382049481249726779468638557289332107759299603032952750157505844126523857356364777121978527213194283797599879357439165848129146942414903893468352079318137963254671512962511567413900732825446480431575892271648956259666955775417822805006562726648138744201274753457099531538292513297578710754642842660334685088650794482963095378776155071043643920072600905780787885777551999191844454006044666382026559526175078633170656530046991076337720095451556427161934106652710331941412752331962976430499675941108188484450200070057165402437190563092236793620368729298002938333292052726969479546562372349630321855702480459594341023750736633936399541475478490771139317538392370018741620904914106849267689143232449369873942383572777938773976179527674377000937228594461755399085271924945809487804696081643602036477075566311436132737395111253954826665738950038401907482943661945085200214877098825276178238353403297230846807584620628569243716277437901297083917134907146148637968437102384722443756653884550447766387435337964624799130061135547597008925758083069748577479419768145085769323518681995067599772287179814661312651803665213648343598072696692152419001734386079405878077103678797280323612929063813563735088215089676473390270166440472524690510859013288036815381791959758407614210997100691954361838156785928808164874451843425072697784224459496317110030663062257291187852899878556428074119985506476229008317616457155771144659432651231456077859225404814278591010278812578269933422254957392821459389191350424496924018807502518555490439803072102148395205364807652249606484784598858002677636554072854990847145564948311173074934939524571421835303916933106888407046913880403804819543453877307273377009107941681621578707913338559450051103025565750774548648918257001904035400274446861377393069303559775565883414215609686132635631368630070293297625465820646636143126608946802418881880532081448842529428786394558005442518014467685737948259338005663660227509744439413402036445221444067947505600925461302115644604017526908327653221917096540843106476963876822082065224456614571536805165063228347127966156377178720527015563270880366654878623209879216905209041957130884294155847198143764862322488557909433553132013109193744036312447248160274162823909261293587190850700049575906129484389905228807444364491760519137988529878662168698612696825067453355526628974120617852298976052574373039263190647222221970536440339456255607581536276443727602401704577694042567522278715065973110075510718075476646000070763595654939608848027661712082081553915856086465839149484853527259739674706600024435246655585790899832754874149380291525010219585278372208342901554452015073055249956820702459077247652535213124075825403432328352266148785056362330851886877095042382434715125358628049557330873332982379377157810725372058021200203470549964091982032082631012538933225900254205061567864393895294869111375071832462943365534494898809342730482978326097869899982795439281015729978007697782463140882158081401166612163793213067231006763137620767585181315992594094906990789723880531118900239016592020915892237381406098070058292406037173962258710401213688745101657175505473359546214690049088466566155990559779693894052648775052746086716274596501126171220392294714585766899679791961384077138221675561874363397750198693437755208595342905161971354805339624275463337311117575347931511099425521320168011495588678501634828945308856718647755484621028928408844093120978682504165662577627053104772876218412399383193810461214915351323301010063549860818330522465639244364988461859062282274123872819067873509047763321009569361889678233387074420797117412684285010813763653895206366136158315170958970702614794135275122390767868521022873351028547446547620880568695684971490130047809246511771067800149593933708043066027552703016814586338063133426381579315589656129001000979419525943402711959410541141002677063653227849632029806445675462652733562263655950046376347314936442436377269710317000101347255214894284254027142501574904724824225471985326118020604256777600956537241973429099605117144065546742071196288297279957123946739991887000499473670378972036536497302819863957835005638699834697579140641376612306002173811494892324344365495638000258636094600449835059126771863538806783326498182345558102578127397210037809762102013468312608987789208252773487599045075043115574298053255055291119159008418700932038217696606958419199124729831408124591277743772494099181664540415008618282451039957817793299592024723143733482387234863069386928388259523399178498052640489824080029426112210723547581199481107947141959489332363302711303207945492854105636688289107681036591460338408090655738525285070980138915331108213069604926322452378670002078389631134397903930404297701974329498276186755302849237524036031394440049496955296859751043712054094727296694177840062578900906632095024398202288672535921387561631883722229147897946288928015567452235450417333896186893753534622725639362997331780861379727795015888768453591774516317405440844182561724357150155118070046394877220224494335545307101648528321186835264597107478111571619627150572732805433742858277876959314951549812749673803901044394241293000425066099792566701310639036750121530214802598727779117049965075312591154345509777093367535364224012636394185128919126302470950195642612487386235490221605254068230530686977081777793778363931535676163785447005241950855834827092142478000515022302822398141046499948641904589158456753183914491258126946985951223549952731243243034675302255096175242614231323168188075757368029206901886953063847774544637299297762701816460401587995597188592729078004862872324530319932863190940200851351120238580159483134194293290232119715551957833829260242522075081222762605759590950526737830329710864651307539916458596963436819868708836265347026909139100900935935880590533164033336518994732827556196761956098896412854105312518659380434688866159718697945729849321265382606967833914745320231488355068225769625694081939211089686056224723294562608594794999879264045976488354536608774025769511690358355751572884685639989248415206931385532938864276233788723369498929326882613983879359986589189066336519883616940141787847875507402362884021678193026032372926239222140112544129946352927023447267192858022613568469517211412173530628961530141297713418192714289590646192532600990867940578780259387569875244052877244541582098208453661566139093698713852351207582350305322669594222835730617928947778095456156952487100474995403441493170766357853299890418245487554343600092344437437425456320541264182148283058227885327551746211053225916169016458543853499501956177179050703520894949067153033830427112902353962939287437515082754896681809315668549143946632772726807579065493856904495906701532723516763122552045175757666501783861781151520468346273226910168245936502061322783762133404723689807037801067244894633641199806660767224097368537215396887183243119009780209969634168684271043613180168980167848445285141061849011255737641163607582332622286443395354538638992255306560731103943409296333024745552915364086960513783612834192440800463780831397511011283665151521702339227566572778551369181780893628728342657550966758071849322883747481963850324523469934247200342811723146908150557441224819082615402509353126808289215204938934783119868266622991599856417643643324176551185509231140502673927113781265477560681228536751878863099827178421710561869727313144375650049454506684596317000364976794583774329393408136496890888582607062884281926998152248598453005897593584535317366323352723844579178617757664168587149324522071508454673079790154272955352018542292511831075296276635746410770100455389171007993162949413801798067315116106905228406909052164386365592614689847169283749967612634871710830449123995876872658695851132405345221493339191881694821566861272965726454050083669445512859075756049832157222587647820709206694768111477154285368613866044004695514195807442864135456596119879651292293461937669655900053339514243314505502917703485830471969720381509368771382013847767864387834728074982352661490479623544975771566163365288266642259363207476812754581623854060747128969101275512447136701607248743537437534777095877715207641683914965966439970083158399915370322766905566529031512947153221086718881088258711039560201899040939730086340998811512568585322880879222733604590668695444749101571610051859086390059069558509350311283221991887901069686780450815445617767291134808176558410676333004202186282156137237138739528500728406303128956316640884270280697447947639757666151039899594318448967026232895334849848805718924593821696006453868860904709063372598426653091773555167664411764259227164060983226019865426547746260317016447206586201530158206343867963437291534213293771979319255140089219899241347775572615510415821346784621891276726949985276005570993856303714100631929626332744908590127449569344041460962393765613806754660839125047328155554522599329352374377265396341503342791543812830085462524628233924915799480260891732062604896212095881972271222887406518055697832552348362031372929603528150919759516840384962678136266772073449359116886592616082864868882477630627134394732859809686200723413385041431397633612653525767056687477563034915512163820743761165795985593281363020535727907700922176126911323773618096283471293674577279007616163676486939782868602902646005393767336814248439309644779341155987554308586441953274009036688367221460498309418051373677709519377407591593446925472929796911493686447964946675982029003482055392620838613790752153334083111354437797130702242034886242557957462442743895237360480263031411200462628207230574486444466079582241323635313638491179977647812067236097550827230504698826412041308576631102757015458348938127343954100823994366374478684048026725210450596804799853415251144335980773001790108842753287489132867468317668093230867342760441847216942909272282536972869138513562305581406098315359930361578721424746834339540195055139733006541382912182270559841255695994166946667859388509948313867728572188706060874219908926149228106691174524481418574855052236944009176634324344436420461454448590657367934153570790875442059704817497762790084855651337169952603187100020661607279791459053251730484337082845254167052858772633824132326982000988521486068166141968104891036997576546556900235000400371439184441236356243154526623593493567218752698561436313544224291052380170814478782327694022970772166341336354758440973844157813867864714374007416344481212848662284054875933291076145147454263372333599826976196095531188137862494614207151172817726105218452153499336255712763977430107299786174200001827159791100371288054300017714096397604934415725957718868920082765495205129957250008561487384658241193912639903394962830585876371004294534219554075728472298074989746655835867444782288067520894096521769795786930702541688181569961358191848857001260892114418749634084800022553824539255857116279093324488842656690117893014506604525768981660706756206336826048269514618145941256074389905079008677847560362767052436984659435122729020194058356140375586309846156042446443940517023505285884180656127352624542085548328488872442066161469861793187754106000275024102725993008364735411100374079417571590316086809616612825211149842962278955260874119799998412204449906261508440172388627802952785163008794502364539843417940936292970759648499792978636483077392954001340569744940595099315453389005826666372360349914459141684051231552194685362373611665152083892163146885213159205930032727513689321232213772280209695835070375850297175291710248898743408479980366657060264411747188657623276446487258905981900375255428753871086536996230017763316491876505835907676004593261137053448558775924507011945650581725390112796461604810898612083132630177826540858819237768364370832681288340421765266818432966830496408266134730515760343493099096085025459611206461923377598444138963176211019773799006307365669836914673061101285647993364840237886183974268537871806313733014571505851607242157517113669128105913668961985192574552087446076145406081524571916165368842632525313146590881559774059849451766862921539719780895952583204050912111498636075233235060306206703661497157018774680060814264792174738604920381212816907140463233794859174110949257625321362388400570080260452146123593148786477956288981342119906610419517781089167992150411870839306739131409718317701436212040625253614484199168678953028877969135139334404753274664658811816174473953552307734964708304427266923073150123466937764943418582151312487939462251900312370950204312324698769027914121470614227696822266800171210091186300174629773218011991848642694489553505742654128862489846832737092618962355205539036442954294143917471579699181052931890424154335768429610204458661519076783559162953304270598660184714869550471619727361646480391378398357362821773844533018215471758299613284364454349896683493727376675324962024988865083995746238694654824953783593587389266779956575640680138535310802089344044055664066834602452648741808254895292507858221665475812242169769517522626391613760509725510379773480994959678292004056640288224094901971079930457216911723838220376071803325774558188033452468040251754774757011629801599251275244749223074719404722082624035826768437768385412824166632693889596967326141829407051577434345639920537835621480455481527832178001407395605149270069599262290326296278740764416691984759857130706744306612761026577501771413077420463793859880506501641590894619051720141489851219566680404786820933646770296492149934407330811212623192999052688829434704947636848563690771539129270552085317926345266426532144884779115708448164538770939427238612552591096606945815373636091594238158134060056804118374232810421831024856412498963233945391774230966923830443242918272942525816380090149425857477784451331680470701045066993959022734535276581428564409197621864902927935536633997147182093540723660846814645379800042668946737287450670530000087402871243972568860447403047204929568903631012545214416834412272270158214123677391559737692613626091085706925773729071996760166406874234903809155678198570437370104346695898943203391474664787786249768130781318362903304456151829443197542458819228484916784280650479057337872295064879160369653790410572282977077505223930129877998431665158536286103658441787019163804368554782031010715281251437765573462082131788829321974529319563883975394981495219014147609563058742628076616169231322191428504741718859085362560322226403264969451385328243884080288768829923424376579968605024582349815475000047640962418864912281500697503162219952711445382932688158939073578435257342740518717279527474286029616309236120564364217795505912155815617529910250545041642877312906986597218748818860891401585987260250379555720346303609213065048340874370046600631397644012596661063372075616840734386270181623496761996997662048030729912886106695013147429063777594144143106347687970188169487251434664232696328774403694993330891767317397984701783422380969756587214934385960321850863344432277383974960298906995997320394743646479900487803097767036462350132611801375960386417548801377807356752010084539889582818233069164816642818669853070618507989209869567734292708011556201050894995372299078372900305346694160835888885178465872001495215711944476316196006196605597346782809975768988929975354085353504225981359269452818785542334574800316688920335432923686455581181959748827784585822823513519104403564749108817845615910540247157805610297322842287988366734973929265993592431504345433924187578752843503766265784135891239377995897129460718668154419993025220701213682132416365559211312173875452125684753761224828849436027805591648129350626411047815713647253595300162659944641062522876612453228816343870027243251502412934524029509718705226718104822319754299335925530827530612899661770322366950742512571569234312374861814741482486270805276277622402551332491546921982072922745505756191959366482934391977363927711285830832753644933063862595169755215399836191268164129361608582206169536094822168291697586809916076436183991762389458874124167170883366726681948765362439302198379622227109213931121521365294027670130994480107906887404639193845363296806699156477434317672869330829707652636324612562098497275153004261894027217121005765528270730403784914251983774541820232651293769907596776499976336761761001397643083001231642108042848142765395918491869735188607056432497339333366992587975266148737873987522408433471254933533840390581216538405629097426360331503850285661614046050157121639542776046693397406168237133169050185675901649878035521793076420850401681577178831712042469055292611357800376509242459006733462140916218034095040689616343485881445383851212478127535732173445242838847514243634930635115256384496575405255160223495785073924653017290802715446040526539023595066023208161325170236888373060266128643192243324235013709783480802714018083254240487299279291099849433302636883989492332332048409422682815058687283062404884296499502135602586251232400169309718565037077146693749663503699994883702397289453125569082341004024369498564668480288241137771550279596148884430660470207789426558090781730205048305562327314038577463507901291312439577113685621943901439792787678619663451674971224485764342968033672555231167525843126816944787113141795731469339801921051416637333347042255762027098110283781067505606563736648278865987449280277146339732034305861127981370235085865614864162107019068564974756047136276312635219544863569857957613634467668024388114759735172765960744958731044600531088543874024159376632563175881179920336590620134701378874702582622663579462133270119709795633366972199933326087052173549824231165701106365210840945266453419516331965245474913779977426250075243526540862731815410282809075799408818194766618287925802947820779623508238599968503242210409764530450827530256333839316703395753014114340487802280014136362562436356972436511540822976349234042595613858250030858481966202826154901283760096818632133463741823133345255304778778569028561810197632460876817859137190104334936900652063298684046648076508318958483073224472014104773872544685105394043055460086511540402727668841600828336712218730382864666592813877388216668853511702199916220077794135714606675849311875891563658302032660768277570889242419300116528306701475381475926347210523862460839165338956926674362951972579162921128612329743514377019823935693598925007771182080796803160028824101142819612426113877743543855254221497168200568725202140846698009860311112175419766073219559369692259268984385051990011125940068634539010849486792431904645075734512102860026969712424864764658524716027879748781430503353811754821193658129800413695125854958361021823983505365548099090710629642692670019255697756005081204369448216756257624547745887948760312500631829375394068457470717116913085735174246862658812563036207750489667284362321393621930470705670564742903328242672595520686785463823335254407277618500344206076591560006056714523181529432264022948507706929924419929449809248642509305403804525420446748381166162796851434362072400279008010916728437477472504006439653993566612513575798945091941281353144365928396177627293155493345482406504981573956456310862895371037596834832038666262137883371259781837785773277660235745183843262617471777544184890759008072680327060622709402294572593183141738870557711730732266188900235551589614867534986341546265923363862790126400459821247286213984224972720067587210867960554107226203736297387276070406547457003216515255923315801837714110583394410017592852918921766879014281478123790042943859430676102111437273026924271109266037608744024343573958881541604403884341974346734591626600001100312338866109292875422816238388368537820103250020830460027716400227165796381802078709012764844413722008946375282413613226480345998741800185110694006645447237464187747901758786747138439982018510296997861529046660735555226332198221868167342033088284248868517838175048529830325695261994275375315999741738401426838074386054630491041896728614068968995858856068678835436033652914198048070358717406001237295780104834382894928595338848564991628820416584841343540130046603007545366045591030706515706283550772402063413268280608735394405556592519796658537917149184210682909005574425160671814225547349996090397532169003716477918111259954087792103196361610773388990696579714484018198419726937013053301985981400853897710838822803317252612917525256211427999736937659614553982629098255619351902910814467459427213628239384385582476695757528632728826816017724912610600405256697638312599202694559862516865321373815448804369438346486328272094719543255172591313702503217609027994897169493211992730280583686608224804051733600486743807717117081484674540422091183051925112504913314287052975199354308680855271703801481651174532790531180639555579206263156596456665478379730994976511080612897355701561576335907475308839962289705168182688388278098607281630441476628004051300529968347529184914382104440036990495907738038387830830713012834183206260408754021918915841722271441037755881740610021453684609200634138792123476090514447147767407817630827200216370496543349139404407030742398054172220100560487382292786257480677443335352368633196325897090521152304312607153823677924113110416463837432562704496821732321667638927026712744644849361810801660828096451668795283004154282290162507889028215864168050136520182912623614395309045633234564059570186340472225573988088148145081289315727121418475210504531162020219346212223887147606548303851096624863265471870919122642908516954296045434112388788171743797245462557027687162765646237362671725497004775572221007657882951499694761326936285076171576067835606147269942876780632105924184407685418840505204637522277640500456545766898349227367577129119746933591011241907452904190245912664364350897814151622241283551266898592126142447108895814441541181312300233037542732641096225091010856121248352494902337961895483886074390398300831465896216197862288319778861100217362813067730475462676548029337937935179726315858459175388836571155589518838737713006153060935735445313554774256429823256400661115675258836565763629745225681014278833675733647173162836176925179834217074328517960322679915871048625726187662565196571339165493214477830107004930251751056755092837501387890188228776643371860376466509368915743944252251130129845242225732145243296569243660692866674920389315758751126284525832676250741861038896236340041965525142161035737514207161965907095119597398571198108540729475558193381539342783310353607117065698603043622254863658570259143521191414324392415984491787034738728559630169649547612700832130376232997734294469297899589985021220414886085878071499777650757196343183348727636083642494770360043353299769977613802563944222983768381696070466245301802327587851406147788284152999363392168763474164930693917849078305510675387204550564686758967917226614741307193417621141613822301540456063657706299040114924913374521640093391541336459789642476437119655728689765320130862523638680010491405167827904492871431140350919865471412075559625838743755674273691025494980737841481023756295974929217751111399541904877299992281956751141000792634118249308570314015839916470427857653803301951559844700266148676979132634987223277570429985306399960247442892661207099445811603749929553290965435412066687460115796117197071541398749946337445470629555282543559920859153166236051176972397953509671053997252932093278296765878326088783833420084716071606776192585522221945479240180696913514313713133750618898426586514284657161445667505783080610562766713388107385807744843119821678895473185095581082683080712562067024508872853430474651843531978598845718439470734576489285793634640703805072793274568323368435743057945829122979305409541110716743699447658506239284981022642903816185303711796483828898021884493405296731056220759857425391453223820018043997401615542491971735115404492806801434556572163468861832433353885832435189511309100657936888167374895682920467251004013127623613091357203297339460405494624364441398413925107045279978529790942310571904776500435186867812492380869804299185796856196244730124253239977202026760642469199604656766440188692334178338204263592912283291080771055273637056710190276885193461633306166430296329644940418183698741190657771089151175351447323396033881411801989658427247536754182741730921238529431657614911889115361810233278678783476074879047800677287852321276281240185574739430770507777850138292626554971498622520265814848214005230646024295145682482870401479565807798927315181142944055140907393972539298555000713572564071375955106491335705968449666624400785701217669839211644401531642351877063055944097435960612934768552996500691883886788865384506117793544476338688734197827369496434614765190720434608672900597981782527587890780652659691632426651408850902364535308931094472633544634724877857049578906659987083036244234015231150278771547895119154054339080335073726167795733935890975773841100502991022322010000735854697805934110812965157905132675331580960701961996429027436783473637047197555826007200729701486561095508886257845048520091531922251753131441841361775783729182967214515625823304914728814063603929358611790493651670070281782750017840434190821178410447392098788660257821294730169703613014774717553555582479426274709421876556986259554332870413314778224961583922216111934493462037605019181121686093038062624887297722218363230471427465531613253785787013833233702719510933455679092848370802432050782781797945351904673172632574421336196466701730358650733242317846753227757468990941701103773063582939056622822181312166383153953084849545613552777532068487431656576841969774201168213523808942158298288688389370469836018640488383122317790411470032236913746698107234877009811548371340660989095469098212359251405825798210851412972809292917575562664910209808190449984681436718294756719569510706894310299850538217232711126757760337256461276960018755587649655328549557968133033137140603782914909265639349119509030786059989528598704314509138786131646287076036424809680315792879863410586362366250173181897104590426414468151806826277281799589261652944903247242389602541941677858643568023736628260082294740148157847487149065192647543000397800336680125797960066978065664822720106978525137777645660294665596581348013395733088270801076587714123123767809641329388160263041875814595093490447648197640902764351876557832379997365461162952470745836541745162663441030036343876090730125639499943962894807637793098981250249450822349466998078883657342559905046277916584866172081313418812323882279546609959761924042323217904699737217112724697858211627958668815536533573942685334063968146902937490596636595352809146333224123028729967510617237167302324345267433817996582096813117456471889327626172881246900493401272330685786584487122239270852742502172718757528735321616303946283915978002699253612667342473433468638889079594498146013680802910408295341172801043204740166053294534422015972399108372415808980210355938832478124830990674948618282826820853317733761125850004066372987269134794973498774651615234810716178170688685550141173306068047014954782933460849144383926174567711432858103003148053022972522360578917151010602374730437427567364571603029414072227350403408403691145563339519871299445774843017622228131055547446776872290297077938003486545790653221655387739764392304948582192225030304030970655549782848534400818369016587399713088365634570598341969891638474874034974535120457122110533991598053123224674957522446289508668032904380561411321262906761964700887521787035838140855311289063333885853812156979128339460579398838150154208110396594806643840171789110361468375967153368929918583019366832308092575780158866065388365637325403827577216732360666585607337218407932899325295624933093210581029442748070653743880516337502447555384800940173372551319331279859266675533950694258185896958364123978394455318082976916548542938408814780866779315944271034978372680104625074858193805737290446151631326195376343800377999372195700391323756545734673097748394350687188421144565962871488316112952180862750201463875771371160219437394257556355147596470049817999005376157035568145571054267005929188880443866216935419085499036556865342306216890195843630261544024845569921837088314684517677450623519998887956175954912205110851750008362815812578565198953348737302012426229966792275968727396500746629255565842834148890948478271726260003774519998478081552988870645134037883850390090324771545870487680823514975938273613069262225956114033928268347247007592691673423963777903384024867824841584338322495996222067622467231081408546596419781546662654761153900332573080107687366589593204755190802476465195719465012731671920670300927582858968727093880058694194758813198297970769274072725320562602990257641240998973493875864983065403543411373971013645293069584291212881206479888285030607393006405722326747917162356144160689703173019735576838524581633716038637225861102324873037632474679716460473457774398385137207737636635524710161850453729729316729539498688243050235074597462119985495202718801744188683951336243418190720214968533572470375827930956669178659625065167502811121207407411106199815330458094627443917049817816477216503779049932552912895025389042984188454684155541840586004444061890639456637939510553293117361725220657423376704078943619841834138443612916768524171253522177486653800535063589418275875701172565993097707035621522411098241060035279859012998140419459517561049973241645443683173900604847175277761551914019684190431580711404034952103578438077968059014322055923053233650098274835074992852308129171447312040144252261006423889999567026624095252566973109334530093941390053692354618856385970244193068256453558550253920628480270973059811648832054446707257296164880094346951730678710951878265261074787414790427777810164526383607067272308561180992569562388043777650444262369738100062531906161534035903750162720570731252131390219498796050380087002862116455551133907309335571062869179837583358680304013037520732165600735033967574609410990783771559137752087531293932359581287115595684476295390984712844956232552588830076032800899814153872102247969380225336528672815841204696831317719870720270511531338880170118902051831049979239112417907098236239481141426711826000209928534617995843855446526419716837787284332256867088821212753396303481414468916532864628802785647707139815705746750390595372093682127248696881818797488099525865233333037027009570662642029564460186072776963766383426064559714910082977421159188019947385674601829171424502427029207566459838449632609576022182625100102297242291325853252814722414154257622066641062165674833003933015661877319137117759044024853176746975159818013471970064588505861830602487999990615674808719524361246121251491520298096039758033744849124632469250993350026567645354807653486475717376088829421478711594310715963963193538868136945630632921525448285774077732323534396893020011403205452091139777493141021570087115301191458449247623025140464788196546010652611069591491266088615402783976324208166081796855993728212684297321592731989136208987087495511374455670251675868195623363404026227733615566162328425888655074276042205823766532882723003151869149299415297550155662606316026568361603613803147935589974826590167973560997485788302771250398018716254947873767670489528365041013196609333081340382377968445015548843633171026716804610662118363799296208878551499800085341877669704679605134365995136395603321203667720978133044166605805779689366063552325408173244274812077517293247042198715675908298942510396526734588422528650601784219910962114260088814573354288275997058548458463044853626329009417888566205045782630316288307920658599226047528948914754187989337092831980836716153938236840621535442814626756078798363209989957043889859293840762842587510768603983440275012240487682597792843492928548092517793965739709083846645718015013935747018264977202154432426757432768402706234883737340539675305479390337745822778552631801269662604117721113755336268332829003668109598370075993262928478715906927364167036871461507823694243107689553753922439749597255773805643623884676808765639380250545055845902935168203236864678545243523698921902412602101383711198238183252132254300949679102959207635984668825131935984037528020297507772092053080884343465068743756065917480847463636714659801607785342848415078325800653556016034484627299369196540446861672156928982329223597943283935324931249765188825814809274958844923904324458697965148995346873784798193233352766202561405266806137208184654679367693721657829170027739213225426921229521803846586975640019339909711309258618832634929241701200746968485019749179270908068184948900746525547122242683342833644550213819727994767224777319086250183385289100309511199153347931310316552684055547349352174953476947293834052675701167845183449867625626700336849822630323362316865576100812011195174532617511989375085157154633953880677700727893195576431804771115260470373599958640695377035242171288072988169248534084915637429506877174224777079784428959806143078380622599034446637623363885200756907203888402089604508896877781510044320631213561207836516939708506304275841173228332003904734428612556830040349719468748126710982825777010046254202973366152386325338953156515975460019865094248538430994529359068361868869375220937450188946066917190726028943359248421197379468375657108071789874307129032716169268653548465688773070732785738029450262009545110006901499601458533067082558428051650499286606394488531100124121735915826344490175748247801457882815868531876656966712882590193523828056692487029908391527596572036739659344511779088157090565385610876755134220872957097881647253840439829995938544137845652426341120813735811572632780183342139346003240222455109609516902925248846533752332265666123269346594530747389189829455576624783528862175715947897637696776836660998364546345349762894335102595854314160275178065615613520969833769247773974952820783387603663219838423603177005405835019553936576707887161029756282255892472941962162626269435816130725497804050258615730554885549142751578712357896874908651903262173829700849126515910357475779226472171168943822935853336799942328469080846919305018079763983980203223866194547363871761881395690251385040121760612788917636297058586586750834646177169583345878230859653107786975807794988098597729905010115205843639842238712565287739477717525382727289375343020261255055682778666335222596557391569402799134909987611224847923404816970828980982064189222889181217432778758274399776514310728313738158941475728880019126912908128294953837476992079012699686101689969033872783533857092563081937826707667609773821672848779976731921177392529254951053608166718875609186317969562816258770861584883570213263572608072296701448058914783526520456749798781771719121908776735102375512453432668919766432202674279078265473551556816322209421890166496828488708219814223771774348002050685953575846982262063793240678437222242584562800719865743238921274489173802821562090120221879927109782040372216971286760458795108583255183050828249119377943699256878274074960560243393850105393710941524222636347262416702125296857196598589904393812964321667985003289019163237134050563376361687719453992105184975534845719639030031451325802110270836256511619088811132082273271800199906962028190498822577509894232039726889261555787797948455278951398457100583308743447671729149987935157810874878835465826984682254577758511452728252436655636173277909705730384467514190663011555390527408758762438058111907969988004741914960598848876001177100554880633426215277470999136074352202162314388455184435444082958536870995712645515556523268934960201453660673902197930872186295117205765974242133952693158565988093466744252375980792352068384704409620924815591518937297988343863412310951912112436954679538690986093806785342361245042513202265916285905986403938423547436955689559477014579068615521429515733007596212823141370877218037962522924416601535693985402173788816584333957880445222810620492559543092226633553382505482884359557400323109459659051844516392090319536640771251714426266767132382759336673373481188867425965708340982091181918488623352292945977485771364688789185181286682025753906821612006668093959944560469418416700851174704357239197751264458072771233127133860397887558075548310851181675957479428961316248203784489615831906213350023361167450949714067987686289918231351380859729036930803853824389896993065748726964846641055644786262293194277620453649266995449517932544368221984604407163995646080355144594948977915403828321133848111523491027770294473095972140410793182238638271185836623626919585577098462596715082148895065310836864901518869041202767700837379826541704024499269738382498831271701574591181045782138981347005613682057372381676204148375763657329374777266042606745871461466842338162309948002330942466968288600553175752212709599314943803311543587369809403451075917406923660502131313671003360382156484619822466650975213990297667710447228667615973458985400272324477405397314870849469397815151271385559451821181552586475468034811087589557670815883888222674744752254037390964382568540312551068580203236021656428008587261910505962168260391435636265915893678718971037747688473986757181409349199973378233599775879040647745661053338278783817075700217821810296891969305631653147998178425397896353332237001985915023280139630995443359225963328501993355350308003624831115109723428798543624375935735254274415718338567094419599335746686681417932218438985615296262638667692275361919617699992492092381378989790025289476702386001383900271279137215869543440950006655115181717509543938268076852995802947661159377543256773207759305188699589779210907059802050887487822644884121206677762232060725320408313416008618766278680191866966952090440805616972722865913570459158418299183187595290419757674415149639443339153749128728314519487223257143137781198112605575669442055947631736771979177830858856204094564241605743926765001033738182386774133579314311687584359969296524246980768495005359891975705234389245046443416293741848302658495299670228418845973395254190829068566183491840788200872456624156743167567266221566673671205732505396644648880890288166153516641538852398165726678599021238217037720167396648069815436703644063865942772242644835008621320676809697048212577707556893149821077259679137433983263547260019706424253148368910553612371449194752611598635414597195893799760214341123443949967942162080399299680653927865674414849524815387717529198898577878772762568348100043651635948712704849113042290752631935784134932138689663295307911898422979400803008751502184677137507537639371671700403291518052386763326022440781480888337112565859253941688144730380187345449933633636706209153542560499350257739504593197173233283229544434487116063956417776946889047768717533422503895859071187547939522575936738900953133086044567214630606213868928537230694385207998168660199716042456119815290240961314194118597898607568971637902607100329216476615327232320946729586599083982139220136903801362818733852752295914316749306911493696143253097139739026155890287799541479528535592006318256235194525937243187179339935495385166822561343025080667683009294056335348110775874864534495323299547465048244697143329984111505359491882309111133776513903736199004243947673520759995306287062225423133553830445473511696281644477535390234583241610868035917494923869009028869143646981892483699824953737920349040877326952878325608305400010122462871006009328725579483954227304497294194695272125729087955845228427491955580520503583344071535835253472979700028277303127695901103628641412410001940285444397571205057937505981798780934409845237684129508996835926964527812796618862324700343854446229015800888004053570803369536513094447087926108989356879345292841499979784240032604470924240021924346895791754640616757882591737714655539555427722386090133143444836566900715680143857991357054246755424499226467568877504338427616574405941177588634836678485212702203513041164352035474533004603140751483889519762712465137100173957412519835744185112908785584451702572066453121940001592580705537003493631092751146624153981872972549915035251681768539088065900988261240970284359495653283198905365412174117721945081611383786987649348061141909573401358738141121017068800124685549882042976469001942482388693563719321727925256350004732953884286938574807123225538115906261619052074443305646315019116980526928647041676441391179307353407825012260188662893030438007173159916193148065288780585090040170050620074911367608299517732103428873528734819702936658173161389631090696178302695113694574764318414498025501859068747795968317278690619131351557237420693853311424504799012196777241478701995299406821391852769831340631883599460395931186118312597437438510386870128051524806362907845834373716725718983864726208945955670671518371004556759593785619519944440981587726341412296193202529676074004201532783393018671629262955310491438826665242467875583658032465420254653014411640145402826344666751615901967721495704682048456321372579391867941943634909078672000566903498905970267211181218801385390354310894714331284672609568140768983592286245491709217062345424946547616010109743376365718844455743193974310350386880396382170384713869972490845492785302495688175799697641270009407827736536080604711272036158603071356585755259490392525497115668376599858594427573508990570322276265871192632818173852144361109189233849921364165789731191929787291979551474000336627404522375663890975810492584612007521565967880095590633801531475090202681547223264503961050600758661872299514196841931889699818593465092357013361972663681655003245313206370173987960177504105495485300732318785797885614425753626754653525307648717042254730016159745635268201249775612065464208009435024957311070385225626962476547921653157991079679449243118057134504055904486249232654393788733581478878538893067884390466971163117769046419310860753401221389698132335392944330928296342209893413638143966703185466334777286342667700808024213402045973639733829897917490002845303807203482077525379750810016647421688811504167022778546239734782709010052574600064205240318155514780147873504072061895939634512933092029168310072032075000160454193180863773947654082545399429911783368337667379072161314768331685127334183304303509538893907672994597230669631421176089643217170017285848294625584008971858272790694528856232009619525094683996953266198656491206048019521468952607540939496741638832442348312386555883727592133185941725006232125937800397743337866098934185913822018983541765690538004414501026466860998968813402290376410531182628010104603391944593188669518077595787106877440863213294851765588491390520413773750562421797351940196297599458668798320582104633492563743058975657325359450718158304100860856611447852938994336628429964872244116678599163509014786885824115399513160720644285014802932351474688737492208440265435632133120965037198826338673973764194358596219963256027092409417584629901821064386877684642025504762935636955007515758200301682415358219787646064060163953715965084159691129847042203569796773242157840406462913708916334594156877419797399672637083138152082387185258785716652480462543353617239424406600123840627870589031463904661845806172051803236689194602657303875910682980497933492215860207382851633670064460410115098993588067608254183089288973221398178691301143963940439294784530415791987559399726552007346776072621350396716056392018564167744142532917086247314850620142009968215464671276210813137723943391802456388242221131574381328179673898554515904830255948442735706084864921626021291197421887850004601379380021421204071155119545219925355316839058992603305672779628717686985791972572879880054192750462964448850780137396740588055821395389845925070316298567667623771504909447992445586428659048040785996202927810589788688465348853290348974292483051700974717212669642851076490272914210308367354389747924909210129177306584061094393306883916857072381134147886642589837196375142643700387864454048484907084841730596544036316115211518826370803994203684300524905337817521001136741988898496228375973461540963589205456279760580426246665488879345325027963482861734938701328229503125083633717668510722972149124877293181341617489007586684200499530134494303187148748441661520673782508490236351740492480688062411945989282218122124931771665832550429498840723082280460616572783069789747008739197647666331299505777070730525044616367730135749887296669896412265567717258648448021023941904890554913468984312748127396914982301697041399072650351546125776901133896255345142645310297633588151170350090730925111505093572193257408804631138333191772690986605818390765397714115839440231547771391573786272578323703080796903830547945022946589160142186350611100056315221131339126600460516147442578664220572613902268436869383157483827535943806786222828091706482447879601025975175983391940418895502451422268158100730888983701468623732145136095257765761401248073146946366489836529774318838605984441326185935700603394675264784932014297893176601186858703352947413522407791845085018068241924391130137551876827809484236594350948157979800988250116138475540741502967105491820680648188890246935987773205246727827402796206927321202224922978992558250200806991453233879811059924593819823831995372610712698135475002210403057267310553663181602617914748937563462644460058142559185455733785104659190640133697751027289901892758278288881882585587609741165059597500769673440265955984049802058501490074628209832135339774985833319386866405711220591313665339826025259933966264839371596515554838395376345264829903525478359021840146869221287867098882337031959316535735688665243503824891323532789856168983841016407385257055824581758768626362574526931227926150722111269330188624133612296417938299297045665943552885853536158690839908038724750188557266585280571157987208755306984185809188418341334756930834677140613739652823537865530827771408508649349855563176779771698687929106440701789230286188365443552646584246455863725784941603204512673812608746384309844030792034519085644907758116451247301257661064443770401729707924949073946636930295663365039724422768471636744771874945868017302863183020231358620544247718630060931007703059051054872073696779430697072499283212163361076247397088338998578147864673098622983292301084732260458360202773844294597384442665063747766942168377699761525983226359807075063498623393998006234210337695001567911771464450556314481544823247517105664396903863597606216642080430809109197793709508698617055774180701866241148243894393206353320902365155421160604793054985803212000245359707964703973069485239367606843841426324104449201233335567584987724583697308756042913640320426454011137341821013412794222061174803791781643795416067137737138490043877990393051165249304822514917226586850627710913945271376348994865036430622372049786007624686836897267115483436409151833146228009929066376068620176778445799109351477786742775027661898185589651594564407939002630514192751064156206583202590766123248622119015949062109352848395307293504587022834962124628149834316977305599405289103721969406238810064011770423594267749720454162416576938757989006332771103499005355437098810676296547418157619326627058024335657612640947686257246162262778914189148137595486865366909178731457301402864884736018984241464006800265218892225430661335428880640853305493627427835662444037654310741535509024413746145487776413342574870737220938949631940161505572524618304281081021281918438868830591635345245694127312947775675862645620927295165028412948334674658005325036311051067986598934638952899381330120151438016159399843546026403676062223546395177629435905869327323713780950495510577564387986026549767348147689122564347090234706299626377515901536923673512246753431309327599828201674602477988743604286780158979797459205343074833165413668412490885107882246579976721717562929541462782168660707618891177319008325298341754871360117915704608823175640585138258925806795811110146097482169350093761834973977660365141084764802248518834952141495232409877241435965634750797059202375736519971311956055497269947530455040866957897282498602969321752396036206533877081298629682887682434741387969005298959286661775114062142986319445637382486081232177877170389080800994361876975184656927839323878816430009944775589941207410327134830184863694236296073678638538248658013658034173050452330637820837003414005848803548657097268380506067920581834801236848571795297749966763257754028917559210360784993799777531811419517540145540884281813026626503074067531672707119141455561847770381622939209670965733453511573041258619082669656266020276230721320050116995637018852762106116506309534669529876646935052858853822990344270204759437077341939928057154751364554043371685543731153700789817970550312913547835989293173645957188310759280242160961784358104954293052414112019287394266738113022565864421805640850536400679981509331980136796059310735697643172922767503739659390340293272945526696904857691091326076652655371187575544735579684402857608245178299998217670200646115408491734091944732708013963953132963756837009417371346800420870379480707514934259986137627780483349270545622084370227747393066249860140834047395508883431022847097816533361518836224346609898068122916400076073194829345456113341965691066398409577555863913340998917581999587818501939186630272070597919181932564211326661367262518675847395310591922444255022443552747993270640182832345936092818428327108181908009499938676556174561493736109215694037434947747704700021518126061150191161812558054792981560980101378533718373646642270418622552911417525097728998501202049550770470261428432863030748919375262827228956468299746320006996087288952213397951824319434792724689593430286919607052731348232406239041538131631068456209782953568430318686157139544012631061946478630387781399297845765774649435786030897651818638491731092949461170040264570523285051756816415565273429970326834076080201388821789038032160621462053766859841099059112143949220919036616148199116350970247335028313556220469076729405541445568850238297699393318547327383685593196712768601310239946414132512383410386034968773548578889019433838849797740456538559195047700690697443873650000752193969201293312195612657164124765113878503669698820107907993677146617753007439310953078596455335796752860206385375681718805088760987889601446470521732085249401829091476853774575070689083875299653755048196385037830794202637000594174758218017310455817746892338040240575604816557592724295856070977791933395127333657872663750458656980254635684813027021088225284824066324197264185268060608506572658000009748614229574532887425695570373474708454007020982835317073914067497735445226249249120241485999113606420888421215673769388938729700506254033070244180614599460231458413147428710419814575959430371028312717220415707580313475021675110912533394948824467195048359904917960159432498048168400167661289461867385578939711812887980065054911822806099826314953802640288404188220204323285897306008364510738725594373175924347796527447585311293333999903311138429939075371493240997229387573668980241636917942860204674408997822006515347842739480036556297366013448506113062382645513305265944359765114743539234320055656702688096685254951276987135844842460982003046679504555571365729995285924862944154301917347031968072204983480158433853279517369019850284933272577246814384022105033254278030017135371227624031122497504204609470411583877902552449512244239839254006706929898156334492047455035152052536293532910085655007728439419166016283367701437056655584534529930706133636102951943898495954441105358210929093253820249639967964084425257416925734164832420575146648085089594822977976708018523454152458564827045273219095414713077878466179286412962679896605160408818693976551154901617034922992350527679996115510545842002600429318487163202353029084509494478478373647485476205370029567793325512992042817194514014520363575652566119332060753189332282905756675702824174152729661655322929287849012865207154132964237089206960297378546770560951420748236577561607426769465329211535788297570040856782938109181526808289269310507294780840717263383948602238726232226552896917855754087129794901206194659954774739076716072164402701142905666292863482538400933682559300360123335521943254706687076198569535138774535261946201508044786236506889231169293017825998723296517152942574018145776864158099983305061014832051786299345595117712625385163287707762023384173640786965543085978673858158956763023777724200703028060270293551048889797262472020879808629024617779409931793491329445601022125328615821775076224656837588147875682998988262366933460785798851866033375187228282313903072047231953519445264474345786954029641051635343722240086097722277287805199338126508262865929081912489578329789656742579701184120467583185414444357513535789004937934918901956088207311105411768581012038959570750244979426027987230314151394931622654735992082487752353462155597077867338318850214884808393645802965906047408603699280914709581453764091280506824095913758897202658732428381245452127347221897260247071592351837753638834280562856916928539945659630683550322114062053960704675377691891530600548542902470399600238675434512235670854843705005863552361038333334627270248811250851358110331728181190369988833876460492842914490247067261071916308827423172149241939333927787538860639034216927201066086191601863858250030369942049790774386087839718382814790418053835604316795290843229851133040237864692855146724508896634383069989739485115717046374127224987631132423147315368634504949294529381680251203456997178398769082573869503199079370727746226407567119099035395363484235906576608769526630306093861040705010399399533189132411297543366208107421450788107074865060385391134638157912202266869550268329813877519000883524005196583269088930581175343600823162950365288909941972023926714604820354949918519181353695540021465317208349069841649529221119651348189078116923463579822347776205609784694623877579654096409731971579701302886187113853944478268436678303619259170114057405016471231264933668947198155892822516876490095070155154589622526165437124205929428316138569685038171856044715346925709062685552683095029746571807894366612252980492070887332109190982950391551381996179676009576673976031413524168494524779884764733392677488566514187294752455983041336039360160130002044234344514989519888840059314332990632694719283953628267732513542782158627379032281904284238027622238956173699998839749001694715992560936094451847283259835715367355664612567513154008571404433035698031302555890259028256662418801513391197566856749381841787927305939287973636699990859784134830456967814656447405937611053555296541640754353335394923801479513265954396857455945651199680475290500546651936891695802290076113319582861998059533845737638557424930387162618588707968435436581414967796797307769189607431117121244571361800968289890269998439104976339609670497167213793199514446465418293111973157111344249729251541670985847858027550368407013332372556027964628134376263909288698832247052258879380626956886045939822534489845880411605738634990214729972104489301915517981245251632277232524602221939871028237164069194350270308506702155462025099645861349010205761920385517885649686918934951671598792147802271794236480288553932440211411138203013221439877960401130506975998717201346988833787071324872012413325190894399868851008978280038574831543050076371145198863969130377034996933877491490290437179837560075066523972005307504544910418067689744475113547211762979875376398692320211343819188593753456440370629252940770291278773744376957823772955469349549326979892033323424486287295199972118538910864782467794652910808858157255917993230824771690759771679407395712301222340825654141277194248299324514051736816652218635138626400231813813138331986484259345012695141765851547947300598563566551357361320231258004948878294310495007514938686285072179465781199128147933991969774239743751159238342536077611200542963207074653860065158845763558353915581460661821901732219630659661150781584941813755408650367322119489740846866664234550936822211710334153875935033467452857952933816848532195440032763465473126244482832116889808420822368594592637765178601866311490235884142302633233513687485307478801046599191246407570287955671534252554563416069029871860359235285957298592137285788944785164765727450622413318707251206148030764095301074514708962578973187538785248947430818844958473610549414660452835551015556150882632543980290500355277010365668693646637808278937246506966307583073685922755099227154612744750462091401635325347382044591532811618244123744824884673878932688402843087740133109215575759327777808639485539101554759665842284629483371077911091666518221882775794750922312111580050053717696850783453017770014553903959677359174631957438801220722056425906825044297592903359017011086997559881337730157465993499918793016123795039622281679171469374736260095729602559767635384554856191280476905919982759155754147276288583746721251468254289548011219492574266918912870670882750015707964383211168235253809904099992765455695374244353058725024971101767604957307840387509074283239863280718795969031045308890218321105576557804985349618118302923764379832060800829363325411768155245714741910937243621741885177038972345276865901608347217608202818828011653422536426200018874308602345812270916440964506028293351523592644306511726725904864233063317359060569841471868540962998921723060851327221274941414548809797680942694598361719753745397740721417740803444523595946123462752665962509213080151536656262907019146493304219363561638406049676462954721156658754948090452283654643435650327561447540532099430109319504439203432386620914243782703551030835723008586223742548966965008806183082969683237133412030706760550574022687285609249402630947634519164183327599729008702265191033649514682337329802909757258744382797014999134287838301293734032722486970006198137783602851702623971430443097776243871965399834868736093290100857269385786118176224478317501141284121408988790745528379987600672777366755293170232048261345006555023887101851983605270630080935269440082219085619562397665063078620848224054168045179481818011073672439627522308690117178312040247473786344511235581122329804955769457621962812021212205489435062827533694431875410432469691316650628699558244058131677362928678748850363780395395496432626605552638654028031682716540899417537392281883628070543783996240648458146629674900182215234079126908351221616173374683863922589046381544824853145483531649028938840098449321827573830077572452332850750477900242465175280841719658096822941931897051035446233651894991694650650840164955625759819154855632260712400625255648248111569466091990902624922197141149038487214061903839302294949255593382949324854748303528615773892733666385390896580028106280782455676195892485675463739328056288735919646487122944702629944012672380648219462655489818915791288265342718135025998088257577927078855141238952051677420990006565054518364325582113010270729659805501874397621431764707406860383223107726154937049458118800158776924455083180193209315460036830180669781994243084062075730119830107739611527425589358793378850936160280945190241862457322273586515477336065537239017897890477720953529293467732018317611039860552085494861693699697508405676308384177277854979432541140009403158828626676504656247688176383912386103131432802001412919965588477445334021553768542026520816510538212728411051327478750266433115342778639556986359427713219143587313485580442610310361475537968888504536700253666393670060533247323512568992159358887032980598038112246341029994069577778443256552308982738676439360785424929324089305367206923911305978478737590371098606358933648154489910837522580209244621843550382691275822952071344193379591584400560565141381044654561648665352001139715564081914811662262835859812224273489750617256133590660878998989749003722913546320105974809993434840902558511252564148234086491301176207865040894201160619740606945914378857163398539919942295085657957746601940590085501092375045850638072926184661210208954136442322457607617855952232659723539204975293875186175047370033087748474163193038134023503021369834836352133941544290857499626144082027185563666548255020716504293973492262011251088328242676076283009138877491208378594383758811707343462102847369189408443195916317411926186935474503713327440143546212790140872920185771042547177265581717398991999664077995237640977742612498068191312925958393410848436120161894158408375454221937134355203380013825506075310871449059789944841241173578671053629553028739705930283700284988069281301526226051809981685750637332300937251532230576047898163656638637722922547082843315867005485024854476753506018799343418403222821841850514997814763412457485406168832164374038484203825824937652596088752442789541182454551760253983890600597932080520147338586597502384722791277519588351557326071698358203071805119077094321646619498622805647948914229396132376578251996762120223337406700274635160463063710722548597595278101526376366496232691803169794462472299080720931215032414085583722784771197318702044676893033140619639252181769298665229350155104573141393234293610338782440572358306076501979784895248610081063561272528540442559823575782859237943717894020001517310229411172508256076307411890514143806551711444719968128161984577974866410285229756734314306560629631533468554203644490388766688850488346562313741410849445978986580366417219848197613438243464512890967288828850292826834550980182814581057281566624542826226168348599886864954985594541593068273783884169914133660309151347787728401312786486099592325152863190796261162944388112344809776152801132733292630612377623859575179459418815570060729359496753421263123350762360664743714549049219252843860976329402058500481445974064206841030541546622173307792032518143362042741843100588467691131128008006273958156310644289369518363173619096869374985275306826832215821091044660830331016256959036647872019718043181357526117218983344630724145688744742245433572936728193858224137615283100366792869080075719486111809341312956600995887258212938827493868895697321244492567727281104248142491651779483126671923832165701451290186922331391373725270257276727085743547863890960652743079236666738245125679008136718284667316240273511451067926096127898658354695526594903184898189085531757041855379708017421063150617848312231105924013303455813345905070936332639952249447596794964459413147866749557892184474300282512552103387667079260880797345011081519942632693484776457681881468051814047362770420504062294404469755723514847639907570002692206962690152004068418718527204687396430863899106477729464319061209450430565531560116892999619860779417924588831721206755240298288654215086754124494777484588873959429978518010464120460117731785768976555598908597260012224069403021422877057148518405145126266623565856450183414240583097012584867771233545022025787585295596464755274380644544377653312261435751336490900600040500496893120271761147980121805432030338302328486356925670477340480479019278972453731346940801574721860208052982401487756398899239779852122707436121044763433032773343067904023751642618861692745292666939897811116655401890769107871904007883942353451993533442936437110791301539245319738758787957096712881148385515555077805975822967071576529108167802789007656670874652422981244544582025617774375246682554423965931907587473421919482690160602405800375391073707499666810087684331889372894694701014787215929360187716092824086334995847150583519855742352086786542810378076292856255411512465924621493158185032361653024195512702171601727705015566565058031894391627961319158483717271750140234829339476164488295466865049425867683397296836475553440575611681199898801499546096306124837252595245316835796338285566552504845521295329786068271468058693339957242512386017962781044575635883784466616638532722355034093084693212139084709484754691959928093937910944740551954684966999446729406234987146643055731206217731190199072909778696116524643585155764791135385362585677694994003018721646509883921199003172821011751156629755661305729660138125706549128759686160594160821817898407888361666106489719451048216960045909103450221540686730520717692510842981371047876700796387627169666727210561802332858076172089337335958402226135257346266778394948017009055781555704094025697882967338519120045840659982869928414513396902759174686698285412709441896294175197694183031487050040450828305561680928398872536233342630615270646189258873765911673771974601185290480900435804170060980870034723164099458030295149426948635238834013270658113444814624955136592863306402472203152132500995509757125382311386492202214046048718533737697905336182988215153454396508686698251425379912838387102769861492579526066483960787864966651027503637110184215775682010028964834364905147760817291920168577928735016158905338776130975771791602589543086054927076917949753791782196599346009020916481599717049063572395764510092753849199735710553019017142945756085978196428658868982634510079576035322314006607671523191878992267413095159508395450667124602964209237223694332820180492654302958116259331170218565290038287708692117196486747274642508061032660473665080378783020838175165650345247039177331299143643580562939923936038125420466746252143862848864132176807201482377137043834997184557204809323983931103137430220317133044708727949429563017770716064149512641355719466625843885844766058907022284990887220000170540745360299689303544960895812351095076460478042508128766820886181592918500417723339427521800885187421879703927980924679166266856964935262266350214413844408987467571518835073169148798677700135408242661478123769836775543307861019797292254341622859680553153725871220957540910890394963297201600637076819339092062761451872459535773500763163832713777455930602930360790106294487039393496737359491037123492452344554493492869707597746904317226940390664454099253458149044093728301756200566481594312790005646397581317333788128231645007457105489035348801018615120080996523578759197636517707773117286876749350077661404283430215638932201445068688081189112805282641560699151429127259888981508175296972130784060091895460878167310889717502257108854850207329061235247762392927837042938150068595094007886044788277127268942033351586330490327004147795614272952902590883982664447446575939918928771850473536578868980701951982260871842247782155783497344119110381845342069997821028691451419643996445024595575223449091026276787870652145684571853944025864896215752006134927063672661760995639610197451320955877207063482434866619208603529934407450554570630336146976234534786750185764148398912068406701459687282492213181410773157490969143194535234487043434911696747982929897703407850726687691247985522993790009080517321058187096307038049305707102463021539687410277509097031548563209062818096963732030420299977705220091157907698604099395464342631518903918183982791918270599974470309606348498126133022919266907243427298000513812726241910121525918965638221370916850438027607561644033089478614879879788506848094621104667236571112230349860850272652630718034493267804604773411143933639866747171243813188450155650078836719486331168101916989849889135259074178085336297447353251092183383891924786483692046814343015870968977954740872872560128487226505524571352824262734508626914449277334320807935621462718602155555890614141742744059974517222233117226362748860017591141500874997103701931779456095478719907868316780050975672222799909352275213614607586971971007877165456156428737291310220136865230086855422501267358345293240899701466442255622999607424642813457441605791099498987931480133342203886336228998949062764151131917215347037860295431441825147289758072130911682659128176925710340793046603928047187530052476396517504698383854653180127315134852893716302848783934855961248972466762220973409305067304092993696578802750134045164475292596580793960439423166131698141567238740776059621093585794905115142594153226300084419495176970301890279116293683639877239727931109396960236282964421945073808304351476827822200741474738996450927184135366613624641512693292956759084296308013521829507997491596940393463093716434210760372622115755387978072926019116235409153968096417269503157186528982637118993169230340183326675991214658319559331940348036777753888874502171895155649968364486063066193652239254995027301632883587135355536652545189522736619817518182859344850380051819814865376564207591548503163544046386158522713113049569401321787181597029245190629214178075823413658282381242331258383383017025359766373604182093573460254114888538008208509367689258286560755193998893667049661033196635183037335039483362608344449317542373651331015334444510916402060194121180333123972069156319102364529672611803205908776297118746458545354075833295000007241113313508911341140929379050045490102781789288948168911375554434739258335470283554127450994734007939764850550921059275586526822310161843105680886384267438435946879327592855246187601858900704711135426097910953480452448665287334441608126446100154777623200831859060962701764675272294522622127726510701533221850169888583581246477300815160280364219699300370878220804571947922784182574160800094844012518565285781801300614586131394771116321493336095329578481723718340255779011621498892756570334258602988929940566076076442227809448648006463618179300959637842056795806525472472390374502834262470568139845740213998063553902463252903953847657915583287407606101324430124599865711248750059522595386798377053797714013158981469421175326359702359740714283473358678583049454988300332197200255442787280303550751739115607665722590048222186796946238921111859054708097893301525813003412954038782562805190951870520034983633378652856696526547273272454221954562695867856807999940894618562459933238997379294365285474869392131071260887263546617530920663469159051183745621642906691929230830414812540509522418762329852598876887458504130877152982122778702676634227914762105604179789264535233322781431355730853499834415743911291917744509302347602971013784495299073987888438585928744960129131199628540806259484126923626481071787065872255374024376343865990339203271374440808937936208041932443007297127387594950391159156715742988075803431145434705001772200175772536093715155824935160336972399080989000836841900642447227734806337822213430986859069039713564573717927904942514700169938437763340923187200669468629551473370737204844287091708791089974343750515147557518727691938829248529892927215835686584096255069378436490680780984655992403607268650223588153941167506138996148547091508508589381231747924094739132030455060478284124613632912799552002227851462046231115674994116302938333827468812813265924645838854858986361280183921480144643630743782039263214923819386386594096280513762491369365593104907470559356261970871712312523269836384073566396563141720288205607948048284154274158428820083868317299716534994077092997757917351522057618372858810089437954265961993575893312591741101755913766931503640060070807965016235155418147636016703391699641568179711919385855240123581355687037650207015452376414283644996593347657926503031013406650150996256080678990483921201670033275278873073528774787851884849195913614235770501575166903650832383813956393163160550939252385001681807513573917381221083735659862271991735137198114819605015396856064925850493381215978538501979358559451902117857846149230498706347778291652546758012744615922992464629191706832587152433191197502746250927583580213822982247732534239446020367287455959232765172010556889507196202401704533814287700204005535496301088784610545006266566126195153463676610867601028479259554976939616434165169381795179473605862186976822449656922310361885033770528503445443237098331512252998805110281928545370184220515083771418787419795714535994538824180780131011065274008528337202142703982560180097515982401147807178751891364045718162327114584782210339773270704984645009300363228952441499772165783469623924837705459904662373210281125342270763068405544286925126473336302578573446031389374024134874021165746558425531614111729318874895000462080799653191807710588398935856630912250454288451130690270148107745160121169915138341393782372422002580868116147872582165620633209072905271030035247362861324945895463910223676904152328574753025410799084170542134001416858878112797341161153222312228038808407303894028126013908878957551302981741098196997090348083720937805874557402582881291770343763559382870501277258241181235700433788606185467965029191150091914313258124589585163304178506542838999621714129656019990774348923727113011562092636746021121794247922304508800306761200791434696758937635376454289264829794622106337679818649904690998221527486162241218747830754878500821469581225558519999357672426257156180452464458474651410136815356483936650739903761285712694364291092143956485928210134739246715834653274236072599121934903363161361057135014400930662174043311315267215009907708453881575496315095168058845192509317695065529350943717322106261451606475478899630134905933079556063473923450811284045118242333066985528079629179750407756900900158348907345459773958966034163620429787661157032534747275479142023254344965488081617862276968471702133836251885748829249019805556487468511211133727200881980502327137413197523285697326076311181290913329017241576468820216788527825482999201952869441149182698011291431460347762354472251151667502406474232169539199253825683208728905425015909144309741593371637487491247883829797688009207578895234836924585135617253855684385273548888416946771544749076391132105312012141973659135447146641890541408589801294584605501517126220015904432857634303057307537604483896924395773675307942107432896104582550035441416450057553654458563517520941691166689591450108508780183917344692586143730387863438008557688750466852595852364801297062368977779141444588877522309252582544467812624211214815780762595361817786229233226498559645516312648678104116066288421334929615400803772652494514949493393520481217198460370973069748782945537535494188733915143039370240638813078333437761213850041509241640838323931498177368711516762395713651473918778556297888058515509954741816714268517893860706526154637587972795838189387227628910783367862412036134957228134747889507325496794225419275076437129988066955440613794713889317206812943003451025546500215981851662078584227335907922966541043443877681091223962421561847153272435986344962631071338059594668147155869080305624876888628686663446512439084247494506890981733707868931152304135448124542561979295070561513513636257926656351571190231419018855588202369282374450351821272354690109045837863610992642111129495129211746480081752775061807719377230215258273211429120033313988333882619887650070289160921058947522631909275434483874053445352827350958889055618034900114700792908505325032341033753029386574089028229276567510954834095923244700738302967033037430997518189185029181688327098683750757571493008620711660659657879426874500450190507695145353338838532769581556534790241532362520434873394505000672491604493926999019668264342879571954915608826368984521272942105033715862960070848992164984677040814649195409121536457343569624537203342210939018927231979976741764643048778204457189722298592456788999219754903764553162844477685274602891158807405909674139203122923227891459288372978844491439433276258510714280679763210511715195023612115745631631688158549324737947716026050443151021175143991717011729780263715367380027763641450642229392154061537234198383723692791773867457797445230586444375554431496878593628278338731305211551349154488303264872397861026005296468811968433991276038417423727853950958536469966532200176465940868537807609341686865619560868183608641444355692551423835486702363547882397973382586354975401021013239488383979061937281377565613912359942648879498741904355170386434343790646560127648665347940505491223232183765461240928788490040555341922571874725190115876517875156640787369846725035226019689341635885441295107104887936878005009647673526144687667096019628937176720537413681801673590489081879098215781448702679134963393160690684966314247725142158702225991070898038519518378142642006936253875784827371819170649231674296237818855880301658921022509330705328976507522628025282211004361788377184306635099842434157413186321658233634747751872045266712434843643370773001563740494473641556852140736888373748412242726925608085099871220182567321288257851316072875100677211667921078540102632124323464729439233044209674921829733008308141343050665410351808941816948850897413595168449554338009233052176643812426199104054279440323698461925785621935199106755878620596528569741280491050073689908439381990880960774786530512821560271826931291556227381176007245729045438307015902279719075930611462744269432716231055502461506989376700708635105690693596515330723342617031087528072590365307422842253121027380440899356102394076932218516105053095091224919947678095009550902194332107523174115742692686756177780942155874557512717272054024295700627538552190055016986570214501153556779471654016742773918865370842150320295772649014816592033622451186314915923023869383906515948292183719184014584197498520909246582492871008340820061116776676546426157110440358598187097257988491836390741015409070333189482064158418000602667750323096623312516483435373637072048444880225066613558727258464027569085017000797922812390672547444281090600360490661265406499388115877324148284039863462848792422139038521586461791999601063644340668898145466619248060621981924214467521168498292630231154436503925418160176223212314365538546545346603511426483603654971535234200332441825267522221156941849457574837980918527079395654179790517832652172308681607839061452348388093725524910320712062158908918867585005305188479257615906295642433467634708984142388063550902794620207224544116935463512177568334654628885945048841593290149927000623331900315889652508432550778201457805347448362749174841672367384005548848596325444930335530460056272384288822765771025459149777744229420789299898910963880864854008183438957813487110592825324187867648331417464296610552787619811929760829947904005746634374576532232339895960528065822394163020902900148213126057348501801870385192451445274959254522881170264263608654511030310000308654863033096597860717783644476129170496350257600904319318489680191792534079349731678733502192285354095897050488650128381886851316144848358658316608579750186305072011511182610112479696464538464649921019947966206895986466650001823467771940642979597035802664802438347862699568617185195120324291956456116905853922489476028471580070722644992125984496209749554629662110941044510070127261610095880410401422992903325332741618794891836492021971470160952393296213847116067211447379248036071018913435404695360950061886385438717742126099481915078412573678563494767577095744172615297185375175532962045736812800348299484814402338954278913974110001523801970949108194230248679975291390439337961444167287521870386389088738626251076394291475868720171577540824957077554519342916783617864171036486286569254141691414561374359805874386884587173910743073054184168222193538521782005950769819764944669483939314405328244988681218462672160411896492707830140398443947061568748715517755478467393217428311653669318954320915363110980043278094475713349777837120187404447634826771382581949663374964616934860384796859700290508665301187224566730816792682534956894734015202261483533573918373699504757417662875358293594262400507639901219501296000555753156664145594348065680835174431676474171254889225782619712270682351115782252830916665022236592276864713079241273503022504316286724374277320130311252031081541492667321029510613225582571676134537024197535342541914073792187046974662502295268765099955312788977816371086632640166215940846246788506533296051156409244040393468831935961884242778205352776898256867950448401675785883166550216131017225317309765024959030576893021869100137998187716126324761954671779116060637827272256626061264596373534694922433400559572265015416881944922011131634193525303844224310413908883541203990860338635206436993948460694648628949319686699113401012103573845857036912513058379952950938126179842968847798506242843857311080349017911023119413159742252973995124127865845308819395851084293795606349590650016216300512880776310194069691493476335581042299387190606958053026279436198828371481238323034214057127159587070329051444327854173404166141206523820736618865753656974834802403521664300025848926227545817465247303127727696221093932722714013982356543166070922736352459249912974583009781681401681134001968638346647239248807998514480873493538243958557602382127910389643354211427801915267533591330787003773824822031331588926035592862207871406337165028088394141107517878059990638063955750829092265611190553377437703378028078177780836002920286040055812704268968755817096159767468668995098650487711184426848830317594766056848139896401990383388213331467840884027693756644292332597268099859327166772472537198242098707141706172404553988329243564334021352903969272509623364343836075094073913618310435560008044349221128550312140921521139757283533540401521253485632602735046298870491530825082950707736564728552412254962323893977128695043800651928719446581067611378144881256127128186273938752927882533369398509611699031617232233999579284573724534469029558570580556257808637003457557545198978790702935703682606324033745171539441004460143182289706865058241588529342775092538833147817182966255087195426809765831114559052540059718797958032773069941480587542424123891436262183435327329588912795969477527556165398658395369927924536658511006106682841846072125706754728009433682509312365441797016868467947939074977382868656777819325905851703615389974864269193246856257700349333387215527572552749505191821390658389801730249093956179485983888238207847938959620391541289433238356090129326001025806210453128502343320259684707998832418434459064253457091990072348856716757495759987591728299321860902250342389314422654169614078737571829792422313584624650110402018216834763820726603532867968252936577881366208016369750933563265216681921625166671795727795472401663500913171917979262854710701007273886547867012720041808992996397498363503790042892507463660179397809618657434803013425929044447068624885841860590273172606485245071161016003196955848035007546356232564796561891770090819601863513969451211382567967440627361864957073594571480572831925706921969248611616796099902731376869918086088306698030545168093202175990167829710306800444427820528034443319738789272164985529646485169982011424092508807448725812622575847041358020033024684060539523854783644022282318251368560257491421316448681204299130506236409250877963288705477781496067847394057627860108197599460030190931636593400908016563756999047795883434705857070611104442658938870546295565464155711088519883449368159302853951694428339291044202029734523920327517019110592582353929406155298200372476685724056474334013992626988887620386841954535758679484356764844912618828738437831042839132409483290583227747104968339318322782007815040348865309077225140423901064919200783323408213887166318833867154678678063330835207012964405008466857970891810227571737824227612743686371475801532782570538500293248084870599381706586799414981930408908648837720049895133369772195688166538067920418570092623053515631439040506608000187555254777246967524768492893582599656807857480404125902629809859975382297132293206912377962474225744014378683577865429269101705777012136883150566734658974941649080034677443957094158168226346195465385076468146297342265738996293231850672552798497079477290943805169892086979881974491481267415713255013182046289093890649057601527934319694307930547761337638373190168083174081245241430992100704504003614819894669203293829582828272660902383041538412279348905142427600543093745561149902361799480089207690215587060349662882562855511335832181267587551284118270430973888624241491289724421603868953685850744994041664669061585328759911574934285026586177504611336881309619292189120174921137294805098872100396851430740498010597855890874231451490729317972559992538650795012366344721229093435913933793970571193277486886869548931406697474814726478472337316408588201886676167561887400003497480790140740264390006257688616000845196839501823010875020065324702781892888315477180890850447549915017607379746090931267332191709788202486884635930470037831287320923325898541005000792274885476904460114084079616627040953285710329641420754900365804763743908757800979879493163820439318873068169259761784736381761394322550940056793105407506460773509471354247075018537882930304079960971416548580863455211265047375570991969817713401731297339404595582227334167781507647720276942702200106785911666666628221980213647547234985788649396439082045539064343033303040390969954270537887091097300796534203636587373770781310665855972607359290865060443686950777870678929429776544835218067596480682348377103816847111044750981886526866663928131671507526929074351419298186844731813401847798116973291197597192287279307642883931823035447889695470366485125768556077979785039860230864070311351592326075010515685535078747576449396216185383772946962480221296236505285746142991558395275242401311272677885484261828607860526437899838302622131974929711221782610717035111711972128934164574045830602251233727447150335765640839508898119016101247280503085611718192597485682218333264933246574776296506375649348932464353168958561512224421335042692934817751067190961091113217490933271575195701229410485614082407959907126700337773654724033143833222771124401887344435536756940930143000235294320554685888005828050402336160564466709198123864524809013511168091127823221265936640064189684614428204259043070308925691222116789268593677182852464649077427500917529287897105675371352524764954278045259865264575238182566315302956121903467343820109743238280748070831005013785081778093821337556774163898989683180113722044028869820881240095148663697361949527559235573049609176581743151110583264896069347501103529824457930960249149209483585606618379142415198940434286843201739180249067895048585613837060522647755844656480730775344674862306308535412178546081661689621497484067028091545290623283177750603613589974609018969041515904415718048993695350884286545364598615841095182639609942833371953808777302207118148816225644030198562149644112575266331151991421793552373744316206669781509498711186443943579040515161851896118719207573755586375108741605382596531867820354168592370170148480760024252466616869021405653071828571643773449480706926765465729279105880448875352075152107211923660169838007430869537579181845305876791505785696867658205015123796960430473373572711448372670499166279399660072437843460231352995248779049487898650970905400160276394556833368914099673601014765677820316615859569177495822440536796395563403341274723964050244788826733836768470811961259103516166969314254445430137292987564491882045721641623535172110110256726362863002563736695088448607411281134651382480050411517925803438045585482218228092620450632420366431186109432761943302634512719163479914689110184885643030279815729845694940426806460530097543575067903435454159161783485000469278764100962126773662510907243029887453360252184744152438630146026545575750175932785403659992712347723633181806530550445965393544690359113836714368196353870982896492347565039687120107566609095791975426703104985444847889857740024672135534109233497554097134205610171706136965263479041278489308464238545361079649808024848833082871416849652306189017757993475019875730652522601867153628470530016197440231347349206728187115028969214749858201919530723705792192931937854128624235481219614544454389416210076940468581474645778772744492189441010592990489345231057758232417441294684513961976162104715901161583849653440486682757935154666312203566083897770858782828962684100884096726256830806121022822601931163844042467775221543054762663639481491742127481292230143111933554415366911407911802376408120487142743682622516515737405596567007179914382265525478655831559232607494259831238642099867416248576798503349059365485278093897155998451863621866479472516758489253202039084750473555443708956851188661456539583389876695276201453090534829417689372681778055864288245545845955690878141695516621828956813920339154293576710425641564748632751979772841675535698137765349162004407754198863608212994188079122151317239421316151986937230739741001762522570291904479460158230311256632939643909713767260674212974745564370219632809620880677283035675686306669258296884270810521371991417828324880271329715205776920676364966593119162494418103738426692505346779453816765655346687150845515119823747346971189142680857687950285236521081363972790594942923754373844355618075764946046931587025580041679903671931479333335982945076758377690824547963369645791861195819369249042458384511543617915742231863482320963719298385595211923604932288190282561318163961299431225191272129425502325957569049257266138949945798495322543460513269619494719366271489192077905628829557466222466266536611774691618754229507106955680116935717545964073660639984465581588861548935784231188690833458570006903038739199150663045505358295657010716022663172776893139102027167810338976041805107552023862779974902508410711774609375822135010919855674094036233174228639542846276265165726351766340399526550171144027842267845305404735524393923388061616977563763183524050594980616842468489678995251213447288575923390780685785843511056803689368596473248048928991524255008262484446912299467856734875703814995817460248083746234744451982589418587017820983911005634930537441430650159326164689635654389137559368067145132065894960696194186757272299106213391745210235875105771619302183334375150991253616330366847458493580013347179026094583876241933825168737472915650483222222112328671382106463458321496297383437412444202674620978820277903945164505485581539863348978934276593833436066261193694969942578638230328379039108777462743321968365882180121882673158744058501329360710712011355178991141464811885922230057605737034756772969745413008747364795165702910229626291022728939028799877032678380636441539982752871560687850323600220564092637776045313850454077519864879488215507336339626494828756584771244935560589554153809025922738700202431413601446782594251276066938558585549160229616137720955693261188012113935899415536302840145194869575420820419061062820319908497710765774287752189486843331177957903574561975072415030932813798675872147062578098882072221662118378142085709890089648241102179946353400539906198974446116385679750828216210686769116240099257260070557230060921094649040586296157648036536737363541294016307541123926535276467557521566290104075958743354150181103602531349147493095138737572848039237353804552325480462018236704665267732403769172475246955904830777622083989709976081556856616022735548641852070358544814811921863408601538798066423513276287616893134388833140270814924760899928092605360037059919853833539646814345327457133734469017772685000291416425872703014014895998627749547962249525201987012154000026192064794099155621090197360915464781379453392234214022265922256477881900125890179417169121068274041672351189687045650402016290657873981773248814925909445359717744285724668507281593706028221525048402521394642466902831334702640949018875383401610069900711378947307123111774607465563930369179978116768649722916260940233636843952809376952939870095340517634551429942063580896205044639269514014006382527181403256811390577536131309514296102786198386668527860553501087237757952901125668224341177694491957857375396403483005562219667559611222068425181133411594101411661305753377066383027177943836082583076224950292785117828157932213377112802205203061012065412773617759689306335191319848105686349509494393863507790558545671673453015206944636483775341725083611182216878611585155550514160468076742015981672272020098832924534102659780872215784267882525924121400925326981367934658670104226505844002290330613038315583904441031153772490111820083633030018340731916606463646715354602526377349992093147731574699176125697720487280875153556925471268556608348197437698164453341433885270352423188077600488225487457260291785998514232353161348878824977638349863173414808259652577812163400065316894719570391775570805241738593603631386326689988036537902217770138093239731521215528081284372584089516672538859905341172049680243218258532110407574971158083622271235945084815755200610287389586861767719426534111995434380856900290195319822245347783844610922810002789343006753633472370984194157908246594217792607019344147158120311205533815503949429345816381809925642234683426164185778892639651677988879026504148284795375390758969918706311383550390220059544031248114496608608325894599497317994968323777819295882714221228335570870421701204391909114732015989762841737753474536467606212185778150247425277018973551811231446440337063947787844325346581999655656983790572978030594993046740844440401226185544191860943411393625678595021064379211407338335834796750918026850864149155618173178125708298641412141938087777007889349830737404088432134025723162072686676047797454177637585014944122827267864646368368448735858453109197115667893151585518985593306547408643213624589543526573734282789346849168773310057820119301146340977873785147104360410530869444576026901345381326765005665099499907297312527430345706359673535513618474970755843332976723281988741831607214505226085497638467867822602294676094671013399460415738865890809155185824064483639011654537796343384429828955258837312075012796410163283815428107127022752467110933559270999957713799209439813942439079404476794050558750628550146253377390664170468505561434479873464305680505872159832614120242610510992520536215867280838519627091098288162570015482736951667483806635319252025154245916711709294925938140300490579632697626475048396346553585597648685548545849693703187357813496891360906638925957348939513620527433522744530060417405411066390658395399867678151651892244146804539848714913180903461333233693744641288171997450526675998694649298511145420985585193753208895940694085735503339281427374984158127831895058752988633102011745233253969184229227153829583651413842052103108042940474312463337400804043689354718445956521228968527578563159196980886368745210375020931131991346007494943516027838515535937608044657374403204543865565825611499090701310916550144673952549568364373092486827927106313254637518767876857965808443335343812228550140629766214212866552038682648157918781596014768934126493415383422241901241933966352333155491722819752400893230924534659049597426661892714486228866538125952450094218755899697467253962762159778707062742340325635284070932785125234766871919799999037884718619674159049844941529519600725758728115337316193325782109866501600855887482763179408454830596308914422864444714025175060525235268948549512214534040436489328922735170174559130349199167293368375728500381993728341958149452483991713059858285380351030762013335188050303203366271553846671743595106326015648508472433902465180104414011019004391627463377727136523641465754485761069982733787012972474049156826303376884392437739089593698820633590030045403234750643386211878514972975055979548166801536843208993129113998989570217529630088791790086684361497740463400054753548866742506389952280898977543852961675568437517298405631580812876168500073174429455945830555031138642528965476103690183602037165813046828770954339298293167991433091915645150056796319434577745841476474018843674646192877644464774734781681296680171001191878339441507411669552142195434948260469568835499041351727467678279451068438785563735303288449347043375177444182578953104021062725211281142308058135380081543436017647393986972416231513562578820560319631735270702926395662307522869324820871121843673873749118738629275029134176046393704006089577260999207057236205505032609793316392756761617846791983120801060014952169157359621424634542306128511261794651398481650190185813212640191643082184451749831360157003640331701655410280879306256722733759150053499438876842605691513221563463988882613248098071521673784270425923877771154120801180875932690709363085695184259602495651599446209709162932346663629171494347088019432778258349776616795092781593993046851616151147636496850163425708388110208811414280542353889524956491597168821251186869125328886002449132938213878525593200221905579082601981994219969377327336793422166705803172713051554293038262068870346956331699854730791763033263589561623054154795836700961280821533980991320745094558851575944525346246680863930038356754680965447461648640994590560645240462600565035366677787281952363240457563802155594324120532524275916768860794831034842499157887525079805779983977418582792623315012498424181398818873550612332314995650396043274922125556482059276935850573647594968493526682999004375993902991092930630822054807719598241721828310432053453997391886405349495573856113471261719147437663603182656096262662863812070770990878515802403929901323771210989836602347791208183916630967159702750865533051605762044247531173936386500544067357573088204805679532116978205148513233076747777373665994924842294556695131862435918413149323174619211969419432788815299018409231446736746822012137110456066087723183612778266553015169587748419224795386457904080423062378810195081241990006202112970548211195114776955701604051641873552459231488921177863383154206910736332714459077935878886263625846416957713814165645434046158508755880750730407274525660005618812048205577404597271680982460496466918507810845699528057952426937561118690910003702436209742705266236869826897153385059426761841863110633113202830845254068117329600740395342390203744239997931198732187733124289302267817355285921091587937624884368098060587294031255575032172910051427747429543230490648707335646614002526149822173544511837455495385575414790395288217177326767109401139128733269761634509020489974940223983121329743860365143048918553002344574528148878777486449528849560752351844706071076680183427610060005031053399364024432081911897336905823758169658384497067285104260052990173068249148409964531026839625398881064193546379847102819376672649298524276123722170736091914901576669513371777677846226603726988924629431886061286341368708380473894784911802463180069536347343543552572720153033869505510616531003088877225208255157506650789630674522783200217686676199377346549330637421328832015451165502455969128922729000126153259423988726293358841967368399805570197663971602854085094374020865002190243262198051471455427782183585361242355503494533196764938392416110656046343476239809398578971411693527046378437730568685558535127235775277620079726210772396452497703296807555952993980298475636676085481194474936925755073814092226679683504256994611386067437978899178264554814708660133067025443133389013146136112640109074430056269910020819533876955875891689568524586340461622021952817690368587064311632482308986916556156042342689120051614242865654041133299857621206129090885591703058322848096580396507472904355074538544870820971362360696839478594619996686390059863163809113230597609969508795155413848527600358157075646114766889674358064049519823605105749397538053929790919161817627858304269033963107248458095814862290505127957891380388221349757279432445512750792313757374337832137522051180735639927394466726924884007833564570042854084029943287790211938311539543309641905801970156991624132729559254407275648889578270396706982790274586828946625041413858210206483105655811697314035030819515761379385005565208343797408299967881522917809356043196969254154129003153922309071255495135313875518507634840025677411661064208120596009520578408182489866673996632849522573754351273409018720041081730339244561680923364579352254057828675251316068366748854457361441009157417765156300797727390305151331745049215551599280454064235278462917636506946032627552307391470866158168070498774980042891307760768145778556652776716416057293919360519570298955384811571957398377528132584530632199125654293710971655125761071964529829164853922125668380449938850644916152299669088019105134564748383723414265474838606602723977205921300403556751298112056024873129050775874392102375326119963851075911922882060081035377617704711015380985914336287232411724703451680342176667084080430201750506111529177858238145753716423281175625277165869707425109658409935330407277501962629090251734760209089051135496037364635881223235308569952532327198422215730618879840890658494415488691451430023901043495117572569784664209235557670182315360116125591095349590073157995675295456890489376399744828737457266893471770663837320533712112630588114477156985721732775383052707687182924538788131464666513050661094148702386494040633628033340701599496286841416394262546277618627169758108755717177149310490958827020952436429232660359708904008492339009467229946508040407098346591726350871328349391945843629579084836267632540482076554973673495913500476898758004689744776448740532632995751322987493069466975959777663808336255620403942430437400963502586610906627748846860176443589170675759042040389979287112148690092358735109129111326455165279147821234970120590186730176899141972103140530037016661573287521776852376280892145018125672570920032774712395858506576641405389604764471830414936207350308469531930317582822552817563990807648143416287220044570375032001945775055461107809094701147952763765018247184516766805360427223894458463116033800967082980731608542435709809704249347147104664271170078698454209751314925417609151214127432973916700640380874046075962109150368670352871496711590151670122284964524663916458682246440469732014427343052506046685705689751990175023608646687281190804413560489453347716446160467231264878720263430550900933806631554509760212642430253618657511701097032383777394546032526703222525264067633075231525074238625010453555438263236513098007094724543872821133784587509871169064762380369250414274414061964458231546281773781199960849126380808200765803686646898384611311446940160759835835823718983786821280167753269869505456056468172247712797082435238794062588510751262771401470880018655272491130496622418802964506730347695457823915081872271188343961847171590818640945571035344371480098784563009880026802360726320824635896615242414973526202291444970492776115335196729672098133443178393498089624060376223167155210261800629703559680478219410226193741725279553534367077426807785428546743763891284612882581553312973180299005448992586140406988732508265913168497811649541608823086394298629984634896451302194414977408980269510763954382522622422964017447596050363607490737713328088669645985146851877220500810874332361915572033291801220204404389663840760817162606879892158798334877068317342802671757311871252364235968877892203412762270023752357742048982337200163544714241166260536216758898326231208375137747298376252944568517294898419218649466284869888069096167315409291768501727005511033603076740683896064243720900165149892383589011050918537564377122765427678955036273999111994995700076752219841107988785046790128530754994497672344532525246533101607405403168875332825706824095751425988214610386777939826237876934480759276680535059836614953883497435272622620477099794296190887635621924974151762098461666685990119489004183958536191822990765723367330451253416476431376950812708421244948349113259886742049304532450542161916093071873477456509587846147205848802254920091795602249529574435763443944399384729367603320071089039770510609168149988631829596712581745995864395604088079433728172825636094618635984892054911157732384907340248814075844497143316671282466664642203121868596332816768218743834771788325614899264197371270780993295920518955736356037054561402966504933331898904431233998086132657084563249369893804197481306754930700600237196697000258663976487957016303753827774315921826923482437950705573762911499128258186722587985217053150111236714170266377435787184560799949613538475599997449894143425503146852269613081165979241997496368886201173329818018616557577888047490476732832935311357721638344389972580881098364124671485721426016894003701542830498960733019022809424384774517819633215805063514111998639378513780121478387727462572184844899129840930397496246974746903907443396590327377624339122392923520490162322604897863040589710331628621485643947662829945874310451281971701370722669867805957966322222877485596338161352253904165308577343281888432068633626150380871075828922989514855218270192724011582178979025044964314105823577292004354316931542975371876186895608789921993385300978325289801237832552018041752146158725496885137035399011928373382800963690978288173626227186255381010663373995217893215799554662135675688563123332720583340906013546960785343124608591540781012572754810887699199532536608544274290220845722009567853305320381989505843457742444859311058001820798633478763820088175736593635016261910100995483645586789478313277209868636896871666252792296535937754219601642609847012950105598864730219022531256713051842774997623316190330174463326070001119205936836298547254011444492262027750497843124356978229412467915793921387176996540207103046253646176796957023062965224867213310865009014133907584772379526371492197813366152624863426067510627191793837698946118684105273799954137013502116803985299550295998997995033274991451563387800897136660606282644651364851544325196239604657922997758390745702126209417519971411000230503395694698282722999335589890514549913803256326866269238604924088751607141381924739954953645540564364930770281964273058123590527136687070716234095434148672076658392973644956516594880042150510995752691985112868498153247617047893965957864272512867225866779920011292605077037000762510482454420513808360365726322212689992133221171134307656705077257129723456411352298932971903704539980338765909738053153911730884437416519220621799338664529983518253256692401068027936945871656402103642866063304886010000886770422579762502570380871329049151898931628400264096096654692461406520951418020943235014225818416213055656010852415484840279459823875385704089378258392872144122319447028378886646244783302798600726912066623418313831158180520626567508586740637627054688700670484177053065322456079962698679493449567444306999487718412833808622814585702749283079610712534270486231939686980240138385762334016729720832250904076669523930357064983970376743921458623759460261958430788571658486839790900100164873596617193570725903580668075259243065014344882668363115112620230508896627146228560987441328287217125746134292614751952196728759607734153625830132774111843151995092043955137848627292294081996624158650536234007351492820180372976985732260692784394752184863547471892427373904698533304153207339893450423556345181433551212549702627849958248143723352793108683726283957183505475999230958701487939906693096687499065540588062106339845336190531944294314326378147313841641602262576473627492502913054805699204120380392445674168719497779211133864770773352172220451022418172006033089973159291474672170832156087446252023962778669878511337103885665655240946713234976148468413386939858092404282574944962727301763171666122544036400404264410197725226797572489258840237508533767812732948612836001619948776292916021344419034243256342078668721683236266527583705904492698664505614633090732512725082639014655885731014835033691610991760975817410117656673184615208485798584222853615660141837637847715932052422719503862592138994952056788500150041643260792062500587538509321252034840397581543184878317134140947986834073014542142722193838242151940526227200785656311000908489922087443221671242035121421838905413052041583985781256589861424354914130875109785677184574208782157506958104295033833716083904942111855357761430324783346652840270806152129537749805812033198132994436558654968550011351827334459648406374129216593074303929934415678075842474855957926683106158890312427880893964047839269164502779803425558964800332209207169495174211885041437840742231021973835726279515421280589396951886688210030083618480895137041388407363721301805195519762868109199650009979016002673045678347123457499565822250892694723660755160295332670779288210807117447052527163140469513537786447172999479688777077345870468660158059104448014878766176217211356249465616693589590250919596804729567576503441487324333635801029931095588509836197789028971865439997511999795143117539498270290716196897813806263024146624170419737580531246818775786827678217934543093993296005027186915536203715061800521973978058803594616316368439638143590756220355397410279052603564534366324828600210485629344047883714645211699861548677122570531437028411103131351115579029257177101189912629422307200928704109887360372174441310302758093376361859955916201407980175417641408787192329915286588869154017228120371194872223601448549864021307248872016441475722917064809360218475419106316490678038549864408963807449844891652475124913060701977498735422755602881076850225452294224986543849479418579272351051962529825698432147964164720805545207662754194608302353747728792199002595547549492909044034630418644948962120241515157987864842923047913015999569097913068653743523166299670054184168691265299074479107237160435645694876563342079753697102873974243843254893597617445696689261049923866330928415975036665309373452640486400933482728808956345787789875748986385480820334329630231964479991884483064676666652932947608427381243464068416728115288059863090751786089021329364742635363723402755470573993455304616977593699713747859604731068185880219934886831265099934760933599024587998895040404883259235718420019570560978187000869770867278378822622050548295351848996287643107029605332156181946986734962457188219187402009581259014471578093883127044729481165402258438484494881241892352810756516377646849532194729341369103711846659115338433451860389727006075227702736155158416413239590207069896301201450444199827557357125580277866125868224903034520537725693527667072625261547580294672127245456420849216747445634734301335700692403575735826362333652873304720788263434618642359214272370003749829740368259271918552615540594264001959042904396952624451367623267165085371999890516545058868098168518012743277250433092927866559533179963158583773632434806604021435034535151741652552147787392030060732162741261342894494488489305793548874831289826161684937676462849784624956845297915887928227831682821177541975858117958566458786328771330045956906252184154109217910180039914095194958208998244905071010824402637903013819622925352530488992673317703325351729265472536221852467954328985579345848185067903683545121123739410980305263509995344277861004396063239172365316836929060748446396317794959895945334986844538483653390400252156711241870825612058460775794822624347286144677342493273261264171487048884898924481903118984120566776778950445448454532789416862008930329517330360851333194076299180466034350669428256292447246593598975217629897671375387286852181791501105088003500582177784059833754889504517723175003342626562691439998554921777810815546562733202097086273569663011916324408000990267691410674487346143592772036635599257859968520713108944205072271879675044414168352479900578525567477874117857956157450604612949823244353792895153990747085023508726953590180734091144339315165674476222075317088269241143314988989756143152469394500528281868598733836132331878787256780684793717296235878816800863670420526734854522714951002752500642408469688619064001300038558898627122643181065216680296421874427308812416256637110412143334648664877427577087714543812141299539356901931760726114882385092760445896173282327313641746645834764603439380612204363681803214917215885359230214760689198526191910454338105638442852158451894443466617845375516191641223356344069301849714709031449630202080208924828717080040702977772283118644034743934273396056476085967508052058012985996899735686011455561189423862233883876106247478457743561817602646190213962700027595453103860086911600960634325373112587031250111967675257503741587044390427475664892393817709416989045831541882867997398340276993623091964200179204820634830425299955812898523370194620461005408021188972591310558501182718859355226250801108294565972991372397051545745786204739355644188513782583519422782862635983379394179161511024259473291693175940160994161701099456581385286099684306087865132821118970275961207399416346966133196830905090973088727239737385797228008772512134552561775151493875180653040610801251801710021203877460949663435938994368308502426255416093565430135963952918326309550171748910500449792442804625799600799771856219066919268856279926650489862873126162914752263254417018511454539978681015722546287434083452304878983671498671276004129829863430880483661324286466340306676349900019521357478863277653407907854148038298256128608223255443261836126661452139544847763907712988159070520666630044933999404312636059947302038231495403626825212804149333391597444667658855982710380305592600156089865827868871045837478548373205659081640223945768636314352618412214964427508684829080446616195480026035285034249195174302510146391823621908832707525918380324213290452998791641302697772465899592023881742287853616373041812484670183159600675274183640072229994718316363552346317159208259836263464364294666335807253287974568075960478296759810319319004362441227304599748353055746494249056694306344336474691126591093999992369981739105239172898763539999373366977376295926968811475647995371826717386696981894864610614941945460573948334246881855666721125799048213650780031084070541567172320647794140187354975729984878174554200701374325990326485961117430484346388911385228901208965057550415476820285093424312039345637922093880468378438365387411975240791534365982982665407364651106265514408765677879986100783485093111454085675654714582385483106550000098507750614673923213384371441786164962384413935857806078167898266185765581755532736885639972475281480481121124040779554361479759861290682933033066452257452656674900364525080370750297629118182332830710586467287579262112067025146878030055661005498813161047978096522600014973599965663273164109149495901371678929683474045859470185361848484373031095977323137375964966331565230695816893217903718007569029661042700064775214845459041982083819159944596069415290576480852457463661075396801060499873888988083587791274842619303154350773752105284015684012339383307741007595739457456919920635115226133429031774964881281986829899297857939012940095766592604042647163290494591381534173936894559830521210488102710317208902370640309502879699455563470164455426576065233578310750261348980473759602753573632274280726683478686338254787735546466388679552984984276148874801844160716228301641787061773111965047684843572936522269729697153686774765187532691574885035582212499336433939925599043532147852888289533298604847431014853404438513191550413520208488449237404747844895751560957699712339143811066139042925281585713591798381732212368285556122830748886959541858455670386293992123437688880008208290315530556488861290291629165972296256788964170409004523020834971889667807555716494618680869504582764916331838071250805716602562108119325127727264510468683714932916952119944146774112863659774473299049571555068845455610378832121746893848057545991359931896347635174964462797706355526692503776036069897597877191222578767006602104663202725399866471939555734692018671235930542215548830194894607140527006939042996209097302739060446399325497499104251708322290047537943129704523136096906314147586830685475050892194662725214938967780113382131975469957200784653979395181537295618315031799970669420018184484696259270827607133584679605289734687058117039292359341919502409109311919166893962225213708302594174903796579291280027434269025754294665127708924138715024774265924904413839855741742858725194840792392851851683625303923233870129940602356771398505557434712959529164651854444054663528368307834413551707503044035129758384995324289628400079567695109655362685407379814731407080513562624184769552159908476669670078384178924033120475694244906931921370692226431415383676100740990575587186149295032321347477606124917716520132969262633829115533149879874267176152962003085727981101927414499080171035735153797949925019620466719831430979407305024516295609647511100472652087447564109661972088308615148922614136585204053407866751359850271748194264353161653265487650760421605086845423192662934690254602317032757423509166591275266784428513930643980443340706263327657503580391101720955005385774924215929020851381357293101574643303376276996330266360731480288064996805595679450283329772496912050686454574004119018398443329024446977739796443937446839897725076936724460763166322923046879643932218807760223984995409268151673809523434175344855244101002367355901175254752579420264574031004825445732693772419535182028530906760201761265644195955510572693007540212581464022627882990851021321111337156543536650448577088553115272918752704535216281831229553038364018282975953025276291415039625448999018392015113499419936344894972071574905890698580047766363628942105677936707332996439885904688296076531307922637160400508402395052384685958144456527979979836531732700482221790260946153369310185487400764561040290624614882731379499273710156825408764032216645416880577664420937091342851503389870204853158667805211537614393156788526628669465033188809519627690806178274859703128269716447925461150846709900916262371991478188624184931046858136005664357141961243800608062895170339972952644432152596989549958948462231822982519188442384454242496420623618221281624167696693200803484122308278799986319395987385662339346970611720232899091218988820605389852014863286506213390699986838890052393047755274398692583691860914486937599782485392938224494356207719822580507602994007912778287533967800320566646260159699449742550793852303401174283917738172378813845309538703600800795323450605147287626518317066831008601919198229043217257001025618724816535278250125158148015533491857757656775693137772051353039377899431719043860210188877475092897619788751193629302937223650670943617431717520889469582093586010465960143745201373809767424676878833193919561927378953032549616856510997929327731872518130769239539744672203383140028642034952098649316560217262557957563144659433065324579901412984853181814666288726672318041825585015048040078866032918658934998092304910257719485885711441485315368056491080208365783212896030300728533345013001538671230928656299809006718972268266530433808339069597669553824069217415296030167693663873123983617800406421103147354816256828391502826389054241840086168039305013746554863965143318681689632274669406530459064388424087824306591220293888362620214748447614230333428434702338484408766803222977667837469027036925023064225825918696351970414600421365075555193947378546985557205453805976528319002552500332569992303772025895547963600529201395716503006140747435747782308905145616000753510851100450534201155157853261559680629516970088268456013874517690963303835495873175244085166287755949597190814290901396414092592099520941745133718190504883501709225203645000269398417182621632615581357132274822608569006495627473369896964056373128346393840760356048543454462894681025221338489404488427270361159071124120982594771703995906757285022703082991381111583343676473478088470572047165641067646184921096557391614345608388087319291466398621329716528778113203634835596852962415053072947644948107588793019748350723744222956589372748895019264982175734723805650808973226154356087360972853228142850087605597401627999064130804689408552790375750779096341454313827089635619089404985094638259712017228530903257507431553771725854793409583948420692953680582937633292582661473209021067938845308053699562236891442398087433226515440985309854259905744852485311738630997911489366890739268971820324706086891286022792585779995215058811487329266863134805725323145488335130393880717158303454468208847899375397677139410117274750722975442533086630685795225950684105233627009743822565069603440663993829066334674364994215413101118730446620102705776374761775391327379634393650791990470121550516054711840460759457295204629392250070620570128627085124969320167682415147967183322074819229475921080541058364708590897592382802073050692745316921327884523467650502993943333105353081577642704633836404595502548405344284234653722513235691544782930304780332268052362162067977774671544337805313122622205377792025878333701154995816839509406722389151015962461209321861263544771478747933111693555505875496611655111988589056164391710750035602534345332421518745411148208436524704900779129199489940531743097949004142754093305232514150525584481123173557700443905221120227051808056855787793250500515862264995332334821333280222119499554214034865604402217790209169763323850357465733880135515215479152542202919500567706198691209182070591858576196849784235862868121894030651176923413766226347536094391097298965088062307915046629533696306260010433068809512312120103192543229762785409065680873602509970838447594589228166788283621742598385271720758312573901556932816569050071000203232494821052043828701130894560134486261175727285725984807052508122348104861022352743915899411771169978221837691404388688654872091257741682345346432512140791829534801444872581896324214985986035747206042609261197411800768385012012571755853193998794577379388841940393697037238573743886636711227917375864305375717129602667246798032668133089467782450237129569717169054951789922573821013219906960507965336543292465426839101936752771936033552610973534936635418115524206716781614790387207832676920686870074994287937397547502068444877290090221074765405252232691964428323648735082687681241075395842470912810397351716442258626282818527044918774091768053352182152808168396072006352082155701635280184057314280847369215394692337657329585902688310332542069221410604752700504855486452664554660744198702233591242864561490338180158903667877113329179812811362320249788447828030188412715459878609892539928405354249371560185564769322806624648661316500670309961259829311641463641741750395691682285785815959147706870032176329541864915303295944075357042066208464387532733430751453915679435795290216147394869447982606249659904986792866506946470423799934943391863691353130898070566543028412298863516526807190158840577179745476485600659673297502893722035937641068353898497226496976790604957962407209464965674868315935439989118843675992036733343207537768171084919343267679471632480480301213980766959455642672695061473605360720065493561298158644884730200731752957521972367982586567096762481976261117210060705068157742026631109243441133324953558104378914643455169516216719389284797978398138940249771932816620048019164658163478568051964351230853698330938395926034979971585806915771171541144220609148227371935138553779772956383755839263699321493270879236773721493997477904472815398589524402795793446054263085391022751934646840878057441800639159577176409726169100006483277335377607689237936958929473637428705608051680179821433494780683021336945188486870580579641605551667853858910164701807965254933098200404141137897210888824757879900791921529790881100185028091473016276223351517634009232086996286763362051370231405565397263756249382702298487949085834441002114241868753375150412673413176569898864356108892100181269621312441358935557504532898639366167115676737710844586273530500019216892437659881578769348468412980028129395810932745200443757216006148579232780396237425768951996898734066386397877456310565062190815230593743815231737179190442758731921615032744185348861039651306402769963962951625615419488781181282309313853201748322292651119919692527946569278133808448380240566015426807789677192821040256581333118803777470080630069855416252209160708930455398675601533456215117253728662155846462439394577054985356048445068525948178666020956213369112186631192607911788694765623454624975687517071253333666543211466801626291880258016548356403875748176915455085674229029338901881305311796172148628501079638728406792096523298648875690380418708812534586257951866403456232253689065106417618159188200360306863821843295622699859718465618745811166717165100578919707397422191450520524855537355119290094199770221152317744013857269424741148636870760887312202479819484288826284673500931979817173572505253789332607381909914510711363444892760210338225590648542868907074326696140218471928810451810963696460408095797520485445970679009387690890149776297887936111633263772910044016254479057287176676320854463798265570766856976032420982184887314255830055843465199039516159201146886145274376941305102804485626238445466066036676996327672471289761644245587106484197912341766243989368437427795735634053051774209238323535812089073474686945940053801656928322555450335195678995902215227043149127960655573555713850850285406559247603148542947187933435608092338845386992106738660204756095737410323239056904417530797477446416151812572064413677505357600867310492580941377921677130167665801446391420711926423801250164726807389441966332779609374436935212029552354239068649898577374952674108188280183301131888656230805329600408315337657780641934865629664249091956005309828161760772480799542674071816398982639334175737963152861909901533297852127033732027775594212929997966069600067916267759695276106179324963517985364646101105390280095254495976180314000035501667050573932644524575573522548218164436613384755265704889357655886308148602475543023445889699284228909728184571112253701695934683178123956824876646798893719842236331267091704969471308838131549814565685897315754527941687791104414616736924803508585925728382075669535318808072012125319240133803523501178619815066464756450460737886375873047507439973543245876695372099602323416636568219368587276935950697978139375302322832145842854927135559025747447988518885991561440773726329338536978358506274243873363556402164863822769678148675764948660392355339204171494702194854731026028750041257368303201846440631865990835051313089507427759719950422748352936342520650685270162321400068838762361476650767323114429701007777055040260700021099719343405432648832271576925180769807707531248130163448720009086305013385468145886911275472131899226237321404140454659496460800728464884050920575406850014121264912385469286058148715921687200978765120191930919863728513169678917254144524152979505640392784033915567057267084515169855127852562386560048095267705021388554484112416778095078375853269135309022208865627037075235096015467802588073474593590504518617051973565719746780819311100896195229066283513648379407525248614884389777019767103284597121559746559845910860247698421663128467141087224046769959672770353692070970274686560521704506291914791433379113520007823017342380814618733272271787342744756599959490722640994125549036878624436825749507517948244213142555031111349260197098605604972042119949701172918202743130657308147379618380799529897122072904180479326255764545304123187842508915166283269564105858807703036571863738413097625394087310274381179792250687596821514869684809187582237887434023386938766068038039851093940975326035135738818622551890858064799847353850983894554345677223174296507940338970273467184902422920490521784289246242339813907727024041231645228721464162411406402055507158420937127515546537780661235616242098915374862963209435047548420252410440811972009986394558781863576268696097826048529441316307282818159779664014607178158155764274282737419096704837159342214418113917836462119455771547239688749946637022637600569247100075655576293352655204865695614668661946120356565672215220780110112061251995073851290071931629671437995915139203987007230500420562437361690340195427581124461969775732588538894137979343737015990260973229862080459052360165246558140645484104342014647303328309850656604938226529307248445971675960770974777763818292714315455615244529986642804397273536992543642937592533816084018166694238161405710630996180052449026777313218950984403862542527694771195737805869578811902084299959995749112059283399905292861060057285547979543050943961019134268344748709156325289591912759674525819434095427412472231688722403687124657579238385739853439223343116335095254824591275808540680277110592281675984208551489305340167923372719786948011543727981304345868219653015005853124403103600580570266841632485209469014516396592916290454342903180077096158573351166411115715963486996152934825007629065029576385945145938645672453481751644148684913382116972588186115519638844948318920763177037106569446689700150599100792854767751230458566172876166136112873316987216141984772368683961567517420908601347003260145781312445249100411108430500624491379154571859286887823455126688091491868043937362550808646561650543443170789578785219850866647454297798169481515030141422920856941528072928217496551871474922832460535749712095076795160592856522322442203911154769380530998912986867748788822346559732452268772851786919508484599144279337270819018398585437642414074939747940125146524003339058737376888484498836458420511139279171777641776501960228271627453631679515866207166702143201020540522966219578482806316467848707856627714369583706856458136418199909867861474937612957297985000539560503519236524336025595424129874635921487080088963924021536968052462020664562211246031853577266461841944079639331147099840571610029586072797272383932425990084645990341885698066674651671015486953226690749251254832968747287317935918197053331762257158577392840613101852460880042581232048255075216413805477410832180121055514887795533446846864414169862281411814619579115269345980570931482480117804075090291348321169384520749572705983555273133115213043786200569797546168236240365714160113845146017880442370338732635847126864847269784230247818830335760410878371084801372132558276138897228050380125238721463915543162583684919153115407594045769802917182119499889386010761938847177440049694948563478707769827323710940064314982128244006782719328256755361331846606580029099186448529344776962390721601084007684362607792305369150421731138421493550102614380884454734823604845490843639561888943926255193087302381287537309673708861939061826225239749144743812496813003994199206662666565300874937025683792038056430455331920936033497405873546057579724935988779410178742892156310118370464278742164093408824772050989273896721552447488586970264540772705483046010496081685586486949973108255521297954556770177351749796364956854702237596392631287529812276617045306196229620307280927420598557745654278249083894006754747459173582691020080176221742718339777096333827387307331850456788773285720950141972831562549117258896361724031319370618826671592578296103576684885605331209540864542199666402617749924808716288902550735468037360428622551228382054815961433984463045655227924357091400525225061810223758892866909429542406201552099839596687743693454164643427896974976866281204607847134378355973411189200698945183300217889830854204822516704051082332807475254597528322000022985959897320399636399547149401684643563145368134723476079053820313205042539065081461139153912903857214502499230757195545950131848702165404419425162920742570506224630262735541953403631959244834041684791578808064522068739421250184379868926867042699986850252062974393736961183582374432705061579011725454656995454456416802696022184673334616056807081741994823852882021914621693936996509739479858952935328477931580205951354853064470751994557617972676488706847039960725242179432867198312770414298732831104786956488730837213631656175443356390754087332717133258527298336700236245187458435915607952996702510771240680191493401832621424912126943983417796898233257439439056739090986896686452132999580624606145473357721148157072945685007508797851538800797428901220710234663873515998478372507076307371471587492653912409287010116153534143261935702685263406347237280849505671869949052059405845587130653955410024504718609590856623953517252266625102915402354670761183609863540847633994230606524885872661836095125181208784298697809117338488720091445264179526119740246907928541236972404313203838732707417587150849688440776773835174681293991205036907087815324282368947093855314099764205974422797814551088085890619661882924786056519905085845014780433162616422229854995101416166773488356981816201181418730228304375814731718615635452625683199969340691532567609826858535836113538437700859927171338484162810956489321925079942163958946138475176629257293782027596494995965437815154550964080318221480740906896386484486119455831394442917438981364182524631484526258622347988976137298336503003055216602626365297485509817370805614992482989910007171205667202100061362643821037940270652493590104066897534631387944198169242000796650982057703156863552521594163068946959025466661171557164809209159118347994806336657884798593342693633004367780789319334167202681641213191810894616897935118938009455558634606355881823835369164639893788665511055294834238690688413596942195279696341296547324106675281429430917718638454294840621323802689445716305645357809822894304637358748847010845704006260237154591055079146351400788451277927746018257044407249777023411750755254160082643637496087986928265801227520230095604308351596867315718659282828515150122166891133604802266106649020139990171359702869248133714904172072826255465432766380767315434118004739196048032487328227293646000526284201819525254506397802345642453090587226000525344188895715125147042949534821774263202024680669269717708107550346769953360017139658865573606715381467243843694000678823330656286482143560322289206103060412300588871666180511911475567585332900466861986822948589912608440257572258648779504546431131191033916471665214523914970888206249393553072339408864086800414161469119434239316766980605345983141411830120503867876222389439504319022335123884559185198440043388953446902712025456903484613408384966986952363464789219513165061872470440167936027214158734719630970452312241386926172483897252418301350958361730706066534385641773890105767529808931175781768601843158007097908158775975750690483818415461992522325252799581795441307767808183858994097392294196769554844155647010384131159321499952764915863050174039828898282581016203771818717142601370658864331817773707051481652305924726315492677285414246644899969915536989747294961162278489706565420460860539119572274471798180540197024258356789463686655931932227329882705663010684298537874341081106176934866113637483037701897697870685431371041785262920099252668076624097280344994692876217865560084554951552456389495112589365747452805810141070363323681019774116580645711530534245778065980517975245054408069273409427160822489987295878481169384383961281296218184752027411247094669238947023495820916145269028839139941062189243557688130307666779560225592215463778627444758105672843882017829618403529169368223930914996691474180559590468086081397175639784418278470272392546794574607371529887831644154687550569020446697567699777102719439329794646552031596024684529280602933749267127974608073598397008672657717485106528921855182800214358739650194179437981725993068702037303867190611722612440111259930553469479715668711060779020712695478017127574116629658203511574922627796835553624016162165928286591237334135369419668003422261508712190779190519597411045449905038480271180045903422397398522631797115339350896686180397829806751912323554296200583952094033168440193825344221246268141747993667550497188510803205506163931727208901447616949897771773408777411022264763563661579253898383214392306273276451154961246851596566739653511049019768175343123687605737159351368594320110520738768712124728980317370461755388822955015007768568244976232904111660898246172864830775849582228548570153836552117423228416104034762792669961821413436689703161974014312820128133853879816993079649001213113307130127202173977975507767136368005645197948386371853470051860587049358369174144277037089699802851995407235098983779970778999728431956186390943273625441921744033906402875443278500541143056554042753146695493318682609650353174840138769060318580797066126481602950395633567917734229315687996299466904457445707058751893491609490040362946743400549848912023121598307598213709468787410962381240309988576636600194392209363803586879110763786059714266013653105517968705126531191671731100281767050687373283780478116463301990677257214631456592503519851859715494884185801159415383509259392142835067566380892061940483635083474583268044063873084423784983130490794158036166094023103226948659734423427346098386820918557933233473066753507371452085919158765989387893078080442287252367455098903308909079787464052704693965187404641963048521949611183993470490327856861535381935454464509230590636647865309984851182585075770948575871392854940279167430286295127610446701745189285381411213170051100143549680477183398283732593529729782068181405999359604823728634661416301378946400018954917883404478577793667603477004847220007597526643872427166072740620120710430233561811016475532118684167646562356161846231093306886035016430844169013190551071680971358493080494755629170043382497116326366389872345121347722795414045584070424605314281724047456150145535114645925021664745153795360911958646017437052650468276520605110772145861019071655932024770159644460194594900734983878819455157303004392388852663118547775305996244816568760244602157585846759391993762930710300205837637859157685747446496086458542978656261109765075282674005340963100647793154557879575066537814070384756098808828279856508431528631302474441674426967695206770422712999656631613988631242611553234775270539477210430026122572666056071448602451102582997511888133026796872250820843229262839357259617630347089832201254820668410539163356699600067308441009554825576931584175770580797163501593968193083666532970953367767796555059793912252396198554483172879415963247584771302528551485524633381371216949537106345327342255864086574524824580038421771361326208305506534641966593456413998760094699018304507932716117914952794002328826783389272076931707234909569785086367474876193767357768867389532649019241519804172346946452482068308180391348413307672827268476098018706471355742944721768526577118761951912533829730196821186428668455886286053853893766576109326969815010453736386401576610501585564031360391507548039553272277450093306142293354968863033131908602709212209588732046248659141274322429112991223520316893420116950933870729856493054382790580777305896953121586628303794711623096621025061028023025153337009465709267393069874125803035202813739190138187318029484348138071304868292955897865454144339599255681160909459203159317659485732187060391561539130752749923731701189268650424230559413760442144679800254265009776665364346039642665238050787110407512686743528677511200428234577890349293645617307680627453063998005159945653737470399079470866038138117445742635018378504751159080941084587611367599653999643965590097559191613579288819728083688834017507545915822252113046526765109257756012405340027421956990285071183895939089533843813880369939807913133537453776794320818937176872857750248655447184287709328086406695275852778814245482626329877648640820864815014209538394511512356134660248496640139170785214493021968269994988645187296802295556086621674771942224019569633344992164003536392847576123522404902093069790102400032042690052519677107694194217197047717247713157682254596173348745075489159115007155106708229099797183069342325337483171774505004160503670079907519380025811645062437543534266537845620407112750543613531521989552010310607761506889911247391619534845707464797818231060412969213658700579411854193050547565822794764951958119941517784321053283135127856818834215298734553412263705612708636941369152916671641649782204696692483073002233281974684666202494292344410261820274794744873499782116608083868251477405226211353516345725244856953698645666884506606773963439231930740195984928492868023330615175197760351838007998065319123907711764925525387741739598121147636105582485041330512015000758064952041416283001823154096412438542711466704486920198565457626160140347498916558344391482690795525954770193362709151307470782865125149173740659382211063524010528165399762818636067471660127338188076429477700710307037276503212404423072782929194380323049284474088002744993661776943892426407729588207882617579021588140015764989236604744900636745882064585322432886739482332243476308355185537049716109870380384597081995293368300427261433706799198440801658123583372744791964305965932699708993705274429073644554101645804861005476212193036144418091260490290232466935062962409348619908327108899527352272531048494071215996501153841266656640189204352780775526461466586435115528819563102026525237096297243770385557196340740814228798134179736991414653993513200830805673293757926851135892465504232297618009712517290305647026243681237861626573992517315642021790841713273774007585332083052865565099485838323754558525333474733286905737819614820567306410513067206666965990386593099501587506213447951397520960833317750842227932517031238862591139605534714908413696483158173598502903160254206885394536631983890388534539890849961725142499818964849372815177954884074218266327012222177224923552540548841101058918803036107139261372800604202529338228887960231894188130306355646317414613676363437119458008780910487222078481631410274847460619697654739694892079065483481063333323021738205278725998024394347165183742858230893611061109460444175378055440000272929436351052293292847401804997702190562524633470706664565734537078364133437446555031974125523936757204320163238367737251336162442986312633200260489812909426213714348568230452346607655766019754253028441222792179690606568565834359295786019262236300711264773630980673778312580477060026798912693480450830597485848050924178175076158052049156009792108769502241248928524139412148542481957844197710425433103169818086943913165737685240483548377911753963928350092955233233723489302055747957691982471107289457204383663683648562269589756095379840923525313841382756046713175461131740527315420537643551107531065600068708366499909284796445597499726928456687013626691898748046371470954465993855038685038289663349915285907897451146012978678270438222717409006726568996743377545324574621693529233936061082043445588128489781156878966636204323787706119908330866549293787161926537899395441307819200668688761761306541631427366635728053845155580553001300826756926185972818435294538782312523501764644909203148213041377314100219381159069894619031595917693648396954634174481817677682419966787905282649115158304452800968851638260404785064794719138010405375019976886451181824694330003493502313842427800985833386442022628918222710456454997223891319297350419180468548608160700740827055674017222853354783929229521815377141128028834926553808012407246915048791840370781118411368529070864437521372542797612943390387239816317498572023078839359025089923434221585659882720951496758034254163619705021635765152347453999794170844802250252097146868541454471257293137249253721672930530482501137947081057771821847249312625761112206329641710639234023639591715959403371553318522495922296667682182363849726730987049413267206671664286949719573864498999182094581876217046572523855093888182354630100295159651476942097241577801760823343780205517745606922800884236158988730857472736904252321860673374978367156360933656343882694408485804783369530329386304371457201318164260792937492652203686664716539672705341190803504985530329871587553566601020072954896061630249892612031704900402836669488262417298779258235377060548939254300515508994796895434009374565208498078325212042941831378072567942411969780385349014282965601820136636667037632207106259780465978796423904298549410452412129815180921192866302309259934165169599154481543172242016189437068947548709065975080125802768937104732108221358164190949907458888727176386229505480042510083583274466905368387251593349644380906544828012677942912200617082455690622457587529894404018073852703041175807859517353541796291876120139078145224413201603912796868517846674567275428972217219938577086926093648137403815958923819917744245254724555453617595000143835714396221230852773045248759221643714994355969393158375971557388670503334513630347065784009568619038446095215369821256443803409094862536673610154724106345112567687203309247794472436721784608162073950576764699321396707299966841157645885095985765499194264023646693115451627791618173128500390404189520489463711670854687583540948001729678302428468638664190547676749463096977701249005292629534134010195445107369653155037270287807366757714496173457890972405420841385497945300125168039779839468740263739111128028023934134435748014074318226705715595961454016547502548408959742514209990445696977999869235332705309916904918371226062367829298141571222033328284717670455017932426679113062744001239289335478850309289753911355751931480863249576644459580870305584914171309043915922810876563696586332137695129003823373970462860040343703559501518022895607567456801871724689804418777347147290337140465688727667200298581387091733583825214292599011900597948914006372393273030333244736629175556304738775662019886041091654417851250134529142182604515789398070204955489645155727156952876493507978036912441579460667187383374560590498484444057216374911134058137876255153769102674724306284157601181159541377022623410614784153297268557054624449312106410216238273398865257227015107222392759618093735488264811119482229398323844183278952218101169047058160972298822688478485592313136371673454666840440602688721463518929898171065700256266306484697220949435366831515158194789502973283598709279451505359564340094172019914561654835584634970852740332497499867583206465479039089569951428575636391544686071208459911879234312502215199557219606658544953324316789702936112132571566634358217601074741913617540230640030659877067052718566698822196021660232862061392596962839463963720143515786756524231412861003763030842555725194215789335722331635784209584143880886681243025387938999675336791930565915685518070691249185476919507356581657926804771635565531683042916201357489555024356156234073486307194201606342735355216480539177692303836159032934702791920170250952583274856721322591996472571338001737271303116903078842258434548245352337741279091898746473568467574210947158563260975675829787362565427895609049959147453251982953919002820769326687420542641695082496474066249897056427364741458672479528090344548136095128062167930455600651351958161700639733221623602243054322643528764294085747291545371312872046473005292969594873158283705985901013802109804530272021720034710770396717758100437145611457853092708480372985600291536833854330630202156847774152649900618913678455443142524110110729552266834851494136171329399779688886543871817520855074699263794224614216087002569281773942543111636440559460399301119689419523110150362750476328865219079307585718976059114050488220200688763741033746309464578560467304171604958037041199847917360485484932838113383073137917091432946523036567601330013308266066278221413042100141265024524358085289352225185615176295043264336399864594462413768256530305179643620490619003126902794240078911496040455438980863299449288010734679550648412737411792234707083723993201930289119078657562931488117319808507482104830269757572836383935761234338630232865070954116398624679396253088505588092747370711456833172186322956860419798851640484076036746430529699608132221063878096185815736954420355326209347948352198393976926614715160134787637980945837560281721104022227520031016951871313540990834554263990011993159320054212752085938041859470697319742094240023335677976399990046919770006725276118490853635911941886909237316790821646304066284785536286945360699639585042287122668055441816388928022456219839346551369877435718026465550544203273239398224571932725476673844406569094071374094328118876095493936334507188939930423119649302902199815182864950974531017063998058195505025370794477112620469111836529286123857650416106960770994951001730278650550951171355074620082682981112662097260219131357142443337232534451527188777427716026978223352882329742196684239412698071959770854240919764914386258757655475500698059882625963665617376191082769124210805597229241762372619348837983227534735193736249528517941744075472154199951223267652330456517870654447338430359383327088110622216882391454393289107684774321308930490478646894907522767814626937000078293806819720300460999424457870429997385807402268858243377275285943145185963182060297552307311706032634217513677880103528572485433592055247072274212198867317520654462485113459717960104156218096534807870081386557949195476954291255248310225095161978653572971339380325962880918311781653038835098054901225551276394057911980470494678937728926507985135193253995590924745116348308857766193813557058661663075773522770883165560834966174493044548726220229795548696840869948266598784488240555763795092331940321822846940923547100397102688370575873670310550707370430355947877087461218659181593453077339267226652805067767370934268340573213935631324165572496558284855672276207589894515172984572569943998649845571216850694087733025666208955891017871705516997081481921631326038246220028273222090213791320807915333093361607491770023185705387405248278464632546228779589957428127055690914449360618785888031445930876967975139595237529608551706777445620957375621144375565490897729297159965864754958883747251420806105233512143687214690992440162110790406684951781619447598252810659552667622507291985002968526506478665670034327224129612692205627045159581591954292783350527894626616769408961181814000940745853619337166272140830428578173615724341858852809428647202924386982969820531374166253252977810901698803383286641659122814413654971471443040858256235960730630742568413114546541083561734431022752924449354894748487407177799771074226114418324097106483060516541324621429207509362395743186211720410187388083093549016274785523544587984468627111301419581512603155245160121332443715790540650789389777305705206916288701058338612133241553209241096604875117309113427047347028628688923291506214012842533874326931167324188686290177497796752389421922456633891070694827473711179565471830167407207378018653728189595887611049059846960052335046510660281027794548484414333144359910681517779369839383941040186992377460725628867071012570394634726210246826756867328217307028447985058729490260099094779345827823002509692947024780913288619083743465131218809639881592549419324738861528543440503018362334223846359216389179095471388851666577438811852472332105439159171981058144982390452290814850363502192624793873868841108983377189025545247363192309370871641678011490890639080448959199837651706262407120167497264360762425655712577066541141437113764904519889879810920192366539817257642260369027046252021111525920109932701862893535490184803396295628360986281129226225454244675071050261759178095810167334824002743017249500997862529819624217476143219264318553967151099942512536887402978194193406085380968676009409704022404778912678971565794233539504261638702954611386065197258456913055035133959473560690393576829749069633490327654967807046986419445921024241512024886849186169947156378961850276530309560847680980380979036065341349872802023889194983735571552221137010462620596350193378518613453268816684802546906234210882509297538118516880350723282287583143754779630481236911563622673250065009553517499831410774443486462741873206693703580210442977428001571247721307642475238013786827321429516114230295742960874863759122790918922782280950110222742708618660323048869980905988627895310881516617421785133090606664958602610311039786047416200402292570186690581819749729471399090330206563030418934266483895256450128768233753844295306048548401789177827753312221888310506799631968981886737172949323328261775060112779927169370696388773296030394823333628539053763945462128777506237573152014480396873581135528353977504952949652906951121285563199044420481075782782723772946973738355002966888280429179949653895637347637126989994995267764817488968772734849461812143037145557910823244650577141291901255546416474099362740386681566054182976961027350914519661256685604871864110919686246369280217266218134648180432824197767776759286601098787044035050742273944008222252030882775754980288988018699090787803896749264655866840473870160582296603295490781506773393091970597650218071483966855744460999642062056756884953074490754977360807299326583745913838472390171213290736968145290475557894923216394849215140498590330907908169739035661468790769161298935282554824285724423269331690198397762500750527400402206239078003754534911603840343265329741021598318544044692363225018817093881255117531016811805798112754383544341372332337179784391085686118140730491900871763598422509229706133783522967311582281967461617660425575720824445040504030320295581875427547430281911577662250050108730304373911478183832844894052026174358407168447494564008901200032184142156043818624762319644741823825384997785521720723308017876705791360229393678914216205455047062772724672312613276335031425878246586365599003746297133003739331292640242035076787495385228826298593587672440356902534720523741852927732894044049397073284957496962784536691915203709082572711723584641122532754098414721308408450415600524163304388303203166798525465519034532444564624267113254519995583284786784676593696373441678647100569368579784931331579411938755755617525946679023384398156076406721371362847196858899903123743137704471557581989519075735989177402789532832117742281634303994648821598278764945866581408333545205121564747382056012303905599316178943571853207023144308106552306130420326166516453848076996980185736559775888050228237204282371172309233967516086117097273863458601661381417061337960164839126258614336665905327118019373931314043025746959816246112956688238892155097185680160458607869424262505474006134575783469747665380174693997167003942334575785769566632382171544192447819185359957910076856646669714873914442213257145175725011013933688915825989310546317204755207246431578942524570428902595537271661910955626189643406528322661005008123422598403556795288500506341484900485264815452007771402827793762694055710094683129594290240875443763622084476267360777858243000920712335037501467237161197685934649032922014758686622713208669962459033716545719597176864187953650777166769628677824318655487858342618868397008430010709892791980005878230675494890107528163103038076353536727190854647220695243580212378802283875504221304047399094560218651393716660229426160098946895366670100457476575892705676280023342420075113600611236043064180690135383381251152487216874724908930193469917151235247757727422407843875622028642123040163373139791758181264199710213308656590202806056085295046783235914818901899515286088737779472645273735394860228296294979107422213992543254927101405150213511822086790589763158271651509851578482274623569000490608213705249992031947794109247934815796392151240333853879083832298707740286858368890592584589855032207888780871244812298915512045552304256361070095999799351063377167630077239817614433484668384482767231291767544747023163805092357741403750925711402390005905951676041097811764408184706670823652267596339099699254074162580260440699886123408762218198733924301908423145679064503159985294184637132924209798268928787403190783684009264013062805976960287216707899227127320711585376758278980694135429619507401379158873128408983969905935572623879560082105880645085378978692042531992884912107392308923328855297934576396306623072293411282191907940436595873153212580288610478594074021287381573896513972226558762645175347586833665083649944331302290075898222957488232823427987398532118448620525472351539673914143500359760270082311466734055672789950680446132867571660255203974842814254927321904269655465573380025306445315022720947601702446276932222711070271711878344328216450466675657189924977004345131907483604339356465219177704564225011215142477623492935461395084924370090025385919168648236621286869843981551193384135030078765472804797149214918098408848615915038900211703176005953703835321423767191335651288561327836757361537937747400456229398350992232716968974215125400563029403517910494630809365166781679669990314946859556001544593013075867180122637816856035861992335337006075865139926022349671909372612293248493019343086722978769383284964733975434884551870231580487085662406342978534064373879136851898898452507862905781245333537588695986635986889008230251503714989040070673431148793746102327175974731938225369385430628365161729735617079984781089552112917218980915878946520073057345975597600428688520946235329985274897603014249525105646973051499290736542468218485971463054869433632847314857620818778473614312110393022363171566923008936763260847033052928652667061659812990967093990234856596016043353324399665442570066031559436723045270001233439981884850184062630386044423180381003317674611047228070684241680991751889647020157516503113845203859572254230245923736595787116766640982000383334577482297855051215602308747331579264588617054783063353083491498948756962864107624965208865097944352300150092601824047287801558087450093204962601640525507002682894043586921912930755151274817270475232738993556279889162885568519143870833905627326454252171426197783146691253719951199625695479640124302294662151717216191699339333418402623365155034071428184969488622060988721202712082994676336583027093438967882583267760609902627769221202412788369559744157729181289526931789730917972436954048268731030358940843229152085164021257094215031463936006975766026999116799111482063675972128371160276365253441365601593700881409808796153142456857288897331526585098174350747620340825597970859811496710163180620035570430553502104664774704504989391072920607385672089665588445853381858998045131771382872809837520616206636622318588222488651806579795702758898600555105888623012132654969808142174945361242183163282925323544823045301614817368479980021351133340798782851636544686232626662115364080710641613894014727189420525494446723417965088674870733790488350979754180745834537931750076930322661671465756747269691805636722413845390955649634751700293401740067252095065477215172874798502576814848175796910960659738966381378069423255525516922647263433695803994341397423011571662571878472536329794092529591010853393420814221516961096716070226123726613860500130350781011199653955866424504659608845152395628663698039974315868763866813766559899761129857270589136759302669137352630134715760502171951600888799704499717996290432338356147087152753923475232016946285826655272427742810147889677526296434493749477386804928741956324314145335582935392982923252668569295797074295201145695592763078785494637971078401222708670049040338064448422079253077742754158672831231625422266364186397894879908539018780101286903130883372495305223630953823559932460236133957466628338821081131247068860615563148827435623007275243558429448372672203954252300966036426802315342149324578166801173653301155345057331436196988270182572950903473608318694449315293378932611646632055321694930826987457846494571819944188599269577167242041205974452223557244691957878089844566391374170529863774073132128193747797392507726968822724251582207986194149546615366540293390753285053416994516044724075498925755208038563193579042524441771101312098273755669204734674043563318119267925526072514148578641954017231472780246000079425200562054016420511617748745618843802132363441021348124323850992809938012354917291517663135082361854915058892001311579578569059570285677749940175229773560108142995213798374911624037886517577978580085512837696251545897169665362712393424351431795063613977790189973127695734670419351350892925444738087891089582773398132588609203702900284062959646815005073887473333317959015081627698280557722360737582135123552903642281714217076377736325811901943038573446617704141040500761827437566469828837597485140045519691812555861599090591850141895878447240021990226461297654162924134023007327472091411588851254477353196550795995913642411906084127800249601898926723637336053318177265060802210360446086277868456482280962892581414616494054985080371831620781140769463519360434408852936987285005106931468189447610612684814896131862738540719300386002672473701731525434988909319043247001435589746534051712829819216310194323655891199306605510731588775101530988136194631896623152088835562144182210608488880130329186409345887085875411944425573406724776982259504058716851906744800920267667777961380032643534857069440794502525817487457918145622293264346178076119039935327661326028469119019230961719338463636986881272856555788176418138870347715166981175058631186844895839876488425960777495265801126877867265404463179002769261214996323655520278451635035666633963974426758508109472174897712957633046305526644387127676717519892439454659159643054362618919115479384365004362640612435393005072786315195369111070715785628467184277652494165748459485870826050471986495695549823773521808281519384924958645107751824874703951448820787732547195329892798741660763705208956450658827678580419856560002899890089355481593719453906950480441741951344685819922090958435332009777189178176552740555547958525197667252740861961663597551977174104414770512342085357223890842220987333790168007438796587908872550753335347468055085120954926372587336397579114820663759756832330020578378385994868280309553965875775205159031821837168272682020965388946806750745965091501565020476111881162843137107283192895742766765142101437102243828749238904558144821527548752726492338804470040411999161596241646238817643553352384903195950979096500315560560815603518168690185261274833619176026183487880405855974624980482825487241656458694128850743629071466423586483966730320653496547946576988116054499199646812312572516234691676992253876268831979262207421677476836487902332391400058495415568800169062328948013867330156564018169607451200468351652245129590491079804926714490825589020559861831680635258618973201372840522201030492750266465685603631891326168892130263371623814971198581383306842923135348521996924513767834593880996388808745893892318322257290313983715649720875788377630606950325176884299655478300512008653313829784626505704121416732761802930891524495003137375042887665649674977708920601212218774056967809433001285968935725230330350840520738589031845704854245408899619846204299369140530916348026643306850028163640073407137979156187413254775369018158748045436186813574872203355345887503715337681778233717816929946325175566134449193892714924394514464468655852605988641068896609745097920363175590789735690957919191894957786976875691096347203685305346482928504777908772646693034138313735604927224030753021710799125181045411774141846779033635357356219447451696630899496949331404836108675816284342574955346091395399550845144151073831650970472150483309559946516392348391383999645354223077787095896017257482238517811585995762963432073697455848896828956978176505313365114709046600689465809405995363904295597000535027749850885695855968560381125376255868327420608357156625743214168338171946845151909659993065183632530432063572609006782560586190452369466672273277506689321978102882662705107444337957741670662165878116866774312076789725164193637500934386655565910358721604515197870715684198765417122096698954058177356039896668892390127136495696175926051852903404929973405704336315174079716459750901520905344866998988179788064570838364985428471727016446424701262074010743966041514487579921601549365931100934256512617728694091145240433608143375788237629295628974099121810993977972782661241874083622321920504480761507164150459590256682920370794155592109087287446635946844297018030276536929407223131536399905666787860978638311257232113741919992090857460637415657753517982796941665699711854998977725395360583499285923729020324572057843211977220737725974156132452950945954286646211058653671333546520910187586653664246638303679362690748755673654733723453899908133355079815430755924522634793360177527857463898747690045045101943885797452957532497664552656885730529325525371036838709758858595786249477416924014913134598911854818210239817275059878917011346394498184175776947832683203332015050598583157556062891540582215828625029066309804427929437576215064594341180961904775547629765460935798300619307001990941775703280689739511878752796214786856892409936922271853595866500224558794207359316883110562890854208652576753428781751235369809910141552333215808620925545929760199851324903545649568354235586179123211908139686538555615692354936775859841255618919431265012403927902264068200023187830147642134949044627599977067766627186195945504202766484746219515512925835065704789369936660671704385855115622878209119055460722916189762689611877878607013825928859986956510538657604880157787938776689401956213982519151443296460025603803162193858803863373867811550437110762819506069796292892144927285900890416096544947532696926702630268664292562625587834780990474349901918264303443712958054356344498451113777632999735672941245718190694479795602016699485944618368432156133100233040010659526734018911260196531008267744395678861929243683679323849617020596139385032499592215170250558042163448864549051035226390830914386521699229634235385093575011100298520787793039429509513049071330525453704202194362799459086508317766297162012884086933589021131566006477110085892846389454259470867295120213440543493095487353888334010426795532607636707434272481151589367649461216154309449123774617982821768737405237042163956936462553833635373171893568552640910258084932897131575392500998854063620331844728998406224153038916094407021482395292284074197099124039247800040090476771495323221742704357099236703181568988824433309978575683077983139076493849994116476345306824914019935922558345168419793576455220240266451489905269853982965885092623715171324557001675484731855174625808225342155490720481126477069792159765387656065836563562007373987549634206159812879279857207375281134530886489663712859962085169335679316086092583816504183245890982072288814158148308853812050346674737095232363866355934211254178638462322972480589479395071189912980144430874495503641009843362521464158190938746055076261551633559706513239477681211640616432236184810181619139565963579679295196091255190264321354657374513669655226903519750671995033913206375958566149639662190381497454735443610378323976312279291415161166625356416221141655986442850860849811939347029512075778220839277918833277111561680006802090892455126508066548065562823349133132449629278871009185304554559246706660444603294944993427846877946899359292310891309663210462125474794132675415271790905343635138904373287509771456606951627130281997521132144193013491700101917471632894516899432943409396730224358688366558504603752970595025205643415867690915657602674618123939111558055608159922471250901898658776887934422381313321632675784220208698816177018018455901536898799675143426560779007095466290614400248520123514227081763723983364379814349317550180211364343964730820402013897708956531555381037121140943699539504772320999940789052929743508204934870032856324642071380219817890936591328937265081481334126122225371866307512240413052607106031448602213143465425032003669421468986218136460002553763680462680435189090631531392475879576661277913972792031317803801274105059144313959762540764206201595965075345363703854572960168224643743342933301890358219310414075733630129209511970699294974823402995945693113839497775717749253105282585430194481855057536878248885465608365008705883883650838031716088422021972677886066277420479136497302766978608109266524994851319429793921619219120733318209444873170536201319183453876842012998766506913818463191513652536837665788051850936783963850742898698348017931617074340041942255861238605168353712876114680444163286520282472146734268965709317608709924857779451006919970195967737902684492445383904931692298862021184505835030734182090675571365606304252146814913765504143859763009656119219005418256393452996733243037049539648484256270472253684582457881315982652307304216709109372554929959460415503882513594100327095342449437861575189489957008957666682728214332109196991535531574974772584933449095475104825888588265111139412125989136489018503324920276698277223193868778755850822311069943328314785150573015493587258102970082723282950906572898361786974096472064221471727739075153884217920477191550636031221723515618897844429560668463271799329883397545307577985395308354868235774893487745579310706325703477628665879872945054824169862012965450389403052563765629872964760300246986236141629442310321314135246512426000853048853069987603202820025287898068817706823301143266814732149583024485935846810662633026484582465924076320165646563654792210692194314989914094143974325419774905834429430804775176027546524913864148334428091386783798114624153408050745419404064138238845118872092921074048560857742173237891497935844605380734596696425962269086838163760685229403428427066174136388490736715311230970133189683401547142052349351068619942027530831085049867474762205975244733218560855403297764843282409155949168102959073713842341120615921134984802145716237323623837619447486214364376696009035651739684137019459770550760815458507592762030657498252528181574567712924470976231162516680994472185290791679646458073572096201163642379108952979344455165414995248994557067592744362102915228067469284156379115066651019377899221951711680186227702690177163508401493830706647169540593278367221148555611989454938764730774170667778205773960487511615908896525681363112750578597464238681010267190273020745516935035733185104136969161252428738652456855377035267149741724843643099450316290460929067271672156141836538169984993682027041182993454029971686195797459969131939351362364706861447678808563679566411264165621761348173755880920135583623158188174770094868629116285832267164059293127700760541311022151931688936446528937302589522565302936402466607589107665422585343779070760344134205691501854393966965967180818728749168734734622637438485907604482617790152329275813556631292194802000817687022016340517594857339324754417861139656507273777039783178682711689207966878975503691320733896475468740690221668293830041963858227789883443398833933485019751740727778677863116771583480738331358358916867991586899929384362462043606252908380065431588177820660053905504066441246216126726247846129669203443821906944067737500828758804651985891411629220444852601018883252891018194371103834601588555321306143310945551900579233862406020132047339056778698813060074645597838804162246684293344419542938485550044793713196910315862819498283065503615241440927186167177366906724826123515708618990349989859797613593135092707275843005249215202978039140627433533179482574535560264829590969369843088731544926991700417796907804513827902528073382237575022537467204834926072097308323736535855113950081652323899275505547042048908522582743777082285286229792910845181436930084087496898898714921849530957488020500113317407752491258080685231956695466781281389194966361669805415012803913423386726775667178717635800738956985048899380887315452213987322477280982075314789231367592711796234922605215725508699927992519382139991295009749847930615409453045650772972612404332128754411214523723241754778885890776417027711697718112139440803702234620801230771860419672345093813775120269208391134603192891037491541020887506984797290931877830357736860294999108173059411333697679589221846837931578521800140064924377982569333715338165743716328155475101675027294795109949369288166321793686310485711051624627486085274579117775481704012762217660692952531246803659636857475674742306295860210652134067239314520713804431875189099184944915199927915219812770153053745920458156422072622396177238218809682192344109940041094379579436663605068149952379244368968061062220277042813786038044744479287442460379499750938613286870028468967496894009318250373139166081669408800824988699062188770556693316144521000884102440932542858051724238446628844952030177753998054531735893192113490852155206425747502665377569758153741131677912699947664199841546862671622541458025875282774869594436734316872515828217825198741450927798818238644645181395040286863628448884285977510184076335293487347515480583889851164590098639103757250789786952199185219836758794800656348159437486043316327591734061519994190654101180382672914771102193356238199604067690870657972011772397603161962679146163636600916854352238026995986207609008074214069604244805239846755500715786165609535834350956998832416951701159072146705596838701445937298203792641835846613740981947987739911547822838823671494323565568570496960641197623927575475567180249057472247984803003825999970486225716978253133170569287879882070824800061170581563849037830064451085897865133219810820141430383025749771815479407197897718772170510350209401517578327070931937960543897700112078779211847623429294114752690846523888362923997410881085763815588990853994440014019227473065891384794997172957943670925205060432784914755644480735740527647363265747078294436947161633877252193563846518679134514104179641130022140064900661873446222159275995111726405724871532788237516586902149415605642502517557718075645424361046937508748530457626810662958736585873410480167797178982564692462628032023526245881299014820580472866489339820268880044990428421942509935658785022872579968457188114143028568247552668535891851721627427003084904929363722524510085422974349469604611103981046435658945234821377849496065388129499037410183744094218038136952285659064542086728810329595137805191771915812654445327624564744460319654486124920645244464668979214028501789099908219813122402409449817880595472385738201564019753347944638095684557751091650468152616121453719205524582336154190168943301482447530415715828033311473208477195137887468680348433837204851587212729340373030371770421106522126439786719741240052884940579869959791082333525928016812140052574244785362447751405111194849815178536924125146838249299437613926540025370576651878650165150672849785397307040822436697515412323209624739142890478229618045487177246413957809005853709310078058767742394185149912326559545390164745227921406989333320671482870238171486875619801597169975647871674674896938498408621825364768788965524986280002727694182243873847110683620223561588449112629316946330809894013709387369253791352744916305245889694391909657568933097081212293155842458780684327397395961836827242529661196473135178258106087560991742239540651301367575030144382743388362969979348048546675449656750919687831159119726507841282737151031650089490228046055506392114915472910865770897559533724395718310993665096974767037688043830317158098392715845578043821673127209551338612244365517601838624011619999263939929534475978310530915218621725346396586769688510976336535729555756716181012499317753508932936179915876163757535476742624879251789490417950315754603028342568317677223541940677204511737451119455194960444144704007472779744483007966582170741256292690170802792140604964056199365380568554068824718353595604210200202663233017853478019992929559865305572163201803167988742807372416379559935303021907352588329672413207800311761255030629447280325260274779066541044917600660368318738852934010410074062146458643540903252084131033968923301489206278822647504080924186780333637265275772403112501365025139817999103932149271506702080403681651410939562845967319019860476057818990065656882917300230339435367480405188395311782215958672633718247191420070511421767976262986124281142967849315611316650107745593531854560984483701152407483750117503499343428570510315129082472899895410194093406224251372741471084164395306205454139823312911566425601547442812741126755783772536130794216656605380120388849820742177021298789752086930146698215109192230102746335701094574734377474510687227736017115811276531813866718498825167956066433928225022310992709750904810055540190140473494131799281464322823578991048928753187012631913124624709188535887223799723601733184710196580061381148146394451512695973752956880596761355853057641972750659023789291318137940531741694984119778313748418045325764089436721076537661325354829889699903054296137025167707478973944095921837025468967920311600546594687810767044326643167937442531219451284471951504969426486171908798915225270935091573898677694666632978446749732855575763995138736163142632796076730647508822292497292091491839617296515048438465334391934692524242273494385712326382168779512152388348415622925353545506650061907433326682169424230226638706989052928513825741865347986141651730573543453244538529586469780423567892351325333720789022542839777857913185332147745308995377077628997087417873772775625546485643514423225619242651024424744013276483523075467742092590251457599740268168393833402706364261542789583609452207942597270326509774034007468530909934635172898114851733639293681745642016674294004241113375933214756033751022570291451272858937736570927795624325411782799463499699928568811861420903524085898011431939881002594896083297255053384365681798567999328612602306853683973598149357258216188195146135885646192369779300097716031880430886991942768670534728330108786311633097896739246141996620480088798576228782982223951533239265900763794990983200402074880251833210130945260858909246030784824365675984194934442754877325883017196225345266671071318968882994253021369714299591424899463717650728280411868780124605547793312972297122003549778814461795840729868836650003575420759928432839104272505200557946731834678709681524858207768913604522073992150068773678440343273138233001554591851826872688762819579714852345526090746062021474694786516198694017779541700380205586933199561549018168616408342863507862802897293799202834281814620557861606279138582889001911912309557600449227222484286132593586341550211727036915290309166581614434592545166112825265629835850546183139063093113809888236714823794444046208601484934754651129659051679607749782470096794368401271487469273262645208656840098435507335391179113355830046590080089025009299628399081559401795909361298909357403676847480803172345411320098426876580116226266486540742180123776570945141056354437623123003899563904530133770606083551405598649025408384082822511822803027676647515480195061179062425418559842060412653950524392776281593947828695207129476424217008420059408443815654659093322789049536469909425114145927402729243538979765527533543480515742274337458569862183314661507528663299715242513551142994976277362350964619047080376045544376696835390700985019188344740449674857710847115915785329936990266942142097368623773028407252380749712719460259428621281243529885566976705865982201222081279355207130859574770294531378642559787873371445027584429326001851413384924200859790111038485352821744051381711591965158928757374748886651619744490490289654411921855229603318448450158211899269040168617027398965554979600888312079597502150990232598644593713945495198091337254879459087022399898683846498589693076060890372404933140386536576436070983106026774258660213359547094694299433497188764844074961457353610710262461308455936840833079130960752090661889487054926669600862387276756220989677240781170318104287760334501059716527120116512778099078130534074435398625580894790747061165230657351708817929809085704667043779828583120707947011123113678598510629983511415190408126534936689096007526575576029321655669972756207092994858744236865849619372514631914755410767086988291698751113395976757529095735258601012299844532875060655029918316839685115563739759226911179994040306912831701956006595466226061532860681465872652542267796498531126067843846942559754119193050027706082229019150042976271611083070553846202540846488189392825450839109175919517476391322434417846974358772168219460511880399940924750934178869132068844555777237471289448401207305834202733432772385830672031253364404306768651662005478538678483496092283956131423018975429100220473792137333085558608786144989760901494081738185617055268091428036503153897446795578859551398733103706478320826633668711974722986490920458630882368252337633423580794386430556860278077972302592089953682531260914759064676160518200906660322914836566165902237382057416088515258834405122242765785902924787864900415408914556895320502668366264247564718152259050019371065064657328453646985196615201700516823924346889572072651128947402159619587921941370667336436193216651160060344273109697394339180182773780267019887471555343442030116111378168761593892889927306714949490356777906723366065640263745673664986042699443627501765045380198423853138737204913650966169146883023856449824858673768292215730208978736031361333922692633467502836699936952011951104243804755714325154409158789938613315435550639651225923685267365900617047005207633450587323434843331013639485812035616237964623681780710754646439871771082907074379428282514763733692290900612315551704145417423093185037048077916466782745613281501448419702940576269247760246594812922465583254584974388386244141349784459121070287886947607844028882879165649679914232917693905808025827887227250474007879287287730563021280283355021553498508832850168316822656718023050179422051799484374959006144398409250263279976936649650711939257950016128644172951217114126784127819466343476136222216716455683314747719345349645631557279112690164723168363392635162042323743053246426761101437190253239494471678802982039789480690655317791846959852011602641041867256614973928893126475022216957629758446581615136682933516763585396936926323856280662955563648869648326389779859371480713624026612682908826450970589758309984781123823153363252849288581085797892870392117525418078969098225434113583592771838846737610992304275030604011394433653294884119812197784782471538733458706405450288292386984685246583877854373841183908385276404710754273374380203105853649857691204165725593010856460810904446183230893279842951287728707110954514530477739651838332640000929866347122031283398416049156546194279376171723896564854842401368013890419723197320360451168002913704749676717483784102379502153263933590252998421398354746025165644912487942578120592547257526797992979081630634436067265476829864546171448904523201253530932954341604391044442401086958556076243799468677026164590759920395925197389334106839354872804806888122921574430700220588703180631947321023231242465730772397230926279765038370788569804792321639228453633395953579450533262732625176669268667309696202372904754356481944545778531738233217526480888101635175058906949657653894830814870995131660881382876208346975608482445576352213617711284379868393519353970388062271978713860834677233808955408421459345866164217616203613924079204947632952803625228466108327445138558861570729916488664452764013004384777758740262152569510997964494443830047514129527847213063266826824530074452932795183343252474212217997443672522253738948723457605022981311178330395265216530066382438277552015393375546547774293117451651061258842577207804556369032745323188868803719559236274035097610395925977975991257603948429369330503257778895672344834285505220560287742370255555195249735980224777203442884200043372373571210156521887617169331880141647106933487450262402737260253098102379100235561743764116693400112578559509814182768923529546703409962974708628424769122369681225605163761240679149675104320138221861478756359983347314297162503840411595575977664685059841168465573037822859070250202425912080782015475977901390472913925493700790834708592622623835325788657667201728621874963761921292549976762103317841532738612198802356462595739784080786858898101860162422533927132401232116030769696167655769930830406013566287377438560887719201559544808976926796284732314005850717045214292044742489306406359820800275904665902041929051435595474384401853208823932808430238523284549406959656841895552134450066832519421726425177284841317556182083242931479450754332170652226450779800783458901810255587444548296406477918319627193288744358622505765189422054203655691542986924615673840396682111020565614994828357067563392386097573717450994695459431024731666879368213449016934743297961580424330639909675674504901447030144175949681498597367379533601617556892049837356069674350053749571426539894044982828877798248560638068874328746653791867226913050231221942807172793109164057542996910585709922229239266736273077866747725680410209965923241995287975039264973311795893706260140773234061578426672430930986640145513138014109192773008951989155370868350376378318966376250339104283533792689944436848367742092697995487573360779909207373055493712674161902709520319685565056860925255306356036977761346723392273669195653403188211842748074914949232921159783256961818448593880203399373840966274561177664393025236569626567811055894856321041565198014402000625474279420361767217788002855857571197410144456386930422398134480505801511559035973561175389461465193672365472204822578136404703217293256281307828338505578720068712336143451715814078141472103186697597659649736765171421411014671454853610477672671898476599272053138736880270092802238288912152813408608086417819748646352047791325909617024310274623442176078008274017213032399013986857745895250941805189786324802686752418771582977107053790096460449438704921141490465190799354680064618087491997254742181108638594650979677815801798780367349129823553143805367880172959400396374957273097060431656028544919875433807626658499769429849585824851414234755755376146430089385565959809573584499898488740883951357988825516072586728617699989859154028462201034977013924007681650759529693790407623424121213548213256306192365137383170415751236917605377581662531088544251835026492768674143685966409098167302399395613947949992662087597512372847101101129005707319942386071346655903356910816948662286397116757220534431172809907254144293614720723308302211652197353703090540577271307185729340388148813342137391770986437382134125362294353167347970776165291374262185861177757770304657311511708718022814338191386178737436070778563241500357970203383213779016630871661943207659351589303341588180489086419437710447354621301843725936356765116541590627373889705744702446061116664538085236941330853734565026324515648705875359590268838195408321528726295275061544553696731803940686327006902904261246239929304695257344349150642986659025705609401884383981257348867426417247081880260959709805430006458967976983386687164512961959563625385663474750845859949721140219082227265619507538961367235039805744159865212153827183239964766786078998010172301782733708970201755618554008119120251554089216322281043389086380988967213710259651927542270270973728621981578599112849477837931579138391801147959932265040368954382965284775983664833412379157976562100342149362310796258604034274912990316537730732668844679644987597550576174248208038564549890125257000164923211168643075386021317490744001118240851022840982504617518045170041736869156293836766166153210661863394325898628019068195086921416843393623288057584794776690134187019367208855810893975966949782212667978628292363855530140799513182222046167841199938888971685601970992024962881776511597891902074211347218977073077866596135884959738531931019388949622921001038837508257362181318511484895204501375949419446088653238379739851367204521851335021924225673526035111361138454794198731588060314601513800147118795247245724916077845528791069054813382905376317872362315804839816179998710628329063615839896060761489584537651557086304900278408419887233936955400131360729604663245913169009743970402450157095018008019839648590217001628347559715634112737944033846987430376622867713669699112900581565172051720222037046166553557072631509524784282390771628085842606152475589975914249981826447493335800666828766495279854550164427893073614835711054116034140091345325752994286862627048880778398447480585136925102492059476239211155608265009647008738609777360464007039357531784113066633300889344696083200431817457185925944313893409671796143119333279005357216162895187014149397444628172022301751379452354908240882684370917308572174476862592808174544514689321844745151856365802953284186750283260188944510874877771874892286249666360708888095220216886129143946192555931204644231530668584781072256024504730070772730695468617296824241664299008661591083299922855177042940016870618323261942710286025975487608760813787892130379508032982293871336029538266115586146573303926749200329208288333870733157150657413714437837880091863207508618736993733836668007585111568581488156789405793233058948775904650349836914653931065204665068495184397969375510695470471198335154317265936066210327649868620961411712849863513228750647879041622231986108021909444939770877670322239914157725629706261292755651263387920075761384584930982178957854190828178276329020772074887364325072610535068023517919382070734280808006099362938605881191177969972298020017490540430947686161868770789697147094954938876160828700707947526315230524697403936782710886894909749239479315392031643641683270644267323705813409600694144015186317469474207121016947152259242061064443834781315538166269733274398122552419119847583397807309191686684717611334563345387218927001535845966045971521462159428134673152010614792256910535051446731334864475005656750093608216724487750689446646585777863570062474350918204434074850714825013935015722039098275225199684785054764281024507516598486181137727805500085865315499216930973182984990788874095747014363083449464123511979043620504464680925540943826766206417605634173487750365226862454073711172728118382255203357132260034747464556101511623453427317075484693831868685023100292960498155270028667931882508413596787755053052108910535372465333771114022211758947070755650306811939536489585342653804242781398983570762328353384194274131196249443260022286323217636727950068855157459034403860965147779123337453354229192791370796330756366387262780536013902005912762656347720190107928702414796167394532863785656593264873634019660369281064145616181078956837204393773886975651132864158747426755325948292152044483237676171397252231968893483985462695251307590542306326078160799112296217133951038241510914678773559810248577016226589962921315540977350056842551257841496133657156706939498749160946681172640000083703893497409768513353661609297555129770212332887217154680922739097748041703178784288393151479462701412331456326883034869211748265322851662604099352855442605920144861131912641645711510288714552475674384481049698621696210772274994718461009200880345667674812575678750652698276094004091514016317934302227148685375538070732230541436942851636059305627667043835248172179835022981178167917105483665433157763635676373748547015443868602707741289372779194055380813442675953006054831191409942364788393447495320680486330470032751362666364794360283635944722730089616637028725996327834092118875896914722541974881545819917090685478159848702613849821900472382845475142696220627325568558491034653310709439189142002246578207610153168394600688104795477933064852630210943477906434517600427506976100682602105732070602163921110434738142623088204988117618863038763796556203978124085207295426763076755302617154160721565740423708414018066433205043321781282743973505871826339799205810868373610417221958358573475364664430452816433273024111608621847677889707223459857388302358742188006736862925332466449258857226261436384095112318566749878504519815830166223410379771383196249206928875349904242814709880483498830575235949479552418839709791250898591823550464024652725133581518374599561385359156870062054587875789020221033327901727865079917228603602370902461158549647374371770387827069463178734830784366805052929733076975647855467007981578396272823123922835117146733119431743973104752426400252421443469864076153375479257425170091190610213185890514936184083756583715824029857624409060496294101351337589084127230338669366541197901273253607524700926433759345024561650684351343696903743136162160030887133141230897739596182128883264861422701051817400486034768664993960745362964061888482995887946318144773286955842110717700199537463291443755810368718672905800971614125618763455411883920529748567289347521753013331237808242086617776699211851097831993556664846974235522757370842712294031511560373125366363810203987894054381406047543159016089344378304017173896769415410849751128889799478006797921602557199716539757920775484938199627383303160854458052681540019517920491479644128788417491710145886887084047591195489879524596705270013852393052980114549102958432439088503350932756586419573295827641535835014528517303882584487605735162755952864206651341418375210987335017956926894726297351066163895882509266576570210247669852902592926243330204645733968011264504272867430886739685223925600596685011198739839929268855819096178521221323991621762798420891102700540727524164139179510014494511164450416474486031342013825366143199290078819221815283878114256480260731911158939815982657932911329126790601252901755485957542804654133443553835547459967787935659990712442477142332958020893284019948603860767103104132443018645513691014296558781174895719617235615565731875426747117489663802554052726315389648527053549970678982361073002450012365682269754824878368005263388601403038860872953333825930719409612329566057358894391263728390596465188127092079011350674992988109805089913134446486879833860961548552759636978319324686569076384617813578783335546129937358136587999039000366973160689822395454561171266525315353463777305367780141219414373442123542565359102704988461769330943493765220224821195072902819636524722123525226191278644612786588974443278743831784257696305399331865094123356741890160758009894463027564130722853171368748365093515020167704311460422844931807146302475648847611875450721110783270819969347195978767950543099040111043768403503201423231339029036272502329961938838423130621450904446892039403373244565793305608500627338268432608135498955770548785363922638563860133389040893337734441943485632433739645053072284492844582795905162122552033059697179671152312536428636922447708865536071966816316525314994222684483182169261579919662859032631688351859423546989601844722444161874364708046053076778313088911036271311901106082710538749818279633201377201536956414546014885376697437220348250307987205761795518870992798502264403747205245484908308515193630775662808507273192531480396560729851393218564988371405000903438641279810952434287125445677113064209315672263863361920428308029078263720743578757795842418314346175149092554621998994770360598802671996486917073700023749070285735130733943268811464715849470678953823609759361633270477854013633860747018559611622992126460238529597953750963608861510619174961961687501839491005958549754015755029701528455886547539117082246838018112287786210342354406031399727871452117090365460352380457395801304822168194012861728468641611911883689418035039739504689275832139786303848775932474413579989436104004324403444337160271002751967048075135958467908530775363824714914350222199024982531566823041622928135295819290194673551211081431782583164360755277586615464250654809884835913119834839242276678391858915775318991963007787618905587644137551719268383926513341665285826582737997007251182582020890430666902923703797067613218558345697083965376165655587271264839222804497523015914844600981929370422414760311487123798455255545090371281630159726139435800772571068873092989344899034919624474990862782883858611445085708884073401986656545707897963685227914727071754435172284451508470942752359782123430677544735656342722661952546247802068206933945994303811002450894813276188123048841905335052267995757967647243138776836020543490507400901704413550380834745088605017921057714755733710084412963839084961258216132654538785142091058330211111738602686514598948680780992937947454470787233423927994515774716459000939977240569840439624593402686628211185625642437868215617513834308682731734072452585177635912512395432858073991799223183442361179475596783795938435938785700013577151978352744125945433324267031258125015033862745193399386221766946301064514239415169283846508392421074018522491793994250654222730262257202026850591009965051741062355769746335731072768666528478635392956242607702177740605445293644017347752304356406287171793541028230506798646845463714938820203314787430256528546034051259653982694324741404319739263875027533392094346808317453534980403404220563025948831624045063325240047982946327258524714741070820995385412903800758522540846117473911896814086960414426050575884423614478762475513957371791715639061455825885706493400309287835295515824652895001126949409359424916604733195317714374149179659932283603222208724875065628133269173491421611509094255628014902374609783270300259082369625940008199263177599699412937956497083961959855313091855192898969492220726935498055832157182587734757710584981453615488846873795670020654688247498713865346776954120021169183898435759017782800691348350458256006556804282933386662277867552185025327230378939391487947463866903448605010183230820523666980971957084504089912468965375149967683614425361995562961418731663575339225533800284487397541754772653312422482455925036866337082112029118250532900821763486079609002956346685182464806910088838154852072237244489270911109052882943873346020361270279979138471035583430258671858229277666382081043741116688987009020953179894110091473320897427217021157200777424324589269015417548214509946722406571147688594222428736712014089338583228612030367556537313216992343680644697510101808390472257465582731428644322837802202891111143511936097810673603539990801052691194400032417242463083468079539372406535519199938657436116193381510824217817160780286660008057704195391167379477418102019308399062991459072998827588164026399496731909135442303921652175730632787544021072144203627401148562507912939773321276551193957450218080453886381755682455589352442389054819288449702107369391997299671395646668855791296110242523354112334717289575604458205411868550552305980906289140637560018292396122290416046783982184359522158664436889262699704499250672931067440623742089186715855540269172282434747750845297072299837519478255247835747025953356546480119725141213445433138871080673264831561611885259374786237320138536479405342469316657822471197452404808367609377600457809435424571646827797821844409918897702895959572848043202954049691385206188522631808188155282062069136690371189773455622325497548165110713767311352805224308438235318674865004699030238712813911575861006810947542265105209736066732572216669214550757293429349638593462002869443524503283202547107920933925318108491762626067305494970690348315239941347291266320674727987021062608126054752641016062662814368991206314831659987931923338227475953578155529496578186039047594359910944106840979888364667306113796760400829395993945698977640965965183127944757857324943398685953843025358591467693687351786288456644853063285069827058403727569468585061558983675426714278634438427033205738955664916084684957077738391621779544246412915881200557622703793790561598400829854914828060835273846328750846048872207662464965854379715133622452808563965417040479470925449132092309986501725904711757833622125553940815749483858193294619297590401625668929647346025819671440368724879854440673690124906053327192196593144124994855612051520778008050019589261743231213485255575407219427019182833800369075526463950647702865974476749384408768612591447308359613309562630281836590125266338554958009602927311589048078706250046112621730754530954461613971121037317654554958847431176860998144204272075228587961780984679237162996196078117283335046577283680812780926823158928789089361034421507764654634942727934387163485482495703062282531162883928217476295851420982095412699071234787904095777413944530512090332336929466496474673907338847259624211708510038893330504597258916894710190777187589551762400585208355965291295483817293292877632238616185714639369754291322602990435765209813679210007913685509369563613414760422447453545925088904101201185513732732990596186396765832882359790860900094255080300516326888886401803239094642338009055577536691456654918769121979654567471194701461000660134187052321375615190071641346314790029478350117118073105886576781891873933607207257453943431112207011857321175963545495676046748565492798814059024799982052306662369288546324556134717774523380196673927275870654278674088230724109524930277693290513375414619515422893358600027759503137359209301831473632024904490390399490245651394775335039783863144789531553674764056097531899713662883000084911825638836377387151824934877560185486371749890419368029808181541954846937630395077497225489145468694586799145503891205305618610685642714434880579695516753543133696689652426043034464348800051346821694254700871882492321069398330206213516570867771833696498551314018475956549100862973093709867075663337032124696463167217729342613872552816655065839608314313992383503747917564827167489115074249664700275956736604918785779512712050484316137981867991962194018045673451693448186371330925523666278830721508250486537167384276119525946814250868805763391662911722519625203818845793552813003681140102031488233741598809583211060004200312715593565139205824620675362504948439960730505320918700651232267937121570542042714064733087903670872302328231602296133345846114754003076482791730213915008862875502862964009157147965740888614528994129054322327626995652250723058810302402018585781628306194650095894925120137572067769171919977900170208356783765918302814392869946277422257397497643751168439283513875456427400578689598031990914759853716454466092926040919645817536565690176380433791708423560943226235717310906062598550940463220342209149386744107635997894849550922364156039486176653033745857266148736758170100767314331458295188861684518831640104134242883545130697628967298485774245270900788870727557659300184441478489610317330101102919637678015556416815150187928198586207294027611375998281147416319807323135625045056185015963318022299340047346063296176005418151376960894389225414492357794000370876296919836650314926741792313850892905701437744100219704052854517386316835570231860995559364799698973444719253911312487820567350957594155740841112985684361762583395675161693985891274516772746693697790763465078069506895627106779021422782440756529972771167358168386429651783778303931344335776554173939089357621801317567881745524912392613297411619917575751687632122737873295290269311413760493874610247162507275399488418646197260066315599135099501846854156919336405468374842573914212765325835089512277829263782098660606229578298634480605585687545839864635762120449515711798881114862766246300960278713666713080528506936738375282058571560302128630826633213367738794615777611904444882484101947190733636195936666238528378866043895533597317846241281516288908257943704284318427695675981240045680844026187306557861776347455473906437688512421544665787265350861025385413382152573556044487254773249929466571225444780966743550621256797038907205090339557877875547281729454789494736802161220557436710144656748801941642850875908032499925672136022081658590778876366169386798808167708590361514727943466240518122568842730385797490293473615602388547948042257798929982132271782576829499588200394971374998742529804345457744296737211743331590647737952635149618159763223835558792391251905790855284219222507107915958687973996128211182990856662167633010566714735397459276024320224879965676013394728166698190842720299262133691555296739758542200480529205113671315001140295401764708622735972114195817932373974876924403766123990528540371247971230077810951092440728303603177695842488827053826364220251438211640140381297893320224551274161578314856977119950058597152075219625128705615021163043360673619885351018882155933018262821236304613301027785558877428034013881287804169732157967141042630148283232756026916704704050001032850075545341107151967296585671624300776139739145094452372290063335689768237970712383089263488943964439724346238260577268594804994011427212270445855834870542056715072878293200258748674895833503849111198991526328373535362339327583622189726354330910794828266649834438983314708051004961081407893511346093235329483737634920636541735339898795977094355716997450368744434867837751679893344730441097842470191270894472045496074940286622921211399189327544747618523393165431939814585600712962368002849221771468117805944573297720573551420320717935778311662936923472686431875122461100255682289392354238364751961572101106979898436328720842468674899738731239113690395203180850934585039867254138366545496932885154692931158983609873675484743040913951278553375388308808302423606511310758466037580927797508740670784604503779026716623647068782881334606062816094945375778766299448659811236857988589619569831954074534554348689783673951585525599318252428330219148334040680346985899350044109037406621526367013393356352818620289101465605161191017857650607169797165447721516577902919419828106545631558268047281121241599048926286363272548351543387703177194625909388442547378672084992842454101629566448968711034257443860878286004702724036761741372443558307045775318921367006451348809029611037478423419157653619493076369988820305499671116846535351650717507134021754975002436146907650068004010280288121672415409400419860274258432407229840560568746205856933876341464260027972629602445171392193889606514934368367760369489438885531486945908461251788836035991354856669921896520608866424803789351506702652300191689629690460129528984096535135487545870367181639631225155208113777941121528138845086826319246465081866557182464261985752261671863714426631226796854326581693469417470821032409472327017404279364335072666769059618255191636802472668221607761761609406720521824384019630664622464202998717218806739182198191826314865872535564173955143183357764390425223756720953607240154054311167951082379554427390428565574332265328102693248570792772781453064162186151598486239348975040999398795524046001986486576604848026650427768631283248781033247676421572264599834839500808207117919509049076465763035822580204495027778046808336897226338224181635473380709285761810188705641630266534496085911797524243430482701906333170420988612463163758073999890507533664259589241580519729115996476437139567143907602908350446303275026841764859347469667702407032192287309726306473888999784383422582509644804671608379295952439755653226040130094550204298936957078279730087301838522145491509127677875460587568703652178382807504458309146729562536187708180932597994791815226426953785294669999259294995826598814969235978608838420140350765307103036526263532639991753893114007388008578057435005001303450251185949008802733800890890062896174592277592578286573451588442907917093812443581627144300644484296925085225981970589274460185063722693199490192224288397548047369445928582704652944683835514588619765551765918330995914565709487449735955252430367659084985612549522077271503483909372723534597664886566323972425610725023362465289046702684740449096482871680792024153557508858194411402363317158400352963003600134936529942701695354919889518221712580720425796494775292040144974681054143096780208325958430818550513080491599671402135365163433632335975294747215248318621395834496217027684431126569559475972961510718577927311777060890279645853734998088551658245428804059290546236101303155843342639302088009038138683739009330507195370003125057619483789987359004846628495440387382908654262135708650558863520682968999965826211878933887676792667766691848393858119719856017764579152305416965700387210274877341064954351198317455749538506354292177468632596028365067318210648650128347379465681268186742615813108755756038890186477312901981102835127156371177790858146998219981236621149616478048877977881637507891960711219828273885073047732172815146723332418833286160024145835998869083336592261924350964847502573840160370032931457440817334633439196842834532519081330939507076384513110310691670415444010503569832561139853721500366496070774377820276074993123028973496105728405850198706440623706959842214496971333766876915070563693430379477879748846526760737110956184465802535709853336115243236320938339325007546268472568740625209799128584938995701550707733049230216322817822515108257583403610768373067677998639058286963660720381459964562528604968771352874644213541317283282008373798715972475813679377054758488528190515869242824826758918878006509635829672070337085480098422493226776020720376674215684813971035616546617501506976537178579004939532101725477301968327034415484915066967674603977409165319075763818008808354256648023356794844147065556105534033764423673740581775864233316219394291581703852357128206917816822221408609187375227427491204556764655290580606524601650176723879198928887239494728055855081800121659754396427166321192757753696844304016329455217927960401910396152449217812600933745167017910979620853637312282705775065046954889948440485741268490000896659589583169456464845351410351068092103781723459382326901949702232656291801574130889921099835342857833611608506496059100864990102766826943509398483648598751248517556269316462094401742526350593949340711409705782747563996019615258590643855483612431650525010730336845116469600414171134397530241833278830905015174795218206873401718095610166909175807053358747047582478613887696778950480092187026245858978933773109358587919844195663778408826299428675812558228045259987625866780701569020322940996341661784859089896796229261958692853606320757628122922919155715598670295652372249139479512408566271152738350443500362707881377130995111911655466354934363457845789901114130633171275845249697086300809660554131901010104332212429330198469615012892191822753042919965037875932813006263696640809040623424054441582666107500649672386435753841313363416389162829262382039604582035693342022597072651771097032527385717148502244953436251564606050342767034053812183771325936292118765030763205932439588392280271484043496653859364204664090521132519482453681595525446206391645116173226349646670021752448079088419635673156708182622553217015872060028541811431915650392061097632534558001639742798776473849740499352470150650756250043593872773413644532625407366226535194083665655548298929372410201743842441907548113909370231775479783193222880461220255474011804900273207013051045234822836728382909828154560922914776447402153172409495366343148514939227058904352804452832661143376782413337677525203914070987587870898815403295459696422771466602049759477216465131662615607353013645021020882519601344021366214755296711540155214967660302166195161364476734075094657149465138060868610156302730688697690121376471585449149891052421957354736191972337027181609751497223822918154828142052090401094762608466444941374245742270656629604214700635557156605619939872699105193700202890467230855495511381655877347529768502119399490827593441822581233098871010983117050583195010540047738873972464176262683225327663495307456359256245358634745973436555554038154635002552289905375762621158845019469709125182576503180908589297733254417129449397064755941434897727739407273083490821247584406365308111610325236409949191171718187386820074027886547446178103957563311763566443169138222219823571346207175058754359121252178112801214698458924461055128551239703760917696413573270543334148368340759677264690209945900691993270895648894500637826160921800446715731479509238546662347142227712861003099856558843692001202589085265669807411720267581100953261049461133038430766068378640334377291950756992455613051340062761846329863013485955778079637035719576247859891971048781353451112610751147551483603159973413589914341910326799108622785709806021720070087923743875727528002927297846000462181737395847907960317487925352641370858927853704218361983064854689238823923624125125706336065537711502588577132624623765608671493574002552262036227897810010074076730674221025298799775053049106875311003714948289477977770141808293586214015945528334031610333525750215877273228611502323073121141397987723124086529996857794812965445011201175551539820639395834654947585951830705348439264837604714609421010416828070079786197311333640520168874002231470983482467872510379228446463579805241577589820340277962074468187637730977688814438669808362189828744187066485644205307329139363999880982818358969306543031605246763560247200093968399024297965792956151586346628741136121665844782594988025732012344717826906651843057869237346580954343515483900974483875087405642866537569078983204055825661944624328528446077264687335439334398098657166357964768012682801712627253590318152825472157396645570447978982800620728060347225593012434555767644845840598884972609877068934793346955170316587790351638832483642904303093634259384396606994667248923337653972363907042922665711316105539782790391060631518136057793795095756724404769509915353498278184015414268583307942668846264435335308044564374983706586655690038607338331450927668686143869442592094810341411182309887348781144882472228923139165848932280911204370480851376474404126089031556015949631771597312575013974691867564484225551794259445067019356473990968497862186429417751301528644226972812565402498002966423549480653440492174198361436080595096123436369840429637242631783496652138535893348393328604313945137455132141125197585745981255177885872216312707026593211421575734765776288237709962355492264074819001971328558038943252411349961045538517795813007800672370178860979013235225699622245903355633243436105277571475892541508790373730865316275248345507950785018789143773030936608685667062605664992558256825390160176734485529873067086725810672839262253344814504106449473706158088016127811259314422045991859127887486002051815390800517036770798285335918103310400717512944871981560739829678484041633606695957799381153651439760049976009500642295937681093357586773987888223209510808564745075712279404654601515686470279277601592966711903045017732860936755929388532306286363886857554639934950820051058262187282034559443229962749674877014879614645497395952115252542899290125703689765686432114359549316528513188773724662006324504320288352378731782492111203079699446009415901265138260115366683719853393475381522568132074120889494589950503771626377723065168843575908123527945082159478319643105840053574106476043328864948434721811293323604842770265910592937932458038019276773283612054726839428205503871562791211989722861692040901710743123399199551917191706531763286931991587239570822548987050932996308092572125617323813846800989566165688796421214076137768541225342325410293602752420291508250586800089305528524760001705443772874554378804026887756158382534263192846894545847696794026878781744394769976072471629779224224444440800855187042183238386325650513203987237001221603014194160356394793926638535999064003440624110988254874433956179252592643097428724339972251073492085066386469613395615813571622678635120043685780015982041710719480481291153843398544508566830015985568175474606450039896160629300058498958821543702527163073284432145148201193036874090912102220405137289991683353841098035640565622628681647193775658508864932735110643942547948730125641694999996582134191344789312378566059113865120665047131206264975757531175600785106346176176319942656359506127694838051859604539817872465747569265888183644366619254755620102596571911575870371897833732866272589497073860317241251942559121277967132475448345520198038539953829009064742855577076793857998893594550543234366979463689617615223777470157043952957433553417179652671535756414952714794570705930632315175840960316147225197131911807623548676184711915116886682699453739670015192908850378892795895261200837904159457508933716879676750624646704019555134347512610701672667417330439228451086855879398205699042434513109850177888651975811066215169128071368707572000744348291475341580897210700731158738646814009712073642258446619418526909165263130817078800636022406054563671160283836429256286189628716432910552844571656326250352881997740423684023174603218947021714312385056074284759520981794079832347864943763156535126193091813776435752684483797540020053693907765855943945787539541111424498359104648883874980193294544050172119817744782104614932930226953102301402804301936715039658878749358014237324239964123226802475518286598880904122431713095450060916205381486259138724711686307101424429131220624750176333944311036165179547688051495127440043168025967233663157506811597222988106720425198554814717043154789505522266903686894611200288276893969867875314558766452438757328871153068905474851253347259711444897533065809193452645058680918926414858498787163613479780655757272997959536502701689561297301496652718847386717953374505529254519375423292224681175148630994013165027938554251505891049316738100299335520981610927009095067357757821333058620431764098285529709873659858458918891027956430210370354301896457738403389670163886559263109302349898887145692690013635926574749250490174526125176249067114718630293993377267545493326132546718962198577487517255497942263596727416824839835584896172599883090426885754262206494520320571204156278523434548680066998421752316965652139044519393060252898801613322526775838592773950784827600551451279588982222589867718607668710986979445484272731671348008123923580808925231416126122017452911383806927252901706891985554244956392412378169194114137670111870810574217457969522575862351853110548119738757731257523358722134431553605672838421585412551854624572665498944881311780631297840679438291354703894688860856743712106895377383430999391308381567461697273416780262769136359757507473130940965288921928817506175854180601452492182778428747870274611996042111343691786823232617245002492781754884357727971868139978093224756513300201282139450043133016057294249428629491695206673496695613546301389581729134137690289696916252748868429696972231855090445583500518343797902526674563785309061236577778790612437340329484932507534659970295509357036620910454919542886804049824599046608914457924626628180107224154296915108251475219448141020129339594781330939328060249131946982711969338275159334110308175532451195341470549238195161516667756027994505961330218866337619130041863324338852055387699854106973416983064409667429539201536587272404446232523671598571163446758180841751081265841191160993184028729423284736112593466337960727319017973281904250945127155639981911009328744314812863606981715570212288242546533968619641284117609836279513688912764720692896228482190143156536569865601141940499706737277006380026232040798166348175159546744390541955958791148492998542878601766052097683011444965350765744105582441592210272613484366044871861174790666492276958836528788078984000154378022332119618490689514082998195188881617471422154218217940409940670775203832801641581797279017269876792400559801379404675945436795933861978008553606480970037202716724945398618060210852594578936803443123826051251123800332002246480099652538231618875914704293107461375326137905661651296098505623934945546529327059109828535688659012005626582248946519788137863334123029278657672330840796360197117239145927987298043876051722738947401163578170659928926870120006333317624628616458872179610202711630020124444568899648782968725631248820278806728141377433395978990156444487508096903557464533470584311529231276964587904536040373064582802737686237842225225611981315051893249132403477517346206667506563481298514793356242600248237764326664133353083375076617511074046322578370749727460452367758891911405209885968133322831182081106472686909063082143911590419919943376656015165501224265179164252458052444097893997321598752433746470914073018828735151608243362082595642601061315359462165370605508499423758384991320631646882731202352401035597255344155146016508387287138452393601499378778130367727827296569445978255048377487415898730286406154225305912895767157468691651471351874019742070931188864695528719528092921602505616603594228508571088001374118706623604411683624959964999646895279070015082734770780112129082369261417787624315241777757985484634545045092429711134415358578898304579368826980963885158305179736602314640763056358045938984945112464826317613903532825989947394130857704169653344390618232014625448584393930096533099112522062350592880366495528749122152736133340458502833535858099465064523400655949954971463948162582691826098553208264036630044471288067742946377537889192557013489205707957141461773555300276368957813528301365838981894101948167480443191702142100698379481662343863856639283496244932916437887021504124213556909336898221322580276093015216386570177483463876218997487251917520282098629792743975358585919388819337388709022375260560449749681981248949216903237985691012951313307556155751484885115902351877481288253624691700681046951826134464661106642608996397818003097747131293250802965013856056022630531972360199185957243910304755617373411772875281130586262724379520784885086341912946015414636556879730690486586602973174691503875458602004393254592758735831413082804958085327333507814659405700951596516387535821144641115648560155387649472929047420801021859809215073452519908748894980123343045775985266639971095810393263117376534209461062983741427739720836712400074620000810326751953651451282691767453320423847543066116062305694749890682413154829712850164392813815174994285144656395580640755386907950902159527576338520128914411399670474591374127214590626634150133819518268249322588994593938970919707179673677713153734977537243568053820324984574316918178332557794750489331035508666057253865687847124011296524260761931955496654402431798783020426594050986067663214505141956580435790420959605376579721211358948408711658208104660473132146471476566770234101834323002224192758459536731822096804791459973031795154156319247798196687898281568644596204053209911917174262426440318104950877919330532635104800085002127678377992663159508439096302918176604737085336414214621367869242763821991093225608752549427116350106224318974984587135568744967192999760378392912468717615587882917198512561488539631192529861424761938451569200180465147607636120902833307485698589883638145598939848283714374477714621960508291442564295237013220466366664192561090389458737175715627114861024368000945471235643327471118093219221187763833320034764110611117280242766332194861375662058209315094322938466464480077246217496709669773634973960411923627688933157951313535771237535290398447280735404266563477236015492077267512713783487077528789011579360872349520843572212241946373168887260755625164700417312567888684543073782142901466508659906722715919393251100565751410645732109307874461258863862534165629840402353235626096684378294639606640166151184345785228151702538126366019873079990982129882161736620800914985823004852257660866372410493382038514286615407483157467479963697143825281696546311289161801707952027817757048729021605714567613446035261742049235416687673183355557805703506489568833742902665130523945450979961564764098637043078610058189491262765985112378039415235138475608371679705750560798595593258233749913852132672247874494434820092348102999231936732462530120022044467148456645401511649372004215402431867541569202324037657348536384900246566665716566170180834344859444404973810755888483823708871181937058899486623669901657419867517678271599467879508438320467975847713838216051172121037797040583315908060893678339997932771209520681912886264083104875025813166815742532889862816130897562039362047824753387542110015633808220531339000123125153970285328924495619332136586631740779400745019516024028053760368632965775755642551729874965405184208505935244350089890866160093138334075896092687381483529059264817522242782051101365297398250561739169800740517545901118807193794114850453834610974034297446609027310012160371025458863266475435880669265235483954018719148908260139010392190924706329457562011912911697263199747991194241780866619235861586158064828227373730722408130489106337453600597451878923234322506113432066585845393135638474747552442103115374097533925459600744042357433991841312759078354240337634412982078412640766522428830865848003388666186073698427170530541771940935638869122566231208063349072677992778098724718582113539146453599766795052040033160240438679094706223073056542586180039272992801619206311744485621136001293992686393760177510962021445932124453344068063329604099518998911418633609372904248328652175240045481656343071201724469568455581809084399417951995990082336823920233355629724512591760017988086660367343109376856156296429177682532201348541085515567560379562892821500420673343720309200942627755656927619272799468065582621990680733918125774777677400244280157397640357766387330538992957137997236418196758090796467081529653715099874199153762244371607204613691077697329235347807719664055078560856666667678161845418722385676518058768394304853463815279738988300731119037706900995550770859081044410320159706462994685846508886395856600052230005737938474622034334177257834278322825191423462879228382062410232908949220182683213135164418169753724651093767359583947851070528198841786873690432351306057640480472598091071657886583363004381357336034153762929661235858108242269850936089526420963100326788237304409575483568249004096179455604792836194453427147909512113171929456701242971143179093623437519300354083375219984676482868896474300933234512948045783951826082569756663743034022527341158894368519203658211515735219737237418961353548614215356808850454954872675719730847606427558813038657412752023881382239663034753665510287217035675131135996191274352571012050477110272452886222506407365731175153826559111018754999807592540224341124993239737984970890674843746893993251062038201801895666111465715540527968543814808840402342203044177197250064609760296846705178078807154361224245859925598299625686551913212231648366013156546204513146798610996348449543349637166597090512080779855680100721173415438093180902908046554420434111761379723652917840574348514361150070374752554616177706453999246106903179837292649798289769762743099435986825648539557130867289099452852109288294787046920998750156242591908584779449590865169290434733869672072279052925325349949652135156686122789906802358487522138148109650048611148040327213135070231517670488199375299077174615840436686452888190108870180283021616105316646188013496868824132538306784285663544989700452767383573571668296150756168945751973772980168236412479036317924489872013381991834012240889464059921086690683838894267614886124735318492445611837194052689306016509558801252024816618154940112256026951617382174752052938118667149535571081805043912779138277313866878848899776073109078722938727545927414130060050854584440044393106632532551274255007317277033174067772351122034325010766003087557459887348855415579472556947799524469650085688850241614519928281477302842526132693343221148956499148870737397443406900262262877206617637573727371861825307727691608952642076289446743709189567149691006149488761151615570782351113959120777110848136169309049610699739235093224128940540628554669824811237850506075437225839538210679785955405671816586971664980743819363422897128054319877696412976465854827479123027803173602662019579085420501019794583646674399711927783390243066406490887542015941971161500869237639854667389308310655398777368758259320206566096861363122718347185925926363595485021715429672044100594117347470978441534904288998750719873882318160645541440132658197642458258358675550801832387737126280297235011048269933264765629854110682392118450663415444342898254938916312872080731669658170828161940488375919673476653019688831415576877175258249861708413776192343153784931357192495245036461678225666641983564559812460859568229027942564711196161371311555678434231903823763416649371838792835126305102196592782409663637547701615368735525470879536940622293272211925178026734640564468213334136139340288101701678194027853129496348788648857364262171172376703082693541111624792815892187146583418952147453943971350300451040313103092907548396796406345297771653392514309227827078587991479228305247689237651658121981076886654507577694868036941955114081743067312316022908540634810134226489465960619945224648951949733030488803419046603828632561496942939363011528876314777681439664184603005404222298782421885656154993976560871996724851397606754990776361628626104436994106804472169142015148134130240015303835766630833661353649865650068410373591655175758529082620806230461800392336090551982693646772294960548273102482628107570947156331059373491466976509036675709666602774353752934220447236099828797569342930622280246719667745278711965318729106761672026528098370078511806791046901042552459802412075422199702952371967999109730491891183770756970697560947886653898010307391030658868967355755636653926247576042164338918924946497235625100482848387573120891056291971525982958439049601915595034007930515395557126506481698628711345361474722221115488390155586715039119911002896662192243621378051243800654904589986195197146698711077483934987366963637522571349931715556479391862096106674192578171581142544441456681022424279553976385369884865508182990769160862410446713794809456544707803368402319311671593227882053300375132852629378189701253100957758516063508726734352996677284144391229235560297462295793631078787136632562284794565985461969799369344057407325970554478565525916829068617026082168713641080744054696106230060569885742755762955790139600498026608471788906892791212258448833161044589053063563749856318332852648806790615892550774524120525820063481488161427683780669403424794267042576154025617701329412872543877219281346123186708660494615936598581537452827114878302102803430537908479361257820133694043955656863765028426868284221883339574155729173083205499253780180436357005505156409180598426257130022233470227722176828450312304565539180070369141697562887592361193954693291231593665160406705167874986884497257451317163101632593186510896291959066547695043214431781789619517074974193519005805843536925236807692986656798390776717890537100886891532601841390650966690192093770047627807350612831319860509065108573868742143062937611315287004049690975554393149306030841006671318339503295155693414999143307342401149992659534317727596920868144992067007246909995743241937099168840821849331827170080943806827751332786731771409964934187073221429040077026886277677541450486667143034031232695657159280690761253102418983616584716294854106247153236476133661510159380860609788547364257992943864261829144037791864135552767053974367144424063461930384226289328878917991217757022426530851906078588359649336577993400303890051012547959706183442033733542257438172285255906231006770156325701415975220744265826365378116688835529447565922605266187199965806873314323889446713320057437282800536146918213035737894062281873732844848091142866263456318558370135503034402830703828561102279891349314052315036145286134518243193673770097544928419280434528988878755652713067078773508774530578794350542957912541614030754006717661122418638309867123716526031299874604429490966491832972931116382433613799533421020933093525230145405752558015698504468711865514424921647330198260202968448121520656429946305547761110337090760060372451452529536290512421627228484846895565980693453498169605644855385606765710711112524805917097045819025865501053556466364766170108147854782171608738884258522956764180563967684772904152162575243898347770894996439826113798052112934554392813098860173677469470295305526964518632055613668015429267760538223829196154135692388940765313489374795171311345171582059323446345994626804915513335855652517612223467453689164021998442000643837110087969959044219890380002547220239592046182086726345815872545121072252690698168889335727653989882512801969843853400895500042902105381502443543537555701401469163498744752279393704457377180136016741596664036147921299707911694759681701851251906398103522198924379599794841237366157981858326033228019259618502995624445305953829225085027876915679071126095533556779707193800494488750058468068460202894822000442569467568232963485057668928220675982103408134655465002017002348409046978262455133012992222951945590458040440743935858843730591415117811999888548279689089813320467165284612733566147964333064021950718546926776121127075518600291038711467797513616955995999449483921857116063137616533256564595890551152259449849312935011741283170509581848227942148798110818792990919804248736074547648874603593432826054983635279012795121435031976598676085366310199786641464537420902951858581742400135781325417633196972441145098907948425318663741629002524338486014324945682123495866023280401811553554058101212855142246840995949488471333680126664614151473401682413538165530464842909154865062176389839349807578142414751736926625595778901417935908029441556395048714126940199808150102968858564016427119270476448585438110377624679739779385074829958498118680055193707980996030314894790442060793101421515177542401540978809935274370205452000363147845795005063917288821898581223504417624628151651058040098160192016501165333360331028443125924206217477259095677007535316304708464097631219848109841306913671673556317654696393738726576561218375323018293344581897115666656474480452691411997050901265071858119366006374237828322471955923820237897537089356694107725262980042109374166642001939317099529525676327062429816418433872095279190866110345870832311740728705716147680167970371460322965871601502148791506728692230615872194663051635345902247925150854033421053699440978728256193030492863638739078019990565736004738537393589436444581007391924248567880138497233641828135629559883441883109568887786772358188771016846587480090138969532846754127255734007274350368810761437138556653585325233238252809430756788089096985427514059274418982025725847562825835360364238392414089520338360032564126088115806033554437103613745823125874467143800558985168169356046183575018181414280777332957111608248867201751031884913830067703336869429838697600077766823336986592806310603649835267718217341053274133352370228659062573263272198425818489941434786320241143830360566638141945191410355040117400057472731044890795165344418853206307947900995081995257973632933820163388232231658687085807656529437678956322191013444346600656138727872850703757308552660417750753516082718543996732664834430184092086847887677452844268744446185092549867716561457561913696323520740481073981721204623617161931736575149986157498304172262057550163543943314592167556451253333459784763129130048307922085226844162798333348341370880337018707409713888992724686429888840820396543671083767000083129156392833621895242423001808291648588010747817859932443722524324540121697710484259738685197415364145543461511809231179460709753516991240491974139422700146156304795488253279317073536988455857667365315108841870678338137665393770938854247479782165674093347341888806032545353275619140515175606932182301955482569936984592599251139449793970759959531441552869606110211400157685492475193861351727823689376637898109002599278924980988387732372554895300296145751275252207465096394635659571830054485657624085039720071406821878055514069986660464188324200578532654121558594385535195254362093922759100009122062213554074480114632381041599456222001293289098489850502172634495054381240412949454061354637403541851407823830016211301488554463783376108510821993513550701807113818801708087637101516158333454624249043299404578901275068507760733807124702077692239863171592120911928668107045147290935981417336136644431011099565777545689751324145636312426246412755978549900824325298077399064861211208265354207795064883952943552207149666440014666958616383084669670782547949547495809157909860322956103246290489002930930086525088979735679249157361652452321483291737344601717160026265306226068926239022493487915345875858781778857821225361384732176081347327621701226976726437619580242888647087344064424248091803054685586116797077436947412565483038687907974137354023673968389987677284276107187408439684700557353632192050642962387921409398479542263305881728125168710660301941918529923760927087078927901680100818971054396766100079733049306705371222833369488074783343299048555363336291946795084612643487895928123789111982665857981355970173955491127457352079643917665097107522801739871850189774502552658478751752003522649684212736274297721248510065247875370690206312824622891098682300284361872414860830015991621926789412548181424551415213223527297708848154331123194935907828208371753076523593674814615412337024494843818059856647867369588374768062905434319942663524477813547332323878739209753945415414847047716830971909829296097903440496787901512233816679408000274608871013427359789334656749329446084113781081334215075027189680053314786418428030922104766547658656713248129872351228172338368969325099774644272205059147469095988387359816115799403718976884541387102970159470221152381384264241235025097981087883868887251417629237918389839588518833883661573200452227643429249726345504479476261541064843727255522730532758351982838931227303294741036305860177781091403386534958887150277433937360799340578635085391644767584422668939681667422265633213991266451135163515107914137817904606429134190588146300894755022727331921392304642166781148073078113614316912746240917047450996774395990284889357798316370674676922594917365020028797451310519313762613619367680528145698625001604459067764910780905308973957506990242854206870946907851513621766026989993756996411483209917724640764738498845365376752725631844597250479883154565032532375071534034776293037582147405614322038863254593586581548304995110618968553226020675734818520173147665812957617812363693860906797096984616697259196789320019959792929091761674359544659738830625177025443007850476433177297521413826055550781564939770650951552657464361121686687706117597255705627663932312655695939945563966745412203981543504184112123113389262443038349766258157993870004896596119002302592778328583200908668095117528355900043906476056870128491488832641872805278357720763624952820802898990705789569220235363930191530231874262339234398038844842728197339323764063375887903522992069584821666544619851483662829011370957829718619449422214168836511367241681204500795815330895343957806444895975506849462599693307157537190851813925704241972945539000478645314063811376317343979804993042410594082526238666137318095184210539294231090133785237073266371601143485716639894874336519389373272113783107586160935003733174371243781147328185275371321283311610153366973247307927235557394919240428862924909835819503446627093799866396706322925453657680477356304761397023974542514792000970435446850062156495947634178411250835922482088235221695805828005260241185094536148584387852784783878914719181837798608239692095557006822557266429870762700032405487175309848037243189628257720127674630381942220144549365895997622760105761668876063216536596695540137070142332595652052392738640281890980102964778560478302699971006430560155056706185586589478976097321225374405557124504909427298608739289307629293973148104467914143607025248042814541311095460499048516522878656223283700350344148858118701993802763576234431605395224202648469180379602146815637884386475526644215428663956204488953232452515883883078859070601514260674474396510812650950002860629838932063030045561282104008825305840064775617692547427308145633560389437043536559185777444034215048760486852566687544291599670264164286630416355322247670095609108191046544683517448254631101530182620467313700844293888418533354907582074438841269411194135839388059791797188844244095003737865599726652993402344808376344316142797336691824004749293282607420411025075196332937642525472611740120172506807507644815222648344435198244288289182387103416121882785254870008172607831653625888758238351724647032476137306312695143888986121947778197186189447336135307642954248357031978653742968603062362569056767301326682653641468638331870382015587646240584082999427915667294412359459677644750332178604270644347343111908492938355453502614431272686437316741795479578192331586544313519954909693300172505863225032276314197204553219881796272095288074182417257899132182533898431336284868280639802947036574018164863186137749113838978833305221337750424142735856269240714149939031182461024425737306961524991270255409863239114337643251296161389112803244302413366860470472699802768820503262446180918278828203627004292099055630111506294129613410996764125213722680674339275681814615840078270609333556226232256876940047163281084051774030428130545718849349766040066301534688529233432438783217217717035265776421625392178139752036679332060080444164455583254871641614322353078125933166050538664420198120506791243129933467567171724839920382150942667791534817009999654890968696096323176553909777927629652938501106791568145307407077914875616713173784409347106222860308977312505734181000231518995777701662793330721017399283502758562443470551592277465007767561760210338739150730624778832822452509334033658675113879441222407324414094706197041061805859640372089133845877783588447692910820723725098645458860407096343784926694604305537019076790541169614778520105831009809008289082502059102849787389648922135721262807366434487563939456948703692649271835787788205725009708313034765273627687618032973389930709865750318399068340260368213541155439318722770521587033952035836035780133923052678826662610058858396146713735221918273235955651674848295710428132495552607067503624036889295323689424589694225173859258590941173740625519763984045896678515854091338643226387628906907889517432329777956799349765893038981288130509174529418551422010910259942921106559432889786417845682158891282195150862373998206361380374292819092414169366561755523299996621762052807791940980743587266939228461180054438445072234469173670604978356989008756002131789732517695924017262122475827480488396976997786976793278320061388998975455878977318061455080796513908160415817154422680014327252843941017290956916764492061547196736485411519366704565604410811249443908029714268170295103145643539264562479015833885461418933285863310224159854120383720892114094115765772927388719833792929977416289313593757102486766752363607434555410616796358472284903818505126599075883311820175477145092647142008081416706591409877237672659226430707530979996957520999549462277510325902680980456925628733238370968428503800582788109979918083264741418506753003131954054229571979171811188330953008393183799712687849127756872747816875437799945166855622509879472730279367115526914372030840939494793635312346170584906238209216849950088656707592215265601708310692637159376837499423869496200612570053735959635503456858644841231461216873069510926339181485586792507071566607786228014129463160894396801616006474453321086499564839301196888855348909061680880981877338282928420825634785455840872441698198145941622714797195586346808584778479633837673947815234509215658538306814117080127682329856464568010481313554052085620909297949209265479725824790399892654197540435294552758123215220280304502590442163015983568009028872578941755436773054448320356603980458695332907240055943718950036670579481859271462795429135432598984991158099146125995439542385831151049557076079355302488759489991588961675227180152740077371007696880719592753023406374765385183647565209185757327394974631566011199861025923220985083908454100815217524429587713484080136668266986402818950475830513799382526847795316549922991074740617707361914692280195588499035037149196668390336393953567385001767627168424035128520376651884973192310857561832099446113546900992412394730387185299681712914470991150537058000680580502912505511764058835436207927799016450808933936117121056111180468099566672130408155953067227984129896053352872513542950721659621269784289155056198423680573589102048135680045891820693950876390722399659233865357982793557688541376023034722012574886576057448142036094125437674988021967723785845633293250562849904883784166956790163191695974633620267864428304556379871089475526504655756442607064543475783646069858325716133785736084616893366051343080174718705694962603897620797664518517731048683014856763095319227981663161867986466175264054013800819560027183225773363335753914831857170371458977019633153912944225238154559677334933812828343022416962490025121883569019492757469189480683750882679990376613029593367904818311301300709885963538189040198650540316193255831540704429664547203870818216555929899310750578947208956707496127897580052087838588167792682327384064139431620362808688534745100273712704003669278244882615293704017503754775653640836699885936595493426972027173181799989826736383734879954833326145508503746719267283237373289633154100732776137954886334263385998758303853227844115710875547071275681482033697510375419266350515776267124627766950799604840782536008642465635232793450909035655460296133701473090135192635974990139257646137814247438510237755914382415957868059572512015035321155056081568737891638009565858068023705226332547798076507169616256507103992725888656322163713648626402759973656476796908116960134792079725860708173143819396181296018569979859972786444517172714261044698212408989978025934797283751856558253205712696810165880098879179038258994400214098047941972693077446793996947645253193145003159426514627946646727066533005503824666652756716877412590129411436058636076495933286419850916275257533176951121995662901901118827100411971807904225526415017964331819004061318394901278756409917250547876190494442838873417583519526442157297412642337838465919833737324877407536368685392251243116952949390368849453053034162450221392728019302794929908276555506119121727197619425865843824292777166879403222393948500292414976976954542727980723617766390351011256098345384761512847664977324351729885271110191664470193706829693324128876319657460454743246379006319494765356075092493641519534454132073945192459379339768996871632850286323067982887411865867374789428283784590904332404122115699603468339637476883254650366182782053010092500432199149703139904130349844845341237523203015523535574884771190745624422244585767469540569050055598076939550949775071869421942857921024032376589823225444030734690261815640984410127362791281519190925907719363882033872534732494653011162546095734166815455104164397492978342859379397537719196790655861506549112854757171991145007564741033445897528004980135368756260656870744284333425435587297154855626658196879251210790949109411764206787390127361143336508772946300510450338931522216478634678201503010909262223861162128605757818258993568677956291660690582441542178179070407523626797668299688244502448139760464913697568410826538789614341528972800074821219367435160811502872060044127705300997100688369709620786292279447418502919672726957642107836724911647034498378809083873148364554623931699148648487092234965732711524425948549104507381229773099759252536646543439269900316049307419815791652674287312417876891750061226991542651935263228777766916778250715668816650608962250795028465038560158231239728739332783337896539975389996718886701971459867082491732962130892753781021425801019919365028936796812112994315534257198349842104183447267285812834692246555009026955922007925058920677187760635582758732993173594180198886588103329120925967771338324135367053149058556856359142949339335184532278952294664014821832090974600386357250352579112212397747781791892693331798903289599880500741668060799783782915637263219488902589350914633447945594833191820387314067762631198650120429053175249051139495017326910632543710460476576560165318970238021612848605981404501522569276555689255275395096327394340692278281511935123226670121346150377603245878925875563699294709750068170996577374146119833407477051899857370284659288269529744802761070170306704613015567990372744888826889648863846130422635838522829446296026440712406315126891142270847470876523316356552055255503326243633790912240654718721926121386234824743445563811941256366085641482833026564974124450420859324247322352345090604953335199325617132352032700745747896453470833084969068478201352090987610251959946868609574792957748654827671644530162613569667963811995582443197600257792733361923140196314010386490539800455013352396004718250875918570511863606580269940180937086162597526627906344110974105888435097806464329641202739127124207972998664319131346125340575654254033592268534791102184931921844833777675366762245523056136414509686228829748606479141164860278946953314793962257922408305569935643580328757304487162561668694389467424171251283121580488651320162077521887992888879734566894329906415461610763514456405170374209572555460227557661186622916276244412916709911447418744665542207316264862041727025539735952367186553772120565494576799572696700644984293252867596615990835702485364271452305981453999301817304316590196472803523680947358204282643945536491355310069628169632477348940664484298103230699099323998311230614490948273294245319745578845018638628950456128485295690642687545388808006778468830358918732506230744224694689066636925751680982669651964229551776400341057100295137839745795202737941795209870406538231373618351350101436396740860096819423578930262276872455427074562097183336728278909842401211049139197084442307981429246862619480688439380698619357453920972554354038024185491817838570525346714334236493786099509114969276537612606245342347195692969671094110397863436537844243956735150537340779547640253462724211289559743008958609012466405612999728151872094142648315695498612444835799247437896556080661919322552906433210886557499747486728446797211717827407724358575360252471190842456733930143960018215304667476911688220263168675840812267365923125426012137294621181793460943839177649306870539679635705357882468222847844048214454301200228835773712482228992753241655634142765125272908706633615952777978642500410448968522646479852864387382338837417767516405358518382453075203734178828272365549747237633546835113572061800352890474275148695185483176465520071452797625291871470174423107171318880336953430216305557546335099575272132992002590266146445127997913248212394804762968941123219067375831662337547432397286613895441279851427601890745163849163902942194027499911832333326761966284756846053745507374567576579206076188200533810255730580589323301749020393143878885634309507552487110678469378995412999375273929421808411623653508390351155480091183105109723491726524444289742541308274774707671092580959996545069801320698214323919238275865795770565170092749256898539725767570317886774485789916356965281093699199089675303221147140977473448953910745378217134130888277361550199122344903966591306447865901410860411604087058523773750313693478053863208168224495253187235848608929662663479428854164006784723023338765255627585845188480994284269757487418527067572114492498694494543866645633093915224176128842482380233930541319429409372571617530159108919243656043986054845262166112121465295495279955930536928710014887510800586141915499670505415618667515105968399908695415930012879304498551589937089060797810051592280893237483906181406185732797885098422547520791997580177833619212723546543870055966090342756125638893021077752893267968604040942536135786626198898286519141609891823279532589299955191637341984309949438454251421673095904362757966502458117261998833617115296217149415607832734992057278242124163580767883624242678369653314577489019563409913075669544000155987836872117778099347246051491229754996198307670983264106559318134834968702851644459799614829454418906105424653299911606324247999898634152819282064177650065559326686676177706584432417778671419414109630486354435748341575540381843103316958259845267272468691085343499979996207477206234892331572284466935421960425609470462252242506707292127467555409877640011926370154678297614433490186088754828129595920767266208009538347805895878708691772200980887081937690315075242065021228277409713267717651236257354877702606029861565321821594674278986337179309642693827609111485199810986141495217456357520031281640181925180606707513954405994388733272848984932748614570203238460891903062099410507983025245339012192265574616028389854572658119692686069994279077207230765162705567652987313769665707652440782391762925745841889562445157394597507715563209472527070774851784838470690751674322494659402179974290537541332781866245075872632391180796561701841023947105974181763623024747280941595342372516916600226212538513326517752579177715706633712050058929333644630893111224646862193132629787155445378058384748953426090214302439589209956381631622637474628285348622483781259020835016371320895609239009492329460283086921568104468161118308172962513160903827671616176273794353786130402811740655736297249782494964051957306012097416429465668437053030156952134086507457259799126159335395675078045979999305812466786825534701538981772231919108726127697088619159920749061101490210439442787017206470208050350560557112379628775480095055857939024217075407031528571182640270824073496453257659822141202323540649744575555481436821606055754744190793337467123584927642045057223996651570813480344774876922796625381344750297749873174091288597117177569676533682283288885057943666034983377337511368193077501715218037641785567162369023522115377757398854022274975540990172131680853554876100329090080360268711220180814411790123846378513692255866525827431091894452264146537850053387586340319609004920552531127944947933797732869890651460840141462194563986182938996616591328761213416896780203751186159910238308681949895851722703978705545294761378925647258833682501902200917687138836016146813679320125675776329816376947296794722291631895658781318835757312410658195362942440972730495364272422667770394346088945549770851583089792015101974858728618710302289722990702228066038436242257791969022910332870436993358900634036948633669143144886128421211460625197454728093075968050712278118494063912899118363095109667547481502157832084296652469576154215641849141252950209023228709176091254800458882085629899784142462537850659205472136473778008108118364569156590499013578397269634863715275462710677089128720408259332524547596844805366020219986899813726733305104969500489984139329700425119032064993421814138835413409255909186166953301663566932811598804325150737049731391133716945337114113759999710879242286998068929682116298206908979562739337100753525118328976975466864130534026719966306124890973864921903408476602030807976391144452701597028208488359621783730421435418226109577179315137468819937753386615178820510766900106717939454551120435893264060781761182191039220614810127983462496761247713238634388682592778201970791722451974850535549766387798202664592636816529261713535157470491694802489349202444970904050260520398962846029989201182630311799329410611961183362339842166979128206053563847560311551450434355578756490179516557084408225900627746351051752385623226747574875105607078612999817570137300344884230221693093203305083178810267194029700173745279257108068477166126712398322577712554220399391672482902841616054784373837920399522588338022058933776426903084437843477018539398236412487210173583785843782557488953534600299367754060006720551845184826062641665149816854561286989656759595954676814954112483132290775304705435686116934100161301026894109994235056775155754509091601381246259281650431545153623139381260743250582203559459161927511676065326133110748587635296469297577207982832775062422677868669960635600184869539363277797879694173470374940730019780407640037713571213653027042953210639632438227709289206673070000992509007816532291524845810740592299448846329480591215551748219560869433886522408489285098964644322076388137511376092302411395246965012697165865480490573464739574160860965340560678174173341685147691286718648119758308983913582659295506103736370889220011463985895752851413044444854984319618397070473688042909622441430337639313484651668035460608175542112820854247814994117487196126493091973487446395893857526505204386781117046257431931970884934365699782710033301593388572006674781060473178781269640103192815816665973728720567203945055865709846265204196098216318049779805665894585358902824259131338133857240713899395129225492015331342522509734367421268408906454297693920366836521877403348895652768827834509262133079109109695100790290145294659237139515775229627312233316451180526168423689583362449541855224502326151170636640286818282208455062688325026785159517873638319763250874081481053151212772822463582997314284005380193780648182420020513171258414242399831991033977990763925053905191133140034263581738979755845472116779837509322988959932307073957686693069032105656079587541306488533728028005707378307085689529519715808248172570889329851513291424421273305274310179161430396721980011249465138607514107009062251355719046745741454752688236346036415464960550603505168862242397385654202797290433384662314028677560313888014313468831005335712444301864091230563451349690206665007479404251555330125075621204422027774114786015214949437405582941666981826865274899415385986284285165009123957281913963128560458635213411801477392156947554980290730205226543089709548006075195034340576643045592297082469271904464051736662336949724123141720133215336061323104195406743612183540031843150409946708308778111361389802078824378081168478188891742983442933329385249455396905705896204281442190063075344959684894049581233681480330214701000341568993973628396674438711357373488611307450611592817662999511951628033987763561734426334063652126388142219712360248689319562275139522014276935794448816337454926224174254483923774530241034703924855356153900049934990781857591674961221024635080396742243795205457898662579007288889160779875611051804841247788349986462262759210672805906525537826971234162271927554770391847309670313024437355409239304984651117754061164925686563169336045490795340012656223062694764466305582514306650980364016373954973269607131353760112363456673080925116243408284751210959863159416140100396491060851279587955427794435179045447047866432196103400977515275609739755968819654090362363236994515713931301393842495890469249822321339997137582189014792314324219486966260384175135841027783654932734841199794106620383167222288704127761024018615450048769574565222809197941863878971666180407450355561411749179784124089218486791792881127746958389106663407249701057679175895253311706680427604555014879478250459761659495576334507699987205525481191340350319485590965004105636710674347876938448364973972306375763364016191859644179485976135426360779825766203656483989872744621102452651975537820360448370671618858891882816476996263204810835740155700098580965154127590467627620644106559697846216621820864741470319582555480189314652863702558601947148291900944266487363621163148221455898202614425945036234499051127526095955356303230543922620899361716142062922721127843432792484248109484838483385278427877763298797129987847496458989291641311449124671277851348316708917117220248463103046178134997495253714225538039981206604893113376060154721394315679241281171979282636559975600443379532895241284236301338644313766399421429205904800801541849708027384010545340130007079538250810302017865686112505746000489245827494974218115801468917030806995518368151511088416533548747963227080543099434281054013015833282341850187340197502897389569327499832745654528969438048622235471471115803817943123721694274232571434023356920147865870090528966137326913989385719935597266059635903452253210640765471122184734107738953117018689941696804744300703319396843713511356280762054258168893285510209858061095340111397351492950519547151827966609418184489738328065246651446598148345231301675274601195862058469138758630083401798966161963277131278551760081605722276945984962470832411349457835777850643911624080877137212543804039732592858974665175007397833036553879366133609235378139833664649871369405152085308267119756156604230822830647439160078524466262527109864655196989450716872454394560579483614846826986962970891514243565331633620225256559896227875256686978742792280908216505909730801377019991639119322292423969972731042962644546228005417517351221325956457203724726967430839623786231508274416465482209728967010025569450468450473130179036517241718009724859058065668590620323004698729763682702999288905048803920396588187583196661094186580955419857125397403200145565522568694682361968764789285294127037389341781389551682101048653643175575673306777841088233813263700666035208569652378147479533036680136928307278544716900057288312827967092120733269204984776547794479436060538822692967905055252931679292023368852625219038283068061686635426450976666334132654524452285725759073347391996505509607945656815358844147146510089779039023483635870397715942206765089369938955544666862042339810658244222265923193319547789857448756601523755515922440396294035522325651441499461705812697139562274528376640676012308073642960331480959858665020315937286522120750871944314741368610985399475274620738177428668376539563664153500200909343723137521509409650968944446864668013065276237898893988798971815516075704512837141375494672508857533892824221307754945107539280671376985754740787579852579384870397431666322382648438265309120772405279975214668020159994364035910566500935177068112700686084806096000623012358794575332484270206252326281619557665093401891483763399335673727070912811952233371761244917522951977156317566990052792168760022176441877892439081721264599816020734682898607587250784402210098254031124472118093657954694915931601568269573017559524165843400872401189827021665907516497483650498603690804366563532710199465995889690513900147218441009313540132664683643052945566528096465146431830861547577047807199273951401013747851591740431726994929421980521844311603828797082416076418252628535416083982369269946182418356052591019469611900295745169831394673699014127643403791218429046403566130903499715364039208779446250367587635334349998165539845306104435622284000864647383911282885428454434109995885080948987651978005556464878698017030226675308366676437100298254583004158901418132671300858315316178293101422249603409025934795823555861163953267586411716491390091716439864339044149698496897459064401333881611252843881881380202811060293734502459914914555835423214977965577830007247238768548595220624481949078342992030660163626827775772102622171467505736985996172514924071316763578336570186248534297688392921387703823972215943019117531740461874072647056702642619034667455429308639244245080950387445070253582007101570270823552273460559902077067041594666018917694106578933970612132354135218847241964475276675487810304364136710596069210687950393334982198443073694962444967105170940447593497276992454558506390553532565817396576861001600063300030613020720426406387476703160958678244982910435802696807153753221116982977852131076579080220336033966297938839556204660223787819542413891072891769905078606674674956891576952274178845658060136481516456315183378307534975579645441044824911557110259600384713039969414693132494073029937086403061812586359725604212372207361643048628302635336991896486313055191838285986504223819670889654562299592905761114264107865628585641834693479565357382705522002576843524337760330230515395031109527099174662886926382811334163252567470334016765457047989265603410672024739507747626378376671998202849115233204297204680791678087007976010803567355748148606600239976647711941556004371041554091733766738804516014646021758921956810466096121276017003081618152902609959323856276389477821193397872170024570739261614414135287483777347229418559288657956967671209079938719859985331390238209794119561446760224749510604475481280809607527083159365525907544983493187622822586303818301324151710628006860969385144383143424195338916297803514376094579617655384858780338149390871666194000211803786871648835332049229805666722402428857267142146472178082982058334896252320134121736016838319691176764651705304395139143998685998733556828974456424945565431292000367400898261119544918179246010587470346655245399291808332139661127432858247760558221404237334237926593637700784964976217907262270964575566094434229648541321098557003973201146086119337794508019366060730670328642215173209304058757756995776876870532557951753530257967729380876531888435620995460537568713111177675799242883344777872087061038464974992736773835214651436790456372165088595597971809945058800310782079350289722823101501056202541478049641398546100574348864479912586018191442786597231889839937030422798910054759734204316381481659429590124642416635159561228119458640729971900144022476632792352537507799403326225848811748170329697137582683243994682960670328465305882262727429144304514237310297888306673449771410551220490978206041761392672954924654163723141895179144824751686970279125729304637414085706515732366863255945566832518990070365486879557321075002515452563360640872665622604560674365784898224183805641303560371369302501408947026997244332795520929384807598006125960749350058252778639601495867787881274797813152376668160496995755859893363430105616003323066798950086508166861262623294463660877323519720516555472327427398762137211178821794310482783876546893769767556488354463108037394023610666202604809136028287366740443125557119529425580861476929231302609816997280430440004162435139925301790725211701158559316129957942409882472798176139574162644488531747314751548892123070858237548189787992226200215501610819461841158203245128554535239596945827510590701155310522001592497438045223144420016617639054087932333297423676322730694954308341807383342661912819129251385131683726404497229462713518604189984977750460897614762684299230805390714466025369389313358506251914344770324981648240263692300506728215208490854696520883625930055410295457572353683209604111775565294052166168218661268130820553731094214004978354335767179498554188268159172333069339509502688524059497602330420010086340466107258991974814443708095287209015632692843282395143151403460176885239872499413911051158457204423442833869946297736429952902458090365309627616651314296938531869772083482620304019067738411742339717310990900516483615107069653972606040416963085192742714328151952063932624377422209518601820050904566300135320658599826339604257422885498541243590366009477404444186856529990545124042073638475043575715343831124309127137021297503995243004291534315882524773341833078316697527012860470746525030772952944970823751289620479519579146570077806546296221163081626324943302989292661882237956296894010881955115360802553807709566247338554768664495432163791985160532570547940968117599719367776327331190590866578654186473055361524907611640290894352268184811999181707222148344460601669247010960595937346468073956656824037213727494681864086482250767221028387173826590448136467563357528866902413553710912869678241687097323749254680114402095101394339484430729479903539357665130279421075435236132955062476578517017503313026454739741341798708539291761704791702632710049668341483091190637383271569861917683300591200658579378555593152047956412522212446861858617472725930684521545410738221893819478235833160288894473124588564676466920258569593866411615838910920479621050730012905417805749960941922519974993179114622230405551217411294803296322593646744208779246071457739708112663282940704094806639509558248645718176865908263251758542234708023200321565584959647044408453053791505250365141805052238790329732725787791901970716763142658548123651193601531916801517559258530496622508570036261219782123106650448750178296307959995755549035373099211723191544338330007121233885102960647806448880616721691989076866339988576453479952304812472475019599638453722147283469690817969557466975069594804237228778831826434768146723102085326103129823851215133149779202498111362814015264260516033798166565551577882981525766249439913494624415405456067160620985529346473271968452691100902721767222241461795392022962290235175508460604778102721581288662603514002755710793716066953465013418530514548319938309094064753483118867823312432188206125281139220547550586214294274983671017727933110415736245092698131326695271243519726339550446301770190192410997977635174083303456075257337004202933367796122002818537158353253725360834537918351725212373074652619056200715634618000557993911694544742479813466251402427261437162738186359795062280995955071213542126287064711195115959622655487546579554414794781280229061591950773010675547496492488806456769957500214584676685331658364366129614699699641572996905431167943934951008405025612566262826621078420427869298978733285026402766130206987296692251858790451927760661165922151808114003464830130404943644224367281299063672218257211333266639057616333390363680118737647939943089147292413879046446236586893550574155401449548673869079036075021196235949143000910159794760293308798605539919973575788979378711314269139781486217345888811629990030035746552554322693457664276617009014458381683745142477460821544839736552880524482098290617503459501561270688560580626937631728230088791679671847552336746991798070679038173958285075978839926259579414017568670656232362350353497904026544027689047114115053556956722980960117305035386715129056703749454805334599005364742998001278737108958468835506103267915905690096930671336047594119354072879794468487110028182684449140548440122788674900186842372872217502336710390374793833937595800328102883317039807873355948515828374169741931289599617396362630186352606754428852423379515559022420708559867817223442930353876648398591516609554202547076640137566395341576473585346505856172451189679134538933469330127753645018071890211940050900240419756871063186374899085996180639364541366160490316288587519123764886451292281522150529293850256815753288344508935178942427227648899339483380583612538183850801756829546703240700818573801472690054713681807275365626525028100661422880367413781851700876257627504278033670189917640314420178125249080506917112766346766867868470305583320040412385028446742316851476545814655996243476639176987011130874029794392966655061503608891491066134699156660223120185352808976135969563112523360881265582435900406556810342711165472150174349938628624889604346681379274501574380239890125623160895978660349267431630410055114879979906802479551147514645641378895443745634290466522068722445437358918372336493867535262022655036465487497873458868804678080166767544994370738490430493441734948171934158605002817751857064747465593487519167334517483132028109289214371618428411722811273283251007506666503903702718834773651846017798157893446974094295836102824563688270466335120208164277001120270621193069249379194823694664882568719142524056651176077354844986143939855763447086330569285363413756857212609049569830603627687341873798551129290167695579653023127768042383138179129884639117069247171838411100764206790870559533911113982432706259019207491765633920993796637550552566091907383560819039400380227621517711582374479448329716491925793698468314260245380026824661657084030895717939260430077620850951219538815896747534121861129541645392246071969479686823757725538203900866495306898619161102643297352219510847429926914977420000223387466169600597160355461585720300556272421832049347821262792247771052761279119423876860438651430913795185604405170558579567689204317680811614029755496198203247942939097823388689286187605992011415866547735830164325689127267020547278670554035935702098960797346230892990833659788786076399767951783313029058559963936552460525735918116029309816917415963644056142908223398795258988728466684360134244467315759928743361331177054481201850506273151969910429384433681637850618591892670548118096930913961556731134316117810404589540690930622934350078115451034350608408691326538662054741144079490504517562335503134963472128917601843921926073075654476796576984058367497412081123346273691392157677286465047730706965299610133409631971749733450689558232621725412997186570295490859383481605007104658697746511831967346380914405121691423451298349150771245482764363615139888139993344743779493645602756239775924890094447983160521221050675500403045680901028164118895128099892620388366720113317816075033214048242678628132399957200315253099614533435547245601735412075246648590735782603792314325162312490283832289322839644727241433962120997205181769525005678196078604875128928642140965440478904452304983574650800569028235205657580562130877185404221130031006352436026901444990312559151634634514480344749004832700952300484728591090879103743896222303901500964423176917572112921431141818002362894684390420388543391091502682983119157254392909905707232767348995740109175711660666172831632208675847526124688413991516139288332736832734608785395644552889408605229634893348235359007487212014245739981268085656012192181020913703104725567482494705053154600839206743776992104235686256362530508712135660780147717505245741513478315341157664054630869181281528902405560214355831525584765331853215822315482315409188788141147813830488437804318894949111192307108350039674135469008369488942790692192803769757145764545371686904087897362566594378816955951648699186891738668949266267035737354110223453469931080513117927043932734623676338989726656509197473697868910480574603004295082227523920176680967646681126880368003449688112390822567376573845432004312796453711831171957851351433028233186836634964925903822314626711155648245330131469168783602482986019872854853341041033553366876217459851470636314808430169031628396266698795885595997701248769284448708479679354209334461538434450231095922413939677166460284791433698137080490661724210911027307063084959908919363201505495303117210738375612136607475852228890483666206813451842253003472246936736340518009188313444622638689556486991614612956691219385067627652161195685974267290117980272519995842845673723847025637707287431455094669228581541986226875001785348527597542152018803005445396135266633258614890088866711893454628833949568111827969282884931725542854032780516892974266483343077972589571196253116904704720729741286067254655609995416760511644182007013667931867938189244057177197320009348757716080112134480977882876316792533394401296600999240393418359072968102953872757435010808929278676190322838884894755890645664672693334997155177437394174365800573704861200302891624514283620662199072785898899205018067675248468010029331778077766593654390945179683387771197518210059165135497836280923148152049848989302618437181599366814797891047782210993284349511971577903668007912545662443989872285980269843584143851651605723184888750617911812257886722307439111040073533916606221030916249188166300977476672031721409162731494685245236063342631294269950858275867283897113441691798714784660417400021712230777874475921679991887506155386890780862885935499130407474259773237869176917821917407513159958860281524341068891161889671686023287915558508747373753551690912818533731078614929348599475609114896637986661089979593607230669563596146227981688102554195732180846216317194428673952613439555469629495345263304943652173198075622978224502345434107437698141247841143176046868549467585713974094848897683356076658487612322059799695830107808052087977141580179609799486950970251866088974432557721849793345456882417340174328790469227915204558508820228024043247668325761744612421758957956441354990552100538772956015569349967815921113836510560195400998231373172974193654332328786671467565077014132623851576289984338427868988295330818894263659208795396146306715305885979943426827784302989917788822448137070565044051870930732795654912105273434768634026225703669043955907641521925261012037465149556432921249986673722755318564813727576618402906206083942697207321364905999342108661722878468164040765421475765990558508377158664050906106099784712881250808643029458753761821636074471461422467441214355572571230692801560621444735358611314227361699268704882114733746586293626717526865184530537470564058982011162904213758908547814881469004275188931742296642229696296025911855261346487641387635570767019495417972122854025425976397406963398330143462536576464851584850069193505591171710271220947756357446201326042646768496977692143126365383297975704665429792027383304281752803901247383893254296148907424953903689386743056379085863849726407863425241587177338592958504605352637914867761887367284165140951957900331144688757140216820186609209550715924463588934328942316121130541544177639340736745500109510326965239211248007251286611531023487784311844126656113291472760864838985716614623723782317807164939159576195420012302116586764217418355427584573385634179595843360969840795336567985520086387542363580752090571171904276572554101872089923057332337834045705737780677601656543087480159036042756644084313863888970914786755447609525566616704974992859794730517217501609893509020024935070368373739379320575764013327479109636424443120275361887626690226892714317461610842294439394846413258158837980698249458595359595606615686548747099846526681455629499669167213964485763444605640888853124948933668184859111305447790320508108681338466584020368366113866937667640292234418511735685680577498801573507356083580482400490126031559679068409456026037989828460572684609352827880677826009068932098905394309450163243990550822685069544100417639072167730561758974775095549591828158378264392312839644602426830180260442046803941976395557015737096498931489351256361807408946453710947023428291872060442104694000187886993651087279489868360515011865490457258770075337526438996500035233334278106760263141247841746075355518700177345891708842812908207894885510488115098209911776256254075348460826117958131739058881611878385487057175179269384592413250103527055997596687733580746103028368885424134176617166113860931440802989961098555712934515275165087821203747954105735233656623669192687048913430069097585492105246639649957346295784417582349639368430562728779967791232499027591550990026616386164343105595003021741038196393739515290182024634800271439115681292065837618440648837381979683918398008436973032517377386808452470990877284804000579930940477969745015498313075600692651197441964034312819467919028149259595622851898963500878099703525670297178872266634086783390264357502050734871301688111434590995886677495863412662136157345639198643052792817723154086522822632530365457238853861194767815702452138802942217138596412718054895526944364058805147197866791293428829337911693653538863415603706700857846546279930683715289320179978956574331654246332310245968956614775818041446411222176268104936028358480689305834380508082453430353621628812692800737408917516706098134966825487732364752664146803331721776006742063570844055615907930940519008027941308881420828110499829646686782582999644917070053869303985000851610080720232507072325972911864001692001560182959684075779349835779214472293230416943038297125188997361730692971277575002928311355571740424363125282406342631980982981306739635997488368011923727484590458378854623215957927929610850025841716227663117337395936626645477146363822405783503275542654659913709160724261528422373285594063890299105247566192001187964228736273009114753078468765646762766537800691627698707272908161863880787887166882659440422949662057893646225254610474828176321876248057695919325129431634973092442054221332952793804629727930285110613252259672123203687810694149575386153992925224721510623140876433778629322751230195010998191762224680386807045358020482696992988183736008737121509114309856601431431709071212170807703476410527323113125490410710993182693294664160621737574242983281164351364991164018106227483255957048874134171604737352532572487565079794696831468145429974802818450756647707441963814264138654132248209941986031606871173500945854957551601056296323295107130889122788675575549367884376402500221306948193120351220944254145566182013293295768927333625243804176243044802026533267231418914431919088304471173635874670865444253967506183076440049976902555908392338702771910354599744442094612731695583912767587838671419843521493397076633510848163960055291275480750061495864114434195871106894523138947131015580311926420408577813659309461809176901563012408126762520455567804231757422388119128719092483518017854666205119410166623311138179984387359401361099501343170190229970735791784589246394515317673678268627337209122197254988982829832810285970972272841853702465554905543743767098598617629726968212868378928966656307975198529438425991964319080572676959291657511438659337751308405204359159266858197774563591170125772419503501422586037741636941623656651580474226580024017435572027803526969867631967527404557094271453212478883846421504944653449882278575405218146143994691886857182173346065827702441704266299169422174691796846066415964201595804069599776455601341412843560946390948570518170684319520824840077266828228306620644421502244409571414212582635273375160695383153429449955035750026870406205668271102849007409567800363957466197057028625507763883205862808177012864702059612810034202499054786388571294038133217644087876112412296173341570116810705166174094570822130094339085245843505677046931448827131823218206814772272222602626840820460880344635193624816746196049834280371478493831365217293529294555173104452629115446006369469354775308383269916182241128168631350896712841582367470045603065479330305781532200048527109773768454513211410658732244959819335347455390536296283008206658336135306865879756984706050762081936627863755423405653982382060583566370180266232041173294894201500532175447992147894816683434199633609042261199126639631873955415932881010078006888964054718413294122369963680128952616729934542963144710856280220519438863021306548410064912589204943535984250712875036166819356607905961122452905324561399270577160407266367961370354426941504961474151270089605625457855595712020947118225154536423740166263160497772113436926210583141353032435065134588871042929687954836264409596957651698005709533141248179139872748611119901120685776518652050980257051540863794058402577539246631143518089823050940249422182048782613463748740331124445457982996701683948800574944721087105090690476345102053639869255211630891628011773516457758718237838161435787301328519481824602366863695301914527180390880050014425812028547932531532972115352481347738321539496884192753342847714113630746640422524615668921186080555577247758861644512020169377729578576004859831434015508367262140958070990036709934709327913933788474628506783717446005631243017007544835898684068184918128283047545151362414049362959918314962752219863014537447235635031548455845518645531839873507394280771585635828358820817217917445811037714283751181722178489544897163929466110225696645068490746449269135859514076745927514645116469569649898780991583123033477126995290469834943519656971681511301157674255468988501826352345091419066562971389534268461734554449684262923910144981210699463276348703459712970375592968938383955426131235978426100434712717503188487099663399083726306302696710970196004160698361189169873270084097560684080639455176582048372178519906071736064031005531106676480579094666971131839700231438644564716882693194230985164123970101891298236624764839197047075346684193076592915147780264203406743569231797659646746369768859404690559071678177077453111211766481416726791645635140120034285520361834028820756452006103636398175019272660801541082026248724906273375452565168632546694790338700271250943074072313423403754156809212657383955785843500741137051777335839201411464449581923177915212312404177215748720891716645528116412630518174648131037769381175651404235288097671911109697978618503455009970068121365027861808912173833380818462191522149855881351540899695016095110749193123916816783713328870281953097578508803130033690536247651568673158276392449195007377254554546418563722407923898160837326750314991557942677713574595548228927957115380772338101737867580371273125098350210274072519526954642911938109284539009846374291091279197206122273876559292319459822746344893438680334749008692248887122257836089813188407122735994481695519434868710688122951779997422251738573922308463885911365640507877906393658089491119995383963112720169150994270599296065520536984487104123603141085251533492533970727807152683389956696725607392930645470724651114893701405005153711868597667010224602172151429520682627871770409482075139633734065911291132782016924256851566402225811667890790297178724247342775604214725258158486904800963591969700858687566821619380722887111951274735654969368532924654922266764425058959448492324271124575971813586972845904100216614986968717607276227915323134572100314532238174104053490316575713571740223751857282124402518450470119449009300967539614924898469280668452616477709036680030803411216199378360210594459313241365417238951217289109350226938407689016836079181068325586176873967210513971301194458700001015933540796455005551526418571132076918539502301946305171561761444231844570725461706648657908150568286905688352276166987662054972002731581986587986659371446410799652120698378579119913674927202337175490478725426268915723398680530335817189245142770852292358494769439132728412785134981314385311953657976625303033543346315308427701981850393291522745060647135177919907848043201095717267999459509246611834144949789902867567919983481910168772508272695938636697690194576865756975353085935267734908763374023688139225661219079109740630764295641531912027222377176649794514399123888602167900534777169815249776313236273368843617362919087586225294735201971167645837638947958651509823697419421498638700268025962012463577097390540641495221568034499222937111436624967878678152237639428197849866358824646951546059768004796682662699062616878876203141940140603674050056388494676954206970836389156295055834225455840528803113344907415981319809186709491770111940168508014117550675432089150648930063272070407032409909280131490863021327279661252314175203766447346818148923024817910030096569585060552242950631866930334031878889967677337550793052949077417518070387569248784087880001895738259166424793344362663411272625575800799661503999552427654579977579884956948426235312239414185487757598637294059901094605401729159113132089182030351453991226838423106037361379252376340868704090623577871875340857607074793450377034191473810873783817255922352346156600263297530530693152575111055098305833956770301133593422779360497518059183347491998111677699731865519512130618659884314513966338032081039136594962096918400045983665803820362979010582681069144419192566150285995437065606853896200494844305865657151884410449995909441982159918111802931335581834633543268290423791409755252361303272364102530498930839233057784291566227951497540366070196626212537763324811748112593948985744790443023001877262379933611835045247291721054877450484248917526445982281952205896632075014266903963465261143047586121558977741108558399150073919385926134774926685079840910644553690219184351848000524052379602543256524736490734065029199208122573769472610933620640256745281788729640429225104777828723151795380323615300377090876049122621184343288956730259526049019203561851574289449828249604570020420793041975938442005083806533120091254044823345864747632985066966975665653993614465434700040248013135862057890447382349208938893680047683866033284617299913868601942884324741783443811479914278395385513647351727538044326465184578145557622968532651074037521565102019252590792655863272549744877556478519698499796056495118045225550690018668589289573046095812506334264229352863790035743606951053878181829429006046987097636016490754772674372181699442283732937641635475567946223880154926620611318608662125014945353545111262640828663149151445730018599458777356241041861162689593843435714455665171618764065149107709598479593241910272712251613154702417713501569947331806740105614508745180380069345419621646535652090261694927241840919921638141141926211745821675184227676162646732528677190758296092797450760233859598767691354174351666027364060270750815422391729604924212544369328029247501634588158641615216515943558907562173715498909262323161312912823283202361385222399437005591350644200451940894382035344967494115950941537502121828165458006308900898159254791814924237504637231564531990516242913458297057157270803066166707777034507979651870824128509084243537000360584799493601016543271338667743592914479759931234145263050409922573162445338711592207176956671390811886022635391639101161534226133602118195777375259576265430631092986711122980200789027393435621603043815291880002617796587659368648389322936110542754923843370139166465124984666198295452919791980253696795753742603768397190663457496845235764051314303568373818231004320246183867091176236805805386380421730586964649650491814394180944066692489595193723388388865219869267152400086430847502714542918713717483315085710014591369836231083196494489663315890741959658965604298381365871169825928619031132752849232307118939572696768676715885596247234230610310345782315509653392883317882498956029667157174797784536305181817884125754205370605652894714721983351657682889428891379532928836147769455578146104145848441285151531622752218830109100643683701984450173922151947058652046014590813645429202925859117529506064507052009447131270787787514344958075257104246902649946314902423575762376774227731458632561658131223887624647873851853731769581943351273342004785634736026866452174474924705477961422022062938624541075200771335531346205161482283511146081408462062390011043193100522708029779049853156619521824230941098358608059273190901792343784504344353840103205585086342043699389560439693293671506954645853138128287294681762325696222067796390067271774521916268806176809748255167370832439488641592512115020456018910285871686462436314687584035034805238614199473615519677044906948122384034331508507102755577342798172811099324555509784222857515347812379275919610279149505171029074720745746350719372360271958927651259342973134309904161313907761295685880344134487380081879869719973023745246382387027937600362869371100284936777748203578276836309901975607536326374360255544982291065611919877072466205562148927738002977750116669098836087934095438336572094706945806016007541285775803525375025162077431550043734024257489960711582162173045762081565756773330677712957058284521365622531925031288255444924349896527340223754437196925421859292022521663072923146923159567765490483478274229676374620007554680903601273824620904506135281750958286606883467643122694871418563468806926025978746674910802104156734394432678798813033339181043014794878671539728287140810927810863863352303789014931537047726471770113581139079359189540291211154101688319668920756226305200636509802507969736109614267422854887531934195394604332869588258845629539120428238555225630367402086756164701420470848116373339192621584600842180749785059198922637716180712872116572174027087523745689805830145060851137518741186322193158691789857651676896117254874086979715873249462326639450852066842796898002527486944354446180179274522291540771696890691727087649257968479515248376967675309010645971085594683992102924811712602436689631106638507704133037415935663642226653065126282580952831273601342892147621215942159334734226686198946362807387666903701808376012396135099839371644980103004909192490313918840773720073842210941631879524899834894417146457623139010074512222964379017448353097841686081520745477681877383319142016403864119284146581500264600713463974174788434546567790056407510217659713467066174496648235276598965353889474956142882634088524563925465352941932264333496077634199783652889984210509658396728980591221225103505234875166288394379300361402649739834483999028282846436268012152560022580448208087600270418678151342595382079522760087238280107396933473948284125735015216029399528311175155021866193055112355790580021683106042565904898657660818736768485145651655171024032858394216432617130263541013079858431958293297949582735805876521360058524686722031939650238454505517532854324551916800050347544901252964325721527356800617656692293785038130972433674056854717989935282452635264440541197459958995944675885762138680985607470770552818517969787958515378669451250323696688947088048825154712361015957740527148921600853847297699067318512972636931283279206745923353730104381632816584299238268830363214336818723067482827159396364732696891170185458920162864208402549536436295570225177956095415887498691477887454544645231361744272307242580254857340642127683776570177764568149311934266630034460737228444015393865767927380381039850837178191296850778475163303395575849751580344745459475492448677374785573014589911238228450244043539751402272991171283918306511987979914771726892515859160554917147146995023005463823945126133842999015052273911753011165938711502675086639188077836961835280312841407685866822591688459523913111910966243588740357065099458292589059472967358962178256113215258947231131952232852677727651762990335419097243175212401288492571576559365030816182242264869882458963060166302055838163760167741317251090964552388863114098952774946231178495611598765827463076953444651918637041160975781390503281093728993391039089335127389491648634069538193699967601554006681191827130542590215054756122969491757920818091138235570707783483326377506398895136867881511082782755414062675576125747641752915515571337040802050841526234860205209933479812964344671674130400430026474576398855262628350953878495090998414467185766541416444759020129570945450611994381947159254506961785229137758007187087985226073514963798242824131997883699784033057036448993796275445899840997947089583054882985356223875745745734853914365712034088870584712210478266723750036234165923381825343601577008899272927027031973778974037767140075518383270582263156118930525929775601977201094716562880473397679441094063100069996763816555369092857778364220916727411010090522523873686384672167968294259100527176820883617196528133467659302058818709673420736331399448164662123791061708302820864468492252130136237364411552404656822973081538423943356684275041805088093395622452717250404538039471559834211263107309534143389195474531121894728859588377465849255492823268314162500102736844896517869171321178486640046798653387817850253589345513899780912503828456061234281415199204632154349385871776059739199261438014378601823629352512037965997278849130861033759309533116786780351053021472424209865904087047012101853570005727325261909671578614679011002921229535223195060390294068683919279556525524005319213875216357227930618724461763859505367523054279596260658009625873351879473854044702850581517747795168032352089941110005928907098111956288138698015062108214169058492374881134629050437482042287941570768174699661494064933620546242423232076727681177945522527592221203568865920474535373558031017520175176620334197307315620297819176715620810823345698695368770684383768082415583303494186536440416138812979651490519327794410553814728605654349839710115981991431411856352013270999692490240747817522904739744368769952994470706496402780491348836491590968037784989828106659688029286815105721696441182827788253785937410148244442551450558501884746295052503341885193345049843992632235888758641528960693561713046588709092390283240264738401367273418318893168978890680637667424349297081887940406630134321488757134747221589593332146007777466690976317184776004759419587443880472497780610127518178820748436713365139385289293404244700177931339028426344927854473166539692959513703924429524399324552236738931678899470353065238271930583145305258666558830777591683854030366841177760174368444935608901547415907257428654562393242059010686068839005766899696053821066664400428025535093585587772415559316403507182572440497878404942154856411243850533715507662456365703110484941346440547741481579207887944448749673612446246798311763916789088776072530217910132777487329264663665096925371997393798547069129344229961473767778909134016134478650493726626715206483639619570272912060320779921430149282502388455795049239626402426715490102446804984080022361970165011314672534397557214972506595463422868678678180955813513299646802478552641960195878074270551583123241723526800400302813408729333751582120989723263161959142155474011147183530621438849894388269206516687637795061794588890621468708382085153185195869581814509932083564069079773019272400646056364227504429076955540885671904509402377795443801738924886905591632008283428442181943326677327854574544300862938751948505198422757327257064692611395652618331203147901096571229148359598043008873715223358308422637192773226254398495176694194321543157318925231008170106743392077407277405415040758913930619773572240514444712151878996097234475255218021670670862164602114475568080338656154724331495093750557066136338397240789331038108558716621513322402982415191646613578793843034116842361410501667954272938813984764664707902533344191979138370481413270240344400671965875219544186868645321181369063511634419111962158199795017331393808858095053512932389061458676887686161758154426709732246299201046360474139137236589339041533932659256171559086391753157759315980221500697113133727865199042299689157592568054085358707771907151899232430518455038174626059276912752460338172497760359769634759761611972362380793671002340290250222112402485125634764981129598726306558520580229342890808302339420424011155343971332900496259251176460927842002424733687822613917501853386651771767490260001033539057264274434206567403815531447776624891311211743570970928975261501521842080506467195746995810348547807583759458533880217075414354078023528421956736474173270342408690380243203685458755088549722162367160872791314803287114718530864392793727595505278164685318796027228922138775719046038761990961118104411581114181467087193351640330906457995957111008626056839660419310538265204403786127242893058406819536230169574182170117154850493033167528517114138633075707122683254200254773556055234943721677496691505064630964537104494426258899440784990465098120749392295626386891639071274602194885007256886651500786384155465823006483347806795629914879829032933159929676660859807916030592519608644493865227282870466558519049342470709808058667987419887016456616954028170893479513771173543503473855917421523027419420281312423387395362791414679788513305386497487740630765553302521119231539718316349820721527620683395912135112403783617360838943312591902491327024831962632286238550571981349597135021951554673828603390274603402351904319282124904149927233419925509481898334103947428100222568385324027929994027194887078689236512578278124911018011704919371355256920674784968678840040942942676846768337659997419602720705309506985062887002581243039442831560641432459896662837174593247530910875509027848971604784901327235883258399660816472239248633242168552871866142080147629339822044639636110439554186639306346280315138455259905786289220704549494643068980953481391569837443172463051424726367504112681255875304843766142216282063717155421574889534392139344186282454030567664802438448154656605850078415135320941255676635646728498177304641838392103446757728698071760951302745748164556168505503238206341041967768380601894748712381747405920447104876747183905550740482629534712340878405555866741012255798277144459283514451952345651234405460952483726557190548320478951958072797886610264382038851125045862282978251087137655942874782369151595549380295505040014318477488087421362692656472012614930271200349899098356836687047566522551526306181593974632079195645757090503797785334818612081699748348208335826488819822991965924394893473974955480089454016459206177551192646047375174087698666005628481754176691014646469044521099976397345075075109085256967696095743442479495165239000464531530737990644146506554238304591681912858116162751434921478074970895576725490433574123120911057996408536407083957858963908457329037674036323381796463017004231857614316953004151469233483143446999649497534002971987340167120765978605621408635582047876707170924392012027888445465533016295813987474950716192134981929548872203494792404951993090507633977321832796352793646453467262187875893941497747343827795549323570299213190234907658531112522991003653567822786380527110808231033501530033084730317936442228269135587891628023275893124602792470308256789917443596616668772963978167552565455816816090163808993148658214381483569519569151873015136676643535610611975681705392392260781615670238265277430524861317964442973761330248821467598752810036571205498788595483070266713684893793075563222894588714476484154724110089991733838190407220121517699289714887957291947388339659936845961282364684928542000352958164507860098269944281991209443370127648673018781728872438069270154536688780024633333593027533370740327614728437032815503518534477573997166368775270798057502513655965104426653080470356393913684917048885513580728565518179027889198971174971210740186936164839920760035727314259275345125214580213669934887141257520966398057840650774257009142690408072028755965460062488136449115936837756586204234952154266222025738694104741199609540771681057362407514712642310962454946814526290342022898407137537020236971759076558848087863949449352934102941511980200783548225480978976219564889764707617736348028264917111644673603460150964080595008301778618909857308634700074840808765195802455400538687346500110706594213644028556071232703762378532490797449357821053815112849794851478482732250645283889242970854733753206641492028425323236749878993607113665842031621221381054837486821364745599815973104072992905610523773851715623266262278951723078987598261494974827369620214068714179342798169512082580914816297293652414080683961377109353545456510851093161892804813587921476542651694220735052270391805238567816618779746390215770034429105949337837563285563148540928043188129059519087358276807683843195640965720224342414508528780425696187927139395877481766991973749699021617555424864071509756123554593386856902100999431476456180005038327798758359038489998242893063177426835556596988198743018630924005402945738538125878056314135278009732842126468318479546115013295357000746094792458244502484661519930594069454584201002777029073382345908836788327119332064191438045162187306009414836342489237066441190272550123553397017552988449046695289510320409882400826482134428243058440267441820765756607312319740256874608352176888927057404679586778408059625497344118571300240764610680006439250472010916390971719817396596090710239357609378243968480293539638328568864765530494447227918062275244902192742693177917863274522873769360206722843659626505977334514237869687784707362536249979307796096512833318822743786701022450925958330539988161773714388184067868945185007426349594894184278891753398976451284141688963844759630996259829467951220661371425207729129532332888408895772670088413045056746438000154090207012199740541457493828914750263803629375854550384384471086190675868813790941636886554765858798533821200906532419571208205699008789005942748376696878837671423633665355043032880926526127862906921041552958706768662513003931039760111832007677186469058060395146287843348380165902652618187919950835751842774066449415729629970119347083693006061153113530487431646823156277047436060155365735193419898461247973770509634850848921694191457312374916768635260806024654031432255196633902650019795322447778568539181930633016294277727592936533727101877360935999873340848054660452360110521192659784077019097399670545124434337442256634076680438652980810513665325773376653446182276529300034698437456601106140338805400813144360885450335742906769119354541540622869376107811961039708060870899530576324360084380544542974246342587932237869079758581536931969735360650639009249925789486832617808922779541060625033696582237141168085887706226149407221114845137234172047804145450872615525611750580415196272043763797314324100438583429145975741126791268613537926142220358186442620892222704003266212591763851238918892413859378083337208415503856030040533753674843992153260528325857912476529161477949303433833150911853686245994575460755588632145254322133904009318227520289632327806885418090401364485074326471515260281741083884389893318918153211663527701322277650806282262100970145151299777568776327120737405745358081559861049663033975207187119960900938890241701759047461825754023327363118370837642630159263475550602086004680799831883887560312389963374467751166833663888633269548732784174203375551708385565239628220245356084814026436636346822435220427028925816443363463060620018501447734097243237450848527281133446458431200171332933293461446192579674251440689577946127849996085884081443486839249081966132869852711556371119720533635204820219654126004231134619632100770797621765510037151319726670130350135379326193386087004250721333740580673813966676607676336833515754938698136060150170453307618183702269278238955295065288202823882228743942097598533999928431767144111108611945545560769770077525154158398109145190753094003215819568964814920886310787513330350559793153209539733254960502933499677791077045806071086384160321619898410966936401614320983890529054154320918468149635058106015286461900105041392319783321998965796809005999644229781462982466854102600565313264788220959932874816037166153680285165571831944877887227841351742191171196133470714654399682206321965669635051090095226150714793167096655401647409993421543351084672981476037129788984127945155794477215336061662277439742529973046713181602252237469225407827433307728586941899543070920874375316967839147348477707077029494429945907476092938234773546664382053965207847248051082876296990698830571768259900999859686442346891291934025064120963744333775098102330529454596022016225096933355548900949525220404838767016399444272663778700721007329593060150874555611442886620566014180304317448855817155664241482609225770625585436556600327306019058843102032012725271391043223721531110468145415830670525849700076268724273891970795700268654922941643661111989978259589638302283892101218701084300935922058592624778036078819790246588947194253527608513433573350865774936691168685781626134629017941560236415782274923235208353297719715211582323355378037685190922523327285593651135900685682989397418438988099756324367455197377979327955317255600464124763561668145194906830270099453715514783855542949969301542339826328393028881973774448997453723757751999254665485825546873318427455120370642053477054501253210118806440957301499056562956181657483751550109805128437689818454520287476035190229937936499775887616745833133579136188895093180521463542838661263126605723866008152520484568340515377095647605637086620559161571123861286827194707383670473332492653078620611785046643376341396237494440339541115420466917338021237524226305985994310566398668400788800676656200854372060576648016346362196009657860055901881902306779223986433603813471779051140877069276062859766448088819731504297326002900986852950166716087120361256064551970742461617809092552706872335021006063556078881565108567957523736362348114052410360149502284600366808577009800407652671591653289116021179581867081310317949974543042734098309720436730623060943306561735042124420662578710687300420700009647194216583948059812144178802427452771350281054124247114917531763064917083671790330987880408643519632162367939591324410199825079746331163121641518919824139857872621018718690312956451139128687007231485178764758318433705007968278731358351359716988805862514950243537319889500350259943929012172591558719425363386924165040557874606627670823326324931107784684830160756484698578688298550754987357252706277858865114446076011713290232239580273990819133380886921062537096918356664211289775017597958808294883399111058628939394302772001319670882477910754406834225863108608430356388205902359633108568110867472607041560589276381962597102592900114293056114321798180161507817639942347898179127483250185495651807515315983264875562642777568874202488710689365616225631887177708561604081216832991044640523619140486084531463070468479006577699591393801655325225775131870346710546970616895483591818040363790002700264044537596129530597954062521888003529453200089301206341344476872555584206297983937373361095930422476693789814193454004381146751969572641391789153536711588844553957100788010743668708313645588552505572512740385412554930241847716133637125994827327972312666406910383110508996830806582651800421224412522317562893250540872086042824967384654994505591790084282328619790041114628908028024219375833926404336165778185654190873473902448637321137915904137552988230012089812832312964738425014747003460701084590156529623988471163968490259205229276637624915973089521773956710281690348609246148587132306165886607135036188523678433112515346995250467860186500472746873708223857153716789738999183024986839367055248419436442034344621856832923723006516790805664333051392973812242725497198943271266653665568629756737238976628724275041505666204975416762424041493573651015533535327391673997020651278323391262825209613135563849493671813973058358143978479589532986499676556518290087148010728893245212700134888621333828850047233599599021553792302499129333232928834038668391306121260200542103946699987995969409192780069663040674023643735412830905149772017554109055026011882434514606255088861062803058005222416616872576127818341503682314941441421038842326464829042264781973916468881503475875355638548555198698811811562610278447540864753643096434857704730018985604049965389454356871674558646157900907640742288097396624306804321729312198475522952946008814756063503554976326840312702623785535248181116430981893143045656254691753285824801111527814739355637082644382984421362525062158325369544855659989768028039995516629499025470813060357941640165297450824104249325543403843690226423745219299264213685239271699291516391250888975318271992045587986555934917846386482138890200793074349156353324202626245923859340765876107495796716132253292525078992228927472361181424947808645225653160487554100781245307521468853307017368698208010535298363419002091407465598921515537160145141132709225512448693108410750986422323286392701888261099834109212858597246398732459764645797894944958760961390067647258108920446286147438833252480596535834576703530397993793608668923056932795251383329067718832112688112689053022896494324417371021729932978782294384833578124207544781483052214266394415161358717996458312921718729632199295936060896103249352782662372660881674386732189740420132289082935230963164580041263776903633410937045377163265486499732904079669367449338987048686562386222736682570763250735416708924688525385932299815230689394349676658860751925551393306914110670381276017499558550419564196213754787800060176479490530940366491332194407872009348613417050338088392857954832339308462253825468767928094142180473582203208446613604667676795006044659943006098784078955878713197610620219419981715489200940326420103922421924979961838826394723098305316644958684491850390563619454929366252713307488062850307933631231866634473660453008233191641371658059342387566821047061492103590727093314560230581937877101624675591417818074214328158484776332314155288958806812212292187953037257193908935949015889689879215083383195617097839376598270804429792400391675759913550701662422893675278008487738060118333517215147685141445358681278468641079751410960961967152356111165954300127317372682441239419997493685052188378990474587588132321227566500196276739711240245481133551886676467020103056242244278533404587172238932805502019341131632809736898674615817958762610962406193355900949115775775690290852900446847326777591287657398085185323306275468985304876647748275468575260878529571026488824608086721668623171574235001056873799324319041065428787419866127081205050922963262951498263780785762338354036721895332005609468853699894582924529654585384636634466684866733778979008535626410763382398484074142798100364078308181481006522681556788028647001695829838301693062884352853332394247508061013128690202781629076635286736126872264164685160536143392971922293157320967804992065640150724633852631605859349481207386306639439414550836040886150054236613847210246900069180696646261880918752872242309925769570653930017836798753725604639688789691030601918568360865936290747874737816952807626256154745671579806801570775863282499389185818793380491736079990274250121132013799358419745694775037664336185942717098151994329202848958792299873651897627088814065127797223351180166987297736848767051908418876612870253710018375477364001682526206470325743250234968005500090737552741617689939853410617924283484221240897487604967965646863301812417887515864406562938505905023652992268366873236854693429433586805198954200966382667798695680502778903407023089538462014959425701319735668215673596541020015829361026900575144733266993947975042370289238105693101185004016802495601771754190940713084579145370001928772897607685840887487373156316368588875566803004546806845745418769659570087637959418145776711368670208644462279630259244349635796472572022395855170761482401165770026422790010436306669146185126427874566814337976602601684832252945845138151537057438018442354704593245910512397083450414326861136968468991690025037528440482229665937452346309655150846844281793866666080097934023540810019224654202339012314552434507591728871198249367035511496911838551501918034399094991271347934305300407324783445214808013985266434350182676584650779999713467364096418884584479085044967813411622377031815941901064016529715986037978808343805181552322547134485329822241599819318944225684273835686158760949315514195763470013115151565040323137977867754717725800808157274555880689310176806456350620497825034768328211642529949651147417167323331319129360490136602794376394870690773024662356545126056682527629071863533357456399850722153819315356150823123203435829283068160736936963909609418355041799634580974900191136042383605798935890879203455780009521817076084495295725779201980071320541483873545996999681755300017144266256073363161490213079062424467048770677346048920493528612421729921140084215164601990143715510637491926295435214530729226289150618372221799954495975928318844855679418932897955501855127230661355591707817832156999412903836264749100953462780608221618178450137311518812452440166453520165341039718923840744040896928172602351968587485724326056262539716211178666239761957164589299873264728919930938476518828363324802460161773508545452345384372957798497205920546352847850335919968371307422965519354870475189125132876627396405844411357728055239752294413587733482236928801077267137261783771349549266781092617517584161690050532664770011409691645677416091456496079603942448080014270060921803328870332171991259485663946592713087844823630426081207949519369830230995117985368758354536048431994609541626645884678228790647140747914830216001566238965565596175704155140273008303020915314963431774686408702893209419656849355133602973711384561656014733085874958868780924710166874121286024490723427484856724692932079128763432706624270545791026138971913486442824665230978658346464086260362206262243249137123253097824623865568210242099573440594638480391245389035551885831225553032367590753024001704112733937065219915314999937001265908638485851874120398415496612830650467040037075745701751059385968910218648467300386075372815688028711594275579908319663107370085240620566558661431306648692022362805371006405128673322890520482885699490655536452654747904266209307106549008748402731606467439677332848030207918640340069127177359053344674434535152985966180829153382656481041882062976921041684195528401873251308213072458654874259334458840232170678950464237414131978715624266047459026916693415012562728340067889952465609967078034765642544659971686915196460960394736103854019864013420965873174860768840739332330395612894779471993500844718020951453743284132195148626031588572251065507890355124938142079292150435127636355493648222016073565177073315328750903022885937986564885619708027354954355651247518780078917836054960977871611448170622502380810691987795043057118224537317712351017112273654668275149464788838621657845416917668842321047428081674131367745858865914231419437739342698855374287023573443942717663855874386917651366140007188323107438794122287355914697040289826656258058203291874391071556254307148140343342869354554468970509199650246212023687938804938423831387734678285814148151454749353528330142448886482103157647834825161855081587547605501588166020636995088123566143370740259878381210792439634405818655839138412031084363697044474814928954709627171490722912571335525678096379089097921818110885578793795168392034973887489919310304958186552168325373269600169815582934511985441825919945512460881825903653805686135951053553707436733712775886549338120639283205756820151246904278896921312569790524766129986840823330095155694200588947543473055967674107384554900610469133896823948297027299010697577704225151621332205345835627941572598152931260277984067847710215131284758993536019371818759750529327051868800117523281320665353249951643055992614962079089536983004464328128837491974974333688084553843710790568962595165741654807504620385885472394959808545413618506941884063886197018212831417707665710063683348575327440060267556488321342942064580476537859893001377022745763191224096086051072072749328525547208699096752655119267487455791270805514214885559301143787101767080195072140827010169080906251688956961954077251173524416075768355318557240506931573242172633430374261915448800982315997166274932541036638268118255388278822803051369254963874156208056098449790752414871366241252320929920667403971612081092333917108751260077543807116319562722352861639110761095385270226833378391491623687590660348804843694206652417599569530589240217819375329264257331264519033356524746437599029272376534286458402164122605611137998302443134531801716673557969775676729701670369889007643455385966957696373515145447375107183112484070856362184292345930045271589241662756090352836457299879704034525370420100196304620141446213407892389789587486906624369034250595196529512909748705460651621972330230740546560896278123212162205741058244442177145537131006355465720892281472562847663081436687123980036298742021002126211228030126701825138267294756014207616078348628314496952273053856763392864644062871620574190928587310609930919447650967571739810338254091479759397456455948945611709165173361171304574464240612725393426823265443036239755295797033355798581079555442428059514945071148262105039201290664550803946460605347721300268515795225549493688018147989986425866791130232468842224309359112182858658229040688729439261462331641878831375106086253704735532418753451956616904580391897324567198779116129723781033533535021737738832331916860504821744799902887777535808187426984864451607543726083825578842193150650809633861978343961299601400044324896954538411458000433140500694663859268609165712191649481623110839124485271764577142215366442712255559791802833025388098304240547897505663047424823032236974198564824136694079926505757633400063342029167989370514118573008008109816507320701676312437632816641603911883961981037788763892770138960317209588336830601189048792985609489034720182292196756220759537636958783249018717752894705751066488052135110676058940475127098989525249409030231864196137388069977990452633111112723764330290785297001676793753784719490293912246781787938570990511447294615765588203597498117928919355947138882191030524473985552686291446379194188229035375303868272541201697796760795299495064519255521341323953862575789765257914069193844192602232706039933368576117519555891203164078003638514827849296338362427230083624621546000916858256583209077537917714735918028069577680467052580161058899044298798356498704867352277141086266789663331656198115070393227829270232905376387714064896515373441818199032816587516294386976717462093814503517500425852303479383523739707272588888896146201524702055445918082143937670120252814547004965147023720826144428688174382638331435754867042959729033747431189321967594821322172007405605506709037088235717202449269568756969790913231927422103312476630332818744930986143145119894988521919363377320568762881284562422847156983737165922621444034982593636536316250294747082507675421626729832592374552191092963120190501075975359489441978079358042770931566215670432145957425696312079107783058774561899434108056568487375629929181706718102260092929438467868653359035239679040750449412217162071033642934986021101077088917954039599316764224664237133214672988931744016101850146606788710619962281684928935469699281582311828006527259224864949981776164346625749638322451529227915485439808814191226290637738081560606516348033790440383347223518183265432053374176907554090134814543551227720063762887974031710773259612645055228286917391391877294421252583515039439303896600701397910672916218155428225211136663960787906220322341823823736216998899097544452095941815577251244777211424332574616503462675222927283432108563167031534070825349096130267277525535724099586965182966839817256882402687866955019126900309758088671095062293586006785321129587597203080022049069573131047637189795103526568133953923429754307097205868198109724574584293546191906665920359178037913350034089778329354644631157264978233478272697956780148951229215396719165901667835116545256692991804992875031049663350960068928594827682225486224543829475429865438648296152786997516693097330622991105444562264213954353048527429901566193868097290742795204268252488624918694192953793644935349066800493289178537975550650005607987120646437345894800032724798720962533517652524136738590213031427958653507527945961714636884830671219645594785337842970217535098227679447906902815089610114549942098145211017617414227324133690463506941791876281717914225952160571391466736651377500109617289349574248162996069675390972220092399204156899031000162872181158077488474533503402510562296209377935969861381424912195630267905342510018930674387969873922250892167783883162437941815578241797557664531126235315726989403967371246899996693980710678596248261957797366072674972273505916369032230596896089212352530555368898040933864493921780353543867162562047271241779032889802835617912703620394611983113906461714167396620582943552121165669916106582067938062076111960755176121483371190734455288419386190907208744030749019402838266731483557940734682559356670881435520367083478111410295686721709697222687387591946653323810813519002136088931668221620102503713661166365346949697967865923498933254218807298746664721526003998975842369115242505437595547139521170792408405140227168444152437921479044238283287248365696362544458487500892972103969607384276687131127175436199259574283925107446198309350117905926275439851628983753290136890895582115130419684216000631042156239353123509997918436803463669315216190995356465856866177850387083783491590953046877164260814544107434088825981084950101227469570132532523515315165397842860731700582183366202534309401780768712812241946494394146831380033998375611280560719034722157604597608188329843210000595896079601109904140312994178051360054454103993488956754968065015151569149723672319659021689794637496827918555530908230047255486828424912806839257327884734497390706792323772550475903041872847698788549593383515290230439220370191768828655363697112088493210911179940606934630371920915301570639150315496360816696222985824572235484640546879551417167650206518328626575167138859933582295127247717551761489082648513004543488610442804425185455317140854207871849870257592776552459239089587252241710654251954583476880623527386984245363528103370597344848407088952194150614402807925257336641111564009683705363109813559044654928657167973431354666424377246944568080382318616174052321351998743197948634375087565561044236361354310897530650805788458080999811895590351823437045456649073679712926781852162814882681342322467930709867753449527973379751683186857803322813452488877457205940099810488498525970149514991477615398307734373715830383786128141178317290948887408720859499973309972924615380968135739874134668083121846014240483132135587326517073243210684787279069511072388970860860040528913336109065878197533330333491858097180863661143122589639045320967519949939240669533608235181995368315188598124217043919751839547635341173789306809395570952832076414568885913809334680097005199696221133862035259304761289054458405357080612876582129326441313752200936785367489116787645856330781890245588952927660926954584546980500061934329133911185304808399874754427265610719744410947105766970029745601420928156354211992764281080423455913757226193117738861186621263254603334218992573001321691580168860717419585418748667857646289156798236002464691775006141920893607283018956451438199767277498482825770684310066448556212196302312454305760313647059433334974847326529210700914555910297093052291112315077693714247845571072764922556143933123011155109970519039646065250140243382344793214898114996169806834380394718939407366353357823103714101386804946503262853102525540460721343391699913723970243399684434515156030723313008475929142962111062651395521413825491693929085786091323750462067681750414048273512827007884910313924923133709410077673225588476906447946927795700840692892265369408198500731658446286449265138694110884907944967645580844957296664904996933110652752471333445415954486674212053171418454280333995056377553846824593772642341920911524241618128058906043317816244557832848343274057963214244494843101966402591504956234797222948934868150185975076635522172491628112854205035587213033425510034978919566538214519509969982676012312645208434447208226132051866059835152830177925175648853560257601518041487445950487129513923844947242609095126448459443823092039183943377179507912547053654858012936199593838919758542493165407094627506449956484868654002345510154205994239882350872600073852282484295549951732944036657117655854441091491039683736701802862293042481902042748276342703264144010394522980389573494133475429018950505578956398847830062014215287324466378757206321121237914880187893746360516767965778353449043552594577862324532589360840117914821715660454408985231050711217752472486463939685171478181588769775024983717526548264328208395683962807951064411389386447862633169077108446824456567265601652766789310473634926443701069468070038876974994363011520807397384063188981565317267871455174828270780165238471127819448674276495379472389519156035303932446235755140753266652478578673604048010740652502615623257008960886139287674980687448388311051570518729542194794416793839001612612693365335196076421337457888451571091485828857871252861104983569050602072669725935121033268970371948806725927181220809732353235964334265873550469303503425931853533009792836163225792337174608253327406098216500746604110581443213925990628153443041104351681192904552555495583433083198248505247541386864234643924236933981743154447856760649231763681675310935483122682932872303026097694142173205352360241569116318069209281585153630358088434330200549858681603253093697617937327855273326848003323958150630564827860514873046154984141132360046651279168814315124099580987315398043756573321806474258432411345095683310161332903942666249344045029244155352621728881949383619519469328206557509648935322479258797888528048514326691572762790704728257986486903037891774468948478744395683443808499955480365533128979218247678381430488338513337211414784921910207843916626811263622996281225550723805397102308226338978858894267834552958952547041443297572845936641761972984420382750488740064695125740835416185552818409456552092633321929744944368836243022126918034326901087355596575247741602585139363676460738856371990172770334149501103445491133880173632703409065144890744137999137525250532512313533302754358593132986205066158022985258748246828449892033482477773734835564568294376680381255543055803704502575062514602170264088666989329685511106048269663574434261146919711015898112326755020287705290509226283499515446776592550437416175509017138506884687984055743545762713352391791883907494322442529469527379534183582551429758042828041064468558232193516964481411410834173843024681047045517151655837811833991411756438615376816302546538703277861403713602265566030305739693762310978514521245524699087885100445918196476945200307779605205088810974732886511546599714310308455367405452985162349375939945932883437986409093016694939349372080857373211252870560551567438186880541168722820388233005337668200666581510839040428551824020408322077208618548354798794717737369535267616801438825674248864770551814048702025453926349222680798174821393331900727708362657094093429001843215642486097320724093528823505889276987961276496871557861058958694899259934015469913401142649046409967410185888076605683142128054685345668239999063566377074804802394045363965173886915114379029584598460735423723076926171564422007511886436055699824950653897731687313843884362058182773293459278985322155056218596306317120143308601774994796587299480952405304327067159372000181853729859518682252292062042489296318061854171902896537132015164407856979888083997403771012516800497891614364887323074604337417921799102343805148000993261388204910272965925181096711402293684231230768878139556142492279457223631736552526347785205718877019598205926073797664379880252075703921096015237771122076916674164571160278486231667166778480142922245997676663439589177884505516389431108659205272852867588164416330073037482467481546427799585091924435298413842558235461140032320900085215262922580118982339336414557477569568269087422216588692536244087043930023201834259962810851285599316224001999699887131442225170283553525892343333077118682447287180332696568175762320277813683177936747462852072996126312446962971999432304478956411145643950051149808412556904866651375832931248175839756230452467768005775538297533388955860085531814895378694731945726161275772177873739745305072947937327533274631249635475401426421563858809138935870056062086145997728488501161899735989355357015995747554597972102587382001498983461442760950570729610677955188939423785649573790906021661241213774417691835961033684910379806723060909114454641757597403880404927648459615804695914800990441092348713014823717859514797251566493466331083240689196444249995472891873310875163131627649796152520220360926554868117628069364874010605143960929054026732584831276837460706472714147513274663082635879737950464859154574108843323851931067700835810353424765682135940268268200610483925711884659072265807467548959046497025743243247842890399244875533791948596335782022870630743161765167446756143380713343825716088892508600675809015957626117208486619529977668042912885880582049530173542827299845836866376163556567164197683872299689178001362437226965642760581408328597041342268486344415685519005240007219282444198689802458607705403789025323570185241642059426959049886773335915244695169497241357119277223150870437293816459009587605146854288372371875206117082048114367558201154820895875641838844012074865337288089167533022641820117742773502621554195105337450776376905547452978731281115722216346870913095522482730560131585824191981497178779174719516089671019259018729068593907569814680728977117600008198558977709428727409350112202228338462967347497189270977918962460000455661504249474697778872416454980599998265290563662813180139605779642566606814930479628617811759426999977606762930787040846963967668190560356761225283018324957189443331052103607919246291023760118399525697256662490711590909005442940199204615928343907094457408145641307799837500439935913747789715735307939233320776068863464760109415517345957964044682083257372794728463896513002005531391294794340174459202282364463908820624638938764311100145055208124120803423060874292161733624384933204413443743859702368586112778287361491787589600912158693873041374035549542461767770519864687721852390010679145373096133696025426027680301619501368340283616477407998100039714328047137223161156727958856984030501015042161360003624099986267559589743005929786096689394716140071594295244517055729062720945797661906444429597429844330432127381579421378869534726274289484519048107393640572281525045271769867735574558490542326205803653822438008180936910445747428420443246803037354365683400437721803023547240233634005955936574073469543722048035453178405735401924435471601536889447594082131641798350010625189437264241890178744565456907913153910862026549945813981405616133371085313890285897721470482080617056400192123407980560747121852647669588637985555647851619405631968781733297257222004358305851273663587840720797456926639714477431015577010480132721470089552049072047816875811368435849034368241461097913897213527729796809163481704025819007743465473468765028061801830869611833550551639241369539381645337692494393404994890448701402664784776147500372858918480366779117204467688405451424404404341682530816134060127787591989496111186392415157379291297144655615533573273043015730611639032804458777412535640935769805906609310435509088966856809756670321116163148877002444617957563443866678251263755785535470322783432218121582387144866478243200473927362907617766530633314995674407496284058321275140974716223948582993008111278530621639759985033879890728633271039026202802483859029883118502612500491457422148429343154275821612253481772465500405183074733849858036755273778023201948337416546573757085958280618201290533843054945956494112074727035373964118112343634092872410183687553764372147151169971526597186947366837741359489547584121769417147031330174907124846528439607258384117245582008045087334705252316628581311352728383267695748708485249226719083205643441635850268911739733775840093186170290695642801222974601117656907052232321129682453212389237840296175057114018954619277700485981100432140360941515358971397420840333252338078015715876575051312918415669712812727780412919331183253733349130066483800244847311332016838377813015458722930831103636125678104476212501835682282812749042399378871259220529852798754597596458640683445561292143738811645152654415679548930203750807381776762933137152404553128047855141344493500567929013561270677925403764325775376856405992368611730169474498900412030434448554567143190481300392098924675716054814413276041163174402012443748036849457837692553178459879641423889514090357968286118495473350192971438986266148279975329002100177961601652852519028860530481260937853172069380558578582758211171461342204225415851382878820127634945297793702228533389759137854833952938668060731003332810995790496597617934320848112605860323220796563442819383070094136643206692097398431763341915400838424236389199249526453976100723363438865695818555742171838608489247364684084598283422881037994242252386420546073876404358420851596434567884501694891211074284216449381734994075857117250925738388829321270507341769738915891657848595350506662316244203146597535474866189879897533851669662250031110332331410940945833236618412553457042554123697098795296366290460920415309254932257516622983341435690480827698853488887163462579315846019435729913653965405866912214559076141090974812799601616337684271119617975571816886175519950762616766041991838779629804948405408939355248207652291825852691171193312808803145644444898581037863514190723885466805544476417444710396967418019918641162440231565527888264295114097466110783678764027445710946889777479460097983255034813738105632754039524923168634755843153170672375812467201657443898532497908562982930019541608937032109551585215646666926293079676043118573491511622483476616169508055868862713217719127326242668123361437061857312936098835743919563337806279754996730028717640317865930694107783536332207384583676539311923385104394421019409405828890221824670992263267464723854339190475771604239694848285894694739147123824393649867674750922796269066807121733697631126541725652456639456662440314189893299102010521304306002134472924740796910210350896859741142557430705134388128266003591146100280506644679303586436411423395771252477190465551011785887860881815087570428771228752008452614761504794498559976336424965552158945899317292754942531472570084121431151586132589918072043287436825643367065002816027825060806162864836217850233471326688353595433228313706759548834881244140279033230833026723910364971393385222587301851520256317574623513551687219765929082708895693699474319210333299123638773034237688367343371892890257829695228966617645559793017050030846783507851288669838933217839810489097754442733148584894531872626535897953533068337375756150372403235374783536619557762059342511993821769732724560038186361388315331638939691436388694858345798530782545094409577396053615491169080539708392013506236191310395559251274434804153904002508476670917276513331764606543996865933144126897060407807288803875873971278678805805089702243154638849419701980561888374966356511441180000579059208003300862890097813383443358649334345736182088854461262973457109744563875018665086520251849724802327085284071850175596526490427144687303161094101628316107719469290617490900782329174902616552727426224588049357218205343461175145269004051222637840404331728125597554216970628568394747322060287986790920792102664673980140533066620698264589511525434207871805560812034478415567456411650104906412786247100650630072014674427717510501918360276267581851441406033409034873099078288413860678520349185383363064163639664701969801183157991620898954276192425043722997071581029231335474578381956284693582732967528744324260682862839620647337966335079585016232485661140433285892703803295478613498830079709180518798368935698497904958625957044684830429701712362886540607780187195748302614635316685231980552713344243389436733342873222153757044684884662910943801178902543322255631468956535469004495814101411308892521608584784745045408150572309549505220402066122665817737098019536215553657699786894735157303454205072764782451716749520515012194839779323214715599604406253880624817693593126321810830910448977052126369350850104653344626603215469859196937318964048949278440376230857644275490575674201271726033921449926629034826606119282396926538524701079784046381320174189389724791003146421752259200200586884193794401933063489420202248909552005095607531891798810642163681148754195956789592763098229578652037129162328945976666129382513078888800595041728560945207464493320137818770733983532731273252367716001212347983769953799038130591697480447019451558846847018251788674698985652340506699369057377141986257211447503749219550836834562889212995095318972848170517024813087133452583042931944639565031778848514916087645542860145795498139502687740452243824711174103986560666277107999644315082361029727572367998081631933144717126613670699271874128357540399712316016743375744133873239448491765830378622072101711748475110102184447600343616578378066493405875380523134128382013071012457972960260840354601162030398343039713743511693574046111906938763785598974631483004564254231637741177383580674516189667447662196623235298887985202287345417954775714109906989623217858912573566783341278634582337702552492826692842502209594429974725513032796491374384377829447956542814177401165723502878210479903541445514602066216575163459967243211931803178530740900642631451021734207640398612163479992051560842656539905770440605255518651590169285335388050225333278776452012845393070597279392025730510810541402883368465390404792145199331498683680203769925012036287618284653121560811673871046362356647067204151956066276289764839367906303914858692469332861558524520827577234806943449109965266370301728628132247115750176361498045197835010027511983159928489635599481065426622177048830327752866303615944179423225297863154023159070246818552606001250116023810508263440441408782767817675911936884416948619604763891531972010818098403852357174483376373946730464443492822250977464023311594034333428539475569676892308437537220672217489898744523732200394171909954872972886662103719814979662115074538791115427877764237097240259299423614732483275236872583691436061845139611238948416197254701588344993383784455417981604663046108287977890896826044360214422521367255127425065488508431947597543235537115092487002984209463626192630210893211302372498737675740818535926348021428894850344095399219919982472653526876610590862253659086796581558634970557679061070360754153443253479672655695867853743372638504986296756709760833730032091963067667965907841458591176148804200256041250686330549131732074862517411180040251215645760274048802863537002402791234084634317570397731974050678272834912174787313347261649766199121874796441060035751238982565004427834396482538088681500495975194087894034320665707719055714062624907847696898902665315602933357257025554727581964244466463792820523613398142183591387968630036190950135872354578343618042391823801108228635532651015508640334109894951088791798919283510899737673967855260924167781826672167267650871431017745770581720517211489688364775124642522537635011081033228561524933222515173886145791196308440743990440688601984349663009926626382377048788091882456269582828191410227654156561669660124409835388202594941454300128914295272027152883367773161072202882927570953910449782941270330007182395273771370929185273444996224822084516994561718008286819482359338094003677021361509807976352726791816294986929293890562431964786717071925829257722575416450699707509884798553504042437221460257041269552710776848128389764480536413216060256876426463617352214586466006519261842315892857027829616324873664247143296147969962595321785119870190425466600174457679883863409930294656204485216850962500888654903676291841679499499616253004635426937621757946591364689066263211078037618799287411272849748010942320166157997704545443448059115712795759964288858721969611020110488898228443792619892361390857780242897664111322016985573991379268166873523410669838355187354327577017576274815082277737385657639249383311139342998249091486000425240769475376905568829882742117304631969295095629203521295891578897327657764228050002618470937490084967240699183492835926776220379118838657240069255535909134430764890746446870127036961226355037901255939590822142606087419372612578712812809717834051172711942724501961431813341699156800850717118327639962681727228021524664766003026448048368006851652056585820498517699312304125882364011257639012895066120589553747644876297538027644595824496029108099419742562450429795988869472297448600016557871412276074810019420955617357473369016052932726043989761171769357618362224819097145654808326896653246432812286244477510496569384872222492865872757894982889773271020207400833105227838941934415738927038069603974808862111992690000028043644793773323211804458995768144772143905536386953712838339310458651854000254599824949978674299494874813507007274927698781743242390690812037632419992842523276186699009258168758771315511107055710327619559431184308935368059998208027510988478064964779698878680939722899753291567499726313170515792478985088442655463053199893970636756094554236237642025136917301096775054919728274551176127452635739613201610667441301566140873298426164388075223582630493413864020415872276647249468690868298484133773351731489072676589790827781111205197342130236840788678043297408022944362057651473278273346803361465011906658643766926621585607893559001722275606564539701581369015584177345838860067474023659063290495872678306639468012602125771961963511041218378057746193775593922822415030572708619173802298106131454022364779854565944601754877972838740818628231763520239486440658654658368994050691285440152785373726201933989528278618074975434090387483144093966915760610760040452364633815607758855036923067501083619916144467643632939002059141251572641912836700212973605883532969920155987721595805178598937945202914511838767678678935629217560474759987207460859722063732586317542973149609056087741565733428692953167456222670259490275088372064954849946356505772830333507474118642466341755214188771125440185712668979818575558030808719264863325615521644345788176075218694220933953905277866323203254632018933159625172271121083770673828205526399644530924548760810436923227667598751178340212042712607943408426165557302876034971331371125332696169579104107012678017259336175657067541269294687273716285296175679601569033997430220471616893820009401787193066773304567043795968567601146508351017286455944237251034833364734799360147553129024533698817766213843755819588721357679055255819723361515346090081334096128424582729501037403616335789433928663560598012643684070731659653448154051403794749665274066079906386217180948768693820928112157036295476131211130839777527103719242030592336617076058735222477212393961550077005606904774467516680657783436729050264274956884518306532969129238765778631497504695715952306459978418300119157352729673115240903601658804012372990610729323789238864494334723382874410447730240633745230834774193856949871702802334178619391628104600225391424296312215049068971053168578436938831738573601343520197276191201112096620367316023578518687804820978009038810192900590780483667414627982845950821278430480443905277004695792348914919907541759788884640939791849795509971692853679798575378395920473712708342819860277299558067709682942494082044709873988363898419219505123441112738754570330389802474841788853182150876424545860153232658722555492363662930424709910158364886020414494063918236524421220525606168677300800363152082680781878577033173099456848799496912099333678884759071125584744624864773500668039054992512940804251499130398094221513280350023355664553573507610800856118994173639299766542441604696810026488283985145839555948206495636568418828635682439388407851714701259715596555265088639753051170321999484106176104296077781701227550113187274558638228392366378677596720637119889128715435840871079719060901814642609110188472045485387765198199198499177760030508001232484391636336395372041030892426072534129208848122235317888586027617108738801432574471046316845970035342115495946855399970542715282266542237899816477523881378547717045708315232864458108139481254118148003809228995889370232586902778871657542911375784209871663543473782858799052487810240913089326193564448829654186756544884729056941418321693164765621929664133954863670489954928264738000138851855285911217581787371393050171345443800765794727614514619135972815679694678063742260977771879976168051144964127758777217715777716800341799454483589570439460542528685823318035044327990612133087849396158138399100565386249627822676132685638239655339180813877179744976775884308963679641540745598550884937949235104165851044406691614924543481197064302140347726182624129848235098227301644236427657437744521778182095899160711148047844125118900943667898263294439667492831834389857884714382531890589894209095451793432611405499386411095401637150353795802648744123089810256269197558879430757059577589150644360428358939861417574337808689193787348939452064619080320052385583132455410229867492743215968419979296971052247930338892812061555219189421030640928701285643282987896956455566050873227773533477576421217754609597434142466719634135813189833355429095175233116148863486632146021594994617566941201476090292772029109557914257283848445070972645658119370731593347205923831552516149970168542434430684004223926958233092790157830140284775288100531971291487104291297857951052928563826311461607951751606863923118970468229287985931266229187888882725723981168817180841495652127900345139941354593240786517331827776370167143911769419742449333638639459426691691791880165537458045923246847389148844034117993908865537325132472529566685405838810222173804371224343853403190383227381300715443669852605693263398676658731796793267031873432318095991395460880715671768483695550619094740859076530371441858728124038423948737345938599516056140737485403348021489712867580320728018737099967202341537378343302382043358451734398333140861218491430300500879817405240576539411212476189575654211902273738096142414414766360180303782447015739652360931618855482077031037714355472571612300361842194665254204179809534260249018395824954887390777964099926484610149883036999103986926404561294095263902826007573249768024447570490019994876904021248728555378014944271692917713037572827650411313087673402694274767154030591607290567841652043315100973592162591474948892777493750531285867966353326967091282101258702666257782352552801959263547777753961788239474435900698696119100505467154520911914100194198491607225306937384098077454962652944539118912081878184839793527497326176154921050028403113362094767198958874042119893145466604953191987424109391827419042272071872545678828788504031113077872141386417299197347092219400556120213307078746668173920234138928085126868813683695049308830223032562324588942119381004307621962862685105660266183211358947883734663570343535523327882863323764295620588039062994775373520065426550860466872558994942564254338610967942869858230280902637534605717115853732432906881276917625596390266277535038212717027925476568075030507863538460827308228171051226725647301507079330760326540557068260574813551305205217622213372283692612658263697414189192933459702011470498970252495950956161905056646693249138838000544915659489667160446598028447537042548271150240104295497587490851205639351832523981253107758158509310093291403282953252179970307746880312399222104446921198297389749725850056289128055652616848712790132111977261393865429087309741056286855161122138678054622111400004524302751779455371505945615301466303114964841937131432888503189185237993282783083042623565994510576500995408686654094168487570678974896272867298814403337023140008808295858528819686570860497576142262154543017430614315187485688960789136845183067543212017600657606142313520474448644642944601454570304713295852864345592177417385340921520035374265929809652268163131820588060421097191432024809799747734382595204380458154883972164832793608001789593173619590258843765765698118034547979213644481005865259335105229157960237792009339975425531410582363261339442758241117097683994320597949814803686874224871391127015673333112880032974029748430736116669197604288355074979272912111233590268792373214272524685109176764386870321314573405206314656678295068076405808153744624965222488238213526343045150792285868302172196380743849579441917239828744151834939567739981286672873089428172312035291030181455308284763714747981355432644171601031293904781711560000945766236859682582776305143930515030229730170452071603765098647551164621520576525407615597682828665087146358765781965600529988872854436821052636703406594696427115290840084560609947143374989237012697459618852406688243999940756343510281511688623640470336153553934167052971587510637393648592521218905080709101995622607629255991169322745282841839998231211741631026376470472595222066571870745675395313759294182113742220556564274029769010032124591427867639435302488558473352936780225525333852300369039126116671433865682892918207197127387524487641097514327896011772490451007590672560607325051324563749421729679119295299064881136424966073545380704041622149977695717540886420916173227314167913262299692078090643078106627866568468239973764826106937574540363011562273630820004834110144393046823434654601718951623692046312504534875109351860148354261914562597888665363226697478742207692407510415759826735121436683966739546809734105284310468409936818096882106577504672038249572799783497292974614275939896869719113583666396273239388567140799000395897289436795751580152132108049550427909228459837972109835246792751524942972813984300991414237789486144572090812649194607308963262559499729405534649511428341405503190251624387175700774416719522405216184699287106522580342632903767151310271887812135886260820193328256311537073742558462128945800997215176162180422629605013804868505064928369203688310067830729187333122219260938207165396743988945751861419898376039693759044167388789296645425565598811878129561824963169795561283669464644832737360384497611206468620609202204441155021014606867090666307069138230084320292080246419034260273728435572651054622195079727935771647134576542833026756350195527599586270842312810354536124471538610089382964189069848666884552180404335960893170518337534780107286672278396071533527397330594522647777579103871390560665701464890687271161750820360431850069739909988984897238620771572458133516453951180157122065724135730345806654146402154265300380516873004101869954261981670117947595494325328286796044588494648256524381222260082456294425926335619086318174437395650337530353989558699833079649475860910160947791354603315557044310360437693426357392187322949597442992152087780940254689186379549972564534454504123219286036622632877048820578547294162744352130726267634803430615239380993327074116476953822731374398790526541488785989776646136151643753290550976545493012395508800646296210614359867423170388737892734974033179401960466943360986610545412736711276401594695663947341232662255447717242430255210884065007608105272910113898367485477890544321984885212234368031261207645557954758917622282596442463353362423690632754190770199768172508622171713309987152354452934877425827834591619480175657002762423999492226973518051851535441885535678370185534137391143561301492437143043141696293308663008680362807476301926679525866112474580348571769531988055011070881952378597223298101317299959905941384684746553456692476179956826537184251183777104457797977873948824769869869814272857133894931354809329478483753783117082170395734748665442933588340430215564100509310513653893841510604589239385199712137090548109780053964654475150718907805065098496753159584734476324972240747073668927835839248307204491627589100680866333175315195638077097393729059050282446571615787530654116509147056635981558699256999053578474157297037607327140773817734016875109389800553633036114764868781569157242458456263501934041021447132571127576865592079697894618814233600879303966546669356080093926857458411148274446056507226267620868401051292051320126491673641238500346062243410961817447007378882922847206715865748648927725721165853306237548799551749401754627389572851986661566860529791984447080250339237702104021031717888316711673765505451026976604124421059329531595579049183319550039510914951201854899437875793910634021343226854502828795372466005466733541553421615130491393309794178204055523969094700708972027881372455162852751250917169706164851677952367336143654437590953956338438129499135741420296116184240225719051480627468768166856654900859176083932693113516432122315862900969078070417382237704485918882136021823827689660220907944654733498458572242643518959519517116973163935864766195066791381091124837664838949959138211272838017684064432399250774908092422838701676156444074804494385970241211359298096219044390279331349942134606987489135986472848313908380404810237257406638846604696407417140870507167578646530339715040242166749675557101888543402513949403277731881736030972664574059284983534529080291963225902309554021325834690983213816319609220457443771545648420893305166191641393360969157303196606347222020026193498136281473764536589603999947473040684255543675063652108888751800204312264313094404341326342753156783368404735046280968486272711818469784129168812334129475290476094044372479730686033673604364231355798897785914496386487979015884321507725456242125140936575041267449590181328539732486638995630608120601397842338710230058645781984832322777045443371961134829189776571756705093072466747144905737923707605218933002219689985992475061621179275267928732575342886261333370415366722983975449780184271532195904435926060206390587007765413681903135579740486467941305462450963190596139005248637322554533119273906173401704745905426179726113558743669504460219878534824485754106273643570103611512094748368358901497825179518656918778004680642206783512743424416342450245621254779523723356650208663152313400453395762602052517996378648623144819933204252239583580399487725480737711383280960567259775451840705596632285202281855698666412943097036855115747300257899987323329053480742204156319127726320517081342980377174967148178865675482190523698126765174812764715572990829179872912814161310470727677369115656322131702633513123691351165638573925123880278268353141878783445265990658012063505342365946471750791139243465444297768736438511405394309452946733614938979418181430011009007611689531578109399768534588672114343564663716990644675940046461844607704097133674819484077715444240025324508947000500323850779200278047477537111455415263196987965333890214571129732104889798350308496683302179446923771724064185702931240744453194869159112241105113063670629818131134545109870691774349676120560551117059829509694280107371116447549428624552684207703432296662228734906780468988123454534101267007799472752495093157572891180358963553994663057954308812253764572180549066501368707470796901046913806764864484072920058869201470736937111579041651461669874208811388970870019101799983510767131019171029903743108436345958983019125457004454140442014013397061462712027868926336618253696498185916778317933197979111855443892493806955800198460794347056063888803840948006248477905543780867904308325399560483293632402587707407549265118036303400902126285067337310112397403376087002405562085126661655265272661195751526020180425439713767547556762905854761406669076549323776163683621608922928007919345726917373239436668844877302576021872283301251702523945637491775184455392263866590820351069259446934584826116390389212741502112900624151381117864039758676982454217959880468106818800247051213602573725901764469403482807151844618694502932711110663896371259960173154207601081578982573204217451191773321778776716242103268561303681395945354875750089464101562435551079587226532097519110032566055138428951521654017171467080973322540263192909054277612005652401958166249149390952423104105706823478329348212761108362631763211032064249063742922736668237720213839408081847372225266805188613021599313526783127544273831783123682737275434481578802114176353285244001513186042881798201822106265037839716874215094754298897063346677857646255016117107434924165218444035226097802054684506740719748996710392256033637603659949408779288769130804075409625967234404329458570524883212069196571837989124494208724382953652737940276421686212493637210431858980889283884845578924336814746797060083325319806952040349391254648937074676661506000247354664996072701045603226712403723414060193537332435855518686874014076795390459788923361065471637535909905616126037533021269989096322219712046411604083645653962049643667579973101624739067126923395681106369342675022242880760472778218764266802542428400939777590195135885029539171278626960276152165601184906350698397209423382307578951816424745032397362653985728375872523289306610078302210086875687224488445885291522057430360460477065000584579431419861270177895161198737470033389500013913802030215114004522672634886070282227662330584281794068974447481381841364978380889667512639422704909834477565414690368515919428169484530799082211727988199584691554112588958847242206812086180468194844935379687371542520829658475396920876419141028405682456200856939113854624390775896616935299599617275213503584458398394677983218236690324456995415022544133341184063964152591441828815760214474961005668418472963006115384261933624767133701814284028762218787500181360778098549978455708593805422076982049505862023642765430354334581020516559404546371732577092231990183448983944848344040497956267898119621342549970362164317919337327321957656311767312769747789867238187585191219242671587028909461671123676488407575380424624991614844689181341198890587857498391317994552889827741595114330988799857769697032166443847516998970854012851542099760294836621570926748320419685363064358698750114946498549060735417566886248760035513263020907066594103197967495234866578481965489710209470423573896487786230918296034796990555649406976087778798316340492291194501839358091611495573093216434050707450669543650894379409696488011454118791807440542022630201599268346090318317884458900665058788813466331659758867513077156264399540242070781930500937723308424288769091440326069255033015453088049437275469103891043091678840359732465137150107865817742943250383693311443001441857477422449953325816370686997105291832402873110933427805583692080701182249752213228499202437702788638016961521995000372989041822258894067079029919061641960121098257428579873927647348735613976567303531144334321271956455007285312132846232410953673630548689641896530789763831896041631885360568216219951324852915842625092835629381900470791484924319187771477062357369902300119256801700451477106193180642861140463491488237864220453578013499340296495766481659440766883126880807734315095382884345654342037199737779767403693310202982535716653486784849040036598753281316145623437139075714680290393216515376693267824463393984651969129974551827248809867174295845138947938051032984770407381380124178986230328993347516098643692193741700575054365314910229608477736574650015814188571909242368606697871399091712846451542525752566454188629113316429275404492031611475635663110109186296995427380657742975018512449231621321088427088369953065196583142579944771295576196234541787681291972540898056807904087927959741869998573492689643686524418428586590355974788551077285282451456561410698950244163144272725855356338096462411822974482849571065029209547264337524194866770692482356213421141571108884871671070062913888562217528457288124275380157986890253549995343187845456875925491141062560523358210431177435798383670087478621968172080491513735786562950257405251092224141379000642613606344908661327090230540525422123730714371674939666969519774267848361387015905597593529928173089591165266420661867783579409856208626555989137940265207365214015612657262938782358775927154639736852930910662343420599004741448815464043471213017361713570460305795685178905917631091679276971605165560949143109193723566211584580816162884857472000522573456084125857017670453250875311880168167976878547352978030617472391373456422179225503678446639428927885427963891301413849473240921346620924449124874282617082984740026642264637888802446591214337497414430709216293231225685498796959550705682991121649269664068848534946615275061878906875307682867863073258622536937283849415261033974647036216365570824671198283102979814690056476592620491005624012420961741982824387479986282489115413959981903949938470643399632025835827595115407964713044904059242260984323928126053111015861812112951428181145855064045437962431071808866866353716359900033470273447519831814836508888223288706885599885322851251983066073140558880425230257908545137021662266498070448947981873604469316347862368323866030884371045856761625625031864727670930523528215118455567948527492108853019032540239732728825830358755382911172315443456620663812135377534408554852409293724065243371925871181127327384786986080418094893525825564686246625412525443539790835959896480262846845947704323758784762241959118603966174872237189000488883552887774308549778673830930237108156053865818292657459027047082537945004941441202093031327242463035744303992582166266521928367933447747904436990768245974260246291825137855279101341524330831500146069987352958964020692265028817795835550360438082747236595935014006450656801854040887589419740519609261153571649747199897864582261569262970907816953784789544975197672915881013146307270649439411344508054907035025860334455411361875586240276288921409503739688627015897059846253878218024046104024167750825177110638443313716174367913455846759545953621514017501004539940546968890830226231783635669603760403072559977653368731495363070659590956571409860560894973664603216873316167323022822566879320521337663887028763508826774068474732395384931250355906634732564966542808497660242415075344810110027558686763200421772619235417804174737917366457848041479698498782015833194571657336300470065901565730720733359335958031265559781964270301738702119940764984068854774566856344469783488973693904948926774397611722446375821246450705818935059571398302278966492896156228324388474579023463992985255710527570692716930394395031944585624634567744368741838116018101236158189682128738002488816622632775441648213407028245382414349971857940619444966013229781770597934516828860708506748648748334732334128162292903439213017808202778729375496077168754276941970058502606675108538027389098698413076472477796170004747567352569139326109984847899466438162648978591060975337162828225884294906402397384420613447645747842732765232440732350463022474612588870775101888243693854430489952480851081291058125557632974644731162614528170811605242140182721249570900484890382127105538368197158250827980454102966804872166635941250399874055940637562085608217682865080492641906780349263209981239823058010899815075355522758022021723390290243427777239821292443869481842413842673175699660444407221902551650615404932044136321610486276905142705641905036722642687351812837321940102430006322060506087281769549093420845559520081358663675607826912919353661590016445336643568188079805520505743999697529695205732670797340284021848334395255966670777625477596370764271551304327307964787836933555383525576104123995972098262200206238432561584909363332918478474135288252997413873040185134587884059448957614681338498589627189479376387298365996161967988723155200342837639902210496603478208087362570241483528556579189659980839052450501248053811627154807540394032264412284938112634996448918905702969496435668342903659718749149734010752090183558719236573794728128188960120943449357518175320430599020773685962810244342101358130185500753012463367671112521020717511305037533144400124708526849457519153084855132423576522446336977843689206758591459648841009131529056522800041668500094386764135162084470845164354707246503368194912192744667125335069533730139497244690923929034487573789579546138269288110405615490289071573271718977376985545890834365533817369151082934841854951683460290359288148403867520249007094401278650451630186004795622845652921986008568035501341919770291772854087170493996003374790377482120973759728561488762644188788032645540945101969144379856523337852089601627613696862976717361750342887494184585539081572916236995000762139721387947995221870278722705840175931509561413968330702404245054537216947787126966268518155309366654447314248311517840482946115162406552043352173560119504022717984912329186266234801643963346984558329254989269031599814046708485830902972695970592165154894101636384742464864215458614957806969171454464440239753624845403934466941639083258869974384821239716272572575988030476360671488909990973858618568868630540169183759206894554891866317709574491032684676280188754354635913689290114380183861862530557588455050626159364142232892978848919179979230126235381492385765795901837928090965554211931242384628757757433290350662980879271473434858294463141865726043786945972289407385483670278100712155156008227771794062973781006567333006992609481265273012063693168773973661888668817307181575450745818882053007629696628844707685354789612729116939861606505735412658762569589759817417320997495884382465236835844817531228439301369416061556392694558356136528846049422266625788518668846114543624927936962840701566962400990480386627459022522601424932353565065106178943181575887556703720902751558141703160534481289201997434220504253996701957650318787310554723087177435138498111427167620502113109101199564904788856161890490877394941068323592598926199650784444022530183102572391384405016518802499307732221421670184199860466588005788967636983962306462853293550712653413236150779984382527337871980897007542557308043777741300297548998253817984667476696019461643921484793649485668242182899764146501854137675267051178942925311133492684405981689482569237134703059147909899263348628482661954652374785758025159512426841802018119928567283691001457724455532420641726966052719383004170191429359267333013822950548933819389614178486137058048706917728752001267967338871059966357916847425845586870207092044081470342401161249193549096765223605339821160647062627377339390413924565756327451190240454337364779291085025263776768743045921218571656868715753643294552262597889997855764190074432557745603866379033002999047312137389799900874173402066910281522776196320115537055338336260533778829059370449471283834686258749704031680742647795080602914297438229665859964692028674212413176547190917999492467825426399039068711914354683726101628258815349128909942606443882167959077885193384257150053080559475663229415487574279445779521063241544965101452036711774287628580683535794696746832668861070779195870677521676634493550961684988661742825048656413368785868660859939667376983978115198792785292748127083805677010100535682647291849190725121411765375516289935843515812169690513224323427322708780631713264173296046608750632306757476799325551420547868779750823879105428503503145103932035050348305025114402070882228455252222009522972949052541730387498765994202998003336616100023468293817498781390033752986082169326228008197001129305750280904237491274850012293637236816922945544206198321145761753960922417858385929999904349907245109546403739634970729371969863283816877208596714353777886695046851766178353011824821095789842997184189862082684837956946153441776494691245297894454502005724229549704794362540728231315737408961298548178640282598760069221949957840157618304898232289829374414018421735102450615101374336333106116577116401077254724254899445013765037653418822651925867684815483111782837875388200710995612381506422793962522272700603638562633428840959671606347341049600046180013122561612804874635291793065479829030595019986626621856461912183307086163123516411292480545408783779421351982284640934593773202565996367005974300110002522135628052339166000715148613771372349846477542494862530200361898276315084618307614112136615302606394598825183551931888748557219456723831930849852271792708931138463392578345909139861660077452851458945943512562083354703912648961166795241401220500579359896221496830092691758388994558931983879095004508227099882815654810167109263362700681892166079565290151268152735156442359607530446514817063672068313292359190686440575326959058135997262717078463850530895830709979839738767265098136687555393999150379231326364102106143453581444773319578500268701114923866152867852980453938545383861543253530458475384435895126564255492509499693772865257772007073955865906504486209234337283968480525902936942473709586539815168262799973855101671919027782153335872519851692746812591661394040299470155441996449534621684654571764076438983976032327147673190917646509619914229824574464921206148901847314786269538237774022175114632079820190544978869813988232138387189810649665625590346147098179324613890887849538647376257358679773590400679982401952172717641540348576095383096884443603456173408301954088107583929449364875114533002247475842065390113103729857329853689522917576920244806837788382382568026399226950322056466345646111455662545591254242307280622282374229840248118884309321083861292763438155585877150459254384996892527210371533851658270497051349838853664037485210121241949940251963725434433496330339058163357441485314189227732578843592774831380469219998008644539910024063228921247576306181456748882122825163825282069617884515088248514908918475450894063253021574487348475193207694918651434135955089017245367224768272777883100243102964267241450782895742348904464448118865598360059845478519993214906350993307780824366984057840419608886829745017751037224466578945908564874396649342234480905042657575791700532806846060227014067318695717525617424703859372461777427171769318655400418229245997530031458014395857623734849932415965615946115065244918958559590300429392230082019178114464149841949213231882726536914619452365571749790750184096294566632010290121385699358377187411198235888546377586622093744433589994193189619930313817146787460194227121855847763264335555102847547944249735062944310533291970141210842077629881582440025023938309313211685880799947603814232706425185988357494919657745686299515356005833126333667433613257921344741653620764067425892846716837090076948046160244954317600655454460761990792007990186856665813892447626152620806127045941046809941926771991618253930370290675265124066776660068858141096997643594741823452749253207303278563106280056475143295127014238333279020570900552949084243765169720436427096521482215800370558686989061191898793377915628725653155922509577019025845800171206296895953941690486908312038777988728110274334041695449495354951366967001577669651948778022872676600566999491541469461862395615289576845700886012187745505801869087709176515904571719446243177733401680173778969407182392320869625369930789124365744086852419294014875698445931639779250615054253099013255240467312697409761073915630441293670399420436167685352696795095597217015309639820736044159013422835830760547508456985936891215593976771144880198738282172141386160564943092132078396555936130243621276969035907651109058068878127265316647014567775062734032842295698388539574068404619645161031990038340727222035075143223816698659201494218767794132588323059797870613808236484274296049484912336644329452384207183945571882092636660757009320979062001541850153725024193124472597566716229395619651033351073241937819559155117520744397787285675323659635985978543942591878766777051329079041719003839279595769283238565979399707738152472040234701235413604457719218946697847445563966423697542214322303430982448858983218738855029680496087036549486332972983955849335071418150449781553876107344563168350360692891824511341719320852327814073358447234510279587534023388352445422367444119975941548716736054045823615714916079114459879433999963825019139973609345714501894201579460699666389760641838744409805531550879601790151272410925100969581671348477872883230192405989178292820199141091752998263558036047702453452171936908242024607499853050351914418372401199267636698573331001316352828546962553007808874617516150806518076938297402782615918268122185516860457448101019296859432798131043540982945344110347784153380625898057432096709260690726645700864119317995221053527906637832121621106087555526603121926714984319860914463840267246012993946161105229877745828259045933364363742843824144783534469230312271833033099598958560453242340822296060523733475880695518681434633298509394459551311808865676548130138818838204492863563459773058979402659103527196849646109231913048010244118515288345256465752440946743381448828780066538608485339283237223332642497589232014126897785015233911163543613975621380645027739408679294805325152803875210410012169456312382651700284164378118383424994209720495570237467525959305308644338414752089381394444291872259852995423788089079884173502152047607232185505587786681270323324340456439926484160877273413433461621335587923456088287868310905479719475013340417384271857643084274485067138860409185543430039590358086865477732672543390107070680498261921729941850571390448344939752140214803979140782784350203418032186534745829616001447376157321619543126278659454361600068936864379231197630295393539677725007627335232770982679354086356124908086276680435210326096979855948696006316980469120346380491330324211346314079312705150086591451079653400871302153206543770314938445708105160782561548193444819418507250132096885095170786210735650780470433639595400690906592807849263535486071838627643183725963701192857931068766668399382209691575946395780038452628255579917494979756773998094867784453670632246877470378008162282886076248517329285092036359763229314221349961833567180219105390664630501988133103188683314822002224479803521907579753935804775817259977466962066444272643543575964348044648778634620792365902326305006327000982934071514221085616400793007479815259448134729457079976053265526271938065393022612598622574995586653799651661325709875243439178972012219409945993695871337684371741387586051266677457504770349702759944722268889153869966865390238177017621959052451745804789660024185298718330422407567242359524033609781757984129629040771554857886519840552037712269396709195750533272288925567350563136665976690275339492286573823796467083240085137730486522196246451067054087595051712148422165819242678990655019076956803497849858413571236411796721018826785464611990652603989074620542507959284906117184984766738983853139138289560660600497106568684262762486435656629280908306666096546142359744291877655125867174421677539466163413719836443779980325194288472411592931186986823452841447856962913824744088544776844196799749828006659036657692667251464280957055561083664952278257082934740441847530717207853436758868945577160241077548782989848729905035781891861223099641798495829321315779395957186605893235072864158485340347914391279106298961062022648691274043751030954859279019231452043597838345765410616964706948358696066506175929969621337342252870497833228708640812151713006936558091193464990398606616620765633052575813858551552463975076575143444887149736750109371727839758964975128322080100760257937015689914440511911509924466040046478380851435560066868242518372208555445244074996898286424926067423790941758524057993713392812222890545831407406643821637029651515317920426462652898875349242457237707724500175205567868170864687814459991536744468990239133075748486950576754593141887815835057960694794318343966734845138904830464870930942414461351036112153296240106342393535458841050566673265849051784437425198655025718973566601866134466748520628014953475653274963414330047072354843909274209749965579155380118627569162171129184106380245090491412911416801857830978902841622258368661266553502312360785431462522522992544130173024532149832708653158808298028959350005741921225580423820271610046993025068677730847733225825462230774759615099140668156125607948552269174277156143283033209429315966736065694637588314872540745724236517682800082151418922840928725310561123391062085313361270746679618800841185991032391169762433487968157600960239055292411235343774472317286274751653387333648326486198678584155170626197041662039854256813490370457778079155235183197229139631760937294851717152422291477035021154511958567363254832993889821605432871322919789950417000463851287750290834834505652847518872023001487444793583707317194518270575371418461316482170522945477692921817193521433978443713123199839390111014931000272284382844388162108700206051342463139357883183706386912205702705679395200429077504322257403282536207155300821333461218025401527082302947758071647925576213378317969559475908467577212890458894942588948397957239744532609661676683887508768202196280385546827549000422906962320976231910865740455973756002532733713814419810495910371281093346145917878724262853524779155539293290587725411180588882878893938496479061797572366951527153392800327298066632694960715655877297797388312517578836965537315897305289007364329211985673208110117975832251844033114841839304375746683703912569898187395069080999810315385273108484537259589517337520555682575948989235572994256292576220959169250947037147919610312431068005464916345356081771916817461301592169010085027466776620544294152474048967446419456334287694064700540463149225352206859320230682914989155438785090049541833313616278325014347454090005433434362529590054203851330800846573753392274130847237033220002712067718074251171153972581602384628332852190566775605717114563531315606527261586559461491637691145602094453452299148287354682329396939308126121174964055523522592143388592856258101303448064292670624111442181348669903281380551943167191822234348925553340123652447465540550820619583600820705582791800297872322575167535229627046697397914027255446310134389883746207310365156119674342250228147847074101546368476016800928500074783386332819084663533281720646948673592885385408561536869158557476250979057224263339639386752986307454910723465028123917249513543763657855337751754878071152051722771295206814827720046247356725011360852171987311555779619848904593655491362027270026729328315697073840213649855810073536922200916244150559464180873312316297315964283817697283275154823607574118341646657469475486295560399731417170541022424511514172498944797649994226898804684040938110321993776958252233628312844615401145835639543557917032767837081847204923359233114090509072414826289649774210006292281148130339449736697026420399633135082908735323261418881254430227888219865611141537900540361469524626101466951365869525629104087111098538171858636414698145344287659486237700931414912249603063342086958694177430557098935683045125723260528377574011846647465206642129314373466437453498453776778518813696990644640873934385607452242112104629188935073820113384509544300410361070445345793599100537340411734132492509963498993520798807711140440172618216659557492197636473288646336522037158314829125690700346724352843269521343389218508620542124207159240810978851256807004737292551265484407182194341983204861358515819651440337552552939269427243794376531130094796930365115444317996136004904692906077935999493946245737293018876966688714279682602940353108410820888007618131265190534649362316546153453461389986940929747406637316448490336550630917406663830044512108292211143558367010576225863017082902185184136756052528132994932230457092548230207819441958098444982049293860970400709407498986829017636703367276026075810024513777761295973432845812507083183378381368013211543601416062706672404930038948658585095201395041091760738125407324465047409383758462270113039555759797892925882375300200121099959187636335613547972360751688951112922627553054186469709868837301264442532566106806990594209904266967762233318643323168891868549267299680859303252699566826721331354978676964270987797716852367796863998827078349131154735072932067256019806544813820753592883151265272146316517127508764648164684396415082273673747634511840591527697124716720491580675281289890191532235261463796331437440224340021555971648754821437691214904793991464614419377651735171532353223871780304399217456622425815343648201212884217881721731110775497987288535428918107810394378274979851031277856619772334785825592985218233977317268822249187342024134425667266043695319886456758117987495996600412211802079339417417334001273042550089689011716125879601904429697845120826005780585222237965606348555077795193485416050873449408771189865147789181825578110592246533345116651100493790868676530080247936664871077159962840091825881838276171308331068383728975846365859751487805700702524455460046518673326982634891407116050382235541721027913725569635524843246945225401232948135323552350496722565535235571341844203231060138439804353027711408154610637729540112173013969298345668407053222903787346576649433535489867193598595366126092309343809124212214743751106869110330565243494910432288720931809035963858953334283499395000837331324013478340104843364760169511560910305314048298759695733915259481937338107879098704068731627131270197211221837523501633897361774526145115009478600194360494958116644544354805606123733609401112700374567282100352517227948850373864528674793891834610014357135478066914119370773458535715581120279135061310528058604046627747483072435221813443091554882748497361669849425357861814082415651195363625633427706751016591742867016221183029324745999104868596937633143146370786053210553013615657900472260763772565954867889293398872528188440600806514493911228447413285437052892917508556704602662086128920896476363944050255836824625283231132833311849546162189194164455209469540977244598081801707000757112533020441530343046482730268743250999054388554018612927318063326459474040458427969706666972966282711077037697238935152002416704153735137135876795945364314222965490555632343947524399112427086309339198446205962502716618734336149510454882504289372804551235645997265566535951802610856636078189792233195116519735498102643394737850036612995476165399443062896965420969126027263064669646447359171228967085479207239185043783045227124334104256754321979501167815848999727647139298684586256878033072632885817763801338646468759601860829207494700930688281112414459795819940257516951273899633529017618976741706096081661660814757494825065338579741243030529155580692119940200770178145825410847918220995464784768546137736875913027403114332203821415328682207476083542733366985315961128290087004350716553680378529886007054220512645200067193881691641337704463559956702256209908732099707714307439105428883165659246006918839671659337625182828928805844955179715037261774719687370470491304378512056550199593700256423468958862045454685773082499338682455908541535852777781382870095669304475779084261806371671422516858631333524537441602614614805992931400158812159814940715562149362355167959969874424054980753167713131853173878511874632025849850670349548081202831913232055269175003799122527137917502865069689827430790961166790027775105234734496517228105025963835813844924074508631627204270204343099015365355065325394757288541401048449532291588037683056940744054567329681389068523525568023640857210784355653779221036301891739146607581507466138065455980922413775310423345452758601348336669746906062746248652234883630942331228338952519752645139821174095735708419611630107213854778836368136762543925419416566316233247948558516930793257486431982285080580634217849256324238477879258576349228955746411793705108803651995033136101757298571536712063172083451418275331388090721434007952332655237616551857538336293250181041895582680920189481270400153960665118284147336190591551521860707442793196451052723921655853319667662331247878371024742804575947792358584281684923273712129410436498952381357011043946288421835961588319485345174332789346844037326744275611394313435285765521297657115991579028994633193246881752300164134452648645861930390413303279351330382400009594592648183304023823732403260760405809870072821497591732333227911245392306631721959358412562905976336479010052294206637812094934109663722961630853153300122545478160969717600895143168451224714598652774682768719624544331680820504963732191990716659717229422612932732866735092795848114348225182469234432342200137696475125204148554789096844844098921780258667231680671754118623279367616101796073345555233305340282519484561119695998692327948238645154980424804630271698754084271553365992122245728611912963193833092257444891505120051802891793342414166839255297079873030529037906573125095769750810792293616187382614367449178964903806809041355156622295887717354807862174571169712242073211903904275027309761922530933934238517006839732117224044166321347357396284355009456972696876270935571893699711226588298623549338576924506842663641946215752427175846158296917359551519694038752978323209885828455415056002908271189845325792289103996715216282635677483437648561041830927444717717549922435548237148582315377856927283297706152766076166049053764420152414700671179194327852283558575126900509289366936732633316110784737225959306716647241981374900564038242996268448299739380718168222987342491129690681601118491343338220716484546907279196258863443066042895706633405256556367456585534660973203638992394399719122530290221375331525172506426712972353353435989196090885994503062322312367544069301407501408746950846473059272507866007791469648329414871110868971848658560080727942085753858739323322384092011239344161719409616573684814504995431568546672143892374202825203819586393915574764383618075848267017541733798322994557816300767092972896642207374889917039586604371048145141451414108164808554167326581222584223930947560087252968114303152113681389659599210377585405798878051390143071939038609335012985337676418213003855212460412787478291955630654633850679412569499998845337873269820157668265264614821022541709703910361872469721647520673927505081750999451757228479325258056534601080480170303827611315839867254943158345435082125417926472397070628147727585234070227201652680489394333236744468291581007563069927590339511592096615706502229759177107916042393713613133331911231740956704235886350561558621008854463628551622332158040265710260070997456945706797158232399060477353283902681713987863403165803578316554615987959488735132565213721204915116723478271169290260941607350741512609885771086144500440495318362287566230555237047511951643160369952163873750156132020953478051199036543899772913477638488078575875356736769962131341757506322857633175288133583963689715261801496828270905849217841100076087282227123315122362538711261983438592357283356747314346492623759033120392253998015817895021806758855212414012579736777306853572457679006807016192980821502309661344865160074273651323170253718184653659396280911673358535869761516711899173439257215921511279323970520355024635567721732577571157843179296538484159740598139951824052843521830399759456920538974518496238857920882667364483962032960570711702539430071267720974477471583830616074344208812784257474376490671430382194914294691048394088791788817288926559935994251623107067864892934728844297814594633795099432541023037942185711795018151278444873634679415499049017168262971957268910514737186189145969348053274128470004791098377537898156017071216022880408912041592496252036525362490439188739255006797123669648757436864001147378404171899042029866667005280648686602369119102593055708533884257667379133401789712682348085034195201926017453505815010594562959428901699495949378832050980315281770381477875722736328160958103348449532606611007752221476962614516103381501036018276727700392973581155376836567421756434108088098015749662415396041297729615833638488820907090082489107954858474324022699104806600607952442567742103145594499493455371418444610446997186222499533608156756955585802965551211506275977033561053204434374623127943197316125895215730212889313077642635794768527535271624837278333837701555827475638680986307077318129773610645787768022792149266479277313103412721766027181057787419823351009059932093906272945065860775714800208947965817752600071185591912365576426930559934306292610806849469082362680501971218759286762935004271676749321322705452715591261494460664369643706343679330735156770902206367469548481739679608021168746656279510317983749678431495320978635496816915753950542122901595724560803751270647212921062692144134860029610887967793188089400801940253000785155138105335887335968979292979508379878172118056745577818332042314525926330476867798188592456011405984436973365224154142711074066527106620074884145358699448803961773084665862261126238800793889335558195686102014612926363804571769141575672582867341911228929531964338509049770664381169356181640587617296067474966872359197665927417661772130054432444644625397758801924417265198387154941622227556040485535697471134224364752249283158356366159469410104967809003181955042976556070429639625961132378308227456971718178796926499368896115978683211065292031140385687115700457768302835234922449036788144117163852125145469180234675609008676609053554560737190390594282574987495182049881152057949798951517755244033692476765300110085750839768707046345125445276684580962638044993973424454800968486234204438536650095632755083116756340788497106554798775989929580623131580753781305604901118131938145189236098551992714826257075391727581484297689454903697529568153682841081891968546482688363109556307486342053971288729255080590500670142160014224232169684661676288801037670245475035699237061537714215061467723590621851497971557313276082728164136411682153177430571014609934253161874460376976078801190560601315737877817228509254557895859598399388330284543192122208780290317937641025791671247281068214352578660951767297047056218791259539441500924950916406869285133177549518975810177672721253462064933700223097065872498474020489030621273530161256922358204496967098032868089617759712706113411665676402711743679623975781617169721491218095902773471701194271000463111829782619759152591272599065782670183515885010625949073310889606887174288632275488271523743609164855284448045175321697883947313530863265857176477696358487794658635220283294094234207877237980474401824867772542955422865979332989850849439250370769871459259479042186246422273327100749331735934368991429352255102899254524113068434002036080396110813784253699663723641847996251696835988059322485040846942379168486506004883044583891982405319503284255295413234482854141161700561231978676519075530191269733249572755134309839044353157741903442218415007777763051458527707389779771792496935580021583969230530769388161757068326417852777515892072456926939065564290463852016885660167420752880750281512886772259695684929922959750533112282291669220479309446866143450726291456931998287529826102170205385883305116086131421368276864431939794391063846940318805142081353050433801270613865336378726272892516572369580861407378518401451335876661337233780412204840574199958306878337321567763702486014062151019040821089990667632270141001633954514536099090715335301588963764852538912822873579127990570836669336030710171590651126256732170523277974713364667971284672871534896054481122824704828836231970808419470585313904259964710380728715908921725306697553597812273613785320048577142279061882723156886000549051555159892193271839669311221107406497872463832886081148224567474249859854392602954169540778425164039799886404273805873938774812153107840113386337590811913698068216947018119127584150625846372638135878172168400676034488822637913638552187708170604838845548800619802483604779116966445399340378763069175354900646454428479669109541401820154658532257921751141293180060759661460263850346242698583168233228364150563462399886889809475307973352819379941553064319295864837326252435633479854238914971904411313195177424521152902802748482072108768995922739994960658101894017708977766488758742050862593885642631299023460468390286202053252467162912029354706103554297599004128267839909098914701557744645716068808351339381237436096833289887844120089277187933384339493400368561667782749230575419999829067442477456158144039818561142807488619302704921974417456916064651316552027827210918319890320434093744920384509700838737316090043385521605259496226735205629603545383299140739501289289443180491417799250673077206131774389657468528425363791262602545993480663353330275403682884191600350251949540682850205520919621171753132576343966125196532409137084030956111180788298776384690838536713349020948399298109421702966111580117951527696191837624455090065757871602000721442555770113299583662346260290067689877781249133693620514424953954721287757857702564130095870326824931998223879658914711140277908979610857212853297841848195095646515492195716434607326560411063881493062618426543085184630649818280262548944286329987451061874426602001049970092941469171879680609900832991375480354294025389181232263890219802231216145571780532320537163149817855214077599514716600376189213143701123632555193187681654328054914062343894919302782689020032073682105477042482873193156482158658518371848274850650357565233699128147948715514899043329129196388704057768081993858312504217872247485217005294531543364153731107485619211081609118821178780600478848790479814468830087464350761005834919551389673714077674739606340560987607633006891138443420137107099115731494328281382718022004075637271399997889055828446215749734328707629372811683638248648889612973203345825072888442755854284714407198210891348435398545605324224199219219874355299528243938892848452651137558361491050383790931800083708631244738684502804616861113010510417790760728240251073069686380876743471991083498875375535235885494318415257215902946102691408381458537583930894444971759585701615427562020738993758238217619981568908322760587507406028481538638466267958590583899964851460152465269630596020580162275903869246747435344375391109472531167704238665888511983856179292949946682589071076909294284792002971179690932345110303409235657898593249779956055413109686005481504124167818224286160961685987334612013433927699448305958769928219106860134583191035651570133528805413351960358892040880506320195992934314708055569583522279069214914453161553344986343605248829783945237340772589950736793496004533396135182570838930494042916359920236253869129450549566779659773043110725254182408926701397589491174087191718034132751187873803727984527057412521462972806184368672212511179428741306742667311390920648837106592278818804887291499906543590795594690278987633824332170088789447897328233122443427155263136709121880270125020880912554085026481665111501033016330011855268347845369392687189438676484018985398056379187805162697743116813975417916480627717507910292805844366640026223992134747715848441172146290761043105792280310014780306003280873619215077437718770230923582217181250645515399610058460258252210041607570633232630282227788757417474999601884774259200712105351374878950728739481391048524744525637226963321371914660888677228625653054834757825453494399551029744379953218010192465167138536069027730556485121973239731739433090809150928502159665182412894071546230087740018508419244471107035184525645595732418796694829977745676509231630097328025376633412416750862134241524374016059100504863934643610941639767146773757613801981084619687464358185930254274933555032952748680671038637902642987120532310914469146359679585016116667256173722594325114872091161983646226475180587789226046223807600572508161607911000798084773909982352995646229672014351735645692303500915763735198778414136796277420965205381297657980965467292641688385209593038081825153604285033870646211003156693896251887490579798435650970500759163028917241238311593113790320868941170590466537979365391477054568701881787591416641389795140468795726734007048073432167583644536767762952539870172186141191588917932349430184331119212006577003043725953912262259707099003956887219473137299823050483779420227451764822585484388713332375869313106037549794018446558673837904801981821697136631244564113110312081550940277901041296079811010877759351757801883464629349132259063685161028903108455886671581974051867134988723458619580796010721748716732676571408482251395486754934144081774376131133871261605252577003087650318556578600457991599208579344445491231777734177534429677585387669187105985272025434807490047895846375482323822847855774904676373455666831361502346965196136853962268820475037085904963150593494653282247426918527267058523307704154172767453451798382735257893126382232795847518529041861271902620740321997696849713673124612507625651904473990311253621974380433319016704402767427701664555382253798718904335268878982479919092169750795192664628292661320433240636667956583649790013307348760028146247992928431207608673900770741192578784354307448211836167983916660108009703610169395021122430756219092618105652130796383579131784680494714250578048091572089327970163363643054907887492435836109288951017427728017824849388831643637974702759123547218278870230874121836349869157941520185027229682230980920318821243184835475934409599369115709655546132180271363088164783913336006248074226823716299026598340530136460594628913102379792063711611423387280129372156026794851382702114838301362492815600266938423929664904742961743709967651532936788281262647981701359684051906488246157110944073408392490870239790738652400724095865665954232515195483760380599688813081732898078918165032878787816011892926306433898411481434687590380876556850985416033735439005673253599523278133463201196939963112686555737922009896385215633908970367093632151309855993951373875509195598486379238627458601183184506067854582902572297676907501958509018170211405827652133136377653249435475129005647389494125899318108776380421176398203810345800668223269585431583442920893646620457596474151360843259366755088804056743594433442687448023830699633520522853137982731355731418782766344906922603895635776845041841871469559221768430336247210671041630997754051966509425863406064909842699414347010805306751837812567434976827657029080955355149847866266808595008847556595713614716061865679856760049601791665069673949686080996769540024508237202205996885598126381127088879405315632290520126859334206376521842045488937650263434032692494541122266667357869555666120729950699541176849941007207743297685363173236398430881446086922030489552975626663290478193832455456292703251909630697202036933128269952878438450931560858608521258430295039808024559017614761263986982327588521349987561548098195041699970846725678117907307729334578625523473784257534599025209213920414954362464083217183954332290462866861724791803018773870478675688924743358434189255090734846311638259956758788475645812901773682968003801000346358227282987396575138732221844001531937817045023477421780622581147442116226178920546327934270533609993955504606693100880688680817548651227987654749212607383311351789636266915250873199530920891085295684656733807378280352272779919575980197083081632737305801543238281598455955805089727881932883539972918261082930281823581774277888158905203796467492815863575960852532473504090987312756188597467605733185837884243789233889765729633671665995116085890154335696338266590971405284645428934455025836567271433711958907872928504632342207291879380860381842622641089747252145265958608855924291244112066178051213902780459530744695511024128792435163400618557324243848334856651262549482484436377517756611356346903248942067832951513289108699696036932793107273354823034537568065728022964304164329711540924419013883613554524180624160938742446665499730458625557457519396151908774917689661391382838278126909981215355408407202169144212177792413429759009934050999834714097416453310669863233461683546668720412644155647636435003517999379719121675298895778960800827076232118266772188702306001375085993816582720243464420556747582601696115573768175232348847750570298063125366010628805302205560342966854450489917764303583241593169816011048973341027840596119992137968030829085809759462250344458580690010189994168353563441265947690271643208684399059773840789935117556960745692881400472641897845514121311571184512125070368548680062100289780173732910646670810187121855796349735469877038986416666203225365561953200445188167177769568573695770980982985235595170906215131521525461993683786239076307612213895075514769740346999748544277127202924488835531499982456049125284638609819088874661504614624131683199706097345767444679718334671986744841476066904683642403509077803349067981529012434607321701982163129778303620735045667447619742071269555941616152435483081006271591080814229927335356902813867597962008190534588991776423605286123583304400163924882497860795942417339310217424340313237663446681530705207873532997164574113193375902862351267909855896990139172255873941968674360444442620168523635921543068732932132607912268528421358412278151033287012113521894880025173800242061402510714963633948628310162168322711815930357267995963580412739674981498674561634498399620172630348191170003212428015197630727001640566922353262357469592517766208870204305763254688238384871506185557657610213533590345240361835386746926297384467236043122540988390376175906237528889337076768267667268577243290661142333359503677540714952503093891272700272122939260383518684325387239078118373083913289951486585066687530370666453568147084100219940875086919228853618272377924144744684870398522524503915493296539462151155063788914359069092856114631914409153881970485826950685956879594825578281631091634633159059630386709378044323000472615079044833695081002435036355295882502249418383496793522858925068348841907498730608777929297286107654072180382424677112676233110494243716541031551693758250797520482771289324711996459871406978825562707772937120432836559366318920170431683938536512299868958692716876800321134692602252436480899596953084770170442117451602219316231827994124963072909657971079841719817059767853036320511096580926362831932542883493799864842110862169880912984726889456612590140689766929064909581501426999507265173548008148083187877896672894297862713956414130706397535394015792225155753219603875262027888586948658909921325983903346277384088820191795343574851161416273964466507359572999716467279735221425252083825379049856992811415771533765240013237452745385239359591583226857959558298924660554756923928932403659679954975361311788006068221141245144551271804249228320014736683965016279567822542159453869345943392506161412231622810368478757955175450663822910422532190484212386843900437349940259253491959731004793765353472521407111155339555990930330940631700696327259672210004244155475916039780235315150915592010304521364394746752189927160836243675702038089745939367613442719537877707992417620672871479732430036246377045359892549482340619731388763687473394608743179925540147412516191953837420427501427393407816090846460471292831160265539155970927170357471666509701149356908025095105474379935677904871557492931658262840683178668495942001118142962308343523894112392136872326587304325688341008928747898149907282394905613652690631247965446376645924018427635667530892650097477381840465344638967772661614574218855872482999351842538415309214199543629411416753595842248832880988446700205700100915522263715510333317649060963060489611949746306455779786427496884291164441583574606019753838067725250357406546886101205524804030539832241796600484703319235498116399650788300075335097404315054898747199154933759977547175950556273469557358611266866633244737254442192062731230542655204180332941118225876561983148683614774422837053697859591452376752392142594381120992551421334792936161430133993287644025099315247139882586196406281456771616739122359365659977875220965679583933868542092392629872036611661648992770282085016211277606272526224158367643679529582586767625497138403206793225682380738777002773835537841796166721879958202004363270307376588149583104143682768858458125899544285606333414336090787002348633165400927121081047584270250231984762876097346198139945713086041885401551491904779930875970236840201741928960619596728264830794756700607265895011970572361904163955747640070695149557085584649454433580728497561772166622132222956255266830267179166190674763274340248794228167284014096061639755636264528422476626855117189520773791340018472489034938730662747994016647573680881288108093853065274713514227220113008332396476989766502258615440322446687360894282238836969997951751912101972842288624988774067406247336955439329220181816058902167499839853961476919986243168324416622196029831198930811207020045667656493043721368585253796922622885604296172941334360096541398931506245868851871350581060094220988485829822148699880260023439234048915545566271876231973425884118418932550268474290209962850403115012921286647919190478141871396008326964249628119446641369830467253254611963231378870470296561349026030909247604602835963090443129295784300545858059954350555356767935439809255149224766549209547446546669228665542070635328227012337094729268749146505429828194230925075578275514103480553073519509524411248565274100249120803483759961162534895801795278618849630456653336586635003511498418307245193782447148902326123129303075917631654698746905094363827993714803039696425242215457776080164717333107440259080031503235533220928743483339065992598982083447209465369055474037896751430731159515493327797702328903841925747803539564478098935621766652562928969167845477281956683751151644578003835253019540969768403040919660352365370741926316763407903991522398810765963673319674866407521103480150581135652367539387747380444802940981885110051076548385969298439710098297233802850022225125925634555760269225764760690348287381909273161314532977787853308998880996903634826501910322777147004909986787783425658028967426772234874059775817054165362902994946775187912324957146053275389622123652112722637063087596022138728750550155222105364131482624156025956277259661159346166969059464354303736848450191202640197904933937147856044868144950960933755116401621614160222300596006721064460615044900497015642002049249353593037111497284460150303867410778384697944881889182408283799228429112879072333965043651738599096902186941050279350252232144454924377934243067129142310176312412719162801014444725789843014444306481085833651289412367824022893720792880581877391908792581134896072763243357313219964029635378799818168747899210092682830246184869530072494670130233505970291865330455685140776560049123226392845483181609019615142188480540927666096855937977775860292693438484137576519476567118789072517039525547039014647763865103175674648490916786908353252392585130438511827566829881594627793089112650058264681771618725623289634048685464135651262924619076504270027086589241384440216042112812311913124246528362631680381955509088597950455590279793729645698076053492178951777175597435938946093430708424669708644201158451792284493059031045854972054162532810750058152864260438667527964597260381781802950053463269961688900571297161691897170198151284105298788108081886650472289353418262700316874118335671598379410853547746290025242655332194382545837567982658829595755250145105261349207316958429160840783126444007626073853392627224568525139044941041534961658477923551151948344950984172323768052885870009487157882723010580628621407114380789267997622402060033377893027634213752677354244452179763313612889701189020300221279984557593896201832486040791414010628932788797000281178920546556398593783596754064779026684436378531950953221437926431021026277449955435161408475881332682413036884691450165192435299890298490920587187643913652977758815236168105181772813900168722913533408434712364699449818515180260256230515505906810943384826226351928346655106903729351785280803138577524738609237117838624974743938426045310384968247882719467012645177637754443383458163822763371357789476525521315732199624524788582044894475059452946662923833318097900864683651480027066430832200550458149515599418211508569750005847355101891051664984596401338482576656100331047134862320783703047439294796185207670465001601293596124613214734254119590147317396509079279552394188467319363931190566744906245969721606275611667138872886222325161950448458616003810394659881311367861865634200849428932974170613872823156704750084693735434104926770515140972318671259966793133792956207000311114087202555827557503609564200843027226677609061492447780629038955529731932242600134273597194757713495322627797724664529897529553137413680889648059093176563122862461409447959742891991195394551159367451703077466651272541067429869320056792463897127034804777292157672312118681055011875209568441379231323595303869972007586814216520587872625098457164555981388326923901073142018048008284367870909126829633472925517703245274191854988585534717146875156649812050022819488889046189492922837155534704950544703064832520612387659065915051360702494070677786528101120030433690213797184633874642775946606123442082208927265845639798676061321165042557916915265641156942722579965566230815290125440974996869383279452290690245342613231904327682473003993255663153293546003422857907989773516463885602014447782947987552051231677044582039556910038356013935392228611704343296398027662521020220186368513522507876125150507697695563396694445640916453224935762307455424395574641493003064862780736287444633403505557543129362154178464748398834362992317430044889310086853359883032485003288929443450044525064804683196294107389417491147112964879339956218234972092672514072861382540996475361747108830521228236753668659637326716326865627404844435258997402683963860026339321719580167665670132223121521910088573596129898972414546464187084812637013152791508999057554751008025014933071590891135384534173713065567207533294072968428195880958442402412347369863137164860920003969088162052008816337973948328249978998665575112348869479712406641777128586713963353349049021645240259596039804210286620472375648225069260403963612392230494416965435085835295923344288509281400526643179302943932771557215692770842446077639299364426625321051838222077327887778358289859511328033581922031441931222210029479610686474570569435636765006425580570444785846673790592361990693668629281354336892709655493974400672809223024097224978200460317248684378905589670711438171883971967699200547327912935832119156359788518390723901175981437118614039324338829987778177771353430678320316962169808167907380657593962245438883823537127103889414646103377861663822749188448991527836076706295487256125689225963660264926300118721880302661480494897905608019772015466021683905065775946592278263179387077700062224814320205871648647954791460730949366515615520250633712200910311674082858392926180150811497343256092816387398604896796642397401211292065033664411295701424605035909387961650532272704769743162916505166624068765135840612462336664117046022670835454698874449658162778708743425228004818608478890287367836064075423894594759706195298321629988874475897118561420873526127621226525188540972183091905831395044535034284739707897701603109557609800607577958531595983225433111927738055180533997246925523700625577527541697770677714479333684691537444592432005568802888372867243635226314807848760837833409745931615849568328114765486967403573627964293602642323214006541258322498967500188908135890163717014929464164933683420391623375302665844461367049267585691034493750582646985116835946844235601741041537368607268915528956529661088008426380437014096002083533928203495452798839053692352169260387471381823675246763198330851797542338591924222885487379555946008935158495608705362819305281202958292860330953689161780473179602726929282912883674226951567996500280795839366679037591632777648956187325174371012718881190112351658566044528081407947146076536004062907812120044834725361406651637807548892806887545603867390831950402536065028952734764720166995517651616072988487670422010491457941826372722864221230866362803379078998595196617152535403645376899139182806275561420241048235327268748725256683526067605774218781301896987899369317635971957428896528969496764532441757898167073902465501515916441755399879431501984494137796109844895683182735188307228533826587700177131116441307562873389743322929817306649779610457068470754014398044519634032150474057728343601032831266948189714011892545331504776954180899102450960460163538297489926005290651174640435801773766627605083087906912451007150905482791217429599601078935394959032774913648435890902844195869213740190094560115469338983308441351334282034742978893929902742798590821483189808009646950336764076383444020900407209777172528426318826450995032789404584176975002878258960408780676359659912910123651137247503161454505356798597536118540197337115909738837028062534695690744873777705761134910882947569935857384366781711717161621374042991933273148636813831005023449228193724329271683385683702054753496139634238126087516352860880704024419509867465518717422246251583383965547712613555906835740695351242517565216190688651017982437361968600251556230236654494590845621323276350195923211271617848011084928915268028445538596156760670648162651152040923383939941043107616199301123911651095013602070234892176982169713037910961023075338774386925132647987469182587084800660436384954096963696025468670051602044615815955147769020407962073664104565229898651306812765849455835017507721531516029191661679930996469676570216538482522146023014374128803434104649903961771269182045848122193308668576274443067637037988299283008844176231837588020282612294528019556997827837840416435933811749964775187597090085148482761844117984782424611281470709146847957055588022134346328575165549266302506302830543404207644015229125097939710042779141370544714125632182571409769366730897968818011450643851096624449876996422261166620162081606527062616091336181136461880089096304924938682465728770608261559609054996557561847466686537686224325283074940984999573466239945684072486843625029530818725663104424140292987187282853556518562275545995491198200028257768547403939776016249692376694478192670993191323552260676138541516705299922740788603721868281910019195824097620265450485517551165952542607979833408529281978655911152922299017470736516526878044027416202568525463355882286586232779457169068663672896264613368664561465306675291032649997493538864992395976243668485067396702975169872029762260714121065007604393488208244560368351362871846925462959559011656874997793565904985452822650403939901203583210133934924749330304045277501333728928806979947172783244138302374098182211708550557160828043763640364064630002155975616567203051808204127333159421459850233981344696955905799121950119767379962601728517632759058110142426805260021390002664433354338996185545986291974821940876018536961768440883606012559433945095987007256612105741259861893789341395480519107005979011934974791676505389574100550742019532055787746579995201753285596264440538908458725943283445007032340741906479393335382779554964879624000440863381378849699023620230956411495319483839123058403169402756376880123794421453999714193049357404032172173167691710678381402923592097927187573703931004640696441348102394179730834405923680832052956183555108804217432486130482521016746600474472738233725783973873036136463434730980098612614746637074870998877269469164893775299772780787927058937677528267601529488269271619698088334175687637930449179467789431570475792535588877013450446234197719142943660007782807599608692640061763693086341008770452468119914017926603416312561285267414889812651182189203885199271891579825922966123082630711317013868619334431061147896493529368835224835019314009362069012358519865667686394843350263070969468795453299217508285963838573629497789500923580539759031980940061686209610268850923763885651495872335730659182879494833365940671916573098973548804769457655658069236338154999525136843723103439124673121393701671928339011113604464739144419255940509310717221354890713375641801224890504424862673947012461936287279229300175714223293756437006562613919485054127135506461628753926591976340446817610954565362728390622362993564312866904508301226175942508657548247836175278390051644173143587483615932610830123013481464061653050257052642861298250843157098006355846327104279103502341413654031570740306329633585032393273747477521042055901556461853617244129189926300645247946161662836954318847015333989950580047988589435163710491670859372541223286851030864520905551750764379446549656693873857452488699027631993155782833184341147322860977014593667549814663138479207275176645778171806621789132430931168003595147133371716154458007817705438658283880207134292603179146270902045939556246928589605616265335657111217769810968183493109731969375382192566821096506548014312345483466091192725878069197181490348627189863436664288589424452453278706317643046140617676460596520136442640168019048457594640200545836487168698720658832821680924451881960543159512994460147744927868344598806116809918502273388876923711176401577982871981462792473459389339337969584141374104526920798574437215074066445444414489472905870678914014723346332775801401304303485993681641973834154315539948112290785996492208482754961198795270274498686515173449769122102717344377631445631960669104762494441477182480015850050777869880010016930918791001673610481005067066330272533183269714953257966249264009680257860870748236832820821394517993984897769908983972568690662324683694763925262921020221955917445321795003296151234695534218170384291806801275020723022829345275511559035602222490630561759100723574342618273631147209160179467213416621494178026308194555582186351534425980970986538410448833786590210500713938356920508972341945515137054510879811409992900256677471357214057387648322188384271964543566969778709653915683232066841359050084539705935809022857600839925787345416745699012672602246295647584344783840707235232622551406257067721574542874112638797651266433842483566914636342006181219563748368429031632379462052683326223915734591989427846502540002390893482358887533792565358802885861384416519157231540048364175551159462408468079245962787174327411329153006227822328006516336455360081285930814875380867227194038962625316268733710329244552681100256966552330614028372076283333830829671457088845569982379426071096700846624828979411714438141603881256459120430317793077652019629593733174519389150827773854469549241740675239676494151312443944655780907732254848023274666378263012917674847012857880874275397478665948925258188565050386126775678858435895553119334161142408178058739585201836973787233308481097999686166193033502530420678163480263277896942754259926862042197564321849740790346092512211205339875392707303194625754032632142897285437175159846688705094154383960911831844770094848419194283301375359478560559016095465971747754232640305821652175333898427921985114680490224629131784875279599273463029872962509407341356451669403654571157087346014632070577627680640442665107529784245225273923066308672304408019452443391573428105482124958898201871701990720460103390510559813446045879369404944032242684970183492989828662422345508054270835839034283482654076402853913537714600972514057756650094238821379759063443257586837163686890385343173940385327221333934693692830516518019523348932653936045364501672752039912252297002508727177212945963444762721023691500714554159939816574654941928301651305198221084808198607638265832428403130015800329959691200576959431628092169411573152791332715725160348542028197699347009483206284515615532184253263483628814071828274838975071284296687443401158390359445202803080631461314916771581975383130830419268410601259055869671848003810300983972729717925909802238682256366186798901684050789772677112707017333160988065181825621076050809945120525472711963341771652837910688866221763457906081802912668116666079273441269720599010177878320092560938020912738114554845867920881572001738588758174535398218874214466216412806576088445230552201127931824217291746694505382707278140143619319411146010061940888366673603074238773767502068633702079391363358183022376741690986611047163334288682001829310357272946487657580648325701487539019423361664288033700187816159530723828428771528668356528993050157147145683954391336444928775513728479919262141465814549943445472047095576912212667696365974199895464538346693537525981741140653359695613975900050277778450655567881255669701988597888227984010994209151579527708114744889827857695040223024114110264075929787589588274011556146356178220194219606899728841184325040455058719783811462358661605659695756497288465840412296581476438565292136748832906052497059862344882611802862057196460531830783484665686880480721625507029017453078124139325704682851665311671897012371765330579836012131574643806930010582750294472557339037287049978694314578956308998586548519837146587975312893938352505707819797353951568338927630837604683073612034456415155627881782587613895003913176051962304805653806592091760188131874290876651310453525945725839913674310266383644346702115273500072722861860862581414087777602212354371036584806992870963494882528477159106486286991680351087812734657906163421444928062407884928147015271708027368803168289994610508940833763408575835655300716937742224591441464306648540021633783878585382314651403999379670179843442563445592763149441220887534856498316180287671924384013718694601082524358854231753229285455493322198331144243614929970692081742594587267079518473476843385656728511686419373040102888563023182912397193176725355991606765031589626532226900940048298280308189664150620457889663494355110636993299686393604139634831786707660754126186680328310039260951866960094153489841078510877033157473548089158800213712637233909683407076360019130164781723799759109520157034015172662048523784647073372983315356973100342929501747393586210023988701232693989368319117806404904585516965073935512783032133095074209561401228240514427392137513991715998445692864829544294734585749836496743497343618274009160269905649697596170755280528266287493801814208822881018320109955217108013154197729620071000435862222466207385041005512420742531905466050297541129768617921972499136535113506897162284424966962825251387557493124808600306647751332000144795927904077527089542671100344725884623147434331678102303499721845350827443171747186247395578359125391027651153214654780546272279690202028870341308723773375647642850377428009368310719163911270043101533827276832560482198370894217753700140247033599993970954024913530546855223400784299493816165370488963683178832576856395513289925428915530682062625102251803871878786956407129344536479269669397686207035012023709256591283184700397001940345833954256478973420775192355565370179431905541039790826247206987057780749019809213417822915766129153753344488196949471026786642599772311558206317537306488181748692768716892908894936706534717355556668101787272474690563523423157885424011823414799810157498104642649837488918447731881492068608500461577905074950218628815649138270411506525255139995112218924294703570382087030420299694586567164695867874537945847468896789790762012499191399343074921580971002742972567024861488201561747560888774791407784416954587693774212913786932840582911459700875963903299563303019309963378800003423778600030536455254522851713209598859451291687759494100737182888549665513239507050538801184060322768837821046488236950246832870915732574116530350901935715391380704472767284920279270240693503137430740639023070554393419170897812515088385625207129594232443338120868012073156142550001058840996949349393112045261121375120069755653860557869655058375021688672363028192307783466775151547478435033122117927836465933992812822631371176259631935832428383137841160279540637764706033683176238394371625011680743565650183604688418346917472470957857450383987326216980681065403877314651325407174891333318559076669771545386238043452902571681791055036532814434762910289520064599887139408415045677693652264455473437735301966755272099864180880975352857906388076753477883087956646876532614990710700347904134392285543969127401675401813920757138079959931890434088499119760219600809606348838062305952384960145860871128695826004904746575919087475783348673189447575715839211582513101214378494493234105740538914624395341774418146323257941262610741789165632370565027440780316909519697830791381172575710758731097055248496215888069470539901099313381232382510056851396549429801641036878737470186343169959541231006672648071567203148258315496742132340778039179100329219111270756693752747663079143446013675282182790676840333351427718628283728278532465817513965557409929851851850804615409546571879746893744251977004466641505450326144087431997391882809116772073504499428661422993940364238903415915991861759413529415444219662467310461896723908326386044223874442533487402709254141186295199945484823820564310795153553039210839114759239635013962532257947199270228852498513841456512514102100170286113729919395888504927561962242603131356138682859001253994280362595720889801801234264488441513405927680572586513697214535545411868819428657247860530372212075642759659933359492437654003829997041856702490709360749649884337422698726721168278827998167220668763787133240239483190502090469968293575489079456728955385535804842062177941391227158539690817353523051885194138445467132208817679630125436897783001844724647908466073334061247332396378926376682962841460408804852256845562602839623671111770000749955141562333997853525923314920687285815680576053567065667269194165533117630528476459081796321522065843119953535482926713301781627317750511966019210705504371099089503878015577761763708096495512916597858243928161267942262685059387551865330338858516208648004270700471924010576371489017326829876244154443377800881142707625679908794013891202830723513645435415978693041226149687956811866256269780659692034475790954431183075575872555933167577355649858780291087382220552854104032837652831968216398225378777929280896133281262886083402671796067327705758732450893413490626972208560636296477129952472032837255020054114216269193178672350963747645703279929883475286680587225954671156563800490139870469935446001516921582899042792258253101867439789932111008791196809215862361441841792774272235364757225873877156129540490205236213036524494732711713698097361675331307154830431519345665327030021999022416603400729572703259116021792115199200921576449346788610781804715950389184334101535170402049692431475097392855096927386944706854410291556945340768685046371078187299746318963327021037836657794686059365068369591434207737829961546765338060084083500107120257559289472304415761306467655430393872206276319176683891784379724969055389190063128949765399049379278874403437580768444680524009404341974262079275552433449808840414320944006134493370937451180025112767589045000212354016950964387792509180035509279552401780348560418090835090641960343903630096018215409601504780065695572140334361295189839533249716086362426497247261919680360463422104095258820522954043442771472870083240010812186343474153989279281051159488996992999512011971612327560509371625551658579185183493838346666217237055553019689089491911093779650157439106712532982629768973268656821082904254211577714766674872355866065897737982119068902878866744156569039348974928032800865163144905041984741453151934898606654820270816897253934428286034732409974518640273937669474506898707172311634731474400344076020831478880048612393635289866937630774305051082667060890365706517287895617881535644803983504501366430584229029649097702464624393053998398097732243276014835410982147044873868518195361792963125708034405810029333958651210811179776809601966943268911347881287575209882539713027265505824727893877157584843516200935211308677333782365993584327081767590480381661069176904390641823089451194093801311700087530997407247427095539429613187128059921198797065541692728440619476065008508830126056079405893207690613857556108284261376362024562254121192709119068403689737212629682800149830057944316853349140931910919571794639232295436502957372110609265630191306802827625809628495851170700110297743600165898004174989811026621364631169005541264016748144295337234966491486999746174952160248002322777854819700951620534556080201655776315178525915628494654259334430356758663546820527018343461060519761333066128359904807850409161430446239238904041038334500985649451805416617601520378717493081970850070698324578805594122761779178782007245815040484300433844127234436422758999023308860789445726775232562948485859811223966036365990106121131505615823171566264521747694253797463827114145477247642704666968507862714250428334101999527465378920633223501230191859764560283421456034015569601913850286106161801422524542199008558275576433676893772226948517599559686379424499174176757054522288716758670265709900030817681376845478922359787512726121343196794335046514814191509796168860677321680138682767919971616910044915284206408239676071905418882575393209300977515213054301910355650811038741527835170676094702115229584062564854269500652625248324608493057743531104705310504206370826794146855313390876937805670603413852229175934736955078762198218904304123761193460676493507598987248569904686261225040649008729126167461837039184533374233776021086552381036329108920522501786309518490993737359519309737316951583286294296741689434147671909009947693946847929759488434027088910511826062672224997735162767869625095162099871033759139087367222253484707544415356975168714515312745786361050724890469746349013203928708057226039859348981446088353556432891443495260313807089109564118452652361302482910453226586753557825445386853120729171306843207164439850526862662243140659488722054496714270731605967765028369874725799523119027923228748934249015788614144577136785234253447527726318083251771584404857740310264887500942102016859339792721924476944538021709106719318268867666175101531359683760421621432213974892507849555039183248140673152536777408699569957380518958141413081375530081772065144900253194790219587797771128026071037323279858195646320271570652019108695008681607368150343736102858817092440969277507910959085299039976084426671426410013633294841792179464456657465392258503841916778934536613013487191927062889082345917309181887738376458995074817642464583505148056880074832440883938040196838349909155753702375380902382512589498745586839287453858394546663828543768455969469226904210042293898077316602935345645607553508515897979452976250768758033459358704174453515786748768280108233480798936820288691070658049762293707510125692203339185466999932155615733851193351720159202116430182674045328741616993434905731232355240562696540272931125936996654554214264240986181086720599887350457549819360377964740269157537368862302487863956056264119543675477534573986990058430316593707828583550387332667176997289597203947441294879064784000616662980040455609097249665347800590510780054919878089809541449751336141770263111353688109525446488501721075510559159815062738920684406990205729348620717762304868521919235452906759728746528128019690242723625384943410966344755082018987204034356999043313494314448420171444164574892894403907590151682193134094570249399799406065738003536694956969527138149934213990386289814827410088113654646440813308837395530467269518914621642695019404939330708934352276225795467087416198690864288790919695292639410084546637083808275680920637300331027533637497398493579182630500621601855486639991466592481142207083075082094255271120362298979611440609334468022826178368727062697312956659141997508706817398868693147558764093971029393303939845538640944219441474035723023807331103286129465121592700178673533873103954385287328227730031311056923211013371646078703537147831816688037075038506645195635098558740783435297430753825805287791963323366360045803031101984140212813642154424783878190849450061101228324728054185135362713183705637677035822106541769644773785152724443938948183391645836455062735602382308427304675632194860440567513186011762389995717189559815014826327960113874825015767087035626980360461121625037464299464630672077391976261399606550731407859290300229438658693003151786658069646744010573860131782848355049602249161524890031165873733510869129457882745145569466682748193650620777973991099828189144673865805517237532184912970343341269373609522294386152151166833242808745477431230730161925541027932118709793151342802275620990050940911344993858371635631543600060395697479025620288961263100451975386163134715725079275308964742979115781954448998142712808354076988336398065832167483717654504463351158226185230430094977090506686618241461212445878611420832628511304501749767629525815231250201409843627867853847082638211219876307385376274425401307058522072199471351534222044376169194844363938784175955627111649891859633478335984633761603151065804182040969661382581698587368847845612131357587633119700767585150129228107423621161936493690764411207391645443344601491121710818319813786655462915069140202002668767370825251583739314755751251458106040523851918518992275424225296440985899346385785688497682736869497633127224722032311283993321960320055824123141211355989650289940007978313315795074527614037952943122154871783508040329279002356987826958539523877726454083071665062780972596184492819516680911804747864824781389350721841247301171163044329242197859623356478438049831867913811254660711188212771408796013163603814632401059932773569369129959227071345639611902949251566245680865542228429327359346100788301166632144231471928929102536286931786906890245837096908624401924956342094897254469547695901889579209690807786707393485362136056265690088511715849279437663207573800927498906798778405762854295995179961471091327654139804992624117254126591779208809995938556305665377039590509769088297446608182898052259440126917201564675093291728718551837525887574335380242050338393756052885007638205929198823901559427949823899390248521078816534720374008494182209309485290354269845211812554656287218999184955908094741829669081401982059277334164209200304515406267541637504855025630894394344781380439864301259698530510080055623883453417142327478770963777853178935559718425256017976845425070708492394647559514053334653925739832555105200025960694994558129637630496504878285730265036408327008753340844128147777604047708556114332126697047852682329707939676133098074140774833984687465875906221685831278307517364672456609330087844765736237347473339050301282363920645445673391609231407448265731790521585214034691222960351024377652299772780110441739655026406048290662969484703929243430656884333570673391841405571051629050401625345041619688160091761688900456901447798956074288338879084674022369942745193600609567407036690828293177547516853131756791937074931271081434946345420427821935607542680152181410788927707353153686771888388147603705925286142404624367697664610040052564948900410711544930748510123515294988625924056557294326275354548780801274609999172025186078557313556414954387714482701330238400364029037223117103574372786670884796092411957319495628981065144416953522529473732259771977092013513948057259273469550523763713277309525688450768487279551396757716653293874672998567479171021816059945259640429265120102896422497542914616122663835927354035318934448337811028154670461123364776444962461834762883449502296658347327333990044378883403147158187424972777728059823557712878506098238117086984546936540736212785987546499116670812965559913727570025023898384455115231580911980212731908554217504832990849820323005641856303325807293625840469633786758039209811239903734199950390271126534884795920068197461659459451588981866993349460531610160642822834292973088781443220941412011988939453288266626943466164531767841728889453547322568439403832004481562828706453671266174506385507076722027306458619581953917162618910775197785296647696214469308380845258632472759201234602537679111820593121156006296836099442577999796146069415155537748926074128858928403399444104622913998186078282299919031565301104868810790162515949834845856287616049629985792474717147194734235235748933593444966932774923240898223905785469754655041535780434637441001878964780517988106469291906274454302869704481993167668333970519614840995469602269534095561914921718103173239008973548631366923159549496672343251338764425927233366349362851126039547988879458123447656683272024555029142822289677383152092607817961007613209529034892890124310498946760439877140856609809665848393160628364051454035852603773763886431479038254375188198627447425424022580990478618676936954303314213418710059383726557435938789601854885860261050436659497893033740051301346681039580443580291570712864571943724248072352411685296122324927938501488359608812432467608532161788796140329204720018812948561956471489101922338177826391865953228143313712179855690358926710640059628775784433503274002467163382401107984918841011074841833284328134280327525614595404672860018572235085704771998971370492528466617368425565553380728676781440799698128664061515075481479216716381282293689013179082788877459993644959367218744537234238481426872038400450215399335281315420824285948509708310347628787399244826568943037058263451809890666456512699782347044285595564183137485833574069100837138745808179377215813210569524001532624140365679147616239530708575879153944782227770353855737865997003736222043922320689436402702766058547169920564091466382740606650067115432900876478293035349088669025419938948248046744479413335627931752470342258259540588174486699722535165876531365335171078818011822825840525180998169878330112306112878292214909802370794349080537317254185177769009709751869153306282203947915027357862554774392090526121495555042657987719902408573475557516869696392655335618173738338605095556307284265246173753960989282950697190330008362891023295623966599090550159997074625789627079017554636213440207753528864124504659155519800349745234252552237988839676294695887227386342864002366080313393699031439640896215283415712229486266889131586903177056391979949324889061830727410883740521797899299005982756142526672400850473237631784840116954812479312606993675944907058221880176232562055008445828617576310206314987930452436621074622036311751514222582903092458049856892921043104549051549192557613164592334961363563793774611461897527419906041081615226674267446689998955190971470665316509464870227182907007591477430819165076257041205532936758392868745728301679576459460668826326642941670586056214786133493872435652879636188263899868402473256270780646645309070710487806086138143972004041678069837139049878098782093369434166630646245963295306126669757097633954895965534124392289026089497209819655617110428218801725807319366237403068660075843097245554794577740204347560281910108455282598875352485156620912563353330651092061909325870499048445622213872853805250262857221364103401602863685018531921469956123015493596192499703025132613281985330248855563557151659331363535524559270598090869852302268662616618885329292339414505680280485564773515583666933662716678738485653499819273939311537773604816702380664007448316930553252999821733308114600274021451484550890421612374072185609318919925085508602942272575251757301709122218211802702020577695585870208929932252439520537545357958903166589049319090554071614400283192259413540721498255438757128346883810212095922057580579878143534218463631080975705122110817853861057320112791636708344545667346243376794629421235695798255559739907652277836526162106399820985422607769056907782190746289312977362916163850197507746861299271058362217695235134335950137065504862418603059671600346125671675922110608212057363982042958011621669036253287558398223805352965317005705544641585617348244189909568724814685603579562986930255391127488923835899808516775015833177353905177166565073332968852525755628884456279772299292656746448674981235758915216291285634234039709051617922185546192781617658775498187770119386207786402281394601446123705926431798421002737121093463467831546806063908593154218220367191326474633541140123626410927929769118465232998105001636212322239934233784267345778452240222954895365332948965306760088161958519294966151096224562768538776225964750387234104809934161261333135146824133440305135986729220686156052221866586831248900192386782104094482829604547906412799599262332553367038168403687017057920190167174206234094548097567958768246858926825515760427431754573120190417549237271846944555009356930819593537647250630021914695599531544512253075431567740635368419917021719785305400864752893396308962060504718091608898854145912300759427580961248885167816393295922226723370684697781927137126938280972623503383258397928084473276432408597923087234345387693873671907185504916420513532110973355705949560591419999116190770431112822576984571735341021925097404027931209923772001383151009867386176869621940395871279915272061180021915685153881931695569139193128349497527544446697677890560884597434182760738336234693023846385016290839132222783801052641193780163561388085247593470683241981864594254409141398100128655135995859020392066674930938982528709797316345576357552100132814911053004760779626415761085554463383027639478895612881132183124981843220243102414214367150625493967294632949018423329471428143606272091208756288072569200716693437224100864240382774973191631662546154512099609525316019013863696265593329463945852580117093158712932834312783427664770435477887623499359688221283393788538581222401917909016079606520085336734010569525774828136823682361248685855527056252835613629126921637217279952702722183022320262239179687619492676314283337892823372493102615213552959411817886605410224506515094951400768901002099497025348970879719503753974292546879889700280516225968674838984807467020617258204236941908448483231037823152637252162296374241398130386344695827131858609586126124773910465426927714809261593078412300993174413569646473043117896235882781040098781058827946657837308060814007088083888143892501914239656305315992920229384214499283908472435756124868241441751660278203116312806617774442959429611920610093964279874872882493796070092642765229002236628676523594852314081943022405663536063853963948246045710325687927938851486211211374593678869452762274354105927117707188244993289586319457797843094251613724845659483125400780575987725293348671170145850921530522167580625022439891143192115149549129047260856334385079435493164464496748923544271951276671635072375092646588157016786519915309994470951818699869623030924043762354207404062680720854887126453190934272223383069652162847269631926705440178257288290400418483017178810284072862273214610983501213016043806623207895422921541609140128943750369965971911484927572912751811228157961108384221920632185857254237008257929615040180734685702459718144047723442468698917761052528310376480406372016118095675637002673035595177000947943150157832729954208970607932545554877823001999817546851333524124336969444930552412344663711922372479994879085372156950472258538919079661525691665079678129093578414329605791633509758953429233351695112914301358481722121732381007021283866507971562771630563858378956950824712631136170376525051455194870903700012564605147678213859373051904260837540960622888895540624026421774953816996580721113234493350609670373613646797099927186143945211716232700127703278575054545213947167807794022565454150611989694045442689850696999356297626686053278424145322146111085648887718187939758209154505618203719168070018131416871709950786236606165798781573634402390960009006112974486582883759002891018689219846311972107605831146348864675755050882153591187532853486228202737948445037054888888526516642223985091494658084378089002091142055529754684554315511679391208597915787962672511729185242404729852025842632489403508341180604263452868694491137646572168579230845822284427837251147978123368668447600370334319639317479342706916513769819530171472817931761793295794348372071086409819623964250957164667821202410566708913237633177828319612263925282355060929533378204054941800849331171846647552510554866155932804753617660055463352969838800558047412369810895281401675086734032017435278370680655986024984661920572593140455136565886474163866595041986027777650444697445916082842371554997150522655530132203066002239935950848811625649871684715552351483755970013378800013528401730964416884512431240971180510974027626887730493122361292058518373810336400419836594416689291148719264938993886025590765351378915545719603285945778864013689238534440479304797975143024821946846822885390171787187884437975921318685784385103843752215530263848375445357184289407328705768648376840421770701778671220798692405860245432646458485292248816505215246074082117786799828961044989380174852078812784923547130416113150197897452486297832861118181242340827495533062735110830088010914144789997404345242062540493969226081186101020686124719766409390953301550090254950138570932217355910707444790204075251084606750598721226785567334353648545926422108977225588887824943902838098942656200044784600417606581363138032550536737888113776168080909730553814862008062766078468684083655212042604259718191794754140622465414802631888703589163769158866313311563566955236101790735580808072267410574378552920542785368320514469676587631640920017413766836531031681618852781994906538304682695164469089832890236577031841628295081191807066563365125324641335559077976824776952694865240486471838438995209498525928368054742936426238088191870909565658467615823391006273642261415388448124796780118278533177029114427950260249652357640733405164330878496686327672980424890086848559767953233196829476397976968131274145301517328792754444687244393439191884786647108210058770985532451043234708807173557728892689630890280248939793586736692027085078983716914258202852255411826882582197868498628174699809221393073502297283160334831528108983285732001831490404174121988399909307403838009761023215423307692003298069611813822558150655995645930639140624438655150904100206893613623589561180472212541605005482975617721895889231049531289261853147668269601357306283499251325829807838946787251313704498381809987966944323594289446263825795633035534449892478559409377784643894868340465244184651591038799157088684069432021594560558391513111546826329935250241310256983764266271660336030135354891212016708236550997476385343137065180604245820206941279826297174904167935668010479052969387570740023047787756212376479277294416621883331221513636438117390028233817749182367445726348817895863952140807989297579648214986764149593872877444426799298511509056705423673971207076454745943994151674542816588135086023600756503403741088088925217266089890191962441201711939910017265650271800593391172355764877339802951717712379417348503022750120472963142926920722627391371503122287904134956291775014059881743062052208698921334377011442540773046334935905275859490518907467483833588888327144180291451762742187475743072895667767345585110802311052937530710849742153569490606492928927933255611211653966576319858005861641735643613325834359628029985056379496570453005177667138562815681474147395669332369199964265772051797002366516902797635379623163605921448085507621171369217462899712453513677748586847394403157976107520112568652280320546806110959618167032850502713172159910242048453223222200280107886631472628643893921864518942496927770539775983851981743756553918689995857985559561227432814872971938943163461086798603620121153470668095917360711465972587094240418806247072872852199141645399143692997458432024483131869114824128496608590076860630881415096876242281690529956776414585958686688879207227347376119782854594492196067080452332437996976908719111373760523938136362783415271939140651120565281029875916695212612131674337229570319762512993377033783157658993903403683340794606549153590287283174914914711106972290265465406833894302671763079611338342056040347800830194770131919202794536668782584569021950407830411131449274779431344925829692016403184281171045669754211349102861792059355958987155337662620347044451991920875145853246353639148773250167187747409043637978642121888821663422073313256083065316675557741195596052578999296850548649274772750025642581205148179621366283275220252551270739501783728717139152282843374288977157448117789897149808940800435769654627914338162109463374295634769370338972382622406138573143988812062747694970788849984696015819747955172912054442073120570605231401973353962514626740894884162000238113526900533058762994766986806846627819577494920446703978818350655513769213501874212752412550776031181429195597980950665472779037349496720278773725101626986061987509864880060776321254482572009909548803918742409725013019751487843580466477857785778803718027719136696996359568884839921714277427269030183823293314150157142698894981721564879412034352475047071810730549779234072954794471286391329008257398034160273366868267374689036352692021273913157465301468018861928924969013436508235469244255610291017358815590681588051635244845818517964493810931600003651596703562168943797227063808596512039414902029472737089038174923068943565740096028579343216459344358788200326030553942306346593839120484775296525901558444939891587707486402202309532720901149877432009237160680509609821616805462032957400084008676530780038345686344381671712524963540175638801193732295475233567503520050125321521068799736959932198617514606580107649703668649149255211906096106182758851319041086453460558274782555110288204369627625427500970338327774222450456553094747870741173165583402245737895107891488451397518633336883068379641082064442748009355485612065595403295798905038735229442652627381332152468910203921261135509702547672452152761703421202230381120004148573690922170409939348293183796486105376386058241467422315740595984156561494517806592024836446863419867561528262862334065664399799494231539163580754823204902101263085676298318027979091630594719936022916600013541480715289708679788118031415369844703460337869009208702968618965827606748421129528741909716169877186423488484213774271218262555544622501600363180850029603448228816086612182808245205326660536154580594394103873194675158304938600967527455046155706047732263645056889785430416191193501791525605338800624310762719528742485259947236979064200030153855600388273734810449427700908557695535837053769940059855223411593950081092070343179792269620796443340699664193217424084070951375481011871476778232985565933619526374064311648257406930390352571192459826724276470313755639384284197326595794825599876758407121347620261770506041411245605721651881027735101934432802613463636449713720538359778344919254405641552080596287921694407587493393640410563015731601692480325010354915511643185340067583565559659639624904038359523650313329332493715535465970030661657695585716682056354850332240344519234156809186818042819655988257650941711150058514187452996218237106504485266274122724739719893660650683775759473052690712307911079964171272889690032189288987211032671414904545872525791136829931528850163031982751526963213110003206102923757007051954186823852871787064649469132127739401866207457143903080682970574736626078517763536368938982238782981791720269401944838319106708651896159532065757679472952728058736891208380182785787473411993802477853145213408294122846197143109361426548673809878682147320740772368995218104200103168343331354180949256030394216581503420127303341564918314012885294441415726803178654085732095890833797960502032515858451671488485556951366313797605279775502498008662740346892240307523141044059851380414690485454877171688198996977674417663489431570094847400232871493472231903794603801627961065224524590811072454725876213488750685531515364188765953189018936917731981576862886287637656676875707620715245122614520228234529289069269094266909114033566864725512284710378420006689939380852550762927579273782022795866240801302972619454355630352245716512716827973074186882787752331332837774209443718515389041763624308549656221592752871620571424440929412819687715476744428163814207732828956906107199433072581141627210254251188977069300769997332258448234064052802144657793644714052080299395494942445036994075406608577894206937553781801733760908623065472722615923370568133995431665219246688825208999630590978586702187523772733699285440178136064287473729917299850222388556455728401277495533223222610293693668008686903737952396185636739238852725258094380074890000214574483723621969193167827561063379750104130953270939765289649496776630860579908175714896599047805362088275505012946485962343749129075329057785032012895936046358644641241702842320159953711426131831056154362460348320766974216015638084102876270945510714141459107837335751978231547929021369634059560734457382395177040328918795370430925860173682372580573953266770539234874568873558055174157089057059908514548335065398195193441687466440208558448512933910904864077832507709545051539928480034075120055751276440603486357137251729127582564425314707633550187519490316793610778497759957034676646567971337982312958539657504056043979106782198510594247260405394177654787262593084744848987638493203661842866243688467934680169619169472012855737578243626710998422506139483355178994925580018350947597746795114813529711655377149099152549778564739198180940405392052609964752164198635014822146301016946657913849372510205366139291660814325268082933916059585468017937225491436973993850677437478170800987988850811145595525125717912926170725295678192931351358341148887847943074237068125364775053524465377666660960367884475939516935725355844548407206729843110934021001218911788608030847384422230228776091137596292643284312461997226669591269950912099304125060223492597244505409715123867760352007730510311106914429559333876233320837716418039444734816569340941545554419348543926535617419847778593532150695694469300423278567838434608564829562602000984550062814839452394933924724010902234166431407905465554247203913842069853928157846467970843408873256272584241714582636648590054543428875959719212582772959469837957550310751773518499240831453549684206591012376049332846806734970374889697998123306638447611118267177659409926235785021938813272917383718798270258278868753753678134480726172208563340107865251949875252045496154234116815857747771444638275248869263162819859662891327443918118983355646182749462886904135780487621118674977673785025171713264745761238957276369594005563485024973680771129723020784453705097305564898430288421708588329895506953668947821193572348052094125063094712260891156937105615270654611524395890456051187339960444332125534210271668452534822539835790800722305426184830165319268297875152034540873997512097738886550046944831153544640820663372072170438626983028592947667291892038129426271485208716707375978074292586118780882263992278148291140822335721131414936222527835778824328118439073236807492748807869186953772388669895312452901951418878739292541954405343503341760598167460100790816598036461810577760693468731869429751651604811069444821533423102632811406841699487102907112002018594173004174972596301326316503435771427981147912823263769355236921063172111021030950201574693273476109840440463270797904779714220258093980538727679324320306535187332741088845779869111042337430152720448184679323867807359695250660738305877059031381670708044054418461376689664380530115458344193639811209740956466825133668538434636456161598665929035304511526322057671519808289475419410230309954822794450788684530579827362332223719489814725197400431478465276367616614836368119123793785656111500202473136347181697054254280530661471468005825570459226931101318519840509574673354345047751348953738609073328221385359134448179242774211897586596294021712445997657670120985140119441092907907989351859691747219382045449297570753638958237777134755651329000961635735851849082142906746830023008910704827302680303046434811771674932345473043600848069116180407741805508762239108086917839650817582115965695117046019827855212152913336891279040310544528895706741853768596525746119847165407063574468669215470742836869401220246540315045696889449513927412066616284072869390739543524994176251591697432831446107224515015175572155296932452744358475144238676944484103659494322403017779571079527734543154267169418643239711199176473879524804192336767421894584689213172451309818641310863392011857810850699843668396054504312738186788349387953488250348646912676713785539372277113208945451981791928205849169218061320869315686894676737434298493838441229264362840548908622781631612903886022451063021408912370891917427019748787506785064880781381430276651336047346842787676579112075876691500730643072575735842235099723736966147458145385403355109929618888315097303215887291494521761032170330524915863109420934433123234825618388150595464598767117424708825467318499065834156408513739401993968418690959317390885480896875473974065016192374288829716840074268397338475389027223617564231280890755501097637917675048609167857007201661090816739087046962893414144019308876766459190806800814986326570715988173388135302948300030239574596528299082092874894916360253407998457818992278733535067841565253283224645893262236620857739105313463511077893459159247375869340205734588954151365577143192960897564191021670571775652391849112929517197984647825640340361120582257582967827834159654500613709415204903001780807608788793348960856080162274013812628908762920504006481532849098326414360429606186169966570336510330078467581793485632349905969176399539923338704337786974044176506707188574473640238015773840451252914519891536662835831743153722780566399180128312793493246238500964585081774134264560648410833811823014271902920789441101874542286557771929343729932917989962496807338362317219071326849539251241656724994512164838489050135286979370465464579792875815478106157377209941864227293343349646848279265371114589684207729411622988738862860232901455707754666009164721675052080553998264992685505089149812282462095298692810265837581472848225077386323635761203944132170485568919464145457682734614071553029647469253273729130438210371558945180398866607501183285369664526721673091801645698952223102551115968100839157430821712850871905444380818055497310613036907149175703252993420944279553161648224731798187645140306759641922937732024162158111724070016048395171871217386979396100550271554980094904569093367187504455005385918170671208513870075381912041826391769246898621228142402036026190895905554882877889206668162063345234160246266800079810586547221665398965554498995469276045305913492475281776390869649611232984483163393570314881943258470656766824501255162400116511015813443422381097634177545284179135261371301332115634102983050760623824525878101273779449342721750783128657209847574856321187304727778840989695626226716041948746920963821706574696959904635130673288121292645707079981296531256261443012175733409395198918895464760745523702063219886496172295895560215539266908424685357208893138849877500244610773864159254260417236058669885283385493755891631096976296018497217497104251289635829873212202589411691780147385198843504027482898651525627498834039362602575959751372155024019668231319548828619082586595136787747941256773835528615905701907852748333927564284002623799295182169514401330388027869997661932084798181240383730306483913026583275600322302983356826600623152932011821041853526095016405901032366588562269764521336785746154747909128774637798653644694044992190438490002597402282219743564340173995334450847517890464099255889595481921545259397873243915900245272112834174729295746004785565200871387961042917512926282114842942117292188442165881988838834110195461392045635323295458321545026809517361201259825006188848098651616191585715755687198265145594196759347553353451753814883679854391521655822010678529227437309730367085434889938798720008454656170255069992810284403796841069270328409021741900513594799395539581327123464451551319840424272143616184977073705967080883634334802605042337055869475077938968522563775492554978992199575027622596103132299487448022325957237476143037225416035510494253444229893721455544547020548018090986466053004456741915296278726623964038697530211510745479556568006700530031455555557105965222208882520536925782092477223097777747950460915232782131652231673192993835056524057123391354948973689677378101937741614484174396983489531573457693747361303255064532071482979126432891713876388933666973472023375006669762295233021579489139266383840464513834440144073250910559462497268063584961901038694291496460743223726192974633389656022451692390552749935073906753274235875894897376477495005799554875093054963630660929186583506992381782452746620666392835762187571606861551326518989463973912181899311435727729068095319580115712650726030119565688143645294481092197915227636290170185722767990219656752868268115176683877112032909294031684268700511351092829711894559726784022880261969036121149833938190944458242430377471126048765832554697254690215071656308967796009503688956037390023378812101956293650319291624639919039271564040764649447777605087481432175521775168931023268505004826301326951275981860312171526494401110094043522848899661512916554082559131612633955615978849558810291227150431766404229490048036047133744214988520194489549186663124899348111317526605168613498761216566073714477871356620798464876087281304256209875776642020070588199578564084350243028707919890023633783303703876514272632854356138754920180974784270077621821755203580918007519635822770210793168799445929837277845042375135177824390889078799161697245292797139550933082602013221062738448626754922446147200074707121823993107785063206597582932761276356859119721758979419067628140311150021438043651564421586845707352577260275556641246024807622294399846680058674431260223724273973312102451828667300081841922636474758760608416213655218165521791049607091169501548677505896367240294386783348362083764303546037904036444660165077260040975503866693457886117385483744505811522224350228280615115476308863702559513699050547035142315365298573659880705500271574086061823143160729430047367244697892075896667822665704470500865607029759159506161856033663530963703229009660699143761223381446636689160059480856358375451950723644912943031847547520032873027878934385342769340960372358736140468591750254078689659032448169589930291175924357393938986636317168702719111318736575767158488579569319301863692866469850048437418298804022256712802019236227588213452509992252743253176501915135714897602944411255284669810216192394491428017642153495049070755344862235967340680843437691071406107874879234174985921354585848442187217799156440725305453000127103791057401210564783536661301607254125074035332142580201923631343821254844124364504699088459761134058751902638214501088880065568497123518312824358446324158797207303901459277121727275280686536120893009648263353867573699165833645049172294483889901693085361220486525312475701994177724205062045771400009114331286145948288489585634718571348974186941725072005945600158521898900983199848756002594674529142521703348918654058287510835651208324910697445251777537436989154442177369102660919365142377646827107254523022734766307118470386628628357809610159913159556569145501448239446911660532523543740717481070875306047961505512520529174042881682150483930096723992496008561925886786479726870985594119693163076757190574460649032606513269986054504598595183133775710626772616452752326758377067293085053358862079888637620403980099853534129103954125237460628559422303485255342060519613198133666600835653094075582952755197648402720630850984372042647550793803560811647340912847806650167580903838807175723983107399152374793219066482818483863884555036607095911005070632839483499527452821710403532536657935618887301791215141045233960891984024591363079769340674917106508539105030334129050153003747577796305041037133952914679504278476610426777423422982056639838250912552416810296225618118758562320742933418926709695831386123084530445287643741595483929607706017853975406015532337968774400651077068178351013217335666897480766245097805945098350439693966403149569508402396056294949788480447408977683682765193708733999161796505978657214848081226426816340865798095061255256763708614901529344067149658923666766553596320010442450264073028507239998707523953306193917930147559151938242753591188071677381471633579359887600348749458555838298778540049684715758622497782154315183176131414771118667890483639863792116392478767301507822248114659460807509399610635419787475898486682565047656130815295325841350621292811907399149370192322879680914685622509761833647978758785058866747853751888134923887692698685538656392439464951620890195405554064561081211407251131469604692996611029396311937993824209268823924635911464071971817987564941576100153133724701573643595474918084269896002700618427288363334087262100279234254091894177168491536005864670043067191011080164906778567559598881234124898708827134452057294164655039050931327111970065161520445965443766631087628976524940432480614807460999528295922964084593080025753425602720600399768876843498546978758190844774696556785827681222309312512215330257590556495822850397379138149360873383334885632448892804579344545631935812385137886520417316939796979000332896918682029959778896123499539435282746183530840924177443858272322259078282095685808057995895892584467488803727555605468025617449464806988611692613306960723549484182967682808290875647194624711223952169915327151997307833203116762280042791853456450208329288377925364238859583146733552818479558422492117536414875442930204961907947317097188052101602684363881134288631829724239688469038246490153655426755690603092616341859705430557669580580400507316681993026178958098795923856044304953854406443654493545091444557642873634500593937614241352255731253783052129499963062898215774207935870792461535633377998262855928757626276609709390827435476860714417514514570831220784505641886147282387648864837329118007841149281291600533805670712635965840757688083540760891478616341995549414897993510112193871819432208749234461180758239595624093392429753189147882607993594758151572780109307763151168239033421195134920804384962878738862816798779183144276950319313036736215242976541248392641770802604309038981276278800196438448767537032256169149601840296335531067211434786391222343242616497644657819990161735838190177419471598258148452150076193828896671398841726315933185305116059343962065027243116848057038684650260203836333990201562757875497498314989046864743924848544713916048494442949878514461515010766941274566106551687598861125638786189006307495972331946984000476841576532236448902504688219118065872968393009025907813108593115268917373145557227497724421725502393724357355580812965423132396665017048812389959843621575959816900878022276789658972867804935125666474894679087250849941859292048161296433696614790046362690315850347105507963023057614885255522688994591268131590540594378370838328698351137410708642136886861870781853375402326145203419977827908049679514578598881443177593222738375613662496724557108391544267521333810829366922846455084601879049149330925321877654967445064464579399390613760918995396965692839157015127037052241654087277596269351809662959146774410621622995781795747718442144723365146953292997084194082926397128831020177244818499585235019247243335183217982362960451658608721227021693149955593333561683237067564041840123035111679669740921245627587443439074741840675256721657364830496295910774189798821460795404008940441619387209268357991555397101758423494223927555993309710475244377290946784727548716298365965288698103222506424020050091110621908413100717378341300755975565250986879670729812184507938185771437448284512208047212816938999021654147109678861979454187023505423451163503041072653343033019394300127916688641412825247148718839459813677523702558807812656718051962971622783162283272044488711675705086449361846331328552322246504889831675039886193895175273059854454244443378276218999176852037388775131182128196867896325818984252591781631192876442640381609256085541977247907276874394460161412648870402316122467412431823069086775946886305575675478707441378871024842925589309578804497812190956135900744871758388981879520610906764896537815696078242255161436598330168702798483715338587443997513774981086646787205981940186797947496525504064489864810063755322507349883098813732471999553415410768670070239251933958016542868170267111910271303218369934607904876916882373674653581767933246233101699972652995987366711159461296211068215719241246940015733871714698236058612493919275852231845370584289092130993524055478362163864821565811954688575420241752290823863827489054704550225109796306348766769368517447844252122409787032995162299201980032199603379418596029231678478263273549612276820469548430277588505538891932241967141219917623125748234792761570487919974569442343275616341927691840470881123183279583556827370654403118261873117831744124076588287721961496270980400574133108871535117551796427783518607979648037093177239555599834914550456200095869199170698303613870926780829312219945116417186905136751373365212761943065425481776342349774004836208093721156240999647730101639758006807514247548424922818850674976774270968202615385015546491020467047138954184481040211465948219350036912522029859269533400185068547478483556952588566249479245104101918588106758346652616899417482550194175439087722512128169221911690809625961109795170376570417106346004771470188760485404496664988401711308227805370070271498573632642706634485982564131860706356715170378374199388116585040417500346291983976714860269400937001408929428613002525096628038795178303068055717462994000332219194422039945921367552651702656878539528160340969896036590284349766089283027107680924434172195187148552555200432688109546307270579046829217220614975374385754208757072263098507430662927514782494704913775232662668994362392756142860876600066961247638711931340649865859315136224176602732502293542429192958177896834780166935841324797903396467878585721356516655894726711162202943176217455627409265713065760829920433871298903670190104826572743232782846278344155827866790659875160888289141660496424211607537552582826689129213227595505104789266549110296067021244452755998705969719200970679620859262827578872879832836935763899339903753406328026405042122785294763075269511620838549431313373085622805670796835667772700505429703875470862341359102700963016522222333723803913516006521806014339359803608254269733275444734596390343777453947632848043361530701533808623736661815858108736174140384918250816739579384563020584162541017466749238568559768470467571594880362331837200768424127753191593860621974402743225850042351819799841891503072961881357762874072364580154140510316839512087011765461794605299265614345157935792970396421767665614642687678536353958102563469304182126386317503701948630915138593564328966676114254831414736844722670331644437661697521438731679979273840374134722276120702889744425074454165244295603752935548063264143931594753557189995522323427807251993251914633511491356585572126154753565144928951750465891439860604382795035243019495798453078289231365683749378562579692849448481101825644513538792656703888985877003440236125720039240548822829536353099253943600882813372047102936042851122789199944716794153763398219951451788259350065209022734634569875925590942013900095562151775179854028975123766989251345107547662134252522069751604761329647270328544126040234377324595450902724323011220681513234348639600925481765311641552383854998254959730397888154336525369527969984930386041701269942638170688507987865250854539616803081464966101704134248982401880190758665820767303611450990390662629769527021110242951741754919665055493511349448124324248896380395270158697270137251426276400966366764858013072797361893749973074207351405611259302059853374907657614450498792769844934252338271880366929648338086701873578020826829530286137253854397112789688455826306360082986930735395182811042044446237034603710510931645011422465290827212665465033441636482940899726169218639539421010718561460561855543528141952638880943100385581508675325086617045313251376186104802351475029614238316434746462745564405208250434196625396669524140375757731676724635823401941486387919601188743302802774492867256127215907892114034034655720582879228437652860094912895902700850438810276747992599298099906038515084197276953021960187387958648101629179242011995991354378941694937484395774770185755315227335569445540734872135122087212098887828062821892918633492851743880187245164796864281088271699422715488772166366432771200017807958841813342700041968873506803153098031417944030285096293897073232146069060725353098093067418988861506830579918890848923215990730741794976934008412703783401121311086458118255409414932881653404458125402164395519540757725560843203816584528965312945074195274219456931299010027872701690275555866464928669706087215651812397983120085139788322255764933591504062380538123834257579409566599413793635045954248442880315186506051550453958805560679659570643523325675262234107116675742110191903261345772733856958942594846115817083110185918437798025979379962443398998914501629670821490428998469060234914315412782222745783016123370902998131276295443028681019984780653458903652478110274335364477095396195779920529195080863046103789972842615795272065448593416118422075682304568001353760017909281898394742729997856879611890669929420407245465942364312112048268112873983589426253117015172808504034566561203202543875711677665797365469540874687421861891326539912221542654201732181653525210701171016145118062050973878458413092316867621421375889222298367180420247931985027549384366376584095599367094313240996609672935422726354948400811576436867282301061200071300927699414174669002362643576469214308618987453808521346173893271607755480776404729572489572013845877630159188647757905325064066135137255588907063703161370072742855206323056383504473967002296832142881636521371594864319183173130210993891784955455911193567090465847462015766498790365985099328864335383300939846367299568745781959762006351551861897622225112760397126642709306557618385228815225724648174467268331888819512097684714153708127529301191595633648643522218603739943474780960336135313357070204541697507869018963068784794806285884580270501747050473678149993059814391981267953539639593891390585382822492239397649624069506596855019022138868052398987651197599844991209455963229268957170581902642879603792291202031538583943803372415337581548444361735509527092018410856419007094680350315240756525736741492657117922254023851492799669407501289699067044452326208335729186983932827718426368302646066192219459940583844557477291313915425736888530219557594944958341402532551076894804732710775922884103258183868950473271910293367268420717311545851227897457254682874525032627493993076306151231046465787744871861698812375373787813282956329087840688438925532542574751259273077239158331041840972548691686019343222789443835636841868456953537425742033312052202276725881416010359790952029425258059476767864278495373615942126038284605861560673530365282932334019511595047797461970560383118071350572527925876993382552868334747893087899589526310775350370318107347624917839412090750597968752028309551704792221167827938843038849366496584366623662853178747035249103052508808100950623329790196793049901063023042744255852874334034876966971889545219415123968333064553672684572184103976610884968528600595806068201611654722770357365381108276601628827967955530736214622298659198176170557122687295999411533346805041378927476474854213779200430862755083297497833911013327284858997042914962962062751540480513630696753466326679749583114088199656417831419600684308723937637622312758845594067717208625241446038898400878553625113347978080851011006328982131594274123564025746556210190455484852246658195535710277264046058354957355522030051467278516373338857303903060787251265592526899222079583081787047284320567258635935764945425744386328870188409619623412675851886776172947441320529651221820827495552978674869447472881235494618456948519151933881668938704500898257837695302016303708313166000023230884152584761288244815732282376861155612486470879068592488020781160961875252934684003099054297765103021959047981079223572112213410295825314886182446958528095339490311504153346679840284077692276545952397274294163565934878740901854973168272336517075100458291737861511584466983377584060195805338299904508782253892971677960471369046158361667378899795840147884430805690986373169318807306046040523433158362195900110170415678238831275141458071389269082215503421024304202119033309694598433289480262465717680180264619329161683958792147231085812030745269242897965449760951600886607141487575636024191237892766236962446912082571644916293884270988203397638631262632574588826328188192780209068895350255090664033479953527765257686175879832981661654900665681276068764733009694295306413133234728427444847183721780252187020355175607835946992235168529682706505576730877671174319517141969428227389620080087674224130998565466776499245733492208712977639553357781530542546910029219703346777794304431583544735522067212369662523159837497110411527877124458361742054755799940475710304480101429660554536463391191947689021935994237510199107863617816470374351029863962573974065880717133506866186407007435441962096254015761470597402609381255253851184364415050079180397866732988920752619210735649660458122111079665933587336807613712041079249186389526683488997672339696263059275600976798330640471195985416227572823405494447875251988483910481571031605036971878375758557557622923451527632701593090958407365330527929375260849650416063396395664153452384614999387158938169519346831119892536354680280867432365647245628204965729002543993162862490854197599565413202235027477247269944455804811901358299604014941022757108403698181239379112989555696542406915843056873187339212632323478593800483958048647052395622051081744833170806372121624079917594988226891017665542604027090979971960177554889279716546753122834877251289237446314657787101003666935496659150064612396890720307273582500647334275417145903372971043739794165494804729673348020002989393338556987511187319400551965074154880554332815390868208197312644620057435044917027374208609408035974328847129008202682432283786621478929607355667677912681940802836999786125109600977270527573263115401743890669552419346578829901146208287432848536159533162019651120958565802435878544241527802812046566851056682728223800244593032025925956708481478906462562511220054133344637385943668342292465974400091307452941728724676901100647945052736945518651257820113454603496637597667886822669074333479560590309552585868039107879489622025921248365216689245698333213272877354711241658732925458186799425646380386277763258028912587610445991073627357806641950336276222564311121889969310138543934597747645192502039373167660038575616515681180457855321501169644430739234737380450729014255761044260293798932318382289368115201379265532514698614814850439986582806049964718496734815497147948146405907619620726018785231311285018413704742600971623386794361404969246983511215613956683102397282697551996830909950605016932418262303882113084457123033560528708767849874130216041820279999148591685027903366024545158542276323064104371327243243585835584496811347738414063263359990214524947795469750931865117604564761787259170832395789711303137120349083474864250078723182906428099031743404998557552360114663970030721284150853045338629502581128659627062125985656847626061563678803950055542760913997839344792247555849641039840424664114949398563406220579964126498241863008392982148021896532120883481149312648822023977773232175750954442667442585435754930608456404051147346132710506204553059155988159701836054330484874291915421334069778504255364350303307878048353308518013028159169998097256122721636224051672380651655498725703970293577929040541209832280150420225781526892752902550507063643457313494160866152270532627907911087368270333541639376500529566097872203622240274568926339812105918933616892757880421336219491767661197066634591163205830546086609234525976364478665022953751864371414219033314291403279091148600498772350309399909533885967610187517499043515271980503362517503737396723788485950875598969672895953335962422501615192584623777805029401325190311666464499604930209711552103522008101421234434245573737264735582662798898016783402105432065499655155895607178405286523013833980882038159204003435188854520674288343935352592930556603762884791805508966932126192474522104145317072141838029045156255466243889656810292509172346251975721315434247417489197808583383823695288351658813819587727528352154598756647267942086698657851233747811580075800790985615874424380609254201421182187810303735673113467159766226857432037698434785822947777863193515791557107093852120842341904830356541662163325140650884886759905855571914163764825919904252643896887832357003721268572573412123043391673620463662577913730025335316108244315753375928830217821381081914888698261265074212305076901501471350268962871308421562790325608554959161890190830781259828123053983138159473840066246090676671792699539812348032133215750092418548963147078398510532654521023876700868133008463313909415486158362598346810509346298999533188141113868452899203047302119351184817642653678018798562293149946336734564660683312855298640857491180480435824448552505969589527662473114938361994150896818444542486579698679618016414413129201711458184518538007682914885293964561817735816078052317705215165308958306139651013245084832613373336384521546282182759104202359728867629232908677526771361349092773257340439045448791904132976914838736646932039801335357312214586784119342700229495167893112322978545818266749449807504549337587904189705009473505042733940362932251465544639156902072976749796683075880329063710740331835327467212093316195523070713020255378839232858337021418999075703860447843739426951162071648166527663407380930385527240191708981949505555338904272065151824924989192107361068735207780161889066929572947758552669000829970453062421039118685093359408003021043119084764975288120521511278531370883890891926099061018598990248288242062263919901516899923701452724582665835031850120405602854018074010536002711585202393145745086531122167112229834913458200528016395391856793471926735269814378385012966080351605049209603507494318386048592380064054803807360083570042994842936082234894109338149280228180712361810583126235755962519244394783231536485826725322337722960804282236284163492414092043259890122816405794814311908791311935049792866680297770787078193918981599902858563670127142779604360754595936304306129128734216511605156930301116191459048071344241064862716126809694126961050265683001226947457961176855895338832165738472904437008768719207733910681920424497321681180285890792372736534491448454607634635615992715813503871072241192722988952726127941909949359185180645560374927110798051460855998212114507719130115639556959938133152401081266292737903253506470411648029080703138808792137145016624454941941803234847920771053656059706358218375272332597656264722147866925675160928413560121850134610716492895145822679670783774813553691908004743803365883290792722163330617604942866526882427037941858960577291425026493217307110934788881316276381854860863358537907947849904390579320998435124335014460600142779256173074573698913869447960958427808375570642422266362689431163821841207893566011925759827208342094041369940229047883059860672767513328458929225950152550018664207584176610166690887198910192781794102398778243060971054218688949026245814482870316389637722753397188508972407261058517629557342871332984786120541404706517972384238313740923465810133008935235456192627928863879603705157675662913938778289501729338465083516700110744053033106548557773753587710901309221630171518022940008328799492141231990754803220400310768684317028545824730013131136113784917620063416191198436490574978246077465768134169304444947971254385497911483267696216337834734744946757197609551566587989742452120833221179473951526780342663464678347156392770916396115079414002796032751294678052469083759565649052560023360866388466862235362307403052882145683273301654768809311484956997777699679608808320297369113158715690798626610938275102592502087487055730509995532239814734740677855141880959368233509190398965631403637756868622836208901011176549955906254951569134398235964259871319149779468641359921272387426655788686677075079765825354214541714334304792482510580287034242041087174264994908321161540089485640196331806889673378365653530985149082569993528655423138150949268591104547993134373493837021034569237534865114384838904070658792067230150201225546504022989055578544216052169262986094826130422107200656849408975211256446756971096117273351761087663583138558632010227195073976545749938111366571001469219834491526965060399437937022574694427034582491888099355594610240480618500642294430031604128390769164697851127637008589529674135174707302153415433162088862960282505140362420320503663830145002834673978575789954073847137660233830722537645449579302605160668037454954099206175437105059122751684493990479688650968895999119413414623106987082734253336304037497440545290437381947261902766259889924425691647804093964492617482414911700840200847640561672403340709131184631404028318209187546438022437045767015856925172796143957196397083284145751194646066921846723870153914458229052826527174141604301371280859854161417117769495427324432634050510143315218324717244350686900686925131184378784187598671129778049744374523878328032673424892592075307482599122976923029030416537090269948803027852453460111889609828742335041027246580215542892716368328783688187731181459454893373802575003977808561680300506539665777887683960190799144264842496378709535604183203259600842244812897745562990792098554683601442535682516960220386346424908492575785724103163355166716822544875849005882194038376081640903899024497642397040354783496260667720256394908989342827993792276831400950272870512204939082084292948866771775368563679046665541945478888647699106257786116532716218740221421330435780569935720613645269607136089561484254454669797756877703572138083044889793130773131884606370996795116870919549286029024282897011303775680878816350457215364870687069976638365821875461225786366271517361847929863693169074728562147037627089256928789105779126912764666312692974482960069715760624947531722824098433828844505996992066293870342926034057384357822985427070386937167614497514192692306665079363490733439677344014766691200142371502585521056719752964245858802944421753491509048643743772519387068704519466656256156386453891031437763988682550600966293787947287752309021866723311009972846367800287121149445163424458053091741006079715599409060153651443050123374368559658547325978259501767285354027521654808400389510829556930120509576614200689072376804365397242084037044988152220721316482766262491581063885186933268340469154439480646635534704484782241229333533167897912056301777130086562237600880858101229015917292511844828711345888156289798354379308295637141063868955576721549158487668248514152274096908240257387800479323741454949292884882754860342396902912620505571760118537041255360837777041343698120866032065924583691834428462670369509055824367618170074130922750100230432130151388696211389036124467210361243452454724118104820623254121106055883810093778144393244967803234472882897517644645381869490075668650327474135307361458579440227150160361536020012666588796294039095184806826354889286100037026508715644766174736337590577044483891850671537116998113883668431419223267832537465854688118673446143459546636129984559005637356735440576254752364127878077048977590162722969311880674141668552234644569763769286892084681362303501214839423267096730949677877418948076178263285201619622814153593814099123958462843769369222691280042409248377980179664778291060426575749346729625017440675404770805084560822464766738527880365027270968789082385551471896973441792395387027030875003324906354468329973326594557993647928449600781346387822440325940423313252671522383988243889819864407752634496563574156408933833225729447318810388396999262653306319528595777009465917780017263962087528212989026529699939225976207257960607577336187073828601378902136083944809888378208310906217019981414861841425485220874634123309662451293566800286862895922513425976571240109786458806800779441816079604566270002166427193611884727041707128807102924989334713484704551690595368170161124078173246219841006544610966189313554153739447252039785883596649136866461282112648874552675055018157712496473183855497920764482033815103593746474734087536043067476682070707787178278206277530378271996951672709739167993175927108479715785321604342701254592519145198322553519356212068380004219288572765534298491710016408144747006189524858323931949711508981050626884079357992225548083822769535647261891442691240372149200066884206342389670130275216500788865631087924298453783180729280293969192009855205097778743267867268174383693608447187038264266491933478252816900576909612521963004717454419629584990974433378132497247160789325873783629136851905572061873762424682677400867899312239353992768245784992953435847068860805987949230733165970869873566677288228578261711361748487361823962280067498881870651058056835153622600912806172617230437355057219389079445986042462480820964193237793359150252171053942324382290105033548906761877232458409775038503532508481659848602164034124308524509764569090498975237760188288203495248512506133727152990747637011391963350898304969739255740823092752460462774866868826778238540843071410999657577239429130339658403690837835309710456005913991589735787708353453822025820357940300485769076826580556448246660485402972251634587035377320740327552665665700176683360738361011772835697601967113199604067693623910463334313868693861875455500929567787989326850073815513175875263159952223254879292983563362770865284436320457152491276887921321433643186899755421367799156299990441619699860283436219587435895182564310695871092404154688291823834617162794233222443594364718131530624518948378913862422156594840535675598020553920490780801268273934631078518458605530533036626273601520299574167971891661678153364888409382439723543896717478879409761746062531965070153142198141946202428136935218291496273361710372589576864194772634400429088613865135149632095872902337740060687093574331806592677350513684454056785880791295119667960326157001154995169082768420530800074028254057919290700255710003125241451471641421417407482182544083982464608407102114991887644708743230952274383560692117690170807919121187196992463692655162217070542795333116699412080909752428290634299752268763959162826585989336468497085746056527454333932072049612539613924188753097687754891005887379182682401740092709340244139211070342305617988286485870557074406859472905379313721071450313131058948434949197798901420138865821892471364429991190841962226339057767085858306083373241835458545822001527703679984836859019830897512185789961577881924882553946621888879512199180691392672639556804255443865463499019124856336137489382946089458263217926005162460653685202852880547710985223440180291148122211648046110115570277383470360283270610166418559679734217925007888729276457188231947591140887705571629169999054784004481101304188790697223111984902502266019777047690817055650690027146801979106236686018875660594606659336367279947646659472530019236958765865681851874026577250060125114522604457811023208829397224377956509672093021188341743181874078943341678185843971803859734402341639622542220756550012926484519797973324538640673006012272010479273860911810590081338261402932257311968475247219790771052127869253114464535222788326575112246430432563693486920577032814077571605683075956262034624484068202884044973875868356872561834199228565908405436712251133848972540871213579106325471246579102526859897628551834675212169929308419859199575570416895877026596610795073547838711126173077820727245572679814039107400126929565346974226834576673941955423978469821462090857660802721964200588275018682131658340771991015708246001953898487157708640782154865914906717370775657861034182500893302349150709764650222314424987090545756941257190155013264433346412654860998016631329610550899596758485925816258082489939391047263731074032796600156999364225075713640290776626020777655358936361822525653835908084886095359878125304697710374261047303986873937953616572096595570547118478946083299820281768877086686790592079414806519610876335312242021919190215313151447425911406361864939473553202079417025524006101573555923564162637109450313492673474197381515672517020849812240732278254852687777575379611882524952004061633251867920037580135222106479430923427997820885820080345248147988826581725868295213811385617108946880590636015349858763426945454058727513540676575112314740107904837227243933819814615220436260837950602696014079480825121380261842188385635305985881989476944980110410123158276926628580798038997814924419997986452602134253750506796817208712290957761498926795598740466599645070938655040079505299052607933449881640585040264658057478701507709343685856702658419040748245598109279908413665189038224729785580943995913873992456904698548452424082898581255168180244163690190599723821952804959707389438031400291662933793106494986060492618619855883126375034037029864167470511172682498202929995394623331137103766845119399957524185466457736157279087559067907064631053772787615586098406857646704748013578122064477279873011571520958698653171978855209447188433835902272587708898961720038696468397393101335981479448250592394487502346995435739062924058189823947233756673900068864840519313958930011127089267976702891367322924092964718800387660375399026205661485192997715409290405602025724358920586521950600225948337816948377288100824714419502421426088625724115986071944255858218823196943782116773621116830569899657440917144950008068238357506540523243489896886782186395231399259343521580044502034966741439366972340884427925868001773791238690152132488769736506829812393908034009493753255926840815224143578903117566708050704165721427992596365174899763227232713025336110170545039466590351678635160143677265702961445788439204929615971934811780055074221293135701038862422650557823557697075764850460096390989016902273978335153316362009607390351125646271056627767062842629471220976567125060017127953491763129946391514366605716800768547189088723347367110243919761105064997665955113393766330166444127561825642623893797926254796412752277047231107583867695373861052121635604400590515734309063716204393174759853732617274509233568156100171834828258596761197770733320904135668299140591533152842349096645551657256755836041586447366660307175606293249576948795991563065090147281253362945081171808287888931643413422767697790737931992676187300297796241720624216299668993815507478285331377155085822063873504381928268245007393940928398805521002955703488571457735579747089066173916780342558144982819429215331677812647105728866575871761108664208602491621569055995158935558431271270950908935681001759170625599145838519696429783221149984975210841952272192352706586096906386772534104538234960896303839903462541994745181951207294807635270185619770253399133623267989270916192103416828900069242353703491112262359169833779321710010381912552455451040367948935581175100277237298683219605082243925408573320349161700921483685498923738410442797185266250608836644180476178947552835500863099743299713508734982384476100311379882689977754951294119842699277239214611534606417564277990157891896984537165758010896145351809185395921535865573348967487523916585820962700009485088695240714372760178796945343986184920134054140997383640787603488321106969613993431001525577455125350302157492214860222829942310696099740696624698440855884558990590231972203897383806305745412346233423311007692392568313046449739104754358421055184464629789558899067549826273395148248941157772017496742392627988340640103196131774096478359553860670840776670523719288287470600060611657642548618381864317239633898646429372573051623890883821054164187633143389968354191299840334402590051093384766154573944633319765072075690373070178369655030921985435011603668937563518565822545420864933112148882501371455727822845973537340236900301679187997758298696792668056556727144086746941623265825627254040419976037538319425657065497044801425117791951351399860873982731294374026230413931099773762420546465485293886042857239429822835952971508621439034195331596581474402390309500102449048863048081736769124364475854386064924231512170797359712046046853575284548132717286492532591217607852944588934655111914036656215725700386579091783451095224122611909073237668028834274779040812637601760684329713589409491556790275224376848084200668952835978147590081572455619727220088109389980850944204175398186677589302157102214023155519047486455414918738861606928867507921349728923540740162308380988127670431423589471565103813714441038138099745106682732598401447967296575268657163046370184772436415559290887381855146871988990110658906380317760157161257462213547832273810268594179241633081695671130269649571580961496479509255868037578599922822532464341330634166011502224436785531813584635896885287950307460999910551288071910164898083013570554619703204043004752569532806614033242430090140166508796979539785473875916449700625593684293233171898918321063673413978754386601090867991868667988753770479612066127260174524580930608565451543435191587728639338470717329275111451175887211246389667905392091290846716166891881267405552860129029664608394092913377570077957244842977724820926999188210657049032782080049616072337750610934417767490854860307878620138817143813969451718425319926854895785961370021503064210574869572267388676922386455377173783319101332757449629136959777368979074683345812251516743230019344208140315958158286639253943607414857375851384153562790384856136460438611926220156304976490178946092947149026218341146735624594451893052672187285483666731119947022692691095998238788085544660543345444182414435384712747412197097240796028381464994371626986368943006333728501180026413248874868103250232450462619219388409450589133477639534857629311058305148720830875079730645031565242667636252791225896108682612584294731815601427188705746463012959510899378282018747989012874646142239985081141851252830530999443718090984043869574825209931014661051801658263214836027244821143830391052908116433215132039053703148635360798293593335838884416549300761878393525350797715941117005791125638819746118785712375783246146835730852724781952280344620807303236236606702834408865441869531446662557910261732031221509563745520091631893947105423285090355834333781587080674722416622834147796558064158283047726543739433216655743657241649252428590005511997744534985240672820937361698917685373836010606675626341404170259088571288326629905547901443882675875875111790881322142821065596961312417255677388544482884866857318549433196284396703758689104547783277893404558946110394092377025002602545049301921165264568950329505217806962131401082456123703529121372769307264085897859957826176374749488386965647030427500062854933187898173550388291398717553696635489415566036788440994203353119200994689364436748156405532997583895505435183207733829502484453850147230765182597744552713654299808091457476798444327775616550941114948532749099534134805964812587101040826812262158247144910186233013097984067291422685136609455323291144671733588741867337976342014703628110738924405166981496296049508723138267349858282317403082740120128122202758345099200170068380571607752279125115028298127687522681827947755963092281680091056573300257827169144338557389074867197607753053525189184238989163037497678911346858997699363709994462667291190466979328228181307033961417752287050733310351193505155014710632501840630913883633884563346199671463506248536483382841603321454810281828433078139482444144606631736999147579631177210614054541071803747773556453222389476396231982024324984527225167722092089951802771208796106808252606448435608474673382683992315393373968253994616060922176117079851063978860531473804836218746839532025708907457811507258916327337546219987435549062353813045424639117973205730179386494793507422174118994047598181651504712267254273376938647664612681065531257065083566640236191974013932695108901912946056917959949150688143035930140072192819638483658587833209445183659673039877718147885677203853493706605719084743412426845497484390865195760109449361507258503048606583543031482306985350071237611567239191741662780853916721727140325355207239066611626779975981813817315634852186532544452230256284074731578158382021276462183851470811826600680496692077164252151960897988157106626802564461193739132333913667483084450179956235996856332985926632648061176640060607960519123589053331233435172745422367787107996846655448943275361317046302805150346743211174607711219514706335618126178814318140836325544644357750917418341930469967573186184683965040935177860820395103926903912290836125428500281499506651495879411475033837617692187552077567190076646124867453246816973039981141430485816506995726971810101884014723303739152262607845728752744724811167106305080831675854489394041034806736788775232638527142271252904606724141624099178990348760354685466923445722695957460073419745422686356832889878337530658405868931750963264251034497571281492476163310717258125910213957216287803267556891523264649337345430666543967297542147515212497762025186375710372852622915792900979236318987155488198327809720526574756575141980081383254490202181233346926169814341488203465082208974355444571216408329236301379169991117269720713758380991881404890720228338908056780205317999174160505474116707287813440195348780084242076474196654828008732360901808952286538585515000633090859755901714178550378865634593034898095800678489542568712220058997245769320574410766673973091444705412298094107648526828216634270872891741608667800540989072244764583595155368104746652135120476437840823513830567366755199485270187457321345676516428892710894592667951731062310017482076711552115389141921714266419416219906518115415715031633397132722992956260364054479194116005978551498121335773468921354606797035292505961871997629788275923150562861882966051737036080789123549806095597702567048394371759742572489784571437689698618765354837373342169161260992344000419553612719909167855450334026890527213876245774026392430605162415995796415206037928996393427562105148567864107257031090714300005368333764429134444931662572306637182153734372869101697075836111962862584719247524431720433318128496478026269743211868843478614385627877844865843670863386297400268285649698629032366647423883266803699361872764592777331327417114953452169215919488328495993515129659456930613573592082786980118926091193744346575754807467881708560281293356756898937386487479113176349016819599565887403738747683426405566116884850121739573224043713623227794046992158917901040763995956099823430176482486202454270723067413544764480771405865798268193275966803784136195506488177567883191560138424817782469666400887642100725106629700320458814268589690630554653216142455923782201642103559256539158643544309210875033727060754384800954148914311957540402833823764975078321682542385226692302934865055288928164012602217444861608848344051936802487930034605156392175265217272531418033255527556792588678630605292810259014882387660528375300643511040514264513360428971208305322012177810857396282464377793937712441976655363643914325930978336185069226466311186573766758994200189378564472831463682511220254527781061582961165696798515566172418674312827699815867316535468785227187914563895956675615617064301197384164318676188339713871137903070769095468807836604873434337658971977400011958732030794749501834521325993011698736241712751212207764609919984212404040283634566650564089229961144365938441775887621005041953469299387514604170375780609511174327910252123677629438870396677549803372921479079718012361960766758089730888959167050234525386593238725324906004170224569319103182726882788556007879461243021987606184200426131611873328417709853475502805311057038909320461593166571813496851476329321074257749898831188379897927058465229984776175009653084104372403710329387435700343122929915677565193378712328146520823709320459636491569774862600018092729418457343860880109326618089474251135415793059460623775261378552123245850083597219352803513515163414795262503140267132591696107360516553392097307274231710225715339820055458614140813722653446618362705850408879648102682053541568990203393618501546003816832309420288461805089633865870122473502207863402152574887884944584878923354400385510369227596160573995748847196773190066320029015734505288690027647210433236549388907993695613906958777506406931453600543780383893708313642314845944977974217685016414171326517548213569934878792683248004170954168916713106446679154368927755737880225132079440178690155336533811443466351712979163441347213352484611912810587202114420645708610520129215703321888582029210541444550377832810504173036940203695117294445100898771740198685870862033403906371445888377740824992836766347717525693924475221207974157483087272739559103276481883967057316425309520717215969751248923943250732042780926113571123776275754437665645095593838944825932799566589397862482627760298866032303252100115840265607869013761450721863659503709638429020576198210509705330981141488162899763232536073314039537237323487901787968565156754192962223653598506995331197373502753850051224296774908976716506840053017330915417614243574553472120382571379781445480402528102213665526102410593651127251702040957325803518319515688386006682658547201710936566466871140643711231602887804014193925372548937600959582400991048095270981519370178251441501913851629106336263189164169117905160895420170131448633313485506354125361488450713593816723381140496743333668563007041459493292277784580468100073125574435745109111463675784053163322097258274792160060174524423923052934255930678456283575535447988804273293873381945426616003154973304692361328667536168902697058890534321780421441774421796167632390402628768018140725073196073618020471203320114218428664630228108840580807854851781246726751938177728962417653996661618308003353571427128796994834791925264387788758524314718192084831482684035429391539690258876168039091031736544380644219767245717525836903701583343196788248147884369970442714528284723489268837774902212088578951084209460641826328191179193825865793459748558685113788905467766055354324280468719835567990628461547790254338641441746153870541508100467899714474617445559872765881048500639961252211903505554594965239796529553619985258235797897708869436693549236285098927049465650365864713697709619259368749465772931590054348019137868412210294068644798449450460079852629058909615547209332366344129620220372679389434714289971959562960230271010028439900492119086043332940514888889782184715533115377690011232147095116552124295649371670388890471103665302178108627068631249199057706390314413747986204948685538025640426598664868841778346753563911338337603050971284599479634043582066056595622029019634166882081687765580098194972231692968410914054502781051937474566627166873553709471575443383735613561789658152987374355863607424843769368924974836943914549273295446942546613056537825210569651488926549171093241877404079467055569381209884623069917265152174205066871412297466156595530348370249269993331613749741794147780663369774459796333442865367987040038062025335665644343214352923409618885411518853751330808185488130796329181875144642640389894453009468796648845533990471796092303189585542353054293741410970903538081138667360925606630866699947589036158347707299440856965813808356586050377410156004629911182608589996508564722276445849487221932641380399082525490505785506099745790110151462247369509356157435818358817039465187753371205063334991486731992557504035086108110970758805447675400253399730130352819240582536173163726469370012993425382427068954847245482436952892778233787147414231028500426545512818971012778780544359259028264810962321654444048235644328934202295613348152466154097754489859262673306680595311559681420551785462602929689565481302410077474545466304499459525816661975461568881541340956816987417713043207600104791894845826299498845113763757486581418124494260626465481285733229817453032246265572359666189851999477015023705905895580609728159630234470100211415694767555443193489828717300473214786061557687021532612175196448167263772810472708103457970651324938447902212721973304344419132890380279453744873227655434395725227724025988744802810195106667802076931170945321247985990420565293150309858579448866791519826756346337771124031633152573579432328665458785731926775642114798130192980318086942530594404677279351553047614180778803002183115823528576376580155670642128827779666916180563634732524409874885653153977132781097819127281212566607733886969196694991614902627068977170990074183821121391653011829086046270306037031920305608970695703056951614827174031088367713891451157002503183351430861894396405130930268835402535803514305199213852435024550662804566009395399472420717785118152984480667233625576530310427964660321141930448914264032362030168876437878039799974160772603164800260006108665517347271809657194368005083748653056698526824753117989325084567079942644233616614395441937726170033935759292224568280429009172918660214418488152324067778614613637922369398241079323350703086146654208139370055392417461034493902539262257857459515308730621949076683804603493388997790165551204229024116571653749814284291672827056099281929760814161961970725302686776990721487039991516641038262650033897024154424426902288362525245001433296358592928557001492285850752837006746616371189535325473933490596457571668388067794993544918848508125607586136197671457907350793751013320299191238866542751354096490352850346323341502887086267175475335711929433625031361935548159335201431353195113463603171692517883163996513587369623152529353471057305353893585361772327193582841483946403124989272282005236406975068868082475187041211342893460204794411449300924519879302594030042879567099225918120844538873169796833019149392060824063602852103667304821538503992459605817670613074792891332761510925382108462330423866319138215829103152277582309567937668128183287720724117190276564750903968688757111375851840127286956633208221108614460354864939018907780817718786137349293566217451756252381306411176225390068575611874635764900575592442926251159827643545294245144123152285797388606935100140194303667272512355891790864770758278834370263478109961777802058465096414014072827352710728499020861140650362615055973275808693447603463352786910343246256917479643581072778629442918188223200165167111222409011728441582280461941703263925918341263609274920050354501359098748184553826969226573254746144612898915895995486802624444067986411070715033976233649303449264124459834214240910823869333791410959199741750592325831901045227159444139131812354332403309865297896132105221962113072045315271325945953095195506471390964607940180330950722345715902988061698806092545932088702218166742305394108147950338847141807390704916534727530938834634828163883308877431088338757450423026345482609552013027123112773572657367156317055522921197420888114793314665189525419074211192597778779589633791668908409023355045295100493484027149043015267952073939019597731321632498048517287804713995858336143687837046075749705719370446734364257450098513952245407068624283320832886630638602408070767132787066027010405605552118676406128057857649296680032448989501728290563187133822313302622034257373492570294735034603066482048254210298375195826760469761491060521349857191352348202421550356805251820397011789401871418640816355215687079966142983642503909701988428398683053748365062730197493071976135084228288815172651249319102254073731971772171164173067823810679291713362344292634880292743559600761971686509377107603979755087324586620544769994554963958287629291045149848514298776259046114762678882082330980420613093133399135251029408221567988512825032689160717758547768036875958889923408666650749264667293463786538723715564375951691920641322581762748156080184155695573840692596362574345557760874102782825838993626920810047992584835352961443547161298383369068677554560034625288667875113849842336985305827882047423610020237832027509778613488089460657396567012478723878560477653051393689150532199580177405526865287843890414633373912053986510706860382067051592654020271123673505450205465357115620134080002370992558759898391143160868479227451563829288052464987935321906156455730898009410117864470435116132257757057426089772014981809269708607490762673168835459981463470067853174544914676288417368350601811913349121828560176216609139191265884236332295295998530099222789695700010739306095144611754713640672679205634873852143131976134792895635320957533539530220345803636311444146359186231135375153504800922982354930107515733945375431630898852590406436525964820073500639036683168505411511731496252713960619136494789629766070893124547715029790805874256983182515184909570163201360934654320067514089773841415604695724594872618915969882518116732274814405863776962052204468690958577880498336562026396561786909942136396590074524793183278483594842482119764039718559721480004643274631641225165151011718351359802734697435040381034237173533118642071677848862619358334798940342301717165644133703426600106207419090023901748881061041290255142135848675979416563545317531315925715278514029784776708453904366166788686138579909991256551701950637688455164532589958297169280342202811446523947627644889407320117158310886137464341819914384469571227825149881129144600660287939302400032640883188876131544455190500085645949416592378630071562634059021765267474296013833032123585490949031549719520238220941624645894078199244675416920959545109688802103928276297453047707879506658353621108057922056006347051765154172194419708671963160062174868111772184448390493432442139282313968409522263981151965789798013404320678240531862739562125376626651701392173054820395217638125978639082398536857707166582086314180309512993952630887184706459209678945558062076864011854726963613660535223803935179638955242338138492078820660352447414480025146126407933858194341009582475211064672812026077218413160553560691311464111069189709501863975417307386017161056762878906759255265080140729133890884335206980949844363416601522056405295778130590200138522572430694210916714333999998046146571799119008878955560230327116050613600117689654583903979897220466993615536114046145656978246044344208571551874318493303663825164229143073899885382118789309005911831736081460577788067482147971172491214051394057937726485109024153580808434331662011590237226591650551798750069646998389168637137608638340142898483068358213368881450119551009441385586957676615653139816106536353052778827002786870992588553926141896494242689129483444520371313155973839327495485218309997237949081942124542239083591404875369487473944734398865130916478251161077602112697939262999791904355532714176149348365017641249058312780992710373070847241802974134560149990189178486512501280926174294771727090826122417691654161445500403109487313286924001249371618218705268731260281111080590748719569265673122084782979694305785900181052308619892872501597279980218235213089752622306191931582174636048017233860309583845857325498771954001117704973826142190855000614970888048409088492850690246705860018496419841038951596372682568911141852456263282768041896358590072838442088284449235425435306780513743867263482669976644507921891343361645622141527457387429165516753169248827333201789795024263973744595540452744430072864099622692682611643273784170608069470334642888535148946333488932849720913882215355525867770345622532748399685575872454778527240192125360193635530388088929305820730244128884646713445071100490496501999225053506954313373491003534743220415498216034100861150819049509603714264062059856465537537183162000368955156910010474415403386669890377320144423108053193583903294174182918118104903314349022645302643174518724604962582960099033855089573768370962612052296773168590018545720781137876113677162235802350539735293943977711995137579411453033664463778412855495976680838218317328546411712799725661420160998917207614783500803980920320694879441323207636649183697300637658233004078427353477131081304316760357324418924837585456599989266225548087454889701087690542851800259908483145241493218150569608951843323706763524875111751417503996436178539189256744577930931719131829577233542805449589951247446814616992382641798802865935874164400859359310415551548839712934623524646939922261912643238699616023030764013492466475617180883434919422909161698395507831984374734252048751238082623871371249027457478230609636574540793156215604106748761899502776230024631174774959756085191398048268083902471465178672120028071341545966280818689231035398190584533578378261030187138444026743004619959901050022998839895235492886602612933914310337826894133869668341684947406899083248996977874420985108469128072735290490995782799656817391131442005247107070566508581132066178220099858011102705258415217985858086275804498969309729043299185380348108202789111747612576778856917825475813342188460600067280529036584629287634880335400691299534676840235048550651713694352224798054626122295282382202713150443515699329075550826896613630464845582326498175020844986354082939434315820655360725049258567724525775356136274440719461389814467361763188298827474964923244129900079543853961543076909289066572328602249776465425005224973109535032434523542295796102091818612673289359146826904534557449160835768013971834566161307307757305160790210875731609922471102570557167095470254864439257824608112694855258386586532814927521822056600799853946263360691781899025012463728616265466272388408001851959099115477061036093868092577895126432714235636496144811228942009210466439012159515670728964976231722519509532537836447720592992216829021605663924614128286831108201633807583703332996857855820090392006235532615824172233804773996446787809142286518991110399313031979933684008191629514511068480595609438461246271729143021444950875213234804904493295461741708873332467763621863608261443573026147104278989913522103984388007876177609813390239732321732225559285412033872676595226416602963179744823381530944914401889347110553155198517496059591660097935023693013502054378307026835719417975999872270242260064210333316339549798432721930987847694142384944015032081133594334980661092862850630048299641621101729003962317422849224718348090519725339489335588981720971638203118786811377636953538732288948374215697784637751770732788570728994897731901502719001635287646242999355315882114783313309843753616818264388815772161369513680772877358986309854479561012460420465221762591401948845467659194018198269194504018286007266513106386707012450988287890022543149471249636500034208315746462275275107687498971462440582958111001832907704122726819935028218829857447073833527134288876751897749860660086030873447855319671107688699827096816114609363053283447572354524752612086409766484436453983174819413467080445586635351964201861469489326826386354883910556984617379320340153560190869273620674977342133151388132993726599064271642900344028922435555748977618943117347597348549640009765066008214032323170931994353638101458514877172225054342249729209706579864411968732655397367634856613916213687621385221348659617853298145866270983948585017197442372209212765067688816581405472644349898063728072205957224324846506187951960783095816245437596845727282494869351642975061866282796589193711354576674560564358414751013468152526311505964924258926663141885496969963662408986310184257594836209058610769220555245121320166785444153044317627913562087395097571403822876058518387664867423076241433524217761130543266864127679976887070771555226203717419968237323176056746896769596394457527048269589211527616225864519694178835159526926845485797208996748674927213284245450015743465272224155985233829080759259599391289872078215290852662796721220098841342759582613741705565482340660730938130076400505403713595430233482122570096741651298572249115342456710521557874433774852179049795374816053894701548791249211018694244053799334448367060918318287102903927896420346260109705372171551146006787666133947998198983342124634501685887649447503022228651767574256126822137003184613675816608165105054332216583109786429660622386206647492115921279916341106260242725008556412955400463193184578010348290483832847192100419646484853020469259010279734934583295558886144722256752610570464568380651753449315453735833187253825170392614532253739942592399672430552572107079031192882597151073772595244873346245798113698735148113059444547942244542765405888539345034675571111496815300066260891207554119683599672501789434799829458524809577315887293652870475547599048812549703696007893909811036457807763833653412158432068612276733079013910849660275126904331398505785683680291095940814990703527387095339983809980518297637071031581733195237643435360706227549815889405399436792875485709524736130389744089650656036904070667559294696797164462241583020666998579863877852216896354431360284570962941923715354031409831268812482632017568541823313817569620078681775794830027431774882958118263054060139069787693145398113965006116660162582006619159507746086292340894118919376051175082327060458791922414457849907244372970895376200551293824300164957145926881447209786823531232596496092254773249434819467940825256945204151938848584064965540859037114915954770390756768490562855372163982118059111504802947888069469539958220522552573016840463034701458413729047014710210562336361580489793718878000116053134543274053232234543717495762774404812587336407638668573178709988562205925145980080145956015998458746055977028126998318203727544880830928880304132836285499490973699462876133789269793081551854507569214059047722117149734176305755165551961262846402740639174228202406905355150021244173883714575799549284000269524469251259577424357162570603287807490966945848842025684433332297700417154418753229392214242773359215376213581699737856147757188385339572903807083452348448411282443201971892647397260455936425002114515367757406274777806102512157495846827197760986518408111561750318272354919309404361225804670282256918471796985537804796384813757823361341742291405366821708251959087271040438981630665338584882390656504809483113245798549336317399091769569892471356405843398995762168810901644890372178975006172939239432893408055381858891410047687442549387199912455163832894068440318754375060230084063456792011755766299803207597318076454322044344777360141216147530011856432076866350721718076949887372477544706677440346494100039311337733145060236653218701041249261293004217630881860151499867796998395589518938951276775539699444936881491416017173555562389274955914121755602066754350917816782331175973880464202993030996460729505295169348737128585692676669963235894623043656885288467766600577867165616276264114544391300167730239887137723819095208472993120174120240824570889512314566563347671398016664668610445953936247546341693264348113986028856656421317838179205387643284628752489352081415218436152709729961571866972852391906988663470499525875465933571040848304185588594874696308936146719388409431856927269431400159740566003542320638447953550715383686273862771455131066733021247420092443713803969897503943186158766868247348395833792923289314287445329786927100263118195776936450826915850246409722202425666769945974842018330604496903040066261344136537183458026096211319696224091833514695042235791403841347105553763067820511966091462967333585755913175106175389264628911971132959498819544294276022940731182325375785525504410514133805668155082420195500236674745817239215994785393513104343267940307531684305326080178989016271054796934297148448435937717975745377517719898721266560720147777095565898394111047888914706865762146444575787564334826556786901303740964572190944642807634105831739733724412548927975627866570351077257548316399419064230480614924778777371157772763511044734227889575925966237553784065920090312797442770848157756506875918012269270370795940899812180268516747006069831647735243888329808138557992950057529681533338711627223260310586210219089460871159166255664338608777562410532585344141271372496147755513290804913536888898840325651003998869948818835340732862781229678083268449647818885315731001569950013476293648320366350418060431939056856184917560337933024872493685123178125903101415318761131411434798489770822687766018701520618932310165045330991740559722496649031590782903999595934764293956945647297537669075992992866973711114969808377301791410826572797054920488129714937751449571961587073280737588522401074665356302656710818423621978505489540991406281684583499819316402162870544803826677249336012397031388848380576753297766884014373988327604981880302460281786494209244496109963342168749612711640950725257949179665798296703135123263970727350859573162057037565851641005712181037808880169453083547616368700100425346821630349031961573924962214641277699845509367827142728491388294287267275671383501010037398042804364727829696167751494160141161691370026176272069226384501832282151429122367642051005047625349652907069047754401817082796481039856428429702138362184194828261684849004574261516059441679075563173366667261746241643896674719379583457791971962393152004157650320204006370311071993633229315956546242206780199428810147586126726650966810937541448794647317245392663030087492606922793537181573269246792568373216506379034039578908779417020492425678907148968084475712606707540568131196066583230195684999434908436142881799281914775609409515112528913731988195873783598362981948326747084285119755799208084529897741781705497664563772394387338754982700165810439444492473982316463250883747953055781051868635670103190765310673477106810420919093957272990920180499633519751465594767926534021483165175024225107550811352318745360159103457336003331810413367152973325322194668254849464264894437281193022273712017499769288585733619723548341243573453465982228977448030734497721112448904324606555318873886861880661062147377806333326410479912197229352882482347358713978731470429538996032406377103729980008165661890316187648633276544808695397263686917424271723703532836046272046444203480952343025866602879499051626374721171432118185732769436226666205534461767041212333408760862058133009595112894638119184286744350393873154472659941321133335418554198160057238400455818130380999609523063625492035397834192146958588709187081892233768749403718366776479638480899488211859358876209980457252817829662468048263502666664765636399098427593593040046694908042549693272210971620713842169616548931869624761820650216640615660563638708946953734214294898482099377293087836759013991768661387140465442840610714994216963671992144066490078647166455659842298183474005645386237970070475472047173726565086435476462222590026791192179978838377706992456479492142173252569744003882697469096226778891739411619870206120609651361001149822699997059523093599008940965290121035008033227530562932662752231562069967944002821716428310031503636038780941004557997073354158281514682245126064557748103227301666905311772222078652122619763460379078507161069971128315229436014301635626511072007484528958564828699502386631984210694755417470683833214542145999663592264379407999516842253827758370750690565264342682936793372022004473730958892297594619838882390059028837595644481465760076789239674162655545641436923855787667243224406130868670071827872599694924085839039743864231873687534800666855784097626196528005341059226595399839460253026777507956413726630469135635683645887849289441662121436387750088715218697023632535810780102852601689163667485367263570633982714794948179612239219139035187464481567577589855707761381997468487019824866771858651616696314127118673473314941543997261189974586795548340176765367039851050528957818306131253285073675281587501448947426351241584416458677832268326313187502290124268028287154264824779935699876182785431008944791736660036523695056533544721653864224482972569719831140855280492931087872157106885023251572669426506848347646915536153119346521924001553120880855890610052485146190274404812788153829011815941271706571262578475372951731374567491421806536944820381875442094660379799959441517761088591346438072575688684817014579721697483865322624501429069157427245897265646797120701925025788936895317459812820009771498347489911049859551491901797557277533882517128970541868451963559148280460728905138216813092230234364231609291986716419151389432004471744062451550572812920059921242753622801349408765618619469295710502603026472346956382558522753767173640070233047034495519980682788897173240078132713294460172696943771040827875275184543512635065553053763536840108237555401569570034565878727361447879438307461003179345421733835631636851496449804722400142241875039318578565469928034721237957774092085343961045963124557856266399503537805685876604356549029904998888383464765887444681211725726019935422999792765520860359001287931826442667351214794863357709850717942692002638422038624702922956458482508464134969465431032115175465323918843158111392830152974924759872976170364070928706317639033574093762055868340498807561209651194677290946393388693484295164660698381956770554743911395088505145505467959223897649701220335893342794178049757610206630961700460156809850584592057210685497695506566272329777896714919318759720925282231213641027065626398529176452681458072086442158143369388734707286869304750299471243070641919971008961094103475175941262981432092241109696634549152489616504754245980060682358917945906346848572927007667569943582969514643651981859284354159900379742067960341098558915487393780485180734081614664590237070376694613623686968679460352865660527671101919836841986927310976739002380813112882617197901750454771696395897043846157045574427352846879145406939632214086278388504580747226138803411563608439324794660751468856945245537084693814162298473480075609605973401072586880834391900487454249514073568215154698805633827064028430867346660626585265271877747435520270153976951299033112147712249537808619041679296633344055869354071849287400841455859781388375218548985895619290156838493134235142674212340530019838490921741522777941827527908460390016983988917953653840382780407695329564358866166736016170933577868187066641798699200234760321513188078176863511369893812997490974152327660671931961060927492577083721220589244496217105883226593515286596479324440496867432227613673709436422646749221679187687990101705997350729788211259408646289422411107794901584809123114171427525713924781443078272543000818056633926995278033464019897617722293078316901109503772593201600235880571559074958947619542338718185912861299678800692410211337749053551814688703157337481680763486717092502955861491246006882407610906799737235179800176274721385624816513803017931207066984638493221494256737735397459415965576753720765626070627830480707052490950662002520174807928848211752314295844963013273972457059991134897913523440083100170122546855826806339356445097894317783889415435592040297060408665833605466119699828833940080408589300770245956200322578922232176821721224312044738728589310268374991683038343204806859824882730108491352158707722471314036552536027787135290664157782946619118451373083630037643339027323603116209809789411287590865786502286290583040200377146897458658052896152740576104883061577501014323866037414459208026580690274531492268406804934234325086047450251370409192177685564322954477813403742902046794819699264313046732590923240641046496119325457081250286284788409802954817180893081232412848015034643877558946454114367813838322188035754310350202161466369500237470387377285097380840601093802865166442208848265960214306927002723950788704772082424532183266016039945359975007308736938959401556676731011653399081669817379563316652014308593801159453662067211858474119547410847207959115428725454919586889209849855624660964258677297919459851110903809076947674927488662830530854226588794897453123698683938009710965403218851707779488507839090099174885982629271401464789082520808714746737549344459631628459928455921267791483965903172217498450093871269851224379792165565198169743579985535264452014525789257605668547257108620544640677686318777603947950360118501879565196708719516655195736983964577989191746607696020351488100197550109577288577312175375519055139361451917813393812681410103868187010730749514154664548322279263468064172875804050303854828063256658609779452159131184828404823494746485122395496570375348232915815799224886908328771322852840279242951167108514057033317231524352568117573914625611606569945885516747224499467461913864131979107600695255032482303773793418700334963292627471977105392071274315106759599414562289851648571419763756744328606857027423406814934053014105779753502297916477793819217732035017016237883172449471082144535049422511801338186656378192318654028984782794825908874645755976376557292152517320521213328227761121871254526004910888352370793385070130403727428836686132747469615176200210898410322920558444748841800782052716085005935112241413269830398146586218091669953111463063016776297257998325817131722723396315644239629889105664311033781291406612053601645484051517238640571910882604620165016693632508863503360683414253155654825834856942493147803926445621431222344934971016000156331273355699046566486951043572002885816274773095203389731713736405488047230275728916625140941591995038067715379002259307942998138123466391734068681953782307388305099219744454180428848242069355571458418105635261986357012626312279582684074663938573865314669939856200600636199214620273142773672996235563272398989577267110094109086023283821017285088070895261610549176546983457153294775785129232344143236197027773620892428107905478148726862546375807264785035080985492283063027671364612290290395563228450296150311455587577884839330137198267554635080552019199397504361210425719069418554031277173503224309230503297293098108037088796027211745328341361011118998262561827487854977588969697905785845146895616908525521443510930918999731013600954820787660094252649112525679968758032380157096128935401219302934003834029704858055460939712768881594822886397159035360101604726944132851428663453197519767632867930594948547322141449212010339525798716972659365226486334375247265508619240848418103048421992015557992867851801247292337341359639567185119207389953213760761458417730314079489823349800940595720007737305031899267382619082592043742839675047555011963848153238920961146850683075559427578168446951465388770054597309702849982823424788057424469737797901364847498676701461268582712675818646420979427120254781005519504092904747819770908304777115826390983292043337703882524167812320385144629557939387842266727356096991564311025756017747822356008612696789389682666134029384361641779469621002535969499437260868043614721931852841033559356874188581380841314791983878868919066150221521193681657224443701167592553199915716580660364840460552446982340999902434806353345700334808971212084545907692604514263911989544434187598241859543540626059664738914805566845607318637003962395604697568097862492578632091223126881410639995814866420056842879198544557163147546666963944835527897103927514850605301611213986308633809230179605016744271145358894548251650101512791597204182286805530607903735841886567503703649776698759869080443316157011461685131327826174056106617517813458139746286581174234637714395505129224083584501738667732943008179317802545691829987221171740597058427179195441494114448065143545969426890321330015415898698402374676402839748404027213412778638271936231841245223543215565911533358590947254591834355071720859100611909492565595677018953413137499599338051346959464750749296199228894687375527280192425941621625369957937644783084511480664529737765176556821975748506895676628830040139398995436700621253158321719585444864951670796596565507747282201577396623359255945485014399855395399449255608515058974277965875665356620215193602492270337661439423767903367075339005266578255773200812614465076009262517972357006916167465646798184679646534264913350467109418438733174473843392814489038109898646582633802619890749187058464321010764982801190841981664803720225886521019173344700032090848113005838219222101745803730749628324513264852063819281337398349129549360403597573416476692470046670528222613539204369620289826284068013621542192394487141439928584991248778454111591603987470190721576060288321208313443800879008504261030283166768046822700332756434897816795629025028320818005301338699843327297951794318210812366828833774636617931579600812972542273856555401785734527045809870295204685369442834877949198519927247780533394037734569999019762923761262055434424951136466412993441582217334662004287407173920972197696774971165639899783736529102105499185926114430991196101552218559477713206101017965833648864065139415969547694931890539463328994933144440103505544850411896607962727300407872561992262800189916889883832713906171144772271458980539960829499978830092943035516141052823387840010753281760372739256076321076920129149906766725030527530921403934468131746425727158653448929189135447665352548890770708171847250810216509221125247067994634955708364929069142766467159584267255816735697899761237550082533643320349850683202998707648488187112588574732682634807236534239639071113176761163419594075421348441955455251671991800348555012458621650616914653839099698068616773429210434587749328987085167413357982218440599254929759817537331938200022452826508987899682007078821220758714838984388256250254006696673436968555416765200925652004445563584543862153832388804783555454538763477701218393612987611004879957951476165928577278531166005403923474702851113744289951212352358470401004657147869532744321862399463448677164974698108989294555431451688121604693831126055542508435531757811767370102558230306465684780486026390137026578814577092916869293590023457959112921410032502078432842183362588261047889652140144032433838200883856605705009294353296140738242685064047172510430210494107949360953725017940084468057738446044003583591798730290233739688736265030298902415810992813724554490969260657174394586865371050378288579909649968202209990251290253875294625791730962668438891260713422603795932203183413598356178821690108365175782164465034002340366159352290155517792024520446279863744804733886177859105380621460882682840266369850229159842448697858035432070593628507275681198358619732172038304993059313180543259355558141161487090981010257743392829804135113914346165966859692217831355336357307092143552523402192335930231228702978103983435762605316650739556351268128045883011157766464033066913578328686505226096827030319109190440298438348427734096791581188488374147227331039848213928002301903038595635616179222963293683874135669022270501250106399873706365758676810148733712601010331114491907091318630422967751821238598948273783601440892395499614611420873760583665120651334451916008855749940497166855351567039858448386698171635654355171662015639888650393391464225461616109776518438685876033100920637725525035713722237514947659139090605404205663874147195636306077719970149267298007908190617268493707303702178335770699471911511626464224640605095011130049951546916099372476177198815943192744557203645844200152273171802345982260556121778579062094461672035685159082423591549304945681671111302733390192789946897380629299348798393924598457720301651970520588341481922890893368194820242878731030916300147963813614208308354736626496929806582185420582862830435265384323803022738860949126260545793963693403828976636636432417960565784807316510042863196821750387221885966666623728717789389874012057648987397712707159640513842047031122895543142360287859672650849445374077756608296860950565468965324566046097908898980749507968567037968073590353817682086385034864019564635142943562643056282299423403648903314337698524075253014951377259097546005544181979050694097378874213629354452337237940069621505853597942961570796201633135398774357431807766779732906926418849445380501184815974658058542824008666450085239649116397673361447852352224752778505645991951174986427531804082356788792669725383214452333736454279784928064579269337972205331391793226312930310323282664277033747834586024585059854827221934472665899044437353940308057199705205544473420553242564241236196481187721317442629852659984332372381094501220317325691065403661699725032483127480367668705999109108758209770496692689460608836378835816134098916568520119900569243339350646669358273283982090264754466470478671981736698589979389280511428802826974684940782613313771191242502690927177591999510377311036101602058369471309722614737122178750143379402132103784958664972764393943674639104524300514694602584407830249509691660244903674541198727161731730687415632237489053131672574376071852213474687289847592975745715973201950024954082241376794160428001504919441518354289996609611623072668150142661458612025424187593318896094277081741331343253426037739774052249314241161894031207683314840530250213342938273637480290007042268671644679494054840850100994046476459952721942727356857915909142859611847070379333291074946491487808204723763998338590085198547128745277335826706547839646067550528686972153150519109673689217715968769164783923748793761484979692458885561144283716675520828996850148396758268189702284241676586041813456685752681172471919213782188241361661138916072802710133211287734277000360672131145932179472482222991483479951616740945676157918372604188341966871599150778578181954666458481119520866791507057478224366460379079710623303252074638584931488035835707031392737350836940018628349052010879927876241299171490166361587451568788393048564187344664018897972681523968953236297800480922556666568474405756284709703434585432891447626764110225127564808484166918315697962439940199259988001784053166744227997418964264491977534583777916959094559075403941148451390912557305731046252683941553609113816548851752881677046266977569559716514719630654904264970018396933080716050300376147279245339594119859148748071754733219453610665473672670527927101652452212144067027148418193726274393480190551007869471361369906939357870202782396789397732467113534001512543831750443027884195505635737064499650003440152573395564685760782716566359769856771333750742799525319365349350212401181703337841629238355868204621874522847161273537324425457619939042506438185281473478344039816055751365750077467796426814890580898392808712912534009637942129934125076613409194956125015049012498560313042807189516732381232727569547289601104078746392702377808693256696920697780548633703685691760408893445890573839322621906410649640543245265097926216579123793042470686172673359524361077698335891837923634284231743853024422841783992603491589860964349684446706849638014439037475106326707864271545384611704224443420284470680603213368359921044681565537187033613027591297520306624133236468306998280770690812489040155142062863830566835182047154151786852510137433887340039803503267604363681896821110293299199590990052299751587444954904641624199512636520498325071918953210604201255036924125350616978696909530270272559855079677223775872492044888359284266632843763653213920753888390091019642446349823536354577430461521749716729524991631758800216124098085998411681041410624081484071390817975555478777866950237316717171317907256993117840937539143905155309624140383069938931206967257872501856571454782210707181836348524009927010238515550434148798812325317335096401519904807765056009925638983343722878061206320742642382578859889935442965620980031349880635086802669683743752044649439490245599629037475108311127561966757593332892515749790788744033671535521534328138147613234577892661955449570690064673202452215481949381070388064294780432569255648129740845408150485694352334255192962226299370831548993067884202348658053103960967187154237385989777845816878547744145389067706268765110292999089354412632820755491621121453514029318719783378351267266656393602143822136402790183417877140526168352822151224833692794882636391057321264189653959548013990047812697365473242789097466197422400886437302878640484479332031071383402348142755053144085722713000182684343591369455890462757056514573362384592252773339568572979734137420349328162080651214281077924144692690376924998107754627520435249469627445223693320168272731133407524448516755479499723963827384327043864518249270894607339087608018825689060578293897420959958947796577321487777007842617035386162431068890572829248624799694865921946202349408835754309946240523480733642917476821029287357703741463405842823296535734239969295097349860696226502132705176211657034528422701798105452258129470057387072456599541223542505307869451988488479886547956466991831574332425696525370897551077239546268870287544788947412878661732346104620291293648002391895714789084783393860769211156803365343795325226622274629070074596780269516179651203155498754771199575244236648686840396552885313759239362319448753682456521573032951041074170276244841816708427915374108852619219837800616058710864516986969945417459488982234984849712948740480549573882319503375600918001235773104658796913033027127381667130956623702588160401614608496982422627394828066748916252927219494017101133782955408220895652826432835816435829447770682259891225872490879416390781696151953765279138828968386838835594584582888457152222982597190113797626187288804394267895481743250486956780709169990266509744108788448552271619058233215756466009744811401717489201442964259858414373339103532037920106098616656593809672096279956482219570772336406863783940809539965868094557144075408620981781888821367476723702249664710789242912809859282305111598226820612499122959399147702036746706299324740106564617765607275819148380150842603492159370830125774295815014160634189518606665697121640731467739561980349490913779384155221446046024191316639290644604599566304049248996380601840483013141108691874594695899400238744938129732282174093667192165448566819781872318603849344242144167274675730234588707065822228779124851697987956777927081026876880071679236011841546102592856456219920700709006242121257275827326692488923399081440424904980605128543087104003235253944579658614912680068073589052000473258046806246328715014149062823472322978046624976769031856567513214356982610545390700110585384116257945012806573746635126443312164157390617048242554214268269921034836012681065358786392580682579310413480731883743516247424201974760257831135403341153127928896894698437671846996920127888330920225399861346701008711499920552112209180601016415212180167117149653455275290518476080692985672535181698943501915514830635356834412746835494026936197429386956441618438738605976873440803736494442456352875782065263277788906067945158587167273426370632119396755095206597888063881791131943883567085185059810092846079548975292468984431045108853045305616362330032563533592272421443314154343519768896730375918819274849512904491898022908885767395445324027000913800942922429882333107571319528091519074804544854837617640041304043765670308304495788028284653759451330378174729191729921097332747397198435555748694297318873719254924227475856411523556929962043752392759549045693842177572610499524605067876532119673074204232662802590299276454099372696332450046842191902393282672208817957285038910162482884635201924927854075421031298824945002104998927494341772312496132305268967855948964798306481856974051947045188545270907547747411813558263353947776170685044869870098280808895627662662702830170652390179688100185698360509624062332585123191623462574666556201179031117450522982937373511203744665656971608870541861187798748275339392344846079810391042502371228066119354237231589758954145747387670883907917134220274225507737856306682618164712296893619097399027749475374872120001865704448875366585050966355710448222506423465776516776166330556068835036412723534282130348665028518823788520516720733128810005539700953755159062600500635036184058955025794752036429369768525182361183549943250390482488541373270746610476488822002377621013073601275669741289863569738691042332745544155945122410718106754111734480299495600503564309549505239201704353833650872054224710671325928183871889496276059515359669724127502338926895120124418752711096760470386152737833933405797612154827476336597342876011976812366318094861975078653874679901545835520866602101438049138147775003698394933541656438353266571757988733435317830378171378343865780960191452955801385174628068026401645629996153304205105522507060799474171077863058613589475909661581712280135399452730204975134246596511374565220674677514819376470861455221328510904910330841233256124292485913964884706692824168954890431590085973077995881637141644873216388044854470049956768298490074285236668928121818025094521855252400548317616640986615737760652053062582128138112116776218942323818837912768740613121563498105497326745418040489988247565765921504272072626503869564650110608950711463560558006276210563708218907736128788856181598193871443515002936555413946019701247434828603112193922832324578867613617321572285533481403678086058881665980006360208886685228147594099470631512056885454965559638136646490780336339122352397192794878542691728035175223700360648196556000456689696113964625227220081382957778078905420567228156116906646348885832333728203951790128976990074901179082113354503759189283605992418325447199846232741134523748633960913888009628497648158389789253043744918368852359328907004715708555561212790744166512465513765222171722188058584730109224601161156640023380423564284420220863798542274897038286034441814123877254291795171149433872638853653599549106283933900710589586154177378595434776372308213795151628203623894325102470394241775712227580937708102766524900548803850040619153293241393206704830245287915063197024784231078356772474577663591554153902242703728082160690131774964295604190926720426587411809791817944651523207416542721012570995976574587699490797305155882477600836354049752973120449190913372136678881044040660409920388023547171222900741857495630115436635679834952083498440874759565576845450934747718808239911545885631210104801308244375728434288907456454834719272736992384878775286918337451032973394450111131269466360458938585784131933011364632347244314954663580985103500615129694171352005228524452119290873295157821216868058784691137297680084515543803943726601959236482462237621394337503277698086964717522553658058909755891850854906937006093543343884540590299137788346194604175784367263309655465241159904081130650536653917280144972767201836233847109077019427092306615517664595725547783202044284320124063857959159924708563302339903831769436841028331350909489104804429443999768046675726413878695326798857376035505528903196169971563351693343680249665635174343490526383636385776512920251675124797456605111029074205534453890528550890477773735637154089245116684779327454772395083094690248426081992027175575738388983203323299943834098677851104244988324822126630308698051383697378407187676194702923524700940861287842972765109198170034846366529245591589335401897373863079169720400732171091914221759182950898628069182331319546442583319094758902014147384303289495268795377407892898021261522781899849512196343918572451297748174489090592675715966077526289822451573253009943476985333777669629595112651943336883186089838174017898269545814797341978624767818473047185034747977335627550816679483457635360533460214063530496086020562505464475272961474166204825185297885633907731663697719617677435503044397532067733854750561898154588584424174282058812794033921416085720223829712150462158470383747818497838013675394205510454762729149949804441474127619171600991191121652432995333976654565131206435641553416522409110021019938485501527105546027642158549766974614740393053338104682711557472200423488104943333339254089191471472252011464548386819228895184031362828886577481564172543672577501093137961707009287350522896427969064274606905116245968086308762663406959884126385691175006021548055265370406289510415351469550937033080922776858835490103311635647388662150609236912299587581563741518990611356355496027420353399522738960552089558073910931607291352661151688171840370834943638380293188966913653993347309912355396145797438786168558527885076289556105624012441175445532570495858345218529990280489271761186654724522170511984975489875708199120478396001280037570221885763989428091706222333003417568730302253237542546124245584227023712944690146491727833380247164947764171570324709889539241970853654985648562256523440005041887458295651432396637995602030875305336571626465318278635928894183900680001351168987489269525895376843349820292247294104163923529886141263445576057572940142047014411043255100225145201027736293378902506601131406044662781366844087809570019505483761314165342270446152238611625526598752884087087003819078705545819355724893940763930315866050648912939483419695560292452842706199688557117638095046975927065528736684622113904380369294812909055121009811841766151102982343483580345902195359414895287268406191720081427759267113859367856776950414167427610295625876643446287826783124205722224603385447484373462570945130574768649583394948519270629846006480987805486552571137659508993741948901354140768512036252445641940622343544437977564176292874977589666226859134211378461029282474539759108041850207134462078899464773404978761067123306476571745510944197043082655868764284968586808195923424699405201267555501300073936720214749191448159049717300811860748843372293903572465656658278048284448295995039131108980254261779774115637165792134730170443793374996412795865751426594390866973235292388922749388639901076708747707581951942293401637586566336177520286259440754758700402551384646931575108650963411859086768373296302518862176819331454869108565139741394409725611640567808998641152538873404870352415361839359695701476893985017048138587156446569970340622201066037701545181283427476426092192472802607146321231942921884861251762462435835882014596967622392293427886704195080865360343362758184197098199929856505663122056380741173357451142897885915089391029737555336139659419495169757185836875633051963014093322937642223406752631294543146076496664312726713704097171171681001154733222407289519427641473655683257272105022437831667078411009982311119386971606681149521569681368683477445302705573167990765806685939430790806830494464617006872342688776240109649990398983638583360909255015338301975819484889242947732133027177051927771713695189359590693108378882929390991771434599399898320508521939089706027331202072203762296015058792880644981485418735001004912699813239466837836319341833151671562748539790402188410035922293842958064604890637971521361447191489559966130643561796620430265441811927372297009604230316627585418598872965615335993569171870398329015963998303036603395071126534538147580871983080253110200516602947714262745700021906384239652655204143233968197034821544960942484191140472892800599025347458426169121587161093223070117481045655467947812536110744195257274592566959808561358693261433355083202643787545151684406511185963030082173171109129665951758748894416692585908394093683234879092739644005781110544009109195967167803353615859721703506142163451997599058530881249320594322941167380894470384612981619115813728733560277424967662526796946249751304219980424537978637153500834469029095753307671284546539888793525788204264552520723612144348980441366411229278019609506576033012539461403518320692481698047048229269660985914863847893753009517420169368154961887548781430928844947432276263598244036647194116737911447760140415695061526434660886617460452281908803683862046305415646227567125304793188643216713502171341363654620267583250948873860284611583215351174306586655049661184730828333384811876509965817250837949611690265900129141036564833992392976524989428352482649433871559309162638926119190934478670372007602598952276293889180471184700748448272868300307599703666620755808016400191664804452818744110841010139681973916101829089550597505722819653014878325679998901066347801557945427024008549518990117920431679461367704982076896790950919326774268110837889178817777225513836096167576613743050786735483107518195262501619215515819180218140801663752530493819389740770302186167657188325524410052392911119850766116040768275327868563064724049865744434656666633075243583308787317234592627523617766394803158852440565551937706586708885605792621469935355811788052153317518873867459318127837679630016471017829461418891556608226988705802263183411626912946099304439430756000540498286751594046597908953425049845281228619789008245376537568734474134927141371937018838302309996079002985602341301955294532904383455213573338260111102281862115757197970997002819682789078721225775704757165744541960294222665730562367604231083837712533219213082968157078189185056857112429825862062957706831968965278806440830854410304149264559103633249825238672709330933646174497582552617277648035889930482988325829202672488985174411316545166087382666908143571252362915472697467398812342626054430144589661855284284803498154542060936476754145103459669521420897599002288366205924075074387334470450375709895302448873721407192719726553580710345116289708777770246895223405990340109193298171458007707343958052596528977550489275830925737024346346104555782302834823704052740609614259014214294376284004059676194400786796699685536322474646955259137607096073245555532563067100028451718537129429100884197492434068758381108200782412993856264859553371157844188210841294720359064509027780447098150645365257013958524939118331078412551663849148210241711394094282274673945728300490939246886697031768331918706250461037165038412347296146317029977048881826511061430828464659278475460687210890949013718887771273548612025534677303076631146322678449003773202246508983973847676058860382718984726294633231419044418853674100002504053160641849118432817724922175934657981047834490935101716209669617948701797926122805851184291363763260576647500167903569349695989278832196431585369153929164251120979769056821734837111520098262513115042333482831138317204621103202849166476246135559838117140753542293335878826938725470619199727462902887199350907422468697993134940087194795713302298026157644499734309397705493582201710808669298423478248754256781721814909394622586718876812854661939419711706412024222879536314585753635279793935282477786566586435357904028843766649205266158498366146305091848666803431788338206185216855526243070542939930358502894263314147863408791292078705745978377747889214332446539663371520322957545791088176204557993354371634869270417039590987093728785934502482489810109700538452461326361417432388157145299109687173233196804861314854952048747728863604006739050097459755805207361299151017756551568337660076051389969169129647486522569703210435908195169265588288219425241439622185979326408721264670635276402668677630707782797683383264188800106360210469577418687000753017360013640221990776996300716187995408902971522014932604289881833397360747823247691259000469437291324648297849139740365269656195222810638050368781492606218172394758315606394675177508774737558322252312960051016341958490505384494345664240829278975981970846388140077759493442878431711250734280502145306131582581350784375960748971853063651354810379738013446640213981383315267262875769754219018480229465033341726675871185427855883254872369036661578067361858729775308115345505420971857349826164284493669033020717339500762594723553451332570069561632335593152765256741477138025212853983105700132607702272717773879497821638239920190207133490080340825713446644392969500326500970275933013079468673323354389001067620031272828917469561056556816305398066396974922299896790834437671886424456261779066570890727188702861106883653951445821466440895518769805257310713770942273072794188108091245974668582326152716914843429627875703563095933604525251467545012934453599505076419800171231810519876126347652601058067255705299751824802355615825823021711087508674210052162332690033069592332933062943819687725256028698067797542485141427632114781648382333229313537430381786213152642222911974564302445706336414660277095910487700496168501774067946127257707708065846881548036891440795215143408794254252053864114275971808271305409895715542709154329438685482221864394923717799028734742067993493629428990976028076914503701039751308900469487761030530398466106791534740908385770156149943550643734525310213407210968431191997487901582034995086099269129800003473664526680457096763095114002635679088800014941677550173744038943208196972398861688960015670400549783691617283827984563335170036101468879000902200482961204137699135888397878301689886403832609597236497906905425507217468151063986853297095080837759934723970181264706357388691070027846568426250251701992106401735233073842784742413407353950139935770671605211775237989506565884003048009195703310864067268700709886406771887567154929670861227570531635633255957090842802089359760758134452163477364192261723012941873450261366104518221761562624696713900062505054202883715920066284406339364864488209918539812452255724202517348159907107573883364154086223059838421227789798983259598050449996307350340784795462163219712880705523707815844326703813705953047774864020257559090886603367034280409763943752824411561190298547963267263288182645345796910650410857996837234225137887766531104888554248315700655103462101116028210899194862861277510744667376874779181021331201739045538152117994335456557058806498544783787918878567690992646574339222646269687938047192583165189037769795458190129274451992171158748936096800127882055590478585891500903984569712335344858935568717036540530976849989844514919440077377206880059389917743162330732537039969356734924961196291165831836174608236597707763024302435917708488816227539847969197807193717461721956069408398060503301162379995939081055571062795154431509582582733791091777674349664973659766365132412196674056182026551752915128447683152312404716039207297487245368019013400904114898554929387900120970802839554196713419518410305410415351595797093471582069488795636953008557505545419250615077202425932429756447533137213811200856043505124926274883695226194010006385411091597900292572781398565235560993521862797671966008223245173939027151196834679076798866839067404157218919547664053778208077759088152320841076519073975280222260852208642761372906748869029429567473613626038844708983063706934187821769704497398603508740195321738350445050662502300764636640157728961268102240472336403297588838396170514847555119149228398990110552123543049753988640781012929890417990567575810171491498720526285360240218867873614776200609673543416623606359420781534630172480458422178064097994784618454027371242517755674020384952664584333941871174238584230442109211774081815121437853873394534133779811662733282993835463070290807406361840365468464615071166954528260174461080908406298089206769687740454367031542383468508616470072811525466626993707750507848023485841490079976687821401383383915751761617373511473356520485062951451871370223298262270413282444928564947472673051083089654979804283334837324892090115875309743615942666499751520796623944525982824109205531947477344704656990704683026986216681745232237703046649860633086879968996261342763005071093481025576312167908870345920704921813229843836505556185403385538914774464230594539161429684627350549506331965543477054692994622049385671467587808867607652235674366776892567533956286181980913208100726987320344410542799593826429537561122551898960064181072404087189834573952558665453110848139057026330879436147216326618528883499111465146004087936594767927624514994970952210450928069370118953816623912131075959617321548849531460050971207514181229695465706750157200461800331092998726884733077352802996717651720057526484447355200788621216977593608352606705507614791019125246946265097918815011299850136802227198372557334638777266064456573474395067427954035572188242479332108508217611071463272797026881893247934473394310892370074159172480876522054070279602095436860965965556151183920663325157796724664927712446131925466809912109096080712320728055842434262215384168479757012491365178856968787372380564145737876617878189463565418507730804655043645925231272102132052739766520934055244821036539928899172111818141792887375581186804941938693479575415293698279531740098354854279319194109899373829320530420465697893648847670726230668641032411079672753584161077583094947994835337974347985550834735394515677066499359671237486185704116910760965391557281430969111669849925286220682768865604409975745522753674393665912494791925623897725426678222336487720657780606310983505997893388840593405330424834010468133161523815531424006163078620963691282773250450483909274774234010222811534869437310992228607540443752847439352272548653926521487147715621892226011715502200711597653800909053664948212521057515502449390267859616501473379053313382211761704566810032318657163097016329887375337543721956717037890735907508909753120259218280727030393662059654203203767515788169510816130633344048133756342095009639541750603137012564889379362148607943081312158579271267272517642417183364157514951652969235743661606888161383842934693605742320499004588667994728518824939814608580219527170916356441739594947799232706920130644294756763924691999350527658802516301929169777280839368585421405866337868114458726825387033302234798374345708833242670169300283894607189029980243175997251286879193132794088516779025730976689674221030255390653151851404877042942258552574842935927656575919231696831747416555717166059658398137658816979103371045632129790251824893786220339273749943595962837307628713784090502180137682934159740871350548479734964927569502516752031154027709143539612623399085922309932962325847264377752365100608274260537431098310278419608138199832481765650907091570951559461676884050814169115496211685333876731380134086036786036555453454928180937567342790458492325379199159068250432283488792173643060665286608882707799931929350022702136392147951160905768890162304888235033241860354122106160595298535248662560524833505394738843835677290585311108386654119286680870018157792775407405695987440467698558770995417334616318945150822476861691775775979121488544125819708462854461491606855510405745412871087229428651225847998588437210905802028457589180169635055984187867629757406884005247586558198663210664136481007076526875964643335554009102429330537159643126455942017055934603550978966481601366253642897977409036489501946095818646591544615545989827203430438086039798457524905345096387030297710680217565194996883980841574886054189071429775381204194820559872637138097747428538441218600145902386412745569275188943782478844452028490403892476097942832644506087734340781816794717437845862430315837170797691600937875533152468465744945231432334617615964900944308432567665514529811747648893850140799309824127420188465450019041987481791328005569928051694229820336625801786762435221373192857101139415895072206626981823349241501978361361529489874352486282268847444173775092431559721944592234889762499177234097993864143596393085134393269875425923288677874896215963800129479990099347704869138348825527507487355284147559066486881231348245629385326142907182785443245311474470147786727359262394844031657067302410260756286047881250722321224648819926923245883228605623234407081272799232599704039936664372740643544701608318061913293999955196327703556910759998089501222649688836479561905259436125598350815121172335006542446360300472466311159587925635014665870322769813840792331008712260623099012223289864573762272034601726923189383030235227367757496853580159522713403221364158942362004437427697907009564046584268599741544448305384214383966632930753773437832373438864082481167378951001779264168870207797885516744663641374540978161840085236561733614542326164777378490630238575787989518791481153191037528817553344243711453998024309624668410690665438729946362061820323760498277681452556033555154199919971231964431415359512401790887158146207604247107213582013689289317325765551751308833585658585833264866886982643939673277316363757750426950404982520846046661624325563244008736896451791508536506798431987290787415970759418322160683223639734512056605487265710203067612366608481587774735530945280323663439024980483495283823774466091044824454493234392516946276236914405801366385756051341838935897996062597298583897105051061775383476467487477956104720880053143700128977775861469793611227812831913801008439457627204238744164716723644252241087982441998775133566727847016678242727324830595571974439659918190860424464686395183982504762797198728840122272992426122578188323542082684716294705430817866106719639963904642363873265709361053398942511525402542514292978533767477420010762691661378335531218412007503636763245795290427907436664957800134070329342042960495745106584291661665526286890068111996269218805861245157906563833161986609435672427134425520757271112166407641952027691621552775561232131820439154548265494723564767882407543101907733180117763549883547541480854130082215105642741305183675576492224385064562603115494681966845727260404284209225123210870968015485293804934175176790976001217217380021879927518291246747142163025838150151407847496936262219833627480671803751600016572315040611920597549943059505676660998900997016373469358283420057401461313003385203493341060009769628746391567933082227421709952227124742512346817936014643879283556830810219482996316835781400524265730146497915365386149950343209728972340139618217578582582465372892007184789099239553152995794947773143451443399560862434274503594047781887500629669427131946878454180044413531604382397177824374951502465184783172716825864844958782728760216015452604742061177206090566352442134012021700386595966362337181042815188972269337698758511836210070981046305486306407910249124083497275493112915307899606528963492240038750008801691610680056873829930306640167753199881178589330389549301756948248397356381141695457213192988217288110339839609512427906076078030530738492295132803390885292172058567074936844177799803391797352676777806933010828278705221900419858087362077493394002447127421252302169283812395443533041179189334989743571162032162428943460488996847012354693317774886275388767498766876366860243539719846014117054689714419612172005402933913858181814024170301164338581756242580600230289953194835336386296443067661822071042119079076775991513637824785541457235051377420389878634700424689859999797149852009479368715865288467641026642561593473805147444594771013247199909243491396420807289584628653868015723643266363020077525933092730530966147764591146297290883571456972149676937492967746947745034748562366472572688082299171053223505981892520721977879171274607571261310304556508228495289076632596103341206377129671613104076546317522111169975610665205377174605217617533543371313634213747849584921100840225934193188003888032984240296205857699433241149309661221382169690669282598955370696340883331999353052373940341980976781603738364816505154513757273463151803578018887121196157542721377421240033180682601394438366124645906720023109944814792808689664183884022282463312965200217512896350740363137006852335841697852541364208197670912486231561486045360259924518259149382871749684365353416806751604599052769005988768297972740456579005767406252006907705607389292784142126390002381505467595896458710004979153211237300983855780538897455427631652724751484753407763501920805777812283710866500203044678873966697495198228734007747729110746900760320946591630416689951435119724922987569083886127240265973064262695030374034074481180250490271166306339018095717471586099038535620803982958788313100349790346588497102214549747168805243217882554584152496330196138173024677144854215555234858004262292663302767993727260403502965042161712827914704624672565369933898435813998031570025007146619154475733364484145507928920427456726546618193580060716408978392607321968040599659638372746303156898101681834472374340853111142381132027826518834823438114653789064028646703951851525167894364103485615296647670566093375674549425605753547600154530250566231527593174658474386426871773674633132928379303646529812663957920224974665133355512321563692025030407503882615560473529596936271384651630127279933745364903601770667017646769550429232615046989010038329414787596035247719282744037667752369093025559022699157255080834370236945546018305895824219150548505042033889386283622214613070306739437199938910363544434295229321279577221285621183468720669295625909251666772482780061961612268953103528088351760081739722556908547590472719277460549458461408483263339794390678090686489960653367588593476152306159620556106383006039535921482119656098610050621005495348298186533619801786867101580201689934960817404082758842348593101597424177777230325401401737502221831287271992466517741285431141829409384538481576804561605047917060012595271041366110041673529438562731696664454315577420541125463474816433255861553941343192816974244967036019694092092875171617388151802954044547994549573289398308858553604999236280363877604257622097615683622877756565099849118952722274185281139182881968040058808748978226340741091871469410655216259653129194962940136412347935950138300974353382128761318630278475922745315536902347474657282933883370413864195320282145120300983850535212793973918117569142427095388124151682256687487340621153501293872043093123204367816164906145628285429518579754491882529270352501170944938113907408714712223768694308898158565056105166382035432718889747059022535846893620735276256622767963140879638324007259648165434623712457405492301100808285756979621131501488279369257011586246457387622189646603235635374916111270928246487586105475898155457576867623210679915595161138439311833661631068652121589160346400650029830799702979977954572334258135292732697156762214639257505679055425296723084858288004788987973247688845352463169494386028350580500649963899156497566570543758270039394604086312312982632872660745932372761060806542408412238189663770176113409961018164416588609590695894916771776651922022789512024577908257509365826269449085402911312277442708579847143365099469398427304215082428949522321974582494626399488156544099793465491871273332037145788429500577288061146196588713454040338751553740600344076933879849419351395954257162381720470652142131804135526913767578642489888366824321613360848859092207387901007322398626273888691259771239402288081124932234037039158847170626362378823299720467555350683934601678143753158323971655493188286894053064206832748921748955158853765479449857838407661996378489639816889947094640185417340314780535771201373363152821843737585475759363254982215164252628607482299668742769951852807053346057932954172911556229653232481508895768392344774149684324837868459907947391762432875729221818381859282158458431674104781720019899675916692660704762765436598747518373510589954293274114959236846685116884134593010986179971219707705270515410916582644594144239201534553878694426816581589403574344183499504955044460489883043672895624356551830702380211493467256732949042551122892901631132201234141864931230568654702293324247884442127417159894840799197322534338075564284451134213847792180837321784053229505993620070260516941738609853596285078219725708694087243152106122533324230791485593291978025534684879842010064519513478608273631046516528971981282772784214071928242324390549951012280162254608656169271668980632107546964648783553407140614700076845528251962546922450667718333696363498349057885403221233181160460943512571441205278727872552888327510718696693804830153075679820356725373866660535331312433474315178062576077988557541046292352001916883635103028932558904552545460287368442606636990832521554002171047845872145724145253750687087207805610538202839170796154630383609924457416544502657628003499961521914479489145587876392320749775133791945599726331262495323096581977180451994847567689152769094080324336934025216655505049785795525487629700300643384766555508676235083347430206537340666388501316533215025840070571050072723617588063543099663457683353565108843416046537031878296652628189996827964410142088310222323731695920361837367390647461734947346700641640414698246001160024878305788944961031338288217218116608124292884114015170952723795466175910102592346401886410796781604597346225542165349336247341762587043284282833258124783488382971440623762878707136845232205609042960787742696040349038647090778015118548037209477290350345402303159644711450467239467440895593832534925184064835624403096694041415886264735645790767765887675898674881344498789173859953246603029753169432060202691361613262727838365015371719511472611864206852430846013287918143077160562712420949659525063882289470889382052328590363738527464968595208944796164619422140187219922681889608112706468241334687478158455317079761218580640129230075781647742026414544393825644409537695074415582091975768538480402003755414373259809119976145568248890727076582648494754908694704643139344614300314993973259833441436534356993295285537002586164509161157104685529878006860941984164091729106900986682641494083088221852607123253608667669688927015488496110164019907557317494695995194756834789617810807959881983221018004122115948619795131172073863859883892448400887413501888561889767229780844415686065318407716585437935850710802814727068009821617998277777585288001869192571500324797911337701342919552811676458269778086603777735568685516035688151162882886102683084335960706583096545788502012492901891968588581588176363872673746127380039560705735745722452151284182749798155435401258721330501366627567884839225739802881546679256085396608044991053310326931222835060287709924462716165044928726145185737752301811969608357723935120653244515018939982514557132285532424200962107806808598236018614196109975989473625364864380771577249973601519753582669799491125466168617959347792822622824355201711976786661257581819409210201900750131536462065718326645441956702822331715312149003362692835183605857193175572516515140852825976735940908256135382753803071907475766435317563702544813596972785033906675766890721523448220775067825514533784197949384748329418109289015444637778979401065880927131364843016352747902385772731573213210748501166877871896306446576250557031980293653875609688405968414427021148809625947829531245290567593173386220773098681539964827608109463249513121770090871633263345243231154812686208438613723814122050732335732868086244834110722507953755373630599261091688475114041395285196134904030955465103804866116916423686059735594497783592422544880949461172750715782818968497427391687369388576361013917700047714948088352773849450553165455705591877812496049490538247364367192923459241706319597133951483289436728331854831958785188659457200055344391571035987105256505601879886906254228880514434395306621184508071400511771239290267151529818722758398503520295023775516516452453814114083657831872152892484843305924278114211737316033720728707906112599325831508073129935541231560896243668218383004349644130115151731170063831683074443256592438682784049785423606025324332370455543932107043475126192347497792480024717175184890070324353313340551917694052425228530535944678232584873754955235171431832739617508896962974040694699873427388916040165283512103533086278539555435809289655598503389941465510522139365032922462862178331375651340485221440768805464724804468285227637351003994689215244831760728275320037327742093280629391076685282356443790369318457193127265752330491341496451801457624642243972336285408223787499150308537769231351885857003232220292128756460406457223418562711552231616218007708481675208712819656584415921377326742648209267486906513210737221130992005089203941539796608676215164465695045592348136185922549123474708249552815692854352159994701555930073472290249700944475680046406572062339828191953331786352209280040973222916052844984503488031412605898132125779268026585163304199089167889849392203486882294727656123283448143606522429474613004559751956406327005540669710649475341128861148414448879767274993171063748899527486836346186296906487977540659471776430897525038434335048205403720118201838869993118144899537715118512744796971230314125849540250037291333004914125654563696138148233497193643530688626533339819006065931781221752252496537682176412112920243416784283713732812550318111285197611838218433641633241796036553483957214998469801320724132048311855287263366974578042490873245290951608921876796643580602512503014896046278315171676978016313661006321179236305440802648868380381804840615520359881390019380053085632357382153635322948272655613940754552435328677380675742905059768514482668801525536518269371407902331029733013593167903530508870991300394100390188942162431880083716687211164587711280940640129614722675789970148652505893588564942644460436550423315178480902470175062581296834753525981333139430402064983096908403426612125438956365573198854154218277152020804720509576993522025465354227685017160582778044510498773100598641310983401936870772614345574007089705768661095490409725874368099032750048687547098863744874105073472918566850684552896748937879253583600506134253005813177053063247274094240786865806650397131658988939005245909918331878002761522459367800775881805960961058877372284197520201347037808302168860800502419788395093718232541153220455483529900199437235375520071510482232517080942448888327722355977321151003353672829190942652584729770506695220879787762040229440667224111174268196375438087355050120648852743748033104149230655803633908660976094446161966418123675783914951362461616786440772898343072706995397508056541781794563335896973446978397027275106487805556928069699246902579860478639593045886786911068931871321194483492020426965466290863455117736198431914896853834640142732915334735466232019827493611136805756284803151682896583631721068802774855659860186779448319637978613313513961463989069156570795707122337615198144866342966899152112107515921758123368753837935060038746966599900747625169063004183090616696002625666508927737314376179719836044984366044874648535555118384201325489981220957677080388850424756599515487742390442235525803816165977137186416166701553993271321973047532797998614851309901748578843345073700878734600212583727231255778094843673085489401239812352069789039078749755123263267465402284834491520102802348486061072660862410117036878151066961863722880353801419158298932854908951254332890477033321274226401349874467014820012580520836903079047514582825518798231343523796944309296823901790272285231107938469963843306657853532750239183476966482312914694351984971208556478479340477705435769210559204998854675534662552334805014199902047094906570022444572438790303855023414209077792471751310168621434734528445825452501064411761713571077935371752451160163187519485313122813706619068043708045542189281383597287091454866241928980902517015889953219786291096275777110188674424296799087844869786000732493825673420275690393022131273185402155855398505801418846974631169691163105384734093577716552362383613065949058179524459293570007488525795787311240628165183024260778991213191541268773737310842229434021040985663022734693519620094498582951732557783559109435261827374848221755242459880656192065904292787144087664133041386410847382464634850916011448394072837245135137846414615065733006344734056325076104297601118258467020845318755052964196808732722161822205936312436419021786186040354973299065561391258376999355375937635357261399194767131831770151274688903835013358762636128655559756792489229877499557053691978674297479243578937674543475484308134098963253556558703371207935555888636943321488719055870063201228027882854248890165788050366204813324439375753289100528563620189750435142086051885996542329660176761529385051304730961028785607521441708632629190385512717833940070219432448257961893643860743161551857841207441061787263711249413495013689306109914660169636217678793254428640843086389614917189891724795427024868208501216493021153180811329320111774374605713625530351426334638868081952457270913793329829823722830490063472672715392164884638273912127182162006424565899444151564325876346245224081084977674875762205348581855574280020039523453584857696313579981752150183251353873711524177512458734545239111233880776494512566590233717308969038846881103777612863971636776981761507523224969264403379241789203708770432313145215186502548416915870606485659326420593919203014248799177811841145982739999247041669356258491288320774726547698831468272178487667572068484522462560952152151832427541264273461354677154006998900217313918499800006681374575176222045500200318523473239392930864226134787821926573346825847887055687064516473033990484275849994493795265165655154383453361185753077769316489361266836201975956534027194481785322291282964046775408318890247276275335957269349008102827154864762934263292933161820198191612503429275333649637616634052783365597765192572346111995470277618257264881787789364650373313740910545344736358877740706836106762917300958635970933062781366134662316058469663493742888490565347252835535217087809960953974117881815852750611368449344771190309601806034883850005777424873458009199969144566326669023605695504241373902977458799242249070587250707659553573580044856350048842956933232226821170729460013218845269213990619805407401286897898609929451670832478942627251002484811910431106596297954283179734619049613560448746929927959429622112505470874017717005635460747586404503967699977280543097830950831877833609703372426007306035494535966713519751564515097150330985235280021633109352200954214762850207660316658345982733390849535111654793121488712849041482738639972315705959251586186685988749821488746234229975005279073859018877435155045002513864999546192233958544772991499363650968390126865663267637935256720886611477183223948309729772404508239390903142534409181831666989541804287071852840317707505089443853520357232771557028037698111051333256960406184281270437878734545161353486893158861611496749215047811316075121581827054731434358928082785065754872699662728118299982501598259635546272239509915475539996008617351123776310711891727808217105365381804544105672283326014716112495203851520633854686330791643373557327429056444427689590999505500376413906709115796481386679516809591539791065205521988008042953864234758963794771506569238807104057383269361184043699936791895017729576099445317179604300090144001473189959943320346800173272747655000526693328224740990172941306015122183022563184741095232711364002210676377524614946885755553170947930763984802566616667230018240108832489138875818761881582977313386755518548819375052616558706736107461925463992565245788731381932646168477490450237561984653768773820785840316888925575685465203448825152209052482217320317504617042803277481845291797297890071425350371844054229714314058815692886025372042547082091494197065215324132579126647317428958221136759725979897835866183914578881693342713362355432901479159686941832248085630526362525518767111355111663061230389313524856947107609750368294291582956058342127352976390747408268272412646731524129355485686035662817839389775666849826546976975641520938421815000419193982223096299819816756838497940078332100210259156704276805829616701094379872372949269125487467901006727827516655575168151336201572105590043572514046816182541916457792330295246558446592545043426954974005636736461880839891426657077491314779110403282619373853631404366862333426937430855524515896461638496908195393864430259153742744458988569323888726616438554366525337431171317605246813894209903238906958416425952051594309695951786377141607056100802584834599161253937371503708108914754808655832444972445512152132095928190127211680950202254604143461454767263979017544109572250640001438746967990031457447309237837780956779456499530391856300546130358211460013905245967392222035741137230619962000319210542483546355496727236868732380194706509092391175925158969425919366711108816167901903509620658100135172601697277678098132427737034147215645759558806368847468206577233603076554914122191973248352558813892907732997911857972602098920596734217140762204525820573866607821607955250334662449311951455193467471383308745613592969358535098789651327635550101333614452504191372406334918422981768142616881714624126134666040240158815718046578936448398824190736703338564894502156871906878288377011611135164248730462245118241689115120120882362245173781423003639394277362882853178370264515163673753946272956059263712270363704345947226572989211087148752862623629142485834585026637461904186983594803337014920157698129251704703539387170794530395661404554970702875589732935070251745546423721181969562837726858956325052356464460205020633091950948943966920630813520230061865179916164158020162319153347987159255869365420576086892140422134801240739799104298884306806043889060006165416633033759347872345766105938759401388396552659888348581817290928991373931163972195823618535189529630380689747757797852399791222590087125822283277722960810833370942095485843820530959312880783328327800217854237707680103100906987437470155168223451355728813902483024087149857309585839470484393106136995436287081806737481395674407407082384171891705139321000161538918343980706697100813386126495541217827757835549036501671041242011762208737831462583137388824091345815871304927845197587951182878372686978764107922568076411756458665837177659531723360553737808295157814041675701840362993171285210789062241238957307802111500815322306985198846936381262312876778943759066680326656602509365216987138073485679684025977555173000440408507211794878377035341973046945350308776879509901752826938950348556676993680001686216456936704599603491981093501749586594516777356331811305013888791525104518658648935391085715789413635743320555713214963615706457534714488924694535309349864052324823116979119880278058788168206653694600457762295984755832096179895489865637568631752554364682014327187418249188733873013195905441462954177789261000292983463950846062056770519812245568940212563936579881427896920150296483112311904238943400057783416620461977595151608593892262591294254833651805028199422991179392576933618404336173431870186987928414843039097687393993629413714674100671958074618042919179844085822383368878460115751619710397794857500940117499347839309392096407978176273778313493511704287830911078811764253824348314916097392187879638608462590619834372143068101075374933964034531386836978153710120693738957922989840669624616303391860760045418246072986993537367693324037423685686972603050184950086715577997164813182341752490390955516936531796104234362581205937093342742160990126119109642823961501691913005469546857380535220447147947577123443771632191520566742963884069200815658322300120688561032012376286585745262567609131027987411931752028811924723633419587793470219703373291678236742156516731484279361692688279627647129575722443673773259467122713908151069163366382573313684279319160918183742292861108177247776104105116272154941786276588425353020124916598851326320782306240680819442026008436108999027275921110573274919555446378075335515861362067506781887007745475043830000643684606437968413532192537663678895857090903232612589527564640724797319059916912795445148833930447482515161293495368923765163725496560932104094958308930041918096159120753681942376219165241708017870695354038013286387930681534888698613603643711393520553390331361123375025326764407717326114507571349167777648459858829939505972210374547855342097902633471569764541115345176289981535754911183617110433155207790454860323479628570019375009179244260678708728771381446083338518946269353002476268301221575825138667256316302142796812060105460012897448705661674964637578384138512976364260516983822108039056611377121280167786116769513402960733165655888676356958489858534473534230292528478883054269359520633914296715402079525133099302892751561539810870920964706963723490080975817103341534761145980799721993498308656989169878747707313734820616811441991671502570881412961435859505839236774468593718707792535350237016434218324526819509302436200399886637729471288250227602241937105837726345981140091837563212817990080885151223902810075611631314595170394935667657051365952888801177387003831190054205334385018187349302471285488538337352149098241812677893914378070578736803707275073776399417428635279018873868829953308556522648358214806827122068912646911682767867770001604532267984051525076236761801354716573222757673517614673844523396556305382765086569418170112355207500304540176460621993701428279981405707967583157082442914087735737392679180270775388969167233455029421449396926212389322456911014494207969289751196752771356442802027468419170801087789789775986138728200188092030688567621379348895554580399317303039782357968853761468384092082796210872228849358669851922926450738297939304917878849804161009630816119805612308921916519652901712935519401179173780206717169380091646033291629197551278661092667830250417501552889862119559128343004605875049710872747535374830225928709328269026114983460692504806506690024565897503546411404136650803003888885383024839954080369087635803442385895800267622876828532204587404725074941316283536767010776763034679741041567836276976128164114945381289274666372679431230621570815753594203768427662852096366933725136980526286470987637796653108027087219164401604115658629208913857983535806731541399875920232675503110539533662758377790996614736154449006567773295200567201645307008102448698381331353790417728707071237536473365709070483417665950893543835949377857856037434304062867065854052663026136300126240471087281384559103054231025332353399920256356092248096787266893083590934759650239787829526987652483758188460679534337927311441589858558234545675301319214449349361201172682352548429270756934242416388831791423690805123409916721110763520991891241237981576318860903666974931243407322688152329468954306945428992714500333180011316548133625596340321059464883815490531547311413703509936091786103255978964292846948877573562323768762919516505947676887085065592688994431352198647947663162209439732669587255160320616575618357405904587688506411251368892385137667632585828770969261941290586931058548140113837209124828078681247365098425051489029710329008475075462185921224233595975293764916861187599237938853991227562955750959776234107564477009831587729175393961228520746308943703836980467120716502123554038480583944210229314470262527321461743080890302997430067315271823712117881150366574612965124860570609999825666494789979123301469833598127802645954608030753764153304931576140028891899848709678766076004213232343578437485722338027853788421336595963815153886724652175063424930278324705103121457126894647860173611527328948713152229360382051605418434065285952288489830767151163126337843996367389737686642238720868645369573398170961460831970359016772573531431577405770568193354200230719267203369586333799497444461911916692129983105906692188530000507024487830231198079848334240617933631172011500809695574212768061592867096024754441175814147311977787787358275782290934214587130477071364147747237037987333073799862160214159045289738147366430480130278297467669136129718608622540088672770386848478312071060266078923657567846296908460811053281871525865893093208681021746984376704889732427912986024853715918364666907374736979055010920825857514354236381776650872613179659864097205054100143734998129175228734190106597398964713629386738065656717290064163383528911145104741185061846587773349910739962299984407511666627520570899915950548330083879164098422003899167971105213783690918850133974733363318400203849570050665667746313079322094987498265617964054179450763404759428332463786741442730921505949637494999069013693295575999999830115713666522001566376782561339167862173466279202911225313922165344146531287243171236765992452190836737203214391827460827433031527231436216841166816910626262566308545739821337272421200449330847751749493313176629631054340481077505642768114659086510763087921617051560303318987205155276222937839073770752607135827320389076450837817288802102842339635026436605940607026761107443308960179647568714191175276276617619179102069269435880109319761897293389555143098242096109651712816719960614454397984262041461050059042873286679892072095739492818605678777571605247072628658023408654386085970206150133943341989714549904987663484812546449001586571499822004904254889461775569985966984192576128042450577666863900781704530648215016898056432878408867697943453363907011645382058459171629172647356478816836396992672096945175200528072401553550221476265789384911673033723987357331556326736538467656227654808826240257670637350104221192345117485375653305838399975757411654214784899932175633433498608515916376777210836055480176020287289098860901210028601763462735557692199854181278822770478258833864067049858822413151713918188768913879694355164189396238745137453940296287541500964208370196764578305696137979901571023736604781858136011699560289907394943312509713718311809415898656319688890973038977484934416862502031008516000845899109755778265977287450190660184792230712060477077780759621328923013561126383369346548912561910105807201267214065676779552012489542092952285727961709852532004210866808601398632565285802302968079887931699075395871801533090395065761331189283336108168276063677009567598943988634913227794711156053357883506161069532395965774889368945753382018382866964341211895918692362167682730497305629366880907773709476492645455247262348583533786382970870473662017320333550813190813295305025211614059568464285311131428716672792785775990648352797227504739153257401107001079593225865051089963390657283940129736734903056875601258051250350653862489602288675485177240417398326871454998229069259298952302287822369503926379029547069028804125336023952060276550236320001173595980161555361502576038776476631633867060745220363989655804850927387919751954723525761174390053180053852009147345753630308759325432346883152913349486458637464529272539474685357840900167585525782421897778087702455039926068275598780908858980075939882709369555571247192422484118963604787514234657802865820829401648706486842195945570624610014095054259409312291116466385900752765168454518906039935382290094668611392618595668183588660190275218668314065635983773541366650192915199116388384007649463775418374179100586425552109115243013526088700402819611840934909576898372455170937590761229396243101534184391718574005726043269133883104444872134143491290880808789626654432784183383309225035173684200823476111442499800148667217876008247731864230963422589304012346460832845187888646944656086625682366417019589103348914810833797069130218266237196954606216419441705951837124002440389876525270140307616108724779171379651133494908053154871539156998816102705518204043683142228683873949463068784432285471858718311607777025600732292330838521152482473120746113828390421104749629008004403674288529625797189653410325445224997234875020831015699529984610789856441251650437977939714436339752694237623292753161357030239700396261334970813844171227868809102443470749353751068967124227136923584607892861462150881806524340145242128738857121432517090498130750153112577754285643845334860510403224878007293452618823896160975427583038125623111155479767135974864772346760286028935493836089078750685955999646995546193240977123378270875385846989155810695000892211865851627391431884379495344832595183547309561178580295927444040091825010533335767135639332238520191024860683523492336595497075440084046989932168403076643169070574954163614448126338439578966387100506735927792129758041163109444914609545813188510243107759002079551866273963281641478596334801013199681610116664781079125675420896139689065699947270200626554532000596990103710089733232569685398832643772836373277012069719374299861111068716628102144071024447764221799923194338893276953223544896864398455798826002867863045412019265861212868600060407008635738940169785878595418136378418758319653278510056575867440004586328942006416577630934159964445045066262764825098427043295688445715217017845534765305439141395343805355181670567218364473640635273996800704429783511000509591903343798988222418690439393899744158017144169328960010493736367633291368109564686972408690154798714981865509774567111983605170640480029908441693737536506153472397562834508839635874951430077629281096746207827199857085240726817289871795704574075511203950088020327305921130055269233525676601625498979886084757154554406405565423759539001162650883537559660114027036684949607138651530655246635303389006323699455746492882441080066979973194015025961104864263138761414251630600433304452341897252463242821070942399556231354359512411820059683899310680761385968681269853611471360743355638686902649038322919913233913927271860824927454951187913517767093295316248570013980842051279337995059336571401761666360891302219669872256025562902695088481557685743215266765773074842175404061992926162024024717713846948488627620352260389370369524586301683767310881900040925433333744176512910476750908628784877602384490354547541149187962384297641508378621338544623607636496230735769409571295877979308671969527834303705401144969238228693000462507740691155386124698018168974970004471102781549039890234829407988122545244371137074060354155088326723563492947558532764582738744951430161056522209505848390176168195732455671261093774690730830114667294827944639583513197365910260883602578772873610131470444583700997403000202847571648542736099467926937285380929297292519640475946666844225073936682230480592572426313297231561272536320954608215748389335126362398403714226247913575387817958744639310252807359303547473696484881580092166067317753524502246150909827875148760805985528807929535217656118696772027799100898547643089614792120735188086458355437271988461442083865617641999379059665904420053340491288151986936019480406919115274595099161841605649328122909376013993108096520647532711572430674324446289313694681922858124069493284485196308034407173056147892142287377071549960883003499261637298097556156284950267243525247329038652268612137229871452922602203337875511517920949123578927310473407810603767342480496319207334612686341962244395125284968009820195855586934133789937386319828718979989605676004689507006011696291272489383815109863221463764989998872019864478990148200259169381042107924927180596326776193820758078448527338162741850707390112164609313349672363048428521161263483087982423694863871888689940906697220640331429079815742864533328390547488006289687932913646992382336160788472946349707191393171382765785639036563602147813647289981260439323876713492175497637935669524238831474070541516202171058363562853280123786671135994375695531438681752270355266224202624968604604395501468474124031208017237987257884813912060829386026709476013614916625991413715747610656324494077755476143627486932565723406510374743996824155176449269872711122863467477890473808783908883725462516549945706150826850559443735083529275969205734958835092249341107629721518712783759172183314654288513026795939515906634067260170814002910300475210626517336831636999570455036460357649433405789179267868163483482922310144665018777520922598438015820801712482297220948862365101488868076924462393573829959088620507382787955299742713469992806540321234559468280931859852662958053236894511010970434497017583984085731072908227650928038000857107327996532148673277053113355233531514703218157999749127093711786289367281548248300962606301511775093912174098668324686459275091379926622987401002457110355611687306967870796439995214545520862462043012563066227467235106560277319549100674296849202268959928161688397556237220955970378784844045177155258509311671855193114452944851995179460977481006951656078570697644209190327704457669803560819908232852972787887767679922447858260110311231947292794195186498864176316002318915284038660894584102733667161376942357384776836843841353245445943155074178467062858549811579222059771236877955783525904297400301495196161497531731678667843282987406267748544606376999524902456642232854947540318290153456881622664861524466588041077751768734991958618259330357577245920798371520298264971544739790064948742366288192718607901305365589842862920587199883711179354656983316066455055248736351857719355494843311807588125038043981269873947091211743155564583257847356718860021264082181468335320548837724210359940027162406929524863872957651977045520952477553069554461240776050953980668798535890101509929827401228787087973327903363625041212918046204277537699521665496988889168028711489757250311041775014407129274483194354817284231674031260572551447267654489652625039052001871794262210943235724580882300637860690363883795176070438242291036332573189961057796823991489208432846347927003278705181885175029616476054225454963877040540679418514097035775175221296914423394647244664119216937218332395396876777745462621484496539412427961484233999724204754687751130675513055797185507864450570687898193682967003827303588582776060401173351220554319126078950138329222217347520801646692060268356390287789663231765486107534497285107425338936020161824658279587826673343955379919385024482042289805757018033051881828216506465814520556986417759520422993590515793499239313166459295010338192411085188321888249860395648012357925891407964956896956912050345353266749657578860703236592608708288683138942409760417797408127191984504054979314532231556583296749583600951594747407308881499791714011153688760942348251283145498919805230685217597938900667253547075198572454108411719699622942696621841939970618760703160773552441736643284629446920653371817793001296813465859833916725232739795929376100899709127184630808337312979948374164614549687670766537288765491153328811313543215730971820196748240723807500469619996748141952999228011480246094661951818078439375680510177190074448058347866937798598899606656603318938990420580646593174585482755385865047379050336930358917165313402049866606346328695895129144974402947863878795289744345535295645365085055462547322398416743077773611939734561261878010775984216789902989211677530938117389509315031353638717954285254047104640039119757697648365280067117808857125453843410529479199432492858024013663996894208943253244238275782241464323896648320761979139258187660110985729880445396968266624711766144640980191354075007477732524549585536714745585921646751299658972498366607786313475036774897539148176005151142464001455075841664803123221072515238225904109721817806563221445847342639567956288441364133877682687955603756599863312481099844318612962151177251905610988366973537915606340492988747986146453241331991134016699323743523205126657128783255582279736579430102242215608919778611943662096151249756430008084586765025941306977122424249081436607827841682622419119157841802631005291624801894843941154145639884851505186635925842083740256251634229943992832201213811978632949512273630172615737389984211159911855384140726388506079842054457736443673615991347274499356010114633051694176577496575344407558204443956848927202709477373273879987090864760176183923752908872959911115078589272343664275404210764647406824898580809980269763639129104087113508655498205205537394679391173055124347574985528692330714693947419218787779881336537187479585110516006489781273825209873221312826489668483518370617629506658260460966076106469132752687377365679888674046033695480025376467945878752407303615268424882694528123935325167603924825773173833405815222917441822242128830975952551676320349003453161140970306650408314782524566197688391916938542005607639007374313990480408070019700085239519566188725034713351371805945147853516982671796109895301068053898526880547842840389956472783496374551714490531304336569841815497587468393951584603246138984992373983292809513687990580151855172163602108548454234800630873386105369634183953165471733141365989867433276823577629987667073788926879694762446725890335439477681809923530903467134085551099567440343710694331877931149677167892870084494554341432133857302719563581798362903666873204531247696022887599498027117750388593595116152277992691178481351591279744076492222407092989769342562386324761587547290723877780515916954615444405508044510869703264090145655727666553458398268393630920284498384697954023296724102951446316605584232408560463633177148966510949849268632933129612102367843315840028206763555931880021504079858223580603716662936263643778385963946727021785054992217644517629092761824074610102538084619894776451861298008418288513870299622837726981220287325891193738761600126900263807941610454965369760916452356903830792130305802630788111651586415021821221786921137903664950910889219396332211284446066692611070463506773000402574301637927552912178527813296480231392364020052833946936371245299327432616940609057040302383653638674569508721596850172354169591586574316274041178849703003365400639158313510778032580096313481162484404505287123508002373598273331696390736016824818147646945290210296435247289428114972941854842432562982710139849496036741588787934820607441011483135944597433850580823439545350036896814670919774253582938154791370990991735802617595395028712896487181370764420226667710482420818949324691600557929709166347744008204094843130420268765859669681730301381710479215033234397815139306271994766752899603513359357036423198640743127092113118385582998397154366538985861725728217165861180628813696615089757570467201315185163498512551662514182637041192244532218697462478858112818038431356524697460496951482754738336990819954900253187048821561997299643132291510228907653844312412581673200282274747712986766409157120448040109745591450799376355330872534544180434324072310100987172533761831791703775043992138561472263579975307076434971797457591970163609954865193530311157435376482822491750227127323819978780921388776382061321001636829155408339510666523267787209560806707346851557025046810560908896622004451381870283605805405393320444741616876506750460486453207655496872337938704439879504875580693187304900157470059837763619156040578030929960716743734003257978304357116308856484424634514688513346610428121535177034448778458311519484657591611512146609830579819361927253985410254788732763360709498245342854057190031297959910831620732248466780606751010207875631296763922282247132832997212907988481199497091094438962458982676237772604398091289229020699031625073541274308898212084215095894755035623485647404137588955714079482594425442016221355932297762579654254237237987234551085119012795485227939448003692523548378000392571977246574153045976438345480259339882908710068806378570897197764483515910287874902985968014224181322164128865620824473105444968650856872096966764668048133388504951022175691213390715414289676929924754063739371177001506462720829611412923120113468109686954786614792246165388347501757798229799664537735483925381339285574687317307869360375714443495177498463797625604287705765087234949381694159466569913261953278367310215779151005378566651101643260383350891415364641261671281293146875874927889713811840821033419900776687379518415066788641683074170375427970996208612436196254654859280527748688374764975644402355555985953872434256212138709673998959394608608277097027097183559302354234580908672213460820312312512988747285449137004512252262009639827332380946962554732744593543186340897148719981254553337273767357998623726142955920000222134550900730495259193533321925852594714851454689758139304997331766568551756216722768924586231484430119165450990425708433190166509757335032965144425286123486418612747629446946341410692581104909545350403834775520367040369834231055318667736496110360709937016618211397239225368656361270544826032610218834400971179115322288339796517858141617597675777530875853541456664969580756427900770915900328022573298738995724249165398587256234900707223683385823580421909160580317751680833813989809820558272962094784491969240093669234169296189265118529777702788122045369693230695576913718106097816727717753108329472808217475858331646380905032756812652742327678305896160379309988584514579412010855055745432270633255638414406073309892541377804256304108777785277793489879887051051512208325258706464405284452856775684655789646175500866039853442202293549835452176153042626730092682712625436004061208647867679452802063870400701156836938850964828857017183962544216537731897746518517147117389793471009686845793301685410337240703251843334587531574701387584529378349186242131102031478405248092081013888982749439795336338031241188787981861326462244156457145597279108467287108859397537414634627042310388900245765696521139087764115255120572404467801376407498634492475549094677465442406271756776650375178954594490225522846780930975855840246940551412628353329979275832667228018596810660292894457027519926688556458220739783088300860125209426419849826536510811405830867008961452624128174583175415437727075476747790940720581593000485280221293777372989271249873212557361872656089032803125689825609623732034633935178116910738707088175266812923150079845899369900010687524717014408226619953680396494087541911549458849708406953988345328202414210744102227243503373532483268792625048063836487141236448132728449407231905927181522660449864048258454666107761716760126310651926650355823536900715058390314751625597065434219975054476796153219699212035907778288450457659297547062009932840350085376692498108940351637854949651275295229015566245348856042541143644205708484748947558713332512317844081362574854700485521056852698511377264805903805953038732858501314863662107546354006745446903446196508330633804004245218509374831263292693223711938473852887482796966720116405527594644999397103249181167276807970327974070069765332661059646046662454601694454702405246966957996045427508780595673437832475643962575899479778571632031093209799322924500162502608948606064799742977080881924235417171405704999975931871881689023763361391185305821853838091289112676914294786146054886592121543735754778212161918267969848892310291282383971295312631189252606449098293947916531339036349311986606172516743441873442093686040889987159502651129260372466389067149078628464033398344968048449863311493024964733329012449600934727236208318857563596921968825608546874316130564538375878689010641812491619274965897365432895223304912499666391803897715802918917621808344486514738562886397667334724309815080802264262519953288462164228174591820248669850457319617073927074146130372563128620551480289279225359732715100985165821402290027375168331826598692240279830951455687267784253310025264208381593523137197518744027830734826649580880723507508783581639723231429958255271726179674611771654171027163505172270750204060959521775218828355717824807434293388446129001474977410300013054771335148513687214256017843063113462677475212427755860720093552083247970205164482131705602302690578886068974714306502415345780753966138140890434401455962454973306361941068108423888632382041191416166010656287525965861471685333216283056218259407383456004621682119225689011633577078195552781979025866333856871002392196481114606249013463051112173219199022861182651648781416275613919316442868999019621285940472207948228932182957428518534399690759288465734588462234190324085196188860835787857742905885252773398910983174955022544473240399480103610387549219442743979733107706019507950294683593665822377876202678854268352833827907084962418957675494925037238182898180601291872046209580396583869269685672617181482778817707477583164850095089215077025063853363102947917452331070640883114499559710682850962327708177854696157174922463034584163857686387945683239555880226077853552490351016909082880759805119862004306477361563406645928494729971907726971837103480552832595295944490884695498251846404368944864125167911947237098806775519266065985690749808790458959972767677279586231507334970189493983054897262274849216243595829980253625353804285954290942828607974791387990436457627167762528981317536762253016283519438451413243667661245576662492478568916288438622492698882196846223810908829569063541005014279708653106651156314080308465143352049202772538828670130148752169119364965959332739695341979008921913809796226003743571369840398163347282752322334635478146934522371425063059798790892740766924156498725258060557211725468603688449219556236910812517074677964442256444040947525415106602205319845718050647856158023320739070360418655603924036303898408306098255217158576956299098409355190291308578594509545049711887433390051711028992390927011226253162967436657241032547110199600108452899205482600315563020159207882888057700849259994497930259302982033134624178445239041596619562784684894861279025755607809798002670227330382535483632694257283917686149912718788301505769867752023880081947130260300382410795725610477580425213502327322920444601911835685112973753723697928007994701099569001976695718866529873634228443749327222042018073438528130396339463484807788456808202236378933075530658588735009377964373831657326292859564204597138198976324627063664591960158167447403675162722955550806944339935684825016994906773711434737278956122107824959434942016802024259381487287746138945381486337206986314440814949087304153535969063966698847467874374214973812884979648915845106116423471086791203320920470659741292132656341562859079053875807123646671111759935793505947312620751670285282792729144616731083102885986979725596444065964671062268622308040990106357714528206083821776429675424774142264571814571192078953144845411827501190317545238155641813945677820209261800960848716116122532135417812483945349047327563702789551193017798596654559851699123628860342358721993737497531304013279026200712410565269039926461970238727049347600077227506969215043606241354516120900592294888864018588133154747260724736889263239751786648988360925000686601466068836486671101661032046261338761709209147328866130850691608197352131405035835782435006016535518248177765002026581313849490472636104784652946046682113272322226674300559034837062184087792107021721293199485615710976687503936216738958641511251131798873111108391812655089444904936589536699303259900546958544628561904381428528035234917704823540511311933393329719145792906421779762793144187433537801229015453280737019195053406928036935338070896910118947037092851519717016392605011828597872565043015382198298283903160479527239607160571543371433868286843621582953337584272574549595842559841823193304773790131750336837953930256950709115626027393670188174162777934351770350809607395464590467359640407742389661074133495467744326274435402169668611817095622294391871517159279309862090277208891663386477179468861844436057284645388162932500517881974749392022844459045349391625121367474358307863762187101175278794609070155849718012360875985000955950698202960800560846759183786539461200114920068683147723835345944782720070700303407716753120073294199225267693601646945494702367178943108707756773974032711642798483593905749093395800529918494876963788119296348370543196064141013853711122769485192500680052900479218997019729959593848004668243365858954618045539074263783863334669825845171626630458910105080124755406509832365235651412242853246464845460083265795514335959125829108974354608815363915858704216922837597624030346675871741002401664448059239168987420996818560724632178730250520923876904813758651380482955256287830706683874731596555428678889321304949347229131652499042771151898632961674328803286661573811160668523820958095663904373387962413172991273452433171551779355314918105174466720013465933626700675509469658416981803511744831474050094929965181351224172471170517284192637945078546973683256550350142939120921720654799046431618848279832161683787544909753085895988932818158578945403928491244034561826093869885258217525865054083831700625258818878969917581877638855569740539204884120582334675491320034745422414605252906312771213573190106763391677609176866559017565582978636780616573742733678629150827554545442735192770468662102022389129000811588994468533582125490958893765676517458551824070829415612441656566008434362765594461060723837042510434713616826136547699843576102864811033449167138276764382736784618039969855409002972348185626832560546623283108126609479753750551366864947102367875168831323787230605489158030117968794984272387730880714096468175660187247541574012941906880829075731575629372107320828902790169616507583329703924099373712509954222682733157011242847833162574011369477337083053748150876806143279501224395177899268627124654778936889320771831856645363438647069482758015227195159544334917848606071206576565177475299745156108607963639585040877611407727269117817391687805315311429764024249802228739104440173938937643246758520473628700058364612446551080760769061535714912557571408069451389976642646170396920388207349862251486640637341535126561102694511589412648315317953047124645746988381706293249543007309605000756367815121136789774552121001513557103288581776879354955129483617804626606140901241613541645375998801217483668398450401380449447679387338263203205132999809067479922237972273911118796821069135416665180715638783064230475383356131711791610173750161300564432163168700422717504932494028258527175236728388118395201092061305276168493396592422591316597445419908476932063920842974435322127455869345283922945531241631695859566577657975634304743161604021367307799876968356914275027363921946786895538864897461370063579290938800108584084268551235740678879817817949411022745628902599467880103874581528915314078993214320120661055609492086555477005020570642791549007200237092624577261352617831392630462481632397493984983835323991680743753947204899064043991520460529077280685243283113755715100185937760505806856870443924460202973273711733271269876594642336246507770461338265088532173760442211556999866756914819690527837430484712012261373521134258538771844807963685441775238583617126807013108657822365550355047150698764990774953007780227418313438037993430977475764295356496713805424934327135015149342190083796514467787381903370566504894941743802034011668027115199924411126867062120757005642593843381352012242628403322155473112020134054232408239959955025059537873222091444806043233878847415579062002499765270650797056918946309332876878730143616172521757611246251388219577432178932828384085990146590695016466201524597106443375817235057338574387413490411851919673610483414981388806299544869794002369477934009916880710168384210870722681133802804559372617231067356863491582908500140313795142921274166724689844833296992724668802607463481032368692157877607997796626665401363883388212710404501304839077832088735843096172705462332771605206215620073538131474370656072021691903894665688428101800531685881761872044606203501798903115025423684120209872574748571276665053282468879058319782216125382362334465253292744104738170657228999814158448608190865634623659200355303265910034921557035134058374981339939748110642468116445406596661047999427632416860618318475101397118528603845157865311341337737723835994644107931145308627729544370899057580552917209109188207234330459042132154522264122736529423449471475872458448019998528967639033930598240316503531030639408141982137144333488454869337011694570713898269933081634196272795604003736958298009612615634154909921589016588974718816074962083325284450312696682508895891508628852332708071171054865738379376483506889298844149776611565128311440493612098164900071889397434955009002358598977904785241288774744720040788290022058787578281801925287182136209077626460256068851455276087976956169520208831339486047835149037023784597420869462445054972987780280349786621339822437363043688657725653730528674718498378946753331118872550640233600452563889019035298995444343392578904242923004923765103510739598848927834917739207778315037454439519983269632299369692326009532507453148995960221053205882259186539893542512483607365235528567846563080469867243299873586049704991480470547005585754466935880839114135857235811248017721315679785004308204004956387618941412051103960412194248207367284008665599052336357170566257498340291791457474076243109069163290142064063454529634489126958710989774233206357155029117995164670404679537898973025588879868276766817955661316150849818040200786055720343573497216451338085412813804440821725967388964346014698722631885567505431193280378475019396791613006748591928051401011751809334101453541455777558237685062081727644794658761040636865345636725417691655542920780111621171457527684758660431052029612363879244639698720670359943309211448957102844545912550418767914810396390217562099171008715733131247377003917503589287437229189668716725492289470980270753104680267477799224017477816736262437099072083384146122100642445782459695768097186785616267757308858264381204015698091259261934024905729229958168855438691018654495873967714336347146217922138924151192463909629097033690495293330373893116983902369660718733226209017469022993306439386497360787740814232366222400649843870033706885814958789237824061744478223067917646351741458886556283213561941934400689621907321644567859361311195977829920488486327083700304592482127341253158610664824185231948643797030593988964693585966302964562092012276770814154009904409196452336239900740595994814901424624988029207568017439906842849228262804794483556792246670440237951578617637904502897643856522025347154275983855122956572570100810870946800086833585253436308886135064778269461900680389483684471033161903855202427191435219728468825803436619364199700740107180254359675489150256062364424952206726135075540586041229056226174703617955097073464684252741334621350809344902944576311232348204029389313178737532207865238273379375387221965515140095163879983624829361881214556835399931509774517653501859492190524531275935839943810388355126318780081660480885750428641760003975986927264035834854431654462609858800348699435335408448461962287450074037630304234060540203242668716367698800000190417510772528784176611708002764246769921611649414457935533243331559691785633946573586920504311897781915734896748612969105193271750076241719525994450113435462745774353431725560418187792204814172423316988280198813784963548003112024465199161566422924631260974084613904892379608833265604060604513379864878002357474162305648575063307028517956623978169330068181113378048422843264687792722188311498989380347464108774067670917985147656030518277371717968662607298611126486374788051531861059434705122897046764906637061515548749594784097081729694243949170452298728255424134489053028424453202222024668753647650610996893641437542929056417851816603146478307685351011235099951625401096353366773285515122101603335861330767625565818012393624550431670973969689600706145877728842793982523621990909931404190502616678871596619514126774605529912000788963004273841798140571355075857094396869061968412400042569519249672274083483995403261604447288108061899112780007522710515912623542514476204586126530265296602637045132262019317903055343463050448506795432718147584179730900953396297514277925696272698704935729449715513395680676887755366720462071521660744113740433315820455867448952808079513948828717799621310367276469754552881413435028219419615353771352719343726788035906221207737583413730279913935499777916108024476440046247420142352689001859504467142924297165097872817806890830423587031922023702186324502554509498850066847719374343387781329690398224773664713051074616000824993351032981623257422150668928377322667744974616477961913360688180261114986701518373517117306198458409367117806474482097104997375366970664159211479758322163248739231123382910053727458692996715550234745521040544672576560210808115806558307906193305921536029941565576620056691482679467054128439448944221613467547881610710739487871996724685931020191510903779477674335674676975643128896797873030641040754308567004983570227527199965223923286325548915551197701186627411779460357921444648762614057692265180864116622385214525875313632324895624918658461016247908676837374389278253779338915636624318423963325385362122478534653288148165560852439832156975771807506767560728426768697909428853361246769139400295942818272346646876687316367846084879229038147092793540344138154960043502139070730333253180387937686611957394315444406967402810637104430462606009623368997650015720243025859876800928067401425476462821874062425333698221882591164158198631896895551239605351225919925870188893306364852836551957499891957928536514423638841631779606285245259406340289924061686979104898995465550959672423340938844841739853663168424395126906181477774455003458308995847555540097865906979231819280120317302280210564860513263117593714027243988422814678579300716022015863996266415908098960195711716517548892539748274245414105304900092874983037685126093202779797767855274988400916645359746929259992724738086056481032422516696201037743139980956065179162489683991640968092185821870416741521153206610424344618637591888560467333932233826314505799217837728637512151741933349038250536139311474977312819254006066645335691707735459784434120111417658120985891563217706373486763117357735862689560556379893542350922012857147253130274951048571994271939893422899395079492464792416226679081099221265259044073504964190015411208675733324842265516774866583849933238507412798545922073733067211807398078527220812282617462652670794556908897532009889639141774686755520602750920039927869984200614060356326198319878926939627705246513952574887274960377267482501645978226390099938928436246292317317877507194206102771872554479837230872386993835555920375662742421586037781516021390917051054319924856378051240586563989431457179502401726025439750155950517234186507082522937224572957746747540078570027915988185165001782974978483202495090977019367307844986360144226789268797377051460376198002427738541762189615090987848689382067475767486942944670293438683593068010301636729266586015292588724530529175687951743117865100139395367153231952057539384485151167367170059829472301755499746661594398658497260474741692829883541134892593939994183040721839031580125659389647574515884876575196584607048430822412073200590902283937921159248985013150678071453614537287462616482508376510153594488131761688721058094940206054859373233122929083861011729507992089599580910671530271012338028236018423185180901309373376121878463273881704634072702603084401330858977577413510494285544584764131432543862059505126806642173242884907363118677593888306604641329826557901353312645961616664655389030359379908081663804648580295039400503540234708534694828214682012134924902491279975493725619912665606360533495709689720472483228976380659830943687042827378732742941568943690557776481396200358358374785839769813665491837673029924526206936883149398765401654286635168632442156308937965180571645847345694175218354388403198312654409470732947952285989825892679171421464577966120642194680433725081553990127925113674120070339423654333588048577218345136131184159183377961557389964586811857815643166683253189436700830261782195455712316634412529335006802311007981450644265481463305400495222595455616389311338552718681443775890763170192218427209505205327991529642813938380295669334063818804447517863154713757365196821819760731108646598929862319007167975489482741477290199020963569519043734347284711948624204647167186070589337649824735162207009319597176885416303938484719414088391492631522915018753738490613478441864709694049084899939577897372105526321943006950410370211285971313151558269370558035440578857538229476805680990589384484154536589059604169853527007550385325106758467403956057897558459903226975480165479490606619918092387436150731908020687218993001121175663954971284386263411106285333219863401581577408880158874973263872888127283965680648337722843011326366544305051841594621389491433055605521332382642234664689841571767853228110528234562315332883186464968474506767480167424728379631221258303300073831689898767493636506920388535163334715050158591143080158987723262408821721076968571333361132838223995317220115952871044899328440183694702694684371358058147852887055790471509839957987342075101454966985370061629691369075329098530837012344638530406512071687924044978561000815633953872539098711017836582120525148821470568090067608084952295378270625540413655316082551805954844367443508919523422790473900646285029209018047643459106404113828696787666382165403188245706699075118698631766281609717592045818698548550667794330189932946145669466573797166706270785295820580458379095744066663609030532570157556811001205934599476083684914503347227927556804698245647067646516272135056545904321737732808579298765799808419513296817455640059029539079969919598474087283665065876017737792278759767964684150053844210156293678503390002440875650153154925558937573514895969925812226606838281635167589025112595957454474733423065958185323601215505101098553460135538157887729021213745218899951277973463869338535713578224233978035504221255960090585326960829418156858018350618390526283687610986223051534975262994487646577021548246336110681057401824392148796114025762618593415507828382623499753257393182504104780182178625953208601381542074564416153799669082173860002490305181126428143280423987366290575326775507115976126653157328673795991705666290917565493238126811455724876248540044738558273280388510446558674198913170022617674010890502613317054906041972659915451398668072582763125735835445207911371429802606316676552732321130883286231420167970316071642341321947797709155643595543427764791351502280709514903979935242500280601790623950229268969439983823405838370492388679756322347873230404702335053196698288949474158514420181700413923089057984427787673343070206808886787569093454303015579676083430219074838568082280371911971254164583299226197797171205864668815120505982372674061566248498880868072571200235150325947529982667504828723917167206247723354481649400014643016837813863936550409178596959814702109428031416291996480441116488400648880110180897543187495863228506132716182072230823101363313104475055132761943998236533931815908412735764162450304013920053311213794464467371728191004734159712871743858474623548768875815685052472307175012359167831229974747967449148556602554930679538751757744738714525196267062309000732666193565517503215284570004552655060221770592061467696557941135607024737387599694827791098348506674089046746283786731913878905969269864476406180836763241563003942688014429122565194123704865782718680513185209589471057137179894777815001476191063406888643750722494380894827127705037192984545646342119086787915074496941456164056646602894812672858378130924695415457099637835338267883118139289368608667977546234111675667992419321023720411442487730219940606405568386457171061307402222665442903774437257240917252101440068390155235436496004374393191179032342334705972592488182104745223229916794096736694725493403067387919408741897414427473656511488329790496560832458093981508075626256924751703645670651492460073054653149283221401721506313328120185644560280625656008975407537627275232477871676815337489042759838948667371912396148435989599703655147751743279585789995252510845739764192718365420442537460383947811605996967636246386114231452674497243699356883671570738529071975663469048977090204055717592432354811955395305817154579172133018545934979762513598587009334172015942828310407733648471209331641833206502135971504323414433771370918316511410625259252002733550214661028066728512724245836306190593491145413141092436209101028115102092712516953960208540936862741212600894094821893276846933611921745790057671319056388958334305730146631475996119888254720217605255179263949699616454848567492102081670335896264375307600355632199612256090604044749369773781113645880199927168715578188616477051965198363896768391730119903328729515226873366260136011089549320247443397385432050239672971821414674511059773532272981619319029312885423901077935526960808581905563869241246498807333989347512623735212474361105059370343477833084711438975700601452115343591700298047122910510900593660224508105702702960130214919438134365117690305827996441963816524233788264897927811435300135105902073414077199518987980818796415021829889487886669080166935145551354346026052509876631378699974343574009023564272569557463662344916683265986167242394228213762055255352915758586233985432179676643522396716640192866036813933959646270364652606915538462864161477627240455677288139809115581509266290552771540623078485073090949446309285918136636028410349971385233642184766247376786486671340245575129270375940728801089211761579841348261176802998949784601967543929281802968383338494886742409874857985239513786120808141026518073300387473263703471612347832248707311956992008295450854948972461291337007372150091518925085522380783976704344155063375324833748754136685925277274599552439388707872803149610016340922770187969450583210069367350769515250892771829535529279057413232756063606723545087586418983896512852109788539198445526848084682364597006683324111313816278756760505965222076859290394484841250881586937174738224558884695783171256608176867003665301218140626864281629494264150061582646117409022243389090382688011952687870586014537182277080272689010164141849380549045898533462859224521296628715072562588330660289860039027110525067369589552128047652822437523931151680985698917836050061677447801536172031906109215107276483443125511659074180551996832860364491694887798877306433177484909254034493594281220034625739903038593027410787313428719402635591252245557142074996108525301326565049459316363867440446300175605716476273762373817472642286363483204452166860230009693681138704467086905547430093300649985142234269734061519810153270899984773813930594841584583703410109360928839153108464417350814105853012736706765945490402688023705330033212272510424548652219443235796854525280935376048642971634260056363831849061371869780349933579918652399916946629954629952201028635594247539895972817748753116911612224093651979344236571621258122566825843202318635574034686565500351755514397116456876351245881589591995557889114296476288915607966809160380831726247505921056790316022177105167426387354292236743728291469043467338431739364924835378377774125282280105698354545218284538336589792699771920675051140515789801385683116791532828189076242787054823202000516456499358128149335495755655876383879006646421756294772968518409851690394699351815060339020646523544909244471196700738589462629664897600729427334250172320511302534590985282978443307548518374888964679363868992026463848622589512362210396142916421949740197632280863774468877196964308403389475806268995091466707323490547952362395086437009033800450120722074975875151005272695474036568334855568663360652456489919419649619473894072151735297872155148799728221652154555645562037214076174935580369344057599097017177998199670107998098055692552663815773807686356068431138566514840391672272978333886005958389887095984113938442609782964364665694293219528201883019407137583306503097749167451699602967790699786178159801416549457389139213882383886194841182071414128125601866165077697055495972552801676862028316712077322116738640191628877509165825164016478441659445642419307393204403414287370224631635915556869337203006961803164472273602393083337352183620899595525000392639309708981548127495446703662781422922539843412450864253418068874852338723101221801034187406526683700636261863416428010381224253839596332895601430405968930569182519234298962098386899858840921035187280297808801473663651678510144659311402194561132418642986773161117141544706310160288656031817333513226672434611908877320083568345485861664701066257440043068476551986079624067363461612945172564945641760187493638452288257096976559230040078071935322492431613245674880209047441064389477812981743864446521369026134873312026185268422869271229915172334926383316938330881466232052336386309210182333524122649422128911154120596301562175638829236456442466290516376358076168554017103642092423796684719807423368942070762044670122551293383568547905137164601710641461610348714715947865208801144343696728511555816034658536145774923903341702864094274604062135948317028324789601976164963576124009479826863745046895747012877907219227278573702820790645146831657228007583003310538559521942165579982847614530784705007163235427193434186399187265495230618582792191454643095290405787443020692617957252992460438354823585453142821942169528495714689659274274022814735355576200081321156514594550588310356539153475062636979228932820797118577721862656300922935752653108537630394348332830878350931617618073182629776202704211205312135106048216986299058914117152460744683434507879377251156741710506060564485294129850531312085986181601837011868001498507573321579894337636980739986598331953688777902243980777918369455969233033183445028078360538098002423276433596679690113491117075314369182830992873539543824053405933748761535992542854001309035315345509443355021909432937305274968885684376665735257031806942419795057895522745885857747466511616450832382824815244643720679895324116126012486727416124159265457851439678038242104918389290647447236702554984617360626409649480486376269772453210399250216265014959048826732757211073214479610477233414600514523599227456082488144770852309419157168577060030409817614745456462025074282442183171131377621090905140227176440184383588823432532538025262448176272275499577745560568978883809048294136271275621970440214340016165055940881919893332940128430508551920898089138503187819549395335271742502160354967910655482445640317931916758580491139151645215563306405584541481466613548397491917579079136013504641048491383929765507122001252430809018219855564383159000645632984482075384818146084236521053059855319585280256411754153423520724022391548250972217312464602139887856380975616885145303903127335398428330854237825565089226437732812266445698658313414133570945312763771412811907024217037220401403510384512077575183069457804976288627892607610734098790141408705408556067464450234042745359524525654269424099612381611687600551815721672130651605755752146343250956339757562018355799283549281039405709036120000110706697852029216128914720281683406894399183648109663756530364293230293491424595972012279100404442896314857559383091324222087748881321162272366384163635972802905703288061240934614637640148873124339370753108874711187310875804370842066983574849048954050262011328763731402620810440464359076490206077598945355675705184866365945501157914706418250446197696616561620454316299709560406894590094311721159645734067993084301422741548029740652194645156255668878316109233314230731561299686801622582390452316310186995556093418458276397682434114746546720171502243365477913863091970882423201585330354990262940132515651506753563927900104429734165669637048576735893915465587041753302189930978377731825825296518778902901145694952959504072820469455196116407099920494887254672543528534746051614847785317331655781457226133380322559215385028121576539842748681990178807665377172463132669166526901797989855479700189073309420819706948417828699866407542743282149422219771757478807270869380495812097660735532228917847461491756307946216834098948563191829252009154357979963865991065547703083249671162613121065324593897427649242562204475916473028895869552187372367263361113762482173411319757648669257849138485140299608976322024338823464053095638975965085821665119106769908867249640731477135764898195022139261611901888544799362970362742831443133744631968727912187914244508348889505564664675936599935380839812257543473681442659686264636682924683784504239256049730337892397027035595278215091630139916089728674783160237423967074133095220535029006112901982177516781046736770421976015617957870324740276312470217682146729117546867187477102719656078845599744042896953066374166997473112233641666882012546072387932623464546097998334354958118957530767942153086232748441356582458642717527899275181065559971566452050934762421950421970994873174425761793054095346189689714860223936026303745625084254142537266580037325576334807364657673650243408702011368353347298665633553977877021905092482795576443176998259884178408490220787430747599721078531655210644727483087416417466866675627584814262349896533703389363830606251826461910281503644612948707102815098828048314696567058716952893097168338090171869897699997509261736160455739427637307475716948167749609919698810554574203201241448243275191744308695698196451848150408257055874691611912672206911388263730951522941174119505436002368997698967727539797457390915927660462283095928282120112603264584233086355355422521867437330001210694915784105109071338123051939284250425130339682445085913890001879660702698305638837834700593031141397669130000229990181109951610574042398977145342825926969270321121077923348190512474288665419762608708727286728223091310656205932525098136172680117434844164208048483803932070896397146583781765974672021625538221685027256649816006919846166008791685975648558351575498771607524567125302426484900937639094798811827797664799026496339422387389995559391708916627114546791687536231486068040608845891156184760819267366476175829860872007588489752954185688977242748784920197923519910952877993111793826079714884603733582235029622650702855163879011897044394752513700292642754125060833107697476547508414004653499482480828883247936704917545283472010188993431484137172638014707636438172782725256025564899939779695190441043740033381953315849436691882529065062797600712393165491466389269676911662971002656399980942693381778132754211868430452287042894237732710706537644495884922924104185820948395346742892308141730491297077757830626833543970133551699105557233056552657480830641693841547743840024102012064630355945892267400736690088430362198494127382832033511770096633262969493631454287078374671905816715421872502881629918152195749789408727927735208525911509787807795332090492513772906130298999293684230236603061394410070871119162948968401413148046647201263236444341377269925033574990074901244504479689835872295246439595090422555004334274793012231738947215371007589304975467489430930981971371010588360464740515923684668241965672861214706611871279368131105162031497428408530317187160845178746681269354202968028615475519129185357997087162342630325513144086572149659750270744666604134771013936718607776131835005721514638439625948936096567784730284524168641173915258735188642992768000186117429653803402134652080639648087178139716010701903921317903007831900053774309246681477535643850255630763371790019967304759930216624274058279490195714439751749309035009990524974790258144550359466699989422271206096987631350197569503717127003988271232839946610599716700330789359279394075053657603093319923020996385842368777938066789283742294377807817213340992994456097179160478482706892684224249046020274342329124413859003189898698136677859101688660911158681345919015520537183248368527240416809894182358132134571306590940788062378923139038027934361414696909663034111738681007244016125915480868473580208050930436362642059901214491723014325595492705897542444579014538040194152650898659428858959804558988172972001296259386180305573645689924886599906542718485214974246998710684647751091471769899608165753090165900862221592959648641605419709938581120387764112510106360709245917403374873764743131135605228924013576437864541968625926743634292914976712890247132393549283979735477677531587676116008215343885401731949324342472136770646010727965645090908053647750551099219153455328707157449373031364115180834491511499275407468891733438608959295580904553383655768029514933507074937655205610075244618288207505303784807818822311768139105031624168112896901062079569228558468793694451560349186321399820221909783011495564974937147550889726784020209928328212277511120126596732978762302021408684676828383815501936891310226499758552997553289134459396822930481207402793357553811093978088507128558494025068362420658216165626505864489988042275934004572680502229735189969928390035335123051303724146594166194214993128791899835951236067594194489352525434123880008757396778315211033884587070730062807584802954797856742781574038352328936651618288983780077581285026790926867802843837694692958445734806696202851744440932763453334983592824685261834599457282646398964273760566050867111484205033774083504330256504685078906502872990780726157906966241372330222642463121349703316423788513353188986681811027763078552685380483604903208167051457534119556548856943044661504170106748875910434994363111686173482629952053920514970268277594275142228936074823093225270571292572700924921683858533276381745845997775979438556249345163068242142779649846388920194844524356923634970086059715836064994109773483491468611732351377423181192040345676662015827595301614351787896615684891369512895858509145827953213358231138736814400031053792307028044401569223840357907988155284782783850560380395207459584342159785667402635186754582500073257304923261072634020239820197532632063425202735386250617647989563547757098604780140269173527618767177969080132861551010540648223581835911211566594026150322368088362988265660968738228315575653770990689755879659875499069706070859458406221686638557990282980677527041347871675498055554174313868036958186938405730616844659402938244855914557636061872658172594164403210908422927900665407732959302346832950872367502174200388561133738988411094507165408543492353038584951483663175310135705675049408678335761946805925688164154047410302118277843461723319912299945996226368175994887490515926280527631622263841762632862414696083647944100599030527355194239480023539869500297854379536317852311587382577057510072010003908510020664583327212938423525104487840276786268245146921738287207618803008293805147000088086861629441809906911411470991202476606989169126015430546608389111308904015732885139448480254823851161475969957809120856179464889724212750196483414599691098299731351263683678651832127043622751584232031445089658889075037669733124409323785694991321920340734589640724238877580858017233145204877199283082636127792542729096685803754746161572738802005669501121024000981998896672225419125236490206610405198649566537658165166329564909698032755929130981247160337914114946130761098242614146227150120713474314617275142854970977321232165442974535254899275239020123429383849850496791255023734227946010452533999902294346450502402014047821157768471450999889703266400509446564592618590578825367723882672975012769534059639636445314484458350871331095957969318011900083034731739132029148969032535026333082998829616925405659385691241814759194020304958654249187201864505419528362955374701261618981807015941602028519459571334218156479471730766807263893319842995931039246470020566576001577426157852992039083920773038024866823115804226569135242506192184896863206509200564005688715289618081154817483968661845842863033038534254298626995345316419175085926912467119758515106036193269268381224155154667637630262930227555990775300037451760006680821913094865757221248426272395619004030926272619155323897488337456975296790134328774376890397854446416154520093477679140100222470802923645052226544040559410503074179325995405848970279999523558449240774870143328821123514570174099428469956380421326060207032056790116135787352479370397643860584678427545810276752127463461015404703123326706036876645409832908688320267720210742151148540891505781252644027153382029533867134768526804705807200297669601904955392905908416845268683802783620073866377214613754981348303994687227769970331489536483616899918976724173553315833730816913046386796870024899734483452009455101657886642493780007262108395455664044062755181716022734710835555254358950203670736360856434887942667383180517397969353097303384255871675237934177566694076524965784957845197890483150113742747643078051500344014304026942747767390922843148788018010844294612501209133752106097190567424272718459219921033266885537632252678915704942963675661996875244462838797571696730057116774838368309253020406975154529499473197600117923111780577076390031165799627697675224880797174379008964812510361170339097428032943303967747091988343144456557310166400877969253630765495714326003176436787076061958608575200514934520346920737736432862677741924585192163386613548365647854089105426800634379747698614232901826358525465789760103962455796921619140642334365159111729119461321220870858801004854144835642589932424865405133453000662201280936401169944931998313877772307576755611474103183589281625392245093545032542568326984558117197334108648692631175747879283862871226956993726237581646284328737316064485690514790156772656900535521274265946981294285808575890844910280460129223263110266461961237350750628161525549472523753103984269751235012088463142734927218629433582113188688904718426999952839078770623176135986121459720723926595806091766144994536331638831208518318374503106906248287001851551318203472329092210987996623724436263479876132508934426126888436748117342895007807513872334438365865341567568500111953379252906265858739046971679442923932371121957081638675166311456367614742626608648869535835187637993910261754232768771538454967774324384550261267390076945453391622608976633125954255233171513445427652130695026303031486419281326089377845906358817198324616382011847754179053924411714688920532863591102085511057442829432713086679642337977012673375138025840512372447879344921960010008029839905922003234024308913628980802021584176012603734098332606750796319454326661889226382995564632838612311613406036183694437111859313892815892191356408904308455862996471652325500329266358576284114276590851848004299191259958593127238815980932093836945521399747085943029859971221790368346605197784906077460455167974256671673888592087210318624497252458536454177965382702780053355913557049254485539878302920656628809000400379947741167346802741209208779829893786864772982154540048064571240953741068462521789504543952715198783522864966867654053764326351100070001781812162571708846724769305130873299065849147931338697200578079931870673406299028436170861705961427978780082267675497373208541462631682032758624557152562640422176422515979930539821464576276924704367758104600028848436895605112698445955593243114132349111572010312462965261883246764148199215053656674762026143221001631801038030373185401869301055233641618252058688127704544069692085111867659958799180038518589230589678476025412706321703588871165035408309638566739614469580452272240059418336618022362616484332593384108317676940576374323517939801389626538315489711988824326191021278299301471205218030183086392714812658127301530580579856689754303872994426349966106227055881194260200860955819443278594077697767106037644553476414571904815162347326253910394443161303582898205832669585318227927380025781862666225499589103143760771097718733451057746606629544875413366414005468122586273776331395126421552064334954737548923347254291113393096243628049789100521905483687111374929367776531958138729123232664038568887172279639142326937740593120506778044932000005425754039916674787530328473832891189678746344857866211654643152186784557691439979931698244889207443206726714648462452101514892851777064951960906726924683041129822806177164369900576126419130706853277767118146352049864277473450767069377157800735584880775032389063584297313941258009059124146222888320068286217620695065377482942535114832516962771677907480553050848177587951494159905717861001968168981838463806085307158450719590892137653096364903184197844280298759098841437218613164008631731273472127374434336438021112378147485834675882297565582730042301736032641520801703935325619116881838390782993264607696139691619915541633981488916799190546867160361050964801009065811627989455408988792443150512973965097828395837130580818007675089597980256024179236773565881834164434107675302998448994601691423419256137462077969230920277853289820370742039394759144705633996496219641800139772326305397989170258701526745641945732560367663106236218471396510516534873528687339870975283414803611285201560776092444620388444753942845260445760840043960570631917798181922819343003932378566097522470497309304294353923306029910937053827388873927229598994389672785926554969676867741490365026729648017229969318942019824183177134739966973472669492281991342606070627714114783572774502152931865925189419156273120721350417290530426057769895084444388510964819198640637436641504174279079482062611245922361403237049658401272087239282133218568633437899204074665320613342290469642044450545874361958001856123531143532055544877399440983200387842447814695644848305816097828758529512066726165442119119939585538710143850110062060605918790278006740421706949087421841843927280404588472830375091699300416467365349024673355206303327075871181108265354845812365213419422125078804252661853807982575022768244936153377297280755241841347765562080053313748685230130448273765581322824624979322889896784157035425574373378247269644800405890792292127384742864664898958103335780861877549325470765424994823987195774453537057930688787589109558408408271313935639247457540705876753343915919675662204276111966702471223787073520788921843397988978088332530786136562189867837745523347967931564179752197095498390198619410344883103265975137697599236150260003084783113502981893354414830230812247447706408207024777414896261441073078303664854956528481659406616929321838815360221166052113644318499875443899339358259263357280437302376122476751552023418741902994972027974790117677031306663959934928067440149270914785325228490707641722470089386026568433928041220810753783231809941989708236007536374319915511165830169456880844774025111935249994655987715911832892761492265931848696878711218992609391481759739338872587129881751539931453907794143250172856771069405604976198701446005370783743847225394933375245043991301263021510467927957416977370381431537153418893280063930512902154333631485602546559375669415404887514400654374970909971571971527028815547156725198909465042982787151472742947989594808165465129124235568517948178161485498907135742031915928158343340607560123258435661955390732903130195263390860806291916857373369824853525858064683100606867838009602504441508396301158990246546518814088519155473508347466077043036906203602570636906871103101130134632962238550081686705056754225850801584406635437950467163506419689517673768444889330002690555558486403315535029906262015391903668670404040065316625378430778536013162311585849659778052544762883560123899210427199310829033256559374126823925933270466249713149028602857004076059837244446049614165184544322840147693916391285813936208014810758615273892679065529059235993000900739737964242167748814269389288454037714038353232449323571611963267309739586478775804494977264512772564137223505338072952463538056708479198506519754187476458673394730791141108754798851601778581483548008397781611279304327009058404378149068166381502519017058362541899782661310011911806865365788520874755754953030816817382392249563181668072792083846695216299632246758094062369049499184584739575665871153741699408221863377987972440916685723885120452292639741215858434282838817796660776892855986770807319069515240261705011525036863828827442302717595704709140726581540935295672116467655844376628818788838060850589995517855894760626443666366564172685980099412391267425100974513680201909766836953923197197457347178841032602827354218187957876832036827066261578245858437515769425734470878815090811275887738857392002899250693460793382659750304495407192612859127566869216234390677733006852345545882888374478649979324769513459702828305675880140413191927954520494459104311986839643446191501897948413424367335313971105462150341392617304408271555913877268758638659268524855032558336356706985085248918819971932498742012474664526951893939327729159259361184341574044510510865395512070786824889806599266150587458598193860355227013402817383553823037752874143044536970750749891915892197273164994211101829377476472678566771972180227009125412372096819055871144825499504605113047653631398654848310898133998107166911353934656599828832903639553950925908933606922623435958685802023433144481575046248802930643277655144557524072307484961973232340224798200861204050831319809095128835055360949150604159839516649460359573925701976977680742899502784448778956829421061034405975438193666363638674515612018331857347047005895343596400353884578407616689096357664460057101819233588360889153580756077166811104877787665675962548699199565891431368427848859909202085092015936989233961821127579846893464834444748834214606698483843347765342066213425949885998976517079569284712203590422859664186563960372380046536661060753118509222632565443547946133183390034447258898084802614191296444727853222502475881137615109347603562857818440525860974269761890020307255953730887820551863685593639741674499251343688235354922592175078930959897379127468502320415151825716506816228694111940500143312877432593250652800534283076623431652359662491168010440228381246731848820435553303038898215740930838231675699446718610267715835334552145168049188572258279115942782055469774284584491581979419932811753559232098777211399611498553031556605356324775139578189136600509368778875993523998532064716425709726061590619121974953713684673315046899067897171701006712610266948764937020024984233088689735179286007512491747792495502682506182706816438885265619424842987493161602055161445757322106440739820817066187345064332647448887007867116949606171523750152495478604590771529997801313806082824877669706619581247978027330602173931165023830569299132488656698759881109684925437309016305835928437940971751775432991790085839961796808420980627792151620732147205548200674119752062966829749244857351728916672057865821799260811127706407934248810236724596680008184730250662556431011524915038438552116333253426106615994470360900730076034197218478081097113439247002839627228194105350724981724724870029590824651353736625060098291972473665367351003737976627874881315198293069602691539914915435243777562847472890294533750366477172378339060781468979452875157902148046335779588301048597187635555842114967481754719051757489575381976034462786536671116747162455002054336327434432182953115658993828705023699095684497197727146741237729135384359958313432835547036072205470035873908431217427737276135380449659365374204738679122582127766181677122300132996867081129141918736876386233695850555672879395050556028234950056887885735667116451414742806701028142585849003083115129206950178610048129050220120156139737553944945231395208978550319440131821592736037310702808274458876588513770761215937217466040907870151397055084781275613851174909040964531178692001008399602119668402801283301861541994317818953815699081636945133164829069327048382810320267995583360819795593033592975225289844877235088992499091059603495906995467274427132189282399793999157062353135169844744335314496422678264828887049633246496924349652144508118488221159450536252264323423317388818883068155172052502599868272866328347812696704564175867641779588151532078324019546228116943307981298083821983151798011168034644667439798459344485663508127082114961674264375523816786029927604724270772897426216267483364108630118086296014764860605526523819132054941691196790612343539766755076310816290442510858522585936527382427155362389319503962942236113693151516731598779808688491739977269459163663138831430104815028904071253424491372926377734902677878623017766540500761018106993482210113142844988160044774922838774312037786218583515430920091130521022845181805777038698662829536906251088259580265985733126903855394756753086907236489631497245806100546779814872051246526675616115038528598875565461885773821475056808523657210253560573321790460232108240832839681443586693270634926161117315992865554870949547887410341393273215650412632330845209833847431118337232414755740985329041981388854097085384683514721383668445144543876310117465578049446126497389337889062059273616589609232385676830022241159780334742982326074904608363238179715894184961424016886190883785834949540231334417158050028971871784729798885580066902616943611134365151812789663449351705994956803861537839814955506890367494984071888168682969505872180575797783078381883105176865539191880978779803321096810769232752040825568495010744158731464814385913318374916526246388241129721671330518512475110121460313948964005544661398016716016382745291856107194069206085781207015277881796276855091183241818456981623428778018792983013274561574723818066293593033014241086120065955442354755633402753660435721166451890353584427013208051895126694838930950431946139272312158506132655116819111552281501343622940822833675365911482117506139723460711817383389745327148831952969150744666826508363948264937344584502550692264709801964218220420224540273373386003369593000186867222641523431786900955495454534887455302612742826248311851767486307640149585701066407551734467500396651472856917991681350610140757358034112699927675906533019236390289392927388606770733736015444494751534271166708847787096484443035086988124452961874501237001723784245859633025581702830295517658303834720691449017110027705592669055955112085559354146184671281010822284744151659159649756799306025950977180633775614078054540570549980527343861175238015692640287104348947337062750432475180160099567386740637231628845081989442537224746108168154236484039509840906843079321361677434707497023725377520390423649142803271810574249071868488250477015262496431456745664865003464453038941786197419224741182023832185789801497771136815723288689392413503980827527841192860301395038189765734377685089135942318349878552692169107342895101707132807783442473726088310472722952675252726247218679273907277280650371824004994877736888226500316142485696922398662087882916201620459902189475787542555333734382139104965936375310214330206478383051676645396006043775050193274015771766388967723809657175496314921453506369243265697840494762798817367076697346955392819614943243301524566247143135700958000689032202665757775734108816338887517279571018819698677528712283975420044385997840573134020280967419528771478505027415004652439592094286237471649726978048395971651658780828616162806707459467033340700560841199113939622615244850587685582405195295671320617669231972601089311943327016798827358825919876396714585381415180893272313048697080857671854984809595761396213940183026661600924521906107651966124431784552143719668928013220914985219547972767767776612740550830972385285286949493096527203369492367450334834005456386122957742099547734938605398603924892958501729445268149719741013498828890066027903016584383488524873285460441089071853131116339138265520740059020288124567800666884734762121303312497864345569721448845661767142527300291543530867729783749248608483232053377280531009028153938571509642544723151936075967140794765901007804547732869240697793898712723825237333655505748424353305395723670393716676773803062957989599980454763420917787659705235399311315587682343187790266885701551673516736213945205328051395179206801967717494926722252365596898278456275707480810518414451861704733604279737016598343024925106584315730866506499659064851861852532506524593762291136579043483458584343645365802449977397687223518501363464993134840876707901803712292360481589176938163184263776191172681104531116660769420312126836027567141617561306681580734148286968307511178385685562259161173926899280224691215312375090563759540577252276044617247532963889479650985117606062974502633703727761845127881662236214255046254772367241017066642625552303269805380160532622874471108738318591296399158810975808479712324700529272529287493082019841698405677881829895593142400336446204038202018304816548226593635812371107883561954145366996100050038940380613246677063101183753576495948575976066056647892437404330933988939135373007442998602624786532497614493663566664031444912884870573720525840495532547413063926932433291432342009152374743054940175291228192507688890084527982735875466097832802779301781068964206654544514371381039546890983301834819505667894031105247448585376982167191931451954408795058353678219579513312067875703960382027557719651746685589410527558219115507429436203903954492910219289628169628543425780193964690377147177382650202039363999940080195482736978686750388052848734999016445701495341034774390491360285096690494500164724470105985012503418794255531728134711064884748052544386467456567117033753972395467595886118293902099308352436414157781408335362128762932834977954847551491218169474707764317923030546722090109388935944940520626602088076457035863117730431253430909452890394880551573364101179952152160534120372937308843078024497359220548267172745582933462106651047177839319456808701100279282236159977432300876898565879205128798387398185882656251860358721610958925861663495372041768981905392587545927414790710997769956612693005372873217227095784160055064532616671820596050457024029062405317697803383598041299937047065725694912615586907192578076742277235095403481283759407077118051863804906247185033735239726721893157390266838570924029976751068603760417936460897842613996966189736168654960984489471318100110200294174961318527137513908117889924784683941322637121715893696276546027700147773341666155256696715297933014563201672332378659741416510080020985449165816759751624821293516044670729115434004763816282897915778273305828296651416979741143536143675724840612173835385542934849562825266655290332957480399523512228625194888800404208304136758887019975368238958826735072568284368418784173074438497924922487385555777498262244153970743965621429771326274963691500906475844349057819184239301663354702340789231014528427789175652526642833065033658508274458885894013403028882132364826337142765573017498469299460109974402552040714870806067117540885665360359698404636270459945332450301934168930603985643306697928696001305705734088238652299691783817472834959194802726191522528320870697111690164411454110813128033973194422548033627838377543435737233143097194463151557116227203745748515384792609964893289539943766058034955777455576368032292361171425548832357859300709665037757705864110146014780567787302483027854785897487346208235156303510228526782823068972172925075985500436293538527506763349272643133858075017709695044063831669353128880981163031304126608717949114603961553725556192967958131352847390397798392628431560964966190894275050468258114502262600944719394014133679634579857610463915510113603093929052112585106906953644023113798054230176683162926267631316009868022227273474776469972396995095896098765604715323207732511105630460988873645577680817716085365793807975409839810186417970831435034564876735828009532862278903016234678714627191387349467894187303494850103966190289048599776688638568094678213038791426450118243692804462555030634026230717730960746189146315419496425123594964753864401884630256630912836942385864047195540930077681943047837443555555877086289864215119181327079709354999696606049913461773159406414551030996249843774513910688075617643958625979873969391681382215328597627918233696975416792359810164482128922344982314097097785083404420737312073595742475502217472038921392536619859870073175678091827258995748430414366538292294555191255723639495509508133223946372766378499669720067133453235732017534603743711248151539855740680614403009304689345571400017001478445248972179117389369840365493449751494647742979114704979394833203747329191884844713179715535921415168970649507181910583285943860732914273307122303383248965309440765679933849853984185615480027633134619436941351698085462769151203670077860412215757937552415129448821670988420263290574087334739492920149914043085846343233641416226106362276284172968314266225202900623504743437122888559016752090396613694643916673317712050976447455713132572103349274166485278124309485160622657329998851451314661161017530461289011169965151690284352077889336746112332490601910592873822627037493194249294463874527398420942627251673288163278684730478598436943893472821291563152025547704028429274947827917745144235737510217392847440853843474127181016415007226898262027774701389933799907573410714861006054600092457087600864776332608783287339127120573360011739012882475612635704725461256511736385385199289641003119844218532136107873255015161359423453002365724542778264025738140615821087243798073270328967505232897400645240484982470150936967540382091509065863444398940393619753507403443683768558400919434221763705906226917720137544828959140058317283135374958695556309140707742974176499893947066329871165895460112667036151495748874991518779616332231732728560907088479021462883041391350199742860883799335668820680028134619149496452015416341556911513574833226142288825254444883247785088085543384256540389274260029115111479074094306676005513862316419199390756025054102709443235637854587483075267707983200047765782918195644164186961220501893754887903492846028645117936161866418804038127092751407792522601331917024407387358936762493853780413435975429912972876112480488476881886383529873452264335841466165823539651624846764604095163657857580637721818030506865192429299214842746298835626685398296800940121228357960093152109289992580189402904242203860796860987280482140497895524147640371384967581822821103796492117484890323591532887856800277797835841885584914852765608869209691160312099629041874615479599598533694654511680833492842686583783956272835142471996452415618127389536072862478345101970105038266986764288508327542754862539233472977187616358547099139324609524423348898676459221159794353029744365765745067647885255674763714632041613194353278663517263569162264315208613233250262772285607231699608402836074646296632375548316775974476194775723730986021283473987500232142066782667429753363981142114345332446113305120583265988161501842436312536145884929990620471722040429328490394194156032031793814934028493812604743606628169765802363849694127103605073471472303084877169448468649937781100634743518179647124125464305135595218269873493273039414415546722986254458183883700863231461362481300153401551557148628038697585449218153426527211031192529330670372904396787809133322941885434996152168072177866829304381916854330327403416001329950650088945094398084689842933358792197783825897850210422907247046359119905146394489732755061674316477741658518716293402570614993899196521369561181422282604007350257784041030273351972234474969933240239422610342100812738741481111745354319769176971861880984632642424617087089649064535290322104614913516356628606138981317953005012769898786426226516577450864596804096666938030218667608272384795455037385630485824376324078855601727045831125796585428866401554675944338515329655939211115206743442197576508204175090673670607312905945939232814532968907367832812186232791863495303710474075496822674801806027765769006454260736292034900149750737962112081394828010213760607576383477189222555937291785284922748776707708876593171428349037656679577081224693510623205399789274113003816160289077160947388335091046528365349187543886445464766195229946709778537281394051167102927536808500632088696793183893076516860475725942463504493559162177965767696290482736429666292894878430194061454753063859118383513975260512263793466536625528438613631536478784920094932549200067745184407459980574071918385261483112276651935149516581572180033610506622390971126295611033545251881016134268963428712241640023891895708731011251387626001456721266472114085733984259887746985577378076646876189673365398133903505230274707922959575764770530280644660196457866147034813149332347240674135451989291067825009941503849015694139179815497521886499848891959289062888351082899901715910150587741277705108626867784339750215213453117559819818430938748063281111141211989296307862948742309446223712170787195169508046783712133245969726136184160287005695056391729931136579150405784211494251241763295276817617851431867194998062617964153692197749118576934964576904823247272607137327445930111295355382093486639474708242471640247442440191470269125514345358031025458467104708120781743017834097765539077928833981381468695288283085264637007050527343066126206363920889519125877272345121816105866768392488595585947267701978766914064203701600439228335867698990456076254284970600602222288541323822826628411875023208825660324947533175968186248294177041841490788838323198457304128613138761012873060844237090141348002144057615729770030412156183980244640763182326546936466976182007017374992557099747093985631184573110183963505912003054873123314303025127555331414239495272245350888443644094357453450482735296504949819371590820897255300389302201131953809965442276885608794928555481717411087033634665471708055393311066228693628020320965821307419711506505355115830143582644046786970345066069711243849945178324161802500290621513868574184590329788689570604965219216202047927811770481616584650528206757464010117184090572409821730539494339494958769889644363376274202233637769572508015967692458959657955372319665380249155344629596169747881989016969040584250467937154200464006312311071425018725174059626430545685439137289289531408498534447823308955609138690675472451162496729004842043295836883468659019706861179715515293866439463814401653727246397727878084747221292804854125257105671366187952082924936592728118944629887361222698693673879903125691874577017947461874735489069974091333097314338352858686133011009108677275356280188424523716294351524074455626565097183657818800171940147334699367679752724059571326593397828757857803475547863564856625964674048465650206955741308291216849631233806072082466558349995916969399967214011294668331092093848358030842586242098553081190650654911504996523917903442948627347885697051892353699415559595870489566764256319169011786900337561183602840599038090817641372185822915683856932638601610942383756047251974064030839454642170769627813157880627161160716640621559970257656319966403654596314663619971957729912048586018886676417984860109590182263085532797833805627497428656051430279090455327006475277446924007709437827145087279676748476078072332320928944878155285258998141785273718626252712176157420646511235622125880363347690130418599674784431809029069426521647612559163664251620649818055312077442482639668563023145565671752122862463062948776968884578141189238638367680834083908201819581596240633225290680231413972979542463347533331299803970496620964285074982350268324979025028594739518726586076282245527233508505354641071258390370984030549351893234589800536455472881474121986217511904060302128829494884552322197769740424359091414639808990977315332143164557860662166936554597516994367836973186263944943149535048381221889658049625791682487233989066495795096501139932650162905419332132055202020141224739802035813590270212959008278276818248641452924390034832056029938539623368244012768997068072866988750707380285924824319968265205659274545177510546679955930015883022671897609583085791826998108501217985115298818783311503700015557788263487032529741388465513549009661937695468889972840113179907555675827183304416208397300840385985718583298145281546078154435312163146033049653143140232824888282628588365960597529219365534919183892903224005747736889216887441110327357051570107011553953527249656070427326974558260683444723864533111923876472122374025130314387724144150523479560283752084758265134608106297459535306559804701775989459723508288206889117487539860234852296085608237460163062664839162283892543810896280429409485764270502607243602724146897537341794176785609225626043607867173983079145185621840672064790053801688799526317158647507124839880271384233802138017619073176142558724646345070583949297478578217592650878807270459813499757026985834799160005868804618454687180118056008159606446906057500151980326694846364998931255022383098961531968220840276680781523152725040337998155032058852025082567921279706716610813994270028674048800953957705739034858290392518979716992543938073630352280967025693946869241952514930943602125280588021764379136356712798594883834742540127923686261752171840275302910004140734780094189495085524130066542645021024614885880577046039899197741562012927371114513871753667370466858624150037538114334832041701549641936480567219495379896468916824405878529729642811892394216663661785086662768116884999299270423329774747668922915271127867185238880230308608867373586579896492966962614086556670555428986285374482771602654071926732926748176723843357992436809857627498020651216173108032411798259175013447369918039112867677814307643915977538088069171435950061411215391062388473028878107239705156418671830312778748205923673829330402043980380545025189263763154833040301570376782627261470387310931206149383599068722101996637751945067998134332770876535132456286031507639996298078257726425239859792024241961907312556652815742713747270055713214985935756248093719716944639028677413450482638918820614437509419537532686880808345918683413359033714126477297412934895306976992049331405703984112668746650380901778441176154355272205817308252361166540642295290977556426224846806830296771563441299748541167006839350047704446759962567686356181503251670930919521952735259740655589019590549081993271666491556728206152487640674177345197019562775092639754564967216303796787178758713648120862620608015700796201171233777065473101980609514781561288761605377692339858855355970510261762487606505190407701390868935796264589926272715557257303018879400335445908271474775584392851986753197473168210889750579899978711207222197539252338848505008073365588760208952329244455043824260449887491690708064455348670953977975882858617978628496769143188549468129920512277834525507221530376823805621250571029003831093031765108804770319757652054006629135481951551423254428027894384779558622687078146871048939576209766546930457654764659855673635567000983057221924719039490883153109946620857909954697758879942979325073703522735070119506905793177948382557359745877264945343029552128719150511100405703823675242268553168151831910380689450044672835433230697108279839273655527772324820675534043556907410869199407702111139392955671935837362629531334842116843452380059968979636184880801482323287388769515528498048893495105346017869520525364447249281687170180118133777384886605847582101783687093302048563584571511360439648496433391830159443454194678026188815586915459355362463267758989196432208383033159087532380366257527356357528339767918268379260793140273472446763475425288933920275704489573771066131262911090148011602553300674883960598483242430625519463937868462643419958082228493987623758453443740300664116807505447179832344923876675674165665372902999397024010612473433401579147032035422222653436112469123716189172350413154668386522819060659231829011714530779003803310870187774103691811573591344878667747411443002373492963930460138055309492189344894219157984232454678221915883166300510233831626632917330096664621457313872511922764785420571622408037204073273900361764088928150205252245073188952367462571030631826873559578249053513338435261840368328674216346062524327848596504807914032939624243405022461290229491485564530496266138779441386861677487030225943115135983298403039921887345594581341449706706363503107434023226183066518558778879928251022603598937629154205372849190118139671179265980802053969404591576531156355479516793228662580378781176784281515506070949636549833365272265980136562037324694707796287538952312026706136850255440102328100187370438746018701438155395591469729844320568482570169327878835072712170725031161546851809849914550629517453730086857407445199171472112202230275764212298028755249086757467063924538617918487881834213979914430480711342926522681843062621975105393063923772877943173725876178535696831039986593900646837877795081071518510570844378686626604717338227712799214809591342722930829252155612346553821732912212203128998388564582448935210313036826542358159011515847012104983112638989026512598586221431718424349039717670626173799780227221931890639360519135041494540097545104465407608228916994164343216114462299228915115755128629059904603113889521279756707119291009588552962485934404419328458239114710327306843552244888959376263484952793425519042668258192776266602049427009837046102245722434808159034062966259766233883460548566724203977716269694944391585054804945271310963269022289849307936986767459639981621234608049368500935235289867498098666524392855886836660934484385061657946940056780660033733537146510054172744695408550041563922459599176002461952643789799097595950174156672555510966561692725351986273053339198814596823556443295444168615732111290623946481560609215670865872999558099855297247492723710596358753452560554708666121131737783075594556434107700146788416683843223221541586946990027118718900820656337186941299464183812611871349627668117748409935766372134151920939336851191842846924856841271244880207472774104768648914948932540526137228576358430992027980921365096591691737308424965693298428199499654996163745420983942788619046199467108533633886794404936641671649014976805507957856085542744728474200810238013113071735708975678026882226615752384492792588962964210511859621038350852768770696276127046993861511921816408531371611473384597706935760074550173586294466400312031202285359503955977171335966180588772085468254807328874734489968823608987489335204054092544413568831927578644690428180230982343487129446740135479627551323159626174078307617904154927519151745130128566827853947322916516534292075007224877451713974037684787916913828970931739107483763844540097546793164631676861956067254514714934811596426444548988033148210482804631100013625420586945117234202749567443301716953806838420036739600685070017482225719905653642288784036245452192166355385991963316017251164364411469514435550418493186635716973841332655913229026816416910677311663328020589835816427032136829192005655677479263633918931423830287132508994011516177744802530060445700456332521095888771087493688444343790218718974057260725690469442282180802566957497014246018945343915459216051485823393284411500507391706432352763840990934186578300002467050902245581330492416598903768616330839623150483035823941059605497062900441839143169655267158197006321418296427036278456661444596922442720066296138460407634769776465600021380794356338696177305549986239303872313714363840180784477080570414344909332546112765910781297829249173518107243484421838134684226401330403077662930895726491473817995253060428943515881948036580313501246281004118786279626189680339751632320411929811073098842853794858628534716815792931758494517297454519144545679237852166259162531944002059247398377698072144831009340284957517654233887902938253561120683163083551324839164035760600153847953746762212667166773987099017784515043146416021209214576074969460157682246390454938993106812054317471465705833057887076320895154905032833861934611220668900608816170442006367411230746780855472240659590596181537192108954435957128537686470625413676647071935987642588889599914947891750177996359145666504087833444850601230771085365650765432319394106695092084127811673635162069007706506851933312476484139962481876438935477025772962290849919718151916162986142274978472426297641196749342941350694824877499200517848915821503985846353843909833827763970283427228142777862280852753256949887082676658385293334943124323140142830644622336337820978291959677374677154248433782217736597729645731196577540982421931188202721857635866779771950195749468205395373009485159111189802163564593196763950794943254260521700972847703170560754663788966781830596511752562742694069792493542773074407932994304473775244212783254700016156720582419996787933030200910396583002255252382282378713192949242887553236751114418827449511833207554705460457351061840474447166805166154025273016130957050522787558218168375460014124972512684090639277085232096792157131789023990082028572635841513853711950863334503400464578875250198378116199526186882367595776927159488109488086956875508368630645785818229859342260290237198834823181902157409633481588734274420756429690309177923542143109555982695323472311498587420930290337612682815341409525073478821570773593479894675660108660991235241723614080547107581233094756572262564066691990731987950111811435427713274415508547686529007513417901066973104658031683091538040724629138653357534969150184496677577218280413071149578123010728327653221219233659408253572979644566300849463135403419006984889874913911521021168748663663578138798366010966908514185405454701784149774227818449584201618076582816025628224916922397637477068082819323929062562415142126429944669646707025895180495044858712609624888008173367841119210735144854742879482483735763512245568220604412557992615886838233853333678459191362309604447487717247973818875321698585998273342124651097652225941318488271994973645062636810678623098745717727646259319474042972211920849505297261005234917255918895890262210972369387053348216787190647551679204405379403664255491539031230660406049156477682659377024054607199545066144172234977357160566263315288299864117260463071209522964134592757975485084788269061954267742229168862732103733140356087513130695730504390441050553098384729044712635467200783454902357482070571379958709514372359301943355753920785328420322176445627981217035637511096911588750188366402646434269663715795376268217914793856113143780369489523747453604331346743383230747870420473931964321674694142178707134270851975794009458554196463783630546691239220650294963765218147695008137157538616260326664129339960546005893410379469589209532151030621990302505965364312312592788622508334596557948783917697754323435418321332293385762554500707587525160755377430500768268262698751038901583613984879330203338050709391333684398091827542779129656210520051402033869830227121693367041070434287043874085759561826823641928420556737655533858909655325694045219008527314205428311522953789622686434063350152094819451962517308421555179000138632419741640968822684945386650830167817131680169602828354388385290995144897073470482049486992587331075253474060572901925110010972407977480066532401645563438574647756830953979306948471347863535215421590138699422499401012033117337378606160332211028035331108217135400058431322849594133458474193305977266492347092932640533655060964090500943716049815149577192676896447833729561300025914361141692542092633295505445983169642523339303585380349067992352796565352802852647578804896419600042274972934005379208460778123760876392057897056248347772589253923949842100291557315005349155103556982299537525906572722943344893463941105521721743873156936631131519085495915828954082863328650892713449839028245992388284861110655663647851661111233734611947209754665692318502166743655384354067609997327068033798873816041154350475993395775864753886810647474967427978107315471778780054765542033077393100238269414224258364141292630028595906961990633277618480147941721244833061472702607979938565841867877496763051900217996030100115224724662206528025654833552802931797224057612253672246486792575837082780983442203753853897334689027756614225290447061158395319108804395412066815426627571242674162671567016997210460024762709772128412076403967877769720597263245026461254151326674871800643062622845986286253984363946603708243578018538168488103222055701360571956552091580089647591013395510311515474905178093372459511643337701142076246078288935052054302110704532582408181254588331443718349753004843695327589769243601718687233157803965479269148811537267638650665008640511888526940477347230302896442104276121403123028813065664060042667650069024478458864799065148395824333587439125902548080800072592207628730342840358813896229615486642378291623201277703684833080970616625792394496196149143475550006998601393213476087754938181373472549686953041726923685555644909557614425589051028271709660805635765469598509845814836738921084233615092954364591309393830322789136712985406629061534105506744421534268681514372196750458074339531678853810173334167177540833051674584582362047537308352215091023322861906724399023420647560644805445121339482041787423868190607432736372295329011891460399083855781319911429550991498542510143503933018505715811185604254129480521444001238712320714678723897977480544981551906556153634561465675001213733844402452361624659677685951652970703911507651009577692801502265449942304533494042904424098517543219555360311375274272740146713998934176884583327086518506615068166051390429670043183171229795671651979689135214978196226858328598416605653822313837154014205648124990298129188194667201992098384429651713633838087288682542244225996787252267333931196066698291160732795260763939407640492115792694476260189919866729718671269517734945653968486750581099392137432142143431124901299768114660309375243663222568195791723736295235992010814077616322098012968385072299488827968757807533597201035184790003835689863018648953103127639258996023561588105734655153440991093437612299893440799800940127492251781445042202040333130968350624410848728386434410813983048558859640672683008233697227608461358673786874825288525729953790225786451144790917815135684643741456194826633005776947579585531492731976461998098934229163978706304200086428534890391998219222576509880756223490322130075114174182397742041746180600683488145283850583590249575090079640216331733171502697368386586517474323432892382276836808519699912784259139380423999596059857178385055056616288453362307108976620974423346613719931016562806446643808493705464541652823721634797194309391470518994833302305087205904070709731837238542900014949833047825409501932653342783431827599188086335846840279786178508703238563997732463506934606527870913431937975753793880625522931814592912142479893440733887558993104224867164190273890614681149576530153579967210565512242989075400438716486331138489390508678906880687866377802626796131553735617150874212646530825969939084048145497256051204840734777242952011983154421973805094721925896049278983871985838121630249633159984118291571188512244888195334443825631190527759821207176886518108811958391891242368141867749472121347557648083975320082502017501644529062198648138584500764258783644183910636883000169995077012975707816307251000446051432639255031037239126744492937091496890273178450340512152603405353622588346188731761659271261002881875564578603164688096910836889215853059574318284988547379249970148139218283541378358960470244304834163436652496351157204515826060374802101252440185360249714038935434112191696706585259027108276908425359190258733534111539251386827863248012410980429186739544426414869756507461465335762258662728552443796663895634660143352984621661796721858323748296892611028486425940316967969183240352340020309512305515227927911270671212710691698910920351466354631488744641890764147212484061533141501118596593354854314246188884578853111608397913173851141273588605129330650866335250653507985646468546036924135938664507197723143698047735623743069046850887421405563512869881951844089074029333573552031767823697545355747867818859495821383662961949940507714483968412580922065586136584433200922423715686367911625471152846379322138900560698542106270601648959978145127189110029364568999991302062598667273125626463695248639915273255858643681756011829991356428745140781461668470851572398711013537881195158625272675609381144149412792947473363452429673435094949861257463534447180825216819666381291003460901307617083480531120203989642141459934742833161263435070381812548175169748892255388468233555131843846202489212402802724280322375960166752782818496933883507644148991151029177278558446508293172673524809092377403474884074599891372311692208656642231826166582943254300212517793922212945511502091255362633284170514224417260063463817456897756771648430895802451729012115414799578795660869436489593562986307291275851059535961508245724431138540414888382448643080453453848679556626115178347315317002079569751677951079117677580104851304722542452403428273879612506737791638185204168299446434038022582439519433543827292682318854704489956004491408676407972946781793431263041111441833399860873304423492787748710259090335978541184259648207695990322067012266235851104344144797302369873307924131600469803553143234070260799269874532888682500880241493176984958968179763442735815479706089250350498137728157344701397235565759063719812245588917694957254762568017096594237645219791166810743059316563145110575132050572392108024191337655584237245726980724755682289590335139399569143562123060469941716854662761204266423859719683023162198628660007663773767140846711179932104623154155914502085277783618521895429834928379557894974663081103029347594312356566836308072184919375652376018646928357688006441762175919260238649644673527693185043904932808908658087710112667894751250668516501742223450343762095887728423463946675989236523048951701266326097114215118152656232579146458508034581651180962290939358527331218101814125557415961611048374159428408149357911502521146067524007327701137592265464822456509139736598680420280029024072614329742442958634078673759892895787555582313896923999111821248427293993542073386461032890783263529966221099640914039836959869272669687860448740519590370145999905501807137924461081216326415936138325084751085026154076237347957562327134074592945983742333621100514217918167399848109445673448278586532381780101425128013499389836222566145348729041352209776272888051840259699242716001085117654732759342204279044236051864213594410514453486657774047351616094287651490484458242469026468755917463647217808356598606462089149298553347838791487498471631569913303525617595685777852204056664174022951681830657350910370173672137912364463988065986972612151964727749290443746511385161449250030769450250063537480792602416140195159168804602430961019536229172211377208311559342462650123193545420855370300138044015508704406302744096570263115446475443688954633331623219567484470542790850220788395068265136518238693182416310465251110283404440390991862738413292557870936677003862867985902029416690008197338666539797847259089084602561507172094248996758693633673349770072831557494160693890316119445511106406038065353314504806720343526090097156913612095025421044232691172796945999279687103445538947987279667713457724890290370861944491263055037414070598351149541748021065165867976002725895272449009657082076500169487169077713736468229027326140908035575159161739765843203669050433967643327746002285756625231486122669427817653853867442810385805209156516825182956367104405426190598864226049095167987618236977021586657757267112472601375492360092517105351237998227199132840426764350021065381389986178195959920950398983251056879369390418054879759971840236926068222566927807660730411904580542084500925754045082479281212832281764980661822605860792178944920899048563098085541645991979104371000334924735904818465175459721327883024671548067124661802622155977332599948793798441522341915529530893949474378533662041283536574043058564167394658478826816850363527230926103464017353671600045491904021281145068704084920960933760275017302433628805950350133112207484486147802861108222334380880960121166178322019695330286477273560298340431526121687229002971802999945553759469845700968894581922963358783849528047575674196482370650859844891113370005784729222251644676968934893042796454592089245604032514965083106097226071273888044590323210609819615815656136769212478886779471345667989871643188563332217460613551665527362546723888882595673572867460869469614894442280944783813250174986466894527448970151934907483343333684967602179831547194220682592178963186771157845711049722522573937301524587175356142217619855374805920542303799392021022289367801936792078588476129546705693484871989727862075187629232657504055604374593782594358316615344793719947207462999989490496397119324318793418486523516130084551115501578218586988368669334524425077043628430448218808329959627785207908467659007271408991244164511389686698632275167545879230603925164374623816364687409638735610923549123945523565996466143010588681000650382374013938018991669883642053124246518376661508917475530486123609057481692356214524910620303308533298251231742497647382131681938519476112907256915463883271975548092650351147886363824283572009354989100358481627948316926800930418270440080376608451043378832171589441253293526251190560065019044626626142569886297841401072376160248237185339916773192862304117626589563948926824669388749805602565415904459893547639805337000818073838066317812557013537305157359777352590653057283093474051717776174928138087736662403267550033035688497597119531788793919723916442824525362122182150589103116208044867195701685324323665039555133563523869510034437052186637698146017475679216758831484733789138104725039948666109497819511072586834964903834406373203255750354371751471025389557101710967875339718872172578749176870768432494047889545095419819693484210348630957093628496176282492710160366532790043218451350915404086808550696573864406157692217915119220219850199575996584567886586516900939529580263838750203621326412964608986656504346926571085221275112288018728077287276509439281358911471307636359638348822330448937445971406759158302899971689853756033522627820471285208047239240735464106026672272146946606042449040201468627891738200425914224937684138074196891467685610789732604745582127414347247545133982185276813482051699837649084043254881087885634241967981324612728299399426864401287584908964490263355837893639698015611664973938781027333327446291941699449117485554636649314955224524836797859988747078020775233210461296221807156643225776935652756891143606843598742984401512744164197812825520350444963693640423108123555046145393917123935834062353164971497343613102837854029647490537325784489366303305740927844581187388114557910143462154904509379346558236127162921078121222765542643129476964726819481294054087019787070853795329639765373196082116609060133023246896660753263358869476630527254005651251060979567423203954260426546960307283558021541002567532688068572255771143078734547761769176555435997579624671071322440188288302092089113151222749972781272849361036280536515005642742398456705306006993776880648442571175897783531661206495384418053202747404602516619532390541371785950197752109096575320033801783919442594983645921235683473201736339834990943565664763836671454505919092703221333483357518325692540056601883776760480760689364533453467516607812022194290577861263660680664386806726022096549143451722735729495135928400141981257148365382347041100712932352406748792784953766722094189825001165862253442460428431935933268783631752985495955834687174735342618339189936811624319537871849449345557842155419910557547080356633145851083700439914596107770470384821829684704700984775619626490359537289653927156440081846902589790026345335182237763764645517488407763163225826674014225032619900131377733595662882228844464594687438242541981684529377067238084998006438587490614260904451772236829258846384790312525039028513322607130899794705888188912667712924549248217904669463663990932830393980044358795270403649493990375647677700662323250667662039532355128294279179801687842173453471206964594561579367934793661844351432395663768953526021493521421360434972361789286916569528518969962746470027886668850606492415962070841130879926802992320644410868970574375165017043600097860747182435804300073173569179533088812641046079173662898723557175413626310057272843892199942613950257300426084926768753408817324398430430309800018842053302761179297465058115338520550424472960140201310710898200662346447120654442727894068393295576439081898988589143652909874795948286129026611533483553446340277910559718363463429511486059325451573777529417649098111027452162791272393099178112367900632586862444140833971103004993409599790742864354930589326924900425428218614104180425524928623371808265734388320479987593698478281571608830394382991548704797563473051717623039402894999902600045999355937099296634664653175348833800280744780914232795594383921182266934178186999043777358126607791157138725230564810570147523824101812161203973018385537223956659324280552889812996386038322603368326364037941168066579949713872732639847552394655099171919691219052254621112852490008332642450914111371289667116336324042139077305080806590066229125198692755927105769510169428754107097160782884898623087702892007818986381126320851006437471131908869684649444060884673241260923271179862421706530181876997606561413923719307755463162216712973773062731382376817067887640210778062734169484111129527889066049706205087856741477985262090192946262508585114395178337911866756074926646986113505157119157177966308323272024696315671949576453653968333298734467861885331037131384225578378458819901941158441732069744960079961067993013945541902282731150967455837749180127725275990130124316618592865231467896509445516334113148925917568537488088904787050461876119194116069677379814762516503037798072892099277405236339048655322391361279002513938194204816487042713269920825284662550799969170656316548621668695999993118886848393645022667603169286670009193755586433677891652360824634950231373056146251160138994713428145459392060508206648793974374738239800428497039021973851436321624865686232680076560052215250179566122833050616608356911465145228965784919631961610309723331546596877454543889624340864953741893538449154303132153013917902298545164299490518054881298030646559662336841003286799359027593672996066160886971491166383535746443405948078702488617208303973832428568555322074152772151501709643358903945246643565334491804981010676101685059841164882679805109484257915401911408573352700144863227932211818862920985146320318213201449263193109735055339934870931766527546888855854434114350461199291268176240580005483642030868328536726587489058758815104447528877541124902185773595675576224194103558653077391457168413665719268990669584547868579422064613226978650594931494401861713454514241293285073032049087487449709968359182143372678026798954880677855275849338677690450000686867908820601928966791762410818461193922908525279356794932821837624952777414643943897476482601100787179160561750809316738784202847749445054564553893280417867371582005960652523173022590563921079796847540130907414497949415280090164320781915244456775620592403502038505987855666343076465783550797151286346532292501491423328728624548229421874852947103018453580616096019215448389509385318214687858040971342130569511681701309889123465058904021845534195670451813761282054560706949286596756044433875797659310322307993987263870560466380852153567360766240667697951025964151162016518108805195494121048312843793619336847578599931461094977896304890795640392311295981639995368069786434864981557995124504253589848876174282745778215076949613066393155989820552573690183685313621291883566132241734717408862683158812479158327063610279906144153407268484159236268777153015042692066764341620290021208170745363745794553377240567489645977872719862870196799806773415645095120651944942032612293605007241932751390390233565445595144092205503479511394265167381538388990692692860711009965834220802388303027993879825780280501282012577135252108052474148846591580551232862154616601695555912566486998170427519881379736198790664500097310732712880120619600495126873890276757880970480607138187218022491881068920476590860810553271654311477507894712029759281051302759630854764919093632999431483140618444494311268453778768431667205036944635744821039244619140600604798658899659502084454568647764073322072665439044446543594140964029492187360293285951759378231651353673840878285245000499660311233353502011884622235310382098876839383513564112504681107756972731808504888627903578026044472164457415762461055282899236600857707252817626265422530041095713691405030701403312985652712346838527950672620582189680261738487721807589887507593489769162230226719420583194324227665953312303497699915456020706383072540825658478840822684372653586579247142909409631158078817064810457246470618244781414644122010396765514052631027115346906177199046871564407271293013992485707464727873015008229195621017181075245354301522511884224937312988255458846811558579235251112965925880972008231733548283664726828171689547336643176100662318912098137867121654936417182683883233366733217201945581758337555448327265268577162626238848150998085122361781666193668973275701907693303491832855839938842540072917744076385701320197639896338293231954587084393927749483861943942029211758032537103699908291701810847230845896685051122537985589149131578113760524444445359902555020512222961244490652626494178703333752475143261202270779414953889075439673473863391794384553040000776544339521585273486867567904875561521390887052332476840365266310523912943456293912599185454772502258067734729698795522450729574773626837745062513147818293899819863631490550919766466415112456012253550223402942152189298404728903958802143305124781679673507568058458989114216949740691067132645167039277556546417462177461493668275844262164232512911193465687574753599814403879936774156233374386278861353882501051946329654500979262238985719768061838416060466531678884707451135515190505488391460323182601503191959444780405021585933564111156961922639425352602302838118849982856418168844045675105182267362735703661442870316064072520654762292544663914950143273207022390425153222490601546235458962677507691844620439530941070837499427096092754905558117764680069821371811263377478473010275653195854266393850115756505488980230982216609240231686739894920012996845405390169028931148724328634386452212751535415705275727336496434732262379848242424415805322293824010383860732085692437403786855329878501289698023588091887971614181270715643842443031604751199247768329270905803451971137493445284456502260967942447281223951603075571125057026807310695832379841411422948274544041869281936779395030304389893430646987831288023315421536109685508555114495100296700623455921437753861364289815002000130073210564273269304272982537488410582674341106194510161161815422840459533550877662606556551201095394986258153078468386358945624340071719769927851919326770539318106391259968873892808780884922151440582993853636037554926329034049916447205736291795019419018365795134937361726353210807042807347277770963906889274589501305537960565978731369715946700759530507210841395272965298712095839537002874697044252609863680601860190989240940082145891934139632364138348296687544721520405186675983620750877064803671702625447749013511511872888909664297711216984448816424789857960181924239839800576054805718102698100098495771428114534434894445332256055268619757802132549567923549733038431222485461693020391027456907182894547469309676015763685752617566496163988798254293674392959039016389736410631693445009432616084056196771555514263230210557330870062587678006994006865810257508033511884195704560280245713386876216320405914469090160427131117651886721063083854857526077060409418308751827400998126439775482198331950473286612988707303579561201576814400557980958658118143239820351437984128542586553890268093699479973047510703563093659604365999225835587321443409580620473565013219421003818129787185912179028557715923439997599982745998776006203918721175053655882168968069370284008590736946862472855271315264212731099854048917996115961415467625240476963471068026186309024664638375434409029551918384473543684662596762043108809535187784817249957152608312376530163938444234029221176169595070462603521917377544592395467117381924239230748548361627127187659908051959795556378895049593473058095438639276296672634963811828294614034558282590248920489034398421994812530205160189399091714088997013868462402841640398790627605787963069978742977603338275565107169800683791763724504899309066344736931831964168196848295498729469473108138533156047998958162662905824642231070366103332629177884122582498875997594664949177821686858439559385032163602377639180582253898278772166009122953168863104298751958194675222404568266455985819229330813551993748252017274654028570952100884382108300346862661475399951855763988459077803844573180521877699930341411475153426737606247642325015253901332096255927029353975429109352371738200876724609552954923042769770167015793103806068839907673185968059767938577184860866395240004799702751041573700148729303071889891572845858215675528041742864772978295150143083395346977157740503469475889381710157605016055622727796088647737318963720625495892581860793342274624919514679041008818101771662224061316876954924469744254570459458011317125959821263291185271784618377878339613159207176780306395651812199669677100326471605195246063077277142680284949262992387733052572726592966581323414832728738067700698360295672432016224015261042647897441198526590119588152145865083641828815160205681463189579989627443909193543109179579079300858976786722980910210378748084251911147640150088485016984520471342167095463219362868700065467691644145445064710661397572894032298949737809429467684108170958077209588101751737278040316449183141382970295379760667201451597523859301320151009427386820420844505488224686324471200432337289844940872878263411988758640229419790394870445507839709315365947308386603107083181892018704623993197150685487413538607210587219953851935258118186847622482701488993201600748877580241376827943656537045451759175750209984931192241022009444016106386415175660662821909389591232514316341094961944754415281965865778045573704240285717525751805320834800717310618798940593619549126560928104374609330836469158977445791616870451025342972844717855884773797404167326933387571769500559495492814726635153645692635961235399245994254144756272281059690086552139812331435662521294502015523998108435588253135136946180327948712516841141499485596304106601204902266789736875701668144250750888918425833142291493664584465242231301397455606725633677963278409553894769273022058038933573300022623949484194765788126031103992771931463709400180756268204811239239942711551731827966102289139757028370427795706021082255475582038697077259268388414471763368841529921694452621924942828824527800095994098488417713041364316535314862824972645673607835233937100141660557873073190936333109918881379171960652082146991866742600042627992014829043256810066431722409383166035108799337291691637470997290889018274418430731855018524446862567144732474255444062810345184346920193880001347769841304184820651089981735257140909388364239059274095722697937733570675504384434844924807230915585751943988778894271856717947624338533576179757543258567516677363849390719755893140833119380278233262201968292420480042871733183919973537875944167030735603295963790708815137218573604482752791153756006705218220786288248123881724216099548798383812579172123557784553734144398355923512641423167627093984031282627746318023085605370488962427456301369482306957314622542670642029474999867321686118675789543183632113524797611046836571234356844118307539110568972084962316421707154659710278683249119277571667526556327079561861648595882577111339577657134628038548727056415922483486661802432101568343539673612411713598965044860371628198273267197524540555753427026616845146690789370048610107486084457398557974312552913617801943796760626879049649816482584528072237963469559724138605155855118429504602796565506229449430309976243600019037873213247890522042475376836828591885182051150900422589339067248366479768114688105891653179775657815535688699984505423743526248307581296636588992060920473445575435263847610278525366144599739030174399126449729868023225326982949507838510703359789254400004661357769690792748169463167349335703659487916954266765912137223040509016720197804075840062571246458032945260489507070429889798438621489862654969487504888757862629127376908717203553616370962112448334809927563261308395621342585405819266569286243558148086045638346589898515305222367905507784383131929471918610723915741296789516978251253666904103910009439394489246390662398151356235364518391769560105769154372037041024449119397969814981072118205557170187729229279943516920965640443054129995803885791512195223217648492042940111928029187105956594254812124108619982605837149737450832442632242857399351420736177479399303625353807503897031892394279484157571036949950129264552827895592216209387118170008480069917029548450766642710475542164523639681933563481190014281286812264990125229596855481479625466194107127711126894038821038898072300651988100635966234606023669405083576634113120734401798434259157358064213505938268103742198757175439422741857630756648751924365476282770621443931530127997494928715969277553624588476789051209104655079737363524170270153009742564080001940070156175886141125872069570614359969504430174804529195698097524404774189314202049746263224725981699798618507346776598064063663805385961131733561018568802911479182292251899393645943736027308828852477709460004677610063494535362922807636324769595183961583750633798620319520543921065693416070014205109500459458467331410408195726521193493696992238785745628302490079105243989912241524816366537808105821914050308314642607521018113313969082743328528546877487281069469027472394424701495594642292225198960970400823908001617066490239938866530998881917221311849378261033550737823769904680911672239762341208546295588770202715849700127729342255171056682182432607400530286189417196397520808857975160959658504588825994383233666307445534261070608171785333897852447047639788928309009603592023162695954372805979102282363616130555762972845485097428784720366933998405828554482513842118019090534751294926473886023655770335490690425854050778041854907354064254681357486144439210599706619539113720857266679540390589562903430338896680700810207095051918147141622561958498795194182751125915750416660460924474395798400501928929746703003640272880961920796206826334890940374826867730330761647654006619599311051771657765023703585364602123664158902127300581742222090029000183013723134414877291626306881135534891245062663159673520106775521144165408400228955410246332026747715119811762354037840451861361843381784102395460321128031026480393654310821958710616438234699222803905434085776985095991742274868956555317864295785300047797597245921697669380446090100323915579626559574403750045899211386636686106346341340312195572011971265742679488448706185006910499559986771389379885434315587133815134031042560587118265887995840982194398669914797835549675341898152499968964496434704478458766096787229587646704395143773832992594650912336346555470980833281783448439754037698569934282107964798028447752736573883849296268165394862120950998749305648955773458989036997148032514416336117168377649178342544103873049224994962787959123213032702764509342453185779252140754033979079506149643300690335282081679473671375464884507031770286215198862106360250601146857726549841010748450976390460394985660173267427945204993007938522142371522781292714958960823260937127146471235670951475495407142629419900351621494741769825517723761122678992125730596171295538486092051872560677294722942717967447414308117675713043637474021847318340698948509287532769796564919717334942962030510252083095125614844470117138180719733301799296052043947021734937700347231547778295229240291614861362020291870448257731102347091131263469485642180218737906136665126919349439670966619603193930101877279979516763516645541058032336844993720730232094405663735932675523111928146153636208495144966284927947033600350704910859769577486284825627747583656939004956134735145764155772207779807014465998073856113575080854240193355034419587115480223325053398219751500653074237018764961721089594606085244059073157208184076791947864402573703866644973785668037546249778428412003401584644306609806996424694803355230423589328767340326245876116809420434065090817586747138707247909099355472221329032069462516193095302826412004882480625109589064959757014978181457131993019861252927573177105350040893303668450007277593903526154684625919865804133790378669579104037370622961306316003072570105215065330009605817739954874683568556935638049937128904065177316428038283882229503448504145243147619629749702625165395451195985871862256146785143938915540700685966399478673839835371231380864007308587460186354789906460230126268588856866926373832331720235970439373450935165214480080554888333815856135928582575468720521280016117609272807556244790821581726203160166740971186027248017930867270404036504548767505050836651604701791681603513419325615764800664807916130341774826557467376839813575035700942064289890873227000457487210824892751288420424935954728755696443594708842014374311771211617637630585020120353786633528618823663096471592881232589623414168420867042283966864814542931106944055620722193212787691542427688423488605019601276377806535158813408017010704961680613946816184300533951887846603624151788666672848652628986559160732461739319834908911493756526771797493024917522508917590923534559303277289325860071709796491243098991588710369944926895758390970913759418242008694671493436169405012167614325830161866663972266326163749250664315986087595809105774715714170160967656569362078981051970692374405764514211600276017326546639801601849484206868745888677677171507832983179126873209500420376128799732312761806521063788152562582242732074510791312178378636464678358271520599256242603167159742776711679087648332534147542211635533097211655715312114264305491430543961091157822773300245609691154490531031654555724799075676132747061301224209524308232116590233319894801126355026638094325140634081090416149792648340841655451400577472048134184894060556176546044347458512415308342686292393824425378533394179814969962276927021876801799155061675351442648519925352035490438106335912710576238866561782180634608643061209374301122716211164465337521401204613219298278100927434570754633780245809707152499927439589625555542643549308400420817410394828638615486753065585751118648530781615973226396755087513989441918910460709928021242957277400953440928451758787323237431036503329571198630711629460064627868287101495226832792138279610416151156458846309842674238675532352611222462257716529110035353383104837655455386161411548508432622799175923109227122279768880095656752836990692521619128499990662696049903225454590643310434283782646064191963337640169059168789004444764846899276108320100403577185480793238697833229423821896355794122421802257072721557967438828302460185238739772245047396274020158873733268515668750956729233794518757928130723717227764768263698331616440116129576038855862915062176440498960944345376965748777713058046409511491329155364824640821358044964584524670586094259338755481634502207222452310334278979175280736595699783167083808938117145775718463807602445331670133920333731810521505557693934951166505556942328510117936030341429029287475427839726121095641700465799096876612414247351661183498050656055130245939231269599332487441677923010342347290309941542641818881310804671871160550257450423482594255451522483771962009012189091840228771383667347618878774625460046731020699011241396427916968997437068834654419877830809912959588571133128542167897967500143404501694186445537713420416784616545103315290437295929057969779269146186530415591790378413058888235476241327094458368393151937567386633991815930162326721845027479945067356543743524861208835609779264283675454499075740523520308995288790471455020359712575788050932900806455373639210779237597270484568066179800806645973133153459860533989659387179330418782996035403810848158673449992345923202784100065282401723295193712455546637699889925370102546526529315646246490821718726205668245267723050794647698520944200032381457909222327144969917575814790837446425524631101618062343636254123709594835104216176918816167756873008376070382054446381096462579452436985012376912934785348071469002570972706903862738113659577490400960659258012409629624334871712553368226673321792461447697019664817983489366529927678224878641214405047148488879212850772549233982729183855139137039008664276967708737035882725129088434666597020602773491756880049954486845498601485484205285737878974489564166770434304243900445788476028706527229622446920538636498890703217469916129471950562292986192000280473196803323407012143062032882132578660282754198490113450647935109161085577216067761849508035372541090453308938336946813596109819001612065049796208149438351572592464608373528423399669624532268998188848894500630097923075291170976330994218450661235087117128975584013752336393869528615555654427972763957071911262853213305788088844197089786830880188053890314733482674710949327499361703809225732646044985566440049117656678526879349083594138976459983977741088553560482860076178013087536584973202133393296830977911090996757363050782302641116914362090534162256965387525470179892937818930279260439970325084333692652354436138162004216697095325399347900430727695632087423323214010123151032523420578589348213102700642151451644175724183792168839606041576245811782140965611460470849867037190828232478606573810637403242666621782014107405537563019925027557430863574213863817020892343525668140430181518633828794765735126233479105920078374186489653065678705843286333172223520705291429144188508756985199260776146994812898099190760067294685195369766943226367250076728010761922971995572810884172408960872072894887344615540815329020336837587336828244474235712400129896369436381106309939900482519164755810691128061813953483661788209752903990413227224766374393492197418853716136372510717763505354739059857185572964213166295304872538753640858846768484089928808957366965909282167908236594658435369685140501308306982665728114316512069316584698569035303135334584207790108910495267337383554302975507441804370814824663802606088777200994000449129094610697617762505153504033412111553281646206699055891743140728980199651865009730006104335402808987118302478005506026569884467139883185165241376164207634863033725668042734899946363182959822874976032371987124711696707525033772524684287951583725989131742057299107063080381370748095034682935723023154654295587610963975372697379943458682839293812106544779932661954778705925145348249896978769568978099327479063560918997929576062307935995620333233297391620618714443135993462741852249560403086642888380044854917639123615524062841567776296999633908347898448254243993836649550509460291521409954292635728516155982115798718697594271312192286562634983300806595477253196571835977337311320917780540342637857521038840865476884976161589545771439930944901596583585672616292498450003498061986532371419565222173347202962616266882922964712554927547787740164893274896910472643507946878132761919428351721469757624007135252651537892681212871239329716079258390087972860210279062636370364737760729281412046539543394748104449335211659594561629573453284254854607614486710590536642364277494734367898355807905497851417645112780663175485230938245956602164649885503093353809249957438159905960391975353173582595446287060702941634431157849076225970534503079144005822741869876477449349898910919709040399297347895510504960658917554095295391996890852634303553615277048505346023157692482432214666706778227309582126993212221095083518208208813705350264527954474893092080491033059833934524897644609634212705085806727100742333388211463065558178606595794855171700014742416399249383312777372373158034267446269933568065783287816130880317593584289424316421413640804802875839948323720245977943760105089143638419720474716942830772124777570222888518980259745026863810421962930105732144113548616774894340947132678315006041604244966817894505880699346484440582769382989412758241848900249881281609476391761961536234577491688672784398735083898112800003381428254482584550235541210504522526339229165728291533401632229167496472996350286782093705816477522195011520874984828306404600569914467377098823690855089763145151210520832514690359700555391060034151655010489114675721517706546534030090272790058799456418070188888218272258688532618657051204610943491581287477657215031879672757567596447564834652650571288283243034463191150208638708771242053166349464502495949805333074802472087175578844071023598617746173739870723867884022192429965044694819446633514901113350819050983457109949192974455332354973005684410807766433250568860567257927112875259389802629192141876976163833241798758918822705775251550127994520049985382118188104139728453970236965504325597840896474831092499045856556054969653137838468420166595216541499568033242916064460155929527979053528392868044294602699946500499307587871012438241744224476339478408184415055270633528301299214828408464799207273732563462583068658152768903299879848696734974886207734317610110735335408692657240667786727744304899434924300378774980015637151096730871690067270906208272835032460839532387020924828519755026834679169278708449276027213816531808945147267691192377648575301619102930358562511136986568960225817358466648981795667676022626977556838620397702843082217943116414472361473820233710742814696735179521319432050094357785151683599863947807126030425657323099301356806874574833653312502724303779360411827503961815097009360157230452030410473692385391529949677665170638496720466194384654648716921450551352301335610496660070906190144670842564904210911315676264187231065125260640269365273899050200477802778155233820352486580648157135786545582224709693769207895801889720769974147716726544117495391192614821666143823251691517937243138402991752012918903291002801442968607697575491982898060778520687692998637994019413620167021083224918268697359794112847045153861543403383316759538384936633476757657567369168965690420107072330844892046333853597747694626489606364280348967007171250594191062986433511011584484023637585434521097596779018164906646876271420531251076288521034447264847055740519025340828759831374817732177409577052747442705799783935459047835029538518915863522973738064534164449107802992812764816000104345647363170972660398190241515679120800184939227743954121872637581821047487809938340669392969076055341130032937609547055068367326406071399333399837683860456042325674131834389965111515885381462359450333064662500172099997401701519164626413981465728418857729318168392573972745170168470096039158371716249994849698354540292945234580298502363549640178436880487683623454901599480094739266711558342603892140644698066802326501705029544978865073557853003830608260083698391504311353854571878825002924368364836708379319885210420267435530629402567202770488055183273454659529392572773327102853508096816011962491100431573212456337532310290941433416118942570653800141384073502958496983634910180445178484869356101453904568366552675302966920092804593724392014015710579174045455925206007044973617224032949991570654792901462005855432489117042669321310775267812657318280374843263400520737117604724780081828330469980249228662192316499840640264709271479992459519253647866901544895849291812380047181911002452104512639544331185699999117798803591341601930607824096140636940083435599128106174865849116734807019322207604844336849143910318293347440424129717242519825140537103981021443234417275244495739244339329130744388439968018468079997407788930609680002440707729911819921042298949143442726873097564272425959868023812531313500501495584377476996357471256199209109099570406667569595933965578004822270583958843813482550308924780484332308674523581849747990741029722149851531772027339383357364658395395640805844760291160177050360091202419184561105471348474469731798405076209653855301262730510597138427505459615186243490077112011633394702286858840530206516588933629062787016471021967721557010169473404165657224361913596666576282606994550754521288817139473127695128934282194739313518956374931847136078086977276975317917359640047002218939492349454209683834429764941855145849019194606498724191750934458521922843138259659804038029365081453461682716805721108708997572210151623062175022316221847967581367364789758229135586891137208027620725848766133979647668500861190345056684483457656308604992464918322675761403772857283497205849824660575250738355280467885811576281901951963552695026306709687146615211411230143818072471496350980129370380313847706511077528018905127540979661735181415132049544764131961992547870722067103084710811653080203948148235442958439078218195524541140697881610531323343731292422248274687629312524306297920360408865093153312827581658563137021945163146662943109783615505024573809381221181220632345438213940912394142383428556041478994485526458664575878437736490694901672939329213203980802356451062352472173730215171379325212162875545799460575789799596432930609311706212652821524771616337688174709593065320774274892393035480856385111929350958788585557727122775548370542657868649619767999156064078127176854525635968407649918780784591141253618128872584490860680860715801460314637891236469295659430204108279393120829820760567461645305346270776016881348610418372207241375454614744562469706954118622351485188736810274148638327264584513077004748062851522083605777437583242929296367165644241645195554067110877501628660351228728338270772828970698698571062839355566423489236666037583590342759656838111161471735778068808006864333593074889013996709669104949613261506054387244532295733411418535467806702125565685330260110846622086882177781291459847924379996189082002062849479987640479740233160319326128701172423288052615634702275225307217833141254910939252128142583134123996377496708010116906040574019863830125607250014286906461568733659496813404941780933160481833263662706898469296818805931521395211690879283485689659163814741669848363866805717951349466072851957022941887827515021834087406191983006384407182826871607032706131308072498256885204768517318779083225185606128862764324876421847168996515465780207308985721533937433955883511246792751004117695838904912094095481586843591035669158715690883928814031139413974569347405434551206194222491556192246707235843943777020107909788357824811263968238920513868710151318269973144979119455373254972776467471789704781696419113564760129421784344540344788368635072182447957377890406889800830580095482879942894789191035136127464116520126500911705851901731732740631514882729560340490247993826555600509965443728870512787424728755490293641607534701615147880965762785260020836941940339889068036855520967712293030187283685519531726850742182977390105014813140259489137501040233887363384836185056888756521178499457978708256889426479423671367430819832582732112572661978466731342550902157286214379799269459349696067180917999165570266764913746546830922442284400123808679467000655949705971587640555289625589961229727366258442954017693616243520382564324785141440283047724739990718568007112207103652164964248595822272918470306557719268420547798830010903216913286063009893138489177274783957588480281961844240408541342634883472070946975415866169864066522083220447834059961866492987704412765802815383266145836704844097777862405712992270689627825931779536177663583923519704099513566462473776096295806515814116569067661535253316742206946724481259164426501242876838844663616018383700654774326376845243524678212365619729812227835040465611527739829847525465458975755656136412258193475831806649937887798917670076160411782618051913015238443782652911931828658723732101098218781817991969299877699792586086216681137441628620623320074484048450213159392595125980932807274618443223251100921733113867024904779229246006120883402510861035627289265760299563052420432822254590751667292666561582541810723113832486366085554826036735412776746061807749689481529648940505666186904648412322963759011463045267549859836946281686333617459960150085131469633451005069608320534321867021785057162915594826825200051615793098993473445028982816641970613389938295795272290464649853231508181765729189730858442874825370074439628629059332580783445349243410214408622523702712649285280805119841197419045676673010341754682373079036654757603173885704109876529938955503155633358952738966667044615023874868640441801795839751782830658930740676714371374109385803882002864821292666920370713538564581448195436755835028367364017308667125641327346510284084969346320787012316560637210930175906847182771098013072780557427964969129561032501717098747778405347391473562143276011705076363591152130922729166766123860381869373192794656727797244731666970783769918910091866179167840719310094990973400728795904423371401133576851746190084639277646846267200215096750964782294709336120257046820416072144876876114077339836875418148768391547730981038920005364558443862652418978041068572394476515298651705348121556731810149886939045275266405584560198948303531766293798644632446838787290400617753388531642543327319207361084254983700139523876736272323385556903265669045308086697346310295779392036394623348959534837310460413374380254369484140596370036632500955513899586625823834037631014316405384136055617880924121758003982901443666547506936404138612217715941412053650313731515075096492882278724332652596225278658017752355057177095478976531377463766955354025021015975020845339261120169027574941518354631571287933334288925983529586853454006479332530921032156086625041612712523267918227374142588204849681282313414254461282190637977428143247509082005103959315587044724793916128429148083606170743806146967813102578848981112330034667855275401697321718272857361750806605678592279847113871918929059550539783693144075204974197763828741775107234559312347745926882423316465286369286774288970499295425782529670068482455594043069711261501349108877087182026346168596364751969817663543977964929141641659869914304052500488158777159010637235411193733526643346342933665190497895978041244317467823119880277416797652417399009729777624672844885683748776928803202535219475195278748528219549241973211558875579600447337318464525297149875886276429947735643146253231428010442316093137535194703647928740133582610332727142356543047766338081301310272537101082848218183289891711663854662775141754504346519753019128641929589014201988221017388073716953547446725172450642431663575005071211200444235692834738642841427803979142160530887032019884007805787481364165713068870085571793347671180464731084561035752844252054104965592531199272670678171997302501344607388039817074294379470705849934046238210078223632979963397793770832901391192000597731907383417520828752915421923415674932000301650985460331524844282510221614116681818824311765622330167849345938810701474873761606400015041450034747237218581832980608053631785010968143790070393485173214295830269408287329928620176073556874190597041045290670836251680621202157857697774902532610808582508829306757123596073355917229493430408209662258100592694894246469498715540560912331714417384802066908329867642059147168144503706373936888137982777018132160617205749286724549279075619247283329571394400858173379417124598866979970743817862790631287349105174320110954102209448402172757234097694758507283604368829229751683335595014105807058744555260276808425625100861602448910322160687921752348867120489081774375569294910779824969953901129979261987609125479776884837930337515783178169160183034302137754525256075819097119765771702134892903218923921973574947817640534464194344403257839284942881026911692088479524057166575453931353562173134629331837514457403565889315604782591427490116975225535713355379056948801240575225760126643975104690231176707317660899014235555478898466862069728247722288461999369547402698552496400287840048226333898015747286482339538947868064285221018755483026897504142236268779500777970574882739707444408581897206767194777650743708503768971137769156319186588924773159531594568793365396031532975555854835419977113342654580742815432922632945063090396253227035204417885657623450057026883726429196480030010599999640001939975080504543023417998133415184958372602858379170924430432236024302980881454402539088266138392340665901908768822124181901531788407922183215810407334377814868799244326148365615060155047101581440027493840431185220353502084947136304834568400243663699431855195740225488357866159109532739687323215444935045050080263818467384102362860774863685347994613900194527321995499172954457132812866332948471196188913303095942679426467334314572241634591166684519778559041671582440085964212979000330339198411527851452587389838547381878599163288055703741808031255019878397034040978078021130916121568995901872096435541936527783973179369366011801772259388457628397977040520655474999509299019376939456508175736347277940331649874177325161972595231011691520044433189312301770107397619641747117448688107743906402654000350708269415884005951640758872968582941676178077646522666212949171212754547026137557529393886195156421265884342749109720025243414078591970987433426892104773425953632625319809746438868632830247909464689489049202981631813893944971574437839059532884122330480130188441393028517532603096916305999784891885514229358116871806801192567462514416975703699130980150451406358775339102472634312677653121909277948278307732457003027956529259835955756252574314832624709238365394452319554376781042999144058122097070350725829576781864063993128161786124439145778623793622543898712823404327103885916143603846417454464493628373032891604581703681361381581504843780396263843739151369058289329881236708382947228573578777521197699870788107988498512961521567039344938619383296384759599527593659689707232954445467322537191419940597815663314247278589912944532266033438962903115682838871601724960691758194384956169427213964349090597617012259597035159663519965143386364820225098795209280012015466881903286413551998825874626385301753909540654266232190734716555179611849242882669038521151219354038882739084771328402713698697552182987166192039255852326547230518028144637798874917796539903190480448856735190945163620642897179917516271947561820110275720420414057667160308836329111712749144712678133435026877449133377109263030988673013863203704538117566073950156914059505233433017812121086654720032611919114472876446128546018022786523683331025578452949560321173792882258800085451083483693658967623425658652594318614942006173604639166002075936755302404516707401453230874954355169483567810603688378488003836162508812701065236786487686983900988548451850172627387630867104320371697203969717548988608668667266899127767753196019244145134961995433794826025100722681901939296602656981706873897420916036105972790200312572861879276314998263159134317226240946732098759350510266588148868223277424828725575589713238435950711048898224618816249250605339120708237477851040965185029399196907614118431743054364177564516666198017033285469713591041681409512053745989767450892334379911395650491854502340775999702885713336450665662590724441418133722694129297090298744040164106433237638502103333548854486882405483910594696608479095535792059347381534492331645506322103791641827637214250104052067899208520785657580198182314000814906672204643768819971988387127916467568812943413363789402256924829445376435910203589903573243419029871957532032560277163226591270771756528668554130744341780774859701719950514058776736313958913175231408689368758018633599501204651728339099221827971936510363336378283595179015099860768746504936747542774494891420333171688501110340915388601733722444604212179740135219323378465592788051119527283021768860858217196178575626493452323286310852072915747234006397101348541277945382734681122187533490256554526569796137673551715399829291550487340189071880265579442885746780812823718251908136985759052959334353360440953415504466999553274912257265610562062170331877503877464821876643825473430939316488092347759882436644682919720144472362411602141282265934084320744356276603682691012720753372847417857751168123914820852162718814870430829201452766616722409848426171506094796434822187985622942960485334061704182064576299048983528096282012648166902778835124007805125908628090086806807332907300741275682946181844837522366843984669616026142380710912249779530159304487538462027857040166572463259540066698111066610321963594231025372312576298754745065650228474485791137093768640917894706616275121030801801285115474140479538177121710970388536951027921009069785652412554263959043515646329410973159349880141607292512201493762451933130007782579188382395310011779986294751605738200076686099079145830163971678371920238359719886391487920928533674704421285531377433474305354938169373179546467258636223197334542683793964747176289545404334627652890158080044186267012642400165263685485461649993184447188712581740818087853148669496534703650657275315746618244736647341967358532154988606853483981019882979573709077943402556955856431366345585292889695204174127479806828571327875281239577002103387435930749192388087476115684647409457904963900342720725755726034942428294000572419794960089613823936967384710179219260181705930718215064616011794874983977991768685430472466913927215121326203791769964045058260102345302625862354464145745281548394026598402869982308806964645213859747332102098627641609362852093245065266281312486919817073170632679829262800837580234600105840196027794151039560523089957675954609294722351853921899610949118041935221200530104865209564586530477603924486316096064342617547967799079499608006903950632571126792521621412076750398393663489437786577077135592059771269634319625691984811840775313153903765013871573187104221341193741989223058799216725181165771313195459116755955452615445828219048236119139003287228309025238006493032747278163586001062122706578334661230781750645942227237685318421487424733745022444090137511578585203402153856337722802563253618698423612916487706055665954799584595930979009216411323819731914798009980089979390769141868045963902520151323089381164826652175067687618249834181599598044579341209527856284709849325060617093289131649296863776492385751914969790292647653045606265609333411440153524788947406818406918675835128566757298538989244159104615472487451991902980299887432397369522584775270079799062081280770307317356693422364449104266255543352406932320609374919824947898369081288165011513740905181107766661110375226415514315134814991794074670632209843370010603806610593244528020706415261402563716197279903633518486378111882876027510038953968607532106068421012431805737033919660832036789355475611003193004385606409077752250945663701911358667341803046836480667580408116414580239279350232324632828931158737780621698134510698840274813339164282004704062910423589416529791430574337964492939498176862877878815313814689147445913590346534386067448010575612901597158641222744587751113448141150999362980915887318156345749419025613398908077410995234827970766420405131412472608411701350331977933935368612142888932854686260840199836129157148323729010881221921787367285884443859564321956290070073440037139548009430761210940008382437425288345240422626212806033159053763764817680468685472276939300756792554974008393269341310625046504434068814794935005134623932053257339081175996507220560639147475746489538735308471494502049580555012002650629762360419767463356933172031327736922167552749126229610933462389438358781904806127627806318225185954682066349201617830662804252245075773613520335131851399632960655579273636398257052460356501545933287906376620148403790278378241440767374015735446075889475859517497385453621617152395464993475249219545628978227003658041885038548607141786849653013460420247171037225344128566855560600364107399247353750707385918468673387827946405259384935807556090177772348168047660218500467270240026085443801266791029221652617090866902056377173926728235097652553442357980511430170247353314507792626778620404315595766606894232950494130124957786213205153526747973458920418608675235600963767027982232057315993358795856469494144794387443996372115103036938635769501287518440978981697508384091238168282410010175731029401754307773910134733806550394487233141283675151118866244453343440327365133048165470173357004316198206862658722420491252179540126470482136866675966833735826998109148215027838033220005708941902094647603011463567594565256224774343628148796480227219624918678602421646641521859759435045367473373974006388051531515638445727456647946330598207893806360759345687973777250877595868109426286947777018464976193420204279541729756736476193452069883198858312964672821902671093212976565884233313960778497474519693682905573501416851122518579643805056099159452619452808743821056444020903741509685112544351213342456597354121565866761653989956443265923873674407956171231405525320491129304594085648380372788590973663444368757067641893949999471419584962487338920927057621156068563907402245692489541208143890421984631475162967435386467692748142855087319695047381767197039461453569803049683640717314057422157998587098899206149047542140755821026583779816744696301580078881254654792161997865755661565256099453882025640000146828996110428648742709803641916717710058241870410762343136551298751603498945273598555527829365563206497707435371929055051519268155157001704056532498331255057987615215608082184076810152850634034851202245601878499551210730207359005442887772202826463722885146255890305159408678175574610487609775739910647629863047744214695669156576197333726021835704353899395057218161015602118922806462594925887816640695060371973520307069264658188174817961632093965250052746202596521362675226490545676481981147099890897184940879322616897477830263921559719994505614397578000220204555178667553189994945916512219500931084296833066516927723186067262968417189260501272647278015813430668759810143509608928514440268835315177281845379121343264133291253620452194085249372003433969487557048458827252008076107760912890987287353101189742120254266653024477505644603942044621278587405557037897367499799291496782895657755697672500876452226839257691054481469125200832061784013564497670034853213871711199791670867790339328577832843787224144031717026211492318926760377883684515006802059456007502802233382422864418484410196736684187023003721136560472436473014075162424482784194876144354798033220134980166682794551410530444019186745998562377540838332044317898629517915502509124671454272194557123191895946167331277249492910497722295832051389805524850722730950497205366893363399474038128229640143621834329256995798238740915722074317718264857244643007316381502565273455453368849459949618500470996168164065324442557704004317996672104827185572731038877228641374522907413566040846981022424881248783138252057125305862133303623819681078721474062321870822819046663606605899761016751177123531116193088948924562052025635851722924280144328635351270003080222497204437236797407702817834632731917413261811458885716873268660417716806690915613677878322079748473303902398813521309214340526594281090253602526187995201006714173281490498829535230667860682090126805043925930662786221022571834417623696876354637268077133406170030226760608259734949444035407138426583647751959964162008831424733936811444613275697579987085759200994647254227154578671260717238093694241191980228706764766485644210190985283156590607688383400239364399256898048690703153335769812303714441061302676669017652916740789956799941052801445017468202878816045723002235019376770002354341536119891060389583668904352398116702409451508392131516906772536462522375727555715589757885677519467388934703815663973520701361131036157164403333261637910093264251459839899516088426598456470775306121378659953771780863502708915980369508123806193895530236017596600226000125811568548331727691612741606191781347719891917219634535612292334312957636317395140277080718563255679642869252642304329491381975430749754221846527442464866184952470148128833904440504232335450552291082069682135015307838268211059341266357232757996532290678998615994116418767443653035500877767418517115094354698925889985867291756876184679562103085611047412208320368150236084207551343315789005085907340306111981366102272793739921726035852083993318594740227349331291427277481791501903232799725564359085882807593810523214255907441967231034355275533954473178254155080926019204525832356800492484458360254046993154765042412144795402918553698671977900869734058302241221509253311643203871399171521571369833530297867080622332467451530512452821913667394868634103223102831105766465430531900347312666280884522522701596057892181753377454728600614897926381817469650598968001660331878501511572395112072245020129020313726665087021331160652267217349889975009054829465580742044842755091668594745828052173666294638420890830165812912097163057247811436861569751588265657647650125523636961892982891920223002718459155989404364141449895946009680089410086991994675497964541691959553998123986140635195309420715640190186960542719844228413794362975257687833320531983982098916913261225737058474450554219893114782560816385880646688338468394912205933551401906394180371031646811706305318653426521945290808867222520490206969166492568671916684107308292403922935934599568848384718554623391037129249974223317064416065425985922400683204209249274380378685724980629810372357802322635385469734849564246157410842274873242999847329073952158257204133391817883847785062607234878365317452800546936181037315652095836266852034377539871142934384842901002633364845652999762498146238166726631105906679449746904101557973169557446880824459981871855524855931781324721336733542856535559612122279752283691162946231335565178251728693477676474517225199990701191360679994332600496718576184625137641910980168009876776195356599465571053726842185585027724270315815044510942583020835227080733688189049857584507447111025973673353769378599851441994258023592615432237504244766431209247620342607207096050468122953424924255477914909719381782141148861634622057920854063718973785308448387421829101854011841270102273665531772423998480749467667454463831094997316301482884589469968107767182295047857288556771525946388080661378573124383561375132614692933689484942187948496323043039698817797857230338506106701739913868533318959523914517668963441594297143901099273162464137389427083050604056149084284785049838470463970909238632834993465251626782722699904958031181797954028681522073823838917865368917647130209114611447709035787199479475336294389647847138665335169484013701871504420274627373660969346120915864391575121729807930151220816038434595347300643342290122813103693113939776130102076976318602770272927417109834208204530934292567771237405417793755912151755137830079149000554511673494629962626611122479326092842587004662028410306387367136146077254224050368081216286783050546989743232911312202661756348643168929698476051415439708595481776840305741197854383440015385773905513035536222965055619547542078025205188392328174630941167212918025139537956176927808010610191382175479179692712149174225071005978567775868721465737863093281601437253802341827911642337827727132698498403716490547327521014612966805392122633737051425722014465925504167203386210810361007989265295380858254513800252276750799038647398151358119185140012886240809188489938963905230939343064811428729288602840649022221994520325557203922856679099586796990213914090683069413949559163914816582237834455954551881354955311386561485674073358946274555353062133207295947420793805155704375317425571861533382490210394869524665007122739037430276831713843318458353960114312191788718363456075583792657629800984427871492579511519962656655494134259129011303232503884853890267559315188037515331848189928629666391843526024903263822588017545682368806676869641099943959951788882431704167040697409213882305545752974312413370207145909513778407070629979612728277366242708545829940233762733341856730852935634982734220629847403202332936697951184904821812263946105306030101305452911241079954393332627563561804942008868101198805010984416391781504793108608999479831333787891204402211165161079425628493406462545943546458088170066894490812753444600794556921043325823931874205850835367914100528251760015712526309190596599777439445665436440022519513273294087732867534325902599521891183926252786427264922028669104542090545458167953588416972395772605687682204301906868073304101884178465903053341953205686316361867920171821023114803613977412643000539151096910983874093194746710101255062328332559338209642309217923667525005622522564986113386281815470329999963136734832239960519890671974753967053128036041167524526724108013238941655057541665681358038320464787465235582115820299390078136819695703460844179108586706956214923794752328503038952194870655157700585049833419081219516002506843544611288150875067847574238929373289504668895855296959198604266440053201300371173698995003311664007736233514431695537867695296720052132937747739652317492997600706890138385174731686219273788448161457597801488557284203240025505386784865159395582496729918671577717856358273778358292823689599651259015641257633066514234732479616452130462320532044807569653562939119760733172860716213483605959500116324817341136424226494780288273175180566411710004959045992594699237204142820662417252957537239540118293721179800719460738832975492592649656586982516132796116899950385879782863661546695476817014197955908731333548010742420255995402008023412814792492602072292740991279717227185634908352591317539229451730103096835404245111302584235701073874971063840786444018784472199135015669758384898712883677224957031014287552329621485658746052683683716912758547031762964649812340682957284488578948689576670057663720301730860656363434059366806834210335809926150474176986547341503086478419479537666451758173127499423359740431294989908579032824805891383275363159105366099313903463301932432897152412966549729036718610683743739458159632850581898836860400580068963243777750176692199610066809647447615476687385211354125107383774323088336356435137120922397142585260205892092163340724121541780911588209101708307721148087671998605715164633359158590500455748805555796163404252421290028795399179613273374296687366569458769152055923787027710403712768445524562793367801898370844958842545881969026313831320325850155029979814543659569801981870514765071556598636853184732647303883956726720529649637429633791861578679578806026625822800690335847621162799168596236210629648660509970964666746806052603088428859188202988461674574043277487032864429787256903057288326288257941285938478749949526113952527646730644295768474593815097308614010724569114584423111197452180522144643522243739429292941393882794608385537764684455046845858872833288672036265436026067146464124422378157221558800661529967099822813976874022627449189261598573078441625086678166073774492723334396008623453330137872836950711364841168815207903311183585735249690451736846402657586153810785938866514732665223077460157377799722660922288366540268958818418468322116974311193079501730879605550913836561627452224628808381641621231221353637604939343131360330472217750975589149341919102128596235502798428651369374089321187319208166629862433540387948301844258507647274167909457940093764666208320977633644293724429801292134608546118112940145198119749123525120137477304274039737744854483164300257048166766498638517478356631219190651966740184303999272078040577822367418342640305951475798739705523398686250004850692860467832366489409198805711989308537505955322460175552857683752786394308832943423016462410741166066991447783580794714932074575973319056364021562800069066126896597889810055166157825179947498859968651024942313449569555603587373259581905834049900722110063445405369934792312032026079866261417611694210179472898431833658593051075546745462461089242980464547070344747866138714614187928514366215990779921715250953479845313639090340826813392120764547572279003337946558898513266326136438201037965054765376489073590437703184203101582248370930590085226205622908790634234020972912556867069515981675272986359548198526113891399362354082894656477133629117506144551022538545807367963127824413497621134047376325736927975259908585756080212052758857454514944944680540225896137985586773451418902433696919962385208353450361117545967686117256878881509079425094871104792796166260795647380222778438819923164109356401818284972505537623543081501314512367778034406944364563000814549892592800565883258220168281682801230677006526851204911562475833412664849071192747970746590701350941746414369385194327910169319535824503787194844913045299448174641592226467824084676906239491082520689047606098509374370154263538001679869980005174171338211188422565745294417707105089530470150763334862925914807940966293803728931659519098919407307464942323313398268357072294274897080360912168554147835353747935459241559216555679195738123069026121839897642500218882666072743061419049073345472890885970422592387870644200891907957416318381783763983109107511506923349899466632515014762185666558485874516021022255075012054461535119606320572549451760806297974425564486732494015133863313898053548101221888604000063961387433730309394406129384953997491551724197239586830112132201975262875866339511107502133534908462100168459649527952314546037901618905319125076998096745319117005288946401503812523746592210781576246152081391580692952488909387478092943131896431865725797194040446966934929011604805382802422483618588676436930748870185310058183924869076855873466558512572375727312558477121312273812738086289169469568942881558836028200703481462248641308358410085883184885726617206031782976794012897251783320603046623817022540909320489309525315506733316446391560172578734300896600742865905506299666830726844078051852316096296278543362863806673955120083747007487311395588876725816204057689962651980804678029381602667522530358864843548721376351933629482421714443750839043782246614066057491887611771681545153949517817799707246589585968781118853491632014284229655214279156739034703475576403593846562028796618890812581021590670864564212965479495434794619570395903411983141102643666278551142013811773046127560863684515727736717266074228029498262893680287941322161860308413117624359260311770642955117611229644638958271150668225890940274598207249560426884240067715603372949536562337448273893969631204414498712095381929930594288362911226574880601384758270507853065140280939146944694358949578200590863138836791172004028269802170316618943874788307090254679986738130000542750837007941158742420080008699884736692322355146598532443166335655186899751202147644028014340161583550593120764840942638059965827458784757655461038216373353107574029077882660416020798020242768974464398601918131987462446687866773704160594876437660226411413718560240972681345677198181511500709208470004294007003776042835730832107757305453007956889576101251943264848902440719237655506287043291239094805238045898744064570605389247211552624270244299713276877458584907258545085757471614660294781265124242107503780490492315981858671792177674474565490282735160817966338559663835263746866466923137519760421511159542486696323440227458585221794956572750470342259608161257811578646504631983292136590526222200419791803642337728700593334731726911221800365288378314084401359646721524719442961165334204754114786656741611364889505127118581894626444785953436612114500914559309544703612929886980946790364428646423795284606290285203899900057331031293573242730694053860371668444670118844915574763610032214157548023995545653612792655110780281060841336159514693101460047349705686690219996541550741638735569288115750712832394566544085850243714151314270173427442830629608612103255896073167256358712580913366797117221475851181545671914011390352068587481435343349499144868388990214828462638786467793252595621886550848035174116248295209480823175107457142801468034330650035932639320932163916586087856282348893801380950775473030696522967984617586278114302356138362667018668876460978493653505780409454795175972363197330239262013302625847321894340605787328132592704721600183481728134149393639143874767659982448104299367254317641402283805358243347204610458378425295158856646779594521077956079588557818241485562927701211904409557062947631518755903605337282976010006451761117998156555435953650158588779432646837845346931675304616848783266486514081470175147781976622050480343085467723226797302195991918323376342328717473004351637234923834770522160449975006704634780631905474830296978303585291094706186673584061370171751811089944329134430047622714777244370209121862828810646049860898847164084018429826547773687871977930343122812378679704987901788412897342456052350409685731629734526264971804477740907414964011813795649294671432887050536647480950780293819583811162385515864561802035821929682194872213681766623607958241291892337564493323608547835306980698428834252215339336175557397282500273870026521834233950803332787567997371201871202440851880483804687896362192991746285747143005676904570471181171275709099261117346061565652564591965677591977079509381473091620496052786071038433395795733175491451577681855643151291170991489549869408687971436822432999527913427923166983508115167188218255568441515609815949847216543010001299051841124661065380472728138397214689170052139180715366433763083912920818793543739066632445702209483124737806768980222734284787575141994071561040552748914272971658665012659057115776398126354695743265558691031287831679924739972961669808362816568920102771401811301629649834873270575688302362245874660460269501979248076652093310225279565540558900741048436620733588946426245550668140421213192740205630017866350990333239481504741353037941973401339221800666516010046158606439773758632464074050825843335803851204578849027557811751507629963290682050330608140879358949161631528601613274086487270741297582406195833381883433518943400820606561379514002939048638608926456437677001763957137136040944434837366474056748879970411991135077196306726378303299597839939551818406972092014263271077759620923424781524675383891717662256159318500792819064197303165875114013000773535246706201391033281977913579112585470146026573010235794862347892700014945127980787488420374165864852119275613887431418974224893230517176678286553600975921047857561926939252658477855293755340881958449491607223553429687343936465800211785779230989147854476350315515756789325188056145156556927824371345032685638756947934671046210134854204503504772470066381645154291304955509664334853372893072632242458484021124998267927096063838736048529228304564641780245841552005327659273470757596357639833595179452362480190937191315047337752518289737310867213741311542767516534791105165260176851978629684570922703083659429877820622380793700601710044949460102298171253430420407694297015319108419597567973876821047577705349287273998019084310344152803911031489081007694788219133438407378554293260599684481508943277915376167047363511022226323607715820538665130224234336731285075710991017355268783604697971146660755131793399167287087575325348888880557696242744978525715069061363663344543476695033285618972651552470626873262755877577792426286502841863504766643957021800150844425029575783088250872257235616588389744878040636981652345172601099420583835982983334530667111360380884725543816576589026056948854614349782351862705244847298579702485978744850015532417654197988141794666291336283664893214313952302474775167528307195337092419868997671656487398192454405047500171103876436442316111814408309832829789204571684246992098868190213340838253538317072828088515778457664659181845612072462051868207220851061239888979583605385390868928828797358838376863907999766990935310274060887717682256337123312370051096533125679628854247598383084458265810749479910905355518572191155353765267863610623405808097821896531781063521240253447707967348007041167794094085233738538129201396209642696619932868151426099345582237451580063808723182437982605956636555203695102290980593247593473460264625763306293555847608902991582258072748356807472090507621126587041955939253177559891103452793615536175138944716871533762192098373728501594509387340433369734793576276395274701129074041957416852894811026326691031877383714902338341259491283373478117271699891833111656377428823293538624453420498087722689396322000434596115014993719557195781106169778936176833713306025825345242258252355221460064736423331047033579827511828059954288748933491692880787750699344778586451162794990044955629941047734442123826776233347067271457590639487466686346833763213537133669465135203731860623465795227791160203777037849705243105760223894757043017652234451250227052227809585521379775643292534746227688215288276564049208285804250814588394399486910215717600569894147178669566690278081932472181850597828617107542946425809303061454577402416080241206613999230652521696258789894449579846385129247529199043022578000967538358037403059604404677064027732597613527972288842212578073277777402046845027780582306261580631411939799076701317241329472224447360474096147678006956202740384565610234160256968872887857673745721569618421229072272922178131430250182531706685729527547804502075122260173566574111189005272802755504943715568762981188039118469489837327079129556902626701392260063593911252289040509261510839846283750868003298778782923747754401801356328436261429577148141172212662311049802763200879448791635714199414976281978921528595115738841503070532465790683558783441526072831794012512743974881728828179970501752619564149644063941970895021465204766393106423951574238120370728096718043638174472909141837339230966058622182183210539059356310167082642409617452843535107353168060739292305140747779824709020359994631021393958954017621920029287515125462975150840907270878206762291430720807306352981158584408042072722293110676480379089775346072479981307352919489780591591362747671618621808796820263935838754306459490942938183843368343879557587081735466037627535893052159657760811932041874605515269719808828206371205122493660323292959677302645423350250379130701276567437073373805106678296630697695487537017390483069408425406864704903085829165878280155355841893024232228502411372092960669326981120346743938842628555841695084174186898664883878832445181815374702948304938833284008380281000086333289890102220322208459975666421019039912532633349916843961347763812119034791130766176885706428675699305199564651688958616666912129775006145953306744937775550316269635103929629886641801754163967155905847803985590890289497899858635079236070588779145350758722066653868733975495328089545503088163586418963758337360128775343729892111274921466039142215899905055515812889896166581650371816051830145601046709346920247658772171289664500671851148416489940546887141903706588362264664708111224670982565652474241853165901794926455650416182971339369968682940508307548753808321926694329117878332973029955954583713363617004379398371336852313061751911109914569794784413685825783729636855552581674843150374979191713514296610104210637699940717616625936324661152215853437398823440714003539080785205504601458237572173378756836256356032161347927177191184435073426168358111063464918593597447718181956440509186069478603654906592138274276248560493385637352943391849035218335777276318121723540045509886231457260915221473156984318313305465333325914066996678632478107024617231782035790584391034959953870243798774226450543144780912020941662258903981345847018869969796650468398009923256723927324362118551565205386845618997025699903520650333311448770633224327738587102530681330105778248801815456941065358319939300703706009287187323773591256777564634931425912903152197973505047586072121211056882805781839425866037922567290342463099910444516274984788796150803109555413750781075382974281170527901842220576001065918160672065406084979240173665495523153436686321215209293149403235213918389850960806781902780122634645512439666616561710304155298747437009850633742596962967927959035765039625109777949999519986334323964645721093426070874307190406660564342027110816916248530922073269846536605065761778533761672072659308131207702984618770977243016670002427973693996129886516124210147328602140670182554214107540045947668343652314351240379310073689856098157891602224439893355014977690759898854826726488123735835482905843756953827618209599506566389051930805231070487148968081352396240126604100997487783820852349421948202100400605992003537166508253689494714690486216929503503066329314344060900759721645314875153178130685878917238175733400762574832067514653324343493353624670418323909913717594957269214768461191120958097537105961461245787884206888827073268387927476905084121676089111979331108775591410963343680305629309558172491211106079263339748069788861612718116125143205368661640341213229749188753861999472153439154365939485974637374546005963409831108495421066918693786526033039330802312757960870944415786514881931604084773936769172584203687250191978161398246387144549186293175998277847111333712488526246791777782795083476050569486769530520182244017626146242140834411169449840073970632205276263834767136508583756281355217557502519693738996839152069421377499854792537413597156252721641085370611891409883621494251017623645458302357987141855814200045116775369137092087537797355120910297983921669675468868102913960314110343458421520695969337568169629714223286649874783866047606186283884033408963527126901684734973682929302650225635771576019595364762590117131372514146724266618746410776657656265541493771121541973419058798870186984946030081101100017216390759192468132494875930685825316793534118623323979543941539932090732247672126316257604059227379659689294408544993903892760986105142351372121133186213130157600386329342440372548770704353268229731438826205768411855642845176041712723824404334212831617142683175934813456268560237833102795644405480114335850338745735632611792458486015278700377957677233962577945512853168019606680845447408808042971325742851674323754075156878034132056725105005799952178435063319829018871575307960465138272607566444605239631519550281575765317788473740645268338382202144478396565113968110541931039815704933522337789307942853589287292986165634967627954986267899167572971437080838430439054165587704796873767692121482312506900143869224355489234881375721521919066553579440699352174052640374027451720755848129392337634339821436243623853452206278115807680405737198099117594176783435971095220605739674805465323026170216442782828356834170355786222514114401975939118415901934057064730465103517857904915020724762699257359437485224307235010364295200758051873419604608714696153469990296540955928128489820631493343547039615661897048658403482697034893000146311115596779779209588325562052521179542465103452689724890082929156201256395456946781099976782579667379363569501908237305344153807802082348908150086139944375685782542680033966360783098452744653435930757566447718941485215812320475602332829317276521442597583027553814987482686681901940297679525228326215665060408101381331407965098048764051698482169686811916969243279926974181164863027142211824165449696247554336216845033653613582062222069301027170683507440670658523019472229207600619228563497210787228968494576408453566218833483216097439260998093252653745768947164944943087697070499741648072391018765501042410821323383756311176677260051963424979947026155455149425733329573996369252838855072511962145518082090188755845238195876478441760929522303458297491528468559850380851056749960053465365728147256131410873601676223568773820057858095143776162625481730683842901287618370318001580674407927410230870719090729830385720862971093660769075474461214002688165898345476056726034897424772489195925724266709959613852557642888665164356694185153580742654889803832092097785130682454509023637438879397939967778424618706333497254449902426153921130086728530083534821864115494516502430987013571862301348097578983500851247342872216214640057149405813600639502467635161495347336826024448030488734461622956430359424384777026395634395392287448358383691282312416791329854581179003895536889771795568816009556903045265854459207177217213068693609715436262000275173390744564201629437142032008532560963301686612404777074795193645124849239981988909044034523358499176873289201312963768903850751140471780596383751615282601712284808171812607370335804102705510585075024053170856742663930036164582229755932185255326648122019980322894958786841694357820559817829011001489319997354279063574668094860941124585487350099655297153972821731258195162910717912166962683833926137983659761657901370406958470788188125144048906048634587844134699844735640637431144931381277246659359227305839888953963185988006442369412820713641607032232218040201607573275212179439088152360519744427411686107189894561783840102263557951608872112121855329539971704395740848534501365912601346103735046706576687017495898742161153883821724169811542723617846561215202940834238637972643401095084491865480898490615413332419892445467236186319565333584543976388106488966352570951047987929850058317207115008276557687052902727778925166854735110423700197226520947147273132278493802911456127551484836460068677856910503259533029449480321526657872314040871327886459962696598856711949683616670593315068596392059383109322828212134696008313608470251373634420898909115273632236205783363270572178954506180625292935345586249466794377454200849153437193209586773384426828371208557470848333956483162032634222649882794212292490875802363846684584047520024991796489045107461857934846198848044624471782855371242580480470834467236259748633717374279005021770232530782208923727853997429171833485105397140801636214401240292975029998487770614422425701393472680488603079228905334878298509113682203387326475841190774827770284239437291730874440274660222533760156414610958135707568311537218356675971427049539054583437253192636143325729728499256815457403695675200416709273492331972605167943091895974339786671863421585474240964801089659313720598002400078217376781585336582917280771591342147165702958259936148697866115176087614625521917580390074169439196794626261572098371657765377110260772450153117774610285493138310415962227569126523312325410824755466638730759141727007252043666211274390631502015242060608151896696129124661677541003888221913870678647510751401455787886791160120277330717511843083258413955829839781994140733740165322549836958240635310675490468143509099968779162962326513117653121313413290571581634883762668062170402311931643156794469630674985659286571708757328266760968805585141690213270669483179562497621121621559296479244037911725225831578465483153192020278990374733536091420342562791782219809191792315260452536527301928456786030317168018775864641315435815257024693478616435860426042944181702916124655590402085310272097541973879750111746715936303942558690546406079195444821996178408942495427716723928134308929025818541779063394525186771148362168226598126593249327839072088261897831087120513641692654530440390290947107098856409433547684716092236971077309931526193690166487274268004058690775207635690840568875671763829971750239534466216725718548255146532073583920993028708246729979401823724329843032903087815148299872668284167417930376621489926357914536338684304230957267009721302352612512226561291719066421136783959102369509961531398298345460622386983536549953057025401150266040740486235335960253549236342173759708858417495526516719357804372525594007738587468319059375015049917062941407044521284183803809488830851064001392568302205008172431239898607493773257722258345594648311426335506481333748467160529175668241649732373118275855383590947341042162373117945684836256414888393610836139344235945865448156151194235648760430037979106823082063245198680660981418987162010200877899261454370052693907887032536294723378063260097826363000987920415765758069083631495420370776701463521926354424396342512171378279952729072294457502349326468770345085978758355044347789924467250125367572560858290367285844677418122025473160827008013742385007562837877159177123366386927836671450812691377276261264769101670009557986368998268022932134855214563621256637228727796657352221314763883438017991162984981637820275285081931467007579698893200445798018192834689048596454774204711336657018648485888621379188809980063614290718564974728355050628435790950212893645321011370831930198834118597866305911432922767562255801688338889337953780178328948353645360800264825940843442655871607637035452033194090766553691829916773387774968141409124505677734173576196872571468040354219861508866920324554233182232884480332800267748637524602951233292164555209078325118390524055830017904107542370751406061743328171898318280007023340335623059500730466599801817684304977154460820746262498758500897023431652657626091004339647533947707607966855520098937569093946964873232854035671311494787086039859319055458221618515181589155709634676927359726969684676304082105780234685798420005580039274476570296543895803189630046214592813220413898373593387792520714874790665912391992274116868685989507147298026990718669608962939843802314431836275700254698294621501348524032161727716597644701741198272839991326086843715398346535175586172987773117854916971941640130660376681654641116741349629799681110942902756144654682464847153599275718842228536578251605266953017415832036110175670713483145684716457931719259094622542473834802933018256763559408564988478757947204916381652575844785815149962558044136718294594531313275649538173709080846472632327618160956355004718515064450492475864044064535673515680853947738231411657396272562034534572931766143400946642490193546045730397741537753927471241544497886066166176569254653900796067533044359914678118427202892318475688030388861643380711965482902351548204235574631424098784062431095188551693743403742861964062682938525903798628988682606884194424241198352705293837033586421231671854013449939214527137215928335080907980538611522838186987451393332155413602534898996809026358691061853382356061869595853737692936951610744549600023667641128521418699051776471208996472527434982402215602737877761571350389720309979251706969523296651785368711339369507860269202575537751976618015205853501025212401785880608637744388664865831628542779389658446701629482376391182238754163294726093843229441193901815376064565284922452869995820153539645845346601750864126357637007411648869546798582454718159215454236755072129217603387147750821625289394816964301182113026532331377775730958193336307601543894345578047561684393276512513417288832214311840793351618935563371087894668325096507226539411083555877252098154949709566925899494759049548635729433214235297953045773893864108311574682920557635057686394538264568329658484856517975179474757539207868047186356640457591144167539354398465998216839021205909950854286411311132856562008717710116116732112550357022590579468364902445600321767378233903897536199101283489667248100363713339379084717595382804608830720940844832412157250221929166892993103332602060168353848835554366599708015497969352257585121007071773397848746040315071989744819189146304919571415900283426740096489895916131534031824501081014085293603471760596223857943481963341947663705090579601573609488947538126399943683511650139702448713715414678083958861064123800597730627404291924973129369869600933713144589760327381751670235699152466777142064405611603355442323971698334226556410667867173795228726844208535778397358488399472801442740011431902044884456985550612666429771406784083422424092997839901710385937029222553037057842552664396600270363318105388962480631187130665685077221989779197732759430239821866078883164894930033205424296496217331674091934544747808723407948094631851718836636038319086183707568804852735908386359977106281188301299246854440310664031082597170558475715221591107097313036413482412534489492147132800893543162922413314929646994821754178052252426607198254930674984191852434251456391716927445239796600278814740954457426450959528022124985875664805528462998100485445203962440558781884890016067193779747065901168205214622585364468044321912760551308512306002729803069792111583420626583975055723671657167525451263208136024904198607944121624317329025268316877155313744413227150905543389598411209777251891148348903151870604194206834943151085950941915974763570801676870751905398713753863394772355817177911289711320169992846538253562129328706560573555396218459887404110330945873505586060731830550430870631866069837802897358546227242571802923948869444681206457020878028260292694550995651515101298303223868083923805637613662649397353285218221248956456091718748281699125234819313036103991479101655440520629974874088963673105723706994667874045368138586491696075448170824289373380224668101574769352904361811030948747395420769045989441835032797426883580793758947183777661617424967882640454777999163706973504890249491885556954104715969310529747111054177054730662046703094505462668700576844546976888415160313710774153428642421793335558854221558072535439858577135302611798772332441674696660975616968182868596410135092404188529842392338737798047365860162910100074331297850707077210290597534226259898583237732290474755035107833732868780310574942412320964301398273618595756193385080629781821916590936134430781443080326934065630730372598100197175346834352316834213070618124845347938673877702943457250943679346281799423536715412254392074523977981481149526343031846355390115707567476066887038027862675579976512928709970336725816304742433532968003480418835916461688418064900887390459465251395654638524448526468475448808467945710338063824992294222451667632075871825534999166110065263734953238196000811646376441565839724913972694052940061820864059152913222839478795212674606619360811122257383409881911664381430672735666950091083144754370449284650492684956199405517425398058970785344676493840522761809228209824346267919653605164583103273952998221294456996221869674147570998298726045265904225898761868733507381227455513008548978996748481047823165881266894922804010532988056311438393816326152606213392407094518509516463721371407542204764649912322224535405242706325413496156337680993521028290496908869516014139593765000525214176596164773812185587391265878193814057004799600842057764710475038952332067115014580177806286860543263961842159237857928527460744902381430707686397400078154528675362453809647058664407582802835896135816270477642168167613375530925398377736277427022308713653258507384827294226740969922086818320559080171391921817363618270775256604250076716167192349622403718046740347130762040782145916177704871317384690482906204444272884014178212611792162108066584804044020632942935917257667192440826681758672391058985119781081042896992698640096550109296314728050445968410606975268908061319208064081859836167634310315590961733954965129207880844051090635097410114720402550332347897399656079562847356438641510613806167790209713362506368707592617766458521298312987482504290056308669715770833590787944751873077313400703183454266865002885964827611537936163780848813567066064583227572645872436078076254856729113077885490029295811260776534667956194723692716887983022914556622499723444588088070525390273117144041512484697562813786042738456358462678532114718397164701594326750489065522158044740327913718434214068332237027540181943545723436577002749038239221086141961565344967107156343918558326538895764242760598151358890724219020452620761324374909112657694705548520927702970277444942566823497829370743046677134388200622478763816421531846417616454183031473355330120185664031091373406512490974943694950711559390534173868667495929755988864028518196949520530838878244486205317867347818007847705088017757789370636207261179117477048420198374857975756753629161824970517426179400349751790275771478975991122766631326068468546060518032083921006620583749426726068879991580331229586311351801355869548005946926182994733685992927377093134288543523761097499497959722052664006536972984530710667723305652317329869453136979881714197136736007987754475339928447153639690177951618082973234591775653900125669075597332863409226553019484772930463174062613302744246615091633827180689666938267839618292279657128696167914321972415703775407218644446329559951670174375363700835361463792719799493319223225545701792138728795810674190798069617517253809570760767964486245388951111641353714499735387924363636374249716191093168726869135808955387066901890324928806281871577733819683149777520657106806915463681734905810674654916236670402325336031846302012376175059116095791134613635843348392054612108450007290354721420549256248558377832038666462402517479091839240020760204581679774143719838573061490218302579343782556164117242272830960257802059145827945536498802123761978386714656993088272342814880556418142869198474713236140839141259186492330138184773206684533778709928075002097228311719040980378152167335926727595419652238085034775580571112560534775631000473597201276175153875727309152849561411923274773745174891894385501449865570805940888241163919570080795040966143627971849199533570838061645486720409439176013937422151001150751915753942318575890673700392642309767087407478244480116574532430016690437740848707278257870286987134289039452518407364157196736404953318619035308128526441480022993673531855743426004423453510978950264921580675980109358447266921446138879378959039610460421317205038638043783322421129286544934059148817742666344148727077782524619155115225914970672299097904725786312098870547102443741430154615426757925074764177259362598823924819313226814178465230477254153014651164846308035869950503216717450823152463814126222177323997665144727710839614220806377955432088023124086604985080220496243750443864267859687158479020855773443451639975391709807528325008068656948207490963545769045474952923246228221259749532127714448103289606125209687712809414869034935022916216110055718281141239610376582095877386741953444844278082343764335176556864879791388929061429491114173734372576650105501990520051472203722485362164551360258744573457282475706759018556603869744150306991522693746745339549840099383113419714998250361910387005169688776104471442413065638183199327074589499254645870854527608631165543592370934342121425442592616916093829061868850660340358840606254095436800975565645971808394250176937728801255797788596465109660695541335242014649556846779131830462256393705348845267122611406549709941116882867406425031984796543336385746758216576073407603904307117124458464404026242254332348278480913813510889749779445729001594849450396190475726048068987639962384709573864511003535456830475737327719138443381591876262579180421155438628986026932083760685276860224798429779393624564724646291498473718356031051154712350329808456933480959780903484463876289567616829845031733956862933338400015284019643381712096582325638781996712278532097080471135930185666767731872135995434886305548364252245166587160011767352728646875644671127099249320573426328455893101405393845836988530773957459853655878275162132486020117671342778794080680187557773811341970786262907390155892551636035706492209253321222485075622447715329328534029091288433465834413975981127739445226534368654406293872722074085605236625001856796394360592783973350226627494341310542589753511807757974826349682074066199018620113693376757567775480174909784278040165620096949734794447981502143234462960418154992426983459453293950809316528260408096031347809117207218159225602130418384614077345828782893246159224089035424670123003210434628380871343645426738414014039073544445672556141801650232923675158274155566868145299000017844822536936394245144624888955277201066847217222708064960139880591464134895739957695479034462622244550038826629397676509579450415386884391560576798067872270414855880279218946619187021022382270454528419984095396511486661198119257669714245035846550966695902184361947717690298462564325585807698039219142737428193212645329446481715661512329502125986799769995888446784115024510493639734665756679362769386597368817174233535993935250710207289848581688419638734054133701403602463847925288234935997715257971273238093493327649436718421191244130445995702197410425128962889731369917900467979878366641069653118215928066624431627312163835134455570863003328603973882314564940068713113109815831887814645487969133429355797399113740287116519313245835783826454670400239674561564816491962151715040102890307482777109605021270963281336398945119472881439190053148394741994244246265118363823074912743718840105661077386334133630690614340690327392387945528861733242579570950030156559239169283990998968971777801637506028877342997381504427279712490862236485151755233251905012046598619091794552034609961235890266619173889703046815346389548259930365111737619063044872380731077099359954159284036606723225801935141472633104292989795504041069096340944888883695181061814787291373572281830294644380125692335343108445816033931859866728476087234492536538392680222044758061627671274856379615230737201296693777260972123994188106799556673008238514125513866148294878192723281616860965128517037876816994951006252061081479637210641856062293816581594905068298725652554678455914998306608021681768311440333744697233456325495602595978087358796331943037610426875684531473830722329221785989838671082311895368269303367249400364043239555797970838875931210509687576410857620001069739019899047822190619277775326597498930301448271317702981895904571391379857655436584271766653445799463212579115263233321587140356405866250224182099391492925914146983580457792541378293877768315622451705992591661617696539518839515888947545900518495908904181329503261294517448705901408169796649813044433386764053639989622886552104503147087114643949208304529025286320759078009415117055863200156600259047419793973124246469734219988185398185369554528077515683098626993672179568522358638572490614798281499817025236736256204824253537567466208648099004792198640677201011638060862932074814255961211868502714753562546701754488666739329063644187537861973166901443269019897902464889372385851655446382304971061742016717106624780239716781815950236796947858139676397359017440614141449300862811659240466815465379767871780814725416605249096541021877256067274540670164008074870855633096793664025057611989197175557543996714142769769646188798125678933641348380146437098280092212066240047304891045443379679721390512076997539138137175861708864999159766002286374877851808371433179341666543605593900224508895643196518284577560580048271350949378820114960391453176121323849041104192955220249117352243870833431196597372706093836755886195741467525649327284721680819178418573731342563560348019585304045676606766556516559254020714258182033279531353204587916682370237074574997882817189380875645685428117172019649944909367381605976152793869378492272514178034123781412884198432643062241756624778344708712037412731397000104796307607881265829156533934832234400784620515471642258355725609616942895122272417144376791195400025287128990710465214428464393108703645138185655219473956450318316760706625195994485638236129202477899588377667845171517751308013171521306773188638637863883659978719758952518254541492985906427870548823167510171128171350650570934435847999765033092794440025614198689247464421116858434585950654821448048724945655693824899307932722899784146342196702937629689205832771578066599273627887362418487676906603797893611420836594060995109192786502667242625147808283787506799144704600004646312036694353441000086983547924422322722720693757554535578042553074579782078776592551951959783464839322014604790021641108286565771543114682404266182770373503436094305582692824479570791196523915263231111264042279881531096104723572787515887445850354067946967448515401581803182932768775188855898238008638357280616103963658328216934301222311078856674610545173763580404610013021054702540160031099294201767231618543394253830004771836447556213346729000856350604499436790338676343562431275660392947138918060549087447327268480546133425607450606860472378689124841746676726970053153390551440881629211798845520985974538179118278121813419885449156658940571728418982712048692039715255681633328118422497519015866978889283706828418738539311541814887176547977289425523480008684587856950030007506687876503187368991414853986338478034036492857252433345845401795543283865016085297650195039164056355972870733425173789498507080026727052483342840967350766887352078155875587129071317527614157373238983993582271115246549610760998691909476635657198429076252269256153274838186628344827394541415795745669284915104609744444024014644988846013161630744453537040110375689956082055145243537707645823979967824809344187956369095091585283358220075029803262081680579731364432525622830020211066751200412840873943594895526190102037122390094817504497160885250675176853025698348391381451158858349912747920269518640119367512727387133364732370751292703774883241086501897700721784435668944071268570312822776281671028406126110615549886375304164724024343283198691855189582134578264280332676144822397082557379531124877855576440427857546697091877496431439276155754194999798559585888535026864676875150006380698674439602093585005566864087982743053147943259442550169587844266695607623345696752910327432461703452989522586184062589137727311453545224841572570380729351747377624884984901180651269159740986599440587621732115384183912351310359105399387124855623128182871850370225835829568353529568721803396012862639825867264482790220744376442745795011973474786021904633297460054995461784829376904685014160826251584405435666123501970848674836415976635563146506597338081860785841226110097249616370707118127754836371511527096490059255136577999647153352602881082163609834177340957049483595546732362615729246591932807486471881178790011712510503534564719358741576187686304827656128087316229106231188509084541375288621160208450711631760921049672691350365912757605374206572979312812467776860337413699527532616556676746056144403937611988229150655542533092013458824031518560414795885531192722706124539107112295840381617518844987687408767172262164363829652844523198446114923926067415578921353872150620267450801087217875062869811545223670675864535217196891140116837381768122849145890276126561728315615326158424850949931348126282732064027487829984026227095671680879587795363435579581464126415946514778924436545923933047914095673522306561438648049014818533249590733900534143289922883809633539729290143409751995595200428015139723654983513645165384169170622530487166490422333203777193600724970356573850651922627533260759245919876277070029600757542624093184730200047834720793938442969443496776814293131107802344035655336621904301208417885670796360373476304814794851029625540820731467183480820726344696501860469149381875304496455347414659167089571236645667012940969936973315606695325718941046744942325015978253490119649946659866606840921898821791799659740417656785316466450453899909218911070029699123790148072422751259796346064814465283269574064521343693630278859441471558169339727710466397127619002871130227591631258950305740302817932209188496216461514866546655884024425219476690923704534390925633266863554816607095487972602017673865842881735054774066790944010203442062241774744049171698904238861976001234237684029378336322122664101312749845721324954046630267319608647915494337588082250063137079895444884100101339680392183146391442406662779086660625561691365350441182678716981206486434117966207759064045946565179171171992298239619390034410448668997965611226510901858348341002649696029411209196078114982049809862346518074086921682376767725171687451719139669625778158489319912972429417427693634305996059361334899399593187619104702934941135221865253209460398603662068013464170335208302496084579631961229712579338549991904728029286835306308618918448454298542243880507315064220148962176925377267881426844662953511519354623187363125971300256557773066451218308832667080205336811844633702517397466823503591690307925761924577573254366881268368438159058009847299902890461659611163949584856040693826097900621853484322256382363309674924645026626160162842231149862241569894899907627695241219963239825454006791274195613403679005877598380448388748767821422215738255107444451227214680421023063374486633416809913986473577476423007452527029695703449156687621787633823173877810090354351285263537016175594566525196024099014156454701061955041119375593424289465801178456562893642396222838421117426322824940792785220888453215775568387246113499341374805733252605619607271302236038753143208802826408306649141046543885603123633202887316191880191727762330305595036082030645094473798625689240055101017270265515661879344469554807776993103789378753345425880696234554322480276057796758354765685673840565733583282583079968044949500059107137468774346027022662159627308081040779030085008524333738485834254869360702205406095382808617568891776379589752485611263517014156584507723276857429857089320860437322802865427383310464763327907360125922125295068396459622970599781887529248448706595842398238578978892376962752224562243101753989650065339678637371025880348641353973490421384512414479944115785687706068329833925205030712866828629106145762019864766160848949528617400131422826255265791115532437673107570623823476566900091505223863656955177813488511652300247124684735079837248292415317334380433520320165352136987109175893781877129693247853795401647005943915183752504566899960738762705208859899374047006622924559841502558446619014201118616638352426760897200481087633672182011704601004763527473333165596590251520493276167198717676055528398795448797871278834980388202493242820354250205781758517168382077280011933366227801458681462302462449356477133727943024618137077232922023783680722199060469909259601276286950754226511612935505710055570198985708060908441658412293301853052522701695409251153526137124654193950247270237901623119828939479111440397967274065845912477660463883684004910288939769836974939453952391919609125572025878429190141824703173385736985078748567436679179026932203282214015943667629321106983330322053535789974369019080485961862283675946118867621261791748901631020386171302806896103549176637432810643192197657261546685334183590459340633066564311882067154588466370304759854819888676731270450390938541865615926024546357711903795988979255187133889741576764974018391561390160981193320416355633765050876872852820379120559620066889152023403270100153399411740015434326249325514696855622774905819319145805104585691093553727297414627797661689024581977679813232443851249919635591765290058661337508861541873044017209421665370072538093986704314725288567436516455754869549969357722580160586436304947304800967979639614419446876992256647233101922855695223663693026135333920862539348872415407576348608273253540924849845422768253246012556984508721061170688205431108118834099302827165827497999929925169794630445432154475596281977575710412965037464893641209066226109081540022909247749188770412881009990100498878776238035388437528794226015307098190450117723563549243876736857835849122385117978570616128003381720218557239233657353459291054868334429144506446985768435564945293999371764735096397368107255694554309398770800095938176466533122573836409416468327911161458252666076927012269479384005074995537637881229057337994986174548418011507911790876032158380634600116201125155130081472030342178116336703342249196263952518582643797061884566018774337593881282731396819964347481462539674808080925482328099292525424090680538782249719724109009323567658560473096002100776960200635039368512208396059601854331903054399362611624255150729981521752708979099908645045496790465676346420359237705375210116295303111856517520930384087446612576460982754892202895349513712741813558866352327302783494673284636638717220996709205036212211930794965779359307135567069844220871403936941449353619004981026526010528295341757525661712808464156092413550101057862192904955499102825088535979029490107611053389815913588940406158147305782939814933962341295145622120876980639958649116581328313522669563631057276834842761248315420231663867427909874311740846518428773580124258337837541691252014196938339254474952362454615697413841351434531826963526453096759279599647686611249099028456609700821976135116808458305152060407277473998063184754934013571248161150540006699443480391132222840038949250855087208690033400952374900825980493439609931379980336729227402252819715966879331297941436641789352529165729478914841967108833231968242601554532577522344094561989924592821536065244745328552759927400352219520697817331088771435712525861015937870453673942486044159597374765984095148355616451326064774803679268796303954456800006338257236969843652920167354816591935880175953799785964769582514138663355512462649021770355252487638298538049393224108522430980655324381893952554902203801574517983307997810930807313025387131107367756385562477668988998289062710077063132622984475019840905234194139894039816240918756217497604184320890074423571883898329942036399145004202521871421674369354230271371872628397308299253394407617406061748803687506570752503352240570109691753613661332218893970530619445694693223427054736455671140436811417816610758633655133021854874563062349787668475781986470758201222071747552429072143607964580932014085504909450527059271532682896669428770911725984830515444920813896243524920061117450192618255375966658899276241214427642505809713167554138112895163273496208389648650197921873550618382895560936699561637544769079569518147246222548981157597041583608947082915737745631211452318901751393337057659015111398176764629787350667322454750524191596820388494345607449153367120203019760303824619480001155437706126792893375403925843160456195905498765717199842605940852450312140016120343298890655718596984376707017860494002471879344154658384176597032050408249161646917260026335349322707093756498845929032484119140372611535583424114372098200947291795210268075503575249277374421682179847770709011870640749793546772949733572698156859212728581636177042949157407336006637614726098680109606383981381380948739719780845733744347090254455457262198512432855894665902461447140528672462915599671431004223308467222256848738333239593632410265640012641384271341879151557030185147903637194993388451478935287692597542217312283938230614589021535805480549660061932958115070837839954951684624394680970986645544159637366347008495022904439311424641626037480415974714394084940617361836099583695648107159801071350962161634375489636026873235103977987355283534191207516615080853040990585560044775136501089191290689776884588869516003630093171226451043660871198696960141518120178385337186056835846094715671571047863936363779866780063806458883946972140714597590265067314118891193937250420200795200919860436219875925348585234699801988592436696853316458012778586662447722918430470485904487683812027973680281231943831138745883136333537850610466519817388383339072030181942552112846596449662012482993768408093227332660866162075730176650139415310553396978476767196027791272276881763930195492259439381204567405236018022725240981401054164708063910408920799790505325559793564289840617390737659197181682106721710377691347652128680504007607216504505623359270534262202433430456457110283584941358447431328353442726935373452944501406124564914900821610257888105759570309978678019421409416630366486025860558286796503079339339033315039315516726195071045481017341656166548998693557686625254455243673011884898101290640092841715269488247657407760115009915525079699892561226294795134340354340369563207751993626320594725897032267339442474811497090664860557991792760956423195149122397438387065447278088171677534435704052308765595936867613834001685914280479818920343269144467580502013835582519655539581765823308687164137245420959426739556882141063214978843111650034458064214668746413280635899696497708907745988560252416628686782597541097861065525160629045083133002585069021902377323255529824288636899582292365155782311399944066693138553872351295521218602266594051682088577962135596201979594965929161045692008238147933376006867385150213577578642948444943690971311918623535183755671378715989483710698622895394951146480241684922337919495518622342792998247889434229038690145507346523528745474670319738350075243792304456897605585353816295612663780767301768229989841578761904565370885324163873067184212155953593510959293074049740293757133497266704880066401092375898348715796058837403704802527542162955511535472140124950317512463611917394836688932589536660564640053673199960528192080525106844673117398077062502045200500027487541302938948172330533966675930600752085108237437276075810895594173378169379880224280286510652028970164250082599575847742148030617595499216544319470305621335254593499893588987303100308346083772329081634622287850983463438968865003805504644674939660061060539462626325667020708742798416630871745010593637923297340932566201596284330868305398311542425662285564044955963917428361394098246791677113785536564850601229707503040228344103936279453175093246060640935178866314295085183334885328813389630588191144860094787445944977397194425491566384641952939848123364743121224674225227563388816898246064481169400063064906988279227311806615794930012590788047520726084208037120571324285768209106565987613747236610244567421641305334472326178546744824052134309166300676723424491251518884375928746661891260231491061020486551180650681006293371418422372648302357859309923242361660396917398984176976043118581821709148320716192499443544082954086392888749950657021915745932892518821567938335235611099372792489754799942821884324963421068271814227688112911034501470980293215723082037643987670422335919616114804400660489565863763576997087139014032621717347285326657546246010224960637292360227188701545166778256785113205261742709272796271158246172678146939484262446726583376295270099435293626540135962556242207093005491670517939856235665164868347636823528893041671141538592351321704467927066266703082103401587441234250216749590179034033670162149201178410418629268468149741178628991920691766433575637139353336214057951888447417092192718546931622092550626077322856042023324798986259598981436024087199877195094920102939133765952230140740838028373284072133489448243759275265350303712446507902407219081876864644739167918907727527362629952406584897874396051805671041213171849755447566065611992530627249528746255434547959137565406317464748806206197812708483437598090981046092373598164386643551453305983635557768000314691178056412358272477618484454938353115685697995341797650406811566908482978318924892093599102991996578262876285589287797802536267139622806076527245996142129546242733723496937322982072386063490701881722967864903078172172850458662571415312220667229332278789294998402065111557312370421216707177256637382740927112580056805176862000461523927614075438349291244052010515179283606640450573958176835035897630212053505843401390312755292068129146994530549795075604884795579809880909257644464984973730679129433786050879558445247329386201376881844101455818459250212661818983183896379719151269652947566293339475225801420991757707404092948230709181558971613044329984370718607374809725639273383357503370374304089645510549746460878682820452641194082934979798130724326111299970536471411300682843239188059637900970239430762661765144519759192974408194178450191962404386228616682491333353025773429745338137268572805254027168007918566445628019407660077583751284227192662020715867297742455538922785667915093053626307989242335159154670896912305011907724818704476617644385508641546524145439445765992685378565062723302385251861756774440293494085413830878200295848075526841283098142940908055625722458462755193382710170221777896341348795512430309468345578540134616266367828741966959328940708867121790366602038844582194619454933612964188586959085470959603495312097501866294870622749054147876924485273397824527834839309333716724142644367966021569449282449606756777398833197870565427882441856158227810921475586199764627093343984524310395661021459582129391515321605358601808866710573107440010273460626913252635053653731239976296281685656828147275936147704784785365377768995787391058770517627017023912984884359061152614801530648922469082957912755154651460709168450914330218654744556193390557480397256070544796476773148527247785859056488153134799712657378636962300930173363960073885052686626888436801836049623301144778364360032943526520412370224913276032782168097390491026101465801504355058500041175692682287694860520043281838149469227397076384027212446899188641118257213303203868461344748540527764958080125625759382250110129516883737831069359395436895545505425204457564247468824558056383773165249816565816801698806796524954815924088844152214694997639716820054281754073140511984879036384662188655255762662008774080868427896048814862545334757940602137347546566945589440273397996641100473445688598815862160587111081319787155122692481459740281825140229490972362555067004032586752629992098273418538203470308584971347590466840765196252521695246679496000464082153669142860768149920099664783952276821249071471709042686371260862484479033200887759548487764581502225405633926535860870308992632461484912399234204905316490477703060075515574494535951345182075552102192061123850495427109647316135342706676121675648536536598820217977156356322101740554471054430770994735763286269254127492641725140503274544866484722181070842065508328671495660106944818157810057723073689260661105863609917072882881542451686062735277928470920912305457636525992399798872194367257124683982531716717255842848036545546562727382454522493171717775541647844310117124507385511743462498879469564737724915910077612175198051345493814700149163289099925575249414011069419263225844570817630566299992300115867464501272686168516498471275815785089181066253736158645537476031871955575653945927201268362338629034859053621450778436077207393565523517379440504080380279110705224347889860992556464751337208901224954630630387685960463919704511174745192500093543259693200690085522328922110664029452949356410599096617642370575735920570560585019333576191228386966160138051170678817412215000160464606462415367127844275055959424582701700753101012860479178546436723845354582619717338746575474375060706197344274515793866665461102355443863994441829204314821750969711448929815671546266848778768628659573987559897152125790440982550920733395762672184674789087245137370544369258541627787567624778132362722057811602609406310429337934274421407451957846460315335912670410517916602134797669175794273597978393935423718202260207586403964677372502459256375249398848393930342543058649389355629212130273816215106938277342220962177868890160366484777530504825894304821104954607840423421178570597769511860050241084764395017655447228939803921048281216765268100921188635684464304241590912066369976929343014875792202788805758608081127832467955800498441119266064855503321910896536796843111718335654838283196734704700003916313241650365260734172809424244694254467324509708709134631489372124153415299019262592117899168897670270555442825331279389894324447070401571522473262021133489722068341689373592927936734977429056982327983552775101893121984607811052769910890532434393940963968630828543499406460492541824457045161516147875622944004290230266135361796492216348167457412430758329416795722013877030300365232593977927542360207164412685215682186981682455421648755394093884083727672518109896968365200921860791088808496788286307930030095374803937106338271479023003774726570165562806194823239414293239969555705851179164506801666045252321661490113031747069216117130417367385801222443651420070334036695111908892323462360308332813889291239212100841985493114572783431253132955920449884255754405534931744520197975045202611296704625545525203334576487159091772469445775184502006649174006235496857616161144676013191472843307401264307855043702839360033751604962667427291149411654107553258709155901586475031878644350697105645556364027200606787265712126214444563002154228677617820980917921697012242928594650481387071618350222778867564287543900326496161299848975905623466128803804490332528122756965548753430465715852850823136067024158275172969381560360635122753118886245139906900440453965040062716891477954866337621801712022141285985334310717192996634606062814867147112290514341566354450233052523744108502532980261727771888813050628694226103771936527431973861145482412055086056821274901285844919637488493708567446263353447141877701327310177241437942351374722441542271170969304400184514442946943056263684750475261923690403544567286569950644942244896136229453738341643328073406770302344302701199995365657733871425922793882811675950720165216106689413156069315525020717619738349025091863136019041785518877672690127049429454148213732905805233460224255237572636800838709047937828436891730274643654647783530823606285446400798078454419019249151517725983966495790548780271392348784629492889380657220204042123530427977020066810438776576245185847972520184361158142982132723329647233896807730159858140351420389568798877701281854101190443385962184178158611554390369267895949531995970652696864889899021527655723184946703828212209237772982648194059935945056515158360000940299327820096603009731763548726351222212538862831981221820662687205831026202443954849175753816859228250411110640814472673454466949316173647715735467857524844503221930239992520516083458379396022968116924991138432477469172018887885474736368124479853290139511726044645317736336571973124812560444084853953876092971091914615639288361675030765312026980893480437492705349922046973624038428208115665982522308591961745400339561621948487769404685617320919959043932742710385254543452925232055656231784526412051703969658694351015620029135433061185688367845927293559163662296556925780364480317641587042985386316956562319722937928342191110917965965420254972891390025966514826937444579481959156893645557725406739756009907864084409101565978784206243132722412944157728230004470889006777179048214352055622505089375357991117662515193795727998291806425866566374059073357232388365809004568840869073957679457974011890259361848118196292543326695591570604185274438158714205002890304759897528337531011729904077817500661483463671483756231499723369152106832923471537054393882008779915373631365063794869713525014910604125183726505266031647073205857864438065330527468498380374888244513718436763587245272470741736210581729283122545050506214631172930807102141409151630947128969416213683827050702681309299186555013440106701657515652178215909185587494970753963197826523061032047621789152708848223923163307677495248965907637227257629653178596002101029295840043326587936585822417345263125755265367428831435803105491615286430982392186212662884447187226094535552518546161901106526318775669689263778908422287034087476770657266954132624838779537620836852972298932691255289494154226407374006598229518052707409674167200606457787008261496627293038371951013833079504342735098510586089558527686409991915428785001497008751855628730942302902797246521797658760317249808577876689165049161999641601331886474892611708111825907410275218866112133894449754648834633777702653434327331512194877329412942225234749589277878953924542925447544748518562039333353852128203731223655278709930893608906778612338652414227791357892286870458243097652805829503385655359052122032600018623176434440134209960980678757563384045984951940892379081191353118473988258969769085265236681599579543126873400062499480397752904181693672569502371265848271472475753436829517650601389515692689050172364055850308745302625972269990991686509302247718765997324049915575362807691123663694217706960451902043163047401761978933413100431961430878000393649691683087267346250639473473436983783501508431638775562093665968868224302141235929023295663636068756379098134104810344730064543176292518980196246379974047687734503050920871153948844599268695536664643277295895051291738245264092244213109225919562281328823760266980583530440827034148628411413968956574967485699357464181501147588889741389092375481998639694543614858876895745866058116506757832503537680803933448712924164676019828704603275191981740350008296863093311988744638809982589256767966629118360846232932972933644142440019347970134684133858208940265434257761282938739541755494544885427566756722078017749606477928751942121253939488856407857691965878689705655824621248139194301671629274772051426182606718160987938361496180446539645736083654046044263361902776007953923588401398434784401397082933589092532670716426387975718377805618692900131855093711810218176735016190410681732221847962308730576843516024681750791698230277097858595995139051012665101577200269937666161161044073697019538670918996748633476938285053155968464473230455640770240109084974970050584339695835837301091531457794094309283621499471581836957558394566167097261683846005714477212318421487008044776339801729080800315005711610230627993257649132400664254543261953006687348042736372958930560350785694281443041231985536656020326283081657361269778896724774073009772467947082272952159748368038321932239425596154652613926760225975897648279500373450887431973783187792261770078613156638555579043985883534119439214757208043341188632507512084893299492224015855605226887215710968267809496760941748380719445959185474329265198152556581250221986621363126861593864876249941657708821890503550691720178817279375659337111754564641096020037344088381275771124841565374822936176260943808813446309811766982539455173572605698447405768219913949325875830704287940747503940949824728017539067274706622486195100865037931179685140209908849950538143459041344985715899434665810073734138174728775969694158456507792297271097453052400374935407653302197871842505589604125859278116117958647912341199222852713200094822789278560903202668552346118428349684163244489631822247983457982627048764938337414192953941242166120610140497747217755084762234613323942570733713664542774849631675298509517936325136913108044341873082816338785841816898677812300821749488439695644639198040457787855048814054003698342898810734277598629401232542571891911024425385055495297111120400903360992959622829187779090388083268970215003376607444979439616795438168334007919004134131137877206112382477215306361674121920483585132157451063192662847634491652564641883317867585662015038124126751722878381664145718943577955012224907806187691043442944152274523974991514837134371367412436226145585434049570883399426531570455597157881208993352861619576301633483606591815147362329509292222336835170425536960497094624246453909457924287766427901451770094589252437194391653084754081658398426692560643607955914395212529129227938593946410765955727790274334038379617003994263849876581314321478117034761586242645093266480674498271758599832747405494458998282389120633807959454068136523806246116624317739336034580215624006960424928202820718616190500384237530526960366981583073766126235487331368882539060291409908713729233508607468315245645807936778273563046658468826640612807703994528907295716920789616622174479203738954854778961651126668057726403467264388604982122595779555668723536990647497776656981239416462202647137952332214553466400516299499272307346580734903222781770947521371030053823487927150511366413945660532824860457651719619685986378471854765578748967986495139324498096987536748357141807954437173605713473736615099279982045807285578688423212438461075586331424200241947633384662645240566004533701369308322236985123918938096991481432832209963319331106664789515863502369916898783768270726177441624511218569782741380548023026810483001573673934931913137153839108846334423133814452093798811929634839413081396416380594001413679587056365244308703688922840097892259227606562456235255817366247093513864003412099557640128805880444926998662625193227163659193316262683497387098660621204012195910174749415939208593035544687545199707554831401938530038911836050923881761234392741768201069006219998977205785309406874924802982759573252629162681769039036481392336080941483064178726335159064866777587617867355213596103946334732910449692706316020146404118698389864677636787905529985049178943809692938061221064266107423470554924023844275944660253946530821176423326475428052191918692496567710089081779741391216135303636087113011547335821843414938451712748062948064528086942786752594978872566112669854992891906600812014952245326493294170788846316695181560455859947706739769907933315101521716199626200719423420323321531680877470678493531296753565439844940630504462409113952544349306347144859248534581378795488793459370355354529874702901093449887730610149011510615913068928947854047259741371508855200246354661040208979231204569553729133683228672288928476357460217197057222228753441937594583973895139465766562469885600208951882944022769537779526709110062764302677022560152224313687824241884750053111776051105741122555170833556802654323933064800817832803122867116378732014955671924595225582513334148258837675668012216838396066373938384636122401032446239176058307887816218222177610429679976421610325185416989391440859967455473157160446177148396056626892599234532647729432805435077005456065833374244925814547091058262595746386435360538738204097066771325333523424692837457268403352365487981501257805142097155871414425708632235357141879520748250712276912029921329777881178042773588469891293305698656669062819858283377274441264244217744985702495067813839458291799434591329826851193572907259220233158549893546832385398707414027902870642638816974802622102647686123938076246865136400855544281318493155221932117516401264807854408998396078244070087878103518206320955328143099128754445224959902552350475100163562911731359362086148186002688704305596878203974158762499039430165640902502331405266427988139600592236493561346693672262668761288924125777903060892716598357885068881582674299614736165763303449918778726363793060384987988394322563672627467981601830991999758385185398703982404349092247685911358532434355532247981947373883373989824684314324704300032662051833928125937999109100344855048383671661236266909812821222814650438193117852209745990725119236416013082949968091172187541265464723081596119329980197021187773621131784843372921242549668039695840401483289885297214171990716838202844428852921087183180777307367698254562913807726419342203126924741636589434517021615397733365485895691816088764966542816171467244046124338899507796037290419485731321332050983459705438486316036179357574631591786547107499231571342217538562451540876213202432953979839392586127267422839288959642969220782183579427315006095174023883747402694372847722376653551116943597954177489784694666762873038189673355012691232838284191342579931932699318662879199761318943827673266268213705611453601552187961819286530607215819606938354316596757086023929952876505604754727340983057259903462545463075144525119026789109358553610781857631279538731955346442221622834464878462272922311968255660354080275936497928857965735151734719517209798393971032740339634405067149944072404545201851521391207032349253722570338506507183980392572705428702784855353295044689694639240177012734517308889394219743209554587598389483785483612999256433221480627615835145024790369209418279681412606660340023076780226145787251431106343265196183616657773552722891065360973423129418414297273579935130253857195158264087211346073361018159226774770362763167140481728751078165171627481080506962555240482761416092041276033430176460851422952753798759912296826304422376817301781041274817235573124477524602362682235230416875501672394193836506585551548925629468478121123245403730092087901082537941235679310228072802638574656783640856794748503275421407460810213548520243034996485487298493315432942417118851361488269641689772804328729115768922508011288065729570173568757336817998911207725285371262250151229337132180024178099646595071224046132535005103318269331560577224788162277633610258165555975054514309157827740726741158386370696375284829380178747755585059154917619877193117024062257503999522014775656015605513709689290180065929370470046893760648735559220469172604701176513573940694970340409932083730477971900324233583876040024818593357790368288672976455975390672413425425951248563819894164120910839737124053222791386891509288632670646873029370015439204640243048227656153251094983335048678436815965325175932938408829630954065363084910458863444131831888326420001431254634825446250576430992691363411401650417677063459147648770485884009275376136563984327611894286221951007945172352979482963385581634638797868667724498349018717389510070218768465550765037284253800284640057506448064112616162758764611092574727557042207157612192576386005458321814187052975143687109448985520956709491071559451399875881289064457577814797371950839176426873591107565859099564095623623796766182178758994938201075417222545134983413065724614893824816620967187860801148136058285261271501215672785223717303535679130330290351079251375488884894619747634791236470926312020886863232505095873129074980915467300065997114177140378586837248984827261624332943372801214731787910880731247871881178648961472763108246231709529379088922130908605760104739393052535807995215014075011507119437026756664745898280125943328468223234077516834195195887038173489787442045171330067047962952642283217882461551276644807559416402391597261085938518948242777377359577108243774328086094037107867573591636878680782731112011669991220884584963408108295716471410543884461449296158951970028424512204747726440931518918110404937691530705932394307255821159232995133988003835378307232057432795429818187033573228543837455509177204321284560725295707445518434993466869414978322361571530193066310232372235955245013738577801140088423937064207606421421466248150405800747055228241197182734155554818628749951866656679367788734098173670123055818059893410113825098862476587270312153147876635486289367513178941076102925799265467826011329683285517182029722401968299222947131592434917870917890749546206850024329318771940364904174892819253143460381145461137997459660519121194786549924563472940938445633933271225162924442256733348478728503080258871695309253655044646068703495570925179267924538940725811923227628777593849211763792761396759524572915312601987206937942535717076635896966982001487267089244110171172256628466488056524533888766109366218783733011516565403372022770433720742628569102854744322223996650061176547408550853175633495450617140943593014936691573787449214856834967391470892893087762490452694166121978186813515883466702314265416196200615107883473763777938268314676370751421124014906861608201772370962713149560048158411392702298112965077042870445829678900725182631825587597209368283156829077603205475333470454607398239658406116612905801585993973493911080668836772071321047896573262126147017156240327860456035697377090590212610596440186875268223515134143375278339918427096049303959818203393927938120565929374236670130740706109741018234184409568733813348472902900614574830990736310099850283907465731465849996641089939476209107345642284235135160705672481494697741499800708224536490128415494654305542265652637704553439120020217959297625138393647406330001240823513194434510851919416005036784883430553740343089724234606663865782491723486020747124618603730388234761043746021109385471729945939589721729340690887562219910489689031373687045882595563868331578446042010671062632457662034021280183104787229627400341303542079172532494607506964240645150999889074711435354057182714300900042430074631122096677669894390620936225218164979258373160583182509795148033448544028646127781581383046265322001775306075448649234545331486030946909143042734122291687413250114077624828254852852131949539792804313362075880290583463314277336373836099999060298147445025365823644409367949192652511191579760020738541603085241148772786353695940779355881426790887803023418526907597066221078358681723366882774567208496473176822190923477161238716422402542082521007168852622441503420242208697182196137123667685396502046739126439268626031071966833770746877225328710449277263560710795745363690167295535255428121156264483677932893570106333112049358954378959695951011045053953830490755935463377938923105811925202417975420759002722703308032461127724575169321876774954230728070013605098292615690429440763510421485083539077207484445398499817991125412205730193210478919345217022215672278596103418407450158132693409835381927436848921801837262192797442580471905391117449175369284637354524039988298967767896950066882517641174628567896170751112691314451244996656276260751407896549270514693250533334017261177165062560599518866374352414488739084236956693763511084074386102345764349934246110917190523819653550094120979098210001179559743249907265096212387130039639060001879963892338463664879620164067047034772513560222225987074509433302296686293604123348391616787410177489963103633688828012096339661038930834742287802267845994201253323835412267184221875940604916455554740447821623770938182867779593751225429494457299584830235839670370979602231495189075204332412150057318470756723047430762343822453780390583738969031185762037243312408263029106633170733466534191026326645632226667241019695764283469620579267869888381794381091472005116716450155368322588271548321811519288785103393965433802797645736842255371599067289444997965219590554272502555230774439021109090924226130750567480226077776338021604475584508384583199097881995168223385739091505027497742514321060652953184817712874199687928984141189815871618746268374316166326139855280027803920691088937654552390255803108659260621479180476795974243934523993501620254389452750407038694348896071564824541066500929181761653754761449876808351611754485142905916536778861971085861606832288386303668820613622054395937788132857621599657483894681145249198079318102628610003519172335067512858061305980376839840517854908365798245425950956923543759659136980212355459510173270636761750269356193476365936504284741778516452897298986380588623383318470609096537199940224274362068122824606680452399807342253263700566525082576537471914494430797783668090222357279158771085272387453618177860473909640719962758657431088940252021239595907542981436976847825389765205951522390372095331645281676905907641541061799017827361173304081475135382358626520915428293492089409308950013362315051414531764270075299061393111627627365912593304611015576459643991047614475957710582374163591297969733622725363400648121480941651889016691244277388973767972464815644350203595892511262699129063977169077126871180256826338982016805156067421757063220125601544127563134049324458945919920408055013020524008311257309203203587192495933619027187145557134754750893585469336727405881478962888248095283880104043518011139085372747713283987817148854475299554864242777414911144858615153524250431138365927778821829344964450760744714728493342573209462251034396202366537881506921859733402147487801345442451441854500802390869463745155995579429205159656208122019939571606472994315143553561585660735866257042712354106282624661067222972306645707517151242032697254034006871476266435477091026529035577122421156795333653870596071740685310103813979145904274910894350540738675745413185367511908345254685478197148623056406817455874435225374776375748706304355634619475766013576643560422174953058331359906072983507883662388635229234317256157305363260393312583936164502437382050310377234028964341185145258530536185116316770158072974723260242841651068323323757430963148962954106563444805466481615715327477893099456660323853865190244998385067874771074683627123140980852665871680531208718837101446902642002964314577483462000874525054437717857054802325144864192102238965364524178479575943118485973623045047436720790035830148193877360756514170104136535525482051170138486066348496740521527538597502594086047555187479490498572638705960881382683753118836841499212682643568666857623581085699465946457638901286897386784939812374928773983573419564953245572033712730399574640013888608276821727065389184168859087522706499697030385681637990164791484484716730777347869766417050691302677554111678317608198350906276175209093865875045810340708579400918369301533671966296586846965335208246163198983700096770308093883200572668380832141895700575200462485672162391527655783200188195217416714156010302816618180404547585260799497567363816923455313353291675368682029721127898791164613624751261800909770089597647537019802955531251435705024483242735412624399735922972807966732421390856945634735939349545422406164801292774327172827325798715971757620038776540553810899776940496734068580240007921992986341644759873467704299759401962927302237442941850812149003650036545288755241270663200228528079324604333975652433617419306561841051401635877233044943657066584174683647895968714417382316867561191598367986381804555419539957022283287084804777561254779983085001514444521782596170373844877753725773727328576985197180652239963153354410682071064024922704249454317485674272439050638391853757520915584552983500926958725976930692237708381218212476375853384944156394259314393664547528426220157558638146317811452843238403267991616912599553076335036613518703816205696657421847765100025482487405814836253205144118925837769996335790668434102605839735546049304392673672884239104691071843996149960489010362303808498926222124393056474999882352857586177469493621696096416721996354987850577856500023920500026058652612364081280420751384619338256523874548834605469637158402739535650020165326220919006933071045665936020394105529832380290295924102617682848500837019150038173838277999387060775821034761193065570148009977963179787283610059100543834713466365281277561172921649879893683719569387959618058404941628404371884621026489505404634415751598630991390352501187494380629973812890532139878605772915945110823038119313365822761191597946473893413432505667770048984784221707733329964899090802057337395335506527650759145020325932955065703102308130903836939660489418454630423467335736831654667082739395563646073964183424803385484418525776946626092535094271516583949920498046584413455838883202063193753024396085253537193476506187313064598205369175375706703138828857952612673728178202903372893275116308202213445677213537296320432422151392899891032900626355641075738076953357184217754956345201934316596440024911532443368164380325251311992424549176053275736032601803596782554980623845729825333924856894668002356126998979777963279039242225407401564106113677343663647453884752729189463287154026567558423967781215319058984428425036271566117925359617063215383080535229790420847288968948722299319925696720955192548102531884311435042975648456300941509736560211408828230057021975734629316437735200569410096118818338757521487309453171631882101328261180480514918643140763208129957640478686292474378667419123708606767784845202517825827599749890408107931434206591367543867059967986313827874583499573417864794190992210548752932574140187272763194555612679651692730684153697699860214891710499634507896072241495526117641192004834975653664090483791359290008304216275870683422650021190392417087921517869475400129920542729007618892136349909352171483680149295509546366620584539379367368745394352050372499550770687242035130660154517727876752141436164194519788138057703757855523534508218430485306866096186861812565684270532365958997251179368904080099381294846914548781708117378395740684272035979132289740773695156933298976334518320717588033026199456992253507328433335305264724108573259884599563043572821060191347557917969822187218920885029398397201858785887800840558388825382524605435188634812964768969991035950531105990697094107677047324639738892431157531312333543505227610940304987932828033673787645105322114179971147763498830804838649239524830417334803278198232639005746165765752906019582543819829762130876931808954609847919540644301511163463376892342883140133280845675419978168695440788347203446089587352568092374155867040506219052109881449213095314504114627369604397456227828529440226478925839644628820932184515855495381443865905159953181000437771709944887477136144584943110122121908461264711143827420624321233338242907066721875041865247034045841201467608139212131728640569658429864902262435627630853444338416917320883354198229115884409381335969841262498452915315291374818158608186204763585221796813775205481881015323674968964791549893528292989471754718602041532149785295949758652449192624719837001852399829998677684738059714993633839154155068319564148584020755887507963310409121466118979887304680797113760989868561233376523341755958018462641735022232090441967724636496274062647223890215326976828052597028915294742489384652849523515690205704710061569199041527751957834961943084729975045262898804371113399786356442624341122190216553084565778545529596818041538447986040559504757868412190330002944173736247589335189742093650469613562689663210559538107445063461552994822151368446790778179170610736765688907874240902451427581393057076791345067367457612289594125251357104851417313165563941482511723865659453376526997191249515637883376055407962663054276025827831321401697494333731345263416995736284447541198237239030431720145453332242721062767429025132139382727869158829407453539945813783096436964433634999429413611446482402279157765328421962314101058252213881821631362150658242400329102442436533192782827072627849624952661709707296467929842089087840531378772639181327206167377074871279466341050901686310517564696116899593179270562835297859284747127297892862314327485902082012960399791181983310508487405493405672276661505071781063092469537925255478528973816555278818536064367472399259787582415536068233866758695798450464748730361777797287706120393482711311169818366212466815755432822126081489480809222242729132263498710699005840103707202590211157084716998514894954909222840859770638569484240890777514770606751838288746766509080117087792570070462933610877501709660218820366886763817039919709831074972158064425292065758856436015353993627880589262669045516453733175700003411358610589099618234394893096131170147909435677341244841453925205265165292536766390357863677393990155029465594306262311486098406995183043534115536575430914564592904656459800400134175820983422222587568717382644818649877927337948876617899885446511643895148451643471860308820395417873957622581604629646526779358568800999429078887141269314193497413991304082351973899773367395182109209159221966962217358721796846089864861451736316366314293639825089262389071646110190526829098115887703951770520754920340363436541333078850070353234586975937813623798005939118823103096921900845170115729348509854986623160345010763806293313378986393696129127204957899389330256112595558836645037254059759176585760047133017709974901560275118108341238697531389290340796311436675986594518495237094656369763708359112874269948909054406777287572469963421819570426007929583033414055168009419624188992789874251034786854412293272472212784059090698814121087322323366505609969160992397247224066064890498433703120843769635488516697901829896564038283519150279809158881897057934501669549316012299743097834879890048457348809280542486075214415026482361764244325005652938598001757257845750791578414994335439367153857479821817635894345305060151469216392594663549985099080193678991381699943297832310391736052026099396681750604630767412099480109718563672206502893850862816221353483583421650736558635699169632950684195227929203725892025016827014972088625627428130578733104528346596736331352315225646133378155976227095003534485033885236934650423841677255532546917964183442575512430276474492384437088618657502756143668987122079409333662542957630314790815642074279881925886809938234691469680364105750166693938893125853065791204176995985673816242490126098176060169861826996494690414145284020647881923952929062082671950772896853197514694367756074616707505399376407688779428797844513477629389918611558786183205170854187058659526433179313923017573245739909713006351543949122432032571632454694525980459323525245879130994775917993710369454494374694601908501274585901462590679647641778869992398759843772587060937800157619135057452418321020907715125984170245556928364936838450883386960042447383545013077192089828748869861271206720803758822599263888662865513651185859856801711059301227002640179332674051501948444261972004829841125577465820256658264898932767889967937162772070544621129553573029868510770775513337246739628186911067381953196810095322962647787823345989735345134861880771909232213113674191579947463780568538631722187261315005026799465287075531851242626232306350824885342841825435173474032055834656759996513596244407405231837808654937927018565635347193542368619643356750316490653191068438734214624989332607879856989861324882597357260246236431419701702789180668035377003465908819565821132236233818843866339979335624262611485734904526428352117228533236646651800788938834268113877533376798729007657704475198356464983142510454740206440463966702078321295417852015655328681720069855009645231930472372106228329176198740014165426839699778857972926861711281689960440595143645471939283569063176666241735068216593574009836536389240133346849266642335970220511130492038523471758155961803923677485252362659917067738399998045870925424915182556835292448505946906895086011465043731518548297937944118802831705951833250552330624660526122416960784309489598644126347292964078315220281487128810072441889411264747638974922958678842767143380876302173233765415394746951235539435526567487771059165355264382097324504596360530103819895922833268881587415094553721935923241673008744235591986456771630864209601724661370335725835405457397702909407887179823334040959186063979869588612296029925530087422749743314714999247047849965122559634416917905975373926794397191680411894499763799501800253774369777586141802834758844043807725538534124567235517867430766858625697478858721300519561822015087852252709104200861698504705170537694586625959566883062247558367050390760345448913735468160531219676602870288607943259416739656954533600969469310699227402575577375761765548437635852397501038510386685413414026941341578719755381140772536818044250837093068367776197174897659613662914835849477260876942464220512762052536757732781316566678177772031664040440048443554004372331434808000872857243272217452455638817822758275270475003038321934123136313124178448090441620070306322112184873990659648661906864424858591152923790466925030118484808855783979838370179767504351236902307257714847421958922473760811443943169730926399664801239757139267502456733124867330023351077924244435229656814607898277899316005385834257153661320952182492607393449730929084284142986483674689479199277593556675032149656554066864836014851164806181625417742629802066043386771526171013172445241525799926272759034090065427803720406500821465963342598279059703360748429362217483411634214359406919815611251837535728170711394263326326602653541014760774580761777210799795149830542668342423599204095716884599916819470436691338454757092827045018998741228488177938697149352566884374189945415627472555475852187085513601584353500673022680677834813142681229749662515102969622332757001259694546921558409016994976558712742987656084119390624843263602853295288588229797680362385621173089407483674185943614976356537963540912923061771021098379033534610251550713662287765162804616138214364756520940437625094289602562026112089916806990591872445623524276828709679817155090605681340364899335287167969176744738231315316642647273579874783245277748335581143624279437205133032407846378793231282050747634924130252469648255640950706241265477545522650979186689617028882370934159449882364133315049074962234717868037719589796251406554288151493315144257579553640578119061605745490193184522805440670794972850512655849882790499520379308269555697642694650707164561217546792583270202294108912749496784235778126324549358462817781182920493215286597137990920891138344568927848484040975437851248017961795470198751829747317440659207591234194303186376312312625539981058296761202690925931031440297181889633414131483251260039579993299904466549537592308402690486294513090005540829241857937208712774946544748380882340330365977641948406191943979691602097135260160349877572745844348971028338455774736111007242766719259799014803061181149028604749887614290785398296085219674771529633751206987452820568139643992091059593832761975466813435047664794106282431208514022065436340091430947135457253335659604213997636380871958521222793462592795334521824161096830045187335419696994372346642653722131621099726864577374946744830664247390433303588471110344896059594777915379587205116101391569104371992974687408335782489628573244779127078407006582215890872776138582956558221415989301023228102612697876538823620600895145133494935173532339191804649232398444069216758048994119716465421089675007412656083946410979415277440865095645413196601107367952489407672555928794852187258174041229339522698104826331000812598048713646125398829202161379082991548849042120765036385596431513057778994146328424890871351969243016280294998890153620942230132046490929528661273006623206037807752581014106357455842729051449645385251306501742235261398760933255599861466583572007619845670464224503684944877987508836835683002432646792533744894790334143717765666715473197785536919455688509470088944472548243496715975864163998179619932685593763870508005036659161997051069187009829970082271009981127851360554210122040008226930009050255996711391321739010171713154970129619212690377923679618064789998669541719386398689933646954590141269715271013697605089579844138987313106949869417243046848345374363060077410634188447189640708604110807879221063194205254928747373934720090269570123757986719166557267967718614670197201479988438354962760358647386156734514484061589848686843267968822883856497310619982928109487998091220055133576977548895833850289079897849622645174053605392985174338289753231351669270322668987460484183665914730039012715560527346889720452004315867061118188437702548613084905720995887692192289525539420650453198701822221354225433121160057306431445416238720365482164368475234651216040327544159240923123252969097478851450155100579953778730235174376152675435119391196293761372249806894108943566228678549771259915100851285104391818334571644816455743633497798224484420212060114980080826428009151156150061197850280636493092121216741606792890786786198475023907897582761714069059719187094999307765090538726976438099789330343349906698836241309773617280977270995729517328403904995654948614355878637834919164635647195983072946899811648749531691405041626444500841014151676903414504067395850449807290303878449348470173524005142094344587858862544086284802756507280510799348786342895397777129069979370701954397793453138566797080212031127729996678215372005892058666949624228926488156796894833014681556142388951111943595322085943022722116447698000341930847305336971507403649605476705077043759937769412014084963008228867462432741733951415933494279687356351089811085367650810079551714885900665074584841844108606554666755629314495025625483125545869426318711822911900273483910984293384835877874886943984794791454629377019594183433574046845459557287610754111364680857170708046303575162760453254447368244701792025073079960882288175591876009103307319794464815109837024466291464140835007204517754377678706634092455044587553915013401416602400760388475167956052029275784073821551215390345677908332836400805853153746222853901728199868108231645163127697191479202249515166278127513964455391861796992981095751070478274859322008486208676533598339238052721345279780516069146621079985981384418486470428703802631016749118650165684198094334181954841462059361606883395922586441003487551712529852327181469472520759228664685727413956185991731801756898769292753945749722353911681768351191245588268790280451223608593223854477453774352630915211565477457786036919616102018115851694144965817598323160774342705174789905969799765123935107241898887524433394124233359313980799819063368921195039526594380893898075862513009423590311797639599876952470928751859196394286246623353729629574377004382459114989412668283924330179031011360456553403702336203142264016677962068581535677162641431546152735198329722773819695171845962407869879758306082628721352484251879840863518733443845642062824824501578010194229226576763762927279805008716104848623161888219986814847119682024171123126787055326104349552178642961462885740696112111507375286431043646088164464028690784542008563168397753747018604621057532653401739355663464683696799801516940995990941050440942010925575768032391495623702786040597231094386388650483024979283141278490977923739769902805760970727831817561237827433036917571607280142581745310979117282297595648072928899006069602806207356467899535892526581277640737880329355266971021481409765524993716069945619379715308771401083746626019475072161871012024468274166035183551280903158216618386106635576807714098705332698093495741584765125546585111456194599099224052573169294372243767225043140382920086730920374307894101774063038998738061020177196601231949208120797656445607166374376763839321183440402241888204337038882992746139004919214839965064769050911370108517558649087245541507670193146210079363742328076917743979581218309305168429883192620060990036849498799340788848002844885017792456602852065387266856852139856587497874905457803899405065238113509558783998227530441335809390639325670511479374916151890140471389555364004005827919976664293858336567375350525344085440178760136496667984706818062228555464841274712975018785219194562740417300446401062583160787652625346895216355761267478430397932446043537727218838124191417646036168855776108315783785229226400117085395821168051477480754656950742105609047496572706017815578876619708404994171850108579713583643658719647743744665930735432576282599913712987834230396108800538519401946075482900380695030332153704092719192348460985312245757002399065105568561101637768142431430831572617261695675889408834662293202792188749733008849885465443631035727971112693568255283965938718806673095101870508058909765931587084720067278999009337661047051438483228364197756853277589512476792008992164482838187913715697280678052409311742154274671564830304270723601646667711585428354788385827823486300217368338928724842986450505214051383955233751833093512287158803382808914890091417864332419888007113056470688014018612812384648132034688473730268214699227649333120696845354457938143804986364660287150444738619130370584792279678371121152764368709723835552659347611746124222137097056354893138002701995408835284438682951693305163661367991524876130617873609956674344432106730737285115951796828951935119915348897436866730423176462792084898319929753728889607739993674449202420576703614285808288523621504837239697434628620374148872012402952987731909002730046676008509358553191361070001071465721667619166452228571236886411581180950849634733177109948653451757119693051709484044429205346765979247763348093980262958058247857324927949566078952241722601057718453146747636043038964562428051560074193646526641404350986896279298869740589227086754593852336842296335195963612066044108362021743513841034967196342831979085914532358872699696507179869339195324471807420944045376981335283186272790903747404119792741078809478019715568855652663718677460561758280378513657657831276579484925686633947538096871497507547587095393221271597923372471236946973155370769776151202009773187108655329924844100818302969472941908459588609771239555837366974424814394019705823408120703298261030091235233638442748454724481136876450129280369736376797963652551722955312660253371540043334248049345910103836079823449163272342344760567953765191820262812258541802295602674079398746368289216342483265738658166012926939872553360686850014115208873208548407439058508967621065732928932367207416347786784184925243610557753430363614524069385512080762013456893994096577558459115621383720868256865450824476307819076800390228440561688432361816926586158445412350427748997471406933852095044996072098537165197764916902567527716034457741939885182254979193696485600750842262949768966867444728092929946481393395454418545545451407023333340356531357367768596455231964971102845469352731394180301116574567174308115551661665431222998068970032205000025868701487493819314779909474152409823425574785811249846870066308851687628863166066605301250698525750750920683434168774294770021705040799405649014923796752098409903631608687523764855939722355321616171559976774049187225343229710414494575945859907689058823467000067267314390307954302571415182378983184606192801059757725277414614924863952991753674406206104011567031387877436507844913373577400437293977098268384743193793463816407818861227026634656666439732551490323096648882536370140638564208706972933120092364147389636005999648812677857032647359754308722629250848826301751232898868113375829955747882700764550922763520177613587557391360673322612354101912744036453749795165507537753862497301799724744219488373117341832999052172534746269660954667285356516243746139519859767677421931471760665374702978582581468240720242785013996925929281999969487377946474235519650997214555949076494748736614144616314155022728208851261709944206553899634863118750191743548663782816973256001094445699264839297408613940755671215054415130537605446768992532561012311283228683516489161014041687414956587064798396448333868464609798764434464098389327839064129402993218981003011846403826279025051534030632250866087913838095125398748996069667059462470638342121660249196239821098453876215834772703162907921603263532571822710207362424911653488848041395592429159003818838007660460983306933567200726824343668797463254898615892068918218179916737144369518042413730280666654811872575976956633931109701717115303632265224890050221316128419364797885973168426157852184115830219021715987545906170052344943831102230346407453977395400490684205126431792529169380492990063686208155294652338460051072627598795952544525908810610304993349981576973313451635426167236958423962591344461099755517894156822184927452759600592594808713319525347921456276254157143627840882097222822757438696352912344041893810523836835792197052532709346316529587385525507103120651306043344448261786819362550718380071809921094736525114466831679864630932484930830903085400772113888320598142120024663052131149854572814431679844796289056408266034584007194400073073625320459214774447860699098074468310846246130612769335081122419417001391053784419052696570146738225682609481965705746965072308435589873369254665907434770130522224316569840685682439091362351491521171154381926606346133877689224190430104460970290720686883828953434815949885630712019761967747235048890736246961366753153157058468221701242919726986267416433926661268407789187653425715812844664848045413358040116300998700807575958643392839876260530108973581432031505391337518962080207224229396250862458136122950745463101286477061122411976769035417798951429510160101638876344068050536897353271193824740854041074792376592998836559767412052882614876218656293806840672936845408775055765664916691107748931193229238087614535560031070030105605583855861260015928127260675361969844671340300127941200652411605862021987624008959460776841927470509776663989608013078780819068034700250804344520119851048670077536551110281369577477710193161357976785719162820503836430674754888026612535115923930412429436158727639928427925428621448087684702870927033485905302267043710999131170969984288736062982542860358681835249172571150599230057486694669441570526950128065421897346146171541077462372709878707071729730164952580542214154053028214756911111325284392601419047307322740140752494067309357994438541321263787367568065871602320959491208389104423833315208624157695765247540981734504463578573122298843722006425277142721539326959725803495647366686220456317263733864557102019300724909961307327905355634761083321842649084396879786124842349588709107936425435956102265422305336002352923370092936806666800943201380550808688990861528249828081858084770781897807188350414521026801537139574445349638749118011575271157564365550612564386151440648715976451363132492214164581688773068323267148476822177175070082617843399798587539070997336493870376790427904262969335016701130659910219774433030355969914869113293702108695952240719784634883723106043854324386687157615607092462791283925194732966223927716171880234818422595866400437646321950747675911366606415730913271909752678222063084727191855616389672568862259020891525863864045357528863512220723606062321795102886515963868299925581544998157581946734318104863304816701118192725016106818245566726791049978881056866431354050818369611012366780781769225855902313961350327698934203424177532602421461058477954411070965286935470118140319786570254927366034392264484786152497823518346325502629389150123383443270077069065459065630297046961461101277945209630742780926118135117693483185323048305293354253149581608342721185396214596260886633679583696638040574879096243234717337397380634189935003284815298919594938317884334815714565707786016039497535065475100783991245748853212580463324493918494232374983922405650707229716821396981232880558643681893004301956587174331061942112106700155781878556621013534949677080830391971939732180194620095239789219556526638655992431309662695994344606911904544621277946017207318944815841585238162907468431801794574071828889921027206734882211879785541435648652109022292830792556102331229275894764057066502871965764199071315228219034447934216019708972495503286233982838632764618139532581444110850719178141166655574774139851098492402276216538981207449533358596971046278535778664274415935745339299014405109749777052954806249916459566690636978948561798919231265719354684653421981572033361668371569078558578801682584493059675037642089195110974514638823845661926719681731646383430224988858907233216452272324600939518129131826431498879107734630827667521652592135432246248698509492814227340234670091578346352611749079042201023349484596711838582623206818730556608375941834501795836672933199845571303565117384704435756838144270509228180949377924516293400571730210808765371478980328733693434590548138032199799067359037118255116933984562182752351616526228443384951945959579064251264882182011846054162956698378193743775721948288894486114660896594468028072893204892140495990406494882558169189474551036885192015800219002780387907520686260545271006323344968785367386834274037805117377543909766686721378233795594762865044167108380998446525866579939643641294833392756307703190578444505477156921402072259389738943909401226140474799638741333635285133334961456759402121358764898565361963683781238497576222779558953424772771908111330274344969303256461635414090756134345784086725705829677801134583916489174056960110868334433666424994008170479780493047937903581036885185893021628024477921598926525452461662726324317651895536711596618471144910268092076443634168443929230502795601641559609297108521244667285466472101874425874920063480898147527927782389914814583029007184798347966920856698349240073610993829708002884968638797778041850656162077538104809548838494743900769914539997403162450290757211457877042897126765996855881198734505890812875438144792830699223831558463498228215061339762686125973710197280331263183296303775557997675587171978692111190689553990656477246328012817389703509640421238832449241523032216129494358801115500709738650341918605346285171696031363096639374148432584207002767839380352891023550609441077701960336463856132556378427831486628453652657091447635235771921969153842564810603980429582386298203616658055681343942878767748984883718453566491183883541498464203467541436230186109665875664328626127272099853031487199277729628932629937236715969676286713598796091827069073534484906377476409175231510537859586417033142164874104203290529216943203498511050030411581650123026919203039465447263594226652110289388533350121161882812442383432132495544923619186361337894699621087277032804857513429373780871256473724456993134360875895367272550827527155889911963985409269504177173143557774190317212543432099265284263810981678816753079171847913544306506110221831623754997788566581000644809283024577832806542811616868563934990850031500373315914098245718692555538966724498134869042868841088639412804766251809951988941276512566219232723016911195188015202524238393245612803516713575513522818296838744167351110983266065408442347292334780791794428340598821002477194168311212761994260884272250891402787220821231305989249036781437013359620340811232187144965040656328303063020079381280074923908737440716729571114813643460440002921426352882522701940086520603232477514444023049075432832652086569351544562453870779532894577862630825379059315016228276778247442359422458656512492441960345732053653848061064406167235931117389575903487392725111023831018910665781651678309512764869955937780213881679963500009285982543285749280311235501612227561420053042102042396349891180593788128829276017827146417116330946711010012708232933515523690109943990812958052199159819682578920347591684895038251957677273999387994881110855050898943723752612496906210726407447711551230663622570156883521861065529005403346071465606064336498930718182458329478055111874379226038068814557249429429038628400452294701647284907310098208800817981838281494221595697360117410950862582395670835920368512797883462974232106782356477820216121913140454233690282164727389310886355984695416000710064052740282163896644884376138173781931156957457352416742141378693851178141863527149523261813934330270605119617460934697535744695895168120902963187653146624237039841802437167031173227666661097007528576064628297000392482294329529928208044502729458560118666921435401553310184517069391551295165494531694298010374283191192484400980074573751409435994073451271594544881686330736505989222141936241163577128923566863071309924669426711026139037050585986901135642146848267905679062607534789242520866153198697764001765857346339707104217547556835791887539333485567823992467640763545399648822830534897873195989880496467754054869072618360242653922285390900166059754325939972463778991695900106325405216983559893792794064852934140665659154597967626836700249084726508389339906608063591440188463733290014418564644233790500015753934312242664131608346904867907038107330033044174077426191365233051430629397281446776248130084349499649200989660950690240376864879439377444641388431655927442198655720737218802641593103785522967935348846236418692372336747727844763760940526365430922673182236825820881848261688743526300697506631798562303400815043305128801313932145176555735060343677702571951364270851873630966309126203264306655118592468185607154103934224229421624297330968108785186720610591640364771293452212735779957183034680522023681945869259999163277238930600843213021071321751636365825992837807729409060935579438959261687280497176254642262102132665254850320771677603445031780554730973438895453272283907188010882436723831914734916607070251803332720814032851391272557250342093056691309940578061472732849383684438753507148477675201175505107007090061835673243499267341482650827376483437779469466175415491244370918856241778569102652241713830760656533154934746519633433315866341650304538472302630617078105054478650962076430442263026645311577852662827230718111669754810947428667460771755576065681632348129483262658918953027610170345086010785538792387315958581437652104313791882952336354012367969306528788698805550150881910447460387438083301103499110023139347761433024104319676315489732841803366324814846163097172556849025300919631896921310140043341194932297930975620588593075461042760032538000094907548834599304623139137919872213046200172259049379311858111743128207438117249039784412225120263328371281478959552569692540451699423403119382169996184737863449158905968147431269061697794357808984109474336830617293630029706258393972242184792764375690364108252374537137252811520628870875295913914752756896543445195556677114507144701691318679401240994851118828204871772833205378542902363749446560616746429800734178349952496485799219470356923579470685926732087076005152584625745718833054087261569538879702257216809929235471289655161918784628406769730621947040069612624274465155524446679603647439144019421421160348500758608783556496464893043931283309975139677091600996010684021064576020959875409806663697994707513601907613419215363545691676381618408180805497704266786477083774212124436550009077538188333330206566040106304858935136653611222052512847489516376743423185161257529864880254026750830902955094594643285852663710524094763977739140938017623278930750312484426011479922988753190430926484665628828954880834445964160902797674560172036943595875617985322051008806614751084450371111605410158218716848823106329143453301210816305507788064066355447740512903809834506019128349440018759947167607275460587067235738211457280798910657355627109172601558358763970253454853168004856866109724136436924083189877182689615043263564503471821035798275057613983968450269984636056587222146926046896920430824894622445465434540182360425348721350322859246858853117351876049026117249106675814139914949009499846482439249383347165487582049575119037424796139030610661914729893369886933539118508752499214875923619681491019340301363572743197549788620377559325950526339922214697911062480903341929582515284731083800501454016312182745221509975691434772806002357744097652548226062594128834235635736871260196609401108914609876026823133399998388369735855612244360999286427178935485952668060488057587242338498510184634718961161447223049988543876922310001145850473385726650630014494604375519750061692161915817491867707693323668452744130777995269574266162934586916606213746747012954282328359129784627403418300488851581103948431013018769390110086004357003854181913298729494808484430016015138722533628706770438737233137997465374773039334590375170793751359123613061674042723399070658077788478463287408664128961152380432509825568068786002567291372138805065694779916303882419364306502801611074725333227896927140179648468334980414285621636901480060466031547351751632010974123917980419778414580828984198557390015230970399012900265477893768120103566939519845851240699018427952585153831865785123151542476714725419231624614905474707373795112512799071208300242000263513924971556781321964299807665699367123896883972493820575507992712703085105391293398701815608756094694234978638270044139814562302156969921496372373232384926851674737830987111385968935774103548480234661397115726503483881019400267238963484939338954116616050873136724695338090019111172547683335969796966496369759517695207953869255682575254474747273326741901231992339885623122848655108999924731287189319061197767536054168724959505927332611739310736014361133680964016001883572235923988376000138618935270262048825388182050236988030324285817981663156220786836606007592294784216301038400171848241000003384209936021585666697465392181540795958211524335319508080898967278402172947580669568484452899675798943207098608769013845297303267891816302986653997696107177266730732236423033806918370127274984532070468572405701238380107240333830426044054618722358662329663232658140112316924420406105250880138950033443160576590958915373034638655340906050516260814197957096792245134060043744946753106434742117386428864985300707492199640908078208906225605228720586945073538065239405592392030648952725119853588115309797226842928595722105027509611144143371018393490292126630169759390579570650861543794473233210913787263127934018985998088154519225038666112896290262144345384994106672144355955621105286053354133641541828751295459669273361140499856655627658134149794143443153523964500849866693815881689374405697124932020409713766529327117467188469963188489017616789385255109325659475565351220137388047319134411288142621537030692199995166523086294986788340965077556431252917832826822068952766690221704791989176410771024105901752491841256910399908304047249553660928816051654448436845666484892232588333756782742017100957227280320168882972892561860188176864341551416887944025120255948710614876164083777104291785779279523495178882461730834685105643016570194228223455362967541832674732881817963414992795258412468638022903801060396036514428461481005789238451863348369739217556151677736704922904228879853996317539826612228776917966254061867983384334000220829396771478489846936801178091269543307256626403940287709081829412237671323528908652395960994174546593116571442650883215667031212718386883243619030093258042033300690098195821063800336477975784773920533998009738275210922240615945184011519084685012259295272401415672223301772531580701217810352323619557867034756337696763583893157613304185059828538747874229220652406218159595661391874092327994754505848952025183913263131532236537264735520135231391868646411665452642837684373762302444457462527372548143219168747663677213094670089353672047458302327832423937279389186407506301703757925306201229766049878135971345447281565357442559368699422832152527699803167161167049865987811133316018372347879772819472492628927303375172774116859087027414525735229126696533876016635439108242552983610606163204521632193304838780813724559163864084820865867936005573946986559866478794924826440136394350225204119711079039444277433375065612284702768525909206545100181120931095610136677297383978821920003126876519952544894476302015093150251297030557373912634790054928314688008508669765722490332935189117985851245706138067336708377194333888618684320832671803146216880014076211187215832206214194585373617846842421384822679383391695501862372227541095468287557633890069804161477849658898650146755238212985629220601245881041072074954249912406505010620236280386677268281373939583036611638406678716527605123804519728268952197466119638431220296773131635030320113379931870493172642291154303887331858805209078704561775864903021098482958352568614726453748025505822991921843300435308151478821179193782629317771293969594667446348903267413513331243840306682080591897369931301845546731073290262448013101163020547201957275042780555176839554654248408020440383034321335111606874181499357972462622251770372312489047043020753520376322125144583853195813209326169979921021605771931233711056771318508199664204991404286874378564250669657945894993556541142279174339223227920349667177149531042177625193927164168932661526617508555736341099180992986001998847162196854142000606191334290885171233614326309845391631707342346906750076711154062889270326011677049893745183072985516512086188270282806801060740520779393544644383274807264773495413001133446881464031518118361003464914160449862615944806269312545548336241409117736204909820299607427153171412949872518188682896444401164314914093476034979590044013167419916577490534670636113429954860198894509251880014795925489348213815953703998887373363707491891307035733226036121694383662374023561115769329334404984645610428803414786682863859086860723617092967604573752635878342408117864164795118756911312238946449535426780250389088335946540126671795358606613774076848650202946925251625351845606561309429118537460697753307473771267081999176813403182430683996934744509479384571464965478389572005404168347631230397548812105691007005358372442588166973167778231840159740428121917294371051645696363500709018177817276967600618761014536584394128461397686440903539744176491417666849550318015249174440647486903074566578245732260745597423456561088874726555230796558932340904825869004261433361507383139921124831709060124358834534852379402224432657286139992935707637852209103436309385175869079940143849853800671190468507983200359082552242187037932952657458751746107009954938649924490175226305681541228336543740979410552271235619104925423670297342984555483828385658508152614967959703493327637323319996711881267870701920667344181984408347996115126545999526168683190937679377495223880545989820468059594410661082978085949223973711047976443668357036026598309310633079710774021846655293463440651927177746505207540136856043316973247489752080142701547125830938451537844891631403631542731246474686064249309043442600244312251402526491278907565416756807116379576354321219819034747725773463529106444189001915577995591426182583084465034714923931083432046606058168049298974665423261850712862568232896155691480158998786761339730229559706419934264788415941427949729693818594453320762692336149658549109529093828336448161691677527737221056157239203647988678166679718152167165477438192047343114390258327059410921595471180405857591429199013480787926286178821826402213623773257259679560214819841562275016891905838382385463382212348198204317902117036162783406788049994392098712239656009240934132731137016763433850734155128431565444265555625001071145481173079095125944056028103577466422476459096794172519627426949358174062163396583750798282813537486348935205062038578974333464989287686750852657256292779670959542804755543029579730736919773297954937673932747183853395591110156985907178082018197055515815759800925456038481071386809144176474400828432702510357756022836387757268213981263526550921625332229656572052056493688139249818407722137882561919514666941072104291053328617375372736355521357385251902576619074516830746874597887848261434443455868213845987032624448036297800647520360612438344332454028462631670923488819835944651477052737851605002885123738443499226394296172502787184651606191757570756772871776178304892356743574098816610474351575806611985763099468619481665567026416095256663998562848743443222299792584475745353680620224698846691767631042202730913936306323267411132600577219387483659955347472180603308243053675636249309546195688500542816140204111765176402955669768703951733066250435372662642682291264506425510766499334199626683293521318165382148972077179481032115543354747569256727646192701307952482155666281255032581636886201838140166037118800697994737125771669935981639145778337646387928916448956949605481132378424095369664755524199695809357646185654986133821515212775384317914287781280378198186828258169700961800146489494881472386201798196006541876971142687724162711431913263253084416741482550544122079479141515758983737459147749173803208565345183384018493736212520526175438234957880334335248139016549045204075815093025090077982123635644324476906281466458986098507461193832692820291067065524422120609765657144528774068122335431015853052147668483689905838440752726568682919486448358137151220643721894675273925808652438971768445639878959784237807313380064179704993084056703576270585392295676525152451290541351001359864925393081612716629813027631285673474751133069195503894163469868980594165774896379542741906289098465610764863550571226267530848048416679207825405537502276375545733942273475597621465888883972779054614995834387401058793466602338661426581888656112328275750532917395301929302782459456450731083277598559642910435549106395362666986352702506573851929777987814914372067358247617509167337704290188205147880374846933176302972766465652058865646332087895473038862789018608481950599693377211754183781072446620635253036140261699421629102145799348417781332178429034030567480286794599298643845186342350185105747751141613565204689900186120303892805680610826356018542640900979461344112893142549095274545609313217439980218852863888778014141459389928224887508070353566841386482748418833688899495092193402037760725201183371056226436657426133781695462062906126320597668129387398236117827395197038881716771908437631953316950673253875851338021764388523868618685215818874995763395957057240709945900147958418839034781233191674595336224328382314549203924741628040282943707851645634566087160724514619004349134698431613592777688905199299260518637859225415975704409407257317643316189987242275038226144943555168990616713834335006124809367152331301572772053343056865800265264021800351325939536143282653959218862421863281685774606122669375991849468933720239615895680169763791599347001315831853527465050434616377722677494321029995905371197305179707993902280133888502150368542496980933220958078520806467135068676220849823225038650749940582199189500901277297460034126773205658058283399371218683716382364918301570108296246975931386488944746278392172534661150186776207459503006914719118424632679194633787442210138160750005842614071411298363463478839817171543890830414525355016471367189815952829291349397448988297810843149734001321396642820245830362451378419390288422788314841311791041958617107603403667115382613403707090088639956101012064153881509703627919575145627613926018752735569489178172385490347137382330737310456821683811679870820377136334018403397714090841211797002104912602428974639055469020009482247476193990057267978039962585052047295805313622815600718301039173507729056793122534393194544564497029409671266464706666462644476501543858359966477610723473858220773564372253898235821124788241493815527960864905027036817253304302324937867644077493236291714854636392560537480348509462702500873789498099325412693489833250247478152124643684038135545706716077029772705350409832945832394913032900535009899943659572294728900164012865268020837924428092451063498482389352314565685752233010530445171765198572859379426894787076649435361721895174237483464842465122348284430127338123275234948804390917352071997250345693629231870228878855294058975705614501397460056695601392992355401589613541201118785758479248525465680575116332487670158964594539133327405170363481242301991360505728743179237206917707417516503099618158675056232489308817717910772779080996933218072026095482687796923985895040679933412610576175553282788366349341353099323175601608093473589911395085570023450495853549665698118045459039062702960376256568241885599870500819899473506147023993639743012963218684015717316535505052066949457296066075417574649517464167703713171616869327295142161793421041556378546098175464671374158015032808808786718663999332391311493430491117675915004969478742555697691903304228097785143270170114947445109939483061078637452247829881663328881489509870025473085405929894741093348399082927844199712550832977778076609473692601772415788577195522524038598925592363472171887127209612762265733443688336578033839299372838455191029621990955914313731948771222231747004401175121686470033469226193584425929698642389565790483065482061843284049362667422699455244580803935658078864948194272879010317019153110705109088195795116644736348576493045176821090886144287110590275929372223141804210595940526210464598340915547017951010529211915977186754490326360560983493070431451856028703159802126617379438064043391794573955695027378196894354078922273322320747522125010428191501081162294718509630111655130926147097539603030266474076437421801864058704634816286709647541229001862688381246982869604086902658541094828155193684185966753072506198350284175974221238965110246992554994542222248587159017903582338552409223572131703179648056537619908047308175380293082512214455557305032690614463861280455292190146615269216758371778138462374112697678943580779170947529985452313035732798272451633278347981320174672698201688154972609143610221304136039742470541070771893761769142330912924439862602576799906669583617814574514463161362433321023368680267315924495780638002862527072195195896793136646463712434242723452376941553234121266930707336936105372141386642631934350963898008946701583809694584664404164796902207549651273669381684421260319202581691570887248837368352819525373700841271122156454790178793904970680460628354488086474200914451105637295093334923815916645721444712559078153071908696509683305134592743150600819572278213228808353395138842690856575861579697250889853761075279042665589786160447604183494530022485982677514823645013144739684505518274038398409856878486995117134006063997887522847111190920254396813951501742614120898135749090718866793139290218187737566035554166737540650639616586334642559777252709692436774365056532201004661196664678735651526613975459361863085412381604865598140853750907783375651390180865170748066555192992150242007399153148663637270477008572774863342561166301001188580906030087558038435438687150156032295539224180338593488533509273892643861178365833659701114277958261915721498013938774634925419209929608076048117398316446796033835281283745745012643013504882636399228348767443353419666056952307245493509914269822944947327882903702502601355582114405942714559403847047357479149059295896820086588595743279167360346112932835078106801835162658479831168499879066979673434793967278315528316633219646426818698118325078778745064433521096862434477417559988437578886700004907547062471078720758574408849016229194409268932118432822145397114953791631064911025669515168130894345443039567835421688030009713129640348952102883827166634741040053646139330889791992528069986692340166684546542608153019583346245922459352337460127186762975673752694011111323787533215648135276623909544913276894517175365913637701441650020893572155754568252286218564883492527359097078447071681595032679645038529254447160125492402085990200961206240183924935805050544771486160465273838657340826895896466327711450391843309653548217545481730926529762607888855198441581306205758346583121550194123692310125655198211696446495094397381035106637270448636994284178942694831853860904735361770959774638984551910698894830253318481974207902019184529623177041727019317288579078341822645428703544728515709424413276161979709907128377840897405826579063024929611310218809683771370680258814718584137834732268767056993250481213053289052508136653977311691834406586776165696851432345925756046894535109360578742442886827048342088160942779907737140570059649048218433321346719426577462063025948087033131104702363691658136878947119514408488267100036056821137613414884730547395051901116388222317734443531915983099383494348943800145897510370671597473450786594902475472977682314616167442067774860804844213540423138997993459032432385631574121571010632712754972826216725877258132160691697068311045638780280504471444499404327323867052315138122434103334467797369255746560223555764273280876905665506441177799502469572955331329329777197193318744608527439988395147768689689466775876578847426582625529034372038635508575095494939343044919068488410230705808928012364437658967643661446782200643832283297189173362583090083266618644390059775473854512817798934813015551966190191536384695031740870352308144408208297881971366555470157101288634990700391688753955036907906323978265723349428909036504388605708886983241126203678439555983628281034760791569719440488999268504844541009912040530512448319054011059169568109125269132333430755985589563487071399965142054283484074407093997207340093421373231110839212748369824800389508695205371367244805211258359031169258275786868438671925438647039518769907780088418063855216745591033726160527664970066727759521308661596493981476887157509087315896278182941975900848752697337241895682142054943067307142986883891898519953039619024092830879339380220326177280907721249388339204876330493552751492054411952772820340305366215248687415275711835712799734413743270848393867889638016781097284903346251104399080684934707271245210440245681183121726629371063826572107200175410434348443715574110229970600483757052051645317534564758729463806559141075270007683236977114613053058039479373497521895131655816351397271408533512031457965597047451039980983079624291083422375674952342592327121437485916792490155679605581804237835606725258034968962826342842089579249673140766164910342778853578490704936405955256850762707108427653244645788220730679615337486347815789657816994789091916045433090291041477337102514459342405255911739136044559955587327220744133402162932291116044163345868547013456062896962249051582748564003373314657481323849888845164773271349264683229171476502129408869712466075773596478914509801865171096903655544147835312390642762449620451897295913590986974936149188295118286516669853900526910455668237436806717903942027714399119073095887811017160815612983243257122907030479454750410821655047312444033707652190817069958698838143204640302960913341051842494617165995660687034698770312724569907110671150623854411537634634509938992925113645115950424047703568249402592662090952859034249079514906085845258872600352030323468652096276441501625218184751977489651605552362327671110364569867052286140655755702368204920901602720818799033441862081707407043060560131351043464759795171297680313449947900398563724533590756392467093453703002973232328054542551421226758717249919352147253733083125518479484073299720288006748687954215146357109562721960711109702366620348278280027760519372030107159239586273068478940500768274287251527088682974715567974550819106189167683919942786251992938781911300602376253206950488463002730666015897899557660091685204418710232578218942767774705133947465228637864604480838137588299394820750099062121228571752109612983728543366274005713563377628876995775296476676917459814620554825227343116964441530421128111873207766760210779663259626450518444809232745970251312389954000266565592721643550434338034898027655398748124978919192541588281167997482438064045261613304478689238082805060028941832696786048501726689286115649285064721399218878297678766421380470951842364448868790689522309835522169105198533950524529427399661643297847617373571125511358805021856488851011796873494048780041896947682008787288375028522304242238321985413317330663874722207852242978048092825280927646900192469638312871383731031257131252438165413807224606903208418031659540179790452533870805052109265771045971163573169317328750975983813956869846251027171682990624080299111974831748436910695969935461990127766751562117373844253806339679613142641369024259751122104944373630439322149951400386999734410314674905234914084835427810501968210836025387700455718610193628995122911267933618466559325160083194088567750753213221085489804839706489151767519992801797167539492145974176128032280969880818769887133977259611383315759875245136874309118581815896234889528399889091484976300298671239890167067143296879003660125795943027990996255173051437267489974950589404393590423433837371735677178958096247792839084495349850563989285186740146836091774122206324302996537907676874055991662517065139921506956365697402945610694846751836336340422960421997354842854075964068135383599354734394686796639254118995891347825967509050452691646071561461164915822670955698990873259354639056374459559409850236707972854673216051503836839182863335116929403855220995513475644447976954458974930903923874947133337910586823108789777730247178346903578735381288539157004027352706481794359895963223333117258297906309869875628093117526311462843460514666705355510330129585717315325127825328335984156446953369355424536866936789512951179078599245742802778015348537575641331463502079092524363407110215945197073509561785525636306470408245799476818154741911630087707003772093437743796714144184632726764784213160856389937146027133305014929392682695681642036316278538378678078581157654852671221755270931130097778811372733043070693333037767640274146851517710124553612529894750372262977321152979032037441822907478296690862309791814284284202844822430482105487668327765784728733518596099643148514062368336766109022651672629866705449157466903576389776038577400245296793326099869355860387063790959672201607599625839673368086738053982150990571284964805630456362505476958053418146910350062048237101144247490157567574789514827884123644506801622467274829817674404733264100808983517698369553568043647014031362785835814649079020644780541025032247745241317128391838140974500867922812277184892940826634144219017713296480612962861038576405694254588115554149994256703089755347309344956055916730482181186859165684839169930695224044346160034399128296163698506997242315326728975913815959318393256278209328373258418581209461358157475219295121559604043131541539267577788235850866725274386981146577240410343087031847935006918817688617800485868291389440481598448422877126546389242810964028368491474425171753618996965686226810904307385174771005891406336256064078719631628844082999684299596656654739499344268724465883141606169208854235401596859250086494020923218717203334217592494623192411572633651626008830574254184303675308547138551285273773218910417121608559385771734690489028328402566640909299515977828712585866095874274433566536453512516427063314061092216770794749468929837297332272355168230973330985355573187951857866103472663196247434609975628199174815174515860535672548574725606246499178502615682773274548267320104200054764249646206912242005978893236341650364824901893319765681130929456356564293901833168323555665038513595948125864346944285209674359704793702002518225593684997872989487441845362508245683822436911259217060710216342050153464985369057777682523231069170489234998957562125570669828687451532120381610514269808741138687951634408142669211296086719223532790643623343593048301205281631455100131145170099237554758768550099695308734948445513967960129294239775533887520828822538712524868950286737631419225846835350454680039252680120671606332404322196061494454380779027369944550453889802696296674625671730278944659557442615707857416619903217943398809206172665157260466672873720354904375823225788009115331129236878582999362826296732481432503469296155904301369278479442162354811407022774354776736390792434714119745649244895805808648769836391311208829622542705803001130184275883717219592502779778262408019303634010695780374747718794055274907834098008713369445313926002507793825253355378992452829191681923230594223030348468041067398217348142721430629570837332047652835572228976945207353135087453638557204241956637778279579386342450350233952990364662943158040826144580982687720881825461005076176066038808934598863111492807938363425016139134371824662586842425225850896799012841207499773448982300951752585719961572762903731731096213488917402990316403756670131710992511139453589231438637476009579914063179556792087199348372750419270684352522653711654669461322057970211103910603769089568112354817599627945360446417648191192663690403737770526595043140910520362483455844787454383407991149869734434611445294959119829486141354668018777209395176774537103518367348676523445637474116363167956881577704942447912931524344239022336335821449493223524979376708545601299092952189339297629339992703722884942809984593031055097490488848041897227405526146429552494821291320866194282517540353365315469006408502943984101471283594460886985821521169595193565760335034637285679787255269067369508858443371860906731870363398579526005994799630503857898061840346322942247314159852965714932601551875206720370797511242181903466929505245395434597409219797280556836462457942751674879616879014384414963049580220677139880233021861826266639414047121122923637806657475779639422777929732093132708869867131051314155823400005778025240312606238203383392965696150431978150849358707741550874090244581980557727568410167500814029239682037203276384142383974606743487787902743943129130569183725224021206051448405403399040648789072820284809719913778502742515020187001689188219123516761786874196611461030487277279526660748362375935283158516743333490772652690269868200032234074477272196251849531167408319983883792468126934021597370017465572860593274101779926598173813980238542352526172254863434316290941488574327423717909312521709871633634782363469126394196931835448119569056169578352915363689120140902102481396214820729194358806555728706520296409505507620230588967492768638938386576638751537137925335821608220090853119452213227929191993841191959197854588909785448102754128013461678011632626462880073068209855145441076705481735370174004352754312111959304789098223188873236699787217931814081807771335375160518247860770312905934020268155599660734690652235042534726402476954319260985869539439903420291704190889202333076412880193203814113120338284828096308673725452471959015912384046090850697135867905126738877324949141360227412713428096616180593094054026972079570127917408672834171058794765774048194720468740426311874070385426894325703201449313977263883093039054559117621879091803497357258369569055123623717341016637182389673908448581698245423292539279865346852735542562335826343146404414840590297876645217148344104708242557610827440732037468823645863327479766596172317914369124347426096247553478820334784546356218682272659135131220665227766627573369234700002034954927274149014926530750984188023846674525512663527753798653629373686528899274930522355530233517736677652760308219106657943435025416071705505816564105844254946947500478596045681158935845099544441911430990851363935172392637234806209897240494220478562136461605626690868170943232960586734089435448698490951528936801536719792389726339047680706936255151973519418108500623577151790552056612280434288045232582221038682066344511005657299583700161641547390947973261979243913161071464339667368229552310530701163673584964485738329994920167718547564259152620434892146089977362807458409409510437563633636193976401783523106031871221523964547157090164993173586393586297955067738456106575184646722198275513718688524412953860565533188084875207673497812228336355992560396179915791388242328854868564996264001485772388621460383283477347327606578253854986046141919322250217914672926258605301379646373316745669059845289002092791216979197396940833514637752995286126988255532236820272025360849794160781495519629367797909613666287073950317941998056935861059142790074311841640568101175645956974005578977590310403331011621434303434798766239397400246093010335500958626314002660861406761752566436451485087568442296351620305887653100749336608440801132519417640547393103756163707017199655783640739540474080935258826633352469015794300556770074667311211251289472879161148097423196295260599367334760757611411260940476618617107772793710835066878013866452924813042275217124131130109203907202779244992816075011512781187056356996627367919208858065913522169126541827159052172750906050443221264291626149891395263826240402184474717162579805357863878629487034185594006803666229994506543869068699042078528757790822602244989523568009858969818042851903146265904860663136758740103375456856049358991937122750145415275173122223594342087768052520547587789277548306610704647767008501783119924611103993800045207349541928300697358502572388942269702511560728149651975204896884374748959310594678047336932240689716077796903054398091498276429589709670854698307916743072295639586471660659255740795569233032451468980935431070465671793002946960408983855448999751204886220625274489537052121118513125056264483430290931043391048413172454786730455852938721527036628636125428384498376556413943165997575389575649840209158163045055732496662326487373162987804281689920257137864049579453032301572895536083893415768939699997140767944109467639978376893991537723109198235348226727364740685988953090527012836912819557049295825863308752858815444827360228005028858405791530842486901339762061253860029996711295092361715918639406264582866274090992160324201115620755831189720212920000320451291945434576230625594860434269076441965382010069068632350159825113057706376930587725824070464318146738932217397411101694425514252706589895844144817363096828626449349227415937153044960826676925638050622175967556582814980374298027894598110697780396581254685009069754597414182781115315872200139889034861376068221042282904638417882686401993462395740920029181192340340809666758474565167408277630361712518016005643228412968778336391499225977394985414967954327085910609434657259719479473517141334320204769027686374250615527080227717272574806234722760470548156282458703389126581720117344906274484730488869329860483392646800285649964629245485122455161290851889951491354057570120310217270686488066467505922430253609823012260890525538572644403454029928992060596859535484512613982247381125101347756727953418335906709451941816001050939070986617777813850325020997895606508623795940403636753029735029326063624336968141804318971961212721074043453173510368681989599092588494019494423001722796360315450059446366598289392032858234651122962092464856999895169328259060543034562420670620950425781813745978172451398787082433856063706189794830530871910619536151767294192397136781443341678102604287084411858268709265142218974102172813022682739046587844381017914125111318996604534356179518428466068958206199814376645107464867424171335147175913051083582210723142219882229299293546751136683098229786921542393957403722725240822464144472930867825493827278020108586650420157246749112835052829506468229010799815763544683788132088660566881804358455219653093480730260993409065162855392594761305821248872908438512869437149132999761481839812179883003367261443709952205137865980698157076692315011733920906013577611144439203678201503280030277429431422418711933381443101142327369671426720153463716254664881246504298424726451609154435413590444716739326711272116038210284875034056148335949181388661154011330665514284386680972471998476981855554799406028562298361373076172202728134087450184996568732483343662388201778272200886625230329907523337004854833828258811232500470399519839035745631558957144733103597121505068877498255240681383721451031551559415635046975030647728305087870420461050152353946668240503578519031821934239586244140714702639255137188367416181066299555168543177997673611241849866085332815338437199928641093686774584654323057609914453458176092145434207820877656818645199453666914220253155425955149402633861061680447755651325923999602864912399795203376286943296935143720630141168417470010891902787421413617082576461699315515478016736234247762416810355258824596583334059233377011714550205402178755952676780072315344945581559004777702099340251739206237665240113206233521270072565911692129884146085806110190154222033864169893221363922985668458595139526104898357134747982913930540958111902417717716598823540838514845161099683407205424737044881444716402838892613520767194814646296583070537013461252587263575531791000452331593262081499979050514242881682106740101614919634531517997301773016518494774102302142959105020235398376766627871312622691811281059181818299852689378862036324356271835768364718881109609395223674685414063579530238355884190095998043297116310732261104173888738880543414310972634740967649646704882227375537457295688483932465100753856289453107519988603150365591056592532675754212861985575436983920413121326313738859584585622625662581450999778914222750327053263667138195321780729411272539373063739916423163001211430064318673035217671289532660788809544099961328454363377111486465126852734287241888573240483374775183010844640555537473842972770193788837715389182091081107493497602769834153868417392284207570088415962607311540234980896650560905405669702200233170957750828908578808491001287203714594560275009183812228805154748208538978667299641814363197719375360095964356087661925686815915370444532607037247726206650093462970214539819239103911078126442475003375255082640614474658162501005447866694802031997307652103804253780385796512399992209819386895895714113331119213838101611334037629580442129051803336192369655365858111358581847409432815270205542429969599510367749581629075270167050181989705320474381365902938998880763232240624176331631137952769819822159351914835285225892157166303744446571714442796725980374323577382977114670766289645301507396104450847039468044889107504803829806755809191320255665556329245094750931530049976959890814766320797030381707135755000933475090075729972315800746437785059405881137104253387119363808017019340996282361870345858875519996262728885048190750771210697211856889416014047174314767461117413994350860966166193043342437869110356817605011927470329506677484963544461767007566104899843098118065228688992519350331008718429957208665873193012921351766786236980836516125421362486432671119876257872328809554256503307989054748610637011655131385840082315858698283222693542584048584616080934598413481010885324518124773088591494104284214890553875965160446897849461049767308672419881873552402471688417657662616376565657116452411191435743585550121783359084943338539241997387230239086267445363711898254430339536304399522293408260275339313017856878572727062333546373056700381437645050731724929618571388530174715092376769062654398436267193288639942254542120234157354876520230288944736783499214062826071759590052353650116848401817879100999219570000470078599081358206793829765971737537660114375480568125776863163539951478985518870094175258885244876863290123665794111201093203358846017105125155474589038263591254326732657544143702699655029938550357177069070559168586580427507783103312114603028874404317625011609121205069685395918751007592918441709629355904471307810627516965854608599139235758349959769224953679275042492146216452498957222955720011878394808874172382831531030856080388955071100234381011725027995813907923774480426326335416944486222790355406924203217413669966330531363400247905144281127064629979688048924966532375882577780191172421759986556737202773476606154665629394255242521081902089029873880122650484955419626687213451372685631025432624591117663803490160690344996012837815165992044350450429718726018354084588954258877346105134104785985193023997838598567240752028196138981841137580723907653902910262827792442141957123530244438940375747629856414591373306220928224462374263038817158910003909416037265199623337002401062895749697436591108330949861953253511749888168544605685831977291368711724853656523165228131361836185629185619253444893071160962421768677879764358408574778233196636203578364317491724143687991801252414407091424886908853411627907402211199688502328883093657159663441546986810372960838235992752331219982233121736615293499324118004669249452622850471088543151905500514900984608037122756631607114267650899838110706147516919041786351198950522096314499612502898905771623859013283524867693174914101113955860447271233699286466803647773193972091037891821435750164912932346437070980253554635413848387553354038859797530091418329916240811867711672873837172481609061846102176446658713949409062814736603189762683037437078320530560337978614272158976697170796236339579367917488614800276897407800798817379720296270177389205193408877483429486778459635721327337029627075563330510687339172931463669275032922824775795022311552652861921686148547892719196735895133015880628462482866771924386145244268208327065468771143692372509124818202885885933059109144947673602991233922681281912027481264984996274086858798167355405079056676096759433752395199407634184694852689955712679845575589642320673826318367910119971498768069054762338430560229498282245768752306738688018106326921047158171681702837023906290674930764981083945630808293542577440614089675629811832571432404181821303982772545618156085811380117081550491822321001306825020320092848881973172226889340757618637131238262481395742276958758409645579392712561331197863041425745318572322194534190312394448207945719920130534133350748631927737326994677974071704133978695254011530928975265065756334464023988918635358293320961677360240959944773161117109713921112294921094532487097694782373420424651872597008605882132318165256673651498535134608902644028074549550889694996438164823656704513756553662484913633215819690880114742898360205736832504140097907968014899299963715705489644059998535983005244914165900911366608139234173454117144555399185774406739991163160131740749622097528618562442834609257048351348892507999015739441933822039528497723147893929605050202142241864836547970102275541234823662592365681083497446363384066631741752458885276673659501701435121924609118632205987324289624378696828140568773059607560073069603761238232201426586027935228131861905460917154155230126950656521872944317825820653709114212432869378884819791848040020150079846303788409784633690443236313287802726485438092466824204611992340756947144762366132679360134314529489155798004075412454633509006785136688987534472343235901103392095688203700840316065234756380503304553463875302007251015378314620844783328317799694281848217065741810695717338386502683501290603010351773918552867531101592762385076291486123368672119355190413233830339924073490913593065348147008353871003257888903471694526430997552357138435512009330393018088683979849167805353386840655992642495551673089521918400236299847582846014140191443709949548500773463107915689692604799814747513658967937399890400255983253048383195791476447393726186894255214901703204500026335554771892677335168108874052369926589533069412914687966195650858777093665445553606978216470255242853931991247269075962382889417093784688779541165508666676752921266009917124283871155951072198832973666976509364188490892156614345087668380183702164948333193989248979531135297363315106394837659075051135324086805484074625111618542654296481124816359907862071307849960431798943550939159424179333168309850746924420513161105542518929219211667629235896578536402738730456769646407457625756931136676700634946774281512098695938766004289124921096511995176610372325806258866457661618315826618205386689964596648023572891319103379063194093063914673679635129672151113086834169007664163983957977628550380402495799848690019516396340679604242219141570112525001536067442524011317881381834287569641508749370736731106413576714505337899585335078805265127053025871143225623421483115114019982359436293529586858077914467602897475577567253303104923511674396613407287045322091619243187800432250484046840221126137380455154973918956950323870185463145109657956974659013551393001902277360577317891818343569992753865485135149101143832972216064507924112743621680928232724647560749990666900705178048113071703384108911876374469009125484080504985459813765246730876820707383682694146227391745704253753524168778572305322146335054134833623090531217342176492520842512359391633732193640495992751967766062565789645855977061838251378610203399087512059926152664642997167902889033008749964508524897237440957659519401004938616442217151263368227589714074080952751253188640589903335512398365312381761727062240376071298605989588878536137852850030852090603330055238855605400663158278443592483001471202344013198039888599070540382057368331417852279657462610676856176589043922510221187747578102590813249964432328900130356702149245055455975941277513212994826924826834328532396067882973441303497160227638977131079232894035369877956508960361690681678233596323412954848170612378547614758470462164104028632500332337233146806597879843902138820514886674711122087343502258471362251919198104010826497333483911138885137247502569414025092059133213375982161472692048333352588626760281828831596623887963962646226568304070039879977580396906154253195079313475856531567884506710382466803120827593717456828037876574389034503345383334390195820166287738063244907656394476981889521670741238400673308536056895596324184279429234457970941765813741616468687541271982624605232537601311323818428647805858725121060905862810584635577313109079009565272021643722068287400123226280528914856116381286849348522000934500844303896851782510053763497370232928938555294481940344238076548840509447621925836413228991022364175878029584610506730392472736316882470375732155686508004712707736186236343083357777998905687149031775356441235247143072934470330611881803569889128389792627395249338015198461313244070288292598725403074900111611173088070544782332481106571003560302242755037977020779867289601860870208030589088542052981512718918787514501367705311713459332296852155435531075054325837085601911929963276015122279773034872832664940244260094715349950840063442687092950472023389514105562333689158278839907377622919201990416404084102208727147227466173605874064860468722316428346668522335753908822068385735155100852304193776232449822193746286202179991176719127719938690872977146192901625146156567462624842568922387184553317265513015187517638659417125272134696551551344964836481210972656855221675475992199505052347188255847007075134999978364087354513182709972026255484186246798316856902252606425394779406738471627685721350325625224746507408664757266685031839834603837967484195932417731882108152423358347633275658594911526399061544331223162402457057747826597392056088055311720406857410032443833568107244414637700965415294112326367683268107359359843995472769943434719774376336868018092903320628780999381486050535136853755830631338961393642252858088316621343803669709774770150297079861006853566200165507296208504931387241538911749590892369460530720897630773976670337388071981629915179000169231351032015746130371540472747976422820113694816889385106234227791904706084929312641004339764268929837759762355460807565134527064333502103627797175879078722825177425761791117822247282024276593263474705556857812203877156888763215216709753324607062034492469708132814134841150901549680380185341738259232928478806769954020574910385554200939841541386223161547865868913371263454779715295618389668585504475574241148864344460713926793606059310515386185271775288448206038008804955903151108963484236975331728044484475949397102231659028526032712668768882315369469393575965801013919193082072137941173361717259013367051950775621375387464724367966497885680439583767235669007251133694433571185502482836808206808416851175077951915704217373403172404317660860083688541869894417926485466482361602933317945729187971902588103715723108605829240719581235308647172130153026055251767207205106435931033555266002137454266752163335854667903558315235241287765591319701506321227552836629105464013851712051814262285062157322233835550524903689149602546298273389912441913805730400020464134750708444395823450383460544031369316889037716027395277768100540624964435133344117055415041117948723009017075928537184203189495049399504576045066589196675303951710771468527463336024040290084109417400472275684656265496102816918184240587095266357209845846193619632157528858349735110252380143854980533576838470185967770799854149669486144347297269501715331941688269034770530835178346950133093090437021941936425140966506209055299765012242148763233508471814222566025184500998117556915138674882219457064130667417000895814308874357896948946726426990032557204938257442769458366667138744802448642359529354167690095259851108976621991920723643177787250288903693280348213465638277557816036254334800238730110811747709133749051508537592301708499485330380631251890383305462151990647702357046642486899715900791786319478641171418090369085772460915562246788760488952883107238561671880521002857170052897035123710601115563852272192897396365561255351062008496167121017867568105597673304409105534330273404035922302371331914462237445028184619005074019736977920995608574849405182224565582645776572108456048466525929474105104907003276838671954977284869286122792471969758197126055641085800294026879774919457033570483663929692448802904843788807512427241290195644445732195832863478269329609123821325360994862264086264722075691360745536978119389347684292932690031749743810949783361435371326739619635420760047570459610909024013128478919022335789536862909469247060030084435894783376790451741568649281094193306695316037228233359618266837254626342920042391841299960159234859065259941435922057792359303303225697985309365711013909326955953529986099008943788648478816758524154317453991196747654636462487093022950856504148346080704537335982520175661906181301283544052200968238754690453815393660870750246092738005726879745246322416785647931319457043192782294670862933486139452641136279942174280172459573147675537993366032932635153368038970345558697972242109272210831927793534811396363115788138039493406509377417733099165907023398352662290054826634504953314960955549893323869133222192325313960730075899888962547320568654667006840775097714936421904044164723232223786565028731833891414345757359327016800732096029083038857209148617449132372897017712600786775217349465953645374052011857981257575282112340130015332635938434709952556434235621966464124122207279011271276148328420308715881129397219209715277375025684565458614083842279432025236510327110342202359538497781647441553976853533342484739024815567659097488307160014053432596456897781875035968345761494167529794811573206812173768381495868779796829716587923219634557606397729607520428225928173543425347388573494163147680515324636265880748003076163384603836457114414502767583517089468990530547974212720259812921590521898881901258380692065384781913379075834888427079433663585074614210249523781731495141126219596915494004156009639942919445556939591035723044912495138818987543988528146387660246053879757201729875210278970763321062800172486978629695923513126497012758393473730529974205978651740300752165750986156277301356905280097202586240171628690632484682409952819639846734181633204996012689623880708330238807928783150416895209231736128338972761105916749307641498985396861592716029781488154443895866364490553406120550548154030310671372771761075763149182376879819505834333800479921643754480863212643678734018780674365968221960064911880246655912764567071121526192591223007059294503588290823931921176599592562513300422524061357452417904563235718151825282806436965703581601888472482473125501948511652382297865488934606597579698203769914280830594156401006806736954875911865424010297369715200022460162737799820560685383931154467894778363871616945662476763088631010993989288753358364669684159429344664558995102088690697474958993971809648045494976914882636244122479583833977619289896352099359738161522766778437154499196969807945892822654893569202339269034664297031454014273435415087800945536619615350538328343168335147979169018266963813306503522086020500799408565524432913860148530522049075442612970157300880924184109781492214763987117278829644934619697095033933170431418173441220043963597309988237544907550927575190936346144245312465346724656618991547109911530147096535188562009014559754583995905794378394808256949443480873003920112288879947810257920503995041328937162171530978163817090815041848140350248158130924827388452052699340422658487701427505005260657699522999897697673544781856817172268874239498680476726749705473449851384184082994294110570027315238428968860864665400383902178881350569475793605653832091867980033527968172326008647505843205230039099400938560669016622243236944610873210250844466865745732191866222316151548219010824197077894448636146678020447325504570813754690103631579744643438049149193742933369540466086492046639917761634769409284371861955319515594528297176195109690899420700844440957450080497631127838180788773042366684975117915491624824398535744871546776437484888315350895387709117892257086444536687472003128691307105606744110181091382502413833187151674878748916392655526898659523399348600578484887821179008301069190335462842891748559264747702574406841697804772086574247284761179410671595850083464486667704007846188431580646491586875750672252099479133477988290358987409346620689605044252826613639318476911705394992565805200710369555231138930570314122481098147838004332644774151282516875262490758471440463317852262543950037434766062638003577866557934704079260406522896549514063911252325644696202458530674059022799482093225434584445197573624265102372265819262629880311057144433586771377588057154926981529984213339577895639587387727549847147992087482072701029595830380338069558580009346713250950317993197728108879201487408757029707895241963330919679452112128377797860876520998945973724438663842101998808603496107528041878618721895267309784547416773913076934218764566167917845830200710750522293071849769670498308316125046162031868726284719865056787546871307221176137649178804169826391515573566074101351534728592381483857872418005488610068810647217990258651322569890077178582314397569633835986684883935654301719080768880924802006367424153822758077926724016550540952926596280417341857402277997960322437949436764892531798141055204948332973426988017810506710086917131306077807253178407196367917464806601034385856555901227348650364373883038557411058238179879091285126998646481559422099527831539284209634922666323283417296731358299647466090110184489885775740105316355654885508623688970623411290492434357049051524632548025328758580964403298329032851819848178108855849200348820118382102210568658819555392130543814742885729502748032828831616625806872091898070643252991628192627159639994263573177875550832349093369628354466952271754112268080879882716389355333686373166141773121953937977812261242625952193012612033540093897323981498318273923558561017315491183416476329174162230528310870004389395674843700688285184096650633963841359726019880919437511810745861594016680033178634349197578307111567191131667984531294524074011152894696606258685614327460286927672016497878152910187079473339999153434927499318763216913768761228084985151983248733218017129615689533413091283785911938784563126277602060886939249991070528988154266543391967286958004414573222654163880758657497482496583212360898381957631460616622495390535724542101010246614404434753619822109017314584840326382072341344931626025308102748019533699336658240389043363591757988333206575071772660752698534325691286450897069416899245580994021950595147435233270124284504935688928615424609811273924568888107190097027339134475908295920264579899622464670425783730130719720647821322621378605591564095661262503617197439491446429321077283322193412725519610790123335269591486294166837030728044672672744903647636169841936729003570249698207180215473616032145023049065730760583350807279637995752177820315327043243139835281579231384303597081944349067557358206163093197170003636783225732007960113412020986128474976747977694078749577864307790736994676365187728718683254040704570584300676162843263882927905198120713723866447875418823948978079297457527838115578035613753146485460853474165431817505317376218999634575082914099515589903174829035128945119230725853897660820285149077166380569499446755576103197918485872892453427934383887592705404163867259402673710552540641001056643215305380059832072075867787730981402136832964348565988308859035139736835567438092517555840291502476726674678812425589130548230586407138052282584710797417907438433804025766003683551331133357045696091273999320135106637053674628858917556391689724057493514079544576666809217233603242513533414298204481976765305220895941898910864462087088166488939185922690349917789457766920446922284323772781739435214420617010811486370099782569826242137022789828388547454797048285110054771689082872856949216705301425095050005512922840375935222207757565874543800536977307723699610309276390884049150801328407531667577340924641002348458161562315789649723796618454635158822792858404620854315942809615132384134376711100818142013767690439545396799946638476548776592245537275684192054798814869017332986600066806822649928291183418676159614728576218689492176644535094328333336651411089568909346065245367970563081237405811949841640914095499868028939475883997429779558069511476947899462224211912955193029859392906319861350896678329742700547246366309444000696846747906397568815169823956362550083467558538602943620444685349570390838968964129421547406586579450044549445317080067595752926087075150479986439927099840358623597502244825308963867238713754585903647741354626605175816248260587953029313086037844316122214258168642231749075007481867635543157820461448610693861391976667411856557275969743705915777046978129106488194997975750651820420436985095162715378661885207608355139872417642222884196392053319638296542026594145165867998005504702142362776591912486504758948624758009560509909007099357342419160012373033238872653822049247974192578900267377697537170674410256003246075206461849629922009216678145321389999958878127997244851640315843734578853169126554052528959018773802641922892101518660944612194087711622470736926485440215036039756815528513352068146995485268579712676345698804166629213688099860735335303512039642820040328754041605264553749894981108577705826181920044933759824446451660882730305930816616916798441942858340308644234842192102835118502595301551376490948580239831218052346343474986433119208320298126727843482449750330809695385584375280035204018300593916625671559019104715608143151137003724059066519197111868341646942564775630104962308282525634139630427743710002619086494654019950257487006339696910028274937306291202173431713054029717686190716481852885586496568286683189390628041502292733865980380191191746584507310186727116276991677590850296720512750130259943584726834255864723958165714811937249001314608880842063051675786983234329820764502430124007424298652442300821428937215159034855264349291381219455620784188765367921956609271597006465304708464865580101313782229889597822726234850827704395075491600113518812230061164955674136388989771035454837116849690882677337163139746023044040515076128232802342596775556173320599715912368520521409728128484433977157480518869014733450920370037785301337814012661436963664003195371082733958999103777102211623622123977291506570657459222915324335710045875993501880469987824900551784136291133399795484584766694386145536317260395705887032526857981322993162347313239665218752909239328994179548081398905324945720349954786203827492237342931658262882029083032478301883923120764306002594858671365374301047149995317512914232147247136843485038320813921578402934955876066563017331484967843646246471067313428780041594499262066216486947007053553242428937776405654479218647827958737141088592848850906123498528689846874551044992054031620164033690543031081051982792524074690917218775614019950118911316567345067046043364568197521935814054698724903248151312594138598972789153786633536149608749774147669654320266988110106197743355099731620615221104359013714052018391455789599956893712141805480775865071875819508048556829281413030783449544438864408451008930442428922670220076958104764044191772873087801743436368575785808139970948364386210508552995747402221101038678611613886800656233265792863705270647861374141527172782122872057473415996364098693997575853896706359244889737104072620082975394747782211767543099415908414761191323136650979193913974056397481995780463527177898299616933709951794553066785394295167422535995906665983223548421856200065588290748212203173107381577325664009124976870349588954915722838245112425148236100123084883431051116173716428581142508852628259858974082739198318138510735887321672134595664949106423467640082253720265702199691214252973214764060796041046522976896534257955429412011651892366102164151941546568723536664227826279215607102277486779801779866997737793500948989935577034679238076775870660961650190588017010503822300251525546002910199465408021016037172575863177936313226562063406281179654498946840304235046572492394980561325610853201534367924456807324697421068285499308868210705371939632066638099236833767925912923287887896523875729250771016428517162797879298581713536750895713313246522261800348841835584566448101207360983016481264648045929175621420162638712395391000116639562616353721635755767967619528804312461032113424078302850075482877853013417439316530580436782805449983509405074202745837475550112583468132864580451184643043471153611642195973391288340554901088053390042981956040598099974033569614073965360431507545193738480741895017434735205258895450350782923035109832636593532239183996633645391354018715113042679309535552329107376431675960523291851912724291294657690036506231865747593501878260196334094678782066445434841353149614342772395857014826346709918917073097574318485555752613275860517155049754466786594678780573123426067297218400178688699841274292015871174677254218473611107229278470758700055365200913331982048495606427362132677212434375373618476816699993553571082329401970455538924288143777005407817191861090146253595425659943336109642034332029505102872493181054436634614382463728910988741545382022433527870760894734037964332957992692908354248818059452588887300939614681664098163178897373440130134217084687047164837242229543222383568358443053497163517701764167244108711519382570511684431793310307467959983780271543897607779038907296864442058917744829203981276760033294444577956081793793110583403789458891101279317763037096105665325556812992764513424117474582270461958357141051428180262623308832110444597360193600538659894447569311828630759896565615786078018835856065928670753700256875437730676514914361406435057207861301441331229903639374556820223116773507220965922344556044145785855213952634945826919928913890560230958415222463479265142318603460972680695681893679944612430935564348718715007199338564531407465119473599058832675166296848986115994107202060031375981002624532101757991136087430857869500041227054953609798838411587238901917273175735370268817181502313853367978096420777526105182618686987111258466015576765921746114246496675018163112624066474831246820332126705040222281369005613153354366668442760604929959750256080701500739873332998501720442146325677763733827147039981793926094901864547895824493889366725415608946672046685425367890373168553785705971541751461348382209766090616875038588319795039715217540998678101412611529690347330756031550023180214178546486396026515845620450232542942668666800297937464705167196020283329171352705147677243650201249591025951686742846714873429921859981785311263815569808922016895180474202031170443544811300101906574321802818833135041541845907637716863273882033883549549363163970790114743258724462090408340540821754108414540921467480591436053290287941095110564295967807387147840405721484960288106121056117211342279011946447085334126551800579787831000776790425485818334119044638029196641906160788354724812027331453764311632061471461757549392178329643602718516486971953006601507640885425285418122036141393671980410052321764276689740569641060136295184260112812796684797049381104547762645451136224073407443955787036439912102760107942451804935008821431238943850331337262802059355699431600846949386741107520167458026889472280196807219047018302603707150638048318501354327841300978013231350346385635544960186029048409272247544232513793724503166719805803828159011830964734222246189803692608542714008981121558574192831843133064743931559612277482156085779820499759731609130607533978590543296497519801814087983294915109825412157334246243152426690904783780791540920232494602228133905176266639674886820555870913500097404697585833967356241842942874792122021833436908176712821963505725873060493527458262448866217358146768710330710358534518668946820204847934095672983096540203318207465210757508500547529475533304233873153462452257089078744091202056353508704508664548653809802015302123482719552413364706271194422773194965214345474601234473897677092902964236660978727583244331573294940670613161918887853243964741335766997307916065773647684906119092092075516607629617789932202389535720119969180743515528699725080494011903927009814187186264541598160183367508853795375173179771562956732427346353980581760169008216073707604421332250294835974726783360778422825390304765539580428850431808212473001470793393381807266620037381716784267399111356512200028131357433723282504316637779413953140711855811519646963330757230053956935880360774947275955868565408059069666884676198989758199128812452518530697675974209257510619704471307815413296332613142343179889268503243263464537344306912269534480272430046753846182659232599460112092038682537775292191883486772962119663080246645638407469581998669840532570489459917933923829843934269480697100533396664845281351995150790604267441241841851694896731968382241717152554579386493413611792568956995033104027515476507550543610135033159647723997620108806201131430219926538329085950261095444154510059699701736518649175439073072013434673626749209181612815467113056214889781082111058346973894945348964778105600959763586384890574843321588303364631938743189031658648932264763931185970471931824391685905358142711976730157365718530353840576790676254273672942468338409519530546863148588642140253103803496343976456991949868749511671603632356930167475486338281687977407635209595979670651825560178090321893474954127189874672769308125871949887810229420929336007782874393086204141970900059329361068705053133050652459376594988609717318550955998222443729441063920393871211256967563022183137264332058385144242147171243489492177588957980529031761811863094974395619619558510327673235188044229389830691142102751834911336068087578345270375291482505350391790772518239228681664865653329957196471548290617486017540529190321639274812397758803106889300372271159318997841296482882360512027404707079868112201975814656043864543564857379851070027698286478395720240877591874246382378067953560914219312602428159080417809734307578126197356980105775228481396750530137890535117600112753172148563189735826074717560550628575450873596476085948494446746551744574035401102330669918968013116643147937755984591064348990499390880709595950985070131246444216231340537426144600072132831143270782385108890321810927307278068230569358392140522602060538571491776484595302251883823876581657478634679929137403138464859176039986428586901167698337330808427450593795276563105296212040693006511314056680967581322914854499368802176023497077081780619165125758591343716265412787770714149597542243865555391846072434553152314613493445167017344077332959177602409593875148086019210925254726897952361305759646654006628198917373514967268301261895629859819962986461482643945620405258224568967792812554070098981278912885332560582218522699801859559511213872285814766965708467048595270354951345571680206550374513532050842452616309457991841601972042402981925624068352234611952256334806443752551323045079916355785933202986300914205883345868336973296103080650465709216140207671197105915228905451551548499570749089944324848549071316107794914965216844980843022905674169874662967755210772907037404087190037356663338047396334324867801116205322326318497861480538551985817832554873420155685829005452007528115892265368512074820769211240412202670645191090580952771707270961375243596478745257649766706731797828222593125017774583334152884588792442314347387558064514421923258494768949198573021879945696997897199930491611890811590202431254210265310349267578802007206045171736338705501731743515192412629074314604583882065069606744888280812602980343525120633200056365369845278394943167498279805655732327958451076331510262168461520504734796031107138801016558212184835760504876223849601720544913340419054173066435927974073228587245067163590209138020089822969341559759178813613873993009533527876750608784501403848745215844746105579813501129786775626269288563088746991333411728332450970950099860690234276375582322744713695012545738371576333120418988502380286730921437855397728548178925553594348650248714483543885750487830034344171191787613705070208403357956402632790304554128118173807095410519720273237000195656770963253753136528912413733791706575269407616430991695040090704545342997122259202518174703546084941141828060047662379841012808993689650001875080360024080346097186378691119583151635012018815488986800735116353712704990824468272022722956313530714169511111128545295200418210457397935610049273658272804364632171480352639564292029058866317833125949780051459230572844214084099651277344669561981868708696798393329625831841335541081719769327134863444121340827179947080243883699081461465093997303778052300098472073064013817871301004120092727137754285149582106413318587786599639779041945196241893749809832652410681904790709573004972939603111997564680061469745290785255081674280836703831978453824427242957398882711214580968037808547359072893495337729535934521173976227971080793069303357727685501248251353981537044472592998928144772364286952431580826865824517970074138309927546876994384888867293730969281360520199007914724278254941763718161898025978805982392900558639222268185550102556920046451612111823249520085238234464279866616515697054301135430383557205271573939057763458532368869327474777720881423205465166467070442323858713829561796111975118750305182242956611958595098593486319190976885393549191256279344972757746997065626851688526872879122566563962191461326642586683868189382589253575022409788706259761381944157179134978580420508190372797501100116528098682145186379513914160428222746173532493508505109322737703626598792732434622285625928255158213697180328974556244895165111663550503800884442485889298591518757235890500328821210489849710622202811309296222884837133225557062832175012623792515340310786707452743056498529559529427424111727983185763695664406174225784298649500133354238990671958354299318160846670359286938971188526692432522564097574757022807097407748364180971401770448050416032230964502358346181399160144453852533837499467813057454408734698131992423936104077455822185879787416328337842353629599761330640041766062061060020418504331345728354290093738965452858518249780112711823919836751501004475803783192727120612150868616725614732769375274960633060892270753656664311925556263621758394657365330723794315208597687859167897273129091695350392946211723003491709461088221517878479537167951498081487651150811653715334941967212861412347508349073925336790063381363083480726993479580538343870694371429781170043779487327883992098229864943362150040076217587850001461997376048942243371780303964014619017106129212097191878035659873001515029301223231248098059056757598272026606951899616548053057223265744263175920940911618703800760312016387542959336853947372318539730480696319863049726168285258211012347063377725532397654651284078455068017502818910964478294644136780376040781562643416396448606926106809694519712064532064522017383001027670836800152278831899130035421767355718922558129823840466500655407670882862020558177700424294802089197020340392909745909076785978866572847645033678852279247741395607208221008590588898121308063679085586567629088985816463855810463361053144993424743142439968337238038339561413584336648394027578851284594477157882435175747203037843070278453660516589470133550634096017148350264400623701727890614321340264201329815208119092687528969634607317817241153812762637780192420893015057222887010965835503472317352668139722548041180785197581792519498200305691157907863985373631532882123349785051149119946397406248540953826601155915452372999480249704389173398616973721980632173203497490957209920752097964636991491963341179479887224625809076506326918854383652310846248931524757167834944443259631547959761550138905741509335116444435507451231821403309455029670787630089698314063719813748195716249242967488419596665397504764538143632102521797655153862015196488236559963004000663802185674233016920641213457510733071746021433688730706450104503290701236625173600618540844976192034452222631222692810301599759658099163515291107854690177950824951236362147152887679483502243488349113670109261639235771178548126360844245370050359429877768311478267951969037284384361850836297795307348550859965655903468790311573532308525065210341753575384522884998000133722321441990643607309906645827971748426572604093488919128142591110018509577046386464548516721989331128083246669755120233707241822939719025224427298656468745491941082910508988913964553393731903602451314847457497096915672756519071523790866526426191335601385566699054993755620176858898620905729807122136397134171922354465043149938199975914708072592967311623786946256410017219812182327182228889715231538130925421478438546714796064139496239308718306475525456188433288874039307447036435934200972885584720130698479890955009279535153997398615222793090868471293888584521151161343162251179927121926837965656597603914079421730102133499272393209744133669997512234173712746331952364913844032765514465620914238554037498212072965761756686327627024415311397562046990611710641503156332717666738609976767614729927133247960455842442926647514427760901604797693969319006208442944407316178114663979956837071108398083311965590917968184386946549754884710871891381317498401433545228142529054721878600919582382258348073784816327195052746729490842106712233692026465085405045171102196430384822865156422285579957227076125081030380587212701615576024070418174538292041251902941888282664626145889889658990568610703258832430790320471927339449085042049348587943999354844478836082677501316177418838911806068496739590718401651001056115228657902215251606004396815720019606341151106091576318989356002608608168772035093501576088108526182598165039870325373264897844390745351444243371551823107111279827784153075115716783742012112351457683742144700327334470950114764817528679003456601652517884632785774729568684006860530341850550138195301269767299631687936283849018801497129699956802796897066488283658443680048324163764036100012808897625330654523216313155024019309637560611983602753767414170382220866686477301990563520222177676840228418003463703263236882583238819139274366792203263120086746603812257080078349403192064716506070848112798975541953364819493705365428040085627692297343581504512070181659266453404203283382784354008374076850635415945695185420611369457349576488657186814186254995319168797809632690785216821297396173773965308549139445628420771498974233471303053439642796373201836024056085144683284186220683640818508240615388381315107542650896039354695331748941566810380993283550463630047489915019979906542503241420454443729874709541827896682539809989342273459382274979253692687029867946902595937858691921392901107170978546102142318068107153694890442659461537337425664032776602823059486192708565543246886972471388273198354135378189542300403816412136252873698784742601033848965514710990178491029577948656699872964108316574654796839729461084143201726464265652695978592363808927878025580170183457653754571384862029494927380897628899654440644291419629080549981867845450920887902282411256111629461056220547785545359048027262489054936380921418382631288365763134612242019209725982313490155069898908418332955988842556449877320934533950460987804793095661239911028635779974660348221301324245052185760192993220679679961689870806831121479104464709869182374357053901607815335577971742723435894161174678853488299707926509635796182217248006792067261863598994679539979790631144427870435512280321162121664720690900398856155600041902371845321789513492680419170257852191340543729699550635968734083125320329508802718254298578332311687237716708215001528112483036285538747565526155088426368528994363540604328857564080705939803748862183525965361392422278242489740088452396880658036531847485519505459639727100130903080303834169080981849536835867703669926335579277717799209064868844859230611567808481223327319232031540146415611259901658586117751007757568916368839762961778979454176737743611325441039781780600855300767516543999160420994878496177760998142219130256274656330814425741618411390421998190217168162541235972556421651941589046751156799339280251423058252787245090327003778431531374228577960694771567275898215195271827951999967668709615649614044088457724091482048360981666431502013381863810814354404037529791901525996442644351679793780621255256406848811485246861957216600245020717153115059821374104287075652763454341958564693799201286265399339451951494996651887339349923977192650487201795585596695698381275402493676205615057672856162606815485773162754172693556959088516509082049560720541487550386383377282832637569649543053057742937632775145245258404118887307084150059944989028768077394798894009846582499540188602366848028135514760778261900388466961591826048018157765023562749166068158962041183619871000135865911254828727338645548284948573180680167852646717642640838018580525278856912172698619228820890104139474868943265229150464241310300318440229952204432674132166429539423688577873310147161310334785860282083695457874436733085969356179063396848121331702477049727790645780613728636911765734691499942736428858432016824821571493452847113485998031962939108046481474660703624687795753880860111637710016013069145417501706418892935965205888774895595824363661879890444319065904839290909374160900061941225977120583657864289179845799255499080691076523897326088720587098998667975294994988939566849478401254317057495408796429072154457610886629305715036354247192715720756775083918543017484824024090571354601318993992843342870284725602202251532483399997889808076398493903874137594401157011663230023943224762856564963548415302848003652321001650196582107251139868047464030135010920552155139760691341366060811306763526935394781299523708978509161408838961662292546899210630732356410634778525139325878569014190773053611172570869524520431715536879211538068418258624586376362193481539486481620703434103724001516559742551790450780791560875433200907662519041426185184399202773519588779934129293495476574545489205584884273314423443820727464556016606407084364556094248931852646722705987238421887791419420514760644250914733392408722540981733688007831707970549440318351247457291451108197438360432596753785225658544294655708634003435329122043721772139529015382452626614051027681460981082505857753791097918604723579220282856895558787007795922014421105410600807038045559155381359289557084147662744128405896710781734187342796973124450616670403470831184494757226346064329296809234168922188353594729504664189370900602172935938231018115208936411609906701634461894503824422933723730036925646201870647971815292928927846705859650763302007951042310279171530283928245858679426899556468478999366349032599107075203165972375314859515793099853512062514896890865144042894078492446932403516175593429540496897382189023503688708464636273609436104708704992206375563517893700959667058467076864162290269647330153567098890295593449527411909629328940180475180482552142242248323265328530450491560083837586388793100156194343480200264375402616290523581011877964278564932110363708217957688484493035623723686938272653733522264354675315563996153197514574956995441284159723776103175365632758908533549369054209729725766249145455076085056782347614662283855279126577450111753565891076294195581450765539592918206457820191099741271581998216202647665899827147658036754115597513717980113161196903555481681221544548113222225549540514326855418259298936561034655568056597242733479175813289617317251691212958285599328628969093664857334719550783985060717905277708312038770024542295502814742195690533090347717489505004651939702222663926227045873575451683882040843755277792667088022625856768643099770069718327832359727732705918343226133451318813196943087191632042553830051180649481558048897853657117611087573582289889996187409554894594102101760354553499234117602498154908354305573982747069615425930375953834610507088978110233152952983605626496634821765933954653500318447699130793564368378546876322995708493910402238909569181237615363897834131120271798428407412356935229349640905591211659694846577687062202949803796132097386842138041577517149161662771290815711357187523070553293135657818045588487666888820632271012123467000576246141567169356234888628135906719507709051325824453935100439053091725370737490513805664798749157641303403421595132814198150323291730218813739943412077799252353618530181556199575825298034697256341142713810224481098777317545712650373308733821400714374117239401161501587956805179534635196746174182560330853043291249966439759056311287816071927238578100049830795399675895363322982647230488403683799128514985839346368474618810961524257711212228219092718257242738405711515974777903764142883123310327607358600056125602297041874778529173414655574250547815306864236530252085999500807696079329810976705017971168943057361344874166867792430426664546759015893046914081787721685692219252605428470881697805762605936520958184047163039057927506793585895212161629852753133791389865134957818998575125419272018966716336539744401699939661726699864613419784557685317187777594347049138297509877730200939000969095873399199425536818762872205027791757863065743528141673829221010510942939276735698269124728493659075911106605573387867119190001482360164771466583098819965087170595972639073013915140414581846662398868349928627187152429130653126089898215074839469014362848603919711606107320135045577317772966108159147963999184852769982958267996389704147714255296420076757469341011155748304805487261621192287631474021329772101552807047447288826555435799624510045340159841533685742053888519499662937774337817183042465026459148267052299155334107839627385810571008741199627667192711091056213240566472890078929276512407867881651351672412951152521553268480839994942636371226125499074759893466195305693015653628797685922643616650381748531914843109881122633852787327219772676385145394126894824423475346900672864131979843455972248258241683485736914883870425023096884723980915992438889650219647415205792542137947138146915105223527707907829296488989052980540149729401900482692651716236245745881246135867070668150255204584918258975216253604574039607295014828209438432691261573894561283796196402667641130243928576874768145126350916781145891880851432730887323054841772599535298762528092061214283670796710840906925354805085327425461912480179232703033349365024921084311409400352591329557144994387437154763531333873948610868655287687430277441720210234478166960569883775484859491539072649610180833706661938633044330492282127680739385024123248597485321796519650348548740421877922032875055965068588425713677807739548865231333511352501983845659398321312199445195513262638768170375528162719523071442392151640581491830383834254237008149354729767456092981413222954309570450926027214614409462070767101087633194248065259225970795079782601867099664228676278828362081758641019450369964782471387930802190262984303545096800935259212174975828175034500046306006225754760359775145237212694063925358423310383545768183119066083721836575894663751509366711357490608357193884550360520408533242709565768465970641428904150851254750120785959632494016019473982392894368483588549719264578385193146111001795627731388581625950677244245682448294326994286681022205562778222772424155933952259611121332025144311351919651250442071235000547732427675928637900817787614058212356987946650682261868238847220951383892254405414974798519589262624555239170330076836084813696373021127656900807202270680000338422557773939110343506318773337604097470768459123387574864649801081488397449854019791713667092509096238906890764073469186221518824618043802688577828078342630848264880094917447810244031222101143791187937300865235388342578307739376805636207513116887235578451706231366487180024589000149924089811455755808623842006590564557908656297536562625441981676147487917508039516861898925980804724780574194706747458250098845983409780094677021377720648829761177416706222406163339571586792575544420728847114726993748222750293967548852185067148687148241065441088886156412086837306122156755033981817474857618701566719647395633940382647538535745287165635769818070211074500512239811760108374564259997514191582113124910968240231458268173500655993927515362162129094889720683842692842241776159556358947126304694788522637080081266657281756195602487677019294116253158349687942033178325075556290129719868541956873701132110693630727482094696155920205195029206645340381567650807257757836816279759489119883323272110447697626058938580552687857261036899132662337001053568605452207322833756479632960115652556900030350992287101929231726926049344003880163080130670807454542309624900353066587109957504078406131141427983040356974064359372872740068927546192613049988136036870823066447038224491120857753577044953028461970436547269742791847946801125979977206424468291964421655578775546388585462761076241467713969822022157854393320347336058779215129021520667342549554936509625515312019648086469445339334800238429736973272628008854623195507966693632108840005281429778721778597251406738386920251259771132401350776586304469798743542171908181123996049713535090096026620240892584610897741341478386184578702409546569502880405136870724578377630262901343430519989219651774183601989627063879079386478772591879668180801079356349323065866356394714270613065223717293310986384028307231329847299444103910755027211369317170928869864095328446711350674702586916437099788716153733131040345583860054084289157634637630377509069948017255727675763483999380940048142038191299604955994429028421459517315668156178359650750609818542192480143922481599025378723113082539161738819817357672159011052936296362194330849819293030223419422513357151278215821947731212744380975900767879586672754253736721998146484300710891461817992302543145920028420478034827092705716011230574137333195862810822122538720011472321266244572185095101075555509116112950701215708024948781260716734450428472573354411165364242393603478737802867408377573676900261697223936292740185039591235073127975561992150208136302082361888817120541509729479659670620117726073026590933285220581151489758060395006815811854118940741468364231579006761170226368632740241947302081255126792262175911711903729651153585867181802774551987694381069828137897382467720265572784030626452926853212114599171580719927928630157183479844610870375439749514945615632009216456466286660994297219026405746738208112645720396235281855898272686694379612863491262174164002676993637772261646382887474205232751589285481227765360122004224182570315743673865081537754432235058887424492221667544554731628765050524014799038968945524555783530025709754156124338389438734376469128611795030660909451250013159426688267292500096852263639795444967180657337968922227955245756367077156627213380308073068045202577858448575974890757438372930839845296976508426335595604527983916730283520315195428642503323950039412919038587854727342911942506823052471312958556127087637805280264219643519008819644088020154353800927525604613395404042546453107192525990622541669379728893866817529746827158523951909284866941098304950553509587745989643668160593820524923268195288821853346355125081723873305857747133692397048600404779453761809476881043282954779601655561301908602693254742381598639343105015980680165416503815091874118707188340030846389909925883594274044005777037799605144193482280894967129302761062163636064431548807089621483330216041685354001357340049765304518644315403525416101173820986088802964464106266467065226611177958269208477492428660600082165803299567664641394129222395082834676246803926350158854815992382646823744342513140326868062456621124174438963893749344533048536123043364723176370285396591666364872069433675131504550531084888086065144000639364170156234976442626534541826028901978185413217216715683563581398627839652002121920836290093872033965527212055798484913742439305231131236047384736593964579021311770997069880818621881123206747947879669799166889283615836161394079747425514806324669142367265349219741713748385917318766329305745429928435926603707740387298349129919705552524604100795201546371235554794792292433397423863510524014846513608311372548211285596438226548180733556229749427052989022701158342628586146751333494181259484795657539152302034217764436136010605070140170001548172961116946786841889696213880192652151140207631777434341806536941602499099726608288712041925647428005215539366207841107572531044996255653532703049936685871584331235499375449592375812644823642758139632927165364916258984673537483047790449390452768982631656849683819087972638834300201769162358192478743403481164974208065947753160630489105449865893250260166363343805745580556750966974101240250201052089087759602154244733269971746613542740509436998789293453994366579812499002873105215900149690958627745992587751321352283159028407321498649762132115038799138301006731999700572745133737045476732048641959262059452979414723656310593960071489954865869112346942695182459726573021396171173367884743110496343845100687658563449464703461131599230681196489958239804064863016464611301446240902924935087009485835551991867166935178293797851065100642328576503294146563097116786012047582789719644406439877829905869297412625480696277752715834272916537485441988352912263552643498950518602689028402417486296519289374576869948358827669019018735950032168638676083638389968322207877716854345997720387033600283423018442400410206166813469348353247831680528710026809191945643557545354080976175966061673708589908517474522827448021251703865888325640855002630110437693209706031610714054216432871355215269013060826576961213197596598957845288627741955803571861495132007671066150647241211894212685684088166452032643969395906536912715043695188371720288251768062096094091559619713443244350075920841000574143771834601886676042812246080069508798169996908637955663192064255547257270009585791931830344293198384874491402644691143330942902513276411453983802128871484468626607312858364275378995793662840200318840304835481688597800430025073354396874730347369561019514424667141918559362205389236489201991022645382048501511078435818556193244141639908296358850060213123216366560571777173928225950074734202961718122616526722706291482933370701968908675298527372103256754163246323242329657495189869432948703378375929788466481771261338146864427989653980702186481357146977727123454034479400327645934374904343351556898437490733774898704302281082958470672709600101355211114863716193472895112993965972187463545069376301334790902904064536325345177573304300772408820932588479831049568409939273052121819667384404379024822559965645715885497645979352774230037170721239956562981788189710888528495724535033408843329823464784185749323167336763326644601686443280951956722963538661340104758836487811868049638843854610469041753707156524653705767350358488381793030246220948957261315621931973169029639400323842044107115661032551602775613483582855246132848806134900096830535537757436260586880018410733784736354877094422468816666994175000207678238401597838490028427494806546119052650290480413147346399060150729610307354594731286554806885425737262789883568996262131189945254108188595484360487289261994130757542748323105585534236921481878456450594760987664124388543389876034831145955783333557701214637765018200503637350327905645140651521935537614180294136560185160292247975092429348686029539508317311609928656437620322388188636638324874941148225595142398902520670963790756888283125191859913441248901880581284924774652491358220641193204787475733218857940736164189341581708904312326709393572198346723680357603968615607641913900983966202040104837365983325986801014854901089923146699325908883346732651849215390295878463645507112599438103955438554635116502712129873889949157072323952378493282811939527635197811733435377514582794711300279361540022775558455260298707347324208493446616756021903883130343782334395367794187292915516863131346602630545247077370868076401739391485856569305393263579847266798245553116428274131785479205336174158507660286667407897381127412079274187157661452351689812871778508184767911022589721066554767625942378347921007987976006193454308067305247999836784316277234813989407114206480335290264195359887314796066103864924133036180972825038182770562522057480585414282332818432806406394510919123378491794700923440551641292063667869679294201433535018100035238671088791350124516515421822714329213780191972448961203107126008143040238543354801248118828190711682088575319762791637395127102095992112188961376622109160925350305829144030094845218468597449638260826058424944806812053605488434173775322132966316903814151378441381358721735909315460076034075870978565704231669483970929171000705222284898784372802855850211269072332756443951416610994009015701698489134850550245788541932559236849386375982147639022647334140725188627877669946431581770742086349841505644920139127992831223312627023146977149632952229630844043287697053278162084574947817815463853584866948641052381553004339343987884744686542551809294584508324478818606884912251094643048577382937956185526044788453524845924495041643718894117917978673659545074613454058502806244991751114785331586383316630632626422272041407277669356326577763825386746400798055662456587060677986389611074332638564260387764975113544294178513448218285989963059180806159892385919993957046631055612951996368023660160890491758133998216071633771387316643997725252268835734799925111117707429805977941762765022547877700517319082646449454867178169265691351134647404179793357866375883160003062525219278795107130255402167057021731631233385199737551222666868185481315374207559864550300682486739124059308085990694126565685606823305307622041347004681246463625648113207719589511873302936144681061009692729525514564642936742704237557983139074226301840597833398442779793284913334213252478736850581133375131220441762618733269310476456563278750462652177176845963419155820844368266441327132136359132521462094132529613752437696399301933767954570156001855360092150702477514137154396689221577678323071602082524506868866281501866816411947956211362146089712519903148738955250656620695951995200533668570572283716811032247079331828920129137067801972763157320461954975171029611207431118267206836484942700887206206208157040114589011343446009467189539055624591277308802310599766077913551929569043011371468745158054713892826177004752206616918481250196800266181131976042183153007237852544189007178223607281352116813426400093938145880692633937765473190706424944232781464129433270264167394674859728974951236334530582575494267929375593567025926974505852064735748124104569296803951454852763235842865169013792395337743197587506346104486074153987514207183823078275617169335314977917412445620486260888035530230942994508648043207991354260135316460149810464609228623784258814158166136133875978627411966267040701133444604483725741866023456817958276842813044721610799854079271896039397655759855903529890130717275065551773655133141804517928449537113059338208578908888818638182968673686959943432633316955430775986777270021175012126676869815237854759636851967454347704839974912971747144806918401886335044220986552233382967019552447337001894992486702529591278006077767928699356237378146340078097112484086127918333716012533368802163186946263439529910227748395855587441246859682817450200687008420341191109158320780523186422157839901005336295912945059521160881003783436375193237468145529783125809827679143409022011335379524967580705971840395205565491560781296450611750496905803147101256436088866091785127792729386952361987091404718168778430319279633136956416467924067114671882619396189634386072362554195951137191645854726025701620884796358157099889814313334519512426958610973805585625602813113781027447393126537954018624308383223335850454108412281201603645549117623437182263933304669001240647848189879414732896447799946233706926771598547301272087165409948108338550826445064745833450281685712649828351510830437289825668017293552677296726882772810776098391483875970490138900713767435765201707272103222400926495157637982166381123937186323507711119211676452881206865825564215745411134328828466632052032873469516202999567901157350765117899030502957862034555479002687029769505042491235213672209787719891088641683792136778350388656258318238533842918706976953229486730889508169198248136854123981053083490362850101124764614920411897796683885001880536599481026115768767208307526772175273342069109294188060306671790797647046934201737120267604740451842906622857017536633655158980428524809180489634748859370607536784521720465960410664790134095744611550950813241233754201713735251274574966857281026833535780486114266299574746294717410752077634507237862367663541288640562286733293721816195704138412747252664109224983793898191229696006105889187612773129990740016163009079662737203514418921567384376240047637597759299716430520717958046727300282966949816179160785124928473090618519139125829138441385457078156611334319281601608767737500469887065721071860881352025228855903267972783055521125754270332876210879122736780780116202116245926158487770307903559067759865538520686533350197196854623842685301412834064376597040988853543460864776233693324217673963023773949835951524561549154095295438135736598788355524762526284495207009356059420257192080296118169368756152831582455515183680651600750887431350422557521884794620374363881165032317281233024104355660834529609143029426632503314101356778692632316496809870703958401947488200182808928007110228899523338908433489554918269796307426653165808540021578418013377403600738569729353485018379045287009569119705676959205741712296189702174890978307486518072852574648630476841544877518050286053832941918801542855388654331360492411468961734433792860805339646162946879794383639712878291264665618042659947374750456886616321542861676736769795032874152659032331155701179050340912376032798075732033279704777712843170887868802258020225078436678110379261935403541982543478971165009436846311369552917094988946535419735430667269405909227988742427251676614740041775659192863455465985427454835167237715866380102800134400228721599000750842203420090590043472034286806390338627560999655752521079947584750741537861162055462058369164046524593104262752279693781045055215853999810210188374049173269841032539142655013687182425724401396726757866371383133973830938756699615473954889669418958050158067714923136932595837550188116064037561466632545253557819718221400094977293385745633104882217432000481662506435384244270804765355229669088767280446773457733097046702672259121276339108758851962838388320266195789710364365434441147448282143377626544675989466584212851291908179661507907258100550460173866737333924471537664361165150768455239528230913202379987091701360729452445895333633188615017184619935220149506207902850328634724171639450995599649248544374113235204189608961358073539746302624519192886477616192378779432309807891693010913221295377851001579771582681850581511065154366565789985446155854215471111676815370632097966498984387007751319989185112130880165069154472838430775389018491046752416811270191913317712102308308204582024975664914919020644436355497271737140857480532153189651734973757437151377512378901486717068051484183805183614089071647586718636902991371627540957706453302147019681373854164128300872941975731347696231754879676353242573504552920216857586952643477192834528964153060361427096202872348533167446124906395382094717132539917690564197502811901062800622421647303296755812464053933060069938157838349868784919603858431406673056029494335959828637803019135215809887835232762581620026430326491675533635994772409690775927208859875009737049377465877986598894474768084748862453375147198010074254961906025587686110491868485700040697426355307338780699254631813521690092342316263455444348296330909818718296433831411862158663860009416694699711299067437572609910341039396225158120444291299139726188564640073623591703838744570995683175515328117962146538051530257677019228283953993877576080282707240479307556590439300882510910410064811154965581275212067206296040970697392699544444821404447044921714883977793354051597437651830947018387941671786718031027457912311885467495521986357386557576732154082053909958377606196928288153331452024801760004080374661337149218437144531311836196957944545708993013843726750697480127787657978021906868840945450619589350000371568871380382787079444117820806090088017369257258108777180411999282466759288902036154878265635366695025956106043060545749836970433647092837162555564289850262327280992994425970478628085887211529853205553625443437559151500532563356304506902297539830963001875170362754114394719107767972583827978917968090766044897642082661657279028705823781049768408503905868917316899865999064371553532638768415157978390887973602516450901446166336957277536212408597886481292433406724628242374024499933809369042761463528718269400926399196902767705748764821600445344545599013177785085332100694208883214054091600367176761967699501484716515670423354380042996682940920433918087615382364567518577481866792828329714431624027437370047650775000279947690419034064829925388467608361478058606518168888239587639737766691305341624335905580716723266631321240801681964752838201076731781214279728134229608328320771497900515015161376782785904949985828320622884514958418209769552458312031929071771288327067101799300975153772714090607981496259538416560014173472701497759276012177718601272334288051990659857689338582576429185491370830076794906410992956066796188193135992869210593461759779038747915607201074304094977263680617791872407365485602915489285886765304675874423769119533140058333998418164856589005694295182614650558553046064977829311315238202973702667008535812275296711902245750683883924581640687401019574704601682861478035924033612073074102836956865649073133873264658974440385562221036257003751544116049237480556335087260167913671265070067013925926466143970041963273370201627478980750187081133920250792138195437068295585755403400245180080352083133217827066176998272744646703205442126999797197088011841559207402646124691879722559433711613477587505527803225408501688212736841788066879974918409359297016417592039085017283215578933500836221540312846039640489860120444943016329413116977662187696050765363382922791726632812534471341066237642564246269001574350428348228639015952425050812404868557229583629767970083724748407887497834590766748826101801537361982225721311516995703074420793959179985174018678624026409685705963939958286702816684597852374978497093611278428830778664551134378840994180320858293871048648057358127745709019449978506494813044622070577410133396813066566587766601619220322875870773862298225493180408763533770902308961927869011016719663031253955937360579832227816595594411688868879091731907075545865341349085855807636865483714098284384034812831245559988355227458310311613161413301387588011628030950625645759892880529330268385208679144079912292594860876178328249239311082627035498587726270406214782600267421868573268786223181296719635123959078477246631916192628768475200466256119800370409579170440717943990314290554243059072955654731207080053753843031152538744711059741061076811113696816797409084269942545266991725995342995551858479839120833505586065180082053469475998125446194254502547736226606242932205201827299607675886379857762400942753871322107186969305594049437227714776999319507536282812436568765597948645079819143052607641461408739730809594262593209450050643285076669628944563667312133124088780766755003547080430295071752321336344143667864443941248054112082148734142661957105727918400790534201769533342573067748040341354587570426800162538058378742175394664603616954543415718983167516768717975558730606631143374401922101410573994268165017669622395587996159106790548934858848020376372159925772333818469466415978929499627966791250896024715027208182004583205059247709427018059991639021119822446673563858053891175118154101889205725163451187056567144728569814051434775545543670315248626315204663972152926730242163719381451787621658470666760219893223006147089018069502431131859873233069042892200114618375295791377423681213573994280221539755014522847223513503105743205532577879337689385458315088586056523509390025263991718427446988150294529149196210643277156077050832833022468380241037179434728169499650551536996128132664429285645948941855761708881676830329660238165642959710084590914498442374687177513306142163507488720405396559825086849258871179180732213509526157317432626401439650215566897830015378206065991305789947005386371538184448883150008252819735021689573152531959005246741588468643757189569854062062573771421255814783639501372706801508644682731634348142318985646167828955857214139878990090363953194452735928987980656571590195652989433837709751480814243485708526134305548335515669782177379896539606617731128827926810880299028954963987629371599502241664762798875248388377628126242800716895781704143553137102917591910865540571306795933991931687039391616052286160696552813484918668264566942453192330341101417510471572306907469514649574586893096404720071545944854141914952102480500740360131913240223723516867534611490117471833930980549823339052585734787809781384856310581089909903507319126856403798607535159610974446005804904658485762093740679833495148384313456081521566561381032567262607923977804562335525054845896257812835395438868376127423856107826890463565786647846710041366176992175095284264505526795403648345740453340989263688663826202533678554385561353299308256242598146840254491796417891685689272832885587329074634187124518737528008784281942414149218565495565629706190777520571298085852503689815478380507306651166851112903265427561106529879074570111739174106618556002608979563075286806375548902710934367901518134262769851599102668281440796774318575411311343138807192876583125582901769357195863072038383761845880679214176516091782891756555007342493167966738233602711953142185223374345238202433494826343506935372761694956776610837384845056284605881847246301781871442612090061681615353293423208999976988818939703910348302358605254679082000397029587097041370973576132540204271790817639022538399579926705530613131289872088670239381519367028659605729843643114388741776398253689513653531990850407430427611891091400987733064252690717612246049294337650191965086345532233151019080704725279210353120409795563350486357119909240183340421671580668276521258233363111093550505920197553712538362113897023766524319862435665353906741807280414745147827957556745977120401659782099461785794408465638595596042007807628250095599434056092808283225982508250309073523944149381850394770217844005072614832812238760879068860965576991882435760715709350595244885354453186792699119132353771328874087871786476076443957951389841205098167022790520206764697279872869498070752601085073154621328246701573652762384125129933698096949117252883340568769882295066286980764386211180507939751686506007604765962090451849127479867082587187321719299900917741579542041540266380403904306599934009163590931987411188868341393246441037785980720855930905327662548938192027358588046745390226980334134943837175532283738568132747960798680923320139171468849916446102678555208281422820505973445648032247171273699392031264888746976877624714279882167650408380088447754127967860698316547959870118661993858729997606915237227286178397677463596255460076142928273499776024178453920923783211410591388325550529380455845120710778882665797578443207500451045809161039598301343812526973131010400790599158296340803262555529624599284268070401288303532385279598533696740716205495163600534003915511716136468141922061054794720254748200727976063534771126293572343807628540934924840892751379682730162198857594219944184494621753010508947291976862845489937040748039155102511845261088172235258338573377861991698609899254720266966880732756529057706163131383504887033383699610522576559973463691320268744275306994847388195843662337004345376777802608847593561331673613352401971554766855762593367350153395158956225087881586569420167277901434575310500578622843858378220614645817473025450487698046364250459689030150666555848358567235375648599731550148281820027532656470954666851954647101433557425530903368706825314656312520540198577732352414579786224195972129327000557173345307131866618144217730290239105100032154551468728953753080409253419255706007231295785022883735224112783824512104944434151137449373160944376054552505252460257221805150469456399267844570988868552008213381299052792108762714024163975449102688062857454212203594610387111096775046625948573991728248142891479296526501699379945335399646849759095765179921089003970734770370777088383688317915210672419989694498282427731802006870620415019038473949553237817084766268896083015536761539204401419867003287433458402070488693178412492954382055078284500805356072276993452102878012238389342168554013541826907997498132970565094666220391592740662347572761144586121540838442176357580175760618750036535844981072905735433254183776452842461848786202661463342999513028797718312822380471883076196121594741753436659400955810485132336497068924672966216987134579038228022630668991394790643149236315143882318625050675348642295194225082242123114682067016440678941381724615586660323291544993856773857273662387944597028296406399952992483769223009436352846342148928583422361811265215925942566589525900924469258591882548662123842307116863210092957161559941079824369809794613549629464782421950173196567926246284530707280108484921751947532364720871570117950209983022244933738539356732236654719046850045308642260662698928654977158940870775583404042774907340108866329006727023249911108572026700516001049449589441863972384618982989353832381585635820408771258959367224688158540804113142231684905278793314218362834069603372597169291371134952345598180999300511261309173852449875906145916199559339224208959982041646391039336023156689856452736323312705514077343578314012913665467433241054801425134898506781740843089447417880993377657355078485834178608890949138745360932846214293935788111758727948822619002626256134910101610087701484956071922662711831603668726852310097353337181618171376616734414921278028064530792416298286695527539257188379541333918049330094950486924530930988949186356520216099555761294552766950701307305882479585773415175182048815043634669346244804065047207492177039894823565320990923199775165231177619466572359551403808702266059174162444805697945260651435860444053508653745800564888345301427976845849826389932917911572893339658501745802617623518474070706265965371648074775596798363733447898629824104699655026147233366474122789239000151678708248702222536831604055999740915333851767067099483495496021160586857272361449145444921069873110576448093430789931676994489975826532602788951508032985521899591841378887550787265878561487773531104447981904489570046094747001262504292627955002012827058085950332586620138836262443201852651647757112289105450110777245833307997476864950543006850507611493950848214481222228389843948207911990840234367994933431076103771480977490381082927845354332102295061734060292804839585429965121236459620562160254694388847130648520443713509088631668964086696290030451824804328117167539524972442691101368196094775314236533496143110868403575008803915913882370289720029317349604003481002624762444892206268990607161291161186851504758100018531306846944052434175161530574082103150213570635476368808224655684095269198495842954060529126081160296419551317912768594551019995484262131928077350774296505583127045485465708958592844010006930897093478101638011355036925743473479236663673039278074536679823200674127612634034842885650504878049392328128209747727303657573317733039743493453314398871993286006851183500395215574465409713430777360557013460322940481986230295085799720220929201235804736390836677882807840051600147363154691665220770800867914682481301429958567537796256867870979396479140444099508684824032005225096401731419489857118396599795479253333293341436448941516056992762074294332863730051172745348950891024268825584439617703094650531760384059572435327818448356953946806715640305331137690229812455237764666323647911201168531872426031334137423961031789531817889409774497025388589828027686577547140635794884925609083515453870169192996253136182098743392821469607626909200730063629569345560193533379445099121638007046600156008486229593524487576542233713723501610094828850785189612649712817805558294860752107807466275073944977297856967902553708735484546825493564829036388143526697919906471326536379095073104466955334250309658549772625351596643634486180783581700399672882203210027869715549276565476027128114060446178340669404928517187864792917976598044686397699229211754502813156604545736090138341620789515784950545135268583574549029174499361965244531628299655482712149098598417125868775044597024215126837656286291605821645124773955965876221493316875323047902999357125613435406941916845440872429821554084892815970417708443567566701258486047981279061617036868749282207153348554420894559956700231479634481815663106410783322309663986508037421080041190076798987005201744231566640143156148926580510005037747871869769572292631095419517487302798166494230090398408404728144759238796617230585222949361971801877134780823300991832207712330044991657310207271435123310727873660475759029311328472413718292710734516075782234096066723512251681593642173428959991197129821142528550357001537699715196115272169466107235504873369424732633600487934710554216925281601600199370450235142179454082881090310204572315273773302699988908884570435611388308033612514043062588675814356617246176670513146733434234845901050040744438720240476865279412468947302049631632849296344458764812913468790357440068513781788713226152575504075105844537087462947718581962638822173427709363013568195294432904365708282763454982964088098562835931938608591199361744503820509922499374448391549466380284810519226120836664064974994868329348695211569456011467236849044121827892338534035908566685352144411564154131393798230614677613082954980389373105797567238760553567998206971778103005784450430992342408787772439707906295110124489537121403207587967676472323037342566681593125686443340460828532043842463944866102091505044171044692855312434567046850544516360453916316499426902453045517552905398277083111544666291325876374536771540028993517790083353458268418936214033031773265005035062657238993612018637091393147379444558745664628491057944879155807894980188870642084674898221968577102871370100499128434730702455710355926507789040427069514623329949266472595147901731254905235552916405811881416541546686457434907435315187424014474023106086860859667301004974541707404489211138812167250146196502134272598580343387459739007785965047071458976476301838310044016671831631420267082579768544819119244813697346825634039552174789978373742085883441576428105606694446632861733860930763266314849662357128020645725357402120085507530210175209545865713778698213952964064006498268744620293292654088190915326909997859143131339715711119518788757585827515381328270060226590196867557905828124460911700498444031299477485986246625877600545724370231946538678929141037443660109671617260202680418749724891589084553007837264727820590626535328794390679475851857872892409218231538003129234169930643779271091239260445565128995148390078938386882430346529584862253716808378447526169835553372864017003470682375842992658563673054791010887627050903999970513081328115952271372087628266745864127514431315476207909663025290562528591769070587521179837626204577191092881071549410667347705724370320713666941273890102875463954388058837403731719292318095963702575520970041018394280871137418694049219625922923061239097108714356270185603497494421248611192980149618294471804714334089690178553217447959967715736382949637605393766072202228660173393708639940421034372750688561792087953623669367726636437485319166938825830606513114504466948032808380683320356561307640697981667099772354300790549278189348087311789399938225047490598514504074903185186684968856696350289452612693540262391535505171324714983816090124866377469761843788551205037131938067153325974138130239958261610014629447500654673949335528908585855710899321721618857937120430985391538554915255985809023234088244763810788207719985533984979355989536723993965831294203820698471703834088832303413876867408987758971944492238731664498783022314461998559954206650004299220397697070046461853503711442537616777689536379223680131038378076319801216150766469153280562916481241294973461119165937270232907263274768611178213692095098274065778579426684722540588370788754918403811920079785375390665249598006849090588637032371000670791603803820842518368291502507821149202987120925912923066532716117084590203721263385421141707997729492830167510856644008499030152665811720742610317888463846648666380399440641734865901782696452834247542648940614366335158382205894300332014535243395112323553967816095636802967605897889903056214904077055719553434956924889195902905654081361556086117489203924033613345938825401234746887740822474975154065853954817130097844461906229955123459433656294463362814293359720821657776741508720831457073721731743582616694623102371189584061113593747136416846512253033065050802879981105906121988368369789989423785241667858578143689270099625823586992715547891296759824646144039779384569370264595361649379082856283594404188721560660520126381678335828151047005228362325569842665877677381536956636546918333987295418984908166987563538279755369481962359484180651116733637977794007028054817790011691684000569618040234029663388360610138874628419280423439238215304779790345720693589964600214467206073239664377990901601231600361424470039891847674639253763617935868398430974201953646350831841411406037399187402399163944765105353853932437687908741861255818547256632543402241308409777324194961658539264039397732249492864815936223097572238792016077571138410081783225724367445498578585650205452667732427781926563336957965791333097396471090248185887625734676255751035986372299394866078931840737480318395748799901366409025773459279886359783790377507682646327376099952958788957040902820533106247288552894051957617165654119147638676813624055636184253727986082599311676139926970054135727383998449484707852493220911501736186957034555933878554079866948832506284423463726738472752979869252094728829252969260144234298949194429250740569412813272881656756472006308601137573408361423121369506058331610326765710524737759729773734521183024178796500063614955241898331972091901010485247410814362981718767903980259518926233671860615098145866492108805144027225914780738008169777304776240342183518091592063794978618356153868761531072888294128482787952092220855719124355539949262960230919187975444367963733500192437541486944631956063810951105264063888778432646937465031233100524268971390065749264262183776198743640830762225307224248765180555216406537937794441485894221265920336681441392179307043738958150344307832843084911336811459760329735013349170638596185109842453917398141368301635184273547824291419238773001784130814638556816379751270775973765615675027813996455725022033171120343973273167636657831541204142253848778276458166973008948417725290271560221011055763066739419437361147482802250983638386129835067356192654887953608486170019573524194022066699961052863297124142745154255124589762997822199713126761591018156559701342822068315308856982749714548909401099549601247654719052667397001486122399398233689150528129091348641245539463206236589664736491074007164760695470005536001529166165387000653743606639667944710281807443339501845195042359618830794595988384550276609287061388898624482532287730535376801778226128387971927559042807059346546130617858034796308761685374051821402140367989250631044781262174412470274186183574520667520160360009793438166588389011159867337155578128498663579817229388064051883586116848840235597688553463477172611924429827699854898922894951402817612804238667893293299331637711733223366264274552207457146571540603849897188512862773041827313486384769402869628592684265871949315012964185914586763949420092057045966943863848984190747508086858115562619843370172577213246239792762997555053375895619606927410189793157215911987981076110151500682576369061948116221661866108549808584908800535137838341592176679117175368239504601731276777762361086660812288050546262926409333235804109214546521572270309372840495472288100514188796608259581032133287834858332121183211249034391148966655962163061032836292359240869963863428027990668072812333713378177705457114246467735184786453586662433557367484451415913527177385593552403564780318976937781611286186331104591468763796826704029287108045437663593380556616240854831966421982392786098309019045443144806300645331558045717143608300268856999887242679836444546830141807246049154562454392480967285296422795875578805191782812310370598237820614260043818998374567810964737889839075336105480074552536724468125667648349847481301799102287423122450955122571457455549390762744743726858245374235871437860882821182216284618475016503078410611472826176292943517187668968843790333834335601446423366581014234866176722243748550802559539019405942667969190024614528281433342743845438856577418808198572963837348180483955279435568315584589428318761515867566194655647254538400818173725691773058874309000335075697240971290946164070966153792484257333361242910487669850586211352037851235027970787035702949016442478505245298564006149620016980993633900244997005911298534230043885853376896653128858863398011527788608944662385571557992956696466712753408705669310940248243057482919726606459222927825279983709749215577656043792701169623905997053835092438507780720427564100562457839234167875603477555018402318537855379928604635126622656834891852480718165086582514520197539496353284465997300798262562011412768169119311841848961761355964797487920413522771007631123105091990124506119413042883980900532914238046306422964089198733142236152075289577672967728609424788220523673066013631000744719247675945334481425237569619278421811661622378733224862858571726163188879508772673130659643712037301483915430958510778644094201715663216111019058355697165660498115526495096326326321607533941412943629600156224710426334823248339550849270162819841041689838759567480316238304177106514154504430719829970625245182957956077172762562458282847306445529221705747717133303339793581650981922824294069521213100721609998837532738085035344531719500050101731341360392179955032633338808753971939787526945917676809264113554406246509901169651495789187517260378897939714185019706149286212443957211447904040495489932331005214438647332037023069513460937344286567282790838197864310026688142490405403784786893322151832031265348102705816950373325241217488936304745118567978070416956451474142690057733801545173065255956666592660810968840638519240298814590216908399030801283060183737017193382450409678441625089475905386374564148815203179378350082754338218095292846638949841946840540553440960746258991477606128040749942372745796282748032326494876444919981858335093858777439494052731673181822839498108843704996881094830477077849928289924313615160749855802063172040544211618124410844821318462823404915785775550170695597027141688734569791178675444671794925699355189670790622965634689040566401099984073095608226743516412204760757752086643115910122052321035008137018943939563400550156286181753669949566646859395666355883852298403739561416680836439257998833367161693246973550416233202486608245429506244729095535074993328370493114840226245262874855797904672041475358674521662636102189798451122685065195398174411323004206710748636633968392134948582184523927305468214402837526564388015840951333978983441875925775655554974711736039176437362363653488195644382541578993713310786467339973007634473388740420766005658192575915781274487944809865117342328336639886359907580758661810355248683038439432251689153547127006111613980306851155301036833474766353604126787338837195513692346226225280954631278355456377587091197157328704211771234931280369087633619629686165676837560665086729429258382508060873045881137431898902905315819642882202609511692119639678274449924219390879405416509125884439216211896473152226749001720610247068415980127426134175428345836947179538579059217471280777998241977368171680969905714285944387310667048653557975546753399025704609766395345915405876497849950291546465534448735925108419401988429151792115143467322354761777239944977815393910187346015010116341895344040909740492634048329149621476199174438761699022052328568490320418229754184451594430494954420951375823514158143786592738477247270278903086289062209531516022260408747206604331264114505393345242321784389406724214088625468971507356190496315061423636090117744280895533334922710663730732127597170244673933135319778977983233326380177135972292536707665730287475089756127613429999974252426893506489757810538749780741215797880586699933650771751040941654368284838812820560192153249874200186932442434963904044058439191767513098487677422741401492513647751542774618835303895005281611976581816464063154495837457848957781001338271092061336384827341782789680669302228589392300767679741701058336649772983850580275449583309804348595562132655566090904329139969475325242028454494251327366613711232765662335793650199330295731789686254472725396695665303249728094775481901438052627013553199188507739493514369935610947380917174727181274413466686048952034493334926585340976855065878312462972479777613043017456110140523218539133015665708652475645513707097484526247713184203785654613637343681918004224400924468416188829864335961071161664995134436330684167595924367722423568665376304133328363666374575767492893625305098773604273668023254442602216759699013142421032675884760608436889660962591758508597519517621627234696839758561013116806861866593499019016906366731374679402822140098851523461337922534969727643032440349186498361673511018935203012959308563533491870555288275311390191992402239065212783799938101718061742829402732389991651915214452389374884195104176025930544544201093647754809096149040661997538367216837848140244459419475642131706573462827028695053918310666510403079015895021518159440832649076378994469045301896597163494898709235414775974470330297688794730277664731156966779497896773493516856709001732609730159029441798381440741714630704612276591154694432921682631199707553287888185872102492021543604796535507980930364584104812688830331490160049126224234871128004402953288227270001934570648588993238399442938646198005909906441500733468927327297008734589315328602492992326734691007722596573445679297253027091820825382543507783126848829733123322720332417548365040277701771715064250849619290582392883834499861910898812705194313252078159244481826079434006868824180908970442089936600780943278047462698850897977206758035735888673218287100867838907888274151893828581478290206062976973052688059870462056232188784255243596651502146447798198395623759487452702668967124700939658516413619518167499091051428150498207964197757449156628119693076056692915578967967356327530009259451911048956027670131395287821490762833891738073135514973607146177042692683606590604120850439710099019264546784456064555794736808663735529296703440357379865352093290214038517779055025941573215554226544189807145358958256443493014680291726042063905103810459887547170784025557190709979252898754752904716173948573526731821416964610390441244038365515968091722472792108507252224517279726586319684780452873204360179154117462010268978666445973856717555245740469865129011881264176681014058738632055949547431540978047359575565111177544324376199812894515760336344713071015941563366820565965562243220281162389333940804344704429308221088114299722146403720898049619155867192864007097478259673353547500029333854637058079400703743509907015361110794683979839148186470948309960955429464847256149205603779236132945375279175808589146711434089859122628878195250319072498680482488704684997519962514387402308622798085587592006854112551868305323266697405894562301737290923704767330080707138242361262120009756224420758747985179916446934290032811994863320683229230086877584695395609931139167117374662229430237277427239232317398690424267100201060423747440709773385868715194636739475954004374577909152538552015309785185936958377261612756796419579474227495753538674074502364099116837726409808857884912704186374137091381315943082191452017462759639432399790790773371479010915188003177126452564419307424555246423779235356890943121551542179966312681426364850898545156351252562270461059128788878617139752002150161938632761580047483769485807137528935783552269613793703167435740487570878666962462686684110239906399677669210153825799153874728723650298013709775600960448929379004343913436261333327382818934809972228325115002805377425551885002619229749209479271742077351036859701692025857088688903146166837078219586637639705819767235646782203748908917524631189296020216304278267193071632686621685160363288409679612950866592434644840042820481282775303240124747609667853979187503715766698607436614747715019639700172357021685651929834499306234801489731376742753505449160996742283068957188233388222032454600582407248331151677527521540220404274755435237495112140686796818552124090800365350921605759669332766322341738869216754367760353919908141241440946386719739279034060394513364446301279433016073637627381133250482875464410283688376003216453487933432397186486677069211160700630211847408653688605056237056674998647533632073315789713298770577288451505109206526918352797227968618898175879226693934680591752035578398802015028878962619967074665750555960793410160640335610464629843499015744685350651608608993962149749628376267530903217832680429448156090319064036841539961757226870184437728528172863068419776816166641936114530180385152889693519168185822151402529817060273216434779325725934742966656391383992868472542094196689347367883464083340346813404571929831574314138607416798428757610745918649179734083747502668001744254826778165663119073475208245661548918067736712237732423270965791294895089311711743925798154890167258988861080544951723240199038085276412187359963753122489548199804858806654825551826706661951328293342082402047058121884149886481959169030054454278557241736619651260684748049794929509735072923406281766633397214615815593521328732604919553478493134841741206046281748975766688899091698486847606408484822376970867539551712535132618824510557255183048378093549146600812254524102020375124970685438549126381212916800545334941692164674242892501848294491528551536895148950466502407389473291112164668818706278012014546654647710756528411431695077936384149969908511748713296253294791994829564267424863759227116337164577911597853415835390996196711081291346441813824004097674617344792331181478642951322492380910721081572815153791033980293755476456986555107280146248299176822338307114269926819313352961282468379344671093954553615043106051343510072456365695051406913830244508012956257063033793396150320126510350186759587523361063467077299942713975283873339282968227635593493995650345816537907407409784023381202041616363216402172779302955163638095430393014689187367321493683503730250108692148683757708929552162714581102103234161509011825442040091600365636228851474188185353173995603119807115987692149336605017307957614082904662839006425915671223364556306696605378367895175042295087851448198671696088985719241363773132942852811000729943260916337980666461302259975931854042170022645024685274477471654972207539649074485993777111918311670773505560072269955284303971517070402882122782380181054923445349682931540573954830666207421695044892968940213513823283034811958546971849227174455404780911557480829383135365479059110252218339859916716860977092179797930624473242897507712989463440514307615809735746226869656733644448127939450824892931058194161855762024076311210455936110188337747649926043936064119644779627882601101986478180205972581012698511382825341188288074298910475019141961092432340622694361617587836110863117002315169993199354571559354425601878373338186371489149829089176708564081548018520467860388352923085482348564546131175673972861909992091133944739980683089424001850454936422425588786410590462689239808777041690277796662525559980752688124822045229767973527472019243250298670900838774607182974235174633427552111163826166062767423918775929822308147653218903224109661970143039579312983768469303492738030583493353925082184104290710033087212890043127038715426731713654866855290120653300701963989222002468600764627224078741282034990063386018364426293439080598343191061978776296204637141117265568857225681548574817809238087687977795326408243584274249663260458342774449023431763016247092340620665036467217550337804243286535650455614802297781855100929982721746254424693035169647793277272727562676963770027689401959627887400971154384798179042104096210851299872695798757942082811707494723211783905442111433357297194052378500438967784183746891765628883684196263240938599232571658256242951700605887214490642009127330919259152932536758305757558427976370263697188926138510083528088331540134988543798366527946722192511096096023203035573299892743670795134031734523685517566425897978466683442726223288773299795527288908002237048874856129612387958359095143094520094178936624593015057612650363691441753050780800157150393208586908790053143119022644152183171604737189343290337774335392093380914376124592891518434512105790972290861167926557135718934416059077358681318422184380561587786972839434182772547630877466408460535562456436486210393003665242329278864311102966161209614061360914458493684064126362102925853797350451253408859691944154957523375923553615732256688173768608226356810532730948259638641421347652529562524495582391637741283809261132761649989589202139008831514429668664507903497387379943064839935206733939237364013143334838123126903869579754830283859766826766644904932464352834076799562534871925104784876800798679589651375656437936513899416087710672444942810257450943392746154860454846430336980895679960884881097683670574231754969416233598322821609933529135946617453993653213041826429882624521016531614312783623633741955079018812025675017089241694032610182104077830822930117772697287543784464408959637393923433929578130619606017246558966772283103419547943995338494756120213767302418832533299115917708190754225124441126174571000920529838835829918198601534185772033000405235229439507920601660985034505070007769738087230882373191631654072710147663902339155427497148249913249240312188016408304617777217823862814978904143826181040474296169799327183159012393662875795273016602561493886594359053705579359371326779843232479242119085018598523541183635001134919861215917184363534453318233599519410141507423936022722718308374798019200166259342291973996449368625129231190864524720508679682737231686514547839526899534957089551727768850927484159111994181859422607029605628528262486714978142308320213410067876026903629251655361766684230685021468104439287782009034866222870192041021645117026041139349279967220567988200250142563185811436257258426935647132359855005928119374442513993502318230253294977002450203751589794714299194188800719230382266695696968450465926406008106892757419761530784050591050348621731982095098500831297717196967088837875061459862365729210339001534284191331262289574044131023597833463447177187731131592473029564391097276783966609225477586053055821948061879560285645071686426209033947690752470001813959490502525707943777301643448679867617604050949102557313046504271338373998222914970836688433559159176829851722114285388917804044172301356810995186053895132931281210369315989657493800003297704269501641047757700091130934140849487137333574921325589979044722119935605963965129571985231554193451835834844966467255305594613101473893279794873332267757128350892383450932334304393832923505629503656592533738292009302786397020795727170641667139219969703657250092494443522308901033062220066109197670941279898211658791699937931258110023561485959843166574945523092579680827644189128040898687957786508713063651423545069407295839244803003875006576564156717736891373332201185983935491916725824052208939730915060933773471644581989573954187365447261766903206398377705267803313914645447812590458806315889049767557708521827093097352400802607923881489902445313202797515526380780657330945922973216136355633422991168484721739024791758522220032103705998457963977869811919850237961947590435903533926409814579784053027256211241759880461060142080470523537641071205804940139441106453194170808374289822694521296306929095471419440603519445223646566159656987982137791508515971560938597299864258663152062801467145789545405938219619831587067755642859215651245970879286216802049514037474622269164564369702237675774584751540664449738208066393908622057655345814135925861125146598122810319808311579153010769201619088940560709286848410246348867448580656971351029518046685696621766895227919581248874066351444791109974588376948728707412905667717457101927209119476949009107826174925051773280424455167156813778484424029135499388229999901504295683647866205090680170871870829174873070271437322916932675628390118802097420700685531232882362543009473313479078249853632258178903642047581749508596657200947464957150450685574826253267213856862376989757654106958245100840162170629488461284254201026748576871542968042067118683205885536708480376599588462532778413052025313274096255573320267150327146059711354623740980153945512230302589626836903510704620873996908272626546315039533705144536974183994372270203592727869505190272042522038459167317647820218901086640715629645722521690157926477811454253363482514776991657428262819827567985655995746864606012415008947312335044453541057810054076775505120899326096776192290920137849439877099583248279127795906074797439160232934421117111235351447736541768647951364189308116790871716642644118926174779715675877537067665497525987907253388185125424320212582455665944746454046538257211703094899678177510065306681108976823536679579536011235195541123261197510428773857711813411983195465558369182635685604108079940008975615082637699187475549239980000346838692343155464428384328829675330694782335279677876667719887565776495682805958527067016900020484295244947281098342696114753310527694973495780981327281132451757378535040125899582419371510608360536612924726634368245690761997810449368866679113724714497489907928050863977689223469558032990476302850232244754346901761199838869301463716669441669627941107299811820877357418287907963110692554534931014458652479728367166353769334084747131009003818426059424101763109231316669634907022080806758770538142811757384544397997169184839414291605299429599041789242311868423594560303476008201102917077266882510702982113458341178102901277058991920040768169429181336756725726681078195344779523611279286515849218029877778112120232443569307938235984669313045129330437797948891472304516812897915740837049432329473424118946425515158476043630877298185455374666468743456619763309389928259268860863566532524363062556326496197702168969615530236233092740513983198525104905792169343970054264466609814967832058406084365014669552367189958147207215060814252324389146073354663968472943463861634105243703776214440937050052012820043383231477907667274735410565923440271685246699415296189734894042670134147001713924182576072122576542253985941102626740644236003579494612912129212062109615941279186690628914573837085603653771734220703137726229015140016565544741002898338559040387801398567591458846276355035327517768639595822583132155825319584947865195636045022862615671418390877938347081517090271718252119827604515610381331726032824404970548695998299787414953868473412194823714815096141238405511722454166465063295792093006597462512012890514167746010754849765002666938124258104379468255436830304939448514994981183968038765669343361492059205647928879473496012560000871791351601173648150919021744908813049404739412776845979569601890125958675298862569544868771807131479168125345790246280693461869745425998612929962315735315743369421716798750335847324839371015029858263687305971906083705180328373189479359078936353738747153840468936816958017179464245291950602859552428485327260966152502260873331868740192779314382475732539506066399309492645510626846968071376071671565435456227006663026741202406618259503650115233829401170413751513495433827649340146900766732228649678481496954347714368378860234001477695567801242687789166486671867540455759112876002228673387419848532038696667393114047372532108860024607303542760027907005279943943964559018231368794304781349199364300448983899104498563073013935739665758855300735850394203255378975909220748308074251154451523877300470452441718387597808191851043771226463588298699651285548113190444889861421129461548135262183944434545390755500280692015201035242447749408105687575483614235768852062299182262926631356054175925271677379363869739175908750137927448878383947227626102316676243377822617383889736811033180523733702104175518638234054932396391345085640168613452380899032368343115365373277980780978434648165989589575289082375493725813193222450361223878921121163388720536553644984209059382943393684350278463579896120849479468211287846446557807618229345710110430709267189565527782219496401037727219784559329444327262937269931964312778841915466162108568289820066210083757928606429155693603077873915821982842415701911488293594955175653946009992511111981645177003606173637961141221330095746145537865133363342508390042929712446444869770893804146550180604670468607621566276442359686495405878149327250353535812042888923709258751044084586207487463633455105956695683906934711978551422782283266768646287785994717677266720721676363275939162354997671902041107832658433592340476364925042246887158115595077639350055310089861723234757756603746393970255101868787170884428652173405987998606201646169293100161504269826180162965198795612137797185779344118505995777169106100755501080014077225945340695002990634305683469880371705427846525623070143784020989967996717908211955484409361718377921404249915746780060153220963462710634310017283446063798845286469444601276100996712485429244147171230221262263209642706111597818599126215197163045162342993678038037130612335754497038125268233449380157796214882104171049964127386983877047341243594480630821679393165790911558044222107402510651509392415722095314452274068500545266105507162292241460049144411989526659759211658310566045419958908354255628861114905802123352327804038432433585754299311815555629784937919642691824471625277450970709903500763287490290205039907998156248403237333505219777447208216740159009638750418684101958298664692247651018772827352338561361918421065812436664176498347816082421405909491726124038648906755045154951294270949611691529810506181343674844573028610586570998392246310006956202708847934121954099144997122134557946743960698561460126497080459823977942770608253540733253856911988339843850124947966933023263966429808188616590933911904886424185740833311850906555002240408801017534341381904366176292481949185542120603424794049538286346731756972162895412050460453354844408706850417780614935538047449860293988410492076112417950306638098020646847429839266766211682055833180088782974555891468956060000230261293053905592059681373913564699786026696655108561605654526781984593856156402885045629679956615517199152712441465748280573277184570428933228388081849133860539130309766066428422463415263668742827917239093527762871706367481997193326377806342919504815012925214431681499087819147508304157549685299986731121932386505132617462048385724217917597478677683531705543534652252986032885017911745030643549891188530901822886286339043250401950508425750004130679027424773756228699651409028243478971627380493315411886253831116071268078337836958980938311487712647647610283140212600268396850626761664830724916200300140247649615820050419164240987780008276263327114772368950950875930008590088807919475353389545560448917179888661403736034482453848878241574074756893786971626297539425221828426790347253773203594498187903369315830448819609488128233900066717438712723260477346889576782776221691169257235707667495541791894839515184558579187798951478887396680029428350288352673347561722681689254743628781878894783899835401171760475933084602340738844031844073253347089889506151302895055919053084231219586560998905739588020768668045555676294036394256828749723775191513881854181500907400986171335155137071366297507308587358844946016141414619316554069063543797946636836669501919501894776154972790075672040481178866720278700368182607882177958730902362517041379650799677753851069868208930317207627828674617541933657301457691277302179123454171684111604405553654674289977964862168546462765800931469230167971295583986880031421121764451932979826673070406783352770942880047397516198191360301921261875865272944615701851315148476795059794802263005167786671024390570043658780910151857141639594368161440874629136832582957770850937224942682732490936391467944895015312789553119045620345674633444084513859698826456482033906727034912880199062862906305471004199049630536883723769981885397722200924186875639435447191878379200740823915140641123007748292878098879475183494653729975676086615039206486305941169749768353138865347957669663453350706465254264754046662398031030794197617677239755447361140961233097064107090426699552138298779051594951966942222974628844061650936886118628349785294913001285049029816206490236167048638436357273292195237972657139376085942005340198184343288903322552792731701696693532804520769155045151357606292803381395138203645851599045287585747997600030534336118645527830099820610160564083394488432851728560773141826038331964173742387473056297769341418652158785802892961335260334769556293969910018094345865679976371775210440224865586078125094081088590213585966693773637498240395870132642472764716204013429334401214957377395106235468287855815168378125207116493044009435769641855598007097081983236501903858644731572138909654133100028398692110534448256721379286823512557866927202342095366769297594869892125353540344821825922390270250773037497706527818047140455288908860819545736310585725452232535060464439102870219502997326231951436333916950988116629322676683708112283200763306927529431072176356025198525463706952704851665251660156590001122898391194222203402550782687005672178660390306204640328136556793048423173690309988571781187937495914069149459015090660289854430122228974786492442440969243303358370126733172456247696948103188357295449712532687039554585689577918783731934281010491099529985440750840711110375777381288685972035815291981525824905091674469518196241109403115711351225597936848188624372544679966894387368736563452893150904499199788484133369392794120672392023982067279905052960133220478764045943572155566715964751897017320120982066703274969329912689512799011128321003732529893301004949098965999628297252802296277109774936652851773591385613952543180196435948377574106674346076213489706809689179317268964015524881328480248145255547496444901446580447093366665085351306784757988251335910822021494120128338212029009875034088563431125697419537045647548043672106865060091163827093006014119117047658362510551901401393202581376709285899986665405280678058398049634219216733460290047706505011828432997552969992770359712895609334578535692917656251594489790938110010198235685071974052417908673689115736889438764710770420908315498551671228220341000464037195450122253098579719347391113648900009213098375982776669532630816583639165538713939337594839857898615489759551683535759935068202012939532767441101001493494652496982455915219361425548565374888982081940891456002677713127266806567322110445769406651631394924296762794352450221680364370578089461327759656796673305390183856471776784207542565217333762960059009845414571838489789047611241653912818175790203498411389303347639581520872506502671415089748763744230117584933736119448359646101793097817207759543566212696247851074705097755909424787327233510265851396203956868804844156009330331146351945677000507056557208022176013958929566455594687150233699967889055871467598779471566760853171494532040914923148202930996583074613729547057746274787115127971577770932365058791623843723224309538368136692226029761608420443194148753654811623946628298651285803542788482543667596533581134473498774018396914809168287630313202335444862051938771710287175966496100941626560395180879018145032585860671185488389418851742423210366138864616083611171063476969988543099172419047430989646041575955704026699152081962040952198098651415097492429262297027708487865784618309033960769297556920873892010511404263108886460552601502725770980890228062997446515774209201746832757058692591005478308769899846207718855957347012274546359338663792450692161100959303831373293242094798504516122434123649733964172629684942180014278425680219553440925331352046263341242845700522740808440117943997604238439350843020507737870459654910725376908086873034507495832542515509733779227574827837650150262047385683747745012799198281364932827449749773789100758550814556375017829810535006946770941053965094834226623209362008889301530882720157510344152240247591757657956393345249241803288408647943580459280167422338508161663020289301069477057547682718114221944855438006428625008085079012080439957138859560070817929364966221171551537153946495891898762602884820604503147740515231890488675172022025261535015056477911614658292551863623751122886062999822835325885298780551246292201366579462106797213830953288003976373817328188176540233489987698981188649609647051089764410451949994906050873398146692511418605192334741985561694627620227581055604411201564761124035068090573246886329890670561087257122613117615256404103190618436047801952241991271315522456058812143513583937056488224822744278666765519315379366319160918477853809180422633298697980909884500754027829368463913651132018745760444343528265317249121909338547599380760633404312240662091592247399124380227622474889783733959393641901487955460815008646749249477793566299964593917263050203155800014308993935492351181285343638925870213501857405066372003475994820250824698684890219971422863577659249746443775769457059834494928623906795597707102025496224079822941932715876004776353969084409845816618580387054819289113099014958891842764675349372559734141221602792039076404214590267424398979006449587834228237722609797810516775197732846187581597246525971353664728451360915471652550054115177199691504129605608030546491003608757036551203462501404640054126359645052665867205646112417738900447597227452954070258785700435776319466989985043062232628956419988778551034433774494294962609802172926450822490323407549706376003413096534441013529159750071884021136569717928970687292267605092206400038766839038591396343287451406620300158242772592011434800623278732107534284488989337575540614909226181719736916113378257847646226629332555615436197087468025064606794962581546160934801541145555511123944599624687952302927246959452999434407311751135885286681542924182120202431303958750896374672236912130515020773372961407939580380007936897803487863095829232444623903879728273753723255989892705896797108057827109411776544451786278839875239719045629488374705486441420982879541661737070489954868288878218190647297772204845392685032313359515430766004841422114427115793787515657294616111005883568951473841978801131633561456171472436339818370902840926981526075688342573342198542808762355652213238064457767875310006914274543422866124686962504948932799035914226228407790408001945232048129363034764128108935594167036133912336997631295381720937893714310233866581641143582537894177047693440329857312904464694857800404308922896633910084722533771380959266537108155822952304883770961625884774866119299186770222576735227593904425956654180008728609478687193104366209767028927215674213377710661684707768864238863122087272516944506730220340455014613271149434028872615195659001979546058897623676465297763520031785759814988987821958054498602136116291703359279067896885086147270358786964410966812990380843999569543366684564265426194989811619419253550349014576229717583927742257080241836233794177986932471264647300574980631060885813430550519954939323195745047376175712914896680573677003391524691056695063868424932975345849086243409353676881613321057694439990392055617847206689504740117886905944027836562187180096449432176758952882895076359166379625969195083534989349660991634623173005784815123660821873006466298313624666297239818205204666741349840606587481691621207519958846044512078052779976760483668762855047002129184465570624232291104609497441659236638915935531177628462768164606003993576369883141485516278747151654205240122624016964967654897108221499221297638497091966841552772720868311794049575123031959512127306313179858912344086367268398585022601320448513413853438522928691921793087326501684876244486247962959804488626021602490212287670138268965877609746591370065585824039562778868397495097211864356577071100021265304686285133991269030343531128751706487191569272205410936472664597252398914204035659518426836917327685593122648317690718892481396762865463930042523749048491867697725848916313102535049569488886404131516036232183556882798821506414258662193710675004530447844325945882448352849616415347061981433418240093957515173441080863634260469059029334719515841208600693272343532525364601689084543904865572906156647468032388647196605509878770716328666067799185575870637735679368810726467723214452806485305370434127158025520836590583518702873555553069258744244082196595351020224892685991696965217859818617171624966489360891169249359574906679122781977020448836017471429345639559516190972399063463071047055482118657217049826572585453300658804155034436813039575872072451636158626069263982484153235160367256509227665645617348258741569223472977104532847508301383373983759137407329532000961725150647138163878697324865517553293270613900458334853615715306993360023049915129481579735268178607880762238284644318021297321901750426272718123265707220560181756479766887965662453881696088036287715147491581130528791794236726973344420315887301583259612711257041563669783787317884024686434709896700250475766352570113618133170148330564094269939878013830899107819476039301450369661292424866945826160824622048828058586679209928448160890597716021019636084378452882670101464185364336452420226585194498734731733470295093769390043892864498671620781405700568105241916144575495972241607693023986495244240606023162260884692485287558339494426786220769822933287098429275284216778204321763758099756867383911200157091835154793073258328054137698143050540210317175601199662561907306393215199174689526818702524769571437121918509139668387088763775133424663250824935022198698176734689583979096364629759234265193693753505827325616785762209382225687709462156234770932604654989536783472322727676212564886050073553021945498208252672585994581482013192425042226454598262558351124638062040177209094505847520667550924932979257161143177169966000056303643022643346948908008908604705621676886625196731162500882562491483663335435008110446166900195169448495387492954449195963133594116639994951530058053320025714816927395470893948132420181944644382252032001651234526328844895113247103735395879041660683211402581939414750914953829987140928115624828563268520572726743089177872522196744885828884942544512804829164664110234998513468693538025396808557986372356184470681381119217349709909281108232900948749762990472647988496867303313183576541637590189652670976073015232833543492192188226306903181118029848624257983394213556707899850630024923902214983689279662227541746568756086952408502653515333735744881900151025210199793815009799480577072943676711494069023303002113930520549893431265123451508971794788168569831640022338513087200404202184003696024289658241576334375407606759666871594768092467579635700602194318296390463559998563815312985907677573288291220831517632649783529831115009939789657653069794660784490803328409419822991782379849943466236023249669935752189768464499188325479077947671718685255921726492076819443596522708872354263659014949391771557983614351486811197624708207012215660176811261853150172624617247599322658800098419793800396215059189487114563018643250043510537036610055533760353767538960876013002011091231027597088970587434370074584161280607572984865023874344064721620947050415782106391415543693479399231644379507905156493192743758059856574815171981984604521988444073113399379288196581180377068328438459592027221704931743873439572201647790044490390340917942535541455210774273675293301880069366219194937994205711749741083327821263349661991827117131519629895246807880797703164152609588589390026982264240473141002948951665606073971614229505287349202635725515605311724132771326686711173441167924823139152204124667709804588523600238554898302466671178695529672269868800926012377126537089313262656297364333155257591853521483208506497583890647781782722093502309919094292634150753234995760602552658215948596716263109786033035254027228230004003920826275000806499499377819789180810048894630038326086419642945901779728832164710391524040378247154433896882156278182777104540530832257242922765479013339237279462440918592914454012346141715762878338886741528769107353215084451782622918078116093813135146969355102636124672266153784218706765811283298006463870178636366784572173770966854008191007742471474652843900140667231558170384460552124746700634727582581363425148579782029927166057508916238404785676229436506809394214776959000906699812361734274501296433619997215497817008419274759065025873280664663296979285462517385083793523931685623887194098331657226024665400136157349944724975420733945179885556157592987246935519964133325194670780589407444688773376434745705970542460482788051382426149318631282576516827061608422542942409757294204557610409804216837405504894485249294773141748750871479773038141059413604814432131393867612809217774119003878505413382851079780852203718388326188167848545696789412095444398244014994632769462536254654011736968966917130092872137287463626967812894313363031716729163588922931532433728424060253288188354237200014792106902430471039911246493692328090589971724071784523464409344263287043944564528729489097529594041946766643344933237380673747185065913617300189608355443976702861126083243739345316374203237623011248846636370122066417200260703470042863612824701337403408662499611337282437420395571478450339930407196426515323375530596650025331512880618690116527616213987761752815326016299945653115902348470998430920715140692748863691705585708560645883499256150296169463251745573042605341664923321998933436599435652001807771046109022143778611085623823478779442017886903645696442843539814429461709669745329192987874416513968604834750641556920224924010455848611013112112141418478933214285881070454296533015597393296821463726230154525824635019158205069459385809710824680204160588518475219148747045126693602813437625484856941982017901239807963693816388683936574881717843500475216784468824285444451733046915976630709208631403690096633308632430178360437777811853853047727501575915124706038735445441844561675277841093254156539407663874589551721877334517847573467530313748361812588754932897749542716391327589940346999057360486221038013366294801317636229361085220917792730709433638504679975922942661812302644882662202046302007144202863307009110335756093118810333455196921425625671629957243984566992441679490450898141219521738301252583947627878288234930649427593519119774542449054527576008440664379517114207879502201797832466638819418904496201849563357289242406225447149938306060446431227224382251418455728281167350337726883421377500157649554931934711177553803018888401058966277761576788732281443494476016111468027340855401717493885294541540904318817710727887565694901081610303579179768373743253935838298872953936617271573661180815194259207276211538570137880545762606229700918732168465877647269402215583674382609811587631409985950064022101975115680551136292120122267080331368621221733020625204352357663303506421541833964593386738646292884985699422995055536297238942974493429185643903837883131115515209761587579496371766251116846706940678045137733807568772140621669777139413383238705223551755498721479467182909636421460120406484036041954746767787812490387788305835041394063177677232179800082754143749424163106429758465786228412888923564958321241208254008927123346908555029764084604174001506600025156182833196821300295951091047182566136243233058674626674336500689937502303421338326998501723570644164134316041525798430049249886731840921835983393923401219469830072584758850073347241129746571788766518535130114998498971070300535324431834885814425721796247294381979201968997221012389323183118020158210437675518788554760848054620786240224569323320828249232927635138562648563263079371223087066063235874690975929816324543926938856222428115748121453304105842759993662899438801520763267664830134977433199917357998406910220387696701660332681088690180742128822631023706591727413851735957224410110707743466576787148071510034589221868379981548688775460772781307067309563110396424784638784172916685755797519902766599005524715701260725661518280185652131345189888480160807080152983477666706920362573699645486613200702086904925818874337947468588068634949488229769609725795237249189577536443985084490188856069324180498188115767541259081463686439329186283415151990870507181075981808305527773309243132119336201647976755366867437642361686034622738036545723366786426035244900526539995270976521629288932594649926294298103258929187552347093090641064204678959507437025673077411769592795302813563050809981466753422451985149504926760938304653987115829143761095425319662862915811436744823131587904736023053994322173853736595353133519727365307370112024518434490131312967168057401531017227627804579251584046570466761912086152839711122075714530444975809071521133501298946672594129001729648010944895836272701243757753892937113680522256763854532425933627076763261559807084555036175771107167669355323495482911572330935071701156741264385704960043301926910518935712831513448819868277866496191624752734214405818124461145699847107887048618225509084915427440209285407311313461524162940653851458096296863781837472582600239613307463483862483597747129038043076020957846329525571106290669156949817248262615348285482616996675090373660418071934979746687168949382990015681868269831569963375851022785478712480267083875091142224151273576060793341054156515673362037310587093059789118230595758642346978294362461446944306342304711049871035464170692550621655994193615509672767849417695620561600905740750618729633882108612107475583187250930688932464499591521432509185881748871641522101957437498407544298944310720866416435846251695383598823891768481350130021216816199500033828013686361483315369419386035265382038467728193194753840751947748037274193413754540426117261984523670658071384838351597718786960454736449141146464560960831437114191861833095433254523005861046122021606564326464276349164262897076585622488214613966600169155906233460625180397370690234380729511125822708450124579356245125424978643591578162813754196470557322450625828261080072305978597551994795795817322971594476052674913798750700464342800915121939573423321745139230636855897639925316055147128804405402447736193053391388907818383980651585883902100410983259302204126361632793143631453175901125955921081736144123462516137333898532487007850431845673544118506970676699318581311666587763722596758024500917731584973848199514297175397211017605858080525387146354884808313614761882567889463244547477421753349191188015490644200657887231402111666201711354487678006847714805169543703603679652105529086323360187319524439243566719210376917135446871489141200798396767008326113824443172442597768689229690210619404259550611309072842861656978254221024919933116898382631109112312790060542744669254752960006501147399290526945881935604970852110009584779418358632606931655217898323701235591482996937923995523877072978875648806546891259818668829655157109177071608729111869943132102176064466399862169178698267411757216867432516451224026032154027552088955978393406154924497525988937765106643938074979561095000330132557063450871209595359970437858757948286304824200467220945178533228668060078057116090434201187793310292901482845420700642722680820231652957521095804039023082979756765793224998144510256293454332628627614792933050645458724650638068431709408736075572263666925764440900093067241486016995592261574319853996483456825912622187207932874738440829428536002587747904429726298865390063042719029179934023947637398268154427423154691828281265495363444430941589260566550135762399082695697099876818208689995142152018808102589009358845275232712253040564067319074348751605066902486353169536242925119679489273374898930972092484241910397994203098527638829893763486497920566934954393984804290462164059226897042616466206536507108618008347841045020176607269259028178365263073546966113028076065546628686077885931065092602918751525243786452647770217352086044309613998903119453261074911750677473606910228128456256819009254038150018564566232087765122548459102751615674559689781317975818628239849633061881075721874933905767758933187425041469718361691613232265014687505065756504273608828825904188371865041127072766337719014420383428179511133783173752415709710701126590662287686085389906657027006001097466195919544760439781176711681251734090753551828145424795947477529249390599277634921353826198156203069109464608886865340456875050581273358402645064789845369854719240031691868445532267864036924072578771370811173663667904768410846217842610006744437302401587820981086299417670171720341246280148060081631801491261799894443801137019543917237812197063082421876588945864019880556832378818808728200263439735454538216916009277449154534770927442670261644074638861489888724573751820677926190659163579314054331092920111443852161239633185814034494889534645802749613018032653483613129557988818461547835143892710304611549997017150530084335464539597403724254311357017444629166896785072771862015287058818502801463557875382145305683640356678511511046564965858719413421214733326221590457927116338413879904230175432992918485304602504191083275299002260998163892355622879119611227571049888354226822397210760769249849244372476444497255877451001327082387448396724197410796788825593168975712363142053912281499532844552905538934411443577415525796625822664457547962343980098346565249277089441058858517170809764374296065750953265582410507970125200599096039574932723619469591600423109385252137801709196284742813015717250587499454509504820634760773836555015576122966042537483006814213319318932304599133496592811865259778423987185441708379399866880655025080484946791125575878337803845816509535388952644634349417354136135249920765236029952610379087328752552337996626501347243581190258718870254378613943418771327277794866902219371287271051018480374517791792264865507020956093993778760325777359211748875642247199670963182890215780197312770105879614783649480222074387433770012414163687118511390400759078429014363421705476240936719193391887753331993255066729873063938036269245152667750602516539960482337309833657337343939195842024152712808220451923867735418043715847380383159796812407733528684375006458820350582964527336642660345364684397617443012283886479562773963639228771621276395784360746138507976773325387230926984295317568543602173444492283619233150264552215218138525736985531134457553968252671993308240821284342619177815428437809709386916210912324706738609911824359165272967662059088261608226471288657756725514218680632692712780157922231030990624063866904485163996410012261784180370533367763269206010303660981802516637189618007135459290265715455037283977708147777375216349038928643548706362316967931539972843600944157337634694529347132811323660943411976651654256783535258515333477284298186640454577071758024210566436389252989253357850990159609647468758467305159457333004718562549445692023990820804573939976428697675914499417929560006294099759397572302082386403734013088219437371135416229046451205417444618799829636157083538008830138612149892217019792497329455663297704888931387889398132005362423849435365618028541802759555466802455046201361372027615505998519573388141971199822144392402192692122837571424408938921104882184922395223207574084049666059952151459481492042967442985912183641230519403229243024562314175862769775466770908438680250690261927041074696194032458714672497511639553168677571286096047021629715123223235584383082800721034024279619347674945981849820224703719867667292425861027748809745232909221940028693051959160942945761599913528927470302600934879736493010080295896076119520697330870878766124557408104612605914960224446795447302145487769955606710011874199544429567731575268557902586120224420621076170361326069495473594803181060049985405723649003350504842033303760583179777584990462019758317570384279767743638824861079486001647951040961483518419210545167505060806887202307806437747212682114003390160654228282938853975129783746765983273100925874485052520808168773422067591520740209775167753513067848537688743445595993388408064522584218653788530058066205984091826434707229671882874340998437970198784584074219461309549387304895899146048268348405095223379223962214128622346019159665598687757431301571767029022634133353549325235450902463143980161438676088440426254761920652734354179280085708046877917636969060508982615243256171855092488935502444194515327826780586087577789003237256796326413709445609864544106248698388585874363069213582033145205618503224083622970681352098250336996751902523623553078127269996868266937474572220831217024853363080249561843231431212028067967347718881661797738748983863450757674986538118792497126946765525187969847463620864957923586810369165850259323068086439318778758099236145830813323160463959107704874902669365830309532060674237119678966871194785768451057789451939859040032487226795511630981371999659939127460434573533055333766634245120836962123603902314561624519172683976733509778823912429211026342158338099469567997265046298075113958769030013990686568147956589954427659618199963882991353550045202038432457518121936860870274718006328019709560644752241421868158526472739377062638652004458161208885733310712367934680549148354055962446345558058552449999715421811835837572806112179091593205854399180340169721152121144348331640836631184670963416555132317956273563530049373647382438726519500937982826486758151669144271881289637567839496777446714171272711731730386233104675302173205465085097764826354541190678745544577647647813149010559715230823825843925755360636135773918526804930601470463207263475108032010942181281929459467747063612228619446852071400709955091750281115809426425353937656649897734171872743852229423221551053429424536024497862714487697466053361380670694572172257086120128710132468420524843996717427758864500293642066013951913147493772530404144138998688216595946349519000636947002196479949528661303230094110361653170589407846423915988715147592208035228871091516895852135429132373231244439370053322020919027476761143202722087414583275291172107253439088225709071957131683997017394564523659854755719111433695898174981950846406139059230508575677670717469071136680435191260790430732437910408733890604160035276493406350332790620274137861531922043601239739313320071793521442730562423034450458937543699851408063233812461940441257705494487986472644309779331485514662240637704168839021955633860790511073847275037280835511248843698927490818710302748087201641466287257600818093243221121222799521676699237648207234394885794662470565899153287436599023863421193361330901280100062964398410933222090984183078325006486662191187214192117924609867691477641168688608974963082871007014457637102606115891933488250933749358498294819127574623699937943781135932247689257623146325126206694778845078892265458330252316165104310207823648871440632549547026196226709551712358229748024359405614366662954539297200066065246276223617692846177572296677550874359658836641911426170619009931282390890313603729982030118140510090037805207609864642155785967691558494572541800268825577187967863950866271643758313075139693083520933262226008239456137618112256706858739369376995151588400995661738223655671578827305065975009502999236932814595042052839372608376257588482277203610802407130694092590326916547569095224373155474068776340557452570219815676597927005444296068624888324969418482530407044888047087443404496709313274875529916288495808688798936621207421039669121813903061236756323504507228435975620099983100902648062929152819287766888016643538805524086120238629391453895523762567222312582226509349171955089062666927649087375655611036134194767739272901585671168584696230232578257862202938929595592955375675646640008731478837383742167786474140965262965397214784929748057730397764720215147629641667675223833367491503100865131173480612270722977631747100004635098064244948427349332326919215753947514207494720140970259826205070172929208775641447876932266898215438105530527385944001168578079329642485147161649121480390426220701344110522436199130836058131725472784233794944477612283592448142953654248202621852380748857791919550307213174720587078715595621157185584209260950983282712919038617898975652135368498069096322185978996485864910895909910021995927860727759259591238221486554602621869083601239351772355731546355889520242822452525768187175959095120061465916642512808348398967175770007745304927781034453957956010981886023419117968170510485286182681777548511589084815908998636087174930994760431878697973772206003923421010319351666884748786824329441098807269918107093944672503303556890930574174600139187672080842434464842590952242594986015338507726100338669350667536810903723365370614106035688076906149573972350234593054488072696445822202028208178411484767015581564784013003235096041022989777697120760515403523882566683664539176893088730286633158486623048973969206671193830818540966998033941879871139364948142612817430675568866003138805448334830730719903597208081694369429217261503898163142990988107148576217167851456405943533524727764100821666747517364499036513918105243503128213633985418198664107917085442739504247359891926910870077855100960536443912187688577242801531126068276938675544549180778468554155007484448173978642986326755867893620223364716159953540502231283144919311606296675197464867214485045560276260752465262124688412320494906245469378948781911254320545900981595655238340682088485057355098742096221253983859713279642675661228779089502768920183017952263981881605011715743279458099897018700280494767618505747525250622852511480552895561746808420054266089326592099963378935767604970791446706528532613570099658145771871915391604462326060570158395899014472624962026544650811344046808439464861414000581817294571641499641013138884620078809689761081718051312093502112295533696641740550412805747005624383865472397186334584257978065421490493000099013548483190615977215764050062864778106463544381523746241127945664515341782718967959005516099067413676787423190311176449711905981442945300532742529024765959315231531942596818520670972491711737407260293179944214348567308561575865874427502237452767412515427292579116543373184938037493185919531113895994393915686754435803559382495773053097207275970610870514909578594900169529321876078627432706213846094787206260134318788519845067385284120678889508199534501136431139329721927249052683226597030639442045608559314740252766088601910769414581061369706922909128139673031782569275638710326324445338880263935934482837637655890279038509522150896530808341371923950079432594974905387953460291676323732976729106674053874281412492956596261965975546331636890385646747247595208017063227129659866106059933670911429107680481612526451084422777787021807314303117239255604996184578365519683422340671096086975937432776641335068354783283887910608084096562120654234850253532072916382320811982584302075997489257964129099268769257649058915264679422842815705515853967918637148017452797923801421198848413097181017673807538444750418119966005954372353214845465871080814558310539062925060195000123818848714580769112993460807781434329199108193836436640388753567278503308472889771813145971669255416312270243612451647024346036952416255619382862792865275676436804501825201659153936383741246570056651847568165978241382771344851448204763685751568656307185981291997154196875662072925170874391677906725386008481521075112109352263886485429424824194344677959258757705051910752812237098935120241110992996237567328124483949836862238514959922384833758856360880370071953955907908614904296919570885761055593347555848859976545868725687702474255185149633880730625950436243764366197056676924438165711965646480347415843810725434219497867837009189317967443465413607824624956504767455181005592676023244972777803661966813160705253372263086916280470795215956408738802350595431995827881387356207890152302682552082141441929687958804929247522280953422935268774350041906820248386406054004460628385716259003966944194931102631077188205383930162115241646518097402553302690664072970735802443141638783310889559035577541218501517848844028317371863556579290531783491357870144478873477648509259697845908688760217961963941619735361179012766073354178492847443074389604748106031934289623635458420824271251851393557923938458088587613602267112600981254661468388557782841706359495272009977768137428028609620070459801697183975479608576170973592136593630889440412796088101768893006499602458207947494302357651620305815838716608847794962482818071955224514582456259199265860567218973207162391767451351480426971568392503659775116680281849485452300404383749055362591322149764180546970671403166146815760683242709978625045088048664218449945539476119853262916125075459045672455844526744397995451819104204197488698644550354270495533171534128398604841823553307658306233088804343225256700860306171542231359609686041959645187679266136266337036034485056243340601905256949271456744658964441854107597571851574569368707478773668274276940911557671578481824884914486322368458259003201457965811863646964230802575711207331217624124468875172738707555574853196849542299404742108035619607122913461942275297216217900986783919540519016130359836505620813625559909868054282545720020871831991825611295538294731476742465800934375411195587463567384850551495109962641265554799570771065536102248384704239238589808552929374486498130727325847428875739903585485824780707228398834369585449504344547305044403154056514751154634620527380264876350599205273360698315124867524431495380506950324059973710572790910840628838609847283911514678222189244769503937552883842168075792678477371658674730912785654994161329505195763155639989946350414646369460003234411583087947163586924270901861784550416315578231079816083912928403710482713186963714024891920342517518509746393721387367369861865169320607134968213733452180558434985782654618363345091176091710453997584846094918045084825303371535429951861788423907443792159675677356235058974217123979673712140061581114985724227229299670417069852779503289313141389528913799037106805108007885768096538664587330013235398985592666581721174152788610090145616250290559370530323279784588576517784932436338713126117200057997297528584112100458672630052083359646937971340991913539116790876973006579288129026347707075847902845023430306888120985014694801500523869290633923634823403484375941431043034128897506940446470259992169936450419212240947613394227527582129094950708027534110023981894985359996151498886366620608321550578582845412356001411034141839092797046844174430252485107627916548578221531620577790865751025131930813948918533594747822557418593028826873620768955200087633709860287649499609628597789419845918841418102624139950089307892917215930798133935380969838053333208977453125064515341112806563813326673746065481067973124127040289667924974223353149652702013552140202504849195304944493724878102774781623711411209287233604810454555230739346001597540183889139818570706197416885478605322208061805067494111992184231025233853930531117437840745926105575411873603809582275916078603149976671682628559949925950986380212220449620528247701588897136339079565120870584266225134243633481743675523236557151654620603870359217169733771985501554369149727846401199520119687266595173201346370419953923869835951572128086228185391275816435105828650715706060186918089380510569944187250996883055895783212554011845755250385014191809680491729808415103743037963482256513254857772290310839054026572060787365598743933541120150572990919560887317099280838162193306998110844488237173249686822628634267886695853444879241258500267491271887500795398206044023806929851668387349301235442025606653595954907870770294661911153714888271951305277823455542158484317475951787779077841630861868173487989787122192877733460235747910603487770420559201720777057536134965939879143835232637807002847297906056384247625027177548447889519622623032462116049012451093166679516295690573736721729645958258928986434771762610151277170518974803833502630249684205016891085131349193575520165119003670821092383490387726264089342201766711636167749232174630830992282146970997447446957427214815681011842648380750880423633454147502626313776665311279041651970775567768559384999661020467791668722210227383131930660047886106694713196217436352936593028709211874410405196534024559630746614419006462769859618584063972841900517407451878392192757859704877972316671477259054554150685556561642009751770258564376002198061360791029686417869330422834299406817082769729521151411818202997873401010936383349608038584256771949846615945893492777261126476159956706109748179777665506954127923075258691084188072445086755684875678551829429081866503524790179997291353803303247845859768576699851126309657916199446646077030799206526173227485813316294284637784480827358594312025945005115930890737869833812521021355755192619578894772778429646601758684308098011662013847238592355147793949623895781670357245591390283502379503807975932411577600335813179152184226601091111410823774277198190310606668226094472500728413355206111515718674091543461136567329283338365871068138689477608807667227053138140438635618821163823266213520339683507354852242120860288000865299011342539244040022738836812406962680488850979900464381126694348902118089766259935051333265863694756613362814603037118857515663624732414100036519881777544460580332232043769515989452813475557348306236260873642517729997379367065883061513874591064483529977467858370832297013373649121284565401486321697892464239999718184334392010936211797302640683282429559589999376709217552135737111454668487701215802678223050370538010759377654182703033025106401888246812876973060170094268596323401679153046810765252553545249233423490335922010789425385280001985086181541713141986620282229162821881074761739649283948432122911944855617002029234491184848508568673548784297408042209850733365456005231335425518839939954084389735337313117605830772805770987521079450317837102001417734375346078810395051722280950804388377545933678573339522976380297618333337907112588274659118107935365720846739551358835737134945644094435159768811017350761230841403065420956311921435832346140439824718415970926042054453346454050937713969023807702104996995511462103577995032840183270895440247104621206431833335659212331472470959211562755963525892775793896183668387256978206169118913955821182886754694939088747026228883541207798962942558773168319094475618790401928812308818039352410057503989657104789778580833662037841647391163438389446076071936947145489332828547189157946826262785326862540422093760191613253371852668483476288022057806919838661893537881859103154081989069778022810426532006407447414777692020617530813886524287416676022656517959913122870409090752121826700205633808521212150887660981288952615037125210474794411466573238246950859761772191784510789506543049497741792725999815163519669558293477585934165697030282124799755176733246756161679639901518929631733071120635377489637775717608313490176128503217721883168116247138426135715077998390581234168661479344970967476803984428773687817212673129738906550299612771501397897544989340927831561312648414625196772225065999774808851521094826331957785653213179202592194135275119191363890444048268949948676311158580771766763450609914225067234306307002583115148004813726791675559209339697756808765646110635349007935415579306918220629259767445851039690943330838042006580660901004978784354799557081198253387911811248517441638145843090399835065096480669720947135879118699763720426946119175840408450547482724411962769528691236498729310794074225779881768628033476304658696418090375799693138311024511275886216381806216802729101056861227521973673777435400953783573497552381985367755034035658360697989558751214280067217208524491812675259253425381066859330078037238373480370572245558558276924761696006712270495984753346449331524669104510913361373198476850230959575242848307411459612501420197753888156071240084261963629681721177467090182946477386827391592357764900643740690380033014942363671791639280323618804667902622603306012162806558598677219108092407650450184058252740773763001085758707302589313344183936149869699298351091975806793616404311533387310665321444564163001155787775503369977228516374052731566333611052864374732902342920920037198505226296202767897914518747443738177277662699950165808465958765068363614753188664148444447706481828443492904875717988926854393228577633199355260072834718536415757430382795891111137793533015495795854944951223348997873056365115583234825504405447354571822299558893236104207824789618392486568230092493529357958720500900512942480694592721855424637570031895241236201744890774123668862598695419170498222152682690122627339025399264186634294371949235454372458799414752346869814775636669383539142744473325501203586596876987700672484723777799876885597474602936263630921773236453565667950088454817213052776932242563094530874223470365807366123243763243195945962801181994174520297917704749078213400473949798640131594120141294894730111549327712287834659882059818380861969549854724806308031214921116854062291395326140066030655441077122322425563534364535254414308498138629486371809464700210960526361323391895727594364763627753767672924808501422811445387204198379869993908650588733148014536393519757574378564394207489638418455987674525580515393389275350233843763356316852872169177437995537522214809934843619294135015413265729531182163206032440244567839531575314748056178532404636363491737899466880722821952112337615247903641659889478299543582253832116602505262637477945702063426419837744647917357799254166692399438733772621513742683626735357237517650612620622728112968271282268030768439475221418642123798158845627247263939530516933141548739831435633215182653374760712202107196481259741898947180923122247113808569091808324110741212525674211151923640620930890041638497137677929311721011972453898802901421657939037238745401949967541404996863662139376174378494461082546494057726164045660438642467355095116882739281696995435551508177189293134009621542361938947260300296072774610783039918455955180280231144396322318398695378300704185711766878533862048346900660625155990931104719979347601128007866437401059058284238415262053610086973064920586761846012053637614906689425222922469432253992190102597527484751816819050315628338992010585405683975955232794345621684190555270347404026464360922763042900911982171020739381140180706195430805817445239944527697409282606719909190169244390776324955579703075967171587001540922990453277976095053372381991074760829152120297482468541044418152898700853573850166875632058097375745556106671855795271556435568243051388443165388366355305923875991869320573152459134111689367017321934140958365088983619773395981499905194529513588916126602899413923494054095845158841337989181557724911049686893546158855949075942780957569111123676196001087722175149256711551986235314092352035108249490058318981735402853846561871286671656087712083438594090037484153234107599125274874560608251683665769345080005985079448691942418932216806999526751982278209943897417465425283037392752609092102746022460848023688772093532380232613617636168308150135976788341121429214957111157778369247708979951384603166296929419379099552222042292194783848534733683596024231749305900601457941422713157825540632634979584450792451022057459714100384549956921062248780659174162008484924944188090120577994839741628127260799950783630254914862968984685945730913180424671722691203083890075832885274498461210206601449661059034310156132480367820644082174133363811186862509114926946005590162166143542174007413970907502363869714323130116255633743854727960323461196877298967398478809137676294560857034881077348060159688676503413211369211364892216149380226025776063207202809069433062705007340581225645957843252736463203545464106214706869584851219212663359380487510244266980940374637953415145373851870800440387934920805813775313408999544596875230933845639069601854159281213781623478991741377128325408188350267340422828856572802053769764871656143260422149434468760804339487510010022131295710962096555331347370428767638535608864728906817372368737335800707394610140111915147028922696136447677547792661785887400723093299473380602559313877775527817394359242230149576764410978551575117315778849098667633884346786875030719806815981243519857765549199723770719061591096382631301219467567112786066458642516047052894417058275605328702968179374177675874579220785604558986523381642487746153969584040815663575776636896166019276298254326872353150517298232361846863530685189037669827657793835446058311553945138378997211236491975926993414830493877101862577965271529187431531234161543070913019995007339023028611917294881615627780885663045269384271983383916892148855883185859402040278793635557816440252394692673786823254219174025250617864293746656722355509257094274657020176296433075028531061960127491045962910031055625854094810720106871530490366632502477530468553524302168039231212229910909591804866435890018680285517451288599462670961241885655500323936358399495288556247534488502453462882405605752448102085574478249872001669546290997044111916125652478715838401200395589411328847472917843045380231323451659646811547978327840578557099697101556607677756811880063245276912702080100381210518923735137596617981834604902570272753077478014358956428210136824563384737052661482881472053487272670406939801471998865291866289679917239594735979189673964769816846970740910607710200651489812407800661323090651991881548434552617875111805344536201354498660825637619297293753852131317227560398845981232553284816055218249328474994429370972152103766607522825988319793770156236677099732141414289852887716778170757654202883036921961843736697546234033562228370807176483918416618810326176686204106662886694113052716231161303413628605763879800530320645347576134927301264304992470973485245934703745317196981600406159439201669640763757047389985397872255705985319191589913378219193579025765804495202751705138594933681387089618413485432383912882928598569622584829646471520209581007055065804549086037451935270925400185074342034801261390122295792123981355129381596467043191096075933007671399413406128048260364460725918743579303225604677849502430690757456577265489248577802730552554784290180175560077506800210051469350766909027280922077504172798333955425785283193460125456222048853214610410958810414923603630813693489882557987538371519681286726297957645394328467046398929315740281352962557969559304502599452007411778489905127230372444103210908640500603526571310865344185166966558469427543653098742244101305468970178166252132194763718328012038926839831451219606101583343416694192817315311835778571942771056049753278860245413742641003372744976785357275113957063736395756259803682905470850869525125524245077016262442876115360735189623823121278115286077883932366032210812295257321334403855058402263611924556285636973151773772078264921596707309321232393264464365612518463149322203605640394248248764574716412243905468949683859491825583368565354142838799625541040666983249959238790237850480600693777303030398402209484824671349774598615594504232950693270025224026500991681479730836950626799940747608927688094663657307385101458331856871089251485046181598360803307487807457726204543047780198886179314508760038254391750603820673859371507408415717070661045655094421306649823567312252203317790887765968018406775895188554955525445946984303303790354668147109828641758785579947639032634770128227919508710712860394721204374637382578666487651917262031801224755486909153275950991382404728068000431723480933038265588362067640020900195157783641704444947543301259463564652505420870552104597064246949235900501528822235278870370389886466833370686659180123798779147583335577756406376567583689831678774135499289372902323000783706473370074349462375280275339866620922074487866515288114614119116860090982136885477336975086343865604566551433156307087643506661212929337454776328341709806839441437779067189417109996153041159024167822442230756664832262384002546583426875603821428923501918905628042912083736712643640047256242818382300315377794473468544930452465600620229711181908736957303799046969162823765962839711199002455916009107479829535620789137032970713422252308216846167499557945942849729494735368751692913265332043223834112384465163479061598225717145876422848033696811092015910451491266705929667171373590467662976195601811825803784753241866504438081267786846449073151905883254127110459241366405227360290982037973235838153027996893271190479830509094903423090293410100714689663439883986672778863294388262408541544256951648687303649437170303118223272393193072694212942384742896824219975642044261060319920586856995222366291288934066531612387931436403202596097831144178481537119755798705111900870934932371965657470737798029000731094375025816825309114285149984072108159520930133995549473538439044298102430232003517394007793477497627200325362351753685423969303987953918330669877374830913854068063194150774146494967265407999904479286657356162234997257872052233586017339881798330565419147570212228297772176976477262007526581625972727474385791296391232879124718453342629616030540784019110281691202877239270153873540410817793598865621456488315337796020228899318533418740487897374592209353243235382998668538676342686370258895641902085371896328875320189930307831665497488328419772660115345812606083059630812388925185514348683833261531111465150138489613846357038269239960292679198202844078273102779582443840361083429207727074082289497877331668115458588504057164901962705627181088311606411193433696533515790740830752133005606296558749922261893617143803617783521684559569907152670941259526835022091065994377594761550980641100016913614139942714069813896803065189661604290712795632494655597500391826241732518251550967233693431545025186552928945640598675185271300113570954885253563943168225701503938148936423423129125945488108289082875418782721408540701467523083985873026354171323445668521826354736942918373972693718141878077902063969686381597918317749548400513351156656549846282528454871217650001046944856670341022779125275582585416866210041463783235425413876985978097729738018359158927003761658199177961019683258403719669292201635120569554270965362542660526818804317359056781955192850831958265860776198191344991824532006685370498829433136297488578803750046566781323737521203630196426878378756240958500829637655698813831135186391386817630326002368657184148986161702587188614661381376024977496265704983523256846997036900226141125455752018667051525071547243491866921901549221234080656983001351320204899385837421718742202862576444060471530454883608831702537859752296565612486459656240797475918576808029802587892617711497259823765130543049254315225978893146579381779154229894448661209165722142867934503258783994999574504033219331547043003608520737327910888174761042837901690856637369613487327355338854289053841038025251646166891358134589744288297981993041943616810999227921163075326923322625879855827984805639318661165055357648717955996165159935687529710942599379993922576604063840507216365175418548921545665274669328193148455735312760751090856697976696438761386495176407151404937735210717429856385347589105851470495162969843932332281177055528673279050249803210133719307731111666756054869383330767057301274306845250785796036084091505508690805279377339655821503120097423217246643875648360879386362248841063773974162064745413433930694484719394145033843682076519104711481144372639976883353648738737498734395531012166786003768410349175216425893560345861640302183412987091091860488377165516459140462812447763711986264289798857678872115322758128016005055871073500609274459228799366299293632208117292592750162629389114048425377904126288265089141482187637002168131063739114646986623035476322641215824623153463582994151972427149285722614899695862200261948164039563285163270287679298554800529093951546253491273748388245446834802352903182242577346087193521545978254923681884268181217346366935538362581256609564312071445564045703331377930186261062883393165737082799558132870791285327640712261262826525004527889961795605325871387870595175848397871184773243982780278771871859838570369392944407866687127552059031663223269304847674094500605017984225375045763154203235411568293365283364859359385889982385420948524044484376014791292918363027266542114694759076782632809702825679216184670560542725717024977257681491430044577512711944727378391644745975784856187520248158797600700935849829595881556912337636085925677305735272924769355268115741191489167253315884521717141232019671571254652509659629569540988910133004772131998613719398860572707159451309186269442710932727023938017631847210483976314849524134570767763963388132864651356651616682988507632161519591724294195501189670050569930694344361606422595640890498780461399050814542077783558678051701756824995067818183800150313379455766811506331471371248677888916203587554326085060992554735513574538364825076407982219001290685907443071580954077944400021156869003128845575303835180126956380490754123311206952126641438372082093909076654789174852526540091183153566003321279636284302806015071178044972209774534462886681729995163562439954478066920103139228768065117671209305912486914823067659173006747852779175276598626681713103613233736251712566817190354240213093643361181523001896798345824834033186910936440290265983823273216745246303716364853109791091985076136906842451003167899349856704909499094048101745202954458143817664845705214151309879281954711306442049816610343165255092892790749515249310082306720080289802944510679572142428669324597894890635105201636738321567631709419202133408858594178968627662754463982554336214492352083808618789896669691876656191071893305032160722888547323689185588039022864258928951082276220566163166817644790447444171015286642940574425656867661674596301174173500085985735906265002467608348281797946306345871096245851997989872901997150120516035544092418831974866053888822089451398560941246976064265128969990819698221493447562728245978306061934658180250965622175690555023298920539082269211533455536708047354501736993067919845573082134284798780644066314552369088630648998423521410349622009215211352486401210115869316183847871110746262815496005438780791249609667254495005956657914329112763860382324080695795440807427721589766590073630506138110755428174793756827175984693316940836823662438317147592890999083292909051334303013271966889301347486490297055630255571574583480146091921514014281955198770668864109848846451853769285381497239455160194377767838220155983656984653426422325575236984462631325439323885542546915983690449143198956147764847601040333193425003798554384097361957003391960652846618434926941430425968167150462704977240238743504047831954269412941576649783575969771264142102868659427337000985967225322387445192223624013943109835206015957206647950942036122038290171327863906659104302711261603404166883850614709564079535270218874007909425097594877466759023058952110508878942894692118110892560199095137495484490000305360879082792313815788414402959788751825664537196005546557068363088294542626002884358877049885047200015781636728827323951351719435657715028368187024795577327340690320869894712510184393565462927363836346794613480025399207700157948460079002495517712191642652109207721993013065828869226326855737287780951212604504521507414928676079433308609987129473812110201570913488565713645329501366387218061491971091765964382409006855374724020679169297554448006008013821763000047189712447919791075222364766003496252718431804244186004896068403248685213640427396830742005130274936670636851721815098640374030493907679396081151510627154183310723162663258063917872960487068142012199710639465881995137183466481717829247658656372556432180301287544915584347888541941840919028406323288665863751398214004667477380693770033397459152645996706069330986662839882880878487054511322413650910827800566130763330753303878149087788313281554010052210024893145683394305196956940269604039516572263406269639839892930342337517272738692620328499821011101542392321849605047565998008558698279157547961142567318544403836360446987212431748830154359184807951454376888119320827882881573917067113469098899825568294026387370185785550093990714031332893946836581877120194832994130254657340891062115900767458929332809498122512026549715959630421589083078406170123477545748573032475402244145633845491677468979998429917438825783665557940450791275669891940580408668665922343758133617173894960078670940753493811575341497511151285979467751000509136466635536963225782225754307202909170732188053326186062400477674048296225013213432342240019904177183115442104923565424463982996399083756919518320483122765852432813417927533231209788359120564904479308244376090417592821093051779028447501040166275406712844927773291429431708178321069940926604072262243820895302801812953715950860632111758417717104853626309146054887631998145120310056205982267266391231106102317238116495355822334022682797086705615418929569803620191668860404904261803955753822633272002872697315917457526528417527964609736926261757634813169897568783991211017772425692148810969457582900471058093438025244808449582608545364511132859649857165082420264366310513436744256179213620952807278569610619950898218734575807376288475021854835720962212321986985724151970422892090459565607517016374685793049733039764606760778465440346846765468009962548921790453845277281532928322207792557523836977076708895070190132331265110608000466873013922106424220663402278425155210891612661192510880613107790562771971859743057282813434727900620993452335181494083998304970579734439543006645805867067196366449914900030387066323081111710971802262290980454340228073750471445466639618613750670701229901438627741969594995936622258825341973054433668152219799088092045735547971678379545465727330600740116979298097631526660676819987329092749693163911223818034487226388642683889780683414574227531807564810225551244146009863510145395595563416246373379847955299272697771371734171258769035124085970957397286802705001734525998675058358744010115007931766611066547385195029507943500367445561559654107076195055981387258094160442507371578572535162132005126165298712186008585829536522268164158807052794217111443246233043451202237365222018949295814250159496295652471191636490031044582846848329792614818083404252879805378298380408970459677230652125852280837932243659801733472779104806015399831927148439083820198594191076242892148750514170586953289789410544762884092587321379568743064789220184287810472674291890298474357929071090191240365000090871879026014581684494534116380176719923934942239400285143938630849998901425833960721629173373574337880525254312004432925259747136523383057473001670028184428361333324461061731494012554051591696492694800482063691442405681530850522914375733384896249785392240448627017734300203443099284540489535222891791473227382033010174755785270830044577659570032680561562338393010164424041085928471440552208664383483945804888885743516605227428667611472999877127813805915550938828571072731526170859713138138884229864119156439226299884732522637704263261490225949221970314813521655160177392221495207375797287647771107881562462406445910096043193718033103262488374585659931667467170286432021672998986189814839530181114521710158710004409922421422199894454610797783993386624243306525662031150457389389593695042429505717354498972278205053587369248342118315445827997912807842764256952071627735692864414788799598083807376449872481569665065761529260889573226875993352184115899306263400211972282403310353419465016379110097178093974190660446572972216049342648435292118929213180129782945008959985676630429224074150443738651824985340259237660873057294429512485128679603252037853978638622511516013979340542994942422980918694503106686094339041095964610808479925487353824552579519544044886673197774322124198623022154483226614408997535224060946787122556984187965658179658647891417047515581558990926520607514352478896990968429939515029002024216899317916250991333711872283708093537214167424639158136767578953274449418406029157775930904307801058973738827846923849131611565556259554398826115463989570443494450331785824886340918682036694464580493645210558320132468946203085673234381674389384986839880308555019363398363832269583691214544322802880973348978634455994442262835593070580753420287203839203272919605890978341590405600622858298479194875213893262523885806129883135689553826609865725962410400312848336684641521495868962330691130910598765188751170755564432682634687265191316512442659184961861724221222794691255456158203643538660472086502525636050367611447865879290655677837584911104718192218121943837160819386926984095944685092109650340424271406628235410003326286401699116405074902566638449328811524461612575658018184538646601605529468071729186182255988930694570220420904285274124927940854067809358520586987714788749153836347238402964094758122031833002721847296584471044210347696487301357185610056550283139568081817470139867869004201968887482323444351760274816146141222017409581728434944809461285573931698990751152570379967050559319926377343432735961103284401723306370865757945679685150419912320910104064929586584779745737666845732714640907278300914861680829745004701300548703524677443428386230501729950423028312782124481713141750512468461389185070415687729244898095991716746694661360832635754391547822414133053868023072871546923907270194877245023298825569707984428577788584035716029212689672354443012805142232687186310163176460068046017033375229077406034219874898532953361346157807716177921423325262879553828331609305259029986462789284443714680191063339484714904388145503635922988297446335261876626868725177775142200050826646948583736321277413346968597915161476819531064744527585274832528392677518122833900528456569789871515084164200456311472997628114360954605147651005370630869682352047531766514806261690503393450515588351071690879067869993986511896334152755340059748276767792951068786639212562978813328434223710615388067304437744317714888757993348539980546763633988311038333565357748499204194856909129373782857399662954354862288081515645025261486236977359514262059265265745714989574344185210199950685731045921540543623374055074469236288672178712417878828393930487533211074753814864823331551619004623291187008367229386839823548763854044503500939404862447202629230334306983632686903907240086219776441712315847756020748255042967169107174015212892171233779181811678613017588313916775201951307272454975205363834099800454691068140720057617838196325711146002707933784966719652330141194360336373377064268370985094520455661330696398335613398663083241592711433016963536111703370768595591226062707499010774840245839146696661099150155391659641924892255325440246533204482042996233797735747837024400393074721173028085851384342960817594364006334072497341001455578350776456025188059967689521795310943424723554350190097315586936294761179627089105068291420567601248346502344282424620056630634583570430226169196753768182657985499823563709641766921377095310928761679279670791854592253263847561407524179101264675895115007242682761352173241686452945203711598190533032540808825196125703571822051242030381571945449603723183768894856040815266694614500727803229764197063680470238731535470443047988816957597901760923424305311243855358181479265639602204642121891863166562144338428199443770029649343055910795266812563543095199191802413372131006024221677921528441431773121061588923716707782739446995547988529747528207441645984677998234607502599125138816753449327449551885411395675831888940286933911879459723135584609608086218089120680904910004139346969856897136127464189293918994945478644391365213717377379244178589400964454287252121404286993242474859657645393958570984825270248402728197430407939975771620108324258387513463366724575491443081037498926560699663582449453108230221500341673240993206387768846397308267489120590241766316040082635143669754144017616653138839625499230945509609255323190546299236771590372397440422569036235531703693240477628040404145112660802538715268085498329624076153992810696377002960720906191722262175552817013543840092218967977233686830625204305142221118716433107718610593785810157095868597275345747026153398446709910434186785140963785998392767786260870222561976300550469075113760934080000918429568413287138668672856409571849497300704848843383907930143711102139230786099008478116039656332813399223260803926484622446614476613313370495946062875249401257615537857136181957427304899034521929430455313429231931978212213679153106958985400840702521291130217500396521566513241386715322061925874785529442417195739789418067879593085908646672127944602113267282437639369354207767608977352349119557979062091236965524098145894705530961052409451677990400857104700987236356065679592957570063816319843886853130465280083440939220468218519947962068440038356492863930608362544116813130065073020788773082715559475417555273161516400742511616380570179879341952513245887658512903330207398832884458088056468801972683041657269958002740351191140206065705191478573367472092115677936614577834453216404709787962617337116898830758334138115836842728506009904738552762303052284146233844607236407207226303363093315272528121106913810234649793906334770886529677177851462254815255487312342821948367672589165942069838597125453925897585246817593112103924209013516575230677317590746444391037200013090379574759443861167903423776846784059431343154823542954707578312623485354103478751770279809741982505988476854452348591448403590634910130751287011801197126454911200953241786861920095839541980394476827724395497928364153678581966697398455514410844586497485159699455659652971918379407208197349716602150255391199280551910486811353867457623029169961199490574405010581525149015212829721654913520060407894705655521737294434448630872028722897187337946417796074152749481155029473202715332966362938456420459149613168348254904724008293416686056726709675411004386566519800716483957358525529634124573467220991066385668744033411341649382790605781125301183746894043894995355699541560596920109978787001457684072928401077920003748749579983936410050103361679561437670317994183927503459987686527051165405316751395706351939246101571899002739131987461720736438747555751563319973901669072917635845873526288656825785216846219643988766033615275084129199882287086770955358119661442675712648403440390099528904314827647385562297946910002739164224625578007604805740157998545108776959685659656198729490348187877011027745549376587823269655837595821068115860839796596300413099334008135731251609041627542501597629198959997211253718454889092419251935446999343421475084448235552460860836214162213818124446218802511017361081439532492232563844068396742991011480577381015945876711844116058863808674035125832526179300757917572069696262675806033637218121974333160898945664352437622276374076434792133404368035808071791118265945470480067484260736485926412339309280223576782091549583288335975224870524088145352993207109934008417951133526571848374578415009009221283806795214466265592067076587305150957844398989513801446774381580106618076766743048280933188058562137891577278081515820849670449695274475233289752024573002808536058243146485542498184269869295292131044232632054430176370607129742215140285716233450833127883715018346121505954665833503637046753999850406585360830736022071365693498856069332778551273671343893470784550000631811782236129876925040577248174650565919864100316499363582410768841464472038278129953868886250499030439107757553810130688115143530516841819890617116383770943921097459833156897239603392206972574177751606225558069952077085080679668460928766553218879142859869266929198936188029704113109504828675053027000286822735846819436031886117395359571938616600773242008232416358298567800959935980434327459933980523464686916760756293287162961489191712181553266252153617517689581080555024619896687472290417255107808741113850174769444422297907076989637975520599401755891163940963531334193727348113341270928746288396532946613923246266366722825398693384204520654495811327834129002234191666957557621747170724633764507394803080893854369806087775481198907030145810362395861576273503487735062249244529259252344929207944902135805280057764844746848959590343056509652107122791940055637423405583522406631839292893527641227919479416773022920564792997678358419893310620568177856497156605373030091672590459308434410252822434432921106770974290083195902810284593998168500107007619830877646373198959989317896091020275451804932278253951094793053761036232930813749422219640226806915543423408513000798596367675782523507264089797815366308046471828059591585739793791408910766726769054818257972831221568433534313447229227026793174640489446325950645509315102885323452648855263581270259392540104691676693033409977807255688500069850967135380323688628797004225916029779763886490990825918180098284804681712711752478489841898634492708465713516887352437333194236038408848541252898347126896630174980071719269881187376195898625676575954080384051751413791391271958423449456109433676519487921385299573837661680673541799348053412567751658815999422549846370400554794643757072082496970493576896924146040357522424044921635867491184825694048070092072732663809141981021258110834908823439834594634688779070454718029877471791282539661882290352728911832042075193381760597679746997113010885055804648382486620042082448230056173800640329413305318007371337677533476884265096503285115755008478407461151568777291030355783969380004657614286214564759876230345436458697230069691802649944409109697247554405489700458149767539162550231021218433940026351974882413926504616044716810501441114664477339876744364957138015298577359181585950812308023879224036655455462895970172413623710760056150061205726710922953483179913980128075498740093352356158297883235176065101358059940360519649143790604374447391273654199543770686568405940850019995782097937854694697946654555806478417431806799378237170271464857734550181179096687376324167049787035953248330409737963634198769616605046945155720922461174054644599586771325502456536164993539525234713823868936459472653027709131461889707940314716206470416876209600017954513241700538716425467937421103014983474892829844126807713915792019009652147943941615933197398174896330933797596096414277264665733906272659156413620744403481917031332060617074145380781382995513856691740491471781444277633775967726281539714621461797574706516356367711129709617612455701554751136245112513951359886077019248017198917759935031865926081917397973612257109160294051808752892328586654194487448142783925317765714204652500980806184105411065705999162893216817466272651746415055708749755982711910174025566211970956366998760031172926519622960995219933018803838202695909561623505333116917536970780187676287034937215563611125529913239252814428164608825810519199144024205709699698282957742578234755340850603072752859789563017173972284813758436185043628867945797003707154553754796056635537399817118625425863496448643665196296011832804843254083088798588523151962603850342407230082706303796785730402359328790328139457763832902408666653589392410600749852112852385934422835161230617840090721913231724453361208121252293013818348957577864005671208431027752579574019026825905728585878488931338529430651035456821526818324235630342949861894435693454795716353471910951036376877114618400132345379043807639222866756393702510262663125695374475780984286856885219453016460555873626890743633147639348002184983055240131608637879407506736833909932010981177967174577598426944193310247777408745347234240794913771174842687849550547948877772208030121083961150285226937932347864083747761254834161380006622988400191774544843939664247922824311356120301981681304161579405194314514714020485804694986767016664175703809350312212172905443440124475636540309400380934175199891991936573443834019012346235019991360147726256798689952027637416337386244384470122908952527858837003145567891255675517218537416039395155264059704231353848362462684947722831292563573402400463596236110929515464269751296308293416681669233103262288074290388379723858417994224129687491051441216152964531735756308608009164055616462962340817747051320148050569558611968739949503113952618121823153814502609088111409557382947131157309717973444019606287099587862546029630117400565776410605791782515357441208492548169651646676982142002391681204929950802015123098386602577135947452764828727490340452532694360296752430861027009137161924695097661374352360157127687881149095239852028440098680770361250405211249082902507048221038577502821486914088237125638770251049624739976042046546157377472401911251893242865409331850555246389847889627435624697475942139400655191115679575242550014211866375989457854482260013687390090446627268625504241927516855369110221262676987798321961219845244753311424034784282730269135685258774880834508328585139921589763723531645552085230903139622325910754880676927036716727123532119869264269710076514834694663663374255799442550907921929073272038685747634649027679635011156147881852289624729380525521063242602869506568228761903219944020063206674110408872424471648872217867863365709775443276506736956686002481106503016542731894690020077245854169053475527085991785437069047852495375364792468751939116234038813571148777171321423985798732099048992655333016616391235530697205090024747754006586611430881108654178308894048686278615863324557565019476779426206813687370977029501588863891675749142288786975033887333631213105641726612593694432231526775244212857949587420967501113287953364178179049230139482996915975183546215591371088956455075298911760159041702374701297386661293911685853741828563184434787008158794798242892625061414154717836581640031346798794381619098496388591337459310471297032022305506381395664094631903491334255269843957901941746191483223616727492093814934748518524320736259284432764975656877441432119020052072815092315333242860649631133655619820104923567603417915081867176106518019475476077757018280030096563871104618010107727916898083260723522186728911079267366245236879478387981964927302824870124797068667376942302119172348971060169388651318044241699739197876121964134307141087533610313873950908281824794722898838411331308802285694584085173824596377044362291420106320823736590120279138153367520967376568470822498211610620164931160095292783120509840453156739021435807943113782666084175943936458486080710569928991446437684773294002041895672085576306229789414893028026408232600800676684444496050622456844155301199501756845134246465068293255689336986173475020950591076069175256928182326815349789609544510068553795302102551816279416504941003542377791618109951283459646563718728314154932218846982129528297126104221956394879098895952623310692117576075718503649648135944996524989516920594397967025475937683124502178677883770166060666194126448956843887777237655903032047451184468149318351059849628109846467366188959326946179030141121475329352898720719707068020667036971694807539996464123488912419797811433490023653402741671922522230335658891471645809431547624391748536238735185471785787869440903925051115940911239323801269712939703886984175409754268052221298524043386148906727818976372466395463815318537026318468361456757811516979638672401302316226165923726173666993827081929228053578299558937279980719140914896830906587037773177175428010709713325753198695064461912622439596234361952254938332438579825106072754880318026335006409794345868125349268227788093444628554775237903982364675769863306163348258555032412264519983695366037560629424089319365164422457974171209401885724673624774560387394874559292927731986783916568611600796335567495190429069905673992751328417966798730364990669697246176220500095443251563669394037750635307052504390891156338172059636465310480092932081113186434558993041073206587272293745340826471765267672634676026347619368114332893921765544336732004758364862091982789292961991835442279859543826546013591558323230584374557527621587690348972837836630870751515887883373368059850121795779817592442554458488861140527787543906642134188340283712013101796354050453992106446677465089703015665150915290326665834987516577946073207850442186083584819941279292466107205532324321342977779117842499682981257425625495551746645703124130129574836094155982210807644970218621369065599686250747481983020358318228207440020607807470060574495645839318545235135120174197191391671385947436371073230183333176947515551749209221433468062410956401152938455083780931717382053262768170857669235912913552829119894505983109712580213405916080113421051372661518706824877941685731968763229317601179461730917943916874874761452312420470899624319552507198846572451169512582281169029774300339139686977272111023061734535286120115286065404972040512836377914213514421961237190965219589679522439838499926614170214112653704052603795704303634262420021869228682115242121931009804045126700651018714835436091485345399970197583747623741843779435241501251808394389734765746062076887344284947114125036088107399961285823293643436353897093128275158187581228804435735054031972290297361598566265742848622588077901135456322592512968866021691487117296648373980248042031833282221423956204327657661007921176106107871644469645959528401024549710786053261369015246246135515027373753767906190028603125555978300596170196052552435561689400400373278140653765961092936523369203988671982928600692994687460951228714699761125238380594633630850433648046387205501771228359570639288985581671649133774750256845286603437063196243904982831069362176448387294623417925227238523140579803383213828463648639066519765082737366516444157485588102706162558008055185167723333916056554706801240351571668965311472226105680910500748862586253112824881586617251730854891747489145199243075238566102716384789144919692678100564144345654429396445835041375401927115549765449510133455505721214493858955302596010105868407975247571947926180001954022187266362559262517196586259618025116634360993301029816151319966557036546680184665665764486579699268857841814712313762961650917607420397499789906679883818473306889166346348377901545444744270999346190962110610456502840083511770082166549174810579203708645393011777469245443694985018537272423463974550996804033685983773330914159131158723536258843900649134601271851802489559791495260112554522141038820688556693526389828894742061200668782439949560818378578085590706848634559671133427771964484841025723590511175362928937425429355391979082332637481587090525372158291065089326093637969877291296418364270957380984149089154301314772903723111348526776313454837266200405459345012148958100525440649661410146383493424618747021997904580655209050084933141608707270522720711359142882793906104457068330926157379323154452712819219322812313738117154463867568814993444224227477271611765858797928531065216888060827040489602577637971310908493654312789454289837136450486448714740425576671529452074221531008583512926018824638041538316915657390288034052508795664049205288533113037320460166537391558694010859822963187415998239990271885821203309518795315968076207515939848752342616028409572119793405589111666397273579113104731355743347412163721925980258169823753039279031593306241134256230090258541379532011612210819240547267435174872909377101790608760002190659476665778351180100557101832701160335047334331165164624663794668161567388930933334975851909231782270733714827981626424416381335294094167846893323043378796049812018407535744975034836714107424412657027984862241100658545449621726846600198787686720102568095368390958043380235078192182341589140296597381309976376333041942437519583526853419511537637330512634482463446672283272444585028982609158367889537992292619143748251847380699081327033879419111889798783757846613890865235305917849052907374755642193211688111768700596861006205929301989765298515964038104887968014303368260404020928346934872843146052858286637393152007073709709801194049780783936208767950629490413013205784955102637249987770809050177761361022569110872548974006439008392149658061481668064046083890170980821012950084094041310937520212426347625447226408010468011485274403355546117674918123875726371075742799504621466304410529499302305294881073421159429608494551291122109761837626472939136549899124190054994873959323779968750207320239703218245466619761976190460299755468593110149270102422950393980053057550337408690293903434145409670156185653965341583446500347163255284788366837855126030557960433661076794129900970990737068020392771332503142055141702126356918919703873816763683526442634934869532679207482326452891554882892667509784445636814240947680789384717145007759503522065768795590335185568565759173617562553648774847855328636319121527662684994716378836674960828954357976876353100620752789333654695742511897661006349130669294263187994651358684977842855635539197384550494243125907404338931598542233134545241582639773074971992512187583958599467100590188930592923650517277845167433841094620056901048391893669823003343603510790230587116924538987804170058472646727145187500383182892194976493248607255476813359934936982314752190142939933699105496868177765831134567907558004625237491771786767403648221789048386212374578221046495918929159514814066210420521536760034596502747557461498298144360050014294216572367348876523436027706144986133620034593148631142326196185957456796763759264151018168198640311953221927162220877095399930132385182665280952115773340439644984722863546131095950395363549558832162996774276264194761057062960506855605463900359350970601529767756523445920677584474732426234021444019130885118802625997239704520418801407607238225451062283745375846530225816005654655102490793662132628522841989969900968954055806466516488629191117160714127476359537972107391685775720150724964486460288641286608313305980898780043972180516558535409793829273424130533478288042320459336746138990713688669215377839290051051664374093353895314754475068170192679458262398282856643321169139469461230608910028123219206612840380873465501817674129946838302955291822696520958621622427138492039879842279366768486306237046469218394667520474241957212270474012450812422242240055824107240739062193006235551763532712553253857565247783476008607372608106578626048472223512741634119300636818113636466887559895982251380949527457968574369143137745732520285665970337626720172319191625362058506315715377474082887085364224659350096886383560012449198918096607938498778835550467843873687392890350593241496680869690963500800625077391998217326042645106410992116948435105384582736059139815945439886488818868454756605734372438948199793326413336413398501747554023265162076372384623375258373516891246462585245305397701788300305806065071805447297093245072425773444002787905776334775495464287428544397337405027235741022811855706567433528985596745268359007995116261253914495617155553021322524116282880892923719458173123054377285338923715029407278168292980232475490805360337254810553888258232573171202465627676653214088281052071972727126845628942311811786806985079484379609616282864820305901446017851163191502802133169699271449651945989634250179452082258433646857541273731523521707562199370565969078818215422514467435043413482488730697463273784199496145371115567836777971945608967848177010671449198961833817813584660447668324830875303624170532108553890100682450887267553919009763499374852756490691069534021472158286561804375477674493152607177931993301149094616138780906528803295787904796218800549887724306820115174605151987538760828047900619237788637623849862662682982912910408212089867858067165006569025725368462822952014689610325635349431606705642472429593294484260131028210292155783103646742395928839106492766768245731750979419213645292108481178024695836920137644150628422018752185593817021157111214123542603719702002501204318137731422516195754251605423346014237493839890677086947808882620828798953260280790147601250646715443023670085060374787225090469953806744508435812672851898254284945719496378917408679097541548912039794574704333709864217099175106158136811637467601969355465467301409208065628160868362679163076448576319841764802569689989186144182708503618308509981116407695303111512461303474773638155220885211619430469266231947123226594870189424316857810700839597022302148632601970362727494397771124184616419712603256513379120613487430388789131870163715212051632743318446662730872535839719249396340272258189910861057531115608037139221515465134979647750468232065733539995605921624179043539488236948620697888141167156512531975786673376670579090951193505468238314771732630757329798941401050458872389467489641874042185206002936524823112229483294690178664978181914473015315815726820279223714865712973954373038711375121271288844087950206219765063208086098472881402990810405846713692139216446943377448581185623952010133408377225264241398984949828017683062723553191865541675009219414761188343647011116878088456457283926687507434027556349012540585961287288202821949461751116261948922383955846047051215367524937129047639000018713555030623106541718911518941045988103170937244212035794588539707884506354280450914208191732944297118627182334892305143812135979550558913366913464936841241825723416439812269978376328367092451406979319248238565878258103216072477084567709341323490492463782629709382768530189537709729830922671463105633423111727757801393767289829142316601452781201504952876622902198063325725919398399797949238926885792650715459140662674341278009807653391528510322746037978556206129111203944347912755325484205921774361129826093009816803665025175812262363595170984205672318547368622832453714065903082156045226526341513227477251147861233721464748213041868205790396182664850409453819336398124544193183053777501755280343702643806405945642306583101129011233237404423402927687855166337931183967201585589917537090187159327374895019967890928908783194235754723355785802636152717389691103203945284018974452394678860495432605111701646440349816496379322721266401420180584916808790400237538802593460410099561599439614588797912606034488853340337461554087974819389931830958334607416057439248289017539886594523840996737898619351301835033928435929682788790040093979266331848439429618984546063671893910682463227737473459784701892805379292297911625284049501766573669372472759398370882052702732763760505568415567909926179961513032190054167412194428947173836796355065618897665422970319876077246402234269493398441388618153278061510105539133509365401273805400148378929442685168471940077279060662528225136019521635015772418310994818850914029300208767750387124686163517168123747061690118873221601267703542051415112231580497512526674877383610384177440373383050605247524441037915438913108815851176761028874002122692244324897918271329146458841540553185529432950787348265299022367311829410256660338277492925870394965309766022831492798142694203640234112626583368737160440529013068941958708598837198312906295159243033904568015751300597743985509656280044333494556838682463255104329183905163231054962949477768259327721411416131192232499530273703427843139533818604637025575800961402163486509826510256172788626654489573904194052815035340864616439734303351828940718891129161856255914645417714050572200483988814110113920708735055285542545471056321789910686048434862824138333188421670418311834905395068662302823306106881353267984462563657369467244007043719493310255775988229589966113188123426339773087664940380192085446416895705008432316187271838535680717298652042324580146598846915377627824845253035179863460433570441105484698186945647225937681304212307145198083289322457642541293195327171660709961801889087750988506428769643470257291994063955337129254883237413879096890921978194143995530022610423081998214548484515910486888429226717342332404309352127882567431408648451444540623895133667145720512908213146539498530096979266390891177375094371328601176542982473558943219924270186708018541498344816341343680126949593113697820024378717687913595493676898244618372702221969542089024590880828835940576426435986848374928497732156344103273575503584179477516085331307494775540652789244940952099829619630655676816101871170554457718969508670432799817175290734600004029471788944967686548787890145039859677100291107803837022591984425123576127182260491284074465522024865006762869070593143452324220514742956185224168652445770217129660602423162891128997648027300843284680164762498019748008713984621894224733279975746610442942669923624451768730896287521068806616179516754936745575380045697430620628541587511349695134329349384478478972140258086723082794137411707735602363964100564593253765490976854526131576421097999440119214066815497749411625703843904561342172084043975697195563130762157083438573221665097205935856911493534261675033025136241963398586395370781906761385516023107411874450375580369815113968336068838825913337969753875898312584497373590808495719885435923904076542030807057987532900466097042436900137001481675734831348518421569790791330589526782015311841526863640338988511458417403514023716577989565724581598577440213312038323469760806494462181448705399256647045370440690578722661964387669391051095603866035110563550796657885912532945415518419424467583374549635110137155122394725145920916965182224057067777744293000135935478394826358250023090265722975950972560196465344193343934164084421547924918862297872853247892196556010642752311845552894285518115465955091270176016912673553946939005218080058667711028082994779039443022930399345019375898145413886837498015776621976915776276930430548990717593843091521169677741348447284323097325155458639178623348877588954448599661995049120215098125158367925782085349695403267865919586398464943943516220395754136583434357826061827128617901324485148716890908584588540916535057061630944572063956993376482766236435590767073574543914583861105546147413748984844104945322327079850329431749624990425885482407167419827625008283533045186511877683155217391262639277864441694404264060880756595023091180756086865665312884300842870125041349222173742688374281577948739432282536327119502383882585651247083341687886034536463693081974712847190236995858448060407665041090506977584545963524123660891346489080317118305830967476101753845206703070893306424496610155601686758522762514262077844236956453920492504817630498383078687256007377429177692311786643467536140427332007825276251510185114586184361556041429232570239603351370227592750785349003854510867784523581857754379224191283463832058418841687172022572125894195541305730215729783445568011056729422430001241616672714026094784107009921453746915537385336900916182120012095701428810905373349505010551915540119617020729030262285855012341542860004508525531216574665443327657577962369186360658076199284897783809381594269062515716915704077270392003536169741397175705331753130871265263320212132468589853257595430995259414983823910950898657527234361986750548377021809863496851367414573564726904877809836617998147349390907620434646675393989247221177776118277353043337666832017801471951034475859740029972978923240132144953740330879068246010638565646634580834480249337175769686248942163976647775013005665375770649253120703812860058299122201199085896717769907386764109201610128680090630135749073597564197947971331090017613211493389993046789183843790989325110401591848510211112168663542583448343328817008140357913844456762110699282325368642051253600428564292704332067744119025617113469039900304277803062332137268156871751567422338601111052691237798177389021227449515878960629547883226119412319880518405853124383746688594386461825519652128885995968492599526195678986808418499331669512138242445852700672793561914630018037543791068106869459901565222735844900062945695118168248899948127526933260744512155211597201423589782334961297985092129188982856130533392664609651454759525776068461067278004118176681017645340373009998193749821457517132067479281347506863756216894523096830403251082562878863951186997862230050645101852176739953365899345388306305984274862085106328826141644609439685974143244039674762353658485040909623754463560960017342395293548199576883541354731569501009566740622958376520521733512843927347125728963571835285552911157819427766603596989895357619038829601916244334665046791092235132013155064574415965728512675446056249631003530339493061015363504903760547544348786966573577113274750209607052995406978794493248637498310924330390308365962700906248428368727053550890579040036692250442352732893402698205945129860182156828391000974659426192105361313761983661166628760144774628158410721873726943096321055215900985302838051318540674209856510310401110757647161746496695619160741048570722994083267849715863673965284847077803970693268053612846721892118513602376195357113012825728573460860371933942936631643227956854973985064497800847809288824779059712354600756084471168456891016210386069665970500228836549712064605744628256673004244689927537990447134107274104498222402455271023497426087870716784929880510230246037544828870030526150184404990937990462102207765227720596486078623640645045571560614557530622854631262824863714849532299368939697573935769646454433245042918879055060669851474176444355616883308801997933679926450996771286290998581343088047174390904430637964590159668720046124437490804903394980615535952013467559565893145968365479560659571034286170572517283222782173478844946411976555528857879984770100537925237691597716232922112434307217553346656623369445803676113308127154534337026623115267284485062549217876337508604899500762927627429026461961598167448907673150909401364415957230473711800161733112817107482529413771943548554269023034458511339030712823876436550207355559169833420880491370376200859406193934970294732339580718699666646633021438775707112184795143639022346214765068636807056008914214960849424418422012583473145773775924305432890683086773760746388375105862296098447730173110383508877831350498999242142398786160296619202610414795790312107815942062796619629552072853068264476903104869435304328999237497395679989171037161700031629260633450420218792998035709094162710589303194722340811813123240422803249188963089786381202865569256110746902303620731871357157048495839265319300381436342163547883559814598876285892823291639480363314128854443884082565668287635597495661450189471831912947410928496355288838586017473348632258902017157720944673125727235225894529714414138199732698583964417906233209242179347985513122506869972222023043208994049643085344843576557952920853057130182974034395873524012890954657936503307677162482948868307309062705608954211822298784387347047584202778279866951854703263272700533556233875360954108879876079294033573309413441092462136452582463541397192167619791055803134847165183967870577572625815185861109437973853459696364621943198833134021431537696673086031268115396291429870474518288975461164691335006658928056895503762481653234363622466779309670925291114741420969583278807216151302406480213639736666931216969887792926441512111142908039291081838862813496880641625787106841070867986767276296423733231595428880649072090780735767249909465952375073985526020805921316538466670502031787424360010304114254292403368645859492564953380089026661236976567033883406691919275718727049867750627735900840156460523962055548629140527991931022604871874976904051569581621204653324371205380291206497618540510236286622012678367488509389574855284316156454222694924088921324875516022703964239900490868735310190242823741312154055967062575072948667862800700252522709095568223805834666578841027206942765697127601825386325894590352454310082567277590690238092911050791123471114717355367959161992020348695799240322164455310993473657371076913475659719354717783342361439085181052653858166808763621231128084291027379220069538612412483136358514552736346199214346216684860005756153006268540284939512224065032211784964509308901845470589473332081102264326511644427524444857171243283858527597236907327379022126381075732863301740489048542855455032106694908693750535046537213787674656517335082475470805128420648129255174562484122566965506442302831026622959087366352002790766568923591399571567031209747932522305601238051209864486969040187515828271632756526204693335333552694666358487432933174324667112626392886332064405541685910676598817021317403499380326344664954603494804631089079710970285908060603552354170193098967175032509895865390357438711373808796121212786027808579392322478107021737595334222521892668006997020256265621102077858895186212956010382485101637803981712467473013314497418581857302340518540027545581920564305889903802654228369503014400083362065737072845975382687346577498570102535081156554372287508694946375882010717133425131067562843973453820633825561319904274661005597090831198361771951770256778930746453225451149304517181245656776659436481447048795169567390100205618221580096854625926923411636979996401936299756535202895239892548599525888223769328679230228907635639711513143058611316921690659193861888585731937811944794672615726260579792483048473083634415118540024484410414327945546624697797321225587762407389807263407397567353803495169930098557723538813895045260773956530513354135137105320722926896366189361407964785647410313649936665271550558292783653454406350269960694094964614313045984903975483188131425607374200648761475002888788238921696730937755511445292484018634240146593897204331989571853548968922729579137770296991806144597928759926714635977988792134955038573240478568004182832651627339981645830625298957264657364093704345286853078640086810840245463555580897222674650063054485766421816306132457136383891198208163864873613907904681180024836827666119687148256143998035692471509842573019949676140806879576454009987327698251078264626475336867167394153911576217472175079836291709566672230814167869395442137764397565966334051426313407098951887420823068013270564918261634155983034777945066504785773397181357310963215885265833460597592016150312650707739178258206978992270659621479909687196554352237032565345090543836376351330505668377050181690371754827100894301362946550814584974924101472398347192131023018803679900355669976792036392173625694756043277531415357610806445349470580235939459153933228846561092118101378259125696426284459823781821907885365162383611875406622396825890098473922572996021610232813637151338940350125985366377935133637147386010272682835014459684957139610457154498178591627433764424586380496928860116466412110420551689105259786332198798429162567576506173535682132639870669360569164487283409392120524701869778900840988907547698641451197177949108555010425021056690759764798358214710531809964203949932377085759136730393003795959287586543264926868124931712130722176224901779265223061702068112483639193392277983962897848467691510439909262949998516055348861719757606005911322690462426641132473707618453107225379944395807064320145754390765423823619526310412244254758109494713421639912278676398174000327916686383435389717836690812026514658809487930822068993634057728484396045252903045667712205958864675118635820531825158866053245324623253970355675295325221022335327812224090899161195537874955235491620796875854467415765185967903674350007833908628029169090628613348632527724489910861556729534083799977181341668343664787978169096328250734613179266699689821744831513948658334607836253191522289760307949564993264900157693020204759781255542349397809067898387738038144616831787802586656639534957237646776839062049893823364925146182521939692511991643715845685101364218417750477969790497606224615241046055527396364587176083733803225379411073455462284149453050417869038328979724579100996414298449329711817791804665935973763440627662965036239563990938789816249235542491967813710269470272809348509051328828651627489723301854255914939481467542426546647345538873291825534485295720052684412078859688456822407039472056915581180748987808993452069830891870451692063795875141377760894479456910778651935459109426572494523056510109735110432112324201689390131502162291993517872283567586244436842690206133883745500712276157417850035426485906867339695256646377137423461349034114679380160761476294818974189722337107536722225544067037305898540699712729907625065169130507171473604623664616283530845753406295274635384407981350590674629218502961292759946067855639909335465033485438629889896928448297734710176626030574582169086756357304428544326433998562935191591975774522605496618736398788798583721476915112761010780434816917925618107164164683773373188777064749270592914355876593777088616374290052073320578366059957707617077843921597048521110866464942012331045398738307162019142064556298556124564348899410675057591810384706737781115158867007104765985754887900584981313570420963823466937629634727730553107820817504421509089598958731579885110531815985746386659650793529139312849453174354001512493631648786890932227156765006075062000820811660515110155201997519436250978240675602696143786700722504758867305658499271269026477842632598710110362732032903061195338095060096902718163587849559765302498417281932213677666209055486258065276126679700430159708533288051335708312951465388956141291931281393700851800729179541682822773601618560645276709113864469895139178989785374658656016727598670561426419132658848714833528207602018347434693621716191675413792578740920866540262593403244447664428410852613417335914730988483313545338268584367324511998891919915686967135947506014174856237021911657509661908986297618447906524189924182125329215391122455095102746534862967010171651128916043482444310472237447107666559188020746087068227355420710082725171617236060995947420415702222957729570517517151856218793905090128933155360164674779612796650215717960737363613028427201937707145613905858995521659244912173739389667266383996639457047702445626023040394628220171799127788591175881615716357500873830130267642181232594512649429174846834999155901012793004271113721934576353573901324570118870700735759090984184024167174839376610512638939010254757609307637459370949319722269028358444677546438469992444332287396009465136778886674729796608615235965133426875932908629049976634450144429705535547519367837479508848358158553605911658789137033466793038161748246690109413286752584112139016709978649112883258692906897905256548101576512374373479342169632804855768043562487570303848120706349547806465183013748623472052421232464042241734326724639274620163455650946462529587588931890508370639119948060323827509784804448397164903959749355671984521128640658796759963920877154799855154664641506139283075356842410359620397393176999251915306194551829395606328903759241182094928134242395981293594522175814093944814177551559244853753952192759400341509404826727309134846006039476570264223142200419117411116764105338792471080460563308865125719335971583389191527792782068520490632876416499374923143290211497853683253188575083806988246629529319760189938675319807175879621362779365422230847187444746478999253502538038988642992240081405754789020226942327949087852792011642609586489275311385476493152864058639692315678408612381622335687535318826716624831344624714523683568180220721313211296407021521332451297119154060749920580239053123936061497124081892724597105595305336900676407992204786085218987933400092753682654522243304635656112606955735768868718039057299340049020580013968847180375430609009439128584520431085478493923324851463126847812818766803463560011090275070963935585604016209664880560121415457838882186517967889790304083195606313502178604273811328501931570797544417416576845880163532442697291480205753596295911231388641538497178954616029768000646802519060353566443141136427245436527389095682844246435590487722920859604923658856821559321785752539828850708776972239956935295997198687225631424385574546990316222116749045951468703041957340144579740700835342501023549839981098379953916328556386566290669438543048818606772867620032835237080589369502112406639317813764267998844792211258715924697594884789385302239078679012470419085534755368077948113567163104006358284722391736650574306618406557646438377479234314420770843952282906543108552721731852065908150006174584080351549909926053193511570398421322191372919645956573527227932460121631141055237577793623400197399683937321878710963098410109492860477512168199787736366596043103721732686810242862194257302380345412510992208133626658046636279717545090460641869793356751527365712104421176246313970538258384617624838285006281845425587960784287380138055829414590353569381369802388858934289996087838680815322320961531320722344896133050871666329647507063750684033309975563751591470516494709277369187908867206420153261078194219370742866957100733753116609149488276897398615799785935680100691634995004636887143714966338163631946754075165542971559467767326108951172017694057236550817867265149392603192566563952029085096147880252434359818253372216625281642736389530828342742064528541370660320881565066899119772362307593957888319357581174529895686014575385209146197433581190590789070109528345811396390604445621921786149955767936256782364778617766374725557280303920615135407780865075227956887055564168094155095698139891287031022604204565681587617326213139303203319209846586448745437308243281837369011198465494296853787835031133689916654312022517102958869059814068211576412411464266566594250142068094880208530502395121084932420577643934468044061867253259032390855286210070617159854953752943679003133728450639517580879834653412367406283975587714708383234869230218767961097780112796699371755196688938571023611126373499230352411970795223269221783134332854004026258001243852876649243473953219633055480830455089141337067818467856045640682570415613645565502733753992473525167729705967953213063267123498560413458858402683023712070138573322255276590774731260109504830166262965818573787682781708663654420347009953476072554841004852820336688556794553059340876928597398660363441817559114671435054294838260401141078596775532055899046598112879091520709111109378016005813985688344510503642323681549173761464461417287597387202891543838689653958385890328933373308330621054704758903881131149715245439501048639273793389427778642328672062360214480379163925233784659238148416778743334673370142688587652897518334831441558553515415316839665250754283372270015468349861198692490858508999149802777589769314897414374788154982441641247008668044074046170941969197533760763336469669217391976300944623171156437385016803265119239810807954236351958741661585203755408583220842244557481146800437697972819619363840435477650612612035812969247936818358893055393919120561464733584165157908956678893357982572319037790377900410748723721523420791495514636964962748864536474387010282226775081260082356245738371771412495263920686855327473739260080698316979846546015941762071988203716062499579686164881782359351109246833677362280189486763340907897983137279203768212039642230478824756884398081219483764335685070790761734807985149207610565868869879866789955649836639077421376986171718720712961059064643878507184880189822078333195130386514110044988107483610182744272368086295058818798821491749139123939004083771904850545729462439969176750098790559990708991066142533925673761253604505554831162683395986891286793124324116966238340973267268900868754971744766239664288528713169540100338657381229362733253784318889300751324055719691446975598769614245645355129684461349817508577601858517633154739001584611462425731062047807104624661439650797956547588591049835511934494601759587729624853543819012487750435565696739144444319423610682701373478634252114656801268568779949335470530622177662992773145052185662752862838597859028577914226506109437881686176299164870819577614978736421961764410362725294532120320582122324156511328347225789442362594497697540850989424531687624725518215727219140954236191789577506051138806299811306327510479901875476130100732149318926490420822607609600998846044002406722848508708084676453253467613434526465885188882710203070601099505397982664689634949049989211504417614250480193076833270870388641958381556212198867349109483972884978532604616738622289664907594119929520828230623488091368703671603964958415909781208024300596582053785631554054449444988208183677116781840458793257327571812525466221091370173881751282375545024024788351767847805861394027202890793608957137126419968039168916319929208852360042034491337347636874279187210597148751056977274036797492651637662972065439922682620570114141360185956841371871312116581943559890408342864440858658771087369654591095288564065477336055889591745535264654911701062751741224146779556631082399933976173920529953750550590609171375261073532955724322584805837313518615855427090419332152554263599434060069025236756191083080096730377478251189770500291186998782445064616397242394510676685018244951028100334339506826838889886992563930979550737407031024980662466310204124447674762400022257397856833525757920955190118076849658734724651630235983172197862074078926806739373832153260885347689242794567627642989427873609007675773369366767883460576250315407372767896583736898533296875680128815121442836245888043885403156020068781194676427233506081480275623696050435776655955316323434556477538202217749597916513914231556397389999604408842536060629168560488349084701218670438710519884279738718834203929004569871734337451496518133279685851968224822809317136225790832484206860351289092445230247965836146339355384420669619829516019835141865331883536590060629611545940137322673063987143286891940326946969543182022371988466314786608254055978182313386727986916683254726119101413007240096156682661857156818259022948880462419092125914151561963217247874393882201063066696831395046716927199261957276063761685253477960197431237645192227256442190427581369292424727822925444291575781047548349465235054981605898259646260450646423535214838046177638873735291761969488296430792439835024562951526729893865524900214048465723737969162879677099226843187427145905625783992985751331033810098287634691869908734049704838623277508358913815439251343200918262786124547221869332376112228750121476984076035846472222664032923690234571484352723667556012745704855821787168499861641828069185049976610961933135552600582934328380205693643206411747679747434598602064227608038548793415534145244267255603200618220243521604159286153968583735590036794627668154693409398333314149951179222422770797157851435714834984132353093501583230968107076593864394137194645785131394165312060347597759849181680424520946614769259499195490156893051083229501716467973597967505698668251052860781216691736518089867578905488564287630900567459840701196020203650603772243274013501728085736758691228878128872870774777408837080666337125644473555069763944091919746587498274737983427373519168739852447102594815036526565972697424420336439023058351938718712061712451602909246904096206017031802555987656192154801682919800559251081688674995036798033572798901416809767415215093823144972963925408983403446281124615873565460514136703984983439036103734781694453280958240577751683857843862420618671035650675917416628075254965679724353613700466429231527105035527236891687057761076645666299931799237251009662818686830996086772066187350084705515502595481375536843773043397028550221887966954799851757504761228792789897990076577442175844533487128073622316079292539310750307602708293433596429328709830816626267447912891607846638011820641755210598853056563226160732416637000472015217403653958741411817242650320771784473588545358050114861327531326952684122431423034129778712937832859577101642072155512796263761360754816552515010047477279246533243636987793415044996374519738344231612646226063814991781247012871005594142851371003507525492019724712754144869493574096298201041215250828057557174474044958122621028267305785223460733859918987172492589286925645972804099299280600193905115299479748905731855802990536431949284018416170141428137353756694372170876563064172421502717049912159568644197109382002053238312390308378868627565941430244018153073093513395670174086606600052564678465555301103385486107546518681707154990125943234176119634689990417233172952149613392075802955150892456803807313773207716734570329803293305452582968664652536548136449711246298812507874719891929147912558942609541890109825737388380786493321586456618636911023271255150450998624074601294699528468570752258396795887904182731248023413060673327154464385039361037074869275090814121163575914364657759704911812374175811817095825061671372245433613089737773555773789263097248804906854429920207309468989174442710707895959004115938111070002681262944303326025047213769759644600501623152508292665649070366103474362065664664385044496133985618062372355124526545671125588773933806702820101713662390592812013147164598103449727970114368051227661271267176887669335626063507013966110369090275677788082072816483684978274360034229699887829114294830825858160599961850113979030781028393611652383945380741197607440399444301233147981089271253877642000490026975689803833764257828736420694199993128401323163792284864586507095296674804431405336064009150097494554612800828003490625045720297386005237737819670338228380184384114841267738706220588784552143481251538897409998115371491089153172878678257915634852143873876584090601483569646676754687762308869047615106280561961061810857292392637707730262284263339545654157618563289707778691566318192792385571616593812823813091445363691780040927130791170853019908386510736486560324816662453879355266042605455863800978883233112443232525414405199031476435297159834102792486454020352457699096673362999030536682271166565685013917283606893820747791775253940403832506736353809704556483411496180593130037401273286049289753931010397068462455937616219683559779367228563061140448554173199132960665029714158737329169499158416105081376233436428272293803740078813948157658914975548961870893375048995739778465981481452319227312666494346998371926053172440049700613887472908867233821602880203665709912321835851748813757042894335201342038643529525315695640552856964888753737080785270776536615126731218945537977717184925952347704473402299794016149364074670967413165085964792979955298791968010777413751045112874063928103434233027297478831124607601455808886546513987497355533306067361201047817715270425657460424711025183594049597047821037537339807087859476964681930381578086045090130434728228624473617129132614001088036849204354315521172085129392853034935638650040050671929045666633038718297080559051940043525539106885370598854466905673849923382012431753990067677690031618257557579816236887389227129026958316159017046768701981967447023657040396942705740967038363821998290507518633003263438642753414254604682980445660660984225367122562237626203777877129030798526960610747688655342478827125217724469664326627683685859656170909002073227767740005720325192205231816240305599914409974941778351711970933587519329964770587977164834739833255688100897716351537645340742359963757674189381978797087294582308097487234513011529902514313303526549650955338575159035448438275358664779497299110235889696661913149918074768003389806604472815666884175199145120876280164626191902731808488506916611077173582266396926220578535696719343255892052802986951680882394486341593832772385929173383442888383937207230976830704001838408283365749188965539768443613211041362616031562790830486741325285169418740100408235634755053436468605255825970606493932049086490078516066106651288269719749070710256847676254257626312944363084316465225541950019296659376998638359187493916716133423021392450156558090100069539505394896967398058726685104890358495255121345686746187603073589212383396845344215420824634119110367594757232423815936489290748016193070022109866392884688710282117048963506062260985933979708155583907503599975663395995894918292533161541923650374175985190259229036858857263505042370835239483882075243625011363843809589783979688406695234397475022695865272771242273228059191639179440249225767877043236100475140677271144997764431706365899617418176083271594047688506248150486984871464268425551396667131424210071106570157620564747512193619736641155139528717597228701724074138431430959726655702880639348695542812283043644868630527225845999045950323336283178431665828130243185871904690852351227516827407045180871558139860254180825411166036990865521607756401170833421703096838967547244613523430993726402774975926796002032798783563056846638779206718212541039075417959134679333042168547605037262886212092530405537282470318066328790409965524721225623973974761724192464205680526111091087935092396866792919800096303741345685061500352749268266902073981731375055094189636464018875896401254713469620616037190137326200220506318568173180134230703103279376580938626606515405617943458801355953748749262743166786043548155846546238379157495329329431860880053171111964057190077116553028941146202538615894315435912282998354740432604235998713041421132329738109181310027691883178775733893751222222399641629996588012397366811545299564375112460503664071437986684633596387986914821084726195848380569498307182000533086679707821259639660582787052828486771468506604759423519667951282374915540253550789333577591843575112704928818997571442363809873211920335977056823494058871350267712783137917672373861440687335765119716189324150664270133231377433386459598788494852193157953229810954941231253420301381722005623091757257288368140932863287750042724694374359322884797013106572255646499027186407815785203161714930510333848990696410356578091852900902177920339617541417261069431961841033610192089697305445299136884789479680325558579186664180945351875239834922664702623433244772912331147775487549611377802930413532937088416871386361238344215036065023086895929336560451569403207405300074643854882776079928968346397853884101498688597908074260072623053719035147377510662347099953884331197971118266312989141005281095202583114142605453281837329567681712858566544892653866503682017824384836201510439895411382211191988851540203178336239972548845446347615009341784374130628738201029680146159537873043530095668793084005687349938684129526564755877739156075188903606990822046245501602418826706194796778903864095149988136256137309494543112221710617684752731579862581608929776307468944733745693849965697883585364173939642692680220769222427312697172653430034768333351181958672278505265545180932368968198512294007900063097631174789695070539455513326253293764877361208391833552476803022876140296299240825682111997814380830945587286413878823885257311439959187414134273129438304707789833087234805704491423746259414418962714098032024911644234683738589509002113728818928881447365251565337086735219091663271068193588318620365671989157349033378667007030983947031078873001757856427274234810339977551612281504829705734517923659638705940462453527511937284202838204748308509566703257510015777675346684108032691530608482856849003045137751768696983947994556842767651474149345014802431515312945449665465007886761108988646084497309669552315625040778750156149150977663927464105029864460938830909892980083881063519168411903748856041133796936746979927969609644584982033099243904856898998896032158442216372253429555786776958436008640332241653677948625042955258916792381541882605715746902236739107273862812417006203023704468733231053174748669472950758713922943943492761805245845049013170475003636341473788516081716985953942023710029611740909318141913820643049793408413002703909264544949113046712951890267531124900681965085195055067746938191882524950037266642514100820242572787128046756711444645119249481268743792608747386837843574733538386050474362488939004382552738331581581437812917562979214636161307443454990049581551392492887305026097407740574049362758643717150399039387078432490130749266491680716862458536445722929428694080492350520519914633457445451794040019804532199619003785101070208348820400514112851440820426799564533994327456416173319856984362685484995623224833121157646804337488689786983659867932270144489959561019860198127392423974968959998696651061081087844793818679829883630230243162073403586100803168364743743895833067217194476987567319879380966941904362463257660490417271648818150527032643509726597333542676028262732652664278740612394181645826879358318144174533718825339701081382373302829219918519410572642236145155144104367338962096644887346785063610523726669565859639010202722637412691165526467987562695410588791994927616256064623457958801365969862519467104234280622218509011941482288707154218462236621812732852522563804167541472979973745957557307052550180062328719774584604315561144107886124366950332782582673548434461121680116533471258196207268273834800818729640455534418361111931239986488702860413998230709340360138328627915878063163372060525690377977996574852030672980970565427674063743540796664885931589115551254337224830935385376145045008443278906141866973238207909428880621591872658782543363199467980995138244751737742967495155000791319671445710390700754734806891393896586826780826499673122718031493304089196852011969077370035167418512242889694219693095221010442968894828025050114195398141390228606959393274105328433669599248392677763127828892307677611099368000660686751585747484965390180814163359289123316643725845607261226641427729001660294542489886628712450060569876000989631868542752818193498081223130255126224024770454420866488296423045382376937386835112183002756052191593522935548232219478976377766671971265892216753293903463531102786164589608055504065114565466413918749328472257505004111195863460305358491428212162968244565497330811461777007599191783687663191801065037350257404083038765769666087004872743565786026682241066540633919809775209730714829284932856939452644545103431795269550881269389091052452180920594795903685345544268926276719830702781003616616479933540419314860282347717428918068254717269251889209990804936253841023813622296440910420208550770728105866879804063578002556366337747967050927488112227939472183995519292454758019376771514192979760920510406808512277867275966331779933645214681015505846970013450966831717590190649746283504031262349705736400355624670873811284421912251132667497663845809456078477519450222955900704930924178071488287800066331958945941212523923709024602941267843922222725139610038544932040134134768870993844815616018961802534395387827348624116436752887459135068509519108658511443228833401511086743095945784420953722673931346274763663986054669338566041511618867174432468859728923648641360221384067375666898247376458563552303346992916543591523326294313151108605551762426106709484293117380125738302197228222857621839062588577812113790209263231873268362290789586002074481756606351971433240130458686078243725272983731418588928610262776731753304629371129300355603816968966527735087933871180136418073305075588028538353623673995498513678664779740028381796697257988811402985444358085719638741637024414551285211308083383356762846744761113200412343486862725414696002523922309426159199181423568581686413899279366268255164977203666867569572387988973380291584070981950060750137709972624495791512035649440044913746789053714847844598598127494683926103278673254422979009392869923580261519899688859307432812196397436457815477217996820897981826940990800522451412171848986127288079093309413063938574890486047261944819266378370625454420090714808001732483532510023399963990898130924855374077719341225593637214699488379597206549413560007413223672328837008169167574980695188080476206585336287288401110674643741255016505183208944816240396923591650229727673115101167442861673077895636357452665674692697274536495346779475334330669846504007902089900480593315831803044859998363625466924151058871404465444584253777605603682596038053377759602463050952738613851525335185803198439992576133244719815737166346262637541790357699134848624328332719185331024509577612957338810952422149589798037909063742653103232655628133775811904314201206227493634887178591569671401461866845423954092161531711354196900387764051213511380368066364898854412736465352465221007723617858400750270814024786883960788458252218018259817445922954051850515312006269436446061191918194984633510413821434850264246785307129059655455894741054937743705359305714931144415446661117468576424616783098174905893904962618365123189883632746586182099970165978288661530108429249464418748191938556910919656416388666465236077513806737215911585453457429257627856125787719426193656783381439863542698186768014209866789587785416799515527889993356935032834548027929909495247225544073448803155429689495872802724606823002786646537426419264672711115189660482298987188062069563826904489903909694191236588720482130411771851076650777936082773560047743104775633332228894977945893390639461792497738835540237674027061344634262565939385100923631476786780779182721694340925573041482045723849221266088026006700304095539529160889638311300779448768658488542094183078904736595662306863769330678221926817110075355377036896610018322200461737523929119667316046116968381608646868471614126901739382965594569240317990362356447960570985122895845441364125214714790908251746455477558354071153882096673584649431050421866393669767801738742497877350788746726442791041228292149822446065834156399205637400924316054204846167882019100988649047326714105742302575686157140896809810658307129072563917153640349711850778458688371420398769894024714334680933942172756267318120653795464709376111585758813488477991323098006835931701925656435281599206860371875426904991011813995940835569438829179428048049583626994730001088955774077690627187814998293998135387336304429526075035683591165782124145460347178399646875261224223196083354752189782010395292935170741214790947765710020979563912372895694901678327825853271998616285840426840862789445355230971365939483150392845221077969961896528452604582386890892509121939181575598012737070140478996166633724163829680933598532496337208603203031631596068123174015603493340333972144326091071624547972285993528252970990193286532637940397468146569236346307098922568298295155161527715866360799562653642524710532539872472579925445693128766718832386053056226309564139901719163979357956806332220680934887958942136690923354752139100309771066215336078580970300134391729234077334146813839175929850766350005576292746757769256988350324716258993457003974839551950819861850930830240184884173784981024038257823922417489182866218913370096263184989781623084972556677971238376713896163631279679864560725627875006513726930200220368452992715108889499024142715322407701731419785657702498156066031102334426051774786812212795080850321707062851325787884780838548195759097868929006070465408055760145763474237684145009813293372243034191641466312091555615661742982356231773054595548289318348895446178918366272798122718738159537292561118922545457556827528561974273039007139020420939254562020002729373338961970010805897559654172317228577829846173372433751597020626902404702136421784669512274655888970933472347085529670511687828245996217906070112999213260139756971926675147006449295855983387087988135829793692994328586324119184483350809450799978528926504660973481408113403240559905903342550492350489369531412915123082262440473057576478962792560661874233525190811168708182658602480804475026721454278311784104820851677627418969850030657024380497866279533419531846871390422751286099226818651525542666009748155405367196294164305237672804069870358832694173685156137809753573367311209252001347134006267880236279267920196551007602422044834069014821568510499563284101523260967705939880988058358254993494485933953508531657145986770435908048522806004211581472908328343715660871894160550417226301713232348507572079542442959664113178989074938933552798617865921798851407449124282525166717127718412754129152557323455745722746711031657758492669914564038710483013912674117294602438490309805510125661615520047995395766637229262945900904105591210312930906660262761963246555998224604766073442811485253780490791440758049617845264240252074023378947945237644079229744731221620969902585926057396697443367580300951512468576660088541291438440937115666739935888253500182934086800902387523984682115075071392012106531899518493571060296349548758887319500587604278932253909518124095423892599170682308434904042937174048333813148918386395812477536966549679440855004992094111407849676978613034405920052948413581600078966467304916071937688841191876095325663559854899187494691545767763570781788244144177371650891542856767291211618537635136537418572917143163200024037086253820153419800853873274529318985331007281103857714485475596044454984437580055492434838841906899078142298433631880223364290659993596220290391341571508374837144616930017281457946402990523701662958580698857040375856473173481281289381859769815531521057438743760657252306390894028964067188412514551766832192722174079219199752244597187741821363331932116206741502673305112763890679807551250471256919896426628701604233937208375053280259045081016135829570853963607174051366282433562152923149367122655781504230286725448431354578258096241237789736031337826925802780762047020452011454887652051041150487286504674196614143315026744659937587856519656490107301976603556327455063931638280063694048527405231037404897005269979356949404262910820319996070447976025010078356833178440665937674229777407447813423082041675065735162127693790253062953773239210692540678103296489719154425362948561232459204396425100068356127946781843403248961195792143005936632696819369937401097773482319785688066173369225823954587278920972321352793555188961501245261851579774002140508464948539932690759191998924381124961800989333590772061831018377952963534892210615998028960422423353344372043527080601788745144987869441218019385908099505352590834481546045560171270478984469207498137943071654470330090485941517099671297470645343546382232520550529252965520794716676307923139464048386087922082758213255717000596453194658479214157391583696759116049284065040591134904041465516419784685317215440799594365252070432478437227358328351165967805736737984109288993761361276797253181695740560419486660590377896199322598572436314987784381359977371617446799681090500361764178168211079627518308048389872824613868875774173975477615945016717572938544548150960505108494461050390382794770833486423308498151817759106612915348274246322519237033159136220260895817446752596103982604357919416071588674723776190171561485737219326209653351341786259768094259220456708510415338367928153949685481393656129988296707167272236248699780119820820557827280075566981383683680531895819347470139813134393560845780728882327097133266622252491930956041848400182123101583105144507885910427193021456704434885006437806794337667935798739683768359174471152444253388106186312617224503080562157064660223906744014278934333531808189965287586443529003674765058874404984722911559202955240646674061231137007027620444491424489590661293560503103036541074676116552737313987427493647358471697571587200002127539203735417797896385997386597245935337956568477587204100433715116240899853024283782294911271364586683209316211624358013854281644190887707507969175603762253335432984595398653259800527649222593752894071051145422392190958937615400514576164397202163494436654596206058525842586004064078317709694966891905920154024089704026950303763422210228110719063302960320776375895261249939951475958627141783898793161638430831336525985363278488083209449127910244041449319764064354928641983998183011026653277743232758766036348196871032470707094530910972074582557095924782172291476422724517211322944091335295929458946823987024420000980648770807887810795566089930504195241923435042415388074677280099702638214681716678485625981748911370501870253769128939466699888488457750482415344744182434024587542632143480922435326842789623869516045310874350212712790229685599875310803244039631441552672797892753159140711385139818945466439755114672391017372655368997613612015890500247459031641288764351964532310493797215022732454075180002541830361123449356779983541360747812820142966415367021465008877673981474710794443658812150692683208259501570542564581563676246195770831359264907522466396863870337517452493796705204000324343843451734144151952946356831482143816148435447259480964436352021532192959678148408898237200375892270682236009494457067940018105605143986395818753542433090509007110409447921186554628366342831299060053587017284743560348646453691602203681970377339358182745771381992388043805105298207642860494430236258769725039018882639557370140225939570742060879513911207657051565600097393836072134249406725595895653311578619349042364389724165386304791407255637167156032073644603636642433723413468016931213899498402200414756935305468976503282800978290718684117622874232672890033562386363170862577606710900383520500091403550696175863561526495689623768522365069091236087913843392217078372271439364800209386689018895285432672001979561383012848660347417914719734130502998630792196775511881820848098146424476085183972073421481527751668201139163651289581479523313469914216558357039104658614209414680159059811543455242706692389898402937414451287254366950004273221384552900872437457521125254902134341348525160119313971300354439831687812350121994684794418271429847873872709779966243890782211162959549363440607867185705730873526798158893069393760983896853440056030452551513101096007131039044933921729031854288783944153426406579497524099313948418551396513590170630585640257570527914877061164556225671311595129619373207355443441877732041581533843637298317647576099206937707433897351093671808121805612599282640741832223580335479307787339611860653419646116664125760220901589440087579274596630683936779256045007236856280177622464598628074868202307565758851143327701841450000168324801608298029909772123894322888421647568956959092425550067778722022191217621580250489091309450079616840382636250332838034610752429678519584879404415699952287470388447679797958537642617025869293357008425941768854111007016942092726817029599812417264541178940534997339487532235286283906481873528492913483454743494657367600261110323980262878648919205801147398361644300234458457691469338596272902735003548310986872852071474339687797033450544898077695612491512280881583249265949795506046226698268625358071356938098537611161680278856263433028276268561605758505897551661462087517075856429897400459863308858097354667806317321926334226036659387908922285034498650818372888413609529797941632260165814591907365871166105309274274511773329819536784752673466015094234641081303081827045779131949704233515879872588874535607684756664287000727547156462610776055361825976917416644665134595570746414898908662806233554759926680543196892711356640707492827848755437003438167817595190274696980212062020580950004219190681067411835800028747762801863887917088503135979172103580995207500087278707504129862965733195030446184227396064595329701635375522016623788056125543195190828409570320222598627140682555216568745442129972991097708964151609029795098517959307181844516262098961999891253570963205660782619766777056374137729474302005538054682886063354357323935918955603813730916142577718881966938744392924919171642866060378258905555634507801177428452183843943417241251169067721904518131390136950863867635198468083262014734467852628652989805398922248245384985204226139999711064081139689788634162068570501234825105253863144450598638072867221601887560160322613390834618784154737172351263960199833988611306396503799931274782822618844450635572747489590256705100692858087568838040820933539236708925561876055395962188906067765917610633419466681122063677090269377943534998164569912761923931898103156350813855774676011687392906909279205174763752799065110579324720712735897167307888334571853547780010555311221859772208075767437960859017223740861637130449789659584297294251401554728352778608120503412063153277750410992404423882302234319406460834083327749663756232749245581072656236211801350231067452627338199282929591529815094578561826694773326644379943020532583200889464516015311776533965394646810579591396432191880148886897456550442251168484354317453584114434556422492779909733827130973538009671572031098174092621738799046101826856943602470132180284021654636823144741585267959880362778693671658250584296846355396720505325084405545877091715173772745056589032163263662041928137964449071533979093631941456841440883042665073652791540201789121214804777967275205814670089264754843165444255265220852083368996168380652769400567917139204287745055048121771336204846244384260172616228856608461367274010722031854972503867396105158301258188862669525731711424271213430137606704238207720034503154594125925601198167895287316091640289420310765972190527940993248140295276915878966209893220943328455222537266695531355903510936750164518499063448889480958577727501722100324871878511069938840170923370660499787771889872889539770880230042515513938284935774179509669308622575500625649231099704778405468177496188615236166060049159001662599498470410210161456970994235261498432674740002435567984785285304565158284109609663301861362561166253228552487148492220973636401071638665093248201115744578885807521874712822159511629604194238591928381308238729760928600909783090153712790515139950812924302648094137978832255359037140564668160406206508194986749052564581881319413535196666192896850280852443790356304618908430519403536422113120332299586939533326011796745058783317587636984613036562817718742777417555825894237817546415216478846812722821913746712587416311876400495648432227991075065669639548132053555089749921208148484087748387348060798843208064832735401829200417849813132466184741175527212449219098379603925222871951234530612900908698314256957643577134766559477095403751824933995621468994967416100681748036233505316311598823722271963088206971274578109029764563461337882773545987915095551402951520590047181917392221864885984314382307979456052320993566065683533039759789766605801414697833281480419820274053446598709831551050928255787133023838005405422522461813628549580713344603600345052549925367428635235198699308166687999424971350213303811338928034125865614156484775618841779919228750781950656926788601251666100000054066418334935374656886822158061531608904894718410899631551842234954536564417049368739620976775742659798261681824759117308652664169086539439515036329999887262810878944534941201188671886555052858149021906048075248483203112963555365305881017657211952539822244816162322274436274444315397445764584353448238548931403709860465440927501200277194683354807590332817046823822150742507405456838692271811954218335987311160064013321934694207075172643813245856827543276561882208994224992372901716887325481890617014491805746490419514498822249453066539046769908831482599339149922561597045975503440957255394786303318393145007218440092325298415690337316236780396199564195055792567199737564880248977205768310666181857252159522172867674854933747738370204795329208946797836224853051172930200367267312392285203955440228174664772955128769114486974757748373770414095810166295878586770138379620140252086344225659293394959725456542575086274597526633340643074343772315636248283222901722672480681079655670569196762677831899272706773512297482230401465426502121827379849214362709217008402150045318185774077567917190207402425107980989920437025615639047489184088319152618504299218197893342570400931505113210793997950124917259261548346087252025882008141498725881232580376631845137162425039927924051262555631888405837838746792260033468845972951514644426599637162914640046282008326218922915629652332139882439995724071874490257335603936558407699434341157859990468161716719165698444946665460749535838245669016872425513496528672107562436360726105801861607838270292337024973951014344970521789436144145890074741081208613633517860375749359134991040075592661328774816750764760943235607274310477371320339322083762415569704155423200106626638051263648480936760013697227704376343788188130912257075777133304910100737357182160521162988158706484950232921060335195931140614282974024731645198023723664661189100642804575093750079565758258987758037469750441671865266849622188312669709503643454766354537086933180209569969231204404250653153119876068100554058553570609799330631708828219975590546508064718948336657224821533879794754059415420891406662987513016236715718101038240651280973109841167572044123729488281175684578200857189747284905013897001994519891333547409550774668151746430512646719307179499723329429112625664988439870443418796561603352924182360593827126705597277517722501500414015281104787037549750197364646711783565407939237202101778525770290870388904413474478177124815348855384544131889269431180675418824253691370713315868490753761050943566492110237845191098322560646830530229445281663049701535488444822847736456238735441603318261690208305799564860583268712444722190413425920911402056614000708556108611733050649225351588545873001564486937400286847907444091609600884271040905486675418610293038958247236713752689952312396090815432433648370144690227086970427211708948717948786329040835434626496376968835961012348594128820957691240975271833836524111300661045525617552464476923746746922208469684530108651957926449301248928299891217904423873118848460440770807863659645126600143811858697229047645579607041317851458471227844809701643078546644186087641567310534084949119759563322851891063250966039258802283805208133131816531652855784344233534654943615340042763446387863306072090710249782377749040206489089650246292692723302781614706924144890854942734229496749953258484021282070375512052729061232166895362915065133251749936328743927416414606260946101699095626227854646503568886351592777552716009404687852584194267782020761775040863506042248670981810885671074055904835862529599573875015636873971517615459289206047048181046340669559066177301756767523682368894248416533305637883257421439824627302313310380546582379901784579473181282600283379126866505710054937481485924739142642090730660195012813646532727423791614092598447013076699439189058802045902502171864786552571726585202639016819370893101679375634196496190095438341203243499331772301378374231005489841424196297076702609298981238753569394807796273890336761254640191478116204032850943603669703486498170067196746876656468422163211334137482327095584343528490631577039423205351997227373553363739697124839843660011050535464798950679893043222161559250789791281244479835216421789173622105150274407038524879706969060396861067939977799755278658493487939493625330781461213733323591067112063186961891895816830900854890649260671104520963311269586897038113592519956001484365007278724349000479030918428071356052374674945846931974946518460416341556097002364026614335883260289669828983239757143454124808351970041607891168840052194977932958261479175318447312294880695063412455935609711720120188222205961782518589344446466656151415379196311442316230844778522819062493970660699546314503858850128273122801618422069744251257512985688982751412127007027290750655429952001541859474002908646267381843857585658819765444340778769607083237934085444504181727585325010430737641290611922626161463674231585977053075817081786253881849780173420244514340973941819302645451407790398146351518372655698126730753793991424590125541424260199610979296665048247579358574421114044342802113447317471746053684081012614275699820235404512877874791109739212516226783503206087312228808290120280760199970781471248358072980980168215909559092152432863452061415121904805568434199813931334256111014418032770139891256185956735636276280720528228138602045764293001822901584216418758651743667346017046228155590460695347067887755279638439697591084862141907928571165480243136547652645560771109943713830361210343808176776802727465167468841548143418885010980098773745981114499135014379852373882820830072982751892635216512840940612847503624417432701333356414312823016168369965140974233205165911333707501187853098766222336356333697897219099932970824282993889383752867959434289885573952752662398369117746600560556824216617052383031636199469037394548812147841614296500738138212113305985708104525311329844036109553865522013020001370249686611281799647581646710506300165302095088792445369961211156344975953803166159631935416897963461374182210714802531953321328141289089954868753854133020110733843831865922445929956864289534443386284331842373275550950473060383465140143612771886816816654355923977525477573345161579545014503482550743132711097008978456125171276343530931080827265305545672447172487493907793603757763090607397159879692095538717669835728930328417856737118770197087178519139943535452444461603040825625805576681855377076441389884864056802247098113989259290876618700823145923385177211376441976659320014043388316885486642712116842465224723171647301366797607695406368147275687497470107968161664310447474992815131297529462108229865640122766469862364033296550831719113556913408025774693555353802718842908255514980452770704067467788950234373804068852457085147284438025108631724635784465133664644455074068645263549938956868274006212266636933710631913988444495244224824230949765189768968914304820435512852953691309401645877432443838415446827691356923166394203265247082301847038534478289312043466317358372343036568329667496311766410219868702453977065362068208196792640354261799274587911667515358327170347588487305220098428960457850361868591962839486859689253009109374973777189237202214347604753001089983336931659657537403571821409470404259944156856813995082902094315640390295289050368986158044954722033788849100334966346327258813516445318144180223591081556269219784957154377763248980988691342220679126709809633557853991508893806466958664267151831665936134594711578050734871240884903904536626871840090476368524755724586624813512985629346542111990160133073446275127990524182540023009610908476416069315350178265522789014217381102635278343404798910902781203473745315460188993696066706314314410439226218337731128963444912013304631115987598938705353428004624292222202777116475308819404595820960157555074770698832315267800273291737720097294099125120176871910933355518076149794537768219404673995545668089356196282222114361652207448976774400297936343991666711628732898902707463749033468741563158080232314966282049508294155624006520739015921223294511471553087684530065244718992380590938770815741604210573589903711518637439482014961263241487827032830835857592092177951603033563114266271544173559124765716616082320523293030450982121566458826653609357265223103734230621836191837160610542629304681177660764071980872715887587367741838688977739695331714060023765060512804629887409535814780847054336888844008154349946872424347388164439885605523401455566401665216727605591315849688712240126767153855363443580839771659776649121489135628680530260258746526865633043297897033173521327687217224905468692822431186131513503324094739660822899697417321357792994978337923624450539442717323251556447748850628471753078723639015400455564172473515907365559055556489669338526390028577151035540268610879340172555394821056686424931154754934532953580101268967367736144564273958347976774939383134644943908354026003090817783270552212710695951141259457858799224987543152903761011381335303594282039579017671723739997553210110729621636888093731199604161698518477953539455958015579227722548477394782856713844789297744098099151866377356700863816730484583616304196353850762247020895973975994023931662268071044511696642232398268317629654140051327625085365242964746445300235357694909170344100689992679870735972006735175534061738268217153526099891127241391115523591179597464135354611391322603157576004791256654557440663312699510345609086658954136744450550164526264550214833495716700001338400232195625853061968684610748724597926198253276214791970928781990129888684472955664717008082889414369243173933098002911287881647956394226418548582963257765572075502460289067488787758317755616381916197591776443547344983171928012186072715396081515356992253214070173705145378209241122800126480773864245732733320106540241126436033247445864841441379719957746527226515458332411497070867359792060920189856650918495390267334484400454673619183611088165244027224103055982690149561642373903531596902091740199469174003697232760765891568251015646013971121110736069488548379895002483839000484169598399315995761789962326503487648148645338269698932716374555790134422738880120659557446066510147413291137333375881587364961067129091226862413757335878823329095218109622277200826947543609764565941234490590010652077286572834187566170343107917344619923426592414158481632003096744331872598241694061822345307459355060706429771475446224212840403558673037770599819057662136387021138923329551327877667548351641268855063956117718723168769219827928614509272566171711780993307130859080523574208334995291022130586881379544392847815128897029583452050358646605425575362507414046753958904919326898164947942515306142012239421087350754622246857670708089718002572699482789895611007986998877392486455954914748124467267822821097749273598142870836712477963557656083694791874052878312022516274783380098592469381555533985557813446571664054692366716100399815620200365364287940921467496548196386519323096471061699167830894440651097517557828129405035111321053366218197749299715760479260792472738776934051131109043267076336617946259781694436177257915961572288265146496121794456525195673861594779737599360648159409340350259336618533371416921084493226603215549447549413092549127060149355200542562796315439295361430198253532092494494548433006605302853289731769612161774955084082792993223202363742241126931677848231492323106171374998893114850146756085483819253764081732364647939260353369953302757822479882932223967783849157543192187724548737192348286039518330071018063772446592105011185893744253900814231216617715921603585843881938330818565683600999913863962248220332092262253762524866172081163160806245670502662283045564327741247386509236094862036707038209497679802211012953404911290073451500819808239386499099432449842118698112253293866147916978812922005119012788632719368588063793835545798030645022637509598824604050507060238214973467055102257392168798526675780895922047049169838505557823996579860479548295954907774391294860610668340477530911564035491325161698223046990944864584310260918405631861729928543035321006231776109856246004977470469154729317748236042639280139824901781331406379220468541478483411791508999734827448131530218875204447564965551902963021368563794972243144692703177177251008517275995096587297440037973870642621455335380743163893303076332781299041928149411075131400077625031629036929651077509917186685216177731499650032807336659311187344617350568170018130505658854306664443273924035094323209042676393284210616494821059661017489600112651448885166209733397549160937460143181846560342234940771100557454353337668528932374876336941866852385186710070234903157321572735792809680063702813844702615138187328323077317313919930769618842905113856474722148952908564623594295028892955313596213227367557615070415563420208842957097998387860800586524801797009434804359487661940367432196432895087742527950347367859023343551230557902822136551548682712722052947610206435539053547268517266306443574839345665652824004446146994101196774804626761103501817367092223956185775462223955572346735816949968600400422524354002282874998720280857935527701114930287724278932048932961882110234691328475845031648904506999103837333026845451190621881601523076096634294095080730213566304315583968159976716618451344255424427723405184027294840033403390166352758414069959989656765360435736584710286387839370503341600353695478051928426370229209803935498538528641438359687884485872036655008961815290949835646717361060092174431357736290436718869375131719318531896964614162347244041967682214389771457819676780283032149856663185295011135020451880521537209086994962397701178553986984671146642468825595984285487790585293594288992456885965948712556438423909369738027403303226418383064941085119781103761660207194484325312222586938400947416415367467355743808177887856694474695145503489210502876650572413852011638008069997530700057582733384153148384468916739043314781963064462067357036218468167928995134280900982007965018961723183724591769312486469710999239727638854641924352108416943007418408858894381636757054513756529040753546174884510137687392934539388941611281875739919503706148086383191348340067014907987106738379367208274711154617659149567976875427833336101355046517475165515851135575166341887277254116291344830251983159016168576603896245980718613327982965209029513953896692329950354639219395839459343155713475891985660775102078593899028154000722265651439326741707120565560108301093189815088813679321615597890098748775187691268681991422128875124256993803705566954563105693704796989059730837724122448715193603667405333064304507685099249387956955036163883325603148354421790531673274030026346622459194947296876597716434746539160011761031239855208129981446456593181649701267221719735846082524775600309713090157344513138172040440348666003082564822523229194943958879929880082238776330812395425575553093482322810387118660580048250290193779104547045840264046138772426169685710254110965837520591247221725791980558714364441115569483264633839416220121531234806465168273477916647842380826405521462455859856264427072990420553594954233851271540965596301998101845903852585893116784560214050703063630413723158986080542973157669122843446745007525710776899635794508403138120931580248952778312415453303708769548179669519964196154154709832508684720608234048284685419322594315811366436197443227095277639270820125367468887064009377150490423149510421838225590526398744207975451465625417724919270794081699274179423850961178226902663593905836989637430257986756068317347693318564542331653733891471963287888536385345848550590096640402616585558560264380955150860552174069885876953093624158069427003505392310616931333317002088897109727000884628737792753899513176323459493291759969769839641172666726001851940203682682494366623844732702958921273699680819980006710124665459875699714162740817769833393387704803611625933761000249187777369102022924635343684486696262989476181829907821450600045011947146605577350774953569108272519723230077169983705386154781979856377804037079006439021971814733431694365037867554392286306598207236302406536694323416372711476437990562035054265702306684467613783244524439031685619224690733337240517461617294341510317087132277531682374330689911079145317509294676635901731428360326004993704128205103252335122128226704060188495454067040801878563929779279177235220355096395534064594924740829056869113220198327383025699482032772786210540446794729786608821305421198838601088995942505297906245431230969134909979949085276822966458905997576896212139149149257673570978417086490282565252281714831076466780333051394695370238811652462895795525726132530950843138349144587826221921797302016970462412447150338778483698878159609210331798200506569935067485069489869931872927412465915006829815839930522030850742477472432638616896143484661052304357529742889022528274863385296019233692024443608083757643386257493408786894124989920188970685629117943582817169716359961915856397883950965533648724484984517839709009114908936334048224699697384621460919082375828383601980827609022556226179937224450539939380859344427636097267265775861463104469432178011889311149395702689083555254784087986102901838276846985880034037105718215196452343511036144492871398564109840506058313128003663944596173629059267583358772927770428306794175195381612711559775088752745718282289434576658421498449843812287288068446415406396920259482522410866220639050641637220410103842517891428303939952108031881230566893865167421990545212116114493731707270956601406291969608358308717129621147575531538999904140813551034957228851426116859021409654060933298153214787603492820503532860603095383049307536164451503151037471328638568396857621468335255729601728516937719090337997668993909904725825735114920100008905793714069950697362584251637521140211609132523904464040392061616294530589442964336135480641010218523917537235285835894755281390433846587190048092419148873566698016464005379672096237709268849819131145169726608031966500983095206462285969599275673272753600110332284485110239791963792896595453500070313837390739985558662763600644327395190182380335857689587448647549988056146532347452234679539751065531640039708539886748021850870156214243054696483962631338408828893238486958867732869410448100487318440331877293388362660285595037173586613407683895535423217138446110046141983683070282440979308148992025240422536124743279016785785366510881523213150926970540535929432691097144244683198452914010712636693413589111691144780522241610094143063489443944938860834200220329406649164878678389566210433981771966818613964780090904656612959800734812496556457951212719863151453317911062482389773933083713054645013991591595377867165188477719757684778477040004797806306765947758249673093009729931312967754417082551516566000242247308462081572832415226503527518317928697861924515913623911255187497174567059414614827349784751763599922848839322177788651308153083823040358025419864507247037987906493656919184306200628702520401839956958290799040154816912405192334543890713099596100131212769753731128585609512563078301500579327717865748209141237448808521719202855622625095296521472351527299002940118340317336121432858194631729982848791781282907695458394448784467946925119698032990711838948915426528720373200650240587742953683218686247873506270140462751383732713929436160724947231173479444474373733503901333941383547001452469627699938122605847157971255786513990738450814071148443602401550913168872018932693611755775443610320573953328985205258206751235942021541046079153391947604589421199438165470653890991230429791301714071168565285395742423815999063086393406922133431857219692339199981686156417700637921668294689262599696461263932580407264340874347391277248617692656257189242724548270776384287430653081507769850748984992461532118456930941962431289408616623422867082987412026517391088816609682549592226670522191742224084028903775562306566405896764894315369706466472597122159893005894719009252343009495066808483998203667154088226750915284170179479629722884611540410710081430656669095430264882715819526345847164167910972444964823663496342901774461127509416826321152770379697449467206907735831199613516877403390782198674023725910109696083417147376453547261249716975985357187354619977707607626338862885396005587433624566947363950924629755535330743557042247385784223956244002933177618652278890818289835272056144463010851533982063238560291000225245933571742178245451647998526688635666567166680280266840309756798370480591907767708219627843365756415481959061276224416574079755790832116136825272513306704579547515187104752503070200564032235326179828497285644995953575938066652486749666125288984715908293530958784870265888019174550805708213441417580772003777803174107860101852918522544271336969309702693709868093746589231279117325123003963793095611914613740189483661109054770165171072224006073072900658964291275063589659330177133682664981573852359557315899912398269100879988450128115151904089555805141955256989072952832479680166509930953917999279543746633282468351112562422986928957987094001410131667326893198736998895170656155741736341905780465212273940323949270630155159105122030074773181620149475397699592252017899944031552528774494789928016400335922963570285295624519851319163565377988195529459719140604646910127800694745676291731842821525340401682395377335619462822822118207086391719752883617312472225456866661048516828035862298473188763257198642583625422052418723206818036756397407237009017316918328350548780161679326361064481055654566961196114576314431117806606498677662919077615252165949464030805929182248511254276103499946079345519594022603982340953718754559071317679977052727686454839334335086859551084082276403521736965380844115298507399869795228022775658635350933183950874722094157512380370557258089726045783390951311355938937832329383363576950291275942122820784444599466166068461977301957275435689822464983177466089980743301887933240190342161659733526020318550019065855062103250566508995714557922397971734897793344857688650527722037673582640082685405635355526641842577335250618190953927565326272579060171144889956505392921272068062624723769988103766088955606142046126797455086823593225350904297315337935930357275013969798990249698260729204411840899637907669084665378037314112443192483382622723478904981261316707226231948479667323569969921909685891104776923449501524398389566481105727398821031939097970294045199782554858561742132862475549171002015854227235483648268064995589001294707629921382431459909160815081027334464814045446196190151166493927830464423558513613451409211759778886082412780898052551309783452785436510700707420592712296008416471835697333247196149200706517329980235015772290039831777157275230395372660704543740225890957866975225380807007715398448300047116764508618120428360817008847755425964775190954856108078683037187674451807893578899470306899142985931276432003168617680974794144061014283955899116269365406703388935205644392653120926961139861827672816501066949348353493643251301338048984889896778269839160702629371014244533901142849157090108562190774891106052582509050321725165956063043261937307347121890023307385087564406685967653669498578721445543734535892651990462841023724670607940121009192186251184290760104821315347056033536489305438492252708605582954124622415636058702162634438375288090889996436896238673529709822943804851737203502462693393320434812987702120646341322396444508560415789156053674983637210578385946510742117498610855714157144120824250496256147391097444988769853165283393631031580522154918719325936786467020044054044677751615030916296165382446613988220827182106454406455455917286241281730525863403495764047929918880648278123148108336475073254519378268731251662200433628089143288284120123473330853367004213190753115676070325842093566795984313840194090420717856882612234316715299226832645407508003799129599487364963670977533314852498923137101352945324560876983100035774429951731392605573694277233514565555413054753008697062397731554106595102417165655372623565954798165893374407589982864825646162540302417825527507732034251716503021330372064362489212778584938459963872539716963731620534775940280185740546412932839815013144801513263349763548834925295424829271579009592354685172304759795664817810613757336153585355747997545634749616110678987290763612513673718580273845204844625158017184332947946405403792889859095236589509423433989679930899498124502054888148346215666983813843627100174510228717758036059502075973413134422363083904331364487425979569216958413785751953937694973566531413220331105493103602419442584327503788196782831274251901471605278278402449175301135697065267780570536994803337371476133394984874416373304072356270822569153997476767340376354495495859927120118801292516080026731738546985837834431100804217796241849857601234559661211687617120278982354476783416940799455848613177123185553822456924019428262718237609430120355293235089560662023687401378969314387838973465795974285842819791238266911394715547633353243143316970266845810442701832532391371605339669642265250040327655514122655745692246635259573657212604158838229021864972643878338487765647872045191955286137643721189137744341906823156404015603241067565617642973142958304974186263629863164994241587371918619117485847112402727094282418118331702466194864867849081425481281959114691133801205471728417706578633543034822706599056696189467374467442289467371113117831080072777193824358851470812482961794393661023500836974018469207210623880272937910100313369491616600547404404604682072284071747549167165415006225402172120104356422802507846684568404011310888309400902977663753689019057862569180608292000615763615710332534535904842664959813205207713600384375439532721469375573365749844175063960262267023283988910060651171835280677382888986966615459182030668789590171789578798507125091196623619376653527598699512615611587922619184023914395656950289954085256443780239426004335720143924136678340376109489823693402289275677807321165543822029386466063989876680641139835737070110389004094307217426975759729704814863369528577781505331517626312624623965915993252593327078410624073683216827229436890329209558569266228601287915672867024167909930145636872993256084858342829530251991627208064857166898065760533270502771606859045773732439267114968013796780195242896132786948765541680720150628436361021741962314258542858553440649695438389089161652755951083522782773506862155275706308561555008588271667493009966214369302189158303725275029305073787399442828795113171936297360201498294053253649299781498188694584783892637966421615692684447433209656411067926385740491554160426014622892573647923310226561498337469359996419777780700480063811333527401739807704670004800444932895956207240093364736086553303232635081250546542080088557124540522668332491513019956980811926534751738592723556698429279576358044515996297419279907421349817448752198711897052810693168438860725576182508880111836613453171791233048796193157715575796425842987852175604507131429230604493045186887232128400488506628440781750936959330086809655840750289291737565405536299418744453987330715021682161063997644919045386915309531071914868598121435488474950621467749594043918054915505569578594999065922873047432047588295577971474428228620005107957733821438502135272693203530169532486816236022795857712055760460755857909886415856406218069689077344805797305406344728181885265972401362084331419707709379901840519570448670722492275856808542558774340392127321369922688482175212208582475450563595655191443229095968086204917534005820677302934741230835048392947291917505024550854960888897019089506306000173084552331120099930458423095821876058097934820407534776540262516616867526269621024109167091586018760263311675547119906478354776947694552300229644370372098562311643078985580679674350432218865035951704328013431221541686042741635261429537640787864200957027950748477670479957580137896187823388616662982396859736018462984893126834780720316583421858568983257837923764587953710360721600325986631958364727773101181290737509912643216608201696339627932540895885586412361514815633281381837469821640009757802003825644306391314015918409311095161957981280423115583683879360775570386606877101221088069588240496788736825955944803697677105252222425389548384730204782910005005092595684873819996053250575351294046459659412650402294482529492537575960715551081699963370970062253464212363887659688834816068137008568372032605785642829861414642671036239797682460295598762202820887771459086383539063473464065171801765686433198794888644735557391796534736982903105480742176921048282738972651650116519497192067436659231222998389778368204737686266676147946855136455973877478141331110712503618638202399979589407327701264439026949844699325194183879995605605524710810202789750932715903555092756544799138602620671085866267890291234792165803138696268122831087501308960422778278249696659341784240053687475109246218820951812277705663625206166555294402513403943087551208495591598248822480925933937240764277662577365051433051645138915020348837738562446970222135390573902148008825450769367487972966074998283948441550746616320994498696873500499058155581028011881235776704699816769168747511777868053684681768466690295526011197073954709745377469492690615859428581494898021071981647244797459058541955941107320561456777772640274487108002834019996585481628726844981913767207982591672000738435928942795836507442885491025989240655301910563034741409293281179789674943048595860992910271465010049606445549899851305384374215074973423300856216431902035372491062308388792425597758273962303098192314992800685413817506527439447396738607847473767775487399695095783855727761343465965811396117674258741071389909936090468343925514535745042953241763162481653694110795993140779474265332811222598108930832644111183602793136827892871005098259243078050328543951797049500177344568190050158237765037708892386805283565077659138667312180645179288635445825840364128031093385891585718229354891223686131355723116579741480936243575668303289813337198699332955379370381053124811335768173697284436674493208775471611332863231870712554617113928292956312812654593397880462042388071035703335453347564494071145722690766147804305597151413574645522596007899478126213816390822950621616683006222573928131302582826678864791683718885198468281259331339252962688852065371640294268235141493008592094797056269903472717768691978958085554226904225091619450411068138892367524969842844495866191666573520221942793376994691702057356766593486531692779209579058142387925637265920131952992105504049188475051607241728072064817965473521235948377484513175356420082909122977854673923946887001562361971253471365775178145643192099657907330532606732843858860505267528630182641539563657146262635703483436800922137325512848493787838391041476394991578608965854249253635395990148007314158454420283309281551026525586604901478104319645749987968562448812569925469188531322133825776392192202914547024260683042817034269052770655437329563744580452528129749862598877687797895584823023252523495835000597117407015931271262238234115061619927710645969224599544273700567242072080651981537081548814107008419288897753321640304551507057509151368571338391762585031031672884713479789744909113398038949540384330924483718578130091414818819643039850912887354888449354198716916644560140121732292478883662481175804840841426423811021736041105410031477453644778536182273182987646409188466747967376910316163736572706834407396483454886751194811407125190443176151806651347968233605482174417212636981557184088057391464950831349452780251722431644406481526720469005835350438123944736921628454718104027419172253244484408990428511265175666940739795812460505818395109426306114969831029457503553066964944704320901584304010057275300613645228065900158555002647999861695504499729456994536518733218920044161041605189032192091047748758420661381463555641718531258925008882822668312575309472048507889496251334511923543283780126726243399489472388992753527486669662098744370396848962444553377318764563910106453944816101122671637755672536689058613988228080539588770560013304351174874944745316000808483553397515152129913256976834108459677871580137744678680057324329477355571654919762722557468613385581946761001888263415448788582511352922189976545335799880307841342101550260309831427619584003001805006438117698147989451021710363681260780116165385770473109871275719332824458508150610955941420317333705738611432651247747394403176916432265136366917848739564437129200279737523786217501364674644424641370690594989667483587334938521746624782488013363360017440592015756586076775220282406830285620587039691134123707450233375761254701685550022292937517991928516447677053793713516365524067948800761694090318105329467301036738938359352811746407479574380211812028230174051298995219818525638463228973666955485955552190828461927004458002309574924242460465150752302012616114610329041633602690053256066344898002602999406041074770503480414607133631175850443921906449415796632329987423284789738573761897294544090729921598397221493173917846675156668754171870189487919015081308495446175543613906901170456731626747652012208502180317116535340416659652593616167890090046053076452543736787086318406883564556603832611650871339988811916613727484430818849076393028407700012486021975312461673821146537902793210809519190053838504834217609257150808035666727610637427575056513543130605004669709253036444681935713866680328131057694207765711664312481248651138269778337800070941769313788898108154274156461566095688392017514353549858747188459021486856362546220380909569825253852334520313380065330311411869771898579662441209631384485208341300569495344567094255522820452118993767511606098605231868095526684133345173102066482325644613434232359603558624073100370431336602694637398162852918470204124801913335747280323448568727760154539154838499821177546730328223400969911569115594506411753202660790611293829961785632661581585906513396310373922219067866865014627414292578842115227809810970332760221289327616566906618405345925784510746373014166496825290687772168325959978565976796839559313429149935546620677420377066051313707260257816700617628493317511353431580236766089795978048137426866027117438916130327039435364162010435009847610031037946277097555098072936486461552353614654834870011692908575380012053953238743538299359365420947792011078562340232427812559877731128117227302451283349920670319494399239215716998919316625865944299147298244685772917501169348019429668804621663770918636774401627393783636613000660302160830862112197760693107690253613481808681399553843196921868325643270599070216881445478993078993430245875858646630182995992244112432775788503067199276004479750945730976439465052414749167678630767721305155666052402658772613229726424821343911070334146377499217462460482407075910909051030413554695085575085455680530773043339329467965752800944763412702170829698656926740223718446516964048770543844370014308589503630234754814526919942024627461828524919707480226593077132555779983084477764701165910873380947390917033842120063471393037807434439897614435805357679485457345055711837669944359041251250875983190276832011997079360387257949318753175151564438143648187990048263792298211174282380503823476986436431001639037340407347071858913085203536864320643905318560621000995120836499821820463039006623731635368681093297646702078395010191948394370430419925290734015999252996624899221399603509615496213348074870949894195577827342032313243134529993295798816488223231311172867102946157404517402693207985872166138785898695961476040458193414353329381828312615336639159987064143855678452627893393239046033043283070965938294184926526862848389232229304952044593966567067847814769334625362627312842017152196076744694336253137128309854111761761875638847567789700506656211643983081888803616488882082915712481106882209507584001453283175772702648010130714297672971730912222874112661642614826566033678412203027425924543306453211041764200603098871746054353540997092221780875376558937815889914424862763937362507655910674215153416353713962298191267163459643696808794579213348149087055373485235472059341267472980964364181019037763342372173638259701431932987683172176392039266976151551351386926013381426654407716968875869769820154596005546782535119560762183604590103653266209267613963454670476648824858912266109627146510325522295001674898696160352284903267723152476823169488055966062915032626713574231021563129346498869175623401451779727655968640378352642007396862286583837371591483578820080206319734440014381854345938521355128798234666012412342691495873111700618822183750667362754880921250135654423610720497274422187892879627748788383801107157177927108053199533183342461261151886118416497052146252996971029718975787692377654169690618029059988182794874485613138991485804370445722828841487387450322544466467992205559475391237622087151685822927253102798396778628386320243911687878681761495763106099466231124191161334299030051762658011777212726726078472782486402861577917691854866969094070564663518637962231045482537562138856611709885872734010607438111468321356975191274666860114237675366589887200810852530350167042442993402387484028103380975380301015881663352744998473399661560516568143205508010647913243552343137986577397526282849315449727210106483802907655498212032950552099265626675865654896109274004498482961032792173246981160025161856913311355850987688874754433029815015952310848327822343053240500776665877558601398646540201321899986466369299031884485268591727571155544801364133050443649289225362781545623969948488927067289051860334599904298222117849781298482537089618733167848147293888968293675425939639021711321421735361524773279477040335434933423226420087562162232884578105066739365251997254884774801221385835187645143697997032639444630560388613965611466625042499177366122077403445616450521890828709394904309244522486944045467374819093586471721061799910449369994748242789041685567450637847067628831619132297584933321887982833852130887673229369835269497390864539190517678244857417483004744093332652013648124261765046676005148333546064118360238385538210065752198978391414496041673577698006156937956435612057729265918486584100093078655267301655543803700981915502558604978178330857859824000703885150411307244499842512792988321700266512744123811778692055938670330176036679015588713947435155831159724794644486167359123284882492193470093141262858634257231877807567409803920310140208501833962491090516989148504882685492259030141501378369042559954183797457539074585217358094610650459530211726989047558574522252120754544835513109007938366993730944290558225900066908495983111269283537789016317232359867602474631149850649164468525096540634296843025435867056930527572844506450552211224653393216259185990754961935494659515825571812032646294453459972902962376423842841811604225201780714273766030333307813067763249880835789075327234219844782630649501118699228452813324663880183495215806417205629510090511850710502653971100383178572952833263312498635448568833677971003219365751685676743969771442735208567314152264992361662227199726718442965625194176350274096548806279666564787357443797742068557546111260168702771218847403426763355331418111600780060557536812809796215953114741920782513235690425817810161000835972414951035248446551853335514859396772228371800146085498235870809762226759766984259083423071379706399018734843081860494910477965784998567006738195276674661758858355759151524009520486178345605609719510085039114620542291279727092880951377355306378670442736704204159584752188598638635563298187258100787917628907064222922113909097047272383013889018893112242474150420221698542602880458377435387494375419867376060558595505001730644973031413217986798649649600165299784696067896470731186612785373461054846839014013064322207283231342062217318155505398446181802343067957744648778511472469124717915518847983634830472423861961695852799250706195585315466138154190708875599993339423210173013832984284125270447438126101172180595481400557462283793077493674984574192474626141026888259795688843107446370376836902489737871214977965570782559257831673944676463625283988685112588693344714762213439153149608011718521201924331164224368978979480980343632390736093132908166642575962197610589412598412315748673762110426258128909403571486417956256491792591852219039296009888894035047020417702476642802500541406922663709704221204075163744174968626005570789929228154396875688868034864474960413402692058427694155359514380297403499720961498146303702332397577237522402007565349892099752934288501927829060082192487120520455637131464054688492186720790672252262218245979527739453417819422423261321134141437565717841730556090405115491310675153965580804406680647015751652586620586712774424705526074067728088920022329520100213837177031960279551825676495612267267224938570715600802311610623450137978833303396616833953563167257412896215896537360171775885810448120485865856804550509256825038230373389860558944324498911695675189571920148303540987209866468941197999033001109144154958492890834158188355717549143225898157812549976471264372679261281856693416732354381015343243624710243489709635337695804906948466009444223203009934079505920863528857002304443648019527383753166631014704479186410904682758988126504945206513325276820181265973841912993297265848209418035392390788563009314243451827665596554641360044272203121349076845157562597787991951735404677661126189318829322514236396937934028369757822100737627585398006399465794691644394377936499111732252383646530505481212038371814573841113849998039996162999193113045828130673814357169189691330210622980491376437485408364136358906785761363589053166765894341309683476888574684114959707107697022060010163385264086522966137565628142515669747702658968378293493611337636126443767900641068949708786919352911244401854895473975049480044228616192320804889379285623849336782355978871356923091275444327149110263303446752687984724080316992564977590846063967070368526052094976183976977803013222872257612565148669968508049220654924405840396575258796470472162785768113156286203159814217835495593387300317060051857466728972778420288370710434268587404217848281392905591827999731170214892837071656938451825080658348565423758078443121654705870453398259848620368887185899575466800040555572442975736701510586286392392915500996912070077931060993768542723689591673293708238844529468152298021754841164077321468403170009432945957204494631209561791876064711012266982586977762521594128157570507837591160284253078675957020911257903986595676335876184166750027944535952178666477167439687926490722322553377916938884192239561904190725751191309671690792134246584987877732506231654727155037908551396178452482772474219902284734707387642064291409554617088649077892574674275084301195638287755891064912021108305287534982361383669854150793545326222256204896346995997424825237491724488045833188778151777729340500253479007966529449020798051459727150967703222391722846899151183623715219811984205788838530908171376432856591415344189969094730705474848772132388734730345112670361731653630935753861915549354545294421824531731305473621326131519548544262089034011075523819196749968391347238765040945799448510283594054242032485301535975982883531812865878574069263759455752112058304765546651608878612777690993772717797931125140171376044409407467165643917585208188868732400805878908752308350040343221391311669269815264875353557504543468219742061715268708144953875861874826298877587656554202055451477520481192098306562199154137359733633357220707275129304432681589661624359709895655258141708526442358653117817012759108961855563008967761911619911699986541471889522368600028442984150225941606892521388684843123918256930895521945171251058144237967677558105461359469029498743971564919169928470550417477329013105758823256470848799520408045953033974720684302224409088318839866895421917508759299150577999378742758224529906885393073823453391387259198741113565542602822046664529023024925874988487220537320552756683616880677754876613172095191010470487167934772135290334376555927831258412530332262778455528941204534012016096036460691005415299431313621370328392194182994010015383103280585557313230124621847757736801599663115152069474847899187963250745792844866657748539935512451811091494220471300478782160805730526961325642826367405162483361344407325557718466017768782695047081649527362992902643786222729604100178136504766530283534508305695880572875587998158930440688359766236023808228174878530151756806505220192408532867594111076754683507114479912100210161963905707184499124249167583357105592063032523433656459469776450162730424896508280043857010086425197464296329716779473088374373788028836471234214218732269418581642934401522315690513767392368407812927056118923290768673558810740225766658824886698996177096469526786949584591963266564667591545042610721927503079769302046638230495687576308905329260805648069014150725637041503917567828002374179539007681139181929152888121921326821152267017886665050026403214566734614161482292120582484104079415875112240286957120243183755070968129093334278889921592496768135401171104442651652871954418159608852082941417962640323824932613893783848169865955230946853927471751331582127732334974365639426058916618810651904574264534818377065981107931907677512146641550232907856423372063929162593170960642893703482336767229502101970163758434097828806413489454219557445667752441499345461811042169692191699435576961014998817175718761879536205709946493108171794658140777281496018037282866644070360223417989696308992156099380146072702093209781550811103640253910110264657098799364495924334307758473166416991791793631541183681291446521456721810761498171016364041813150913613354148487334104652440976943513912272770064322178130416982686028737383832135613631140050388658653588313052445716183182762787747256492987390153506167127995441918469821616694752221177076086278240519706795665061377904163024399796685795670794652882906806863326982808850310725627105740042574973924683335581269561196817468526131339696875025914272014299628454979510927540793575231534987073556312819712764922961834382145913884735154864918727220462921318365109267375096790976766150345040811606601216552696551641289307042524431596913455322492801876855544145100241273806731781211964196096683329384646839118691641864874435915502448926202456146283960989915814389594301991879140237197123070795091237884114926273988408036582312909030294850377952016196043499345408674987582875401921869793077137637415920872834011507842451486362327395193464332666448195759769150372005158481496291587811007157673637907807806172716394508269427338111050943621410715818798519339408122982681060743941981793709419775558563616597663089511412042218170264582653066397653457805449192035877114299643614059130740504340813066843206328222890877393725097048059592223298186243730283254063936829723929475141281481179877435457716277944054063288142056384167565244960416792834145684241033949029968592288178441887034077019665213415644972232080208055081254005764888827947092889605817956106236315095125399625264912864704179777821047503565023518970895191291068513993334831186524412052630995575435476221294318297442125891163803393741481586854728716718674422501374910242802354933275732882784249058146619772933995625280027032633939263087228258242622852948242160395193015886909914363518275802557295684706595053602090936846043268312232640969049538716668697430533934205367205715962410520955701650158245013890077618493907649193836119197420601419184833624640794157712274038515066465842378647627822373864399775463068859074887467893351677146136061877540565272336309669148594100975084648751462991837261430235577610280144447990609816734954778907951609270021147919708051892769442393282176285766157246001751007944953003076961842065177241137108439981811678535008115980125472856000987334116865707188495566086054768546288125500562578152747866763754493953083817683493341377766073993123577158151591590140813937927370990895411333473131992366012514635781210844603307313552964278500272485378860169765272532994168490570915658661425751147730550329246050800909743094499281895134847466371861707191706322257166993010771545150089400003323681754495171493708376569530979700364613661180163985647840477959097861829261265205324799244100813614128723517359929160429018955821879090782056803826415487109225519334786160661416803697749452445550643765322490124060175846764187978046491795965526681645864416531963930017935468593372101033283869340776747378756617179282795556805150599499395782996854481363988191575796511932369833701960380911911025352621609611912265537937504952483651479833591665833644154424754599395973680358141799622888493958845646108060666841236977007265336103518206748149124084459460865753109857235062746071114516007618443904774022907644645526729077358578250922863194650431550940565132377304306753214809248139240912534784394723982554934518090147639003650559752469467429543608408442546589900895401698256492931078705662459704130125571561444455928155711473055297562784165105111016304353975666708354257832165251493761913883647601093461265630367300880163770559887513509257535007960588550884399729451279553519301522188170710072282296295692748162868551606976425890902767658750826785583976343248700934059210417610125622182949169727780726074555755048539505827905427554269906286106623741005034928070043234950451732342511251001006310445463204731992522866172120933997832741322193265565490020446766349719297281523560941474566631690856009760205198472734758191329674906902539540387864017637127985283497020531058748465628609365609135204847286759941782960101910149112795561586145385388822314648114709478573738349002191055419626203017479660821378469488310216900450540639143488829488648986438288693639342109436442513881100287343158861301949851247776927033889727941995403310362647741760158708818804753692072940540003245320783588510769842292205782533299968600395672652352449508939343644991562561144677106799432149074424641547530000747575755222439557108274103026378329849154985830299893365108314110658927107699906139548859938299240963582820068860983930708944651287420354341944645274525897324080615081205717699322001432373268384960474455736867845548229479636672800587935400302162371933961289896521359211469838034797981797554805694451739180819275226573705497963942329461338847999933835393533969979763379266817094645942995155120986891288175465244603252857125245824265717499046841084187725590429726071147036871646603631557573699000986682492475760430021865359837849124870769956246037796583319817914874799398326120413432801937147113478336266876352062178966610337086954424551494230610896774956963179972974160486232674842782735940374309250217671517978257022559789068078133435120557414222654550520401590937953536697413550171977124509432912222851609915082374805500855552573632241539396319604063136911618441214741492303427622801550992153962613144451221897329667858401046094338270131486845782374380277012537003518071773057383087450059932509627061189979134831291146384386961761858618780982810821965273702388901864315259115293334214013440717002728754571281595715234793009582674424244624143329881277851984955054862303004974694717920479177259396541503726460376244933528473696841927588386170419338963947081643818910366711007261235401936810506227461144475812831847554903862352402136422763270306761201696867212309546602589371182200067532968391463736658638072795277545945874143679240255297683230678338472588493695001325505494920547158602763933869052411229009217204492237649642569580209783450007510755558888326549545198880529707772988607510426842165885667422263986534324460651698875962503283188731939329027705271239282868131415506777738780813454108912930449275418363310792614790532700482609916764291969638903799103061817406548613126634449404959607896254632660539555496901807429445582011458476507946774583467817128499941407295918738071593157504852835416027166388534802654489436487205863121779365339752809390476110817689216249026741444433864626751835145639123524735954793386489337071259997794918001136251824984732806316104725208867850290950562980697262240368356426721646317266529118791144604395126662378995937299860613336038903829770651145804384158455072802844135014313381612793212406957941447427711480393189255286341231014784284088316457196340802027697971362288325722540619356008489968140388598967919279729279698722374081874235250626965518346580724125759915097793033197612776420376803726803528430318230904718370720303924137057072731409874077242499549780203275618129040211710743012522603463538278323078943377520680780155590725820919107548124766777993088961941607169409692486960330433349863428305677812292486155127811722551592116068840282511362374874129536623866225445262963676777570333327091751546865763579829915168039517157463128863615702412066616553971108212894719215648112618488428442048968565457851411217205732742229630854671886813623934109625052595370281758800381310719903334128041070506196688036178788214902335848100070396821765417039930097156205731336252221342940475391530916452365320980679129796028435961066936555347266354821977083485922620653141157689017783588522294681895650946007322202197508074173015374183189420315565302400536525366610164303337151241860016011411725244442610670664443310302201836419004432879964964380937252778258372854796338623622487591572047802044348541665100750805968482023611451314943752979102750478813177802896834829455226311099673345285435304508915767331904680065145537785559403071988353256808324608095956212563036969123584306074235917678953938761864797445243574593466159420934537405493692480974410437738782159570433022991169848144714573626826433940572125249494963908056134783937220000310025758918980627295482951608273588059194294356025041397051784317795326801520214329191248434491347952143766737795245756746434977207587145644532702303979501468693717449006252631992532193141903274300097618356475967622276337651233086365962658902840750547720347173765629910134579707864232584291667145842605548237403189334908288556572047942894066139416147513518082557624311490253246055405321062865403999825560637929704415727304576995050691482969877564071222316372809047908026411160500715834618272586898036985028691986648846729717452671487501930091989085184157641957055384427058162345448786777889924335258641958269834758024304641477792479858216702308237037368173513627259764363795679945089859422767858412025420130694102839832756376782782383625681356339346168617108261258635528806766464818965499736296849374614442284255017537356657653775508617360293447128329617632353730829094249529877945761042533891643151778051856885730288917752038853984778577994918959401227601438717611592682978155737131532713110363700864483189299286813934309044401354491796505958625926573038485389215139426743128219953355481823079527672207530168373552964854562959747263157355667819747582282129188700308178482160774824723700306356409722514098404561622672848598970545078466380415918202287324780024664146702988518070903086022700989017451841000957521577207544779645028756455560533737998840674523309559418257347964585832170191072064156649111395270813066578658873745896516025658195269624614768484206569098475175341182940720994435533423873617899650657183693380461011471176165668542974569737824304450432069489728879513958158397698163878956733247867615606039598336713911162745283020162124408722340189053994910285449435812384370218412765189973652105290054167207124409481791718562546050360828578668849465248679947451840249679026118230061950961495611441780087975340567325110263328953015888655307511725212330861610045772040235660504511309005115340018496781333413292597930851389508717404304287955230771484734831014360796471248149612739823417217101396890253116238439759136896734298456169230119393076558099141532313751013120284692251519626401710320917886876058378162604974210148335564353021186203293204905955672698188315636920601141861138006858381686053207147863598222068611451547137523028138539994305332879970747998026717554897820931151461929879442790402911184261729244618986679391822511154632847436315943143021618441597595195220632802017747153574924823734823681828069970062470096614554887550034912385630267988471906851733009224924872728195483213968712307111385119917924171748982614896143726986315158138224138446661120068607286221501859236026242037371269555156917143061581299266096809747735152099420077799415759034711226344927755413363033325123116183622206477254267946852834388903707550337349189562713659217943306301686122606403848573570094838902031206980014814142448165164202251231101470972199173581910315049966173226457972516421228437670705386980790282589956653029933866249697892813789390088552088211756157354788464358270887574865629493494834180660847577149267077247888957342815910295784202713940223186980263913010047499183081715782848443002358810118801718146843547139705009278597978818409553080504631948906129565998046335366460519973499254008333166302522081416648750035485228338177220208494363873408247590959212476316452912618010210461295823204729595708722081664090167355340743250816156690704773306233627554742381183799332866245740894170301457498855007360285509765390551532100327208472147250605795546864466416261852357330229865556378221107085445358294770545389066364785626221016100896743572945378151078896967643334756748759531219697769965821899599298868505197947234095234741654068662525044769868830878146462378296462064364907333866669873837002921980664132918955106759353971157050198144755222703864077295823332507313414186360055241048390539277134454802895989858842073192474245389099409715206076185112089752374597011928576636635152763624342358274661734941045405920646348228967869352383383355677184378705945063277981993916920378180585070136665658505178491952063076827784511585782306718125768116312212635357157655440734434601359097272193985294645841581043960037888294720700921046789440938093420352391009509833024280484032799212331910093920553120434865856439960772704250528195641861926873456921262106317033619124731250488672611992117403914607698177041325028374582826006261856679066970473991023057901160428089343748581529813134876040339118859378417878596093621042382822023010950755934432510033318231083542259909359325490889336053619117572033254072755902254985453872350140903161961370819430701587115024315150483704105791228910000308120610747556716988664169057332188938931991472185305772342715617172315905766630239655624531014008328636071259928001683756377008530839395541353405037135517582060588888374922314750559731106331243148626801514846438938899824844389543168843850188850087979413712066883725901755466527787774812100987258471371212315093326050670461388205633842562679310822728845649999470021904896109241498100097882600284306793270055404955078306228980293573838429179798818450509550910365521836508893312292066773623529018061801872526294774986437033543341533527929165312973243535515673580674680996061813436449101036422896870793381184098974603818867900101070160875667586485528963786862679763176953443065169453975379083030474126063281562626468308770992325547674387340797082736999773634665085126497797650995267485020423696168678472043007067210910836352635821955578356894642027876777136255822936277798016872004038873891605088861405272750709127634551351815253564164137015063645370112411324809887264298821031478333348456274308054309973113056464026157041209633236568584375366992897372995733391358041603207526583985901813624229757746369776346141739094719108381097119113315583907301963501412530851585390613302688134873848757309630507542358711982387517204695636839077265505136719141505496034705165589118876802835811192035841299162601962764549529741342986752514404066651590997086024371067680376642250511103101784010880386530589036631738913120485272895489780627767474196721741489477189733778802384292540231375623258546693594689499951557988512390257693092749447028114663948289932888154549942655738782819806237788328886574522708892773291063306809462660304370028943351693838136290147523308948413666100723455310611221461675091067504806093504735189912902445990492751764409429965308589241970885920694285463508163234133923578270344003841871295869072466924563090365129418589046346269576234605935194959351082648428820118534834775065569070934888211813122802712920887811015020355456305552469361856946661014051669791748671841970721512663385204474708364102248005592007045291718859565303474142925474133742856531464016212815415413807376440074826875731065328885393459344175195390599283766720794704131870346922040226660342920185893736154754439666366608245148363769802335977128413890432025085240879435291368962917240585421401715888290100517458664731526452332472309930228583793797759777894617956508915411583807014311779811343045824457535744281533816141443379120713894997033427803837872939167126263084754786415823558274205846652668243928418730609091462637604092672543771389365650192153495345652100787412378056905708426139607803281947629139061647562438405447204004184001367528730133444779789865351931733570613875509345292387638851811747763830189713226847789078452430723334024828259702789002890753164220990010073849953194505017334809813304834138238708973243875493385217835481760673937766841525098892953455250953108820519967657320939968418697243732494001191201368299750224614552332803935397942382755041831676658259148057141273388350056192995041546904190795059468848442799707143351306993308779641758733718220341832659138680125814731932285235729544509990868048950161546840160281518547429145275709408782600764526151329504243916039858901423248616617290761390432422011719414223614394922216148642945389006578331710155569294245736966431269779005533832333197993423202683159282310023156230224961056095758046197803223308507074992613693851420624254823430934094875252340306875214988253659019060456676423300592185579921871092882133891671689699192470511456914550761950685947938999535565768258806773391518241368713367540498339381346885194030003973341410529574224792847240695621468330820939607943999299397940583673225150563992535663052618333925838805264241807397592242351682635619070469791815441729158550376940129977287040041212995818725416233978900207869162722802829699732754500991819025691642743871341685773371662442913727289309866183669576579656650297016683074912320234801804222913154529649768018261775863886971645343685128566200695467607415211074436156013712969172600754973279127831511489051793682543360341148106448974560394115861228243394763273439625536154322128222834611994001086409202953655590138556115521604190011772149134566818752366390489981599200656397428942246007860172147399274940494883019410831959439286320918050030423441973058763622545255455684456452768784532831731391218660952224892817434190704653401186447960953566859357873177472192323286674122627458194831985470749062415926239367030081951906487391865920019500767112802163298742637754547602067680197408153092588611780827395323104256465985605954538328710024161259570820698348200538181685237508283243100821911329457827928694129544409905147639556618600318590847325608905554275700578916210843679721967803460201499590547216457260644242481210803481523261425420609744903218395476149931952605088542128669260006302780506178535020829428921520183925753727205330504655902766424473852115480271563888873265854148724460994871264602852831585463422262851158306195888575389759732602818178115783772221853493133864997027595929307146466977497870408245948166227253808162278781782503528578871141537814553071191520278141897982162439662936274990149694989319825195244058117527766466792204844136179603374018996784597846008488447230382317577972709684674231143701095510126906156271571618106107268936503225541869675606492254528335180077194945224688688995694207352543297753145391318783959565067950711770852029869678927680115254382465910098493881966583579342391884646339463881163371666497838330373908379633346171374488854576915936859172649135278699211208819740820342923960921033597589188692349184200775571435680337288922723231938562220922394191867664090461559570874051037865678907726836317326052099175515429693308215746698073260744014212459193504100678394647492903958708326668395701697950911162726462434182598201858906535951450992301040226864678341536315949825594672243336775657083048201604297682632056910076225655717979860573708053744748122983423355681122358800031216960261504713513048751020603944950231075788595985707986056685815967371696756957206635006922891758998526063340089044505544315540656647999803134537747238157609785640973127763731419147308849061602573667104364704987014867747030844045361499751846328530362748584561667683167301005529073564729518260811043888446878508068746980691293760766099520515332970822628615435188442865471755870014092925860046147739942678393530969192021806104229383172742469581690134504536687994881397244886780329979769973729050567022424573127264417669592357202929371002535212884591894022839339579733633125726794594598528964867216322501836866283043344299731699860037063453288466043348269493931381470938090639293774173410962422425706185749708659161132065644516595912262534273447849311081614244060231618868888048107275560128054533195822816668092393065790753932987340494484255442505155800815784385212814171613698459212774172502998528336054929226875220531950544732536436357825558968546757742682116749796995201734331549776884906673201864086580620016815178731373679219234386865849386300644464016579539944918685359075684415710880674077243148557767566866959709018721853591431740248401393850802048360245014355539812673177873668666621981256345261583313415700554350108647272719211764393543782813766876439027997046495842968986107065688542362919395522225857173367366447237892559261017740213036287367187737380279663588982075993319839107955649963800390913061972317308554428896445571993050290294265932110280362701968277618388379958018555756941758431069600509481000375586164787307224468354962462623938585370517469094799127971526127585516116918834825633690141267865674290103693121633256121366846087695394347656654944511196539964553951953503284369045791684502467731873679839535787651833846974938761256787038424511799792548175498080973351944635839119135957262581829752663790535200118468012617482066566923605363682947665777262942744807046563044120634860323913868740374939950287968516229205465827157004860093882393883635875912408447586720753483482094634600121536577212203844071415686665840969944544914242694830930102846325257121191498520205006656315891867914542608801978561243784223354287901597524329210270502609373572795572109264059154397861367615481290898078325948855501324368413996800141600582098558998454305250453984430221623705791924645647528749257496571978949506088472469265940642494649709540568583967117562956582028308561422305492101581932728910609758401145676253301207505121621652192485510171577302153917268121554689102315372510802667574833215281830841960125385968138797360103024282249128338546159360356861753327832455391192294308740445349585389557546778588305030910406308288186947526500104768423092146546550336930794657075723998461373897056702370136266624800715891801107536154615902984051425384370643015812073932976938792763634207733020802345386138308556537958664547864624963172161304601076279048834208578210347549947263125417227640635207686771973555758307539441687541046329633019437757246096253687276871664404890032396304307687298973714781505761043385945035121361576196971536841254273744914941230463408938277964448220093186440739016028936244448185752713090588409964247188823781156155172302502601645246121379921602513097302900984140908460144552477794399631359827733402719160086695072993281536607400985486202960594431563805486376198681647711839922281961858367594063604660178045632499783101482970540838727707121276124786504450069427669433307072617537358297431322640590090829496867069524840339760258710680455009011473732739814420699111254654409688298799357188192363367690144812018920310154726619370685058608999058394378971403088839446275319875128138331990611032302375130578559992016791155655273989905574279353073099690673309416902951917261985820382549588449648693754441791122318097660180392912224586928771081563623035341308052451238789027675105824635100957505942305848714543651847995827126516442903348341665257137327434454035647772265958512956830416291484517167307560648663738442531959485378835295953736142440727667299850336118951057069880482470256118674903402416280757280428522249620804992964439940788491146495985604474737004767921482305868705464971830801970040965712899917070492243189173623711120048377078482076759020836545341324314518198429381442032298679587021386920209263106338551834784335195342235578395330781921238602243770642132078760667092284139256487382029219864524724753105663414288118830757978398946016734741861458878756032401281188785964007971314613302696478731820750194074471219650533278797054534471493305957335312609313783682366735800097399080813804205608888114354081729860259463428751174836715701991361792531541534591681228406782187790198774510474138171189518733508369330381906294629806032100751047880543467476339693333030314265506590461862168787838212390606433538917024287641095304130837745425332476653914934109314286189305761690658856442643402532761874718376660291175099673481315746991254575134296190380506074329991845615166111053375738649355715533100246874718208899014412281086568096174892059330979692904887803298395236865554092589321119709590425107558692215105228160051770334339855865389250688329850524195716019219307651507147171042002345627114468374633765312019034735257301344018166023829656531590291858530822343654255151025591089344708621565503844195473233528403953186570464502691787396125536710484918361763062902792358147014062193840681263614054896357835402240765907060252685817201552101438621366295044369876094806230956789942390406337971475862816830038300351541589750341220731258780571138585687258580624578778915540970700549452993219500848515548949227917680602618639600471651791631565429754546182717488529416280997542281911689070184037888928964173854807844991547865689827641524396684607580562531973924496336254814468667910362556696430996789800451433234793295408088923478836974570098805955077431373124663797226525151541739920454632988664425518196644399110273110675777472794435558837116388426415743908477936011918256223179323022238200840599455448386978950340868963922944515757763485839851952874842001268488900710927101164938649321303377928736858016412671968264737260935253054453189742614225541834385679815861305250007122966959993490444787149614701710603307434284600010099576740486233646734357198605695716862648538897329751781525280501757289750564092085405030785970434685012726744045997956911772476892820429150883093501180617902618278763215590462209415087057195903394809024208187744177750380474321706300190696436188230802956111602377545231066146080259052430837550207345300660705225071367050006734564943066393855004906361799941301772619689272345801722984181699689408536658946870649039406451034079525609018587208869563450373341177600256294151966941906647120807466022266839485860612568879575605486601201191186307901157326905320573818704100413566471956161760501458339108397429818245809770250666361603194276715095155045273979511591355582727749407020098600086527455437396224679788257827681820562556075433872799744604461389035986051191817952590732080934631254713947644478946357624388041681664125300226717188976043172967632816216002775869631141741643287511675844576687830440686419597907319707013251986405347893350730247605683114452249526146695479023905702061202881068569137714958774987515040424050430756890160289914010008686816821773237460884268593740583540149057232709433812819235123834131803785404955359855095319377052342034351730187986313411120569049253328550957233815619353070316343992110842827569725720069849718044987551393771593973920476749047396325329306194371334783207510714411444894881953816329877229539154439928012297484862046035553477080327327206823688760673450619766522131983456934324804237848251231313438476973210627291760584351481815412606660169337421088510391602422151528693397842966627531510475313810111944134214706125698073693801392813298395341760812081359957834434377729063175470447517295958157459651181710619640188671504246827116217358094599840257372414235947789922285990537292172864384445858667975248102798750269175819618470953272973838476599483084619430818806950577336398838660141130641078294314845796713034520091137507948744170608863006776970838118201424367823819647143653464262757106241214917249061850425325043772956027427744287091971613348871721479745079972095032277197100626433118483316580388322868627830649870400599089189225768246431842740565460978134310062499860419444130765382010552996144097857419074945850030107356475260056328154162328139821153697180390158928316851438040556994859812436099168154908658860684498645512718998984033728571870865466899437413730696287169269995636868358210015286706785598246376069094776802362281838908067972210221291639760298916813796634834586740376391777586277997275995966859595667944591905749668256182006436673338444481510684617573253884115968918256724949640540975128578236060014769855802370149835279878648581531652670320363021711935147508647523888280215300548919313341389492224363701782627624935954026751846940721443100267155505929095427031819578698639040817363452796520058911514656746172953903434367900229164359197396776700379415522476136647763957117140999298509656180206988058614021121094864275523428046448297876028609487140444752348626148595694868748719496809146965169582037419557406542026221002451154681960979533215527568464899308765113583654898920125777636722528067383737097114076832499780851044454261634023398857887065352985128302062189309302603713397771674330402110110067789904570211903528419833444335629949211345910743732955209734751302681011378093161007299795469254383041369849118547465830074228322959273145748890495848101010688632712136611631684266492606461734934370796215578678721870955000244271917094405614468913058176761869748438139363144510511755353502826700776582541492836741225604888911995645685989203762585382428742599444513878440825766977032354394197377278240454059848580435967371949924260712513072463833305166957169921645655101106367329821566868133707882116106842820774169249448847673037274343635549107736468037740041488099900988616946958639687686344588269489727957978265905518364448604300985906373042287182417584907838915584637074927287294823102412825188908246090458160580286597944454576580356543859572942408448015435961137388100397490367823131773747291794105011585037940856657698152434786864554335602319103915809658446388888677105840389318931882030646108589760712452753143823815394643373076977858014483544792077024412309157951056654296686649139467108970891792828616862982552254014712464655130584466158663037624900274059973776484802568750382840141651239079828117577607894948323181612459664594789703147590085095147685059623289562700592846456568365523669823244057089864032360099685263500871756494112396523097458318952951886315211344608815443674179393989369456279289625615896255389951878052508474339947500083983452992156730376915405611635762328131996700266366897402074810522388503406106891836654383088737334605952013380092530324624633389306544810917364827970365965966944681835747400545004871544791520477308393676475436202845421716639342629399257547968750814228561679969976634324514771988492243389120238291537511276903156617007685002361794846016014771645150901995022060310443445283353042886875109938319607022980633118257359385808944853422147812025532939528431730867544698483083702380762421404032285881292732985915483085606147182060190108196257141063003530926053544915938436005917882683202469511230700737309435404217935655704471245148605009352108344329343243802234131534733703563528291564904016512614938160144244340593876604506550351391766924975224006407712843598622379352469046360691201917585691557378815914031758899045661843602735944289382493994686720572595132052663491853719646160847747858984801719390447066906531549652538729586185347231395455862245985492335457671987846570219277178187035817258240540118554353736644175904882790333905984288768334272566501612922495426655164191866715855273463342270768026029413850801987100575857663408702501498968919524159813727587297484241478984195786378416611260859547924046620776421267181442835367133950614422694554895641663610813815584742423044604634323903541854076930584291833524663686730672406369779382024471205188968634735451818613241029197725931624559898931288627161269201005556675951423856874335794117391674910937446394733029430472286382164979435428327912356811227784169841891221655010875553582315715336774239830154046469698672280153428618633485713518742610940032646580175296924981929408712731028679095676376198146576651404914194807363430307700863015481600970597710025353342926290512726421716463322917958354520040041036045035441869445852759807833813102361009463902600482992755652381675387254191358309785268985166933477325638648341009704926115013412735325940572081836929060109041581250662163974811485806918924683908652254483303916642474862757428060487641771404010754498898020698852622133737379545149885540431096656738482013478988682847786904482478846356850049706288487129422144328593143135896877315611856795921959105194629667865999050099729448576176695347715955736114721124798366554646387305095534593320692390525341303783682159200794602427122991391148815762686097081003372426570208983760998683650371146356111733111451680918504139256257529573305672963806066293368330787568629089503268055583791364132983957743671835142571581316860050254637836741980902459743291653604959798115293902721865119251861967697552735937473001590259637013269368179020089997024697587452922039996387184338539603886970322811084676858822137477277959480605838749830994629035438756903007562319270519106343481409119841998186049583242004571752450745630012092485404512350838349828099328283399357331912661175983043805950352485986723454683488636324793989774214571827706503984901790492753372884353503696260178821008051657650823457590370206339796187850710118691935125481659938238503017561188575925628371039655101239912590800466021297655965540164785839053372651688826141553314399756114751829055117659664449531906089202184160394642717663443267800212869069134245099739754573018485583145896820071140570093627529476868063562266906332539180167046433677719000671300343135605972292557803317551258014877668892224901293515930040800185247645216266937180678912207824751939783118566291859266011030504900830206493464787870594325234374228590010901439974693461067154734950723816936601953081856901223313049512213609805871624168569590115479531535307738455950827166018382259190157810078302487885104952665391777319004684757264301283440943447133751712827321453293542275828813244637109316160155623432086965174643798826864623657175814970587571038458109580537980567061646548168994238546056613608092201633388076230703620801279980414899494455969712468382539402143900938153750800281879334146098768365564267916137846981025100053466351921253274069797346574011638435814947267641413587615662678234405745207103801779353458889341038921551704096901851802294703864983048529356129620223119051123399547899661950042017379950003984561265109276426871286590347348455203832147328724837154189157110883129426016770627076764854164523875002696368947892197555409184258601792170527979739002552482163598087284011831787080984767830109885226188162609552370644907630231848322499107551529006037346001706574321087682457293466086549186891667753069671525024729483628038378970210632276726194013135442273384491952344253662815319057903495759960886139847986544575961080654482099287300414316314239542435956425607999533420348681232764817094807964855689122444325027496490238148621149328159765495049903854375255126291277171837645393698082285481134630283497001005067605598947017622957663315508064494675627179745286942000997632931340365414949336852821573204337799107552611747860959731745081246916117071841043296274414541189320189256747363545672978506673761958195929842842674709429499574722076715366658722282350596908053033544965162751923218790400937975850775054731646294954679913121377357139065935481494622130276109490626573093069551885205871508386646243706857889324625462920434973750891738949376141183518646151258533796896974367508708783314638687322406163211141747568932453273062442579981529457176759465175702859280960287449277971658688995124970395979122875764757293764661544131531354122534026362416264535486294180262516278443043327253939857259608731659396301371242659337642353855297483550809832161161856015219005185072709971875355854387254688432064573189947093023908264385033386658765309375101343263454510545552995826211242792654010617834165938746669739939605272936770110885084451648412418879641783593935396475093999365775497276561364109696911332472785038221354639932891471917205602782228418326981773474013686528466041883735224468381822612426031249853419699561292613484303306135989918114922493366265961818658191462349937941331887549077359306289118686875390813403672666337684073861401777943336962707556299326651087046817196238263864408450512548287178385324200196651361733807449083549936825317580346534666237913744958680291195910905683261003888403318539814002177352434538388549916340073536072449790199216131464743729027833377908581911487157694479483163578045332856675273649132831772596913091161170082976264228948803978564906866098481024405861382389016081890558462134746105036306586037314552306020172005019388221376263769456865761368935855034785160225000946280153333368690400096057529321326003871566363685640306826081831977470956876703647018417101745812752403618928458693895212493117507062540889939672083421596246544961689864183817937858496360414071178444362581077736895587507244422533633633047448413313767912623249455356862373988943116445782386803303501317414103144162856474439413248265794745200779779356638669398494388041191150280170705688933618879670902264097045717863543910436786030894033926941592576959047223929528549030477549485171915856827902669266857009461322905919181348477910882750151337023244559191387552798862580958348695680777520540426888053048088520451317145162002673959813927218944417040953499540274653153157802258951614493268580114970850445318758742247897704226414103286256171193732060589476122746968116870938158984906386526743595629246633202392644307441074743362614168115647299798556778423682221093201007855738035411830872175416130897401665347371415883522148458921687594173044125117686395688191188383208095962955834068491801707092773005418614341885828030215783763646324603582895285076513785722082206269286576956554060834668164698604387825064566990492566878495176815707324469141150064053542558885348172800702031344371298265964584590798475822824968643055186013021275413565386582120657258581205789994473470479696952200098729781651702405979479212892529193115824903312653230431566722894053051168921732531903780014775894344466238201524577754714646543961805734672097237553948959197515232610875424682635724506871410026094994182358269672382421100788069422696531225761621955636718285972819700376939226155106212660045862659310501011188763277348854597645406794171714295997776720208173042920678041927239262310553180562967530509852430625588627202668164638109948949223231164216891745712049723465347726856073559166962249307657226818095371594728822968818003086148761549652281318851772467545311180688992942413263320099856377956027552264391350315248506573005486147698550341477837883837271449433549519670501314750352748663111163200639547327529193085572760438177836898127166510802778984844602667974589360552692044545271978403882980436786740143762607278857729562123652901787988342457202656668604245968696500995562372243648413091826121867106457113230630367720355101669541106360504816711168093992519787251516546810097148990469593571316689816319102497613628995175786072539232888105045646604897555025040588014763885208018226738866664738086642185195196796427623276188698711692988831138879664617820097810456287604510022023457940310093905688278062944466731163551768164322011544592079537493215205835324014128068181599593619141950927275326710416813075984675513841561012967439217644179285584200183947263537099161781431881036639523889586153559957409395854513945111167999037604312687728431073340655966083366887214321116373886799879846252667331347781980306732623869022438470377535685068664238452617347786289898131307179525832844090647198041267273264319527285469192913055518508508393449216577168405555778926685883924044395486903089909058932109745562925961468123557703795890727377220871889523750269264357219221482831860117782334229881565515555494013886454823021335987763576463271399113678337968976061150612109610801400260464574202342182731815059670069700623974129516231169973020468984232591121137070690234421983493567258824981982317626038525016729665084729458511512383601411044451029218337813891257124289595839417939633696889463563066798168811486570499747270556073561731075234832216378409095950512586411528645087644063341500782303227905364092789029004293301200257919528399952069998894045115756577771975752328848460747492286262210684580028157431757271327053101611432982712034257282862986539152925242766620695307165407416099858110911542416891902223648717441289550792577944523552780405060965271150326300664253005319058292673174447447158318762278768709735789732077241900718067965390813584613926185187442660010764490390158308603462790915094682895682482360718215526436743260914269106976323069499867198932775505875548200047477510818195232926271351956516948773378259537282008080122724766314377922697752030883223259144912389979766929889629936883387280196392563594913249526163182505841581824577129909544903194946745697106566366992707566856928186511153060026103491394447229089116648010046452841815407501676026321274378570037101742714104513296618931286461039323609873830447342542541177633353000719093365869483571885543692470206979419045779736317135810822360765329270817269673932594744397585152987598286671053098500527695922211782989877350383704568104924332023014780153070118412029380639837215381346287873082049938533558394635220309489444075770923246383436934461964439951735975069805476564116590663312901257694605927485958249669784134623613287084670900099550608175896297143876376731076338248088231145235292697748366681256981517363196017089164280833377070826039010600628881351181435953445314560464225237073898861956378553690570398531287909395696039985734106069840138544386554894383287622134383190007539738059938678219817011322263798337555779286689816693530295068836811988854749397734344867641130112730921805057699292342733141931699367748475886258576443015566025884816631359714085456914035026692266895037372353475984434033783202488189189190841206197028115987941133843184612814113295204878643285771768101166068510988709016645200117653424635889328545645852020941651572798934459512214784738365878097724045538225212081917131842661321186605393620617021601302194121314309251084233472596674685278153595907122554903424895324408527642314193878077507662743561683589338507631988906307350309043073931570239153630113122249734507231804770061252702795483265755265876380625208203525448179205148900395709413499334455395746649352043085681570221860345641384569405372876961009234101575684969499827244103511024055040728692314920877289373492571823397632828322386677439045339739105834427692820965973004828427746021377596641662603728428714927679990324126203294466538910296843892029742111576934105186585274903991463592337267614603592962032606887634528552959801420216895838725302638711944755968225022571294247970957407142211819609688014090202127263601037074466217886108930545599083357139348725195619884836520289335407297383275564642638420615313487632949484369364255324043442873364529055980751812960393754039908398918059546300866860022624616679128280244303329751485622579163681094377838183570932084527694095816292141637846672418647542888376062219711095454008742625278088115231966896276309986816768519294466337897176682327322487084555895014628627797245345141112120624727890128572980082431283210677803575590489736660301324194755703729608986749410335653164391539547078852643622130894627694329639284087806213020716501232099189836965864968706545501721961090280874138110770615086141093245466597052448804620625453805049695567435630012649740978516217915211297313287429514414401160671656746872401693288117456339672655469040121908461484875025789602826483826569838786753939253068238115534652159763262917548139564101214317761336696399074667577596694700474314818832307468336335926758176966302230915189055250734493907663617960157998769013422587122203242582708025323946643624869062317700777818257057018689546538700131418613424788237937304954422963529416070363976181372745346964411091090642385376881100034080573578960702692033227237575815425746937405223379888440959161430517558713612598390607481564151113830835027655783577408218818862932958712713105298562135940759831502955328318751747993057152676996777032043383148139685762995929202662960994833434502192392578134522235180482055343610415006395807600562404764545845872552289588725703278109725946283727471108307956327642392563306450904854321832354981594439411338874332368356894862787930749241665293058494473226915370223273916590626637823936226691877739816064297149959597389965563091174219915908807393182595978906263362433019221208409443316728688643550665376752320440172930176240615414482684740584906772460126465597349777136804281129356209908927302938230974213836655076975480928301406686155925714455191266590839863189619879368939854981143053696771762977238212545744645879847893774248525076403884912268956538221432946914893705233275175440330024148889936463319481417145894724950928758527840151245748520360661356416032662284540530033925905794631490917386510169756515523063354060081430114683627058422087171427703431337560926916345456327435326400290143176653089993768689343810267542388651380761076096207454999956778152850174745153348053846078913292004892859934539243339693857489277019295560464531626274741555548239047192499303082389956534730204934782840607581873143683155216524737547884708250930030301294782220756382362740876002719748942183051147906685510496123210979349600212417681500913691949466462193525126091410285251216016283165550115273993255080627575636743593987389456608871806767349793760993423268456530900048009483571018630402300099042142331314703329473043403644611267603640787747384987979242360880152986274150316873265875459964870833247604250976116882940224824001707780541944812860446559162590732448458367473999279267443157100814961538177787615596675932217822722024884664605866930896173884209371688175557896311099761697439572321828486048896331241757547292558017461755088106940629878804589908054186377741315019121753638846782844668675647866293153088824539890320240614427349020738069213761962614007608910153747714829108582423638485097200283316548540534612965132634674152225711077047008270030628712896545766789546403706335860711903027067137077162427894344031128528190228858940126212443723868797702218798590022292935127111365515722452613480829839266336567551852766264518525241667176950089084264699106571081658940008123051557598541359996095229284915097167204414735292067976415841263218657604385192024949308976108775674381353556491104446592757618757774679460397753265542690246889404122138048594202623366197408075256060000431069793864448514289008727235081579984950755711915233254011050304508718131477544810464761381657847450345757111148673614329497368676603402933035015847673008027663952249220339194584493649213892710710311132007140159269611581455915980209399409674058844428884336228030098678100469396228730011608066276801410690568359208833132312144686132486202790561353297336679283657293592393114475126329341970103383501716074471661529684368392647866512844712090161819172565509440938533058990593898737194899472056436054351567570840373883025972762742514141782029351959291009497793670784309733592408873773794337038362684907303388536640558499288775434152338603543306538915562662411959221078856878176195600780011207414538507756684079074568977712951856809271136824170014588950476742617796625623972017071330282128292683595233223723751644445823964172478784530477849437518693901036443180505330533452433205002524855759869163100821264830854844140380448767776664329653469042070122303744010790666431087666982864686954852251603908420555522501567840841737279485570170252696250165008810338993232595553569876361814268265428323653597136406087567182955423139482614607159485748753827507860234682396473079059287880874593708174580931059578998213782660674730691505015452414136156003600262103964825031361958509276652166832405223814861543150480139559976323319989643606438948788374411256460375725148815776297657031376160226227073977552866098094021612658494697825518567634088255570429539001735338598248549737499648536797638734217308966592187733699476975391467702606779851832236341448218535804494864356976488835995286363302061553315133986297337087470427523226380644214201992632769720183994764519690259323726565622784458544137143689195517703906820459736012897429024499904259002936974130995119705947301514849916633702806084871383994028040506102335250232705831569302269446001277466115335462642908469419921945636563864610729653456641713219893193763772546801245343915966576038861534526235547794716845495344956408707683670335022627227399126394871874667006003497258942254353882885256969480369119795282344629045969105526287654003081900058932145571083588847317610145161202422128430445127998388406331130011350294764634526679763757560936539438529345080807999853840006002066384563761563194675907924113383341532738343018792182946945338211717691345692977773021641190541194176999103207831008952004633027400293740450101483283697727186784778757851127043541209936388528201916209747784716902389269020772526080065950966894684543148943783869121748325484019689518236628939944190589961384670737205778773414100742734493134724986354523461424654796111280943834707522275337349730466048483254519977589186446472080091092125913510323637411159607107107970449808457325800993378409249382398600626048156572540131029508104602906486520141416733961474137603603062490909753927087508750592256432785749774882494592965755632800528446155820538440633877090560747702260269985629282720887531335383240458366258091824944212602177601691735894003531392436393980345545190328547739758343418970191521067440556461537487577285263530550430075778323955306224403082513322202909928712148638340967688560376207611459811646203027684351313874023950258548665855268758428206669612581094624963353152085713435200286063602489539912713875201090101560270720904972255134658146761892964471509130023224722260076651363923341478074257699411278331898246748664718261285642454445083645016756978638755012746129524265321865572903692839740703127452942547586165430576866808445585219529529982051583733499209500283545881882376075349315327994426447270773443242030421773454036226408976855464054563337735666744047734033012977032791478149389200022443321287432121523876869502170880784337571014024644560936066949690204723999993778402386804142565562317412964979439385060292339119936026022894863695701228885460978722213258067716110337864882390211736322974304103423214558501408821103875184606267440177791547466917131939920068932233844730743273024367373748829477425406774020286232498914494340411488078621294972172257096611856462572685430740870146739283881568099980715738252365622736179008723322717666419808497293127505529325962842304773427083730810892847238975004549261715791639952373446655129609539150117589802015798346689980557144583054983179082103636029187413221225609329139808542079979480537790708126792910581226691333754455856965419138706068860293022464147777098300263610359227098857335906275018786512726924507649741083427627378127900241214594633436212975528598349119134508996848780644504557991802421192060302637522460528338496031993140738137805751229558615893478462490420032084495312117896385070055116055581947842419787491103508900160465481349324986120041038714254292175604028047942316783694904699778793121216325385070753594710689179255812661191647672844033537369252679191933356329763660317757293277315998509282060920479267638123639066596739257034699745234158109064348261079278706118889140922572916655719217638188602220639136262301688742101616117849801175302255419339613166528545370772103402748065925435801842427946024624832408564093465330405035370829382524062808634736201876919778590989121081412353241379814263132069366536997238439723993347607680947845069679371025798596292737369118338489117364884697934864350023664712899774860327582563009720169717383978301855680014139285666087773926561018079445655574278290549975197648370648559025956811189853630563374466473196758986306690640471077655905923380318134757035641670669333213158461101425860116390797514852088631782971794865543401847230613297735218826651084021048409529948617108718584271640153051868333222543658112701384137326052546264359537696598546988934839670473570118883907029639202280772053228623593167886967626009965494189057884058175701649419476715488533522700565645511874663768112857867547593000707188860092288924666656005986539736185765553816399000149369365265006500467795765446350240057566944801678888105356463569794801141876541792284616966362894868027377129991265735712517002287021636248811960463680990539914099532826629646178322658364531986050624113273986982315552285628096440118540663556717389925431615148068587371173717636486896781338925039402021342271036800788345368001159095643101631228559256443915500553052256415956637077406200683285034517239274293027864277331670363419387521594228915023826707367747100472787271049023095300141701122394959320960048016803568396411703802444658903931109155548585528206575096597193018952254823939725575918619145947236953464352578963523732218251651524067245672359549819349224454588560254290641472640261431321446273379086488195345786855861433289619450316517798603552859689059519063199639580589807884700775095076061233764024094611139023910681654301992737897122537739211910121144911906990249107532088327251142836965884921573163326629498812609264219123560560040182485107785487588958445079752371605969207777984195987386660269849938669731006813481410321858267836163549877229557915648167850596520641812430732731502123621601608584382930257499235311731676641629375724247846540988196927086377004097930224639707113625518765702341848764604556511781564885966244980966111815636830291781993239012207544394388107700731135546925267478675248912876920595946828621731206647169154955350374370318215168398600244368196496876608351143257236749751062807343240369560401459398040931790306189081800406794987772875816923085141777370182038408510898333043826053487388667830146418401668411766386644346655570801736309232838800857220581546425111981728735558525156323929212439193796111322692938070563528224170429172826980725077846755599768317373760396326158644774422828929289263061820271285653120286515849643145752473107047545193027662898617421091409078823437674598247528158185989571581687950220712618193815240868161575341806022046611115411670535835046524690007009083384731394791231895883014923817431866160974762415315546875417152606009377958984522856359367249432839983335133176368091913089436639716132062698856081626954148917890441256225071881799093888810109037402595026243662103589737531992016143314013726654954011546015347195416100440122618418122470305322307481510508709073416868733932404186853453098989902813432081944071286844717593085964144409991289511774037641457849784829517441256231509361067405505643425037853587749432453336732124468467454057251557757162416867412192053289422061344568587614114863392403062006378993518554999549037857027082575795398743440041286811454334205111249880311815035251185028589210536446512104851498344011307875176022993386976624309992894521013696711034633870380385406044038579668013677960700387065491478400560781049434472149451484036275363477583478688084801284731827343248969430552570524596078874812676218908170189929434246731369763496546592982871035462535157252404624950263481347508302641386621945351247290210713342325852555564825312656510695380767143956994955627612578136867033491721255033297552920805495381128355436455878923192551159333546967939108667790568883400263785330360624626746900847047954309065104949486285382638922365870346358310384517738455272447485533608454337869754172555391790158091412365240696913388778883466587685330555901469801948868938363222390324392358998611519817763151551687536222503637468156723203312897702214787193151406168424944301945896747430405973095106912852887882644270129982905291427538208841592780830005066827715597780585427175463699351091418925028287724789712268579225102162418709410486919992675442130860229577239711817517299098188308640811543434434454791068896125183921355500600691720766098791578491508434813302781355886303680079665636888240040792323508935488045369624989242234035545634022049746703554044250142610160892136505490547063690396954685110573700620894362522487827846852199649594295930052900551863440080302325151450513723648879965181866842623394063681250860175355913570413346447112341575217121946199375805339577307163022394261122138714146159617751486926612707166986952001914379493307724326126241358054292592989506399164171212857517893893558431673138212743437705592536906405713079858891279281602370771940838962672044322006145072950851635607695859182398982563567416096078189045231510694052585755818729283722804468103393192232997100074114008336321042289019427850621106077184865082199396572541384408263731075190373318349746751611980783610624219568285279504380064405909563920541611186850776091136561368132860195034783280919036316046905208757335848801788439068506395939799068944342806835409116780429652528460111183693656008769377451792154425443230240890341451631478755206684714785233198049159656128445833933562021570960118791399445557479961922481825373626369246606827542189667498239045980698376173896806983249448230878827962433058572863862265962751555996645152493424136251955302492165659902320200597835356986796874519764372623702249572162906230492137110622151250103828174787586346458140228576540796356067142210046989243366561243720599059598285403602156823282465486815356524024822284058568563607722687610804822024379899137566509281033973454726855844244240429351442987892722001532822777779624754899886946869777599740625021018475032146450986632323725963628115973260478944097013238238642660246522223867958588679145691669219328510918432976857808010763110512811518992516493891795172962671214027311248418165745544571987671995330590991794846909497832636884255697943990815867624103224991166283945320410934043414981186453784380774370834212721210729633696739981645666174722270332971581153029748633431280629897320226712398860454738157507230673456510449159469803977769910200235780888979550252757803821992115167167114804903837781619906864034597333389486432659344728499654714477999360452230230192198553575434820817795797201585997490241922348515188668099477159581180084090365998791951494548569712346669202944077387682402129072150995641576604107204227478664199846072223971804024145111997527793404472854996619660441737334008906142566307150850415807949153186910364545633861673279019815100455262408206577492553840158768144060028545811719037349225353135505152922873895450657360941181107358533379969678763958964031145884804952379202396181185564726682324003867888719898548013450502224521149373617100212901391374735635061027503550281218335985177551223342542923929920646896889649869575257317775982418061677539722584459961542228006565429480420239002443767812345197330035488022261653064567181243853070066958829390131693278616705658898122669200573429769631439389737900508999225633211205907430087099783909474827712027680556749290710353844068880607917393632689082082941124343751119612796935378033825421754723290141488813583000899911336823839006047650576982519090628581283690475022431369567108367506622134483701536703541139398408835251252637522625837819891195297846296575325246439246744540063787597617720734492601209233619674184700516149523627767663143071982562161804734702517892295042911638814880237707660144959198228736104195794729689658612968775577917007084537527644906607244656400869122519758439924750662776636953897714749930751323506769036144320447305295984254618555972064281150109174653829486485069998680908623743396833678249966046548860231336174610382742293982118027030271227765619173543508316082446800415307108450605365289789121484588008094672026501763963572944752308021034357173474125509817456086539167354839002834071768383593250121740255590291916377175271703599663085340100961843623558792633638531432238519449301108019666564958965671311299523271997033583254270063088992272163907318093321306945865578247619545220850409752206697017807121624997031186835613817205189956629980841490181225218404527926266950499489487696068306767296693714476894728034119873770216346146913348790096919113532885085502338170725116284110536495006157222314199199895711979234580732246119774852812599765345049327229648194583267390699850675692847686270201687276778457222737781993458901494379451347520701609011968991131180950787357655118406336435575148441652087179923370177796375326255525441722589959064387412916602180689038695792100492632032888937738026525372323761992645554729546698250470868077435478649172638075143357861864942983156150193914906616190038108143985438242155620193887896678014167839150751022871123330180862861051654687295649483878963396794958957570878503492195315994296999083938925041315504510249497729802451769992525862570771248560999538566549766223873411734428343789209701621256506092187257947859765605683820068097693805422854026921701413102109373261791769283076337493987281515210383825016031103051352502827213768598438343551158313416493286976408306129025826849679566761345687646732901506627019064069398996791116938374023945820865434852679434893095729527372426530869010200350795219744277554708481661389012260828621045358792820485244600160748185394316836532982330095700598255393575235046621112279166826065126869142997033699462012441339210351233885002077556532164847609686709290920119885290054316794214263263103302291201482216650030060224572196423852019688244972857622777887839485502846386115650371800915901333641974808836412661525174684476714770907556871472550240568028610213952031644858962868034349347361531070328464250034835880243687668376546258961173950196887714287120007115771954311958268517621255333098563309244515012325789950045234072727403357986477521103178912684769193748200773207403525733462530942912234925567684318372107558368650111616779968919081018172326894623045175618630230723399214256054719826788355062170456492027904058819780576676011261029216499830477626748572828085699535598562756469235977423451117824124773591760066159323934531110582418699262490222492888240444820930287890885574440153074892048832276834545739278379510797194737206225418872909023966506885223580738030317294180906505172230407365009775197031824335823116161729088255127472786584417320023321157253852366653439935406747632908079645997917178215545331815751899262437504115097222811935771290545853652374559136492622841027623227350565699350574685185405299067036190344838971392170740789178241551448594479877044898207909030896461543363770287021279679017103602415682027916909889993100241040225424236718158570261495997318505804767108063154688758168691743530007171629713984530447343399054812943802782192759686586657624962119825456289787185355846742646216967705706481653975477710169585855001171761822358841257998268685662465155909641702629051098121790505670096076413756243698224768239648974417449126265399363112424168627549922781169299964858501557835777424822399160628195061845378513099059831063274646896572444246319561972061615256359703818378649156564179409608439631346434535715311392909571920235858892490718215313487389237700076683543437460155802588570946587270590086127093471105703464420956787096728405485511573210831197066423755478718317706964072677016374695653238366895147139878614167719599438445707755515527739174132804587234981361756654325682865390099584596544288168662915988275064270850201120613610105352670756853222553004780221884764254314103815042692206073853475151861545937817701409286766297217840556159043494086178595170472550088583798606572401627887906540521102801774621662144832143102809718794964283278354747608076398068639100187348669478495094497082100506335883410882669010203143718595084523798207496364497154392888827728586784458123628966767122438309270134310813006483687263488784181221961880612041567788240536613012252473941858912093003733561612322689266094027772799533984510803946349150456529163876454252603491448672598910828039961153302459396597807547744681934160782319413685232348999178854846096634851733153420315299328396200934959138398942987359173171671405079143281752210309623351423442804565481994165928579811201775873036695120038501336603371637554436901397882811436927892866481986052915555313172614520812682073751107782294123574187366103104568934137796206733581103158687711602808715381315168458079099182233627769321430818960801170623465007835827725259177969547371442729609956488139163392995663539413941758662753100244398964775166717843605551175246971157812606086224760441174674615384339191218109619293522236656071203044359271318685134005899274564206563908283838678959097348029736994112483725343768307755025904517141215459109418217559227620086018118796877574002059204587729715525312952636354742583827954952051739658313501824535724672322389343557773933434430921613750365325545017549023930836902078280268866323891068670274707883311240348455312275994728581896782070842245281706079761832234453569894474158288941805241965828580628108237619932678273357978773882062796394012607416109064178263844419174855159394292093366519246907758388917887528999214905870621928134719290361323522329166655706669750397911238766161778614501932277078346607663649197655266171572818992666945010488775731977519187433479657883099989828372972831653310330392038203623408844717258715247831841770613779540786321888345272508212535958558809365799264967552013860238186581616046006956963382823872845751047612743859357747852008524305913966699661298848745664063800281816900148434121599276898576663050262245153709785579066047617397443700238905470316195337754957765981903043302776095262360144963702430084002052960224921368158196453974476877112253532058136861821654184271973393782075923202265545157224979873415439028958667471598270925885015511074523682807885160460753576088533608809489899184888248862253410173331121762754444822230862113679358891623193007392862075827906084235100801500899834939919614285350657753967665013751499298000217497358582195844035603981836923344730589458984097666041438880470871856486659457402803927441530835300441787356253342137482287643578443091407553976393533877825826732712434459921815425565827271945184130108645048768630949542268103326630465089499904138924722247744503867910740503431604927022754920111453735984077973098410739080812074803613457222445150846192299093150572918963074782113777636743445096587257703077966939212865256041497491301482544781249281234573077488097094376979606551933336463845187314101985134526464671787327464968623738715862926566518026730897031240393328072457939000960780076325813417127105240011066731063660173095799480293032679336250572255587812142472670688414705956490683066299063630617386542313483868900345346795166080428051342368505589751485288789577522789792256939781876545894658610791320394466628963533401103094518993808422969758308152986731367197351139299266166778696778093017608912921072178138285404547571624636876124606557359570558621416254661614829059694820892724220218937310034886712752333361382458401559791489518220020646027727265759284698806149420666266777864433738805184359527123184450721482899562074740149855631382827581548468793126835303748405655393687981048541264355595817962667156168993518776977667689905566244652401434824908418203876783603514823516634450931877338216195732372198333884196747717382579532103577837968297420766970070867480505493871221240699893171004617735135989301269700988536241415191848252293032548782311339356617751712296460769576783515160911594803388283540320327705535888236317953246644609454542696259991298609582084336290787379713608533286772070200050459915921696569543439384038660291425283896592174396944080452368159464090795826020922951311274102812199957132421867776636431688055049301037028163065430108065980277426185020809362177300277958596582029378864015499130390273067587750256548186273454653180445420989154390544898063371795405383113936883249466181412368514596091676831842984291435292106020438647327416166881176733343852021396570616143191140828822192522871775294790779840953470709094617790439583191482785401592512707198354995611810519636327357896772247791971261774815665293736795727754481667644442736220549961188697176625080475254659234255300291927703647406655735803356534214133301524447732394670961652298099125808371763299268316997076758882304898456131241428972773751462460249336519329978651037939885694119267111609172075493379036980676674141401149593804346139132529964845617259327213809743464446078719609309211631654710288361591450199946435774871233729509301613468800180937193990072674240593254446482903887289011695309421190465845659121144951250757557728295137048521443943131583984050109005878223980712038486549954813620268907181405710447345980479389280411687228131705582429737645738553235507260731332447793307870342881471191937700074038886708859499977813423875774624613590456664396781020558058237278894892678956794712904061772216826794002601463826225069159568027386182706637105195398557235405536855601146388331074227756161856463474989584476859899426429599220928300672333858033301941855336195123598140997458794478338228984277055608009130742983726627280991177849175957849696107456613442887164660085862841242765348902241739773341152798754712405693329195818879799521568561217993893642602196700694995219548152379102940221272578539163655914798996627591949072168317582582060526507764650746829506274183604799617726000490712367419780388844361362749055040684394794608384758676721307992781983845237705450173817152573839389517291984924713107765638280275668192678939169624438304618439730354304501518360130021242589180480281214037286836041081171829241963185927930928211587794728275827427035122680962209083532413531781095962434444917467958087310251964273431980923818162560170305708943683435806335887508553899463404437784536441534059872229979944704027730896349778905556047493881141066450223000986814478350386319335265869990753160347444269935493460189195197458514877555978599309525803228407326194837753026667790515512707061855865836516166541018019141967507837897045903483998215582233407295657343314876881934776417088083445040277982456607824815008188646037512235528319118249210408418104427029411039580773943877166554161860555798662448656017862635322400325001601983268183381852253899412786051024838876331449311256143556166193752423709004793951525159492467816690777662958083064493249910383969705683020962034697957530806135630646345202635307766266751732992519870988893078948335599295139876993289389174020977692664439424634585498852396392440079860881013417471281339110684025152220511324096804946925832341993341694563283500489719474350854624858944960607640389580656639198093829066066631984000375561920183249689350832183332722482248866921792558801236996512010228867519198325978357821371718089501566465571455748481613991453669993400074822547174592878209525227831885394979907786320221861094628696446727834225092923929663780685342769824916478246497274046020392141067422906275046241454859986492418840130372640905696665751889339701902942669854712920433841098338776005186994679263221750197264499542367254993603726871575170714887488534875160014045691596937082109389013220089498318679409723410774299547946885359592491438490566077423314378495159852184761598987748140101102870494610539020047444443753686845846432954959822800553141748981816963402515254137341395212141911581223848818417055989598862783584595080546489316005776511917004566722215917021317548655295954373075136837122659318777276665385077522908758341596272521876308483059557874077218133399707856752673352482048439050716792001260567425721963744471849828867531699501991488161005260653107422285221539054266501531016563065342298304234997225409046102066631386193138805839752079246345179457626744302832561232469593315787251261422450336625614553567946098767518717843259922464362863998231960632682442648950411585470911716113372897220020001021278023995879695129122367802098867048148626312038401315307856679836946940042963906199921339718304242366016584952764065108502546968014980180284016987708781462586906858271788416843636600175987482607153679951356810372862501356961379829327654111398716903905315879203862166362055469028680889790334874502738955006754076498579784537418285365269446078705107925315486689564311702939121296789418093116101403284531236981154678815510018458643835051199050966819531759239245521557752929191809335378051450172992060735832686618483580919941761967030614432297590610185512730866894362618633206985964667231320928449105537499301440736963421777448423828023777665116105030901357820631541411981676661577941271791054497635974264305833248203142409278675911209156776178540938811976901201019096861088933817429526123914308913985618926570319058218497061832954360851012866602904047964243943890381803737108892009380818948000370385002277792134774637875401819871532580826988487166319478159738789270739608729817791291306433699137297095314380189782039533253946114667362717493238196633010229325251677248528214060713323358263071875561341686362602587236679730412632280248408075623105066906930354239914046273003592092915841125491265191397546822332278288774080115134319459160497550470042244300850593768704727956991511793011652645056350483114016310576930532203473975047302958455549806017043182412394341871852024052690579120996317827719564485068301013247760346845477972381582205162471286468573776843552089773567894928699893141758213147106984096629759247917833068988999765451486695962375294799037064833181449227708432280363265319703412557866997182264573042066181554474181562763629460714184632762691247304931942305713974484797086406905026280040538059299842159358307707362728715724489823369655808064887259532602078595935938090630067361483974040407011297644684374798884611166055438695205659886553105313188277721164093170124399948184906057793902280780622569971610020853866124416819408598961889858677086726450177999701441122778867470529549817754862070621453312568315624832265824033772229312762602941387572001747760590735336948828599041343759683031240127809732516053844560656461248961192244871256559374848302532095789433788028561556030456567916169243820808809925575725704551597667714247099475517072134998200455523411054330916865416761298363953984712525976136779015505818493733816519104917615992889911369017754326159542997346758763277000321159843761186045052839908194750583921074023625061551920966386842177700015754129014876150942202478217753758941379979723766447697887494284282231224151296169415611485643378746412893365372136798585968982053659675437371632423809310226671081482039759824521940005375004345812840848464805142580455965478400899564342178395327567705722667182373400720924784554454221249174379599828081302024250489265132653854274727328432989390454327976277204935535742142520987957620887640145348095997935563935901464590350619192122668233053676683029656891186036811516213834179267823593701710088592562567360995360304774141745995207567120569600800336914169278989229156755716258368686171129834183052272413682884051035307271872178474973497190033070024197921572700167700348442156054066294699937523152027899161272741130627141642588102296223238125213638067920164765188130318504284220656749409076574237867140852029899668201954768938500917476844690066804425613512727222227125515638841680880509412258695173551852933133461700562737776564933064865655383475420242983243691473721296335816665907776946162597744335697214264937420075552588446754599882824296607573211849660133976776992730644556463658110346632409822286133366532442956103386229529959089880622032983158116855421062678447419382786173458487926896473037724886892595794921222834604202986844000709641147688288490077626700433427456925611106799932741704216570088266782073506766969164918824130243861748776854225398299643141697138513644313544358412878384256838534296453175040514985828812874233521327426801165021773141165131880985751563876236166242072550912624044725909822357121863800777362386766454195106750372327055293068924771970870531257654289607428248827563890856135613591869832906533539592976959160768526310277483946069166480231535270126699702671385874786782130840928892156474960179450024653268344511473076623856821837299964770366478708532737806675782000089123942990189404257974696724324731566617425811257774763045999510138908850665947974968934572930962175493058248985465228911458478312637910383681186250979133087379625280420229529580906714680257578454937402609788296172823235214657532887501585696070912978705048660864768427848807130290910740454173576360353394186084184671112196037544275273419106546405498684858652389707003525153779949040641394598427641682085019131619824629673399112263810858400737007843448685173611965933783256170256241307212673908341158055396524112834766156191923066464689630842347711252567817130086029468757822270647731486837821048068112273504194612161117125643990056138266390479579497152946890518443485221525550633802280416018204870953277645379025300016381592739110289679756983467919698753082137116399253012131261382235239989185661514749391497715963494201120407098973096273565158315411934706062272698631216652701205984221070356706376390046854596705941477968297468564799893938336842764482578061538711355334112362560478209811412433895529329232191172544719798686981025032092698091507788501451369979657327380346022838559158242864864896592329867127439296708428874571885104988065564201612053151540861244627978195334819957194586099533473894851838456790363585855342834755097378758846080494164540925680091207507432296137437224613452480126812134047159260994109290651920305731388330696940262948883944917912674009189597625067390683419572763537413213434847300214283835434786316292428060556398363897025686753051883224820418414309600685769457249641906807696024770689009234342384942996886363740318601207206016410261992758264767955475525674338050103448338761671769660344006733523088696078047636821731139434578349068757304955873821716496677101050329663442543503294975962550954039947620127385137816536658215099362005427489768835336684143531931447870984847249397960250887525543031117429597273854410108094987529585745590282322819663872894129529780427449144797943866207074449734941832836271150907129775429905976337772336431944147432044133613727120138765944255353806720992788604684878071643298788350401342950649672887890489651240939659010517583808738093939716871598820197295004475699914927319270786284936714811780698318202195718667260959208866148725225986529878765207058982341660549441453232331785178759315197462219954818620953543094110104400799346637231333028202663935791443726314303818069076024133733053693896094389882477230533357271252151083119859229354196405238734390585882837087675151614829519892744595376469146137432426413823728590355705394300400524725107637478139245972411071954735734814979752031119222701430597639067434721040534326624109493766494207195951644210435705966324501384602012766111338121292066641989322754560101068433636922361039655887137498259324813718984159914144536881675495762195805836974678232046674801279596180666837125466309003268390574514771120069273491221758614572163944511152939206311755541510092729270725635898401219313179083299747599246642574157590503167756302441210576697827653173345598273279023025371233977109300663369719768058557840182478551987478881566141740562840382235491076681709187746021832781858014496463083706347991501475479356052549416149076471871108841818322261004981468233722412737088760558130540681840097855099891842305234573070992960748737318277428990305404320085571140718275824426163903408781713981894180590120727558989548409880924689830348841414828187754234390328876476727172904761342537517502829996262889117464091591457398358344367590899922267816013199214497243494273658789419452475110774579033347627472835465997826331616610527184172141453698002813504081912234036021006863235141360498393437298252425074135975515101899978882176329394817734329203477420035745227569495862942387542504368009280553761000707421253050378806819715693643500776436818215631784210611810654828130113413460452517301526965745959179930156193548602376449262062457777909805082574236610042564219707830296793617912872752023336351147693216810879702101909622931665796027057255372510616704398599217659182917690175583166423842706523960159019317505245959721736237674951937928243397238549544421717464115637054420590944767114420451040064780417166460279075807455778639473957301960290189333537812528231533613553910445119591528307700403185373286230351292991251039327047619702792708445475250600118384356003333800389978537726415156499268239962511897417624154747635939781961989115366426206385748592187345963429581925307784286288907803262086154523047887243032199627452227215602317030150881640444287397122811914437202163205847238324166104849352504218287029476555895913689117434724923990525765133996569661465191238729696294475247922272149259470771407916816777676795248507825192633221194353500281240341829015742540530515062097834711993374135390693387476836671632162900920996943774443348237966847525287649766839259238645073300444138507686527734173624046255082782900993244685207455484043792288042968600035744731774838070525665506055002447552847535647027073214807734635203087515224222920711552975238010043048225136813106938389521394738400808554798384116357542736028085866780914772052506559229609010217313197987054438818200490312101700954281996446661132346769025852875469578930038007617633650306296472845728918644479501011235938966537365927513779958964978802782068981228761616729566207208864246491480808300257599402688822884327286198808592400738660351307147799014651971387294583362604876423021755475350998919491595277959286123828080466746838127594446942100989941946114577500323953752119509358558852173113365804393487475302252207921164233989832558456780115962554041830924477105885415042999507477286209472247598667998969880833795969567698530683524633631353876985228690014753267103132045531910033402534599832061920387539098077177001872253236005928207654555073680149062991459887924950933433311099713205327681138694497990553940565199595474628322866681433791118574712896329855478974999917363741737930109719261969245726112048428481738097227084005895306163806078117727941082527704298115638581188306759579854472540207481960860215268756576478889011155124301940588395937796718563220496590895854227183349225546238233254256248998530517823537051625500015339951798041868910912611805659365747871730899963865077331938332326522289014088379763761194879392159646709001901549865916827690477348126173701309045211422530676488870425395843272468385605051097386267698912194269199317634959900114692237923818524036185876114012088515208130398373949965417306559735560405237738417920129508035561292807553280721147676848129047429506982624273652254589150715191883397880340505923973083391898669558396242595869257917163069886132031998750376929481993109644744876588123216223813276053609125105570172348934497779472167665175484570481094102409958124528816651398693440139775271957991820920866059323554265680483885039730541184329860891878974805409755113605446205275124687248359530597890640315620844469882098952577734392948516738234888214356397974770009168223739460079664985728128044404411187640240558590380437083415244547224824258968837371876651710482209899425145580200570430968781273366271973435595702377567708862207217507041032330402727445605209382966313807960179570437615728814721971990735232574143415990476770561526662770918167934211160135889118504105816872952160200420246525282596972819295680932607967560618626309387574037296991321216363939940957711954736485047589894258463122088364490099650160288892839872865269019762537301351873219368868858679278132751652299785678108458291660856408587245696023691755668129083964135634011235005876024407754165152185010194628835886867268174250280698604589910547790540409087336862418926073593741484176888090392645958397033861700169322173914440014151550860728740517266845311360237625100919928425246896635223307917361097845342215637083877083154658535447502518444825674695152882575375346169539838029448170098620040162416412447754194499811822956661355153869055897379020791327593693080799377293887086732017054449198690052317317470929066083818538659288164164217309789976879208682319728224853283982467366685343673559969719119411188908991567260453596933625997348399570883262533769178774200456496174761454350156943318402290956345589851321232870643902284658196266581711477897346676595559470276660154434656275516065763752369573116054782228157374687152165750325203719198139185836483906964953549852322568135658085582848387902200747316655340850806375436104531513329347671321067337490060684538626780388929907305013054547689949657323124392321351807676771737621701073266975189041285094976873058659154138617919749284955045512052699162544080724194605062507003702975328462317300100157687518886507327707964506442204211015581152081561956059684644107573444093706953078076820735777368762798914857347571747733054092174392488515581153771461301202448032468324838405514405016261494870732784331490451466937868133835414067809592827470575768309034302099619537765400426551105601046768293191874489706498381057840411579094789215407638631542355428958895563121335340791499403528779292877109033670641058012754657289454170822289783772491274788483544221897793599033549005000543437965810579378279136544148816560791138002521692195767268327686067674382103974548296653184367341855106651019985524143505534844267001177584584694030814606086047772378988668656655326387142135533955140238796205278875866598101273745999047735638629603405095161618639637417890608967427543088279126998623993117456396531857587491194757579506350205709412774077771432435422320009450629878628039385387693848956580910137592893026369931903691650895257869589484262934257954319608118052021916470859077848663307380345494087792579345875167917444367516396112374077302711153307102609102873925000906825843892796417195798448422503143845753320353620763215242910358195577666704457784579836021394863860089675951970206477997961310658280811170269633724159815620517667013849128129542451026488096382375931462223773627604666709828283909813558566979478952806506382858964625814867358771513029594155983525696196969000623408052081693791146040460659335861358356017162877263795380618961676818400597911004222650997024918247443086629181562373026875035205021840289147710947594489308390150668078781416911697618983835148097868022238725711085294168611615323822525635329096445941053541058676776135154972377311108180643370091321777408578935173594456590526034524613027366736706967435182115001746012364333889833729724335828429266734958061867002025800726608106430553485047875198536183957096707741467860183069949501932899921134262108449242146544082063033037995403732947929098451467584465172637048243493507188006264045242665833942593241936708983901884791522207299810656713895694847972483287814066655830143802564678368318043615199064003053740730027848828729504506802764233669826681311526242523320278547886037364590422392258342621896141781756329425582936489629300076637247753400528623816977747614677078450197341225650323988037532130455902343766372333643571471841453254988171836209535956942647048092669158813804880498338553744792542760546834490589595947145500515977497919645681245411329679755362692203988145466948140686039787849636028010435299174973114175685734586258873187940605940066299250060665191743862103288596553771375950129347583045927164066802340447658626688072238232154143991177770892331739108286709720348784664073411932369839134050453874156161157814586509061429448070405017720026004000699822412611751327931483231892170261527555792765190156719395009812566447790855246426626117619242901118098926993522660127853627203178069857783204232228946887162913155581941776731457780515650096620465340650825456539089430668035799127559627967232810182756250510443168486511353131804112513673869677308268180620795064662439758229782315734310996950147308105631505592381840785124973143082131650499417991036493260511755644932885725222754305607366742788118371925772300142751616811035742290087323653064540399999773885497548867609806064184013078554820991672691601117686471789218517257115514277972542552176970831644397288583918113455920662285024997278194809989962640573332617119663691611811045493191303920124969513983588304926008177794059257536039496860934650002351703163707774156412324052579038039668036456205809029148049225205044845047417637246606196627681615823965770419590120520799786636599986573915678919021585897264748312499948778882875124921518678040702713570665637601744095908401227341339797933385841158839495865088271555786606963461570030283405186341032014194623306885608469341744375780313582519618346457325633820458383537662032080552602597784228486197245700227821087784890306431872825408018289786424053512471331877436450681178360034217535681590472226488451515099340409843915068523199222287805772244203200604830808201927650249625119208043858827142044262348450563367270711566902173567625631626609675463921708390880344624828724150647027690965102000699711346265727951969239205024928895181009656709798163798910924400461233844729731978426736985756451378993487071111982151600596042445669082572272934453507154321652913099280300496402095398217458575880448441763605941033849593410427164693027132663568599267426182892344129724678272739332324774493888693105989555941466572638565623939834322748238924640428952461541216791723387360643284929608608052002343554861407593048443835907028072004005608249062616973450778412897677759731413187858184838374340161047988151226051547459124188961926446176921774577454396631836220938590166457252165056384661676471381207334144751869736042593681108475266608179208649812889483022217422006589995888086975605738323914900165543476417608324427821118443597430883586947767893998748511673663672921615837930700680471723633797971479865215236545309185432192056007044803706945740999975144446577455103597864792187757151692376839409909196649487714230431054726388501281717249823970649293153479889571493436502808793578861640499610244407501209426289907238154473270966012453287965978445563595460265001242293600795812988220334560178694276461204478873593032407724798993780563783455385999832454630343126990941264009495374686926486259940371836289661739529070460950566754187063433981129150198203287712306065004221777956758033373526983926435880465611570371306295331769771751877081215474543877016945351915984603181424720744195730152724901367405943598244004482940161057517956565657522054111846110175099638016350443326306938292748159884625883371281841349006992455980520022252436251801864726587849420932791311591148677161684140475731518411314431271532805799025537387461373407195710576567953215537023969258456341753906114685046788927023687087992835315639344053525586048473140924456464446744558709515187151148624092179328070712481247201362353214018062151942366717887848768583973770293242548551330285146805631239413709871941942852099430457066294680834740919212052057765102128115068984824411034377753297225903028794476023703794468323109750332419004095528581532262958934228463341675952117173652092444940900317783655860644791353305843944680446667383598826927630361828771988003150604302523369318038260036224864271577768626792821876542570952328891125297304978518606311179051544684733759721296726294536602630927677959447398471003802215787180370776380603712312937188601889747515056132649526326822368556552297343695520169035182387001685807619359292273111830766747010146073733485779906233528880772209261684000944931126861415127542725326822956540305017449426085127334657541241812272502929259558186661314501577459256730672204441188565130562767676730558152574226954175386724925005454100992038845244651163544709450866603650875767392312961109131050687655399609451856570167441481568876839663039293488793139472075644616289532504588439677893348429687951111415524969415566743872175483764418569870519466700161379215830695561901682210525197781542051374874865597203071638286794109379179155314682095696247090211221402773176308778116764791661894136838345296967133813582226915118347954867986812200379965913434328779608777051211915103502618276976049539321735380095545591656312907968097670466532579645679853630222121752896717525211168083686827095283528480626103071410196645468234721353619113035755758023941734082827025622685026737641075984807118380593572573873780025745698683279223171201801004156938401905730240940161572398328401864773390461593702659273501437842832977647591058563693329664124477372842692457626001824667662725660028873843192614364903798572914878012244465389565370631670775334001398919665603209578549849468870588215733859764513098309991848240861572209544528141670701694427978530733903802444169127253371234079600224832688204914709730233478041519023314571850489736252977012887072105004627553808150567722173727588443945364137993114353505088147503094961756451294421327172411494143973468208942180524497180065795986709912045477972567786345867456911702030637122643292073097347286357610606586537468137801489402776536687743270132369023301352896392815573393176272234662475118319266226429331669301982110230838935619293724116483820535502772302666979641685898799350416327072757147536188867683143911251971990912351986121995504916846195378954962333841344457402602262558981429629785015121142610396302916737630400320045804152973068149506711413554620812162199218178354553819932012148041233799920474489896085089059991770310722249488327890429022850707356890514727328874033012919014457040121803494694982265701766790512447520166088877642435296741833260373634585521724173632998988671455101278447799927429251868475726877476135205510072084406804631950102677496762295448818298265415497688883133605900870195559303598757903080095774541007931992716734036823935615803662645844709583038718794330983788482858905845194637345154606157755486739036734089491510638826192657074575316257941220785693414892090426844349480395110049327352705113210269604282175360821150347721479394821281669600927891424947302816804454859763416003952041118132061380901992315259479745427667302837602621529843050018392532308294066614206899194478349014118436246563431403476089443854351405267848022237827705820057347751563099378166269305166549471468760317785906944812275677181356961860275061151761207998615340760230192625012542307362125433803385677624464089840124444981032205045724422978813891517413741325325097543756711771054097079895161996741387046370305532747413965972897518722356299452804158096281078268009158609420252057337591134426814814072907608290097931493121395167225127808995133581672493735060422186346382495107763387933741948297115947964076679527147596205690871934602011267707031185143057138013198282391334302055676276276431989905907758741793624698497345019856097834416847673009821233159157664896011409896511958907964855153291930700539576880950078502012388040076710666035882620926986567368253314745144616261253154114911527174604773722235504200511413267720875134230566540523532878193808075554293561267849400351743759712324458826732389672093985348641144702582128677846600543805435800818099285638814624253494241105939125399572070475777402688520022996664176675970833548556829819344439500786653268318940149611312687233902978188233746406998624525220277767647484388357274972862295334900855756991286586724193610983157105889945621841012678459017622517768656915261346900364832266604919018093599995914831862856519950180468539974670104675129125163080668307709978150030729399985152692033714389149889720610746938234466304926089490943831062243505129560688992004400772963839222199392020849658224146600800286170028077422728758495058757910517229326294530028883597747008390321610079787384958661576728137304852856163960090624734569390950306691447033047163657489248710414968062177987727100331941944400561995505747966805891728374258524522289650781378889873213860704398326398815092529351878200243976190183892565405519358214233275479052206333943783989101983589644615039348264301331859505841894400071995651755369255027632170939597589153250790158521791729393696449412499978634452124194986218572693449253708817854221115615117990278818142912836599780074359130295918842104761480632944090045576388606982566270345138905676015006340960658164767415094215561327118460239303233171629577485600524797066557920484561788377640278898233313480517960403161594928214816625229888691593857163633392466146939906100814181344962656759535045327028749729880055703234683361743940776101057122277722875982950772884605505831467634260743634631083485246800538002178643029704828233273270369705206414224769762421100421445036378487740658411719212559002553930143649351049327200592456519352683169870647136774350712400099117444440089068820399161551484700655084571289217839292479807698394075795446437676183461808397901681337001759838202483232906560173838512274518685915823534360074954334233096461571167836411992569961214933632681961499088716693774200435102518605649280128449125555152583729898700652491725394124249884877959283470040897387266952948867810767147012059608051051085321017905841980879449623632622034337620652180243979684312654069764935963044797167442219973677665974375264051553897158214075803931177250005130384987505494529755615764591844200390134711734927491306636621404084889886169432477238165502929870599741798781669401958754397611809348443727121031830229655742354455057670714553708243189024158738963379509352919688728179502179141405060225386548057478151518778133311484737572386158735464197954099653427233182859633603865526193841336843750982683779191845545252484141171805563139432406578275174679223657338870573335908788581465344845366970601827125484630001124531841850877340478563631354710775312645407311651765633920166899129835173998346675752622232567317834014358920321731921783897784238533942122329287208252459406679790551871198518070324047939909699869157722075160005092857299676886766422584788187209691372235516746944200714314028465631668014097386253279034169116618795985613482388960003362900996401995239625784769182490908217305056219473039168378639714578328182402041994611230613894035046277358196515848817657262407238986121961149515581439353688808430053873468311774984532062007291695778478293819999327383231547423716869053794371027911075364936512753442891423194020235667152594849329207050441797556825679786723783373711810461860379219940313630120132603502523134586583535489288718279617673394780572576886956948320998801407953592649133560645217545657677054646078764947241436911986817999195128879070580333329331654718697122528892117056014902056737194544186299422337036435517900365073716181821539776255254979728977088620941068686321818850938705225575121958429371669744579933032436413214879674682449468792562204308937029918326774530729221666343711962321007933891943481521958176598723181000070317460364506526252960562187638082252300954386906761237414965454587068082846829337011994615473202974444247416513865189827677857306857479783153017228604046828855441687771910000479878311193213455084468671890793603350425521721831815096658999282829199183476413022436737816276826511417473371037012639440361253457074079336476819303624838677837631344553144320051564850729111656416851672517833288281840889243871504560186985737399146996503827763860611191106487784066511048786432594649884847932613812059504221452416587250650042722432185284782781808963758265741914765095653360933772869537716193632306791706505301909115839713206773485266902792261797572328915815297088861304708860235523593786651987481054161340647522285052533805775241355523832219238648361020571082180740817825113770764766299068664822284752513358870187594021361429213276571624323836055663615562621359737294526911037590281615666866740016892581535725361423059306801476955324660439813708945671473572947144590371376883515911091635061870590391048475761836123790448004258638053731523451145287076926130536395003261929311420388960645031124847238080107606340114038883742330399197116445319082401006312282224190521938479660295737846185948170229108378096669769693515267342535349969948099229604167158821422898828177842427853871395924400080846058351759837239430369726885624012842505052304155640004774970140468163157222172918518761882026999758673817009450233339617010426511993072954738705514411070288383492949507227489827561508121458217602301247945282726613776315209191651293236843039549335742664360808703486878798937520415748239586713425200255825723348249333745746914350137755559171602292117298987314503436781168234598223663792459891699088303524301181311892602939452919136885838049318036640535367971085488062471366421114067154963805492769447133834330504731692180794887698397058478680077359538557099594520876362960215550187786606191590575836516232218265989757423221683307547354419531328492964891817768911020413649163653722317468405525081752915854669382152119791757262669788944644367119181433110525749399134413196521676346466221147668720991430616944558939646657016018168137264702412971017543341997568203512856854530678543012775029494465353229614920880112868529135737138786257258013303291121754956215755160745448707467963454880637764247056433960296246158055120783931774955834835420541114757740028400499024542534857945263131915937748827239310853086734910062076756130672622994701247094215303628580028781622320370126024751261788221401123319985251356422660278255995324783150781431723720601789961923983203445634840658506300695307307844743188357892333605400471447595385799835228728911093399814802812192822936251226684739120986567496079934003196610921914551584623606472206145365415063206743239327866986397288679727061701348431314249315858263648240844759111802823648062101084340973166248873928263477045746741436660878510387005778172207338381852610799349248489624508050760951412913663586763367814749967931309035795356548242327017835899730151465157837000366482365424495408277443581050901077555554764999767182608851477175904802142183045519035803162007701359420833134272327868225428443856031266098471718051108840590040451769162448651091947391943968733557971529241831912315040251306495305648694656519706553045303572040490962819091342872842039704892292448836823039516920560468848804422331814301200009557445603103980897099071335089217374339378575662803253107716579420490369709705982505710013290217048553199473029025380568205069308609991501028358810860174593872606104083504049027626713116213348004528833867680298292430131377337892247637880885828649635080944961526581665847768429943378077570747246044697512387789694327171323895074489846345794921284171329079806472773500363981140772144191240659148978037759971613709719069538828035995799632223587050759334639183348033064400018925546967813878915648828333739308856266805186929844760227241514137643005344216510157796360948791565152098169178645489677898807694276089515734119304994835985143201626385586439259008786611168839370064157105933314010015854488232040326223273396207899018928044338419735007751642990433304381835514414939666504855963732792131389784057687577434421961555078411648985335043490261595780206395915526083989262595159557146420459267699676281867624704848249192511217304706741369015570414450078724505513919228034018737936640226737272313679590014076981510861309481606612691252177951788265775506133817436397504862773016114774609174173612990178186088334786610452494715404651048461896076180461373267839853178731629436262505337332614086005599470621198314262416303315887949427936662971811548967217676757550139064837464916433344310521998778921856033644591730528516144932486760876117389772521552767395493195325015815725798617243511628226004191220114376787906583862491356498139547504951145073753405133949886460546883748881270736681461389828456222838006276109081319140137616595366623353251357281204417676150494130582880232634304867412247657455704169377375562230070797010523182690044510547698364081102773994741396661146870253458137076269117256398920344117615625622083621040209186747931261383684884515816521913606512914256294770284211359327626961953043616551879488226286936259612587102882386803874764358915685996022167914107969311654186559516715349355837612258295271121216849727264384645532697430484647917148945176083336664209652451503409063690003217903971508109358019473925558433402064269311616222954631158974277609990265640270868505976732541324139636240145108790696414275493626220256624569700778237150193784745010450810943091797109607336744640948306579103637996963859492283000951199719526810207799394929869429556244282031469391133484173745741365567557187134168803901915134700333731735421827900595635484724457029670997269532825697093786648760629443652242389091597101632156515524226698398580053351624531246564593854908014409365570085724615020536134992657750780433832323958811903734468791458716356060851816978030954449803655534218240798471242082851071268984243253637472005626533023441721389082336156951976431790193753995792100751841548506936262597324152800575142094423595281071669944526885104524381278140381343668981419419314249637811486936694508412195898065902694788943539062807710422411048182650681707831274536162297827784793830957373618891875959233156557571786708052834809561648469464695581742456459690669284195904961493600872107667300566301545641917983078286336602338928864679193431675418985272995677967644844682862506808803675336649239765402863787256371822347265154227411351645301989630226042159764647102222978710597775976692168981076480903136099504494112752959857494467619302931083860212523505231858398276630723664032835194083487868604506606913684561405797751820941259288954113640692359625789621115333244132964424061104279653242463249599350835124694349914026587561890497928379128002335739146919798302016730782916557133314912188002757065717830979411229305521425273901225536482320118053395309665121713924151756358065593105867514075519161074576082236168835213971975637444802649020116060022552716833356515045962814296831463665617711502976745235284760622515832869244017327180809292746881066788844610701017220847924159421003777105829227173531524495581521114550268303015282440192742575883948677231979867033400002836946614676761835103973606869311024823844448110060227062237001100493521273971096967451562747784641277146290004696025162281474269958098150087245970599452319206406081703447011755433421873336149493054799057963591811316223313127124672157981358092274761236501750527028739915521961295386850570279938252736062572171454007282162062471021167114649685684763031895924967933240017460777214398431780000919387840614455677521978834203218961777944597695211004705396638427381585031196077175667118310873459712745036515410606096307197682123920725982995039822674740625703279231965225974330683004778357601587348238627814564750810564187995120502115226136551958032612156536334192851985282453945767427467547569909892651592400953341238135699114606915404135472339166398142620277182345827517575344568245859134196847386427634024989864904367420513293754856456804672884425936570262999701604126004180803529597482002523636981721223805180438748145004395833079633507209622851536953906071663094553334292738335367065147139481143084271627983871333119794742800598298245972108256860212571073513132359970070605423065992336226729755087304523531242252449500954115677628987984037309958910294510831630160937225923580388962124793472469862675953052015352715162703410652252047199948439084636193188095359206750966214707928786497805724009004386853681698397336786275247525325303720093793764229538302460215710089983364603332638492769732657908500708626607956895735210012173637050861004270335749352554404318890788430239703348196985244428216002014560301042992254410975647084705216435255855022358896972110063923700962782325883193266331056085558911263493681982103985220239145773253876602890909973081681387200012257342604911212881707901063479181142728479864060998870521359542193121100914360410554556599461530851023898223634011348158727009367938854096655842835913156930332994039212383736987774998461435626496867153647168196623374420510478692679086222605423759505579004850370920096888565101272860163026790060441118457392150985453227333449606281553582371968449346075325032309261960434765993942190555694769015349047057470970649333259862722957866880700954597820555022442216637019049165164015860215891901479576637158226166909819332652652285362375308833647947528971081733188229824875983347730100609520049640940659556682442784174992761254301074130049821782869013663455018825239724885283948016274901899222766840818326438922903575752932478171557882046574342745702621294002592525978791517997397504380558955576117842671019539743566849859245915595004230588089668971166566633512996662570198299718684351128518599533597150626359746239801123178480102144963923162897449601440433865398396509221839480643171808267515351476229083697359025133820694963623285249870143240567881707076747300165625867075103117415498905623740480478736370064854832630741890512653613572108526815300327373614507997731889565538670001294632272135053402087149941782375410998970268176583905520387383123358944829552682605193967004394068886719186010727999117399404203940571334318797665021552729210782321036958863020040371836863227233798282591675623791501423080809838295918670047829486414827849412578658617162739556018200917943273008323426855804442852615255006794920574189791300119654398443996085758375917196281215814033309893153148759732136004841512385562685729932117853168996705643112520901458252934453850413855274413947503278437902512231043457903979379284435267495434102044517631108536073292008767904791574632676573218325424285560490680904916025950130333695248623851015097278345996969423203650277764380501033397882955719543113556680737478168479293437358672142556361594397503714148744877090315795804565376610140690924155363900023075696519130516662054960731773095207471051678587585979916065573543227701202309198138269798669424973926922948588124508643974271380845658726762825176829281860768814581064538025187592887911186901724093781587991194030350752202194654825860841980446473235168831460469626224622588068372303251923693253761121602257684666205218001059946457179714789868136995715985685486709036233193715317947704076156268287230195782592463068656432648229276395377043274426647152332435469931153979316747348894075781357611148482168645315828401063696931393312898072960494502591212438769898165710986270577774196825464468011349896241944270436029279465107939784421174043608181184054714873482521801769849038254322732414327859907961601978784441203535590930380300032434142959678989844639552331437272763421043003596730956832177408568029771950291308434890972964818544934457238374436054493963862447683667358673537323025815802904728631811126743054517955335524903121470509648911830306652293275701571749739986722303958307756663398737120483065585723728183861876443475700360079464218255894224337062857603062556059498658172562535747502856583763330805057489049500291821852379953727819410761808367321817816952851381485688531340255706175099071470866486233550375078105947942234991011147238727012867058867701986451577724424657356509280397041115570901261976920728675526538475038286269893013283391564518875690015519754755530667739233130031170979442747145343314098683268929656108216913968352796694481983832077602705945152194743250451514000774337715481877975912411754492156703748826258142464054365365517140634432008120242844496556427632416437136781512798217651467584740425213571144783700741213383451072801765663804034268958319131057946623523389972952033427112735011393659007964984127899607612662037177171833172915810973769412332424500997020426080699723780555086086237519907079904118679017374764952855830296106211931447247093732641415362306616596507925876045849701162166798819966913519933318731703526682334610892307719098139735432094282312700516954805911115781465724560009391782772270343320949207798048463278719439455901297690352547382666216200498634538466565834617126451398325977407361221752197376281997677322898627788006003299919501346529588278315032574856231042863492496135951926329665672810675379571320506811550800700994728755423731566271569115268856991372483135175481386639316616474863796424405932455475275446748987234397085758213141528390431433421462260118856343667794574241356755508447844823365596755343975913982868856166939136241686629597725481089021778193735931468497181639099869958733208569144858846514511238487581274083215371363372535648472719820401368860730293791642964796133653296731033760605844968289051019885727160028399412959690679901550154977200723932944006922739266156729761574166218883344033393255182332490019039833931934432282635187960217442611552615209903188847992530529561219860516936967639056117482148293173169633487281988281566115760678902687733046808143086342142108320884894125034616926806011690343656984385797356184139536406226675388096027308408097111965418006764042771945413167522798243537787329743428823903524523241302228503187052190962970087299891644620229261470853328652642507207979759854422587564483845705350539048677140578451302636806953292585029284359393435170057718850203210306098938797491216329262993870557406691230030777398190608252099317356740941942617497331805490512167322508817272418892327478618399834525803579041500670717315824243007064975355183797811444056304898238727205285562570100892921025077062483179182632215169064597959326149946737708231006963712754133585732666319092943605553938374096318266856422609574067954407609125115091736608008745607154344674572545998622865347371927370139406165597865889771801205149054024469368682921845905987825552621176217441586834452456606504204665038147511794290760701041768729424777467964648022331860041178564716107265990466196087639271399140912913074039998073885738841384508609045305154230202895048954315673938493761832461439062664619646911450507141459963364349272216094053415637373593926739479147292681966121854278587294083407227120452012436912416674724606365394191536790398245168439571835431057519228024052407972516199021841608320712366539415361615707470115952865246930628641352398344832254616003087026919072314373062015020814460602837898761199127711745411663662284658309101181303128690220018748281982120359030570028988181158976436480097244883208363301652576473922143818464569345458408275537440483121198301990984895846594735298972987903067120092893266996484496299398025963594152864789982806866311375755669944521802653433697531037616298544498984851477123418066158083255119883152808044842312356937621142482458162375183765721620000205292902295579386325964511205911853757988288875121722253848596945867760961274078164461743435957753380041209815081543348459766949549984902185419721595247435313884301476282508720897298358938035192142032225272477899746880228067984448342853197801147203268970566512776344177013355713602872956231203151749936241260397995760634325743589409478178687572553979521756809874100243348535855360941703364100544582543577407145606004995063742266691230653876584917975492218278102579808499334748322257646799763715568722120527337404247572436584086766007178408996828722336702461008605361604287037002806232372373039068378124227079667805226003176702961977929323311639110363979807714245411939457756487812873473258985249436627825794680621474513577707245529052924683660508832811354230777398971295740548013381231274223123489963324023047804181052538217200760870142118092082478125170179593410446843888731263226335991820129203436299982602144839174111478302264155231091182677646612072477300211334355174519602557288747433470763684655705197694835842794783939385837108901473582433593941259965877635289759512145980384447486507588808425372177970801990989973756466429077159385690661713953850420227769480100744290307401962974194856298843577747788892027049068652793218308240140423835309764464825558712692186990360452254860362494596507488861577070508009119599858640887479114541964175970677233953369325088079648300988816061393953428181099107144877546930604628096712250546982315770094135299191770086038995812624850709188808157056484422042162360713132823179297829103230894274503431716441915704092574944511686605845389067312533099615305852457773773408724209348073560994840434361393915551013057589207695122092380683769433651057552283507522858485194599182178118937906570644419585334458882211225594709608353324442388439182827443272043722759608057380153828108627870151691082018800472046961867584632339435617509010906510364227525682007157338249850474448189086700646107578036694488463632377693225118931234055746861649123162282951039469704540700087874103101876250550852561228183423568026201119626330878613802397878371789984596589045667129443675388692012544382826546271639412641154468197478883526512681865928369909289473359857920383788356502323384321545526217826484498732235972905633878875431100493850920407770773975122849906331079157174464306157771941904543840588441260744452452738682976677368197432637461203881836555738244603039092711979841310691830928023534269977433799202836814174958873727677496348072520374675706407914092960651237696697227897141006556380879316017936758449295392911286938048353118153487853933812084340608849561018582752479822264065558595954931105666331529637292511442174490083126202790692725445335393653245659750855550421677105739825406179243754551988071536933852694292734148021602016720169533573289113403873526670645987313090649686783137284197921405207926460957325389386516076474944167473089054499146450292782109832111791582829728544094890802214611685109484291190269003141060103778034870709896941063555272340192278688836665243135613617356788166797243706547891157456552065932012959313466380576725176736333970834676236715708359702840279240436107396702162674025904381180773926363789851147111257313801316320730502483743911355901336336621580534183940338481519504170483448549526176595124107757677849443574150325920942131014149720443322582593467782476746570550073662687452558818968708552008861300485689091275073644017189853165379010358236634643713233542651965405735777728419193849006942488816964312972214947741593023707346239180971523520726546429410001846162446090897915902256846378494449036614655185175755663591920400581480721560212521426686975544423640081908016512680751976076329432306729193055597684677714880772865573510432368564036497233458973123069670804428082148284936371543029334675089789911323183218357596696615260567307517569548858280572144945686799480620448883075383710902389371345685132301255107437272595506200410737959304278463062442990419043690706638321777860343782427484857898506063272961743591506167207191233332370047925231257910053003576020976739462290881189661096631917159319105093568888235717302229522429457380285325364902838514913071886094937049008346019414847782543293964158892368495750090229445507147903345623227984791204083265538653907788621437610650065049732711915306861649607060283040480862202029711277133167298947528884181733036487938454757000781964173897747911748300053621215020967918785999888686767265006116177010540073187749806962645796675011176726545549280347506862535146120912517156881031566154045124675542524353092805926355912570969626268186284836045408588962252221248691086066331689739922019875562070847639733187258207910831439780764427816580274734311918462289325382684857290919257846479876656274561095457473091532940634968682497874268737803631409273960944104409136959561359619078611506937021825841377573160037116226236439577835530366065500120011517274250505412025805864164627898723533152252412243010232098710114230919116914506558996210292666479498603533797683871872241741348682964549812541051470161506254272804286609249889372416991912908315487764233015803404354547046592668117184890886148527966244407921885238225472091289841969198316503899452809518059315984992180112379627858918906182175722110636791600313340777634719800649558153557955689587491230425112327135207590729936745913952746564868767958046368374022171243365490233001291701998690169725892652458927639083748945412621142645886353076131890348967586132849233271977784958524636970489555275968061668338839681030775104504905109440835596627068619990354576378707497138091144036648827534883727217722012190683124207249703362959354107657342176362922022849355201916680542438539572258020523068062017323318182516922848457323094935406687337500369873578998711737755826480933635902547287175375049021352079950164986790049155038193994534654270780120195651598013889693209394865990191683286514910104961451156482272300967577667529137247322869274123573989873072013929873063592621583711630518317592218233180238763230585038535632838886603085091843143753372554462681911034040866983416907819696860984203427227140150521898090124411228548170244998696922877763242327640878598307491758255759845456863128145650645620172604948132030761746794260478570135267941780514651968947617672467326418798837122739054570904666879360996226749311379018636413784469456330056209985368268139802856180375785809188772443227977767513515368954994573303469350917918320781924256087616747869371837839391074804469892749614953475243856187327190196606440667975786025231826652027468253755925619015875259409254173368067380584934374804496370731457991439496794161703423969922956073139302092364369790145351480093348897087360219145165930973926034117335255050720763564246208273889808748487794849442943432403432251108258022937305590982091371424595917393247242918704359307751410626558459244296266320387170304511326256069107231454150642346952464740173728026861363686836579864357433439202951959300973389832779797732415909069544450857302255952360246031960390786408172709113162075239941624065302515495003710548520983537050120874999706599224085205599798028524075911672421974833154430153874287934286380118837729902127003085448394046869755901865960711873815858430074682069688955154564864714729965013235601676899979694696692347707592275577036796146738966538863727043763306444388429550480139006171775444654768602953666228264348007101684450300308614004620276245285028037570753577574672424672381437712658394824814428023418541696409577604153206496015950559667790175774037051294873885447697064490835007517742740095576052501931006492546264781479100369717874417947506025901890279281272056165555167697538819547660964971773951482539383320629940988579663858532211045387894947531932321696605488670977646225835006014023897858987324977632992288601938947465347531470350220769849587677374867679359880559612820808746981206830833086989836155827946912764523152807285995100924652436308511792336934802179654717837404980827908131948556411075742300429560559700432286150797366604556262477597088816600022637074859920801294264055474050552789728818316370170277546094390833783064272258729028650651012994221976884927321349492464766863008415018872155377078301073677108709930128562968758671621832510212950596905896023158628416603601047564071547758937387289972881441030226920579331278581610231430200468181042505573084170872492210829405593983050234751131185129739295347576437163924360911503973214878805148030232337231345044494151133343471361285548452793567382813634364897692360076673788303798638398378824432851525586056943739751428793657346043507475096024664427537176281524700307241017086766140131398560264815540026059146735095760627268302433938795235594323932371611248697809568307230030210483468148897039451994841484984754556535708958185949976270303337104891052693722536951315241711431860742804354082372097102620423391983891521055537671867573643404771800695990868864870285378544484635460511952445892295479085177379120933982894633530704142289528685734575005146847939715259657926373193342601959167665138437200305605065523774986134952381929659216854838517109206009935132563114772192928135533133973150206412602569661199237646823102718734324404794517570826654916680532893916983413475319870355371348978878287614208860818777485964938892026043882694388488582436482133725911651965710245618260289185950263127582926032363540724727006246172681702512292449117990430814431415681645049013543701628576605381276425670589974939267590127082766376555564105371388066932431374910324496626207327328199321709767981118147558570169089405539977040971954341015099632973954773082540093160442369101993287011955737870902824854063215187566583273876929606964179982821380390869976195217198318218736784350139950892731860386579126458111201556945734685233556296597763466202845206371237850713234154868452515204984083077495636221143023699272433849085466646056951812389862718765358204229080628617493395304194558337884916768881624157541371192863523883390325885339627815011545368181501663237472041199279597067930731601068692894063131835081330046117667121314229259615351262562803535810074899831262447605626061700111718205650832626111970819613648515691665018207675292985702847778252080389805106387153941130509664939695240105667366272211485704897910283707693621272376804952093747548250100647166495054706862956419691001503950898302354804361444536854929094735953495646366737182906990008910612981388712758601185014748532219750777340061040185055529702337242119198287646630435388719925218779699442610513585318882550821119417549199127696746252393388633909320980635157017918364182275435635199723937691957971665635283127805885044557577949107893841902660759818227472309949997688063526560763443805059089469676024839661981637423544491063716415526815186459146092653395456867012405288837862401608014594316687495272799050838003704091186187621856747531745858157342452211275504717443282023322186202221026450739131504857744300619599567339317599424005417862534446290118402548876762483627379500614314803120732512891928104697993907656920702539108455559096734594840727908561823530373405252553765800912327469621221796800096920379817483864250490969280720697138783934965630027697510975158359079008070999619545105347805152902788140848077182488621066801974179915329418766161614387983873589490634609625302295805577838913088000252771979086611972970834825702913863066212717990383816351036437401276512031026260303685828285638229049339904892673533927951989802863817569267718829037391510986441556821625131263918782065203154328278034857810820601507318794105056268140991505060729093890942822383158393778519276535658335854674407344843829990698220102264434587845603002575949734983559704764635731341243048269346822023106636803188369204529446971072242401349372434133813375179687187226389980170890646810992039831085361219274342418008897013132773442988819270564602350834344122967121589727576853707785186795620183678715235809123627311767971578220244760390763510135297630845127670436582542842218499690105732473985362034525329238914895686163615067735877671058666786701996346659298697915442897907429642868972429042833198610327025440057515088976933564005935346828252891952683596311612322431973596281099630963809643807519228628191981189814888738799960646730347463852435531105790893047512230086795178424710656545404399737188315218819023456716932431850392807855043926713739575526631737774754283949658184439478742493779521375213263918068135901114270799945389314583084200074836302939110651185052552951815817184528849456979385201731973026593139611060177642827280114545599916730712417852236540449128464222605881980867308516978896977794683107423985218464313483015163989953948515886645996203394905486577340738943348425983403163551959455516525297945861283107819096700361770820685722944728876242207663037166406987991215356027541993763380880719463862477450807859375132669438817266329933732912694307254461910562136337312942298911282106692618323419604306685247190368055527486513696135185332074996415326292040976790940008684628030788077077523846706657185635702636731995111350100333819123895968570834517735121009505802867825367874129904264733314035248238703118112637249201807401268962622162064977290652317276897547642429810774619021188656583596228384217126020484389489921507003250088402312338308108216280566661163901433425825873539678438418247110150748548178119015211797781255056781240789971236772331771321148864755831149635486343541141226860565129371816084396243874936291895616688459176113994935323653135598707925293012874797535202123318151642615608714243115678897957672235642059332953304544730571135573702203626019019502491673907697251926771497528879418447736603339229568398001000387601602130363706934876983065201528216938735130406495900695349720424384262329730243632389703154086808566647877579663323212439565462333945793359551303863466191054399943804768987227509610656159733676794148292135707892956903311814088915804156084027320213844964219980269942821103776670961763787966869091534438640396401953061745103027035613772411026721713649143044231924050460639128663090323602990321278813551485886149792336030683424491436886038342842226864116475909889573386008507690098075454175638424785638532012418391068823478713107534942700328197087446680103410533500138283546213357377663079543496588185044830263940164602310272996315185080705277419722428183666169619765202982222606495620619989566010649802246193074054122636903440959404959720017139624714694019688667674683844132367277724764736423452803553548151657961104615996013326242464521199116730527700688243509757514824206314451117912626839901210522030953794618256624145286116994507136294850615493715000399148211503449694585032842640335033894451051742702804230080455416480283261907610004984420043540616347548803920827200003846824060495706408411232190605065254129252155682243112801363654177262317878313180268524574946187891856878706634981983970118864935889736470259341539972330436851170116847702494158865744023306413759104130478994481922211761762105475741239854756055249034876706455890700411129930697555443446262495501605495281752024830133048959487616779853329266137271080649328673392887722860355245059119588892265735694518717282165777005487964035931118782163175202845187444472496702333715245140872056182067300657567182756612066683402529204048729929807493706709748107866776588483364273956033190281726148451489388884755697530156486791830175977533410325573133315965642888632866261772856648593654509032010633534365396250034955912404909601403501016907070085475123963328228055860941212418534137065236920185836865456385982959581466378410339257825605281974229975274252094681143921951853996435922604482747704402997443357281831098381903039784552848460453043102246219699379090754424214333736718127088356056969394211245329606828329474928105230075915640416064653264740384702755678025811631500201634756162035073674042023319213084415951954371167623056516472132342241363816052013810760122422517674951923824873718134566785891588766107097774280160967035622984081844918216994466780285493601610107454871225154714452872636497870266027234430029827740169505373396257384359434757773719879456778975719740336426466990694978124359113944383288645125037484505156149064199899215213404386933318141365513305339781506550275233407796421567679009303762037918669409410969183396310411947963013598981412960695201262026909346197618490390105159999615605259414909572812329840347390029836096208012838357964403988157297942734522245042735856699366446222772379870458084997735442800992063652603968677335070317470103964499983788354469675402242848185455657950732875698533764552748754476522605369525901840203948486011701135729005155763098579196727161498353147921595149459131540734135829258173888114254207336664752010798583567678733922603321230690454156492250823362144847671290717439466244785639343954922225271476890253645358563250849457800867657244884592062042570820844827161191446557592065297731576675910047555410978591366897645415143712298142587316889774040455242738043527532058004274708322845155567934976247340656339947571208678524616741110702778980584219401230007642349337306540455411609688744146172488865539183639858288128168333024001613518958020217447614833698081374037239338739339710090663754923385100818008413272553115960464599724068704239784519590342433203904738818583613954684257520022984264022650818480653147740533198378057759806378903906705019518778698174647269827085765515902072002362587464009306524636339540193930705516440544186456216946578009720319255003984132646261171145849715204072677634501628466640516741177224695828183337449395333764647484506572771015295423508775048397299398980187353494761075669444629369672080049815379052123379536148759647284337344839687524174768910867346227008522407945013737577506456460906979968323236092285598014901491952874892241522290684844020919550669021678586190784760697909674978111122209530200629262977987531678402191658099553231976481843622318258438389773338104648967526169725262756335156854435528474717165000203945730592054911482222412443725291059575084595558268843125645060751990971731389729390274130662401133192618227818351323633155894707940800995877849593115069221753485163220731831262075840742099254798263573170704356943697557621907826384761889875529331896986614233494109803353573394938024936249428075423807525943264544337102771912685048596983435261770116995549842486082747334762174003621823736292071439120647485067119105976821921831809435460976674731999156129650637456403881128297153100640258567372780823493338145139231965778963868629511030413484498537078418179787748749681504169685670889259626666843527703538612813047266907718047821975833971980760140998914403386773351597143302277784819436814462420079502396036529266439740736447241896928433798129334704985506802280943691686411348902635271348835406974834371727225571173075892862612161747012405896927390483856278884824516364988564942919033563428515327568330999382856807985220180577893118323925412740541310933824088662199132127640212418409616319181437903170257809575866399333898292978775090988306282596680627482126212214395274658423818781095725416692494367961007660457127833087777184773950497691796621162658092378120193445444667585503094164147734732064996642852060330447867023326807128734317624161306337492357198955719564971504689883874174673308246970616077318803080309370849842966427114150478405757575315594798387759751092700032100101845564406885583605464920731647120274856315136632667540967737176694900606576795323004709721149556899176776608111699219805657331696364919540366441920096940957606378737472368572253639275093467117060249738669438096871334748810427694015546540244852257677681308334047308329605605036816368850216043421318571091967617396685287131171783626644276698357663195360781678105438679435079770130215829390362397153247196250608277525375461179571017653181837249943841576044096784340928881661584913301369049491125008284912291441290457188735752756555168296244385325383121617396268562409748439560821378596725423868187212448768499949315822801509679385524748496229692082954124167833977378649096520823754376503676136850709457423378817556448690195763152602032668281582410881923929407416780644651836395822501497724312037847120469028456554007985109433083101629241994289313321872585446067701435418518695422873374007875578594362805932028228255167631219654441088769641094130120119664073334742800223224921079255343827800473360165160644489011307532358139975388242516526731178496596135616267537830147277290034165203836885863123634597131716416005553005399728167725535372577679978750564448181628400201232430060034848790729975561715642692324187989645860597092825665692686177948701872898945106032195181635293316786569414492690077277137326762716739654469384743236914984999123993011639143386686304542936654188903079249141734590047528847659273376975813729710208241014426265117971175312664680069619227977436805706024650344717378503483252516372841547510730122234872089783364574471051902688396781557402325787630383113789440232116702844587533483533234099341126943734358036612661516176893339037386850390494486666046605774262406700456098209892128128214379502643926098649743115014759460478961211047374236990689716813931638870264224674177092724295585558085264608233429728455062028461550877800385795592199507094716421301962535940336793023071431423913689434543981493467306084838214044230226786742515698049071248320351163753469579973412884329518641866907895481485673098993777883651760575937359825571012174843661196252911205121491350923000562607574718123821252011404043238731942772035465838783762607132873813525208830567417776905959289128694111804085231742489011914781807141238895857944336856040469159233495133998588315533968658471684851098958889910066163144271616576760426287029705337751989444643646616996898065490750730624114432085473971045300588343321871318307211262964276525950135534055466725391568315397791819559750979836209305578404613918222870078643082437430867515496283358800330832940592535837532989703503542531452586724942193659791416371466020958165848717844407665643585142762410222442432445061428220114083917176100862899956447448399078179086605987562576469653192626071862019158933589857818014426716471390933172294975466461182591462330499403075554719831906209885195187945156260960106258725068257691643020841002033242010602093949998970548975177234273854886005139893374043166516670707261795341278499765988536798889297507606071638653592297580558874339739676451544029162475307528360604135692262623146903911870116025383312108311544582195981424654120213313253228211033924731273184131848837238548600514545254418434830523776317398208566489194775070038655588403097250044107452834924239856450584612355726836861231735988347752793673696370443137279644691056960719337973183176019481054755299578892864423229634139784050174476343232612112463250689526325764830736056023340979629386424589508291893334939326082571615796060140726327142657446779711983903426808040365898077315192461452501581019615748508794324465352797274945118713894561316333627831828531612033014521577611690139168524480167302984629305455843233020377428418591468228200512006865162598012386240082613909621149591587027124296275443536925585009004721297643660501467187914668309978390021640120729592645268277677236262404168039394614765581671627078955653197159773046791675592776676244471095918292820891233251823079770117059538833492805270856728158371568183706588309408513280647436180832269307878116910938502499164048534271175859544094584904283316242066646476476239626989940590042202153695040773510479323028624296356652345828012331353276150732582756200776118288186215266346619052460650146081923557733628058998134488514161872206613826590486985828337954852628725722598278741767954451351643127995022697030306190676624457825993652842556021811071448256460264837343130939731145946125325067487642764765306405485116240780073754928459848169792736090429393937289525961691876342663916360926786366344591262624672164966907520099374428795320992987878733397410437417713352911597088087321262708206492625448667578900554967937099374240846503674668576711452896234821685212008791875519745802347695540309001207363349116283201123541099637952816509345103941815369553442960686734327016526232447913388088728460897560451884699198579098806694804238461656662886558276239767970783012047946114235987280967036332216165866270610077408684016609506361971198692440802414599568357217990034012107082905722411184082926637321428992983018805759959982865088245199695961923598221476186273832012499244897329310001094233064973111200180892076609610307511931390501420167153533786743965718677205613331787755470834975695214986521529056739346157371455697132240573960359520972516650963933771985205895948544652507761702216349128236870964846227910722142701066281225969144157566016581093179691219610233059353201726031825420922317913435397526436701699607766304367679422590821306987073376346766009742286207547880763971799059973091507984379868856057519310710235253914706128209011507930059524199876365367003364974758088928241881182673399564625683832305812955094968757114321169016413779398049975921010853361590181227482896228000771242065442900479260132088510581193009698967122321415500304697256526623269814187159332354904835148123010253276840507612835573139782210119603082512968599051005375668696905089569182010600900818092224204300693759594043857716774168172853668310575454370568371054657223778150236803098761680020594681834475426493198429062776513355845531798802868150458235089882227730729622831937978145157918575139524330945669935839412592504705386642419837883586662814550178627639216083964741508247789481437985629257471839124387816994223529453918508377376874573170826626416728007433944859929085134046900602034243260104410692821273411029815484666697909742920323566984948293108655490080637551899523442716899898600207771973587388663992235123176700859331495929442006606586496627295140104651783432335883427624736958296155367261132147194639815062368021747463478977114842755573599121632171798900199802038352924143440501277723010507440428817984005276544269652287177394949023339133675158526577787109715086257197344867953947787355763064706307220084467091485277463906676398104515318210063671041813146646047746232391840838330761308885648910982587478952685933779705669989441815831847364098445203936725934343276445562737926029654641654500411812664710072638428188846374250034232535209123634105867161397529355119429771289549897736486779833748086472748515535382242857071170790287381315215807480047025500320682514603084157399305179431484935515519547725889995950624852113958968254637722112989735680628777832317632672809639903712452637669525896474831877126613873923630999433798435580499222132910535020338472222828376426741162924124481289168795545489349145831006403807871263299205883533803890990408507305073744481700533412517191098361138180215244362329416864845682110359407572207080806610501131366298408324775562770893706332638627775385318143168854927391779539777854571739004683783232235431372860697974347787093000720755083548672087667333863227155449328678541255961270904478330854241512436713260215592958034748371755001252961495223169472722809312953781026968897906058016650206106353818614239116350435650577810440495640993899529150939671426715022552503243422575749561122767777006864309219540147418800359310104556559943077977384174447172545530636374399821688290508726464668668540429177786776391535638892207697626367973762315131271662723840898657564853983588118670358759015441056093385537858502061555827632966527559351762847842269431867072533185218035867705991593702929567547841013449880186036072223984444521199688700942407152391023375547982711990920677346009287388513336460333753225353341583158487102940823188353029024483832283934831806594532271776735745257564282696402512890384682852299004433957595344917943237890960662270097631774228499894824668697998495021245424937223516989928338247333997164782845911082477151734802048243919027834388390118921800186241706635642164562552887486140235324134784066936850415131400773203681055552217436852513904978137335938040861033505464718405446403934417986811091139431922725683700102188214555153878124730837681404132455487500881773794081300611426842759285820117525619007951275667131219347756728213624011978598788003062269147452948662250465812486820029764170132261452371260205159378686651185978965926510172446289036070127600096289177855739849910467312301952016884164178109140967784740904752388647929987914200935749650543374165986491922184983395109570193268643543019715106691976176869640350561844273848394443982866000806364221889179514197214177979886629659008580525692906559413704631946173804808453025783261568823136378705321151251060315482843887340714411760936092578063242379974571480548173686676817331363685804376093397743191997668571740254910285312854470043815962836756818736654602750974062507279171931868191362497862021747727217363711826804562997931841021913685796564452348561042887012755598382467523744526954678243702342331555545025463700799961215631500428570628831003268679192954177839096095998866213199793175395986841775023827717419616871202809504908182314681222947077214212382294817426615923685230510174957766973282515857370426723224234985769633102228400537548044532790478462807788261920626203311975447665193913457040897522904530156014942690019301127274756151721333552892908620244103468469307313500523237613477920268419453033412513424547209898983420994190961463509172034737994361273404834588117604000843119837071940985567325556735976719173300116365151577171233025212579319582241483391603466758284707664158036618395338280901336845467655676841069501974826340751554563840548362538286541273370958849021021784301487502367198705818398350286280707727105871459698185344807799054008801902445938127680142218615932584825082894889615476540651258516668511839058533088761622819933948004806877766093513440357004631681424074889872945048124014044700345839885361560552715916823553127680237258234695681349749455155695062694153440360330797767490937818766559885769414176969461206438181084286698408328896653265727242912739362377627653216685468390421280226363660998269629368958901115549947686596953492491749408452697440370290448477554648117313638763281512844927106223303721005939663468438711725102089298994947989631771581953642932988048397558626270191364415379179496302286089766652114292872849824085620540954394590615666621963818990097673162326689026419066041560711037022397340170945791609867333176198377145865382985507311867391666525643595172333979970149426433562928827984240103221734588444764933709131639541665886297973919839819578303300020122569525756202810775195677134589327901806758709366723189556024366709622600573417380955841745661153242685814550475855039437323082508456826906020836155237818482770684830896473741270822768178557944669646839469592907870459483783319190201679612193133567683380360363517248012954566793777655974347270421426896396209552513810429108493578537568118191596197093126048248248427686806450791515423806062811607125504013360580274653316331394857059679657099218132438231056422542950980589064178048031617450577383126510590048053525665192662078638178143219621605931068218550525644667130223555678258849851676588697172782591558250285330994811021032736456968747841166155752728509388364706611735608882173175879336066229809367956759167070681553540748608627551004542898101509846011699760350715133589379757493979835531946240597410051279299250929919225191926125700263296370995473198049042021592607298679906415848674908533108611930294835804194421075192471367114142376476832340524374502157227585610750614149384167967748220243587050316653663108749012149347117467647708156709074410587745755467644717814640028978365679118004818750894319788009462788759386160336486578509564069565022258879046683303500575593446488457559346704247325383220647057120445201309538219727307518575409194120536314821850969670650487400658232717582044597230442113830375691159897310456277834046619966410902119680457046840721903741927688830837946135985735234481028551111583701142472181296016278626138508492599200049897947800313867362041834306370759939401448553386980243580829766529365906484090969957768151582387726901081984550272456792339754811107192171847269975875173289641735359283906006022212340723691967233996870220035184708609930565566593008525669180193858314919777716373242297885442402809419175944428856045855126433223990138362632652695142077019918180172459304894915942253130953475123423221299791997703177222865757427544286358781909527836851186132000365799442659820283626412086867205927747919705373455855915712110977471079475180101406593857805320755442832882782579953081404962211427269833374558793744195494857668427948079047810132363038367604681819827930159818913114994056128403026486928974827259229010647247953211397241546257547342674773835023473592359136844899618703810964408033654522942359078449607994734466316287016968032174106127172468726973092565486872819776838442714404120176499899009038529615908443300838878149787436807389400451601614982147576979032950104863743646899560596018218796766683193742035423306863780249705553159464522454116312251695938412819463207615649437461575174386034314412856627872401192257998916053478407732373033043854124097767709248535828527410090830195725929578463206130960384173598209296316245741880973926850239857756912540015535689757083368159003648409898671486061225702349325162771150565762367260105678365206322897932005343035080825589277661140140817392258703769189949541338428752437079182975322412460129287262814723623784726924301774767137787583079419319948201943337861193682668756605912101806456286940488005592687654325747568221004164427859313629839058872542942512281131665398368128679018324270039313763874132291399271620093005492475542131626683980971989342919204576459574387761615287438658905029725899613874725879212832630005198725487916417171209933301424907769100972655501976937048825211129024528414235795637131969789594644473209084024392011260127716354308856753504192864210424646685830504375925525582060886057961312847109767891530844405847445315634939257507434442917433553519104111420169969475015282257146611135876204392729735434513318087947263362347931388419520166383019550692802967547225399056377172914454081771061917532711122324895883036897290844342232169598168499633002130845981539823632761054134253869543438170287242682481374650643772677601378175733251160533689440512297574822518479128961121365221097739554497873002022555308944299936132341991247714245414646955047850588795695355580860213185880150169821668590769638098156713696411603427170147169596143369675098203971068582910178685093220572746692005603622300212898146571143819387408797264690762698856815474829633085732712559790120176145197608284878825324694251485652224965257418444764758259186467398979128132246752906288680035872820175462022803056919239391687338050947851206069852328896787988648134487505133990064848240193001635153886766504596280940400391833833236405361515345491228390154185484502281623781978106556447228224763218661208559503067438516299014450612750960267632387038808087154166749049169147665679413029968632322465750103637966362065027729804989628960982463991176064194441678758254071512494188142711638825976567848708218047493881452753864930008510131532818608796626454329254156823739742583973270558278433263947656968720914384483672309232701109064497514552504994798293130447362326065413828541253668796260456477561258699506628783151003660613858422719454591520436536821913330305980075687524182407458628755299359836517048171459290137148728492975466298275451470399616478669129675136746423233013253032490986500401980158712088156460087868063032178572910554830152616878513403285250865390385162467754446029410086155784149299095309759312908225188406627310916056847591576960924030155721199845367089069088228573721974296151671469928289445948901169927217975087797665342507310183938261598987444068967818538447607809074242311317484646350838975535294492823333999749381478147366489433521893843744118606565008916002815193970292090823491678608920142410374212924936750710599389586108166457372618070060248811219799963551926406094771309292429576748533322385203179624188383720285303343040711176436151169665721583345702308561284158556527607022958710167055030944482284162294283788210327634654417947811550741235875347275444714564690242364612345987207414933855172834181219332495994587487779936098970923870510841318228551307571962645586325051525290570863537183238300290770227142991893819235453949556650040709658277311137500490816642615836926685895982269660037034819566565679272477722953787408435937436595762378067268582132964770142259042663051796854035305764744885984205998032587685418099390910914362639879809113330529230969221635905007057822685103042561851650670534332611430579180494693741924302591272054145801706530286326177690410388621864435498148859723750689874555711945364948904886497635646200381761119060914318947663045009806196992280100219230686464317407025862531175149264425946741533894736574306217317621808153388906217852507996294845877561173868594457303820589487801236508226812075763662150740503736752001484678165776743114472465549868336829701954788758843495439532560962118533879398182193686597886900030346037502527306953681475811716360574519961398426104244770365440898706970339661528878896064640130671377285399609689218777910443155672478923895166620788507905501346636468164445639952677475823023752928874587521802842782908947454462273409803734968228435794248190769725830534212489156498906321963672168536527929290537596249524494264309268496266285311613476197999821684188567170288804290833520335102680492268790704268655911603477116214645736572350020465757322134091330087734583228033640933419837553911077458765791892218202080963095410261530708380398908797129286206375232556316624986682020042960947361501351132783440767502760006047023596065313101784380315123919217257511739670772054959724429530328966977854355723598726515117962488640418756128360850986961196493722287197876597326182931874275556530481375841350500764581924053831169322083152584834279989348457327867156104044429565715456610654802682555725297315834184189766382621510040310419800647043044620140632883864711737371235339947463182850634983933256291473063966470398962791583158103981604003632317467518953918784043542459218594991769980357575110525209238360438130777828820553737131835826472568970770512026038841986186290019048346772006218964147836395498635838606754260446849177670172713220422168205412492697457000521331714992508191119396035233541355849897266751483055104648406858023339798732302932669177763568547246206382356117940564687018102395447837748264462092446240551366657414555673753586944913135580100230951882162161051908865622811262781584009968737980009794549207746963560972835824314998874729071792508347244220935711502233560965762806242471330942627186007035720356474785988737756329111158303887624144864778410028146082018133936102794966382189169865036099651113221698460507031206806606286199869703103625804280556746148618731129027646178646318444461241616117632141593921074978497448795250024641223363637782557711288686267768715243251936389112052554380560782386885882919599249298872047652274520785115845405285149294043259224625451628365580980604067418103252603297724105680475428164780313866938287506736646060108301905850016654397283238112540369454389055036402162464142902225613880586828330360554039454874520685560940867442064765367186344243772840458862023070711302141127166947761669941735617050183362557264546216819041138979566026731236361274451211638655741719022232952400517623294546964362201127751167477020248108547489219381199027072331415044545098167031979251839019015200126595515628283701996987845574151474710822612104703152631983110694829513250049222474658834459100645363492769403602994138692620495474665640805603791101741659051371861260438375308097938385915813554825089404778761188248801989094232678890329838363134021411973238736996245071076986535645628205137504895335128417245947824113492492525333169140059176352148717737894457273822024316772078104360993727231281592426947649043634601511765718838525067248983163828335343797269733205523835649578200025047391055239802781730924489489740618643369212684216462167977525434523518158278298442163164369169831449557326653566023369224300335429730315031593793116553586156590356942244423763513366565056340817963953762490248696825212626404285685861808461775284186246999956597069513181302540071764337901392815223607282156173119943868315493613673260158021885687566476855827803009455054747248948014529041537733566684027939546635377911095172446859638079720880100954958639833448268363987810808592844686989882496970867812399546487665993303957669696230289214727407391179157941071563481237505017132609872167037906429663530050130898843507223110993112184763712688972907755378010273703212901238599035937065935267374938317560194963083806845379290368964044869621985467669114015451142591240830546520792731510726332030996241723494458837144429401604655032680626780699326141187551466171785583266048234603399239587313243026140215638525860471131024348433090758776181675818734777312286452354475897190543504185832148583451093316210921324523794082904280529638356156667993652766302282274037925505395095141970728342644489996659999823638578695656231933156388780490042102722472218003723239724773530989890851759643237542973492223225864017319451657478445402242376776276358644299906995738725722702673959674960375678035258799853118396011199385203045308884800912241949313334104507847448637339942751177546296502220730865251141065803067695989522550077811161179300107235396734189448292163415693231016894400511866520112799449626497218792626751140804004136985962118991709341030630478029049973802872113251107631236829199776274876349324418980927182435307788728599162823429702729077253184181787535836228743881087876095635896675515000480537756915665419798875423867867889796820740570477616951003978025682384949557687039851427828813176092318831399517150720230625398778733107757793895716969623945299528070764325409993441635541656747868319921291160481059403431340872666923452615479301932939922113938024501295070827663450825334731634208095191397736151055696940693241993320964372422171698444321047652599364525599075846891775105295898263876794160863282522462815130244647247748242731829414617318019831589667008054640160792097972896049786701544918798668854321274612021151268987093174134604879654025052659786634952523967230719949457883724196820666557730882355677665752603747644234525051094518310224876367489976058533282665991665219133840066072847725440906157383475513393143917581191408739043472520979956535680382087057168809845713292935468914254008038476449198827229590087765904398750664919229258438706708933792768110941170442208571415425010148217433352578447068989916323534575462445019630119483898689389176747039405283189111226033343404397464661524551916705944395725942311462108956590588199066541301790400673677874617919374162137865055757249227840686110181259841421893426879672539291457518985899423330931804991514885874878558315358835999095842352015270610750181962323542337697201013320162618842559624429843070204604030756080167099252235286903899668425919034774298060177728236464739063244214870215328621759863201254908922956566819456067349539449482981025940765944283242179026239333414726466914026925160919863104869919416412649621803793036551437545979801792412470209789258704646266007581987145518007225943635329869302739537654065936417942108247915926165448908936419805460962849173484948714870517912732894342107374290449223071731135834865760469748323505115499014700010223614365000417142806361852487094029812823240652160811128427196147127798102279815976724548645344843273887017429908283939433146535652430471366579546238447329922473984506171847440176789670978761311218947117917216339073968483666504348099293231747667089608631089480975366346102362389175867431484064803903242511254100389467491479125322569999538592618653890273471721769429339425742171467330440410891307676391361166735799970612095197135759911591481787053117457895273283909687271805775847866571425201670877573734327311742230300838289723094264894402312076674661643485892311278367932428837863125078141879569602683496832503662416941604981415691284523872128714205683711099010915395180392188628171219331161677480728642670585597171518513241429315464108388577361839365777784634565056878816971063436619626143398903428596042901139387650641426485964527047497882957059291198373675728720887997442996640961912567825063153853003396733496465259031041877504895264777421717102408299119122144675610123982368022698237111091112363516480970800222902910183304439930400842162830618757773904280908883142697085736991319161519521885918094011169680499591168151172119839740090832855904617384798755408652810460187767135308017057135862059196505957917087974323871247216842428209862144092903908289459294956512567893068077583587059366218670986075519427162905503601997702650646862838197621087077166147714421057154957685023873121382512407934453786291478437743255393658284944388032457229897376554669805751334830438360791508841935202399356329117193352296935869736708532713432560738537146107530498962514461767747475075739855614620445168739361684747026775179932933275563943317627697274413956828701133812486436969542758790816170197680201634051876102392649301485505536286695668016361266909832379779207399763579424346634530662185115484656851146550141657739396946673988178723859950268453372947890661757554113347902852230696541720927747957123368369364963217561894120624817470689026783556854016449017058839716134468778170540671712809762353835703785211204450443635205081199329300246803495023607076415328286421013509254564375751571465174678637764574423187588372201460401375375547362354795234264002030814625671094101540081430436407070880400555953201200737675686411200474471956494249109641997355856593467587618829313661107516125950995609614160068070911117747124233521895611951722060185728337464200291859508194087471236291709107228937502002378817380960729015135870602008089612437306092859828645995393498265572525635662217309459594011281325421029869149176434577507307763292805224147836465908154753046151347390424474336973116786312370749028886374055955029535371306421214476976120477939931211131726703977021938245142766117866165608603096321665654837905327463544038945294784505020513808907621843274243494938933616164643923203410698686188052010617812735742498588842528434892645340730645319252543496847199729494156389256862763800893407522255534446029098612607727193428472733241441883191828909245521663778733614199215330840944575588468358607323425628063075939811287883577855078874021506031783715366376381762660911289983306653755574358473051087223015690333117118362731832506078960350839754571337903607357990862455430788502602076274586135198040010747736271261075798702637799824606414262849467429079947175122122771047046005904762100131207514742728709311818992047873765144084162025494580105807024362148645330934047082060511485294666584400232328566747460235490719121541735951925791261501405013021183320077730547683809436527420468037109761433838621858092226655852905170136389143939796031476743920230391959045949685910330429750724463412111015811344093867870048736149895164372829393113434056534382342280907098596980486980093386421430459387718742448112625110911246507246625675157439764053260309897002079271571918943099364377192335061822848502679614097865909321458209798958502616303015219280765844135566874482422390010306072124999572231072572478944683253258284941380185001979251880460592851778548995672538093365880238008002029054538517328938357752065751480036072504966593567420919155330298215441612890644823158621532170400585846631147144870670244384148014004183345653111806714702398476148541899026701361714475213155527946569308834885084633991068512063400554403610227944764755887699916530532115257724692849248319711218863616891892028198835461482697480780248709858288408265394356878012019879730163567774569540338335156744290249697748434962459567536025018153761399778206419605742411820694361555520449099166834772923465083490232194293495368609137073788287017799647669775856794932476693078898919002543487093112208176571518184201207510798005890791908426219646687654471688752862434888449731122095262060093312383632525913880476056698015000532058275246444141085514939100403543823471053578720581231728326322779937203286801628425799209493111660139304873904683095396610728889699724084026772470978366560012624099542185790136247959822160188829721891062113886411724820859183429729070929903584344550504970341063647381043970638797093311279757193836346445865765304529150945067308047625874422656209005154106365613907362139186783551549695348043487356106070577286862915449680423882643066691384282605451129887407537697205633285240801903942243810361675797298640749736378128115402398271397950973172461155363151587241265608159486301312228870222477224627790674660261395666526230527630786662937932669921271847452680633500377172628162264274081739442037389107203262230333118735124049901226329645921211307031605672439045527330656713890605608674017804614128185393422036914124796408384337766511853603722521362327249683127598533652991548890394763718014988027753685492196593221038059786554434370400820705269228386749041171933784583200437340068369880391091315283898409437301851154370296262649716954579659792617356009638386470738909504453546452341934212800806191520974501123585009582474211218059388610116419131853709608099305442816296721962759271532107672471148371459390713425005508791897988175686494414477135651026947978365052320053002482699752418054714416224482281510206832870036676325831107008256103687755954476882068631674894134461488314295219470379207543651215900382300587155074896616216129452868281537732891732875660096977421186618707886242555280959375400145372665682386806441235943401327362467612403221762198036326955427285998563897864867006096408605881926225959033299750632269796815459262555901202133781469528820116662828938254442277930024715236708173379084715713823586433216371843887303904529039038532501207306557328826117835875032168092965041089925627365225990732737540139864033810199422095171551086182090321072117427346410438964824771244365698063094416586200650397832825760971797938769908695436620861347259373109348428874280973540434729324674039379262510671317779540671691762922436709015348080066810353243414652062485467471481933012731628731954501291554237086784761223288166155671722030956440495765826784209533156884696466451947945785532633177665114968480294598963716528446708413447353912411747836081590958729246889410520240467904521273908673801539714258303993680659396098471313451908237057896246282603161659536516822337126372904419787396260490389759630069877279006748405336523835655229362379873723568768795171142245400139623028020992299297205157236999198935236857260487475229392374371345306911366617328030061413830991276854881126465873851899593071021150618959932036937462043477960715643286648370703060795393951513938724362857156429444019152628656852963208538535835440910344855300967087446194991656507496346269797166980936554623587468703809901544437444552224123026923570490859302024350972087098131057309990186411345683233204961331713882590147464735205242515727124974883468437651287030421336388573331222663777724452220197508285126784359828044415069356989243571079227087888885605700708621126088057904616501554890116774419241302248107188663315827843276928092298216342672473308178079402770615026075998615846509364705131146408844000271278891840032939867451878091005265157077600351937639024405083842495282501287224268091694158877847262427461019394055220996588021903196289036598743653399940437011179640406319557585695249482762168677142397550261958415437000796317708639283154457367531287025610963890438091488377294388940794073408474384870446953562364221667320117301198582718958270982038687746606334897760225244787197356918733758486048772925729565003946290881117329000681816284360723524705985745667087166114729662447374320844042722975014399731981643679536786437444881113519013944290589695185324738456091385568535931379479220177145163315838172335899893538482314670236481584139956321758050290628014388304155336892004692077111147711983867737417180752766899383141408058523135318689193949251740039481218348790242919132522209953256467875950497898717336686108101956747231200665947585766816151936818159710501265809727166510568331591872958526605631430490606824708443977168924839047702656032219953833221579212332570240604756524692346649395835372238869368668382635169996020091366881700950420023530804978616031319229970210058361293801177184506541606734250283118345987190582365964900776144614984025639845143098804145796910248875732858299930357132692118179597872988844096967387957007738214227381459887174632787843784350968455477079473198145625594104601250369886276363077696048642673204427543131979066257004533319366956221813262304273648222253079395065163232270977788600465852120674348703737889338129589041124538414202024030077157631440209400450790739212833257390648396844401693333335356091843419784670988053401225207513958945236620241524777738078158776571803905948153234385979814504075044469515748678888111949228154714018847253689714666097761496478768267006025090398135812487182171292762076501755729487603605763579521303659970573705066982545950384711868189096801158171989248724400631983063922957702045392370684683765355033534816493734384855752812767890690928601951145121712052945909282777749272291916745287283071384701310995567938805131242515936794881741567663168891307332303687666640101734681044155848020473403825729229330411406637221837559539681314995316607104966341405206139136616131842950184433676446513200656495381219864379944552438425454875216270471941995385556665682510140114589217072666116761920260063229194369182044346995050088955625888285678983950362301300733752573344121486528843234761142042010181596710055694734803591467826099183015196578793195671931701704070238680787138443789031539652258873743235654293303028155687742238997646902150269427125528462431283788743243063356523959607459750185948396300841662048180394451819614386523464062508237646591878760096404599005170557344848431710585975202600696022035870302993931437106039874286171671319936287014950095931904011443524851026315762052772264391833804784563764457852774973939057771397652153953326408264640312690355810409350996896616176688269641693248691017046941120759456103451440191150694278744542247840331334920683162924815293529419423303506213320939957243718398260832258043999222557914051361577910519936746808171078313015722334465435303085132930066354740566997997941928237217314912023947996786950259580985662401723934706582459166416595499266611368543222884684386780362727514201583726205893152136443231753428612589883699519595679178882621585289490182879755155599162701891006718515688492199981025345704976261590753814215507943810895710277999179643858152980090994809527667657222254318147211480374705374119925659447193917741845150520866072200133609820203793192300822902765736822128545814527899492509561726250513760560807241023027175775739051062864645299360013940347197337170338308365447095710376814812863043032561422741063944651615514585077620694927049787209277719679925256185304568334261701469371236946707252199054220269933649464757798785119514050467617106823330301869345471575526110920319625433271941019651972030608104371050968257871800232900019346797368551978882502171882773901185457461550199417307499543703460376410889354817890964398746322068012535122408725282859814513030847920008614927539236996611970959708237957468641443036584120999647603769216942313447167612531165574136994857558623668105299760636283248264111225987714034790829528238001981072731593575146693164309933440243231009566086818018024533271296890289826996728247333796383024260745089970003312192979810728804457752681523477521122278580578314241727736928950711090598618472503437588558419172249766030374037512526998449735004574456722344770141004380194168065627380373931958557856690401781334442611692708425309204375752967625926652946559791106542281746115968818710809569946705089499721530144702296689175423399647406183223178933323653610540909283564709718366521425937516344066441997078579748980534156567905698648360095766325246397486523006531480248942911270179428896377922495708651680620490376073349380472954142370661792855225472859785925305492345959757712863544033681050369035316200266360785789758045359211945082493111244549699516469284972757567013555823064879763599225876365557056329252016398292500527890496235201189595122081133437597389423404030895754186414478544521105414055652027508595888288985327252532456655151307560676524208855100490312420856682227660979637952192679197290917587577270020641892063244133937348332797016762026893349424943307137428561499453962782081616321770122620128024966702442855314477021862218211780196754227286322168013158945941016605332585465469437776747883343663381670708964785664146212450254259886368203337557243415232794081306342053446985588710526843970808383084958348567033650954169971183126847743220106949323496340414943901553711779390090213656801765120604321215047054585860827933552133367113761288047116239834900584787224696781121383438003107824080215676360539613762860024619770884607002208656369058794007945295354567198039985161599881574569749952788755522601122090719292374338217051799575808084979750821888712538955016449187984336076779207409090306812918381674345093128114196634555606318005955159271979709217403570470984987663859934888883114715444310776836149843589977475262103380317397333067253312875602846584138797571265929929382324425465009339554810753186012766302037467623868729004201698751010346232652043817649619561238737653803462196000369258783085604096372177275406010404115226468112946944160528342683617609518097506084113793163653914491356448850890419647785291719412126929891848864685813401037471629082758667986822272646372592163311543833652220830084061923961275642142485389763957085795561488617640443875010418601720252375729328860307997899777644128940589634851954052152232386663102284802786436540878779333785164403848687443995148386897627106981809579548118536169966210813515504414482597004198375715021757010627283749472674206540737495401016374904785005891391244611947884075252542088960223288936995284759580446291835118016624660460843219903079662279736546776375901368540854032662227475627679761892529801125884171992335683290295426685960737999217593988125937140246849574291412374696589085730061146646740786769549184280916517286547492224638184963545923908094027627092917271249902390550515201599332664063271819327064749864104961490398173351672164283063679555692349925312823809064685236587355471978337458891010456864126495866346010113959384230789891301222883117421982873501756997648441242153520322045442589177722751352414890392361235389853801775410637219052969556445529210970571802114021546380340799798928176691253311445600596785795841781736233703247777142896941738733029493609280071232254285982566591920714272558534966439931082766785477397054332099016748384769722693284067708263438114111868513286689940647752456064222148947085381703211416749333625209820941333937589253460485256019481578081785383145156050804903677971038067033130891292474436795747479630566250069300892429048588956342875484919885807491146727585374600868204091704229043325244639698561969824513652636634691155364116691262101280792776162506033563049138389920155228177421543119961312353365666071950130866098428249720340031710492345400041167497738320745363720513391873644591928542823647454319167472231101515301063866821301616932840964417614602800825185336495968429158049021176654666158145274323049401698032236400997865961731928932134310812148894537546761609391992320471022602136417355096935929005437494599153424442255548523266620460941789775891565309655377503910378609309685748411862952124884597731664957258003893826538343396327226742690954274212062266217970702478197567390049631777787324585401117982101902376806112745419842256551049822469708855334691913509137175057334049930907947478226094510126814476766557792399114528562250816235052216648969847232713135920238764701405906319400378563295302840359414515857983137133540257477937908663836813918196328717310844968444850266477454803761403858879786158814241086134095697356634622688211224822917312576177970825239586677231711984503321988221222361924554946841841574195854589784361893352300391461629841435124530047511525217681533953111476871268649880486139000166166501723581706971301912710543992009760238980814065822678327990717013957797455626834422815520742875763030107979212695512797750999988244260277236089091782162513609085026636241451722043110939741168845158659103354500787882224156259955222212494179935176500902365493755398391194260486562907851314054215794347618056718447968345496295343515433720239851119935632085701805585740128197285718952471102573781761838821552178005087783532872819167282457945573905734920757536068582450331603000567825964736858989707703734738825094774660589693820809907255943756038453087533207931008284671784228835638863261291854775406407011302851600199351296370966397621571822184635948437526916897302860493902817159038708797628963628643800707211247019082281976765691101990518365055891874815754877025342630722992238179221797038551898518502405806982235527358518323903785427180236081780464090527192798675405957962148221111919468376197501452489291829710278331679778630924081829155523820159294033162464145083455695882701787135409281625589577021680519822871567979964260183477955038444090669451433435871511955461808109761500274929191875062684866403663490259837393267769411008765955334598094029978562791515676278863239566388556416894884916231445867440444528345724418858222369511957182278843940563011289174107501620889004269744199011296989466359747422791014054754152137608106823495111393299781393936518253234151737097026057076358756130770879150416829119149816195153480794407026965203942203963059811201207764348276067202089502738600550953526266739582006730592758425967032806180200326431429110572423044989935499930506823381257678129768632558235698579882887880088676703413604014655832917515590298484689007788781086650499966519622224831569357621542265903770879033680363346977348373072273851908674586537486245216227895283726221135561296538743782735713979001320722130917515208800879816531370227704979718187126445273327345828039608135887307435072149782128125375230385291267012098855691618262568858207534496015221634677327524525216460538449131036921709161901272467608295895474543541959649862842897399505088721045831381369407377545318858694686317726683792199637193672730865672759999652966894600883160311046071850424797838884682255632603712324309938489965214092859494518390175971749099968702369332860720097924529876688140211716201184462590291087447805819405581318984641534564910030550345668851551699106311852716340487611044436933831562077754006555292951634019081840906125734072911516577165106151970628318049426424371943014742460183173187208580522132258434516198819538958793373360673579652605592018176702178598358788034289239197161133413406933631600146531610833924154979888621161615949713701174462297111091035169725262064297738819612177899596326232707234567301034543522470014028832244104539115009630676566598780787138046341277241421817821388674755765491086332942388257780812799682995075893438139807804851419555572853033286039967674086150384425597119738181742499995289320265526859437153114084523069687973254616203049317516868758018788808428776868550378644123482538096239299134574548275279426827808602668496328931683596124871869997250070797546711087639469692341089409935105389843981667090523322749588912941420246015534071446131627480870644388040726766011360361648971245609133030009894808552292907697439628316411777154620512804280475717611535089620621540237356249433879961742710163783729024560728332158022327186983314979383207041745467241299783048438558646761658715930732733191391852042416601684462220069494615017931775726171587425268176083645624961431959142442204969608078126179264139743695258638996454695608680447449490559093464903783032125856113297247673145369166833190038432493214768484096805169032021231404739012497961714447645316453661877170892487745664210702966990765276020243194017910414477892106788186911920120769218610405144360750854866192151309819563022279105215865721299803232424715184064735588511671220162585089720288434923335667800541036370572446205365865695666007143180940920897435012782727253414938673874617817020343873491216931262321328914302662447752860261981259741145313043800083040927084218004429053023437766946543802296697185707712542561649476978551704359502352578721338209142901642777104142225471726059013472719701929236544954666047103105756142461592231387124456306198670517880761070808012762647343827698270882972838329773047402590153562409510312083076015814485105192110084649998776501839701188923261396516868413284182242297254248294612130397990558843288697561100774032467528390516976217730954391027774776985726908146011427783225424966381379721722519493535937393313443717030997233958501684334869252485292927834687326239486443739292926342070861803926818508574847004212077940028086410913966236147026057892477975813372985960231554387221630729480906426330900397915951261369244779823309491954611441813713807958703364585284873414510587032465872098306225690597750630638797397496843596041148365212945276453081038191991184387045336861163816053832432662930423603806918774977120831116227741766976275569359992203941898885090285721506895617385257137591519273750502683795664730373516772117960500282062079971138318248140964359221428312620319724163732349547994009871851234960092503317284944634605324768338935177745600577342249285791985887517639641045597141808498675227073280546236501967753620063202724389281740682861271569974892760253269106615848574374650218540421566198047042931175086372946871209884951640113328456113019942254157994698561265130747514896110358495169855281266149989498923268081455188931857549189889829685971850556170900495510870863864844360043997375464859392024873491835520147536560953144221407658619924616625614423296809338525262675142651827788431563933854357635327581695956729472222279291566952984698315255795730862748007499345379084249599559506327122969255835689438037631155796045751475613518817945449496857849202465855959588891893106207552609573244286397407019109888687076315690921571834397556200766296598555438973228303954930271558798518916632749477900630180209969198007669118616777923852651399794395907218080151418512564801513307594962557826861476419868232816163284546088444987622786787492514998389820133247002208670581572576068027308844008423612182692153064994010037940579781986477282783017329906021696944057430352860860379016946188364434469690638675658950788596149883412212098853876896027029504093265201339847842375871173062148086001489889971999988445954198408529732233397354967050034355100229201524054941543090779762182426207900485010752114454382364079412068316227782051207752877080672452898603129956395695395602717792718942127376154701902405564271354003355594773552676801702519819799638455734407341554967722789218561528968042055965749847255797940149773326009229303812221624877527182708909566193750633869225325268200336964827816404125129933673934674196420314246244806029906760916006699999431807048159983665181147101452857056828210558582022336013205960520305297929640314072892805734706105209435939051602319632817224138603304233235143392364858603246703712168601093083136780210870697015595593591906046431844667345632907906793289142647502989986887128897094352467885177315725570144975407972434714564566840657205234854946713050096123225013587800171791704896138560298448970964222537828391904901882141599375859263974563069196295701743706032718069120094079133115998787480522639770561518225890545132264112823792992381193924388817508440487978084037441331747897775703968031301286046156856671219642416611097856281044002170950521719272841984401828481089318582254133018281529397047675793694289996051438332091818813728307670203238980396698744303226466518430316361007278777997151623694106799196272335546163288683541809632901378091916996079602649374445897972460724769987782709133280370345855921494047196821330654427164829715519405016229132778956283865879398527271787673732131544397416317778285554588991706864367456892158670188242772617963139048031612671881025138970995520703730106140305827889956316536653455354916350092707598144241855336882637758773805669283226781255630905180251602438438990539073381281165811955002100354600587572267763471867062447071594223356551124237503235314135481258418462058152781299664384626135154915401544729305159155109405838846598075178689545569754650152119461257979648327233362946083053190189355200218561060833681326350484598842207155999685170329205837276748540857885598802130918333829319958813217568907979484502136204599980012058558874768855536898844905690191075374145512708082454070808028173105670976794290359433936896994966699427708663806554308911166870505365924916549865425019756103713032691713938393755976303680313378819577327716460039476044984056642706258668838610128296175744381883685522507022016924362246312489411398644289843326335510541896552713854211199600094020385010887315379948554006803682734510319129818534369419737046449020844827854229765894757023726540332482248982144422043769711415299957233722775494849132824483460450097968801157061452939922328664071367993828967477028637911701473525733686913505136320460284428926989338806729266323483441254690148828276267807564495386302466890756589409753514379418841044763737969239080620570838749556315721780363190170201689925060992919221581958282440563652039000773287326421715290285870931886484112900711507040158619229311838542997475358466385079381502441557871484103218486837292608030524097995118025748231407352692440430976099919030486146962544571492240863613363985067150729180625955877888929807005125143937368416009288310888189359184788778430843257073099448334556605864666644601230667757801760206158943993693997687162038735615131170113389035252973187684611605712219470302606068480936091560960194630989814550520597478331900641472063393117739773911668406878987186394905165615450847277143430837707187144835345872239844559977997995280230457224323819311263941711518878979225912603068627242083785206652815156906401832300820416756640084826164377884820482274560190841132895504285831798481871597247499481012094287982900672638369557766973007775189100452248931530386208680130935183469517983318627865209121758754429140087773200943809546977157257466283181765990387466805661083278640888615692528563708963483738070679149730405307300237687592053936362946273229470784083293085136191557361041306406808585685448037040097628177219984165539796659476627626846406495026848886220617781044652785834764757048113176077272598559798949669601092170343704433166015410337161311708534653164762936515377354114603296884572917036559816773545203697542050694406146480799490133829348369029409018912473264660568975592747353672814132963484678374922905328199975604600103904099007364243686745545376299569663100827169294678179566176671874232974694613423215663568244238328183037245026223925223543497331293683294942171173904995544559894769073085337174204360080919596068113891918635126991459143528602885746566093018927455948022283871523690299108836814327844219122263747489204887929761863008615795246607767499121380118907271588346639312634888066861725161947923111014964031365915525503584414235263862017234968005839612750295287308072326705665684804413512258372474169941103352843195407383263876557995855425031911179830292275236207924471035454116712739409544833694973003278008185882974076493747072734955627849313342638230353465205468310529209670941108930937851059153258294997816280262635452727730587305773273253055367513654159531511802138261236903093445499992754790898070406344088110061319222854474096789534804782515425170826099845792740645317148787915596467231991888522987335062001514750688997174598300480588103712520137848354183736894342843275724582271155463213522478331876974369026384410022410659966423354531412657230401123504145912686848417916736215048224803562632292175843255539139309172040283277351569131455517976386862613032405473105962883799414442080488638017626624513980006121055862239453994418002359127946524669083465667294072480698136466151074656073332213862634050450927943577554926195060952791628431669955725296902325643646039955107509587061839452618339450381488851709839327225562632684394582674174320870514893242505223064959754415378991070707086304925809209605493853317848215290950229428797534135387010618155697999587788023472543649943059403551778503589176936213856665193421340387262214701543310132968301147873045294618455697179910963760075102746306233215453292436668242387020871851657974524483467556715688092308118093941660250052006616387599157083984179366919350087099850699360826690116632733095384652999347859585751421807478455459512483822565119894181692747817777475272850611206737729672497942861393691272971376571622978929144934475009230249371871269944386897604536397188842937713597984548594968017468086163766980955431887968494168262186949250660207581840446098538918874898589528686361601443325192478765276239918793005296858125967177690918378394151356959455358495625797407886900621764220558418205155897286268931733680862578999708178544294883275656094935153048340608276270962054551792050849366746199351053635981383078419772219893440085439321761083984253376030907084715794467658034114611619890310146316734710317751281005717333735771951713348820538293358910930229817954167224503305586915027403379484877456198997408503560813391286852956981866631069320157106694875168728819303456938889102518075799201556939101634364189672838185099711761131154078498293046637222464812472467749364794579708725922177374604521384525309287278181268802164104939703185046287520325873857739115562728236221111983443990971610217685299349330079033310123325411302318368063155459797129978280892320751105525573735019764420267963746654390377469890987766846650612181391998237669861841896271563962761958801604008616436803627645276961535649186724386859731746453977811389174695910513671678088209049508296942744375053423780347659187869508366949008448847640761307205693825026614634536821606996430714127867990514084920494132814913498723312115601026736497067244454823465070973021905546595064366634401067438408231958898493747966321738977417265191488351370380100987705852932332451311942130208511198512219559679388655371097603237698177809174619639417878251843684874525759877328873047195146356710687881665714769398010625330196199194785153026477163264097687051367662200797092948770868137774776215456238848117414102327353589193270625965454791868939889145897174979715499493958672716098405571946296686994829118138867852114705579735430298884545889259207690917464111988660100754114134710773613652222042019717996772457111738536686960694252536683893774049439193131767369006469034343178758827736010624680325337153849619997729601480715496503805467017329123226294042881772468699174037386389656483550338892986966442231213569545072646884415188880029464593150359230620175558013406047275075430121800556085170792218452087888532921681086797656765986155398276352459494804356732621028056920135908299061014300048022288309168876796711252873670674095335044455641486700933572814649907640310462547852430007075788931931110151433984253080175557912830395091936372477487678201257693364685004355771808450642459628046123430807110545166662330297224516548067100362891338676503518151729592067937645322223561344139575024219712071553737667664220306992198127990743992543232411197534625285314562893415543408835078783004494688525732507922928314106422791722798827994891211146048373442851530194370543970941225359666255479840033629588157464964321194109214275974707164191967502559505379054624557666115201197738386924107601828494787107709556682302056265845566197635570001126177169689305008606052621957904635455503850509237711834771951108970200496298673966252064667987933919982453980154429565783540377357506894001137841049542814120391578196650452853746436326572665237776033447419859029131837383141404498473044757468687680539551404211003980333201827692390399221850099014624408394692525984181093462928243408889106666799783338018081736744616787102802563914415480830899958547273499184369483120855473029953325951526521911136464227853600523111081689968638315237600942296354582898810443717509461516823343665352598279449123531489793426734109865840872476877679432216272419000124087429752557492190218076601849942510289902806038873936813971051026787033552833582198498485541495165926382223461135745808158351643303315727741895164435542383024649022316968021449483935966446408340111167451427788771856729833647153544410012140103395976727590094705070973685259787578991238320314174746823141647061152498008902183492933535381923922832985302230203382951063167777243038993642195954644721517594119696545553597997731035241169016874672820928656924838538483529465727952266037459322846671173210974967402441553914278334499009483001925211262629004411736474877972550436334613085033398271800235041878619321464210481553907180522702942740688325488082187690685879334768267219651365121188930387614790057878217045270043104785809618719829276162635680662652047563236881743478152861496425749140831607216739083443901739743261116805450966843596316566977741783358618374370825284814675977110535771568846845333869526310876604911641063651455953169727945088851942054669009052677579011208536926689780638159430771246227654253284912739192492239088441729322537681403811271549840822857331065862913673788637652077361998804841300779703441029940322043361284687932148939333288107931819884082304132631822316379152657587358641670226844808398962632153078081327933345379467215460101662224578628607036315718737938673793764374344770753627047551716367337072028665643622054117637575448845943857953000068598105281453979845413562387851441382301533934799035144508016838530776967568567151073509426922478661623883209200361633418713814672415777279112225779277744845987873309704608290429075660946732179412961559885902186518948644724753510837682365410758221020158982619716733418151962219099235518993587286401383990745942117579350826972828369514830412343296791273409068600985670037716236709723896784591809181786772403426132283212369888152170916624117339933591914092524893057903890711788761310343266202649511536057384726978398766227689608017188842153690565515983348245184751980460303347829615678518047988641634734272277822664437028862415060619985348738820231920289050830189863674849318197221111347703547943468726006828377925822726005042397822520449174513384439038727799812221450945366196804419387071186198943893488015143454103267364153376235198293982249126659699990646396990950983489632787017598620235404864372401619425172196382321084354903790563138696496066634261529415853877905258721544874513241266041957987198915058121944955109145717107856738299664022739658246648564878219802684623411567918253000428466054726566817844988088365188208362490793663622971947007392750264766223915255115564576704442446610808299786372471389338427972433534622968934181071853904959344426337018597474159104164922516725381047930155351931767222660395236792888886182667495831880058139141363154678345681524916108593274626168684127654972323773237294898975279245922881850363519576113682074089091487327586262096672971760831506884663384891204952786588998109423310559065025236057388298990041735273463392524106607991141651822230479336605633932357679033717701302089090548827276908714027225800807013860183978139648051435761155613550689097411077823885140561049206267011803005569818766648251216427614472548470957895330589926780822416451293340559343729489203061285751614670255781222726752773877451830072733719461639493821990794370735494055834584278878153964475428540103056187908569091294243293125160386761622431586136981925012456838827228232704013706994102707540423440576285961832402847171774537835386005639314804467567462752606570384946614923664308454110082402428282747141142768772546254244987026971766030834426510707237368084143546803739766250695720479990286149527720086616800263775494514756440220710534474888885599550712789637343373291564066485884971426216884158689040315398407226551155788899538970973325866630536899642146316679642462472344646759713154685383579896585050313264002101563045476778751390953827047483848415232234786768405892053109730190000722813692491275035503534908567590186153237930590975817497436227813206252469115634229406284112117414232798400481912108746862603187936210558576872561854033878545505903023957921833774380713846824492825477018197511889010867241191639976808407214243846715772872229442914291687018134624878715160459057365183427014715906957695788141108202047279436431445564125517672593189546868355922467071245519653992419932139228426195325603530178476134483822815789249506895467264956470941403311689259232500169208748009091271167357515196089545579798095512718791999109731228814183319315490700318319795892130198959340086125755578830521544100721824494132186322244203504935880704041645656904085743642864979883794132920004251670089287110131467101124955979425791076047462309300534426357186839007266661357794372556178604427646940402468969011363431828648506506490166723428861009761000562292175263715923236670555432242189630783965937762334660396519594472743149907207517353749534818463951668200397142521664400495677618579239113523608285505551944750730792064349526028962251101974452498022796462266588821048258017516636401429781668203794803614585927992011233335078811179394011976420051229394573740866309623165880967875908670575375893906266809939927413145069300576630897110433217754556460546018033270115677965094258996779772908209217009754685912784537318564531210167126264448543601175443070589198338876075756064104276662212145888713586724151078083189556059258894092394128613175863312578497703434036822240326107799183882027693173285968535838208288770641680181464228368431394140003461924707695324782211895082387688780288552507354927282223069167980721766608719878999503884903885713335554761030549682934140851623657685877753226070370601079552624281362189547496734688365519552519883813016248716230787238199993524763059743755273080579546055269914483763363180390883750736175190858983932258441729195391630999283711712955943361046432554603776889098924164349420496072923132631720773274542059776590537284186286790925353203156518320279623776928035904313371270155671312273829299341715612764213766137706194669026559065959590150042372063307824705552931522168513929123783879427221764055160837912417213448876641828153069932515342671383761786262533433683163757080959559500915786469253527858428495969766492601407466009516227832468149140042667646233437583223172642226421320580774231968446757202959484635850602752416793857553779981239251056355011379918344758460850703067355382718420514718131426752505084035558142594081635147748319079129743506388387757861829331878445264326065012511931041991270171130110019233039397844265030041477802824573462736093250256727491354677115254136982980442249607577539306257289697285712812703842140088644581176071668545873518764892173404605868453209816614082452836040444718006411210376526568730179209601120432058042220775136461411291194693496714595621508916401635230727756574291444586227965417130798783636696144678976541636736211706749268555191651367485472702842399835971506871252062410990292900142328497696095382384011335844861232459196828306694981331550124767057816284810830782711357246719843699815346690073486841293805141450716977723345160593458202017057380293218172575372830766945351820710794453236011991595495681140249882429207115347784709561947031552620118317690290824666193169330425113698764706073036983274283623635634403161862897725171909594004324077876483455983149035777273074880669546872355317516720733858637091553167165988570584893070957909307077094552762232523209695232469879286274537683705431222662282903235857824004338492625139416053508021552056377809156152945509292924946659050781711230555921105075159219680044672945120363053937294541473607769824226864467548523770087647264413865458341376977752428344670683138741609979628620779663076266451990315189023025652859012950304180025161955757875662455025107451351327377522061765880226023022452479943273711358186555637484135756607839708059436016851153046572313943289051163910305878345962671395984446468635935155921302294287645077872468476786320361451505439947004907643496413784876587549261364416251986518787790086446994453514650004376245739228388794260346081249855815165789687405409920957561554266620691384061826222610524854237891025583137924700801810450834895620932491938370792242780798867037890518910804605742531989545116435487657654685530913332545367608579800172696762208058981281721292797491021128545841438063160039079794141387759132762232437644266920864513450409537266183155939446282051457506305876011799561345412219912465183477711928493233942908276650446197024725759336388158515120291382883359167105623957419371869513041119154216740517838001566781927761976533485322771211440991172549598611552795421424110252024601033805624910257013014595251620104328509825006628087237834409166098896383426682084243939179192711718703663157544505904246520502928971730256698716631441877104517761912404902846228269012968445923925757178961847133150961961115300501086590770588337697214596099315210028160772444766472712466110216547872964564029144812808152626279992563006042837524484648445099073158296411206513080083185271209198500491931770340994845215891198594264209059658517049110721568904534042874717470451195413322122888038070991328151449905115662646464894564524946909538987575772146072825837315805132043496570432874305150130770226021612723173331660143877111767200940684882777449999209820932840609589655847933330622907526323600834800888581644045330339040555601659596107932953766595954311045184612785825711188325378278656887079380690148522885386408392091744352827585053587927790760394741979512828198784642241108579837374977732825915937334572055973624987838089982067422176831243281949867715464893256984175899537379295535274346334778100314300687061912785438529512616205650335024466194791915418460745109655911108575088673592876910638360973793375666891305922997382663104383958609421085560813956044994520060656176004873727996414445801979882825544354214895598273097419587944689255312314644144145641053785813588176705216507626368687273006125107120653888577679329422674049527399998192681580780202857222589142096016598370373295893092143848264428591757739657827820402779167358554091304010207730935623051330701248712798874758825063298690227141802129242555009966141820035065726747242161240804319755016860828445822041406868032438565685226221495190846181693541182475515522198764714313615483078018291228081351372845729602745918744643250692948032308474069595200003552359678960414164665281919017105218645027592239471645087809547222995117608614557543956415006557600048720768442068125341703437115177157467709298070329989293655438869199104234755195453474586381165447429444134088781582570096164411060206460346551225541955744932076351568709053377392507364003538329241564260762409684196948806477682545146641464891203049216496849880413506037859177994473757018323387789785975688582750841932791065803791450969838449954205222108336192876926546962906688921890585296287554834640503952289405629601800525096263098537534458550827553965837921403785933063554190443424544803772903150483882475288378547868463304600614799338674320621895537672430577944341923026948573554557230122493667913149808559640118087456050442012196855330476394233481747246770006543839714794325676878195520571915797690307328304765993881087985540158142860732167773051674978748341355801492673150421640281453049990589515934168454600181189275758616692303791907480242137177359415266849517160869677477871506261464686538622320074198277655148283615893196384635748012666668161862859399073217493438764899358194535207979772636867537034140164015070091925851625285385445049639776855324562837653944443037283849389345942461789188477713892266514515463923037689380717015324217074908179469235632775400218326173981606961971653700193186599315844985855466430628992716291475928694670118519702720834263909680662055159844708012265778647429855179956702095615283741635364115759786765679223040868945963285353988543517857940970745515971566369588415729283559166541767858406327983568913182235280393481503469587448384988548237387218893059218831951302682760709972000576860784163259089824645757677356536519824879354870423988300292428108899327838291979837004960069909362440506585370986976639140628093593554020930303431275575852074790832288130982646733659956240933041528541783551599703026100844488353329008656509832415586674811424387421737500433319418458890009869745607614581846279922732149166508417111517758571352662008366679636660818020712983310751830156555337415636328558731915888737411585384940708537706497691766906577219518627753261139359308560670064634251072822755590868892982321100683202292911977799008410471531639382917269301069258514375513751363773468433910082841967993697270991820377294218080446417560629863959900410526097753392414703657319729526239733417147957704250937988410702752802567749209141961293144001042255103057716425217175570766542405243572443337657990456047340360976009298274645231229410895726643378485629766420862099158255805706703272990268840777033771556124734752502295759381415464829647569583612547884403913507877308887852727249498566899801433231751832196750886517592848659260958812175062606147946018675415414744825982326615985272565255724336450916404235445256097734822739256957894940596769312523411081436641734433056482711996208335220669181613539028838853441332073268226461127360724435145127244083706383756982827653972199445285289606963186319111649562379626804096375797267418970890550037875646039301993119284467558409546944179954682537500738263534315076912606764888338019650967862626474917004820591164980586316231411722044773731452291779478797524371196668583091879414591659592341726114068212602844277759259277321278088537582350550125395002064408622507852689046271131765799256318912298333729983440337479632980521826344446848097450402565347729412411729554117479455786364968667282787671198163251360356755776000508256378962555232251063125017785462862529528349289259273237455458053099859281220522836592770020500983082325622220953270114439595382710511649701694437070705635680994156633408788505083658542907327053944066468016311075496861221325002099946603319538559099007962177655410106275129152726986350730885771626443467385756158623872598693996204828288191612238181613492065578916736066056273296168654646248377710545506496707033650458309736958004510349894204958565906594039512989080793029569215033037651765095010096459669859420472501893443964813890940138711513034931734222169632407299106835218828628287472355724058561907900973790042752248358953842768964524292485334610232451489875492678677965313708991649060595688578081860905610686272698471393200910622078712240806349361439473559294841009384079576868913527849841788804640663216817844509523174182358678468224858374765270201632684410830773397474919387062638897635816263521298470599172570827049562439791780799072269524519775748982323860683457653664038057859801919613576731220434193605870175883974839700634392181434665985327778195913315294752915955521172949749007656501061578676116525995789878538460902186704768107198555566781170983109554300207385436616938488859088797435608189132129376710951848218923942584037577349434214781492424639664144946472050538264772327831624744450062130777269053580018411645253898283902590413161825171481284066136877772804936729449765046293458770996022384628477200086485973710127908315259784442965546783222885720972285278301405995040233168331387999693336712451371333132433073646023552302262130943176662090508272327550757906698134107492220387870119333834270928393795741361672171612370364158737347920732191203178761599474320170972151757523333382957565554364569917115315519881456195796074978763281837809096502486335093964781620312883260258437115880241636033285016054352906009892918454206955410585750250248929121980293846431036994571072274086152752390323842602625988386997062393372517805827680235613973110783235911833863492379093622990798135561056024839408271017072983778770140631858268088386270186919626700734232937120729100425651584635747687656333384901015863132763343510323275603422399109105123712476577981947475184321845931153466283246472152787845200745858539447948218126946476476358703125994655854499281804522144358701608082223376780354538799912369730992025844470766559831901409978462421952906622712414621801359995986133801502870371270877182570053315116437670126264964239715676648437473615896085448903576984861072029717329489822491504703127793571527118953534734914962306037392250110093266095326592413823128949043529696236451920854529823054473634664300537653968392474571553359870885038023890220872685790036375019536359219615454805801286509435079452637355764959806093083252782079004554377767836406225529818746689519940589873463816451739124823122271523013236167679757759886780930516898749911022925517305986435671982768111144821800798473710848727073584500270955847831302786046775942799544098365115611043034401877226205409858268042578242944064429886110349872268778449524419538733737884877837537695598187135109288300580158543936643065096146074894353973055958595446110156257893893840884460550931627635124840431289829915315308463175542086353201802132777393574466481223489903981036648055208420211689283417571042987518658325998503003599895661666845455429493301198091179496125204283340508990695229912493150237358052737348728426152119269181127082761992304089851047416876048115975268748289046256898959713054825979448657093222100316722615667328279802603972160147387149007515846816030723733326819077841072690863742677014364578526295118071221911387334917805656858386492620014823616816067900638261051350728784627583138162099210930887657632882457959020781460187977168895938001329096507079604104536073025970211852832782080376254448088468670515402491309103077374986871470727588111105201085375485613948840225258543118216971787595042308845177306308849681525056907268218297097988750670439110820382926099365144310508896407643985299675234465839341347574407887485247695740833643670867083066663652811590206340832264144951117444743175035014913401263696318441901300959147139297214600023203586163579763666264621868976555794896634023373349666122416523088395520373177496432415573178375261539192943403972899130102197707992704605306197298570871313143924750109868337522748343993646151479651861637833156705304120611260328995985287614544478175514270469861941158108099744634595415588939122647857962938744305603551732206665716412234043048316089236653415674200683880869968398247330474671817163019143897950201343934697980625680558833636217569519710880026853748869649853589506740181064804362541818186906706720314930641084920489754778601755587562155530687173103172821362051508401860013618555580007077752307781084913030602471517868021462998469896113318167225964263776202035992506436400321499852000156213491043961227417927706643512388824337314159900588614235483473316910581992944115194553330746709038163373693057927465527487459644703280932390514968261455853096244635149348365248867007983073856187722544493539924995584021681261122017925422819214528204454627642554140320237207202753621871169336093262938798149095069127095311761579774172787512344283961262416547870642684469033414394090068232321612730097128755315754415869232378737211699830090774692979357973718839364538968715601443772266468657949371717307535209360457554923377868503843006903303682160073175056627279515324437120406075300265890396752144352465926007707593487365318057613688375888465162962117155287861702676731254228155386996311626990301837361830823705517804608033556998002716603542531204863148393529790893748893734639200344760223114401512444332037146168876588022658122171121369915421146459182542661455959809750054898538875038275001757739365894182470937744918902254676913164171270035404603413186568558768526953616565000041883233445237751361306687662251884639488463155661238534990023613188623003013788754359159044685389995885056991046105074722586355340212632315058265347555098612844446222932511670076472932330076671714314696913800230256645528674567999702148221392444680755698114139753794842210139600350025208728731390878932747876872546098225353995110504953146591575627024874228817216569798920860294905586372340703363514804627274644124968648080275890937173503771869219013403518453002548685405126311558021381741647411468884054388296480019927832110686485423780053731175111735842734411768580592161508532483086081952524460183055886250048158968799068237467044158950979320911344652157296996826932516739883968368135774026388147989129986541614458250162918922377962014683346793077051571347374046671904611506206741102769807209745753511110778541709729498502101928705011967095562881444998548016126931039609283029986938240085805947682764360957423085073655261609999347611388776831473835666537358700609550154372857236039489569253878453757137314336965983626217620748193253000049799316567414326377569397138276465232939248540916864658362848817444216743926389933614779868216005345079150943059749838316912860325717758036844181363232213885621198404862168866712939052732199802458688311616225831489835584889766533653215103613058196030536250891354565610809488103212182578110150361985937275168456940922890421251772409514939636231081195118747374235381101862321556666738942852778739217141118289913915826013986669729926485935173553388190163853635096343068613169882563734212314598314064839014874727783210768580992524210317155425871438590123665541885437314843200731828421506566586227215714543016509240941279092705024937128898813849048941489810908758318761908203743408629419889521440776417074526761781149726074877802818025991971969972447389270960681946104732413415377727546982145765697748457187219967553353273048905439914880337293947784777139452724895250072236637108381495855578083079570653882060696887794006444596241944109413969024273102908822217782816480503024765728643549841089826543543765486122714592973551910756343476838718753207758887929060767638592928560552804354862372437713865009856163097447793560744688495414151216495230267098968491673652850385294925338427026040704752883115634444669724665357119587920570354515263529735116468981110553113749217362702325568347036261710649908629248898317535797499677112539237611536278780785124913928515350796973227648174779900026610703053035164688668141972261600470459732147333224221310632384259249085861563464664402452542939774796375954339138863035493229227550062489830009127418966294440318646495340791783557948701001646237819350426426220609148638200048900841039837569038961366555138822261128192965945389678327448724526832678677291257123138408498928169137679866113363897880119345962135901128413744799452423454118752407055479550007645081155435815286415060174584512617130091254487433954670440740327399722020610935606902410279850442115906066147914304163907680809441974083259773148766906789806210351543071406739603121981872070191745249218997426969892943622357334130059106826440809274772059830465445916273503090555957639917407540342844359346770961760043730362531371113266226954775820547685278293693551353762521437498341748084162094265849018610978988695194082122709072106492337350758464209204795147096011412473795595936766014608123892605213895946118683281431192458807218529181507806365741929039592190348449031577546354740559030116561757497639491339005094892122246665842063985806748780891526932271245622446818170268394040243381589652830358699176961377772562997175241393167397047326104270216140279640995009830234702301570582954707632257458077648009464053316071173381118092973367623381638107378271146384227713229863664263254104245690264441746471995344299248188624220225753490501069682400142866632891054074851758762132585572760609231810688418046607813526914027368967795023326536540760454688379581445699659245745942570686176127740279717769249116790562771557285588616697197616930130039738013078797515808318797651815709397912518862928283168567171444042228826826693835062959985057568806679580010306356501772000404359290851249302627863136547621277273179605397082662188642362858475409473893111936357529696944914642153891354880426945639619804152476587747916724556860044783023280657228518490855161234102765003749460553146332278199771546014841021815592537836415684602309761181265884238539606655314286885696637759623883628666949698089600559048870796901424906115213728325755372692887099245246475046921487465145476907674992401007244735916138412870853772457766253138931225296243579979999606627124524704478519253393780266850225783552729645714120772702042731001159491524401955910073445273911690890368572235556922556777932701217406031312200233224353435122649250098267273837172023854293672059828884959668443926837819174858417476386235463787754566712094243468260271732134731199779767737813804058254840454726938754544322811500930091675041955543824122752251295817388096748969665392585090505544890587375416184392858240520571141671949645701942022831821649204336445867027082350391223921973052969100454308597052344689806534989042275707376420415056542156031089789713037133240829410798444746689268953787066900593587613925457719405330868383811601229685871524956497534409817048238627490738094137759471916639057549198962535537539709486868611568949219762693988715824582305474807826307743695535283790087212755134940331043005255930890992364956737551245213068580134488822397686080180704559461793559723134943090802773816334251993156200205655955929809080249452317528394944005818172343232000935916084340806067115802988648730905697584457072800693387411769933167726410421518716319495936030221971289162308412548262919953107183059198551847581440823640146172324087404414121415335583974113804094587692397425610764505885944779966859351562828879310616165744586670946341942506994097031515170257726917657035872302081262700118142780039911765063766860001819887034179019260325501588654315012918104103045449327007407146983156159833279239865215568058633534176904579481928683851683085570998607189496012108507080442569512186246071700095718519257234432807535964766634209799015710926704609038645434558501569961891967380480134471275342793996461360015732718490260190299321805403777207144781385958789875932247692632820572454313371062636988673271687334310188761631919359785392522978575941104212036233310768918307721622532715184177088098708024857260923507201402806072144308837370018210354907887673175325905741205360402311132048644083236241753101766873562586946231916610882599459101611612576107479488512444695937764393605948697951853917802653877808853996500692680956767145329254047212306810994692373788187778445597145521392587812580823870992981167105530254340964288066971268266298450304248483215073112433003333016658766658161835564599471252269994499935903001702383910048422019707466887412552231732630316605319611808129003574754509272880218229715859450667963375816152660922295910942064238124444289130652108264173272147277202741839237271815619168848357199081291741648486335933065977253491553089447495238742984345413921492131765570874876161827794280007961895635274569133199107325033982619990918510360871231990454030327969648347102362978245325086372277675387919810841173732981238946561201541855515455365145494423827917126336301022451909439547105906651256248259484655467236063804585787387145838716119047922900718479091699584469484699029653422285480326581252389348491977661885718338072562289477512581235080540103578024256534768255352048642411751963001801724829668632479837573870727497286413532616558933420020027497231219437109450589595446796618681587343234117743670715742213169631385701537184072804256497081289849323183101333319183157396779531532890860322578555662645693412253137948136684712865759478400270315127228097787569279709309960733586248807873912439387299978928552718107679547747429312810035324493563423058280743467440644483435449012472629231320311064414745004440336987201470704347396183564566415834747853215339929285876717138874296467700309848780370689735456494293856188498079102385463413819449238268389851252886608292470354343021534170919582786893871294031225196873775382627366986964858287973343104859486640742411292856254433617291286542884206145889812781148034389530516269892629843692172575950744956318043910650510051385163540561076863271136628770512220940747274642789574259040317148640326843930212457853868172708391120830057977517020691368300479663825233170816302828198206451514640079181797813554045640971050732905544782631480284619378346325584008317627978146129527837046964789595039359720540754267382815828717346160905560943697041717975099600146693699943482604190114836003868547868271833360059051184229980409078060070973282495188446956225285059757835765265015709919258444221965000885476495168068888984381294290413735003877722265980358704087687290473891457090436805645020462745210942424662108669804129806795903808543888728511195676457351080886141922040742518992098260040686362399322422899566027049058558345583509750593553405632263841480003053009417776056439637757845753455552582856113638117668366238340563693580523910455291213428340395559031472569055362986915963019963272619392291420767054087909632997485167029994474158493316603170272777023315580499652073899617786705302595253587461793623680465634891120536150047137539008835986057452757545682700627096615358308899595375112713094345591092237117760285886833138353295099756706576075595295408236181712213414489740374249796445329979004856606390885302556395741900071993890454997276926685742923321726380691565846337122123045109451225787342518385845215895148678909392119189324753619083507069289166576459501600057284123973129348789100031146217685354639462649679609793815987087805316635070298842031608139172430159927376249137744229014386041642721612437165543654375825312926802081023198272389823770694549738820841502505840039527771130996194113376283377893459838625883745170663226006889507820247835323649677414244150540071527456604970648994573723248716687016205889161806351959784850363301957652829068544479971406059225401035454067946112210284544328576131929421809836155800593452270104816891071994368688467268888787820664429400387033301964332108897933154745514363919479402660488331337414794792801586104785610392178152512060669647597335511311389955158965258873944012575074409168276106774242773835969027689551033638128670470472422720647007303906087618066058864692871945094281154887765573224854525775849685221731469676215395209761260027952248664019662743090853107921065629747442475691933053381303689224861743834827477307045447207912820348060161445964874085804673340536708170989060966661548858323409606125029353423920010283856011148734575320957338776050151018579593261491021932874147042371320743393800734420270788508454352868182722484360771257435978151800952672742245186891176782187988528023393496060141562395022596450077969039710176975353861491222315416156294090762198657484945931648436666908542040555128601802969273199324900642059672357348354755730600385700776006074305324493892169343680483795732804943951007671290749125620913040551373123666344676510509357268352399102963424725427054579735887680277141679374858219531885517007975805208089784093366063170681356900452674065874920835603592645201081209220051755605140759367644183703486229925773959555617964587688772236781098586901734009171618827353344061882490017047426254310610819157377802781136487439180031696182766339040227488426537380362841372309554479522750610872385653673285852088864459658367937079838694254056383903276496728999699358630401715444177550791431750907998074356861294894607604530522834967406598593654819719817114226781419827834081919442198135645979842583295890155424758069483736828058207525212550917151589280464306548061684167938150403179360869566198245548721226241935026365417032420320603666353878304956460137646422428485392796183100206142638074465462197407663733929536281602384798114874576205466226059867071286458030262763836636079626997715935150825718640052552491231769040685195300649870840882959577102692719577234627144785725017926729338847574924691079854426950785078275565209053832795658297068627740946108218483209927273457517974774475891787744284070182863023163500643038974382509613612875793093017039380419828941624632465741850220568771344307709757481866074361521819592300412545867880342892593618745501153730943821370534011341393128050707065844606923423332074299017949807520818167795557343000235402934496090862901500795242985683744366974401170192757255268050728176405062539357520937695388382825530043471131653046310294691732105397945109491146811053142609814564798789014469788300716729806018894868582199622622913964056334588434369031147756362353885420204684351123958987962061451560618720935946481204248531152097429255847113256339633263666501988672283748982100111263442510926168853043999944772739931977023794396645337853406439420755526707611936967995324671935276629902155395142924617525010120900648429582739885018006764806615639741038648101276403516448593563692740159277549700231881552104775479821918655504101777781643249752641965229112059881797491417737172148651746981192118269983617043876474186805992317286867766732254161172242023021065549813907504893969675530924374745756882700068504710960160828022051657723945672900677202976097342770720503508159305359807944337493490179798362275516361707842538383034722132762565398506998583324870705543930790975930843773031813434802946051382790242471783786997952420246334194020763351645547641047380364804033453063448524195468212890385095260111308477269094518112225585521982157795465038564801932332790104269942677026535626224948561213316010906751358915314820799089884792269189174101981288490152726082399294600625911035735032746092528086216247822060218994325778354672377417570010121352720164380549104186978072969605329842478571869506015188855337075711162563907649757441125054201874112932953364462621940845059562967981136084730393666910214558533101747836014543438989191441756323669562712727515160930504612414995498988249559533300669683826175195758470552300292324528265301022079092156255705971282929575023792422924462316211785145890342696056059591493327534748237648114579316698760436708251035612413248232837748529456771904197496880402871311561507808509512570915905375995120820879459355184767363767816940132868394786648383142647942019131697097358390883651522067199977348032993868869856147742193200790519357945094605262775162360734693949430324734293590810705298376277040070252536042434714856374479839623718675545287535306316847935887230090622897449928090769924228844225808012692664638743902746992868221444050180333418805093031341187397483825221821654890028606021532129892526336085374054617021181447974669343841607224266557005589058094515840243354880044940232313552578861866141814227530508992582491368617720523079755801790926913213174309049896702043130025842671327125811747404575821081620391182049446083396107581916780045679668805000218251263736354460397159379349804222040379923045967852774237682574376622612830587830029608563077724202160379606222656404867716216059299880254573000557811714319718912054714443678076919638179667607925912635817228595520152154671563693855377649773682467601887757564351372603350431282111139124293039165066237669927014167410290287176146207963205735678739706418410793640486899542341185908405436878278593459924840271178340840105482288358148599263065834290165049250423437552291327947393923384597332950463316478407515603440385694497095958866545203141784064077335602457763639324081802372008247814694385352480384804705774284613178151002063580946928284922520853333445077931079268194071913771251116163349396590345056495488703379134159486658151282914752884756369514628089185414846008194914596462891557983573710693629731559377814703566754334575209206564125575599104382327665653288755071418357803264093389243734986168696842554605227584158106927230115069800671555081956753445292429869977568614896400970878448076294743645474902875669785343551918328367625274431838125257587396661112270509046417725402931558920384666351483830427368856129130414776749621006943727413535641326746437100587143779934305668100164611841610246754237173520487207620180407361120978452925295093323734670921474256426324499677829283351670611957805068777782239529769439356979736044796302534565729427899517930071558561911922128501158087118082015987861485263627244708009805459315234390204581868603801590695627955294750132181007590225145247651009405319811419295613694957675474986522535047538088393104065137077219124955983994628575314869876355648371470351010212149728508079385902818313022272085152519226465222030240545676972497009005022143654879939140984997069462511475125358915159718184388659931758473839917673125317671282696678430473562058710565667970469259113780866375362858232488599436627128777995301715238801728265703508522280663875153015908995571473016108952335033275526831440083146410691225228622216556115768042254390820171014299776413032215415188352644394916546445738407350684043255981499458134029264316501465137364286539572440957883957702572581021349670222307068932463278323543467405918867607219733275081830040210895012338190932838638849235339969565585410500596133445166291546206446988898367156318442965095963082906652051490979174059053237437802565794159117101763397826098477727389103842489777786957018145122498280635557443743696314535730757727796742925742492679776790987112886754241472971338236759639171676151866902448377818479801340877417258413953763204523072962828295160246011064881523318991033156109070554784839174209014052217448838056752538543232396979104611649744169015330928777895224010694686915810887914657318023057490371762552838952941721152887956704582090320871551797313681381172291913299267796903020676430320681645986857988545244287613585718850673370162132731257126232277940313588631598569985088306821654276071739984689725681703465532384174619824785243746403919465155468705589022136565541798498059087519572351831625729548575526476295062155206677581071291889366386141699786300369669697544708294758162194577018811200516919143300133124331625689233980438200952882437727716405500193156391576277803184006754738951863625325592550918476129169177760363342464184469923821600263393511022659438637887563619960947570928550378001229290707472608155207103373680157706627345551684536554929257692179680974350942425875612502144762483623635969933575949418175645125128871215851204637029229416276326908426774146607224606590279947964210486210713298187969856634184582619160754810577298674409817393505828894105493967003985428168171166836232619710224915782469644281861330040726911534199663772889871319557239919009898878212571178048818610672447259866861077174898263493292388470278301869845366188447941199530582716379207723542148589629893256393767149869786196426409129355639531357061718403865385251102891425864495096380869099164385725843087285004233213138034903913565831923985389890784205528789862211829461114947070157768685314759509157838885068558475982034641717569013279305712351574216063698281199848513801359032408085427730368082413813764093297449300509729534188952444501413614109223845140354901749827795498712619061462685537923935396954445456493418038437152650377664622730311299768519742514341797611668241192717918369853876431430334330039471909134738595047513552980068002033414826209657158299990989358498687263696415788175086483408085525423279007074208030408292607342008434156216367487989294220019929100508232424699416438914718759105614488968480115391024013851829479105905832711515902498906563725532898990613311706776198409856409818195278587022245982661864531455638092990407159689043467155406734840618620149249863592110142744294388776961284312236966867794337712308623648279278408149172596393579292914349242761294540957338255284455903112442710347264518999827012942165399389255792337714714896646669971844070801006782416039751257067048102634189285858184482420766227754520763879180082024905240836013009124707771532739494355361674739107104765746627468182602385856594147648656380586634613837171358424191058493719934601824448388027636368153274446801997266491736526854854985413256186248094882824694853765764465010836472701291440673821812483314990940303728884214804987944793788646899886753548342272084494189956720507308920836720492447502900837058739590218575415148852560038030514177429409268361930401734554080865971276671062059023556941637355837144987971513181276931887398028213328819667092408856580521600199881134331148189779573362243778376460851360919950272258602550715379096981829519800471785273745718742457295896205046925315758998020003965788815949229616191745240988718056683066155822500012118287728484924108399036139850639976564765660148359499366554649301179881849252886213990171195361953190020119877090518014163661398258887840766774472801138348684155858797854344225638031461766288410318767058922537363254432283898202378599380434508032839150626060527338594355262470743142100931591544866015662439007331715127296913240065747440234957030299745954748703072961953265298061957442128812427925783648736198357221237191300978541061168578831218158094381778530905855534063935787727758694579140101886813775257285617928888000595943277939079881089068152624687534574469155129862022985855458309768263146716133434623757469361103230177761904708794035409862360704129371541067155266447993759091643583978102109252702153214778504528043589973569332844201548000189103277065200035634982081028878635168927969441205977723995847579577000880989199051491382417268303790020371930163051259991641558712006577206113062719945685209672394133027841641110121710244104308531348714746778250132266488451905156867039447564290625818887325755199876277706059832006346241646127132848032379701365090318801397539100867022530542178141915328939711274246936794881557253559703423947409587463413154768754270713156538476345608408841403974876938267415444653025164757636689624870514450766665655480188342793555966945471278244498596110400663507447908239480725684787935639332866440561915670488860289931297206264872167318947144091086728894168857719321296999858906148652078830077368313766069564849312813094704691436645311709009771821289037146338489893699919801808291465741360999645136915195305692943349441443355793606271463629856543397155776741488675891757764733006928613940549429488344347170936851906718297492796275801452335960951326205430961491687012757855234322169825692022748589687303067907914518557635990223671835031845130818318055538017658724712100331015390293455097203979349335255505240902052807854955992028875125385325647153973490822330131143021752075737260007243562759486746117336648315839520936279051239302909642930922392303190667140887848903678609347982779578608234506270735584251174057627894916179689117167679120814672360118029974928581666291212031913406029880075269611784286593458265383809619283719379077492661594461710836370962651743740144374573343636348998536292355396521098843699018906392850626499386223033451260063203732980606733515183892426904592357462790987923019106591039247465972408406324484338328264471817727381267116263123107215827432758304408593786257760228668328374368237982892640892572778077329600927227273384030723167906205745139252350612208214464873505800074806140475284075970300541370403366802734213162891195643501181278420643469155027521481316814101102501179502956681454147057421757153926363315767381702016154676826583193509808032413553929028589132612921722119744713583819779152957371060843622143248189536635427544274016456937345791571603486621492473796620917565430126442690578800769160209891802693841956907362969580077999804945149311636649251168435579066696659184168455359755110553601903664391910405859916054144447793233789341054570777125701340247941403310479259281921772788743488621953448390743307951764418720563399262817085332170109734940433056050926405319295692317502000254235356080062472217848931712903635944226548457739519460943167741886038343174856026030560701542291193153490896158610917823123742163398275908069292981014898193706778612706712144930644590427607623543211515743673162382180028055294137443867180725541504322457885364953125869053414714680314346362962815027426682921781208245086217783374849002490649890520740594516943027500580809219836588753056677405435964343320831905605951994482824061098659246239138554875605830059371891296351369979863794351847109606861137969986193362417536485217588611194287399982590625620262800864723869487974519792624281669389212871773290090306852789690138259760144619236648202373823016043289739583578387786077563233897885823831627633359090067199593179404399331038768343126101726925621473597712156691956387413187823780587086375723611139058173324729704592997968741512146969308828482993286643108507151218771055344172134960078447745955585580230908892332170224804267939145283863497458719928386748769970100968718623525629106654511138690469214877865623069374025095312560290072230287420967078647587851261414651309478534979096844657262087086212837894471211968699914798710654352462935433217275292336072936582161363416563193317447860255036634547852349188901428473020121381104573490139177850446909983938677488412432638750905108978441988767453011036332029087753232717541795357526855443916580118102901557556203182114947935726297113492001687453847585544829052886702570137426538161794160394277117560963361907731706078607895957330910379384511269817144084651724117300459244472118976722490270171838370929110576377611141501786267068358173827154776509300965143368273755781592591430969030220382336648284287547905665471849347612986696825490646426466543371431337667718561475583394494119061471396411965092460722604276914094193923525277534628954773638004186676842689615090071007308799055319889642308587564988858767744491326227694016716311608843353449910767142433485171546709894634642270807903431843472955796525746829883027484929077179558131847046628573825988299187312051960907551709203719461352740075452614912314524755348848162108976363578364416669824853498027931248072530673645384423509790986566044245082273059245198839079815512846332348130476883809334659555901159732364589144992625754611334288382972649184711577336940869472245961355138321986294090628343344212701077772380786946371125564234374805413690573584804063869725914142476891600274892710870247033036478628118924800559500606400799622880595806567450426935699312609057611153400321735629148443224504344536763884977438505110784318660029262654818545785199667725297291920179912356848195561829741954408348438588729367359924411218125100471887004260803078538669627962188838709626627307350677453825041713087200677539786676021659673354417854691123754978887457384558560395246584431094961322790825032116620965017799967755386827774994450124901293571131335724520570524752911340054461971280812411037834518314367586470391146083597135240325281503592545588621332709222439349461919506012062873696905687263484777089448074939390294630067887651381919777925842809728140829939459404261790411874987706097930085702486217116726821829050400830169030850250751147849506086347763371411877759093263622534104029323947746868142651441724251141555702726998077400923329673298998064453162470848933140138354937206110151686493465388897038260137883980432940225046742933363946956396417965779665446845994790730026486153951026664009552905896828665130315401590031430807074974292343705042011719465210860693493890423924367865812003932082465717722362298176760625391517402011408033731405644107485734030418648922277981104946721974244890793736765291450366352916279792440269295902917697015949132420698610908429180784949744038805871594656899479445855523655457352227092555676281826711567445638498631230384899596295853046811331606781727666843161019878132151881759998812964789841659387594091433545482669674478742674725246448757230092252084165755610291229255071366739500131250401182715966891960095620295922322847506527324070635105359813032869571648786567313588357317849175844300719046508784323048485157804771193486463061784519066930351341179036003535055423669827503668754861610555544070886933327152441568089160355649204032996579753368994496312671947774515717385653697460214122613909699992975337998844467644150347256730317390218918252549282705185497210602978790373586681421136393574130241022033465152688693833870163865256582212144710948823827872180190715094586747271565395639039479713764301127905908653488623570819516958316514607617163745738953652846481145019409908473736585891794299400037858527474429420498718929870582060494450088753432776395260067632090456022990092135316562362201915772195477924231955732071051888450109565961514225057605662265386042499590094007645031232691672286165753810344259545168781033180050305396884000337531396214810516698362146666880849812562572828905430198808836887410039438656666601314069591085152086396328605856037832830517355025197704826094823758687673281647216919189611399552057413790180190355229398163797526160402803305661199972976648282380122809504472439119162055461323538994262468718045705608255920590997260382461640924900726187799454673817062598353135054013473804249710944449147192165437597340610136010008768228540135973180436315183058713981314341207914491238278749649770819388580807792952079198991043390637435785024537706440618208282165026005620689330756040024082767005638456710634065788110259021683807937199946661277954621580772068545192397317219212202172229607123370129419140694797239107097211951312048123324810523792096907611856509066197883724374806730540270249287740426279565770972945701084366854548895692063270711453747584184273427253723909006228401477124687048557352834246438443429668443592174201653105833895989068440164200896988865881672863059422173333141836395118070127670430924684194770481177201755779642316477269994924060817115464486323218431982855532994898238882016662148881123589129762747058930630148324957006421706710130033672512158909695815597292377618646571606138160999115759978737197945396670382308210827842023071167666497585313531766392895532343223007786866847474094678708100340168465676846094837880318695416519564673052939099899096768807304298668581057313579621541682211487288162995466470206257185319452851192594846872550179814231004716292950008106175703031016666017709465203890391298455530587555033910342898840024094344002101144592852986498602060124803387324426263451939290511523384197141139447960765782704331964550573106996123516153244066729016103020564157826620716476938719166996138039002661273462274826260923897850671015692741524081320610608125439288587854457252469755152823977119983098591080674895834546825506853084565299236044470066853692887138453802252606515846799849566251793233752561948068474896237147453685173280323308605425424362035196206491087174366959803721635912512366253855418645439979377170229494801255618491225786100768769145526882952654936039397343695723252773823694493990985032252537294572949162341642229402790026228923615018980543893153997607883017608830374731553061177676636353760019945816237161698915294420775511555745344280756833146605941903150882937019820515267147349807933318858717182620019890598915015260143846296723778102773987053822030011418279493880995643067646434085991997663303409885197430712184764802042855013936551587202413289820441916012897133566767693234722520810882011774825665878689637223527759904981549839852982772784568015972283623596720236639409712953362186751477482018843422723739555264643308505828835229113032415463716269219749650182006010597933005733584947109787878435382280792866543786706273926980475975134692871706198713923813904199341334432212846560713288084272967812502715963552133825533225823953722929872910429100941662935309797883327129963943796948265128116755596624008170101335612360952438570580313227014118027235310531884813192757849637190177510611107550055660616246359285980059563731617425961785665612240316976746300698903605679225637731907126580218780536823196059610112108482403449177433864117513566675075251110448747196390122126842708642426635205715966217718218825906426957725370921534449165088336579854752161600119542262356979471416011632387023525241518936402803341237965436894722888556344158109273453774363289500632588936453789284042893625461511504893286474185467295068757174342961406294617275369686710306211809306372087173117755250613690296463710008025958690304674282513290768546021688399375502740689448589275387116147317153568358236320940765811683629204587837248396352336993657155743949997871683005137958476389636859520596887659421683929420141977274377778246021716274878352534236249092114719245362231759568272501392734055676294599519409489820352122505452280221890524358035179026062200584776094524021548444769362122402804510764398821335288324026704614006356680297100019372297431361599773608099610087611714890730644009464111484630301206562768492071220863757338487144657546095162496114191407034291673522775066464029428589476035436724790496760038077974325221350149237082100975125116017760446378778383200419168830387165611994875607549773392435304967499881425823457502636201708521539853073419173147092172355401789391779486520085920629986538006942030760606473540726646989301028943557204978001614922378009068721326161216258884688084827291249395126573098688282167541480337086794082153878442891078738589325988577015950187422196265858456713088624129095367678527841228965141044496316790637881305167496331883743396996041056513335246467735896640606990382000532409054697356045517212996520443793046544316666703035287358997171928723574154486409468124701234105588800431065125288352889565974854127245387037531092036922890496941640385268829526496377102294208524680501426803634407848536733790883066051924944043599512432114527328800670471568084911514975231538481560207744219433764904936738419133383836375054277319842829166426662640730234102689623663049618007805349176951551850067625857252811475569930812648888588161540523690691188530024195777095367824651200623444413957406386068550410778733432978056796616909461884283674626876461000360242877997990947405641362558369689296858466378655722514872602153432072410576650901407369677985463846251685800220366531428603474448626754512744336977095187487504123301012339764365015738169306627758806702797985893293030497071744440959851663144321577735584211203490832862885557120547864128932826668217993308327241016766958517075837177886105092132116122849079290367251311047421430600904519842591888934353462845988805543815406119907187684480624010802419046485359126569471313480432872906029886589219950098351535113567302606104855211876622887108288978081193845512035098963733138950966439540968187550999736501073388980036840691542850429874218893739628536295453585964769271770840418355513489549759324943281621478364558600050223295989389012737537118115943009542790517551424774285428756154179278491515935053789906096571571899228330994057890485745873336144189363958571218037478665272712299982747892825130399563509924227647522382575820440831193153686896373303757185553682472472532946500272256871879303072914707444176993548992714540654585371197159405404957492150652471144465028804767683659652062209965951596871863291913365216377872912338417184590633477216970064066753935974727993105666007064449151667246400253275702806175108207516539374640863684047384383468866159084893411374281547298697400151701837820600144918575845147804482730176921409777733142128029676350170562213605055431457906607570075304591893540902427159776036573881224803768968231407032361886578337465830741822740014827869786193893200632660835059896018189372203935299882713038154250975064799411576976894193253698495841987685845538305510677615651103079044806870108445920371077186312167715541615034618089178705201990743535121886200682780749562098384480146936744100098651964131334678610977251218937968756752034337942579406877985275897104621485978764347928406242055198979147820047846657283199964115723638364093008150551059194973556849179938460314008841433391258640258297870566799361886239066457063891328797013379639613654006754763470581517648533365319946634433782359604540312011212956820923874965233831399509642914742910926752002864957770059049491237063754159543009343999738828862793238568844979401036319206936772536965915741291628296183838541722025997085845919016748396228916056895865842496194143325540468442304498879344589690797513751209701214647417085663294307618718183533583663231991927211574898042969231597977162977980436499697046264982090356235296967459364158971622551430406253760408757057572928392854389234770939473468127392221730626545743717192177600678150158328401826758323295313008502449255764529370135094230087367035126524962582396925890255915984932163734598805210764900634450417143935136765783832647814349234039727071640153931441746264039368664915465455122141989133191551978752538717297232198965362972337085187621389659595271832104459059207428854317618214340632219014894222453407778248136802226619480456621161597960116774572086012437250544594161451625832195977677944392310211515861814939873964154196733841625598501213634311208255432281221476150639374118409079948512798647361747389973807863118354158814639562989369058100261964497390458825898887593704417417796770187187933919207454166631992483831812183243410106178218842735029343559990944521233789955047501407532831060370912365114486767652272596402863282799326513506821902802332146596411581888143039618947998983440751376343615872059602274270084751265222413359895326725247272582604949540884442237263214304166307599480564275908536762754944206313886609698993193332052899016431196274563977772698300006194270403113421339462485121610552898525610367377261772400966307068838589112632303833110675438640170420182161757950215304593189364765745224356534001706960083361054651347918037500135744905605809742172052284699285747367165985209387276587533387327969659582191635870282415704460615581213550645585125913970973789719403539378072760029964751164427637952416840833764442712385820755288598109405298600333026940289972451951002524953211592730284558092420252010680293928836066813932124279451080687536600692292098033923119261265648965157936149575876054518902291702539405306963542487002088055997362243814146328945922902359660129091428882717211278566982962196514741163445567849084411790374084349790816849781926974252327122731550332281569981565956287827274396178549693426703660763757567604033232257236883195773150807006872517438775291404966173838806850216343895987413023648889208173479360237278664976572469648690993145358939176177681492442831867056720503296403648306850332014666589222950061213614166757736282514524673816239506766056190984410696469881923311368291606635966020636841925429463363632984560644130042284467872101564647551384872575043320786252590558763529464637793383609330066472224052991939906854899471049762785715358494038349302295233377081202730130985029271823026358822253009004549587758205311983377954023026412030816995944217523513302978376509338633298860606459136224628766645373462605131863310847586627953249816462243459237341030019651554795499476036777484583614741290996928641869642572797745322159327641161406151027884831773795361987630141296672556905495320790612002304463043806118689673055762939846131013195995652449637620999821550703784990275805671572293340417656223690077996144309636232199442024132711802477890015454542824690016626010928935874774191053475594883520007921779792075887527705208346709762863379931732684614414232220909395495829238224714541205634552644857372783103382730266258771446223232179802348122639542431580552436016154480872071601149711266011484307148448522865332051210823917073528330594620227821055311756314053634342154582768654667451211875501169262752175116449591541098199036809820203115581336620804820252488459866280881345902876851474857023277061712387041916970366577313501283607259399680013682970782563995034086794828327509409578953424511720234853818914629936386918420118764756268749339526533293399188527080162188713135870066068982476388172597266176219906645103744798758069852843400746656586974512283755378369950112658539576220025778854698769500280267934996222730888326941050551460632049439625214828056025046647992458830343747677905879096158414033537818194069980517599672054944643988508088356763150426944382120995111987051387823744507970401445457411954677971973137973382763910632139239182507762988405647691812169796663174601717918081981530101633530074487197360611223683670242214691764399677723613314598719411235470932988842332653430415854262323504140797795326478709742799159288958553722091266488089707336934425516029322485153595141379867782297492596138992863909935193771943490848052555959488325215686448940173995147954358894571291070561043777596280682841239746628669625125523149978706785336546295986831123630475451497756952299557912091079440439405255913818245268196143823799832604269153066326943562545497992919974372636529783389154666075242255176435548126488554915046358658700604244120445193814475762899652188196401640602576561778938466972595717107038755694898611072988143195704217428466521194748580493144843666223058924012029866163916312190555790089482510114239332183506629451342182021999405378592726800873866860091766372786548572918122329068041220296956903149575489199833809792653036960353564558509956605465649827187064363995539124694656240442412650606360592193851227953693401678768093061087005139860723899511112504124949996429855381995110059160737998692654986041937942690950090817521833194444626603569376468382763220934146291163494246057254110645143585234302476246398923768448113113596724733385962731146939353642772566385429681343442982053029424341615642410668461733602641452103032959208285570397704335462168408628559240175033498441645891245659139579654827212587263837645067361687866030111167192053827317212672196702547308092173083496818801613461621698116368994679366032119824576979582777444365944157295077896197800946958652738102740337960416936420510691720612545043772305546609217587570874188467586672614603133245286120679646784655170125967473469193067780017996536990362859414605279839032847314567648179288417831585348639649778097740435506522613369396365641821859439810818487241642506261899361567773474179644100414387320239404856362673381962135529790523282369367544706756960362911935146707464854008627414924254830802521719090785241676514671840748977928324076816637838017516219204222808759225811068368695413686694841977773642227619693111124885231220892956176543831337200729103942561549228956426083561863866923712222664788839142947487886234534920942586473528321399635831589126923999340514881156019070614044256806050402047032479973640261607687548941245854368383715235856138169691083506568068996517710588099468164465364036029348327005723180784733239219512578785028057533642599467817668699798976354318929284567130120557362217821505958863729154299242008794209508665651826070207688073930526474352644758826926293249707192357465799987112251020214511874760518785328501959838988275533990562136698111548390190361777756572784553283222597768333003829368778557570954701202420785265510465015597084663568286343520350372513243043882328241887851125671528553354582912980712188762568218845300983873956703704109326193098150893737704643553981130392938007072028996919700524847235979216535356562987806101158458094100054408117734162129529717675039312543863120056740754865498184852341093269896102033030159830196090641875524603236201724278480852933240746056267764763845499791879855934497885056149858319853394464511546491075157283227473256898673063128304365833260835623672420789111802719821648693093293516495408958155650991372649987711645688110908610959215715184127196681659886502553776119306480208678052522145697795755066043579348788123258281098531762471613193441622661287413133541738476029082333930915362263528251025296430433387518284752835617200381117930759229402194989705679964682590122402444427953963603320261742647559715228933379008280904515608038023558935739791575455197968094612439709127519399862275125611225060127726461899384295298489204212657418710196463412761705604569221363487022737812009784055486989596882184055850534552258176532968569170617121052890481198751972379253704546358920647295730100407088783645101335480173274947504307682047350750263206252683212890966028038607650588582271971050017573168184274952250544234471790461338565527306199226500953447488551710864354410130394646763541463949183527642476394819049577877719210154768447564839487770077982000011243563198357849149239299352392604437348279026007633899883936719304900173529449353272341674527443856049027647093076059261247069269648969462893792310845957827057738724116552469177025677504557480394473509874167256640930354388041450734319962479515865916092818700261125171938409508247291585520040591510984681528411390301616001609846977012584209216460087353802006835360884739204002307109545603894760277072555501294154753599925526026745662986138471660381044483580155942138671206126617494118614031929778172007975739570659400535279730409989037145724079015586396970285975958052915303555351730112932799982927461322100821907891395362159413156932887707672775950264988629875186749685416454157221778909548680111863062233430702787109068392559351951229254747779061284072398534185295431395084721883314585473199458214065324732922028833295566666342014199791907481212887554408748251952281035592268979221436644165179758332347676275453449234026333278457665133218530994664613342297458303738601909632068812136662469659612567617374437440558001365307463945484815682476039247839326156606028736303280095518007396044645436769570704207965454836184044389490145646120930597260671115940871531238513939914790676902597854396659364173110658624980738943516400208706168687447363253794401949946498675318469311761606255481700681391729484766350125375741824373384702726504061978651667888986725803482796420315039891863287791161034369320376089543546460158661540466038659157549113394686971421724751632329148229631101679167026701741920529504739086047328958694995216699018967577002082179849117340384495679580048178131039330428302334386684742633618376770165593166742520683949637910665549355162214848302837953561659303544447843275149736378173949774585729034367928351473009379137855550038014288774555690410356504119480245284705619936716912416295680938966824023035526530906690363425051097261067363343237277356500928439642728001360340135061335849372915388700001021187980929954342471527093625643717929246505083543470435233014920128286164495217685073475362169230925796968796738437161985284626156187630825735954990016630438670264088682758950999626879551158429807176930008943375288499981345673055019684840577803637996659765471905823037007213253782277797995268395347497909012048965124191472979760479611482527025792696593803509916123312352031076870760103499967846511069946771928138231121695602544653652073185187881727335235895498792478549343312458974901128417175909702044726682331220503383781091758784451947981399077376718748113961848710949120333830839442263458784298921783259088950173631402269172032969693904413969351859257535004696115955518931621064046069791526202232773656611605006066491442030073673597634704175519631008604316904453689661409228419919715760488285104957957129803406755819184352156443184058031595349373541693707026525788761867713531289787626237994443462500576516261804691036138052955336624544757409123401246745715804800322513472137239799359015527928968442845802570116388666471378708062860232217073184663394879834588184105463148938995362594437596401795124232600259274945559011053002087625198380138046713324737075895778491029526621072122533470977369524488181075689057653140351069785914272239934816149430357956879897605897881185886065700758374875485477892214077922999856970504791802691211569099825085991988873507428049939476667332713285981464274692048542188170836366358166157583743539478634386337147760202292169319538444447449628219418631694956703764169374546871850738153732117056578731937409428079278304107384996858455396035814621001824059702446133692710507704706975955692780305398261506522396124545435181208027400520703725368335917350177612226284734259395177967121385708568743433501728397003951677230531899948144323236528060426531948804620719237216528375456975485842440923032574142437018178421493609843703067975624916158899227856180723015617898423869096967103933237270265881697601304719356879650105831308535430590609253478256500592708358027505637876431102925397383563792827423889674243711275182121426187289338081285537471511041305510883382593293737148425124895705278455290338763843298418405958260251995099563500608396596273476884770955070592827392034374305644738794963607493290305192298956076260141522779135373801890712073876170199081459465480801876610882474181779101796163832611622387052240225771401208551224231122359862635907468591793785179645413888923784144235655283009195434572629119239152340625353781909386631577018059743937442149236869205095150965207505086495720931120339534928195041165619795728433691368891592804534220345085448228159556384503914247229804295515928295848758319368439393262543054085340794478130194687265848308483597456107912872161768283879022084436089807052604425259908444777599981814121788083042162931879435385937306092753995590157610375889872297093609913178770402736373718443036853577713664640199026833176864307476626425866987729181828121855181332959515151352602347341588631373296042652791228764126421998544131794776775848499586555083320543925396045052506040161824028260413716424953682508325310357815704000559454196736137232139839803755675633889016566832609304526789025225532578050855725425383743549796233925686431291737624177668409871522416548469346428375503121574495814556103220628823230400721612841402988285270492013716881686555365564901794888027547901972166336581166908059024321622694608257261014798196088414378907954844069439430073679956710752719520169900854513604951206534591131228252828261263650157225231346940056136736440906457622596813141631660381024777548662135220884865611038514011812408117530997731700153467719212386605759653125214187507362224675376859504786584151657955024473219079010582815612523735851665953732841295829826415822146672848134564395935710874025903852794537938091858200376008705972830708717836032587834437739750056102091273280549792250750071971127594697227648953809224612495362245768588064494963332379267729007115671245465444281658936138427935006577336748785273853712345017681285121303363609896680091261908146818451594520877585466618710061443951314983209930408837912014858222787478350358082227318624985168452097876129309328069554954719413548480361931620091997470351204356744242855678010607785401000596999349383211303483009406229869558370971103116530836725118136155027885295253009508379588959852287989491814155297002012045263822665766552111107221295578022911365938381939344469510807579077540518557468214968588544028636354877151872374061065004611187254068339221977488391566341843586393216631405394886155547415905169106652895731905528039348012585757901987763429492173104176613253331426525068529356614574896796212050674819491199372582512512841688828814006845084964151577486351936640233091102249838679509064728686958097652162352623856244235125068833235428981100852211681886887244991004457139292300654594600733734789890461483892643761095254277479035798303488347275160681044718882923417407607975993109507424516245836951376467343910070359789248430413369525339911677381532831169851228769548902498395422216584654397363318950780870094780584462393364393220361383218845371776250660046773587289445927181886347397764122720393136518509510291234739252363985452894566815452012631662616782115788829036053325747322179666389917850072429317919301083824363274394496750502348155515487054653648040803841292802920345332185069506982431419223192052911034337397952618173434264501811869134470300116157124003029007033077733966322464724149504364037689623674963380001886354341021193039183152251492260129342416565593921323585458398635230533095055592894977339270592564242100921653217053847185547902797622394726414507449195250671258494697656583455227425121527974796702329372717802835294888974143700505777176382894858787786942450913877916139205851514970382024844024296307868091938332220142374816825278279161855549571339969843481692515024858575072678247621384875059645057000854072619039823396236266365693918690291291013685846380917674769855928989478415325893823313558919355709467675780836048179871588991205288712492027134526899357789470270477852463275454144115000214792365364958188909147621271320867440898014743307154679909418165853498648957173591750334515637290794095277246243940014902067892528050728630493765874444048405549698384079172134304389859521964567900019527862787821665921222621463723624511006453560627401397601158718165043533160190277571846717127230552086517748250692290790921995768697985901898617393804950909935419635813338377061444379615227667764665973012153626205299314080746377501870692888301600346996934300633625227824652597552608309091696336521931155241159975291142691589174545060927918465173480608966198798106732074127752407935735598832811615821206007960506700950774167819217366198982719913065721307004812728309287696071538829184175177158529487152722744508948334127518304370415756880287575095722058164467702647020027032076416835521092141568309348165739806396678287835276950089438993742197479212428695173653510771112868694456746669894345789655871776251913171432393096284434939698844787500157298693802861746868038193189100071944788901214444582520656490855134751213360119735755903662900505239570909172204376872121490228219125729871777706896403857972428045362114419736651204343285253797502031556130602593937218565962720182819283059090077058120911346108090562594903456973622524902220746643398057514354589060314211273890256368934149338661257588241507330841662804685834360795197968235514121007351578439325078474832714843739588715069251927100041658292724156351739515896029654200360009605294990655721704624796490936484331004149977600800845051798478349809364918746116107812986688379354154849603480587507889122353252456632989468810420346164764318543749531448593089889109718605471348152762173617148747209170601321118969342851548373460016091623620065473040259371880323734287288048920176308783852129648457800790876373346801472227365146511050445554279010001708726273191814322623820899726489820354090829338342448920140508693552908794469727574756987164063802000316933339557303094535273325867942513028354010128410876036138868884659528156918296277923515806084127303179316748865002307605064088386489250356660395673741620563661884311697434332440386084311240014016935081784843311339657666366340399672434808173134638804060857629831787176660795832071670451225121834408084012923870363861634938741165596539330227517486434929326252646355458944198669156689851278226712686941037679277049156899166819391879550532973139274963511526549703045306033895586400363440976674827189967060049680819606271889687235990043101054989793787669100456672086195276444420543416421383064460633001536292290832560808218183311647957418383932566158566844660054622724503327100782090968072004710835579281801056968675600097953817490078612725899705645880818608718859678083226057369390978500649387594732877302513542486291804257519073863640679756281318212569225428455210423815783758007632109857906057082166939539879535560307239268231683823574980126493588802108205681265571330366850259441504493963808426539955449250373189162412308363716453396798768219434430038304508837698117919088614625151602896587608867777201947617334203842599564492013063760038399784359165880879687874297002874474289463406401149580803364785980233958068489857914752971960778974796454295267377324590656275594242548889096594361079161156205994567511874171481115208642154560766488012703620355109162814921600030681291451769169271312544752323430884688459846267585669834936804900697577059987280976747414738901837718313184663469598877268006581835734019642656251564685492901698498310660834979840582352119128300286194602177339184761860857640003861403057754319409415831771555128097783437039106664652101149027879729931613261315090854524330991677442891455835793174824053725026874025821673029102375449851946741084607046133692061681845147610008042151149210222556719360761433392141757028001495696741713195746704582175555640915737301615259553781907014198737556699066271328191868522260895084122098534340235302076513899311887244819706081500666736136115248573937842984899152810514970065991876186336531920239250619096073307017463362045508111157669311267259956801925726351185502987042710024894573511799967418996638432753512600699584852285239849774554434471024772512285690325893923390011865207687282649518013907136483167191005814373805927553191916636860424202595609377272372324967450829062085451905232723119964731622203059539099927388404507267687952079663780093374830734868978225714694119773021347986030901655432456590755486895657436626949820233930066400433125089036365261395109746966111050289522526539702888481952984008565821066142065393353530443820466731527270112753406753235734380775999451373697110815580699169013915272340182327444777931267369626931212712366812773095959506669993112197684518341048045748153007277171580068704748529627667574949410317222541931323569312320507017689585890705583562057679603431766154167380932030416207903354212982965460614101796944688417139139989974550342326411419813360825824323693364601476128358909307121383386969639532275967581184678518383028722684098546592706646312204755255304174234478959224789568510895967856615894150970685120697299372430835084639761499138344221421851016684857312901092035185905358170464550541049694323363137580051681826858183435211862931006165250379426406348685803961326416966602877487901716767343810984192222978814848203458196525639855982902673832192634696826180301080959398606730332900158939747927966570637465532475454394349541177937135740940479083350108499085066645062273403609128505913805122086242625239019208033406680971593888007554671509245184586809922244573457799687900005200761089049923736031150475335333579624932932367239896190380531567433241063279428291608752359414692056574614862417581926724597243790470578631400982070740125030993995298833430726986367539027154198645058382443947610731308732730021377394090124012905281020132794314462320063699009675573102854837760403727230949301771509300276170549011731133436212025802268441121383232606640955703360945137707585407362164741260724127763972461202552799496351110564400785661321673883417502202506619533904990821595123520101609860752621020254398039065505497600271909678093722792979702365260743554800948929308199487407894090351902742105968273524408711977138370300178684129836949301293086520794387570308901019230823462674261138803275102208158423043349804836633382610884140545260312731500955322444028568170689764132595937157504245677283901990884893044072066915354354233760664582641550853422729017616657426827625907273371773596281882465167446432643333561855775853908506284508680416597871235116315395140195851898219235805284680003145659987455636856454073784331476841475543816790330588314904492095777309543212118271934054863572290076308407807255290346394645472147989203303802544049153329038573198864180097809519009160615829446192817702047496655478583528607080134526350246631624783579581815340580999426437204288845651427090129566687473038116080219780388109643853542525754730779333483083955538351887759840979292573901726814230977398141489941962436354196967282784508346264435726204034979994519152517233160681622365362020729692612880037248816966422707461490282980713765906203061258863249141420804975855648851050982547363190738675105648520455327323301729694245187348422133044873882353852385436085336643427709092359907248184361587902075583584949778810973947643915665734815427722729446194970665797746943792594214685989009989389246965469710116942229950754362411609752111587345986442685607862025865732916888365786087799959679959228353409281295625277308021268095238084904846749968243380765789630827851615341947922040986957423568797779914696446647010871064840500395511110090603844586308288787767016606937818622622623865044656990268823106421399556398592152165054686392262349269393491937532577231547954834293824411118845982665602098036843176529743520873140116508169590109795490518113293049088110089162801509108900477918310328595152816250066827494270256963198499813992697126663083101657194881115987719224051578231662901176253302073639041065511192403472395227093567290218086161471154420470741957378182726180987932043779408862116693836485600731634190173725490056615918177018702140842047551895904575482955095541976640703397288562355828269861215230964740693624429561959480062570213441511564133655738375225655212381404376815282450277852035185765681073468250786593667201596031854918662465004868091785215038495381195063988027286423015816277390857062519852719162161045791358124462085380826359034942568254851715582548621484571725717017370769272167095515804200215920225178591052030553659775059475300269068488963404929194640097349622695854847059249940676096274538486719265144848515792783140186917914961272192008913527177692834539165909970031915660702002437946385873337867766135264618023720104113797147705317647070030730061604739652268982425228341567073871947609427202064374319547589814601224731763275848488603029168732657461227755802462471448645690691043369411550017314644687067531278201686200000210059107320465457068376931639460613025921142322157919731429402503328142849181964326716208202296976742745006775145309814697257050637348526441989110619149509151085994300201726510030889409044032972954284571890406227012752329698771376885236723969603330562392140198049075146721006961292626812632720640739153981719890687710214072824160460168998609613816608025520602883465164128945792143152056846041362786715464714514109527624501375868250052318717092272767447770173047513925791962066275469560337879858518030581463723976979035249242366208508905857481880964866065499605443682348660003839087591573452216688798031004684080230272008469879703541486227148959407284428275500734732303719459541110344441706417620166029453090700579203762129962312115776523300077953746435042718275854145571672039704106309375714518970257120851609047254438949578809824441530075670640081626348728990360450698900799903510319018065940078572908543167128118647459565600693093657178359133481491776614679071811357573200184200620450375604006049588443705257760760049089749140712610773591615686677272644483827740215649288750824360115231550206708140473059805173177399204015523173890666969706569631164728775052386825771568878417443718796188044293728991701266775330515995341763645977673110234735045051104931178745911924860590855915695486243316276765415280083219291014545681710623471008991776426839309202652283623919253405257736609132781819303854866861787852063341996135868346854626410097908294702367472920953404423344584052726141680796698020187552345053178801503381742210839957365756568526158445965888382057456922000546134896199277624124365099284477058379692860161513462421787647374716421329602064698688219752969707385676283984221425036573958153936253825900142433971960661535966432344850267005203285360757770333404296081667746589265934340875197919800821055953513878340318323943914983332293392937506091027561352860053754138961471409467804759129571676347009915242770591676986331508871270651165649949381046863289795852160223206961989187228328934614607280679776765351204085110306316430312125913340892997573670501442332595573383153003350514332774728157707780960319642907632122360873679897461642796623021644751718248941072791204549376294407940586429207604806296727387716527044305564252866906303687297397479625700563690542076556746946227736182127435983213741556952210140449884609114833634055324214521998302451922984605843459496355310394812623390891815842462795332489765329479882762483798624645183446588958559901578742968907023246403212604034113377961751208485942893312413103686049100054092431236083575407646315528159337157453151828339367176199273387820444064754132071940475460264965505823116803987085203398975404899218900133346853178507531579114657645881213722787229645421554354705916653801697639066488418776360591692731909855342235049754655103127462859696256387301703182916012144254819347679027771817446432147560044369443279947683220100380093645245325861715882569297124112309072044481396570797186656564767696346255135415377865320426565316949632913763525815147127262443512706751411013705871250368446988448606801627836496020232176285724861749928284298807769352958340668260297875321446790635422769443401574559948158621173408966072453016720895349907070169902173815417751581329757250396056637224334798766790128291148935688777712304747987681386621915625948402095207409781028159633411149147603877104180525067606962624056235581296992160638934904462528701207034668530280949507884753205328284198205663179884640647155743180885160127501808253088581506832134096292792187230850862839136554007241350817589816736019043462072333371515587034229150503199401758892261358743746871675957281007811919304046453779864436010966170826361786097683888824985257384042112640047635891022218303733263214278224447032426317454995789841706704233078307294792152955194361250304543040830120815533037980660913823096938598555299583423399639390725105892047124568805944431780568638651833735447251441434759308396872773894173940591767201776034418253051814824072353724977933693114556780516976409096943359952033972535950960746716299941886682851698903372831946345188447073150100555020247708471306050414415418233697938037902247767726021333852870419413245794081118999393608750375226550494357028207449781499096853049291827785969227978294700740714022628239145164105409618886044273050218154285059086343672628588646780544788233257551835955489126366245004095645983510648021209002796315297746146220270566173267129401039462295078120655271834884092341072756585540912485650227736897672038982483128886820082690431318308491893093057123322729206593619728226557533453572787871492368513150003206766724175220655057948406047063696228293171605972035491370724040707697479325323730754850214864642521168590805389948680364035450098106432986057281276083968772386227468903579433285826693280568514168588666249453156283508997047606545599143639990236258287464078111653642394759209154446916118449859049158214085525919910417727843726193439650828037228211390508390300023031321228611912929515991481264247652674585236650442311506211300802606089535165772289862680134471844322846106445603003483793058029384532923708701614087948306865127579096902759447300476498134025139426810052019882428657182714453678299997419222742418837629613492233371943186522560198817568898737801417461504350699129985332815406764559734768958473802544151516876059368198864862649321706971843112776626341733311573132371390740865021617642287820512997170484789442454264774096459824458421260184284558121270503375890024340435092443973101775791210728371473793685837875787191345562393053995530192515453671669120458611278338027596448274210292644042398301219085956624062998015759042305756979940326988322111705985158105573491976401647389036591880106056424649347301869085159140326720170091281804971929467105158352729807249493668724481266930884868026290520891569502040536944137098225603962083485339005205192640499477746078780628139322582186355738463464833820422654323457396627947842499027773860839524744420409459116755840597052842724477801665546284758782579748988510835735899876919466702679370493177325643218111480908091094466660448545212440636159300722428558658267533752545285826353603853520953061407213526826064075422950614512396310516658292114486175935679122330657642609554634596038045313853752553379572733383978066909497352387900193608690560907617026481287802567039361060232402638096568425209490114599816537932319620313590099578519725666841123825271003842957301960310079018450869366402644900637568533171821170222530018279748490644649848867157106112908133142963154672647924066087984958431424869353806939242943842256739129072689107172713746985912585678811461686565963448464229867220439489391407875568605625359490894271115831652104633609106876186416307849284216761964511837536215753775480326189593927908659497216448555320726811292779012690768645260887545071752401661161765180339348363545735595639280497714287447696030711570919179941285799887013618043211960621231697978548906604849946564601960915608345372804149631386108287424771173712541664965624188558160013345965385752259208238031987527798830814897532278497031621061604684487162822967759313921157460154100067958419572084835956282562990726987197084109379603682058630604299619922005369174333259821784177459167385636327012810715284867438647585348196721131135029671503396946076318834357004857482071381351970052838643929684093181950323239954757879898071403947670965448738753511778336035952925989558021272256080823711763635910290557945251842164484024547398862198367656145023889770028498208500454904925866630066961752391392487172112216666844078256478515221607558259319957431957435002230710722203393568719799899071884003546106391826906397794825264939667947007152030802074749796244675340603870467418470937400891532181276390360111181491094560273762086799088807372296121629369921568590347177768417374242006282854731998368403531623012150474265468889380029148114280354567667756991439730572547759604851273903426413458112430451368186917477306820385232183623439094845684126396461649662337346664161287370101356573595394618870866596033295347760650315146252051561118200335515516532361768061020133186302196522507242709955854036977724706640225757361884789052538451362602116464224950053622176058463839598913375590721031641120036284239261536045329641330082937537798863319200223199153225779724440621822948171656773240726428400682860857971064515039569405115092864815072144774067240445768735311767637942384571919883570776883470072867416936245983539297180350554111253789870596003119715514959234027366998127610568161036034151771041922780891330700332410318004098011934082717017131098581089325252207242398418802846800374815535210845956461580163296944665673257800468412929497763168536645778418556261128229232016668278929270860620193506165695048041298062445475007227981521007058754522539428443293866694547029357722898441455344004779699630775153259818894835928707256909454822143189583751765061742860109563131854332848288232719069286710330262620743500254760359999018304116871400042763207952468017264686873058271976078251473400360824445616558857759842615220836422617883443961778639445664994106163180207171632850503160728465985257628888823503978935643461446662836983102872500702336314269832521668424121067805281451717537029953317103251425381010437258772985256998347692797088076342883841901934771462219850155084445879077070659436554240522030588089944191438568725456345205494988983255971285748048305964815132754165567201048640036519339081909997155105596779983816807385728534310193546058013989833341872413700510715733066729766090902591054556111925784999561185610087755481364124694787589132178857106088804794157831585684111944205462900647337526977896700757375507460940358263966617500583555179697717659400689774837503277721618038363150463485054287440946515803092392047051188905013586404272628741328506923511657206920564650258939640088313329730632735080064533124479545247420552118084485555849961235664637411208080472008098897071608743285750113334784697152407029496242028524429387078421873119807171522378390954034943786646877302723326690458626559966377648386212000532987871355473331139919383897355244028226339187003662145242269592474558614256340218255764552812810169164686411755406185905575289904058922476343828954066282773648173410210542092506483592891121996465884320202800927843240630444953657231662497802489946711354808103261106153839002116760635232813067346774285925175555558741706284843182595155625401291714791016188495213281145873636968942129545094704159210044806142155912297174536788073580966650496565991948789960545762062061453381590205349511720858103025984032075101858071806045049524971520237033131171585661014912826414357964795401176084792582502903113901180675005463219061009498998321946647650237495818832193403820127516253616542821019154246984213749273685610358550456645728263197147763673025976310544685285677574782641298232633008019695809357418584242713855393686461247152752971782609423377408240149920384763448229536217641382066238873798405862203844790485940153689133256513138197632537583261991822418505276784631704152131415892426017049116161790053647300449036775497420430957414950152421308307123077435018760547826975559831988118330360601348956992591916209003389972049044585757575276467307060396925875135134812205924714995558392439308210444902953560725679740865061113936962902137657571209203374489285013337969442224228591887425993992171125575510526182508051072510628938399020627964050324295056571531440286842419918767007698338916941724820342376223066038806635208710609228367738880519568656966266134409043991979497408541021138115199765414937251961953420019050263495957354307978275258879531230037671219011953878476548582607813898535261882209218915433914471117948425442189895717848788275593911948251829007970299177852330946617400379332129168359296855498663711656339350952092524281211213952994430767179925253543629484578137968810958765091067588661346826370229800838036362383837398013255784255310691556640014013011616438046496274496730248654213666632966592799198730567875785467731758527411321457863961653937074729214501729146945797127444698323899654482354575326092457235427493720857309199803376289131637284645916275400233215236596841079981802587676110941111001816194236639404439658829087690952769370727890994297353137938010583538330921837160324851951662008296555186269202294139233034632887547078319803863817920752063330778058578671903404881267652058072606792569409799909429055946486503447879976677465307478946839258945674974913648780291049975992326645572800733847836929276068889218765304498562189349001373354319154372703582982464897452457994221092558956756408457887580753541289687047914313174490197986964525757106172841051882140085192443251461620457044599924916626972804052994450965388422010145000569907450787621967420385574155441800677529645580046768019579421060548028848465876537840316580207528175254978363278654921851188912898045840837825522342614144337095464476553740538837642285440446234609376819069913562423358781228373434083616040777437790150953130655097717786403119354776659413998156112743838985714012453744476810448036675737372024875461993415572126012899131276536433475626331318201964822977185932108226601207091873985152959141104033566684567235953420594259814216203836200137068097566938490640933912102170071238910710073663234905165057002398035898531483629779208874529378515405448482125916759495943681684721498331094825502012587344652086112745457654053954803691754326573165631717157308262356893045558031606016767001481762624824831686101007954374107831604428085504549155173899424693173449742945029544881903082180790723828297125952799404516519003532902712458921555113897843801980274033543100320768526984797334021671222277069132387349501104195070147351044151080192671364383109030352024647586744341655059998359068642561832711424972433571224700800654410217371146482573461308324087017195863404159428014609916681599299017399637797526780637895989095203674494610924554928500635983975392873322470286971594704999214149773166811544192243513583732383914876250510705303665683529521671286540165320540149295714040500770519756840573254215634910068254453541380321126209246185136864017898568482736443071701452346217069568267552134744342547688083891878557686347477276573382326340913585879329234042065668751034624921043632510525371862198177207759168505990513783981474105602160834653857734385535763925858681845989039858023386341224357132634107988947069662447323879492379868376275941159640143131625275108464221183926536119717137092787083790566363973862512659395632227883857584776005791920704219455639443526786358191482745842924346130023698369868099880387736452835066804809735149968223726937797022796896535836663497069609843071133126017340242549473636081043092889811282122106447445958486795930002679448615245652539339589271635860380575286271254836898781810195498637672320908437943838729656154504151944868325688732023464215076743501231391815715471920250997879323696392988236286571641848888653669288739399236042473924841908345998124199223533846817081000275908147249922422801778491515931385255059876570387940854709276048609475521474104492036088301418350898447701221715332402976402646418025122211813679049332159020991695393232109484518011246633935917621187773669541002476396397501242076819403896941984641417777026073229980498199674730476384081766612768348260638476658694610138780274935638228508015564626470967000913069765646803589844286427208632256725782115485743159912145800077984760602323545700280315793380462821982578314584157975036578932473872785395328996650543360157142716337408389601407961210755885153504942467055211356207972693509356986193021634422089835480521119316275615457370705122524152357224260661311712919987041151303314227888677943698710795280239692618333047213640733985066804617013136343401386273908135259472695079723968809420940911062663157327664459250489970102201980626057478743405920520118576678854643505990198153062477955715702526233924348210417469714960154928752523423035707458153608643195891736229728426894712583829180619178864365911484811336530900711404865851491758449750174125190908431838064907777457393597749484103473951368677659851356836157651474419703802285398417380556657663427858193608564823805806452439102671120652414300236959872108549187024206397239616370692265039533835461957259920108222847522327505749113400863921118160266499807052754504626972011491929080658041737209726258088832807327019204120533053247065050069481788002354165461360246700510362447464956979829773231778636324849257893591566875695752360930177348174835712427960086665884315322155049335600186149222998580291303425906316028116948711427070805560784516024624935824938819053264046142794127870657174751200177078601421287382059080192468293109126219271763932065135205858278719440386760170343022544270732429927269183458829485351285237293881902430332669163551551994490587985209859193903608485962033703303332020729554796276782731637693239461886982930656783806658812913074884760478587473219541792836544625112892841855662752947449831460676471205799160293216709683932179764181850696805422946745527405138723443193236728831793547614797388756744570186879718533373664784210668431185190756525040741866454346731329822434043226211534876218929090020366439604094695219635384727058516301883475839387947012781689974768821658897992265597070484391152617636351671199632890522952716968518992097314010608276007864388080717280613138387574392826149644378051730281915177714585071430761595948627733316364072350842140720268206796742735039072847291690186329143913374577111502813468698024732990551340061572045191433309482403752571645191272428881673344460232458315798044431324575769568838717301460276705674272026830853280498515453327512543745557876606885919091342279797761000278398243698566856817636678255157083015872311621897986427634627075283949761736707218205088673776987878084854802414730051848146098481794315171914124541540665008904539555995509531597598263902098698937666762679951247435542225726739812137053490661051231840841623823013244487771694592940108470887387551716664713474450616882171612633114152655671071797111856569119221515709323335347240749766078977152377846930164591078670594058196426747129313499331032708968017797114308107518993179424810048183704497407422505520499291531811769153843706022322447972904952796143419827242201538594134486586466760758765017942288600381656376296196569610169228806975113778078319095293716031160703481089539241671824967307945613054162856270658008168579864222006981404125105975069723320944569330441260818160143282833688179068301998291459000640388011262448173415559579623723196730143270886941310436027007246118924747673993359793820787338340063295634493300590705046923510693415557926323136788299144477103960228624329086980744624539992556058614216980403895221666374160275820788746577998331887999954041844265417610664933038964512445261644770952317767033440918768280801923795965727831991296080618428965149298225095081195025982974692149948155075274865011261099481122490243387008050364284094046795747755695321922515290674321915800099845021988543177763310593209733213871010946250914023569673952717177991685006697502713727884652979927258096658010947200367655975635688527724594282306700586297956046653372657143899892366164158042904394838182793880058674779718085467188930319034995203679771432797242980318025631646184061844775938791645018774582977589898006574919302407214368328497297800755766994431406813860112349211968962790110243694632604456320099719191382911827065152943464477013563147720875772016672285897109571802851420423340925456037343510461272445991309225306476892996907649360030091369655752965830560604256472536305408196067168763740883009359085926281725879661217137687828473161222896239314681437321115339591615008862159932133391240708161723457443727072112358559339948107931031265212629457776266620228497663680186524087604401953203409596498879797336971786437331221987197958333528940571070909516144041155838590481057710510518273020422687100924675773942719197063942942157905637421562453031995435186505433252622136156069797653313369797137530267845342646843147030697266378877665552501107328924521663265115522833938729965530561211069007276107604917819859225755705029260818526063137113196763202705580481846312733446251882102729188656757872209121141451196958322706777854426237570249864673751813227611746079547758060632923170149143415329969975140350885511436733103295931263107573691125892956987045417111572418982665743457819896860776784568921081863001453267367340823192768916056099705023866048164855887313009843679224456787431883409594860979556207895644710512618026246013667148337453968911783669983159236042384043340839847294099222494045338320623179439535960134995786290345618333419788031062280076403768790959498860286569084145380467859894170685866253167305992722396267491508638852066133863381260276253707682189824189554444135545957765723397592781968160106456385177014272026928893636339140379794731744293618576862020240122728074593881504330390471055194765218701737642369589194894501106641150050918874532803312290075814748223773728414021405390687482455370697908628194402081616099957387392572804772364999930254340455962131004068086967402241589796681860141361530655887258486279165263479724925650625399779169234986510401286383839242863672068307251008879006323961601506788814056422425440475443183373157360380660428913436655123307711768121064970043585314641681935229417110872086031804720818650520835359373033009230868493350006240946193296712421381221287139765913177482753493973139889226162576862700025897681812574304172257263089676152844529590692334402165401394959203277204707922259356927623571280275144216608191156318470522091836596995863192380885726618757197204433184404241221008108816821551108427407936242478928056128387354648598483196329734196457174319522041070304896491543598561939070233404350014787174615908940131488933768198280951262017570545189494583565499131583019131848097290340498078027513134193358050833541044864361929740583449617079605095789251011723200246935052802763504103541881979420930049488573458118448282619538394798262567168660485350538122186223372277310962305166015324399394144717199984213797515154581201587758363554045513890289665696965276956495372498770843906640024013933168575458203748254470237235927580001983092424348273160264788996853447879557711509842763909680166913680083835780817395757043929718223917105161222658153922881653751915845526197807948084411437028651787649587358564880259492816858840525865197460585329966765468765195826065302586549906827710524657569691585647665759777708538344684817890870254987961797692433869673492949556772975938907980407475783385283422363021800574732915479609891065057379563710061157877556678368564480126103497473342237232561709245193223381061435720007138369449099302569903800840903477853261099238412535124574861635348007629470034336743364992493260774057029233782816945861524123038253277764883597088553492751486013177628388393509641668185256527077374522590834931378731172144359555773717353450985803499322695979325234326058687557901266981943026722562352009915287455324618087381908676201616132053536006144106491265625107315453853992809456999605388464952370814119749206750765415925628055776277373101470205947247592302448538383299513382450488942919357238033019409822668179553638980170325106416861355370594878416335032582694852409052926689587637155596407570169441311997821559554426806928985618868106454402733823044675084200812357961819109450869720203067295706045237936109837306242085877121367059994465652981210068032479707097445074002553483914365448083842968232974701940737452565800865285789011139064777871392109430603714313424586103118094620164915464228465867095036795888224748360782355458143794950332588343155571147466377715217728162840566476023964603471486450835904848754170153160999582882241574504349401137821216273754352352312305556705070874388761557012819440248556294307426637794571199822609505773637554359615016604142633451290709081947642595913905168588761569553176928000175453766878112324104214017676051052077831740619144623376868682870918959486643252955661949268456631531034318692996413803582415213554770123876998955457700138553146029907553165912221027093068627819661383213544702168569000937004806990715580301585874840045130093841430320193074516609767685629456623293090366386008806123532469152884374502199678515560820526281379468388988969018192165549046328420269369314668037530967238391310999299714588914004751417212779651902942048982323845569045692663123093825421365810966309049918571468469279448553743885289252035445950390844018969252634944292928142452552005146960323505564764058145934138715645860392657536602855563376429079543383489334615984417637181366525175836562533749071270822991396983991018913302200950742131461277903489036743063537249056024443431816498136857866219957790149657626784964732754720615634632056007914666269214778016116758144334498619139709581867365720935954910401462412677096553162430231755012059211441061964292507492354800613353873380908010712287327806687143024216846276568536777888608266633764165021494050630712386356307781286737508067267988620085717122398916636952594404904671498333205850558484250644077116773281594731760395993995775048593638309878863860384612494276402675664111543729721046745763229739366702721832493796475178299732597574324400107890547736570363979319725548365680824490064493687569996958977502236613344642793746571765518301387301759390111273702448895547823216202863537695801264534087310681795312047731296940885267486300718729241350977185188725486296547307274869135445426271729317697933579990674801785139053956196316719971422137739902099024296401351692288786960672498342007581547147491306773224981397761871934307946306896581775167570946649353792665666750958536148548710546826272057616665698157740263500055404621869298571566891580160827144175668871569221200148311471764570421664120871611558324296968624556875953986795104860480592309738436847295872013145338914048630284158124359524668307138133539043547681640780839590309501498388588443143155831070826268080498045598157028206232046427976955420637769374970424094256491474818881428481361901747510420727521174429991349252702882113067509538849231930255741202119302979997694912968683975281027537896379618781230964265959487978502741435782881486854411078869510505003335154629918481307235341703343957524444498114705308171370760357077616823298625248982426948584669633357243859388209404840245181615374046546350581836304754504945176095309073364293299361580226810198044889665366579796139677550808530160243801870176544336644501640566733122148426437332251311606735130778315355266047332869301154502465569334494312389748262023709529739795355797041486305651787069464542999792612547568288613067055021454857736464116824131925992610827177815464591247499134990104996977292786184178388360840290109800650467893041216013014552984419464764579988164226841806586488286448230301972981365881876736856530233272246386326230642470475678435096585392053216780933669740673229648228259172444914509304201057478223890124263142440451827256620371227547505919652504992779835437224711778631933116774400202419087346557267093139357405947825733018233993900225380211478228121844242663933185152639363674382954504499588154839904383660696289471885735917739308263482960829738929734897988410838870765581655629174076167414975799084549379094863156148368027850154555676665366613919407777330822334319484187379349665220569311476231474392756005217291504131765389223589564968704053985917194524774298462396263062034476556141099339412408809960067538004126000944221721430020587691752392818480258810756510709686952627482866503650124539222907338710455801413266478476866052772932626903289599460145078183728986260554063045080301469440340741451538200989602663627892650973174571026912674251008747484832209806931110073103559326550982154878857983170231301732663595579495190179497042455738505284417166390256240820254766678834946959445939745607006467521046790855147574775709155628307555266784809670007550518300739397311196844111676540257929279641066699177649050819866344057096180279009347738511765015800917957409283815471755999102303219133932303630336259287993754939548336684992880537908971551163638501742509116495907030436709895090059837398442264302166506283751806371164545041333076822242779366466985971490653092294898075744543887862224658407665769055619156291013179108121696856395023674877206644809239818532321953489811510638301851401599486501105140239747828473080405827730374481965260017495049476603115968981837668275017310927851233067496766247798562503822992141364732976876068875766866971649148377979634481076396441822133253248716326995883020637317497686679455326877526045136479975843186520422769586790888103835174823748572742282605717119885564512638777566807791327122316417568466648043495025383539645082176820111592251249343794946490359406158551321762511972341827736296371857824336055242862252180178035315178125854149720558483164202111861075764273494947270405527065881765628716110901511469029605414559379964851591909539555961662353989400736939796665582666578523037629700761442284913146799677746258006028412693400080313036351009007074912158058389562440159705499587592709679151044987406466495306731436129324187650447183115051117272206442440637372050994786335304354573398282450934103866965060198554000137414370841941155939648420795997980592184095247890065303358761006471213206092665339799286438305050123718267314135140782889953918326275941378872671967747368902312855113514027135785604074806676321556869955463460639450985363686036848593186624715227200669319336045395214514229715766215864195817800334774351699057019924089279452986874772632507536335102616424233493107720830070502545620736611662993706489064488069411093597617332706406923317637739066169931727091553040893464646096605507915996838404293015195829192617522003120967360629832563529430443340289005954569965580064530416251012610654361298564131606581832270277207893039808659464183309792536020669339950582949290176703335272786031916632388637194165945685715688762311246358921982762296947584057437003675054592676907423496183352415825894476513864088949502245896169840129048053091578683376719213253762056583248579475433145676110089078703542594307730839030087600564324924722469150950462323493898861421665642277432635310514349619847258478020521838977210472583658702739768901122531245095852637203673740326613915661673259400347844965086321504635805769611518085374371860978895804641481163542024729688665816830075227748526105393821236859283460211806490393300848414585664680790378952850244739386921056444720976004740163522709339670777475199614416712513376993113493107821496643222809163226099813343121643585541997328559539857507933638293618793365396686093548336931711200674555179919244351386208082274963890571282963389601491716450985352660367902057573361609446897556738367465874604490737895786021578380424448040596795699365306492131107804486835389983598556914294444859481795239784785818300668531501348380546124882389541542660693932402771420748500760829480789684924012871575366632202806852180039599626355228935717173711796611081803021675804200917346508924823970816150017882471326160609610863850580411489148342906916310844263379039373679153190212288127835286071049189906602760849666017663632462375551504155626162582331607522824155133697360144567819443027791952115426266709168589277125711000435726645127028658299468138147052130103299585778133295503083275569217096872338946860528188806670527559658059719206990826543698288017099728191080847075759620890177394830233551974626007582667687832521656483520660598021272603052354428342543477054272267484561072217979886634165709359470792874934186686294442000551232272464159176888893001906746528462106400705179783415485372837358874440810693629633815856923020477425367256680578056233929631635879455199092021764521074269991352656064326213395409034281759292186434603427428278468769015334508900103826389688408380577998140759918836889668810635438193250548983709249230205598637553954121509920772465114476801064387215992780118326858248791405713224437993804926187322945855956981055454172981638245633434688823808739827573680980595394993124759741798073290328060028855512546868394873379936677829394536165119065456612215829843901621063974322470167237106826402941156187368304752604651262556571949596623359181481204792031112155216266744987454455768232350156601223247839227688946243957621698838736589573270617780478592656991446572092711592435172694100035194205720074287099588378453345563936371913911633050503733978277930573240745096492480918604623972116725389456513101544538863776052434484352116922289287985800534540040578424414019499434402539167004559868098842461624681698584792449881625287832862973389564134285047183666929018414136458261814062649251371708203954424613144760656119280964971898195765588731213947988118957538139667833935002556737516507018696910118188275331138795580205985163689949705131598597170612350376360105212271263447777088704578964658629777731961830982103586730196202263862063832668298816563854841667930212595479715066880825027331905855705574543789621157196239902104870184391056623252744611244467641127323919060710534351363202558579946885600023177291737194301843756665716938756672276448711255357069807147870867685729124282584061961445088360317797922967193009683195270562050031540110431484868830375314157654203409929534370025746552792757577614227971431352928739757111161532176880166012224828208031259077393152685022556534844311379572178812196739266206805002620593178038218831622376660701803819587023952170076003015133997974747198012434607184591582241914437823517861293088278665518988486710363404666237134833534950402027166929591431163271765698293728666508503976831854705739528528137637321919955318743634009705250775865777745326108991218830524392205245513543868499961311996797898469905227814082841241910970938838678637397331164586290176779550150697303686277850501459109720299026684851588024975139336530795905386199347340560667643019825220398871452462822548379567228407708297916704096526974836411648007037056269825256979645815388734915067641675340979629826685194572171536571700972486466858810845117000490130464190098920943508312911592185104309482014878599537456122182539284207231443690767378633098392758622230350007797595297820506011366699346347212761721952952544252862210701752055768018335856809942798838320136892397571443960314141559053685263317253470827099979572187856755886879677761274542646231947531940400182214696512948441639453577471766216875785531706474281234001101693457088095533738099539497001110413044578551201850573700023160649679649419837424226968818732716052610712383357690475389341463967318767051656032494109577318674466006637385242997098494213369204408025303019388621673613439574952190553311369433571965711134652742670033996234320003720674101416232875637992368011269024635884237917483951428735909142863171357478046519349255166755038870917847791451615471080452350927244016436170975930716890559303024216506303593119428650237213306388945020723393562104127025862481792071038762924032921453778719298489108843150581413157693168165890331330967908250591577868014317759179278347950069439291470439097692627723351466399004639415099874670511572924615852218819433504164090150916841307630007857709579702904219106412599431362899713160214277306722350607531326311745613087900619974570061692594263449338089283615731345306151794891291652056722868254336288508001167029856184879287400450381119971936260580291939078396820198299524945143310498427561035613845257745958428323592516005120202051158521346885381183189065972828147491840772483726818704293097457556578344598111947367102617932281045137462324577240974598768806126344823079398478879775851757082826023297479848627929572660021112731677750753285793595311444975075583404638912293119918545504824749059110307300732274316278027754913658721502583943098751486859432849335589370524448132463990259876750049372089854879772652729361063925920763914465458357464570894523515057990700105442011866827195091123795309824669451359753683237643547419795085651498614246443854230116145722784323426341598533818041101722220440820161153336609605425184495891272278382693402099992669101665299866351418586095375824729968528979119582745939153137486336608541091403666418527642587395726573528769403628193383306527666428318299489159531466135016009760205234925847089501560901250491868112508170205276403527483262087289349791053982842692618227071477301759442233020761143353879546419514412251901575367332174355034548549894016793583642196604954270644689411759706629005166578422665440440398267886690311587281247378362816234120374426036736703515275328415345684032820673027809644018745522455487396114475491630694335206748682950750279940083654890346444971084258757756311310936736093635586040786345518807631909569692011934867350445277922437068641980737184501729120925050020846730757278690323315809214251406322872486712361203461881562939633524865026056021271047036812586709572692680534738019834655099582133170011275339266146783872639082989332713422810011395540129210767872679078855793879102965192113132064663416828809845930070861821969602570179543627039554589758185486135543842150138380221014567904252354975521190056452137808311471000273148261737525260815260312464153657488252441753320024145591593236933831680622601574323275138702978068670092176836970748309874104276563623103646775168645441289613325338664408522191705886412809863272036843572931519864173926699128509088539897087370092658039769777123685211354206228301865402931474157605091528772816807689037397536624635739965273219910141158497099726059701482955681701375714174706726795940801260827563600958379527391658035625306425278434427104732164681073168817984425761801159780058591106288736355108457031376035750771159139492132555085673525710209015343652059026492612256477706701952577624125858531023537668768288756572546588388846026612243260709220940580599296890674833839774709540528629429568663707606629986064308219738012403874240275669902372363931278044645113468973129385826757273760697385839386174763684565672487917527844087541439881097561628996830903071519015080449520171007174803834249815363647961801774774615378889375802960290114153158178160161395336490742412781833348031835552317960252746192793691640357755163095060835538437683949681426414111519485098045868328152318676437007333309264973043608171246698993081341826368658449633787955150394281459722315379683220002821411069068359985478715665716881820748058068400464630836315456075195059928568255543492495632214150325009454391217605269691296315599035481146523106661348638627760538717514012441934843163705282806020601141284481538119451230548930796771438829900614694052738239920832055936901022322193459430986995746751787008307245546317017867367769603986908094120479657587450898048381224095188171577215995597779093682424787322953491074122813006454574506821058325071564612867360457347960206805506824871171492721772533029013110304195546599462476747040338834084533787643713393779818449342281038799549875553285444172692141740087787505600920396730915710683502743999920495984896610627364543743362313837906735813369216006421305327142147025261842597972006828675290702937865066640079238753097270393135016805959243218892782593372273634096320184278552428498400364590086903857753931742203356616210021454599826211735447243044603104135939302135623828791551551471059638533687576509008977075575666024794658751795056422613570550030276855158703300038647094433883114639086651281900540940222976459513100749640303272161648336744777380941753700895196162984720787297264473075630449031235290387343766972486259477554980024936547351887441979959184580070759315992914603649173262214623064146600858666041471628361424617909137196994706931270603230364615524014295927435688575601072826539177860363289728525727055968330027378586829968683463892557001560135298280711007344067029826032914232007543907999011630175268585111435767428265001054992933807687120525563111363174230225016213688774074289434292652899609993064003365186978418863798740242619423610322056157282437699658416814509341615427875003968858266944113770222070967299386770432700362207073414080116281545747979113913144395311048959342170447281730352978361940409501038903853907123461231400276452050730144157774470640136853821162552274870403553271694404055693597872404174867237974168595608022071275581219195123171268982992262003100162332607776356893783948688266716662256291252512926913492503621194049590852785820938869231957981835159669348687120450073239675917479439937539002344772412667949622602678047126899433773987421171493283588703712383875046220182418382340292937643928493389587470329350122610566676480907837354671271531126640391086207211968108198318199247546313858718923637886313090366439935051858761997240119772338435055494433780084163014985802362214120506507703405141766279189037959458590978293308021231725719901598228763031150726254009330624123164744477493153509067526422153247137137499577956393129732679507497124385111514889929269171183022109707291251030138346830536467477070412978404200833178800145830118060661325307486592384501334299335166415994521096580641259816030693060527118537486893672936321012449914359823078344656071935150648776422008289910169064214247317081945051857445200569033793972591051655039462727944092733775413609662164312748653161803583850642649381670505478078026159458193705694975444187676989928296789582554357577490264627691194347596926138999343255093089519712936310437261556999710977178176463404934898837006066367486214094677232045245528299713589040946243288450547403764147019087040476295708227990115629828941118602869958253313172737640545692053044933107035993429570353364172788062444206421567052335213673648589758387954771901338410254899025544579498268670578828626598903352948988405918844093803557103451073966648959066855469338810950346726322433950824475682688588777305137458542741500112403397508694593149439037694248983209923810999459221400459768517544418771879411639425628303099475340734495657577691094607646654906618622549634801150737068705103638216400293331284067022257907243856515652879303203072271812255271144667134476356177428622128497418998043072067628055638483848360370391441744572658843352853582889392522497014235593110380849001256386869905694215020418534786617420835819550441373765398170633002895224230437157349576964505199419849630228251058821373092879982547729386110548359092837282952833301397072580217678774815336741715864516831038946115339090998970338840999580454187343514686425873619470162460838788491468542995985012139724498297775394407741403479264905895488606397246169555856962675702490776428142542161627875734386421219907605868482156560396469033506273656851859934378092484895327341047828276894639161768424264837386102719810292535580621775751632450723486674851472295698725894153350528683246200493968947051298031947336375723886436391579701864363860059827555408099633597334208441393277127120570044061237298060418546359013813831177155426447848415100580390636920273297291440644804035199422656488559946333147823489205412387037730654739359608960767460649546758996292171209271968165435136736415000963201758677825556944308501896285305397055400397043629874093727749214481267132963215839972501564815313408666987787057095827330160904235452203531713706148205346211419314039042949981214374744400588149548574220643377492986644080422872680852428579126771404093690158748437138338876205113207984729501096488137781693374169385650107561929678165932805551760973070648370129165450730798014441865680574487316397969634952907288561714661568250884800259063498874240975748396294182447725510880536301455343034937233268494067528607809566021175265247357374344803117779842364843755071246801980019775100053136501751866394473690572699621774269729929331981616931488567520872999877960564546969816499200523032811147820689863931817618048013977118136741706748391675605859439880606300894984799536132918413641901457351420212375108904433072015293648519060839251526997038456132877583673150523230046610748474171636892764205220672772827942046214621882235808202509139420018045183577213435282610066501479459099895283489668309352897296479954433093036672864315580991501456119843306717531976694007623828900583307437316458976664170006585595903781649447801145386978953440174064173268747487278718200358259224735219117530888025136244940506462729796927408944758330667433872875246301678212646924240481687446422142447529216278065553257140707226087966649207556056740133649315780492895242643484488258573048077439082091423699552110026580703382416906904328018604648939071102666717243091127821372617941549739727839963160447715623631413661927519604426025279414153134874187779321547298405742009129416552640034185901923828049424816751653743435762436394469888648298221453339764158172333652937766867758731997970499076380413969829859828810359811154660466981851110845896502764156056948506666829473426867691915743862442308090641890782017908028121361111141743046545331330776929068059540097995331454730534307581053197018776937530637495463700335534655774479184592706277990513404473480374957801931187923768080767206807915704172860109187626713782473503760743820134981617993596643914813735331262243280053797306811040812821452091727278769435485279588775470999301269546703614095779889235344619095190035399124117059351379173065214144430513794838995947750955299049644954670713674445923541593877748484462486005423504321252371451706707066728453351200424029920374375881470393789029353473273556967993741204820585038289083081880670974644948354965765995062988434531747122486277412506379874329346256228793827376763818682868948278728479856394255753411693824041074101861095200974778036410575826883255725911068196262000357371979702356521896040125653570324378031689558147967859370542299394237750888980686339213485704807897568080050709763268710352615199691452399381764817456581345871672842023532194233748469285521370251539930686329481827873798468276560904458533059448307890559015178729378533314239010031541361712112490374576563711808307684801081513573372157823097279058682172786809928391329766378401516993143808457471732990500470682322611641138965539440134223491799287982252156272184297326860817258997115160142255870326789761643724810110425767085731757071798237296344255762263808116635545221742666971973818129734170154913064753195511643894913187041531218349427462217155749933465412341912802315875298970295492007496501014734699564939254500327908730115956550346418790191972649673905518310195235690942935159684102352078932794826692135954472063911535259280171566449183330895153752431359433492933588239025833892471936279050263773980053990594519180788357175613207200664656709124773981260073982202940195696808186915356318284435818133421232782838126241336310012798435477672884664868733763765417451575631884799810958105575267964521351991815448553069604106675187442810295127486389816772000747521578896297990344108912385488086270337349520530230472364822373142242370345894473311001086001692949228226252721404000130270733931986007721253537441868597068074373700148069667328569578780813892444740009388210803435840768785453279776346639073533028509247929551865123573801607975195847880334953152451605253111853491236838312311276887078344240837312359393747616452566799404057387710972430415820942797269410428372038863991221253420031748466268358995087306719061613198123647590428165378262165578643638340240435781566598841067183988289596265370728378077055136488432200467024733648104249821328160906792673415126825939001458647684381543088169763843315679159784961968355869217368551866460615083206300797871181966305284402687992690875935620926139164818687242590970599974874745426231848273732879528925029763946674328920454059593978165818172001103870698702221783563808377637319153175216708883893277819493879958043892332897465098072808543361782873704796596291309656944775893342490559429575172073321919540556970274767275571710107238153479624106752994656855072984238213254260684291061824355549644880955995342631717593425395309663814589202847831346511041605553246504623712202742679704298043638411160986076160652395212235655680212465903440109552963674029853016849512918563441795710493782037691886941286700565739490022555699838021349056272547598844307919547939900597737276029891813017374518951972157133311535965449348805081379595894955049979736286708486607461577791399456781941215741386645404298146415328089032693253033971063097511474944885227227308740325028897867225563580670268172191533717739770492796673868203743603702503354794362541357043278565919704548351766508564247227148998213918996740175371639664870188524481493615581332467051520566441762803283818124851470698139851650001787174018728406745597574358465048429800459400433184192449369564247306473927402562002137495226903568375729765895776399921528827770303178535137718705759157103163397985345033861855655954720076886968520512443611601350763965136840325445014587283372127115212953120999334105209525229850831151455305211557761321210470413519019803389846974464964256725078142482026512762813107840100884584798842673107241639080461367118627138941914348100950476011554826133005803632629059889866946003254249075893813045741305949211097232699764405620507484025850797919095723404418645537252537938783284711290365987552876018129242350717556097572636761888331040166162031893106072682331188138504702519392537123110443335924627255719945285272165580860917555746091487130257905790324506692070633935277312819197335301581735383365368860289828091748450931782669232540556992718066191818933525852554540751772494368666236863755512319567830738140645376623970020119513093654953085853670714793984534661920396175582910381957570514138979252707586083789584785777163235639920716168487450408589733489357643989050054997444426234269864595229350633924650528836649026289313321314715661738487450934818523367176224084194553035675168806761508304929344055407032674267145768016433788723104667680394510075071129937992077347183816128523153853095238004751881985907688092724586288440846423324544541937336467111678321415613932033752986498972448146019744582920287415689646205800085454233886046845023257215343722755619895580275067886483202919154090353695018061054428477578607463892599600736019032017162619526441981510143885257353503461764814501392687262291818725018883328386740231908504203979012510812442670010513014575088535742123261030933781794910353855163109851061392810814875731104691649620752907533763763876070042102879869501884137877651153373492555807556375215007843243656529492342937810598800471565558706727435383077870719060842767792088754481883822148214948061149151388281144464001321837522252692474349659932732088186227044343545748363427730081702671997162972306881487808883447342658476275261270359126574967569033527801525375990452393880684343788123468386958406956555250325255741568845698306292086516031586312572901284747112564425606361865188004366435810261597177848578779377122674335457649272975294971339863705249874712579961410614909841855227032435239023479438368906558694679743150077910928800530988728219947161916937264960160267992055154875574511310274552407168966497816894621981155727195146852968155165017367913545066218906317876831176447756067060808779675056297146937339067654758421555805199915217626262715547344820305838067836286777882409438348585072053343267457656308948477184566145871687052763915450500961927231577834114959427381107255242842183891676111298349776427100442145105474180181505974599547806806395522253495889971414565548914487991474891102644627910776260570619700097426460173767407758855712626846271538559874540801358561083231089413158207776278741756083930987849406223109500553619274369187778956788545706863898750554611191777103844322578993945031577267687893444204305622264343364380111337890368130755806213853037378180260753499533944705855671875042319387405155449847658509171654250605509629552993533387540723734584350267071153401014699114865296159800572111226079061738445577601733170943479864103019394364254728200380854002931520899140241753660975238266104712814727052773920518871392357389702839966217031896282316190206999518378763996518163412381052181602795062254831735493833064116006415531474004782237671171560374552983343152758774593433183369584242365908741849956605588619710511958886263853799341785463165564918363892829270138023003487591455886104731371627392707849874006072728392347109739976020151806819869478431103784261872399751806713699392645070041121077104113755194082482443351335297854829026553749584543710258391341400341395931540103065495255478300306269886678855814428558746352748485149461283058925076803881981313443111380325800914187463592161961878654043303199862317845464305864889176515791241966009594950071930852158943155343780990697626276320405329798122750169048463895977787384534189788679654084876400793470736600646178270430923630662190737821308339138236694177175476124114439384946126284082303810863468065334295756602707202073877078591997130894890379371351962297345399345835897781581573278486117777770354620448758185767024015007170017396879219203430435361026836674132078682337256253958055143427392717340000465218430473559181336199814151867968845399841690229048608437423556550281866508977699825188869136295514443381197278860116058766549441406708508727882804363182102217260085090677950646097577980063574336726728822960699865935086475942422676601009820756680845738708751122199240304457215554921372639976203371931632434615017162317622472075315166260561997226861381964595959342181726781297888380428146192568385997814296790223104582043793796266111336507079319350585214858356178054005380071900079281293517169483233555449242932891333827931470191532274130539470312703762711255440189567840910692492003787994738627250352811904963763239422512356535646846495591942905360133963398895292849767023441767052413970140278436113748339911374749725618155343638559697129945686080173245516056069653204496864330691526949749773278833595937639929295065011352298923427146460144061912902679069189447732781150510386832526885981110654291010625963822668313379074516049754124370399070884877217415798365604086720987768215699809071284281662726042937415636981451983032412693085912931877831907032740211979036359170474916603048364780768621856464575944773930725878802853142748037806788629699812405655297904817010001512934860130672163109393345473723970345263413549640555289369093994285551591893155306476162194098243185814988792555460353522220054734124338190190953156795010929255265793421939243599350517842958526281756410090087166179436207306249015093443332682669604741981056400538917604562701202018644383244496984880471557365097290052434213569430880397731941941003824294644059461594810343367188085467544012982183343588541224961383646396107966284182388208578591472498828053933448312457405074003590668067725385210835192984272452566919378467170934583520207910089411086201402031263193472357202943533426876848725137760822829965810699956526903965307030779733076974186073030921657126233679181096949385040882073065239123398235366528522736223082893904198685957357179230024258229774934555998712910023201989077380826760603688062662948937086017331784495887427803197623804322565650152007849444078582426996613416526710051728169492243009720771443228899760761830482095162778079337866631085247883843721801956231297183484276483308488600072107452715052849226503779086470032888439504220988651229164932309105517811854987291180413959415540756801202003696598541080470569691596213873755265619457197447225787867496756855013105252684475125810498375376524231511355654859285253894570290422928632411901331006473547054289930997092529274506911477263248713368234381131736145469642981308414697236237843348031536536010367588522634608270787730771247682746820727583938693323984817574657626600373951055466448122651959723007760583480035667781562801796391140604188076003338310523744446625920375446832083623855614082731917222835913383309664693771655892156031739685059748738944213601426581918130911089046661536869954812698723674796077370858074960834838833023409319914497910917533893795102363187216608233750648092473930205348168618365508277935897246601139225371359156258889013915243045780468701897232559736455409765563179606842492271597193923762601831010948226476405185878701696527571669507668984648946156826228078614941945828003857838713629836693269466272137540557341623332050733408727077616359058814277224914517176212307777716178157701143621223067607947468240141251049304430728885432727296618799904951725348646674403542596885532656366563101578974676578953027332691346379959225919309500301489211892277591861738344233461951069892988257099985744449297916377470801704609304927969755568220400261878302216889039128394585140551185037503395853261951505616876396103793867662448595071639002833891354393053094263069308936334979116070829530544434474415829371310295477476648623024439582632377257549037336088340233187495869612769624707412228139834424721803205421357313586687386475758822951539833368640449250288682945073772232777818422806886436082222869626378670761494653285412375301499859441744117665193481166694660075785328274187068022987767476049375481227690369329591525961958383190439862130824480739749642376988512949932447961647873880723467508399849893579787280824358604969360594303578310462006183510010329635293439390568691753286604522732758589972919144742787463379570111729568046904058140994683150000597652550966340718804973689086677077268648457526193620946273116707810051878774808317084411015068097898404327549513859522960292614504801418897828936880028876446590612123186898571395533492561361364597484890346591841148962509047026452463501908741596972856601926752138600732554160560972842772308242302207119795057612607749718689541806741902941359234681339643079438114199337039257374073970724426326035123960599484784178323779763678195231590684462884573628951057330528888369892700769610146440210820548133900973673720505660919158629125344819968078975765670349346466731887735584817445783326823292421954689927997255158076390181713336077310975084817170844746216883758147960760575614430216867182425053585822196919216439717192174592819239457167671024469911009166647901792485938725485101772664035185567557007981054852540292859745112649470081586481728677408518684052821306662484426808521931868353509187973081081951884958447693826085497443413360018537909639197702761042729563319667042188950305059462653177931419789685237434683128925707487762957073062851300632374461687643873539256861166793239884829767153983489690797919546500316775951319912862021549946310488175104175254559463056715715026746952769673557653414813124730891934887311688519248500733306551893949113402275158832376476182304153278528938668863698032178994561539823207089340054960958525441471860820114009534344541486189368333195929955656008688996853200663087174810135411595582378455143936984451613630263828041075999785067407647800750014000068703773384826444377822124694634464132660248988250944526936448903467294348192198161770589420180776731869205175379288948902672065344836636581209818230579005730042340694532901739676599589808985598916763404701566260801826331553656147281682007963496874100025936773122675305935365232404078150569405053172793047746956006008252523540744143684571049182177534883232869264129512157985563737316506467265925853889352156137486858538642719769890923396722999745133020125908416058048585568076819389866916123860873170734646150165622239835002306889402391427744733417489424820829529592082116144379495780027388712106740683331878894230853126326378789062454459410075510216181155960046947049136298567177643399543871898998993579675113310341942356404084825414079652143395183420229786666876020832563506683264363706195124603303004441211391245961651841419599856569361012933800320357530538421512866850900972073899189966715797560166402286901803001553131993158481170700874122541390550810101086417310977754584315949499127268708390400062882214948369623198900803914383363405738495766456930266406613681674650209807117105750053262544766086042126438210147256329542698241975471281874078512276429232518897451690327761876484116727101055541304853824016960351508617558802995162600463411805864841307465129831123075428891071768255996535370970068118683396359932458367438564151783518270415151061987063406205305863444604469338823219917857375123933159685246356472619375083867067925107095931910503790092488040573070681081733394888784790124286208957609331956810031587189584294580796970375133618141464519722955918394833595553825325694144867212283014508896963244384255191021177914435754804111881740119983737896449564414212240947388608399245166524659603444235879086605476355177091279236108240552821598575899474236332541800455876654003508200253948139999683280543513460868013863454453988954456578576028250866628406047382145302983961900224647061334744904785457048645509471217774002259447446048982236288170351999320471147586991647403923389813754185558505210795601070763952685429009353890387537686348679889153582833280332972320084516970998164016481678170260155502503137734105615682297568784629116770645941488896383251261312790598224323336522001189463830903137021817141027347573241229153266182865167318393743560880535573484870249611365407116942685149842915772620925275416242509724894720076450414678512537414136118814738537498650171300461683371347778982489231607094424275282560492346879749361941998612882666146514407213614343824676096613529852777536265142044040894172793468697015095246942348558325266954373892305737947588243593584372269363894769825416554947966139183770988785848284928454324962876667794383889115857089684411645453288084282387759579189753946092641716589567830005278234669149690825445707585845737984198855665775938670264880423371716891565729062407924674973061139668589245755917191428050971120035278713058299712974951139388371427361982929678229206600191671372139420590912674351473206581489399410636451123250444240885703057457047565232012177955328680801590564765176101953753653524636062614232156875790361484490946353195728889862726955703118462751328090755686993704717504559463354859276349578173338189767717042398706010729278735487136918941510598713286142963868904866232607468355806604516006056598769433292215690392264161958728853870429303654737426647818688897781703445864801375250343830749936350613363430516024310620409803169450789045103238609751526087729198449677919550327061833133284566936089665757108814789076250983547287814179122023040150495130183757105875244305179941734798603908069215494232370338809283559843901789159209663514680373016581463207338952460616168810867275573675140349733275024594890332905750497334787343108865075283445176715412937247343866194450692390599024882789538489951603782387930884128281033911114361542579968084344110188661369388295724558286322079024861234857730572383626526036106599483825888059518486509150464684947965612888859867570059901755632027816192042243124124666799402158011930478216941485219192497815946731336438881225844706456583762648364099775026346919021514756198268130399308279730248979852739451462346920396687711832633806769874367354298919439150297443297394805274979565146829019384914166497127926875633062817386493344779326416980030670201183470585840349408659552470592279613121869906750100773808529580598336062243781788805238731295688516338078258002496786001682254104604081431810497714047660378063357613137645288675502710322823409653161280552479003538499407567169312542114241039798948254066007817886551395848986800179707858645320111031093629558231770387550468547384526390271003592522599216083352985352235222495935096072253822685716744374471181459436167799006654397706451627170106412093102914827720977663554694157426326013881507266016965227605398764540664639893269841206142523360638621475107062032608664270194729755814530956193925237000890093603262055880165482008588096973440243756003473346879646247005763666916539744597053294200789834858418858369325800759707251080266476967087994864433583680472448530393927427470366291578612781045513234012506419429341200252374072339023903661237144614172209709345848547999214716724963269640960598846460055702887550173018997147904564296155187557369006811162093668555592755268349335811324291876163482058938530847126383933841625264009695735847880129373043004863086824551067108121810805242836305207769009956386161576558415231260345451507447809305478984668524872662319837605703700881075959072519338259801854008065988680844507862483671867532584625488722061944793787784726889217911092227096485645327882497670890713010525917775303679684142109438784809949674231845717144940851811985931785563284473053487624108861412164013372654946096268964567509369823301472935369251503356734075648345228384329704754861724104423363766580394586469319450011376654108117287053239204564567091445362283689624585425732353421151950721465232993093575060078814062518169232627072940508469312488973671028171122129772312831129765055225333548989589520756046421853314520473459877938171850354398041084163158692780459451054668885841146045767987330635675102006122606627313696738549989773299783657301384341349679563168308780819981506016230126321923196417151512553321877441535177432003423408161398205324903622118402820453246397035939997323422702643142288707230168700553558426668896792331305349249730749122256338209517982495160331698963566351450496447429086810891817868986726297338206449833725300537973966955877464360483599301972723999782703168156325875457189519394105661340724160707010761387467296994235058512628113880869050470254367407789265063024539791827854360225110728212769527551521244116370847504670443884245998935498164409440695275788780741707742969724001742176319093255458666484172015713230206606094192695226731501934903539787076099098151274422964934650330921108503430703441364828030737167401086660910412263395714364917004906314871162888803942820587156367810854714839957478804168552049784013529638206306437748153493862752854445342178809856919882543985701569407044906676746787841792873267622016636865284349189603389958763594837184366643589173319851765164924925847212895952523287542988133723620160195995480351852909334368425203962843578296431152972334294122204672797050673900025494084423280122585866402793058577710978876107466787300810042723135716950391666059965209714378673501649202141911991161183092106804005374561872889103991386340349084202271512658575229821923673215355479280014438851131490728237893931282444348521344202898884971096880601929860710521612589411911830737832408847494111000708490093868041130086829708703698938494719882965230947364859385228541278019588815658077647039136388333326268986168439506754113239968644628306840945324404246714417861975250504797857240264811687446420251492851575972162055261195645057323367249166382934749894689540437059985906256232165740186679154095968961677561554080211772735458057353978137175799471387916848077169911646949632772494876006409359370662566995434560175693115074490546569160921378312599690387155631585263075025771311670422438555498228696446493370848392491520780277181247396471757806688202552757738977897245309765908494626576118190487870485201451555408230982368488529396176515987101022797616835916471075676525219084600199654217743598599641144938128226846902152153958430647906843463308736767967586688279812062814838229508377409830775151039376719798848194771583514534102705125634695681334448734215747768864366212941971040201031575273411133338209937426469932920186201185753585051987679596402105825904427917372815715184523321513067255271451542083984931130821044083698867868494583071932228727882334570529698184121115361080940650791557385093882698066334336908596657643691728278171816623883716001503878538081649369108720233326987967853104363316568621587488583545170321609498669441691959335539575362293963278114316909421241208951146971297285361562317813729743284137191743941819259672834747410262975041310070508249185575618381618667117848472165207236770459818113524805217734408313959423823393078666720906154758505471470344205775014985229734989976092341282440192626723222742101476512314901811732652903143109982528874981953570826269927861874031721032518697425775029340601176152013988205653773632329611206592452601034535766917191133178239110980027211609347213261751223200324664924170039862571639329157231863651311771952333748808369717542676383675533712354689025694081900275182324447428018063925563999792732377758865029780805960588730911849137041614005613451451351773124974663757632905577204356455243986819054873047500557653356189401414621051333955126888640283013785936212707934733910915473502428373234210624973058304485200950038171805413216783883389206490461327411019768718479815034373461752368730336305272216672091213468684246992962511956343415978205083277233489573937989239867994446277938349043209444829276862349967602748234227455968154768079977874924045270447778753096566527193244764910165540261067719479551821004789123136947134143499063570147233335345590095141911566921675997390568683463736207349746445835378061698279141030170131065528464080433435734358812601084084029003790916308227036232401573373296693549348191659825780239416108395662278782955939631517244659797770192176452870612453729542143019040892165180806422106215662919345083783588016481066927282225588137595710990278421306300787224596461692816904074146512655922766528728825483462588778489000191819561830062583599406462920899468906330871187485019863421555919268802592335304016357031606588661580512158697866926736775976790817574478753150870084830136544637783984357617424052543270617709623193089180004874646427160020676494122038225776814648518998216750450995949815795617530661830926740053950581715072445565892457303588302767788704254841186041560080525290724651954849200487365085352147503774843032112255765398449669594754830522350092947550405766123176700685955431852773759477817795839500795230151637254528511679716982912976576091292488288258424568317265471375723458337176627154529335294198307359708156755802946160428940223532131782887966184372664388810358938124320764894304008333283639413282618435936537426330519700940727132045034636129196430475132111563640359977462169833812954358541171880524874072980117483893556225724962803116470055823692107783979130601421370225866466347831721100804668576257238112494520852775592190314836845550791204415081035656199592110089267018261406474046333414610478018357704754461534222867900859595873518505367517921916324698118418681576524199894807535146384933033711556568176128695706375564600873442228131261137978339037107258317100759432619649468557785834691032669886950623403517116800613213370744172492090492109821989013341565506843781858653322366672899109238106800624148552184027756915649916188112789530369620084640211240830112787575412538098011256817894922121279414372257780222392049907728712599600185250117402182526078579978215992508828175799817237578353256675580452571577830870226642929289690711116536633271583581798873691161027897612237171297788150569302149548361243220880415242194265445014572471965944875480501815631029318878424699658583831775144576827052666558282636359265279902568377090362220852137803523385705342513367898258255566832019533738798030949441788353429243643493962544050387093845717451254779666300620787592199504573159240591651207980169666059975623659696103744979135008945685377707350963766009419385879315783649824975208864612014003264463832789492662497989893260694889212558146691204271194676753737923140583853033889563610902923821653386755453797888767769391999334620259075946545575567406378695754485831710459864658159173998520739073269042078104054671368183647804516742940825835464365629932740622167641088610396449864443995862524824661966811983634643788271326876008530042185721459748812075359404616736076182758331035162599950068248841112876232243374889792016011301055720132008454586639305889611008564001736220502552153159389452528410320623914367294967809325224756477004729495022359611319850621912074845958432797200096691571645156436316029949346325945202648195604137759010281000140412805569995867679968894967610020146048142737564772565282955723859349352063132971313879996947811914869471733971256854914284967816899798478849789758326293595875259852076322359553522835561972411568004037481607685288458129288299022627299891081238128935691235176353476529620715244538606645751633173624244101706366403728239641549268701425288286255912958773357521079538766143282827509913800594380471380402265804488597973495528995922585219013966746441490293221598929996265601774163528778287755325667667189420705492107187992036558239534495207009271153076890641761559229238593796733439251189872495045061008362340314557747103245249518521135795087639697863443800240104861557422289697547121599227129196824956582187074743974329081753991255873235144354628459949191463013098733920377225091619518177839757353329819642742873014124099104086615312922737179076330274719295172152646366870086264015843582047271419252334231502424381381289594035184338305428611172135266342483490420261341120861684915850593148329498903523954407246205852439327913992515018323105782668190915046844167378736962939127013206050812768737203554047134626717535280213049891683985319678489517795074079685713081806184632547281954789329410045589796466678825920677202016431208641278089322167473841987756908437034085283586733856026718949307512112715878637466895117137940436029354307303164607413375882977835386975395861968029154716622450535466267906401775319452270356298993031573625527615185468930233116135353203986705727432442461734545264454330440296473098418075239489946940425736499985557323661971192727677404813203612972564297680920094126088589481338927600854814550229486177983029054002448139276259610493045767750250906217288210383916964465292681973860489144248498550935313155323425517104120220307513177319501016852377015489340460932260405365586650727053166781130622919723273835815848012060290050175209864806429280664711569220604072704061797617942090831149577676116448791986399237141477855509516788108580121781876410680992532644677798947962763619263793202621849824170264587229692633345153144972552921054731146762194584939703326872575702340599190384330006506301999637606290384834609364051049675915784231601907787226199672519015859823411188273472245688047779494832018657431557636995697485544992279532101201041462627338190679168106567917969701329416538067199755307977519362738706045007821184455839275469502811996387725212104744945963611687853305993444264645979258115511729304571149577001219021620826575443388422660201852520600405644762690563505737686072654139754997847316147103167358311480678801902532460732321574634402067589357429784664947229908915422495786127091448734727924561772237101874688384914751541654877294028845737921605878665749987263283868429283601535232909584871121170575203705916813853484377551393148708752013051517626462589844322298711057947039490948310361060973615359606312996061145521922290188513112730474223469467371970208359967531181250734346452802161528809868735226975188430687146741446902705819436670152314800377721959837896576792148668491867666989403256788825297959224739102283454421295804442808356927040547225622947285080273509177340691545428715480346048880206232486672852576471019142565101933446855581212903049702469994589024963412529407744444824505182719154978620452538417047654427289736116749088024403202207924050089321124270850726208554396425672365160304534933252008585016108004717715028836884075230866492729764465314457837260881572108469537394293102320088236752042961854043711522908646541183409607031252831121033868161803889905181485821688184895029973538592871842349237593706655472416505038032493576632869050872322332364346933613576575502814810408925029932120288446330354601576633149463946951443389470768429280038150984516216371889666900603914661139910190460321591077743646033311272244671241217852953696108839377126399767570814766944177738619628629453766023732229875959880892728027506634421047167939958157516388404982580713216214799636202964012465639971519511674222952974411693697514895735924474537111317537317051379817185748257221120671935771362493124444566479584659454598864667904823401907207731359408525460349107965942117556939679255091325792629166929305685569661855958067204315751319661902184668467303100887382599405358170245929785099058400835509312373631822441908044181946722954273017866585651345498310176413255479423353209698546407447665458465141138611221339346269602682554947930544007991163850830880852348997312119596703891755508823734992965027398042896410171232954294906974758009257580089627494709826020605681761538222149348843698472453429361233446884488039356048851932020259677879452661329445714758848856478789346311478223148773051928025814414965429031356670722229269156552251100090578198286926185247399332247190999689130324562431584059868225818886409176017277000484982260608387108243945137931635944121574937222729896408330869107989194611350816320924091191841268145785677495383493807651477135116108662839797970007630214559045371652951000729214262517087038375482462116130508421097037788675581847235992211132060026808495991432290707011397266942691634751251894649899882900232496461167012457315450660421031720950993022866082736318299183167800114041344327631763646812019934665409761293239371865159459133973871631133397691309279754728639635389418132337222686909749851185328565984955963517728934271878645414095362840229134442065800932146090187429770380903671653416409388911688055105029396285929140365971239576269079402539173265383230354348878289791368383919039387138165705452009677218025766116467154154508595992592602076967331117002300064148787481072158380217191028727699487444689393637104552646010210139409213508025891749649904373969818040171739198766919720881562193141230757269805396554171488563242019179640032725260121136380613279722970883351974711731394382915684456322560904420244547645071683060142510601592052962976458399458541226414290124072935411321018721304557734752523618354383386669115208993259306216092181162114088944497836172411125526473481979139531502574870289952799173328862754761457043947356188171575126493667260042486646921306615718906069502395845651656135699575634043021393478049226023277346816414980634071196586885502805609723589038624656746115646450482244596323053595129612109663237941497738581320144653933699022994341442513043016652873941198474081800093085115679866604955909229404496597199406706425208169969308871264792300531513335014200261212377917630654633472839763331135579501015386504025332028603396233984813390058989831110136714757801635020458695512483231228527785426182980894416255615964031751001621251871989453080668723285811975680373841223757914789522202686061263396482105457731905110705655428729703816559848833109634354065267494058917815095530416175140557853789511416045877283341223147095196026034099327102178042397208268259958215814175227936681425497081286326693143045767943323623692586051293917696451563055744052888694303079045764064245627156189770520796974695717339246046959395854985895931774940817383422349546023701695114514749885328034096926496249201048483082837667610198531697665640893126358683667353181703586654558141223227191378031196791812044694588042350423718089227885709379280717664974916198862559685624743038818625119873314535978797574594793558292982053365424949948309071284567303952638810786768532059901677076963545968262785554128231631203614897576397430073561506753471442390824961047802359848412976083264788162157535170117623691808908885440221285738270591545436888861341954300986590394640650655112208568394193477370918657621618648903071538091039083588384052502812921513630391364192763387589099477243998268705030855028409187980746825925404618386568276139574860251368083703042952196108142948484623120580950102582594377676936361653976489920451597867274062477179892632849839917498450155121033356224897889891102918421983093677026178357632188549196042685713511755186545919532254952429089981859705562679509004020942267361827862523479643477386440724687496309083451327793748203997884328791420616066096487605228531068201112732340065655344909779094851437623451138494713199583112399099906991877940791640785779759349000048091235207558662028948022114366562936121378562231185891746631272870547963747812099031547365742264023437523320624810802311617703432815303206579662609462461060414765069653876396846479580408275958256834591795814880434701512563695654335102491931934287778496794343663137626531477966568134101744260079317898115222313142950283625715992173495992234591250436942914182300534898921927738482919319028667279977489022007483129037368841649864534556963453083168574954289621841622814864758378201754122173956077983450703046204018029959682149827735835524824830828980475971351448466637498135756245958972104560179379791099822443021880855343817570328978623917823132320013445890017006833475747624275517066158171435347509489669258922224033179745344395397503104232286004466122279508565319891221039691586594099887854901053066439507703831778188552081279064038704203732484929073346811093709783670938448603566832091633266200314035317962927664184229397811706835709386034500668691099042101105552201961863443091502298668600764702183516444289721095286254246180656042371350373379313168562209140775764907761619060025394854676699981335299313864154428594935830541267077672118821113130306207572650862493686110193871026601334232451708625243128983132782900241103158122596323049058573612620535483211401639816716964336597596737228674498928921722050091768465930592260085707913877409888229930611566572880288673120784670665127356261493187968217744537979554041447935452952575075581029923748931567287012121833332248399556647191222476219480341387780463146966101348184673667417988975863886752649238298534145039691151439374141500583627783812495128973831837171683715021429525831607357165521144822355678239478834497133894595470432893322300126807035022149460071185758281261494353917529217872526040916413748664226023371293573177416648291692079752616448458150413040777932790344738894978440239930835570860667384840184261972710805647213835548758411197664427877453964420680135060736613685839089036265423270935164863333915360663722781512708135955647542841430944027737730859161178773791369539520794070381767796791579786361858319992324824404410501989239086485758742406894976100454435929598224303187825407841252636590252337589218471379319484982128008308210002148020789371589863099317258166838589714248811948848563355909210535743660278887164920970636504063482171434488168248107891813154329016987877295528984559240697883495211800821147326778709575897037970648261200686732167445000400986643702291339569636085664810367736876962034716704334195150062659001421928225065285647839869235600464078028219203956279070361959019029369621255735590227063992916827832117714071932473987648018364774962214449210726512560361152836467719189445151385557971165223592942912389274228136034968730935263653702286253472486619531407753105048067852972832962812405531137489691835203645579914609803949065255076877207530138566635560853668588226194552650469556710518246105871074669555580875310894337694484739834451583171084746236581563706559046128352931996290900121541065692313733355605288896116310753729373006400579078165386592478196767443590527745418304126077089017039231227642275887644448539632446280168464746863763456746186312630394332267474223600740455113334716636863259821046969237133989603376115881939322773242683207546053333770342934669574169500033674927967511953855409386038247062162112914468795721866310957875237042520766357240502156162111125982151237322757834704293217710097848325164273385213067409098971187035650033634513542300974347556984061173582302227645450459726629437207240959811867972742563500938529269603484678488778365749957077488384373373627210180407477647998068453348583419711572477572998065342770545211593519727602482051444811947360418961946945407148773650663425112907682445727654051819040752212246376043308279071535865598980592345971726743420673998291223623804923236246576587606856635161976904676684214380442181524443233142102608748783056534499570100166877221218096466092578439117454826143623201794774903831921956006837443470841681411003643524189887275580864065896365511381104332347500775782427188089558524957687149989567116063583151173177099499398637006295882143840133932452587369048508499215470034163236238284796122615972518802760555798892586228586411579329702335667937954865435790774135872303010279821356978674128060757427435914148261180898428150437652209896528845754998731342350318471827294940547486314338894812737608373197015365143351731652111984676353859445862740139009519391257807558443016000320060232438373526185938829774327155518517100926813420940676212151912420383805457250621842067600293352506084145382482398780641154087270781344574918455805247254381320840520245680148372975821395296624343785108517698860300295265425126475387198744032518105521271325159171189825832577799287867107852809657099971356633470865847563369887656911924744883520585542760418689127342391761637983324158223609300563205864651029361641949122079151698139044689620074186219451765075942684877466677472163966088330021604431534610906004877077563590286420237329481189142262013881030889005172085360414306195579649669785882954524415157964334312031741429738914913822382425006121096105635485284325636651086975505062961147096743719576933784434807498243297814809226468384897406185424094994690554881741229885316169056601742342496132009203450425229469362091110114510116168829995547237593766023432965143924768061331001872024313112349390965215731760152298750849333382825510079280638365806196579784591670460879642884039644940581657744270529153310731628139734950306170886887285279501347512645109831831529009434350609455878396717011361895685039085474866694816250007234181108312312561361984603906069915330521505070093852777543919126303863352295074955384989521045717060348152618483474972773469806587273737695437090175108933589032270989454367241790966202411967794889834240287089715271169987477851030671828959792534081493167739364310450637775549797436990931442297369523969169662412451936996545233854331653739853711093644026066835065683929970634300935549312153187587486749578759700385880579424928552544447837099617394067847007336235001770250592443686055801793746028784200896410043969863763280900182267439459926479064164939667004435126700126108448576414751328395322423067274783674086697552188674590140263787835765992033105505574450091454077313329726690860885721947410991312420488919825036440131341849221679445100207986832740576169121348662682039470900340246119711173087357194168303922575204100989490993274752669204042461732518617515003232306318576417043335755215609372864948437187342529955167822628338637267213156596520204424004465763343316112469961954499882144806661033702454288121128406414264890450513066470145559235460479194661823471722057647300036649785367136826226331295642023727159146012494412491040060906310562842522828830025704632769764128422447718468694897674276408301477830169239029663366432484770575028749485799909499845286376242799093835569934217948308834553461433058216066371622370644072774723440025956196524893655155744717104699132791216774750675090439153627966664784156708926323760214612742116261223239443242455574621556573480058029740122412222063566769333712814130504211239179470129982059527172850211146030864684659678321382229726171950882296115413679338985808603887554761072956848978678086138807705595827132170696901650342287184839933396478926095643839746844369697005777780021109029030564215215343252343320744723181138250496241105551304807297284369552853323768535534658050421092162590672637955936518517635799113201679789570912341136896408902159492998052813887472560630985973366142870724835186973137682070228455299670113166160301297782642237226216906957439354644945717632849461175416021986700578435904805034836555969678976094380836155998360204144101992926650636803565348308500843324891468725349274894504564399630868899377927843667895178143671735716205215185238478196871026610478094010379593359140252653133756684974498435134394542790014314037484110736409534741212218720241820168601447541757948618104624519337997706827270813545929074372177432435202843810055751113391432304076691964131376503747828254469527493459426390358433213584325751918489928118362467116385879153300889398029523339543242172749760838705741518400555279299346761026128064747822752825126717382110476126340354310580066091685420290022299242596507122977126795842476449926795719204580111696071882657015002328454398154346574166385390853321420618794128362300142914282651971909533824370167612126073907091658347375690780327377169516295953407267244323719269000013573443065658239119271557152257742165460470619906560023699959976477663816264898717478649490266627514059113257779738820245681211967823184421105298823171106538585814197367345288901991048238280367083938261061115968604316226159372301296621005883591558437328561391178802522445306692910068925617157896219691279419491626073857721357489994562435393264960654907885607976596584007511558735885055895167580756864648859922078416221866184455305216648237875802456065224554484853090160850180409852324805723813847417909252022808135569682603396850681898872658661505610771820008609476901281726661597773646103300486702415804233122926861426900025459852155187698376035720900651348795766711264306949965250292017887605331073974815338106191395596164332245284711854104324080736702762838125471474493050799397636676696677957428217737253806505794087797719745622500063040679102591290767800418856094593493397598420667428917958086597885479793604024209920404373761852412676946492721992507475941998078422588925097477640162320743333782423777612707974627144931575937140375805664818829543770728363868339523230562649601494496677612074545047388280173767942096926274363685288269525390723233098138345131688350978521225982927816491732235870302703126522426237220508475203710440536205358916869853143052114462607734764719078322036000453180845359637586738107217804649386936404003439558399202346445406768317081103621043202642464913477357847906719631571591283473674249640464812894362080502915682632182863144941954872143040134618409202924848502942061579857609597156678764384099222927965018848179029371730259042288897933359271926453652349801457014621116596347057962568626173158075204849587441888613527701469729095259045770445755471305532165640806133093955698800403082607063671300165730491251869279444408834227626071612790466967178385809962162384632182915548406589120279380700373414238176896633905273598608616985559944388905579511363683262175192742683598250319827672948486092486210446478057636247464196101050281597632257865189311848151414882599019995213164969611435169106685313539605683180786288337677943274577951435847298587514651074508070851382442993319414440897037508475055900330362565336017248267822987196153405383877324525521948080837207464938621653356603661244827570536790043014336900700522439401367223644726516587078403569554755244100599697641309578702974083580842712642054514502707044578521281372356456309479799263635892486726041134524720090840866081876377469269836664187528184873544055245731255950373019848744239119875180030240118853376426421863592390916631274462505296816767595092399714553246374064850542651999861921565196691388033119375594254782421332081474894339314194713046975697664510409329241612983076771758877947562422425280045732998197551289717627272385271482305766502557171401765583360838736880655184489165429805659899987578275669137344225300390363310196245438312611695393273078882308827312709442952977415664098453280157482639007304645706117285514141834453817928023344324344379457357685408868868005410474571228467419222019373104360234806720679724955781772883590684098139513164450640361566852587333025564333225162864805778485356290262456941043551948968164559227187180792360782808882253200083496235286481579248054599054830267309385305405381611657701342603184819543698000792062497853734355276934084808594004683589502661422163925362343443673019248935754375512880937633589891137909833863882855181209261031779073339213131230123897772095094507722113383507018452601709165566319376813991158226488492365747803560985705849382075751853481707018546781338619939888526356183685002323923568893776272417522651430851875186282378189173645885854235103398249591991482222379451713417329398509901220364851349606555150658145979446916968888014340121566595896968991491782575044218200304703044186609061392196049328746591867458901945646721988340672528908988903865954268576514741052343141562690617614261614221763241972915564495682103982518736308277715260347185982527213088174407640801046633163160416510228750582003382853664544653949015268103622139521808952156484589360548922234868492205106310162021084290079280096422936023869492028901498835001599388109229369965227244015204403034980382073939972104062332907888430634400002896415144171524243258597507575103365107297094619746625487958690863563715060974109954987876137420018725718826774922173722656563383617099072569236348726596273066556029663542728438444201633970543025732002296334407431421631403532136751562157072338152136101260924461825367365230321469541656809882700746273874838287448916375792055793658951974468051619050145245146290747298297633848117554987556722359756012158110122278224632995728728812076566327539271758564896699854264966725526956953415570071930237599675844857686889060950586955481027293168245701154973747979295740679199012530985257805036335119655802587294428676813445554500727004749871115714426243532739829575801566707610393027939801764801051770877686877803945948865888802376007697098370855175440655378602784829953025303842107091030507910444168075487101033757903188663160831376993904925822236164789275251516859512823312272469459357660906017927725137726193037582161174391133700072054676845336224178112215276725619507676885197891497803815452981718861258133962695793339200616004928605818167142273923570127066904179565347676989974755733559244087770718960891946052870355973429964465617558037596428072219351252485614139449543243923243347101710174761207729597289072837802563019087524805081133041765591788679543827865215104580235398412583851353318670959113997200347944355815267471006290966936274028294538023579454400100714976258771171547027909055343870642096894956737423819763258880067534829194217317792294814442339671206528652680228989341789549656619032139059459911114695649395854572155119191081265115777328650542521366149024845261640854391439615669547267272829334669647169033986258343115437322868684125858859953704699567615460850854206625579381331450386860118986638198685975538585679685983702473680834071936988441617644152189313490361561631901322418039547351899170899396549765870082062103507190338975951368521592244165450633708467132785027982508094411955778727185044241357874352751149867649678381918101452471044197343177695541479244902035843131373878832655699317889741912484178164656065366618512746711385800127184868698848234753177408274779133464376354010531509139097970464368186365059454290095760263472282835593380147413983424233089351086177082472791089007569974093775408191272677195603771026468541026500058502479163034156742783036316592888018524708179710922468835235809625800775803409480544510213055857435864975651411590081979812692740572142398482468313140231571283008492832356567629847526990404724250851480482212225502807967725314751330036228481258831618570503613640068232667267458864818353271144745723659026063204011602421758536962201631615007747909250442744037371395205432243642363778277295565738923446304400882882970008566685150303296916851881995569610538580054926258353236957394042211564328152578681986685119357165865803358264972561235168649411366370684162276588024393414623341251420576397110478875167919626694180065479607014085328268202212976679813249117648104086605089693192539611955490736150408932710906744984457012472150191126239637238319401445683319372397025227402800291323291600625284340399354618602883683425018165674545108663227504348893597659991806135096834091257152881020404247867023758970282608013726733200570967615281304294185798050482024037289378152638444591053440990704989972850132548891806229301101329158657180434271154910324123702022749985081236476545134135132410990474209369564447262486373396996584871419548088769010487711716461549528587323727709113266217939481794213657281373971507241245446741941993644617575407756733684369912618756663688355568404365219809274286963537200825270804337851290003243169354513743384713031218526370864268554703091672415190451181377470274053280130579905394742022497857927535003091905831518155635586327397023426676737882410260339427726720926768117847781608774761561357768348627604154270221880306180859242582485832053149221879597510477699970231058123339173733356295921039343051007009616117436486515551929419057349579328176294581844228600051771299790038100944773656201358307486493801024388590450480832564240090690611691736675136564956574541023013672554496190777050992204198298726078493424400785722420521775644177011067922713185506690963393597934948820833918651853853143990309578815532422920748507781585498478505028051342307836676437380421640291414469458987642572998499322188952965250137330151428870592537838953143047660335011506007747541267287492841438346201232211582093775168556226035315493793960813866820968324187331701861016378124668511204754495516043415596172056853047634212116833333969080381108478674283010324450792782436506074522877429565510932756620885378594353692884266281770142283285366073164711379435753327725612342060873454421259581740088618114380405513507460070317123529841171392956273471747833822639987440101548323078146642897012909082137762890069231731852044946070226477528204994904962057242159842657949459314073029544716923566102532054949135821011919984081519909735809405030917676504824708881453963031098644022574077799928132071499061538437394806811743277193855766500662630877470049591885611093081774814627829076802350746241963702005449359170806532763061495257262454556359369563078207258232376316648528407576964997178053634429759804009587215246825730553074486253540095590212899798234055331650303600163766861170995504660602007591550288404421600411266189658134391508222264136658110291791621383862282222190698659742411579193981669148292308509518655257920384424309292672564224365792286039041054847136925552950603843779793827300931964606675408881257761752371927704286284700825798310346693546103659554510412477025907156763645268765653484596428881791403744482066694190920938395367905906315132342970934620386953945604172338730184850985291787655165449296301987212009270433255451879418380507846553277545963692296058074323283120258764604161678865618096348159577043903876234595878308992412178584955351024101543427087663442751088571400478228147713046869972203940622016787743265298869427034700730205628206057153451538355172423036086554204919548328009686551780787093588512465565495303606045126327193768142079191836748950999057103603364589927479940497196432171802587995787702072561689841048936826956808350791810942992531634624641232867599983415109927199223419797197638931384394160286543926077726127384339200074450612747420256649309444232731760225511984382398403500747873549584814696638180393362876759806531441535057934640171175490370922202266656957392426689161254125854789449728887825826027977345041368107567108462931415397554374037656903996198966254074198825567662596365361833123218188711703827651006718874944616659928531670009895945624494844760095453965208824546030862518654491277016671348738612258326189831044693102351125614270692602055849437873745123744280303743176566497239073243226291766890339492531761790659382357705580419435474928522192744705315591839571263543715683386883000193358848551054457878941253951256256524327602412825228232031817911145395843642478113421813191825125888997623906422659287391277945137639246853497205110955388547505539616519036493038821065754619145751601498333663702577273276181805687768102608450191604236827496274627665436460023478827980898604942890664729477234570657375712675082484996522300428413812968119171793770728919132353804186814481054774351158415901270737493480639040559270764810508710363553800483901746456377064626787898349486034755457649054954429178674788975915185129456468400252115410659585625384742998655003664027103324591441184485620934399254584776025594955452852376602287937875607813075397890968563682089846523866174661783581040518630711879580173941615207755757888823458443398558880102532502739934229270989111476293000136970625765357795288609343702212123478567274351441054850342939902628332635728742151226835293544506465301556060434334284487105739309011468166892495219157954964538645064495752303779373019978879446472620759001675896758850949580879554088495109955368488902181175452340748160159309176223389679581458568360638259697022129078178925378374259438673887938387545205559215590435943888969603307516006993390644348770854666288755483233701519757660770481689970838913854006184878709746002815835376953133150873584387996808547825486342641728227974752975066397701964878564840565209916855791940048716486984645801698763364622706759554870748270195563711008605698283144824614592522310096614765907865526345874554632213440728732601228926895457740312443965530950892972035424884789213051279806130231371286510235971206673666496062325099707369276461832987312444303470172374333109156750436655289038891924786921975622328382273667768896427728512100719207352799962558275890292904561024790325055012959065705717392599451823707559585060474810605793306566670627200884750567505771901031077615037068954199673152964990584760836581070590153015553759691910369475220236935844033787205290811948878365251107206057287469874999677672276814348661999299344100298095988818158333693287556409162144219767994307799963134534272900281396347882475149711177782773564983431369454651249991368391254275879025580466311334804614356338262206290998056546346853640856844104168260455997768627408283504410447660305722969588721330930555712639219613496397437537928504282554823562918337459044555524275722031881650434059156555376927791311667723782655178198122612843661767965238981271790578288092918392221559398102000699753330827561139521566745560870976633648446619450561041073793587173023662215149887945206601209728111765876981188947947111640209004494916048757882711999337912523185609488655301437209715943574994011921392147066965858605151824513486545417682503208682390336582506387056175494738812824194147999095105240141321478359158289211487723647559098578299286404560216203358121888702453306754950631005605000305497924270557459270419831402430788137126077258030136016379230765860878096160397034910121992696149312761861136161757979203651075093222231647005009627095419035232556704571027120280982060236164045382375872360010925611326864275520613902952970883101794707173101211810496386148717889515609736876251749914909861621701401519362535602686545470845056829516931723958454348266587074483434889339163396982980513103269145160413054782136215858700909994003587809696119838726463372202592478351992934668126373776018408113379518611627014490353202840060864830963273260465511528949610087231181744114326494521472188664574206703081836987802817917176927244797760688320362175260623141372024415703666575998045261537851779225270793091332202779517067325220412815242676781307606367980352209650732847040709822104461440657730019768835636612254471238834006969900558557443555159697732291008962895421360997820795435069106441390058016633259647829933547735573722480295680828034621495165953975894368996078552083781152844746332135616298429054374169175696474078666489474165305906617801649481623302818186899001616788720382437399804574876439128385503720848885014650805068594506487063851650886405166390163428029027728961586123794522833205051743792276640851838568452986279379362617097771183094405068740878609839183180063606907386019983478822483327850748742896960027657077416964737871389604788638372441725624626494240717138598509949393852192812238580896971741443719142396786316955614714486359405405829905123723003781366635482049681295755851486494116793279404961571972142026657275309441105896273714588432282100577427105584819113103307503093109028003117651737751918089318382634397488068059618158115070169693986893812467974579284629792915990606081817819928089843937904733281972290464270307379517871564420553320775431228174992259807124077863308874377917972594070100817938304844017938849536027267256815147902198645635468153237770038732541610891714174410302003867667539606004268976300715984696843902168446079298330014752344136276068967887421508834174921571394750411050310901011270868847395098669730087556935435731457302274325084283789049408125748063930198068192971932180199777014487174004167603172238453167634798372553707091426844354947524756598950498323781483489735511904785200036749997257658619576395920046035557713821622581626681784046042221351215988788804724914239554897719195759792019256147974085189837956072624895844863415259465576390620931007532674272395066239420194978214651833148447020535841122516166436251787835604999410451700597442059957865257253133181729741186219819677751652816447016748108601169918004385710329060027109580798435596240143342202584957877240963059759998451572953901947986677344924539270991699910542181978100991053691560506008905920374151204415708222931682662448578840175172216945751496862528012997298685724578007344758251553148736929241543532181354365012409206602653557878396561159961338947348133707543253382222643939980114745022573041930123427765228852425658709290144446532572501844897567169355593819186643393704421029059761700506952722601268254152180128099194933229927393282350190805810770922662027458911966272284285155672568504196852147570485851404043853666659583242288015183775393635654551736414128642213020031186645214340553047607559733081701378240711350844150283435662347858265731736785485816649928576854333243023662040702753105001763875450766569359333569076353118634757122378577492727024482982771979500347170409363399383692772233924258255614395377537853426165222360585630356884873819097106401417835473606481397192473564492412230794981526156847280924628849457963200126135432723538154959801900310729927433824525296091605903374954067751109235695845057025423365153958073520693447114784083319182492992909541556360691087982690905888315871611946871255309998667431156372903362584563761426421953739862866548555019331072971583890775987031095402749758421582168129671012699424466853759406221233120613506141505685375608834122016054370590862418020120711795117819518364148906661826106524398642595087415319905270254503450671164747065290168267567186211225408245158210831324814574138239027655413808696422303685305462198526410131036461485069822669910363415458825110799208167791879630803021870177069235465361095775197689375308879094603904465847930492336761112118968481932747353394768352233778730345750773933407723476333932698062671335451744230287875352490388909766348244533304653592547596819554836940737774116178899215574582830052788513421837093703041312521297091610974609628505982209091035082127705440212998837548133326084597263384666820097219089659740359102894233085965968983489513466111637330060709652067875272518321794624122863520083543949297877421007922071390329086791463671158517641079196216860578913937731301046866429631370226597168955465302564102616973227685221900148959386581866685198638682745462086088363961706245928316355858265058346978810786411314843616305064186363638147084951894266055645357728735454444616765586255704432952630846464824308299914163743335546832905896480095179183708893134615333684958423374641823619906827951542745542207512249398464441865311494585018876780174729618208791133578979121666998828297635877130526642137525516538990844438935090662836265531167903667370865867423037790920863659000205801492543379507595464110377684826218121077729552270925032534208590350959314618033359284577657656153875756045528040381700137900665226767195484062092606554392909453530714793188727195686730673829964356243651787970239161871961631019667204614771677305226000223269881793292816265024226306557745811894196385495003412312774840409120286601070743537591377123064470148393758525951808977091066634251388383702097454495914703376042075552107548624796682410094691797787087956051972433500835394619724272929392077355560497587252838972757912971576839113308049541263428939016033488492174277426286364619425829634058183223376145607670903856688472128254595118017265517429122053498079430405128954386222436320901210020158692365875966362122438964214753057185975630697241925674619384998241516474758360867254356716896812131641069361212905142777632310391620952137332732329578779964164393903733599010749448274679864973210626052161033982123395548348260392612389451391798655507026472103358005597398154307290807403738002210410752843484202416417237468561405390284205673968365697677971332885088079363995790406899217631987384100680255806934501838013081220466123799163262097307325253227303671956533370375072495700630724464124584952174000887779434063944508524512743146125638911161546211057591418276104470407191159433060984866282586480704261365647196660364640530955156587419929265370999339308777158147948572848726526486502063696594547428759110391757451677503360653924063374103573494869820590185215702809296635610857189408752435005618011434970692061360330000035855954469721308703854006180365178935993696754247607863253311208405330276329691426957090154489892969185642511393754881283284717833191846013775200374452621837322573681877013046683408091726782711954165031474047354507225519954420376388139170117380397393696927022170701861988616813017811552503604784061081462386366587994933827210512593814799305378625262218295521761473808897158547551063599587320458253104114753197487618549917028627789859324673102252653958263579409639008939917479064209505229902909849917868190438654929273600665306587919776524048844906210546586904732073616850640898054027080688488494954720543658313803454023825595598332060735833410989785698155287915095111330642161660428062330918952860407607872909631531007803868822232395017590760028928955467567649397411857392292506382675327739258809692784188231165478884678607017414362109761197456653999171134505065787974031686379268467957335786422075607045277176930395308917855900670899392190155045528741979061244136987697265252646119624077400566802851311345015786874327279776703856373417416984100767473144759645981169425144755806590905531737073299002346366063211019302854288121923468913990097257010939793780652754709509121272084121907639890504744998720655165611121363941442356096415709394122424396624033116956435823198316802354050674517459841991232073785419831582493245608614389600463319319031377195152256524279389547616273153997935287237099484399493750096602921914946288306430054192641861620185499169430258201897226393421761621402706215126589569151663964307651274464228427211037806027167722265410994636737790726011366806315803473967831158879967957173532408336148846871583979610551904502302988231586060331162999319088645918299576822847015441454364084529746614063461421381173994682182132399381314673893560884517483874710737642875491110191115265727045588153411553545325904605374538103025006729569350697354915561352876751065894753532274841766357118412328472221253376644321425666311935285103255387408371711571108392564467283987511839573307474233492361177548822405925385564770582867612381434414774012969749127777247450544170019390035159603416915587000798431852933897758755406773918884956469347496040182065586133405739132293022387109488580997827875372502978142414667080948884397197719376597231641437844791454791571399000501023950591391281334189682406294381201605938644182005909505085231208225929137518065092408428903739897720463425719168016859766477843896256555749971425307643324489129720406631147372496146548522114284585288326434720032567607291300258557646486020561638678770281759123788859851744522962161932358159334180680179311870795088231206593497757105637881478725585996767167903107037810585244546780908418211643640507507360325613215525690645225763450479485565466406302824745680061016419010383586573690686165998394743369453873619019444168005852712701639500942570139941768951304204697104757122539326164672254799357154313411644902249176154290700980998311988372276253229840495090330582338050393668796082427284974982927070269215564136783958363826160367469698789380503729623680790351719909241940718653982452051564457433508734420048817810453616978524293588866539289957533135661041214363123530561808876397482149771246366644128545950698936362065808857133507359684482479003449650135836867247256431385683771831851794770387141372632550412609764033882150311645721943045680984070464018345525347344087489304555039635854208016060041256599364458980031069526310685474683506381631444786049495618346858727062785258702662037870164100370008964308640328732293590072055938130739505273692330560430607632677186459794537751406006652548507998514457322613993756561663534853942472760828032374539766310092999911915930884690481324820524462671149947073309825009263194166329204311749845367610629014019811050660031630994906825843581872301849582485840979633729227371802248428735307421198547776487896191827484938745774576886878099178066014596406361039516698489741832485567381410243578525078223975126521825786550396324826256804934899274067363062181024584768765238909024919483066355761094496832232633059641162583385487910050709477213640161932767622638136269781482393279477155022872360711225889988168292712765836136665609887312821388997497410031867752400495464220825817942473305137894070184010782974742025581372008287580423535105873505749341509717125299485455301563668536624419799189755971782773079643093514656025286039123961131816021694295233797421953789985951418127306953078051806373714445547464373961175716724873941426960032373812179436366388550595390983209862456744101365749556870955321801595049504541491031228456642578569575159742852197435049117535378357754824707238121241211695400562027244883416696760565855846020265669860528115451058779433421310101545386238173034514875298609387583629451858967388311212005429078110813045493258256320312277624831725417767908255038641806861979886489875585324444493703932103674348117735460273872472894170382566367586289483556710007402122607016242620914378128859136296344581221613109076356233310625531195657649338561668152098621313189721737778604280088542786246421564608606179929469585257234144070343113662669081341048555111807362686829871414796853962110308172794403035294019486312349890783476675164561584473337802864526296774789770539758709560171836202233706964671346444702613767643284520490411947848405051688640786890602988909978260332466195303948866395619101581489852490821190367207370765786935355695935916206780933301870486413343090185871744257338463284195835325241678851342616025184033912725652097932499924037508110985549389602181203295655563959342434247998492395907151391505601056964442372237643642039231764184754255052962268342011339288842580821650396435811032426377596096616205018622716628246467163281657305914556126982880756776193332829629967952962909113718367470366173346195660542526897691866295409512584231517601370030428625264031768881584276785264029056393100735031760410569960665544294539966795595221628597884558467254047532205585347684041695083153717043656541806872147462129114724937123251756803107310535350087910662047148747276147530359408895096120078287040206210848263684971218724705976972418577188189147115465352995078583043928382806358468234528848848461549296150559352840359874758103348050923439822142402787846875630282467796638346760207591989417315466631055957854824843023234433235453814783275359616541949066356586651961554249887897722936033790410436238324951710645949014165170776868730334585108097184636450355437786102038012908178454893909331405177549006334596893406429857811121094675290384226576841844711313187184264564663160917834447008602349799089687005724734817852964023189936662893086851965535538747989625953310411487106863270848315314832355023800579009470695369964921491418837837410611972001468552665461516928253323711075824928484296335952327458009062732719099444987808333375868071346676138698179719632882662854616544360149069973335753720882839887459651257968054489028619854556321195957914147226851788941387297254491347242289961117429350877771876559467261496251312357367071570067168736428788151501313856298835925503179051234729358954507259042085590338291248417576338345974062378413962160127526745419857036533577217932599090624879260937878239219656308600559001010928456537619526902865044654353308232815761897422157040203018277530165398248282100551695314242339264336203274570196407077479711525208580428826005030672338217448721953746947920494577033118630823089050625579326616404841040167181286131581429853543571944759993614148263004410536390677473917358501499505549842944865362876690061817379667096828947494505989288857798224142161273143351289516504098593007270819284239546527103054721072073408475172262852559986224649528984586083052188019872735595004922283400027739966508997550646868801985263567931448492640771605289720057471385375131674617783536067828377049241010226556779968738800054230074010100364105795388728843211293882380039885166257062596711493057346429474183263707006420853724009479316755699867119820720722520273256023493734796920326277887932345677133545717166416047129358325666894718793481975290614285528918753293127839785452752425857114391167413540648678773089883993797355434523619358855847778748595715532653925017369278957855806733295279404880290723678518740870799152927042672350892016036272928335130446274073889531912529501378720343531412221845569029580714130456469446555527973418017398321928501014386062861885261063356580518921668628143325354893361021543961416379186748429991812517116753607607723247778322541043080654765731130598720966119487985626919113301747222605846457230226191601873185132163256784469599276414937664882102307021204235753144164305448523531932743188655134879627094232323649840523610455644762627431170548529480427116077564850931332741538613552628556029204519893162137982678687235468690136016935294426635675630442372196687887000976293751375177328797350755168394843970472575491997440687681047761152263222424992267814509566412608272547168303088466403401672920662261959467889666716701569027143812809260392704963383618226969491874870111349439850483573403615161896440813156837276555970723729931909566772264475067652158761633267153935440486144868520706664551815226054896485460659001494453157342652243490282736775257420874566598585000673803758667895061704813562597274794606258852510660793000899373182433839026262891102609395843051677779562698238287431777930629307594212564427088284701537545225052564476132097267638947628771735916391801221232053111883536657171821779459245009238613154160468224291089159640904212680331976730122627641493420871917240161550920479525785752394561476447790436302466171054421122294438467582066651205659139049157782970874778038647532950958777208209820076449913012246170067832806715261780861699281436711273176481405018045714267111207616238264908113360549463127007117442079814724582028980545469293017948767428022943595815554852057934100942591031692295648679224375406450822843158323718077275971248418576731842142062910304502445751496595007196670974443412241589008720276584015787541299803343229492330784696606359875096241536988234450158148438032574383678321937741025933144633799894210857587063865919631541993397842366183148504201356988914094045327899474630648293605264345911191072457123662568006921940142155238830169011294083212319004348914721307468110177470997455265093975181019909986399530900276441149329537060947019785214510013465529452814110296196663259042886348981630985941522600421694740625882434110422694115627654567360086085861655030391806500140940408387952903523811543559072116765543245260647535618583394642656421738667256778463932672729842878050717094816961471512671232438615410664535095596605811642161250468350788492593370177918877567588869405543010034959694136148069488793623997319129227097407193994299748418282667830572377515326356171871059610144508701316781884318988063822566732788206432349318746829088100847144454906192143618170014742496545647088538696036934703756349095553483742022003964536060267553536423954352668466884344757974180692526350439721261460814175683791593752148574906831204477171250868183329846048145870127945740255225474558558468235574997419521744830301206664257332639366123048884625686239844642631496599630158003070090237393267570517256959691715374259022978745778492059176679273561493966267419333582997572674535410219380848864222133818841463813468504377213836885178911473418805002346553504030626138715337081141106402199011371322066089758321067556015404425260989237064124077379881487222813162183211567295972671658837960739334052061668773937158408067735420885658942540521549224869016111446053892640271580874658652727855914250845909264419196264016434009639904130026955646190256858436241633388886717940528337780334143615293250336770229047647979373119679166486947056811457085530979964867045126130185300132283944686038850283409281203727953499164279618313829443931585563082829333745444278285712080643336560093126146876068795417128413424275220100578097081157301066155440369019875115145845747140749995690089115593746543363168499542343296779814674853885629136815210877804674873751293894999932470530422490124494825066627356942212918949810667213133541790334878537051389346823962885394683594928436347164754267812465892106890280131171710029738520788149442535049077215877305746162922489849487476338525506673037402136512734909926459059152083499196651357040785810674634821796409156980931624154046115560168448465077725542385183435659144879777232508642409620261279167349974310749227685356631710410120837009006183240089426422245175862442583385099903928783345338076921563351525252538176113080763429010654853414942138660874343035032279539395530522739148188432186263241000861357809958808534547460931792779593874078816930595192340903074146367178030031545838357917443425418714234943764427667284161922057213465120351440659596155090768540151485482919625429552704922810281055320498850724469322353169110157085864432806044837309328065845552724078080266482077664952670887371272669330114636279364775540092562391287292885368625114244756544119628711547609596481775309286184281559291355241977369031375379568288351876599171553394114525490532915614476929953314881967637048314549176610982974506595139758576042978473449728368356430967613089523780369250637299523739734412024481226766534292728016054933124180447292265562130014469066405599047172575825956032982751098793495835734568248471098544276882684674687921083400262480223347287303611131597514174196792422810792856422402757391884532796258389758322551613857153184811197200000022092455154211889596315263309164369499106620474053265154245458255148556440189095842126665715946975234283595723042976726897866640134121610480716173181319583675809254947876223477754125112699293837907871837083604946981786791395529599281337099704928885354491419795236248003927771267018678627849544336378539964194284715506874720304199735907755878704473709945030308416456732663235232285807285875813040999146875522292525605752893095581149297996620306712940259290987514649092495713484494519819842249183494863753610507947170105244225984552871019203034758474694289015139246768736170650867212461140167550496456437370221784577767500251903264060450448457206466265554751903129221882434889428697988984572357659576841588647516537513754602307190530704410336111780568492040930605187503907230086075075603307352530860926251524222102530031227878626932370862162165730807559552375466398657099452154340506112652437956980974823986473952481112534445952569259503245993328011239940106048981981457189621055599171568699591030942246327448126081077731986261179320029854664062713847381754132974302020341024847503270290125288165677806230577426829418700823129017407525508191106401071670802077719073460883062557552126269861822082720210306251236337473308677075181447182561707729770054987795120127640191110457364417522896508963891389510147081491350219649957554324407301312885084832311667430701973409766698447765178165083203513373550016950240859520922380587533520344263936335981330783645373207792902099697246980314300742251713047966744249590049881201063087451019855411953510590823053053786389628863798756078942030316356942805079289787906889149622266235755810704782148622975132521720575333868376017018397625864280819389081803619177014091785236955849552317341704390661530426302575753854849548359539210157002883677067499436223434454864759691043990967044843637877604014448766663976509285280776118267848766353856622136784424519730956084250628319797794554039062682305257575833409295671068722637477898530935849719970839358302683153472720772679931532367292479061689542738225419342042312461587473056195337842545000986023587873003259896132538479418233774179137940487603568938360792353804019014160327731402707368401835034953962656629728047097513320081843498282078169582228170296996136695415936175814370886127076918728475318838578656239613434302639319796040313894498299390461569613484927494303575865506243138504170715887910021800544358256603046973856728776393411063036382890181723901333470802432616235351579086750620380018528353527471195455006858799097100168586713488896802814508634212940437107074534708041018346444789651367025525708455568064352500289219147389050012955974447919748370546995069852086495432078227655164146547564646875266068520159338419331782393121505169574384634806137495060343746637065192827881382100622407220482807673179075735280618830060323126507898136977238997875600470396283198191450645874829637968188971960588668835121595705972632362439066200157458516182923499554936858713727744566819787129465281572424151853050297852515126911639412466836009334735058474095990950090435284825635329738045128491192388450712898922058688267649542802668027625789204096081678801238371564507185152349858211912650579123310593912617621834185488531109579150607388207438927802762944843435189405867075191599892950930122350770945166812493241723917488118355048999662076224469346465178779981855673872392443899367455446373681496730440316120946078903500450127651194566566964894371671363519952643623437336464805769321485073405525923404688356208524594445617408490308662805874511760680979384113704240575798859229827705303886864544796802021963470598124045140540224287306896951892695883448444744614524191509504008807814726779181057778683485854496882229161172555532001644051919701589051500296171927809891562271336390157028055267318800046167431803411441773474734841766139418599273990818913149269269032826379792769213185824954300210822292429474027154872951120097058168589390431089075970274780115367201769261786811309866246976410524747486202098064445565086849895337757444993434088510017846351749168538726466714251067531971227668026338472106534323686653520677727209657698473711556482876360087418300263342443025222813986666704698753598409661267784564253776950323152554920759460676255725609383612546381128347371464181244724471826566999046115904878832844571511442041847662325363166299378091264046785329107843428690657687327510116553789816871779893115416146047980898346898245438687094666082778094335476778264876579446279175701860900502477645316035914676851999599829618720032641114261533676864744337974990191688310448970657160880416600819315106783939395443342048982849949345971951177216175162150085041039284070892951380009128312944201552422459375340349017421394850181623794404091821663396489464052514811178733753027759266550143621704968923567084030707493387799674751735207098190580312677124663103230091666355430350008941845649831412661626810267693885647637135368070130660370835815064321584382216408884610114847349457848234073209299751624764186823101703419124117559881428514333184820296566615758151626906495902968040352290525117605463688345813041888427483154350509242266881789061036331204098327037265049360023125674927182098976924251510896903472753045762751603359710550423652722082451623244578478815400043068109730809813707518802454453268651850254356875787974159588267297133280650984425209848910165787815159637648311225659574937376210178248457955168066084550382572319997170838696120977316853995568829545862878095829306315326278887545269243137204726319026641200045256116741694547189027377084304038849259587130267906878660506794760355218818677719686419026763222619359068390849756470474876950357048614922430888363058226631968929321908331517718022016762597752182961297960861746204579927340311846054578198817730168091815170629567423908656880623815095311120549172294853645393801901035414706133585414450380757433257374437086275198220404173228393376389328105938947825720437459129917491564999002414137851833007573244697618129087544231593450828197142771498418440170733759036246838551305551891650438020863263014764318795549636391666136907455170023321266729936948885940877496053593910175732736673170130772128958708593725447591836925288937379172743990915045800277985088618870183916124765129996353662697750612698907841658473163360371264653144143884774650462731689910836374886065031675035214313771277484983893856593656485126772209184929914919982689364219482641224329867589629729041721628320697610115716735361353075345811127667940385226889532435861698680596913328155005358832796719062087267460779280664640044012100489649165479660154779271834686562158470544053966433084309821812780034733016233507330047946969247898517649267306560980185232385186824731198765090861214922968762200277111335151645387938043808790289836270799797114717245517927645836495208934365793498209063109421154858459003882727288849521587327007972770102044929662457437594814937827000618367122774363006627780903733448270001224409462661528361451200707095868685677533670237733592367455349564319901686811118463901483309816580592940685831072621697951134314208251600104105956006034271400343615110024645971939737660829096988027064165082239925350273117702452610834138571235257294273989798961594160794876325016741754830007084597395790126480308217155714878772704172184106873090428985892110600812724962426953661633736042951785818085326845813193940681758913477117374912234732662592153482841048019888746327267562732739371995814331289258025626409220132717159165443329522836143142718938533370221309060343364025999632201152262632072109072538955190154593055553524442700504971549879044384268847080092100086356486225235647969005685468117458553127856952841732885598528362780390267879393327757235688926301331441506259139816763524135478414092860575099198986763901662004894686763153905688720492351640997234600732678805928932213659398970208661013650422712132778196009466955070847201447654968567071723604241426968160072128810928068893281035480113113940553355274639305425776086708091409621870507151751998289199080987832448051078057451656023232383889761223900820228181889713448993437322201256148918324984491590026997076397767039906692763740890779289694688824025339889179321351688895202460866326086300069521811532730184624248078974338653267957452011016601221414252554613157409493610856093141558431785095594060583269659422797314409944543971660284698610153598983280478957282342453412875785834584363084624525439913362118383984365908479077253840304161287930588126937417162211568935417143374759445087407328087889543277026475782590194820704715620533693109074267077413893678940274536388973293583424171731002032495966393429897313242891406479284954177551011975805259395330440267695794451574022421537695075887524919381045818276704565690370635505620062954685030301638930352114661727929279058297630479990298070167912489675755302690321645041307599096115863026880270119818366317160425771915099468555100709628119405921716660538170364640376114191340081843139987701259229067470435292135768560686581733691546086894255435380509218451841669780504456625496013429115430232392007163358107424277045465710045063619321761387931688952068157132713178542379501511882301945381422410158423926481785215062254607098228622878188283780762244685493830989466647385640270903061853535745601676472487961399249494831216298403298032427411418672422072380252624252411758599651298429161405986085789710271618990679501456764925728520382576696860310732877151043800465623630383630831187366026327741148933158797054167165391349964629235439557256433301229468641392083170005772775603733712928022572286510935697226236263859487620125365989935633799591267363243982932916858913979462932578712131947381924875151202755220362063353503963345627086621383000533485503413153105987773547591097938429174385377788356929876019734180229632605120947715275243543841813350025642008447119266377864690598768719289074007098880191056766238658701582473965268465807160265052626643163249916230164843982687147131216319622590085603968789522323539980099216453990624558057782782189005131788095714247767305549540895153047830717980898869812302864481248028097642397035700565531343053525822625938751821488355726899341424301339924920541431054647760376432256784449041862331235767456655405962916183220008519554043583649597021653744881288459227825192970588717173278316533305690385435234614625022770070303965946317494435397884349862365438802041528795173440239473653423363922425173957507626879048000331902099881373249748157298000743955709331138267845747222086875115693797714410608402893295419978126454082983522834401224903180203258859091578332453548992438450009861733095898149133157891665420599487570952885796813375405960483562444978959537020701468412192912541245427283586758929157654012808397107179485634119495421979211815879804352293939164828312269646443551469722641621792666794503397749904136572721854961329356318415273682733805079488008690059630203555464154632287267750144117878623220122781363878130556713721299762902975614885837506214798276677398316870098900877164841395968370164176616384487170055914063539432698097781806876396977251873372437575865971930693491583614497527063211522444752404845868412740121871672548784603266324953348231755253788888967956996204411034187334751122647875876269622889694042502967060324272895256973476150752709442172299341027373660863974439704976493527264176539645465673447063070571529740325224172050381590940625444061483184646889055407985746183888351758393974084733885063722378658808933369910385632392416563220124641686258330938513117519820833262633522817585894186963070128401471350141731876911730962013241556624695887605440021462403074610040094883376853404848138484570034364761031592948646177273992020033097887991741736337469764623638116737075008542697109656349981297483661424491060518132827494555767355922990689265094791600805861685896190529027318267178564440570258505636825425727771979054268051704260408506167852013139371658716592147059785309774652642370535600498977756840354715854315929973462907807359061592083377726227846558384644475355858331558484150139728687297010844990472373727462251450025243578306155643049551261978606971871030160855389952610885811732985084157705089754539928724181567943206155070380240492402241361568799750743116123697109194251671569216835932876512777330541580404570027963158109818379044725717885607231953099178188875577983604803570262130081112034873645256259014939967641286017999171143418875652510571477098659587582739965717709002097253557341505993594147145164998450795424154570579383111518712263357849919695422500381966321096628984174205991216430867164559622629032054049756220680925097924500192632752389354294098966999596275921455599117663658128614878060098252355104658530874601376599688113535385954676506288964553117628065273074849670246340267570860143325626085141349540684703113766637351345269634135547738306664010728514780871045800750041392575116596575709754571501648431232181062773274182117578073569903936823989214705264591197153699753823757893783443351702929011676798471890468154800336323460281980097482292239125390333670144254805687452063185488685434698790271418287003332517596753462261878651053137780556557042533037724870267959684260838729519775439767992857352847330196308473637022519978003710058392262783223942510351393831906083036728399776089493603172840466368471088102362275822526417402493036715430000699295690820274987247220193072257601553409884592724630279495813417926331017266147565502426231886632738224673148096976984579406815665889903833131069852491059937278641746726692984919643694130760537698703512844962190973439942863833433164701211672832989010698112766832900684177495119418808152620996844808214735426579931914292700062098855521080418289709707202366906427067483033716286130659955436442455680365225872978808669132519803640541067647893539998211717371474339820418236311365791274361610798652781351765226749868259644508401966737839350507256722586908507760785783732713784424662379820425082127128468027708679455779876209682447654668652086314250651178342985361174985861349263230437829662676966060790734210940585310260964791408681679853192283936495543349557720453927239186878007257410648854511448746331778411656097916634698257375586535689332883668966346638802943721327467737047520004858957451445519859110185205231300242441208023971863280899407005025405585472954711695997147074955743366824425683977838072869051031702614361323456665945272104267389033627023680632021634415786254327695901800381241306452936580245652884793339630221574156500969126634328297791263445642028907410664504936543645308716064670459107401366172336240626883186086236198255744718348807801067493541550377329532445876299318654129849654648788371662487310564253716585255376627547217644597409754778738709398219045652386802027427270704552677042401448717658462092479720251521439886176797590231847581865224287831279368594571114684517422029715679197297266693127386135540304719670267011003203004731740807836671704154889242923098643858533668340902688510042476181644333445966371300693037637970072241985292769523483069618318149965877860080661405773515667648012328715791241915124953277372680590880184538811589725225541542083495206018287510665447399899677715298103107116558521948279422564401970702314999706149918727625412456544675065634558010196379470910538794629403024353896025268028900127686144033650982361335937698770965467765978360300769383578673722767674383752240291120100853374706845655906762030074107353188720281368034305347118586348699797430006385518112867126727785825093071172027660766912406617308125745158950200770990079335063333401521277381498428638385731711649949590832026004732456470406052633697301993229749679841345910930257877810947547962622799839619594254424777050141090700670975026330591313849929807125216690706989754437615615251054812856404721387043154434469121423433539153138079897585940590024237546734715733264306307985598954803652915769932343228322712444206707809648701973973484994190336731923449608595650715791010144630351347860358057301426007346013772081362667673123069142080256073130480896795612790527747993333316781480733923988450781398822479120171315945228475012915055265500196462706667947285006488812987746201076569011715785241586525333592023580616802801356955954033347340060434763574975426939457903449170246034825400596366101169735655440187489019050435811103256216124980716964244170190537518927124567854143100954279320495791712699993677482564364366433048102065515490333540521669445834348803600549496911776607664912843870882333947568050164360561388239407627854807561832723824382804381035284681164489449941042068878686346456018778859419071058204997928448930571836846370353926852084698312863750261052471554157729353070290161306876140496682039969067356648552765495855285864607363056070717263294100905503822272682744084109945159393092467560446357476488819522292013380923483614750883988035920483235181771506087261678369361764507922774023989024856326391322228477133605583588919783759925667690934849604011713228283405947965269396730730410900271928745965742373338559297657035111679921709918768153193324280944400724084611868296906204817732487758120248265421075894573207741551404718607238355591283793709703756549046147986775227089114509474017404889784876490796089474170201688454640459870109416332794650747315167357654947159152419612722150344092346354768502123004937513901763075316352463786102485903159879132137755994720311529118517051602194661543771619718142253392813770063360214723532124918973614549953851649825934284293073442640049423500992588817496394554322533959231073159710738309375254676331020853315907259904601197171963360568542351902617530080438668331449707964247438866095483703247552531352976728261743360673520494025928782344388481642918950530246290997613297760745197708028538451328547075046369847647466847111748317155063278073391714364375334350529953578987640676599434197632122373750003151367302654827923175065516645482885378106033401593911088470088270205238635702649335458883046522189770051885943614030802710341094023041220314320823830588629808535086057712939922991649212527549675837875939449314849571531134822804624026903303736751588806731225332988710889227363362525972201005999216140833883007142207614157409432944500956837442490256988627339099233391438380853748024642587634683616778434164676909580346712319088314204900696350803921648689011552623785769655170325999145833038084974795077534784011586255128567377535545144177101505041453119311579329567838326241334183541556492962965950402753379678296509339566855076797424825019338661959105493480775833527789088645672825529556852266074127507748519955299342741550617359854252370151721506656339988323515789478221642732536528919816866553469800469609324427412348950420584631861555748208236675768993255067757686018881639978144811267458194446578847891687467087945987743122845168304217720296519401789363856161717821949159431632736746679765579194304154207577623213348450016941523973561201316813183766251303693465076310543385933449345407877892249009663694592966530009770218057487288661635746524530820806302689054461037268318344461795522470597247898480779522890407431975479970161401644520636111434703011790743650237753418703232477120959826314703592177157232872123041971607014370771717085898470658753977576060135275905797778497526012313315972571809918621037333478752235477916653708033709587241076291648391856014255384533755519069456255031484774503670657431725818693741050487188707605943577190761127891587839441974668528290248960384499963135173551255528741743196347858426728709498845155224477725201366497348518570931602703291538654888599176046695149460806561197740479574820193573602169350660657992084190868329399517327278831515554225799786550274564242172855927968307653123842737866047190962747199731639526306065680825312153491021919086715441293924795990938049939211738685930593471992033631966483330639927981699513719532594964257120032664836087628292881811940259492146789877917871533471732414582994724517926230923936916984411278725505144082550425998724756450060425751329631345876628306351312737682614564121367163299588083006721227849834603224426051822077830259995107110062303439506918322693546181322498140925380240026709853184179736528266256623843206827530223372164133116127934511824943850329108022961109737552159267794324369468657013262462301661069697360114363123500951735827345366175318088034555180922602547839503099797910561746417155417575141470751893284265204178803208990901454723126722230008468427436615159337552078783216716541105772452284010664013034595602080233154411366560874923414617927460869378815870528767177711706273752167223432602515146471980486606910599418148835825189615884865684628866885713546884695032509752900743423140444384455797701260004754692134780326211339497377256143886001848696256085793544087753620936231634286102764100504232048079434213327870843782282311149601139719023602162053700712249388875701694136915069073252854204177560734770519807679943816332825025163303919954008069002826010713699069079869742444672784119420851678642815850958924074784530476900301930582654157077646112118585269112410895452802350117161547812093639755845611659152807324389838457014757826216290178282020824813406887253050921510707730880656034728927116564515641075195210108354229370695263867443629031930505157800664298175782319565286578795854248171694286317738898280017605129400141420446805952328630294298081768014769462951779026039638133886055812337059926636516597313600029418838110246803888937181811032218272064795720565300254096048892504814664074256733452737451813316654857384673197630188333922064446810339137170298082603480631578663445452681877487059772628130640620313021486954606478595793115029702821508976447546957881097487196537855337917945882446231421190331931887261976616153618746432941777593412223802942355513460128093365029451739739910276230017477144329916945631248066166950755873061140028211419219617972008188628830282670127455103329894280799344216216928641949095590831174268054003298490575785989019031568624917021654323054737491376308678470764311011490089826758093843795362096899377623542532903066446364624958943026325599598405608490304431210450601903969440917232961537739269340735955695091367531781565715761209162046578142246851208916073715342860047741689589916196097589470562358949620290301963008322178318576447120768573399378511899069964848726971429425944951821119415509567693228630659477231959641260363082720562487913774407914458640995865807127689200470331491296930132440980205038060129319749870230518262759210027373357728278258215207435265001734161385109893843959709761936537241702286980609103297822733160562027402914617688221462310549516141732067405223982508874863527493249673046803010616568240931906710033082136934128580562527712571738939131071285300532603333278102992673990376508330808600629157426496700236634692941382714462249079667146585353564925321784989125716906359555849095401180166505662981061642232774429834855505932500149418219134564660550660938181563080181272304412118783695467889846248179588428390073790716494438871984868274819000902968627979710328354522058684054230911551789014503534203185924130434468168930778716987946345227923424003478510177735164907175102657976643493265456989429009106848063564592090867888819456513012209903723578647843213813205444133473514614767019733038534229727457810114767547371900778251549392711066653765109230843437032391163361912201301738759481986540173136098964556122295323903119506035173936869321987942399914805835317382436293318991525139218407151278612483135351864350649187496693594884510824974742302494637200934131819175529148976845730147372619539496566885633288730130940143415857611575754655289598049672211631991609718448748748226324684481522596038401411724367519154195494230793201132017682621927256370747460066137950208231058775736650500930369410471494349650053359897675712809170399137602023335862311190808641804015348954274870244278380278864466363575503535525075226109616902544914318153304244636506664938122621261811193217086126751851865513503715213027117949847874548402862491824779620325904070189940297475940853422478835792245962938073025744529755579983010501911640596386922411057113544230754273117876310908026498444803709011542042426939864298219109593927190985122054857528178211363506398007081121463297198465420453466125279755196572348779526938857638881133178735894765236791586337591529624631507605463135168568791407599752400468812162254281331216453333685607465688285884213727363521400484161087747081233917497877553485616544082497645654033009388646474376080560380862803906550851326650878855731818239944683416035284599529986942355334909868711356454176659097129522394691665125932418884864936530554907708967916951291750850387373103356334755158012065822191407173236875661355258055167131037603511865931521871298646335697763024011635734441388928937552844602642124212800980923897297349685014650384946861465889907214824194783371677081833099075014712072668213685083826582794593898359313422795816239937979571684147786259942643908058417287851611016780148941332162457677792434087482838050687177629991440485544924573723287613901639993872318226463117842163324829862487052244846804584465512281544975679149445103922631262207258121993328156963412713486785017668898687839446325711185667692613696162364994495139496651752269892057619521865574141731375191820829479423529673350939210438348999661333968047223003271301024326203692266124918024741074099512449988846421848477657005730110475054232059020580286042149255194598199332383991289749833636212139066737969416622567585096414590678572032751541242515601235505673907176365511419162495826550443932656289808289664699919612881285194818392983654200763460385728165042713998841530131888346123022220654815885173884145318571316996903893163475357562756846475419394476077612823833108106073709141833352192850047458379360826674702122066288956167023868849057911704189849204679117111466960639662380826963252597704301074420490392191164055574946499625034444644105103647460716378474318739656161366248407860048610733545784481719453854262770016058284374888914615420619990759242266957809249573970598352176420026965337320709590486931683505675654982023825321958718108343897975065350319748092411379127985051131613377251369174662598277463676055758294410275434015525991527344821947338366155326258383406994806141679300278581774999489883339673401044334067754915564552283538946501831381604911374326543785219155445366624277208183810445834456903882835008371057350265430064458799201020194735888693003760766958566259630868363711446619922774705405603217657764856848887424608718755487896443021410015649678250421626362829075823770405263477369787765976796567566470677633161129015676758444038328457168654086146195254812630967957623581956691166179902020168284851136166377195389082838589098922632961849753336295225944228232355969392507724166703993404450586699704574198855302493875010362885628848611766136691482744061919746892065707826280354784926531841524783199319978500563505535413158066893912234206124798786311649707989955034833373827834533163458112452979194566061604224440434098959738653509132000047312869987043397210310060806648379327407131685472650277679080516695418173611210621972834656315079378892083936538254198935253916540174658730227767778646552523842434767229864198429306953342549394649267383342560785170288208353533009055616650560232227103985956629953454167542607485362956345657065776242811480520777318174449586982586489546323800458404218705385839151360867608552149669509123183860258567693914863953132537866938227810241933593651794663553776828058024173231016284303534353976354863872122343896099638064516470887228806827158492359897942009608742498874163397934092617318479162002257344106378503452715671180229506132737116319938629264669319817027559038728342865177798569431227518170173971127167009802153278895967300100640984547929751009519816224885292945006823160357210841918218408971280631204578553085120670270187641045368829719402635542197824108110894012931765155173396835494144306199950219001799391163048563550442070441312245103916381360746955372579257787146494691774210515101503448301004011514683516345291026979451147001732251231705032937800092071537879760721164828048211402210873573825533461747790494204922686353840881504079173642474055389148603198082827430200293758002584671159148692948948057696141765445131419319128505330891308631009831862444938764149011691721279726829024935719988458813722660882719952754325299159770196119355794119726807955888794218090767168508391698618403128949457277824885256337714019969547323285098193416475520075419540937491736065430788040011833020801457318189598572727321751933738974223323342464670225957356356360584205897588228199998058876274621326395649982110686812400584337634344435142909224578921549979126157235422621598012090040915905986203723157468389059230623064205440049359460866342640791543774179688821914803222357486481234842674631378952519122005797791195205441732567226881390378525654247173955418997829859226851440344594658992674679836631945896867096261710409817584694280222287881037437496918250346409169936101757415640547267347440197494957896484829792045674262726522986928005896927738949260845903269808695551808758391963802338384920800543806317904327447243350219902456880456713577934114448532795105013103005033676712510768068736906045921360357184881782558252070452083225620265737490266583405473254089359860153743260345926901831232833898990868425125133212620467767002557708850559854476716876447977431012399346864361887763783986496078178772896900102895483026911341694701229834333593810811278091027147816169280307380532085496214894768225794082875211986647854321822384119150810454617668078442883210129806367211262580454607309795887932330497712603121511233471351202855436769083802680631490149733062375296273850691250442058480943399931925267082057539069199262463732930931291880801270896053171136496046013661424337162310635573113757764531552516276766546111353904443447994559978145724682868947779331663353102401454795966226156042428602460411634347864316633294987727897856852460186016783222704619614582106779298067441132073972821250613573840637785644777525486618281217646490284246002676683230877067632641016483469953215151522013197052694630218224460983018321884425903445019040051768144027759086628770903408874368570612784686491076452857044057058521990473696525517972204652243465355327286119426993849922617976246306034158691897665812586005992810784412876029462572320740597286126416954271664072168500356248212002706991716989711854102201553135745550945986587807094349314126654258036726936674542099555608496868541616773440177586372019938492939977253489374372115029231216536329294596229193605640837499099017631583362439746589974005794588126739149910902414248520172122201312627707442770543063409546105893083198707775490591772591465084913414066075723655045990306953289685740249971201778482877041743711937590833671335175580034132158289017166602098756379761716918928721636766226184067173692042609698923494004082258785372723520613541793691786302561791413579267028353538470523444083614576861258956753912205034396716020085741861476242737267877982207993534942583231043324178425669939208510408838119789820346922976491708134725835414535585938390903830613002364383743676666411545269692774760029268216135274973968548061747023390414680268511745952794862823914509713652150179668031289375400652103165925641522966140998894463228128833016893004751026142803474414283055466814110264898894197660149333604386006063269181445926923752227262262647315692356871869614841098404356187834806237051282404459581032464957240371811589180017125870846620532410522951412957742515094329397797770615127025161628423144875743843478872519598690802995137159648425313883552793698817917953041416784016845836301526522382731650583179594898452791017718223766089359137690054495630056710022894532593369178758649316746834111555492080082151469017391562167928429686161691232129088382743850361539386682868559157239737651707370657197727933469488110205561413377462017469523679127892672767526267875881202568166912898169494151375239832424645504355168647328915401681908331394659829165266317766517416238540718644345698948178169413961670671707488619719478351888270262393008564796752026996085756324184153771547003515563238544878066933165419892284827837114045373422944672911621738961169814651122795608344233455947437862143672172696510402620720051553133612479152081455667166432161825963881991166197924369214065165274126263114851359763994913495523052473656676375881732610640702590357208256623219144638386942758953454910131385814271062661962091307418157331154408477833307270231388212191037567991129026217224742798229493149004184802798001462119904348159825926849939652288427226206955014937273397354310154978925509044144407965683512976048135238407368089341199383394943944956790206934348805238806746085656432184987355249744920675475115280989678014098182475345758304918578730684012409796040565780409228639462659628684303521043393374220176253770090450439492740764149740911928294352251342310353583531586987448138365835479147753807202003640113377485732751149996788099909635322473565705040345561190200468415136299242808324147457620895554050698256781941036678892397400959277153199730892513954667024383121611796124758412630024891759935695412487049298395217907240708089374772565672947976423698654482223358327069201922129856543118984085412134172327184600717066869585924712830002638705729591302953960393358100203005622247622236468877648646478644077356727388462598163780660590366607601499217777371949459428695110795090088316141977573216816125630831323224947149835889697803453151015763831987335370110985390514830580584178232106295106038193874451441541690303544629515467724958656413700676229508470963083961794947069639248993266709082860745752703511842936673216141389679102635654793067253371003221599627440359036589835297287376910977004060950477145013878934980961957051069093923994614445332049889395011979178689262322946002264386948304242281379906282361635062868769608637271985453447552277711205016491464499874953672489206666323054392060610149092386329097541774931407828581253484782137951323636212058780592756258900373862958115815192485462862464985020470395613625992457557317640042447409415161419631181203482414908152054262433521283053103540875950753717812946328651572677504684374497575585023816185210684622989151015297047197703212241535284716432205518911462450237032964328475643995580077310851366833882591903983614153937943405620191403442938288611910406436542588073785228862656140321674113065240632811549759261564669081281125953126782371237574149974736829245104553133985330979579002236181896304759442075642713899421082996498786312229045444669373573686636562169551707546449347150203568172220394829966595409259506921507074037326759304635353207790536542382469859265037289866143682805438031254662452013185894020152851867683609164066923433406914228891792361348731390655360983663450288960915920210460074650720156874749391291266713555766127485184775467349875517828331123982791568643187723084208655947417697348053577497745711268891154300807584300299007885677344078588096342805390952841726706699301110632936292834706302894611194933208107977931026801740533647807942131907105626844713447938866395117177925601146082166357621046533002428172464966081819838653326306389889055767816657230618232834501102788594244838716480427248859521655954177303527365933241111324974931981917337094183742085413488805821512876100919914988818448667381955694915312165948722324061113016779721510216615791055026664654548819180158630986421564121226431815641694644087828137283626677532892706605519722045776540261799344126150535567178673935266376872704786973020563839248520008117907550567350115254763377596624115382927467082435063341058836127527141809508745906902142585267390918004053564622002422126255040752365140878550232956076294408186761389554662576658233306904554941991326308519873214690321022843007338722398969422912146562120393032674003227557326852843776912234306113408083806415174889218559208713095985228341848999457488513604970708667338397345025711250246834485841956795183940740031696832437931340540493713998873070452719869199083103534023349190860894208449935710349144363736513731097981140394249918225503363996929074041356343162860560769884794875002499577196836111757599818725371913745190248616500445103794140110399255776763670136317145838022220375280396600802349384855780735418923915576812563155300558880902902975223992953378455234983246622040731989136855527424305835374543570138125448035552848795141182619098284747584497219841985830769431072714069559570360199460473665202597225530365388871707738915521000930891953148063650789266599208621508996474103597280444850251040837273864335501190785051494614030648011856023716102923287610142816605961253558981123005558169606313813435493418796828067576114779703052524014087191602891302047189829667418617693899117445845060489038737926455738211590406837116855330482161325999938329613601866910288614742070034269505609873376954850916720161639934741547582111764854715536521581632037271625683556688012794698984353199283503916984961266978169959078886144515655959576315627539696475742014452415370993942348550116896314949745814874725692740935214378702898723267590645018447035314556155314229783808803150120779836195889240109340547019918207582077595694645712522759775748761301178855827750710830584201958254114964256373212488797464170374901716310052645675117426213098379928513400230727123158454935267047425251399273063505229071347163387272331845073855740619043001867226461565731731306046237747828267327095987624508191280637475546302028596511746637692724170905057837941434371978168213798760378905097197209441165870371375146871443356413418362114442034526573949486081705803313251109440588168142818788399930876751310019393055540179213795372501218588083195289170659921394212111232174295806095503869792347794404843022178970920526328214936680348596577117346915262335614345756559856258608320871190833856163117399412335142741507227775357408600347519579875130199051712131687576905464172682221256871216532254324976383647401423367756937568269229926024267675153212005424958762812767613563603585536957130323294422763134028038017599744381730836245615880523471566399336088517430973437356132629509426911902614903474714663676921481352282377116959693716149755346657744232992781162860843641749363673573577887089854415097696564043733375047149534908088014799695571398467620243717161212552754076674031380213854593325579514797151663458206847637141766071457623608555969364901319856383375726394704756006265351512878998015331327611531558122248846487228521383657413446313743924317294186513510851110558930033526523695327763319300425455037901379930441819531784353692103688594405321309382526038237360635303650465838203289130228054799006024079311002286056923230437181070568392996909257777115116702044502415275184551589232397739740435301590159590179248049457274926939299481768609036235644857866705073388231670767850076919808304847179381667766893562010121082307815810826647590884455052011305037114774350664834574537525498713593033739013889223241412062641956530347282513224445969292022693421117945612868290545347642339591826777406283635753339486610279861726090505950500067793853550378651072510108923209898599208208930909213770835531694007182469093204887441640455287993385254780300104113290488790122697895488424222886944217069011577273077813329402658686207958575055658948585503756762905295218472985921668579378111501075266009979403807571371168961742133714652948383907763298002740147996183639270777794590492306939783642093834212308007581092995915666086253329128852472811883678839334693647446408891953144305817004459749582518504644945693154065038058987895531356877040983781050518176660538594470104462405151384064241731225240985973249356450038702465554939030650358190710883532193549165805825164651114272738806777511898912990847147984467642218311650824390822882049480967620540723897469342657626712130287989963429946118191990211083454571279252843684212704884771167326071665847988718724843306242919705642172369507195216913029145592871810755618718458836595327366753906421357632203009244653198450018486023262720122813476545596398148428121811137670269726488741255978322418371488031107995602242854560311961246894540706310566455573377437918402940559029885312073825811245972192278752408717020713697841533436505489558417902108174702257227016395405879162995902933077219048818042015708417289244650365871385229312788952303036687683566322853232694638525268011112458727983421281200881134107119911581100307445517268366522491697516247591954524200871564700535955448061766250531699600245481012710213849033730656007491165804946709125984283909751877425206156956086325861913624399284731999844891125747949971714597861636618276663244445934100511784503020177708041001758489360045718110158559386103762281360955922385934099065213275423267803076610590627150605316529000606727786890414836868952346576842027008080596670199674884958098220578485133784182493249578758105312046125621675390858576212165460449120440569259990925359239152808901022932999402927666805485037605361693917235796759085964307690931982884773526238550570353685278525685764803964585046263626165522029374404637291596960105336016934237943628852864770705603075971801827699065858900054109107642774301728004792531562126421906216939629253780841712622524981554568991639624498319350804799561899645034887277171913454169671062712399119323416997187099617785964872111675181608603536330862346075415060149756098303790777745194266459146136190103413361281252945505620873354889846008586489220309655005568423141212066993255397794679898480411950815727416417287417426286233850217409849322800896036733245803740186660518802590181358467479121430669678776289561266385747700565044997455599429015483003308691461287249806014686143393550480935505632074526800498060929639224214386475502386866438777591971436702993390257753370533040362565727677912363498348435929681834203644407070207898950895947038524230168563427443409200191400873478128269717722153989870720558222362813105114194905023644806175103447675560832143196784781257604471530971455204343841351665723160649626206027569771513972356874931473998598010034307487423614205750085097900915658403755262616651407487000376208082912377300573813849246423312300934608504041400192834428607629655418876614337446882893270935652207234380102349486423581886958164026382566397442724358407353612606034534961225770155492507547001209385935691244514079423908305460821818261671160530775141166160312326594139470477734465557525126820582062640565835162278958679257480124155531939184556528925622688767377668506934289676105439566347213534186265708808504903679756121048468470919478041895991248438448297848341174712433059978817686937304632519767195536573033424187040804080907385544001250410121992554329036959850043087116564056322627113737093409897784166343736466083050197920940417384240743272734150402754463408764881222923845072502795671940462153791779144330318533265897189068322791127424794710387087053928150830844388942681989523865596918285235381286356501581691188534516109446481459196877594084971519240761929338525991016904992217824941689476868221302180532083469570232509709665488043249718227700152194152813413546705758933855712834271236012502466326043444076591376782449660365119820035991096708607819899814368871569134118035110001246653759822830965009985123598359147685797360998595786125307019020186842943499170198852154633767315411199053238375781566377468470744332236817109599432533537900252838811936929287201831029515756407601181819216299797862211757216523008700224115942753502009136761364610687816790538052088492164660711864071118483039964955817313623741729094124795647159229195715674022816337353605938148756659678437623862506782133261327697390946455220713474760948522466136522516503004572110266481732668177839925121472865050373328584393227320141914858783391473887850447681631259205088091300148538066361633146333419646415370520829534233340484127857523468111986994278540171984502649997134826940067554007674021390069181575567044089324773187882206015628838416708077388537432485248357267546360155609438454072119807294173672917869515094174719357083724342838807264838203299795415474923706041977989998418008033391371447460054468518192818987685536088096357910242311802264276543914989871998254488408195017955636892871295109744242468575973098278460901653952563082299918506778131345117431637348966163633689316984239796948253562873394100814039325504378006279430117590713605799431385409819718920809488600466495444096227866149440250501560832569075484672332157980103538305129576675255596638115510343334451952196346046862967877010319486316481506247293280911990162472937146706386649287977341456829862999512888444910312805854666345441137353342328318282335151770162831809895028535791099368402880104343399529338070992811231579295444227556759668973530129547029937982948222705877662740479099292157146319629445258888982140908237467026457409962406417146635849466072745158257209609275968490526466559919738050460764526765714088752638198881902348045412041283642289338266469979814762009452666037572575351009319268465677173221195589037752407511220477883982277534366368683942125590914839719877155243900582182527264080657497440785371158814929713386941639506004713444912432792138706542266277854294102295605252765896829037318725373761278089267188396134712536661139643927137406132214294310447904055466371527957652897659532618182745644327220845031680897590111918550342026056831439363747196885069330590054075264310263881071452156024435713299057114306061941204893586160144706960092616095935889015937543426916773225082577274383106341862196954140505470963853984726803274723521965496531006226479649306070278901987989504876684228544674017132395642749646582136745666196929225872420516083537066697557508216276151368981078387348838043607151834111635007933610576332969192113618230535958561720434299763104362885953390163204923517210009822431393318924480450295650939546369567957566931926695568837242800246310303771711476219729336374977962268698950472018951787283287859785084810195477420061590505536532093870780797747923099744548339308695864118657531585915447649837467458889241777055693075050390286025674801203778525904845520256111040653848515650192613401628782014601737597320941670001795907188533066976113254541398538915799041368479357368651519760191910708597899721716335284282447781576721679901947348851596738764702430782584454426087711233737722931230914620648946416064538422202690334296311365709760272793742504026767735096309057634703632266685438749997301274312032407093051940241032691085951589493766957946725684101169455502549961702805303742479508406776822582836232546901020306422080384263271907837392296395176651189148846736181113125097660739101572403902714189559781906861717866681641635293162171692785511079165201113534646528064522841509695185428155455138667706093119429756526847672728949834491735482522552005872274133548846679636874521022821279576208714646168723655004702317625024578162169038821821270882983306457486781812110393806471653955087848338900388708800223553986664670325154317142723163151240396915193198129326866570829036751743275935723197641140575402502887106934649852684251043010826234127876268493654484024996445301516484497842070802852892903929964844661008768854087379339229587578842183742923119981905828974128233693385110244076340318896171919170999954274506819056564568566628407460679495631870238372444018274816671711980305026239923270305529926792397912987266871646496326822097262608687523318884683529011849094667958636737660023269526032074671556651704432834522592303949201128940459733112549557341063950137494441563593293760852546772304091955870533439647582658584306294971234611786870499854039791138557794570501388112505104802226180364568944476495653898876077372571922835020421169763306510551047752941481457532677479196538512088046712460795971892563867739878386046744055623001833582448585979419658433922723370533357801067551530818080924866602182733506586446466885863244954379445667839922915736233823044527725625964726122379674119086287826337353080971925447242492043285283426723721935860154800021788108059157429882552720642866318830947137724354815611586544056274775901902948856039455694455583241642083960197526322008376574817857594855012011535600509636448325355416685893815318845001907079195396377161651522197814077284602150579065429825064825869234551738096050080023785376253618208708472357834118208976238613398612418260818763486126021049301132683187734674240289165474402680852083646139573803106908972948744010029376540822129527710518829057213682387260980695441784380974248937065249431511806678154946057869862974612334255327655345385524299074107721026495233404758299409290849934651717978148891123954571961434672652100066795624030675915791709091789809568945371465755724808627953272266296731500891008781660608075931218068199169661499171472899704069535403313403161012548101394136522860373497565245587365013571600638730481883653939082912078378336491666754698103280655113424886846267972694559979871098895388236049992615131295535584168091001300340823416252308798349637161973900119578574440120083172075421495281229006054002701905120865718214512984467302317356280246710274243026442213929765680413945562667366238741045801702471588332356565146334177978672969972469862170820335434437139366290179562647509606134607115454805476931546493574670207020478182702609736971414834586190730138954072775665712659985999849273136555309157677108315842188813829161763968436592403131789629471784482865484601654738546796261234388354216776705596609905174437840073226120198255649477491309409264731506711519561676556666742949402269241379998608185789333783057556094628738009591961365360647075249099811589525316080580185554936487934577467878646725073327489698379519464209635716513266743108183984394894021773850195255549850135235738997637588730744551725821686783636427078499923004668638017781473796000008039617538658504841752416458211170277323619015030535954631914158607362927035951441836750362345412035416947982297921248989802616867311135726483596050938316266722833020159275694315966198590303353134549718143470855925438665530078830345903820825345066390627740404946455253831240969026183806432761675645982928700141975966377010446778411882278540946326187670354120267367740743728245596652212892864334422283029790381333866662092621675442023877991268406746622255319190004250521659415080179841375675891804077140085626760607027515131854752275869604913902864427153283806350355246191648858747677483971302962908966000369083661721810431261979452238637068408283890979962155135834669785018008035962069076895163090689915950836704982799720656986992016799490554476458097026076645302503433391894921333548124186491242009407983014789477197738695835134178049135244335816520183004892744710232491350362335353336059193049095333814257710159154195634639116927809907301567654229824064244261706800594392953985707205502969632286468677852907138065352246424160036601884395352568716455993039972485826816864627865701319445362194847026959326381979461176718198386395224942961844429716390092593183071115971421486859255852284529320065793782372745825255818521477583772280196020285678029443381926082852793654595255063882641978763269288825380250584661121471566194768518332843934901011426722604589778718188591832131234764754721833464284847454868780690155452735610969333199615083329043332058481266014624376039114853361167607892701861246248229448732106786703146709953534024336308523013909626356609642723857797440105505431176813755285730655611506080199417941195782042776833949511793417772814842393951567547585254908574103249439278320056985406453301203423000281299967422303290839388806304578202328900033205304020188069447826075350757896872683248692333385379756396057660848453740397150770123488642848656061988395437591312870076864369507903795189401050490943788416640972785108285758595959595676426261088908440350076927569384546852585966213752548894598085560700302360279037341787053714700166658062099780542384910352465311484756370070166422023160912616894988590901359534542869067723337242427612827566177734452828168562393429124781775434925100654298728528106537291076778616025496566978742815549842277399635631995646867477549412546804304479944404189410707681091411441804065221592298536432763122815595658559649943583580554300789116695574973041298617632328890624368096043910164430470538568261207819128542533609920752119889514326599727330163943766630600438828400538767601215290201271650184384585649538742181199121256417456291502139486222658295106866235328336212635258347721557555799299134866990934873185827017655983348512048473140320328609803596569970274927133770465028939201008935502646945956626662083902158478111271533614217017226744216001415033026168940427610957742176941455148841998478741626044778532444191493531395851604704689558478913428746569658030680650453799562130806458528112854886431029785244825815116410449046551147546101150343262463052952119803684253785078044117234450699612277090351793407184943557828148335412518504306556961690882543330104433978981763029695233543262826067764575912506229114174914396758709592840999482577909946839244460707595989636997347311264158296960988533921086383652072956245925828674428679551420811850426360828116247361780144018701538247053019298667438260554940372172490193296844079735151433094009605024055585645409471620887789476658516254055113619901558333168364684329449387389156703774622811275628932981742140593351100405013603257372975592086745904897832998258872163300783581229186474366183366971737544788112477337829776579910050300078899359585640461740597577983173244381893666302171720782996813557007906518847591049879875831884629141002188309082980629442511071174939012021076284978941711064767155799094799231303077234353889158845217807522556923590649955943727377855320007395679616953456707989714472283594585672838231017352500528281322043868654336274504438341256246845636774051051515857662921161036478720145869786737871596371427941159938583770802632827842298169867186470501452179614437535652953868164734932803901412283130152985169478582559084536816963074907023184249881370085965265020165977813459545248889140659397133184858654327133633407725098428344106423915617317081864427162339234694906283076620978471065441663438490828771570460050155105322377389669274413035580036249582901105125077752290282938163157885543359466088895116946802160874626730194340094668946196869360030971016553708944177745485760622632250013284428990954750633850731288187834997824119229233980671625801368401033182391291301540302107223667160079398391521581881776934365141405883056841109835739795623448394061801110327722819183549813612740980678648833630415176218434903033433760475873404549784481837839642002524240483065405009033653398877455144308566643614822464694437920993342804188148049794282394951640009284616804921462297825914441757916288907651993082371321068960054869138374432971775077034849468163639662855526434807340110538632250779114013566932320610202976256409953434082202318675390180010204268133149681339260873970196437197410490163764166830298407842745381098311652552085914230001784171960824980652716535032343215180508534189139438808695375831618575068577807031566917242109067612374720567719349659369127002599961158599215391187753788360063663091645183059583902466421749624324488661538406602607713380130177882715742156545583317152352235988188501914630935477960374061460304675640256946963174056828266436857229219125887707950700933969023822321148298128720425268777964501516828995971134728794605543655792360938493577290005125109626111044400454582533238369933247167987109858944593886918000566024553503594825239662991965252837581401202786315040858397401437847647556101801038275327310740327497539924951023106623589057974705987452229002799914671127709783970155667560076998012901396264706306249251973250864415575332659269016269051324997910934524083524084574182486389738323125413354409375315453119139549497048388590350643150616943201762134172015521768863846790079222722331324062102388989519787268793954412300713206487967703779144340171665656712177708393357436282829862445796722648533808590151812772607425586219978405002126579948472270958780054986763402488183513598187711676978056750919201528711777528047662749927341243106613323882193009391251010364473832734505193513476147700336513555209057314259039304170648906655347165784106303762208526761259863104761511866410846988135464254143124992375990849477069334191846051172625858277694998303509681213769596213087345049294006286664847880517763100687936961714580426376520098133314585308797749625193834201527626031570520711654900426065142742836166718845400133930160776581774263608161765835165575356443831093237483851857416326163203999953044331316893952945336791919343935116966507337871638538082870905179150247919898841214907846934390024975399505726175435874639574210201180020720643775331674805175788723101362351911551806214911002042032654943494545439978490813529742035972344918441544562844203667340998068175554443884861059718232279022956821179193867018204087588158495458382988660731410188459584807199666213181122780751807313432152197156139437651881453976062591037460204611217764672855429409411001710053013860628200639044853531375141157625431669828509114935234591605525287892421361837298023082665059513713048776792518107081828864462264402390297809390738348592355305353709028440082330608837560846559634406900054954923253219619739640354873751949926193582011410636957419162371994625286286461469079278169647696485898225439455512825757475178475767831532239295866161293410359839022709077393822075759108101905785030017662980038430675703612494247668793940279574324051063496892717116280998034945480156362466691495994880416881106812046371797240401153479166355517200100066109176425369630854280279786726577936608864090114234662666237668020051484344145196695391695885829005251120183229323527628394571713597969221059749954667146111597043231706441432241718687392977230824235919380363186734539223333525220264905759885055625538018559645899930955378281684791140310563160247388143665217955399681270202480090230590954021716110537612460368907727491923898506700122829018631751715447344289910124486602231377523787704791910664364690910197997525070181944802497726341635853294562243163049429710845332477767474965980102980310981140429262294302696413548474641315864649158023743818998752982025591824850814047447249649595814530882914683215496475983302973000636502433782466024403621576532751550119870633112037803947464185616526653554921224540055151750354035342482566984360023783722036840108190317190856988178222257808697504432684112204994603537833956438488933361924516080116660918756932260548700121760945572422032930545748621238119754928319425249240205825412667899823568151900047265180987790312963855125301075252045517877357189096791901526227734755944322427594969500796710043145941664789173263264814510088246823337795114693854332444252708820168136126069820914437602791902056818646533236332104555457629591985490968982253863645612485527927750460721573680434457540375011428833572277119199379500542345578059481812563247723711436063400362749781951629585951908800353984006175150972160769005945560006245083276093926101590766834512216207274658989158736043462385644173726550795153343123904677688464716896507971214624373496170696960224265172064368031507725401627936485001091079564986566524878836369509869133716813758451870654300788230528368160313517545848316264759894084789401120071825307651536664404835122153343324059635481325789150129352166473720404482385587534824500168557342157352821594118954831300914652791030311316810075436062144550111324629865944431324231934297524763087536877904745672235871399975956046976074889786657085643452805478092701092791391687689696764949211260689879130526727165235971367889296942509918700190572617159954113724066960594780438030549772549060197789715025270826895154574533694593878276528770499219596389627339997912636054938551953235489339623822659369580430939487681032388327601322766031509963165632867802161478675872762464554629410061837729288165331019397685212589136902960494186067777768299341220206377067504411572954107088997150048816251774967727185748538095633311012558453185471863706439137578028057620958824298782382330354108510497722723407414207323699710577881483625405292271453722884723580453348880180348344438791962700528055063057182431402469287548537079802541190952892336293281405809221929054106253467361053954148984516124952424074232965148057436433710022921536398061741004571084661752488217306366548808694959277575427760270504188492074684242661177229640868431212464575561984160315073567895349931198838479218028498739988779957862181169559439330722881700888135118507397472533796032816415227932986056841620306123505391915326294494910449838108020308749509416502793493571340722403231995211412838383825420585948323196823942966909349066369220705103231312388740364456396146043817085017527201166657018630514563724905680640245520719145749506630290937645390652245169053833412087753907354690849246153459950840252332442436309480686665882200247210654698082997797841925115908713310827336225717277284713629362399432219351109281940104459885088983250494005111898214482481175328608097877765355257088564552133885603981282541777017312280517936392604024514784808417702854958439160960471585575025674552043379467715732060471217112567410179542345764475715800905297289531852115178106139706937904565766528153219048030590607927868360808091314740760852758994464199878859839574424196423095436421303756028883561060549071180140203603050871443691480359754955076808797804750000700300280407282938856753803275936136049113198172413848782079908956042054695509043033547421877350317481722448550286865319041726584319067720192070540624381299503749725067006662557474664161161309336983118751355158894861828280093561502970647012367585285281809129051575416620068236991617786625798141858182912963054970476716369798854003606051624721430125980670739013775300369428816412405513236648728813928774715497434549266323982437052464160351371134809534656161656211463274339234180067562146736827538260133129769199838692750738399731012778768726952895985894266264715322363971686339559147844198005491069410296258248954475481877477523157908257170191999866608884981398123979540523050100547604320076676815114690238579442105210409012157173160226789240825885131751884289132033229267361240023177916212126181130322869575701281223837148687253994623764398346351510579107953446157597334635227529603034934779448376960281039380303119184473748211780461565855295428624745403417574117746185313370990374358191385432193988483676433261247167203931950358152820248708316879772674061135600103495774311468001067499366221174295083469815952710448723860471821859410827101469737914645428527428016203710500733333430563406554066905052310599091453539408035739991957845801397057415782078360774033164306768042090813569738275641965216628346383038083454801834018437448436040660961003133381326370192749071719575648614966637225229093141912598839785819720297264648152065521457644132051107258253326020683119393018328230185201829304914593764703934202195516433238374510644364620390244920302574710319153501994370765835457886248140332778723655162978189835571371900127588446555785479607888277744662701729667252043710878294683887586300970740745309878302948630219249005161597587020107956234649851987981067076903908550098780206010488912136262777143482634319923058362278942059896811421955512147770422189762819223157840117391447716692587422932755520672652799762499203593359742328188163865455388679111690381633106686084340341706436064381709144924191393950792969151073124416221393433908532012247667772528679100515951558992279512893258572402663510040642058194739122924053894810736644921948610764853283707232577021442662662326395791800216087917263258077275715289105508823579395887728123154347495773803778713036234800742495932355814102744728820932068222836173135166780430507488156014368939428240244871558201566814905678023376275571742238354994572062128383574805526214215114516063177309015123336696297204019145468932213173636532772483559854032487493777360620379961931092842408133853103502190494249954223273000150944754642178392344832111170587229669871514914572101930219586347637415205448954829665597815200149346539777328533011927034319278618781190245623640740122971986208982496323611672565442190832811659552203152908522245676369358143465532851267906411263502647722832987451584737212850105668759169439932917158582440959011056830869591778532249609547001332047001822290738806650525225606337830156017634344166790932573273851201935368964170616297118107529607376197042716921491502592762277076242093262470528591047565877741116211016443059903279919640577327416988306222399223378619699983966996211193805345987497416174862931573939177740433611359064703739476440119129915307855570866990124300084471850908320292163357981603126502311175735033602563423107357001172782371559822645563874650920450133781433788068874450744325697700940570305081281750922639472996256433931740348573292438441735020834905094162755941731821931488294707643210386951907956757607197791957580218432861996303743616380408291989885854150424563228552773808935176831457272888201809815091654595049640487268218055878388242808252280274128222231572900941522406447068785994288670835228644301308747883815356346966499478118956439218841585920868679329090306386812434684346185997119908313132904795356117810294763247415567083184550445308163761091673947120063305089086605063172773400743624412032454097500506161195395826449243936876252755693151491273048816909321959123910617668154763463783339916993873273438171177797491176392322796874445019601203491067644067187425096922730228001491715529602082972550086798976169490539478695435469336531748981552933591128417732607499747025501500662398749111780301500001971974009356106712376894683162027076602701556739603348917418334478357241571456540531357597474932460724365059764277807515047050898317038596495441846024955573397483021120017395382470184457859100782311281208501672020476480114227645031068748716152036385283407133578863393711976715321804772582032533236671310612606349700529008867458619688508497002725064318196244890866776089482937486733633051442278581184783750672006831652145620465461087501656190559831891929125073684895748845378802051431643246601305329714877935050567383165024250256390365326815339091829451677208975927877036279574968681866661919156948522204264956358661232053829397070963932084081005530996948529580156511983828309237353360258490777462249394698396076593147838515500346663585916776880435836607441707401664830285461984536264423378891421944151364073594305315134222345878172102620566248665880070399577406397683449661351043857355775367183889737045476694323447448800881216420703174061252548497884301029990756148467720191562001441184357645621372952038477252193483353608880302161856127213405452660189670789185411734503221174285985028520433409223627903268585374255324660875841540787042299314921287484064736061635813135083314841946594313947088014808764705356205385778288412448741424529320568896530786095359908133578915503713434750635156202660164954407090893303867222416737301078228405185580318585503932806346753566805181260257889837873456810660857447534967090523814650930456467393807028771547872213474737262448692990417489625973919933602858762905098238777153422732663748848978567898952358010544146888720572731452645897704123489257909349647624386297045048973620156969094492304065627814073207490802634181802722900151576371625581208615829692178232329091485545189927627621127620660939395173547153790037418514913663302498992207892029968402129578984275076609157724296778917880052194512793596190167043882374558334400396448648535447059042001508829085684468300792300880500870750361825829694912126484480133170517496705282974542103078297721017723489815989196035700842763807489191388733141371733786719384503622825527059027913070695471724599169649281427803629334211744584851496898895051991875491778660098313321662337230078082372199277397950827893309245706237469693601419587707765444727603029402246542901146540679750149202891707940511697468860158610598515286125253365804859286895805489901034999142637046927637052451383067529461543940490043709244027322049295913182222915033555335514038772385298298042017072112391105654347097211918250783997658650504867249246419841975447939725704676253286275641474341301442321797350592698623790038788808137756537477185184278805791080790915081218070738092443853888245035483545984775061042157308181228419643216626542190720652698201173782652951641139584021460148501210554075229484388784695437847450046844954515456732857642574793792126528773579491725294702883286126256379204114135539174523271606965728071357086161321578402712497887684607756673985518706877302318064949315059437857000089710775280232671153811648765427605031081929630080650180752615998766874507638916306783614801171807747370187780727324222824838109706104485104628410284660555278689431870890744464937198277178331579196850624629079563699107347616233797262634625685638444655594061801871071024569194546365962425647806088678958075575272577038740378893768477384264041919909041640001531405551709880429960789731742085560442059250404639841004150374972819613235562794939298495211002862666019292899720745365855189801827324955382624020798252317472386123652499411244792519068079411733130211632084369307977741790326708529704711909020068460735560915064566971930568890623959551909090195367835776745644579350873189186908247018959876870264716784101569847916165671452290801377452029239090849405058258698135774715252402946589613688077416114638659453973858448985889867054067231313564024698140328716905483024358798593893221038532688452784916765442723601337877047340405426484877918444061519551456603009503756390561024621085556659133171786502990694276055166699009916245076829323362779121724052798017254426493813221018300796076648941164731426646369203359854149338286335594356057414028700520724858214186217752213843529967336647436769172046079134894874351543628526736590857966811147848392367605442469742736430841894921793632906055791932434527708830920905529463167618742324916608829564904487024506089543148822781692478265520557508317454725045534121806098184435226288300793885165420747122529185552909509903528994062310354644902866030831093255523668387867124876228472281172448996761448817281235523210653135661863659365463788076227923270614448369913131479343740856180218615714984437551424829353455470025539908812755618258548949562703748413504365048429155195149146624231277757261637224348264366108153907789029017845072979598655869568605679227305298447962963243778359604303904161154113062827032689736408634091427303640423715327027616120292554179399737406236264656611248147052661820124616441730937181222649556455798479646612740094581739212926653728229680866618624905229252166922383302896512561054786277450623659872272331099957481857292778898357857703998903475545438118288352701847493287945838279970021266228539544392422177464053931235331170645531824419164821987129592779701486561600464289979636919877447246234155065629291109473730691613829297013519812070188248521766717855333956269947938926251633675236157145120347203247113223784087417121859889842207397410613206898864725517776767733541425575259855534155915446705425899996360897495862453505658830480864837609781347171203607789000860812907679044639731334714513590788032156674565102011205985043106016350532266336755491723341041591811869969467857562145885744359800067697992082170372008651093744126117874771322069379164342716227389483193879044470461869486134338844176416847162579312539495657526385678410753184380901251697575217429662917763434765868000327451012656787235449285408227806104029746247735686324678510768509474161224702291547902319706162917181103673683166762327371954682454539340740258997687711342073942077444777731825068658257942207925303398889759198576466954768738104065836743342287470040710875042204823042011077844929611113100766296777897518023493392308254226439652236467959064016815203541456044156612836500239192916597814865395817028881077025193857757258568186033746154891079889064522250081834634420647633911444776425205224412516864598941374694069137196033985566033658589937344326988636053481844557580031368303627334561042049500049566623621269733754438071342324538858310798175270774124524331057866393049958845281971594093944479086277839905700370565167001004799857075795601046197011603015447059896339238833308701057996799010542748876646811469491462777835136902415713039731458965820861256880197966449187027937951723547180428211474556218087646693383752566541328220509367860993757613680516447038315567317643526310200416077733817234297840927500828071076035326554572688773455738202187400573067132080179705507484659908778395364723176035757158324267081128136325291982855774511043910016980275505784709923723491156926736485068070011159374260578861930123364275843801868460363181469492656249231783880025774734262184007968770594278035128465760880065628712015996717774612751421377843993315941977901709312220408631420322472545866644031780086819237302297374662529424738384357584930289101632135214671260870745273326492629892530934122711199162857147341596932265962474395785151558986960141033055769727000392345466911102370900678751105063288580428087677064086768405214454214843562119451589180461697948278786354558084171081825778496476547424309703975749101780680037026528091013772982498783421417739886852808155602616458683836704702800501384499726800911510662370249470110814410593887025166493667282664615780176482612238717088922603198489211830596392394120585580236436923648967848880540797172372951304067231125212334368874906989472420588678452246392518338614654844302513032952515037441859821838547578446539027215514330389500808990056484215907144510918431420579551988968403367484346480471028220649991392084149934807343286238495831060486834595036141484916142593095363884784474056767667490201839136762784652439888094461745876519448871733619737012790516601191532320764361266944055460740980756822358749136922002645223459687705749675984165500489731876168468005754875181616137842642674895069063148255764872115249656833715781653097141360501380323173807716022794688669837560558760780128029726129660309258149371044977541464874277657823008890209413956869427696640537280976312781380583510173547253929643928887467626825512419971419334542319081225564416223577836037887040228909352654458652942151426242090756122051503869735670523290863092736017215421331314751165475581591058162099959674356983708195771300788032179784529045319893512550767624659135434879175605894004836099505504509171588513038115487336026814851277501290695290941108166640992589827666363951408542844297045804086177675122943061450924600475281347127090002787858377914443268041746606812918245640673488826974069348200525959401926051771499059862581886334615099161989352280044133002090104408247905744838776473156894286818727365842147027659056488607671135624941405984015872961266108278709158094890529797979311638404067047663666430294726367852610808391919273812570830090419894450344980322312210196033611616800920172713380463855233451877673426447031301421315181651450544682238907808772777492278433073792357283779157736678236285114623798928891406238573478938200901043416985630275116195214815161719702240746080670464805649075178637035386665906428459448262675714109308520181224790077686137447654555866852554043208111420737192530937922364227579161687551093160982375810169160359135197057932209399652351499959424745931021145983581893891623434846705257986274864171322802374505639126372833721339920448890928188351002497868881706269538242612142024813942988640576838245830814790819048973596484684487891045318869612980352653734538188741265283013581207871724122613644941168476951637822211010743514965418589310799967697724160256300112532165743822281459887226679339908550327649213452165682297773324469098509177882022501990921863559995507697100103035461254657776778674205654983659573238673073848240182553130707760096284813804972467582170029240633362898950657688781939745820708621596196616072867078039399716404742954918192855719278477303596300177635392609623023215196454926477583171981186567520915410748526516158881069984915204425096055337598357201091427951433559281171222955459460718852552152156572785528790214521987441712654297144316664060150712143097035376090001552001590981950320103562795010139059347546577012830683016107147173187132792291700675839067001356428984158288152119058778081176141815383545427336754475159284491877780062444879606023192935226816390159223126027895538887589458011191705338912549016749123756994759809530191352746134564523527979974095010844998538136041415003050531081524892882048828747417648788133785940707699925706003198961722829270168858595642583258547021315436659996542267457376776368319437432046319430899004793280991911534050710134505677000730190699295957050052307355589510734111695537610438561036392779984121672918024542826924205333533739010894939387686207581122557602357598271313909727978685917750580810497977551895899165982140558907703871228947290509818900464509605226677016859261476021657715728832387338948155887578421832616040249685401192513856855397641343294166640540869404908923002132011407547675133976541654679113314789875490984866017195430613375958709247398579278675495425663798588328435215811514123192745512720807370007475801800942783422800455903337319284668554519154252980812590985355688289668960674048291124919435548809930482314520224338464583277601770102085789864631380938555380830475452294996673246486021903396882009902205689241651860054305984117990386973504337616440360605821979363905697618654311905106023028795933152024860526909916625743882906486072184571609215790900697096354492494992116023328239084467256774489550006234058529541080445533421008354483030465973613519835095559962589020906891047287873561136876339734365273319775130935673124572974433955551003017768361849967646271493530844181679913346131901816096657526687519708020832654653369771958558856026266900617718032246794486651134732872340013201301687262532072390925930372760478151863149166353028135259541608995498211066490517553628203328324669083851644008823853786763396185108399838679641056445767702708991111751864834545990960667306155744229386800232029859941376905662057344478831228613877179289419580757490146171889851057792470511667726849601960605410589593608371994190588569605986378062099718804957904632494886391176082941548564732773921388325544764333034357682055358246314878180721017914329141803876135947531536196409307458986281465798364808946632748960165456562230712476836420797967811049412958756669215237007421313444272223264112389096224643831768071755834541334378192070082351238635040562698039551411235189809984983369962025375227915251619909771685868438412637024047585751926368805999972389268167070683078787885592760945953434724987308845410311601130006786784541956085079415650458081240911347182255697192202350112483989345779610939335257463863396202049263212883785647970963868489754134177675143437484488378684766444987348157900146504775515738789163922404304694613696336870977180789004049539921297880059920124072467882715874644969159599672718477551580644821640870605535287659827260299453066846342361685398188707388838937018208990476353814044363769093721056388623959535535419920284055071819435958388008661842634073562910709296652592773309067403904574607429301030272264941723638508614567474974547091180529762454121477797949117566964833407182206411012716074758381242661922508659852329699227781343686716792221878611892955045082669291602892045704915252297186081250146744916765159157611176662944269855073945998318860005878468103905741956382405046563695159996776403078106984865837725031053873639593287641362219084236128364937939049556917698586106595639132241867228992535626242693130859705554359938879968986619986162297469972450130946311016945744293923370850340398964852688603933117743254973294135798311479318309653793258865699275778193081368113636452338270566476172647738583529966424933483599187884536127229045739912854428022456010120424697141851990477188084380555417564879417166715806969908420950705235097088866909111277605094154359144403097928862745673668612983300881784724972621211115122118545901444407614305573955167988282224944691378251402855813919211878296120369368777561097410287782654267020923128583280723259248435253333976236504689433526147888807028421854376242214074096069894397634537293520011289812928176776496189523484774300959727061541734488283716660067598130562695006834457613517829685638151995992167824585076141351658518611390720443836995841271423546990910536830135175712417551850264633739320934706685119126078114305973344270114515527452371218873434226612951957339121232433032036135892951065163712166863675411957489899266730990345829921796437914302102966526823842312028848464466072491541351560115680080261212932753609993125899571254245354987926268975893995324628511419577816067895735119879696259269420499733504486219028779750742112603702825094656484336439448468208616928229567249624111161276237531501587612403181615501083380045018270276230756442810864990999683735818082966258875562231221280671042005155686331218262442197087505272622100741491188203220618715606893991068080131283671625732961211078150129010209372289167090865204997465745999644854324282959468884733786100537749854784107053159980251365242539350203422448647707110445005124640394036747329114257453145671556815535489328325651555461202847401741624086834408120941472146559920396366750273445764297870075394987380323804756080506482721730499418934891943440461962017183008200592667621784269107698497349384906529004744139218262279877909296845848718830926626796670467454611998156339908064008913751654546037000927903208057168059048046596056768765282093830790522522303338416027317699047012033862696626328269309994404399862238272434809246833873778729798081996447324404945438576502286488805253518975745797731186000560001716502406458532883549443845506913617697789155629834271546449476102737219425923888587913998393302863916107167226456594584989416918917540211431419205203569704675470375048821948994602369137854110452967814779511848113083792473689470682582897422462866926556994673638767467372460241971720364786319887320139915990156444599579191894112023572813547709152921714330397109075381071441130282222125317724969844975546610447576996100190979931889280871946495729031316096912873346115342336000179708114769915123547632490222942095616993607903456280338448464337481938561886854904871291012958926364464242287224108685058151191051227148872439704743569445738416693057918983505591887074397819289793318847725364627083072291225534553645205950323537480882175949629062615348592264806840377430761012940282100872599210292482544263261403221140697532842317125367949595831712011179026910327106660751291391169978974854666809025566387679930584046388046374056802351804173671280227377864734970262561361780348828255659357300820965005558645880459218894011492151475726595178274559975806536519826579337569444293328652845441399505466575363554218307701459558507680533519053148670776796016727797674515082084829585719624961108459011039807092467679106180646804711089773232854044158619268451114020945435580421553519198451239486542497631808762089724955383778255135100113308926291234527482275894893275494879368259662472687374410868173738740172081225015187377817280721291075329903571396914703117419448237211859497034891965491801896775437975822705100033446516806902714111164866689807881069767822787685330777160019387106490402699650127307535652141065381661139907231593380588397389837174403429724560854306544582081132651988187209201589128809263733937264343251786802611246854965287120899034422495908051303719358580844855854310889641463587202754073334508079904801964255553156905059813772656580576231743496008121830725065584791999153332203331696554335289874247281276806681959209710441072842889368416404619512665080138067106675087450271956376251754480283969153632299779233978492417469662585307200688680504917286997122126073782829294592753038247525217645843992337661411914416922649427688261764121734218134041771338163168444601069429121719489970853626099702714012293371917350031948637385303651629377900786861344983187516711029800107118436021725303797370649654588367921942153320854382475878299783046520541818793672105576974789254286616811822776229138352231341231788001314523882834459745216894115346215473737402426043983096866102977225558335387187524402804419346611791533221895213904098154522338088008210963632377052967413212222944589020153796809801713235913938758657139913727268012262884021322329719659491224816257169074293420229332805824448392500658142072107429400135292966499671738388896558376404223407375363520750121132796240265373270245624364978582789875686264900630514085022327945807654370869675136838369362199256005002802523664496466467607934115019338287501772411803593500203341018082482484859592192732481512534933238804240463963083163572266102606703092567019217861468663935319214125688270970951093572344520205689726253502487605956282745004178080997137800588309744576676072054139342159819794199306190546598031278628092935937712247358263515142694640712813078971691648392859957309339507203890336980800118093854645942181954903174978625551334268494640363785978981441555184299097821793045198559156791581754028721093930280660510097784384206604941721535345022532004798164749333522486538112874010887308781785611479150722535433585774265784623573021972980771589713237306090992617898494767664273989877649227601152577182486614599140390339807196957750178220978423953580695713467866529734748304401944609440716912908346685927296288310257274373120248438965344041078452855983061188113045779480628541895160597287468969680467713480892423900130396760117332691293351904212598640660101963084471531716919298529186764645577908787439034060841218523636595116532828792229490474616085689221302592144770704218295982127195393435055432064520531744889367678104152065819840418699993184891855540358291644075724096373090207118485831024259565066419340765157294696557269188025250263025489007368739173580019078943645127349791506369918979077092246321947820896815803307318102588210900007914195583262343837372420586915637441410987734802371511158867077148241185375970840748005296518097157624185785828119219156269493013935246237337875469649408013082373336627817572747840598959252443486466307388104820982631340971977812425986405989778536060012718556537370359936636303177627313072293329055369581895994963839789800798231466461884737103871095762835440738724492595272921812524127039202182291027079891588952926398606410642376541827660093555935905452110113669701476129525745075402105120495025096884248518147150727501363055289393456991653349528158416951027274989997636351992282204910477857841882692107097736571965298587690877840338245561950742007074791531895037375732656142224160228209721149099759969418103192273376828329695143227144905824710024956882370736936817640978180170493452989225997457945779389551896247219576241667821822208175199549062861126592192786341918563081083773226047006403742041380597046667093243610389720272031820034930486126755582583625735938672088466971105522284051393504488551252836153962679490434290245853350922998750770562468348416212262382291427352297713365369741045508577601280438340501655084789853363284268665848482029158392250362762122108032263171028184316495071704527780213423200271482831305027165626637318579374475078634853459600931895670151168457494175703959363678005470980802486457998466576092123386986004381697944915969568398940228329027827052320021968032174122980313110989118195628552887250448316370088736364196180281688019397430714754856290109785960942255496153528523540506237959407197528110857305496819090337310920146477756598209837409230647958683208327731400806389301721300681131952447880335755062378299394144387265562231744865602314055820829394283659134020799388849451263004763721306507128827772879759199446527512397030383189670682129976720040420801698318195492499754920826087966660918802195662250272108230816216079938991908743065719028181662285199731706993418434264244401135152862731666199184181267241734786926767956124493539046566753399998977254327564803742853538940376708714511327926079263223621724665602382003663531594032393043862097332976941702144219886172524072309673874421195836062633975094507935548807480336127641448991070409076103912582691629067756132182890841357361304843102440265735654361021122699723376053174899060110286572449623904090435454818061967148553418209954904648808587187768278370085697006814301269429801157299510116501771509411791694561679563368526439727382768975393181247019670175079766639104663889220272856884957694475674755164328117902343018505287740073758281228940531112448887021810766971498465126848640731866976842188174707627708470515339407072037638217629993430264937091470009978661705258057475803677353276006270217033662176049667049679445937767025510078806173146335277125622215727360587524890197169038264785657750563549482175793912822083886044856171063570787181020008893839997423695425670209364026585020093198909898174354858163448824504339393455569443516361558530344353293878374640894978782948379423832526360112788876995411927065388609890286285423409088440769539223584077690738410880546391029599499593885762685033976133901896806726490375621994157478716278366977755048024438190939791625477996219597774347292054691571970109481323881723147668781620637161756301760908948657689129913804523724245951208959681040550487239290106025846551909860585854997433480171342293700683240969007698586481326765659606277334884903227652958477346290887023948603426577302602642317554884430316859007329874735743664229816709825853492191616330989270759790518001850545663876355811652056851417129171172396418720758153268775779955555778791095883972165037622918222884419335829580982387530190789920170085637408442095136350098327796203906443021656709790863320282160199516222781122054733707831426617282808107028654432462154367762847750871195916053909488679217985395970704744395335194803868136186883308941477362803675409889541574924037106747097884690880376665548691702582409144563312340644617556285078976209606775852684816761827029460273243520408653896977438011680993164138522321437407567109880940245157834724265924025636430427783804766376848648147087088504589295320903273815959249825093252237985171958145414515518007533667911854980959796501850475580071480923655789224707590652128830271077143740183122885659170898107219821563599142553184181390552942608980108056631759246748744243898860095885735805803805968455087721386078649771663740780890001109365616615978345101499682189370399104988757646226268592985148291251789160407103112336359350398064229896734700149552940054384465092029801689503792683961117421869592063953186530367552547324059510564342747612641273014231998393277871621862286903469733472831434700192317927171797462898475082880539643851525603932247478891725715209909875003670633574944724216338658909189011730680075299285034651975708923185531048861404464270894586008212142474656371457625429396239818212467107451665333591576512916140679375577490774122183127480020669489045220391158859291057049982100888041191665097859138982139861372275048345880325780485033147652284566044274964916618150489535330653374955753372161865445679609322261875638159321219511501911849727137240414342096322549869356367277783569847557621414045793637452841028961604978769645389682326255740601881163905568636035437391504347636270684497923456335663564254720398565124176656867593260929661194230084419806492622595385019387853279561784703111233661442133096293686754070708527920094182373341865151525371532444259244658437838586887717222124200091568623735448457916897373375203302137437072905143900172559027195002627719879049175150319693864922358993009100209259970010637759164500085233629587863847282065796022292389134085828579136382763833177988371916704072745768953620217092917403092701571469760917074626213727723583146568481886429372376907962635858617196454150381885072821651383647141626364824373102596234135074899083574812280796024962820546351726924932614115652213993371113290268661585216346744605210641306408255296044104247751394353417267540573487787247112167048339680010410539436587826276881940709272524383933548108328666705815382234128258264077942941957899322016248831100150948282159673825692124862517637288308026106804238131743056106462825534416995796034840076768080310605354961097036623866975481402805520950940356226627307221319460199292386940913238358854972112335677282223626664890765945184184043078331678056935978790398188132298560850246118061166222572759126765309703429154982540305463782515865858706332148263223314880615557342449151227604870231444847773929128019980306565525394813389675907772740842516747750054233002051191744518653696639501244137075529794434274760678996249210752256600679737865075800067011094644638611526984076239891195271157475204642307956562615262575346171980018547162972553654898561211563608891128305832367511849562927646900721716710923413072670620693066189403328250874220531074656300926767080147688357618040901465982311901863822476398862461538870043576608649545948949530706641092097260197096614307557131842977801545847486514060741969321437639702013486221216334764374567707064341726121964114870272976025194320143503309031365479720312506707783262564382408387566207315384409233047134434835454249762695763307866982182281015403018821157002116156572423072355195633469122010227218220563542056183666228762083007147120049167610650404788054593314070041247019074729565186283214227643335207605381891145265525835610262911658082661983701817487759075459169864221214683262772425077599525648654272030006605507848352923669897201434325433364832929299979345570739319550538553030545718131107584031181886576043800611312107928798457461077312395605005144869871331872127190226252642478849419033534078513006549932032634776406131011945061916420327356670134141273137696911265096099000347421353996216782103864665554174213567389012349213057639432345122975982388172476068691220759844056920887603851394662531208694289547602307280042718392666352881747913409786441688556957151888706270080698333158351893737424243776980311043324289409629850851694463276577867452938852361021559795599784550693981482472610022251452131720158890407386699017357105325445683227979440838897105889689580093486914722351919932626371860552901659254338959547542888847656600861850842520423535675312028281230777813510299868822716706976476633034182323344970151415106967437341185984762700333220175217899867776689037086316708934637404614079508748308922187803497419584481698614416597529503814636515554527617078234900669672059641380053245524684645550492240472635905325670419094269454883047467444613850717445887213005541923418916361181824772646280192720517917046296816885319910186967624831853022518437038129653201727097971135420826965154943358301412503261976606921905319987796756495283092519045200254953231456510336901258109821832500269333348007341221208885114413546429834819775558787927319915923313167490474420388796125527203086718205556599417162691320814967246605936661963062627988943675295687413032441116108634922901958806282341167451453837728516603760935107680158052727615765891975926877399533548682762637180574602938630523212343646355698213195513368620417853618212080014913947762803576229607492531692541461974294112991550287410146654844572209193253410185162471252541208478065922689671851092167890973185236086350941826062285088979800573139010818118589904587086963080784862344669036887979167247600142668431882655788913092212048265740024496933763906998867514455768807483302028971450746001500594674394620447625605734157962266609926401733200555806297390626963137306272452540978597122798192888391688192838628191143103213335427448491981544261458159980952131640953898785752654335343478309582463480289356360633293674146221501995610266716557513847495940336980482913054621339633219647984592241339069005048903715563208429196387454498242006762618074533244111719866449376220332535081172547055593947002691394218200889190092792685571170901745814920263649724413675071927584050151592989910602101385617903231989989926929830945928527441572001566267974066899772279331070214516594017725730328855502235178435059521614785151729414056700075286134735246953335751855951322939015597378459634624416299702211489993777266778267954088552217800254939206503407020167920320528396828686040751450257995922367544921978996200935026515855681370703951504217741702427055311129183913455447382555205401342171511560100757963785593511212970455210273053456477169153812147118762345347027046094604696599059109916450748157315280502074767386468192099818017995269528261644858099400480257865936922530493843673077733901252403499869986399851732820269454780405578054133927378503687053062886478314410506472001425016035676792076586670006956928864651509806289992980753786375027483996382626521430227591882572578285539242416168648041752206659562614421374580774026758981795629010191102213341605215612860271740631257189381230975603666479965232143231356955080818930421705856185491103428292300292521320845687130253022391495944036997039695359871762201128296695288099809048596120340922919337535264757532481303476041917656842483564784167496225597602172333146116846701925003688483987604441080117863544439486498224257040666878991407075282014430278222145434568529876240203724398293754179322092470248023050227751558802593649694084176086884227774026848052184418850543709150561352566338291358181424354568566909109758089959841917125515595764770469631708607195368945529952156468900373893010849145037431291755907422805654380914848252181331463025049080332246037290493149662020147845627647624349625743758110660028906397906982790244209843179752967666511440410654988767248726973491729366290329943688045399159725951158373344438839020648436955535055999438769871366119972655300276816064604029407888438113983378889794236408852303780723413428730208994336727402797627153723430263243397728505890989860034657170096882404369130262339629814687829626098097247086933627078570800673012631848786900005359362410345755638123236064958325243675156608042109095819525325857119360005332144357533117952116756602475437802493500157207879383252022793872769440823788725775908654023132018732015811824110222408198025794214884282517991640664933582530354981351351113312336916342751303832005528439581647148669401730888685735598375428769250888485734204628807887575159542743224821818647513454446212053058201339017902708622387288627985530384056566340426218961480135488296764295750284911122470927701748346070420299320115111385253537069456461417801699373568933649847709047329948741338818442940646200828803531898375993774655548131899504124775583607251274333396679314622251105939331805419291569380776586734140591678044844537924132883772244402154186755295372685724690368504972999400431503053398755138274311468119570113418623683327998883043555271937645946275802206828742497193880867013762135629819347505813112535606505001924878326337367877030459833515460184380699817616918195708049335709372050918325606218938945527760422661173622824706842984409941576107845687730139855996782212050646213416455189382280642214283206350109130166079190501001920396056690755781638879013424553508719470175419583558331514241851904046720871065217138488956382645163295134327771483396964081068324782383222597539057242055621011942811434954837675227209240620968396382196426482912828523100527020132728364440538063267418890332915653787086364626119583713491715931485572705090662143073013378919141748567523872553360001412256109200635616221877397018749035114423210056957171662854673907849174910818514448489434230450779007790140201806815934846297079930706667376532808906027478704612901275572830119902820930088782608523006032116111865721193851729767417916582082667030111709668136330484454223486410490279190294592764577646880850230945251098058627313290474362256035035933556803266477543698688765219511997424537638434474939296740012113717945475424642278517843068526337214067200072898583227616652321711244772403421915813754808390723298520485928240730903882867030738029428375288379226466380175172696837876547555352136009015237291502386320422923570341510158961840276265262622694880096601513414146034573468318759576287563662770840451839714311189952483485119610449009397977170793620757219482279107725730423137328707536436913891819492345370881925109863605969327380489022991120575536395444818336050221851803477626645552018102941142196463874922948480192110988630024333789387568116929613695740529066029457039028391408118713047377806049331791096310107858527180273796134080798900449533637737722170135355350547488812949823371871134485131522172732734461610896966606284830680292372629629309801835590761278284677656083358314182418689426188483018566210239950174941149460520454399439613579480482144783266157875913377890534376201436920497091175967881752836266995685059820144263467017639839105461934454381106481541913683904865861950960917917540002042353343928788702442434819614318335525848837614978704118013311694309022104230652746717668881779455291637766020553872927778155512770289275867287181714061956737232107174015146851826677149498449473306596474864797159620670483256702196261681624737155854434340961439165736329157232677372691716985331610699745995578807637843474105897380417150199299516469116492173738676546844993736642033907324500158671772601449483739724274055582310053788458216135652968642579588407384447490059095953853851450200080691829145181231415136705007587584383272432650035635142905656191958927148847351147469737052032883514894294661469737018749957414396242140103695644435940971498361233810731373262639467418330736707056785687964396494335454945492484691106175430607215804461973106815931055214330399916872616044235375254402164626240041723792161796491180242440972884506334471527214033683959887159810132762929031334973298067075902195430490312029366080823735014793499240805493921907184489336081719518145453790548201830499084550813648734406230623227953618912207192248494763126176513928474160280924672410580200225231910743880488852608677958374074052997022701025898452813660688759769872592386219685990886714546497334473026791523305146864137076346555157566023119721123730704752652698231499138142038291295182308225308586639879408023804007952862990834434035095896976122073622367098994562790609078132809282336468835209757258230313396368458186559786420886299796957737312334952375079481859788124608902783070284710450923512487382909566936523014647887616255324591938410731251785496660927346913529923806936525412883046186839655691439300621188425308982473427030966710820115692931402936947616080531556478637684505497892157302672200068710604292812430992071012231058095237515638888700376408976846705714714300224771880025352182223821366563367223483204669525326829016260599304228732975429041949451150046830812066731290902591044163815728449939551851099326976519830821617749578442680557704044265893652611837277331336662151939606225588022489167483840486231904313922488116243795358074877531777836023509830821498515625350613168921983688957126436041509639809520521577100932087390919966995806096029788848145888613518506925577951054856046894657138935274356934830911044528525055807096995896288582396125371131902436027355346635821880024286932167079922596582994311152751459159670284449473982395839969688698445983516835542271410248559071553643088657209477035871158683706204620615351171577368123185560327128659146183350692299115440115228594718960621062882833638309806230585683746288977183420881568732261523335733560014586882943880251637293155357155439415076218923746173683443464331123519348282496513173203223144696687157053118982643954670041480450302223918507162265446680835015784370032310181681663669717971416644322200609109585443541595675854312630255517932933700142473484551942976789944897309185916947524943763434803231062942097787274438254587132683773057807973274254052196803860044993492834232978955363044269251098983596843661572652908690219801958260110011986914026046611199897866413285121758003194479499541005200839216133117825086142635071906863208843816975468435323377224418406432098008657139553471631854677684492922030443564839798186339944057369582562088390312519747149106751838794020827857291825930163032514236167428140328576363770085607592214881061699506163815425146272330183550679962358742354076666441077425192284602509640263777228096762406868852693471982178245891339123577851564376582721893010035437501335431818812718034747073466373935725014666959420079324220731998571350536745183459404509091478960594378660820333218828980777588140090453568022758775489716578782446517490846895758480854132414588038887979748041395466924681205987279401756568732830655152920923769270638551129953542072318337631741221782308416959098272242295907526124162873554493041446393328377701193015964124936032169129062644769550109423589118925527224903732042261777951845512960471654041591118482706345567064546509399384260430284136886372454589046798262067318360745057594532645669612049561448082924358144818915416056707250338681223798349075020874028226026397862389242519643399115616461349141368730465544795665232669701923476507795739656689016743719480365877150362965516101737262713884114219778650432463834577365199842909936935648683046808345157226035107448865563045884210936954373869854281098716465968811448305306577724834042252640509553948691863758989189294020144861341229357987183479348119628821442457494666953674336891152318179403673213300379612594842664338492808030247070819391129483718726385583685405231582714603366446558343170694654643541159620238765768917180442774059719646364558070991076913363013844236101986637052164332933241740536147870388092665228300257472712926454254631734596097090090959592474198227897272576344884692496388430280261832045472387648890635299093827765274042352777572991360507598252453912548713039488784259955666834925726349526735444250456436866430407379438647584472759447910774731915473625928511268814841684990431853819554951965733158906789485629833294078455712251987109327663979920049303700784482593121750566164481870758859592075269098910869596117389659178591728907556470453250048178016961603942424857896562016717229739354146931491678805019264424765840389133455090398782099763107781316613935201147784452105480168809441209253509229448092577331755949312052456323839848397305039751529928347725930907696331594068118848461970454971676034464601870415312045522923241547492190675184302503690567962637673558258838130668133683074010221326080040918129528099338946523250468059475662739613756962118464237844091696513901406024657640321901454905739012789771252040835917330652860082651261297524257137538760404356087559586173071173382207832104193488075544814393315219144939448785367323334258067806551890542061953836754136132779879296325696164268560780859003364033331822676587625924925186739884357978129057191126862476428503820827210556122146887297873386578815819189826735293246483062253708215682485706332672154202949322385034943100150901492663313829410518178091748948697251880898209524609329155951560029846937562164319952003737253106386680496262095736881140026822201592652583920959794134606046527709721151807670570919957013379115954381794848733040658519944730551370904389138387308548516754716773947758732339875027973910796834119364519118323716041292405873872278998947655998496898906395566894461936641041232388566356225765807548050952006923911630896341592174299269151853988180755251969755226514831918185964093645113818466086800366833968010281468977482689593137709606696546484385355750259360807697065504893402773837872233288770164754441639338764892815522635527134293927743330646664305403932231067935935901571615702311546842621134069591754958148724908449513777098793338326049323306142432324332211039897211623893097263851391920684038697584395984997565537620226127220283856665760728567237829008057776821001279263678713218587073091820178687709045859358660099041669053643624695502915730759239939981016467606867989984311619323852658606621716322892643646946362211783756145590635709885403136339493413094592459801949286080275452185314912558392040195249995061907419522896998730335639655746101576806156366340983823926754532235102611718637092402294280510480092490406102191531825678779738718441881304216507537259495696610512266281427935427865833534594674269327260086155264061274099855659917036494185740181575764333210203657532367353755273854482229322633887971887777443073696257270703222080777648885207914646804910502098380447279765584392236328633694906313707004711594432381791624166278621640862589341667957126692630747542979128006680364559951145924706609516570971661967686649396895574974165271359376943345973451327028478507399788299412163019032069750849606482690339788256442319192608480176825811689213519044989540338702946906969896096332609725832221419322165977856592280484946116504246159962955277162227919706292532360894460828961942583915832318684903068197027489801919950119846665587580146376424515230383618456543254977607223983385076002387354196007022780420000409075505886874517997159795413299674704097130920264013223536224735687483841807195415481392363834614708490952165009206657892560405151584878114410266957531218939281875784724926574834099272745651828921079262408771883501510752892202263604583654925382411609575063799109025504303001211695926090955549727862264652512063395360874004644099559782287571250556764844695524138759412123523330223553743816538265476949370880482952249283834465590679780761025338485690279300047940736488026045900552397230586146224939794113789813073247347352562346377040290314323992070569577667386233650511343159908061588022647391768460766449164703942781937616914302720730789864995946079808542703358408108596712115515019646412185583004082668298232636815616783230210240584544795756484855426940257391253603563102388237021429455558698304740562306477510619035026183932224089750056575636018883815617203226279669896373628261129902471225958156212635073465620503288552963779979813772614258572223987726090382429459908031564631681920030149452374097513642868676554265574623880382432401927278324215994085471746484831839280972867430192942053070073031017345782575141862920771207972859566184907832941648884853312021835885328588133440788565377021534339494781348644024991305144439969727531275467128422889431929270129814871374763291748472896158668056089808047552165621677662920989650699511790492445492354640238831872415151881708427136419447498869969851426255142530070937815983644989913605405852422235148512745049111152130419618859631694644004216094280927430277485940535772759683964822362918216049200847508871620818059468707831303224163927358099961481571465843356850259373702635899847996081586497867854258888978905139156309693776429624160185465347631071413853569153388772969498652336032578197020454622039070142428392046856935415211802363772730354630414683468760661083774122273515713091507750732497954197298614940289196011530345647203421068713794428333000853059758465643873712161193504380777083177585787247126759170956036751872148670435908796724653790880442214818382221318578566994923498504464849759208740774465306465271662607952450282995571930038382062822191772660191068585821380445333511907380461337388720958098565259678911183454486922485021211811143336904156490038101625331295039750116646166718025790702936093777381811306845242442249355533425939363387382557475616432662530437534860072554742259453942599602378731662251739105585242404894776904040058639268679400664084786288255601500511137622459940961142198537324194730497624116569188878898312300779621356029979839394615489651611782266389432425073521606971258368265021926035700737997830704980357906880951503674541509497427802597372849507528409630790484424346789027724340973414709911501936152568567448649235796443204804134773897157014982978815358969899784457034941271482710038636032555369278043654810284811973208702682741328094113227169702410886062733031393480460351276146371645156838865373101615979237160441001128192726811055585026083214921656051127590172091474593249898998502403825708390444673388762603149013690091355286542374574505773809177535058144458040607625730023458448728291846506200740238017307222626860913046153652723168067974277222444733589635949180166883853585458837509774280103932634352491398280990795677231305895556080284971193916038962363683269859666737055751365551986054133090522798273307914254179244970869869704916058148751455549639098226514370193390138671858234077300572498238623038421296485240513942288041572415085874686737993185669423792534314758558175044829536782022121142619067312770268836814934235335173983965783260429535235718368086204164912810137936967452042824041990220824836433156221391209358010196952331925526666628916747675222511627930826833413477849708606704085193407712405945380040177988404951489162162150137728125031589668898200718954841292955078505209903644609124985548036441452821431321900869616191414922405765015914568534774425849030253383323561002552312483966714431624552583506203129464761475621299660060955476380572820660517872903220345064067929974202126565232040351895060807031218703690783635297038549927083352423224004113204365209243875296972004299990377122388312854967203951287071874725861987702410155336031645266860640565692837352066053816626868490185515301410286968527722493363045076830548490602652657837061883610036064532084829009418566179370978299575365778242648231985718507602783723589114556385825277635088398754956520671436662317843842193165585574215562216843691391346852309057839134808605585445724029162418075245571106083761440650239609961995241658095910301800478972633900904248931102310672079076769089141054836835156479947905217711478181004385186732558083281959041852145643814240825986570507510566453384086334656151186873788615651464622321809192557665497201540722124232976831799802445254585341038276098124999215912916218141848473286704862028380412258905510050224413828438847041334127371464434127557025139425389052477894581309744758950068460014762021486965508744748732106737872295636039573425446945916629458472269080316583533528164615977341332759889516986271851745052467942728035993569077588509118402438832272255628542522088919713259843845399724710493949337752250458419349813956206872366886294357470080974579282434021626213071975504814083762416743620021025068640110884500279086764458139023167385118896012364093402460994628311434472468318997565357596942197398724263742238484572038850569107466394017294263333365267851237577268942625915438388876620424823571127813780420497223835372172721985399114261884309300589548332272284094071174113265488202511107137502249755937644671673068515187097839536077840036745500183898512993739979616453827175369576108304865245319478240533594906693513696867081065863364683221314535875118209293278420663889508675163520994073081409126294697176701191785222230487062447887892415392686457515173743159578772294217975159899127548973947678384268892324028710042499182531413998013094239533437119554283238590464659245880386905108399490684099956313767003435766780140304870452413950220607061047436235630061608832924471695125026469009342428919315263623683126206221521031846050811722854259964992162977159724876232315827907190205694840467132788482976907118248401037038069993352235594789916014969911825072241085887037856609548921064858962978882322185820043538591494850705759263302702514278202027015439457221096366201851131540541368284329005994512948003195173336726624516730778664406320194829257264755462641211685060474764025150679634548017967155270759550434181558991561653349535978117095600740382865486989006342566997419314336959878762849298932043208175797286853888791155479485244928066065196031182729916530459179205644428370920013877953675619595915249043962216783728357264242827895331824102831320195798588650048059889400935510658976600160047849548894938827260157751391396967495182792489052178189325139860088523694508126526191393780159390504012802368834405397564320227315941646173283040652149694227689000210146271660906740016314655484696776996423803984202412496320851884343754657389483293521304743489495337137515063400198767269709379149290641270511001698983604318219542445081945852198864617311385826104332996456572915059952391681944332585824676305055071126143981534597099322733255225292537997991491880996887618894000640818537371077339861594694430450968149864446409644003540941418358174327282038419815053505978298313856925954308850258327744739732566273197175374111236178002016906676178634971893314507046471922901490249699546201522265556898037623298005016274821762521080849527615376387984923962650975994028649272243575108968829772037216080570630106192340464576260134750839430662963432662568232921990067303777397163795838259758962675634010590635905727707681334774254448652161282755865204911630250331647538441174137512792160911785373715234250911843440966177065620284059187461578974999278135381532965907387691176369059947395348727138890478770045353133494787420096619664778795742125769262544838789501705978708537973961951427039784410582814741923308759694444135764176768324073160404723787145437600610757105942649611499887272468930335507329878687936735630380764233401708899058003866057646587524085342943750938467281617543996104718094926825553023373829161940767266916077057896710504994810697421246996713464790244792612309680000198207563246396391939355135878678255210496910496540967433967460592625401818304217161043108791105125714299364686956232892315446285517022143820303027345240666914120447897969407544598030015965184291861097658449174053729085753107233511361907359899433288537510077116975355895728238081804217510230272203701608006085417880152382074766415138101001519074399639805618064689011818312990265221497456344897448753852990454623291551204857006258352263774652688846210728807548233334427604991662633713597566286662486111338753757854628439305917240619870080855593044930774330620515881736023922977055203273249207885899108166698667030415796706506871479718423971810985656871454411536293003805929531992817114110941528457921671023767019018046339066264412175685548125654188149326128119297149978817835401093237692468495414703079396606868463556557877620427494063122336802022285068239062812638338937352147289818887881118454865954182541062505295227381728952301898500104203476796717235852357671041747795527732085535996882863320136021962168217816986226080678146961027284381372814005499592893224618024982619980764236938057565476054269505124055162010130053188259477493820865308290750024312804289850676766218590241218399607641104304476332370891130518556267883316283658194008713706124491344809701247742153222180254817467066698094979729637039599713655566605224292783777883469247387020326238288389764922845911353670927375350626541756140027015054570623237651054777584247479288826166842483653962176292934252179074389932141142214671937562109698516362395525949880352140964748396158873066807028875543407938052741370211409860749696513481551763498733004422934721033518421601775291596980288696592169155873953610849937325778540438824545614619543175668332556642207648833946478899728194623949469480957571089910673173300427297326202649165975295031287584663388261253602815745362496747367221023889091104918382265867029997532014692850656422468438166306993552221273692190938195860331118332632399951158084045781039995280698945513551671080805465394379273457613672616693692190112286194803132978429696231434344666965590644332383722823478935299595601862726366766249359588038113834640852982220973042784244828685263500372219841210011785656273499119701487401721345374415891049972966185569825410694848369826233274760863158303997150695259764251607299606289792010542856611557360148012083886381854278762239839533327391364416746517926794473609867574941981287037442475046412059548945190725088704976715213181120657558577894040654265964094560057800940185537117625766493969032934804498674302509876862915579150379274682140447968323314434531021899420855636026006709553067315922932312270803919260792000901127172035399069626660078894708999566049243529773501294675872131257166050009127525465832233444795462122017357705633252918622509419891541130280015369139101610397709269125888418714558492918982841285328463740014874877115717691614974345691186803174845946937513359311618547897304796952974787460718283034047889540778726749994133547054314488308012482680917000970073368164477720297603402844164649798177066309480283578171956471489398740574457175969443912528399896908961719456742397571991314441230105541370211428830347234983543718357616804732626230574579771540768278213306331763499260703343287083371675147030601815079627502808282691993910716796767207068016468256989536300245067064702280666908192764687740787297345924089970432675354114710188344939335475678992276599377847725912707387410950314820734503577207745775884852583964335765252078983794809259080610692095762233329519260049168879039786301376238677752645926006519227906908753941118977257867505867428370103689047749357797780166343675530308319295461431900165060832802480144923922402125132302808007396912159785263700131491843050921457555870225282478737226867442466488472817267978147299741777369168443464948403407851074451503381487403437888295619338802074078301760577657671474729977353914502664126507924089063506102042804376247119799631552196905677217870479934764012193821433662900350621816040986358730108334758049195527319863469799487222577781731214542338615379819424869860799876905948945041218915482901969883115400597420665533908627256154505125506871737196094256186153512011813660461748024605138716625180620880158903399649825479037444488501972660295288853188860273958353666880838106762379715955491321868913850571159462689230858746898974847869965554499203984003127673781869547919773758773022144362762814133470556427988432889227457394422545063212044177116340554301596107661785964523676372850128907968234227695791591678256977637123839590410219271756934357876804433585192316630624128803444800822187457388882979881956947784138001649719128623967731529596896031734835355530113754526372577782190559178870864225654961342115488990793968306894657489562459360044542023961236964608949405259135567490267089547095882750623176867789280089918388524278115134286528031081757989279195047300741524321933498346974603789786603273243715345234832849576650213258446404661371506826332233217713292692100843205561467642044994377155985910145602977969909405509147451110365126469295568959953293168630930199721905415766764348541329951286018584324181461213965327389419385735165417680591986236044492709642979158451030421300773832498224141856787781286234412539422070240707719711603293411415738986443638274382567266655809411992921123055563998912884321470107865815109980274103595440398510313246914934003378655880272683046172282676898117751391997053672740857765143098854602933218565098704756246417676332204597010928158533272645844788585653510727854320704675124560147658915328784484539010769143086201222440421750791781792604107193636326075067669936751057689798309100168665804766920540653987359942498998540025652022405921125345712183537024719397508097903481113541037159680412618252464215969954110311262184413722462729386906370427643409114564138462189938138878694303296138506122831946635633228229221773360653775162942745754500246086852588131182246245039302036174761851845134324415304232006359049479588319777743917431115698349907245700622604206372420026426498282281363235561904947437272253932267462382109410922930113242710400633245027996731925157689725196997429297974258919329330140907956046093036351620063506049419583131399846434671956319044874079752045922561085673754982308382677546069501873675136371064432708025440162088111989247240723968015575932548970413395620686302463443364763085222144402517433622368152688031730213701490972371945944189015581264084000463539408000540854446003643311021843892341695816290129821849687402416456476060803773051812187678607075662292196043511688880317793721911584679666961100501310226627507019123084585068566903221797530469327259541371934566781211569275738413804548708258586662441210506624775806565030155099404017390762901267300867883472701128676072890469720976246999217237332392175614312538112379404132752567254317582949018676458908658223753062044952045073748160098319106311759878465067851869419637734257699877523513190810138440165342551054816327293230904384421398718100774503208499759411620995138169881354692277951741557603903862859077692235285370297419626637777313522121633011699563760085211356313338619220057520373477359486266960995343723607458612946967609143985907107349946589260272996693472022518900143650586114097602168503648721223443433404750298817059250504145681043097481979600305948714604555194760838481976764442280780210520707705342653295400330450537333162645658740628989254524324182220068812894394281596801763313039680353286476306065770216244621100815828143143991447541671454081238906764046600347626668861551376769009518273691505828090849509180987049981279552681996361402856452730294926034072209186525910363795774627466490946701549541429720367676728297012927944786846387181223883018458523164844017997296067616743614106553436936395152836675763084147496183116063347101146338945255280361241746909325070397117850263758146317169626319754108214487145724132437052637238015313875596402187713049050972040897705084664894501150895600038495692439927099870599412370119872110177206514244685375529545272907977254777921439611434328067919254499602757516043369956854502686083812181392232484099609440297507041472577264429394628131346849356887388012939862898574892810386642821659289298790768968645004055495017335257263858381507413083914087713085051844704701255893738132186908863138491993964434444469533522774004641870050459497816866614784531717855693355434665479910680452100293427897769177678445463882113453149521737032398894443703129500326077957719102402634564352062443484845020653755213569573773857565367882735432660059188237267515140482545674803454055822818552886018883729147096904276492522236797692996658746293950193556846339898989321305135382091209114913738210614770856890563959301521564515787983838638997214005921599707246093545164906077041415965695169167302324286797976944791816222315636404877987367647377038568652649147345498819090047026180928594492380548336492130566071339392570445053855252997772470260039487224326397937276108493695421770617996183221500716062019481873995415154855953158665220840972239623557394926507977835791977310645462475245825615189249802122593749280539503573456466466421622541853992952372949718395719621593568883495438604996128985007920958420373789861185729546112633187144247321689175385015313648719360702238308413647389727216843273778341733645272421140398459498720272091312885537775860103880708163702972576973560441675382431139767371955510434213193392278075951779390246796740434277981380342561156150955957654103657902477222459748856208766910097004218216102042673701929828491114360494317131483057839115915065003383729630621233912864278580248891181551760813615445040374081894659614179480211270417351853837655961669878085198539239733948966652498527427012951551863346991506948591843697138436526210934917599391758536136373926844347799349034969538128387882495098611754647630914104549466064034861388192517748158611722426534185547015059368357046862505244949793540463151555820858399951019674542384984183620999859893494009870250156781057445691452636073909700355585635881307274078979494853818925018090666344016377264015719088154287037980164256542498364958915341291377671405785165315288911328984880240417541758657824302442733853267038591917612540337716573861842345122928946672018249206433006555062512443256987486800396952257207096903690469579527428463439465803933604834157052099601710224887469225970028427100723923585088598395621165385998291647093780513062841300546616578393664953540556388001239929210770386181343761225694287704696654130660004186924526349877094566268975204870267909251631363954355232431508776405127005685490376904709102834905831184091994907950258939674848544747484909295824635879560744720276355140888493657079480834674325510152160518087237209017335160965544404572372021461650038391379237674689698074820863843085670763556591902489397992441519354155295460698775050084091423917779070582107991129558369803440069150214234558108302508610501037126297423609219895027904302107330073637543375008227755110671946116770031822960204901000177613898030503546179198025907554787224008230999618485360815763327568535503299144923753090840718778506945809886544465729587339680463396344779575289736627307541963137783184031087062082084173648148375731378257215292119543031177313890753628764833185831568064464245135870465113988974169042071749122955983655583523396011988172798031880983771564764959689611479203104622118954831700962627758060521602976798879269701432613091585047226119628056735610712698177777360262148658155919524744185385739637823707318101749883027887719369270970194225139883513910505178364166275735678449260287257831402949597269671235985824142405634766918438669770034647219656441806258808874253709793936484218358187523931183346639935405459188965384417386642288813515541555503061998330990352644578935186509481029655260670603253689944664089647062974520500748379797930239278972070693750655732274086940785066070686196724597076254200222860940590007621672116403924487103484961445815324876040085113745807680016408417446463098580672307855910676079581079813628382108653942042417410896726030776389657396044750811909638392833788300167294283283031616693062837069835070788376946392923462045817492699780690225413365241559997652654081961866510548179395037246587763439165113788394532006151642398268767350067654299661338748023731634718536143969352388157693478007619313447737332024760572060021712642100667621162329799039021176837835584562384489322427405769652977063927543324134261916936700456892954966389256101096124313631532426819501272512450239480761013555934159425590641614307063922388774144616411620966276572971872602479018119095341865581993410795936918338307062406129520735776384788326258894728488249635389348647079622849152844592000888098041196131473108138742207619891740254786475961160793248739253274763177105320490028863263405588264381831203170043823329284719242655238800536482959214209687850647646101112778091280545821015398897397091292374181921201935295189534625710707333876222456017796956997205044842359277317734912320239877882659299314159120448979283088151944183818956346365758796495403449597525866775379377526685105568386244027643877810541156778948119636623240421835409498594035242192455502002244772689046366903096180362232741743459643911555949211833320127710247620762427554527333195597401684654641906418797615231203595766504535731158365538270375872697269300217766915300489200291507791933609287812608780313301104754110208673969375987120388749916476080408425605874558202604806383821412257701144401725962364203315591088898378286093389091187413920919568843324631354286561524221061992881049393286788161931018693735274756990015995729779591247531051914977788040491348219187941952960158866309553705380934265238502811687417973162199536126620793692320838922653959409904335063754490257748194748649993584808622668146482183450384586450205248630812953939052233611628666482059681694005492276592944841466507183139473819233905131979807512469579593847113292444039697617817589786994813763675352590478053526663686179167071845806974305704864684221175245009785676975248173811134603451757613383572693466174515994070004127927608290719699201543465561435082461442961744213565653845380229483677156226578275402320062946101281886141772284679235964479655611850328195513226043266454642214897308534447572830649325327546760346762492901939992351594022095142204907391994651281380542267415168625964589322196263861974220544877722976327560189972974109949648831559730201235341479872083588726093809009281530834948023459602673936411489570804985389306166987710905742651284156582466766388424733026301858592321797198096792912944373884842305303982193348643182635086409590979018050497520891246219219063639238605533432795482072158890733188335613443840086043336212541507555667623734382284485285209264462179106603937300518322130833525607731821887569905554899917699274467747711934256761034577805737100610160379920082865492871849073143345951532425511576018984333256380728141898040410199416649029991325127219918789106639265983866335729118628303956166543402159393184894731664550242579803321068051583930522490391429616919712876377111484383553213599022503587156689822417722663370994480693565093589444541133888124277421917962344696429337951844490710396638256615449655068498207382091170690275148620282913288678140695173031028750726543641764148704861862215251611671252902461590604513704586262639915319480929576451033985141937618373222248952700109645238732705949350741876364593409826892628776399123373165761227768573744510103104836841068366170539020989418032054191096061654351894587748828823700951679613552977424011324353456172167366157200673652236523903282913855023368172892228336462813390310669251346455962769279268968256205337962209577424772843364832199567046192744776177894991120053789171723014864171390952539465822902059995071931165948152976697490306634398067311799071281098019661746411735042345979064722965187721268973219908885037804352752984669546886582780151802068333583449751901239029539228319058392985524834816993450022572726332532492430613949323655439986785688287460357859865522306498857185497603591038389512152005592106818666854864075542308944613776358577303291419622611486770390803306435920785609578914092272707068711157715319162832120302559381840542816146449526776189583213002112965309968496929749501816859852893085680304130017051424738613946867008815090679044731948788725865240415383394697948191356433286140057324817768692333384013870778587110727353934059998652364862128395186308448047993229958099698585217407818781276491460113779110364577885392371675849597885342057912716049818419547768876882625815120265877847222988059695927366736827486662979189880258582068368314795529299250068324473498254280135179003491141850348536141190296559098715928563458467703536955673430111027613452912952986178857959317056563098553236901475294319809355131094700394531173899191165857126382849614700700661136632287552816979278881479914529187452046641180462532292162040339220681240307016758530508973388058303971676626976228777282110017503065788027269542557971972276485681566526224813143717555533143280233443148108467463386910393859190413187455698070544104860335305512180770539974199687117084510537377155660910802528475572266906356684716428176885585229879032635116549866631301572256431842214673741020413094325763453784679276749765713574828174470597844283210389083492807762125868791917562623689996967390748744854496695300201345197043902473541601016756806728649714186382129067835767451221428458878904925047899306176930416027575566184494028986709465282400754387410324120210926917018593504427548075933663083167520818435779394888692055470040043198908448678371114736351550674854599858385566601797509042097760872262859357881052970433545994703678266069808044888377416860515631388365420472033480446825694788441499504452141528145001301567389515974056052261970580413181695202312905527702401252234135231781071388128394341688872815349273472558366155427344086568404812443383348528351174141102519190019303438902191270392596183216100921609778753548001723705468689629126034344538870576719250942656735742658358222709003139809102670648117650950281064953913611034855656566309129671881770208706769343422749633272546275724682415349582771690923510031442187643665540785300096123105717258027798681718123897222427111799489689114317635792812163889520200980606900888891849886218453270606612581328692635711146160243152577644045901808369359341030447342817454764877804556006717318187968050498857873166509102610393483850325474756688128136644072636019806471363883547568391509035498503273677646783516796498743960932816556561864941584365382015275641438610714223009623576694706469116799850846604995890480150789040396677265069599050514375896568570917723983628278390611432835864820596879780943763224836633396367251021920674817168274678479433833454567530388607269177783106055219609043015949183021190876867220283913998975129264481485470952837154665363613190668003384634561849468770426899476412149240610840539213242973553272484453503851891114149013132062269924547533916887300173992411088227113450844947204727754362439550786055913277955124776377272129292135440972931757608546259604237403146176097128309577970940958680858837386341233332430185125807752464427244588579349618738910068051385638715535655988210592501648054678053992934934750846493152758325027372342159788060955425887135660901747493992110642792920100625784105876013211904763232389639234160424381693378829858657321345007845705299561336376794561265710761296957097420110665694470274622270102844236724822003113534858029889164394041931244297655227776032487688712370542921662561820369124147211880414085881340573621929307125521297136215895782766212296854674328596642584861094702988149997254685847256525381413090894837355659472241246937984611132486833436630595360288997307060238037870051208289592475982434134017325528365124154689556237545391660000230881353754658965709232920359439099999106274627785695919564518276037257838651787297116518244746600902173779746715873989472850394518062828498536377142516022348044462199130900333823123925292652262900971483176750063880069595149477135051697357838382484437270481901374435619586191313856018397398762624622036996831207704854770643793063706077802901379652092280572551271028958776558788445062482127500112681460754136786058137964372911201942687593712320343290354180917693684493538611971084463154965184155979789488423992582589088059850263285309639114859198471336139162588407699350154549779245001496485883510012446240388119711527957050021846780426064277401053690813480151303701185224559772765792751330832533917402159873988423797039913288482325375332633543689332391983526611041554848210660340124427131442526286171367306351306562384087352224337733527768010212992788260531625031118534626860256786060564103059621263121756430014522488590434399517331871464360736623756824435052642125589380433793927331071232759230259550008492477316892589830125245172678480064554577158590901499128104969956354116404098889860415763761743978895990423350500287116785608949161058028414552723904241441193620959555898340411163113202186147413209814796096304999300391087400896063727184477400823211157433544496285893262107594075044564919485272518188106649364662087906089745352502984470808191288343135616153433369664172438890620683938243381741430515112433024401759248649470416769018683204828257943732823376482390743259914575106190096299420382629251444121970417371645798740250926931394540443454618447094895801653221459429340886905528776679525525371805879212232945933000363519109372464579216574436612888506121233512647682257694855374799845259120860590620300306639833652177132205287953273053647974798352736695174082250258375396130991705276943513890446694052396655135864608512486240330905545796261686009523077741331242065445927641544527842774805760903232536997686285575650059547526228707248389739004481961274445975589436190578769287870504477093158918695652275491446829356987722429932219666718773766072761378345980389142166914361949898366965110793992286410699469604370320589909878065144622770318137945482711599569101057007222094205655719647395687381434876884372420179522186156797167268668944637141170768215402276485844158036838728389476717646707256855161878093285618326745373414823148510026302487725275399644885018079875677881118697058237622344548711926349913072988433436314064155196539161680772760608143531798785911547687568544786592632641017944673216260407969507358703100394597647929257170857920327399879142586377383409000838429621704992897912832290184106273085716556613235094044265447475865651827900086491130611448766069850845548426491199368895532080857339232531767647799374226811237234277307194228364024185432301332350588774234346268503993439389696359416516827112791713204601659154639989302872235124709994028551008451545342174094893474950287118962514424139161641204740561296969802894223178121311060999279987416726362320201751753767981764201804830986655681839595456016408979357383197563923179325944409599498666528906065182391773146042552233099504934434396228393913187990585162695931843808696913368518642561690595857858256974550530138000945325129386597397037059829110158954087153252304545433989823841716239410748449491893767517322993486522689268321508860720224822309993062170366600785392887195739298264813146005651380191302967732876094984028941208901540702466355105553571900333317443913080406804469546879501029972405015623676480168596219174965164406649352741016211743423438309374601295807421250519267691870750631292057456308334343859342414107026420302919201211330702789450472582377061370535119323433436036874299644262648297591095324661697054478559489137585832151995784753011918169449766248663319043075567375206532685619468212683762693024484447631188646747172310144773864426993361048136171998811109330558615583091597863995392593046344859130288351056545608891847687180888520684904086357299693205610364149458683026604373641224263652009691418678549553383240934612734840145340256614691126901506164018428868045480658712549863952847847156125496297014173120523115058616825295558187666382735183561836906309314589453387969035218973757643528814715101836536948114247138439465683819812725539586536295989542730089184215943772740714586913125408765123389812490630612803642876133084862197695466527056554838996338955803330811416960048054523859195330507688585575762157493180870408809241988322279520797206697758967199545472047311822049365407734845028331478869640077161484861678400441098097578616800595568015287692911241765326756109505199053680081053179403779580969861596935336590575284191712031403760655372505222468048268104523532801015614328723517330680502671570292340089798372890481972236723093991493866052967659350541028043773255155855033169319369451549778510530015468160851668839801005848426989562371280384409548014716142763814303552616089987781562686037218971074217339730333727659689894467215998810619144693747800769401088152942955980678441961000208385976881040716535231187508141429748018762521292116938138854851182959287737305508360288651285981150807080983697568851172956756829254200347826421945382850950932368408501670780306267794021937969929261596864407163472856519504260930469207106174815557872892189048149779647486201575107144316864025202998293800419381285382987023365968331066023656698661993889345705879967771352891293584285193025393349503720923803866406334226028910631613413010261084652370906277879948304139678077361751067724728267206076445711638476250757623282783335680511661435419907140827941153489570295383547760794365188578616728015072106414092002048875257381284808210706515319542663049022114186803247797770175704033209699653004102426857161312095971264403914869582968597036678435331148618767163261926501908614680159863978077407458752710616460278057918889847195759937223181405108271102369455016646572370236423368216414667730698767204824621394966562429478781213255678106007397254642671481655427059293841455050565800062468099530743108755012101903807238323302134876597176897415088078231969633362427563248013658597191670942325698908675654830451010952255873825887706420703383690739888940894466361978135119948202096709923269877859084956774577264466887628858658484797605611141845522258467137695960569471799786283522806259247945376800741934060997024297038811663318608152400772924417642815739976990801317717986305397720309331143196578789363628338048231810214708702173986950762206254510066094544310539313113922722954709082342636242833576812715217021320742530081082536386732126954389918910521827575841966867014400867606338521393163337136859722682839868899517156422455019756597377292536666720517977150922796032261375254714278181034378588136326477032135817033523307561891882641763988377688045447979368671687048435711813987588390290097601199758463829593853555665883110645425834517587036803544305631773716072771387940050719057496092103024924943359086468818631741792041242244404680521124801596049839172039541859219684898766743457914084018811274003760569986926694282585518897174319915932923219688863005071375344524471072506200440307744747135639076611113243845714696425924948087372318766622469680261707203995062352283506372438393098771073492364662218803924418582685324808691977004116638487163269954232040102575002758863813722837526089458789839539148217973865209334837483699885858604614724136511656033567500712943831004620589355061437446402808398485083159272039211048435166969115686872280287448448666692362134086412201940226639980900022697469446593061145457311540396391551361691505337644363884394945934393918782969901607616466298603889984322075049747297432824504914336725697767304108665611891762525984852646059523599958535077010011572300520326056503575432309605547421408266344360709016763573283763350112559912045146198535383770422232832758532007294744840257195082466045858879671742264890150329692898322934090314281673216435292543710385602667616694685673300151527356601451615851039669761496773786110681596475620712382201512644269232730683483350714541076063159398659005968941519926685567146381000646330269734162024794728243613906482596972861489339454489177059904817681702770437908080210169275889904468587462275049345859410481289884202646958216264677480852006951506151830859176220363798790341672740923359846387749618240946540321042932831887726564597834050745232405082949223305503662000329304703181508849717892086771362270920154772680873303491298528888188137094549145666040066406824207108434935009124069541382415974030958794545223560421826660727455076599121179464727616562949927884014345665302208816674054080176158799466709360478101841498803847702996200876016677322183184401488652848548860711750113849339781063422050103953602942512740579704182733333796772026284133000718382995934638856671738773202199414082347315649006612713258187547498835333366031281400234219652691911376100683427725864625254847850165231341368954034949928979670102696778721990193257667385662560161797009581095597141857612737924846256033864762936082589369039871955236107347278829442692605800049812760715212843237427985117760557492249945392924008526558677604334081599600337730363885710351234535581875941141971430187347321313953352121251685965359505233242420284433651686353624673938977948492648008024258825179239732030012968561062965823900722837607784481490846553771900381731810604592918825605229253930968263338863658719936123865647214098497608340175014542203676097254166178951527879937136653640832111238317797706704963579077385891871531777779333327786955468561724965449343073905314690650762103502919151850114665530630981161086689442878675495927173107403869168658887703936796663296207132353882824741081114332763220378166742901844347069824007602692554661512349133490516573073703595467454539971289603427488473833421858057766329943574770351015676678308061390666210088385262595139859418055568906584001501908173677830715054202845629764928988695307667719849065916549944766239694640492924989420268362210794996268409288927801045534994507995468986066540560000477126999210639328927339842570140943012978889303235415157641017357280374567046764238795243906902202915627637225727916248054106969983661012648463922944521780180033873947739973415219752692555553056012201297569748603755018122101609840722102185583540340046517238232786371305325656764097619110670528412176293130251389979399497960049773028736090626139204567765114187008697634963490257597292710769298761019515572580424322804622381925361535857764037429711663404917332488201770545261590108246352611355448386733868952930022176967754454350218987936116411213267951129832628094643743523824328890365359335326730841848312312101126572905397904730433540756261773925816894414771098406862828242028568514637366630804146969697903191895988020804225437524973170487221629017884819119340952140133549654116950274544590463949453552850919037518448618598910994911364465427004808029561374169747382490085124289893101935412313419499727667721228174502289251848068304776107894944103302774530776251092228771170613221146203140989972380601388040343079129963698967072003252656599585871483886092384826214617487089770349031430315789272831590013049603753172742583417556573948910975068092801963863011160840241607895483990763730623712777392925686874399687886871280031145618904222820482039883489300288001556081664442125400947208363818965486662016060651655153292321781991441525940028159586853626421805791956751269990464391904294973463774377509996846514585166593635308511883152790635238480594523249488570436452273217936579376275194248726323207063392323601388139342742300919414792977332439877129554887025914703003848515251833312560251259248547249721653252491479264384308028028791664240434888048147266138170392528775315908537650546609477393402296726563193478209825729935237267746250283968649854478624466789311307328122082618251796635114623106653261759210975478199284668133773831951585628314342348053670850499854316562581192869093462960239220208826682739199514441195564678288606984287868881977966477294670117450680499788696181155490215003578011711830121151927326804341151333121080890991388792967806365505875796321630610394333179619693858423380944926527740036522404376907355841577150413238674815967531162241613404994022006743116280586972464330990545195455193043079236224563081484275061061371985032653487806983814284522462933652020421843356445341010349992261019147061302534998591146458080992458442309795611208384050250338909176479986835163588535008026238200266808402652044528405134184229407813081599400861362930420716125305717262782435328262391285019841138709508910098369203151839272968225955893769404179345410455319058706352870857925692011212593560675096462284165805568010092181095043156326416564673848648965709353361013241645237943866635253698441664430329821891978523964476869051441478548201200624187149348189704058936175846000127598363098046183763850935019226219457623394036020586276519269273413674523890046443343039242363581064857717713381288264229822637755443617496840645804981223777706641938049993751857756779729891720043243028872442985225028570159666510946189468190282090834627787225969873584782825637418767991070240938896178340890322773667706710999669672363720411498917393208917801778234187056777354350210547502569221014318070332093054318865969968650492181784437015256214437311976558606594325888253248287462972789322670762142645221194128832429151721700803930433716216274848351575681384740409451793258325354714103645387444798522062825430636881875156493575743458145404972348651701034568206581963371742116541820602754637168456838492397977517136998797110651209113835762866223378183235509633144566097858767749856550817972265665158641779748142537343773875290880191713638999044127824134566730839784583609533722029367094930345464538062738668557227006839462013377494340352266973165023567546793197268191230035637182796113238437845464501171159816284808955317519965880137195260197396591426114113236307463212148312542476157119150872443844731191279197703501343916084772820160223145221942225813950064720114510271429095105737721462762896392186648760046452689018271558598780221081343358302258559643803757549294819544511383410308095274687422578084402293141548960256363627937973643564184674808405601461419182029230005030285951174089989628210132965260689011430868765950559273416436745786740535490029108460095444246687631406461270186041948716369356927258910265450221284402761305355446481012344663717982123043156019359560084384447697034422405564819024762799147308940219707317044874741036145415022899809178806341296840237242119139403623355798310269978220370431671827319287466151585698698282372431364635146012087383078613141484683682103690255809724282285039685729094965274196480668186556448857409194551712450600358092275593694441168430242505862980379935146454994052682523623461966570634285869420684022675756920871736547498864031063750762666892623086132512645125716130707136536730895708407614557797780456108249504874344495402870672908385196027687565885654263739026940997691950789377865407790922521425162120149864841946068684140772525269810570897924088845264307201528217705155944328344658394524237540513230846688442861317601453252840381064512505886002126189103530971380341120094830283987611436324494955804615902756707687166037047292720318151158036632657612242651038962699143687586940386462542650475514962753260801266834917922339942785048691575655627498696207645438450031364563084475008562599108443402451246162112075059963872765973708319491621933841998818958282947762111879144557943372510817510085828432559761211191061439062593143189716489678617308603778334664900851495179869271131707588172713307905070320463654818145696015118027827740207683160798128496724336998647510684832044178266136195532470528939103885308872065580247499740891778595833880974492210448778685188822344393387742723115229305506637650848236132777663793760761127532788837680511222217291675773757717283717606824539163539078308507221261196874081772215793891541606971830956835862489882229666940564870332298970396465125253323952516946601296099309489502685829514269113380535955099239545351643041807669340992774223222069515343084099536826074273120983226152513069260285306401016322383313923437297440389342881324609745767536246836050885281683491770366569275551741370447827293681102020864348851128170887647596552989243599645903617504788403274994442500150076292255916152455263429277446838584701920667063468492961972437885428834961901443564637649903876540931411063577632858764725678871053654816692151770585703624932212275029224445329922324238200704742010741866503906609935520712492278198401874813128282368507914534137094916226501087121895615698624862163458576633044870564568825948321754002557529775895518621775635501155775566070237295164017716236644803812478004835614018835136988021145676439350374958401187006711733021497074552761909587338455015321743159065543653135182377960945526977899063965169396277419393135630845720616151249776368460010227340575750575309484440400625837920103221213745630160020719057722482738332452414475216136052106274304253114168337077106002867250558719142816933180311017363625881954250998520720620080941159243222225210810616888296874527966105776856480521276564492257556919215481366604379395286511196172507208690362184838726709177017857824043009178113980772678539118965149366845571954583733946778145821070713525582634677217910698187760282296711586699698149046594034520327398207972854096342438309880092203833621271924424102935528187626689864966573126868952359775412556362473620274077412375146847180251370189580950864215896233951568914027775070584084941894839496450293691929648278600086737299565739238909603767509050434739656843412768182853586847421447281134350029622266590446823467155532025605167618181552520434226583476081108759676116159875874618332028439232020393751470653900524822617170409214569999993648310056916128151028405151650318389757665058690286342328090295947098253238695211361214746324485313792504412528116122058631524579451833762456159485689197970749172547750440516403714218017791093470208364547279503258499789836984635234041698205976105641887104249096094611491463889338042495992359813728279344681609954082820455888159993153592269271778161673465675721021322009907057934666425321711802397797243017049067215452005483235294118989005942364175488757886517977682591936434979062211151539728524476870952354286399179969406545522748566275240268381624582494615649070635448992664257226177980865060365539368512214499493046235007996882851984471681484547515229280590037821651097595579995831702477502766579975442433038326120659280946953458092475840434620948096130598574350999418722803466572656135917955494848602481176880101782675566950468098264441966857209868661077156738773550195519940408071878592033934301719276668192506150606540864777981416652150626385474959334347907314605671732172443978963476380738961767423492023023785321959608569989284908503951608560511493544321998779651950510078412248178215075194297000112231362842470638362001606644876614785628295264170694792788216642666112400388858074504076094662393771124543484325650732885550030407323207034192412580676410184238178723043534144232480668760036034602696314032566367353834775653806453952762656580770251892475436051478105121321278465657860851653769727669190790660262793117441213865673850362401025313823333614028674409478323556048020444114472692328094426006277109776727757157216916338243816909326001693461619364243788585006632579489955156960905746026087296674031603495091965782190383427303580917685473927599579824574612132047531060757479980019145274508183269976003107812260433737565556610636473684851452137014388936089213452024111560926035767061422924222476304919384861239976748479903139710440428004977902184702132610997079935330249412199098600615239386575492491976296551466307794913841324046433906392886187743380464751377645067368480806674812420423315503649823144836656582859056090245579041105841861393693752455270884213498332430580915003704899752783821811458957001011181915380588742502538180169736848009296483003704521769699754763673336743644509053107450031233233830626142330034970977666543756292447543522566183399768228694850725268359449611314215523800696085608363234483205009392097922646826355493148625099794175590041072283555744625150289490775602621090422206395549030730299707424706670829385521409064052976477062118424113278232257565995324025834776282054591507417099692586458084472491537262043157325585615643754084623486225122285837427264848457211908502105590774858234966560652714402081007949186799622525753010014493375053758148308555940419170536654815226647368985290503054999727640814524109983323178270510839577018725517900966264071596242908152259066454765328402644825040621440407986664764550428339793457741081112336062812651568298485457337987399974935605904089479604657558836312018382214580832610597187119478661996757680209311590618869227647261223360265711983217325838523015302706115206785737788970099041926305791284472838188018414118152374618467126866230627441600353785382479184870829294697038175127704951881275507248987934677752799345279800211195192338557844446748858359733958393461231570943709207599122775185676734606048294435848748343844317200514477635614942301377902762666102447479840203392703467696850874243760452151297104350054850146394183904085259011715492278082393724025109404377003362020377217428594977130491958209090167980683784473512662199395540007348810030410698052231073025056929095224063632570763726996843301838577508508515120370230334236675082339524199254329640901806016980543307832759930678057594905698373305675026189463860495391480401012707040139087912741347901520291480809922540161481471747691374712706316819165902548312571817516590412715739853401167694192524787007563836898555447205539982367949023801677906647706703892398972236408405260673105699330952113144492535227740727423489137557813331136725131612716248120823993648786361788619465318679645005757850761905922907178251118761558082203080196655848928985803674950392893524429200677680463058478476994582880025977295128785259028985696485637663738625512219393903903817826067159537995210430422663307780565808198898800346768185666850606152842786888633534989590661655915093706199421974448362170754151697556941964247740444350133799864654103733381480392099198939054552143356989604018089075386641650435667964551260191863574769720703704182061696507915742821708064167727328507313042015725752481118298732284792819112195264674669451746253761469491824865431122310431254803274092680805454630881056836204694533475773888423564328062889135809387455620004485053531876456459608346781481689512367123222825521415918743658010550635932731319959284053326902703854246922997338257800884224945428498581682295308714173064136704466647990134539736273014692506776416358832669616866402736770254961092503986383814962316511249657354576944286968321606211005237930690691309011105665696770473372220891603905714700118831528100755734717295281338828413272040453497981720134925664889029178364535786959954838400593584086600650523114565835157859595616974026383171692841325970279220426606437553002717017818747578132246892147139276245143190678904195568696123268720919545747937387176238958215154965099468246063302684936230155634003115423512543232065951082388419178938170615156049206667966264539874941252547775211751055258331226788959881622944211529773663706657379155979876619363935525181860898275375051760465329875893594336573601631618311954390428803410040574082791619064171594225486440393494456542865643228004228755054525280759234590260787440017115545224564051252898788200534615489420049436886778758429035193827850353223335725427031743260631382162590540211358775855276038773255719960998772120264470264508432868836076748286550629239196195489314392231920163881649716438584473666425271911852308046270381235241501725867607952752280010361001866998278803840317221108549273103017225016991871645152033251627144995406078665025033978752821062297907382274522013743638472624518142487373769042637311834731178561128145199016593143650841300897552625710335307520338033908270151387161927448781990079616607484549051761176737004951543147492707518562065333523846924377591329553287133452197959213409596048371065372554463326043571108449857508076244322031009454721574275238647488298813008609274378215209588158460442968141606340924016940135244877855458790086537240661049724261893697947088164203815227811262376584748585144232683187276435134090348220641232571445916261346252534319784007211740397248781283597440266541593298301040006097478562472586379264274398699749741184230352190262490746092772921736792850683065864531430925933582115237706095003414718597897388532214978329253556559469345339802895189743406621590033023166226285390959689215827005745849844427797079037787983543226774813931912655392361115745817794815824450413686676182613075928964928272878179133332559052925177804844822654025443583067192395947164116912077367652715036568852212023946835116462270691896910530404802475440831804817065168906811469061732787348256921495233826144722849817402501400729951195723341370996642994412442464405041893879844292349599588658089306773752690086578282766564292099067487202187863044192202629583361690247869238108853783321731744328233242781498555570838288677159566206434467007039622630674020500881829626347563624468745104150049814765942040193510652588595028145426322479580535888800596708993916099118762510433909193236133570262354732601749696467849547294832616291204766612565578051135391916276674602613387810355108501119619437693286737048852564962625773095271702044114998982286706898047542700895027921747637473481749307606381212481595082709194100200627732655960420656447582030294098180963031131675796762247252487036189134274847650590494807249746888393309120425352645066299970941569634895519041568388883545274985440631310301303158017975131702505481135420844900720498499899938092546968531807761778003898780059044713586692880169138794550126605032012856167259022438404519366228472399537063577744732562873983354433144307679989267308945211289311368113649073576119871627371841649497291170561753145468236717300474586072137940223051676651937669345549930117534735904601831145497303588575484373549768141297356699044087683615277819463047827789544411094614565055244350607912886568142046381810471805146968020862627966912218811667388039033637775203504382951871808740060602328011998547271697361908339644223199036016366810328998300735703278909457391094217587117399864558562373973840896188752541853581259728468799066663025372989539139549303214104862507646294132860682171159630879342712312752364011881720542751342720475257936542127225928080594579682771817024196102046241117663964439275998967590090327626516236417216710571861140773803499046702260199461932547552919169158255095805523032126618753044584554306647596624335929544952827666405814171130283471114516403892443433776302568830953952418574796779294450769064488369821587409511919877474903426395552542512823641307582358400142944108631815543631878060378839047520904160925661982396361843420130124744885100365920384741833454049732894009224202941826264504208326125664226976852187107654711750208416154717425696270013631972650895548622142075686823385438660041396504080369840489325390078021510939018060564895373830667321997672833826651485365281091376653902125466039709328070443242274957151302297724095418750980937297155564468049912250375350846768693597034360187451560848742897855502467093536474387974709089487640899624782140008636304030616395831863728097449958999607401180989269694827075246267319398698435110465644632498604581469861966386347294388645749641276256854175652089091151441226585908003860223572389405000050191759605099146970998112214006618750180776118120293631643935688983567314241906523183824337238485637051095895763741283343298664990176257708880850701223284427564771550137626471615643630579429531215342367781072406218102953699579500048633135903405953948273925168193395062571963429741143681233619809602111907478935708637911798037786562455474043548459303680571620676834895618773294018989369677825885377041343023265850784724737973419138702948222235886543612560777718489894337400408158158904400587718628426240733357091807317337641502085900511491880237664728548925953923674507877009454434862954117975050050164855224897379480174320531438130828338088148926695795927784463848368993222497771674486719346931566958539100980868843483531462585103282517893980595069481566132029352705203658281207445655567115783893512391120537184276909308072444643364785935122944962480162285199519978014043876724795144122068910155119414808252152113337315557843825090280936817887521700852572295337213288653245934769983695014722641843106470904785233653941531429240207310665256626791283910640107116928575418117039747835261347914829369338301625684942262174606497404571339122266722778609407647901682495140841481713412030234163884344912827454668751144928961514515430943117740850915196131766407017927102725729293822442972026397778364247796943324159215561315266740084646202067139055781534325307125013156252103914251498682547396471754355940779992856949335154685879950617991971793715225386341530631106433894772604357070035957919397454724772923067482444439470248866531754523173145716753456728070501903457601760431234843437485724264917886123766991703564489547184684796131382725804292653807058522343531848997103563199524173306101104925660741734725401687118933073047431004677494744222866207064253077158092306724123493518731725173065890898062481015777652773990528931812442841570485799007807409839786222465780234616911560268913646145872942848658397492989381544487081989006334636230496950046124052131546322419853588956757544684594964916351580034469467508922165009063473982564140720239332541726994858430386673934641168834358803708823555125754021167435460876389456280349891038280425635265570774817678738270718630709275368941404944332052461693211312862783332212893967406309519393730907832896595486519482617348909955535670115264822434132120539305298197402756716490330531462756850409676449511575548514384695454602897626072506763796151420014203924992961454295641287065841765382490553483866156910224892295341976736917024022788928506995936096487882169813263318450190201777324739281642973775760085203394935895235633889744013806635500781104300171510025385414347683860793068669137610066502949606064354023975818679191490758455893526515911728303594169880355029698268062904711145275073824540089558139315343601431494853217143078852967846443381477837543894851512608009732162242894389556068167903284361528088570859456015093037289647754975091704432789840661843047535537064706270841527055842513105180526079005697758931685307877592843579477772981247091228330854581475960163193626470182370089534424811566241872023840582632699722484530221945473486969596961479802355244542058497765221803601046128657141953535226995052780607325752541997466597547333386613266968566898908282094045467766479305744565430061014210082432423912747396536628433302591612237359156354678218626067247937942490852987854899995895487625331988006101631226313238765731783819522842036701788962381355014750918610094872002747004338722397505398500188153735311975671927600083788300410626683212922043979870567149858452039894745043531415371893838813471888333102397196297612115429446496517156144995864709729193617530994748894864124653193396963450784025103336657315337785517504550490488249146910744829990131080276023256822795439624194295116896494409378871506666676836838939442341767685946755250481730567683444224732063206085216568832807200910550230109680251383948745138808576053310021556601546421523041955865438862226206046441166596578787051590630752980141259251318414546864221029672925318940597995016646362746141193144808689751223500949841230432776937072836799957593671147911664803804592679813324397965067318872923530492702160919363138471968318943979929109344199278869172390378509020783992737991613009568107629213428996515150384397466828637326747783023178459100325709976940263060432555336293121706266587377468795797830911196977173682400071385968000532390634780046224668873560395811673494125751803511127611942319951230462851720240568490839393716516835194528815474411654772752954188559968707256601345919016981735042673188121499693903822403492871056028093355961941294298434605472582076795129533000038219411786607099074367222241678940742070690205769650242153387386096808973358142141856805096375708077972993441570938649328685001082536231196087137739272353806273571727772661743086665346294540469130348402246639853888702052459538101029057785850581971852655020294563975957292243547096471022120312228921749495849587886179142265467222195034741766313493254349486811320854543361282846578056913163757736583840664770448324187174512435205281134098263701623026870621622791120424472580692192902464300099364739589924895336125812005946298861441413092691872521274955360480586763944358321752506073799841586237507745121986211311816881586022243692847524149865818685163801042296366864284644289301204701385625030168121712405573451987369758231371522328772569077898298016728267618579213196871306738372821347637152593178328765180290362898560345988187715654365903253417582830645552676906411743021458807518657795337222403088738726629933460381376592694817742784930713859834567562951378809808881426786378883878307138140394658821886041343901031294778038465675906972296230686181424670995426118591234590230719315965536500985331065727071212620042662032955467718740609811985715260491673101724179021833901640002215089339631878449945000490502679858498237953745207178187976438474731185283280749129891921276012049610868525138340381074235418371897260701046710465814078386003478813994574635801222711314219838393053520992583138794156409424453565765463707533825438958842025925281355032543312813552669627508576847144637283901284844893416537165128787910059237005711743142089291887233949257883473055760994943946664127233949323366673620906443561768633890994777004938372873063205456939271472088320793731618501318059530079908191814100405144225701796857992719025969068008474653518162547102054059885827930715842869397521544438899204903925136365557707653860563738264281608708098435386979566668825172655099105339474314737619220536760388922621230070564655077689509226099995998028149404014082175020031704590837078716270089394133984074693948267071655868030651994040759184617802785722588701914177007462199379404900832936738227107371135191471400958688977645157162027531375255261430836271468611025973603777801867592615910131776410826614124848222682409815124215327860506711880061116382540985984965557459294738150074180484531208017033105991899357080162435374265485957898182412098679036830357747851942558021624373171111875079514459049970838746757358243377100987244360556791572234205138920359059366738688308583100271304076119439650610843617365494960047292450348133760629111057870505723509697429031678065258478212406334395092788561137596234768270644583570674064885939585682028572334972603912819159300408650521063486960069670486411509928362949802397622530003904951314867065800112527299601462699105754197714684891761065375152818026813707054554298122874615975777493055688178165797456810815052211341111437766935797127818766915103303702996700652915276576076717616490735588010375993323054325978972219870738078457153757902570067281242045123398235224600642245612599061463935842125024480298396423367150461942481446902773134774322374565284834183776772482619633075933637169210195747192747399769433717943506163156776521412950456073774262764625221845084717277292799924075989980434207337417101261883482525076855776293410297686987851197816958659370202520722735082576150928317134422994214185101802363351921230766479116018318807279776226092470869225369724627878105782537365003681397015792291325712619460418028392949752851071859391708846770376698118928291854201369949877362062757723251210756871460329851344834799981768821126153475056900534372733743784165280184721132261121133788955483442831332292338435420525326755007274571613545131572968193835417432799082959033613197361161449262642438783608942136766040081562752066001689148624563607876878133695971435537310786757797631120929634253265348681685612723111355175204747276870002742620192960495059051034322901425894760026455048695508685985066551681881079986726789328090139871789972856735640191835816665626212784702328028487909580806818081638205913908344502649113050197633502675037075211978109512677914269696782086044573633977060482946469857894777452954497053692407637898625783314301754887949756048533366335076294507556897382425412218586679264545303068900442911156366213419734398286174279154637585387207219034726801646603438256130536983354661451645453414837552692730402989684650454984008160894244066886732212833318790792190683514481059322981449934135815975518945111685881131529582503219914313445789482441344742649182230186464275575080301354356593688972649288792761490576220065021017349020763095564202467772126562644616811793770040047684277405496056121787826320501977340400399163629814193823558579575449058938989111247234247886675626906714560625505604881135791488929135476885166467615836392494712375870997903941259579965760511040169151562971965486034587345677843588682922025940640161438483157322379275455055194054860395925326045217534757285191361970719990227109988393159042140150066509282080710643070839415316010563507024892141539892361319379613893034136552481091017557695238080658125834279922063481577393700151539108593048305101362461965139540449386913500815031919896649074847415524033865524491235571013541365339602406432801145459605438599949250009318276570163016293284205205346419558103704562773820061381434564039135822138066394057446009584379996079742993054060365179256603811753332339281467087849880184095574263341862930987540073300701703333765662662033587005557872100100913832024188824846754562990072303950329325443375451081247458191983526319593562020103664679444697841063326453718249838523929756715655940830401136657362402311038138071799080681396470076025239137737318716181025974397759925569248794059661817496397135644152163079875088737763831011968249088642082788353524883336677522964919139653842168426943593831076827135397767377792061425877420452624430217943395202507213690324661020959892241777428322229720787740082910264671919639884997486560437946563245128445760680216018765215935406440024893654871382149512390644923891323952055152628387509082074541418734156162377838262367483044302311829089329291804587779432962788053101872652000594701647560087019507857520571253840946451110101474684514541580664377568893996410799571812784200410968736462412177038098313769815511455565465210729549148035236197706996552709918549907850345359280232404764271871007506825600433462840445846685479920569222581892419347170047718169408851043049440884241477535784985767689161470137001268940744034478692013766476251438035382905222242960192163783862405171363914185183090939187430776096418799424340137117867041628477294892583294749211224624580463759206828831676003169211150627548549813875120232006922061419441628882137147929683449009630831538763402838402682045313777427349720009064797706608681355943160950782625391012528305445881181270621387412737252930780312487901241417200250715158219005430911651621002202450160454545250723818429485332057640227688180904212860749312576634258435153294192511769348903775420110627466699495144197156484304797428093572483735139818099215067565806541142145154056758172227760454557376161842801141256687159950895118641918887354821567718903589679961841622378643715927102768384475147285363319188183105126228361003494867714653455598535483392250022040406831515340302649732212529490590311300816388160220523235126085381122922901574278431773854548442624625959029484451172281888416949941344743820447236126466117216086019400762646674997690265799781856990500886315468012148962360708373296594299803490118842235643173371048533952117116653176501181279026715366987802604180662506867324219110540055878023043889726234062548997333040029778640381044612635331562180947786378545410419830043212959939549220880792076118400311380077822422496882434876838414740384390927896732063630476475360930555142927788671130013213958449461351475697399636062542051484076906588928003561029551100894688395784095099108467105909541090221879405324413965577274902482635687184945902899806452832011553799404642566344755604321546740805596856810798844404185890732374698722790020741616699335339287725810679741382603821306485695798954682860130067291082080044815538152248941276864155029469832824357979857438071780824041519569045113223712103029261712108073509179778010644661336679834177356759223276309066871835264056841046952603718180245050984787035702029441251065069421622735553957920935801671579922750490723573199573812057554085290506568937043655954734918101961330485527324095982962666135929353645766708936244518852821012460462541112382923407729754269511843948527487931336501194576759328643066887882057204934746054416926120306987793916917780615015657661040149074819360294848666680565522583982732659245583541026286449232383334899627640689707263859180098032956679579545364784461629876521980871741470175227681404758035471291931486241629290941651212351326399863186330430078682251626623440484189798865679204649757241794051449441296663042921583034280401135612600003782342477947629058715458573219348383258542254113664994228870871855456738468913833061258204923025065993892391644901306877463743774903294603523730005572084833142234630554823725015289118807266751376498794181691702457595422648587023747362978769260096371391617130539753747781272341047139938763052340985246001546699577746702242632889608199257078448218302382050516228219040488639866616882366293890438818900448987913949153531146761941553667730234747616751301797213366083514477691221136226973845258501592759702888604063342499935701214371668557164984850039974671807396086620771661297473037141052725131803175223348571821916405857849719991167708744476392847356700268579514233204994048638672279972540838142788157102622006720493107927003055246924737412636154650529182026007541475470567663767726097711887408389003436903553517864872411116793666686728540232831450581085298908111127710582622232594143986329920206364673331774352116760094475747382818209335945892276144623861227179524141896016625951853942392142545961596095371595247465983558294420296512720452091446673578691926276059282132836774882686922950871197503733508379369447531057292930386786942437956706796568732893695227483541197100524071761241579457957807602338088264821578686470818220538036731267997069082385255145529905784470246871213882677870766177141051247198379494134801983001544470118909228779759207655573148532866828745851540746863710705385323517518968750291870313556349383001429447963769538146117924488774352065966279674071006648131133313177548256052650115439927415134505245087833026509016335693283867792107844205647277086125871907250481999473194027609856923456822310623868601202830093855529434807254807802542083349470658958035021597663419815893869672148943835049836007230705954412094212848459837268734527069905632090633918358672402781008861978545642907913764017441196251858705718561854219997478218070287808884728646856697863316363441489793152595421993076523998701754475088377317969428800467446768064722700959980070805882886675481047890327587636593248949111292680317223894336261196284412830987356076497792327098087162782758667299307499502167620162830836760996591871509291454034668676144302510721615025520510821250296644779830818945961103020543652832899771553335180790136893142064858202904813053810413121361320322275231204099877095402181822962783269043265242370362140785785274547008236402278473920062252648869242409334880555882293953086187746590894821965357270417665498492461823415163685093007374336944875292069503902494440361904281254567727604687397899095912120081289442884798777813283108338846020855738137728334479708680826884387422394402661637207009271784450101243344795422824992392045429143319815316090443846034673546893390366729874916265537106810850729017123016094564822231973123944394262978098971531660134932840594341595769487179686604090645965083590533676477759061656893711132902770832833347446569851271806383700165365944419734338085362067036289284586188918029459939738045345967672445157601341031355900324603332197532365317818847086723798919096718279461935802075703147835338538872773979261241217295697339579139921355838714618738070422783984980417384908120598860201940813577975765716026357906170113756198545886842583632202236910101729360059710907712771326452178175588941675785939873541435680755741140572945642283735804496939146590325565748103437807920125453816027620997509996501695676364872539388155857476513700577889126557847290285756672545170659616548443841009586961912741254929346087097397149928543286356806517069580668592538701966386777681471769357472395187346192078817122117622406980478340679325165871795023347996001882773798736658404277053365540838867894584901356109246906350610424505998866849214769380770347036945416875208318001028963020628381352163689532436320294159626139347390462449631800036757435978198856282737201135964514623545355338166529324118581824621675092473192506802400073975651245933887172140146548114686117327294773461266764900227904080978079096773381339402885275723309383900271418812522462070006795343891875917203715740203403996892342591644540545654080603406140450657257023293270711988280963672273804187620225415266394081612524216157957019433387514284195022429044335085214867754028647200371870351210379952334522645251144148987389272299480862102798217295750288555252952528597300286072044641854262791186471583394750241054488526243846490069035538846963171756330222616249164061774654937545863066970313225895290089914699363378778215064311403951700115374592363034300227862182305326079206444339359348460206370451723845191426849520811444939243385269108157491716921248230570250343674663350632634165400343840969426081288207651663561701650289564980024000738988744371949064797662754142981324715291138059114772447194732018693789729179677182999579492658715852189574444833152346304968470236292407295666325911215451980200263028564728122761639698202837735920744702292113953676104372120424240810145776896414615704098199608530674069093662314862192907794256968628262300728375096598392988198843321021962432224032090085950153153886541944807365415981181581703015453280575530225891963687870057776771539735893615868139415101027786732751390001367942758750995429359325341581805781788363714070661656052758069938586640648029434143912225096622441808248083163229794888711242144226302784788226360061256979524638323446800102094453108040469431182383842678381376644160685749845307018642853595406326746190154020069075237904074062852745999541771806600170248672322391015583837836272114959897694388707323682214417099892533504586208877283461321668458020162157019284332546870091504005724077570828651373195592768393165040687595272284716874450924172669170225340226782550881299593987069349239324725609907265213249413526986415989465677624320689163653901157505273652071668763222046412614262206667590773729085977940486312883460982911711703720197273864059998087942281944315143704788142330933254079603570751374140315771757861180222749502779469225215127739101446171873496537409932850657367863370925387013355765044113102452088857410447973847199091638758516625053735342367199153752903258290970362172609655774699526366614980766532107687448812995943221476728321322415090960388885474096776111840334440465293733373436698375479452524837096699233681560357884730874411777511028769643191527817184172541838516167736921485093322657976737260562562833887538760749178897556560345985111380877518200087693747459575472113135745586099153971926466596635330437459980110721445329067307204726720052846349519825725256471692636166727095926888420991273491453256230088771283536744820399822045900266132481665163028976907745100826836164597061785739474409854810691647066414178100046512701433255503654317605369349103137937416039975417919131380420997309746781193900489802835826992224135947446655705448060722274449880022604452935617152595319328957898472949044131988664006244867032574740727400899870932218399209303127864035243875128302360215823360782394786745314824130668449956891726618105218275044113176667328910730994471749354897519741933789485333841583896752448943600308729143376233389830854153224240874034769076474477304560817563251245948007142265249517728304978018656352638012667647840657626930096450303842793528363211503097383701969192206930096195063715553321010171263971646362682497169085109378203357801215721865830395247236042304525097946942015731282780489894270509158786650567684308695202923419147103873381919337181108062519252501832080622979997722927808243635553971784503587787111174616812694871890068573598083202538052448486361368316767572646209194795713909824584116561416652780529240264187108288530004039761559970162444080185571424228632810938525106031952724831895698085938907775738992216852833019594366907759222766047573959565179962165004945126053910826857367292474864223763080549084098158602926134064926836978322544532622639287757585287676312773969440316768938281466761674795728429573663181583938342836602018135625681541136564768572108240566872907177849993623786809182785344576376818389390749080030391725515033376524515438595751217862006763087524850325722671321369654765256279059933738231292617347975675053612396246051880935236501221354301742923781695434939383395307672760565487383850019976050392175211576558800282987362497778485898617290365374065261586827699488365883306778149531439024358367466333096575432974520264814138231846036505475156750254735654643124627230076999106482094630719029821964356839100426515213468450453313987783807268912374716350221465982803855118039043610772829004701298541128781409954843120501032185582463352992166143133642778220933196817225728221613845708927075827895586309312473979041493339506752541664235366565556698364372763085482447485318953064174884681575874469754849316594260936380348620691046604594212202798902005768146480935351592469676541769170418211631418687146064810767707855711029762790583763483132324693455755133926606620643092872413096080869581406585423058732618271372799412980456696326752287213803562825913723760727477912539327986774090367008488703800683937781224945851213281321241183353610460867046023152087789372423044224862863296232058207967564900711214212345363418524690866337009003570648489337425381874516091009259832866234629484335699456853848035710377554269596782497232142256419965429556635800924379278174942194339866710395468223067723857922579487088771153188069451944694740187814060765804478410829771073873748765222432532556339199719258179738322874838066719443187250784521982722031090390260326280772494634017983721712310409243145014945400606386628026642988461065911573463638356418796270382385357144988285334463878820977484871399226224835855357250374859158696938819251681706975090994028706773188815270400428052502483398420401595933977127903382192002902164542184102965579703294074448905018831874629790999886697311712455719221227101957217693802536691666705037875771445462777591618214825692849183224430090618673499784395518904741227047887811985454046002332763986751637216224464313093591662917137590821148672104278699428363417250001284384000549525645940679108746241336231481244187881252385868094177504818911114724901704216558768209265285189363726006219830923291174632610566248663407449521316388081462324099721830114346007739237351924224670224705913811633471516269979425469621714134265959342906466349047523710100985400611244304970363112457725537251579448428788820182907853421383329038910913153615317978362525408876721988826825589942142355154065758866666434507211874043864382895282430067711914151274300804017336821624427188713757083336931039174268068402613975568673001531026747811455690858602515190840823859305344353476567137034220895450281905513634037108883034295671455879782844321213620959459384191762630654029388525760139652425574756375520015720384491052614713215005459789989309157188077330625856319582113044405447001286133550680234775546004809104182091146883537612563883748200888632165157837509657725042794701768125134069842314272795318862737175213069259538193307251681794725000435442404789997548804119669263078596518080818415361004225812807943888244510966891588477197701288188804271453159819493111866463232162176728641260500934655634886011580675521545087268247850536054042383392445198632525065055565716614402981373971361162596044373997162377671141231740398228026503525633231890663073496927716334939611075414328583540129931811531629012651197900525725234731432440163776565066821818518611203343333301215331630529570679614444286739025594422386984185827872598902669957273515505576912489687575871001812311429041250816236153705530856197297480462917405175290678892741956772109577663990374124799571792855251731887243864112810857493182273427573294757458187873054185467728234647058367960338851441285032522139438981272066453866308526417125600917501492628766324511623958486283298047356113881138642881598148051279880734211670594608485461182799273520532722716949946951740446597737718644604073566051797842818279238458983957650461793038919901726305467451066641346304656573412545711430507097401888470318729111516033318516799621003481528128363841212581266366056641449898630809757884459804977823920758625563829318417309572351636498271235561974571505956429274193314428119123598546271069151119688071430855357183629283490430632472494380665822115046226820652321015227268618652810790354952380053159112132885540865349794897353108229622449067842037887448914455370377622234410062603186475725240150350377153489605459126652410100733164696798326048398689845520069814890093609350105161414792058738176284429004979182650322170489378101004584296377317862696039006527103953921147041683779550834558440141913865991783375045259846775625851231252273066668566856911405210975001858776490928743860587471788036273839915914890599227426801738164606774278342175372087168382538882680125974668017533045257972061792841366075971945451061549930943628120065580075555979297219109567360574415213322549184965064434421298736911390691612858420957925125753573801128686663491230561447097795023726930949936497234962259904525115317045015807735483531777494119876813831969453637096857353542566255902154316021505288537444722170103457574636299108157292762899925641206490039993574836311499990206236406500774565481463352694733472721939008613812148116802896734127807377328718653964425356029823238017093327400528818134356731714369585797388350487566725583347686760924172991710509929700792147542183811889909123565887676108318988792866208986559139441744023222500457232057246360396027978765153271933372481367895945485285052554392327225677993330946399390504726210135718032387920809944016895830173319214187608081345830706697901586089467258323496364988250106041542557169175524436385502511727743733572163983177992363026369612229092073806948625794312934896755464755099263988423161246293634422661002465388357051013802031805099933179389749829826023306005550962140002962983341771688619243024081841881418693564771573246703139698133582528839651122673882312734775854856480187008145415235919974936408227091195996587299800803188221374987984103293800073660139107958402254885986041868885849290925650482256840928040556575322437583670679195708555981422272046086677652676962298311507501890425902358878773643144494659878593459174203840029029043913449739719939874765196039143030592518033740460403791373172497383870093184937216058282439709760441095211821003656114665120085801002318140183665406843204990227001495303585769888445406322650671159241332404481705884727113307696646573472516919720015487847969798805854048072000201097505414300228926399966122329044543899056359253384845208636964704844017235761329705600199210785241512899927699706249037094111031025911251949738637288798459676471227706020741829650430151783062844857661973760852339636321038641570905125882123823998594682807723966344809171558331288259126243804704290694468089824882124630204378431422450296055800611367954601204306664623388280490415773008888039536934093466671437754898944886178418722165761388996896191424823771495347251365158834950098568324840923587038220355967994341791944759696944517470766698235604806871674452047943400555348421826060859912393547138491157418589813194152262173156904046079721314984957468606715332466664669764174860516075009909055505155108328739614603786951918996878604395755077493809355121889860941638609008915192090749821015131320944397195400407886460236708731606573867163157864642450667012086298005427224838248345649690555041821454008214218689431463591132785261774389823678172758834478833475678439452044021363358579501371414765179621550179347261599992691681457254744275994013619772233143708242680388492042457121781172157091803540298481601706930061247167450496622667366033282092912304043723965717545140952219317096812576250783180025662986273872470422138087002546744731565276166934683532091572998519595149901394517492065006512584893072197382750120355846941807956887717810659482025400555742618889343804248169331589618431997378162217320263900433009299131128686750860483815233803943887018292436698772811409528729049536424018815745889662411435705823776812072470237808858679154394817038209424465759886286554850145212804885645049187701409109740162942384468620549327444774341022996172074672453347853314904054380274335588682653351286703926767084761864287715889589967321915810350368057713790950629206002882956666598747101214415543372865864240791081037964352083178581898454831078860090104112055459876774908545053802755820980564513492211607199664560088335060421987796817453864428040785600870931933275618275225994359038892143437835431053655750705985170682588972465486897956403903094142991614002007445348770082376825626424116399579247293477112306876619671632080177531492701759094408548588565792390621659209841015972608234213754989195847739670277587622456361088877366550603937044312869444412922028223082077940944744830116716859684806867340602260190917792203154300422840690119734124864429945414497551550919746291556966983487575250866382863505218364945138781891289376952845533797934692345238262303184955846651308978693156040669188596795975209352883777606085176419010071965264455227307102854536582657835020527095339975224476194341330578170057240789903391127434587254613685253023065467600016558928497139534701146513057829437178273060527391959221680666311640588936103010051256692382929191714286286177161322215938829624683934794688606317744828202185682430779097621812475927334963079874850129380718322042397821826797494116041442815644447439855726106793323841041969405033959041432000106117802102068879374065453366256239341500355158722089197878906075704899882315533772432564403276927505712435559344308409568243357625359550300420348916227550967920266171850889435212774846490531693407259390338358252805685294050149644274477191666438423072037364948171164772869436403023125326708086600951342178215629981898672760157334690960129775706315275403562148893179235664165582227042616828384054489647092844408730333405457056813733042713671457226616172594227176545969292518678330760636408094943384305383377946932606049626929142771146533301779477663198758401552906870253889466478176918935303775354297816303574100957466404257713097259461755853287756235912258440034383806900412848253046237283454672805326245475017539559309926608421066446592819913976734852415056036362169222891382760973942688446481113452794972308927639034829630411994301632985356673871645238884980197906970477501401412964856803669930430989381315671870180309094699643033559909092566166771405078065266948624728680742811513333973692507785718128192736521630647721885337261862009554037822649615993177479156593985769173083325032632296575528837967440622346871763515088428591644302722500329993482426279555437532840111122238317278492880143777013307267880867004190946243856432597041067237450687637134601154648802196886139011377009300287757213459183067807413833845268666255104508961016287824096343926324375290941577215081586425774681576094646520438340068624810983843662304189632957246470626738056715710838998137495804068355302987377423763177811969067651885036311701895692966932591098589816932362503541276473354366383450677794942303688830811971355720552443544533357487190663241158434100053902761201741310532631963735844526002989558097204856926757036248334674704684100718856419404321792276602963311770272469795865672699064565256902077461839997532685175875668169099347635263801927680196759914166243546155510280669116487419509296881219903345291981817419477732579030558813256152086698127580411780657004008569757115200602561916425653473357183355250252433761435273374240712556775916885933529591149737348322611047323809187366103607166954596810020040472517362663902389097289093048562193770322471605027519927609416578100260874135432243878269967164847415608091473036296215396337823813094010060549821726812695530072879510394745847880379411559914798073471687738202206657768748689778554903560062720490030084394625181912414199150892060609631954274859567437574336255359108300282785493836013206368283087094390661666396103100018181159001284912464758052119203629679627899095079051186032714775987135890714244489013901451695416950367780630902121255281465236363143201536257782411740100493213378019851248308607650735458305903305769119015063541133001805785847311459380596104704227099045400131947309471367912473747865252407658113895610207268258989649647318195421890381070604010862145200819100428660444223949781531342539289851645761604027940385400377131187848310403733969588659375590505124604870981146971406923235871291958751851110062843723193415649073381128520161385075010480841124826620428161938138514061067357727525128916726762502079538230766641150569150564257174504216417276449739736015184797652134152262522617463024984124383785206486412853799665447114399999112637220539586110150561115765889967908816597152016749805334075697770452243852443338474591284929296234586155916677065494011276663613142268737342204348113489398842022509644036677140489002750696956427181124296569222959626837911427056540832003686364791173983369921183730728641712641821037780982609004235459320065058536676388058089777686814210932102913045159703789020375015291886100943756463459398012860493762868439517149294499866659391628869522806764118956902061980346066691289983862549867770987630583401346462965946120618325753954106920409098155882742620720888128338910868509700591247295428886598532149616699695569205451720878627895471036387174431436485419411285924301334738296619932684722316138345461389243335800027661346778211152009860243797997340733592064518627297379856939998337978632476431697699958846134756779520839503594030335851241818605101018717900248260855945101903398539555726509489017305016667285930049784059015403905667462235648268654092320750337479223805403006411030053912504660002919493832403624560678314331960260607467817661812347054168824030530531040418061987769350708573359807340584812694411932060423588290827284888848986091913181095754667340731440798233399470886021695180202337008365139916028674683633031904598572432359267325194856441961040396592167821895160560871216111630824801652981898797847649715505924464195645118279164447976643183984020272893382211848541042339860652480859960340414871658045470785829816362998933553819068554007350540929376518566648742662257088918122218742971019023185042936599980067947301899756861089335137938533284502144362033040752396505062299182106294695433385652449438676777580280857824309816099873372081399558858562732478861775330577968805927078048462141228870491536025975877474032898888376468848398080599128507527370625281247330118928550687475196824989952213259833930988069421505393711020578305549523963577931180948743534107470334569893280383589576975132233721031517954534477423374519496245102314022874426259085226756805943795565086952465031000513826555983549776140866451823377428803108472379678356913234355859092408926629131878764681530791148464898050308048609678863573288065787777307346770056792239084004497552811609444649614276605001681101681988480159862484589487674078275035420735907981786928249095406228499407410187559112732188745609385230166492852167491436204696387069643737838905426737613196816983042016042916633097044026849704168420941527195376612488492467756709182950469709197625929673769221981081519216137366406589812195010224089821151497601524401542635356091825173380614256857866584514695807079295843866017702457682023569305710639970475758407480978017468837387921021435346751003754750932751003574564239787544984238110707033723078060597889789134776899526826658450129666619992683361114235344044491003680049762475289026558371366001921489561194179172376635143433236119713607263566421087233403270993216608370965483566119680345601294822009895269493013712228455744596125680570515370411666598379626260373814098569546381546656103916079753058017857171115930488188945296974163253136270136439636859005004256517530776071295193809935071601137504370862504647146720379770513731740799025146185965130863231875995306185938088200327117532749882184329405437946196418599861707322412216859277578294795445544408827200801609320473304719256089208097494053964228393059201329086435215058241190582019136171329974599179811591716696651215909849692997294835000934729927258916048564629829703559088431265394645037458659277081627399573456501560347640719919825982328878778560783695734367929187167067272203799023000919433179338781482305598439063029694378367156760925282353363200412873635899613174244938654474505538652741020675138250718922992976411011940543214902562410277356735927297209391487080968361309731792361676728573210095890417722476106647881732736685770742397565332217420569691455177847845880031109786591743448975571749805245872899940899749247260344533184378321678563659408065759029948849136718285769319245356019318125297336010554323354227469439577895030090438007578304912669917800061249551833945128708127808209427389067824930480572812627086436452147708974381482663482841737611483744991937512593153391384240934694564909938441823518771395993399918207238265082827690805644618528997918695272548275232933076915672871878872819702763183441524287531653769206190941456717096893386322475682120238558062964478839513179110695285939848612605567662859525842213732722054301303342924388628990890781118295437074327164503521155840254013807880921415618383084168916587105371139244692893545285702395077869149797660000992542670239734447629440414083810798698474261218842400007852485664039055002981156456495758623767462332317049652062516352915977050320131793410340268716403380525339365937160478884202916893481389424628367509413366973706444357686547437212915391401154126708184804528546699590499042209907223576639706968972678819237652698345859542416022415020700044396175061947945271741882274737575300534723091627388671153090376943268264256796360241949384205386414095104051375348356877488383969424624439094673281992014430424357197899574097665060680111973471894572311481622155663439365978700989631348304336042879895084048008772526093662362112196206215436760935711350907361924018560862086481127679226014185035600972573795982576030290165865144674110977732075874358444856023447483147343599850703832607207048569417605365355889302034639397939324220524627977191221952867983070362764833559649063040279519492809718682809115562520222254809822613965108914638968395096697030641204083676160147470035327102095854193270064399108061070612662851444000192291287001957638012482099571175041827565193593215240764724353556816717120691266210211298539055763079666020891878775200120272724534581798848938187190591778982042483641227850801201056701537900974553667460225341301394922800725584079112461290555811535218752268291379452823053986072423019833691136986278404910599234389688045353117278403616659823421638159498314115676198317148927216531882080418337961015707629032210066976573141978140257210289056322729894262496799043708965057379271632603955707280860246292306612539749929717514056784114687817802083715224089640768813928946202009456665746646173398222096629775520640144919554243782897864078216345209455646714345741500782034590594824738132261025706183903757030896531570622880270805510904468299251453314268180490632595251071607775978446835912869807091727068040481712402928784117623271560334061807243383895741544103876298657111693094702445750485605107102816245418590126167678372437029123296641573568190036008078190869667584869174566887578825614373688775445497281365266485400643098943727492726621933957965060547544642498054313401956823669800162777335504825289748416454372849782704256067403164724735244879209671209495798259525797524641159943526586848731253288583838961355254405863617025086617212308653605006291966638170304403719555162572164477430184188080328497285834086695221828702819727627762602633270479024221718018574280677255831004044543764508916421995350255867204741810165872934446830095375996584690419062571743971226509216403967431323169155146091416158310055945361636083825314491396117445123580561396153783131647526072166870813649354545173627180678762578518290775415192163260507461757424583274209770532908521386701354883928972053652844842475422172608171650812211859651313078250542363885091013082752468804736318629356931585669896750331861282910609675192973673499771708740620178772784406790546708671395793990858678707764203898817454528658952454289971657350078120395067962437795242674600917226260979342383098163814239474056762840434436738109950009115085172394805552971960873351329225894214003782600566295647941152580263425671180621126451873931723440112793417201204739539979675667932956218180586372369506438387087220541632386171582177468426186516714280110192077036737037485816056204643411841328910843886713316313296643397243808147027385841978351223661055972862340241429556762229864954839860449127099445042148145149543589425053511753230007348261402607901452817859216503378392296653596464291952706760492620168866002330945075342619973456952457902343725797151933745044886869010251788728467538717992554078074802370465868516872223302254428309770338997752636396004929265305621532426510921910272785639878956024717050327672403686827985607328576604229518677391064803856696578980741281021561346056135884856589602075708305107351813816066803673565540929092185720692629500432537897967847073379847430092846148039355341233217076087393544054608274460344267673551484579015666760033688304034732834877724042107275360508196131088580022241937685297726080172411367935816881148859304224192443590149476924079564542120204979862289542848706150563564595942716558864440375323567468692207632455913508427116706817387585528719611289624474521741011666218495390033450429307947372538342015647682905893860370756868613697422248175226323734163788472683077691422121354820392544706464634821040752668340448437880154221722360131340303859763350760367365570476250145272428173342053516379426475213837340887135180091850441412404038966026613571968718989944844949814137274783152571276332149697221695027784567041902439630419199713190140005235118058555022104840439160902830288240004744265823594431357545475062778716972445513479614427986033416096652419428383099612415891383804103333927347132060350252773859142456612654649506089784005385135767925332069833433882308045821462824082720861474510360735703534765489735873893182689603694546108440274181885328072659752340404215212447843194002481042200480459394465130887232963795234356754596963282390076785116368057244579724301638214598754810963024343708438150117096312213309153865392914892138166194393121574556793261678401587384569018942764651640422685396129812389745733521046002858702932959460264599344866064007272932370811976721498164961955571898724113698832906583634097108483822933827025051219851481103351991213298600376465426896447801168123725673894254992783531678868911524890709340856323457123350359549470451296076026857806414976697483789641893147483664103800176999856147857505830457635238591073412209481992609173914792482192879945138731998568723719565520550156089757032801685908443792812377976613217569866591753906603399875734393240949475054550069649111777743656913322134269658270680300588669365165707471827500279901238418569113628518275653901935106400157168928966823246397575058935240038981654039065107999793963151118835062249571871606603898370313598941959691939799349261867993250432350380874307039503335059761968913349826046262773032424222653886710495878502766468317326939498599189061784432169847088091619037279045917477807716003415205143300898925338421921770080604075847100824637608095025342917219651259267423973038015694792453543455762816903197558136643461863381694871435755998337258242096801617571309726216599085669000858345628325284212836282624544776418953849163318637850987444619793039880856028352048370283257799260162031692879781655139860571697312532084303004797700895376533702271182067161037704256906803812900704043050749119188688523323028196152049340226772764344971050160364978774118365186469551586907229226974255096497721172848593103399402977843902455508351817915149805840633641955390002229837536520322421580524801609635607600014024302019101906498056674392162759229384405258355030654821983013071902266838801042761699184186313091820567032473303277997103050955993495524686350129899449383412403453838586956285058781973858902263984416747934029770134408150452478060482457920010697317920358165834395699585492719032102621894844882598277076543617833223517466687795144423714952432939631356463010052882958466992228241057596344712307054815084550426773898005102143451130727301586650210582877360098352374674872508183297062848616180625292080326063735155574656675769236863164846425805682766955113681738533932185257514625406231163740035890962658205391370518554034611940847137766241684471076467657845984721075160892428920182433593369899910789935147199135773821636258809744339177774249521065856293492236356196218435841366809371213013775921030619100107228195416429689518412154020882201351294745505836596634155711880852977698293800221970435253004523264225198908826665054674587057892889732300917406727823703469802520494421228650861873422221030476913877873858585767504607804687798346134540110197074663350240329822266186996895895731820226819509409558000267604116603669090341132112850244986854853531295239661404383437308116404106484071415707031786269728038719505572407525194175414722128464930278338556655245057483826753149659366151056885305745211112953957301587934993226305584226525234786233128637403855067480665944505598041007448651594120137792633300239859601722887848059254795668911590784252341387205251333915947001534673303147920506056414142102375745732807253020821252700178054411534661970440553881112625889757853920387466550775567222009256774221329980950350559848717637141897239425226765347104462999216854206473766362903441717937609970170596629645927146712308070507106998179479311281120274017812023963729810760468778021657452869521425884018060527676225641303119520469152840487309285074698235829254372945055516542049673507041394841854212723501084333881186372584186842963499452115909936241997388065557137823738385622049016444109336883828507334513274740553704626097968922252278016934060813490407892292652150745066853700449907742695940709480767942019864497437945785336157897689406706877665234387566381019390847465350183317340837081485249917025188464260671401837896668801517168176622307080443688392052926736506138621479827717822473185148386647904515021310993475781409772077511546027686278203176808477624912136297057749530110610687199919849093178124964277478304736854210332929124126122317131217767954484827386234380193027253494555840042519265435988220951423224209611255028192391844169783900706922313054410166038760719190311451136229083635365415380730994664265202483938229149076397289786918801538744832627349894286236207500496564610475848435523898425619405847310162466605376543763509644816380198700398516372912886080256169572124167416525262670299683382082343326445577599870227670510745212884444562815770331358811943232729939240134685637827160846358367875216644567391097056884198283498392644838031614475485081248721952334505265843708431653548105086932769780189397322049845016187850968242636599136823860705305797565246213496659098721399507130132657874174390832730350096727158600495915586904295235806909100451691199560188435344748515556556495798116386296109732798869285528755582428944035301262257998250426215077941861483633585801023680673964524096055654595318554053964442550608448777705068444191417686917737460118833927353255249231996547736832617794938141127265771103238048210758479245660587385040097943661385512913106041678039561445175492491394529860474006914515925780666513944006580989050192275274767854743513658180218403739087149446053342415836696119893072031967401421240514008464843912767662671944166346483513268640767619736477921975573237538498107609205963331958193450726385379940706674071680935582716219717039434103268951482515166775530128092021705884312564013889716117842722510793586438178118388038672966768378766854187294716949881538061615778538478214652168482893290506878128921345740558136919167347111656133430388038169723653675326342674235410669445919746357767468756733172122664043159330742129342448633791434313448100757516588847211419550343653451804218349355744381806335804916102952990142900155334319471412440324219502512837635047405333571200317964658234653465746045397283569609104141385946071215048621851531331632376057050656427352939938276941394145673823471073078062078374444757402607342705608770501659191579766852176348243340968369213584104926622628208054499765245664927465457024957335826925932594985899545457497299063361135361075271090829095911798883348447090622292564089304807803290078427339614867762533385524375591811377200954267039288177574544430161687780042988356122803021428731691236149675949369568570160677961664188233952660238065063891985111497771045811888706963033023134521641873340786319854164800446912246945076600059303516508675450558240910749360157640916385566435048587318647254473855668856137526755873213257344616280806888092779197251934781033531401113230355706265960636173485263387739887793453134369573558064971965112777768739498310591282872330740462646124308726343545330190047808599912956279726581024757081501218631641917457998021599213365912325903214048931062451583100535199653523438012428798264325859485507822706966883383527178768463722073717674412761856136761206890219735174608152590944332272507489645693788968657203058013137100870353610903810810432031566628401281634515443851027341786672306599037741120542898037086787006753616184682206088044221333104629276383224603202158841147788899085923745942513919234881506823118673756224734325556204709506014088610215245168484455672380821843871337299872764317389947821621296017300658954497352302401906816751414229550185929050869714653015091398495024972643825990014136662371533036441770203147851855845467543464986544962539990840672203267460951722810220005277527432351839404118011527941703750174164253963074423616347022999513972251533694012626916896986739430110293352790245869742777094120861149494381443194206775782445998884517110972164107784980272794408133717460128668856542891503616433156018885972292937714596569449438526375610245950397317015140092621319087298282390963455965831832181239812023910667742076273574795247633970150007998678630521503190658061471429165857170262417032271840026651501371098627786253072338080241264048678434822295183735563007046269139758208817855329180616649167756541178455891053912868906792616572793899350700932961202470617770684407942350020015452818632426116207480931016225502041362781681048897931376640908892089115366128103382359851162156380749654785336082147730356847123947750627560019274935576884191141512648737019118825477666786239040672780534063248568561015710990640156569485900483640755963058029271992863845205577564959275617054774335815805269545715459097816447726403082602701337676038488770075105456777684575619958372160465248110930335343143644018220813989975972240032737204329099529347462121556871417548969771987561397705584317291990262490716310348413634829203053468286789791322118542428607538931504918444426904596392113489513954871740101521394914072220313560466085028258567298512298347848974325179485481137147170663520456934773078328746171133994030425351751404509495508399626378110199622886449883734708532708554429770328938419790773686706438555041804065584376516421189822907943492072414550947774916030851133811171893835114975700128499965399751152331001115585323243557682493865535695355509074293181472414697415370167156995151157033312622109935838857289242808019928317097276306293528830829764064718340055677237786085246244999924352525805842687655692713660780143300509986911198862137631556084375620100996167196168411404107757898715589376723330491095816127090847347599305226779539897691552816672821930425414732165477713027345994579534922865080252248066989674382600695167129675970159845071211281182410725617112389696336062201432643231719971824331414453921512650375105781455352418561144940124303478733213016746948843491050991156925911693067860975276840433405832567652251750663875440395596044510991291131827437527497188860117862492166838641235336020278644481547517106609489619698306806444417171166166171495860708567152358969234087836243538179788176910492124275885094423710944748173239755102026071356364779566214191221689772186275042809003320723841372465549232513361257533795685382219870546172251020101679058412795022538132023865742141473891278973390404586449810958102848959842435482171272676707565270887367060735267616090563127310516770126278953334983474892424819874174191174162599180796383535116644651043905884356903339958366767762803703128870250400128211184065414721745511367867582155645919360380257503485353195448525462097033758209528054327872490646867219795322372857796292951113695281033265026113912340317427879623860679822890488548760595433463627368742526334032246284938036624317064142123999726820519354614998590228092463905199793807685459570260244988345136941136876885000447954959894325612497899349790452538063145643890931383594476260257271287523188858515550650825241181582086223098914431640442116838292659344570334217308829087415495522491278233186789111238602958882430152621627201208031580970281228433931019275389789209853053211378962619035178717867755429107910472085527838488324797394536197467681664825276736610923083199561478524547302973248284038964379776866898953971681629476778868885665551907190904445745455026993134701959228580330230566434487094162069351146126504074326847182415717076739701995489748034237268116296870314473225091783486819131039248424530834095270947552076303643337282948839550117136638984748064192695292362575447143953786779107058341289611957161020814610089699560783539064113263712715012035779599369021139565619284817700914549904409091918128616021472920168645217882125601965266055563205631280297758618046501628946268580217521672076150732395337619952531142425742823641779639874621584469105398331299557053737185084572842752737370717196445193017535017825537755493403988986906984348392677923082075854926007798257770954694575631546402530444784659595048908616729707234178253131233997570743205262237927462058613146467894140317806275062173308741105058768581455325226253665008335265544936226159144591835219327142846412302853774687328337994915134293574251939313170153010256862821187210972683052714567053619342199738493861702573906886685811602022181341071001776957831077429635758971682882051446313784991922955481588543725719073652455498114011887904896502829526764333111215418613818867683761282585268289908867632458637698451784841702176274254038458150960731982746792589611750904769028938554688610259026833735914938681213284468610480948940974948483980218917187307194790875907919431294495039402736488895395507248393826907589500073787946127474207662855124398906623868480643603660412237694910770571213862469077915654149837905030996214109052800776928401453449238278596423458468064270976452976923295861021700282629339715876691278620916851874976055888376009959072696708471065888387589504159235712769324779244857596782440032041731967280137352739973559171123233327142864881284686007164482632176172633354259942320296323189049127581989050333052987311812430982578567579445204797568465011531938912954739920795008988892049186780831113618271420294270470959347460301124600992787599602105950025720285134264464352423208879054825717693889489198533725177036319944025521999135660212520476118824078250401283498808456233908453181645199716960965918931467309582478046393360756825208691786003155834296921650987112063021732727487118448877043841544474984400929103625396925279791082177580273476673879500505354960817352275268493490283349981562579044901548613962281690395156343964793743609297580497714070615021985876133169581575548612813524250920195982931435755776678858258813582818313959241698248891631733216395948606227378934356357928184086915342243503805526862040774424407429453715903769939624345987932920484615715292410207225379144961640560966748835127547503812140088795743005592008871167176447223718124750961007445419596766488134180602313002209612192274937784690120070000344276522208415164730647714832278210848060912900729364125516547316852660771168169403650758364755937024891480891366764859507079516480127823842404104217830106434765765668606092758890923401434969097246238613576232737216348615453853804968180627120203853883180884259709397840475585174623037156264275891183009634188351076966338848034072459501459414344046170655403052234305957944426531329484350793833215223042651036609102088269600497145898477327712877305515401185800831139777123452829893013649938851281770899069062459782595814817361364686549510627464306188377060645904659583219195408592898758284226681971997495033530057449868217910180787307215700027103456048572956673679032204464447505096215777430234032620653627993738291861474447558420055757021887781299565732123837051387828403785143559301652629834126092306565121560611497052347335114468485669746732923313729132891299587843035076548972799898291510254243368322799046824651860683924858000741416105890427946272144202054399490033069956760857761337483477262420225539079374407364670755188609406448786877698693304659138987298347568863740411483592242343986279173313863107082769672122379125562047691984837114510007688835936488144688381794727743567975707528189660411617033834161036302380543361131745121719473934748354896463308028943383486198742339776258133661957748624365183109190122238680668643775067475764629444059541911931352540111325107286472823781350457205631996037046067564545694007454855811535668820127104285002251878266242553517659832071910332934656887467644169633323976827073109133755041822613133742651287143211121659647089202650116985108242503501058947811463671630632291272865357935149112834445889437621462678848165499581497543824167826436958682946044160695414796619732330271302488130669727541170716711077067839085937853066439359980006252775174985278189201961760657420103279982341014128459529555166927598692491518254171808980000741911055258129231560027678284508492687052741085378929964478149754481155919168235055286365016471647761779463841568614030179083275270969652089988931805488524435338174971499601246339044809908535948425542695194435781096283260291739211254710638712654944966161604392227074606652562767048882985858582197176580335249910773436509340474161170076438952265445090403733210603954223993515732534865877251882393383447587763108885437938780154020922917099562397098694483986808369353118110921353337535071362620645587200664079444299612982166322270937524295531161910743729037829927378926399635737650670734915020826546775060200013134687389431589458753818069480707297545783654533522726757424364582903662908333705875449833035132525304867808772752998970007127631459003748824874934114028952254127095398665186853624012174728077082669622738840167254842730293361690974530888921814136071484780815378970829845179952902567214039609759017023770571647387132562500879382663896842033415340717998182986424789294557287214530569477027762956427273248351595613883960928890920384044461133184899329239472292888733397399597141982940407906902232864384638065983283798770312995719139362839754962975522327334437519961747461998608065881885510113306335643286957169091320582829206686356377789596708802175070723999364750640820569688756928385578787243881930411666907526112357973283083920102069564107929024023391435072805746074915938646411948103478268799947255505977103601681935960478893307290341499420429608234525833954463042625224346637695001516974643019203069023419570489033486280680405933640820828059265351423311884924576220944173578127861341079401241013945031367455446228863605815390863049469594189295430637770231877261721132674174779653128978597350717416612531571530808303656014164574855410116562815783660486100270067278985687482115976909514484322431729446636228709545328303210675094430827735190529565856188642246176293676645233617256649693333314530801346078876429767556129294483845668443611021683783710156501837314831623836772805553940163756083435297805513857772273399780089810446188574255742407199857887549887102965932186600330461232591981512946165307180785684030997129212634543609471298255722575955070646092310789039916672218332234969223348881190553893296171939597265673987940424927709680226812761504352435193441083137879424016368870138621025720804799144764361719766048846272329104305512983041276810893139767951810617328615322755847723970797453514447302222476627472644891123647849788167969199389857489997687779688771743807126637674650757932099911840677009002638562896152059585654944701892927996787875267504533295966529842169757232275934064843859340217494123024027579821030727427823697924039273231974706239607448863368668974621722278365293430649756885510339653805481757797160541941381223191068604649586943007793252612123143947846927369851661309550990281737665023854702441236838231558741421747279355245612079910851223994327799007682472296401472444510870858290927904490931286862940056279695843778438266996413907294774991501096034218463515595102390295397448811695548645043515091061358504634192174523512687624189833377255889515310095419710287499904142801531080960046276974132181925753554159425309605889463414012835198323699891223436564682033605269096994646935056292337716329353503654881938480084924354016461912558877830761139885422496292039421872068652698965678076975776992746597530134108184148549008519806379343427657717554057196873757002929236592602795573715825662640664276707641751885445588327187311454147364177486243140333978850343130500423481400797178816811097222823384508817641930818330213821306923146865573220621649266023340901728740752639752194961942077883851752960896117042547675455566601588445976430183977416030729783190706757219308129376974619517392455465940574314963379018715326114320248812835963783729647107474052559201408333294310557085825963047461882958000526730001059671742845911786081578226421127424444452724883966498687181704992179534525033874269514178653350729437702174952126937277974475669400544338504414518979443705896801131183651052853868700797082841216649726055410976940549497771644906232061853310636030322489898339713924116292971040584401776331906221419985547520881459987431657727490280112288695590358045754782559380118038975193040007056183477781488247630559302382016293793956581756898126189158713178674271769379635986866612426433773430251610577416302111720444548994924259165333240811027938731164954314030715706427552356103767616897365660836020253116468612991520371113502779152928207511798373181379228150019304558380229269241436148540235723783303337127780400239776228734538501103140932470626131915174383220763657167488303348949672612696777623142005584826538294861004624074622684636871110027603171228962881200734687873152235283625661847958189651381584252194955818890556997789132193189967666902183416210215439330512842193500317464972353948952725713992633027955705323006574177575024925204760749908731677081320307938345853184170056191977753473589492577930864146131847229552753448241742472793079519817835044078882301205671594450926085088077764629399570179154548851601947606038090896402832500580523835995597883697349345777079584804105931755137669799602506544274662482570510101818095182118942270388149277295149538234054242992692015713177243666546576984388308511743049066206834017220432755228736489733630045419325571928101276711328044697364280615358226746680393403591772763799759691470202742965037068080739244628302720042780852871407819782349947840667221543883016133514993169166249963247294743709218040650864420693541406004396563261970978519183949379912710712923137460611678853385205506939543093368819666157912890419618282782636924524811814722481181071214975662711206029287366832031556293839705277877684724469293203896381442267835608123335716169861745231671537941352748461737914003075080083545999913811750481573205567947074656981943389301406953005248402367845358416726881574091697919366037802687053110301251963480079574600429753232663953405373568336109403193188274986306295345775336558908332682025446866629934330899884675220364605429534367948213932681270231734662570544185010630504297200876082543470008362670855741695502549454388959294294597600734468349004128078360132900683455486712981707237775996647150025846158714729247317076917824206860593618855558582194913331984377832149946542725648482486083351203002659109925269283587160594735841860621759687584514474675265074589388044043017833287427658152800484536324401058268619983127180551771147525232149984959101249912335458313538319954520091374232432122456950124491746137046709774600030003302321473678878125847931326877655370769871123286429253758339634136814566203770698735578308574302476761506197210594127822966280919267744565281404384851594085018399091620721399094717249599610898360995720143237222466731317556810708086776827154781881334471790550464467945196583643676899449398503050506363583445459355882266554968972367026700945791688296040282324634346862619689870195268227130797137590694785435825283710694094727255656348308321257857002681594229137881793507718553102126559935142169518847681944201586347541563149876388481550778184202379805595632074794984902434785221706444533163906757100223818090832215826062746076001580859897972604408276982524592915557948987873615779535972717490404180881870935099815613972825296075890867987585548967539897311395485305516618275916273550495727255186281489780459979586908640576011200981970151043604574935154938465423085256760540133078980219603241262495275850011901999968722491462109250748176039631440855218821289629228927762471697782648164596365464838460086828339316269421685695318962023154675411903649491297339908320926738757027080257080824500270572311047078105247969445270011961748537323689646659793061869324839030606871584134036882930265538882093079014323858087630375429754164135669963985411152232200203309176488101351998430922233132404072121595705269582097699192787195975308042399626800278005073811917939540584262242594350905474930472011806051317113264887421471029625916230725316054009334954988262828016367902332124608056499188272828514772322122608730320092361259807345106314724133826344515210145703310614753215125911675459937327015994476943023854378142771049922580151242329436890513055844200915292226772522937088341098507557672486610065662544670020150172581880811982517813189221971083061333297770852895249130544327939561870120521873488423765396881209710221814921597950409462211811900096436068112743580194932316287111099224457632259682182438073362724814935431802871809263726218039942948588895868195395423576002010444780243704543869986421904723311803070918867624123634089894801263394077935832659603741125223277215937846272786467918234092411480701760913442417638501895422546930937153022287924989250270856649128615643608203641842911438709986068542290211185107848489751437172036839969173043270142497501697749624456865915914014428032434238275840169137045581529290328575564434327891295932017313534209791241555377849162446869125685716189053227636257428892963036674825996571110762174043923796747025628985129623064658075176114216485886754372535807537846364743688116735661108589191595898233236359209561005751669249807694927547476957523657126766221234685734030344476303994572265889629996358368682920013193128655549446362680824799374434338204907125025060255716263018987159231536140464007321658885475293149597222755131987599043979249678798377453017731863241782713686083930279630258616855061870196635758555240707725368454534274217628599762434145549499796594884257559532418515851686099936617198946626479293491719635397615676542862161834191449725166014480884513024045470967760473531598411516399765618826702708489057450719682514893391484508698778206225021310281311804929129017787940169376925712541261415325171183612745642920430906046012024819900496511508130376887511955655469877757417541991673577693900917528988947823432373725063663887233885341563177202435347141501398595302957006241888103690037389056691716071219753026620072710473728783845890468946058836015957169051320463557281919058331585242674624703593929747436104478249043560088569365377788388537158422016623218614362255141220012376267629411452036782707436279993225350820454713468100916550959783837036681515441487220562442980608587601490749521619054931383727784503554847134065638784753751753693649337382503538135593835516272013754624546250595055823100379221004175671156953949477860949571402154951892331805934161002045045950855918848257536942028873804462288778695427611663133750558327679424977231125774077719491858759902170931630930305075209872146739963709624806175064278585217475383481141904642088275561290388252254548891300191922294341775167341472499074807572955649470364523505557885699767458498211568596729683063170817463376429136440581529954268195084447836949094349973400364692889727211457030802354059882141405369054295625202691204166423242607219687849146569628935600117793076846288466714787789312865706402369719556525535015883445601103587937003310934916534011644983415655475394553521482917396008061797073562850269492650839383647611359456011404504744909855093828914266942836045881202138889695110699793251397411201487718081426652058153194527904843766721204725600326789304912753369204292978004939009239513416124011760165159745820403566118402872209025512729041481590514348303298282061250092408489975258582402587869344579180841637301341308141281025877686969084918947175006124350614607585619276000331571276498350989586625621846222530520491444722036484361771291546658950114628449991371783547279009885132236137234191960122952618564271600376660570306584795636264396355302514052015048092464516519777258130200527549545929263506908707935477421739127114116175013393423555859032362945910365217206275199695462958237700953004091470176253191752796878248511609649900320798345701203801782661295594879777171324234164319166755013790288902963500141304108075472496515439956063771442861129654287018632695639714632307190990132512163271222255972523343910347546095568812138306591767707758882997220663212879072365916559314396678284852932222052582478825314224864881553307609084238183003106877579151149187413103261575427252341486386096795311586962236115086967445168737509782148717879406136650131967213938745352302424782502102876998916692031365167729544665464674939425269943016216560390317960848432711866273823467431303965586733943588780400561383963083276576778536145652268876357928322580586800411365921564992756322344292674253492421050597590426504031136031999081609057914218835312407197710795428125545778948363553386916877435961708288187086948892371191071096641217012000997191845882168926760628214307181562980716494026956294687562832404630552583336380517260494895998269338277329101606108137371862889327357417451043012865766221984820993258232338047787109798669296297892237203945011633216290559590663722531431996523729013692569960360958458852626418980022135713354416003222768718530890738047680361629858503417293904624882096215815217762013549553817911180083718713298562138476596806202786080590948087927014077151531621900983445669612153860366051532093757480036672926382614376764314288853917182923181789541928991492271502581021934666028326996280913039203763348180062957707455100982310082757683238350982546530611676003194012939581154740775174624750717799145628732860377778267150698082072831221372085657406671491446544918489134085325658092604606778460938675256375916209766651992429638966813473662137648152583259056584341624694152346341954972664372469033277590150669270469222333623024646432992688680719355205716361339949969890225394014392898882287493870996041541380052064225122642188347884928041132004097841707252057033531462952449711720274944272143957291839341383328764865990735092912402219022669690517117254223343176836688976007254918594526935538440721639538053612675505034119665923023787220158082747575365378458307483192423369307929515400827799691527032792486494699521263144480552094673358810299020511215993026159769950194709473463543765256552973233500190826557438978240499136755644032154640764222963961370386867618191923452850665798264353415697753303295211479098004487320562971114485783606041761965438503679298222110747602065281646727493538846895409224273569218181113664240222905874876326573695954693520431839232196019222862426519361295690686174897878463731966091124953087389975773496397308849445345268073185295923445842106335099568268945705990783514326646450348327274349709595595929421345323636057139276089425651588407651929843846211549380324012732484002538398204789329482800938506301048046475169591461260175611539770066551860696526917719274670044593732881611786440498111479729454732772989760553058195519238312330214769375057728140453478003463611221729547661645690443745285603606463294965113393128439862145707225854346187103261243232021813438304075722485751807688584309484075333245055178051406260320735387888881608749438566857964768305996298715147222813075447848058192621477278062259628557517332995714578682132943282210833104493380594558952517668638574622409319908051802926917904959563630513393459692377703609220871863516973092933257422969338264386720012345493441155768097426030132771610958749916718863341064598487657775361537554010259993053528606093951568503424225391020558191742101890420673071948413180425398610231568014574342146787633648343864680782373954816084537595514384639301784764809651007852711027559349495715346671317070021170022450762383739794337423487725030696753888395722628120385038819630457336371357622885205928994724413877218751785285968134212827566462079813737918534749494366927554229890469880740433959412371983269625963723847064012819762322738063898940290402688766474434564034987774613332528934492235211564945725216819850404443166845769803376252257083316693408087977865480492715142240282598611533245152738226681724342565488396896029690695728937995467263445541817875120295971689771615825422703758632063681297831817083474542472971006635619440108198559101284501019939733043325490984312714701216692632704121867854654842423146945020115204349405081509741788387313565619915730502953791591862833905954301800368742277225570922516361733663481008741360320150241252520058856433618591178101842804346907623966674113249824238882905934864374184396008432877709874813180561241660436173156017104490214352343833469799582140012351458734793858183243031752537038560965238670711412826996834514583804890902419063183386889590798236549686319319818746198685227579092953919624070408861090450980433764578612950303231976430085666250696539017388380558530577871212229720030623882280152970946054901211594535503787661385896133752162163492521231590864871286078060232047293495443460941500898343301105349931237152479119440028310068088525500820242622086402683149604479124302659135507020586504172260181089217847877198426201075114579335073090746618082118040872023432204309055223203094884899242137778370529640156350233468235476188481459753602549073092701364078999219204606253053094757818156454326815777323464971243045273558524064165395406010775420474250398411039711032511640452952846807356277674983396244309091507517291442485020530477953934773101794461280502549541567934256877512383259554388268564872280449458353204417236697654820120415667701747106244466943534194763421368650467298171292060007089501303984747219697260917706837958179671898380439744688228788196222870554622893244087172626665645745073150364105887142308170276337045662592067730221157681652624661745203412233715571904834039806464123433402235765569240030400128590913464178944061435586371870864810411212366244669238758484023733889272023824677409764815880077801879145097994077730234088833553863422732683786099724814035585162162943446155734274149589519487517124083210455559431806050479341226896896790882302721830792543465182822588547353756649844090621400460441281930967632926703789937373315932454154664568692225866658624333544423579143686096289971530310566300809913899299136222417675712549758373661613385600313180381225382544323342731851757652135082308132673657894680636237638613186869232458075015492803474786840867776758927311009538345840071342762678551540565563369274196640406293415239491902616347404925949165152333986592423672536548100404301348780842694335011131437248854499555647446300109674492076055784795343399726944449262784377768795213133080224521756912023240504153055464986446164006360322676636575931262471947037967128085731049275742339282527171534047818096023500368908716606816196448173740455277960207248291245010022667066322263383318306835844779824958423836662429995509681613640768105858248516086862450154866607670733250343428350711919504309812134925841847529725819739456622533628097233866510064254496210062493304596092241648563734853337140078783560040701184052540922375993202149209687796132092251303303061791476823278939321524684669799243930945939806790107911583118495474409920540820662254241781337947156433218554897214156837829997467621724618024459716694340379314790416898745782959647270884496946636006908132329849971274025130482944518783887780478499479111237886440336376354787562148866646479118669208025035632728103589027380224792845145751947994446781374438384453729771825324719902390194294583864884559622222904031984812276459398106174809802708491166613633419453673080367922787274029406480086129435073778413904128711824795877599285918529545681392835775323058668288925139103179569569478303326583852349090667274562264458686915242649137076322489592775844269039214678603018775338352013990638596135018060388393070434059656045535795780701294409113434980654558328767488806177577003936636276508536658888132482362058112494167321137840268521605175160051155087419368568805585745088151737148227415032119057121006829735995456016950441825123772196251497683123448987279164610844208347554141719854058959940849627044147432358735301236466123425298431342986616114466574428191358363386824287349890391863268285278628080029565379689367213486408119143628673123222363685222562486203376899168926077567761564062115727651302096582564933159731726210012307313668712482629070402529321950430300301123148436262396553230771862085649657198896530433659777780298020351158476903558675269752514839432237524054492448626385394176203099265154361314991909848240573926654373820294549136735153554565828413533012592609223185243404983095911114805112134274116331958157414266237547728463650696382410660214175978063159376645032119573141897780603808356566225482376219526071913566961707886283434557273724807212845693850723879546725888001136859555431570366437922497070794147787815828634295347350613246994059602932778939821374621301065992191313105410586803979877212778471329189535739498109890858932304490967691813977893628114175941253422435229508074638805784269015195810155216553218457428335335499815776620185425840757438001776541923425774855764660304585117773794738585865599211170232833319383547279495643375691414639224556137035034680567940660817955528729169538685952708836594319668866103238080505541336138524352506560722852478971053038581655638253121902265318727442042651491607758158867792064563112345754340128491695041956171105166981934426176828666241410586178203334329201909169247566397714224533629685743707838078089552226917991235642654099341559328879110404871958160101328570997644119571516345919638218683335155130983342538922065070588050059961923441063527861700065170347284079855650120370180268981716614076742432588087001410586543994679533000749789644877086339884580017885174137960088101705964518778634613137605528416614697574946237187740544332295774107723228920483471615130046919872887720067204729194139416566725398592935785003310717959681214523352184166056899464603733168798290862387394701308022693622026146889236024391236701326511528577172652264473113778938140230161304172753696073113320925694294540414206376334706967215915456498279611796884752554109500872309126681672923773405247653584035470460263044740023961307729377341190522317551377655152346209567189143267559719005040344862373482699611918611910580782247602362780013661097920860551653275468376336271227233773973956690509376191668963675036650154418293580184463798997273868128184421486141900131455916810219438871675751217660440670267175089339663917687834465586238852027480597686630672137119822164011632424208917440675628458734474202131498521357520356079774501297158562110340451685140829818508677984784184799068274094121951549743795736519848679808920756716328421190003178989061375470116805883851607084373616329834284902307431899563734304471998385635874667512841424539260808462146299935997151545051095168087591019467617935979540060952966752190907836974165468218300551845949247007066629637765657204654350661073628343686894489530648341379729791487909326230014190258717824342427054644956298989361104939285031939260027166187983605509784576432539975993574989768793364235983027652244256489531578359668359255335180796533531921268251702254466180510399803989252883263374497631922169075074435044327538860787898207656212962149587657234615501052114597602006964203741083688100891312313428264493051430138015292582208568264902989685101193684688954307524812741651856682328003005235170338062636046445717758060095798338992690752917509876090519958811458515556407079521311729409691377461087761589411740900242984138950207274251517317161217337261487245969586340348660916818111376650056862950477071984495537044292850383610793101804895466948428216086661691137939254179752232889581858555459978324228300881541231844983319176183072465226143584083915461541084572756495812151774231430938407687750227674415747927075295588092636125505040100746906965585788339757807143570165056898018570340145614834970918941036104241298347868340830074740810782672015676779170198972761747223439092413946770523710354826193297547553810333775700573702155370012411027407347416085645897867929215068231745205470819205638123327667418889898956626771331924692650322163379034982167705673232295882973085511710247676064080907964561651711262272847994837199339008051393308188085428108120781030222651965081159144621052584692186611561108647791326012913108132568490880938905978908134695132096514494385318425576416669991347956322011500324488292801560162958279807599807159209450273851333513550883111758349984114816056676510397223230651133003266117236140924574306527294553273501337528963385166764881653615428293056217112666930797329549556641250169436070963211463508567085329955779848274074722958455133801374089114544658626097978120166660044628935978881877958933970227016684196360927856437440477308303606436518051902549491936909793838557948875650247827168164694461027493463175270135506157214173168170671226500601750808685507006762711076106062720325915345658147618694625092931628697983251952185221770411078045302121474821202754773847570395238481669338151026570755076223834051197127737274075331546605838220167220649349509193638722430549718938590862665690497884752415922973793201654732963018926673986711697425738646424741026759568018557655090102237266319722822935994063947592132020340318146498231073570968433112259612011452936255374164973055356926357510971959836920252238615826328605932158231394953657074316216406642581671229942626827993169178493627181988306677737198839322471513619818597769125957789913063111471426264838566603847103450219209315107452413297137967351869174920603617296537101716451304883196461116536886355155018222780323537225910526302085972763820902405001230518336588358546863915063050500833100384665505939806769826529256500369830447639617076707584061573018785181754734999170117943184124288503009072034646328236005320523979276817559402419895751656483820573062120464360044845054213373177931761623883234769585477112700134239391381771920810901187165623535367488260727319187012684864039270994392435877514296959375266885013466367645297196403389990707325074910050199882651509744392837940870445021097323341214147413018347143937727664016796631980184986754226417253751751170421433912285762749368720997194407166886642851988849123356380511181937274566640262369997403609316686280995232779277584173782809773512324982498539951950857393473312290779053390202571407035596289605591030056049369245127334004980675771362993670306716428838623037433628860032787597425947944193847734903996750283252989121411660913904730908535123613463774711330214905205685187579042411639872342922167246892640269964179197225174985190461061004452434339278441725018822398344444109117438654901255890703988585989019497062386585385754027954684247296219834528871379748883440829726634188205140954039440501054784720813584076386289324540821713679604619583928251725910095380355434869009696072290192063181904134049274804662488572832734305533447319911840502207326970034985842173428340935899275305547333466761650444219413235034999090284623574767512454780883320822419128289099809430496745989419039038672288819652484074979438718201144536295664003196649578874744258205446231462865774811895417492702232212029074434986348652001922219462116463428622890477208927529600534271181869007020618940482504379722054843965888657662243911881032547861676858925629033833288248003435906797319065815380619043854022224200871237047218724269350464114644197637252057426626643526431251039292897193032744456067556110884688684916282131762376652747081587250221141973066900524878178767965407647920699971118794040400524754118713687299839642016950895530172683536166505843673549122417006672089170693285263759632673894358967427747102442836690686352929305184293441938685203008963126294124932171801419678129153377459035720864802996048166066528091757266692761002585733052270308108693659901105541029309008541624868372677645482660511300262131593652200598102370801143766631958430798399337908790629526660860572667284584275910339350093537020324371142180331914971520553503894248240134607591949268752537228458585438640437847194888041319146351231778423244687246709853964248292901835902918719937205628465298737839685871042838815144519741920614625691983925296667625838751941975446723680533014119099182762610575585170249899619569813696271263351390241069980908420341217199901708362414065091859420589479245551981170935584533549809233632141972578324323530050727007047727705564453549979606819154141189969698012630069016556957066910215972554777891882691206787139824296817479977311702351658130748654601653248755690264322387411063586102980777071263114725094836514753841505628000284674873384536246742382339873136251176775959857661610742765982634237799381236146810601324423627947188901834590233309921834465838329022943941288666887882954221748539472905171016416096122179261783521799923258807316279286588509589490854201957277546490252590248952427768507615275411904736425615612201663722055943571445881821881553338181678404534134943815348201745418387089986347699824969202067660352864448737666174904367295181787892681783295032939253731073121955685741124935743300681677041307005813828549681764639402106565634753492680898940383981671285993059313930090381588887226587349070163165321445360467403178525004008073552233163911180227411134062637644086492063305080892034850792660416839786547504187372304791798833399193055980089549045874902582870936750435959338094501270446567768395254661695947206950934546327560548828331600269604323681003979935880271116748557400731357602281428944633343447118741073344007996063482555411960817300893057274680340216448321122314407033121806723333994822199872896690678017944255449491644545922509411077411118439772474639468280860828270734502044592713987731538615762436510344121086901625751409664913745463507083958273052744617315131010751216710829910187587610657307856341803965958961360725907122432772941086096737940382824088558870870020002488256231685601355109433568746478147463469428357327209349237681024510064948847070722817072011096996644557240742774572257239594132021228229885806784487355178501042909215223610323415541636130438393417222783741536187868882798731773493379729078012259433508231745035683393085337055923026667375913871944908558454161565361997373661287674962223902297901325777334280703729056674009347733649055499284970401575336907117531179678888397303431948920217097891412407450468846394489585622468687795415887254488958743930389667885218285683838282902417379338645551644017055884930232144295164590908496567383519851098607249153317058855797672624577147555524742101715897620531135405180291027418780447174577053430180108803609489381939108711207300165491693994976498489340084988076226308146039146219091140897188617946087049968730485934549713734946111778330159649790215547357352161586449522148672200400943266343809826317818043953216783525623693785131975360266904054742634381170548404160702729872436512373150146007456891027001839824430098817455939029115553235517160298244912440036042424153660691160052590997221039902350228304379009945830015278948348199589633843808376173209055272760154055670101752371752997265819479742468051158076013247166715966857384645165594642256761614002478126525552242028302367133140011151779473623008598390238729322191186069663324986201835119972379264329119600307518385696607538240873322482567749759588515067227003183494654622378624925763869600290984861893040172672421642310640992266773744140767977372232971537522103708018153684173061148587597989580803746103264421024226925551736187014226330323726161564831099201979782452785272203607607755104133850017185139257191464011560765760519510643302730784590866107221201580903687862228543426002666851100535147839171329846737003886478208502837712204808546887915355090359055982316487854110873588553679002060198334524590487457066104240918430533734241837798817918109875791033877404937069632481345664581206932806049159683852403167845991299007226319040005803948986504686199865422237706041543067109459809539725956610839807741880674416126857601706368163949535200100911621860753749317994824742526038133424358906773082026121518024396574296439957710020662381941806720332773216128667171108047364424989952174509997135621589392153970300027863302080893191624941148917800754715979597519679013625348487562477401436115029608737833090048415058088934805120619892732238511772687407906897066067560686892030792668982486177561996342075458270656516947761255823764262908642413676446600174493386831503527801337945178836572990503753857893731620521161730094540055291998931225461536353036857216734386994772849982353356442709289162587502935874722286331072152205088325505904438014365444292777417664537642769311245959019102641794149849333262090577292463148240767392552439374336664744536613408617634944145798576361838038951911783227379315829803238262435492813222916790311494588302312403897036243214940711565340738897611678657436018965495414419147291800169194757353186114586668512730052050320503258834865151835207224611064927150396174914140901555044019673666503813868145942095314198287948951453417454102180700422964293813444450376167985870961761442760733660673809886654733276183701686434770787261300248978838843995415033565432050006008279136191474113429206610288329994709487938498566031824757104353118348789304986115315584097366440355103101411640978650340274852971484398392734986681871435966200683170535182333757117038741321172502182563666610588157270906876169344573569581825896484870867715728876313009167827175699456799502485126864060032335932389503096800842826124135608493311178999532943238339017554070570701921207774353473216313073333113690579972546860683312735613168918587015585553031608219544049785300341401343266575622653715992483558931003208417561208280585883356620576359663772237119128501995190571441964986505845914495132935409098906822624082688436340264717573228720823488063120418198378754150989913768252127769442571016916140810204062662372441147286040613948627889334441484869083111053099466582797780493727445343253741756441282643814087661438390804599814000425941134057745402606404895043845768953091139089778438683486969067136403106036052747649069839954230204373695975279786115379470499314740455914215268222024141181955875222253017209471226514933687242302793316868723780687066328729140715544654347574731917848064044107615083324806713150186565465143872364284620800209751833187030484271712827032929962834245849699229813210147382360181240100183861294704433514433209222123973342792446627961145307053539519109641723123224746365652645444903607025016964169867214163859489998790806057466046246409204452237396890918997809146925389195479753840547165362848124792456906176202000608482177822863851047392926316958734135879666541569062904262262003875591932207583859234479107853417307572176622198264255223400976572578280437835444619470587655531249705431118427471488402902253147519238554742188921395272661761049880467935650555920438930725177035323879008742243326715354919395173156579798665219791040817546408526525952349461145405918563050319468919724856691452848960941583334191163495910027204241345581607302749752564624712717282189960456177930792311576910588833162505493980170583926596410865920245333529987009892289792434916442955854069757235744823903065112823072820698161806092033248043246019370850798946948614418046656016119382202585111406545215888912885925335485846534547282125824756045423336107833743191604750521587565656988976431846683590785227249178567961846104694059521841522630216894328308059516824169521933298527440900478595362094454666732239512510386229392501097545086653976720602385861108350501867421931341992192746654177097770547685849821961875243406382826796563221654385073984387196102869180797032571606341583376524813757626135390234577358880136527018247837161974986948760195130177118412815285821332712302416811772426412445666967385282973270954084868839468864663215819576350489661778261892496366274061198326407415267598600538518216288263138273429901404034875597278959793856610623371785333347312141088782549355206277913811567725781703825043206671961898960854965745968459090824486932054227747464521844705014478684761358048454528097183130600150516237062632115576059009886973124527082921693842953403743566869859045389108214002431462946557029421686997631725343800125319866352601392168519230090218663213127484162413488820897528284735765476336550733749871249831840337664568109650658873753727898917543664978050277354834452982491451298305958506859190295611533438288021712647448969004769511474749020225483116259159067815480050597596005260740901663489341671070566487337720125304638778507204014068460975842108831787742073245478305410463460058066886529334425777937215030871619667611063751837458587789867418866350253559731039315090129079475768267283596548324033075892343661771944681584917474022732421904140157047398427654340039662253805825062387311378836850680741627554390116887454925139384050757257899770817180442870190271115837462688308723183301208057304707248432052915670135465759947784840797513472918037141455650566119629767793061385733511882638707076587601502108309093125381820168232826464264281909681723009526804228359712123710262672258701050804407440716475810509011175933992279556979141732612971337496512581315896346780489080906120733054475354961650644899266895619761466762298992299838044708656081552939301270139180512810761003397682963647942106541566486391958512807696512259335801541466430812122052160013305652573263159357941196621116181785670593271871224047014054352336443755349105806135458964979227762707524148728037537622425169254382849106508012790996561763779163525471772538967069184616154057260011410827758351947930879543250927264305941195636155956249070388813295311308189083993426961713958010597801508057124715011146630151199647573648271905109865213910928579645094540229415245607694571940153417510276613461351828890009446093673093515338529448067940575496811562071292802453531745883061418372253366336613114465263162076662630213965861882154542949987333163795712359007416926789531460306206579466346409911800246887610853388989450336937607086367099487023458838651960706393685306593225613208009614577639276122614944203207605806129583395135702045530365988765432965613144291069923146634256178184684316387410246054896942249956602670291969873769935506753635224015912483533696135646940820988123607487455026299184107679556857955174080576506790939438427331518799492595226514184661697677076760467185703687830605951366698011347596003222775354322936491596373847028140062944562477512885827149624691601200576316228825597167077899163987341086074326298444565580724157370437366911696684924701382342682542646696951618647279103398813624239770142427713299078853443809481306937119872917491084244073356586320200367171829207883708371382490071425027662827375495955728173027091043132268638305327281967148624411128972885280137917136453894804718744002958270485120570210706575539252918006768250307937772824603271751314692101676906524831175388624775992264886166982419460409956752179676993030871839914235361310062263491035331105398009748849724829699884992430164635870785291544812573037753582481330360156747910003094257063763009628865682299502170763307587568619840285265691753738529595426427507141673659600208042928530700938288224177645937888054160842171137482966027045437700133385642010620503536864229032556812750944335466443504502845918410888074229451230147229424533598954331803952691999050204554493967199711814227982960950748839773254453677269285043200211716756743583336962013258603290490768605078073750697556995036226808175833963638396742048955642510882112086054946866138665860371105996901269065378697551762205128452511046500813030046324944475186379499024435483584917966750422193231962552691436448424219471395113302916510896203218422945039802135291853089285838396532194993210104111961546493729793547863949537353799224884833303044939391159372484576289848961947965723025868409079751361194383960469557551527239025809725105163044424514627810270816854301971051256133205849787549457397394349529561268991648135643245277341034770382658570427022039023690012616718787059807763716880104268066282330671042392103970279315651215726353318834835936900391402060828986078000880522831596683005074698958414965343182548184586693831831322054061982443082322567758614365689964045002215642664786689718316833217912745351669225182567580710263976533652805147299972874218498934651906444318360719947377653473110494638565937982322798084388806530604519467891599463366660287707756905768633155168951553838423761414004389986272304384178941662077758311759646534201739167882465812195492378261831740168199595585451752891828649104152506487571261050682592262351565476323953767896486297103546930620291359257042202170972503147774904655522970077722887465340941677497226729116459345067353068800228688689485145593487834412030834817650594164388740121079714828139780049647897715114189192497008966193730241856599545333351257558273357617132906988136874125879544331545609942160492082836197939069734089895342552583036202387219330190172304020363458149331401630394156906513323163554509407297345481925710155032421129518520513831596818120201127087027574864364526380636745394129965957172367133547758839656925523017681372931466120460787864333864063080450502898475585601810769471825679575809446980424346307686279078109833421895731727060624239276263521353372701112040368039553826230631618697883201480185973653923003508653783911531776012397580359935888219242002416707141159730396493754338775052546242500199516118523791942662688980712962996948011941693641417327205079247519182908495162882757377245028741868628318356827052635215886392306588651095290702402000956944998943793762604118793627686944175920908088721424237103645871165141458452101204167564901792614649225022067827895530649942050835054424737092492542946559318310145312552804061496627189492099549829130778727770674629015418667155203557739727991054210453112259606537950862890828206918819251364850274986380044120206501376695578576346379926461139766537421620237876796727171369373342651920167278428039264220499028763797960751120407686198557303188232254785916511753627475600349570181540016516213445202042901464498965135902546473856245716518608924748730209656515757738723415828734096876907605512139175605125036666531265780678511128114217745369001356134792424224114852330514936325567347520966118876910003892872044672521048323486265267550005109594687427172787691148789822191616564740879866496790338697839316807365899750861046067836221969235346512431393308395044613661251314801263111838729065781933666070485995516383711774959108409316125450628139295652192129351035296819499333060686663472079486243932294058764176213836328375445497054967933896389295234296013452325030987563820198656995129424094849882520832323373497715444184779869960805312765831006838944854813996357877739418176154916355166029687449073291195799158649084419728468636688926396080873043329156303015430429463142248121336810205979109668160645318276931024014194483011155504229372977271301996665179372257727952818857362534159673590437165514045227180356129607205490637622130662545100116121079203226931947793878985817128334737690148664665182663271483685656506856221939942882932083030656878843496362398134543340072233179612999816944291956463902885201150418861529729370778452297907905359003157447543458300506341682132465806262506328382930724591078230567390761000087667419828356774206356275291742046227553617382783572880911222971461298537692608081914780399368757896382406013672510223022677177647429572854030150324653755721587111052129481515450954860338326555097711560049066267211286696534436612789774001811693055968787350582155277228165634686211814197801826837988767498054902398611329055355707836623025218276179203512189810417384228213486163335594418865119851407795598277019424022521605500236767462882575472670113943548315226453435434105922206044377921102050266908136240268848395504602532663047177895047031099346185848664790174285562365693734655302255788260038666940399581113109154166960368882672866950761216829557290223186728056852974029075186380521329146548226728200563921351379448778710714884055290885069781577743909860032326854376501488996877673805336729826195461642016008306326698407037922495890951096332144165836605485657911669027897675647268898022276901189659555972532100800036572040580841716623172444072054027805851429292296037675944159715022183591812957177167056967868642394100291846716846934846987011694029496054828423240452069796006280907151455125892408234566772301676182688427140213788121769187388447623574657084582802623197752209992093254424394612500079545536870822581702497557392113974539505352942925199024494853239445986856075479975441631943315770290795001858117400564468614512290906516949323802381165811074424373246031847983684765668515149341328933905411429720427651948479671181749508141673580898800755736551422198270567534004804049379026520172814854261007021715400991842569488603491134190289478601581453482625669002046908495658589992579705932449909268138037090698212879361077435443128580550889271272220962722036674204615346726595940446530698269039988953263486475374628400309297528391595476404945194812412250179927085785882556756762852109235293885696109426119911112717481933059530936766063284237461267334095315979194986262157882267730958198194591261688140729839147550500082338916658119205251394072539369017057569887532186780631271138358803405958153463178815581912714639173441346135816457545841794687816251666454591119166241357500843690780095120766777302257952857971610046177047632564279723917116589145165753542388894300981891756457101031118456476971479451624781865378692621246368785048826281964919139927678254207968804994657999644834853453553396763583965216007102925241736375268133828167543059881135495841659266359673079441049432768663921550690801999641041222915447926250759145436930756242643578193031288996349415228431950955029979380743644451449925634310900079968616179297272500208905642382598059142622052754694417260503306619227015654130228476095270003773333752651247011805688190753609617837004924044394537967459681804810977562073847249724523346563075577666791980607626163972981270716645671609252878050525631631101009290682254395788095019917788079838589920061635898040465066917967763293418443279814088945480155479304461700755888502331243042119414193924685491810312488103996028705464292306911670448802359014006608569390848300958764601639609970377090157061216980510627959596603474443793227634142009480125540507651898722807395400222273494537632719877067694879900092282362751277554154840974216475635384745930299260556143285212019740987083084367182975717611950601083654909143431452270100145754016478513049667125675219352032890542675219450794276706615141997254331846546798622334381130866770897238919152142550217193984784220429344196947377262392014069889031101120939660931758701141244813967416962622115723869802495106241406446622035031492143155408010870323593717547234333528185778565277421258563617446348129419919193377812963674184706252962500870773873076527011536658432859346116465316976354278468853787823426052347393966148049546337314231529618186521292877446082188605655973899516857505232368745172868195781210744900641719472287842293138276015761278354426342587975890780946013070273485177614691135651404158163568685793270218144791644534135527987597284815676659622488241734060037546455165330742347208254540190551805954566987454867886612974144232404250266464277778669033032760995570848008562954199406399328591748845078248786973491950027785789978253052534688704965392787962558739775378037276059909471885585685896620995087100539012572675949862017754744116661206847515858295709212930021088151629307123664904007014158941196865893712804368609247217174601865954184941978676048746602725908936459708491144795831728883155077810535029374634914338786336334377933150842051839899878274402367585359170715445753805757957754004123421342038583657961809754082250679893926940686880903223837755128778117965400612692435320852291470736029486836890613728863316170544813687239240807588818640095811797064874091060604349120230792358027874086397740855589469368964888715507236939522609788909345827039032759324271347376104569190872349288693793105243516022341392406621916285797331941408885899675224803934087929217189257921406828198993306800331502526996642772069146965277484656989974066143979951406798902597436972972954891884418395318876519036397312838217934644616902245402517907976119701880890700257314208081545361698289665170737230001501836283405351972490945244128672854480871978123790081903953442663090093926437373547084359725226374573374065879020030507228926265382490809448210830803582757906288219891789315001672255505542252173250517602096452114772712210323268606051927170520426192433727234078668115621473308005861773792394997196411606805985991158057398132355637222652505142605459057462369511279286344492024401736550160306914444375904345676408043434103862123409479709438821623964586440372072151739222565561902852972541944811094254344364967397066932841391012388812077147634788989977600370857934104283902812498849431478176274634205069255765266727860897760596648982575669269736432939122190969993945765081083052112097435596642109425892939568396397766372881739364752380517657615359201034156308312482717343177472533396779328710713171782203461771129377152539554634543813428113519909651944550326512827855573075757807090876104935555841270381131582842457019837259329670176619845150264862818825637014129517484589985581932072154086174824129853301904788855164753692528984155627614414408231730012619605778592574086945244944170218385491442366141899056857696172118088900213156467754716125609100947948570164990017977224868022952302273259327083142333177946842602873585672650363307977230266696391452836455503964921910825759118973961267017340543097884906512566379228386929210153951086175793782642648229988351241060931764558388956980968359024632333366975677252432119907470981310386200604882801716690105229539140296075733988522017553621493909134724245443865309511824166844419436920158764767698648138312627628152268255120463205181932396530818898939500833172512754800864735967894551321318732138853037989797497951081083942994242986037523358342497597042587244270806252875762739411379439700248590214120158606932170207037229814331295449929289476277954682727619814620939716537508061106745987237022540363342706008321431684803709980462944271334302859026244233592500667044022712566023225766238953086504614647039105325058788382565930837719639393044626757742920019708423003818578101453475528241775769568727209074329760894910185585833013165358136510813223131215116808560576176216101101025562554247857346534351885755941551646549490396634141739371820464100439746929588137737946917259264915322437490603064869298022296164851115243814583886230781122328299003624335741241741580172885965925055746533701091331983085525875871457547740813331033715202752487144536685101092201510067438429853518919338794774824755816202571022384896484753958992027504095335811853090466523638869281919153811097218608344327071999708777789576168979054033532038191598621165619552873270694105641555748214293483519149058717435375726781954835618289669780801293320267358201254050008579074125641114549708501774039782326908699228067333474669169305192381467014471459216349888286034218599493177665119734758477479517256623721984415584380183001654305758901495438624788419760743709096162598253068984405722105835716093423996281553274219995253983275427292596907912046410902898248970421789612196529574978314962341121742837064822631192941623960935158992318631667647328309592274945524330830855869134205595834808448279209180948425800797480513037174469467396639903469401984759167797320520863702791556269448065305408009032178685215685931772719607965186697262506506964776321240068481005518915838744062243587641797942789294941706494649035867690404028875626896985350465928397035486435001060847476169277416531059024864365293614027025390287370347544930251845286429953671231132835576081356319666715065000650538735626598779629696111834127211558368154084232694181669632783770324692239432929119235245797774896927545657449435041362420756500582606895433122051097596447035883135784438379752004365060717783422857325486354137076868176115446943417643410468067067631026727731021940861986572506770204076466391144032434250017126094574335348441858967880786437566984873808158379922073901200909643056049787904341772318311614924736772489054833592601092697808291964683820983546937437679876149610282090490555389002707727658925431279954128858080719723932058868731032473166932208030632235927607583323959290821480015956648458034500630210051390738106001112743792569188616098191803699708145688999916801494057670042455979541187866800578646907158969045079221241954466784780419489446119191928896696241946540090007043166487204247225069003364980966036017171655427003014202796700851915639454196869017490789057755253197464534212873998376025383579234092442910504827450928602627328603426547742238158576827026365711616172082526672111407118474093063289038982283977425382740747453724742945484550527285324915746654314925893843229644844775665181723085138424641804786087912469966527618554039106321141082415525565476448470836353597378574081350963254393281326667190885340682943953111427428785788417739667473951919082921055169901233891707991132456203931256220008627674842475641237655445142930592190757977016555290977167579016602334584574482781115707078712249295183842079440412483707477626375678898738423773560959827595553575663843614237908239856317492331843093328722728699620696739582983408345571042900563914505133022149573319735764815671236639695132884998946855724530045771553412349644950603976328925167677310724551880414698753480800102262108752955430105504130388827070187692820355453523147840596517531682797810456868516835044208354605243786680061711390786878002825001308961104338639903831700165929372925697798451964576822255272222385866587424958589248700078195196851176416319608793229966426142877855934728733326609971908577103481695826969927427754408442224727466132379468706114210173651646729014966327038588825683565450306996903812856455570498465473254008568807643007533998631543150311570981362409402078867592488024693253072055192607549092924266666773598824351566644617808878618283772602398031308723456066960704936935276189579634339488186773770502407196281627578805732387020315370871348109015654916864987238227086662128599607028378304140602373006703491316908335042288712926452508023708432389825818617023125735190221116268485084149679768834092155944202310662989228447166956711178251341111917126324914277423395879203931988074019478426642984200831287890672916757387280579945858225467321955641240795082991779980950918344105672624750256398656227381830451581788237589394243597813731228722398317003421997699798656260188591542115918108110928639587318001058292847850733989261262772024120110435711791060357305499152645411016380500185419743005326322523942549265994013818712906462301486949002414571215325663580242772386074252681031516902467758149073779006181438178394907688064519855267296640992884956168059769681294286648303683502049665361134533772734444947663618419164868077643058594850200865285088478878131627921165298284671578255088882379114871482647965643095932905018426018302469703653407887004117500946320338222665486946983440666244702292318066685622917771374088875596566370268837134716373114188220607807751145492484960018952345793933441709634403363535453369328915687644820852533160547188638655752193366375077364111343737608602588077077715609483494664811778227503303116276625994507174624935328253872379289838866581645447367547824934471367844235676668478860937861967158474656913287165422227181436013588834017674064033071156879921985461431433844606526999370094862221941550320247211279121369106315472470033586436183219072041409968063820019892723879058215680904987299783566448801829936288934769581882186376890377075424667358952242788978272317584917131122727138975299207122543481808968024180901034112907191826656144561302900211236954529479169922938447981806783082850309774186717350421862219745496737660017073401769082424967851931001022209856645127035821452538266685485091109419303077792464962116530254574126997916916470879045022474837342248403737674487455989922809061037384794576244575037612201606224974787223310479351076518139275349087711020070288790347890360758919442971632708137622629047497841361652124479696083613809687368239528627907294676483331027912183663099970348575811972987367831512120698290606012830659740018236759127680725244451883745117627903405992421487729108021784674591020947869882972558133752001716161528642359059258841887287569715577757893794852748959003568380097037358346271267639641193777741991224173850587724869951052247939053808711900553481085031241019677080264769809326293909148591842168011424568248536061292432123194919365193674255129307751620373701948830323422481832141277781437707895203152599042797134576358452370087089286009825545328091860379776643831985171553660835627268367286451975500178331018697853435893269587470927364511131131580253536176343010638921502412082430705464015598873081342537218451158786235792790855164101523831324464831079257870245638135298345396608350074841855690711021502979964854846737763695544467982488193596717247287433313452122080380919431641708902924516412343720276920210705423975939186560961103112607838173678389097347152683126545301069930410118145577790623732860904448580809769731900808103591142109836508661558533041222071522694489656039919738142827929061177224098537598004718827588726798794589313002578886755520100256711055218394904769861251592009641407152564901068746575075013190082384103218319759334666186803059335361139152165107559347878799577450090483011322410147522333150064547332892776955529236730307726367617591070516933150711525563373597883565535187843733385716149316903701941932025378337122497629050203845585798470224692051118476939702102765139417774574529572415985728548240016757680777081265531249523198463325277726904125037239278506538020945711772526924949078600475192068827848018913340601624524897997936505225552793408620464289321458386330600822995969526173713180361587503304885762315721944175952781624398600841293430504143334846801802256342359600446200015755251637097673371899149459398328031075935673725527742091581877778112983579968499485007269280866509883436909752390361772599570546956000236824638097902900637210376184489868580541507132831718098732829986604821056042447434084730853246249416760610397061738612972988547856632581072413098573121012123292283601840520418920691617975323692825440547690837896858859013442301959947985534775120843783759424160917136121602829735495273458885620749095953244719383900721809030276285863802878245560635999952447942515293387399918348165844974796672997015470688746345445916023994925848196708379802938512162139986777369130782846023645108676189956339354801533114257248071154798422318599679916243760146020392700396684194920385651392051672992640411830464402626415629728759972610960830550598697395752376367603897862378550385885611128921742623242476734889058400119449491993615895416782032535484956079336988622357426914150249598390338485828487232632182378007778482025956836102155005439466789958906036589165763513162136162569984555647102893135248268212050150433050641486519285403526784546391814268951772682781826722635477032168760994130809886165392375359293051521739203483882149961414972066508212164193153599655473979592384122222533774220242568815663645733371838011900867042539486002381137754508257819614183541292811900297501106444347864321833519025806831041735166115105454955017314360080422081660661986896747514023664021056685090272421963698327840265155374080733762074892520959800796885727308120429477568160507568857878624463198564681021205526462175433438457606371119961287685241353514578328669716075721667500447708767249467720063563077428309972210775013432245931851887799628234835923544252139044458955723827970120001114916008157296145542248692543217673217357188831276164626403483136441894634616926747115173400668595343994199891887482856692289610795037737615711599547446258734386043919643680867042643600439104347478696828624185124611655573053854655587813755159547538379973949258120376757041127976237051248209452391631323134053795750872451887008454683110351603615380094664167564760375955169921647611970779128386483078610296066715402287436033930355838750202219287337006301030222576896177852090156427302465782093856031900669085175329514346976086604910121734094593485181534622222156152081338855516768270907200576026686790415033156465813429720454773005309681715118927217483667028630700802998746027806784614062398740680717762813710293408183558589717827144823769904663402017903540247257046600515189743463330336972643121793830020659635012830218451763508981505625272752013968549695982401236385783508649585019869040889151320775554060818783860459172039147754046389985445742246834108302676929818088872891820170336594555951002349698889653296239631803805442372244825732042632288692123998599918949750577545201002142260425897440900054910831641679409056703897105792323220995316138427705955043289066713948696231851366077356613620288252378010459433111848719747384609262419787633771525021937777358730282555863343921840089852857335008079889557298087229890890624672454842741605660551114183329037805161713737677633635360112067267437387230085756993235037413880812152796405862767113813108987953432359607743898322011488854522809831154045529483393546040705306257849324850000989196394715493617887926927065281260057100197679004522278396603446436041425796741623903136388434733103855801564336818983561853254178090360165510634806192122795762612145832392217192617127394094171843718504797642919778249871571653386165064368317692340445488765245239891216601480715080825527637092209622691491517358993534040259035708181562863731470728000396125326661427213390854720932424033231792461419136509714706935577521478943529750289935275202197428810978143211291528028877129034665228473907576079079139988364807828424393628775552783973363693698540325678686335841341231837725827006851798498508174698211833007567627910268392115330469004964918679190525527442726669390728767049869406394295420272961796754455860439693003744101325174121151101286479602026316345213844788756249292930346022583103476548525903051958904408283833407104101516972575693500943086497654336740405470520328836771226368273969003455725476594772137841056217861880944946384609157750732024922330424897964228954880403948101800051892865657392547738069010159736948630389953981177904482452863530059439185089818443487900730848886221582491063315414274514599979159273333282675135246141642102667617847272107555572851144442692365011115861188873314171705251739546769883629034427648533209015740939611304601048383517844449805691336982809834300266748923315966446751456555329981873901956672444605977678452726892809580611610119706752315200758325478891525320941124490665247556915908302647314685469823838637942339912996252713201173271286872477087857738097493106602567319129444341812115053904144452930666553388687091374706004727498922988092849450313723796009006289595263299876102714423599889065339112009960434381784187876664197866326458829993073415170354697184292924133879794148132654142609694403872660375472513300252034299623285600946216987273645349610645606761861090912662306307877023813463366082598482030554799509916589476605997464654107581665306545390658998050887331871257086323467180871869849340396782438748602190979450778186974360952952339229264178493475530562794032684376982183422777409448707214857781928273113139227127978236214352545895474743387437666152740758743746310881702712061689972562702061480200427916398336785067999014163673768427986068316119482755977168705628114064245113383520070638625306423828853378069061015772558808202338973253134308137253593164534077991268451944437961741032462446069615188495332632104705837009257306389800395250941205936755580118910093856862820272061368766238418569529621421110909740702510460088853732070329534041446822728654052680891737336522936420586509084782566244922340542698749878245802881451227042047624004316893215194997244359675934759059742689748706902432008579258879808200094092701142847053818234350088901267925016981086532332655347885320319819694464805373536754980333624379297492026767379215516734518898112543521778238681273692092050021075891264622218467850238283888666853509546977818132656697705969552392068290181017359607928574249541853141856720535714656748026848822057667475265519409179507670568729166036020303548775838949516034559639059721446209107084474429131204318591611219396112047276625467600616213220090103787423330475139232776560531810464067452354354087146450232056478899534339312639479863279692632030665843295241842237530913594479947128421956685371203968990478627626466723583232503802465310990506591584869116496658927669105175862392592861163636609983529561878059529977990404113229001733882723067718619621010017761725908880447741844608112170879471399645814044975220920088603696135838153201030228588107868619857802063252541340215931698848571858273256931640861118185954617291561665671744822111760292915702566639400362453898378659781687187002891465272005628218919015392329490129415446930187828666658866922758111108715887719244241924938205492939919502820145055902605934376165202203793478359841174128798414914174666883949019971399760587015911809827159292801668158835926352436806269133502349856899035445781557185022807486169435731590188574087673290317987280914656724627082337738165955413896775325658834674322849126844927124037690964715939567169819640033062670652958822997922918289199568060361150582548568767779276859573349993917228365277516243822929845090784974495388137921185860258844450601999914194235984132784203813821006563899719907552050237669015424826864275922398752826456224712990385324100926501298850108891754052188227424900075336861428068483961325729886973768721790928025654835013931023786610098383708038776335407644263271914968809961704914226363982933071415702288326251325984699770175144581568841881671352752361756930553926593903697326154127121431669555806423684784059280774598476584360511225158040931750097122411966677959661982294440374780036750162783115519686344751629839098996101554881701557033531062113073227665428058164509459872251578621498192959181646488222553860693212215074148790920609350798875086450462075715473810321667887341920951549594636225183985929010183261533544084020895209200987163021815531455216711929438756775609485783532508351161974041141252970007484298442868979649521421465937145350540088192453785036807646156855189986563958160436985259450324931474452194961910055173143559158607700088484917330856047507951371380629756870120006256752701621742646679652329818176101738406139413697757133393558287013016026535868804056878623220481400370101969491901574562476443262151982243417175375883335363481555190126751772703833070322498678055643437729669815444024334120693141939692621896488244133650540687236583100053793188846133711500407054927142053233911685244460222176187693083478289954696529014729598577563110309207883127244136980581485874172154538385250771185124749556908315811938802287551194160789641239617152572431105412935817001105382713895604167458211691463860490703904421612532140037864038057675594659859879130072015189632244447944772184359688875424722130125179793856396111619532004407213542161453177907788187721355175518978166717958473131471259066271753260152935425722564015300447084434683279765832275372290795751273606756239982938475406956598128338178112866748338701106033085086085580632671511069416189728851746968958857432604015149442616203726585812386518848132532971507607742744349799390957813869958169928305631965386855050163098024351641502066500259275577713461048715524974761011038050936606618806301876467125944746559984509999150970953620434313197838137104893454032449090462393257914041007992302399493272719266057809348814063538601502373917757706807895609883766184701261733176807453898880844118628231293238529006670676658941524403448921863165391950525433896669236395999843981415562135806145360019319903957799078859887907123066393138761270180009957712528948970107012034895768258646860400533779260976617664636770317744613424980284124668785067162612764473167985770645917006108685295014914546752887607543089001086929366077505122162320386408112558001733161358300581345337002939264734289203980891621381880227393007702191934460168303341662732917404724886493154725499766739462726480513888003520292866659320765369297432948647522863360121868486639232310759456482107903328589021920369412128802329695702686227708030321149676737829104776891301122700882136760896273322828532335698290571069399131368383806755021471464691220423290530955474550290476398939535501877499600379998597426329475827063502609348848824562775558748140998879261067773178806359380855117003837070716585406863615583278354970443608939463976874081535386446967077994377326438776755329829973867606312924587285690332159957766396393751167126424635845970334333352575824994788793385112119536784524136598994903593026274248866347775357752832398179861599525620361318007000396453331532382284043827409127890271664102734936924211317080707178366242891543821366111602867727144136289008153479769946396379308161519524425545127303623092850859493021332566980125711794226838909490186727196371100301382668338268617569106198814379970878309554197706253462911618438320423637910986137836835033413420687478038657387385399135908563943802614210289262203856917424197745924907628257520769808238130467928353137280803675234974671832632700499760051407356258163843988475406497040453084244526315476977695323484235413403210232362768138454797410888965877122480906127656321483749085221354286030239686898596091864969197236841112524158518554200379472605769289684430650192881942600244261441633441463949480090532395171511025857077512448135284244994172747485781579158028628558762701219226095312787548918799329095488747918297040997247875790307641025945783643731154204647317037236486319141027619991457018869770741661857355173016218916678240493180918650943706216489461506772085212724170516489411744919079339258417115878164300545607136791701148708176154493606721801601513316372192366042533767085113787418973471730738059864340300093776901991535605744599065203334213929579656409413855470452562340614823817632439675739481568420955559666390317917835251282509830625620510629449332526018754086730046561285801753327883824501334242196325958093210341776808623140571520485450537827871266696510984689520994389318024890872016372527477346930965624637644504142894005684058857683447582564040723903779314835467686314923397156199805570679081978477902439464693055310255105007286457487817490941657918888678759863840193058867670055713673340478461771987111799210215190505156832736777478298949467617000854997641349632249255323935157613387914192487008770519826063227807204012647532953507592283724616117051597545879827105034090113468267844501779960650844264232703229617979169998906872963184599414489972571050906583758617314486007124454468632295661402031755264147934288548156793611194455531436737673345313407067595550968936173779117125758188462573176257981008742991938740333764443136342165904753635054194494022643409734957391716661795285248825254584104383994865438040969989776893448315520208853404280062704426776272061472718166951711696404651878177890217910291834445250817039683140309803295533681599622499455957123562771750098824558694507128397501537438192542112945721943819301474156847911237730346158182422862892705913528457403649304275098996692992989986508402495143132839338268523050804109445072911241688730763875369543376612671995166902216223085004419938834344735929978567253877720636922333027349251098668900368238618766201964163315617563986834240739819064891497323884874957600537452338582989785371681818786643022145862884099339027456646035734300583594231073326555772265916746798931605091632135750421823362729524715520470166346293874831022470090385858353267838308972123533890444990550351881604329593374979531659053073067940117484868476016066448637084560268988953363013965843609761680323024336939914614759275297981881090346669274494658743391062613375205901239069893855876811893349772005036375196584583917321866953533583322568293870290710948574445245411733305991286134659013601893090063352390601135333948978003442897560317264365211660688203638930356159270237621971601226945992859200524041712643341306350362378527965687886758324522413174721345712382732341424847390670537247544924035337040345523852142800925968557280960772024606896103367065762415286066383869419784159016205130604074832811190211233001834727604607495098705747331323003076024954502547312093251703315498567686924075268123679240751589912041493597988546813755936832192615468600129661843391716795447337891429070939668400566082275975852654445916437562814026711312634278374443311886676689729365642073611441409303181368262609187007099489290423271544909349341874946193282199391930055606810096651682296176467971780641943421184918271891887059762897211532353498250317096317161168581563537509747478472957309955593745329503241140028123950972677646043587047156104754989421214121651375008595404243629452925111177471736247399013531750165209431228473872681310473869770248192103074130451966542394446113783692186074499759066256742084744659206675435811558318881099575657839398266892513894433478862194133837650866785834649249315434131375944383758395917272574924112642539992224281792962263039177135122743722620052998533672963793954332711193538702419387412654467433325467200858016493645132772331558292288363020561925849207451489286349108895115540976920431757725167507663762325396517976679634918402924167578138111048586510170960934834367825004361098371842756182392122664017299126227420215421734411388171955304180346934070250387098224106834965366777999813437130690480590586674125260528744923234398197570287474868884083998761147767109203517628510090104197998509913719316428583258729067976358959504212049750854137607563502336075375076974434294931351173698572172733791877736287300628454953728102542044827953543848558348485938820717944110544333836232667558765789349830909934724225508324909972774164932240888045482919596481934960673950139711553397997730427362637322921722463525721573821467901301515739740846912746970369182251010786094544427254548577749258317723587098846858394278593253346168570432983811456633298869759424360320929673989565493792685305524237306509566694026560383784607937573250525470657731679845744099147621313461269056743679892490572066869065210884751856411590510201193514027713734010699591260744209623467425735088378669968449832902746126188622519192139364370217447310437044081203181098582484238749646830469441798560467768710252683138341215649657866234169939651477528416959689454205310932511712100260520200033759000211075915215613436727198208483510792963456999827511772758989130235693820297115239828042773881080234787657865757389861842758423325051420065598758696207935547043205491106410043521141400194216197358075741827906575151390866512127945384786822513178039302840759538903928085566717823391583306149763086552846406474303974612833465990615781838521222612215790915591390194768207369573396495036469087071700744962828273500183234993900506673781131703345876202911963008665843707321510706163969728805991242553153211226996590040965289359438603412353254841539701851067557878478777168892911604867709567569550809623200380876020647913602248118715928165894004655808026762003253398921186101201869303696444088282188995597752495074193383265951468767775468536933510789664722321448033428824112577376069686363063116226983845952448311363521477426218814230501698242399463391682063296439436534653501209929782229650485293989236702085227847879084817840119329663801270980181658201425572148045233274521298241045135367955458788510308315853626294974587125868041596626118052090656189855010656490528416608230757597658871334083048434874888884670537028757266176710924513749939863191401550905804535524128320117079350864268107484229217490622805621945631474892433053944045317947262836197187280377554395295884408697594989520408081620072769473584090259759802748381581292678158293016166115653209134887597694681029351184602516791952934344931412220290458411729321712192494144023131941469224810743282397268649034756407629300277279672404121226599930169588075092073985406256850196118990652261531486509932893774827026781945705993729993658189481445243422291582607099356833533808435883269409560575342230174321988809234372824290180419389842683262355838788973028264587413490890110929586908708466894108853203080589047089535072220702112899145627287880918838782180566682360136452217778613728744212141002622704021237664097428225881421540030954421852158716123346561478301826542642272293119413099005905947893747206826905597830460623904645450326928279756769004367208243224638369155836301283932478901385171456129445992645515459474722344291375281743405429672997634575675603782078480754481848443736906710488399048359695633071191239905215086799232553902411668476538589641440856572951904365106268852171813535282919398479771384355874593549016013522090339921386072285039403857941725678662521247796351871867705466221088303877969604838693453758127665257220289276342396672510139704694262407160296217369738274382159033220064545569144203497531345120220001392499515990773941738342273980594101933967407624808216089370020161020797157327679836966249969224449210225815016397243866703929244017090432827949045133982650517089342412696928343493155978330511609579603693424172347016464800870499139311555597444077762738349265692322676833479616417774155009163195638232925326113862252105554598730313816758488745534169551230110429360756210124480110951079936660495900495662467488015222941232905555667278449617741999010065570838092916374296373560747923168616912600416472550095127829962711565336385925691521801455979300908619721894682945959800167352852673472919717546571259931146635332309808747381348383162005594691608902466510979073665918652637959419826577436347771645274611479476614870617745441057423894013741329059266551472176225038080025247032846021185462175775753079997977844478729531073454892008688809578438486517712971164068705337014197795957934778552879646064692120766484632881023110741280061964149728047382628383002049023053663526298767278753462102787229297663994657392920694218563076498281610210427460711612334470169979273386426687115433927130526088462846877362730743948862530870980429013905634735815965786210022730496286586664341823634804563890697902342919716365886353424535306098986676711063352545300244631319237101297027497169341940214387845901196558319098627029979326433639934627537508413311179664085340501363675247797195753348090788379642462159282411286100019926226678316422151600083746629345620250853561300902347309234998956944945553577350570537660952668772868097327521824452071791468228272907893023849993128113530077865211780514661410397375507846469224265344099250788497197124468011457123866886247818408440559824662081610374420836947962587713948987742240301748669518841875846862673799840375178944503676374434452624404936312940663412371709915545952848500150200888505558128820354590022319488452953152142508885753261769226106346625920340908898649542187844317375738279966166503032981867387178090860506306902687267027894057876294709608018761526434026605813535971170346420061289021088916207623618851644101231800256732076421536343131571385793197548740403496481144557393118773824302966368693274980464747300631677921478460732989583907171367307625377941188701935462516616066081601326385512398483554190733452510480074924035128159449857076200739086314209702592853225571061405719648524495846845953009309956228136568890578855856060216834019783903824897811055544398087626532479734993453695147469610074673348512325867144939784946671727434811262942464093525869894375875859866961657941013743981503014444308932459727044472265657116279774655595624850226335877922977626876211781340476139847213282662457607157778147221044508722545050209346115052852987403234283682850711496080771837785990611459535584516697105627815489485289816251050381277517016356423593759578164546787887055812388702249865297413161149768699274992804860033812506594671958374231453606111553713669618661582890624273771263497034196095398303949148104513762598825688139030198869042913160550786737658472954379563779140619795781532343857152648041268628662055479531619158142198109355661570311162879179627554454588407709534696330461697113229099642677412769996048317121997244193223500950221921595909733229332099478135232827994345321352976079913355161429994308498901160062713734700467648259259009780383067006865769200065463804965571367964134262768882351594171263580088190700331835511690858572382255566643835939866304719597310836349924768550568806980942245542931967245516370152459416099356340737834513436997144426204471666327819402288138281896132691679945695954822083956194146969382831530446867450995183122670445920136498190067589639391503175921655261245335894150527595551591876136299729195196751354503426685663158778150298928686315292840848354593895009601444796596818246902864927948317798287638892545082427006463711312921678061822773690745241580867127085706977114589201530004397974807506277317422876916275500847622473225765901915502640534886831601798431251429757123890485128876556456733031843208102330014162063133808680012207320014462119204674736760839235361491604583081054665347964707632820803367949696743031065580030324720976151073251406738045065813957589134289351829734434131870677457167794471505484132151847359225712371257517699005246185565105830852739728529170697439976260560839610584580220853485940261083595592583811344009761995708530114848786589298488022775307411505065170575002382297710998339816719005952881700746743565435361206497312347280345367305855468347358779543654529778224545455476933724698498122847007729666494338279007950572198730516570882167343045041513282548743898971015375193838741651357471955500989942559701864909257382309883636798855488012794107106423772767088413891506930002125421171050216760070657400907991142228209071702086675687722530200544261671091470558250094088394652958122207695751348951482324268057574410489558608097776078201267679431352619132421750538501304077885956620661331235364600652836654554433202710628010339354476107098749713165379411200026004378327057441525045699035328466320859872853491828911996448996070265966731963011935311427396745534024930562764511286104053704285464239555054578284179175862734162242266375444481512877010068462445463389490068089663827718882380886979688568940121679420211940793588543233038616993692548809474792998712899302902211383660465916531061586554049255371196112921256578607461726302089306907686753522242950263784011204462686679796898248158073930002208758007668271046541274896669948552290648664849740184964731405869294998994812016765281139520995230413423083066452467428280902177835158784207808024324235913682660093928221350774294211823497914006360845977490131895918021724884640748204974915207611573355306855520541502523675019045195482538136167053387220983320287498471352846717846551714520353845987530701240482479246355041677590996429780615759802883828943984344857441607215801475660123945409041436353734279650161025649549089163621263325887178551518447530482782646091951377849171682152009315877123659126873333482904610953189116615128921336663606461549707280717495125524948979539256931982903080764165916413058807891419207792120585701951144944724029388460226588766545541044909502812583540238949656616417156021324845006390402843985278475439435064333780240222278135053870828098163449229773894827456282014280856935906764972528917661831896100076787718529017012577471549523971197148810329417113326109908310218103841501303496481891271048666805463799578147084443725292861440343960628440345240592445409173841637867591990293686290922577623987474530187269401944716136691782086349771396015063288409143274008377119984884375113082882430921086569514675910596819457413620115403149350775187590624220686153834862521778861436365938567800400402983657038967156857512491015590647174245861686514398783730967160787060872882384371032108488938517823744824185105973150281876969791697207343967198785778525172359062463304988173352800753772782372228883242305093406852192954769300919362425971622987664311127127497749621803823718018047782256602983282404695985605530876405932961046882372176464193512412099849750078498080755540205556990804490857875223557769596993706972854370496797832677813623918321396297074595901559046212174276676682770442406918989464940212943841939886151144302528613243540845028604585842367166665683905640864681912263506220965494663724233485098418534405615382608261348208926269507425339519501602215155139997465896128441577028320217798210235308755947882333427539471610046727980771972123971508241559988861944527005044319423365182159850357881697910644556998975309252505336489190001693724585242065322548418813533694846826312445006157644000780307755039783945246443030490226762619451043355038141264267344687207384925294203886100355294392741455765145948909773038828795994735215801362464173051158509455456332959745415251244047022515095058403539022556531645115925811681958537650253888603840456872984548040006902494349608449706438286495735888772553500071728028493797078918781625432080780730222192193312226955895817955899886937502869593460558162349025021130490304132480093680561019819968645189197514864209738595230823476157550038102023427842361314957563159192968238052211381777687088794792329558756206382974858185413329651089971518315073330273400943041831239981094103603500533149178044440686427428394181189620351111953360404417927806492817464419138846292204385612285652661239214309434705728235145681807901702404869365018435317145340262550331919186818002045984468134020587795353860799449936255637937633506694045341769677007539433468192422704569332297355160205284801259237840161062265817174374237403720949365834245944752400133354631025683650735868047289487643294515571189107826691650155556265560236533845296511915261364481568815402253432733690324584418133911743258586929252537817357581075919791835820221754449259247584048205122623951783734326182894466067999923614737617908877333597397296695014750554123468832057924886386333064904243643118723149425339857945786595253867850577427863885631991752989115915916473591612380901113406399837471458387473257055097805672554922002145685046490054632669794994776628343873249328001132171343844185440914259394745050521092714142320805057376129618003994408180138042696987099264060923215306419429849392785092461143797946449371012482133064867444768026793169760270988365742336145035684182589949348809620722427824167940580317772306571620784208693402146231016771289385498218968201402405411165636817353400496908054208864915594539354700704424491015062776025459202150215332525130312145455592605113558770608465652767990335943857678850659561665736382885495445685392022466995164204661231175563567216183476883017316912823999600756292153444374551287459510171423121538311337193448333073906514695658912371960926769860528162283330854381519446119399311432749228384781363421474847864984788520088144570929429862864866630629867747889189213450812199537574010832944030359592242257255000015503474300710332186885488862959469674224501707867843954502898707688823580740254981883858295707581213183629619915170284656620917481344036497751675864083210683701606239334285615997006277786552716181650238502784317614379301051088997417138073494604443240752483221817712777544831716987655023063100081972207004088483173038868925122100911136638127162977037308274257419827786544800245632927825149528593605064486991604812779316910838926453843836927365889079918557453251253262496409418239034885911406709426055238224044764757138572557379804880586621117794753648575318719541370377188668747509881864959971655282575014153918262117321520813252256693041537401943649384158574919096305350379441244463748218668578658415235781997574897820894559381589774133403984211776682901137578441725447011956329505564090867972309826527269422293197277498115312699198509917458880834038332337763212283645853065722342224527354641543451135426028029503590823947178478184216481014674151869716773268162031423514732117428025219762340642659456215599676329285309519632085367849004709298879266268403204433667369182613727859339952566332859481080276724688091497088654975371074880883654137052197440571696383843426919549103079998308916903309002329479985063722878181920339198056273680808501198777674635413068588200502559653415553625588834671003880356122359533027020533641219834009891618742125102004645279787140522821056819535794948064878267123493477002642680875624048495727849918759905792336484848360767517632320361386936870262487482991349198182636299765235541492813209612020001724344788281058674622855832382588971694350945652099891874161853900012516494936760459545295400346987695472555882910965745951901161479877241253579874422562576371836955971061916771473439381456960048246310453717562025078946262032760060283283071550416355653351051873829869341194873870742242158294098160198742309418606730114943344473268228701986573339877192432815659052626540864138772136020370684010501941849108497542733099983646731312036842012008875742559970396531900343949215272106638480003019933266738588635566392917025634113594185539769231592275620928971979571895655214665412949624225707405552922415198120800518592103734998893119631985439829119935072158237919319972766536382021523939119133666135293636819263979030804393227033165485029963456392942597612586306148769703902068700650613209779185020572748938802080532588288480931180630877579589689343829189793971822129232513517789350214641179688795761856436129118196096229164198668326914116148974587233458311339621278290577679789181683801491304260508083270407762231502397610680818031023871171289093056490260548268179095147486660145124418886797833409832554980743559414721537741355924819325829132972432606574830838686230701057431710087426356280375630562666620048168859870030337546939848341773724777890811084712483425551984469010117467184417326479833864109011923940300373605747586001837799051561439290083634792345502298868772315136681560725612250734621716908035516764879010421406502898239009299601402711985461893006853233379344036876218527260439492316952458980702423643170991946489726569624999301666891120676067056581665032124612498937836722720544746278621043861371462682699220567864277754833484647775915325149695169967411941302556254602823466711906566625228335007283914984318776462617545581173081348249173759207228623303178471215021997029370045437772671946652034169291683313943529292626627150897387066121991675965982004595363178670667037594128427551733513545272322702746448468385433384698035432246716017454106067050999870179221090785509102520571540390540483516522220580768093047493350978145946188623300379382339870895787620105673135975681201965513620117069149796646489872136895369052906268019234733829948631751325662104530459535146714172179066745698267019133102569847958180989475555646280153840177098353479573588437678801509071135797263461696871944742485355238838190376854592386819449057219374441256351863771311050387129105733381191304800281534716252999336896583616486455930049898374463037271519555974986144079795962740627721852906614968481064287318206205724515376980176673436066726833808051718540803749547037755326033811100602174691901023815120182733695596862618914769934995724489133104259406445228079868181828594261279348105966182862887071210111670124534178750478844074880369754953564349996525121627963472984583310492542759464618806431337614795070281718607958815193345096606457730889355861468554963987069231819945344810541536012484431035892796218944512899181179825068256028629108649894441942334504908177398791789383798212317262691160496373921689335866520549280159788695019840589454338836774907298802795229304613398438989231719901166552502518870634282979421597799403997943481120958900073710269872926763194306601539782705524749597856468500830660393447478074654768024219152064174532849998666782843997380770773333741030179606580593014943903381711480375483489598791793445011337392632118114594487270740020542409753151642963652356835468765152297928986581402860540858290000900618456500907635140035534031297627806667125406028872853354701546114431780458878290526914877470548160346856350059074578138680373775472510097350093541483364809210173123166417981645463077902250012148048408660871336053082724277312706002388557204207079671923941274886805926681447426520196900218602769002434592646782619138354783341242787844886243744314132848685043017835569614812227635961396610292421959100748719347882490404515691738148114579606879630879601231898657357064668914917429997215576522825860791916998403427070436709608527994423392231101122241529195545974814789070978020968763434567884986388121461027024656808332222115326225860961817740803051691712910865502296474997897596866859507826430196020705722324685316714930254939749118958252593454586850952895608654040568175446852246137739040971223363767178562201332008925722016214738908610616141977137275362614712743175392923255404753853746822568919236019520944367115064463784168662513263853437311826374959562822026758145467332009766779414305892309614791844903070811743438798550513020643174688635446742823089417873423274922708925647273669752914471123675676753975390745854692293237060400163478512384932913624656182469616462651477263274569747736617626517994275535724633667091768556141841234712381730848748040258151763238010715977814620477933915300863406600947487979992506932997047348813503569889053018342544843728913724272971192925646526762118140282151111402423165458990985011049351226670701977950666461817640843108035928043727743303230730980074445735360021314003543959162395610775601103551756413198610243293979534696538694574315348013002250276893176494287653854902263731670019708309962461682282982710844158201083924356027307061984694831895963464338095515509950921464188459213512727959910383154203300971025270168856900491748166929025055330496667597740363662075166835478323889579283604067145241238615302068273967819244897078676862059927964269240500370333054277053161629153292503035274108289298741847253664815626123108831472103557422737433888064490709655601551259842115915290838092151673217551084646697040121829389133150775915525298191189608574149931565639980190772537966252606117962832804963885061651096183100768993573191904155020297690893910859494655157975514098749855543442909379483433398806238605242116678870259185197531874925288004073544725444665896781162916490107646575944437362574645279415793118243612847658142504102719421481333023407770862093035019409342003646149357608475559243259628835271747602967704151296100333230369549803685049725106583513556872808079722263856395701127879578298459193853558593507471739461639490930411824130750923839563869836593757951477909424478118309429855910823485502867204890086403632326946528059317872930570652837973372545471228044325250541025148477237068392254307008082825398466284051753884257030109191556096081259908023549584382215216221147897611806374150457217263548654559172006940207026452940125387850756313024635617374065880966493526905958109900878815607867926492905494210713049341180460486325396470972292035210892661973500751194983494603114711426569488051115768822358387510961040922932341848973856019426242315286100352870588006538129479033907913753615274622016500560519539207082764366266724373974119758225300325433666055511841640920658567884495940180584150979672421319991558989410098138315705093090172166242484863857670764153900174927066777440977148162605368545518083068997915965969411490309448782354788579629091408677154681715976502656899777735893518947619848498764467245036133758437042885614573601108893183318707397806884252689232923823956438031929601853021229734942050008877484636344992926254120565945828842707830896502546165614770613344331050739697928944721556340159573751333690025540771724225440605644917841547136259695793958701990995459035616999695712523872021383136439969566133692530367585762674843948057533512268332994677118001485610757036745447953579568971438285274335521188926191938776319334398787550366674895165805595940047044137889820911821164292905508012023449816570734876392838017458090393783389045344519420130330322569555348344630425774618350326466641442039562778512876797354473965068125517486592577590830625149981412511813281002364769645581837254824739946455009679254813759370784563230729937638629164466472482760543131646509782806665044199224483706388740640034716840826076695568829552184368597939985727263703839070495523978978100200773877963558023828888350043218667420481028348681412262709175825053379594086937874834109975963080215341953370696534694835631045910139579728166650184733900331666548454814654516506259334578805382478279963281605635220555896826708113325702680610604389486871041021168096443300276763681469502556881065969727598582186817715374809791725596196786666071722531773594725230538597981479298474493235987437177581494172672142968500933752991507971836490096415423839750401877555777078697901470357005385778747423561740035924349358661025708362303616115650427495928605956441538508404776006168140353917400538057325970243883252017934317513686467482740230031199596498049269762511796498564867162842308435562084241249920338981856777737731224018047701394397330216472344517937445614768041684349643836884686484413148507084620074001661107605799798986835655251107137256133535067402140503342761042348973532991975822203741843653582642991621584318636000369289726687322139644495347918666807015513971776773488620218577927765536816872378632653248314883520884733036369816693348062362423703575634359090505944907137975352472182557854978384709976800457563813036413719282201586014299148755207147515972470679682329822516569272951541222310768757621713360467632253960659436644855586596863376864222777831802519988079941012481219759551206523178065681623649033826394681258528874686854217011169143571066962346098951709835416880882314483550566965072036683041116017356567783144843848526276028366508223354256386561567460229627893517135428591854766860841023121443586001145225949725606462514795148337901515225520378893096404805721142950245427746354759644220536489539250992012491519549737360057444343249291870531314654128186733359827534546540397909197165187181079083140960302571450779209637386908391966723215081183630262573783527466843858904168535796456310476403416678529495991605579269375523488008022083301189582090554118632188005619058333670812609985162457280804646156044183408575650624269572738290777448239864478669817825144173738425112651147515352428696331197184983587218938588385843263843842869460442651175300681960663688977592559247953362388432977623901283760581010515771700217029266720696456849789630402533914207220127035702729491884406630990488904763866113333275589908106627729670160048111955072902919550980457364989080909191555513954107569851055324934136001196965401220540834884801289370920474830218172172977320827679388835113207263993598230652558543619288904325179871683450474323728954311152180679662480098338856939146278306436238422746592662558287215311654565662379109190071231777767968366276175927980057760131508674770988675714971077656209536163272083358543710286663793399784151047013101863690002221263037128177825896406579011514851552574086486166252693911812928337179625202479051441079182732374518642548995479052553118572883340970732889707334152251898897565717094362438786643149026710292736167897281409441971886648333952366094464446213662780242558826019676245752399070263015674786178611249954609144003651940197280349983729936013483720785294954248245497432876423878622563613250714837894467335170981005074397758620183934294871080725458278978583280239645526035047334858810125763580968631980599980170593112645718985789132877851654937029737286885924345227202555344604502130326478332595408944062331587423376739428659698207007067265061864007996817530944781321700844387822996022020820565225117594109745282962133028529001452371059754766873294026559874948494613397511960681918225038170461546692013962244820808268923176151366563511999950422340278090227092836952273158494793218643196893752414008695286623050436759126125077024137798944207561880900628441747597801922774294133925728015234591038232437223778758408515583951048750012102164592732326850504990465859182101195147379095166497199806324954914302957888984071941776163150866300391707723960352711671628208207025817699286934840234110455320951308577633514242035939792482933832446105960741744463960268975945104928740253087582330329197520323073386651628993169925734917506512271984720997257086445325722731000355983661900795328817861906983116953261274579255968998990511450416957842946139120294298428766965077153010525706079984091913944650745459448547232177114657407435856976014875119518432262059155768035581930073223518558329610624964727245257528667856915865683139115913279359419625225243973283644989145959136626987195171674238262798916273403833095490941217246340197541683605790052427427708382188497816773973534529699183975482316502264622618055927750188128987654571422423431752811576654587340004358780010121095169542613656485968369928128815002323268835498365741559012553687794018612369681038062409943118495725605061342687342888191420935410867744869318463394237173966621154454450735779103423506894839608567241489812427586262152831778585713633128482050101557814256966886502428538697677548320757185991347234399757290523085038354523210878779686097704456026954571405092460591186705197215339900453921373860584792688217993286738160880055094954561998198977679381699861942695157527885061135776705795739109382725153741507362886844280249870777814103138493947061373530421271889741170134696107168690232552288764612802683044595602931919644828118232511034417306990671851314234325027219660221325140371065711968331059466637935878833653932092386187407530876298099202515897744539236925611699398816663416001143072480670838680420776509453710745451187475162100741014458221996272873760880784290889635314044700139633723489850400501460078187820252781480447876641632285170356391976926718378134393496004684440566200218322040578515172908043208283223547917292091650500856135468178146407325358739073123461238051385443737134718437390584153016444511462300995402701515258967731962190587824072177683603088904005341663197043746491543985520864865666820193177528549470195424366915263306532512480619650447805248219969981791190223845010842681410681488305800583819437370944957058324144722886184403461020440540593480201510632333288110540826367627418285605685504338463456006222712759419386147017642708068221677136521778370187242631715557157903410460071673625297251037426839900856974603592429019594561161936680350424727092315783876370625038979532503404340254348056752252852126240158057679700251678047576265556575101198294462425410098999859594567365802822350470916119617383187224337098788174917064608122829938509930307261504322347581753770557822378835790243405572941505590580675309627352154907319987011355648773239472705401818950910827260558571423231025002124130445689373941420545521509323558514795769177499396563551446242536509647595666915617179767006006605495361631863370349490890625461126701557329957227633572395193836993696822939458285465028005954895089474484543923865218318358950754449456754497745662768052241462425350966876782166201265415342346792128123741199672525910930268852092484854400763753411893087092572724083129784085860150326548999554536724440140192885886129633648026045759594893959575027970599909997345575738026212695552220448878784969029803663889212521614529081010383411986087485293553439257057862735326392200467767884656732171094844150412366599889145458479077031921925402489312908429759556463324385765625778831226369754794725585468245085911611768312737234723395557901286879335709098728392824606641170391089656145595601610612884826145443491778084937182637671910149847347768117690609888178326971994538782036974180936453946504461985856574336295393256943492831683267004068415148157218590985412023845213400223147972446332514053066888775681209890500239540230290587539116385036676534031757428700472994224841226128550923983016566043899058435748748166036428206406576247312112283525864990394556893153658519446783233696865113555250047396099313700515084041179869358378246684650612096554248726326480995390842101752071963936027252109184303301456693223000328739662106586074222572590251070820916111392918007633008254909717589653666398527275525321635043547449900000645487065176549129547673555866072472784779150185141666563430100418172941267146527927552777824227857016255511544532610113780193857573538372348723219003751801210421858427020914087212385997502936117002846873471613250236799592229656164726461782316423370250541568245703347301335693874938943749369203845381254061114442923913084064581051381575224692940134155588067665541657621983027233522487352692175077910854881141901087207484874753963546071759462909538375141075118804582598729206661947173649452040038254843738978338758002351842919330767616360740494038144065917870913598602269447817539132073966621719670578649485792474920235725342126539801169073332107791430989283057234853284081508663494056387535138770306282455863785814293753529788398764679030580647890076165873893899837684223478172919592502461243335036408062411923799894687092380909420317461980969501606426842811035108865654982769259482596309616065543985037373989234951925157854170293095078422282493156153842248188806548559406625472391862983521768451563709426520687064762964748916458720751857315406335563798411014406164210772746114993766267480455128429771377549757273387518722070651771842720095335580302770869184967513671322049430568940988683652748536829951642800581379699019399756175601720575154707727952586488035499026919138234314934957234041080261381422810134961671776381743998843819137462531423052656734859261663665452775319415829805599875789690857515302631958073159630985748657612774310968567423564287197920407620035907320322446480832205707826625207883762183915032552089491540842980178844995445136826635169885622375670158150700179881220627580593316390436076178682988716524945715377352655400384327423085614608232126616752714489609831511068430885612295139332569603134610289588040485105709427873245672944757610167362831019117219502916610375877719381853244792965987845472405294857744156653040595685685356548909941537321909134261270831468367708239019530764831851538961437349888425626215048513352185809531150224348497846069306799150681580769351547021982884565267326148263666600863972987115452007338887339275748376109461545662923227815672444463885065764172283721250020217654095894756417220065449129785650011949040054818768521534886463326908999733879111425491840418890765437526792408491279498467264610985040606361537515174880818400407460323428795278679660996223298308934807703654007228820952970405725050005698811130587116562093212750097479523071452551532747707082299844284700014925944059049483815588840945805158758990970997678048055340963004631446872403609172279293728607252617631889747455307858866581327909736716184348582001926775544461297522379671882968105635461751025113181087468221949228953940344208330956491288996166057668318608793521579856505211443235966870979200741459920791593663597259945487177983164123118190230096160167848587287392083686095099626683011228311655423853902630953047767333018408695307004515711838534757822534944280870972401494270278085332527997931410584759771977112371683861124163453717612161968493216147602210276093069558695136718866357141455617138178841735096939080726004278218266447568091053056665713915103069894900698897535565583808368632239107457230104990164406591235949386156198993339207726603753476129865165518943565010965745663388528253423132292753970879319712822100292846578355556949557516099261366614369967345404871966988515918899047478999951303111905683252057121694596760421483990877029599467244744460127219516475382568752944289771170582246084992349673635087350062430002465609978741797049624979140308658499109582013753234132751431088696635077114657627637855101570058861095959210894215756549060325469643526993877301686771289583186598693480477197629099124942422695800156170450891929819265215376634338514512692274112692409499087786721314522614099361052691042985596047224111197194186014511920016159262073082484359332739200822765858053947888566326804164975406787381450394357881041464043111052152951886900994108516350649555279714957142584199572893033574776882092048242648441659931980046603887077169044448688126115954419840060645857876378281145377170910681304191201237115560113992501599226039272473582446251605650255635041497193847431011168225378485701739776978260166005986498706940416923988996724572683884062255849833502893419476050466807293640271329308659641039850520727501310346239236666826430713893699209690236286198431910127842390368603060476460570003152586982015377395648222649134242815032619487702732387704589129428228728974152658963340097522570564538018544431642199429563171738472167613679702621530483528642390412616174752429639238718029298147276915121685060605056455223108177376149723254718949307035216130186848994430780164411841986549706277597587113080894727253466563538912743259941678753879338840713368818045016827898749130200476326232089479951334750916682375554558378383011437771748126447968013536962066396440150793358658603021031642222785218371265811611367600512546124203776839903732987956574795423009075095326566889913038900850666506587408706854893969193055028132479257975516822968002165184219015325645000493882220112081079316596015710469194663434850426700407201906282046651300222146980012552608275574695786106280078482153416342422022349454456830210954750286379827593342525902208817711320793527377798142973405034230497753531902339920341135528040690276190137291387352076223427919072819809425086156742885417958293917238159572690902158146053618428868742371179440261300093325405779896972036634923662776182043028529194820719324662582256570209541379865136855568049014779725703827030809687921990012427366859075692482379191777338047371857077832825357253652603946932544257085100708505588438444643736593966360936410458364051561340307294246900102643178981409238200400298750191831500146980436715578876468712305955181735396652366761909094751494646812243120458969057914939780504781299702462398335139575970941794893615469718273152100884960897421885025844613589185159500925869301903561109549357033815659378827951108736296720553565246804755504616235628431532022995587944528278387478704726377576615795939524753341552363843775563978732446666709731569709017196937772201769028003843292834883123022954750323765479626014962401636547726327041084662705307833318937007618024901978943546398134093935149448126959855597326658929788032074174789484577253431193499873243861736920985454461303377843627178617733559812378667575982803996096481178046026334334951679212742364157205330315991230436236305724561150840521792606398870495743623200604721271033724972950958431362491179412310006257834882848462791738829604322788328113735459044992210977858617151622740066378145168416925669284579082865363894719688003320854437374028728984226948799925914850077937201320571992963356874197797691388058225037075565715625848770498823034494449953740290471305989504526183618113714954655926992977537966066005768914681977158230215057321979083467609783615639493157235572514048042502801541411699761723403540869973517092421516985323523636129951327364795511073220847012529083410132404711011171861166424095828304528986814387473226372783432650742578268413696559455414875163899287742884666993738983412923110558442567761865384301397233108238501599555357773021820060490468562906333057153391971244764047214273923329916618464602720051309645324146808372496873519976022743509093248622336279195654241451790184534705518647061537635645401398337205690931130517690519421309060868231994009097063736688498983000929146950592610340392811012930001092889940992072505020719313214478174690447753344638057023240588966185329888106144129177926270579325557731871586649268337092639518703726343384852465187208128502571563703769784255018660069964708936215089981084495499550630320335520681646578006307689046854143903778580194002962153627291861986940946492744179464277152735605010576966916517739244780357266367452872323085038325677104348067876063030249596276510784755382133592416307869139176278888542269738515331462279550398563933598494425954271536654772103146756758465505783426652757840713790508868898540111585526923543573168879622142135861405073974327975393582604905463188636470871606062754923217304238998117774348301197865259935387355862750259693750863126384257973662392766732130930842780190825201262616593005334001486810680468723491072201110409912165686863543143095615323784820616989652862346443436143522274659612121906522743556709118613636899443343790199967748940152057570664970723565288570181352939853540932766437931770009273884722068382751163747755513378525061457041274486636432853466263187824477107306117300160077343441183759037760184290310374197501427397025396119560965581335540388389631212191328022162849700240424185933507987898896666406742671498720598594426154606840626634008907232494137736978891775376197154661459633518051187518469776977532511253329358562714500787681981257534403678794888930989090651340273807972631486410958382112316816042520158080486170643632844930534945831600174015187116055509704150981000618686295464067058391912841868340582855472703418938234078138706835457079244665360593288423030446090838577585592994702946235896872768870734196927717910928071955663365365888468692349414028753695484062509904103467150327229368413899875816679044224805986231319591939162736228569634845313303941559444835999773860458844078183152226697315956464121134842946916436963078322454037397230124137456900033224799605662621339117645421585448406357610947642548408515138984906968144262288027584807223058381578469772116136522757166634555938495993513747458034022400856802140117515926464524721855549804711904257433342943080430736066212648497433954660726361738868132085659297159615068154364610575861296169676875264268110920985207218706966733727035229266831769067961476157187478121209722141238504470389027477944456433987304364174910990911112601622591762677109246297981531072957536984096104391950062792741565698780815097447814126636451830674670287655880264001291366868574634545284368853233860492139514301742575301376797170769605393440697493783735194989977454804909783937192240952816218602933653753960408535768521193119017828024684838262433585591794675262723396729050074524469744323515877179951382244969993640936011276177309087772147397750998829119828214856128460834984888783726359106208850311207037249687182011879461114134056309022911228749723940177138297639579521989118112182668384011256804173072908354669825538703544034122498424001290294364537082595517088373778943871446813610423319996406931303837799576678127140553788773824085767483347298445061692574610996824756950505353627958328074857094165972167684733785248304122306130312460066966627326246272963357336160584206834375777683061124333088488389926605473290862126969211477292489704717370293579623317133576697428908218043719168480846178851161500321795259959906287406018221791643359797662374333661062894714072945911025025541183381632570190147734226363915538810051395064178305274343863971989788843925437146847436145051529322798002029079559380225177056302341175902169906929382907314192105013278608353144838008426748117520952414307551329795367751976586534868478056805301489488472225502083144274463424732349997531481052255671007106171322596241421046495759480094697153413800224694172789089436698136079135935386935261239427139453765970221219654659190387522078960914935973168886932178523308232033286528119750028857013931213658572053264703380200837639492238393675386085379749878760222958778110412141274283979797285717012886358162957162262924683064202242568415028392233989499165691112509318088828016727833919461666502521037659198040787366332846888351301929968668793748253866416878980604024616574174818153894836355443476229880479969005986824862700265917652118709814827618849845121625319017169477823361118601272882415175380369738207905836583661448569831279135333900090968264210763666884812569900034881649534707685530780715847675586675679693521954170420638956355534130399943908651234038082261341233092549738304337472193779256475787757968229605632893635438316133733586622317300503345162961223356292346884370301361733776960830792218607889926623100131318146477479381063036402361215761251449512173369542517956145118659847253983363834387239610939102836438139665356319105875112315683291510787213237273456806169082367869703286013540777806699158535663163396850816371259270799522091810353741720561375997995846655231858786743718958886287110756212655340945509012949092368132223283464848643969464233617767817204402215114931676313709135652790619401283678976065380027604465798711613758670657083538003066076816300359956500234769038536057242260659123599974560652776308151749719413549082784703067957316535662681716481715532644998333619704629574592818059195935443989636186588272640051884422775498516054959074171340715534090890290860942971121615542831938210704759411324001397633949358355348589635934659825446119449898334699735358642403879617744280681909843103974215694245926496612968054222987338213933154518465939422327722200181030134259503594156932016389635353623962846812517776278756248168841101505548806347803168395925260380969900168189212870932728108722735505217566851260012978700052353394889568028746270522962577280050573909410377488404526625349803926117380006497643838740889396425391104944787869742084600731642613672514602284512922115148286570103124060946233056017237923663909344612098923327606420122893318499331648840396342466620815392616157653213523339282903410890306858374887204995648214555938037570733276685137783912556957193098681157943538078081292308290041526269162015045571598271913950039507649551081265555464970128727909619374330819723207768953638759794203123785186107208842627277920501364616020219321673366598778779573304036024776206326784500359598691675473016209726824308330971826659642203628817312559530202956775123654572512486491682648666862325706104085735226545504953100639874171209774237406819568745525427767192354314831288729714390739702649296489495015606604463821486374253014409168641095277926189436317601484475614205372939579240071734348341921419153112185769083848875954039391337360480788840694614342765253393976381958264197169266100298723966933567949504568089370465922191717001926004611073070218570091620523347076685664711823402059005560957537733838117792589760277546708874962432594447681795860595423377870613734692214609421477928626626452529582180843969152986157768957930392369652628342114555347886723514154203737238940452905136663982083995216419642149575942696511404610649108021204077579159479432591192976758680568185007243310670853550779297125326423052146725073477717540258577567990591047597617198402322050145064875863819654412861125719935607953294936556203000542495307295279425219546986144324722274177493232542485516438420538595354074983362483428409093857819464260726484817904416602100590529766039260582092379023947902257242233832933335247969212159088997125930680073332653142892430435038408314532468048313760802703545062655543485877616106418464951253858552697067687085941743075759346742050743521936712123787025190782166473925188587444205206832560464152577250733644622916685991858845160185949687345266864277412820624675967131227191836305721077907097094748974891773582167192276122084242732372587628980509403528403440091696722711563660645276799656113785896494837888167306540324076079913700141095788121998215540188911300090992110742575986947738043882762976449392837485066783524201499308116493128970221157564587082212578944392892547276659391675978001498315649669563287024124273741713408866065111875435110880437231498117689513777518637850786262943073283060709583068633398082822888046414784197288912583212113315763326829036568056441412888337862581029928661186829915056184954409085804551515430771909204904784491171013350401601043026956730479682402170553994150657494089124929478453471968432736441887299678512166164758396247531078624678428507185465906113016956838289460950146868467510847080871149985476499629056136844549150370553588037692600215589832793720667825964934096227764448014503538692410799479096629905044977744347317766517525410571136488505150629166661289166564438805804768438747770576301814567903128791469186194371468892975904328075918150065755945805618834467060642332892675755428962468925506413514978572387143313859249902645796552667232550499964340907418848418607778566229363910903991578661138030332337673374761195882851267642687489409975985376099443386997734044509760621190500415441806053077575292675227239428351257386454647759496128432988602476429924882401861198960865092564927862495110281950561290825769912693066219622689649119127411351504130243368487614793502453176514393082810745551199263773793270469585729303955859519003627142583479671226633812649121349859906610783062225266169783512816533108275308418248016348859493847264911776350431888998775463519921951728400184904965834203370115697149622233311221714739807285961397263216763045971857568525945916805597309672411466635158357721062468639601826062938160941664180978026778978983313722192736065568501902757016788652634658541359811674441407025682184479424520716775640700118369751030258798647725992869737917117619397225379319530433401293948518955651346031556901257715978225320458928389665708856549361027673555714689666069994393478800101526640519496247513389110687140811534250939006005165570023761913033998519875280700735239965611084343234235926979449792477865549199367806268218717694143535449612818911543135369187166542807451241717126451011153092245108584943756247252508947335982968314281002255476201344771848677259579025944331537533493610783989889999581014466053983259450600479250658820679344500228529197058952392624850935416201054035671916160647788851848217116884855131679309142936708818951190062092642389222443665113461273961432254537737544562505652679181978446554653859019069503347622901147138168466626128753492007065146469440392189709946207926135752653336204111206207900819695920665953100111089031077592944833381410852372254232480796431178999186290922528280320502019576935435286733296482208339861733804778023844872577661482408659452100303419420379999849674166161109160360140179500834677461898490318084536917106716594295349800138655590301017657433066512641114250121013956099110636436941091733803388687686766448830020359881510262550314295871155542392250062928758449318560343998128189903079421124782313497987814525082665879529960948491075751150633733943955234445443533306789008656503778136075213985472757452202556612240396542848941302885723872236445753669465577265889814704045635157648765671289927198123913077669474793279610938808848134659155907522431192124086976828503295613740606187535425078671810661741006304723685483614329206386767894995516411345112610455866021180282151338526951422216609122296340193776499047946169158860016653137822138369441725814317287914985611012731311326587628280332021055243750574048637378100365126291043277072785845921120130543206774484898885452917017873564949273717565630324014248729958971552577538359235112447329041652430563697505020765457434117693706296747650330733443197403936802039084795153642960597153959041101960330836086158967370538254363652434830552170264611029056260839273162140189651861351388517905934823800436283272829718358537011652787604049474873659516392721922576976511683640993813717099312797378722912805351801763718058503780586183875309775710045726577217092527873960493198998790099836787420333236839527614391452402150566773370789647998760655017765742315823068533222933499892644064294746276437825912202075580622960564298003933171496882550207362541339393726646520564249541115423782144705047110669443634736612055382442431071527807541042389121450403409467913868124242154977645022485078140958054536097290257104329502222697852582441156540140130377778788477009862055794207512699527455512360635636706341788976435977479053912726271399428879650725172550385231297643488928408828969516809869206820953186972630285623272167911499523911751425198457228968296759041721444808210018539159518440855712120439717310347454063890360283934859555926746622943153287781924579323992758895277056753065116818966165591201870381458404200515910447864661960915971114866446616238106783753722851826336306772628910994548385185849580356122153466674107413229352858426829383613918066902876204647833100165140450487357385322397536719035233072451294252948173414902116845961134393043435210560794858200580500220267104164298967395275085048810099386955036732619033989852576323199631105412371206088981705512788656677079096900430260702092104758104853067170020441539054334160877442018961622028433895959248996090396268638051030702643338168849581565112034888828717780650535345755879672029941041592505155222154009768593526651938569112955529531444899474954626826279122423356561707846563251100726453714959821445869855999284578415656332723398675312704390318403177260643467037535182814463750026492202674920827115019582554390078685460791236487037211908304675924617072748414800042187473232106706276680845635585730347888128548590184922168988485727298368766599053271699054427579088482872484875014981535230012100612165562448583780512257144511498901766766653057647117452276376439192627342173139531457998824802226593789754669238139062101088632059285391531586809541015531529453401533258066507661122113947323798377965772623741919101355336776625985554379687716483933890172477511996431834218526243790017742952670973896828042788014399319272334988959775439790944761532171002080815137909766847676206090177301997215326013655378159602499434934519483613354540027494846562029353188627506352332031776752545774994025185432711277484173927291249860705100582175203644568478860967910754422283321939348607099604106519033830279645448021231605980119736686565662318728812944268306426097458004192007647907007082017739477617221320026515492193430435763545181230730334583639568929078697026201037293671280413496097053395889987515727595071259945856823127249630274366534828279124705314216050516393250064682696211272445161440231586455741922112509569024009689204772226082961210893455132993602200969894905707372125797698436559877341443068696926602518951665656702013175092760266937643912482109730098298276630130468562255031545610172749325918953889534127128128682578821127288839893991099099326006165967993083147221021309233560303528088760507336678020989539327129774664500440444668159608572962422227462305786560113677203256647060837389933669747204091840982168551460769187473395171350737769624500211052712208333273618861894217300119901325584003305219381084867234361066709212278410241063374243827484034377273255917431745943706962650998915260816871133955875771118414253943123064305400408322188502335487204088619545095989359183053655398386463183060714849572482490823915947971652472939164246988864367934897694799744667812672407105678749073720040468329327464015282216278822914216391283218499268072478682471562114789703861888440028972175476259469977765863008793487735872036506450566320071222176030926547839724251902823987953856052569580169621147327404598860569799810589219831112856735553174755488899323924438521142970781426880122613378151300456235480964697058888587774395604997953208661626285633497771995204841436495455052253683740264680093921861322915246643498197503864863303256670060714219586182955935913646510709698867273023810304793881385925928305977900160178123137130674747721858651282319860631213332661098695239422982076546003344579303167704623648564667199708232079060853681206137817429082041169215566811754840128198587405504603402289325215660705871969379914925612437669396306972624622270653357620892914005686187426215359551386837439006274928448288688912456602328274090441392276774322219463231360926546100326383391163165906687075332619886227675164565513762765637815088678369481711630872533637118696524093785991430497597279194338485001754510495521681269900024449991277343939513723310911948692281162711467310136183383669402366393948099972576620345718545606795899282780194227595249464278792015137095536599150364372132273721754193174019380810799108911846018826502233968135411018186841120130974176019240970623406035408898174057287778531174474381784363799768426854438105081257181079450781885270132574334915115586827387936892335469488635511599646328878715927459709677552208272588685183510078829315642021157050735597112987072967084560237934040669613385971420445287411589794100162821385868904470121831233792700525296009890954186850462689473318512098785954316485839706092659758135284611260450091934460131379577578177867704536120263272875056933931145611055390126839554151356706095227507518510689132370806275595077132515307803949112612113679360331152766903954762959294853869041638744519084943679134981044629100017241254431555421949798553721699274764705704039864702244557568079799405641048116777284476694266920933233566315050827228695797144980721932214179096010423611255974579835090026190431407459190363568691757889793454039643894394940577123881502996635152546822064603788539081579972666879608188107591386653747368415014422910777885578152508401425119975848452677079528120013998809074050522002108046582528171568875488079550368594457386542813408690382428268472734982397134976297049149472620569111191303375415055955796103835042179445990392050191614157972647257231861851345680713351662386398969938567622819211600030006277819696525969919931450478433410395580940452421506379503694441703636122735309321929690051943547720956374983732346484324779758729109454187479745997764651870828208510187182398177309469616340727188079177440823613522588709822872990504677937306848493066307428998029998135616663335020760937734452299758015832857612641083483041686866800501775389780352601470291312044270384138613026452499389365802090204305049955823684571598079473009827823850533169666556389204371843902693389867309294692737592840735277580319119346792218213125858031025524856666509194640336329298131372050730386657926798089908148697126464797717661470258525737616474997646908750605869263070491258492122136632448472697357518775731304486909197914871750551196293323844438494594677239610412797255710476850075846538577810929708367508759414796545315836461106155242077291582831536722312158467654891944845572214808331966172786441703106856060556779966539951657730922677217638650393542209437256126781054508908463185735266792572650206276724251387891956691412063731094909666428452210905133766443311508328375946178793100486495794585715092363108397497916915264756562590974012460093484849905366063950279692110633733802450855196015114564415826406455639767669410763059537620458386817134501628273535090670344037701564255696328375942252673006324262019104255366652052452067066310380795726894947063979745693880090758110646029393156378312257408244604827281707006170518510312878566729152752999218667797139960972276860722489198515483932675005945561390236839215328771065852718904606790008061644474394694753199152322399973913521826676751408769027230403254686391691500375001156488762301105177309819119152210173845776505140508326628646667768460645408069868017745825021655668390594595319362542646131896595144626685205817555703864837694830988066363685174850059634423145255492069389839670504390346062352420594571886056796853166848686520128506913840070642789937477427382627612081288564848313080187954378797211417576818654461476305990300057714162468902790945468570830247353492437741473727919010406221527132400298027052474272108785466597340573036654202375850056969137638228508574024721460360743160925179228622544687730246330789977343971967130529662604662991048670928153363495166099998100223494316656694945832258761922806118102399055032822901912992515191547173810388292108209511347273805082256832591818644767737665406596716938059713563284284516600630873193791474424683000401032756021265979711792501799605162399698232263501885849931110706304268594764494356363648348201652589590749487346616558577933701083500663732960257876772379316917592467267997547389809945941737921323961044105685832298669321495694537242063980712711097808660037051813618698636194697897322028485032856627868422297774154795114677886483218587866750252022032922877439475548210931950743861501598922566357104178886493845167077034414362406655465206184429781972014054072349195973827009969663159969406516208335923598990388556019239117207820030209903272763244299876896846035209458194057438525574864539626378503291243096466995246266433121291895927073481152934081228011765416548369705469558189526872321204256060959196564355363549047057125755361362585636944270758514749203027015489391608357799277832204427208608397397508817834797773131431213245254247386722184918878133826475058169945943534730156605651327700051750338529524772577775848131912134193020584649486137014072826589297393607508088423743420985657098487181587742220359976103816972781656925491225360874857892697059054776680612160929398856739115640208642142019099477416288506138342512262935173637848205720181977983928958635192517823893442431752056339112058615993336413979150513447841852363213912506192149730730030321035064408980872182050397618083609285202431488708698714063879957049200457937518095231636370665089157700159123792869441223248612593668341536011962196429288209899814905323222582062296512387968741107529622125214994555029823702567383595437719572747348731124887297052962672238011412089258663233014808667065592109768793776396143301095833507620292426583918473573969728917541863610155109186376180377743701123117226339701286004243905104118192218558325964092383422942948150765035696435934173977243029831894919633400207376362070462121790218914898756975794989343875020566960958889693741538998596056770132457078760616827543775114181547626401372966053458999600490003273421793254153452572086696983175440709938911190214174188247475416924767700601129807850700395837215470907714654721573126578475343836249590267397245011613838185633303441402493848633079793450855591570248847280385317479338947247933599874214551791712468724616795387510789248679363621322798135648156056788337573890283724312368991708193169695295830186351214959303586045220067612016860661512073330189388586679480132739724915487942989611136866210207402980970121005998661052361598450285835283723967181559843220510001466060563043384374421256098704083482436140132683862248808830381235029267038819315101358404446396743912370916767829510026861122964293773531183709118868212384014507167707861778314633186125387350048606475979245520489767431481746393930144364982810233684650827605696844698965492448007818046255378626647862575412719887554192061287614785127347987069734801380908353947356088817847370812810696895853882816450478080956697826020753381123919986240571123337448576723720988432906688435027096334705239439131348246585952523681756459882568934965583199463450125648897288660424886797246463717126328526158745140685842431030766297492717500223563466604158527343247767155198669813663384497839965707580548136030445180594134085189202504056261825625819270894019728891588828015656928668804104086812851847954801023035819882251128878428324729579292531705331143849677062690462133916829898017636136171721433133752698792022398815210836710956405653376247710549051374151089631732955154438973388144032524127113004129496626012284582904692366919104980473117044355169685439708411085347483099746915119548500333170023395153515074019708918430651828259668299700184787827823726918366753728978585773856378589181107515092348177642313596579374892111722722044837291172284423879066280425021555425760733728227536312155869063413751020862849104988128913742227902577755186726280545030997667273720291233252155875409014496786446412327518195965911975382995879391848221482944142622183254991716639540824575555485897590646287692988699167667120792285552906495742935397291628456415068103280666177252620861934490903363264825590248238181140295331433116890500964046520222218496681943965991045834129390753772415119777123213783090374233308620796969739203686096497407145882102011195338589746589682132762810673126259134337611549903766634353509951302645637458452443415238983767134480613337484895450966141640311108750320439678606338743933297269850560537613428093571089840614865819003376935922290694016301001643771144102519335522570670767826621254004328459459500660288347947511341879771766423925926470321501644745394503943785338705225992425793061486742506207945983488551574632116352760328305739805708744584958678050891190476836364346598472123737104793323786817190126245062793366895427234589824510903825054173605491398066377015911950963628961890165604349604531444928392005462909221542556411034741617307384352940735575325910054871835446321538576799395307309187000248135203409114256076904667888709094303657224719053581335845107462742277240696218421156810978128505297910520555449291847627745444169417327479072981274473992085366087913609666260766125809102206072462405612570893659649227570034537045468555581247629609049592990351348840985431411772150477582081435187824780719011182930635851683632976886415572786234235787639530522068521024051579793384348508296046355052926947609445605618506021095522522563484873632358211917100910174899046380072626146758298127658285786718904495561607998004700694128741374557531565895828211771140963627567871569871290725012018285636955241151912820353147767231134247344941206678028639127122536624200881413918547747069136149616115201843141977573362746301051357309490019938910445058757356121529256341456231073240430598437023894899821017489229202523355080200374072393567375141886926598730388515565681188833175782366133025204167352364282582939846212187227581288348497533646666346124514759330758826839324835258025970863662917070210040031587527358787710274724859619113405275880458209291074817602912508635375673610763731359139649388010414806104996955804133033213841206485149676356187201016846416273020704997385867240211586912062729171805743040336321451611020981924446199618066993288702624582455116363700441142492500707464173871690971977554429105504254683604156309112981213471668351872083369294894771794254088839918495151419186167380800656775749002447654650478685952528685853873742489379636729914386194531507444151476951408929168257902976132527345450610565915987659602802296087634935910704016548495375118623841111708028510558986060783595409117413022786516543566127016758061076418148650340475275402010399691698412124129434911833654599282672667312451320858619095763872218811835520979929395141150463811777032353083341962130148123235142750539630265870160289190518462853319008051827246333623341177464975111325933929772453361067987570190346144770655212999184038300004918745234633865252499538917153238870124837740365733802363291180298932418492568452855696329976261820877882538281601187809318338554624536700615186130745643811045436722188637640462336993681465613126618240468994878411016807704284329637918436880097507321788457494090032008638830296872695299846637845193407141492679187149551846277620778291492308350130946553042807890122326388888968849268151496262981931028078540542103231294856770779095876547041420704037888725055575819590260094672401518773890892822101283744266909077561314691450473080004886582912827496595881275976609885376733205304669096473833813316334675379521034367137182579562653039690124720882563973015442831475573657441773602865023268840499221894829452443689529082061582822469981789360963829259092840045914446373161384531582894802671008437080087317175118970732188124575755412656157974505900019731680883746416695695030940065119676280376152994847014738944588030735142685304614557192071336728794851827290181554038762783452554434089054131052023508046213329195284389462781798842579707433980863301307122519507391274060128560340585008141041891210174519771911843302942427691921368589956631031083432256522013027432035557566684553686933414914271436124489847579256994132278101071143764910408295190741343537054513926238648317919675027431806679523378425199840306589250576415972813622899501206263501710586088086093598852908808949150150396661613174264755038319762350005774184558726073252128202287693127015281385894515237192547640141122761845991303462899286612547476634208350378952018293493609046501573219872172028501653375833539352458155559271278158427356922932468128605493228329917773811661078871979261722588249778812073795549372063803664936653873397796701225615064683122349930607000527973735899776540723750912252676328843012841526044856653835579606601306173005136285320911960809749467544190310876691270899080845940057667783106445198501684585957672673321995339703907009239718412683340605334972613023504871885636065430110127444995607287875444289958459119796492142501889847567906243475045690702314628540867470929735072457932045477424279311692187846131626388558425157997382419176996965687930765270294777441156451852194563066359546631832507294425038889471845946863571248913779701963681832818773052608276460522524710854668317319417426170995973132030528628542787596135505775896544926799861493297541117532913341143093777097838022180788221707769058737230676764805677667207190132736210559623816641575625814061021272948828926539706905323089596107047037194450491567139135899346795024565992157696030997524316101141068594364498156355371291461175737756817400760142427537907069574817403867131044060916621467056327709798490531576838178633714727743030295571416197777897914399662976765264241160543385230810557419331181022735005568734696338729033114347135132781939793187495419972317650625872723535135088215653480026258808878069151543245370154205046174222082090018225366117287777817220315204819528480537395795722116237855382602678644630403524690493098046183262287239033523400118433105330472827683050063400657321912477746218545307242547711577968876997621127865810813935397814333861244873520162259576263651744952400389473435022801331909059970711403718197598399844975245630954056305769341800480261325326554169042949238515941463603945975913839193532316946995080409342776787851733494217107437655987830285750074802668181203960428570600643715892642533362488529250371608272245477508934093748131035530112674607476339442326378423462854471241964602459222150120330430578166840988103063729242489409228883805221625880297310309640815811859719108968391531786938675996877086066367039388387635103132322503241811031640435892184169507743026321625668381225620969082000318900139068586149936004204607500553709084239622132278724290171556001393342952098764647433970971555309037931367276020993099465783789313267247625191238588862262438584725422012029494816565678651459715024640783935856029702530716071623513171107399059407516522747174030995091826359236946330021350364566569265916331193821713480271089994068995706251598677680632984595841631846803321964419691109346327796390969435373333900895511655721027865085260380383575473567003414401496300629449119395282906910970134800675198453388274526475710242785847490043751104128134538960161491728454260917054324655525842737197619464608303287260026619482584625340712268664989176517025586168116948184203025594299080256156678747552610459532752451562571585056530828579843987921650602988898278982713631849883718688226230893186157161906769791958887020641810130708880543426757427917752483502329537714531696067393568972832014097373536652878736990568020471522924735850252435709980297630122742134548072254509689063782772059390903199449851112476543634769107218397166149910095919303680699152961447141480610426266256580458329414179512381439246569654763500819800132439306058776793819177417044445294385158445963043261006639209284898553395924092190993755872280338472041786270568667820903628348014113705584686980377395400436706465408677340690362209520692744537946237767761237083188266213990318578517575639332409399367018016880923618658226397469003663986048506795990396663436399409946891949940570335116672094801693220606887037702468239992356080347107688685733448174977109189996825069625049955470985744967581687291548751152085978102050996802327893501311516634472148148629860125584683610847574726586166866744485042013657086573225273119843509644395641610991028860611090810417275161282889409199784885319117219650697763262380379253079393550326521460554900564873140662741885617745584465730797542936811367489418602539244914860785743661986330225058957377104598665445779829608178824538981592742439101647811829292053857101804110030404516654940860590900270213115410280623314423948285947591716301862088573293116718035215093426831371499038068683663872556307579324610662883622225634315422270609727064163646707886348097538066437722882410508921279716462170282452701404486303656330780479491890673097853312141913679907612402395439599697530836876849306942044898924272971575263236967435325342560687224581385648080383002809150599595199280069024207693201378668690478723959697888254953717486753102599306403333847693219934242345936503848539111186371774074340254416290310874644586843395367942836593824615539986201572057586105994503241383570052905282906492845077064346191107988827225026492585440699622119993532138952344971510533435630084989589874390154702207368966935171193051712754370626901663050610908674934148756209209868519598543912255451642838782349120685498660239847797248039666307727520891269790403916953845857429392682334669486030241039251032826931937847196529072305442591753819701507251839400131224183372901259384342368155451764668487488033042932245835502373320846877677146918880648168471977924000980643506521471386465511642468059275425792752010898702064091830979461601550312194631872297070029164994798654858312820162998794994390671219493231762734536140143797616626355306355993329641492959433476446814063185105615958753483470657802905138934824266021166806114587467740003977634073068894752100560551859858708730175411738263228797263508233842902123200376673334007106235072847067941920209685352563034463516465657064559872129364221571979562647081798272123204053133084227164944085289150268067336527820902446113982253687325638912562348762293772687800632545125011812167487063648909455463207934867394997309122161094159839581171800353294028758724853139834138966698192982232887959304218547077672702454107866097073624774318349427251006550393152223639129940452677094990192801750088461569168070135082790469546229398406984011555709015687526031149166921579788292722560126119180141048543120371137306043373642824905475784165489986606959021865345207714737313688697134327250349507957256294977801531679474556861699062489687970279841912743674832011987872729954165285148273780672887680538427000331108832417837484193469775705489228709475938538493183451532045590361970073510866123613222072302164120924687495297365633912984689756028819712658359994036471377061574485015538702442640146040595872401988024486179907397345294898930507719790981711151794920095838789488164264339619737901797151722014488482507259503201418253889278243607468202416160077205257560439485608556981562111306109396796708467553401389774860495807040689811489609712650622574222470161531615060528539181283855695844385245432217897944411409869599240896930963829347739864166272270972248502943588638988684776509713084831999990564710240471899352706974371182101967109094186483551351131058485374912009400272784309437161699887914782999121358333517575127363728394123371708104201994218453262096544798293568607619330829002169214432389462579103697044447864377883628571593373411607904202470121994287364352044830478294979930280244953172012966526594835606825449905490198056969073971677277231663711625140869513188704589958976818441214534492075805599824944442237790517303865170874974698474695746501893668607675619312056093896404351026523498578910869083078936596798671869489338922150926336836185637974195623172491927324340255225248756825951996122472777135498639038268424868230868127234375027229925280421833244610431807344739458009316634433742730906412711597569714496733469923764086801832813100127080008028486490404170274791787775050937113678334004444186694148956979018768786832524996949224896328282420333294460978738735580529093053341846400336330840744183693125814857858232794867712865309709630377563148753034282894295539202684007940637532235278590045163571416424414001869171478949794270984577677260464351854900662470064332055128395840517954940455941369565859743700546505030693156345124509076474849131540650886056746748437735915109213384301381674770898376201165115535407705329848865007034205568041237030947731672873489266260102687499926499516703970508073907751952585993347690434280531445877068606228204993987250727279257250387604065463940092607949748255965266437700084841325163646077044827897168486530027380045516459638377734786990993740554632532525351978268664049987796429172899260274180924849173908592858379334048552390445230036700602812428898921212281603874815884477113815447202296076663613080166029744505854656275291288786984812895999159704361024087700300338475130905825283948156826231278475286030261191214806804209220345420426956162160541354755311204266419884475495056818982837017891626104619970016591995751169726941025521879234990422161579209922647632390051398062663063269468415303008506818073179705686744937271786123895817706108520906416562413818182773375980278267883274106913120591912539251248861205523238103626264817260232225571198013429345355098043538168512958049313381002204258466362803988648225445011753463030013097549084588608024599201183963427276290300919848650175758832671582173867975433508759564301270304693846399551485846971397102615643195305209754307497361128623247274608180060744478465178888916608683832234405793420545291531579801885079767851435834100777923439285280709300485743194178503704853494355483659397728959908765431487986576572088230025823894504997127285045130122520946840303286776194452781455765598436230067701339933212180262219456218481964385404258410291066454448000147096223924272594820802461300851304956340881547174338157634800589646557483954633016953018758052201204896889685978860260177807348533133029550023872724862876702028962823965475649157540446105441074572438731536296227580911992274084937368282746493860088724789929897651580729371723862056600218456604955938659298298151114043291040047903939686864742338310685956331768471323360234823932197014159612872198662258816977646852149062525486594720243067273246863280282982328963762465350753118378604676520959970554484863536957833537748552967926946556081232023433780660462681808420321559358957564177683867893668621588257034105859198142903137550037844390977842043842199222364601091784548864952034247748509762022201119393351364168354487644056116960864698808476586435599446490751883874115761211634856315777302699869359958886211260949918740717098931780327426320921306625213638799551511503955368911985769758336664946852125381609203021473172701635034024447567139755447684303087849001148900371774185101728120515835696390589172929469166958529313848046808979910043430189794082166170325436215919943637380990987534113803711369184893269490185530676199674811276743845972458964626072490263820607694970184199426597449659810167939171393066311278397773613490667015842796238776425283555205342174807640765214257212183266677043478716483873536363304559046606457742787400840677527153928813520890109124811094484902499184795910754487458515972738593464339929523179695540856104888711890439830112685573726683100159623525960489866977776308400265787269833333261756076314541878719324294191234816062172173737026987503985661429291403625153336712620963072419107956716510209750518809497114093392660109607273780282872351612535509207790257677690283704267198170499609401226616703762285943605888373459793252889399207448919805745620454867441405132212590270397067097482830521533887545271164454859301508636518116620875322557240467441651020968930119524534346027158576549318807374478935494945402069348150997636837467426394415747530553230589722933357846191382820764331986829945128699019621993757920615111223536757794528195186396093304511102864122131630806957085966568658701544939804506243234930492518001744582568528268783329186011860237107457956486716119549874348547861162773560732919755606406270760447063581028313897324674123242806183308141637646681884850941335306689532429724209656257340928771728809581678634728816109735872210004962763650934887879735672382446466736062822791552304117778181819191733462403352576822119267957476710204650339370792355609326906733269016357445513150394978169176626453585947950034597012665285033004287974819019721006250409234120263030003695781906384713031921978354663558136283046083792257498476182716918319975591685298145609633902039581075842851061532644238649928972682135771338413388365102645596856544047582649310230692727307376017134522164522298997181609186757367097856939832988459592995348369317897363235317609197564917545543058035657223408700729323124901956304240323204550378450803239580468001544550653267650118375470804918256807471023580252406604097845719986330225457198006442348223036863835313240056024233524389062299118419350477499616630396156411857556979370214214133281724633650670361498152334220391553373084220165329798245998200329377944139771545768459586592067009880359876912081080033788761885027368107461597737886059148042146097823593368397771087696061179462782299824771162315072691947525535222212864926777252774669945132745401924727060709101912801270364865054314094511050371069368134027444809701668579808703382067304539047796966036379151406314789219939386674083348037537793077972942013098393451747944099109123249515030613964818516081759056590195521681659739549425589342383161641800167657035164922313749111159359084782249443689347820085532152094296683692795870498426924358520080846289284153130231586881489486705694007530353964585461249967106762330205053167554838512771616890165194286202674972377715525529788271432758093329591751918653495925715055473299049568340692204873904473539342618890788804861279762975551810075475896845637120917720075269710333797696695718450628133432792515099244753125321653779013881037945567564560121438185576263659299309020150648701692926647407401835537178231283877995842698877562978628678180175587438419825509640770871917169227967715728289023283262642508246202476439737681173891612622553694353747617160343016472808495459288984447429065467899933956082558122550726939081444187908890751187285696278041014674892248697143971159319520556651006053872067855616880177234151596160673268066402261037230901166711804152548414349657094884727365031069440976352064114010872882206328847898921616329976039570637554522517807252882332786170550891529489218865362982432669567438799914688822800279011581891141608428497427560590039935210855332600627193543217894852114024958653485200316330773141274344038698593930077636467989541271485093773234740492218433413312610692282969407014341469087879306541823056999275189528252116291466810450789213923577388449382648663044417227337587181280374584637558910557049210784450210505272274581276586154613558836523523533894618274121964518997215293979472274038438867370637267406782648587499066167591810835295385983074564459793890539925033479880592255189895486760079796565257869140675362968406292121947613946678460368967336725996521894026645385699312941016182098061099563397816556306283771108957958749577173959692537042133679119055355886713060518863468908101453130465258147923170782235495299175654504073029148005809751856842492311568940007462636337499078988263303055794654374791129045809579610524896758872345343382532469847021724559120151371240360779513006343376452738214914069032862814315699143946231148636166815349604581491592915464112350597630961830396715972288632886053216263314273826190236797422194873110441639450513227768935265339719328040400806633700251313037441662677780441669463229552508335339147092618388677470023089645814234562129005268318675031302597266218513630009201910699925534518799736243671445704553631141385014941631748352247871864296072033974492190754802661933591845559515903304520583862240824278219093314349004608914016440087947866151975846306251478941523843205880906449077298300301529727310940164464268700636438106566824527067673267010080049353311547372607335149887538190724930046113098841363502408283912265890390632889377225303914239161942227171926028290520588688566710337246241468292452053503945225602852740094787200200137666063435719746274381031495011116641953375370115199416446919641127992791567332172415241505742841864521923666298990452953097257079193988092027262535112299340228357758272631742671407370820896876278485721533877576881329441834152846375537023659879457889161913649877799937982028732438113907944741118497496187754932003058094994169902805224516265393997345841066077691900329064534674749124269881684103742651906773620181747299275563864937459523008437554148136865014443441523972399952216064865995315061251074093184947162873676680384137472502982690605419580634025520696839006528496627398098259582345871301819421449896201977935995745983162476495797956691501172509215033617675908841892183761248055376761864634125613203282870088329579069530511328055716404339739691743776236130155900592575253118133417659598052543317849416944834274699599440537476324210522095707089983003515106470496141201670781752711969306491630660362156254033415868855615280730360811437013969743011512073979144645861825388404576439429591168737026138394304329865880791840499455734008799807814887628233232504269170706481347177858840300351370307458852434983442238834397512625424870228546911764981679630508625344752914859425684790929086804225893171367970606010224837171387111523209204023866303202861118347713504904775988707772304976812172611042539529779728753653873137623617961799797006281151819359095306845197716325238516233946284939244087876771657117295268430168482089051590669537585150860676202121054094581643048215088767291769001443143030294253450160313867918885777296104721375911113372602394820320464639334157327976190358533462021143570458700896862979663892568411008011520430781074279600681575649288666787127245937205833958063077158713860984504993785738191911299803620020387727202637121329756153999686215705075787175821704560960808783230369958264179214252836577802585953505527912368199584966223445128881761367180829204219498881193941085788245762636601140250424626734693369113703037864170162861537017465460033583680962271774143628386010700474002829503880630274227000650779434750281662587331569385760261415923304909387438218910083242477229336870406955977856184446974007125248575069704575096083274008362970098585487243660274026132079042784734167662570811933610163290342208523743187473099927746968267690722989865160072514712639771146685695578591250472895051061405058544725725701349722250342980934146731289140105927477029275181814366120186933359766481598093565947254601265495642065496136094112388664665940652367337917335846193680913477480121098752870955275954235461460856114057550380016698727437707664097991893432391633674304307773014777469120087976985837505278907954868622054612661990526273321620641973724272158743693447123718433312171275803233640975568098035940706892908725089699407800437528924820160242718087749165829803281381949041373747884910623285263491436049294656029561803567000635109761822269429017509677216041530682327188037903298282267132090846258938398754218188807645266882083383692915107898666756774778818362872191083867578333881268418343565169536545869945565274853798550669091011217686323443327980553165278065926674946820543375240838903821101001929678178571704206583845162657068608651098749094485209284895996217368931765057522781167236318660939633888071725653446509997192292440172192595174283889027324751096808608159238129063267482381950203027607282178069877934446178604022784548459574091418795707605280248693024195058533171997421423217212697804275044667971485199536126305915838823262613756694287767539093033806914609416888947613163926874355056747526618785511095597535490729102494894723268121995672755566333597388420112451673529876443475627143126605939299687682349936177753831484648726909734265011559326237563088289401347933631216867279187702782720128848948415811006212199001439779396633197706167166744085663703809941096798658623972075133501185959346795510564889137924724552558280643131357117089435217431058524781324530946299473646681685862012223618349950482263897256133052817446638199482795663148711563436771825678314295127595288622230630074207773208954408311168823086602234768212573146916483367969543882172037189235120373869207521569179950990854972816870888244004438711928440340946390611203963350459248194485902206132280894942769317576490099746861352160696619216972300666413002707473140790426618060920245808978275773516867114878535211072606148300401760813362206434341524587390465966340280184497956992469747561192832003404095399704244376598234845216854151315653643608067981016868894783762367854520784785923049739175000587941418783374262000507185477803905253493072659059363093799681317321499952976781126955797016269990065089997125524364075887447321782006011633922359642960585296863625576311299335929185803202556531782955703805342087025091118665060080438756699667385356726284604439980617162305839076192817469138542318568901789783684793052355581870125905988924114270297096496807463002962485954507655927607436278383157532158207836043260370678187697874038221797306383666770068143494032567717769006555792903958170341340861271918995230813179537596460697513713876082774784896640960084058722842365410428897218877128553111285616720026903852843422877547453457521203553018417429805973692474116664963865844525830535075831104906860507233062993329087710514518620345613490959077736384993794571876191234569545130689086993723053722956510096444738386286108679339142949550213810353860721976933758011246307916103571974689243700891865045699414156024746323351947165260373197962515359590049908712008417301219952369661478053004589139539692856978277419490857349788093753223488748290444170282550420381091102327841593834954198468830009143222544231632071068349084915263862338121362205285599883320002764147291019631937296651843214399321738321585437003231702106327187736737599458754134713443634543560534064282506671174971020335893115852591324394026080285419982596118529566932905179218814660917853644127222327454477893803881503305238212197900751852448003370626867613411856065004336695995884017548790539487680691422387893631885267751161335871138334817143025554854816494884859586496637829258455608919965663583988638590267282480237128436081777350614332535116525190684428941624761867755038307442293100111847288206552693153169630677595895478054451234024098220247474792601177060272534865521681316178451238666487480877584636960013883543875600769148282545302492636694573448562360502618237355755951774510884209938176420442563340007086111310702159897932915707951297178424217749820121057590327908175060254190081239833429139606281148505061489194498170272814591729029480448575115973233766622700063886797288917486810935242936362442928708489591155906296924589024964592839684203981323482790596808723460150211294910088161627540895776967087140553964335015937878746896157450000100514161158293197589446435361532032911614247453121081565509538749375164992615427462920251165423512356118193617399877019356026197760200153502412135943265965736371432205838730190956931690502558329636738851653225848824043813046127686564388801699931410286685673164412185505244658717442452896481727305140756306672222151736539894748808303267136811150575991855438275477213382212373831284880784482636175542158353163633193474006007644140348343783597392101772890004334963586333922719690681503846224886857034146989368709642018249325743930475470137201481965902320998199339057064865297959378464053771838150343845608216340367037153267629885213152073914528519979259468149229473651589566910724101913696281615176730228821942595735149412640088890457389185304617863323752566752038928641714916664561657392241513012666620658180558249902038976776725957088009172611244559693791696746608900197452461012447390084724500742572109340693532902930897916758035154055418569321912681319555671035437893362032824149223648215629171729851636460565741406428172314016022099552475368016093617548099886618862655357270736072549029902306942552760615022932840735366680763022018133951816135562924732723726286603169306696785646337470919894024304907528119554157595642209668952410046373874879379047683925151131449953167462090326536328116680024861577316558304920180833125374281356013283202968895023147364536644553042720818117755265599311615545377204240894704456426703281065374721165706966057003632973847749250505888559697206070572820712041472864872117575635540879398605640241683090735272840932235667733261113816330905258626012921898163851659095299694519945294135043091225140829389671500271195484396342562028100616634571231298434986010096247055673109561866271014239706995831415142021152606096163862932310282895081896788636413603623044964976303461058469783350191561764388562327094662314970000793652665822649889685976137477547435418406670653833486903682017804779687290313775547458719461440940289708790542884585091956121791014381097715925577211440915094124773211158445683725781618050075256178940013121466776058096170970669504629208463495501021432465037827149240154168893006556877508751722259383299052910241453631919260599802541637376179435719119505582488808169545972082720998632640107601571713214047910811641056066355012896360298423180225682655708715533251973214554282716540131717039533885632444097754873025747705293955858380664694976634668545992742151117109623388260094877757822567084916183785415783692974493745684651282559411015917001747264218884990924989720529208305972253815378473927550557833233450155901826408200930039405927041174491100350836615327474461267779162175584085287821890985907208061183221780251678881215090168850073249888477022539466824734532839859464615703836280139009733092565354978756878160069675887778264297328419606883053830657493914193487514735610624881452201563322266278449354204198453812773597284926922498476183406006459783364873647134010447466042526806403467255883828665688399359545386706572752009570835831106449673226525432209501744134623670187389763445199512701967014389079312508279482202523698182641452464240373491398002255221915325638591575711053829201709840010402579432546232102348296000490823205737652210329565185085790072656058981890710632052263369157772874113256779683009357916735346575188990470139040598374980328918444014114852468551768669060124069001469038771970548459922734688243915716907417672846347439670595715248440600856882647762217996399639498464421709900084960972716404264376021260663047938711532743963722119353421105320485859714897299974164502649267097670034466557996330149564375763726942713636091725256518274883667797046991101796675639433504924924965471758725023239386289592917718416636718811905471988940895577434296981096499608754263818479894600491896926713049091769373688891430008452040817249615733410642710390277297196864972315809781240346985163553819839910137778534541609075543792884211084144869199497184943710512186731907596308048011214557868493270362932778073545903306840906765473130661708934782132940158311974807149419470459712500826672952007343330107094735435133520337869321088663446417492002878387335175605936934845013245119718478257351958215025817262392324316437978749260975728672816231496121889717693589138759494093653811055885754315075662379147049277521122758211810672224137266941257710584394845480333142006125140558872261517112486381100109666955737368784880348660499790250397965150686416842999489674263702517527937381378970596161891917507966549268006369315750534949886545653538421912785390168352626133594333609879845661468017773326840819326105057855209803269347939440881984988971996944760108903713424353854739729097244646680947969805834089707870305585808168834355849621044304485792087163703406777878693220964077109248390085336752855601189110786627457730919337851480302947625355520737025447286448049994007762509850990418520701174477655357366900391677711279051022538731991821224881482775121309098814360137587321170844089742078413616791778132325173540473030136515864474765474607574465978634367133460882496015683388900012359486007306208272936428751539321231934119242594218416930396424425531683207754675153998834309726495044525735973102899833248543002579490243804697001548134758314276931150375144774635844700539480454220000660117456748071619778684523820929136470049345838374979823218870574840191290619236242169941278504914059356042365099146470907198326124262715419599756471778348822744778752218295874133019552081201089688100628264815051380012801004663799063284661868510547529335389702323718841213672264913802124585405445824787239675435882671128112506807129973796892880830053193061854750853648700598452079621028763181971109907607567046400316330236758009635472474490837267613531678640207969780204158212866812269641125421862599453351772877151684133614139936067173116539657346234812978159230504180097150940130075597565855292590317961854880833288131515188139912323244096324718620319902238096462875082782340628629740571087927818294629895537335921636618879605147792578266112087889579746391673713380881802134078874061323439244334166333906813287497446927555924422575959880826732382879550802556232809760229526576435130349066590994840379780821676378828923022298078996543186419078371265348886239923472321077209346007954371064485440567372097821325666445458751123116072559205401796694727465494897192829465694556585166906127649008015604943810244530354186501551456444471836879521329907429957088249083196829521903178559409054029824371683600533814152544578066714366835151866327286233008401288681588191246037841540498316266386902259034314117467907667043261169491018741539500364509806925367059968866488398698557742905992412661372369486887404687047434037357924783558873548099988568469122287241284360369025240916687499457317984466796347444924103610062554050926794345314482742485751745729120905506281937760425348126133196265630636584706866610299249950844223207295847699264826982746859423674477649789521598538793175777715678930599611273096812837694263883234471004961074003258164074785664989540060604608474460630941576042769641032167962627122184468503223932753726192491593327755876270225811942595158353161448510102525858077510298097214135092123872709204686322924216052873754847679209994806951509826055889976605578936726319892158017181750034488770555861819148800897753303222463221383513603756913024447162479015728562766759746719184977025810352768332191127966158048148448149664694820917735222400635187423757859155638154994192001958154907824104591171530463514845061602380774228241970798838039838033922795926849106214581963767168678463576584636606003163706937507811125353780570943162599249456316167359689808996720774001157996186040850117217479574512711247630700762381413696838243253885190988830763370841280130251648483462293136370765345530396865440566290022186384951290075405420302773234176237977942689164046106466656337684309600712856610820943565571670343535057634247908194756017197649891458866241886293149736540110497928649290807723689312156536893213179049619984231965770781241325454508935137003504310523927837778034133082134114720120639866978062018395265264814707387018754051715609267650569209601504658829492095296031650653824201532840147226035256049757156799941364795910352251086250095339994688702599119276890949986051711706984180265181878734081975943837373693165689214258535233026154750255460853290688930858718480943373424301741739216937301262359102454393529786305097032221221465741748560069215245640998267181610545677923872290844340557607500605273197154222190155279053338590975206304532735397863531765175647776900376714815515066860469500663910818505788754686645427411035371248196648634550194756655362934066973968489420399736372370124951329566274180960561647920382244321740970603993676857968076845531408705585620627210560382003983517193377959165830352557343252019617319342080704121032796239432437093609333022916168527483358703140428804962134814730108159175014596766930372143476499147087372013446195145074996098512231444550644403620503000261089111979323241435525933365782904994232282413155132649377962203777824237093860524911840672892274904809574993144520546149810347897119240097687732422509088385844608259587166409237228127754937980520201922224717249171678464379604589500848486967101142111738013346045519468383922448438496609899190320782183615453839900323723583892321452524504092900218719527399402832917755191811093159514404522235874224209863526966742520587771858545093114791928937201318945873432902530095427929526811237418320088629029537076823705210959630521418928185413509738654100439323786898068626618864122698147406812855775530250929445301728738493590241650753890512867653754247570571626572695938917792361574968917566756905235099501228004802522291420377382227521450966695217345575221516420502412837633415803763973924808441106901736965202548653827800878546777181724714781211489963216285695611822122628147207230496869652510432296771279090379234995853221393081857055063884622634751912576388066182718875906961943987113569204302454476394413040853874445120487328839306271842346266831800056377907897483565741745538576535689195345934330566219980989229379785699060634822135424958266907302326416846386767785777478694160172595409266869216575940584632150347690110391204868803678199819852381976035483948855157650940605001652093023034008114109181944227952758831400483760817489087335202470853758659627484137368173646058921649676328144926247128944086128967153802867649681612118514142590838130449749510702811766092792098402735424637886275727077263018443628472176478888710442428014667047538452486348648548679322195579578442511195459816088572474017718531350272960341896825508192128803098429342792460265458057512580665241276435187706208175656448387782834906296851015170061501812563016704066056746020360192595283122851295295229078165257477898194449274531117061166896007652540624722451288922526351377241141065414727862402549862362418683813970709688832347303806613367828320466346762267435359301142607218316367744918006194945277307793664545734868454703129551739357943109433778838221796856009203875091791904739917518230028162575299921908931549677088260397064784167887914133468222213404380691977322349285913464108496000050549189778074789639473124455270012598880230799658505078619359394309986615371340325558947156705943815093398331309793810562988991724671181705181618330973271078299053529034231981039981389862177352124684306558320796832813481672877989307933310265734735661730923263093290452085904315762289376275499652752618999096821077755488334138281599026714385272569803702969200540440029145259986321906718375325096543332508330969603663005960466607652123891152279259562660697928493295224075402236410624720571816013982503935933479324652064285823680231701049900758389452471205465334034414645655974285192373706281892601061174820795025293033590726735764831463650990850363286101123855578796705556454898367710228523575324324816804460489180168432534005517446313217913512004994610798465715175180219259711815774635428395956431666271606305352670011010605729875097166716548373583857262265903637763076039999524645525212263309372833372100745623653166764459229815956087229885122006292305025627834756260106010574143369805931722205407090317970909655483638927038684213434238765080224871039861506169742840265150054183795881164608376140322424684272981757966285957936752277383744480849990641780588535320928526073640762094677293692670138978578982173332259680824610739955201472687726172201965125995273802609883404267412622713003998567839897485487345306273170978426673196676370856805494046756019883022915704174435659156437722708997569342248010539230613992663339126232201143043047570965887120246614379888378193511526364436372406671688920124733886390468407483656414315185361466891256575093828663386059925624791100670586742748908371296932998178832999914419291602002840389476728629899351264150536909873704385435826291246120724619676673581555235412809498431875772248018827622350700741772206057616234139141607281909072197204783889607431893087396869410752902737943994132037466942096613525134402004741526808254318565752217298079640289569477810670693772263448800121723074870475633549686620234424470577842530815830021222112709630539138712209926910675664705713261287918762439948521373950473935149514872363862131336548075696172884200203985152941630176605847042293714356985466108467584390924280410573287571841068170605825911042505135014539050944615486142559684701091850515164236285967176517540916074531456698471809737097241917449323471131179577969978946239065496212657900168353776810402504280975101628917325857115135849681983034445129565679679068696458584210431398339217938582600700218648288324384193575229811968768138830511412017854671559873539620269171199540767337566894946261657316189636420614373114775162533336805222696556778846778968145662264312852812421182281542795528331802230197340224292496905212951567750412128301875778930595559974376807879955543946557716944320731249945347657183149408442656449355547985534864381836602341647231709960475572328379231985301222098167050245342051305613510436657698713089496241624574661017346624834921931133752282995878776900827891642440633398249335313330545688005014222373923071538445258723027200004480981468616244187640873227094493898828289391720687616213564258679428696872158829848436668678011367182924829261006832049409686049212331417123387065801208815465886389234167150706485349920059241953001163487556082200466644152147740223830916690282064434108504022506555519349572516602211311212575013072697635747156612436535598446132448232616657380275002846188720965159159400082055361731118019750933257919306725395191574408785393234239626641196990944714591947084158223901746988974516173841854218175634958459313673779251739463011120845412056711525077877609637611530537062532611279249440678863500556947606253004664635121811209294400364854620498075371977533508678961472257706565388170773506405383988749408036063651474342536540748528491132523686948029115042346520314320615957612466529574266228868747071994249997258130773305504022029024271588221374241201615742345968320575263579212071389914137162098090173031931317251383368481384650294737043312298139552487369535969714860354237636508908554587814460291144716734818556835626942754022340622310289805725895926314705640552361676740177759880898638388283201624979183635448785786134157296168470204221296030617405526883160007138788520597435854989298985891897714109806321918802072343545499086252861570881895754995691225388258353235827973814872193793292562016966514759907727898454283292173949442056341097843045566031371290047454800469284317637681766934592936243370669842809870584432446382062472570336834317281834372357503853129857425926363126394219701196183462759882217784010502506650470996234963350278875978424897993875659882865689415707132915060376632254941588897100752828471512583200668777824810717537224689117410325768577457860481957876451553040376241501694429823461292785299403702414560552498698442548811318056183610354393109909417481570428919376457497440972850463424530084646746421337711586966864521667729932931527750616605502337829761373530364277535105874865438330868107861256340676751646389274035842713682247903814312110612366370596375002443164115915378667264769201316042463005276938766421421106432478144022731329275489031903243791036352351075572005800109119498002193879927777911074658206725476952317527094209908800773824093411048662469408609324295686452999125624624731957418221009265044006171563209945502331868971224908448574871306947422259215747588402580164685259664650368140761001029870656663579088378910488811010248252624180067204404067786410536839394008035471103124742564435469103150942056152710397242715089969221175372341355336022146630001373103851382139721535638850156451140926224738515784740432538546510987557904572600512286581491068703606281635182637469818124034879460567252945426203630013428973473868441176681643599566636878270933079601469745624931789789939842042347662146482752605245040307373725493349329337479817508152959278076030878142075540364796167552212369070255465678246204188416133121898037829909410684065819796892268961032117332205125473557536094183014029274554823522575396736915060120429170205607936248155132525088012915913427487895547682702140707949191260201453488569125488806684085532135461640218173960817147790752362991675098718650063722184264802621241108572560662277297821658690283612701557457123475074744709871373777928911774129965347746482126640456406683169272252287748782652804236407057137988835872713829925971748959852200522159772469235824377933050797597292039236026119260333877405856928060899440495815183225877487399533657758110176058662308188742472747067558006678803556149332686079051443237707179938552353249173677466389369558786143760195302120291928164573800756756751386154368874961961573654188220332722392107700575615199545205830764546349625773355099019573001085073060556805495417375492957782284869395545424156516593230680121530928788080444114078177984476795279599884509602825751229989501550184099716951411444138721900709400537651213354941260388826787201767362395438279667963404889584771196492969929234156438221323994629950579162035683932546478612466151210808357513627146370213399202075920799265985575002100622290851390980804432811152965451501029611308830634022756761932890554352470996879145734778028601474588762050781155744985672662238076902851121102249901528276384283549510441964314299489478336185521099632681498995849984369452763123271489339708642508042028702011719336607919372221804564769510861407628634168132554294817374371343630525913394557704201164531136086851810966039389562865222532952016695384721708288539335985634874445034317848020843095919253200242640686127477234715074748883806186642702401400095126832465990420575231066018356790135682262584081037340653224411569156048474675208407313060412217805394422430356824277643834166138726074654884856232506191036726308013626233970832220133998794339113840893917383155716779198104092886179433600781010610505217901062486284993799562925242173342011604899664569005488222182519185305142543073704409775437507174275302073748294739459754491396730352850504459268021711678626344182030328673277141024895406213702739294641562883291297394884750417350485658652621052519001412889321787999121582732372990376654923527084158564773605230809785723629840323868766993335660640189477353875904383862054344307677258936545182538379798031583878945928138776306832256233364225169225114246383913110558045112177585598326750869492118072680356902623503157951412586734644185088018796677063080251341106271609298632506328501785593744152668339879450029560080262898712213926314352312067792787708755829577603734032387559408447213187222538034227103121931193350134934021567515932978113245367966088320334198536680449231844247293469600666377503904418665998059085408589149287292419409017712414050578667203408458062285118812728843311889116873197715300320924905053779528466017378396696496399563027187431697798411607394950595309532773388706809989546755340937314338534879527655266202679462956494832682150303605110267705630540070850419366631304415551138815323439800996182275495681811355636663761938326639337123586423121765496804235181859087435711648221335280854477422058888895365272014947938081418065134734459476623332427098962016344372183518806506602559308384704309177463182753559147321753537429934088226733888892044878117087654613833059869708430100398235980170613836488072182061958871274065034320224695155746298794507203176613706737419777228437799542796488397947752924320757804890185628397090965189871211947169461211207330922544912415353326697201557235299743512581723363165709547009846185483419970173048533900787626408520000726961950700820983348100853664966525178852672817889437307873195316486434646373817173273379899678448379228170467711793678304510073777119575947442155538702671862556850209684594966863138195808604177393863383090924923506307292653092050092520848726859107710814245313148711543546334264102019251805035243677384232549154988049112653985957640960556679430483085242740422136640390209035328134147520565047657908764677911378821033904656083785418861359891384884757395178923846795715875818520309439792984945575062862599292620471802703261757962918517113595954568068192234300241864983753199194433484993799782699944290897549289053213064365202298623207088433073486680250354360318505659463446872745751028933140159538038981132919816732640103880229341885563587104224711403725906426150609405214652748142247734361873800276722108304034575088807077349341059556318171836508043830929701681386780841368657041468938477223732398638601495774169096262879572991012408272667140106501579275742222404857170004139843031838513305124690720814091852330971014967173037355214738865871550169399186894629227777523664681110963335690469104166717433986642478616140813338499905196574429073552460715184515411578353568542910915564573983963992911275647877976959261468881747839437953183510109574426656321416123813876087066446971298764560851453058188672974385572621418677068028586045555348938605432188338324722645727530579362852140645856454866242481207292436488119160540198522035101006614203167318240834979051192081304507973255926237094872512086192858380239086086504872486716580962185712757148454545483091856195233290727741370837714155861096873477521604551915573431407147400217211483352280823090568656058094839344731525948155366416322765683563440784650984071441824827286635842726586471456798167245765340037802113226533577672132778606764430435768449095046545608799917721914821856205307266937422431936717864357618072747024418920267125842721442963493541502025036479095984799267008420855169639391554854896385315619296925925330210269507808289515253423923121829457399728597376147605368856831862059690892291116891405328227491842734821297112726975863925870098783170670927738069509286501643873603182721760999921957630194408404613495808796548720741246549162815043202174251446767063921131232533545245876234486380679128262406890803345837607119132873688537571984056113331506977513961481001627867688192968714912986635927725525223914283216572502554997956370832771468080749839616164829445087355431195590791504932455021883816865865221235888398616384017279565130316497677547787769399294939976544342444988144695990956381617752894330267766858982358967739098024720939966574970846255102392856648325169906592169798361213450228002220279090433395401999681148271628885854921380931994194034531808995628131898633659819713957772574222169862293070400472626252859352418431045342892580532660274123801801786714491620474915064271144497772170807773985374673055529347650837335543434816199737079785341932451239436503348884093261500373655105298450856700282138985985149446865791756128539578805924937782468304908863886100159974812298593712884029219217928607791766312574335036285947307093096080608193017289833940035197738185961082183616544813380120235541266591192954368759616571870155506629056862268230973577023345863216274892282104683703807899063543044576015322316936976397845152878638979231312516555156819993322298346706486194410260685257972410967663258384113761214679516435404284500558921882280160845558390169012336473270944364469634385715308714421629928119978807199790147419915256930640857536469704918301223193747061181916623249518695008457459115885960626386426520493410396320061209746278976079246079177483723422273747548077687571358722376595966385951673207274510274266267131691108170415597852045547342114432055564073263085885921911832201420837819854340919856873284383802516104455538857309436241522734183232730605228953546296507926843479248566133159841420794047825026062961603583660538402352280690014628452947627406473232079236575392800957673915668223355826882645949456039237134035993898582724524624021961443124274579632812365079572687742722192437906066779383645213342520043416164874731544074806836034693534639710162202558101441521376291402574162529701548958986385128059980733378284006636576351351460471645504326666872643621315666245022069488372968083641577910254185846769685685140385529434606318928606165763192048121218271779436640047405307815675527227014749081101466740648094555209790405235724080517350437377639437239886036547664071522779944507819996655813260377835591097216410244941056697008197250651980613769422551482430707638318562493034575141417499489736371392620960333614068242861432537704756377656777020742622275924240538359547519957268096460189258771802126682438554611380177060609334743079596089673332417474473401105404270800489595592402504614149697292603818444496647035539493315557467058523680063510559390876091077316794419897868802207788081680453198967568752038006731866478373501376269396894455657332649243784039608632603100533266841765036431992383356559207605954747082511852790051957640882170152587044498971778783939385859618045200407357451886098876844622983430047146294306582185467677379972941539360572261762043464267246565274150218524613465754667423118608124131228128664687455146161039526191838586579762808878690555180126266876153082012176193143548371091676775372975174679472646049839562947708421068618879999181534047974715232805394546120047159001309298611121651343030209636393404103446545146357120068842156319436149053494191665354584873087035153302804771504683405259794598744411216523874480490363042800279122183889909399743030145802879950137086041506675068251628690406802844023012527697376534288222805993101421136041134728817736657212981878473201546978848509788951712220395094095992240279629617432727657114533793235984468357007453652031783588257012243665605861272076013602372284708931177230470243276398216250088984419637384631983674015589646076790416535480881771869972388607039422193937266821863936585476693732962974987086804312246877981485835593144432854510568177011200205060486401260942714558229326447353444258523068422253644502118052413434206248807505912980762588344430034254342257708233414278256268309699209961596069265526878717162596812768458767756197764851631478944263266781676163575043240674914777860673562493578791858595989481024682448231120293443777199208021812019576945655179192404803513209418765419167741992262537447396976407083216546109430867730088469243709254515493152283641107576324818561859370772948217295994075107104036324735856933674581435808440195055122940010919976752775580607206678379702416521294327787806485328243373811332373825544278656412866416241837140140410745947035074708796274580502249233939540312271826289228890575279182292007505908009774395979483188759748018094585798861976288237279270584602481380200036835174362288720851599507200737556865466414653165965208915372088195902919448415191811019124788412234361780499311409947266724643831367164813529470407789649702128831007011121766325885459929323096078182671672241929820876804739649441797940452665283377184735689594755485436510757255859538022671574256429408678687343111054924310806608424945511609072735141527297700647458536696589350208355804300712945369662084295427753143958427285359248416666094220329367104068117118872901047350619582830622025042340340255923841930781551414732069926445349897525731225872910848720643093965799949109397573751241769457345103868155785300678319058582783051208643508204993064173225046369438293353300218972516221083281966976286821545538032674081511588929385450770264135406026369049066763406671910104123495954349812476942069666428739317299827218221014518712194440212044051318838133469226061287143637249433911444132181063933444260196233004984471784010109298921466138470731373649635538393730284001562198056546068526435979545490200632825967077090420276907180661247852115502350025053647211110457754106301345107216178478109846886659192178213243934272783099026416006335310586776899928378005511060134864702793917420830889430468351729223720666056700908923609622067616402726749948051856865599360959414029371844782755079451581987392346083598230318264010562536046395141792693617919338168809394067416594344283143675320154797601923662286765648506120420420664662826499730293696212555721679049300310306567742563305186449733705454245893481717354241341460157901796158388490153666239714197295204353903958566507155291819595086557685498439378971939188306675062986269743578143540705202111888482454699526900006492597701402194713900893682831238799544380964536057351819678552372388901300237358441026972962738070368752982888575556774814007952713833699314595792465837528553324658636100534567027453552082410681975754851009601517964505416244559705876023463916515759307994649537374296665890798944920961882464683810595225648022567903359252741902501815005979872375524819317977968993601982677640895444738765252312068851680960426061851034998965135960435771515656523733687845217207846531641556240535250737840949044775534650690732706888219408511055272552669714961301470734829339680838505850324765499547089159205277365257484429215566045069739904262746449015136965638060103579798042031683061749232539134970358309201495489617802045269245280564189500038731284771644040524265643728928549262888530886428133763661201533855299239599613446417498863847259132655451129631763927292815773510840077365803933383431524613924824234544975819161387682119571545785871008241262613400762196069239144392374152312840275035788804237797097320279058615796289314339282391559921253275778439593412048550831283651527236917157544079561120851315793185058110030127764400798047274885682909133354187989599069540847546321524657644825776129853719717858337777504451986739311721353181208367707336133795238221798935081784177896932583144611369816396445341537352960776473187942731921241259743395764153472178519152239152098959730498687464737939869695497957211958242134785950179132324071034751222220610121965681203477412706162086331084279465350658051428426401941389779301136399895313609041951331802058550337648364272260387551069803466222211023680001945940892629039601110176780196019117601015875166057825828661295489574450814446786178074818406046484121004885469381945331410056728139239854052270166528237902476197174549094530573352751302188398921078272674754413006569745874573334850627991630767224559768389260778201429047612763709999353960249310060782979095300489915986589821125137395924156556909047451169392073959505842681719622803811587291478440214530704094028573764594882562996479909314633046691138586670719454181513594455550685777031475161928368331661983342598691950540457796954105035629168139543598485478582924127737523219734872049923953464712827593684646226963563885969887722900714329386393895277674684514716564873972367962302216877036343904055240307442570065957965156563495551664451759434128243992452225244306131913638737902986581024700577471719647284511543415529991347228227311261450338893774112283825682521623788029329100313777718001806670567373811522201660714557554761231123449336153700861869417061802569708846562035424762589013300932779563816267117526926912695365940609776232902547633411039120606562132070154414776258237990895532231142305670001995628124622082436487391789580619523121473561457195435901531270498084926349179576548602970685292617534553022712976000319472125774609937036635174199622467509943233873215838107799688206597081562510545158219405940093970876233913535003705809690096542029024997129782134764099853518791943918681849285854783008321843813410486697575615356752396280711962356124719132505650952730764667207673727453920596223548379247906075034057872340157964913571370125151719870481011326371219908921095994001558824347029265152731330351044159378805670116341341917728898698765423313946229523553246170553971932923038108414683689857881882448078968973536314381015027743572055903554823485044144038806696058475984716685946508991948990143562616000128808220702644722083403464071062434916329616627294471966719453486339343597499213060419926824568179157997810921529170395955936966627527366460254063771686903251138501746718302547510742104630933546468903307677698952344371091350023443539624920884143627451603583451426264090377762563087756933871540159695084996707292582692842414955033063119990843610414233550717030714141018034678531993239249994083839387086244302630659426013660712578966440308448017431635076116741771193972754889724596513197775934975603195294450317921404707311063283181342752040785936382422988576448599261056552753920282078466709110048762956305622445232381846135543113513766588687076460109960856391044744695604018853459271343736011518057034067782314762010512069018286459786260780164472147063490308249603935465491266036407230950912664482724491501026880943837141400266665797467058374403978157215289313226368583478775659751422099550228181203656386748169331640029126970082696692821066523100712634106807869916140529740878482866485914079091804480649003935899084433786414757378864097289679912542372287634542401566254220563331620733463721146295225446236505533841782931894169383006527439978732123321379766002567347867090857236087374644435081579801993148776516449478014281488076816520165163684732184515572631599768964140452423045436120283447443853698063973971096955842373443783391525031524678537585757097754179901860575860199660370976569321030906779248639264055988150303805222245823791925804490488170135780601502494734328242244800544955416031673895618459937223698990643966965729330424769552551610678364820219148248987800342826456644059677295854702005143114235674937942101647048793309766667231247577828446149614753183390808710089121866660047407186398722378068452340784408685601513664608864814899001645624960757892158498172673702961862566704428477731872655462608416716530378259661435065831809555527789442716147854160004550992222604609857808943392818201184924298524958394368726094869305414091470055549723283093031637167959967955282354045442778493318779691354613089120537454143899135641032632095009110021517962380111105407140847620921871384415601540063427811699920361908523201508516172357832267928338928604969610025872760464776274906133457436890347049329103753048679100124361078200348309792202598364021448935497523498867439433422754992293338234127675305431361539409799107743799403951983738071375959250946949513795136904696237726672195703554834598599658097413377146562844342482168547445583998169692388412820412228745212180801514030164525838234470864338728592141084235762339616685815842242182337269948892671853368486084034224769440300394509958626509838637987095913257869695287762798240650940706951886903361886158983687249714444191096083336542102713223125370172926810536661497170644093891406049449910776289973423318312886203764796652580162723882965999666996381888000095394390973825257924997444411123832739468540117865322583757140891077420051694369037966783878376163309970281516658541979923303776476531577605845312283297613313376391745048466607955533246606015128805321740240174184324399386603137685392653137557348106122322157042849859439326896000306389571549143829624013072892185305313801621661809557585327861280301836475976809506625682113906161506566022274609052039299863881070210225831132958808615048609386185045383097008083479953702448362372030751800067243954648124350595880006963371638331557373478118229701768781946792086926389803398381954227516577594496813305511099818629824355078554808094368211177015441113158730072191099756692344731411752794982736078246445506012577239829466320413719204096117516352637346815943501842542222965571218076069720167151444082505316903174515733412629344946965168267934010840919660459641997280697889743284410112879214531473771440272183456325263828793477027956349792347974634500099787749450341792894318320162336437522055480262873121186154168925152205343202662330272570962988341557179334080827268145332085414312621493335776938633222221619696727965991621414937152128606573545768265031280151520687570877982731161687460383806210850833843725019386199725514667597725440057972499846288382422984369194209629859765582676015339878569052301295637181225573632928973983295333785506326204658842497528759477103251125680721445320971701612632893100438218817330240608224820852192590852966187627662486116780953563224593684673852155911684983882516203621727707856475688409127868768247758317085798017532088066212301645234512624691527257280645254447525321852720359359582243336752441600920715331973967312065963343032117320089359341132991192432844813188673633176676526742804824186709057690123520013055609396008729171258795143137296916373154831361413336032678109699932627037632427226736099836005398874757236821992967318995012170858380213521430107600384918776539606668288787006696465095121135662393796576191640931699062731772479599048038382236914382996083850340955041244604458561215865821000801264889776336394386643313002929661219620012863271031142893480441328737204402369048435425001572432597076019618254248252825522726576238927498437780869632444614013595860367923070575521289495266134331328612288151263254382838839923163325557029211035261542203930350070993630745314494971637258281026091146930603135062894804394865704998311181278073466603023840135264845789002276616578802845186655749942209933402768036208205579970886531713196888318721077861929878615932739564703763195953424657088509896409289736824279156244074218738214201941519955626539827038972554809620437909246091950017515046388264626947598112088406720401833284776236202720399974761341008376970512843106695760993090769717077436039545048566332539660172785496517647197538586901293653773792085081674602315244185513994339196706493408982339419391728632283671822161116985520658187480582896687280560097123549851627683119004230691684864600907772974052458558726414325064412896371073654489896192654408425980845277800185250317349594271065687672304870027967436754232060566793657674509265699823655369683181557340802589986693227445240069181802606993562884112269222613791013191980464255197910422949273211707580213814327769310844462318392832859532536876543177373827384792675847916897220338409380055201635778663198265513430116468262659262155364820877335675016042933169710884696007275700246063006031155197279298615178859169468320266433207963353923383273917458678514938426495247717608638226557024050837571921891651533829253434634850750000962175205249084933787732209996666182936304449117324607100202999197680299918642325694677973529679437522030550486238606975594524631229235801020446347374739763698908592896053979366469789590089222118575152453938987660951286086488849940224796500223055490412868273943422313114997845961427332077905419937462693169584529095513275003521265831196563554397006072915663024108789804160114382406670992242587460384196863738386604851326845658974036564687799942872769184467476315022224115547435964622743609658921757174753912502170996699327478925936369876277654414913739381665101688368111192679958432725065402961594474588012639886027606035371657554537840782540187932691202927288526254875426876851050127055106221449681173857518209024658065745473080528366921852326397313695495401668933037913906579721985787631191494726257671503691075886413055606965295011397333533011108742333907010375856729897189384805683329323168987593663192839754059352407955466657119395720810194899917633420744190043712504790685388296169768218557537535179359117524284315242126661293230126150616986759147856955883001465159080743084275801676076231674594458943421627192432173117030875578385803483321765873479135975068622142707688122555925795863007901878809209218599655428683890136706753850673425455962950913004192599505721407614560915337973920640136733279596194765473615059814206054139559932640539046563360497978419884101174365495232833404171103212750051410930975070585577192308387512717083665893766556781014460137193630219780374401247973241480996380954370263721652471733855808104888140842330991675747985367014068302046320425042349504698632669685947721832212352547292883071162520080980752216419118835255323347670603513898388411993493038548662867150786380929483354365516999504337124614211938012646093606275696238380870992316392237336200741328973038213386679788654799396524286526745314331118544682252179772228695815477583495151768293667530548231598625913711401701633569004344653092336907473492764422224897630332253779175379011011811480157366745684569573099519814345466469346445260238022384827537106078614992665648814689821495063351830629979627970299559197731179922707764772860855330603707977397216459329399480428728024307442613972658693886884240521127581896526980025670887370364029988747408675971459700053056569270865712435420560371667929983300481532131180984028528975050978647349826648328080516622253695254194300992887678774344467733247176641520283247281850392602286566854530971550713093600973263662650102694791368686596626468713886114211233630091790649516626193686275404335174065396084414480407005425148936690193283167412003422957652675816227047888301463640448058511558569680326949815389691483147316817318303366530465732124460580088934764337161635297325443867115676917165154370331088531620953163147135017971962819160378521610784629039855280860116423045068915795629036574773819592983014905742296249419424960714310551533966339532336573104458215787590936468130317020792427438760635678870286804805990418341930258224499386475153923451230641423296798458489179819467919438073519530439694328910815515346121975253867977545722126395308104691355326762278840234266619798167082817700289578923141153516908036936843971316710917090051804313138066018399909572078954448034846233302471731207321818841943033170240331574493720807952532767102063405014622628237951807756998943895487758770604296663912791998463919825710896768640098319078231943727641051083412917537718676567642285716208243657999456578195959062565540819092720496845091196871683147818018003696562379109526997756287311693721447411946000541758106465320001814875254097781941788043478587444782729987995906447924976644454758446502784334131956367572802390716076590412611262457741656597821076597002166299187761018670516302494741580656368960849790532377887214651369798941081997175940674641507067400440451121549752598426601904985425155456898567854277342818625693247572339570916468102467350204099155132434813790179542333319834381151809260816723047367690505803838456074626210464651923306383090474133591022295587513380996111870899643821021312426765095982056010400411051663303452041482764337977724312673035609642045702012496229264034394707072903057117398611888083733857147473098824983861684482557338575720305455724911688098700501862958465423387040762948465432825698438861255481821411760211069656262461878753112791232703517671684814572136629725890539688973495555697108314275257748329377538775164458419532886307801267949961352555611458149555254824907836923288260556615808261396619393200890844938108464545051629026882261874309549675098581322258669800427161922357454024838943196575825682435296698847156270744274537346285880704329861510576813500099095812972022382968529460052446662335940537854568493752773785517347257322560150185317895440071495132379738481560657834089382833353211846028589918291223965391053981802305175486322259994876930455426905909973740690534443225454079532764065027555137452757776536661423246507416722685467452957937069022636633004048826775545313055527420004238331741659727249040371734108146612183368383045898204803709823873892698612543190305041231113349808706757445037950131427543590341849508939355616623238570811851617659813304620147807503572944266790204625799206582503999210587266741499647011182604611319607962453481310621207067805683089004088664674401932380195295673691126040102999566504471092682104471607037507952249259833035812202060728504222325749298784952333409961045046556650129051105224551445396664573049186444379788378302591695115750685471531325507749317409452983038584058534261043263511308528435564323720125993724458281218095987750144011419691093026802345886916392490575681644263406837107792909663390277442839536734629824553427886973112204679823876603413159489533422229489272610373810761395790753486974310627086832030849794480141696651814614572841985342444899176222424803515933015685905130722498160310631626984102771033810668608749232102089889615455416301098105258757700636279085639169845958623931573333670633759830373411741019289842072552362502312787897470867051183126999831561076408495232370784448126949904256543284254186773073042538288025493643634021864884899079776279063072073072364522587367481686707999872369710856059780027648320280030194851173408340233506949692608237199153412203305536981127445268755170184342344349360822933546526422844400745082009602257177279252918176966805415865729899684177617793547863989073500793117201470499202914632540911405408425672059440242449771085110814351443763052538691549648032771852675307945562658287266656304702766078973242285755981807546786496323580248727893726608322867616266779856519079271195186785227519517305588559151871412804699713252144129058538949366331931608372291850971301899868328133341478764829651011029183722663528079723618334944525393608289618086497117620773217965523703247126219948663981624971037042653279328392858268564235052069689052731661721149894248766562006137627004269514226451369027482993412603270882282634913600028599998142930673593547377167594518615331475456364174208685451088194547865990925820824649474592551413051631483164298884662643579074832319650353635030729778676417197111229012489311905669481642077310189153988712295515353720953088061049634054491061958243220481295429517920127728903434841252204359651895528872235649802684811043145263908039868963561286458089652948820740617321970459529922021619336439579356182392986656211624698018429124615298681606276928479085624496538202532985101133491969530166669057775905475292979926173328358532707219053704063894326148143960849749267625988233322892265334002284813133524374485913158222043286214372803662917920466288536556823493342005839762480709065442839341346368685899965570809747017801481622336052571287742105085323746741763875733304714101041309216973206588086106997847087927009261728360539167638138455910894157697674909511156088235752929520405685820205105303212332050347212228546250571423244779258467065739232367395203023301239352632181195635407485090114281185725465715795299690063811858706844812881986239548453478531849016088429627205656747890227563047438074956262890885570270715268517171167674820674056993168144578251630313954918076969671171536234771836010143411257988350550786120192627696702793648905705247077774836444908910877836716929014232946464648765952650471965853101436392209834230014430410197146059631270491339306559922297866905779628390361652147191397884072602165893382684621942045842202944741212336635597987839446759025902004940697105850464509800617900289762455598432695517580101319810726877426536586811439856167730851585351050596409654164991346630457873280927971037772945712776844940203073424834533762448986166842947922301771725509481117364860446420201405848523093057826853589468986986388881051441713925416849982432954497642767657387414459924291873185263044968585524074336915265801582117477831555530572390248440242729706210357461278273676654665566601297157298299777516036242007528796499063282724791606742311926537569386204762498718102751461564269015714144242912363488755837356956845593743243325004625820422966880423314420796403014004487815340188599971197589845208680825170101820691566165574869696657338222498119903047504452531863191355482889104567854721147412434226492989002172158725321172756872627990166790237959309252259050174508473637921802520077450221093824668546346006062372077703039527121995163214393098820436718581334525173192980366715293534953325989523968048663177634475996976748866395044017016045654264331303957154806876178401156882766252392513667233470541254512377541613166823884718531177117111440848699873477281490011283058682381009991152123862089626211101221825706189136327975328215198580802843928652652883733977844596862740761636192287702325066766711774495600028636347200252708403695844626119119823710797341216047675617297455873491054444022608029508187637970862863075377452597378661248805124871471516734467903673393349959697419446053540814141575413064908018608349459307619270338558377198683622294887081679381987405789893920041544570844760707096049634275204092579751054739658422852285921224155198978105257499280481645325170729983450299495933246198825993459644869900860184281785034873511860261382166762091706885497030513819964035263454101504168647681192013205387782001818676572286376956857760176204340758790118237482776001162802992167924703882414249982443361203360565653695029522668665810234334030972419659042867458854002349535732063272060322765475668574155536272090082654810854586781872869841994737672236464487977274612854079212198698770935556185517494258291386329310786679490506415900982042696171693614924785872622073029234585436911460806931892680081300675762690264037467210710851205068054981088466346650125369686822876368195445591384179881962786127775318423186932888938408079502524749270652804688532418344468980048426765534959132831071902144497781183926747330742592828425819741678835633156359599658943741612499538859848329358699591431072423714036902412250827449678760399724090983285572748275195709687825295517731404113454932033249789704401122749018368713324584393118381025603289043506935278254671398629513963173400523155941499539930302302061166198535597276245289996218828700271598532723504636831977228555867903891482265437860376769473697413889740421844040586419961734417035062837947720081075130864683941189654161550877727889741695115992329682077784749342807185667837802519303262229855294190416183649325959314784733138733511708248366272104279595528217269920693121613988591015481394066723180056181599760987103313171356185511186394280371038658822091537645771413030009599038135124514079640335239275832445718180245345240711898773407105231167218881150791591039220192717413354719559318142399517307009648762685692523195510816516314566085842577941461948329740461081650862654278860339173428416050293064871735551440985657291810580536864130316959711493919404483316063637067404063259716971490751959136250223080602275935922479947288458046357018383457316469413208839594827920907553090133725189652284923455112988554190765045681529769120886368927286973239867805675911984181356866546785317529768053105740996800935369781345584844235464616654342866538429142343198288493270341655481347151352896853430760510486564755222927626775671437141615627568194717378024998234213466888493286628847081084852215704225301946377987988134641648950648546628120884935173239255008362730015776995175092182942456605172788519195105808926482362444948816794212150293342432411232129839351598807240164686938432195534573536990725999457862475316848814950696334817275610703259357298008049740248254412628343428241509389727073450355291522534154916985166140978724802210501403449080755984310233361236847453552122641885061861762723659241876791452315144378404570470699834251600321642515089958484011338746978549125150638099469421367728023236377235423019882892517603182847694898640252940901078483704363911580605022781438288487429073044340123774456970515332927054814453877354438846628844491041502448040516016646903880732106970112196022442591288491145526733980419211588781094861837819130099244398346314438193866957560743379273524517435731728998956598140344792287968694249170253527225391417160543491023994433594758552374786440818298205849756577906428910714894538328513988911289708612796706412616224007454680370868508606165710591912985093792177996868981246266106668633948656809155753506263730563295208673924644789570021572390294488810394883987133430873504671241753070556628549481157101747396183955798305663955971590162977523727778747360220988165186448720652790266660223785647566732871715459966334306673089339087659878567826430716803344937579449173351691394322937322939692492237099235017981329777086163848770728224677763122887326814432006264158558568969189974196492637229973585307878515794567596521806805524419631387751058126704145365531325548204649532457839724641783353387002920259476947754780390191580312463912381764394437386620439053905912229394317982496367673223168498231116484883708222456491594284582482230896551095428797834050764913308837090438732485117211205148548665885954959713541456783400185876981931313221235347774790848204893921927493012812290573438693564899101075633639151623779195422091695448695197831446488073116632549656951695099146357704897215946389276693730480056911317289490019823568381251490890773619531262700414298157674358197593672411041305200879518654131752367034976606966006156270703442895818388999137924121250566549231232386799890008663599109234219668603858696542213879645273035429514993834614205962658880731284686922432355511609428309816712027471407592671712105848762251366427618164510233312723935171893465321816486204545616453537652905828089762487111799467697419230604274555905579609607026660363420006423246859591447546356922820185675836958158023634666829923311875760277519600930805448168956096753017219640843428135785814359065341524227625080649498885573414565316522115589159871423471249285357164541779407495668133600127399121813040805647661841403981582692856891198707157080049823996501232778740496414229359418511382560869744368015633688456244995176996411506365640805828294627291475087085760272149970576872422134695361822299015356704672014310398458799246567976389111728833817406928287702378147954298973663683872213467681360523744931668002808469385281149585626860980105095893959779938555695773925082339078847297313105971123765003710405415322635885905998340183112771636660626719981704232906483036900742760672411092537024765728580665801759010954704875882984392748457738922555147491216551172372735697433898974226859672134448388843320093755181869688062449824786590641285395655372817272482261415341197859397448572953883301160233153699908388155802636180652238586417608366153843183280028077129758045312603842860768765773568038919306883094269494737365147290907513790383565926543978659460396598295977216609948418654188103945409877085500914540533167511395062815247741106212387293526991418818357348987179635122783552647381949691189243325889212043299499268709439849275068938604406246815227647451974974941741860836621972152191611474399941606559613428235526611942938381719530947395572864202707830371474712959308156578479219613832335092323594965274136297560166912169841754594882317086311200691890137481650406083878597580486030936521086764275830744122028175000246220184195285187160588792962967693049868117579837786999246005499115398888677699251901319143029790109467490673751469638626424044166698929854668299796694271499066373335668251296913760209397681669171770045202317440502537988375474076229087744706277419112731628487627062199338812027976923057509335920114675529444562681709456521028585397640200829285216729148695393687083760005776905601835564428646529186719428340840373528944054236756651684294685274688248510575277550083069198433308522610375331107581474003551554412320754880014751455708932403265790531822568268114240799884006683129329434377803486605470125840162990017688799802054724475093981129415968528289875453020125537309323381519822140907638448886458769301304637086065259961922267003417199015105131704393042035214816193292588706461042270902174297922349632071607206492461020322672345802985688167346482031288602932543906296244226163481500012457767350731236748342685044083532745470221361854899678813139132460511089165345766706358661603656794710220914364523045881054188084027998685712205743058996669713357408654993179271390802573526479855596285342579971562226906440655554297964274195460319688036709629465474875441722070851931024556500171602966839163804094479771725252165614600789099193181707659379602042924916109612019760865008806227632138231624178484395601882895840336085360736866703317231252419590032230756054481232812769177443831588809971782499950689037743950695873939422479804377904217837686622737063418905763527505786604980901505012828939211710009365490004998879426187199913436076656963743722096988719775849196095682735970476188784988436787240983518888957140334051368692700627085406873195921441679411596895128951789273516721925240543468798250104851745253553697999117334111501417480164376401764948035413303124931943865163844753446414966591838030896481377005497234531697530838717797920577343700251307052147734696488128234734189041214905877911620231798984968596809909152241144843267524676393045001388241986047332607122171480235934864792430822721362890389552315361167975843225139943295383234822400626824228216502346416087004721183484387569262708782262677102863544933944595557397996052044272883141949162095752157406669978012383688078362767576122584352220800456859188320440682474721550579264714872097776204985706350550970988655327112125580874814976185666864255799227910250587859642551278844812371083133133830450533920998302176583180086486138227985024267931320341772482973016945501280701144237089022494280367278999898615158564212758815666640138596266475936055517178820359836588806827137682578367139654751542672189209553704338866928847265076630381462486831999089457881281959920702516474581073879174540724214475654863210666726353406784206886969208974986551740758801265182176034954634430123971660389493572888277115335330770369059085065562557372400612230191270649706053360110897890348965555166328238680358668595991394279341971452747788008580608597754306934592270110847825402642279647155659991092679313046119183469438967098628217501869954185166702821179340775708461625780212010334132194311333317019726590513875145243723704951215944685986279826110484378786778525207525958339541676740655227426880118611997571205781886358117706837406543264885796254147881254119858187076624146671024664556221213974636090010321150192284281713313979151606370691461126901363489148351502517319781125486730706880009563771560614647957769875935752189310363079055210638969046134952130712803254735859952359872155588895456516874714222121014897103771468261841937501665072216054700994358196485758297232628518829582350208964226242211643857772305818132717335430159034910253640481078119853507459301625947845961913918224724004292144393994872235445612730819308225069117366121964953529380693783229074140083899782180241088467341237789120357893389315177629390243944274710607619087285166918234805916037043201977943802331793081329221331198179841757758373281649509163109195959809901162876222491915970472637392228455099493682481904704181008786160569067170158050322632979209300676173664985272344060109117845556967408684467101235916735366270217783890183040245848429243626159003758177118703324093654323195570262668233787185367599271367660414251222782640265382036090615655970004889284727664400034745487715867635744412006616285173458567755131303333512131317751503455917486730778422013692436953962475416035878051254533348060562810665926727940122149903220463151984211592052966899586642801357675941448437807854372737809613105529206244032962051441185005992221972744746735611605137521457234461570098718496331121026713247567170363226748404573260260765867060991369785876103788752522240178123276317112955765719312011029177765423635279814654698451808614998013101255965967081147908802628411539539169332323269980470866246154457120046260825346623127291004275261214321687058268589285740511773189563713351748219535502337537466197395601223126504079342040948223707222189399208381260661436937955519896246950471581527358630881791650872224646690385509545333328382954437701664973107259771769795722593980144021731106806249518645514127837634428486091376837747228847249579026683475676904632746283563976815010707183952208018853397460587591973033236175147505963134790351487918887711328498556044346024580102818032768199104192690595704832088787956654282577339713650510918080031840747812299629942737459286111347662581838049927759806266251802897057529740352051818452292814248339770250900054689195186345369747422926773913766995494626784446614664111596580422188678609291440971170446460531791858082648743515458002651338956335498697460258847387333743843733474588509216368992564387707442081429586263046402521056556808096530780452639023320385891422750236552970201378373017117596159066474493226133724613027195028215894851382119048010460827780218600909789034552995622541744765739487905986614042142322530644448711950071052002073700192993336299299754942688917439126559447500214476693758548621234128576403297921261436157508524399394987308314515898848449657704626168417169435192079098962021961831723784241670718352115488382993339741340282163224392832042772813998786910398536637454234544408571151174615637564276157154398124222613290270006775567346555981250393928070404816636126333503131912666453784077173612518596011210884064160833049021453016359726433538151585942627261197081021778970557450079673340875075165745653515152960324738163599446062725587723323367435891221332153229617190162841341735407512743602612520623337888204227005465332035526034501980274164695345491437819151944027353119032854074140380048719689376433164428344626261889325239055083653942979121570742684103691219479264176024091342946578248800367607305138628289145822160704600994049263788032245064122516656170688136211878944493382420230524744149948894397251586034664080961440481232633852609701703449735276899105969586397718840550897678310724741799274339445687089070179384178461183556696581897619066642931955826354196752509044448658048139900763699151232408693825688396183390722818101481854504833288899385318562252478111748689696076078129276793952272324004454939054534224722642305960051780500907989015977678994997982139732509473190254532047078573126000556490535362159288776098901660794387192667559420162054252907489297370865652955162432704119086170999322141579563385451573006788497814437574169606940285445413692421637853499614660189352465728911177572725790132578774457551210621897867696168905236968943615541963602262306908020927098921575949001860180882552875923987277244830997069173934316229027295424716620231302795657942393233354338483496589443323616785724885201712330671811842313012633087959863613497249110735257786434943891161475510331618651396304062385799569993405044845302596646033491304356568044151596768850922853676891462982312040275267477700144419800559104070621692292102829068346125750852966868584517179048093152378634327519453188707455047768970401709924372702361196393335916948211272192998667386040815649420020619438568358843410015264876751233607670956795731492160037471427204020373897995795227096218554031199499352339594396404587697770790801750463666671180804462615345153185634019238412771987477927900259024874700867324011898151810680452644902976796446098035739009083896236494202378091172985944582791892389325403505995029672892982722837762921223657198870378684366968241830458715659065957355373732465213885230084111632652090547525820907974501635120593644296128245740100577191793554391514589937853967713478099877131336483338821273924838191042490484580343515721725533203680841935536197626283181104653454565204234705064573544405545738936973139237479379709600435987839881617049821302847346966359357046429241578616983230701101774899328290918617636782535718343679137117938582791687081924482836071973330820808063529311278069099371137920246534856569807063906449574135732810092019631907689816818540730448478341410373123199485147056644551013778473517591114082246772731937100080487289602698684874760853873220430706723697325082882262225726506959986874681710261374789287297391054711903050344747918793313580543843364654283057874758970980151350024980827907048066033893081663637464177113415605910263346816113446170462285624390317786247842176518426347969454708249589997136335608772284013547226097232776470124979421864290203306227188279695089923390576880121073450871683722523437450957551010462892279678969934828242859228826480466200176885485151186226843733156455301464297069975989306055339121056792828784965065845051559860443618972741072734870280201795949597790227467039168265176774597725227499544712181863205895697191525043828508334732415190672811782246362053159820957159645328827560477877210863518694483970391331997683770267741454439603921824439201592412074987082525946492189508933923797384867485756341494390426761204226953056288456631726505911407608543738263703130426135539486461266588816677570268465141134728350678185585051095824683323811312175481963341146144403070649009796508169963239932821712311641871988331934102134818249810077468337189549879877903036642839637674847543602046356985451373655505095408413700550531711900142872062158592346169648371538763340217936029518762770785571430375732318852042861318375094015374790893757417166226575502652559167336087840716472723224560652744171056655167299650098467009185966632158954433906215993213815795369652301239618438994604738725361416961543091951447917440091020223763822596691460524866027746629415308457199690822548757641644959511822458695029114370706882045548408528415108843564020094837635865111882687502938541194203071754900664203630262430828022220713447456488596300957129187429025533748781788029057128525235804609384489862787641896044749975853097764686544115858530663872501372338949507939837825041346162860732144592274665308435178585221525111974709054953367133721170971525790916248591205774383387789328290035227511103493396410358327994923327886307773275950524328091323386446849155589279631468908397615720703949386042281412889793380693590354759336714675995931590901590465200845483802082443528953468577146581545152614839661888111516490311181724028167425315438628404389790159679986351258389300369222237443913417977973210861503962349107558714636909362939755091924305659085293944307431358429070686928268338560557105071721481503100241830262699687574753668428511654829995560477380484885334925342028338912712677476280573905599853948115161981248362701049514844047756132049845463707605192435115900759897860011490408291172091461038797286565640064377565363760196141237671369096894654063121929952652424787967364790309641518303466328877224488334126954920761231895337298012061465042542461232952152959598196526101822741427739969116398946147561371639888395271131924911898943910259619600407031011267389471430701131310283417152760338463854958639453668145869510236684511702070437742589094936816964522487046859061826294644360299922088528551085380865038400455428633223295784644433232921350177507117096343195125620433795813981889743534516592532929415283561678540043738920468134435018485505804723629417867550967461672832296948099647492668430113191739730906393991773158687990908414915730686664973351848580441587894755058140912117736895210557829237962487722495125793118395337130352938300157135770903491458338997294842226569358841005062186376394576081144500956963519637179314066825331052425753715184076865263226713234112295786762944015318508312643220545167224129891808339644440844310927749523444939693825342403109839741265536060813439934139210820132639899222737976061666356034886771404312385580160287794039864073552632889615430359053347401438189884005719933951996793326375249023280196143908047950376521229767040581850319407764470543686560194699805126088861752976630510639523288482675073921271423518342441479315157950633718906377747612360975537820411858330297176285619090048343763345267291910341685425722241964823612235319960779057983804803771763474296909968534800210038669397523467002730714527220311461020520322454094043073606465998520322507571828794520413197786247933197925149755663711724639092444884843601271461311563456894806906039824113033646934486834574801351986327228921561243042741433542189029372530043944957443683389736230680158547515106826404053181042406289072731800313710393651266614274425359355394101055459170086017536666954750393249881809460653047246225083965851299218528763454874877405079396084960925512251584613496815233836958179250391043662489807014459348340204005210073733078322394060720198672786772947127586673055825921927373065127420119723993722578055507972323061447663142654661042956430122047072342386241819264731582991307606937448715759949583009129256338619327146812237180931818724335778589617362034435550016993283501054475899233283761909328137128589744095002022158029439097679847732160969124774239963174761293681179142619312226619920382917927313094364735582584306945136655413992083472822733158343866237996307462129585241397438935787028465817923926977164397433195417533687629643755542804193055019823913047951204628182589138403009565462332323020896091507060883242099538753941620031114925768418203413011488196337185849279574131101797955684521103523692680989765148694243089743474299738540151968088386436192455666468949412551989690361019000275022783806749093804111229513802950831236410662121248315127746829310825497830533365715054513800221458866732679054843390158052722028374719949116505663917083476766045394905763711230463582656706652170678336306450920516515884490697469460611433853902009359711925814894536436117022209959796281611261071447289385925146993122223976596056229764904852239252606198830968178590804335714770153976319106156282367090039957902908713700192506408936890599964864278385827271523702167579701262669678646782992486756594944276557949868542905447940999410890438844713140131575926869391588144623120583816082461109460493545405460872427898952630704819737539157467431338054407568217818023556205004078968771812111194346909046780500974067370305639067753619861542171480624464101560052234040273486622312487287497513736035012153291124461695861898389106327723494253890115296326958351644324543381512720172603683320181264395947135426714825098803322004593834612401700072723602575618839694185179915864317619521683716324642945787393444355484985345947911055561489729055415458827924312231417023685622898397867022513103033792723140561162160960184981596300311344311462044996478250202705956392788854712083033203207745797313854401001939444591120009764044826570698688406363925829747819562545847782992234620703235308775194412796342531450544404532915528048077595304498424376685106147583659584736443501409303650017010738848617695814155842670534790672804853665372070345933830588853040041875681019506697208452581642822838106291242104759640832587563502298364041599182436335706415395185878443671697028159263535891720101656865376617855790541854986951903443371197746805550192418428459993451108560236573497492208760974423220225026484210513371923699950154989891043804435302048958836479062393682411089888559680287267190277833024677542727143617414111740844355049989693620024706083174757743517385121026596196680206715118925577039693789228278530511197744424065159554283236335453838688751880311715187951419911039268245840562389704498395833232254757006202210995116972647686065010951157380950668497360074337033528995320345272995844615940695921317309308445027702356568022453613942836061438963684019472252874165660078830787704051444362654694913046463840752872552342329670639577079169174661434691553910917252272020615349494048668161935371091679357506212561885135552004190388203402548136137231794010590401061099860243523903049971479544343682889034083240994792390884525084621927264016085111686679707657247136048896631092375630847280494873048931276436298393434306089066665624362459235097025601282630260846210206120916352791378019520974048467463233177701660320131814628636169514780772906064861391648576118604188418405690943679339195860991243765161110214394216877820683431633388244745612601161609904543454210983990762923102231555803577243849910597099234150289292262042024416155824504309674158719536832008877097779476773336126723552036924635065889780519820499650739539553991843341335443648840989738774916507987407321010184170060862668470220309657397045923195520510337139112127781323258243059333224732587748504590173149391697806517371388018180736485365639696988369023886563551995366611792713317693089028081196126053462479299279951905371116592280418384293911788506486364313812785783559013405600937179969225559629329471560212153096618874186134969441154488527288818871973065656672306791744274945134866944424173573699603664885920689636763065448657974160416919963386079818366657774994876646092213066251141782411239686308618560416804798456022312502337772440306367982879086482375125181555464466654397122464044054773285289451097270093167896304774704604149811998360922874141592267241093174446839668225885801847132611186774490154426649616638563909267053795851062648359471787631853035231993271410685252593302282649083557650382766052501973144352005060223059973539337842036605592338195337603739833784115133149458862965684867073620901461452003319244702947473549362796182343676923655887848819862757185316059874776779336962295639818283563599649023407711051693760849905089219360516446697500146875496824630322336042845283935065430109459127245811286628350294673229809626095677396883480767952126066203743192805289137771559147186064318973133915723271031757839717967062594440656291855337864510439363117639386926355547484888222410959016548544970122453877966434633235614608164616059745166055128770929525628022170820337796090594804420458841399256747029664926050899273330776621420161064203725709173989073173728952116657683108144502113366608406075158989573409513576718272473225888566528381626497948675395530353856454527301007957364863172696760259116122618207323111017716924253485908446880008689006600626985887649627917337481426842200890637535907914911226242878130962566931328186758419099953584734055825352214169460496541962672541240937035301213608396116064645399693771340324170640129057734147638610697270325153741633888596621214989308247757637971030440776293275990984053917997720517077640339641007478592396262371519652603248710953549904275957731920219227374735803958086483848992393517964631394062202792592047274642397920222273101910563758712658346069421344841424148242753355645564629776834600525734032946904320785951791253194893985797125198545282458911607615319145651083000254865649454900530849654522613951097153438046212900939369176023373846429552333069921328391025370182453997277208653636315345883633779296041770467083232960144627912076275162853009319219217535334808304750365242124556514598477454724151145235100300844497084052619459467454234602392551309247433012652552981662250150877597526485860232703394211731423662208129075454230661563135744602936589168276112035229815177905654833130594012942464234343107890358359523466423064518423540400599525009293249085666321922284913131918147975405027017427975057422191683578454010368592725108790071182687634778721761314269897907049632971021604392655745872499423098858214238510819497942075376142017333430052534828910273347096010027854818762578725296566767182122941476976254440407717227500945499715001350142877127134581953303329178673859653301993343785762377328037488221912389583142300257471542556212414419313672089450691277778618033745988505789986084665013939066179203132166453054068642739529293867932230301530868988739271724809922177961557010877485438402269488015533760826306367994151286861146534640073754929956169389585554881303573236188387447714736918039611597761891947208891807898379329670858907037826311041481915169631382844079697250377483439182083671049010419640202631461400587123296824617885586924706280534672413746721300117784570320914492915450221818056352688504139693722258831234136518769602431797194065560818645121745059031280800085643293052167563444591579377646022372365359757307709401230268466408729742494793165078740004279220352690665572133220502414212475243424453134161102110246696274690131391654801468155248270320056534173337149601353040377134360282453897128315350182159589423895858901359569761950975147869706572088792594993851958766684462911069111637697466158416660139422671742015223699070770819965063649148247506914515953813224545346038214879004640891260796826196193797671284513128059210691632815349946668740299044439357521835855748803787635532188545129707049294461526295517833136498473098222036334430322142478607183337754072218362952661976633137238683387476125340212746867376163639836677695948465960519713627866598615217964451717781887975327805560738274582953065749382362623571302108472434111865632064401644832401736788988848821267873311980403837284766719477058351811265591963418783858455506837747432262234348260657995826121896687280312785219192426913561384819374740096981946883309637413821575475779472143293219301675383889698514698503871016541469665140927011865486325164991028075018301498705008271675566042724278286467339204576730544695218518933726655241302035928041497095367128107076976620565307723607214545261927493424884780256630334645759635917582534069959628238458454509756871868887670369088046229624944365109072185215114861243609042507814461629667628317654271475348651951886982839073158592662429833530836486361991618714261644107352210539820787992364122494223516877280749315643936531018551815845415329351643351198097924471989939783724971396038345791485437681729476902310845443474205392094548819798149153608947894981872412868387884666184953548316806987955083747538675047565198864632928727887595337740069885855909560841133860305485578862615201224538737996523411965204126476996065096936450594467637351255786470015745231849378440646710068424007929936732674985062868705708608696186182220267036351732868494079156213758132005553907092445676616925074296357980160390996436534082237194607447985617460500666607368083130996170366075053220279967046461562854841248946818595093973619408319502450172979363689790811902588334236028214655173792339081004367854099904200449003760125419519557420018124457758866955294906191911046449613718048622193176879757944650903842546239680744570585935104322321080486843646012442484899653917211840666979202510412886782642125343774727046832576470503762350182891062359455898955175499690819962398737384202026119464040355564963399544991125868961119233147799668709524306149769864391912867437248965520298634830057786603200278811718714884450764547573447395022390893019301546508172046508303273699314895568101366411894692655267299336387379320810137700766289406810956642766772445920254541442862493811977684864009711331372965536925746671428801252427148075600216925129455331303956927832999396999831776310937367509679634126055036318052044873432183713190246523328148497233293024658568134235063501202739104476794450077919864499704555472326644838666358018839702861392112695393430751950978368872728538566719901822687697438275226898044914378990161925998102434547281049057577183669644791966619846850404634263471077417210246265137693413549837830281742923376401909624879713960570718042197416699473220902164574792784543212681332733146349997978966452115029771451010925632895562250001741344695757098322885086972578073764401767012675497282945244715355071586135741535400887791542638352410641754858617390250596933367940349264280235639809389714340542959232594988497290039693012361596009360136576831275188132946876184834611845971428214781741019620624599059483465081958319612614873218421394930386787970158274935239470593345868424048258773559061690340086609503720871414450339457768846249125602613986470771632741020875927309747088282284771976564170949832620228212230251290302981841621315047347019779930023590823866154779862774930575295018497790234006292679062776328332523595227622289188821847760483235200134818989231489497259481727644350707710294350291528577332646563359759472769314524346404357369295191453758474631004240304185413784242726278462135158024698478222964511949417805235194634539313568482126937011140458588787423189274293858502877236806507848723315071815277960329719559348195683378793992030249479605701728440244590417109414271931691768616555041383035555432325585985574509712988705684007958467280165517020993728501946745917125798004488395744861583425205893032818031224709544958451944791631404322255810425845416313980541276486367920624419518156775788856765838523263123692806287169558512766523264863256188849128187007528442052089718277562860498346747039367117283821091943260844484926841038191198626391294195515393068383911444783683580192816867871398545913388407395585500699154476136634398779890558575002033318002906609306974730126202712566015447180210866111124267538643013214349107041305439827248320429297817491337516502208848350651618569332764706119281115232781081810381850804968966409403857344351005158329096726312788745502330703746439577526320335191891469614051283041594171619988354462794864388948514127874338011020780779854934101816196546064514082912977578271429831298258398073511352136227476015142082668621950314579187427940262777995209667839419006505816649375746231067738945615322668419798052410700902891309362536937897275689712927954657797055654932057563116523211706842842869076103630838109650011565715610064195489532889624806238948712637520000914498064680225225091133105421286268521127661780957876047281195983614089754497206733061857629229270481012523784599154560182069471748057891413822628915311146826699927343183841272505432273086798574423579480894963285053588827799505523329343145296374504723585959952248647469850068197471918387011154573089969590984561069931457456616170067966157050205163860169838576010741265065850695773201220132586874519607742569810593621291538840971581624918597890736973982527577430324408321214853403628938495424484569492690188328657698465654187764537119033171118530370560634668394727942314831463831876079244661832808382607886200939583515984074744583412541722101013607054180837270564166680498661506351958898384411892430789367798423110971119525557574099935600488115068912399605597227812909628895819926131036686763689637903286295212125798602038936018170157030573494037338444805649644727427223250553243897197823238576249203698212269410529642445083853455549089100976519853078054590269977304872886486422978644897182007232807795776790100684874526990292830279499022422977593857143611194059504880435197538176522109329132354810047228391017259510291207485588848132743157221358101776619223684028970151905746973619519022007647872038899391479947450641834339060409850764563243221383094182554687599031884516707476538246962127211283534314775225605065398732267751026282575608679371381462802649912086425267773371312443749772744028741912119609507437563246976978140548080521978829644704605682266541306860493022784551018581536525391111088263208349190469579493408982450035104735235828878760466013463815550610127127660706104363030792650610581711074773920426778355308481404217570278969645598870429600143437294219799391283886326323769126106136263433439279110868646998880422679716759305259800164986389216979138612348369839658208758950346470386997169977340453824470713284072112568711842181060993130103589904477817233101609995125923116353103103341830780499899621103502941416484552620052703091419689441816828333681072897958948093379298428226934451613809841590687624952592987663804436088405000449417241776661462550280239158855174718074946589227756024929589373027018159775114239891468323918695155433859345479639489885878218320930264494199465598322294454129450791489046342007821915660016143846075924090301828340675283234132284763341180350587745477700264510844528570241724190986333804335946018434705476170424648805096352051140535894753708255948631660332762208817731196961582941137779262806247411090534262306883885176392876603971635399432592184635124424949344448782275876621310439302652044370012759412679840374819633988058195252862267535704618611662387356849028121520563436191308488767995637460590238910378105859403741297057441851197150080080161756216992065144458435163639530331796942978212056093365578898143949426033999695809970618077143163893350068354662206832235728398350212822683576007631638229629875323217623090870035928513031542365990182542756624034426961095725193180592078446203317386050137260326270488613512220042104393827533050928689291072732523074153020347480349504139607024903263243497951656121269453105486387264976886404684274712835664964957422384042853852294778187006444933431963227210106281064258120896671214109081542666817616747423865365789199211309834492508917505153733169367025191764154283898258991808963847251488209569446939708698174842518962149142055029722375300802977140741101978315935392641633697711321942852094583363108103403231706128256168629554128231577348609819684704003936558237172424025120956919590588130246377396436868615670428535714530168812089212637944499521266450306828823949313174270149451135584657334240436009095895623756976884272593241483085577700286418647701688130417544116963549065402539552179557152122956671135898489574511566194265175294632731422687850751906868473976400018656110149618319124064204270703702609066429658947386012827391409734845176125715514994472993884016981455512164133726763011390716766686963145472685051569030593578728382650743234660444756058055714211694547506941788163974322482185203415353051264006005902632280428010362227158142032188218999134189406572530563147767777239736195297355647840215363264430530007396485175804053605225075198691893264539701557797536004653278741452080324581055914319164552772323773637960056476841958251731099507581041129797934966550986462164923137856399531519883831293499781116883260036944289695691883586247318063503134598160950945253953548090843922644125319317922694492043127224563661240342374551845265216887791643916624814437849595546935221494384627011835582733965351858180202187756947240160355517407076878369435763404758336996152892618684358697868157396154598142099254310482004671709049956799340458257221338616945251036402355612468941641664478075624432272115059167312678290290937510419807947958513546281107021861099533771166358476150424407869682603003282912561149199474604947949494853002880808244099860184097301393391975926111926845428928982368582539626563520449763772740730361644799168246874110152981564367247912230252061952335712134059607758322106917968977376624575551224088091159302098037754590237869095821402986337995126209058975504737086188448719158351074904781325601940744058752192290144821681499154240898238059337031185069236837745885364288893698088965834397531898381479730476583425508605273358195432267886752326110964244355680533191503261994135706375107448921554488848714451886407720918073487617822363107583939413244296424397477528754387570524338521929368212726766836550681983009912405731277301905911837073191413683950148399474041197362746743505917810243622790894355430559943805125934696913719088649029425814785732341767035279194209121418385961204474539675007086085212542336634371124474258398322050518235433796528644921091795503569251647184267409122472167318759809436961250824670203064527609285208535303262797383821203937081436452969002992205687589247823777943919142185681307772207574619899082495955478736732789093594238789563680470795077044984976704812507919336123386705646445136118268774797564243516173469931855655627679278664161696299739391742465839868529094350836015253017411879955260753004176762882095856636752032415814442473144223692987154340713802717444509167449781385047311059884701197818499123084820659403198253483304179530253734507582157815122952780064360749764638307749166820617415835969717000685477139776256655009013386491209087788576101943380557359643470349676135917009143003439565008647846867097656388417172226740817716791669989140709821550543083204875609721386071249730396738265784993463290126471572460558515825730092802020784198975142627366863012253687530950441019191825499417363535973656592122476322461547770335878605470473388144784669764639589228730921370262025808894096756785308333714068756235577457925960834706670987065698731381945363691720348426522479353046497929075317974418281075016032208269120167467194179188920111489060022005818851584586243154454447814775588613034074608517985472858177139429742531183812790644963734314108190194049351457442755548055244746479371059816847470865842773861499485192821854989141055135664513042127705280791137208942964014518801341882823435215244283913103274989259956034342269746948692154842174985519298046579691267390035557450666515415302098597496242123701111100657044941416365799476457765550060253329021489858498110784540596139334301504525860490303055534335949021841551410402409950329113993990438501760997270851756868990459502002960378789521810899980710975381025750277991343374501596286398173777428618479988700901899454711992706344704988837531295257058936287824787322687963695460262733998033023741951944683802332961697063339541793832221430429638134168800304544465203037513504575259633000460693470118045795132418841286767116435036149930252640949636063832544650269390942738699229787266630759176465348720872933705888326501481042248654249293505112485716048394404822560083197854266279389965475053503395344018575413687172232605867170971277777012165909853261634389480017379402908711844547963313108388564917826512597211841135071599151375591623457091054579531109325641727598735000446735787123778474641058742550528233289393525051924944836296617740678838415787567082577530685298231868412389292963743314485325999792316959603690514340153382131755299425874868349039005286636516118755293709480994140186143895168249412341966194213569882650287182385923471867318734554360989091440905884491641242823185977979553200851158941112134484909117995663803709821618475817522101667343166192058577206411265119657732430579264540988162154572018708475606085524637400072662404873525934250312227269959434954588301134835138082684979765976582000493531713108163592353326024687979598717404751423281490656635818763163726927000857439138786992130435947698780795451283550824584498498229551285637224642051859439610730777315392290875248143526430945839363489132423314384401340498388657657041429309077517149047446795401513192939322822977857626844182547752970449036579113055095738828597514835478934532851359312291001906056028520335748617013415511794860088914681535220964525254312206491597747271667566281111028616760282890805273705304290826522582961612907637004174411792575677743399570978580000434299474587476698872707413335186867676167166142941978656258075359918225369845860785334368740523563342044393480423522783501143227330928762588570296360739542113555248770911288645404743419321118911204733923440388411155209286742366222451172938751579504258068523912868400145315495308507406283652122602251352895190764022745630496134556453287480277460931084296076371640673187153972286953660506037802080858513756124583214341687071914879401881924407378490236049450820935258339631782176106869957254285868531120448329157320744303840283764735142444331866458144388694092518620105047705120109990186035030854951091133622468615967774138465053231785672606763873389934716813723197635624483059043213778732345128774184480561658136588484715901315949615223717473187672910649234843723736463701843517475211090110648296783376127841793748600317891399540726016846981125556175939286429823147994325764401726420739770401010308647647626369051787588655879618870865811421856874709165316631706612660756448312884334259433857812735582206805718204699082599705941602509329786209838672365141305381427307118300265009806534715986667317066906317038218118748686674862719267258531189007864767149013122894128886861270260832817393575015344873033396235762652326615023473525922833264209887022318587836333427081933225127367229700374149623806453300327923975594102465809943540174606639846641158736950763498085142227280410430958324025478603593651201590248775238126015502218254611008409224801703283614264247835450741625432623249014102351559199226140757684554128627603802737173892784623601426540080473861393831778012117371785617772117573377426970588954691165726587422353242251408876451165909688691971347644096194435690754495679635243828410279272931631635317649206801427153292347145007125754551315068700642256255161198336327656485455976538707276995824756169673392602501820310164323334702247973334033936708736110174291934588878327375545165124245973986364170606395030174879777021023371896033185480505642081004516752273473273686980380238682185538235334970072287732822409820372488754124299827254547689549973400052355051716093427881377499189541237114529073702215311565768911620961110716887997448306888131097989474247671363261406473178014360517162086423202523176692139266946463219346431106404565733853492351313087547631369168780764208855209516481533116247265266999504246281449476269997174255679791533496619598587690153577430070152482085030844697544162706262098130145543976474055890223432004942097687334267682060362172700298875507795355775359686172415757292944513625877794767064227693238004656733274584380218848193722828775509159921599984343098970055877917019483120820250490465421622782652280749802970715838253000825003889411199188064371787415803455421814943872374790571077478040234811707632125501642573775023065957481812607847461822241490725141194155266889478534721011825593212588108146374239587603273209988176018924699753383267706715138387304302423936757768304909801196325565353335842756640341074533511773390190089149431327404079192924063198844459305025301059412781820825270410676685856794358780324884607204109146346519938218591752652616987138349115836068667862440159659924757478095754240827384074070915859471616139325749353628244759146539911313948507346357972989713814675598040123842490282072289791219848206136420176965999683197068886149550395746930900360724367608974743112592336976005791196750349923390162194240305047307193404682000999620468356281083159001575673656978534418675141069992589921937938363951066022680508817668621028273200716602387582234748109420967003406073918679705693641929200575542221489444887012284302892331163315237294520006759224467183869535346022577569127059977910447425498166633054602460551784450722879198868620562077652271305024419657654184196803472506130660702535721395017816101501626841083348961552373128660195951711604746416963701095200688352990268174039315972308148814612406885383094079480581560343358305127040009539524932935623705903583812636874452855614493301008869990677070751270121093399524751759983155663118380204515649626493277103938202122693825276400631851402744636472652385598214418726353176413698537727887424463339856959897801580567512739523234799984309553456673210229388706896102796524127373442757123159958236265905805688810759546807544172048782899991617318341462416696417231690836670131626811298054067984628063117671569538630642673601021468759077387918912102578683794642529349519681475108065551244601841584698890494393254868891236625363412235736482104188035463208051357495899569230367389098488196135904764574223456630678355425661826750952041890796373910037938726424811028168059841976381375814439305353221141329252591061416252182337963437875507686641472257093167665352947583863758538808619099103681486459205803530233105337509421553374319959382091898508954944595184569648161954844861171169963587046186806171400836121294357745520561336997994736881167330860237603376980848555494541830655437591144045369642876562974734887334824477822307628898580668484869567675953488668566851430388153165969928058531886364182824923419475085494565088330317123410452071471268051301295173619586696236363742581689934751497421280164887654368144837527663255673958693130959169462642504469147339833078070726515127553935873144256013457400490975376805342239736668083182598352757163271395178437714364247276687724441589870460880905917663980099890348069737852977545598328095552439636420647105758130395812143226260158436709675405373765516177947664192443434024563754526017256183683683579364342080101885418614271632265110970167477973334763237938683238033746550702173127379332413241558541799959680089351882051162472019854252754099003041015756279417767066656854464319941422441292883392029773475465932973364137991324749610433799115651457891268202042765968205874114024887490476668117450913292932488878855218870590796656551718729337687027939306344846132464614223016049971219958866018733028056014200287623994714868744979220379154207374104626308994057253939409025549965597012062733718978939428382269656989877291218264176957128190802720802315793641816841127059840295706444365405245118887252334216554847754209345420907702116768716084402394673356441396325628048902612458222431472487829657234825413731623007776657716907737451026156449417071984700184749890918919980754480171776571324737300996623099157112237888317821493600410279878495549705730654875100373288125446384385174122734011546405410559851119594950015644129120013730332376088371901717397577875879047090531256795771206802427617988905488254660886492983939509495737315363546450371447181885414571556066190593114065091410375473061826250630688976775544407764483908205703474610074683515989122885961118138372563349768071079831862846581073361485777467238915715886781236601495653889204274624185262842540740599685455079772638818989020538158343799176752212256310103573076802134837908111826771242790409679605311832560139908874741298808502978372650418307307342560416807944439409006096070179400033055506002190342737030271022483086083191435109621052705323768628378610353008328836372880929894738139119710701819870593217855329781238707932999191360478907135408731992882220207402143402911627404861058312802487570111044031529765852228206707119067001817762500578238391549374962600151395302653329397907026308724555690240209734113511440289733631806392941556226881103445257704240799806973587987047780339014324055158148147199174862806869099544418247550441343211890905587250240357737426393951322141836803878549712754145820048534990837073396731550509301021128149224918944956198124808722130903625300109433620993756139301898871783985669779242729395681890592582950176591271994795307082682528153648045018168758172194586533544974441245702248063614514246759100140979248184525684906356352336589390574131105208348601088095180303856225403079616821643001107392584718665015804963208939499346806262375418908562452420395460840543145727235154224401079187274893159943487530806841535273916869845050752432541793991105136322806060774355628162312850327730958547985984415731298826511058122319300985820636544597430606951324913784251982022110422260031731477050417269207028682725247147203331337009874877202664420778629826741515928419495638877147532416146627031821904824491346752063002792332364508820052873844805864518371975472357875093283620268628177631550333861519357592998814308512692993114209824165821808881360837092425718307315874954428475507416788518209894206410387187333658051319887626151481603157812713664596147048499883821637939488204975920486579554763212291450543520438616829691998262892213302049470392079352013576744485750741467084194798451559283963342694469635529611858132759082110922213577205354602634052876526364878374270436589137655024725147942550121209065767480135707878369161688980923737708112844184466071979102401202375936160181393447583855123314688938229224048728883775741212381855066958225564863741740592940852492790643864687049827068559263718752582959498415451390305359493845127269225697136067688288888498540434254584377255132436207683383120751861463980906780357945116301392656668282965772435753849112410407929348115368537219739564110965299257567336168374879119944180454411475077511142592877593263404411303776868973390189758239082558363422080552011097253552357029799363135948647925437411998827709084977759904675601888737609729074788560930588837616581805792115312429517640368535042275133916989063771114538859431333979787090315416386786072375194475504965494452385634768690634138756184115029983437628558090402994121200204836667829289887945471843064984257882004255987442600205296422766143756729049645849214080090839592021279865849429314422758242183857551852659248820250485756167334883544019815999825819622465371482222021037119980806970877273174823145469000547700271741533052020709395069573533518064733394337918467170736919569426693481755426305228781526156092022429453204193569164777390802817437633564702995205520767860268998704427814990636240328259956706364286709632604314183036405076104589783397615359994945622855863344482147447702083786309624663780924975356958683067523404338068735823048192451364823754232172227880447068326027896259069648690455770776140956158264454403209995330486387450753158468130254368555217894470584735754215671724542317100192779223236531763088891634765442620234321921969590402664965214286678175502275246769195551993428740716526391814099365764136619683899956482318107298945181415839578010307649734265497541315699527665352413308195190762089755881287725516718332214573037758444888837749935548759798121688110232075337143441904627518187160024856019485762044318653718427515137124971079115018846460537631785518858631908169475307091112265061054032251885208377619003118324822956784935203964124557442114327522867334350157019031621501416939936223484933937198264570913063896778906589238415177610485527554254845630119082555585021731948960905134045500611500451098490259539294421991251700858838883839467243587947385714633923852420216227629819212058868210767981418252553241671421000697568525664905268472189965580022471311198230616133453423107976474987637295206837258329026693990482226416951006298114205556602764729949239363484493811150413903325975885998665444936653584859870585953944917321647206000891514479850790599287404410575919725383228519119703544474624579184835994776837397769707994554403248957084340982985728211544415803574050945745573678491039805019540542891128970905910710047166176729595585340106888146228660958365085329512611845363386270040392097343541878726499130973935887722475529772267995299969422931435904534766899247809741923068408861248478249143607513676060597507946399626122704962538598338355347124513453181812596408306654399085961378851755951817034034834133009401042263131250906566574154120586901269572627938951639117193534742037631390610193513508852198867429247959946448829363916701079047229022722028419427887728209723593793300604932860560219918218637947528947263884291165721615269380696026591083776011512455083777483060516892702754123192995793668695014653238999276799867280657494146476076167924548793876341082426018673281959325514729596277353488085908420238538931528250780493708925742782944810297650114970163783092573614128131406058879200059378594795631148685376049198847086049256345537907548515740591398591651466571480861554659478207776766134691735689103267165512919296156049147498107364721486756896116171740178418009954392543766125013577481981368403664286687027208473499197776869666259627535877405393953884173152436982472143556300373138018290327128003747827924959827680940973237833617172269622667521210834829340505973687076830133407573288128173993707251334247210995946038986587669329972097802097179349748854267781423603973961932282955347052713664388506424213017029157168309572457873321311636749107880280569247937822680231647173097716917646614805629133780449033529655985906206592538965407620569472843879084418581482457674731441390966766927118981945312198388866035792284264259748442787598674596575783674684492478845555376095752159439713943440673647410941739717335162367794164495354692075209248813699592115579176543409298562039617585989801239872727765183305766502557946536628558371954746357134903366313693126164931760880061919692529975325475896184352138855642927603695731894245344144118563252955280059212803469298930067108734006155420966975265161914401158755462528886346062425509129409784909390309334472928417579012099664531632295626467144691229895028767285371373402672505184266892481121252937359634056872791268237322333825754940678233630237691912354816886936678295576601433929083075720423495602700050073870254041670575488625559913096086152478527096219693569060352535363766289148581666489587730960080135937075954388465324352307064631155520121089797589058145426861529438292110246328912792660249553141396370766426577399413396890240791859866202363794090728921696508346712835764549167331310293555384761436888486454297108907658006643246591265280320706178651859638445552617004950723789681319136956864300376579107872298861318256670841793535735784364385854694485762583727473939004331436276149480566488972359771086261499364208349595253385349410390495491688986417770455438545111243149906817038009149052331936672752254695430083892826577606216667978513484263757319008062265936899057920865194684085843264401353686142880635319968317337480877301199346997224611018161477280649524542222704984864794861341668095522897014981462406144503168634038943009674817366995482220445324390930650247311006668815989803995613798018330947165370360509185226040702692098737718696410137960900097631194909549269149320297522076444794637965923595611016371945163268879729835272963852368944003001930796406237940848719817093441872403412403786106361678073018883054739251526026046121194928997186915413765289592736490657498364609908066031482686910954968348740404587099400384136094341859314905007894848652909810632612600571118259593246081296438724642249661948798301110389701686130790689175571891535449288654345136469181135666834832318469907017579484611602737987860878949911201383110965665899600852370377565339074625754895195473657506163279110163214411830076421543411561809821051961108795406520228966386462226576336194581108228767923952767440122925979052884352871198637630838093680159965117175746733601736943049122553867629416892991001310983096234000928751983614675165261009500136277178861181767041199526523848614492879708610646469834785800839378392590901481518985957033750566997618983620670342322085937123217824639983794169076205350068436749302987271935263599809402480388813592113995304372364847521586212604036815054162172785999284361191762538096278544083666850315175864448399299141377051224668215315117614833768785095464971540571935917910564052137777901340683941352357090734746291635684221935135750207245506970770790551427560223310049634943359137847412140574021462252049067655123106000528956694256129919951516772063403118614913950823368187716834771336828375715892297402297678482887070999352444894266022777380587471775966043246946727066293624691130800991198705138851369819688884734071710941475448827692604444998713906640540533361033522733877946329493168028783858227514694023772783227704563674002908338440185880843881513099464314657679520593600144598460095352114630275057137247026908592897837914104742431944144368417997603299545916545136091413899824916868598858693109727358780011963942902371146961346957510301597538321079980013527182632624969712241731469028042336102873836859127955597383563051347173051810607688091318094741741585423319582610964111702839620588238918712423645995629553500393927370948530377683114508690462682138768622876471824957187958699817962179864718611805771497658425276549740288885269233049912828992918071803147128645218721488858424416095519854885925463047544064036935477210386033770029193774872963158827283541877584151463734602997389005805281114301242320249922551798850299596375157474490137876679545430818821745012973329737102516719258933015455194711291773529737744056770039802729474872925769729386901358952636578606073346041616774283826652537656007395429314082471778798084635980822832725304581960690813978651192388834333422243849213780411765390275983408445545281921146661072779727404220384075227306345940073124881757842935848668140471683646661158781473035948039722001310258294815609793097172802269922716636101703801740320710799150992824122536035914646236750792994598993264785646438892573302367725021302219847926270274878623246958950818993021920956812858921384519946196062755373343384422175220708945170549732393817192504293297983096398909892223531687830307062513918191379588362623710807652825939197326603619000009914138287430642762147452641353176483026169773243951832871745521410396116161336384127499787553521016268801747706031636955204233899139768976736443611016806471813853751661753104055144527510456744295279490780101602182570846354975336627133462910038604418292512724943627845529935183499681994146026670772369882588634696168975253417270137779178303358167252004135133175138561876340037360573294624268331263799006247981550764792297731159466499991416982549887755674545239527319395665077293803700353167007366753609682544159030751689822228553878455363862400645357025514484169329967264727189717782741982390928673720162924906453593884956484876510693304583605688374078680458721245691129227384443016269074551846672181426903561034650470360643069166999551392920934763750097979274991923709849637808271983301808812556507451995568483853420988765508050956796680453679199599351835918127017087554078791177944441496122720156367856626107705966787223536161600947225070093024616592623020466086213285156895329866758109966914501228514801376871208214861077013469814135771248811572367749920856579810802425800971520641877927796779421065446472701238240231950958075194205397420523787325547722220491941896408929845723382598802953107114725509920080982282523085210984243751266847177912305755366274513049249236657784525830670829917860525004655776140544159922111723263801185756477897430572090277765564462639070067710016205880210847095688842036947058474649431631748938968957609239657417243426394438580853627015356233178609817246613531313297827962530194779011766718272698080719916244555930508461230063827249433516626417301068659253611517437789562439734734068157925380564741678912671243061553807449950579795978529533282207377259789841871120995339050876958348925715860583939420587678200305313011705844101825885038477399994648660235487549995897175756057270153647595834964885556672711730818260419461998694062720487001999959702888782069406811347264589285821942235857323228629276474741613376542766519235916118465728465255175152977494223640135252668135842807645391069084176433321985173083845894579762592906454872742481435709367512847085100653430989950749020760549565139125155606290832407284282670142554546879284024105816245308347412866870418294744770347851425145833657468498302122881526771560105093254632188619873038832646513665682997020256779194632554750468705707933367283401994610820319990764616587474035994793861956125470182599090992963760951577533805063447074027650479521109461453856321249203958352689862512368316302173674970477626646926637624945651505258865317874540889428643196680785984921023653099692698212231385178038738839148537254020483103043037218811308855326895580207999677000385795885252364358313291020200468601073216497488807292853664415757258332471160265779569576438723961466933463019456165505205067637633081374570158190078991088792514110873771144923547016272215659868359886816615702110705775266364332508637519503161174277531548107739759052371000654931571629911306814453390713980454270765252095161644903958359390475499406860487218158023294976163181515004588791275650287292445701142752642660824420991667885007209479213209669106065880215364714876080846674332709308680018300053557987800285560945920404644008952845248503459721635036256825492490800126556984879512411867555896655845091658495256024807889177247121257069578512354812760197095687330644726787190215743908484729090751870633698161524104589464181189973161532612111067845002540932605854781367094371340185427142539331348813300582149485758705929433638661051579613054786563125729016885409790124498537727424271603858396766553975665895071436894658771097213965520331945341175537124229909136674843167986974363175078334407789785040003890076997610478858777214032483816732936519775727912607240292868704740342777723410415667826276033633398888752995623528754657428159682222053651294495552722404005254662005386159115484156929702337489220866541808092694053441427734189003791657776284929038603516180558195909347300183349663024833178035601232414637857563255432401111260838332664860910873453295206427201365823642884176709791520962985299242402548609142947648109108934348840165615631535464973352439565382628272688557291714077061993794268016303948542810472304035184371619151918821341880263732933291318624905672347034965175058281070049218905002969064517596668152908824950486884252090744621410948868640813912631626868398271112001168239926664168408875735741239533664762791979101982989041916116028611519055082655996852593260743112858340456363720210220462195703006183440612059080640626134099469695156827322005680446554592612877390872375792817128806188177176402025751960181421204164750744385196654509459622804052866544443370234791530494818444220020954964924332112121288936459490605499702188619912681801578436577511519750116251686334877346123233818740243070181066889780830020670371878983621988622415329793323756709639724180830675118824678573798083790026879338009404924647054422609945382085180690950350943445644220140217426236408296981193345725326311090316924530144800893063523464316005288598026960327319058479013132387405097304342322713626602055194682668915896573268887492765320881309432111728156665189338788205909532773434273977403404210161187908906965374476668480546087314075531360539531826235091661851073702642028225247860371317432598788656892222027043911096493024655301407926356885003162543751045101248584378711283607220951957025636644076545500649572230799755461532990783529305046626095201122820251943605809625618373497021247747291487038820059965292368906889869651083759423584999147180846807875987150628170470085428874920893362941763891400162068132205394324841651740086116664141916155645375797670988370732498166820044955731614671413046196061550577973655971690251019969153239669500338137487103186502225671368586670837943691387191750205052651295934234446393783466580432012792438553154283651558106992169818621328229369261466464970949801991675850635823251552910948772030837980293398266479835608857268273302829118705825765203895014039354551887020950102373436521553788165152797077124769015087351030176950385861299289686861179898008060734974820006915477817413747088457544519204611823943228485477076748272374407273054373751188082031575686779387911338444905664920498690334137203167538614708614665855730956818937009565208846796726956122361173905143591100117799076376207869205877263114631697594567168647540336946306518675430996694191516156050003396669947055292804606037531836017070985106184734275365188441562886521622055420252431012683147249169163709317667732536997267831497166887545034116412722090079056054827542422945758654955168031191815291628455768236940030605331968620622802555766361407293684751150212268662182877118328894488310911429625275250699859032506784938570135863889140285979562867662385315626039746916125151031825679839649127845873976109973188167047278362514001950519748502200034589637497721838282824078824288073757499817211583782161853803615532097042000288353497853879228152632564939637404145146066469864874568730402014097046497958870379283366373447975353780366146842902458269492599842286301407973745880080893114581774671746356442964653078125051860706613944530519411440455293602436487105338919333023150665302652006454460124826163668976581743586414654073303052914510782156676902664145164723870291869238533358612357055380855979698331944857179205769921584053206316483211533369423968293856338104651792735476904552243669679389844382531840479373133232247770847137490068320007706716214754374934588220337172253597181163628092521137872087779503659123014031020898417814309297875190438463767085061116584794253999515507489925841810358503739313869447293868744372256963910297789646887623929505041877483795833711134063169258500985076366726184158820787055872679015181099318979334203980017428410722980766879600662264917338653924748687559863497582552070896697505740356367359322536066492848628410513067647252445400049043271163980465918733146407342550004030028610197283960600997510631666952039564562787603002733699456027875690743513799111301058831997794251621167677448992320090954617949734701029477515474533916928651386515549410686467404191924701861029466718805332713477023909072756589367563000687568040683929834662156453245924181683553094857149015218870535662034130017338813441211157632847815970215538358434449303625881216349054836947614554258548412449611592639785325118611097572488073698453104485582622193402650876299702235195104346424345135561820305173060042629543985968919530130909842311591913255041414370735050858852093323110801504817180729974827785601967633699709475171961077160537009752087057328213830946750483112344549872748751081446740889492863393524451682730525921882628858780886587322509172463576028482319921892472442635088817663640793659882828406428100995804321835285272030519430485795336020876119770715436623753501870450266770839446909036971787810205171169305010891266123928993998678417749651788032861667638157835093570372436499042112582302073455423373176174893389334501464576371031224756131259895227183982375853329339978595324539760811352503520292183768096501797524700970585237086385833378580447154249643637724681462981571597073653571151354459950657580310738269242594728538321276984336316791627591951736880511992072440742369569281973372148543087011436195184869850629026140982110003535210788118427089483751763166022623724699717648564792180738794164085048896015799261324652923554117146081046443838994941897657830604966572032416146705984568703716567594137686874857291058532251069735645311373439945849649829489522431574183086898857762325038097821098002327062259975455799410571563210665318947015964489583800950853505963024819654273364446987330653255567813561086995910914546756456473605932566515086105360252242489059835607309709465505497317642926074544876121529939235006865072464763028995578201394925904976288009852386801992271733555885168006048138910874896440079046996852802449611342502986801181142780996782464649318509834390609769291293617343919066385671591781626981826391155745607966814831119251552088872037043394131621876078024762589987068153325324533005391435206850094044863342131494501842733405579437022118302046669845745291411824526341029928491406991719986045084967866895427215740515928454696569347943169608300776878610079788534660465716014593945499227673799508847239256824354287108962025888960097860739982998657380253278615648540773706026714649563340085229897200165193277651176126673612792340342187373086093198200985793128624518506845196094775878118648197526303168704099117292790088832249002966522737547865841902093446529241008881335696465142323492979658755497255036934676555290375599810723677876622414177104098265457721575031522588904316242546686442733811793595499381285448575047307033006965737038302250866856869092327548212913718179494316406723147130007497313771160431901247227846093555626348489647364862950366803986893061928858523406312901491641318170870460919496675308301691250444240181967306815152761758740088884833678186017752981667390692174678300745164196990500017018206882560592288620001573933623794069596232474585051275031016219598921301339889824954838352245250110674958265601111062517666070346526337101715427663183793973189333322051939226823799284857075168847308749687240552442375152796577050184822570749678604041162925900357608954125398157665228749200628837031102467886798473398060523460905746140680278821944666286324965044392180303791073404185621044076378372602913650207168080991575746357357801440767917270879072430396725595280858062114978232879974274578449563887173594289194695908355155127280382788966830911942323320735807649453300206438936880216112506104283665415868984421934818177272635448092070013547886376011286327286591570396710914301514183063030580466082780532533882418761650464627843440635463724816178638814884356211295698630001150358138809194941631659598638773465456981168585968510869920615204526368504271863022532982993350654386763458819039427982644858580237487986610709421596577800631850157576103188549829206058893830751723957699173250064510196079377527506323100555559152046360748313435309745742791336952474022130928834676235737647627504375158927373926920265311269542065512596823754428813039806102767615357585581293473484818351474922390387304974564827335993296913513019944154879379334535590710411401962380980390930129167334012733942721681126275182441958989430614058571157400566847627742468223746880381985997560753247639542309393502141581220967589885104665541116160402991073224060641485070608571377757802096324800819606283206117026767782212843087895610094160590648801767375157068255899352052032155973503736312523290237759995904202824668895276669133912386203278947866420466834979350282547670788420393243419072459649605223892856694058532153096577480923180519685372242448545650296353365653430624721011130270356457532330385093689615385556211172005611241773514682086017396596251624205830673404301731055653842829001453658147197530298972468265371410284131863389824188947363605939527918391114803619861605447848979502735782829958211390885711895053768851326968759357245045868443651104952301163461671869859379303545478858018733245243705481663441477516293596764093036146999081591027206895451620151191632056705041054717961293556913285417883448575846761558787731030264522878790526339786108910715344411396849605629584282277494974329421556598253943434726519588440627818429575406585948082954030684706970320978632715262032748826818718546647231404684648122003380405413176888501260156180413671952132397763583721391817522143934779557624438586635358394256781605288632454586951066067985510516295184726132144405138401574874765645783586800659428702544173961018577102098588250971502265837307300718500665109621655740819071917950288669470708943863907175767745016340145535492169089890096330640476663751624245739049500781096336954431958953515570523239935970033126327037525649751984708575977715905700976862156405494251632511030830348509959680224791020020463816366460105375939532430174511656456825493368677060848435353225424124735443560479130707232171494098881340427115403823918997304478065459880079748017191272772815796289859464519766782200328317655890787773761114925034723190410306942465015629311590199158965838077964063969606587718007018001203745132521855511561066780188166684242400439987717884000126616069700793817157447460563772026872260208640220446459170550230917394928979515105547918600767080617881718689231430620576690384214511137307382660240564058636827180144880748349404428732435635723358582562977029490977303441595824676620209372713637187095828008791571449454095703686535430578401694274407632447395414079649015177826840945400384277602498684705924952760709382103155148724353841181722911493822724611585253829463268537073016507458621670575342575730883018443541384724701882396270663042293106038954955297598103907929596548810432122418738101400271296885854851880797354068568373399498879411372771142886703953536449908496136621734801152956239562543771157977619567657186608622111389966657148545264178852260439852986160445869699013888705562539368952017542774416144394076564995807283200545335777120113771494506344138309511247699002754214216703455383543029121553341603849779926897492842554061605807944126959703309942495876382990094630188966472987100162028320466347696105569297279099373568284325934778433957333936596110595658758213685666411670292709328442747148068561065946356614130605131667217377814969849161494583706472939280721539782193362281060832446904966001442321528805648431009468424007748786273182566614121332923780221759370512107277520801730470347484438592225936231060170429832605851532556047332412788470945346995463876089959890634784085740593009951927914854382710719193733454957305390139951597222927791328073576123001162967814284217192068985068723775405337754444783044352432230916601459638695790156447010869176033854132882833651465391905808014408041848132276261405749432564141317255970901423901783209176226241689478594363524142914513692638336265073127999546602834825642260954979685532525662121453325411942116833497736221240824547742091110226106727790192147132427723432294019308123394417258169869484806024919056434680507526203586593502819051676895044198366780715613224052349186612873325869099322971085511455142603770827470207846915495911882016076380296367009992157682054689999896007183054526545359173988684038396670152231174164636648827637741488769990493837084452813209352789654470011439454506748426093373245371920901562676700809078140115931356690628386055285432523035692066552682747034518007144445484766582072977535625545496875970064634310761035246606828243729355740158339023022169363316538665120879478653582223243501650774487227538253342907189303541683722494636162154399486951613494148362498375936085974924211781776944381609463829445761358019705268080019778000812855134190847870826302073273315249232751601475359531790287990948304039697071297876437076683115216716517441220719608324580552650190262573664996247002557675028727663007556475809553421830084846491659359529782961844907771374962173899599640065531810792617353749563485782645272461662171461967422411205303662430843469351966306378133115301717526816857055805465741262253480117745967761900250186383919084646865506480675996121441339973065708669265495367212958572443907770168618531570678582517939391778487536999567541002512747863412049487888630783420434397998280040682740368660657662996329514348530097438322077291766297638591909098694032153217689499359074434182368502036084893477553883311452996173878722369310850658186835144701480519615130814617292400666002687287996067799133131166463606475076266793270125157786304398598146367345617003907687572770420858277920368546528416111967947973084567147117264515118596594565098347864624922602193408447187900646719095480296231421375165161445781998569824658532706095527406413545651135581639197004768667151735631854383252541722177284020760421872904335692381676498190038287560808939407880123142323072378760305081143116248537158218726136253875344396040891349072938653956551327251416460697103845269663060667232085829266291161792316568249177086205040456946358284237947094179888700672749663579252060415435745836190467908704858223781711313126733936104034377920561445611662456286690365380783415959983766580835060012498482401744062635164140736787087919258688558469094136342866190913974296331678453401773109893280317664534517359254751024625640530255702055839935514261841741197786730970737156110970020194173648669454318346747945739506158687456213918592829178812690919569664160213829076890881075104179745629246415467040663396328489889253510639196966800417719608741922266415312113041117852588159469339546152792638940085361637632183156592586505970367648217737382661726671397046863229375063090567471589936301548897136864597628110758264435341327787269736541919666894689032765611590345161776282872293666780494573534533125064049818929262781331557775142181231414941748220422551227788543937738228522799986406725399433712764306524031635723694792826176646777790785477007448482799218903083388408741962204923959450786194683330492289017239706226313515064238215373878504265123442558228792579738012160467057650067975352056011012823190395895544198548552781754826633694206251998012882410060990382793809564667168856802836384417594203192631330550080647474925346466488912425600068206859825635624638944258851579178310406765541188195832141910448712358657979969093917395423412580268629827898218021716981847835435480775925061630622359146619860910402802874066679783854115962074252116402105149740574570772917887939107228831989064863374661483746517212486246178949917816213132009247561409747215424082823744340384283362046208118116531375588228506546786564941268208205494092035185359070814242740038205149010523766195008569831786746047496659961909227387015741594421422191039641612697288846413803038742691101557420044369088471617354996850553349339541170138058155461873911353988720668370168005658159696632730418103846755895662364352713391954647117026085828407879857575726326068325907620627874645997502037498874940906831855434536235892226719490896906580986661077613049572470979667067950250524168355853094537054228849126894458669088515119686627076450479279070456192473347213519092310020701031397805230892898309820579533090762559752790266907500033777169612640882627835699407341833804180928508133919647849717178017921283484799260542128586829953152478653281279427406292887646953825426848824571676693027682573063520571251867222002977365641704619430164681070558601068327289927088234899717097223982691406020426417726069872139463016787478814618627097265304623462876473686066173608291353669969444324091429441520782192379394340205441775777870068468806278098403306762416684786591030317203937967035584397403617617207922514874529028721715570742987795202513734454935898291391201907260871522646107664228071021253337712728510163229705486421785926065462740737722838084645272069741001576975252368898670910491879479509524659364654913425822117632954869306697957226245668089533313978286903047059169803186864769726339849984183036558483402388302733531331078235013325983088156995743548725973505657373102905540838702473294209001768846506902521361705761883715412697015680367812096073432919485155730276900210336056989545093857686049554661987911757002521772534913662953644115188407566494088714846987210992158669774053727576027022434921818192547191662308602363920961470173484208093608630613882114359942083665611394012305832579809775398674871153068611739857064566666956639505102455175018840775722966059887278542447232714562221999093167225846088189886850223841659613435628028314332459912606875747587645928165485903748250239303975159888752855435846386667160123159251300433111931171993120315628354434177051754901453469938944923379161208225403333865378046022339387416717617721073519673392019458361257337833845212759180302411368344969865467669737099209984191932187278241047073524181652279601638154442199739821979466105784169061978152466286381289928715693460011027469805290765187940015111783755190759881117641236248862828518038236422948659703759176026548322215742717585062434522443511964162033411700654390289309338447629571110049084760459660252996033698943846330479873886344721894365581150243613983547077790292582744188848328259420416425071922008633983685509355496694677362991801890917356210322194578598122206375303658248575270830282214233146543807535808001733241132353887668659648202359215224481792324612898158153195537650098970293682065515253183659133438578324468369813142757019292578359475931106603543476444699628778691590016384857082287607760231450464833017803923652731183550492643307210185793090627503835793487450155432131918803236016059753742027791694932852998312901753300252244774635015106701527828529993887483749698838619827135716771761861319178071354867041700673324826127618059431981248700214065257104536347144640147676891076088667464435976839508163587844830769164976992883121265237474484881625973022620903805692552710030205787822793205614594989353983280842311458234459287052896760137911175257492122744793696639439714184418097792978365355767923300381873025474890427259213535571906217357415032037058200134717700634647500951270519604699850075897281162860060796053444343351121386809138096180587431081820933153004665551221522642329934846339540920408360604688429331156337705369751518818689459174250178257924514204457088955968111895717157516431325172215995017110176949912379359995859064309306388361239907940089312157434815100600333842573256710811343323025076237617485913322442270468094470144015256102106790766420227037514903761942775433854553360834664692979801918825799207917014104480545694188109051862952008877461537604164955224343443018074523269702439906918235759190989135028754692414055472148643376700588809821902655306447179202113359086716125955305015157021725088330802721009234677115726081639210537839225165501310891224825876412396310874988098254439946975566259771674458951605163245402547180503427932694515646540783170966182401512604468288867261489469980886751104229327339509615396235716150564631582357614337527239189903925625378739776755461156619455175126666273834842540816972874699341077105022225131767618964193562872006688544297654346078377499019640497987629984768581382468151568088408596837791252212980373037404135518393552589626269206415545407032172344276844416945917747409836802084130810384814547212560192278869248846080736274584171583972693523031690878390360437800796871584539162745154690772064214723358350192695661909416426154080584351631202540008099341480897796294257454446320692994179308284034301629447292795200120237741685447748823010418077426436366867822166007060369348918657268860111131896044474519109948516538156961471269971880183649321717077011302601269861793150248074251227146570052259742708578397015326185809755604469849064728420383449049003237918624990761429268218297076489126021842509110864699380890405718733644759579831009784444605053119497281727136923097041444119258877759907031833963048203806706178371591181934165984016823128444371899579752184374648155803826489236861109145525216707407856288285644937188075396379165334030940796859669174376033588820856773880457384133972010871357854027413073857470195469931464583271998454546677957581148673807503014218022034693909755803062214149055931877512293178775090324710927316055097116053992614329879034225006662860949933011500227625650115563503781292106964046782825492078499049127607287592418351906241969448510562679847589386180510817962364037794003551691684950050259099082843822288524555598435865435648869595575839411516816145305690363365488283903268890642333444659219647878078163319629083246705103374982325058740936358251396370811476304581543713011521114541374719567755084144989947365992574782599742397823141514039810511474957053762368258029332376550458069628660811226650120396056620426236909640233962598705528090798914424101559263694687082815760227158688701590797227690502593902512218268636723024806189907119245101210337305354153543492931460626820067635354078418298918672343782889658654810935463580851435145761735175030500362142456322738782561209241644828450474380969198508176232462488703998067742982115877249830401045569768193193122338167310024002666359084283068818596264263134165941319413562343846684680197392896385496908061100689342960153861253060912494074029458374534840343565417852294499836548427272659230968750807109201124656250784321504093486482162616240819851287116126372072305890816140695162606265220248000936864606879582773842625865728972960767085805546759372257576429677105954842455960396056532433909135693185901205911496897191476867428635957314945569960782734199985373015685284843100712621027737916550582683712017550663557701501525387318061714672027238641745939328027019990562038905694080208847781233716983482233852221753751065334744755605760287995038410702291425193548827473294616770781335417709699205936033854900595059515873476009564740131677115792352274088529958995340149574117539628449573609868043787376954828656661302385979692341605339329940371065298102948275013326171551891100079406371066856367054379730153277590456060565170127127580534827148544734545070387438858930724365001091087976461778329427122837194050896916147300147374393312147990456740025065470732403516255279102234915917458286464178829186971643013518395851755461355573300951415264335170899325998663742475326010206568303237700177890257859224290546430024323636109515999511995780223501236470084569459963802104918012693853153270338686847239517835475420325348121564577623042258869434491289888393622466749254254075078063384471150978878249952021098315490411409745009660818881947376493272611093910708320113132148257591746369015727741176252895367853389509285074592063930536642717397777337033134933070752150328520123609713558885187915147346586615486732521759877821557333488735201697978440803963254388924760710842507444661800873263172233977891642378573686276648227095125822893373095659610964091806699716295876124269663115924943584750730981439473487107401659176803004333386438241044878245514365711905715948969358714152057435357365840224590443879699908915050881301451033234167999568215965586139245358186610841306634898151032434294186321787572479851981489183580329916516941474578847790907700784119627271782975563297273436054349348400238671676245360463963157346088944248375554123386377388281803634282319030337160804548530037102897386892523085709820343068886240536934814773199314332716330343293440450190047240430524447193203194706502402967182451409420716384505826201768505411552404322505659708987903500293502751002127891810156855149509510176358570530233394405808237288304157079944657423507867312406312577977189230106199540922281087477731865884653930100182713007085292061925228027705044313699502986631198976826560753543980868846709170653441312773182663139436726708632889991705467671476783566835863049627926194491728074942802425673478260696762561079632146437445878939412059461758053376652960494066445191450111085221005422778309528151486863351190098719794166059431498702003572865404626818807355284889008512444995074451103052828663918356384576733827528848380397829125862528295122261895935797907229449584738435977436307170208889211144918790873725810175023750238390428326458191826905046365694198569661320782071006577403882390913959021365821212411693156800563021261303678390063975095273735550867030645253510882063169569130083804204240178737889428220110834875092141457875511090394430617013797921765931558801086598298175684953998719805307995154162903324469367841174496356900358836505191986066119335201662318635449167651053324382166811626888180194098768977480241822868656223880824903353968326715920736909252144063366506752860705845963701506029262987868120863047822014021324088230292150088579567142397585730197575446807708666288144169114174059017749966083394240612566667510627724602336677545720367669736185493291232137270092207734019056448065902800682720345752498620873775854888054414812683347748895350521979512110326975666093178671745918024407157213818809776847515701084582960360774575019915755285765720905270934514779457816877130080027645903506830171057554855295182451962757314271212083282973303740535129956523263259489260842504273489890438591430053319831184758569488912576631922943311534264481752368074689496007016212245068300675288695911582103659879917520021372140324559606098889447128626000757423745913883906703904347794905490179635505143883607960107232532766712752307953020921585359010392142694132778751693129955331598579771448726074049649650237965615161161050480395146424410510273271951841214226849691336333282017734624024592260220052297080821102274653527015692338693993012939858205874097239226035299539457042610343141090668882270921395974950192388471714374646928595093994737431600715846985650131637163860265973276612415499945939619811230932506969240051148498419723147850647971223519167116566321481285003155811189231093068746545439813927484130260500359955012602261070301318733753684728695898412401898494280214548870784426717457417012741943053885019543788337456460471211491769086316367538378060908385136767738002959018503532309436472051813238535210915014370005828205051046242561458469157690585511312565341628510055904384284517453868280173145240424205794471867982444307444892482402144627137266265662772314697020748673954916071629765208359542970717460891725472806107320984003018804335603431782591695647753983773575293266124222030440892009248635687645496445988233458497073876533363023699954491383602281375919965643329508264801868471786484061725813103899903433595708605710239875496596267287641719180113339005537710089168228353718206438699092317839762519394894121097549248917261221443775887450360456685154587002145386431133675577398613840664988329834251792570393595838064446230287316863340506463985592191276350190313950738210226615100575186082946263896694338609124214635559386158051478557757688549443833280779683332890326425863819171884490645656172862132981836462148364555703580710224798644786314535932499537102451823879387511125446651320902701560616407034032876808794784807201360076836468033338158913728437576725686900165283994429659597165540412888510068123969847270623106700244891240627931737252696220622300415050561383420751986042278379698851160216244237889247712198119996722136128863478668726432450841344462014407927546618657459026834646225531126043031146421799354434276460562613878860424678026651492842069107190750392146430250385109406679512496213353289127540354364704379476872725998453025970914677990869941483648800051941200265760744046475830926137444850557803587774698138044819026346782882207227636270902715087795593971001167481348094446317859916018217116696966083996370488638004438880145308804970671582703821250463042705021389715862937562696566048367837577267071978185754917827690905268243979296760558933234843808130781724047766138529985394424774108577211766105496841022394085087328516476887596982583408449111112465316880155574334490203147552423827250726888060143760952873014260191471029425373101963018882723588599780486704989194547403894121151720977058772784517200415565571667295143011891410574128522906694901538287891601580281213444693227710564975438444778168783739768528516125397791433799581266413740390582031237821056826299457573695040957677572688794575712796650184194389775707835765084026915218898206395346219369850192132250193532324073905771477718382671026460558278500722613782590368771791633457231411769081791888323694156567759055887539205597915480045002209624130669225572322191194247311553604209121975493791059587820411267345969085763058637725970171006595216411181619769270994247766166321786158049157134572506048924252190291924280117003229269526528998062277579140441105311473125422609317386965286151514126317396672274343685298457182375865553538130322669508916903620096145877549616582779728765081545690523325023024526361240088024876152121460354384198680702619777553507160918344586101283957285776554521094072494077237200118743487093765225569469580163969213351973990172669659187720090499544928283142561166518432383530505827014993118788474964343823156073271755615190740424012241425030860216587757398256112242113164284026406623383931161816006357956630978227478766625368031701687550851746431025976051260316471436398189931310596138169587656979320172767625113049375979614180305074568342204013246592370487273578423201029065498175612915659444812310075985990764093968077886667559018784578065540502083911481088738309154528318393249670420023228384561054686801584155306756734718283424893104551902222137365906103957335692786280589264411601812752961932238208281320040951435099806747248652168820827387707767287646171057040907082557387852353485069018904575455623102237424467531697354977549042157158487320898567827481746176144074922740143836256936504871053181587124548128658077912493179519630238363502068447727687843414906354888469237795486049975553512949565755786572648311128130666191568425830128040682811872589996817696113752096458221778879864468996091432742835927475010468691746995319465914158048865578217830993712241774927394663360000591698404556112938967869867947551614258591115455539653068226813161213866295296310135472502376385454667323690314415947800641021326927417119301282375294762965482199803509945244180944432710579265003168876845723837795734432101524353553959136187319953891971551414285966059103998162969216838434124549243794427963617459176442839084443475156790523274240302538540588354582118683627394439916171017100262775835537428213241297069960589352717309999281169901064750332088248619986170885899587853490189313800522703620749460291223399257968506475792162878896039268026269549300914817518950984875245280217315603147407940025256563040509386767659240803601483495976952949882281105121390835929783908216298759787370291903337126703972804835666262000996706414181516566977749880367953683060704820982884383135235891413146046116504847392610968281767102410722948747867957659329734890712084211328338694463488801843575338852303201691250968295333411828886585007640249744948986748022018712808746888269727555396605369496678647403439335473412244095806678001983921809570720453723254031434055789225037734424801727861386392420970875012052096224533319338489335770540688350970499899461780876261947957223788306932163376783532438616473407575213674577515069202388560077717657955364349265422425582868998898551240146741408550579190972984434762157641655957232420792012759126631365678722907158606905959066597712908511285883783972840613701291978952952740707041687044846037034339591280770808677973634205219990607286991064210243231994240639693707691654883152498642805843474438992483206858675851290431689866117485187341348136522456264077896408415217441865528659743349806362801349324975227808866226257514646863846687305313277679325434107613184943616372182896178669386063941696558259545236264871203065246136397389151810335508641251623500655354237447668496982215693361454957070731689858000570671553392234604239491351871471035471973464320385697838570529666975310646971066774602258962130000060695802117756166283124115969814706560279660546023417260873732946582522248491821033956697380665949112669595913098923461811245491699242799950351708087096988050367526010228363833450024649807444681687749555456959071437767431434506565422094658793479541720238603154239004231849552296259043481969752353197789560287036576836859437501648637074812377122892923143939652010287539034762403268984090458827438514660851616513990938194522603090606935282992600126018393915914948135930723995362769372333297560648296637251481024407490924529567227659117268752059513549219048406057657454760392537744315139187437635424046927186812882757529226066392209479841801083500664033316978043880146190386864124738779864892752727986449853976807882945997765057440747339492748652588878075938162946120513148008178319346313045695175689802763717389237691832787532414678420459741133778790409062853512374409788503423175536764824558301631449370092982932086303160003892375757735266310267703888359576800457918987227726320879687129291529968304704389785247531536797028306345161518409794958237697677769274275575513653415721718569399067946975964529418290023117137316763348296250654723924407804806637168008544187331849428502312397551237206435741929037136330671916116159838034409737480926411448003307356586574739825963731258350434272808101096209788600954991030107016751246681409924393992091534045598213450620985663893390129233556528045880154963310084043790743987206182036534314393774568632889534363137920151418384968115460242020623526871291888680929504075174323051726586885304882732418353726885948605419123297207383011544340022651577136406918533334874256840600243228177282945637589759808409891028418716538955056483104818076050793161880990953623799042578992422933763250760201748882994586092382084450507810561334476021246590967299619174540740430103972970359947609945128050437587391507447214208447012934748344300482146848770381890636915553037661588606111241689621571804167459724707473600674429049003919517954973175927350479566774303681931020799113514701108184337286421545883351563334201976776744533151572633270922237437395810192976451623000264098554963160745132664630092843687349710138255393623570831145663820729084025481957654706712763149564920720926089364439845000530561428879278063586875432626159192729020853687458626624359495906068575255783368642430684369322974928398556711160887765932842222545497313748838991095302939756479951313818703838412407037161155592310073240762032148144799280905446157634254751908067636183354206068661589593073102704564015401123517006369592598875677770844074895740120333220452699070925235277777841633760567312527603899488098716216382227644344790704176702829849031668179677010060237728608797164850303994457366174482920941657254036350181317059782289258073957894712344378455657132262705513180106747537916375455419265146782797253274175096807657793432203707592281396851229670289536075842135484502739748403535366823495328799312670751987373282817998687715912128918735917516237024227897980547788280792315348501229741578324446873115212800479982377501033072834149023722059354474804997907438549385455831488952450826548693456439452505970326576169740924881401454988917745011289905709770311412152588477415237398790557608949389317827166361933484110635387871107101256334717011590567617030801087448300522406731652360578860858104824364413638760671323531610541020560802714213990929488424179430452565680773499242658389021109013611422995587751400681735066156506936781992068977923176527616687180060006028171543777714814522518278836102261845713812114550395225703564673873071078469211263525133318776189535015258450051081891158994666613197115398747570289327450297014235806407171598375827689225771452476630026669610102510546319611712634898859243782267059093125586225669010011892227509644875292026564753598534689204947304207140522493906275399119021118194936273154256691815836773863176276929731549513752063508490019455893363723364443016505121601843284076492580358461710139259398056904770643523289495863824729554808495223288422681188960852080372288054604493643975808367286341601460247762131232729801898923524468800685105203370420748269528704366048478418085676905074071006744920731593613135330723000632643191053823125035492933629756102823062466598152691241524110161906204653841453927254962758931799776506415643807148339660945575663465704457644178437222562687763016927896067249186872395319476328029350598387808857632731658126098810219277346828835997991068603695839252321918415854696990110502308287227603256279135005048401140968079194748777998420369522645528865282537713739206427935621774895605094597861954727562501104601287149472824700340197833726601478056174799340207732387164122429131049089886835882255034550168413356822688757556332100006947640002760013589293636892627598756550678090147469123767508410990775679161039181409040145220301898719797083494398373774449352066133067377517203062983238707728816695901517381922209650419699360821513843602190760383188221432883522477876579499661100463352218927187463980959829657687843943040942591743511824775630666020353098626976990336110244830670325859918043138313655900803431852624637523995287846440642903018002849312523530657900824426640233866001998077322342431043436341433973482180487652253316648677328528552377709828499469628076508068410893883876314307441064950155906531381301254676494951450270152480665575546609454852790858174162156806716066079756990897107863609962311675143945890728940967316977481614388313145301675356864510705613208185937862441407051456342270992949463872725935448014783773291276276427239625901849624197821648233052812431974199767358819638444390027332878339543402719342104590098468914457998068650681723641285081198811835541851671790028770515736726935671007396085672443005321939086540146789378450477767878236782789467262727053470340038674336526744510654689537206800064881213732485106129602826901305567760753499645014373120474367306037852913816150909464967850108374296822944157097613462713772882535142773758158610244019754479773179510893835806949429305382520733704386846444741430891307284549289477767197312391638263456184416652371579555916205343984509397806054184515146856125093515486587403268719506115547860873126748935224506098569291738833456636779890885431023468718218980991334302469167823900871595920951235667346991260345558696625010386489360332530773879717327291316846119449229067956856407939953110669853446801440988832444623395960736897329870821167842432153706007406491890040305175032889090048876342278200836544530931473425570599117681175466491311917841409214271156989579960345786105076978740521389864857496419654849374356770854758715393047576581051937213259316784435215251362274146751158649039396290280683614535715355424496974016277338427210886498153097040789898528327451150718278800601334611843134464873710366501079108450982285599135594790925094871151145619417111334429676088722837325058104348811359818617904227410697672354808550338191755952486586418755115584351568413445080074442415792788211119140825043514637826623981087805038703948954097747785472273045487078440522288316353611102135256456012131514085929642114579201815234848053707131744691411243384698415274412323721341010387873787244272758847169527829033128093210903379346695002623944424431272821346811496046353413826255131264403521984872843456317278187502187144957053689984485251075836978397544895533456564386317442473652610417139097585100164406201614916068799340945010496107002274365544744583349184384623349423071857770515525087985455595860378934892130045267146693529454078678976764752265240422430223363694823481442589411015191432238862084147135547851914868517752843607840977157303464610298400259402150043678106911141400304152650488969516144945868651368309779836163115174784150773080771937398505539049242718955389050214614379375499486705227016864748849268460380782920768075428170299633467240876406104618634146216737084252832049800997162698559359877090589052867981989682632577621605500335855245763319334808839207620488510568297266780562996348324701025794732560131839924174855362302327172058678927242594453121614561602332372396902972598285601421768182558160033992896087639266802655830473855634125390830915273922853989051302184940183566581492544601463916188945558325341578685659840443253401735093435290739545872835555034319222857668335207609846141061881935390356731817794700919039317544883662506518738263328075879311738705984220092180413925626902680270353903783574908359255052166024335637508911266640319009133713261513293020120133336331277004260863998322598820819976114957903713445079392364827212520370031346073609416533174810489134239024292672060397175651105159080459172808257380402542490720373570148938955535407053138922040162058118417969948287616108342673362449845377980932598129789263949780290696918964605392411452949447039612328606053847741235473687806626792171664980943368211484988823959116935300518410210832429740692253993294923747260440061380782482316226754223554751462501317754609736458114923068510607401273938032549527563648106513773101322118945113611870497482082732189993905647816941019194933027966782793421580201666365063838109985232684224465418687703374325236615029363638683724774159180627607592678474975124069758784664446597959813878157316553927965199625763966915332033478040411190914673854940610838651794084126269957466263440442614583414414864822964050511369725498350404127616458324937742322471647773502314783617800737404521117742176657797834791375480072870347859264327109111341989635620859841497208749647369595363658637173153233133025364429682652075849734569500866489548237220720017640398615667681772161004510169938939663519128867850406259663945331546047031543764262808924026201245571781211930849707700311142570396558720433814123719799987203652690235407555053043683943496570946335072067014380068971908508442413576369082542129682346482783713434175951427658086938107449283059765252954712373213474028879827195667133707032530612596350131227953328522805247036473329588000165457292384198131735838494310243743094937368772770674952045896199145140607411809363357817961376721344277788410112857592149681810635311873440347480843766667537722971511530147081087697921769260635112692723367950142664594639345335509810180420860201907189797911627086580213871139170071452713634344783062157968488624730777826934082157637913377099845104243000377184872388834062271277839400433453443519235865575724478726206322382457520121190581405622354714715779433876053547793421733168559808218078688736780231464675978397101690505493744900494191455154790492687489900249944073331867900177126144610963844020848936763230693727196983730931867438224550576602159814494521618435172360673626171452849706560763036977654241878187745947757691836289728496406060431789824948305654413022542197341781997792345602871494058746830363155790287917730872220608955969734983533446773485871467852942383428240603456279628770994450277740409107143042605211265766816009121995088612071810187688879491312079994313278760946980272097816505761166838184272093467247601337250353890043296177266414139595381829531085772874112525162763041496494167724207097468317952692501519376392625116771819217855423290598067375433903814313351878326991831699883176987892937191706526449207196782111740070423553108695448471226477255178511902725346296542314761354508801087337019922875493168928611689973969548019556099691351915803913586380291063998027334645444091718358913929459564737157129695168416224069903885095201033213769801780142395232420438922462287089704546066007606754316717435779300761316175755543993169769629446687332523228565208553989822196938416971840537005795393497947001739927062999476135023345340387024723848706999773589315469155011304291188993859894148299055423981759019934339791048901989009935914540757359787228073805933914631328035566668616322844271030930661221572182213226670285364199063378942024141091818522454543993839127859157533888420143363735068615784156493209387808411472148665233631541375584562390568492705109504830080271470974295553190988133222253315969298004760080367961658175360402346709813513939165786824679857780278379666225675284433428852460179506892442036806789958819018990476327027841573615840592282874078968667644675590061323329647862838021470593117031835322153802817019656417505036285500744089748245591347835502176938399502225750258368860987090044736208613060122148804334192598109951111029125719041653216296730895589046444636993948592273453388728181671422879467615599324862626060488260554374058816954982272326381497274915398357733766017654633877186186229696549751447857391820844452308334425975974952382485530252697915293206626911595674495754663995671671056985851439885079653651306990175325451895274517295510940112555795502288604177461184499269050570144103318449369894612833323949826063355513702346997545671435940954718708051074382475844551565250651035801075513067759608626180484422660950129102443642047891845838128428138525516671021323974349266538201199480189004493968888435437824396369654516029227188499092513351276429124016067150796635145213582879158927251842378045761282039079670018164506587863727912807302711409927510778363692079351896390704741150781620986969458928063130625169850164570468598166174723197981375419175599833658794241470446846405811422221084923628947412410556517291218545082912795296419166942734964520382854832043441156376534221213156429512389498205670844760064280844552848024641653380760630431669342842795052770390641103933205611872306827054931292650370207375990529386103646068780175973636854904833986134902810014176531904852895025869008987601835024336587199607740865962288920475491102109513340416426018087799258268747036757304071075693648623797881155934616692744785240624679560602824959914287200966645587119843112813269000641900790310277592327890794163954748355282944341055153490789526119524480891523266749045718785424771546810578998991987998159117533058037557922284202888848660592903872139321543528321894380905018665617497160440968918207585641435010706989028445529891050039383573878251689941553627812521235846898240340705532295312602764967049793700336442774402926647887397024872508287546359948872173218322194638705314888213818780579887469548953077665694405412152797916563425618534546187175030615818576897474150059607072864315781387300993882997821053084462730407353658316508681897847095191765306925041513687517602754494784758953967261700499251899880029595615602724510943283101979242125221928326768389746838350344639091245846716416992194171735732384148544904820567460099470883573490490486596427084111428909788039688135033201958613900322368064348569274162256026477056221580195292735671798538677769261916916571458429985170133281343637237460826800546120375073211695470069595998610643147384592374622301508668829581345462654631164117226661244023502979079085848722362841065548808276748301115021152288839945324526201053228660570493613021751849512302294269535609841344999697068296625125472949439616946078590178179291914997843305102161816603859261943681651237689199384519649636744938046656240942159653489527703928619865675525713175380714011217966223882646983703900232717194701410451192324365027669765274284038333651240030435783946363878393860764986040971763800261632356975651170004707134745249734522363054078400309280491964964059957202553056466619544969382873959832040783756622329384094191703613993648450662230761006495641257942159765188447738864220885325735100006162281459767669834496372300189100242147258168353073063853027173071148448062550459268257140860588122915879912312625718198119128951388909435737140142206604607236119245694767483096721115418368227593661470819663299085660841388707797571841220135153781502041439614612957979885307530590285841467925829980931588751397034322978373197952763011985536018502503851835201879020737236226943093500151056408543816455155892215666869374214613371188292485511287119404433349122115794763387627956026185365001474519078244787418836439214787422488892508690371128552018550270633473316564966441044538425997722519826778413013831946873271365902659576527214826842750414832360467944023552935186303108480532028264280857450395189545919179978676926118333919119101826365291942290202148322004407228468105370152044156203435161105017489988079933044991932921316269597591945073988610418045422000610904298747387435442551675349041033631769968812313603157049332339212756027475246958062074771237054931411219254911823392307246205146073728315430901056200397721250005891866708302500690455649938127016475387459265370373815027852983946570468903898215380646424006343792792980246777085249843926028073598118342949905154442636296133456218342588681869623379365071462717908052668591734379211450001501591056675785239683070769418105939437888173869344645507767901558458671713575055855468362358474893462520309493101642500482981802838102641150461370721057050749222006416449523292968382822165156869036761762633036222751157876612109097757913158825201867889754161944081949749009210261199743686516943926765999700234950044739998638145919795997679831091502867648308498270015190890374645165333831614478633982046219472876066893950821608665326721997428794675476253692118921525843883387658466816478511206812815227404500344775530760736023423773374246695943386173371269490478953184347194313281240941896020534977242317717888634449656941693623292671228721916245053511327709321538355400692681919363251155536214510177774270575016577179786410901340019773968337618284149994088204086175446673243223018876361994712052186662632935646487497047317693792312149513605007922264352917904407122814978767868021220555823211420297084258169504174439925220315394362023245116836730267485350815098785032937162066297246854524856240563723951709285587624340028253783133229099243115203343984834421229601387423092381906370618709261298342169629708583188942098166011870273973735776380671169562267672585655233492307911409605085673081501252070579249096710082461929380142914018805926910176136810381989919845930043494525665362509030917704120506713158283597586483166199664077310351610913794179934358120454106335702195014782197955730449461122973368075435453012194014955817347447582923193223439815251347923227131641549307548545753114640687113164839647197530216552126570164176832621452928093879906030648732909207034980722609235375461239682911667665009380753383933078635040979071807863534628151161266092332115138101949366570282735464765220485888005803433430954684093476162914199539601820482090688397823044605683873590356315238437253640675886729067070849228329793227872791427184932657675479306556628896859496408780248120592789070342003898168761350508527848316995191219113585965106062476829217832295851778616591264418896571383405514438499091711243937560519354174618334297352204000627264063062915827745304954336474369211735574702189302633443886672850929093421248999766488392595287422945264455872219732088125199497024580605177948051472227576515797229377470891565598987598399373826516915885587207279218024086167963965692310611051377866437661001133771300199639497406596684115668453993967990902679763163401217805535508814056922232574374683628337082389464199228825620561750643793998360922686486039657159443248803303878036098803073782431075548193618005071046112717369465069253887458478275943446632697332946149903993502417720355071185645023143700740615396332468826526248688188931267164939037943909907196574756955632900367716661312025703958042937953597324657201975749722315398026710826958735079048829906370347252101929266233282874386605710493985258768618213626406685817466907077369209082034918170021043771938068417700041405280961714531269976453483283643907509362894796771999516536931315791963044003330243211978211658670256871706216216078478155129164361678968922446308993055054264475669991078823917529930848196450548342650566629106307558784756729370518001064682743996157752401730465263476412090448350527911032418544292839487168977506018869136949696120393779576673901144965721837675903594321437236428833171992721776438415106411560866666439056823740410066961827351736655224231185085688418799005583164260754356139601573372551007002013923080259895462678604336671725752208226323704809339986208119442601495541555682067647640735456255904640071625312796425261325901753932540702320812799294684946835909229762826008876114294781645908431964483571055706364358166766845742128665871006594516673183625926791282872917692042035096116383964338628929871973352042027497946143410746784415964963148525595289059341769352563831140131816979713645797436510393746825799235993394442918686231641236467523323980089262402895691469210035187057662086233944326617850962310358978583837266995361390346653509350697490202031497686106026854394274951515131413239400890704168029963433552563962047063580760494471570389746658403839712607907354633225534424084172264102279069075586312142771440126126181523216039286073726676867849203742655475460689623382020851106919050358822427435250178585458188287824642732479067815645449459317256219784850268490561260189869063318613845702892759675110297043758366657427775146658762159930209868669947547377621100632462544746389513015199770275403070769618585654850904999099192705834834635254246334108283542890023019296465114818681235213567944901988356471739183456839508508567766645580836216922215018299484753239815754805994502252210029850951420467207116387469868881770354499599189676005298971570439118439143390010949721244292584272629276896994374629418076862899937491644660100865302572124477113880785284385300540469724032751769031038377116072662704104311631360407029210982990043688965108670449228239881109625847981648905690181175644597726234329917232646799734778874347818858152590671012197310344014486254799834349816387946901889193000920674294733267517526012167616233852184574787997656714590364257153619239429857333069363718649289886692882037718602372347545464004833380212430266529954382679182823556272473382479883646030429023401451828691484835783638707866212498721545630789637745258467211462050071961637996033397925813779904246657659943915775513588209357286046629412123453651988362511926013550233442202384163032509950313464187784088822415388708986913066785461863345692929218175507002736145359944919543491647591280386028549600753037538628741216682247800402409496466414261276159255616490417838150577171882676659631723721146099806334423005045897958375380222027710743931955321247634606321629033746334435082147223901100408981693122491046505579079823070320970633644860693590382977654601459220342844550234406620787355597770540607049712215585488508869760771525795438868310760200508411718756772689279569134240498589247293497845161687862690633032752914623552516663276518647284195590483892725763398888195267373875554553893552398304439539639793870940069092508190103182446973450257046608157925029719810142213686265892486515130453054082484293841701834562673151642981215283940551525903948782866842392255233028453852472567606952138639071182295161261922444146182378898593610186652666975188044730747620904112284952753872105251062871673624194845482714260502328769246047743124356193203204182773353852061623256478008389249366100511353431870613979014295998132865088197515392909521498084084504166282398599868157758888419241463230299266785870054886332539117961218849198236274940487169073657078280787565938437113975141742095239053372540418388646790397021914171671740861098515243257295509553551619542758213481633415075383691961833224198639724694999291748001093339707823645581773967647144950472141264974214101281139995267820487382892799237104646558380032850818131886152234128061886083464265274449097226502404239156333291491807616922284573528078692574605140738774041777517571393703158304722147957777523326765344869636688958182313560539917462846510724509501447143092646949810323426616712406461252451881701148858235916089072680429899286381999563070746521012880570371740803892230278744762733721093542547700948500806437686514124701943701703778081024654582268109378284697775484053521564978800324112041359354933572313734020979267109845294703003280864375239304411783684849711202739517304318460877638520932437812695059114566027765715720174479139431220411651775193430915420484611169052087998300587180602248702578657065804217370871149638407943624821724272518612292872454566543319371517953692685638226841245184663583977029334759058075564500359014096000656271982572701119334233525441553595342790649295955438500726296355269969024078679761902112899831635155164049681404885286008313607384675370083246854022466111671934001980438355157729588397259254518194237018160019079199562990569559250992815789747304641928312648933204591170596066515511152993359442247044150681493338630729957576375250256541589184835694637629080733881539276091432164298121081466056667105709644372227399631690399430467238013919626857278836743100617439653910843138455316128936986517358887930510982253961918548568644146561223298616727399196084917287606183810745877079531356258205427837503505125140799419546364708011469572061907922920299301973528968850272713725836677709805525423394724359425477017460656247296896507457017143103025459805422168791060010857467774680429398378535202397954284138217709862635137133971773393038607415204391103668384255242161054374075409101872896595648992076963540831722742236943457702584173352683339325987878662777595010337391336775202927613792046187557000603589717797626509436125827433055546351299107152200041976525527951909656568325008368368068810019877919949820906871289610214109368259543892815514996756855345795683462052674076746598886299127703184009268735147769859695849638544172733924634000409907981151106667075603979430940295068221796653709964876757129897463885477692200211272797294607638889320284679521125085559199723412585346121229102521204501908044072712581883634472695184698544579747592067841001820587323234648327177229579611980271007651104482776826867950911505921516886078091183824484546311206758075947399945044216661682857921055794748808996058292585786839294268899275391465522817474482144282625098332153998141945481588604832971500142186969945299240274717205363746967637809499415998506592950282426609888552070174954184914167748516213080573548873786663437291594978721130936633014348224703833531420337922435119258696570052767238241470324357058675299553223860124257203437136915115786910815022023190601034873138743703626025580928776369985888361236394252539741075685895051913385040694886920571112435325160948470561088397083084979537637668867524313870210855578169410470584724801047013822112366701973171248851613057458291532790151545646660091237410269641293599008085829443041158415814337861685959043619841698243040661713100949667256231821131971588838670646075772195986573132035125808497989980763052944095639381600578369674727281562466149432620948558286500237959606117331434608270176223145809217108141154001413073134736336461453760710143198872159649354887114424543653880423389894233894402163967635829800646842850699427991249555167704451819380884460359021712547105237778294586891051779010262318549522880183150169075681102535246623878309425000488622598083731741392599927291603970136240024281523061702484794061040156230816918782631037247469814701089710107321752546099267423716605031242930321160155161744318685608088665360244365974808276570525363883778084899194962621985038071737957378404163305228226562031245399492233700416223888166955247068867588166424841804390180080173151962561046076577915958838990724792259608787953003762366802163087789543362452323356103290784358039509175996329181788982355788367100443975922590513169984934520968655442619316326469958507459799931832073356022126414927850959819782061586181741724167023411938512897788789165955852646535557135809890253382209864384807665707147599415815521206307303796371048774330912656554350464801749175112161397179334816363655953358940279481449847747974416931104379208031168983497772876661302695690825829274820800937095139986049800562680207403937343809359143771365801326278344801040940684777239107122796464186864865964176588449859788070256907793675395619081569640601171717705937777209549695923720818816377864073015091438248453812268338948409040073010091933049096723146706045177792568599717762086452035512613027400603227843008812061465184260833852273347738302289230926909322902493735802469673916986620162294626714058220987460026996033238589562981717703962233332119920266321456618404431655811354648435558413305883605536038891732903590754672397955313588440769544674191331450006421519482095815139441531562267142807855219284655067361113352368695942803063302074273371075653204605223793979590774826894070800991100041144575042447941259202839570661418918271820076370361250675415929892131531843957863086810747284513746653183579391855055968143584896021129388004047458810820055964562852035252627426757653674293509539215554874951510746602581293152120790828412126160242675626982810359730509452377744021363165866284810336844237103182314315331055140253952382809910336623341129725117788561099944380239163945665740439428429896885946731041427224817537254626580146841575189166330052337111185249809292224870154678114398063684598444572496847522279736099137821798358184460715218253823062137725379217067690673953112166503592798275938032711644142608858717453262599117630049761724523456209533275716710923815261142698473045721191719117660313737985714977282918486943045818081135814491388428615773601357593650078632133086600006109134746135439181950034765985966977159503408794171429691848451838968463485119630163449555554084746979601266194262116344985085111106879107189330676709052086055238226029208921150201626250368889251837434052041034906633894462132991953651320037242441075823485990619378244861522839460030653250604090220687791164264475094039219711243533490086481488166915917107395168608401472198231880865309255972446684165434250124266225460833240010559469355679009237952704431820902743419348203873303553583125031730434329876209611584501525234768467163330525109294060779780318992834347683959387685805275806847008259403564726648498262743336011987143922751015686445632840432245563251680822369958081248219955261944382774636883056023373524142973498790937569356573494194129277111617210155443171400126317296308557109518943288721401389990155920837482176866306494568073581771189829627838924039189365680408862289134754542718043559475570589254810325267672634200130472807801277110962442364096364593206969289609071934506021074234186556086488089152923899638966011845065146934227986335768345479983013386324649686882811586533608993327212733363048845461573086124441751710451687897521527685182890589943428948213447001854735247778832872591926140586894842477778999700092761321586907385033051201373771881593800964808944642173024064526547812892530907420325733338542085836505811345648592596613005741494947280932913562872538927090662330226973440363064230755177876027474073414341663207792791443270549834272586792632608355870938696389948588095521285186707671747217613696862281135090183275023548711587823847661329018563712059650315807775091211155896344980487171877922884897068891947479584355211849223313414897255562239554080220258817512843509060932877860826238441202781078493159461972766779492656243986013764517711785479768602381903154955225318991084309374267140402041761898416271911492306513753147369901287438175137818001532369639390732425610010493449903468231759810010762546593377969972986299922234605136056004875358886217474659381587198137511244886122751367031867015364609554728325613509732377986089862436481352136766486240392021836359685224011266416024146882901639678162862971897994708861630616471507858768087216452658564254235989402442169311599116601891092473454436551862896294573524562487950200466234448350039981884009555643510026012351736658201650641362590093060307937424152631054626863297146225041485388980227268324214472359221290212288715771566507849671312895439754028165638580081161001242723231797747465573559341550004435434739453663658960340008590390778848876987130136813260430926391274054809363299538043171977501142402616183066296733511086117694514128744533936844341491495737708612953482375016273944231934286398933482845290219751471991789703207255256837213635305742749797049699586323501824799009678819938166564311880999466363685848870625198414877898383633110608733440703299635501722524633364214488990053893703944799276587984971599291747650057522674513701097754754370517458457445501220979603044556846503310568020922711585779288373113059041673657829271652496255902187362372255266057674024773477936282542307749916224101911249134619985303964725087602149118191308830437385520276890741143309725651280291858929653665841160240085202645979654855823273032825736690211485766621851225995149120169840504667069258797373901197143565025020528151030679338027972787984235733843736173310092622593574740783330176133496464623979396096515463587497653512380586976342841376402158154003356782984220577234964912610872078004663582586136912234315929641822409405957556706408607508053575454185607113446407154243138661981341247469570965782136325004456807495951696232384540025044074529739979016226044781854257142365524903210864663065497141007943881627205850764290373309767178297117475653796091903039585282081884173907213269911599577931846069417612634884427214525242626436107613785791379669357122505095726540342106443808718900913906202014271390971549300968757261224131960863555465959345086862173872823028641642021857751331946448081568077947523442489990720070658457219946004477976768370369638352245241407101316805595108617349421004928896577874477879640189174420118320084019416224839256451611589488309959985871689608033640217855953305515105690427601335100793169511618365331781517146715037958122490568144522065306113226179119701543912764869585079461904528342637474253140189666832306290571603771685565549210763781559049005613268265020954652587317252232808116963027700721225778711461857170234176528017804884335200353142323296298903415881605185971967087658596987755303159668156468498145463445648467597278716353994150981025266230684709697373721144558075889092191943653732014893761987653814983113697414156024758039396996169301441955206006713313918401831500382426009091904429695128110746061559066427628855352344225112441815292962744882977708994055516930191195679289325221438323731583831066587339042313720795311821288938109771985754806651691758872712960998514457416777788046439911885695879291190381268566474868787203986116176478465483165462872750104002940550167007261604183142831627376673689966045036552882324928437398241665951821449418616430047832308693884191537337032741236413705391476633349092672827123620002621937255269881760917233026582226274444811989495752246062019393304931064724734941288384794301733868966750973623851084857910551946542222318076825084083911112398526938817752174198126808340854297071131405738569467612413027017124664135689126668831545949285696001212549593825135176372381052811939026119933720776572839023983418141648370838204712594460778358012184523585344206348856465501150774502436163199868949109774099995484336451875455920257861123251447801552449205015057976301552307884893480569069488966274891834467929853933368772670303448837043463694101409834839318561044276736068185171422066593039955450158387684190310265606954923371893696348062801592483376611354309534511235750194560686709930846980003979477811954456001944750392787029791433827721305140360012642119903212912509831025637530646193187380334931609464328624674954712319118446740362390607372440479806726760943288297559245546202262411547576412002372854034120519279136551469709474147581160425829759381595792650711646442564080465760840851099962785673910330880151669069142217226747671554640392391870471059023124693397028968544795464309826278136621784674784344432836352745742117233866450360795232775969036727744170922871953649714236626436279800994283069921448167480162272293424047522355467129704672664689451732284995607470101295485184429119658832087475736382815947314424852559102185805232114377764471053484175356001992771375817512097241948356938887947791709577688469220556114066165123551208229357464221105659256130262759812462650160226972276656857675830158816400766427573045416803326416848405247883559001239359443611503680968965314046412083650371479129526624926295909244724640809602642369124238521608828232452521214382638830190113171225721287258093758723972166691204259871105274819122691907990987279744253765561268301978975736840155542524657393323078946331216939061285240338387363622904302973733396850635975509703211731632490894842090871932626389093867641851849010351550194195854686916438555078580642895244653605001651056956721315951062227370036470932087892975064483457832204460318231760950653222218323646237054599514806789438048919985809062087954635227770581055171408660607107253315622638849618359806624695570728592635944409335963113711684196258278324825355221376478493856973622636833885902469957462306976736240603206346203063729894729830718326046148747418905964888903944789445818726139568438486994318726659999386676127725835686422914939403277079888250952768167873186502185937234112067023640668465850890587717410821892643504698868638792553233825022839956564694553645132673816922197397222759660537987207732156873920942311393397922588060932272713215060751542917572157288995227085706778635854729345220624011924059792265264813014766417323352705377512776714337239374086535704577711486620674746024347323903009205563891540084916262697833023203089023237823553985380619948578530739749650135359894292729563497859296094298383647567512510889031806173441212683076379687322844308817066163115501722779285827123009650248347013691386303031072169144011101569615423564813150398198723760229123370215905398217002365901506994951007543928612484235856365262344109571111989304544770575401691034053363538778038009023381467845051362928047568192173968944497099874062297677944328009822443024156655749643325949027322580151488333397792838633274292080441394332368375583816870067165768730878372571978149393802161671241430485769801756087792831721110933833011879941567968875417242120406331977297813006913446762239759844713753363750229381059250084525825069730746940487269452474998951336387739202675147077357724221380683803407759449291789157001000282423527109187111595510674447171990859568682411669943403478121367971954349635855562741110345142096239755221139354700535984883262023657789818721873164868991198691731383186547279600260500108104916693115038746916110559674439704325273349695717176374659073092684805478408480259608433908763009404843360958512595637501691398391215716170970830003914752568354922244607640630770612558951669618586809400302733262096065661759169104590612387473611747126247191239130597582352772477767870924063303003859351766173385654575524320233269488499513525021655887487478891517891338950819765925632036674118231271372479385587651414485896145675351066129349186329016987540136773014749568919346732244217814275536965626629239818662465803578821697015536911031267112307529265438039376905453636473650754484428410687745379066605377560578793093612965853051492119874875880771258978045223887621613007433297910747058434264736118793096389382268247033752372515657270883752336481137204515042970735277106330430477888923709699961456342663949567249688778780253578618693735039679829479194711506610453389763847251997491727232085582834425455830777717101193469905392678029132510711168363255566501898843737235153568945411251964069621411888915664100650438274961429037808005780537728176253446315122779950767520815706191709001689479402793377111816997534539118836641360508737911605930568037384408625752413939167696483367540169564086720832447514690140210067518375056190255455841407491606193860417059108612457080635044041349377788521579817732058108703509009445842033329003398640303886539353152513472569772864899490002107194939416477347109854971519594846869457554906218607537917294033974853200601721699897818409417162864758310545795422916698654024959326177112587684666429359107471186767785542304940838580060555556779724844062400239890178099158851677896288631736056228542609969479009393559099045950988651595521485740186812228808066719286116264529840803806054724550430077716784577860182651099924982276604476029266749379061189722760942968506517283749554720380170952021341154283823672820277606611861506791345410003084414368434299082930801196102238038112843108918752124750332812847517200237296211820336661454461776101087253072482230267585780407298476489360442321980921344341480978377000712328443935847691053744854338866845035290343667025505757377702683350547543657536231991110105111297492706939721514130395675905219007322852544116385577439959202421566007655456513279859465637879084212399077761817292239184058805538872766481122922584969338545680048972257614604959345549659814620214665014330832767507535008707052577563982116245798769392845427107865986752014967624232403078293545254541845866210631569228079251383864286477493767168006214666300608801035552333946292491265280222880811047354008518120247966777343631927946139726280027732212350212967761291980378617919904248307918659500298387521376728403283175434574561836035801747987845000892764715084972591330706263487088121299253769523044631637605440495177235914642524629502825806262203546401534373667025611573600229200901583806364012948331016677139901240215470075863018560498796744560684735453522600710233862812909618357781191794456640489029049677652323693734685368635238254730441533361886367709776744662050232044378084069369738229639538518882263750753408692019679551720664938385056965478814067956768245683571256381905673676943165138053508554029401590786356329206672784046940222642118035204453523462343762214568130655405726905210361051494214674101962526088142629805691267066855856877076505450598038908812564756365546434743303928427105266987067610419856075194199209153131661105275581519902824901459785589270690527639539769941003835321940228487025655804983528252062958502439101874736560102789350501371592176987205086039579768483679149894546655431218302430169330027607633660119520295262342984671290474020146173142355599318125089660438515310220218096037688516789802103116912435602149250653579103555561673053264066573041491335863937367992538045812532267974192478279257172595641447052722415180695590481996122591337590782661390761514990150217537539936545495242792488867938923833404435306852297802854512863331813025079379332752521388863974762045690633866877164592490484141339907519858365825497701539474629650688595202442170278003122760868391014443974778130377757856769137622247741341664966412819003630444630648031576100691201341366934968732953969869402260426536268331366130958879451796447463763064245356758471987324867606528964960964212219456098229108611479190295339174149225866960030513538522546747492504040377801306426551970582515079705524375797945774828290706089094466192591924343546668358195873508576112885910921011286622362377901057299499952268147266990100703402908723642636171232520616127722357648451900968612540469324431418577954035538443031017180327965379340194539574915017412940039040388294982830091893766395452202648922670831011853800817996868381809617317995776621977415668678382486748093324669116174280312232230801359782852795329221194285883988186971217700278288217534137883121653804546679540420034120726848331590514648934463001960163200897584237607910559087669810427159445382624848954813997376749408124648845606869025044999908567797290507427523147322256222966913135674027343367302006242827618823777377363153487315712139827825374395434160263185463921977914383903424081166862862186032751291492666307914615995721750782522899892416238529232455067766097842533079579797744985590824176905807224573187313382427788239130050108630641966211692562138316971369090746047407755926168628497553644493472262621771189794567842753476780185494589367673720657352489056962602279323650067808798108682115080491652791400525764783889614500445612353900810589083323856747797296655571928503913570778052813621887352219326933303421793298428301897687966801126477249300075063712334276165433289579535132242600861093392130356012427212765222044067080151070990253329603793763517415536852782968338099923499173289569686879476878063147679436211570144730710380671588999404289985397395162398967523903972862499630197497828933044295581531368976102949709613227540751276168289331560399349495708732821508598051932448920042836226055733148838982543498930330301942971706989622892525118067091239119979807620005780313814324137242035249078644438439994153291757298863878406619079112861090700683418035104232366428618385013051041370709910286818395316546111035033463059594006955089656580921370268251482334715760747282014309620525225239206591606674191754619196205895374798280270650015824102117040265730811242730603388513456773109349149591382359974161537279219633786986427193726980741112232431554785999800509068715911754480957119654023087769428856973605165387336519974709475628590515363484908945831326986347606522312381677626551044336329501720747452283005467132363770973662000917485713481759856261711385030370343613816193358399846770800280447633115583693629027316146494689282075156260117322913089751970989551657103646501550274999753358852879906072925602089409590437555487995329750685135238962836730433588123818031848154385326197736065235032525232989493204420708521012718812455036760253680368401070137021378336364919247884199101217480990123959163163578324879420370226709020296943382279755808544789601476427295055249590075726893521905260505504349024609457392857600857333512928493219016315539511705037238504303955939854432775264606923629814625912915108732004569108828083926229445891894303873021302976675817700400763848959007398090863966023569861978934499143198336289961348470479016371680493098542438275761545215189778294160152513275364807898356262351417038613435673094275752959111649614020561181450813863716078163748992482082824630091519544035753023216488106845338007694719685452074279463247649326827083171231670027848742598660239204217367395750069896215613514610908270637641716274954398317952619094554297293604227410726213311741096927335695641826304736845421873900608815862937455128347046296663517066402321869065197205956021744594995079588157674637964693202015244530832095561689845907451583282906499696436189175321938090806111223987953497482347938970684149364312664084175436208436490057642485760203731955022167160136000311970053234655043208449894765235025678980715957590564106308204261893764385956105397830500903904767045072828295073310122607174867964534260748392162852072013034891527253557158285196974977895000089464141680708630808148064114660993277694225514920608999647243955081838469680431699296294874121134972072946398612237704124775670386623669107835250626774319656856509251259530943439755216640649953532810490922223218962398129889119627936331461121009305951275770199884214640365448412843901794289888543241079628854199175708807295195223743222250318186851541411650971463638649078219374862322808587709508158129842220006197859462673953766182920952928834464841888143865316525818758011252581386886249679301254978265276407560474345379536147711384674683517127130734628849095614410635504275244507033795377402624773635726674051127763395855745056262589106211972449490822242398729268535414096344672327885424821962132873355407347378142354833063827109599962609956654759194337406382190768640982913267430054697717407831452950713211697723162226489716670913382543145843048377035312700986397030697729535141187598726861566830315550468193975790973025964948743995519371358885861463925741837872744396355926578595145885843522990295783728677748675056301214072577289594780259791442085201530635568767932380649517093562697685511676985534347620639226334118752054981824434457490506152114219077455293251981351080020747200107658818925945230423701273304110853608745855910556793217969247949549269883813554933412923192009480465710062882436712896828376888321158811813821339348442417709723440886692706554790683246396156924859074993618613047810116124129783455757744548411921477156444167402284660760382591263885777432606567612461275302510857518796259216056292370981974735846824082379576821317452994201546037386745521128933667152517333316556409257731723289142924918076190862984031189144698114659108818030181154500587300965105718870541871832015128553762177125846898825055001820244062138337081560038519812553653986589818403111655582928537426789783983084863953498138510849831058475754141680768901706297630247109240070202261190988758482808199474114461390153354927387197676771139796392422941778980530294492879536285867620948954963761500959375896618242455054171482394175391807162056712022147988923574805283754553799532050139956576237034067990757918771446764943765000780603362141124104382220572296291946805788602103491191986449645164415920724696117424504175382723124098764037724210174393307135039525738231871000090872564961879425327727193018526979936995232480050933803865392969297197002258144577645995285850542268537881679160209864878675368957059771570270505167314638297251095195329478215778595478522237073287602877747866828917906746444616600071242953074672487267906518970821142965876344446240503568336910079912362895753014219637479826408895229211301528962253930041804790069595323043145263462570816771976799291782178589851984963734058006450234148321601984041753351690990052369080736185325671214008956591760664728588159853684134310011197631955917303380240323385339162138443478440520502204753890339879643858342837456551356584478025784548378842601369265727087255456471240809281889080035300332001586180912440149325037551857192744028594582115472967170117390915844686503333489008201527758940981722066053177317281547773083999806573349050917266655470439353845838090720224848900792705113436763820681211981663978284327561745527221494348230491875384659272065974684737474639335562592504914930646155142104273491267446336850751801651240615587776817253066511146578795984042831436699368746135063805825304598056731586510105601670255983463606659851056626112079279541037636474594555135223579470991181681099137016571771445180575424156370711793745720574703456364379577032572308292944727562511080181622310311521925427812400292319090230562243790958359906354644925412679298155619925544536897536809521954098398191723932606345073916278802141514551760308861318724238818680562793968844929545479538133784528603027404478251717887085322361321994459746253114813143747131471084791307632840843226104748780817616683237993520521004346152531202167378271732252124641278100956625172826862712436260626505903891806550357020774486680817149785156733745723636665025635587114659958765069929442757702182955224441542770413008291506270614138396566540493694095515114042044593465753044727287685406305103269242947760314132444084343434297561769324257868544844550547236844069927860267967654193580397973326432361488685779593991637678563298409068541018172404796717258723380226359217639149258376303367947557801425711463086301941637205189891373570532592747370456085098578414933753783493093970739492903336427372241388275331689175962422790601191135694530321021372669812418231310454920033320583435891778353099725015108926273775285821643549274952117378303540514772788176216120568371853794307038924239350206873522413562622982100828792022378244126294519647419016963633527204933299093520049598040821520947578488883579276285466523327055468668239901589327706492065319921913067182414639138605015923222463276514437993218054154539814517959644821999009392138659129395150860134850429329720229895037497307661117654258652385435320092750609381193050580633535948850987477269668280178680312014156576993308092186240429571325372915949464812723806382064801427087005473660316417340063160879644659019401980092174068890625836772934259364863525677219883381304951456013214922843051830498125798476737336947791033449351577417650158028982395158050587120214348944600121193078954772350691986045368473851475015253813037004615968209393561771624526969409142279266639615563828803464976587595265060965064662079439190160494238595919857142230179977039410396278551985638738639403212807174847616780854989420791860440822662815216688974252576942099130665768034235031506964685279865525851035642473915426931434374417446604982777545393678345469304112678006822749132491434686747941749060240982006810922637039072282882404034874064748452589650210206912034304951730974343170995015623155073525464898249207305202835955362283999614119309313035170577655454720721331445260492381510259835502630310021165574340390464521289019380603154246749773705318311917357721048869192755003921203296268612101371387776554366173942064586219207637719713242121067394532178379104453908031569566406232250935916019904458554416838227440288474500134756376567244509690507450131429735115836342217427844044711413077871065956075228805134029292638966065031556831964506595277632434118432901609922237271308906654995933287486583953239547206196181327166500867417685924112636586686087448729352982337939871749890784065392506147873275238826240201371816054280725326486081920083397922820945551890991249506148631835400914564463936613229049810284691806996764900757103145280377648330148720848942361033015245590197382097087532240562514570294235546927389403695126735216806135111453507040994155314650091466415068957281755882430832405757970487494891319386614503069294336801104163168797280385625183085245246628948587257196849710440840188033294892942281276012858599567792281478107925012064886293123211174665170380136797406694361769939079833004787842588594214746229246042221576237423432913848160684886456701255510084719205076598370551562836885646347040759163409433709008023746374179770598323629578335976608467772928614095893296114911178376814230297664122496425982224928214098134465054471046276504760616567652981115514850473093655395705613884716495541409316284707934532261839808008077800965035752609250860186394028128572457347795891806136876520042183867946510937506884761923060647636383180141140841952745870867153212839049450452933529447108841707985504489872574229488911875880321184570439269884550891438851882691499744468328133572267120415736104432139041980875356854655987529407459676864211313408259283173546243251812493406375826303791097020869059042560860526296829643056203772851606145989920303792563947087706038454030238413913271050483486813046767227845457301161488121256645628004300688112766290428615149737815631291023375299473122037586643165635139532412797369077294724324101472709852559615538764622824169093317885035320330116379948285138916470799345894873985941458049374391411232229309490885375348494661246499178447048726747328018877016375229223155381886199727661171796301413074740048305806477722728115976332411231203554572049008123050064586342434291589017263518528273505275701819398672841054022009850262369272455593055380109658490792752406573486177957181648593125443855651968550713819789551878995434717328305876427595706732994328153836817355648535535075142749948831843918485517162557278576778128417044616411909413515075751990933005987999750590648866929428640643303713973048970576105905878555482981963303906432702259411013244887623043511214930903472857417398232275648169412323383001153515569366487431320432677569008849679994231537358810340186069096231215321680513674722835374590718268773041452643052038084979996349597792744356853071311609206744234316483661777322941094165842947551536223455647056040860883369116783196020156836929490163465751766513766912613486837731446386511343535006140142359325661204921089153747744887513800116494879934614859756427935042562719332212218149927585609313869608783475211578321789819998574766795836196239962561819721403387259711620459404387426028948914175230167925963849087757724880884914722133300555387017356318608158302851774321360039147509070426004874470830710547046061358728132269253903634795120036371517465191791299233585709669386458461570006429538636098072156003850037016036216861280922453488860491406285931356704293427910509201461566020345582202011875050195347708078373405567072415568266334484713394932016829560905173683894347204664464631635765483204511391887092555527565681723760730749781947986723810623041443534084030939083842461909122119811960836665957626169899678932381263180494180789548397903257813350752559479278207138842778533534443189209394077822386409665004590733643261122322375206919379880396722733168723090905487014840483206373344027225700104542151051718663597282699806677082211689774356249983990536659222970308385221694364622951153813171091896471897198107646513747915317930760442377047711079110230362562490616637520620703326128769385276748067702406200003876524407605524130073631873595376016574108678367439433210710618513221561105260997559984494411206041627322646793881324103792370645337438997236106080393462727232759866283519659170474266793922934380041270451134374853801870993674480032349680541460206459905060221118220563764465554701222873768582456069423744312297146927396527428108550648182634513146097982890916847538418347214314953891822005172384970968365430591822090674327366661023134904332407704972710893519772606415570993051863868522678570588223604424266330644970339503223145592509550991658304073567207603154744693326241108338488053859786929043339554203971622285159665527925618251023739903569751560437329766289305871856885409800493199164559118190016245546670585777332368469035758636063548474951562148745632730408858743745905645072424911610505445547416402804443402861778053927485919068063084921562693692054157711140185162877359859599725818904951991707349992560996646078300796380944331750586448331413762685321207378287220812236316525656286002903694304907193536518811958121215530943671007951380240001200621826983397873085481263825137479870256076772136882706732866419291251722962755960756347464431023545950911331997336372368658170012506870285374185224794008039104564240245659819264841345872466151939232045705850755851243161987758679938165191030733156897200587566331813883289666417100205934190821080119076998988325136534326082680014872475405431507888077266919219668920225552686258980386060792089334005454517028421271132017697559001680121270055842446187909892319591330667641993133035751810668027448120229694893182859356168815600777539730068307236072412168333946270852633323661917139914567877181127820633299468817004572345522360101836282001658039637398947916450385460576133382077274583998008896620308607930588156149970744454985290964526230789019241578305168303064485040113686053304295196009169374995483200299574419556976079218978533754108654356506500400944373488011797347613873807285503245792674296803375438345025658504808278978694627349043735335655841434877717075617782772169076311157787275926754354418311920123280805532798746379925425850775551099887919965795320342612396394202497357180594918453927485642223296846344176860930018042389732997712868180834456337893230278951961448480141483024157510514647959193933704295374169764078837116069805011743905591944788657897421618113618260431754367837207282602219705534440217947154089039352327387859222405049592603760845109774020174564306752844667821178008043732917703577145125120647865786625300439516716161745298943207358432265448933056749474607411443063450099473098069912055050876329073869660567819907934266476447320355429632105259767271851360089517080843420351395006302714291482879741236542044080123738325087370246533739500158675714476904609674053232680513650828023157548659311220345202496457035231638095389743824395508359707095294123129994253127693773524435744622289623696739887743885994775753422692760288419102820064416891464435359865645994790563271682906598852143763391248287332038825862315301225065545421964312704831779225235797813915500196972610412043330855617638279920152696138676182250686590956619903526594872784041775907153276022244379226498414293699753984806319124511032460062531628151533722381261369731417522830938445205776934526164188667544924729807712616668511236436014712831148192340270178600975339862024738217424258635003385882261894683899315922078378676259353978500753192063792576982011399531559096046469235857246478959403490685140354028923972376862903343705484861391994950257052473944916898246708390370598038037330098378620416394367226434418652916079787209821328635555159526641512015886017490781558608227391270712299409687710355429752051459597136397534905089127099118714991635560356666507271794933305390084330862064045301401455025807027949402787857112666160920930962504167940101650665939548361390167240136983628934986265185400804935973188734818446367194579333271005870693994665877911398835668142798542434442110936884110922789171014897473049310187967832953759912469623629807358705906097353359880380592257635408501115418817949867425795685528366510271699709117585459319033458432367684075190423613887178560880074899606127741692892471745222020261493935274978157726105991487255890413392493224800004253738204326076940428655846851709749879039596235507170588948023405390838918934490045789523389276451071356988200805132083564044318360642213607578903018856516740746162340549708291990814327672045018946721598899954096190291374236132108708488258188527492295029877866686071789217667977162950332174210823955889527546316341076286675268101104942773755492176319048826485112634763150295242994153125791120514018511643332822617124683354938228089092990673570803120518456455052730408444677463803822751945526357767324311505301157398913892037514801106952258274015352019568806301699048270047161504202084301779632333928171221449255149143173964759829213135953595615524889969457780073529092426153209007477792082609542257102501823491934824547061155249727067612031040618328129757311507446058991218417594297222802851962694114548057301712147817449018380888433007158035375314490076975142246307837921931572903967035145174111994791788337656444635752567024772608866727103611649485799403178903440435280487923770876247233578532883665985994773249512778505644683822974436115099654633896545387728757744614774855122647229391825416812212649088013515599366238510528016777868407192377417249692970246573199913734425574322465386873804231363187145119558584213070889673261876778338958897290376095941867806025391701181476722638570108603108454112257878961387580095627825075621090734965364383052577984801382491045672756781124881726783038942250002517957560425373052488970643802648539056010296870484638981098446291033397754098034232090122213772499834616372424596940848089175687494660162721488053725806442127410370843821002629878525394486607397149105214991972859373868756491538995912725517686782649053185738229214347409030783147654139960847189307485617425588290196464632982906723555226442259374468334063963897847309025651847181554902041648141133644697800833305100236600585006755587933331649316103088383324171744815752617252509901293978179025176524687828210913220718709162094685849769404555445653944331129210857559188137674694192284160395823132381779605270053808417215689579424604137807581804895023345219651859308576226456945036423409454586103209484825915184041070443657413675638366841774429535360668929355224727818333976358004832889150538975352272184829353279864623673599192805181099669448091528555049698227283608210687738975452108011913399938244587189366944173241148732762238790645673895304232805833284665690448121047516971566034324460542941392746396732837328887080117222048703230556498216455423447073330673380508554821751299720951148712744019908893784205272860588928294697882652093268956391050248960433196637441902069727923404839335467439256122499466720175358759606191412463991699271243005653176356248680570834662651365634315325238213783298389721364088751235431698382446869690101163885506357111319410695016346509459172441923477944739131430025911326729715125667597283865839690707988882395662641301607796701201764069645431304635032444098889133839939217704899412100171835715913399440544204123779221848239095623455454218188361785167083660972805195996626686780234007277789751733717511255957027718019109522832711565324903983168491758675539610807653247036534441662570524266636640640362417841021180228662058961193877180449216324622574658383442290724818619604781160676922886353112790717303750832331750954400036725566969511392530769402448379131393946783391897468365072778334413446402041385420989951068582192854249244880191893373267712058563671973641746011670487433643085704908235802367585194786774077358752590107873976285566271469897549834144998254220265083232297662081142222545036951666952387398433837105705698023685065493584790218463462499650311726352371207790403737100209558582215384494493107067279020592577075948981197824463152025791978820266846130813486096932319842191969718293751740458718556621021076587027577543478941902055425034012962085675334171005643336184318231758631273571103104806133201000690887624300201626669236911558079923382034424201997578938766293726272550200987433371863233455877827325295782989461931273722310373470388697773487107788778231556209272799004091122305011113539068823555156037012080039003529538801675644859525138999943270638668415470853946125069987910372217526926680454961646373746989141831110461830047849014712333877153722612002751018174160683006103226316554535364352307456583142281632787084053894388283865719545147266566110478632066412165694659945638141619602029682333127527531024756716786659981870782697210613190538710508541947510896044206293076527342617540595214469610029154429102861885161590645930073186707391388291503388262386152428072861936690665300901921942913590769321746733691738230994077316125949892828077655190739590954140903736222460358946773444350881436260862913838247910928527821923128473502015668876980728410321616879781072732734594292840735367157770008035147608546830388411430439465809100773395880282457546096603444479007396719239378496210040118222306175864253234349344692248216745595614649262805616730231397159338586773159360955244841870541996973435671133797177060215131460802523937451816576685187040236309659557308406973018566961957487147594159675061731118984443605330246324400419778805021891106536123325510598321333367511338769678366289076644633805254947775800311889250329435977570961912380026505946742784112964620991279848375432734671457836689657396274183582023746433119678089068324101324173347777343685559138922077830677041462910984770689062735819111038807286454624371187498347649738524499185570041629150503080341282231270507339804746580481718630445922191418151387481470777683710135168942969199739913819340177451075679026865013912336801141053991893167563459150427520931295356995851580480029347601499749745525037868044411710304061655766652175627372601511912522067418256320372701627638344941069291216276913352459479943037251126199450893070963707417700736217720101922758350858201087687050328129894560160226129830925752106167152417694535712889695348941951954867358522509918024486657762472042671055491504573310012815340309037406579619915371516611435888763272327330797111611765920320526019035941172333502386951895538259991169096895928893886279528998618686320533109074530418998612288429343206807154873413960156710823084391951266883044134215329436717599710616635256946850578767266561791265479702989446377043246508060005349927292533207368772062294013150492561821772118351310792770799303283762861181729829185062717202470509365490479432564067257528608256688887022835732356801863859220231501479828036476018627983744534213131068988228395108928069576711645241775587965892860246202561068984526566762348985981359799010663602052635017763855424491462729157707913301614686608882736451900379035416701207283892225673763601108452966967960769880511400407532770307940260799130018917882288614979739226718211253760667630950454060348847248796820452768992840812168858857663857720319312038093219925229549073653779385460125233550385358238441385695339192377208954473837408379135315810339228069889891842721541436245007074489117740049803304467104216176528332088517606826353225549681500898580572216892059182118293053696680074170630626008220682066675702872323869847189969165301546780914152274213094549796203663540491757903840015629924644723168241552573636817097707817076461964841135751224408784948623676525983530766052561103680166457578683508891983229377345637581677428815284837897318482531263520381090835220565058433698032412725502716268701060421874983369651623966996760997237050571223601774237088250944432511061683137128334397459161271155365054840789429651449813959522643725215569611427353188839638058329145609662163406640231762082926274293747563500834645845653648516320481560467825057178683026719410980766671976785675215347466170071515720744951781712828824671056764814010863561855523760810192261645516715897539644219994673842054269349721084773371654566054338726364851249076753397291315467379363515938463718581994810952958517295644616673311863441304816457435026168104553746871362630899989026918221170533602168682235364509218577486967263317969658816075499607556687901183601470778648628808850059786255875608655756891542288275455165244452291088579323500881120988791814677865557510772486688522767521949595585718462791151385190657948100602918348524427371430930475537171621486430988542917386304034940527788721569507187814552638070379075927930739152562566167705999880184796754593439743025424563424381085118892987594510098520741504494716516475896086297981337418518637576089086270068773388948989620076794705525501922206083219269933786523027713372404301396072575201830590122928413812371993593625200522719864205462813891290592949552721216208166474178706648986550221591876515820284479165336415278997744098975972450391137761985993781714368798920240922092672728683179051911546294674555337534397701349509595510408159858163159584492007603873251229500618407652507719501088827373404364659573001930849799135427798344945546197946302769918746707164199858553464357444058648520512116711356691876217468394357144796474515170219056417737017845391399919979144987020527451814805741041744317811132310265464412220702472958620899983476702852832448247565519660804293217571670838003576262221077288809364124667558789678521996529092797111096897359885677417784415104337813916038432183858838663206748734220075443108207194254503551681342652434537046213960103690019789854562891405408305138314475120195737882421462271890626153108236389781500176349441969005865839642771777246275243786818457508575841603482424805362408888731604555507086897163152015368630695463982296216814952493952534897752699292845016426584401313488726440464105941792195334840794466510080137979744956110400099913790833902327173038718869532765038021332236782148696277751988521804035006507439333587585400624691292744840552831069973286042687251768795139995041317666030197551374933164210129749803669691232123039828677710154869078941507215338782733173222548306593333478799081864040590843943044929267643636956120727272208018702646712342189133900007123690022474171872383939196091715872505346422366426809673699380578759926911135861216141267662909030267925743475154937067110246664729129431251989598058846705493835815252309620908139702811597299265126304231955085445864689196668332501791090289480892143618551496229548272587531967677128371417291735940430468821498838031968381538223648916877180065171737790817086475276685292341392404293649074743063145324327621181286427281995128524649919612820408346249512365753355898521121015294756284529558597672281586175085521643164899903426983825652846678516754195805683322817675430221312104313632478228561479827054717862116208187806450779322439729398044040210032284136540942311700369169056795846303894224615239915894137019661256322310941409712099199761759365670829855779220653570642457816886810101995789703388545271323311923008774499566850750979389865871356363636499769004996760684401676806897081441880775379302076491637662515300753050566578139049624651481085061633199015064847175626966397356718351015636492880289909961047141039249237958376550020516252041278361059550839436885466558132443396776620571981655366791771368527055304963378043853909643819962018626458959595647035993189758234461530163361823856908219026989723124888228549269265015117692495520307726718858574593699852233389872367917741623338556787938414920187089261614434823952551816588138404801714133855047551705388342169890150340534774249015659413893693991313981093367706320378464083273845767825632949480837294843783052789104260791648791227248838086614323383714426959772269049222061418123154117212337220989161587891637895146659946698833376390083511334625095792230394853890628439470579502992277331368167221824517563491256486051135619543307549150636252706247247927535564006117839380659208357781229463410169010689019555287162034296879749181985598133897150874399490525133369916827239016073551800093066040433844165341384824984813009028415177172784182045970723488892432929915840132154197070570765228280899833799041105554191294258855504837310510087696591881146870985533686269317974620071787213908235848817163496617833945044162660824441328313922167825866539206107505487399679056273030517013582563068876363269852617777603134021174931168522275830917950074732922219342109784890065590590870598272993246982204683489121793811198746526095181431329529304947051975396908191842279594922081909080019470983986898979327109867007501722910367691890707580933998206612965861088091645539866825814816897392869538958650795873575045818974572022538984090147356537923035920883049988547001286834570108945603956779865065881505647295666824546932959004186275942796045160808305614456815903741667932179505212273363924136700568372189518475682112009544819093539242078343707843304357443795143077715305362121815050832513998270537394057015223229932146890881658570635275537700210660820470116533735450695888340840492007558406223211184069981983501879661929678370341367505755966903487506432548932015089277653365914692620185470682919839080165990505392528098284927165072178183820354060414874497282886079893059574137460333012652663025221105480874681505942959807370966938196188821978605535956541080631182398197508877141340561613502172415808747644827365322493022843587058436562051180101240144720982183091008395727775106459441964399709240742621752515611122797507820125389188238343832468918896780777454895410724918218529827525987741075576224263607363674742326780652351443871473342816954570131858583690926554167913373170087871402321714520159185688420398409747214363478510521530508528477395969487207355187433687090871089124452191847382797515525960370528486176919510152337125946694125677464307679520939789932636634526223612463914858819594650235352712415880822039377708263742834184881064125721897463888270492250430528880568084951137968623726875035806389873349781506180178794249467651945618292411587376686923508710651154880921077852390265274331991998303986238790332382560485866144311353496981579320497836013856991649351138616016107513858929066403180935155619330144457656649603784121013981992762977887015359494901171900163134757118536705706956314801373856450949911500016703315959101072462842106171307138151910333525963178175077313017918552059304906054633773153294529553408777645006311491481691230505891410208149745745550990725444195024478487882820472791466442703965508224947632287081398226116129937142674925060041348023204447142234919336583197635051438364810371589704253292486630106682192018769454106851556703492599767339503353940740755381039634446987763333318795996825661868629053409099289298073203669450354383702515895563275302355378704980210564452078880622378599669178998075298253351793687776565253789435903178634423105381806553551322109906988657124682876214995434982362600092655334954826005741292150379077205240559097618766615381809299328096966865360410841773490395875028557660697787373338768547402238222438100288715523696142913011792842563535572789901430798923254844631290727860652887598729275466091460182876095794352006945195802692994738053378135958666924148983159127193088605772836922844199417331389659708552674849312006228209148802154401171581942059386966594569497066200645067881053929799648400228259502166414529927359364444102244649752564228067340628626222879763600219598137449874643170835858876964544567923979915896230326394034096873247884216522131442626415197389644257174802086372343172395416640392507363847969921955962610686418171642712949093650158913562841466778350294004408470178212766630746291640044514919028421794811300554153104214316567992385429713223055984988370071708635940975866936356069475565294975508097220335322295410120115777569719597285316401780669369342645501012736536201106187564301710623823104481555016526650093739492620412716780521940574194366304293821374460004428212834718246812532228847597238256300619744492765710002409077884761046180090512473791127221688266172745154329834733436155826579957968994836434581062791827712393452998068504199869255064256844594576875833980175045459491357347915548991177961516080457742542973312430043145669720410144469332025621769868190141993821414695201086302155486126512571472069165074238114574309903635099969721249873864647512165177788185873267658787908424664000767803481912530672279226766815870333614704272079020497309871677236539426347533587079263604816281922239954071748313373019558816013923438621645133156636109983371456013634412994145492750659587492616714261417230178443836345921647606062339481646846359906982128495729923258749849657283177855011551618784733417449927405572795070929957171891552977075604192504918081727439821322969974639560858699535927262068461634023225597103462995387440197553097335439056721047856554639748879415598147083808305618024121725460862041256884867282848123991320559584591455360954696442916998638402803827832069751349989825393324986548137245998957922095474250143366756532530562507741497769372461078384440448339645642131606227207473725985427770477863698467941222368261544251113534271029191772533986381363335937554742304671117154517732936419093168570307064886879853017314469740392177977535968453935879090024251310866084027470759128183340486375954926219873282443963984354086399836082260563822419918899070633920435591468297889423026912254262375638612774628259310564422427540684718656539920230796581475574443014861707413614646333131640760156725120011878169666859171039146049161710480119351653073896506323234255794774303232882469379004519952511569795173685884150525364961868869504490156140998907079218488906663125900775492185128226435872001288883800593762685010885734954312009103936780113135119407361559973598214117389366426803133445976857555023359772870749432462781666465376802372638103997272471601537477569836473872850406028566878917204963131330703997523255602871423772202823122468118932735225383586740346109995337347889011893534004431240554011384850728850098203074818333357256185259252740457621271317412278895204941697198434237385408338051230589013820810669530465156466027345980402695682124461588195354769607362875359849845273273707709286008346477145034736553974258551091170893787621478956515086134952398971572661426165668056278127782232295327629404699224716364839884840093184529904357613076235508680062610274092382785455395140630123271293195551068722462971425709257403063337793238304317500355039418052365926686258560873123972618486261813853362658332433372733281951125334503212954353066962497306481604705335928027007969184349473814874018622850946809004451326900498582516341673551076568013311600211849089173523242928287182674520762983890992208092199282914761594709774248873815142312296949642489091003053368144788514114310493848649730360974509537983022826904303558896186695648686630457981270335886483766631059615499024141679822277025520677790990251418990863626146562004363305954363770188239562002611504332868615048388349387984426522812433682522802982303565244029232254496704984610378250441859037302508306541531819377827110991880735565955040575948048596226136072060806724259167078958287398053787506637839343052045165221762671253210348040628561318639808898611151535094056362169317654928234552125590493298444620600842487966261982146106274183375503887776773667197201308576951894334933233683885907640673628100009170081253802194274252219425779014099210989013000813395055736820579208225710995955921771935502533432419289588601486012524509743620249110528797002199252680447887426002095832824694052188187010483508354879818369638337714355435076276964563876535722042469474386510147312665556893691665552779198066033553746549240571476681642224203711811517026465346876763880240477328072468490194910932063513220916338637803794225864946747526045453863948511065803254141978985701096880623531156978430183628950969549859674701253239134724434322746007551186296108821596055362402204753268013009147516042307328002363156008544513635187333199726557601915510198980357646817163965688360212538567679565943965949818652783536895510446619882471323566265376557092973552152562545885878782469319573590579147054678428043805861187846974730202509756308477011639234442089029574318062861202429525364282980332767880500250606282562869768774750123342673836194706100658724609586296483391129444875871226439754525637230092325796640991376195583048235691028306820408158496061438305269627465799424976000731222156570129091438513183985297502127572044817419305713734408135354907386748008312515906465782771830484984615919331685257051373014334526448715015644644454104661324739836735963661057510975150152492732220373932471207457824099997326784058663293294550768417555099428961659182413881461303391896811896364402135926420308064761076733806614296689207027754110980094378270217412103630588980164902926223133087750717848950825246263142698390814111975170713101176797095454387886638517531798525371672704946678356726369672592149446550382602116948445916660393672965411238380089487471655183304140248078789248965769882830386847024933534514529424019998175698073975560820153209434724343872816737608335328659822009424186123758781099484547929847193233256962006918468381536833935519690124924897588662333081249591561197267198217909989672173417435047133557448361541436979532784101397418972531740625175928228479226732114640869178519083827534041256264279441497909513473784865995617566517453574841418940654801989923352704376840564758212341168634899111481819807050762364956744857266911277039330089985084534294270900081775899921238189645480184318984157100294569016832336579632282497800663941311165418974403238901418100733115870208780631488756075279272416077089137424260579112437995893538630602174259103792721091491780288567944334847311050730361755525113255410450818506876786388071780346552522971894130553181704714636190982704428250155512266086957632296463019287400294997026796704041296144570827421766725056708682008658731353110202187372450851160949522717108900054866073794203640605997635295206608201350867311460802192064110460062485319204586771269719575281099231490278101407464868165533157695114695210268325210775235697534489295419942447616443975907322538003905914695972056240622141290420438173239682577333098245969384506477266993572111030748963343348004173009483868734587130389289920166631985316386223150277436304964479208939596577439261823630857966428031136007948412753536719713896090514920882667505946924711487097681150337320138279861509015563747376331176114257224564518327302457856106727322064253000772786438014796230576941029628951075405755975801939516715520815771600047365267155393438292273485568058249582276372208999273002276964314106004882435354001648090946981482721505248764867204745156117785653373897477157827314002901142143532866774713074349527266632166079558947899534155463955103910366783657734762503233053775732995523895634211614736751742369776917663015224405418924413503670064659203221799881295951292644043639857430248310837727463136298270622689200557646085207616588486490234163231108259814297494769624981606541881588561431755872850918740388078227096564841906625551877456092593664988320653049777990175196029805692114212038208226002732956901469100550217494494402154971765976921959941598034263324483793970291408173306481449106484205367393420677659523563284031615739079057129916941867405048100117451548317676211005335827846124631400764388497658889930402948806980611087668144740098751499367216584537264711458100690502475734445162483494519980447768364992693736552016182288282186753008650431593094924977317221102081224376468014800253301933458248601382228730294974664187326282543666181515119122416228430807130610943365741342500107855815526054985171460743172815606132498423073323026520503684516430423296098554786475481449682697268740514984986776071315103633119348390500339217852214582855522558696625293821785602925869822090461300720770395553902195651260323117575056204586405637371243712866582644419481195297035287196771691275352364283088024657648762124000836230931821387083882431140589283656187668737847510010964406312728275464567867565730305048926150816319578885773141277538520024537165663450432596042340190416938189631467717473282038000670679793470763856167708848571842987340858612222311066044654141340827020754734982792096832416644896730967707788721611794524344987909677776029323341744484801353069190402246231013055748683911995904527145035367493242412622027874142355881011502676215696827363335742896601748513340444881385567592430485352374487700362650132397463945755257571749165059077453372101142719608369227945659984508345473624756743031231887170161575835862190959607946825689317180252791656919379761720001738649695024247840514877761668662825956388003658426355281393535500695969930185434696796852449191309862245095941202139821584978582373967868439197828991074815342434820102274756904893322124192538998972524044917084519206500439799960713438068172913797245986618026322601893579696737223489915021966079262447632354634183777390365818622162369262950489233482281736482950320158599737648078541102076059193390025068663405843348008066674594514920399654315104131742341750840776081587955753650177032550376199845532835093860373189339576052805450726602806896320567524568007833344904045783379524858598694800888921172557474841426462164731242502578329049877050201250667699503513823910753042815570830007189747503852610043957634537116830071080263484349754196233341651209147872094608035634578859356932251510131295177997443945264844469668979664941198897460094983601897623002600693636013072659961172300289653512499209630631217293895632370203037706604057800421229543093308008208058821963448931775732816283099040224970830860139321367599530845485038055833147223723116210860992947049664304067181371587046251189417336111296037440359727743473916900385153874517837923731202505876281357550076568204920073386007980276459526598132978022383069095349968367253477286476727693601261663860096846159066142394056641093398470300945171392069052005459970557155794250803884888855985057538183987289960171762072944928084526982034884077313200421354573751896067969281943386767438555009373976054115432169454479299884095105572710845623847028905326781134214632916542895915861467274765897577561409865681695567491530960815289775386398339182327759970360131938109501018326846285567783889711564977394271581281383925436329737833953604143910599804474075525523955303810166915611350969634028889898220555824127176444519654458111377636771768025739804959176742238442043334023155764648913084994988040148677421005130498269979946706337612235125779421350052729361826245026430842090218436646778170152077494857318578085935983782437447394629550732631014325435017014164391653977513558964762093519051037497043242279677540745991345094095077981132845209739368506930930597737961126316975157088896799818022774758143679635338857745392492669927084004344408679289658553431301617473660251361548908941083268591961681992705027032719909455838856341421103459765212123063335441018723350582509796391558217584251985206141649885477084491171035821528764839491464531473067297853923124629742661680943492914612872831530637976446712678145387019755809884318146146344471478121468083053975115518602392988590836461307449606517870377549449867934896887890394594960893595830102640103660490575846888908356612291021647887197187848053927705857502677061775465307666049151231976229404970752288541049351006953325202543774848494488453034083677920223604187502091043615965197400004025914784585104939611786138811411577885646975426533008866371371028259026053851580714048698000927072724099728429388549085255187421415884425412410118821173015716230971549699130750242688199180517947475613950901416088205194623483452400126407973808178811193284180293233629177945999139307832979730623649086152765986826791121868400829575161382715105382257711971789870624171071460824949623450040747632448707642357608835044769077685212363110473298349114217803781920922925305234750315815981318900527944838474957477925272163046059351595685415845907573219797265195171425091730023481897812837036117913034252407307950750422590121623823196365087884076295343871063104901524043367782071878605388795303137151411012862063373475991954599585066652388602499410013314775288701838371832780386425615532281638873222905187347427590250784475316130787712506449966270333235516876849002690296400393036031737665255077140174791692073508848218774506491400194227684088882461032290651479039991935852229433703522222227191425230922431251490830873590626684763207564839345512819305979653993227326143404841491304909393936675811783799513111762554393999770539311328944335041080242531184098375208115140700867988983114005934403649999078610326755946424735767451670834492066774217564728092245141895743217296471156829483534696534066541633377183953784468747024654550853278503188649242071615204747303680040312090148726555251943849558028323147383267988841286282517442629516618491979932258242704939091583416888483403694323194491336835110571169167724030881382264930831590999184903369971676553917367037958163946330363557073787052699268922343129079078032399408567583537838479505666987397236211585665379977378138552639287276948559728259366023574091228731579756405838460146542456335697313287068838953747025149990529794686818541651927921458599074611778361053490705551027414237642806026898792504209873026888756192884184520977178319418692358361149635243776554234694139843162630429134573507885841851886273083154262490766187512112291079645983508567641142239641982867223007181579445291571779224088335028620204089994632182909506095932892212292592726127657311208148187369100339680531529040061761588061237760664427484580938428336430891846526103207378149909884884101393000898324570002438267605735223549505207077458122620633370667260125612522119312732745220565544474273604361957664346968412619546119760892988701819031292447428482500444233362065023510364248309750735291153011885142496644252400574941044061029125638263755333965474710907382832944106957932210123204528096322320609452429966568724679477950729226387222138825742535737779658784183915490752347550681832296651999831603077444140740855718409723533376929905688298565001904436381580222995972651650960947346530506925271162086777780219428684823628912911484536143383874799852476571725767758423635552024986120253630571849963297317970304607576991840296797803948569993580599759022395694654590282303139625663697396148669725513731150643991732424697307178669374291897463400521954583516199918316764784552978376803509033256396807817298181737919628302761595545833974599314990939252875772343068762082023363049079177101163838687756471795220111496317410257813197288755746089495059529869601278822057108161170248504602369886599294303315303563014535073691429044923921684520826947379349521825800529036099362180669385540342148373236102978609227357411362216990577401942433045783003098362923968571539018658471632494521492217062074056300099146089257634662033183168812166939443614001688101761174761441897331423564549263519619783825696145380848867164175436048821822593269385266385453898561877358546783178841783525211259304534834442406022944683678984289765811106653935938105842466709777702630527368939216454860528578381937348482391443816250882363572850619603601626307861277999139966581232772082795705791151829187357773333245237403935395996491191232953130463759639312386188877166714146870790918748750792071358041333580461548693233945470466033034277190506908767236152288590371421507963631890433052550505725913306329144506145796112663215430422429716973343259647415051300708161922757059255995469093773834640242831348792023860624423645934292706765556186906506453345361669691696564804111949756300131873804727821597022112103106807138972544162125714235615528290208137701607156926225353568882648545945195632325089407274031402520442895429312233396313923881280386790580460042256777327136197874340437617710131898654657028286278826606958360186525928424329888597748221541354760125481786801391372298340021306227989060023793973436852573870074682429971132911150349331853336565062688052997721644627531764280460071509577674645712913126876319309727286723098197254985967776171247688598924412623667241104190873002733619222728310487972014979460214680218945328137769475584171473623843061623910085982314467105514760693582773012321414316667955850575784731656338760847210098187930881671645237298196706915085984151653737252727589674269444683451036456315213015882487642511462010122844264155735645955801388157918377398068451141890410989156845773236879875850153047712047293352943514728782385984576024853520445273284680291475366169545139381799601397122460492988533440969589331685475548798024863045583594362986495546245993793116441237939628967387141980061785251851291183970559328079623386238277327779036423308760449654973595675716031295067107736864668787867509912845749864060868666928426222526502245865791835678412720699623004292248018776874639572712197851929141901210753653769102556917498785300201765029235293272992701706989275652610011260431594289538793753420879229936556149757039220896737340867059538506202869113046426050202563360097218158917966792875829620663608166514989105665516167144753546951995185983848854560707035705983126633626858900570910099481310753852228311105737549263379062859213296233341814763962889671955452581392923304667822448718675773491908797724373934555696065886145868018104066042954234400379306105488451575061215845937463242298877733569589042629861879611214433655114474292223289945237428081057886768387492180323132404774127808928129401122662599280594846307987722148647272196405324245381600864670509414176496547612443298023293454146153073454644013003026333948369500988044588125710347339168778808408271535501419116190344161355842754935672466888351044670728882012914550215270658103308359110423442947359775898446270830056297566572533264020125843845663978805313921782004944432289105684132345589268308990629667309348937027917193037927175782684649350115669704477300151152196708548299126719560778519024492550213262626076087432599824743793657189502058419877312042799357025323337338448342285947039248023186897908500780517997242019950149806460066547709632225990670783308960814083818381401975126899925269967700319989675442691943206951427542363980452660837017262941216092721440678619170468000104812650345595860022672217723650971573140269023936790972512936237560934464566979728862111064733697332558296918058917898099012870697805353921517456485360887698171933005917135735512686698938987887602697706303761118151364535702349036898463528624817916839070368053545935602022422748165731242903977451169904587755072293376808893959980597859304663364384296507567875602388093799740101080208349683241329930610460284797148011810561368372642402096254550269941310499020385723873373627272018042154952641518105602991531076156732662448883618790761684301331369848497062852637488032849949524340494922816091098464475238116177905938473991837795554519840315863873173128673498232934060925880718785460940849183345136457150664756712826909467421281153826269918190908488459962516014865448858028364577847294081988094959744472333137975222705420910224974813770918387054483642060031141837048534860543795432349969106859272601027173674508569460212661471324835925445941240148497323955735580023004041292596039999319138627689107429149967483930100872847968422070384039455819876955944730775765148210183197655563116298570419021742719337804689718356572298042198810426024306752297486430454226465519863144263521918699919477945769557082133792359267406993484255617033596068334059007128362978808174588373713693004987787647316349690027784162711398320049544168137687258121891270613890323880138603426664407523458966585186120806176503748842987526669375610583588655552258400567277687231393251926387403687643287740895553060374605819042970006993546921588782011316697385112617300486600063288062012240880992293349851524285803033062179541335896815096149969171747046893618843197920572382402631676749398484215564268641015277639428588833855773501763449109376571639880279023362476627566767620028969451446042589823311336957534000962612073889099139473885522756357171207558272149139299447248742390087214815933449629151779171205117092500222562733902545469075912264199228291475912044479292206753279329114134322506788964781389769049335646877124741765637089101601856001782678680379999242355140288564437268504080400894059892292664911590115387413943242477256326400266162505854176157649888582464290750511577722795578460454734836198847855879936714133981956410402490299885768977342111147667901202487950751593670498442246487327999108858714892581894039067454097786929982227859908903002569922212939250975242972863048577403114364132906964422679678567599066286712800475736408470034263940176586029164668827870037957287661325422465418900159845010512016633952138242474152452715375008372382279373053659850469239503523276452295933516385349332527205121952293924376096180509506258951150478300703919717930579375138385121577811321755322932719488875817796771528321041905688673758771764107001614473967335452852485420156261459767883961790915188779184328835711759774984843742274603189580010492249230336181455459440790680695345476949695208828358689200005330753906950278513399483249468340053351741754223971486088144240697375676006402675868134270656504770369616812264537984463940291319417278419859549767126894378374006027019793041658563254516108922831284255978493720273610455316993781342142657814450877782600370876675178924295561576849516252270295423269651517455164449421960632373384032609404304147970935007897194400440363670150189570274692776334326218718186995477374592686422620006101010464543064284674826713418320191735585300849379059647450443672839740636508121478739291918591600885313980456570519722241834403686504095228098309073773873443285317325797888462983757915302328703064702700672789165368399161344115885022978216501446206094359915970355901754725773318848595676027220968990585706223564167268748012987332844781947506877379811628917195676871472843870961172713496001664022567899637894795938795165302285936973433097767001924235405373625854141147905367857537386677414259012321914107475394757928343865270957668595105268636858365456354222467323512917377201142843372976566654824711485994053488182967266004311133539014654260435339372972354336577704781095163708534623374621404803668356286357647264671366840829339703153278717934235585916168896898009249087139784845255602637250178860504997066384117792249087122969501910538398173967358637772419267809871166199239709602573625847973582684834445796800336002819249984856467009957825428711878005551592869839439458486246234646942727100574673898572330259677395804494562900437029140484987870914621419852965387688187490744283369175835499921347484892295424552685104278448656522077814241146065838572248379491124636925779646273946108367919107648373600839243247700258621518484463833157311382722262862514036732751583795708175995032112970183719330459268390222976496758722437918261074981568700198835863782325696410150308434610367281015033008570105637751768260554309334369910257770885904323398495516174433104415739650328674597488511478546847578021584137126433831787923650848094171128081240799783158695518722342834547102247193937907715856610506559527678818288793949080381610329457360956096987306402782138308582070521379793148486905712237974935018178593874766738253936125970509296947672196466518267341253404696249911376263156055659265934753638485450268396629484954879917376595899057819049458210207132096930930371211884506564782840572699103378345278133405679257087704246000168797999020160670618984653921352476218613452611226788519818298120471798866113655470713652287452444318773912331256303653180115747369590351962662835919728679174100040376719489732907784023825602186940930106757802346277079569033436381470676264456635338440129615468318391569543245980209499784991883830954916670424889554954631242747094429783146478125013028966810366111257762416582025926664658753290571274466279533561077782610054915010076277758222528660514071151637214731083052723512767719006729580110534150167978900792927906383777719699659807088624053761337657985251476311142861043719541453502490049809739881247158267998607010126329803233229340145082221410051289905199282207491746348976608074654327770312200738580011033022369653694310592159055635217415756610306133705638739030332146670131363779576817764539162558636529576462979425947758149153364713118820897217123483019991085126705883444342801228947840085369925444913537428934424594240087556264195436099898165051587178286958944615062383349082924792749890668530271649925571961171857129305409586220907161655425135657098310949492932972520937536386047579878863437970229131611059766777436002558862173766693442206451707064139254780626736816113209426903297506561076654237466065309913726239080184045409650828035234222275149742782586343620784583694014496743480182543393837381482241091173296531219046768003199467792618182083639088539828396154612970682259548949374611441723669889893311663541432206690144308051290638115579595388507155337206021190036662845643147192130968495100173167622766181904022385488896345567924977992229876111712088767232844477464683951755461984026095681911230262584504602974429535493691542250209980203065323180233726148330501018671629944781025396778327566625811619933402755240861334605715102080352708840376401892401799190971811013317846967476932798660669536771434104348501416440059992903152000237604420927109314559002101113091525801697050446766179038642070525912025956212140332367012344498699410413674828361864233942323223454973168942396679579755052106192642496285685638040799675177648143362899151530161407452795665118719483101330802074202940199345117091428692073261784912746680317168197916928785376948036052286686417864817722641273632418482454841199588359175899180011222497060363835267831756025495354928968703447324637939308812543294974250335328494621902346443266712808659378589290458085192694851519719448132368247308412911201181332207399762291753800005074057409719239161324235932527360545517159297346873573561113004416301903295868057716529483699574848220207637948727300507274360638202534148742363952757802570449461772538866176621239956152031484154124773253565110834801275030055945359224572862701383231578856132577080597719423173573178178337865458938720941127839333930403049780595291238788392341486126480855692811546897649672295907465042227951032184012270222344597370129144611164203996862388227169356581976848257050272941635394367154509530105492915200567887614454497428682303024818117827635225562856676314452300706382262913433646622105729217178359470366607743546627662421595982068273179336478205393803548710932332477953211285897499463743858641011729397461696552200095100487204963443841370502102213098796092597598716365544631300931629860414023400597803675817435140999978154615266202750990655704587650667586854923505012187499263529714705612303234133580039383506456542326523162091247367663752042707640945344910138344331030250802218427083308045075930509892392002492208145404200228208489197072507224294373073391699268025477301813112977609732025841009208126405824311124909031277759740789839023107668887461953617062300479293254941793795345405518245203418205680585235220049790378322070526236851632166912842175560295942617037375894455185471109241213639294292977520066409183690703331193951740484762074081550758892591276171409858998245709800811756832050503970407531396947330580407290391843266993659965145984238455033742857599581650779532344467752441934194578299075137595297728929956291482001258445325872508839123773732891334827812396260052925581563850514172687373996776539493451713090534489276975736084868109023947560896216257561331462961352420842290638225510178103901308650162074106011831245241176771300710135364364659988650845279840752033534230719362317093495082163875821647173299936975920692069812291546416313866230316675302201805830109853643850087355681425945755697175582159249884619970853865134834228801570591198122045573832279955315864717929235965316612492174342031593115997241464814053976127484589988807382939520668492307702776345878069994593443601541704160916867078664511601750439529483244658068175939861109599989806227923207445449085924749709851228334499066114815035141614943328807671155660923310513023304498022600707504141043930427276499299267525011304224165086360700106470903228363756121505765005797763307047629310666342511713553875417090687921503861790141366131336959087947531378213024440757539176593284882571567242716670962701650812924159987828781411157903550030108479371122157687913969546689053998084743793902098727167910996150401463239886837291494104458218890866399710732406788833550409067538171343953391457210909732728427752328962583914074957952727144209052912174472312122343529807140003992166863945733024032420603840568175533986326900258698971381112981799447429101675332503141177558160827810552372960567134795639495581519617454093661314420198511219816796830876828142109780471263759214436449367477367091486588358460980038771875507953144600324242882799470563500805017789699759582471729755387801807893081040624967254208381491658270708682945895035146410622154111619216875662143200991765714630576409080054891621028162884336180027895740167431497083030309160064242613279588004121580580825580797657901232234182061508021399432651263724879480625179625611222672031501039777464737402031829088829127832718148395154478607803484622489366984359197112341226070951940923743241957865310193902978451887188437972148208145709238098808273883696650971180731747540535394195219585171215209758819645039036822802203235841982276142782655933420438383163017172963342122922127230251582782771824678944605039430137694195341670392290199677882888606613312510114747894972207868182759611342454464273604971229034264082440618764730617646713395832014568116227583551893149193919234761252623040273739259404061343445413618639217489478276446147602078613994238732572626023496471964598191088621434104827425495652370377055310085470086531832391949407657343757025534309148618297696691282738842041711012170866716194765378691732404696931182423606106790339541686038175836602887089601554630504191828254288888393899571630673111521283250836817812114955180522432836400279022238928280465577708645391320177531036319296386577163749791835628272194676751778619509055398183173850494827185337389433877283964287848417594828221372929943697335927904924179911546853443991794427904952205089400130874898053022228973038835479202297036277960965277946702213445216822233432320211956053698208135053821665877934368492040699758073668698759123521029426896370215484803760339295188218761414775645847549859223118278603553034671585552741263640990029547666449192685157706663452428397635708304737434293313602878471461632717711160692231123530987950768377114508992987780237556981461744466157252811966962101307508841502458501944058444283043320310390838217793999302144009803447505295716098285138278771882511200927932437189487257501739862919009621901299769194091140235746717833063619749254816031758148759702936695687754758584691589773845405503141938729908140702413813870236177481660197051132361914685005848760319635201747383740979070346978907597397817531393481665837022568986772221109383183955685241364433917846515911522274661052870467521093009903359078459747908934758943210919972366842224131152857686540616777943200542845087332325181327351156627394950987620485389065213175688651257483813499651036216747382507922300289760738377879854927171374697272136726019509459997021535333327849973719507120044625711381909863955955587985717492609019924127495235789321361988182712367928086051718325367601718583301282650130705890713993869712867267946747944896523056073768270679697756904212522603699417637991322968900924070145736024780029150824572579993127706666714781784761568641660289622219686353769574793577206941191463660909672505094838247696871964807979663283054819137762241180555473186463853775390900253581667171219581502936592441957206870246382227056790039999539197917101834173923898664001648535444880901312957965418657503532657369297175480237195486374970505611728506014711795216805705131353749831746061700283664294953134430906691716213476661191804345938791440875027985502555536448322088975591585568091812107379646968601044423061068747438523570634376006854032824824737947957481718061614015705672916167980070616783728787129805750339847250683679150534615183330720534917292302388673340913005694676410291642447237381027390904366194304843830609950089645756674091524417247519706268829098676724405977525544150974715721138847446580474126154049128552392672950076378081385741784736410906994365216963646718775744434153847362038801059542252539503790897216807246246801507508952228021935139847409540400920274137071443645296016603181163756951969309481203868492095260776819853745303438753575722030186631845233890371523112752192616977532861837097117369403289602758565556247671303483857193034576123152477581996142224696538845226286772014171683497451273974180750392865465581173269500709092437489222897213682278079278992434040330046059405563222872733316918182244578957782790413008553664030167762291575725360778659727997073954745166728913180826735590871465909901033304024875672108874516604287390475708252568074610510719237659684230194079669161599532980400968660368998161842897845671377580368520001821054165855754666166569857916077817887415549094797894583607984497533322220658712344625856506288209141926520116929348070258242300976286984107249801445188981487843994257127366421206066011804913980947650509089802062898753740729201798304421981583708338884954263554963629215693688668785192214963809808888116896014147955162809535702894165317513234374138062307232361031821443612009026181734038019364846458815312799739251266148171136465111608194126912108764649871519909476643891701829166589883171078248475119299979930707631362225213791352289114483142533384814013619811685113242798099297036774182847170107676259537095304349494191944371823704791880405651588489252498524477476506833763261955718304483390275494934724538372106939288919163456530112678293231832702780443076856064775781306533613864476933585786264123004853387405145520694817143032679208037778094225779214905616987151982705002108050705258307277622768629134185540237151776778095203744555318252771642326376796048495800099736700726219723419678718190605268667727703349443666768814309537655297064837360774908334108323197589140856099856508231986321310706177260590852364952534061454793270526910006064546221243934116732307372224018326172678329191061902440934541872022093338025045104244911863944122104876405813146600106059475512146319071697271165038129060230488096814911092543741551508150717554077741526073761823551102978039832525697850966810180322976818197589216796562358234597926758295733271387463529923453709722305864247942472832343329511326213513743929773437683528022827982875740135670108280783936079971392898387093912693485198353709910857887276181283537960776562623981736532514374677884711945275615389759328477138713524342627377260316045409668334456675875866234943275115129003279119973451322121022817672055188240682236451245492643856738086849971397753978437249177901500608858714666306235558229204947966017474165013712111760786148053859910741949197017425702033366684810089672744705764717045200666787771723291140745210056241260410670869105576853514352210363762248471077932107135946510933489097236633504187641658362862005096284749566605676524022319375713779715530504837966045688321296077589625044449661741449258027847273966059827403559891667736654126029912536617352636496519809880938523268288884699032546852436858558777543693796436848158909500440946158264640493509170324258360645882935601209636628363628805391695796769441031726765114944289061110100228078184401039422208467358093615709867615701541556081761941673139954325284462763320566436082384408106179317010316662660896129682086864448222108352664579348892266925470229160997468933030332621555410262074381520736339496342091979588062079001364179182627278527048328031228649804504248862872475837452187875886260790096384224968329323993997140135192042914381659151482600027349236072485170555579050419334191124694643109172145292728514946262010771278667989041098986272489829483458791250546239476944150663917427878737905790039222838127916140297567193534909968184399990325602675761520208027467170425902606432854200401554890780032972731978963801497203014670274669828935773680193974385731368047983532733094687813659493464818079073009309941946345294963229036169711575953724595490768930975163160410783157656336775155914366768319951767757385247050151588118467127906645379104590575432369444706023474308122243508154605156904156666315331617679057183405208737601377229509766191837215540479301755987650255488388710221775945555636664308189778429462184669280524522835278171838656568446384389657969751941545763532882181160222991479736990254223900103994216740741213518632218238676915187019426985649062725431207022637076930547078525526625239430898391092700057965694390457039997090889261800445495267690229367226990669785191769605833781092758167036475338650119981362590349210557993013742591695607728288187283051274208283289318196601051529173713743998641878396039620639783013833778061870877241187524980297604940665309811345096802998658431900996601892184982843845099249771820289489716128907664739321604040528283875808266062588342465185547099809598693035412255265745662228736065625574093944284256764532795369173890760217009737851341397243704637528629693343954235761800433073650526568846138992233247526514646744306099172125041131738955717578881262421541800669882204061466004492005461616726305462079646588403009284424143213372024601859668359874772466906548141354865458640888278052093365551700824451757330136991379225580636822274346457314690919243127102501861074861433140915842611163462179333023549427507528437050043059912105653579748897180105546845733554718740078905270136399621761980891690953086521126506472481627449560390132354243782473580043497827621614868484532081387556938441075322968407058232393531824315764078048606370993648471332156153913697259539197919338155677621387634289112759070874706635976040640956587535471266193456572060317121094459290625083281216235670253594136760033707470720331379924150538522208836663187647922768240523267554507426234533466958452537064847825106391060436186421070790795589766966968700878090385963561771956713761481732858168652210137418860491146092292574993482673660325518035196855675956027718457304634873045489160929335346997238683308204951700268069777640321264626533595835779542159044100419285799123508085928820554535131398993990629910420908042577716889077405437442800207519203462178148407279414759728219637298227707922400789347817830608897013677055210456041638953923578174294998139720496760888024221847774222842483078977612123359015444844744387333008015593386349496531538551984233954773926983651738665657916364444768941643956970901092197177165213882251678119120491609065479396639337327493513047505501636941217442633220483211686409417052401150848624438996480518627893542624220231925028480224531611274234942681789709821064125233339769606382095792486303479300005931931573629868681584009595209118810969208870116286987157868698506302894233136089035335958403532398929821431439468546013201220493930061493739502567196633915277981117474920955383539557454610186912529390206302275229357111307578741519866404296577839700617875105314207252476955325834392682717236953281207149910766134258880785209295383267394546990637978564597795367244278152772760182403692333912649025192881031589059756383227505344042436695587581534839698415010427312943957414213384437065372817038647262780061199847446701741265253586839776089855991058460157775468143960634761890260888822621883221504353890057652685369024668205258878515794369305789917419011442363192714667448378198123474223136886052815757551796573231661399788755954937488647772983587500133856408613351345227861494637521355660470304475760081973408596333539391736682189992925123232656258266541369000302283711814812560546278288645949534182902939257464630616093972615548111513487688519551417640655278499891199349765736487892588691708284555693980137489169238314041562774762675241593874389522968420204717932294809953608387440991800858013668653483837900056965862130397354257455029128650089135009098627033133089158408094868176862418008494368373006767368245885989505462946576219895173283812644938357975869536226085561981338235444524281568084994357923426484064535870594557687484131303504152033868014605110783204990618694543894860178333841450130448357627950204331782956307721181089271642262258433440675627258438023351526958483262441504296690142390834567067405070400603106180013335493024885818485375655764299368488497076843933768307879332373903165608672880520465695665166597613708299764777925975024843872129246896575441694698137115429861412217470891621324405751143274514137227772664854473559813679651628125555875175757521303371451644577461657638770424992509761531375000720375855947015902450722102877132130083543361828749630045472271498397263677675295399969446933992047148256274015509980394647301718724346316367595835010893367246549960649698842659202437227144600022965945750516888018299304565084953226291968907530203005506198573978529868075539171126679146141824321564574229700334276417567035730118545085522622587309874230236584472171461815144490027012377895267318703901057298155481464598740382073894982875655907177621836707968162773838931199977337949667183953710720899207598084484582922573656002158061088818245606512391755960608341610255133945777789473021985416198058793501465582870690996571872023129246350942412589875853269350304595805264195278348417191729809499242449872733018498514930566139751158033931311956982229365790172830972517641068164469717425791836594386378889669983622507314887662976981029248653777712333404711775819868831696674869048841221675181112652632751001565647475106200754297348185246006715804476190555818375270025494161639293776000225602050149505520391148232080662567610936529682238376570905307187238369932026735862416000656528316644894027381351352037588089773996643478493480716826551041135293432586330966647715426296694077177937486259283595913852592477301429106079525146055636235196213122383220241413836281827597019436016784290658105265401052638184195946328622479591651442859298923939657402716211006947722434175780984588656228236572845322722966985592730638963088904781532263897726788287509205490800587128307756120532163996053333741642928703039354205681383899122403576014236631991107435034157957134760133986110905693866737912180686079957935649698856312851029010493504793950567766211822777729850314580530782289162764569595823130733994064072310241936174077440740620585517299817322773429721367225815071471516145512196410055548403065368922148905705608822629186359170708568995379412937603902865588731323627053597792786319234475774684098861603887043092231092791118602241258746561454363429630585346193781700310275200037523770978805142914472525389365631132502836881901405687278856386804514615485305818686931143277831277810991066433183101932780051117261589129262475883602735282397449696776352449422838516489481852260603868324374296567188887292886725693270438422094443188152969075014127496341648716415766435443365700277175953359014253736576450389645688353834034723355296896685831447098997480982818442337393845250008306128465279030596133560676436386964938522064130149578748265899742644545657639422281963321568442143834373462268569085035518851497160818641430105732387962755869330441833567039850725505012137674548778020081790725549939010725148590676199323515770015005144948684078739426909982223436973825155722054600572949279009482764708855987650666548638447526678620084560942681257935475768303153445691888431042205842370236502050865889070918365662020962901605375036879603042525525694934158069403519427284735191428607555755209017220936148754495752729830298611150027506168997758503085323085233673747883938894182112905631717866662696132709299354373458751933601095796753688843538071891789504853756997697123833598186311973926523507125303398982634280085391038448775172158605433041592882494440096003164149618491811325305497809385300351198960229466592859944841183734904893547669682465401293073308001216906461076136162537580963050185640540013874819304711123277078859813316957749312277721105062565746196211435616850361544595188424621523903834027405715398386973696843417944918608118694894584109634822107159850545274843959788969917104040256938869180638153131384546381954256163586971426388543078078305103399814223413771494969075438876244455297375810355019642607143985980435770969819990802740972871066411603726767632344347066032842661638157422250223894360131529637694933514996517662517014286187431571404984254234270499647507427289506065345673324258528323991399538187185729453801948327963833863195448320964436283454724041259294256155908579094481476215622440539770785658173986856964852500400186744753713614918536890990249177419986536801717914819797106263018671226256321903996682745952191558770661834469196063984061962920078902840367526206427310591127320150239848180827745498791031447432032559987156208461973339518945918956573099151650907611337953734787734734145807100986337427603452545989356864295583461207758337445151604455456764916312577541093991522215002643576101254195485942643190892339269017413693064036222280986168792036578754887095135965350718301211702637127731578762948795694886648355059830963287372199962522431948225418999472646669085206760893014542831694456973063710483775312052747710502152479798492110056464132205413958787119806075116763715229497396025636363207772190019816425481360408046202552165195295876509729422296253735427282453836191975730505162098963309418488224296987034285633281425463252512835585968086742002857008247667835980597540877693282404710794367885274191766024978245106329802512431854567551716528028065459138127196846020255169827032477068762933069220092630266569160303930432959923090191235305172491950960828654711820530408355669656273096868315877656927359376168501641558423425162202915980179158919830334627854376461258292273004222368031251757087798943764995627111555509479987509464699282144279629432178567629130686170146559616829501611482248769692505449534274317984498538837960234554037350997437845118771603406889692125119604473841071245200188890643685439143413927515922308297202043003790544554965900267797832538209587655850341040862169777086935461284210159947645059528538882387987682459776991012755626477307134376779779947531409466216942915200525415421269438494775312846316910705890169890779607501536678942812950911064691729859826909956265416526353176000745081236308655891430870006966175724814606159896745429186198144697011427300265153686239088433157716077551535039208808848106345548937536160079969686254838644072578268882477561717940041655395504803767419882387215091721434133457807462039386161370860473106597088811245657706577879080878586060390329816356051161971011917554287146828971016744341562363828650729119543295579039200934336505156089705306884314868814701771442955387783075064220161332164275768591928384803439761067633421181608880395625429442719435727248364371442973230209440642145530203993248353590717144959866685654670863682529373912886332057892357835811519490989039195877689529929495762433431644089355902887077657874236723958133765173715066188089818737528447511511069997292825994857797390286084585734877780919306016710516498375616114208201533117057957910875111603494898284584930574256535600760058091308437636432794025894492469375567547874265843865707907844750111919193895577473025480547292303151568279174623431019118637502012504670252101010980173026597039347677973530493951096284800169190938945350570756269026651557440061981578421234825237537262699799038602130888361235050299805518025737426574010925771998431631787961948289396088512762283371180296097776922673789241847067670068033541448953298374868704148657895154538002519891247005680870138899362047653719623509475282568988691720440202482487475232485176922922464439787194810503756254733886262920214052898026833725047422140808107283530928401939172253332512121374266153175966869532246220043447011995317154763366916191775037273633925096756885308350658829484645893786991988153292477069877108040747050722289139243371933530779388441693026510765739094497831536633978127751496683646503059046969905642479433275689663403751969615579748400471701249637278327929370466304039736289635690723779039746312940982787247960312493979759455893223600039989177384501861923477986107866890442845845428644754681292609388644128465458957304865376312562595638392326961734323907293238229282813011275576828951053759428065744769376320496342414732401300907919338622947423578291273630441665156877448946501661765395851860112452650305378527921962557569806485244341552148502106150734777300700376050676471201192204348855149358653196112384958594550519450688051951765112897934153289549637822437772945955620995949445319011229284791880644445386634749881664580181459465260647607214786337598181152779090857503352209443471451694477760111728497272038461726606812209481190524279183559411792673530055841249923635332730709356757627878375210724507164056936591147658764016552752569839993904377637285934246274506976748928921938651003294734466531062027416590223598733514192143933158659938092335969658739870031954767631298770881911490203608499065907017560819829465150973281932641415909245683356001252700239098486304775010021765979841780510989942585683903306253975621154577954588006787511346072493382036401402026335304134238776343187649782621202355835902335016707198814200596305649632422523691264678132964256580075187788423451326859786197722297210327637951710165418302655671676553086958102346714279429222558739055634816667067810579429707305839447127857205737081586188574661774103773573198462262477930883887001826463859607709792878172893347577016019218209615074779264225498240878598505928171584664429792900283178749883680851584257117603943633313697813954765283389504832048586779503088879241555076575074340907137063016023164736960385935270004528520072813366098175005819340179198558995434647234168784707366351734158680229212572622211928340186451759419898034694896441396876693919961659237008198494661794668329871505976220723093369015775618700160507919296113264508979557923683721758641584837403748777621641048597809988325805194733041319090986326574717721720148555426344654889480975018660832671741147812581296724419065208319892920290212389874093955583427686760791221069613919490723227039137585205094324089716253617596024720925269176286818659451245186111458472867628892236886420248960762714862373920149362291751836653955352002411872584833297218078856406414928870207196469855337493889932932655757550056390097408567228470802511488698363862562598538974047364008306101310211051320385373105005149138363434907945325437451712120492817735540298885668515738171298381061008323006042551872326052266205497641757476084396405806954884745431849194269994262085755845822108090668304721963522222691129295884414984492179514347783039205362677136181736049929116818580937344028354756054775850617841824699824843216114344256025492474296470867033849190399562646725762036086884297911692601061420894027928096920989781090812935538663840916542035515815118030518938312116041291445770069927414495912386103944455854138168301232442278736258548716368721229296414929207092987967047149184750479576931483067579612469633484202818195224998732572022474669832762380794459003149146454308724197402573230150296535952745047069979053866438174409244748195288924374262206447505163156928931910407613016992294225448243529425488361877337279009309878742781831307570573866344632744954652389644021936193292217227552442035304150733318812967178952829929093976769157148069606342615397133356782670700239710125837397644304547186007507391893852065612721347016091086966634384569556134346011602179873205184571011142069368734132861979765402389463726672647964816973520392202231896980941179028170027211466417835713181414205527174077497088336024879448488553082991963432232927754182292025455487667275468073675500187367556499520322686676674648578596967346406768613330328834758839023961546611294339344497445243160087433540806082328552749440079358643471019949865161065875833332245542958916060225391883397221906280649626790090781735723075400016301404319488530603645404141155174410355647982265641024676830062274709443755303155414426559156005606429232425012636012029551660782198010007621950611497728134317498982543113553941340265788957235617631560068333094751585772730946190586468176892030756115474906890788770698181474307586238659074161903781924187147572617490266826264137065114301021070662623518092861470866947336218073639338770328938138851562664433524555053491320905368489554010161541156982431347951025244419561743254386965854149631480672919448902240547706363412608717274332869367648281368852101370761746901482151024496568410217736000949407777362046470984480921164558344538225141165431564336771876440303498803762104176788019649734329362349086741928602206194054392311002479666598617895633103800567641310175779333065820245945459405564228384485938447325662130839390537362554329761250250706806438023620553745110979656221828159116855597963062524722935296696558754262123289303969912280276998220405900721882456704020192050431762931579911948615938945291878257579772584487879050688437982907556235381463005483593626281248502095237119792655061469298951661794330254589130573224472438623306302929398500399912165481397782398965847155410689308139783775468107400061511978767509093840408632961258633413230117975836031084470297230328578021192276676289557138589026961680868681487925876042145655462253812569903102372831629592827880689587759897597492295062225697767943741261857465878116342089549036551617344890178339643351489985277986863414432321794306964398512609235280293363307133684828223676619968612699955630454211414451543098766114407295764147108033036044072557031086324982833078528514620869640252883139752785097268725515483480519998647346794219632017659107095965028288865517383614297478585982392603928509600032219142119583533666522491752907112838035316115752813428941533480110913072653043846058145916266159150605412493276974850001112472540218751099097522403745711385067464365906820078965333874477389432627039648612680477167575150988953680548675120908881840426389698965475824325743001548938056117131796580357896987510426778703514392405476387755902045454680411279458842279222296275022825237619325516636964841525406477675444946809133956999240316179047758283318869865601120788363866477015869417888895199936162940979942435845162203128995865230354236109257854612454180541865158274084251311402769923430233513459670489674834373560056008644557914082718186651151633637926562256984685861210315680884437535984200689223026187687136024341543378095682914016647200873590262429243490755030597866795289843264270496284923144546839710972929114384316613764394502267501583120058524639400101314160662742808104543925793960806670510322224975104222065706378066367152956021594277364792961260596403658054179618422123583952989348306641596580543762929766963472645277358439980140045461709512382587736221452220358962234594054615213609043326467533302101241565874559705346037383743338981430730306882394275069752993575930173836433765724329578718410349663764488569337442627603206656818101382823104431826431689262960278773129385546020470122159728147883867844429997188871867220028661113124547446648052798381443778563419163893365979986110009764695137729048208231535587052896551029730271266973514240071574289354309773620985649521322504390923397985993133454308826675386474049927734677894481334875949901723056140842177639210909010071977973825214034380263339216839553363354256096662170198887842299781181835701664583146679985613262745895697179632074751123326954742502819790473571247594604185762461980901672370220394458225129853297280954629311845746816216477477413063973630707656469599544832686371200560042718902877463798081937726468489295822229069499317796350407486496551734231944834306308701604927174192251586828429106880378088745297569970114173315038127230077394565047336426254709227593050817428921966201708474308806203778739001064273910213942858300180034311256767225861521416335186937533380199872568523409488139803614516352243010298830555813486974844546369142463864362374681835491810679444883711232045677952780465016930419680977898434291934362111330306540787426750410391638794756751719746427844788832151283057154614747653968470589466727004933340037350925527948812553671836987490736335279569182724816928864372213916711606155255665397355567114434850833666176174518287844452802434592947225667785989031484140565157466922317786726042319782243395618024096436445184315712127592713749779065658421297762469651195345428603506048989739487466063572124921559580076433889202195276756369258189202922099108488562698221850457234309406430987578556307160475710379700801008945568908978892134342124774665509847702396658928291485132340944456794461929180830223672695792045647797089195246205785999217769470222223928267511877568509589550227545442177485586291999945586774778199828612592737831690474014926075220847317321904489048473618465874696014800386704758491099602761257226704022530495670865911559028043929037407276956612252393466116978148549255229209920076147872592471420633620817434016865751600772873185941989997936349397306115172538321766490942122437093884631437101557650760057231017092424512870825616141810952181399717488390094539533980075592344619281495324427929334130923088263949439262185200902072662163075231681780957849420520258636457711482080695759758286568398931437300866286853820756676422735415566364231374401163600708303046780934549719463334275896264201793168990335954393977645908669961256573025845338116298052016171594266372807356629369370245800417318568121539442274806834828876146595274588368682656682547996623152080479163265509634209539335181553260912955147480278733831100052451818855900997527662738496848421496881802454466302816902379369264733932155972349907036622895959392665329866897876120956341963965598170208470092651567195635500658414253125926644979875998044292453760031191518328900516451325659055879797013393741179789777655176566900826966672068152238337603595019722867729950770299624509769468624483623510702654186989012007173266698624079101647152423901608150159263618776206343983327929442082355444381246238389353955512356968379896135876111438622435998865307707868357905125892764780631308454710781692213677469160243105259734141364628710386671292944222928256610143294274106222564041364461671562989731476490544576323619360329233387784185555289654319541308780222376873546978224403048723330880062384958148331930549740692650448602509817708923599063843128981909037916851022259275120821411771823666049870695469159404190645554262555909598647331355396495642226818670832273998708763582947692020584956246893669693842446910617553046558172577165181577122611882644504922796438985753403387049183950890730681936950636228479418872681022352471473629437981664371337143490352708518203265626356922539795162618120668188705875941260313782356400684988524300245845180138204501064290135184745607809324615889033258895630377634881383260274320054333541881964939695705747803506918590823916199452033342967572984160083140204067073249660591074153143137713830621740645354610378925898835462097257954249489612128362250987258485599909501807794720304824985505526182476934811891233907280368337542020427215795002259808040058360779318408504470016038478700815391231858799859023089207034868655428481442947349305002494552081630639542792732167364902655473754994493023415724733252265109176924658440392151244457006088305012705123778693977896276078505644767066915163826331004574879047842505568412940387655090309963942841169006702612291197648868347632830343926401235188698468164291484952752076479136940931313862461227536719306931724940843953111990325993879744950240475411438810132062246400965389271037647070356236935656357954995625221601153198083940876174989699524111682450273100017376165441100252229859692363136204651866178816002777988291735751175387927138837939899167313425965148003221189642005590298652268645793673819477994202859649222051553824545690383009274298332834824629370635263699766238706070818901647178348823982067944988490032688292388307249953579225497160322976441012769434360733473291636871697073527640644273297580992376740056356101865860132774086870274628990340357384982405402113055499433929132701299734955976916968735104619182289516033594646938062743590837848502283359511545574710506552135786373432650045249899684639019138637409049987585621865933315130336760979311336807268790430452092750611192531310348863683724966044219385854129130027683739628747886577678654215195419476171436994738827472420811537614726142394113451025247461983726466990620678453454178472555570225895579412426548573503166124879636775711513596160704995244259026781571750199063755350887866119818939010140905542860251828367199964074240832145546604702277447711227332264832238627670580588877406158117153591549960237128157663181027392004021395962984924455175021970044850991144385268355885258133776505377606101955874315332004588616006102275628413922519468714329088806729103488683067482518076118724127022774254228576443658647337349576051552491576996184834211777919152900283378508566087902522422138275801562995614114253747618204283722864032627399769010697754606807583609090815468882806459862878502958027606138050799817410441880246316651545365808549710101285188548079658846146032194397084680274536711052794877988936883602128911495948035278980071661049431180541194969967818203089389662226033852835375790316522445425612190789163260948854945113223221846323463191129562624089237268113663492480358456301463336048190340764652624747382775606007117653554832007938002757003004502487755361989993674663579046465969511280517546040424449593320219338969625653757175399221583073920884624267964146687211869880899703255989257535108433450523997152315131092284569137903312638390051690576008379513342171302922376540715864910189515881174541218510043404421552387270225316253456518931796772001128750603365146249033497965574896189357558917062491421217905210406492917456888552373488135505226536129042917219831526715556042710160612548888289692599457513181107215981481861919912497547808627649625385266581504013293896471805761705245192040111254820240716935520976541898614509714834443996874556244951679744884773390858155932625079431888102440372922118878212700970666918479719724759791271923443955908647697048303604537412766458718100207073471935746547343315174200712424988881604701373799712354053966355681577150807597027736599227112553072087582280519947207191643547974797483540992333124405940116592876833309611079229488602169601244097767821257241121306797156811158442897476456630211032927098844821195738805755064981040162881479414620056771904272683496208363901965581000503596976653061570836841971029404383428322226805501954690537193580233954663084365230167427261803311179052395910725337461239316155351852884215518844681102529152401735179603793408862854128940776104534347634075237785277635381552945281646397964861831969995737989692513021280937917920038392229833155905699140742178404786669425019449518768871320445270726025645517706017250606740160013011733872859097241341461212149115953532629434288839001260905110912088783707562272369509297631091731041915398703773353197274942034358096481289376049896976197548858492126881004346979663589756286417534487203239054875882277931964032331698657052234807605397559081854505825245193550602304430201988914556896734286496319022537877196709356695589179925477800899130930326595591307967649690264671482368350004443643645373255529079778143040249784601545454438003891600089594327536436232225565643767105004941933738751404884711412182645385212916983557121061609258982011640016844015348234839493168212279453614702701789430710195817177341525486463612150184515393012991161242538508367551961696377400801616689908651440703928875974567810982871682491113628680567178240916787750681051427171579536887344355186850761416683476682499700818769861011381683150060790685059150285839249007209810932646862083220894154769609000808165907835935970960972917626100098966089514899637018116578116326404926764427191538426220639155914880330351320808997298860543457380043764669547464907600329289636370135387305551584807461591900044506741322117948924964098470938814460114686624615816999293179567255142749306888415313171196437771358966963160676470858303731874861347842299298683509159209642144843484538038103488604021741173753578636603892868365809981720947258526244713132708588582228607373976905184992525426095017367615569539576582072188998643557821780941345554648804919445837780086338778727328397397637130998338342157197895633262826816462950177207237669315552465377051288189113504469584418099887048199676005439285425523315827005114661595843337438099645597626134092449945319845277766677610379035561576763822935645640231408896429767701596736059376290013670048568996102887961276869983393370407699270931743141433368103132021967220535464905574621933921219260204095206734627626243654359402967114198406466691411781090828027987584337975191295515495121899612277577592603951313474341111787511326491681102485341940915944578649290783792552949118089385130830937376199602330303923327982897973576430331434792844873525018779737738552865650278190686644793401563884728079340297464514215348259646297081050400705443432598902785695815299705794314057391097322915951627939907152207524056530869211169973252988472118961252708644775659378971781651461183706574342820636417215378840066562888257673237907057356214355976969013927197718465730065145804014307281533401658735837996303869687652030056043091417468307704398629430208346193773872723448785123445936476902038085481498462100878276395557356412013186478330118814740718720491835681598579496064222308684589070493629334679177759071159518150891009341825793433271328970677229637770270907582937331129692210149131403307597149455515686044847110231174534300490871333705892868639235607258421393118814868884035520257737678646077505686991104712194381288614413616446243755168637402739279639956876173022835637837612906878327128980245868040322577757507107518841577955432548757928230603971751915368010368046703459669299081335532551594152590923680531480710493320373253322319736885167970607259507386676919315833869501860798622055911675324486376452708803185591079436199214955216422678348398130299634622861978982060264181834908473285690500127683157375667941632468902590809247851601169103577443361048623193546852990716784929591035843676612860287294859862896395221231580362356490569929448379886715911700996916620054686765033653717565051534222308075411537821308237996183475525703762097903477307394563141925244257008821461057180417345510218958121256362945725620220498952611611668880396975031298692459704286677677420445374934198948603373966990316177760561458085721292575999833386911197114497591518936088159105682994605733616560211817974993801610485320672142594684264567621455031340998823411456686632987942122317782518441510465827885421387932552445820370201413485078053925042801161479899728555208228102074838182492671065413846431978128416065222358569063229300410498185875564149076508627985167138788317815326805537132378328189757653685800150981811337192101382314396277520387722076657686648085707628038106111043793623687810121794158956502331632838913392497242359818600682706089404637734196777571859947692232543692960899764452603398917744268812651951592489320600021162720803221844269164820546479992096214366716039197997253182764422297384462406618119369600345747873423326748786918497883853563734597352528439410468507116432060395934623827623350474201734119186763107377490785169662069258978145128427663662619471669260457187585071358581594073842292182447613454012184046679493807139535696622534425556945662148582385215048279576151146752585935684982081799573158171470113517897145783943342621466334574214872103371648600188260615692252430409298114630464077752334750675954850073343643465143797232105503859496956199265213756227154486811164061351199169667273947920723241706859589407581374271739293260032106550983670778939240383809071538112460962379224207588221652434998293759349918035015366339736059945734292079291467308743433129833160227866265619817861100943603543722508610288773338277230850100503715711139869301979914926504290205497294772307131447098053393193584018194241341976838957663512572343383100350341971881952693819112846206566401308594903749889556407846644738726228326624258646835155133872263326021173342894395145721324071005292381055526558224953433474103375930144383985491237928993588739242334661590913213015297020827910832816877335730415525349183831695510094545077460282898158931535751175731610224981355526790165287077726466511876494858895341055018021663420971421848436263277688829932036933190814094340758901904384207371920444009466339787277400601773394195377552669684976791135342707411526332662422427345773406851922117911891638283781701205407443921779730417448319843769304355211861670323661461680334646783924857066768361190550772937003253456674215988057605872103995931039574967620611134555399452495316586598350026093334319485886541366750027073447897456936942519307307123220761443976195903171720328126455970875074272353378181178120788358689117137717208992498524939344152115949824183063961767527370711979072141221891312045488031292954684061332413082077323023292566755941990457909779830902542019268994273140313744236482428126114803744254664729126290603694942833892489244032031334594058442357456893675782145661118103797016338347830226910824527144303648997049115849214148352521079548722001093421286931695102603834485208021049049253017282846549008033911643109145395195731500159136144001399580660365843078992627017879032938242497571257725588124297780972747776163125116122863700144821947329318513113714657512653797002053928816068522273559468229524437005107105317783253408963192590420925273615294014715451140821056050714282005634116136513728444911534933597721873257396544793537367722518288373080686778889976747743594128569660195397848115057191174750903911233427145225788785897210211566551488433856384216879630963805118904578935717636292311763452439563141878622355048031560233145696381410526476287730590380102444538363281973680950120121687359630135050903764910138034562372792932793662699677941652378938756464462199668466901017687378366384516997758884245904708483970126483923020265413018702531495941694646792179592985506719552476997045883380271726001817277509755853230606593174368329338638706845127331744739815609511002314423574486454708484392388404975346299636509137411056173195840404243100993999070772983412387714997421585252986858657309316941113038295738437521343487040527490582356801534763296453419461042124435705085275727560273185886468104323219171449582848140447336587618158662361434156640562488136063896997566387643451647341401780677622857594757957359607174707435171250439537757904847777697901913372172491013740231263127916379385451705566618134320822143240386744547007609148179565378042650914835610965639505749628305909297767585095091073598124449509531903289880128837067677889681088496366372698218598635888107120996343976208871891523239123352946337851549265014712449574242318245078603016387468236245949670804864457290499576726105464987415226823862120276701101322984840012528965282563991013964264534829146585320005462489587896298792903621977890119174606500349828889077647638918157854316071481207527409233054275127632697308267721926636307353590590522287402907257688773400810770094516252650228631337983816339209825689077967937201304448566152995136304471723083070066939883715144374491375715840413428041548575900230651187200920485070062045744253359249079947293858821965530988420097799053279841973784625095987960398242623889792911982861452686236115068453930352320482179602777012342941084746519524915579656808285185329852397833790772257386498688923706212225867174722970411811819167169031918458238684250291714534045619632661458482687181968443265678867053798241258581445230065735357728406056370987921161411041638319689894554077970423469055245143674751681562160185799435337855232046660737673318920256023861384921127261887556884761036213901067516447984905702983591747724845940565379873658144861303904312953087661609443422426155590181585613695280972248214209391583833537791147706336006381118114062733610010108925874147510567905782658515819251915611852040280519404581184786310429024939020209701433874835300915840838938637949426184423556276165855968663185137498275283388025567235029397182943392993265373796227669639810244241119159973422682875151084015339298501288114176591290254692772345370337508378892259505789697598778143543045626277471734812466781770808082678426547463421433421022418093898008666704210445957759659440934605074155533742986120322164593955772057669154028896736557690652906885695931417798292466277316896779513464039990413868661008174147381498680428421884619006545894757939761172560188683957216815336780245188551565702302215379275903795447404081939799667710365230831790155287511976684032262570512072170461947534361735771629872375632602523226821172395478660814287383720482652298504478636507559240333254026645151226185670375501087538148207621184807100072782807391778116251878056921639928896287301910986513731436433051508024373658865293726327688312884292333530456171773708673478780226381692069512656164123062476025884693492384109642971698747027779861509129133388630789561157633656150198893035435759281764989503005408602312389710209413739594708102779027118638535356430606831379340716487785910088047966314907289880260926296633809072676613795991507814410798889484623880391102272663639573997674362247024406021083641604056278892631204888236644107261634153807644831746034211609014523211220140831705383823967941693965244197809970841467945704163369826736791613030727037607818372738630564704011719769746699712376863548801229630100805264932126260985593014884434442618428382124847576427826350073340090171952106424482252762424186011669219684116684667815618423636305412970999499034723314828977818776837408407641127668315374735145828619991131611773842174095274283019472189049873994075607691366743257422376996292357412474541699283692694244326409156387686867507262823443945126060806532645615624161888335246409159394134146482872125527940701821733999691481763789093732533897574948197751773873172087536180413450468856598451134533756041808052706333955585563763112291813070982188935861464370281681388448458677705656054894010572795720569950630088901364312397828628308872832603551177250575999988747070975210449565592503729419392995096177633912417220980890585882330591617194748463725527712246701676527438666517633846773509411862914091440423534197188177820710895864820439637210611786893899326299311062878701512054769144148370642955254389846093965259351663649103556198396500971335296833300253710820754519715906763859900274868453602123448348156097505682369993231821386425471709336058807530216610913146537080453906653276021734173430761312263817469457777359006856935820473853221449793087481480175255129665051647330872221891347754470778634289906444352806944165726084796270813780419818341081193235256337659699027442374238703633280811545689059854663816763691539260856803228588646440349196457488966311138599344791938477776719060303374983361482615819632861600832681812905137424719614098419484020548964956423997111756006840075399933354810677257821097189401531757005052437367918167618548248488779243342487393860469418776530617934691941814422950749090228166774668002376468228662423190267013071559578873879127179210473679681198958309571865628420347373820807736127773578430325156099646284135495064736150911590427421329266229011337882869425550847911131386457718207681055382495584782737351778048238816200038085842805183878904309007884751725826907890026187266667024808955925988695706710397773677893802896360656146178395886856048942633109686031117447618258500511884185812324596536769491703582901279563017308137107156180254415244791418106936868150596761812449829164388295180507317656524809945787564242976881757401993923228284769898546988627318841197466088365585431860413315030283053320537966093156846436257929179612818341268790594873557939472436584627314198465745792571153764807833356982643352188681811001612789263631765539108374523267062606764644008359623491256222307410974093117508420582027992319348969565682430368636388781149225520757303757508202777624587950780506145175808029854644604959492288210439660070657008726711804933306627987906345271791817071288164378464510380530119180442456657258648571770381836622618844275608688426999323778431638728887224150780382002899877133784272289339061677734188598539275351091487251999504994936228249426009496503895703720653585758289364648442374591833641316801201856742186991139465975619169130763861518507675394592104478042278013136117046757353241734519820906832498507374851662584046362931278019788470097160596979158049634543505916620904972463827464629053510092676123258894637485906524690045580568884526869161948493046584419344535282455653715255414198537491088850644290775469980805603188305720930228021346705220019848757569355778318191865027623496361612877608027705242709600431014979427127740490570662711076394282539033035553470630802376804166969545476425081163515681393837381420903736972800061381733551255086445436104291525241976388320529902589852262743141827714192841728297800563876777335261985207149462071408923426411456548617692332730617122791277919729336912741908417215433589297352461746620435185064095314418272931578879806245597659933605548595164835193511483526366599539508099241860455873751793676188280949269805398854963341356581777434661573890555266072286984630084733937003225872061415177159348347285425151365767341856383559396394330723558589788778725782557022861189706435722832884446152602953521104518995752090034273805321725242739475245728564919992902815824528087911793874205498091582674894441250685271375982781901600939532908990258570322674580758365590733360343613643912650179168476383282686605827802854301580728452603200093927791395979306533341911930145534437455167755716448846233741380165472975861733747458289364804679722313031961159856891148065173034192431885288935192424798233461098336742448197313863433715865297461884465808921576154408189168199532550573473568095565970476137569953302139487661028154682432156764902632625000229146882383729184911185011549928222346724148909424677642813282584193853356792674247852884612881781911858824979390233822649902265998632431893915120675414329714722642187684659671048881834069635269197108353446429886078354119972801617087582548419741922883978122894694096345227545137331294266827915081297760480791503332796416928806640546595336014145929906755943196231165178490125082020608262239715531574251082423370963574708725837554796313779346371133161966106087961135046720558257147651874347376838593220491650064324577192276487099976999144865100577901034569456578179218544088890179204004351766016073889543269041077525449909514059928297009993241375384887207605018534636336766714272492185382843462374268066259709509317125190954016130220803252542855293863955478203344163011843171293260396193826510201694175113328615286275660135539896686362350308654482387783069735392318796301641559484102974576321234546054909917619965523715200283853743449448545418803929067479694891188708218753509312747648991459286262051110812134791938725216153331021595968391434617083056314093487180236961435901394111105948046438328421416480805812398683477092089307279887974515327977663744535689676752785761248096680903704475503664575816500901297883625468148216457361752744379934798423090266930174888674184168477518114754861807747029867937277432427712269365655648734788534184657321347515244393373007376743686311589444605781288993572437174540508864548599548759869084022184897000279689594983886446532417460183029180369039289563970541397074158534989964004805121943184898135930498548068138023848182078656356142581816578351629772335185169588616617445011466002605170588850870326558287333934111480200026375977317659616902630398443017951175001774914574576073419966299905527723708711880756132689391619164914116213862454809003033633794249465961911514568413772878517479859215388685554381728237707763803609558097517960298338631481419780295433071307103398150453085418879657986951906980050170669005609201768091715318498084320989806251284371116085442215394091577132230902553803544567450952371513161361606630229499813465500203118346233690055803664195731368070850991824809733824495672648870542953649144006013201524919511011881935942050062410635487785595160050329924229259145071662319242463016777215522264065110364601363723894456796800832739275355503632664591259132798141492874431086203287895886734336294067970425557779059381546778090426748361809215439007292712497889815123844662255034776106523476912220004220585574382811086362786049988842851477192592641930126118422494097434425403191786448617058027844352750732035639428775199595615547411989793870631525035667988540471690176265571511109948994762953893128486746366413158763010620775006581633240530898275742654221338965629921282734648489520797940548651064176124153727228705855863585202410869400914808919882428511949195604093968598577073973373944249279239759873202265799913479002681782839367156665114964465943236489498325992756827682623491003324032910201649521020925429317879453500067255162867753466352220886248245081964983541594156616549259144296234864735924404070925583213430579024137642507699139503831599007286856127945910851881604145120733262814320596952166134718709019949167254692497509300608209741788578425070313340747044037106677955124782699131554489954354705992920239674717611494752735585219865739670373405989231104278285357347924232983297480102218919937351618938734112692007572916864649332369901457056183455108380989350604052612756302735046315007988496843009070915588291547689189742916292058512959333788165610982680049748623244288456071740929024395798774875398136107605292116118373846033007582511972121000635589350582886008989634525277326269049801738391867489592063489905349017712542540802925090088540725470589177212727632874575716725358924526529293746254470171025400193942492487816791260068724928291554196762041531808904510842341394448211007108600163314348660631236427719790657592321357787594758031533511505693784693528112799230441312482512899198876155587645390971755648173513986457529365853870303977195167000221331180502614265317628976495621200283589545609545914458245166566806726645856782334211175916858467547226971475230682104249524155581637817795040180022322776364615280917401258313836276541310188302596597194293735833610461937692798853546102614096342873853637670220377753943421903934765047976855833794649279171849817417384839071183256179293935161187848144250955759426842127293682468084644351056142338560078377615289042804962035599216831756305959773660666957682670347781285390308797562812514149108002664780708497506975711595200600107412642791344927773707855223143550472705999928399994385962931525960427815356077163721477772457163637608774339356233746707201600977551333465365004708875791733953969721344925462878718710395241193654639411534993452838356372318308668321528732849246346208914658241638875979983055542637957860370064058751203543939612660609722517769020536514949507380928650772152303195658436621308836155898553084391587644218486296600249981065579587081331469813257270692587924642498908544202735424865455504841674553759679486967419020610456693703201427767048858392710275266525763274708481515629484077284207789992747622957134068052083742152551696985252789161415632464428528479792336640137845923086055671623235406989186162603521854232934566257101777139204880851629193818380733396368000678078615820033109681061635566517711868549986895298359204155100518834923075285945549458421561180612001558805062168125549911440633016806896638233034936144417149603135804958321672720236398900373379917485951849358066917074367055507578112446142725849609340115974767036250153651561025153214566371311176709997093828690603232972332855974327602774852403475335130584957246649946592300611082950482632991870180833287833842590732702859177481396597806721147774065525650522081335173357055157754153771407560585979556391699517089962305210188636690632362031492834380294373862232482651957416589920596914230195280491380189906386055120082564191176747529472336936404971929885585214117153758156410568836103599985826380822405750030675225296902240110194534562589537210903295299857155712302730565543788439608073356977548021540328771718222777013531608000373075593432272721600173160149146728943558581242440765525752926334498401181290623609863388573110769528060622441724453944535060898525506617250586938556383895144116226733046549164861666298578953136889780982752435092587865915887966220424183844954842080261949831559220001408237926769998616802648942251586035450289665368772736198807302950034339650869520595811673055789807866244860978613475210491985333942102310546438414912304431136447824336212816657441770402299476894800846886278105337912698978912365492659543131923172541332653836828462918270872925645664280862441769311278983465935462847732665896238948791097684317695815398577758319080881452283740444837423948933036826990704915994237589998599266892889463876812786636939850206061495857408227388451232253959978927918705641338501732893875157557835314486331368116522637043047894033336185462681093922656821543325719134221061027225369513064782660553890623218315443467768943615703805734747379515913584086961975135267928877138038566535144619893697649260385768250393162497866166263896417729739786643215572539289633537144545821091565039431478736777597851548181926838738430020618117433716736598579429883046251863365295098023629140154748193970528521395650554385253324319745534036917745657722899248406081456421004486071918804042089092602179002557619911794523177817573191687058804276674128479272517649880899438469159559237043140927524391480750502008747385798295981916538563387783425916331018699918165176388057734452989249209181053142010583733228750039963444469604782289930064469041944014526606809336555526295501445904158170069492777881928944818703285712086210106714064239963758249084304714731234192408069171265454288910255458750378199596318656173623498123622770140268915579257798999130851136181747512477371813915520797724105137403321412319170415770007796530958124056256363142355984562312478330073427650369842561199947748922166643998384829505773245155436722755855600356362001134366698370122384656914865767157313997055990980945411296794572164083690228045215666132146644852554041523855785808843990597346996228410475866659572100549203461947450184959941064745928916244043940223385669699942539020019446069766603263844855963444785917285385045834480233871526632077625403836101962455924399599066196273279862079623315336204855287375501458818781497686488665584111803654726829082508363572450657762647157940049147275170087458877616824857398077472433893885026429454346108996216350500454361785240439510881506625953902430373347446487454650487205569735419069170092532916753170511674636904228199497311203762048008152420101228902565009689090022287823118474034112896853343080505075465434471810447545287255091103409849498006269520551184024211113644805911848892129043138321481000446130368055354217531005100570429261111415446733691386573592914206068338171613483653207676797185375707657624321743516797631906622272051991175673402555632134124344013308213772970026344785283177855533621463497675823057145327663572748577274055336752241070925982668372911912820249379505079826616591403138931102565475435464123956749996496766822791099935177389255896322396155987818684227015527914966588998085318676890229927221853522585512905741401862434688289902927721914022197509915150285559413970869458288120224046716341328194186956470382411056487446024793238012423792427668334166624831210094501867079369119224643736797141756229185735058308632259887995857478931011095413494238807219845139262931143654684263270378519709023414488305148703447594080378828594121468944988642480918819090845860658602117148566166564313816392847570840663144849976423876397720409955152817769789636071873095265691146027478947748609446255554409307773452290200784210688378937533592837421475030333402997055899119653570988932619557940016503002992733015525249345845663479671692091766631572640887260183299120386634528499932244498031123827158355516331319634522961487359641994892388616696532016624571304734827361950914281693674103896464634375811598354235091198885020560716166934450030473535044894950183122821212737995370989240238143701241058807193477069027985731928039903795430887173962834249489496124621465777105534305240544236560422422620068116144878647352550603484472852699862420626301041217456567220216206886426195813550997714892744701656973161602986877659095003028150135376851917298787053521731574702009902053191012067036620687679075230742953699531210234240686316731240559868239864830316660203138221954358379859264779336301512370049791186314046235424209242029840763073561102647010575266096033972426787864537256208390811076534839315065653024093876743045433638634612953245344398247061844169836776094816180685439414060292380769557373187755274722482604026438706155488417674214416863145612925584491948497696458490317741435035582420279117293207836199884772406078252309629196406418020215347372242284232316862151063555873227296474131889208722237103569457681385293835528213173670702488660129244137303781808140439588797278277775437636298461053047476838107403873191013423754713814673409652907162124010434471963788960338995146205899625370163372448560445563829499643113994817918099506392745599480777449400771845461414259116914437031631855472600160312377645308052329554607766156829330959515868444864063315309659839748019354600530871260105371023519910007996715724656572479287649914831729440330486808978848148449953028770296337231487302192177853539078774576968690104617782786678287707670611461078658840017148591187349853090191934201801281783452930256168939502154494946917022982806632895779768385399282590734189756964773831008245583989515953532516263866673124313880127672379466703025236204684437251300056894785110495356882527429263015454599052285054263152874809101518764695730457037758350765005613124430652610507189333285587153079286931422978166590629602829563282589347581994307053130780785110080161048776648135573723562016762340863315995624409671588532739818406959786380027054425868101921064733728376699946616488771756879037138161098421857781482189916666470694911182366389190722313586550228362994453860339145915904241052056021820306082547114361832141576632798110094465196655268737914063324538971009780822583733391509662211386108385957839529972269030144297275152130578794952808875676506337560181423183252187985473238974848354921295926336641533612639075683248168777775938950543659521556037437522257645977380288917161065849537051003392700672024442688442120450087798496337588826348405773936122285635638449183525662683430867907339364749439637588021690431491952076853783767871009647926654652574835503153511446808848451948515035949173961553477513901428531240168766042557685128702096537746431335753310408574519664904180780766837264339474457631081642629311924011335554826315980344214051053943200191799496466651155711148838746465635499878667142596181817974016246948235911121875702635633516890474379379034753025489262379840825235810601735820212186630138672596536560016194141061195470580591496619683457456869177018284848500938131653649994197687109825140501359211103459894877557109120336997129373962736774416886742706308316968572392216775922258878377398490077009516194940140709600918252498544849733098152549504545157235014299958051119980274626416841782718452208135487074927453934295211325771582267738560467105654873342183343987092188559974283984437844008382023787696515576989026580074533532639020350530574300486409509261309514031468343975865284178675191828820833281026150497278483017614211042237089308651092532669840829668556998697981894389309020554695976691741795683085011768133402671566074715692529049208973958095754219521354464840314030613162393897894215687410344880902661352880959383428088942587771880264814430555892349662788189250017305004544788674629619144550376297001395348850655686787391763105524665705457644461167777471409924671559135879848312644717149654829841251101676938041261134443319857154654274766632690573028750189942702593624891452478023647877390515873770847954890544465598588999184011087086630974738419518265409749960765212253920111486806939933116698797432991567425973111958912122478190157542549569074282738042026174550826785554490110409884626280431668369198657641107815765368756673364691267885745402421639768170893030223656531357210971253653170006058633101677132798400665485669797577976616634617063830488311430353798471048830792502274988243756436495782743597890707396058379166421056955051946719152508270724730967132327917304016229421742463799882579971538894329571819252040509414995925272318445017256461744823718124814894113614489114352612502517234312661450154580279298712558025620829251688041915723125877438082861172756018287084900394034017876525810350384459977322934569356358962890517358499692490727841793059934800240949737418311468539107639011281245740479839056399454362944092871376482648591727444300115039726674788082746605593809986736239280772110472973991478154767424364075684068997089543291569026542269266636309698482072809555911066634122535368309927313511677929001018780199951221547233121407230662915283126458531495723299151718733211581117898609887853097988874866204836760591691186862618451840056562111939979751835088960750041284760194458233376236626863561199753855235015749171044871833121325004710234910835288266723850143017702845282795062166031551264125646375024119755857497157166631350254785836484677880179092817931598257775519701545697622574665665710378369327540154729977144728306166621762527961826843608411063099890754576402706595161788424884845131770982051705672140901803050642440308841726856190338460296944873208749608418508121345748836607746406850617404230701292088586700883822108899732500196502285384952228661204816563217639522316152484502841198719916272595917071180229796917070360060350040707496971821514018308919839416511348368783742975952421011208268592158889225999141244778154130290217802436585449230600512165748516728317371817602908011010192460433522757164845120469760945348328550828169593889435773152879739347508652047205374059219001668038009368884639561279300869378546705195524048790348841959498601337084912638128672349681033123321969991113108932782486714234173237506579502057614177490553298545678594336667107828690101542997923440076904618284075710599443842017974497643898376877777432624909918883397291723413020490833046053990600468468966658442504135840978428750649631971381640008866252876207348565373865020510542204288552416427810878434530475650627031145673129010280910871046425427155043398364072332660689594882644031014967851802090426355335778744786215594572984936418892029540576179061669657937078677936242946999003325501687756749055036967704341567921227238848533265878443634255116219969126126328818049248265348067889389829514245006612582350679534394394424073889713089579078563321644440836109656504233633395315211568335458366009668425914105362395525628786646313585550093140944533394152974516470432802815199717313158349050577744735808034460016479292281615846489544945058435382353725308535589790398111849720860746951172981620753765156284636069099336342656477684616709835032293556223081672046248700370507564139272146812734744726946442642678473628563955137586030242009912446907015213621901069344818883249390459991288461117774527488738617114594798355967442089495051705239628663705021692042517794864555622155408721220118099880135386865319149958279819595428906655266119164205039633844801507942582717291367813028540724924031800342112331264707845636385613148117028274674609136076258984055659583859497920964114861596531580335411092965202746169520595070464809841092588140645005448420358516918496181342221868662143971457507219709576442480663052779702877434666368317275039814094803394649624743988866779619483161014210149141025815649883382822254902044933515712778207077708954635650286907506886015932541002998791643024408220213369120084011221558882348759412378356726219413197689477213912903626008183668251602699518362614489526127203446339101905765054659651329731897773981866799733483162585287086950589256010637798271518525143616348269319056594619217901876940769812922642462260835322836956780432377243711816342810757367921061062546583157994207356500319353480453231504358305647510129909628941490742299211315073563827112782717226367903506198311217520143078731263536576925180541595573515266478484607554098134365442337368969673084717541074707382903964154371115236214891603370067298224114126579804561419517538567109009646018144635279338624445421430542916402866747373435873561233656227387071683155065372336251002803833816648423176294087789626971004216596852742129187206551181935925657417186579162732354687664273598500557072837597352492982105552724321286798826653610828658257416462804027878054596205716596251377819975180942134611678932456917900046626019866818948904815778804474249288004802939262410691469541440476266713456353036939395384743487527705893087438614724756895875801692511897302606861522303391268471444156648438721634145374987181414685646490217974446493861343565616390644159504356701581674263511451709598976166747253501785136912872043502108881905134227756256570746984362556293745270507521896499548387491034688179274255341031733983771902358523029286879730818445158420811691732151069167721600540061577195093015401303298536079279091955014152644543220109080309885232643350556990007091134608396236578648722938230133036721944816901828696018490236314271716718190790982480552231995621289027383455404335974966275212559215201148848025275574604972020774237355073732302720448125859929661194705361087597498040937665984813387012428435512469080096558845546694199941623940871908105971487918528441539625446363905185322615150632138418826495529755914746526499975409996210076240785557292251461896093800300606982962649421658984487622472367329988150908021501843036094511163635001288925232892898670867053419087197981142933386009724116387631700952536514092861125818961449250029761801028398912454284068142819152831079906174307002735308151928385112863476372960129212504499657966073031613552454170252248691887966189119216465000317240332280323265871712274835626374372847938939670182083529304795406477700126048813398161740503505455312591097403530358868502384443346544837498581352338433497026873211104103901260234762912446747399683007792900062054053728718549728687778311865689838234399013437086025834361155424109208216313216139595787987880165492297957250066182949270821588123075431016831757245970021884979113535647711779384341754969370294988800439048728571064311786239081613569132948430463598048491197293805940854287706498091467996474821262110146374527109637409741412535056822341666338245004509803308808120256083355339108063098174695509873861622461145247645762513702446493412275205835799803585746814917370051477059379457425385593618531686831737458918358412742100119575591568058699294963290647175154820769492353159594616791324957508690892063971237194362553643237927413586987518206402383550917611138725354822941458758353160130062280129957732602643746189646609828235335510723863341832783154721268745917376697739075163590933763665473788733461660410313786801553459966574924143693424676540887712115565678269282044804299412002627980314369703894355251290988368924802578309393385110863799658725118826316698777912996980693310224504652528056075370591881077388411046038290073853597886838581490972325775978787913511439212605889790726703916117090002084153889603363280262613595925476904430952504515145285942106002142604228578365118927018560373649683522197636764689141928669102452377838394019803610768955835763814788643095534024533710815589557339334357129767381248229562543468025128651837622614736314692612780095014169096209726460273752441926284002707973542979053992368415537578531675873019866330524533386320757607123658542934883345451392560798117480576436419543283871147708454473494900014348523256358757778367348227778723524522226796623947780032217483217223460779050955702680451050395447162092548797746665322668457503428074336989801971332042933915890988584420819770654714009725360286058229273450463771518263353759385551830494032003884138996159245463466779509180878769388318240665683117596581019883811049148279136097707279607389847430999223599835755915789701724203190935923389798146436219615782129112891415385267925801913015909624538144822333906104720501493578154969638710398575361731711050250953885875774872540955055844174902811603693318059756540776575949795058657945074754442322311645018351283943803891986513354697035415155402049425653236419302064208969451066549082769596800070324642239801618148959572627767260542406977082842436717612965827567584418027836538009064394656033864673197419414111480025943391069858429775363270680925049808294109666103638301871602491275271065897353244849754332440444964863828404930750051663851872697540787114653045615293706605798374475689243015230626634873235156276742139740524020483656651851612728571567137120803504044889654229145400127210574039247611334873612887491917456494707494368405696075179118791673044110048353831240161188817041509456234529183242571100097032991344460106629387729570161058310137508763604226308426122353229652706593728976782545860720336792316604997614968521326917755531491227003595250530526796960353495471798249852741931573677596849086218779016558992395721107531276675254598743306091954937875040172876329674977439418342855696900310871678575366936392411225599364145702618604795811950936642662205695400296069313922379736329894156168332782703252570489748607219806669599461622191601229147871786729192538761951300812942317242147043763498898520962201640540332806047987993664159719985394494206221314621323997467230872581012142898447742714665424462347260556856942823592101190561979446033992738012938141976410942441930933732305955440202908707028966532179685892050684578818947685017103968613733658821207232503292000443024023192819279025734111759863316742422868759431723773205431318788142794916528520359502770152507061379199453915458414725489475778068310230417080309457674198751224529728222532807909392338900943015990102781554629481421927536643531118915899804885097190195673099937645655731366943500572606039531240476808111195606638850239031215033395778756104303634190699566221150000857119361342218779764238476676501376341875357439531278152692852078601534315063667531991584752980636146045856704657484460095523995647833674851720001569633980752109454499795366265931793342087308732394154407048413660814259442253198161978350711421116111271835199635234019352298632553118431456090665326830251355348260659509149682405387631471706449724264616463782236847939156722773862650790248932863330380056851198155202908010090255952531725558076016528726297041943265460168176245958988396047783218338490942936376788164828034989144992038058812602153517991642790878995763364131053375459232655521796213778400189622619904944819389604761275908350706328863136830360543742515874663291963409360058355613600486407121256278013701255024075719528789299637066138812821936322081053794895958778025159085130071147681753312013531370833215595050209608364744230852092116629271276093307435701569217986973071263930650157425711491302350473115811476148069553123693635285154111616279556567518206328657584905873940558615363111157616326372604897992131779650354540253482912330574391658138902060238830351245549326999972446362558047778802508994118085693636995245707769755380627069407101840797934467065450712349279346371717637180205273509420768311813417701191804393139471251495053209049578589630275928100862303692212308134573953408107201959926425346438907152200925794017773278257413697007029936878738186506658930665468178913893160966013937941944068025766775349223024999871020927234008215641582781010313348558682424850347692359791290772245680406430209943022422379803561607282936675823931547733534138503028257925363912382972993809423812362160831409504697738438192847710493920438533011558534643704654311088931044621743650253137171772237248801245308652736372432655201131753588768199789633567800701990651066528872968115000640861296548355195776299775454872872241554000305706301502629901577929561137823512396717723663178889072356740919084991957440176975160507636484969812622416558916971173336312333241528167546903631344175087095315545175163193438353564331650533507345990589884089128842293834952302548237057473558611545052920134773946227614719204498087974121338714132055216490323382035749825844258239595783994950489125930463356625176604403331766785570674061834184770516493127148269776463349907827398468812493303839409986650040634300911889847995224624235628965806771994997132820059435195533307431734886888444227108940356257203867732260141160960920825055575661637319766095645076104195430104734218174699580147096244831247609338029506756956199845859578366028835883388436475679523183325846527005476506987509508566867246908440092595376004089278533060569603955415444865640894062864164245880401375503342421408527026394489092322521059727936123116991447410942401745110718560539345065814379131154381387347467347905310078525021089570683715617903598178105535547169049515275769842453778449143509875741515616164665336477416629073543778751374476781021777794988745686543297063683465608356311177333055205886745872194694392892333011119988636782018633523415440155462134782690885909451601550439161024437423365891061373854243063938877827441806830959318207533045496186898162862410481409613570604506755729674946617749145622968634523495853388114247933592714238849208580716777730165026097066087311195362419393549868421734511738965987593885246977098414405510899656731477611435871099157669319789688167924598427221548883000895468504592376920279456330598025654360557528234128617283193072374367209469090087177981684273518372007949109544591910920029444065405472380098174098144559495144005365132749278158016585319282226521215288037175563356171508142384720522251166385888912775748729433557551638007809957490632027069842547786890169602344814437555267034828353448878657170142698238460309073842011210758044130470188675326733147216557149918032936186066639673570178915975267948937338939076575951487806464083226590413919573170928449886004277054254706810748347784167817761470689144637852248401383205118107007734648484739798468420308267842493660231272519013956943511138799795020862463754425852677982908029834783036043885290548158288031487773843452666167314003816207724416499926936487020064000100222264604091894087062903633493231278687236662006409182835675641872321791736932828648514545435593367304969256203907575241897512059740587970867218407714371739648248128665662004261682093562825701674957596807185091533586452160864964294271769805877564970195383511360033559829051468154772257081296879617536870618473102497765711738547865121338119278328454882531459142591155690943034848590808675259567616294152964047738127954656061444395348722189904554358900914765328131246878636426849572050082763307334974852698228769281223474034152883054909711684091341170322191140932306080605105453881532868650715658185808810050382513189042965760932455281722843341670622921419329018046255644601319439207129873771632967329199304864274555267048018336361941873901563001198242498660596763160610857228567434963396126406776194994948940633800577161576081626287908055399192665941441753484062468527994941319602164486127606366679429020788331704351494768252122577792928300867230037183620891116956557495034511639795174047942790301318210835799696108164860893693013107383107270241736071716971727393101222117205629867211611111968588562248996846719634932846068752710128583755566228051805838106272565798062437891378310060722935939926636445105316692333598424215726274202487488977015091381018617752337060276554077805634701172918504055935087335143627550723080588731999010840423140153697807435305182853409961411133932046787207400353926011699208907440289563984811503887381133386496526710940728084112423433087132259691285637903589028975540455786492176795484046579447349404693625143729812156246123351015818681274243000274754030315290065688077996504687600624412610136540375126573499244751142645596673355986366174405394985505654345525852876213499594581108827824129576453884136664640578686779001995009348382142867541448400998592057111453687271928488605546358004680870079987296042564323210228421331003931593401347751704990825897350363770346898368918375445585247695806804283136150255089367514734257544399608691938114535255905477022461163831267444021668773417087360832942761527514122261216592370307648757362387501691859608150495917347247208438184283851049231592446839481775218087520898995902921411790250247395347716424845664757904401718608988210847965636610684984889295971507145044057620143764907108471820516466273729251103322887409898154885904538101832716417201195510500620795008464162086260647169509140833693109444473733413714438287305159957214988883737938963279843431224320644514678759610909289520104959420350198774964209356842542454045196279282917233123593036767725910459079609641194666499468362721305492384804882828997673404930876412605450733843520789764744254949058699362076206907393782189278704774698259178697160764725852802840107040450698356910684188507214432309380585637466416023205745259574489503608396809580341445919278450581437535861670685776370134463419213577402468242424361988765944765010295586458122601316822255895679414012084216953969084664640224206092518813305110498326040469518958790750848953185929513369499112913590121298075591301758633852066968960860652247068902046642338338687701495882742955193894091589795117915520062472023138657399792963560899828392885371759080890447179275329222178012759497726367215319604644289472010898311463470862438778080233909917519363822153524298339820161163356236585559418350753106929731516160916567397437688512392301544919175879405096416379945423129474594053486404592625718084921692686851020901984025942606619006067940088771129648624406079574399827523108668426175735215858283422346107878070718074053505706131999618861328823054607228779914647203702833234634416858970626674422378045205575271266718604338378871960488394383262198517059485931494207374916236388780851013813795220816545684950623350789284106448397837024091090517727709880475336400615171543516477572282371104475005806575741598593188884397504550662076042775627723673766949568313167399806306737797005240962760456647749071993308069663865541847218778335371907791641085292207080179251868821430372463471509579321621948428341928861014355508400908079421779565801556936996407649276467165667745573545087635299051588684226917046437552052161888820997832135963022624850187739214749681097964943474952835185747229889601031006246667127867582772534594114644272263786188532558757658197375305205173266798873707801171249156697985442275825032723684049141903196317225440994668664679637155887692507200044517601869486499207194683213812134391071794150181391327003554356107783096587661001694573474363980323936536559176171833452241541959387240985359248571265253220214081044691799329357862071571209785695243765562783900631802218791469441172844804640196035570144035248547346973462890562204330980849230619341982043350705644629991465874244901807544505580723467146092432090571110095163495040737994096337183435518347071856353365444729213194522649508509828181676966065207586544730164070270884699002710954039429612279284358414698371453748514529026868069421440090792459304018539697594907146338957619684441224796258300395047548798682396922250481752545593974414657966618082948466853960301253389340883101452597918654875828271571246370401110519311251085043154553151840893581524395558519830004850188733273466503816673487974099350869462429242802029930792187546419806615995434967081816709203794648984605921361318563107741912079204292825614612710865268918648174242682751864477228888378405212991422728508658951002400565596978428539940955263809556579736735019531395864690780474937441141129579704485586446238648276345629405679033162389241522550317116304160313939284842077923405207234319983803630301761940579168693743943762299791104169569014936521448290792730592777585016749859281025009697327105492983865145631487355045144304094236604075713232041500264169376834825610139790111338479356396452454640241926445760904086177004637805821664527334415022372346403370585013789276784923769652131304959773710471840264896498207786147534393044585126605847691866531556209084749692623124797119176649788893025338312599551881137619722277648594380630772653705346638473569880206630642584626415483211386758407237535372650284067262403375644558636733942016492775961693299830149676195002308745880625352936341485910366997501518823424106511993359808358248722736818277543189814298774512659106301813766185441512362724037493192529049756500692382413363518640685045258590291979967196614560193082960459172680758172551695641268319514250183714406572014669185343028993049906714128379076327796731435263898083589966938467946583352886749009204210443176507053376630533748513909464336601733942103135011035565810022368846916963260744389565604060229259990848885884059589915121908355859369964830181883743078970368652270259359975279510971935315454115720755858219973630963918067183969499678469251262592838206721817527015447602753836335789676913284405995523928889342629398869096309892953772287577184327276045496989630671794299549980086175200790638733004365892092110288731051352738603363548876954194711418352854586711627168737797316242271896606460884464628632115211175879228548908681216003095224336928728556087292031140259318180435350243365471318476903535679543944318514717588928109851040719735659581398419032849027354814962506999024919930248174774767127974795133657586243699252747697313055227463809305689023195395835820213257631215664514709598050395739423953299140403729666960322860306011403898858070859727969294629960146627367200059565818810311313031863609190295673357456345319640280671154111039749065983477993675078874944656476856763613325542249999928643392596880716221991884877110986104204768272202737593239711547875393775522791629855496235361178883582138645335809615443266648367590773777336867892695034261682580817781530459185925792002077967960509810356216391973418892607331598074789452814342035951489764413367102782718843799347570382060983812473382195591086428640073020761015849319403205699546925498050987297772792177841775091996232309279318597027697791761700726552709315895786656006875371681139106270106067923312755241145745179546016508809889166309902516622132939604097806002162120755567385413899014137370002253590511690831563589690797977216423601749375832496477296614863959312914724842289433367851892838270826394627138541752857956282774274686858248749400256557877250200279859104935180653762012451429190701232818085798435753885315525426238674521144867338013700357408900619545252570767219550292159519739526949083657803687458562958867225155939295102484427912294620003976507969526409518960615674703004373010150731424197380601333609009767364477252662517942256309203593067120884632724802067914347478646496731473654847675847759389581140114144140351019681807677689076681199267600754072510448422780091830212398142155038646060433942215271477898748415306217636950644224901228492200492401259287522407172066314000830922848697034535074735210028819778017373218575565370330209395443239412055420549250756145786421213009882061814968349529147073999880848251754509748819355764393723648029497328577988154103480471718712099666692292484702501439460257031463680148161566642415714659923009248298882276116547884427116646668586342624195607702318454998965814843249158131490803502188398275841954490661511649585901018552347368762401038928713545066077827760901302058146393545545759969436462439664577294093265753436837273717067213197859400166251393056680535353001627437948490870138990495269949980404110768376113507169583632844517341637900309962291762022949455162085834283838973415014917464629994275007813156371348859366627353759887392261387160447155149123312088573176201954513068439190481165918230383931929809951771970617772691489431680374034700387085014208899938149239821418784454177527136516769670033037623983717719508897015610247126073569811460890147413417872646154790080512162192159145092106651475341474346201107986395137958965775775632153756186141980139051068689521485108734672813894769172488050226720182577412393413794702214518035285022417809910516792893379251973532509030815638541443922572643668364379239962538701195567706178764589812515001906476150704661318954518845078010163991170612690685292585433333355322489537526668420928367973147280286634187505692489858292332571023946289978114348957948551984678147479362553262157440716099682641107552130472298630583821475644772726628553634812612669439528779034168403761523680842063537306458529676378891792318451651812464314292442470726294744802244249758461329157274789312200381182775976447882400079653504867563509575503992012631619116014876043910406119695510001171284738425283918154438026300530360913639790940000309178704580069025653344516404257836948887645583984289616568662196014037323691379544151911884127449620613488474969346923139722212362097280332740112156682291267692143340053229473346201383632770249202934481321052554005033253736869575817243296486149710139369376856285589901770741892315687998043618178945778281663804274048436070407244668467199570754760087565594863730713410522383898781497636419549840049394699914986248287654108711468139936374084730508869602538121030494086000029622884863034934880663715789852387900981738039970615380433164897302205882690732511335348720131976187414326998974978307079557482201918046389219654482325182631563409398714873377819770107616760163563876687852012094574957250859318032344696353645026519742076196541859821787177159813084336993534100426632619843881118819653861162217042217788378848517178096521385593651328218965491742980162336524037737124808627350187496241201709547331570289863624785803062527959840785184277783257605175865517676480222389289377017362439638635104337536290535972394108316340068882216769395464421010680474653366748878808207157274554911108094523379817041007383377345346129995294446506715227235115620009893813635807984239751450410244422981421018512191085908610372210540828176866834724332691101979313405964521601614565235721517025782294988147875272915609426956500720249100363195919467939907185145482385205373386485054182345604092130727156445920749720665041922895410291389101675108762069582974118931106395134575321019023253881955921434806721622171041306012074313236561717876614337519091928983058282435116868533564486460698374595162680276036878308821590882615763121122714810929156025841998703787240685227342832533913032541791580653685022252422832792180679723996885853617240380685841171649028740688598801932658409447076294481108731108010483150680552464998067724998548257003879836656239013992580977347697223315523707934125042644488495820698951190309106340797474644043255787408926505011843331921664105206108088055489957594917025681191038656762185326085188141018918650613416491432858888245762792967080191238286484810201990607861482217100677787381382030673211854691822417823923777584252836688352906278354379268390072536488722122615424252089685369715282705904720928422316798659378011977966742779369857337408891838769302622398351750315953285992513356022701877180672164892332918826767568128573855346794765288529851559487875248900637961567912283328841372360515442416114656466575630075026462663986785031604736620938476513516819771167259981900983750172834268147585918291073950607980762346155060839707226064221644163286225012360537326656775965820269658561296314672192364265467737262502348189468877036536744871997840995132400682934499014372426081274725585174840701755009438261568249080162148819549701883265872562499371157564596054787880214793668244161565211517071214575516432068220817039365333278667554227782690899656474851941325175743447265359117084663345353484054161579867357696548442065800853475829541731429367556301486545225568973315856196863696457179184933815688886955508922398096443847330125125291948510047806321205217350259646828688161856248217381132368514140471794221374214233977526105714576964816925745642176457583860806279617885852621616396412389764185696004811679206437799944264005407990969455897503525854943837294245911035427034459917276954786534000635082888637738168643492092823803602178749630582020085778575367127230604801973132493418920931944369090079090100106427159362291423476074840366190894638434588743087003041614090612486482883829508044659452910389099983536934463598397358684132392098222108386799365816258485939241451188400224694665809541805107253868727007255416611793214820876236581506428217978492732810255192560707957750450148757450045080375287308295821985585181471148319569664161244949087772114303499554373522757669281256093887222884653880962835733106266991982742522296523391598831046517401038429520752859808734161020374558129775117820116990577426011380415632053139463317221311224513091316491133230269990417582811803113521784942316953622876022486074570856542217457921951760408178297315476932056178630394468354971651607404113108063596950038460496431011522061391291263007029087385637548224644508392834404301471969067675703461534113008710238820776304398396885711390501599876982789414558275515088194329409821521506554622898382050484160283725189912998578809699938003612691733819542794667747938819293756676644539772129074876544998117561234853533892689742352378441690296658275041284222216195603130695152800339453046852166178055153939071619138824564585302358688496314207795806349040286379542299841828651168871311854216082858810376039974478496791054275987649422929090053798245555880265560589489864924115513952468953756556642210295982518166835118453033396262785049615204049640675174692494261298731720336389477973055253553725668437541204191660909463114781463993921225159413205803522093392291641411521019806605826975114080441196723736369330926839209119146773116566563693963984965085505191366782079647214475787134502238062491325620146897984674935766172239499767411630393835051430923337156645263221492989750631230567290892247613553083425756830421455137186113511785701197513059457628522161597695054968489949130150507858186517753666261485505684506916580162716219236359797262928392490491668337804169737577825845546283870332438934480953830803126785902571654913976125101742099292490960321469637267113971860543195917961021041701935810057714434475306745636649892335616338781892981673303099687707916504722075015342572021121072183397760391396127372206491257472494706175509603934064216132607556189233437746624804105266538304579336326061652405079510096265307386490641575706398378385778918527976067793384654343433433272349374335942319146079438187030513200517982728399050049129364250549198362267048309744916110831314503791048121561130111007316642474963294156160861015494706462147224505734100328374463319597810270208937795460399876347859474819085960877447284773950479194083337665307037574443922177381802511679523527389882676291904849897894416935186683511679334124071508267446740294441327532190593129533585326661292051167029659363015570655939846019905435070395130550574284438497514730178035788755757279029956979615197245732902191416476114426633777581308102665051554289225995677791206471628226325205696069955487046500498857878349163574556679387195942730336985456630584526061436441325339849218970714415986278649132812407150941249445804810075844162578435272500725355320489579747782279456981192925102011568265555196664056060130110068306749106225692886902652657255885482690923588030477781744867389131430373302947379948533215702233664697151764233162355295508573289915189019815401759587385244322585006679382374444128973992346291855441945966617978512355406151318877664124421454741509243306965193519567434153051748414724255953756260727728773993741892817357097709985343246057678674952146243603337310442799559890658703490025137423353109329234045768353596333858750084843857455494317522643100157808591433444962569148523823354245459415386640437117836446796593596905291279821714109852768715028614949933230462952093792868574063267263874093148054583381039771663145461697369434509604191663279362958518249331070465777663665345630747523259094561843679159854217056368515234935995885764587781059568703525028937524905201404106806619192916633703264148744672167349780872026868496284253225549698299611510077309983962327911205335227551427912428404988602088111268923623039621615488835974914880118451096890984394534347065531867116454867520103676388966966808714972427589969271281956648047894319566342554997787627894855310948011387098251819451763257501652218747413654509641828261150199446930403036782317290630427641029907841167404447290607097461478779806870132474883211212432129585264736198090243710536780326333780649956668561847116462229518941075127288808020039672285951355460832058187831876076453399247953480577790656796038928862497048735710227079801557663883176218481657794533754971088344429411212377244682144677382315138668757487219536455232080884846304690511736031224126087330831045804202334901279410066354269079708838321570809724583965529799468421254293879776848507284048758701180342992765699100670737657957815197922228591487230589646493743462052271740340193566694703421359426388995559546700825879872166770852123756560472494546600231325009213050474563819882750091650735886038997996722335705424080620922462503689254953595434219643556932121191975563485981158685062623536950163124909570732402680200926690984720032463668232336497369639404511933306325285188688450692586306815373552917046611536079145808539255738367974111902703274651141917999960188138520571252459771739715181994014711896096512697752284100176081118977091699302037803958398727729069041822857150725201388136060822327887449311852522151420087487851866018277728206078818609774577600868611408951725987241175474807873946504100567545309514501750261176367938643292424383102984131329800139529995740923739957704194630693052379473601081858728107960171089776703893265868996391380987944269523602284925230555553107197887830622820340666179751243261268982395213892823584939623862333678061182131974332997832759736003589455035639541875385207776526885849790759897320492596905649165183395646841778135068479806666214377794887083307582370967832295044307147351999357738189058117096274571694666397519639370887618828958449695343110187272201862882590236971423571926353186105728369183681242448154025034174454123555505826420570970851006812150341983417440006033361916384840299362063377312481508291899619008951930446515720133555033289602429476046542034186355576658302280343245270569010595552142239707304373329601130450936202693698633197245467937866461692616869451532617696947882213817615545009186194967377899653347617119334092292568326175295276626803326860119575330342942256811978260632676152854789356959620580914353029163061088752153802957130849733033663266195470638231432178183968474397434893040438809489202683505991185566921503581021672506956366784223106051192292104587406706938731429364943246602133132433365531049548402467038111263306697088565573405571036742035067197956584527323350727211717569443090989840944288331391540007762590800361692353062898321549620318010458135655119739851287567819416764858201716577061753358976308930658623160282547612406589766241581580121727414815720929260030228946538923233270989033052108505320412094117729677086444725767898398982930636170787772470676370961745774190088096770604583963483332231394075189945215992203209474847686694484661633882669369282856666455259469694773694313045743497597202760125415174278482381035507915062046313251132699079195912920665575809107779788411913068929291210624471620688325661481467016244681079081392196731149738598331580162213478523933451584162637372182303697766709236334619605312666864764345162750491749300205879607386735678345958898668012553975130068210184728840213077618688127832481425171914191134692368260195713833772170043930174667609800367356251570400331808085337002511843166691442400652854749678687887690273619160797863503806256896732941076627855687855902667052585717983145212689627611098321764275241821723342899217571291311948172151274556444454469385637292692402044661653027036889359533283054295089545000958545992285782323894816631603403333203789164551615511417080845094486457339973868534911801139705563166878545348130581683356540397265226193477154415924037572230317274054662792818719095034760808953266630295089898254229350717308243250621236682511882845215317248543053009936129072060704151369637862226013853200158746964729417702819204210131588922554313798829022250628520838971383489783369196259629618336136522359536718472836635155288004177239059619788836481624102741819249396171594240178984400034452079078257264914101720048033942801243495790041162089875436519119573905647692852564412211869714059542619005375505895915694228344270582127384661440577112632907967217654033360108555362458632489233951726942431172431115593778525373590509114295123143891988741561900891723808322126965969179638981853471356420029992858767795268884351181432214581497121157055495127244715267021575189779514855338655662122540973004340931063180969897831967063117348785872850542664835738218199891411606100226797046987845497869482835179790751411886987175940979409520885884631392887674707830466252909402157071375591437207656966445433483848422056215094759157362935162498636277169164678376737727437812885624196619445608487793399495585764165278744033735168749261966308824408677435409407960677506276943511864956729144541399911535386063062988318649768147355255435514988962152033644329119262008826288035951905122517196762603841306973812124481226379230356352629167152933715043725889112787683197938245008459033020360134643273071952876456666167949190039581256441721496968334135013268307776275872223757866256787100156456226742667230737802145717674235305997176820392676128067778702481244107522367475072652770418239580149902835216079609054209046325276605603305429624598645251307920460903793056830221589429476336301716591470043613056651354598782749902480845712125764740886926328293358646983400882201207943086790206949956786289207615793666237903408364087058520115467862044960993096475970522770391088938432490439400667314187268086173883242717515292113744497847936168271435910876122130957610212071357671707544204415932497481968864928879868538324715494135247092400811388709218073338776667472495882863701771428471223324088265555992928479274783748748174918650853556543010456685323056159643898740590211548114268720973634603930194989373556897184907120125563830499819736053571122459661285327714535485603105536293913790134420834829342851129614722439662690397768482197562481993164577157940262875789035576761221154244734313181151232947498715195950591538740306835081966035958716691179598783501787424771656453088682198624086144977462134281584488784796330589796282316278618298379624598551885918456477970785902000385615217453260919257038367555501496926497394515925708794735730986940152971284577125110781900047020154746034156532317084692097464663597587466240478380449226597569947133614208242031381777398971581802938232630476675815646777832482908437499480805831919895267723511345053833598856067351325094560669085775998955805205402747057419979386056033552685186422697391341996616865664498321037333934650126765550822398478649045558383396397458872109196211736646118132585422956301065676354532010246976721787303688694186570808685537314871213009770321776639842672252135391216536568967004956426807445711536670693403593393938811665702299215246460711415371940469568122179903664044552583911157107517796985398642583888267366322614587918687206421994558418315074488438735777651722951206517459844781257947531217379433776659293574757492114127362544808797924018428003829824401179226335989893786338277192905812150272538758826912570675405813508952231476653825507501404856304389854944737383691998264308967459734056063847537525571880004700716714905498072361699604649411449578574625861758034149640937223907516835286803879016013889656828219887779879811885761068082855153482861634387438009620568478027290596671771158599120154255254812575416095489671314525394928299419758252136569215645366329573592617305001273719117829614643318132335983467574192726418723212288764163594830468051411735394363460220636694891057242035421751528701048900078836632726494851896326943071829781572831260197996549330841457146580583945883856172756449636937469488348233076601505930352495961201297065902633574309809605519926431948402742418360968616204154766293994792629578027776953998782559927649701986570592609883344521080814942139676215638607244936811431860181168054565335200986555907238055445630541492162713801395373845113217010384096643274492738278901393652461376930380611157121505308298792062818891478969890297813120989861269692952746510406321725524103362824785861385724846748478841005532077986709155816946650756672325205261019219896138255034739439275545127201530090001864426496819987120882643296453947517124780319661600437932307002313254616653899507835883232952486171218634252396161487652285188576665883591421537909395571629141075166390115068377336907931499047522792300081646985292471282775002421368449153925086611126548678220495647624339829524505006779687486974243309756702732119815645108575300212461859381284544719143910857923314835365951802867316937912538856583051662764041074523822061084777917287872002690675895333969602299054079995188966341488013974995661029567171726774521029796621298356182892636206284129019418397250906708996650697999423574025271520033333493862543130993451487860315358463007475114709821582557460301873207694664100758387128589244135910741155992096920399646863071413776371432504692889526888852746153073156586742847865608643341077705216270997477000413504134866416686339796426650419405299481014551538311303350719338169907218758891421131250195564889370731014601695834268114500587018364213620070171014266345524625349064910128416588365750496693286495220784186081096477653659844395685956460615661841061303973807510458711286094164031905221205611649760559102634052667137227058443886608773914822129827865264225144306957696853866829906272237578446871975940089610740974306994398046490558186025201623274017512514258766718191083972873610549124723836751272089013059778069733065257427695234264280722185229647445250975072713616158366367074773185398980882916932630473106075556598880080790296091863990472309478341225637028265481784590996161555117684317836378769272915042080388596365477127974885723424011166087598847370342128280545987258611911454298039640159138422024438650142447647955164164954954024872261971502667121279095945401957812730046103582943220148779241496873014371120991789892463775907530022941995382510994617510733421868917846006255133387229372210173715653430339857723562075776099171020755868616274736294405672186874986891436326522166425642726553282639871705910490027110540759588092332622566595719835612097447515060055169915999569928831264162486310337418173941227433664006950940955523243278106001019100222976327607948461056761368326812652236630291284833333384040427107450848835265736337658270426642434190687230847048276532585561570445076981581372240572230266670846202885881566795499694545777576856984100760876878080440336851323347019295002220488905306717243640296676385608804375252948630117651244315902045019454932550767983459553723286712789962101459838824722965082998504320063479296004904331773092506199241090907282810178813116445368990864247526008594731731484951278541850708577144476512803670057650782098515442308556920518450470088684140064798333976953680214414242512393662527815449272830793773249062342729913113737433960838757662934792608081412799126831994595786351657014929341026250824024164595700419937464006417478215626113264590545180585075885478765609116405928149440057194150865822996451956375099754127810294418715334085995689447831026037150159547767028146861059763832698339634472589697698680798737715575557735697860322058344589959843410133624703689267463915604358368921007767904504426255123067695452963438261591818644718186580260714530297730044208452630018111068219658803266067655398742688246257356189744986968880662625046018364134307398664700243615603743404648453972905027085365101218333248496373185127882148446490360538090794346219861395870947553451542566743435284234601473381509942858971865058110165409871704419946947547495079913373281020422529269620107926030019148632475929365440710540888940886265199106008742807773231163006115002401748157900705340679584598403682959295137244478722666636886415342153341577917806307549689062615007905243276006571500290046395160545700644425543536017338277993138545641283943698711846825670716998361993654220208337354488556830840291717390788145026489337115910002088840695525316954208263325337750919557507391562412346679129209958419244007343233426978134464191350302286650367929504023769841956771595819841083505734667091007698827157583371052381567600620244680650117776749929177165677274444096336589084674732728109826329723752363079367908204155737734624491525008410089637715307688652806923516932008797753679589006963266646579133213569945946864049910745600495240173014603820639469235306312647627259573050764822232788874911328339836249354351738880199881375431439465186427873960285107669359907169098391051273711623486628931176230766135254032855291332425315537395758154125382315546986744580360338059884241698400769987921142879865789600571684558581087264203784858529415228898813437072303118342320362536853991823907549381550894512155749900853573304779891700464336676360932431687723219464492140525790786525909455958211720525054365805689130960800647169068235784411039526377565455953915424374937776755142054604667719784192695921324790719152333669181429008440821626741005995521605144274785795201308490572655909282516885136958641501737509069528412596590282829775789341483862423610639335467305068657423347460892681594931984422900304142632791399322024324778764191107400344678245869216737695105742597576177359882810013323970133901744804758507155046235538073314045111276057363892878574822780120532536092558661506867292286194898090295977993427177568298452025442720577639349675253615226286568753760075934535935789745857394322868335106764678948402425146106942704728475970198718692628526499058179908512140344898357552954239318258049482146308765481190751846518356474666767801086181175609924397168045740119550840302091587490319764152077108979470937368231304697457545059537901750683980255813976081465777191241303460184253529139355816440060096522069392469455179821032564426873448095977211004731783681255809024511360172055136907417755315625580990444871049686582368444945857948299677981706271923656560925365683333667127670492819313564429990709038930893428440969009142893365166524223802383880404832527778686715216775666047623094436004213025865967116257697360916696563045208840683776171407193979992581211493505602127997494607420726644792490600490827987553253987758956728499166300865628659568317000683671899081961512816123440753671655663870340611152761357839688353424897348751928116301249774739813715200770604788301298841824506398231426742820136738793274106506693101489156741680572216027014247283443758172259614664968844328822726765474310917441423939438434845196138134047347879670083322383800578180676678177104852505706888080638127240681083054898271343751262145982679119107422951444369821164196125104990009986221273313819060708976074244726056042494818289663571992554835314399435270356048019566784089092421048117804284624622779273185874693083550306561384208207589456236796957498976712624513385818281081252459347168138232658723370831817906560455672754762010328879898089000536342237628349156167089390816688008546680786303701971426018382574890298202245742226167109463662797112559248784822329716284266924599035574477048699550219794115439976272261899966448936963926725220414271457867693174665093485058841109660095854854212268525320665976214226414460800974119629909947748137879402969818350565288103349956698842171760034075269000092308298389521678567540578636740971868167945842273978099002301029500600959438347215532007296732824621609534771540625240779629316454175383724596437734488688095013245028500788349975660575638090770603344196425887171784150882044943039318827167945665224713735020295168894814004939018331343377137743428430740339413098759288907547244312671637662737127691973044635605773855574306445124319609530967127412267712398028799436949501389123385293095201033681596393808034742775489490105855525619348779680162084754124909532579576646843939030126603339701328990956020818176180237392468484901951876202074274066371534810563378345226491402530746616949709630518188093541229197190887941448906666020467992113972144882840733288866662109501929871056267904508165149697803787746454524024010842222761137303272416314459342922763079048560227482675513896187597705105834984547348338424669156658243780439164095683626348176951698339196698778912919176242850236678968157974790541906968969178438263092440727388208630638953831669225607322790973748373721105347637353951612156731790926612144405491755821725052451019629549896681014314178874255990090786805403977742259359959916138517766143863855206069485407040112043214945192424183057135410676066438499382347093029533480240385627238269085461965536729317610656026019696037974543648004536127260395266996534148845370400851737936892720332104902813862157477245668645751886949089301477926417363237905001828710395192184344640834636279918434334370430385084604627154960073282650016420722780894068599335663543710568650223992403749930102077971315092508531451523542597319588111452544897651112697304919445261049364845125201366133702512148426359747042453818961874621371893545365838101128663571457345203128344512853228416891709636950873576304665109534845056981609671629980229221907255319057411377028437211448662682848426737015683522547378921778418203040910539298974188883913362998685080178183769842616257158087284280252283168931150631284432447678243375078000164880373492562134136515254505878594298793881244072917848163190495263301598534937606409900035909594064699228303630620359908812982918051901972454007765071282350232941647669019469146765637815176871005500187188557835536107787964749145939996442763249590190724842520674715338704552278072671222675965828000679229642584160489592558593697654993344187303807349115354039614515931828145139208497981973141704822909701028897431896858254701019113834423485582304573893776073695132911451357385319850614767841986151739481968116976036839441345731702511559570001948453951721271822027307425997848524265597138012797042782894424239611378425123463075710282024398674401381361693319651288130733857560114498585047699332257406069961780856433657239744351415986945272711140263277759193937211059340753850647231731530066012672762675023668235289410886096400387130962378975218002257731619399059784175504197728682439532820665127926831905590609917853031542986636209260354566321827608432324311499964534388930593460733134084098408816151304368408583331930448686696399479036174611569061013233932503086693725052460293743716754118702600190022714161701736237887738344896009347513676154199493948249726452257816662824259263477400666212239230315234815918357821406748902191208211830510849555568893628463071051862756743159516630760388365081892304252491098439755533559344510347086538028149055458138880837049999632424514259551341880326877914171306805146650490405830135428668357862546529999751096025640810325795045412804092757493965715772065431369133790984599110409844986397006020395664765397475306433123123826385780721583969486813113657618066507259565563841197731902582348669066989829556938796831310179453755908662244565527491786571997685966541302469281004123797972875812646361394516008057225204605010005213055936898142180825280231173099074676770597886152589021970534114123474388268217976960706937749926405725642387009749463103506808201173772399272066430800831928228694544131540147642748306682688683013845694325581987350970253358637039453835155022989838363856881823671898169752528773317844633655457582942759545730430091541675092700623504472184124360921441178403163168644484723722022165505206498385456503707138981865724820033806503668653196978301814515061833629167178892396541399933061455406844368252182728283732883169319455609686416329392507218423679526809938262050590613213765109918992060673249473997920990583610691071744279133299407609550567116562478369365883873099415967700627272209352550311134154308394081673649601172509201794119217870834960405289562986685756377456664223001226471055249445745728507821423465814335712854034607913471379160625186372057653048862175368737914304570900489172068291397962776054861234446877741332252596297921907094472230962276858779960532232976854638598878675050518046996633250253705044368509746337946980702793324017171293225256510628234388376918670519582379327862756047920726627321926619927255077509536397512854092091833342061805945235194736792150406322305467345182910347889365406198592076534201182927569064191023543091459174179118227314404402848155081041470832770925741449477709329431598387042429749105813841366169815502179489871121942429030025873907527464433713871101009703981061942225646971939597152357043769093717837252138391832392205275779060484270923402905621494953499008913035252177215494456748206545554894304779470010200702541188692823864035515804364692507111561106730863475411290853725868459555130725042596052236854155356230332516027849157939870954759780108250517760022708627937504377361877348255953825105443243138207111247554071787954560201860517927707725352784743023527259776285334756499082778924431213858957345992231386478544136144729051600266931925317146115043018130652962987396366600600063226795754008220742813373060499495598500084945486243458732882884136142352722926519196922911408318263240928210604587834085433761657479484689569512941854959099853459452662317892807388792052692176466281435689058793712084825729654343130458031539040983271446926357915352473751047144963375975824493434552716919137039277392421304135240172232762367059033563380167244247048325774334014313504346651221672611286798007761643231024236148348412613647461698940621714857689523257989926920846548655461620308391519949223193093446629871160895483590820197848549330685221206393828960502507178115005588635084758782027342001412368663517603096710389384312152584865125473207184463385511838014539573930135922374226075792171926047263734095777190028892819620502717253468757601033120488895683440812714856690079433111529098614672511928906185541843354155360703650910958595489079122223022917680203825296672410338919817657065770067622969098877885704043093288557438493413753422009812960132129015259194356997861620004577945403739266189214186981771556111763094921589914689024703814380261837962830489638267295425224623037994897519969587695805931806589771475647705333823030355955349871265182679860147939795247391320453867272691335446641671636251979472645084367848420630803515400867917048425261426876348109441183549687739846935360842648404722889527699322590847931169804749535788617319987215137528311746145134381901393080691272570665722172669388068316537891182104979929443270054314887641639816164254006972032881023942870997636603726498091015638767568077454758274992879458580903596486288996875837012716707951185648360079054243268292229723941856964121150602770809166777402404731576691969776846544272514082958285925046232322776875035178735806678530436163245002243030311302839721169021784321398064324948243976623184741880863209497332036552813078153462961180943802122520059165076246070234071684872477111278293486495113686373506530097174577357931677110385620289459827753078948970740921884093553584421493692844871343564122086350665036154584210901099355804070715716166750136393978969523326738095460259920105795370899768681397745845015891621985007364066097229262085651901049867040623533562478460048034937357635340948412925444857164694548320861842787073218365993695680284481400860484630811504120735320874235551841670184895233533251864854018957570819738938092014241527653161808274312061384493136981765232832610725403458157297668747518701485019223939229744269898695163002949414607602826710520343148204853021996638701362711006029401813358146870915712778116868502867917606359378971947178559099669591301907450195645111621805242171642869596793917433581982032779082969248115271454063890691124303745664800613119525527615086930192939363410781803649249926587268367089408327516285442001317215358696327833894425304853911620888575031628523915749067130612108576249467456422219902562631832362363045536009194298859699309444931175848117240257437189013094121801818462164558844244396405474542355799819520785529831484392586951351074815013248776423837374232590436536992996990582911680844737789900066279806532764341354726120749435012353930180246235757260739034955066625743765673635565188343395081235145206254978033200449219174396670354164236194570157774759595602324140793009505820238073336955123751860542946815856971168054628957412274093624680907859605144183405435623498993122139951996812587993065013792125532934702927190665875466804399046026391508160053817328947171907530605023733376891192102986866395610223506529389881743275239527411586077371201317138560749553842479728987664717630201408287355461113957922290850416445341870194364913430779538936428886149637194460465227767386130746715303089517954527467378937839687125757092171829310581403636427592675211090005909850563837386941488834820682993153549591836686553203201297814961713941094925365631029877877108097730358663901642625725804550773283574589597681684242755078810968483334405119306987560890556281232274958118437257708502516628253323280628730772733360580513760884806657393642675706404841301076389755611061241248233115712179594203951352198152072498287661260321564126971372054998661252183701576578811926202322325189062365425787304879824875260857318619095139195235669564003195672928709509431777892014261130945548933043485983552996354579220158549576277852065010197728809104838411365289344519054021755953400815974840947111655592596709605154388051773080644505689379756380230909414205028321206254452919916867960059590882250203247646911141987497025563326169534776243334366566309845542699364972047870387187777966148084653659985376721935527936321561263046673222836559040075579474946654487073988897010830892542927892269135767823277037544918077936409938422639779675183526887102166200442393168226444161615551907941269851565294673352972690837198381465560130457069076959830226995033971234623909317139526971115433907547161298982665139848413449486572176492611984916079932635042062555626569027842539440237471446589196030537229749299605821475216322884277105095674278958267946369298680256731948589798978940738690267395852082123275350565288243589196976331435774840500626273200500958272563785740586920727506717506673565888997723603458495580635205888294647139197018320463487426406953744678734799341248366336664766922469583706300361898067712658497683717477033417011373428101718818418318484300940461114942578707276094660246751249485129040113683213888078309040947220640669719058856262336001535443788535348366593629776807254507877061537513311448057490230192254963069575537679063911424960014334589682788818458513457743956776429282856998953424754319694928092506615692937469779823605053115178263689321127049397801801584837371701917413734968524657722220140618320646509097906261536322362469364347053202538918598107544292398735360097438220528389457656224389436274209077315489309069821824435642817761629175217826967169474774265498660590037639549812697639135326526688758498648209858862389380457707583377421476463270978840104370848001818918637343627546893354963397796044101309729130210044031385941160873036237333989215331912877337052882641919793965389946758526497042110597996787742617759573592588100152170754134003125712976407378426253710964017986962412730560960859478286469291109898146809132194497706748800691972510940405949243905299164697133548953526766673599703718058105376330860150161811543029913886566646786117765046805587816991213729674396137292875159934317624504977008309161914994106582455165562131641020845214764687066144929851060654772823668140813020882585993286267325686524759443388086079065787578565123343062433995866366342593329353364806034642751612262539012912737049618728274396784869773212691957170830393810443347872736902421333954719448397032045667233197138877545301989599650137492711176008772936039694170465604573043257448783412384339752443981959380991430621146697166671525571172072666935753554476335084806058068048788861480525811640616870410109903869946119831065289546142794886880017115133789637910360021286623345619835071541182985950040966881131675812100222144465241303117971704037372783079881917811440098983906224002061817085700230019761659466290763212677243542878309514245587318256510326420846844261363707717769832531402718219985564936107895560622612439528764833339545972339821929537094079444934873323421248362702340041245465799834963727817961334805838094160689910448394407747845339968701076699688234357447606964912824182930271720034696760936123436096710632000431200475557224923850864634515611739240567283106340931247534811373114249087018041148711891599550819701210153698112942591265724680401362222937803129261361410986724930454468440105413372222050997277103879153909756594107502991304701197500720827940476745171320438525993906176735308680507134472428716579963394532803671114421024574152537097430164880854594363496958869353691287167150578362987114855647057956299643599328928385450364708707049698732727616770518507910498832546082269015875347316703589273801854986015646448270683119964413376242111060377549608928981910681747542834526008526055569904325798611931307680677290000933660912409717829405562769174856589515451456588835228688039465378029250515429315581176134239747386969164517493889668013190535653198893835044193656160941946311139034165007154083504638285110882205383349914616211220178582135001028790871871108123832764552284306152963055001722509677701572079803751926398695208614522897689870479255724602078153034881829743254895590013783344460082863613876207137215028835114092604052341213631716274784145909164298908882659507036085230765005487152540645560263115402475210767733227001506806637374229978866908434173989608780498866285067778957014042587237248542011497017733178551001496277066949289975548813949453952081706767312928559252615836085444419535924066373069175475720135516475911315691222855618134490690690168263457531270107197569019449965407371891496557896937205673473329341108340544346266955045020441260875600085565071451580698622522553682258500942627829572065430309275439843796025530190036441474208341097824486041897972191953829041519984232883742284722226859115421662870469675570424696649634633540640563283270849369376163332351540123450759353749710158859114265323895208688494340119745477535825387244450501085548158672494199058656801366787631265181111359158652736403170551981912518615268008639559952068355418031069615692311583224459705298649319712563468644547704453410424180191874207666883228553301096537467071936016698656880371680057309977695527204883302852997008965855174031499112099449232909549433426264238619759865446823785672627568517412942197128753480755805147963586583934058992753746241572324707927375003757893977513259485106225953232958998868863263401072536131813747158381817227874460944904783005439071644198310090366868614342134550649169013290094434686011730463407655666430613583476456166092199897544302224037105549336313788879434108420145429399817832755284293432288641028556986405602173092509474422560548527112666805945028177556163946007354972526992436589759649219231570259383332826120808375483588752350505266319844408237533560635739147679600326308594580849156174156276260045889087223874123090854117157759990833820053662237793756244166329998638358970543004933044327229449986064776551019516427368098974471708002306888187297479572176319968249456374976667612390325673302309444368056205599892618985173999444742998106560638499672034460277133867683864933432132755390081797589686765324670662958187115511602736007231181236708458861488576094053872436630460673757464347273260856589870912148404073877193094918342801269803344167528989355525854493202309088196752074248009202824636532596835322774512025087738698001993542301415608282483984896283386774401497161724881344514317471565750812672445858382276605754498796980272322656385195657916930526227825651889580217791438801540451009063370727314319469761241529898891326614546348162442937908226169979820737881293791231102451048693114475813324208513475799544127720474364736619999292168040336167747704685530364553239775564867777545104914162243782087614425872126607555329587110953156739052151879205123457254185481569136030685896088984132286712228549084201513981460901736482549865672048209957107065708961239381168675764608788534120869072277580448117307260845000907657378104391692693699866790238261965368720984741580099953997439939942008138054403087964653266722103581638115707809306893866667877295838503622865625109030775904222633811378674751975764243134439617976250666349636313344618822491591384590264825872333928404296332463134763828396956339753386067239324352242508687410091123349492565581400765061336480384174561550036550539857034349629076208902752505341044506531950923426479942470439370372964291723272357177175827969072357681363953410223475665380499648008462963604638314010762531103132698327489725465964269923308709640643849954695114892412968540835875714192590634681838622911606449766791680472754035053675285759487293090849938264964428385370212848190409017629909405834361721134563437107695985310240213287675118550355167430299973674091014119307393196803615651890131154657550071543502314264660427166105791124578860473152485029714488577366257898734044461891939256793969396422965854439322348426504027826687893636248281001706005770432213714359892691335008763863886039553701873090173505965311946531828422917479739415428380455699599908485984478821794154565172252979618205043463270748646112843699594824130988315979058551506651249052279069202728252511901028686792936681795704707916270751184896204009700630159807490806322774140641844562082769922932607942022544730775873875128299624515581884215723689562518253412637451107759670820628408344864946202615688445213261301209705152595563609726225892286456349253206039960209090349164290376857678099505140357009874929879958142600853998343452790428423556671940774662807052911565664200219474908055715155270378190132745785342722095601328885578034269441472664010459960887246214157369073218445402687445940687519275823146298401348651930359416961301767268049258029477268922508019724496052982766416128713853854496651887291137510497830520469844063759645446064815010017803551251755445726047374708207892711759673686949374920852486650030828698072466440364982968873561502873707747334401883698425381071513709889600575416685426233437604671041430869169983137887128008835267745206892431000184459185171307284385797412845707358651969085853740531364531860294619906689719621155833047244709246474097278575919198811362380713444925370534180386834571812704738789677702884244921631527462152998074108968398006421340824723436144084805319704332800028723785927542399869870217405258971469136961994850220575030739909157483799892229791745513533770058510414226621775398200104478754077246358690689470564459440436788752492111603282686440262604166129122475506423380230966026148267714045922493716213835619921863607722905492436662990001453178279775726283903394717851561978448865117420446923967328245382251360961883233629430551795647266336609581634259335582289604466482650891359421152567833607295143599637930580887298955977542250071159777651064986652002596024335625617406961692228530092997406255284312219923601058658040236704138772776588819991962886230270700348885258337098203832224427632563424350697177718310541735497198474609397561785136143626619639336347338156139477531874112289559369479785545078547057406227599396378236515216859592773972011233682312362391383796952378241572770883100580885964391359207416184099778899733653961413605663562662755852946927653797485534208699358068147115578954799791222900418265754133847798607176097161918971564214647919759548869806923321840309301436293811903547229465008833406652991102888540071966833989528395611092663913349623466261930621807620803042084066289772700767701444425947071306883721148485774507695193509567987871844310528199347846818356675908229559781182892283267944025342858563736053496564169159158610206494876244625403358139095089874748200618458594762325382579992795756063626614715328230105548229606849031810814319976238519049713183754488842201285930655221910748371343662906759690867365338836906316439052141520551551481760377683957483009518220653824428458482932424537600122611286069238595895076554060021598242539542476281300296963807080307745996342539594197665817886181099778883483187740036139681395847526142126937463125772531194382331768019951406636103321155521341240030274712911455862526897688943836321844521644107415633535200873708657350015848521863681301619997095700295557106076470105939224226357292784866739108866497174192590494020105215374503357669002819392727750162156670768539553350996953764093361295434038622782202514669848126808173930591342841672930321041188456213857194053731821290981540365148568936823480119587818249099539043988101975209786167191094007874400608844535310319167339794239219141000412825439348854812264214367144493038482476247094565967491320993508900945633932037879272351622224296524556176537319107782260317435568131630167671302421690981829377309084337905934528768600012114337725513517124564243778012206081567938696933297167601226215045441643588172139053665162498141371059137741005568765669726185895459281121459562496452930562118528865674297232477728093509808168420367798582423562362934040569001217225787575373123536012490653238096415103264927972597456089805613129213987709283145690177755490896270235257765865365750447749792240302435538926042263956448595534826992003826049843138323429503278564323158691534889453459824955272146179850520205727427555228500770576536743388978168832005887121739321032582719761619469764057444044946589351133285079896093520548835675265681147448183580736021404880624514312488636765782007580811219293311961287211293128634810583339527931320197982025535774546483184092651724642896738479623656805429210509248391465954177845226360248221027988688796778659752061500803110588875395875297395921197097785945045817065727510380188396596831212919813836748504220585300412070862184456348536098042000934472042907944851605348932845942443131675354003046258824670230300158883216995394939091211911575166548127645521730059073400061173100714570319610483492947402577322808774288298586298253565997059150460021090417947822665933320594039713186564299173014434193134486518712844521521256057678453598049259577520624036498221094274272925578836175519523584101887860678618305964333586748530923684445771698964147685498278743321620396851934192906471070288177682431319719595181805941575106828818281215030389562270893485149117733605911414656644504297409124726112532136085975466728003614017666178304093059792435779206004082526061932351189528653690034476678645908907522461541350108001954372105288644496077342626237186502354142309247087297162922744261751126996767170349120609330944010378987536842538986529293855702235873472217466891611812634784005339159432688125125547933014525636635986057012968475176542046442936564609400849557399598618667343344539000598122028574190102307399527752408020998042191351671956449044462707231813977497096636464067507785597286787483550957498910963191538745341910730906163275047958495525936897769913442047689956103801639782543079549628804050624404791179226321729335098366491154857761246597043540623292850602886091325810209092796750070920862004630579193882337312000028956708725573716702135902990443756461480352544191737738065972375051631504279426765614143005648402733978168186803706182495808817855830480669428750303359921867063738337490632061252674800720217570720678083909963494993040208173282603708198963783088214698992512108002217743128011810369635828980720127607712392164019650170552908406771055017503832027026123503410347619096927341489573806236790066726277034052782215237377779111471874079081790151689179940034730762919574500783744860547932141406524004073150404812596917439734371172399211469005353652624123736323493447934464177348305372262923791501399273704736016279589713715369238237935278887154382847046900321476903152003041248927054281305981662624791392081701404807553962039366660572017071849766237572850467285704944789677465536694209693264394038678675434588521371587405492788692188975434793896096190336286662219127721858655872966549086090285927838318148500773638171478939031428079663510534543367271503635376507788071536919085381892213353683964987154147248804478490968244600769538415124283834723618326807716898578431423721097198145716810957570518427299099058336435138211379286655596456869607921660956190497783558477813319018260167202372829606837746529436358494844145617009537406344979957353915031495728597314678501014140346294678346402527033168361757276635669723147172254762222011251716015349298603742097582682431497197010115236559806894789326218893880250653533041627383189247247533801758808744398107618438744921070293093606589551176045349640987170929716443313910752222671300053220661920249370937416492634979733187465621498415300903145986998557809753565355593902806728558373061160295289168984536206565606794450579246256051220875200264521274338568197926222987271185174796416220107226274702529564774925241626771087112859498481522835503853192941214608108127571846543756966475420048192431467853827751857610491552328162293942314899906359701656103479738652311272492214171018932730977989286535052795395600878761129679441271971921170247532271379220043394930380743129885390091271231310356024695321235789292900681131729571899500286676343634073012151995699473617064231322745021250973865206298863504007850721994352968342266484346902364788590354649829004767806675745585308142950419665964811288213628320723018372372831085896525635693892686079381742919013852079790331114064106033303635109629420129401924261508921709563496908115499876113199076969619611675097158175698112721057189731866513710493246108795528825771919321967809352398600782359477204130839444600781239475035635741869955905735892490124592690710054266741533635811266828591957595986786581159924326559974433898400071244594144112470252932952487303895749983426528073869018108014703442248370969063890700810349679814964489196261652566051563634529864110405686837007718115936289069296206008304338195279057957426322932872459186652968493696485514424353821104471341811810051135023080902624158090167063081244571580525409710131804618320645535130806300963534640391768283673706243955196676148567811945683323310631775321389229074721492856822773180677799024477045601143908420786719873972447661680574667832930439118198111387371288542715150279608097804706894725482814911576134880031164596121346534742954125127332916097526063098194600464280489145162599595500072168890200322085533533758099739093049840567196928062024142174607667255206040924913410270601631295499651339434424017710052102888650521130573611791837210616675560879871040281541117928223747468768416259607664292176827362611864167678480597940255300021527859386288395414571695277221160854837441708794170174899243787237838148583896458424283242147583338825568153146998496030846522739749066616249892571763908525382095252479934257234354468783957424838233445809196118118043924814000241489968105589705878190106144541810648803018710058073806338465281455777042239355483330333008202048937498577489575000488499657287514174253424759565187991187335026546515223144360261193008204645412613985632998528042265585270389125166119748812305750602843489458367647231884126395054160880696738769149609117092350951271541632578284192935170334645172948492408633685150745650036912855428478764607659050646590588545465529408326629226852585907012302020766545390023483212549272882560615005475049451097205652799012840480672142808885076516774349880293755678394267506413849626565582535410196314892718478409735137250751954317439152096563427173622432919763521272498538493358574800501031682768943286198788173499915236559810943888625949940185776933127306823591599558575308756858269834805909700085883189328326258844681236851456888716738633749809720431362954222197751079539510546905407373924718746601190005991273928181954552149775340757967190082860112247953486258789916213109170305934388929783499214221251474329063612366398572413134246411659907649212079322678229933595018247343827304126606011310144828873959317468441806736504413929977456922474072700226151354868362198980415367108663601895459970986796382677265591754364090839989064149460177980136704493897668486761589342151421791651629392742290542847801821502744382663284635301972748486265739954500398301391641912409261761093614613973386976986989557091655399914743791902266027468262732787601905522449380277566418753852349064228124679568343259633536974286805823529137420096990326853141471917130082882406230231510413327585573288108590960225813273794635389320843570053276378092011987308685990928326537722216406471773194258072081051794658303581037260745881222760911519714634266878774890057490749802548605598595631333930853480755156263310713737872771742729147580230572248041793176701876857628303600514740674225730934013295595117956677270977189600807504294724361206112308764332799261102859935041520604339364164224552562457956497294450306914551928358700444838290395557880954292892841996298613469356543723136304517824616556791223452384946206462932357853662282908607784098527747684166045612771590404874790079191698793933046907617327801918645642477338244196424908693256389350601773746470567713028714690308560843563283806141904187828741114635409798043520396894026495793985759036523811954133873681960491737573950682609876936953152708516169547393130767192177341424963248055270465484874269159892022810709086439032661958876704219830182014164861332237908647625591753318123117607046235726502514796017703206101187760484670761580662502859344391314033578784086076547463983807897928932460050503138723141836852893130563202663576471689958281722803961856474265983170981436883814359288648351133746286584105322821046399759480120195835119718884898973635387445551318804568562232037412924129296680966304074913300267273937671583115601191481996085717985831464494820607813750124397427280828928370398861582000822289111979606206936389188197032666750820688830542074571185687252659719777815461533524548920553693166512049239541178286025746924133927842140795126124118663265238769460923177976139199904982457399777052257887285291825843482181484283531550142610601487392768813453831374878922009063508844239311694251742981751452074369294074512036916857627743698186098970074118410201949364374691806532509112397123471445693955662465358318708015070502365046887906889641508497092502131030483360187816178376160067363790205083865693921763781435973853301033791199499031402074082909144367868939131737184754599274098745245669805336691112842239240094066972081651426722440019939782719627131021513945741294061547386931245599682444836414567851129380113965145589057041896686096407689932930110411199406917684667778702490770483685402343722901876009753740209950148807162202095579599819463023514410240966139976727428591100892614025819015850937956728828186592020300233953995562174838558895452222587770423275438938229773149700568239844482401524115338051779163236422194565273436943039533798938809140063168143213136310272408288806447188364306527673062592123618861075843325151320314421072579643971674366194739151454074559828157226010944592620699043879060009668234397920678876021569544516908547156460533967653245784849969421272894955480373519786052017197055160093932209810629048234109513434895646521854613038747718477338021903608943125930625191838280653111255356799841829735448341602700693845073363126975466263384723037832532324868131836952517948321989029862224191300814178763859649095355842728342353173162441299739757382239152331290431336033773445772375324250841019955567747463202664096704702983319889931335850628638865589818375301177472108798883574501351162548848756942132008073483132963520091120608911946410846139731236623333401899740463523742763571487913932243148285257380171040796263433765988125342763955928540313141629764817917425590610571616800929329655468955960288214119100367434930538565528608285299325229332881199425459625251718007440050223600369744966479259897562128635626807978537025954277772931091417690378362574699951997446757160917252018394559237418171208110717923323541323470721242090001026520870757621899468103831721075081159963041458633517270648504491455181249117641316762431851680659880736436253477953264725092643103346790715847242399720989575178294408532451852724825594524466947378220766814120575214046553964303810571299562722013823538978521160140177459143705255249034963898411787767310143797358759884700198648709487603965119034817658704548869903414642564046561991150830537205076784500735445657957132768427951635370133511573910932347804759096163538025914108265499506069127018824494271138417660193799124335929101545964796158935585360467550328393913373688046592973901516556465561074347168381480138938876046550958832127327826747841187009684292142829898996422475219474224946201356892044993167364771823881931084899019101391516674503156965040017656556262158114126635140605697528663394682366089157385688274337577250949841477866853352989497020419621566075940164405099420457903214372455015212476601117764531223967830441517316790235067963656588366902817057734574406294057497056786656539658998112058222954784667980263018671887270963628423221678919908179149264276103742789557861780929659238835796333292219882588156964019439712428713713057198871432903166087218819111435432200579071107674484565960159697160843476042507819406967719970698071946458591777631131037437969457049049400926874656841564116050887254985509155889357859062104427801587425856198680922296093405859864179555253159426826370132836489084180547843006031553226785704145913047958030642655865909895980396388969466322211013659227190579960440186257467639071864252740280653208134867180764632380013907869950343912274241490341530331512003192096648645440630654043220743534197204780884041194820932077209943714231297563884134020755786502626075268643845786126476116029173191658424294805242505307050367324824476767722895363616066193119357729915331554457887703813947570761294173576778582538875761708339955905849493758769458895591649167923027866850728576762795869614504752625171484638744522978724932389918195019809791658069511987964880396497020545169651431232075204839021667176637663826107371668445574745275183746718355566540567619575398330544064160693348878295729823576379033907169684366449264482748542903956336133318086440396311604155288340917096339907648476974182466698270595912429114433656471425987750994348373842692352430417625996526923537462446473153133324862745154623087926259472303798968769098868826904871159883411488954766935820793443471345741724814121740242882809014551650363834424641564635717369985434176156545911039260132020304630033081604303396666021972862954392095851006302277607208448709107318555155447062512038787898243398838405565535585103079476629487580215304523909315605553510250695383126524702082139918584218824407061015360236101382687034047866765943058743314143462360520624350986278029600650434276997720426023950823119497935954776851117432283180887735952785587780215868564438595744112660569986947237776106478308728366491389509764193690627889358468079732269010477750685818501372299193308915850612786305339847050558645445165035594301843104588726592462700484994986792860288067185063170785540729392148120553937593140834260630021910406535224399464287108480283489085989363333248940437779625141165930126815675567237127919061997324842707309172908531929883945181535450403333981433316921024023096027369485497722306316454179544555854300112588438685744112799595486550547086998742230956944086306178347823850016607158517280914430997550695340020291683247417542491382789077140073224267399956098429024300188249632807477088581109244584917010131143702594093294457942643268742136564653876116665753460741426006322521475161734031016923900813541137880081910552031707004369919181099620768683725039260473622690433873187766726634870096123016673526738974532740056042876694145170200037141687941579999849395260793579904934169719427590605701099592171117478071679153251463410852907889502144296725094805904836651069110475848970977589214455161965775372383329956088985400328454037724489793957619478361721201098454939984970961367372625083487061414125518484555000953283498908650756083041074070441203314192325259269807935452546770200340406781080946343632472179969046124667661386631374499036201302542978826877113883437762903144141941949175835131504330556546704835837138937244313456855354528986675254998504609408418815337468981767422742824524591505056200575067660534048736427348606818891603302745910043921141206273038174757218162459622585241436669243242665449044384684161163557902911842981763697030546503929076891327916976276738795193614668620067043272034666870609876070637330647643652081990715742851458585053987404128343216277205342787964888009326196535731194694302541841066100080157566175232925103275364740384630740302386057948192480609637665656471066480647634041256050546118761487906521579136507129603540009192678038681080603523739375428032566702697470819473535821456801155067292296595632362303525628467742149002110081694197890716165810477805437116049368598716389868530141238945014113414426752403679938947514307688739019465530549394496248860209518695112114186105909717692808488194682556075285440797013157809737607478402478871295743442227462587621300104584424201716407377871907195970548760791251652075389838942754539876744890618513152389589930143830434245778673171393241890779568806593501304111259975305358203860546795496288232900243501674437610618399799114702490870450372546074523331438739959314813751835362935082400882926215783460155754261276616539599115298946953508157907810046313242571042903469818573211414415106331279804109088985700424847387559278835792934421789787812488985685613601868162481992091099473847034796028609340323254774669104815675569036133886303763251660098510243914043506741415922344002910848038029732565648480334797513398134208100809350756550471397454207575228063008573565005570353706361161184120162490047573685107287014576495697775955228149471615022710256079593446888635201466797067821017963920956845748107034739319379891788390317401066681351363311653822763232610534088267634936781057979987789924463505339181718923907402216582272222598857629744161925006592954780269392489707374639219641162436246711532401076936595113799058850896151863938933292659844986722709220359281069221092089180410712864259739009392422056722335703317723047985592066570075979921444499692881007863776331405433038507985296822537305486329664989365343142141080620243254171778663788200241830099672529768242164374845145525853470589479170380207954623917003026866784692963774234145710697084914912551705164476744717832531352412463167821508583629170932895868129170420710993513896888484232911063087909618609200541370139602676372410742954369758508603436643217389988695691123347131848384818708175752579774016474528478091283968024358982018565716594834156782880792513426051461961034203599372404140969876614910161975626202557130368434518184270335876989579325725105506162132554861554112952068281840185908198927108083995054123523382777035480227777024190699567401210961783008353758084395257931837970193988928671630867819271944013308638876954788761156225846859881737748712124741244613828436522824494225019357387669090491961436087305886256568715931961092289399447902870779947973976029134846869997562608384378355378293742285632814513584711950202499237596985050154274584503935250427472426914119108312539811807624440955002505343011257267808467198922605845786790947852914664835718428304327145388719778687422694622621528857497016094965158129204245559624151480788759273776181999730908538764825033585346198472275293642031440583440642025937721948730782524724469693505155807721396302916826428346284429514391367024257703316862316146255022504621003818799856927952575665450067640168506929803727559375376516708923225212905642988834618639039571868211534432775606092521812278002028861707176459038811376672755435531446336339432053914446886326285666582335790932741181282239187390969007340278906553306042522896620392624390787938325433599436352835972574873431293096774955178483397916332420295226910858197898482308864563630116325194106566951388217340489047613866306769695532718401684673664511108983481292422398916330358736729934828460165191193291042684423342198527731792259622632869534020966105498835250873914925758343603566804626825959132883388401349068785782360045358257060043726483851284057492826874897831766361612773226518789098745332471840779142372136847609450566507088193744980121075959484487527967740920376656328887701148326102745878738498749060855017809512192971065172357387110458858529669690505643953487429797537740192730936745652978804256114779835099674460371392725108502906639704306856279262620466314537101836153235780151392865396193697315822120978651606416971712949615057262310539003520552413384943880045437672063838539971287321825037803941309133897071264824491866528561396588787494337233647225449709920479597038876591504119644709013684497769261281200978893614682681098441151661168023718926388497273040725385210874569506778258383552237572047438439195426958834826208657184165234614705654699646114971831548417835406615035383386426449703880097207658251541673479758278552756563089618841226463629158920868860894138012815975072771170966701319248673186838295741414597927624690473260890039869832589476236640695799363742201909245600644747672422363501001860041509956136469374422537829251932263150518378674173335133559515037259507046116746320399989123081742027011077482017145400031954988493252080596758068237914111670115793932981741716684466791488022012615872527342722693944255120188569744303063678709630370106029197091739298876721317729511540390517106688167909521819392355280642626249627425155578250957257092278288010199985018186891171453087775427896108669085300998069888108364359905932827813894582927248240457046533507794523338407961456494093686493135296395576428373016779165053337411394537794468021127021537097309456027776052300981252863300555894355274375586608097613445721613945129355648873305016644641491938883530154392352758322985048253374755597677721291213209227880722506481409917438321390113493567893188188164012830821113071912508918077523306649240847859098583978912187993347528931123693477499132977635360632226139686950619021348669922767441370250666059038580515484696219049463953320388391244001579918969474632597796857925376645711096083509008558680346661036984458624950059864415308283462257778846940738994377607609051583005278521503663524758379070439370071094597088090241612767360717497118799597801589450692397463548643900152366673599020320589081639098781350346146842631291773576688496557807549249643761049494383743849173597272366976277881056017350696099219179112669570998278905292977166352397800896230994897524580708573448027459055101660029345567850471516845805686390778221529183842904306567462901902356302025697139372121134342476946369353330568902563204291706749675575189262431419427825724944049463818089520125084645384241956374956743825097408243256891184964577619314336003588482117618493789914142884343162863178793546710352299575210473505640004191417390528783038882060840563595631537285639315865750446616990359867009848825179504850098235399614518088131675046533370654870122282288203666476061917106697074278714281339280851241431325060615848203845145572515094893554797959645567580838261449182451810825660931719535247266236007184526602312783240898850711207577002599975948888747371431311933235647849095707322567416001491309634558576771287024610062610078136169940358538616317637911022960810110128447772530838029250738486758436937058606137858956744884903214912076971048123033676703668443511742957875203903948529823973721350653124840478410880163260998250982398661124586490166591763134365698892936889868381124771152022665551120478084187671982800275254610904554683069430657717819324871186384823418951876084579065997801933772785156708665919107882422367795226684437533216152605747469045477034133022444077548395983805161952198946974113404173858371510987937202255475087747043656201465722512490281662391833974246664894902885447048646499634105535732407987573725569813812359535232788035136038092470261907646938609307714255877159497392523252774766821986499252240979703148076398419133520330545313364632957001335970095128676179081178745819665514162037812198120014593738397170545487788958499158679413441643853676175168195219263636648372771227693244145045239716039794593378931429642031543154860139714339214265421582440852856234177641996869597925563651627201706736067485144771231609522493247719182773694315359887573861880270608672006203422299270086017482037637937164018297359298768923804408703014474568976788032261399034017268595009456030316155419686188105073094217173684713783387394038593782050178620801874206725112004135723972459122074354525762803128986433130113949988886097996078229907548338386455081303981255496983377053129955999812890448153591081098685760290134058364733651220133056520168235572481467882885224321029786642754358861637646478921134303646803061743129867678765857874604158375448727202593288015738686898952529281766944179733474521125324873444961237357103964591640444662004069279931849544070841068463462458884919478026741909143650806694305247067872710751163322710400871243295501937092970024108457465884725032229202423684658523023760123784480673809742463257888444634863539839567107756206514075540226918335679795076436217942300086741344019680151084449942806450832178590558491556064406863526041111846735773103973277074095797163744899095445037973651584160430967728414879343105552985171740437148151306251134256140025910961808828188231506598849144091843238758116642856542824051793187486031937023209636535136041144303930323817306389533537856206373264727464973059351548106238795622137678752269282321441326740655513222330734006888183476690965171216644144533866591670064412229238561451707461018872325856434604555054286326779978512962480650175793595058578114031862342416011638751112200725413263559784444452981923807835043447953174134892195747664480504355712688835420120411530421927508077769379078063061241907763799311456242647792895549132156752211846802613014236954558042104107963106409241151828317563849331483748460035606535691722941844509043196090764042091121095119738545917487552980987169104374532820959610536699239780625527608715991567144016780341106040795647864045072903450086947186296406735404625695673549084249989196764259753152544426567840719404781353648929082167105633989572515220801579728722653078393942287175220577443881159942948840508046882410779849878530831823045931220628812827417651010654187564111420193907691497972345518872643688136041656693297372729124740969644639883868836724886658795198347150847458628315801195277429820216926205152532371230497759061106370213109610235350713477543763086691020657742937788328473625633050284611146444700397383292029242547834806702818330342883640138630825177062274702881896416990586961582965504141369961641799643994829825188872627572958926073733143272965840409673582280172035069716060249923233672102506615672465782967082828735061265583102452245604202808593930256172383168458844132614117288707916659261903037886176324911529312014485436427411954334366298393844430783215958210218049945046303094613215952564581745779452099340215413664302780807091268237745900509805177647362628309283190705205712174675797895071184894518116465121685450175163077210258494555700262257677817719518512096049910411381615424229755463687709252675210790915782116173369482889284388803224588119726098306911340347405796838942703255973622875171724992925453213485941283560520217665691306497624153722611803109487566216387812056290270487129278732410442347473216948422266686109724196036720204500171499149539707488628569690172532921306757713718677125412452447715178336371449461740690376484417570453745202139894837005082768876409811045115160147177640447043273988369228447641436155123338335836963572314756824077236585041718848231794777106772908303496168254688586918170933251743023033152854387469361125003845712012259075378361181263284573418873654074396032151474692862644917785214167413998055628526054307090019797874248498468341951577357785204887869329356747105927062293072663050992011570031377569038304030533419360050239550069340320130749960997604187534468703579018443058119856943156759762603318650047752863956602700306211201743776596965582376250209753700445315407683264840703574678135978086012702846761625796637465113717139234687978350971021955122293458340218604026264626718726961116483212069271360652215572165827488771790945350280097970744373063312405973741044626338532864290831355424809279323369821430698251990452385131596657629334863155510670143392221211347122330555509146670107089813058001982563159021108933741637800271207595270129239464393801332581265386032298777265315771843120968588620205209438994256647946824500858911848036827339299022729018263574386360053268989030793598859571744681807858832048437889691762157986433088524444455289346179995086976789294895917153627046224046433027048870185994463463368060865038503763746145978896567800049230718565539322579595615291022817339115033123480271019392493614369691446324793451982351016017137903762024758555844205102825543750726724499469022177901681564265915647879568326382104729282261371572414771763513395656266383784031726862775821970830736467802319451495123169156095379029375163702838691096114526905146553823692968823962073069421211646208832533516055069846033139810021830439684543363581799094500165674594163956574892169785072887398031665742665383215021370673791566937283895904080618364465990970687099526753127399280578035874410061907996929592750481525806198450350656981994361318836813596218380758356784801518627583115740217660522989763775355288326008091136253345130378730588511143252576552433833778629646077285994169257934895579853004071715869628443374306383118511539441634218941630630238801230177213283777487456729849415221608214293698680762230821660747956650108360983356054313878026107490049538788401149975277028167433841747633661774058369430499418927302632059172437639318192283889367937794612183316808768110802605968710697523554557930124814888589403131381569872182042721160334828040418515905772516814384627879080540360606563987386170612937826850336482382719203047792346022352752232966429502114672984375623524528989679102589472921306772294968470629546324127888599247127043261356464487018734616624239032040342601389216073599073227805796651646858556150486874129885984268554835540646035733719762847840665541456706477236842544955473889610808670503751088832571941563705873139962768251452864858922004651807860710962389079603302940872054424161945068785554390940218626294376249368618175014016350589972781948164799851130222992033231287736466292435689107857921787651870597963810822838885993059309520689050617742734628217780341381677708613166164813466163944010475997078766488862842855076873204853356976670450645982455327824718036774899154670073050638167325860669557294096332870659383307888773413369891295474740525227208989822843222290958449174889287389461229139650359253791193626960557164695320011582752202929264980919500306812000017808094285807471467841137843054158206015361841361617053207929990115292624200525724567726441153469890151815791911635855529393544467764021967237125572683955438609423280528838464720240481426911248238781775326186745411929393593128228065052446076702358310787380899249308308716283225987493129712190286073999389752977834985861322040639214308315002318930314638649383981709128150704326505895110028086085893971774996443078779926969620992945100695538640784535043004619318816450123803753492093567282792402605571194726137803972730363302907640938855750422770125362254100094547205374916833597105592137983946825106179892500884814207442238656530220778344418808020916831489690477348410286439521092502803676317131302400271198096655476733937247835873918623625807903787214399609226018185978710670233684427584636573488047124119332915730682996056127565043186757620490546947758176724929137000793722113471274536422386758790437431406979592780608346195636762417278462478736692333744764329604985709932103055385836286727966103302379893023462919249764031971326641327846687511880321863483337060181930433141005640040850059029280490701563865384863640030908442093895004836046030589589685247421993924793745871006029039863465704175290783087551894978195433616500363028486085973243046521238887165806243562064336640871667039214238198705718048273580286532023243483112779562491809207784107142591224752193152667531784041686446884129941962181482701815445572897491913283485074726341411479842539214144642199831261956948597573141196134869958331043025340387271826599828889804290656656803526058789229035729115129875908178798288631190136631979097354885391584517106295853666325196937207360388979249854824201855704004345567718862707679066125446218404241628862052573702607248840490671593791937291686467980144462260141706121643784142119234798488893208854342664740140179480718143217234081524103455888078119938338528132991131011430000435547065880740487605321096989571392097366248918880502305210226133647457590078672078419859694247828120560569833659620912273424991406052113709628400284333280015921831787736523275958958613602596554443285421499072064365427677230941948724305979448194712650233016082988623081191888583485790203607448357836045180993077845557309670514793493170067831600085298377024060873641256719581078672997974417392930694246003185648023932370614029075063088665312011620152239938189963173802697197001533663649309929903873252546303359859655987802307037788033234608218451315029773831329880349901089556970326504378669377321506537555508458634067070459788688969024008344471725856711873653428330583187186329363848894584655907633432865194018425683063267116901593932610152441703147852497044231719254937579450923250622400436847770981013032763412456836861497805689980409456160631580198837828685821242997311137942432322042118387156706604112142867019423875421755423030134598497237861125535375087826229651040828448743025764236261112635860147179204904562140846011914014033085352632051162547154873534302113397411515353165184929183320182334475273653513055370649030566386168995622987609083341460818881738752056865630999164028736904274389002894089346201201486013247650614019336087965163048077483725144238712944048329383999957602259883211083157904428392561027704929408850841555533965398877667228042048347258192143643723456871323071299542531198240026316493103900533960861652181913496339639903076994576506353388015659856851523381909682125917877664846360519579857161136176273100885232153796933624267762170693385648862687679644938716976793365322286131627085215134844177189301522085158832016491387833009798645538591492495011665096207009157745755586970314044995518924144234683721552336167641246481964795749174959074049496565436917985995197671232747276723653020287104830942486165330266533867441818968801489307640377865172917673879828892985600540249228405470862244158665992602462124500001874679447637524661850286227961839058662854777849212459539729715891575327993668499870717181820840238984980457091083409213545833015315050417305217730714431238658080402856906769204032321033761780095617542866188180530191308835714517846142511817106001554915757342056365258510974783822742239021808949767130516377086984741104118478765523388958112525758304443277091471601230476004407725123603789866918682080532140769590901407935017675720080594314147048512839127547298017423575685871543399981699353886481968906383751046458177213980159409333110368282365707429951910100789312090774666282667108159080674527559272113578497740482826576914859345406901896612154505654967014403867753735531234087505418724272055294155847031359774595619733428708133113595577312404070440192181553087184437131131275709953224870946055005548384688741427594315307969667047224550382874169255123141959425241645460389295312995986666979704151537530863909562150663709266976971572726040094942048902241877779310655354477819561438297299686647997800077021079739686036600569452330319330268391961207842421781253313282272417283856105525762322100114541213379256133924010728743292685149207497501008375888408086066042623312354713413403609038072812763024367904483509968830587649931245980497866382100741910076180866432528000640933156163030749787534370972870974037914410631790985862987633571844468421809846631792238216349866311466419702431211411314981572082928155957202382497477453680343910094272785051420201279326708291560116295643784404617238295599683807500192892717769136537773271036400091137158895301351524094864835559745493851959717010546428261878131169899312072540447139718787472815369008204686896095998723932111263617431907131406518702225232509193420835691786220081814314008261905123418722791450021409044170861927689802133496025684087682743778325290971316090395900416385879216132335541546361606719042536441424392836976919834107370515917858692472543140631851525904372130523636465081633892887866079932699699267074861973318448462382793544853630181744305811133955663419533533395351276281392294823595918591892812818731604896834704166618333901429019537192195193715996344836367997978856391956477869374736192586944889715969485592050570407142390127961286306864840508768608576054528963855299086037741955640611928734932193864686860449679445363502831269669441654952606883858845256987142044983540937409999111762758543756784132407578977050649884213811216974819053556736859473605087517261058394895461291777193454365685231757359676919420224340381333129269532053721512056299734579342212027324487255994033545803326434502966618392446907422953943818164278013389423395585242386373667169229834570792327120104670536377006151977322389545579339499831341552300143239071103485297611029354117262227555232941634989472931839980450932043174876058528479647020577781813144008037682360266053935133521904199510639325189620718738854304546693326346010423933887192725053766772491149962473270226032540761346973825938290580189784265772574023846316570304598577949640508293812640472585915478623714683307470502974443512346160694566852602398483788186234583147338114596318386428566859355083567553410273927377641046492663756361281390846397836109952758394111971545915587392773434226422493639194054807452045859216183193695524897612076979337022991282037806215082194789244424004968846185679674082881364836369440540434839256965171838314634272456272212594621905940929702801972506985479398815827008642025980226364527301652029180332981049586323938489154733238245360266150518762087291562014804862400816960955994606322139266859361363265463380628444973331275265219003546054438161925638715713609555897722016194594881908315542648119769845046325308390657801074628784523338636184521050274879425411229407023306646318398655215907648875885759728861729478435852650622272002130709069302503967135613164343901890520613620702537211906810921937340197754074697972691363774533395176780616885473573101598654812213541051832773502789781328625877903656932459355678095339894842013781200364724420108053141926710329524500943677916094747189131865892429640181958321119766719224693612625360240550369535358280278116937225504878722783562274736956949457988358738286633158897703036960333989365045011860332815344476004023850261717633048980862399313578921588082132717225162614391622725027963705779959197028651331173946415694137272717150717152959784984261186288638416644931577770209164646088893980665235939443731371531808356897584266546223343110134082924985228271489650642079607656628563234925977064313104382249167547155622596247975095442302840817710171308784092708527881040450579734604593508945615799362949382854518061201699033225452860283995404416565514943297373522761502226239300211360499659172366779424813180607661732921923958075036292880807751590172541444834313273670185346459995406116786501326088307087258100939186598466728712710273138590497296320124991739244984031944706335975091503443974887195026788899707856898851111399475044236668406149919330497374296589748513835719458566634534408123159841501232919816247237281044968481176260001597292895458128704429858695265136525480563423369275947977246537259524972389100373427800111845274196650568586876352892350073751373858182899941260490206920387677766688865031542121371623247763294906377940165324601153266966415480604805724154889896483957389207815518815893743487552481759306418171105463778015470256232534410017027905253664693036136095772959224604098056890628482835286541852060066380313185737757259509790809714323179457620090997585481903804675767259530662008197920817006109584383306199035935014148996818366336594718286097450817984634441085433065926742726708318588372191851828704629292526866393703522848048612550754873517321181330395951219218498178443699215107109985660010281505624016282210297952822367801084786249505916126486385988546928653980288718283921784591157464597468499674229235629185848570494660351975989002736908904861359383840361349378252693215615824486035917306212371472778125911405497452933027364430627697151993872401511985450330278501215396434696073512140078111091651508027758860203986688460681672911087158357718762305523931769731867515548745819425386381313938552404399438616012722381937430971695670640817605235298014837058265366022609930340067341748722807694167993225582912049253294993483506436606837057181355733886350150100477904036553084436008112324341685689024341953315063299124309818611366862968940618621466334696724632811538788532594354198179800873349101662324934942717140646769936607710468120725899763548767127308936704476722084936184794715043783936151711490175298009775755422593740691442441913252997153150132647548874379552856875141503368868060059454147464273053379917100681815052207397215982943574710288723051386487798710420564358577145296088470336490936567389222862110740627224856344828479501776066699678094191016929524869927658344070585426068729490215078303968653129635263467228937458201631292485415241107796455187888278035403380664087197197290018886968881099863833147144271038970320768250709644912261759945291191610994305308113702626183106728979167644053304354577168133635891600651236480520867468016094837499512639705890095244977576326393900889322440422481910072810224141270282588082091342531512490182688466165875407479358740797103656305223816242267394191635149450208767407697057309608254532437532855981253742524665325648818614373819751873433324655561295695388080452992738577281751501173942981097472672976180814378416093910779838244641400120006632443677384777644448646841950674715621057620846844526342589563213634512408653863818537991076286132663270786015712901735404917250734121606548168180085049501573755894018019527754702073011482932879974980358798829587503397153291342452619452414543975335907432238529089213114927985197934597881341446759956776469043212473393250988996500305836866996023264126101669589751482627233914585802686524255900183698214307317015691797386352894893804562897933027632104820319122781669262540599976368196511852800720889244235361550864415014442587256029677507076399573985659908687056968285502178562362440852991235135363125331671901769156882782677964447050794367446665342992123859799661458019081205452353681955165229159942173503564054140672358532062936277984701640005297660566639619433832115995317611834052699289520038777891303372176429873435584219502729458185676677312060028277637254930934966960257843043675433961616626934647276973650098974633889757695242823406930657518767612621797374745203851445033057625131241857714000559731724194042759639895882928926359813479677535448766641445865721207073510621384063517366226548194762585958692026031956813657949347587494435637615468140086445611068133775173269391018791575467784066868302558177421325194114257939962653931219733474432271914541795548789587499928475900904431069727606258018149968648682885977655166442682378854233987336813046376159596759810574506612295020597842844197520503891882084952067856237383033115534752372999146135063756328554328808118495826680501373808969721890527859299407224195248701904801060662065632013485255409072214265835518132417846048224740350313965662520459426832749277623972802624001007440633535494199007889901739513722794579161676458185039031141774286817641253386585565245122195022506403489486364522834276320732582557118819106502101321541469492614566890107750106525462733984571462651260645397856615867382016568830308806651328746719611921532138535047986253336953676903590152363832009015369009983530004288441794984568486719150896460092861588373323944547308956862288366373382296619606156525951626415992331621048365322704594341455518179535539517452122354712603306190050267555942483080313684047188152909779424948469800431621311043377064224978789765475539207485870928374654062437890071963949587268146072812092671766162604540861384957271835806074131656120043772123186763441824281457741764565801883412444387527300258853780923097232659707403093641828820967926922949327499584752670076229743941455530609709024502577770554364338776112543279975286840180398156317686767345907502555766311330763640872821392937227104891697138994365478246452565033085551500000293150288448546768903736330367972965004884738459086373689325005785719379690595681207785255103014397021533368345775262573777131853096823763318378433136661715535408135843492083842423560733556231841327683070457670122355971375487483142417272385980771697093756542792876362270114383810068022608124356474686922162984050172121986124602191918825080324184025569396634367575913464696173771262744148410893407999106011507606239302108414760741818868516285963706609304115308089398753262371934265191082194309567170699084148953207563717222832731788240535211474308217023623967361698651525256719369099860977985903101846211179451589336168144480032582142392580752848271936777154184005585913992630804420529004094810099049409317957963684234811791701195596885932763885856378023367814883907411535168297677956044903985875163358972577446337512511596713310112432505956887274301960054238493166403056998564689219030144123927759023213066642896913521415816113326272181288715774812796289398670499851878420159715516028901934678423938768205185815577026275060796910473796477560580879558130334198664087934651277609535924560565221154538765785050015328930383463734222800353821261855194826648661141090975231195662578086224051746042276056493891471359678871947598724989551875262283502420232325859212949674309136567342344178554532286626155668350273883949130178171897129456930472131555267434487174117121889619723834311833017991677145301609536704628020214673008870936225280634704589768971582169894418107268162187041167529249555765623547481696727288475962295723268202564577411646996228467040359320690773442609588333164829626412019850108981898600188374481927705217311420544029263024295529346985237114900761522220680727462628652710727400089993018199361210608364092884314091817589478023116790893143571921287158966839892351428008541132603335859167125347441671143945863153496487202769094969894208214384621715107005926355200286751346015157413231223953510279310658325208108032875777320585948076517608663841512389253921022132755577491054927151757766840522664383726876154366481199722553247019306859068501216407850678364098976995343089756891973965200428416842661803134756709600984526995155067028252575988366845220996228666877886280099035878569500702316335479192623922060425151462953364295128575082656168800776708595555391294512772241816501562229227752674912908815309755209196402867827052682369619996823587697133190678311442294055973901307360224917124183112783488853753152748137927824322325551186780075086119010968708761440996772015457604830838222487785491511513395891251887632249520051960319597490952297922502196583036261694084534377919038904886834658248232647681040044003244345611608017902752969021881509413125248728855675053764560555886741184034175697105812992385066072683834976344610727049938340960335993907948380483670889123262230041703390170702272924324798030893866269871423755476900744325301437235521784386009445576950290669075755000610564010526684368843988580523448772038162053280261102628246235999877888887504568689368342618979813610028562416159014082018292215443560347514937413674944193154895004131717708159934210524106169626700912407746066537681968784983098206165137097425809068419054255531199890746361435723974154830182389880487665437626298919996461108073909016359844141066983987322806451551739721004754795755652775928333411311084143939092458698401295640045259165504524762252510080393509070822970489867559106115556532956700358424041087476360942236229621992725377590932032215571121682063878161133089404287868592960642963944087774871100183991971168258637213780279403939626474067745921174145802345044924064470590885426695093445816371124657350941918242726007416246550928066422222701789584065563418321947504881213869026624661458132643784404588535958149431635068476044563779232742521839826727974458434014527522966547425371316347879667726858344992532659897131466325931618819706361854842995061413503406495021248489923903313529952267490829417826899435235585098160051546288414946347405567573202491424129417612254407137742216170042309336477120160105958813227700980484727236127248206174249364233473682349543022516666877584467236960132048725418030547362364223080090171730019856599329987099559111820880335974276770189173371883990342776737439918428535560292967875126223078719730193658523206429767859384235892201779084962752156865898349671387420883554238632108562442803709042487158978086751848254666658351668128220863447077331707083967274309318652218118062123085609674189791819254638977007948383816561030640525862443761013976471881353963982168858589310313326378869879073782117630420850758522048347292185325662795943210141893134090641704419334550859307642278068110692453317412794643393923209518608216889616275708581683104137426267157029629865421579556638613354207335827702786547046820569466497024223216982293167910249917774804359968150631276164194267319325195543278366038674730610710493343679774899726213487277691900985651222767520723362952322430582391641988478421091273641265594957775314498776022638447791546203016403472545284710163427052074509306340419999916757143385596163429290926371178552356937317038807812329310331016799079315109055820837755497024574232312000840522827420220778154812797560556709127914536539768226881822086855664718572612202429021671872271632271045835554708803904945687948972293330415664175099389439240305856049319123445975414372240049466097515801731962038616356571845404017097220259617017791932884040520257856021145039887837517870946193776050098096118778780600717965883621391132241129263248664206053774982205830289031919110509181961580057693721310145509635169288675204440909167990263257532922851785589071204882566269380415268756699513709715004045203634629602429730122539075993734113060341826578323427376402392390643971851103118694289128160231840223868502850451652983571795973724291016489191778093057477635582441317645771743092967733684847393280158622184487091208430402445406568027751764387686740712302657080502032548408948695850144251318957474935970854548135414361056409369062323246536743598926843143950248227612073889712170585911900470611786941506222944044412799423395349657126243590228394975338993048485844419300620479889034706543294610422068492453746076581894811963358233364467060196910994424147219917798150191955592967495338604368453325182125344348661512056277134235007330599186601155076596921192771255025559973065456959510491664840623450355345950411088882909563907666970793407739975543458307563807167692626355058288619706689253798867308270830788297620872425340757636157219832169085087036697370292483891628745964526399906396699991182356481679167271466629381077629369168173737031479299476855529638881463911032307382781793695892628563994441048928136162575445663509336878324432352142519911854475688439488067116979630506095704129507692287900702602825659656518060636924311591308510744040271325921036816114527199580571698572202997940401706877930263895219429117026126419599732356160332328522342346397432020873200166014194882390326953397847293261284197601181816122560958253735870541829472248424552658389551544275030244958570472400496938923719383171906848634924520410858651338830335335590421184998998141982834593031058723996450478058689008614245319125616141387999012194664047283328862188532705775530278724201039791299283202935173498538773421763231642871494455950658004143142308820125822596337993186081882625199816926041265029872377521105898214935637629321101936192223897085266072841174063135282087642962550543390397684421376797820050073933502168295689848165964743748372267037464762685846872903381275259131247223455251449444111007765422003059559228798369646311509151520189040458288606928550750236536369713213445199792811046134931273170212733533473696877089326152323410227011032616755959022285651165991963991537396230909588703937756492166216779793492165469035915992536221699876208332375804000278654951720363783927257756643503034543771219863804448090531373019808373838025093508398103437324885693079886019278824161108803614975971421512034012359634455155963769277845470564312691716081314372920496368727578007402195346349004625618493972296213369890912966358251073661261529073884942244312096117167120361928789584438075875916006727648898769115197233850416511624680139239983620044379174036763074270384451127632121172377797537733032273085053281406876477154175088258657158912311353390055809868909777852481580911775392916336957350303637917686026561944913922095574981444765664205886386262135225462959424119437371290077753078028165288337047222754306434006914361477800130213480499236441476446887596597543207604099811102446829334001209759348727542084173867855415320901845215249587785577806038945552410288883628414246062464258703810545370632457940152760528595810984729209964335320999385922834326658218857788124672045425620218451780901455929548049949017404565312994565424663925223780420580491817604727073340465708966373635647952171203551927128580429176111325217560200081530632198835839696191669360201595318741276471172491009350082154808556601424747804901357169491176619157635070375229508463858770247783079163884044374887707477448557851937698255176996584543161533033070029095812522601121364904637641721608478328810467995667682567289187122874149353953842867618107352914281292645120079324574486961839902728893386274459287281315602337787152513194290516065154384931806606980823569632054077681708637377522029549419120364236573899198496250426675998288735952088512278092452684598238911951777273056826259414027352577466068091520793262731658696803177800706374296881129936012760069338880665840407747591451786100487887324611555691642401418909871654547053717627434466386786788732641098305916500397586353615645166351162228815126054803832980009863527896920405613237408057112061049344089152154331063759915152761754478430215140094252637968908412352055972546083042622015361563988171188728620329690328707402490515496230719697271381758663451561167245544426057063774289498453829510722092099887017251232530025010491668774553641764893778969779136637619690933365811092788335290325334696373340154909912482202588756310253640669962661870669064672794266189673870800302858104037267719065036368587060868279351888197462133727590479918434143391552301453340350366433618226154789033962774388647092221162556495056658809863169034130220672978462636872770251528054121894262641896182329913633782674778281507523154815400727515890473018126504544103696256453942135077798307660396546634650189242246872988415764161735183352008723029237312970009338647366908520058843791635123471630846947925895119429323096574576105404334859371728245804481807322607480728586548910586583635257732837501517792889422245267456988692297624492108794435860292583463315012218239294902880261958291879310058883619281589489587371692410630904348312336627826794957023097122465841183903799442681638253555266101397490300194935111253648298465975234819888540259855935553482378376822782787055309138259264118306411009228916516258197832948653436282710047563626587094463849097114565937032964013146452989279612874415251073357550492880854631911091733410187001813864585335646278091450429895788429629355459394833280923937630164007341349918938831393946491988002234362276100983263200532146609495676752658805826556005974905863601934789670984623207891540015868721033564088593099455588404418288376849594788557951043395015820228455980796270615906515352920984664332172321880450057779708559611669072426446951442839595905634706102035199524354359358269309686275576995128545652185553957219647490222105257967576059572049317440517571591075062590694182294778202746325734003865276955136845701838764269008523472751138439541114886261729335510499420261582581530295903473912047183124705696607017395290163547594382397703003171557022077211093896721829335206998837282759293767734594279369422593258702256196679442946508977959511185270218740341808233094325481488656022325010638867367475737186658863191982121855204038108117851429781506503138310276181087187171472118524120322658245838898667712747028860322233536714694052077211257199050920846771826578357815469388916195831584766091749958964020848797116894640391589578159709791513631816373998696926992973636161689383820176855893502023031778781924443988839636729535006423016462956827940473454599514025122174229787765010992031157467242919628167258357404479299312830387885463263657440323826357397666489754036829901200619702809659901600992289433677814091106573158757447798522306683278842728935331004616292481556731936377592802693876072438474176138311056061561359277812697373193712149283161940774272773936671527619438025403552163776204288177779952524331505076893409133554064247587457202381420104149788499278379078682147754856207210303005543177830103848112429880945010044232063287167149357979727718817397552754984472017744806156147443735384293896434570306730146135927555428595766315603620511442408381495626806331242450577303020248731415852272297610024651309329555418656037407926471814319152346497987863671839473322087133157793468261494775318771277340427671674953198832161051383337777973455758162218587309701515120951957178770238934661777127222499117561154741571410909228463118954562171723684981105563340899322317597011609830702984772324373544350147946315547052089260934451226374864825665872938904083682106296454891456258958708965740257826929431773528554561035595786949024655643041657444942193412624208897722417124873841473143110967725522759763172375050852636512288774625634802958612252796474572102192672987977763848342288572731349547454493397573763451549503724299645569954816529783192457663650735528334281283353572571849727209778375809196822919481918584624444987287419474872946085177190870065303483893033605447776150737753542159766280796456001134386092979128007887847584533267057782493617182939363709258374276541602199265667384098888956369932456688322340735671100851098580086012478821584344366353825446225079460299318851491651605770061416190643935244179003290174445142099679815221471496669998651772639984950804443152601196772782710684220499960918431928071170622719623742258279740215314309207487453808966599464994163721028688410318455733796975732572972847045620161011328106529736697679666392192124027800031206702621246464081676740947445048155674268846632619130068373586482970275108477434739211587033985538733269783996511554527207411549543743347665199582581769310926382755693154832434156771343088604783655914202210735884782976433173900838901338337149666613136299716671948558816944370945525193048492341784518439904088964948450114392371323982630215853996416344327945978961163705145383526951893193196299602237771533810328272881019679926499435370747722180705977509615506789153994926541147948641430905881448972919109414136605041469995749941863862487552768944887081347793546847170222746137576886365787096060111680908010689505940416581711419147704839986627495689131715912462494068755220935527345389044145848394947552287443574237484500234655031490146996498278009897868195470520203406977162868426477036430450657733762502657466124655144346791203925037407414718253282489744137813001063561009542569976450891765040911679890423075793648194526444356898007218990058325631379502659167591794043070090302988997117046784124942167288533817909826610370606884921948080795495734245458623274757190353034960242335374428655483078075062817163416314325671270782140867457121980112612844404105754378125703554761467209356039005063606256833323570633996509199139385301495966788234872256038814190170942151297718870675738003567957826349393390693518653345157437186896741928695972779668441800536523474921123967684734760898847331115798706153349846525843612440586169494662553459538676247363977825418738927489204569887809824171642297956526615334797981033439655825141196084465699372635129707095961633240682700666107385675738007933784904186430021110075787033183989899332591909971366750420134036403498134286122624582766466789447344984626322256921932665783827670723893898628542704452756089709218997344031898525086155038781387906996111675754123009286319776877027584737491287262432970484015219005251056427708576294951237899242907237552727151222118507809107245845978323529281629434392132136933503426003830472579709323925072981541357242316439156260996800141008959875582118431335184176561848502014285860914454195203111575458417088682451845383632428438474959557458321308575811289770544417037528753996295529389851598842045267549148362151802247515849207619723602187405805012584532109459450592832728703254752622221871130740393499773514290884787849614166038682767824652425097094774202939994370904048333824989064322929046074234297683376318788275375794359607970671061809803563063823488969667577748470581912946122998920158016538723730325984120519632496631155054397395517208634662873243485906948195935425607035022944007652072943432274565080021309697200520536938651650119923092464467334162536853583200235074784778286778731112451828495298367425330128219580975623553943148653074721484164966210269978971050980004988880592890051975533890151408686284969294338371978457338888030939321884327896215614737247347676851006002710013456176279351728832470304092798483064966682331098183590348582354047483715416428615831654137697838634930333365245390846575380482201307105790911845109747057070162373142531023747792310154064733487269060453350150313837081032277087765453177342585936412879542185852472956558640843159917781793749187715441419233506044492709792532481655903353103124275423587627882060139018919535178026206712175485252409289771999498496153804429788840293520478473030566662208513818163657812381898733383588816754226630783205817821759727994591904573475981958577198404545506564697588548939190337214282865524446192260897523748581679622418299749938559342881045531863626970217123247598415711598598913111507999681510042757630698409825252978441059067486200456305258987267060004435989662481765747885023236256025502092454139637516315281205057715581034443777896400225518315824774990207299295851209436642112641659770653897963220661669171152577848634951736877191057981444085372831827272616266642113131519252898291199872186980627406846407549351470913859144291522249354310269365967700021672209348698649563130529327644747877765112573508634289808896852051526916937828949806825991961682589458132822153394166060099069952927825390790174119648886089584740779152261932947233577159790259708078044710819007138838723236763666036586907784868870995889341570914292452758652194852635019645725719023118885183119497767513613266307704594332280042192560786225763886959293596001998226044389746414502133479246023544141788011934903138631456851234361129400715403055992747778408150971643771399764861104445247190698494999938917659329395764302364247218098440482575397409563744012161280966926726477994314086523895648904580104946376896429855110700830766799138492854156545651357240507999218601428731678558204021763217999951276930634788308538327347435396176312928646374397983729579640896027876614067347034565524106557101320064444487946970558013425872033846511469571608391677889030121166344114028106846589148212756443219742813733887149228016483418826730982915262290663854940536889595043986600878317737631265675733701915645222149827176212820093662957893307561469393578792941463414453897603808712543355058644504452532048396037468872304849667001564925978855275798579933849858645413827102011787512156583571474575487249639319748989145282359980100994474405857205248544096537781037288551029130112100471029644858979360244045930252795924094043645697260422731935258946428398508160518458548045148423671137819791931413632805865255033214873347229436318085234164988700577571675862606023066270701130112553539601906241440508765145175870819152331194571441377650749627432222601112190762087353397274699964339715344063531726115049057626122658241964641812107666975744099391712128094410088299027648777714698114067477508730985247803777762641400088413119565694445254330169760431731025516061967309959679785573482949230230293917012691029685611076402911973549774269080680699699509933013773093527768057478510563817253791408406412768648783974017170339764904723454916115935544010521465089072934160489618797052649388087388371448529293831201493394668624045947453690669155737919009999518694620109212348601132557782104824762128781433089236850423734798314089574939509523674212324773996688911358518443919926669652172234833359896989268137506678713424784583353185404743916356290430382324920896162933746912368852919412744496665470464717099477972204181805491720899686102162980746079097866492525071258259405228607271744199899582426965787162311925170115743847271248059148229312461684599926661793226192038433230370202810097718878230415480456819383203714376583380648228149280515068056826489377284699615565949979785171633693213194352554220107409398504663115963961700424444960135831792839597709867211152173447819286320810712424712117265382140488851443693948676656542801290049077284619853937084910931413692179687867474726739622007416162994932340707541847212596853627570803649541530858580599743016890696379117274361445453091454944876561623182627733700209661371756549101475001705945549500953546548977619595572110348439334338615339789449400706222016237213283380665075495055554116303080120037828185678792806000670185565505921915292117704657649250678207518394376028221871090140050452330409499081228113880756576790960752374785013156868700198603705882292778082632201710984063995228939973423605481547615070272473722196534704559140340739533668335329686091104967809237787110062430802312014123789166254903436009837173260920369545587638199258333625441700654108876193471119360000343627353573616692349943122737099609589973598234175051425027571672756171992845554528219342497398443791484417669057395441109595490491924582205548659067375323584778093258711523552577483059463144474869286039719250268302746559229458414154102387353437187345716629417136710251024424931501709450250668379920087358756791474422389526194122070339497047992684409123568093496834956495671648875442102908981189024518720881217504112504092452943436091529310894138697564054282425454014497462052284621139013681592387675081559504167288148403428656376885522158882972937167298423814199835019242777928921621431839414418238178408663789825721482194956463757593225653526505609341774803799865571064750201348484766413866627042378803793808617901013278004093184309388487409069451223777923261008035877029884548299408680951591766428510208221611668399872582581693216405667157987232375185923237929158846470103688712689717818961023708920304474846340730780407881677931660697743345910543229697134151735271165273569557054351315251641887548637023879628651029817596267854808429759672757926388848134262104830562818908462312566851559848994470402286487249410315975670704039405577632364178616318358704021908306849514072107842314732773217982274459096808056375417878841155994677083934226848173791327386855806059186628685142011846084639507480001420689948920670443759332385218230967367180561740322732266250767941273212160318538287856390925692471861392764126597429050038114390878404006000681446419622520308290805291202992680236457656609254607492657473797279314536292317230521982306032316136593756700121497731884573690458167650403091246165365906610706945046909624463280576816393583402477204063045792923933516054482096662781446102788454301642770266798332097768144796710607203087129242013580238966023818638487009291078653698047293610904424973947452044008094015688026979360135803213889226198824983711256795175691208982283465060296300013070559249302689707104908566553182491831401615198803606985037716564093319910092259082033975956550012916408764234970337000246630724977922600891054034649973454923499159653327764210084859018919411853047195910294278942937561555618877834312022457074620907834420982671070322393709264757145759166126706179431708287917269844946098192893697622279859863276239350790341345131162800556394389211635154100407394698629596116202007539279834049496327693629269672791212851393943768026880519500434129178693490304768216589650110703780635757238499703641802546775680118509736949788719093395695906124106980764905120153312173449451852158267837287627783854060601727238396467186760651637968993368138416098564969159497987324093207870673074856318056424700605572886510227640080807467010737184731816364127262895489000790888143801885232552011341610359855597047344901446490061025331771642033337516724498716674226793157236310874720563340119475192757300241781183865612420099238042155031779095698722903448939781169511736739059396027489790787855974002066802366176878146814555820440415589310612468175990088290139278349866179571260861910369334036977581389393524189189652233608613315320325741422265978733482964828777711433547952304496806580564455581384299690868269653579939696307878516124617999441855765106397772071654959094804907397900571418803342885791163420796646979563375881051058101438414702436772632917668975120682186137208187201077703527662427212059151106988416962965198682621291688735243031211946980533470350218343746052927678001364805949672482538812824500782693897583194055559466318794397285419575916028073668344314714341809860729317438249136455250636317402673869069291656788673883704439233645624888225848734852598257229643935730433291652734438039290689178230890449901543639599332104354302195128981210597999026765911716898764849689848582394794379917830694446679895396980869976094848190120760990796497016728862072505585768771055762092710200853982452554341771615697071091902221389433369017874604802701454200683811829819562515801699553655640543749737796767512256229987356201855006128279877750041345192557948993418436767123436228754856661105849353965387624298902855939635724695784504750140647030000839321344583747970189917472861847920300350601495771164015220773142512140739521318691024437564313927247254693989878617172619710431381634978397537352923281391410769075839461865720871352442809922162050658752483051970924300113822179657000455994846329393192031415140723569030692684318393049668538098478079690695637345400770077212081049109869019502106360945750707840746703663353744357258790946099951553396704117672306975780714521358560103816903352929850258469118285876826127896322972463977193384759664297182337541217851907914665266675385092680089245469121005703905527561602672426130152435619626546162880866932532615537175654768175821040721940290972471523821626023389030850735865313322332636860381604538436940682324329965413336814527361274848039172061778999763818370013892863434596697407979802932964003382594667219994873289121610042024188101084756860225424720327072022904309104918399578353628611416652437544432808529735046552849684579399250770767115419233648546123470954700274665893377270566657971929076594038650403207046720032665755853537604139739372899646999349092342439334090048865767144731191956053264329533509428132012432675052229128668119543127404485314858675878001463361838796661211804523769690476406662712094958517206991415213782819028135908474578895196013126731678071680573882461590392394427258700089213770792129473636275980373967559337404684094877440861355423075553687212277150582937580266462135344914574713308966906746703265694182507141219273475028595463915085927577308724122011693406841501365274894467641906050863746371547854892369756587150547243388987016064701798617116039966926174496290018738518053548682478767763900802953603677708907297068558005216486211244341144269466009015726867744344709953404863328259377170909584383391867282771477741188429824919983094009108768067561285308049114404523466518631471214411435656532596897585513329363554233110829577932850044546974682404922209499009811040929806111918224911805271808755200157711287016320197692846148914863588215113900715013319010469989412089229126321706016426597170587284930493940021000560068103790098893087221124316808957811872549557079775866678954607194350708777417740311834159501085449632476055592091229685354820921238883705972209821438677441448078535782789117726969805883586039542934712344085928436217321244109555436957792561270654924559089661277010512156886677053658760270845433031052399957749480210634485654430065112876749153576725939176081097025461910870386752547139766211096306594300363830981081931206775629640483410983108925067923416492638296721458930852438332587112692293740152375196739144647070658491782422545233407626605338886078906415469910380336077370884780828312419828166394019744409833257237280006100656030665399339510508631247903146712355898023227514067479120220863312894428454311724261302318402980680613340760453791820377447230169149675356625112292936570596857580699749552761226116744303287589611301371892003129466108967382337539492397946273891062082150466592015631967618123925961417405099640596161201409248872814270375044225901998405511430908292818580932574001005814077706708840195415352940630952690628504662532752552135271149205105013806171545204894428600350922031974772721522796577024972378161635378917693254809490933041714259582327489295579727679981952242160874071084063473160498798516597791568670706507845456116400464176502608812013487772355021313717569707663492543581254660259058092195283665193826882376493737724316375576788756316154605741470675983666590062021420115453187603205322311533336237954719437179085623805052796976742465026388879295352670547178158844179397348908132120362691287470171856887537470878254828745517252417540381607995666854976757523320697537662850182712786350900865555181863224033277615715999045819642935320147676704780435348137313910308064549469900998622190160961894797249479337955800933384803518990812460084701921482400864755550422341366869617350165597597164111360964230150645478586980482811476001920465776214341457952988172634176836795426342477961727149600656608696228741693983153341457903197126215704860838556600653142856957556217063789848935426661866424834022726547388069152961383815910721251607344530629455068136199917155935089790270059228864180861889474582632717625510094682867437519579495095066572738132033410032362470550524519543316304132315404065446065829421433137376708256690927500629950241369603007963278623916070099166387939823571662190789519656718829285899717650266693261049439099549988212629586625428637768865223586764869945084635809153137215710965918639796645654656622357165765625392678177378034176631815340356751698573530092251616555640429540436745106410665914221878924968119585933415600577098546920220157648878990740014261777701140132108160516529409845788585370639665169980233421356913394578649767688407888532869433442813645332558584743625580882111768167327050819115467572290655272738652977565009857371606267007567098565941548656693778462202331206875003488075417453916156294528352161524384032494946249581163837681559059768202650680249706891963573346307406845945295903481157120478244932510598803077761831705264993660154482266704971799880640005079263524741245002978201918603074242099262580301730868708263895218155169082376324705667385953315410242576981980525814430535627480361535927396183621337840414378476473791100851552731720410547928268282245574903292097696320465700925193283208207700905678273563914753631429466883153234066437072854069164236147235352866935215695531972029459614168803122160767930385005067664074507129193418495728552850162047148479502835427456818086635056283698921442483501874287822717450628582335233369193861129359227146663615844194209265403284662041704293489048404112435523859378200363672616351493151546096527683679924136544728546349332081169775161358607027185197350559211285756542650781288051596084947447427839465152998705660589849092793328926916253111276748023698775541027006502623090672798037359447490607757668585272804221722693560475887272855258423242239181997952015037273379511054520681228241345304826095377502570560502806938588367579290201742260894183652427264826549332345410328383429303817229922690714231069297598223824099890877289859436955998957587714507198417805589214345591366475561878142684791520151852865785386870797775310319750374300769615794362098716887839035481887762707347562941919355118217092914914467195538231226448197598932802145328079435176828626360538559881976104833883149787504867161475607431433655847197495539040523042881465943686200192017857149943305140880686814763034907101094279725111686820767519179177759732513889784837363131745024718587816986477459682422484648486084436945090556634185941379351390816946716485631482560215820126278975211532515266195511481622720487944045109846019285858676042940137803313570038763514620931215816121599886101062133727848502151769662254769038071374206749708592237856429830868454565204299522569662207224866663894382617073414376498271948175855942473817479916980257853315475534928205604568150084203941259364675091398316056910008801449279487136265559623276582154822554497214761232464566098491110399165150770382154247784739017522645264960088336751588326473603469028708455563781958852492041178624538392882683239328747795632920880219977928865603005980139012608285044570176951923674643798184208783482701393315657150293780850652134497704472118967631649703185505972110558264506220506768002753442074734331687246008473156899441027609912541980605447148306955589926864175159492492917504688272342833398825605390783719121082449817500356659349671212494717305002483913305333780593999423308802306593404352921441843144504438119504343134334339874539137553454181725884302326374104635986337685688871211233085491515382680804481157535924627328991630011893267529242098681288678910552247105952709116798258285161063156569298482171325449120252082692483580237144268005535306463987105284181207286905185390045386585859954024029436309363647724821258140106880912005684264558796395166916099276379179853643671078207594948765909559912280451229864729026416561922092637693536054636477865916395917594865887986387979646705202476476694109108668774030932720076903101612002978842466784054818574970895528305211739423584919391409748949716103122954401594717504525104190106145821518581644911553660772332256393350067668810863009101980125629770468384009438051581464622304911669191502043415605865136509030664033810359067948874575002110524474711836524700926061250700294908969068351751984293972856854573358154889287245637364484489054011954878285989617875398221064852777984065838551285742255105374624195880172421433247659197848153137547665832395794360513252904524343731528666005743945660046063934699134314288469375735246709158355272950213766974811257410705362831635332131358748587320227632361555053919951740648072155644215597275280762795443889993677451217743087799657952748023948331897752463342602447293044993569331610884204304273560022633222935723825923516641631193156972023319227317566192632638654209164395818603513267082788719388314292467482495399876223207204618239225195201463006091680011079125767365331406033817200534707721230268489085038364539902849123162262975727263669352529722516088230189724052455865529060336536629155898508699890028744530583103462927680998707923131472442511720395011419555605850193538381676092236674121634055798428112375529450881597067122748480761877639786003040181471348100204218763861886940015709983951403797289003108560500657365069570832955407324961290376693959932392017356734254962732451044142785932621336014521991788144365619581546890364728267582360084405226627081211396596604741262436836873384200131490620800126652299225549996648918703877440375445275862214427390789808049981947920102710361620452995508431732783886846320324833193709599346498302938657311510531523207962811865046895134047928628739635124773558815157045270399868825624544598976768239746282012529680121072743114624981063863081877045001870307381165921636704578696223252310960601343340521978901624679597772990970050136897510778563428369740373769963422677362790939635940100095575849304027234599252512534361149298035454199969283471014469805475142816552400728833955933299198325148995917069758005844754914515106538261451502642850254889065962929802666149525822961932517532323444325921483711938214360732733515287278397351404739418805206693546551438567487467213458780576372838027457073140144743787771457665027742300462628769315171893616420456046233362553942410948450535266919202401851812904046685281951103197011847416193413334718535453945597838974643394257843747176337294126977009525165570932554221212417408746569906995433198334740711725009453703196811397743238817565615183185256293855216145158505929131604303072782771535551834893611331524402432325175757673154649651188061171642160176622122225474227641000427710576671788276865658574679023885540382850207125628873943711902315721470176811174809248359290114598903642454053231911330965186475642327296756211916600086641427112593411079396891399563597438003532197965238915956244103863796371987290164988348399158712350412377029692086482262218955253611992314021669683163586063111232944813721447747248085709545702814351779756904075362977628353135095485706413778036329920835427677569542093584737825288292614320808822434865914967791449552453043549937718952834204808064350379582168517881410503229594538209129272478129358225974153863460324205407771469480926613555765551773838605437408408419686117246022622452174126837004721405796033488019819365634898751037028063417827414536854589768335480037974785194282498290832486827395698719550612372957761963535102208549618609504903296093830318737004793173206752358445015786938595887900114546152402435635548820380773499629506621176346569591241767031611417820627031525745187199386833967811559094219995414829844574045699592131093399689095547786326395669085775028322824297120526495557829693897879402151920306163619100023351673232707041674840590776333640729638606127573691164799910327988626580303096721210786171926786939439318589618872312155932713749620373754461769932226447450041695754834345428938342810432611905166640620823520566363950278738244565685484165432337263081725628770967678515188697088685464951529682982741907791458286298289038368686639439916785269556760959646320757748940323225763404099664301890551519108475748344857195719041995416623075031211332144036984055610686693505793965779062657661090553417774930169490140531029842006055806446333469117080717745393367990167037783660837166620871867191461326033205422715733706827626529424928126868212775926542014101991458684515482013994679452808022909968010389364983398393110332446010092690049671487949886998064858901949975186881832758456540366521206252305310445102702069384967005137599467536081684242204067281654223628526760039180420758404596656094914217301522385987020232917037096331078900090640618554036266199793498197878059235034860732396855562423741363575811382135243335165537957838440509004831600747172945409396334782679121930411203038735632821966026293395297490097318842763173481783388329257109564853333171237506128610595886929452907550579963407493996912536319132295808014295909797645722696248569656467464719005998542026208782278396079363087692045558838757476823941559615018745065119349743513199470286072416432172370595233501040865045869030043961661007005708587067764301052858694727197879442603463047765244708476537991546996345671708775192243379024860508999359555524837656716045351179172733110170912842927219032640057899580944094591574740190276651617498591504721535191656481717591773767543973521348370081858040429710813520020033338526293936840396300184935842886933830647381808671959790867854322830035559271755107237692102770610159683175609989289100204279700155270975074270671446203940277406285497619322715828603705006151076809234641213177550800848594379826213795173967731989038982833692450358762361594108459556707908530869672815105505990004579551915923380749472126848099496857793734482978738475808586371066935655295904136661230396117744888050724266609498328835178656808134129541787513246847858421733809789321950805693358693891626629984532980285011801879762295345542827642301218976236824205993574819532006066160686522173559241382488326001675216173681680471810111664842796756282287193724584754191779505881590325284893816244610154204571221396332643693028698972688748255678701247373647383972512064454741153711114064631210445640308193697923912040883368846514693751838469694979670945506459765612012879825913853283255143894609564338462755951265755462403304693335096601779505548908131319379330371291957287369690277531643407397279844789799640701499438520809799584107499458002170240922817732118871673317386576526043418843347174520374256258192292588829951827977048494685800797150808011995046909155569324653939852086118335580436294532840766114195749741210412165587252252345026312301334806516163650707585462727277944353312183918346745654007071311929629902285560780881300332284386556883320459030059252414767809521310427682889404639023484435585759766924412680717324077671282607442099948895736229041165727174816418743737100566909510784888755417134872485097401702720035480992583606534549417717869238989557484724558484893954521606178785059712321318843428493953073527533873761729688107134264943493164362492004645213065956775710693333231804576626009209472164919189882604370123802678486640008968295184670441474422739556257203523003619607435887161169302985294305371024525320129081798786570731544923187893947360545590289271339228171176833389143871152027131166488856846450624332118261488681239386925490694753694232471821497523088945684519979920158469242656422156709440139678531874680836852090210108045909006146631307694295537327743038137362789034639124934444638882308821507104705516448872539642629941776370092762757336610629890854670843752288502113764763339924225012633467867914668267370420509678289901719523579114624199776372025041357400340687322902600071400275409968739991966477926173827347449390934708809784437941635120366514319884284146310042673935935368288788498827268667832876445162540958845780506627781568060933072710810261035498217479616261633918105990550731272320025076294696470982767182469297924678254202602689053244864634854639320505838697079161159077800929465370986053022381455964453560392377730686338087137637766163138541829354250686762425371603608407646686392915340081318832896903271181544298148251039006431680791298058208404386814226344770818906486875174713058559764157835885675987992767920827714755329722463070054504443239194355742147720528152898044602107213069948964388952778404128058268895487237795571532029199874968967578421677838492287999735238621479720146328940158272828229989240674329858436730257446684240173142951189856649857964800643629914842941658019950062645966937549285479309033966652535167341224401671347756955446165689869848741251715580456568068923401663073559726807031690595451218999829549292143513379548350157287279198983035537513745405343303400783918632367020452701068411750324603488217866047003659222695159172214163221400075420617165859831017073145501316698140921921435241332720331463314116746711214613857869617655320553962500808922733976248688932603117002323131343151576513844454864637858252984914727888328379107899471309815854269535057801316399829958648456981682517026253152152794219234152920635629798169652918037643108809504465593538533466065776350176051656771820820736663184655203135598119801824499536500154010845787455650612667626695244302793728174697675167775209981828695986598176377761648920525629436105263564824534274607776747520509894376150504259716956347551385352236358167698609450358219439403993604081810879295801581335704334814397476345664289186995917650617626627641739818315278634565799192017876554617603421389486959919517774994509914030457554303654057494756301728248470913027078684092802535025279811555785055947900865461106248608590012752623709568374946612577029018875566655357861188574706697110667015791685439337282103017460666204424729207207471238765104925955324213969695393671027331412534758916750634787321831041475879239138144884708654947221418043743571928510870437572205303694912334056516075816411916317090452089636959917001268623483458531970480444806136441352221931688140799005391711302712731419375477455800570082990877624739512091894583253861686541986989312525288166611320082796817787638195781912091317334260857163050438612154298109851313593558749594625738250194817134586456482784443333163008525264978445601555469096560158929794031313616886577451258981763100572867746272244066454960244296238926536543270966042957888919812487832537502527946982720354768296240648624378990799691299401252737348245445179457296345090452233322968301824950897254676088915111532604298882641186053452769534540651426174412931684181147419203402027970143161592447224531587542558304808440088766594736147172891071435756139915244329055063296236407679982348853348875092665078596401543566709733902613725994678952303893548656514351591514460280520060913859236651506061179525651922013038965421064611913532446516716994845868643843507212972242820791282703058910437543775543523054349401895666372479492857487630780854376658902964835451394840926485213388128711056595962876405853552287392958727079833221239730236301052773887185152107647122074272377761726892971188028597643009079273752265039460799032221481901541269570424012189726997028742194814595501270279806263187917009188470881081562873116630746387353751167150875917696380124286716559493186584273577857447237678916309724141358915291502813321456850212502394865757622949998313585665143873110423933389447333566172116685147566946651680870918825462677038929970153025588039326566648848575616124031651602187663426919276496462922000346384074493834672808705436720857066163465259138028293763360247249062100026423594587045092768493461663009941169994024753119081686615579760291347543299085652826994498615959867078546354716439904153723964623093946074711467875405541222441495088057614217009861916119702728460399734932707074753466035382127512985207011490312692016150991846611957404593059623453687843978963730365586459183090550293869391150262628102628852150195930388630253946564217420299758240822834351122835732921894666766304925705207448935942764746416331155704996910006842917139021520696306291675341827344054686147370949885858007953227475359146129251349266784498308574946292193809611261353535128995397547405330687705333821985468465174433281827957765494988965892560917001990315224768523910862241812002665500344464422090718492192345827702345911057325004247175237719145259183657016772517838187488635891260431468275641409559824610859392601462412007392392912594538192890062064610623322041129513363222751478226497351115869665956495720470716873933864661110559256278153677524676237341656396776194226305113285923189662651786763694884565613493954904006354472747365621802123383436883083110506753170433749266448938137715714646908685518308314341611909588425788538293993360273951009766106959253718208067760987364628928098686351179327849333999838282640758276066932268755266972983793717428340424062865291735106543500620962894093743129442184552544079373475628264241536753096371787537211551686771080056952766952598982362772005564728756810472140445227038182364355112577932125187681006031206410022094760957035984460218106206884822764666191839584548202127409463281653041110554308185934884790149665914683805789332755726547720063227346818186619077784003595895684382483471625578988516988034511484417085448255656198397012499792863652973810742408035968988449755003272531721662168955726115477086973752325134622886210782785522305363901608777671148638917579988007476763011848769755470153333691640265938317636529896748756929940282534553830417080342279404373414113255046156323571327189243951401016330785071376298998860541812312458000285441922258517404170143893629196563946936155791592474341941131890195614038521650878320820304069952594730284972408301536614440623730825020691846547800466817410106127618392849338783723643828740887615422554883561820314575283035569383242020425256079150844121566093509269088846582680490427303349128189217241548523413103406215214106285045214674803823293949002499304430407938396776999421532090553254833539699730094681833421598056462774530822539980479123428161445292159208343237917532204086234048505624933516867471611676994260977505912385037855681852237455755159921392462541361905082755995441621412426831444443798839002633598650229394211574474254616023678001136043499534583812716959868572364407865974001835741084036750271437084847232809138823934707644573723736061339455018668771544295625122120811875096919675754663893193468710475049606180681955675414213986104609823721825481884224536889761598935212417992011436457298910050701496963029159078913987658614920926389173189653245385892938849375628634988458101989740901302444117146398842149685913389040486475943834065240352826472606509771184985200448299974603366236071130621443703933875211836588876930044104655832691343355932836125765766434069579401810891504037611481091899373686716969173700585128884242230446452429444027259412566594527102316150585272237112948517446458691814154061934803851386544373190454518677123547790260448782209849324073657984269016748326619166705965002180583990697111372354158642876711155920572389209768804513087345113030309049746905864383143298183653003106329070299725986332757913870294234659061847285412797119243605036891134705844511358276653720747100452942562567194364220188425916578398771330638428721974634211308262702229754057213119665135657893348808114242023553907223126376763965873879119123912824469558210364097575378355283582776454478087809585864726162830880369381152362410160332407721596023866135721442374182836496439186276286178395746782647801040100989009473795592102781627498740911897188013666985548671885226356184976752530170408237580727039429109411467662621083484078415361429044144707149203766851694687723130318291013391234075159540051811196385921818022999643923954226191615259314919824664188035280260157674882257706074098644866493237218711330688605047252658228991264071191336644442677886140051162483190218592953398346287532959914696707128182133154143755180129683268144196300917580751723031634510986560828073681996568792831181723091627857347085257017901263784943792055693078547694017733095443580579013524382490742516993435607056581148388297833587007457987921736134545482921889696923337302081801008990215062688598746484006555353226779836050471138758595907377750738893234814425338723441053941540424554249217317676359732207989660179934596458318225795402949494424348672598725775988667704644749108420182343376548966802615249395764112087244293220722363573575411392120382974716993097722400056166142033947059995737541162451815324294355254455750867904854369326769328555281484963612796011776746674240358699432707471800009497650438825407522812090954173966162735107304555038006485605165766397378369372399777222129988498963572708807392448917205057963631823042247622264631113899237434829160311301110686596617143253093813037703337046199272741315907915959688337139071664313318723269449604485605934838699632316855259388455044240132469736666760308023488051199417200548196523434334287220632003901364231385602963023798466055968773012107094531212892020909248066214564171325841230247542361014762344173469391868877588673516208907753809494709619409635884446183167912006472215038846378258356661136347077142753779647038642247253841781860770285597547802147501687183912985194067702865412925430624636657131880163197465651668583834938222357876595409560366322161909271533082210969458460685675699607484137440626483507331695661341519115186177027407177776476003267101330872726081248688232999801435766418010238895999953644243716686945161808124539077356416374583203597709228983435139136043667075013113544032403606915160179276406722493624517685493385459553892580861979809878250072600587590318299785326647092573268598610685890590674196533105301973092107173207503195368771292076499669807444336592784821013351593648104989215470829930835332505945163146834389339025156815348989552020533435207775269788872338166994067826604457626003755383920116357340137477753231882828827954140475833833556428612683366159825426961479894479591598051400542388226669727229503532088311698320152400311683280444284563860047802277240780265909555045989617636074024323712114953100207463951879513559579666674893510431015564301601312912333487583902699831582744398826238752725114954593565034889148617480667281563152663699699158252778472372983419994705296347597875875989856352859349143234784262134980928156328858550158548659841864842583715254020495637966022222725278214954588713171176741644497498754938470093092788520637901806208000974235050784789786863821683508046731108548247439921329587642907325614311787649847992823224317486515981357457619818624978362221236886803755264709946399197024985733419922427688139059608918068840535148733433301784990037796460009872824558914544980196355328060367437465129473435938786015357740675294995938970304400003357754578609675246830472812628844431004463213680421789910216395005075219282999087574102700157847194078477818068374999511555012673268113105266323818852029885550282060041021085079018194663723693268329749499275987351875752435748607719902710057934071190420085223040253077509923491613868509761763173099511619946770165666794307997676031437842188510681034028406616947614489810495352300621589334750988094105033423133902847189548351451563705414585740808525022728856195759501782024033211480361860648294125030336734809952210580769141983414811099093879842589506378447173456931020835428790573171567915895248273776419963848934259532753800660749636420544527834541581479438569523892600143662572827986617083094883237219900977500961907176981374529097453167203379463303537388247393836282294098454518509947106215507502454686834272785722336224493671088562488157134416534196187167322790311618792718759554105652382251979413059897439776854898771792080782575642593713044582540130595817854981433155696924368710522158379157957903887794835332971128786215561048360829645389943253201586146273229168931210413811607275517127378682960089917256786137862477801037907992644492808660371600953726479592505149311154404304061538010592343947399668226749325796071169053411346575831586505326842827592667770074518039239938691570322268549361086517594860681180970680106708121954439983366133519045397660270852414605440299638513903913604866053822994718293927626302418154972769544746597868958586360881549266931874169632184559278241914495070613426672443071353194280070938785911894997434923109191609236621455534157797357225336679724632053683932300587208672433131194278789469444910689709377075637881810466121892594267805838892537694926400625224028927086873442708864373492394937360243092354786275554326608303031369832453611609767309868607802351596449772671185250376864734958600837461534343595647747556053158682118797894581212377087874213935346265863747121825372976222040974069696324054386137417164065268450827597563017148191327599542689495405914204760381790499814740618190382634848351782540095201693004642861354001323141728646851841618360716531383228959220794633685921822644056268318041601115617501168444483000257006796238285640768470653117039298484039511653509789302382837718902122693024012022957047104189970709567967768584630059877106253398154296068107683206946436131677650363046081872675285270975118594504445527591500079124690065397335028479114255572000777238149023238564242572430022352791115342503622965058063482570500754697843460130485443756584724016276214191048323681663465300023230828437501605742030858434128252447174131254853325804233817298323663583484352495776595822404344283101869062502616346770971060393723939322844865584389236413042790842536066286963228524312312173272358278274579098804839977962688411122458834030023417332203865484794085277548054950452773387823783196189242153052497399537015757570909589916037884300754159659452456702818519849916244739302616268546967285791240931339639048639189578863706280002297139948265328183121186649605474542070136736717448373996061233737819502934609967202791619792226787686335127154205581589913285254169986316295866761685597852002262197269472117986632543335212437406908267182474717230324526773709370577034954367962028080474048817065724864300317461895612565857424851944621067725870922058026995723988932721700930346030691505875944474693864799813926691346416393310084852029351730806441092363324336848367622021608602567024261687576164104501520721238799325153714006352912478337851584715857641737805107741696659533846240125394520027428139321768912256536539805258984224013389450257207960554789863445946190015123388011240479432076299518312426537753655201141095845554413282667377178139775039197717246778651158034056415625946570270085551274354010749819077432856198696387422054413969118122476500313611899312656051153426803254192372148261518876600049734083348255244901050772972366915124398073443983460662890629600538122334772803414572557061840748112810256850676547293780596392807714992340590981683078257011311758221171810530740552432567325501258349599170686299929037623642566060993668834678055406774011132505203875493554764913801804226345407317198136295975937922081648910148845075935708950641055740320867252313601988616688285625379894701971556069383945153762972129721478151755384248768528174937340389813847166997379362660359989436904009694040098768877858035146077765810762244416404230303601764236008905566648616096275622968221727451959372756575669222952226917614408937453954375589201450638759034507570641213450485259593624487339438798335613152258703258643742580761121421824002559237094910865572836123286166562431204343820310135800690716584732712792070173086847989992855594426522127334630095838652943949075622111899902777737756131858222544145193077257807379473772707484148296753848352146412598274854894936753903415228097587985337912111264836637856493894096164043328536013337135245950670986993090921131851693998304301161545943214677749292213254300464204697970116859175186100432885554726178541070968892682835412490835144643566623575007601259531386587151705414581717105508820627219121569729785178957486497993475922036488682623602243187039871836532772290744581018902238929925488218244668680285110040412904259109290346554933916764832085454198116120434727002274355993066599322012733672665818521172584351685285140854917388765694925918714760127118620087799889521994680484791223247625278146902925789204702721659540786651385669055988167181305349006023051886882064462325339031950028264368139015762184851633419175043407246527632145924814370227128373021932038710764359080491777073492145961927480341381381195163134937667993973191561748431571279553973476367134482481514480467377039761249549696839963205290458517408061797707542667071036864329949102654555203859944214520907954928272369508978428657419373365014796042631991552176364348953114496819325832472985711439339178993545976594288122330406337316197977098915326215176349607755339885396407060438978725433610002701893851968301040749549020860628856260694277167834239497885738911144344852777236230997861900613486035640315817782142948352717342139781400861385019970040421438396827290056304672658380299385142419847984157874674985835891792925640614353671425004540480458099281176088270764476293101793193345149538838520104843902187130100092561817555155088627108869046508040911922072675884025939074108755055486697845922795272845047510558472111715157754502162897750754204862572176189424739081697183430168573952340330279359571931186788229946254993016887356096067566149823684074946522995680287624801652649901643290928619486354868674877570383803502997682876863739065943333640046767561982247619312956474867956737172011443722919272883029518950332672636448762730164610024535226734048303798015698188923369796988902748377584162630306289420971690693217379230752712332676174119330239567881593407249955681050164556820725429291659297609345418791368268582567028042353969722761057104983290550934009943537169827098315507967920167631305496867491702748201830985533012372565437688336046624879939361409726609061195245901793883104705485396232534745611285544698368135362876737024874623693126367562828823278519824883782975560995747443114835011510880743015092253909289796804503323763337281214206375311933851517561760217266477802538267489463335105967717569912356488808424798063551085167590685467851479508096692640536312092892363375965834685085333458759398451869980153981791144206690491445158532347758073744119949417959670299732479649413098458853550688703718198101052962806444246045697903448387528970997983761318113648979678288648574467358569890250033967110162384127094897989829489846361089101491791582699175698743270676887036553247369273414481914570383927836309364282899590278496494762541772586230615369545555174253506691275688582676138733719114520730784418992317103537992765673530075923260372738775182177934041007535469922700955906104185281699549292563641470330194012587867683883934317583103386017918016865670729341457360801727269038943598743155523063568768204634568674743612065059143817674618601649281927744806115276395711265716809596549294465331886185953387882319545597562433934577613218013495962328213808174038879005515161897326809217265640562214552249765840666911023559313878766051524565573045024408971535035102621715175515936858765057162887442212894374710006081701666093933121508471755754501968841954488220510366362333667472917155777227837627985701555056093488719924691936613497571603102757147245648245157042827775530050410725228497570573512349653809447644377752709099055452819979071274547261896899713600286339566977827323061668668967508252498723235784318643722059495556135869692930494614988464407359709065960739330224931179185378154441408647741291711214806764695769046484415944623820388857706478993636872132097249798088239721190742423366293368765049370282799166134954176760976874478041570504390655191060584363108210200506426962618695620075590000463750515945902205593373071323809967934177070112090023986199919548203187889903126242583565821797549072319947038077867573607347301657532638825858821522087729495376274264361049026571164008407113177649114857930502084154210551777874071082684495120362298472597575074800595692179683267995529971258146124482389737172675688998282239834380140105787352719832291032164011821693225199660937817452869309113881665899648629408413590594042417135430388918479102818318128663937163299306305196150521467728049797465330092064374591753950545609954944190915917030187554095274662940937925499164001735928611470830493226362552776730828510971004106173261998326441590853312561184711558821567012198887759632936311785945937416790818401963552371503516852169966852582497292962596889917237927968389968530305696588191148947651608382430951023325602594377773987524061240608848365612812933090185993936648897264139507983995759346383455061677650560697536753737008356074117968675437150166040556630427402782763151884555659547550434773516578910176936710252314066415588969729066980014295489439344222318615392528353126817663264175880651943321344790875644942140705434144019744684321737451359676147358664074023799954996888360160472270611811998287478653286935112977954557132923170819949929933337027603613924235143989722576811059904248870116293989959415342129916899420257356820490322721370925123947020492864556369038335104812623861592123760048982282832898100956740484405889465583222674043370746926472805049806202272590662891168913821254680630581082159345496205780995222490950577632239099853785485101228492738972674234560062649756043827982373861931449304119333940692578313739087282319564368752775364077400488519834960456675434254706442665542320999067910134911511340105085688640788586101094749523641842805330531547170495875020140470862147304241575280695858605766656275310763943907168882628111745145488306573362347059450461266859834350998467379765150736960689950659591087802151352380814238878104434944697860809972443883301781327123232197062034327494959063733994770213517692511589949898819874777099776077987283246426397420073110118915676964643165851344753247327689252065786055506554778893608663087864114181322018892569806666542297967977757725955495449208005485235768326359126066137412249052108189575375635901174126258561791521867529628875283739469038914864569144034132878076868030083246059023461639817645412938214129267745967162252441433374803962423430835577232177291461341236109798929828915840329634928185162259271693829514697591390020030665635049669809148174099602910394139869878682846164761233978919166119802373077689139487746876057380540371839592262286701677422156103093635048561008170001569765523053788152262829169378412039651287124908037026033888591215606870470436158103419611111803969144705063173347143281637863666349943110375052340375976433612945434337876991798542409778775977095949863194038566259917490639068999516560015993681361559323688296106031922849248674141035390696185791751132000032003394640247203235681794950111496570989602715075241595886312665967848495517723484864771103216601433686251056840738348577255226656398692923916218903126367204182501372784884175534313393851339631104792442288122799897723872341047407956972629441242491225813546957701825772934479774589312024797353728396806629210690972092294571768219260849355241995949431911760761978523129061510017211655113954974881569358656281075331356586370676797592493197191111261151169788368403916252229877418905779181761675888591684144462839076123642343528029117955997835164216106196226194766846617117139335402669135791985142115665571487501221428748932999009969065632560404372227790523437549302099628145621784968410347204663493620535516226680404590833402270224960914586857981596752076085377032392101333203615483270665964492893483959803292420806870808873589261352191358524180343436201710951764244636366322659286061815744888092756766498668575687419963578520672038291763344213003734734495098322974877479924887567291201271571870648996843078392344155705597113937772950794539383638066566267714962731265009356582398883918203590616731682818196843394764034470133119794138710750043033431038495928620507053395247316583515088014605628663461413656301767573776173852375755656633154827647941727789529399960408803955775617654676316587559408614124683890743939142502289230664602964534003487417765743073653942741781150986268983119343399566445496343308131602223170165310790397234367009368187288706217785493554261394896073636261811810543631725499677123691022070450978143174798230368410846110676603128329425282252272541197921104394958010903568702481287645277334618729089698706945561718723407458548370045457186014172135771688371115465057481013731000631318954550128512727026608895431626518266339171281310297610643548157041344591671924280436389290195297983511754729751442674774503416156394283161302306365897508831039980288748437657795670514545099939031417738176640235847192234168162494609685181342325086173112807561522245011979664254724689101109743186381198717429125066025744705719017263235721880172637013331091213439409203364912426935596113879301943241398100738762008268912746346553205331347776747034101171567482767414082959377664212937902452373204198193422995389397161495215954048993608388696576770966948465454125880088552943421275142647002937818993642598249094478969129169069709347512421102220934860714567512742682579516522353024556409993399541328553016063857614435742154027553018356511888033870984257051392641280451882361136671235952851665048490396064332665259986704177809675214007096609510544964937301107277726482794761422757598115664536200901826774900881392973259549972741500205970589629977250902796115646160925408915417731503747015563574389219133961082557459811536152699685233979110977810509837677473084477174661364732919925219295860714483365784711089370787792811683742556249647589717028984654146537941644857272244053066921624750737663740983137342911359997515821222751508744530107397500227988556888268560091322133085722642652309948043576684590840878613589471112182589788601807380472081420572006019945648120601694774196776965880919687287262385470077745337481751971963855648210505810312831125946152097089260430151538693953596092202484395381001915108755868873972310310749489609321770898792899978163623609617287344531227878218038812943217384116083629890260174713547877353156030714741666978861743472868611818149813834618055195767336763295576347288438330386355683517218765196751689589405224900129412385461664917016104895790735158625701865398253508910279933340048184450457463207852723112886762701698571206476038527912577563590429903869848590095003490255349621534448150402699407091785533765163888140679931263710494313927025829794856933858863002049944658045190272130798702070460591531493760832448034015192795077069240768950286674663798212439325821607557426009366427361933863130741620585573758283239858387667649105813407537290306895523778161876699702230720192600877998976901906205537831786489339521662283387829327292183325140996918693585428175842332504142797407954593213632526425067375053817957388692348332469737707782685848069918178684801682721652240167372940636549845528516356478241579387967433809638936021556475371377151949640855804438915378477431619152694866227330414554280432337483915679106936186521877140863115684645936697083887857135412126445089939372695963258949994814164636921029520630755292108788963783025569952206467022555224128148348699693914574006399448156725980447878368689896147146713501721188430083404049410492973761955889107910114397438580816948056494395231671222951001722243398721415001074494159213873214085242283540137623602717236479337602666389509618024323888959275891920583770805395251042595594330004524102600599744749678466744606035481305846188146704121978735770994006716678901038819905165644720318081838841766524811259627478453779544812017123710200174001429062655446401268390367790783152121862981120900021270946317973380722845863750948384686904673038094921670283722027872604109569450684032258346522752491921663312905409435012219077749904189749918089641642404161095785320503101067442974052280736311626917651977570350452991125375890881284302394973749809889855729963849403725747020135862177648542457393360942397697720342242367654616673024326371013854603231237711425547089970849216976755742895069277969623008811560940114286842335568796977596616546375641125442207485360173852389545651666831947550626141010200662013912473227673132317628701908734429144453724983575313720343264612961065978298685220715970422396128495516348101379584760868641265611633471462558525356259574760730611099730042122503905407094095717685980464826621988309255976934574354797837680313053638784828710809949122038642870622274533713433965730847758485449588521232543899882709816853652561012516120733192886041423841661689820490336431342854845330015618580888331479612412433456333339505534033301466839678966146523508442247617934245961288682965414731450358076843144217947672719237528567813398723828886079276351584359534839992699560124375609538426832376950462448905847467270625782064643535801573357071584156759086314905632085514584019424070108368119030353086986687783720135664326867526849124032613983187809599816713291485420487613299197164432933128094441658937137356263275363756478475798662931566111081634618645880997663495892981848618164074179230218959653726562603274180367661359020360011303612498313411246649656178452706447141250561161395679839979405128507208354708816445739739667195986789095130684199064693281572776196869123717609156246768568196810255765407432604308931146577874575937678869327820214484457836487603361788985929277079645605396038169816863621143263542891380075187193009334186645277680704209526396928581834950064711750792491763557596606350457334273336586917313422692856858655153148366657416052136307537582803382178290932982808026224382149943178693323475284629764388298683426442950758327803509020908128586729293465024392551570708787335374857148312311824108147877485997120571622349903572444641577283392304398837857572941734629106138918344580669032741594830490280637114775753217356760267163412686650601819662430913223055163658025872323134542404117131099639117582312511501444632984022225785129605308008304361908161013747297828938230309077735321053186283039867891658556185127340682318799409887119839139451602662424014870155203215587492742901670102359486447887084025286423687617324394787871280710458228367534340371407750923862394680570408050983081106036668448010035448954996261019285509826309097730260875406835594446876183490804979215815240827267435042140751541187274673945883833896614505142047305062261887023200978254649568159955270103789263453169154109702243817613647366542096619694182834303513051868236961031053637486514593099352370780585117059483656699527328377236894905633361117558992365782053697569199047581331671002122986948469981685166387050112711403305401426488962105616946372897761849583044027160420734987705847110616534172716294735155557209989147913108614219577492264538543162367934549075141785213093185592494840911034132378593499750796301843793570789271308920716940505882257737860062993384854219814188221232066335533904960552256655925417807937994008267512465667336343260772372545565128059909031516474155046322867954312918359468247663345020973641867470028654002235889599814078158226605303826876021718243872659125989852361904266618232238303469054569997553988909945772096745793725671625898455452061394764207206267721574447836715663126646315538572642380098803703942266314286250188090268905644606182770919333012525734713262848391859144064776618513429277452925487954844952891130284550902140100458850714881374431454697423217400771206722435736283755105301291675369148301905359502133670839205741509515400439418423447016361739804536877282499799229351956174255420452196123444778054893612547489547467755634257438818102159840269713122621575974310613866725546194121924756296134035095095895829087878921126084767496930098745272953144542398274015435796301253394452829177320530408456382559087658302552303702483383289474169939336889344467666743225649048800731101123837603790037963245512562052661402637014517006040465223764415165773677475853659726035156872318707615326267777975485653749155223954025618042274633249928777433950381451358202644740139817347417055644508676287643617201327311752271582222222280016278394325387635289903465517948645726401449298232398541493487662175012718577445041814162981710123830523463236878898403138868233000257437211552925823982603895245234546632522104185599588311537636738472343518041002464818297795137084814274866499820369290946410498691358740539984640926920356638547188398268897218837152823462018654703146650664001445429678139459802574378125689210971767499343946788994445264885348971865755859013700593955502037267617340824994038338121919113496312262003034418888573551451808940372122560029830272313184488508910167293932539896030734789891266932412549781854114236403504448746191403295850765339079241857340539066122930501714441609939838938299352059620691600714257426335857084139282371919708731431322734776062732394814189072049900256782472151437004853204978192232502044205539495508454486986441340327072739493259368906347831994166484733269672139266504729461350458327709763180854287142022636801473173363269648134943445619927407049741551203007641045350104387632172710733158301281118894903864166852562095626323926033742174073271919694071673602940510027991911952177700697475256044198426397103442336479849633213646999262108493296935634472442926009109074185594426242674230605499488534392288901503983104537127654658504744486222676824270170566422963113829809818199748746991142831445240640931116367041468320121995839326038039384222714703499336249756414609096963994597600270674363836284856937477235464194801090078069266192241346762827392285655700980184336968363027720662760749002692679310111347453672512123093664106378222497219666002842468418780193338100269878537561467252573151527178437679279521785692300487359071270888631177375093164561049568577013432923171987648487269913431870880275723196124461832554312482879696507684892623923115831261853947358268253507390403119076439560521773264695064447042661832126321875013972755153845319221375019471758059354865203224581142683796003658337473571802762571376945583680767548332646736573428944349145358204982909133040786800463414646608998730193437411489225667133147524394553983929259604522677811764270313462665868578752272722119009932554738955448779907447470559066611180547690961374075449896713599445106801570471126009569698809937539194879834515871487449693095326502915379197995324496704356932193517009270714446441521947092307344197262051003138308266563888431235925475771585398120293056452461620513338695583907071899766138858479782640677321570187559812638221276881861655921893598531216332043152391852513018482791610849674653147669869445645808161031881934274353790837124477991511302373124997755621362071301258813202804309805617937475542889267521826716568752332938700049661794771699771976403242741336157047226196019930675815102535590488512009152519578435875441732033880725259080428539886010257080665786071610306406987632904602245613019115741610740134147093721854145188023870790176243338524964013333748398788652440448289783537664580760560585551456457907313964693685950842898974857564511797033095908103682986231115277401442415589494501093970585400537042446328705238093078563864319390028041762891539553933141870833736103974116680802919754110520883529847260796294623338844051227599479910896685498844647640584955626414010285377290866347046913198378392085048233653684896028290381781154416002328880449611003323849594642479547304482018756472867943041198977261507652142986335092339732265005029542589769001570266919363436558810621017878131191655778665626147951111752912551060759801560544314474100831745430446035366552033060134991042306068213270588315573705617471787894500043865611699928674516238680506579498321239522857977790260269605345494951068920112525902136962449096874262739224188731627164676110661616576619349679915376973747991731815459952039363456564743402592822042782328061303551915691069469407251488744459554672797770430248555431850310575494768107264308356423000150972604021164367004186615033585560361954885965877723533744592835249679463872434679340127224725785077336472324999146081732520305706204899515918137095653128758731930876589968876288569387507873344642318454547045913285399393716387066262007343475924673297078769560328336612759532897182439202985193034728845232779920099033749430692496870327154602138950388892730052874969133080160981571996475513787437201312696530801399488611764635889563140060160345384860591363796169096482478022263049746775600716144095114133813582891963698602981512757494123993880457010132727903335302966843805332840661025807718876488861312055847753883697765300837483249714454342087675491904985574392442506865916862454555481456503279521896258835700988096909138927815074938286285608862049904204910162198452140131700674747854318891169506395054523085502517215663641640757422632133951537251313811229805645079108546709994389347733320458844206887039445385066781809570700020527480077061786507405361783395118584779207958134756339583690968457354085570405917752710243018901129428060721910205336045005242712667163976808702401614635516394411853664274247088654163285191884150402110066398028380634004177577122455084980803861613297650620160734686977020663317898187766935467714298626814584399804116563963959678502217900081145925146364246657263012912189764279592117597376105893057713731135327257810803371273298445389267583812401754228043553301908312616008211179971213801769356972191686269235960932784650375732483393873493236634768385362238998125279787816441181272227530363893413698007760780520550948778087208496709129562862357058733270117509650005016439982197642620862716211214285795409421215538548573242096775186842656205583743690923747278697434974686215082299815713037790167867533980467295208115740000206436873116694287036964936373088947396671477590638375570312115127439352649633367391608929569168708411274849531907001515837246040857109715975801346516170999951333256080650115192520067608350928566521628588091648574022249874162769472798960909467081856024554515305777519570493112816908671507046512302420018708527625945299897581007804505021711749050718902457704330715374620777282630185684128086365172191903904561912931561836036504883818033866815195156641526599113189501954838792602899331730952599665803517745646195701848117043266094417078144708275872106805414566298216435694507278227459148700114733484611566215851265874232835322753519377931722896171145185444889529911657308539995041031044748770568294496449886594634141847592047440064784260796255463594001079939640448328684822520804191379043529816766557556345091039555364608258325082149003437717782923397371320669404213157085849010402667631838316732910411208345836960783298648900498486767753750819973970103813551243816576298179409764026506090127358718991186455367530029227380160783248436746380840448332720024810692204516545041910616819764082602975511818499814601640779595887337834354316755870501269324786917058361102484219222231565993870313992447140874959121409286675292097080244433539092651999480262061545007215091981906580480715995143737572860460587898760883205535730221014462880053831867383696667612731415624296713066937537478388249916442769354716662358942144263200831812518311888717094560216193751088104067334359919617504403394375761955783866381199887014705178603040187834038904664818646249575131989418073282085702086519860486570326680287329754823617607839080708671368190354952405012418585978246404762478580197005310368880772047379515524230282739880895744421577907553387091922928043162807329350933517638797373561103884344959034963459050808472411589286837888937139968491915982514334279220966922503117837771539851859336269474899330139357379473982542290934690141431748842001840381370310915274433790089276416427828157963425352033926144563440965324344410089473478781144042576111269704372746436071169917904510970300555594291495997597783175053879073161772516504458686444971343807295001435105954940890339363960791749121979623567324343657552088255718260846497329809022533591482327506190578288019852711819351929130759454038780588632911951463009369581810507159176685918003684721986681903687914530546088993132017001466916777960371389820880737185131142044543359894860782098645565459722020956209355131694507821441754436520134210684685107433551102896419493797281399826759534471408635834252037851823957067834519768651474619173221243200565321710885197486293740116024589552151386582650828170060750003747578979477545229934399365506779890180190260548977705035528871878009562902250606313974092672010753412595779694216839355230040663817054922993979983830414149745352149294922491305878501092665265416641830100562382008907647233464782251617128157880995602721509532400190568502876263511397469465508274497879401493669568512747761073090598383037079742348306711258175174575739898186652545915111020814908524917089057004607129711293343931450178925859796684562270326991990185190948227495149961363270674643828170364328388983890849861020775744376960182037464234649218538249525659397245376865335173407573455500396224979464228796776976259519069505994828555325277612871015305872087308332280760149025583235271994769154198733953586758527558996045801832065779646084912846676660425239105218071384600298472873598306442979614537257421416570914583693455020824080623847517074313015042608645698667293098798262075705117328804152518992973360775100257096794496104906858521296808877681269623680667992266366324146506690464772873295033026204841624720886364970442366725753560913443105203717155114450441814831221420364524162544029352253299072126572118155410008122544415919520555741774029645495403515864781203125754932378798488945136335591520511881449220863711432128154388078077939789476637715192163550965351579789117473250327465430072636340415563924944093985990378265460352061510756827714831604359859742105336713273242152312459152291627621110178884090523922236365099939850526939136310074619314996182491065350191576043110738501423672832163241326957134045544709922693137402361454371815779330213252324839109388256300982272020838289991390793742205928482471384020796506939315382885302222875626041332791978110211321529749104307686856071081358813956361524246292268909856238548089352829308609400717557931760268697358408072383749029333170796750930160320984502868892388224143682895638950731360529536885565846491423236733216911377800295193863225314032565698377641923868913493955080147924795466426905963728100936339743189997013138354816761003158069705497617587706798505020834614866964447849303469275583062887734742284075007109656420636180592466765715122464573372024505676095695272014762998440735536303238448406748280124086667609207615405317330620750220299760314984748347286900760219652588325352517329454923003408890028266474854340851847708373887268862167856900361180695515008319677391212172983707875687480471668874250035391228184416971952580623609913282094844296583915983304231187970937325579253860268236977191579206629118884830810402254235005184690839310532890235680322368975304666089478604816435750649761778496341162725667399371071713903763752443757476262771744879644458341567657179825035729801137821358604972939784131629642684496485361034718693238839560434962473647369596542094289173047368712281143333534378381688834726452464724894975514032354386076703747861165682685376882324337266887534280286605108645515417847120023401476385522735410567088316449789014083422444154962696329018502215623656363780237329460872176384624015684903773037971785482004162024017213546586915850148343078789381680904327335336927512090065493952040572016109090021799511676447772180071305029737885014176577833591823574999052038941310651432005737089379448992672822506395544224218356951817987793919574088869965868540091219970106952370860518892769209023415798673309286414123950868535653313570515167277326629457493450497509747565801404358814150744027842417463672035317409564511501457466543590822680867980500185910193853986260825204958263640736201564822395498712789272667753539554299197602144339975486492838141790418024096269963554577394145648439463152253618595494310737111657780730160271673766037858819703838349578797590607752343336217584827860550647802808895131443665015621037980547395549493500411834326172311560079540997682918915420483871080178154334788499642916076561030087810298871633694614651052979017130983552783870193331876185809518669610625237931542749007878417830938828586203643591968882107489347426301912576503878922352057570338476362685030828324994835547903302634983544193559579188740264128193558798287558934936474345851242266369391656237202566719148766042866410222569893590481242507749834070867354710218089217603866090032914136566620302984757411785985598738506300356617518893083441084485730059074110217021673785527498687006387738119239805590391141551034189008983681786408773755629949188602054926398662771391918865035804510612199875438271343956077184962287341944966131184551768424647281903688231977456997502392462062660712743480620396823511185752943339916181700216824333045937033445826379634593907370545852824490337123542890844947050052242521295384233102295242424655969949938507225183142534681358586084042428862891493202217298823947348639785827634768607151425010237113057824971626865281109729466716294288612206228161027397563308879640063262534219747856077844508354827365307561185541233336943638507566187045905199034778467605561520335637022874646647774214114148675839008835016697212572767244165734225969867441853841862174388889924297423406419802809719974146189867637325751238131109096609739969418855175518998364829183675659176625212935863720957276294191125310509422486389021824041452020021712305654455881138690439977132668923349098813273637136013587379486237219705988145274464183183960278182127319463911479748930063823052023334402674086895873097479734654538127806818316419731113525166701369187728819905198731956923876719511765745744991914887380592266932363250358910383998155690047740890423456195615278683038220409561465310999855421113319538195831800565756931400401292740209271954375766695574768011453659172253190471900277563235970658056300383897487916265772401016172680681664909500754212139455067795210050684258226489070706255196310052892137241769946991451913430682529820367248395941991675468197105792094103342172841957101851700119520774076449255978271479893484330120761255961371394268767185696355197387178649607473638093756937956274606733909622233444691828285261932913873721439467337533469916194599723795849606266785745546172627854187928063081391356448556076762182820596718370881386722005779504011076377519453941691881585976623946696530113362930988509641344648223523157998165159282020770724776253919686951155639708952636430945847982791125032434929717198146567115133685920989123558985486266334422368448492909669296955695499575309225270605236886340477903507026470026808868343882576624757021748282319261028676045895273405883031086387416381234880002467281483252065297456366637584804792284287438711439490453260552235807847133912059000645999928185530025186071683771362673900593385866560321172095563329993249074873064675262321871504522663303253447823629927026499463207316195907204460044183644800702765229099048158762079432682442548519240803924237575821525314650282963239331711644371857342994801077527375575224334965680589039350612884016240910176338318238931375212876766803259373415641972127450882829189983467362552011482152228567964505576990407223388100783873656748371916325024948662376057870973996505012379183713787987326049553447027834744825582224396944005058489134339236147826580698709754809258363709164925505222947309621733005025707997535135629126901081204965519584129002946823127152251883645216901523831835066776897616130014774203844044655048616782286548027207705044951422424432838337503093084764687054946169705861632607103119214998029181716853324937076670780567652994941632782002996713644874352530251199339626718961488179678356982917809758984289166328925298534775730576914684081900001734165565506846576158478430899555033374743577383086463637584741135482346610882872037140292345194938297391535526716488961993742262128164551188601058196442075848916000986088759910990617108289553851069972561689925660737469439435074421688865721562944532292721563513273167949800703180896715491157547900064159020195917182203320789366613114320023507464355066948733441475388774944903795458407496313509508081433209111120166818158717009501248821962897650318193205309154735112754050021505601315652028300401868129101182136761336969871007409602583808557757011616625232433670352001893809578140159126566463276364556331366538262250544867649176360832871679066356361333027065498290439623271567357928429321396739353036146084061897579454578143551433240075264116072123041666393842792672399148794167190071659408105182776132111998784969631512989577517437365192818932017228026533771415038256381106105527117041943809941746366901267696128239822616291881599462802687719176899709465819303577305911573681496982551387673644501537163635906374085398359677054732910332870252218907054199000268630958109088836121935902654190294603106695964153322614198302959035400198874442539361098433424819689311592672069708805593059276976512878949392157867223659899613943001309831301671393696840002645423271811085805723678383978715071960866796951727550740881813295234701206116560686434752277368498427804279120688708086933493051682976757871497799117160178585918001188931604412381792848256793507503992723415765865754266052777977733066238042936638441357265235249770469974193827534453340943640448154215338622363003695192272029872072134605103389764110091816355002823079621455965056644239855654326532082973502783960126134861242153510306290596468007172271474391640439443496541063065823798693739109804714900070304115438852324841144204858484086993353787116878621508377963095077698596044676136903937941623756412653648930990496708891801916424301994003949905725329099727098067664647322014022640470902224670367877367145711522215969743904486338910786217365919321418919523146645465634142550752006651206489272364996811632875139786439860139166775887076385120754410078681866466816840012407896060223432205029760018999455494359773500378555363714232790157076955953019771366289393292695084804634509746940371013957865399509105901627777469152238600122848937642369136306279091921539184293871650405683723515712477411919197744076752530215295456346521084767830189821416793662826000907706289522519823207103861849599308080204304481743449433760335237179937333010527497318279450738226498715995872446371446548209206306320636144036764498788898362418751366888378419403037142888154242141850465296418724761203039379239864877811041336472882059079679887949989354230238677178278259359892107564047180539980339576003238562378815129093780975866194188602425297571030401289661925262723116551237856111041659979407577805330210382202784909239682503996944934350042919677220913981966276472496068541597553772452370542122251035978231146231593678766618873774994388364291515872225893634971128843229406911179561128316225166015442222006622468937898636122029313216999079624570183052272741012836438549193501818800191586462436338165352737538658211317947488684130231811825004882794260959830109201643730765168950865709734567356037371983044692340545708666884308928895642606911836948448050354418436601642791879117081073746619088383690398963516487713218779397402952380281959407903207501621927752038308706694945194658273243559015232218468372291336510908253604777536005620352841380448487692448071202839438707335353361515217665122773271641946871674804867652448451323355518138281018776121457353099615795827773609430404090271208171680709810636043450398293955686875817276844054475860698512903129959109326782049069838506515193255564188560169230728906657572275409819608824509622196203313635815352454816903496067474065208835875569655339919376954884207411924800046097928688951428665618976331646368970229362997167309828934367373511238253858133977090778338097001157705421424526488195121012052095397853184242229949857548638922940066855628373793361279715826455001975720280798359935671246025780036623152107001171599433579900219254660839850071277780275429809413865191225312704365505417991122584913741809611198301895815125878824747864490335020881572165546110922661295585082871696922856881076546259432528515323244734516735045983231118916351092175439035246131635260539713228174388048802159929248125169298684664999976008484591531817138595487502843497498243344723578289553493051450327688623350573321935515360629527278278460795692903323490650567014829374061644524562858313699404996353952867143559013324712229046627014097275853350108400655543196515924717354095732549153432777165008166497405805650855025469276105242045422512440330622923117533262823722643447266626420557619634613832483984707649050866973967008259012532636142906516540968283911871349493315321930344023502179322979829274726098442378866326343812546021572879212621325787337143326323071990187288626341221982880479202328384710108173761162139826870608184171093707151211708381550485046529969883711628292750361244519841958135912856992887976172786172377456214259036795530044529908728948926941564487278690950061957726293222621224200747832561089400276155726091773744449141802837137465766147165587134033170196618264860206946692156409657468896985446467488566636606455750504719417289299069696460821210599639254888730268458410578627813246485064344513583098822813138753355349129531570105744253737091650627500893265686888292533691211974088386874331795982550785199500680256946254497793222288626148718260082598904527557730640547981119831915545878731534121807625578866056444224168336432300271952964061529947182704535250741438713508151016314566874519547506687491119580247035892829344791729908226513932872592098132074658354873796227679628192560620801786505121372437909238711908828210497246998601578782866823245626148074827315097882022207334015417960781192059734710045682697014975338552375372266007728662708894208401458200807038077154814873212673450142272076780148554011379920285446805568976384344112294353749769346118291890502507151062975876645076744499526246951071917328867301381175789659616784258293340587570212496738977910351230755522770556936030387630163286624535101863132103004853709934349965444191521774205122907446536166121707918314994790590884347320603321666906425095588666547803074567038643956803149548842197738140449709675983827381128360045979944019808156553027145884671368478013978346812886418387224094965679435195673980164541872418512211321776494148160108842308131710507297602729083912434372645155508989043483614505222147553925476157999137839496246214682628848008745711068805290653628352858253733534074719133158233586673591820726338601789022772970914901158979266257436268746226010077422434249276815938218659305210057159478235877769536898202014050551608218466261182502515527780279845643305379496369628502535920722664097290439666296217157610720739443202258348513377249257682095611596355753552071670574396910317136959777061323810655997334553104346007470684972514403999913543330520621785949339612918683584705163274212092812864011966010506789182840872625884917121019425432192683020099893297565049499695309169166264819636027548892844772645753867947893194839140660773046145812791678423529895796169094196666269278001195145530099448095292771994429658215057646728665747184089025738173383908464773228126894580941319956479456452457830726559488231181352898956028071901041348111979415852656477312547161425670081790142002776187799214818528321278847420860161376529224322997935114492227400764632168992092291793292702342464462123365723277089246324659217074334093103552691149096917848548530325694408914569245432705787992529369982344297264171134220073945262380562901858744531366381404051868115526120305597766429616965295674666385978671892916341468311590603667816935448891596371764034159418306407192269152247634683284328189659885494853779747039958722494318339071061148325506389066038003142616856667855313296635799583261099356589072416585772338486737744301935978839900821108259605181722054351213267628777297719135627324841240948661122099435549225506616594165375194278838288736683312656983043398136618796965697223478075194149108532429212114938661547945719645238780408177939790117638378173199378187470166323053292821933504011432322913505256376244613337939158021700594704693354788491121567171666129373809116850909474201201324956555143435339041272827213962384404808870174642674087111659582090252013416470032920394724050169144554794111286440296853207574103717037339680509965521903130801743904626661642685945573416190941009911723242903609989809940446898583493616014173080505711287749939394227698264756542023307337384713856893880337651584354165177258724225242560833630030701932610567494783876666574962542638277453188345709068666082469417639218936104480554831980495961417490526032048220193629699852118868921286183720365161763292582414860768774302415502713505931403276836611354145509232491639829157536623558747197663102219344842757265054360679634739797379245586345731945816588226795656046176214059651667241226508022818912674720190888646201872060069626752366594229169204036403442996583414726159363169844705192866174700448712769287405737595366455024308603138585405704110796355654467084911163967501515994595283359394572057652426476998230405896736002834784104136976148625801466877756379855134358333294868922293380974438208931928435112895792191024711358794162528566057217451832705488249605709328721516697987893162442775646000671313431675583366423370770442582243959685313471224607178926321204287835836282812879491635326593646017177265471076680272083179989942001784534000392825448634122504832076891163925171623208054896465686350012885907019789657137802081355487823455025007072487005817477556173186505786446453611059747925153305522092316582912928104736977368349727310375450351685670760108106086732673187409299989191078171694327166239760969437520674037413002620549862976192733983786211924728974393958301162035720246825756277497515746107345008376522591658443271859429056819142344459036733874452829952400546534310783267686478251624671048589861879820500956058894551364851339548862486379816027998601800562188167218211637242616207702730728828090135198747590188374997287584414285677660770876227178199363711454769656823493125229725348854547531345834479745007241264399227513554805850250638326007588543424845354458730516514897047343711593835296457183368075731555465222514230516899123457218492356781779841210645388621720508116762607195630618781560597914797530152112422282331734953778673698591537249841271567384670638589406886112347926316586495102695621785289306069999691850925610467696126694263513870685139017789377713250733671853146070555788673310613663898964209635078057218589480057252536791996396815899749189429628842824333886434297521025361108907832913282445120743663437320531279427253786383869673740616483081941509233828892841470747185018682612867701974505490133772944819708907231560520415676724016442284406861525955657952374938596855681022756174957917564945854494412692169711982943602139596226953257795269847224891265774809970252688187457382485042693502847307722207123242862042843456055955789588146334514165820654797135099544043867451846409503612590807750183497476023080511502037569279774129615123407038783754759372278395313040127198376530767208980640801103098289230425414305638542062675201109905213058552266058271447604561367417608737458307901851424072443932703881984634272354107629561955323294963721544139106879687200137474206196682087112961303398015557474477707281458907898286941266920346593754409899459971354304603081917092321045283194215335361900006808334995613733764983789092329433635902481645071351236665856420219358187401706748967590654474978213146672776040958077964723175776449257894975470772588348093126540570566217813179265274792335008600971131340414594431790424643108098916412498425130871930445817306606640655704213515183843948571033378740291660957387460664324109526423543234557399604720544750997359491328248767895779448900158059280507536035237444260045497972377481523621825250088815268643010649355281228769036190899325594839167737728148776554026517852761666775545396544319718377960093499902998542112274225042590178138053497427714313404714262566704326472540316181533379339023653893729940926722645152090829941302525505274267199708199965921806172787810224446186859098246962511118564782027738824188213826148495255419670800814767506201452135303773521861471290453902645775689377975545810097835222446060132835564068655202067660022138110907723451946387205481587471108632686208672692106824321768585299716613853560183353138973223047809144918698590643998143826817504572005103447836046755633710964784854582120564313077262218409223259533665153965848007484345187210255063775564536201974337255846547477091022220344923425736268123635760489737524343384999910134480197329220830476138110624009288749455797979041857732069018272432886300392222244458607191918029935915117246179590597482385277848936547700409302439568411269203833270162807591701463754564163693989246010791359703845279910824718439781192642966750171430947727051662081164210402395009602818100214150048072327979239693957057185191130916822954395954035479802367704170951204358298537484453098329118689085715333578597684087544898680733616122121895380131032185220564084667259657181479429782201908961131890491405904718739525691881219296981262467648176772112006016348412088876238105675291696482904816071915115959550668588746394045276196008504865266565180190727972730175636524153346604774609963242693601998149537079598268071671817204799882587673713222201386983065853825384409716889712553507873381683237857847071944701682212304089103420372949730442993459685207103697954526872863786205974434212080639688206923689850556181277115188019901569677193679491147757329548640730153430932486286997770361816151895841711281728937876486279491220354505134010746469645389873646639567717001541329473581139971484436121810364866930212004971222323744739176262024951816495035805720020567379815747050246898441042011389380589567217092938324295558723237252797694203408379651122362502705804020103343807868561026637366189468078943660049920500615164154731699406239919341209067112077597397525581483028360903771074241021364842470542946711975992933502971183453858791684534243333310263734235025645355263296359180529773730031455819737957333034441544956662979989968649301880450990873277718197129977687360856992642169465827626048125497281531634778854940184296424363740970311860684540464641385406836402774810950851149078563918374486680634599465048134941225415566847370155175203408025370600326171231990029258245668723976154515447138403636695428182513095859347647986771363614441310903325534024284790125043701403130997064864690258905681248115802793191937842309997884265478352421156185720849835483273278477361989758086314825358984102635749987781706170540130664279528574958562113830948380819351040840144832059229076558085396179095721155423057336794565221850997849437113876689132994501563930519109167987902281609886182324695486303767952608615355604522357819556576181514377366663888097296322177661137265899131987367571799632728294067322922092149052246956470730052985831362565152610610462717755820747158107203964792686242290477494299089597872429891206255372403651595455960895195945710212166517858036807019308141305507832791974952462415323234817047569775253417800981446640723983246617927601209768630507213667097851536475920323926969267605091953323039203326534702271999015988982212314443599247032537515925374909195486842383125702145693282949388845492738773391290595948664381375673606646851196908195108627811202504605387717256557174847777077183715301097847069666741814230606367735763886527010785438354466800308896144419153527542176057688493607614167537717513354029680280650923082006563192506547454646782769899283448599950864244326842682279342383441450075628952360712240388977818365054746461085585519095469912417692905378272135870943630213634584538137919938201761425927570512422685301016465945999143345784616549370696300223550718741904576694163993145963916236535130786407397814299599946026290939606806396066546692831054038590817118681958608310751018974504444656502026823641807657816976771647153144949517215496172076264944089124232319209736192731042862349193020473985068523009706236457382991769538088408335102964773948762138544269523403488562466343180317137446033879391824666146904989993112916963091710704840017211096238130742667551583996292639034767467225703045673784544515219376525347490454296987128115019708917573033873192596357860901874444847378760111001040915453383435338516933744501577704457823360213058361635483320020139968972169889329233723952093691746081429771711586658884350818319518885111665722591627018697531297482485896663191842326893707065972985054520357791978143605713712827097803164464043342408704228102577131793970482332630257727799123838067337959741061090244544088973227583644435521440800033308629625469869375123138020607398023944510597606315404829124266723969964507351789219162927098604377807444305928131110115417907768388295685015019789064703799300645081141064002492611627062940065292954160643007372055669713112241046795168277465731270823794528122178722415783467559771293459032956112967666993259960285141606293775928456064869016111145649699597914738339984627165360010011487532010428371339888846345427209364443918765386034156800997234743333587308151646234140007601410349224902615794914852488966882745156858692011181993018209421660740803317880976608464969350225856396125527129511851868505845851483623704381914531446615666583591129811900739072545634901655794355219762835342365423873095996627561548605505435834665558214321439587530185908972842153918317825393794035927924899192890411139643181956563060349299531742648933465341617688515372601185451299846956700781900021427955169291648342920651613302933190058114237548976810381907927613800151809919050309108509231203336473454414815106216932027791125802841564761694111788839642481660820303394729067434740659141034743569477936966436264967720814726837048151257290129166281419131789600525003924060605332552483107369473328569410783119479363390957909332347420468866204940779298708170616922301191983577752455516609178538889756692425261055232854113255303775539591762411221335452042864097952836863957381235080628054718408715042264937843253903389446533362927235939305660401554334630694380907884043229959296204118149304552285151583460995285051065947317851358938331498116520102809841220188031458616982425601867376617967611065832801108382341612702889066023446556662738869574651624160103522593269011401492096335675156383383289099089845861089067650215540994827438700316202112208983708892448334111569704784262792760863576523097709506248907999603002071715642355592050831626533942799907993367214635990262340406444737736823450276262913199779951147627150430679910791562730914370526017036823415597192435340711752917730858446133188557654315542317810649341310612553970916126664828205101166283022994252953628484798541547882042965545323588029064004356719984711163856918443533529600753551248470876379115610145658037208035810360177579532060073277052116071144816778609810609061431631444286902783451398045168970348604096075240859732154913716548374827746249258231360774071037327790333032330983631752073208659130262994317273385367420604164855373782849853498102869611037336857395879651228145940339933282646625750395356726443264607242788167205464854737455749593015871791881454350432023357854027640893469369361193893910019299030367713239383244436942622955617422193162223298425053937418267097877783488888088628202243709035263742955110610481673611922987053262304198635754891690062483057050330573224560118730110207584767935342310437761212863878686961121888148912317796462272039606423000342656939937694930271769186476618529624316123020413921932308667784709594870797471380769822212034618121231426768752955187543935087270412329973159467363268483320706168278636161532107926562866879742070895260284880060586245822864754035861180631713873771472006672379555825294497046308043338293690109075623748355550548063630461596420569497369732135091278448613605507785844646508986745379700301861947697714860246352128120654595764085678263864741348852140434274524165203216111354018927685247598196338809036774741889860969214016842853640234073472794708311947080453951911970399955507325413616283827029107129455804127800613450501735745975867821738764778503676631293848221669775250841328346634019472683128019246753352002443537741541157841351002407638092106167406589679780720590834326371869930291037117882154667222673108712115812866170227977195284230444863730079212951893516882982525052284936850493761574286783187359523411906350793031240178072634475866132152392358882490137458610795816275540836049004368445293316733562160806513650751863533413732923857734566906302966478111940025112569178167798326693718132342507224006967693683144740953573591448527055473495027202287056930449255988061022688303045410902681513423077406662194531002991281468649607355026013984164971496118479072112114365819865648532906759554205757288012290929294185825167762111315729945162926162577333705783941989495125872267278699720952151107329659902516123517811130918634335062663952702190038624546271026417982965371788325587369339934704273298341323893113253151586621365272528952183224109329615096655556107234116567155056074831797547192429053789222153533343264715569272957507157222906983645752651620176670583530115343633228999280092533044393138211469673324597649934166879229516017055641004377973542716759950761442144401438734008842832408929415368110704021980580801661202182088012213784040049664981331045936264657970935787917442547537345414797611886861802095492177724564877282985452415205906147492571682653526327360767629885113929483708340932950275376633251943396363336685349324465953608452702114551446623073744434511586143836077754805495407142372310901802579387712948516438332901408753009646079072035876677342091588804008755362160126257290133955633591548068420189155914825484602396286455851294141312326935317224898122155744470929485885989887635753790715729032169156337470157518367094223661008784233527874736817489022923421971086722601693112136145522448613593649776330763467794795299124930885093036743379394891996074656523941897040660466025912020883344172211809150702730794225238628996180801498426735137627135076024471493167344547638572061562687704970113967026521110979962868299871819207440901381730445070977073294276790031747056459292686112933196260277627968444073044364299846271002435098237341426652439795455314881524967679252714832320079571445516666832768799122120935778276727654378027862768520674294298445136202907038931392839286354243868221985227782772192944711095974010091102314950592818710218500749798892670763726201144392713626213041582045817670093713320208606548070508602190761564353786800995513010311473711483767044592925881950639364630191950535122384990975597508474151977278850667981480194430806113560603487465655358068708466428642129004620195389848718948739491422480275985545542495785022085305043472632823744098446968052755610764343908788768261045366995384774443833993811952386953987457894316547494330935124304124840924210252040715930285592487701733230972082917508881773407347162030281334248842831258511722039750527681651536672495391867284607060482400666280346956883869675409039840752814344652845857612779928188697740595066700120042883259337593389906725106647211864579483651549655110266393725072416185528578712253708517512552804569237459130185031050454901515400670881103021869009934907292825893806572032578033523409080326042560058261245364480911088054793081188451323115571158736900268582339894514350203102939357769131016444229869512697724332660877938086003002206230514561393618726751347374094430517985536691725377633171849210812052760049302059940058830569576246069229428149460252026611319199339688032740676851501839213822838788540436249482618050464743864982188169022588928616911093950977789304529240013907070847293628319288722991426485108913388864184025914367348334294272194935946009234197210095012352846692979002916901532221921803099074888360845913487101286898789902579748403295409651765147224800733882124134179946989373827157296584009549252027352121016250815449017427945808866159187709692898938035092705255990531254043596302683803880829210831789388130719044554055679582437528884248417002556111647214454198693702434872856046892875766338213843064038825763446189997679250236961510124159130038518880674116975827492848473557272164182001554919579669861666348626040210337331392733806268907273452809895090277666597968967002834246562824927984477261610711131644017855027651794610194822797544603440687937763413083318370033176988799237597159857842407414577398596120504049418079694804770213373188478922665523668371988068531835161729648533074841500508051716138534179482727457307773514958574227510303016212235986468809870872254790970089861854196717520209219210696564402631895613513399149658588298459773691398819357647218132534421875208106936405941419878341910282415636609725328381736563176594842455417821675350951850754699463782012321240077793450849542918910432986563232181118858318100603225038027657684349655294035585387275814710280227771117212386208484676140476991188257627639322724539410730361863243419587277623332182812970260845698594693443868858624419094858049664217858167422531621105700885977082959111652245433355049498940854640291140995718807382426324558288209060590523886850259978464809303393810417701551878245441890511110437430352563373906961004152198847611976049178140102176644253003347979644888372280359409941627274315875559373674590644512693986327479379816631894252421842159233626491656227880849061163619979369885242459917686000928774953048346918361751810499165938893209208088437195447621320470854717891373093465479084147794595502879811112469014238035171000889539365108543909643780522181942104139114570656032190895862174729064549171276727132228721943040893694449096683410999346923524556564153158607129432919344376293897742563090274757287233145329246873597572016219624147165963418282714385680979812986475811004398597387480923547892668485929132194219695107082123676258105553357053494797636759800270414158338951423742542026690096536230731922803193176540455903702822614355595502911091545405483383168105097301941043376025488072894554827608946941183702181616037039714558218966226494008540198652817482387595743075673419911594081493876317487291139624485126387663891213497514519333171356006576952579399243374804744506233608574150579871831281547811343927976458736883412171790983235434303917365278921351080795346020716289129539029513353629991010406832258921548732372235066457179489719109762686299899412174920804450681882350373243869567017969541102841328353608711628441649199561547062923425176365149427111336744869584827170487420241992917918447767967287508317732183321554625807255355382516866582426082557751789098333258629634822519424866888364565184923120243332218769720317740436543882868590731484673050660883548697047738319848577366359793869848621650089433482638610275605911805554454069860040322882072408509524115198116862754685717542921722358110892718342372776980427333397327432175401715751069186999369330530665754037333906901682597535710754950006582280332981147682141463627195618434756107257351479463773268491623695262988775717605643319417708333216334594778822499707633302917668700490873417954082246333953290917443195888969819372701906386607097499201689417984621962623259406752908596971344586930640387833386056387803126317022570020516755938270776783024636627731360933537661063342052385795559369389214701842132860694199697511540329580016817589763277658889930494512971891989543039633216644108411987167297594912687758939627482755892149457129451506575278504158246220189147650750123982277994470099121705732300625146493576889090738732214427720206998811637922847299160517335938892067244898827237657173452257940164022562423917978795472497033903398735518803579616411731639863706966276897221720082952161813199405474725492326610679825552028679099903702705394517765759718648828737068945534370590423064420521145711381472165115090946248197461671853845763334930111779917073175943156396939310649165718259984174452557736272672361080786029041790509809434070168799306450344265019267146634903332595781247069114943474823077207420568381844385081898921198245831885388445402225803818182456639158641540992765107514658262176388349050273442888501903759464336061506148481701157815865709411115703660662142216396368830128084316434320678026786761841854156404748466748997852082010492129049736534197674999836411140010201747422341913510038770862730795106104661563178638265830448966104123240187874524378929054797806318767370032516993283851341116914428725181418498639739002535837654937107450439744540609454375377968117418499513768845436198126110503079444626887772886337727037825020412986096745211119751805472253564289780741213261001559042126584607564482071508909879080165024475543372901855783503587787077463873474043105446294279163782905531257227265733068458964464229910209049187604349510295093543383952430469476279416859697494794767304586436975972200006612474957240618012463033856661783422337618292844865242306733912342336729791243599556841251574147582679867565771185931412079467934647010689496571876720659111703834131590435835189096840300623382731156490459247149987544772332799607227875661881173464677423025361958363741522662953048300882891670988834443403126568730614784067194620180311863189467099877380758761548531566282867301396962677980345540549012328383152432892873543213194075803799044687231930778331882640793556881724569056662782140467282046395226762728679750121079493458842778715991564845612091323240996506771927606929700346891740009018754913399662390000127340307341384591373635835081228981043217559887763814176933899013652789538333712382969716449368504294140184828126736432634572734983922536645845810088879101126863280047167502551470652956251026901363864258364403746951019670877819525358926876118790842160005051944926481507728482875160195439482438056027138138080820207495833771254823008778796330912629387248483223433102309783516214317621210693653137342460735063210102287352267772673995454309580083692775205113165066624580260300242634187574405413168977137813903281215403984655616704697790932183161294563543950318350700845033711331442872529091911416173338371289683320130938173247469003707526433626428743338479443135186705792319288546855624955394174710911098925663156689056925231171822475924104673374736088864102571157447565902787121297728656529967435628499875620685364547717055521412818828709829610863183776341718520192572376800534029697093987027031836944643278731041589334993880019966751336426276948092484400684797761365557828996272213756827992545588443462630154337271512212146713149593469937645043939847287042600748981234684066316987774263969012435967925175040234470469695187010018053255390034053894123222851663527168833907032441798136311006219160691901295943966423215485653554959385120089073925528546665840732019712053210845648984915799052335359733255114931886110362461852657975158178352007122653419012986515006644277365607957671417178444313505475778585274585665910916801643574483903190269508340168695175964537811986408281041834157752572556324989554192978799502135364787831452781277484266376108887081841016835881645550952618707889775614382462521710904071657737534137138057703871816125245955176656250089491667354642841969860901469821191418385677722022897206438768081924121849731060544452314477761860929271668165479212569925088899562964967441887465429729867335783948644110576557980891197775727041240745432422956121799263677619450649534720497724843487550385429098789650451259143725490553054960876405549504452403820730747676381565921605293205357268921310320679089258490094156490418163932656938287649533000794502297671054857188943582285264903534349312278348696513515118241074122182625275608429593861018734046844442674920794746850607451427850218766958768070663885529595956745751314832160881530759133134646138694210396251116517418771706816067411410424984188122587726122533871465207756287312473177849359406864228003531111927827324731457059945320569523991447399943897310313187378691871148267973410940455573141891935669784288195781850694939925860089888702609706978378431156893835191148145743187618845442564594860817048920223915907246656426817470785444779358361941575366526256494204862051601597581171411932933544650148922281703392879479838591485623552968300846409884626818808292646573613849016702114941329747272533079254290404952112414466830933571070230722949980932301312867416483407525968513622390260286156023169323579782850363336043993738376130474409909059104679874768238559191198309437125869786860603002699684350757325526080905985206735517739473866939197620393831997410107104174269661995041597001950619747255913715974544710871578882464429099401710227453022799594351874552000063317219167197937631002069626601358528875722493680534759579585066254232619595597938116106846898711748966970306132226060279618538581272636187446487289768419312701106822795653505457180005635722221488911195639927564697781612786036931511809189123034258828619356138849232008691872224928875258530897688529475116686671275208163184172606331421794624168052690663499099135662038193971955886311545813086044486135214781037238998553873385215923474710197720291982891836454509604413784305552429381989419934408594221762387634783634493298266221904375166961379751541712067488025010455182749408644965810636906949435164432871246089862158954362163880976337356130388720070215704635603669832420404336042673917404607497215628990296779373075080998582843044476507555452498678193794113611539595424788302809276745534867702761321273712417913525305466122883603867847514598556055069222070144250591710180004717778178021882573092578618523781574220493135273332721418129836947484488678176623546689799490760268569936496332203792736066400705493836878690441949881589869831644992545519855643071710067311643750001241485572023183509391414731382016835922724946833452715489196485823180754987427117832092783515223207501281588013945159489334628967585883794459652538582732183197533242843576082681644736366945001847901766378507901740327400922898748167795520843668741777296690405526610830543398959232830444981855844407324028629913851583277574101423027556842163819396463975464200448392046491733622256694229727448312820792714804532839675769363268925507445075220120556524476945426864510872630989274610938766677802724454501803015992420190563660725089131630844680689973000343425549416318068407302709387334025363010434308051033823089915487050894333976517208345594825365777537537506594622405207267341084599364743406832399827202186508516669800271171716912625753670641658228231084789165786545489349682615732826321905853910618809745397706584628647972703444488105857823131897725653752241113826413376357060386138075933077597569695916481490338930649121674402109986150545094765954224506970107727056316274271520739113210637473784152141547902388424533256554624019775559974379051256450696432962546901859270189581562854727956480613364532434518683317843766032755519183133970868691821300278233212402838104193247578399132240559957241726077967326934406516966010866840704512568311398417644663793648849667460080242957764836459807932106219583000806694782958663084605652820756464778769107612658510709945826921405533939423999295140727939208352939830661256731829870977660246107813093591498084780282835905166220810866100235309537206127760433334310288439286524369839677136617831758806174599086888000271812827421289099764940666554222069308875245288261597245732088049836049974542242926528220165090299621746265111217010227813229349173420344474500507504953953821919937402811197748959813604103334801435460730422089944832790116167010049231866528179775761632143013133840487941226593462316015447873116019306451482908451151028551909925630829631867226499054811271355401305618386249637153104634497457767815488140350669521344251281736644615302597986782139599740856303264302671796831690729954606642123597042490107253439568088044638980295434394113839815982476365958771263863579836626761426097463590647233485883464060343734650172633321467951462207248401345319605643754592092368218820427967714162981675853399870149577709827913286890958556485969178567396588520133003182729255198597095135870227532406723920398060058136973761175822217918270529675286343242805268802898252762530352786315238441413730389111224567958105121344023938939369619836494258672365824617836447413483663753974001570527341309321871992054883372919532053567985647119512020772764181217688110539310460666194553082182779202436322158668194753807751687138686767434645841055058649099436596735202849873167945711422657189980262918257553628599163800184908781700773408465915723484313984234594858729650212257508919036814212739937362060273767990530811605078324179362389955857697061161091857551078737566532842643109592679321574772318723521615536733763541384588643183849177364236942963955941199760923463946397738485373708982677741207314538125219132912981525728008908403706746609006903290155313681020779405655421333951992653123169173090068815634829082418930921576707924884144835562773929741367376803300088752324546617914749702082768221809378231744121610568119545320905834348266667687413030106183925381150039119277614745968879448627977015524408719247879154567543848780706267445080258616530933516378575210042272072623941725516228462909518366063202893548826177055865694259643052456761432791659399734585272842798850769867776227205847725932001672211742700229325224937260788198191505406339441143503150064439846654477137120988589540204671391640105306914440269110441509040274014398962496386546146673944199153518191828032201022474271338207070842890040696236837330136388362316833288164186006968307740890415460611254764675057991310771386392711059046007223325902988277768445645463254592727902673884617103498790082854736435151916383821238491193257161185832422007415580564794356440762425966935772045153467451877531681748501165371620692822205519641442465473889632201748715986277532351293136881029520969361375361183047474675298728426216196935857481671220296643351597807359099535235391846063882179562700508713297998138491101634024845807459780486272201289394956211039571154187867168499958103734933153931614962076419475572052425789154800304404487896290931146686554991309052107269382377919879914669726656405301368771032722334526080890670432406533088102185555032442017085956405726262140533011223019651661572658097971171069657726917641019902338595201973475871476024334716767773590273567747798888093355045114096901103958075410030923996025080295824787914486813219840036270065084132118954263479770555871234912611255721577720763413820425991416088950830127315341885601022949385022290044251025641412164496117964165192510962586992090142924642534226443525103560833822903126266367364238070611973050001059930372015295576753143111503017907661437948889475580807704669471756816549530126438908992355392242299206264743477332740234311810291740291729246980392659837649775983677614305858907365528736640924128828513559612951156379137078426480763082779723682361823304451244215069860807190116318325678872834731123653284961648703907837979050355158584056943430915577987262514411249387104883571605537635736246693818569305471081003205375485715926541377317123624738069830361653786288292074707685762736481989062233539227311119061806418207620083525310103037388979449366491261502600028720078261299222092183446639194382843394018552825310370619880950334500352796922121945688232454278945627710160207192101718088544024084066773795761594095070619859449222864927902301976213107041303170172243862892513833425875659728772067278820261841645512713032773636470809964471085995036914279468601868601345378836757613191444066798858218521915975545003190093731300650304701263194877849719132226609708143733174344073799962175378342217661273056244327720620234835700828588282506848114196427590178553825405138857717479077173803171546717884236214712554534596026517174265613131106709599678001775077554551847734998447467232327724650261784161292637632559945842951231088246253754373600529380126509246514528469788172560695753852665538605622155658123801489821391823258993185132795851182969781198025785747782661097382569082280873296436677661187845182267123113681096805532738546421622281712521388057586388859904402176269738591214933031157137311535973193780202901938914492406705879862102753643318015212971050034325078072092049246974982060015428875844825185409165840560104913498631437008448709758943940986711360357399160295242628057431194780590968129947810623487649895592746627777305364585751575992884656597887158258723945770986726151965426722165520201141829858520395851641860618193497716298433898296006403855886536081625573746973123160613248039537681373038586518231558400350094281163506975683763193634058301724397323514683179639843121704820332917889515929420214764046344257786198416278322226140733780975216192238634263548418962380992643863513291659372816665698132245999879631295644086954052602602624856279250328541593153653734253354106418330306218865643902761986149032010769158017171790342033987666868931133030714744160175651692828973645514470166009631909648018308114881248225795414450398652608008477474921181861683592410457840011890759221426571801035853784142148818754654328155234921069923719282491780883269069902571350037534393987018435014511009027495688554900952298936984400438080859811511086608851352982375721772577354053441430026052321281693838390024733164825028756836067564525716494231602726887919135311520112217089525993569214583099708863186563920039359998716953499462539821108521491319224696556228266540300438604906256944544548996211778416973034682490308020225322649834455646756171037781349369481753017693109716458822172300893376467451435120899408878496856339071568849225381754594456573817511053558397466319812589604226351454664691244789720102612135934073183620948329563208564452980037996819173937980748969488839010803791661730350133672996835932332227601043676812812875669869060420393026178612830677093163425810184857435877926803039060453749432284876023996008719010485109016552196586397949999966326893146804845365326190657750639182037964881234327411944863448360070573033728904770706789480470763698745127965647781910906768322913883934112305690807264755485750107028983064749094398531697604183911028368796547499420180640687840804639949872846883916733866191176558631069328157521374198810039125711468000915738943685932534482367668775877538118940322577768857711329275915200984031494795139531370881314346897780164478382192668253318800001490645638392261078138550031039692492785487327430741361983264374484631038403061280215939527950611459051740820372939684018700387382110015851350734842696474511402824705003773122268760533574898873643025296342345103701805426166806610136920118470872125976398949519527058612672045360289800115342865296917143879386086856573933761769364252552929534527624190550775665631306973631023369202473942318957257839439225084158945864612887663189434212863392926317027203346254286574386251551725350021681093214048054736408362489656513883536431341023269371034150290567407619719757252793226984205924553474350965909912051544582684251041438044947099970921281100065683820752345890477437540873752756665260910370454217699192291191625082586974631618263991796635964176767542006376791642245168646200830655555932929378965644802957545807292296357286863553724219219357619545716379652588840799263369797984667937718636846494517064678290494353978393789465682450689655491550006863505989463870866870991106417870999964367724960732587590456574759998926397194457435900415347001205677549785106503527076633335206649583731766301826032046578703966183810728743400125562839757576496928047472844622208647378376579393017334493454426404261831266709113430280739912512983686436322516245713406279948041869110917022671729022825068669976364477426436134210214527681328608637888129922739591413480648947107866569309879728383139478830079528427150913592224463675535512822296714756604376629134700008297050773096931264368185312189526051038817403933292802849111082441794903384386770210340088571062103062395437765556910349120038345246766295368707269991260661782872057495638713541698534731255827365322984713313732759493325131671487310881833806427352179134078585450717175340139123910461060128901575377326628038686539505099516837204571939863992176521044323820894901451638250655524018768304047579868125114544222106005469439611816524895423625979044940534569255530521024543824777008752867661104125102100009749666222908111771242800524025921440651630569720681004210322939992209239504063507190658807018278386260565623419936237959360538296755167662206704570223571075211301335520257606602797175003033591519569867994639523470411870446050311316921355541715154695838281997029023576261140642889811928286699528450779061911078421957497857307521532849807191074676027223168687817525800969557653576137325783103918174339435171764708550513683626695756405393874744499667636060409643503039431351823450684950442258390439907738061459016555381311697661638323252225682905810148977919662033391762849910358814479984158734044341716423582953278207166227549974295583081248785061974488218648533218748804529608210994029425585595019077379212107010671571491719991753729881735202055204594926184657609119261753975507287359557958018429281107267679458168188243385127942596837271165910233987569148435097931625195436164528403472252231953764370143029988858895844908401351418731654751195918184362983541557371943869332781111241560291632844362796936052205365909604977417564589747767864873790295614685895117755423385514924844046432276034725957625049047786492463891328362323176381760820155495063524238860427748013750806159877466018658958626005560956841075647106369127309829876759386907966445509774487134444594014937908450092734600607580624100855664315071419695064457929706491547743279210136614324782393624872565583623797930927050419549503680662827054394418155821314770822643860597239461004974842947466765250745420678527862729618922021084347987551827383247131353403383675092861982279611705313240949567281358540883651204416264648219665806625388893542953518978263867642360656490859739436124798423267729457362644468126297072495396140182221113371863509059633127372788490570484769017637132059607453689397517623932887589734071275798962944899015201999716998085044742028552157882373163905723350210505971864068135063481111103438588503850030492350189551027365665625225227971930739792369090294780302495681481172379199110095416986559516771808568376154820664808843406429400588045387180772260809476034781624599461515409059764929658125789848914663400668150016520374889669965249378659868059474588673381892719452918470426758271594664854221104710035086387449743011098611909018350144161887936937477661268033113439076971263699228230714461374323410894334534896213593722360528848960306471889645362794792491521586838184764417945557276858068034149477539728307059914219347487050077457998178683653762144516685689450043709748209945023183093373825384983061626590958898054336540332259327190722028317571877955722607416669800258919948817937947031906797856741982205319003858208945437041571142929202496695604843197292035962798477211157372293171644790903018697453130293904455578895828543026977755801658164868012820414381380297476862189870141385330888439301956012341270521476980664401383078925038173980949769521003867984891187522056018014228260356624745519865765668987164211597074469949751580031504149519578494283863354636993218505934223965870268908896338274315484956188171198970673557971329190505225169792266162355117972232730256271496416902827800102657028990161179890707774322461804503846742698824753951230218357340833323339941013756916018137553294140987539626955233682276633370143050122722521715354619227410683293014592781488224785148936169681144629149264020731583616241467030303395396929173420749051744721808546435784928687858670334729984817784094083755576312476487532391577005985371857312971790211500624297472952816209430387207769973575838804440976666133316277257909936231548099407608318580693107532546556780590669761333682666524779623081992539249286954779356306637414486142866626226076471189148048549209319219642667892238786850606689890173948579439021018798323364658180496272905592974387292925691516971901910053548414823537508797088151406499868552971202704499437280563761551773819375358835362425555823615673985306543469275918831162762041782318984624986191391810131128300904066891635082654454694467917924796548694651261936245148998894855926811621856276289568767043373837796896023973069307805009119962554546870256027051671519521964887296461035447643253062652713663152715564640094575761487000123561610567080693962914635902999844204614817470607677393967410565615371291067746005698159474050916439439270051158004803455813589922201513176095005963426691738179534541219302428838146919177639143736958375000258389867858886388226700340229100198025883774174331503800630897447813113468689163270187095905298236699264264622910959645838859094052734911341668220505859507938490265926370219503805216463571450126194190502515129909492738125312189436865348760859937441062523130575242808142157976763804482260327444619130255930327494265060925361216602770390726355547299231341777563791422802890528937577707262463182024523787670212650622541918737357479202364256681722906230751941873256523256923752259736874883586745836109691720534585155662686544364794967474970368794931932289144500887807033435130778602103010688660721151927106570839231431063561980001247471241483969467195727269794591914555722967108747374718281667229364505855261819944806806659383273820109423212987935051155371921100597351413601943444423695919805964194118557484384410631589654939813135839769540191628314770381879523017340941204879446778386194491213684642763595885284280957406605364942536030259762756318416239273714349990063282277916544334366810045414696377312749490425531683271910774068223486685538148187040858956472641435374706325182255848471879236353008145035471811481461804166631360050941934928376396629859730944392024637211805327008076703052244408085596252759064016690956715022075900816298761267720804815883217445561203422576417963153234736135560403732429097658913397478427950117063696516406144938350887192476050514175115235339872871212403315319822015248598666066969290790708021729208415042962518375757299640022150345293792962210522751700913793282402209590867084251655762253014363865143138988905385311027984220322300162295338024084505732195354792033872054942203625547887417896198119552471502091939948453002270718554040925769477541568981981039404844041808935785789636851828613997763146071345656320127303717579359748826717711862942028786163267169668216220403926980775379641657046307091058417736776756164480252716639031601352509500046157005792480475580600819079054908634769215386559913724084614965701756279886196062779485489071013299582945448190387580213441082877157380558544647151395184116858129247329030536819202078027325896864842548989828059746567944426693681659114691427231924941707406618237938018208259991350489865405410223446027649720529011553783203473421304380666830724255982541691060240761254916139099131905452225627683014485033851889949397825677957498066995635310547536738941399609058011345199048332187724904606152942087551129978079352014155005837321399488210935823628820585615648489817147732268436957816146757589046149245859778942410223012483561040418078378074981761163251659129169654030271390727442966244417547943418172164045417596129437291247617745363216990033343083427664282479768448478873026724044342462820020939430131330839507026665269956791205003611030473588438626429869971147250661849867417159327918323041588600778694379120535278794514707917102232026916663294594200128853393198494661578297380896476103518921203130844937022640083626315791143847556616351954235440276652275742492917027584139121349617497057155416033903504970935107973130597731405451237432214859811488435509615697579746027925315991277124845341069400756520423628176657495007683966421275288176211408079049261162363138204238104335290559832151352923969569780303391598340619777975893640880696844275606137184800184816671869964478660046663497290582869029023712175097938266248351443731097178957164630944160024604948376222135555965629511113208531751781444082547517620401062167682842840046714546319826259902006690009208422773768394910191561327080868375392454273627954326912659205641057805423145964564562369971382095450763954291354351806929102045236824582022561390488202886376497111651399224416806082155494736828885292640157771699811582352590709508179336783783278582213545371961320027337904645714535738530972583046894691998672543090783577714886531994063731493808802504706967719548271017027317801045826830333588015455456237686086174070483954465940582440568613607606701347174489325942941904780615335732556781737616220878483079501359494511185008026892835667780545963965765526375420763171032128203947384052393504500045134587267235948203985604495433379864547773436924023220321665648598612767728673394414228361871380512739248887648813912582032152163189352838656212524778549144923724152643646507673342743296869424360962473328395538609527603046154323348959609295528996348648820178570414981950756702149117994565566275641304106815558289417949511212016092112143978374643933973545311611567892878898835571109994449814842960598755551512748929779978427840923755899107618491234430655848328127610727219356260146514396515886739450413621530898235099349769413773346569842122706097803042983088890994652715834965234029090437669907480540321182542535311767476106164708001074893253078942769450715431856405665524673519944410526898027936612080917107941612190752393518168442474421537263859394907643115980341345561101491063055901660683534734614188839307753286120264023875840551097680799277566715517867449702936748643514714949464695906781567627834652009835454585821402525202215758351991978077165257889244894533317538191398709312169371827562771609726471225306183848432479295027708894872552756124246581051661167529239345085521505114435965678803463868238173516712897885858010298322072990393460079046458428705473965931204868348070867612794916942592416853215881588151890840351915129993176570491286624633784939855074043950242925401605154112471406130041382713649126232001586787071358928339904744156173546798557467833607645327042331576397234646913463729770775017871851817860029324213787334010345946505933533667367164368025007722631543951576796359726563116832842975303138996341739762851672427432797789920547293776737071987692101586613501842757281490957054751217727738996674509314842510459966929524063005277646272649533705816848140135934976288320237952131102971987115102746935334555281850996134603276845611570541625374853064636644904135345338416705532031992154213706012219712251643767185108392178082139514898932298756516769470587418034676793111857672047222985029602275087315093382942345234287257337454559539302792720073409581266187253478279022690604472469400282019379610857031683565093202034077445800873532757741879467369467704814801213030964184943907485071363316586008965767105858492425784580699280584033933741654698880142415138676468860108095166355441385544590603183501229822179150706143182951919741232473785259630894906663077970133979295696895740051447416572319371683188813657666938004786536196327704169798338681681985242371988438378445049058910355342651651681575126465703645494936309503259928697565265068683684069976566990501158829396685510475965128801123917570595560122889466955112574528093768224995022352071516893112824334720984810205703244448416742205006399437529283316427613100592873560659699258275943462922108073010558896369690266520347838042203845870899961033869244623307373616405341347201320654886945705980512038332824561613081411357538895858863905448316428974215108246537571947570844150896539434110152266430033511101728889898836859822183043531959379227646750174375949461626305866142433863495603691466382380080261220633581462936751890683406913072303970811425573318238194362858032665506009408505533131682866622671759878279974545004409508323637960001792583892166793154989908222314130699053712547283734672205732576548562830119534720283349599194248473434844516879208387832596452470858318914687671443316165150134178924174948180269958788322714000025004412695972462172707542898044779347283475208594910216668979070786239557535125540802526394519879277619773669826100996862337230592708175991880489173082583508716362532420808915756131181112988058782199064092883604108577299420681816758264674548287774930587763960372665510765105367621727114744093075692147845185244451314576202501578221877253514163322116353237935459592115753351255952774879787597368437853261094071662929328116202253726176969135548315476122015356815120227962910081813794798159361898132675286101111026004272539393148168329876949539762770917030510851626765050726887168758135334372154760455501025729455619961135813119426900035466907725294530996521442868628207213534778754116703742488010283198734696761199626645529156292780572765507054190112986305115406090620255756828044662847601418289197116429362002986227208885546566965472818392481101893618017563798726690666532933555942932430898079046737962094122127978499014513769117112421551169570515665991836606264619335589749854143100066064895307406054303655204391717593469185846417346833596473155708022203460837664242629907415807842562961720654427820944884936800757277525731220259507142031780896744692704248373462519906002794429274805293411104996569408898716032540974161684406317066073149301389184178920459753303838563458843500735066417985287874601193548854247675288849330054064944093317804305782144413418907008181062906266455638460403241177653265800008786827154939355106370605804071577170760035896153239189412712358718125644491927101257587522321366105308414535705775121188478090464370870508058956659901254274319812119715899970680205751322839323501842263660948435585314703537791214391240661804157411472889997667268916536367037337153069893411166568687696624956408120925518310213214961485921403167042070084278957934386345747049958254376055985753099388974525244395143851440667087871637438738864622850922472334671715398912822949532784161405597717999259986394032983927104255486177837231915814620939376190922641913016743965416327403206303592695500130311341505109139034617328868935722369610801039823948930494763221757889696260171967892391830360372314124036789892135072069007108540688687840538116386330276431003224717828346794362514461367141285310109478683387065408418360051269419677404310352848507428638153366974613643339113860441308099052200168960205260157486991006392992518745574696753735531906288466899329526155496063895742381684619853027917694414894711693566562131082820738093545720462691239761705311076281005196272788698460010806130376375737023022872066740805419187907091693725224175333537556726087929596989152038673244304567270570613403206555055502124117769893941695167526759594434219233862169514361197909144922216670421393644328226688960073318003167992566570885484322434816466385088726425678715189742554795817502923093251058580297681001716277113437198038072959283163707942337489330739311876744973133655045873172105357248507386301698758604172667349299101744679142049399179040477919227855185204602776474161100980862855230121437285797365978318771565202102473574969873627426980537363588062947245440468061393518509828753346213907722482590872324789652687167498022187773332695973383349577087737405334757506345059369783713431675817982776155592249687145662013701781512792600907568579585230695042836209382410277876288425360970304188687982567785103028016557177227751177640568814166391039481942374232518942232275249598553218364378781608865720518916204928348428254664179405437745618598551092159905496918923267441164865310307513210544102746580428078660182355012645486408299819103368493282292651671593992146716112830234215938737485897922839351554864346079460527155657635071423836944573894873450845801416666231499770499084316338307976638330716324550394463870192969864960142679544975025017956654331975095819187358474638858505765030938031279336480890961517034262691505730134826032267151105181979718699373392071230433634557819733929363736329077633761842641290257987942045865085812468804241066705081637118232309293485869828050673033910131662397955406537740365055396088417122766762575422403025373187077278542767756920658065844433850670476795788394939987025211886335620488940887937851880695642746823920042807304215066073278390995894212086082384845224830455365529543968308496081865801461356471291436593539441704330436243830118734137386122845756333580576376654892355863463366540505674358561459398302431983261265137680514839227049113214823253639099985198132647592816341066551578561049549144546579503399915547013828172019089393829618188604347942479854042698612637725495901765555972312966038185414702475933385904104791134376982622173487039343177032651104626727451676698579589423917538455550213568817326722670836029700497967534724238313662494534492127550742147890255129915223356807304081680156746120561528877981572764907763844935293923307205678592443463577976858288485628052379786825524250010040167174292841813642549096749342908674997173865725253454291746706171503034483958552680000399550505686022009871094575086362143044224512616214481923305096639959926580443106756677817301778564595604125418951571788569496333698640181578596178677193097828179625624267415049228497348996557883035948547497710088560139838638738782961691783258003311061419355540317569608336658619891533495218555972209545941393995563865374833541635152506345361130056134451367192382958086493496397519998105124280253879244023122057909385507955683886329100267917360309280328212514420966945489761875522051581615171303912552047570775948693140945368135941653211560006236430003650012308879104190347202875870281735112837231971984694914157455972275271791373527173336463400082481512402616200016892853651151874122953035643230395255402622040737224016697223367232653849784999408537409225597304714759708552658844295245309232539225005270191430883180388725606208673841889626184801696947828815766236558217105218729883258917293335037516306027781056646226059728631801644288310037612665395802626222167722138825011939194241300589758830095400185776172430523426975554045603719090869239736252806857256437542658136485726288701236045958622141074708291461849350592444617898754910563471883511433492696231315157716816966356463893593436064669457801332563046933434967932235438899973726400773539962335654971560841429185640601706505382721646339656857495857848804813082713278165786734820257629437318576915514107111758780746781454441545660287740118331301173678055772749239821960235415262321203003927280511630859709671983680634639494637546651099791407692547338789691962970046875529899196358963849238141150814809754698352969238091409296882226148422684005972963524478324403901195079890577558000261686329697761603775609258005170266266668914181026282080573454954043731362286695942817610915475863834628948903737522850343621381264282269256603380316501443720378388850697782201177592588338390478376171778358929547602215409762799197332865955018352080945096609950446018424800818796178377828370067362851192202331029598532949782472585793372847609886528589305891226921080952618708870279653829587850534237660178144217689937030384001383918396675757733590446146466662114683495119877546873586960992861034123406559607393127396935475926077452438995027361259501078124236260409072625977288986708881670654593795816770717276825334663022606936272205538409845361771558699932229934845667034725405793439593837281582079180019876729403413003227862563394991291280304646228707318072858742242145259087616343900074844505775224465692892631611296098099449904784086961815022060979144309831067861696614378193110126016020872550594215274438400416506935820499356857635099611057261264002084831656322542028420265053817619225196186246227044410443352227356758303258236175709006205892672117405053324332501427223820186765360369834013379408279878793708681749722672781408516287411735159289506524200541645931940947561380566769115932328154396697962761003066429695601374985599388353836845394443237283544571776083710255220228646922502549477845127757793324177897752347306651818858068007268429446588215849155838108459776020865875920388737447138794123989530780004548051246345418646745656830900444520727757602169626959268745659899678510314258948108185440883188004627988874705163158845102516441850117583351325842613936980801609476582170462700081285270348329632049972965136666072720881158130602285089625511247026488896014691032984854611099721302501019353343919302359481493687146767669250151684414387096929006469592581978064409822871635211603389539503492192303125198368882111918682879065305737664917536208277997906028994040754734739448010491783734548986986642022098875742340582525493204024526731207602420028682284177755237588745192954091493414760334448625447944404408171123973922855375071648327899338363173574919566389784796918483689139792529327225358068714143198771244727128871567113231853466549121924946226975644566634416943840935622336611230480988963216079206745655734776611614716048019131663676004058161620455861047748277147937661784800736725838384029464550932744680092663308357381607192576695467708403729208445555687729964383975538404350134480450026571147338706291980301581665104570473664950331877631590042996360397309515107972026114688510506052695698523391769726637833448942772325578638875602077898301174798313121463576314231461156091860336904194636053368924529388864766596230561779872596199524284644066465346217713024917545378616278792155630714841975287902016960696135677001886785465962708240989327059842356797499597950980674884359420252180809180970735923498198949925028939419548981892970752579215550246674356499428426129156023011887814743289928612630363993152813723682304608332027497749988534005530270631774715444239506777165666849802882799324387445823466125009129244706092214664937628355060714439534409052962425334246793192845617403611118564378117867813912526671769813936998428651217564997135697328087487801321009913182190127704568928768515276597392339331596332461294054674739165310277354492177768611826929063145013780397375670929654066206071935509225422137965134644161935509607336230066162054829165451348033525975428916100438383619691406325783214934454795192891032316083184841497600704772408973307629083556998571652668760874247942618199506909745366012852238665793744196362723304884205550639980620408511700826717823135387523505843086100946367075205118571771868295992471850498650053835265953575208600662931562354537582483840305476884800030795576310423285052814764020567575796131819500823900856306651540874564590929975121954073484107702201403324670621831111599289198959734681221605786213339784529354858524168227922140561382804371463084046463513627648387696689925265888440797119660845586221731598031064413791581294456569975906123879601261638237675796234157400899718575742201457603059210778907313898805081948784834194307973164516668382820917718051806093424070601193883809068456841532820707432471204474105924176790603925773416471475936135535379695992456754417726727403220625793237275262273914803154340346034795158421098578325555500939266400100513409967310115196086626281759071531970419293266856366682292805651147336971962329703548994726121523792637663334367897072885212956522435857684029842841265065601845635009950557599609396777101062491622947039304192868654386880093623388824562630095724175320515240460004955248432226388290153403580922001309812655668226232490642708567953102442714011408722860253976138964962585928044562083863817575404856559892888117088992602961537655296052015208408340565343649084790470641235684047738752533457306311038592102733037737386398126030509596537089764478164236848188897358742167545082106887132920669420788362285306979697035894883774910900331210316210766664576003990833974446695286467468908960814825354933478773048956898327776655923821770056269854840457996099448327425429477039057383812554725876946929998161421328524206719059594531321536443078001016417958341067582088343690694827345447044599271115456910231329627872592763957955286546619060217004054151960255694503724074549276402089579164372088448317888712949007090731182956378912909940353667357842464943136957711751382927489325445481278155717078005304616415795757887409160023943424354359145527460386764565505142149150249585669327474964719381205649941362738833130737384832847566250065822944338694323425899174387397071045056328919546127995422620290169963766701818394760401708062680227430838920212105383967024017678789001521417564748100377320752612151071443219103637264256191681974294477662884734945142860784434293976824945523925445534416644600685591053756494968031240249950129108123289242118580128127482791236962311733322505855190184757934532451412324089222212126574208240944242030387137821192649837163947848656131427042383721590045092806554543729778063799809621569794340843760823232601373248689332924894313209025679986955876517510682594146387381900643302985738434164371041047499269952210738165666401695232102829262822694266801209778239242047832384680106099411365272767179576873970891825222879277931327520379684299098983802553835255544110367274080425522242432338758323592364388376600586147283219032256237117239698741064494883022193931282240659159624561850240122544113120900400699439136844868578619644277949928978943270885883824544306973204353130170246200700598577566620404509701026639237836885580757909917531360981129993206761924993198888005460907932777604395896063454551781749542621401581298695107951799189038271887083126973087949508726268833867716232477988844449247965986928009234197272963940789130767253818448201071623059632484045859490588407898129067442433932887431900201322622391014424634047505002496801635917958444309317431252034070492463942561040013375484726731454407547118657249146810425334343939098165192649915017638649822213755033305360296909671368146584343484810469576336697469007403963529237898081175106133607886939105892161486803212566953705938420434646013860786262963043641106369148065841852035020594532261112146289691733944615515318749287262854233791282753090959220810449448372302597092885078671975579703294622535857719754271896978877355596899340087475773806618308707335920327955853146414326362348636479240072718029831373543887795791392654454615538349885364727919981940638860057226454584719272727665876995178012402133447338939647666281892116626673578787665267388077455441373011386965313547548003216469532081357883720038704844122656827663752021932776059763875065684873256117894620546015077512248787780023524295221875685794929775531059569895159661737326813980104798215999615504235019855760905242543872102790114082387053476408081519281499068917368317791288589557707689601472099277800531918953634556541756147690651905525970440168891493082106750951506470588673444468316533391222445623747800352053337623162349321561871909345412745653275687917192286399658599142173618703337047138509776135140998095987019507536082584819967154668621771833508604819369472542219730930514895875461788733131898906557352070383322954523813953101102438714757925706691654364656410488035340091595167041797042995090779817333434204949317374214613689162417692931574376266248196442037607999454403463403901431886045653873562767636194000139170991438030794716074146070368862693049288320654122458668973132637578775257834622904615573998807877643514297458128699838741379104789571237846788276145109942712851353670167979553684332089228316620594853616644644663617893711865064993357380120983920677822354744400223944519297981703855381200047992884112883238042768431396531024574089950362765066105533264710507644747643403984576688646361941525184625562069224603230539730993191487014577762994081749059239420018198122757823459983864819693448056717917245213171821693791830808398099469365097914690484278021191078075388733370820567645614487694592788536503991993314067876120668755637596934459979434106731031836037500730616587778947780370984199764222650629865564105138882909419938612702003274390684069995138665255537573540620543318160987358937185940639688849334839944562681466050925222450059520362202235811741219789177621509426396254488859149544909987316745857210971463411403911750072155072800817017034396082958677222914868426627832092346994877049927065138771582736551464953332067755115715914619177968467463450460663039073123026111975856929648707479887427956202834026498803309849024160704334861046630213614022524349391302296099120306914594853909732796996961840272392891472231742043160134383775169593315484941095786983722670604643119087831142646563134058072391385805217298757255837367705779816747581664226307042721868254449259207130812159094807220822168994416112335293614686561058954217331834262371449736482299346980175330623201288156062343689723637238656930261542688325060996527315270517998469609106615663791377244290437303258221741896962597589005427729422381944701541641856109643722593049865267607955508483669715838441094660008529640807660626852520518168381928474146780162067326126299040683426490300845007401826912423258556373752718961981084402095254693737510031954838708808719930265907577322363289410668362648286312229669765405836643977681831407756675427795798034372751853185930387801527056234638216584643942109156019279049363975183058341407913459619290560211164656216080412892971603313708921307333141208638311029848690835975170203019091976514448328214294718577318284160385798033001054312131114282939950840314665279637768764839269036903801150406346365616701227863446113054025619114213998805736600265064293810600185492566565344490283370522892971458829829765064881153358750817370730934888175928466444065173847943497577921494734728102842769234044329341620151824934157361664693170407535864044062003910013588994204074003399478933672772397827575621478464102846732536081969019708866078513263216584646582866259897684550499688293129546843558325005370302523216118065335613732574915220063861676988793517614239899743127792366788675427055562642127522302803168209826248054458092914769080203581297934950014944194979619135558449304368156588948913447729231462338016781517781373999715483015861913444799783151219355311294046181330586189881666663288967780181514311261429161115444430323350230818087839694753595714766328121574860654726884543259537829258542992129700805138651533343722074267457251250998655155742583670607726670270163385947851440691814669725663115410056527759495773509520135803743221123249377871742575108351054088024240954584608983429880778699981350565855569427500828590352398258894671908964209892473091147358420129470674614326962561166045292661184321271029789251121345608179630409815159290373844084514403720051261471948393284045484883234107074994754476481228807040029739954269890379886944465769114880875057059573080941575903675778464754456331441695879519121309820990452714600640324053360700188938097035336580501053045407050981927634359268783828752076420855139289700237281201007563393770002690658044017713585583289777676154040303868740860549567874320946743501890922069332154717208011456753964752396754532166670796652738571682930633324338948877020389850151752553516591569139382230670381244624622956751278068143033391832707542310437943115425760399423165524220955973827574368172773644773480496500504081806115833303941911329653924263702897660551482135854255537892095228558974474192878903252173814057887260988208343692596936683230878623653332444102177796364008140053930558505420442174538024833231918122370618928217011063369452252671005607667568906325464572433359376971866323767685395408814569252053014742783239675090471314554653161941684442888571713252732050591363769472801590920699420620216573581312281108091807436469314169825021162970223287633751986483087438978741383472191092240893560525144139866811714625236931386763645585916969719622174198013173186774315632467968856855771855302400147138707776893733992281770214210888232877289689290964727828027105114039035120330488545836454605161373132274719855555196889040307081245722305568977234864226926138075490722320995977428893578228534058462321967187551296264346881129035883229835918690558233896654900621569605828193503047443971884370259736484719959150598500694873186862306080567861849379144947782514590917400791951106801184715257371070263422346374569887847828857491590979252499075159136356383785890084855700033723795053767590903465978554719996211718983490554527589200529312384535002282477023749100781295363566528801472658393039864400464561156455978865078756454408640717894893313468689050849524388275420269139837469207835383871831643545194785235602726356209852157812077743660450339572070667044850544942757707909868851965535116122405471396196018585348195943317202657868688550728328722429057816873922051635960628422042917054706006182400329894907595010314568076488048014545858747899658852838048988034814737921425129485325194927373348188044979601920597980955798588664881622344370554865155674781251007654944264139574093618746402098035866527819870749327426413157366538944535251230726469400248733332305256483833965859271802820783350848136400931441912185665135798443842209797269153171021775684240061721694668604741208597125333235164292564052780179861913180556890829807397328614817842449900826238218214070589658449147382884842294737264126585756801146923897198085930560453497310834542723759512461089497470188182824042400458862951137691475921639512399611284494987330103921308315216837742782604910034211305943120398940436484662664489514238834641795644436295385123420211755312027976922323797457249992165353648694975888255138638561958527730732213719197186345967724984118818279467689892414435696063274069009379880781257373925684248360745438876238142179358177201386836057058958949251977482500606777301301759714520981372763048258982174150565490571424739103051175149666447411016773471333856890744480846135442224994701568274295493196004029500519233156629194428650112204043397198506625156523804883814786020743288731086044230973469007290807225236971836878237191519786219361834935333804812427529260274917763750539446239382970036468696226422929959530196344203552582014046074475071709196884061055533659011351137734608222141486902575370867241749255033879393747708410292641576637650966111141896938767866771216601717811390670622472435461139567290795181516251566683946489701392803670376610012286695096216190981109860195822816357967686327164014783419778911514111704256389036626459369512974609470435150668355163631165729269041027532891470277294176998789511295031900195336941830638518645910293488127075994662462667904835180477924901476025104261364891048985107795383430660971317334325217450750044237276268421184556982531670084862168484043979398310339701474196653345410397661589614677816446423749043330514185274229814901083930487692633487998653799428546526752808921085451099891344689268951594093564486800974476893435636532436782701729415620395949013979326066792352490545706703868612660189805241790532247625727452089654567891522855292600223062673042718676711961707908007636200339395249614287689768431301975418898494772048573875186866573244614095827901555960414908437636382220765357597036321112572487212591396646991884988251436184461781498638956460490395428004442300740001804957885733993354041457228155664939472203501295556008568175674657756806235055830998997249824559902642321976196578715884991781008499565900674317318444054063645765080621463333251925941382552598618871180090281629683651241683860474274624871826323048506383307657668228177359439471713284355672564655015358948608902116512157179759528748109382198414060329612194729858617989681849642259535137760526040997629086611712030253019500901945511807053839172658891338906830442803547196198538286366266143617407824499660846264306449473602960459812808247766065400716491339428515890048889924352847148477616816830241544332887016535897292425472116579917245699211422466376343701009363826569423492352088731367401882361506839209254695101693899399062548787133243696205806818944089968386079084950269714536399920901319423220501078875940049729289305829731964011457119323613086618718192633599451982864722856526401715058987965905041844961098595670794762179676004550470267569424450246544843357507820493493373457418747022754962363543675174648808595119958792269019776772967847690511197226902071967571875181184673567508608085286254381428472117001084525073948623083420594714498144171571658844178547820387923627809442734374218999808396923282500458970350484390751236187796330759259559958390446406754402358299742207839691916764193605947288666457219682836353487874232674629559269690711990083440933766253681924608557023889736693183028039611580026524105681356586185880094408009574224552693227581852941668365783622007837866526187838277451178219810920035310219839078927943489227875865318761970676306244200445998359205284385647177545292064183700172187189817369336917778704878299330745696264990937578895762138172845099267196762572970583221937817409548701507998655949291052724758842698062033572516853163792182686603342928301268803573656398309087701169994729676848787880178819009844654982160892094333810580426746371788501281724613766395076700156045736453735176656524518233961238445427206450387430274402825477429786430648823920267815088140957675636028032497236899528359388206358324564694525878189257588597565144251562738408467996733908814383504211556539610430480916725822874337811970929371850060678815821718216711923683613917070982781605559848617734859448709521388247672799727131935370989807243830366677435407310889642540687052168869398265002187463292295730867084653140161152767571903972945348483397648004384073877868192160910612472269416953915869922644800393974636378970531307162244543168763824540823125101524783844527787416545692637192722021624397731339720928672156361741740281779619641932516787153181791748010375368393207942133906016419810170784234976038348024481876885760219546589216211181317546206313093215466185897107650532321745423537130637862816950705065114398086858637046570031158625037004655918085303399614261802149672938529297604138818950279805938117200209773856359565260569641795664219544555020340493980768008956018091959369305352494047195016785047646960760881652473518789771876374514679372667927941288751305846793011770360419212744505981376414352755286208580677086242530444766368274289804431788193521469590869476827268682881229396221850470510170081725190017939989369148073201121209503960882848417807771547307321596728653606128918012251915719169860132385101519980666469983030208281369822642091415360827579678434456012441535125392102365056093963123584861443602788322496904286250719440187793426852449670629433406438539635591574542384029183935212334945774217697412671281012345281340240750810460575171318083342971644220438761792208660533434169833821767798506149751485057355115257831915038659753271425621217239157173087322456150552407183084448225866909019961547124358156959380624584774199960685781282435208364483742800141671620939631358059040709103012281595985177223083352429138087395931703891650167124690603143756837532579590065044671212804064190695331749449164182308279584256441558111960052677416758153729600135042124379140623689889616332889025760412737953296017511198159148312555010788289985352347123251540346993682640611181105840198267147172109085720459067124161396923552952558632213888652233905704328634900914315094097237806028933205180120565281147652106392999345603961592960519366594342201669696914351707290754629975946735880066575520053524355101258074573550123914363837991434885767481508092988421531654805617315057421655676026007855721966412972035786458352788776840215789492309547040435960685060780696994236653469779349956901837188937313804428280782706536895677708571191159633904983042795376399535667757398700097900057073364609670614448299656735202319567306119154341012102689606026972070264471587807518393822511673364717890290167592586047640657325336326419343114831301249967950923506894014459627428318905911168652704931245614954353734928079788313641160763770000009689751685826243887262786387208082087215606890966427917392396526921699508004777651365634773504895253675286201973592677220392379878465749848048100999156217082391206334356554790258996358673218596708766988355470863403445911327960912408593013844841235107373178783333419649507298074130147362173343856563062104000682911736918024613580618781258945613543716171981713304919750387513869369939617996460226061416898919341027376538513585671855273082808968994363336352260396460974101436107133732040975490428562082524325372523569165783980134775362068197761768694981565794842419486056013273008352752645955844660304388420374208705815453970518195152620767744656665181064318176769329703128051141156001407321128629743257105199941319144407382646657833255919093398794056871533647030451767222147132742311453997624524940617619988268884861918496429849373902772568231153698967830594315355435935692783848544572538731185888168616560835413790730573131684115545777769424593687792834663139146404738975420915170388423581927527336782466564788051682374902386372640362061294528298575889335977884703942717019306821802350576330525558801257884073659602394807094518416435369044570182416193128765854666870556633865568810036458626098249849585269472762262678199075191311981429543295750138664047027043842262824493501438698378765247799329500189657131084712786562815507768921193181281487200667172166934032015587593243764430158187672637647636304326384594443910016728470030948351748545077155649022214036085892766818122413446288945392247529605538065347991191645201818492809861733590095475548053129505456494993824444084120617752323295844621895624320019906177164043121976850639482192193843259357270869470024228687445298594499846820474684513607418966589640203844211558134302774254737441754790092531757738815332660098217771767261837604033646544880952232181109157816031910849515464465780562382347180565860707642715301124802658194952623006658398025244121841646514301040390139812831033612326580562153040871049992171251444700255552329437861658793081107222148747152643725828889568838726127252688302442518800798198094362685076226012738339124955285961469980099662977983829919046275525526230113836228675186095492951604191027297182293213358303375487084078746309089915743170354335280969676199420567050364387398297431097972407440754589919856984202277044955594171763648144265924592248372109586817343365419975872778708165636848246733435406604921112678265724114033651478936773464511041158976994243261223221240606081494439320713177365275916840596370753782947720111874583169189649097894964422219750187189998914563618575623238631941071555864842513491799997315000145026161119825859080953654007962848727082665459334038985420152828429754926067401874625204424635318037300092029485894250917258092221536954101352540758513235425501261970105786194053058625805144866557281910701153922145793735706978437510687578682931376985595206753263458815347113913197807152017153596501084095755249136962312341700622009085166594776056329350790294789327965036755634937701789221865948238443338671896570453920175400957268138766228412387587690620508695268611285779515514920906634555166222681165409113049141712223951358706648847355924601744622486950967888651369312764933592158514475358655364115563015852585379144823200462866903508175702490073265509169641730326837365988238434186386486537625311829859223499987433367768606725418601281323956434349629486074411999803007343549046631087201904060954605275169125615286512307301104787350926361960873340257114425251693431990018046260986227450987422483455905569186947162522519751467997365579959751583622605834523716803434068681898541958541816337789421635337869731951528680374249011675162887072855752675553940540546013396301460742248775841862992950955553795102634010294435100933242839045583909394984253745984055178393021835167880401994044219601156052546595749441167331707310679345709647867625403963777051182784312880310793478844319766618807452029701514711184862414664390774466354917028609144732875041712562780766690070435125190201629405595890534698546004320967892898901061422315567101788067609105376062344294986973012335753380060294406258412571663309724285279839361642838840941901528670003339686096993689318127219469218859713739040939128217158940409547037386515973075917731273898304062703514718113060353873098184240358851501340775932750020837030844325354656067853738847538665203442350968168658886078600433738887958599044745249310861018758193466529974512182825036608978478669856706181269123841416358825250389041191103909924045125599483602703310597320497865695680059330133894716307521502810757568669422003400520351734305817652151319057452193959825946887280844630079849845031342992517464482371716822477621616931306867568580563164709894164682799655549518087341058892280773131466444347505909417468903152473987501664077269660402074234736315524471578808262889367495406275985555520681051303525163181700999584572183326042817604820446997894388084667984533090683767530688112322654280196359686766249086902854531315568432783300784819407555761760968679756806168354149831254205752966663123658480019050032929340979261946977570478381201247322622265735862901780797863544122640049188624545014525433349500819436810165329618604559221067765527489540868835499731358524704683221006393106419289526227171038394308357374883405779997968008926719348035719847112572599295271045622189574295671840267073357615999521037130546162060622664187809177418185209871746591082315302492579789617589456503681674595309759503088441441747583830313619293224711825290724483511472206257814005513200554946674965880179454330972112415159901690904823485572248256573954233026385027394689386915885616898855988983519656856524514533800263015790763243701593826834167334632399200095985972815078432799093717322057546333955820844412985622521418694272038432298820359158361752931725543903857696891483675291682400010081887038317449668841355534372353812214489361421795282887886906138131340287430631179710677372245611109910210355047714468794539051232887881983205498207631445937952164160123673718190549330977535435170843763082771296695626518110136367755383561394173542411078193151923826474355228450183772363713181418305871499773988233206255967266692133630616666649359495146154608042437307408170574861049871545391886886895217451499272373780752266503700546168454764594495171513837218473490246784667782918756251389353486876823407306069925175644713532455709425328233135435168461004017296785901706376931434739868231481309259435352063390663013775770226771807327642600141665070858283051877948767875738269729467955846282342731258452927313414611883321050535544006109550468989728951373069936326748197614439775159831164769691548923791238090394030677614773821075529093000443801149362634525613148859904278028262841911856678225429679454960918153600996823194596088895381143805603666166527862819233399519068066834461252208759456317762243052871203522380948464801253414046763977177635166925965074325167979370620828966312692444494873613514330013836632701483527560078272995753401589624965980972755740493288904616440492811210075786102700989791477610055263846005188952438885286076214443108574625586417151975352519838497947790273081225029057512506309896405303634921480302081022346693737674402673449025044047628289478092273271892488538275473962976844182778286699510723744021116482749458219724411657463690602206933133649847417934249182659964075629474632870033435054818194346804208210685533607098568354424811464286772143459785171126158144990401626539030285186701490534732707954283408330220774931393995817973284798299137774509905090328231321108863811385304166741856462098002290094303563741790445052645713337183133443747991685703981531509442875250116705301564590838921961006846804406339750849250848169105791295954638048297085583386856042547191718361093167900696445603688212396998961652106562761539091200350489581215865764590139856545890615307935939023785988562023542742078195710637571234400829671272393846135907920298446994786273888207975520878790388148368183510172980530304887688635131200338706585241274051072820857194235094287731566426416454473092117695867351151253068835081614658368013464509473849318161679336873478746851433226985013091647614939267685311895114867968655431414358109680420192523854986161041997060857917684148216901264451871280503901318919774756869586281048534365129428108536875051182018257806340751629533088362977137766430756337666502066091136294511948746937857694351118255539762125374304521690204447487194502267386138146578333288244963901821452608435790921198155239762637412095691390458147471631557559086395526040845771872754271640785494594688055553547376803555720749700183699985629144097918603896611188580038030567502983400627327196960678776172640150919596413846614485790278521559405961985968107014858140281780851232391122838689553450815186108471123537169864970867245854775416436225348692663124768480239292922232207100969388137623580354598616329639373948431762155321623731671957527302566344956043255792742584058755974052230194711123422196747299859300902801485280521144227240464998208940873913689683782181988711257624726939036457002158894476498819223692663544385365276069572152829721917835065203387107926421132864937074156738681302908399628508852504417834937527556727693596673708369803855850593759445276242686835387988459928370272210099309869246675474356488868250585758863067455055212925601555573203484202068118292057032571034267884863014322008271888784209055545691217755146698872386353044651720976429977773129739987976051833610925417691945025726275242853215956776319548565704078719801885887955451707189056335446376950256296627505295598522757568439079921463324716608532976289317794928083627081154134431301822441918583837970897841321059001900201282290451195092130010811846950806658573569647899996326765747195617271809811718033067108853042705449649762728278135767886062966385355213791960091081920438995161076836686052553516345519154601610287989365633969086056480935377914304203203400463895066600024652940243221033214441426717227455563423973225989676766945083279608949957486632100623657567098219614508778356693736765193453323156586953628590416120703312054846148730767001987833395888401865653306591160310106978036399511683719593582696954642156078989139748360883034423178202706188017258900524948687395861994424123058062172540809138029785393024100959173339055155179847714518418315649131275026858622455822245269293170813996387040742925724720400784871718321427148034703590197330793788964465715059297256082860930222024918559808260385796229932634786649385713204637289874368466132479562039730454090962216409698912034440245876265530286236558825171975702306836272213609909578457314403549007904285180607241435956585305990314647313878278108360915477116411220025650339543273695689577931934613852848298471807689664501767053815348396386701111023034956360751473881771665992941748082320269387433867872767335493939932727440913886439240672117780370343353603195768525049338758555766202885531039017261881637096587770044728169836078201597723205906623989131850189252907208510719908819015974603958813301209141042049098649344199419527710949965849158053890293822888382800034607511951218551785314889588341094674317703047132779096708584131873309132249536545461985336553807154066780060258453551353062821512725020584822451565844991676619566579558437375462635573317630656421421732640669213086923012974426566014484733785187924854837349226679827760928113943277151655725405388421830785827889020997674539624034763554020766060577852125579294478152191967329001646688566722750539388947901616468212174407737390916401661348912802833337376453257530901208378332623906044463635325320258076154768618279858785475434334082896865138978341202768100808968724940805831447692368600079686695500446042380461687874299112577750301147300643075965853543598425090838468378043577047184810280382198761166005455203447468858746323129393753957300297898329204474999577781926712340060896893497604632538245969243798395091981058094808918700854450147164540958399223992791622864977658197289667964610214691096242086462315573625282125488606714028051114901492812038830312511013220173653767994174743265187273710990744768071142799760493257887794587900278995665080423966454451440976426864958939122638433352204168113542737337531065031811640445335083000546353816283592288706585813047019452528473782736583475284495066323612146172815234153878086437283379148082424258058328775179798763722239733176171479623200177633303781884602646307666429757031851406800119784681241594428377234116601606510138114196552295244627381275889423961260955386413534451132439796812861698474235669504514907642513541101085876067687504147189442492080224243935797316131078829265778200137504561232088265426808689003942483586437003283215445319538645922704556945512728926806211145652969469907484296779300335900434436215355781290928327406734337044353762923769409120955356119867820290744867302284990394244198087265366583533442505086942732980896998659442405251553794187439071086849531439265324969212348034723452445526569731237423395709637945722854122170105178194561047691102196129983059162419546156564071071912889468138624502385999164938100104248104868782512958881419861393546081232502152606964640672602012260785562335077350901597331591584398858690968356799918016449622041018773920822986253549126358301488889072755443312204861970153238626419830421140598437348408866451025084424177081035762294404371872016088281155619097955428123593014752799885999158262048565845743433024448054574958500111876319896287199170379850296208691693456173070158988738211180100080921138016258236349377702639752353415113160352773944562520444797353483812972041792065444368730944534613858278567534291349258794735748650774185490054388651280506588537841891765761727359875496581700869130388862472354816025512965600681142919339586664535947365173699104744775952318092024685706647236016831223280506281477679850602120382808681935677025128820459796084966540330080551058090472959118276202575383663824200603322605787227062860746528983744499307358394042810370764887119899275513482611244948839496624219555801534855989423769727680254592786743720309120110302676553387214899587109187097638253239581839777168720313266668086602402964639677581691572455861146225246148550263042021569350373150876705497534069481042941835942232657976037566577168793529859995511574104333680703754977092905127759112105181417521726532094384003175372037836639875469215479544268794727981645631200185926729394339996586253521694625167558788273003335324855181429604664824676840637009556248779525989861823034172352032928412251656919774760441688447415706872275618101848545525535493766388302439591065452029073041002307160097053337796681016776008463969637081825012351999555926539051167900747135820076168268153609362790293197074572022525246511112387235864251039286328728368876826764045080847225212214420480756332749199654137429101711309016060863862999083899530013706753073060116912821753018924176195884953250731066619275665994373307505227057597517571570680654914229735758726514289815323399259445169689811485179716340067667102324806806035606904716438961215442609003222985893259252067367832596813879589369541848793645312301860452177524965221726856234859981270916777031405821202844239968523755315748390851037605506358204703746608610868535072009715204531768004074903350256943397696492955540529900380994967237864720439342757942655304249748371885156396663872953436539086622491112324234429825245386349729206199671681765606868291599535220671014401209960048213799467265456057728473123132672660614927025391419419668305998613236330502467076839912412956687390992409035195890307868694872752998172414737266152119590196397809053010705880934478925659804344363178211936511509354602259589900731233703475417920728269511464600222390386866564093368990082609063054244854109487835221016537914793576323268224467889471029143848062995062281728158513448177666529658132415873303485884258445163769432353283047913071853325215396025597565006939487704635722375210250111886330661681335829344603625300300672642952492949976654212089739852579949478416864275803764611975937559483090855272182860206706013244562970549918402782378072394442908697548259004836688683957760062149280095536850738030037672882928938348216674583060251154285952067058631649424311539448222334298909116832914814896583343049160060591580450571793455006546087518424025913901326395876683076960204054683119709876466721469409250619367139280056233001593967164296142648036385305517158776137290543971642263668753472640904201659123188547743999571554563625213346095946166140663276648237401629795121523856118913285826881938525817949874085736487176957127356011614943008703152537089167583567953979250899474819709748363584800028180225355590497446873747615445816722667909392040629478903633809872102062135429083486705723025085764983356204268841848911541133725827786217988162299889697567390549975445604315687429041352968390765140578152388382537654095646130084768714487014623272229317437662108031220516923529867560657758638372843351075643014430899796826146924342308740913786965934105757481028984008946038359280292585286290232335538844988079078986415282318305481157344596794414109612934388576661621960610920668330598630001613508532578285395960338537557426193715644282670118423735321842106889805610228855812864345206558213595202933768715563216410470108288148427019451978978553831945980258989435243454096645346219943153541870654580221158271085922043246784257968638017063051725039334637091461967002854723640451185975552010685924354098313979339553702355589147161892253253762986516849665428085775618555908799007720844353598370434354405948887171616412767575323731123017004936677149324921261434530849058175192292593511339072834110688594644462504637778471045812023588641399396312143425939617107519971972469555841129620702399174830884778700425745918523826572140529044468668216045558787687319037998126753519523889783061653591771026120852213429973603762285066518547931502753876961129898589353890604933494194450539228304915522861544381647172130587725487409473533943889763501032032221999506827579394034128804086357264950279135550482007392311594479576522396389219858444278207946918208364115792578563598795532032685102593919263361553477706005086719010107770166000085335165190580422505543949162766855434397792163942568962840002798026224476678213956748906278964020531767625590069957088975306820521244187533683791167882924942521537133286042749131643403098651902572117745102573809870143911548115233040351083096129009355763122834236077679795955038339022130483214387400654234041216734333463727484868483877708060039370774364222147044088903577676909244045232162864140343340544674071779358764204265155512037966757533712117527955140176782464271085212259175995470686211493657300435007803822397623253821330011764518283318042697166414227011839592697990321180482371597598937637201730185350345041744615526360880443888775523029174173679500878500702093035500434212491795091007483921815883411736522494856263431007686191440550100181216120159273977012032780245673946261276918754868843174601163205564392807379853220558959844483897779877436132967720272154928544645284150764773381304240419798652673113492264403849046641924083576047517354377349974033018052532966695538212849621932840541141783197308454122187368234144148063077247093743692847621072427711684648938947762052966027444753108777688052226981472652495669298940322130661482788203890699147879499138779815376489831459641420434670537604437106567484263491758245343142757426598732696768796178206474606294572759064076080480997006707438807333288835167720033070562807427016888290116062166163173179671180958293927242277806426793191180365964851237420709328492628576642665055731769735015447354966085446678291322644595976148364295394166276921884673061488136211795950795132436051293695571940075150504586444258087823727138766100544711416330384972975950001933429265618941110971618199362842981672623321993507668521863896048611380087651409193981577646583935607706435314775136256533393877470368394154156657040056339078526792486647198044837071598195809846299777499479803178039983589568935227547043700318835116377354354533932405601187857486661729200273298532642085833715075406908351351820240977573291233873131839630883573896541600437200556098942072595037097917232589141580172686039144018950523293206971507698612774591917327231304483701082176975135928647235329564108439689950717978455784297548643113934094494220020707127681945728373904442435786031019937098751781077351545146817642838944910240272599121065369065022007632878929938304659213961816277437573083458683650820580601475075990162482160513158955038517830337043310682723351409161149128991828625530049710384260001388268726083745772944964559823348854044649883979307638662929725442620424632729139532180375747736814214340394605005905425912258622811926518667002814400182855379914996848081114146351737660958275924099578354071314926244956391162023143669168561953903112474000152115073960110651275030679265460953606168538592374865780651959242582724816349802616950851612905873905324735413912927769427655985022074245597820103651296720473629998571109107652308841056327003257387832208381209637416138998549287293990887451754891222532764775620943127966184213293934611926457302109634260421109437213870393737387857938697263306178511703235630538195229184434079714664621878547476370520744513784197328457188261392965758299717741668202703917084105038989976512072661835261018982304524977896382509274547067319347612411566032979504173748883651410747261882323938810980274269450278136898197501447142195376600832643452344734557131886403441194731936025043674796066715437531492805005370581381886215846191908617654704372760268541663226393572642334698132125094604985485531224772123202002626074370475241342633049555478627893271654006789609839713339385874836878250642653681194793612945221882579871863543003846903626380569835409215131204774145267207508646698946086260941553132653065493576027400789103412333744692675852186642335331516139351571648112533081360434910230053259412872505941741184968691033850069315131633834871353122086023626416518043413000326404877345864010642786547574085965781024280729704580303060432693534753583988871937187955980075000178916895089039296082848477211711882288752615099574542063453713074514052346365016716059193231280291576121728924276558398688798859760949410303016062287115398542754562393578440044905696657919759943778331562981654050671379937872805077184206762444147352787772592064002108114133474298408873910775591825231919872236044854479548964702558699970629300140283786300019138431882789691451822084475096165583381279331755361995929391035643142285819239262111698092817888234211833089520995441603435280457341267473210333240279732243648308030871213131054771674110864110024954137874948030958486164201505998864014404920977791742356773845189669393380284805573176397940485056231099627632144518584419591226877670810898032226553279627090113493132080728321161670758319475403013332413727275100895033884777253605950728443509445346096124537915326766818002543960288004845694441037636541891910625001256528267908524376534535193705496495235969651001057552630412120725715501378494060856597553415500877611089797702367575576791298909668654779934761980775841096536663296814813833717850922866422517578969233825589119030444920547273558854266616111718805188335072359496130255638930511320724680969489183830204941439168344257200616205932675801536051182730736260605370550780721016131319762586298278304161254035572789659288382577655446202408748561321183572244762496662034864344599134385489564905608370678960676423803772908223813258856704576898775642807479885388239613305777394527111056209447070991329345896294883799701717171827765713346381524356645943368025874508705339116487666889482349168540299597563198893371061978611481803132053505778364200045894216539963411727652897559476963441232895086682909391767395351630056198061436958960339301574034415519056892485218014701475894491226895561173543890606500301179269645170918923262610720701728782534345778796300455526531904211434436262217774625937249543436356893016194595113216766167187366334279286888438033768559838699726924314470714713765168687350175463824600457409928515284128670674557316384596780264757325217814331352370818489666965632931729884539699109666591901876728463573529127510007205453197305357581528942636164303066220340460523921767776175046291966335086850471891700652192807910294703538843546532363378956532637963851649948945333806448961511040049896578085245615616688711322860002228051382119394734818935338095508810478677910053315732589848312861379209363451740715522298680476586157238882351839361558860305406851300044214646147393842699798185543820236422889180428106289667930800881830447755648791319486631160905731677739984799842928100735983032599454375261715442820116999802748049912412483924693982188635903176286777026018691871854104930460239455790806543653305557181116847632788113703735444229439744468973270207990083574671328166926151174711646801513287485067876589725491919136180058264825409515064098838969300987373698929101682080373740296302563286635598341683699041977087339075418456202454130875356603124097128447169979673621302839597287047518951686102343523585626988143631691983337136602144964448712209988867332535782859340363977786574295680629924200785312716079829926665257339641537824390530614348807778450809512710651365006126082268546635267937469246802915072508182277064172182791994581268917922741868161721722070192494450129635666392698336745240570689174234650564135726749608470780015373336153720362384298608430687074213208737763747608509657542817129342149759034043039542754331436288810197770723189720245304567709389932656352151604686800670934290267454845945337327794079299054197585718377073306204472962109410373925046107292731938773237678787630829780829419011702331642382357308107934083284277132446757403629251671951631322446261620306596927656435664815698530955277454729322878248400930450504535926442435491942362037259128519910109528859876091438266935222089508086413534944052563248666532989087944171520154472739017743539691263190466814999758242027712478752319503277824482881870463988608099453534182332483620803708014939454292664024827345239349553511548025176209028453396247390999861436053015507946577725050655432183179694032231143377680453787948649978011645852041878808824039832398494330517714555358419787927123435749582936780940135870338493363163672909163651570372747747406296193994791245140465033368195319730539276284303918176978798916089121604651618574186866607026004026682668499883833164859471451314334264407173841898636512742052734523540852594959504973586959499580207115319530485454594599743522345247327327819668958268065428707916094119268710425543834861279423592114982464413090936472476384259674023209854081837915280922228195023400816953437005696350676801015070951421998493329328568156410974394559188082167204059909682565866072563180870977583122337354248854983104614359932151754436491411297588388081386749106428067213141898665080458406620567482735083015819339238048341233867323824292092286768738119581698142974252571843293970666577153988250205701110650384562743128000505906853389152624631009957519369611426025721814539724393030071312323544527887390543503612721520371812303395953051895063056306016799964815152938267958131783861296577160245173132993318506408491742542908946765147881305421146603632245693582554871363840616582680369650837245050863973569095459407407314218712184462851521510303641252710170485566387763080301208195602716175630055354672852301223916636240853168213518729217042286712873434796324196993212561564555982236418618139206231044347193760025446395640703753202648804210776221294413463003099742211573036154821618962842075907518745127469257630339752204552357137193220169324449819368130029967443804501150204917570255639957535424444211419019028655529426898820979100632103330581747285039190774152699646934782202389611122887239358896534540252324031627398953560828222889080999499406126932070710889915333270858504491953661853889114979160735268036167475009575365165608664367249878316926029875490010683657535088813594400151808523743257351712807018749484115217594083921004154993340205268922027814858118827187257962851192845003323625102660666265750230343573271952363481701354946109144597745224788016854158350460694392590406247140277396769595081395859684503582979424862033711338274154814772873257065602640358199249074282772811800944106451278118123978541821791001966305768365561683801012469685337748890617260472278550721746927184656554230420301003943129156763686937269821024853814226657816068968651987656686130532788196972409690644180051061407135363632494191760898424351332980841723875867244529548121288831611259973764229854330436914285915402043628665557759185494421976217240741115194967341985240760963980760422359406532022351685831778878389598925484190503147522507900217273042782073381185137785256683941016694634238712241492634206989882133923901802645065085779322889176110496670262189091007648092000392104390798369720182777933645162338520596191265956781639930367152552528232364325369062611829518264579014314542841052147212739964279781164583752806354374677271649437527993165838867399477518357611158145488389338535067978868067547569252530725371749513855419783662072768363711476444081550888816050074958496823120500699499159425536598805938942890229828740513269194852185453801620121317982774799389019290843648635256907565250383533061267544061126915210447125026358787184746469247760885700551506581260779695804506117762139679495912982395188343412999578858796408855971136155645985411754181013669946255223103233182423678537191114782102458867262398795407641744499887402919057047470009719828817101768927553669588536602123734740175502314930677052893875300037273876322864189310316620663159792180469979912021762402009282367435008858986984738833535966633623596882351667426664480697271907339402871266704460315796824690383024953045376141825681649196653696661835982043403403616501041696337952712291327640844368873652595834364995977169696284646546014894698866368941221504647823700720401112683578703611043222772206986856479243332410766099459106856919098834817688522124456159554851999305133167522175654838149720079142929236403894535237697050304550038815688586856607254119700695740185589921340795476274646844494911182632058224584133427837204065425752987850401306795354897566376808745581629443733668339323382640242588365362649427937565095484830020484830330838560977387202173881142923681244878248953913129515522100874168527034282339976739370973420364978329736773550738211965907183636815198434021974571394331743232907041007566014256165589199118279105657023535124524681923406948507303750281426252375636458481680264673088569078650910166053998412350054522711275976681012560106016640916291610018323497851553014293689860870410355076567892575186221738539668403803122803063344900931561000168542668275010691761936419980701486882527993164902195617513704212818705620496074284668978692337786839894411162789306188921349029079405810766307825050211700815044623893360039031016497028747208707687366208722957171989630751548124750633190315338114423606935362466661056338965762854986746010054376086006139127849163608757152023305023722885260668256774310281092795057983797668644792518882849858949571410590304834765986737797584090675009571592215843619167008198213100003038190053303257044781869738519952394758447155114549373125061541150424847689309435917722864525659774629113374997209881595895384721770364481327828231963047926062604806226347459003681196126636345192164876696633028847862431250490177229112804176422460738567491310187308143248367787481653299412108493988269958659919372759955614070985733394677264746838571096312285963875834916901217403344992857590488101984799312629661513642961957975618080648797011899872130074509201126585448351093134984813866997573440366428036105961807778811729786534617315667406081891522611133415396627369104677594359059635225684167675818646463648331755460457482667664498298507199462021353849449627343815944702098406733435132419959090902758789509921844074491107176397035029845563924150080447474353057740967771326897375295156541134933487404353402899579441364174030403484682504527709146386096511054253824965132654178775571691826075620341081939391162907934594541829545842863607242427386711412538128569762885087299067182822813365255169474603663567790795955687385088711167808548815344634846553676587503824496995704160273351766034333511617326024254366750040968896286165101155169416038986816296708660751452767110640846981542792711849591654342226661153782522497012914867057156422042155503518461211703404243228388251326564221194293983374409786176128482760218479748110369320948977086164017482698134786734913674792587781448546721778017762708436848193957421334433219529702407566112319544564794794972349255597770925893848242078264164791472518409687982807760169544302620131841932174629021559387541598953268831129159010778694962854651756655311172636637512301360968805633334287944201837311773092555386549156684327466101100031728663132503065008556149424330274232999703955013705792015800778702454320855106317613248296676324355632961651256741364922122917987828063500316429548127881174647258773813078148317282814732178911303105088465719546489785066533475683807715773283515554694089898789724416298062243063330186378311907839469762842154208726312103762209731183567469339088092236074044006303167772538214459432874453124614629823128489160983400196316816904199238683358180748615611603292513983555696166693775309309010536493373717788510928819318601253800205759938860707811627931941879831210145237254071378450478145836868544822787955999005511392905336872651967286500327396328191833939243588924726808284551362422084330069393504535457914020906154207051781198768013299242599934885520770365673081552854173651377945453818903536265742937138071578177285951880309499067752422354597711200550717504835967380303592940554985941580917399857371451435348147440635899427742263062513809464106984136688398015630382025815255864660031757349560508792061796080079015573957255774340095434780965078648881223274172712526183850127520917769322653203346807660052443228841213529358379946603799891778018176026385230804935939784510402936094528273653654575566112637556910689431888802689714057531496612552763214923444115109608174937076779623155648530080621892031898748452894820178204702012595594431826044427556234329749925133725268881757306713692656915659288264243168830681333166552934762909558411044206261694113680795454425884252297179428261066382845901204095990123187813880216021253437913364164628926676285700695261476136154821385536040508715721116223192095460223629652808820097768894958621891769219523067369212272128168171607941718930376301045228272386656968689909087762187810045651828581574879499354034467419275838067373075939756158169459828863621418291873273621605814679132976787414151877615873364868093204522135284882025407470115880425568459510052903280506976588438506247975357614097040089413789805715975623907008450577874625265262259247701486429413999041059561050051109211077104859871323236284543761311754454615218921305792675663740622366613081272421809807915739575563389959511027250343071307067369623371965641487950813212765516600855212902926448290251022934789280352692282052402182732920500456819407899516948684764920984676091816205561177195113007056490775655904349508385699679718832312278164659086370183571113775681348411288989687562726527833760149786581754719735830203180678285077320210102704958383872503314882474342595804411828503512164958706104138110447226261991406940021150596890723735083755433230589266090877505059760636013011230377283994254647247582412638443816665261153369925985156363631752060734862488911913885811568507625717409157883354158236643053902208571640141787556949357803537698028867009115938572632204414989024954738397154167513896890564410883033889722629377390027222416868983829228294403810551332663611010080268791551074936616254848686183360833138033882226333775712625408212478798365650945637600202853892543023733775841913362368520783476140741975313168515337614654758090646020631484764172356089110943287175177933870538871134094963448872276833465839734700645696596768782424436227733483856847336469255092823222087550259756179515761400900532396997219537919202706200706924863959386234467586849285808723921746148974824757565410918410643442974082910692613267373818712908070560882540045402652587648363043795723941990531429838232808669573298811800254372202428312403254362479345157368118097684879450856407428855527352199400786020770812316327217350834687111463635934911744772867076833846213010882577388915076967119354610983748688209114356490058730196260378931128733188098034225257219984014926351939204360944285212205837833225158497120562192565142003907713807192647626643282550906824267954085519708604079368631786286121445103277319330735342074925716736670656607579972235566854904215399263979160824660781285355085811619374347895669385068058131318844171137596954104816131648225068223284592293791215029366851461775016720095575256290184087721702206825531758158828705185162648327115423851194143060914266768750107219468408574765944080839874290893577370101771190221279362290630140022214346524789780256736928449380683303793213102449989135932290325638177046060500974770905805256588975536845358196242407881949633864250515150985312889362393209028112928404053989439267122130151524751642807432312792572263421404599665709315505092799388569522564333731913614913515337205985080375416334071420470156096119639143285947646164788928330093160701841026519323656133545747561155496432509212886051470665535330124648382553698385155613915418145683102688127822306934149850948068803348037998832034654764257214186776081933653754605104708816709367202666892395851607381918104879128751982078672397437254615409113838498240525486855510771294381702862066345596934689161417313686088286977352195203879864696193878186003258311125989226406715186887140805672871856200069406743344099343347219075475099565295858383647039585683197497680752062882964207099127135830681674860749203638397824633354521684247259788609342226731583797267978269175529173198504014997112024382711867015723885569174851304741378038073655854689173705506409844581888342266618722136350404920637873949603512240357589325107930487812508519193563938337616798336789818067688829396436750367033086162082294638359595796034417665394916750738050899090152003243459760253130304002695238407781922475214236449199603294045154675492581866837837688345834406175656663866331212603088361729811896166179068074641352288137263222157811069113616229893383764015353573954748094824125173326965790698668653642212705812019752122814842840194420492635868300360848507982317472991170707233838895606353928023689386050499428409837602606139255298245975642013203084605295223085580722439786109468436939401322361647850326278244228089272875275761436422530234403063095664969254984594322067778888031880385786876295152941576986208235073166781952353637042460977721254381539723516461850496829127236699498343452248991112452712335157675814557902508812442487618673650895742237555574298265268816347400619911704494275838470250929444508828287877658862970540899119521968221780507672758438768276996127975740847334601701715891566252391309032405771598399489511201570046776649167064831365951049759400893779582330961766907856222349857712388014756470897789679555404172033309061006515314304066910660450911112221862630366609450173953376738321816014260320340092124291556851856766165454331462237818095594384428812627115494912505643547492237613174063547902303428651217121186895428397544317251081649262839217883684596696244050337747978917079977749962645041011869384341830028126027782158904183791412120734885320767393900114431896994005465451755336038319899963175127618605699557761383506426991621336187421635149166668342102071349444953597156991521928237930884120282852474086699086489686492965188064402197947762306916788741191475551421127834664598548347748068277959517550483409748644984525989862854489379786706246788366412744681669594281950956381331714288990449597125699781389532502583687948029570483885572958979373481339792947418951436113725575576375093475115347486891931386840766176597989869967494275732069405917618084835413044646335389487175215953583487577207453749514914482513736606640549437739947685518304067126740038803816390565149892718630487824900128206418200029966209967471116609351629628948191231221684976643193986897017395088180761420249835380094029245352937008030176952637389396999587916109899105615241673974622774748831085907613000014360030969567476238673639201234976113595886414137847142472367414394304664983993022585807898183359322874058038826447507918443470412028451423553272220071856119753873322807453890784464459733530181959744731641882992133864758228033094485442793050584221604862311792406259580562740625246885969650721172239350277584508528511818955951536574036704596037400078923513914600774262403057750442014023314016650061567688494087584528618550374307343222731769774061222734493895233410036855765962140596476571277564362836516657438127701838935227199884497508973530157188238668563406969393794249018542001374468587278786143976888610470890248184383293867557377206802271862681890950816709810723902493524720810862421483956356505092086214580422339949507981891928862053672642431564892310144008189648295099686547843609661129098773952756043928933433890340796879709602769126234639956110837882827975139510307549862039912919953278154647566421425839766888760523168334206328185993641481935331021685250783372107927038015593243640204395687704999765763074041488711806136926473717483321710825187336894008547481767590659709787440972265276236471840207435129040711665415422673618606618432823736259061472282075031340313073524250882736800436625176286519042211006725650516405387201506279273934074827911132466866443025799295805929713882852047265216942063522779284464828233114479251384512935273131408131797308137562196128025147516043774024757974632512189133808121474668088889820515296876408281375120726033949351197261021377383801785857180000370254756894925289595767733562310211131894574339986005123854605574843504832080290144366052798473914577059862812868164362350974330375558752656676670710401330756495464527869857131138384174396667765574382134029920122360215274854696852943481628062510484116355082945144838069794377397724421040009526431825413934742733878993771281130693533137335380000425560748823918373933963320321471777538365350423931172478005473050615467276005632090385813840783505010772164795576806135523525824444642647796748934879852969870539970400889282918525173528439086700402813419367892276541394676936777381169143445610942865482930547715900237551560025699322689858072676547384339554514718512509306550906915858861990490456177591118731423141135231831542963011755624146578476796521885049646938688510712071212472334581081352771609925140144282924240416696030809239240800400015053526632215976391399924258434589869325586869426555311774013154289834263377571748813591199129467648606665051334719235091143189947041752638195684016915738202591640746274841427710364971232555712703419277301456896280319760137368508011796474557530360803459116680876898188026436862700599110453615569027657903962674396682777889840860969300507087642274761409038552763152254341120043872154772637840368677254976676159158397489721707935745076375419590853664104119760577518409015650197030915970699217898746613825619463874716710435408931567270884807973957771470276164093633893578052417568200159365934543619333671218008544502040244817603262764918000287077310399528430999567792974972576821669106389833796416328038201459981974450206394806590217461811689615124198930118509813614057808969075258046900099407555758646051070121773403107740275357790866128079262725336913424085024795765598176185858928424897652389012578920239090680349329653823895212878770739907064298662110784629136647637434775520754580267491689048809894823958747833218799458190897427388665193571199014382656183062827075182455168204384735084415797717998143034014952670220539155225671494198320570864018396398222644245931896186053781004673017106406447610106179850660239969238313358820265118866632649686710061370812160280232065989386974390056891815571160918254582195414310036584995132220360300518717432776325172318446654167844984882078225347246060140034429899984310691734036099311169996755612733577699557693808378916549973692342098063419654564030186695731391272615808038123622986003537593587269538666300201429425344672252211974781401925707000869889221956025035741714519486611687477360470571941942783644037986770340890836474477531149716720091863047637799790677352133658290422898608426209498031498273788446158941584706868829112199002481920761174395259361603152191664540979510547806888527556882267385061364450128771139742407711845386844612566736926994938862846524615782369882252797086049754735211117800727238175988029387964313371570809653367043734930681269519191786535903672121517745880588505225245050482027350990221889553606205369570674510861130424975106403700916920122742398408437224987035998575480668604322277262722749269486301544656279963860660687539121480665226196357579521917168085894708673438997310625743944034124501640686588474568721274170447054535623532865671115275940871247993866526733741437154034825391929484279444227920007524222053420455486477166486051187803463022310126794918980457890606463695071196320682811123250982243448606405284345762875940462673715800702220987874109393340542694906703472075428802389596312446620030471636518745264332063458599331977150556443360666750766983101695851503713531585335435633867946506899682826293470861585328740087544566076672804945831085003813573196243072945326916735392841967735146379769584863727312211682639244739528161089600074549200499268098430945317458911333808353981205849836355892146786265173692543313498541175524062682962008427421523577009534608109735652730158679175300522883541991586340638689425016593581915199928046803472233400481507684755511192801588159445472586990056804470612149273726308006148856955182170567538305295901379045446320431774070210852219292324076715012904217807061843380111978493063625791851721371234707984446699996229555153102079526412100003691062267906214975246923015988281471649519899001729569445493614331106676480471261820338101064652591440836255644975782444362781529369313184221962535914813468283096109492222911517644352262820162960765345767923639108765210105259373264702324574900070722548795339728082573368329887731342040027106428429197133129648197893348843903193654116075809613549996545947432912449731534754429863890289345899312882750971458660254280692498428682393463944802093052343018272962315918436681036705373431089732483319462320402142595374505847430373653560767111442468608217126675501945315692940435461458138101415441459527310831820496778509946710389281726091379869637985615536093497495494937204914795016702677476333838574909421899930313728048070956851898272548543711706225024439465810749024795713518494911792783220829175464761516424764148559715064549995692864741873747783838687797394608585111458118126466464789375983912852791973052300777802728726451069526323621999875058056165939122367652262596515266401477572323766299732622178305881821004385435187219187934738158342958109022470670949347534945586414231898984344335876064755937291876806159693987112854519063672794148556846228712008046869445060432738725784706053011457205060102728795138888511803388486733700250669583723384923305005105477061198340075753914574638506421111653813934095452625210210561495462680413192681024137337300654622042841004104263262171783736724351897000780266702577676398227477898658254403362479466254510801117097803273764483875728941626994661061043415212724562563520505652248131321552816422281068146581905724388263553996482788680314495325126615286028219168676890748963833706922140827983262347671016188191499985412115377354247830174556885979754249543402014103665748130069713653122761446666489487328459564422469231967238634454560734965494933427193480829144222211850797579990165377976245334318114472965795695661619142126605104013002565926452628975556504915469282471230903774247687683679670552633867621859626310853001601217933522349841978477141476383235195687258131873841920517220251688627747260979611778223052257251326043752667201215682318605449006217410120174506527971372919520682113464441100869925025996240304345734733995373534118475714189146496687878886014942363970473631003015397608365965439259082174065141182282443424060275497276872944903878888851101894039520658218299290734092764876480378395301159052473868337349810207474642481853653863454149097836510638197184589779772886033045202025213106056988958755314229585996271205715200863560390527472920533238807323322287211928366008304649748505693572187320947373397211830157514971979697588046267934960677884732884761223265091361516277927108170023227357511281190336845571401377262914069106742397498799088672145296761161971598558332522245664665432092569517936228671264178987652222567203989051128521088042296254318569123716752837123927281526142457696521346901291857844787642909931179694655375838911996043583979543941704284122740930273698086891428503721659160976755779112423167945215450556169754372694360453170786941236893774516073563826225125081740365298237939053104536283279628646238844935671672143396606066732580976984084439751070022351620355588962715322304102695790480840214515777031801682471957897963135774160731089332410841936722873384141448082811828369924257459458450284828481373690543097902916523673583838897663670340335476969165187885768980544532493461163912786189667080774384493342134234244365096904983986998520318094909277073717721932014303007943390652831492162275806066876754343385603931231602323066393864790809928389494196537554453719236643390692050959367745389832089583824887927954563056501398120353522663109466375879675198727493210147792545285821350601585366423863846138372921801618417385421827625712453769966391725124626476161275738335526112557837701562722937339833257531074932206257410772804490121177324698979715210328239412021119578203906056464770743239311898310972469736686820137836889023350321539430311425352345824442135059097121645367774409546926999664666824102127343126333654209971598155019903902157225335588842839905924627890126594658594921086258835310603726418810622880136386673623772173483075896493289897460531413813568013934685129968728564672421991280961387368580882197548318786435948685390435915980814203056534567934616750520657498997942627733340941826901876202166576455103433344539396810926960890451216511763148379926522264505749967457493466501317851988353619790022795651737782924640043073871758179431365606287933203767258491858990084325287299550473422009296884969016150682378159499331088408355675925048083490842272189294088975755252811792607914291066041787035666091979419071655965584691655323875144224471599418110195065310864437517679944974907674722910859246592684070891835950520216899921954612893593369854377951051552739251137104806557428053239359495574965348222826627812547559010044695210672317725068784387211748992648838469657299664066583053354059969566360169426444589264008326280345782285383768041703251147615918082786628551180892681457544815211025786452022495246513185873580255368554970378829117360657411071581744977014899212043942682488572923092644866129786622495928687052824384799204716092926077992693015419953891865765017367694071387016744728213637235980373811492734626923187340948837636055422578029344688935043822444013881548694484310979270392556841767106396591425219861663582151994784531954247810581657752346166703828286155164135809272419240946201291698200473101040927002043581498484940918586014606403866189891367798708840709165983637492340957457900731744193835698059540988324778227699791376526958598660983161615054124772027355407764044318899558284674226613482807523240657057909079169323366670320474221381314967004155747754089420293542731324852148894762514612668859623320460617633275404343243421506896560836552894090689714567536952940770343077200706652136650162539385671267878846638803717637231134483832127347384260267337851352156547988813677174499584827348786784923505488769818758378760052390686158206541638785795411534507629927873311874942119530120736942715332475573559155114224394026145093370863420714228335903373414234324225335128936637194688062048314106469158021973996377650685974834047492574133283372540130343552711513813073409244945879632566975561233652585174848157679220594481940915760778209375872573897972392490550304181536754142292028113496141783410962635742780073294855358206503328620589364904889333829479491240584563867861216861187169802308958985066975529877172306319655362681477887927865914401962456778595527094887897543335061932880351492399042818129955067426535265295747385159359698248943766332486030666163506537876306392840221141788084912368814286292528841589545530492069084874949993264913025715332569146602748695102046414430805438728936460683870055299660844429678910375509505608069642409155090958098717670594094104693337674019844956375657020767292376359700489389960777966823484919566124483152448892774139188836417662354599071816687774379294899402003781535532503159743487607955573620401489090614286419397828402294459368306324627398047195536395238109826229918202448455846620711530812208978128823619012797285337576241542564423730138549774281990162420164686851098460309581356604966674189890388566037127657958587734460136707375260812420245520510639544583969123748955487008042373041362979704178559854448057510639306394361657280696696786005505815746861187096440758416259780960652962387403340583756009215271489044432308017296322383432507995984730981810465299282120045300770831451397384601072658635619767956610532094999517290139986744415530929716437957465363115191919809169502849881438042455623486043756964141495750346142234707421110821922641201778098509502739023589251107124401714695385244589647418599803011757818563356568611195951480397499946219434594969720419477781771230171143434703412030897579137463071826494858723076206793715356697280777579518745530421428721064257211139822788352191825955042047644302245737929633150528027442861950176470310519410991777902312996114708008932663657818917259046673104492636605983513529687401124743086737756202696127709078237987370052854717683355488702263935362503258526547670414446541278277711191760955832993054847832396856672122295379934149405149145837820026636361821233353789006590207864455577020763141000170432345785494975512063067029698152488417719115417792939886195377991295432475408883310915022597365393932759332674753437458661910996781118991131425417069609549996388591458412613602729932730054143526047365242331843699753590520961149829939488205664644663052820553758831895901611883704286779074290998976488831924881152942624399401351828313228870852799221245121073293076825668388206816543005022399361412164147835186762713827391358733552609654173565525589795471606180587325823348749272467585205192955002159485102764302793282462154229519423562998681917663422851492536330271459341074019056788851278095336348558892526702216607785625696195258630547719050553394137862310715196985821770313991100704391210681620779407978304111150945275597009268041300511817473412460383460867655889440420510123886769379817764043420054936568331118433345596485720765489246090747208205772374370953468433990680841749057338908899467393193836690800788036533607215459707584288181850286432779347791584496090669170168614275185825997162152651671744345247417995161494599763463194493982544187068592914801628003985016946331489357322346011272532804439477365646163183113566506860839475192277437263860491413931411526651311570324226902491855804931435010076324269774126763557292922534945141560992758012149241846203905315843231231184835651141496178658266163540715689985735949850229215091152974849733626350899374873584162543641548249383858363492831637789819614051620795418289966163484987847940256819785086719425799058062435425346959447501639246277951600557617531632232999538396922659401588235141995773560767141565769572618082445837193131291419294756265097916449555729309969716038346536956498396046692501085496322118890040652335828700632142934340334582455479855049614811277938404743833852781710453442680797761261829564083994480433952438034754288043997812414501217003707173167235452966754598250468084245338309838451471750974148356232457867839717354427798040168417021076978213373258127195806571015873657646303658246838587485696608274427484565353250313922466591666910295916626938965581548106679134897973073717215832237954573887899933486883027650834772207053332095936450528711290893132072800849960187505538647297270561546976507210147140362805471284297070706585469202497720946018637048061963063923165676873633349501452147171899529968023565065089848895867567292497651278928448755923460663408291793965024289072133647101360638188347594590098437073624558049855621202033687794921189275075406600082598957962623720026028821050654395358032563923110674490636175024198537170920488942153288042184722319446737168519751520211431235072674417275265357595468181811281397579685231956503370336157801660190987656677026942545418392273795238633253352050240212149552502454993089280270705954464996474004469513279468986662077943038511682499818800670319006632031822447971623678122792613414824336371838890117657637467521664851376670755582737109063872844070630866829508284022317255257282729696486817003685532284080333211859064152764200725615283415247441264063763604487715952884484648203796115968528112665459905173529073224472184545939023710295295347547640805608437286203196867315343803335988227906251123181798519017451952617634334893911248116177398149079738734822712904079778437406502047273649567313745287838967592731131044407114886395840258112136864758210796861827291154343967163771411940576233228674602087981935575640847511045712646060850162660599985343671856430517285878998156326863997733702800770041264539615420873336340763348384373252038796601381309872446027994196267465914099591306560427653234027376845661643372639382548083931606269861179109941173770123471718670287007917403314422069233208107906342221738973956932623443911299490875132165259624105581889237812135861251838621993339623897489022537944277672121470107937629136741047079276603562729332353093491385709305693685612113789763643348667788233083030013314505114966901760112739338940163016888065510382912005877882931500719617757719245023564088296949088243876038163545553720369271567321673909739141378146172761142790350397221916702012077361257640152853661503081107730610534318146174872348945612298812229597571768224323473214877307230415255511568095258067003949008574789857205163147289735589585880259297756020525955887518499308149168413903491316583575687573309399200960587889392409273041836099793182139593550731136471881881018893950113713242070573608939106507130230584254224203952863662789987299884529133295828093857153385280438207116758300025792427024456168190889280903133296073235898638564421306839106752777497479754060477682989169162908948553922526785051345466737056045176420357801532355353850562178082388135883046352651283583604104665481320614927114037065202576256004509985318087661270703811643786323356894771378054052705880375194446458466801603495858436470026476089542204331058297431615464410982924472282884508423428543482948595015093193162478638246082139454607919756360711977796761534428564053865968663180103080677015166707504948562769267919458129478223364363926925493422487511813033773733617490425188761548845070432517568360311439845310174317480887869740412027438663388246354051826221893996300798378827278919372928079344997100796152676994240906791273492756486008892618884458487908853591024967146733140488633423813210966931118588954827187235658716269129774738069687152303658623841651754483345201522899095206730700386015023155345409993197571094383132582116266288473428226319678812936686779895798665025278384658528380985381298843163943528735558475744183450740862013534034285008970956209469108102518684758127056261932535713016768801863799820535126484318239940930927541230898205976707091859723867414758388837364413359653651831242538326537930081088385500669448799813843468376657336146391876803371453686195962366314965565208953414282191847822133513605761258012932276224994262664564694749828055293870640147846686027903313004475170117793531406507302471333678775652470350095765418088229774433479440075634970675273550315289707477089523205100436014306385565164806953154356330027038912257250738262263197652794893214292614521556616022393721607053812499501130280470139109968258428809020618672501325291768940223425733208521301892845811443658362026853751468051046488468431705055412552513580667744170314625793452532002712325037727727479252540190692687108936534921661530026972588818474124671766281798311736596728007659063334319501632573952050509524194040894451818800075071941235419567904497587610835718097237416412402097639136548157684847662607643287934856124954151906587146018518588370183356096802752455274652575953524484028757357703146977958858101478657322813731806574653770568688938566536032842761264466654067171687178448341326713204440330076948375620657165279810780757944030784365705963221068833261655244707313503349696599416604726843253198862088594881382468261765781676067799481185945810232892861852524575444094807156519391004158915365545614405282470318761496419874970905649714886380319384569692526565621037851857364141245173275446224992974600266056736781535540253258352252886598627539128907047157900150356109914130312063366153582535498999404661601147187098050229739084947734093682787651003823326431076034695096674520853507733827161853022176051150973637584455885516356274233747576559296981333861164303384044689707232768638404009501804464547920627065076444640575220646364116000835008932200083253357148308517782964847282329232459796412671728932051687714479484879956857933985076120821366403200610807232160841648810167049687199485516541712923925297349426308548442754979929856848264596470153078611251459047178925961412057521492166180567453803045811833215424851166173285500583595374459862851810299522445648532120769756028808729553441070005733790769452603290428787455385543373771732146684176426288151694284761956345231930166495286474840104434987297544837706426923789672538770785479510342564308538720859765088801179540267408257888667034685328354684657052933963942502727327517036129803380990808952450103436801173433370709383423272771069267671950956779470711923778923266422624996415682713722181451335637491107970203065912717196233047291619311860059762794819032224393303144354072417784664668582050574330780484239968545977913527023518126686464825645286571742086084689125369390070659372739387683202850771141420328962113752700912208877613410836386077599888392648210225630377955535418240121163655417930772783914959344748936963116719021411805997736359144643493626580602496714150439220646587529289764889535310740948176997738188625920391250155348334682732359271327061384411030743897945872878667907143599740478098907809432706503549653249419700539446425952985630618203092746989177240094994326204385443268461494767083350572895822410077387405683584443963701958339385972146829079306281032558873830063807977579231143664295379999146692223085513916255871820975433546561356121278714894898247249855207153863176924174899759510215324698792158314203148901832656541952869617186162068486151510209475920343496053365123633231782576536116545735500232962246046394590187692043391759762519937571710115302649454688983485275251675748764167922806453631493133924283643420655385158312738423189396376909427861815827511177824076476178008882807502846657889403749873158406516412813958145135584105946350725924540711987028993361401890967074040814401447625026222209859934752478502896972477456859978211037182541785951668973404324491205975429400660401558158406074699462221547502932555954634791307591727743403111957917931335134259630646958687792041665361545811875007119138751061149122000413506643610523301335329673833092699667743540639102505822881728293613395351770990387567688819827232046453183857007471670703429617170005728995134323725819813131469750491673941524308862712252234110083017966613878321488295944070643304038868232626996135823178001197496993760853542159097779031342982915983752466899596195099632752864577496989901312481115584157330184310476576408040055091362179529306972538652786066529589595817528046382833158729957098735228175812014817574602940835557894791113121995284650077204450971257326366491296022040658156541193497266247410717122924934442781028950433676576333553412180225959731305557826130246621071428070911866948676839408954056542008284388184756996050320704261547966838760717107073437655857212072608958988595249487288013213691254278274488642875979143755736274048079859109129335843825661852501915339834613074551088540170000941272776477005732512536875082948570803105525435972977736528129908941313923144973092575061607905978970145643006844609298956584139723933791555750490767652432221204652247809622817010455963322405822125267386355678856626426824213609003311361002219195531790912904505204189558930264211971014878587002593426230838052837802025608499135939965365390054605297623649988660512270313653543706349961829915345512962922588592631584231144050645527814620231333059479297105196492307403417482605617452519388095436360731218352577424065169200346353619164301694406065780131693502588117254507688406540031931090242470152413134508628219407730225873716601711533485213149161196940560019138271161552151830102782076644823289987867051772493546023423640269503831620542767089291057507280933311744805233136216385659621161039398082230603554231081044751416115837439884950738631270375739931801921670506335155405077720989850241892237726175559871187614174545168136461891888951702885089105037352460629573181655980621553668143760871616018570171814315875015058578795471627908814338888395572606585587389591059563324754873491018702542097210409536966845727186187397717063012734918255047175913616426188085565648721969741896255293924035178936154518710566950095979323136903374936992036787011983785790597210166252721323455713339122992676492277536957323376151887670887149561846861282322840576791567262755320280657366232280832412776167336118879107327807009123031701727407892342047254883207419483671188275740408919541246777677985504888048680670384362034612600127488389310753350029212317412050787247522339876917980530518205524331811299287003465334083004118862946512967687221946390158944038055193488000938828103621611186899125358772700824615452161289596304756503294809775904323658552954805486569272498657932996097240445193780677397813635241113245069797690898172294188087552511679124071472607021725568986559025137395761889147068160400500837224051659351068390809947499683310451065962353281450347689618195457376445459276356938327527016811221670339745580746818930433938487905163840059552568377924320004040826441393357622010828283366433060160372524776264834419758216846620919370734050310891391464005895824960439314219581958893464161693516909806265014422707422593173456801048364228777002039885893056611226235166363950999812038657601706969836059847580116293396390161040969678904485646413357910718818256962264754891831362418531194067513346723052185406739622657008241191459514335780419288018891040743936501054155992489991936912607107754277713924626791017128323807353643989689738728169222884988833941099710575875915819869268611009986402007181417016770387448352537038905775186096628827621836964860702901889518158057620273707275730105121428587845333485500536524853999655589085943378087358938064802523886221043284377884804293602658521264210387519790300367607217768729561034982152537001440612313582197017699874328878197708942154686139287853662902455914619142997702307103738810719332693994931440542261449777440255745579985747790614426655234179792688985299116590055245829565056436969915867850497371468819736694727131374882951532819334791495225410320800507979131640890208348487364718077158053387794089940581634601545587502705290716362230479266453456206932356232933897639835206352160303097556393793827726917932669845540125217043798441710830316261199351337768976447453484992586508153390398777039994705762182185646391656920762369457472696167070876724173651083721339670667238075181669454043879796980773976889069331285573951212164033127480223822782701503105078159204510814101628299705622505727793231920496672105304524437326583839418482036357042707481629256697766035818047755984388619928078023989356991528052831139521631806061352965639466380820556371083795725218702955769904298345097180158719512574580325384946836150398977615073232367160148618226186666991012805530170998495759874097441431108159032238343004607443663694474712475234263244072001923224551322192488946266258030453150665737673109856532011661184382315753954941244173171781736289383218467978164108193740509126111688928931331181826460297252799027924626993099922454468501867292427963471971476535882384739339731150700938946029933952497224277823562715883350963386257636872765337759093306254670328309662016786400588064507640049154590782078796139239701320006175439549925676741100531288406828322716061181549727247366938942623857978758424471662580986536541518262440102287766373219495730547894153927358492480254671274840933494582477646299507948410193522765226656573200807431592638317964264295766223280455409009088371717421483625982129728700115794601555705699437384206961188854486433351564118904156189592974473627806175907499108618043822936692258372567497545834142734274284771501147942398300782462501592068579175574908339237260409779939124346986610629457505632499481764607822681287432808309994917207499461468601876273988946735847692607376427055482539571208775150657691001130462293286524068730286838641646157786221324228519579875765697560152916268972346020067897579155459270629924296243819115461846463769483769775200903339015390364869006382338512664528537213973559414311616975750963351043361203709506016550024445039972384476660952637169620880226170046310113530617468263723715354651495511310176276952674968958802347875961772477126788829531918669104918524641690585085419070573150654551401981480503316369174660042945746530690365738066108294253686505638670130416745562089295030328291973772967542647257528699160460750968444205007975315145357544298696256290648314903384745055292387302335919883285479568392346257568131547716104327463667608658806256689524276534746967975704943112202333430881434437390314039992780233239057536806017050825509456201633305020681553819666652097669301557139623905464403861360507742848227866417461667581388786743230263104082460783727268929197470389562825779144456796013932257986143907966065966602152908121505216932537208897037761439550314331138945106281760561445232802215259342822906377765385656465294495626729487306965308487931422950351695921492488888428004728435433570311894917403541631423066156721645953421127808294958593420012754892100965888514713410168448962596653344692110485103476306818133603351654342449304986656947658896093103522736106033450955152662300816464531600479330396815277565042415121047200403993833200283482272039507846218106610895131563882409222776592677356829489926766403006339589844677734913607441690619990393361883603367991418998186667123951932802735419054853201977737219521125423544659269636738510191081119886057122104344067622956874748355523661414016531554735584506904653160170299140887090480927758876137770280094070288180379004918225983695644711825092057855589474577006540812565768521752881633025776975401943000770088046381127446928526209936132764546729829806738675424988857297594948904215806394956399498026110022795834117211088662482827038188662414874137163084882432837350018835207951638350495976374339328119494565971061244494637864624420060196128519931327520135333440158675352553867204661884346611586890227957281919237335089756464088038767002101620382484514830655307569866152433100264886139170203694790661709173541121282072880356879156655908303921665703067852819616851551327885799195098546147843661457604319361879591769262205258732337846180687009475578881446657005700814625570685288957196243266350672799205939119993482195018371553927821187027570341765513195588341620725856864266772366132759795314326357593158816475626550537613414919488892033047676964064018467238864552909923637908727612693371945248429775998051370124319949402992210572965057927691811081876580479550753089266428809571713180925474111454486470085976290761984866679482889857353865137502531394033112570389817878494007456363239574438700288661825893817272518597551518178301206267971017077130090658281879097702477970595981295587641339364807758664511339418416684498657354394962243417381875167674012135607189457244119088064767672720309089376226130754223503447359928047917550695237787026004095508639449405049122694198044452748812343879512031261885007795196322389951630709632744514375726465372197705684593281076787502554230864811093822720815395656131583026056329563788408122516494378612810452271593525365331548681609412740305655230872921050869214299093969327885870459112848573926612416137252607799447994140618374417336868805007633199286063939708702849553835777088699568835302702538025861531361538456672314106342105808526445979673430287309720315731165808419679784541039716090558985478523565189755050144689680159357272366030327466425604200683220196485099972176431243463433119819276734212464618356046532929857228287818118239861596355961073030769271580931118585492375714589920891181760181058766356813819650181678451105230516534819777013707861516301151333442983955752324727899514385702384965494292884745018347749044169195062687584047120647418158282058171273747104473580157749518305104217236423182114331390855665654948475783358615106526427373179897814145561518480328201778386203862249622953839827051881891951039332143228812114055051998884814114868690760540237538218969420509519535161144503742976464069373064416997790329798165839126244389387198252084488593551660359358178231391645764227677106721995866058048576832718427481786165795325729404817512577557014064104608325635189653089448800272057939247138738152123284800034616888747893648690406758271941813105748502690202638230751036636389534893702368298928467124922036293329570328101309005910877755490465003922456627219482481496172179852542486289849293654354747037875629750152280146826894580408285055516745755724333193089425415561866040287748628397925991136087161209073141633765010143505974201833465953795002431048681342826323744868592773502084622881877593445676338621386991942916495966744895854258716847445897878944744656519733728753091577456905245846098967607092969777584606556984185577852630984154187811734723518769894494960078115171395646078066454978181719772861276572281899876319757725824513204874996573444920187760187398072415631050872070949342059272501831538848922511363688575571575054703915589769667170901924401467253727199248832848092301990455505490598020390179486323869073579089588831630084596740965560544877696948294869413018378154383840214239987857121197215771878506210936719722533759817956971423563708708848717585843918852066434497664083757559919067808136917275848585233636927860775284013167635435868611861486396326453577943219934025532317661051004681464240868705837657306084807498259793193651399916807502782920865659268268795356794779683096385313666324842900465122254291363070811772218911274133790544702345998474577408648651478685130182779611096057747216544025784114949098211988655928338177787653821460503348236148733255617785808763375925544143936598864919849129455680804810829716241025561733813641700684154313640291883481334651793218442515008518770114490223963625799179608495460438995694868531041708076104066847525927087702080974303570386339512546084036573393290750399395468508536240620840459444272799764269518082828670637635628441541767908948430821542882492943866065473891444523322057006218755554286891149714333316591247932417745286002374946109851796518343503170774523852196515141073394715438104169640773101808432015904512358789987366588945124675715237018974305845236496524428994719841312328651177151363806574906930566003421306517249426758831934491212849087944690887877179298016404039999228405402966563389605024600848176393163961420039022170448409356708030782700896975940737893071616522657095692764419348511626481310838348777959087967478618587576439815258513348509421303932428189460524169518363097185179752040913218545088477043294295473544858453138206151550429904501778925451332940054835726099032645620176523292272572535551232455563873284498930163361423383310865563481521831422960021556183145358803928584407036499772664657996220300167574084879892502608639334534665400267997601260383704458387459686464522989778688188884657371013957792587625166020288978698710409938643962806256125925125207957456152675229377767032781207943512865747353406480690438220420167761911212214110116085161643124676804671615959458983264618804875692987456521481917700343468801615650284303512645337361668706609357396992235070106419464802563437960306918203250360700677932782972406230606054016042112541336559406628423182312669050301987596920368048124704210469820145764200247616753980883044866469293865002775599616490850037146451190715109829643688786482890625966525333657293745479725807524517624362104021832340754148750448465005988738133032847509101142811593195077362116075608744525020119629883073826568200100419676906189115999989726411684011494562953352992738242786954946300775735476957718683943905010045626221737613340933414072979629935080126904735528785401426942134305010099217801887521479437943483431173880375935546758764549053591675219161820380958370121030046349847453349706370889969368695921804032338892567494675285788352670386444567678179020939061684257191573848110420319580262080479575749890552299296974860120768464610528958855902790687185576882825046971602769663648339265145798365421577331201991982425698325310131631074651423156548011683113217175245550786182791173990336827132518192399350644847440159867061407705078850280944880036467064187878971639797514221077513078308580916271645981675651650596414393730045532457583656451493063544258569711118347528491659096588227999776013778274195880637264118667112056815857956504430521961029788182494713371841009353628716070321248477901725163976894425978479261412413122105890445662422612932311256356994626440458988573036988313795738047083985276772320404447250705886987847719295297019515956503083060762201308818474025132558200774591468436640873291822630806441244656432195709554343461781747841988008787422158273492605253377876249848863907483698126410878823905526446223260471867918779595429435430263415089732720965709810640674266853564465527145613119332494844466166994123024251533006611842405551584364432779273109840411252149481668771154588194843068204124151995488588408104853396175348513479799785192348948654479145755997016684344630207642917757696644283534958782786081531120193845022683727541782711239458146651104072347075325888046164022847494753122906373884485469400726601615778509267347531537421552838578255170744652476805826046156810359793939024392011262927855364607262195391927371220528210195772868577285119621099687906517536352434975750274013819995610183701739945853069707559359975979268148335731427089666357805353718998764721564471456341030181532924263019676967397442021312952018279039014694417264737572126449572471685344236975772603467026488092714024331050196678767471527954475803776011167160567823356279303500333404645369235541594044211337507247084175715627208408459430719031368069577350700667656115701548699063547295303756038138289917077604937667106106947331729024279796893162077215580250230069907415421661172361985439974840332832952629320127620383558126533766448252890152019920079980289774193839305712101558374922647181306171161735230187102374443274272871312085508622971337071696087151494698206946691573011107022429199464697351034981539328469413914706803030626686362216685207396997167130195556733955604364099313497716311574432938302487458815337520247824952349365711159999135226842784228798298912593378330899969121116451628700800710996858622938943178792315270018302689410596516393616353616290519998920866557471663800142317626121211497078265949801063126557331875977846068488084695529298828785565434949058520325188265675792632652145662681682712674372397218433227551493086930419796133556514135125922776675125722186428756433084941976631511369084793328877829493066849159526011569579649892570508946915830787031581548385932212319977301549288864006807454677965381680964545594024197724304492169863731044673822716106357003593354979081430198701691838484471991190695492079479723899494218014168448354699471595835767723285704903580827994653618341676052864372056110464469011133850826815349596312306830003289159434266817560451381682232713759011324666251628323632061317505068308931159098478996770177260365741761385823221882479938045935036035120113349633136105299125740728992060310312169306145492963271856406544632147484594638444844171774270973349587274057549504210731035850766528489320261910513766106480478392510010150318287954376461838511082007336462889644959208084809098967811534195508462797212591265689729726410139739860110835744070415380870894231853554735509583549210354089045378696435432862299949023605780296106406833316563404386987217492583702660432201994588309465188409654496307458893336458815678288896838195141360815932686355834727192949693110545066092334124277037592899375803358308253254693463477504341486822120784907628520296659965858231752504027035349063079688364782421013741981682337374853501645078785429599056585683257842590946020447621858897360302940999304634819239639893102562486577939826699745258801898032829961729238803305904001248314761254830316720666774501492053903258612987409042825112924482794510489582060877394900731967557777464343287754394545177692645053449750407062996277396722121212121980169014721284341753096786130068742354235605990632977365202966033843500201308357127000822964100135787817214091579325297686046979580043784908075677619138268355537505243336863652475141548334662393793342441754538521501624373588553551122505325148118311602765726132916051636540226494165468650134261966466784789906995300057799351599071065545335976789466007749012003276495315578139737929544305590795655764002494256478694520053664645856545812946383448897596485322895107407146754045444000088922299678467281106273978308570634173856395938238696217531070830280714041495035435342434790757862943673041167654902977039774366580445629820961428932829493951647014502252018952255352911431365539837579340235424267995035416215091300461240101481198878659015415621395151939930476493817512251021590131634446409026885287992310792290554911061038830636682729917564907050375486433966037811838820455371489020250157935857488169257981475722792724642581828583303887300814027120964455467505886865859551534282243685167095345168260987678694261776688898433496131423481112654401648301850240062564159114616243733468943637650806176305419946151474556476779702918015504040655472551840698894023270338457152538004076570354298978588058393398256290545743941067013798886055553998622990079083051334264972445369914828803444199979083578210474196876720130179641091550705317594051305188155881464446513659273886583422023099622328501485748608322661725096944540020858443740029779211067858986297302154630760661303183272017186086300123140337722565310906949052127924047659546326127661447178999144995072546513299436349850220507845771588474680255615543503818588363459064036412061350801545796458673781054186622378009700703952377534277288738343997425646411406402744164281977095525208155562482985004704531081182939223033769940127511568151773313623928040868959051929621496734867612879647749360775032565062799924329400627088045056805893032795813239946186639772779051953304886392523727490965568667313343883245092572116559590601475012998166294778251197986162714162188480661329657644863533281729760957586300012297633558775020307211850364232559158359620096755376147142148175280059108790886411279740931795279293131243056980683530140401098783414323468412887528034577229556726087726917524874549386539496975974181093651487934076228862443466948603705569560241205701560263096725507725349359577012323849471033675812379380052696113810213517276037537424206744599654639242576210929528214291282787559841366988469247664560386630886434361014986385524896986628505880440818505685337605312481405090604832937915484755568859924889110467612604783636019884150177058265789789391308379706292241137882775900022595647190850889389290204295397043201595904520995175416955876270030945214148200739476412168596515376285831706918873527517539423433673694824364874164780741793281868049234572849087859191464258621388967204436992022127927891207826354517117193688568370166406308012819144591366736244781329857673904568643178489651671289300137998260976584404935065486024645003984757266064745938207596002858992551203359814868787336528573508591613304062333020516140810749462135102729035032863938280923492349278290937498876313919996161616723963865719954531312841491941767913717248837222198389812390844501790328740872828684952241299073462297559146228586845355914170294065606902188671134615459103604445352173355910744254378244061735737670799740792998667455194096104865599904492515402473401149764935807914712087597005068143230416685504522318253033166115254255257937842977657527591998272692035540702568369049444523951478170628781268259532017142288489263105253651300820755678329951181695663634227744057037027899032596797271857831531071474942326335195555503087883327092952406282279293127668236157654144790705204347667832382814748921578748298228036219429768582569707109370666784451798701716586810009105633531638533053358536906003925858533849611162108264746974981623687868088384232808837097812864720686422875500085597804807023405562900802507815309336112311628139879749660810652368753415343009960009205065879362557546848085645725705885238161484990255036130904428249945672874813896828792680486021820208911600883613845112846757404612705512597330443708439525269503591820997822530040095578281710040849266862580085525104515964892913600852014122325885541209938731940067303826773490673619711606674658698734736967169167440807766704083502015391364759952779737883915168112619126730340544491086876849000089138328367927515080085288114305639501568351109802816359908829975216892523784581819044672883076401801347378590034045243296888874627324165449635640917919634118491202391580510113565803928250158814113143840769923467461568815774382508451750550822266456356129267301723722780527838355712913906900671659029041668227408058249706852693071766712982696823355410710450916467653285195262805965288638870456496075474688250333367803067382526987885643140277967296923323226111897926441180300813663407949573016157704260783250069619976905207791152130953274880374631900793829342358985041954909796687453242165956557547936258688359958145435460277295380078303133302108215229457268153596752627107061056757641382729618555203474397593211415766647703479153318231639202811931630487654974931739032985382645131874623673508926386406797935525254496206815963874290703437926775905343526971584173034416649989199127972786028638721508234433087533679557317930778047587042424183510214208917659896126635997257662285461159382140395919890510696087865866124848845433612264923596502219177138603224632500417683909373229479257077821903726098446738523960066385639816924224632902121549538473999701759116813896865997663011653768982101756049872225312696119403581938625586769569431284907310347991649494945008902416087729668026134712403749854683797318146891414494695663483810491082609955539916749495544944750484801200856968887095183373611137813254626423818800799600864034653595933518112745550678955051650301220191622883105039170494268123844534651799074500985774642310616279906297412553731650676208374665467704891457106344108197663724001229888583745504102719768272325877980878072988216477792448229459764281354829759432323516227349738760260069369574764214708131089014314020318116680806185363503363502158220187542920518791420822874638360023777077370138603677891890213898547103189846296244341244499434352223914684131929398061705866377825139621173167062676925382153628884258779774012724019352952324371284814197467040594797941095841324038312818015828485353218008839604020278945812759700334621909486037630071052717453376040308115311369899907245358026856096135077210117352030701786492030533030544092105049444736107484749379711050731880664863668221329673428644110088688514445583828474788592532111590657737600940867898531546880230021055516556239630885636526720998906138574079425726856563860489049055248817155206102605780918753814162910628450621846568914576826261938806533195396446965172079903629476341357979717408400813708955255513146566829124733200479682715969573380096630905935273490333132603855381073979926444195708537192535698627497768693291165277503784982170507370877922147040456416576465937062216691879565754952350848051818409345958957707177316780931231156639446528309773266376272518680210303083006633804026473354572661668672673479285708154792226451071716792529093967988944800468897045140987528472657891764390341721669968535117528056147164944147535635290182028807201089623468113534995814110048507287431961778339042357705114060588653877656637480487404992539852596435920903180628053509574588308123255717030240648327247286503863582157650494230148086249804441652145853747608254382291011698235995076947880340737724454073271435172094913350493309885770880103717337245954318145264102985278618242471960639977427866279456359020094988362317379817745504788215129268856123347705076680772156094267575731409037952751957028299843740595538041705691074747165285055631542873799379487296876435303058984204345976944497405796329194479610510501048311705112258582344860592272297995153601292209868464137451697407473225585788661028518209817682209076999493001791385810010746479860798441804898703666866653805340732017452831803086170090968731419543245855741826688857273916113231379638383332522952496169522717404445583633231297019771474025525052682740500447583319996813763009310664195490767735432617633488443763972675443141288029260175327387030327716006265765656213905089290102736718354367340806698312286972118143050430508048990539578868119436013255853732276757648370157113760053932026012576992111691314377385766618656047895355348250248239210891745666526145960447668205957317982969173242144072780803801002865597281896560087133100965244640225760517783848579612611944368095062750377527230874249559205399125623130186662696181086044246339851893529470491971495887975852022742462616572288725156152921008199416334677490379162129959622033877829100150233867820453365641033542289178600764159174105149998572964393838371960745452642400497280535954891144770543008627028754549469544305414368893828954176427906015603032991687300375775255041375942548352833069823731555143081053274001192993117138697510466272191298104448372384288937133575117950892065418681593939207507917415512548562049969404933397408438539644151744559652462021708012958606100084618291895129779368447904956000275819689774869938063901289002538965490361777682517550144326914523380649936343400243091164853367655647981606983933605495452283299352550376787713693944659478095528933107623929396312209290799615525296976972734150977235428202299233424303925518627794239355241325311546327239335106430181259201907630932621391983934120889078300174235228570137771673016519828825231589876304846115020601079102753381889877577718867881410406120243781134509473729430356620789334558095517527325000159430633376400584220896826025137819715168568348888872259468572822544538575556386530676642727867260829711231533169881184141396088677623675942085510480492470523195636570547755094179356484568343181933134029079905297597035371432357136177105962232886845349139949096501467233714241919247388611520404489059839200438345844878742283750630210641193477228515861836200273332400221117588158775609030407552339796141631023912655148560803764858514705649827175479961755193036958572261341633588897043635708036313894476950099503292671604853188044386042322214332540868629354091647202916916863835189242152769471315671188675911871423021047880512359330933775005301225612851314123048397235043207797527850320560308012050470525827865739243013477844748793812512494234815398010331948330327654475551344600812124349118991791071097604473612637578082774995286049786941814131451421643578719933889086672705279998243075356887471378890431329443401229780694187746574753207005926783050262300018663085856952921733342755192166286196978714503416696762085978116628928877558188001295844309875665289805459075684266896376477077077144561483688743456027702228191866930543388196586877562422243272720130664132926553343404349441360828365535407813425350128726793533894455785231705253775364749754759321124967299397482994867429170320932565575658097411151554010019403276118068022479186952253987456554107481322902528357582976180315924919627435536710351223597126989414109253784906078953053676749854614310977010983700822335201467210089040577345401877319643789453591815133004288096062968271310864462103105958423190462218421256490894574378746769904286170942820563515871725762441136577868445098916223165115787025212056284115052093176893058103400440086896367895031530397472109730876229100143838985950111136679533100659253446398485734184907922069633419201526477540321577735107136478696850739499050764463089776005179659419766958008248590718597501490971793527874476458843438620864757454560586181955307042644893054211103864820925871828938858200168479752278001695331197924508335324607538959837540832973953808251743225770298580613411211180308726614908403826933407858354766421189884109077367841352761002645580655981460407985005963340056157066963018972757710031851540424267886353980023912706849879839070741642350037176581769024100810852136760668997746879268417224060505006980046115460251390950364133741287670384897895259671068443299996599927349704988531573513118341798370873254557956235868168311173644782621524978520706715193502348329449285134031027522004641621120767203233551444044534014114496762110325743667045219038976543078866718036982568457000282642863973624004966692605481906702852930392474501527242748439230730968376233480225460909785691466574344931850829947100261597806278356906178069843711353656225666396783533907045547174337941792143892297863705414619831835330290922003255182479924983204050614211832683967349376845836462021501718444065871785018411822456979434557174475261840723917526769495255845930293235980128878410763578823269058118167976419322021736205737120194279814761631937652418584396653090852110465286242404488178972898942379679522816634918804627690573889069739402244068891586811905113605344463406127526141939009863459362255771082889753549893767855467565821365009204403423444524270250360651550024015159602823524200797520901775282773003845218161388604962995455228051884132351533354412141664454697325524860047015507635978953477242707752674797596866101076197817014027451435197162794203140215870284153232762903775614912461170757493281782809497745153873537591560498429312922183589849154777621408830823549790937186312332801385916515059486272957536973774423257426211856251569407084056288491314956961707593163610845545726702837559571588616353602872656494347808939308052537359993344876160858968944078130955982389975350985853351463489171345326569999892148989587558667686462419762651606458546023730109511147640697471126565965502262259382160952117053083260397775555203198996904823246046694671387798760089892882154250817117591292248511491067036349500572203709603544173131243439051905566733580052143701172213304055432496542764368481546200552860311797099929116753816290120282025929633751321794963432481209072997783733808923534948533794564342739606149305214204724062234435298255410059961467092077911100109907058035795403040565155660745821815095336555455201555143538753261545896363598100283088103650135836915618964190733135172883189651191361389242923984026669919967558950837789698246266249936480453995387002516433081934432747504607332318683933663499150560535817669958281401179986687032310482844798741946510583117974091613645518129911179472450648772541231121765235928339381755166230978285003246216158781316570965910430266618809192079970077943268965451638745636789698128373965447668712357160412120661248362002614929294518495049734323077210461618533747919511813726782424223488400605968213555424163988556606792725748342534105516827066604508001351981955635125574760998868436259846302213866684232917974943816868686008903504856008743913763031108300457827940304805273847649376474194717791250367845423409786578980865264726680458802514042265100203925970891698924766680437030708479669799962173455139338910343923583109114652781473602259034397856278553309652426395252652946435730580010230776851494867487368369921566731378968003270338383202305783877237203032331473121535323153074165357072183482607451408823947164643871375227888119472146749957362183172084458170953553190537007150092986853197189330517517846408202373730664928054715154660225311704359169360512687580812493723882695100359881426342190887760152267896142303959642386532069455749883251144692327288166433450812654698756572449371242674073390608252866790501881292889754315900751326696127888936888359162139549338515241889673222021154848290782491762423423892739788600657108134575561155912090355197689038716398401726549243986380919158903637069351542796445054896022700215718224496203665960982099661056026677837733192425898826378012770961705493336975991408512838622480585617988042360859146171198880307630459281400837503334793525579949383009266834718729539823894253559965814571665323919048858526211244303527872824925255035519030226667428717806505174148786866043650375580916056933786318164291405255684279576945907153565101867831015386038960815009664585200744737486861992658998202539713019976781932775002675904414292207100180906219488708487598765050934449880891456953657545050021682168330184812205022599414036427936654866668169617825675687122635970522415225030805187821610145363607505787538974495216166103426191507216285618599382041448119060456441047502217698739495887202939237020897946986913316836012347034393481682777115176113231278926474582511103117904978727434283299630714133019142898743729068042445877846102852892987407620464455347022351668993693493347081035782790013376026945339524834769610782137424634407174343519504855861411085729385517104290101061304072670809901105510322941296864232098379761946482023910767793813879029071671719254190305507565606054446806917907537354943803033810842156077633747002966000848817064535842167636708115832463414973044374089015231492727294421733866485463596439727409337282804928352795629643741269708268562434198923794881357338426501569995847704691842157065826167757954072364156782585019766776546331516473086071013063860570933596621801664270833905965068973531012635736721799735327191500391810023341737492054861833969511403297266348734361132214711006473903896335364324486180181548210958962646991295213233826930154681954616526848458966274524609462473487796994439963625398196616884197072062972461280728023274543445669423650893957682271446913128628207717998088736369153522837072265334314745837816902583601910868814322200957892358561982131250305549269835013043702037557695774707634354136697579973297580764900823840529952997259645993107113993373376193819520574358553481231699763391258091796065321223325697951254766100676964655775443698681368918727770192466555430130188940471224080757939745447608690578421904433318993502431619247021552500974928146580214228289841128281683479415732998370897839944496177646910643547790587778286587300143353343980106061236378157928987254190692888722311553398465926777399251664757364156802123721172662077321331152671824958573930654725589247407242733404200628547683297985778739317465396359257042283836071426507624299441311618275248814822260369005440556312415683124258639959541987575739494761693689022580075341109269853206463922174351728010017113908932284198173140754362293903569578126048595407869209666156372764786611129138909209089497667898619214271658014031201711786314940379331690111119199123257945528481456185858962191967197522228472426770855875363374982834640309421684970647785507804389977119784752724233750249932601042232106501120845753326394892715846673815857627971656838269389817983727591073272755737824019813876468738255387322891348632882368124166526192966676668961329138001287362204674823667246075013271157990033917899495794270452278645908524355418816858381225731561545571699265184172720070884325404427811101639879105309241411063707285610014059708520428492190993616937364600248928037565376386702496873294971412904184366561348440728489758115849537163454700573845670038615044383614191264123867028522541491188837246987290971857163959457940763559498664193143215298922216895151668242827796191850374952191696031556245734631886718334676577331865090799509910586097506415133686937060973861613134345866762457251121320397314449380765649363152490624301610226073213513522887851235443842429381767844358948717591770693938241155254074000221681154826105374789071174721484442390937419119557114051508500084275519950037291770223531224682955829909821927768892907891572652896118768470729684122346616628014929779007230565538470225026295620518777985068599073017603213088474130657792119144271986983629784689537852275646925000727486061596961751806804360259577955335097087103802962543638255230873545105020503897548617116669040336335286917259676684766298315683332679822934476397598710724999197985054953686600251980669211104339869439126495340065874638394475984046225858976530343049193424758345563892339903649927933776933733139267493884717811959494976636680465227658622343047295070030739673499705708431839556417070289384323319974712895301816965989329635555760802913702741477576736407532068547938618000197530959888187591190441412243392387854391892356483020684427890448451702892397458415176166543684873879095169141892953299591024946913980243831863724650646841578754272754811177315447427681316673597208222425358093792922117243890133560337543400262637311461272048384240856692564216405155098894537608608347677802253907827979431699173121393171786454996343046760120628119339526429601583426789402059826258116598659568423070361514586391222668429710224116981765783006294101302790982511432176439732521807522890575325855622000046365724900828078210641889954843285062550656966799355175908014252859234665842210614173701863517363480344459834173752188471269813732988272366730737468673623741338407327888112300874694554702411299083855686375947141267210400458413746173001290731819792707299707520065688842269963997979722603510815926605691026329769491537854732409932918680677392128289137895352709802282421888560933302185090174676266607858241693064577181076310080727509483885319970676478657113922438053930451613544087253539671970033039208185092612230404846489784768026415712804529973171480852172037363092078069538651971677770785202899309622416961131350917367860666251666285778939567908689442193614999518357558978253820856771602835231175639845320833679093665146891039107321408989533291731730061474943037829633727238358246649245428644976470410495342423257396439873189084468021817925576764337996014033194296995019047422715829716950721251798361314108459756860065312984753097870306600723950251867156820357288616609378428998198188462826475707300476661907770958610866716633578664561971611266067642528527664155997551167405654048939321229174851165574819832666802489836204472458728913919981118478950748554034212414747583130839882567532855487654758650342252978833931415398839009122077107364166710638990630666997641081454389647716250982250166539484259799452044302872409769633627765881735189390750830126661900494350477271006871878423109211228817302533126849855536383439287928522846802731112637545970248626587255077729623219793577220686576453627927709399354212596061731217736943006071526084098990615014920821784927102922418352457540078712804373941014189856375559878174352574617847946465217042997298767963817049272948569493780402772006638378594541103565507582765535004625269855636844913158716374061244734857345890563385643910009815513465353611241382259841713013831479574020981943943756012233538448155768406514623376768897587293632232730044275618743433006303162816082443768718939632439223709173138599804811975701609015096467307524503199882786680901174883751912627222030823354245044248791744343217112345602591636959054107184097672474567302170972944780881249491530238505771440540846459081038641572743986938838042880582323019736966302351803909013149989695359286776875802675126590663736090045227593393840626988705146437963488059639119894944493573622325193747555708865061832740495236552882636570866481029558697495386206421745477940441830101669337527956506279472253527445454639852720430064147362369628334615690147115309414329511653389896084557664975154277555927934887103392034741344274769950883711832278762445852933977883343848426145645094099015114600834311585198370401120707823788419045852601143413500082657507526479194129519615957390082046530956951269739141513750273755343932941061308909672587152826072216382741523942266345523691478568503388555205236978275587308551823923129757482529250651399595241038385452121538030762663838168108189780120599382816668096843322013971491832495183533053775796009840756367947599225473304251596644177741949783433812180907507189277589078215603265633036893359209439770388326402147963063276947065203989685460190252575947486488150141842014699383584966717573815686561000893938795633176050626327344944761032252078757406716815986336485741980290391113872614245197458381120024137253970580912981550995555167722277820442180414421706840932802558686528761742715884397258178594876413699642132212425921308373751265284429518091924561047072946627108710121525391464771955773059714481195855677073907169225744575204673075440482686010197585244056599705560794600242427860212448063520542375479431924466347524337777815207542968105792711530167651667463509702005300834239933047652129473110679778029117607239128341217554664319301834829921568902516858038017444478220153314540000324554462312822699355636307256556555377956225131346761309953603250204057936275832200072584808508118507754832605490502655616084462594341129513112955522409670857724420869652513218256516876457662240284553268546107779261722380922857704867446873159813954302895408076802842268456131186680582073549616119346379665794749782013986050715840884548830270910742425739245418349015446181866492302449077403929374763404704679693708054913366744004900398374224635543425066363619697196515328142754527076408798530171607763416225801430079615070465641194279661468197439064324158509657941523224811934900877356269917379968174154343900608096983993339523098627972334874197790616662775144864196880907116813236889333611348019511721248140093783440379185796249680544961848372513352590597205893762552616916282776946600442753281381032806842925301849405833996870012430979735903365613917640050696906948059900124104555359464170538293522507508925223531877553197345561925887741444073915319909830212192651896093263005448218385956978879945632899780126349561713399654373184424757950864713197796598836768074805873980476250768741788834921011597271818995771713268302767699516882272604234868984416613698464335317886719227248685433838304900888405253843555625311831583470327443733308247273792370347594663248716917020300372836936097282636727426787318710324537131682222000393490121470679269752451837479502349564344106789640873105786561986371201206079652582249023786843400231769839923836728824332830099574499776718069944252316626492962263656543347769744891147007069135897901239798328063426682606690932654682026700731954088548082673005656055678478725553139861683631992092983034959358383201898911234739681033333915352973115466282866546708480265330379297698586669263267173572095777577622712054685889449143331658670776669799809463650536836702425338910625251373580073195823765694226500254248687390786855778242038543433578881973484550460730646900056165584317142657989818826799250873374634325337081702206462536133735812805248040093972947140493053222859914355033766558898224465356853366707242958885008479893495905961295580347839233563272551946580428105116814282022780766619288007518533702095996367626255961281755695048472607615594348704136585272595807867259354597100336272961345586132495495529528770447838252805432318203661189348931725509992079233911041766408422741267119739918299275968572903820507133764663356649925073049649998131299579230910226936476799171021175579376047224241789464478087095942344469345617863631947443140105719442349179050459884063905849924425050729962179067867417137027883729395226552221019440466763282416085536324545846505939456927615845104959494058964046271574093666372617589684761422729303115337495055621342822039102135246107571840869949381585528003514907417378155753891859142639806795396946679285070072024967194790226214144263088326815879979310349593323357597021020616371575217697920584669615534872912177579746095719894629870852985886567622986296436921627383868373615235061623116998994286321251984399332740375679971741338113710590623823059717124528901856695558718817848264178468678542704337380993775322288139830011599010268374359052384737223131890073465245183480821939230242545267937905112424883911202238413045517222493725726892111848693229567119276716632544213349252022347228028265881846722642312269999538208632489467765912263181800150710300358721774470051139018541556247128664003436295903623580640992559748796943334941957694014738739571791893107328116107089089372476423340144612440668734944952032892828483571333527332451940870826204069712492666229912588797874930169378679566461698072783938858061124794948451041595380631585558797048657350172926973947944905985664514603202330783070597746187060612184306992225376904000833711629580896763484819033899048318038494565788966509291524129434138141441490265561288761771226163896161827008229548445438678095359021791294210211923541268188623662475149620645879774466979281922410502613112366331736565004633643367156480410060361020383403140056502059185872511535287921283631219535274856087047046490248062888271182492143628516885046024295634842929480241862563495744147902201699195183511336100955342355334899841451837282715036938948708682668238339756241976615613089498641616414012831286601897020850878690251847592827932398366454158669102937383547881067028147006057952897781770847120115725180858362285961696766021144227621750380958882572741945063413605894764603326106295069769926318550331030955551772894273867406292812741179562641223712793785050908836529058770951261094238710732105929200868993614568388646947316979764747305436809903865753997842914937085438863344863709235092710291311411186327011190564681216134802343390743330249900568131474937951675382517543176703188768441765163278400510985540585536168610814459009788115119184285106993914650819324999023509125804904095820460012231375576465661304297969432407959054444580171043202503829702030377654400031704013174911600990662290956407652201818238232164647113323667614481249179777553747823800713981370761396296090737450814763980340749106807020496566103426781655856102157903182745721814153383695196343918778257303674820329695459023206508937493192095117523067181861099647100997313069686980923898191149116618508093577572872428092138509909053037127901345554933525780710569989041581842743017744700514763842165716528544512254753545447534891166026735815237864980041861566614519728080857226420244989829314592480145084421841437653600305769752954255278812399988654898449868790536473468100823089251103884618244282381754950344914489526639606152726394609996113305613440213361463245000785718012918625015361112452385923351450831594632578829489322542529428981031230636447802764385618235889524756889401906999474459121444152811549360127099078556501270419832548718351261502417288322993033039178221799390341662185591631240838783215472129641185750757834486927021365090424043270088345120598439756097662550155038986839970848687745013516105050191382256104353028394628139986683005860052761685123351142533098346183906579963862096185048470584471586533597313662307090535271465761879582477356407296490443059384491378507872519944757876265889772066055390441711850007805468280119351626433413643515688919906678482612976707623278683568885984919902105470916560635481519256465769751668413661285777716384956341754024163487953417733105443027834350585144476940127323227248245770486174890084719080178830307601016775636780248655883466736010480332479184578271599667274173574365482363084444255820154981553067777109559405946728810134923076893016807178129545175630739911595336030706842762074034558950477089428597523645830733599895742060453951845439536380008330227561625000454125438773634992137813298776820911538208485479453219453203335072273575862725340545746031882753008668589607746862750497763047283375130863505605460569409784313568510780480016337742979335514097084712725865599968773132418566427912217260478867445278564853675669429623864494113648389651174695067900695012228769135772165035186614589749545789962439196037974061343993933365438242867138247782059873191056521771701660845237100244059577842562891110605775682679048900320729253283623938613016070040645555847407695831066267043083851981410082614670853180088264040968685109787271174719151810586463719603807871291652098529528264336668875272308988482482536730431479573884403263797079930732880434884712962329049759256055367281520768419475261144734006195899423070704300175662290979976472751070141993714782061403112824483527350303585179025733078538886112816457501633345331351173569345942883193002140774885868759363369949328979944977032011891265776290891589716581872085506463001136164127370356533276337153554291024426822056215092841843634478675944552611360968707093327350249064992707660460155526775732341208991384915980817086701584863523479744335553013400697950111805920056333005645069151438039999416616072120057170854181675481733164009946103092220418477646571576248209018663425068162823575122245129271211784317608841838480823300793709480449822791927391643281463770963531353342012997344990783523690004802334604718483071892579712143262143713178329767745852246116204858264429067246774414712584012550957280079365714233018392302698926159071501585998078982521589795140461061659063563433475581282383017704644832995016486252818081606630803276145742184550785232849800829812151127434949272118738635318238127583733668145761855326672978207312617011037078103961126412110653817224174334584199962112215903808826315965237495823554221763413753580691913802661583751147869698163184500140535580787013085812251131698801592147104148646386710055417538430471004916461796733863988930007549081790539439490731601900094537456455495539116912881683877808777078919567797535222481731985765251168812297402617831996314678106526155207864924427843936970208965684826708671147634661365837358223306814169960619794679310624180408285681995847272703794777863306026651825206898231036472192758674127128539752524284603647539933306499003219580982155448979378414739230832665105873236952787899586818204373369482990803008932282669718103981183826391192145016342251175123360974827690705304586806601945353783680307046984596283009422236458571406752685369795999275458492728486763944234340709157660515084687908598889611637309612797455851683984117629710720979893877918999945089027398751242344874399103083392248346421358996748144448717065206477539770449318277906278441075010196933384548648701042305102564681673758337985981428781310246498026740541643127011885886058901327899298346279950279005873079359421931218800292482740240603201016697381879709103861471049529271119046275125095327395584469848105190053301055484488684146524132436910840367673295087695859843009225776952592512996542639396038556373201721554661580838942109518957925900571306582870427360190754454146616690286304802601670674462929077709843589323456971782377023639172704219565550701163797099337060486405705937923894564721298961585949882817311769009750614805494287072395574583087652224614376264343181827301134445867047092457653657835107407860075702952082027317303581241899010369103524071886521363559632410627253019747067562784177852811980411013701959286316233051739215767688763768219922365315671192549170402265273618059465739332647985502836595792548456509097979991536874133669786853431389463138565587762243060413750632596555963285330333000856373800776663972496451741474424180771567801442239282311392785860305647811081317502204790276613433940981600139561475235006450720764312874228517096946629670525061147638162909670464864282308850214104376769727037223861445085609618414290328794115411369896209293725402287883697603044437668555316549608492249343649409743304759369953146068289930845952397743519236892310069585067397757039644674671753354837988052968179516368844499091810745779176143568454544904619119196063815994965959811973831176078771832803916488303415544388568213781095270232549667747883364430072246843993841006035251516402217779556503798233903248651399730261657389533703985253157612081467891910446963547270206774812031358957225596051397022749797905403181918325556376982371580501176595223871503062587230687045083857661474707124551747225839570904053348608128613359688592672202909496139387898132890482130170220734222913496050625548511754204106106033563686805735984036966382390399466090603096953230910986111800651101989093572334257998986220534066361295066198642233460953279736592559102407742596047468197617828591524503512811410088190395775473624084197821572172102199612389895644748877257101119553273746554901084567640239603274485973953807923510194168862278566870279578184128161232268707620740598290043538653876162400381981032951628718583008960709453103674480825321523902929959173084226398119979099379757528452160897021802566220582384799261148093361987443993281018693840328748979154817485893903526284680664801653658525585754934520191283001853718587183447968762695157869494106494272551475901055879375203965280488345609790369256927969757926521724454268315236529697686058498808701360216342798243676719292136575676362819087461192975257556840281481051987090268740397958151041001010792644769358915907945105094258444465482294582894749079748941790666297690147953078956292576223046002835499784051077713988628982875554255863182655669656373739512882249195421375367550729880536009096618108936313289995966273575588155109763461440220880423674816476635186267048000173641704116349854100029825166680364591289530404106783134451710424931539262343132439687863328124367823480941044067305263510459542996099686353725102948657699919578653619801353688187747766530979368870512540873601692932582641875830593477191354227872994890309786685405018560614439792410084489981291929403380713981483509287220370895601345340701770740546090911479747970593175111800486395352771571223682085838352300966257526595808822448174427608779614785100559854276957479447473261044001202703010189946430846755751536084143067210402495990629321206647161722756175370131124885488412583492783676195175836904832262348566039836846275080783001573859921981261172437732879569757611686338354131264646030199326979468528036133591743631641394552061698453377964717629865595023664681319485722521323999024977044278732802007446122955905491397821160901589782779647430368896752369321992414136517302013671496729955883216440808766499496194072098345068441033168132586315497248497070401077621999581199376383881201469521809202793431152042505389908751430168307232349061812974419404306844097518013202619739791827792208158859507997083088627422078712180855544009486161876161946404549114404715756233725148364092754447338784947717309632993863558834932249871553977200855476020590658495607638120307110690635582163258252642558174216976759361198212135163060495652403347168079256555110264915198214986565677539030467331457420353319056385530770250750847090961682629521374884036406633350749961978363057884888177359378376013837004843698764603100852221734984548930912596753809293914253519188822820537457351396034468172147275144760383153354673915837066421071138638312374232360387487415623021130409189021918517248628909966245012813387437581258936250932173046753247796004922653350653565842787447781767798968508608404066364539010070342229453949134336301925439256399876715978545158331382664104888961484197610869714595705755380304929134640769351528866533050501245584528075247300275191123900915082060716067665302383846045677444786126582191805981787151695412911263870145679563796391599456093769806585333788649706698192386457284424891270418735143535516921626409937384163148248981252240222139301102228744990063616524829335807993406190007330368122817631304156152646899699602759980517375998513297784001955485769386810686571156430801975908674814614239801372287518582426378798915489324068959188178638886685199596874930286731420130629824831602148937128220677878537872978371439872514917844887750810677996181955851158888914204894874046895176251903988842139443290816720492519331955354601563958347174988828754397136731861166909273895032920379246246191728755116510619130422400176725152396676287428189496397248328754402854935553168647446316023275222467360092102283927754592273639659020756988308518263693938741709874242437852494775123591239259032725630454802471584238095871891703957608729915522434958176752700243225454882647364700380177107775103543385181619672540327590202507750288138780907185730266069893595532369121032758240087427592933961944961817884451147157404655028958108767514148775811415214055959148983804040850071258630211760557550297008671236776450293575628025172030809683306891095212235606088378778973492446411661143722850155750583377581682907542690396577346803919495859804585692690454387109458178149214073285266354018518091504269209077588231559294205794226079667107981238588896855792497641234297135849860169455424691048682587656871501069986281507252848265987320979293619065859530741420762310428692427418873653777725070485186332413893039012594176634854430658620761307166873841894630543366150050782319717964066950951254980941086552410286912639973459874108626756751653902656534019470576745131259180173809605539773460292970523501365477695019392360350222936126109011453669436492923648157066795971489975326153420206649763376174459440275298877971793632724095494910611569731489365043687306775885540825209302859024649607303983071803511741976218001158435944033408790931599180071316911628044986104259325392794142816419478119951059446697281840442886476938615614030786833862144628150336269680796553527648253193347206125354128153587148495364441756594063000033465355198665915910439644013158049371872753681235920083998386563202078430184461324741185371358866724009760953640807714491645718326915152017715727077593776323913449250183200373899040773459048088654391372625984016026637321937883964890792735594742917401277109127980395812135379037606245776783237967859790696228285988800495801157236497228426073418680526129873353790239566247165304113494160528883147229568244684413807665133207875116908444764771847050497229759295744520752369558429954080464935688426557294452667834699601799791795741745147179792649296788873787266965767131276299230971921789907684210198057176859540930272384127494565790867902127422922480538214006841061034664575214723777451078369817823422604868587972166732255464297843106977878612154102274618174848628184130179303700056797369364836106457067427842987523244851288764939786611092772380101584360014524489505916260363403321874174737156207782497696712923309204505794009519519260533731415102990198432542989092611967335044422653582114179098948570819963557875916476995167929141086477957946540300948491215724663059673126174221389924600599065766252312432101204962602385506084469441015644725941541303466120068802821219386799175286240519724595026748787706169662376148811914914145568837251332908042307300988620094731220483034764257631218818607047411282781984357090951563888545641718472121175135845272744886179032586254293270402560733489046441694254272000091053633731215848473482837168844379542097533689658924214083644590766847726358523351249688034644824503328386120893333914732643156253983377307854365301571438078524741607244043175003363220003426969742302225566433365109283675725017242997537690741075235867495602741259948535833762355930742858167242010628052815253727631790373050915131744447318299028494565372644937431174007837828070606677400567361510013252132124636360263782492927043118525414231807178786328194051945807893939214730262556192268060018652297845290414491134607298855048278929300483573938956983627248047049551400489575223483718138490489612224803058866670853653037402277058857100240891990187137459000285260627349484096382440028172946635065919131688857461983189968083271245759456189680986645297021812887250869138150482117204849839081282918487132274581796401390327952892949395191704077212851180203403425538191272204447481827892878299623554440845744225477038309058553488472397454328470784480387867379040208863943076990908003244791492201407982579791239548032942030706026084982290323185065232499638136724770503383532620328562160622084795336833389717295067427115453262166719644953873507968377525612991753226888005101089497317031215530239836232246822503871424500999908161106815704343158660437923972717203421105198532762188934068896357844036237410582344497299941156549661052702317581403561916675826237793005179809323968684506723181553938645777438094119377748562361782831533524844842357878522286973584191395321816333176090987115434955242809287251807470786619305811485539345519783681819032522069802538174790961063210069495819170394981174310487379070688808329932769108588610306104435098338068183598303444849651633241318994220926350616144028622769991826220941849253902207932167987596070023629635403922064316528578337459234868923278719012515200913369246375080672749406332620405626954609524764358949327945371383069169855964875972476779435101429329391717209116771352973676461377576182536477140113300028737753633166096071052643870786765851923694441759765144501907539513010316336698101660078633820839294645514303341067618344542429367078350280649745128905466229181467544314924901298846388510515364242066759565908208082376057577851398784937050516016967285849206297681974039458096106982693829135412737516479309595099465138242171734446683512389249359936549348472368736870457469746102204133226407174067200489704759398928465668838532989902860253792904588045267064369731700826160953732037083509523924807440639584857775330899690034947812047770793012289915982449733628103895170969633235733712579786562725581629907893385461690376048757519096074137759405187216877819814386970715860013805724672881738061108568502533522697329897501493676242141020999681292395181268659593707616679954999894156539754355854768301621703354742892782761402761567849582130875825362691376737883723072689569321535902091871913356763503009141417499092635919151680900252947326988152412947482577762280093377668678857247281862117912413941880181113539465103250876196200288584471881495464858786014965456213764625672070477723825241571584961943500081802944838298652341299430900584726837608439348442749518732761511208733152739548639658378537191676269925637490063627352349266670196457085675372901787769040121873245360325175040377636168040411876602433397882433391615933484363368413866177343774057170592737354941282967582807042137786528456966300210227177242559505262174295044495383917279510854622893752235627257134764948076977743576642142796652482156531923394545488639748502557442319416723889495777941519030670464415674377901650745122403186875757238867998032685474864138497769253164905498488431955759512258245097519990012867375057095822534257788461537397612244328114749534961906450693632692965135798870651325077419112337443357388274005567958452440706035747841743175739883688124848879343741281574323832393892505443145751224866013684294138999315006601772552467026023919135266331310524859432960071200170014955544362182258310660162609632534987884923500156648083782373214537724934933309615504033932466009982263779861707350751612672519508863074335921206067386737558457292206492758031981690847780184395124673373245948902719871657900123353311182782742621232997633613687545245444649991264042198560538181359696296815087477703993330957324682616379945983915338875438118542469660232080579389489432308683141397333873680849289661274916957965402760491464602564700028399777752286884536807555361499923235321678685025328502759425955235295825111077606948595807621818557383726902752053048702843045862986811057151446703377809148808519517151952965559567884622999416463246870467486698539125463972010657222154188138452939960996769883346940990417601330653378498380847936697732271126343292392116480043028115162264267493570522351603336157551181654021008480837322410191314164962235070147489455246961139566565135965811780605926638899992014745163052373269736271663476890087416180756067472255581708182516878599252908734263792667939838510743949299579388146304165307411769232238130932057118205117848366805510999179030065662067987404664459119544633814682443612591941519613541780130894354632213876806551485605916705534284490755959175900651790316589013570077874516910520767995136262567950339999711816041055496165106907545110056362204954341047818012951566583976588415305480637800909172546210782895389221205712833809388257540948668344764750528392740200207283914337956941202390361688197417419095325564239922961147840922257253150800442782220520572553727423094021868603080721527702559371262515181609954028766359932715320756641516246991900917629271102931705377865959701402963371792776978134324297863468864780698456545864673235783992628304380472773932138277961320711821296141297496202413632339295454837183313297083852608738459969718334581991985069689490339941693825019303971727367629826144674185912078569265064040316713718139188952229335044794315478305742890668626337393492278905395553523594658192337612672370507221716249796281289950279047039349138871809667093828629997878970015442563751996853134564994591545520935527689499963242604954858688180575141139143538282362359570740134262575949987043111861933810025305672367091291638935959304407430872080078220917804789663322200086981426144037912392087017697332090544679046475731686355337435597465274113403370742718437775872104661910653021673837740557048081077163141562268848304603485595304037115549745903257269563042943160293602024867938084370893016293170886658362553029545800786944813623279950599468875838392572641840267382394261438081443362092712213772450899465508478683431854782242730230664287954356855015211662763325263644127835068522315838472388052492143833715833606113208420101618146684915061033026079669244725185333235865336280632178397606239673925067148896071722623950851244636920665833507237052392829744511516370280994457965128929817520948010159658504770137870177053523019175604278512588387053779355402667512835313186663294307048194516192058282806244848077058018851231278916195436849619568052982299751928285479446936952233675190172182058038245068006672756655194808426413503025769372629857550633276045186432237058754443919045607438281307770095788891786428455243952271645109383059658194745492975143734116710689038363434131339292087700270971288208007558667149379190245604511059095931185298375195027171599872996909895513212658158772517242101641636285490519521226296439962525081637098784790846077807129390943705508087410889062050486557908073628261836798210285599876934896084339710844807674754694274862739051584421920392848175732418018517077628276963894725906561510551781826721176884896828520700842548143051599435139295700970603393117775174299288824675725073981101230182473441072082210499932403794871344964804561643276107177024523406329247128494579250585836880143398865399231607335184237004977417257958365667183804185202547085218568592392642399207564356967987668700792475228832996254182342646987587715030823157175705738743570772256869933389382746602428483015946060568955755688105100573255770625782958899899863737837814933425179666359664458000166308433086102544144654736639575938860516928896757885606026133825322662363430488725302704843921600668775244394011630184128017077764516577984738392339644363938444780609450391406800682263417859451077311494118108788064311084636473249455497035004918155944946277628930197260192910114139145503135204538432497038630583330208751386711934564657635501262604383526756580946352195353205398284418274331053017728800527049791343590737110165845850992148848092914214243782530199792017649946661932739373829108593488843742327048144899681856103075580579299254433139333896659694148561459629480813093524228664836368405292586139219267616962618889886241422629668251075816666670520607278379837333527706239670403812191538967501922485163352701408957011315051517363602648468725350400966316278956323131644281589597216649670935739179318425376457636829867466771575095648919262566088725748153383781875577850535107416468158804444321613182908320388931980085891997985043998727836352955019311055445681901073984588631315060414506978897059107801891312464860582890465517166596217807342057386011692313914737533280900976553548710584635514290106309819208286072573565261823517558302092577663100374889704030667234264910979175873570627557168311988735655861479396119746476919086048478991673635560785840553318686885900493693798011693683630749247537370021919177783182518062193135132299740699372275183201486921193532910420599551530456164790161617165685055344986326710805947373522152165278423133889860000537677459167512854927410505147983880065976637427762296842033260978666964061020392500463173426300917440368479127560705395196559877369314821425496478457721246893757613531056929833742690329398847178271101289494618253273647181368862166240343340333595681035830479221974682645158357664470751617464673387210811451494456414244078118955893080809155755342307209628858837946928041663031571234678206139504127712003651160232319045588567916769280567939203819885208003202883794683019306098486892757681225246784299005454550866964395679591520145384840214734217909892721825751760277120143311601302439367016381023469078788750531680201723977065415759583595188702539798484747574430609999164568907365129043028963437925814213942703561236827295614089573246331851847686926669471229184304803581413335377488410126576721169238645937613687648526600707163541316546333352593739558081303771495799125437890494025368522975899254091090131868222058482244937676175826125938375893878512499205004324960619863991235380670699895236868824739567810290746340288611264571434190426143470433385635337682163135757708347405844393897010758252597647148642579010059485013946504298736966627299964596424467918640579308780837503161770334137959774953358104218851073222142003849793772048147722157643804294024110163189888040852036832935288061145402005119145319292422708808273527592086124128690732527314537797325236925605912190660542982592017651802910695706880027601818012500548144931883112905846894338328262839074707401760645619304546828187319827579659938125092837350980416460758389399728098729380553532028955586574372580404844028263416282156241728490634912179371944950304453970930691181030233316190166332446155828291345272545325558312627137650154861283784886718679141473552288551287813819232637284467973821449644694973993602076296683666080900013698339468228491563533251041025073265106235767113501058715291700310869224230576347859864994827652635394462866353882933252330361986221440747847135289558771080832286856750673824045304450970270726701379303542251246730888135532496383501862214050455576310936885450127732873843352457568040476655453885225672655570992359943269637512639808311197836930770179785105512150250434380569755053997501087358738492285404276395391608173022013278117397852073750470685274752233783244863457130237978643591420359931115936728902094431072587267096962101313013672907632312997498682513299076452860142187295086504812273751617043953634998450202648211089244561900488734505972094559333998726708038031850435555426755592235296792576687610299928395194806889211916149675468458651324801579532656890066205555294670737050802895404667385127049656548917497442665298792282317753743653322837874337432188898947822340150463626706856903832311988246683337544157214697793572034427143805757169410398309927493760637007850520873707424773152863297257478825217068112271081294775676033025039813778825872114050288185618793522443669268700601024352794054609124056722234772010926079046719184479815911127321468165363364234739989498058080616347321495843108695088039906225967419406482957909020153669285988267354721952159854071918626162254139647956648215611839190671842809562508296736145680909694808966490001109511008611431748807111264456018173177518432578095396060393112079833344760159067542016733959964039801293018651961427877675494927853272235694482001496684493309734655293830358403849946736759432654896640210565398038514383911024098816740772318527838792071320241021785952055995476019352213395124261688980223402509892906943050685671527036042404643708457450085917673145285783209194561958651507310591813928029307227644269798053402584850300318849885473661172031073678525004316670758265908473751770615776531299157760032550455127990026676183406510214015919676082671167002801130920533797913929677419308211754305643688431818166095255776270844491860710087998491453405872735900952453529710515443195710410283745927634896526781806985978110148965697219077164193756287197985382552664090892932958706174725581466143537432210087191007236560683098415995125330022464426888612873885896948020886745926964424421912641560885758352401590314800954151278458065924491569401131511419964107744356060987300147731709657650383116500727826536978132161725520295261342529331860580366999958943636754667300732461643733918915152122202010560779896811218612365743619021092221209155654447995969739509494923672771259364368770874083514012656502695373759270698376499605503632249791244676856863757749066556581378399774371834340157893386697256897853168769290585426810959330836188731675296151189944703388569261627426702038281474470213922578721286472347114965204964023184709164519069193325718837014253295946158297969368166823290281119579261048909290730564355892035221108918695560290425519930522449606023028456295746848015726266949091161762100781435397521276355648533977468378532547547552673468712042694501784015807063418683712465947014531223597475498235531675509627706582302116401712886457801473660233955612697310547279868636293762893993429041487918471353977157606699668431014219394528476967925660133381306793002693932935214176749074668721002890170524279648227335579873127574606664358077776764167043574256469979432139982076181052364498850253612288566044623271018472732380743578081042439290002434522826577655134812413432982208304383585175502325539924433602513589261481638825354473793435005391940491457594955760499479991150359348067048052557943920503975518243394420544047028438973418177858962020498021009671184780338329607071192429143843014919325116993701081604896535364920565447657286842063302313296378942126388506249112181136833493612907772059398053958521926643862659899659188847033919694696220433441540176278351553793963754722782247007742689449454568105494511517861838854442466656180750347676050445739009644641356089898411583969490893074763277371242300095734266400780763569647313803797881749660545696903781765485476397082407127296961077446840558317408844136730812152948928561463997475974668104726340434238481907484410896281756722946658328134054093179066092032361161097945340399067583143300982972609069533361400877897216374464268009662839474096484346787873764910819771027073492651502332195641608498163064383825216035775958314317380242356417263972600038727868743755024759144819620616708209106642985073533845326985982200261970726154483742293541364654085189304796859854894637655868825944006720760159791990604886275714077467212045680404177265977997924417679224738595373988357205209649929985445987967439884090887412612032394519041466217517633966653304177022853643587098730485035844109043523143623619181374678218549550899702809956645130966533910227304830092268152380583078459475685465115099681872672060743005691135020255113806714575726458092703736490891565060519742334164388135163632343960298283155653668715044212936771295061749134355726790334475934767552102342354228367617533733564444968218705736819509706568768999647984861215142777033938471069960094436474688852984592581227378672304581547859927289445812958111904538593391947734046530290507206656429130939299308749810487602967081836771507814942254672047916012936427130899767996504957288004298221097394110585669784017760568094346403899709215216703674193839046529824094554677552006950516935402397551143779615913655294625703418979638016815899922026276645263190259100468398906059770521037757928775973023754230006461437775269516592163477302104521308507294182433895609543358006847828776109045498849082440524637281137797596867615678182819533333516051596585224353847744222032506168845871005247963224587179885997645244894258846646860582877523771588021531126787069773330915384033625663196764342191747386184819183754706792766506544854271395338107576810437702315849047767302196361307259646677998101487320450351324572342534409002044612806935724115396798841667226363218125533429793806876462806062724530820312668215739207860526374565943831408947423632363680601182772256341115679663651950395712127613087443223858227029016925226473149091041474879051092855664713449085885067428396599132915833315517177000673934054273230995972765534861757895559355984533963165041089730868237077985536788171480834546958143378119552263979296228050827707117924675491934154317492730163066816812820917686664407083373385024512252664427457769343637796789791366800353467610804729089306999739490841143377545252960152417626144745329878813202633488390340432016687034376550621764350403772752156025798749505416181122430061044839438725101511487201058103864102491775170778654040642572300027569470931754916479104055585073328003348829771758015926632715255968049806617126887492865455290988782080120755822758771403980692913841969081314173483906170090612519253455981596993716852220029778734692450410429194568388576493489785740082466242060891380492423469857230690696359423126215245650777170706762264755412144360852505351302932074206743306980197538534940875721055014244336214563361801278253928270365446690016654549451446830679780213283865168465939157814198916513726003978888512489580867633271487035649691109749741505701442724073225785300612490285030537984473458891334861617141810395964600224041728176539796523118182974680931434370466868136189287623753151759625321492406145730577121657256279331980054664728426999292838155349915600485318832452829776905512520379572555452247830614111698225630865340995855629334537946871082023748580570046198547447946533502133293472525580004299331852880722486255614759013653404413698107376683319416514539125783721545254677050035855997817798659030669174593472602009576281216121849640863766694631302793493568350779803097240624180913266174886975987132883262321359447513881129773064984779074290302587432330579715198530144128010480017581453179542411825259949629059165043971373764089859602717220344961149052536678633576164090460522744517636325072454280726193829535274527899283509062405198116814877533381403344321797549896022912697081740604239700792607097127259598616895100704593813212303133390788970998986992510185518615213721061825562797628680005393936026407154927828774849844147438300655064770951961386872599001178484300806207362855303896548315873025783336122455191963843325579139958380250810465793737972441382121807446026432399917686306586226860780713095246985184931487375894955121872310150607811425673631158999395158736117421817553857984919906068093587659480281233698881498132481920906020069469569270958109304578175979549495296709520774660028600491241199628169018993889697633865650353949060237517479565770202780651313779373719183493508871565252521473743472672685965899478102073114913734770663765917163174890957051291178432294959852305585184260063048964138996352566043499494263487960550654436507095036093602118723302059906150524941610839918348499341220504423320794228360740942491245233334026745771898025864602014752509219269769765186662805104735592083648741711242020598054044797309571023353444259558314349072291870344180935753333920751356319626014792493229938706899045466212978448648227822322590050382277824451485396908594493549885526770963676014036174326966634474435939475396428978259478982364972401791672043817127761850441101964303822311414138792942087439468992882327009863420656392755163879229870960052997327193850807057680310369311469832651865530422556340730511493925333000047145269488042471769990187127606268767477746980809613616331109409283123634304803752981695757844276946396409594282629930315836400828559508931316296889923744966978447004396657768989506329140111705501529467354599314448119214668581505323748274049723312781011062886595003707076659898580537189621224811453270588739796013515732736795952541207429086178000500513845037447093441339306919610295765024275532268233717370824961383296330582262336849249112882692855417433023950958856587246086215020378847315342450193919368099206050208053223481686460030766299913725209851966679580395066515344929002168508015852306880347875499635012014958008077523680657937390529128789051284888074852096000744924800261836337915024200598128243435241268967497405443531597385905147564161651956422861258652100795638581127809566994109655444482657406298038874832866877438361557814681908418237199109051073149091225521947089479926469818588466156048775290911548032582644799398024038796826763854910074703048413355748559483741414439433821873801393036804469463172508635468099381514142329015692714759028727718930971163647354413853918700785192367985090796315720298686237401122594051214495144670211729391610615507237918364103683964207142294203245637393525784029166064426189896282709899816963044508782054148947473461777429926289960640899276692393304437577635893394923320832419999210030478093883583528264966271025361750465624067170839594959606441442126995689301613411581003205006655547086350262071306206986922725842129947098082276394780723031153743554254555281101692160715398445948948539780724059233627031196151197987704855891837165802645984156204990967798865815019165048096956677921453976756917702589179291948527407899228621218741440811155875453581300012457822749350713125033754175257194262158017445190280851018118345545624375504163566735123309343490458145687633267558634175572662173993307055230525394840229368741932689656959318050231893407150084473614766525086328923559547033314487762233796763264475020940029260619928609348065554903044622495329306462753223369259505695660341914840283887570770564991161075313380521155395088232742647758061999238783286402916591350858136653411662455565239380262491644621683197037308526445973948387180685487523753387860914437101076502642241610078285884527743137093410490343349862569120402258865574113421538982471316627128158154996001259979074832581745804436709515550227479629197274851201958293240975707420537699778388661292557698831463605036281448497948905609103697034850584343070801952882260206678036231450325345148779291269902451562001289933414652400843545377307817811189449684708238927811304241291430435312973111104537966516288617530071753653351530429835517247687439585990401901711649559935593484407456525256963337072957214402392875251691570314932861666567698161782580797679940410018457860078237065612785156762356099666592663743127961439754557176084454365894883529103810362035047555194767503089212627675131729471265205892851351834305143204074177452668483174067352319177015138549326828315444853793349663780269280098303383333790576821465125168887698907890947365194989202039124158751186895117867108453802357929708672684289104782604060836357448074855600882967208765916049039856009404957407008267128341942620968802270450625949105348933671834390996745712887519874050445862114941044687058863483237809235471923822850351870962529681225690193899043328577091975113515543607197255529679780633761582104601421285274864291086547758186553577542590147736838546238831922427557759603183201658229230383912732676029990944938316320265614097034477109284040915100235589658511677227866981668840014373428354982581964863664249659702221877179610418743846302788686090597995207842231118568580932892457202486985206767651790306194087413541847446157755286484632080236768239261294884858143032760833065220697872053300481992895574567133146081764390373793161247957099513846976517093667858511163126810926824586266523570745340644132533560837415840816869057420254577789061278847481617892692312648480947669509590543578711308742919190088803724417696632739166093663735672661016718295076496486810957335722298631446003202935387223497786636515195826683730369970859816320519297441777812643200621071900511137729449632224422827283965338292231620117997793781237318118713884810485551494165246150315784643217433613896005744030836207031839158173343215007331747842939266325865724242422400234855695951075723514223005441654582395801737792054830324685402869837909582706849791034458544269148011284115561078132671857440384556150162329925304552296623603279066203003998885953237199576450208984744618915168815911152164301150565408851585300368731122694725822972734448651554973399372508518070366376348056756221107719952436218181256979669134384069026905815166144394876472693739842795838570316943036978705279480551523245779503645665236495645400747795649149323933721458439412120908272937033096472375814060859675383705479303621081138779045662775189946137970102511741586062736473319311690369288173433204163106155402702098586082561044755119727643733279375198352262340622634201177809252272719177916169655453797877718574161366744201430444065870406204354833368540423274287012341410463161796794868066737452601880282662683850509168822133928048306918492653981620990370650881359989955729154347587259241912725422687848539889645279928221493699412766082815304391147067612085671569070870060534217344453540384696956357875510754220300574504512059381527514515156073366247918415080715311422621716557491414964958893545673988993023440200246409045592799739881750307963526370838962204957985363725576421756836129258172922560165355726755239939522535758986351800455593531102754302467845547663241617367933481781821059689355500358348637601041444826638950629597477504981080389102364985289333239154100222462220451531801247665167859755480643349189200094340670064784712658385627808799139742668821875671979735189322638377255120625254935021234539596357233314549130157895548681987738658143562338462602272831574425546776321981226317800323595727131889377053463874365277997530851060294649295527429400874839671291262075548720515285144680100949809952093456281019650119501607962363155113890489963439074847511040679643471116254464046777725533029521366630711933950169047838020743539735014453554224491917293913941333877057816537805476330928425224039804066456744008491496657787965218477883813147673415439794068866261806249055665516218068508222443587273446444429131807627309499685772201302258956939590858784376890097174860553032022656264900447087451212363987471287009921667432525919047090225472475854287158156533780687156413371838075012520577230214677081724565757571929038894293616652362101403273295334986790410422842329818245654510119947783817454396307942886960179392515121761307123573615548787146349395269903451693257013764602684899094902379941365235881327640836299000284261358680531528820441993919575974222969005610759017070857533000882301066901005092905582070255496335572841633627727439994093971408350491907922004858593885022347559963252375546465135404565257501610834193561841393584564707270270425514683709521635560638429608564362699386649007502112811259690231499656658930603088509918447121929415181587175072448801096609300125783238086742490686725688292171760489190654610969358104732126548315572076696911375581873661260553226080495027324321044809687212488484056012020664283375002494934716552867068803629936710888534464390791627074329154829829947948779083910510924191959478996309056250385525286008801226844802697967746963158448148049422016961366769220628504446698370486442255440824585194478396917971475966243966063106800940435707991908125825743891878487020762949941267833825219609970178536898843549330215502563722366588246675752765398815063625816256936283098307388542708479093856334920552545317884359112957177093184534576981114735946035583934008882466785806273664639240883204259235900784586720058302795475619094506768916851543849436920774480346642401643039444541617157278954577085883644769134405917601329867804801112403718296638011736262759354636412728414231757537461686598373545183353934159458420867172223174352927788757917512224030669119010491431862773301055607725919696568208601882611930056123952897961780620897249247797498895798400039356262937423711897698378925350896524170332627996466486613880989432525431444466295873864304145614652207965192524649852850640741049209164823320506898732145241650707062757741876803019696576397793047819445893145301996681720866977745788009111168581889335113340902105229783832207004158610303671418583699616214850758713955266684882397852620258738185278891422925024687079553612039102472197000085136558232424368370977684522628929077459831763931619682485847836639441846862835575842208052186469004470539563745838223169035898030357320367053534862804452901144575919789980331893218390842907591838246198939633675430839993322802141745255135280415859967550102996976765856394567016588945151674820684255313266406701479325719778825507666355366949949482610783025574112919119067389581630813516707342866128472509633093474990117230830423176519632442255919482969516364074459504219074267539440115520777577962228753909133086770444905941385385072620751077072374952549682678567674558867100525092912071358621137752253397276806299987476759439073078524022652749329346768473432394764148641847096984648886749836367019252297493899843258526698001939868012352909286114538451999592744156195259500857269895691488988907120327105266457864760098723762279707388758965689684348712077803840253795911194508770653428418634591662885967325331104684271693509303333032678014276699585140512458599592875185740609351425318618826397849063140165498398826837802603338189850727494294901973008642507098335632932634736157515055736000586855760433895127164860846718402351235744515521287200365619001546004482877770925919159415376107150061970687204009892045486765910254545520984779431250474313425266788461737576644129839732025723348380303511580211580593703977374137537895463322475237299042658426871838034586784493760794731210961225226940574578736513362943285013197423006370957448771217157112252915348987772283565731608830491495956039917969285968839017927036396666529091571626607370606777494390240944537524462930587995238038797370883300991353430945817413133791392522804225736310621222610211286488204583907552571550990573760755229686974807672442713777781456375083339960955985867399737845536089495900428645291975886010520741488237609156716545076714146894915229002351815250122984258587104151726273475080632954076656496443454789411568003895188962972789351822066024684993661520004945447905497684340620417544721436315910136313486060680635979478627052928009854264985940851110812231219377787088090069172549758926692228794543190423423383935338280345751034961922246904301489436925450752431388790446095927584346319037088250638987348180473144745316333287465134738492008372718758882106018997488047910592879868838164683295639462317164963662194066992825259343433576112713784594410096107853428957179123742184753876798557002172087934550283010884130691123357616966736087546862900075112610336447034322691493451479890290180355139542148061185484452795602313132744032600524464779050671232019920509289585051383878585901869552934913508321398728508099505574686026094762543113609008538775916400735189409801807677569857668302852966130722358421336974201261506986438396628484184277589815953739248856480866972223154251099623698011732193111064193272761203329433585731596299253705981703694978285307295432092028582335841982503479543363208117506495382257801659198326156353514334813357873401671097473204274821861967869001892573402430834800262818280723475578580129921212676470120125242039305558860456702219180240741614023019103595196591453202188888273404268234566907466828169046828782663645108612103158620192506470379470043463384639216471241290382788133348133303131031826370906237479507003086627745293029279684013377061034156140075774656807332907659235791340844688171685589744094937162110502092078973147020669826351183244324292027924622735547997354886165159644717106755071139040359195386419244558859437343689409828622838077872330937026663791786621921376249049020938554175304652474483681703272036108144771068844779824854960919353844791566517501063392703082825246162127895093442377851775089167520400381487172361781259218113764713036314204738798676806153985274890500982738102405858391441721420882283990084059269645385679316978629566844910446670619421270853074248810996679245430842925359258994256920076181452424746909907558556827086121629484813941370829805428818320122661109634639355122058217187086190142009266220425011685457117206519575769237833534192439187133614659257022350456745729569603409532270185969280826295664458318257875370074301645316238785477016431066818413764810129618318190806294445088879072556704766451620667574644314232776105809866138742125709446878346768904602495792466699995802515571450911225693849371213146861209684170899546068300817617432576470892793134173225216234712363699176036555598662256777871872410672906133519985288804871168733642555070871760616681685167728622421170392575263909833880876142364587351952027043599491835983697179762104873016926206122264040220978103274755680914619487699057224900385157855409315301023961579824307702124519231418564434066795711656695400035348532484122632009699544061211364890151217355700360648262555054241595873818309707543683578995234934412574724041360121871995002620787402369059593649074578067686614832311147453455028646063970678559508102019368330282176557107341160985348137895306813107744724438377868685502309969477020495216160155666240450498647760179669714393840018627044142474599437443060439814802711303972589246307879417725858593911352646727668809765732574192288624043718706186158578882143034555285850635205512010084665309089752959825090237618588115740008816536901127070728945804488250902760859056028546278905852392311444299567265770658932718746729635406529132255569711884613947094584516506501501401807454048827614996114801833516467291342865679893435175976391187376531119228727627047700589540851426732740737023807864202038450264705172641080058333148220205022238783680169366926398264101810070801168826284367040267025056908819901957784479321223804901301170194341019194935604653683981705193766609850397882281460672205778004243725944177285866544003847347504269012810228057886006471056367907804530692992836323463829691342974662732142677950578005313511189955851590273949443342834172848226926031477860284443643406676218734131532612824540947451140953223405257165101515170262789395059594405593404905616205739091563554356025710035425113135951523248734638185702404749247873682131347043075291324215872551623118696466735786524492764343487924699869718054783168867269099574257568851213062719119410806435197587728932985461858119077028299959260596894544514974611043237288027149218136278688366838886673249768197274026731702962397933015414237233489111614411467393319112546061143987464810411492362876454549122853186071217457102365741600375124653639562101618866747039902451717517965002368944467679320471696739896176808279286080017264756239512208837668261659814044973819863028941352987610215530634142261062035675582687416642820926897819318277464601555478197279132966810911013167206971299904271869624222964216039137607550821494399635985766109735747589229416388079620096699512248833343292788775406776095498575089782263165871468413476950946014001880320065214503396219970271077505716106405487931232907493288451709989929448748880684102429001073540610524147859440069248741374526135164903072949138679598020563835913334068280535680915413203522716993095272967356951294159044976706999632101257727266351444917810186430980667397434571064434065041007127169017584605240787424821458049688039699883954359066285640002041610701856482979187622426401026908179331436334459264470986094251946640450680274654835146579851282405739590334804642840448499819049836163514948185512900756520926245268727949250281062965257405998173176977706719567464352447428889799311583638716831808488083560215925244399576185237717361449460760520944978822213642363370081345958171216359352496484774002390188942533975880799230314064351446295073577874597397182120391173432735467184366621479543674949693419090589340960511783581578283710729292540411585761344699774495374748517588368344850703372439734560551954365947815728403512327647989349252979968927034687508369334889929760049556874803791829065156960247090792409736394663131749508175405072470608430516855960444772989349173298466204478024329920539588646706759512584836334136481098227348543183024510710804533068732225653859616880664908877136853638820651067762458782887228904491502853381023791018338598409364002612284562348957993494506614565593731973222340794769811660289027504065313285036569622517644421073975688854050318386189801338284279438142552779906624901301439247911194159192269639509957080068326516840825243954286290484667550218919006025096878540189847844005052926949160766291394145049959248193102020402647820893261566652462515457393114921439637743356154300221408235109133165483959688891340452778497895530358202975199872190341293561796345576941137470852899830899093947753292718721750195622639661083299615017729035216149375966044671329001889066694189288049593815290826269547005963753995335781724855368011366481053235351814519600692682134652679479002080790957814660830742482388030946318290011253534480328227539896473947120912927078420331206519118515639110406715535713298428113667057844422743121166976161316339362714437050571056289786325018020449465002992878211217446246088124943406508687282737983532350239351340014853065359625126746196712470632547953850489470134213237511442469853570274296191796741473318690893399415167741723166473442360511448888639871880162249985311605875791474862046087670414786110572774150957231220544548643116231900051801232317756003569376621233842438781924018846773991279195292664468408380589810385551306673447241302610779412874827638519850307728274898045086913339290105199346184052537961421878443999711075408457599906504770899392016555940575935478059962073279274835745378152985155803330378120265332558130734251888356422676287015893737097303364154445704348685112049225304352042507631525386117654413508265798666198481218989792500592873968791715557758047023514320718105382528117781991587650258749928633768295578427115930931856429708086106184248644049514989739150787951003169988371757420837858360403699129066086782408613355234684623184857214390712505065257529413971504933591981214607155906822664865189389286057614838561206858764507087508456424405431532977531794169682047851773096214800324502356213753080463369408960857274442115867937035722501260892408309129659409469450866113067699867574178667638043139423953231510658221980761637638715593145852393504383749975757705808088215436947983460858088571406182314119118015312890618732803737203255861126632513912912438267157295623377200209141139981100711586938610379265206381092516212623269600524220616159392099792067787094445360257435492121967537588558409628633487262418945708066675248197523970226963459280333336901277175264121606192440403399524543494334273018580900097128020042321456221354935589670731588300106082154828791940788699368604902982010698911008063274272720851784385533176963299542879152856757479432171700122354737249763556212253977036227378387829950811634568812966192062224108917826029479773049011088943927553828815417503876950261366922682346285709729573644848137759368117135513440025098837365777520080334937137042657137443255486925420047573721043787377296477627478164031808634699029333834649369438222091147782521547518798079180885260506782014973510764231093559073167577752949801311435938356416996792332695098006407493129601729721078452698558806745530810574006036331903897155527759449574461817536596343067823145770694934349977211489808446960888161878979564216259528237222700092327021287206441258783597701072260498281999903363333599852434228441181265300487337035105760884808871668762580759656481068616787720582844306950897003914888743137483583607092077804325497122211748839664300432644596728403163387751997506539259613911930656357294860765136009561004625298966486586463111466464844600042622614803836970140872645471573822665154690388673199219587501971623541497075778089781286421736281830978693024065229790837457486886265320964318525153939061417135790758163814578831074247021450345842559468113027743572221455867423652642859203898033189017176758190389255995972941029896738832058389762664397756841286399450328345200962072111836698635449506455569421529031304493852822819430397782758393513071037739200281712187010933308683972979393299750115750996212600323968002398768313449527409996119382895743372158745620491042718269244321005562576294150570965996613164937724047526008276614734616495550315305324896968692968247528410309955748374269366374586237525775764726018000049583522311879540040306292578634502557758967132872997062221106688175388706095370073472855463665887923152016718344287158824993750934663039246295408942259963632928947892271566794470721223893038212986565632549390309376136774323177893612636283291237909108292619008611249103106126517403661072596590483616616678406407580391695189947527260697357636555058719020324377490594367723350375542950734526253693494579855289319035760648320684421872893336525120029942578608936411046513842492593529928154167678381455555231550307638641265660426448403733808095980382633107299290791730496796808447560062829520272723373662596759870672740710882361250061236529741872065673898971780940223864912543237800457264212695273594237944298093881953945682620738880507288639350899399406284933652113376359410767612518989693608925128721952931844130928061331318257416369739611429347720238520262130577822945436618515829001712819369612583718287542309470946246065936976856553610070752599039950430469791014040864818100760907724885005625005812096831620220795091801059156327055851565198640274438064015891679373693904330615370541057106517646588108558325478628621479181308948808794621623624212421350190218220662032513263820829606300267849911985119346595453590799583158958385339700893552294134595922101862313107769667690444841906957714512892157001282831564005877668380008042460910398075622355644624598539440648448024433472037741812165595536128675444043396017406227039117378976014942450108152006180952911651849169093122575827693090346834241487821364223416797785185169166488700657387268023273803479974852352818322203572217624444950393934176414037773548996923410321907427123601719814961016964882068642944087922504453743095413269476793017471421619429889178090445630733770701619770280894168802642026318762456659072676822932634041772159720865808866199718645563361925820011256695651267196573819642755916070581424052741095781682973353627155706640626088341815552521349097204839222550908254589023737586792668684371461139010760162854560496074775538423025530956517970498552807700084304778020673072793303981690576053224949427133061893399697732027428746626787985588886739110026215540832658482753121748839844245431923278743116799797622747835996228889306076146431224009836182794286540213857790052858157399029515220364304707822788133563010697465170053364269781822466829566421375287183988211863970781653701925836737196229418203971270223893689509178211955190632457029417534397393885137129330101193575383781808001788028713801119515036728951063635655144371400633700252472972781254734709843163273198210624849402001768768560855647138245000097904282671140435333746058040395369277230789545156154135845424247515401924852211211892363398819361159368497370061149860358433863011410327327145360333578612366403642633520121582063086702302855999919556725120446658087533340125065061019747280040063626946780768532153159496987145320744367896070553588478176132145506132620073306858901460119127061712400006460567824947015307683334774794807306304306360512749184820009443870886139898453406194718971678422013823868144717517761138300707045274508110009525053096524932668617736365512035034452067359733729107908016126846808962409844620609820913895717209575180352227960725346596111493614710263414630012275579709777219553631773959709947799435719352783107245766920524207975885952218451973765741366746422450060318639318233384255755738503224699007979966148714397420038286899629080992983850914675937420995941881253932894150663605555311644296641351744759006821692806736256374321577845451518581276452677948995171142299850058365992147071755088120082062310327665055615321914301715428641625369986486976765667996486080155422514586240634097965225770569238552944176294742443217624426065427444719173373555649656060908671019020768188259863115439916384767919956937863087401955135147977251505559258240707123364509415323241793300229308611406160901397832933357467657623373412486023884948222594677440674154205201051510060874481803661735596283638430204994943127655101521015086617311853888110834436372644773874136073345124821841313517276615673056852059234154387598273442337466792141174025618722873760378414394196393456477914911098132578281432454371619345055496108398013304471282667037943523402365411178843572899042946078796935050720917575319528548063555495558718764166920573279261487436342258734344909509614208773596297040900655746339657053049645249239264160327099111073365308175741343876479868672587035623653578354341611760282803450911103588879745791640595748359031655939255738802392654060504892020882972084013871235306695616790387562567977465827815389090726693932412400288494090329656375312675399270577609189093451625800218972579350300881096482924490522680403030372387360348914042380165287393116275499106677818542321004039815053505025940389723498276101858155329128079742432345942372304159133507867616355518993894685688798191997573390573025144339281209301989190861902822009843242765211112914129196424096411847828025284567346737056954798614420720462039985447026156199416245138657936158688444017893153581669740156924421955074263151899295534638154118347140697696277395926345013629514659841627932221272809368713693329790992369092428318552817946236095184844857269032628822268838755141119926557095629857137745229086722357081420076218049821835588055939871269398805886287415499269930872707502748593941298475404948110612060334355441103398339394626424834203850154148258315324081782600458269980424156499219372768045997081443035237463262475927193144359807724795808178880103320582691738994567488148284069991921576856379729705967149280983880868140034421300518138412912589703015813498663644194071440004713293038802419669830372661080727688033727864223345874301325372567633335359636641041881455360812880196544865171010549615950493420560850023033842568320963706670140266831238530086559185913603278834711986356593583819038370288138575571705174595835743137594300713297772549615409975366319336655819546111616770194971537199687684852175696631476251318286777275460131829390575815079354386244419165780771596440474432077797274469827270002859520228937984971346028174767845190282090285690773518028976593187467370230776980437187867368297668659508122191579006450100622850577062186103005326953898552637077883588255829776339719747152929790326567059314312633117165673030154680589399324311307272196979286326444322683059753338750410685521242055278893648898649756521454799120750557989913287277702999337117641164703471635827333255261299788059582120576134784014516089391632806623969724566569833107719300215053176249305146177769271157647058340907568170913270615206667439459916710144508947692690919136163123188608239377944062302772630107757183974961739796391778120059004887306145864845110166103195728348788223759870477673154422911693639939885974537516618942833756799257327623237991431258830670087980825968706806127712108074491594208978686771256318516473066675443755859445107843675251283326447054148667139279890100385080120606240322866323147427459836961481315508175099146151564517626267671426159429866849184614204528243129288421937402806463124155288151728741316675625604471502085626468560208467249432778432902126840520521779518176696934097651064035828482592594734525848511153934120380182586771596186999354713938905997562678300160124360347563402449948845835816659610208448564987221074238023633951492808997675019543672129827297827601975655875788938752616817354013134458699851120873980762267756414492973491119659632826972153164247744196887152944132223055188804321819933867163035434687004389382430280663908651272161751282796468645277451529626799980818505002448725171609116754084687382238280772831519351788500210343317271355295420135348906304913873721427351107771007356130574089373464450126020259370134878861075575842712681754466842263122850970753254439720121549852225697285769447398921576329232514032737623578301839537083049702398911571913575072262228556973342953357529766499108159064358018494943723867387986275194474732787436994967641814027755967774855001873297062679397371306827089456822323361034959887338084215239659696018387725255889611268739615102468842765093732887457965442082984322281165288607740347064345759193049794246371249626640020518703154433141514797064878372994171484220820416405505512601358562287211402160626931129832003377866400310321372201797247481970828105449481048485406135489015352789762991063716661402581231937983076439512961472779038211494746040910586749081250417541915078034547097488261542760854274782994584617212469698245718751167199120137489653006588965285763565543332318543990003365931734831173442274063368273083646795418226263024835253051558229967129933327015575145577910304098182322805088293534692277301522765126901441595141596057451209021235254618025283467892418216628875710127627851164974295680733799914094314497549632363414024314484777960880071703023221390752602575890562790327022308100470939342154522417309706519186823608962797645629341343733688996207063800071392206713981331313802825668632892050141019333531517201579878548820743080918349711283289335329020867074174013545944802740758332480400874136235199202249440298031203263352564967160494643837968670484335566635430649253818394184245119449294376744416513000225471633629862794904642278483141787808733671545011394952675960753610277086064805197683254710018212852138878168007693343477037692828462824269175960209480704616800008317371026827145686427025638515712285380151496153914801366753597510571691825392939243809007167579886885232151784393460630000110442222188879676403897795452566739602578636381861854946990749773050034402654496420453614118142023059583690670440536781039568499210239818156802485292662899353645231428178739662651979897999454062375314116056289121275159398198106542599410786738024635535172433783830616570514292486052859732148614570713562027911976756830836152274446190502622640030401146762821712044517886419867227181326826509887109691422303137896677620035227525128212138212732774934641861222138561741072048703506888057359197081557012119550137137701304405299063966512105066867580928354447510555914896723842415728913810152881042940349676715632285031592201726728258840781545564145535395166923998935648477703400290943283180766521167102945740687601008155877855467514344196156038224679576817385628743401933453880940980591551305869792816803986033034554228583508678356344887616951129346564865276123643558321218759304628710126375335968378762571818832680600518474090992089559829456788113191467666794938321766537956451674883711257433625912407180612448279173185159821970322358711411701738527031757211229593839085131718823636265730762299496932283155667533262466100359061157238145090278179109278830253228298359921138422805547648973959553872923024020587082907675621478802693518684304233411946542009527080954476061468469120803999767146300028146975684460626544647552162369513051517421871691800430449951636227595371464537282343178110342165981092517756910156198250146851025378651201427602097069839358675684708211499516283988767157717004413441616610783544410925952575972635640726547419202451461208353222552491550273526037470490237067465809036364275257730917185493034235149713695124277256300715424467487280725520814151824545429166915321008793670782268640934165610395560334190932495773516682484643566503825690574477987766942280330782897266691856658530494264956574347956310710826973263575141380563805216966127670551243565421752835253783107694297307400622538935781702260323066181102452958613621978464335906275470837907284194264769819009570539771361562915106192636860666829842570972369312607248858294409876596426754837373481030472000414816850338099400679353894089002191858792756570436894015608133167499505153062726115595130744433582544792529659415619243508245764744844610069203903797971535164914131963426476354485739860793239982879860397332546974677718150786271266403793950929422325286788080214558726680789826179767570772325835084758576577724563518442557819325942453667842465833403055869676092858375684077513874866588182269463223769571601434399820678686151063960039444619895200755247647308252991047179293708677315597801874482152254416298168245058309673733201300482773625647260732435049839556383011997685691761652891499844161936711282259789575314585759850029510926202622940223962242789469756938539575513212284795105792803726104353876187619435957437565455076460108646974877692716268868745957672895290833948802282303911020560870681042788717358532492100144477028941656511605641928957740835408111401703091809655085328185418534629065706583241509986326417273997495459407453879690731556516471840136393742828755308474359909927870437777583634327289873649065612768486497794530220042142299987275568093638070957630689083217159922839045454875530706269518751443656747749668066334279015274250970459874767356458497975844449691447895550422056576769780182254406804348778144775962999085537531449462567361294733510591012490645032903160839521965656391496567850784483230021535928399803576602542115722342634440601053383527523007106441194686476995973986601121529134723086104893237578610493355987944318730218054786840145093205358014362961050055914932671189156076284012039056846357280833297919290429739110125767451312958386251584227341294548785646796856147793759102702594876298951096536499439261556946598497403246098889062468880637306401833021443531585929460329299735771138061765112451077227839045205963593024597407482138112400248569730373419346910356998825487021768863339539014075111128324184559227608869781626731454712305910584149295484695200536319686357031003779263375382361680238850440243305787852911374310571188355311517575920996294068715877770136933917900946096799486618176877863666619281853595802456803989659687250012155723706835880139385682174731573727738471596985369361625483459898223950361825969816928309668097843423667506062670078824313644525702527294708762156093596829935619163778713525347496580033240237422757788792495367517454285863704918557628014161640899693616560207070821298621728749330152967964764721229273324956877111918008026688139440669766855848434301230414514174579762938377731372173927646327556553031864386567948200251284188020071574356313546794034632225803018744080400687776550524054554270648829822892312906774541080248028487356494636901836695506421920840762729122570840835417621048510783696171159785730508152147575610676905582226394766340615983357801383122824389898853461386780548562950668047251385242907535486066889657658292154626934375727538256506981137558424382972934220931512194195648885422735232839766743945647580498683117414021841750514760491682492767752380785684688105409970722029406838166531238384686481622807798163793335636562558269495150746270889020938536334264857518174608589238273425747292556165593801237621144888954654396044635255548757286253613122127674603854685429952454242941556448291540234353702703337863932604021648035991099127079547224180493706812306486384149840713475904441517704505972680766062933133151422545003021346817089662497182311727614651834500024747535982709693519681945012029136803694175059827490715150856474901949211549057680046303531616184417076639520796836664521125277703492716835511797710833343065926583286152720772413493184275319689165063061944503983006341150038192994440491383849258635838421897206484919479289533770450771755690071387191610689317320792066367161383029637894390685149618639901540216090986650904519421468213194239992256149587059531331103654589199675297516961898763393640917485293922267905225911824869396433715032237885678505391346491967506641772022218298147730377547080181625674612937405113170192098178354579129549076990123420581840762088044061175651553172241267683154329859903214346087092396052829366598881378380516161603676679897708692851850762522320014955669680387766952583449812647153980847404780703250126248561879270031600087701720637947095365792973547686564661740248016159506372703558906271455217864789983926679169506918717835766539626109141311818776884974976670793909177676188593844198001560512501832901790799295500653363963884771606359789086747490346125445697142027767705805105478063582643427105737325434130407252990209134834021265497962747131017423738848259134583768273364994332201229699437074669327162035369759781452482792252125696071535086033310470488241432678467389405270367584632091264068996106945391306544696462577750658461968572907759815792419067774441288787865149099868776301761311293224298287333650146529765878428889678396706541729862054676458915595912641863018771812569578794898882721457077557707328215778691020657308009885265583106811968309243818827485501087260392672206217298428266689789386470887598494932753473641717056897114070283779903700423651178664296441277054160211765767278848683220974980335369669993383830805980772188527921803834541437911212058872227466752289876367199056702773164184767253034162974593579293553627656183150576623678074037549358381823845604912408377095555517478864474797807565517034669614346594695949317639141420158372729910539189642709294927613020256116966701894374795653241962464807684096927427301271675033856573364432565428016553969933929482431109714464955367602049629050369699536625043002663301308091193642092574867253194692803044477131805214971601896670359573769864650670965874583247152188818411968213899235304943483885130835967394373896364231220185274110887097504986117241588871490233259021606753425956019827759506228631261794552188035497888063303526860418298193320414135533899048844107530906437092145594422212590761816943794781110420953432880098419932931880895214206422345066452768139038866577514915084855025633566131408897242489448260025726081501701230975081443685481721920178290984326338235150186613139461546637935233160524288929295738353629606714219404424366672297349428572389529460735501765076475832814463931478271663966203299737351260961958921728074311696839468283849908670385284592588956600877574407934587870538098739178974176859687689811918944620877631104969946467806576775064742490455300565706969034901499660835188307638268911461002200872571889507048208546986473579653091542091181873720654398430482054204906132120538854017197835628854604745416107078504007495319537550540712747042165777428674431267805231122198695481974905195818198524467938962547560182524968195631639835279678648408744707830482672478718004502528731072198601078162245775103883534262341197648214206473489462655871231120338052929376209597081709370657695919149699206907339385289397092991751676737239486219523322350821614224491753645144313690679024922954260581436628003597664100892943187432844762855932441398012100201408243174670572458265522554223884482227329235418517519974014496863610594057941558186774439663740468762608143090905276720517379529323712916255270191528974036407014803119021542814040080854696517944775061434241855163395692739257866882200117875248994465079929314598498227195983844610727885196791983552094558366154347167662095678988280022129400685527016558275133475791766830899270214525803823092119389454528546321213868026816152970658065566899106097444882815998317984638397238348018504413652605077008993801791937609599164831403210652279388521652373597599164312223976463081827499658275623498279077644512622255811499551203241071464846137650967524478177235227716698949827926576612825912428812728077086153514448296721228346739488952879767191313279549033544992853252638927830705427629498757671047361719173252645766386067741668727490116090471856029409449258008595669878433629741246976076244401867324632637861285073647474934314647753874382691945992448175703075290935816899516497216147205685866858563092376953211919756726468200336727345798110563625568533004395599542029886380704939184129522592229474900001920501140069827548914044939451844855013696014245134493688047427794701360492916359399121083454645721620493403922560121906183019084738588049926436346877005756450862132808742601660117277304533917892033182487577558538956121089339443102383708768096758855803205049720242381973047264595460907790474707855349704675783330049878692659025288895517258386019693192051763581099966818340617537598131814273476521896867016502706337576012314687737890270283760849810137637803762897625217041886857523700325698523314409116224699157490978073063121352885232893800120591151554584020092336402204472584842714116223319889467612364982346744640978349828275674761158091513429881213479682936238943095798977895435547522918179092868528994279317710934189965009444955324455038423053191357214432592597107225731841740188482089167291782564421911213338060962403468133555164567888804296675134362714194172160058790156734902151789087377752922912572562156566070962074410842820835622106416895613162584112656861018562986235518703848867692345466706616037343467948077994373549663819396801246522914086033812097608424591481712262123343013071342518022080796516833329293590973232451928749923272953732429172964762778373554507782349515143498997361000270377505659694491997666304788410593048622005620319647153046526645237177785926822207775991966518682067748041013578306320864638381900047665729520859718294504189246059073971942151638810164436951196381981279785854002459906099052927964830080775969986276381101314159084198220183041344182231073225829187296371046139420590993364047595790723650451938819727638534338114119269329953186015899535100317754921162852307140994789122954697322766400396502660767300580933287041439939877007587440265257019609267795776323738836804984099027385179753836794171034980008446769763082523899107523438547220060664620471423223315982952112061254833327035957228709045058292564782015378855895892810089454588365137537941463906973588515897450544439750812971779341041137756986097277705391572823485032950377115163382410989773303724002824647185136463288626919618147207980192649304674091734521963941212121447450748113898576260258667331734012929194948521562115805204582675344362245607912017838076638989937966671456536417831380950045773576069766769507132824937477326921626243514735702871322232357237752303815435552412148840315830506330770152635059541212218908088455702196353058615883901319708052928856526469239239059308029198949745799737509875558115616233346075479590133525862599916192114429215547129977396729107494070513080916607146398849278028924508754896068734655439546918453628259918350649086445710839604676508113551674518962454584745369587800724749247808997027223188329408962994414039824327605910866593458529274476105027364463253548017978713669959685603633916522049472600224632981264121437642813366662286982980851874456899928328653784323920480969395907560073675412228926233189727520955814387638751448678897196986961671132459597475082311746912684351889454773619764952886419309534443382387643659022029492232878451557031619828259455989707742248931904028947261827300577640682708006258493491419180036526707419150390719988311848526305386852139623083150668083298488679927938960429345659916943349808450552271053964433065206070785651981254991038234731500779301934416775256831224053677978616634733435694155353538274355345505280645529038295889765684285042726771026661267519004639835244340811017444389015680149908621660849017423298521512673233148206101539744991899879386472392788626000244245786111907782137770371643884743054218409313377771762518375415052087457003745466930843625160557827348581132320890638343946782239024028396761835194708260748716406572353305340008423203455169216287939458678038890776802472504537272076468892635035503305981865607334466167318550774246019464080084338645035103359916224836547754201462132390146994601944522816714540361618633248454589444441874862807780110763715507417382588731570492055412517063897465303843686666395035878866078242750598646052454925378877881802354900749344562972311264748322578431122020556968264865359436363216433415974190743258280414550139151130188197716188197461973337773674338474527841973695674512055806167157675000376494928203178238220766674141904445675823269025050956580915091865534246457146686103519743711886015350476666671576325906071349087530391913009222718766150720537008014566347108887202804458721920641451043922383054298675753305874559005729162625243366312733596254012643512823870251492463478311856488087032698092989130542875055119651399533710166673024010859652259611011044038827710755732866859358607593456415563542512504517475109583368073738572926081327233047319086985033590444590532339089429419216573509901103154636925727871230486057228686279457602716267923211972040951725967453541853160950887782406956041377406417867880106809452457155454606048239401326094129089280882043519142019053809604677687022930502196999772144449941267226863467796475046209418610195455683701558218196514481274091611581410414965348654909846229499370929945989178936243051706721796104952981652181778780478747105808338866626965993695704010571031823245721641693131920292679967470168279479718626260246172382873168214040230997615830387837206615993671663344785493585289887656074200341787328663916103057992188009288928331647458090821383347748758562117773150039523981835767602875615121621557086774310481799975738362535840892579903800590876961563329743679061286472429024720185329763770566303469824138578777166645355398179953508401485207093801727147594336186488133288511963693177277364349995855816679371423985357916800246838142372295891608987782309901400578347547838321698936531546297998447396388695590710124256180599858540800576848659241609265352900311601239927780736761268946297376410232949669955414693689375917981886019320163022346718558883940547265217449401168408378692922564139356042758875883907638435410106927441664791879194393822121581327721427857920496996809309526885302503096504513283350216113246363917048737446912676717033492351039143798052767059258095628549576129074844075979980532811287767947398016868651438977085330717454034719595500890379455887541085249222886347272182383858237639423336008081642144155494520345643039931716651486160849148093252407332302878521253211508218089585041532344073034053707896609033824897732920484257207772068540736487133244002415493458950085128480766687301671398552741915987616098608837040562503692963462492519538409583650727954917837302367357561710641100924492277547093684650701275161725276373707321660677717868879076214266038950991001863757216494911334190208533219059258029649847968310072667517094348755172837160490650528841894870585613461295353439907879504889263136136752247861556950214176973070982963209014118852770763056129605260305133193886983446916926166513132834385256798848501324814563401848213139214010489001866052619578958274091962059177048802913812703073773579812109292031409122209291070538237998797706343225282534440207808350720303783600206188724311307093156704536837455141951534630257248527714890121856406393078957341831761834472065884383578037745579065101156476907051340121472939964791886907556414835016723335764417526661364191505230095846442452818313770014639988951447883859113258815266053479922162900354495933785469597010289934089081636460684328866387953949429926464237004066289117152911981550686561760949137800516564403402579496345549088906110879104065588205693313861186839156179191192557769977560509418887762862034440200134629654112070666944837949585865645915987489713724072191240390978203095569761135790088842466105487842203164995924845125114093439902501922505237451035901511560810563139865171973071208876937777579038532615077755900712268836379025845457094288419663855697516570077510116620736142773654970233962964378086280861415004690423299484490449547024188508963313627633632493146338856645464110185739472601514049149090779567812950200646342183466414245328910171707493993037883445975860914274374335115763712709378648969202226864976900469273819629878369064831023984725984258390804733569510693130576072749073533215226918215194589729290361721919226008625511515064996672320814124339034520590195383656303712118881627393558678061542717232897636888560944093012030932695016519849483105410577487591467693064794643501402498170998796342184409120775499527111895567065060181703615686626743941233328842489967108994542221306953641251669763031079419080413720972618642484252739621169331492048176281781150382018221827067539728965522242808126597483203355459441919957126273628871010359404989599326143267573638487948530703416764528116427956616574104554327544836072579378729433197809192693898504992318198001936128468736559909535489457432454812362803416655292007802266808761143610401264148974088159134195999475159931460271224038536321957381858517387121103619894839666733897540152456525245843349445122814888282665910081520444532477165052437977679445201718724255303669927715574119107890298711685870501281581549300596398420277415140434816003696086098685522778172897792806497814946845789205205465215233962355932797909193397602469187140541335776327346199297687023649223245278820704652776859869877533975308306477979910338186517963443749215438810785269042222316965173395231623735268071418735218085397536598298336052494167505544922738149145538607176733118223371022635423314616659006381595215517130595333412161316392015273684726115209629448333685019432532234895958190643282576155294596155332886026960338637574566739038953261252377892731349000413287755678849095658393458176626002716995519948012773916732257611823530435374709589349475721225930481385230950006256739264806695248399898270420990369071488463999848302068028245727019946224635657670594364712044115069188997383548392939803982825717418063415070108213153981792502321439085970762481556270556909194404811859915796614982996138070765740166651430755069650642360767807215078620065088872780544111621337782082383403121179582830609442968595635208812811313901619133504618167472999871466255297321947152493065872975341257253550549939785694457071434384012776855696339048092578178933671290025443494316995798230677523917329786134896532780274155057873211232655981657991761606518714881965732896084922773940266198906541026734009763646065022275141852643253680029332610736650775455628966548096745674929432343023268364627543378603109918941013271998289555234052052927617547387699025466016012941232861996754307720443824892970940944392108397167917393650200329605428700959341959939976615700112461880272630452603616188963500949420872715469978994916570825682435337941831959486260246643236065379052196419706271319949314059035550996612507227742766817195682831663525090603272935149822835097885326422342333967409969698412980071098955564958835843969687987213712862592224262363146077450186506063836546918694513591929762632950332846982602005752218065283354698714279929124674044628313291330918962066343887097858636507261173340067811982134567930709100622623286484791243554447751180415563242438072857894533262270729306694422495620616259864915952216114926058700603457932331579754078358988051259957994599977403929586058209875815944131212836156320447598450436872461005560511411085601178699349229735939240221561296081271260671180442602385084765252557982518708954282247687402672496603139980439525782356899802670252535196350385404536813708448744788566905034757195494048812638093852859998159228602159873498337786457830103861683713790381298658559615863592392400572090250536225512691267818301379692778075581619039169295504150905164534204325835984563759315082423176013290548715098809942641088745849405988501309221685396761721946507324368487256586777275229646648986632772141391864026598131229181488365185450136155675732156734792558986599421986879570861878522157199879244078821579705096053463276787427638333714233155323238157469028211770549854181215125238424371456048329546316971492938219984578241521320677396180684865144472384295688998126887486378407405166766757595655802427125369517272594693260941708249599049929395284487530156552274793423620871686690652299085058345362915248843957551753554284729497127284577931584449165425536973728389517801849921694846540176957740575437722860977895374090549929883138484936595064691910388436176521505257390761856767499891694496169025256253824828931071805491036317934734303741313448817719941966529353089607630227512540356280482022289502780638822203127440473410967484956544317743687416741322380971878609432866846364917553763308118542387306831687267749362763974897955017716741590397171799495021699248048889848515151300520128398453555589219468208476465370335457072996690517161369147684009063366144438983867460687169070551076655059466123520568435133135933845751797466303937281884504855701483545978297269246167634519057737984782024165134634387017123253760386524232235753395735449585685820336136773355815597786812202071528040704014255545822653190105350178999149585183835457047165979935006404813498489097774566149640401243709096814457823454307728753690225222051230526544348854698095580073413338919483967118975451150277260473006524850967411701037610680790843268317194405195355955536528557181772747499685331366277607202029804334497180422740363812376765782048504002840309996970222483995376723067604518927848521486380384099091493648637013284426248714387077248879936903486641284437081081916842864215623279521747281667047213738797271844844035940769416872837960552192372935084470854853219024289255227565745450529925449298019323308753038053273978061723718296074267476754170974072883720227247299616965704955417898714793004809724646326673661092417596946378415554198831529659196632358717749318666033339084695642314048749365304207398758629030040819456836842590420003423316414173307935105948286835406129015360347148544454604286304125187777677911819419811800612745871647592621588651102200458724506463258235418506011807847198568373715940338207662080708230923375545783375005562904890012896702110152419877629683217369999005920555787167986982142724793444419525482506964250971826294953632081294335495556321899118320793462716078501063023338441449269343157961685436795674917693370103283905761178868258514215768765442734229128649198517129836777238433811821685945636501282530170450388515815056719546982195098853338784530242039230844192358079019304880598551058164103447591927388062631533845612261945654886114207646247859508047717343749282265796875185414720362607965444185855360129948358319603515322026245644381931411871326880905745139558939151907476698421478820612189055533357642229917992367922549894275935924984991847241880066793506222946422715783788876808039819246137276150376244484974648224562371986164432089604333154902356436026488726669830096863368095688723383094097803057163865895061413851458404401895660451682827376900738739268414731514088231405312185310585857210167559448204561174394212437080162844558215332739030518030528359437399240981366582074622916274495861870884090550782051991591921573669164297088437946569887764465334065573911408937357416007949573862544823284984246798371972494125978384516800767425006020623120618968146408852274537677895068625823768733694908276043359843842440887369935924640633581750771664210351259178849312179496750405822367959780780489243290930654831500757070455566142896415190959947887380260630888628387678035688127140130672564035259694308833873793971238188321383442234929506328241453505039780321401897195730470334628539100291304693738008445163744042721404596502192084690490775125263885660125277894449829337640838178601755508767863864715520462506286606790156919682051961272925364938532295278337003675833494841016859582601910240382274592250916274817234035764640366930949009455099952685754471432117767363804479260936719510691384651289376123859095618500245767617839159606954841003312894018953505161136177409850056905013590395366186982050826784554321403892527167172349603821559122344210090995284953346269679986630370191532091103267954732487919648783202804843661817655708085649751582721312106951073795902419089863396105958459192221632729849292829964226607412979223932229994055576671876059918795536762509754604699366464863638426236421553384542834772379148900711351861055491031549616113497113038685860116112274254241925825550576695221413753490123157543609505818496121849370086510100860141897934674812743939188718964182732090452334928478007395541543262292489772708830530519141663782194940106672555224533969430122153075595661990108498016717160442245324861710006136731174586477768158295641745587096651831278482426946779889610562314560553230079144263456257594706940733752644760783597082893344395837819718298827508331229851405390424871420691943286037427117335359339818593235697134171254615130096696750775116191488973712899452540250054059250975434183497153162739883800486458317569427990175783247076612187742730402692204111897432961097960308358210352120142789959572824414992550337810274886464665557169264485485685068729614929250664127724018192336088159045029486616160149034467708460453847025125679967574921195629042917473782060423500895309172279328004959466001803410940922599620904190328519269535810880910402484403823083425819106561564482710606088143265576852153395139525750437614064607404260705668773026926725556723847178245558121159155601508483947694853839049144003069283382114775409340536925986754725269492364819955238799281315525227744266551362741532898627347229318487868601877306100291860643509951012138695447039845740008491360547210581843167413914347200485579207889283240694914682981634381363670420657450572041977911947204027218435042702036207728090992285530662343758439921997468359345894229916124604207110078232818306407127009191129816607084101481710479300162542378406743239669220096808369408765459761297452249806732157098197109497365094343670628680674989307140270564902305134783541868409245597278896311201265314676447755112010716208418007312461777872310838485763692944072642496650175738657133061485754359806639856340427975577334470287970719758796794662780636778095263968040742032324391126491007708256167881898921281486802080430370246275150180101255466940867713216984785139155114559530127308312672855199282437621950122495420295451599411212315578320732522004440925563210043509525515531014115337275287771559161923812211561991831113888535099259285722133016954915286978124249640579954123295674959666938304720910097112340243572072522867426964351505641473324011007223107576985884689527163893095375816262070458632302285842451409433340531823029588685650667675746867189316906083340578568393260290463814065777020141479080997032326134793845884876488870007972632005931268772794620239086281033318206684774916466541977271330146448564302365137953813151244434578578231318588273226510854018157415415933824116842177599309119582108827979283079438518464367739469767546201384347405299989686396575248192939468731815781257399963024242178581379173548978419834568861493282166414043488975971219735400033500155605318823002960393308203661540410949549257470233623897037148255312236617760445034993704477816606228930196212443181810952625206044696385718085851966117370087254921692504584643566937778638625338525226277213370614119282633535033056049948108979816421792324780350360160136527944182727935371967956648893950352826998132611291192533507646871307316978383958910492171175663922707782190449023409442606558775259666208829024831845297222655319497645276205252710069663764069414693842961299317415585279146889521908359251238856445508194756686813472309938568001006527087211276121873741030438740623425286039647278801565378655664507449703236304346971015303231931477749711399764304038315773595432787218935275676254447062928346863119272253938812428281813133496652648135918860060488235755050397713834729391222130186958245211735428643578404919372600233636026934277628428174175100732186141281992345158292247254935160694882914576645538194055193205419418369706310612767166032170597453015019880720999759958151073036415542227924550042849926071767826652401001211879520381723540100133801736665141883253098417938557328485701373071589314819688255714505212851119135986512444875605226565321893376471123173194659462784259965263707879103271479143922775645753689614259676765180510285287497317544329736990369913567376440345756044152798984668800516225385477926056320913548654447406039175962872152469168355621431823784963074450847813855189897776205597473374600532095138188062229149985585660151888665090915316609736482102869252807409358906777518185861609266696250071690206440124920668865424931719779727565814896995132649015073360489097855084484966919220846348031460783087007319813794449375292184410869984465852674763632191488121097967851335673932347197847496365095277180443832244892009728732448822883029600232325973720508408299209067025112898706223517892388493982804492856248732242736115030647576708698568666320996159240895559015507544667585514695186149160027237826416513942743619116915579545698364507452850212092481352143171656264718383641343879507228301778113758323643630743740793335532516697856310132695877245946141913345023004738376254446593294227550637124389789447821649546482204060240305556020940699077816449267716756559416732301853203953604619618465668005662464542295917373635338236725174816556759799799546788010374104495298437347413702645103534192169699798762069365058584039376415225692216101765837153934817547439387696378948812617783095615784962585954301314206151504241850545509634523603777817754951472693737785952380630552461366676695563465843658347309968827152800234804079626096177543980743439748302867404618992386818909925989221039995055682654727677467765556821574820043524322549369001609000806887872118835943727748947978055936465693139918409606765456026061554049497970587776525980024067533075239436436947033630259945825284411378741203810860749218511362751684152750445146840651040363854438700155517994625635605176647850462328165691148323043900559621876208838567775999332192292637494005716055166450921537121584110744182890256763026157954766688399013669256143429976015630796989043031079296324508684074100441975621027739796510507834986982437279804508334511019665581081664112043221307863295322468776351314597374132316741562768448405455657383256621219267510673743127339221657946673718915068161385614042227087602333417767076471453135582807165035793576589704947799097446718222372916690521113535523645712971073143090199198499804492836663422382273842363707543230797725337794150632949103428868522206284841640127022205299147856420147451485984290233774438200189715827103034853445826536240102491225110366950606067528208201461195655317168314950444584937616730024678176720421772181246049427432244807962802108544385639912651505624952459287682227824656869781960162469928683310980236568237907417404759934072051320043528064304004502431427279645530471609528500644448504780171279285027057120231654184179829451040953304238376537535483976987300700078479765457169339309199304183339074111983338728661479053721474224499042770359678167624796636832117044831338748668886771814366471096909107584915912963550075458578485217687022443416266173157923170337655965231682562859298823332139467881208435228055369993534211982614548853489237446855291873197574995934713378261124711375237142752638210431393486947522588243754146417574477921148055361785342695955520735136389504545810890342549775381143750983117560894260644851513007766116045844995346354195408762114960979065531324386258618391274509635475228748523080506583781209973278308475335198406995268328412263299070303526011557357311468075864781746939984770564522368705460971410185408553879546892874449594191103789996056148245521909963817429542810365096660301987993117033804685436559947208775586848128490999485570862338847384349601985043681109267896325061667515689956759397095409172900365378177740250848203492654333581956065675057940238748972437464065408824559545354520969379572505824428227695912799113886251157711397960090846554827724869624971914128964268008938596138379235952931211288585271769269255951353626806159898874429547419528870515919633722908219826259882787724599401184720710406663313418031664310707576471543016828422705891139187793350605985511612750879468624958604840004090771199959623179013056922840991983351491357725485283127208232551570079995104007446868440872215981251948557803574951377310693335088642953012296816238336938759955857768401086474866521640545549063436926255779233452260972631052656756020610565651704421305047069581769544439713962876570900609537559121779459675253808608346511093594458888311302508471455036812041893370977794825411399119173502318426522724036218949518112068039716107208913517711391566198907079791859864298278207893154530215859864439752835569539963048518115872204931060658027572904079260555070420983647719377826448207208666276402529143355602190462640986222437276817511901978459164254701695780568954159385027176472652713908473068879888291326686412056506194927113319443488764398239080574674997603551905419432661307345236036659583176041094251079485728572951238543682452529888674956436365327934822490910346817191263798775328653211539538280054566747817433185507325874111618855682850512908190244769834307226158076278065915686383489796935941390008335560249994438547056069588536227953042208951541371853369835375401880007756777381198529620852998419924794815186713488814402564622135650483913139514899490009209535089280668215414539464415770595419675286395763040753775942579227330123255101987997664919124602617028049755767997656219165620568203460649396968631850071271779124006565059023734239950830085277595850122325404078614954115154102822836069105452583605016485605188826752591721049530328896290798345867429555352126970992990705706702920487887472801201003578696110761680622766898326696708797859698867480509707952164918522786649748438647060187553523862434262473731479615760441693371746994740891518856652404883801572677229539241457879415093376664384257294470128327794396392153392504526665288196861121723776736329092142477343770669179615208408701429168568961809642229740369098764307852558828048454657427816965790142604790536350385240441422193169532577942374677341617545967122564051002074301825846504984426447159629119674718318034728154924408309760122569084266136911184160898155356384375211719627438269756101244853625790498914389185522664886000001229857782836452530237585577500414475736652569832234632902222914283013574997197738270374280116238855537067831347382750451255239626037927301663649981079740708936304619779611187255991125578591809154396255182182100542050097609377456732392664433172604687669341523013882912514018689428524990231182783320301185690378234817675029645281988987524624083656244661432793800258850471972801971712363960082983570473120282831482134143002361026030228217228536194138449508240345616969517321630719199397401959884847156097638611947135780084665078320788760426863060455427539304864202024071391696210655454913796825350354633857036188496603519967395913563730001159483190029435990981329157165239213630332531002225805252328884195343810046963054292584969818341984486219863266644912513096107984690959282849331515121901721057115763859970483400854453601559177414142578678147247114412325075966083038127632311644235956734368435067157975874093939316191110364140549067141613613621884825317767882538614318964447341964076308235249321409313810380730873095741370430891363773847148593479090305152212980616754540628662649707788327793221357133970482318915426304454329996035003966050542629819596489050040597462527500416900015631661708433525469858120712597461594866664849398497629783361186892638337348093123007601229908827196617932498139914941708037005144005900571672863527477784335412004348692512390083135485927158320018082694755731225654545803652145724167246073710410145462327654146653249707064834471726735449202135131527549365756275385070527295094213655934648185337917208489293369144867648970345223951934977768571699083510267840445069828895408991463467598701820040034523637307811477377561601531679655076224429142229399265510586707662907118547757126300820241204070345811417640696813375278085583806815552222933760344561744645049597948926423047680809785684275516140663357499789809284690390619202790517678113358725592893013504401740068148005701069991498125011176244082025584195426506306127635069668969310299537259625808328172970386063474043350366004924906645554981114526099131954589584902901005031970987801825884754910393888246033231525049712771352469474124915888887352756729530349059285402467542408360263335940690446514273775399604322692259769466100157592926386971797353960576914160377206014951652246910483349063243484533219489016378130153558429467844016779948845166720835208946797578429449528678286379467287200960894908558839702495774958346336674725494385922274843335191317137506949085314511623135685605420278100020469246907491178849922081061953299176293729788462106010609183921559642743072035398256343808860635679669904101400842965825188367531577494754745770129279444025021886267275376719289693834680820791777930717172775907700106316654929215049938323176184879445225365136377157089523182503825863411944229110154881448048934210453057343388541541581567711582845017475706616751790878654652593074907684208443045866922721789904430606873105161897872250583922382538197324073179965763870229090629963788147091865565161020973886451853264573239237000157905822027769518661033832697989562475402700135152877058393751941405972326085525857017090256693642811405876087794886154887313549197513986240716066880044742454909005258833018791016229456299884493579024311779555303936003427726204606679133494424874710303901363758583165366025420211551600818846639972876566132319754662247759438412114794860826115248696523414000654910572116013607802405305915630953419036021401934545767737581674579164258649065268579844622901750090460571458666406506715466262718937591314240812900006017973762221074314307873088508862791016258151205420726972499900006985642120032791332834448819281132806438240590188896923762505855539364860468451433570731577157230700313303748984985630959177823595183893501890326301886854457051748092891564388128806898731284800702214774567985164586065715793931168545147995027702062812901704601559984691840677990036761789323314304782184599463445100023003506887138461001001931017327028171323573179491760962812452853097522764629554613266364138112794139083812120504056900646425427206124237636045340537074863951301514752062289479016678111518395052879443932575653321801691524784932825326605000716837795482725281947259023162295325950231112012677618792815936113302412241479416544378527011686755129210316215995988247673049768605234786963217419010868054477524149508698016289914329434523914549103201105477410679570331365262407701289733753732153821100739646657615913905338131518148643331182648387257796876925638214468047436513207738401729316480168790790329188222293913965094424767255179454862188179696505565521231968179958262712905269479520761195818303570115725555648390045910759502545882048362395177343929287967393781091111251966941993845591336621773040061627735701125556325087965060591108677284983661385510674372446867337890295783586635185359940551188237856455843799701701253258593393143320924944148523601890814002009581062389091323625559038177094446587142009930435952908743009194414865032304481431216125800365641225497882915854839912364777166716703498687125990538084310777769300229611479955820596830586162955041105038398334855373558638812235205044516569289193112801193861150417713419889698685192433177213657826404182110294982029649003974588506945039334206923685247597397057763396413430421929381966845582406892884625597532741281962682304214880209492274937531441926515588458169566771454832252536240121061667722038176780595349538192572347202100039584122639653987424215178268329597840149061299187259782205541725930373468497906562625159613812206127862148009531933240806537367988815722419220718824203593570996649832847210420756983368775742823928008115102961617853119441330987827596081651536740345511598368881434560579861529691534223216544672158065426383114163576580970298415498171208386570730840332336409538941559571410123225528745931334541684859438010013609600744911866135004041583363566749740824645706548686291275088264392428882447280925466878807811290969229201254165292557440013376518805725829817040355402909269869592849612788180983487682872021444938695290771821377623915497617505445195373925412768311357651379052060542099708571429744083085962169801138392774169943808878833914167103482409946778686986265532859075336691844672421062992868407700584219707291448069055061831418235389040100571983640761022406182803282530561838025743538685335262396115029669412162510850253471100758163034058994214135838564684183236543253176797830010327293334038018290375633938604773454355704283505738070292712809983424260508558043319336079927322784292383795627813737280689210159290749527233563304149912184542044494388402453280493545189389289428208899897773169160519758214174820165855266456237070153238142725072770996303206758408741093610280839069931121785465863260162037780385768715879529836268048806629445363386676668707955865016590784660204109180215456454639215210952423755052287120542021203150394720321556097220370676629204570290994355381467691194038262556111337552444032938736288850432788023766586802915387897721381266473075462748122877389808215021754288601916494446451057549432020447206368144599891699936628756794308861112241054670925761135144372432422067873657937176029272558270074103591058823501816316075097257300898924942557337795537763740365865759110408194605491576439247753638362277369757526110492014354521630511413924038858782575453624494624280399638703115934108713513923778259963955078543688663317061976832534789240188563667868260846077384690313623601170269343507491873824896336009501257867492574789628146669614181348353749718712418927405363202662790372565144255578540647974535276012961295635283214430554154246503648118205957603895960486902156825562389585040039406118932974485763913918035538713139264000703821054375135524990649613666165965743561762768025624693167711997836993108089368116193105398461642922505575830141282592318183664726861660704293051630128916297378632601247688459389374034008678814161788573827486027556467568891173889244138421524038962935981168969023897920780240032573258064649060013679101889798426634133852818569577056374462828401276336030193198411653853526398853974192392535678945589729793470786406832062780326650578844716091645301480981166953736125693547162558538937001145372652190539928230420225281149257751164059879314426256470675651795706350870606914195886289802204823188424365929786921973433439826308452031004595505862620870198257060650852382817293328848953954153074085491583018948742440057723974614088321829480932444874584392029894895168780045719508322536931381327170584875651897606223915604554763506320694692543333846074502801145392683661547518519955360936581440931266719968044342441519739717151626309305210303551465444054033547368129767763109851238455120462926089043978222630714213123092410480447599394934784433891735545043247667833295848780011032450285044828129088224771289693878941264916130258593445763728058588008464181562547051513898709143725390190762685787014049250513839344869614230551784307617293280320645804734338946299429431677354991332826846188443913641353605081589717766592556978825776968563420261932212608679080191410095652671867082908221542845434108021818164315736491064218040171277135401139496894017771345363095633834925521760878660006498701407091536062679240691718875453349995639157846839567204941402360972239192058919976830620409366723742029016608408025556247246967307188499471508350423245162189496841641083916633243951825347789146939144992611683380660406108023648949745032531900272104921813410588701662878502902766972558661947416592642534950152932825791097038113298734869032459197867734435147781458393433693889123694458844984640674834089176362277778649217082456715482772346552711280946229563583522935199728674486160371842761688153405369326458652776825910423126609483701277133455966649965740713599932728551190630536838832604987232816597016498254169321577031296261365989679930133222042609270168417370329308743695924569748030354645931629521819540619275268841602642824698410311831621439522785589154539600416320498183081627658607630293291620146739076473602456488698562262517107159941480573042784231923956824490262206076330310155452283227809472634355655543625635752170043374448363051722718985489402751443057123828593136169022050293501932942198106301182803099206124022956452566392931837011913044451049925262613105879059923963940742533046245897060372619675999081690861798992973223937358498166882111806749939887277031076342718250052358784103242659737292724828005445823933052985410858740963999048063871146373467107448806884639553110341293454871776783164412639519613026013238605602286340226377387297630106904781281562939795007758603756348887881013982501813943571092470597180178831606625035863680674200998641172636119207158080681843803068719669236982072549774513896656836876497098325028656985516325075560186874052732509821957019071794104769376452541534345049672767785791839615302517281630873873970251093347399921611624000658727995858886307985592041707222766438174369056582588299867760205368256704648118515780104384292415902594537644877152642458141719348720772195794285535259573198906507620433328760525509096120285342197196072351143247248010218561229333471501717142132304464317503978864610218259936862244350040342472166842746835568397678228032441095007576666323929616794483584434911838031558522825866064072720912140855031236496863019496791001268456851582840152547042139297177487251782787262705732003328279705483414956121551918918142758934364272475332442290672184389996314271099431801412780858345180863693841017727279266705793051010513266444373995538597046553364905763323226861153056771334686003925443982914772918763106391993284138476065434325946761796695665458023715855009356738854771785029675276210270482800563205419578085081190369007518425057624012619005445227265109623850361606562735670622918411987088850605577072702934307683936508179153091088965013881747757734589755093826436996737997860567466399447421467687217522612025637341456718458252206238701540873296811783902516329026030534767544770291219655419390272748824815944701891738793330375544978216436257246186793231560275763906264557385595732609206115229965156752022133236816478463867728066561632059336961542768729578140951392659262119986412416444675376914230688484339628937766980118924424145492337529459740892065449322754759826230532664140134008717047837854984810652913238703756389868099084824770037169436466454466426656047171921099583524575082529684044039407752421264844527617363670046430424713215143106367805382446582303607117629292920946810411813467848462668491496708108170320158082296525359571009415158931961815146042213791896228607318188112057845748457252185788926724199194508720138454074325420308879094499987023128305549906233899444602513049362991759736378393534927940895711671986421394815751852457779143523393753094795746648135210015588800747612398178311182594661725907823411921438824202665191405274735408582541491070180899685147095307618036981450113040125124859907742102936746604216554039754526550996167396477937576497596818454204338458572186713175296928648191645453808474909537265311323052342337855673943873741427087623555576647737010357108816070383981621516281974950653590790437981408027115623366116460425784039685509702367457851143323741825427611726887367268060252600438597414508943783726156403059859650332946098510478661801899394007409656181228077295743837792695837541600294820240236880783604916293500438473429544092741063365384708168115989003774990039267868669698401045333225247838522911318747422636709816139781390940718424952742301291815926469027297473518958890466147900914423119537177116872602456358266468430716372026893681666862131832891227176610681722059286039493754069011999628324599761579348438625195433872825441584498787890275662849788630022429915073004831406306252670328772388413849411403779344305668431130592792450936899428470168800098103736981056404131448076697402738800554511707489901410800629645939251002472199719101263360199468742461425883894263063115158372455258113743887340946337686389703112972881017066590346160388889392321337995044520412867982224703878981875385822669399641208653448482311030088979131490623775944436979674510261172418498386697799010428404102730765433135134348085242628994453658999102968537592357606392097514113954363729365940477649257397181461219980094586791904152948180602283127707621066455035533990511672072324095942797590190208680377796825896686680322477653838727626343933997415008399572619672228038738323319499413486546959991953274331261876934355650533611801218363058738118525572825758658743004830156688648834006623066302434022941597093229805478076078994101343281685557607038621805555588691412844777165723775418178325085382950813153844595672764290047083732369864953845840690542415281082510015471286758287796426251679241865397843360260098862094622004035447072797455553740800578434237145434423928493488929932408735523853419970781123801584473871802606957877639547813079124141190101444382143582613090967326117030187886779153423324097554289810547889203104836536521813302607867662205091987165983010006763813000483298689614972503530981063847204898985844492379958698578098453238169699418108750319772919607943583123841521326416726991078436926918182465499744759014144663080636879498821652308819650685026179607565359268231780414810066786970349617570664636327645671043282906693001711489044397745241399783189809835357428349307038713892456682714000628466330221408086011310721984064168658133712026577657674122283820368526560945030477143944878314498078871191477010380363890452446205408770714423316197054804353107785441924715727918366117001464241698328167126016442700614472649347947597082665647978465141456329840686152061975873158066065324215567409121487226214291333886912593574075951738034214777687761074933664015031652524434537830869605523743650139426871509502286723908107676997077572916095104245617509209045066657529969231553427492646426709480865291131261912025563373047332779312445388208410062141762928257428110517618623295282438671663290909628933617186769103613077156919258375609803708279589118279460839448499497660592591133328122003389987033949451209100117634613149250384003273492626201834939700879066444209837680228433346751600241829514885042586361607538854812255579421150420060536782124224494612298587559605237324520761085014157048059948236263699707291456242579189898219175742783002274995591613087797502497726486466300545729670215484101305352591789665958188928425932270290813824996855186462144040231602783700774491400295599775753006191850289662925063813227733386853109288637389101319408915259910650473474323892679851817523684931657163332718689663139110095759991257843275267178204779612031302045092268322981615802343274819439278404025527654783324398168645037883774193538213195135334782378346478670192868307836784891315866863588820565947435424472907633857457041291152239890942882745458573524891824306468533139587295702820313712921070618497978382205614580268489839466049358673834376686410744301019970274657751588688245690270945349686606020281872712654139973127251365744467714553406232187590946259449320357387922402866956111065003149593475822442704782136588964266447954049268447185316725351367023905257883310201733580875486793429596957774199245561865023677130900109198658564049326976148661250503017099401778130293722855725969936982760321936210159137052740805509113983732992491497027862138460484698860899993093795521698962452065205639827202674552476252267437059909457220496890409353451063154479946087807095148210594120877402237377114617382973870710904668558442819401320908122714058902691622779115684698210582236313117750096776166134613133203755198500077374516342355085993908133598649226319592779574618693312297635198559697905885939856868352398312033915698515559946920726911581221836853992169980793487281011843475027526070152299064269490182447237049119640135842207905504497815239624524425912393003837832883095072719010191407460749536606209391526768416096552363764274703998158988156677893286234544486818971980989974517099766704558734709894148321320741544428437292140609504092082588482431405783872168746109407520087674361770990264131116779349772528468236629102215637696572736969115260361706358031365823861669893577040215268630544049412569647023987258765506289501778606370238713847952418884986968019447334320238889255524693647205837153848427308940750787922311752397746488414523439611905759628171932732265101708130812660846291348303201535610903785672369478457095824639411765354017830270974248624482019880242012016251101653954012746653075820760859288081136954133199388115595331676143092306507318091998838986977272546117480657608181515789417616452790674442483874310097870914046061123925896640371705874408914445160616685950810465489596421566010069944082740431960825790487868776964224729976201584579941520799252323837870073404771119951820551559191013128982997089839521964357196013862930848470062790526969601702511672026282681519003634523333618289241112868229279850264703075954630486474463556196300266939826834131462264550525530153052474766438887372989948841520228454190604292201664233996671744306833164723775893966436769494608488518974956273978448739146341577571372165762027171943660129134717548393144965799862536666129931919167413806740374668184327591572441898316547597300489694614602767824219242553685499486539384557254952701973284243463952336994011288571809214816773976423712209924931909745201550002319565997304672134179925683167327554507290276890116933243502943867421535841646541153096587172088110701325621056334986202390271088516209041213553533361462584257765882388035943216991382135643451852344344415204837274419898175423707695876320660230523982169976229167335961929444971206161183517272627632762827285741869025505891790993778937431207036915751559748063445248228285450076324033262716131623412090605209565666745565850135297016166383859664274737626561533272649715932390783915625335468406066340568553186695800302583964202387440238913741505563416046288487632428176726312188502175535018031451422221340250473439572851866919092174987686597570021242333998032832031857583140034446294548707551391642627653432919330512905952317135019120078254417547926011628867463464101171150624058593549346627023262550344594178287462402917253615896697159706922109527980743692335324524510756368373357546680231684489811581337266066543788199551060957841694793608654262024710921325298034588317702306315207742714304026952028685554476662254112909476494062334349358454811619565519818914703083064821306785085576595857628778268738393129753604973808926672283878071062101070266345720888421559926661853139214833109634828696294218205208634700822422645941996675385080701836963959815409497043768502562647858950353787420439857442232874750087393174718044297591244464598829449295334865396193414681252644260220268058608143854805242933637038519244035337332694821456241486666068053030611136663258319313753627280703959943539477156646539854703482075186863394848889157891852549872985099577619411856947298427807974119621251062322360921479512453352873383381239830872754157245157951962977311271119163261277242307734177357447427805209695832044373744793067821166204438735327158622040810383350661672559075687393562393034966148428884288072928603250814735384602218645570129832812395047673062785104085374243061757985652737559949272261940574673060711178959815157255250292372673269078285855915764498396694897358798705189972218280637467046954211713894310084652440006235652126567862614777872578585310614644597718550469634450408323079016320162084533885900834208220544005185757231197345929986398907795622625785119853423046379957926179272671443367619116933052090804196162501417248594148068565173507485996999269602352046243260639702287381217421662228637566053937231586991015143458466042082861110934203107409604306026316556546484674161198788915441765807860514353364348424299410507685056758479772989093655161238833647627996302357174700067641775085013951522298412479598764189943182968865950544119422850996266564420999957850277939655334568213418420856091729688659041145899424623648507402368332715214492101259682882453680476741056503674284090695302947779433595803389641449773291738788482506058177512075415602667457053999730133728088641730859248164162950978249233924689868956478871463234150492756325742052560973608549824961095646620454968484131533094499559436083827179627074886052501556818540819198444350654398207311490761755259365517257110811563531671447344015189158226661966922352696407580593561420848093752721006537833577236455110357319160455647363053009329333499177418202115569435185307921829904447166988366380523601220821668725336825233491883486017132960198769407035471967382804899833458937240676534354780781383481938269716822007516148044339818709076082757876048309139245385421318462098504622005912092826601405232016531008874336544906729559115812395694451648485495851957316466081464385440050300980506819193396687416546000254958411641539169957656206054322770437294173937286415991652796485433285668713924675072821913654145325931536159484800431184258061575618181406750152765365711444571269660797462140937842134000018907350254289115458595966677769603084105073348479475122293362607623594515747213770627359632414789544679359046045591585927231048700067059781630463304753368462863195942932039993602109729405289313537742470693390717465521297695756144924656453142060904638112783651706094261471266753755405519915333936319814563887929474526228504469348965729097016906530556481392135214704585349647603762699530926463294698625514328181920002724185095323229747775821855648780757371047011730668675499004648744678904749126791830175592524054245312837584047983911390787925229310749869280664862839969661827757175702125843398343561549570782390682659805010072302940508471179436183119772569541068665172780655615673819673780378721430218543310602873568082486130069516303441361925277891415298598777497874214097524761283981043479534371974711273012943428648756083011880456868814266456331630625569111964279832491682354682304016892340666891571539701428905618892522153182141092882696651628452714141165568436076029104581086516372287068947736655819635171897484667499643132090554993080977423295913044724409855766040414131252389274832331271864362026560800891398993560140954477637446557452336019723835792622126989377131428006763230044529356017991353174158540231758410093500891029819053343810595869802169669179612497701054895697133907918654374402901515168854440741164165537369789062218318281294080588354258789736534648246455231106991562901023244579262371688575718875131075724951088630762577547057306501699811073388714093728893759251469177280555162985008861330068332638659113445172094688845201826440925902510432209311053799785951261358679122256883755393469128905756530684368165355637400903353934013437726778717307059117488607066047941058593509366468973767740809839785118234994353405620291496734858483120552865729163552558756914041801709484426527336980565556713092616808545691109991717709816456742278191551178319002398401354120592182090262188260861445018735006939564522075567949123809630960142228900335216214363908510494110118659039804889424201052814373939175875299316346346271290289632210597313012224065542546312817274734791351555227567218495920735581790239906237487465574573537405636267920832899339340046972643157845316021698473563552567728365396659825022614317463924079084123290410990526918724765384282841834603127922698216097931544785622839945211668754466152822759413925937918862478518152685965533572584873989850132617164777926733039057746304512422443069361770314981086489492730744596639025780609674911686811860137101325420394913827342429698016550453963359358524643720976686551941493380626243457128813860330498184102000162836190339465056980915730267384812823394994392620902644125539632577783752581340537153537255269553947798828440375523853169903377365127430521646730295191566540164206326572061117898717153391427365512099337779994626839720935600739895444406844418493550269557366063748779252096955158707490478858157001716523480054018555650441370729061279109818153958007543681163742460753783431289714754768615892033594176886556401462813782304189668178988065702358763818803832822507403794604345919255407174859983158065410777498855101883427036282297659401521245389033057805082599500924663351451506204974763936470751212945583788917391559612686680631313551664705239753624291525691364131579651200038929089639869489401574518152141621161379737438368862899387817837982103799081144165918795158056898924627495347663799679472491437132873971268459465017771676458266433934759911711905372019412870316424755543796250321454937239433764145960275814154936740263569775480590280898203359925477512303264728641404456017030595122876449559115786297913331780904880991532602026735986733335214584260695578763295530376615903235881388479817307024656287107761970489958824078208365302207956963425082737761361621824289463744317361857210439323304885103859422912465236771296478675482417293862410631735503152612110458143684336705979807039494762696838856515411733726891974373599260520727870635990725826958634723426556656241769509903204723713177622819776890447368548227843388534014826140545793161308186500354366517626184866856966162935000977401105958906677506708854971705998936274479692598106256102182952668287085984379927005485431782751433799090628796335202203966279787109759610818018815456091488501669779563029986461795998385583003437336906264199176245923972372620557624240814435883915207655391058553469431797845400524375608625811282258099185783430176752718466785615994126655732237611941721750008477271109701148400468906282120684150414142089501888279237674978497147042318245674662889859051134610640046795382369003371487009421590145679150999169505973251721298934695210353335853956044724089563791944027258592873316410695998164395720807051021594781162245225067057241773529041505299365300247577054195000172695467499417921284530720614610777128449321329083925747735545779702275873037041851297094931855771857001649610979024441938519594133264718810471135370357260762529978474729223057319793833364480276242336876072310036573539650261820667471462029836768003276147892285714111202039951026253236105189557568561573610483015546477508286221974522984469590851161693674930452247343920295726943876931128126249991486984111041091788500201715798331679089303704029507560325285193287156610264438946981752708393470075982517583562470799390195360105324451288600771702517420609618539291496539937300011743889305087257180903103967440187847744289584083313264168224113604023803808787236877145323934005054447299785796043359710014951909186600660958297225396125408977024332447277360750956610257141816786777302160359316063964219528750472078984284908771588085137691555251580549115426995144514345663251569160328797700099242277082349004005550451784485889861806106467441888043000056939627329130297161649378877288983072305873942463948778708335308007682362463284695966245311461792731386862052381891934826049857233083134445328055444722202909921027025162236551716254044146275813389898201054462463256335834152600772798281203204937591594903941154864354040378815834769299171735338723518274048280360875843696307429324749450912152878228840028308403851746696276063305101491085463891437446340056817209981310187974166846814336200369380155065793154361605884464264802032088366084374861955453509081272941749072975893167943245487944352551907526903173125968647895202711938208670627911814804322156076578669046669894042598523293368459492898518615648869852260768902942700104766198704993323143270532744143027316719898069466374245321717676884355507549349517717417984364215286859604449124148859892023967993703372797230967410077967789197164500673208806378532315490860870824854009945365894467925625353693204485553209619516001903033387414322038588852159892534555537689365704650006078084129609512503450489550900359219550461784679057019601977608425268916645147690874898775386216901868728611993308267278460997591842969420967936514593342878521352286662329135618488048779454611992656666714283327158417960448202155007274064858753535428653551034902068672232247017269072421654478922457860562877149396209009481287705766791177696396426280723594853000832717186296207113731112339741387435542616520094974650595502006161839794247891245843239837631897792791393541275395194691871880528926689652260128829743716754932523910273269171063456619837770266969853905008225900972674604686022048011088150246861469233006590373031381300652548451063107870417480803020902844476206593738692388101491372103869035661305127243702907933431485083461455493258509772762814914305360135669219501270820315895418094436011003325733422223628589037263235337162192397801042682035187059601679963623149163983260346706808410799048333737999200545303548173287283818857768252252500079321912301089410657190544534823331057171596020576253630939222613601479476412869019557617568525658469283100510447431842567168796407197118789917376498685063427035639871744479094579064254088317259374709060324756669512637822047137573703395771665936607516726583615431410393361009871272397673282704261564704247647655593504219767411389159782361028559939934135435858715523241295640848851100608477915962253314801066942130568616725914779758966990613250268839936632763304585698039109251352309299800227034977513875315467455262714502912483333118362445800275557851506661277117540018497202357676733343623350272782709215096803012457539223303287007060217199875317138939254862274290378313611672735884448587279384051171751746397322561487417347743044668182201126395455662324683771001027282362970061593177686672322858786553954004683535136308389598241558766957479251307894412849456421138250728709155527597643679700503061202279618165223127247800879830933130584957735773133919182789291658941451907590653924991861753151694058682793346855253238624400461035713861321090654113560457758267319049726283536645243170330270586502615775842902952838303158903313313935594664299367151946001438998373971600094893487022225884256428322470727594271935770883128612513535109526939644960169125216727246729158236449089079835878434593664281531470067249897575095309973871493667902117755545999816135380147778969150276986644417177451879760591960816081011359316743906310571973573189707439401757969338561436106910535342830269341443576853263889606484107380721333358741733265063734056432335043674032315919370255309222270543748007721006897157444270281761243176959581796946376569820076637285875450242959092173860219871253368622879763887134705392465723112384338042354876127393771037123733875296882499327176491399428627740872780486865244849424373097594339899489057778923806681916669894964776446563313304569715495330176054971278054974757936541810005140758333624857930140331863082519519601624768386566557314777390533433657758259420245680188748868711945139677727029813775075595383242849295465405784140402220707855695034666472024327076336786550082831960244409780064754324656917956486052326339668473500353126625658485844458473870455726221297141811924334630046865362330644690618249928422661918970537280057586294052311061248556568445327099108363984893490094438885574695137359654900199746369163011144161352778703536051229960274547574489669829989919959523496506375039452806769794296341594313777350340631077203565988809508752257401630502986447740068298964506787371322550303337561710862507895483878361647049414433122774710157989064313516434115533604794141422206556282766533726431594190900707843259021344286351469368125281611381393961961305500694028252246850633086771479968268219591654361724047051908650562965054769214547922329435728939632176983195906808286460447889241440510909208429464014166188760635166205594531897274307309363193115162926412320782355907365355336228349005119986287527545699455407015564478990002629306545897289405728522886518837626644194709383759538888702253607083620878250749685602265040848609534360576749234540468420154613839417521699958330683088819208607818762245736269193124130302380234218737175578735679294474045890589145646577216563292969600111961181549060988588072136123720584435106989257010791123650529341084126457790581414726306133442649654016993306171568038915578458581578128915571709242691954084819206794577083714398711791284632080733188807345546291481990581629218071756493516548206433999721668324799844592828257900285875318010040802534238535249056730451529941547058365086351524801616013537015563004998266371090464316251639035571901871677281745802669786056319108053946049773219404002391015495451787402782780088285060088789172646374041027369575446722480801464198231413135991559799974044451554306183776578861177664029716288630637839164597210472101230476050454766686456475915804355421957086880669978950682505437050892042215313315955953198229897869927183095690515539046227197364372534117453366951350903025476492115578505526923050561128491977817729385634941228430869698918799974477796065349701674925083904536219993707560368310242026811576112750162271255898427686514931238001917527805914328044737985571285033292082163544705539349727084609173639898169052571573949674113408531550308327239932712750929672628277738327284460406879361221430136748317657578358669957062096394664799104175584874180131029409381091518606240442001232243137657428750586439379808613463157575044959968253035523091387936986417203410126910535660440336064002872074690117888802830951998344923366829913496236088820999546523633844525217943354331503180442458025117767731252021054902220851937619190552182551543457538305931414485103910995285212038242446315455123597792146610505988241321672087309582766911904992028235718715345101591935508119987150331592763838761403273350125227624648274738626626414624660125406479813582994148134419007770574664646785754049540383923365342951491606211797012006530009059179174163603275361295778618233497617882954211849574879134097735362989213500120793737546094660625739552862086826543405934362695141695022369437421594359875871838552759226751810087740576703527868338318016463635558330906196198852307592277597821921616478279765593378805584094315621210653384603899981462643235475836413680729545205317717925817134315648244144525974962942794742720129201396770969176390468017580241942381876223445275601115918114376361507760802501851296088969624425625659533936858531779715214324434364924747335979497385607710474824329126291515666765669873266791845467046686610554025282970397514595805848961187998011393296727771391023761033640345271635844856794486622847265815462944758378200395957743833187416744657758064217445554154823476256677669120447805236508402467996243572358230759657263415782882243938203510514610920349531284169625220790336888052894512069400407580475462021547465914478964333354164387315890372639007858021156742995170162764580795350760341757693760670179662094047061463716232134008415661476028829100645294242779406287395427004380679903818434099590510982225112130788706146264790946232751962931100811371468962369534055633769099677073537432056959917667919443824805337051031626865239702596922413544928133679285164265451255821972343467597860789350992885448360271254148949610971764641481916230018185727009755194671817364707520817996979406383631161013858991721075340350508906325403469377796660680466851529289299068810496610363766368312524048860235383586083260731224923882869063913031603192304542531328825657812110511626503582883956383030304806286365907579049751124359223380620628820015033622543077789074001019483385992387788015710299609059698438128051348304297424129040999817302074046194003543020251725010456128221459608866517658485585252790757683600905262002123191030651674888273550540290146531954103726816808307200712975252570644848800350534066048290103222635608129052119863520741558505431684912751661072835894832010468484571314264029001611642499643597317767025974580604995437267184036844385905533931892381196691503893375740649576856309707833173743252606994786803982223878754611272454769548900487138780845067577229062759227577403085759220740846166478092517652613154780195657907673832539727836674879292001669499120869768773042751404447503717808449621987886838428799858190836789981191681484590430738946004588280273315782624680666361364762014302277487957864619959686415243451605463051140697574562350680509055113028026346979082476284484027115342128966037470158782726909365134831356980333187010644307234432724001034171790161243190745067145675022920936066387760498631995755735229377033386995265538895823798208974436323383492526368424029687054206131532768576856937467175322787468481579082754881249879779474027655422528319761664772438485299280673508120113861538434291354070082611287205238544571617383841312186330617951527596690055020821084676630147517442847179168197794872484359515914685500726130646353335667232976807747380564714726570515995311359353834074614982065038184844803441672247816244110888612811708639305078013154686712065423356516972683817381449185537396987133038812462586174065036904811070557887141446654931339616752158742703499237524387386033575667591723679831219253731482892322348851926211277851300343204615466399772258602970423583880417701311505515077009350161127713767514251033594823718778796205220160146652807968995225342583057139474843370456917776340272664355498650030605697508742724571253967896649923074513299935901003286662396271973179196104006937878956624451632646786978034331501879257966183709389524949361724768412526909354619810055834102944614905525115377080731388537674697151687646388500430953484904431267905716267545811367717758103519065606361252575710984972936432574642075976841854582568045657701722342437436176036728018842356541405528663316191006650579410135946951268242135677030013003164122661954203523119481751253467388744145272612180192518576001807022045449506803864845138254927456142605552634622180286208692552075125146686312343661072118997645188926759889123912495566151608723470119775842845294799768738889089857112432640176948546257266292327814928754809028107276274578653625228414537178382544750447103901414335092278955898243582721762320539423007414815738186926074602386023096267626277381037196853703033096836951720422870127705471340704820913975054646105500092127248565495774656778407452969878367448573038971529532928860837467160259051681353129353521034065646116717139307575610435753681743064803499333138368888177987576449135409772868087078902456519441614490086787045739301334830608568875764062334184862354327008879669103022172078299290025309073436396819721389032351666887870417590531175785635077385814264374454966493521831810025881394048641952301492987416604534783958212849264951169957950850049375972187588732081416283389250246520455569268540522125581727157400263688213662003179041364157361525590596589900902557849368602387259144325402608498677815102888731189039506098522468305545765441105603152824660519642764147783632899041251653297665827969059663459202451251682466611661356238185792923286759197824482791859808963629774467375115909823671128080960611166087810962973624358942059206134602330425863607864213881052264096790425811993574806002509882423593595473424173919667275867940898219799746677168447613437255982560341968753855330025344567035250276979169315692588323528381999769988456943358611299059035585153924167787402990137099390244531990581348857740782328831394497241463321718500990453506028419147814566601754758097735165918321166441115349480946644606828794636980271806516325451408928582676173063256048057503066784997370650138254849700053157616450312171474891819318042448351731005989249410896285676921055272146580597948268169281583908246164556497888775380334221039967307701296107581724998003275756151318503242445857162526806193071884728072005310774840712257369728642085006020648016138074474350523014576538414527909604332194519007701604700655956448581269594275001176977566836887908725630816902260909539439491980032412344786961848900179691228314333969617800846507986570067781759212972807225612166013311763700282759444163338686441421197633582771144243392387375406125580585018167937865045483609526191961327110988696345738141815362591091776900155138234357943424549079900097383879832921708071307646030981353219376448349238080685466682432223554702905311671502723110412396210855809782043040746069145530635104260702989891884717204263120252749016848505450713435668810261803873474393103792193110794603860393107031406424495972614975982300127659285169640115490900838927537415656688709824472191733375819874923479092164814972311939624349601009412354532554466516049802245888882488734553137790974574754006931145332414072449613969760831399817082993183397549500321781532602562110347341531793158648312131089724342378243162769578860237267833646339227407343744730497144504938336902181838466119232310584645722233484961571810888444409395635231342425134410288889622385111004815902724109228358265574120599946625219200373991010132088108159536477675297652537947010599513243169702079664726013551368293350769690723722781213703427967767726086320791334123479442230681982775037813675139639844562215677219970179919224734187937159817666972610911002558604272975701144891320712362298112303228430217033116531984605213015886569362200089879932292024583807541548591676087184038462669035310809864851026882350037971299106204178280446551734950714442305413598781969027281808383533839480717854901563804050856726330865334928644705140628902559940802857574770454637171268979224502188115132738623513022208110534229474080335994355041084380195548858623844087592264691687261858732073258674670804417570006877787096649097457483739760983787190191285384008109261021356515177234653852579232245515417527992024165437473217079642183168022823459543427218847690275326846900439242363507299299897571513055803282722363991685110031664092891023198919908023344202155210593707580713969375890416705737444981950744874743283813064942229897909994419212622198274530391569175589389726997082644899261725672322223874848887379827994258750601032151799818069687642276256349490833893829870822901522133657314122586715489418247355816642639716907060623164155556067274610700518880294350473959448723621110158017586483335539678257375810551138865424490835428436004105468730887370608888318193752060811563892884482061093663395063341450572843737562624669087940817863725287653684015224482374649479516158397633248314530395969995510147335897920549204025423005178360005442215674899959840033667382195831089995661527654601608577164186405361178500447411686371026925629397962078964488704657114108063804117218382026677994050588439689973827656650975173382670923626741097039666449485791022149345599859473356694371085222614110757131257376107692380475963899113771698186450222175751667404415591612185702119826303070275357745716114045706273059045130714717822864501003921359297574259294521024959456613241017946149611412270921341771816184525461977594696764533223056025751324675164493705419729463011083539887252466615946205277605901939556843202945101329793746434571578538336033417735051936493296873419484231586574232079250342759024882019815213108745618832584923769828329678643940983768940928454584856807643718237194211599325415782999592955797511375311803495508279798469871654167716840887924030426515877362675130634000949939683692798099769214122861190613251964302400529057605326425832355295507728708028656776928090242624028576404208744701670729056311521220990419891929072572853535353451029942654961115151112033679866645185528613964579757827833114192936961295693491523481920953912101293054367021189673007950462761969536979745032490696398170368229547437526270403042319973792745300963802466899874478796673639229276383265988291861402114391204855907024542742642935213924829690629328089925284203906746303188829747351307019569502752946991403365659336878952967117545188341355594119540906441632695547390047091029934923860382196868276182887391379364950712343144329292001889778720271404047708368335059797732065935126663458810416617511191933292994204144322772431959154677685204246430223057391055807104500327253826367572965701195363117521023923012251490804409877841622159516395757097294217273027537699713340872028904080801053704451493124145642897321758346923722649181395896555828679328575934432206079551737346211284713182464842107022572074105268714419688999648942432895798476263741011365771753598712331757775060531586540895378256870089500854671351221930012485906692002931165938089076155139505754116168833603343333697267878125691298643855462168099750982533106953820371193208188749923761944612181856711281950121098629643213401603404983990996624920572908800996381912521246816615373979611363354418677923862331010677035798138810439904420773309972085899191494840650783547686000135870814725964923881857780418645468113526696555847449588421416129915627226295706124861035120274312994914428595293370356637238466563943196369736489525058914668564427559788895423865735070283887748668370224103937092347833717225968293182521303836728957927640235557826279618093334551961890860595857255560016750329767374270058573244135554607939451255385681656066552856888070731102083340342105873874975662500022627694393412218574180659941022616556432503944817595363363283167987866132112689147637185362553019596544821077162269394100456057238108323346839262819004755621547660434850859377170314641696397900149398040863941465479707812616444556753623447825042081772265952388615817102470908533533062762500152177503218316381022544062925062063736720256381936402562367868044062215023755496304744213843271362786406143223939248875632040795795156001594028603018269619030683134069149719730338065691307463162228725260829759288718047749285164984166078763919275769188126291837757338602952422853008448780592014985036021808443065625636370413564269894475976450266801574129944744550180568386846058681693000626720446932294576148350773186347709604319297068088495021100122322891788646337263652726866669504219780496815739139213690213458080327381908402005935115164146735263913204590070022596656528730846324866560493235330531782499037983269132926561010361699935494681732833080582424171378903707585897902349205022056529598042908458704017633869107399208992954629975276431264939366994184067542997066624228406130727035436668664698315641757217366213187984294640771031872495918248972125406591450590496110998158621843185796673345140844346699268167066045123713287765757939710868579620008546267012291779356234642654347825756530905063351685449169780330860049190481013937037436975884842884902340108848797957229929473911266414588962664957613656371133413891722831404743572688991533840934788370672891610606209311754639202187658885782809799874798475847847126936302297791550308305383491765094684355234699066340756940807201208827251233361972213088355005337328509201902341083133331712725326799639568234222572063418908819373773924329810968506835387290056619386581288697005192915644182953028736459767170375072170888126146342595055700211066645686430854289807480589904773441790230865595000931820089601820707780058359912067823914325938144054311730724949313205569873289381047885454721094491535303540003845130616742518099714051718333531757580152256531882667379509931965195841922634873979507193137777080166135391541036556304754791760897974773318983091907206945572753359705357229275065752300472354994746958965643200193539567636011157028596143408313456458724064325912362265942128670286051535422029777719817386106949187064520006986261884864161220780687504577161307199781042020236631206347563858473282829715034230421152539862704785426380194707094588954544258866632663518995884348289405954887194464254968428292754390598393808487187758058658386361994394337270701204082781738599682043980180571883172447272472219512765889270561631670318765653671926089328387540731455355788093626948832144631543387391149393018553772744862950830179155524290779437284523809213918421272244959981691388781803543982704820058757963654857198674642162756832753972292454109999209183185489901132617338282705078252275577009257419417099993757941849126693082479486989686199723667743465652588809694235466564645449476281428014880612598677653226185279355443625679522471443611648858631211906294277171031713731125093209082168754207533963836199979881370865744351022536526089682119827809107234260196061384351822742529932262901291509774884078087620063813444282093235391793686200055070989910336453852789730208029231951366693340347496853251018816880453168282809955736593221436255604122210765179297119555505391274030829918458337022329288988462751738606118932626531277098703858089796537175993185366639347579277612142805262350530708799021436651156454370618370134760349446752439389526686644132611862289079047790686224093944400072689095151661782858193843258297958281938647450810241786342805411416506643439569094873198516424748826896320327611417743607596066767359219059680990778684476601564338958713823087660664165997429644457721649351545066629425240798298592955293891199338546927852391823580289074628931209497903035361670726600135388362896302770497658592514115605088902462943496984568520928150155341586163973525629416451949394596278247040814232207036166405186856252124346451106932007138390027158881154538923262001149154744370850661323890659205003890765754305481090166902588298875709120207057587805302255480308263978071325098916984078052909599651369284839796641881276638310827126598557002625288751963499672609402796489404807083850584976011760900585243641332862037554075079297658005127210209629456395276756733479858288554484959290675089895009188903270184608074802482156128112630555354653562631564204570213517642456116752996755931880266567199960692794798568225083839776061463662843186533104309189186946503226328449786397608924178145185593304146543011412547262218399975439979425764417650327786869107914824915402675024511989595681127183694151610154193351700750466629126356930256199114159251441589125587270617602340980279668363923679138420391622679819150120696725874752328592409348002048468590575344822755274163436778736611204991861241564984332648394989127071125247866211952128306073336407759041537411200510869220733768508710056982229620485393215936385454517286920465199459151219089327166601343778104049801315865642033622624094707956933749101984839361766732422758741273453421550569465695761651721319189510429694473348702870093346708435685896543028226658043970822715953333532312384230095596890688640692476449057108079930273948736493073102180891001615202727886222165780872930196805481720742604631383022890028274943110211557330642821188873782261443512682972876437352408954695041265622499844275687233084858721998232473651744228027316512894431421977515745071721565188822049920319730303863722117207420656429435224228120767987147770732959911908852510951560859112281986223450597710305694573297607077817555511674883852005835126430373626490793990708659316760447375019123375245144635698619165435706273772254882533981977390553477023753651574281464735877826471307477097695940852798157875187829354148759692188033165214364634268811291457533363982946340043393944636717299560374828335221876131486832869506616817449940552622976992946439320356156812199572096457954128407954794419559743438673585285690633594869788338956011203871130360472201071038513923940967303775459120569100726502427316626255864248383331856461408193689327831628043043312731141820654393936560066979901188111514566102183040176405177814316230036553996798484778934398320002544444853030728396927738388292251217039752268277304215321779159713437941686686391651806403376670252821190658530425414551479452692359449106396653318958266768034134356717770432348668207377647075798136681712633461174567061599861231591796159217817261733070819122700134267989378671010470609465892771578427702552354352716976417656922000988121691564989249201998940089086004995010626789889437294167141248377312099787895601526632463944442144665135353118282482020345981770237837867411485100510250407903919124047862216599224862816827341137858132508627071551357213332407306101320400449510798461782566926925091124168859515309977625031028027583166933816985262632213921869719215662596831840921127553678963146557635968055912274763755531492768392355478680754292647514763220114151476490615191028571016051665842506104314660450525145730814152291880652110952813492498662149183419858560587829293890764716565400186316345973693523448464911212684964388652989303017226318683348162229604843667005580180016388039732592995043138308965181376428066457589519964983886509159172653142005609749765257428092469346002892366082422873551574266780932840820789634895701199858853451560002437041191153127245414113121856997334747242906344865469745939430225624352902695974200405219881943271440314657406971081929840010529085111148020280992339085770813602705972263309688981487500772033180206048853826293666735434509608782972322589332797942246908537375560816486185676238727931054405298823436433828618727800152233167156808354589321332254781770615490733862595580525384311539048309178544136298578346954313415338025024201130932998167375935109761839589200881502107654776910506433335265348472349575371634209711537882294275411329739897393459240605110130672980458138002232278991473613833639468116995429362749101264951732229216316105649800563908581286360167831545391560653781895501254518195363680424645925908503225934733993226477462804737933876375740679947271082075363394741822471012896014888490565433264587470065946338111975587830704466022005898652584540650999168212302291632990624727474402150792819419649426560010662113435290310221428569025582786829148718492565127922758851713102628723277349979627399446833120379348234385777433030237157148656848639826120094055047178538394564785852404544194197305816002492020734645436609414684027134026603931924984761552036432101142121812383963163660355248430363157890108128146858834224819299893184005879769137914184819269087437336579379091775417854390139531043494328416735154478319407507791639529362367672680724315508682071422239543588167656577188501747358555231236243497783250082810843418437369267673968389096233679290993588576491961634933172431647091608527609253746951280563818015928970905555382120468536424824515304242854113275317246200388989148774183928260612253734640032209930036285930966241954103518568794072249981241233106030554234347552287370343291014772080788090707443272241738323757189551964673037376846215516231888511865761125613657484454782299909292763192633619711894803476003098496928662023471419944467213366321226033470309956379237737731764435005395557160408933258070807524005866095128534148673393045045080493967102736981866088427097301578200643793137171292747200874338206761475996789860655156192083141508554886071317933491018684665123642833452993286340084292128644253484829742384315964696474613795389903705181500302442057376387930404649778472014432703773409004457934051053017500837806018734990146919414113703940387077765843444258816405107603721449128952926185882646453579555887351816741191744975331653296483242853436958099667232707513354298292709431014390321674070579892243504066690873458896918786644096301991436416245952315054821441191250525445536380152760494870150370434114771446070094711296883439121264615814011106280822412896296345346088858360206482371874342357098060389530168424224219682199767907817418132092730564250496338908372369716755093748738089517830501303946578281468042260241596644570604042318773649196868144441367546762616079233198194832844519141885658294774364961914935482725744926471236459886302734463891294364947236667876318889663947613220848169835962905210237998754766604577655145268477628049937933910433664339851121732736191013077447724452865871104703925344873848958302382122337880875754028290877136999411212141904985546761316466704310875006495129124796838916796942012757873400736365832071823095791451156796754675481920542697126973908834629082108742421056977978651773676392423672240862111348300233492357416389846497936320206720722603220184975541894050507635885911135070309808331141496606100756377483858683763691097152215797161303714487483893434011938713900814472923885150699524289771130287226836588296382194631432009248590779789454941966754921663142891171428957589330699623447718819113391391239807118252408494241816969958022580632590783236456123415863493181992483444647557537191882975195936241172203071163839021893288101748443556231785965005511738740740528034603247428704892484710046028476849660130037653251978254234828545521101475616725386440904835667907207951838484863759918367225152311739106515481784786515531803533305172435645253538279902264766451152744237449465724868295754477080692299585285328501066798563778078532646818838536945114369523373564153917897901263691627171112334406387261922282027813963895772356697721196160013053237778469697804645191210520201873363855769106447990929357301709763414019373990755863426944095543598070590010818158396648323387145627203791943900907236211236346212215362211037288790730150987250721972969023864393308961607887715493725613537782054265605543076370521075802663584279672687434905463905018986103846458475587921088425022136574887476023094081936010434039565932026085826764262662451316156670948418370993987725365996977165715980654825097785668473009834925297801831407925372857665556076242145931030814992877943593766912006862315090578899605217092479342534774981999138896695243806119371335021916362562328464891368662587466420912235422837762031522131840065875569503706162815964538686992174344993599602194174768903864167807209479768208189693379834980100398190281112098655538045631471299256955749514099971963359429630582033359330590537522958482389362030032316802074038109664296879459681882711848233482680086563064659384573593338770062465986166235238788074184630157808727963764012546587732142649675636416963487989921282677297064226683111500550644989444370706423930416168646483587958783469951526819642469462337434782716598065883335626887878798874958583959704852025641740100970497668657349437701587471942103856442031190789938766148767143402998475081609200540708456915727736032443883580684495514063358803502367883230824973940540211245248218864491676434898398369521757687562264161834041593191616000158882669301301323917386658195330084296857481559539580447328824371254865842180184500331774705287343139890217453556231096149356674978910378170535673848620738266708706168889725589007945129973370488857788644182502956617353798370337364997847346295512912653906385123916758918634568620197735380270132110535633357306148049159787961450112511796108657557546815006588416193561696301005791799340238958514370538555115806680563345355461355929577388699790719675032477134925062792932981826727168987366297479857937765189479530986538810961810326640124157872192057362940743504257090182205827581323983471838058899321508743630003493890200578384442455154904256597295403450525944175902911996574995632696772284108543718403204373384386544709861317722667471410905154286332427671945565687665479029314233994373570347657636298416324289428870173125487452963857003597525031508162489889019832494200955600375369223169967450768736849857754536608429887783693015964321855987603849130170502654253507335798728095118539579783478750442563679615933402052530671514056041739847235012846876882798297918585211957695629661092470521082903660523471380077661611544820757023411394331784065952667821868994068919779314218657938100073113633221924164750705696820693002445540774887150299375762017544437852165515114876303942260811290253243423681816169976463501330985467672323437294709037148848254724357495933651097647592360612749270069698035083028545257729663613022695178737731044874011003739283816122750911350649139070759049724992666740309989066710626988955430170275240133043438879186883021504726188989504689666019758633756089684906047065561442109002872770623072185704641182698257489582740563224707421981960995649973696983261530666832994791933006390275445039032728682523927644385319802601300437873867646162771951383287969577025265072367913193830990190929755582281599502874715338917104787463046956590577860688733646627611948806002412319754639552662182150960685538636108751801845145298723439466379965337716763385555875801952862992652843994908879941886194578154176234442362488353563540755817770831573480933119137735342048585053044149384369766844045766236509339714485841411966229208222994083570375519121975510257760059908227553961819619101748538142421754198159332550848072095387010968903127885928001198023911872364440162031186849593759937780698743270814183068429817195523943728949119318851668584830264199613216182116295456438353289014634337171399816329609017163684464535589193206040254665209785741505848093989713428390029324541857411178072728059237729252939656847813316962885737548643928059535499911511009916154278544552995259859837812455819509182506121876863218556304074523755039310436890462898754680836172871971979722962742195845414549890128180968971055404101865250885928049413874239436874027776886281616255316616923311251616312680802517184420832791745567140354857359926134606593243379795033276615180636195644925469442640191604672906138159136155509265695517390707704659026401083372417138407914299183766175913725965266255462571440856580749370206979320632344572813353353704827807894777340843323160857037094704665595576452374496993470065073347437265522643882154353939300416224261953763028780269355348617248043620983103715567482434649975763293881690944742258894903519217812680368762904795051312039314076166522524913759980768146736905240358745675194582558580840429827869155151852872300154042925949503430752883697993446633232700303995806137427253406081952651045875453604863748154200768338596251909703401846553290947804385057091036494504943476815209559204308842767505432314948520001578659862356676898463507133281293137109338485428644650888970995684545546882207366717600189552562296631256273422538462998125432681510139559598780601143634638070764615927243893390226676280241793697814365126975667136361135580894155110655613501606130835876327194301832257302110711463915057288571411264650104983882525276450597851338294538370645454086917206396073127767624856282627883140945219911396318042872250274561702912540891968939955813840741528724341003933468708675675953377637577008263824537344267456049196351471562192271057164412154439583782742080591981389089419752371752096417524984600282288444423088263389390394047333193513080800540786161917925762612847780712481627796028440832015855397463296692809300172520405468964523632801109138654972083249050749698035382161164566524332888418345365155781527490572842273660634473034887277903851447404791953192567785747950970421516962446470734503502006408600149019688279715819973027872044083234056086111312584462994911947502588750972441342912271446945731789694946214530029219303988073652869507599168463343368807078864455187704475422441907209944183462566736328682484539194905576432032218391840039071449955711867590467795544437275109235020208015143216389894653094076500331702481544298688908473032502940890235443605907145345373385083013063515819221193759264182174139036980143629715535744384668236221369015993196059872161300055396750043407362532899589282354525585216730486811938646955438907027960287452600183893281676473760072190346654033380772005093546116509217047784696413640092318037000398510046434324410481428431915397868503296829353795022634440730372158678576019542667484869120688068518562483566394347307167503903423304877696487709699611105021739459234005915480246245178409382449473801853271528401169527912100616404642684358772475142343339564948486805465119586527903594879292737139286846995954151937372279097994799314410098966290614631468376667373570174370944985946595509366494854032577674754850288131754579973190048569731169603407699183409024540666759089449301242516181490517994239351638224867846603680809240079694925991032669828312848552787877685900616740082181535092112477391000949536985047920679129001670924378788492277041531339201453663082671509803878752260039129623302472811146516000867716189933025046052006050987126712152946666424138710020591308677354470009436405574840091402246289281097250422565067267732406872871826643615980387980349573766372880298484782093230864440886776001014404264190526890793073199511363578989853371113990571462016087962730186979721877595833977222818338453737970903577647316890472971335100433289710524556785556086405876238602763512023611722464097749423694540516686791523084916998259617858625119064357616108873966515740700163248546410164361500833557301165725309287292096608590117631075915416964259912704344296904898960825941745719208396104235172224309448702918465163723041149901262615329673214990794077883353415523795646188671942746254008811273243889900483063370989142971822187096388403102983799880416013787268053418132089207917302024958840409185859036284981806141689917865525385139877083778020226898717915021776347085841530763752542833270780496751360085044026019262439002125377962374245340468007213209432091648828365894995192042262038625601804147238663191457875910813931990404454874140027241095878664444700025818604098648444971509152726010243582799143627563466313469657702419649442090906293626421001590148006968958048117250470399811540007402944853301227677653997584775176720003910267110192503934013309495035563381464313282503033267069075604041671079049675417226555791791709945059872604941229636685220418096427236532353146882970581112476654269396510267590834560980452218953275709223149248440797031983605495570394237994395307249150223596813538897038831189538768131759177875085350435895491536027888720247876829199950658503453138145687600081610303545348986318338620195885514363128288896737200468304987707695550577346100988787612052474902715160632030636732296579087183934523413760720275965990154814661161784541236629015798012393594992277729631522113614526882381035948431714062295162382089058679277828582962340098191293628368056113065875515991168294697757843105534150168583005540044273463042084229208579517854786848584515819620948635595958581980135674983617128905916713382021264711437272028665782596644349711022049747429133027710226382372523452462878623375474639287493071744719755209410766397538970026726664010844868963010107899735198277326972032269845079541090367964152195400683038925851648291945238368510904243632957535325885225315886629109913679038037293696482286734610445519488715516751974878973042698136289625085736450912067560769559628992887767907949167970455359773989252161148269633952355687609943927554013690150010155378948317568167206348007983494883121714429065952784753401502861038031738028694279287412677676182332877233223983150902141755987359251573913857363500245179614308922384099830266195377000557126950087301721072500976559684521333866685574460961675193140128201646656448585494122415140480057041684335204643658137390353686778710668161624042220786861932401980809366505844056857426811763464080633038876038880554257111215395711427217979395041541330126415420622860792524979593153071493363353636531178632186089631216332313461705201240060052041006198779845750771352075739498800125560111520167973682780354483270262428917486991590345139840747955308380777187474966309269381301955897495571258160411668648871599764054157828786916468397894245802293135512706897690842484786935282959851544072668346065997200847326744284414702294425102841030997206318932602331724750529836920388870667139611435904903483618616547716982044109865127796396323336551073384588254662346978190653625602283134573095697990927300690805336475718439179611669257499101013525736937893098174789577212249345384765333408223177380102919282331320278057665234537670122320565585047028033913411517052467840533617143911996765605736436742886561087098986878762560799392873623466422580819874553938680524067346899930074248772771956319075663651355829401650381536916824055279125572243301271071040817867126330122327593234250033542874654109632307408905735920204730987740972107948625641596547843759198030058782628667499550951234326141732324260406111785195123283639337172891232231078775996010797720191668043901878486212141295225679066242715341656485679241305275057680726811069847999498979183333858959216786434465021195374097454895410887922955188599390022012907866814816856374308339405005454194239971301005680446921676457011859041683984607917522715524109160898687268266052205220342039407690339233822796676346756291004811514485665267069734541656639733447188871080595354951434508991509260281097371707925026923209507349384879625228274752228914060195135891340674942818827722632787424798921628360196180917184242281389760481050784678478158099237176279303932612719338120117137634599389934446720898653222596339100565690652542455392101632513242243424128518327742492418704566606687123070233614081600322237714561771542405701258078000947879119541294283274034827356809426877382080579022877745970409329748053719376093923319598741056320070756720202323622048414852207982683376775621875369037303452170371103547173271217475808136522646635446070099871353849830218630619453626479600378018555784582378026061331806591426298338909477458105018628227390002909438750161129461170594501458842904201078948624442797537063256572804637620430452880607422899526470827808053537220939859530623847085997795876179229749887721462549372665678026762671532325170684585048304339835604472490530470530862166299185954211353135658893617874749561308386697450406567965539821422218528378046568243842388478880666197756789429733281007368282121995790859705532956816880792334574859322513514326194204146406490587510773196844753837166739529268358461788209923113720904957227367915298937119223051692657212268332552266473822392659379067905013354708644863853498528575187571870786137518845042425555017282122372200801221627594259712536340673541294137703559099666202906796566682914329019262791304220998018500379158757371869440000615087740016935284129809587028029234530406202056869430479959459329512847603463324769093897922157701136192818571750990326537196746051482526805654258998056963110219741004328681283470573838676054510427218083121154829963471029463195572059494177389946464751436242428928363561195709812584696636113374799001770128580063071664728721879984307736830778672731090914343379451872823503052168591447706713280761673161404812657437369043094754067148963531036580694648845047054561644836535022412701509148267227074386558189812708363507020962877062516321742860251522499797195418581563763154643195474338046933225898949726781476441442433069016023709019785632041384393338881336204984618393272226873744847540285836331538557509297236567558922098849469796476594244464212151432311582699639165585754837421884095793782028107802334925032937347362280551277808401237617739832737371444830338768557295457845883644497945949085607426216816159991884688398602829345291321780604837756383613562216938053549224773942318282070393067128512205608331218423486407659614910862839624520951354148848842124027426070857696783644081065186099877797912754871454259525245573339633640509979074445944157528986164526826343679090008464102581860353646383922147443515809505479786718208150120482461857290195685795582959948235027807491025428154967330765945010576041148009231203236803009915610149729126649778006504409096509490703615652001286239466740351379904919839699391648309467092871100606838310527625642333848034724091892619435789550587631050806927757974836172005718828502980347805479599379305021206403676542135900662809856631543575665556978675448883382104108811817182943652791610515598556340835782161502371825791262808010645246517583960861850107506135465302600207807529578391963201371711097887181937382148312395315900656986921929928730372219753202765179331496127887630520691762767502509460892848753836063414585932771417800157150594575674910501433201543679523956235391147850308792455938559416802538333145767019596465182878864618807966875667414123145704118586495319488847856533659367710846428099845798198880647521877369723318641217099289875630723789254904033499049246901914030926029381630497815123031284965999867491411276799432729398505856138292081473315239035960014514996145266331396881845937821239199969549454813197877410448019145292610348331321100036377696252383782018024830974915450160095824268413413016787315256585646680444534818083831709911880581053954506776643503870860084708481555309395440868233965448160571750420241012310525844472234429312138405850603578837180581966146602487589608249082094115113669997025501289011379988224114370192032944245564313569607034298503877412387371154819656995252628718610687952778320756529739263775318673025025532908433609241032054788919188930090002299004556706376028296286464712719304008188025432859894819446963445065337660668509205137793869961057556363267683496000961636647000857312670654728649047782227543608845874376304911305755101795336994231773375285323673649848338550084035184365157506212259533619761643280862181318709033097096296657702315886539284370612270245670318869641529099475186999131855949101278383585285439988544880984042363584642199899931221216867191104839791912053896008166225324542099814435968073318703749078713356941755332426681223349210180269707772229784392201329809712763440194177644970232870578101252177506701312092403487696770320226983302673210928565888371103316640444454142517348379951521899698133428339606056446080028957229992288537835311872338750546878971398341142131252832529632990336719426274488081933380728439797720403640371857860622840410810007574849304160307498053080004418705782952005208489624592731011254784975214349675325363031571671593059648407512727381569959362236084035256321872269416235748922529155530681077580277394608222256883254162230885629455078479749668099756484801448843133965197986989957560380290842976375328324287312790306030504233144636047060202919027964799396381085904936733356651165417965956812722021705048071709260119272682527110391373208997706200284071199470572087121339208086866027667866678801361261226944141915748090743416285850691856316616844484346851676785877819730334514283338968145633855389462669304491460493209515986738588194656472043178107763916743142255292201844657165534813826139256973791878491706835990814863530357308994413673593328018469973187370229209054602261716013281997161367161984557303694352279500856316194234535979375636031631380095196743257675907958762017180146205631922389131338409904059822412545348105739079127940957026642634610356927497732032656183482941662151948538925460851920048663520222384506291649210069957801937841782269666496426432493429764246072717043146807842586393272040918521157177448505469615390573295720586393218515665228760738015007953761676407713530654731103724272465421166253777660187255122760164186749297266038225706687579789971937821694463719743233544185401695458236302585555408724719487613641969255220124558607658980195092121905707310017055265284224608153153255877834280031347965539314297464378573960100442339879055823802129936037403103924436537854677620972582036811027767889864788023542082321252948224390945445447014568998282945798681461656565861193480188719898745272361621256055209290978217385102863602078610360652195706142914130543027639869671604687783065780284397505952087917240895579611913534820029947123789417694928314566190370376774263921241035150965941276275232242051413021281077779327920993551617649628792046373950018429365021635707518390797160477331771159014483750727629512337843343055158020891829390915910636550898836463886537631680887125050907405542300528447510660428593677193667439531684684570552758991090708819498257164419669427830897338905423590798909044290946417367318897822837027358411061238315551420062652524561095038037421819530403371377789498812761895625873365914288849058175058592392303961935501671647493523614734084563665238583268696535812790941567144126247348760957916410362839569941905860632735658946477019251904033520500099053652727536225777113970566610003837597702285572092027034144665440271607845904933038808745161855638170200247779513993590891413260090314365107854034723256028230608871651954050449910366831849025559220566134626322746830841874425772003249849185338403864501493754775523222908793807117943730984154374762210332518483642187880410611455506388031560244315214567522360496649735051405220159792305619159657345569332156977968494696535844599145896450622854039506012570724684704584106821714254227117192655563010950996060370516436692789076165248803614517953488079866660273794571822135369497522492727357006221599730171451837117753604326295651504725793094411040518853633883476062805099052151641476932851514083505042184900287251419633114506631605174497180821517489568822543528731059875474828750137132852732905284184224888971780657297330992030307223374398809130817906127812736271544347805272572461912887962410950104970994698790235479451177186309518123574197408130963512426980541723924860109967432710304470309675139238025610554402123815523350076932029853767055220792375898113075539452597400104613002685567465041842285755412620974003689355372673121048418847386533893994958377234265230566353306523353820644906671336658144979810664694345811793106532975826329764850494653209084561271074479118787610192967727479156847041976837819917717766567483550978574852586862059428494317273337116547515781725209082937914541917939776208310274452458266164948601356841488181229433354969401779691695988627011609523687935122759198957670599119211819706610933534367443289755781196210193126390924236086607185771904899874227882785794543533105325429538695889619825625868193271771610007749553410517994985130415681901170012689040509381326342709572691866099639600588083112517972391837542251962435003647401062916854892613797222378927156768599928018686334014204022156164909869822278000412161444553865379236162913732795293201641410420951711944605147565681405922071019420065280926007463379662160582478718478364777428880439744143803121877038262720983137704403755554902052664821312282593794449634374055589764849114889298277854542968471947816678871971125906359755600840236791614010319759197024451792778637348439184585218165568631187040719523720111614141250002556317813924459040831179631697867956344668222013880649640462030958433512793723247542394356829514113742764306558263822804686223483172007427665148424693674354146819934683063844546356947385086372270566622732204073272660005766204248585505630024697623763356282909294530732237550556520046951340232969944014387221209252292282720629354202703542174190886999442451683124305413823087520688535260779508732543472536728372636181903261742485725000130698111512906869246330104178226776948856211955483514944130722248200746830613571125117251956260748975458572335912310640767884747038572589871838638859626647255346584632401904421561697639145421939357008371371689822401330544072786600706535526123136481843206407471914482089284992949201309331540723225953704704393703957463077779647161049670266158966534372276104274071210949274665916525620605340165274409890190027425089634648258738990493495042987207252878230190937857641092852216381794178431053152253670476400703677922049192844541842237421575436985952796773070021772887700864665574189488949973447848387828297379433622075811047494679002769281425991851813111148220305700411019815080915402791548526408619220976075019592152675686819243656017878469458255024723576709621397357025105870457422183455620281466162108994871262121213149491693509134672410585909783747241296679244136276096417159628453619992209505894115425164664933859611083338052525428709466545787102433231612680586416391649590066370372528731359161907639830281331317435458448038395978942989991140254450957396551193016904853159407453606268883930620000871323768105314926750898849090410376248097796833040168719764782297084709552401569792171678119567125463011317832298641911685288500941345439616246811000328528942179960747623067591702289600419228397378313334852097073528661019703941815487656774182901613136608074768135141387907348795042679847759722582663405111724546804102755436680869610174874616107025177708237952491263324914125328056745905736974955194633487835156987591796579748043146965950815112069228591512171235919054937209967792140291715261566019058741894729629565164787220358826862506052639193584072280060543941547177207180075462981023315664956271393856384259438510600818922077263701520371893848057720729839147008643506033838405028562596211828044545080427776324054763927114351223115953067778304593888883734317996175672926466304429620680550054230847612794611771373753719956970670090021318425348426314054049289263245888721950779381051850681780580311976964542579678297471086139054437906072674455976031340155152057807136327286777361692222799210964069703152366389950648903796401046225045556250520492682803758221824289094679904499076152886048437134876824509608714246678152981604724737741766528955841997176279191701061075962652171806099343174782508464038992249154449450998687781984854789025235738615239094542611815912289735661648160691595841241647414161610050867689083807285505424417212670366019436249454497141572381834745585316533312236475091696791272337348786399186946205073814206250711661565729689670785232199500536602384276317243572308039761975326105620089268016681104154824075866341760900646613464851109672346816721332095281113272493082435170391781001445718341107462260298638227402444711315619189834876834584482556869283284260499588187295785357015773106591532577264379975761109856868934203423349522654962206227226860235505565338791972488168461397583127442562272594718270555652580927666354822420969892685760262594175337207631835645615369748889530499033353658478289617171494697007549084253042428235422265006934117874546515036588358607675412984521503112155559312962115576523842259667417728776458282343625984050680864150536443885825359675654805110074158331867566139891681131657148348707916001749900618441424166195518981409273185736891921462951936994958467904013340178337055152874815657241588974123574031564085166313596384663528036588108665669665930811472354145161629536262948962306922939665834429812569634716825013426517891643308171684079839682082268162839461925378048919551559275552179585858825025504425478109836641190807525567315107705738244873014905848428063096277192233494275637221618810740872329186414257839585904850769781490900031653461170513129173743303377454864157859519328411140640805437944011381077651958228251800020950633054709492648706624286916607986462605834129901323515866890587738458336012846910129422189570966726075531326673908201120147447544382733304340503447533406776137084318095773068866220610972037649271800916983479300167647055491393164148780293415347169189582907163422217575658311190112218282490541090968527973221425831755454041118792699106072039809094943644870835079980216912358664027977584228733942652547509042129123982529667727860809619128609893602654997054971377181170380516375346618948369805770833205474066112812095831226061416249108429832789716100113256421956924145052012477450809139978533480660471043397460466244185690096057451819783527891551446585706379522853660616206457571756268262402000477461462962969773595737516123339081430490751520418798466154847258051574492963179465677460920673962581552865664416513081667293315091009451202604975066909892143673318327879897637628859840425959082860594321593919445563842078129740005251131303191770983037890517458037572875404337758636548311469905544815225015161018974381220486359594898180227332696739218662068836277416690547904753143529569460854378974715143044669892760548835816353624545717368477047478052797749884500577583132221421278386262366137000587649777105177907582661028688108632112211820356725811221758556161704461855152310584679773044502877747344235724049022341624018919146157344982798000935723501611475410580154798269246944517424052371035087816118431652864528180857002320014189610582947716561944428854124265632738624899521371710132889676984330121322503611701683206392933155863421009639220877403230101961449235896005634289328598642701452520314252106153962131578896781591502606697922303308749495524999951462061103439783117349124657604167017999613861973573736302755807403599720168155788985850975108675500617163803848446913623302755036682123940564954232915875005686873988739878135268579381581138811400812885801132824635489127085444436953032205398925748482193003226297572477775086095613427846174569411184492032809658816118538462629975493025076329980559126464698356738772585374608215414192738304732287486935070410931751273653974846279408523029973840257331576167950143241077504523765778441230882291702255395524827208855056882112973651946582759892429370654897455098999068278491979261805816161537741240482214182902329515420063087913147191001101439549305920074348463930386533562097917571894304627627545360849500707761119038986008473172315319431783357791649774074441841065955357675013675425619598962448850531272193165826645013532007137928428470218608320911919438761887066505656945978224879774653346136309966973152544468223267361972708968185226277977989131309466217232879292530298126687214825580439421932059675240177382181043620966610551732520914396962835430159046147069643500767423787363182510571791986419384814723088008367046522404336139596466498503295196684546528249814897640037698576943871680178802689605298237203348038112785704998542948823441810862256236311420891665163497681021259431062079505411154130755428594517517755689110052062791036573720634883101109935032393858754473095345430313590420230839942290338736160240402453040224024951477314487763925208510076137617041945404374095025724688550188876697858710543273401786770441445494315181119669446690364444899016609259457661784994382208432292825338330435804868009816378936771692681714251375417762978949359708157976487405217352915711297574544750017460123611762093706696047441949735918872016669897056959387393905593002425102303566319220678575250191363016327143547805919481171630906201640468153632818552395611940447850085808664284141982912986291078782482841407035292412332195920878093106772160517460577280464176368962560723701872923176741283423109223480633192525718121096314407893342119573293541923241505202283872433398686528362291791642215495039766698424626855074325493958792325072201955544618375211585865421939997553986070725316695581785682395398138783099563121728391611744345446477127623808059175710190742792188780755903145826728043715566556561963431062729366646190081084774084060575196818171673470623082878194959763696042146202716613193654249275055950808673847648581409052778044602276574403102931607937229318826582012917161140136982464599900909331760140847168711344647753525081214862690440918372973981875227651978036523424827772274804640399585641926325585220264128676393660571684714817592429706033789655387112160663472814673292516523365388280228722986822562694987128738944680921323705584858742706853083915361128518890014374289657197934512131019044426660077539604536294278614287864796397441292449485833005199451921356418816155561654927901709834562945975048057829598681059351177364811874770099382516651548316076603452963050534364014103919696625166266227719065544796250996791102922881558939445611125938687481517703844293718478449406870015189777058326361157000374791844015415672783072195311905833147198315084566763475067023737324144875186315637341831381444456194870172021376517644203475142658046759557991040608550601560504832940479159256808629028353637546564796125960227276205149661082027697819135662089896007609671873192613848865482335224875074646312659937677077204924260711116426258638392338044487232233063769037650272563750777251324576017713965902355450713951044679170183810812460884306015503762033620946484474471671407129282248225899747940795308040639834683624400505441267852311058661239905986017524111119998360363877331444766174875424717457135223640789267299413361664057947933410062786576558273366614643858480446436330518124356130139522292745042115910202160488082227352368376464048715803946767388703008267391570257752355266054933090892063089453360259726853352274433891753847547124586527631168070038708550522622794898931529598224807350343859086869223074088886798353408793549147584011073237556692834529269415816473639137639404904640126058482329537906117988125565200481624060688671642488389954761246364600032839795999712305005477640736535226235144231929082519632506718359742935344212411355907723306126265884954834348242925475423197802975703057583521102228339240627633190934203673688574486261013709226293811446970676257210343731603943342588703405974095920910716516687532517315468096176852960177581450724403820824565099159560839535824273577942997115014297700423434157283701692684918401318487958261421891432321974822400676922602841179038191600395014642086472994822509599370713432771896665964834009586109419089561877841704339851467609344213265099517186111886020285764134612461038650883203889144076963118112812960460132169846827197150775878872979609254696597484004055616162532154130423749079586359719341471859614714542800056700750312271081350957859699317304805310170569287158118733788628528780268520506763507092328492620240860602355545431772580385673722020149996543860264913325209204914241303632855288502737925032536181735392258255251061384784184389309345786144562206083582076356254678800381688684886240433895716340457973148385459324803429713549579409447188982144849557009151540179836266012552635874667191849154288052427716781349561443544683321224328700052756563626654003120307164837236956570187543536796952193524503333601958891116161255718553817906107952867972701482424191540383287915812957115578249170149395877326009312095680868600954191695444735868732520536077241103842899432005287267298756153314640382522741847931671970428183758834932420322474359537707937787096705859172118171564128270206980449729448163645537424439881650686488455674280685071906750240157176889607188046533650467615517619643940969792262990421813174673703700591802261955862208221967398464526205345457485441834635800853012745793854220770449845588030395390568714151421656440602318569896748466807632529967566697080383948953900216828624452480076019435764747233006906927679302034239263442208649838998437622383425512942337016413055487522332823631885054141320909042954833370293652468202973039133646468327539536710678828738933637050340651525752201819296099832185530745604767480534160336237579308633836412952968424589657913738173341939865826293696010834109525862350783136630751251835701171684817961647520746664387231165916768740515573010929111460491316432464474410373006421687660838544488092097273622856440288694014921825457321093380569339960173260638852225647263852655033706237974228268863416630726116446884688297793683611627116732443691193565104136984408923313184046698774756250921579314748562323832364265554471192441560301249615361780387519202409954896899653496197506865560065594669311324234327932704145642663497044218971643006489263846287712563646497840919779949415224947388785210723731456526021576391870625419428484887649706869554811894344419751464421719382774357159985042657836471358958751170494917298700507666568514810805725926217238214925217183934286249145193305616131053293909849047356449743381718442708262437984737721522801701350189596459401238339417275601882412350023320999505156888895015515072333389784163506978062076487944940802265675908512047722520146903168571130558403610753712131334000956679936139417119720152345485859092003981261923758710896860012038783739389161410967437510430155110244716639359645802600019699372790159412045536882572823216321968413712540627525921053192569192694118201842123974311171151804626957863226226038051808691622291999401824771450093050686530534279217277479584744326605481254368192812186028324725411803272081829806863967199477888689267662844636580082172471506902160235764992145216823770817863789537900910558540507870184593445002375546103161378725142911402880403874121785440846635618839164427072091485551443398242670015417777434235427036860720601939059472814066194344804476196907505646066031948178134064905455563209837002685210000001764072763796312849000896494208109034307168694340345022385011232842962897418815809254171430733864202160558890861522616366456830953099164954798147277860917649738549152420374597833741546258860779435261999841775703317241319477081873652235083816686287660187907222607289749235822138900651352736845749095598661483738459325060324741895427191832716972754690227302696690261129611079986687415064462869050692400730516145278830095526022244922450592602303969628987262001975905814898608153807242560410343678346161296865920044524567545541851680754806137601348131051418415991569810688054496770013991851479239483545376469296483231480291560010651825444812729172114435149869215049301881973889243763218620941635445650470729654134730152202104337696460830636879208784404084232359676624244520265314637352309054508070534895388801777401532895198113647826474576769797911860438301573873148419184847957103924640884072223206340950247540549513802159282426749841412285019632965653865572424237093134970794895377801012143911934191719796692259412494845314516521960727669478424174861384686980553685446862201809264786651295330679983258848931202760104713582962974920380141698855919917278646532967583232303734413256484673197111149767283454613364074151184432335722838405901937728950472756978456791474045979622953376858711173524392968592164134258234474930122493569756254828401241295018914748199340999353899930222160994919550662386062486023033046728260454487235070612237364977862826163296378888810949964581471629682837055574438574271405157611367607708486808704107575382613676191635380987734688954318952681532948261927268541807680334694924270497389236822782100364678556156020617567739681335544317025859563072281234488888690557843922104562052271786224420494992347549833367379723782307284589518689849593624169130134094262649507840786409394899763022198368267450163626112709010108632022824226738995024392237724055739460102979855832426442147672980005517130324336245786682019626730184034694501318092937885188694001235186920463668004008146415793208533377962515313026599037880404321243467341630721637489300801642526046094558045311308186691363622238349562126436574290517346361636740818889283362181350251202495146512825789836941706540085899062703204277238927802981851292538465680393556566677467340583951629479973761153553685686830412384890311092519100864756411052856744464378117099150335251971806339292711128508013297902809932198325285931297134509168496851641038370470249124942060599138686735594769540034447876616829773988490735476555678972083818051884538877012020395080871203686941482726963689444604614531344232031574496102932464608197879090268615998319266640149480089495552876238705382372968750609810875523495019964136493487716219970275180739334876882190807973743401905701574932408958105887798999716662557445624371017390673528984097873096836784232562268255277462960959761452140592173582351990949113360874061940150545018286741308715577028772390968443560559151815484362029667650412974639725922789454247679893690073971769592876977064381502866926513448123771277125466925981721405918393895434551756287701980281075056270006335943871333504098866291250998215197341159561924127304509651514889484150586983930056708512794853564906722714376178297056670231655240532486434070980779040349278871412840957576858349831474629581902913492054026545752439821635964994533308258316813277871051634102883940217937162494235026182910488486424836492713485165322065054674441716914185173839235302129645730375554955827763673208088336854610313409073096270162720320140314010719501882252746892883323576164980735879005724418977743890416935342307042458704800663599308577380510289342150662167859423046561174660337887085949208683604061376117022105943041319382454676562046567793059845320009656041526257351082315827603031432249632400865021503971583924983879810480705214910914453081110716084066402019851616627861779417897341994013557519363334644164049385340190971366993906537371922330133099220866177620724024273259872896648861938114859541968448092170272465641848196120270956286829336795370730541661005014351115952908486524719279763436420389546022460663502579437640224151521848652496952968651305334718259685408119811125813863888370266819876228123999880193654007443928454724368510804041728465770637864839502693090773825677713167324741044001969233242546966961540271558382143951305153610300949586115427336455205844820285192391143584839921849189939592303556664605282863929774787803678990986231890668723967504218812670086120838984692249860604246864591402273806165439316609000877320884206861619367012258452376847627897709046695069176711058309200360188573604727846812422598048086774323353918682807652543726337025617735444934445644478596670472731024146478786500237080022239958896408164754207911050087874177981485748826340614768993854972967372398452407905593140544737031784862639954225625174351416275407728366962300075791756858037434629424219700001919308809071511146829298887862452000409317783656165102332326792998272617831627283196536446924470712141643963556113652941663203801949664529012895434526857299051766389875142509891945474714365666453415502792568928899252381923468434614259100170997537226675441182698011496541650592242681026641400345891831663179270698527792921386972501768281380990077954092366929283072108572539182157634461901106275720040871081097128455823227516906413650233806122775504159475425559325744414771066579187567567023288179254854317221975546948926583276783138644960019104756951549667243030750220504874774512398294360857134896810585822514239544966892482125246287067455715271688802102993025790488368372989883945220016265357475301441602884775637768343794930802870096507948376477565695438393079702949458564388133956543063523439655075519395873594934387079938810221914096140360123483806655149239254972133563656515944555458812718550893255154096914475366053556304893955018165050014055887797423863446509057324980774121156764089965854948864542048854797966001550039813773477436667574139276195771649331154182111920052520771835209938831543619782598864835266796958034894751412623294828209255194389929942445373022464926523018599831605279162434447643791284356488371804627756408329985554756061936447810189105185757017915155949445469719117150539255142723417512182934594032076541041104874557875233212546502670447440900172346258465643541710467165482249836889705471921932371586076599953885182426616116394739506675004381859435159931831592802065184663013051627381495829151961062400992302494821752493321564169502970433274719521147580910837922737651918387456652586857408157031935957014674221892766738942532741464419326645769276111019834748548125441189516619390730966018632638216670888723251824963674378659471361676279371791155482900233682710285140793291954506947717288160591593188614564847021322478815465717145436446868440077670263390712276771105742454932320826193218951979735851742078711118440745276890353927761396139382326480466844868663611719702099463683307461164918336180091303304149176102752842138559583377911534980491493377247229830468379684135212253847457520926007745481392499409334365852103785474544462875963260744803148358598217272721650696532750405886363765640229396812146276684861239666227928787903951176066397125682722161428735263885103294808781396590763139129815514496011700444577895509080690967582602627832322047241257198038095301585714774594614231578850399949287027506987374779483244566465075713546127574910503699703816494409327686560800898856545254381929558077348386484072369756003956504924016750069321962224781868191525645300847387727828109903991116517839608784221832127173806424098494474696657789305552409384463469150966730654901678505273362446705783436483233732944844828882883453248455479124553030388477455909336906549636283160340055540058022164144630841226884139339315389897959825446987434143453726523611821977154769422559067524498420037047839888801359379144250663592679264323958899744467186162706831974397812412450166983429319663187887710980908559673546194650507840741243399993448704585135659627582283591092006934378240840950804508767926596204429147895210170735100287182486719859640866906156319288599390502539532188287018847545741491367466851119403782296417071296362222265086007062608220476724357241310429698975425423385767443985747660004691980770023821485086158314855876707629253982833401731202775914785425813822343738059289469547337261831276949424612941628500880401580454210685559380268685280111275288613107558072935514087576248733246492583042463806724359609615772309539294190432083748421116896100206746463292717484829941585942614459502033875606328948981562320082554530744751409795330242273961359436166990608973206971381795202652632822494134501478001443431664943052687303316599941593557669848356735701344521417855099896119938634973262724394109882448588690360245964088460075326003107582499341569621794732603117734397319991419897644018966564222512983649771802252886820680729002436415210209907374235509559819117634024411289492592536719745980567141407336694305616688134890012379069259194623147183389012307029970245894104462120839945739204603508953789038695253880486379850619958930133432468377635736079588642601884945279832870820329458743816432707932492320952428111680734266555715885901816522377459915901701672474755727145208312854279776080287630164695240332313257062111626749822698482348156662688463300369047960329041213671934285475121038366063726857994613018595418528622774624507441135304372788740012454674672452914682320281592795371145767200275733458159043767388414130564937603268317406803059760011859431020087093951581665905352235037495460476706707289977570401178588723836805986532200031319874292342675242701385140604508605936565376627596152502805720236627527369440752615804959249718538776897149150689055854995921923626323988768691984328819992913679018856636814030442981613092250252782056026689720388168355395283570863297777439325567365177021360559078871549766358153812038488784559113061687314075031204643849859414403917731132684095720329920749909020086873647384818301804241027537144570625594273649673947560628010770304630857721345427283849056222376419923463542575932519919777850712163874685303456103669548237660108360169017098213755902209215172712422169276158513488472770677826250399646431902352614216684894785040147784513680639222194981246632885359721306739821174383522235805263828046068521862335090859950438596188821947341373122965889013184928817884315985246251766066646520260589289167823829001606311463369093389969166323298279217441125663558128978166284653852298290803338505784008380902965839815294308352340496419257599624154247358801224842428423487047071346448528016349648915199450864983757897322870447162763163363650014337167197053729282396827175989711523083587547064835440504168953087597529334818224978821898166887449968338531914440431826176805153028573080196131277821804317487284146973292046383329418499629659868933467199822065827219053102029994790582303809924478258331507227530299211152330035247002905598801049635024626442756544288857544898060971832433030054966145704787014277548364480716206749240326638894262773037757959329334837897635109443749666550275900070496627383884408275173235288565039372796781179812716556116483956929358713982792848059887164585261365244562269808776018467360121456391897231923310236171220846504348295559056513496286672157183032213223854371266545497644673188369744342655631380605887732954938090470442353789535903623156872174369751670948482673189028886500975489106729851814448365297922602076480476516972171546367431269026992145064587372741580998137449775659212265448550734007905367094854959415564057867548576100678841011420228226448278828013623484924334890170933161218409234924226661860896568196943230974193690518254369523966132676264579474573732760541120387232539708614442729437592693324525086429039105574311478901537210204037243133588877188595403022307593832920216309907961889662569378810789483323533845374456600676494576642061799737999527550798405905727733659459911439751722133480428554606869179580161256611373991963895063949111773170674195168886059401680213728317349462692847988678399007287112411631375241376912889827873308849685643945133335045202993414610388584942750793574925486288565228374074205403773963856782575111972100178283984978401268687772041630498061018298661983115864573287779652713805734109326269186700986992159867546291192315247598783767654851264637110033913442353968938032454690203717934841147360275814120580725364907724068033414208315276438021224125294196132391850946752183937026203776463071203563446020274281380650971285632892099983183634614390628963454396139997797988496818065754117035810491289678162339674988431910192890711405518361224424325774130932875516898350758575620318764875637388371870208581551645515362327977794445083146757130951109116946317402939999800389762295871936167200430625086526309603924567666326900524409346806344518157267684956299489637662579608219817027544301901741230748034289535014698917515285095629153779318409504527404570472900176610656138938967223257937438198800685920337700937136164595249702652442301550225383792493434582588787772706937039476548435952425736201263244062572050402870738468408407179698079529397311422574078186159914921662558799931692323513603121022210217853141836413962443965714651062615895175484412036463164704278020222555310506934914418582171468697101833920857006157194517805793447076271902167350740149504784286228477165322000185779888803534035654560880117605250247001752472850687111111962966426390604525802332602840194397495984266363656790624675259069363531945243331992659759886506340149445728402900941463624708817981261517111147182320074416915395100010327950725956192289441046841928059722768038885565545906672734726893845648052775493887803375347601813093492436843143050345315781599121894112817001807649280220020991144618579503041588426514144259817943470096261667048306026777111110080945798971000682151064791686871246657973667772333048361777418089286014841649247396639859876816671262552221565027328596744530178727739051981484305782737279985446709148163922679655942986272944739702245343733624098458440931496718472427302457711423235321512457465750730318666922257327938512207805912840530632306740197124733520302454222910339416012071984296412285031736303311208152693675947455424633488726861635527701155887023093493160223273180530131971417906771052870882052710797884145665516945595365116850816223409325297743692699462362167305164469421506519101480264545377841874720143315362455857738240478220643758445751697902798096415496510340546001077187392745754600979585545679673730929619292037435960406714482557750685820753718626205090678341825024548103539515929012947002389830319938534777709929022328003526141115148716340629767195800981304450242573747325328822162160397414307527575555412491852059732207592970211868772733858623229665468053735843656118334087332180925502698537851879248029622752713930999656452783278833892926600975065112307523338556021049901853626297561104377261941192054810565083452811461437672987105277929202046642832923363319230777360261159368598280697599775704199697486390279706347324958842896245562437444404631881055521839325937947665059167459940084462563586759781417139723805008688492454589458863394917474072926578173600990115257719752522486209363206185867115918310948597317302912282923148636990838067056889909964919395473230979246592131530569905354924350235922589864378845203506192596840616215739414087963762932186821480338493367179660328376114197923647586408657608692042796348702350696972311822782779064901483826443110984976973441180489454128675819935124977993234415550396801290474170939671485276952818462076580787686809952797243994680084388500629675216894499878025405638103912187966261742812270676685450845595223416037578218398379952409390761353592706057256558903728626520150090376565639194273863384055218319391243422764921369552628412230328579038049725050379142377728761047442768243543038991307022099394939040110191166743350014472033873699998397546063883682506884827561549694538896999806033366018503349278732088312725405235387285039886802635634863930393299116533422403721398925941984293104017789207903436491716206665234561172919712391083302162355625982624535310262554451200352074887663062535861965626803340946734249459875523293621053858637662209765342587425056617976390900979657142997349293396712812714457213646136521219267672783358991421048995123698064570963180566096708773252560262939573894303769354472495193112029430126358631490827205173134173295952522751802778255639170773457418598763493693179447004445588722314538462941984281516105732370919776963845684789159148490946075591571447888112866764727116635163386317020494403558525390608070272490873052079389292698017156311339291292465064366981139110152111800487226629062220702368737425206670833313698452213130683529247596176025164418270352409606159497164053386101533373830818414893908691146349643695037546829329746271285469316883633264509811711557407638483502584265209129474261343668416090869874706132523363689229121857573260796647276820315602277704086494184505162735918834157754037950862135798324489697717394275170131701209304507211416531424237413920208622050512654927030251643254027583085177111591689631907069356862217086049384662780882429111745032036179819398187416425410508232253952625798870360745889666286335206183726556793102983056827613877184962239579544407081798731943960976704323282671304214326566860308359898545332500122801194280611469029235743167322364935696119354235339284371589876436861754032643625066821087488945446555741901412183875506269478531708784857402207722652743113248138152792645117321048120690287587887048951708616028583244293487389857618107146874801825988373405445297970039378056157596276597297292714901256583171817537451490329336853947881245353203535886900601773965177850159988688390679741792470617542373341456298503946394157557796023346651553236335338661956671554930049415413918129872748597813836240471770135416003065969988398603074579917330123822698792261955823041631163205280757907670346243385424207795407116612850103062820475824891053358627027344624628739330152053470115365923090639924407645475337083430719028091981544994190825738290735990983018164894710243206027883619952974578202826972904281658549017092396266952651816271457069871208808461013792032000618205881988740027860654665609955719174527102344751789734073707571660046901619884824711027604062512803268084107816629617106287284237325213607392653354587844852216947652271435887462218537753824993301857936878511383226382448971903322903698171531601457583810153673978703915851816248995065321235753880325180396337645091747237440990931067938811662651120277758133979449901740249463562572702771291836010094900953085791218646133980435289923466180471693928072254933203685774854540427448877605803531942602694372878932395935219134058143406278811672119497094037967574634315156718973646780104387234725842926219867337725958108744883630311474736068210342796519958252162206062338944238395480883266134431970836209076215737129837283390181826358834332073938768410871818785065711661173944280228454255038789111450330963992166417683955412534770535021647750611674160018046445924898262873153935024841665505703145236536405708687660552109649078346384750474354184684869473260311359177984972468881685906038862582237626621892190097197603394762920740654314383478477304838359316553695016739813603516516787255899409528914777927714135786491550714095848379789388751124715953798091004260472044740735206181889706646277494821307877470066880523795876660539513690293344278877275536164608625922483503171536720970107410299957468269351626459153970891402464806648232269766924456191795479882219568126396182897904179148838233962181188272132621322512457590158636200538696178000916697812380514635679283695678541607363077823593833358354415131093361039415204534876344103914890511835775999304865846802524718422738619526206663690324903820813882997758329722581956935978942997636772756813797613883356310192392689076531641887235907241168940376926093317083938157441605866348289817631261741507910455688899526410625494384674536457152024299638714867673682287920816846810781309426179854202565523768471755158157313911106005047170154793686097919483151068914357160188638309474971520249305751149729341580277245545272427031647646261027563897738878528856124352883103312550991847423099023409534612974109593402690827698892946347907973083014681310083532557018487249379788969370569937835053062575295068496396320782638132376402113753066672571252436053781630954423461730371509861361782330461753700070521925933259855231616997417272887329339140663807871397771946461914008642483547048345118415637350479145879857098729846367650351083089062750247360277169337749793096617009506242186083747094103352106438657867055924614554525627055062299571392181462153877610121488975460552038666763218477387505985956300629328538090900687831621421314753268429405816010715210305587738053137126039344125424681197256097357069115232503952762856894314436194233383460219154442214289794768286920243372976917345616013723875859158536852254855658492592278527951268622448868982427361279286923463113035387377720427051619309644284404963026618402208519433009358114823762758284544860457002888478925755622292571243083571170592925111951121034078024914558158123312499897798212490450114979771602789809223663326519189909161004752459472713337476354770414782232220519701886319724305368826277488818558522606202460886331387066195082508260779328989458684915609084404251659924262942246705563478197084696921293664621091285895511611238333297161849372665998337759930832010090962906804004619557274711505902648610237495979384688035458622321977243078603803729339831531347435969850983195491882129187869251578464079075384781015559446717988527001037898728021770524081510618388645294939801368862003448179874932518926124345597566155766551762097427399960441727527914250427189921390629625096752940189448968885560789896551116674418254225758150864131548129851903875515417126057541180110077782876972805694131883269715960576710191087236672973839633590051506774313115278862203397020224099979749110876362539047252895527454517520780499854269238655431602580847087827019684391441687929018306497424176771107837345660397272202227456302461814468707090453032432656073665038540575980827937716855375400533093289092656081189362751040514374505786456980926213465480352271595371693053489546550346544063919782492911169927411062453809177785955058828179655647295430836067699455660753594780498260378386122650647690664664534825470499851602640151991507011769739873955897692420967512998877334048620750918466081274975246485723505790136379899173114932685491613175789003031469742052161637243890061303060426848554854261694103180453773183117446274070334118354469538277435626162288533330314166543149004148458855496632100079230286840770449479325785514035251907589667959336787196315505262376685901115380256919804800240830059596411052229082721313942532080062249383785124721488203507640696579864989933071173761292060212168041135846711913239090644079954857138689964013231802620037646906644794958225501938650648972311646327656827311460880315969203668916926170299750755393337250485215084782333354460025259370106748410334565678840068512219760800904033448239354230528269544896347585068637893398716018022476028334781301322228106152713818097188358986600259011405898315049094343039239936368934601621685801916508096397677286928205730977078179012392132652727200802316466363756521103614180837661187177611843999300352308172849806372318030473391718167995406240030757097801148107973621940471476531928790730391082833067133906728759875383043672724575559428867100142901755166194663622520305347796829022075706209956136786291963069306530946303896542880370884124771489255865898497865372554266212473197215351055121119301816093700724750853888298535484977688099320868527085205177770137873336524985289333034089029306973667390122009486680544352813069797531907888963450677211787818698794245012672862857299534866316374875777364996645273096531214819601963417998179328607361679419024425031373679045206321313492121289807078493960544965264560556144526562433349863085793334186141838946772498816678977417535627540901003121856449423937614762217766011922781411645702537594203118637993686642744263396351684305534571642147262904451988507416180467078437128132816627317273268890076133020359094006980393780300814621403068196929773869556462507123367546145490523577351171916378445472669339304523560290605368488621224984279676407049775162753909627183508199304558441864081174008183308978874138890900544805406099557666502939884889246819982002441111406190880900853288530143586474184230322252191168956511862165955632521188360464611806063514463672035286371946989285258810917941320788278321384515515952647927644224967964311219596740156330030361006503460479609415834445661312669495133988961012766277293780675464747325375507696173692120453740361723692696432671494173102929969715636400631230998876362321529800466990364985674102739194775719873969832183109554045110520055830132902757624317495768266137653851956084383849194971568492178577764939119921618143033909489337186800642273339025258722736405553947947690058652900688683646050731000626915086586287347685025365766461424004368199469143415062672107406026687004067506859041418887818058689795252022460832400725814580908365378103722426080808630815225108815800839148575554971947415589597902832662917911416990775144197100127852518807342286509535658880495270873646699109401087896706568011699198260275843126147400271505712691922547460527314671685568338511148477121949685064177402106853545976644557784933190652664988609818963458025081129120427970214903883439579996794405880631571764098966439785783122550323610742538619086554227014600947612124151890321077774631599604338799234863613107809121569817576431920350674116253278434386310650480366687957881829228976825074786794939058058410260662157778043713471043692137083861802351120044137072514112534454997255194288808878295648948923892524310365753608787418718639423332397507671465423247718478689707390239742575777618639171781550035427337965438862716331259159545873080137502521721707152602106893930610473016581130078845482722018986650410323342831662162070380574308864814066246186024351846141459258910333005016100827019759132101531969836600735631156478288210291347914459403867246798596003804268929894679974875815294525366546051878781169276301581994757335061585395589609868485179066710937654284730540398424420888833878439833472856502772124393705226291714616191576550503290638810212783534068580681066437031935141430934976822068641424549334666632088210781768117406302962223937417346793089689057761449720563307127420572021057087015428312581310118818778714897007891849850840676441541430135731722988232815705911640066376785613847641570620114885978172496663243473268152569892271845246913746536171173443094555809506326269529156537087008488099370258200775358552411335837503280060330288293475063460559280345454581415107464695395873074160914466810311135298591391179485873968164240918130703028070441126572683643211824204819447460288861167290844322105329699918636290202437988387423964214334852932579474992201570772429284548626040508596178082587199729098387998167552812584031385677554630270944079586383109755724482018184467195279375580290268534920858311560425734070001336096286833021156388175539132590471503074670752936031683296566395478947265711050749769511952681300105021065245031686275837371936296545738825858062298080199162418770427322532107806091697331090590802349649656262192529764640397264819847125720997134800343139929884661744216291689703025970083165667780960303707875419837482312160807627771534732685702219226210863555218044112594553983906676010911918877391040687572425553936741074825638854824559433998700469086720256368174680215115429295115874575150388656331158636633862560593616768409751264967982931035509838535987635814546086403177359416457234969453639766405609915255170114109954873909598645150436859000412711618153121819862833463045989699168084632950948095184414290140559444384523846718232958538242970129630571815315105090417697536570641271642234718537575838671628044284586656198746514756435882437453099862619943187140193001178730757960595606602503817418334047658023883797830172387822140139287121408233885180577858394658376192128030760919319001537500736635437553795887151457465972453979063437829006423477767835129776821134237339908395868851389349206188231566036649345555805888851285373347190884970544894513005809833364842983321094933383693923852469302037562575910149122178598117083195741410149640167649039937617670074766478659597423379337450030531139863333624710607030170831049518442045093502419024163725395608121988180477086262973374830254702016739791713303728601056707546813049693475460630127022740057134613883923529098293553698249135368205637568415500076868233002233029572571405964993560187921885329231978975829943716812414553876257512463923236240458361573900029177131100863557456204007584877664418911180844437612171794279012707573150902220194423569739038662351616929595298001619837734358411747508553656467722453245639190067779967067591204236458477691183129825042297947047272583958512893052488717787904795284484900180727915156666078027525483837674900101737468736303516496602846053548308687393739230207252520100269867277582242600905349852692066287010987826278137104379971378786837535136065585092369162390670974437674155301667994317665073948854420913715083465056896598299232018100911731068439483171503886844650198109993858050775204611323358363815993085145065706629794295693540557488514847994588905560457068960515510226781782394927140511443677848735857214798624646109324012123017033894195119128020489204711446825181144427960189748769216136964427903397673188699446356138291323963393087226634549045860074919549948528399919216562174480690614657460944974602595618632343334303954230171383195444128680105370321806101029205752873869896399082925232659909921480090694958279637429038791343436791443380444354713008757642262389216756906264484402628516490285974898081386595501022200304371449783264976670845234363737209449179667637717501615239368936675637028182668045820400554525450456794672540659034731951664764193187769099137628150744171609256871185930008817309252454343930275197631593303814475217970229606812208100561448751245821628422106825002369046561215884680048662093239947120222051687369126171958544167585149015054923888590394447760609478935539837615292622794392916038898590809538061700286800233325189657051266760460052156794321808216914639553946248876147163211630904683114445103636232526084585618970216720038629810353857069906954539514454160557734599229729034933822607915733041176555366776250170432884034213940740019405799182647504387755927061373394550492747163555395333859681573190845490780292666783403970771363633734084772512334068328284971974439026716140854275666878983034205245803144553615941729893817465232996420751289779563704844251645736220422003325809872651465601039464946760310974908846836341882952777257907512854366551504294960115844854281329289222682518645371126335690765206212330024298971015432959463548004060434510661571352093764011314226459064432976557623995372724420341445551778580642003439453531493157564495817982103941140218636005206821685767916674287391328877104178707968391228451335789565283185031958904667735879823173362675113474147385808652271892684695525356835754391834168900033915287896763765031423876239039539551675450510555738795805492254362935657908084632691808433423239270994716750882385738471071165517784117456044859777589159073155622724070853015458840520700022426090914045963260466728202253705071805660842252677064575012772202314494877440624505160729377682857164352652084652812938810841977491257975572186869125715045006600966488870042060879372230787103271726340826444031528367921715308567742362797923201479911951318554452913063153222646164092423101081347729356608810478412958065740717170852053539196247640711461210179879748645958160345693330714719619377031325555084100856141689322986339612126280767078432828759346773134040249778448307600342208324057970018758886677622411931150710363486373318691934620822905373052128661904999107191542384209367489376661524383912712422857082482158859035925134969270060016110060970709533469741903842740392247577927874941173896741571129957977815018850906640268953881696077358548444580444288866493008200152735984710644079060736696147980318474368480568691293149146991427405851353409277955884460766548805781906355919760615291227802301834001038102404454412074563100516573235424249665596902734553845706219553692241479142009038548501509347323968160188356172483361670763600188122517855284288829566814530681152308726237672620091153006059594717319174903363038377165106349598532787733617263846726787063514592004512123514427509671709917436485507869624150455873911069141600702406733845518010409984420517477703816679698786231102125019713593842823906917958082010929284001416719900461514919003843935644827119616717030326745954276094501112274906270111558709322879989569941277684311973101078259629788825073766277473426462480318377884518622401607793225029355959526055936181368014744845424823723863842846667797578510796068998224726234598217549233426654262497783074809522526893467555401184678315246051434459657871692008209686597431159502926593697078383519130863600750450229168885249409135710182378351729414262960060213367982869953065455004931862522878317510520357456794892975509638807028868443889563863140126281108194300513409605459026509105807770681117985016225877510230018990994944845063052727882999934771575486545520294555968928845030583491120475877692905281659707706418043448928987669161747117613873174642031246828834853727949052934608089322166255505291097493785287953615919558326159690478969176155713625325933223746012861473371978626692811886441928377473277952175186938979013438573439048562217005697194492075240225946095230687985470606392796588313567614092333858380561705128618789021955735017560499208482204931632360893587644734532688977445783151545029960656210609173819665819122756760011082957756708366281234445219616218603350082542936402218024613936930339139137313302290516792265794546436734881991872146684010521991793826113759903293276331264490315519928438810159838452582680783790892375487542867478742331672701052140915013335360026916658113417614596219184990935124437266197879966960577553470305342518101627278343747000840774085796122232926463546163822702991283593911561555752181148475723118726151877805176573852798215366638984679262696099689362920634566610502335196422521094378540114550846634769649880971331291585735689913221573528948249504195586743332513504767298981955296074472116325716016203767308862353477155642282105685765639489214441120132366529652360699442763854144779762107955778894285127036378080307273869754392347862693446818016345204708582096613422864870982226574041737342577701775738802765280056484872096309370609614774311716396004778088990853384021311400764318687848511917730756746639150218591113972653465704782520411005083957630568727612480653220964316852528290570801083909354624492863419500344466948692518829329741796819652348582292306565267076291689885003522298564318342662674613889334943217941409444412867205216084026401619431757701302505001621506907724789473622067331062258793056871916446278567040778363339550206056631708584913742382711978906811826840010140525256467326792102295271294071383247968713451571510394091590723866988128410058341692224455365486223543956025846953109454847359412570018111713849021529666739217205887178560874794875283245715489092874419173459206048113132491620542337065040439947504095298473183333611728856717415489250437381698275880119025424218252475973069327934121740363128224695805163805131279333533943860493862982848222735703537975727331935198656547262054024096559713901505134973411783837321806548554455465639925165642607327720425184736156949735781501613123841452086196980688033072694094515759061074843625114833230579163494714830913541891678416415247324216039969438468317629052483631450865505517330009127237105957108928832745513045073044639904769291184662312057353457138387085886449720098925531520707370811599292244036801927388520483764337778615864642395212535588799103009370357401800630615206204314136371122245109708142875823815728103802655589008463221569811754739639160820366095874539173135372411921649038035941083916424853044046378398206865188972494892152226890531096128546890506490471659969489809115758613670709138001482596653628262218648072050239191685619592172503060682621038005695605147469283701303197076176939039951908440923267939729658521972955754117608298735071158001845321723127687960404702752222683441147892913200842887832794079822910802646666353033812773580526560908422512172486406931717688475052124718176426125539831475992108636484459295281271538644175978603656380829648313025353619568848386837309177254581460661460574121067738693237496120506862828449939981734863794833101558366638203388844267821419362719598287643233449553074797445915024900257469504172967347952991195773328526723420993989946702486622025608485856209456475125640354141184040410058214903395336527553443606837968865984944457515454334871877259591903475857758388033464953933200465260532326116642145631821406270609423931698159967235121857742186131125179295428540747826668552272713222012585723173493855548250137154542480530683860846375884236834386681086310140799662997843821343344474010425480475956963034360623331808461271891433189361477894572443369467294043879007933969630259822771247173361983200839450882759240977523722983518687172360948450577876201893388898031229659864107965356378237562416739325731907898372377528302718114765742275181344664342919242659116990312832488946078631568729022609533124713333903209167654040899980297258141465305494751130498966560023324288505698022204102409845668430104446926556815031910229048161420172262850398112187839634963051017095354496302358469431851079359065797695032202676118633613238151979468220413231986375983072483548790179231884320797796481334719417829506751728500030327479097187833455499573956737050215435064056122085061348339972682254007433423108177269441726424997840163248687509019977205932190181629195655329796271918997663808835869282273292150840322113818512526887786343499424358180273505720855682888668971438477947685677250388337356818065770837023209468058358638472587896128002027629011059932200968571534593124129465248651384086166007738335806539045952091171195931484882581129533303784481194632890137050592112145275518111675322248132501675697845387261100544788173751673458916334025171069207846521962667208855969525611149131714831752413059409067977908172163037610418047122207307876148999526031665544205225912789027066984165345080102421367589278235009992708418983730866421437053615262558380743063834491004891647566264471088085507959483568290037593114442891632472303339069254421473314969978631698805954451926328872618637762709113591408905896480812257227794200433242750693796586815531207032670755992680064953475148094403597000935995627450754609750312651151349462757730116601685600326695917161658653743446631794627938486770034533641391608865866079997253953478839471008496941914189006213022014708480972639934348745172707987564857551731665863953021585276165953777135578252982428476880712936009555244458543111254403652537702421624899042552328991566707959964237481169309712462829838469581967922736285356839256786051315005685257743262036738455456438202037876279623988479684557127861138790671226347323515543797617374921844981866332776668261816035422254130323884895319991414763255723924295508647700701059325052462958862540062267238605328125368296997800866257460409429289790751662667799844663728804632401958304245352362311156251730681304593570947384526376815441552938842165855422805512410424131515736320282822952951481907177835852470621663386057204800163586347522653342965530045843518226918984602067683016788079415738296514976417097571769680416439518357819322202413104613652245253305193258596160555834939601432857162670965669512625780417361618678686794291756172397559502037572424649784288151099130080346207671978008941421774693202521700021411587131757591433154894969651830473833710627585420909587926669050266643539472089374204669857988725516671772498685034709503934632692356159438620737991753653001307276898424984958986244211894577748425691561165815575358448685586670995493195427108504646025371449187453736548877793350198219231866727936301015479818332279688991857489920797790314668522868602464283177929236466201668054043148889465754631826817305745665609380104712763186086903633307714618440016164970294684034599394116857217885482670638137179551340622524294838635748272181752710456372144135262397901641472201017314843830867195599116092769295613331042898692538099646795784360143167334513596402705943615292333666562726131321490091056935956886418389935161311131670061844564627534085188603834260572397565431116748408891634726440627901056106282790035942896270724960064582255224408366889937151796698619499073529331031366321380127063959693885224331042589740080898763133656225800169778015763932246428866316949879054680547535661733935915442208518004016943319337771153050265275808053992795194582694811202633054859611446421926405137334560607915404619179967307727759685613460436487431712363605111079758380486190619883675998583828618202360441489593467415907209010618641776982774239231196347007381175805550140284833577456368605199249107687646358078928884562241585636860373134394888017991319059441810448775345983583809165415022205984260920851112165977274567011928988104384880810136822212545893204070892949386380430110409673108690480782202248800873513365111716161973559644760917947921453525375075295144451730380606450783346636850025482449017078784757971223974027105703159610755353923358933408447373854264196604767869574433476701827748474220236728958443286239189901173191124489905374175310797311629774854420098219893456964516346604318074342130993343828300898364817530512241576557080480326978607420380330187457861767862690872154474324820826095060205521214701476372203180744684784029634870522416711684243066446912197454645184967419271881902147349603671081185278816602807399204326863173706916048787966661640976839212451834728544119723827557807119093115656172006542911604948703310757018877687010441103628710215430220319725815406542775441869282742781582115158198552472043196932930537372579535298252979254203926064669205758109429702755265161530082480491780889137675125845752957406275295052389938168777678567816966334338605380727612482175965480628491464559869117655648243891427309796418808184831376665505003816143307483156759125572702726047322598806444392447139987291381184962300070988579605780448295178523470817686719991267617931212197292657435433082616794599885103720474361787694406515799781808812995099101902089766810766241412824729274825824062862143755183111093431316646689480000062851550696497375918297019645403801797901397170119393280105928579634566383045572749105126521525826079147424244773550777938084085533646168489239647711580461248797275395508678666454811271805965703149278815450797042055094121568165534114243896368771506407482119360073346840323742052565444000235005263873611547642805200529455285910259367846555877240129601635948737356793625822116797835983377628420645622133004812262332793882645189708749251673737122967887962920294547121561538868785785570425642556220477239247163370343752163302528080311785189747416069126340347954986418794216649113219309797144296979383173062368375271988419597206976421334207251389055685692763051055608349682764063537799955231022911630037051813759508290869728298873070330481129091692224813030180611721321543609401504799667836538312670650334253353357232778291788315495986272338247536527040137711106197779681301656588864320804077301232913822471761850108810834381867596311808847614135905964453955588007916072091039372950424869338363587301879818086987939193775309966685515534362156766723645339477301090790770000926710156664594018705908691623927668168571687952888200561067960351854627511122379993039036534608495023318432592341827581251415326490449608513026020349052394992093814156156098317570696693500102185349733812723538217623631306803019951349016515775935270066107674252036230629285450374750320604398372694297447633875457014703435488269752658907512535454585459010546449986693118908329784298007324203491080573892471873368708130024320222391496598995583294013173709838561591147786530067876600509975314111245368609998650500452799664705394939398801878308606939904676697201896399937136748742280952116230306276966339499968584427844440625650783325963806934778663223046772048368415781965617720910377438405182298005295077717301526910239122750562135002772265620788390198057187696936922632673556727843620659432863911774724743216148432045998327398238854951393495994981079147636344117900739480520485793103048693199838743763802378183096753151425948434562623894767447629116463512084138258401138016446229021967663295635825367258477622640724541846479479680341429121111377933579786668795103640541672130663254972292435191402532565007678953238336824329649928056005520186998804692061103474942121074880386062321776948360513255087238312076951788172986452128293303872851287771226325239951846205829250533417616302071157317847619744384234716306937367469768970443684196510544106042908574919999001368150212412598982974802786445719858597683549267960761307828830369401588385455322235240750592245813086507660902587636172467868353934138950169567683372809773788585226133280312886731367573571980635268898971188365526848314327116419667822279089940891964210848217125785584817911712187115346006839252731786429289613837488732968484369191686937373839224410992426407882218673352139624764382202598814868201151651894741526624223446990504698235117292374864365233501322804832240677697087132338769248315155882738960337867744638253092937740737022243097897105603376378928735850255311046584672460410231309588794656851002197487421670312435459041508624399731143356823807378125626218064574803154211939801088347722301636945833513010570164612825033418616285425001231064609467915012216756047420591058117852291037316271045885322964924836322453132330540114821789783699425694337093883166127243995149453334450708512911255160905036947068713787564137248825593533187324350028947192520166701791052941687213456613253540466242091680713668434694022908471763614858054781316032503501904818611149549147706708775918317577928833753127040146546856691444544333208203539944600689604088621377285875810255038600998428281364326381510634414233760745632213576257816195565064759178894668570151690063427517793221588999048438645366970211975202186683070732850110379428664511758854381128452256441162466667977053967002915547310019235002035721670873622163654735064817884595895732921641683922948551981469406335260856490597665644363049111749095367760934871305796494681558899577030224991773251261785009720304457985016770680503599836006091524526669155867435076980116819647574477856078316621868544106390975966846453832070506465054004475981737668605747608830354231754463336344169697218692570161692620124263937904219919901189184307998749370010077846491283389335348886084200067757350572509445635775559128057776364606762301350688453066597004371171253867226615601810570278650470939915762376475128729083999618688506327613636138500973123537919332368436444451428860007429640930712640047270887319230728045315925518051851715460718258613264586608345785170439048148186046611463553292954900584341800893018457543636222880344117003379868063306894547858408342893479317435456463790445626802825955512598148829101403688358472728861740859972117769566896864815416868589729749147602628545847020951977896493625381930015824336552499095245322200500255691094197704561644298426419952098311498957710247651314918740769216344663279038902489367994301385775193770942057240123007547506662897264059257701463061918885583984000019919354279332974520583548676059259302180421843779572270627921365452884950275951673388633994504384779810548701998897894554510104342746420281147102436618583697755293976812438321010104919855728974039585486613859343080157683331825723797196213991362382591289514575515459114843100792816994966435013479549650740934612049867722625341968036952741466776844316961502775377153578063444197116671335381823344102337194470086014157285437593872091380690294957007568238368160031295137269987950449798486835724719124927661661025749220392725377295655111282698314638817287063521562950400723193249593725542018913245627494176413194905880273088353355326481683936085819919275723746062732541099021868231338149593475232337422854410310277454122366930540735369681175284891956496370779630222673064687495142068376050297973144750922436356412956933930635700346116104399754480764687250679703644381017608227236787093367744224779837626761779255774835116096883871557942614603871325750754854217889167407687207470343797463179988714655441539653214161146214122541264714099187956886524054158308585489447415796228889914423410381314616291955357518637852209829284185336201332971608682339600522618272605580384405140060999382918280562771693654581752656634198163624888991747169279618053883847043450244061833297882282683952437630756618187432831400032589896712499757745224774770298266984104517605846960548343020338322214720251578523733423522650397967920870761065292574921078598877381150131148660369498475428974410556206181795389766238083942834058420503525934140231179806758993720460578737004148858621329625458023872704772501919740560733315752085315796698281176888176305645870762933796435046473829568757504615156239734901060872069408187836565943066179398563421191744695560136731035637544866028358623693221271920426784858496240811564163340650281570000155816714822327691916129897863906506461018960868423667290409552792163347856602150722488848127554948445823584741277930676580078559964512442450950766601315393537343505187760285024452225027298687240490672613483921713782464194167598692137418992531725667422304003699518826080001819180168796977597962668389681466867681655220712060372352139609529332204005989024403336986366170199863914591583638224332247164944670414128059894136038661382928537118816488109026378693184889950106556534833108399754696937065321798540565037195058673287953825335444151866946823528612539522700162910779149736946558831622077955627101532733003594192898494857786511351933347736723828004329756486026445178361872488866152898533635607660722062418635623777671629750036519599111398267856804754933184839594370701337059676149262601287304411729245681620377847096657541191955873814417701114488683401991349078617650509043538084008300147480965565486985208018505374808866499545026730652487868616152263340677513541443698494048059955614031946261422761039315009501308357686247480939972323904802875041299887237841855178671578234093515313200948555044968067307896813246743680302081141979754930234326595922969101798866738513501589575085517157799751284597634298675138301899427819149292672529317995550951945600417762185201862258647273611781062344194355037481685720914360195445485701719835532571494482998825053400444443254900646342256052508256009423863018953771498231018965107387352587851685167816478895678605468496815957238529055913389123869950234323498657567852688809145498802832191649881966677467913260192526869974462579397858842820346952676360647675712863795204590732444370737862002727554568170216436363991299167981281133583664122590792522952145690842478429046854120445456648121260982368450371843004842111923112697802132170235024163598904661297783504519199187350556762246712480216078353390111411725706205723071680897285241527139308049285674592766038387075657282046844755675011699576722291609519560015232019925528721413204628047553623645856249604940662845117431471786559172040188849715433258003921138388740007071486194958263710192365254573550986769053073995071824623404469760534818157812409363750667246088916974708683334490410639272686797364003050770522832806944920482083235652796045630153971081805028185662488786267568924849752880629559001126394059539299891795081519898451872515892838672640318582663046511026765616033952955602020384089477494951992087169149258947190959695132249838376952963018181171818643772512486757211642584191400748161615996829722512539121184096562933637327412002470896209790194077964002265176620863176755563369680265304654569020322407996936869613750976712342207740501683539841218154182697494902650944838759217148402650396941010880378619095189176060100354075161733737141836386900017112599278030491793106549424878658036647036816735898399911272532008543737996562643911260503696939949582068396191760379514036841919656922473203385244696530666578187067904845696271913706391348614350695269644991241078655868808173891180428950573530515219318321294032994786698532024894566914047314616703295040404780198459296533087620402767364459543083590189182420771591546044691504604598595899802288382684968686059278403105687903647898179123123482756753245682311675213282904335241507056902993786373001562485733997150647742539393076762754411152090396524392810324739760455007974509103071007308736140556350465175851728187682119494443852093548877064713373986106295770944718253331244994531476385948765532543696593651258500259512956678102311072320592656077086151934096722917780122522007468756140578482714023846360988278231986260242403065715092696258611010011975305110507791200375127473539656547520419912835499222283820252899906112057713538645958847587348854653992602716694142016724582759957925142284955088875331512386021664874733980052101387563719343245395497521792061948546029255494250687653962043592389197233281175984485407851089191435054030043360044836092080673322834490671906666794462355789925929598121934919922259771797731767061108408301166586254221292565442009810683185770592830418243159676236632529601150168103364792676575663621378088432505206275148782705337029332355268075326319361788462567724174313071336345761532204270424810514186393395318848794679895954129067648133865990440625656469788701948776173646508670748276732760336133001876791750877546459695081017215384626740623914232563586470722085508429953818790796405195281835257361376593346826668618123149708821429330348160809863385865928724158090688177617489202649780403643012082750654234371409474454882100977404192066766340802497653434225782053371188492131973357807081472167257405926819580160203029716257488886736164274991140382259272687528144437387253299009878202486408882740527055081562493276180894230170754945133675746439946597116824727159699089189225869210031843091734235058864089478141641390917277752401406355888527040395155266014750737261649910090928749509575401461592346538357170580054659593392502343920475589524903774496655506424144239783163879212804259228744308067098371549541756496589007612058069619003861156817451533269728335395553173539663762940314470231481372011752049224696163507704951464061560298963356456700251403392360175982685273050925357074642216635935590835371608726221895461671988639718647914425308895485460934520699619981268609916512977120328973443360068871457032356122513937159624579347733996139270540572027510546042965310061330327317700789043624263139751169160314229249878909745363842311677227823860301969003839773642840143470281345478134827721886971424105777518441365253293623541286458912249154257408621255272341831708451324533025454109491611130211215704305660066374967474072086430210068906873293423793907486740958112226111351927130672963208285383155581480236685340611988106209347196453353879468103414393037773660297927430961282945045344621741801585675529375305904981745908131252917154848964010847911716800245940311143879793831000817160115976339674486431088247155580633412147562601339176510194590778706188532386068948232227143946909487834840723901485410765345124394675940585026838019619141509033613742351794351601741516515220066801506680309444674232419321976440051196232556768550801298079881900602969938151965280978189778562869020977150106510937049198436759478243067252399207424384210417907087481529265965930412537415649391950143714250541126968527243972983875259142757380141231133783703742617876084570966382090655228429294956257162720424109457848709235008288811827140682194576528107639702623390995821722616055486169126883212726505595491098724599394549477039625980458265345481593747805818008611204594137345654509565003260082013780267271550347099577695272242470451308498792443274565352468754781591054297996246521674960521080220803623985012055698732851820771396075254650783134612599637157945449190943897207863983302953043516257727408236327297068569311363675008425093503374301263402155943493142508870280067880808556146893083417320159642397063050654823830560326470220229874256561059380596075541255294139787022468911241054438052931955828630180767876778685833410310534230270698456305287380254423512315303525168516368938986160138143983418291368661244858606336201878676733940511834153240241949190720106582972093127708323112419228478064080013210615925883207940789065460435858419814852261125088342994701197931386879166151258638733212641880781366731169413305897574782195461887218921475850557506315762102302570370148660690766317976720761343762928415574478940665426656951785059275762171447690770594106796432946212978415949066754191436535262502187731358702661899318969609595489604803847222043730203574847575077153578593734780683217307473834796390611665310198857195854566331650162087988969954606169249529152288774910907972666335848749393643305053593894778708693022610204802003546232824789805657652643795723604025568489980412931475020352082107651043024151197559282207712587214595986153613714348482245381501289387488538188858827551871687506779082439940392075884439635920713925007486115772184427717529781638991820852792308485584795706719221925252206833773147151289383767877393871088809390278087676170915783284337411045615885459149173418330302045878288894907493995399308942079228935461519357982388991705168554056623683534366989540944546467166973993953785433624234770894541446187035447588218050770661763741260890348600060830921283244379311951851681870802723117968759323196931867897942102274468631186654525227165720984961731630714821400830485371015211579468602738777285816760483517624773726140348315012072918607965883708276241684180449247307590670263662544183249956540548940891961268951917985628976468231951630415121500638074168513384966247849179199176025886835520315266331468542535190809354722269507911104025729825953401306229228525952853248829091687627429427406676892389772398229938359925259824579321697261221748495139847123325102367638762570894335074478530901725225933893428135840070628731529606546766618822870342723020479997737516994075550836784488441493549555748051341438924526610410766461999158295373168004263486075652583540883915473353846795835586131156885156494571663988633123951432884810428825929048598374756361265372153852768690463304025575250885403065863310939163214370484385728032601783846573486128209250395373961695724923460231175404199122099063430268278379791521077517877683218881808863902054592439343872829676158142358208029005463007390757374151231595275594029662050216668758927367449874283730732508558989870400946051285308066639749325577748158100891042956522429629042384187265282994486298335920761808820253977276635634875094468234810112850310609644923498484239147370605117323434400383415103068519149364859886595208708203489427315678570721031764674805063550946722499259674921619553947506731446067500579071777749907155922706438796525584392366854165531205499357559373699191317210659865322248202695313247722991790181361068247027416407048554626636984015132077465572110582227964635734419668061048671039941298497974605045104961418269765069982450473059911983163354501119917251804167102425884431635100771015688025798578727451556065949322878658085577164114388444588021571959036066649220300788139897131991688275992987680871011947042919328344429666704785101510017138424119107478103647000211537089251017793252889177526707974293175402608049624244027346552985239498434118244726402258017560255192924119716099830886680294526504165791551454432209590616692592534044823384907938908322170802399589863129029153263200447983841397768280467440921964226074494164644836904412738404887630890807021653204477469340744705862229013624298157401237869477636395338480771628189814689094921001978142739530355856780368307793850827606699644860875194790792085694169802874880499932194992537910171332376780033071520016185344393643301027431542181859555128558598268838452982891807404550647002358145716098035194031161132698768070985446979762768298019769261141925797181281397888536673757429823846502327005454057596383237914256710938322071370491687372535361789603818864034211052551303403311539123058719348960252332475866002802901279931241698595901003162377346167122805517681925220433243756646787296753215209580851291667416327146070284213124962334797609911730574508879516806051251326801741257936000581981990487550408278967172853793333228112881518125031323959232207602725445512524447207274912529618202964914774634916516438307302869559762473182346403515616279743325928814026736853464229469025944446143645136713667734431640259707538593209161387871075748038240332604751074388429919041494997658595218515742580499240313240681523302351192153461717917781951856986421873205700300350626717698838379325750580243258447122229176871015233151103292002168158719606064056342098740110170375379902184146403868364864031968638316873971891232589590500664053290220712164644180486117156589489338045402850083457225481856235915288729959013681650558293993203914773891168524448436986099067500823746881178864133456755102352837963725873843474991154114765515409999424747119131586147777881229431675322800668907199999481222867014434479823399626930648031800153405437676456210296217947800420854217864833727735388270362863523472007785987027084335412512894642986180539459796997131363769371540535690721720667197575436633069460888691798450269650262615172263183485163252654546475052790645452375735862681380284820676336599291553001742273848138926632341666035046152046888288482031686172693403882849278151400175030594032613428874115429994828586451594155495740622754366985607729187285320815081087653701887887307713622527366493804891196298595924751371688701551647984149529650822726677633679033815613794394037071012496090678472828761993551203146487370569932458735044417327157848482728434114266405348818043735043852634993634329693497664311518956329244491031787170326084344529822133501767008519504970575705800464397250510597514230575788845873428265908882801866047022838012590927663702796995294949718497999526653396928316760532725226625490775175919212073923156621666823019856545081796755356150856191076332341502102859577837904013753186782233494672993679930827674460469240478243553660218256038804618857584878348727710600134537956828029042346409049392959615432743842333557199428033874472572545368018610781228009480697878313735915385127344150802912546254209019066292126276884646168806499562318831394265888175770902587799684920675384184435917021825637300323830302358513772049034613163463336604485930502796797358864210490791599975733664465118596218482703445707086418365367829502776555472282825621650140146958310634137233486679871670508577073122436657905751645253017520344133925154013472919794893147898418472544906089085804359085616824963370740206758668308030027788644031621664497368916403930892028486239167094816654728352358595123077351461474760588548502526166615973553153958401263040223269251561625478855407954340837609444719634584321448351697295055749044710869665854153093200407525309030995467652353588895637070482957194136644336015497108335361139651578191271937977197417474811039839001100830466335586719665016612343591424565587605833480332594234780632452709969081352231942625026407926754272978868134733448436603861245226059653839732017963082655318100049544593468731769503438336170139570554564052133132191787931490746390307257775375213452365137576959177545045260634806232948524155863594477714415918144795001233350194488108177719646694725369511331111286576484859125626741967704418841289602186251713632264336294525149610095301582053095867260826985878335175811638104576546227919511416472491281287062656573669646791269741273577602071591871754489739425066077903645558288765507484765052207522943264504348205546979205684628796843675915405281363399693803906273249793014686763362502602553224210628076728980058510416132220136987840473034836467191249691968608225494910308556442278127186562640551040849893753244252436800801164617768220810496578018682451913303082900944440930190524191822257238101099816617108298324612044586464184793488197865497565490028906649876196950861374685783084079157047845722610793152019343385402353440229880845001929228229873803602862179816335181738682087432559151211511684010543389957348250404568126407959830156320878461061028423112122498326839539804308359408387217140849893793250054621424139702686474602674338694729640343238438170814749647248230083291805435453192163106579262304924534151102057398293986082922717965387525792647760183087568355012557492843579318266531881548120047481088873769517428113014354782648700214496087184402062832582614670851993240042956861056005173949026583939887007659894173358213300592034696830315067224705825983580233248198463164089086574949197201448266128755293159825733641846716681345493551897954122719843710998809321225645231244198437119949961192780320091250643013830883125934703154928777850747057220060152989007100366005640176468382353090196508472851827476654021617502084895108025729295737711340081089754301030026394922898322642842470920529352565871847558691089120738298609352591628653491058429838943550857225755437721352074174797136895072238397336707639093546827389740952530606303626304488470963556807349650428265155854119764405501166046955554551591048752666979956205399314569660668520237231033030399264262085228562860218415630467780022483577056902197518128727527904146027780986548931500922351871952828018339287708712844269806380118114639709768596953953885842383167219563294765477164892226614911423366980384487486866161801600140571466756598673137775453960997754418663974239266359968409762702896095008560806656990044402605464449277533078337675495712652825954809317460428405057953540878090872324280738821187012930869562748110633479453648339759381367765431224600326438535974247356153107468914584797067708175091038022689134701279573193913213621272654065662403362849225023455361825707207326930754537182927684207238631892817923367479603710516133580471947781781070916797908874655428603372652535213843337470298251034595001064600439291177784926315214218803732720722218883005055026059319390961342664048314065693565045612811463960730656012623269940577795103940906176305779489014960522327689928257753082410870917113487181050784930453667406824770733662160804684208526599784075791721624232055842892970312834139893226648077303873349028541577807086962042607253390183324958850136789525325556748724964456551145429872137642534928691490781256000407071574011074919124354851040707529130478411351601234396226025799547710114361834215930391224780951451291881930021683021003105051804004280874146811349888688606492517147155749111612996759481395782440638299731558969331494661887002649069846882802425875250707106558778337860805986023651464698575345209835307965467873043498356322245957835842787980102352664665507478892664794674065969913075573595070936493455258216471671264118413640050214087440067427915851501751917641908254276164339399775429493891791133037549194679385924168197461713502078111229032510206932163301987172209494289121379211057631301737785543129152671236777345695012666030217403614984552467087000065481146743357780341713269977667805348853374656167631040431488165999391810224901383016887102105567730780917613852627274763974201561515527484337495576422763450247747473578613436340601837089449003039223999918439548092351394836661483991447183545104080956718247236621398950634571738961250626477955989537758938288483891156529264309388984026795440954646327429552814266447638748390607991031320904322558671757344562142572283362925561717457268845335251481886650573299610884055869811577487957806001213441899167408540237950073828256961782592480612512559468708456856733870811661112443780657464381629460619172860576918279887273859420457466615489991008135288895185939290854122877773684569128860946152912057636348186625297143537302885194610074413585474453124448895068243863286764040669165646145759403152896795686829084954056796025164335936944897572671781194095643071896433032252306077420018525345254440032458487937854691772242777091093424100069939133965601192614689188624000612194166350379952969847363657301448971948029979138263382916996190825629423085454102816953542201501194476188484561103223605153407850018267215435893848388224707155109740879205051195163734558457838653198570838575524894220940645986129318704091970090115458461679256641585429882298983588663858413005582631826652171970591932806614227973901114626075078638775611736489060136417660311476176164861525960784652414449403657431126141154940200464975113905757107537325851025136946666663313140068737959904730553973122091665492700950048821452432363153013309858733054256587921834374188763568065917034575710504985726822437479184080036621634430367715094850781837222385881396413562416421021254845280208737031746193692759247260832128087386273678183488315689933940850470311235632930609356005530957694284494555235574146509758866589637203647966949451309583148230133173522294294108612500918868223519237011022421780626850576201933607778845166458566831431499168648324949397366162815475027649423990971324995645515236935897543720717997437783936381689446607117705214031316146908539191979181323646428437660728121215856898519643880806623398140951274033822768127834543088177139703007449944608582049011248730079577580830616634180706511951285153613547016642512268396371298936728245797655381887038657246686518141072125276702755244618117037956135714561841868684429231873899648972191104884275020675289604005462821300346422662141508197285820719980814168257623421676572032009681782687984590304430491533526573136628308848940809023699251472507570430961542706638468208471887038206305997040543180956820328492791965635451840994202215945971887178706265673280971598292996726905011850475628966483140140191659877988199548480151274562353531381214500238679049200225546154269266623486666548249770050256475606466472658742215792525716979554156059183689698190815371198889062012303521588906993833371275239361196170196818479991257787223202346886006763054018752635001658814742165644612980225597289286393423934824853562569124126712167456264526163058891592779165032795641749865785848172960365502719124358690472907085820635480418331723799100914821863010812865283492645275229172041525544532559137297897320544108009140572228184962674135011046255466725072301553906888709135033168004216856493462941355444083976589851580659757058614801628905100091742268093618874203268066259873646415699122116499570914026539345328123490383754456956776502751682943211591904554432121710484420274095858351215732429382778599325904562932155559532494175152768325048024533833337638329129606666355472556633395984262017939708946937631761006157962944211623733618216299906214004816475349291200511797045948844982370714313845702899426286949422285610577479364116575338359443536025599257458945580203566788199830450604473651060688584276962267351756218487840212774973570296077326073305392340915702642574684683286105993426257494024776667242849003588311613854528618680358909508286136388561290290338502820018749307197943903023895377308215041993513616252170990763890742439879400099145262796153890172443032796602985234148116076433113957530021732289675879788884650922150503359461953321980200345558743474815204123232816460012629996757827420827108658517087145944582652302509094648657604165499431802342378527079731990531348587860335334927275052187039317902393067989007761747565176818244010807725967019559767287005655376729077502590387723531447095772528101992790725494109072120322039956335442899029343001416655627724896924165605766882829178889839826146340758022061399845043967922611960146400482502817739502047442618332116600521056368073005515663432308229207183422925901270063757704547013058395725811644204310895493687178538481597649991190726991589189792357415107207787748274956645776301193165431487592785440975523170786423713283732620167861637810759531499411093716200913969201360011873324194512327207301995913180937485023837834448668698047334553054427292105059417234159773188882472253253759645169607794351498668828719064761950384820620423664938437470687024782114212896100214256411672394830982501766505118960272625972889262375584695824567097250642975225876014160922875864419584963179585953971026593704894055191939048878600215849294264392166117711689433700326356622543177249969790980966677093633499462615176361981388839779232058420938254642341239208373198829359022896720889796428917140118180127343637721236465999113101969925582117961710615669971491975031373216656970991111652318592549835801989588996505356002944125223827570185691660458518117298005154164950685328197453928878867436265393474995901453324656953274444976017839622110322780961496848201365304038536592462155995527709794923213432002139283587939668538055190496870214314718902355375861026775020739725260716233676929591383665387401503572536693198562853054062743785194311813607714939632745093581954497828105809112541215229899133163763752189698261155168211734074002442427664984679525083817459110314128966491402427916625027979745928454271502711476475278441743969747365739649106582987718100551387395815077162310427338547967523878891319223366433749412361512027013926740489346199730296023752422208959562089039790556983987532863678190518295302063329080533982329813797853152338644101242850613656600516264092696463743442764628421579910260233376171999896870266645416235861002169159870104658407220647754785884289985801281943653812873850165616469381989236124626729233101419763388981508677478692450743127874758015359873186081623186587473875291115779624245845455256920365541947180177806521641192972438843592729561105497248621682821331804961276253479492946543312488791811074239801688964547355089411324139269030087729597859800016214538169480424713295459798673573506993758550849383043140935075188772111107234318785220743618786592895960214054879319385342833875894239951573039984437505037318541993227645768219137249586058244862196366855112799165941135121442166180293761253156501205113582849936732712111213818856827544741819360684218277335945994213785198412946804552235504504606018754329759029339287811976969632190983078108792049279337485384505085753631209050476662912261084573998389899903958997886343827542736457159146344532316879516670673618725247322899100626116759950408518694385547722569029795533242781979243621599485175890143729681064403977612917354759105540923535570345402967635278617569857264056346971583064409004092054216578125421262402652422063791688433958198036777463381802313739292360887215553609996582055186736976476979011630287323865539913752794633369417316611012858302235926784253419827557749240853100170167413377090327888569361569410156439787099008750722495104852564547380723261559696929206694034548034058734149691150941918043144739824887037223091782759503488147185518645842304160515231675426627008178495832625697558824672560008565652036740284008858506141442775605217541630753157647219453305209054904657322181625269468276012118141590913559389211113383157280273521922633671542230516316546339458004272382083416879656613880468651998704749507387776307999641476333016259677216524280871074833878042168455689727114061851921719836211436082092660604415608495065367746509674300029047132488718098979490166498743852639911055098506942763758193985337408658564182873820522340584626502330122761732267461840181212515598460889351217267055243411190349686056064993064244164780771522366120276552868974254960635336191522806459473173471643293111928799085514042288439947517293995746884466825422434053197425865440261876195945339224933973679417848692148278598091940894675834423234922875075155880845663144323032643780233864974874106129248960085296017222326909106560932641430869070950622214535009368041002182327993786007944879972116436106869248286817569074016858932727738566343007072216945952873199416007415605505118920755551977030779620087728007385133765712033678609186376545167206344093615904784138872802743907751060789337404348822400881084338979730245060680709157589985113327163541224112174192909275976021244710546761318259020902844288797679777136334070296410572244710614873128427803602570977627717744821942018408458185579330081572246823853660979271221288362204710997795688378734678464435383221743309988875906810322189716544372331079642550031031141350161436424286536231454647434888099609700723082652349034175582865732212174390477193126946480602154877902712765293190612542041155386372411925001129289759663494288260333806354036934881880337819765452352838296639599247995528100815485944607599255212170410095159796526359241743429265316403890347647236888787339590323303134833218043130121596173661913664884194691728845551769678639244774530468949723704873466329078760311405095157210060490375693750400474154974770904061796757429039560664360122894828609126475137422546010811404421747512674047911536068597677121904958197756595998822598866459300085460476234381838138810898926819772365683125873129631597740680977529257993953488977864900725172448542255594240466975841792186729738293210898212636027939304340229269653799468927802812560549184957262824228952972263490855632991714453246084956196605755757786216278707869727758386306444552871774276354486894109804955923871638521346959708460398101848801754311810962857899346036238741122871110149927744714953451654142914260228057983153534552603421698365709022589695974861243206674693196253087814268704297130611853794079954166061195606629641849141012827226207933458229074938341471249799084650196235958816371566007203819310822400221676972969361454074792030668400051112681941933994979136621842766250275808430477849755552894485258670370073055416452550690353764135219162218942600488331025810865845707220185499725120548975673615780135015775525840940032132196743093732891759963655228714041019592062632788279001464162698304278769607883265139319150049600812300562661381491112879412778128224148549901874255067806872901331363406501074608063104931263146063140241866234033128253372693308922512359636989347926999010846163980014434604984849370464154321972851432870817166910216682664526073584039040286764235405011336441339140241731490410454365765549287924183258698104257758357092386140664755996616906172817674624476729555111689799792109647012504368629821339888624543931075423237677329953783148687827808315861794625390358261754799593172304967281509481358747784135175700631688058808674785530295468593600386156296786967987719668821107225752031201767165888603496054975735100027970038135627144632104989820891585985252621093248563933283986782009743010580662064876951293191864924611302360574076740909043547976370315486908212120664558610532138059942643050171477848266292868762513431437176880270273988541951208741954214577253958577490154208493960796569636284893551899174277186768053417919632835547182763143244957586382021944170294138133723807201211218954771189237729425736979010312503283976543776668676570906519962997959074955876095871245656269559355171501646002931323139085979723181063843899286388545117168024897509567620717832917803552261499664711905955862298516523733027773646852479652814485480148720080064621286424587995910702776161282443564228270396366296960463909918217917307033455374596129545926452815483480428607589988076930967520187535190433433074540317034043707350438240283373727324603011506880073732519560665485682257979661715253097865477720684630757450617390123008114407499831514479617384973049731908404596006787155020530853838576889237383704076730474577016703539360803436800459482491409205277426534769988132519740579164846444833082795120054503975701691779578476968328811027180675316341460140777136529583681744329884974422364765326070783036393409930310927792403767558099415888165068727342490240846208409150197421766730058807150306525838943708208631026946150601474409926151577666181203493644967200589657882244239927663995281173554515673455449617134171494327669418447018797630090080010291280837777989403065354045592439679365177967778605180086654730761159413249254975022585692968019051799363259878257008041571928355626580459032702401768637267521611056925077389702125704999952974930198435942458979307171299245807791801382717236620302841266897281030008435606685511720628566075867326334729526750774039633901863438243769121042375500318080000263644253210124416390223522508167514025197096780464667210450926698406603377354793771131310271326097759339964818748767422964039455258666577289704214251868165855695140276378189841948150108197430119404150782304289229033750130298834472953356320871849234726812337903051016951588461942387901995888402290897298336145947246537353247985115274293586894927699762321750914922246606136357610637220996586805956637557786083398000084160671758258938264647152060345159094255279701989487984741274935742859171559169203619485816011489653390406743983898211794860093143234591795443860490864352130843326666715442570078189923092502442906796471037981555595182671955921664370051542292652211005522167178021351340206503223078256275056170137829051969961740206664853073043724285705673125108005962645554163585199295309633400395812111077286770056460119206142282834470173466214475596776876554032575182950430899038077302878977840511329139574555847913141421104627694487249189325670640074748393079586970347104769113293599572305996165744775775015188360555092553360554592208476931663794502605846894581598291565926764989836994939294005863162399452182128914758266997699058537193174322296864028988028713409288497817343287460158033384970207213065854673319919023058220465275403199099012551724800147572372995381072298796766328179003069443865629343374478111478176297456674624548023460876350362970184977346809671259083997754115442689167671422687243247952791851303458920452156638495754825808477986660484294096830264279336328944505709666352588619672705292869987965860222203705482313978091198805832450193219312256185193851733916530933151230104214599662633973208620005079885677779037887103614222720284008669000600329305198113944872537055082174145944587437153323810456986742984587728800648887112700804941165807267504643626773437930724595595776613051254910463550663529342705638862613760422579212973651863705907669727447892373571967612355397815652698410117610209840532120106068978052083581931748356856948552028394010406026595928677103313257313797870080926385292336419919195225031373619512340351936856270602303454847843120821995716467379182476062480803859273720146371198653902154186156527236374044993376539791426520360752659473655782776616736806146172385704231754065003540618464800200467167993759557906873821809074929497151084088641755460242349589411794669699516751467288111962435932542625270929934512091884769017958339900779851402848577402186110654892859252954129616045756111937310527035139466658608314732171952158827753951317225830020032018799468310104694791220694803706692399135399649038860394436346112304083421790732265741677625356697161164439047832432211931217209959774965557545982250484255932024562643076610562714335040427406950400900221020290184830165144503164549452092939667201000280167753551922204902069631491520662359627107659893449497668183018819674497739985914572317792571261796870041177880822476512712631552504837287874328900321978224280615697095463692766324400493656316011011936714340668424473051103445577170340050369806646002798555819975527484762880750456799965154197400343974615464456016247935344923167869862114969530431101924439383784655802432771866312266854826019949680263313031475984737060556732766739714504339726737506335199205462514965224468300507592413561887718474719704503532934416494170097878449540551738175401513659959008148741545188378648806430938430314067209536578825967139067846023072676214880376894227349582679471300993831562605018376059153253500090327171632495522933206769602260714772303133734518925669870743651833691740616266085934188347100668924746149774508642583726649973228248875072459257786166610400759552633064366960060596804300503633487432135386443778511676765007785392384705259617212887504428091599964652151549598622799218207784377992090976652169760418147679034503329116616957619245760635223813136918171120718591508695175040258730403234814139861620175077463325572434076019979712089795641304168486285597194969550391180242600619067986055459635962818756127932445596295921352043560241610797056697419936002992156521871048431185566875877823959241115508343125602919052484258514265753696177348804611514285388976007289520325004604806784571818241372325681828724727912605975732360512975766769205750279698393717170340086099265736120055468349285915311980853571078096529453262084132167213170236011988943530265841565110285372662658584013830174357028996179057703361303783053389556764365841927541579424022352682182204878066495803313382846284644966602899888619578526666680836218954903078772350199318591770912692818750397197597682907914355063154232165224441259761172737660009359964959484932979844912646360717560048903163470032131079237999400914996912989821666423027937110695946468442651371872548277234715605595190739028632252581442595929532120832322112301934469724074485549790116921405576362857922595521151013105219624244150944090052496977078771921545550057347969711450002426092725211649992485956325568139248597215087728825965209248765679135906220526660925202310745897810803383231730693606918871767889140953791494697471773660512668935572835961614049425021515084079677459216264480591532124195509560333211067057089023636562434786001962986051973505369611211962400642020238120841367362964111728752882256926752708523776405796720607038321327882691825575463237335977643528664861299885382918439032414472383507301432964553762514010959833417100075138294131599036380271344956553542581460335338133948379369559008465315046508158913132159805393388264221020828554957396954762599541242322319949829726730279118117904553766437065626102514248361603921138455224164128898887857111169265449311927546051355130124163852459892028563688655360915530530489874912789093459643245245735521602085565090429299544273013978229814954763198562000796481416170741364170745259342619164473270674268207247636531081193022157275912870638906325805944860019909472375638040737543039256844966280850252600000510505867502825725062989956769566471121126905409915007800091023544722096312058628528383435839563933401284581199505666197491093503261863664803572083839828549693727485604582060094896649123434670611336974038008363333489744505711088350028351428566615537525406289180821334848479381699451733287767632821095406544990523444394872810822516848719335935845230325192765753655298945004034660884084631598542707691261880179838408600276430726963317600749315699364652433116211900209839896560109627547971944514188401977204236365346972413781041219616978577629460040259623499359816101073215857219753826043404855452651889195712923354844691931292111302442587699988749096336974381471732411958602967446535199637044805372333870486092565587481422062044697862321428001848933137313513095953944623294038453752960857223145914412263318362594701930948063717093574952344007780097374194261393903173811152254249350381111392805313673669157334367388011763654782032358441862761269228679832057690447615101294663449680999904644087056100753243453500719479949345068372568265931990202753695061862410388739291147291992206950087833361553083856179831214185971117794429531355871849435913622969084203268194471880819866188652964573172551570191472646461160016554795516019221870385079886978987014563156414763769020981628084840918066573226318170499097018675647053496243854154596466525442501587042659815025959922829986056699932460980914083031296806866342333095128288935245953849736807839105676391763328779408078677789538783007492817138596754660802536292919538235172638590277059232311894678410933416854179453852006592053427073148482455513790979387449495751560016122156330849662242428116560178147115461185914960776036143960593755083346450658427497467266551743332362564684306656203397243727651679770582218799700712185989771481781043007006564377653049640587491129641234590389937700154619940268474159507273847364386996431597412952226845575264633566129260292047067805994281618418398537680977965635706128532590137129020996276134769320239228551542903554925585628161580865231684471384808066951548380130275606383680034733620801771925070957815384907874627238286836566066275931184510755345047444666544514242263275163850062313435732174979486821869845738595256441778540223729894630799738341861243947538949882340489922362396122285995132295838251362889121250903508702503733268601624104461594865067139916185626013678505876020943962195425061157216864388404134458622012825865413521465978726999080530931136442506691479991922375249301105878965954331317186943361077818797695828763064563849277948659348833839016999730283808083479354146199140620704292380015689774626995472900143836874378644873780044229921665106176157207631541364973094520548126409025505619787027191431402676951574882749506968240348179696558628860742846219721434493375197656353120004729441186456176874354980110615471419845081637556591601813040464714952951105446384108573783171589311040103588297365915157085740183396203029679309983993426011440964652000687986782952736483871037709055969655171696862271114305138408399534418623103992061386110205240349032714845382047277981503446554361582382408814759695663550983392099016819347591035043131292143096658023392140525002651656518767769162460711238890118087110882578832276792523495004063418485219785691351512842157862197959453741405563546229184587853029231159516432085118989171229396143096546255274618768351976086231432807585191639609489630592188817182184290553853930781662367644929601601748136751999418813677139019441355801422295586451530480446560404639881582392364542347105586009692920078921680043440874055016697285790605016274319146305087768794168187322342372388538141778817598295186050994004361483473473621308431268232688934117651015149321881510138652184763559526681545173704258258949367563465396801383777838318416959025012368696660346750718307291036840739043750905204303424438384998258871214638497145061046220180343656284464987045916538717601428566394174027434694128105859475288199008438399859589598431582418608666997107987459202205581102241303520644648927563495748731311996395101027729770764031186294454342198100119053396435717771566900617321325766482930353783361179997685532567488355123359150477168063398826663259935569600496860277836561616562621471470013543311463618458618879130617646446078747055461271029339736867883341698027058038371430322000392835516046541872444152794917033228065071790622305013173607826117899710071583316160197221322176930901369076986722319127288785413081625516421536919189322020011936268140195013625491549576011734901957840960270990057677573784927389969247288745223663551904077347016280269602987391941674660999394986615122731626479700188763243076229359657468286336659053797426650494762497008575920520336940993119014464574760512797713473075279109118968012738091352613518252028496238762935608588022188405098332726940021000191014618737168547511770873310335974937765378795819972940435601580050988523300276398990051289235444181499939685847186580278389164665448352609548239936320568741110817357390917229121998139663779086543631453854026173261733680649499210678210975845969462732294238921167481046403252724771482765608770472229534590291739554733646638844858125044755296644349550265090018905017956247812290234084901017764572242930934450756730130491027145932361805135860714749711616469443661974067024149945438777300663597135558688383175426599024240872445634566576555985638195820422479648411981868455402005056347505961186739513952751432109941216364831091266197361880857187985697803561217184687519381075960944983006193060309057921817260179800107896138589853418748412129778240805610467469033241846731671315180336703614483927063578863136932519468380663959591711788502792097269409679051088514114680436477245658773292900724547074559359370693302236705904525222637519148631477813339853704024620771852784808936841710941139562190778739653931802484382934763283704016001004650209287546905648204038218189904655247763800335788706565283372320992171513300503627269541605950628023768685643975972201879970731625101092548140743543032569801807033769993860531858365005039473843313514618743851429807817240080978765899398532354065418529755119433559749881985811431501978571716383501781428508800081460338678556701869326499708710768030159474439037405323088335670984951269323765398828217723054134937764946417496279712201161453653880095484294537533589695800513342538271914730710028642888906351631408797169290389823050191821691369405207845765740444636330394163174755063364043257960627230537777842544840562477145447890633290010972743471901550715956243344295458696433801422280191720594319410007462659382180747223959574114544536455550920218309444063045891182406914886790992510242312154131989953181493232640582047699570019681990127368002830217515365708782197471287408889646094358191590587932086957394626020218985289549838906047926823224819118188560351617522582128171689587371764251077154975371112518312547750368318130542076097526768855572261207353292396478951837154926599573425317327316487661271782299419746540857102684603361137224160331039606064240737555968296131599758712393519372583768112919096083984692527182153368122123696249190532496125014032311563968593443187315413336973370659943834117933219878070238105569416381772783804610217131089046874476809504996668528921218517942251329031218873408336543494722250956813811552318936551433216382584339075657487097960752580302431128227926820228979099294319343138173680709464079709435515068648744496500075778492480687925412573243562280552086998456407842118795663916528726698244721642370284726898730199434759046986117967009403461763945476809282199699905174116031509397159900758612337969798733669910698006680714158199522256827955998002603855887109462287119591868981742247980767833469514009290161485839510225625569193063090590785291551111570068741851526737985529019638428018844165877784681318865026658165277100899447661806504675983837044616610029269968210006548910355289664302859447431075714755542546191833141799729207617181628410012141595147949611001302574611782270809444102277013088527509343542831887446071212083841061172011025429280430962922159861424037609945155237072457923210357683092920222121404388407929595894473669793366289608940393627381772811220589834111777219184201291246097614747660025792868318983501047196387968136568255132913306295052306267038510852601719271633436855728720567815585743675886395804176656663437997808113778607678272436644149908262893161783837737456516322688156677946298756975654807592645297724855487598183883944351160272021820108680524291613278019393134667274930806197157256325794013581485283563152939457467331380436320621567107548844410540417763192022382468570764473258124036630122141698825294081459072930887057424251070654966952792175190865935159814376204894369634373410980770324676301407112673153671154072154582405093626700551868012034541432807366467450565995133726240183580352855806600248128770417281396714711924656197074246801723721602797959664373396721029418592962745944868042749323589522058116809699962824909500427210877873176674914158955065938709802452729334720327125174708466648582329344947260384224219059805811844999171382124211992626653707551120725307728084643853649780075180344955710941098932737042297056933792992162476470339946460221262414064320102404045446113229955786828908323050502612850067411460723963382658975185133058464501089627895798600655126986640739553461117676559690737260137271787647155885791750900691448799401708717678337073546653833257638154720795666280046757838260297729882255657870753215378598601679111360379941745895276863099285143470040093598752932684576713952883623111832300642289759954017652642337369480389897542584041040976606031931441102666089907183129717770920116936651396226885099582981624784593848847341529404060125407953531658061502686686789392768471046811016002764056911949367468436672875785782012561441357824866704417018880968188811072363267363764548624682939723079219029167541696977501186106804254639379918527498978117608987462774041631291863793850931198780993690678239378023343653461790258915571472380988592396540085749979963358960612174608944154435988899283694380892532084101805924659853786256051382186390701696706591821833650004326077708825560165203929680777111046834667876052519222029634702539913894183720485415812829356655705662893422808500711603135361763385402895170953681611227009444215930648532028272494055807958384998561444874842374941307375549313102292571436120185468305098406552705867706741864035557017519998706058591433651963780910838481163370271537057000298813857387940231143203215212144092778111941201656667129377814839237910493415682989533650796558907471443463705152823809655479788581460139233857615305373366093287323208851503400200435580622990118432757640597601246607400007508013072022226778915873371091727214960873649044448842432930984785434619210474412535427199453006334024557065598790393832148749317672857673872983268229670460278560981664839054248275217913141193119307749945961932787953392885791745361483214772873745877043655486564545840020646498712516203567892945870124241945988718845337662731059906807101028611383707504242801805056420066569011539046008546055893403016465496450360777096814070656386096257868458384382831923460495876828759818519539795521907697086863768299091838708466390670885099428350332231818725213785532295177525884683687473444476131962695465989265765009724142038212932670311958103896435142702896824777536502935726942506797587681480590996166799482889905318223110542710606280414242575577327370775033885979020154717106376582817827885283962038970627838419261697970392005869124619768896473683977975524897822084196834335035197513030801660898533519774512161598338001472807748810051424628881014191738413606696202112254798951065241101506125700554700593120666961738337970817326412579283778124424206807588260511220822008398644246610116713164937240276786630327371183625096762709237179670043475659932427082792859262695545904612474646831589393115326841270877905335511677725078916235666897911745877141506789055932121869473842276092045462555137488564056299401946425724623639811817871353493857845729888307961527625996561070713504961071147694188037671414636765823597061378446386353546223365848867106309966360517349059004015148157895077890117692945843753792270876810361279536384427046751465190106140419909615593042512473230867510170043705945725272478624097370516813144896088837836313374625402771249992472610513211478209864473822966454191427518611475149020267187853148003192045990752483363190922356046338301242746276156917353577675883520908332688280196419679526345035951235014160429386865654046322919925941723821183086273523886832613422265063673551569072221171875053997026058663426076326710867575836554659019124450785243812394905755418911738840382821262924241545022601551980636082886180896111111807237218195431052012624032286978044126439219706639614429468622437671895830128982254922747186180783956697140361363641099424177559532905936081441307013300645179733497059282614416809337553499127890532895099660444833771980085711305190143116992002174086330986402227322045458451316029126663775172759625464944294266125476017628021117930545670353011399807295665563955717725712536062319416855836849387646669307324876085881386193416306263923167071367182638591330684472200296997628117719026265335110221913590530479217541084461518433044314595748896613158741318318332801343347027376315302610866966263406587618127180846002400935094544764791812387583625966602329395348664427273099005110591917339982480777373508536226469033458291636344856531409411296038897372969059458620814836245948969192449644664268637118020719408548866043394629544777924199224873089927957790601662535263715702383336976570559417227969583257294357293644887543900550898263427949296032967463539656117716643264800789301058423582036388576106166451080516629168500525404941310267538708371159124673803024149157772299560742180528737978419197994490223153101894219665892555704930191544662158100902048465640687429698903501841506378404769333001504420289347602699917864401123000579894241435113124527685062495448264677438543132572093268002263654679029905822795728573457441195242289040833190442470019420800734713058436267683577045706882155663146347187344146112459145839777037030141156017770050828334664182464025538656507677661768284432537832130892636615282435109366092048777534286703560465040151528883602576230431915157900827731618296027882648844579341934467785595948197741041933580563894265266810665208013248632941424561690288304567212360644145586167497839526666552873780285345483140725533898863405509479967218064396880072622031656952596898476222070827137429142363939996227656572834347348051333704604832611518004656102796108439784763311847667838710811293516973696115789269686767040355610440089264916668942691089123890929191128149416405386435566582506480956346241321341524190925070337828398541622285726501675694822895680985698868620713410342452314409462359825530522844847455053151704081144797160788659842669755462902035042649556573792931600123866652128944034638916108821712911213483221535009250314001941259739075485686997764996835538304542575642201871774090062097555543512977743869336281479750422399406221467982747219894782118254396054268430684472183967540508565556588116827313889557338576569442924467371824556809191318020093320700061308065787029890698524356016896301825472038490700930968051520384405161637163346416934083007571441064401878680921578065740143758615806045019780160187254117234789819052091227489385463310578280689133409304508366791033930780058751010505927502497271899854241818305684608949187095136057077415965832075415384684836494832353587384497698454078465718408123534536619355325944558412554739845483267580386392050002366560076792344915438717814600505346827527322127394995569418045843240091738212235300472276310147362844765727237149691502587736446549639037220786680411329584873802294517336634060819843115042909535712738577427187990164087258232736318122584716661866582778955429116216893940295382348587804342914340296826966006395899313493866528228375364742810239074454799448835247088930120860670229404914065124430182786821161200011367697239708578700409482032683642134755930154077192943901163507733036365276636647822783411425307954613728640778954826887197990384076569779920495653144704056400815428845515121257296532919445549513776073136694477924214760311042487455723989909360341549561750279908884117928487439476363811607240217143069376583574533519540118404906173496176501714383369103587718154643817108561873844791780990473024159634680894595929590024577836067358704627464916757743881243479168576287817235954515392944706185984869412648514938022486599588638506065099123854173402793173580631307973518371095004486568678687772256784456811809624183744519763229134256824531458372622405177311501406090195737200799277599438907223795626825645550283673741833311480144333305125868476874805557937086696199332605997996724629527284536487637847291110669690338385812601097857000589454050568712443924731099383108298586702406993384129443478589509762590167397633443716715371768951363374092073895083817163586031649406188146033393585014998859396418569833421528123782858849544680392901819855686377937211385258302681093205914764015699207362186416268238310675675157454003163407169397395829544359079554797976013344529795786588288497115920595483499567458237815615833100608931758454320205381039973883670791497421721337997595736690877360837800355107055421892240709345178981374603612804071954228342673381738761134541840901963295614295500913981264112378201707524722689868738838272975282947107891847962575650631447373758970123829037261786924939015194717287106346449125896643305049237735359163937304056090170301469924621019136503016044474993752239201114911066006211480389382673391589999847763032291813262330017604488212938281039317201598736078072645889152888405430368531225764785101699692720158324630597678402138459744837629330005167135801185354693226163791685507416945748862133140320024609973284295142523447341710725910274261349158413004996419576505238486869506414040711876131094496348025021564057126030403371993653165963740095521203082536459381798151783609651233424981937977245271501036877565259625142557131019103337166113858191944714551906782118608323766349083196057423312662761085411846774071437792258853154449911175827767212977451475141421259987645099168351491397862837149848032054492711640696913812731744300845238577477998233685928126566323043108728257352378770683693208080945060303913365606948851503742048717851973459689029632915976204646990075025461140084349800692217390755361667101651269818910991152519392897043047728908816678581913553347510849518232083924294392694178390334799313804307912551470711399156174537013295663315507387152021554991404036335649809927533794803838322505075246413171414581085580223436856249651888401336281843769942988788272146317584740327874902967443342809947540515014341301136027605956258903546231618640248384015873993860301207329474901168965299498861008799492098287788520497824165438168702183636603007450771569886855283851103848777901135886995169745719558172175667637636190045842858114743582446710719806321605047707749614520672358712041919560031559300178515804030182273297132581803352214631577075536062392787758281038076473108314769374819788970834878507757228786187002869047243420062085499238673636775110143653928729249245052834809305146232681414698141785031793660436749644714150223961408071283723774867797661680727167797696469224148888659501789999227650319562343454697733209782069455056231453138092956076154984689247421814421184152064333925250716342196308212032232044177677790528199280618043189533926041212966137872302781684838535457257986406423622453415916347667071894037133916884973628808163695812176127843016468708380446131306641669948169414643185401399772888122175675018115856029040056790156992103781376323153868275968282766465856939741081419865406377674366217279095098243781203005485297123859363514542354958167991680397734036719098088452405147864247648692578223873441024320295178478794086891380727052910186215434508499054343223966734904927028234569376531610459147058945380920417839846990773316799449194425216604902733407208418238142450834763181604049183119561889869403718986181960877974261931857973204809031772303004830581657266981495674206518178728217345932927597719734511268047806259224854990429469622341582854788359590311308906068642773717222728492042841702751098090978282916899351442408387671922853453336141404856180711349146138586415717544947894410023583392748171340499849684332028484426913700898182516215233692188728408499109716952286948063239427498094320921467910305844619335958090314413730147485208487552806522221639374165710580716150562943980292596543815854470317394033044941978235641787819299388202031909467896483926143654120397477001991768210341051616389021261238378376502496701328698841949199924831624270361511981233603210810536875851968425325390512657601741886725782286111609788535446226133264926861180761130735994477358291414405155926124888704516897151894895508636069146489669404725265704012863577234007298208065000215780268737597797762700578505274704237711760240219890270141441863002089190745146677338906375708702482058457975973477110242462104864841217428664068123268200595008292484401309299844704077174589352510247471389613383506411196897962071765970790241129529876231887129730037143574725590904198976702553168181614373901595876424125487717873314453782760377527598143006707356028587999909352713507155607775975138414041021434221562805163776393115387004036620058998386511707296372279550833327807018326004670979342102112589876159833489523622318173805175188191725045495968263097263289694127101116777217195808212206205874584706655442993436895874348890841413883536991674106181514535813486803946765520857201353818654728950964463026505615904311600797672059351976046097835700966024896677533563933326322950138802675018541419318638681354578578380982122933603518666239045134742115395051509730386044224161099772357003007654107163750774369571059586046161753389907573751071581689085059415855940641129524139606641019060270354954971352309439475095806414256894046431139896899538640999572840671275347906378037108039862356997085165770174694428077834879875591130205869149523017217835886426282188864774824337150106876369182998866193288512728504900332168743902313126128495096003506529338330813392559173954017803961069257375981101805129848413953398021422988918827830341465918862485613293299218913263210771030899551405533413633535950380354530952319212383662507057439376645259694043284937110953901869292387339774517566527962635432528176361304349837147294991739607816432183703341732363492432889649509248308446372619978723388760379904390476741328649792493236499104974235408111830574813974012283064065121097923968256806069337746385385781702067658750721061326742352492764629864741748309158393470083108432154770260128705884230605176567588308498805115417192309580557131071059930234712564671757218616661330198927802166870514839500931474314664059476292321059339594020258188889859330902026365484889418305436128676135361029673645837607493478669032035314376900750140518497587100454438960179312803632096285475982017846067158596275646183402502880703810735796270143166601290337705180457065104414985414931987775749083886272377705864132915959673912102906046526848703504982392429588379266171461164347449153620236612416183997844358128547840302443350501608931138714220205185658010848921750635435769286091602509481261063121065431001356726825893289066185168833129601777935658325818432812459075240451502335954959829063520269456093273079997530436823274973872180164305853850651896784106145685118782957067124161027677135042537598987164733300420985591253146025566805122400810474027278443651808318552373302799704377402403707380883518697304852172962517917077971094866260780948996086502168691710153161336707302065803039044654787142579650838043484528080887802626457646476411623333092169949088321154809717747780589752306794940339907315235239585629297832714836101105552054278824104954456799045045644756390195621839786502822349773538926916773446092864138200521350298955895737243338779667321425590549545074538862264868338273704362276221689082560162996669399414479988494671731074838820499818819482410327489199595142723586395711771729508221698744474435113354244701201119968270771717018913588093002659031162838630678348264752695391845473278260922619131571630358717523151833503195600487735610501393088113879269062313369403940694760960518039329022494910914203587275130364285928800810747483153037681105739333694087176356451927260066584536384795238511183310066141839029695130443146851792013409940813289625220433666709951336399469699462151675934601383344370871763008646260115617213910902797750862516454686479676074075753625396031179687781664690365793846867486625516570901366365885286186444977451581064041954614425604848402493314575593858536972685884460891783879365699109097508357388509413339943787762300792743325520378855257553308514033523181090679854743490794905268879562601357261735410267489229666511893656854001899799026994563740682945374002512572825078089711877987187747732665032564520513457692109025925162608928377289689782534826908691406461997600760144259958809441871427223990973918540782401300405789221741449003207898182883456447193615241516102180602065205800334632907327881684320293240078023494705006445411851297045931469125242240096427573228564329601966980515619494298626604735089049596581045999202684462727485872472243195694723493822407051601742028769475943842918615094504424146696435825625566600161905180602525465683791057062393657632541238180049030571663796202897621669044674615295150968941628450527540994233375975122324590089965175131223119446658542344974392676846396620954242265195414904217870694422212818265934570794914418612770717267087045912683411711985540541763689730417171496642051046674356940924830717181789309275301134762351430161121594436459239163957671212572096973882355123555052628714048529120865632794446715946238499549147265051176315589242979003792124637631125260423551674685263165138609079529970988488235452546625770189648441042935781660391909229212089369734473339450485884191260174884520256993724706778165956404727759535228443097323006188138956905477130086784290991113684649624769351743806186374209868086636848742619779852209616733244201628187491319448462102960000574977922528751800413429715812766852178078158109537408982012432054638937330203047323394920809435056072871165104935582996833391128776144220633054416534374895999246696246493029383855673137221468895514981069550120254581765037653513965008505472195346398446757704971155406711016257732331301783934658617766781673630761919381873875160416415641144863319918091726671547922409744356050933749269673430488681613501621784465048065905269170229628162710306971737712081232543340393568588325924686984890350696205501827015618698544545629142011867358129062529718841553724849889508328598115377960359601758598242348305144958967278209379295742657246739647714725920064634024237936296634424263724847433208326942399475420374752135187121021709521844756804446179411881136117498246341933880376265478758699207736328545912254576877592876963192632403445009491976187900525343784800680892810401052929903723945362298243386678062271742863305008656806890260650057589170050030022864991980199904609532344278480549831767095751056920131008317569318688764778596751864240881777967950446111583841783614092377818267062112959840933558380073286873025876582156192851279573355008450224419511878805223467298756019721192482650239296055039726906780602709639462111358226099568235690162280708715660740058930787830776500571667537719564536195960607269385067740011823982941550285728056943186635961747222900766616615952280437062343490205688353979932941649041441344568579022890635356740276093848834311552398985163475810798297769994162038742057910040275756677001966733299662184658172395470015187880666047576198426147958018783952515900013743234055085650382319113851158298960408264992286293735533021938365421453090736218668336484618470927477312332017817135004104638199169391268544484732940880956309892478024418759222468945791765865736948162929269132184897639117905512091817566294936858871443227580305770687208323340413765666855281064012201272370487611739399650384990508585488354646399798383079899924566583497905685935719992252298759991118430715060373382550264832655832305116454816349058958840347960065707587779673120538929443954030199875217319773222240422703290661945654337738156859484849698374324575743129825551404657795629018968076589146797196949455157752888722621473114084593922461348786970006531643283273461324768935810289662945715409819254691730007903453592933719898104398562682375916015286343465561827785724889369517987213533373226175093476883707444998229350206554047210717459596288571385390591705847953205883783805822150737853655029868909031944643852677817837672514766240725795163372386255866464416466629905262115844583379278258493314313295651319827731213133748456757141050945913610781492337990762674044754333944693729920409114591590633994341829582125086022357153986514724448896867937951283753511598737173110004130591889283121081714106028761905377548145004617776949592325426008510851547573102527615390733230072515974087530473839162219200710856026712429440398518745648139348682653778063885519815152869693137233452338766263965528590786675514353564399730841481023703972235810969574378977284618465199929977990959943718576726710146248157891496506694666931953906228257488702098341826358041645268611429296315751005039869737120116837260786269730318133000722094467297757099054195870128418631412363730778546452229186901404939698553899779612367931431150093966966085659168485441510603694013563333380020306144403134898309791210477324991728009889175062112183320631280504857014664418889442502147248988585520188900614543630248190277118475925029260150023563423218690562774991602605310448125434148041157326443605156970338729240093350176342771339920876958461153926423686486261985901628031223058614248761443927532433769921341441438158371050363985751576926088736225368335277188419863490385523859124173535003635069054516025485983909865628283964456353896922100869376769913787454628681570963341768392582280362712519083743493657627600074693285641509811163178115781034474686878612922291807852485873190296816780761915883181097242123575260212260051058129367189037078809311333903513949525931166890732939340567763218121096812937531050181908740242722727647305327605885098911468146770030575300481403711376413877174068384658750192715018126594528253569456496604013204302870834074844093313101440384864405375358627470301531583854042115672698540026436812164727805060242308085775031097327226790509766022050106875253320494493141531975136158977370110707644659742478248479743024237162835889461449131582970643668994528061712791461557942960966720354875559650490619682590995073806200130312192799731380240254940599013312758858021754205236719829511405226668117246479746203307073372904916134568629139251197408536401001957939023276841422757858038659245786661734868277749257568387586549444444708400396318754912578304658461503663490697033438018124142522461045367896746586309158753090763562213757589055479056324757214905873870853008367525691952343800551040684922402341725992491835832010187734941845551720223126069417813391482007168396577395014924477272875097264283375629689209484115351177672194410826565707218633395126711479198544321743603552785135092368977252801910702946625564687197792542411683826998035570654905874115327503878492284486567198998566592618152991091853571531424722973503581732256445018153520949084960791387704175555548178363220301499443977274457040122538919607030760070991116785343833231626131536976353136347088338119397793146088504097056197458360205991220290200351881220950463761084045978297037507359466747153487905884252727807826275277921328046407773177681076512221342667571404388870783613180066612399530013862644553279334062715114733000690195230639154159857980335920604304284503858979307280657481242713183040610895622773488679675500502987748153769011986049664611711500756622264300439624101229017697815652541608940598976979089908823361675748087089957667098887204988221539899746632209209166402134151822882287283874985898892326341930544722356884391913040715460845690072344529786091489327176101711966211871983087351469926793469492633076889182831809078341438567227179570451498056841970373024710483769068029531735424750737017298079228593154272822468559225419553852733419194190238910068030694478528739167679051463361709036249569806403051838696830262750658357058138971540694989026757453992104459405871028452193107300289310642140814673899872705914675840596417524983393524986113625199247712807777927562535478073673846341543673360465833927152021537553912417674902150885672961039810796407107016854427736554851700492237192976211141953838282453148128376526916427289572099700747164255024475996886997718850451749618116505349584968596974416928863886706833694124194199116823277977225771597565603505889537744868852021854247832486373055655047566494730887035643729816250997769895342700229305912190248611143302767036611325276099334293170167171254561454080123649294122802248658264277562827532371832508858422792301068845520854127949069674421677037529303711087248205450329090191541422724046386244634287086469899802005123000300467529054829385687525394486334051986618344981277486554466959781618227026925110396823415897879360675423392501378960989417417829437332025698881720879568919129649402497908793888119937399276444413396360853051367665491773938337245664310603930082899414587470993011754398279942773948290103286910277431677167764093620151850751895440994709555722660714425700233173448406110102882944662456355976651181193636446953892446124065809252997744013792236587864261100471480103275244061474965339064553796803028746587989978551509615980863506932330723099911110833502790380748488798700192483014371266012088526466819184764661962489642192208585220774005912508390107316388261868716549302486481907943902347431630352354056080550381547037728904563463771859106055759854854491238239315629993654574430997515096115065961503734215429887034080949859389124003128851021182016385619083240320947736656534902748970615021004970830145135572510464897699094294954298870802199200697666625754521622920746854004748748291998901035430258178818686433057203134773506209995218485867458809910161078522639008001300972193431263122882254366662669153038944728134896536791519794959100917407424440592993845909456620049100292523658486513034942108430564784287443822260478356728951792836377081951858005137989146065380047540823355462424973183722514255563404361388716734899417956092010083956992610903158294579569580842878001263884034540737933796331943985901098998959692565763997498407532083881915774003262615871396012402643653954133133100452333429803163783839658515384454186588236955779031657061411790724052798602552686906454095194333010906389049052825491147267470233961133270540648093221304453342327787667027258051025518840757246900186373693389940685498740472828343436277275908082071498900340784082794537458467487011350358680285267722943506258096583666874089554171177548139189160392896671737428051206140868149693548880902046630875325910147094096702343216894325361611798501182809772181670970423923219876674134166356189471969828756509895580782683296102474763563233623779171234541651740061888219674004335849961872319037660367732068798734642596636907938620553638376348463513822100253143020987013084870706080543273811569307727482998880782815773592280033197951888399335305114431710345843505942308105857364882315118420062001909577365326673081744346693091801224835307078957149085207877255758605838124208277693829369641162969254216757220688572629472460606777913038643947271521351682067426543718597685834485161992380919536653389880169102222843790078910486189711620845572787548914866840759850079879103930442007107472862106762628798160868039783087713290059799265857776628811238023307967607036881578810250094571894721566654784705220745577125668917724503291602410902932728163640168390164664701978609703783320993193887392854901230169470648100886091620534756949003635789616251381301450531149480611900767747432040173146620000134216572104828078487583546183911330279621110701764482774769030102646015490844971093000118060843955081362947648023095572687635272034207018510503239585912278576594588831388330296744454973952352199108412638446372411203292058312952943745841764604732550510371839902383086397431221359682416568189861952847843594373097440569873285930620627082478590774067051901654424499463350668121877137256146793633791245282984032821396689502608401352634714062770255144737433652350867678918262714241920108181059094284492972631879619334184789936781031445264196694115975290777643724874703798199821873797279142383337480494614191760100467925825314038161087556088608475724053659609469188341616237595503561390576434827542520351846550280503061886843423127907884577828843114623105646514415190065265897653217003650538618484451499881116791148713369413885082376150653132292626099279483432188196503135627053399036486368949119066608809687613677863231685646879379123896630431526674813031524682081128038438604018537819769010925728717313741003057265012096944884021514066895580972996164490899865486990686125916825598006863757664581661234266253287633845222607982609742441090448850334780398354595594062350790291738092824982241294283940329683748648136832275409994747390335435239007217198831919856686465852354364412345190721060433973613076283184189545719627319416515764199124848979753715030911957286128086487225794200665201733412861536983955338540873983141522470684596812903366860670677198056947390780829845138655060637460614845982475434778355667959235754535227349042393420681583237596042928369578697426978319180044616704175177906972919517298663035780431303328679922598225562840886185682627510956362181248065453425068822650445502315224777076319099494049473004371675917618379835216036943568007575376392619859848582848259523313652374991644484324305495629516448332910761840609402529051750302007162271557242953354002678209353065333680543541080388401376348192959946140075782082907789700129558018832331791651379947490036209798559232667785880366007590466843525534270440671515254769743182825739689838988213943318111927019099381570902813805889336141815958750467685040771847003681753651503654564190590228794428376118744377698901570773647134356759521657411959646890481080910163143750589523919278553037715246707788563395569234617558551214227462504100384635874582152984221308031199636658723707374424584438568012825804917492763131021029595712003402718254935604659272787212036347996802876735789655777172998586020522506967306418825735357696754523382418077619473153194649641565436483668603902360391939424999724562433150201070327193753864846354109961860503045263384011424982688291137382418273701265172425277970429289909418513765742453229912561739996580396449200463220864871234867504981107222110709635135650140225949218715162725802752758374722215067638808577528748483576439760281568658872185953209003743417109518934280913847283660830632797577966847574974113646037479863461804907275588752848425361407784996918676182069505121171118418755476289979652593678426109290642707371971321982218465502617808602656125111861948313945889550492278703279978755444767106427393258726755812109082514928394491336371472581176563946413886205880759781620065539403439685867713129768796264657605937196947462609613361811299355064068320952882286577297837746246685558777207376556842609821298264620986191705273079976736546902838863944247991302891358356300486766819050305690095496445896619224653935839575815785201791431280602209263351051027216847249707855902391953167631627478672682375198304440661351993885319233914186138083066349636741370050827109318854514004220087303567641308576511971466502068587897923754118803490047835716426205685657954734342125096998464960781761338499005441525658826940489995747185161412809851673626286773247401971512020729624148408223570597102204853217017306262274971979633055214232611489208605858026916919694306221853388851997989083360692554239328579799928486540606212136082516746054298386006353667819519656153441239357549401874027602610236797966213598251601610802826860997960093739349561432126874663409531908481928139171202494809746619707211034367876562240508638320836772367371528643872167876238059757224841531612274062347671167201926149908527969966857269067278198381398668983455256923802417356158698164375584798896603569070014512596497856737516876612793952926847291515931928284756804094615391798327167875079585234197473584865286211668839192012911832687582570185224437084393732549939008952333969267912544987474697286245907634030692925699491114522515776737056099320646594520926956572461127192651589240058252777990501107224034372377720098812647707776467892597459740037722384731308385165023157853215942889122574945759382207370714870874610831376571739599126881850142897872588181239197202368172494704514197376722625837474586945776696733046571516766096049272387275253792024024792920901883667367278286797315878793379953823362463773487813749565663446874123386037018365543399900333171062265255129464632064347763503657747425870166638323607710244340234661649692754045923837594583096457397543078024854315790980753947482955025988799267972701423192017991340153143228445017556807520418546157944006674907713738384750597169218459732694625328328274139379747479284653551429737117260896042538881171153061297111789515843430808167237389991661808162325636405134613694702601266539729371374015511539154717442300316515350151589413000665143807399257676161434261167330528725481234910828213819304125457362970704625616593740890714433620715971397498271357615534576104391279047290534245730552958707933913727649043973662928654926932314158244855106373780601027693102576784343817784268082225445537495168358879419345822093637731481798002613586455396483423537236014584354445252206232670780067685112511008355480104006436388645008984156125769322158707365095203531145401758640948488864226662911555858806677618093419067440864479366098423608204815907634823712761668997386213374161506939005517990913924977966415496472709029907624607218591519152727824525517724046985073714229665613432410212899933219952233994205319559859504085512529165963657324170662124233343440025687609499817368535559728472939944190462049681637285809917475960763340204730261565948800972741007805819893312496882321558361542984449046011524709645044562688173738261879186378466401003979441140624648631399242422981533130990803351825074424123625671485566347421590004273631391196889931305201487084687636078774538039335442513046872154120328745688396316896063140284931434416488053887485521666442932765671382562201852456165668734544905197785653008606922010382777711519652992830352714308452199316139025266910149619820480444695876850108410538719906264338924945784093456057116032602320271167243414815624731281775012026025830703834217391286197477011904341068070667815109182248432139313652556422886392491188644239935403786572130560473551378011215003485284406486729296804347919112182778026837388800525922515402548340195201761950682610321448243531092616211721390566388003107987364043380899048069860866292975582334512880158508598713126517356090305277603142167511288091696035054426626313375603004306972097999621663032927303226938478876514718385320919372322864207634122242388489836665481885303512807308952100157049231093802052850567638854908974315241469958327714825745216924987340979401798406249526495300694640750435312771836929007248207040281870815892993467356271499160803825525225328499366958765555147012622650919489649407907950540853814858851190025549051426667123679573674418634892773451639387575097117471520519699165591035925373454519357552967603775841675399463086149127851563760284839159440158968503423192353789851875733895804479849554026367726514394399132707904850053347997178096938519457568825298300529460587933068367449333718837150083333996840305372912040978166342322621518921192802849312784636433966505773294720530247695264824420531714591183736936372807472827981926240482863001101461175128115040362776448864791098302879182661863830325725317226174607549429964218814283647522220382347175699414048636598219438946764821845503548502576683098909780925898790546915371438395078136200589051515583730704597499799461760721467118056388674971849711668663564518738657251618868561372600339195059450419052287909533100198667973089663272340259910094792531171040178862313565365622839326015955373374987555338645901019916928491932439854574119697384911760042754280904995666797092561455044571779199578329557132019510902631229358470618418561548498081587675888190540916549736157020040149832249563764533908788622990646619073060624466228747455460485430398602127343166283848389498293154856476490375738498257644597734212264169762195621634570284409209451829657370620059730481275466930547962053814053663962817101298195847447389040404223466182945162055819673774166340964978092965040712562418804098602608292578995315189484710908255863641228768216716758866658592447980455949647971964297366986615071939807826223323275157503068288867915257529459437574883792920221088486504660469288238896120906031170684677615282110390180022267881142147807322397827365384820808556927449127443474026696342987327248861070748629086775265345795656454684835751187215811695296056515331635244157225207890732395825727498581318348580616733124200116308104633752254101419759747883417570180258442808864647623637615805401710918053895041911716856636565480259276426577758615408142204202965825429215895291138250306088500366665652836934977892915477696521387120610339003136762048733992313816067185256261531573412347717058842276120510889260219328959231331957358378836445956652194865721777244325474689173303629297845869694564721534328419190972173724027891026715011117931091824814720832125156257567910967634835444754970407418256831635246257957516772665073611396798773678740078061489874312197536099474250879287250994387380601357839749804136611184422314726977677131837343658402790592259918191911967891013510050508663821724800723911670316089738362832408813748083943540506240161549586744841878581786474857043383627945651381791234276259160541071378125456361363685344426312839902642938887203609824461051048169879323630984639323580034227713680511999458710659671895873158797118087260708253935941714759715941761832713766154931120589916557697054663868558108132856779390546443693536068070884950352399168083099207795808675901230101963548083539300487960055830251059091219048016993821391675005724397082781637044890869757578671559912587948679007210836430150567748693867625212865610312567708855497604339336108040201915665303256367289187751199413610546318936809463594525426392273390760573240899054735341890856427426682608162259969549745270821669384228770284547992827684826138452983557753606548677596613008105445013921532216338199054635234443332138720175116959648462969622624733829893626382329187397051700398339854610365891848363669793952152586326936204847383856772335943933876075523599334046386347556503822796970945002570557632082564615154659535696813341115917556068876124307427336086468905611973697936951329574416254887441135231281397401876029293414182343212100175547423608895710082166658072799535407672916602510475947135880385326641440466062864511722664132066580534422844543747819093224995806738009426867977138544501693315176446281276313052259126234781724639565156878055221499803902122927320789699753909339899208584068491535853006679381834155348220903856936606281361057680693020998950166815267677987980002485130639037683437802404456533802167720872161588519022999317958546669180810027949213774812517458451185664337810501415367140874750861485723289095583680571633651860423794121287902800114579140401619385730815472549033835595128655487100705879272824169042441293616268690891294704072404737847911877094708132001271639883959002341609793792024234885777044974355972754230970707247944177203624592929533620700219620343602492328828098854668008439951722403780631107950336020261041712807163622672925691705179398793556892750531609269064929697766684368096781540443631113651543315989770175383399260295951520815121835967020550022652962115063273579039835518790792029296661139938703700199128911010698870073047301232656285624629402700667543287179048197481597320106108101575843002855088359883834897342144915402298047711492573978031797470358662470585003032845667189407812835136090803297054276934407124777408540147533649740961958999220275293266808749206687554276365268863185737689141038473200034792460965441978526469287635062157640679167922106721202725967337191084786129790369107918024254137275437782184957852949926203784769629185159518888231351620253323027088612665565494058082203856749392448648332333961127952423344827993103508864022661623943786380293653776650098835023594000616163396238996870358326061094722806141865883786165919883960399592095474877042311462054270204666068223695855054861748620723144974886117249584097750562668593229650785827437028835491182740857987105739152823226810060051425228831017020046817471568090152624681405445751122416185604836358445796124346231279899274049007373636585073146851850441709386510675857653470180251843663292067618555011537199441293260766487785110412424734738980850129859682329576437208697283035572678854077756968005362093964143912889391707031560129500013852510663739414183396878766096263803214631564540051527368912500013521279210788074940494478227536450898581493337896287847572330347129476250621486199661468147362857884382074478342567637856434330883744841300388027407117954875460567524257564960170293062282908151717658931306153593017475910485357314617840989133990614969347797619902424918034239238798906560331100920776540419998551840977358525128990906250391949600846020375753728955719789248937201973649187600132117079443332588523920830541838415076031656271415447844223030083459264376935998403091142411119320695205955737417617161011213233006853916923059634022134759665624949765382692739868561177665180121110054620812105154530018671475486203763289467651389283450707063051328714395876734590531572818408528337438858842085218327326341960071135303346565005846530930677008417766236782298737192367869711078310099092679048314416066665079714656044948664721293742691248805762087315524111864493601874119724961712895935556633834696466246672387652491116599821722442786340897954694646085877792760718458600289279477738772497445116050133935238684677946439224201676139228661098056242662239662170897202257486729675677889738251099377343973348890787469776765932208109982568126620443178388349074848443336442542508689843467032336202861239094009061955093956943302225655306118086415502921850828828290396295870051012172138049299113193680190641117796174666107042701532206574583028054688426992866196962610090036311438300652902389365534112175906353134311029117764481963980722502180860567514899879985083246319107128969678773487262370660083406184244612424387492172259143268429920036241147865454786832260922746749227235777774602956935603743872327489715776695682607211815332364727349835327850758676672764646657977387386857903297422001019028352390333482694203039736888471352840610002102878452631103031916068527573092373088528484184972429377681692861914055764861924143187923938501117949567974907743925530803145550317672104282047888408628302914729242663974680317024544001843824961923042974066587295888889198516332378039220852420997019196089557456435523363904656334085531889685664063362116066269940903679693495730814456099905359412157638398347731428025663407764991769845324031631418467982128401625596026345796347079870787616574310398520477257510368088741590672264132068026793356031614835930220242445574043370223911951747437365335698926795498280244400625321741967364661190916764518391965361663244603957103241485387062134736889696926302324094717696177631096009912775194424896656516016008605979129148719948336308907691913724610583197948020686776798955307964377552977689715960154958761028901764429311839406137646017076958730546961159759147474116996370405219916846630347299026576376386736669510807395641385782959655991454794482896008535472997933560333237499428372738346749295118075790468183558099329972857945901450012293687303554023408282762081906076536398800325850345702935684111481873076007499358856234953049262552926863026440006232202537040100689371709833900111515034382749070822263228866093401563048034757923558683075678068591078305335765328883998961285719722537788675973489937090055262911935583523853951618990796769163936371958761818222191191087043628631505094380657576053294173609400672858130739589922630250816381747689529673039193803702046474682583840898642415082502528207885518862673657301280484376028306221371099213590365975593710051449563494450924096334537617137219311018439598713715325318087013802771833194659891638595616943056823979409139893396051635358354814823606921077562465301316488002574789659628724280955848015267567961097461600128721426822751579121429912100354464232920498826700037065301207903561515006533476161244381836900111269654954994675579914206203442406594413773543089053161714004548280888674195532020633986866280264174999563306988018554784366682395580909531273657796389955532864152822703041843454538863257504985545874011956913334597312826491539277252684977017999501975148880869533105734208700455684380898156130046947874916470969145995152118220529701197684255648528838996142796981747985261074808064337707725371019376770984632759343467664820720016636408592081259179153514831501161056751538169445877857870941111901090248229006727293973374858942539933131604338123450679284519308257277655351088184079684847068118434577066803929648151401880850587766595051554387161799928315386109734501271105867184238372181587462724923543634676809263967038621028531837693189155551759279077184856702273036063504660575886888005282391081665756234157175228170336419687281727605041828861985066605224375408737802972908664931532423244850036741254690273372306817238343071226682052648372721106415165909835288592703701313467566216809461138582162651653934888822988411040725924264049662164081140832963103430724796491392542184882185623874334155815835575688353701212494383930795936240054220359183142832785036498361003581218532908550432373523175466719207737705308968660181463225510047374228116341534340751117385926715604120619370462442123017285869859241587737770012848965271401913278120615353933043898230069722671487682671392915675504793353767033644813408489675502664658583462657512123536583541517168584194705221167997009354671534188915607466232966628115986044780730170061599507326801189918264093380327928463848311300562985570209473603844264250870956830124931620324674082819395782624288813834792141328644106858349901795414457331531933867899379118289374633300946988926328499547897370997218163147634763489263124610925576354532842963661120272224687471377337518593969485836295444076902633621673551279966027822011289785066060875975165063324661319129933943040677827189801543260930110145756847950057842456365381232233189620883748954014842653500269653472463427419341144834277456861471729792180746074946687617257333591116835872030283087488476156521748096272119915671359297453685145564448176790933001675121358357166149600601027262946027762650099526914273860000630529219234682638387700718082839304123305099938252865511074223847150740162815348141688497105131415763441493455219580052963550055192953173300279116545115006929696693656763741928250979703311373740110644950214638710129471369270270278690643766032504925971987129191122043771129664241656477340532470467326404596696511367978063115344024470815456028385181897579791931545011703889010233904182287389439450301295243793752067348875915277716662366111994529735683214096108527969649356617463970179607173075962048127317819672730006859457970645977053257252055981399877770506596311272152214877019069816704304363558887539024855133609218340579434559420015681851277627945782222720986289859498205745327309442002845794626353459172794896597089977411804130442481689908057635764261919833863477492474809575370200446758749514433952239928882714275327728908505092791752309749070120579578641701147780161729404805522025100694709901603623117994804052312449500534953537748462340022184300053169897806319018980051948915331049113129109455393052998189907390633865436333443488891511557144664099646317732418153227200916034064138268129222853014794026860589624327262631518047857421407763341905038070341467345450888417956446050004712286462787764994891507328389044773334878650102028602089534795339942588252588921828911651701928041027228719378211537229126731064604689614352677707524225024559837252252752325475068184568609189712257135560616676194412389851819541282277437473471288675786080663413398666041289261943190044550639757784712182892291161154841001140024135616842272559445614983866104445962226904001259125501785535434886804404344418598175681703466007434321842070515717748860857549025434047640519760173886217190869955585396637674804434982161386512198686093359252606394665457487641965220386409404312681686213464930763250729039382023129740467420437591793544016168940160510139528899211935030792610060010470214135192283889180578785882457734832889322493865746417675871752436415091296885760615687807333463955338711762921440606649849104930331254400773540286822181376064296669615401335277714508350948244042468429049238106464070578280307996663726698386588542217276766954556139442735547962658741710276158727189519635467227144098125523588933210991043637463715260665426436538432608560864993198899007935369358653472818536982241166318006813409292868505204989516071439333236679121912014193382336920324440702803212697983908208774912252571669376832833248466044750738279750365805615668478077436477935480239343633654223286780370733920568211410245900914652382364097345072988778696879733574098325518885616451313003318716301577849840067721637026419091991395892318590337927466439304001511907893604982125267818715963499024178984049192115687071283314313908140458545145746395355261706867853870167944177503118728229015176240739248381470165654893910689840363815616087672656157386899945024706044788590145512764651511690882985339526204665040147594863454639587104527509573973700368956848080922122502549914673720971157897569196518959658166090604115383954950308713057717170235680028956317373157274264061138148655888417881811722656578044405861891397337492299403007988744088733000658927003408985765641312253249109935307109100708347955637978771349712987037958296963250230624412671363558479618700005651402918998779792621753130347566327338796745557920181126579728404478773555287555808228913623177909682098266807169853057888019616227656982119963686513088043030804815054940598099308725972672682121583606230107376045615283013084529576700433227624014960040717253481381599049273946349605326276391273656233624533985110445424780230674362478526469510895653054247272032056697367435839655119456432139578168325682758577316915069018524905441188062120062467434565590775665297457016528058135267515605978473842700291008038851019956458835655785190093065858579018097608904573904774358122739924114440556209206215160463863257326714327223550226097329393507252315606555746987421332640557863588369258117904485233097383555706465639568566161673406869599933230500690649373786749293787436273938161200356598062889099408506320584609573642988197810146619260570021063168047277531403389854694120441611947376797844290246541015914623535225747738908173006191725759379669604091607008608981237261690582696963674101589384978343180514898634054507946031987517551014311749695315312590436017636755704867199944224417864843988803223808244412016998070031931692689041560110960870973076633192300239760780228356584025787461321535816875303700157591573706976750956052164726933719871700066028857970324203560948594911592759204099930375667612186268629254799904029141085386399875526521592594046337880162555256829500182607643115288141473001928133587405817242868778003395247821351333655135888221716397532490661187927945531198907015842531501519770621921161751728436932657496133337847117648828714476416141388119736500116466340297323305878319858827994703931515169680884738079611844389954078098370847075618309542934297906205513590658771196746162444050731515349574058371824865067691323247916750437015330348993998944125359531226655426741005984556655434775613048749519704648434266659587429288952712481276072569941200303648102736957046056757012121996846307399868930085380631634749689907987832520347484830942325733483071963262602464398569961569406572397343741624202319426827943434177308593208555576948852900499730273477305433896572820282130153747357713621738882236973317418881621635386075353458196961877617935800723567686922289812231389198030697896396363465077468912147672608480253769093680413578926393215291381824543296435337766570644181565980517260416391189639487017172468309078459952273523807536463403009043633179212996270503607639077999533686919087629762609476046669036687384960600935358948259952469032000696141266684305017671443681161825219675064789270502224831440093697453652359140045455143796699153248325519489751487941429410599477010323689626843784789737247376263239190044370496204160643353911251821064075324525763075913746035381107344976266052845197827805006295833142836848440179984977986243271141230922761174503089119455020691791317614468854051198908194774643520413866347139035693864185633652459922843581537769424005275903476945704492659953997829227050621495991784363089289613205695824224555327704053133165401142420361271783176136584021752419734696249037445678827945192436824181899140618746440775919888774062797772726736277395412281538680891804625035069728291541039775607334194530955592973953432780259595438243448362435736481033460074945432202909853838957927179216780996538699715890175699417285189637215854300138221199781954317734752248613958644200906257487306350370422394073491756293254136113286050057009948309858171025739113034257907673346329058715694867286770809050866391550073460945182965253304302134748794342844554665895836387207059369333190816059677718411789388772801740026330539189673838903129758081787730244027881794290549294968159998804746691512815676730476000042325080618625985591609217966583701535006248619854997672618760382523669222483701988345681650355403702463536665892494670553139034496945569516336349711949358681298767733564176359651149643358048256307402825139805361444519287377069232892950227200442276805012089853323670773437346446119997294175289927695127846306607237395986438539015781379144913420982087885336418785862309369937007916991627957183033606171898243483591400287294531078048335342123395053029450726922776754157855865565699904695448085950101722282324249216675171013410974237748470459107173796123164755499768368731692077992027408450947130987148967442437765112498254641148703049469466080106338769681933035881354484542668139993529516720001859420931351827397995886675127498956449258556891986997757009007842655929103961179195525344640844904581394171826523124116216767659130911419362602449912900747852674108658688524890440875736859321454040635317158185296152763916734229836478885319519099912393307605285578414622231515704937976305796327174938942802982674454383180038635745775226010382097216335221500735586232387349544203454128080155927027781311031523817285834616401303280587491361369403196501198415108596857771388790561672629131876664589342767546863726501628424099570569639278723334791549572010486795134541731207972655501694520159834061384157921767236659395587813449497558611850076411907232229577611473773027955004921591804351144784784564048691187292453539396113199126566330234338913055485625055150547821719270778096384269326843591197505591103700678307249528597948336600696136219663666085362260891595666721900485832634135455925210123456369624078859037471116216904549420119019114821249935172665589444131037437429488674127582469654187640837271701206905913388961754633348424742396592893762128594722344261642413991762664482941579245575452022341464330059212820427553342354356639116989497783840945412166792206762972371205263972636489332742272735655505794130821808097693727870689935923515175356260398287152146232659019912162563542479766400124695044624656483497774834286254745318701955208645537277675064909120668991311825276597838356987767882797863736125313720435741262378061001415179701251056566539877172635591695327182363840432827338645248833138588603781495594344629257717428966150379159403262883981324840009062925356418918256016248520003901220391224917474941872168689651003130268320367903381823092844218857640532081666268045027021847239254043230485313374641258312322444394929343711372143653531357113752818006654834419717629812602944987890310558351137744531295458130473682251980741014047102343167040999744993261355298168839603594692090360577316426366239007629890279109006903774152341303589814527440237819696168828852359527976446279594650174648974594617641564941045546405036785026741819417886063823123852504807721887172718987728854255701983762106108379737006335089256951971474800615921654556173053053185652543073369371505422904438434917174136090261182392686459990275026139060186580620148912347230828997678036972045841684467030568295331589374898035087778307752558582409344870270272962987976563909948281603139774856882377631747686912361573735627987200762700827517740059956211684570540732330124015085212490478858728662931713910865051947331932952583444707293851925807628608246161392008744853412414492846314307502934513288336510255512174848738722558419084040726104398972203277104141976873068933870178383063753461184071568213461251636828056727286944152116159800212854424268268441330543886148200259533524376787554222617431795895475978143771475876719551015058648429745091420190242245781063207336786783656527660216566693063903104271220742713245506994029720205555361693040561718765862887556504426366664471482155993492033612782477187634381198101141181940571880421720367156423406566447512893626497483639716934716189038619091101313892809186775287677165565695068618556013758124484855172169954250999193973946167187874942520872590881812370577662667699635450110497685196720869775230486402800381903774529220693161657264783257944182948363952418992981834449656418977841987606459374376289433760465332612737429112954287431278301658369917724533342595194180871281503381939264902519075634434407182783162890475755509810188885220864600214320169874396939989747403659698977973085087160444352694823732168546166040861973345860960978900020880588183669155711790501122516594396421061148419110022581000794259499722702712999294233660479409095369255105297947897039117924294726229002335625895539593513842739808131495591734054611639734016365395827366401853021403221231238724540917452028241119539881632266455185457004142111424266023849916401967693010501869159602944986953083779604366655199025296840687209402372579187722023683006980419160823331640639127799758606263025982757704037281117773637570903981702677254223303478015519463510443418524728486089374853650631134272175181606631218907512610853148261097273901762745660991238994931617988188434031193764616434295994629947917318364192583236949034189175270614669032277332571544957882962822246441654207179200233899982242324490626317953618750551611280040829186492949947693901652604354758759900933597741239311707835783859695229790386378800676092896662981245722570228499941363915812770192785905626208160157206622412056942165046520187649025152761688436881922233980253896002908748450079041696012469796976811412207834055869647499096916863470140032973993652688293246173234175869670152716556775317083975349594282321221808711746799101552947493124253257279452952634465907301014522081234502344300058894050884696673134911387837092098019643736393391048007210586194633705817792995022077288739258133211805762417041776000872654033040349219976575644730155522452479998248827330258827375417273908406989627745135398471588619064420983574941972686213710527259956842093090643764850260151101026751523712732030717286341273923241787746665683924074124868636244154743017407219215411685840585618996333648591216201110926799920820003667974045222947353339042144129127361864264162330426898049442728936818313073342452067088664484639327521840911053172596452260224919418710053450949990717847785555483864976777259909641258438906068657898488001948258994797609205201456229306211122287405581872587422635775491315065455263153218669379666074766194752823469100264944795769984249525691424864070630152457085223888824686415682832609971969589109553318127624579026317789654145481370699202923240817072350546641044877579491092519698471625973202671309986575692209034614731584926205654226662532183649900107162323324091490239156132135916400267371934034161602832766447174945369021047251324745747791636195338462516772932938185576638603585941732596380052475862355191248567652621644608976401430886655488075453794030304785048595017670213478359468228466286420202121837992948915218279798230140287797044405596318661831183975649334562906492528670256434348756644501938451043940169883686407899203374939238294324449047229329254122528298478265801043191030171329155569366184896835507395699981496212777802095039240940289041240333378675783731666160586204085116012540116670787405094708747254640540694116192072341472746852175553969860623109288703573917249295224446470233094068299379078497685091211523537002437421292164307906750014855087360847985337097357121956262859350049099151578764946568774109580247356639322742126563275631944589500598364215912682221430963074406052917253119348212463130450129530863915799251103183579547635985887981776186600993729501330196921918646660672701533173292350314262189053791600922443996236863820055116768643714053921013176463645312473993446884684974837344979259421938380406011183495426946231589159996137229176217886613209386412408366485452504380170221786057447513782973415134587150668219807526887719397548950503874011263263587404770042490251574127551037568639025242907679771507300565460304262586305739117622480137202390220785550477328987788790526473397986516995906041475406479529510061879670425200047093947604907591270892923800991538681424259634801958722129446729621133203774476737618626975455246569061236974415505720739635128717854823653432605843059603923637916304072428813885230718474597961223954089102712825752213810111310815317709803895239500281024328976262583559589370866103663849591045991218440979932164182992736669592617446386326466155997378178078066828080628997369401381130887682756447024401674255056412760788786246403682118597184044888692192598822012668115551974571264772254965443352528319777060323289965373011210956467188135020757444607191830757364289797878133417741668043557188374318827960185990184292210003272572037319729867897430749288069359380662713233308739934530956795077913501217939947587585804088076534483217543483361133341542823209704447753363567006399611574228071271856464135893736154543046905534694443772798642997233426786179906977762542477530544449488530724442513858286755463907881508706591523410531384782898740008464426185049016877168904648998860528574237781519264386543329632126286556154681849098713490034217378597450469579936968363356671278429141146371771262341657022747233124665041770272917534887272403540154596647371230227238938203572488329196834458604732501876662600170517051194984789982026086819271542891698508844097675466423223531063612445243790739554903468437421492110833016015321629517918064452639684900267266008758438513180306201861157337809675756036015595298976900779861682775507461532186005853803949428025850713492819312971573910945834657606581946102399388597986798106818030579970160020682078490330929489022927700422703621236034696983281941440845852667412325103664222107490493200593134655128137657352151371254721271008142476872793969855357584598715187308869489146989205281853994618539031577469222680909852072954372413351046152855676735819164385421381624818001180114591537086251662376511123359114263462298618822657097924215086950446608254637234466732426951439578129871023308613089245427000314246451422845440813801234819388355045845375226579166119875532467920186491098998391247943282087838196782664259908009673191711713742174301981525446306529555231725935667834959883804037812230041583377795058398876207379192644931217205398620893037837152997898539765154774534381488118980321836264547852910000438106735652497015570975521112307286084903100129067421412421574000096929730060073853239766984808443832553095757828296885398277608638431705256836249822263192424080708934025883633973651372617148719659419335502249557434309841368099464063938571461176136412677582625463989004028667773982444892958259858098946649772820939447424641199414998077861782723805644663316132713434998776123204551221961462588618233913471341106661434158599533480994865889237758097378218254803221642156957152313464494108529589039662983189062987547790419356663027596704060189128010989461224241445810341404442014190285031152211420755660655853127972939612388021160732649887684223483753880951169404408716040098475274093066783038549826752303863128732316552819817432893817768447240777606831605320897020922005359362610420292464168943516047683287269347712419829258974311518801483229827566642693158527555084847018206334032555298910378907606058598947933388954823154838294417189038958898774651614926271583609005634044115564485033079340075136174105596976126830971065762984624777418763428164863360808759912663531524446133313585599142076704087485537893271291385829247673914635561336147220631850460893563013656823332342452187623195835654729719289514638773906953634978397575973479074064614898658135143316614011108766458322638374082047152011439107847791748511466613631730943713661885059431847032810474199164952754358113133040058394999925566730769877034701192395629473170409372425078438816370108239061899199862524734483431322898235503085531675129368278489544016630839682535758754138840601830407935292593421197536178409142265991106161642606615284608575918854628779165680084030598608774931934943202410804332457392186252900370292202714149299797102014816346750985434049871532035702899403055067644242986012489766122564567349851228634469467919525420985288409697388031353878246293021694562988459416242907440682400465591398428303414129037663554179663648309347710888814607553390451294604615499273113589309394320968210529381337449306923507029060298141286299255801294459255634970238073096062283332774642664550549425004214283950083421800287953719220536777651381712918322427826541415616521814086793391192695405872691390643413501662554255675784067664515739947952293849960128665273322187219264859667462133338389908018220231280400385841432091027554521766973179821987242553385477036975588615345839031035337873753447705130066845309828908935648848851421684099076660519919690403086663532831016927321566292027791032608174697983814269166357790532715447687112423206591719066911813449349787794588209860924769825709554239131602835181597120709117612228063993296892983631961436601593225622383088282888464340227713585758220029652646328129108178828750771242078073723899941565105960008341642206572233356180919431846612983557135017996069913055337521518801287229171244562154941516074224995903216233837856182820756133547917370995387729653508314641611127064194935752362662388240688453623957196636101861596897667191039662964757146048926769205729447393867539569645618432837336830183067073915520710261188419624548058116885806939844722703588062018232260978428782169878527272261708279457310174382610120181867723767919516380561714896119628087604473458247157102863540307128113052103918586002653523361548413878682859674482043066463487163510895191586185981801647297826174170202334526147442274876735360001146631271858871709156090234003336946808507939182157123596311319040388880603583476736622123729616196645642212092293888108799088672096032944313863027914190187661963549880873918018463611822626909276887971671657079202468450113501359990810444991985863221220980121030260880437764935591995573916829640154785424417689669264409847264294389808369923926100153112735101919629282593052900050073020465325250418124109905392409986450477289400782306569121023869686126687343547923436160348857013206266071796932537942318241330014961145331158928300660554888721671638382113253078715176296248792210040454110283015256970954099904949167004622182636595499713484785505528506067286735561167913504786719027210098387715325198077269709235904785392027201422798099403310506162629504347365774744788182741099280313035318544799361946049619656895532154047654274060779243447895950640441725541429620063636102445727687896519333089526810799853654228683060978235059529560197787109000094416432790738309407994918006762402689491569722485540568286197241162457903911713772904723905339696149777629301934352246510500071622297864903331262026113097048580976312638272943152260014185988567972701239283274847122465879038223861059500119759805914779885429758410831388656719686047241159063838910270892955364337662288487041908097352739141602269369570353800955217920945211122038041236223482816500688934508040349258164396314026206053463909760235950507089594661080613972858668449691504650473057572001842752299513983449561683696707534153838703368384587658934397802607020438095812582967904547760001325854525625825591078737565184205586507498264330985620847236001708932342629122205552497354498484962141874590700656080628831677095313520530601359641822240739581770668633105340487303941060828139351022841738243890937536092341203908243640372256052550941189303221776966561377505088115178498067708779622141670769162873148879847032218021308193896501474284707381882519012725313809880932019567246902683915917607330730656196516967502627863418857318699910283315745395192384634872689843587196539070602059940704091962241742797726300362805540426624882085543020696951356092535435049215880830710100983360865613324259350821017883848419103519110729976396149272898100023772694206206908082006874545922181823475060558015866500219065938078535738510248874102658496665876625198179559312150847561535528515309580990451724047723093084327145427892702159618212746890411676147558865635900023123480651735576299900392391880512614420340978654971064073226617182476731656966254036031904244250006288755523772194846029903856754264720186016148743318824868013456961299642667103840395683291828159326030120698902948103761362942555537280306865424414606205281534882552117317246167527581406271125924848137217311558558852274501709970189700483214260497502101506697021713444491116742871892575559079052963729620303757405466549598077061934339065666053802203168682654082577680165108367860697899863274789065000390809357490474906822676640363882803733152127711592052153952137225516023027904674576063265076774110465473432868899611307590379896609169811820812465771495057979791898239670142309386379992212335241874025350098871945825345329648951966000194536735037517982859372667025442503998961184947641545846117271250895921614969163168267181911258739273980039332335296778792390679023738464054714472302286713711429937529738730032805464012963152500929250977200872163037834655677484405900165123692318969236815998777022610522407330898589980168754914113162830175455843098665217553304054906388255503185579858230094613655812865828508829017784844192758234035589800860003747097414768857023537769108764713224438573747114725430174219193769511436565589731069898743118418753348316309940862839511483813700138273833914303399504251748648924502205090487494883892832989060332635884787800322873480663895227736871115191718675731056583871442142179844801314390701698809919434239974403255717241129030109061308486762589886644135699842288272453314904901761820677130157363498500489503094841706357517264106427368331062979249739857506616755384477646757263544689976153814451197275234900381777230138312977071018726438825160476403959434145347224095059792015134874604463420778629671719974053279377516446950053665972700987616963632929541490269467770526407448358085376445962610697537083752801630860938368083215471662646158208498994634779969635675776854655384835529056021878033109966234069479406767249192765033686222583291336660167394399000378252683749228629089221349115083485767525023538912900465345775797769966235356648157961921443133298509353548987642102305674513535345667986153058410214465572558772913279008905276391936193542811426711967219416181466135938472155415448758960966322160790807647094413560430664114736725471462072472922896679642957448871679223787240406781643816259846939437834810422498051372086885042041361433049556530218221798472209158330035087420602151502570056864816382711562293769088087163288458054174257268837652146559616882638507962417399265701943361455560851175490856993027649334239561676827297280757664238350656015344263945043430484711954057977905158539946726924994034481928728087540740764278032887770248102913165383881320430118700263685868214402353372550033816609039164726532611955745893560015777869029994278401258298164682295775138651882429088070390014958472646269584789432653416144282765001948969655608477412064129270345521188606086006539819149392049139624723700028287603442035668214827961767636202528452672037297720740275217744675447848710675697099947292243041582504751492624722895561747731017379898118285606088224593444447245949396360830267798840764036024601578490706315970959675083525091392560676630036979665788384606585551470756526016029074414538208901503484378930452330404424658442959606239098359239087903055476498528721265573989337472607254367647674885782693820830717863544749424551106804900727274780496837431431414953418366854277201937719288315021838998514041690472494003151907697731588898659260969206685051759316894785728442832270109821797699928018178247137578907828238480147734708848520186597935149439436266677373116314074160154446180138257414538346068334180402819706426089102199566175953848834401071701305850789744380313442820392997531689219138302868044900101968859636263370061238540419283120090343573161609710615692320107114292918250763876864561432022070889003748254306211722010775838877161173782589656189194713167950065820030163356025577042160353178208390429364070199076179244255822934669408156565891605436952106100807124102895508673830154237419724058940911369031573701371457002558835837281582391320766058643089845843155356854314429521155454571900295242678029244847824485029900456010077204165625257249219073215484411095518576366571467129641097589013976736660830058261085387184441815404417473777598734699867302104196079742955848257706830812246435780264105842267659444732981829248782550826483247948261784275042204316296286849889107362633360067880828209948770559883581687470478153724971103738800548974919419880968742751029259221976556962695132934575513857240530264882196785400239441910319140595795710126660373534507393309266642342043059832293058668919505783705313042055492372540098667272977361341364950207635529339968927814955482253128225784657594564228773741277916264978672380044282416863038793949366101453254268429243937974686592538420964700679511589102060474731910851282136614176829641846168662483011236986710134251173494605742014695492846963208154746506582998705392344881972961207658761256928346313156762770665501618457312706433513169123755634318402005093528335266137592102327394684422220419098712626029149224269619756998594317430691368684267472727216707415613404852355427646761716641618386196916119840298491432154431014898850521897450130280324213125654173975113435710105580968395469197855163475016745730321351587152925569277105961620907320405951474810601051030138295232110534239431247137040544308876861778939117954502715746120765407937112878770464291125734592992398120503779394231190989408510163369126743335734037322059876283189365624128058031809830234574030068717173754501367132941899448881443610944025119868396190998123261191339299073514132008161750477251095725698245842418827774866498567249126368336855961463295578425701796722249156473715873241112003420394101508854537089663567825728760774937962751155220955619142098508397376295819097045627330257648326029380083422044800477111998852759289728914795645309720550999154581750582280786827011940774274193601798786689511892892656225456355171954659001200143788118234391850084237058223921187844264236377542412647797036342269134780856373200144870821449215652554268531559722145368952836438889754123012351656452274000436145806961192515772932996116809694787043846227587617307264827984289352909225470149533924409419739281241147622677115175198885034390910006490406606258037002116668354549639046642858476005671643821046648244626043980456670362750138490268066956128589974303129215888753064209302751228491582774042516229156177876812312935428300494992464690430603627454751706269111201766108501990165489868542539725848487814033622685746390840569504326942048393278194483648792104308562036441823228590105397489907693454050992942255264745203077100421047004569970590536096736219099113537017775170217952345635253421992692291520338573679883812276152411907464868538097885240282472001139022501292579483053564650917982910476928559914743805004106681710374113013049107410130967636938890451384958492755084401646062913118523550341283466906351827425648124382338987980473667773558995317683394338625766968841251804259802916938723088326117803586174233018191362968074139425493143451411551794973457190568919556050761852664818309733075713229730593270412969591630387790440557499708226296031171768215945218115368426412576352304158664443765369728708289497080786426834097823168427706157930074936667211199114156349739856575168864658028372305953702917945666078078587722063777888174629939100758906464340251776905796170805602347692446488816677027072017400887116913118158456165213194293799931281020112900093092560120423070286664136956062353549358032490893094845901867712517718358345333752758547017257995251168965660189785718072578227587429118904817342215398715224672324844914484621748386394722883554999054554942060341174142008786730189356527396026331825802890703838103371854269175136642147782104058011727759063430427241669289878389037143818383456376287814680618199273374448772374650546720020413227862583761677070146607577045548744806268101271591049945304012804844357830446794677588928533985388320544195135356203144494652492907775988562049075208871977564102569747845566447889650314887007502947469706079289962463206515689361795987922886387463663929196155023727431477789587563327701132183491534428998338384127479630330545988081598725066473025694106534906902789366942759331227469657850575536493079807410608896824792512287659316009300062987500261968307674435160915863054071114611824265999556381107944612034850788642155303709944780500777525241927158019085212503540392427363879767280688538033551954002676481116912593072617527303303878575360705282394855478442633510648521059865729394220896789539649041342799663779619258199924484317425779128714264870402781085765720301076347220501667171727174552477999958902637997750279085530014645310600966421054079598718301634915803559649439978447531069304026222235498227629201243073995342999955828473681360717126418640454130092819446636080608457805162487446151509153780354306672066872243705068742725237332018798639139270423570989545716366197622734003609565435514167266853327491544381680928137660913110908399077084487360130744538630882263329122788128082255075244604801026752847570799945849579520862605870642421971338060617000786433922255852926251468133945317978283225025327771464691700645529351390977731423853093265158769754562831372326771641550182836143039277202649668514322430680195657903840771542366863091838236253771157188646913696895434298653318720544406110728027606785415149517772295099739470354941066388569348074193492906243548481449164835124232166550382667351183983923764273268697794076497840918013103124290231153644145537038756089872793154810521702507732944946776002494819918327261526639384030493805218861512994463286282372916779038087531548456839214401346065792684175479762064008653635532204177076940209061189433759492547818539740234668602768807967792745885037231256214057204582677331112915334546880988515424602277394735632726317219936686926314531458740256912790757797483349093839371140284005525982110634891991163293895293767173723086380743887138865409179675169303750285265373142145699333371642293929645893580133484368893302747792715838635767660203795402799930570096621842591002465199953392041776389505654250604084667581598456356296002253841809708454198856943397453703505762211043475771839267993393047676560298377994984382606093598506015999386075494322511933089917154265753956362265305581239126093827373827065075927907339615872495380204364128415210606923813723242053068050083591676189339115027721336547586392418264166790725920453126099601141120085719415540703534096541903368087595324533236211815442886391932835206927188920454248945161447358160408533388506897318392155210412289920596883888652336412168883047710535347439473909800447432828523106374815035769676589367360511909924601532187349778355269289706039741496832901480051901638737051335700103945311631152148009742756879882739660960267394939995197993284823230339354704311167044579386229255597546244115384302434807584650961808289276448566241213009039622375391562445359630409539230813423917195935069280877922265624821074015187591436076901443608528208718159351339809756238451111139530260317546589013285306070123896524998240117922726776220515865843281765248877729678526140376562948545459007297936297538180830866436854056586180510720298493834627243641284631843838236700025987541874796191549165207101058148804400910081768661993432891006856924106625466969187773280341008565290740027178976745021971306782405940185397607306829068545504250954468394761317742485124499066987872053952523882609076189848220677947066713287925685244332718995170285966754255543839690942916135955027647661523721586466866185387461887077143628261701499512222155203832731283988649141588342366310017339164717931903360672305727199814955913937389954814393109474119999540153217849116691745616713390139132858726835875813644804969471365116852947255549623976652358807437693159358142040492741420670962595768205080509714295986042297253420774827679765944788139255038307924674224863589436095093159473375437079196192477629831143358106250658415879660969948683251308584265127397745532380657467206462343443090344172739780209846024649578860920120986810179154300348792103131044008695414224001604865368313642350529218012133684652884918151535991376558947173701159888013590166393128103785926359440721489726264289783743430274123157141126708103141273676903465569738689997285040172067802734142577138418403865702025910920844349408722270993029036511254116429880805053665621514801488707441592031054204957068272249490256489891267603408259547484657501318385412243849497412291058968138085017120061835146589174684296785071189026760805279078528822724026733641091900347902482580237330582855611338372179185468249853793538136946790211559979198699849040426377514124233992517877496674434327206422884809335526578503626608502315882672597427532050800908004470951220215482544180820900447173045344634075247686718762375293210595567501265148483855715917172005679610738085886003195110780724196873458306374165719851904043893113322457079068616587757279501010624691312642333470189116673957356671631493350004480425394008320336868375557476590094026548472050685355931500119176712275853991481988122319875183257800074211160370453248102268110879415872944857992363036211208476624526819506203600229640328277963022411192964926758349164593083971930060131940493428936875127601678573095084978738313817905448782224951392719678526587199977570064162072711026444106509444611393733772629528119048365146093596818293228755501356332925742329897521931817583490191759422796426953963630501504062535485373705144681932987199230848651853045586947022642361779812153709542560311510695969833004255561464704360602730023512733428131071420211912127852936001698214918001419324764271446137229558989191088065797391445777367160511165749387131383623447703277391439266985114724608637736496158039809760095819559948110014131966831764721855450535013028154775461715142844426456941087834636141726545319494392880369592285684063707786418725267300118266808338809485648650860430480340072064253245990544719332501889640688052521189593280285328029638375344866702587426758285420583259077277008391989891626321640319880609400953050427177594956078977231204032155278230648673039494515322602655827577664586301353735982880924168375852874514995853934314678909896762745847444440087312471516399757539137464618180741938118853158041333620381886765130124264205198705519918110532711980441351167397743143195056034784259765627742412209663091665786775644337745045119109700431256661477157095957683634138410738855601660002728680089357625304681425346543460370588048287697069179910874270589790756972447002722945358815914700435024188602426539474119934957791179027044551498569763997080296706373866054228251527638721879954518829455489935838422432442576567778419983653062291845209171314296078987028525051524002516386349908356905420894898411669542873715140156300862383375257935000388459721552222944331930038963310892715727281077733026259291735426166974758721729283070324270455913662580904943314468174345617768325669749168034484980060974098238564427073759763415039737748753594323238649953290018535058066868788915678064204925091016167064706155450397476756159631245286111752781851677387892853182282416476939378226040104484112878860548978884303386665683526735386507133062913643353393154898196735401154726128746742964520754035990354986537317302031770577215390555363268389770566993323198591244405933135682536733641671963698581840585548167515442925934430471695611296301392476814888868422860858336826412571523674146094969508631300837132432364387736292889851310576716926073213641052082443206775539886106902233230031097793212967822804339261343495676304356811701517759636835416140326087721764658455521285355561425467747077456780727934260361733096922415956574802365696105065914868671321329426926110764773179923753355032816704856097299262370239967373892001218500797278304034577876650861065119580235151617153115554294650023436682417707294520239548486161266621398140970185144734923265967655259767507096362008137262892140078095831928681726328745334546983889277011362625565939473689395698083131538037480877447744608664203769094479000339507859271366509598019205386928528462008754591934060141045031873633160960246846767303596891406580827567591532340061305122896382874809029336392135969876737959440056311884639263313300602750592648577030092538428346807117788581321328061807023100219174332753834368004781148154109618822103794868239246913202992403101468943796218535056921120949004241765410770765684501150272370509353843108284742747932135949352171602588833248683336426230824417978099298149433459880625099663751651988238326380558418353293769847062886859574044452080724047900014341437424613378428239033655801345187178091058479905164215619988225357719759928293131037861914374510206583028983658253705963320576422152515724702721303903871195257969450977182282066875825160212805701577624903840587143354790833691460185468462908392512179826875158558451691182761771801524551883739078807159776943480108219451280578096996954190374595648915479955293590496205494921692779304986023459060753679628261364992722572831606465462942588477290126992279087392313742224945049114169332553601817524976836138690939389043122510292993663026925314151946907862732631977096656238932409399371993846873671805325472855931256996399203642395859354471265771844686704771556652210829193928767615835710410969096892567524637955154153307561744131495437080762895036742905156766444856411990292394592909644301255265551246251278109014546145752652475334442199169447909958287196050320497245196813203404007464889002359857346395899293249048083558912470004746551514983941455750835487919960239484465349404659331249698669477652390732510154664821201645482986577526927560056762738353912289730217434280654953647786251716804267825745182711395553010310689594720624707859417894826559771487968933588535537651649456819048511335202148361407355451272492732783422850420125957545385689080713991846813666892870741195128497815647791747336506929291637417385234223146019480950593536510088688468230992169963897539938943946456067413884480028719743423745952553692983189598956415078247358397319952120927887886992522576417622702370473372133642368514855410108755856675301018539592897032451806931372843969894584664082048990288741322412146354993344083523112583977402841489354026752731835170742054913967579422422720026198829092284809822026853950549742150162392640957932070519620914620508241206715140131290859652394293756955893550636453332664883917972701276556751563277951812216246144325899586356699704285904941536107709365850829152538877985027182450020912941730865761792470208053490740047897413409894913645458768194232439222639447563416170059894883211365289229558763444367336096950853881279452214565481795576202712051256587805990141982696027553304114584900502236145459962069184193837866099880326802604966451958169183443403713011545214554842681788663218735755353276627257671359169691995989230863622027466489892511434952872259061308925759175780677101446166643630466560552009404400688435443721778714383471121888263081299108553395069470243678120936646283733748150832249563012741611831639889955774905252833982028120350101182846566444045756708251373265282577412976584049237571957957177146554627947792185370276770382384557550687277779120912124376241740675846539139274578205614468861461776481253820738461188645915075694378108641956865126440142208975432814873162341589576141338019096119936001441178625606704127554931265015845387715659840202181700004858425035002407103339622967092137008652892023154357865429506234204598285323303034914445348687963899671300778968654176682788361587415662381052824673327586000272162121761630060955709926083383748479763576126861024072890529688010224652407027620224875900173493758715930462728620666324869150239631846978236919629152374125205943181716505040910367451453463569555040954135028288317813076466004599035071972838143534090414591920093923657196059249186527170101547543165389303757471906879033055995911771930070376347189060469594334021546266955997480087053942952144211791458012683445978651354196548298269153923757504243943428595490896352032216737924230908738792973014770092730189922582133297423512848182800446285633891258501294480616614374287083662320417271963257854220326447591038898317863531081562060244245393814499723864569162910510185182872096903349749276484252470052808268416257226815856415713267663283782019786268438610449471878898419262493933992662493485725055556099983734493124320032470504414332806479537729451305482404385740516544659757616463494291690786642343722592087134531424496233225573953336402331792821603545325729488003323554767637778509012862524605193406007305462532005338809921929569620164778735611055202832130637155384136098707463485605082272040172517992357992112103215948377599094067853272996493133931926237707999368826722189788995960547072701804660547069028188901394799408363867378100087021457966799858184141536738870375103869143809665120327086551317687763571602214919786174801554176293410029712761674807910746475713109996183719239652689327446021776503099903693937479448928275057333369678698872017472671351715756510923330287645299240227992775726300195580377427748709487177149654787180167937139774636578481117522946108106392974058626556098910922313233581983214340519599122225753917724185184158358689013732901191335561921181529212924728541997672097168479417218864280005084256476411190372299041372347163164675034294687121213234336220869920279704624500073223622007434012989752343584475492047518470479842210677262762404477656636453969868006265414449119121503397427250231347473839781443882088193280745334774862219950824996209627917789271533392246435275872808903396766816300136355575116339199595989595399952177080473125591684400769933678038224478929891118336336628689220094226318699638262930022113502729271010232816702200685739630374478295908042032298877769384147542642058773088331770947243663801387079036494388806802712888860230302208771948085898529578895256495292610535207134854835258687956213782331395241064986562277656513215708110661861635493808718552160017333956388399736694939673263672711918985599615899885590252271121571102989420631593972191680158819086584606725080798078054254579107873497942880768859217717417671967821270227891269331216390361548092442059878981769563541661949190064520494726374591410000962546642784995908050631878722644105280127416474968131769775228476534056301057592836606798177041280386128301146005625027618078396847073779080469816069896369713995776148569861313868155288532955995672054476903473946763151297855476593789767285380964997710515452512112571556034321613959195417545744730545949973043991279620923497503108793656383714760490426824458919701024310676110362319736262196270858166486770719502100395921961259480560374747733422154549563803693676345842315859317696918305364121689674829671919039268809653238671146045718596382918766088723120169524531337220454880145378704757816008080689194613418036775777366746995427735601027895545696913598369259482693974021700632835788839087795125953368913001863541576425688850931622288015214759827810655414341455018622276049698087929082930735805714391571277031121444502832496804894974786192998079835994025772436677330910229282947021988886330209301157664059166162106823146787043796954114005972143886379041038056427726313710717063690731352482829042115035897411558600565009325386387770334423190402574448192098636166491841659019350515189770332838035521689480177021632435843431626779136102141945832035542929949716937312624859362162820545331268461027017199498922131735982539301912472523066176290038699102110346147187482188753234282680363745059439844157368597059957959177872362857580615315119030276594561572888824159817891960138824855192535005317538535862319020493562558321331650099822754769660936662638141629103899979236468282244824733543045680199017450714084961305196966129280891661856264638073939786896740086957491536384370515969773374961732291489555010938929172122132460049229808293122592954878641070965455786388042775248957091684390407042833926722727934009149456065867803359595056316450724013874698276991103093045116512875247007415478577596111094796741174934986557022822215314894165517093549362851360011941250440102445205771912419730995182759554662459249266580323202403464577288562830660153666540550215582846235978608958232289966906468754568696839542820868173584530551878863353631144611875412774730689000026724753143024712614881139448705895242200406501901285989824791372005114009665338067439954333848278727084786829717522697481202168578247512815164208489690134418716521167277700500109385453115590879483802293303595445918213945520756645651614045705447949833468903346809038968319347808797449230214339357586813611082098723355353873970210100447821591965360477928466837626139182923807877171081311688695243373711478327726938319508995086832498859340681524403184858326186700553666240678861998554568621068696952655404131238611412261215391411739798593244130327756635631501296502100289810022429242421035714100641247632171083090162563333776543113326276700549895277430277680204394680883478124041442249795055437942949369455030903712383276037635264365438627050748897480694058251019771380904119145555034738079971719093839232083044227647544998228809884535130403610863549545265609625206068520203500524265377356443557262518933654371394307085679434725471557995649494340674472656034407633853359376585068662610678827159586673557608296773611798862841561533442170274750761475918096253931060841357635951856727061039067225107779709130540533808669017878280447594474207678319725943826373173279952419150526665203503844271947723133984060617770269566688337625764016886275494891820508407188744896357705312914929765514642138776873612331992198596721556001158438285481438115860437500881986842564520291801208795054581233948116929801761760102672194920413632012508775143105030978605191855189668718205420748430250197108237784643342971557643243789903520094701523373351347857924009360151151579305528197592671498255792821207874601621861143292376647315474030132957208724157915172152691832059925568053529509644226650656968729994138092091882839641950435979444721722765182932259560279950520548068624395724376050369215706050089916604962112414978607566888675700274684903004144035811189178850334333847671575177653442065372944222290933349712377426333895080728131073598140254022918435593705095270372771129108059650507542733175318145868796393749387637794464863580653919391458792866169372709588904514470762890234112512359784451783308653574903340855995453153935956509536959460557070558897345611383040130919291013424435076813192230897668451953034303595302363460584827723260474723134976071678401831662816627928014536734587046130738405684634896159418755454083337164715216207951492584310041672131480811923206538061122225409768054543441299382650063454294263732634944698898945854369901289242963756380688744782924143823988998629732081494502470269924737792615774247345496048643092479138276168459180470262281223435209675653520537276899893685286547709631421895229693562630735256518157626846340980715264465973791992230779799890485835655211982264975261130588750456461049194567835933506442036385480458359090487050927960363294426452214618371734469412775936061859749295423729609089408624683802109551145357764852010177058267323594629354476754550621640936950035919250130330160794074821995045075701448875305018576246075118125508016255982024964738134962421147021683598011270737885962494940188725908567139794953333050621402651348401176640727689712166817636998429361784887096526493646812024263898253419313541004570109684485942493966636302716066154337905964457289971248924319533193381907469595685544895809647632073531349471703039976719783862099854806407703880422952160221619319365376627024567599203382514814873294293716829162859463438927873731798336864613243232259262301710696653321803572166003284762363592764135526872676264312221301342910886999085688049558786305719178206819356548499477892006574120580441897055109677511086283042652047939397099883531640928100088147501157312972914216509183596842226016023934423834780813047077087209575619533406794807418287403157861610335452334113970901219162262749332604156535249196907936821162252445497460872085703200298425351458686122949942038710491631961040109572816631817360492134033541335536739099237033682773185704079823690731625782774236904962644069034201371706865774711816214497213395369923087586336934365968030099395324711703260183425684083397982788130437138791708927105061635851542685010831447679096042712322912910299501779856271357665721280428239109382390760792709589722322144142804954223391494865553927372571241221876947340168842574298209679507109327334273634405854579250460674124096331856370756484966327129756912349018116623744687666941298082739266195351878005765704173428995554437154912618912205637210446381358181611164837250774109304600711948381803339041685928738253751592843742880630316958950142793304611031966214523874926433696085142959774914032202509476718538705328720576335049089461645248462267842257311439299873855143163226114689187438111246294644821467700560364568777551361858775699562371751194429262707201797069728138606095326794653473832605681749966770218364208344807800702439336851990833322247320477984986544463733954742842907347497055207105212712971999221942844028607596867382823672873259789389109839383569050434988638743112626052932166713998244248017972446124001020043797956490094682175287701519702516851507274657721182822981716574985811053678364764992930630513536531997777073485719935340782043775070192794611914216888131824363252971146438325067569278164559570990366462721642944210813552073224964960795690633231450957184228849785667585812431734876370019286859262147089400178292906337966990510206075536482337568133110223867206482288838024466309397709553759758533670768066129275854990256272898325437879204111225262953121820163375203412685455608173361123629406879526475429646446166707897788259416020166979236800888889489551784511512164031523034602791158725066587614533252358059881023963979466842512297870579514791406277141021342673903085171139508644120618801935563117418235006190333729050642804178647648762610026520167767544576797361870057432217600125469093294354988946781995131668878833533339042987966544070697374959041903039396613312424625884783463498826428839633397135918395738732342917797470645452593778712618324180468015483711833634582894164080304673503606360894241257173211710627421129331505322537560332923303011779079831455062283595494362656931652634364897007516251034104685830272351896494758389254817973187406170311056231125122443833802076178000353730182536406900544949558739631353090859913056796659830521298930657011879534452005182439486412056647584981319603226854155830098932848676347600024214128424612791495909900840544122927913032987401092225159590105088357850353236631980490748806598375616291346698151777477855957249005396836008840924925576244772257132771810566975241244024727813153696545820805379122647994288761931343367523367903348130327628389527055391226535572561510024707667678226551380114408132183520280245440040925681213688708107153931807818218004281561481037530959548761064922220699707590604641499394486730497843600349085495762099197763589092067688334093638909088007280359029865012384155783208219731245586902983417571457620584375476570105587904574088113586324743133616852542638651429451783824855010493131076356098748218114672819813399366428266036587297616545585568443408745425913854031874060298944215035603476862176420565142014088482293532529659022536609387626124083088936595399790798003421672299583782972445236796789304280963862814995208946603792367593462277685525858208982674530276963680692811231802943393602956779699618523699929541582329424979884383836045164869738466261196619986962874219573879316077865944330054866234608711396751594611749722229580934204167847133940101264410412144598751920184618282682087991050752118594720642615015013805376000674323242932375152537761153267913945737673093373608335493101983099539118094146570237666957870289667524741456411559236138717240537912980514747768256844559864215473533492230793043436737210517249999011665843611483364724587084511979735428819797005843143464381414653049228735678712261881719738898973396061843215501998705824159300173798101405022478624678750533641427004074684985944966427068514551205236854378268950441054776019085506253210904286086080174273166465411116591864678349858271209336516563166207575705245334944202632375141890905209481631995924028155673993564357385801272126694660263841788829125466390155872670333587853411181986341162953175813704938229688210184354109297643809514628429205506586509112742595942736277113170566949021449261008383205894852419744018050345357816729081264595512187357841052056077266210055287345857260677876741820272898484836800563633010541717170898369523703183452680838990027206296449689287539158603015251301159160139156673599790771626734971325131663040098610979731761534394534503352075073895148906288471294898450457549829868264968106469006684654143166658391814398023491618891569913107337546697034643966555916293002379257513073929314276856928579400645002551852089256855423968922513298293951353401324114274666093906024545992964920547203803925162748263940199445811910874466437349249266788047956796251023795466996429111586700144187231893754929782219952349074005970883219934991791570556994386867803184312516818110964347040115588390921198714334012461078940061590532286425593354119653233841171172997727511566397584748381715359195784794048058726920847402035697622752763008421374419014718584210193133767630228052930194816560546393377248105718691136793450502166641509217520049630681953679984264916170753295540219680800715521474381456189049199200611861208014732213198994791034994214061485563215734914741764157839728648139033131310993074875763318562782586101005365460699378975490771501947477322008516170328206306548877420871513189511704026881632739221003848900961468674927133976650264822250479612356196317625357465044459610845334585024052311889822690684974592139409174113938472845702985074585803113851871384297982887955470947351304862828353208257125374793135055318090080117730656244861730516760389260810932165011391891083055254127753394630190260225280926035756417654566886317633853727325712893155466722468845428912705360133616574737645623572182348200791374629923009928917252723838818945647526663039379118379616536778556562308072778819542694627241579946799401577877846929107899136052344120509872086389136812268511568576463205166897831050526736174064499400888484423087370840635350216585967361516815509673510998586168215374974209781717078633375712696263408915471169528887329906809371568318808074174073879145803246158721964936001357264974795838198201634358522579389530222352895977612361359233345109946929069830020736277208902836507908753138011288994620964465780137073761456541554970237573570220601299471714144123871694420721969600056173785260776282453438283844896786024480680601001759581408423238361255053273761118375278924415205856581192976536264818971674689528807351976781370084239786286919487897303809616415736423686155493774149547229599693855725948462614888738950035536793601686584179016759528123245155883085390065944956762723033407665127651603256079053119210098287633872123023768972451855567419036723676392014281175743027725009295446840464413464604228517455259616781236399913728069044735748140699514591528585087196772796175612959476956265725906916878613515862305085164224795625343309179106090613457693260179391734872100915048309098118432691263249817051715347402991077663478315260601392284164239192419867316504981163438702145862646202930279148273787078203899893337791788899283993321157457762911186283932858985043765868344617460536341710734360102371271497090229046284489217138717600101503223160005779878374617994379830148494090341720010337201156161610556084340386800414137840760634723065910563048037143457141287309726222209149155448268806704997031270418186750826069616045771025823397395226728066072139293627130638914027935392522313286469762329637846083275439386733816056236690779966949319374508185361174785928025717535289915999160146108744186070547715024901911547868895396293461528074537374288346410310724992198599352144839121676946948018430351179038786249411468623685051279201565628354820326480743626172524659548228357770281396952853084699039504683522906294108211948463085698883937148154332732594536613444227329484872121288330921496739938390553617783095742806042876206030945345207783250371153480749612823638917085443138709922719537921340014614285704784990780965181780020129669826747237525375759653362089816054249545730346914024284720252327321840379569011119423024107606755718219780014980756632650186474832399780138234043654819967021140836214327268878315227056551258489015932562352540131787946998072184332155895109757187944685041263846787014741706727383865679533006456751063224839766283124124381685524409730176201819764185507119561064018537258723853125524108474614528731233946007295197287879180781565603545136832536340162302940502517307418488990080702782701446345597273965851993636088356007502673672928686612061975705048503257041758656917136049633637625787419004939348664060981177468647215200771177865838198517030401781114002419423206716449048966786038218466879792317383898625651802589763481347684414922534268932641120539980356142073176516193543421237229249959707048808319230136190161004277286001347813811000778917715623212707699712195093197450165069585788083031811980197637462357315234306518975804736779846006932143844445981686261701221831177760321222898495739924775558133429519327470185541288503252125912956214303685476868930539520612868413334245471468703407531932080687693128124992733160627870193354916465940347764560588734898337602603196718271737145785902311713829457661937627864821587647678141903757668553940966780968571910570764621150230685248041401598217632703903015036890595275457996218530842755241668398046812185588311644987202387184982811520118519951822545009911462156829333378736710568765799026001262940451178183343885957497377401435187190390787388885256670277670664069119479437493255490444547058956757404390568727784811421716188348247790658615026352360192015814990375309823958953111280149995882459928069626137107481440575740848751230271368043732839392488110749400835970811952790599547804865989053588949768919885784774699246665897741718116864031772104387057704422999056417340947309133306283600078139440237911686054188486045781877093280498891553897493214181862960256966285756816731820639347056945546608857467075783124806687546916726986174626963474913115596865864686613964210487606336375415868213059514884782662773007758155921846085256065711108284665835577775021905929734961246630106731703539271939342422305853520543362387402444840333700801358227153076434480227691138648681826887420363991991004706724352061171106507492219229523800761559011312944071541801181942018976723101654941649922868432153250018353034318214197130270890480987443449900412377051538511496366685254805198796302264809980951905275567124561860406927361244898347954789568443988651883675388332318663564344556806771924607703540788640117737047537837553921048059825207984808133195383196486458640733779665558335376895310665021296735242900582953774634976226088030248566753492205926621035161894272883496805131866282162574550302266593357949115508277236902554841251759143556647954698865774772916581288509559451776586532544078905709760711099843554804706262753574327341253959365490598701012611694786628609841891050131130537506609345974777804221509424819286103232628959635572917010719559917927612034339275216926556961385511147892904917861067849370161641960110633255063361460780455836998112052387765458666070405123387481200453873743974686649699147374144923966269266618243938346890912508611630704589517029274921533566200537882584380979688578869938951633300309657472153009955392943747445827707967378729759490399791690627108292678949207767611483925963095699107713105445695057375341102410961902153907748361963274236604035066895148792965944406091191624747893749784401082620172422930555527892641162723342798613905961582959499923172771016156921361929325376304762824618397195853689823761128341546255025287642042503813160153462805064873003884970068666150929030316844513395642689244304002678756317249341174835480938011575771223744511610954563530899811745130568321176384958954029596621507045691339014918344757034375915936392086312477984544692850436453785102820462335485368717947537015843054301728731876378607335937590058967529922868920071193200691503935977182267020192074019602048095334513780371214409389182176510288279135221776731614922282539617569491058493246481214964774872787668493944032684937343608305309342433970543472637176932577540036682258877790572223237201708005902938577781254645292485788797543504481757890843146088402137011195683617300453528897936543263509943280881271922213589963969450828694628884611132084915820225901852715343318412069869653356326994398588373704525786952468323597108878180676109830461757539019107737907830070090500689763010120360697402858389445628779044761625285201533714134046289225254268993970431214208281253423288003847443810817870510358769445844455413691724618828694482021035334940217435012937968159566476871020074603341867907030684970159793970418239803599371889995782503464634498899140281014338551770493583107486210657376388764673943659521335648338247135293620124784953103172236723059077113072956359683378349697550694550542616289590765306497973009829606992307021652927779049923544038063013698322502038124716215822005347628661402314629447603356933861026198765779825907558862174484142826401638204819418158326672070026995864807086125203119367907291856732137362196703111263116253165217110299227579815919636316698010988203503470996528868890944180622039620428348485392820012111538198187690417784818951648747774100650730777745992787788636409100968602172539324330730122421435185683851805490307034977664852080909534367457658147804812447344566571197277318114682778107669124523143327888336984981765093395254774347349176815725701300413514615868860268328180085673275014497497242317228536692392916509498846581778098948564573725078290868132247746169994359511143239019049337637794411548998130387872629119921569779598571951907141033403858649429200113418048521005109906130337343295945604824742648886130680262167376787871901222544279440475559438359948851707509726178967365399962182551655291921956372298401262101386469174414750782882250114968943684047451984846317401855152442651304617618434079121182965647857447543977547972092891578796110702075139889346922727550129276661139202046160966846765799681948064883530950936007307260298816345379429280528717861167216611167305828036621568094834868684630052617227704455064323477172473439049225470776795719686581072785688735137135643418738180255255879812243247792075805359995712594933617441442936209461842357985319613252909991641844483989731514001180749544153539215428836745752530513729429697749876618466391442976648772615413137083610457846042506989740577134704392956558226349147609761016308255847162398994129759522424395873081947450418543930712348735757182922629442251415156336448137945886767226205017324728884063001857277553335864662114767997364788363835249675161255665896633938253876347274253054399283592879842329626033096330782360675059146510759348452907850258169754313001434070132062266073307265072603356232223915188902323130727232538495495223356691817211312028435089721036967158327320584624784540424300038404530983069994928877617715207477567304167660192809858235444594130510889628742698810667574899422532121665409055215115606788356804418106627616757633290788155764064050736484348040890834540057532623278876928725468617442875357652227398748246330254555999569983567055497299429503645085575123248775221698221192915457774052303315582195901936802644208083150328623289924893500850285020676151759868394442427787343754679173454089362944171068805264147659324260112635725122810649428531497821462557493382203832042372512370931283781739292803667560630665531268741265996556993436211720363854397169891153912031486838906946901348162525320074008276148842498278525706654633580608487560125503883336881059138174030048066012292526714920424783511392489653989112138206718340825020217363478834346767587453734929749619411421588255836304781413396551422388770160860252065310961270279940378139036339402397300100701503823667954955406397565944326918928011597339260114231452956298127493744758983307189220784571270516912881802356104425639670799389826085976698511796050146559750797839782953187565302009840744752299962130376972140810265608433411891182502157629459310539379492744826515366885025611179381072265458206960524953099927061377127081014035825558180562280829225273133975101747620513868611033759033690050297096014720290218127691147005225090852864108200449845109709495655902970161496983622162574006171029944687810020161326430520151048286297202561450150316862069983571488510494044201397065186178371896764441921361193808434203187609045514245940747538367942477849486038629466644130193402051304845840081448762088543341587775935412356502225281370645718686782850515068547069724542880391933143427193275380501978078997820771280701853468196438675714809555980617071491347515229124380024085322880378188770722719867625644037640201300745502679104457438570972971900567398660123348616217018361920746651471756587125461977538791202495740006063705777837625659301617026881163476111604156722147808764928001560932215250793224782424036454685619641787595498324871474190394194138138065204985475293008181595309535116921473960735546873696321889581450929622145183834564913022866381564011423026917964096280411643515820838115140125385042403105591337424251530217082004776048421907243990790601851386514002584096782878840142470724079527129792973051570223682542508580185550469458579180059115735383622997492842386632121293023745572988043363468749448320697517236251727572197763214185404761496402104371016941523969196368579698603966841180397765181605259994733125503274581351324529850441331795399441776003872378994314331076799794931991179746674852217704379174125256681427643015453491822932542779208788109397454159949796124980223144799407199196441663007564180064296203026970910191024062976747274707092182817673750149370971789373768996882247341767890288805736939002628605908209122056806428623671588516857078709634496530724637895058965326349233119769046806204454702702338384276368714775463948380133278792131216065602440416129615291288458061767389580563618564011745255394917623211410823407377758882866622147373181254966895055984344418005916281433941097735478799471845444836966891543146145397611031517447526027239555443820881504135399983329687983519634451733559996122088903455685149705997592033630374264590544154913290392671343512260055379743555305826901943137018438452306855580434972356520462666874134186825165201053491677780109080871291762009171969779906424755074991739930831285889851493658127598477778574786287881192039851797472895897353057425761202518215447134668527986144308833552893133358989018673085852029412602982549729168716891807822874479359421240619710012961463352459184255286659712008820704558600742751724297349723297753871200214109867719684902034327247143212738298706758571022376236882091521188809919696907424652536061521901014145364012532098828708776572471934796255153177065487511569718294865666779195786922998473702121260778120551609029451992750904852265861208920698175716097678130799372775274412108571181918965919887370189685345768180414916850348036671577409187966975893983253529872395528834309690593683907583353891463661949915455402433872964283227408457163212520929622663777700522486500209136637038234884714671063357317331487313842887900377281430498208347252779434019264471187728790641263540434067652251130246397833273224576718342726403739878750258425286564292808120223395765058137056485002144570133584865815880274441677586064433887703434878540156635667230053276981429054099633354192256262737063411760529089667821876132756236079969294305514471609979480301492589277250319067660776059740415110510445970673080042701947267920824865351528195146783283908320431145948583082315014552407330939849414998480579115157039738225314467426820040262978070094289920833079256085017093043987567352082111267935632614946003162456674259599761284117727311096756084296032498588283385069829246242436433137133425346848189417052256371029923395327536934429302675435738719851436272146820385667253868176268194180354886617490873557766613206607973569276036163982643672786519727781179450894292423721195590323375672235091108280700151614883483707409767384378390009071770545330165248536380549351168020312599105554452863372580207716994241215882395885372223957438091778232938530325487727550552860887270626573073062734112426443560825231835138812151206514595594485491134629211752804705937705569990581708104934517685549373787772677104817831264976488291019231057762848230215248470387074669657519572369859692788041491761441966884070766920720656315388667075393711757918470489715357370972910631660570230902303847931663468519279112975427822776765910739136758132314245051348420443054630280220206099133627762903440228134431978941535238569225134265258890562590017201353305040614002945798940930514967503517095139787464416643096250779788430635216898235454073005974041573445556624490227097185477333679034798459909860344924014848536300990220032798827442557577061512668228908764882883182459857098375689718638816472241405094984336135244838544791183669565486565325270897654005885135808246550242052703202355725555296932058819857093046145298825953660358240305704908192729445284123243458198949398681958533661276898815709372724254497430636154088147670121168975217558251656668337676772200088012586318301498979626817047622977175024188359207739466037953818278775715739416906394893483298172226043084275152097605676828464350424019101286271977246282526369555584594441578043317043913130304068820247587690241281425331090017090450201675670054513128577933729490891339103214553158168493438451198580629652282206332736857302207400351256292938962550296601607802731401285006482050378094433723354617746995339069206774054862385116403110112226763626475109397929726474410035949435697564918936492990863369192045254906980985677999116004260650506363103814153896052862956704441120172823140143636078228878129957504567248042373794219085752636690865691343679369421103717571113298911365798586227009565985803397920325957991240896365307899776762619946704137437334684813371520666447459004712941143743813027410910066008066739748435818336212549393794516612260414918262266654681656597683215027177102749782077890864964013416631321780438469645992642602334974401598367401051858247288290146011325328290717767747907028929466830934293127864801529732472839341379234469928902721697939417837264767869581416423208397267512258548100596641653384702539821609828908867788753208861484433301306630638739699149229761813503315373902957704155477763001172572557512622824471219586147519961698555479262057508326983441160677460986277390246826547869762255141209951090235461398917397546347207492095744633178851581630619322548893474692643030508101273629533238815656085574112643651203538456770864930779776498817812236168214559697324227058148017719177655948548049370998513528355497300593076030740097183317572217883651779135277916842734590300472911479930522917452623790380342933619513218748576085511494880748329748420888750436022302033648120979030586850499524050731024628118450446985511395001118781401053462016601818010588071341388727758304019707714031879463835705132723748312192676438906021130914502083098214698629278127520254089746803396930102282629355474246899637005010277797701948783364104874406542597901226405766012839535504315157730958627103628019790679579435898090118902314629598319185596262509479526297408997299534829599485793224324740314619248505473840458944904174995940083104316513256979298946365960704767963079309458699001316326769960749295149620895051026265276932688901516080395469046272978572712000064985656750572877849241803042365812850339827869648431803219705948201128164972795740681065669379700420022547765814908807510343131377272254937611785667653167974502528843265533512884093505867382610587536418718110316880598535960549937987577028626750351977389464105475924166396760191897543210556591447708474087711225812016377233801083355257206398811564356397839499907348298397824771232126073422556907954306503347951033306831851821453129907501405617305647526098499523707679715730269252017390777730951398625230771403949569922607438088540737289138578958698893208485345833798584443111830640616842786987841885495927786308359175648008556184473554079103229288050136623157229132371413643409623610327802125402133499825819491497047590565174736962510252233793404010739642427565176003437464060930626371531739966397507271412200554461908806939061277974498544194107997468651595534520791877995823130413784094828235068537171676092914363234638789980653089450922789347724708890014878246568325032515687066080159562391778106842409767354480985949877273424435263358399732751764087374855937355524828557404447134917839739646720950507837942586212555818273659463208942138195482865458793069702386251464638671971317120653723852729584406856485172763918859165432219658178066581530095108140394789761920233683730159149741254740124773401585554118221776440875357099559798197774111355743341113064538095020526677993952355561165213413970456799541475344150607203806332990690201530447900625618284897426768874045958318718854913829732733527635610792142874377086744544908299644727330885816752376192972403073179378651713253340094039167610203059847980935707491063411224982114646853175859711545584448186211887772776967416639296352863339527044055792530519287653336251426357898882647149290749995832138300531833204270800094178498160296835477014186845755393262703292901716854601535967916502046107831637979940187364484816417095458923913193178195779150503413988421913319742870905681294974215795620399116278683863547046134707668545665830463282757993215017886845236333350563325785904309086970246074644829271512441106179792772331094882211715685191576983761722587477748556602245447599040562375219149405607396642735324265231450709306977325484307160524916337866444531815589592612383395912425863441926168814135394039984926790630053796789968003700058151476794778559480669432313374519316745565636151234438459868605354733768167256802300894531872658087325793945423009280456574719769253031829378051329749898038153642218989097026271578342900883645289153199806464696221736323137824778949091724692268320511799501749761939290556674936410340697102505932375121582842912653411345077969555866097829486875924501449166797077182600114384894416962066732051539755333373577114171715950732960248826906105141117953948031995138306242907977989094270757302129958972235862856490898926415484271129387054977368263207823361804486668587242703928992565955576986102511553267310695041887574664079118620345776101748428168837609987757678185146154037868754723634363064262319958126031998851203446686134593614297155644454310920459902337341350350773266080113159262775879832726636626255189501755132227422587877038238649053467272746418156026872998101535506945041564540993660470143025471862974860384219374290785154087641454149919184535985063831363914371320884743217538286600114490224525092974940666248619853569486929202350148074826217647809940511638766354078397807579273931788253817019684064916069107065010747368868600712415808903768838746115537732066603231492416096846882913111281642730029973654292812485038227139339503001838102207755222729302093349153429334509791629589856732953948925715392128826387348076382696042045806109283010711066340475873694333642390116392672252479146723795145283257607055286539966772089238652119285919850835225017130057546402750408952568860864675001564029421426904497467137820794397172653139886017213181052456912571672452251844256583384001162131883495610823558801673692974822541940898829339255898186050804809220567991974873138868966920683327510584360925226731489266982564429195584136596336928270010552342596326882923586604682344593987287727643267606458104897332020099271635186869128352906786842617082935960525865062983249367321585893947229969548683988819073190445989403060482060085154230158388454892580151706495153633641546058620915842465615778778868054998470153313467711127245286381537381856129651143506752978251242476111171591017218343050352319360839554111030265226784102531020708648830869582384840299825122491786774939041286430821932186400508379485142589630243813412345015786886155674804701063120341991039467990322833176243049856167352735224281552257183450896484024257658739680778425889251836196250100249118113740841612402678362251141467300132071819033659928825606647102238531173472241431260938184215040520482563974837074715962976688292010661486591477636097309603690792630113334873587129431092638537712582134762017512736558718571340024805661650714249617372874582752286893310128924017757020773194918274493076182590622455395073890870467493404775482226143181007852354014318964858592971794834670231131801323286139414267959128211546061585648874566588339609369308729431762628852162762265816183818158445056492332960756658584948707757395987468776965121848568182472722092459734406760320225318733530981561597708595231981710581567694542700409694561018678735233698373772918599943048813543798854110424923687392670731941127625106048660947455140997805041316664749286892135785879274533331687758431745856204049361434518982301349613246784943527193310769519456043299993242430262732503701036190588243406741962939823518081596670841329340201584194703895964509614393302389459131027560309810871643320891274286525131642589078014726736733278683335423697144849930089382586392594992209757879050965422116639412032078298494042709860603679106988811158169142146066805617239154875904222371549806983310263630467306241505190044254268698965687163928328994744984993158820613568990540029927499673785760525937302804675045961018112816697700046715484415849343354857204461988199167265792974032285401230216414310688943068067413110665548757997152640021677589195806986454202716714539986834832904742770356519865106386501065742255193452918680136756941853279373633420536416142587954894370654229918596227500020801786685628528111576191803766780480812480472553114530885814077913418386395876377369090028897680404654812741728155975237162910457325340063383433016663888702514112740817242693516745458236425804586970318721551379946886155031966250321681498216758654755384329214271221009846004058386955223397357669233453465440883400933393786304510260477046045747438752357734099156156324086369570376091772030761967690212457544388583226078208347948202005235334842105659276670373926168091877826896169525195158646201123725015294003214555019070563777758442144741142969718799887457378848479521595457079932817678323909534540784586169908753137850299818851916805997648279985446984284875055583672146998275110360036401291959475913575090459639148524944700490184588859356628848971041302031458893858293362533636976830859605395598080050846425851693378428103980610522674856884869863943388411808029195118454121975864631391455706546564333351397189049912153110130280340929713562282912433269712196010501410543572684864563290533069138944054373122751311710369123222014797186619144321063788520597651824900404707298608566004124854440739636118575279527952437991575723962863557825693365730166053123409396203365448940551841297504451243649074643721259978168634645084849394988623466675161499793191337099348097620472726252762963384887011637528860112736290067913141674608822138842373227040307759712871782873163743581472710380806689758854239675035739657775850345251436384934264249759568060296452889740968911976944699806909267136989154222460729585134251077470616684204755649633822902315500969093474002340506689941340013540383451849336888333998233919337918839818056440474206598326268663603081281421358026051236460941992619734586444650007063694456692863621632375343369928018002680613104053841238391540710599318603813114578656181675279917463257313148850177926296861771843806964643476675663513266304885378454104079544200394867368827883062182246207708907757967798341789255476894464241864707122934497093246361189986198723961228277860530781560864100611943962740827618516789770962818184998763469447759230745761336635795707714343950969569388795084171067199953615506006436230462176001295584179725573921270484671583864066058604256706025320495059793593634989957645870659116091300529337783659906760914113949496416938591465552087586391368445475816948203633448170436845199601467571747112545228152758313397589056570746462477825272504781472403945390436916151921813227208713551989217556755813351271545778255306380518517935658391225447965052373846247347859125141671486637903760363359162749664845682862550892609541901582626430048850901098898743571134668939421009072707822438592514846065810724376728024853958152417089077646676337498560678284728381399356578328513779582257567566996384656319981581718253442852415981318651216489801317134384629058080056319324376483032774920480616471104849996515202233305457227138891286938566795715409041152356407949002344273607617396242463038592788735006335460792907631989308562320587185932810182031334764795183609087237994330301711288681400239863130621035879111885788195466886294793964863997581703679942290731659601249942613706632117026219551272599514549876924917967101712296457896126222210305517435435865189858399066544390459309239683003201870040249413429568371528130444864824302315566614949618801471852097477385904454234947052925933880106320263939759313030521742863924952603135318373269075803110634466163679592392843283156556178627787826255859677086463594748202555474826397469142917203942967626880879800280941863959160773995211509606069720327541713671089034784057118007349698503718430341445736607640381702090423317521398696390625690745967867010917850946373264340438937787231920765711186371704390771684394779500434373370698112363396897402949526640651867988087256758837405904775892872085705572340168932479172048313971762241613494217586850680825795639888565501783814522650421592076633243822054359201504339955662946060571644807881123388510144618224799341358304242519112050705307574410161431835213655815641624175824810706221345438716232768491971722307481453545327770731603043170954743188544470763660562934858722415755487703919015511141393069190280245304503358039471829250777739410997542239745789575174183287356196224321127285340290112273834785033231932418908210189940584254077326106250554204201154171280505804314785593039907238242527588494637437925522039339458526039024231424921086161493999196449887904037610228541489013353000711536858291642670781266421556384950557881752433550162022302061407300710264018127690220394267866219311605093566184995655819175215652064094920227425389987446751467351870991906448555972885317507503157806435754525607410594362896465952543880105756590559092110153661287468243247655175006552248553197716686612168087881824099569050955483820601434824485982352151539123547151132642461536369696620829679783389739781652131906321500861329411707751035139401520258905827823168973874908915697857127183452377518731302718651528887113064770828182232905499195990819251487636792556030067394339777812694152366279257033837327467320715640828036004980658147686193369148656456234186048962906214474672635169301002085916850709869556064698658487331646832738194506418981057165218166549605308300053356277437878371710951733631337638775605624165371129091027162112674208977083982551212424098473445077557960747025353523306068593847251747880638417418257433184681842490339416588863010412556424518870312566088976812310417528560350626021179060243104588258019247797051121895828128762990377587571531188421772884425590194003004393247184735903998383336482519345584292019640697853177368913430079366906209185989064393919101752845184780252667837249579790129929512164440813752533835865482617542051842261803025426857358285894101317534015219691435024528232525168459359270758512458069110165969941729036360117166088902404242974030302912295810511530836161570263039804383540837360217956712057023138215243708571233356596162221391319653719340225392152844394728200860814306929891717699229815650209917739573556575274530531012607292906362624182946092707579368927257588086494048361068606805052964336750751700701022646767956080460092806095995930690410626306436799052518404429572525081428121312366554044258685526943564087203702724606220460597978752265955785097696108436480523497857135714347372135480247169081496005841403891954503490728677293852495822161726663504317332746715618055967502361717875279336806591796860433762840919278306949343311194555191067180923128294255051420715123195638356133434204019255117563360758247764193566283775748441778623011495269090397834047669473673715573796408536487260275097930835458215684197703274939655134331438968842810144053645439857156333066807744288888650369385083959645491043840185653707536146873102701947748431759881606611691075244130046999588909416888400591350096342361782092228443456800483440667631560933654071007238964243253197051173002150113413190856445509555099619187045230166382952540534893455068750177057394849791092838892899400550106227226055091391890448171079929929301881840628745074094133479321092924043276974779157011312761084639338415151602282792672464512012283330485179743851882037460259708867926434064724063952101084424673047611257291685735590415361913440759890108347755149675175625256870641427530573535017275561259803133939519923275000697849265207137065044893639480528811782889172083581420295240111981763913352805166694359934496450610437192613108061308569942137617927136034099912124096655742362619977435344555902642021599327735757253113278050398344532011199196385417560487297279108331547415572166435134034631127634048554863049603286555733810100908612401184786132370432344580144043274616860608272383515909138350316601327517038912969864314210959137524066888059132113180093492477177929293121879497167806780932304457499639525674936916675349776716567654798111757893347841518306765432929079760240228453881936850559385052419746339428766916514539217351803475433163127221402755394579877862324381628173018537222189026357950829592473753908429156499990071504899513124133055191349241530100598453506203391704366748073791500051362607669244592185531285475011538481755180132781023074340886575547797490209888856187557918186635649344027093565705009947092546253878984626740301032725512807725474645931272585201279580981168947273458314176864044205160649084504124561862334965819086407396831899059571267279793350355033192698127195966688902093404674571582815559108361174209611166265537365258280561349110439503245488136314003599158025188826771286346770037162362761784305354945530450303269534535683063551462617395708129304217656372575412698208685473641544418318604228920790947832848665545418619338139500139936070605982120958320748681295006611620623226840523956502484239634923461793865771604876678649969997988305131509897659030370892015656249903772686723336343601896979000495036222276859809433269003649630333793218791889967221742265936645578028561826598866164710945223272756031269202135982369116248397781283031139258419878703424549329420833675061069703418251667895084971081500275595386121096593461920397948809572298178239330891463203071116590272517459580749373726963639072233862091884779012617110583159209004511624756024366767100066274130717466655306157853107388534404799210709855098779124869113367615355208806511188931978069860283981655507807023317185266875501967899426379154867816569636737172559026194048838129225450769744775815936971217756453105329320210484171877258314512937230979692483341232249199845985328804856686990029495862716788534279024768242554888647323974602369427607615532200316778944744815423717287932783405772972333471137923552313732035062497504683037714764630347400228406358815570090373078500184998697951679728657079444487066466778108256656522050085207588138989013696574218242670581778058436671415120337031195520647897923523081238063729834714092565667039110986446079901146257187466495594869544444442002845922469972294443361759617717086722443481355528602326842099629296445247072038395051922284837608909218122342825542137393968549995867721525880630477777941287508768054127458162367981959779711554948303412038495959731525726697365356089008526355325496914853521465012876284634775305971846430647439063820018132768553948957909294662295141663342707054544082692103083968981949797546218630182675380199103746408084307706647339392582209465885564882890235153349735411665335367608935081925798884071309456283526626389717796746641200437357479571711154454420240340621883601515285109968534841143057742214746836068336470475670965378971296404034761836311138183726428066761569869197059080574768033727357798702699937620451514134968643128081278572945156896528809762143924937255839657428570648322504504282837581140588954813887537764815912709430635980043288295732663231435756272694621976451244008480913615766144687264073304494706020114654134988003720579602743775985999417842558454607788540228378049069321363910535599979488972202943326780017015835180602607468270587352880649942900007390136450251013045213027739802143408924130407807871723588931839073423329752531316086084135848944789883599540648634899910288431036810978924710002873510489427704375515671367322542782878066937531408052400717712000648157005356246641166901167240445284452020300730808136355012968611521333067121276513534107815323351370174909644171215227407295168535585337846599240837506917581775668221384531521994540131105945268716466379461995670898095939816432757567589712044815400342003371799939895942236602591967662658382370951895952936780208279522474104577018893363577961321208338175485336012280954218012475394388381498787532909672792297434054592919191444369080903466462229387955919765140120663572558326948763195402796912111768979156786594549528819745975254539407693593178164648570520122570082726830072896927273041223080760716314201265888091730921399713759636963475686143212735425724267274021552267035372622861427155754051807525714980237254488920426138641603639869389519776160562663305047338020202195629285693157541236959535165647892660200225194850784070540209865706747771512263991203069808335952634276633738414174754414720058539214425423651314551552914530746778009506757369878116751411586884328351611369471430830254308093051693144291073104627961336977636245517783399318550095741793758340627853057283083320009331358400838486975668276407665030327232638470918943446597137785734629403846155823171196289482884897738572114501786679798021366654749932983011900565558780450938148194165252393542025418031356878000944385692524911707081736398387830157695283450751190541423535855216880083475010367210895507423269032041463731883217130074861174280462571835765141550853677430606544985075137162795553189971977679680419923318012047193476624415926989573146731468006110910176332817383475031127692958820123562880355133590796833999361579979365165673509793113839206151942967668117610512709746414039184788859647628162703440400334813273350300951087402580959341901558967321491292164437947995804452819985028656749703050733241983849055559697441457760172535009682252768566955057103560417904347630388970031843000403421556339435265715224148012367217984236700362068430449192343377874616857962202232433714650060561909232032359166106505631608070541084030087991854793863115135068122881927440024700552570079129458928411412423058026105710821717691905718003492633583494632500552836292607806284849380892132791184892714059292465278498782275481352331301754793207214460125675682939207004706652114659628788182983129012571140772490541844348372881347285439445698199590781205017005374540042171694924618976954479388502037901919551013057852429397203107725945929459067200822254943055999728508615663098975406716672196401764050652878419866829035481268584919244716702836321173271552724018443138098319785265739848900954787952922325166461742520068629110808407462015596569922485425416737652060503260330964452903101556429929729482514744904599209239822107168997534976367251336938627556551072218668200486358923696513764661671176408373779710034214639406004385056720247474196069212783796629970709453297783362831330382621977481924405834322125042758140147160018732170058616678904414174654941573834853627848785091122405157063641245771396852116153234497860641756126609705637600816588874307166996329664096848653315968792962163629841796722186795052261244231755180581953894036111472629207022762790936787956668268325812172151238956240167460570781903882179135804291450385624398561072427541844125923205695095905449339343517332037917119036194698224841840479292229147578288844484471649527460002406181687574938320337019448957517755713653048104568161314953677434276449682289179127785605100945726051316478316141010464894322837930060960681114257959962298488091814405641095183123012360165947024277154805414874772034571397568923732018365145807531698691993642979676119893066746403409795832822743787869446600519251615798818503373284855121980414724672082664232452712787504081575584693724009468832191622841608705062826104834169931267007613652504319162326174148313081199831827893948494135784430262776808175579904802072035279401805728627290412578190033929745688670522946328958653122622508648893512015909939130231178832445708091948333330741907973906457689976886713758692199254617699153594072385907042063331472190393419642861742854526437082885887715059094463026458995093603790247059431695269992225296678377682772767485597934984234857168014784696716948582797294232724903606340993543525298471670183483548572483645371962308122338914190746506364843881825814583283357505665894989394991783047439562910439528972362809893393563325570683749090776736712739293483956435499161162362998885952624935628428890621423406864636886932756633410949502786298731274453652687530159432127108278035692992054336810938772931728587050755277991514205467246736560558238918233940535327136766670653914355971403101655773908888317599599883328043390381265552839043812114804522360225040505722883945911328474735879500175681076420274919883557471504940066031745275600413691765940082464123817571514597153006279740245326735754976402938733144940545627456044660019632442690459272723493120971192302499871253333860639397576131141414181766231293294591305685738544103451630161794316981515860823374465488977422214626799928616773908323103950039502458389472006413089944460758823937075504632581785255400017982041781023132414467105939923763425410751059978944977217107865099944692376510286150800795988572221336694032486765567219038596584742639350842036654442099244322489094183065233501679507855560275868437774086985278492203168343273694792119268592722194292126027988149443094465988980361031492574572100414457926046424839357133048025054385591287040702568005220671805504535600255714007926759501749081080028380633842492327729774068217468867801034934950972472448984743975055738571475426367784302883663177942870976270029423731012814606398292927789371043399185918642300262583067824685772755335247882838380438202975203168059773225670952839789245078766900679759065828555940923338405185611885656948094765400095878306145917965328728722448141986775688883864801011006298389405453110186837835447323114085345388484870203095543750404772442773936730002120172373606848986405543308417955361656596117577050807528791650445834519599677598168282182287521688526513133923267145006244647026888317415716549320781702739211808307076416361484449908012918593853990700439463411623543889473845608334235193931014237404525934299646071555044561424014049377438659082527344347451701515944433621578275508917203425861053895228598796227011899129397573171857685779124772562650647507652243631603003039268222234929739927762559357482080797412456921376926613868775424449325246802745910748647829780896623762260409729905725870953378757152203911178829852210153173621725197535264167303934735992521569362128058790112100675349676781761687400499116496505837477517510840839215169719864482917707190238982491194835659762751582183340626714278624831907891730546936893964278280031266236147148949735026010930603407902885778927131479713371262023060277595200479142259287719029676538590127300532069633852082252886291400330802480255645437290322666661871018969443060181222251484606544363088755530707249544831614372123054883403600694605155016925313887691852351547785836272652131752612272850797727148922223301195795335217886177153645498363653931685265906739063577074547751224147841427084300734090722064354751794505045805902089052642829558850621087215396440658212877527645863181979225852094389332240562930773488567395172411012389531565650273529114065332563872650304618193907459858263976515576814989334220608881871548335535555056566072086541381147963399824233505635445061465068172775851819652969005235941675780457000163832248922260999665302654982032706592861980800434476492756551900655333950244357860832988787140183426646082966630059613903417514032657020694162796387753357928934473271156667571785894126402504664547923882919677348587692626499029119831322010044888035591878749176828769343707800332146029599526559973332604163217823463041474890032114974614928949034968980817179761113019471046384466284650134838606612908755279760535582346649113146220491249066240810385216338584738784399399610868679112029780260951677504466761866285395097538482217102574564215701870426151944820209949257641315992602190271284562331685692389494391947525542786486898224996473850621407293010377711370618400547219335447617162298861596048550089997939271084768752666915267570867513235202312897134501445054696153648109169062811638426356225888242964486081198744882647704069841224172399666716031937852171678056518960013107848360331993523132449368757205912597142578641488300514185737507411525056048034726196847979243473837265832209237570782458865118818797235430565173756265800980006163778583990674630834200283604450511410034357487282973772631677674685032033266084084000370482082789907318659013746596185005997477683403997948488717675363830215936019892114980705789877901226241492836173563117857146128132945972953573066835673649202977595678071084652721965011214510444341092679494715199570030123295852846999401470340255436499943756675107974621456240171826296129501046626922894677746104950940083264758486775003979705254821663910277077263005265214446301251616909778613965159056011680842473382985439939154383048448578391412226587303771280649491077351393934646678905184368579344425149077220212633958513188333905546127506163858373733401885492816081318989708936555994387428901445521708216662028659798798187352073932177586185662017359729205933091731866209086230517616543514193711302643281498984556090301941740550728920361805090095884366279180738662155790477953500734478058643819025965123342950180559422773331424726794289744316387629866730005547555837892776773386397456161290636921811034962749156922086746758918771260200863417023721400040573954993578310252596716671263577402234841634199881110824028945632792056889114584925487320534108019122288657380357487733366950972867980889896849367031579956119741438687056087296995004138542999009889232261243729470750502263890436704296995111926357677197641925009147962205367824048731878392173703941840046348768964729063518158263218996428271152640630878143777482111785611001437292157789246328286135366129803614774139635762937896731790193544487579227684071895457137061341512531103197693047156651531949251842026246978373014898639793121655719317932785013251094317549706552189162778478752787973711530656471877175514025112252828593935383618974818928112226746455699600426574197099402899109702608829634216957094615888514711939224017040902363493876356010032784683888525486544424154678618932970553187861349878678277610036812616907204314133087310178648396802207836279926561559763884530542933022202375931555876229694231367029312721905478307511405186686947315122928607181296131856115532669457325118397975903501371447083682343061687022016680708005187232322934902539011689713564926742580988018663603752924599541839432277440708903610447433635018824640900383791503075856741300025265121796476997585370609813801175850102236650652688418623272375809835432740519360872376054982125231742148499975295857749418589798457867798357971169096533137447580342084461263047900085354039037795014667332961031589090146582576944854937448260438622260823893812467857135448707936392127195943255874012532287638557197382801331009064421202299929066676376427890119690937144332272348408775104469391537212454235810671873476032469539395803348414267480330451693668123095957649311614221532672555980994367418640596536079981724287784675819873769618562039799754781036339717006635344873946968980501894528670376089145070238015015177427003749574837099955860463146881423031374049396749670423988605624184857339761070658180892412399477344579197123555627613854883451955233232378715102300631186174733976847482416023908873658648906665961204327011280926180740814615123256078639615417490053288625949892605718254394712276002111877148885800702713546590165435496518901385585505658866819994580567719639433929553706068203873637057124694559872983700673838222616051303379474311432241729084550428908630551024601711012147811703167716856597229514397470043258602103176647892033870614188249037587272801651379574877052269842635233666431517051774041123127086421867791201224415318150832304685703267787132627206912807367744061219578893371004766855340867726421642570729848066256893794008437783692587348390849509491933057294408041364843694581901150246924932066822409571651170309279518391476918403489605738028704597730585360137142821795804924148836070552124554995336873313096057475515154751704222219263119986960805933892152668089145129815288084875674266262698995982605442112982883825228009691654986308952365465074870031733285373188387793595380856132835589268156231186587740208839801860480058650496899369518103805693840368101133214755180717539482850563583770448422172289141762975124238515946115840602042682212083348966185486271334339331548070088449516335910725296670736397939714373250483104092347284269490553028375624959551052033046101384979733208085351526053111511207096731190377491888164317687875956429124801814824950787043295904441073410987408913141401020953235601433680777465251103904829180812799810333932648795892518045317970131745045900858867243598127080286125959689791169004632402046291023202606830564620195954539042527245484819137015765246664069806748191229614641794836025647260969208549602649358341418804957528924788769466737007691450902856362171474248729814052153406179994182143298280896792004182943309005045535371295108108871304276802182166696124079694632932729541828794124542684514582597821855086540383420570499076991021963230802257543354834153275225011266952608575256530608555426523874893232023773386299987111439455578167651351642674922921376312782867357804071401704282000252459817155102910942732457005942057382215243169074481067982976894361036771621998491603857111339206793408342215972304446293317257904700845305358163289903105806348145613183187324510330429568279967859327377465277487932489047110409103501706590604332486620563871464741612961599774883280382957877975864081766316468088426571202966512171446938241233372328763301727972906814243797110875077370839570704679853090355344444986172481597259886538154191064172067805346685041378183328809881466184933697972948434651076028194699952531558807024148624703240913542251594678616365220294776578013944071597319546772627086697721808411092810536870662119913600591703432173452816911387226749042873486864889338381041535327664924021893310748741069836547539478648519376935871209833086912012867442440544450813483118682487526403204223693796937124606720612347924738284498189487433582062790662545562852136654460031523680766337907972419624529792124465662588602716167806223047864372711309063384239825006237440810151142922046582167270911774785124238796065838157641437450318496169816834690654679048179479636428466734927426401757059286324700845440216657995083672463877327131422198668834684754893571552164616537374718460327604918292635163857034613101879713988487344777505174534851860516878978805485085453317631932610697623036303636863945226430730982549140479806540775975196442972201736404127569643411818593241024386593605970795946342228387896232447516547492553041908643018787989714314863778071830886487542106192835418849264509294358859153512563876428701247597408322245291301744352346814488449100261940438932830623654149269543587560807342547412210209561133113035202478052487290825224597314630925805883381339543104355226728880011827407451609485531344314032959080838372977187795033475132695098972518960707245465668354832499000356135779985477397077144011072226496448511116159771555753171747084496735611916177579257338603458899112341406160346331194199320489718183704130137703667394870966300944647760275121984836377881244351392337718512011969921312735690189374924828205596881710081337466593634184913656037266005749400569576127495666616777071338395388231355207393283066268246679460564843675669320220430678053169772275889356937552944566924224500406311309849121587159033662688471682760877284717884714351800742690766121787308242007582855981200938583263103738321078100545976590655587241875492933164928248547064831807403031656924318980105518137848314706718035824328359992625660078225546967848755262037748048603225602650000215340505188304528567638574026201704137128584626521491733287676390553872843040253263549178199517982322385889314800041882293239940395361544948522536263092860600542733421725948137611567689884803975035911530527507467180189170500813553620403577724646260012938378719053519163742271021799012937387611455458363349672445166539688506535097729578511652268160565811635956067731542557970083223317895091942790998474032610662521128361561657874457408131703827860306445190786226580382627925313527372393499142253591054503954422310923747623077693136883533180310149143730954317273616142100478592028567982868831611531705550977403440228795392599770854826091562233420047790345710107267940051816909701360435360304566321878210782165438542356048857101574791771382851576591872040944103953694856022060815630383976629110755023283060223815698960958215243115575162902370065023422913078886029275605811200953375590181574592871656060731486206132367689097096559713206046081954976319728816707902550793669936531101085502540261447610634368433542182922239012336103745976843423038961952546304467805335969589186886433027871211044343626749116749853181638143132086601261483787266055960126956885842038276253234074709746623227689318468574816350997715534084992628696909931015201647885962589182303753386204968323431789213397985615962717594951857261148970606190746249481394825799701949813364695838719080873101024151372059848214077003890223835323292635488831706262729373828071131764466248914172175678482504622980125534787154020636718026935433545291289443512342928298561013262566023064648897659458827566838751248289295932078685482948539083042930725564467736788543370575021400987608378120284931314195319675957091318459051915326179304830100240178139101562507172654902839623577008891330943663698434969954380366452973098778164475100412221469359938945682620675829440598219198142093722145491256092753822705002559684595105845516751239122981352564137706398580486517633930970391772376387508357479519290978818546721050870456543811089607836999801520300206015851535013168568838992398237454820705914219053380161039871500864047959498853905280937454964193847427575381489243475679343091193364132640508876791852760857585302524914562177906668363740543318242922694401125080324325477992521225826639886212579100872867891049302589054559052714714640410320526879429072313423486940109990055154482257494329377585000853417215702461607195880834289069531180156870455674472736078642225898070243221143090670122638201568519599269553393746672764073514356765111141865375066666541772171608291794232636122268805515550338623745781381979863199823479696922294796983997499880428976440844116510194211893517292426528074530387748717321767272927484833820255648825345109085578824170231471842949834355777371791417529122752517565328996672529210901757367399118752353504703914915154401748799493386700538738320734905925133159037021386462824333839678116191169844666517692975737534306441645292957150672412932402817038143307388818286349165586858343855729660888882600575698505082914426284573196447452511101013833088523274527197475012403971025103242798456016656403788536478250448848001015840970842437162911052323863150978181974743166998066692847725671809637264706139146790574837195367195351270482188186045024456683857629214201414522263808212611480337728314241712018810013674448012591869625249382906912086619126177968192187974305743805667775857144737363972455759674653413310063800855773384644985441486192372002381037378737344559849989627689210946851573837421929634425998131951807188108910950027213606517821518994725272618493930966587560662196098398857478342559811669558958794374993547382942976416347808352351788412413758348070059198117048643524949467178580674658525819613890620952867378426796221408551105223417404569512256873243051802408020479060859549289180735025764770409321572803456164179101621369289644035652975968241149220549503272898609504746203846319798023302794830532098749101455642294657592678074404378001629359923044671556905089859284897918542479522609403768021067544488372925036564293685806797747335358644881453579527615678234516221600906439068880405366824678501721016749512311013076063763553172641112731573580009651262060486386874501394548185692587186406663740677353319095041298998382826788208961451336682433781391024675915984146476098405940866567192359121067281499871709866962003057386426331406662340204516762105641611335289151240130249090314731581491400322905250614791253213340396130982469360462311737891473781507690910420199300616099042612639004307175471591905453645460708313857002337547533884113841446661530412106591630319976637120009339536018915818170244000398161809924872188008713958469305925501551821849013989373458116426034763829172927673275505213990357608433305231435508191668833608414260513302507725909855975357803702213530725159895461061651481438028808073945869532805053220341040261285624948485552427873146944909715553216315748641943919821306892341230135238626196723084284576627831336746147019315250755629347846294408071245048327549318907691920642094250883236156764901469994830918096181529994837925015726776742052982058063762964730382097589000739860864786240551926745060851827558880811762060488617986994983326941333914156089192170960030160787544493177541380288996789108525731640928935819447670650823566804205574554974816521855990191852623153330020738996112861398238607581824125520060902330304663429929891591350570287275347730170683943557213393746573811819371586103434461309076181311987313438437904609034734621846621020803254858999450166111520452556952403175995744358465513957112214061038133208689072748900593467996347294757359585143983241387514494352730991275127821131953386015527997247341787040431185794394612715968939461977505342769224705384560034366312734531196909929787443254090627088585445810037716999880882822751745408730915935307767734183781214574857990954259962147002354817022730642552073549442569143373645183077114628161759689654953371348295222006411463439282199634870899957706189196595348931020893481834023081621973259075552242393146841584963077617312000447891337151072210565943329575498900851396944892464225319730999523827646098893640971024850481401022857376094797375927727214852357296731514989849161294139110559496963258367287892802530573767332810384560868172672015839661766716109824171924853886523096374994532943561132936913821856302145736499760998056733753174873274589677453098939185789665674151378582201291142500388914793110844152789514648363700462793320944888004560017125929983898978341297970412344519420530485210933029269542448297521555489031238822584501690983043720393255159320235888902805553598098545848866755371655043529535692741936480299464678732494974333099905105101987279341231862149801327166871381625712190358049860744859579517340149257446834032103980562627548026258831064355797602638532820155797193674333598889796793138116855806609392408586041600345862639896483860954092066137833323204033235726401052578143523192298861664366796231239734609790264682669900135076530335145836350488405485039651310993388440894589037650094710968086806517589457201788518187487667973472146658739638974784277194794188887241018089690862855194493687417038359599021053954936830549338630489757099711878922762197561945925247455894704809048264931642439157658835360949219968923131507747263075189492817086493179904273226489155231033785790871127110887613156966613360705823833764676257919469746993157989214413372564596364805618503082831690887473385045670680233564463495668437955161520793906050169169028058477497137133391042604318568102310744780878405455553693669003052011967792197913274412817701043265901591424103670535458693451406694839548567509699691136742063249819605691036871217919006277417356701406829119161230071083709555349596417224464053057512767047090310865941082289182152137259699807933181520532006674003419817976523157587751397188194000787714281168022216927333871867210395802655364332469952988866142917567516696746026415969118980712135128761321861237091440642674703506661462108184066414782888342740264459648639924433898221839109567356699760635217598499483766628201127612629804918614044142337569694209617830547413282334896605377998892390286125713748734424306470725105394422466572318876342821165359087725022261925025788240065934658880640628791974349806912027207425713276353152032550427446647090507588759908769704723852607824939878177562301890331764375164484345665053989247390302347114321590029391744956811947640947333191112021031700911592296765990402704453375170589900599952705901657055987926296843264808429186885484301385882598327759233630072021271797502289667516888278929108278604026229877370646129916678054786645099535478692392203078923797933883228555212971074746697081560886376976934672770036532501959126200190690410749719721885072923407402057911031745396267173313805295024052982063663759336356149169485427388111994618478655226632365098666399638552341638037869654992354546671102010997419634247401361470580514301047904138565006612523828491696021212412440152798911363903570215550024375968685327795632634992936473279320226375841328008813211197159997220664703149979169992785972512982095549989659551290958163105736744334937602148807306234657232173831040134262817186740139482771131279514868237859681197093028037904184263460432253264893124556945040576794074035537887932791422407937053623228533779273862817715752628870442422738250188982533592654922053992275459284419591490916140158660200490487382887281907890038874550301296451191084460662126730338714145699181588095269806631572353200212710078896757687921274816170388460176888803890755610457242411035102916007909660799262523293577946935050481254486283768156715278717718524017331478906209736302594099731666224952064484998235944738160197185311891577759118199923639230330860214046399805861746054944887275600606932759060923210337720931398136768031130109777621815411441724131958299351789034342429528660123146718681348258084968707942439396288085263954077886954979066087024275510582429418701402538711842664369048390872575452182989159447853577419335834175653293016049218354404502854274779256938210765048452728762398397135743943345414514505702331949933356019538875412141053628947728309184618175155638178264697880236322983708035508302946069236198045820432422137827765712766616390833634308250509273981884582052070989781328070262010026604361832834007295186747593855290135041736008728488083894455022973902167522856367803791548320654301701935457841196011315942748073666125051169369391449551259107877945505808471263318205038766099291421443106447606435216073528382696363246590444065521319924691436679318323332345271577389504527408420342067672543596607643584881938675896965014409329390311538567190481863928983779109337123546442660617352667439007758862053090505710146372546820734326208234000804119455719542692526257310667654852537161751951087908297334419307433436179091335051077382611762740837895543717343114381338066325798583907342828868804666839952541527042360662529410303302959187494481679269256944600936448576679614853583777152618899702565214843848421321735323475111972029339717141646180998708675765138994336254473615866901849411532120440747302767246052758523758860579547500645383386053000303459775412107179220573920204941610734670523605325495776957511533695857839504888930773271053651003562449472603632887656024382948844241603735240623958736629516930200487589587212969676110123878046368639964963625054061468433057424074562810111134462042292729947851944876382480695926295674298045486780228713962278393922365240739386817010920715838863825881983364781111337176869358405886971024425833853942873105831086991847484574263605933199839147694000163745043767336542840803877585738495324385394335968120354532850386098193993697534882324508615300076449854461782440567427546936605615388122987119983248406377357718283475078936226289008896364060963592394781596063605266705640042346813161942085454173177078455822826657412451497999025171375790515757153450916745974226868433736986034811546411771233198966562781779077915755887518159964220917868421341178566955735119085413566769297102467911160998764962063570955502772947039568972742784159034620827632071005887207044890271424188898285239548564134558778928996320132021272940924652667280443227768216238296257647172575312064129468827709698476706561832900913599617302922205549358088952382665684190060849241914830327039400948201923112659599227704541385880522628419805495592025843770552837045090643837321603574543578989498528135328337132750214075932045575748761709931672662262220996275800465778786081156626534073377198842226229562885304331023140562809089250702657685655519666710504809994111836403574518693225573604673021494598360372915179663867819755520346508894658391779767052606322945697449153294645178384560554990933428719883875350960606476586935101278998797909002528979125604264700784299707478013026916529181235672681684304055970408805898581104844089719400235934881212065777023831811622961013520488591017088610659747567441184802433115418679765079985842225880832478684153116132452961042297588726552338869990236445007079453324216548790928450897934221279339412875589312921305360994839558512378870351340812276675408836382094201090930592642106985668194379393606425136883181650030151251801780487075149700009166227843778300308465573934561103400436816001434563824568163202088151599474379784130505692080407927085870763467712565002323526132059893643024596308399380088293084726302028017112934508143104053368270743375790861973346179518589876893521972022999688307487560668208926792591971106416516114895591384068786953546778573847522114424896418738415894212705702910320157123136997526188452443390192879606247620599621428131747374703735827818097760096395626062280434360086101380417874073313352354996920425207025134831605792875341203964553969327224990412077184352761003979796740019942312007339118293281916151812792400160231232599510969896016937276610733742343785688892899079764999636929329063555256303791468152837046159088780755532067175167759883778402184545782721243733568565088221239112608869067191497900010481326316761957807931673212798695163459159997161483171426108006413353304986555671173808562050689442970676525649039346817372943754534827897245394839142586829827985543439123855276788549377499726530535164114392318645258354859411599956599065357588085983750265703394520966323805122255112035210007475648782566013111366924654430307745877438942320268300409740360444503841542297788322455403706161607849606048189514873358851420627577835452988485963924694001323507380555716259313787635665594302568055989573377259746205776598560114292325290336743149357748240223897406576316918590559550851704805240767669464563748845573853446493975739768138747105034353802491230289716769879252497643553658004648123737076414731689497763258674673399944777829123702987377987491672301455321711997064129299931156865527309623233769847504680166078529712033054050668527277681340133096045855042962194637352887651705918371707304413246219498837971947433303942485771277418137462586995771591817828532558928903151760092554516522539860384705412425241252822800210867771622065466221435705861752845024876387932317073368016045893664719442506887266882249754915773591448760391308151497661253251365518328402614172999195857214843277010565792429806224000608880718500017382993648033531496326140267768971563202057803022474061055569682706695190393065674163886752984455544928438192409147964213930873782240240825934805159366060600863831685002738271185756714077005606812869594913567528136888805337718863841740483184297262262142628239798518748962933808755039467843528845799817965013228756368424902704470218077804330371902085019138737616724376000970103405083299428787333168281337113453308223213488610862407746251743185461185134158747543186112901292587340659554151498224391004237167217406462966032177475642136540717620658104011951273922648758551639267358171153568555283356759126094739164372239721937257644480651833438103162699293747064716316699124230603963106518657630004443846893355540014287617044608441316886545549914959714121541211729954078158225314939669564186855644466931132589605410404020297577064677171014276978459142768907998741542406782786872049418186797480385432741074233203150893158074364922813856895884426105396248026680964721811784564820481386169366736224200569448795627798136318665095380399395814439730726147292749692202179488464829493831630612826096649377635655981247408153333955121352431071485433270075881884656668906549244601334851785725629909438460863189487828015591090289892939589285248635518825720936995550415645545577974755732448194587302219436321065920899417597083092567275783197399376065705893757751178379614627216873150505797968258460160139131322821185931226921834594268713176875705534466530202973739393609962815268327568850294813174479336285758420629606172452885752802309869584794174965601328716491047423661494470752434524319779881136947287831999134445541625388275653264215739197679374394198074730966432415876636513025413411266320990768607084539264811782313401668035654352305557846712253052389966695972701521359845819138486698570845067407961999108886799835480427825789308042483917970198806574811592290384110617214596721882819393840367490781833070794017692100640695683864859296738099686104933451045211406350367271937342208654889996916717649196416011544004155125409229830991663730010435843634835167101317918867355275326394808586205355646867088152582479969722767872363696820455348795998811959233602595655871218606465746048585413265515063366279968623150784360792513243561440988998429562935869150458171123625469835302221569362108519992028046556042834292341926967064623650419362120472227552684807685287294867357242422731815141625981932479640081612217014321958663770216337519451418927890068700768317954873286122097149742843022884226260814733354313713482269029741464104790364417914980915162935554430420424079531793217203163009819951767271508220491760699413423577530060500914957166976652401934044611360526204760164862248011663093931906036384529073306726565382239320513271243485539450106794093258599946472024690649290085601354848392854746673402637996882290505787418900407473683104750697603579305510531111892228496813896128652116498887158903237637240840047087740193036765794109245338098534418768114447142343930752415848504410532503138226141656111323251228554935946320642515997515784769527395818030029277634471111506777747565961696136348461146005293395508609641868116112621346441202616184304940541450017291592021414382863618346183458757960253609749714648499420750465532908020328346403523761347783361879477237614702041630241038645116654938858522451518872628955740409083141210909842348579622374054198236280433464703397119981171500648425819746774431584514301509988749173464298811632255194564973418223600506178558667722949423892417490841493822905922991643109995691498515335028133020953617861918810947655644070366505154601620244883800242845195236190839720474536283516701154746871862029014982247737007969031571661321922538627562440583088927862903379346758629647964956427719299554074015146360104012315082890942313085681782142037517121020494170092041889124058007052952529115729114948913773782742450050824365323438089499580107952134532604253317446656980010595381840497586660815192027659110482288467724021316108809679103535273260478726369308015512515745514229127269117104002479062719886661359720670959840224307376210248069170150767403940145233636387931607526917882915916015881938192455171660563029656829844056598050822523847568841083742483500415054829992866808324778233217830160771340585502900815603195811028190420886192907814694422280868523743299662349168820031765791899361713103003466014220403652367617998991038570117058339079388033145252586266531088638685854191315291450780683748561197037556875755566741353521456339873897230298231427168331616550196731125990983578283325147085231841431908826421573651191273278620787228584926166639279867099558307651144236095361884658752546066355394009896118283487712591835757853956541059307274706183693709301913914006693740757322473975380280527674940483760221656101145086348929872827669562858355162948291272365578116205708914516781227551453139346573008676464924877615487699672191564204416353999426794682239374715135577699724278582535689846111780002120965116376637585806311818660838241815380928601228120961498041826295415170713093956394260794639146539362530662319859306780576076459616263656395002435287371332788060468340607670661823782996868356054190415542775943346808732708606406485245709806201330454020368573172992593447059277113427989992796382813225390966350466485177322356109919182531178679083433351263742044185698878397974100106576398060988628278772042034506330048528134501247926112900625367642891111360705534559500203231173748586199514406411592126200167884235240193678535456811258634096352780582813805127845659061902218789004758222596356911235690088500897725571054912469444388512053861314963415684758443071909767713827002340655160093469735251431127621483246786479334383033403310289742106690313033433798115189045098650920476761134895758145361041100988672425823321689412995639370137494143597979789312874072303649086330382185238171380487672805604260387755715952805363150790595478647795846645291285162862807660202140907458345603733842481438261161564349080350414206285271439632840655421768551524450683836197236209444566776276175563127598796246811150081164268295448758392378316873492770799963743648737051952508972808250727676963959370092830282051841082203196479812792459982787706013324840033577091832833989091532792717277187898535608004719760958051164393876530816107137721824757152083824230993012981875912301365229986259636690818268320870915308554075345664368708511907120786531307726679812225787010847432160300735071954241876980860110402844608618354759054460705993921196882787445161949162476365458837791798284823826594092878295756165781312264138670547426236279465435161859423466497819644040079162409210507152075516980953254181857783170241411442949945962076631278841096478798849370458259173553688238084471330693816940423809684419562407889841539810233438142552330461179774422270086537361894677574718278728711047590304355609137720727569635492503024600587126500510295497927569770486126487232948149494237668010608543021580636204493756472188786197970990854511944085601433379583229034277820452400098480135626799956426819855849190712547153837145622987558019809629294085344325115826400341131523441386409214015522843964067686821580676461896518505801973720691216155936816595173042496198890732368107189025960090770890995550112997602173236453881481487919975345828154905310842070969568396463413930408335215325056022928069458514116452927477853860869676723337403414881205995371457174746918895018518120794410875103644183393550692557840253748879409240543518587437953333987316650838331041714389093679987318902349341370488631646875700466397400985991200046469162654104613764107994613006784197022106969104074883581704670662424580064238037663667254734205399776097501028460396858367051856038340147389932746061265582502104574553347868659997428524187213067018650899987219742068546510359327149911838005899207046312618779646651902965648053417536081209740431041919422376335146998629613410624937452056704834457889511906974173665884541270304769376849573942066492929201255419639141609341748966367681608091827400114701787203877681637932261365300412469858749622677140317681739306651596446627385120760760809399007937153271818813609814877545142661351902543984741255540947275144896651858842799263736894852954937105134174854328234379647765594972205686431395984162623968466968999066095920808884080209243298481818864090522304069771430679992547165394681288237723107191570426833022824457279578347798499911824393384937695777183784958940191169799867739964435206010986471844591822784200167359873228836270689053132785112027671347268228204012501825887968498473142608113757093071109105735605617478191144871826487287128876145400447928964751072799586712972585091167870400429019408548900895006251274973074966418418622259946900957805033762350339793016911464396218844628140933402848347643806815116178985376629347347813689735391947754395158127064929509324221450057865885897031278950405786479250793647940815823267653613112241049397945257953265337880682857079363693014661330328974723208443508880876837110723413543361675975695820046858590778264735726276932216024765729673368791533491385579315288297065527948531608509767807266606179209213411898190235218474711763714453913175996341322445495385715838695488724950096038171996087235617740764302403893254020254979454806460359815282785426163861509606792398691543951044214526523169027965614310608357668638628761894052452948426603898108532340752128364761249474443722353541950009632580133198741335088234824587321584676748870659808878349410665381837709509191063775001060363496576924204617384493251692452569126274153652700329262195592294996597846211645496301323871703619708363934440856547093345262827841029082546603041728280944839046912922120952098030399123813524711193603074278202800915881922470688450662494848382438653527078692911358858988712216981502025350892683753324061215895257912624807735318172624634112775072727679648385255049479150643920286369158930220611697246126162664815329878491536340200349199953493599249104555642244941668054869167526696556348160052105252316387972826388787457301283568588645473854852315794969914151752267096678030421723901468175801461183906135710198320716095869306359918588811003023522674086623092075226254076629099873680571372453258478288594890792169898026002239066423475297620560882743575020720651277500775664169733752834712832958796729744800053954560380829661810494099973176035713733795100917098473060990842805514439639785181248748463064580838581103034785678735124885295482990363955648779831371338261992622535936959312049143540306239398159262961934174993264299377759134962605438656063015809862241512280104033734766830853990857438764399832236547714274472062788794446727773164752307773184465292368150659827365223526702250536679802554308912657171890650430234074877332932380088906531845452721233542616373211668098732930228833375823220697442110038800212340017914627976661939568419071169968410327038010340125587524096007980304569137132856334426897156150871206640137749808238867306768866081653297750233426140460656336626114979058386864523784451665435998972510335841303390224835641940795502491124431068755445625245755898170974282202587569217664753925576239654690952780764534141371881717535899570788957346899221451332011060706442359738259793490426320914506948103303933894934059565875757014911110179153491197962966916252844513376556777245748565063292624539422032889510296438223563049927400655793863325789229303147222465339862528390240334698713922926511371373355088265383243865549949322036848806898212620400819785334913573696423990371684661634886132256472607744498618842424863820290987756446182025335194305134105299928563467105377308817639113355219393420457867913400402436733117406820861755269271149441301382344310615416077944255785232676687989261246527861224913613108000417163960811108416682963299457311299011390676860648144371702441016054736050602962825279481145314622988024943000273079083844186648554112527055317466458640488026668866096972883156510189229072726261681725560899613037254782053001502553555614828225145295199157570099960235597683323029241480453196608701948264760650415788984528402622342250410999660643444011582059741000277062941199140846501935928535232715825225220255947315980779109827466173733278316171815860674554677537723480525829175415737546262523277306973092964427823706495670479883267644091496514769588591785194885100461619699072882890712712728134484438629890038609025919402691167969157735831887373186141305427721329120389489696782937594761876664625795577406439675117844081646665917908673778202395659921719491787600243930932296462837806016901787930209527520978371003082070518163057038447200619678669015798095788541674456199848871491847499959159517932161400677085852057948679789990430008441738678405154484776644944969223044492660864134396609998016638289984103910025387573213859627665876325290767462925216478174261927424393094593093912932487256250009065533116142195495735088756916312198022494136951199360579286777986356815511154273052829357000001050014873840630682670220703019228170258330773219008734161212454426063692287771658546576906311293328792149055226981106640349467148601132377181991368711605794063507481958455150437011095375916926503510150240182434535363584688249141693466655892515994706370466755446233600192560538002341052573011714842846119364944685668051006760710857114016606123603833739620845245349921069788484437476722131163179677983222496912566432738853482895273221457912961977018667250145705125212574293596966989624417401930201064070236043187694837095866141176994928574697061873565163302144812924138837736805744880228375459599839663199762728136865222086412662013404436392554207332411136243135241585466648547475110193346608585433840858983263132829169399527838699468225154936301575743431445499684889703290393186814637055588061377827302372735037770628580211580126178470954092531597706605747211479656322985042505917222103529188661085241614714336554085519620185829987465933365261313452230636186371903970453904147713334407717252708411763047017335461968857000528636501059388244113972473757251714784919454358963966419079182652234770357537616918225296858476097503324586874503324693138175321166534387879844198388755192765090549151998844895089844193018611892881471848648331073151596169225645634176876306832135152012611194567584030238727521440414677041888865377373295311333998914714536981853902092435727931423747561847237384931969627855207838426288531321094137593578481262507285940909734918625955145528261030820124248935989949086958899799133114775534616532640698743160250912792418807716613905589662132641263987525113787339235100740594752504690022646366800844272541665340898082460016970471412427913351430068362881636294966793426455597649090243623397831756981221161132035789443856822567531793337255333434319398762497322707338168460308499818068091024646365161338664193127225968181194035001762465093006509125994769790177501927228083284150817781515540426097812869493439387623988436586789895673478173681025236964625496673102576473929388127627993546934019324236463295221641774250125113621033988124653160939961800264003816531068482976161059066507371762727629712461890441534394997330010068511583191983332577527818013448360881974020900997737926907169017071822161003193610741588557411308997805051991420614414707587822721637957069358456457652204968172870205918100162070599756368326127369389319187786573334984813130598003858384595694318500593650629454370677562129747583551492094509765092350425104932621777377710434868073293986764383369045781302208707414973560883607485376595729103011047946059968164794185502371400432737016316389931580413293680969747580575042197060833372028228317829612976816094749969431223093413040078695232225635858529570313003329960809869984333977175346846413807550415185134941339687204645979286136939806935186918056571754659054007344865138654720108313410186445640748001429293314191241595320048857677290558388708072056828726913042630523186791520041616607849561348285563478970501150556641899499078545562327079766031957889327853006618707123306726600795440270001023236333767577752650611024476079158999926801875483691514274590365618320668989191603138534624371525683586325313736678691258157780156926807450941155760273670817138657465114806569680042533573980931727550450346551268216686456702906512577589964452991899974698852693318194969199290778405675766458712793932553393264230490606083740977097434745994969301820916929855217575610748265474840372777927458171373978133683820050062089025938479622314888474956651416167253286627887966272657439288108399546970495416008436314750516037250761592029628620979536008152808853374656728346829207855782651088047760706595426789510241784414947221882383974394689090452964148363907800952840136798316910146787570546099987064355786149345684549924455787173166111569082367718872657109053020245544870369547154933404625253138369056041331349995806152955333571596419662674091520623151914962994064841848725991649270812791102591347468521533209843794150453179114110228145660326802772097857222430080911314808593579480050468479007580017916669893597428697449056159116984650127604035147943791296246409301388577115072057864325073153297547695969343798593252156347165447341877693125148086337798735188288943670578918705418821193520233971908169290611573118215280329633671818479689581024493634638257424389168003007679108845141836844572713252100090983682555757849395019071453534115319822605257485877732097449613609161960923659283245432599348825251724610683017406802089560398107826091024162097526066834466610364449307567772392112901381111402500320420359397417542235824680651565279173986032682481484628950250478295966612014206946912548068921596015036269255148772952690148125523821856143805351835136203411117828166848261084182419676600838345765010276594332671426099504699660667572911939454404732720568450815445111208160676333046960029228114889509082708240261611649707435145488717955057853961454527015568272337573295114329150145435600828375795660370507280837386579438315513881363497400457191881559889965169019603252796754233766814520833000417418654856900478018188290950169769454363912459120139495910785061447090942559597679998805896298644848633133636972886492629221047240422433593762706620134000097111171837336614601685296200867205395263477627499548571528327843089435672072824577395251176231785429000834348161396839779183615061652732109063489297548828314219275705192170869416021775460879690352271674683125820490276024603356310237024364853586139737216391924667591377137936465986296652511201342730547008982516344741640285912754463117233522368199459209352099063742121184873928745170768741777415861397282788299768414884060596871968320285653316300214425480842923822509561196789210267966997755558956431756363187095580190949799365268180199028542684493726051704957617219052564016183238702948761538516754011293623672993012813327586501373378146404006065058402595783496154900067399119941603213312194728623817441874492388365867006958451154848870733535817912460022293934913852892758150297454598192760558085817767042831117571225413602671512390887644497994288877858256046793437992012214755539363659579089874077117623691710059552643711391197703601606821833474530240538952158921609232872641913356159229883278987324330618196019025704112405347613939194585801851674582992524502230173524618197475150439382684768014904941077019088081543685088510141943206350428614473310315829620775192895019131996548143184414098681261710486205482897711304855657669248416281563721733735029036895559371495068528570673084712928797620632073056603609073579187086398379735152109110973065210158461763139873224054394070644077742998468555659375509295782243961801273327521233238295228555896808677591840413801341688412204070835852436286482686574404680103340128187356435697271254874212607998375426114448958213875849720645815967117869242487022334035449190441563848775813265480096472916915542259256698552716079163529464471708303080235205802593275184448036777948957403142137606418800280117086741729282223751332538127219086224523382315246772294182579588358563911386816688816078621031540850299810639893450173730713368901120007823473900912837591721761976825190675754562789504479865021467319443830074320197016551542775521490147879966572136641246922371001172013802374374789179875740575395888932136957499650523151480210769656567922344839139692853038221659315889572747227743360837992604350257003453898888515497126090497300673699332270895619531060873528765606960568252330744312057908223740356136924396984814507322591128768101337412121277792446741038854463748596108567130905030532108736132855286746774307550448543479074909456181565250693618109728790989938890230145469948654035690532189297810279639625462486090652367712389685621606230488490346666458213126139654087309936990220541681604736286696106417613850547663568941494356241964339162312609333409769420760818638488333245505745721010093132791718489675759050005102143395609922073731830367980682172553065477895031893672252716333457516282439009108700576057250045626226538736764170058704437676639916941713716978214523108545496992726292575192508772826566149072113071859185756604178301899917673172258639322833076331367128248820362827783625185284505723691294996154274214329789447675406939322343747637008095906360465851131717367088413268087341999317259775465045472680686786400063441548232709013179255433557840137048035250463650527250106971393087613100566349861043658887328925596323877775206327977492997506225075257389939526913059388638704526032640994261133861235931727508037791911875842484345260920932591757291371138246080677768393577995711978094595710710264169376320915803949512781250041804589600889587399037733944927240996286098373212437264263502935180318814417142390671148637524255233241391621007473524621265280174239698843189774667996210283019569063980208681653902241931821737474217062717315239712660647646762606360522263646403713268686566935731236337407256688866658523248970838917772993594168668702590395488255377547168339338375743476599257070257296267468745487335793323451150707228977083020775766802412935339741776546047439311785115392247445340805962894836391551068345530249057642125285178065481160902931737304601328528293845846121829129345764465610157588334491167776906185017691163197699171748850074634902861475285848806615226961199286434826067179122368173773403516480530324768204437271502373254839473703808443725793076604024164133298722740744540915778761097417820903898839843898610876569340494718514967083493860376207232215591726750597579558981016528765692387848969713693919574260994915467414652894356932268113791968661634631120801582409285619956283228464223993654837103193567475267092233587791379046904517246127269785194397245033479596706240080581615893987726151646622541894664048389833847870351736230556618907857222704908362632065616039603066405059959140849445766394300493850204271198349749122427172258660725422454163765671513965665854613221990357770199001917465213183574244749003231198172734596037907107452366222786459735423953908377412157620073904526015195959026286158080299904673281304908220760641984565235627047690509711225680267396542638635319894227475759521145761964874376400186782441058709530461889404525697354870737133112066926248019559760195924247895079074056643157675944373748472774672680945212517070605841269419264806897858040481598441631343823982101399241740597641400158114395832657438343577158125035275984772331832199432113234025629693502273443089582805354053625110319207508170930277723297500873959644234113753766428396242776309479831499042286914572578159342570144160759030005727805791214000347659878648789365957415834608649684332699156807307964134839730798162463029794568724423135432877117327126653415442360223288159494484743735681577393512552211932813304044720237500102590053141050487632337095730096189790967707578306652106127595496665287909041167021451128950291652285503753048423470326057113735510618403032492400459838309540892204313405779571050797753215795822865832708744707571814204769809007066266813868680303436092041622109499415460053437874001182003521633347858721284316223301242779655756117808422442187548344914305495340691980847985915595565245032216307926347287915270568379479465917088369671947115469151352293808458776185871269535377172505480184947674099755132677033924724083876209227031725575702465453731649889750318068354505361726374996233208094632765114283582746752043122903639613766060106549712439761224516832108013214755788489707666994694114191829632730300438529202146726545942838639226845129218225013690138935186630792325118691082102909844769121319959841584404317788503935539652115540436625689921623583652977521597687548714440428095242206980997978946282345908005113350647810546235557699089276713433862721868816064418092643503770937021768059585154345479900306212858312602453749513563736280802072203344791892286112512344476909255557842429412984836870480783333865428447536486033020685388229805122380555694964264122372626174111060580007538289559227818575728070848856387274777661658483535056950736610178092931228184200540068259073944134184080867609254566527804947844196661947957889387345882715606148939471517340978942544417634039278247614599421602097000911926538397805191774346903946869777376040686551148193254740535236873113832841858361626213298370296008554854465280668785553439850724064171513078589016328500599861158114128040560942743912309259589330759524496548023517467348656557889496050167897662063739250129081854305163891706492150990289723243717785323654454298926383890163518951139771418033664814551249692119564111291765200250766189586973011445795222301246912815912026966813091729552874922696790365591051117657004343753869220653635253830414381492664984274813334000395948301700466537605712328182445836868859782731329113859965224655117091708990564353001315753650069238802101875257013462779401414426651274921554427812249732871212802325567776062464870920693122412814185106902623837335626067136707207732857569773652664710733850905654637745814208474393376968597355792847578400404702407196838636911257692488586581485466071722152469893157191506207625470141027748595411879012515663154800251348287485456063455522319269983884871941056161204835176229069989493903104796762690063339533461809326342836334438019920852693887386040233206859020324503836314161248570838827670842780215173109466063335546248412210442362758659881498858560046413124359988202315843930446703438572419661842009526230586501338251202886127135473253272474554498131293781275640725447096294705777192626654235307715394787236554444034118585807916501992450354981945951527487271825992134602302481416875302352970878732303341964858898038809716985550837301016773480656839878488874469217762520047487289074732949862035394219573539555995698793194718524228807324149248051392413579871709549788723459249294586047734765477167617125439341790945743797491896467067036752182071217658363251557871915136906220735709669102811493225013722650302723305864782098566342024085889261802947781357523378425974195670653739915701188312600356735815594074152418194975362424060305871329642143126260762178086926202987614588161223845354530959958322025639281573346274329001059603802256036314710297917298797742196585184622636401690063202491291534958805376822883642977740795154261507013248675139295546067899358177329851597951340057318398339948953003157203138388063800218337528749098073434239191426791292112621597473288049766882574538356714238341977586745341205081052865155104394056397141840953861403024894377770697688142639164163452237285547526940766208559110087540772845377026259542641242905142427306935883924934549644822354756765197970678135535574420806436276209645830799088235875745450097213785773693240066425474855590673947872348125683311771008901434844069733127328490517893897438708727944503041101124005851003457488883680017691132950836356452966416830002699102835857663075241386596942765141534148519296133932122484874338132204298744079813156946886665443645104945295621702942343605167453745364838344293730307317889270576431150227773062770101398476653276680507901862287708417251910297302586741736641587013887597115656016517164732261015271264808384520026429081265798367440047442101689532204033903375270644345016072807038788644329599793283166345568069558281883100980908554389903816187452418127879815928381394502135633323486557222866501963678331107119771625740272957753947211764351399876993018096139462569354978809492833130660900990862682294448847597140320457812623788991811419609200564435804443463933133303808090319261584028948485477103018217048045985437870100398472494235199233271403146597048199255670332494012759633898802589067667650653783593581160913186804507256048824218920381700734145019698736945348384213303138746354054195847441769445899851402604054109152228145786463463444842754575618547806757182508873078783095696316846496391081125146524257265721398219001777568402433024196825703669230027901780831864287831478076678297026115544519721876313957482500593485878394471499839600864065022928595362237458261820690413866048733534701205575548133858705172352012977809929856159944567775200446306536072228705438674099662320974971731195948301399234395353789998148675463430649425485794458810830292102559521172239678318350272930054039647349667577912879147587933717445143653055792772755152598591737228580692789011587677688054351317300324226023653489379918254302953542548220230849474687932471012739931020255502403245864572318966350705679525402232462065724143469925052253081530776976393915916747002775192348292317823008200500114728219103031572841832668627614290278711614659082486447037298294778632278561943089560596741534883679061420364350562409090313117695370909039545417321199642729165700821063728914764580586452072413393377243310516050954072047857567396866166593289914442424465899566065918832578702740839980731020846374303965557339151889557686285491215365678242209674202620860805716703241129853774803144213265471031854517805870156691195486542055609825339216922863141167724466369060543885013766559201906536148767975627615710568987521217573638478578389895171389274844747985254593313158441689015470894064463914673320683974405297046895241650953425476391841683989250803430526474438286027617035129608137795977608858785807075425035410466408696391177229682757622516327238971620280658794661456310309834249874388200382699155221018675513822924749926120105860171563243361322045835709519625807806887711791351632818442863323807842504381619014436164543642524812156585531028641553047854678713708919026810679432096976953956058909541254885878550303213652801802706524505965707964421774462207235075424331969866663484884821545308277097412949227076613127171594518970241103304936359362364102723647327440986786957351012030570161259730702509144579168472170043936586089492316816571782660470162454547795180433308476432588755821863998803902580461310258384589497885376615830260009648143925515378741869907826424850896803651642618405131305411299922492738862521347365112970335368128614875024230366914716368099241078734720519162375563870693181795230430481993356783089892061011836492116561101329356378490333867380152598669516977956202524565085042598341032995929181842757260005204536431776216828250800323304907531683163154505016370920129673479993654661434627170490430750334547089263158416917278049478249713366623954629373688399078801446048956651883073513507076665977597016666077066858214601439722722924755533614267534694272497562070738314476408712412265746255812589052539970607706403169101532060110484443876804821718048210179940626251466481522720082994163015564669613501059615065377759174775331846473456804560653944686356729460080293576672809914985540398816230617320615602465202116000113890666666790665032581627243415010668350610897032704456341394489777284155804319982492836403509474252967397507777599072603922204141927047640953358858457883846126360986019610134390626607458634789601397184974574455860416211161496455121033094158093763702090720384700926695915379908445767940833015026485511329799042350568076745998711880610163090295861672440696815648410391395139775024253720717416809634380810575387560535012827244656483349129588491860089102026285602672983519247692307248095375360740229055946598349109577729804856734799007147770224488242540698437828338268774863643423469252524841103953457213393590061552479147514114263895205817683961295338957503003060668438399658969713838647822038599299234500720779585267289093393916590744623033509731561707228252067776143843889091856460247050161443072157086676925417928864308783125351513425535781867172357081889379390823834870300047450085690689261676562559019128115145699108932375316504571305197644967502418187486318776124428532074956849323000668896708157618690383811708590905499441465630367606932903122581912255006377706174691066065318939335813409093177651897653524244007400817721047484404777314834085088896673357759703147633736125377424263942945373223257699506266982886163440286236968799694422593475331786819105666855531127490766819321504083031232471955350625542251397541157160051588611375790879029713195230008456475975241182876715061672348274008380980141696233009624258990027691272148337278147351026037314721513464161039797238514230299118319779280583705333194773425288188507613009622959933851003186810790322990077903792840136328895487097604362101007532533163137847039425700992215362945671018583883863755047142934755231543973757651684777000830597093664452963341030826799669647006321135160775648980304209397278648033040702702576878324045405173326034107533297856498810487242447650908391262315319050045716704404079566513557782671064377511774464324004450619768586876249175675129083233794378636504589618705696274947434927674979173330820770401999214912383150229981971332682053645559441556719393471912091071443414768700325109435670560632109198013956174322988842085192181783277344035577434095757676370213071578823335590506214134370428701484457458412495313878880065705305286577872058007967535124105775645328146742590919681525152457816187138349755886472611771053569004040369528510511153391877357712315432112718430068303320387415153107326301431990986028864188413040452702183011491620580063417508249839503003052857082820124706951038206886882056935401835039810473037734444084424117360366046855451263612706478646460321669116429335299602430218843042901367627835126120056193416816571581371850586450492736040859741703811691039440109172731141098755625529049117295791841849000560460759782388847528792359685894480916233408581999653575093825728703084649584614983130772096177829109807543362980557075147738592998204760438736536267779052699143709347853265683270003971007053869596180010617345969655057164014409712574275054480171566045718490752576681129958519100777279408949527652209945127618361034406293612503882602634744812844521710643920474876970285659463168237192777776875344367400405443692480102093700423846059122524548016037113848292193983806857045085615389823874081249068503408182074630509881003012643858338240877796164563763275672424797374089172044373718586577619984820455569104700856952876694035205046404225924862581925006776868953285543136240137333726151296946124381865057082830743947857813138016932401163700102127075299880683597804023923504931629876631879839541660533271199726247763625642252028837598562526214569971250825159523846908364336746859638701475128608731344646225798398543880883302540418498822553422654384258505211203614161498844688620074213007102432372956379490161386392988063491119762171243494016239943957555595754801381162300283463439500979895987667679146323274826759404781767125045991895951165554075485200581039126952689577754173856601910224370698448764732025183915947720103842419410204019252552481865741035333718612280331963426240822383652320846232207507030933062660468351060019771773931790153142577700579183667790120340569442634730747378304756930597766314600668155257903896323502163661202808705088726216346891264404416397812782510450680581067776132497724264131176526910728406198145302590370482113505719773040170454204802726110283929129497921414615388955517935795168478370223718331135125280868724760144125093028293618306609204311064013333791856002514867682689258310144844567149700448454993491199934337097612449792891268667229592871489911101891312939920431494311146121774149606547760682060261932588993210605575210877997438502782242090995342085210614736705399469360201069300443522648839700008773025957056327455930721303878982617448035487503965541878911487074272408260752488846799607567128728569125986551302214490208588548522086579412295405117613373880029337400504579100561298499987852046057673680420614553604086645566908227811756697834677713764824604605760948881721308357278460934903523632430872228938414773199768470097475051655568490517612493816784478473056538156272481013304977542321073230837757834986079045944701800488632583653725500634510551145853214601737340646545766990227195173380139489942370421662675708632744720460891296216982082468559400765716888972709733426908101230320961178277175619371934427605869679571915747123304462931421755506950971687401381561074998333099260812564881642842693929700807502485571783441800654315851413959625358247324371957217817444202775331733558890643113493954674940971500811887710197377958174677587139495976437864471452551167395339539514323823293310572837761042025136263580730428037564803139214433115268848159752127545844384114359117068417286700045399635036507159307096964420947327167072346225680140203778163979951162219880768889367525508517741748503530062030636203273451963595587435115363191982135809960231650449025195997552126624700756945416192413700051614441521706255420951699033395011252422489895793116183308994675904164576751129831041667604215472319579806423408857816866838818619385373770511661105079867111270019200897993972382454395224895048050296523650057038478227326688943676362897604487828367095402809311160709865144093081120362144458635545764967988224207245987196339714771399563371559464900509305349488793907252861868702925890704982362208025436080463063749734494002378461620248027659428150080168420353188057141493328753177032756925947084079337653983532921306090933488471756918474155714607686370386252877291973768660499543584822966599399499937244178309182265812467918618379373624474785839300801233138133979534452350264741231537021539717009953431394574965553665960993895245712628524065160259483437617688334728792534663616994119691626628958863492709881298915528892010237099956517210458087188650480377609390472599285395434869632863936328972235667862555449650446897314820640825512204777571275702930739197765242566934700689230552453932061704335114647815229985475759377506591353534239109499246796890020355158245189936829654809986013172054066492239157142259084546595817380876819693452465649985986836728247920055919541925538929239728105294304919349249181193361526900749884643203158963817516375945334064558051595668814353513302528792186171492886307035157068736892658432508557574281901192540363485026629267225973775367618854928926607225871825682106075948696271214770256930089544897386807382335987715612619709098021990612892723661783368785707017088076824195800435538815543893679356737678466473966684307403190649021995908377942864722531464957328341650280323481808356624390017202968998884060961676843740271347833167213978470901613312023802365024421132789865076801249030274940074132416756449092262962781168341612810639333975859088627711726102132481303853459339106740827416170633982930830385396302248748834429086261646877130251968084883352222896228094504994467579568632544964706880969354058982859651487648122492937493751958488060522022691792658087651409666762177860740942865522160489932263429895232559582403271400263082607877544306047525736948304652549049654313891971273302459887551927868116893618704785325204493476271689866961965230859880879172248163719192223328849608080527647404650509561939357422011559896763328356750247219474194747219418826810205661331134623537028814183298552656106817129619707857314134783074575017013310575548056307926197290956897239184405780898471973091861552814414270129054345016201536279032574420936942921653001509806076438481398855723790578058084100203229248726429888016406343165517416964599489738151390292983112180336678229771637667630078136371279080373328655973648537142419419946724673615390679195722916191699299147583141307533215839893844595036953344217313934282743091986415076944921387912498394624181520500812104749916887209955559228543889772606110479874100988318414887979789120997577060612944888976466377372388686378138013335779825887379345174551196954469382627182526478243343594504491727655152502963177992746199487565334454672479239486122727571710525388320178844404514460926127542507923490656214508048878705856114412886327456538982136320967492651465690455633059862768257695311486614092102938391177283809855620255598845092196167255783685039778830369731139200567973788147145339394002137615625988934393392926547302485788520354783458828017783041101077199340854256217622092022741655489112922714312240865609180716654581359483415261469783147447403065880471419318378989539617142657203950860313212840458925070466812609082845989083601123807188316126936504309229032318060900939014417363354903812929351323696664119548300363668983053388675542782954405293197037578115577358559311264724211728832489298213381469464664328668822216628317642028373486624957583586760090946368924571935121365921318761060638320056739374920199770588946151905413545411223108165434626218373001342936029563366320189341392545511326886347301578485445318541065002941615485933358677470510218443193570986645831891046585443551575318097846189162606049218437722390839542391069793189264917305542443376249488760161264615607196401287185903539608241024138894395774049298359242172011863560528389354403188589270024410921588079682112687628825485662554925384277699532440983356171796199562028475597077273987302239387381301953817688680134110595007698307209481310626629596551497716186799209775813398544368313890533436009196445430049476127887429392213984046645074725839935109543102930582274918779652660897112275771364471821948713222529635168101066540598196313585192721766499763512875307801294908578505775798450588122385790636143544729570668655524716789837629283362032791404085670439398402409152297090955311374704201656708632419926419199458949023407089476147091546619970927617273453406287420682565489461319538232352532371716429152949604494399947097382650864027905744889047855677236744284068499020262175355402464817605383816157837485595870812907718437251434707745885085451059724733068498373211648062631624518485499777761580148036509532136334998584372300101946512527292231570737874568031127795427129605038251920877669395076667077696139880744301167963689177060477350242176843904827526019808228630662737337458016010500824001427884993112570711738111493843553158195987839677071046376822133173256479772790060344561487251408861364169319629185230495839494122596042382024808235382738641455641546593703402207302457980176311059160126529022052733934903618777419752610774753276704206643390726991228400701670640500240845543875150320734488209683606635060647026890456805639081516634864797479272123738482382989717083210541156405301540865550811409264679159590116310842196429945412410041662921892078192409930346733866716808735625599480165167106298695838439489409230612015685683782654025808783365905863847295157739088929312361690837474616017979431190058231575247359242506807057258999985293470237770318400869025285233350038340667144938558219614993962016439757442459497935940608333959559916512705906540337978570780485567303573773374985844415326058300185720205849641093113319706724277566259159482028567600833053672915445724585262899024153095932532479367979559710440370625584332576167141254131275784923403546561341697056685036937874866083799695181399537078493471272983753626147606095327689295835925070042880553456751731839315688503217663599456609126665985108665856522431299771601834079366649992827684548092749793540096067661663310740912548642242340437437580405921040070303929583413526831000485816196874333291159845054524548186247496358814624933255127702461106327362188638422314342607141127631486467250201380154001838349767998186224840749278219678866487149930698184574645570117078856081912243168880629634804272454142622708677090951862544267624739727085922420941325298760311274471675272351483784829841618916665143379850770533724304347435149257726371599973080378088021691846277396460451750650537062835104746507849987040458272211219588572674814846277333010258728732165033030515597753715466688348672213103419606988952292198970096042765459426295800301597578361419155736063451873824752145527506841490553764401164068150248639346603810423485014299005451053699504498818407985429320385349498188087291135401442336670732812991644751604154100073496349063835985887665225232275434727173915129074856847668066262048767830032000958770296327957170597340963988306680294965565261704823657219420874732355508067632370319225661776512876452833637564440545301215349322627165512588972889959312804460753487825427130095442592891702789186082228122714631250875668958517999298948131449274308107144964333201101816268760339558419514502248074801261246891661442474673419214024344814120744927776508822550657659711258994823483684632143635934390948977825455002871854577464828394579492524579295349551030142147029671603476602354872851575653695012008769791329596053403469008273187444238121636691437914459541542065664699904998467332421240473284672786338035590828558372662699612301786514409279804334559025156601366339960461929551889584417627352369289315405708408253638420241010071787704715342118108647029778131473157181290547720398386752280777159182415106627724718060978915442189866189095791794054540026554516027195080971241792231237271899902058104382657148775807623534928893448572240995290452031808102418851916492704823484355137136507986096140720591867454828296001317653146522632209690446383754152248828281933410878940067127484155184662043035067911872221414815113598443870703543043996394361379142622715793565699937346524911042202999870989382022032532447884327011269060648344921502418294689083798882354032727574606385001075093900619812826574062994761844325511957696567006688355219966279642204323243575427834621046111311576759154001790112649944711577646599585530205178095321897776910902441015704164672335849527194709499899939409276006629548648161676633313258711943874257824083707779940626735534814408549917938060929397260031569296066777781170077198334363221577867272017748516531351658753715340124063343994791698883322966666798758810444625804497106278041299488166979941254315474946027378493755614930732837412746563747676416697773751841811958999600353633946070846925702202827041779812542856360994674002163293612292800003686510459110837578946769227014893171105522884193033718454739424682540448830226911336096982255525819387477159696653249334779641287790122036409897960019105980181690841330447571846412460478347600998597024737319170426672279594809343915680233790915746208413704883313837575595782894565900267619409968530581766721537984090299564045106923461529040038424117553511231974232694375677017594666100033254497222882625959517721298280601810253199782034373280410246118768401165384521921852647359103996192565475757498131473412583907238685499528900192708906213356412537271698525475501949593881757873234922338644070552205132494139547304292536007637203315966152917364850077306333891351695362386045593333043435307823865357210643570264476612400450724381393994455801377854644585168462517974138091014488067499451475160366619638268738559043550500485805126058713939367789254464183684980099987452015836552388810344099986678132134649859281387203412591728219051245625562160039205853739463432623161728264700234519613026721940344234592556405207001536386592561999462230224230707291427096647915526515846543757654561503259016288567136141031351751487358920291825356649202349884818853989432154444328334597380290637718561081297169324829408086501724487122827857610229558901793370169123800622761958807332240200019753068124377967791631397492011675873843524980603829500542096030259008187146219028159930475123994958663389636416999289491320275157957120585694569397798322261880754711269249950241555097275986125166947653900737536740836115078932934931844629984596832660399644612551129393173853468317142999784447405175219924910538394363268750449388330764688025234421582318435651358339315071504422444854586399860584923291807545942817986715924223923610919456198404917699832287242372998216472810481462352925763897832351649722314676142598766404812530146360445247284286185918335851215336208039819697903188995987998489896916687106020836543755076441039390472928174188308902781747720758483046025865661587848987033544688859316530024113459252120631252829167349020616287471379505424505399178004440414629973729215655767786031748973437747242091448882657686956878989253159426993114008510615939724467886905510664472881580289953892382560054577189987434517325009317038276653820748107327276994602985185534980592831499283902487106847942166371465714763484253671964722148003104850425617972815399276432066506861851625898184978091276360390120514856169129978877339798921534193368417071887872774615742378102432736174486099864613778500720558492040884658442196971055494244790069066715907309799703829332530735326469472695871939690872336329227047529214477764957572832960510702470851370180005355803766169592317158202300972610944656300621007853056951447955441494889110538001335832007496008270886291065419310059605049821769670673112990783342920833701337990819965033650924301844953811521980198476455583121598646745631864573247611357381539562523565148199617509480238013997471549748191070462167617447411678609147481337482940574086568679132103420034779602290545380291544116543347000067759697157184989443497650323136023328945138017517808834500945381311785185722140120179623443395923755774943851625073207419941766882245048396717592384012574423401794307091579212009021699915130304272663260208773715513124177047824000901374738044608122763387208264781292316256371211748076618998875134880541033706532846416596633599745182230223839445937064992944683416258795624298688637971358068319442758370804651199421819134931348189050370281357268799856802116993312675062200072829749830500741042779188108443623841788992369362768387109214788104293006804708137648331659476836191503026659324477446842898410893156145105103628370436511685293405271080841882977174981437273911921016567205779757703760889364588071154018707128877650533457281658888769245954804671470969114459059715540367774376601946692412629983632536367513322074238381493627012949517963987349571125257349071714394202722592568229533205375322780594581263444210675387743515483979741826600844494779214119799675827236438011743603157818717654006679231950558129534031059528285467987889666356411194723383872460932420886601975615680414270704743835075790281612993574757238115231768025359860815790563855223044219987308564295300137566515006488309096434512269327348294839138285366709215273036972803407372918378291795228543144147622469965795859006326004867957823673135298102509584081668034545952633977203924709847481433346393751919269462296712584750630147104042594793388140911295500213446114656784899835152499015254224239017572711669868339770758122927736279739416382380148815394544349826945246612447726852004577582990209884464652006601906148209098458583938935340234563039071499840726616190817013463136153969343463574933622842880077064178127349151321789036523964050437371937224852689976593175360064114523444502104720555496494820880720485900725844375333328775708585189995333482996347205547542256386830490967743843807771727554494778458209158931748333115977664830442408953161658611111085292017959319173787084428801885114482945801827033142854946303349662062033943129066217338272669369459897550937868123018201271697339603453187653953705295393805653739945173312429286314227963797346315199283943424152611385634900567338919854837078165694293937142255438884586280822386786580172228984254053262392293237893911355331133457202133558913903940867710105395127740703175769145707289809483425660368163945959858990310705305401574067791494165687074475279730780890431036155886157530026302687507588491990536169546538833708705129398075808965026666809886322422189826083355569154040090867869664766312430778599702235659394212933670052289500587109999918397275963482019025971919615528063687426687981551801451057692600637487705376035530395656803414540391274597813767363215264489371229919196230681186788681805821527522217779047635589711846647794511975107132172674694149319349392634667319931884322296941319017304285900342009306143444215170497711360461893168879406050607667898051991551273228379690094637261540536090081383285463828973432355421476851477536484742431356458638132917611779889915111874158102600743390283166044836971178127644733891608088489275539709862311045657704061882067609480051643053614795476524029666181789457643521610397976758269728979127480874324518004129808404583535587945995174847201385378804394550195588883952208713604147410697840864518656398915899838861000839541438907253023864056194681560809788855561880710765858689605211159607963035923457184414681721054538250897821228889620383032932776228026401686412504124577019006853698796465344464816293589231722684197887599061739437308429772752147864306672542038761714729685756359487894999599347599818298015924519347304337510424725910228720165231286418863481785974524701433677116939549533536905653093726713430815000378937290733941289992816781345080182577197470248074390154301769590091473923517225409889911864111441276331019357726701374135139374569744884143509813074336400980880619906817384839309293760185641965383148920537285310812969592812854183871796311862158807470196451878443545555863975300548445293715724199939108788292946548194914465603921726450502284822796934817713852495389591415352662080553171910082550593618038976208727049911477931860024182814095027353047896549278088193145956280116885957181333822895164772118186005385264270261304439923539625573096140625458068523948811391443965347855641373034452203179514183234290793568477406096894849277775444595209035565481906071854944337298743148862308221766841912958583710520116633708705990556339893514899788868494967306740673150703059119502367189323338800128561173963873788899577877783393251055823869190624559771056283666271543321413523522495721816960986467157767173363088937029742394536279611342711895927852395617941812009185715922345998411143780775557741530306666582951449841090247381873517248266202608860500834034792065115867857960291438040492677546515127405898168117840451875660237681323228065265540477904284842556753937643828720364046807009980325937787509055369507901105668946109987040700528943546797448334851021367773682834696443299912973199152595255133241180762870168475893676579786541364701560807330310748106361925171859381792654204293005162304420690240736540339391785018351843892252416301520489473869634316854190809734967280126552473050395395820298796776637029282911869683349147390746818128982072322163006863635282809577207702054653605871090326602399889808373131477472564062094531307545277924403218194638246761756650553897126856410547675408501119462944114835223658081193058409593199472529067158471653458434059287745330309426207074577759520731532768764664963565078836594637004150862551499130352465839226277803822303164869720975471599753895000747862162328293615689373114478614698465477526061965786350023493732564583581873606323888562597170016987643719947488567455394980615407601228006688548355595322441889989685880835302379267436825339291341081177767564803130334640583404935593601249187266568553366023739728717944950526912623099519707401681800016538774287547392823689319038439426136645694787021295859332976070010231090376877612545663187739878442665415403751937202070801016556373589470420816542323271764446981458582301765965284006613151860097931958833830499671679612057864845370904165108157692893092089367967636272918388773691199454211723501590042482853862752134566111497780778452360930666052658970326191321978139179081516262813964292933365249763784942753437580750338067919461756695777796882575265491245122881811992179244003125989475723086668538663056505894113979119862676596462751285450579380406695050406713715972576609765107011215453986740693733047337773234052296769980944404040381035102872585404429846044652489149060248689412242458944138871297199542919985193389662345634744190551415781797151835539999820965908125362171083455930669019628661557528408666867810067844525762817732611829066793965222890685345007394769426322035817534621893678126620332762615352568515992683291565266409082378148901877639491703369776098064094520842424267302620476821357243444114727349442884283722205399492211931144536845398299878494258007982951264247221709751830513243930205611553083057673032758163757383638942867375537042492317504279007813244168509396053563028503903659256731483525199172919219517821284520470923984307168054591762317735587703029272549442341926647998379593082049691956391418008415686088760792636974514395812025093931754340500295290504890434010458073574139788202098256420074458310711941544060214019788060044174069008383460829413233509700822030102476075859189098736259309555198979610211986817835585377935885681368265934271910769372202025744148725621085314357917229997241282796924836390891859710891293411833443249269572276466874358778943745057864866241404618391154236168834697352701586384590326977886524565981904667476658331569345023983206113773324236936501227888383826733160378131997884148045921303211141874543643671071077949124009779800560078386545700847506919974518781809998388554172019505551773409644462340606231371396117633759934887992468091924823996774885132049979926385989679150786674297853198333301761499712888290448462034067609381293178838111584665848328842361439060836824052298228952417619826868524955506086706424499805958309345636716570723392649629807576180758904365541354449916958313969346173114280052533749430331810612228548063545211563636915852808780376456848091112862354949677203932320834356042327278571253587067374418471237613760820399832034993877819774259280007727655099784562109046951685603636689367038263759108885952922995801000037705649697716178118390966160322552031013497637803251036391405175746369554897340494778780829299222740768896830320328161736310428663595988017024868010034580735877698250429766753038899776034784230390145909213203436870020257332631441715487808192050353055696339956265029847505192539666107396807606993967999090402015686467472847113631314795521948742648997491182499234357696153970462263740734067906473051847818277781575200983204053535649663237206762526130121558567374097221224941596434428178532783639912654922782204803554200429347433601661449017753983754190299598824881467118296114044759413843684439795934509871720509271292629368771732454034987826485906048988880437690729550591984827357543204221424513927243616512135535184105262349606925862927109589609667413813639545428276217039097484762742215987003405366272331066952585252819254648996080861820068293276963475145105660923254743216794783110875076456736025416670157825917718338549473650525279606413754186459676988538008793080574669726533508628404655930637571166457255376488358917749149969442915391812706497925743734938462717933205147089855015607479505313766325731046432806341855447859771566263011322040156703847385686180389067533046985260329965023585850460795018658537776406224410450233708599871984599856312289178624488656341690044395765525691212396934577144444784036099395394920658556430949599446824542853494380459912927087468548845399566584001118240237003235754281653301632015046919442661801574192594439269244405873027723778684164868461346268625797131541938761118500585174546687247139966905837643339166487070418808347883760230265775661760255110334327241233415516196588210411339977884167722076232083690445666297350738787603360973447099965482207796029563154446219156011224716611682363474379666105404214483973347002347617296307019748333430910824180385175111992084694468838615184473519827583773589619797916455386733652012176423801743396691787796397178605053545773175852366324643641865485667748375804781364108555666410464570977003038769798291283324901071810813152505704817039189101755751984052453042210392202941530208233175641015257106671036881249247016277504746623179986407843104742673777949592618930152237734956052758839536365916924663948891043429518884421907370769159531464951887040402952723750619351894278022244010789955690154045013992188699479658907235477044978069313975966360583991516327195995331456798987776916150516832159152951188788110609396016124224213294402968562258360670207544418291033473440512927234364266430897117247744394497159048325060596001696556412091538815640308917047723870937800526056065192788757285564291316735264601215860204975847978729279293887887273297680201964686118830159211493558807529401910645595239641434801495461372321047870926402703166646479477053890577240406482387532719790222771327387417387940137016460003023727336656293703521423944549537870221484065019146213072191145266689731262162836467529096436640980611825881931271174105234471844892377981842905490183883096119605091029934639345837043773525829986759198000819953929591297348581523517762773662543342220746782369589173109901105648485735331083400503554016719447688297141627154770042290087580774523547564323314825327385958971575266324789275975816734273914971661339462443493398515002444938366720129504912916987008067464569470943585218282065431729394887914868749385403643536557339241382032364627707943314142229193784733588780474784500697649971229120727873156401206174498498470719494757245108511011487467166749316443313662756151686878918515516827022626446155262547384250151528254035496977615780088968645171865189703406416381534671288602627843209494677790234578819244819143442712750767174205993355482928067757275760516633911865873126032050113869142076931139445038386232674357847391730141531073241029820284074183300572838586016679848224358779872573647007826612826118714165030446730029973896540239166309396751519410879060615656645936356340612429609040962507973349441257183244958227026691206782684432972014236702681656994068494757078359560194858903997161189368182165262524211048538780078723700379093888389370360012749841059814456147968635897653836471435849418849474640892310650378795307616036697486583820396793178817383658514459542987630060369242087351924147901591912369596971004072173135622304474010591422135859570771964636864623511770538661496948538726687667900870866262287785146839973569584101860791503062959695282060023776018441650908676283387546931856022960507731951915711160593234849795660293677291188817589453528296871842784349350103141003401633547403807861443649051613362563928803039676606855926140332282913616519695586639192732109818045453604843070018138202936229399865523063229090748755329116663074628672730437195161629659145659001592949053684104411490160257662040796201477411452821821053000506448602541012817657562615826145899050976916293348472636867543258297235843505597374770604884801823388734353833495518217811958578276623286827922856605598919911032608293859765045708595158515917339727668691425929200672103395945516980419838592116581618425100465504306712642901249395097214189366473859696465317160907848701556524271763228704530763360086719108638692048026532127877614030457899085228889518601748742799980187470509783749622865549597117429732700553757501722389602489901299643096022565139610582795791988597557486206744014839431645175426556993104270651300755860954764629997302864814674210380005512726092359275629338320804639183094587173168300705092094015030205691488004750283322002495759815222257645944970383428140372084455822734130903497245580039318440423927281166051910183970543275525588219041331836514869052284613856862366348964501015051199509348440233997161389379447860503999247962465443156893731407404872119640327793995055445227760634741218825036485324778905674758975064928366741256546889051877155318591113188044570531455820749991686048918933925513252229894232885032505066597380276651010029437763244615454648483052736369445998086590349673964975948397514913473395192569567649157855273474346204767671671821970357760074107382237398172915698206722077705472189910563979425919823662648229903679361576651763731012061473863463249521474646937892848746526051421832401962449333689004587224769415686173850162081788654127819836480127276019348790661579540209972276295488149150678828805070695577919732741544646944608282063175368595460601437477561709125182052900614410286435330276255021093496436477877717350678855201598519082507893880638195878078912186401064757593536344829850812987062822180797873810944842626521210328396285279521443682300391804712112623681231999663393620480074218681435317416962467220533666573762985464132330306938078472624087900682546682486334456308596828188782971450892616991694444865226536709756619622564316798537609169092844695409864526536377416721964337225183306568259384368006516178855540395310765045000974196687490585085480116633939650136703070234822441713745488452808303789766670687230680056926938896202022125361447289720563591369903711764025267381403729557944991484826717604530445366032582147319830585100884411264721625208176521311815017420950460977780719081456321097683185508282713430770912932340924199151895229304375517322787245154150122558632064931853570532260400270285891493410110602372138667437067526400204810172164143266074074489009760067055812984099322244361495426732926977981368616144091987597344468821534531046654305124560516216524825822649379364802362564471985326776060720618096079789186862390281577911482307553449286455468903273838802684117975229360538578804778133800947965524574506800762965762074574869164171142634145700087780515806217488620654402886215402090961031800732929434508693560201005647239077861092299316003383961317219124241446150227133474486723204799743028286051965867696103758155424231596103128487100626454913887074304661990602527111043125604029453808296720641473407383832897805859136696363399980420968032885840698279459160186074589508229150345195565442009305226817553617734741581911225630655992006730937925256883595649577869952551140066001167543254661820597767442657536567979311993660215226057687438662851919783340464444486110285861262172803388050229959380109919566726394293691820685855006792680180863977097806320513416902278727875573526604564514464948080385820476631591932609679858487747165639028490315890234830503790799911644706117159858698134659361071430623140330087121005412107095346765395151719779105184138474402682726150245473452785009987932891771774365244938326195294140059394344596860505379101970757582352059241442429738499748037609476880607561044169323933414571642681364413463830598915340645812826823913809912542666243084180107173305339290883820266400754078580124609959325030626076858862419409780516105172756540585473182113841396792928709809506535053406954885015081525425026247899331434462980797556637158517056853800709983498874952147694002066604251082161418370623165165715243789219960591457240842795175202806593377351152715528457659328329493806170755280394926714536728431155131822048262538108478225411751008140800909298504941335063776894767864484593868696720902424643635692800903073144803147506559050086700699324328890235981873350983006613949717147708917979542719094127434435072957940659832415912665996007781670248660212568047742998814263582575254796164278012945508945411130141090074921455875873202814870909629666647879268101305583035847980868084509217587146071295828436862117589102960925350014785554802290798280072932160658000232676596557642212068436969178093257454063046474756212464796293743050441891002629024277637013048267319458921681217271515369022648501262774120766893848937882952743300589969876328105218411927354834182183316270491903634253587620512131657961672596236759216074380525917596437337617621486047560735198377117138579451941470728322088236376092207519069575660199372438872223756013397916580435260287637123647327088452517222181504319651367282818342138579217688405311584453891524663031227850036394513645839808077087182017156701247790610660813656931592587016846422035137628209605223518856245711448044249306633964512169654290654596043825400155754487068498176716892712135450969700605176278404750814047525479823063394452879961976819918867013488528965127416091454063370917585617414590012987423914339484686500767077140248869614183587024843180876372739129196452927939161592902240115509407381397616954200607714113259185649055838660322840283896565807062634355333755222337819336911990357521390347700041226897854416542875651539172064192996562576454994186351146789218011893740994836023866674118763756075835357160014907952080475377070808193994876295529682896937840074496354823236886035659782797802931519093973147872343335085259606796967867235845357927937211031885531332995135686280342567209062580694126691295751612527966171340270662300377453207448988790264307996002417629504276846189716966263948640589748933107682139246935226305769418392296189869006465243397878912703649918072622599605005821028827335532899491747902760920473076852908194899820799795654239001556645908843919768412164294303749352493033613371995390407481152215051578235162529371432524458286041231357816850288575202523994079011795594720381714252838389305269681441447408592884244679653394987171341047559715388589398624826039282545904693073505083038015361294179861509294027311870376815005848733191470980469506038232376882191215508127252648694336451399724879874736000616556988681357343628073322918434115790050088874584577857876965737596879996531521030691586146409248352853408806440421092705538970498275316697125246477521670433926565804207307010094710645907491919459433638357128512898682041577538382296629779425602530538364091699798805363295217781131980474801280426043759381729586007258064191383714525438556059186445163110384809078535965707221864996923795101593814649599541144115951708101336663551984098092717019242731160693353157531821275170963005914700144232727821078802695942785660575860472773021471367857708981697107618394324744070778632105756831112187684732707526398696604438706969270793027655143783782839823513034110166443056879446186395549085723530136593130309369922506583479266065052102222077583567525619225383744135256907291889636319331515404667598766103445632616559651613185900041309776270086044768532245655141494753073151451213805070989964897126679036788286355959932429723700000848099568657018172854363740993123605337504715091146123579042975836274388839759979180041512215843654901175660513281057471837324623266485466338286766937280410025506132411160018640986607257508277355448169895199899103140428966416757780948174932049989128668890238355466854013248623912527779212464391896122954218577638667632332260998605721128883632437179626518873186346083599908936562262063564710420731094321754551684547218767425550260969991085345932585515130209049653558624931561512794040756997940120580086991687471222185055396392317976740067535696813668228931784006811348440645318085122410720806510642319539496928683391037398983203600723903177576835248168710238041321890093533950929000787411117735946303842644171685361657381343527675967193627445412971965312039895651395418619637450359188875615177468374767023093499547373884128688471913365492350954830214530274323464597289997398967362125622064406956733700207466196418459727309115950375572277243359524733135626154896845171615739053361195853892028470255758659758720676941251456875020905100731651488012491196291752097800983151971451976040943776587208729774151034962834842910545324753973436597514426767368796842206268122735334976607002506590453499996944882785436500180606493759765183213319791469351079885533154556719829141452637979774680338573509615689957514429078689668467934373673227468653697569838995085217426057912993792273086951730059550105684878388019827288205388438965728405225093827382070618287651058329661681857280933517129530028667454329966797097688096783052296662555792078562696635369178034197842111222695628665815759482616757662620633916540536205572979631986369707339647670808557851114004399520091352637801797013998081930136515553367038615928377228949462486794031589433831010686130051851131519304928807576246627371480995434036179934196909968231126619030995343792083357249646880615996898470700350624889380212508747479643940426663641436796028553960514189471717920061422656973389970686790190719875019346103349265622077248271897399905586183573783534896738558506260999356687617494512154059283020365441026329627119369319487582010415643135748677505489926644912112036229112209818032004041480281299547383808130342977197243720355883953793167890228556992786308248488515625179487114218531406368297472046946704220174023774152366930448786320417809552551431988230238699683365754475185697329003941265727950214738036781306361436902317169562173678672772142983391958101492580438214749875102620740166773225562998538095764614164528264874572625987726339760960181208418152319181688546984799926437523776511545490177645108714387759162131892690107129347154694648187879113417326795274443312615538032985987864554513966808635646639633371078917417882879226603690983036626848591370237158264487034683151266365196741081681437523841468992735205552918292845278780622328904440950107809174531610623482588904722975983403490201510576642672167125621273577328392142735971323225312286215672884194465556121409069085844043916883038076071976278306822264014555693364106250376615772470000292323314197825421250340149748530522348299060991930740355376356306081012842122290956549110112992386465832563394254658916583530367134648966539814113577065996615254816073236894557299856186519613084054852757023371434055646968136666767011454212664791087667846395460595148463594908797053127035989781753778869721988241836585821044051965380931635124021018140502748858603411986096376841924609637485168548972250910063531556734374973141680467798256077147255679796428863204702652738960653063710135802952835916390791448383078317971242498050089150794161918498043830846486981392369992214434058308125798375947110659637152199549275846275216657415256950480020412674430311365612781799417251597837914780688041972390989583094609066320088216234147363712293988985139231086468412652940813642766629642604555404948565032876826425715529480826997641509453305545497221936486213522198305267792545777563038035414810673485559030359500044748162490856040123925820341422528920974086696123763320059523723921109581798713072705591379727194607651320386131162690237447155244395367814373459184663396470202331881229098298332915130222262761934511834797654707387715735613117180402999941473680865740357975076269548510358998437943448892600577758629145268575402025885041321460044629326412712818040721980914427568848227612633238481617416523100683694138662156933997520765835471107353619549277457312128066328833855287190857241052294612226975486927980619459003635513779710822664353925949572682941774583698739128546784276945545862747466542596552733502777979051331312925115776635526588849311432811730234427209496481359181291000916836292524927121983166008185138959097432925228488158919211393859319546483795868694185260200220833710542481428972974993916248738872457854040417207229608622440500712816826252983958262829650690132205197005268019664853924644319442095712236026636907104722299526624148494780909238248192440268901336267418550929615946768918470490650279974152150577671291391279487775857868443594981160374755704042603808361518613744925026805140373177586948728291539647492359317271711947125987423702224287147950365880540202830450936115660031824797698242045563464818541468439124505356934494535180344571367769648837368791049075911548436893462655338519465902699590127926194148468099864855806253541982061739003053506880405533742934171527937646522136140005569825904205079568807319552478920706562431440231857467610449856671063882500571101613906474375934668555462939795536412548301396376047961456781449999763032251994165834341991365929847402216909324736845812314578397732556917583648781318611399502239076464478495532312792562716700029341195593740029901038888705517008545062227770477572953260876872631447616801277102989204742653690635661342809015208853086553288649353102979811912237434954967340789277741290742661871973287886544329854999215002456704216952203395064099050727221590787207458464981813107856805721781061444650887672858740678084879357654061949840867432117682346495852584295264322412537951764194915132955366500204008503563266452615987222754324693523044788977272599173959612156598928978717223834688967405697532017976196575678575574497242188872246299453695563566102626018539616503872272637292779356868097460736438239468686429931355000036986606527913935245627191102670469420474680915475431814534288919743135714637542723756301245503012952696237177981981556282581899576167774362814205116968346612050858524557097476815795017166548709455122643356902539545981931498178978345601162031747461282376800854630772380877115974289217206896259331433702350089326959227616655135115088281948671772129999991045743579062867029210064229510890597044734133075244424730736366832225183277117720531236570276457431071582941476331195361317617193631832780655999323163190904673130826639492175029578280480747739522914453953084863034728255070609025264462833856734149577284424302158870748994051416484115700969633057759110663723089544169659795081028846191078616255270912359210709007445529960425303615465687548741516295790002304620724504468724746038909747132705492660030340345549585961551793503682033013022641592720740560519585492620022965531325449765967755991079155749725721519957422332291614057364150275521553642031316330814118056561922089373568339604276371877142987517319750686614201071274636952346145903337442325308422904940187409673927357592084057533162199556392477979162890820722738689138819152423960286740482753775847591190292436609427589930398044909583461845702076869209236995446806985630272659614580006280344430139123128916491454261451139227242955454309691462955878548689125161816908933864497543294337963662611584778306743981075611044158969858516122957709313562102158566734290927154663506643882787314459235703120547288238468868825677846764949352819924774774751877099601487669106161159403665558048035640455887854487012950335874814378391606759423853242531568191942147231829961028325949411068876798883899327949655947194126298091680090538695586731283846648060508050697036509927390731069930077682596427809107749431999714037244403579896456951115089994767984024507909730792424073235877169240927241542065155319991564865332074332666021672886493385799564629074002802881440957405191144085630713978528151731170550678123634780341439400812579441726444779971291694739803703393640215770326128652085065133354006831946855061014452785032270093488203123251758160238835393154291718119387678576733919201855112628440021692168137130849768635024636549883528059843249114807584085223638848581409404789540558899784304760710350450603637720930634846825694172818214070079342668385806992875149847422608390591385999330124709886657267857604564301378982365941190314131221176556879648701617235086424047875209487969856212595328897698455862280159106271151217948548883254014410799052291984284427410033478678120678872465184754477680079595504342323666837903385809105204809025621904216837291770653674953731637664584643576588471283762478804119397490754429047543518305594261710603129230303695824582057577422911798018687039036319440125949042157728791878237123606012381533448186109232812203934516715479497584603982728773890214694214106276527091581039937389337416306331882027116113261932636231747687138927199590603514916341335410378085057773555158962442468977440389809974013655240390678299182059552632871665391704536241401409845785359036373662801527009412911342057488192036289644883144924233036696191896419283326526190818350245124127135814136835617256404894048138156293627516856377064481503127371885719636848983607031224524219742503032447704342582672060235174032515703221501891861814002780473700120839183125826683369544681496694314707942293946622256283279031549805145518894875866634789825438508758982816862695911740940095917227724072655453847134992482105037596438420616450024083925950345417950418899606325398594342205754180305426430259166538791159962322315711130508113636922398896341981426839407546760860105296172665435659144018348574939008286692409430683438460014612542159316386287194866998940449286024081219162266034784518421651024612551025586525312590542421589449333222567530280503654324627448053636976655272983716070923611892649084110110325473744377526819527850606185794066579630120031525806680829946752396288409438389707857103277361018979785213432554425752814531304057861050409648376158374505087534358313549638326552022765873558405601624470821266144334323869513273328634205430925315404391396570502341518765392561923610437715186236617524602828095372349057547165922151250154357815541473844657739400358432800558100625040860618022743898652565441586925710211095999781542812015024781662978559041439568635541318351238968116606939398567386205405790744738640918828525337816413235196178642666711511034301586469463085953151291120718128363746540716351031117033865787665587999239693780226460072853324637033989271835543907023951078904233354285989892669362746339842215007088767941949314049096462778101980027176074947801973333867334044522394108666463284055800417617816470559547211451885706723764382888902349672103961700705366473250815632991892087359520562504442826842975076589523015754548500125627315797841215412578988673555555565046746529968078053908520183524452566545450454714878623182403002635540084304031501942659532179092369629813787626119883042696710404758387368363102758256572356002633119743412844825297050743512865444344438584462306456382495366117555644539458914126572159882383908933286504403876557688416165535423256440229241606849040658234465651376751092251248806484833299487106802207715543186516165825026456908363976840319559308258841306039289104530813119254570056978658240653725618477464418378834712051095665803550414047101996013073703552973110212761459747724851890507587149639139990906111719066024184228423020287805027771733029369020149325278923872252132295490271911911085085624042729636174540791286958880099029693490760321889792142022216947836080208914620368266191906480458109852291965597101295764800252684139790173181981439349476393638156206313280548689828550248251790823587531862860227356889148440853540140881516442379171207684359264266713548675046187890645743387676147729726173091674375720745999774829747535461379758553978420800074229105102115915897924393355820657942209044532560325197013852155935796184520008469984394025599355333064400363345167408848150803900267114599124586406632775303907378015705587747283799449550555298989890586666908439589842039408963449473594726781274760557506118535992748159550952079760586564466704238483946780496070457797927856384069901341305610454751565120062854295522809695504944596784759845669965190233062396291286819924694204140287928197699473768951355739011363962547250988675138764261788833922988107598904738282378193822680867340037414915793166472244469286691475655043064916788771961224812571678810318486058097729302427308805002145277261782865746503752005255025850954832345085371437029345272453941532393275865921755570191672424038163643189035003927103906896974289791607155910587340756060644436417453125051583115356685410705043065561993189476568480930956488274108343773919981793781419198753681004183692719453711698362291555499325818751694606671852135294145962602635590597401650536816802206010435828815633311014442389236312571596307264622100314939099632077960686367738915039614659270366578716846919844933242235839095232918726311750206331517111858944364598132413002797361932870372048636201488574015817680318169370052494931496801782739312002078375022173630570777824860836993292901064973093225448065081803551393630885133285619451714624558140711970728009927549606158862600570024111881277770687920955191178489149353332171330554837004145066739960595348959231706350089730242458332969440395933211903343512186612160716531815005199682864311670788946931640946070022843407253273678711238210876971351052529716592574377914339122818844542607909670949069359457639881484606550228434757899120627549618406401348419560168769445940185353285206538828425694188759765427602669447517297443211887955292030451577403245465614323509580129265475664229324628019601358406742516564573519099640154498686809655083331229194387752582730419680511753336490769750971252001844295391477954276079565813754232009245464272823870188658345902342910354182479369988353711389082304552869999548837615532704457690417589705937784866901570442419423967480741513885881229954910489837521404432885192707847601186091735588146853989293012720126316797503596311680801531585222566589466847629309888128138113386594243319333129393407796930131755360789356522000473121705099743473640496388829951976492630183474129463211090948699067927385616202039899634353674605514062834595721253810171073660718346157729399452845954462591594663337428240162294548877396510843842397134060940268634357956224184495228462457268853176402086304420824795319740821086552104639900762091197478414883655684837246319003474395067296436557717497586977302369693914355825771698443482235186064692844684367367212717830962597671014981090990668698582922598894730414006055052224143295703846376163031784542141269138341130152195170291846148387645274548555440950284526690738923222895889949245105451773983472394805533020578834794358074521958956628630663905701380789240115274589526041016204901745299700897649778119011466061372994306777208667676227807715052180692861218321209217663435153889872352397666762736362091830187215138640038996713093316766779393831472202514192615036968947850720467842224827409319085753959384399054942896442564875626241750325669526214014392606173681021326586319132093715145780094693957465346006054806426559850072783589838095788568754036122770956248732918552458891425155502732551006329923148481655101494785057164047299537689011679130147507209406912859917301801048066344092325289759461945541927453552891116189921458249218376537689163734435913800166386446224890218852220932162020066974800654314482249829560548762343007936469924572272648988178020386146049818274440776637103263992009093150188413130774270484505221625715402662010981377480049177079791831209676503950205017396096821962673599116546388251952061722064770330751761170852237195840377841922743982923086200562547231083383743521644235725272763774789321796189448412553400791743562348212929217670066460807816538604908916849233921914335970567835252747203214246075910879307808842654545594769181365421937733913462103842443017911215066689412773613170312966271201476451851559747626785655163545830909067990682238099163606519582683966087223885931105166142653433738247795726961356719837386745386377689023481647087509923599601705601686474726370668990427201353899172104467263604758781731537979547905790831890865697383858408897707111391497971366214181486771184722480502774561203677410321932718035139389422875104924104031977413478579323338703411642959531917669954899266302633443385435038444477017335837692122178114809351084326929280711377087919364429102658492580385085915050832154792230194118222615574625843128073203501740367484446995632807875756803735839136802080962864859962269299155043457432616967852554769826135173261365611534758563799036024255104836155215108744796699861634959060549808311702828157978335728490945456301334087175974223376194390801532592367592946842178839448106648540697316062691761685543083966391484772064092244701376943113752402169610597625388216015433038325555639024453395733804888863348119344767606547466195837608509003081837049784119848693369289530911800700523062430410841216548174172506638211965111354967805453114414009349579285990873572653713004382874397849342630179769886499176343969498762800647153811118595032216847600077207662943292868075161904670303437279677132028758783503193280407843294321176791504161673164961631093052032715649948630438548747463164177380061422810574931724884539804099901804049514730586020561104871641001202809867159143850028155246067147804355638139472847580485599282856007587420372492630983538216218740994566405821449244149230518250060530828879416809809487703352619214820611590860496555820123261804112468372226063948022247086747675350674406988831023166779023943435265390407479073513396864650445896808810343979206119832120674753717657665524818330819682460517849720961212820995273135762624000406098162582245665041960631112460243976944524217296674392687019590016882194209790957135171710106866704161567320670311877773488826349232908750572644875190674856279221799264011386843105851497606592998623743402574668875503156065213747368816139131897733211191717459803625105216048628227711655962397710537605264105264697045392007473239808742525638032867805365671080129668336943319946557211989309993443266603067353461915842860174987561621528383470050183128803061650089688788518977958679008213762438794852675642160833821873526659649340228801226034195857617300522906162478184961721888084329397011974218853887354142381971048154325631734982266637693871601954605937273370304227226917351549902933808544056328528104400543014452650603535512229459160676389441817952279906778320956841642444265994343283741995765894446446098419578971463845167992531702262215926255179831757475337823825783700980861285945574889713786201616137683331597308746995080267352959291523505906114159829897843118785771026754917544548257037470399598485737943178748080444639272537822919005014107209768978397854848017002756054998761058190002622172538243567761388681894466456264874231576883831504881601349091953669934853296433101258716670430630339384655803456699955424369426488851608185782375052410104881201851566508506115546081370260231948281551066827489595580688278505142943251366202434326661828284176556383964170784009191416877358610132672608288732298813751535686973875200410586696831067587212672982709312134504979948414669839454707352565653565502893022770850851463093276855827902831581801968381375200435813051684155230426056325533767958631648845995422050576650088414218963185707217406284830066383431161941143497834860244129200075481828306614296639127817959259623483339895869192474917020434668781959431137762581891598396016924405181190229776629123431444236779368199693262041346209017546040129693587933639149996027865355109131460182221104048454846321352112706544140704447439630627761563910179271278267823015342916690931230227210077270966754270968270534371481235114241580174906133033974292823161338388663491960574930288348801894996076604684842960754449887484421283343386629429920913814869259602809849219427200329639302031440474536641363549186864091625184984206830349023009781913201963963659863954998596631385087940274956930440148793733814791778783409446700474238438562385841233236778833459468859516900244216846124548717292333921965825305701425107375455334173132401791227123371414227817003076306290193685281647715940221155353651903627311399797233615660402560844267003461845802108254424931471071389585755360283356233566467233989730809379376079637271971837628127419651952536448545632602961843636252467464315335086172684839742366471623956845658127268522009867551212877370992026128752970015568120873402985291191604720808804861398259499279465388749688155741802752281162667381036111373287395230114897266468734556856224855185083017159833754305130797031040896373667970239659538653374318252148515718652339047793150385151491528241476388864206970971254731716729962381602357251858437352491833104407791097166264020348619071172629327679328028258337592421243056550204075702358511225047281175362238567533753873915894695263333202965849519936937802343123655246133652034978662772369872879650620003143038103210944864660517044846802280822599072270800186161962983844656264236319530431222269355484370481350811027915492828650377351295403076349385888894598186435084919170672397830824362930644143384217651663963525366933770135706056698425680597069417549802888583786537409978460442178790241809871671507811858438392899725363565737155622461639349208936243401237883160314059694078445620911927040929277255308273810726331474937469830293286805802298572072969254767134151292988561082597863539926181091208503304755133165776256660828229480906839345281494153758065588661890419499768970009720742337838596622323134797719953114537255953619271376719687921701440416529618599484181887536217434684622004555749522324777931149409505991218622258320104632185754169371912671456951952452656782064597194512690858375248122051587599210042692543971179893600688279275246394715091385715762018236801902862306917139813638110680932492573126088798850701223703860362179013768484214002205863301610394125018701053217364284499589386263097943113857823935276542874671449647265513185011510597819555872810852625338426716231782468708741924168947941163503275900396629159002127207831060165169315222406425085381499262070185118301831405893603554020743150126520752177297274632912129809852622945194704720402485822073662234942424595257205695322002436855281948315310550225054721780324040060875367689362249550832334659625295256971749364128311015361189667229026091672965240970459597113837355458686559027544316916289369967623867379010253987679419529810925593058237429256082759754557180024495090632572888790095931857263993602736812963875726658338460026105690301901603766913981581988350962980294337932143241737762069556693224914839704179680826883216379767251854320250448417206980552732898397964450844741336599994429926779263328299397959281028010570441875121250897322528215505975240153793705233503379110562695724437168519398007605795965121787525094217284692154763362310004785207174696736290687157239463954243744386107949735427206428521446795679936555431352555697682109342638041707801666888862367485058120995289248457230348872900417388188207168882990164437813134334710553322014868852401816441515514529952685232989553603390520463261953927831242783240915300782302379596640659266150245263757061829403179508824814476320753777698581364434318331516409096387685626938497711944432357114468968507561905473679987484395263082639159058641454282220363647414747250898885006821230893721686221125440712789561674956864373294228908154288101541577075256672688600138052814375335521697395859945503523745823480926254962904837401013264921108236705543865276726380554323640586930274727062886747224200776910643982612766767323506761213555591059114219068640754224449486749101627817032474736296131217256592833744664890679706402962063211047213603249331890304679051471800471593645056871701430322342877365712361594735408734542609349872993899939406705660159258018556937199070643420108951449646390143465030151147148803830612677269070705172848643229144881739058385402485107468639886426261349451586689548694694813343704931235455226743498006054032079651488789157287449040959341907904238749558980069769486378841034385532662539593224136747648418562362977538330695015088530337354884234512015113679959531439777944147613638699542872410275615968582213845188561339505861318042910729961723082319137648242703962961926766492365328198116970519155048864433709997743236015870080509046743953776065824085555325671589099529316136533557467236198441782670704095461395280696505321036353443575497791118851211128812414655028542128859880829096904801610509491378976644493363902048920809053121254427793138800172736606755974658369854477286436788061721948527831048831448358724831830873203178486179208836565648005851362617353297926422574057843541014243297262861112326613052051500685400408227673411551774854560436816262363419218742563956564367148127387461859877851980838256150993103645742112901070438559271883593203614169975025064474750498627466669067244384864723997396773951370459937449144246982408262527391149658614842724417610116629697544057259329298351829450124109049916773809216543370780358662230280093508436012455716735028423166410806616832863923218246476809261536559500918867192183593530760538325815541460508526005194590223473689069124940131931960497113506007582120653147718383196217435805713290336466486115157486672132627083918988479179772882931962174298935769534348920486455123984736159377273500844829467563585256938524789541038127389235845721410790186158614179806907428741800678882392583173035675379703893426256526700117977864688507572194965283264590742052100575060396296980793691969175005444857075618926235415820732578359307247919443370144658245761198521666164474105417640109032496761000543585538625140149845354378982893991122076175823461431064117912613228470411604324153859752176478976090371542311473358063533539410634325931222776136155738182249420193402708659717512806595701344149203229804564705932059439845388310915697795977927742133727779581659248501435397882756574108572141782153775590574247410827243814241216982249579640050617309462824016323574638931587645243796207425236570558206339112795434476504519147858653594612765652059184677451958258422834632951892888488532871468808710406101157182044752534859877388297311355114830881153992386853056311185302484388633593353191505678975809693351707546479991022302405218696257164977039286071832230295185270344909429284494466413554042864354218540304117933325601987129798389480800263460717123876058520717348039097035703876014372254452981471927267172776355392440968070746325651910952822227006444572287500682667192329668277640544774986002013868191514991675196609619696216377790907343341236296268483315450555732203572350421822800398820301563205210488403273989631315295758964220328361929105550479027560570707630743224486877951367726143109880077442553576665030784695916183015838948353500415252724460585825363636354049774427880107416349379087351896863827951108340574839518479122095248018874811058471930699785197409392837633206795116105161926596814373258854250725570295084598986349009235959105921924299214759166405354381509022249350117280498689917377026836714110810247520245752001359156015251795694309818240043746542210381969868091026004902122071515313167989187381940607056751805997207226067479719867356763372911670678933792224236299284168978173582089305553999601638426257478758071939797888364775757937373467299326349129921165618747666983203308452759079160449794732661961958282421828163726772837549398243544164477588448090032362483715985386558705323878744794167451785847317451067799656856481479800846657341330030883806226986503534214544610192273970479582161626450614192336328770421796223227344060065670727659402349944297463525658394434515030085771986627183815550343450531007656866040835890764375561151934708858883868811885662921552113548380608203987120474713978404276162840350943838868072027646169468183081973710415582259188956987275741937132619931129251679915507536654633091966311232604973387702496758889796813827352098941966774606456629040965067058227621986912029904302805126376975022091326020357458209378904090059830538192954891962699694040424510835655578200006308331552105080130502236468081441513179810214800996132009029563047737320672976537754284396734403838265759705090081618105925993998783406159286931728066033311388837536961650392433153641294893340534567188835366739770118872292885023102605618301341163391931820910501523254123507072075792994310386143534063532217182123201552964930900389585266847041841154459742740790923843221951483165989416278337524454567864474086135626092711777146159818373167222829811543310762519831899773874555397540081685216604741596445329251488829681238343798773664553905037657790450067229272274515254250802906263773256083769219627456589231518810974563368447507093605223665259282439632690603924194769405006709024486683742611089588977296255478981722988994165163138712258849864024675831751072745005340511723595197843381038487747720680437994057231851534878070374286713551971228631381447975053177598313336893201402359596828454432925475130428183510106618954097998270210378261727404052121287079207220241664917859549916933661245784696250998846561782401177375962871385340019185392132624483105570408829950579960757991629495418084212197138225697687309651028672860156316743827048005822816744478062659803665979039928347611195194227021595422293121400898737603858370429721935176595997842202295441533349089691632307814416699309878653335223226372720009693027301483606792880963118524059147386291418454322733139438215270539154680757513537824088598890566645608942487871698387572897131419456479625280120589601533478743430738782577799946565298265394666444864342098592652450374093683830974127564562361688628005370852336250093588585842205573867259745054028799814686220683092996807989524764005925307790350209281626416236359956888299341696887411758554945365250635256909708599417762511852666475022630400150734846777976096691513347408852018964761593330835420139485904920573823280894937901191647876565729085580441052418689546346705974387452160960486775708754957719817640393045630757994662876356871271192856039377263309498832175606827040220190454425179277539212489604678543137952543055438266373892979383418158407736371936709754954368557665877620673408004608926183786881576782631803690104017516777225245996123736858181882065768292190605929924896544618376603131099995226507683823574852787138637993407295911434194425873104995242337135853726325856722248445895851182910521120787857952758518058665797353712715557203942457963338947434206940042526022368056174502677013518836924281994997059996330799450111022377700079708069975397890247788637941284309841882349384627415120216677205435579587551340441421891560154198185338428128299628890468425043671861796310411537716627334961738878681756246617827202621579380321650893373088984251584129128550081881311725695332013727607685017989354487429194004587632476797503567959251963279852069309471728571468430193520940954315034843151679680380458712477190930809782765796720726974999352790810558139601158570535400289393619761957810445509341612075908490902003032778531707653787099251991919209767330455451143292721648248728004365581617461962406385218282702315155454060210836012909747825794912623787509238755722002636618482094613072920154862335511296032790986541599888859507599823120768615843962759927852481591724752545710766088355161639919521216209088851185497515252203391035748173272854116156546065821620746727248566719330903540455575950136128209780763863708428992437453269756571017536089127014870084732566376814589323811762036392446736299385010372740399344514933967256900321208904778671718668888349636219857609455981533008307461848137598222220491673560511874740059800238464694704797696658929014711357128609508593084343146036496945381702905742021531997759136556967047764091893287879280492433703443847967027164896048809669544826198993287141722992356669265829344243689916775820035457620134533201849320940091343830832456926930836939154664442147345667854296451938476191520489213209411285421171491037917877922947713726408943864271429766143006800981085706332493144758551767046589975240944591035063589767094833462947401850746239893825411197897306034697212300444589394958150583647513471031342078916118260081357346649305279619252562998964270541154088518381723836713968400194973445684514729653888924275018101198330527752652219122160260865002361883099925614910150591367984577224865846606838440033940839384517379093132483028088316199338560918694823261038110309337459166322506274009930066410294384604921918551514008902286727892261113942497584447928316609813725656823532965952376186400761663920799183209557459436705769418200398400050740817822993459947445864110331187075829762780359227211953714820776885861257374778838658878908293817302566213640026952779198033410989372692645708541986206746781427503649398636834491773655594538534354822292662302204315812815549859208535065871674163347506604018033793333838648881579970551683608554124152280192786399076373491733697935170346519743540679564494997911766262579375633465092861836931784400818694593362618422554192578303051819782323265151094661130236538210678048713120361721975384811063942462116104263328477302276869563746557639855315507660060281450555038375885610519977001318343538356150162950322686819321812556860942236071226757916118097532093464089564835556286404156628827897671809512201462327819078602366974164782853560762925160926815982973412440480034255980545032170612581069427725393306511046399655284257885140258574440163076786490225008569992491371943181519025616078849369347056332497697674798156982121020292557238369570313077905456877534002954828045999178377641102654978075627476417792113842334884261669484362800127611769060258235202287208026030098314327965828963898806454617102126909743229237750222975985382579436459211138553296553262835159730192819563085320112867908142041846594953552444230472900383943525643020652914711291865836757155457156735651694283905019839751945170379595626897390926284679742462922609923074719974225569055668654022624863873283176190596956396670763935561364318497682589027276830848502194731898908866969191771265760899733798687803532335787439716388540584589688075714930296606687923665911437475101643261395321502634865964052734802668659434031487500714543406673655076838379956904566562046867330951650085957549277763741634518506696623432223202774171918618181904854695472381481008604117862555997036495062348704744820422301711162115154054223254117506258259341302468362165245640975577748907129758257740988979545492243544315666707601622168577328319757082557029537519125135246148745010044459012462181901606620352037206441536227394712549943721311184408010108770978435473054460640707377041692800761148950789761358488807387561256582691614888535323147634473438065463388353877016321132044640643098052428636955404148434372118479111789708534463302548186787842776550236207620514393968687335672259023627263664209465824805815601758318853577641682811638900072830718880815263534552117773835874008280093818637687223330101470403672412402363307306529409717787608929022315717131545398335901958467071866594536466771224753386423673506429275258768759150288399621447702931493381551768190927641231224821895381784233282304853149542356331155978463256927250075860908343130135417910684765514887994117856154299272632230603892129923319326403190962710915674978179474673034125995324662469692749679669334341192415316697568590435753882879325444090080928249480374768443366111873521314955857194755552692296428930982686103863908575040791864200433606498993248838178623412083741788200728737913735244378468732087410286435982578906882326516062655358846838219447740485963389130157245792377145584735490049563192201393534635254413784563448888867393471245131874713450058511841150832100214951499829085346573703024771492701773782494713916258853282930138333652871788404549201886017581282494716047534053648929274520929339087178648889827863156107414506530412463778160998897962218761176440418292231490945972446776257007868891574433777456361100262517394115926454479687091970559803423133888412074886707851757825381058800958601622140437044622754548566995657895525319396095025584791886129824140799672470040896074753979153671776933468813155048671679279593828022590744109846388394660929098904247843549754215451777486568006704359958016918671760280822140122061749289806327590692626100827476023477170355201035886206507616106174982172258291714871497771058703463373545441351881003074338804981321496696724982030782687139393584635248565458307186909964526069155625762543786717286774950727545087366032357390799214551034258931577825802630062309508904967041768946175120508419431626493346605452193212322098248990410552957369528752466245531709045303816921107727216464569758914999052002394564284011503706577556856123609537430417481445692287935636620207782504396276801201479625472817589928516527185063157249337078531025171787670595737245433777713152288250990571137335303510139634320076118124897597848007317496615478443259369325412738662792797373292408371216899389158851969811359506312139605933615237051761754509105139426668161701390246721391532423847592493194536303315180836976836788432146187133682144216353626216086496333538169127238553100479742515377102505517248952735774961126739827983858237678257901690930155161428027881923788407199572569567193123654530522704955164175396969696592140151936285523425887613561809261587084806913224644653328053202579001983602774189610797214762814183494339050959212347569670965859279829075552264483901924364750342297461622317674638324373742191796004471862161066856768194292637483977042898524164364878508701647579094107181785842712389761610438606251215685321375050673352139531206276609511505937901707424958992048452308141413396179800529745763772391908383691376355061582969299471850973238618868218163928426416090456017354065793525803351827363602301480995060916813462329003832084828779614970896975392745610572063007281606454154960548877608663839633059901174484850734623738634831172761057950507261768589097067652632598163349166450620151149999375648713313763881137587563089527537789150530984884514189249149975127610980663783801343796885140213541960852572525805534482986840766985734946939863801865381390195346046601938695380800957627549521994535936056902143560624155338070856188453282191144337375360121837998032923697534136851986101768607385857143685478546059278861313446862920290438867210298954478705196296810721531994469490379258155027869073548912312861255721525267358392158940349524692242902590248365300497750872953435605451889376657651795112443250756298804727798755732091255698503677302929101054742410776232673257221164143450671615043986592773021657568024369321488528907050967813794865261522083496831214822357137710386794104721369744626943221100764737825400870453347246324951385840155781688774672500820136830413645110458985408567262208835692351352073297103142394888577690308910973388905912130106867515432115549468674473468520064946244351229018446531381271817726285114741068024960083439578095831182449354067745310486261782258461655630977306170165591655769024730258083972318725314811192499095304945439495099284917323919429982972088925194343472328616246740065607050423381991742540097954771362882549215105160822965914790270625049718173786257585405004155011255142371698308251079829189550448770319394157744812131999123490120434437300039146879504590811058472512133967025509021099442448111515357891235614257223942929684817500599538744121205556084058624754185295943495284121818643582807574901824732311009604123432711594623864752406208918780573743771064235911813149275651918403066902538588140338891830154809980595244712839762818983994769783262004824662292336199260226870919765371873570095096706740047139187003262830274018131040789847596362459191309227865900371383617024477132661891398879016418212778773379144399988777551525127712735522102685487077911329188995166647560603598419580678403800263120671501646013868800406999987626399544438414966873219822221496077531903906546744905481901742746360886595155465143565017748535593963496939184615286791556158779217512193290668217858574762719562638518002492574857846971511984693293013994159731271515996644915208590070119820495842297743282256185032741543290834743989895432308143484853924650389515020077109315142259088663065464891552933015951158425301962042644943299050530982416886598115931370728577940182463158221670953961788665341214283335841807478757705515811018965872931552876869373179764313247354517554460392313591630679597495593864326315916715518881475358445480660817784576431137362454358322626809212653401966759091754125759250860061378529421684140394483045505585619259483569514127301342375054760091756815152232155362290470514031316545018173030194702448775421647610900510808036846290692949857670061965940666804092981428162683841557556128431222170553023629879910503326419700241930319678614318561291978995546055445746694989158035068745244609191517030744608658427459407231630163677070832570239017402759652829105569282191515551549418286067072421325932822906946755493888374228382085431705836085057122148613953062130915879482020416125960896046502450004766950147390795158866757128593451552365435257152639144875199080182858367099053333909124724018177690150615563629963643463863052257033192367357685919075265540312846310082438076285231842158758286040178941010382950866504593555293738482738615284420420399254832992192043176329977222543224500499445779379178139646570764884707714554560039164033099627379985801884227398477913906001600867529647682192905309354838607124449686315675200965845663105305381850234294622724204604736471901354617042080621301491711158280353022091592721892452797291145554011501837474624568713701620746052576217643733295484978837555264825835292487037752340121478273316665870144138342606190354028189627466088497182892183117861270198049191032325631670561820149898440021870423298794964084292562845013505022674669661723873793254813465555761796009418106146724946948148971393602333189687069732000426750679663713042001899171053025644571108026038558382494574777433661908845701786993131899000274325522314013475685092209314547187124859432796101004691240853981543970654927147962334747451059413011230236004719903013050591910302118730261762520127194725766547445733395450203355757709746304432646223154878890618529197785223804449075823181435433593731780202321216786992676095919309741227954770217011140320605848634732714877637559600371802864182150253339760796204213058963944426217751543268266934308419671632895101911134857999662166967694197216552665490218731196008543926362388713883685533532907872269248988613353568694797240779478205561334473478764871839812004576993276029429233701906785781871479385322669567178886685726346580212241676032160651699666836724679039078286702061029008782956279485301225241193487146815633305420184212560395006777876455989884745708275490487829767983744734118129687300577741093531478694140371758552333024909328131052373159878691886729532450243408899215338120698722101839898746761088524144052613136693765489342602533192409332229254306531435623725242868871023400126125251299968294765593152386179029834395004786551074982784441369949647968684688929797512381942264221157293314567548066830962228757854737036040070616205922487205601801260674657897254564882168935261710360745474945656056320454604479131295205280399171087731366275240751604368320500542901539808658669676442534411005214802360172229805224707679978126361359011093369090198377618919138912483596621327005561680837427175698306621582082335556082260637582662024141482787149023045123781855640667800223357176190599771797927023349947579616993989447854703099017271311017524099297693737628699734933871979199191703223354914386066305882722567690238815848781302727256669644764602791248805367916489207120277403954544437852931174897829675919768242138144833136054886024293152911657302518251763105522518454678554154056696233564330793913995435726770835917509053563258924682647282929359059199699880486130503459174138302449981937504379825898380835201332003900330200767307098534946909957996229847147944735292543062475051949713691962169884828772438757113009837398470975206800381800758502139780834781218830957291589334264499289615986374416774528034643085533119351785021194963256313385659739418552878892518405280901414302375885629257150095127447167573903879335531572045735720413558467519736359419708771479700418312262262752002245408943003262384866022211531593894200130677442596485212993203699369825367763051709259123192050491778383463044564358197255132369049107066881369091920600341063426533313495386018324488474900726776263268412685326203754551748183188803378173851079415900977190753645779010482918370562675018414403826318635730848622565539474884944302684078760099698416519049156619728413969630827039445234000401890962084210691702414428397537472698294174779033364806254139523693734291721749277551754632395701598502699975917439829720915906277020356926129299324180262913690749921675740843072265089506272877113606248982649402164125604902441927006571358737174284693220704167010857315661897514143261471348146340813492537100879818012983620503154723516690431901913824808947732714339891561683240159463210881261715843669467279585478991774169693765664993181977649985213378580094693113140959219011259741386740314878481826486890582039420628713057436499090365940330269355868428893714392935078891083834686258062950562407755315833107958820515359496592561758960605451609678667545031317849789126721059469906139896741288934826061307306840655627250949630729925229633371120289951425397815775808498803793675769059615144721796226137791451652064842373132144599225634505620165450381063619253105296707517084354047903006080363112579765717576159539375358347406499087470538330482844155318477544073836055460992450368271527042099209450933371867523653899926955499660193494412441201525741698714308856947264909606484270163257441312242371532773729878647104300010198917828607500460393982680015417138728238744477643903366944780705659109609704688288999838443180150492037064704147300872667104877331012209860680079393834837635601762908544338247981973031349357403779678342986129136111334803865593440764311250623912998358479916606373536131441174943643958805835508827776843517532864155941241086972251602643607269427165447874343687958863706314595342142546765096067097036101277123491346431846771465508258327167247350885953242276399630256165854111403049601373551986794156454251569923200065414363596225579865566658317230884125830567680827354217565896028747434839841347233813576211563261829434114151431906665204215288697284990089604429793441287548194735251213665321832244560894646825177242352233822271313226238356118847426769843106080297354513753578024675387305447660896445450335647905159277843770783365979965149911268387863429452201210546983428864158647647006029230945841772069034436852972233012010681017038851723643150490480206204507226633369900977495588181731356206412400848262970334624840496850962603456743758380192234937449488472197693298816822115217824017239656245333366239888306025372265247762187487931033722169443940680030583229352733612923290383467796615630982274607563741646361770280645875736885042961579120419342214157695034458378015333846742716178093583779412709975161956824894768301107776194522655250788343475803847330785761212071039465169154820576600787322954514678704201094425799194472545862661257032755575217854679819885113583334326843973968628202078420547362194533231775689042361378661075642660084693561960691534479111579196451540140545535660610308185182842483424144399649623418417823312388613893064113475072241540028202426482213669846619181262137553470286513014924801449409719644558130755628264633800605152125863359710308027826373233089767308942877682733473125605627749245289027569816040024585614600303591435796329881972773367701600365243482669137245735278760319761532419016813213301157819883890466265377355517522335289911586261573578452053156394869898594715928448976865798049748242768540612166818174509663231871301644149696670901037568382726390925441396757122227482650880078402815804640986465778156952770117970657372785730228685727145424805544582016076584798597526027186702298800769386067725780142135858796843482360013334992234953529620816650290760738586241439703006569695211440710425760519966957318803940099532428640328857643790002568638506830251677824523248725176245362449052519525267421435424051676904331468052692265534127850308214117948065670240917669765804576886607709572693978386020968395875714990344238983457526995231389142941199667251432266370285583824602372800187681907464443165620732933157775310013489712170607459737761948117768457879603916050634004512758446257612572608518342154149326968861155315371456951327130213437591199230873992514543992312013242347816884125248076228425348901255716501114257032572493305661287498314709017470708990195227374666108689515490594408962734330637910173627361261825435108275259656598553025185674770165681456157017010841856105031831335519542653613744780486094701288807913498657758072925534678562102596668345260117867435398125138984866988007461817760589038350196157237757597093385336644118220471918703757227810602944908493455299688146693552553253219514155681089297502938099771913970762344867867263437632380901889108287386750945627942207370052211596371905473862976299739843904320161685087665906129810596981314196033952358596718453133211207477251970153303812727468819550397709265383019357618787668382415824612873094282529719920040524613748523805851375973841493004752557844922400982837740131569274471323895572844578082331121765634640632433504876539318379050844861446797047517925007770480410580796925209855267304569246426361717284724209294210149933126537830480197528033022467988533876346660518537039833272727777058480693141070344817049116717918516991447804914597909515562181984212976170892746397864774519676641133062972905588074405995060356308620511524850744720226666880955732591071882470227851842585818525078683353302507543258981430432388228731477534596600474355861524911229261614099718533572757011577587604126383261140492392961710161060919608064513342554053343944796071771699001743131057347380424899257215311490749739067990533901641221522548621687564071077219708191479367319002338782350347104385627554660530239316783179460245302037557978497722816131187559031931975342762138648068721001770936642002340197017634432838788603371140278521901897808997577645438300926198987339506118169448157730798638814658312187887652731770140969013666646804872423073961001080512644079605778674154200084318744135704030822944293903618240961367568721337932864208468623902715532824734607359217830456058846939721452953897073430387592300630015420203232743323559603251248911480174744531498251791340628691793065554421038113419122044995107659859579209134594899917861486092766833079835075708151871596766255203876558353759284438616252894592054461326444470893189314089498741682905384438723096790023291829145285944329848446760168614817766325515756757700692892414557766933926623712535175152815266045793413202415776684675286347501837956603533602146940548199312234443167978665220593715623395632840077323950174746645232337286360585405491189570271200340788661113704857702618930373963212830326344028829408928446110095308445735007712823681612033045946954689973358461919353696983681491119762965292969025470104202736635951363241121105173407471270144716600452618219906833244805532721648574866108300692660499859094858719650841715993202789864761667567578225839270636237453162615735673621983015618988448210380876890619861470235783640387125128403438887291853619822120300993905287160369053115057645259183231085795777285239901451978332923443784524775762128953406737550946640913255687048735536218207413665817801535251849466460490150957583275322693736280507813696161098499459491092262646522458324369921779345973587056664360518577966365028547403018843488667401338914758415073509661804294456643525925220407658283680726984946505425483845358547129863316282851530945567312117593081575715169291413015514726707514736725404133894185668939900982740481573398386213122402560416390914045171762341527632490076923647518932557466748380900918105941891730384761514639314712641192474148767060421317257491578934206817210697000055628596151248017956288272468316590462618162055756034147234811778225238908570449511389997228659899762194852576662390031311535272326126615374097132866175481021264609155637401152227830689509434137405704554927771567900537764905230434763512804874800169284634048688494796470210478060236049160503572623103457819134194978878671409147363235635174253725498381627740515708951747100697364106384446073788313430221869181409745451619559297417852934484085083411888488186372838520210066848023132579379713785351216170646831747707213746555658730455462851180462665137970132318079046642961826600504728325326340162793894692254108195352030084508984096503036008602708559599425629953968735885263764713032644641889822173301569892412432130093832711418050318144748629173493788484239364320139731718380473322739215305714074181309563574733103780124446566959948896938177698157236785674318026255380101884293367364344763980788214246915495259069777891668076775935343349125149469249986333364846697139506244607451529973333963405210259358000877054568853098274936970424070242624981007236631241700938794268213397213925866771089466385641737781868178182537951348141584086513248103876344803922738441578852147967072532310931943218774275049333527869597226024290321024993622029419346314084786972306869450579966877426012298364260409716005040022841353413322102433720658857601767048527669103442735673815812840597320872821541140793547121216000730831914051016321619547740465571165615673062904297147539170328368272488709487051516119063246596290099909747700660314167602980906179593840360507621902680195848620074873627164808581318829173711397992993391975563286680927540570151994884758727119198085935316893927336194080604102723035116497660402347196197544827499138664604274250996961455320908131990785007310707187713113016079047452929773317193760970872762697896387102783834160664915041951953095108293183196806607838778116870042141462262418033291586031961213048044360802631703484327724103798852238596599496083607057129747298741207484536914974086933384578034378279711710907231044603611282327109506080499654400585267715316552126350788683982159081240594487421800792627293337790672673667485980045799606322393141097331253848078605373567653326152395499425359503077621521927263918945284430083877476826115503003556421141258675728259622002567455484462143765573526591959579836744626108901859252263429579161094079153368178698950312451369592177745221863509835074953718264355478149223913206671840007863645737271110095338252613030384844007467779683102142616853774183089318692757723822600896535875355291594304474623007135509300199738918719150501838616046650845110608843611566806883730534251671359213192029087113502482776651824844806809220401229604401694712596872826943403818862492983142613929239968134221595726145029941216281598208704118827552943910197775834965925125911928792270719815823929324841991420439379052383232602209594864149477241170395915642295846475098907231853575474913915279254678314212944132336827003503437682564409702021273832560732497593215081335041061214786657594777389400905640510104903480783431443247924196299179563706397387825250168818099279089186711121772743626179451039930613350075044468882270616849963377946533137644303030139632038813151304014009279892457872307472654466661274050606864125169300892321500087326329350633446839548445942924885786416932001320491979483690147424015869405686060388258952977872210463216764699009400791749931048525253741112533846488668597960836005880847899561115456758599389425577533999652876537746518026098153876023374424772606681716005926001269246291328649064900055760079643603482344968145427615653455946604858554461428100135201937249112864890611926531922753450166646769293166834215714409786047906569544347101673050674897624330343966638550459330046751413634131750457577872078026538689191953331491457631330426175122184707694346848376338716189651354092821473770402315996541651572919546046165333785815935680884413222467294737496539716715130258097531673921010999055324515694318628190841827817471920417225878396573366555784177704483696598475781035752903980920361947070043742318541331006943211401257856290896488502649849561389112866776150410634994889601720410861627430377674520963572347594641340915688276487087926585665460796418106169430933962747870988635366262744617703541772058270567441072671122596986215976175472709139576331553292729774540604838622195967746536453125004077500185203189230945934200856451545253175197304974903829039337902810314584207966272087341979736007310990799889826678857923235703594745031548497764084163344726889794710646343289950768821748762884902902842964725224373550782874133030721331986228227221428738256986652188107410341558778936205453791545341783368820802488053716365599371654753489354799465066441644610362048289087175782684615680557447199632055531119552179146289299310750529660084279937524851550281847895469478915954919976589317880203318618085403699097586324655871147192406657056236783284187108594317723652211762011005794722470570708981967814037318420860189497501218448598431537997932781104875772225012611775233478569492450603846339143164198524638892418936572928581505682840277164436618069553982743287317294844489475635011758387137629354360719310578494727780575579894261599871483998682316837473836679753288536034006423079131679167700547639993581993043148701393315032473698571787891058199203016840413257256423476411831948543319444604236184911970598072498223242713405660978286307364675215882418734013269476708295181882103591234293788441169700170576150101654044090289939148873614445640776714128632306469247904062658927551912385421674302008603309374202708022170625439578442759124044040013613372762595384046605765235567924096006114364898695555829213547052430767661820633340488704855275350439525092329134210188342252262890408217960625885150641646575153316562833927951925094155463130403791680213133573304606740202828995359025296990602079756053702395419353281323405886831246744036104067731921276019578301028666537736178044673923658660678625791336527203437782183667582671593576574220630726219472384371290207421368221988875412194941855057009760907756299989701718192565788897351706672932899618042130110326131148758469988333749051639768355194451927326445866070425621922878170698313284312347555778523210508769551788848326234440905250847926130755969136073170371100864427611746071469450826963823127610721883711680897893104704935643652624665364227347766285997823776149878939153507383071408939982915286107400978085694100027496772033671300905211105568979100890430418949529446059429342902529576548430878649642785310591334470611975515373739242966279618622970979774979126319421034280713047916944175789459354927660454061700897235874321922055999911464122248620192472770834918869482831789342110356129355059480132142205726606025570869444051076659513599506128806890095522765820785872655126973816938691326188146572655578746896517591799798382613840468554902476618973328356837401354782688205695902494479353008277180712767925720494637333128541200121540448089016376843541965933927062398188088608398480677842583983435894184206621037888748597887012429754976965623514444557710570889401675449471999705826834754798035749959540300620352903658688830962991836514406983601955413046731310393393987440699968922054753890714391671865892284880767750718683997910867837292435284531365332654049339212984056595599306056118544078172067609024623671391327301838254397164641379302021694455336041374260081123547598527905765424632779307086164682463997608196335966978121405206659655327653784527544642373923459723691029734262213346666763472948286972368382819517804203831935642379847558706966566586356244943909811270930073372336718629803302892279972618002752554634885891370162852511124564456849763063430337190487613645498828009728376506900484362101332707119501381114764243517623286681550452988298279128041867281123633908893725551239968188061192054395690260654228541712626722637469722230140749265240051418396910051323418388074522492928208054121074801396055847695292897988134557727567005554384110979160941455945876471160930961137503267123451053218431384666914580413927981484020454314796122833784767534837826989045700766912063325165204468586870765048370597510824607629374370270635864851731383401230572709732698903365359154464822306131722860116304898416999707624427737057039811209566346035553752411837410251559018597827829354251463055960314202073258654691261782877110689521770562791887068698758675796151550302471224125702192764976390413558067564029118695279334311691938417582568876634552565267509920471672301668257531595728639688071448313060899540372820106642957117983761367269697106692121408524917530863421503747869837137365460562954081923819328683054250724356930459760803250641926875341669391351184362855477482665842793040233224745055194090733389567247018292658921610934134816757174852894425857206533606197192392329727895948633657340978362780068550153569263801930263368598337732951534196138663134434541915246586435611535247851343442142360078616640731944803419373521635367587426136237291242290449892167166043123510106485881135140243612643144942972358121950046684532569607213245647849098641943573856137035054179888803600532576709232970113096892291231264454148036836777501101970789441943623031122323291787623238802378088668494627018800778663258993461624807312128235189761373743874698702447527641887079700271553006402712026441697013701030958712138591245191636489915994169262422484746658955407494633163029215864315916242211545453310803279510545093179594562208577033853641716656964564492171727834854995762451179847009242403341678121176912653249542212695308639292742704213265984469390941727970548254051338082048849399322057309570626167747423745834129164831540902390748534497029345301314985874539482206454816900535023160456927587393279636245132353163840829593365658035339227036263385345848704904842641920796347707429456556758688424364789438569485753547042486144492992821663403575403431022771687087000731432881650362917396211630569232524928511926612723568159758392429819843984112132712129956097758005378182289817863711528483047325576149378197209013907553013047166489864761680497044679390592404831810958022371419749917051587209584921054708292991286081338143394020187838298120591526587056288954836393290794786621761460238111478093172560396883830539474291112614415625091524724872521125060314137462509177245615707387707965404260622729183060013717228306888326883265184823077252393234438854930953001082441971308370517119833012325676057744870740589735862307529031716545093260441824877574327675769707655276533729418067791617338486502351749875412786109120859862505215550720440228306858411668554604751176454245767223603900546946859676761696893069593731205084815963575768045201482293733681810518694218799691101117844076434850262175013143450059256295093249823433622755822549692027970097473167137151152157939458052779560071890969464599134948426405783885951201617281545904065595191035956473264528288540898932056223552517697509083624557844067908493600367224872086697813835823690888874642921996001438098713101385572487799717250654235792901031054327707620182197093979275994531039317606449047812845522146715608952560653709385763661715287558470908726541129685938705441129699635914294969063500650302338977110671903720931429519684151649592123434598382164273168150336206658544499904851842510956503501873096748121564645067610636720548175771683020386601668629488589276509034815532573620947769071435853242023532216950735262885521607666839237545139939272728405023742095803366014707792076980386338091397955417884300303396281263138481945155900899648084785040925820136820717973396456086505250170761792887343321448055385086994092507126056549620406940871902471725304142783912308844911355096633190595849801774793992230766846612840161692695895984156642088289614524695414816494292846371625343135291769016024337031978870726365559085644306107279905527899845253275910764841417452963597859896490910633112273083103198181726656616263446808127602928080626761502788577093705489015515158399420237374977165193157608274368045087011968164018004828574351890791356891867006510919770949058710539924739864065914613075839605217653681128389666536225686287858927334940751920343027152423673397058345565748264572708963063499816645215232721328418023101986269991880064805947394090199379171330879303326748685835842016178445761846940934029343954622047603208386913178450573504535804871469295613554785101508129038164799994969745195087151670382477083400942232451605418522020999906684350323892055656889982879578962434381492433827932339098500762690402112610023450218341139010439761809003953507392349938179739409887930151060211492709160008908052066995125365921858540673335723817664551124889176660637124038114746183787675789200002491889884507603069067336292911158149067067701600741420975544579551237782565401186696695976478069303068994398828268078863110821584548854231802443837452632260941901624547056250030359502782805454801179642889044129329632484297054803990926240542680565297240119038056115409076632349061123373653424866522548294626874697878629845196129404919250168381626649590332415034042811763601739786435621874924986833508979356598646093519920657365285513267788697925948564768309891646955564689012325714926017602037059693624767123519757551236676396690541347371762486656728912044689538598094252271323738184686076544446841940165487950577034686652516416549588814617420251845938567446839632736483699141582077329220918241188093346295804519317497561932788637614056888210047698222992174761054307436158722357354508804038593751604620384159284810633902837862628366222378596879902250812026420617821827903690054774511509100766337694039260323129076531545290972843889199591002592835285909858957430204303491100744072857001511311716244155756414139823921755780582143817756092366286736947821404346549341247640714791934582188799143974901546871554974977690898735648146362788766393510562714045069550008368944521654760223914364014383003161333389136996280265576351374045456444401477509300935755072713820953572268757929199503005934369682488411314176345435218133503992951117803477022599528967565650565446705506239160396278663037134020899943619146908999972376558223790712998640639241862625608454840705005748593187760834542392336425747914453974666399072530339140159555808411180102122309212606727227685318280567774585520229557605387939211337901063588083547513362469469127513708850785885688915560027187116162957874339538716620408955800989088447133568634331395527001326070417713445072257801826860169191820219576835090796381603054623113456019731307448847803150144510005946873536237217132866458674881366070518023134682309403780663876564225738770742248515721622941445536371572968338265812157869143672007079158764366718393815252239665994890727643260424902540362313032511464361232578317792482311251273125003726370715978989842069570206679736902635923072612509953678614855433814021228741935760521655566888669745927962025027003419402001563597789597528261199349726426018599270306206933503995255110268774167046475137079738410039069027354862799672902679682479660568677056150283714477617406943345811578966877686364214114527667318609303118177735461917831829143267919234771825474636891709200440665905413470577997355974233077311309995531015425619186839564651128477657964808908355089065781860987702824273593558981966199686996768828967150384631904005748437283295491405214509885424992102651549796601332177738343049033737593878614411101152192428659888091357298635447839995205238874967006738870375455798847845267444201617112753070841293614746949060975776407212766694693957199715242033600671315615760970613523634278881232111752573822064509298161649372624518160316082294765285998308135565900325941909693616171193708526962881625556002917558257556484454091122609429411198925222682188056381201332012870819653769295706875571252322414368362084719786762231435005412787934372425119707838151555082914539975183638780681292766246805062435749991213156127903672033052669490366687295620933339461995298040712134374796426382624917276733454939123423551267921156249219901871569040092730761744848042954095199345827216447984195858059034531268073041177386387591368434768033052484609130044803380742660789344827889972942136899346868562637905252647876185505343750884899149987343664447747591986485059911411443951170697989684346337521842602811105184120714853136683557165849454367751526434976838936829840662696006697070626448568744246101527120968236495924255356537737846795869050938604335083345943654287799586842197867156485602918232767732551729733753678662808394586998152086222376353722603060809479898781611406930320392665975785844190856424815425300357922856266775860354552597917483640816195091752877005817358159921505795989917222710495086105945635024581063035759521408399855907552375577083355090457576955506383584408844381128313355435775778714288459876936774978757386686944215913818421047072016399338023230214236874446272687184700003533011560253081925544412661860465213229781183811869434519891179627286377201603341804911433338708742478193594579816658096754953453705123972149808460949240630675256752468369970386221908570026282540696312770878899543212914686447332499708747527236667756311690779587130877599911469843075950151734011256218049089222936100227865216075865538131585423442937792844792241285334730398018498948649524383371984046879798087387472315072609122044976873585138374913505283235143936375594301091504855984131350913714112521745937691080719374900994066210435838500788340217299188582150645662460613516692152466652753735092586209383154078106095539608829800233131642442611101507845970498265203505896957016117471916939898083038388387338103641152465341282853491343749778060687446657294637637053420538817264185309589423276046530841753109796717602371049837274722520009241874712189682864360666006123091901136123275700159342026181101019700668795669098869725684318178258366164151106974967883668284518089184907662997159964260120656539836914346857054833880688759185020287996368318203983211885287912654221433423403695408494616454712367257616459873490431066114626936623333350389739304591015413253379506642061321748688021837813993464588255465419118605740034708180265491296171768553805468086943610770211788443282291035980128932801485805867017885097698195737774355914163090564532082793745338001015798289554586497817115466997086701430230236204474670003339785156884083639750325513764326115276653368422455640513210199840162943148470854299343208146094742389407634653079013297544105136201172883198563334039247201968515837525820405997709348975062619513360280673937410769189196654278040493151252579293180187644067233746738061113600448773663740816083303051176820311041424648012915439074024321125672317168702788460981309216411384548953681649117769222063541778795853136078123344176781916177381230467498516119341056806600331131289494782521313770406851123845577589291120826587337729404025795699467580807927511979762909958044693556146109715990913684943170669147342651663143858769380808076097906812713557665369291466923711882014415065497510689006001587724077938254520461541728761579517017602872037549687579224422196171851760148039380196785462030905503096757657163272781463299775156053298651634938021728213227311832878540035285989057171145877353091195814491530652073770325348674590597738426689675738061751763872768090860657016041476577345816509881506115162993441847625251415894557896924965136582156176036279933579098502118760490412387228714138242276505702649530392030367070565714143668702791415500038322516740347610315447006298836368266897846511551870908077686869725642111910332487825298474871636914210582184034841359712376002471808052221423727283850838117492626168703200920866430849008634253746114610931071748964778740804373251655949921434296142018529852051466241554075333825879349763868047447644127556860028226889453381225466490746562517534174662728399689663303617002990001790850149146300072290461058043553286758894563694482188238271538243081638673927016313115610144747508015828263730072742584966879442190644144773532226205648290655974962791965310535278509374490582843323023381097344983199490118524936136813287096959150885238373685796184289341114610009256290022865967585307472917627982111201950722496788196281466367588506029007586938213561535752879495385136421278691408068004455430637026365355560482998501881810471819619412811858904116256860895669962118980820427509976036782140519652224670224399372438758933749491698591808160949566790316838753643395934893283278447463650019475220209985441182796989512544425791258477604354647825411973258939470026427439591660476394823732147134737106461019026434995487258962521909083551645760637902036573730181401675342918986220969309680898029592081001494740466995414422521918302517408358139903172749226786977654169996134110246191865865201061420091139427335316041255270054600758483164207944313251543492971319569021390916692013491759857578796555389577312178924190105314654581712496213385820572780092895789157993262624402276266954511982839651006333340175219803940118819911439555039415408537244547674711201997974445398723904217603008335530115093970263862696881725667924990420256533351869078999890332795946020130217228553308014050176901817532765697255186140389137409311757157665989716001947641792469663386776304003075821397245606925133008048981307173147706981694110015097687240215347658740204471489104553042754801141199304845532679494865091449137111580680759811523625604574596934418544249951131194873323394136704739567595092208568529742654131700006655638525427466453023790431788841997530211317169373856082578435275164262934120708874232603002986923272655560901665266031718227940336864305270247716323429289796891746188340464560230991048476603461657051102067851759370575175348116686438143171163827004532057505772100820644206898621988331805927636063864011770236624272943055922675756041601772579459125700181845353308887739414161087183554344608349902691065259405018191046820306631177620483392654990147517939664519588656057518919594444024396878978280796814698061791792221160503591046460966698806254549842274850114334213036140668702592530909355688859957943321088613283486979979100469719066581238566884452483483243122634500147430722392165152861593535424011537445691411890679181932308933232762120387634070347567344070705841753833606497230473633682545407310449244087308245293051696990464784446385157606805425067932138310359805007164343355715669171912705652638299944290312087972249950079470165187097059998500675240971151889077646693191730515763461510835474049486572793875230641844649697162873975636045818969174455335279174787496083112073838765841290776943754967045358796544338983190669436067465702248018491477996353111320992999734396719319851878432565781186886527101034963390553979309125525998543549970678403699777749085107104048550207814968613149760484762858330787366953194125703720051225570969936324835077343970264594948182025354449037378143111709090494206334019963326491278994285097409427481346778923945586388138628662516347135580305885322828763439198900641099251376244764162723473269797028844565406177147449962538873028583328920916217219929544581376778540310525941388556207290375169100844919029659784586218977798571919953843579473103271429615832196223372255359244991830100392575428034174078912451745582147052796493029581445172210315602400635033167313186994708243090235484973319835642145954462138892608946749696691553344976248229817344219192613131220598712439107780318536294320801155009854269195085869202019304150375819651477240349807325217141120282889316123144595732546015055824580249705919448690362827909266774080852936254480134046474560483556510827609004450814309877724580922885310997390005154168296484773247453956945651935586640527365356383726723019689548905187849601356349017919842625835765112560428001219994301697980794690733470700152449108490806449695527500296605719449484456160033851420833929340755390355457282235847568375374399532612001506829303696086878597560174480459903497484379751516897111063606920392363677234648855548622997688554870036600032749358400819840164673212813262730163328386238070177409730895056244945679500291326620713510295408050125642656287833159686114512212661593139747422717728495969022958237175135438557876189335905675071950404677440751724338034047218053230375595296210807284980603634802048845368877928307954623992818768062406983264594752939338244738655902484530028782820794436272481336585266434214793016164657770424310545264683117264269496835233683382998965746832808911677542264185611878559612468624330744823582746213605837690498282607994366321040421818692902458148945285663523272466660130145503435767693541389605212595094833387508565099922323738774166581165541150653649626919736958704351997642188340091201774506551898245351696905399753784748595910201120195838321777794156115331168345095788998490931600425198166970981431016983955422974432107230310326715935647844486637207260138520479938245706048007779999692161545154790701684837427137172832555361558387853116138553827611127156404948823610282078538788500473266364583827377570960862727038066950927859682747294181066772330121995844629976012408246377382436707151548231012173993152064713799249734935187101196967405558073900375010364900578356741164755851537992385512249685342151358003602506762052360705711544040388011551060931232910622737603481614015261028158719927279390971042500399941602988868424619368779751899909348645722234063405959138495365415191582168481958205859468124991092431104792003767126779278673555964063224287822148496114176671837849599365095666887310874418413740393701929938357178559251842359672113311213100799725656106075483037135342438559681226484603230210332217118012937945350133199264792559892259266863449056240378891504954727279296164845921325342446188318279069808743215038822123555401065777279919850172041430493997310395856705654558490095676640967977277165859692791488891356819999893622991093364525331942866339609481343585648310017284227291632427994631648616639360122455230876701735227582963618973617068689747545520125732837911427635591942164869616568779206903267415170586625956514721100947478883006058809775600709914757338430792646099112102585995114565155163887492198606248516567545895934496465223466888648720368250039553985860628992286728996880634641719253931770202463306318320203081344911898088168604333477788899258186606799490526263076399422253359294141777277906406295062163168194360373616784743027184456524191685921078201373679182364107209834836712014263466690768879962469837935011568211756843813431453611251960572982899472834822661687892838131356690232851927357768736800426728190067581798519962781262800868573000724396057538468265218794922676450934348560109329257138845934733204113860150398169056415545317072708785558075303658152255731646519509456277814764378109245677730351469000374283357562704565491785029411999955429355717833127401957498500394962882154969742340458837720516746125936780162858368050014426928479903818219989933254074910405558706869272321750195349478060500849465169899970960109126036795519374286396607252027000747785354423526274459003020683736928944428999979398999030921383679979563945532132977458410796987345751696187688051030300772385549576419594619877717948165631605573043312676629601074579289302294088594890923286220761329501182154323756782726043460751899818083926004951290007800194159031564793329145752630748835800571900335803616123993030754049627744516721184263191753057172508805144643197374194979214336137273004835289821417501544070205182664686347595600449420884864662200092300209585774035790116205852294136222189477786347614514437309741640144712905034801810648664449695813119557925816827677780428920569966493799339389659125621630909976342023273372722676212819003604310083495443971059959504444950924031243555957752807747882914165268164844530715299176955018998062605110779505386779825805391508108818164715853419551768911258038372824988406395446371670630357982861366853222961138500853591152927802449107718729633556708428850166509534661132563642228135517734459650808182618706606778314323479794975443944127951711482827235075091429289838317413108533063968440160676666926401717543717306499675127407221440101241056440307838451313589056965828343017532726904547785603265542559921775662245412002750828886312746937099153204050338721722123063962691475838227441196506660791989413269475570517262228731621694023340850782577808299613633080916008153998308100778013740286388733489515287366799220428738481179719116756051073583188140390188951553318770396787421604623099023600445936084564141348625636635440942216184223353368796218485343856453704967067500384228045158504067845112681091964330011852255839340670968924744735237519102348890971348477607113944353388483043534096280780624850522919156983990678599080750009604517273336310270772115177666519384552377158743267187012484607330033605070829851248256706555068902455619781591131991845076088885450296891746362156493892178590275876213470295682122930085604653535504289664819775147643536726581168521633759127932225935112602302740613453691982944353685218225945102652543977083014365506534171432094477677687157402274882061293332121321391131561168646470933097747858598235048410640418923997308998292892622251682267580251486219599808213931910572621617683765009550298034035263279582076604571698353065519575089474148466858375598395121624599668582991157178753972535605733569845197346294696948876903153731156134131016185351023474970633580306629288841848872815011722931607858894474372697673291707403877490533332693235734270127533003329662569738060541621443556018568419990417705706692418670635217479502342610683127724197509588139044603065955718521615523550494531367099565815142188211424837934478337392216654847915301415708026954905595119971042248387949958396151239136900987431051824698604999566953452527831584079373382775681321769524434488264259082903545106925734817782124700941346667736408982362781922556359866680629103249755000081663192486459630442759155353637927170699109387012214693568091783627328717562629160403775825320658914509556655066322994446220803877600520167837481608993680653079999846830676237790020371354595791483781638542191011042804063003357606122543373380116613458241608749729118427441618234570757102061453358285186639175612422544250107034337879475898734428372746437987856044770975801981810879850910987726841629873321944517703718205316208267389199314779802912654241518427438686433573822400198396760942570800498771765755943891328908364659407377792463019686959659276436535008705207407799317815869481641000771620176957187487693675888675256455697501810415849046904470431218910354613394004889035606905819844901619946493643119678418844429942437258021859354406060705582477947999557599711578633939995227506809699862667862976908353718238181988836825693058668288320265296428171184220465153712339430049060210148547078393372479988902204020941986739786545616724569308582356347146009711677407794254333139458937967833698774410649864655252007116967969555207825186531861650240417350219576697961843452531272937277126918945779078683422338054877344681579909666383101728260745466411210499849536101272443583921608350306407469812494363561400157325788993667895227569735602150605799996936500928275938216520769036516980166492587424904245865418533348967138177065679133897378562263287933195799838917488605652359569436559000441617497592793279578588877513408509787320682506912497363294237052841241493364389963572157141713821107384315633592493030293388246118117545454353444562009128780381256887436390432838408172106198353176066695319254234970408776292665328658784655871048223192846002337045672733223041354507012742507398838211115615829766071721033667707062823356867237172299498905636876860946536628313921708261235957355591263310181092280940208874176961385662348317842077530986378152079213486141652589857901477508609959862809366776570442561922991673450969653054122165732956206704699933860038137430184837745627336642232949563984451541935817159092641415860732603060101308799355126308236355422772597792518108595343793369366445338493732984014995029175286957674361951162722868504506867090346314319490276451251010464541626062080805101452569314060904602888047039813491622097799818638018726009605449472306798240975542458345577373618850298220985567596559793986306757016260400569466734542579609951256965198511232976537614293946963618607102743030301427891607014324704447767503250225861144724645751936073525946440377705918812214435386878096993497857429026300960138009450606163647131324458384954198766934014896717330822135484073875273662451518382668240586991595301186085080206598402418830911493358516520578154607565616683276040700954154026669000757003705312371659711782649949207014036500838764680700795203835949095705526970938114372304702571879105829359406228482318649707724762944477240144170329603638396329250593621835645194152747907334779809868610237489708498088549132035278812485436642381150596229486958926285394282427504369288518286896925147459896440815189965891232936684649064910099954115526662272230705779772639875825496930709934100095987622555667115866313303129638341619523642125198360039361227713460362669408494764017456093518994965975827739910861737398172731727414687924578412052016773641120113629153056716860813824285194913879419203630233722410408717536780210163380584616336511959071762437922660819043854275632544073315553982636115173286073206223824981561757343525410869103005381442865432777186196679445222386520768579842749584718805209628998830381612009924629015180625891871538739666308869176579566245703744830834830158888675574506068954260147882614770836290981903952357084511881441787270554334727843440491402898710922982983584428378127311652635181437110496584770161711325336863586703342113318170001487141524231055319892779648959472596528125250651666315201594856312339230547353832335465660319575448493856295661116776170873344253862958226316020726959188473358596063405953291602191026115857047829940828694385857562969137621108233823121378754747201928850831145145972690210343525539193621475443643423446343449822712049218405327720413316654701321327308549665609315178899282613596984019095326662632433609405406692526875741495405714060496790845231771206832003562753529157518354669367200807775698092649526900326687164320603363141420362245730793010885781520296998581691972745598679880241608173459811677706230412696149675539358109631067223819631537501249013530934006595760382736422863319098697197136620845166831160006269477679051107533941799186405713027084880473873994032472386575616084262533581966223852007190415685882068906579200567953110824981716806063661623756462032289749529691821346911688899060012219267083347855828061725677372134100596918415675970975413463816911933086430110321237245188636339262288176014018437730072264907020490694200889275640228106874138246992105040412489672674732841005095607333298808840875812999194646835435622588257113665802356664224167329450023005339849447230332363540384003191314381619657550618100479558168341565976962025302625102888678203556987768970852904722071805526052527978684002364598892141195409283461573375239006150606869388187026962885261695003203721397721805264509117854530840580786184864313923092701460444501392822316729764599240805364138008423988961356638738894126854700081689587854641764831212058523561626771040405911922399844985987872532979692188376393626888362176655103014750860535776117449565990952821981086144097726915322494293338875039620380316681822301488548665166404154940871007571118244064823612419434509256340801014738553334020358054530623865282370239958606531316165416975126852817991262349341571089330325970702059183585258362772329602089458167856159924197468701256564777926597969899704360013835926149717902096145894091121657678115629476123348090515576976023113873118006857286755257996677463859519089724195394924426262291868917166003904001455217218939037985168300906977062349934831313174081480706237022109789005248330394458561310761548654927633239692681889130588499226225636613283021676462153348461413200506126445245645455127835315606686434243687598491680187571963755103529947286820221551787177428342224329759497097992972603579761497574176740303955305634285987741510951744425084017615206195078751319952349815046046210721006067255195720619091010974244420409329666438462614848962870678805659235712035834360224063527642690330613830605931766586357359259203679667327931869534502510225110713306552011381851560049128895467066663342713118459895266882190123816175242841064424839703286285348677390937117887572010287551031144320974948414568872070801970156468682541145000412836608392390211479704250503109579949919480145683004844016250142304721343088484530000284759506196141498880487124378173175580698589602563324993082326929946425179940447805210533995616627876841429624077370225494137103230386698148338300445393626276390160682443905866166051737638102575843928598843861886872060092593629162651125969646897484980471106539327646662276180818880680813049361843028583608989270595589985302682814223532129221023757858344313049083151621009766242229353906898128735287082118954516145668998421491669122045777493636710680572395091572617071676970860610627977624458034928283642264617175296216017042078265780436667248570572366056357258194386659969938973177691703236083091677826221514541050353495311514698508982346344497482115420901665758368180910317542041123499049734605904039536766741669600654411276151669473487822400207173972573362519003309459440852022743947930714422833277643677639541284941987808464148986218380345260235934829856465489547674012264685048939430781265572725539257950373542139772318283775640263752931463108018796298571308782724260712083105229327901993318096630901569913081332080557252437508375331155128693982624797823242634744686225711320701297231813617921985879263122703788782756301988136886414644070146107639443216240508305464298872564938237184140661726264194418116081308486232437744361496498064268539409431407048338356421891653789244315542430179797657159489205339908393456397831540410844402338451594672998122105096431424740335418580708610923355068783065474919301695762856248946550276810759396034338545044296979000097077812854658172443511074555354008481359745499461579942476373095304616574946885504276360417545663910298593416803890560299593264830467943694524532925948863082554214027834093662564556271774487398055433964880147801771190991182646068625120902417794221406191374574554738631823147449124172361994985851826378483376403014350246539348160221517232684817856674497358982714534483139001136025584289983810499304914964079889543646561712303492551180187740799045473321547371439952432763693638223669834468414855730835778805685682587324235092580808135750990200120033058646570134691815544401872485937864776194313370845932390506735806642399333418788789392349031371063529324366074494472856228243236757090562201123367094334458581162094820273340736562281607453527829525382886387215873411364013672872429148672851485573809381455520096960652480121215079800696047773883267795074582460063729194014514278020138783752465005402410519304201394271396652685201106818527220154787938747623541426124971841379329942820569548408782610834407089351581184902933934082776950930269489802359496676888528582732856862219931897437165509544447118361704334455457471094075458091721879754649767624532366235635838203168541797642822181124544887512298813328113172780202468896947199395368356362899233686814708921348313119102491630931456266182669064893553871681205832819550958903759856212037736553685627233836615197261634858153377400600146489792121339591743766186291896277565489204034148514299703183771188502418420977501232624971994995656843922938929932383284741752308295712942640603478058323466173215221316669277646285046362226816750219632483699689582320743328563733727494267911790299147256292276585121277899884536433681771163607997037372505943960954370186349263378923494266977491074940240485835994541306080470560468174097102004214178107866005670227538638919343774717524493503946828131543494794554850525352307599151065877301957933319978697164474171117996982201745480565496634107829483952858382531405174676071898023479667168772690476877071580562754945482843450410216709431596326654531270414401047818696722142881016107349578894599387321861302502817799214397876238450929604497139759189811745888416662702641877953341344751252543404604056251654289817032973162324845232359292693190512377381441511029462425327760580007255736450147033921519729244860364816908360875999396046396020442987309266259022673672553722925417543771074540529625497372808533068680796826625338227170122796150696538143712454149730670705096599465506698011501711915783892865544859789943390603984743165423563940357032834611654728161152880251258212425172825138047029079313298705412387658632512298150386882080403236432210758655945736157260734167805049410948112245788055754920269512459083677869530635707208931394280346533126286041894122443398973067029761892380403923510842430441868110821582938005088364151899815278587175126563330603621213175551531070068651815779400876418792956268372886877274752498060351266586249283137523341290127709704936810101458250497222516501588843019337189580853316067963522739849373569257088896580893988419395727840956084469085865348222226725552736928053292666980188689133204249810079930819678565594762357650774513167439492931909021996143314259162969622230763857216896050038526789150898176264415904949696066954621987581977191631657205948270769304098871942490484936584943760715758168371720229586190257185825014130552006357662211292138682874953968348537167939649289300602898779679645178470235236552069329272186374357384511491667354774029227692757195949082625826259392951964140001234428768142812997114627657398221419148126799590646476728417471850347046827572045070308863541152873766711986974571436016096572242092499113899872397129816151183007955046925445060176101492977869883064044976281287014428203348946777318345706681098621217320437475684302141086450722555151854209970805604460006665792776905866959517248383600074466597076821305062926773704140692736447195956880683718629762838430846591669488477087083898871135280919259490575382625545371102356086056377643641784974665887325415602036155577042013694326497550863797377320327360370659064651315653238538860680967719016332243626157865741006577784231120009376402032774714338053861358777596295802426364853550202164217370623509768379648075174443599707498104515161800649521350884274932488516577048109857396007461551275973234030445382263537549337128088000631106606948437399603910097475743958099404971540635243509276786891127332622518403227550625734831662839196360570515969920361627376242392686661343249723176395532202737837600373221459287748618526147008931061225538720355022714763301060138320440545734932251968456172215147929311762828430655866296207841240465312662294506348709466506495191709361378156639082459258529696623247528500747176398776424889954039475524107704377648287258180614399610308689358929752724619829356568562690380576777762722328876709080549924169807688957316592741782180931984946608356527115496234940215642910097872134747482684267788219431663046506652920940430072632890679423593938674980342586909710060689233235605368539169104485487432157195461355852102538956968530060398477089656615398459051507954452976097868970887791251032573427112077324333986236389653883397451189951552264574944422793449877217754316361136491154370301745885103348587735952212845487054703712835078706195206138467003192711529427320875684801619626209399162488759103840727227258791334979509503864502111788320053574876578685214172119822471323321659283221229682537440953817574463131149027186226019810305003152653570175320231713568286783195727460434706781341541946428871311045843939629754191530329226452741305725912207253462277670972326894554800864756826517805495389743347398466306081711091382943553404031453299458651768653280636931903528400815699646787133467353391971644373249722145392839832526357927289422207366385355859407009483494434679335274475370375422599335411394205910689375544042115975137861863437721761513283103649083662877788456082529306001436856902689910904994197411009190609988865073425140184260106300494071347482455538260483208218027613390080386685913253068132388200566279533709089227009022919623717045468125262726461384659733144299610245987880927111729356319822710520961816224211600779678352300382469301201499571301859069649230718143052673267853326244545426461826668643723841253146341237000101833619131361344714062220779716292528579240446893313284640586400656391978864897566545726809277539385136854212039407665077882902902877663612815859471715080366780043052919119386664947032230092373279042448904048505783153954575880602508666072735312993579699689090265996027004643500057299877221224046960601224475760632331093867055637163841996258302381918093961320438787871112437395529808208806506790538056721189409691685854727811981807445009014624074884931569389094114395215441762865719929389921629879090272851332709947367128624811533146627110366779964156093019712776093979595428677961769204058620157897797133078930087497591895780508922782848736661976311681370434148646821490882573064989186203806412122844097848357792607420015972362920574881782488729058754424522335330240027604924003609953262890655468416407362087745231144864389510902060404369976241435079958168760318212112814661533058109932522668349288418788518474736436031867469038379787982786533613815710924265738537112690772405573703532938967473758782232234898623821740908645107411212378860191364705658215060819606727287198526776459755232062680119133515176407565950702566535137932492378890371020263711644264914140841157056613250920898650766139306931142991073866443401565685435915323703932280671462027987139672483880630951724862547257401422512050622826446655162567878421884983108832072487466719894250095696570282681407939776588691695874566802083115355564871321014379515653130384126085325377663422457909718247906595240541477441761117635856504864115768872604771105996754247530660666908657859449048785158930817074345564231165366403399115083930333308290912305378091595894855500349031518842794370409056797251761105791482721731624327969108855916081248221912594157739163121006918143157426221364172135502745096394412252267042900594281606841639460175801320819617363120718803505587091154649930053352111205467752003154383965927444476093962447344054440251096146108062708664515101268064863082865441890472602605704524143061423476535741972436092847503639751800708754349217852551553387989425302940775873852014164862030660118048493582964131768293122859728667776470982843428115733625183107390934527210546716123648934048852335156616356449661735646452568125674864061468702201357341676563711538095286107053347364077479764691906580848598898325598643256654194822170358521035012308093684101561466985000349289211374226171822029605675033600129149560281455971645925024137999856231316569081583318440006176094354114602852037870543981699715280234262128445824298941049957866042102452607491865018406203583577126487725538866599783702144293892781023834148164602190447892943970430496679867784621140475356426753429166456465900121722506079568027971951120165355191808350051170186376869429959299531605041709830587972783658576018028764165076260682705973558055334157068744946684306489322398041138523414018850612730013169314241662198576866539926742192852966155888783240784450529660487582407818889736949012112005935101831599273843834763123211787123410247883302060251057896759309643695000311132532012272722322097825775746805819557372851047689883842068527287506154708328635263844312911775749503928895102498155972739151622999745407559839340837716279978714726003426564709818979221943524674468264534019696177343528584684416948738914485090392944848058665226939441318440151723492887702498012404583432298014362718098634256602633365828467007292048947200585707960520908546333736559568290361884109114230967321190793613328004516841036697478536585385435984422216864756929237318198218754000482339243520150340133713203386598284112729970030459810166161059852154969744740390690736823815074466501110873734168062844823495966126237038654024819583201257944856470108122432180653136895696303675063287906531485933144397934889626045635564239626190660943183388523500143761295800603710002855938907398038763057924899141401820233366591131829309393935852945927257889108610874479486693854074929488361703626315955836788955775001861825349632232236334663427311990210422807397503370387788316390574007186999729676193085873189561213539408672850128455521552201233454420123664703481653729244781256285902742727954178098883223658714439763194635455727010597799485551591037515735301071474850867572270665099056033138865278180257475715107175837311776763522234071281878568159226346397025332749424971258554006543259978140887143937400502071549109728324873946660038845734876525467414067836019155070283626850365016398681342412376419279505889317778138680144626239484876162042974524280885449187326163310739979505145521855998812011716942241990836500740036797828018867975552896583549915958739384036097199482299160551990723038456405533693785734039105126477931032248639775428298942212147137986731447963423064097010622000698876081589743910328070189685830799496170762780834689785736552245171437298554610516155508321170585617532758985349646101392173863776332502212332304934997411076027849244045330563747315851078248963201878703535686573377452570320275430761338514536678671926492848838857871377373420817794034815799591597464481815236816387527224424115082425895208931370492318092160613437966074610577075482794752772068324741272383934264285443764068836722453325322679836869367926509245882425689337671730584401317974248210215222529282636735806716744612323066831394602219867792471197644928554903634369117866528646086917630588774801945360289469912867904521405583538368262668133273978440222104350662718906424252958903069121498413558120960313284002020614968066486080557141291576044842467744810045918161188146026260962438863312113992803668450738848617990392133331957340285886700459006998080920822522724451860481821268917980827907626420269329646578244369060703425686416915885979862790065071295145233230206143627365606407968332871027724239023089392497662420313210423074272844513381059678786382616429315981040944960641548958556017200943043958005645681184265538459435198243861461964860487814404911143393182423486365274251107938281137544446381736926981933243807794315061815805079481705552394396542766474604672898435027841558733470846408476423550334939079114102359689454861466535628480012889081175690942353984335975621019084514690499896368123574028417435568830302582509710813166170803707652608800018876541958530806019493805489407757128302552115153781903141077410434093659769007708266734273922123839844898186572960046436193525491069494915031436029896434606618836502749528954433978810347602491000586577042622276370904203747054635178441383830601962722802787903626858387405640321467338452996126924310338444874979945868815229944337704385533955703817527987635097895171785299237634519409225281606985081728561975827764081636917955524770299059142949796213882656928610254699767575660077779897242456912195375401418015293021714876458043050272069683444312708365498786097798458425899417580739780591206217904980164732461397928827588190859699740872953599855001583038381125906893588488059417315320926114357157673315812324871688906000710149964891476607572776501970220602660357545368239009310632818798781661068708814892984277600893533568063372974564767893178265200490334364634245087922220968947291567072684353277070242237099365867426244426053880134301099579222149595997182422684546622007743367328020074140678659603945501632049745941047538433777149677282126659181063695292683883925647589651005168560051662564396020001233838014577407341043103609796439836327269367593356623311328344832190540589057893579229407258456152902363919828011833371983235791127247323479337964277848650436683675049310813925380375493458887023547899434505995869109852084310225967723209167965350077358059475643270361942941985239482475219187016915447420161849761931958995725468646141541281383347762770848826500003923062332951633665652528934707209082220491549953966682807752356178567430081041600679710200897628918724032444919849795185772071431487468645854050347179360035505777604371767392013204152519725703215011455948137316665275531297368803885719908963197581351918643482049480093791601943402173703424601626498119206976244094813707396846777820176986527509251267024802157406146350420913668732658483765210291386640598435034034587442173628962398880677000695798367390486502125854748418054741902852962703129034768839727527388155150387534859126122105696683098614721228151555140029956268138649473374594816173814322852197142082653643410214015782838453747023489471520636212115268078923195160056621580121166721842520287840252009723464337893218667994644998498809697578367023743522426045762545225845124599853596848171354218280148756554392964738568273421307449625282925725276141252913648894254878669669606379102049673710423056074994092105216744759622934588306691934273582759339897569831796161882697447652758999871290462385243721874854839677839694724697087125568971132305494846961591047650900879462860600168559581795290824030360247165257650037431722507287450623567428527479509974732337131740414538219729122572367312301757377185752544741624140137006361368092887836662658127003162493239837765221479213497630365489624298349784765179078673217302109110058476318912180414137419755681590589848923940148642572035891019181035226292547617097216003621372119859874371213543373822905781533925969979307880159348280378542236894056149198211765897911619119791586941098289121352975431530122547381697931528760065094105337850252424170775717707256322554031243476028226781515058462317414240580558542803893304359892984502579519964646697275830363393340557377082021448707503997861470529604272304908532435152374257052559885347064075725830421528337095304142108936361585088849276560459007982301012607400147254662800178059399445460174849926861102677776398236267431923774377581287345213519043617436591657914875053007222312357777624442733361375943562348707835427695528520712383824522905886383468743812145379284796378756627286884446519924231216469557540199249890417066029640017645051818407692245085467268426514969292175450214293873686487353151670244101207842559425775554362798716637883585210107718296517080366221951300345636879611332028904976972711552378868477161963028243027599116407551970889971140031896452762438222808328495569750309745281421267971567033286820051116599675570097129939752261110027321699037674320998123983923453236699277914179055642992634408442602734205720726139981660191247596197415192317401387210933569438315780458547453677801629679556176546455331394041437605524616930647190777442294521116733900926508949396914199903802457820741262515064382710347207362269681233168736898151422269964969875736292199810631516470880280744594704986868322954402989137829442881841580719410943269443091751296068415981976554584521036408908871266508512772031634834680362311243139126973169098255823309084705532577785122844652111175128186442926130855031080098495272179309305467298120650765245540745332475210564207653702741250104178018611246027994969439176954754784985235205356815774279073465306886715885392063674583566670037080817987526579332898265716160581085377402659449704756451268550961341779353284891743339584896590628766412719253626021209942556314729272110929956833221174798324097430738605961632548987239200012318969035929985453738994739304407240371234615561358140082270433210695317468879729896816614844538400969623865618961945454797101952641727182543690119723607514593904537386052130236370800259455837909701481116204616895261818797910128960421980660085779704446984425351727812292159241758018482101124783925467845524427745409742986473649961532098061294987628704315124320929978851993059718715059079684142932494386106696488068021958402636528534795035092135470412219950811422842165816383764328806517747523696797762327379844513610485082188436861957364807445018114620370791428932303551753022871729557259109391331147310352117611656271824244461320668581737418971575818782382410003974136881048617933585439912748205370803830295159567641740835039252499440216146292229738582130382217233650699936843638102917947782942943793447311989178748235210881959310773015720924419386431379805013675291083123802079810724334809675637981217495833127134329922454137400512345022353878761241643783828913168895724200966003105604908938677092588755824945913558233493503570210556921784910333753755874962132466244027181781031987873644698690267909081499885688999922944287788443456306188864392165930675585813930361655505994269410652685673885437039869143777195502859862477387095729014616241163301007042882415852842145669873319259606584409328868975876633339355180886777955887565647147130920621259415590254539396603682577169395111798544541940689662118596221289929493656244359169797361366950704517054445020943621247453039577820778773654673028409416607380885690288135012838635570090428272472611033793809660855050714796726997796730833051194799890454724594361409663411093525166572742411708350956165448274782977590778183252571550355668078436814472446700688641713564334766941259894743960172506231268331504021865491491697467607220792914657690070413540981904108915038803407979442022325663020387689038518430107071917004035546410403453974358512855837734270877943176803986817435066099250028865919033349719924095109302086077035655647820977584084945730883218393763817408020669561691641571560009113697654239633801251671275600526548773619787278340839399606576466859784835919255023926119580767844237087076527142586484056843513299863835840728616535598801254474146038814348645598320245800411425923791381063838883721567609388528799901490998547314988078108673114239893307548214238217116526831323885185391786697309187060543360240684200255717834870382433801291570877849391674080462463264189438237580189818751858776281844629941895312320516864169671863136596169724118725171511013913225218693128231555873195720045625118422012206869604524354423508639669727188237281039049457241141948745088117883644186631727330571837953791049361401003904768232297128467604000892299539599355972166844036852580447316229719483123204723218453898839631959239221930256018759527863857689673690411531416786943521338414066750106002266259033504715315292286307482573073396546775224777196946335476749946842293250759494709929739773547055543766674349921564528644833379721300289257305345094588950002204827910838951811876636347367537788213942056212080225693769263102117637823530255859770406885463837599889248759537657726386305734003286755432797160928301656988407694004234823890291412202876536470978891789848662264679385398606969144944546759936448358353885556282469624313974048460829156217477171925574033359975215071791212462539773787188014982814607208751856640636337465276938223483664261408445114662217849492887409169179755710233262801183314799280158310837359736016238073529661465736500241921260003131009113173868308693976567176224131351703116346574461056825542114393234234651262926433773932916992075105248543715132708808318470279875003183450338772166748612086779243971173996414898675729486874922023795303754258035216557447482353606223421058068444992402916713242738913996637654426146747130211394433669266353461461662886140436832913712215692399080652196268561756479391070005615578629369612489402129363925544600711945379883411370004835631966188723971801784421935625141223825879793943116562427899423264162867758447851168509780807960235640418162857000429794805796995964683165923433003812746657147188834285374626010419475928787896116972543515813137552045227856786041936022071015439498962916884345179065863501332494889443021573077942146862303821827164537135328518982437656351784804556661654828332058299644144552401289361662775635166485921754198081770939535404915741908729966349564300217326489852725804938659423101777249813909418182649189817634563072903303190922583916466901246099144359577876495568240225145142327771563482185145368623402878544400863822559141815167727856289944807845679744372098342403701783543659440692335932281195482630408649844250583891731251741545681728836790604526955263037795302564907553954825361254181789392829572783260160228477740994344387765969131694893633729722968775827731654746899880207467850392004444964275326887469886596651327309206707131123677688304769755867870660447705739582854339017581134147070024700462546254702292139743343224781822588232115352295212810675124837734938845124282889288182459273192802412470271382284540803442518702372110974752646438332320725636995952031060585439629485230636435089417706052570903835913263167695665449233969112821533432845314860356255980515171037843932637123221866261129107995786856411678916439116601172824545989824284454112126357278622118615282051418643609959474097153892447725185414361694987863793850509809649371079902470714473174742032123118587621327557420093218750219967259479621302833976406793600241135752089366748019668398219884016983974057347331089306975717178002517387949591287184922956120348654549041048910548695536092657080074642950692369668329080305704908287833287935636311364200259160432269622982033974905141535852162088324773431420885870389569682624117514653640760252133436512274120354492524962109533601631582753354927997115090380811040162644471751439566681981966117493368048353385258908647000935339771196422358720389639086130324590924347858549812282522849047487376432004902269362362042715998591638475021354752572624327399329631435094150489577456530024861533924548224359553508336583567034361466630035150366666756926785927091227148125564512316919331909949716831602156226006416040158230511571278993226521931306245201315719850761124916490140783369112281703911073277486533283264548406232117140508240769621439776963722973728756343199356474217771818961945257909895062471859069883366117576066718515390942023303006608079181112478589856625897530752216493719874047281543667431255674999758953739866575495379437802103024058633419684004509208247474721075797554138554390053491943220561145242541155612435741429318932423325720098412499563159760575509302053000190391868251967477866276503963906814402077316806180160694130704128668032205397662413179349033772170753111289817074628500479806131312772694642488779725214134022460909538286694393674998102860026709583465348839401769959605548546140282094578945501044657112060588273899932185312077746021861826041177901529186397746081460574746199930057256949749949184459648834594377443183663491972547663560708881099700816442051873657527313058832758729194293797513262443775793940171279448923333842892539338915688043046226294600713006159319689277098709051340786536712100757503729791896103279827325043365128762922320088266045822799217842417354092521253766897503568486132328405818152366160772820618978531171287110408607383515296638248668644375902566460482061172021274740536729963452598500005417185614148637080473058845457177997169824437782016906658253642931254100956392577427720383756682776302620796764002149552999530271391253909327974665145119653474553777825022502247156528875219533377436429356293416424761372239771450819457373359291771453877067986707021385628249483483675731486039893834379601933467600047457484996475249122344409344986630869610528174800816658797251052578382407924149104855309462746991464353545763276186565609505415645024896602497489569151524244620596517762883295071070743363582730163438622606070279345671175381145496023863596381729012277226918956826969698920544344271205556189467882534338299170575819890594674320917220687521601879661278153792870756900295756853709100971505179251355608750978600708863616724180135761500559024623463564249622634449127441324669223130851357621916785627066389724555613527601989282747616394202738543127219370195326861462804409626592519645906960086787665253396472992592273450841723127151967435201230151842378622808070156701313444362257290983538135087753204851478495542014819134246722745292301226642497206714384364479810269408581382071187749227605759998529779151539680377135606402070245604304767653275488097142043187017014785514366111031898082371132740560573162270155734764753688331627380435602762279872212316980881009678268622764701149581617780626248236985637591485289108123327511824491586101694200749462614950334206068354449459136332216043107533317026157627955144407447951764449757261751655203158087328377088872775641453707059325281345734772308834899548767733209500829950381555263998081739261274353001651027509671070731818019769255031882070169104813884566904672616209527413628682046575670293260276492242484058661325849691439851359722015521078703126488085928516099115926031531290229994005176495390240703153815757710452265582370906368405298782017875084029622290450453381926961276442502535311064686904932069108910755259945934919469759122857352439580765017126814300880516785259526332300956014287940291546787245293235081070223546781197761984560342112307034528150668057761238257624526087657796748616257906558799354722436344622613248184255147910710147802414829024984317162456880572982058856316459820243492113252137413426840342917157560075648320853521789022821501518305275963721475030892451134399883396096548043422901567525722209299014201890408992617903496081061779067409243511725764244950812900985649820327806338846565113512939483011098396111228477246775302451793871284991420903610968956923641804005035909310801500005488120638968436045767522438690312451828003442186556461404718757762942291231224084478185960086430831421117851308483598143415975073740006630154905978479104165744383773478087331933668493322587053935562600791465575379114512723373156344767442544794476130434671124588685357788492104606485496603307462240354032275547306053119233784210171476767142748610703125528447125132055771702004650858029258539783278115412652091734620368622569559293138843883014350569106658747287803278917024829793433160518426192829837068616062805659595309442776212232641055726873903018465270669596269831742205230271254096013532684276129726307888856548953220591803108987707606494162824865510806380638660824489930187333145389221304775741735385557037664239360101376894692115917886139724392317592510995276263367173570544789787721241845626579712394404954847673581568464234535841077980261114831414492723952200316207552005191705455078408633493464057140241776309516130450750467791482694881301737547137138719991383477555842253164566673402232291865453429217557991031645758413038205326762965993960106997452961688014218628572491260579062859918144491804186373208089701713102605571617647082971837537902529060509383765925136455683893730893398258121845223805353573074645820700715654448619063948308279339023892763666675810227841045078071378481354283000611750610415244849352573930866916051409602107702765782282248567821458331551871616467947541429316592475397970058138640711982681071097905024191473863395460412784199618589893798251269172213657822432757467643244800621514983904023397569782840732310169775267257975390293963496605269891257231537564737698932754560774609604869784859628671762104991640773145804359004748039644644390293004270891266618444958929606422968942121060485375176434845613072825284845662754385965464510300416163873573453729014263092380370824693598394231777346209013147535493961446627830549739145916423678472468707547462618822921474516713239887402191309522988249049254935889145300294719018685168773385276728186594078835336607529463788690046514467543867726173656226000529772051902534430079195102124311450426643372567205591968235495322239066553145345054195918769082341604136054439002153662591900613110647784401556177099502916432471973161167862893604708156601296427315860020654345087952464975011734762114325600006955984318167324305720468951037206864795491401776364686631373513953608559057525970161460753029999918931202522717315179025345272677985189053119235763712670973989687506929793851370013081111850165481495382733442440100023625683919692346235870814602399866511483228949696759338693566859938171698060995456384760788151097473369009731921197524114064361676803864241419765636089402403018212490495546650772930316097178610651202840953987682185498880696522911054301397071775237960844093187200823848158709338253664881109380108372798536120370516825387229567318680661411087147250526255129643865204790359647420190550751447718297947673211163585454737805488937344006174842103395523848262100270963000581057446646018823125605797459785778059713381480967854875286524010753777424926084779923760745868814723090235364431065648447702724589942997783768753390660324166949240363328351221703549273583087051688308592650799962176723266022663686168169419918225809286319873656150351158459356612108740868452273469407889344373683037546320026234862154627746501538297191375605616167964921487775302836196688485838793393828369508306421513256600307207779880125740392547384961685044544336435723699897468110815502388912945747921859113971845174781954724421137520124275906486136405792841930491658690196488466335823202653046845240576019221469163063373138473011954093826962069417396931336039815987381696641333808764989459381937725585359203456826586746903212450018065933913386046333377862991527809425734774539618796958958009205513348159603322138111460385564406489147452492406693554464230644228664812114128782444139454791387602952393927610818223740267322729043721689247683544829890812952536792023764554388272375172264439852753540707938970781447176977177473499382963986691044765992438433396926757252420766612667985151883120180438866380248028266957518433966286589634951963012804983526326792875950572131787261877910920992316496826250533179821929843426993704245064448490545780292457021992196062781502701301892404992595643532906162751154907786317444813625853512503940851332308565825048827370881731827659497498675352785615753187304230980003355190054039607057055050259257593839379630750707650669508345989880545224639957751837687644195456622191129194541191867308030913801468053858718311755186777383890223504330117424619197003425698560400727488817859594836074108912334215727057083281441303929086775190573286557973455079732678050052673561794172931211258758839796253474569212880534598976976734530472473246984282088063028774361551976850769942315425165901611126328238153415133636186920035656162660254422033065444532053350450712156865655888100640048294951525811352110983602050790890144705924544156051661797452821206952758948359316600419050577312654857080812610026065268137934452411255396945346396980180366018371545560006206601401840050207398510290132206870642527076569702887469518542959911990492153573513866320574192144928630713646466391621649184154300070105034212853188077161777493009876696361396389715306045617418430638181639370279632879610675131699854376139397155597534752945418486709636635544074108225730950683613514598232330314638701127452170835133690080954851402202468199576946152802125050722650022450773752303186402666444603648764478936692771009420583968361879479123971045847056565873227590127026143409199040673038398310726819706590657109510741895661636317233805552506045039398486658169641941035965062146102036447706335680258722404573256078549018832633227266173331651876190660096334002848541759352565451098140767167673656476210848228207986181883032464009426415886321228755369865535673756942271149456796280231341642502534658317118056574391041890061983333724104927993876690536335614203926117635772868557116651865266072364326743824844660622545292282328594303037638011986071232872205655566832831491838192072022181368200628266462075853178085195471406974052615094421578856875250342197386439682468248223968554398332566444844755745731657201339746720587485567431354157696595954919948838980245731673471894187126680139525865858306454802120618305445674668117150711753214451542883192655666842875944478207040085069021744760835719543580093280195514171302037309301288145446163886481727434457852139417197510795582603858559200715370149097025173411677468224582029016037618084223167104315818582848605797139551084231217598697553305834917634052183669954889175517790219917037468540402710157122921491896808952168893998218710562941011461904513327728124415093381393037470795999754095437272925486081735670753141055608328035057511159829977945961850111492850567292165587679502123993226881511967857755595566503174316735574457055761631597985828154154881763639649610363369828578407267541439418362817925266054316392670432223860740081616527074213673618940795862320229059784445778285465989536122725677329388766354491116969832182491678073628811359245447821990398601517742760732562164601180447465414523643187082487379847040812217770894961631589464984004179797621648831438232789235431349182256618850261159145209289319761665204634790917945566603049119207459807225716691148186573421125748901011871287478223563264963665626239381307779527322346008598121158315218158153266242417115798618326441915363404853349066106897953237860577098213511375732356633666144034975971663012198926946993613632257056406757073795478095289494071511464937023423302870231772644781467904540782113702394797175801682632744439796681628302476429844496257144539977528847710441221734983549467566319928486660756660624379018803770607507871361220330765189641470831342576621797468648005566117481186870159464181748300999134056442175943432363327098490967855175525635114772345299978793246402945478544533232304764174203902195840209578372710153649037437534269998460543485669048912597729396006025055598062018823152986699136167970840949317640778358336591836929608685921118041121376524035935255807609619072012466425326753566896862948233806782475034719973433852045841236869897380931595295385576025614984567414090688274925779431848598884514025617153621173321447244745902505160850337672499436437603784143204847717432183787434714209107519716865325724310534043034434622245581892225485996817027439110348133762458747014473209280948743041281835890906935677249586262562654732725673196290188917507420885075526956165021288528034431847882553504642819871231393876158930754604707548897151177518270741382578272855268993105854897902894932557221613111313599759173876553049868373416911085334740976390213109204495921709206844069417635356300093144834130761513190057170312154029099505989347565938472983667259743151806676779008426378114384620164272584523742048822670577400166017186549035443517395129630133543617344858499091368340434228094281091886619305146361085554280688049277136868201213225987022599420073028803535741136696535684335764128017330301110576399783782812737174290462236570155182568790086289945505208601325702611804757741882073993198172955603683065913326484613498549609479391540200811101880146186992829642508855394045388666472015697841517409376792295310307397080262126627892870118866563594097167185762604625699693944821104981531341277645463075258179917625850388183170012462489505826274259269625506627681598335820389395925381883382206566326670033434590299751449547606609493877118431095448516617091113658720921415495333949456059662994106788893011419653570510755889179698082861283082218830657073181497564859713905908320420194610075978601342829556393021347298590129442288838078096421960014255827288110902470634142271442317126528761739459802298020049620422744920301521795825037348445494018338783665568793256286368858309059694225311595038273737801040685022285390989645563728779520479193148598296472905557351425194068985403497642084226955599753456130845303983821528161860524130518864979221248767455505490690899297555667023970095176542781790726356192993858691385923244503401277723375522092103295703852690964241286053239683667298588060862902913595495441524940598986874896225808790604020737220736289730270868967597125986999917274463025734617566557376916075212602788591642135242665049258792221112401314014833494992936109198654113039918321616218214358417298806535886165470389046368499205102027153162833027292974489834444845742699756747536744057864176598040365789886184278396698254195604563827904912425771707745240516453214949203424202144074601970809648695258116007298316204223776282939747157037716096596783682911865173422848273697938654973359878694500283239015751392620654566598167611756549114993248736278078039883484094270024631314552199495392665702904516208023136239498603278002346158099916743377619835119537459800926494734073357068543085838958877414928731637529522666776591241971267966919433199886863815888744131414778456418206141844071886156967446819953441234979581369531790384307507864668680852034425214491703756180982605141954920438871414140536422967703035864555638443489561535686700952987865767870996877611068650221742514871702428318524462578395925233480136735671747500400810520622413606517937521087091465459081897544116517324680843095275636578052741745380338730430802303179117022851555839953951522585277755749570672338115340268904242828537587180578398340268070030916801591524839495177776152408874149177224765530501161179822361733159399280415324751140564611974249081112995920955893534096179017863860442625293185691378687880218716679418140971662330459618481754443888088305290008946671883416668714421142282179104904270618982597960699911426135651343299469244628999150900456430300391229064051024883915849639600441422203088223413003572606732436435234394499141562732304200920907974013073700433433339238130503382029018603227065549319482202873542861852384615871419147229013360238817472229921787143199190427762292552710611969966227613977308847084922740464079475934396979519505818905655698836169005248442582388759187877149196345916464321858589439145654241863148520764647637776062646287457594183884638877058398955965431393482255255955895426660711571054231047973834078282939471772075447868366609499920316157793281679511427547203078523633158546809669556323648302054193433055109363797514730713927587955606542584758185084089565740260591782651450102532431405363240589384503192720350867196069308595935433990772652931128985446888867785553232944648356196095859927920237280216929572088650828258578325583271833407314841692938563783700602930121117324408707486162027069177205246077605075752993947462619320178368311478291379253762582535294249932875370763764172137672921031111863764856453673214590686652462692229009426031584843764638702050903728757400279744892764928582431189601652752314149832130020630826707629219164121268539188676547385588794540404002538167975367700526462245066872525000029955860441481401151648837121992214882446102060841650835604407481225754738556801124063872263870471568350727597916661377010850194750459277756973358786267855164457651020577086187043001354663799553856621452207148942801072166359778730922830071278264300622748923192531863330676046078265198223092814459090175022893300275022164610885194711405923343250116557032087617940049877474697340758297440806512595515547159219056108374686618294159057576823869519906154663205558503098871632933230153892750073089322254017686205255693441214650023407307047480058143108348660339646427086452780523422793752032710939183270626174353094432967293641029536201808844906227120522963344942357363203020649385046415655327071129892470756784324053145846622012000280514034604355174974689298534977444147314093957500980781690625405141341565967039089569269313862338480367831370285622550336073134173283043876613137351175614618256789552756653995968179901711621011092203933045732340951064726789993222933779707849869484827471059135295865927690656176421334887514368853684981358110569276691793123895711514798393143712686826659562750105257522956443879430068428408257456854280484343669596844037995831474204644574358575374618673775287564369315645103576119644038916299859390396036252823231554836816392283287944246152598289426465196714655842092503525876029655428280771182134082891036019269669877184423298992424020012563869898486595938980222802049319377747191358529341568235297994584204157485114764168506028966147182371583617508307987030880361869899045448094254729757566573680012928858059525115827851603789992176721592422991791580317397602215076152720398995703186922498570864841766992331286622919793521760042516009568252818047556994342004496919964762014980253615589545487059343553520888437463450448234772462088652911474706786647692831021056043381928744318795232437654190169728822781489886255332185877065033494835956306585906254855234753964319687371990748292996779404304598029401180574292389028868511038851233350039617089533538479810003549809350079469875257781190387846389133130299432618869164090656799831949223120249480814224638093648551189635996880989793119630625660724449695015772768784641009311576366850832344275630608331611538362501984845076759485231195217083302308598724975290410956695253741286765356744809605993019700059294375176266156181120908662783260570532015494814474149034962942289488566329710549548327230385153324191835781532607453533926268290886292987204647126734716782056111224668604156475174026911992402884520365864905641489510172418079788190728352268888604791047630171565443101495282077892514380036073250263467701131663950278805004682089403106463331874194333526152537157932209260314977531990535127247563433236906025428555042205343705320852341021561980081921164337964634073013327294776134599969833305398466067270390818500411083092497940656221437829767911868878642253287886394624014332784034752275910878313642210574636619475079048812282511418877325349663902670494374502699989656951169667390150649042072906013010569250417222733250300116145067148509949369741330530636110190444626207370599009733901247293992755273431266369537633648045872719127135763367740735737351391963714741279600085261318574431723616136746164893552128300328665425666996904688726513493175675313155067048546652917453504990606460618993713775156202053659942124442492722842175055861767647138316974833563106801010018861264474335465281175262041356072272555719465766188265441684330597466403400759583093361970502311233858958322963450258221139697179107236902963047018180510688646455920744424729828078369176755201966505316286229326513877839609487033192299924681614088547775852906905723036958438418495426356724627092325614953184362384003863038159553882332888732396392920208460375129322893885165353737948564932656325481838274056809871732824550448053334201708809527184642156989326949092116033960156796967992657628612077381034708328485288878384924132097166039672946573875386781526161047199147398993324543487448886260085516335695555627818252651046174272015550819665154599104389814982895911452411464254427866303955054976244459455011540042812752944646838677258818360437147444440297211580576231452757705029877167790730557894815090376374192525467332423710968932492348276372761655821121182966108176621259089703874880107467562581101365295516109330687581506371741914066663806052914745556525906467920318926606977069331143909510566330740281034964447588210987619726559600536525341449428262860222410757441480025977138752216390974438535639759780954378524710686095852368383689400325938174850174920177502987512034298451142826849018770626662717583495763183896190162608755554461015680499737396435146100839129561989416833999447386202233969236766648418358855245175151456710164875822813742760324223044599831208431510603919389354697334760363568199758976345435417331817856103370701992616134411758592422909262146675014352321487988979457052110823396537594141695723142158422741922484224341557736365821580699805534127696747781619907245275690309227399637459364405709275300142629507297477237600435775256281437933701291541100124044110114779231179387407538004960629365886710574302061119412949764394361140863205854380146684156466634588872334835091579539582710106498127396046509940514116548313437388327495718959722592771341072570836864376953429151697967386956496316295441970611227000869142719659013167404474061905303977838545961650879410902300488925497708224621641316932206075394068109571886586730168084735556639390702232617471506181348003839247902023528883766965220717919920546794544727969578629380265794618122841669514179525218498821988578901968749098361611724084352088950756294050116144940668760323383389996110624705167822609648169209284922976117574283327582210895431378364250510488629017474759460323184087048511620493442566506866858269227876840214245734638313359281108583685888747916681045814724582396207788566766230769174869838295570924861958914118560002651154718161337897325077476395136012722343122606957003955463297476853116460895752170209667110039338834279571964564178902148660649798495703151573027553332791619498661942026337572500579733749686319417880910181685712818000845444842089293383709063071393371625797573963683234190495023846788152800965029302223484549461331052233905280205591071392807548579097443878413027375623743823822509611398041359687607400052197711714554489235251103602712938047045568986845937651202016409828700041602851259319412205489822062123073466488147899435724776496671755079960762404798141695268266152488042083348992571270882322992653309637155311636599333366429361562080141943010043324669409725498347727785593846438301293206998734879350791797718672604349715545075133831342960504151835178624453463975273763275276782714611068303861602307437090902935151767104979921786746879485636252285194164530355463932839302617484796131829716656771080808199601543064883524943114818844502526215243364517712994804875012325484407983841947980371356516224472452267035043354055472271279861759577314329813114914168475972494614407751146422653771686416400607571752192449312859309162326097466053113098367782344151932825371655496842432997976730292374983519035211645051416766152046283750527389334587172367255752475613057830989893883365307366758250219683217864821316437719936628976118443105233712890174851013774477919753404765484501570441790933073156948719758650117848179667219645472036753773467151345856871517752258417485329877741192042576009152130302312612008011232599086482512995080954024977703786804040517865731413491133381959343925968655174989168829212141875463095203004426293684653322789535840336884697499630401361844863825015949163616661783942774121408132368171108820375233058294033663952463270286602298975068955109396841078525762182728873101503228310023971829340379816296973774972509485613188336477073839071633168159074176655109428156680877408068991814691711576751563572228623158871949845740805829383140351709982873029887380034691079234430382579138785718758018339697744271929902174772665710452392086739524323051403148785465089484830744648947195743815230158571383811555810631906047274152216644538850408472091760382033581505358552924116597420496147711416715097703006757368594359607402224406147941673426699866260410750235812024421941581628564541247700396438692528298950993922167677651980364113269161086990206110279090209178945062177030471786300241219837683505116303144645242789254638876276554832356430778976352464735312387069502070299414489931681569345575334229635343111188030820894204238926751494141615325118392852220133016675963989772606227657547119637492763758278911141944600467746909532606220399566014829465250966332021692726086610501584075427685961258797756467740121126172718170897852287024337834893344532837204321007773618367517201958396041125195598176715309817991594924700101839283965198435430103896740730887508295261016818342637396403057935342711118866208340003949765892697491115866218799839651787105212905664080320074636078381635689309980360563570455758353878260236919156255452361195831032262164299169698265256935758967774952674453119579728022911676992501964545135088448639669851890178046975991961408605994524763753538098478279011417533285965735410156836708617083360602080028488544145741816441064291571749651156151952708950110086289000499413733859892210278895203127862824054772127334321062102656804084013438186896936359781035646903734968559130342956579420061412440310322269287098886854325091973811271908220185565345615886674746558041282730303669653901012979065085297743110413749053777683627409003896322813118955973428048959720339850496551324755195075259510638250734860073176316987775424773132260477415000269280311428932299621255833835985644132675787713061454935555835967160220777603578695822278912420627485852063926176509881133009567728920247810242797843930549944071971439380852966560164445543669121291144150069302271191757567222601864056493605988477303740076487260852107482474756359981093679240775762104273558627345288082684797343624076712480000658060262571618201991854865005911976337958068332842246635662604891003603255390172459468258246579261023758391841832459963399127162300967144278454370391385914840406365972378036538086671033062530080139353532504141224270359992567321722794448531921832805866945996905873596144127795004257462152016438936946934326232815571356193898366974453895771588168736877463012128576928489870475010709066727159079511980764252773828868727564828727182575704654612979574365421742953301442573669674521820022188708886554019840951079465014171475253934298985038910684918900128206650677294209196642595423549846689545751889156793557183460734852126377443523661025545195052121245266165451352917832904444705847255643599067813632024012939959876800664362407065053132183586237320438123418008393984836859175807277836786207095734105686541024197350123459178223422324555273599610014982132819868807050325303174798572768322826384831385652833495595986178628181803503355986497328866118319484511655448530537726762384026261677027243813083553692773765104374084914360461757257308747931547833558801688016763149529850166669257606153709030992189988701918403842385448212562122488991956608541723871609247302313960136799728034121031762533056392992833888723871825075366879514709985082806858161619433955092820424090783531996842948222715149692235052809472410764860882052493356717516724249245048794107664228560824731658701181929594943409888656812155328020579635801560425643852825345375725085056420843946043203417371303895392989846237960586315540117209607913127423523310577504699443409956647429887454680119189751604862765036901633709530431955226193537643058622584867143187437894967163957834171951016439893310229049981689531381868467238142558984999938935188570804576907991113316154276753745000839119095519769961328084555060207709141123161336158036729363698378769245808848480797264771998684676660283635476715789529060035678320382786323564948153728123988528878504481047021521515534018234927662456321841686411061333490591808115554871555969104743217879372873970100811515756482248793360868442977283147178413627809716932123083003433575431080143940651256002535488505378791919721577203001217562582186400276072136161159263977060097971141662749883601802908637219491946383729193250015576445425103653664478359897533683199091878692872292912959553751623700138307537328760021807205451677562655096633644987330922038214060394501837065247863181544949016414122119130766454627982332922289734062118292713512382670774374303470902247382214865901325009857309822008150983291737900035431375898358657633419844597126610847711789871333034770740316925997247378742397221011717637352796156312146466810092404438255501291590191358407978716916790849256654107198331861396915310497238131655512101511413480707490938646246133644648422873856189455664144999846382797863693956061040907946385109194955068248652511399012951176426508547741932477021895827198659228140244349634545558865298887334352570519387041694658395594989623270213983157642666251024708526502818108042963689613726611366044688139831403387103363395485464790482012154913478958253388930298260852939956610847474342495456845293737404778329421769924868054299341500323263057705544443190160057208827204998943817099546851710884991289893844842041486343941380608295702903764914945028597453031565197427729993197255737019853501395673677491837866486924204332710443466660321783372037380655193839889544472268516529728508612847491184876279943204313390288773644783109457642741988157286384262261463843807392043350049880984727925941216278488871939603579095754031385592504809483980939757178460864208999744532364396391517058996836539191199968033370041509211311338438606750960881805015848162790484558746242762864956030467808574336670477467982173000969783181184359246554405568619240443629283943685704714735624006817148528222571867298178431697684755746083906047840764713328730469387707277814969047857663623375442825275827891046570167145667917565179673984284452313158681764805242227823268660637704677164878773940536930334117355404474454721022243910457210933782204923861302093022444850796404509364095320073785543054498952052839211554829660083767429155581938248063515805627660070017998804846368979281941269816138830446501544889385600579707185981448078509333877245871239835356045756031796743704820896357256344113694142925990203395096238000442620633561462997426997212819671377329218253718069827934431927732395411905885213835213678206990036032637117216026278228308032587525533729961456797732663533392527991392837393119076394791572482609929277651185061490912150328244880941040629146565386829930703492609356064022117467902384930958958516691929256388866031367022383908330307657794493386153723431519631796105783819641853663600144122528795230540019652291347944636672237171235949392120736639011155288656194292310412709127297874156908955759057662098745897933807391765435608830921876690234228715869659578762437100355291103046804001018898637103389653384150239490098410258479317127002852708727953145215838905274521734939843496648330743634822100679511322505207207504832078836046209902967351499062222713831843519222235814578482404056134271212604279399928083019192751052333727099835924820832622508702269657094302236037336878028149972827792015559703384388660560858599088199393875196637860052753760723512555656287995321643512559779943796376555447419598175271524934019419602033403321403814077641056597759232766839624724637273320815186900635679572371357720847414273093174869838348763672468258659406619100194897184871161976474838362698054123578606724981969125555248498479479331543793720094984270907737138756072843369984410169052185046128566818375773984620269864863126490416049906418643979562405565924194927744188178110849463575096484914062194779107808080474260259343840665086991760342307617343245267879150575206436433710272285522210549635469418097319824041151491927652893542994542861703954708847319467591095788778933467654755892557201514140088704472720418059933458553672767460124722278456550511972928912776834998872403873673232051293246718789398379585036918057042870160685366774993167401545875616371543152751052800624549444233951304001124867607120085460454887706024250701529155016396657278383345791630349540345376627461329354221098275153193135136231465870374557866156643921591464321613434099289842867420635844479129078768932029811454333997419332159648059770647522532658191118025955125619173072171469505402650096726580652063544880546956616228148478685486674534405613252542749349616375433913724035311265319505481648531966872420899948162251306594772549852321392684866878760908030733147273912413717648604216770123717801447301682526480984216655408477461323706534684504794371151136214353423666110778397501983819743542188032476957015348734298982088151122021304876524071523260269705723725114220719598292557042246604241076135748189604554764400155910792704217043900562987910598853154890569199273373739862482701175151192664396569962771643429974832998107135357870714149823929378481972107453834929537437773016786708207160996538573090424596045437066903557482072904659304046909967827665731949696856217521988390279492984589908470192497400009754824365206308305056559615013361351518890786253529147497893793840454765979024695186727362267282060843032759425508396701946670514319996529573613118470877075009063284809175692752978418556860882686709765904215922921389837822366251784275925900933282054867633630997503547618497961377259632693925643350151332886054198593907971594263451732394929531878113653600423638436277338358102114026555532277117071670415659028602798780357325119198215730773381260536826602688739763769089389104428467118316993945451085127772418744971095928520429691985521986804214598755410169349040814943116070152031919887734291779724087833317255133855903709539126134863968538483243368216200159631336453456249289813666284792202794200533383652195772820982849725272888910361058985206059509855768639979957127901129277894316577886354898860406195870225954286021526297922212493005314590937923450565688068520636274479659337641067075028220327535308517750405424490501073998570137492314944513629632349189935882105190483257327077149600710621683442252965827528293175372086965771511303604515892955042074025617568886983820863402262275272841328283703333785593990642744651816941659294528512883514946290384035970689819453999117529260223923569575751923730003211990323178768773317333725800180760430052190556295115485015702586267573099313535133792303820075610687912012175872089357844101199833363031356929368479544705638094033221898937385017777298460614345540038864180136062283731163519325762781366707352285980439070166834272182982054836508394452339920188857918837234481538505961338580487946765263642459517340622838952597024164689167609775843016367624096511141805880796896457353932552252146362407131074489901540483679836724469586651689198391081707620631710657068132901394183407503952194356800794821654736187275533449569154907497119620845996324723917881377818075473867322261444517655619085897367977770504688082876298667159509106681484889809602745897036273178967299073361666130757080336981096191495514715258687345350344275805861639287919731500930463727604734533949316339530464049222087001536470234384003357651118643962811090519796413702234831552781675172349540512854571512142996566172631792286552179230608276135214329360109197792191163829103499328459520395963166856856978406731952094931054214822888726336926697821267072314387574482622930080273650040556040749389055946367307726159624320789530361154475178568371774631732639704947150479901812864662611430709838670921713679996353348308931703900004960750602741299409177614173048932670519728078965422728814788177815531431724945531914880798067890910302272239758309661341072031253021618336700440616617429863541921633934884372835912893392827948899338347620268033104629394974036384375771544293201838511910272465684059734439507085746047378726782959614405422962310279183636053817119645029713793869829365398373443823677050587305839196883242175612622123903216593967197047472335297483711567269605324882087885976961813443879482708902199611898629430332049283814819966005634086944994526757443383961195203421480825319923372796039512751305315462776093435345571302774505914527291547641919543363349385843518618814881639192651708768022722111817022383827609851677690444136636288999795170957928050831710142778321806330778472727657973663562710284361563544477301715887589321057103897193607822082975159327348447878395770782755665244233358836926316649553041918866562649295295176290365888826562945900279072290876651448408466630803931245990745094845173055771772394905874666496216480544105739812074583700279798004860644344012638926351160917971212325287506591450157549603069255408819693326636976365603269657173417830734134592866812865098395244412526033259630955900808613552944617297119042811580601429009672954068935454452622570530793493393975752165269322887977889782897003361599040651329610537763466949178280291235300223134699694971207908541251955763265561871957176373387260405690700493489217917304051080013091488297361615880233914203473943122136502431230811768863180603338573452043907503534500516349967305372302703930464958644696865729488869203104634487897270219487465594974228399718952112495382389934854535382538662335900172450551063752348666854572317425261553214135765875213020821711276045600354037222987996111120820708375135435466198256880439136692907943362233883101512970058569584196553969157626407917100980300651631459482199897966984215687322434814991317106844007894057311925756321693594567075887450707888634953598915657841811592532415111251711332682153923360212631137354314009983274675755784621542663125582707688960164650811546386601938309999982394580780520541906947710920941108273683868810892826878778427543421963658621401564493403993658446308682557555424099886047967605317846737115332791299618272912852178959388163512713506174302980949659638015763341364049230666056106878679381434696693599220791165523832527674409769103658113020810405727364919765964003580706398635897931016611653040971197554379137086698253975336956625963623304565545243208315383771349895658560182046731136022970202830823873758932150368285789411356036227144926262384303663138376400871572663626802278044681206632517554678790093125886364134370842244732161313481744600050882822780564468230670529796002952727078738907463559211425168568690377682269795757075693193257923453775840639267450221187347294604889953203546911718482076390170281311869358053103095141421647963953093682023777907327902025503528884967919677629202454933866723094194406785844053787657099663124780978801608758682127095985399397431967437714762331903489436969358297419251545827371591227494532623709099613117055019699625289844625108845900197303298161052881201946997336869217113669686642761776571396478882501456004156078858024624194523672184192726350972835105254706906773136330632679431408576283578166995208517698228247595279864335491567450305332540836871396480101952491946150064657023499819123604349303735885985520334643654433103640218927794302074328639873603137688486107900914026457412363633682504034121583224221309297621176745804709374474573937024740877156930560834812708851921061495527080882725061121061236695531146243182309616150038354494903481758752093721673159151668394642395279750774397486259472584095149647408999776816767357011841184172633454367602174736206344028878596150399578900817591159019395348299770838800463923921033260088958653722910593345169852446260368931134075368138703797652341320198891203840822445995200149867297492616593592530379480677677368054921632539577884125653250158288279691106236915205311665042011428128941986310545474537805812092237642426976103753405282907516147342710743041445441851945874800822640025060075978366754802773611084337097465293566867204141575714153346540631679728323800692851361696765325801909671411805824335206867437866702784629199031652541189018439077441795453813414413253979486168867747113508125401744323472871386029484166162071846850520092850071234068022806719403183489804783246492314860604231106858120065046395239204365152713334809863594674539276871434047342768523855838122158662306806514355430428335170553979517509689827245365318567531115844319754143775360561948803451944016530769269149642810753078611294649505790374489480307190257509650919870379155838229157032899005179688981361836646397739270526410351992216324180381920442665724539253578303005570599937880505872321587419399917389462286628675361141997805654128365431043285651530983124849169471609653615283939202595534136099604495423766080698557868271794660403752040038948239579731214125875919539271709782772936247855436765196387000312961030012734565196082066751045206550727372888901872434437629331957094986447910404202146230105226398109624375112606442111093091448444401911992931786531636022925269967262495659521799150818050999782901005200389354143435411570635678697702330895043368479163414125788573936363866859216848025355721493198286017652668963494819025075001515987437948353637807814092701067396917239871338891976066580552709080189165680680906211883414566359269963583565410590843675564222148982973492232095126072499453789627958290994382566362082201452252926562609274265321546445390361762630808157418210236596062068973906234209144271166975137461720169925832020046492551080664633659638310682061212477905931734768399967105210528243535337557230612764618573169678228952095798226650844144829175736487316949512473178051231331177685681064259519853849750555013308431801451432474066524542128907237873895573681826093358046597700539514032017093711687220947839371492337266193154063962930321684311804011126559579253023178063226572452519991717318340314295992599673253410662775478323453740867895734430663746444276313869862912343442522424842812826845054902250241529495026176486163655440885369157018258745537875557165069352171129016135226826680363554506523260958714086113590802689113832877228229454528471548438766227375601674957017822902260421253988265844184700893290566155809588062791570068745976968088064929835730544585627271914493755108283726847007124944439296285580384326247958396264549326727898460955953528232931057404497788282465320712210300027873739306259813359857480151239231070802183782427812622067748015652388314541674969357798521173711986464403185549400811169905260219233166335080147907019853540699865716443710874393761360784724908875218781393911213040941962833378061948032259478105634824111271272404957095706331591819230905066698837273910924521533900306032187289633268962179103922581140136132085274153980142355395225045077956416959549928552823964584741257000628483760205505276737116838774323036433316045416126917625088669573656722374870960748922928392416512648329367839538970667597106163637582816521746607152065605487590201795131083663679123772352394528782347639010407501810258491291917122703552906205648519708103022892816800796464217097493777586950242556271224548352928843675416243446863483868242846584720589664887467562927536701058770082011373750185180818981173577023687416789377680391650918202404358931889177032104514051304723883855508578348271434116976537949042511222393181507032714619567281254947481961997934511276065836293228513811027374296524430854904122481008741700602547225673715449993394646091334570456783083815245158690763919130483925914111136256244357853849649048988972205989673241397996656613612701654223351466347224707575122483089455951893859989504990918673833206619445725822426745582510614666845704535827239496812183171515289754564842720169305535297741956184997250127690569620046942619477878944913805954014517252388615870228158586840040320710688948358342436447713106652270402818013170135343008685762212053693908988962233352585590892255641742231887668151637547983291295426003134378119534622876742229238872948451665164586510717905169498915602015658993723778691244990546306340643782966683220654569041804711931549414807793284729562774610507933028707773337687239965960861954374112284038324827586222803267037143978527181074069964361791278018199542227649438400179303823389310070455954550460318833162952444200241470941275275352790254017551624207163682303250761415808096386953274443350236061680071144769012274532984381883982321571945699108406724415981329692855785040846746552973049136686471083682978201084113421962616743325832533262404710363194260605007716896401670578349012809745924417164475590817464876051729615478088575206997909208275753166765598187017073492742300017611784909114783227528966847552345918213330258775493206114741786729882835148266930929875409351357141546418955063680847262730667734346030718735812131782331051812167737865637908092656166140970515860230664827885188274619927697298765328626215745536553003229553029834544001708267306226465312876109448114336328586619782944438062733949388261374287508873364500952597657542873261899637651628299279608400934151871812975636773055438581182731762726168192709944157842729772831443062981753310441638448969858590808476002883712654293987396004829015141497734170496285058308333958339814947909065903623677848481276841164694860888287676540069843770547794898778581574365643134923850874180062272808602327863514695214984173650008420491353493177306999390809116044466036286512267844456189762288895905861716410848097437046015319276548040514334183008718839251082145920376718878897106769698487073900049663155771092000671566586766720738402185679637903958437265701476908552230962675236061506601065582183982704903767198841490307406116742420146981937623932816563463524315251534543097981108510890291286170462512827527155118594741120561480487096297156724706489563368784549281434552824956566132503384522060926578789226882027331294508428505150097452811499424889217875200491455923832745185184916373656474192882510976734294134617975771877857013785954760351388643828635654867382288931224522423789366750435742265309851143843207824857432192898270083456303785747420113638705394473568532961687756405738943790945849121516201014703165995232708394791742082386805661249690309519975024278228064276089964694180972093025341990920224258754818311916964000509999656045634071105525313805957987085149522136250243930712475235967781992564357881321151095609974567246592230883901585301374141554164390085665253299117971712888731785473664026052608933145645317488551139538261621151952919550887932891757389780922402599163212413656736722580502218923527203585553722089344857075379993047707575074863522739472509538682314900716511297267966157306699336525911278156766177562356866740319416747937860107942107771195864300370851686227069624211090000714778858745886151546251765672146816978709164186202026933437365207978726087696759101618329357281995406812532616792152039188456176840200831645563841810283735113899739293307233085947622415907376537557526620454490706687737709816777862021460276386646704942008753432149170092585905325277048758919703622019860642015249615165479642392315538681916208233340939824518981162607113575959019210226135864645190798319630681226004785600542399043599840597905872337477338846695561023182981950600868726765604407499548647526391101251719775675940699931151223058130459719310995200076560053156541736122181151823908797871524722696546334867725808135033817592230543714339169358639131388152586779175753380223300439493140305236905529600503248169842520853633833503026434411190082227217861245730670766375380449138392045106365141313213904500102478059765747166439351009530491093626494210560981325017586354280230031666188846104014954263481489177469958108770449779287231915689197301359696851332503360044729572530767676225435345207050363743686043465619486298396380998003415165658889616014081126379301203836243160300953556094509115159421911190960162055357315089216607815754061491807311400540548613414757492772222873115119786172949601264051778178491166359102228254257684793328606097681405937396865587170836184944612444420190285369352685836023311406815907547281495877202359411790467671267258442272600036005114782668058487287168994110907825760948848764346295114760891610861950209791747216823976051899806613276353581509821924548698891736901140627910438369006863347427101546292182642725130371940872079651750506117392568260503693147219475194673126077468504590706822932871250620555862599575383575421192087324309673409249860393009055051135763751555986081885978331982451763711583263594259608876030708184427415888776360568131393209436219875810709616194831252831672747697475116140943735384420663587123849090488753852832874369870762003609766628889250902979804346003780032826211905654193936638482789156739542215481515638584371984395765545314602529589582775687122812181198202764552938938672714987823435688503862673318701491800704480719542616725741234990676164431029677285952747150811973880807087304570481143669193530042300965855809979163567230911132790120589703178899499276346094767410045283525594247098243654646100273119008915079770714069607688687031867644321874806188701663353511412065298904380236089627718010453453723027633708953618455080369628932389571277178218401653116603119265285746137462051108335515109785814896671838516854936245276398524008911116769229791236288493855723761324263462945634657923960888675844315992704598990679438473321542451440687757694057417562351050954313690809536374695416246932033800726038555333176078899452096951923337567526859596741164544819580432123920864254042651553082013407826977283783861205927811897227258762399598201771928178967682481392004336310917693790945809980103454833058548108890113627438610806966223005707166700548728312216282926498070670214976351513978516644468572980344833412762641899951050546859274123992922822816432016968372517988046692684807005769349763880845104388009577038611948994774721156341630332494731134449857313809511171576551594554751436903498394572752139127204739241282630588310745790954661857248953340855561910858059230899024153005736868169696006309269725395180411203043501696748039890234815716939248377749009846952127128738397338644642680154390905177539694289723833986952617791324908753229225699555282294651358106978824362736259336886537219672756169891734063380464632237386174641600988263841899870273135650152406981312540022262326229708438086176432420436349859725428614403798794352734905683468856760559563420871667443251638175480180118900622650945346116216812324039949096883303235517458346725103166671906434375849614548412006011999343274918515903364554864398536509326848353718153445332420530664077661574415322845652019228953421416795340621257958923814706868975109270044465577093037598896050934639355262473759235433401740955440580185834401076528679244455931280408604835138068238016531868616343079866899064894381046603661517686932273712082405412398717291034510800411570691261509619096921179529828450166698004748836494126681309569075724966512318162153979239682433088268807623529671889836560598510625105588435627923719054876588108576435989838523356824070850984592947147203082029737917630028173458334218656153598889145028895475219426857721470830350821151890373354265784920837257476726532632226713413964019301019456680388432889170503867571267307499463407681918677544147376362066297032828439134033856370022330713667791332473981985209008604506720234181746494986613352731185142449169314869985957833853228167144876656683950631403047329910751133239005571225286102624330802805482024382122154803015702965437119053900136394781327106881458391501445039158002080564064226492244819816412215500825847364968208998912887315416729620707092951445049248754364649476157275668207406757096215807409895752254169308936984534420796863979264016396871301779473248712056548170017472541592709095027002835654451802471693186389720334029117255091916595476455603402912088810649440062420381826023419313924047054654500684265256332403379411308780338581907901534942214887790010052616094909644177256955222192613587756670199540683947035881002917236589554942450140953528105057132438250839708146829622702360813435536415019525039449534854903009769654631098780206705323561223238656747331603250869980674407932727268539880113712228696682558742036689041908639688761283874843939025716556776300674509234780725304566574916107683272636436936647285012095470648095859728207037519999165074283214571961103143149810544012146938185321173310141864304493827106385573721611160361789298828197878292884871964350623628269987040751024979038301739777078183719710713140914875503703080883566105360118378086412317026539354509198014311725658972671936635751460262518852068113420761333575416839016306655962825981239429374409170943527539420759635507694761105310673492174188282774082517950517911248651948289905871450485177411243286255330433938647849182942853892245372575747756044735178510765954491825127100769999453651775414548468337888374118267745776080348288862516907015427906922695427658637988100895818289552032421456114962932882557682514820355324129118680830220662488950424375705144296600558283470718815166465973762952742740719478407510341064204211353473990240735498389929565877009378673167392310822678892009342060394993179142527648292531395066518063737586524650046213580259140600581200406746205263796481946999254687490830881722080690153086039101628354985564207717313008079022963079206471856681072041970992150316157111075009761820412761865896987949633063626719873610202188912255936730160473475057578330708428756866429946339943714583130232277002379299831237190749512503146717222098912874879156809038609468118801646327250299975681818182893917356788535060359853173983552933474705169012246300165796018241903812166521517141745349748341108372423965728990022251058484654701970644570054207050975214389263570169070125782851355250836529188741827253519695364400489580878328115961945233987598152104305370020475978010071885720969527699299803758712471078827469536156796267221836240642953967277529050778468273344847513259725758417434710789778700246058041931550699207296950452500513427152105821971302355564725184346486643428514058105140818282756385143862757700854490477034741830196573721451269202990497542795148875716468536508080945641487051072198255138673396160023943376787998269009483941382948182380459524993977200004153710703776322246782792181832302603858760587386385988850847249797583198929871960040759981659792385881072342872420531050580842874881782434887402301106952950324133121152409776110939525484059295899087044860819045479501509307779716114244304431838541076206307770202670923992619377676250706833108105602296434697029998824669051141683271886570940485702375287384831941955262617687867544325388251414923799472312077363966466380332278567584516420315098413381183825720941876754807347707929985596909562179795725422746895641749560013881088426132173242856863690825860947938428173396848799205391853181738882793765636399055810130095128504915709430039448075558174992848964838834346654679824972918007442257454935392848518987964758417964555708720621466045160421535537547224553909657805571910806343265371493754565750120182128153646731754911196167350493689192686764626215207182457883236903931132421339445644511334291358060195227357100252681519863345287052561665366308074114814262423339760757429651572589611358102758785782720019319159758239325745986677361603657993330673114944080646518494365863879537169453801220081918456981916427680793406487475824684248901014941146787335669272326479185810263008397419077956671716584642580384148890202920946286504756063142696264772080016460007297802246342715923043480702022024868819393755255923964103764865525934865868375223401731113690674238641611752739457056492568670980551391864828073108289015129999529674208998717623110273949258440590795069151377814210573191868294539115817452163615765760508623206788009106118571060261711761530174189973659872937788473769166663649486359758237896519166143471165997597398264279463061642779503207065612959511598088856060254122521803415991242791030520992795008390758441945911328512767217254873391296094265271317844082788271331800124641699088990322902312046166095427979957341740357286271148423887310968001665884552815105525123914695963638652648176670561569234895956722916768675205190009422378601838631835897762751039195989200932484260789570208261562876150785150796317582288401307828390283089634151088076214602267599102147627665352815741769509496899553545352525744255459461193133748102664957657807016030414679699539169076490124670908582359430336671151767919591150180820239149540174028095129266486901577517786824517714111815477267612499306913070846038911195123512373497013600668346920105626778101222614159061943389866819326679478891107557314448759324603545150910741574398406790983897859411187834744166636718114320680681428361538478792663308202869532580142664018785506632623652749345708111936595991767527159541232588790016923049985788573859523850598960356111438606400983809381498046278845166420380198228154575364036449646825932511187808021956021665911344109107238920876101243185068845478683479191651256105352582229016151528482432324143843341390689049857800954097433414900262879760263724733135975998029868252760600895128896659811471554786693586503638169103217874720504086842008251396786841730265764721476154486840385461038931098513340470235518967474416117375355845436286188103304159481658319079741408614539251114053125002723493914874185714177156299829537507559221616801542229117765699582250914663926435857661005104993815640813568759995199210168000179378618408423158792618056748816327649418399901937176319510617142290559159207094632461467598161888403033428360990832109711871214526341289108958325281685771182042481355504322881945043857551166023981206662750255782161228016132320695376108318517137379714429475534766428614137914159275168932118051959549039034816052074136053994195317838788053519301600072986696218487160515652981116225274421330529409850753864702526709026888280510355296208067517744683436123877080608649669756261108671302223636570121292307931735875676076146380590841709139088735253450003629816660495946642602944544755268950676871721772924282490109683044436744169461800356786106087514128257263335945816922673979479234148810611737589179886107715902194920197798894072692797239880043208078543880865315379488029890972597846552466290677378604393102786162890589789177726848133661355339701930699331290714839176733616270628229848151163362771918481780384861875313704202416245246635716067834843855590746252556293352498677571802586554682738560293355554382056219612683897853107205884237990088724732790502758429533657361524721027047107546724898045245396058168786814805784941421178096389829300299161677855559626516783075662128574503001168730237345277386439071806546141730805623498992889762072841974069525030430391004673279156138662193154242643762563774930553455693100098226766650929826068013999532669656818969641241261618398903727484974541480847808972248772408567111559282063467836715225493506149655348416440165601747215349431133913080867367929786674238076162802741698046510523421817948294762900731244328195891070095938910435325346353511306293454314454294035560394283150331348070236897624687096597602863547939663966946989638144316913789044930652379698319106824677086030473589302441995771032789691160063406351382899984048672591286724936717952605557514636432856987529141631115930827394021380172308148273628147333641578321080731173056694084749538763243102234779819529497397077403060951203671307777741645875237024905196543333877760247642844462165446428030932046765926278944050174609430803662650818150914753644957192860099738490161830453637760120047015036431109212384286468431728120487401599826158287697070882076887384477205704714402389599102994428864510902031086678131628783253594829803107189691217077075812796154963205515912129734642903294306026563605628636006260877688351147155266342945934315314839180656555528768548499874196762907850048835676925723326601439009789956078701967768366973052569412986561822088148218238878526514947487901451954191266037792488152008471371754625960979651018961362076425545711045716361441037370439797992013087511065812973005138139671993960826380211266772289756256326726896422900036471220752178296703518637953580821854149469527207235915431680121951944735399251251128433567661353279010306107390209400677756918444185955048245708474752592465165935987119628889807204506480539732893380464455855356311456206782708857118665330277858244160688655449486554719881136715481026652720105599728733533711676947185816317304672221931168194474154612486450765165407800034126986716181923387221177174856143641472338175413650350006652711192913126831728598713115630622906250692804882528359626517873551192536157118619653399558784545992658048946779009163279663113949571715667259860124606842548896764565650043687179292964869942418095918581236936342479517173424179039945219592733700672737544648380606083915561683365512716285341613833262828600467413452087684680090237235383787968576572606430773193397002610101083303539689807445422904592566629765358670677225476543863420905675033326440748343220456094832655098918639675344192995081199804587477333272728306340051901320480943736025757851718329890693377752417198877422400230710076113506346781038437582343474008605851436858017096360862041198229419669975814718359083290072268504684525314716404107545640753632474669335617687560358712851046125196678728446051309821079455243400792962785124911608734436315824157236685029833505866842204062983832217733829245012146617034168846619248230006170324327294953817478617955261394282617384365537219453145342569947279199789751235738052600192473537915302945881054639851443036779672443744521154607248499589460140070632306575255338678683188096381959018016256900192012974456898815447310799117901705669194327225925631855427749433960720491644518331018682753271834385002573352146203781578138622927330173164280332521915676823155456087897150056003694186364699667675775142472838243785916174774853476473153149566117787493572930583982800151295235081834158618027653466112009425578403909135533034750890398989169642626185215725503935729803929454887677009817301416475147991166350961964204636093734059486271832164023300740691202235052946166300612894173741104098740804075189589415247605401804517136319716101790219777182637242711892538935640214291607679457997531825301959264442062337932032705425929319913785564428899961482652282292270648837260486338973430438697748409827067393529325133325459397375322988524877021883741081982752786969626659204031924876628043415517297407310919334417247677449507633269613468598775499525359955461245422169955514076013474590248305928899599029370322428463149351695303724874169862901785279715656638844877024081045128225385542736360663098842831852923144997279297903342190828402091672502098106930901491902898305904911387564464453382252407516220970637296293417286977179649718660712086582655663817273307551980923891183227560961587461711657018627930014663209494950410085974096444353579623939491170460320535957304349147328099399571605911249432379948412166004485299821802024103881348385203314018264174377170750965052866712783558172031149918561281417690195756242553293419738471792075342900460635460234875659631839440442089955788363669602520286794687799141264357904574624774459796766437160702936272294084025820858726944916682634682894801326916376659952468272748446898796620966272493246830775216931735169695522516983097315721272398590858696539669600825711111289308236372030473103465972178599953644713272496503936934680873734979136329416165159882342389732474230241404511908152035232864469989036859953205536015820336193351672737075374249766384062242392773030638672367722466206489295851903991934612048330599251663483013762142364286202953858577643496947087060487625359422371531168833373584120652631559713942189995414832900265606561762357198454643976814885248800836867145878866406967737390793907077958806069873975848583062784031107040933224331772871460984145335371157124899360335572418946576387644187078828606980947276007748484724871477350454942430643020448509056720521077282209578257089214945921834432568950457168164034738195469354235128764676244680323482575542387941383966830502702601719198827171450424188833901620195228414472486671024349737888796692736677443916908268112326384079835718655871851049607628884441002963047787844714342698473530053304052285740686988478407265931614287853379189062289032178847880971585016006458002782243440883980452921372572863790063160609040094410018749700618937022370554110435354414144347506373599935523626445005573321021390239503092139550031893556679036040668352076293134520376692883291245639237929162680829534058812102505975651592694530145135302600614633597631628521040587568370698167608595474603613945537682698143538489363508007894112281559730090592203064257008264837594598053361546785292506769075916531309347662715276132733455833648131183690568561450743610272858447519698466220127458677531977985722647120960783793182346889181998175902046436104761080061401004568263941640544200383525737761570094897260478708427098473460628256583548639519919649612271666556695862103665884204966798704769039031814110923414002212927365282233801715491429258574928509707319410504679591385680260795023701726300135339798445413059904613491819753383076493428344880673275767717674384333500490691384537862871453891630382280916535034525122337360823053774239563952267130206061708294284167479586066023544492849192473373970155867920206550307335629623825402993729622846384830515333822042555234058521457846578221284215402469758280226131200296343838689470375605795807146607092209242076186708745178002154578244356747918504510422611434694431752652426517209106573444116354092182171630973547106915088509404046796983534713895597456186560375919953743763812223518645746598188391109277417617386592165928895193795045283191612309474701981244445904455368646629539064165015581180939354209434541961166897578166042034075616182152364617492921600202591142290253015570553504078784944226603410652756860345637702049250039164294146064663426310440155859559483452808725948195791847517970603430912708760334468157313083969340138331841302809220023278059800694947487176151632152839326017713580999835819745981466869828528033949922297685730648749214607768742173501848453932519077570649991213267775028372425544555868698587289937349108390173298026499821205816311448978513619154594913299549272187434978438158688963001082440166587532510576752044357867126943669203915144352380378904822614642792764767680755023955319485051466975284083312573207398880166830483947805875913877816598335744263052800094131697857766155415015525668485109825947800845783783658526274055431611636899416088117101342033118796465326884372557368448117460509263775469663913510675269493639664427731711519454256643040700150504789089341342171551208908719081652692242461953617569611687702806303656190323504116618241362647309359961746700225966783368129007162353392535986272754192448124082488878497040697589832749451892062020248833454869198122130790264090265224304317511141787942637692611515385199330516817812800855231440421573276853834241330021786845512903528193419358476294343891744401428632368413153017525059370379409691815308219162885244730717880775493222028740600122384208400977347930972424338371951363544190630162940252961619027314292719231326441916733225675884119035051683244939386696847114814016936591005809924544001253792602186639746810020968462479445721048120619693739849224081644080347681321992266349244476210505207976541230084610708220174646086733136794670266561824228045033099975904879911769652090967974388785942429457524397675891766459181727897060411299893602761806822735262877045986463156825839537311705728890062612271909161750936067895063739873713167931336119472817007526275932805157812826199953015939089203612406963794790695224213412106783451743631878648679702441848528722159625222046614183792641568809331769223900995260864668221953462737241809810223843240656212007786153793285588749357377324235596629934557222191417271650094423554244377048061071974546396134667348201746116014607812374441115770522123305637324298442380445829369525150394076420571380984906835751043068161302957916976479606916840534433391507422449827506758420506966246740808053636570819006416047327318351650217130743135693705471897107559354743910190834982845093847297604742119326443599786395888509597392034186572873164690951485833466784748686412645004018077925302331670277229306317830638408682015517960284590869372555686651747835387447851921048912085320575997103952458559569280065067980433730884838332754169152187433756799613600082238584423296957529983351896003446977935622221390984459919067728786450487380081283947765807484129161277366791483037600199304376306345477191203977992019099952336758181396511124804656741523803277415309725726555943837925280325426544297074167625693060411133910818420146974692920946824554028251344743960918694940502674721222340123984725371141966062682203641414556197572438525669602420919241918136582984215679592632656094052823302571234128717553249857258483260685921817259738113666956429878571948846731488052655071267694481120724354137228378033791072311954949267543481225234128304454253062513048564420558106478435736661907075899617076746619926968276243679979274966258366125140148267107894440363561073036800592181150527948646747609621492696334267642487933689375848171761892063413201742147845905128464578288117872329250314187800965990867054928029750506219720402283972352082302325355108247428388173389972671559181911459567587401387378909805115366488204606266416893043899140956801905002889414112423421067259338187200634952279336152199143789944781886176385559227756982810469385081591881622047545696595021232137531516367654561274994626346542183812947118411182618497679817081452668198102700913447631919250182679674297461466701871431348485702584612724171245084861251785899475560351262583697957199174964619134028064536755105243812174306562445598460530344986557084831108520572269632631599085232777205682688056746791895965105975273335894656805765899345823372902249157558589995934254891485593974326597468794354586248492724447586194265062583058694688130275669540562507992447650792792319357992106788692303292840827210603757338076276496746151413585940296746830116412303984635456090925050935744322806722333039844093787155950047314842165702766772059128033409921951045197524872177531526613894370845858383031237633169611252106529256948774715273775453870450198205773375094803680152815148018430557083726745264998114968373995152228504150323896789043085909824733266510338585324385384342124423972364741677360395398604685266993667200126762508413394389561135680691888663459431618315977835787838607776049803682443305808312428792097016283807357442929023646709904030853474465460668866277586371216275555576196990644694390991326896562475280935757182562536857279482106494510958029543068303810786094221151267431656722463259045419048651359048960807115935012853585469988919553317239166399030815137488223033673502902446562849246087866635852184474188095260222644115949209079738471050501439489453238675124830042357595352197974400828807993363848530909026053401049369373663620262499043096371553951953336306149430174199795087052021554342822294406406510183707530309422378536111983121268098495231397329331144398179830519711515302442767160016975156176557847691589201814855506184265915238839635083622757183022309102592499731537201854765525312575655727088002501143139676116335283164469618956529705535021091633683309683505789682844196117275718678020832263114690583716812922291502301375465293025858950905259145940260152929793831294413947592739025218966829790567772034107398793156780659715913975505903476938432741871296959833744341516525411070444080273590922906589379338724476412187849459224093105830856913360032848090738924351913138341705316277815123468555663564000444403083758301540106648388476917284445281079937364513528940010574999660165612711167006929190127157619751057536442119483970052367501582304340731525463850577480236877239637287881534763265021462209363064730656164564305113573229585189161719359689551136415114858545890714972233114028960813603104813573914426026598534281161427609760507669860948517060407740009202284588256272656433272329419270553746813974832354536620400397816567222779165796304409040505821543364800845432513162744682791063338688200970377964924611724750736993169209195902333536541929953582581954633008533881748033776196351991896277449801696638257560685623366158174864885749971105129436399994138979981306200895015844733935089814753335041723556141614320586887713973528941498572681611127095253644937655735739370509575398009922251057718058749667295343224415286127183230622879075677768248047883015193469468848700409199448940741038944229796625249542216688286012556641578717612704069645743119136530958384480144508183720882583970207762141869287275195348355789501693078894126378318726414388389420590139959118009124702264203584402490761466138024613695091053758601789659566066716878924163678791402972855591244967047263151188485020926701796598212210656771301935546454694777890593907035225813501404993081458069334884106642559828371636679445400921601175938644451696869339685735805807056899409792829744480243937821986185124568593405345977996656551551829806433239674912307947530108223296124606101552709430327573427243302377534330999319961658038183854380120004776277183882685529981273761473886895463422094302195242500603963939126848827211576335383516609808495723068323774851560742500541740577101368281708931875136554977314507061201548150875895435344575299703216481144497664572333683560893784418010060484796035413487277241398661207531504310865466021860775578572730954586219279613956054296515003735515253389454714477983203590305529556286466967046983533006150123872787684520308631578325156881572577110868671882287750016415028805512041684700854260425174425493227498526026890295849234302465966675467109202175356777985235510683552212944063023801337841061658862267523093348400855934301327592388600757059306990561182475948892130272243060347743881581797501083497304463872489993773577040362522518295396900209600925172215187193269240387752058785018303693287171032619287869216634456300583547973646026502805395699927788727870924543361422057406800362371725927170125643243330662852793711099308750313804580645969906612243587107109328186998660171836931372099091690067877107508418792290998000631034516924758938055448537298118913085861995823654529927247463451093378556872017892471275779152754128993541575118050303116714658647292191970305218942606282640882922612523645962096873569345175126486546049427907855517543175887195867275727048595922209732277922165463900342749102753691346376713060243100089703774885692164197831764740114694117509354522193799020424345575786360657034860770341632023241896459120946713070693173401262466799943594603341636207205014942471180670972764208210565284736686951199837695361477348118309201931995848919663422963332465349356978690328051810840205396534708826627092991030206092246230643131954062100011294393244461563234626293613129335992888865120693515211365999897240262534045394386498572152984944179256415285804022014238401142838358242688859933954989301339666364838218969418916981122186018097927682704684935492184538779329815634495242951401562149340622597169169998439282208087472631156071568819314713247529390376210800661829117791672923506046460824442509390628146993288595089327223003479984654372522050898704711747503242099367230786283926090620381205562825205572635915854012488013749674939573305172243458372890042527974417903332633458469138591878324719931318046670381225541458294495288571403358305984748616123015037579758519023316512472334675563983796603920242687875075953890192584681553512678568350776062701145499970772236702735458373466744243624897499825780432298333593536577763258052462727720271027695351844761088192382357762387077339360692738643797893546170138251312635834360197581717048643051999943676899649044244205849058201848267018890188862236867345908125998540384623814360671791733510974723723644170684388565080733247073182588731335340173391987440070110443272198454312326945221240139990161719991055825009551022314564699104414662031547935801336388171162413947131603339599044391987786050149457173798615491311205796877615294721889109385075232427911032623127422130010494725732053466460080125911778983611410079501546673371490448695039660159969922142762433912852468749238992634650649258439003986700191784390182298600906587956346351979076412896502697596177846711611022021567373654894973011510147339180406754954413058139359184006311560804938449177497898738695711521032300583140390721066353510908673505439332967742098077227276772301727619578922981384967161425689281735776713864354391371633031085169670655652819505227966074503376724108753084813897263474555085301485215809337745259632199229773560509243841149612466328775742994168736193903979420491616289498670422999800441965541959895756614878925625763151686938196124078061380409852233012039478641280921696934430790484392067541427349699229712589735184370805561555463754649776430288434181637708994209114981930536406198122075987875701662941229814733994425402334452504173849924722455858632757275967145204095323792982760612615858706765683805624609622681284029026865131612799994079478423180936374041932158471606587269974421918540647545111559671920853397292667942517021158874482717034792377780264025626479671737132837774558765664121372251941705373786972139304832872664294996355948217829038729194359729452276120844048204820483816036789123947340568812996480401992580097238056862800628055328165055765522742649154155360462492890072710382018506792522168203835935238292976065873416120556755761683556655646034972784557334118268694352613917526424998150795461828418536087468252137908886375625400219402868863015363486725036504140384987638175715693370462215666030144042380258603114718109490158478781893470339715365947499463602772571876917046338135937484554091869879688176968637667630784679408022663440264969794381007041258834542303038046269977546948110185620543830409780060865060062399049952389823112592241808754249851950762438734179158958549250344506860878844301578413043005317856142167220573694582193093003193289372038732633090943364096660534961700090994541194466627530664818380149554708129021128988311796560115077210615123786446877191335462864247640353012919124777364110631866939096438576129296678365932720221977669783853408313123024793191437751320166876470568437044633701823840353760844455662120540916931846286918311865571578945411192712459998832844515167161925777961222720258297297054817029567056731531723002644083589276072469782379116035915984441115850055549194270413072309236705138798341572451900038462378166197818714584987144244476026589095798228542324838987138302467872914429543341286054877930218332593162319706715584631188470211926784212454513094104798636236639170857862932097056375150839061302036606634685224977469900643754340198825232180913732821959170611106166513609582237509732052488035365303594123338058709044759457217020362188728173242604155257053461788497773014151321193261673429962746679383227609229619420653510221076230896904942265815972554921858611288184624275880634172504945555262169657495417995739148690900931326110990967411442744542052079881278945660833463877917537939649547929495244381067654277747220355088805612934193648175470190502279403134292232220958879985916428706648452141420440677291352610083437531303502475761797244765076829748373157431370938893221496480513052202720117477644822261356185988757442328462465303132664652519635059659511907768719043848347239367905852674931244483416393543648459116211014321180977631463290616252812049679798127370035810020751623091427202761103176858838486120800512354402645481846291574324278813362873995383748072123372382378186209986176437002675865431838263875860745923597556781744800235279859429078763097818082148576694035242129082035213038260581660841656525550863768562982255564766868939569166410462138440342743481413217527194614710258412670998814777874801131269151277781043678631477161622944791054118599870358071136746447678039355224293717803033761672521654816123642691655735329544143134120587934670933237051847771633832473686293157608473269598843044725528973347117233374825475531426139978359215867825119778343450450481813664446780658611061846387885560794348167170532283570857629911451294867241452698187431069597393272230595504825774623362923642503720553271925077042330823562604054197402826201029667700428164430418049163849854112617842679232734187724626657838148909782681248303418673838477616439604051518765754435968272098768202898105668546768788769103710343528649582268438687563753445082491436288826072316125160664930184274291257575479248457870200723077293148212441055740038769625160218899750796255587418658801782538989561879054855372727062272051465467142580017876291483823699544901482366780308561170235240884754581014034588343611462685391100855718279234345230611498605990768178352967871177330844409448596130281208767731287395867333111188575844407608172560543999093234069950690136822263004539217512964831475357826663289974642729385935551069863042110701129539860293565587657564768393884685319998405768146772654400169370664968021725498512762084124676415799048105685037886001376094020857238973797765513746164992793063914323638541717102948079263486729495832747311364479019216183300265087716073214763704030455829664293922204688309845911613122837950254792746107575546053607530482138849343785165438467258701358415456083532847484168468814169963632464853985768858094262803912904380784965422473429316430149456538408340689380221708511298059434932322250669793225016548050236683648251446949138513438799003263508849647828240254405687957577564849751807101813646687067122047741546315496844184022714797461046966582978656896689126548846585378539114216478226757416452103448490546484661043419820055223319805499229439152779274812979407135556413923270017161233902511106200330694712205703390102248327868919342056727356989453310032100035017462536080610065394746231337973797540344595071046920528902147948229039380584431101251400412550051437108199528886762438208812647665132776690043172342524311594644367806297188918894108703535477501262634879278715001285215211402072009089145757607482500911447675866079993040677915515180539099292846500091218546418950651092402714898448728331008053960135227792569358062766418315753032101039864245089084170359129633904995408124356321988005852988160201859345816051772259287460377407986638920922523219680842044852307064772699849632401559188587226296029063981847845601363842648335120708849210272486222961807488394324530139458782788468173699197182012604128159865554581961392599528544585855995248602632620240222093170685309561486026979483967840555846005292847056800160181559060071801807261291619216185630453200917613235387788946820609945834724730588057597131884890635091492716070530500912049757671098900091122905236967703952470178155996112455399777576563021326460218076802719743492747935566935309414111728436748199983371452535688908573700753507943927174889945979667191015232381680316318391342986061955117061963624805176769241498937571488804972222880475721885701512178215723814658261687546007430758988387137090686309537243718601979735828950933411084359880937376947906185592495460327231635842318722057739213771316398894294181540901989459763275691502818074251394701916154231955305116225481034268128359962152050991492294267723727479407684424357796475281997181875030034700385893234151566886041307961911520969746737974397784975779047390484308816830680922544845904283577607504284602948750044916063715205751970890653935597314152811412464767784405248713891444372007801260237677787012314608658644233112761818852211952436617609626307495724903529702036313282923221966564973089244119764394254475467247141066239180532686800008855771440188355110077909188024943599421061861359764954945571161591086857813026077320501137250756197167502458528427885893874840058231715161627496930512879667942261778070858484692612027088672812213967500810184064850027877737850862819505157149150788996834396738504819366202611846544362885533491619569293534829718845701275262474525035276521452784802741474916357594882914453375706104231593026703026161006051187486190565023490738692076486803927079033954515351293666599160005096048150180544766966712023972603514452889521252678725153284041148492408545265483402795874355271310910486577008599794842629317690338080653747514415438478445965119193810660485010611650321935547344557719536602565938073627662726715310615500336822792704376450946769200818422747735155720851759180145001906587459253768472042631776335676501611740406528385377132571828616406280355509685659051387057872719511012396416950126194468318762095390335589405722353422668067228662287542245516389200308447077290027822891007316580503223670608526622835248790962410642467348880419078620544801261523196829162438651635742431542584845634500569818584488322587280463881596316220189809844448047643194072116336309999053301196675869996462422798812386229015429045410247352312661286198428453783255346455310707812715722869563280148260174494445029177238683917036705672323333325132997061507797238104454060194952511492139044497942043511086729212802662069842508415159257440847420534265748283858691757800777111155392154587919877468544034066502793966187060947415108368530084180705387793661458193374327737406952332870789949965006002440871645845482994105923745038445227101741549259115460908126779590452952810610994314387744488047694116829336723080451399220056268197189989976360825916459646312370580174916646851605040736538220620197663210121401642534831680423807878587803032046830189953193141668490671540008585382011983104658832151385185132388821420668416807929617169749413822778960281621097063145720472375535359345213246634389800683457393887454829929578544918667878548613698406319110680805787564464818731141159314311816503140304804390595380924698772424552140783732112721008783566923036312902347363112645270418332027652521969183088856828700725916871696460768070718943432358459862292180674074773685244643542055717076657792711792032528409734264447116355180096518908066195101232151835431135399526980201212928335162493305748714410724474281935543221148754950337859127696937132678147549701470412717254530594022288942240886743553474177704470448333305512881751627549795659340384120059423652449530388981039656928525915985718078164794639864338895415153038169031746113892303119910110572506954634269930423632496963849954925902849149960353763051407533646550148092953512504282857361859559568811785378459918268403250741055632485655354557005250096197689001269924217512333584486814574705294766096263873374415508606808834469066671624033665995523170281062919120680197011520823740504649649058769821936342446372498017134168760029067140375729620083065504618592834229179879296378318865687676638992967780225670922625977320569309201961412733099053052518814260019355262998942737549437033513797819776710746381609554927135128685850801289314792420266481492322388842230005947939032367910458115071897288003779655216691022556930617153835138012542507102967489318414630568506676703177388507688290189921508304289465568219485983102595319865180194999009472811410382074066022895185722857564835459526188273031031681433200323873461708469586269996107934901711577489808590814196233914011883903917685261336980173504288576187882387448513814096646279725615109180344371266282964835596433610341851194197802456561025812936937634519163956880084132400974201963552313407415917091333201558748051934222240789361635589162079579237192618701721426823746154140525350315680598840779431958571026531503279744850123897229875505566020202975598673040214970593430598287852245118098231805837680393241780997463395231202257946954335330595098088291220000191169320816924326989511775217951883989359834730986707777912007038282765527113373329626826863027715771044536509102628141972388212893691063187902115202634274171421312663341954963591373997553103406437776604381297525117966134541688126374281220502351174681398356069137684688408714645988647138567548316637078604172323429940133037793211866762297924286134483911378325313555640205783705958748471980707278685392646662550925965823467384227520675342402402527864352421312935650024032897983959101588156035304934017979639260522740632777830774671285751578613940811914310877288660331952155375673146080888820669381679067175113227057703439745861909119224523747950227840395662640027602804688672293941080987521966014308278340783775774858096141732157898159279954861155433569152499197864004098558221498028064561206350658292326276000016441605466239273978285187465743329296559836603727444966013238207162819596770776119742682124145913135597326622240615939577317377671232990015722768690934567224286816144156102220266268279203254549499409892938262578563418384970193408545672707316551694532181573241241693041608018272971487514504511720075817996307026146111978295464281034889368584921831871741490156273595576794446478436668098257646262883330624943799172626126014221841660162983760074447224011467617169565970299959127769253250332068674107734452992085383980554579903303806330567868123453436745157019426891438398233121564551801640107689100415794203323300986214008903871797756567276666835237517193924758521740815138978891281809116568113967824173409246566824193278055078730644416944920690350909341159557784086964274022443063669186005304393172692097777727739174887467082102708694086889746709543144491400069565900230503939799702258247992766956166769697324395883866500770006272429745274359815349969504489052468546453048212845844978421224286292474155372107970966635173895783726895023538992185241550107050045765578245066103266610240601634754311346009511607404671037484191581518248823858002110785833338671880653727829005886169046063633897694662794999564221014850200408526557035880497656436897154018036934111094996556787281673434634479235957966497601621258940860188443598657409703838757084029208645362797506249057982930211555648399958864881273215664271581296828866226666680785134004025941724652211572001102125373794193088707171260471079953029991974210471875445539626211163224782613765259253207430779521494326155867351818653626679101221023618963983032317869767379281390288823008813344822915148018410458045599498294023488644035722093552295447044062796285613827071249025333844634222624973745971247437370381729844424859034599871722618440672212095262514070431513321988898162115784825226371234144318568361049314152774563924893328899007306871459495531057750714571762569692883059026359349269720532156319328766567935893204765811669888038671356249431035283218618320665372375416007472980557679086464759729916875148934131884792722408249743721856186340670071217593800885101361273401687922958305180223350772893736246461953861069304294841448147139993010300568470685940481661341091525799703557002246044224614560921037882605843803299397313663584574056246006003880218575334834008009015180524594427431718547272780699367549836174182550836170202001939130483799960123266078880102841016969564085954811788985460737878526720319695755965305265602437624964162575919627509706515648371882816279318007680801612105468359334275280175264880042981771180926722123367262282230206327551449569011135613436797253337489253791248719282281083921614192182541578053921742177111859003533292273273378296628857982745202844565326747923952982822339894322002336720831599308542793911439817980652848594938277047318643543720803828591745684174562393859974647639960958044280481439036405620925689781332967407527481379336493235737974979937544004422081372475874156816624945010030135152192272018952553638261380637742833489567289255230663259069787218712501256910560658223212575922673483755411401373102513683531825387771248880753723170147371643153578041153859242213031412977849214409050868746529998312992417359771726272758492122209506172148304001185161255230377342437773141792436582007781751061793884949056934385225845437494024776246542920227384980244772430356582056575215348834943718183857280250876013589831125093211381172890164217806053227686491931023172779862346926635039431748123119442012293098199502689794880690943293161245877351464203634525233117808451333155348865838709861107339550871904702588060486206733246716173420952810939038323819450679169673198204617554934084520779092644787241528406842115988892503298248766917841113973352860570650902112291208948425494792828332370505481651612058401697867357152362424881521904158476262305036324318361551162286095345133754516575364824806643223118340263462269316631454701435878881944864800618243277779830305166682015614583380302244756262206074204722386086796300959059702668272500839108605161269941930651063878455031905197433426904252005385606317027380995788802784855970239914606503731711985251032438374049165766422769919329828047768586875896519241269938780935783835176817765531437578746424345895829248219634980849954712844078310033103952489591741251435697455405743215455977270932141403532870967009348299095894654892587985174692261576675377165360939782191977542252295049934442022473309196574275308519193864993522545767079383417232073122873351192334927419778157521246644185921849040747963458326328347526407744358755982018950147306066419418854286397918837363588605585776024075183591781890693935742108340645833939303842393192616602051071487088788724088864323320569228851175032624879104578744647120637629951106238020125541591409515490631191551956731332713314181678429760480146239626624416486329346940205109674720985531352569422677188644441038475569142062308764390221744815070099037686222703600563383026108245101288827102997820337345453922939199845491623546660752207154464291689715499620961903112808675570043416027117214868267536342258365424283856306244972749804216545213534091407780756919062914946636805359204209839400001877053211431477915580152443550440454970363445729615999108567738259519298135817364643450564016861563084246818313288864073627256467619674633169778017432020777228556460723766171909831368554495595823399255327421773684722802216461762198015477100990062847328649088916145327254639259596364296076610471997474800765618982145061825364526333008143852556090327244951743696151069782233802179973773813347094567742596464846913840455300324597537232035724860903900431987205247933354242560595852340402981829304361688882921956675247862369880859642966947865082616025816292762889848299459131062846641390262799772712030070706672610785134391035580369469149950770966905823587076162795867819003653673636300624521400514858356489914407183268968635868634541220921307400136278772481414481086023841711629153850537098957437003576395958295075638189248809287975629994126861714356334365993789389691494062537060671141792561653969025759992297416616123437520663225240857877645313010934710581333852335415872268088207909040955771522877309384846516384454410981691086891286822492342366008801423166962240094267434119790998506415599413898797068965387039403269927947175288983068018307166261582808474482431256077825971110524612106016170215446994629219062586040457831117348098034704262881221733042820661405823870017032787592449113587438109300376158171817067716394274697774359930970405619966000963469249825528356922365241078691818874493793873506662831820007777434067831339498639301306832957740626644336229593503867409914134503259429133706259225812373340370395707664698824924326102496034641653114186047623000629264556547975875795773655354906332077312443260271250386694962422794914318322553489125962047802830563730403901195202956534105780427413212930889301500744513181094858781726402546363028572655895406790865510387059503750293968013063337512250405320700365040969812364676975659644590501145713365017055140653368466148425550209361983258503147605119283979868411837169798888250802989366188256454833624520361536744431998648931148238956352864642750401213289240309684270563271536391243207731277493299760721404528797728005586534901657664074950389435532784967835025464941652070345484732451520978482607192379698937539927419976611784286475124914304761345852857224528045224873754215799827926474798552073601801481321792101840349331666008751510117678992755409916069925953836713602548052853966021863680712746529382638600339255857009335290300114261048041668424358559078514438024861330748429810869557834055299423850647155693333150756305299311065115633790444325407085281977903866197902092193778550462256333639962088961557226520422328081807719569208529157722140393119876391680139555415613780280669742068401062304802860037586248054122303867836797129036257112439413126827148864958183659427565600424117341021559728467241932947341197615199623594683187105649084461793596709752795910500346775208606522930093641865411936047555354239167835824816873928414129493743821746443894505858468164605733615310987074607778369188456164700264713393326432109881520050093344025745038646993947662243235887349136323759353956504005773565695106185235505668622344726454340629487244414281371207550949479454953331744551889744830258970892054460639987238430621143532801244772317592341501632562303918630363782296192211336018396476171148593645042027529964859615690412338174014853675029542838544719803105780657303994777163919105663540664832847188581942020141938391008796837593581669981002409509569697636252138797350165450694206361217528974389360496465482846617723855493817321028461784321325581992304577847444712815972438427116929330475345735829989802509257311014639283035707927578987190358952809307116725278670441296511993177607382400255345847255896446357889311856295955584318013989582789451628559656011718300504639416625791670826260852785479762271748681517666289412273337975376197753561919219119136721548302945642454784040369634761334318907032607848388755446795872958465217193957856754871078161306008165907419337515461049408576948980184882867115770276435521259393186985008829847433641936091157459121482854175043119523141127585794065948224956280505741095400147856399844031660019351332742468005359645992122036246431830400184356071574222332541378846872102217983985058444316427002717251380485679068864773907750926740200018623043056702259970854514575523070416036493061337671547084411830275081512066939698762050565542897168588128405040604729687223076541084667014862008963840587788060060141745675391090851282106924893267601246760661052228354684948934472205153652523150177485865739571524135805349141376706407737853440806148462870600337779439297670815215151164112745658404701359907883334636750542316196401811450242792489343266913320874298529905229086230868963189314531174711376396300982745477792447317068837390085842038591052526396581553162047051643122569634905781189247707055368437847278475946462316646257280991236717223807041750471504145920129364316305045259996868044027143014211343727519315042458406852523697395778261782078687244238631041650957397678801031898172345018586673042019417979524785022190884281493596462918602969525892139790343335126568564900031756068656883585430935388012129030179386711883292849874388133885540082425973756511803639990153807014193138298278490339251714042539934746791161092836250006239538661171195858936468848604275316019992868639018582378549019034104668969317503749682355595978834293497402875563666283917688455093120868627744210488176931090842860226405696695461025570401093610386910857985505805517120258101991780207164674723202153007108490977529298635773581801159574060618447506993798633760354569518879878141047875566324278453047494017161843094705899638558966954943197208129673767287764441823935101302662332032593225047364115451350252128958654167220470402773083196214944138954452178846040979084699160875628770750538393193936094448133136224589678507102858281302234438015880455516188577932462110715239577212132324914846085523180498804631120739382298027015037461279831881957990070006118514812765495051818739996470825492668520283319069231291785813566596229940686448871958207068892843273702755061332789365121961595681026913816682007455517178032192096921900083005275906776539846316666345788804736573020105548089506467351454938259334763209130645023651525316575408623878900252454053374731685739973690341166910786710321292751683629846279357254195304699480375430069572714680087124406256736643847076373819807905084758026359225933057261133077885415681025744425351377681468209845916113421107122527359067386178453109162685928834834062310681387410208383394789400549990107922912308508801870739674015446632840450717366569842936159142913242338773322534105659412325766964703177441692372066825378386400764574331416360936491166475321243903888829976864724227112567085956776218439515314597866885969287584189793651421241860647386515694928775335950351295125293954756483974705076139733474411064680384125843126393602434315624765945137068434549132918271646686896176860160777400280641417824377061945638411162623129975353935473547857448370152845643192686885838949598108514604403407467039414530532259912834403793911723054366582835859004660342845370816534377533500550532195315204513406243787067681371994895037501464911951952243216336772617454461489825087238943121909625612074066387779335101527875633037953663140727114259362822866085426079315408216151669721156246127296962804861110676635124211169913043854684791642561268214488362936592032797916694048977376031412374994282109960122984536086746745483089071705604371911642824841800704676697760549072116931356936457197649392744982019392503233785103106356296299066972238064593717393283421218583635130133236823532958395621470403415757077455362170282869861836504277250230704859575249267052130586035820159105443574022087818026105681969456385325805290450808968066801221335784247789942304869536790420078655852094498386090143412863111132506264255483031056756655137994677829477271547634714014161145483701104203383776523156099552910901051020492687242308324214161304593651687891540162952069116859510202701267656900788775475438562258732481893711010758500918254360442327698816391099987607292179794331701323176538197119055904859909337752306776802715003744182029834528203291561886011206366664437363776917381339165341532029246651503190457688701888517288560314115740289610000279791678155591792527020131413916754693105377653481786347675517110602813733711900431345088834283678764715213795471695899404869739251622957991173263905710287294211836515106441690304074220260317857288048887370850748004785670128754700668289229381242436273083178319361990291750804089651566061584342019343527593629951141013944445327468781332061291771800776307505810847051223483572468575892555073186580718737359675002295108757277474903053922701396338325895255231211053496386317808029751916777112417824689681256370198921726041078774638381161879659875967124577015786888182048880132917289304701201817788601404489717752381898258735384098729731771469644582012542118435192814375843829119027342818311496675591515339568485687453703455310443451421343763333128441723769144184531848931393230162030749869446984434780662271794728129347841602694506240559452869480514608051455363688461697777264034470319747825305485730082925652164152295937009303770006935509333152123846890540834926822875459955134079713257220698138850516853101812316091556730217319292713912858374661742218777518412449403431953919838540241184515684731153878028819717021538773714203178172816451084313600771333686164740522990203438787351072003894515951495013025504170481570166142441175282736075989917068643821799657953468536020552554599528391593078915968740808917000892852215367338360035851557096833629991234428306875941904957599762449540636337817047331410474535825627345853158388982985857744663845352505714089799182512161684029887340067780597149239509720487597548931500441055488812412420110317958310862819978036564600219735219458810851389018414694329822775305962127622012124455695355882136772990603087543531144505130221406346222967607850406204403859299177471078799971310273901276308374077863265729488636479757984821850119431675420774222345263713038384361786322007245691070359918112371664486895184131261940972999566314705439049088188701678873403854649776958196983936154094673782677502561414934017542206184219234339085560831897695073708582703331473591363389218034624615034890108885487736571407771836585638901085239241297501043316057366593087380604002364495955668913124684264675170400937356561318857359927247241386761002525680146639219694527355601636305659148252068571752220077022746023127980387151880271925019473013526009680434642436764405537273059021399775138070658690524695323337133111748422235716384423798093572588547416484077659738195037773513240855875557773226610332882253799950122249692806656559907276302396925917147692987013307329974577699462604995275458567598967419584673010858767058859614823760681352294860124923771021953960609100053996602169992151459747317134582738943171256419083438550810835390807632159648027745984614032574202947152399469738016950771116730562826934028877729635381002082037834578434171428195808033207736387719693361874179285602574018114961235705446730891352273735416211415190633895981998738343428871409522684247175662429739397395902075710563804927689505170240126446354656091869120538203499195792622194696950198217412671169454720428736170602111533668851927804625963172255088435860934359477095843846426541254177542827189243279158015238807163310295906103245853209312698526163173152171214179009029331436869831056535932302453199436863718460533907781013256153418250370161637962063699902362120733718910434794079739611204580347543410656670336416185246449594365611713868501663090695065135835692670557170707053043229950863157466542279109928951191516848981506434560061259464872587077140047374397932875631705620871144974932122998073222099194104819071382948041108879951572252094281783670664449412196262959589546274523541027240666623935260423535021687572319637062122372583098759174637474973296106425823777543117812830172883013308776449315094579304875104312420058474877719882872180501684791376773247709625258336461622797780537414120236589778112471969815648734063391315319999134482576558429662272630520707773702623187829196557179675477615517754924867459771696288637754237912372171015530014848111025647444588336795425583123684090977082204800862910909106533533433526929365798090682629450636154167453187827101073797869290329647732080320541046118263249321141497899294194019041762516438360102468199100302738558622379065895646548348261348018426549571198835785237297011452315717396134056228737962793007848699765441823399817589480989003709390850804327073899998930231344712813610923325342299004553884335494744616728865361153177783087873314001235906421379738076102868307603549385560527954069631546379378850182106120310245753500593785774187926621059709160738969341388404673884663481934667235983000992292353695037361926356941780850002142708404627812384916387766601869401779761293757845457144754395364665583192156392756650808739400552373965502131283623432314153612576431457152520675662653508852355068326358509580877055000779129826430284538998343877107218817312549218126653535472395280706421116994196927357704872948920602657206019517196177432343385832370338735645419302240849179524530616687907693895654933929256601153555825145088793723970703297046168690379225279129407240865628506608060866293546965529123150605078556298095689378167749124609049484315066184145402607627277792167988151372537561495244046651878081022379075330405361569471817952813998005310114056208971090398057050445813722029279136430160039243486149997569231373583169800454465176121136188696089798303949540859545911151446621518630642218967307386314674490990894425041211203682933285405247348122141761072575756543592419870394145825088012972848236971337644164743672990458241138430274238667988319307496616673287255922141409813581935635922253472404384811549377344743302817583018380028295819454882806118932055219933177699576837003145724273522000093959396613878317004799958624667116238722332159994872757471329959679619595464576772308177754141090344252989070531452930002642129455586364068262759067034452710330413148582420146705083728430465530999283707708293197805515983734278599089204847247601122295021245519719985798802679751047205934875528928966354665565052161024419511672526416207847769511431277577930622851686723667872745969124134864749483058676659504588288363726913712858482158310316526410160437440490072710747538802265233162242891591204226717964503254990219294583088187122976947545026618309271326815145017461263646093021475228594031141862396005074373659365982400438773680577959526382874934354035805792397566217262824955039876840217186015804472848199582186829103478423533059563990360506100542865827316536514973608752721990428213992092224571789846209838304740846483329000833352408925029510035599084487669534916414055357757401129653570054867379289645003938091747047190980591990652213808590080978917163666055636315746897286606432757930352320505070587602515194064318189211244145639463198648354049826301676364732518899062236911990043416188919194666999843151062612241605885660243887703574740873841782836326904875026044053181002537252964722755042501441971392504666704770518942187805896457595241676032195136864117820010775329427715373181713370600315169868222110890537708372390510825944779411929172813047167639637585346287854434276729167459535482683684307437358341156928502774825649149698759571524371347806827025921559215220326540677212848329705413388557404705087327343056869920983953707282470677697078242734982378718056125042038119302863788661892793628083819232367781960138398322002302172385468109831001026294152325548105796463015633198693633160239179952909274697363248961590784855990433159649107530331997205026812107958032494149035419368291703943521317219183158568425117497326508300351378285982750553327675957580059368791476028874678375341083989213814527401819973924960579037413229380528576075528133714489150692909080640717359857364606310024212145579957079581928566286733503198514949541186064160065710519475415733350326441246584630417134749406932908859161491774766293858412278189229435537439145469582514285586081142331553826228965642208505443606082637728103879309039957735323372771750301331945959942254426929788279629209264719121887514506548893542866598954588645190031142273250972787937147855539202741126514395911269674810720840453449108237490003123901620023319084245207229135917973689717457243330600040773647977997459469399807648725559999154031433661611862420344844598080248178697338114587932411816374340566666327464579989142101142056226453625057130420638685043592787669697242262740104389121696371834419510086047579269880716684211534291076520650169732182847595755220448277154023185765796735230816946197166816238970149394652091102958662472884543562070202092915650464264575689016582384331475904478402193070316660189186500189697793155068903185455714319961636355074074901846024332152298842627942690349393464467718452612739285335601030659133499315105802459084490059175211745471288222411628038982285107086576888044015878271726439743211104100951028890137030566642286520770032228145744299679996111113205769700619772093862684782884908715688615101662503770043778627272186627433495754029739674163984425078832359666611802226824343115722851242011859535561321128789985865424545354972924470345556951967165529603762617746302100632333271428053302779924350542153736516786252274024205527832395732376618308834490473381482879418006434373650743246337666853210995687045424970120996700964977053674634179876597934885391875407948514555553842119339324604824879561974452837668833225941542159802633288534523456435435292721586784111123769576842113390821868953980603344818523381733891350205043700095493271773192921454779544912073642883597445576611194483350190920487162697864127645523599360325067917600185650750502866610421766536204661759769522435925719142791070635959043742835601074026623707219520924296239556393936837762359050408576337369580012471213672000532739531740872432166411405886039566494332137035910819908218291125481573012611607275542976226133837891679266309454806574368008994612647685100018517337330804190170228640046732242647660542925958927507786134874934339823910898121224164551632622237875707828809665989952813968019439795068225212040845756264564104844250161289349246242069370731998838315137885388820439611264557375837639559713923093141826595170494966693560580883778421429482496745365414903957799552704309418723772717075233757320407047914339393615748589352167423624740098681921558854974335112129412397251931559771325396785078914061372792393507893498451987105754577654812657464323789721688154137936450500882047316516123324422297641780764377724665599000329145339578068999464563733978658488217825855255594139695131578106229268395593188887755816624959201264769093181297625539786796493363177388217450204988112213637168668068731653314002879225163429276033543208839367773143394333002003087775439607409389491113495966536432123748477367819125805475350849365439440177724178253899193587346660579090621653568946406174904997709781714992515882107751694201725771615775368393871625988763303067751498493122364105471277619777991958158022546170923807161479147502300387272521378962025262793522709965790080345371595992506393209801442477523025444798071916938688684708212642086610718291331200009395547883991131292261224402131594285785977807988332749168270569862419096779024798938990086991442167613952453652285554835770818899665920691216885622849232157989364708107921909777083671781730564577726119225965432097144903581308878407238072043600705702336924706596053027545061187356418617733226006349628163831289048019743402460911810307106860084117970253506474683210207833224392470011990078267993064391477105204812088526701518708732568673988398951268606640171902196526002221011665413784901437234145274188200031613257039284303433534662628016280073154902188814448184785326847327353045837832786885831443886642877122884482923740962875904473680658302579441741749237244027297571791555994426842412941271143706495637030058605555528568650448991283203013835125833697298547077993394614081737605446903932469329310330153385315279705548884088514951036510607383389835131455212546450354992350008213653463345310404743962279829992335961820878325063726427801256118429167702218026168393405237127659027204261009926448284739483101263024464077245628400409186425252181698183877894124266742468535693793022811044700681825726409192406612406399972673413838797271153328085309409285871387901505566875973803178131171129670940720600170196441500313129177812492680345732388773803179680340352507497243581020485584050364106960371607416994062687579931974642234172053780680771945790931420317398879187818235487321584444433061528467093366506165287537148018536552431188479081985851040976735429295327560348717279667697738127686610392849977592892508469322777541767088905362944845382336401321734796039362636209262961025420241684606286482297601541640299442984458268176560443851922720094762520385985198960193663387923134249846360612366259618729692744718006515026235069289792780979027352591107163313721336416969928116866444265890415864100135316702326875477215823091141326472766320362675904331476532939035201821455875356854165736673331234877106885683462312171029040974485178389570706644232076501811335657454870700480439283907719228047819659623693841216125006991694592158588043807720854287407803238911451844110819616355658402088635366827798236388990306055605569633459801024484993769790952216425614556103696591604212886365965391370301801810225048516854005472393513566404833333145935356196343128234577641975092733137055838050815175863415957282399910022478167604856516043050606595005904890954225478955440265173514096559680786940921904801385494401719822834313598001373909144297123154814692092560792911660354711893641096514961669555694794678354311402378438834182963514556570519203034043796205908745817943885111189037420197452482446756456589683532684805192353398481144648958745655369143413534087536614454698267147636946663272853548934090818409802340944733374939844660196481676072597145277262653554840882377357012455390070955146121428406541740424596239994817218321744787247537436271777988902586971029599698953713143386276798633874725588964468232707705657008812654061063856795360928908235503947341743722026739947475185620714252547327742940115044540823258300696168419833578842622488741324547822583268185551130410444614089892876474014262508733297908450422220503703635677828616408383666961005426305778627051125394340006435271545228211976845841913846912998984497451526411316862329709734306260022773858420349320306027633154938522187084970293977500852722519165685655925734831754517986146722283290715490519064121819821345996424056534454389708099761862547337959054910864317920759510749644582525674224690922906232054780573738861429835754534934106163507990241693227257284182149294043527064788311394738180099356346503297365863706245001385207567299284215937682707185746793611547717211361891519289600633131925606223847833627015909584058576455557411660058255026612568661441071630242518363590204172906178515860315676644676932604268815477933927278154428780614419398251482833418455451869265810443506941313022767910360819257124878574246667080440825170300375422150585969188597091620069952276423565077651679119193710418225597512245682034384807254979629597517621231484542099557290557863947943043985860278611384707375478104605547513270467689643780178017296577821625791210631518960050660023722073652616633442696461139082215916385273734521962023430046364592600376460629055211502134033465644103467940670669750495420572816465218102278179738516865830510484256391598330077066299206290334802684169162688011399579539030327097919297818466619045156298705014108726744914616060110942516605709460931531248420886912700894073467751864586556474968150531611075229042098653683475142200027200525458377810298442862228510520386017846938064770403094350793094863992036682925429501078938090660353003343654883649683514162948917008921319652285694008845065190131486633975450262326464786675362709638414274711896650197955366480773058201898628873760031787068334387664364213275968274542312252980161360509667572300185308692185646150427502871652677843452007768173564308202130677876993168835576663306690067573133075147708644912904582444582795931251342933489348671210531450591785750026233695709474005989731563077591813536952004757804577336433288811908531749167480772069398164773478401175760751429832628787506426991252826671035350542209052157087488003159458031257297326562466077824364540900913768850708877990092103345708961779621405350984309419453211987947158078563829693671395507492779110564885651059595215745337176280891705788311560679920752028564533413713759919850463290641353071183592990986614772394473754194984296995340545274151584319180108777914644149366105982420425629236728203916881681381611253911301206050037021294653635791938660664485126198410254389072036751210050517270685012623985869372553540518178284350165612045313835113075663068789152673036418868316658503105895391527192796366202465157350874733833168138809306015293279227823210011943634310768450797427916548800880242642198413973104900685416152733213135954120177911704771791819269206187509583279512863444121213559066606244164109369028947597141350942863747707551042131167059977196575311725875328270450731058280916987688380592212024297737667498209160442887074535322183855447383926719195808589772799779696899995688160045836111598486138933755078116313929467416298690126348652323202976398750516006605232956515878934685450862933573407641845863573241018319241233528088471100416937844369416028816396921670825655654310743633379428093669603101007764810233643299664145355019933401818656206904593359941541197173458181152107485209618203390219688490518154515241014999351259744021668687303878186752023821682109668915872414419695177886254508324717841475311381857083623436443876221750297214461667911359327656707414561848541393373555014414760511108665165155486465192383590204139928788893514116618498802501912470387191533319682511314775029772727738852171904370069526437924266553988625925786408388825060942349987210729002438234808426333632145666716066514389147835318320877468612157259569112254356150604964367723827558758907443671213862196349163537798110591520104793837402490649363917442894604737066568427740267412208872275324352015444350116346099528667619442251186999081331977520789854845584829873387873674468720104013917331870865099208976952545781282880588753805501738099491697615609256801462571699195736092744779177862845187983579084109793237572906012920719414906944506978449156922979458882121968123997373412379560324930160243957225865406500899465290800353575435811173683154849610859469024051515758909054118482404422399282355523365272951915099355485870260016071761316898314222616189938514569856723928662719983062269048227701324951383615357591735982980123811313306682172533378008426324787379746572049642210837584688531510138806568214991618903571959223821414251603125497331540452796195157508021061080130672230257289695263720886220374010768291554128748479349265768043507142035704106828776535675071992012590140954839324688870242990546400785719439183061061964822063749125785692709806816368610772299158709461086239282707856878287981075122287014471557118455440438436763561633964764791626524654689244441235363875075657474525524734079762020490446273609622479601157396988798387141827424791397713576217913011003266842184381991377323184957458867562924470098279345805558900403053141881829353308248749602950544198417611537159924567582769353659148699748052961170411308001409424542674312853623038122299767656883609986145960836393148780200657337625743607191767903337598710300641531960080277862388597003512578157528476215462580689143461678185061982227005209720041497354983342106016528695372183688605884797814410456031868716959850236842619875017109542031338682301373033268014620568992359174274060115779880321130629088650829163015314348292165104747445474890600842577683485325515660577869424739603256260768250247152394510622925803042517811542089209041129790267252210846793595681373160991636450542507005880699680960556559884592426493028559954739311941177341509659311623726086119520992019340907585789574597284045488999749578772329883933871516440484563907521277416547099914807844667485482116994289740942035756228599998878308252342129111459438873416884302570080134855081238601124649107394384979578347270527557953650229176978764839657208464910264382538669749636194483860509992908571677918116877358090041186546867853546316653903020793636741906813546491369641217957937904073638896257567987797536863537197228507673797770457689116934706048143755028396389350404108660148926792523560001526088113060558829155682441903937670459776133081575226002891508410585693177176994863707731087629834279374911844080576559090725770563752838397406579858326982563233205509868905776336110987227291140856839209639861521545572363931866183419845482572137016879923906600518358088697793771010518260664420187018129827986459396920072863385750717595843115191733443738461166623088540374411828291367594373362627742398183753174474218583875482881143755985055854132196456040486345629363142315663492807403893053071404936424706419661898615365631000785528198824871596877508645968139871080995451188692052828096644712899096476596216192548498898163319143871990685419131501118014641167906146222640948631629800656449800540822001920554599954964396278709705441121165532040389266923954958708865506858257586376562150623383140388302501685960814637245512286080194876281728865630186570000671269221821644697752488472532013910763260245926272970199045070110990469999280271267786906484164197474091607765659524969423851600887568388825204986688509600943032671596407151097284721855034973711035048864545423154437283148613364558017861383282213763296402571162192672315349693987448262577914417042935809149661752955304557095353387684856630123395660648001296994532532724302110391696175599229462137447656300646025564369474456639150930194730917146701775807617077929829243241494328535414646430692892885185717993008673436743706436971330521445907734887416197130343239879993417348555891020916999491101202259960253751336463298481472618972830988250330555182412311108726073429649108932138959336705173089071530268866271876378971191625630716000519334066228110669300728577328602315959846318992259452440990475745934630119428693253435029102334431696008763701951067709796965604536799199086674136525733795370742533111201136320769056989426547733762885691555802148618402639258111070841835414878994894391897560307048696959214361584676533232831156797196162952665866333684376042893588747899429510490619038951505482098298551479871424378068182791549789239959970371800625670144469305560026053848346341237791876136455597271783915690968612228075047855860118924550815571469907311323372460675578164673128825675465815694575866098481559268811413192206804492225432505384589057672786888697651030266621808930802411976729903856676382281576837812125437831659732358434250977955663929084940440255577425462966593404368646784623302791968092465760056341511934639403529933235056796816234273820754521628196393376362643954256280767096389709349645772136386153675015212233662061598905127431781347998239672449203318034428386639827456299170591157771427234720777653009368029596542782778566508943732458560167013640275717454189262407994228893414003940433165033908642013526818534611550273014506285696501391888631251159128911471785945120186216331519197457305509126743097299479549318176565218599016915641828569566499960330759624576593968162855638289172462058057416142960722537815351454094089212683929908179221763670771885120189762491362058103857313659454606188566071747946676851045290253027992110249477505153931399579130821979782932446635558899316542853206495920488804511290093349034639241396818393802959191315202873814351163610878233292002023018817777052676803809923950024991582432992679016082834830777987169039505807214013622875557334339420281438489723533364908678909243352976616272936457537882157684564629564884650725910618337486248388592528335485484112447886451567534911837676500910984856643017509693711006861512683671399098615396946451744776860040519070380702949670044672251523077252933695374095890557573857345882578526774621670917175095858027005274220853429201302787411233288163386370591353513032816028074416201413131695177513000369038364628176958375418448090057492222412870070708850922676748588607852230917212556350895982084648201136851049962617234733792669347245923605681651107986824130299398693674174929842798500631895447605637073363459728120440665245144185551495982855442541175727093282225603829589129390057127959696629135020732850429130126255079005427749369499973105115226474471733142685511378517615187279818661891866764951714376048533999790313061950740940432368834388424810275426407150024795544807700405433123645142739485429923195279286889338680387967262344306770110328528354907869497335859435131095836238191370379620672981521664691153837644918683847024628703695538557484396637053481870232759228707249670100602561122380849537550276231260082826225521325505175781680412334720221917330083067989883921261184020318938911924692560824894268771428401682912287482735293751601144630340856894844946444268049031717313454368578001969485285767093957669956158288970434661228799385625553817022426840197345596976906046829757047916322254206318547220581408011616732556492185089160841637489379083324869796386783506737448409585140390830841638147663373391499592235417558733689666601183136547510482821938271244884807727628066968585827758301799825128758606444755827749887793979737272517434240165320386181942564367989697369342603883502229927608293889736236180828806893874754033072194260398272997618886169646350362404465474966631799669809200652829097940845112044359961126482437374104589549936310424087921024323903703931174975448977648822396184996489379031337711627325937758631595625889446729002850047130246601209693690383886647851087505523940273152732495108353355978539913217960258275745916288660626568053893129847198164132074142272269972575983781881914294077398450143147725809731851895378395649617635365929086136462940126677628454434471264243140047609857986651234285579286374347111367784848586610244403192523598290436406564680440385264278715024325798669476189110220143404861023510775303123811106427408374394737836315254960498256642927078514690070609325261774368752334450598939785140138307394810502592752437566541180287826215414998673347052749098729518066884966768790491920000878303418420396155798072649388151166231610615420613070282933132931600850846074882107703650190664953818780091420587545672220796429390597168281236043308648862741381865447979792598032182831793570865706447042959123911625824790339866088207325928003178808138878702423724070711564068485249032931740204089065921647063651090242228828540283952337794149256306274763156020714375236141274321024975636350826596506846748129723663666868443654429569883042011956582620903479745049049683387529699798007865913978257537100681813105716817752578528032996236474793485997574850982912841836798714469563062608869963198980412492033132912719453238621266532594335586340042728967715984246661876780440225682098677645885254569085907888971862524635699530135691929837984176553011176952912159773842202551310564498985099003934033259200532566520788825204990465345271364603059413401977795949223345700755764134560149808496957426469590458216382930931871844654279291545838802398296212283928355160939902432045013596744447775657372546489695435939073750363194445167040211280117822873289925858521816063464556764465113989398425708837156113436706064326646879001124298711432790364395437878865870021114388163767999399324905198004828154816911436050873147186304057059211985283689301797309370867119349857666893263530295032252850681818438035590097915132415057604714957227890891445949572213371347640543462611240999819567356045015829016552096073883809629565379892373809329493375710170222529999940690900507256058657617195643012416218217470451896726553499464769212953294991836182165463788283592086989234517764713250224710872737801582886245297928781729892802533773464557663537555410578258713445089555088607455041258566106227934732243126818513814324129535560210516105039178809278294609394727162592080531460842767804639841330029389009836386129889265177819148348041332707127893030161866861958361631885038475350441847483942535389847838251503902309095164576226961268379511539769199699790131261820028581513146894417979967379642271380870550998430534703997120873178667222108945015053346427882451052809287766361446204852199629866883250555505398309119649906771667772239818602890515762359490616755317430024481685872861065549256870839036340161438830841213944052801617738438236941100836807881021717570480149103348505501294015694994530565634666008746667409761884227041104172050056781362077713250320858790120743294149133454735049304168630445160525930272889115945432834002709124106332249954350144501167152038083510345128428567616505159931440844695247814219270198491553793013083119418706631746221828963891366055455452016736975732126078106754731492650238291358737303026988250102251600539813425238010962962968007598347372727911175823275174408203975007697222397068527156595868383352974457654206066233680485922043176414683982020552862597245044844442644448643868801691974415945321569060922141283784571767896965222315078356690843807173451339178427114171622543544302778797658496036303575892417261342057718488530014627171312600525259983681125241171559382335352933651035955446336085420485867048975142848515854505636116724929784872976318465371277205384141215907226370305935839972223039045990695379458275383596711031356892024342899349082420021533872590946061392218721462168362035599248558681136091464840547280829734468359667932187542901984507883345058769886607230505893923155050314633634260983321804671390539658710583504889054802253389746556286561541133819289464156268145057615059391981900281829733359723796085186101219086822207032236821869907408414498303009682421628609656751643876485992982285855956426231932342402242930147388593892327853245976940295922859032421333496692046253341518465538270853053288055364645067937343023734308592637206834712583763794236727739513965935611023492303360997253662481435074443036434910639381029359233249862974615411276327072134201353618058455462474264619087380104582310513121952357658636659463737710808537072633602804220540642943571732925783898015610829599934160473106388133129301229968622078235872491873231348071657462911000850530030120569298189737855079022432864543349178296780539745177237993616355336658620265699477340085880865184190071574522670416741221135448232593335060092814757188708007151518489570135362177861651234000287406611619665253184612715422301341902638631765006922668550098743026483591114652161368143534859428996736820150153817571237134895206714105608316973444896947628205045445323986418081116995533982725583137177881456494780341517678307416407103584052477595290219398370133083930344074858145603291159474524695635379472161803805104563165337242365857291877356038842287441525263063502355214636786087422318112503970012111452265706904264072139216966820601483963407215627825731283509474235998246680554599508071557117465210081459377797105630887376616326033792491188884460749184717437298570444110333776579380208901763564665480498398082775706413342848510602018775857648862203733214010831638594015048467469175806242838152201772228295894221853887619280896543900637994137779659888424508690501718305029332418576436989205318385246142479303138788825497436837331236081641674977249962788123099389312185322355408046206552983026402435509900351085674025498678444017855611048054217378528395185495666687589105219022740329197559014807439845328942615981076011871282577649382127756282611690002490849468990101050121649368656294558695982261755997302217866465732354596993105739528225784250791822686792856858978030927096251988567185902334809197125167456763168767656840500441148410130154804106767809516205340121879771281776045592398541859076959820571815336585162788210731281615361989561226576140686486116880402392332563775281962416307655090063042830682934903731436695017386879502371568468147371095803922228395838998436646112220703337865014482158580423462987668501305420029480815493448795457414414672202885163293659062257985700901260974184178751155983248130044806627496431741097404307842764479153262075326952324587039457450621640896575656279893659697137696266702219489821692115143692503294493279103271278619262520795289589252359436365045528609250891751475812224055461725312165685017393559315411956329164601338969979376147894062748465937689786705578584242951053616282219698574960984546191562876596898369268469309609871092912456817934870479253038836337790375110083022332419223033218482072261240117061924175176847731825342649893459483682215940241671366821570673652752385412636388957969829311188825321887602922705664156052017924182476819941553089270070726987319487522597446603773098973477990014066796627638131250912438894482089779775769263135838126655786949380415823700776390398912361772792937125154679801252490114255319701479162676022280751640212479404849977658352715007842542661791451888515517477511886210546393137752617389143574644520979968589674295670684925456764117068249219401908517863131609039144988728492650378322383134585891964938186207527217546145493411793658224264951990361760575182433121008454992611119730580929333446726931258203098784871792156799468339963221550625189954826520300963603380135314450476572679143241062440193074883379959232898745412432568367874552653325281451629391042108506404304549010325096490292251624133378181504998186483123647377094731341355829851738632095244502998600880187835134386330536495097008308192659071666736222663665671981427415109808215982814591640643047149472091119694479826879972776078617415630342360092470928791333774592853709913161119844647638304027608186857845208290022057975447272083873865455875359679520902424876215992318910253006891675438072991348816453365375386879675124801303845047004888073605479296019866365139914915099055330471853876172903225616929298047657293035021447089120912003938542275264741056902213776944156309647319606542485040392121029253597480712469639789110294461221114037581517608224590086253679767210934363524620310082001334489295272808044186045431962271214380417739832590337026553631106427771909520577638819336337547180766105773454928033895786135600248571984264082460297368496095296890720552478882926331065606043555828223405829589578821176868807537024736468582215241926747843954172899276050349571124400818432879691141886820065740337492817982471331589045276820424044342414655156817220241459812804587467888096070039462755806187903527029270546513229326062974110547140363908255408911625133712606369216446254651651451541966253723062837328488267559783054777163588398683412314184603911752397637938642182098483602739210186081104410399158764886135745195441869796331523768683444851928703878124839212858433727337461092423031282190910779607387735624751957290731344101569371563490719843066395293024769265590312063616042141361649512628451695475683864656471074660161556827281391812979010052817265049892038958963004585495482719008820416468654517409828901970456175442747074435045894914906999441615006643648357201185684738308667919055611814372554503912559952432552704167746602781040695290266912726816903280085909860258710452580143402005762791320794755483448671062598302901853748872032862179010567328869485011242747555019773816601170417776740175939833088674772537726241557845645796842938464984428338995713504908228986146786925874696959029183259673886047735853606977239748486233593411758626995626042563928482124913037497949564912251111806743659716166157022787115872862184523542210141096472164991788357874313738973795527343226711013470902030727907997703066154252758439209123022776829874554872966138873309066872929705267552438031379312373341733004930709713087943524210462784416790377770382841997172477013572829122203814836954027628126382556140288098195834072687070292277961065441353609154113596515733284274327688753053662340728581116081757488383492540498057351138453670385119458377925885154318161007983117831078278973665764565525315097526784669107893681154563585469291095597334038346482545095291605890054695331730874714936745815670201649030042136570354956778035669719558767788092140671882246298396234224963605007209997530312756907029443141052672048911230728037917841847240813217718766371748877675547924069134025746992220886592234227368089606917215337356608781516215060102192855425757194959197360984252780327211356372729414510456914145901500492501331945858911150700255220641550091561279083320785280376294297504282241246478789267282547017472124597042386430132340224390051661675536507289717546786754200522768728930791141371462259387232808973863590068797401287894636045052605938574216118768662713474173719267032816520121394132423947548599368416791301402296530490805922398416384678770651297112434488005990520306034466967650970080375328918223540363434846936626977312542737780880037688873275022437396966391468398458599032116134558763544514737721324745441436366358634024007173207593504017565409162881151059419165161049284600527962153783297249741554991652837582821381711245689984017789286961264038262203986182334896011016066815420352651279469169802656786226209191411966005452647651556727600945306422506810774846178783426181813897020155823401713211071817632765305148376097990207004094234344354456638023578758679358639416567892079120363321977403819538528111810103109555144274673170670145797502364453087012482851724252977911307369067940838663707535018661013723300295441663523767056770600454832254463600738650858242744902132720319110555953053296189374710585413125045480946182277929004177156191514614827293832028317695631070606235850415379382551486268309282439523381723501151506162664353943053187845869858271630987329568917109255055120743927492120083809488163971031484745488721593515736623004678327053716567865498449201996717967257214790693568665470830101763033349858178508251009739301454602598264848269294780066052642842710482939006086319384956246418773927134718050792215245598891909458021078952787075284196993991955584735086312337656962101094895834067096485349441154301747055667742943635907099930892780112450974399550282466390497593905994999168394265700833572026800722849561475668618113025287375189596914464431745676184616058568841208058436567271625547442675465135013305257513137442313166711229329466872407454353352569928118822795573609613712437079495061112418775161529160633505854636169697638289271111521868932079259942546747288221186189632401335882759727171824486576831734781711174724250972484141816388648865987279974192533550629127115303388461969312595625228081130516104926363167622471812547666467663094716215755467619487149444689850954088303527476897295406070815541951695538482988363567306146368248374899181473868772803792793068206162107727506467480423886854180896381880345076836331024150079233851160360024625052599137728777967511488453806900379330884602439622202064144604231795583213051994269571762130350964946528654314134668504532217069586413813772143698554873393791469550581956692749518555081256679720309245930246244342018789025940777524828582781130578103505945532542943343445128843998438340560704491274706687519763577694789768218758521017115863829348722797309002142478520916796488177221602219393717118448520435860071415529113094755709780157353349657499183549860039119997126231618289783252906456075177578978814813573089077669988057453767589057181717071980884176306443909114902871042630930948185501502803180382251584366970175281018058645504649138086094240890092565573050858430464769593631941966812299297518947842165055720295007293438647259232475624984005683017007246769601722014641716061420387092346579828849117554496523759183963460302845823025047874251848894693528035643627736855949112517759184537674027031999624429459159749297110644890263565813240233169518851495346733497024801650562070597903084615601033146794563050262051935766228194061494504465297135760741679175436690169711288868804785156214842665222213214206516596170684263282535662589577974896577306428979772877087953026209437459539287094023708680556900777225031915150936640921868070599057213402966401149190638293208980694918115901512449744249989676216917897604183538996515393826245461132370313873094235919912011686593285865326482788232742958262079437753770825238218928289050929385025672447031246616830608055268192523474999369307519917522818627909984758768646057735959385988932567720588550939312329741465765214889625532194808178673317470525661809451219438576374079027497158569333404028546005595400167638208449562768451432243762215126316313989925266325375994734181593937150442078847665229606047131728199161750441344397932913684200118303836675666069202145300111699844825778796571480295698286412725031940840103521256010478457658756457282412878250879631107173212178972844773482679682229118466736776008131178174271714467864268062411091520530817093398688258178156172771925041984249416558975240107372454504009585480457102344654520794622912898261209461263202547744593299309623631108593177408282651451633673373613117565264257184453522558799380210818273292509227178491433801645264128202340414070230092363552757224505239922431940528991232300943769520762639983138571658636778676286487361674293732066689760386959054936408597632749806229478049756163870192666630215551395216495244472053399287996712467497591461722270676605163689584745323062065097361092934013225928004065399353233622396104978239580346976135319556272093341566976652562784916112379151986404400686378048108001826115217211977250358187889313143058511188699756393336143721661055962427745786202913249745306133005517195883627291627058040314406802814249053712299680615154198593269712259174652046339785664444694205093824103590875669205175357319000989537208255584264973572488014520387949733787713013807203027531989860771385090749636296599652913159641383981683140660169636162657469188950091778143970243725635753363969026121463500870732917260079356573409672427572242143305747892123443994463658012362800644085033865050423908612232470356386021799061786103203165706107691507553314613455841720559875528450685712789073999954019209396301655029297329437798617726090997144156844242720626133513618912444632021882104870108098973181037304195930500497128210442339339338890651304806521406855221573753883539333550986325722806657829284984613494913563751627350804275836890727133777371741245396966028324596544415172189312342823144768965429924967116786574652302312338331622468324640306131713815196396658849141648413937639947895213244561574539838278256870395339193075092849424212742798846949333403219078858351583171659283719883251621019565305498089248914011192392207511751384673125976151039303494129952880975981222755132003094845837433406159315573766764079543929686864808768610282867603241505498715761484326414078611938740844518822135888630377331830662766807479092076624047167518673817694305799590577281809840506562170641032783984830994843483667854806774610443456829950837616871952829607562242046596470943857826578498490716486219506680070982342358151869946203990078410045261006339633969712252099849929630606151645773620151888037069959266221581438978236659167649664205641012276125965246416734028448170248764119705744766249906951464395489074153187007822087636694036355257490347937046928370268892948263126235525445413721793511397306375658342021600099779895211267836561034335753256119550009474737147596332970168360316285805001343441559578657703785993578484047853385251932495068184866374889835891580238741626203558972677951719378147840620691146708240035405861654369633307289219483159310220278385436773019706748567023929522202232416341163336565962527669960222793659310978328475194028381201412548650217483414502076398191449071915672706434977481120108371226992539314079028112363118935665953306955603498654054717571625872457269545271525558331891684915250174138567812180887499190244669961954571937860915842685764388985305764865153892905339352032444407673652514447241355796179484004198761157002381178174386124400519551191140007713400948001014129384330399976279544730042231417600442153295142012073883195042157480271439350908305824760681647868178927527235103451933911430991878422161151750093907556097416480282181252912829181033593340989489395568808335944126362651631979415321049811747271980654432653816829486574473268853230079624571634974505608476175983690891814203382293642979054166139820059617845075730585707789579269923211530653063102558270601549476986893910401918883272011144980796564546679778575011114935406909745093992160745231912827964628853786477097720758421094493069192076479128436468384624282454523456985580894533759514076600652530904389050394095537187574698383760981024235655832726048984510005278574473790441556575702915863370770590396493784160357124702128672978018610648693493607534641788143037236129849099670259359702860802958849209993611374363727711884879429429672340955956557151532133745801180733150716028837090994291141796325417242664676213938807523705365860128399044302026492068610124876323606435263828918986421224250162636180411584454737163726777055778366173071618648322876920160740792865159906519810758655698124214422714801277253163428744677544158143778897747652110697002720394091098963380065140542093964262908444862901399042987800989224531979980797001623900233338237118277001078145046246102286712698455650961408421922871858088862736518186192589146934354898084504355381284655648974648081725268871601250098048519701636000143692861697521100116813190163482700062904875616107151624664472368803490614407586466564136549083765969361167820287158927437896764422567256207621822326581091892202281343014196622571557523505749538601717437151938323570152379806082744744622230300396595883829587963405086681072113344078489283885265413431378242145340276676604361193438332067926752576589752627783488520909965533598641494047484293345150283613091270033081980546034927568908071863622864488313766944767691223713635133839359542100929786297390508907525866542238787172970977784774508342787179544194003986348446393022969164889563826350572625777427605493885293529736770731113093747718462189621232871343931205603004514036504906580643397192464474366436073130495696558849991147674804507261236001373188751052536167377411275875484861430242423290353797590646132058760949222906911393760425334604763406918095717075274047492745804467636107121178449323875389204764012224142171250312981288780461628820348635830651920639635527197694606388341207154776803111282583103393764806058086392314000911110857037855293833065065067988399757061366872311553482386931045359968245548591339773451083721506561133578289947754752494520598388108235344640875339684607688128861840874220660289612883044665580806760019258318622952270303172459307595251910490390766853949335979073523238049196964472520440233556129890323298202047828330921509000520509410741973988698066489016226991567545556331976782881595050934417710812793325717088198360082859417103379306503604578139563955670185172791209943205674415890366229181189521803080865272569081686302689442044722477769966949867513222016968012272936682455017660918786762349006644686031895183765537710143237260945523492931670631234295197116769999850811628533256166583574868027845134730579536782485925123784657598345794214099328291652558662516811191983784589682557134146919634261142514011733773919552627568214282894073894092443660052255021360958960622634426067720769929847295442517333919258561533913665285225720490018017198380347412184070914426624368862579478229018424491104383774970350299808815262338186988148643625210260267688597660558913491528526012899772377008681763660967264586959715834307583768532993598282164314630744971996792556662798177146804649396053656714031220072871049374168966107072542243216827936224079986416926049759271114995302354353287318319139253050878972760486286430318345157019603045669100674323737219938483847970293707884529446724480774606681312810234940189720389499026655544358958212441391826521559192684085366078397463072813593207650927827014908761036466382785350171691196205633379662008771478256699377741866159194459447608109046923760247818812065942848718957268748464768303973498154444613912364413769485981198106598803006945573426337073050317097572702401348134309486885743206772108085829906781268600832326832686260738062979289357449075123675323954964573505183322102861464267317592495141203365755954643301512471580523936136052738175850241728695348688300768454628129835083118381791636077099432163865043792640681250994980106504505104890594763748041150899256671112230821072728030711715862379544957232048711140376841564056189880883020520648101335527252691043338845583934563871591736210379970330915611212101319213619584192350320967981222705458225899574781901401125505226406690543189147502033955569528226040905439380271688544251522927748919081277860972310600806773477090170072690335736450326924412823312041165095961500506995945042257912271274517607389576753980074442023961177712523332726712426459582277703892186943983058701933107365610043587455197028482970032018601307498944688336325715910304617205791287471994214333632136954446463008818437048665995495624644486028738557005760855789640336607423034585596832087162336482555895835942504808806025074049290163142725148057794997031402181151263853420025354732460251014982916555556438358241514691806360632658560416846460277577910387394777759501429656374479047249863482158710027264925849825760377345304862296685141651706653604837408325650158716071370823846413145388798100985064112933518202162751435359781111628584281684253335922388747897881805727165683857965146831724605467313656134277905971206830183300822475322224268872863049422249019465575118152514843862468914213254863222913018516612057690142340327940404691043424924300879450635551921967244745395675929842322312657717617610109193355945874595611839834587929770411401167737438186416643686900991266699418744907967326664711116985296478644413250109943019722003827302473354064160955563273852001628641777477108807568137474243301728965988495024475143016821373358908203567817715077555480012238239385951471282119586151628370053223251405150998438602653208978273514893481545579946660264667677759218917226801506988309994090796931666859419226818905846077373763627676540679810191867342655807298606082759460991473233420214822810694666845417714258813861675537160915301462579083752367512470695058439596205483041263157921342662972722081049515345811355427513876504445184481611185519904010502777446496692237420637020723969484110216608597604966829111660405061951085432389923072420014730874728588950736983100445200956580374347636801379819307314969679947534161278113262792851860746548457257986729421207579577252606141124925773278726964385940946389466342125678963139696928544186685360114549518065667320921947999546093573400173442053343037148622048869885162232034546597025957310880037798193187897470220193188304323140672002057335596504226404012922485039427063740506927338316633860867011593298901426157458374008519283803848099561370543156255160998839264802903329855502988656091289551720429506243045877751736822458422353407538787443356332010621582244809643919335074050631090732952779089310326350898886369993924074684985312827696113677181123059107567764868039522790158937388013573620024158833564746079318669951096111872983007192192647107822814688697446684105555689812434347949221380166725773844136024448652844202673594078737269827961420483562664249727852261752112634481572649145578048251951637620218846183425392319996645982546841834973775725750591954389148954585023755920224810745084553806676332674491230191733366641750227967015529270541200867672163949499215065211521417607300888829010345724789498660274365142144535513909744660532954093000034486852993458860127975772287308372489188384229950577866268340968572280144587232402047556594058772340630174435418538870841100053659852360879051814656241581644874919556251115017347156412226901696168993734598942383579610340182306214975511436070846370138220322132434679431332803440928188859098071352861481349549696859398630435343922174588091840384026813420801070396035026199600221848806090398704765489357396298550157272198303578270424445564458195806197816329774684810601301240544882276676227651017374026854523312763818171650144336050262675541508425909078157800106078344748542272121941201416457010100091573412105662471472687848937737364298357177888738004673822608842144168746270222879718458671541729272726521265328793144862289625631404686986978799404629168127731535883099694060503824995545696321531547193453207068665291133985928666498030428645739639676296143457734923667375996973567131791687364926656319728375027421631449425504062549534055765825842146754883681707886650635476362820187921838226168379112484599473331163042525276810530604466276836352264690780960595817172820372030276756413417174242940764887666190093770396189616309437868804597245261022979003779782621512262763826544396976488466400204227634783203586089070785478913630967613232568586630532122359708368218712738862582200407491122792902883927301208335854297845883932386293976104451932900107105389594463133970405484550966348493916898263921953248382234893407915077074343807531962773439800198492705702115934603558433077695103138109523406024122033821169187920542147440172083469444529439189353107289265139271203074314669612914213652494526270311246857141153376471265880882920538402441648382427408226613762937100261689563878381419896304415831486929331788450764203646332125386533771516996041979786579024166683245287198836433297984959425083445434093391511986095552646732590822053997596703039780651039402766029367559468403698378877289403637685504383032783526774604745331285012208799365193061653638079711564196343767357673582140249373437102889730020578169106644317179449966919559491007639662152380457424671931099550523586204514153142933300660819173112208152823409766175398667056680966893450192461290176833155712683119036797703499178118138005423586020134310631843028669996790863092669658970849426396579273902443891943007781295113472486111619617451641559688104859606276802658707766294835823574744569220471102806534989267265057311463624767246212500975270689526716523846762567821669444997934246848673590210083290190497940091875143782014817152014249299187384532402335340932870260753355250014200896315745219974400261322579657370826886716854583828501117018569820296600835728178693216987690904000906398420759278974153223598482043690551866698065364946683544772399533529045488894523236947614718327753111642929009227155380666004901097504036162580928413234758605745862977974815964614071807375368811655492883639189425325518530934776463209954641298228516424238431235440141953983994048221803675339267200281381385483710746502360504988443795040598883888359305939998673611573849788092234534396346332501150326576863447730678026755870607183987911014995679606850003541759862117408653794067025542601481540261633453889223100337845857254688673905381176904959032918300031045386530130987694085245803973746172145657311331771542186282576345788662620763117311519528431653728549936871436018622038750438118387520908259444319635365222400006614677115385387969105348490821643590812841641294231228652200753661232170423597891530889575064522355308651697756934998671775409712041789983708954059593090084838959387315993679949878680268995911269031071625524928320143235877150571237664906928368972510799172209290155918984767924171177731759793586074280112857473728247788308458170759953356602620228401713972102484916752461347390409111634463768318398717488086745612622418146928996905980490057511806577209812643136367212487054836971029232440944193003517342313388926309992236162076184336912030169949558529221566741730553966606158512794644189162909225560517937144428489242627726022407475536945310076396501838611981036962911727326372841852952440975880047881058323392664846232875166876211654238948896570819037625054236326335363449175580695476747895824800283393877586704338907755550010635392433947148972387230485249906853758024147095885603963019931026759038240750879570137298524512282792902097181460504115240127505322335036369235234282638776771691143446014631935320424290797947549078681913532755954416389180486872662651173213939672155212266979528541564570510328356832995562956646302211504151755846234242858564986823441556759420273303268695905978674164605708859333323397904053785811040260577527162845868583055692066759605041525566902818947957625200662431823985578690584862448586248224025588401913947561374798315320815150957425643368818955549418319354942628481841499038400589663926977487809808255668853380335830398075043355510075960633692627204500075414479790963361420661031968687450299468204131862059117295310330047327016147326213919261207504721133477358640863028638709257396617900554211422544416797874163542440424431911184426521214851320653543693872593468144692321127987018380866977309898881482411330223024479051825403982562000465384990092838279771272537394815831865814427688578768796057520046806738817431283540935658654926389398089423126193240322328609434091057592092528042384258865958474526126043903367259672379238846934837502975351531145781486397385779749796132281950535115532100024928323755657802296882533523392361928018235828467954513553514708129685281631348338400814141733890553232619778842453548415202092795296948056715426103742582718326439124686914190268985464566636322137860239721757406232364041589880283599270310851593714289299603636900556422295607203728887503146582515969837505839826706912843938471302823985762646059077751839816377056576120435319217237428168143946402171747818653343618469295075236905117718126308533923491429750090532323371009853300822798117995745983952980354366990537951713284406398896603719014367287280221741926910214211030522297571568493659239028167427844540228448119112828658698474849263482943663235983686724185482005859621739238302408337607887488647869967773881911830032542410711764488068622765088706176767843704265790819892493694128967751871823822923946785001971195930889404987779827555509974135459311261906320710002920980902799883762531836993499828286470741410567505358935718418765535628371075685095260122502184845442552166953458550210501665384417910056949681043199396200857621709974681316626423410276704472243564297976789305534449558904413619293526812174402203300154013577571077177307158627755034328934394017561482271076371315142322813435279011410324137949782882349030849663893456034647932820915315190198340683064644182675653279220367040693957603285242676707847425680425877890434417023959235953797917833025752348695091888344218170013141720079759713124340196108125996449070877818641359851900241963583300023799609190304226402833345534486011681890234323748918070076784426000932612788378023129267627580307310117388141704830485076834811588492625059933325003446628763823324949347311427799332801029689604256588150946366567818856113470563963045075761963235315474117457291667465829424904659515519923699201081661486759555169262768190458526329688305897790830550648694197372881545597531940749205029100396461961326653842232315587471129952536981340823551819707531901041863426757681975205819380393018225376352611621480393613851841620886281962632156996895988523170155596040204301752819251801167856957833443950112029318021765561229710144898586797111330102581482005901500376171709137284728053358634186780997405488355085605192660616225204000238181290896394795656414585402720585277936572552154817651453660443813590706079274835583126466172597052629816106178533404569280377386537219627000888559036782087838432085075881023911819509329722100301966616986739666461246632532570394492363287565091729954972932526152959051258197596333541025967637027919201555657845601337126467740233848180175014981032276787261009651938553489966532356326642660004821915288258469614361613102272367999090901490177244182058521849912599120944407796090028271363676937743313318014434048746377887364599730222070763347653060411779573547281618138035417216045335241941070561192048925688041518531360764850836337601186887502954891520843222995739846649865892894572862211127226958869168708124086322977126741893720081971640623939443099680680587598238347296362546273515863147053246547096714969476620985178902980901249239513041542660860642059224328468574709409054973612471986813293356982534409836268136706482240944679302819861775970562005628012555980796302692475815083911434913440183426088320302823952659397969823953028205783063451502735464191199625420887473251396857285390372099968322275351083977312002209372209306676449705136907460673907691644768234192974152913971691969539481960393742933782639077084917309641609644932683733022581596886326225905597040349173858971865781413866563998106143488366791905538759409252765131695684340896539345595953566719801251234220297824796906533574430827134610300428935766927042513320782290754353017088139199336974694019621885953143955889106152357995392273664903362328520760344762816697202301055511034782137308631757706104953008218310709933593296825790590721120321971702988961129415859566916001311020162254831011225465146520619543251582550022873767544007439677766986353977354734648374125179684978086219519896096017725080406946205060844788195056607750962731000556227835303828251995504926862675871201118912418674069381625639750455021571085688430484805519566272197762888453670989857427965000830772673656825816236675383435135826409440088771875285800631670182921145116030292957963289098212228895244828097411307448266554574089381907315095971823291330857825123060838600073770102842536867050007827621144012169038603808454229182190782103423605328176859881688020252947005063855521924541209968474901771196886246617134364603248047658324802408533499789347500128354551914380479779612021819323500749235652941744084208273991878514242665520062479970719005390410153981826169714741183511654305214718423675817366248312465111490121145956722345991058075141272246372310975857592674957422909413523013599311164943272284190068201490160096045328144574634348283710616993908093391818397732400631700541279793229450693858845791444864208830830053339789355599470188701462261183083032022681422293467193567615318775087033894199241832888929748341853398316331542276880851956734351818285012922563596833984739289961849304819667539609467080074157753207708504068779629956518348479502832137234224236440168369516052609652024088938922479993159949277172679898910176138053139218276457225047175491313161313649917786739593576440295692747282904774275454869658486838811930085945733436706102728280305311670751961455817039184858611249286632990383863729543924495814434920527534474196402877457803776747927413237200760502153675900402660263030013511239905617680427275447023381458349551016844011143797361686701703263497686649802876934384219816037670858495420657915461285675196228410131080842509463830130253555982905752646720981227506119645651758534528053788600138075193167026858435953097390437750049518217989735449896545795883348885996016346222209075479938623941873490638497229507878024186543808471767068429992982276020143124897668544670184530406080188740255075539710190426193202476861651835792264564898693152060751601005716051549766744369457069516896961492905255948297004003522869881342942242119373222671728420396456374764015467440023779640898483838921254615237483218383304151993348793458393345801724064515046379740947705730269750218235372972537594608434770789324510747159475683575467402202048286861174221716533709352555899024105764972211885136066612052409768848287521792806343927220346322877848595823925642797694971978057331631468681905874041323569795317641064054436416104483682776956756677798075576554074550884131167628340164028632640986878144202340877346380834867859159493681656405605547548102709985775984365414852184702418715679731100911560674625272925488189456220758182078830916191982090822990652567378183778854998691450845184959546484992024723012292006272973277914451752863703030210313080504913179758064773833277704060660360895131090857110277459801410804024625817315949403734359882190105905092043349625286230559705139284999656259862444551483421876459267950874980990444471187693088230849604131356427633364277773053225961750374396948103717710175144812940403701499988218697151320740185161529131259827055771093809294018336394555263848810782447251679726297089985765533660463535152590448187977971866601455791866077648171066879257686337102041770122000820413991178939795521265749565012156969670710115877971625838403577149299312279752475010189557707225651096873394588388146406382830497162769699914792636473796279804271182651735022498656946021216756658819498534872863794659455362442729085479998435277422006099765952199121568232130942300792819333037807234936706957567483452200028343329036663467628670631775885004567132792474569215965056742231976345443960269017965448933124098130800653470538095662077140739357070207318660650915784373914834296991846860082059295441593504944829651329046057294864996196665191316100651014962092512732267062221758033515023537075785355761469563344394180257346344882796124048682840340934363441992004727170610817937951944664288708361955778551206868381014211930310970304795459748312246992166789825993061936881651203870820705914158575378439414767752365404075430700110625676807684882681291560019587210556923560047586068051700213703818609389631250938181638461963572485704463616874829766887966971347673333175343555660422865283395627670998816027779991995004610368503645260329860602871253926391998578937273695309376631613665332084824436105359069060302062691386179023634376620033772837127354395133706267627427942904323502820905088246386712072011816101863749642021012530217424441378491163016614719137504499084569645549182045362146997921988857804090665518732640028111882289902287250489017415526088842789125864904796007852239893008294164250798319556150149530629737865165947032016089664879335267458946098739510741977282440936241786764217941894495408524372450019194704016590999205017137145350081373807148495671407106446117470787434454722516125839056344852657291639465665976140256735941081600729016007676133004208196678782278274658286320151350606980708851729837328471341102819475216892711724415465272906774755547282460407753646113676045065211159538218267479203194869625851828964157886646609977347202464091988286201756669316102495223509295063720487236676631537890063708419629180624828014454190355519978815339570943564296067095752418967041591056544188391310978275769655118314468411515518015821692668790303897920672452711290906672402114833855849789383849888810196347789100184974590643736441071780430809306832920326152476046983164547885518967903887242743529069637747572771638167525556481023933210530642703833127787250794683802760464020044835017629537668200020818640096398677197420580558285701671740435850630289465677029300541484231080531315319433461633159271100284549378180590644096304631504644047530416670012905605611562685870992904095948695365283345857970294168796047554749512529261767908437762117637260718377979395224784893448416757720851112966584075455306970140325328609822218288900751797012667398742423458926838060315026485612249200787679419208949530771875418600807258592314597428803901167777310994471556474154559204528699667439166385727786928617456148279993783716333305711060479645945077275484815327730605308487732366978304099081862891148282391887928978068043496549254724849589325191726014060738543495452847750915989496415778926831237005352821226154145147011007210157976520471674945567645107109577201616849493965565982924212582715402798524366163970844181670046298817306624360770798929684549705133035622310120432403496945180101054500427327718290692409832776298088033894160654236857684517711273713052684927604798511959431159754637654518455892093903205123492584099926020592078618778625869278248830371201016614682489484574009941755949917447981717049581854653724494903305526868839706950094855119388249759727019964857190031107210202177116425942192893970149539325128269867876658423095870488206594701758570370073712141063554824356305805945019488123356576897912769526533063858521906913411333945415526934656673739329079176737234284480078777342355592371534505178336923203083283962782606299415436739015804571805226614942985592385029300881757504056684498323260143030044451643167057755138913344642249461212848379948657707150801195610987833037360149554678045882540021635754267549812984795780330152138924613249850560043750059956910160564285003495528270718052618266835164023641049169759842394033062135232785381146681680116622487158300413774243624676166509894921213056460561842996985760038011013804875783621311514567814942866230685063011501167057718289858718990424129575941641762671102891583091478201080293464916929956564598653832473074574889954390191717011528572702232080476045741004427548875118043798285094476088522627821960601353234007228315403508357156823307768997855078723803208558133442822340853766166582209139138586108477711505358244522419229732230363588856877604782186876356114275828627377858036085741221784421000839092960155312370098460617353542968708849410997268791005011602718811814695164763901519160574822466921635312067724781539175019609214500798397604631099900064795566216484732960742927419584873920419969511275583773458275569121368754172602517319480621282868523019310073290740925564663798531079580007606079976261026666625514310868266833677068067241351174124766771576345053133568800456452413175678227852657585045264628474262462622989399871081175231742753533344371428213477907548365483015514604840872796160606241855052151747758638431065787171886102383413483931148422483807358644162832789937878217873777107043765248832531734482216563191703651975101505071865534375349544415428466346800772769869270826362624842112333193728128140127628453836336945526930743049379311484463889729164546148517869912279748732950074881030405438825144377986870567184606753680960994749634703426279125249983012628520930131832219168383691527257922068917021496696148347445717684648697286693261139681213212289411708862314197471064353965286962146037538998933400579276153583054439135445464258404339944371556097768722762157875663707726884410448324850263119293496783278556955475335300355396294783438177306109944136548630753533177494554197020963201877850325540227457260299763119944177044587659920826114225662167142565809224380866056697220738226872559840400812828849890915224681459763865383824648014049565208402167939541922937916935576246469031430052050800508986638279394303118555550642727473493309922500655170073539212728470827420549728040450746044308936646902109119748183965060280513608217013347911770386322520836524686367994335932885308603078257264986100683962239420938245565380671068197253556499368195030637121051862379036128616924963331153590512104342398493168525875819323328769144145322633445006325909843193142052068975905573459593416670355450205958049655969973498951136093843535496399130803117832800868141498831181567575968362378689883311409814664086932004423507404863099085608239099058081969219740325240084292820879759264410695115042399065887915948388930149773469461957655784275871483813037468270340300578722347629126055442521494137211951489038343164935889455464952205882107565675351682045920574143467497155651430004830169549540770067760349764179464030651384576500460115449804959239273507607388248654804296405120430300664776918079701577395766736847966407777375273129192557524741568057527317452593294530148891626761846150912188981919587196416152440499031792176929639223198901740189193998569833911211029183373472770267510823173708623242677840328859434327121865085283383055872910349799468938064941334573051465698218435362401375139487038418381502318101649043058063619509476754003719065687756233572403888153566308342459476531976325144491326309241077602504142203176032154121855688248992797640574576022783637520437552582357996713775846322430107469812519080341443335797905304345705015215202480945854191886673947427272136234137782225690902482775501734270189520774969509359292479304059654139808245415801040313674660687898821867323308621288990818926300962282500125012005076065581581599664319901332555935162969529733980872430137908502863525557290872673648328378630176590367864935008258203365805334698024907394507889529400059076048152813672918492454184600390417132345945648836833018552186277168144939764758817594125889056269571954965907298092098017128822898572165160962399513243441160092334041449738629639869782294988033596799301991303819932718759541498009420482467501924785121872511991154152991686469254512991318112493609146211347781569549335078110727713459118259610946936653812436769708464251590408070847536597029372895615484176386207150656502392865906198642180406429273883873615836705335654496387030081652208209622711315522660164822683383566499238383942074445360103551080298189708479552627930893648527654112377538595474217951682499206633453012995965279175902325531123254173524322814849803532874610109809914907067930119768397250389925841723793127729514765263564516859862406252623966307977916347788427235784997093295958961633845783827525218249839400372861826059020564786694621368188784461886719487263799351060133233796772001650231400540039001767062617335917419136382694915726680467047980986072525927767313753142321662453392071057582005749599106090382553078622884577518142563066750913533802503972162134204275542729264227763320485108970774133199667338351805309410306465698716453029625009722047432321966172707020746112320496229968788445258162955890880272936901220932369463481042637127189623553293084971466909597032989902054334497361834372522106406380731708780429576207932519188251115558240374246228656582273482218248145660494891963613673280188172282175887900088762513974155975380029221208646870158008326407960648058974688005793214133232504840196015957067983732206384558110917308450640575675450970992215554734146726425066852444744229029382625115837727564161046381005480529270181771727991620170064260274909267082161947692549465591677654636365755088039700150284256482229643615458774811480275463771271356184346912974834731453321233750411484672579020959589193322360004829883360469897956917388665900110368463317565761848142908630273016928148370677971618202001033198578156422408446477824042304274296520980255135664719745959543373829874161645969017533729922506272377426523274610588769102666342746907314067439697702094238443789861649496775107649571710101228259073024934614715208032814857716801700958784059042086220236968971797591071845942664109785251526487562442989865025636015673911927529766715096966345017161154240326292982423459364990890075502491001035998060478909931382000550844763034073604855836047288683804390784968076843177567995934407716622734206131451328009288362738241927138190791440779243717718034642983484074399660472800660607525332440924801073299507660452419788953440286885673200809063909309275998706120648893183067876165977829500840728143862484362030786312991323485934677519466284996887750618292604665711143560209656424732707896870496960770018797294289361482288990128889550107111408580522969355705398021496538462322520870261699434731839891824932317165976096364161172538986372378456269284706248240823587840329792817531798043300811803401062509923127377058603621377576245302740901731448603844891984238468886616106585146906486655036593608691137206217933067613039960410525543694933550936637942599277524688024491557940341887601260469545256286556413843782591939837029269886817915251818215324619381529686386978032457304748157194420436027243534759736676469570223037870682604702763802536114090077753707829400219683853142006563858675527831536123693261581834378487804791622750012957109427306463045514638879993827776384465893307344638631875211170590099696577299364060501102879340936508903712692395250502006542255605914526596318126737764899171052272148884265936897177847671696157534286547666284817894705393151791178691727730758522683842511148161028963713932657604282831224187891015089584433643270592045170215672926836736397205070409173276739877225188999582435497095800425817242585627321227927146223271105525340874403028534897946685084033859972969924122409582401213694392882017584919543196067319231849657261958202071124585293915900501269482005906521204826546257000238470087196666515011794345010160592789113519966721354693231785013107988512764296509307816760459556442058272657011780602209706067250309935581900828757554794189784364150333068277766189914053049330230213063791641014142087841113936175917743824500779869291713220306552391633054449423982819755762089172036720519698732462646698307069418787529238351560509911818951790375666832979403356229766269068105933311706485941378200756300223533051778404439435508203333441638964385403779345183978373358239276942447927395584855420699338176830602345527266643800019414822305040246497054550649676118559272889699391394067681222596285746762746349834107047210489720004109967592736795434902462935378046498842946069401559345964161502300275882943530886687255805345122905545167750241147930156685992488728400397941537045341058080738490360289879307229000696539185676909396926328780628888057434762699420245127228983876044154033459550565425013948998808340705027680210009638360247878327790126294137756833467385857190599379469303656195395261057930009549478327746640873781186874777981385258648637688909230733146505451966531524500730108973383869185931544746137614547490121450393651760258529341408420644902825222457705488540885601076137140337645087554535338662125008368770274818006987752770992791777726722044543537069756320075075497960086824927117992523698739785022078238769524753405441966720951303922425646671458497568796850662197540095961064693266667873176017957429824851352923574369554668856751046537872967583442040423364327596210990656768227626436904912736535965572585330554965396442885845493514301764958343484390415702868466294132715586558182292657092327570269525089766427281037424069830530503217528577758695749619041799248422653570968684752117527630271306594600488644282497070045787548376794314302434219770602539207054705553433009771869831647869949376161326950495656292730059155859959827603006497668291536448156074988393392414371230971783701885313499321177556212099197873872538549401019985186009942859473399079516582641396465353787558408467966104308532217966534716270644946646424938060753541739929157553036634722106510519032306642021556115347289649455909454548422530460711800096633746844754251985774561320360726866287068972526062897711055243350517534103098864144928273181862729914102958947926254704343119723044812072839613077312760151769135215198346560852789751836371002762250440006171075852040924676132356433260694633649495361740400979427080645516759689828097625452518008467936043186613373337150717898253837601420695458238016563536831742008173585218881259454387889191731750902547397448517456736161333335101223716307723525080645036228796227437098999190755544723451279331861182421695230877029669742439772859313272661858215427910745385372579344596145104127968707091502944534285228021502557104829164950464986232131557827438902261362699684807573394739016141811169395908534388937650239510443936652082596784774424320785878175737588033506937341809619848644432806659704004418883886858934778152430071152200565082712614164029170821910707013537173356839806519397895037265283253717334897497427987673723960716947315839376438998309572986747364350658569880012623107169056667420892423219718649812402494092413515776583283532241522671900671108335191991280701270762833235306247731909117195472044664847077705200945883487025007806563815009952129143737882978719528382376038460623340282008365452586827139882727539457270795604411084781467477171224911752316726198508696252137039305819990004069107309252480094193503362043492040439284407948947355960326094518267041389926712932805062162714467522288940896152266173781905759386262589498842697541233221248022908289387523269595093720647448691569241886013161419177620394698536938451168835931631618494580988274201861117497342266142292817177266759261093643631641060719992748181038262125983138491469238014213846105521359307611955501645242711730215114310321984736153994151524694872167331944732691243851791366826536522044034450386198933018454771401890198288534876484061887408458600849293589228145600345266886256836571034586905396752156593077412081526647849484095927189862390245057019041668437198218392031252130051634645120211673435697953587485358127449746164419694061147960987852072959676507391718526210674245098359148813045695010678122853365664456614501741684873900095747128732520081644960265449406031777163717062739766730000167510332430159554536380614983882997744718890574255482939662029670017399925491971420475942227980703364328276001844636953976118785585131072937420851044582837475369702176880157205005224738580406756812796790272671976439157165135214784315956431953859460733083693336655265772478176403611938043060254477496876216009404109667566875491715407948160030106945544769101279527631562111189378781657871452670735458868507075864183713173605136981145978057108010783106361960038792170367973646277010374374076554345449955589019963112192167609695752273635751912583925079014409585794298172349189451327572937712695078129302081964125280457859686668707943194269676953975937633974395574844295158360236064537373576198032231144340509044610691234164544312788616867518764804448434683006805111584888308584858023270713828802608993978764843972064734874460922030106016266133331135737566915376426791964459168513455969233071108371947922870199691095584218026357561607163265715178080693637161131968175513662788426429565376790983331894498905404621773309497412732263258404725841048368903508726450748993174219561415247057402406075582258688952795583439130636266804408604110102495614924489569221709463601629385185279703413980024714363335512210163885512798722869443791354647468434616083395765679162213651093815816653823794114070915548266899789677225855295075784323851577379970001111189591645863052992411875693374589570975120662478657365071547128828029027211304607291340282645364341873488182061095337566174126475921513379187998535135789679035511874251413988029130546482316025838531380858526294936880069511617895797081734897257896844245739759466334083653499869432671254885877118691337164838108742969699124329719001304282266815472070576345648630349100911587959038916836940452048288361786965542315033509609066790485470072274809068140880030202136294366275858930100103414177251048462501514985444166476899220540133553769329734336833318683933139962605058349702860716485729991073373003087741537013021136135701007952269426515803608631678883505610165239807762982281424457242828183076193879936128108548226729885272566812030230262665524358564586800327840574214724739264257370684066556926154688053181721197537737696311506176119471348312548795098082609496139462394140301924215954874585645169855936162354157410789916499631034446709073570092860068687715846503584577759378223136391198703760501612864759991297784746865040484914017751071092232502186372992152496094209075682782714584908631077145975444599090002499266509580076046628363219411061834740799369916580604643881850901243785962964559049153693588358891464010403955213316749400486738636191818210023934511349643930474050254598713206790318667900771788709841113305471075863335687209348456294708090523193190255334326423786361101160173371021039080674527856721063995935048992972535190932429545521898432680447588138288364520025685526170590097256157975471172464996443690840574882776373007375427526612455096729841021898888328323854460014893218150764761821479792593673669963406043974394132556768154836827679319798229491293301369900001741470100331533264620080226363941819435294082518254209250508308267208351136639500818001547201726842788722194768652652961765534167779496113087927694394954761484537210402766584771664802871760438786376886371847439442125133480019818038873942239467456407825382574984075580509284892348248041095684651531613133350213855560318898308663569790890474885270259732883875262562431969660063974165851321006284997188326184487644389012174812918905921602767491490421420012393416279094437413232854406737732571468914493998098105830466884537693260052141515672399353591052038335054776327221688789075829048302051732888193215727440275036788235990833766709473799930389131655250849388419462898825267059604487532879497926277623131501964142914517151283638082855476939557009710251345492096010137540369507724359179068114049936085683332278807650104163637543898786128380928123719929513956270949969013376655177130764877789092703227326471912816639447743583958236200055470066239994214477217070718562204785103382149629562496529484558782404514415666040439205686690679551429430874710774666847918422837995481429544968325556694899517335285496865648523429064746620235531314763550622719797329490096580758166115963084063097241091232800569056412801663345125680127963831163765840374225661210325336466388778360604463704112548448230476976732274663976674097867495269857622161989621204744675675948541908713551246278010554534856640715787050933362532607430773517320766272835623133039285056185339315081694972998861400624680797574475557257681560948570034157474607981545554110850289934311739248255032542311399060162852878270494363321243338602026843472725937564955946093955044932250141325490339798043446751817321816550165685033895145794061906888017726486628921226393339368140243300433110495999102422147842099717110268315098882677474796245849703788188443952984456181881666962493191512897726537989535199322153564158555880930033825799045310404319292873565079578244262205122268233261441577204897774958714989565327528283088498475113860325613585660669027753729735715701650426945080373698658538625366408751275133258501866322694569888380778633670436494384971037057681258079420851421448985796978384758791561288445089610865047957843834045693585716021107039534935819650444451197351626454197399595134591343469287256942813705381646614476620916740824611816274784780169290431410812917098977790670329889101907201704030743492813013886680917927745005783488108664411636451391679792292643791745493402407521622000016144195971962771412032919596759010458117036200476509054540104307219230297536746847898433091844862860341445119921310142977182605876720652053777632425854168092354587227045251880517575408547455688349787716209912677750005668389595505298346883376240662808044931862586079650090951498414752644110282302954230155099568066112492631652624770940503395409611506448780175801343202636145524016714763167097559675009821100519767297543891068395942434476737376535648975220394698767497299687790499965186845514823307419163635079173857364222491182932918580295556594799279926315275317028654790888187536614721427028137964621940958764304358280746475333165025915871391000874946763780568743352635173448450507087597607358112352994577902406789886502875958151184934959431414969999310762485499464247769789035918376763380498000728227502217061381826155612505980180761885214070696296516938782619240569054884504941406911720437423990386741108928254831626911910654336288755202766757860558101142926104407171129489004597509607490700092505773343207292650763895681793296663865572156803663320714032598632313557850124958371885745492399700928288542791636498304992036478028650027379201519208283755410702033996727383541022581993606501191652373371799533194459288893238854024864932631816401364024609920895343050234262780784392913995108044959273004332070786097782346394991354217151146026450729773625893938616386498893845411962349216659785232652416461163104189652737504844631551681763120778603720167960603609134772348701854074396979668798846916670337013933630610038544781637006682537469576591554441462310088642553412542752852623494494269230568882463240345120605597705444733875902577085529843066533749257393073647074385873219804843480430465419975391049850051383171155606226362800865202565706912427682591073630126052920891114238775913376784909162831971619795383452427245958358378631258264834687288353286678060356005796706863088271003032787226057632613944291634821745074400446658187193276538383910947647145097212927974406474690440358982280537435085483054651447382575567153324943533359233561595249465948396550502988580535291219932497257540818103911473333469013535691008275385570570785825183572393230312519519616289116156596889107385707988435196127638690810719444548445115119950815556481237664274219920735183656629923585285945261391988256630015686991075080603895587980458466191198015184511898617964561506540241955636164582809296408793605553215091081127280873784867965052502398535328882248103635632732562240852043725331731636865145389260213220280871350892197623651673606637907299284247158338079456298674264330381046888163732159152470083980789848340438708236849679910747830811827525489128444808733597145688096022378837847591256096467245471340794907431594904367843177702307822541299237532856139923609686457596795877869739094792599894512815911049126835066166613819737383717981765694938815866224783813887722007539365027232288898589259509069973831886720878372673199280376196852269825614549970684240508130501884083757511586978514400889348171181963246489202359955511876271294637554657182484663991307413831204190671268705100651608637899759091879257391635357037833569806326542566736328802462738267339837624199626763695334096633247552362595133785362019369240462675104777548078848671426145172658817305836595058183539237406196013806367643524594283101458672308130359217669764656719172630712620172040644361167322907914980574970940330781085511988499098388536787684183516269587723934460575744825350088426787618776208883927699330942169734079775394930982384437762866128677931520024975920565911926500382151761973810094249920531324185964593541158149088315850940112475659713474464883531639893903894898151604781895276858816330833765800265013058332649791855243159025194693051924977623018267568798823977426869779524040833609437005527885805123712450201537404165169068559293314385526443006349449301938493364212218453732161740813930479774229853783156778148915063244210873683360246922581466257615613250465460199881165720211903608090089287967126623451574318349116382625939766288761651079743215056923927532646600842726411107955543435039028131016893897812651369188550423533615114285742743886712471992303538001783951353047806183773749653252032905559813458188804377744648621470354580694600882570526188493384998977213576703583744107252412057201958392949561145236824093552143254028776000809898080725930531964974373147251779814968232849485810666374451389437744251411550594568219538652347318276759033891116517698748975669211348441772172402691086265607640600833660297535712331753927833178833617750829894481694329628760535791085268821654152733849764700234222378924983778653040064639799077463896252715056072765979112890806614871054509955601505149521893727007305200131135159643795254791903170387653331568514086503057257680202536034776812474497211516860336257225635771453025719273978012692822700506542767257759891122812874486729442908369538534108755287931676999753049581274774139150474555923272832284603181073840675207476864837156109969431218126523199726338189278811822595711638552185306197401008746323892335366818314390278138188211352689558405777046827300866442072743231835000283457648473605799189862461663378656340452637907027424322215360689696947072791753336322966794925770653401961267078375768562325263089998737024870056385669337218618729651407474411437538433627576099381376363339679208522805840816347026686756529679005754513424304644539066024592806672489195696243144792067918184712679499506150342046624057977208225294032622172770020827225247055800591281689559375790738785421627897879187844935296667423059166331351180133092041664945516461107558163689642959947027180764250981588359523074231600384513580940280976981566313516053018545846058319697179847220340710880271445787694579327305867017651665195190724444764581123362338158254031211860608919233995405842253990502769377652252224121165013351098048777373871984962369924809475082691205214047626859016242675266092460311367115876008945483966881502495627989048871245460068850038773384843256334865547011615771024388435358197615625048249189739699238135862196632809220444782928516103041666749417094480150901888515695719513812477180444735986983253908146153126098429602431954951072991306325588681789229735062443632017911837490579896999271560718432474666694689028123094839022682480682635988924099324019646600608696496744262422963110949364673798064067633494480496053137097807638664732173973477197112018473584080422414663257002756060374020438151411326333543063400503916722577551353931803348045470616181416452842301345313746575203208589883598054037831647713748066919464560733157871738509828348626957888714357590778852611080670012067536161175744353714845268762630755904211779265658557406505545507550711619725737197869339818056065076477785807865767556061537979242000875415349748415258908740721975761514293212701646938372118717910269409851039391874923376839791646957930472225044357536457444515410346843760964464225356198893700128119692728280204427908386558111215404931070626585312666953218391611827848882681783011873218191581422138644196502968151398364219765477601277556315616828970108730034601451873603028898476125755181565626467468601485877103786243117915708761611563692070053738971863316802538600602359798646968790997099124984947823472408167749146177935432143831621768935057973967288366778000975083646591763234932735689183649559409933076965280344357314018854898520871092137906227247233387962738874928468847207055926093539866081160715733107745938404235372712521618480072118733326895337220645655884974612320415833301902449326668935929283235214962531149141973582120538523336100222200085853090847187028231547869445129161728772450076235328264102026706187080461770633897551250857128312044688053500493062063511693846996017535392437807165864289136651794158596750992320906735016164255238813220070167071435917513286060098898789224875262614528969301083028830978345315296726136269757152953635935490179656643769947129585933980726278621937938962819847359158019925611795707312378053843594774782126158037593789983783981468473617878055038514868368951513714267096921350036240901520637216523346369145791237896252534654642763392928377558710451336686229468800012465956078164581410663631569857441075258940475420586826521346860795228330363125740321888358450920527969005184307719959431246281084147754707671901413075758089108398161788220791034744660614727564200449199224629684724833856076363803974929256756970497252253174409066496787478890264097098474348871563633734383420953124448751041286747096307131873737040682082494551530336211389342108929425332472834930574237553507758242377829915512675973652967316636385475314156077083931183162457681128119719854785769264333693937779999125905049496165809646228051535008847783920284040047764809172942043332764802442327370905102447556506539574346828449106107951146907868050725560670714293721360936311352873076867915846730978218966849334082666766049551290505355593166842990998843414539475050564998514651787480303011712089172449252063736293095178596814833683668969250877076317607610752171736568632031759106692131521283022799227735050076955574785631064660513764141361153614324392331202496690447898762683420671274280472136360530214037705847489987962278715420797124981910914054788659550574243646433295965269731564430810889758718711313917514092169131888962308255008934236888320984439154168336477095816087502634488690851913825550049748617714701411597660971687602071388487417183154029385319079566901369338159515022783108585115220439663833382335254248670262534851784579943799669334450130645693040421022569372399617549607907709465419049655952872357634330995752182075509815841371702938362294378246029484256947345670463989445394207435477722231005671583446127799059910833860409695972781138258478178336258555542143801891452926248458374721689775185755532762782092926641676291093380815362258872270276688573031097249937656473512221053655005745473918149537288558028426924682064591625878565378328295892963416088565183923325492140881058640947724687185980016199711944142089340166520092894659300977752914749622260336690430681590315205050937786006332565307798780510093330508043023165327367584561923225704413709635843934276382129084758699573093593729243083912107773332946508651267831339774627321942300980701406451428988723761303414768149541419470659764173013503828353789055366669715303146712474471668165290314071213118706894496665638006628253245543773143988112613939980918958006428972231880951599435860271097332546988514629355904996995327406765228368696710341027561618526909333940454270126742867910153976220656996056047783398609942097331893603415251879597409573807891762829231965598336127080150060446010013607830905096707372569015455248168117074581881991433296116080231507522199966077241010647912476045412497251967564219750662697495202463791287341006215665845737035714206174886919952739786723112297276720679116652791292208224638988282310428813884582087261428040314099585974470420305246791978554217441227005569091798553779811512816864918675185597740149266073500426158971682647093406046788912605898274729696793196266057500189463751413025152273782121901971887088472570841690630480529884195128152317017045859128722083360766229534956315305916639302532245581039433468875468692191941359085263410040032547435956294283342174374990505041651971461681364805386106888193217476097188526089241977743547624501918513467024711699325133136075675450428705734015681066012556055221394640498196955348481974399156642248824341039903983185491114392800384351380789338005329923226895889405809303854245848132555846370881017115610025962934322457062341140848987516437853022287584291341258107496124117586372169834928237384038502865614474174633333883163976775632853555490923847457810975838576739877378768558694229010363807371452073647626381359525807406823836582241086361705292849942426237440306189305932064711103303675019032485646274904818748131137678924362147266836926943881998861710445085646431252524063063662537035628208233715712369975405676250296348354673043264007113370401402804889629064525002045672578644220908359651399675542861396033591715681215665387021802551672949959997605253080969311055080485010589525624576264083861449774759444828356652247364541095277276933995208210048525899174779055872637604220467688259844782173546331202434129427962432537596732439170271040528105230076316714876993621635900313050210321404850627828003314248043986328100780043443115662391300126916012555757814097848549796811004987767839623902150786924109529673120506618482480624713480030313696062530349956000895779096983344284573661539535921141890639017819484657510474508487429246838601252430300874726944694960177511938857655758457622485706190964374725572723324488248232023717262773416291455157105645357101642748736478495534307947694439000320541797113792895948877365543560962460309706174886148623703604597720258408825625546303061036920265007284194274701620684947485998918966792305167729142286636805603969502839376574963062575906502687646783446015199442257371049322991021842928037432141598641880338748256506866378547121734182893860456358009836458507723629467192384871610223396586431966976701461670700402120664242887883639161230556371685344971378048677409408245788392393659548874956468412120022461447341543595299603972224604408160971260783490811899791034439251527656453323965249471521456471152066365442145990814447438649571838789526737659454231363531562991920984235508905429668890717834338172357681800707956632387392817899525883218831155170535728128639744756094672032199442096495228241379334446596173036985239389462391115996074790808717159712737054280323466599301264937950302995069210106923511195520891760171710081339518408547977363319148028440124295237052140300872852266498822225901012510741796842723950041691604969500956151520555307291247128627445691121650974457151928462113836119105537400296194844789245231654815270265493103697036132458559791012199163217150427055330661774336872643009586496016759647141365476310229755528168851226565817736897962216557259217809181201649545923967448788261778132803880837744466707167152125711200492119998515343626722696963226718724359924912497842190746041620627428789572554367282719181359859157571080561900194971443117543514664442460299902660485671547950051317740551381496236911374715286108496711480783946555967000748672467501254193073336789538472199197155640432387939035160042598106943910894898665692983475525990007327293296966370514295712108349623320740741115804233528092973063106882966288863383888881522000936717447054179024243818316527921485691002372776255536983302960383831639890176850518531848001761283631602845705554303973911439844260869603510137623905170940519261909872576285263269007948893864702505816548807092441906506472753962487791472066298387807613521427288291817776663620288467798963337284780356994743647045484977357321434140107069637074704628601837634506669789085691675853108872110609375185679058089128139356158473947505695908411318771198012092686601177103802514430342865457900523780401926928184302206970989505234849069912572386728229295035628295437741197252602069552675386528832481234845884637195787940495685867540234136662027018678789482510863579502022508751486310577161929853932249278162935574171584335502825205663535430407339982663510738004773624105520902136247399723576845723468843706136315053065009829602643769929522450943922713225054142756584536148115629484683916574317723542504387784992128195698512727252520054994976753984305977117158121717520703637513081369636677780678237004243287785046984091862798720526518747535938046035057972250755289207143737375181913648496698428404304376395335825031782343144443275267795571074297111290441931605144464183625132243788158962430158882053266917770775208950367052141399442196522518745918722720534121947003636728184964275627203267189459118414896744605709617765502956728466251022427338436779688064819795013959771872271757481104380921839350954482075494040483244249737515170836635725256055214666967677483601100377275575363663585262163398965334057754732138387926229269259530613605100522507849948199316857460330809219668013044490466412216213400530342314089136922340367906971621600549276391877671513898969247119663495751810831793964592107116439895621496635825322946787106760280869308701146288657959919998313011281835223171030011364688539136927280872470032296828096549937848116224023213232207423807432128757407532576332822955470350713619458249243604924964182092732052369006072731809173649304891193814279674246334937769447307787063759729106163079285214611341559313588545767562743449139022911896981419061159788578422724951677637293001064840252578462469345999861235628684708021635527604550620311106127630943852055951379533930293125544108568624335854607367224917156264705316618437214478205400263438038729234621402470325225365735558126325809846586410181399706355048959029911849175049050372838929543763168631012268880471186799050542081571657735410764542861978986020174118685823254560785156924226673874307418844647203502231661521406444244197025257696869216823062171879470708513851521732888736999074384608812260078234181304677591643058872036501376458025026634643408588749387331693854639141481899022036313841504120298945449504304026989345413062073826478713918324934614960643820657003686508581555643624132912808592049702043511549439479745406473328497465913720939702787957114977762618824246011545644302086667234566155620301928193253613457813424356386226160742482457471615327891838270626260007765344378968356223105769869048560557952848741707916322186520389307056729238561217508438153231068341925499371666748264495499431729736815889636619115623035406800709563726370295556350602617644249683285097340066380398980302478345681683301402198912340530456635467259274644043674252334698318031396232089091711233290939438059869629381503394381329129886900390752965168584505056036442692395650880108613951558019694309035968212980059626724535612887282074502354801766245175957446130828602888357731439029939932801053813570379425957500799158198896480302302082099087108676741497771712321357711938746073418912141929537354681112923309249536533486491700800114609327763442065354669297232839907120833227070700746646591920387700025124899687870084956015309317702162278273811948684858130824888862208784450318388235886360109291255737978034898573506533373914707126325569919808936173660733804874034211156966235959308952052417883820662668195281304173963421441163053648986602729740603359409582141273746268606941155240749340476772382485564889148934734476236536284221006449294424598145229888501776697595999341065993629440956219994490393673695944468169923883076130602266258570796832267857933302325092149157692093710592492231801866964008965575477922414331906912215848479812579102370466435212501804639910436977493243542683535983957629896158826715057699699494091618856965881132240813666693417564136948687925442620606240857373934950231379518296903445801309769508317721421738850890872695537785692981045237184754109138685471787935301756175766832297652637079975073772665856321630720324092611933169962033790240480050739374354874096193446595283362295069122802222683838569927686910230612108861146561373949982097078815993584708643450385359947937481502837715245986201319986292096552001327142072862591676156931931041435770929871232880362910988727069798500490190918563270951881974263514258996271265023254479639481666108021749519619839800302377995810688676649520243690601755365918329974888219636807750930426154012516365489505331258813291480051807265243476681666580324407242910122254357505962095726524297832341422480236321061931637835761395866427026497463234846120584253702523092753615756465863633785081946833163287819270369313339915777970150715073927924838639335611736048830992372947050679012153583998469041113067377793231613431565272336106153637567571241458348401447963307519018853610433696828883316473787571690041709171845786380322106207735789042157467262391935512884660091180665246234469546530802649157613947332084475806906565825040985808512277094465471714532279487472542237968288889081753471154422345451909751098689567328363034650226766963347155297540092933970276990980002573727988372207684498955585223455637440548961956024234072731146728659719202474280757269056025235260941721810050778827910828232970746855120928552538431133998038346550450691812001917883616915200412514143663599071437793785465487648023463396278749307804659602325064257500083911046356594939467255388256644905815938129804370218465123081513339492377603999187922336682247843214994928833903539666963875990890964414638387098354182878548601749572987170179236952673600776375468659570740985906081130031826175259342560882981227213603757637873165377023440081459263855580692717193193127699059782965785098782954991984125264918165843085392515439405362590988737312044108667795371584675521605133498646112183233427692927208100888492110076106444411910362317139143876413399012170497730718949208279066922793916834413729672218136030341959768697131851922926193895461576427996378683255348586578561173893072312895514690971607030481729546516756808927361944598230791592827527499639136004649690600082404583416804287190629862100380717604742230293124292568610467396089925996522610739584440452296015416719685922609255013967730792398088192266920864881175396005014910026360656173574350137090689410869420195514596441459895298280624634802250697282798134222204127368991933548267877797602175958272846986355949221910340463584685921474503966321140010026568372268119868354802588980470316734628701463549491997336329041838224923870260425849062708723367827464931176106711673891940270096352402324453940713712780881149300896394188060729673287061077606367958325915889893779136932691066944284502513317823188931801590130162769729508736729189206019646297653628364737537266802612228605632809391433266871691731706947723972215622002999381743048400577702391066048746048618291630807773121426491054679852293864798837078781475596946460598720881873253279766930007806567040920372971905833052973719671036801914488274171739950175038136664100943848837549428703040013139726944528894487713054502811317790852241588824523244021480396786823599161630033967916089834216246929727516532882216623859863438871309166392064341493499115529944230363154062268092094214181755757743887382916801180607395365709045998593467108834515670284340049845689642999564391602157893413548068491752079948739858386748824073061756829272814597257258270333108227307750547079833477669778000338822873203014276984520108033243421922651421237923290301828246852397084837537887603811567969286833153669533911367385948511294659385780924983245856906297078383967599961474835438369523007176583245866784105519885598047430725864721609341899369239564105591009623900223079362225584251480381018135755079216845130794678864831550697266641565870571026664090932613115577366387144934023272616885804244187248679667266388409638853706848754602802951833788854319412372655186457782262459868451443980294248874994307692223027079499394197387190736273993374076378814493358358031963673496946998866143942506204161986083881713583257830713427316129998537438400915675382893782357457211580487632662896528020155845220264597799643202396673055475317701704607838034438255117113712871920675076237045227825008401409000156166392519974913222526366722084866030878619439679347933767545218892675952784946105890211054949680660297536010245951533320687913373708015408579334510873838833460862676533836771375203013101088309081160001598190734403358770807239153396319200550022953988325970501512788522575893728411640010963200671073173740765149015292119038446192456623471838226696411814930555517084229054206095401435128052323574340569334624832725213924325019364056175805591290219783890706478690763746961267401830747015000348988842559527786146547740202720680246187801778309813088951531938784749659856049025785750186297791536118444989449972216334752989905006814369769128442787487169411917855476853736246981392156824912975153278838897006034049619561708441495771815417646990752380519882994452871531490554621357681124597085092401479312983104107481782436094314718641626521274772138310914323364177983060035696845467148934581232105182901609009734514159406387011781861129098982954915020690444738498392108888668648286373014250384056914673412826116404340694349081849437408626244073989680340190502736348012432263733112690393273099629411383436565269852930662723868931110529212117721148565247700665670992693351728317517305137125459662291775066370045049319801217157149445215691841370820725273367315955334727637521141089337201893464152291734284746495368351842196300014813752637436712763757146653821936974110087381299776268776882666992884337972263307144504969281909350267025556707512967912024530778575166012629333066835480830532047406985367218431081274502237557578013501606123278107606785759144043419609376730010246798103068978501395297772890276886301323445492248147437935697215043591019099562716553468828887190785839160173902373380805823105980761424342440937991036475884395767124481213294645610794594386224531059307635797669171942122835793928790662452710265807787743691741933081191965866925211640171671389621155762687493789464117805937326031665563908920670869844144316376857230926032135999571537085092583349402116776986953197556324911353801501427563135673385622463232316463926712748974103462335929901844701367281605529488949614096036307767401820172872758422072655440240706207564336865425939487815702852346256547392602306762484254193601009988594900668390751457852980517249812909413816692141651109814830220616994007535540305875057489327308534128695807021746089164992140281681971411747836970587128686705503926349298031440970715781553872781063655528290350391463689756762467428659435716263516885436319263472632727619825557606049733969961922770007725552116594715546501905173395929286382588382455415652440160185795801361680886582699498610273459073319356322054302275394077566940722846339415672766442461606491333136537082493259760171559767621035486644696592247083177671435117285164385369350354495718616996097614922093346444777312916582089587522909396844111507789665797719435712832878104551501797424769772892532090801933973501688223028260728220746257881774868851448091269837953528997363887489259939207802840619232748215666284023584615152715732024492878428075076712263832535938482352941915363576623129426744875510262397288313720330779147811994152121705611298171075177549960698131859584589070336170644226955251384242750215790198102780882994847673928817714779627756829184708131682697228103330769510164405373778838084761231977982034028066167719777234722874890613490411669658538166518494405873955229380302882016061415221037797150523819758996452065006171984975762689545170253004204704831913971895603935026549042655642527580630823976538205471307070533129844450815790293033466520006941980240709277848328879910696258031447610266247972834327010065181095695336515377086305763777716819930559060413356640506750441950991501123763445488485814148400218518230402137866780967656669132475305120537551787672420247696595542743582625673172745862958779702058717572030202249026447319474312365656895521494336376979537320412789667327708194242112756007800233818247351293195567730758700638973178001073095876268244012183543644579105958797428927736822876167675457826645085004783724955855596090797466690183589538294428136943118356964924934380931441774184160245876203073300052577019384908527242039309064262689142671676415665410110789838528424798109786542781278076349553787048919774348986933281423125106260400582379937276629462724062384201749933012263759224237520405340692016947907833602741430304164093121010102430990911459697945255069612144625750565247360893645924429497878805852247031841201983731093079007094352237940333769815362783607661056155111091415578322109643818477774102408011746246900823682282976764704188583059470137148298041545016662492813371530375850194444920987524818608737510269557077048110021841588241452106378361878678405701795932240175005393257861222088960867133124849764611946472002877373513987974830852910092863080684484476072787429854551465616727939757932453158029147295915542596027348300166462342286875706193950688208211785820316038389551675478438349443214854916441647333287805390383402611890966418265535882197778800843865445637750573062282085211880661698007723061172244695033619206965132625966591285228674786318477292451333113790690552142067597068890247848627571752649007399420485475871932910680787678285645526393962604669533970059461940084973780547682735250202756521101302134278995412379562509872415764020662528333816782080377401660687884393961119696567714837006520860997569787527115474304770032029459876370004047492185117622635188124079581826732654681675671906393937053988005035036665547836263554818412689694094965448846433132461928427608028312912181925036275390221322622029719426640753494295854927412671779224894487316569795127138828877503166578314436491662828374334086164746733203649101345948278284288449666931535740802656237962108520033042670112042513104364993425662233555401005377968959242427701240390225039797717949297353923420463407173715722196807328197043001015337143067836073838879688523731109463741864880473370010834823490750837201679326362672079687523965854264517109410230995048829112003855361882079235341297902120232532081457092298695721205516960414552002785504309526510744589086638793600995267409332153277833727994256655618278552010475195967131691947258626413708827416932653983440980657822494499735814289741942089627365280945836917833994007376573204146995114426304592493632219495432473975467397976485843078883778842076512362583161577622322037392864359352673854553149800576426929282334696626527402945166437615255819548197598442449251557767820614196575067020838116601593488805100342147866304127684328418340444479936399684066102932517503577981668877293999665599815076990994370931213428310175068926979588485246837549355092721286034346292795246557758741160495687622002963506673261776646274904411345366481807103253556375998510936298703980573624327966066895118761837938765367776470036569434265802900367587844922819065044588667515802949917592680905299553261248674163896283665645633264532180679412720662823581541052294859774980812672636812572262984824379146782319894639703456261738304556926615977228304398951592672218340088973717634736900300394770095750621893716879467751923205466183062650601187287496993119234471371101404820486534080449211444831254000463029142077080471769122023548227693484348538597313557186210140039091924244710977164530673928113485494347292591924077618043850632932003435174478052344290548697600717838353938872879625566989547975626914499018779379506333535158323853725475696892609562220347805990584666871499129301075482287824558724344407086733692527882759635128141657476482805696095232585413385140049125920477294966614491432523665905349498850434429784061775089517988364636747585943269482503207570903249966835264921797369524456014551853674324964816411633787542358731154796794389170360817809569457456030427706995637501316487412222174762238422309032070385818591512637809272604690697182554594740533023110870465204943871128497032865791740774278816780490172766525779452062022019842141517771341011560174982757967056307991483807807134075291781849770572876585926310787906186597167995294657636001620061713257547806405981728313428067897448041812566945172436660359569515145359189188534240689588241128800123791309943394416248383117838442781396612015021206743555575440393068921856932705979900463073136177497679868305563311165550550908874875312233158196927701696705774785137490005173505943292805320171975921412027886831853221017008671315061298314050245788958226080222677278671144167670322991635122596919090537680498253455270392167632680619335291714679244001767339354061701757569053832220780364340131825609209231084866361554843173893128590312833753552469102922474416008036887001654736905655649698079009175978620123010957455026818999397610316807793962736746970215050645338219635830431807621258648047871535796435998341367433631896325094012136761557405293106573746176696988680646567206905056649955539228180909291358986774108854122440130872796374345524719615213424315661937341264208761251109954480703848957435793031668709754154143274084279185573963788467972979644444164676483780563436255260866228567404937927472418472663112873540582138214598824385033194036956534717167324471226005829593868190580293021511499731793893108202799309733909550056731400162208972459017443551954458984722660560077727252723043883542312667824953451555872151891851870629788651172127985226029673316755198631164906062064991952921267048925201905291749045282017586360548522930966384764146938955645232287360460158995835987362389917096094343065288757082213388380147133865389616060930438762659766070446129614132972077689587186476719072603966984451414294218947669319094234748533010731840933091838109830945040849108233857075158605616341458028268964685826149254150678813726064367749015469352893791087795053309034854204247443689850520438883337795112438621726250224757518903520854738155305912627773151842125416417130441425743633865687372239820353328573888727643965887591917745430075688571788235003387651295591688378754192261664112479956906054016427840585545728109198649159301814676858813843280343070986627076128085350918696967961992453581591889322252904715666343277783955714059472709861728318004223992503488022300372017941393998779777967594291719963718587799853943145654499168606220727495217811590638704393658407891382205443971311026329171343864885416307849137157146966344833932597090476708970129370761271511123170236176646038069392062701561050816636236416916951565541675217173361940239851756239957379300178982762009952737416916443975208195319294899142611249317981285796719770052473413027467127391321146381783316650038345625785986476351597919945837600224736041397657051412905894608061117563659597515179854710796470964959127261179866266447385590936354044341822446227415563903545882256591055826833787235446077208286428529709815696304112789337771032282691533657248313842438119656640237649409327742211210834739459334741207335453601010326006742193353643487360544915262106375516211352549569938913627998862791156048056676281648807802648584833924350105792600563007018495662482185529863205093932998960527006711614887106379049501450069457419292384916573826805655023140788756538159766953940359835216314048267187303530740582569823925418213380840441817010356997434289171600019052276242128528680989975838582836037136110195919843272119737357105527664343854005319300272726480406313801911177770644281141041195157236929709431400420154545698771292271569451998484976248023314899361715523489053916417407632242201922364258681758382666807540902061102920708353368530244532708621356885432154008851117272355109961772937267351990074480763350254613568450368567901926282713001271068645627202073694362084728142432261410860201787663203354131512313453858016515828595583422323399771154591876538378599642929264316871668793438916599577546739169544535627764722382565316362163894007128528366222835194089912381154046958456332271418528480050937585911669762464124301365905655805395676738353135013967320772294433119046875313002698589002502311116008656168456763082779738413841629634470814505343728179005186181864856921967599494958412375677253419644803781478778956436958287402549312524003135991164430215074151830242426061576789465576108095089528904487106603535450564324608463061416781445429107508570965991644909039504194618812019797526222386846908059341263331488133539999910404437383540599412455919416536605383262191490574122548435678328301001046023611901354048497555583908662728874286882419115732086060569438014695884251277917424145535889260316792942471657616946869871489837676348084102323670786650101105889911823863606809670367355097077713877597548948591124506533523985033805909843286035014505096132064793906513085288987688610740079001041806594776351812943117879523889092537080303004960651052128955548005956159094044326249703544914322971356733700301636716878308541052627926892731197807732350173142955130174594445554659794927833280240144157062848689845394460313896468949878567222986868517849239437780969159169892448510628673972799040356676277404034622631077556552235458658700569922002726230707979699738549715709033254548739639616664800551969431861368863297644813519718016058462756824835547402135221430338642594430591072639686343623193533302873935495815229760917559015913413615281850920141181439993564012718304841284483011503210285165446228685635033580890014520550737910025953164732934944834807712193541604186648592443723552920633949455044020060400426812491788946523113385520226553225403579552956774924318442685191649880995620813728588392274530811088973735708383556497497990750122676005602324060964163687069240550585469752452212241312658399068302621186686777734631734541045864882636975427061960856106354234956780940143218640976798699641246511370822791965325210247764614649154661688734244605322785404641731796092826372975576263848894918681592939362037142489837557847421769395570675620661759179070059964129513631728362051827335848860759254049611099528924567648001263287110590097814697487187758360578986994233535396593459000002775977986593925565597831306391277865049922256483674729865397523374189461064784413945507894941519857577719503332941841194956484060775346664103449581624726858201936917183823427466508318585202334604171665029216120880083840010448798844798078803423467382267866667378893614978092191026079374690951756950136579192068592941896995261036827945454957911320718412707043771027131483916594470571840319757824800008869945148970551881493127976025008238473600458609517689142207430301288066038733637871532736534129147840615046047761367538273250934832739383460222878565678916448725316558432138218178313171063294930486710342526407090034834890751220069187471537603244528844241029066133824447937138872284842720049261913612310178511208556911746965057010938482219006791105586086413464543733995377270980571896287108121307355653193337102883647523444608041608241663820226400798654333026277529862675352481889556163263028184112717359540729032214460385526369509868423237220440335457161373035260933556913733395324698120821579571597954361230241798720880097558000775219287696145887047127479116474933032295360159575375773706397586771078333820547879626237389327618266868749280158526092928291831123244108386532304876604953470766068100133843356438171854278448932529530359839296111373916689528223916150871479190099806088467200447135653777540445872656077423096533158975553638135322952427086968317249343722003317753118549944716059786335176334797924360812697582720596254410501094261086695075404981271385122400627291776181454503614792782738611850556922060079039820143858447220866626100488780111654176011855785290511867456448213308233593062733345448283939780087875454941356206340030888701599200861293101147600641787664824314720337946110846407443214788780209554546230123247153321416434339984129006532045972682540527962646701607511717984870099198212877370456709236844863390805232923710546344317830580736103372588995108883813235351705985416457407476889040099058171987107117631265451597496399614161712762556376058796537007287269322627514988742061534838484381473312385120432430394548798651150831029859210927051312854890526665017250926923598624351445789227324866686795423292557834455009304307722361834681788039921437745124742805010760447745296571972083545631859603465756416803495413976766739233764801893075573526190198359376240921383549474243208845655506759223029096898780568371947746626346864306804544374285984590073609481245325311823858450806786939215333476209014141946016561179009210111264628312899473879798227668421129090249268755652358279351962564098580681336737479127528511966701932651061545728539643331233997656251100884945910103432196684916161646124590559959644893746071866536041697274349493341257091183321205114389627050197395308409532934202593277446980569853359178332014289905781268278997725936155346688570851552685489848421524288257617934474249036322270584675528352409948982989906865987336773510036082439764229762932801411886145264028003923359713357543813218220944832355709695727284096484162787871686922586132836317224022835462416497816038606785246371341652628866035932033843291085129250438609832122833705718630633634772716737060359097252236970740869104271609633851222479509912013028722627757686129324670377357189674717994960877618816022616454032424403975497668749945144508159934281483343428167697834466540572717962052769654910475922444644571244790179928187273242614461311619862873030400584689035113358261713570872202649001797778180097969119780693813104690809655299226170022857826936024653882520387407892312091634650270542702456680774891644134467518931184662461614502632530282988883352820623577149780319164689226360386474537817634471796746562884271479688533499273424300404713531955054070760676985067085479069280349042670120296450629966687761968059878097777258190478443525357516850465759171222905123776186709612160681839648978598987923093276828100590050473585591922051583970101810040567312481781947526716948679533418542044070183933105738237673318137384797288161490208500032360099276400363295946024021042950946868351363663737883776362115181931806463763016105841481868316310320475985552458886038708595982103886978292731169831606659146606388090055025192223256466096227756295645569064676041740212363296247582510001432031026738987865697395975189480795185695675629483320243127769976558347348963950541960216565449777995160804645879033934820228983334186667866123418147009911877965078253338766849378763716728252675690527745473013783981293672634810497630657587786857222155728190113744763915868529501736993769232680116651072144518884748374656852587995957142121252748180541236522226831591539608066083609677848469365213354832889675769866757704057904188768470013303408198017236872372562424054961025136161672179104001566529392981431851115521639135211219990929487465089677983106819362172935580312156343408088745176372548768460142074683891633784449899434817089620388319294267782979409306063917098468246208422838628630264270244516976669908477387335344573529554773294054185730695749897414474502997471923494968003498509716028656700797620504371989514051587677544751372917745199832153447691792466977852962159984215582306447018765280957486293939107577201704511248124459972897238088073711752802213533604490064796245504894516489214007922555998273331101388263997606059259481801544857358987036853972112995098584108580947916696886636448067603904943714172003442240719130099244867351881767988092818532498170100569647961227579227465795804494778306716305884144709948156588592476333671882437378183011875487060759744277247026809582147805535738494716942295276916936806202573847043067508601297805840028331208584460680317386839156690960787178660087104879715870503331451881051016582884955781305647517872904539217503464273418718796480775299406562552100039018179065817482823398688144885891905244834007560943603074545802234578412462733165178552152046182173650208841487965344920068134362585937711790214992132903048257172856083724956221250622771273288150903586514189953365177247575975835481887510869535955537910461252193920522442851612385356868554617346201891215641077012421548905679073532732421399003046489422238470691155292465466238217648866005151957460923742305509589895660082352324293538981308396796790426251160547039450904169210930046685196112281577800261205440855795363986858439397237664988167239193547858293809074161707918359605811521218654020261425210261895140943963936408995857568245105904815459621144910021155475353613033953190082987558721070581009956621916991678486091440199404618592020080326832375882154052561840832670606184924969097878002904716790670263204797524110983543882850341740112964001139825519668712604675463952308845381426154528115038959011463269693483562477046238524788666697370721140945296679658532898419218229904904495296379701322468540308827365260591404308823712760446066084476629157718787779542789855978597098093145804484913085797662091108200288164165397401325666643653715740068697009470395424292124316989999280466392387489398705858592314040041291960614313696957454590040310892774179807045097288342551557934574731129688484489909297996997625809232038661671237097495528745847524935675430574327783028638694143806354010084385011627951006699301718724556743622005524460852574564510180960168585466102526324661968587874014957104540183819515175414250742999193517673729429144408159785010871238208779822554252968819969526683675179553967804353733870115911819432815236039014905920435048404426651276495413388937136727129563831636104957358513407816598383778772670192724370147277057964704420099597002744424827111232029754469772639760236648901551190325787593338504449528746488309897550231216146467296208378645195967363740039344782591874372757786308927319453424835511309647054687697230268362765384785211899363128329887068555557736108648585433068383679685642701015491421556245581515143947625680808603027429958420377665152713663770526340923663716528502997669543515461449699526863676988999317374720160924790065591373276989465409204114567775754564165000203432161598011846931153593878246572268148213934404994842644298757892373806805616860183426166884246633420214187477116028464366825214822110198993979037184479715148684832378962722199375347442883288235791115019187485992762594539768321866682945271838119296158728991972314722116097183063604149597618391476686225125150250074827335723633479316464059397648182495131748788553684043509442779043706465612113300120650140465248943436577235801746012836884108675472267657965352295907662790362591016771073059827818967026746331428662917652200823826296724783063056594221383693587176613766501540973063526075167050922004813813146484115965428308368181227108851154037561727506248413014600757491999257814754946574028436864279530225730209838349324805645032557413805211034129173411279044077951455906283862891650394189377393180007598277717434983455356871545886644255934051341443557737053461143755445896472391334757567225126576680398678045342275332312547645770845626693357550278227436505265341768706267604847903529173983449167906861527424156393287548540924605639044767419597443064119800615186097243561754086649805922214409905521396013483766340575750787999055915625141320460555857373518251181637069334325151568400706089532783480334487114049875109777210806175246780683387333915083207804018391458671457525083562882137794246803498709814711728777760231562098436877589230047158027967792435258634213484608948771786721641775969261775244231055388860930927963844186493414765830667518635335723109260893148037941730799654402946281104346786986431246321637948996819519845344884866237819754403388243408038720735906477904990678772124108792738206904348991563949327933200487662970180238304601785347247759904019124071995009024346495484691698893203429144534088655978700380093732185746443189064812707980799022720739536653984444022548651554899661476465948065884257030795969140631392110338082545838671800806076094646868538882660402722380454279137672927907187630835329729528663045324362096354138301830474078273851480168856035676237838356773341834003896687125586094053457799515237116656618619259870423182367796034603409146388125925734997930765349144232255437953411553489004882843043380405546499420362355421152305589104325286009680057864592462026648749533797427276068133122988571292787254835077351273958194706120217953081945448288451514510362554826132938396342097681872643198860063744544909214213725586397359442182797277094849840717486551478339496168590899199076770626108745070961045029127373617908225802691740651456417753628553736158619838557401393627777569697373705910989714917032948897636699733437354564453341859989177453621261367037011230714322296418518052825903961467360786758838142718560837503973365840465418783650051368912119089266505129747963129241610616782659293055680013323920040397109892385483069511249941557891132559451394892779798042585182696036448545778307800072283185018787651551467363798027160918617409093034468133192215441367906526407510410075489959547051226278389209221686610600535102783800012005339363065287519636852253208405477704467015331759478716472597827546891255849613959293482376065953525879459672515303823759266694389208551894166588254325893263021542040835546056505644214236477023071544005279995247828575799460426793761925779932334895283761422428324672188664419809706011749007177312286735052627323658475682941481580662251334178882846392251456962011077959100859002971253459678737509605234473382734541275547321268836690886061093408182430684848929726847657860816322570531437911333383916718045173572532741031245276648091743619141133004711239032162505475014927954116709486023800142213468160020748693497199274594578214448665073930710847236250125975328751515259994377911154700405015444293134064635101479825487805425460637583424302193062087589010318081047182794694554489196462229328968552490620226225839928818190765634238834445967845515678001968166904828385838808102758922859418231797090301414262943918409888518818861852655639111021757588204899240699263624989696819941004766605316604439468036177931681229784429302351725498128359790270151682868354638050135772519749722343698879527068517690919165780081887065540471895823470319485991165528003047864762900801169345084743048101172385705543911860678629058452225141869947160685933483571339160294565934217853128340485359354264993486760072776030106061264525636479104916603403879472820357129312273477975304621022381076616411058877898342397512012408419597763969060695101656980076957950465084573530549992644188022974979354471189661280637185444851827855004610792784265938485702571219939952893710753380598578053841430777290531147678584962744952596344159969371042863655264216193978137772592749958745512772770486303102825497880555705686043446075524851012515689031894048225493779078693991972973728536587938557661245545176976083257548060325085315013615456258855748513368899596944600148526019408433037263818041869752977701026893663529755381560765249360809294168050711194205013496638621927109777653510127927881009700676417986064755459314599339063983388798644207258139141464263616931933583717818636391665470698312802661493299002924475411493939651574954406603802077992847132869231065335901063310214192894403184847778559717457346685408552612718496533593281649924442830599358019319739807904847843967482227525418474210475608533969855447632688102996473193239692080387671383512554217419751347591097413491451005458408587136622395446869596513778343855201637099615069797595837932491962426575672399324727452749841582402477433156667197221604496190991344045440496576345086288430104826744819054567322396100974153225313420610556103391114774531365100826067031565974498751731526613392557233890658618658147455681144759650767198973616991599428667737327512135563948466397492182382577212834699971949829407907867773004694456568765957413896914252864199825925484101885700958227967356282285999610141412365395306836970910996976956209341432007627105958995176548850997404826501438714500643179201291136921067385399518682455059515734088333537860152438021680298445024611246935222558176025602701857824903660148485837702402317699561920868257225039046260115513498698440213282096588854423298081859916227550678786162123525428789212316442360634532246950473483959967325493452389766452464270176441533463117368744289942585919436656918329869903374947955234131701398749572140036628063840060554460186572928539956969033462604514163592433827719048310974861662732894028822191019218766929080854239547652729503361258075574951757549563919305268509862416051010087564340495007060549752013223165977647535089778398906689580983949885797282549389215277972842877633268004794212856075328352749502252896812247149504287414858431496930166805652111640430123180966174132346926700647347602338399300788355773234773323513707171225649519886289676548090230539939387610229314469273036015927213726995711906602993450824806242206486709892979080635659818164279065787338399364684321858605781084610709222916064800056618645574511240595528148897244238686655063653240455991322507579648291120416576658565229387763472698947457165508116416034476590482349278626304459576512744963697730421772154149219962996649644215070581682951000794944176021285972858151025225629823169597770762378726422636232688414974398907812425411897886970625545512791186402650367040750611920804465793875141811606078676240671321474749640709364189336153993134022758919522622794037674883789274092768564150680188864414136212614122044210335843050695272844267549850439953738278662584140507607995306994618579530139879189694728102210221824848482355279087992439982742048176605055375239725250751688567784103005379028362482737525932464077520368229633830377849181624635379056746661366008529987639048843958972929929406250086046692518590676216848959586877893743788037841039582902075661759046319122254413556121383494717358326571365786538995877839079527621381346097171977396694289458157571607927000012571001292428781214652689230016751254097560026374379714173762602122201609318366270486682098156144298553669242166417912832320742692347415852237590477844987323960255256355592638377356948431730412692700924296190149720554009068971837081186287183651460159033921246479934453412245199097546112303497994957428805908255534141925831094051088506346669235839821586749662778658721854520213442750804624781053115547593864503805642151152631106065360864956133023287036898941667471624743190475555431450529798349771240851869095445684999739470322670962319099044849047080699222045026710712885618764213263150546133696180539675075623920898382679282405519934221994993479728699403738587090799911762185619857207948788791050657287567524305679621366933357529736854007182087239076051727174387009203230066546424781985074152158914005235353815080951566302121084054312321017120198636879294925388740235935643562171407644778904001845945016163177611181792117753433938530947633525566648005398509741794488455654543841649726402072421956274328448926236733180877999619582866380921484519709765057564888584705770110926094176419860225679856275642652739639574044853950823418454520574160024363498817740819055306062793119315132081866451761534175931479346485159315783546179576817473178633315752588594557955360774216044863788260605862351837579250347614657496019565397946847865921123104179551282715772635380891065897309801699323452267594597607785413608033167178481019590770613333859504477037858092297047306558414521039203986759795413109490668134251301934506783731591559251557030247210234230156431281760849422034550977744763176548995599879278069722900114788069384219344995222151373697629482160492282946421379436907459058010304541843937940435577829614352908165592291526408983231867746579842456812075329808619135313666668820558813865574363841877193717726489523237719394694898419922589930801351226811132588357275155937876963658834556397158038045833720858211841694856777841209373644797163946192615363839671842999461254330419852292023852481968539627400603845586590797233057433184157330194083964541251966229720587627582725030530706669491938583008246577521397331313752432103665977374876492341529685913613222794435206702693020948220638476109632518886265108252156485311937246720006672264699697234744183121944811640186129717865233371417705825386904464467244476044709439732989763958534010460306673078968622605160455552761224903844373645421528634066122585147383533575314039287956860279621930041679603185651750927325213374673423610398990463365748917352343289359769360049146631742378039800112033831839999408739227820466874102395398373231114193216777236354401137627618259515334934002598220820528469568544935961372691330343720802518977438778576179740503172885299988695031986788065125126602252004054944532370758100740441483690166419103719023695728391213035387549513855080369042814782332281231912747844931387158780656548623654040137228252981807366692277128450842609259422505677876042715089805917509654053154317048134224647808603380345591897950372641310694160493680564270427456562802148582099314219762654158916265801792900900078718945200790808934216096151969286347832767418782817777825548891452201134856241939696702585336069441884942995252208325541851278233512854795243388624200994807157644039560265726034200106564811894003176196037408775787160771908628829575069052962143769259903321191113281062524914427778375559177557796821323513777587783431397473079629332258890283133329739279952121594936917798438122707668542015504816575990822972734543038365377933964450294974328039657443153609994306535199037287857778150139180124790291331172893867308056672919038032627767061350785185557732927285149404757221844712087511933546549990569519209715095693645566660824650932474659149694442606441076178266926153837410641510602380795167237312059442464039090874990847719565294193839441675606956518691107532990114303661198969879815558606011545096956269612575738266530921790703958246881813282699885361853840615192179765630884577199263028158004708602697158935776861650940680552111449436574028762498284172105893457490069944927232909062255463449899924990515460267742221285861894969187262179139182160761557197662797162852301226699589379703813198042691332482267972461747841273185129577005464209448939947959998345549784118339506575664365511038379210958590485545803105161932388524146258637419101087757324731213238918642333757089064535176107569010771050555125240099628581788400484322964186902086474609897600546618729853420064823231727748717852094255982393489619982568255745482679334799276637275531489111533079118193817896363157415196573469004117345697382244697170525132755620630372884250429866135497103716541332385800291067920161166838504303967212840272321554111158021246596583313568528239300476021234364846641987417469615173433120584999438172164227331191850510624499003978068294340717431166926676673394645292978767493662866171080311757958532369113045435889300619732449928815267522721745607064593949465107063410880419593635331995157227953341840968249029152723106283454675540146745044901816027623632999912392892906500285550676642088084668557592327681703847490147765792410817978305552140395472621554907508249120970858068614706693956501002779486941091187182409451701034981663934845137708351539114272773510387966091324032843443468813383636216711491142012179963459377592654312818578499891076093505728794045523412543028850690947620027395996199766912935472253601339733774567646838761236185170387152326685469686492033380737503908479595356999516620929460714175223843347985862827636445756488036445224705230608427490492972315738614161730325420361267901221298569548657334708133427495964448402271316349088312861689438058248415991224676432079286092537892971642724738319928804576215652152860855177141570377895349080762401239726281285610688373607890154509659561456941205782082745746738443113338634811051945685369909774110043693526874143241874286861002415107536801222045673855136398842684464676556498741518025759699929458161576158237418049942037166716651181867182776326215853335208219310556441532338707617864389896933252448911950394912395085507244207676214042998686452324306881250181111741813829223354083849055359930162137823263060918324707524022008955856675282719427495240483741682990313522527557177097560720495165045381336025261780983057384790299931159873623349792483686837977478976109602339389719703968929331144200112662676695282705304008717982084743938335297602069614241855815841127352224926894669232341013376885895624908609455194520173237316171397247669990959987535251524306587036319331897843711946330700381517356788810590311372566183511351535891747134842602848212364013663489851557132286654682116179707505078778248914744969205306587361900178900795524683892541918838283384915921277935227076869160525891441656119526402889706811528700373288484952594459223814024108807876081148995864557797481602358441024175518620530989033510442316593454093820263652272095149580899262328245163389180818702910513656741655217055840545093344611817786816619532860375881957386141666118801335769551755672723709195963241662162297038311245068115121808904232960538913084418560586394717140823894668276903884058081542973425498769940527686361479037593574494439577755022725481522205837178592981323063477365674865200356358111803437730965490890324877344374824656808246598282441703709373686473854940143911543716623902491505098880199922274763903168215396910356090432837717253160460334930514380089470743862125778058413256865254464597391229359286901081093242547692602163219760044392601768441793105153675671141845261424972035659009808629103390315645342095160719279328413530331211750272831381167962941658041407375137317567309457928718193390989681628665795700396069550242209885321482576319114214791467573834966822144086369685122661958543429879206168138178250312417381741079850308571216561748429507351675875051618546092567796839396313732910772778337147980722154297186633336054018432075146437772241761717203437072095291386035230556374360513164420495515635466261796899669294063496897938001307588490726879163803644308095089461672551760301668956160942938706957576995644082392386076615316212572461985927620789739696148142711732531084821550611805980085615611814835948556462758482123797635731369997787254177776453952203356465556726648545237928931520860882985727987670174311897784976034640993045150303837839467185971467006654158806986071315777124659746975464576591542686189637835635482253303020277027726843045913894513239087652630307754701561966101450467156850140287323634799098515994486040646499869059044641169966618892261401667405896440541817508251113022470750651374821217089047492140292354234703492683812416871217166983005838989402739316450988700982927123325636625454179790952634380449115923353981219772137623761254955859871588822243292621722232330707866792129825272071621833855194882393416269414663176413199853054231723165383245545527880964909027380769791483387581351071066778987005266588640902963577068301143444671426952374433741599639198517514332523827121703417044666840714245953772020069420470807819539817439226395597840883772525655103233153137635279728331125058948870745877898023825436115259774823797354068532591293365714498783861446552846675740526137252149111929938815038411884664891363235767855514700317136066990687597548318528481226110718575364128515847271831347781332043981776767190447102940466142992203965911344903364964347946395331090677535302431404191331952281716743515986096346857421584946474303402946896804689936490471820403379408655280699533241858141454166387903364631942709119291300521456606854986518887386144820136961685371814643950310701771018219521106919161244372020575643932614079447583242129816766480142471228029661003095648750286052087552723837126185674965735466793614211688247247286194810261858447492709745934261048181200222847568124570861482544151252198582759963863439618490208466320917244418682158311697763880700831381465305251017869712530915442741658802056321663259923775068821654992414667500383339995594408771621664408425156575706930302661751817784236954220504653369877429573242610030359227448296318668837374773817443893365817662421121570131572873098050376155367518271611372967662583917248493440838793524577219043483293800259019850910260401924065632910710150983080588589470354507860776123213789156265067705001041722143870082081453493376793849373679603905940037711862884337856689914779457963108161880321907034949447524025390736495851712149219838494821179857657469655458306110181274786669154541635118769456924345314125106424609044696332185664764093389652440391287168167982949626228834416559371124138576122368959435743728915065332029795417482496452866025423697507740317998818936431745622069920885850184045337398708000086357147092906509932893960903629106854423056312336788658474217091256644396790239277670135182301570414960724772099689649988734381567491695869224803438230007229662067966390858042895731688001580418400212547878105753972005390635491966464831859325079973941517200229569366569667990011853575042141992086976726113839626570635180089348984145883813479751223182486756219270802067333542227565354926734912502626194224418708137450809302935098080238949646869150907564939345396899760777353628818409798548580463317789607574841390986639242303131918848402361678564573781422519433463705918039521129206452092439918483474084940823049728079886787677918971430297405382336560747938764804255200599731406269885193520677323631372183665307301830216624700958755773843122497162664411473633172785653238496421873874919949989264581826577864694686663598676556752695286775769300572719719160256953058791244858567523139560848207806089127724263358892577583596348171980860517889628472230266181130897059392025705578373482476305989206609783152280836373884302441210521534624182150171390034544441318488271888636841292957353284842034300012907090226294061934180995835951774229728785886692920034840915463135115722497603648012135629147982296502639805379560723781172958471202453186504282006211645854206009912366959424390478778842429524845596836375424053004947090000239159535618498182548743357348409035465635662712910667641735844543238222222751928220136895895853122758519284521070097432120486955059496350718815887231326660815551574961520986920648029704405282147477655254291335034625296914397727458337613348532601074090908810411917912846898625365465075233272945204915119203232592375957972105270064338216730421781791745569467064999656362682697246754796238517587319955891656428987700012003817148782257086022418951211279055652692205745570642014020296670379244806553528623216089048735987745981346904639810019910795973529693379275466093739671357802375402941977364195936503019644521131698593537680267112881731179768019250417325675106780073617588989968555933611425746781420393786450846395350035011607091414948275604353424960132040482813196881379348137549925398897497394923903814260949298844087456715201579241862742596283398344237166362653422459439048790973529631827455505415292048224265926884039160678132308278816690246388394834157190461178372635741078741246779099642628707696777797625896661133353030054768594508672827298929272490749502446164628485630750968181404297710016671299424015043155056214070505808256782203725478487154486715921901702533117286809865976687718369184914824812795303287184933144397094475016584215760259855141970241439470700796070103537750446644895455767946881493028141768415610689640163309262144156655122437617297174232606684772511634910769515105567065079682128132340036359973365758025904131657159050791077560109216152028579261147349521838546047180223218580788177468337276047532265373858657263310594123100542267773784253440419191947197873844736345792054352264538360119593787072751058794822046950635057159994315717669448762549912203280742346002007722902480320702659198106009030421922604685777860580901323908948526906817878081197985833209722123244157518826734529668909703153711318130809535331988052956682827000482865002165213239409358073285874129559405073621344222026430872485298463245514445512089247023102878400760242108082320623050874885853342140680207768319949684372881480288985973142108648785246919493205360962692874230839625064926456758510933615281719647235670368144107022920132547545453940103943523086090981184974429605617991214773014357680169130855062793382441315731338860353898798872796827959328742791386305692100166497746350566107969039389532638496994599358828903347799132002441768792071330960938511512867308912161481109430421510146980703402905935635750130330630157231381937157762216043452371192937996691232776497688839550418503622549930804693575478621928678460681514358560614646163783691607987313637840171357365794742009032289672686973555681659026409143512959183487714909066052081953399161327455606399768080803861188232244302188317781565510690942406586824742155696759182435574787659396630949048713032316010376047790342177435713185105663484721867938894961920534233957179078752997532588216340484256412110666742048756972118372316888340317277582707911341645872271736366352518848756830762722514646158289124954815163147276026631577822121674552314748099108025053470156042825261392729446558081410538325056006061788569300748346154891995841453658038538029777451895599507764020689015142609264215772756653052009052082556132484590652725154436400742845315670731738023962154767807279819222606578426720977194856214551360961487714753072672915402208665971743395390452477175169563801330181951744259888091536406747457900290557530247290387972567523022580036694324660155719107917139087123658702361949086035250286631478357578055080221554323589325157612623544736848977721746983398941976242905209713730337335247450166677320892714461326671094994057933042025042987959328385446735753840494210046336284794651425153667392657088521635647036113763132192980996369591037560222370990363500597422694373841718753564874726220437947827468455850579087779220755720214024391477086803033866825047961273791428378853339996899928366050766933801475695974468580433551355518854305174782233494624007961746879389647744554476251915178242816368230484078441682186327963180879562318813208194416434424011405099347231622198352835127951475026080224307803380757835522281810692566868665930099350626262938919830764429083015043291476413132839612161452374573818176633558495217622062450400866074341130673490385616401387373750081729225236224521963956095518198058428829921953443010683938926665223256105805749350279294750030355868556499277540609049717176964756710540315586398368750084167109708866130199144342910942013413326398820425296539134656749265712290294956763298408602367992631770114823021822036837656696178841212429476072885788390198462883760766404780921097120285753798891441381775634773222678390079759464439783816062603871135470546511143678690015198069357621060385058047868538043693750292825065559459250636355738328080999059161071122064445952453735860320150187136830564847936944374273937502640329875118207758922439223861812541037404973860474251931674050531242721253292620660040899741312367826839454768076845585754477535857136660868342176652283353954115993449968705761194077158119962112400699726655762484209514503979840830068596488439382775253048075530728740276378965592367789910602464883056431124264283051971506638075772746264157191471845835195249076670909672715933352193654801995068325845639961865444158071139040614321124592213667229355786482891537423463775118452575119767561847993805407905112326334879204066331383136052976582580143122080922748240978779903196327913035489895492037597941486897459297796446533887432493564006486436504861595800593689426724338698571679920588744828027786887061118763028538033032722054814580258177542474431701871934313350357680410107219285227617657447139820465955984655725626152965850487809218601167801757173446712291924366963228480934803865502072660064721122692175797456934915060035030752478019816396784817004859745357852693835613126521655430010859131239207358602725332702250915575855272518884075312202378896103017671907192134407862967377501062370697346575826838823813319578364740023897216898231254516672437966955912306198666570639732191062723140240096914133994483541688355643844321196376412796334712745367955028809952744393128492538611775828278719238958241599756575764383021878213486934343374895086922429807846767662569011631782644878235026604083609922116465435143455400840992268390682187213810907812229768149923016318794405448056887397673245380346226325746078136139405198207129533939524370822606716320437292943031058420812792371795141043741360831578686555687198822429072088886390445640156417964165074490489185658942174524855739245058273779160765367712684502378224551415550508250811037265545484629786292944047463690312798704960521249602254911076555171132516221589056499068152129961745648326403839731791951276989015295734931040835114443557140993953572625234285342080278228478063717403609019101853011782894462483608958030233753246318218337599462855585098261044810446215569662257588244355968343633631975743687014674488056174765905992227885667055427523310175805908058724790600009525260997245093248026858691671988126868509977829912255469942995459430798667179893159421595632974316510016057311335952910448615093441056287199429462855340332197393215670576235365241857969320476500369751688778621630000985272804873755940430762060257682840101821370611530448282437068837356486540148794248305239842667956863078488507148390015205089584317156637381979504838049638424492125968659205589662706702915529984711931901396382480773198346400504525205996467384436712691935381013655340033483783205983218748810378310092322286193394005377985564997844240547097592356427624599440252762849961429534570476184828802793727095837750678471105573063884529535711207434240320321367735660351070590578820243688801409754416697553317292394766350382270911646137589080435132883127851387800425365108671739307865693188869558625966233241884142893358041504975208994580434152687964913629213506925491780617563246943234342277123916647268606703730905212915704038266980753354222425375171642466180251899678342884712007052226485956099289270435228020760663936540286189624791456141743234304304760639678465897072579268198677089048548632218576771808475319595565549858458361183909550549354559016462786564695672554474519177800123841319170052592741049643879312538502615458033354687961411481006541757835116767935546329713154345314923593239234318321214591501014697077295190588757729052950047859412768956704834323507448007424109720199278697547599481225485536815388712007493428554533109553100457715634293483425954930975357881061022942575925651746069560281331324616050318640797913406830406844588763941546734160463833935732745274382374718064623602304040781512897770756272009650319359685407924071816666564768005649895591099265648126704828457987186858546144178485427209377823765742464468021303855392173934905080984876861946691597006093531316038669574359883485935956607303615417835053001264029685112623019505532338426964048210495397682913643890278298871834213845245776333783653429773101935111954973475904575983547200762853006000497277452245304560770436288986316412602807872106035762829135022530388987232301949168141661139639278013525289319783408963717637844531131818708517358485083418549712734796542315156582656580319507662738248549540348577868346543842198776698071663754491424697385438083486501687185393702765757351933489887423615098543822733306798717722331808782081335877454965006401260718878323290044813890367557532224062821047400055223885565346410287872262008548692318714454734720767610200085899843714984035164100400683391493992464498459989899903577916245754044901829956575077256198675593923232244332700486107574174868507338798683511524827574780793224954873895742346255357331373057333487339411991654064854885408520917701959511837421486519182812584147824431826255132667595365354256538798664550376187983288939084911414561486092124992355516969381130883722546633017540904009677222116502720374110923780138946379217073965390305807595153976585757989202150654636295739759751722916335313557534785728779380300225820308544457953559964980888907714170657923864372656033612527842950335711155076590785729962106023162482076555109243770244774413547495566554789091713055203511145120560715492865378516896523421706164240773253230568165389646511916131220829464440357187791923862556959710903718086020872712786913067081588709224466953307888782751393583624021803547758629646430737227615560813322834709779328083566398687608763808070257294574916982455614994818141700633822572657209283041788975947354828702350539854043864433888257983916960696194753061452732056685824646220367646355764682775214480568765449497343804960495090434285571109082306011157490789811209277533688395392161266910080235896860552223363849767088910541782385141801925913507649982143172593263599797054176471451204704435666346688345252294131688671149900205591868461425075352569702452593533453520203173350960707593255139631650348087957786935069440871521688385088936209200612415825647248934967655004742019948565947465312526926109102462187592252806514048154995695630058259675889403507877803496582452072326866483350219801464591770837619078354868224047297745633306508544840203385143014994418414204933394333554664298236311922517363560043450252715304873980750692065383163579564113451278275013734602741741222134769790038879750266679924515475964906178119841743970317342812189744605218346934695778828845516370731496805427090618445051484576525832484765661198599635868373944312644974141706468488335322577830892433350137886438176370243390653518753812593548484215046957572198986275995146397422148649385965566403670906598157603628760008723115058063696412886706444328413703349017603668392251010821972913391555555984701981109710367129871903760802750230873302730508826418691327722220800341181595380819464652017039797160260690509923054058721514313082366760469993251058035484403758587462777721870558039933488403035188025220173500700095018934028881859868351214044133065784512535493560909778907893203819547242550956360830635204174700662619991368130170356451223470436376422010824145672065223911143902705251938725064495988301364871827208998610952785971796340592434254200669637965394039505743676264588390963385123825776884743716221260235409933472337957626654248661440444565289318453212105503146999907119887821663280934484183285861047868416028835240252726303777347750023287759436918538280039442233274946015517125238823366516772774571841651268356319573302620718137950799904178872942500499549357696842316731789328136695553248409433482386557027259704332489520444669501202176308795179448703117492397540352755753110897193070085657837431213667219256103080725615527098676762375828825571722823426024796479609297176194688649773034430734648341591693982379105762898636349225528440756661079448146149399020961899208412406305257828569163134577426122860920435344412652509081275166708454942115169664170658260410665734614083814659843113816975258984887413467784240930700260827166739972987536355674675100971930545455102567976797064521103304830557387890906199682353929069876809308392841473786696601926806321915287566434506495959918459799657455879686445556877387599519737592677706280226087533548334664985494027295694832908588374381949537138038997804354349639362744384906852807131428108146204392596497974362423629996501491244352087965677717500336851335463881557292144700128349254236668305345660989590178621850984841776606739069143536362835592065922287870832435541909521702162728081528668955134797039309915114936126769162021949606163393905202030845634103448903052942835677212085335105991768767008814970123802826322844472453223203335533380093037607242464557472433832793343392446311079558312081356102758276516809101418818785170286616748911589593323025666888144607879052564505646515551629517813263774232332444677408462421704005881528445613594545668899767886098129655389450429510084958215425366313761102608637147848256458641553918778566708997085195517200610604621350024556994725970936567102898562697238904431080175117523841029284108138883874066707063206325013783477847070659620182781381195835164404658902457803763997533697500676824126428692048523564058137553393220470032583112561841338270630989123918465276450556718862184401897452144117678676548299758179086514531531611376619384329709467918426468634527760279893128185955297866275718381773016387183488362572249607717078926941293298682703807554792597418451149197200486180488935883158154651541665155763566419734999263077085502515999082697925231953683988296389812759041880608964259103473752360267212725984321873214191829741128447721337080667225328781678931100240830193994238990795669469735742520582437397420797669757320908325959342204813869605700563040434602950731083315969887048176911236336985717703093591531371429682992043850810281692324096519534014166208984122701822577356897991165826220442760766253146007324248457933214314450113748337865193083479247800545509860488957215606503144279588599142407721813756353859270285218143091131788956094464508800995425969282212024117780892761957661977900846747817187821963908899123862709193547000710242157016598501222557860923615911559725678957298953594714877315793983528196098692645480625278771625936348816719520767841013184526511133249428962678387742473504680350399358795741230640618539307832588241207350177653511399692008552255445646599685561279562782536868459714059258013446054845107550736869397070430209797901290626285592589994019590449342705290161728241270171389938824400402215675967251683241144870475126664654798938771219571709861785295531353246897712329768867671862864256061537857608195352402983892111936228477985111732748736747250313040916419876525947464077687209387587905874036687788750086773259680044692076153061803144765288979698720100243535505520274573925977255921473774273648366212468261018752766398436648191296250033247488464933571578814523761119601342480717984619203125856084541808017216564562690037471261844510795120288780670286605809854025636673673440004536466296609350058367516523445786108949148833059104663955766685094639294320656588586099170830219606140105314136983301634697461904532996015807923470055348538381804948140702871454138217407052683024222682555092880160191474465556323417307537534026408551720707175342406307943918388048538052918781452661114057680362425237717741093069071521732764045396839697061208195927765485059288221813924574364149312312480177946523382028004200785709102773187296186710000110996014812644123643313828514271464016041740524295354744085699478971081731445844471910643518243080839244513268355712803791631212234933013883977287803846352750751652234579918268958457944287532421962696766509796761941866069741479017032146914380045538086481266780983745402221144845915191474493026256627086368429198194053124971060699565585180987402311034872985802260385468649854432089592610646305731189298390573654358802905165897088450746833441585647833644427075224516903601220428508853239310412463063364167596607458836863571207623889789656921092069011959982703907148985419626355917741518589102871517340366219691280032767755521715480415111326838327435515354941767890720379233603651091223122877305184485628003595417358826963724362058437132459737878551879812372774244788598828380738155108564250939851277659836493233272917365297829490044039582468313955756561027768959035124395551113255390168026354558925953404180943735011496465420602466589356944950939757950523780235987366594707687726798040804962547539571508747211658762650968567268957649305101580524217959416350529432127345213719211257956132269016059565607736810838308141801662914788754040262294336987110606586660104100464988770543221127181011165925521998153528067668975757413790305696389957859434843967003929982399394869130942888364237191401566052985230504756349518745147168171338979403805280610375059496327290238534899620801229206500183546100879758783297147467834205962145158431227540642758712878730455552699690581674982775684663246794309885537912442682117332286439102384403890697017337110884944617005873510464154278408532396225084389539680931486108326620180156929098028547120574814936468695825614556270552034564597137235581522456079059453754038760436398945371019198506519451401356538795878639190420274171803167798576588395836460413566966904156049749679446153687134563209507858430275124835602165099395680228060210226528263599332801766587632084854296083458157306012172894658372885281776308287097044173149531240959733702764357236304522932583362579650134710825938319897852962092524694278668886305539856758569337996313497136117091193143168349796611330885100397342891029753461622962866311018403669327808474321489978932747393161177316049789767459212976730277177852018371573180874248500117316343584485376982798528440785459143270132259243564058615516774764298240192183182933423496068587174670292669700082747572383115605176194317570566699911056589014369525662962070242745858374453694359270475194537299813132225187911421933565357797816302132436958219922900191899396740283481604633547457364589882448635831669857328173799443302048030114571658263389267268553673820877955102560655416558229538603040293248194786520068518076580297415575867439671325656213801757189915719677421155413411252356554859780410140109105564933029962653424858480039002294596388526114075614231033344214095005348708902621159518857983290538021452826933062151812159207305478491869846168728729361458903601309100610608603256793126707258765466989680902009730464376975008743562970099328663423045883627025497713265647787433249526515315359592981333902732170697360985147944610507507288774496858982658761183444418849554316092146090024573595365556150670438420927199420798082308144861342020806615933196735274924304161684073594566922797231828361978867402741839233620270482112137668998323168322982815029958683279282733626784098132424363108665504066542179348119803502451864216801108281145747538016178450118377424571785353002041671999676576445142219597650565127028789489887852167851563266478984055624700041567321497881613944473789485520821641771883514070222405188320922762925098007586063898399605202084077938045066682005364437676498803134936824849424720554649693623946259951099036215916508953307524932732515104039572812116192250100748025662802277726968796530059844549599623213174048584625335213188609711336784278221595226451255704049537915259258229665136003822500866626302859714528684474691753966296297858198126178265832145415102324593809323324557867704065794079440226574564130693008397103846453844018202781713595339560256177119739195329723385568091896869701177030617203253728417038862804250639579298506107090710775239790066824642030331374476655983839139082496219358769134608107819182879598460705579638053194535708115991228051732285061652889014951931229843530151320840368236924833948017948216434464801825210755070084853326975689976838073248612758786140418641970660684606158776419956761963831230741202210128450332952846179153040550245634956613043725707146156348596919008883197912677162141933505428639091149251197972056821328167861547205938281951367441894768911373026899414316885182497539591709077156583918823866598907020801504558728233532173595208220541655477979340976191235256442854745923917893700139196683257948356948190511858607220040703305631534940825855491784409913035701108523328766091003289148065819584847637094112304949293524439057165201515253990211478094601531997466367958450559861651441505534825327181547432059141768365868404474108875561007651260720143851024466682963500108572453294400358628995353299740360670152707837228185638480379130189517114052330611861733534464303361181739711132763493502098233719526194312065441748029595394236064659145476277758859116387992820549578016614094938843797088476031388326643843400268931579859695156094752699643310376813625723962420936348401389024582564186435649116265774269575215834347811573419554670541751493375886611818363320542227444610688461211819163191167549308910633385388894479373551388099939066201765209837455440139123525468348734177659280050961261783864966325340202504496588445915542724520002192377547550400226418621652035947960928897080460948797475763316364128553895738561118989399532334645761615856400754405611341913524564866314745705536628424508271843656578582771796919524115065495737837062167920578613449333707114671634433146887841840893056215258724140548836895113175445768186445241639298625231207642542363670094668208735026176567804067092788095948996175673168835934812260416982770243948862430294701450612335479125742555799673592886847589221105874253127272829163478975409094593214475802000496126920591366012460832686441157925699678809579816060212886630860620120378841546692561142307989858880546480094602070589324663319741338336481516227677086612616288652685616630671321055808295757191655522417200719283706124345861840700504362793909296498501073694768768008388446900717708446033813679581804922211051105148795093935244762374405508846706685763142016442533378812405409237987031669355972342043678580260359548851451026475034802594539525916173344643547888858364735869660302610124536541172329042352026784571769795088604929626790607605150572528352523015160134614458501494571032395888237843376139776528708845731878912295063857801879797547359727226840168402118889498118001924414194017192469303643918676810682050724639913337126766664339661170812717360537149173377628753515561065596971866572554738133871141000985343283665331171745954656971567840315328732267508048793801745287551219454398816674882815893522966983007325852802644942628237099261474812394407735231123208550180200691225057498553729070801569992579406745455198921938434158000880579294297219587537153310233304519066858830556446783882699915232973349015229423977072555663960343609412877451767835349347800909694123087074845996329393974501751704887141494680066829224220542432969299212006818892136290492391802800414647330561038793420930129116933128652797576551763547898465484485621669261046285585578968776447640489615654304489333419109708546121039153496959686072994103834500911090136131209611318765808905825099429310533023920060638006879505020056087902531520106896234847259442563461761571879182103058633875880144085537000905462583820518797382506856595344517953441750474794236005353487329623959102720127669577927562090069208767571342975423221257902125702730344124819275863884879623255751168666416694805397548385957910109781317740881341950441984296284161662248208752843741618891991185343602378623459159958109593747757963073496718450674667263790008799272514386995620683683085875249059487087172748703580254225245302202207407795638275549908728907225436426126543153483408551208314053252644074396453930136516166224702566160016655911734688569182129379050805266739652469108893801112388950127202087040622655927596353300123799444698296401635524976342267234908791961750886399647019534523297998127650807261801802595306725670986362628767656679893572478756228136413739896007290458296013374956522472541288658742702453741603575156999739215237232540057104828892274907654900255161867025460048690251345052650419779442930659796824470269211269395622830259547980418791971856052297799202941051698047147345535961803983701071014620318447003984267127927944945091704164479122092401904999223048745796837170494725843219765928559368995535018829791271679729067439925750167252291216441459032318241459423517337085751375727217945002640332247819220284346669978815462450907387667464838814709560761186190388795440610912426041179186988886595847143261135334672258501208690919011112736515122253576474186988996316800138356357706776277260268327518900993641784928585124079809027252765189525649814453127485996677396152560944807873477568821580577911483934218114503340154343692871513303901548420444746733613331280583942070013377610629773860443819976581081331961601084603710487046821750838628430275083388177760468086348889539255529270326757840873303810142658784341960807395454390417471254883117246641992435795023649369461264090629629513802279994995255010069799333833753184036803599493360887596824674535299806780281403797728625548927305624880522506846086526136097030240910690548928903123551574023922240299441716476618259325617900285784335644558146035196726891902975255578668624631999843111923280074863863454633084412319638351194220755108103516833800858252155771230431360192627971559852924000927447936526369221151019516764263566637961170655775113745097972674839720593772635224389664727882106474139685778621238320816415366012769660305560856564942105313054051756246516283867535151048006352907743077421219914011007557295282130700372050248264941016980460416244549071586611521306163145181412775766617635793518727572250645049942440150299647198971308046233585802659210489452471748753333229526304091304050978503609203520076224705823755719899544062583466767897162895811397710710321519734020932381505687401061174964720796251618546173886009881632641344333653295998361121087002387925586662612919653991666685436188299299070349577240657770532775800374402029442026757142272903100952888670912262572975176054757380855897316813224554138654479576312091859955843893820650405486089707411750427730219886650481648756034608470840527187624562166562382058129639487296112863617146441550420311178292299085734149351526505019489286128109603218244611414563597300257742067677169414951775420693350684297453565225189119930981782270502892034440048109307663459322245172862244613354836200177544197970343422202787352571158314958183383879713545996689635048331088565270679602553452883690559096962385827268631360166274727096006522976665123995100903297845505553003124447364808951944383308265473217699545975344550893561890787463489423189061148872292718094008091427574277359208548877428730383939981524102433702370366012373529025588923893999280228584472730758193682777586982504530435208085431836903080014719462439971695240846093271601803007685530761665067269071137743492651509232828458363195419314345971276958825598547466676479159030328681134509273818839696336205699705388283583834469192516637404998966962682551706278858082929720883675381448359257847650030375302907474006939378609709924144929899777968745176131178821969207164442260377067621592164269393281948454902128020945918507893258196500754690195391713741232813850610474236489696820736289488661808169742600655256494405919143304747082508534825901804893897905388471088299358346523809408349118889418533743261974279833055557938755641378697244462560985348108927107089727113689270075378452040409694062419776947621646514704298211670464181401493776265123744304708821844051362590984147003404167177838377760132937192889223496898127605689578695574870401014896199913502626847543230705371809628719679700865489687406407504017913791187288234949194687490931267767459065454461131761188571468083864356773830040708889803357647609500611076894930269437618648649375666816142021032073266558549690741278029223456476852717741955195299643041733556224885556552237219747755188547424765036610540929219551216746119443781931580987784187414229998857894713002236456074993009269151068523841841970690255243862222617348125081234775614975172622978230761550893932456165917476753807926965650858089784701539996472932777069334947004536033288564417133787611349484013579449925851157643845811753232218309350315388198077511935842971772121809742734790931964775246036256874357447478772114043373873247125607712694376871222138134337716817538247860307133597005350300116728493928057630359287532182139435170816512917306142068981231704662233011749099818958891592825783861196185460361589823089463189289375884517413738634384317652543412805907363011049007079635902550562857848360393751915202556480165656387918826003640500840442635048750824554209549632519303243042076841959324715024907858917968639980744780282246702338518312120997947198056875955663454319193506521858608787315792784857624075789341912806079569116919645359743886271575734057990028306545725299498551678200199683540029080245381567890297916588016424018369352519634208043261692924048768394860871805346120986367996270334412428849739225760220418575516174079995273009049168447876383395663678923549030146748368283788238379953388978596501332006690544712165194025443730293007823915067655285773850222519588548330666253379422874726151674150025608210444235168562093867424480782898047827873132487207819116354189557085012639985684071268437459692165622509763332760432156165484560638281170266240573718980203277395109602760692906506064358178420431134924720660892229475192603166688182374667409638723863436114876555228136832261157493118744437602960634062497695762697210837233159447349716844424052744957552094232318488444722468941460118013849942199325464277748788629148904192024401608132935032341866833829956648144628674637983100427069679883759557464755575805533838555306590769802715127564576094964453887648902389912420356672262185485845024863859284030886029417022611584813328836806509959609960660013272706190696954922419014437688031309243184620520748080667691234619122518117316730609807856422429002307263779052380954470543646852070582857040097004733231437901509787527315104691877424052523062215380001477814830764545929690337376736487362130417679382757013845628598372666288648986604333901611087212173238041325277521352757029511253597398283566638211937781123637739660753025545133900189220806045764623799395879445593123229353335013112792340133111175938912309449660610154003086583829702074817640432482466489686318000723776675456736273166601917439864938070914189661808856636047338600575193854600924466679633506261860283460496045049201217021436432185716859517864780220642407610796920773523977115373058185729721007586388160692825259640012628309040672118110677933527203673075398117057000352320407636230636248499596844463508688341781485022999895502468373693560984050066506333203698332623873313035833056327908054092070776573450275780527516162899318903904441546417899786980049904662768257993824397357024723139261678597885884073381300797166549521959702077709963148142118046119496908539038164981211403797155112614250591768146711702142623279937082998536331106444213393692301540136755532106063432779184640778368384672075204936647651673832424241599059723383408940985559420140128928358437514677654511091685698678141319945833371458146187299562098819515320394194080965020016351163631573829972503891122041305108957459029074160900457739715824885606830750526080661129923479812968204407871907913380715910157478530423836379295961341909645212333059631434941738162379609562733795313333770106583867744729564505957157352885311642796909505139876367199845319567348723749696463987469809830312089346330132442734524041484214306606595112403330635989762994824096393053150310906324380092736334129982941079019969988107599909509497359502058820544573466157221180455569321742996588056532716736274402236716680203363304049922891841693134263150032068950335374221940738404966157915783521545432616430518329679263591903649809330090615989142836569298954183036396156135837485709686387018351620900041794412949767543203333571826934574442836848060754206086179364590327256163956877564719872884366065782991451653409858800992678082506575177020840799592925218309124822504466836270901967160911005509448218753966784773749539657459788129354022294893107682142040498647451437989716399808961972140860012102532664700279038220869770282026150137282102516175412718302191980768052680877662494283973818421945210467091496097640020020108141254435021647810944964498512822536122741440423281689383877555300163242445147477689508260703749387003673559416346923792222926448048133971828144299953469381043344373985425359685052027655121645891933093205173986741273567821533785437096059042755248266980244468160109874075394763047422764397925121902663619359456972366245214507638715091848464669434158621107566381842953363735862022662226472683784202174122759349395034828413654788532396507974211617388478893737108769045492313327688890561938504026516369034538821374765414284740626705689396988476534693101370252724430861135488508644030369273233844066995438083274764464699690811061524031869506224375766516618253768304274907023806856542332106497188888598276966600534790179093958463513627039607115956454692585620900985203072913207310849404668387664018860835978656357762390213637284148296069105764884709970681503872539762491798986659514632057180446400187227510124001753116940782366080996547435242795070657949044038638501882872391404559599822479219252620242163536685976316227695421414258350271231881755948066862687284737158212424700571413572353088631913339904710848034881908478848931238877294679568237501912717882474778012975653123246988592094313452746573057343035454541385081602265974316835485309744260361676787915862664886172178591481772022108646157436507150831557536485897893127645838971115728022836480230298230596338027440161897796420268321737198229454245565765329450047155217657803752077248945638661939564424655126761145264135010753625357816947042762606662078265928722852583972291698125940062013174425843721746016396466526368999748170133052568367719138551808506313582426784449541653749555698863899692401631660139412519932478166085074618289756640149475827322016458390389024264329301566863144007061665633410903525457862604746841960659703680260467679597170528234827691307107136474230339449030079094597874852509012929373845291844724877046093408671582922119612658443676505722600424526147859600414446732573059839738797428579612694960105904177573075539687440271332618400281546942341230638630559655711908463042628611853361329872093619113516162804212009610757175775040179318968131089606147707907920678597451886545959735335894136341981921255722472531804631386446304996018385091955176136868683226196661428641552807922325393173381410953425403642698542934949971680334912911608022263603810045938072598219367258380818476317056125927459740542618972156877017386794513116512152948461538112634160061527483725633348923531035734508068295740933472982485387811057065332179475331870818949521316358294693264222884864975236348480978190739840523554152260526085952870339065325348845339397888026029224053813573189631485822954099234991525068593713314928254135767278253031412951643407529501384663828149769437719625361247407794957901053537922622575363561861786579852443356407138927455421340633339081110708160663204303088293581580363645504541706547304808977395297425282133391413658600266472998617406866579746605719355836756007977507837280263303675611461077560446280547017493248169257559810036939584063288891915141297516345554913685444419134591213177671171852651880066933662440515801737861576281225292760869742690515267602041180842400821250327879597510183301593246155972370480701478304443245086931449329569748831261687381703507024498682205576710315977744106529355170196256421341998740779873410952939395962191648076243031508891879170282168638787360028431606197870718542972995121046457346980786169920654983893415695039358964371540426544834397127472905332182874149866802833651987837829800692421364929977344218519480630153779985808932864370176915739506607959858057472608698181148403718594191752840054486973885460486283375294745916660106890036259996981281578202811723542537762664754365592561632848483287436260683192724528779995858350330985150446106360149584173551753846537675581259683530877815197740838771557836118692257963664842995458336662048729420712705048123552056508818024674645876502598358628286678021067146130774964344008779784450617215755462795260915809626516197105791982317457850479303438512079768656107468783517702914451102937947384860153697172964190772356836646249140145915577173430946979442631809676264262768305019499062791995885014880279105787597572133560460181292679203061796459496253164527930796399329829738602544964720143693245789419060216016061826403727433821508794597389573429200811477179110627516050805381190810986269695458154471464142742034750810204696899947246902955443614152713359500656695781399827187230529937154933189418993217245217282661666950935921125147730282719941475576398825383296884684375530830168513723094103820358458754293155485533027879392771864477622293291500464506841745000275119538112667481799381840867254805683511795362010834463616517657155284542544278709753154156634652839997116693711080332029964025301740795494943380104745888743991725385819230629396076071283373231597783107552247057927773743302890129478315520450036238247884793817877084848677576758560140160185027818421787430973924655850965953792104960584864210000781025957942809180671964656530859783737258832234440117980181357041846474949434274564751629666073909106040045523984427246454214996133036946655489980063519674767038063814738250071410787211743302765867114833194476536892707714763505941761415441471348563176486968270766029843736232894771419467487386047440579502118016034256574349314269486926269125566897396865236499102790672873986643133198466896625159285457188758502567162853218958382121689882611423873088416127413222676827260105655133039537718236199844966860226131435205461338807389486586926963104330879119093459828640875409698255933441929487001451737412058997001279091316415548391791764358292361986891626256389534697204235553450345914633795961912135756143340918318934172640602532574601398949489821029347663451963616696491312061166270369064661804080109604024351307697073634464720510073807175015146845404762980237124493301216955779590064243600956914487619476381093829845669637294348281035626121233702205094605505586451898467820576044135677728108681314787470090756057097302764739364114638029877040503762780445579109203644154595792360358647994745005136524025667526092975988550238060847722277376551800950065047237782201723714399508773745094532930344862693224145776276706690014861323127805391388788597080116075462472883092298613551293602693202343817353206639768121234781118031912048065403289971835130219605574320553834696157826603220300837861348162308409379394297034327346381670360517294204994486470699613330436607253260707988609985478635568180604205795825902946960166255074765573074745184104760515195851653137183059957307922658703402295578871714928211042788289528520237482684410454306279611200814915528851636370535856129275932474735659634409222007386156262835745141093841414125008491240115090247530517301906965458009133838161823983158104862395270091208064025014404275661925916781444798973361948195018119262467805555494528642943485665275402427420551823865682707323735070706875074789361858076885403059933386164109266981954563361975506127233162878064944048379857793557724581703224288085218249530909644760863694496940682421690269418914575757272707390720761954910339981279965328978000275929204380626139346352886955355875928710696314640765196956287679201734623335519415146851838549386944084993449464641735781393480217950621008710289457521700434250120823072841014716489984187656903303545770595195624323084453721061052415172872697316368785464261290355610750140247762728793938083245714622596849673025627813738369589041030855635844242744778565512728399780139941310613484609273650917108641081967516905671514747539196393826941498376835001784300189330999358446633361462625186324130057347124758571423243620473554030429976050681894796823962803172637561702279594083862704458323637327763804538492015582426533227868329072357409828193036083767359152851977123823275684670595358294921145760258207232108603918453275821640782769101714855287684494147674820907466983376866568288621259240417395338288506745078846825329351674817560864866011564716358536523039789141457506342419929379943670703192946142789136213224915314856025608146040152019867647131527170138470340196169771716495468475450218664462443308078163924649868347140831484654999689160383019567888351739256337771804361060995736767067854385879846210191369178247016732374207974584396861207052517528897721905870405534806917086824057867739806903986971852884536263109689939923470727588679534846483620473050770661353930204906686837989106665038054803439738138652647132499039401017324077763875240923641629861777734129268759545529513593077108178176343853656122748258361451302052262396304373970860691321905345919230725178447967672283119699589080441099939877415006396068732992543018182135664337393912201498920040553619664862567058684812078625781192693363952953460060397762733274408181041542159621211431554211724019162508740072720625686692495283968677838052036578997487592256753227298550049589800254725560986664051714465123473561048932380553283076480241967784152163842651638501197279540739545221335047503340264871483411792982824951561799860677378872111977893108135675943576728972996006832258576608023842441149608396042046004548111553885724527626058464336031547543111882593042950098064747535439518941217368090627556319828847120061551442088757882841632891484468025571976811032664214201478712309557739019369997708613423081594478834034844891898696606486496210595843858013369524676938611357066584251198901546554382163046627178312344964383245015812169886187651586407117321362723935936768286610103938622646347930819979950452529880629050779173895679867538618095488824328142409388837776072442642183454632707700897513053359754598258331714844326535742467976306545275529379386984723485400920386601863205285742796119344480746416122466422998225021409959457178948281814211424446745157588797525837991893721133251438600734961605180319337006724887213923984648392266939023151547792793378676635424766393654504690629699672859656096013944436547041971115740786766952605560161868477652253376896088857999050236086968380198047342551148673670174662542702276124380962088417128534206729673035086697259469533154497901066487359879824388244535771262824828822666209611360016855992550550297409262784441432576799605125504236001031751655692525261127846492405820196975606665660770860624962023434133004836119433185115816750359910658712693253742924529944487771893251998652755251244332754061481852834782449988133890420570516369876347157622378871042956168057709363243583233284723259639393126541465124000814321867495114721115855483952451057768147064591429910748225436498513316481058688943071182719745213764748529604292119761310054294258127283753712016861885933195139245246058091205070726972762014667343511005149545550755201392293334334392372773967246295655321862496910188261600036530525012066496697134157122594924581283484087794657405625187168407586712720522664506102465446494010790855410426144905318137333364473701224453328486005574264698653849933936919695447949842736920361827782494122714688717956861870523007706921917697783261772385676875795162193427368634799317252028839475156645635328555467986585189892930455552467044576650094196859126405906522337628760947517380310787380522559466588892361024741973710912183680480877333347720661141065995882014291261601011398459476268065885220490285819045008169348458743134845554319739487049406586759130991975215250954864226579606085980599169009391239349787522329260499895605371354948441370444482777570694997594966762694669702331640009237319315690196115934440001334006412203343538368068006584281977857316058455243228047745707100438003898979902195107489662216611378071888238538555580302175099760505962424540436938492014247558714927176644613518954180051562883349320517326223132091874711874305330141216099976331285852567572124940012954735707246527195834386153069039517664107958046216524432992346996611127108266249988104977180464613965610089161194328392817976331073814450090704233160301940499082724599981783806233546614400651668615096716518078028245751498559855875510511757618821326691432998564431768951410427046417491329067803204087668441877415260907933809777807339381271620953248139560775282343895143695505396785061336286777794847309195184794331789893848590191185774441235443855762970122180736281798168384067924324836427639673902004192013488354346110281117494807249007481445542368124366343333413288590549887982637568025889371722867547909307102481042612418941696342975877989619382535197405213146091285619143373262726742083868730115286942421410238037405140127372904951984163045060896099381358286295389697931675382307756489619103127801451931169460217256916985848218547159723676058306939139856286679972914625863742056420392142307578085684729767874100731857931620556936295405183930225271985795132283181883655013908401188996347399046817706371177081577536221134519097091961228645218769755095358881405885570040783958415517952036535221197242314609551536915714753588844774929096225156619674417111711714751972951866851573900907688649628890562555465026295562906436145154585073547254031518337635059217798906970014331967176334973264846226415015470148652416581400927604842752319406383603261773422056061419468041985531820177523459589374770725283540060406758623225220313138805738038353575120618023801880223434598696763985011522298736358741120424828847249444728723598666962518428102063442530811429424342903789904829654297227820795529318025163044783892602077320404654578007375724185317223972059571095660255202186448714785219981708740689962319414048481544137364575075294823528695833372600289406715097334698035681621540532184806647616534733876250148413352911827242395653619098944654428551197608100520399597003272364822224849925493668503954412407119765986592212523361195131934860545583865677779120582174020951706477841232933947592818534908749806310703072778301066532005384610746625105243925692562894790360479100917710189277536366626051466516491803623004842237373942165635089970673831402812106809669809869477190653167997218440502751845261915922902995784192034430355868756655947698278985809275823506398721095591239708172331062062791578501895596456070804371642849955184371341255024454586959312269036058270961104091614454642961080311849586946567472350466151729550247054322322913122817044883753361190834082921777249240875841894391814015597792455109927790637563983213396095907704341735554254790093785621523859364322020698122569262134625021829587954278499783369706132987605391227920696940999547818262589685436434942037487348364970967828426475407824244671466202484251423439726050608979110038578500785966304271804106628308656395045985029231926678369258524325605421609772967290696675026425256612062768367073490625056541262119946234991796233252676614468871102238939963495637955118769736443169711263653611810530835699540033510524002261256755522727584650204318815268372099073041367596616010870791981674927059650960403021506338764132152164503437848166868267800485542875198281970392804245390108285231666272208172573883834052906033081111079664218542905160279811984363340843014401957574218087543645523309309354273009681620308227539905319463039845475637526468089284436526336071203238179849760395677132843318497919754471697927014343060065527051939986457005813175763852892417642208556073715982811551385786665637128924236594483676366897858454739860701262634038925336586723903340798155354639856030132769005399138617708811918247127603507240674073824705520723084405040474228426438612900869540719416711134755116555676390070749457519955807690780150049097128422690046205709796285165461317309577808561620052985476948150664218292496252413816920301261183728547640961186433873895943867087285362680916176936390634886123367776311388461093030485278990326000476388351610298312073073147163778419541936614051442978659278605069441999990321806516469605603149862182646084255126373225347046678899289407245709089931250341370335407909458807611547204363189578983979377797079471846236223540140713669287569040313831249755718756846266878321526812910255289900479065447486307954734144318801358279625647014218337246620895382507280008564268545290366237144499513501612471787779483943788900849948995644354523384861536245395149600073677476984368621723141588921637172968867064926805740417692969310789264344033762685223733794081821551316223571861649393447517470731146646412897015221306583038172337917294717330484954867836562249213790846079722990988544061545366076901270666304647917199086684043820710177208649894197036548168379769216140937249923530746170586741905122268236946140990686575477559627380520250671532519311290905968325117701910201021562157470225161555502629339664301072667912834078048250079724862269138284433007401393390481823955376037708628404415876632561374874399593468405111816338754647167916750366233929311816631350930332052983856127987101200744211204779968028078957849332406283231697606144410070572623691984279542799617955437419057320462954870573481230649539929027345973511761953967051720580724463843874005173924320738983098389989678193642365366008799210299275151699719485328741252481026484587804736986710889768653960475747869211466941464376238095236186496420340039668465438524824747323694031185961671314026344482559758670528413053375548991820443692546231851071110935794446908829426560635116174997055569298081314971233692520367166438731983816528595524979146407336691406199132931426758713629794074478422272962298564096743268061281930219530945777024619993117210469880377243598135743238557062816849807441816998498852187632329518946786540999779902063188773874283668556481391552846928530794339780226907597079062527452162392132957631309828538494109003796092992928575323749851007619936546399919280441740236037929468583454656711909183545034409959252052918355677706458476565841523728852764259157121847078236693056511566239244080648787757038523695700153588875499538138220848280567062341162739764577180258156709315248628704100414550726507000880322786631759800400550195312214397726776339683988573949961217063094060223241831349273626359543090031153854629768139240046618228171890494224083937751668831274969255189061536251994854658185740398386184404765166815276414816237810775092090790107322572216929283894385835689002916904128886024614467036132062334852353470850023824150521559734244430438567544479160786965035217553457256039332385946935980050065445593161733211315154640839982094056362321076584502767023209033627315260734954201426590843979654520635480629432825004667455676728128389358187274717929645260635053421576620177953502553557260499362110404086206645624072156176013109473538317857364491257690595189779044147500116743983846580748102574236127372339361925999369813728650475637871168631447593497514599333305484293414409265416697328424125609937832361360289226950744687093034485527216059368310853294247811308417736123350549005092961111323698778219316232217479374728823991384596358530800029355457891129048014861458414411221513219285724450461379923970187748742530517499265992286218304335951385177911418821821739318577798606456965530510830817888000915657585697833635837951078148142342768015855884885682702312676623374232373437966895248858109335282142929557727880022088775394945403307095577396734245995684444082912903190164628115252361954522301271246460111476132845344385961401570707677306610587616564065029611044946514877585450063665330627348963490476155275789460725921643907456306125244213170798050363434593166158931380631536317825560280401600613275432374597489807119741185276300004285248446135537490947222766567659459784179276824095322061451046388878120332393153968208038448934256374771674922659104852137926598144522611820157948770753047943235037352509439692421886694380751806971356754065870758673415161590441116281287811379750910899528796351191287746851551236656351083084248340195119281846293459962285107845992618066537848557321307876379488013128731020955527597061869686164287094725925615103539792024608089497813440968525318456565486674195035861121440639352329670059726011085281916387671935641333461907394374423541461681116039100937356176124938823834062114132754654955174256130587090416424719353453551496214174616630139186566510660777404168925112312213085345089679211058299462271548272954933953893769203674075322822557252937382426689881161228909727167252289394677799974809409125694779956148443870307791493506143974755984282131143188009809291223244908393465135835473109203875217424306521084282596467257466938600878197355537221973608845720112065057017248807937759424119277914359186482516204963721391844608988028824451005266597837667644806005582937294395283189664779630100956005351238876686969631002360573706695341035589784929225027613458259170941572517021790309107857745873677201838228221770220191161018822874449606470911074584395445592564310971061766928276134660189111810565260241688472054234429716605844538844765498413289794300025145094279826380014145751737711376809187295730081187751141979045442770391952369028117495420073168981797054636435456380637998374593750208970554593749051758063832729101294731093237327290689154881683896105772593690832966577387877020157674491377403895055765870743578370437897765570759084184644570709161176211354297457525594864038999657052660163331162466833949883744473931332601188537906292920992983544572294010451875892728816093313458446441075071744340068489724336310798791739706791362534776772844242545727299782595973581182261027829080333965409576393338543585736898865445760264277992066550613520594932211530231592848066773619933490101124967027663676632259301737130180845626575426108102200763903589120005165626422847274890639908434002926320008770363310395376474278454503613639796934151169189865455901536747596487884408127122365807117372426357712210092271903789112701121352905234173415643614840094315347802217528377008946140050682089625714464606758642136087407275754294445353071785664179012895834067751472870667017418976750642671319694010743938495967977003504806964064853449430017272163557353126384936692903715015873756009910947742586490462510074747130418853156493943194034797030162495921945596628537175112936414660404782251151701654123436389088447900897485779865069921047323361652521144470314974936473740510226549467959714612031300303233671358638571282455735578780645446867419235799882127939669878087257608292279977939436070189506372774476347168532223342646046591259327937520475292911039723045192808301331760062565206059568308334638141849635599245551218898807979742288651967709634980053615164226851339843804099096603764832208168437394921969395382308103127695249800786469438027698852615317876629465841242588207050506067547543556337070713404737949170688848147144842612045509273276895664228368173966706407712759527274979613351418031991525706277183131863905652025179236442603002968080605074277094551021086466247895001705932890903683497203127787982587401757443168666665330649213690897703725383346588849810282611191095876853216310481556899949506367617853683026866828497449807356958369226698853267393781901248191485562721509651541126128541628781039427418492354895614514199594793392316849697371613529347278028182878814611787552339011919881540626713264842679324171345329019880476353441315417280515279004631749096948058146917881120976652883962811821044849255741491073820129812074163889744888377448305550908999036881654586163143465808555983247065079587667578451438217687429601639824480731098831111522409754477722754415057550535588682784762066775234107976411369281464477442845402642411678530697981311475240907483189217507497736767604652225459324583595754526911571664641840241319495870663710564242428316629094774061798959331143262288828351303191708259011050347661699441225119820435546068729309711743178700584070300475318310272861673692335677005923971537433236232237117342778348596385060354695768975613412420339135182535254889011585652696328379566261033715033732218623444430216058298013903187594767745522518205152072631701521758488172721361964411199722457624587099367631417121285104655327074552141411602447198861943217540312188945438262733472308814533897017784005334939445921901296121230272957337350833116435785186853395480705741605277704282846412341613776778358678277905522886165078329248535341129146814097002159167208715169379713262529757179518239535503159087210462340085006290789578637997191461339116530608574184719615696537613653398285006970024983305601667363170716148440292332512041457046361956660034036360644071204517726626050389654647535475850048748527147868339136613376610097298032356071623132299422176050079942155466290745659243024686065272146485801680468775574122285347670828563236294586395273257850320047834630851108351586827209138199489340705063538799418614199737665906206672070387660716674440823498066356976579240209846687182684446146952622629102841885383544689329823923427301124437578365798065822854225889150417423528843755952684021269933742371433653170828073691716592366859788742996039721966055604587075891662241010695888591817125150750457953356102090548002352195855952501564663418315676678172445382978508985710947835375772763557825922787419455774608533519676791103504284941892835228768923842688974104576906813495628172910129439824556778064646704043267808728161012936379452334374380276398241058117395761580045471502819811330739728962845617012046469003240183927095472142138410579764672802416061022674206455015512805147884376083502264251829448531704893672847127960923310954343294560647430139388756249761615514167515896079206637725591582792195357070960216000693616845132482329256460743043521380501697111844223628828188968740737939387548916613360938037987597627136421936415921517927318713666089971813667231268795058610114209268593885584131647046020959325094400346435852746167249935556177169549974226759774359135411240614763571136413873947306238856448546199444473098183524692976550511174602210842104830617636011870447023496720994838637859878990928218250260310182432496695767043422114332514868189519936937244870816461277983156366044376702111722495843709775163468808318357128839160991603317400269938386545801168539261775340041503721509671368930797123307652464419693893256468824807741785911718965041193484495844248218585738382025581919906944175962156902626371657500742922231330376971534743102084716914953743332036293200099596784068546268800643247005196845203109433536839420327970775516489153783373184406003582806042667975782354084103921932645735412051910361063192379778721733442648074947987479013944325617251240003342505761454764077718314509180197422705339850320988235091940210916800715451293743690115256386691406838369216477637751416709193050120045697507214988114105403799834776714463726260455900997787103773626832211604643079398651811633077307239789021203075204044098583946528224625643227047193840553172583743221568661025567437685702457260429615523348206550229216574228225664067222511681146988835846117839910809377364118621167020664251390692082246560154119543690711050047886841945477303939224311548631852783151212486996141159946927253204632380468750985126536730775199551513791568423429558162752035010007230470230440191444029256796736705987190264011262901035239273373963090667768238268702250460888236467084941782456773543693010911165161130340551997120278802887942611680626009570588356117119971931029080003024573812665992818684520929938609117046824213724436580099803716577963975946518665388259398485513205067427883487482659699406992601382780685570073263285003320701478406030274861693313459966602172087267522859977673824303132850418547497326585233629639673825006726437289476234635952214447823016218623546097044959525991443198809949179129190018218502673488188633154840057873286257589804878173356040765283913520332725397318880984898756851139631044722133601519028695366595415064247214432716587548460350862649969290856330917018785763944437091921942542524441627202472483350192034252046219989757998170742729245886004258978538947395693130938504169427607584463030750974022268236165943222125935917166240819505137091894360732483657038354359277813978135743179992815253383024389036283090479162122811599884388215905013712027405536511609705394170130153532721464328698364306273000409232599618074093761871600969462819777212935769421930745813014481785952930782254260699264870567279016004466359950001161442536991863908323414106385332514377473764540846733776701365407757722265854467913509474717394564854201552105069223977260246755128436560151623511954642060085212744681421705990530059297273500278873963038826863211925419471387168316318808891077488926579343862726843767767039637533573566975557666937397034345565203367490558585441014532975404113158134268335750368313188669056587653507521787978987169758661526772887985474078980994490172257362713399381454656135485744389497194670403528527962636087092663627173906281764716012076416255445351870670268964266529241496700171187676852861260743853848306451618613203860078606346844182114257763790093591332000530438266040987046791867614802867892254322739252746439444728738934739787663949092735411298839673678631969531977690704176697274137137068299422655837521296764154242918145032721444381619236783691186807493941981251970576037918815143081332619108571813037909206164318367994862297860411107806960098677760450662079249163305127896349257788973226281944333223001246712347026218326317831044197026817119678785990425659787766728941596239346388004435672733859150672170678289766333431249844053784091175870005317534198962749205993801158687935187467331399391801420193309047535061820445725018242088132739392625616475271483764024073610842525701334850667906676305292115568772597353963002710028558516645430673846474241531442843181968329485032722145321265601689712043399260533151346781705722001790153843494502859730656119093307504721388444442984325205359087534952104204684374192128363234138799075561909006787345805087982056790029335727060415885663911588364255288895071102715861008927373195005525839390091673246310187652072237121349767772507995811842757826388259088644849175534364556797940766799589821834958861765737606736968537283924435220994089200941168348317723762355045966901078008486274600967207862341968970388721612993459824138544172733319931149135356567038083071128202771305502534015418337445019776709339469889280863581940879063536777834716802064138742992624711240752131566764725948803686754891362801070544429584935179535867434232698419878175591221392019215995701135933808343563077771773172554093460816940357247039208271728652946756652838374325623110066306869856579411990386713547506195494063163406465195052394209466990414548091434019563813047663348491354227324921655516963808964933937532720710502559460763863613601076337814364720919752449337282500681427677447478545704521665039623616310155026747548220822117438647633150804867241133590515291335565488890842298776410099847636181988073596533780123287585622238007445835962536797767913267028702602717594363332491707105703893598519929014022370757915984721122749852604981311447761467811421871423143950798138997550657234400799885144207836467045231334742426815339554742119436224324232449402709002696397236763430547857486634964425487525928774039612594024361923094439668462293068869311828341311204882501509273551566092633170176245704033154312793105230178038610281630764999449285516900857094599325973168456268811005135896842091317535807123513661011453913068252671460865086839529263515911947358737419499440076039649355106845227002464937881580483086839254998119790949549402552230294299662691782987619038817536537692958845901479071878343530701567619305739896372820025934032345922663652591734559709353544217292914167162299192425332580074306157271418067212506341870386226395901574210771254247584876057781374893009683679580938378057588110965351548267726655290833346008871287506446975713701654997592110516189630788159717613566583511823903395718289814275483247102085232538133078517391658437446645167780418669050729386668601173090753855954180189277501679945568913014703484805993924172094842594423185200972646704746263147828251963382751352305521732426693223813226980718968418720395067718961611303787623200820564617211164277025854052721686968243287951699488243257282315421833171045767422244541961236227713237352172375989651733545869443226981048839415856825382951593865886595504829665898486164208370498533162063781995417036498405456399056907583260592930623593579762444599918313959118523236376599995342776924380711843701488007002607802598611332136244835512660309495362738692977173224975041418805127319658583798938528694785793942632414432162873980580074016739855550518960770269814126454175704346681253003460360444334996961760086854966592600158376339113440649887740216108405966643506240031911145745762571856862496150031319921151185103666067591437096975852086364885612200391371820017741488317444224614879563088714638897964349947765788946290684016232250259833882023447763863955579057034095954954587824330397829724413623735077670903611400743426125712706183773062663154805066383893349569070211619106154569586556020714864958348022418590628204557571025570428183919401227825655431692891719043750133229676727602553456460808544247168731975326791771512456342308877199031267432681370123400367229102020067263301192745978085278346784653044627538140505780746662202070259699964356267732330396083205862079123030048450938801828224758244869489398280567382050761230394086168073207886896669006049060880006738208887161953411186781077794588786494775863639760010988522652114213171130462109194999764295751283335384817697470800612694966743546204983775994018522652047281591468670013001019860075638320362299455790314017860057123283426900082601476728213202403494512037809186092936197587162492748058443898150788178102014157879894403676170566995514002270802122944697494799848725789488975016487528194966964303165848976651582845596361924119566588616953644945545384875607923533877385337094752904180340730695977765778810404529897219715366676201693096072223591721547318941446883245394203872480457400413832678189548571883039095675522277300065289222447399598843002644581672213646715938663758608046065425459315292988078519887237495548006250852058172669980301163717065901282375247173847854768976042263310607164103346871539425146526493305675735522186901289765631561865477808001979953101822054831344682694323192824582452071646908705779917623647015715682501772617445806433554418540900004064898382558781719351852602922375108128540278842667370292730677002288150263735159058355642061683001146768439005067925093853161037343923280694129480247519882352178072692696673226187817452179782306925635662924945708238106199545518700152895623006281414730668959232323790505080815439491739701109135540595159091783394421942209742964877780065482379436278058750162490742871628608843107017283362205406175203862742550644000730606260612555525788132027699445748806471084290347283885781465448270137979532396848344526206659813093344140815494625472818219957055288240586182372667154424584962861219288964269214107201804175553842539557649904177079036090896745550167995278604636609103093742180195327325019003156065361910885933806505536769687176398001827576161594106301421046712252635894490434339957128788199497104275307432037579317419164039819596672230303505037250070321826675720322880022648098100752512524621564686675406230696146645680034900648272538443122631883500470495295436090897933546918042998198578421384855427070229429133679302357051309149954235200962127222483666891481295971270475739927526587864932555344088537619447644464869413221958241264987159181347522424633461549920185825162519199727902445283703117128284414065757227326723581937453657499710032054064034187094896667459139036026639292429008776122026232666478584964103497179990663846985898209649536675898156221585111659876045438803534897784562083564102425940078612837128298972864292752624432666843288715525052411360980568913636482903164078892019835364705290039006759438494228844845310652853229597820474096497158232182483271498496326251163076473179163649560752476174999499019084467796247694874783090811173272277390217934875201348890919219064724933691619494278467231095893604002419583009477930956220796723133218094614228568955314581889718840455749450443357353233127497187432774980646752036740916953556254309429111484877487958933695753242208493062099261449120252089906245546512147933897294504987882895552980217896352944230803846417383145010413022674253358013848664472475476981630729678204377239532562295237030898933009626098299851654914468538565210752572674819436181798570192395825674017083303697578544356486374756748408401968132044721597570315736843535719718819081083524308970586897676462268244552049753285349616511073514603713276274302788399179988043045849781740798919669909868023460848046958179937148182717435343625088654369062073235159369822730408489235835711122494007941299706997490319241361663530251748145595406531963867607306159600849079756173542596922592690842778985748565523636693416110359641250052824770097205758649334167537779667455633093183707071789506139666506830735281221295906341016022824171963634157405390742256588933490217839749179057514497235061080269483024561867093126013012494667918868523953914293087161908809997342499598193143406839700962911374481651624314980881873756157281772309438924699887440570135694864703115828330697346352458939085988585029425944405672899231973289606916344904030613387716688798660368389501778714945579703760155433229230353647835687162228197573863891708245687836966176372731071085906879959968529637278092042337359510276703516213252478727180869197994943684522177479778754523849826110431284477365292983481161941606098572903397396645751359159553532240299612185853668480163349706244606654179198373500564558237308447890392147056579575393027177020754279546798021762603164690576071506294602559502958191623722623484112301582040408662874070187340618232020709925491330826794593209465365355978362454232587120247560442820427394128429189137984206746488933304165332284219379180772274133110623688892186121838644643324002734558430303932107117416587223829694103802382567860781307612346542960196767810914880187341921266561477468567009304047272512184435415751905196866726726898412656257812329813022520334875473040830531478570650010234377684681680753157296541232437320586851003175460206462646169875864291834610757082009176989250413604654665848787534389185931674740178166893696315459825227554871960047559214979384124062400725521856991927176052363307770155342359374590879954913626886745505692234441694330368802209447589882186993616487425034268420247660476653825447998066958927571376246163468318563564788068294338535892191008253036386563948162168059857680229631121421683265807268066843936112270728173714715726022573099969359855154059408254573154211171281997623173464521492413995352737305690681735032369018040442134674465391382503524991799275725422404408752710616267366165661087251250929977541017860610537732090073554478394888417636786666773723518145177786834143841605233560778253032749724877462372239695922524600375837884962173768848198281545297996901793976680324521654367700204339421690110237514958739379733777409802143254250571038142009604303227315287782161559335679190662933618252937072420461357549280505324650865715909066319746872297401225588802023942840400811436497759300418722458385115322301792268429905123211444285002304044155531638106766127400734378752711906461781259503638253044055168167112812989959747902176708049484923392035596025753800631500319218870402126201861281119877318549548880110507649560293254983667123084302343104339553380101958969999891125994036172072668958514330225861375576326245403161170483149013795457541392909275604424101251822943017733628727316079396932709320729832310126450336990532290763305395725690666818816926226098028895202625178296908738866528266176534253886708741495296502148135493326746601024047262999447302770753572529744358688795484110234530411079032402173442250797126707422166754914171399620443534983135348612378397704013742226714034299904579638170090186212804694915189531882072419197877558411902913849269334365940275540737320524703694287871487713374178392097908314844335090487669520775684297952552251143211735480622674499861331315389274025098804213564241637834354337425445612739888344857403076942913117954347971299257519992924695291620769678083232994058943122236344163191977940177771568084017914505728807866750833897366906830435398916187314066645719784040652161428188942818374684334218545133762380924934594355897351753385219159297284962460304645701132046811699100853251278020705793254471358278837912325316567232862700693600749418360268111086038141716167855401535238643735215864396844188891620284847308911276952698270973738566138737782255443361955355868100052106798016506247468218182296793863061362134195776441524488308729274374753284008132076689298060701818521000642333592455009800550006316765242730322209897093312425697979421667347419011890649739881300280978631100464100125695764673577892299079673230505832328468753945877041323716680191081518369516519196541115224197947540388090320250175524967981610559445863108759218192746956252722785798456376248270238742581405642143453062358631198099124349242968664328584999407566727160468984592970682170622317566944941772774872189769809590874354719541421382388003956805662230279878917028062178622658999657614296397189509631259019432476017458170847887528424313070028146710605507176350830537406946463956166417989245754197606600080114061534050894215893335203738146365049883327177839871788552769684748433032900667699565847265884798875021104899700447473748526921403814023916634315549914160027238558602737510492319626368335544779389765725319084439600020915914311570893545600842881245988419764852986339022879241917294939741642001032584763460988000341193821083673392420940125969762677393031364220503099228463012778466468904895436629816740087809790019622505596952739996529118309246028792231731321511302244438665907262631791948029582728699833691100497508686358777117458850375653752897209925331800408951692381316832839449351837271771631103386297438652923960665994646090869718669843784920047358155509424318394355463246234476559035240687408704663224793768553207176795121985758765228793765190411232424127421262825751276430871460832100102613792872728109887329233271957206592280762513483654672256164525231470732063286461797209236241388659993689020901610599259922879616980515333255899802867402096439513181087806451706783328802695229228960575331208294398413745880933904732107028848103292018979070245915657022400347718196885738487938966545012135454102304150884197239280973838946044699144412806073343842029268245106551063398706366361707419231204597026086303274807173197137170186558817648470068673660871101382144854556469961526787995327331095962822123237380041552043211536947001754660430306656955635351659349308411129267931296689609843018279795429527358980720903319101800966233054367413121965282287428790131062850702072506219527619367129349305787155545049106976166801413300755778216551642919086036195036751047687268764903338585203498050511350454881089589649707510942639088446630649995287045080994857676620526258083757046365029112459813965096374796045144997020559506535004562772960950628219949415953140615042917663358477536526629057080103580548002827887396575871458444901908028460861557136295868575509328169062721054148377045497286889949153041389987885708149462001753622843204871355242871706440893017683561974281265142595726752399404735568055945002729240706930356761978342430283522605191319766376016829260928240414994043962785013967556116845906235358480244619726015854216234328038664629729721110762802450274296242941159078526989989971186283435178854521877511626577001752398921723884727181549630083679612254077486968743225067049116294816317557943634634167429323472572971482792898559554592329575275303075652285243572436318354988325831475754467580575004505800659276571961324274162105234420974488019852439076765358593282441328858257493559965185362146949504771418118055791248012599603268388220619052241404089481593584503932703856959723937438559609897149226808289710857330787946171995051217783239261941722563745063737407508106084721203109328305024958606870302146799389068469670540710632321851440905075918902706549588835985234774972846935556162055192663599674156992504074413323383196711421027823091316191642698634517077821352969903139917382154082747513790042940939480577279088018537220639114283579085772557119431602965255851017800383229777813671975320290543680314285333987086610959907644707240381155631187614701977401860546634725896094561947147626040712521701930878772297492773589423309381981327333669391056951564691199225775237180705841538239956165340313612589359450260198517571510910459554651445920266133492950755628102473843080479319910131762684005727709294505392217796273709891072338269014940798591036031652745035056453842618321167557474329722388702779962256425182698151076796662615193211879934697556313595677100614532160961943651432187638447041870501025251580396405268751424225957647364275825364327745637247845184155184610093681730833208188321541239564136557613576003074375135653799750692568477538581001048502960887190606358634933309414688330181301088359154456606059690468233834741213336593451235271392226747750634813308085475822237042109203308460676353671682279969091917872808740540542040125352714793547993277415178083690185856366364229497251862523720075772477244394609712521520621891298663023018924938782202612752860000199107910587555632248512628214599086565064566820738927820171239107741141447005843770070762374204195299582223860984561958758741457857784284437639792159447322076363539911249867546600657251845476007581451653485858202239846114669422328789669211539869011143106722181562368764303641450970118614842011326047188743901156217473065357644115881306582842244932371058451520327197317534753007238096467261665558966084916970783032631827668303768357438947477061524984464389718572892807840398340241650439567665190723813196473251430613396726081970445769074153499227184444947043502238975458462253061709462599281203743850169233251944566812261113527449486130703149649782051338716976179092986871846723988486553245533365541971299946320399403460078275323913784774984101331361864028501609641692692776097239939960600780006170342740243732579574782394418274992519361632193675352666820047680069139462917400373696493623848344609705781762637766817336634156644940710479051545864863626467294736595108905378921612971990657687791443132514299036590338779492974617251333266685893139538269903937547145610086994444118619429968255849378662912947986551297744847627458092406307409742180400242260309191400274266987923616692662728512775234285836143567214832039377210209782904133793368609353588421426151341996806273746570719573967664285420661616993065085061067502088484633479854412177270940933068403762243116581472459746835018092238552036475792255360316579140971656655205067311326521032299140560301027960553204727728435665107180676295908122586987107265183752551439418217782891054111933295101303714614858930836190498021312757257895574405124559851387385249539052262895081472957955809182525836569793557452958199145772354428626622441754112071446949973937384463434502773201752768446606522196462206734232392458716259970950525378818980601462677477341609372241509132161828244778261617828499002596575473297270236068654410886100909696754381693373476730496319789565386150278935008321334935603821248649307063043223166843729650630726017239964481499464038208951074599404914256323240378062617533850644209418069199688772552920195233957211898746744784979387052451440692399890548984627263432921897408979847446008281276854563024892953327853833375980694603510002769351608605273925910990165348016409243779886327608898520220255517701374158389631198252053307514114741782107625780226486276560867871842371072886706046464615976680296662552409040725158357561837961617481526035865117714332483808762622932194463371331664626905895081989021016693880990301056508429610328994528779740740340289494001857383174707416637726337919477809713220507169488881798784292794526022588355085691697311781699925567784590736201832744071045944392167549576355859959210342132654517123433547459303563217901280027493168998751702469509438893251952983738391893588429766518361961091765795434614608099947069004778353462695914366453356731848634164808769252248001770918047001694818285736321802475269149690327863754511101405703998650588199328079231210708885433162118106703965247227733752095000375539063351664696337171973091802021243353251566052385367592149637160577596808598850481218893733119828687062110067845535122234620684977669641766484442504895303674915174470064870893606893511876423297695587825803950059767667356712156174781670455512496105683817175564903430500032930876460523576394513798900836741941541332327122095116425029211244693246649044279946371670729634915283395987656871067482056979051829942070878595796005798020974435823758212790211260642035288586119842522598336973127975776312180291775208992227379899143170262076710468895734986274174168667875660673705581216708052694798009383850814016487859223380681460661004045460351789123370665456897704829683347904412232212519319299405061867581806004999706950279701373797756380299432311667885714647069808448579723099095604038017829787919539184441940803245009885127046686787115906851627183020437901521364453349120958892158719028458412807191872333815375676105284296789890354091004099078352805554243836227434335773162382696999369045637532490443362494707043909385477873482849488081487558308848240463254823664729604357013513409688750424217631374774730643995672842350679618660549577895711740684471122096649002399503889872155170065014058703226271920565798731330062890346013598608500117227431240291855804519552884002000264953896848051535851126940779355771279035394378466887618086827728667232327462458593505671039833710562947191364084351504099425867417868715210058629952095232239028359532909199384505717345311064462119353455923231871206444133889548667221944816822875632237519164590338087275795319075203899070212564332745363987605920856512885774404912796590087483612629660546053131157555625914205969253745103626920268420674410731534837489854649224637985572253859081353355431707956156435046220826650566641155504832944595855915150291315925320566685886329696124580387360626686437864885576701826510183377465702475807929517206682526660573448793047653491270706285281326467498160063766264739370460455140110950138591710969367648861239226946003876662861838839768701103866238548929592013478989938452738237262358138489101300124467643674688126968539462435213330572295850988820065282854987502687096482066349985121343483401099768279750171460410215313490930924956983066644706865252636707208054776679720421364640636193340858776313328772806905158299514759473191512724577805724044055048185812575733613002326876921136942433266115007422177102610730060440486877971021686835751051380840530951546766072431596477366102221452074542363924228123075042815129902992723744748323435764562826940530674717088041739036900120487758215139714712652360367830349218336237488353972063315590315324045319023212560537761319946209498516301842935741280128815911994051201577798426328674858479356772831794840886236093909431412259796321369872611119118692618428357632932032906175848827198949414009066590723755597247707722654148317121422786782671790479794636855403896693703331169421151541338214221572873800464684785437182918894784584848470236538694349326504435776880178547386068302891582509552650762829909528469366135262253961251303805506428044880827228319278385094912019371012559737969598723717963403826031552133222683437305414446862859044576755661854979291686005158002111083049722263958706125740054757316218094917206115942050480342391819360697908060950282838894700587794227386160208328043789294601087704192486360188303116123306717526016278106184976625759296456588335952000545734663969028301147687696845723322652208897955597442873882060631301584647547608786923375858988978733371279823987843034939928548957791018226104038959844794991611618899433715068074764305558775796126374860000383097949546129798784153069770423373295005658199638509656568164263977654750119529941587671044194368475058195188070837211148639520186190823392838674492290176176867723195911293188111468305723879157362894534318592076459064335941147867053027934162333505498212313107212553509824993494318066196248703686762045650006402385749270874545754849152730289765730342764976531964628178814616190865644245045296180857886064336942728485482015386936392762873859525035885230508863597733882389069735651031730377110945570036117016167773147693530561660307704111245112148438870082830243717858193712686284179069633628676412095100346464516233867250098535216426329974825123083448770300215893040774659307125935424708963118705845514248362491107274118752991098214828215082674018352193645243355950213471989104808464208060734957274067253962435220856796188405366682319191697170448766541294281610042636361395511334280246530020655004134636887693671599225460365006073057258233898612963535456084973542132834730559556610948443425323816588101543058200264245318158003303523135392822802973171209220221101744765140320199625783919800131268897764540625921588347231367537044146584522942475603749019832733137800558922407316055014997356430397747684656230717676565620692535847922924673938990666757384222957390721763410322245266010699773691732418287673515032732269557735607216740197620627093310866676537164018048723282964395936159012880786732563246899387793592375789142525708453694511125126805551905987850657972784518355600064758521552987838358414025118578883748698943904328271476140269608854922623377939832815128009916859918299833610441298708351979421533015243044828398300854170903889157851616830944164776923997634716865219223290502470258544504852128384056593813092012174174659047087263599192072595366898753324279689029996361068337656014892671384886169638235762546934463290052650745467817896447007021397157673088861780437982808612927492877070769468070463929763977954592888935069742810262589713796442532581541095145803725707091343599553217919745489339105377913313961302104760916566588717267482141260282439191359204508191460805559756441060435960348074865257539418736933975235525970137704785390862339307337453375201962073835503875753353387288115708068194519070547179017403401015985728734069779133444335372389767904038561511736804688145474547916023569863979638777952383659588761656662358995531159538930963854074893414078467125311925727246477783286728864260629492456069463434887277343478408407407307477616556796535649379228184717119031202096029026363546721705351336091767709313868811716598218808467300538525576265939060728420600679774540266472272686535997943117445625598527611089192944894062296424903414475406915624488236857077364624018812917994652045568642261363790386032165256616708580579629118156943484672956276549635751826178316628885687700124721275632693309925521713698184319445391635656440917602045950863485961367828763763818087143655554788708048175937721785017223946895004258105045099253130378460309456471869329988866698500075580428532340130089549503950095861045457505801717634291416093349802676191620467903497783635238845418054017883262729235298594903316699240156138286696273945369865487390307555592650198470522823283894333970470353594384337792004712327328188800117683946861444020394150906348949161084267979452106894037590728183385781935775143119141252021640622981479785708794385664101385044554878735314311573971075720009020069959830997476497073334432320946758623036771187444353690314269996764395866531533396072894046742597728643728193543430181817619483768573777918435408413211272896986004982164065132036190913196073250677165821012348260793925593324249402960844219317941274204649516306641109796769471959513560646804567260106010633267136383429017113186599758320856099032473206548848570345484868823292629080623366562354707742549828381883532772350589026242794364333655274473277814079959372950582048138187947888533000587285504374670202408296131517766054410565494224681372354435478844102843284705684754811259450065289648442709399808160184183212803604237412015023623468491496794519329247104259720175569136929032026222763130908070674385357604902319480756999231888933145501176062226837284327192623141096007561053176274484407378603376068321369952442877948063165654548660998001398813042378368196153083601798097527855682895195249240498339320392639446381192619839438542417450945095197968204427317227924992993872116156986610695923883430077265884992951554737771875945195845916747698690236840214880890491824436607198375157817288362274024336977997197565799722355563812404195706756280546806874787207221458700267192845586569141034343557437516981202862665375313629248974470058303588578809431853201986404041153106562482286747796570641461695114785711919200262725638979325724608407927229853988093324572407350642618736379107941489539503574531559419108082478861112930646371416460422391310228971401920628571393038303192348321327525661059577333846525299046874813361326142618195267826142423756925173503546220645404551063993128958283710634949568384706515947258781586334055702386257648326455954121667622100843926865777375464867476041880948282851020779479358894114673516524074203253600003986161511660355018228057727842487754492864614635590735936359265672004086910080475579678920693925672566881167452756054723556228601669907624322644162135137677511735057695243875023466094346361810765466984484197660179124460355017513910038258843566570671085459458760152269787934006425069046053974164212341922168620012235119660612845006556727999820110797069192126796282595875733404555163108561375329822711087298845819115059860457367122237606857962513278050403882700184815962445529014363256279051270296835050114669123922329242274421640851738057887511159352068537995166402838299749628095552407736786107977676926559275703222163349340568547225939047425981783989307472359720768418039364658939906689644239650745076718189335106895958208932183291747806377234445286404703684207889114358612909524731307838673904701802049180888211001640854670646974252700109750076001781453219267449820152392598918315007948950040317025938762517442590720832945658097584384715551274649111196801367130945990946504690817893623520104308943617923837851959757746807726542793872188095521716752058828341049235272891963795106297061510258870936351402329763078864308487118570071860777618247722647029333176752561258115205419695614600767161518242179818744504349881272136820925206937920368414008092408406914988115205964876049214544168400295847383681141159164041060947642083911730020932635339291153601357710772917369050589437650960754664300335226177537842641007888777385873814485498789386157260459213863052595604454931721473388462497521223899562438152118999596425097941880885107890910717008949001562496882571520272244940364212353625736916254813140405776720317438177591000002583571557568904140716527594432958676903496875277228984156718449408949163907307978129497580706114912229108902770326147670381335759614501807113710434455631759514999701980443110567564979901570501424417524055716316776790869981661315208876450226028477199440680965531907100038603199635628610096092076058330382985446080325544801322193585172457469834295202569408728163028699787951127527239290709047697774818210788458675610673247888803355798065804480818131905158752142346708465387951572464006842481580003914846299488567295219325642171165320460008310159185390851120749992726371572273645626616038807151218457546725321992027424725929943250267105772113152470319910894672863273602105729143995338999330963810261798138890741316860786870417710802659391580829201623740046858019243060974907976829228877663689209771999977634022813630434450022425176740025624494655118234350401900280228560892900588344617652839287825174053518440917885472475170661671537307721815071548343114560974472972795305369069313879549375918051257458216214063386077736702471097837257788296972891752578119243639458419465482120220073353786201183748799748475268439566629212441998878303640156265685531656957416840454543459593183378495419854965297620867088907426860185838088152684759517994076618053173362803328983926491907502826061616283505818612275768198277239599821237233763327205016278288125991889862654964042501883585829272216143695090863041873514064357621333687015793588133716242841502645205909322945626626038067466274684403490558284634466713972310447504111794505915451029363588709080639848829650150426106854848380947975175970601192695305223822753150390231853582957005230084610209459101596917313347333157047698775261811803310799534926289118109877996442592976284307476175941751766021146551891633738583149386582411704408267676994006471342833597009937979987292574255073535981799341546898361389723992028204866935379455819505584827754931889098277301265541488815463112466784147010487994418712021740545599120625568878037959165882460183473530132549051135607499480400370341782049319948651694136750866866840284094826486939764530476157475784993869721230509683666120609595274695018573156871160279929775368695207385999881620750428262342863448600541063494121107771091572255242196929664129481908037614565923581486145324699979591386040007672248925400558443738047509478619725980121482339062659626028099989802604347233579299081056957047320201870088951953831451876033402882493779815688779142565062965960142227628395734254532443722997285202476547811917191454640037080434488898119939907327611945767803419400650914728276099602455354530429371283249311528142492299870338244835112410420559974014721056885608684790161703392018352687090268933185016976393430554138190850059064591665978385830317814365244126870538051794348838644146720797027130965556782797637849565455522766663391496765176716915921702235755558252717388718675741882103381307703549670797731654455885757618842894880307512207470092031597750759843553084046641505302031495990198219822551967771014687365501262164884186978134782984172849066823752495047400548575025506647885746656813614658134893470872375462362651574428237270014042941945740124024275998070132063368709054169128955685356629745597127508831252738904570719114089874660374092333089269944646081356469539817985018497313895603607947764517123991902278476298315225343484489737501175415144894916924318449043106675720833753319518892610521601575696961827523750449990507882482685684453631036429789073450227580648478432352776814976341433829852425250423220899443860008060558995070286229762802363187636927391977366113805631624622169805120138397622294215489726779225547638995482799385344079790862812189303308908589058289723451299661067279043345290804214054627104914227061574204627844357638668084372439956360513829041771417427164962662629694686164827595090709238543335901698695802377544645206435683557829829382921764456382426115850819052479267645783370488984388047258394324819949165523419046247096663126157329848661292965714684008443034438795563762425897270725425224618679044505399873091166453829392135726610841021790038415717591503685523298869140321413818781507874511191643194217215668710610888814258518023200425551603156303832620818689709622535855213832554128910748748778088905037173546454894109882514659010422820804790547978749268774254305233103326737198307286125063726314984526143801194240264353131177490015936600389246527421773559355482079236374545974287402202721840031996807891236484563134732528363142833027590445961556359092608699900285268531401141028273517711822749366295965756696619724795836329170861962260945062186457440459133562321211565412375552229156134218928349838307635764451265805893774727109633540885262720891196292115897687969454621138562756133195445338165321331901394354953612720152931215918539180923757905459489867908454683738850258750634874529237499168595861703031518188747816841019919183079083446871748321551887873935893530709785763869706454977643544222971011879872785616370219849301500089360212875278990521433107829654607288142273393664072382947715239523805295811550356941951608241427785615902071717550174227947917984446025997664697039006907634145643560667636170058348712536157475402664117344292733279332534557360153902929857418049777622143167514907307289324683065023644261723662188096660547540773680729425934785764990589969055186173933104281814870159451847431826325123432684063126861009103703140482809889842941494788366257391619757856813306927827881634252361424611583803740358287902283948185763111340221802673057212199212429479387708922342182103275380938921488630649693154944438259578206058333281889890158779289336084999349233721813161463597161366390959737838680008484472044200061961321054619393386707837405158207600009480902329050496485609243367677640627311544867310037978753056380889208316977540715870282692441657344157179982245984739510698140136282214250317698935041086272640778118786187988909758406670843250656994987465075770788768025254584526603876118245447850519455195736171136212897395663029557895225671390113331966997481449733414743382037415859447409738771849368735978529326406085856305610548824883001337933197880018656795263769779733644572595331167512637420374470361048859678051103086080113680988655237737509977875458996569875551289709795821269173667331822913405834273194318416246209915822556572100587473594849763881324048632046039453958000273841562456951942087139817448757693608887081126864398440657835855398697673037128766148572102271055928877989396235505028659356681410557430097780160686484047100184754621288458494162206370228759361085491453958389225618586354045473649553439060866408144127530976416609836528297924608927136493607848349414690985818439283722859276643897252916604920449771688239392801220923922548872350196503451810817802459103469694997836485995096020318375683413371568718732601577573841429367238453434208955151392657877132033196892103261974370412466181927091583247048952449842195398455827385864029754437148758830330793112692092229368365362445543302274815938097646615691623535390152194422303909821572646735672907391581957583173747977651067378891955566647226555026727888993038969245772587474624660010216244435846760339358922252000582386398721915903906041998274176571563073526936255504386264136147418379501127356436312521663644420794004368436496153414499181241445154421960953082191212175179275898632873049118297517459216381329731905887131024813080483241154967806385240490427049503523394623468899756649737987158815042102315697919439949433583704276475362835954145660809333086908987122094187859543638443175258419644694434214599795234497696713009212721709878109941876275366857886847341050299832135739690245392820704745835858534562135819214078052027144014068661360958944134302229913941811227356876447147840637645675446563308348757240660955851865955236797449061690413864740843996670503711535234788094747853867701639586344008688574615755017804870451954520625195861893624522368743027797315466676724877377320364156134725741763942234890557926843548695193693803886093915584433458890870492711903756166681038582444919738130093730356175369781457563776101557377614047797202734536565416827567848456061940380832498323986817748712366418653194181487155189491594070741837003260933471774700113614830307144526153626433424306521737009711495815045578494816149591531358693212559493893265990233245996107450863960573145140406353563368394594335561970585550258230528901991764267865152734803621899872707702009710737824119841627810256669483990336241315121708811850556703619729525359729320793785298191938692885060527514702763057253874126341464233581357061071709191918856248716240004160294913784150731585045819183801572502758237674700350814038789271910244501586241135566001338607424872797306591321984277866369002592604262900318240093054099922831060967513653929189688879177623225394563295284909134880274944058002823199145794705412264996108326417017397114634547625122348637902396740595228603179100915525193040342711710769625350609879457372318661416074211470247341879659444004854178764752836106366829040241388642238942818914767794939770766264808689945594225499378140325014675088637998207526075496743377756363805133673280278770835593440382940676851675687886037554422980277407620359530782596132856453668702064304209698610127319375634972103645416675833794756983669461629598566141369332460154473712643392500987018650378172330163631995409280963908382584079325446827300023730893243411067251271129073651257466734110749217472468198679484409348409333168154093729111646876622131811834674449329459169828097275918356254179121112609577275788582746003616669048727523544922635782114942439329626430259740704249562478437627766399716102033020298523350010117719397859831475563604592354288730561973870150555454081682572491889894404610220137168456736985331391436239566736173545346470497752001236552494136660377313086332746450423256756235243331306138534651000794716996662739658448934108375140792809042424159115561110767896037230538326747167829909644054015893873095604472955358835637160506256382116885333596435990257155233861489593488002681509216915848239604487472953114719533856823722829669023715060142655466377642643130012631655788147937815004041436914289693071610339572625497271967785496549371673509050428235482519840470620432594912808528335543341314235887368628979165808734294450383989880954526704983605393760338092124775143705463908445336297148151888080873990315215330037472328784683791510574455445214506715271419441697315507307820117718602142799479554128045071953207879088180821308865484916686411099115305237657435135455860385996231446443435262520238642267407459853028012046372781284487615310357012095719999434174244683772202765849033809578848441766765127642108033839814822608810094331213747726168446443310160549799294891729049527111872788762644042864230338945822674275063731889272878229289769311904180518362665961329615383770136746023433117111536993821871634140525657799906993559419578668038954518208567760706617465075571545205254702376048976934906672756553886619468812117077600937650957775751119885052371783925367128520962275938552284782864164523084747399199488080414743279243902027020849942295925504034070427793919825900092079314610142785837076326531045457383162656657436221918082451479654552750776002049952126691817357444760831886339564026986365192772243495759646351516700810877240896069021906070595818338049295216055298821456088307585294132063895079568887968243644311483292911547496875465404228122401579320172392667897799939550849857603035426301081236655913673964720538221944655402150211009246318163701637753369625884602833012629461811826691311745160459605837530146635028806619008469184562884702700696640531682253995219082773417546220018914816130111372169292296345486043253623010981456347815765132065749507358119132656089373115547643581982597767381116125441790297516939340985789931440927565181581430681868684535025222973830978410941538527183271406996264700566939467632062376268461134346712331635980527824825511953512365356615035338583814149818582304385619685866259641658279603556919250470585992316506895089497922979935922493979877517119573230749874405137043118567298621862754795611231110369917318333880985361310827919223587675220162851727299974678388316686498278418910233254036056334981357458959725603657393713768369431535171448040049053496990723459619900347914866598642763805213714383311707810887289317269346183307001462817724091660304339975924508788750918714470197145959420596162437733061127343762837650779916999749104096243122933261317618306811350356523733877101976130351174578859442877969294053571547285832344971721567466209117648486921286718905506170269693824281000113231752085007393647899284970519399910405167163237729826113752590939947879186670019039728570554530896403082183933499334146371184726616784282931620305514079708587223139058071490659884164404092842391833141737950869808137460873367533635315975623258524971806723622151449761182454923817532047778744168018183136969177003859066048834436138365163645556886743027457641758948926739366103835342021036710921982680087677086007454696313330633275957644357345521092761860710288284073600520687133022580011854241300291166457880120041438706657187979339351369382275098331690496107671315264804533081444832066152552643161893978602784551446066071045362557546719019566619514973288474747748044657574957779892896269062264330708628035037228487224504831320174075442801859891623779090742765022457584944676063864762349304343157378855959457053899604085034151111113723014273345807326884590192307568972051794847222075479885571549886169148269406250903175804706230196658562187650099463376930219101273968097171851125438597273930053828236092209893679864157500600576035174573327629346938796976042433707474208900356083174275720929835009098806745290443171343645241936089624036485929157312575284698326441767680959468842681590573155547751514031427249547120394915018672781270217167010132555311152191063337243294439224413252819546723009583030269167850474837734196411946637203968444504275438212629600143887342265243716772073495463610581829855359559914315809140153185657870474810120401328290723916015856475155155659810484632804155447125072964370199331168468384515474973520272630621225519338113465982056149472296859726234931305364470817358739325216323866937305727614033107780656107589191171055908240641230721622478883865635484251045714843509056370111001156053666684222211961061140996461781716931596021337984007002538736648405314084152695433240511820684968885215445877970299750769492109060955307940190152509700950795082868667765450430992765141270406223397104138993098574464461615661164037044149797250003493004022187722119510190805148079859261409263326410879396329557416558037372879667648109129581568557640423980857865568043068376013000148268478108751087289735136623861749572202355630292099720038188855199176692600581375022300859791521698469846554163879472189211990907448603232200256848952141219281315328866375991536067848930073862922698185051550597071697061012347502363166727293900993173076008673575986078097884837436149216647536238174667202582561852476315881974266948793192798289824846942717787787317127176464844237780059793160375897521723484762590556748251116666350040096407610516035779622803119316059867527349940670590000738841592183856164655160632075131998681084485128614809624086420753019774823515843888920533780130922081793767377085553325342989533708920750193362198697142907001743809748481852997455513771760313592532653662737550901135186753198756037275536221830087639852284883511197379539772657505069085823710774300374495729121905778850067513546501223348325581107384138812788601865758619528834534899084252082281925054466735652346255341924715569581285499514813103060241889458624403529497228524850499276884576552294798097129700864291548785566567705013604501432374493092390591295032340428034208204942883863022828243136804585918913267163134517054616591359292794628967277301631737069289928212375878793781173112564661725826600372832141937185917388295707860186305773038639562532761393661912899257428821360060302426157279723839623259012791090098129784617026037003776330780720797655090698148532264409743413239442853312907595400645391039046263525300087207044798966602681490826494480858804893383243092437139436010744102603223297958548958037468846900861532287382417422675281595187221638835266285749829828489062262710676853297839207904193727090657581473168485384975765245774445185274617164345501926553681567936338504867654738169398628137563828385050936729940302894624480867291192400727449482682691766545080739508504769769639940716125388560070245238679673695375853015671796394023534682418115368661162931599191135781682581135283230588454224821341666924066699290775353969344139239988051197124843552003318671101318757545604376873718136436658920680822463440759701633189204718747270396386286540368963750368263117778107333185416350391951323631209412893890301488696567141107877220585319793068512564815836561082639183556241141913556103377848094835449000150620142624272572206615101897501255763151307658553339416577329884596781334921248178323262918097899288725885679480670973984357541451057942524977059644594498408232188033258313222016985170584694208276414642963427697238117847366455615523292534532609639904932391457571858820683429708510759217362985888456610269158510256696817938945883356237354965599217949438615293680006597560401843481679214232007571857284957652780872336231286759504393754538682626990881918956710924049546609035623798686888780521378877989565685318348243142791483224335795625850219002613476140272181433660274604777523790748284459354203215484850508389904397515946239513672574733054871085304372646211398997346951615061762145799253748428876709616073448989592161063549930453467259912581442533779590275501179581477015852625273766101878081155180729544616059481196100594740554615537956453505705175681969425886572632155797337932395671302075465917363576589598772808961708327081361365210036663704567244711576769659522801466043137328997039608928666774688872804486261257353166746596042175499821284456011372232741520075720783168489980028354461057881100059995761614228800542174048986870043697495809144349896843760073704502884074732828294117885027554333784860774663500320743457549359591724866666372042463745552550301996497989483180836966100516625957904792468990707301311580974673336131716460774361738910142313745435758277956994439830347181051516631768660283830981777150957253419087952915340673655089090419312242993199493070755047419787058620328922988171512317317137463406420116254239351366353507772238416652090738558985465568672403431637960322015938590254045662967000224642238958172013078541747384437585281033097104831606772219812247470411391048832269790982191653589907795679568552340014494690928709950120628324541896074389398271709253691545223757041798876267810213943797954315981113984545662000276305971750952383824041272916501536363461198945020407877808893193066096888483880898195436781688159540094830756491009938807840502688255870392755600084800865203985096656541119545804934742201008317607896329912122384163643714324424010452726614605368454431447998539328370090152682855561619498636421752184431456297222251932976499322986943573700053790528156604801298834203678782128622188604849949435282347064319162448373783813110655901765574204706882348665719927815052730284834965563511386818873259213101648151490219237373580887364390277970939356759039439913714344441859547752176561490497236407112913888085051883509247118244749711773620560019325036366884511531891667468134746872523291089517243769523592657233734966004813627413491292146002311910268669909600311073168487138327674819483316703128212759213172844700437436930691357314481772873163547840791025321598367901658403690034314113035478000221629886681956019565147378619533667229052935987863640696190155881896390443044789275306602666677924034270261158823051331171292484046052039298350558991248137569324945917286162081104048542696182662663304755378291363301767638164270499976169790986629336763433824563044583420999803576110261572858647195050482935166439608993990729576821768927358605123728569437058333030155290067764148188038571976403499290497048645622211113250895599277239414153881170587634630756978241713958787676128809817916113581003347858966909204218442449359819153672650008431636047328950432189992443569773783135696216800361693820905294467420833194937618348604310118860734830031957366432146337902811270149995358168795794598725524874976920039543261210382082313702061017649166006471737104337581679591220121297635144461909114591554078045426343026696083723980235002511417625885422864607988104307285683303470740030931776844015331878975603014871569154155323907712140991208560858410196322439985563918567855208967255999813791591699945502699998668934477162466271380658819301660747143582610764934144992739299316489297637737648168133372964100167066607411900963826270376839942741042014004042548807200741914519653945711244182100333820428338193086333803159461212350353706645999142175400421581503892434779917815800124226605301504875036271152610169437000567988921768273688905344087585080417749767449023912022077168433019326392241170146249960598164754840536559567660039340776760685456876440974408651673444923231537832532823391461105347654897808506281125500662243849618583935997359178111502025950632051125393206453209082754158572245316443120162051069840763475305449754836106855618493002240839246642247871735098385754268606036003388882573908959659839266498355857336190213789855820041085452265763001725845524843423464472808698971474405477221991221893841320708657114228552585139345444368339010063768153944184781513870924672551961044504791973512368484802767334481061843006073791060891726881589811764497330728973013935367256381082209489805840491740610819223806248309530392017864506674425150575864842921070368411821858987286151541859419890126603755129421626929333187665810908694249514887707304390775968379223288467241001327490705240821521766666040875209803765321375770642071075563685121107225849823878559451652579156361110412401303879183370443631801172293080192451242135387336106545979246761213417646333186147398250935787670616689411153727951290019143227619355400462935443977768982726899508867081815807920857703567116362361570805073863202496580311006118055440967368982026137324577583454790025860100039298115803206779764765664985117722821931906681441284212185865196081250946631695872600799977424345810965063754373506402561615615303835412119620662167484211859688531956984542621488380105767288204546068186411901462714792513900273778679690637657150183247685252934239116734280031098928029779440817248691984291972039834643273795823157394244999306528184490136887436762191206437084708081396701759863390937012995295903173029953513992050699538837067886493778389836215967040525057046270072418599263226715952771814029077624474617407142895122904307638860216098785509931767593397527674062256017446059748349169566614769393589897138304779406895077978284788054906086816044569689008944929706681864903572345919547648770333451662390201438058842231907576037829780998213036131047611200432685248778589919231272710258669325012604161554984404030350141701430442459215818123500399350456046582539721082207674721918852784582524836321880235290781975477000901460738045757316572494800351565056482395278147684071386475662499635423977944029459258347987728243624565302875022481681971070752247575927251274822101111614259787815175796870452192143350848770783229424162429124400679777289850016274999329870322011638458646138439209223621276945666166356472072783349919820787621519355111372259065682918644147985353926660462553278210110600606102404437311389124663229923858756826088087296252688752417976564813203535376278091790044190890502487795879953395581726435484878939225206968289403673580298338028117279948325641754286535416365713451327852611631730282380797240652833922652971913652531260526294010846812049239949276246606512960398121402410718540102331601343746906539652375965996224228656777352742434162941103715916945728110149219831171563251862697413760211732987055406431555609969595761521303714721160084438677941176336281199688836167717144260352931286512652352959750608400537033102964735367036350557027162651865179330757837479484159446546397902709704328530650252079878027520611773126804168458266332964866228396924004740021366315954880333760382089844931524418631017815246940203161974046148203769606142028112679906722402449990798841839683511137923985674723635677029076612615600214700272626410876128212557464159035209516282865585643424761539329897521037068565262014527888984310617155364609639680786471528943045996391041264844999070026282841985496757315372562652574544565763115233464396530156450642072987250421391353189133851391123197893734982316235013898903040474474117506413562470115460330449323892761914861547560693033410534229960685704460197720939738585956537896981131909306065782244831233731470768948351148027023153241499971110811186567150595089704751862738695919075420692968724578793590058959891109154336877529040482495486285783149751618967549561984116380053942345356534278885159047955937512073183023111306997005902956028030044770473730543918623096047889683027053764475142894399208434935550753113213280848746379223330070783350812948483873104741585976348802626696632042896387669196883138180268370009448916589103088681115157357126535920964180737529780990306163389248489412257193249699402321539131601578288649323332277546103584094689704199817026569654094418083169663428073946466004989056939005427972967944951098461727364015430380239379078310423832714288513043282670487797246035954991381577316640930727482664448160098931827252811027865784450750136566326031736855881798058702716973861979366241636054839799778220995834136051129148370918218452582665553900813212410249019347187463438279979043294903386963327583761122729203933053091354175951973763167007878263331079015104508307842371872308969208648986280754731508518750741761316136744633409579042953596705162186875404177236807923747199175797578982843674718854796982518560507601998961392027006542822726382203162154017141379878959539191805631861561045272380463920201766210859802106111941481767294365186450224827835078890603977957503753840557969309985119295097191043404894405057045553863289435393687599113428955037800324802321316817490215141217462738221436988896519743502173739824023777049885418499064123529124423417612069039052730394550924293659496272112395992172184486346594450528745702588665850382574060771062545370193110598633756371853036389837399264802898133838777682916102394759538273516913750136026492966966361696516378742785769244179132706174216162864049319628962079929622782936823880490551445518987606095386149236121505740580616175952066371517336984107634492008635782493389279571517380531470647703673497634697419726774692897039254305044445781194054395554356982610814347887857462031453502135845554062130225652474584114720969948343797972987208472233304891027600147071934940435234379572229601891911650686139267735611118173308667038170061240468446851041712068616189767636805166577468236286238657151692885019256367071565428727034428325538289290688209757930546192305548034885862927170188932716281869784276838651214217626777563615023835939344744412586768955739280043998765076251986495208752953407763877870100110652531752433799252017705753021313530221489901903766350542102864397727474360070135472911394608493455038552372253500377924644166436601693990914539518767564355465062224799328586944870862625319222398223773734469718370522133496294786661072807711356018466803064309858780488369809057198850261473308915250121936052298870894236266241527013331562614124054007563309996816808284088670344221934881041684991187358794537564921937082896272864931837089729933025792703384301291493758171960405969938462250798060805352213267571534046234459957052532946533113266188657640143048613064678038491596368029054091644806666429165194677713808372039772848121010430349105690433563482885884462242429913451997611085546603531424301501869392766496235828403154370662121833794277671789817399142949448575536216405423550110924650039949210174602278607722318749784364809108178164474529516969086811820045290152870161507303120957334693781638782657572218367067128301760262535931072382167345357448606667554408867754753296773480269875100529045923207940606641037364942032089695387771667024190893998018724087744128455834048302643010146254471829923685817773604349122679556356541348220695726147811139791388708222594357298389756163319894065801794912632228290589540976465920407277100452523609322335982041364155628359860458659606509480048832027479423554274115788648620600241305300853539026065812132112847766684478909491675620502937014656238667218582666082043122595719660644290435943261180336682215557275496905403857158006752097090080121194158153207352972562564601491166008860913150314437676870818401625225202881624466283189148706307386750040901023032694661097629365832644213971906274500165451928352354523981067898434290890359315848038655150735630618667361798783020632428967404793222925071383446236711910191964563862149060071258838066251351752119400093633093605233562635053728763067045084055666443827195649085960128516006634999830932116636708769421798265914619240905941023846638004029701168609150138182079309727714055512638869789778435845161212700377924687097533092236997146013070717217323310319796455337515232580256253747680426032164011146440851845315163494153504006399022732789485321793457084477755857490222932460991475424554772427126950803097008460936966293280496086086647792422712074889944555381427124809033544184992760906409998108345169055733567646138258149091126452621213441393812077480438687203804047766563985171018391457739576021615946307018020065032750831722847321709648681544992116793015384127515463503402210885409597259192237477362289054009305204490830304953926188074876800038896512866522111978046484343275025569663013828815363186101141174223219480064576776964784957904174436606484151675681631974054068549947153697595144455027124416414672672456249465708424146999027023517664504727285663549789596872465349434950261965853566689304108273259752740477380713794612346496216191835901022249963802247047907006751226216119022676122998957226501138307911849426018066046312144309483285232669528091875434217379686635302847380060236371315941033721024190731989786918094568200291496556547877465922043363206602594533207327605335317039966749032644769683602080530895210303777069272077610180318219905473780106998284459867572657840147775374729738342591580643535478353969967861258266008851906769725850686266268358183012237727251454967123899593446178343966581716406327560370837606982880442174997290122271931945245071370651290215714659111094832633978230521797960733395620604708145905665095981923264952005534684599822160584132525282586672165862361391735478949747351060941074326660383270228927037614425330618093911304529852514606241168453746397333196995864509147673899746451269028792119237721739325533849380958618636836576073001759766468473602424288829209871141174596816136326608063386684860213711654627832801801352162578560692293307491678772269719851388999142590186852482235970043773821902307949392534104438965041288575738323751844512901784473608977292955397546115943144591644340654811671175322314104934688823552212804155418639665658985156062327492656673492903133574491078694197032686402869413718108892842108298760051122956217055734810295083137170861122766800017056712852345756092553422849992596671749496021860696939422922384345876544635531357511189921591107902432501867327963333617203428021584173679559308034620126077175973686452151050192325067954484084114871970756617697932464791385675429751132980399052219626008769968090607010182999845370761726881984300775133433746124584807627363715940344805393340598027832506475651365082744440560746439513075927387580742995949439796485269748854181516877221712114172321369701718573319424299425951307455812529299583298941279606799114138788438683832281074725113807685260220721923136969013708578267832667283140244142295978157814798816408407652450781166961229382204416511496668213292603328230831634316485754386861774138212991759338873496614677230735238666918954174412419174661611415883262450261369591530385508941896811591699307783633412693072824477199393667348462536766027356786516062260491706818482471757003712444835750307300495257242973830590377828133750308884603744930576179260202454248836494355336177862784103232454301353306739029827417484697561589506111831285996904860793499726050166034675229006608227210006961093948712096360467295173901757657916075850140512341147518517959849367776413153147750087279237433740627508005545903153533113599043056107308067349462942898307932723721789690960292854114736724603950588487696435635056979848879270970415895590545333521728715406239988181994523543036445755321108397721256291587038026362485113064922769995804387526885368009236507262774443288391821758258164303698760957348636127113900756047564768097505353911061034797091592878536420082363283591977065020697308943795715549389379127557417340041104067211918716990972603785936653073777086106846517363558207810583426707339695338430533842446011276078883134192820503703595474815304341619584665740201592761555341276808517001230297423596661453825748737762225507930174422472370402451851927392379992051060441046521021628821708487136178537609145446931040052175690452812045925886433103949956631360119141093271672292604518410210669202716542620368196276955410016352324240092399721419159564629298812049716424513955178440506877572483788554895712729033708888017179715338745118648156401837309436901595900903643347934415550541087132856765241250658434494149502225051397315070842686155659309242028018706011584846418689478108398954904508791762797106695182869987011610122225882798310659923783363119242438282278635391586213377205266187738064650971163401675696753409689991689741211747064450582990686774545513606959353114025642766355335288386206059743469011158592797234331230383302597798735148975063627730059467983356174628657882271515582346437163319955978589754213488468764334191563987832961431790891087031263867623745118639816728322913469734529217864658630063771141604822518007492301601434477938818566431225312816750306711667840293397240272700557650059668546943750486677415068986526972002174137449848771577259713856394235859336334482715074083631931608264769247852199179961022105592216252136718224140092571241407088719177417171749371775438880304392385756792690486544226510968153654017761648282867704174579165269200182366500986283869868199213948895835288769216354754833223332883015233717827904674740364822042575527021590080690052562556781474205441304635039363034467334249390770497030237765632267343308823630780513583811019392017379994082678453107138898696111109048370104500540865139427877414300275628833201784936135000994238466318243677171565001208577508941662511878756684563010020052695084000933161098712620083649883673973412652418534973072138004498962598032599307094824803400290907883733629313481893529025851347076558863763615406884615445875563799651681017734972773735528909813248281097821717681370299409435141055728227472362723257512199231982885609631775781588189377843682990635495729020913009656566339367621764043181188861903199358953295859434228574196824247649644866526438173975277849594419357316169310287131386239551563790010901495689034927906265584425647442105728654174172216662543414582857727956468398075850432610204944270975370882191008147236949380769085965334439073173388356817109830964094651225099652535824958847070631101721319732947074174753415719127710219201591511302083987512086209948347403226779061867600154816601501286023399167479038252330067409332812426260772871923993163481615532689525370211964841600752310018387467449781455724764230123055242004798522756251569877521179370240774435387434856958332225072902697315775764752220028195087278148229427480486546032914723169798317775461370915452175304788796653380972961059304970760419845793502894942769310937354812852312696168278559227775845523929390155425905486633364508516204773283007506331328139535857127036782831580138049531524850172092845610286609465166118221304189176496203278254046285907384346772165571768976570120600432424474477409250518461576056154820069492300435710773154352020641927393627581619748552538953175237217393828588991489819169564849398294510458090606609478609342229871068975917440510130738686637530203438322096359583625814176906721620499552559385893212714261970695877337483420413849210853033508338957390430192322801405112043084912565446768319736803412961403058204546167635295273793931992656762340386252636484067500098501111114144543034422980178928932964666602269137468873755010873990650067676218151061480713571499948896654990323609319541548351731778734244057116807102965010808017533040188788344799091519360551557753712574268500138752595576024315050891893636612833772211089405935921816953373239222449638941025109598415251791649084710860940695131898875902152198226144557770546381436135272422908467011117552249193548502274700096562268479664346868835931752732445130459047530197305541923439402313840484868916585668327484163943830349477467782310125961502858928939566813875612226625343755949711689161027190949954786861769178438052651033592689460283660251508098485556697889481697327737010319919634081872759082307662283956120272984745835480777364677277927394542008932816646452759965898131005870347068640860796306251264264007035886510718415314050352829996481052905501445377477500900631314397393622644461692701240576149598470435952495501862950493093647650744931895335252261259015735940407689708444156796876976203265841182089608381260143227566122572101769895906167533378736205183667779391346690392819404899424642678904206279793665862313550783210563336825551553312499469485485607107285270353949060350805288224865384841787833009650801320379386424263188994273399987294613105084841577504852005381521697349237864930505831415654011521678129761481415685801504861637162823007924381202096592519757379791279457980534339981795427090368178650415728671527116010254090171685987494977593924678126564155097236914951530726759984585694979794680401411266095397743715439149380201045572128984175603347384186986441730730578070644359098201907521413796395041740158143554370822180740363468921750952744921963634401567138510359651176710894185506991245530094515521668678484030245307349536817095084103605941604605983468587000801901240561514873974972082333183623832126274872784291309556491382360395447942016401447233899309141447387627827907826542676191253431411696427606093784837481102636202003559064740601166222907591669170253759406773862416780987796938624565743532920961606913951770646335787135529591581771835942963001658685335045828132027895829545090809531500473091374307392246978655035251319554101800424988816187223970281476467528510178625187683157376512180117754030282503974059652000147741266771023260317601024181713672004801230909869317194556940883474370536718444547519589899890746902846016692014696824970796429832997381166045003486800065366269419924503713029302954844248823440253467911871356930672693910179320518838329714317409755224413256852813164546468453014688893785311704596839433952422532659404546340761458032836154734968347940718978987369726866034779788068714269553996930561263873143092403553083696200750486403672417682972390529186858680236229087195557590751946191878633251196375530406652148908345623817728173121092760049527063180339175004059833813278682222543676922785822260988578259282762140453096388677238088604008208347171194186543340915819029096489884873758883484255482284600074209128656905635560602656638065953778303007852147191382713578377606138400690336521863141966234406626797185909152921019177331256513389614979039722796825660660303641610503493694340296165472291181380211922608572962282554182129849721583311818511843992313089978154851752142448110686719241660945484814804800420942597467480418397247601119202270800450398593817645268508102188477321834817372383837372835981072226114237259573071822859256501202755672542536659029904932226784277799993659676736721088003727124058018169947181495841558528802405514937992558875906244968698598394610226528025503748552199400388730708057783865988659566522010939361013945569195235078386170352196805470350433676763574103614975585742728925434540157560383823518676317615646976963241755330028711152013184206584261177962173888491752735084854618353825931718118164959732681369934695975507076882112824010869084285384246649941456361717832437345179951995665915443287304869399875013134895429286989887597217303977060477679782612707136359482327338248947095071912370048088717690799005487207196476284152261625428658725398772303723630997830513563252980459210948837277046621208885494855206416130475110947285255905528234020383843169120333918920207126834580327558205716167627187429303778196963144146948650936899817616945263389353785487251069188936845179547885375075345410216879395088383875771965113500105601792195494325130963958185196405675987981984054495562878485809416774971718259564517221753391742636098269550445427565953391833519040830319684665729219937462552386936555202870019151496611224920238815996501612978704322575417048274216117625300000351697107198712225347782377712804997408478528593650436064273493873013448907573156530841057835584699356157043840634067194146951577470745994553612029797778008009270464460776564519101327693941692201189965116547450743689940033034003244296456064191858631290621232526286797256401627587423196253992860908224316857458354033146919257773788604370760125386573582036210856821153147884099118816123957202631268300137658009444671015907856879144383439309269421786028106565089876605485709275881172068585837663720876086514393095180341277201347297998282443098316496266869104749033909291012620931730862612169095046913408615969133340534520921774564892519080068130136347866765600152460877966984563026787348090723261101231982680559604586172560883461761369575068224333140464068160053537724456668190500723504521816953253029470966632497038558143976953551756168324602567021304454980974111758225902552438168853970894210538284022935475881799037585531682648312195563079649768351352337579249633338952792478480125563899047007338769065869861094826981033003792519813183725861146432375904129467157588516549079520113623678541976817624895080556588422338434155708484851867287730896600086182734130928568302888788031715412256390677236773016585571628367819793276652414926054690458413362029879106026048401585949783694875487135694114471453103551836886265113278235342645232898722922574086651131696561557215473288937791857038024298625097230198504383242193159336141482898675820132277999295746374319650658500356630218435822822501869002819554431913249104912030451206000330326888114784385706320794625582198067075310434794292027179730396832845975485980186065510498385021275149230300276118736121225332666901112182323320304549569755372739783952620421810030107266330379538873623865465120379639440143955938396906619001368235980768513946296399964423974747588118909977924935393628573909094393214199488717747771753276534079054484414101813842063621616207030496497664135086204146641213115981960577940319792536548695418856121704611482629625842249442372924609108779111798239501433360555756426987528309172653270217773222740241377450984623107264932082768325853999143056957496856526993913297173717350695918638033102948715332321997779570006701415791163845712247408675014348835233022790843708550060747307872013205463972786854805390299534316815963760372192532574188476202245273443783935615066988638008291326548613926473093205967765437155258441031304946807184936166458404711825706123885663391576834415889748104701874985282232067079102090884387523554241831501650495076887926018198993489380532037922050680258811198198209294374564081100759911942864281851294996674419951916360644645616031067840469166720737028256820623204360744766136879878752452328273312083548491653999121922283555510247838922575573298141603973621675456231544135740200970284517814160840761446146808411100829434759932444445512504198013981241293313609743828947134040128788756880938548038287765685190935217540526424330079916181919416724727002441696680102425519027150242683661763817380313899482461588887947524296708671672531792055171799405053014342762910204985382850314544401534244004609285483920232742067683138297345152881511110892297663935282159024499898178878492466777177492181122264130007385038470731014239951030033698947445800651300091873174019571991274272918268748899504506712162909662869009144449841528775455991012761398886628984446463129976246294105036829077270162292379287535000127915892452987237281451238632330952195127115184328155777425528503685434058672863238043771357349146872546733833445659524014714748948273156661111016745707737039766504439163900762221748026788283634852366263767419947423424124314114730300938563129879069431690271727910242999111064790577517327625951457046168108110601132500039459380645311915328058232333705357175355436688400677554321316557977660201916230412303589000738819271273301175069073967632205304637944684604056672309779237099294112223837940174474662599124112645572671248267937114994621764159670181145888698972096701527515393028837100464668239968316069586845667554915798268636844419290967191811494847097279967401889039704249626071669197665258529033982100204491258579405276164946599005711115952013751181846123781766108337553316556889935946966997330634426604643734365710359080866571922313926060226679172541732263180039117116441101730837277961972935413303447386836228975570186398803467678599948169955120514077599989088458690028784259579109476691786716116605093374676425420381938899876817493856707999593266146771025271109220658428518452441777680767524471494930632979034354830262903552518108225344508779017956368682685193704202733378701860885436005590158953499884478300913202415368193580330040001378875848905679064184330851226188647938226329527098796553158633751517799071669377734856797193181647486349869355498193791766201771728015957067622135820984028574914157771182084911840172598935604931091157645372191013973649404762167122607857647104184644301010801394391729942907779854718747353172091970081063016839449118859694168678943898088109760027119769569484225436269049152019273772836835067328314626075565154473080250533512455389870287254244518919862369479929207509859079562973269427485328926576744413815789277476080790886775416091626690357199734303010156307532849109886489944834480540900616384747840099631707727881820132482268388140028123457444920958739262657983204984469351940308732769618517423645200334377616750040600429410556554551438993914279157184449195310798635382294609078125875978841763401464856613680472748149857133035367140372585362754888094244373958189795642673447417591552471452430739096954809592313442519402768762435659430256350164956743669014756009966792569389523996500210892078813517827716934688868651122103481951757650807061523896516524476914495130409206164065694368704988471027058577574083827986438174958660645190989532331240357329450474161672546388036041824393029126555744908577311572599477111097698032533313274540775500460718966134887989142944156739911985036842467019086853228274607513422408658107034366061835850201549756288156182575151001423612043802113632772122668579899315176071363329388529848111932319394463513204986852203947029597531823078305809142468316891016740332730574393976880027184068019719942809384200242370583194579017969447820895970511435759839598274435608918555838923884162725937025009633836099896031961893375654803116674614245766469540268625255337403486777484532206537089590399877277333104517288279860728296779675565066468677704216542651885675323965951623734174165271812529086294626071297833754052763045912852387219034757604617313241511969769516593596534356154135109876377488402504311373408830487824707321882095246482232729669817909205655340206449953792835909804173353997174114583296551898792868500800356722194957017392504888528508122588092587154858362322931560699740270990330243707407682138372887755088173979620027404300127512839896855730922208897032285090723926099291335197967568812682636460543701369335784608992807479985904105590854112004224292050192287439764597592481015154920055653262004596729513283704836371045559291729829879987465350092099408966562758343860713016935631835090994431638125313288040611583872182074950967413688580491096123080411205646212624207220518115406029846226050068101501429957496399925631013200909754759748593475553413887166156801938848617544725873809052239318485426525300522907783313106930294277351130113531203795998281320085549213444421198659742355735158632292757847923758561527239260272238272725498382195739684622106541752604236202644957396032039924138427260889267184801303273408233246786222202329961161634854225753150408271025584315457946425652693962378133819977339167892874675688871465284718819673974954484021785102128267316950948887671092167954272681149627265833743391642441553676486293275569876900760427780363648146146966469058615793290912871786917145131228126875384011147079943668582524377492619456686350664819500149410331674378222581582575529824520544659252775779372971985270256241539909116071147882845739537418907933942832756844631876521189843476710089255105461295230952416234146411796675488546750797744413069486504959598526516059023937026239651602560496508830097139672062095533099430023623033832542056718918093096609830872001477293229839499816890289094130444151396172619661758849447840316791651139558754391623718556167880730977508630944613557844179257108727193937980309772734077089081387399103048171816139625373529498933092165044777074794937523141447222096402335160606000952739914609672472860296991885220477324575577925972254903177457667352360444410513178545001429985479299300454216104147224358782265769435062854612958203885905403695812933873713547828580961712527589479745766156877706628500143360559292699288943993627323740295317451410439176439539535589706775810727513745413404059885201604789212543412449644909241571870254756735779977989540375617588770137720766035159021549965464166015035593412054928469328738343651992390748748251499304629372222819464025028624688744896108247678135194348964827920228891567830553077925671270434448622624077023333236627177658604949588988793144526350011570768395260911166268843419053046586043892521924556559598086878337065248122176073386223352342524444059677229585923629384648454449464351557219086977386047196723515222606281650594018728909719110041825939665975189532696176602124592738427080628479149829701252187189425761608314535814781020785165353817405360291096389278043852650707579601797982617734418626215565526953465898829868332633570680489136444613124314381840301484217119540738010686802945161396816738549038075515310001708756211419821975478479343117359975740082234570443245683535663694960498307098914039705762018750676528601230660319506968650625429413601892685913073633287948680310568433398762875559809892447452148851537957599043499700121697694784581128407561245079582673448092988607691985200420171422849242571767289659263439392484234110204967396999805619738945867915944201707584309799458186639659441276759340167817013475597163852883778889315258086044942505232368613323179382044731465743731697089680572558157324141951362402294620900310402683793974486852565396720288734712184701408417054278571855423520669138389820727343642982668711783129262031961863759895951012732362651157848250806199503683137072411747439726472573366489851441384641389908455041965980971952530240942857216085011263263675748984651901406316558536765382916437215861044317730028922404118513304965631167502243380334498652998503294213018838392159339777212501011315452902871949432369755020336252466981001334654925673641890109535251705309614576653862858031869598875993801349371572504102345985160526917457056803669314678115302000982746791602076310431767240138133661911243320493158219506733058668935553929103214854237971087260428637921984150814655007300990416203879496749481875759891136989071546876104551735871981793645085556520462069463370046638655099294850444350373037813935393104637569824788378712573078211362280652951072217935140422401504771316428728421910335522322654754933348725811879338180934134922890328358918158506096146088540700706154490392020777311929089581841507951189375538174423990537266962388384569150071233501531928876656173852927422007171887599310786934720533051130646264371332037503874464809581623945176570799057802517263616079771025877448973599124991721304530807227526617790157236852514762838597294535642702413596875852063048328019883289991771041685573440094815467420411224199095868715489021427256856283540841939334123360640341065444542397240488341133763981147304596660968504088072360273962187013410490353765502371781426902051922731780361072436843014340809312263197728333817278790315618474902351175117833956051430999724314995897450867545937172273433177603509246018290666364427620264170339241160528083389870546648297384199710144145902638955269478404222628992216529518570624063413773548521688944949735706500911295705838193296422931954536075205427914006077472574775701144548884691668103579617107113479330134114965647301837958057800494147472349130811852173601115885250290112999576220494702813498497461253138384044684952987034626963661861197412810018216586853022730141669578124903783639930015098944356438660011124100775210981723319515018748468314467598400323107013958992125450071139397064246617556381533445056004439388246231606705470104768808803158440232655545855928554911163251497441890702112583417518610234152008896506870862088281137177787880194197862761322477086451367814958849215731434685012822943202212164931001696694271894504720468190105654122374658631471662224897778467146779665884102359122739223443478537061482575320934890892697517468898910213503734522276306532992528344889422275396617791688147672529371284030075937419897415285265241680876192716912141627850762703374725981884966615949841881089203339906408423998140567429836456634614176906155405656558107587393377858039641484146752327439355406225317866505716988751110544307347569815083660577042414697481147258443922851739679614851989573631666721953788469857513953274078392325922732043681292716870948724057617221926663566561051607768033186045804905556982193626841371887935128040365106013991114976129007979791717659010761910737609589762800412348991510559604755388066991240236665668207963325462865942566717599419992555302361891446345864463454538920353762819587425749112811267650653833413512835967441779257366080405268537874797975692802882713861688218651671620195561449904288762668870740195933957996270102537109855147937740093178784773101597806743470705484499177628845406319926871371540497364950820265421505033101785231867770821714911416482610335500862469913877101737247097744658776639712288846875403728964472367847512888193801772156958280320882698318896619347268422415880530112023110587368880445096217386675236650345184324542457054542299262501941251425764267144250695110837792374349872894046452677557680003866067992032387472198039988437541302851944898425668923158889104484302714410202786827663746196006731236917853185462245986854188053944389078812611101394802990740248260894669599568991112758558499599601800214153327143733640383269985721526331936894109246015321825975025225936174845069663149519637070783293560754183067045078370079799618513249047935701575783655782672827601014095621418075681585490289873353127354506681935463208241034949787196487765115593140852343039985592667210472880361471041877140859466888281467312299704444013478792227684769279302765080896606213675683658378665886576291810515677031089809049951854191518871049347722626040941709996473304477210003391565173790739636868860836038262948504137208383824854609329897966935502535226795858552276646080084166223506886420270316664797048721792991061572264930314031804307585362385425247857876086980908085798752408158845593773492508370677414866244120543384760019594838781194205333533279882982856045400782554217873231797119633895415441519114712805955204754268534819368552808676033222950056573138454103477311364537379404442845397849631881545832222317976306966627668751027728317304703956456640468488945186844613610929732793498524251229604775757926015679860034667805496110927568849959658171658478833846959318052900904106459792098807602636470091519951396911098448683691092108334520063558223691873868160691514755562256793504653713268165891158009695320365496260756395964864806158118226813543603217002171349996364257690481582403544315979611178405922639873849239597468592638790866006231306234240515095438167815241347918201316440640727606609229183169360744749995261535704200587865201532225076036287261411223234754149833331031538458892580261702606113177907391716619090533190808587538568320643871523235789272384364948283105053975901591921522019995151751683567109349017072337556099579856627610703548385860424191594716371076042897739054663841608132550813158570916621526811242590006608327823568997765517643078922959022296823591090517967184541772954600204049592490881529604299084818699533026820281105988150049667634704321360974331854168981175708296353637545304400839402022323437048935118907846024513988005580339603415267376755876250593437684170588933944668573557680659746109360559094141121040384804706728657632487632627869901006873161755321788132711765474009843606322265813353729461356143206852244977920699703197894841451049045791939186466274320126206708964045653833864825749554898633772870056932690859732310532722546746074707294797755574607801186263233219654687679927564957435666712829195475679392365875979923491692218331236191483051038989167406533489637566303157717439860740276310733906845390263955884436740826791328054186578624882798995620029802337244713850550727341186247627004533452413644860498623747851963748674821294169141996401608750316001968150032468509451862080105287106683996420215324852338341897237605906344791443876699516257354661886601969570660103952966799622775230146804108608807068079127577137766311289709914905184098406650334444231592982687715655965225891186186334251078242135337503571666082129840180957718367448806538617781380824786309651160284545878844785136756553062924392296270917834550846096901345102870817663698641104740548142074832554864218935581590533452312062205757268334472445737783262641038321767946127223769349408911941151996619858586064614255472211499707293474257288086822627873116236738089853169767134829242354322100183833714076829874064250639645129035375799520298719738121706168287802479535658741705770660596752338269727121643525461747968772708712923357292993497439665247909964461519832352596766900945241868399973480169043981877926919419303831483292549779728567345692845161081545030248387225736433740876036462560992576708123769757750901500043103101855419650329862834378237173946522629845017831212663297064583781923405854155946515033149377701246657829476322205943884179976879506406412484261431193586284962573540962478725661088294066423960517285255055623023480623538718624501294834560876702613473366558674861503608375945921757912308919755567460874366091027809331341908392616787246001694836398773184289667849005222864788449976462049812298803009506749596797610354157405875428433807727497961968492898228141373238466888284824532861727156093329588496494805283665443631150338300718574299312784771736572788090867777050160793287428647219105560544219652092090081635276990603009684649737820932681132236959209135294891213546299263088977215610569349171491055010244414199542875539738817416787567949170562041725786267114369387210044011675422778348898939232897773549108847765491100530425981210466186819413948451111060849937885322013273782315648856345375150293195116248778333895091696606582233394939944848457416787657277041205294719059160940281072854758308758334768078048827039698813069374275331992767361931337251815568548521296022675855381136722148203446459497696858006041075479891931999168061092193674588594214798170249335265344282750023533096538263073223061475869341054779952160261286978276512466675017625919744999924270954758852768035679794748988114440968443396671409507364090523470244493266271532074579251502165964448800680193292767795669260973357159011971821592463760140605666593059655845785013078929753865224423970131714046002662029599449277542040616466889366219749656030482385327421982023603562336144696890667581452795874535815075603483924162364159426436137618171652073987134773145081012088793398994731245862674942540576529936400039382678115086189982501092648237311055827770238166988789652903963613551524947639309548965923816498583912497133905853295093797332887003569344887947221146185924326912214293847872125208811855047525068373632471716344978989669960980827436356835559286667612580971797874515710482379089188288114410968309678450404333088989408198979388171262317397275310000467178724128527558419460822000138529710356670359594885582581132318405821175758849662220465389747573867852443961577100772755692057452331805204498224496493495235325394014982483443125633323658289835580742556919684662011274285596632979696391439428445461377997351448883840936993022340761385490174146311686097886658976229463675510144645805302925832932183787638528516920646228581217390054367592451400583232781682770773849805288536473161756142211561191433493098697657825420411570037145907625544272467117195308501399113890732027738820040902915728165069006771795554403180838668793687231320418358735815464390757703848186767662741723112750096257916533620957801898729857092121677485189654179816854712421906018783156365067962807951379782583249444112826680808673559022661713988057059207463542078795971556636336056197821234065875523274649264324877931719730840234692461514275934001519571372205881838738007477407657698051829433758587663236695291759063172546036956408988612396224563097931526741130603359058774696901939622006594149960391941345944182873869399799720243074822076267574910392286806365867056385805468933813751774138200248598461291303250491415613392528894475646028926456298404047738534905676437886871240795568708287936655037340680846238535763082069610911817779464756361922081430121620417054725482849586448420421260054095177991788493703184126090535086357283028251349846211554008104596309704845745150984371924392144898280428320648355825070404663347350820492933375335990460140954879310428207001217747644154272355674859042536667949546710389687750147098931899603933024673720256954898821539757740898968722274963959731792305293021544267929783367493970326261165278768402784501295244204856057798157330355344001086103308437109355553267879459445672061661755251701398268058455870071346105812186804578714473057105766141017906413292895651451929238922464121083111774854824838890568188498633763701953097496416209962102269635534190596409986920342687073775282865933006777653642671212357036924196053312750409516344725870044129826698269626027021240124859769372150490184233519758111793396211338689990080502948209638585026913606233364688009769316804751987855395079978664159465642028785428949284335476380489318107664835293590586690041445550399134755477404352256247556276186082379564913077796271553994231098662114362847298115383935786555984698647891439465420265794737396478474671550653533200509822269972369462927577361471356925930613421826403361310215673270150731984021166283776787813643105536403059018206107495021547424940113148749154741280682313515309032975358946984143945682551682848785231882545944347498747407826145674746021568463745083278246441227158109119362776680365421331705727010989097753788353465890976419773645269489309662041255209352856348863555215654781959493700030505078915255640750512335900957674698377131810538537822716455676607535390230069093410543203967732225939616565920511176115941733102234552630309001902051566876634520462467687393894424849058186969797441874538139026178565386035159137726264613510151478126767539584295356778946023176659481915165154953106462438332903463013940597543890495478689934176480807604851607755391252009387942648965783166319545009560515921039875889450800247179495958272786013183245803795025887666518495021913227618792980625042857080686095352217286097727280976745186553575889842850473225993446281577464544640254539641091087521862739264711544583945368964375342215576819112298408594754493625448341557519755907305063273012139913135114634781130813091756530364491390331478220351600365098834754278628365236712267798645884667127742526995283893939015664425602738694425125436244414217478180609256049165290514786585535894403225858753339596643444712832916630975608864146022939337782612667648552510665131433588515204109984670627747324730245766522816203940398892398207582829224504221037098427703454914233397762012055740381933238166723545806134253793494871736578893485524381908007542943230767021583691664336205894632282624993499287609510914975330037893164227255767108054824450859756593024578113612140061722248659051376684061501753588713077319551031662112476162552638859343439442451077591759089501928199356365012008334137653803355444019595092565081142984949496410675963504312608484381126720931858878700814883451474343106700704646133534795666576963689741234576624687122580829889419083657142592012045714332164185685592608992534539860539053399056325353288577504715410205025057208773695575505200293497646678567391252809344823599591732922050204807185293944090337263963512915924985357762997527348842030495272792639825495904274891186696199671148597409364929444691647144059359003201718039267491079099417775719584494756628348594976280132207744846601420815138982788545154003122625400561559921204343693465723952094897462361257234503900161062295191333390738945353919105700605543354649476665148574146799720093606197778983693144105492730371901103807757027938324385433085464187714595475942598544674716794253023636462240039914872037010276179724551309156628222898675737998001842692403949236597068095136316979712664963362986109856984086906610000267584501070304945038973146128027426229682896965352194090655852807438687150579357138087400410195410809110497487407328220120911385437776062397238451294208104770226622732376669889657471022884556723298753641271134813776826490779037135786552351478273679465027027449519977758041623518438894187564628837314949230025051934225784272334017586288178821585856242757355543876313336616125387681920520058882726338606055978310445913870365903336372288563375104520542924653090324106264215266540722728999975547658268197895452355542727805081614327625565354548285792678311641069869811723759553175330572795242573343001637122460637424123739416037428111359439344049073840634421796356534071006344073019561374302042681607094907241272230424945670506642553892198583194521301727111718832999048857326378845139868317737258409785447048375576342724790497239580239870611408325276585252215919367330767242200462405723374094507882111911744714554856412825919715683833661312654353170186468137797334713356271996279386148611515776765176608285455876488319764084218857015090217274867300384554635046046969224629627323473080154876324217107338850793467836073897482959213445428726614081802120332398471314425708868754230539458014730926614592299089674735830224668503973036015315745891950711216410768415558883198186093731198067163324265234800732728102868600088528446619696632025211169204345737941759540013017299199841394821929234196179285395358939341148648943137741523022043195919224459805062014366053328290383927799258268895406794051596511178282698819832461335909942676040310458771639378930475203487187207081500349129935119898398940891827084894747912499834577314804414586488174835389801836111957462943531083446410134930312328960340234767608937154140842900678618367284507564492225294303018822264157488645344807786032147159223276398961383586385180500732724754345881143927933617014809928108308222667004959707442151211587237099725113698848223879825631319125537873268118167303267918171159338681257993622790551937362274890284807520811311591511813115130610815374232467882108109623196806791872064976500076480305947531661152336748469501052198782303064116373441801502766185966786645184971125679654508614560942631930317174253209612470002067624289431105121574373523703257692277667285396801209329455250216470923886509305069127364461243490970747048906174691341907205841935688992780480687121653067306962580539975437682606406491677327849052943139236456782893896183903579513654236693757611005144868798079661247590879024470816627155981974763552619812986047006640429965346416846288534797234859853612702187393268078319602004098032072572993989457724804920937901434592749337318240901985430977461738645488690169671120852664554047770185665804652211422928926789192600263396306361403921370226160728156762792713196226197067017985629610386564638087426965211407497930299598087624449077673177525675380444850512336571639438043920174215809439672846251239620290688248478157074367372715019656429191723012368552473781273193521095122303063785963729392017174012863260065817295933720319247206918641984378087583164599623383896411312000329781471849227188462212387982870593806319844507688120999703594604188310697071503808587052956606602103633189924843626958595938000361169914279420369987956874562851174508838295140095529927871139238698721497279786254447286640309654204173036407924364896287760630671702321407231187886767894183373115170201257165140001487721475029381080941254393100655998431720289547853096378487556759788987304263299824027044180099059760550192726372989547615157727147094788592358624815641925630150206008095602042581394178128776335643398494494076685055141999043349024820312951135036723766656297307905280000876902171918160850510367326083031333401029630927673607252448593771891942506939129249519661488602227422798280060310716605841586884586315875576385166008025735522277500613765774023458362464988999259239161443710344989877039273436837544492053723598987088500306216076076614701015421107205989457682263053379550639564014562818448043603928278960505799011654266848431381003787768927890909300053436950750367154952879362481163520396580469055340474113980880768711005151476686019791490578719843600541302447699522150846815689218507781532789881815005097596175120464340909177492718636361307555128278783071115507468534585334591791902569615880819833462127371950973226739442221126870835174182337820009576970085571510390317721894504577858407456997321304641765204648807073175898468903737114154189902845656777125187789948101981646157284549656629930915164637264260806239835081682496134157294281726490190306390295005435629099856927003932477507936662089760661274696074819845272576235031360032990337106690115157471407252449900074441374353327366688705650586834096750868235859507689534356382862930825863391476575776593572789667784961432859371043637019647920531364217459804965097614778208063671882022282470501811627216317240650991461062195858432152204936364565992699993254461171734280912915781980923326439000592853462955056368794910178555870379198343530146448970076091769372783260628987924802617069974801042670504147274875468126909431239320525941602171512138889399335941782127826039220832094148784670481912807854624313229600699681148052753814109258137266342554213701468350807138897027564924265210690119709598085875878652695887470573051653305576651185694640666051460632297294793066836443020404275166428536859193535565671033110759781494573277219802715234525356055505594607989003014184163744674207774539797049230329567871218755079689606493767685459932672388396453362383209372471853372447968448632804920184597120360315608583206343848206515142186581364582414812454437828307654875603443371925755544499391250585909200063783357951098626396194859264992402492969250751086068678225901104299269510416941417870474659966942279470409728786110354240762245022952689415244686132384794493981543859298427363637512578815757250680454620797086678833864437637125266428523875111361713763624102925419657329516097347372885256189304328811121967040234476009866172014199177537776082325437379512013109985481169521231076036969497114337908175186766585682180695419801646422098428826338503384827976352428188389200412841507533636030535245655900469357703978564095556583241345118281685977542754762093957593895930705424219915414492430378913897995033714897947911338476042978063649573910045734455337809814802311770756092634152579334569744072834136559458495714664509242827066632361437741226389010658529293712471391034207689623545619847301648186780977558521195007402583200400568219887110213974869956329492381385476728280768624247730467175960419975208461143920974603597500113588113600811267571050340639214978405652938199110600870826687032287651515239254459478283035018208627134158028497640556331281702183180168021361432744192729547203886189524757208573419915759309940982136702015270976386666757810951200175436317430733858020867030251572891986309996224114685257180254945996823783090519652540622879979517185325553655078078321656615324710805076203010786048088755829213418345111635154207963843235620784831173989114839170280040152896205339546770914579551189281558905388655888954776253908073151093844117751584659114474852460372238972728821342510578871881672001004040866683701517295691227467639473677456397515032774687940912235264413350032694303185409045930940493499598235854081910357942044358311877164517093376681067001625615514438491015500699840863853787682747993787509789753358494002224455188030724853135543645463978201475265181274607972767867934074591504428602971135808371680050785236587368675059712126172470226056342750522231387431133664100189003243272678520696975831580624965119121929934642728942826824498488803122378182101673414441341727036706844261886484588235957790962210728689619794681285935364539886349029290018434043347940131938117676823927206924683701790673368560407953035831770660586237747254768370987548720051836892032613991957095202320979812008087949382285593711185565504629836070081404628137212101363731550462662758954995944939723626370397892694144066205052993136828052398029481945848463786878372310263261344267291948768390326174852945227832391360602555381676694421888606293639328511776443119384104044051938919873697493548709571965708818105595196786501326633413775047202439768249310657197995515192722146918402000718787194322298823192506401863484928071945962012684653108889373114749402462853093398567750607170332274946275576095872068985229436478835911549802802442191312612116784741662263572517183182438826303887598946251749958212617601058981833461934848533836972063622998377129324580737469520514646016559181847368472913397596968659600100519826868673774542999215262672085398491015716613560401480267735806350118230853307003018436412329646670815100195690237889777182653280957976023808257246589035921555338720723564257047967814965419549416434852374707652050575173060174169017537748423555590194839960265984183972020517254376193640803996029823003072960111757397175009610250789396947223069401614135827972372534956752822168533249101630871876445297501276366042223051458613326532975082672222126850477174419696723886941810356744832702054869013044525736570705637415236008951779757866537210641551688618592933519156217489947027012426135947840351917308145879298918087474186255457422349894052145031107387213846223846477702551726291012416216734755300126389625773250160646334992121686717795671589586228821942387315187539176265000020909891570546265689126325591740799754208659741863311195536844727401231438364408191718142000316496124622465670050001409576074544743552437850827993277856889608604585702859508531777318417736282749964060589700313060521879611917894821079564808907264150613550218533195747147944191338972296586024437088199080272917766804547784055393357307885592929832102139850843767032070855129753821553736981388062837070470011316027826977441872083878408440083974579199291289160932816733383414440278354028167012135733704618253937816541588965177080698902183982671879028585443782875278706178262130791044852725965441948372131372897997940638910119329787520182591717480547042535009105099072254320280949901777727960356447332772667556055642847986716920393982964109368796876574302107767420567892084086968913812486437219364467567923831897667052837019586665947837756513669025548450287918348417291431493901439595066665088581966885958985812216050082827467488595071270065196754976159529357948032047577010166797944028165724664163222245975339648826244464984666815855149439317755279991833848599742021455960567466763251353198042599393719787878826449829423855566131058692644961860107425008534235917977223044193000455778479968957667165342131741050607565596936128176790786663108418799383544588454237493580449921126935855051528659518888930185039312578827925897098693347511816127402987049040927614899647288036981583218958128362734506901589798415732531159199024012042231351295747370287319887897959538426159545423930945170471942365037284849977615582265632865856419859565825962835149781014011628680041662685886996542014055672616839703672645116421971102296548054184587749419334999485235909343802428394466599557140754096500626406952074409152712588239698063448754689553410500578146519898989160680073313500933781385447040100039678375279575708129289710007662191453374420323374131279397711983539606315891770732154246873723679423606359015723952932884783229580654578584039058756470459743840862152292349831576277185462174972489139889898808098330038827619245404739619159723740653702311606840420444360782999052084492439729919063250687636777581617606634794763134714061369116481407265854412517976830426375350857198509562718605322653707504321753794528509121912074401903903625014058765226609917817899660862972357201246437406484084738901019697884168507478061586299897690758290203024805277058642505315359065687828948391906222484546599938868950035727371730094892282302264254057652108279854552448856050027648280088689656726731960179186508945193893324508991812605184416326089487215420748613418042030399436487850851225853884171852036041826796046306464949432642387761483130509242541917421231040410273664213133361115934903539504851624018074114933846895065952878870076518673683910460859551421857970952566989710172612415157775579548919804391865631842664478507594869126728841810309931179153893121544175188721434056090228803231875182935876412754008662677672090543777954982628472671069711441726484851358145438759106989314022506976553095208087001938541095781941748424791147257254564093897890201349385978548304362281660266827176320655354284549943733743186375619856469286432072976766270485911350616829959783584914888327695146021112955291813895591015548870911750133986070785393533810661672241527664945523852787689019075726370689240282472707567791394563095174356753803147749419473608545770840268437378781518011907081516481734829458410626057050236521199054959252185568342642753474556769303111791744036311016837059487839377530925550693196799831731334840101601165302382544413832119894396800520203273633525362569020425835485854017070931017698404938541884468974653698181537981193383423455119684932869567114099652575668170508040275133708679808863339807940716457304430190841300488253220701398750029770550193750637078387922868619170952716848046459041440432449103661562671577980385022420984485310213427389530647369510894741345490278346938442914447945094949704200365933133308351385388517330858455994297983425696260167036209767126652450708821048849195638683631411396318546263485968447238336748139580990113506674658787245216770320368786806871153568472734213575389679870276784741335594365842788853418652884340488665214350969254041427965750508529580760668539929794627266452443125675432975839295513378274735411395489788005482823540050854152657868367280843759667309232670997546703988386897990789070793653390972318269862474921058753805752976650228958530145313024097404677599996240727304924305831620676200667435970078355142954582086995368116941371651525786021631229522978075294959677591996540466205454561246551244200515873423084791482768204977798114466659367221331668924148867401674537565779972230609233326124491602188715858607439873198692247243557516572343484109571601258163197747762162802555967086275659782597966810306432610930167585894752659650331824855709221726057987244876948121955216187749848348594395785174021951602681326451968511186277976753961413466084417206330895479768992715530639438714138763129549672407684995449152842394950877207345240354943355749191533539094844091667497261532430659226394683321454719348104319498096231002638839014728522533029320731203729939044895161810647417314457208433943189648992320271222925710371035558473821561097094655823036637197760386731999354475405500983155741450357161359778500144964839906298337059075126663159816832607560202952829532384950293304389207378050193010221156372184391393703883489008819672095460225450319580970852516070269001874603791478654468606283997636889083814110637350369983218957070959504857292734797479255517160884264677285687559114245954825018918294877770349628399070297827625064446849804250493418013312172126751460227468905016671749814396908651607628664149295240367335105002276757044796978630490579741543509541521641467535824619548623279041950760083803745508600959424022270910096933122226560370968959960910532430901121037489097090154476623969970146718496725681342468303775781036457538736350180988467723751486594025353310038904307584207314689325443661526226793316298090476245409457740732458629991048014465300786979263789347236044987451545932905781950914747246637464492020202537452340902616868142501558691131246669152004065667317455987857522780363790882980572318242234073271963909722292262455149626334107279505537749321238166627062252104532913541453217207758761019732542370705654752604621269407630797394193465624544906953802478983666848444682675196057617478489474045098644332171626773331275542664682905513225374192445797393897793168219874122313734163881354242181603183802932823774799629930981053202125182244157703725873035826320665671774974806247360900619823807264169483946368629650567714272919253877383464760419970121985867837722887295890717798450627010900748183070793859266565304048478788448509435722230457919419107079636197338994693656613036028537726429950688800061340274547354299160435498930756381178157045138299655923197983991471097014578280850294993265592418989634357436132809658075680898734252558596860279347412613676437800450206571676269173474079774531094591670692891792145025523626492069140856677824290644328985104476106892877140576009684346382879416418418255416613859770966340130197082786177740618889343318999331775324022255060760979756908664334229268815057626314249957407231653878944273749551533089466320326016491610435595383880390776326045573685231757166403047468434574975941720665865717780728852857318648563167557867009546828325845265771433286011691405154803900052012344879022263524115238263229727440104923480825683349632707219122770681668593665418679501935498927308783639811939089204001835244572560018842968538802097971788243827558548709414946550610137311926536226720166111029109816613408699623174711529235053533793979313736375354071384760845645755865589126291642475147433035553117722023395473048709632384496514280414290066539222217862047128188178133773592427548728873672067616185993364728454592876165541341566310189321152862780893481415331229265823513732408167304899033645447676250694554579734027953453018927643853940837194375620838561257165327427728690120239091593080029525613135383637237443913364628016388988434739730524832697528162406756801550062129649408282979611339062678086014528562071800931089597946303568379431109856105402026642650524689846146920545476585707757673166271486159495949838027021911257159297027048580697842968772798260007756082792711971553067544671253204777871357169190891232278035646730980531927730913144407909879329723355613694804481481518299222372891726475138609415165848892293569376045795789097625857957971198023352204573745481795896950198626030294465919875947392260058874628369578851389241586385294279236771475413518387018578907613703210266322762580735231377117523366502058869888285404830357243914615274939671975214144500242182122279218415400977186201176257727609805154984642896218757366392516417877183554146402326551339673099603343855498841634329737231472302696865026327131256782980301706599971263315098541255103228041563615705023516727604904415729361496767871853927213601822752861460500525145004149665757177784843843457585946772312160062584386729625388448595536646525564460063628844908993393666307840489919934379908656773593047417615295188876567733809217224951042123993161032911960595876768979641459262443626635815571951128339604891701497844671980838660461479644574045827094241513955114685045927178362236910838930339122992845883705485131699364932050748296808837399879069558950390712577971307201217258409356960442173903651989237012218608014762789975319124972588109377519263786633192143888373189286556660749292574244942810071319233273776470034890254998069980791748875158487849768175327650691600641935349941498066713302727825182373703973501448432938914597574826083012318235942069059901894371535610895519612044227183049068588978929969943597031414552233248658129879230726403328488860492773034121311820124541403098703892515820055859033656838060231893116312192580656240678300588985112552097017647262650706878697291606294889924397900865085344196016551585596394111557410843075315109192105907468950428803559529348023805425270876942580461520663821648700010987029051737560801417101225990351310069517006546541160794102259018536751058397124158056998085478415698636729907220174970691996948574436756381089551576148504426744500800257712135465960663518504193111239053287959750766982333172111180787356660819688321343610324614985509588295416995679288577364379206320028765066922996084860919942521104833823610512580823558586757375172312430404405079082456821084389391180650753585163619255142066587126689306806556336732610098919529101398974320851890647290292597190175434858036038604728286627244974660248964578372854435992646558592812650703512701287559738677424212368094380779680016752064950873039399294273815537350904892115173884529009336131053414472736101742108908301595449426675121535459386072059168383176513438341227796228456746056867444275630823344675731089043984140694859626458563259013456273179721306465309238005753222735219391405720316147930062585546652774245024503657269293216009974306713329519204876896322238238619920512589026369846075407901639916259050056622950744442208473363632402240653217989510857571597411409180577314757787423240343526171162496548749504432728408903865268426610008945943348055270070954129353043215346053210371710242142876747698125362431242883434536602173473712152686202393136025074919949690047988366333094841072118019014048884127830125714089179509344275256394555741786037903396310166453427222893104062836688762336057310874866804878961188086184352373343378751360284792753492407535669073495901060846185010609859416600570638086438655166079416143997799802797809720867128454616831814075288460701838799544523851267103552248361955880993820062146379047533201591393296442795429875132338744676364307895574478734240017445570420873400477837680980094902003419263729157767760070085573140391157363823517622655354389858536296090403250667262719823765916728772674941374757745455838994981386601349945382731805014113918838164690675538882555255987277203250270887031935690336748984575870354408052194168725278010349890569394972615520821663186662995952321462609429168964796634090054320490709042848613281526454506803723368336055771491205935506756834130325679144003915906736329878614112947361363914127658595401820279539836593777430887514465052200564271954496159930986914380068530959804052872033105766992690504396508169911028756136415892512670008811033293162043157236094316797348376011885171002311893056934857963846625947641009931883953896767233205731521820729557087850905492329182025106875665767479536005526013584659416273606057689579491667211095609444087902770087397012514597688553689708428152616003844772299620369458651229143072921873283195229695513271904404157531981638267962506211948433609826934821823292462321126448160602272153022344613269932745188870620901121165075757445928320190750398585958634799643018310520329808197661927173760350532397231969488455152691879440301212247377600706886899548401016309073045809418852619005050800307700642756107262765301398226901728400952531977161647446975589600676101711733135889714237237446050767771761422033140482554830791366427239651126781615602716865143056862459668144973001021528910428357123525946895022261731137867705330664107876996668018235393092084779379942884633701569114088337977370194522526320121408023250758076939285379719903145005285693238923974313817493527643874095003801233641437985552554114779906924511296869419815319094789947234316659809129890978225962841964834600067961942969802268104522546110840856006993368518810069007911030817693879572562239854199704286958260358448221058864018365083544853255143852602250332029787265071962457313242600908237629237433206329623062711973545081127740468952379882773918649864117699501721981805288598896253861258472192884935173325783218825915465689118555472677942885229534862102850265167084962842551338122733118842339407171857623416555553104456093837023547269613465470263948413148040064811231547652223249241168581189258389105192031214564514627237682887102204017015351768907616678090229754137371064571548652185585441122638714482293653124019568696766090407974818409373420277505286755860417909594156056510515531754950634761429797188704233975389020895178921793710955218178023624900518297900702060931161420040109197871752679765847181593995243669123878573865643368311789342154983850455640475829264294321622943232981762980202532780865754984399816202491666651572347177491027173555083515447866776375133682397820572025903982667596531788605122170285124747012585236955239524206621086855487711150947610523967196331908496003355942899885912735257030457560356553978721267848909608732511913089153625599511957009023259133498549930829419700455239371412270813080264286432044719123826013667871152098233375033350099165890973481873006626438303752399529940882656347109737258597120720137695642683287972531397154687707267726580394298497261323827788235652050275113497317946294043243266366523009488783370672750948513753429546137835937792451571485419983794285089538961883730847884590795593290368255365537293412112569809443713424210433307453275105799765241976003281503843914227827702408025664998790033972183752314897101102342521682299576872589215211841937727968355427213596913855857936162712525786826836407514029563372370240770897491862899804202166059991976449893017628630664405891132587720732403521700178423315978744455511826627288744367092442272391531133170370789440957491007545247417924077159118792439042610953926513679514133024219132931918200761652860621733020486652278365010132475317792632197334864991876335984003334624409160758888947220880050987253956751052068691929828897417212547029334271688357747720846178616792855028298413593534074832550622522045022786184852082243128474564357946032217359288423870400534237845481190626189084446741459850046553299306999047564953868112623515923755020523570583867715504581074308874186341197495079744766847307071903960816350327885789344080715861498171213704055950467813852817765329597894816590888891758028072025662652542839306672686950080615306119467644859165154236076829356944906458666238982220023689023305589596860255037499750713732697452928199379189201356198826138338600687652566957715238938566248683977109214132475417463126440183468997817521137258812098290425409553137428542153872155110732892797294064600538745392683317992071587413258534982924040503217762398767654968088208047772630110510016966986729727447052589632277817329799961941875293409164178182911251788432966911717083316918726643293481859663452400915761890707993280849518256417394171894289172903230750111336708358599047014244668973407616296731215734617832416061802192475765657533655283215476851002845774369746945112299940542812195505135467700986870246285744330088822343120255176545040961694922913010832417877440015989685325784448111595795182426205467726037546953366252758684639746301731955182581232143201409832504938807134545394804280156390089140261643597242557304647169072786274770607295944457629607611030745847017039652185099366555603805419956621918206856936143157543576906343578123739982894695190784412195667599446268600313860631884053040593817546090814563518800599571793673262979089545862913475395854900226397777863574440124046549306638667919972596569353462409747220176912947950628889023714423100451634735157914372190618172455084345413934210140593458483618366611105450756813806905286434273133300633986494417543173885538954803568658999988700201485930313346570452389159427392429160987690529606196624107983696773437219902109048617611674164378027513798865755663386377490951031047163161886472025237777994486899534374597219475271293960145485626785336951503766449951168431586455198077292087682387541279295660140940316000068253167696549476810215585194807502638448049615711998705892981005639237354161490700975246473421667433802609276458263328682185241482382660312399009056074218892743286019899674824643644856849377263347119999503745250227685379212686187183774564395504403861203291525493100434235239226813230102182825969474153165167879600568756349681627055995656117208717388260965123007928931164759258627979851395972147878515108676575028104835300263769448160055860693419182605917490581078194386418817462052987623305044128514499386512941871354463556439641734061305128794674476113336281290071083774696338155287012974377825044725028748568662536081448327231143755278393755465008485819654938155226697832692260865248372381534374633824416268920680876065830705396458801024688586490962634864343654422328379006095616372203866549000110755563868916385288056468477973443745897730130721148145783290701504111118041462371945501400860327283725868683023608735470717123300478948347898831293028605354360442859230520009248614373481190138760922366852894935998502729725803350514294606273924523744223847795224833621733528461041210120542112169414409534947099761884510407154708841384728804819160035456896353359809923103034139679703588228478235535032477031750544082610259317594556741778779253459125163433901278943755025319167429789669619948618710056476189255648489790055001632984389459645550098737295823548528927862133323592678358850617381328842157294362044524937605453353097293591616198164953662409955754727350807311860231956746881928798520589664665101182877504204780391333637678493758390853064739705909011171274640021857270442615892251574491688418431957376020795559440318877310878140458488604334188155515012995725727689340711428164505852688999960315304174993204043564462376573513355870470078399384188319692143272086174506859960142549731335530990032233987489419623917490026966961600288230502482743989457772726550167596083069009553836580192172272073927164148296938205742110089702876199722181853020460901005046687097919702226675617262845479681135675389112172274563394203941794859701069528186429458451955752149898704609436150531739769932145665960221737270041451737349592461391264175682581941480735283947776140368468070234400894526878794898216808932341455646215227574698982698562889908147216196877144366873897375836034382139593343894027043465653432060383672717747036940889346587621942866427655198957710547591686396139978642486044898034980987391194661881697575740516778710711674767953425444140027634302583565624069336271071535744824941504703613016617128007976918366706513338088269978920574974328491240057871460344698476712003936308594398149857180109173317387523921830231331275886469623683499532584179811421774621309246030573619972491575099862895507576503885808730587786436578620734600342345605733358842854089754493082493018545620011898584294585679793637693305425754321051662033239963629473538873704338380876174468855381713144105460789419676456156586936237628680904109557159913850796226387447408811774580914661101088692937764138391485573844762169442372731726876998892889485756860532560810366459106209463581620307600912058551409428725553995048335100967345022183927408014647612133772178844088115125394462435900088994912628295212152445386037058571535137849656709983172167136362224290103090706248564686952516713380528571532801753362299077773847658040829484907211627436291112833338746660438232044523038946252273203454094637736219067254478873693417117470613669164522914448882910268584085133008190350987824112878016914893796176992462279026665627559433698148475261171757218982605140770311040558927992807473497739432074225628749146235529989401964261090317543020997741858936597629276534626204247050193404937181172333016842602574628284178462881919599714483406229564444553466823998834562820660800801964974309576147356576721055422427350910189306343406988986706502900147919658466273537899841788579005759222544275609583187364621835121523008792874654580051796406757636378477389664882031146421009008280056832224185257264676042063398213637675947794530326576034963124672601994674697329829022537016236138603835074120500663447343806596320744445297873431727387129253622896704405117777552977339806176985051368288039184931464288204623588862076560906915834732138778392288830178599886033904925343045890657919452020490233973614487026380881381115141905498123647056377193159256853299698888903241969858202414084689872069501586533784200562047175004884465543506135824636008526343659495223338423905638767283925880528723020732482934087816726186757916353262136521784682467450232016176462619134852184482197935381915336579051476885002418503295186985631045628337854193629757617183882346889990839528281206272880345389579516600065178190816129609727802538909750807109508287674311267367998848448449753136608088415544196255613825137490905906127752667502231544943753968881804114090347165898368480373723900924199177235703913064697541049755017466560835563037146967691585871590194544959093625678839335263108916296471618000420892845813142681215020642491703100107651445062302332819940235158858074682313417822870456690583509362932628553845070465967963256064347687405587476657399012552720078065343012442847579915885576246151485590353585350434244108230475255790731234032938384529047377876365972665993868443414418511744687421140621109549073910668091319030753435832919787984923103482275471405682710186062184480627976408734526458878308592699001118695164420219800060926182100068233860724306896165499732933875418375172659210090315464188370117938491905947340151587566389670625110034009962114727372657736901187965816248310192208929993991592688571945616751224262442407083019558579184858437591003691733748261052498637995137703138019071526064591305908992065610372227013600086462262632700158668455974857526903035255985437894987519966898562442277804307946710128855663705768280583206838756012183694946970922237556924858093718308001501179058919064987236621293830676710495845369018040590488459285179226940666225708579061501571367721514524661389878866207002024622072572000700345934947217732200883457800783105528624796307830229917007468849546077047641303368677123719256076599572768343200172942628469540554873108666328955515876133918269079011819026296637616720398306928652856368688684007972857809348263082263783867950749661444194299913388359495976910343363580258012946857476252299245914458734105251447990444828279298973967735633847527700174963136357328302318165486611349965506164867877196823090902660584085830016321764936178345520551541179225971475761451905156376741147843858551606737306606720916352594375903139569476565035328735229732774517334539355000627426370221477363646847907478665726230670577113491013234064676175908870045990758962282583648437327567664257733195455636069428480024744009552275278518807825782841641910826958763965025755903148580515955799061778186626238695256846878681626408457329590133592380472209951429887784009833554732276757080962785975353531903130817016429752730698141440335484794235726947690268219269886926516295245236711602404630343653128591881902197101490280582591653854432215657150279964552668989918767958769834885735443540032845116008153954597633892344019805727376323424963547714998790276547423253518080855088443126966388532295061773032751972966801039520077483131184292639523598392451379265166435379861399458003040693396412002035716876351643970645160557814133739433666357131343635705313911967411084775081399256353277748936399161999402405904863769852773819652410604255188296076152855921472359898014505497798408636136672231692732247018347733085542218868211750733348294225995938840934230951290787147591329123072970551977771265862405402273907537054795237974803354513495626726817779960442704601873745536517987473021888080355147089706842686808227776201120746286269759423044173801071847759232112328978462219082772772844752613796194294709061899952743965816331477768102225629224365767449216029056969941651866961963403310321061332005613633783490242714483561718264531986312820082724639570611434644620024539036570817128071609259382649654956594372907180962286857173106602763410746925706376105052645862830692770158978177851361503157921653302514236354024116410472020759512526229764058995834909409487770467597236217125186831954432551441019972820886017447350525867404454501359326827560819122882238310237229198247810700471624122662600434467853466949954915345835866855595728129343622009412104573556661646049067048717190842380586224736967219386004348719004602782407005362442345932454182789893764943336484223547882160304233354254040685409360973831025471504752893846449080039399481442789748725565515467621418587744655234889453665328902044579420404806855288001524590592111512348434107176082905287097530382712097439055532236888777613021256726700371720008480969371837788134949735492004444180975186165554079271624676094839865484869945702695894864268934435938354628633916870013679569173956887337573020351405537358638807870788934996674047118360169037032011083194819178503299600204027815574487906493184030335765633212975397136900821054349147386555226868406767116928815401497497392368770691434765466920688036121015942389776813715822328009803538651365665680643090221448101038631223520850196221435056868566010642822776660414448932138426121709074389617557919304509286554902542218621870444416179981543045554374027991901586747585621928600769203596126177904663644782727695838011267226184852488333281060940038151219500873910022225512045247459816426697724272386474817823663173933039973100204665962898981171867895415007377615137383864418292510200689470966264149519841043389630450411687762361827759393536792676059782547955685145466171324212168050583625383831178977231152067542100490239489049785423309880332920278610969376712163978440289057868541574437619177260977266135401366446569130289985211754057737177033773982311763149277334043732474111813943516860031721299585152638835873601885497530179417420262128576396657815623874574202560736962852626814808098079869738890949673059744526506887793133275512249179438721277696986475830458319167977156618356046375286925336926383572269555819435512972028481295159862151594098525049976249019266928772399627728843456864063535760903991011104761798854378357485675632698428278874295038682476110796443100522539382926198472506350082042073859463328081065583163545604645290435778415257787035924371741803145371271021030936689558519495060054348735607217055260756556200503596679986798101652026618584369496094276217076164911004955818105137141087630894662066204334615456755351409069002210850940982803098271850827631439556045901341041216836637436288884905462701394130736925580901566331553054922274167891171231195858280419383535019727060358528180246090097312294414917317588484796172868040056160499072805918506728382885487449913696509024946877601007793191782012257747739805477455385562278361758870589275573244081270973702525473623620059106133799520710053326778371257433038152961516619762815789592089948391817016777089385858559782676294163217652817876573728339009953504707195220776531420318767490748787251189821349081862697943691841218020417025272488394363339717938037316673125024849722024986580186541590691509139169922636876207988325367452546005902029175639590215451326763038159312225957888034249766441278454373014418195461319760750850909859779433793396929937773677706516602143317235743299336898422702884336120103030577022942131418874402370531739816842962539091785055347671274977966684589604540660442700332999051632476809391835789132174648933672625120191926980702081107014155352131417754823985689634185939318713042182741181949453093936778420040391695547412280517398638174997051125300132185081679238899988699144347194224245618672254537899040815277536882061787156365831719662066036439645412423735263156851368074654655599021024313534964669312227415196825893063785214814021429575360247543820382718099381480737439327561204808284039242392395678482710365820383568941878970453113474676206420488342730739933498053659355519314994024418539726014040326850149043749806046737335407362773327743247777798360397865404403997804079781747663771764555929561513612334461062955962012688047647314590462474715556289039321970865786256194974261720421988050657365533955410505961468137077708657121067777595080474901926073199517763811008402175398655724647160228483297873902858592642123112935023462135471967339451935897683054181088204675600344053714972190423560665544932407929866159015214155579912048739477026063136218226583655009451302111772656857179906895500404111738970744408121129186917902426098973985097094602564333583177071545191636796492032738499791928501351137943127417589163751648967334531400194264211176712387163285509385706353216856027010952402670114419425611382838431935464256949220460792554519892474011538359324631873670620867843169404396266010529723449178606259567115656333736328060678741226351036884850998274191924201209839241022009995781027287797589428907575539359382616645280702676000816153149422980716032487957605821600687447952416109931845815399961158278292749281523779089756419353907237262642343226399208937627912849030394022991892711029668604733154267222426607148644929131859750147166792391682678032835283080386228425978489487290898055090273094405067432881872695155395789652503530093149966337049328203795260309161718706479726865832589501567668541791054447631293673174265125140429133345430275974321773074114258218250735068488807146656912619423063896717693303895799654546027508315752281966790334264322714625358758025445273691734210457838171972128108537346941387038176285720236304390709482286015075917322861163812012669091830855385094489792789467818312886776906034032158130126002360721832886270463075120685458557915974349167952599465837249862105085003323165716721643975492623979676276083055032327449171218520310239336252274268495676051384189102884964561052628859496126370670647706291133463854527718892141655516339755378739989920854646801987890590693274824925438372492857227274944430595141711133034758650831386435095184828087364247686626064255886116028439209437772971747467927214734255340656422642269794928546590634746659825167944307382697668103835196674405241426635078945332600735345472807111992034377718325565285049419132482176739233625548183856547943520839840658872076768988755036966176981493932009317826552759434972048211332053062288248407873989583332641090275790292859230476879468982519412349561388639961969225541217434234778877213420911022799231977266198743075726668765258389181366173230581815745824700165876264297365715133859674470067725254700030053716431421896715033226480056984179317585379701997911693266973426610533894704575576677318243108452109589717753723973553204743411537524462524265736392876989735036950610733124371349960156536841215180278472089441413255397297803446686106671475824399722984209826415438927958408615682383690203354468021767421952157535696332290288087834278407622143141256395735357466219603775252554693289542935170823601130507010555634540310698202321407144034608925729776296633266072821554592900699214754039048538533570837764457014409093269896830721868530024374730072484350873962465693089619046017201534123543087802317508126416241115689766647355821181542488216449918795333919381270740902990601293693694691003597605546416453319002005684675797455245575834740870785544103903451003975584440096196401818789714295662821092813064415785239697178052751330139411477526883272893020432203504068551823174845215068511556975692471391749565763530219465136698275523467723784449007125803845206154910225079295758964106457004042801888306977294588158481639811733224936213098471776761108446353310855074636513518226684754229361478692676582598786668968080105502526903594479334937140815894657237911609835842565700273118680072660514396400880035794225968955075116767822701353347596700125196888769399786580806446827117695771580938338202454496901801981504359206596478764502824275651018045200521536928552021847896135938932607160978788555523580362863748126823824651335488285038131701755562539969360407290478087014222676762896985483918286533142418104671182689385624564699087870291286963599554000763636149115787652768039606238809019902944198861944368909092738509085112602855442369218723743130977961142601494839793726198208089305790388007969311605083832737896867481299905330433011024823340811785425282583058183501705484999745787405168523789339246006292215958477099849357203748079940185250015008483242062199258634690710048313680769159909048506135686640368308140094948019839322392073780363979025319596080812715394891694133371272213690231964751669561746730701286467523493332898549180330987772700370402655943356861099907341346503686199748350437378997020924025617424236829974819485561479288427888581265334321654114330338200295530447197428507134196732153677078331872767195285056501860549172004830305491115942887404206255717724571360743239367232318838623284694072311207733811241913299747282632119580485452326679752214083440790047880657914861517741183552388827416068874079089572368811977405818778006768596903258439314104201285960121830310671498000983975307778006493015794672714426650006531485228930040434540816962991150567430090065728297034789755234925778891682746546746084996672760174182549090653633249258997671635160189848443678776719083184840615733231927172649806398499962105069313590301364054361170003517989715549848446250052134552761004808819793899584821861012278602512470004131624540835506064261506562919985993992594735654667804980995674538879780685427895473930792578612360974478716179958528702653955298935689471012235736049180254531534360300688269710677262358927315052197577971305450601299299918785350854618086637555257344413548027924856310509578164831168528953255196886556867122685884248692804367404278473315395515234235583601050648586164215824888744384471028981839932342665954637168201811610276701466126874047771176582935473644644642660894240578097596002852408041077520078054448771679287146729850421527097205746551337641638704277724471162757930928689689426752761850942225360053370620327108198942379491725627661566272053680430742737008421490960875156767843791730197276968862414463497204217488806280221608454205770949816498735066835436782539826194429940817689936779681490392441287013936155751056889477880647377942865323618558226794318349835160427338222990794268835584077924905143291163860813306219204487721229619004021927453301980819928340166238915776947540117633331955048319541414293379443840160072989891895690961474209547876612832478760589424765846919109712136495353299519231035344466015498808795430806522886143870413554124556145335865233999508104016174497517803582032000119934801865847658025542528494224620328442102713230506261954510326077506336884597406693311535695950415312848281675425333276933987876254514085610402747402419066901715630201925660701210884304664486703666077870905929993488250633441020818138951384776190764559958992213963508197003022892323403077602156240300927118506564230787014980069896558916666819556283570156771979279271765405947172178503197279565516466502053192648545719105083337755337155655708234899803115034435007929555592603126389386780276627976356495058100849866305432535486077195172365612871087895706352055113829102219720467346094160318865387746444435583920061527819349652779100941286940704109098277547872994021914809511365529506482424929953816459770527893105233625116808687481113585783686048952149170976403051842133456501759312493757042728314431624127167399077570030667532496240995574915994329325956444528609603895016890842270563436764620564747598425692699253110871640874203308604149931215030210067157730706643464280703603363200830428569767645126075692461777397954552723075452156617500260810439213602625341319097295492892264013404267682027552565724794583774536383357627283794432320322057620543257180095564365322817977708063804506261714875431655904947841807770111201569209421020249242463679382322965523253265220812125197850707320088509769430603382077873422860614492738302775237958699954850019323782881251086672848896696933799415412130024605343996676684709654558110749900975104708341041363557355066923746477233728343732432473941621238663982683595977424790975753324717166234942783699082920714130517910886227514765086271143029561522499449067852328614746320960834241920874629933307688573897153101779908045705847259793886555484072495525209933228598496153602959936326520601924968643269050469913095860976764504867646000534331187247895963234309083613036916525915861155938500349861210963501484539634872877891777193128610728046622258068330243874905159829357852202500210526180998089963134714071269919585148118958849601262085120474899308388764151840194493202397628595423073408628450523998558975693138688060621692766901140054237512612648702549591500955414912733818471876765015972326781985393202789035461967290404508256833097462529703582342244295124034062779526058636475231246863380833888111223111131384158963003683348959652126330380116791452294250218989770696405343660042940954779029306875202037182825520064730963787316209976801544317949649551199370614448500788542622433496242179669302896486860145544812042432812825701032879696814809426536012678479520146234718838709803309670047312500391786858846772897965510450640847520733048328100314329402296030665005840797174314093400716758983550746425224369353769884689627412490840233724473846679572825309190397710717614676621623056309696452394478485615930487555411613955988663771142515820596871290855062401622858188490908495854817732605798993616611388044291062255201445833171263497465652548579176574401909139826241369568615137090315617308341871315908733923144990135263328106662695556973014712970015471179030692184810813985431734909224341757688944676761676222070427338550461602737177301576487348088748179407757814831105849390585202978674754273055308919467960276395576228665700128068843640946500298565233835371365934704168539338384302141238833401928385102420290707387992752563376322756243142873709770881942786485604270814061154553754610442886223151586143047286819062583966560411953935200621278122389040789502039742479195866060463876747359746787930583650004607967359755479850700373903378236439180182369813188278337237476135963550209454358416569454519503145422255900505759775478229383535973583230614758994563369139138043845942948450076640716788131275907019627055364068662555786147625285751760289395261094509936693337319084903627795162100218944060351775274495548618624333638218452209546773000950036615059683686603745826900838413624838769434559532958065647349817115443930861765485106723030936407429376411115127424096655239356436326097527839159810720598739799437842611804816695643198672936226697380600902969786570745561088685463712338355260370037689815911107127353891203956229376351790267013339478425286747927141435958475196536719869227949752032397405454720774266425139375739350192883847589267295574250645091030862268293599779342921376580643753471813828068024187803029558370731002168844243306747920949224456086816240708625534322554236822584628757725127742355993965339216087703309262654562616097692774127717140303534251123842997866616051198702985115822684555717452092187376652504872529833808024817631360341006121314351982895782666490785296202378438372770579330954131996256376008332723108703363843542544799996053385423293294335453055723395822814763668164871024507741962539340790661584112790622447226696588510488616803791417374724651025801509637751643142293281089089783323728920102313404784874697908820836852705213484686420298934719780435833039527811596362754518499663769113458729259362064141308478112392114174350402942936059546222533798654434838692907183651452906420121814044666417957393681506891792834141622932760648324443844236794982826412606855494064889954628123973817435433587329263251812705865121703871256461456911956231830566244810356025378871214747551126112004116530276394614636475411541308342661774090229273911695290458087039180809767999699550265493709023998301245712695539636516243938285406418567732978381281738793719841821642480186834024362759738600609786578459597660008711488634262807986579718037624212474067125550582304332906162957637331739601641383382548786938997218402910212700756949818696173836431101364747652749834502355533926437034573986787702421591462043673498237310943089664349166341085514389112998396469828152946454463549354794703615117681456645417968056484281506585543071731882558989605618815876663401552413762246067572176675594530741560514372351660416581431659914798670788317383299050479205953120949568711657900044984521156378351526685977638966939626034813131421031165057349124693540066368863040488868371338071266872705894965149542296506126394228274881918836409406538666334633120752866021368473966651345407758611560308223889037572015552040611640022436530280589463150119755344714985031198797564432708016126523940231448653748837613679215068137975134916352063400155788022463164143833202469515081887565930421954065383536005341919401235655874851734854274749335502687383542369590274786504118298810857385355018781843358110725701298346374353450748157488901485364037597521270357489019548452046788046341057004245646521921262810642138182036529283452374157406512440668418821619924936006180217591383695446946324550086082823901429480868971024919419844218589644489387397764406536222080681909806868920423781092661194475385603013877353151898435342983713885589347375720377240536526423072207514263813411076491419584203004326905275323507861407597836032122495171081428750014465870004732621079572847389523900554511337973439651281191189458120372108461228775389968802742608581212569942262977036322404042022824360086851231703347362705949547106547961503792324947646392523796198180410940351427224971235898508164873825262599223729911115115217047644117256884118807162029239221965351190005232082593421985895914974141125572937869427550125622385179436889615515825041923044881685717297062382923733909137898403417194468266596720775054341561714961334081070490167763353457646105258852315306287059383038944960999220518807563126044027836694406991222583826125941832400424777279791647018111697685381806017156708223597937772109124612250103252382622897795290671241203799958663993006134943199561158942503758917048314110277295471687269186366366785503974507144647586318902644978378748944226258444471812950198523159085955944239968960579617487273723132852171051861467347474306443429225823682679130772085586330230911339484449178005516669364098674882044826681157461905100929501874474488691475217730557517051659097342202112213325258290622038349768159317230392149882327538322810439853310240786981587982515412923604287445185592542274243139279627540998848055087947916831016002665968143189433749012116153902448214249772924766419374284499853926327367556978255976386682974002155304446003235313609139978782851090556290953784083369629843793129850290157017223174167636670532043508114168946502966379873600424718460670988601715677585087613640901930057357786466759121453275505209675270217787016556379154052335934929184092868971937909185254801472113503798901499990587321933833910935825816165938407699711027811139821244698943478718880200559482970607061115686453032712288082758312171058177701323489931894124060999773484389160659234808794447249671178835182528617228745854949404241027444003530348352359291659330973281379761731633742891927798754072896676998549973074439907511092217075061826427541427875234816636706045734080081789126088039466908581241316316657298669560291498607299645684181031705620367300430311525014868525310899368376281110983525465173315233050458258262383722902739925787870665607627262997800326361406973153106257225798165222420103445481874885963834641193427672952515008153981891550373641413663843145400247533858261125022617498166350691414125387669435752369031951678540334646102963946554879039111639241616992312941863218505442625644711433404239496754329779319141616952246821867675028146172317935994164394841709522191465469915938253710068837426370665449052450889169400016743330011352084243518115181379507014489903978365003339679232656273004435523850701889421294240466528815378218033708978311169784270665017600429021711921349510314384445427901500200188487953898112078005483295625126105909623002973518623168142064019368771878733083977721352943908920616387345114301967379282883578454156910613235764863919034304446850617109094450454966591863614155338512954335243545863947611216280260013561930815442341052888344751356651291560863763291005813005147348499677635772958728889776837537126822668300936279938019793244411822241108223931992381072157417561959033674987225593949021744434812471354512868792418814572622206513396452844703068174480107917717339123202461558629811039405394202732524235041936997946534050780492294157334289479352080600287671611550560641376850373299536482874956300961464525344772655091889549860786771060663395675775788012863830623384357461529559558989915920659545993727863587834096761288894581168022906149286803854806327684804251163371069134381590970233252289181040254359105912834809471590292705626454959077933484182202365086045132594568541931035480661489009952107046379992872633592573366540950205317162976778381921850845087927143914102686287003116445110230576891807758310941732504778163888381968168149415509088198770532335649698475899130202011976805427003403868623856465665206259411089246763235332149205573908608478006927340389029660358197024510322736497343329668987902390456509942725605757961728293268099813624955413460961129577519364234325472186647359046271727840371622364287517515838191992730318692290950171080706532338661734495900120715676444488165192299404832036547266776893380292925318020204216148042646607779237807361614693825923724359940531338277249415816827167229181848762198449938782731490649642844754254721568533565968019809078306263852841107289216776920839629220786955705128985199785853527729436331123279561965905273889721633471643895757657521919892047554932007237637528567762794922253391119471315268731436630561559794849279766651390859878931356373120633522928852901216446916957626704193479596845056064324453937352039540225949100337825803596889661104346920170866280695015036131389642640430971847801889168194999309376241981312730744922640578453386022057498713508330026337452331447800880481955795032821963270236622329047454094020388265566488028927068347333507353088005090847733823588449871845630524131188108203435498192505699515086321831618702312903030172677856173308028604264122380007158000278639681830669371280211857629348184902179122077832132134754266074349626038806453954240871627135237300638607485087994591281674874096386589313392444522331285429674116163703906509232484440448221370248480018415013722368758143408006540885312524573660978846096350447702931625725889113041760369248410770554318413482035645294752962004725244900803895891945342630887949232084061904092882899435136070440135706257933149573819629412613684599335688483562068813244797390505668826302937581663079765197655379244609388001331550962732980929384924977678364492274054849079718491965680685260583786309709365025128276532712184758277204612789834639433094452094954411557179047015687006431571417312345926604653427641503313679788429657510168830216648306055603646852367618547658395496032952665828264664694296097862903385734532999744551374943575942215501332588001951850158810563620000366034951546627313372495517244480063525492470184556716260765533919257619111329920836254095436069700835443875612792598367432284216405957693323566508781836731413746902212455518064945006514450507746392882646682722402225308178672244945087527863882337069213210452819436129699876358325418799160946223966178447821438846273457974467572431356724213581130184210915094521622858787642562934759343155269784774252532051821459810788225853393377338940723362354509385782212604424223165282998263870685175652828318673180850452752742516265111921069210671992889986565256462280389755444860358232431956108271862706056468297470957302350150648368486772754560458205812370179657312781650968581471216850981310321183618189268788926207971150220619259669275499264334545996761321023218142356669415267588741007233970143520306204498944512162220587641988162028153193947389479443642229034153569162124146955570558075041110242380783680576321996359824304411425597239409544692735143800301840886031665202532825446002957445198558541326085622958188810026268513742903817053057832709642108418685870056662382392746226363726907055708943418292376997057813638359286897221969687202042680704795279894307024065799382224830531270459147009548851748187937755112585815728682183993807573894727711601927829987466120538080450110144193671637169531467671161773455095708788763037625459830206874161418194499479926920782676822151793274475141975066323337678111783793058184408841553069904048816852141648655647623644035948819052288835979191150088578983507539401105605122594947947856212065774963502903950421599631380987875567470836675059002743649542183342235101518055850314739331883767569179627461681832291313572780389482984368806597108126908706335655565885704933951983654442176891990149158567014257351632491598656689725253748637416483069540826762263732818867926892740812530587096931872543414725793356376287856778581834107340928986955085936338411591178685892754789642796659655718741599400914452246235841766518899626351092983607561790092979335159529649633745218752832637432990145628229058585160703145838040633676486584544153807121946713692613210033095891338999844274293570733817277981049380844113588363392714565992349362205046037677836655152439031436178478164325585304285667028432403128496687451340022349769831381715604549036932891630516210094571042699070221569435405695203291594962453598214453605319141883834571693774587255596456674574529664957137103348818100986454493093720999637738889714597064835937557662968929290410617314267643895303857929253573949284256365221143797394206249877899490754955317744539502999152396866313309738999730088627212431951548099184911932946016903958887323721569616479591343160470556638964933892712232210015897635176494040622315874338330059418545427278206079195716138960424906354087425627057957997232775432947641644970864878844789566902595985736714333595315489426188529313681634553493950273214840285811831499332999548822342185554440510714456054487121269185688000842785223096667606767314191568037654266691137842639470025769948408476158787322367985364371143840540269292487634696960020120499636596293257949961835334998391048297302136445971146591073945354050879424674345152374471669952110851255699365856116382323434004446885168373666163199173618583387038418159717957536510077884441084817550759147299334055136145305822289804702570036685641975845459730106809326609262281133146200461861941411562552968349271015262784924279143346642993734301837377703791041066619680473620348132760775417497822878996717680250997944048588914498768072007288538114583056866858733260028564036671726762207978693865112137538839801525946538696741549668558017588305981240341573253970407343463521216953128189013868207237808105685220031085785638396763924516950992001691807901402929819726324912056193071731725582617337182674507115405968086212476726980481728766021628231557036231654661031373413842965427521161210864549047544150882906526634889327684638575869865354308121843332378899657690940693651567198005670633208747758727344435712266298384078295921812961332935426127449462179217482841537749386727586682029246848370937312856463516907762938307181943046946649421570338323360218314691633509889502695569698780210103141737095325525339976074822903415854559361183541805374099368156532289746698499867668333819018338571275500028528565120891653140580521875274647530671236212583353943044347538906117891181177965372137599250124590728170531468041108461276041842887193643179479460460211465551418801087775322223371926250005804547455141690492487946856185684985848078881686993159730052522435544944042447261261226276017423596217675073182096329866134264400951066493269021815593002839229245038538713190293421191666689065451650696426115880470309210027336215080859525526680243263597419999358867071352902822810585008851233746328020934311631044923778812192784184469154827393606551722994163452747236776443930994592842570829457179858055656959749096054672598137527011263196865830122467720073231658405442369907913433066521363813847789610970802581724849060909274761016219617565855364580127006561927836988567500694889676835829969339666547712625984099906280426256094834581735142565864403867017729047901182377844257537708146585330222683521358441351575660272311647990918798795864622820747042317435134705134448341609961532647029905446661787669316729023901878754863764844549651679275487906337983882079564399698805028799056387390461370966884065960190231034301818785189408450881985287154088364207178468270566338901564527764868904592829188247413532196992573971370702108930445749811236343325160140215899108572135367734192995544980887069126731898247466776406195761138904103631704280738858475850182059645522101605933887902067448501274796846840166349271327565892626736586469313045289781980041727530568108687435684166111437835226562310627856315001539975576088799632986743564787634076138483771079575204730122415821174332937304872559568541733103524445983215580731344680528108186851616270839984510945053799037847809425216360092947306250069791161416744952794524321500380534558500064116577043325098570681227605091378378243334780263876597013654415389160169300096122914139361079873500580625289308579978196055309972643351528108925153782835687625475064388471680542241703069805293986574747036948491309512588592503710357908674954355194515307663413776656009280936120310299159669300395110026294298834399182149478037909631014736335288274354274612806289526943166762263478123191295734880954046193374958076236072805115346387549902728016790536730535993691861233654873045433800596982156145873541494907255149258052015872083171868886688767529639589663322286106879499231718454877350409460557627486613455776897328160814868334275971241002626068057544979121585478342720200128297979968277615930726607767068282732234927695451588136163945868405658457245987602590775036741815776960035234157049623160397499233959006546442900749001081017241903473798059176560185919968718007972685327374776337520374748550513201753540075003779269194446763677404965637912310168755746177025094859901105816410427072925712984562427322767697448357994449085963251906345525900890076114263029295342711970295716591129970274915240159431221689901853354671657772760316598914930292022233578510269938546286609718517796591783860613605313230479257028071019849108918253413896705713777880580507798583672052048641499278414390288093932164336916549309249686840367279864064255113350481824877876767843803160078620041648843841253869062558838862408883355822600416749208045259181865942765652435399820616353137787103897443419330582635979700348545864842536904853180355919377985359597445579676231095699825989481984288264135774800304123090979020890376317109867133288170864711131205067507222500181110975401533936011616563696061770309951633380279019537381066343283536579837035935039434469722425074855639244130970897140927521210623265957413219654217794803810593214640733990067887301327885141802247329047993613693585596527675171702777672844858998807096432204669184304899675134538329924890070542761436230053403905047606844967781719450179516443277124461787059997226528679052797319298847141524802593556911275571158880294769781420827857556542484243828880787398434085495335884953601356749629077645829269119987816170449537668489307596589115983494714955644999584623007234630289240953622018460285058654388737576931032818511583113070839044162692265554989787936187001611203661840388189561005991775623029764283216372394536027523481395819011189264207874625289769585050262254656330087387338893746698491113123811978866080010564001309530440160363961412821597699155103456234768922935849644699903857922526013491500745675570016745468180305212435578256978632884100318448370422899260415150715853714324735820869790330874663873164667788275599790045885165833911273951418065424845227801354762470035429500251933526348790400378806535844560270060680183287054837168215444588339919732865862608301109753283723963532048305233045273195449547459392304523979471852523955596515020785160930465266184735481329874517766511314670565367844775821530140468988723636255607568115688466780986262362801365856545411567752579439980601702133323286338157259497322371702275616433663975296789554672829341665794344564408722061797986865982568183958627108056194227410709449602240312570976615217997457911429267764745534375371624250345944585113144924652694989896022760326635110873853395050942519853911681392571669079702066896431663758961814979969726992205554237093284397975036424256463197714785494080483418535102631085242172420693095992728502906659769579085166227490185255676783509347991919542457938899499843935137499905166612075738435844109768703587629508785568074787586207823843614857287457681913886924219553593963799802803350021496336419902352189332655473637636918177037683124567486815661691855966680463525694552875294038708034303959691272734029846576351333400304347778554933714479748000282580039683044257914411120692226400184047880657229699832847744555699713285070249558233487598338501646693812209136787794852891852472505471474604443842596182422754759217587514294148183844830048083585876268535512526649676099746901457713594041566323971411768115449391587209888124027505029318751022295452442734349179507633032545637521553226856561469339890795335187985901497559262941865743211647893694364637512398412228998908769732173517703572758732637762112321566811315779361736166214556559766911363413000616206133608335056075704025882537583843534852908773825544338292842227781909004242029770401671891955480184869312462685429423300181444775308603886112085775295226784276843220323435702454580500937793781784231700528619267144414782952521864122136033213273352411023498500418609210787757657606782146545678427698817275776784590253163393973484323860901284261790263433328398910467016921505585784424956148129009777491429627621562800978551209017480894301718574857296399260618227531881669485667700490172022019881642008957647503399456411510137741215234943986742027716892922161005704619310611538007269656342639759782705903642875709258610287100226949043051943395924541427104213335480765130470559949645166393438667623897860914904604748172941131839495927506173373630931555250471975892740727085438563073253086296839199858929939219724482849892083453546593308223519659600013661797634844277828657941975878373077565268152816919889053961082556582020534725373666124687607408498426504588120259178853419732535423817027988674511670073783088441842574909649680087512936991182503824455526456746369091717663431987190365265878092008238855778469731728337141281480089945266349601994147306991540837002368327343834017692473322540621626864987567892405813427241308099709223617145708417424613274696735600745508260187788127200625693460051080671295607840394438290048397371910435323932011491072441264665321129178027296327398914520671826439649655097690664976389807977087761867249368355309687060883353674170797594182251268905592965418873400021223568568080448668533858075329282578059249358533176335684976700132572929898381883619176687409300906504648563528324940628651585623030255741898198885740086892110803167693268356003077986558709966654871749074155358774267982917427540329424837047597459111013651569101221132418431081434759243582362178055531758846667911753700994899499983201694178395124148919908158588074330377202092363106504385564698098811909077516388461694755194094672664004421832075389933468582867071003672946626106976576000669882557587396680912683100018317580526616801924393664390410084795738028110651107452401094090635492368210022592648660528126571885927570871401481182413629203277606576100502304828103738579461080402940509171854293697197607635745615079082679284648727624663247386005274843496496080397802187067281507129645964288644614171084194909497591241946570453707335310160957351904643789871583688199218738962461384098686334522039512463282759551146815235195551989517734275146546807715228852518943445694851819983488032840049885755069336296562561642449505053429287957358498414708035500310221067412561784345516219492405155591576160877734819173206485943064127932843819598119942967274233445064878831485695145764919702224906468917017015479071733011796399129249364875750292523965042895920434484983445152196397960374900288637230876672131922469111099169415493035396218191921635099233956632856559120689152169144662246315396406373728541722799856136664737895247836075090297081205413487777969232844638158970863968563978293199329243500094488055417654710557283713633810929592100880120791226745299263348461407535592922550378852526226111615552645216910628650899227551260493042938187299796789548512875209823913119418641813972802216472775898931984206222134466173398347393903078795673859340888890963070058543045020291890810303618629244129717571260574315730668051559701436934106250214188548639313251771676163540893061729724265615383284013038034845874175819574384000640287179363058449708460252036295446519939548247934664421648956805844593087869290140790274405633516871299826442597312556954026815313897773892810947350541773096670880694879875118785100292048465464401983679709679212221252033299782564486196318420449855033896892701910442153342778179692038004418836517476075079217162346330614896470649938775968036818612260883820846689705128300608384587405499550789609428325443532801305130447127603898792950773861469951319856717844395397131730824805523967499060405832389809456471340305056802807946676416110599114501916130111987030210950820393287376515667309069780831737540839169649079163608120877582914352178549363804945530602914377813550059940740069741348122664994317757718193988056645907978292445830191528636756158554933723858361795224338768804320495978902327553749474624582668299102449647329500723075146827814577808665990394767359780735591121243801860776194145543350578490036810362179540870292957952512176469358882815529722891218084614886548170719414000776192821000440672406171414805901079014331049569983750096798474171979118000920258065794031092611709565650638037983924387300935808912669748090334842655097125347596955604442171542975359995081975813855138254405703206512149753823760299022680559365158487481355324012163126105244088718506919661017004385713823455127140202084020043398450880536544814801143256059788198717060625461831380557445556952883168172419907212088208360243711915729568575371585113057834488437426401752426526696291654213177943098470033674988215686325565996894774511008958363382298851775618397057804200142168872100868644448285626449650350901199247034422524528702742241849966738504274365147510855942329611171870418455205687433374195150357412765375112312447626774749212837958653318871316049183067850653456502750178182037130758793045833529561465603436894029618564052343195911540626704243560923691886549354255600654190581401614704434295358193863492027077745469469903259654920051316128352342662032370975522795578742805295873784311587887359629250518756725945997227539982409265283978321431242075224223929336406219483614434061296959663366524499899421442009633069350073834893485665837795016645234440792127407400391249547180872376187561883667274649965855847371367572761597100587547016329490012720734810762642348889298592090794844698186567102743793297117072259159469074615689490532334855335383027300329529397971098028965399292664230140122032241359161004699708975969226472437892319473940961078603448806231067981603733577919821014900384313765760666055601479106701930910664559583184595599324035493478368665471187121243462376002170593892658788543543861952317777119963239166300455900196610854380621875620383103053647516881615733265500025995149927783196382822738825686882360381552123299710363178302915392926180891876696699494604312372819950067034368081108613530319910977611032725794510927308869612490287960672944276226767422914322355972968862477349772825873997819316341706864339207009341032713055832513682697718728997557134812357357697824045043555309663655417426788679495618649207326110256445667233288585141425720301796564186902953258577896683401739042233115695938643965446042045312355439789203269647065561296444861177175744883824470223298725407118271830930332056697106139340792022078159510935619129481192997558491239527858963230912003512984295739124275648896859688955718663193723162669313779900735266712722108698800265283689711853237344303481385315429114775465282372728904412020584047640390664889843702068234343834200641153932991567437795696332268504019210641065569210749459418941824340256005154840562116376467119862957116309803488284323651940991245298861448337181082229271909737206753681428760940353582847609746093323553453268241192584698703387985435273564391375960957508141015441280659596749502440382778160597791591528456129014840547622453724663627040213937709799521982636605125224314791093830644552242307657737296944531655689887491128095727722042918452627649119508197891996610019539237384051487716464749620700129143731239687180059835963482718479539763823573512685413379132613008547176112962435733763404506206941572675107964790943123307673469702533684752785873579633360886003720070648140747915547403352548301927935326690391475933550093573017409870357832910322685166102473718674573267499122109622870208997596556197365408036635470815083590301445206574854316479940617526727219807442041300544228925056628349438668770129561352791196222799795534123147249562657396051723600902042156151408681009315253737151796626620268747024139434581430431617767714196743762791139907409568887292511582671332103715083418610140699466986388084384834184755720979867692342882436840395364108183792420071969794049372869598268505117306479518741335477015797371383926247244042768493363912494914542815442143538587454325308749047360586064806338720821970991549298321492970342555677709632179361779592535690464862913475802425488570328622070678382440704763606553482244314276732242696788172653398449702623778022837570249097376832147111067432003054202785815808695508291828318042818942476995925275491006989944618484257451475269268337108832030493508063488468327624805311546892214451235731950248251135783646491083168335102313903043948901332037695358017162176188732760264983459421701175661735619087484627117124564391857615775229152675359535561889663610095320746539298655838615949260278827726653181625750042181977743993741409477188914041547482160261996350615924334573189997482457739054296027623484802236840246058834282645209101225736601384330311497731429289548272493815726760480658405894843266661726142801265770770595107387697360550218014717701230167614132175926548033626054997350297454989951745195427361299480095916246911032699081867252844222301437294989949946049932286388365407746703080365846857594549867606236100923125257718058133489192975362413679654330556212531154277441942786496148050930401975341461465977586907464177199326476949015572734900532261076947530536820187147141411490541748687223551597153922550792305539980338549696466395040558631370469465403483174063225507531167211933820263494823006442018405112914254617048431210339092170605483132172240318393627850876322120100440316184810409848845635743740390171884130774313399208941440239649538536731491257379592797561961079675313828626878572903159899732658774303880407607106997555597390946184144074464319916127719182326990457632167670163903035844669700674404595572968486832920188844531941714605140482597318338153414902536468708521501809397641688084988957784431317600677379829977380517333194865512312888568245441063273638960260182051999199631895075350601382459866148661991644169500190513532070134004330307217564630288719502378921678182937789782511142937070321630457633895177105017360608613339149748659593098458579262766611140703094784223039560836145971475634528132716287886261748629406437038757189301230991707597291039774217390998770239932940845943085939775819615327800939850297714611678792417048338944638806560758700769640617039854052829310774983422534354772694285752432293034010668184949285582010688606903168368072176649267523132591900584704092405703074891116397136955580346721247280291950623999794713737467356747119934471941794963027051507929613575192069990720523263868374954290479859938413697109745217017591240186665839890873010205354886144322547451224958808051192047022879443308712832141927479213507063166125757001024165011221815845479091816454845010047839972397394731821144823617123017057283505792987426946880493230105883601631195608642446687263557287221302499289856634896975393025218923472331280718177410200969143812069427139715548647696044294019184956031825559878131020439646400001111531435507228468032381679485972141656105173272783802861307841616770410345585418001768048592856805548554439433774365475979273533468518706524905300050934591023336735116484744432790934074706962885036201916955392420441107175677974716640036030073322469605239092489104290971908403946731075511022044469562160511737023554378280943249576432644751262459197611644285376977993816888731866789866389759069551467627735077618865903255702756909892674158538063673075338585770021912310752513940189311621795032349503464085799930017472348441934975497459343844672904471705915822063916164090724130621279166859957243830315982525422129787507995541358298757718734134051396707073757277447820667072752312879267569758186551164357016282264746330806628755010599337499168905692749736857651327585413014546323687246332432359124809676471212144842039084022389285737637689744955583743121286408135420961017811624183262109610700785771713585925353606418573362928170970551698411805091041573198701265188879207192101171060164665204730180448442582536758135458865321869799099563734648822596802583871599386525205002398992772463973147913920261716125325082636365802323178985767806370990887756016406723077384593093929211012129331951704375729434863364854496865250674291724673746248872938129290173748063052272300647966608958401923829797825507560785917342588752098902182955040894227496998947947753572355300099831951480424967441915069252673793242392821969019842979223227941932500870264460783000894645421632197066035153544830938842138307674273405043954127335741395426431116830197535201100606017234864548008646210118006652897435704005470351670115816002179913290732597487264733125998982416647646501714672530758409069374003940280916903266339518840902360111178123933510896317864177128025983560773939403723252188562920056492759403581398370083018891853852302207909211438664997922816249700850649182628807410965769416576711773196275405292060814079463207314510661362198632660175166733158819552526321359706376507402648764358110914398214975767714104327603068489172667135918407660373127566655004408989596824785161798185416957163430334521295580371748482667779814318563763097496510656766443247579620815186642907685369996714319898011358350778718074237502257822969170443073194808182195613653938179798651683884244609869153877392536636772963156351892531839687432714050748206553979435482982557954026551526165967870484140195215555812648163336436799893637594455192976173968355793079071928200764425205056686588331003740341016650336046577916510355144237659137885013663455616959275554990708340051041747636297940466042513400007205744590440211201069086609194049719261156262834811669234632475435669232612038825919538430630600333024640713830293286521367183236768801227006194604505835016162918435522083176923740258212784557763215899497316595171447317515425155315091576775657398760836992382291146096162422703010757705918102979775153612288561166628742503383537078535057993606800358023534225018571308753741150287386607956151444608816210255178013240295968502508023440781971496929122774419039106302446187257475228475366521305087766328469994599879810684119470502732887846798781378351588079462242633635069202574957659923070301885214937291747803040425855125885907061667501438302145207235988450295097214663287265844496880202571665338337812626981546595820516646209258731832448659738102406274987145570509716148579697987809610564222522079648275902159233997981886881464716836685443270181918050184303180111112355489472733194456016558705246125860418307814357373089499410932457267330612995553447762377573863011025278070487417434411303222214386595602067104237137968110917900950175965082724194400236782563669339561475649212106491139558369987264417909548132635855802327494921764871785233419404853161451858394297008745288224566856614257423004847017002669989190336588452415913414478647550394526888478412454851999267637584287708735754853491652159114654610576429700492646104027713225455871536608134477458078788465772432738710191197434279165727150984856074483570466259937698072183330226856361244633632981205665958525517123410405596947124770306944710412132243057264833601403963453426853649603587898784246418490242998942325925438735737347173181389198799161701024949476432596243366381845368492524708728480287001683864351299211818530640947278156487513975037849679046351588892396026217868108617650916580455699940450127183004088298098981710668111006583186119912723112320613575236641754428220942114023579420474805245402068346123941376843709454042797024347143882338297504060042075457463386350506694701579292466731847514663561378008159993095735559565170179543724047070661057356145183853480809660802346508745394981565058242468313611373644218237511526413756877473587491504502299533120216268238614854078549105397746964431648381024294054146650959022127428946044024549463117771437660701601256457339612489516388663851208937934089968370989909194992606789116533356365756395847708790906614509097176082115932618866507521251620002554254351270230174559150631491651431470208474895156256013005402758018643786572820073328057015829749170740636230847771024835429889241438034007259471965151648478255749942739973422298979522258466045530061403539750396823411485602085338683918833418426914625381527385110226410696311445913493886658818656861781440736861820965001681593793675121099336490159248489546959297309087542790206288173410312590849211537149405909400929994977717376774555682763275008543866792614792420896557858997473101030556919520009683639642130530662153355547416517562936961329448586894901468331875217411597658751312894539753275582681708373723334671340255435925717438901732777585836704950709421290750607832052952038346516672984730131874604251789966259693419516849679603784089726076032664287764459327082886936440808862490252394091372509167367222321973709677188480141194912540042259846756010261199094773750389365379677783184451066871285758163156406683175860700423917715546061243919724197952385277554611357081914107554286158794451856709666082461896210270377220738401943945677061400431933098181420793723207909696365608768609132119093416103854122959406819067492567016528621016400607309931024496040862920678640559548333859318436018071465302913951233054899997375197973659301656375858436522932639013436616697142677382132052352962713159069093030857975649427368425233405435992010536108321056568231942735014891974012898015752917475125498853449018329383146062142582295067402894286115984411344125972479832734703472654323128861722420983868837089645798428279414406541568070845854584005535869336073937667652661625437747132084604312650884035084317373017148377345435303832355697026957250771872701713888954013848044719828161928835323231985594210371124497728342099223691099443520901943458702990648254219333009351097193342478798484029334902048942451663598928774749073332895763686657423914334684461424877818919848890834247441511176135663630503330771730760270231399626626693671185966608643328157921279029970956991614917466245880631735282486221485020646746377764737565597821415220814871375004734656442125212990580692990504415341265824281908686291440336698761338069946644328741464327297174161154448706816637836508387159069217933423723091210776485612715040789450459494858524177669611715287811198812732548116065569187652627788799161543258967973838000901763536442445135080796071380845196787483285871133290592287309764967412738200537809432982488928791465233938784471337987007708924587883144454750469787563552303977462218373833726093041305342002882096130815257394771998012396469514725427699355889399462560165407694543623295312486260387814997312961348540425303568772082214256279577643716684136792982929857782927384549825522466095434808579903099213281312421592685041173169109146408599620027191917316803362475597743781235918342126779983723751402576816330368485475235903452374055750466096673988111124959320128697370455645397202659974578995385165436014823009964269038377882590352588086395918988054650029304032090684100436096395350799791403606973739527232517650179464823227855852496772695548095272418391713967788393211235440952675942108648898090631195565086514146993411340565195795752721334198349017251485192300413104647849556968393307973620370536773656486121909305404872383185699859755603316962943023545166929411550302037337774359762324096593069357712279450948255297187048954508092052413508219449054889044919436027340124804029600263516235161992748879337908889249564024680619212957303670109672479296715687702648948083130172190454669364605234296163678876657085685947921717761940175483218358896206843079897550222527622427752939213387288017688096300490003483712267018422973237945526468863090642380261597335750386867655477494051934387639624789850403301102274710082971911978627423729600140529367428547671280529612194916865724694016776783930705201933634087582135068553755078340869675668940715441020094544345482635743015602790552071621858718394465228245927625137623463078827627540220430141848269065045253257049818192172370386862998000107442211235537557525721026899946576319181413068026176709079447072620937684330386752603249345659301909085286258119925578357125282666465182901992959213279850697097780391357594147958232767653098004693730635393455101670446585716565120682206943860664929155876853240591978872382815071223733342716597299443759598741589869085030490322067346056181154606965557425836562512475744065709972573386511983876666681753957934267849053025124874135399167729855116657696911994185215271501895195853024958751781208846466875011293713413422756828823464290806456960925119208043903531719346469907996295575888045875754551792208970414600235076338115693873694096860013849618144683524100388385728373111945841876548425351591250965971930994924283813040760831090984028103077444334505999509226228413729096588336115490697758717494169744065554120695300820641154643251160092065019643103691273460195260177546906399624813955239396071439802567364976493319102782142955099225347612693373636794190271390204515179884747893521437754939982076020025053364209932664414960813554006059921090127632308644556573627487660940478704268732418001058329708072483399424856952349590088933394193286198098450213396647984356043848681094261470153652489548333349297559678616096468922170130369123576349551935524934579144396246726540254158674177566267730762622171423079451004220028426659724892020483873801786120020090243033317961735699294566659966484817510201464287908767406177680245201910119664144982371268664406810521616696879100330957091091640336620212237305066100889072310766969514294338360873394382060552089533867679321275185161280231642836144509882091535726220168932564356815521952594166894862745156210724407575681427223152042746963893521280138222265412909923286296074530836428880691001801281111188898395827012688757260666332620300083264018457792722618083946039898716965140817526730780922364917309420686570549266288253680122379708377576849863983434318377286880440210458253141731627440690328924466527762150704150336756987598627861261199877497507657897404598511533697956886501959194975851150175901942809238863324018078626960040349501655928960604901531107004666643131296921244157162733486246933312959569726827501206473279940272717024578515151958132088942442305984859936271756266908593044747478133990690249282720046310837429120576755351568284197174488935363706252837996411644996462753590120894947237412159221562891083977878175812187571830034460126720909538190009846507731689765998628114977657783702366153910723325837800174430312525585217841370526575898332828733472021049831701651263488041577742480321121925074935942671877345733711349010158014224249973580074435459112141373339934706419712585324419376645066758667767439563297522509625197824894493830750963643005712197070887177274712072831808294647256975951641947415804293126810008594830222101565703998916602325225017873294583197718550699078200309540219528607647547622279779614282381192419966433642547973516298182078867535716752042140456480360115235623496364357486029592897554463566728737101925388714008166589698756656073248356474747602100822241982885089356596826620405494960781912904774755904602914486801340232885516363266538000351106729929309351876894963155519546602349929016446624778435202689179533629490393848563863994695699397217523375012731529685900315754520521780822872589196817902763355110588434479046255433720654584552418960046860879153451832323391349406112442997512066909641420183343321708733865738580203766126056071780889645802295799023050557615641245483721869005775026396787846753485437221855910304732287525856038140088888263790541215460200087465952155102865166951071288577882588732404949156077603302889356083267655328315877447999701114564817875610177255379528336378767389429948321376227773871698575708335483642627895530302762548561157601603986550323696889870559671843280036882894349157008463192221419037899270331527955777043948155708716185251561035959550543362096174388806622719016744177133163206262197118021506901890288912740686593519529347058773758450119487368763160194421141355649057699278323957008108580985164523498157681695730520931887358059522447587842034814347662772698504421989959436578605162061783479192136991432491003229573660371434990020515429693512497745722807102555234464029175203635401147724113212287284018556599500364601851951491893907099270914760199110801300518221628482416321528838291611951375595065942417845913007370475741619129634002869120858176571439820397137665764668120057708287514335127749815747425600924659601686688589948910895312990694187921146313846600411041462379683700619559875040157745339365705560847950312536585709086552308764886902836761723418863793565546076265497206818101506810191990697413953595873000277556183835651458464271772862554964452796955528705022890125531038783615125827707319454584495726576887193981755346257691419141097241777576780692854216905959280128701206443382060235192724676829529158141209148204870177909188517137764579720934754815002190079594211053814519834525835405431575524428048262598319309579269434444309550802763238991147390892632322483033164176299194056555233001130960509292081272286650174637956566544674448103097786520456433472972739836711105185199151467828571760864507160957277669464595978101807847600652617728989792645464926397012692372864956715896632813773745015205481624672141803270782754426557050962247339217147554023776676979016308524590173292276814479128008907745077587300270889913850231461040358014473054129872657576806249163769107834803725710318618249809000330027599149937927644104643893874695328586247651813917427825762243803705542634635717465940028434759809408844929801990290536746178373219773534688096901880869206956684015391555612371891154862982252966398660975315302605361044276448044319307563045430699927146342677692882430914956339410317726922871279521318533841753986588822803647713377427236729550530260247472715657955254014853401533806340933144699183419573137557319422345280310096162336824779830505643258810275523125631490473667920932544306177179141297112544587111727488375961865898495546014507552610469306069393112214345269086336720749180549842575082587490883527906015934915090081178001971374859223951582040486137076194717420373478516012018567697972088137659646929380751581804838287930046837148143248065066991262723915204406286742449036229567664888012660251483464224753809970087527478500720212533515882168747653448196122155387845650309619954642294681812723025703431297521217408179157272538438828370771734354337091536933251152892203461456361962189970459812470588894238927768009186794408066647456377667438610489279799576028106631108188118924918398871535583234265110013787818200280288432410278731599529484250044672267481931781343757470681963294946711212171449313555727921843262202871738353383054018373413453427545987819307415130148685222784098118685514787950005009372655183794635553055110030708347417454020307166582298040132199249490895173463365997595014353014411650210022487505539315572344485734066066890455638522243856186360625007129726542478978922194867847303807059181775126362872837588429562450838223975240664003838885234340251324478806030589815760990356968643716588478116535867907739980179159468914994872180055263193112542510229091541438472375909301250836636102895215048375778628912193992141065297365274164154787519587940316543097274539410742187117225200431750670037582341046494323414810298892320691469045393130813059453262810364516167212794556042156016357819682173979429982605768913980894321242436098122300505214686203423797485839192432039516822780733505673433801651422765411652353632088704922891986320661379496970951594130828785904012131415902832830312202886907216552936387757249591267745843509009424152138681324619853623491709680854978240750355761172056560720283184046242720982146404198547720599414879641886217802039689594177838763770797696698614199122375706978307269313165202267592154041249601521012554553818224572072620765688951830960332429956891056866340741890026801067765267683238809563728735651245154407809341157386803144777919675166631887929793297459941258269036735694940645805906074459248254112449351396951627260976604587287312448246679175393375512440301461806708298905953382167226136438276605836271717381126605656830758148552484058688332950707694624352770271491335415166664211928110325733878227738774999580311516049544063366532454686945108541196849180976963040928997947172308567776509541503867178168661774773973120075619141981224797456905020637304826177083127765451501690709440470029307608341946118573846561039514964317006494468146890464752428397516464666681453699524190251080871249818712513420521828037954969426247440530638136515094945608632057067309636137748727843479197857799008105386050507572924894738127288347284308658424015138528774940339871433487730349211916909784716515245498745951084432018666677376203243952462197548421030261536959979516305316875531841047408972151833068327090604390459282253517570231868276501356264540197125460535519262734104408969301075083866425601245556013742271340012216736590998930953304792628514143165586693267418620978401242886042506833804860097368321384896845436565658645899714338608516346238283277928526980302200698957677630401198291747143021679548267662119216501029965738970507523914462767380779015280956190847248387195527427951424202544054977542170223843493737646880693866802785139766608534221988424273200423201451031576326817893499647273326027999757104073046882272361519557332233006294479172995049950389932681844400465582197783905112617022370147130890274208328507291633467994542000245694031742916783724549049810076179686535974432658493505417220354644971777071201422574021786989144027151230938188047941090393195427311803215489731255082712191411632205312936374428205414020972594513931109858338451796548459409641305075258538855970540991549587940771344090700351679043272585512915611646972607642041340277324736334743641880801155909796837669527083955509676503342423428325096976450445403370270776143225873522084420592241920906412481913505688114549856101609163701302645718307953767233559513832046083545562206570189734746817571416748504705628464182864487118852427236149746920674200862070587715823357571349301172085581565863752084640193181045226165560725074379877728491957148247985246185026847138736750996530872970714478367805611891246896426839977771699709551520452811538212214939877252188776949284947946470894945692517515034212880381433285544423336533994784303857021498833031476086015842613981872552974437700934631313069470186968640410919823044323674957933047760963444897565547318118767814918777337906784355950780325359777391747620315545333485702401908185691937748432709195031084108057845575950259030341112749416530951752268132875999874128404920916821826057797117933359933327263319076475322013298482614229821697289663705933818271971794797496884178069422511743688841538816560932080208395641621911494220098785845918852601697228722563608063222066096596701269662279309708833677911864353888048404093688735604614551095143443603442082057901654985225039610210409558309593561625178983348989989315498471559657001913867788956521540244982352589477211243490499336325238870905101318533487040017230431979105239314525063648121199013482757455270691359861287632991249179217972726326137070355790633228651880198966066456662052046042062463039632232385457477393389928447986897611669487528140588874037395194694121262454639071909942338271356341373532919116415097862357272787123143427348728846350349047178935364582578763351608401947094679751942629503966623413417221140872814555166486238603544950366700706680024234225062977926612765494338732545107970058173191786618522989421100104028645075849331554774292476284900083233020635833344534912795717980338130929136942944415226456679518985646621929060406445310449258843129665686344024272924155833605296421225292415390270064853756688194298872676018025567970256760933349667393854519940011773150922312185240592913854584968494761542855618874985006914687305741362564157100114863296752737275637393636769736346178436073441472752657220502067250962538740347255406921822175102030467839835331003622111339800855574385930967608648506036378890452188615634779593577668346971463819837971809575746161524788929898516580126139378947925236882839661554737484278166824593869688613021692378572935140987700089037138107456638280334112279759756652870072456169923216433671187681750108568052844163324100067214071987719899014645317146319662306283970563166086127846144139296660734558827496172908413606044466392470146358858150617777388806852522462311240817784597590831068404604448093714660734247824427134583081019689282404104155410799225945606107469504764845796407324638422726161653508334838431480227499971374826700153014415055247418589718291190314752658048393614713081777194391103461288878765469567105095129968520623857668856164129446858355933399302712036075779956740169496565103027845885119819200973942204351598130741382793680556985412697664405143283555177991031532586629719513677528128629683906119760012975140310562173218665630951895828926911493176868252106316405978421557310971341162334857776612867293862303914370361334814354954209659298804754781126759919940419995329903272736306318292215057760239928262466457518859568374358834532374343708865204937147884473287160973781805550537907454081794300978959972316807291398941776835458549924779623326855667354860624344558468869028760529705195158436888093223153897471722273473060770329238120653370510320836520281767687412068474049369128333379558615509582907766221023563695957007179848130629184012241474013978673418337246472832667987772048291762181265864278900012458370695030011516699948601108953894186267525551053785546098269681492057971303427056946718859089993581445096773591004303625204540690648138346426235541299562497502437899820334204580719848091472807549594827881559154806790810109906830798555701543103630061763461466430237216328086852205430525098553314891464798198903378866607167374459752023541913714737537658835411085717394162430262971842903153793895614142818235810123555535356390284847173724965099229616647797550879534540829442256761349131201260938477230073323561793049510816765059260829716211154520088351718726955775044791779690375543163693179484497524736375630442474548621071659573138186383735578390160281449798397437092087398890286477826352267997575081428275267686124444816530492380440075419291778665352866024416783408883956692945343615822490613198605149026444289936638359083221130762671698564449102285717536271958435940614235443989793205409152926167248532222512999349637071493027700138603280031657768223014541950864278300533238210809566798022766895241046419814785683594188882751634141342610127764729506003786864637205180456167619135238818956418695277418187774513970411599583308051009987837196171064556324580036552226125150990780502502701329746156252425567732287043832273323007533609676524040875464058800112321487193061901244977524588420588797517733655898819242344217226518861932351753911653544676383813361108050087488790179853539108325251275286244195056389611377981306312037185731555839830333809507522721402731705310224554461812534766924570789359141930055373843010685907017980053293573571227587073308287682757802071396205038207574392799437582758182304872276985593535802150634007020173090040517872388777368884772047673968643904556263930075575700669178890357739068974802215934963810040351624070223066083143109600535039707844798802185827518743886261728064735096286007498709015858252643702569644453516654843480948558635008478413030751705284758401258795084797287802107632689149871465776796938548675345393226043815230418587616021977851731449838519135165366119731497295991302376411988438386480914998243374651660239988664905737929197114080130860505130358334995141807392899884619763669262497736102637472882913286839518754602378148903686154042805437135759606813929851853700866128943390548438219472559107658107400275525101877524377622062746950049121872385800113861675124954458558205559044627354113866576470525729322053969296175392949392919981169769565670038093653816350700284280054040723648841393640427029140368841295473782208279496396248253518437891121221823135364387777386724810793925976811091188614068139881048669897627896646237479473218667995128267593337972147531245643521922015292756172745449402471092581961285253476508783451183814172726827678335919563422089518348662308108277005688656591159110519274698502130077810231182824462522781009768042953265382612991186854765777856457755726835924639504811983664546471514845460945558489444471640266665179065645927091904269775267055396517611697296686294815926253967727660088969806932354257504934824455612404086411817295565319767367626952065979288707983883090883361760970187528619931962272378535205403523400092979783533820529653931998351268892667422495621753925228478150220836355824051211813157987326454712324338439483769844646787668744388231663450077888122365066067140331646248602258765198043771306392661791469511576968672249923285131089414640974388727473802103744001832643965452597847634847928219681879740353904701576872079336627498880082260836367309203640653998871139376828043083284878939034968706334901593685076587868958540130217968716559892331987215252364878492415804152175292631588236181182802433378595884160650373548298744932254728480815477262812617021824214045423172597764264030121824758433082028544070112777786657505364359421453009615397581500950656317290626911819085355461468889786504096628826726584188025866740856460972897200767744215573280819554887381851475088069078366916459249610347980283489823809501685041338510666500769340821765960931597054402542304216747714901656287134807174279239856184521695270093698125116670237300313532476605560063795460227381818657783097806176721250539667655729111886359516576561568792562515784558404569524896178210005505110683583111600148007701841241130642921422475433828633835928371235701282972458610632967623017683688411487217860735600449903046975605558101909243046701844018817452920350602034902943703663950266223490084450619123018241421107011769282685734005787691284761958218625114034191074913138991795904145003685717921986824496056968786190324214201433909293672039554335221699728300609739095898176964978921773661630444413078979576678944125232236302201635404661820477363776027735613621177765415751813437559841675817426208706456075728744429834370997303883050197456035473829557181632989299588511289384503729716149244416529846460846709225649718714853079837696846135659285385741032110998380608194673311437388084982278871800075614600968323560667412335214113091603241382191925195875637228020439326715406520842699738813981103882892854498983579379733416467510584069196567742130220963236415215124521121923851971499393247695057940823691100801472255916537926451635137488049761954121330696075091101027511295983571678779081738227515553490623885324081182038971612956965768206544603750891330963210716481588964612812299734756134519738491638289289687963270064890280897403627772713215425342692461513649677997522876177503301222261624372200156744622214741187849248936615044991767375976521271495705747746806773816127232110551085176027080179008673240356321009017906646137249849733621742121187399219170194977945016903187588720447916053354563969150469543871202743496076679135270589224405882393538534687854093768490498764518453115785196661186853888585923367317009062709170051359484466566813705513842105193241915484253125247232355288699249762896712315595095951019742823108763145981160900070833560334665305281710647086870663029927315792911553845398096429056356553459397096318825157910616997612090436396776706065094673941806665434599109501431740478960738258625998224633576904096535139137037086214342494701929594352084448189088369543749768305778396280484238859745863342011641628279272542306272315305963905279103483819582027999109540894197148265572620604483875283624690306150094312444819003245332543134724004251412738809489960099818948943416838971351570614646534954057757375113265992117594849728269195598959351965758512212209112460896401777877389931688629791996421664280605130481756392765955865746609004736027164237314627461850531130960793954260367165924775865940792119697228944241447382488446236985760514982204800413728695285231061045083813901087764796375031780594092839673894812137658763317320816392951469612720674797033904633682716562932059954544404355283635130439338371544784138465018697783694847753095680782836014956085208831687381220334358177445003818103638720760251391763421554595581448613870583030940996846014448265163617670841297230629593372858665280561755673718235057074286223542634715526639208840747272031850312537719793754867487790294673422038527874623228841281792584440850519459138392820006437841060226207710465829456842531644743913886388296215885184010057639518785162789787793503623086320602605958764455109670199766218042514171831114297045923185386271206132550236750396762627300502552076078362754687390158905016645480224323264695406204799792971194279172022058876327764617660037456419756526838910943737326798983913092973434616537130539510414837921137055398650251913260955438155743564715049260344163982949617173796844682697257950979104457204127812241021144968905585925754984176787139012263610485716159104006018979939436057389760177510792221565530273520299876975494640680765331360336548613640624031414360994048788163530518803479653867884314068115698648265313914952749345557414414365680268446745148198205602521061200166278865104159239653818299601232416750943897287854660136372489192231724785177222810083661759062173967424207896445432920115786583365037414534634268561091979460778332039634250693929296533474957415276451709115265199259788664632280188516203474107373103793278941436688358248097660527112414034288347664151614037814605025642676970464333817623927281734737693948230598460414405255566315168191859837516476232482330123724632833112402169003841702936225274495359593978365398682741057686797625609053748244704669149900462857156138967500548245598753319936721432086271980074852700230535794470244671399327368670341353282397051712292474278656702841601876632036550547517581586994217985254707907457535656511472943635760308622851276460950441255490768777827317154353161873245921820013963026211477159891977070211509254547914157397773753545568105280548935146060138488368725252395243655054631334577327474611015493237947678822281434796791115466480709358562443812799480467395949549299481508696044904789118663441359947190146613757864452912139912782750692608332443954309906953029958242916438757925904575050182535751370724490222113520035577012009326102767614858058235574894071508312950267911096772152827234683906873269482572904192421332743844432505278256219098415870991534307468828870144805720701254126451827212167614275852489319371644761018349944688954708031137494924456339105983123733894150802686320192147115840118036327925210371067429951400276642696289121668677680496075398515167127263543207883851015969508098786062872525041601032725949677304687339988909885237839165958416790272009498188406141662888967839526461151882232164525776482190791089791176790372951752901888653697571577122664626388110523425682273332420077571551451408393338282061871381923339996770234706997562195038972858692360989142397824820255957952267460805497729833164809498359207132593186547262307284607483219307581201710050658392436449832246789759457888135890909777682678290133081640608493804101736878137826860106822210207725196938087712230323614326169016685818587710084426540930239838948041215411825880557847249038400675160523750268006603892449164827949032723194000331860560425324339770251010416490326722622668772153132890321522563917120203065695534481882973997912490909724857723572592097767952219850624252751002085400759981955242017099255310073593235615850097557926240861489276471885201313737667583673469381051821976588920898544700322591569113062197236244657795373962115848414508272953348036029259609070076181595463008271359685938267094510764062354800113397615275485510739017122069250524260289635484206690452433369279247519675876317374493157545718826809276356032878738843949121344283747177931726373212403939216849179210336359522506793068728900331061696435979106501780108604142148025961453205270013218115024698331340400604928530534480798358014667940969609610665133409670620111598884025553549275444388610180044363587461669571200560708242080228706719858770272636790586012063310559120200066057418785942807618725670771610724664438349578307794603923544939357327995667551194785345229121751156943557111567961332403129750421217513031491926161472717024513883611983588312197613698440875511770741765338010534945792639698968699714326380968366051321817200658885788822470974457440043407762906246129771274209222550509909097694020413004492709605706658614561512998479222208181428721172995790712118892307721725718117916952243903947112601401581777562265607028089945233842676848062844419115311816731649364245009565248584439737350029730994900493491762205565488309603778038114007391294144020849793331517773180076965770356665981944706754709353259593255124729824148302132069312417883080125253239240915766409817530484216249609653829383994550066582594056932735018642791887769899105383688266304440532399416220384785188232376586941851194982884769440182260236003910240279924105704342723781206418280718014174676003907824662260918792771980317804641665920813013472503880763790462643711545806541124058830005478384003460532885937863569948090256869636661045283863777023651256170496601739994610357396008821268157495661915222343545838250665645069854343307878488784431373884884904768399492616618773150176108852397177337484896592320780124927588099122186213917497843377728015879785120617802194463330106130800635571625116102952773171164396583599388674529992970515657774454123707736375318089552446966892213684548018367469341195967868797802763771612924505159083105148594433441757957088054682387165760187686384837227538322534256854530605502234783803779051297220321299346700124936966768973671751924728582732803226954777944019325205657665287336012249726075376071174888981320780869465947573863572817852476302171937544125298530758144952035611144349491959883785765145253430108229737519740410794521637721766160222998783484378285021537147557456755058258870797505498509314744743709817490406771255662841658876417978781531600669418820514139201234903143190245729960643996433752583043687692239172301126754426334880049000033495565622410176384693821815435987048485134887121094296491313290515237229810658559778759066591045476177919182966762444388954571077570007753122137814771720606399028641714024050400193706687205467542120949129646433609798240698992564047522408088874817024297376196122989473140721368431423954564626061038829616897500931887410630839244936901745439328955346787271115142613859215610585788983189006898843954475116470775438326164791679597196342865094484317537236898299019046824083376179723765163379818936925069481758103838168396805156146689402945406577566472505692425774608164212182967238023447900835254812197058531425866833300706309749482769907140663471119756400477136085828243711282462647492452531295377148606056872115908254431318940283787103243936739884335419536769809209076040114245066570329978577159676697066385531821802783760455221858525500640913869472232129301143340524322601305194816554374734864076975328723993935073110986143880789950615892745101326315677379182259033508875270024841270516833401280726284407118261300204122881608545559306910606985458442277277238584099270981072034403224261137282518911659492151944247996726666253546690193853291514010479285920159312203200952598049064177439832209198664415907818359773011324940935023284240868817866713566943143530957781572634668822184555280325479233858286683209120735384128300031867317591124113160089003742875728612873820909456476913367640132137702748325163927361074296595810079743870428943475946723174712206959993394182380780711398904165114145201536521330908550498526208121658283926883192630420210151783994408017742885523423233660236454156598417628826107311914164302135258890872375092231268444869977431905950651470573745802133318942551732532571297962095729371405612347411222322982384320781054508976350709900838584622417679955935783120586699000648856037540576313807343937829956672162357141769949878755383464355427275394204630520181079895332844767356814483591749192354867717108915574625390166684879978494201479528382730431213977047345700292264055269153198657682615157275375258348469499253032454110020680633250227346203540092293010531641307102685627968604893132475637629341937053606379312115182266769443143466176920680438564662164929980798082839130528707391483251496654770963271960775742852411517267780170956018918972421108919309076810638549675191692351717921147658354804291384393620966782757920269093445462730115948095928628694056946707016812026893355098445431576538225558283359041750626310929340091031297266457017805561256200984907180876223315696328335239555195477206533915831346742119348916681851553870584075951727262830312258437081255520573439388486548957992823130204899650692415985528851333023494950263614704566577942947105709356052506292938561900122515722964152020336855472585059308957949904946082395050809359580604292275157158598790840898553925430722767588432151908266659550987587816820213466377160148377184852980962636855354587582527035300152625338189916297052911507717856297925940672383586641992294759887387362244331270659595670227790840872515747265064180277785323709021835678661348854552228963188201175501393552656165455997519345112529092128360917079528288024003076153844483297983594397981394260581975755443774417356672576880046176388472698177663876378740592672336046071286376507363755703037804152434032824871224554810024786760853433604498538143867461979877928252190910727629458416510110237771410689795871075905469118393655513061497961037853813844430649659980454763531676124315809126837545545012794450757795440133123288911105607949975018885627915220630515784393173026292103773599143033720799231317980113878319091484537907896011871963625408527569355834872384398649217252013148266046451758341623716787597452756092015959416517592176159569499258606994599660200188545952472990161220714285054411879981483258117983174990532381302373094539309745150182463904986955589821568665257518074738834580911272540399645263598738635410268481358602208999683882536723589073836319385592394970203084707212529331745395367990570463946380996344107378033101365616072296893207873843969201179762702046180962619688697595538890884653134146532306698106307138387890703260194955630481713595517394311598356016539966249376637143405400697018832016673872982114677947777956138832601202511512189395792451408119255838544962256706713487757098998404001969290712898108191069526504410064898652112658088105067245149816286615918634636174978626439217686125383326847662688113767455988536529778440231057768873535759819856836488962034635701223433171543279566196444424315850476690852416931795636760794522302100677796091698095483279001201221778393818817730038674309461184893654519446213256552030908270193430560218498837497206044495285587025273981551828605265311949833939520223131257235590380490390181874996219796913201745996492282459154403993473149117646562528840997593194513190794913032674204988671830909882773102399398595661049584137812704753877430141801410185492422967818507629952792064415614350916183313239567714979099227651276021779407335461326484327985637649351120490643730451464438242795681088026400737803431292724172385756225134526585463127990203355900778165096470099198468868519480323402428202776356318605979876872536292675316886563246714514294790113920425083928791561539764730569999643767024425923336248346937541794368086946474301997762811436653713524769781331822495572123306576409967951429416513604128420102894254636066069920956086688016811498815976575615136504776632062644941614943986573133737818356397988172317668030832655929689241293848928542313386413892231182120516595831208372678789054272310506414254832557526597014012827170337409356658360397626037208527082268700583099379969829090482365001060842390364543844136930989084866696853733565182690763423527739082453700772118489738995900031081722684802593075696937275354167573323830176306227138030487109500886869635054769235268032260175361114985766711511867483010849579513196991547278479407378176917128401415387715677452548513176076905950772338831153236458328727746037982551330961892505144223991624424175644641864291760299812695186322451675668746512330845586465981498713519830153183258580171302387397494757328718580214960405009972925841103081616557539573525186959246416468448019002679890838253263327727754343695644800463221832570056264953243940049018450404183726451535129108471403844762189081762924892879891545291175272662189281506136192704132979443993790329307584042239061640027292646667923557103726349915536138003097725485494043672455993551147439423336758972684838342782237150789974311667297300622243714444646623884215645575553030740306938024566227082976666942873167052970705895835944886763461574784756219766228521298058427863121539288426560205972094625437166054924769216964645351281514170672109686511014885402643863122964405676247219746824955533981111634913852371687872088593355095002364857116919320122498609671239388347583437459965309447127397291796980078246111323829085486453814837807574434831667911544479330341520300702904618719414986026640920947947751148288206498815357799648919346755088580945407997731919528156243652310705396698843848888051538711674406608523938383548811882646768378214397879652600685461590255099341368267757607220716487518471539584054219371464439257367449092318268008154149455573690550547793597272186699051782415520625654281321381094674810050420549435526198100163161400787589111715791994671726860538487927293990796980229358206342603765354947219255257390632455105703565761704983500058949961941706847287403770917876001188860442584560919406374591082474199636459236614531716827530880963730188345887928171536015609714518110580143654602062254343347100057218417213777169934858130864504471681169882492036457552081574517025082334979268282483189124156747300316422397139199542059751850115648004073483768105057756111313083632002980934492316654978539613000552897275805266107417254955969155826518326371337574309339618032551898243494954378788741147817909664939202518921865023529815853640145768747563188883285500832344811904530107978574934008773970042387865310508050180792855414409482618854026618819001696460436703323848232393984815979247271485324016656180819081667832244525791070326505582799246905369071632000308971259132314099751080700340573875734147519594866076245527287921385013210027760412896348841157113707029395898392563509253292201543223551848475284420033075839450198471965837322004221601470456312270689896299136251078944835585761538393529637571787124058343262913011962425100215272073781450452626123822483960210621456625850725097961673820551807493301059220460512128422109089955253951760040166515175622771566256635100076260801698410045108708860544540803458161768613022459431968977039763383209427982615904262819204790584942295993212809904169442917653951215625658070812859375824584829120872652517342856754405624213592604323951671005739604192718314468280088106285745879040089629762892817991949187029944068310813792343116105471980045923748537989026953648706982064463316829042226783465123347416662806563386866353302400388896185035194175687660115768671320437351569137043609765629219039142664173223380500451801096740936432806908636417026011229868701369014320138468751991567836493153798035713788786335837567969261446779718513348653035517237547018125241376123033330468652456900142599982595654943873873659779176301786546896202658849120783224579767297309096294850126138402532547918612587442468840693985721116555815510578489794152107932760921243126060989481364939944092713100168774408548981817291933356773795315594649812188173048059471280891710576627681501819869653812068743136813046435165926771462541851948768050609432617559038437945112705521295730771971648495069137336130234689185219760918920192779660183592652938854325561150385239652011145806165845794309958483897804349901677268963548112132816415457328444822240362769369357867252971898170363233308829089243404603627138134526086602265013450294592151672352350314760397199129615556136059986592624137655350797595152500157656566455724340625753583348191258868698856949995402554166005773244330437445364977077930564464105165133058792659982558257945658964126846151213757987362614043356144637751739639477436746187289363312350901514154036510730542845760413024058390364030463149459068569293118659406650076610622926122208664190871734221834043204272243020488896592574697073851695943496073017889424968563493657463290963670812348003322867815669964108187404899333327898313736013109855336457554011354533623759641706109310969385705579913771681890176864237764490400792882973858670615573108521201768027527213119001517503705084186355765185541858933577839173114882891911568225999183097822372475470014986849564725866996953720914895745821039866985814986349336376989474733208244872362414982688903348301253646681230901405220870294542321623725335915006772299522051917669999214647957084277776241010521316146068214550912921797958116074300309240115938308347245663872497857667557214320855167906052177125580248776034516215383199711530863546670029621202400136430557523717245464554486861029042874701276884943026148558635827078927930873087084884087878907307885690284477053104844202923069800838823728815719159653770598961274716524177935277798399257510783231250282704694622599883397844181029424037228933565341300622788173634770426745477557751930142188758183958009982055426147908757038776465123455883167090025018814801126965793720027916902962013422459154724422554710238538217072534670735965583990800963197456687692264528271530564987025707786604839503029073974411965239151119851514533232515918315065564881862733835341864820881256494001984584091151824725658775708949218191950912215113444334005383948121564572246485089095105250006482266356542892666463683916028527863122335282950517580062183122449361562416440784105561197833027301945760137274578303280034550792307813024315996908076040409187932731990418490061054767838154866919918232361322808270117321041316877076678534983276838819208382227774460037960981633882699128265712007632355576738500394262155853665921634797192221310305986935483602313592672885981246383292189773536242587652800295997252388210284980058580348386418703786602907484920048914719777368576913598936456834458732960997174795780199963074615485622143850665725282881016555797624081637181573746031316002678032083475026562131543786482383562924072353302847757775412430017231676614938246321985001207253849998207515289438006445714312108075128215585020870966127951010318444582867925521866282112508791872302131994894013299337712092411168431701141178184293619156420297602453159207309106387864365904776621063996102486133261892077674640601527193975073084818768844585932626250108191913969612904209731043460985513299095990658988262963417783004589627456819158300161878961786161495060235330369778273163874781368118876370665575851886116594789313338276888539767471699028694736150908463310913209245122416243295445768594247540938358594766775443857698020377341476879965685004578647310678871200335103577852223152566917031226937625337776338089648592236711658183233438262815318201570187401714139810908437677444477477265621537560077222144203333529156274086257251061647072777711412839527391346260330818428738148762480546284897242888557238715601004748669735504431366219637406701228257009299584010094403251277297393767609859457142896858290924171975348706381722056885236652282410284351273341686528961539639779818420525110054850545682474770633177259862462125431377585910994344321265848469280211555935693269061848994071978198052866467780163235379322564281337618270798325470446461154539936271381405004822574765808564902492968803922353094831875409731398960524425850239718057005332093954960342733729885733943972087032194317957169435925311246713239086123234396621762748188064932594670664325484740720366342572562095416918470184995018296765473204369838129683155668745958533588432157979994671811317116587200103215537334634168019975104801290682204024758051974475051254599415610689451578826345968273332718274332596716765333451121322593430375488448689423708197791011007477245820240741689639592775906963604685078766018453639956107712190245125338990509234436108688039755928045734945600739797017882395018148228961807946111675669751355729549023416275504620175780982795806666776988818452119639986784074287866666882709351435296070238374106115856444825741684561848496706742811368765886709943152175433531833473282128860154146399429630155333647546420880239004228924147452991634202695095055161623202070377937745936146929515967865081503191243433160480949715524591056139198520448324391558157078303845573304987123211556074971070479758583165502201293085420600303999120866088213885564988499864588875202624230235583743057417566603743847069134585410731058227444195272183960394691154412343049276813652054841892787821557708771302747564581568347021075967661607131259883045719791697503741858863538846094728104531726197438122698530719653665449357815966444808338387029373345308059682110867862416153187500795906202279658797387469801851614257585540286509190043554957842663069847003796169894577761396958807058996790588003488092213458584849342712877548149929904856648497279643654627588816256235571438197759217733344614772605077220475877358624693760248712589714021612368773474498741251730637423555878148025030122611391636587585943876247353679280186549113328175635713228125305938606287301042887175793046281989731130478745496402510156892666826474761810017375657081888619553873182830477688322745389284314305783469061736260161027573854917319715519294661449345890247108315528626771061637848433559627669476259897744750661986652911287102607890784114311370526989684237210553938723960335416251045451634344690106558709347023830608102217209461870318671193324759052713822364642393119468417262052127705893274687042720015269635800311035439794675421546791838764410397044074136249350370936692514077703183290702357623214954973568840143044705286239646738715160402868723677784285428362695668202766331606936447366122241109749036441114812134354173281577775501512850094906952107782151938354628512792988837133965172097271210905114369959636360144526706389830687568288528016126586435320565984153970812339180525489201830233224784679700275675595583624533341867057873272958099616034887803524968662873307121075938201072451850403296900733929210192172171019470334248558745662767955475924052607700137572855306166136533872168561913917107509530103808347915043631466520508473868187234264444944108443214889910934080045847698773684090333438844957108339253665940303312801932534761084962590325564984165087940171420373913195284564865116520026953339815394343073134216658725154543824859445361352662245571162050600935342951748458726824069345337431504829351791369569598864389956142144698482229722482489395361524162192770764009413289823390584917060699141700563458093780618453182702411340898619634532448497279324245317327927125010755378009397444522859829214736076437956419190352226119323400332136718027037680779193321145214515038220086385878950873599862542468915468172389938904916145490068338438145276709767132959420836663828007637110921134796689118876713974978364247995919982896569303605998337162198998362203188324570651749357599585070041640479550831407396592096738768722926247253756308534246462172936980608828804170275407026386820047186127090500438464953243227564014664575690124614644040621921740979138012294542287099805788548810595476223219429797355220078332800848185783739824833781024196315272936004425827626898668572460842886031173964482502995792756338193976282143487224052996963340567946324235405027475197336733893096976930517004730784207610334538751085282365797241715930377079042873185740226286154155227244466055487606133783432132502528743254372583877227774624881089190260077960548643758897723652609582126954161765331509819168225821392762331940174687168967127667712943210826641106062690132330038020124547522862183730673274645234489763258744981471891914119321720588303183742445062320362348109034463941752306392211316230783591143019571191294169723923379141864562939799373301847491335839593418509351354873892750369076463091557570813730390435069524024021271738387159662753596955299937148808783350309106649711750010758097806312492827009185282468108306081046521781688489309041696947004938741422409622173114934034714149806190862232488420521266578542280108226130997428143268133495028809989128551933765306577122630701208076278629944440442469201613020041737310305536643766280201359381752246297969276636052058166632231559244361239826492350972423394096393896421409439949167021813045689785867616985412057414741237612816444024828325070559417636185749692757674946329255148159031009970288114777025486346217772460046795967209901012603519569862773324884777402617978016444836147372503983232010127961725397711272167915126342688374466375433799548771263969615664170757581135498898497558088931161758388167794444724220207784050109115634369497547514492126132031970099453729667065009645461697017576389625244344772856640782146283078182799703656337678226245347944187975049841690624477995531548479536170499620245879101601901536356665528848157711585643738008471469679163422600381730190486110683303523262465118061657311347197251684233705006645275244293513649406463768158835416233393153928217527775713685543139410563935662923079390899647317296444340442157620100268471513053474740144684954548051587055518471315326208043504110421025003944595297469349248775895937469850017006115640817700712915930073842689114083253119236523041737216197904120661809336449455493933551855686109926018565198976787043253359912335345536498942721309694364599800123158579959138649282372199467853181478464682593241755702892321958683697140617643339637177329048628759932217668110738542645489339078255566805704946817978214791897327746030566180270853519300023545617837010917008024486813781610186340075621227711969142739300504412120302655689924420864263518515841047451162374356133589198072833865256621284789696081365347871877679630217225791709644607736187724876739993067006957043727602146156276016195212604452281266311329047637698874736043626282822228206333349591981463090610408835058100196554624777743781746363801866826768401646016983148351980540180978109585015119181163243475095654909002446474999013634882073063413726296866177317888444291986269885656548701221494877859865212875778959384559863260867071509914028220678200543588587657272346386651764802787833433023121750122008322553870624269949900911068629671263207451042534568581469121341910490714681300517381622769835460250470041596976330350828888085507887840930999299491440606892519172400039329653255415951874656425246759931738406324350668235874216979473870117449443076975017880422008640474130953194928178870791884556802626953269508165277572318314593535264271080247959463331534646553331792435196161415761187142852754565594363137413288617002872702132586785824489946469728862494921282504139973713372588564594037288776663822600468951255587421335568628043027246778313310214690782707216227366179499247615535119356728246498137297592660359005221230471695102053053013772204242675811054997593856011898888361630957101496625033257438612659807941608929010934638341785150921954074421410877069673141700657186722118618478073176003655147595682772606675165947692277282532602940842744209667225037894933415791864809346156169969473833113844512694709704836955948405692589546885781996942374492510235070879378377964081627083193502044377651311551410698203238825564319677074569565588671678708593486771423648661522404577003302209037204615352371727859597311702327781731571245777126307145144384594859460641425565503534000592611534753020139932324572086540757252272224049223034864142338807553298039781998711260330891143603403257823350884435977245503609387059941691777419601006392760353254603515138592979874464373256751090537050166972963493284113074341743517208546672500705471601169401940265595660263064318461073580263903078038507508348578638645029896845648946450545353246412821555827016042650025837344298962979203461603951026536394623494269289549234032114667318679882732894393821393303886973079455766058856096470874232162635159414008616599414824358249569962639851422116802519137160740515142359508079447388825327842179728342424483775090948132150100289935472241521143850089124364101297976892382647800228505332009818366474059930172305358712468142278721616105324593926070392434511620284035540298770513900425543816779022143238163466145403585763406155958848151202417408819736167482895435584868817665337425768435522284147292953962705244845663867456358468790130808578704894130055164164497035893617176932583836522433078676258078506718975798900600138506499496126384475470752441450593358023113547563601004203618372313036851864294942876219850238868771964373965503456620249426945020045964630706716629245753076642173007571583582310863224410047684347638725105852897190736019427008536648547528255605881598010793058504998040778067222967109114464089275521403313256132929462148492147060514639589433918353612284026058678906487043575433093386894041721679788461252139421652248173469147327070870614472616899651045895537314914745145769462900077315729485151535824334480275532465395514144047007992439694845678144490937240278568061457304932847542904255145790969272063013436659931473494168920014376678308625106643040394014641957671956046319571422037884644169109497571643501948223540194295246861060285043593942910012633098314262439325788446241177742483418056519987115530291069155870395654400542411770049861358655797870280958375665366617920466001110183560985591521502536567627488050763123036005432450712980853907589734067565483717126315374534180705773225321562399052303820624968841792467688070268166310405600917596128451308454132272796583988324499263848459184243572388911791458970056068111741367761836248114523458577672891791078832572152225643715623330041280031724941776547180568783047041424806269492009139013454349427896831629221791225042015736514941036761530792016691824721385927368187564943145284620267334211860633437926281221955896734655910846112340818182493781341830074539345314949435686014622332229664750147058466865400004259545399255728683295637953792413737536570891285839938950819491173575546014847409919197586021045715120089478435513336586438270730078683816593449346859791889010464423695836643520191221111968070455050998184481036377193102508644682928538423248402635939050250715544257658436126018679210335723275028119793023839860308138379315873910703077851449575332084280375968484134215811481171631667488584573464329295984831976124112368297556582689392561251117703797236535815013087449335258000157812173296038392838148093161721896993268934571463362028188114852749699035909861508672647741040806904163971712048892526481857988022948336543296421672255264162941178400859792965214041314669699665108516310216261675556185363226065469481619625799468019235883015057417570718131536244497687591349460200186456976018145626837348995351647767957301188254459586512294558205354299114655359041481358834836959275405963193532950165628503168859947578758809762392049142496278932866501064656294769143450164199794418852693238133965531391746889599114272463188720865007039734623889047724496935440848356899575564127055859447352812449811436329267457211353470353176013039161708552345792190686074163162181987923830116215810330836422438084797997195156602040246148615273331175388029332356165352558136336384770179765214226970284772022093012913291942113719084729847334583939613079043515088875763416729670029472937623837046153639860262474640005153882265485187308708948586751413733364605076384834681276047011580373310786331737601902841653812107944530882120711469632830618362642716114720100210110916788698047897038339092625907913798283862797832381724938332290151782230997578562982226025320827463172944126091332168367516261805856778039654562696974655604042985474124636078763473077918964766595204117378857703085562278103778697576414416955099223193364899370544920719973681971923284734374528729708027082862900234391054549057234543704698307639974683272574995463206429294315349297028678308923569512423421786384672995857596318921623172871258173848740694502098480713860672557430985261476829359160488556328301870092783223738867561118230582450704111980008269332767522945672369533137469450303136461252367022825744900462275350396372223655076952061851665634046081581061359819717465302765712908763948071783305633916239402022775421098848380018048866090493874883567634908924002137857798585026065355277979023886229810281624297172064361767649727440928684525994765954642658999124971028176308823376112663084261423764903155953854967940624013997898071145254473442709029890326231874511843024231967880385325468348732064121915540598846875063436779620205885418663821677922166985703095353800539660315484425627545779437016475963735915391195585737218736718509090375404521896165726365251798028534036195163159111706238975509413125892210203096835318811941085271558529032751943043046423913559168854612621669541992224127004161407186653713735215551671136454364988666175166652093642589019933754216846977159174130454992129225441292589492567347255028652465775162800784696706143835197658640425810671947867311610991798847839713606203383591986932811708043773097705761946873521427223971944668819841626350442069212020020735395787266054042472055248127707444875172591978701712353239405125031105368352750361948765987121179124576312455301750076290784436346303910679290548241453843599371833891379082613510052571654404745933721166862254130729997842548534217139629276195654661509759544020010608455560109252051161086913138867443814822038235370078477826366194132025146493350001931939248398638817962970926368448061138879036015314373695472980650397101645029057661353682432106545087153544597098896801250272026148404441735367655399647695742180005519518238056147040158753600011265490481089821760097684156299336564179989314249032794766053050657175109914085487800688592325917962077866515661263961298889346149986192236663732944337569963213558584829028307297609378902932669259390575782547838751513271109373389699592105816463039376017866787725964073290751562885723906772997460994850302825986557248450521520299852773437749902747439955430980362123953510647018397176224752260489732259706314739218396881285849025075496812448753216697059594626013460547703318742066709850692204438544133090382649899641970367863165984514306606564107505405189439015269091547626141811439003578696381593018836651145293132732615083234934036373798941141510138531942028236924681857916527051038600381787400813349965197435340049210771832546986650575756180802006046069111700207323446973421727823841846716352438799053588714835570521203392555398091304501213343759708904493893408707754829363883251982757174690007814139705278470160597274661493448731221444808235949033901253362491854367316412647202681601389121598450500517117618179933593432869694269178469242534512665375312801126922935200592330939809839484425443002929690043686207349167617051576639391109953660506360937974511923832378375308440083089026440090352620543285826133156211778349850612742283401287343547810196302569526362907747248106994256859793209909394684186565440080522708309973503869765322530174431942000732380100767824588406658846483657570095577819848605341700986303713059207269461174246879554775200900550362820900554354801454653002761651402163226279891980535364371471092171958916155200914765317412336703094745544589819305668399562265221915481932788498357751530253151949451187450409165262168471067140428937845805196662435771969464713310766741461418048636169249588243883129440646091497305234174242976195831348967478728423056676582860762881168636174968475812957956812953604342066723002496790393399277502449283637648009940974469870155573905981712341396189200378684589746561005778693779433540003577090588537286346236316982820557897355934263599944209435915101364037185138050464658047886199968991852515184643643961731900922597195790203574493883145259109717058953216129594918696567600098293088822049339756870299771790005954890715062158212245885499970315879545357104146110848326230827716818582452784406106171847220205150293402746348225417081030086145381875145261711545843411936997107853810123170041506161847251602959885995402753362062744944495151358425052474829543810903993156773280644914773596779674311174971746793380605666066324285862360923336103977892911081249621615226320879928471333758578631817772472330760823368481536614689862118667578189423803369007124185059237200776123027945933557484395245556019796805024666570170388516539593367731284112274379068208089521423933981252451663309364813401973663205296255673253147939934015483458544923338393495597837522011624731328344242746197642907673065691926728748187325448514837385834111978019514651943448145728580087211093111722560700922520008900718595534994348249491522962817401481229334479643655037819417008936041711548380793939617147006141470881562100051205721088190905036286562869468627544510468470696440394231932422883662749040377790705832499582047745704171454933013482522122425141107890963701265787636078152893842125530402534997210401591131641861186216357298831161977716066264528133556640287491977096997444682129346679515088940658044039393703740412797621694495907334016381208807122237046756247279919539861724307838067963382930325820460570506319444387373777358425533007605424248315650439757245116017676060727374954248861273045395226585263667537580837065151208353030407860182396998216413416480971551078814180433162697518023306042142713932737889535229602893929791202102270454543230906782560413368871628813319307157504492449987073515290136651484657907761016215481586646387833053460612498281320535119333378650892975077847719612331239182476028120276306843718415929577345642554920400255169092697188208722569514167469810411413097119305449060452498726406873165410873358132141385577660864956275751395148172592659418580586912215537806276562442026624233793884936694636265967469151006430797730569554192779965854170436377437509940059076999137310184767411401629836143825810033394133159816278457288270339831021441853396509091626934648495611853744390894458511555620261181705185533086409828231220414247610141433304512781275600164067339934732020923990224375025386628677250068762313051559355327984524831360031515943016187016745206215634708336910681579802891796438932468544626434890100997305369900119529799099818310788827423902675944356045742983623971103620897326123236755785286024625279872477921834644330144114633751189494223305406913877071277987348440324989529073053184731304801922785832340309899582375644492014328492401434249406760210115381886237554835366160129113905379714759909932342717306873419701638431567250640131238171362090507554766669110951046159143342414588262655566482394773520291338440246182888760204182432293940428794285064773951185441680335321023184539692550976933336570675185895119416022561430580552525219402743916674236936099552420205301537894901708051322174666588518620833770357322889793571045513649702468631330167796273125521476655854817771641733297889206650397628420481735823274448961595760086956018554244957224589770595176530701629359945631811432954977119571124870156050352580998467203278408820521104702867992664788155461557820025211203012881658500313808427127993974921548982782858186212725074922161623688221542965198611581659781649389601775873437082457173045343799462435992159025485901795615374809086057302373455518970806316606768707959306216124721888301154519369371656444271151838614868833385748948944533886306235030978839276020848346304243714037950823584107521432178992275775694055865720968108545830197153799911282054248418202768780568258905412866854641991315169303795622162753516466914212674845168192212137284441058689498111887293510530048637846496699424583446967735953815189793092299780605472563926658289293918919868629759502113469708880580980337488940408743878019976631283638798402968917381276069210373430256855019190439394314802718482421631076383603624994668739306017671402742338804840651370572029229600525301079094435587369287627383314342535947576623872225327224132446982304142380645144205835879687724493808894835206179479099849301997990412798402815433368436966001873276249846264884959314904350241105738230020331632854392689745510847882803784692977709782133657842828629197889243404483427249749018192031471630730565299210224659382872076094843994610650568644300433913500066147747552620937622281842974607995220837041930567745838730203853491506080139875043087712340143882977662173398410042763376012612468971473552450839394297885610820702754334989832301750779816085032446319928476248952213510053091138154734834130625397569083042537944042012627419009884404442056415193220237826677189510560346142533609196217116638392483626388476636369509579303881836873859971549780019233900545144324129281262640841957273773208855058267421135565008250345792684613549069443609689230649922762429086826201371049639546215486135525546544422016260193866936868276327528962713173707380370649353923389034992934952248174547862861624954623262919555590878642669581050955154868922054033293264184227634129303858572411849942835122137927777345513742486600744697608204213147918154197968348569836395836964585687299324892678488817786004740421892680071337476137760283893013754588339142347785921005642915841682499126910086346695393200332519917345406409347687799372346656361098831236208222679839266153222006865492134489898435652472589759136761887248066949537238159789789492857866662537814273621069763502576472434914117734820529013775942378997539559190873737281569226027575216787523749408424558622168006130546118150164534950372846028108819878570046996331067977420454969105929547500591271705253365588336902893697657404440899643573304392239343043854902300736437055110516713903696182260616273639142605355355131991449605260921237548874182812531070078107032261298957638599759424575438463359865783463290067059478433132738429459012732067128834792037030483054749436673152247701900853333854529024041662920708003193061169112389752706147872969438979193064090098193274896260837534857679979187440639119820527389699471362212158362563271137923286178040893114472069581243262616851001437856020459938528450721199437140384739147880706763128491698801533432523254681823919233541561004494461212935851911234801922952616617816998286869131665361378601464927372034045946656191932054142454227969341535388923184001361595411004494220731594841238569422469758409328305177835537052705617372631980742360114468587304574799919683518710775776848536076451028047473680008391212505937985024956182301983690733375534298829147889735089484312381978761044181851423177252983866338629429029638708604920909448362138848936667740660063641006084456533447466782519248118221062489381629239061587714820327107131671482421409568747481394028659317815042843796826389201518406906860331140563749487457655012467157636102634956564355633069001942455528082070669271414546830259829420779211069939955425639139106399939024231902831454554553100855061373923573860828909364922479346125641302875420569163693154127191516426408199372237807679944574180977878739046353015519065659576542113891615348567498377310490921277757160279872921278401024030080423467356568569676883202836129576543920849725262998222835036018143889638153844119460164675916466130341763948167228520483903328379263672526960915362289963351998426234780995664714362798468892542587852291025613915783489961885107294934661650490592284926109685124439967584790611100267561248419379289853947283387219383444953895016890951757056928921514952212514066831839395894725871901860647713122322013848692110711021978086670015272721967994517188649073332599070220523187265016906301321222010148372575144299700049057589974843973779489233889269492779567469814593665308102164606036045655243125699991556643397481196692290476994413475868564484953228204712531510930410272903982108177256355986418315368967544834576181458035975541503286458851426007271729093404123583556612802634987919791284421508273879754241575351400455168780712346117250973559343884963011687563267182600904063382284563155898495056247673057394045041146536780773377001750797935930682775352188229084569668460538026391562213556017669253898581948173250836856628517379824883432173236245450159928397537381750250914376473153611980506061616622112505528234618928025186095458682814792679337067844059276454199009887857430805066147099644332202396260673903541366412031377419477177554776510256138409654223347150986463711955807483848933373801090886518077531828967036611419570909119272597583522970797452912865958509201164714736802522879270118852212246411922686996265579236771211030920034854551654967463159505261018248189995539302684318283457280966728969264298387081867264917094832877857881147764542556422440585391835701628941179222661407370889579987537234345147895696181612341087882958632393640097679581941587400908411521344218957422501279565894665932521560231046985111537432174592658936992944475192361199677952470821393697829462666283766886124861698120327435406077879807253355293993776819820107862217639614895654797409300639162230551360928642995876417615391777368613470305527422238287398646213093497232058321465476382142848481193274704034683716359755873773088779266564642841015985688161725366910522853937799523994972194783495820848843794013685922886993740756453399005421635591544277990830768868956981087769962569705948899055640953149658914304792749682803571185818463595069275054791037884127565384901876414370840751692731462298243904903104630351019722788267743789508797590964268493058335914446239320323630212219786467678400783133649370405090497422762842338281932107314280506834909635914811354362284608389951895323048723193870384626111713501687809044002271489432265280948954908989736751885042682359037051516257964658763253978034309295478197496292357957107992269517856213649716391587268877000063817403342094317299906188400561797204376198650848673035195349133431443812160223308258532159295872411409111137796296777792243027806625195124545011662068601317890349754696242515385807738113586479129815105659524258516712971425424455802806270503010790938738070628846992216401161944551696341604613938294655725119390187051856504627874968417064396837069773189978862175857417658039712788828616042834906746053605177040475480793316878901043434965567715256397081367890137189613416879007435691921141608532656184754229798764636609415816605796575584772147754929756729815066878288726592723428496242141704455555969251700518215935778552878387377415761994332364238676917048518811072300361742800887218952152997200505308656012992379140781493292521427990622923167254367886398742795623913721096485199341564480243140694433877892583626731261796661009158657202354735292185158889152963293397793178650793223166432410238601640445644336309515232974669953028384816091413875294940372555577836388502665898124409002965250280447711157033535904953950129341754481696347781454903001912751413524727578694508913717850192570522238941707619675801618225164965069642100995976453116078145781830648586658010492972561101884987665862210085013807398016815185412086767450796358660825720516870045630320258188336528207157560107472162217784169831712000721531677150674988866548498294902999505314108755278686046132185562198783921876532315416890101155536524037834104500082970872720723867857814967291113677920659270239711997554862165648253632868348213090911990727851902559830694418680107248631502776537636377408492099639376930414963152025750577161804343685574710282717207718146671999652880034714196826051645599541524651866813777932799614128611229752723792207008939348207967345975428242064487230422864511594532824921842205632927667729552490040864208379746754743188950332106988339152557269798920369761017014086245786238422134478694679478813715960118190653223146575960914150747136130995502415717579776069465308732075160324784631077945347207358207853698838680926829894299452362425611940816808648812433329089109276171621865589900992569513543420144927217657295676489309357008012574061230324458963393774763089372435065043463698601701558985928698645074958751326427210989705616425582935313916724671911750872989170755237569011274912520593927417954172094024091517183570279653478959471994119069373791990179200626992345464245144296979841323400249601836864995738204169609890351213363872808893563882948205354744739509184701767039053554201033517231655836695772161951415669891880995459700119967327314483097060668379037246750610053265104243100843171923848576016746142044575896614863616521565536592563599157703372873981604310496216635847560002895541905791351240852047454814278627710412687677406011187481541265932329627357173443337395074674133974008471551123484281295171445586988997476565925360269255142967833506559410984652070452062309236239547277844188909457740093374128995524461376361708312130103842993937532765104558689611336665614277426310659784794206336335307637295140928443501297433177631005011265064034764664405499924633770968261734333070097076942753097977028123625413762012954270124079204754512241635175538392065437289438226649092178479691020768433815796104641031107439719810998207233366805689845844324339583993865939327648267894143946022139488386724038475868744215249508789169859147169767903261264441400514472719883628306027385748857427842993046421464803337409587049904605090077466968411181066646996670593795040985764452372554513149955397495026494012886847681533608410994304238884595397878508711990520785970214224859750856353650289250090908830087215918305858946600669085761135391722405405889679464859169914276772837811290799223503552246521294626892379189457977208332760633739551611540963471861763710320216553187149984727357426442403101848993719510397453298311349900198523288071307586804516224289398454168041494635300718499520024799636434083293615215171426544950052281605946974208725773633664074116251391744924756039112535256064401617569645122772390600287110218449034660091233440134940033801777000889538908546490230911219422031060008292299780121473173836655892536386990182652367799437309753102365339661209394442876656499716063460946530067825795880251545361727970364067627567307117274259746009017795896930431097837962978662579596907293151856209820269833266605189632453634533118549766211670129875213779376181476418449586571366408937494199778786794526290605136656813414345023322669255580773967530822396447034657159904511380214889582368311668806359762257689046971536780754834735970047423314112487040993851577473140556925118923228691969863103369250568098372410364506062063501568407172083482542303118741363772870375624590176078080805169043772802253736041172960838975800271616002974772700043361568975682880907159753166191041217259424759046898610416771128531256914756840810602368648510461855895740038866507392951779222107093369280253674993751368954477175521276045944216012493977663688616314038672847564619511594644167170593810116824271056368683910124304502601529274690086146400838314551134543831849130466274157356883594633349496074016359739886712566595382910015335117900689465676249303676857580127728191550404347947185260505154574827042161048051614952205569802715069370260134528131344566351981430016763360705273205540788599700308621337717066805078583615685417671656625414212443425541324072691477607618568004958064943462504458847655012814647894168977519184845649515533698092547757756063113908121549083324117460937167348429940646034783979597941705523258994599412143629798824722003307385507257501437663871970036700397101526798731831273355610433652534917908944994434032134737664336248615893108475416730319900805656285654071900212185228791658057619980119112387804322084077646652852464993325617231549651062689561911306175351284013456024272891616081975292838552754940995516794099095647998975663493250605141114799171314950523040506977494000712180070459248913807376610381776183583594480509488674203879757931241614850779976626268704510439039939951525772824728907352279235655373669725715455244613098657425331934269761732316572643641484953252478087821746031584641429443899414795338765515818493228892325966110931067456584510875131463029250853110603055615081448816560632207657889644411972571394916162913712620525158520400376938063213026119489341869699857903355459255715124103295509694150050570647474187319283281242479712431172509244002801324829151895986367187608296072498891277390808247934319426360902711381831083899814403017291423179764800842418919353512691392569744912766496268005266792442279903302312467088889342287193091179753427385828871094341811428104155305956100977516795533399783112261970055186618136762302162696244076824479834455408385138617581580571333456742069135194187912492312044742807818655918475101106533722316146630662527838617439068190236630555607021009359547802423101488987326609912080712378034901183516493817598161402983617511344161718188827018453128929860023780564989891503382271028541977217066030810395321318975122163874481746097373212035165194595828040055440404469692560096512604045207930184746666073551229875557205808793946751842059913672455639914342986540294717424482348774110524394344301617369361615033746697057058259986337249924498786420140073381315788578673364274730886416290424360719651467439294779336154222660987016663960285982358932327243149874354196204899653021044782623393844456601072876889532150421835249939975691920595575478968098534639084007744100604889884949928791666666621845622033836769713204306274583148481053402942530497909607795378761488633269084287782767216483921666573646153874867112308695572515161650641161704429548339603375288425269159745216867664205426908298124491759703702094017053984735331413595167747625022029526608582081378663620289254390669479442052443920078709229849148332132715094840920087733502380221162491045246728696420725751339924428653261718316139900544093427889717661552470350159741331506455223364498060426890313812560019499366012127749757294544571960384913515841259859532092886485837307176565912568151732803435820510957189039376105693383253177040872462560302208010745594110927098419684601921786561986895206195416231316496273184382349709918978225044805050802987148040101434241631845481568788957648348685245291390165151928669869349507218740982632537130181643263308408429975538357057535514965185424338500088012916251245137773909899207296434006787234504706734349383393358232022075496230324408887438276062907006251156146955297040489639737378203683615263385869385221050790214988531829031488780483487686248133964305816104669733123482869614582361258518164084000060341309598887993660005500370985864605202071024267006007932511427561518724832160709862964666270826096419310142045630560912278838635801431549644936956371853852859292622638858026023154459970299885986160167734770275618996715235180834613751419791389910632369595840081355667414951681411207363248547023349853046842949653827344632402949868670696073641033258817817588142151083941642776712105047010982331280167160874198526423643570856235110399858435828004525483145794406280995802470534908296984365437791059951198311161771807348228625616106984664941025657379413172996873604671351279424178256832417574033057523351446328320174132568047981476890253247876341052222788297975194911083813696409589326599746639511162388964837811610067490259736932051853510495985897736127932836673698863320865900758462435152369788995042420754871263341719532681953126646167850865720406485435182414688539745644497109066456410824957191909384438249195219956617305561370824548708194336631136516002637717542544164056268269384371453929992586511643591495985499077228307991267619477299944565550399212261702596010223580326760065637714439966593420336552824897380578251868582040522694845119906585624703648412913178933256045063065809796672617404196655947391116592182789710355597889402570838126556254816455368059075803169243140536792874584137745705196700008388924169223279826151369992838603081052311617060771519669765372316130563756556169288515031548630085514704566766703441787356075411106234760147208442122315779613891911959038097982636918334666169853857967061425511766987463875090899708552806732777862794919985809420614522995225686452730963230144892894160144662146237452020913058021405793655598527327700811869526672136906941174162136249433387383655442950112495309541894307069185877567285183295304607017020660558495360385128149683451084195933370263813692962901211497455766387940839284130269762708795199584465801115250982869346585706340501224070397093853158180787189704046806779880034796155981442700714653043952217472326410018051079490459537032132068423531123974681466585213243905448514644523196441639789453485377149877987063800133061678328583711756219193690601380001043620124374522185697842239727732541051160983325051330025705441216138044426352111159908001618927227124131951902399107252691307279241033213663488717949730723205914499434673551269224378933483520429871046388878441473038168810876799712664034168333061696029845686360938404699601911770901551211176175129923157963778336302327907731002068299182541371745898340508752369269515730601801118518932235823598664562029570715184195492375437125492188265647542110406908279677007523558357197803856154218567946361244120442438236956147594639156145153614569727929619286644044579571462137336551859745771180398043135080141981014110854461076219957234574596090283267977981460254970205152194257409626282839713318864315681621326248918203352771958113950594231074920765634034575831480950663288967601755751883072540113587017590253937785352047541666083876833202772584324364500053929494981203512563954520371974358944642267935126301338487536290145591932845714459510063209840163500900553578153791380812840970194553574425398605835453689757913714143615689582000256736745546029995622766290362456723959646911879224330211560187687530787892384094115241352927462705471317101323406320057248213389334514541938265474450208823238453052376061459887096963823622256271089548351540984226674564394095174699690895307937727278331934805685455736474125835787329643245011539233360520943295701212788595187860560659893950757270991494298411937457135400349513645905699233152252505463803624342637801549014393896174372928725596756046879408519988286482384528850079610278644919982610947469786035347674001581839655938023085665422280698332391647688363782222296689487642573021082267042332630809701372957831479877075763465790590455592194684435467194157280073833479375869740092152425396557966729790902551201126314319674811542666880918255062394314211659251248828466800649421423056493215134064039033002278360947767345923793316552304994184459310132482901873417102508088020309307214722402715917128630609203551008518635450864206344250498566188291182423990666242022219333058600079459241655053684368814270730496479699639392720673989091372658669305381197351375634311961945352700617954523845520368403251862309754170292988702289234915660138103009090958150822234493652956065227850762832447592256688443025723501698036679330082387493727806469746603787157147589673846614170562721400805118016481816260862546390060643536890520160619692298682526212283480107334112339381052097792958745611544069651331780545108942406851720236915180961737978427444139893436274911203562106448173451429039047523971197051874620285310299305416581146668162290981723264941410599861215981927473852745871371668382205768854385571801944932756343867597992362487485849962861846835740421525941510186623016340615473700510714594257477633000935382428111762614230042297777421198259652503300834228900582839830220645659394314851152629885132338270959976176188261439191024277529697340461030982031504622770454531222793680867317971538728447686450696384656821563155276964708352072907302039912680038612109075167454978112147838822132257343252444022570863515310137138396618317633644998004722982038521395835960654525804236331984441386399515226234555006302220392951936978502745772037002978681107641301240517673121068972609082956479864361884378890686203061483361536845337441010561892668564189737975544494691070030595792853799599680971344216491340965330655803800046584936553959911831535445461280909819977770179934493963812850926211841655254860853144825813661598085169181610880648911430711773537251843704274990328186570207133887033424450934064060020530080619010501747003140280390856483931950353813312771938848910711161512696269340833462840009656726524366234894184482957479252154495410232026097265774432371598640244654154878994198244711540533807823858881561036525178753042234842477584807068942622340200041582988393614975978272489909921125828076830622745738659425023910918128740223032008443415298353170745378761487630877120398060052202136233255540845415217124115448474976631719037577830232130103633000218776624191391402604083407767096326787479052182319528140864365258276785224252833769889297149233593575969718438854867907103638544962983164790931373937399636784172403463785932452381737834339698872927889904046407626582622564393385503966190168236616991540122707691076924041448361602630954353273301647491312286129682486349706326783433617836058482584938189279893946783223163030672599601378329768744821849756851125592601231810283330919922037830116995201759092247856629379409181455504378709858279102446905084063567267258169164323031551587145780413352552984398801403242317226698242605589970973638808180730064049761144971617283095351289747000642075320779440437975367853546887538864320841280666398682081784796667158427290920390536683455395358970115869674018452886379419912304993389859515393129144006228473567188429326802531240777336804838860764950157454847848706960792682458668908962563581133281477117571653635178837857581467982193594987309927572210171190360818922998460597947252375023893267125151436629372705492152124563717202998582496688546366036321310820946447246607498542072424505534278104644585666217688468820117835113629802824669476942267200374018299938591425798398156682956966505294405129395288781634685644008051099127185360271033550523956135161399719193553729879429074274574438549483836211872359476459544781126342927356470045949057717176023685918170490759045212180638937925822747358658695683832587773946371422622989546538195786374161106740520454107155219396952277552668618441380013358529926171818930108893324401462265313787105478444059562832054345129240877241555983432902250391167721721614116019252262308144781851806271899065382749935668355224078884026614394436751382329854986336616229674400259813060370060471364288026364658678553874774003973781827469467082808701320904739089682880902537728323445383850169643424483372976767399112881819023293832417596344823439614400562080375518017603491581695141058139683396097014864158571688932739314240095922839952672504207278560740481216324133874277377825852503262868734108020693662932784328078567191788991543813725452658099458072484248289375257851924718098772234018990085844973854194350506946920121563000432182514777571934662532549386299633272266641228359462683189867739154554263201108066513279243404691205667939816884872977017387832448425139884249713831127101758508245596485892579035645061751671998195482707657467949038932118299795256916485744382088816268099716220693073221397072796577896488163510459780714117711369832161975935688857675734198886316030523020642303292457325245524788546691454503569707764610739708577535077318180229300459687930169524659466499725967706936748776953588787623227734320639372141391715691113443504754615516957171973305479093490131326036832764947483533489478138831284536050887277395104359376825372939233027775937377923922773279212788912221366046248065646678725833378608479053751976193266685081232518220809507399949133202669199220178393034597521592944228313018012421159889789675162166604523426349132608295175715639896757221882679639609187925545010687515652384619249218642746979251515169126008583323757937392320784596456851582108876016234005312726798784004797233991552521113989760421826998986920949368899208621961668457424877007046215352786102445762272245673696003600125985240159873077646061362745848569751428959884809283129520778518172404074211590867307905343556085285452689057527839622933285750920450632854126586768808793867974563683099957408720938194866550164289193129873326462954365347910850547866645897787033086029969329149620430232057232626227867402032759244144463266449974141982452153217669908600969029702964354097348392829611856388172005729062373784065949201071612814953166714196901777590782928305224795073615258328445988290288795626332510472197520516333874522663735059464798169659938788033162924612292472159469364423558660263574797687178039721449998334699084291875548754039662022964700032774546241852874582940797415901032821960024689822228707987699956681812576797733869165580202116870537598284958577885195387254311753662008521243810968360744613277983261482012993461880026714378587313377126459713536632781356994044221761862917788941114053647147003708547200498679123581810665350758771878917169074077600815231089740108842698758466108996079237482533292296154090827897823236372314707402650533061849025200456352751412142258033044178636382333614798036545624142571182549101624383334799600543617078497723440766801868976799720719625952726535388630565103646566301018991367554839003123918690948228699766191008142558362489244601523065354175061035025236089948418260444893606453106205362466368771931486414692617895071309332914627474734047363897392071351100889887714519258502487403005274884297316409628702632155852763981799548626972755914975978328349251767128978849336371778679194540903041036718386155832694170186258383358156272113617246226715462489123598364502968214451698994213752826263711802624604920637248046192792774218091894438516427763813666156670117414854081843761201355407022113582770891214014725306374817135992451199189793081580982060542970035838908122841400193533254248238916605621008351490791185644918898741073515832028783831307131313122099763823095837974326362698417127279294878417650310864388680895003553062955700765491552595439214387945879743758819025179012273574569853583171468189631212920141010676493576526544800576290677819132645134773747338932594123362179385933892460038351012930090110632515154825519303684421424016386238387823260583151500814084001590177236853056628858385042964544179764492524358759278517484253519997646177806358102059367907514196108933317820820346959817291324594112398369315661451363999799601377815767220353760047646754720203702315163672667198647754575165365141534538116655763524567918175225259461867051330166777645435107734958723793284936063709299244922051764329381665019515808791454967934703265290238228703480157606630797223976583309874625329712747943658380023013274800355560989248859412639510787999494420752910905568410665605344347218790599415569590814883061344309558673188724021082851553182114956624072502324620755797095321405282406659237847372255829103551184981818715030147285093453181548198474702193883670698894918968540530819203867879749477183003733968783429753286165150265681615890919106750461851874676228485987252778709150612520909490553679856938407784781252485686827822299197317510300184055116283308674181055421938844749825187091453635527579185247433923025178757457724015147606637499305509581373240615509344196313125321341798104135078725584174324547505800746010804307712751473468636271134537357109734045535037880551419358173925665789202687014837951705648593760767564874465980960245310456769766480085047145740203252559529620122189030653114361647977394974017098644611143991983825780443698403203916156552011365654680571824676864525986017421073656212224452482225748296379533451635272988003947190782179967351385686853307306775106386712079278182048718257015164718798606795217091716353821276119608610196873346908676313952163674376325882761308000017755108771758001684468946102930637983801828245590687238253253695512693504590384091231879116958994235705737972314187432309901931794063239858642744745617790707460221004184341966062928723516470260005028326587144158020313778543257268081859580228139909279127037558044945241011233325009096107080143904354399304591073670889751716941959993505879762347667486824466970551405490482052697428815900635891484487225362804989171245056184030341259577575941851370725218882844583586835033782183445564895563498055133880309316986401951402727845493938438373924450884246485613029791368598264485599921964642067143589052227844277037990200948840090117151376719644701744424676369109325842885949682479084992868969492406449109317712445608584307756273017276349141765684384805519841317074832450638249675060986467143585769514834168831384936914027017652152001898175496953330339291547584648470695735873921347919637501164517037673293636460659773797171031901984645062920242852833888281697482923261358111410554349211524073122781639728251758245744943889478265953944324785404118270812287601060993101625235866474458831213882814168984745909421936687847154800021579264398292870080859756621727982128968934695500531886419150201926034147117839486108207973873259093879061102332080912089443300082870903521129027045463416013829560284952860869481394864071170656535875458767563955756148014514556007804103432520323175667778427147101322343783243176387800193349694390601256413717729196193339940500026024001552692892340781167219509912690028394486665099407206888291861348208461286403579318370063759515859893653367334989304395284830637164548411225406996818429773858836901537118626425846063308750684254413089714760619126842732977593717143724774414917859691228464500306891845662578068003100621602983344406471737754856661722026497766183675175535087275877099005334920939520887504743560148903549655350645969074663854701545342643479386961749175836048165880948587459981165408973391330261050586560754361502782673343623426516038692894099695354219853040380274450228175867988765650910480602424755337542018119810187055601431021005926612197043839680619447622494311105996999229761408773624442453239113593345047346529402295146859466708145873943807390274471461369642391907073363579926617894261431946564343590470101591898552335374028631261694163704950144629082695229918467274573625733075781301729484077823330408699872004469512770885019113083874478052142910893635591363312827819516417036469723433116266874319660966335980647858568960781729855708594134358001555203421475005289410147191684884352515936341033876267044134979106675902019450342543846235261238403533937997413351429620339894884193969763930400976420144723665397172860264234673811354701363815274980089160630025443336709815248969507212103591264896914370754118867088493612323166145249108012692995102678100917737411207450401115152029595154687483517834300142383470546364453189752942282003643165685079343255198658562613598223090085858109571043919071965805299936737404856783457407615261828112060994431599939796125340933023150070255882382192729296670209599441656175249498930688178039772515155349145729941904532135199366808516374721822120352437796417539007871893404458649743540838466225266369061555239009104068841161014408199131000058193775690717658159910876246334346488133853674997183226543802883420407727231985514372860412933503724767023790863561103362131328434827627822141058570649899437980166578800940514691297410470709280976898975254158911488441524716037134908522770776644181541438783232981781297804401283087021994913080809375215030182777550357935139970839613736657375537757106663513603119783775206647425196076923704410291504096306967027882190324262782447752440169465603395276562210866824437384225216409254342944167548164118419538510190703342942175254739384377562216271321304450703123534926167407864725713120966077707430864418075082613151623482333586421387848986991722362383336870147984560819980326938148769805240934440309371596988117100123493194887329131741198255720046632471198049228625609713584035623285009958606984058256788208408945351906922094303579694171738725293508785411351751573215068468744705265043512996360773896309836803597302734293508759557399385424871432355211134353348323816754509835685659757598747556206596653881447606755310657845819403563512258589376887880688883023689001121380367051287278311379866940197797039222495837466036698852114712157472433519471818118098181262018325340107299981070970005259243742863106278073062378449027768699498572075743354956574705123249052739640495730714437271052517385910823145309676628703092564734643074963534009649510584996660938974141441544807365196037437907448141614251108261050510615561638311694355518220118149344683061788631964448042802719080020333600058152361617829557035864204793386034935730850661431860418069144690268989857286476011077784563777698889337877236389493136598950273838587556989091062472637228111365790666812191973271172118992330135595074907209841893763916899784893645956964818870042400939767213682501189495408319786455247216140239688571217360597523872861342257706332649077113420417513191119445809757381118729427469383775859773910451595362635702970894411894841007710709465262068168293272893838611535018655925993981476780439422552858579267617662404266614693448457973714863532350497950110055258607711233616822356284782143910503471224161050257209963712152303643407339085008879988169012392440714426414545111510009436860623336743948618451756090201058281597486726453942907981296061475118164496090095098812629533437496665394776071241540252933826170465457677632548605739688877851407825514351349662935609906157279763032377877579875152984680905811307602227377880376965032944281047172635246595048684532673881964642340653935099731988014663305267559772915966346678920163167689923089129140515903495590407820652373319818427164476653077798317550457954364558896060413511131718156238711094463495959762691894819115927618766156777156564562598819174037009290316479010469038705732942446921854492534949225602624347276608278333175695242862912501539076338421146475053648394538832484919786262811344957299363880084763446459151344320446671450737152671718881393524445265383551765362054806111214572960793699960000512088224280490553709180314616461664862934571244947929014706032504331058837670748033535699071455310041982653300813517966253159552024686774092357257592562233677543180310839996429258162844694241886433289240108793157273721304335069894663256303334550989120252049012997725886817707694019692850627585732962660576487890045830992904285757034272508822126220233740321283575422058689887913719884684875107846173761563140290748092206706225876230421481833369690370922588087576307064083012178591557840238496652380246740564299566090382053342023351256940200771353335972990332323563734342253380576131503857605395071509236021701190348042960524934166702896752104913479118613314120827237631980021452438067760821134475037538775841191263827294013918580599060472081007904323530141518716628030771380694481560069242521607646862960375270308282568253643038907242159235789086784642123201022439897691441394318253269292299915585990304441957802707519245760766626188077906298877107127495634363223221459145908808253179652212593635827377254202909247419249825182500257803285219645844587119479887105022279956345692682144975591420355211673086019232223018450238738255689007207015595193168895590315402659178396957207410715508755285088559935672492574740474302978241894664025993507342995460272882377525277278455116579622289343846088295602040994578756508403946008609458336726985967602099111847968056560099164527258175658290528562824940368112655911317304901812962500817531951099937217474684628347865343318083918317392294988183531370546047592171527177325055599546573831046744497138081602390502308214537510006481408621314394110251108611359259752894492519829568421223118477703386427598086613032197614569414592461008047933732503423226574927514554813967247910332580447819806265311837583232824182095848890672996885558349651086132162748365651651118639091160371894577897331608361688655722073117865238792052736199129626233595656991739150160886981499121284160718412274832586093139010736722789534157437174209069237596766077308151122656531459488498886822065596200373120634954178998333152436088662141490221908530827163423219986642708659592119480491129060778703903086541698486546255642172957272369185529838384982028721998996296708251817006436239289598908970263261751605309672697129281345574550965036083059334240437705330676174605107286176380252868713705650374570183815054545239983863684774182424125449324128790633056786413542518226765978658202920070795914683729177211315156303405145968847336028761333198813874221841200507927337716357104725433997778744603788374720630873609686273931426356951702340354105019812171334848808064553717582964026518509560437315999529328725527015316838417063044926803031348014212415065042582481503733595540026853111380298802041039752664160121642368557009999828934340401391980796474421742004517540351068004077439759651642824796784657192108198071726297097315681837533715272734905993927898219153005957068901439387460075365360494633038444909580955870175391720221750571972420008398419610314397022134654233833088219467321301718026098683752092125804229254157881107855415610668657794606553594670441850847492190728042251273968260271289063479793839041683047241136923335033914019939490837803014694957251506565381751394828312450203710268404588271924632075788734336534611091675504191325286359898812684616839530351934100041599946116323309713076451567688291524644701570713478252835814146821184155793266938890120348247820649638783734048493157111732444394029015499254632510073498341550040036735517465091698099175551405910100298669035500237501793443662173578493147839662385603960419029381988547446323422477975186933683893287350888239692103460293863186147705918664667156320336636668518381934097905095525503241117239458476643565480141794065559963176709415777152629080468318560419952132275184412008731837256857032167323199273348684431426754521215433480422354082772918536413047077332507402764974967890305420043878962206555933301565879725581112958248824055720191594418858153083033857266502131640019394909584029317573964211547109849908611052974707350076933644017499558956752926954180507152772304853968801507878455082983280780248353255771467401117056992991091662898950907151933975036660219015737750834473735376845276394048166127927508084245607266958481632683244999546978570539916074377772510940644679206260647433615446911901726468723229383576639093471281794103384010724969234205280716378943779156905732702691026463671560768639859605835746632738055600119446375473928117736977020745557856707313999154917982839429068518737520230116276026864414845110115314595568830020612205482503532156105427429092926968958590888692540131764886538162277491419048333569772367714289698119970458165401298500806672768442687240007928163120636941462677124256435800684641298937840186957780184791300050771830882105417947694262617135591530359247716879963789217146464509973585925909741749118652561409458717815354048704197846316327011461521128451998602981096498735509080572177826247933286083904725187640983796527457071153098701688481429640898343430573687145931065585000570102466599012998172643755300595121035994347097734576427401355634737406437497116703738316428755925311579838290438893607600902943276185159766695492312118243914720619569522348808586989774307235010854352907091163562473625328589212765504090083853140276391245440462213288218552505980069767800680207944396074417796407716187206561196971412431635059189685700272228774706425478121138070438200393864303139532395222801978315688522936525005783707762420995858314201363084858789097879450830497411827118986652645728311845602576639643491499254799670975961334083457147253878891344381444988216332812071871229089412294558940829709490670724596704826979348782963255003363979274898131215683366307327686973963016781699369545192522310997880853361870950037495368576061329307315789769679898339880544612990654950673611722233417774571669282046454407409240649007719495401831950006488533762170528850599263974387715417422472888005676240430961483143315798444884564317851907281209973147629700039389427119440084149027761723134002517243373604353637715376943299973940053960366068588761431009305634194418593592485222725438109555967557276875830922892460541748002359560213884405208382559618302863857437214560188168779599498448010066560251283266370020401418585938589097330706630788269957033381577340061505953698232969815363761201107532494076111155971596171460088067214826880995486946341626670652183278098141738045609293920116174863569498506008830698569336110128202454233509812461318647550271961773617047933430441937055817638839767243545667332169732535981963901722236825521481894822719736155814257163111379125063749428178767355693624198925457130248189142431619576580996740961979801075439690919677069581491507859129070031035724232969266446371260570527742021183078995068186743739564155610918408691770015275355287202144732826730020748963224516177725695753776691269288874189715941725233364368563289352241396008022622844788927474305892175725857708144486328794319340220311378059584635120405506170600338456895596057005739326223551043100709963846635349054209902602059557945553872424235934665770080972897469727011783106040995432256431666283530198082106616882481066730199537384279741780528313116121513040802393022163040275007684455694264498873900001944549361859305008069084569529712710850867063082611144766719499159761308124442974420316051238818873116497885720077509833859321199951794777286715339866692896208786174358342357627613948320752614867610038080732219360061384033859007773480669223056719934289578678799737603711560540948624071924017791674941605923948131611288195736750094510361589872083854539396056982472104662667529660045338512144766514801792535980480100592922284605533404136319398192324729517385750224623332640478017780049664533194867569106041182184143662129660499104762828780001453003561686231022066527780528580172164475867970286348567278202510713887544239854739555126488827715871152972380931462527171379760711286048924996499576007716498362721390407121985158722562089451157460136709639449440787590827138798765175661287098940977094681653854263057605417936488026183350991629351155434544937856291720597947470690800814904407082736398309234705864774118909658832463198235681484116626439451429697533273411617991447691654185991049558043012176666121616378626589958601708584263907992466191224270762397307748685628491080028602001242546288366642060903654939247881365419302295184070007210049247681678877877669660549911604560484722465584338423971638967288828731639700527405617416107516192914922596583513061852780369725224810118220323194784058475063940546344544399578619090019926406693074006577059188811490941182825457892816931612636820321695031401178509356611792512979188098182880997407620648132566376832064530316420966455769563428855480430686923121192988033859886997504007697761121310035852682078796869728156715103757661126730725109305334943617207863158037829571262883546454831164206152193884775154094258896132991212766526280229006292121129588595047445035606921964813121230870890470752033665199186644301685438960037591007343716739740200844331283802333908116695373812087123803638621252443330691569418219706958752644345367165211936729477472209729783059510352256446991793444305806543676606010827661779334749451227529529523635231455683318617117102589424365171792550097040458346533370785143653343817707561519137999495128793977845921820979054706437628430631884576309054073558866790497385280753010615626489736004902818097030334157649498900569906084280839495094960444009037065766714238427869368633783241611379624622388234367276895113157308735415682633297412449223578663586034203180500630572356909021432474355585375458345808501126883915603018435065919428675904810417596251046325341832027040352293054823704220438041662581889587736957852525124962689060274708572074745424163275691312502814429490151306295024434557853239428398824546955336079025838885919714908114030306115075537793045942397308593380104922488282998909393884253441038613254732016524417691701123885088720388685256143440505009603713144569849789506619729280519822459671308847186802096689897174736933729157603785605676110360085576443869949307749651683008075377855971389185200269382858496715371445354949828691950534121097958458875515050441194033444920614230038364557690633966303424521931376111470613397772434479699814920464670530324321510414372508221822703307683619812903288484040520307965451297145421548334982071466668600440270099509739579374005874135330094051724435824947563293197176840931686137936342868364855332942567737107438353178151840068212671217541257958506526521718935883310111666016245573891000561077942295152573039616177895766740476672896138612639006129768433423670987495935538436733485874660926937790376596975647852064950599473288676996842289839191589842580874470136373455310970313656695094677427797714665623947189800834182718445505688224875831924973359827580578431094591156868560132735155369092858134454529134767608154172051772353857879200395125124969477328525623852352189917295296602518915559912570461607713688388838371148053576948734916443605770428136985887955229464030444924757591273215578202210706337497568262565291302962566639187154481379746514402339763591470426262750477962547149038718802015103365772470388788125700675871046306156989361361325966451106671927171441305814980762514436846365210556357095984496408211059207759285739932515914825276349861794001718167698679227583321964887904562302808480884595893703495376087677118055457192143641380094879903258672341457072753617340022835667864480661685611848925795650998590587843468599144292071709819512043188458691311993911339257747115859511419484729460768133794171457242704306108753817448668219525426235331523580545114147462644492457657167683894153706473738432189279726041442826436254445277113056244275131476262017724886845840697850914898297318785573450740065582305487343232037666370806300575917975354482222230670441132661803479910965935553568049931505366367421255189042220391540904939088855296683650538151158633850682103186679484610775459852501145854819414667034921163232842920895632496842976393919581504275534817916419118727068206405499554194059439742152895315099970570460272669976120193089763477791855284393018425268812922841126703325269331679779047671553777063520929783806466681626967287858770604403760200501560825396419353238745010932088708646778422845206240969110809069082400078553051699438369600504367290833641058992841094762505638544788276230164743000704258064544236445848760251667809339348066824401151918160335173645999413418363838751173401009810116816640326059519433746224507893388865955622334576433765027677352899089804415466306334177909250009908433742844715522659361351228235021027141068115052147120883213809961854028998670855711658712549549773275736543887534801161076074425338874009782871982198454153947390368141238244933230724310775319837595257267099461936120569316266402806090021248040083408696147278144230186450830300195044255411432380793596519010909859641124924901493255155002086641533665494640256367924489900033866357748128397433365472255142846120993619876626879666814871042648492477140697845901839575082204678013500302302312102655331242661613659187866623275995370006710234111029358982881202159713755616869601229576377717220606763661778501810838770374959079155011681829666056170207486664715867782958822112583297801455040681254376994560574128931140806869027965607764331005152505406899253674627792783950624105355890569918901044049657309233498318226614766976635513147698154852740642375080357533035469055499547207391784669000509901670362307770378701727733826030622440924879446232677066780902547891980653663614630197256981931347372031748356621003002682719607558040229361722135997658978603108878957802763900015136005765960375481222177920498033989178865873137718066648863257671977177304013971430546325938748369911368659642394448566977292317304107053179281268148931637543649024458318365899820606510145948907679789235631621428808267222631767429288011444997030353522475025416122932124363939169845707737816119441870575706043390943397664081826101677718775359997970265387637734379284608524358478319419954351515590724463897497169320843824311980642442708290719883135289974261469000856361702086626549424637572131091656097771357034735066285772475492438434177349966899872291778456631501847455166942253127234655901286833643376916879392707544261740385006213415864297305604625801086908672127804493254997882728279100360808829667434087805781080291236637676561987502512441007217369381829833877338453648068785576276876752620264212592013085242396630364038019675885018591500404592396424565969381628298772728780297428127377809225354428836029728237709872616331634524883462712010966839028839803238178580903708590232920147343996891142478986580151764327726671768766442067886054395663986032493677360276168137549548326647858738112636458321671584025255779569618248115498722056618497246286215264440791636309361564744936423928474748639489161741965326813324385608029673464454571066205732394746272569049822251603398526746066458834017965388240448178373621193779683593708542628950423272621624965427381575725432934570582796749192172594534652050773546674605049044740278158080656385781843006045052904426375043919544710749267380555410020939844317709771106977295574691346897524968540254076442618377897940628879819719677624076286784047167909241008993436588589842480446832117475987781630151978554424455012047143872822998247649616676463503324876756488163061428625629318741638861780011686152114403459697489339034499764412209921011511888922785206180983354879095018011664535158166235965878805731652004850536275501640862685230303209817054282671163247849735140446991633922101882471161310584332528482647438279650036126622321263037616509275439453012589799487629024114772140697430220445916488339395819930901468573091591648069122944978357912615492621903734422132762979552124370198309695929227472739990463028702691535469629347619272185059786042840895745446811341299766710197961588139715280875503268496182493170888116255125321488354195104182814581520257156988195469843391201711063623264732474402574482918415184575121462342347420723989041215971188260224871166147299091841728090651042348143947649681514537738542227068564922687768891853472662731739394510845331174131446288771515687433858640730438721537987413572206841461217430756918055910752324263889397780690503660384686920657027346762937881705287770915848378058179486961652976651960911173371633772221265239275134743910494664432875770817384017397238832096378194098730851554513166298927116427610221073578092928100124012223081465137689448152233052460443591339916009613307523710544732147416452101971899696908818970488577611567795091277827010357938396886087034507019954544002885381077609588665765341551256321531264652231567408071628870699831004194416346310693617774122837583428304307168952786609496880666867605034588765902970257010101322203405011477172021269447367151345656622693794167843851284337782625646599434374220831684263968156712388934559028914516810662250793497062951210660642633038549985493654182849540681793356837034434862455678539278631417338392637566208687603315802698900942486595997031413702001803310024186024806969873452895458329303476563938037553575462722634229996763652384259583178526536444193964140302964880137224845549213476949045030756986376046468930516809662299687800109555232435357061811276024068364179020027822878816996179147015599738051516177325131249363461087707842472484466386235122004600601823184731107842424301262222540283117978053064210635827578072869265636073583329856184964296471549591880126599369204406526248504486974889152041716318249465326081547603180621146609413026305319408826586780463292352119353029986298238590198395611297090316502717728618097338323798185028164518018227610852512501205440496605458489714988399054715112527061508382281522725197136131554758082065849425167899047711553639051974443520702871444578396932612518842234511331675079392708085827384004944322790305628870430332825897138367191577746478787487553305422352880606342883855948942091628468524523739089960559705782740790223308330744483508640679550371279232157105635414213117744567722038723458293868615401898695005071683977088336936655052602760748642995237347438005345882764666617162142240217492012176180978771761051574487908935580989009661068649122080328144220230536836004867270969615360662242582176762942854652015085875153603893569417107547451332115775859700550112279042778365204716607969381230958349457984068895181060203688499192586097075652118077371727117514436249796368199903978438454065167418854643011687052924255957270091061742533113863340194079434107485263974451556573337369987917273886662270509522127955440613217599583806166953668581535996618814292980323605692686442537474466418871126155304385145266164710397315471685305502794330998813129460051766684987979126784268633770795538807106611380052148921975455027910835301898462024158613685134808787264163237910546083347139154621984063892340311499429094465883500732912137075425003865594597724214164275728934455255090378849727415432917253778315686843470045282115879313327179301369170635193022960563023545071376042557989465309376367723207665145929835382234316578788264546326481380771998506590065926042833086753490418091981581828229361108522625570151633035451697964296891036426355514695120687080988380980190208618889291920178625725328120844122151658533381780646660103187744811313387008492594639233691226233267399803336373631046109134477473646351334055661491002864431311747453322913145828917853511633085976835035413296963392454130836192551313757013451500266458391786328931230219116661005196327794354473729166813886654405979370405482608055076861509120966548512933570898097697095215100768463560593249102292856334872989881848803885576487763738209888031015378158098584551196832015390429684689163905939922998806841142104554440967941693733928890417211776192704029177687159079258178928138751241385959889308352343078843832277404653688528094225733493097714564065643344865122183105740952883429919326694104753897987158757698235965124983193391525519859877154260975222901779354757616427622799397759118929091325029398176942390314865399858999655385341442464083926745031407906243350046032729161049538501571286984107011015840584036827845288886274045062834955612882933794878274065587925556403256667056682226761743729117599447207898814155628314379869360997115874939408486492838674196910091087751207070180582847268051482489222441855101373983588132307128375960432194790318931020346662413580766845191455215049582122690118797233274899181851868541438590331094711880868580059329584661106236998589940749464403836535440001418003575669371359662529417212050670246024148834545812425479659380303590414151015485110369017118187721576291336316306604107492424031123541382025862240242248409557154605760057067275131685505422788414327375315636948680471061614585895651477989190950120533697442900090101553803085820065034089848293908849252333617063067276549687749076644963079735431860599337900081424198037672803009997172398302064257779786633921596237251520789319757981089262458436197519502136845707855697820348867780012667575134357697876286015311801889711183789400122153697447193888110513599198665648387531255281270537754057766560613873792392391131502737464839984122507430992170745551418323687554174215397860264774413046954800577003454641236259259066274737748514845954192923143351079891063578889113703573594407340822012109454099676663469725726094440238832801325544541459659618195893731074245793685063358179493620941054464815078457032654018210814048763190360197089917484780465186424936299001718750122091398581059527146639714508932693600173230131414780854917974792905743620045182069552846154779748082861576922007706847846612528045810612357116818489669020529888884115748000584436525895191885337012569151108608737226227154632486471798238414202585033370148556598918423794841703012303864821025202822329261596734832611688873330028344384246508873784100826042285034342337795633900240123373280674961248653949989238189239403514035627280715450416469637113918773919400179643555608708130744262346821263379209968427725466860094703041694634833077534045846529806707834556275405755687019366221184163460693423830756280964781141324513581652779919635062844635211939913627910946778072196198659303552706110750024337026013383936693635435252594933867749151242630123087831159235690662089570524024822634393408896574343896608149067681695215273415567705354554081004291005921518356727751379046944644038335679646087637714674910938801036077110039077804863372426253750134506256182492260191022245105950513253340464564550001666260043944718899545545580105541471164797114654889802069223505731950178409147522213937015494104195951695107274349667714206541825932655951013266529676375327483896575028375059558011051633072453289423422657430363634895446798530259049243977230370609371159656093380875415597726772676038660363315068994621055025955222277209903458669533289480754226733194644266331147799449049960632212283703205586670483590968714987411685697280819894310610372683078212773181832872126233368460173035106106675939670308639854563375365283207223166689493611293098015596020778699202878250397758018474747831999019112100345010192206155841720821067627285014430714247547213325579800051486509163813600259886798038285735523037939792731473634258771642275866218870930107329270900893818897472078155230322898535103384405849941290197343638443651889732138018375965378618162784458315778333027147069990833819258443224590679921687882919782804164317622134342209041004584732186227539296029574785756969365985209081971011546284084106176349556118838511302812751993804176027126494858964735375120449451007507824416050001836584997528163229825206822811429305557393310435505425407571735734620275157759624590933919730079031603825258494488892188617271587088026464130808281411927862754487723634781505382395888953722263706827078263304965692045068755527400687939385164505333515477209112584396445752521222417217157846889304449653636155019656770107491889214705706661696115849368396552159439714155200573635249943589035446307259906861387508256108840504860503397361105522787679609045435933096946830591022987999501132579496134909086367876524958351958366358837939991936576303192780445709237040064876546702041948870470982258465806652948174295374446748573928759653612462033125350154121864606880428520779531963828111298891780295669033772841350623566963796477282766429301634184580478415584952418666526604125596759286742819526568804950336850498895380394872338586915708124204879439607743540677848076469957292318388609384655861029979513620982608935694957819056028419482825189177571268495911042269514605881368832598608246956812275122408446236182781763366803215226870736943119428223103942467310088188170664239557268449835104773957648640003294216300052705699620776567830361561109212230764050120762462406690727747344996215358719596657231156287601339673219937112985519988796630685375592562255784124011741324266962192977586763755116169105471662297532002843999144125763434386888820731271204108820626383747349972590536529492236557694512905231245405423568396122841384657389559430407876049205993193039758026887993730532345384049590207201796737945397858262565125019989598521992084555005990284257820399099334059669796347675867334529413555035227151292702539802459212902347156853810797926674912984291158956389472736241844397679625969931438972621778586903336008689709164728504305272870699087623916999200141193386159073487089350032701156335973157452820963596418569856119905134574011099886752752809695588052019713847592290145904045698830994899242795012667238311017176540554266108172371750066739482819131118510911919628735184806819033546822814574695248525065336522579450774232352012567013851806108782630313383071907015276821056660766788672024000100663499478078595181199297173330559742266991027167625563577916242982548892997966330576754576605861296603423026748231894737470872746795675833629036493056156581915471473254823235256824732148703676843936825588942888150631633215160014765515718613051588520591042188568349577941155309984278178533249159561886850184812218385776541239865200323217302327646941271605095060640075716455988321485897527153337517401817793728953154246944078020400313195159168844875996656087580545156414202517367129439676455098410498514436091579086126458729934449303405733790614662481452322165301427134461210357142217296330534672539732208782232553657741718293746034574917173835767837413788870497840589659067794144374873891050521758288611726019289802793737226666052739232164864596946637298663444716347244702868480795038226039356594704627452732037316732410043727759057092650899107752009353650858127313395961201796822653323345642830990464648847908874339444006122257097334263508313050457854848500570230216177643668104785464999299355746271353043318585241317562229860346250244348323374073169856113649052853238785985976117992754124953014574085603770981478488466900765055198243167033481879860685391145450534878978568753489668794159753797849106068621415701557876729563402387780302036364348898083432459264017446305726597264469238539797488638291087218188037156209625785645116751011571989912564726960206110208125692858768248403418649275612313870683074055638424451833288496112110409731093189689060273185385049456954167072718718843688943495629280832137873307735816714088819201736291093071737934296356411121780406043187360621842155218778572241434773828969018318548041836697043860776503469504691805486844331704060115722102309590436318997184499117465478838134781854716381399993542780176611322909898386476034843804010165303762772091483921661508422067086373858478082426179172557482335329440871859226212576428093056769379916773737186144981589237986279970046667356257874228017759155498686110292438731174864313274340787207028818289642511841130256773369237270450499151831363156842138347173048283659208436094942867253688199073693782813819600069186625734846849608870534902478024609011224144265871753148391847939599357467555568882821252687752603507253981250542992804699915686007140153175548227962950220242921326797114854727443827640716763730138353601623908034601045138459980494183347553269250761224300210467124679560435024027656520249021833981340996810805304046909663277091212168901344210523751356239205873116375785847332417451515801600326375147080530780942266053473909488394524121042878932798846496653115245099447114718209533272864949928615577349107319956823245622183411057521433283111755291915931956229498680829829205843136835951137647201208302832862404553851622393337787589259207412252507354294752108996507781400545522480257476814461223265130500957294289086084690182846958923740725788469801182249584601726168014033524933051187959058232129624321550222001082722492308786067192797450027092744967072677905198910006636360325782729224485745406654145517455536328408847068765007725797675277207920585239158369918185156190149410567175613474075956339018741871327085988701105853201124474630655989558710510672562669954976922062159343712976912139559590342835435114058661712673201286165455171775158106380019636942793547108450330659124231299920768562359994700076413837361550709253131149797381376338093731935181082630737395868782500936660610258584654195338887531454275602426326377902908431891949653129661481074890007970505702472892615079635790459376725105341021323390777173941610371235914944046123601855566104368169852426529337047611211643697193659176058684107987288735407351305412358440604269964442184850954949212863209323141800770636434234921745841191289027717643471230046769748959437958821685186838912352497230406797663145592917137040089622294105459782729627185129738809643442156955252319349098830746913303509928510808259289628901544580496657763186288792463017162726769508558006611526547509358991955951134570664633876775865979009278486899965891992708949579165891682878089684819461705164124736284265940725076027805880434430339024677962552943744402109601249617600160582493448523079502556708806878260511926777932885697555312222524584781094377543515630934278335792906365377006275324429267506829853517696061888092617699265198150091547379629718054127440148648149411657997540778596124017043237828043913400159328459954369501943083098191057088654541796058078674572316361383451636221815058464978683805811563963562929928759166683787125738057253003290386527320157373722962793129185078344675578977353954686376760371318541861583387187489190402601860199735715501717022971231538250181928553077232595425597238746665426129024551623629244345136018015187541885312338289003460656237763173068705658522816372271026469664910381007963260905331170618289575868593243358281758100317606879835976407828111254876411792253581741009644299962420776452526475900045173733973549575222730414490852515834070094315613671442469134641878246518636646542940696792990160141764912700341672799354439461029644103782491407978014165435834892871356716572133686171701368007890457483443631554630075978049429188103835356576574839962940283936776639240307809774129340696630991444844699759873138110199645250517024816673632915189637800305308283078524307062636811178416230599562474305107040092346078423064404694009326268142428359867717360306173765223257603274081795386769074836333469738872862227820576515656213635922065688878430812479680437152064457528472786701276728382304885788408880277638128999783583975036036510629770889901920924218026848781704701994528238771880305443744078354739205982362071678455496062123926361581496522554299267017294924268177515778286224918458858572617749427294773325618848520644951705258819293391946552805899156024168739890055570820729319813026017437274140413344428918296581148247176812996813759194372176674833925831834899750786325248908554689384160403254091099630505967583583628391514935525285316281405251875160754911321755687929889364599878122469780939504123116584203870771634144405091522537489117358471437751630556459855153341435810373883536038890388973476785269270382674688827401039021802757167346596530676862543482322252200326442651398073515059695596936513321894860066487081695783102924724662015529228186807884675158962275297295180231414097315817958103480340395483731129928932638911567031784907643973848549412370351700949812217840984917815698024220054431975392385727836289927812619033133524002836787893326611420451795311376850147118335295123371680514930680989866970439553568286754606626535423365268580361569456531317474832665173068011013423744215510988285949113711356888262152230269092003973898609701031115827877624277488686315123401246729878650808285354244669952206879847955789264178616093563386683683436489918468328112027760106856973591499449568007061357969333680979942729741409989193435840586475143727247897740195434202710169925323952674630133682638484412024471717241552700686057681684369480886766018685959944706773663532157194360833683937190527266009136170617989583116844251006751862976090514718282617489776764689322975197724140192315438979666736168899513245414133640846867656780484452030246537741728983802384770622615206671690683560379952273994958100542127549475313997941215855121590378607864857379913547692961151999716044476089500429115370017486631539290018064648990497703833376090967292127396015597575907747629909805619457496465629790052657873172568208437487532538841656062897666106985192211022625204408562433424880137614175901374044012375850308060395490904952719956310400264661851566994783444258836665551771423987843370782659277393460546344511384167597473441662514488369424618899195865236374875631665727375353193381965707794327835090982093133072284293654790319975270252043289925963441265032583267200218653680323062839541348092236739721067156151641950928884185052674308538301588203949960739171467022492640567416785617373067063155928786836245724867620196864583833917827616082319635010346855999231333970948195543224681538735228511576209021447504379264341168757705363493037284658101118133913812363139639523833552808249679827957913127123338491926743053297161469148507017413627360382848092335115247830894915893603731915057624479560436827391789974120638063016325752631847438427057626013236049052762409223825384055322966859220652283249648834412518388902428725296437201436361416536180013153709967608868990919383998398062338365217072639987503195136295536319530843373830668102041770470530370529310802736269698158975339294798650850251650570523262141587666896814759071290172491951326328404684426881572984537961832119709818285505112688419738983884651939268075200250926769189003840565202442590769204827698965699782741570013032261878700446853324817917191459668671016547826757249463925239281777323379596894057456385591441189807049978122017992197854409104152116326263545610783745991501913742690711215979397617279068229334228987685600325847062132719787701187366886960235297236697069758773398895932499381084587027856223405185547120584767731974413894216117796512691667485449535764232735663590582020638660040715860153989785412950745447781509019687104076042377575147933054682169793105137488292782406490790720387724134043901518916206979292229207100993232691939328179671313167884171556786059975868692518825670146276935104722334012960424039175968361986191194701706241549479927350045019690325642676080299573254130731747430713786053550180431963101436952526274524344722803577747581565783888722698262151585006433464496886481099456440815938695045123996619295818707717984343231654729464172819237177675088734888815549579610734681129081194849390897985457373207415096618678993400774883989462056967084002920885918844287218923672768347718109451810594627443521150390095786991332421134619294672006705992423469878350261350041994122746834492158569702975394962122985931443032789216030815418300846403542390076940217577021374040882368751216386243612697857364918367830881648599986283869472241766423702417970232739980493014363209132435924979446304610036775323602411567016548002854092113240719214952635233912250619207234120528151536610769179359559278562902980596225296289947976579159745786775133580827748293279346290332055908830704918187474845165080925849977378416412026289668973259227309597420061703590080680978856218428457834341591299785686860975113778797316294872719946396148880047319520920255898817375043008875703585544687068595277105658628014518326485835695349591376108674737682538986771129098333433712746900966862010874962787354406500623213662003386981876215731869710515961461928588499374614970685855292394238643734469322453373187842625107335705889536383844584780829475939855610858436658270781708027037507035548591800374430273340301320582656735777276894215647359479413741215640330440063458646996456717379912983980889611329748428423220280415533520772575274603725305539737323535585353848064300746687159260444244887652711506604185972091487466981009894042265073913539782468262521496524551390914062218238306404335476872432617323160967294911233057565414322205484217783717415054569675438345491640612803179876034184478874308599594536061758825974930115852538262961876564478581404591786062755211560023665719155733075164067683563936544955997429781431100462666369351663036185867264202961523449817377617934204937483063282466123142685331211974041789978436514975053590812023798533352395968343371381835521219531749808300797233057724163629540415869475300430093143152935940881205786833316704212493328169077196431693241089712190851100321704710422695731236225576880245321743450513881485605703255603824552141480583383690572690987854886649728489632804566631075666484897643242909767306440709609449984240527020262943163063127510965601545572248860758320964349954626512749429339452845054295938821956292036566416599283107704926170776033250583563549710279054947538452995981986909987904088471272159924628598374561615644290609277372338494997684240419978825772933858476134595681577451282874780316475389381856883693817756633894732423964308566761936724734569359203263006760524236896440968550273424169631643526792177937126726512346763907746820648107780113322121279063014976499517210561978514210555949621006551384683089043087591963501163335227764803417366785899419410097123404601840491760497262875655727592499990785869113004840291331475784942975992014563616706936884877518689492260348953772973534241250441688404849770817792849135038786736685698570347890459693409469990312377159750419368741693905736318399292026125491228294755027317019349903911619491400499592483965013981040311800966558410769294240836022204418958592597734779792482728922156242809397521850045371794106088663989011755648781563496637895202720220685423489112257106461894718209757329486423759282624221690935437799029107261472419070209731747600483427848119717385550600897012497755262528716803601897964652205775832735516575097898706034245505166174658166969400435612980219409346167986772518950101827592711700670920892951698124863753896093006998279721639020527541651758770789769624768936941904451583716680444997408335603213503896201159956122855786983994774122406337240709930072935735385291519357084281431755589681618920942880322864599816840738719716840844579503851707974581142457443502286679978524140012264409819510380884212293692356966721065303045327933566601726724876407885435276150329552263570782091444008679204540917894687352288176561344325242383085674722745923873568346718355204192825000214887810053411611744196397538097770173690877246260358449970640413053703233102685233143836842537543842552577946779514149801932145854358818336721413190752057733596963477920703050054643180327048216915448747558437189127182872086615970106675368324191645791692804174916109328319458980281632679002596539220835478259578138932287860375894321757617627794133554484460726896632775705688319452734434528134916495000985111064964537724556616308234569716369489048400153653790288470964888284938550001890096799870724478057654904422641088419479465444817556376270287211426576318327332705102186443699928721095187799277997823447449540648241039559235873964981252112027961377541218041812833600303425270030911792637379518351906053739315445529988319062632741970010186386348358046488616775957609963106694083096191168364786087506239005759941992697201506580096604084102205163877213313165898873635669762742697399340653497653646459234609649873487691988354914141459325724264301782074353483591848320610993211725500002966067084200186637969717362085637313171122009468881757887159386551132890735425405166713176689544325342971546091085595663339749758337744696070186157738531337608260780826309483282484404175395977150869190428168026203545080399668091448689520975406575175134329688871951972418921562357578426205696192612455960185528567354729988249313466665754075596875534185264199719010802292036244883638446257659170277624669009558278408706008638689177899071962526206168500225018274741984593748101048756356186201462242058568063762460976490766057889953545568327549343254682850704149563967247477769550122380408293677217533856071820613047300588936624456046585273352970353073738400661844410295810144756341874399769457233837510431068416253514139288399034266660576571383954054136119949695688321605383411619316490613014708105632012744819620815251854916289100438494177558992718149083286357413304913869906487108899897783571973030550295686153896804851363318161292748200361254987569180769285839173209399418932074243109186362487073745151322579846052125392919249341994306599171284261757863798869251181315263473796128950366589713172482426633369742465981569862194651730446083682064652373062259925454353750488477286004906276966213153521376930759432202898058857693192837721064971529639570228029159132994388243583918330039319276881827955005790828509386377695290130438187245226464126544584191815453441827238862248284867252858655789007242980634709968676497419169384424385070588857201784698954524740500607716648721134177263608852716622265232922417837494347985179351947086378340391724777808806913182831038506382687707475299813518797403159379696491890829869869578927712867602374941300151530298709978774695106120027680323055266459279221434692847599459806950257067628916213014973333994296629921013880688306770889534268450503432601528220990249573911957809395474731721362761112651136693346526945099149185081312422050706387895408492909532681522135403607074838106233822127089793473600316015919765410457686241728052178463746102845985305013218910969794073320887235086348983992559045575134129987804690678006686191825745138156771935622245978270929934692382038090726217724203015073524375334232962829233430236172535511368043290760334475712958106155845929099943721709573392360958135398574344480329105669112569212499380042904757251557503029735599462768569671941135301687176427963294581939803995645410076908629618220705525362898254014332534629710549743533534184657519529550520704718905266249220605791826611458098472389677992355667595020089337280999836000270614654185414655596566336528448478770822073870067886054052990450333594918489098211180241772393154419674455202341406875561000176704638383185903889323861308306549890626197829877872459553449557825103592382597562654392652189081803034868099361826148726357542890253584143910898618990893325533662869127411412578445327319154093091312322993886900804332465166257473283714537574726106682543935239515619113914540435659999836104568315839381052473110236162311009186932406614388872604177409645911612424685574010175294275521420895370380115459476233616657276565813259798766454135451211979928545974284396337699855254784816208885251783197137152864972354077415079265669024711580662266128918906726441105943756371325231797614765206765534208959037812330515008367404248868030860662727148051212328482473392242619875483106726382748701194065173166916383164878380213288994225845799821986744499831548409376847588057189555304755895233135508401828978571477551452447323466483048040758301874684292496407723858156642695574991952065005835544075383360514933670005005119993801938978192679140550360899205952817049339188969522981178806004699229863032392959973365328190114919081579617564204809689499892672109535373679294016594149545331475321198100890706541956711862288502981302737484310180383637093904115283985884273435387455575669173290138957512228374741303810911314922385421335997469805286719886203117496406413410591287084066649508621774380531228024720929737293332839806337589791835089049795680819820782566650988826842602682844513238343087779861265432773688104773997772400512089476656517695898381194323543827069449766661757298139707916191444926315298958480184035927851455397855358705317481666484823246902939426034750903891321465327700294947579871065741329219683878067141917960862563516165555730105375571797872768390983489506365565940725268695864307510846555001401134897665002892498001538925484752998364997114954844098001742146779413127985143935365746555447146345041187045992454659894433143550119536119777948350578938660534057649381305544195073377202936830655903397194947355250426173486111094470673804836660584906633706752694157482532276684822503914656362421674361390506793587424270312282483177323267312337829121921187703388788276667173083332288967684557771616730257695234888752652639984670255140634878366306551327368345195048145029291090816596245448314488472963377182599515999155847426270445377638887705158878683342949340747655904116534207572177495642795281229069435974436902568232358830693125455771372124428399263545984767498106917725044589948853915938545050767804077430042156678533957523437802474248506707584908253777162250002593726649208264572398392793390620778040474661381781793401373670817226963784157012351031518006228037436786860117575377340011002759554597902986717300138654537287269301265991940577881000528513866289767296860027200951660985797222400503793506503180317629466460983174878650951948752573681679638942345584685949111544123803907013329722079680270107944149610679885794078918951682884460166098664212756331202838210312097263713035295314923518409778667053955916986959755576356735319730580010967635860665855073460983335753316198396225873639403284789710000148064528915690997794025316291979431900281226958120215803779331176482897972027177486766066723475818279908620796204544617432489215555379601999970219569148225754646403790970470042723244016730306129172812055779624387649503779821933299831985021367468035153200816278470362421641083389757833236197617716937233838745336349970769399949524969955509450071733170877456956652803574124655718703425860152618637376820272663498683517724000246988245647002861017562474625444642433561607448009279026354202418932821470019627932529284472159986157096623998548167843866869933014477934303938142792480016404225795018829177884995443247088724581215689696048581384415418068371203408437853469466315062633355877802289469220315245984497566774217389915585523460038951113808414797594367352489867475776539058024829571841245173089744749998959909925321997492636746601462056818404923774981403605814085652592627142490012022236841985991688931544541043516712997745307806131687414259861079438533773350095420108783914705381819765559829073578822340971927653516185965352762465239684040318852476831782267790197434124234063820058592156604998481369122278943317095804342014236369254191766582435654565412881781608793719033557719064164995266535786921950019521836115844085423919871399778644731440818858228847298203498796125486603576700737699396938162932834972628425201112610433999765117357677800920410980643271907939158424103338619598878319027436697125401352748461123529934825359160136525649687291098090436688674046444994421957099346709643563488426646316563630630586876916822727757028649259793357639591367956902146131838989516330230925006251245717761195327863206471996807079756454820632267573424180448964654936418781108469985615238968847707216210375866557187748024299664053270730024849938944836116355936891654383140310553841347544957465982610400087698015790707117482255326425280885459274167977170085846438200976925467910727838479636743210445730973834508088095238184643701823075552689143105086799093995186294047239767761137603146098232249487757105333796670671519829205596802493463423825140870453234305402231680836270578714495140586022478879673765068442918452258965651481053816040801300459135219618244266057251907400611095311087301905413487887332366468319195681123404725504481358679040133645874183635635983331202881978536047320724619446296601832451938715493511791217947987582555250093046093305429844861094679883077833273670811969376729063346739082082812413314896367485925869291067038760842239490784807397317494136993569758335096225378589222583524191372479377718487477391788701321824523639934816554737999468426437929350350178902056870267242403672891700998222516661147405381868225014062306260772597459108516910528519631481355603638374832590950373622822225502294249337542799186547837212750694838686134162447909187207514088067244428334639470040621205704938587408289182453742444616937479866477667555443974654793686622684837990975571819656157902611466141997605197825056780673918140924432472764339439587556948449587274995688005762432407591806908637833514660516230861659906712444755385923261243371606268593592957571588354682324725528852687651760090369874845534164949670955500363734272172947598404375734779256148398323457621612548111485735456714089608550512797478981652000405024499024797090540489398814963688531377513762216090071879826874589829200289235527769664206474179907429634358966416997993282748684955327268483593523330878909462340722137637836518133823397296542444584422809495807718710313072815461100608777794496226652376771881798470312799337686516926576305518795967420772148489796925579877054834124798359712729464696039810063706367421692328916624077482927142231973047932806043619904701831259631386705038238923109889930258089088120406742536889953783690755268031102371262058766267098031024316510400770191666018434551233700573244327597752162737805185004142712390592183317298291131357763365749141838790404549350317706301173880781742455470442819875733797215351337038747562375914801545746383356458143677437612013052807178164576245747111941720917024138989585107737951565811823476217774092223105117707073689426185677266290131203358658247327141560869726135699895129904444363789845149733216699141734179127497628346738104047523237478217058239181974902927357908932033988966019575778199379809541953932879663925819092264876287587565947704380982709512762762484015284482489213319989945428267224207091094581905352951266516468984866839700152660064643539778615239105093948061129776000589399636010403194633081687736642754030007252259198698467926836191459000644963758155149576553436512516394340423321644315240200969906961085730088048005668128798578798355655075669943675026039560271788575708061586550707491336842364123581799383766098735735939684346162714034045059231455311677984907794186311155651751677527907771495106151344865293918003711531753341849652838155702185456221518608134505871377409514528535602769909865779075465836148545753158777599262386402930262528484093431822185641005598826014017814753883502785797809587673988922086385594244853254026829391557798035384432802344160163827681141109721617744674005757567669875431282701924960520345164361624799501830738935779006827435456102545178154401788655158440655045444284825946980881920535494484253343884946474005734559806095275037973841583417358212636932614592072592974331798146795965846981058406180396751954085656888194726476971599206443445996126573231932634520436316922929216821880080392054700837269761826561493673255092319433392805368291022323411272359052606615223473888475048958464755187967279194468929500971957045582492122120824096624858184421479739800913617207188501399323531550531589178822813827436747788369522392460128803050866220001509660225404495000850738378894227663523777523636928230462694164297864490924646238760548227447182306192308799093997721448590738679301878061793795753357888045494711224460601343525747850432728677521937164727188039571389225915466697932430275827800412155775812503725128552750504391862208750166881568002292779138892766945722566278894097451663640400759712453402277491895896912322702605905698257441416262565479504268984813789372867999366388772242861166576609174898359040513707094048275755562855209733830989129549159062510201216253782374656448857855502596796566950252887817043955574807017150035385773984983740945442498262695373063298412526384684696309909963366622575907759561699145148303086911919622995963862326399288448785723252780666839068999691438972612428573047188347856671714365987965269648776570477356551809135711057532926703705491579891662716515085634730404990247915166088948865845631870288541064182347312989486915339783367877530401775130885318564226416083796929828037428199196328704580847068001132087778242751292114312504877808268514611302720260115862149972165078381052626353185402181164262879767851222266205510652605950169002180074908778186201886821373304770611489196123583551110192507591545324128154006895090867432085554037973812823230232627369804541540323213459059422211153558629311215318168117883537037195860077164538219943258903279474169842128528960535056537761290038725751874827114330192538295668595341290577530175835668653304829518371849385239931482783342132227145635864910047140987894674420198519984625032042445938130676472086759644672456348794420197057568401073974473204952171458312713131108538585771450425321183659700443853997592048044789331634482120535154260689293146490173289389444669412586560018216115667397637431953477915706062271233477005919006224725677887004313055691963077429516296323460007289205433629854704287307234064384769243952234619417633455122458692390714482822852924056274479242225482398973769404328925449591326607232980759816508501950290304877181848218559852826552418511392440247109951224348126892651406633537797923292530824147468244296393632682993004331787554178688088318894120259332104508021278197055162958444252217429570540499939288284523726516254106494267906541455875683868683978479719314063607213113117737725683464229148857823300649968205895266269950875126036868266413345735273666224650658457755482630804450104829658837351995616196645373646304456559088493183931950878937727518423451868959303483701715908562098805992562596035090438179838879372271066737653093007045252734940532320406706941450921845919962029069642663388209097298654268432792487870379504360703455763981165877227032253540139026634731706838727448331282921556661871269326336826564968083563345110995401728905839889353718654644756960674854545361402246475191265698987944793252988301428371508722307416459548679344988001540516681637230377669441748626212371602232129663751313923991022628151973550889720280118995548503162795604080919803527782227644971529685946230742690020897187359596490456912931300026005921876476260195641625651977988346710705601561331437089636450079454608193511632787104129952404036339106357206342535610083231648979028241171390315006394981866450229623960597420138867911542839528971233856848322264261397543385206944929253696123288692434750747225217561202964236687729546001508506504051145128867491186039999455119225873022324954222036734455667857914830377837491300807272791764628210253747970248387098865920104573772587956398715273447504124938425826941135715752515266936829572794843759262145606269431494833538953519251768966300489950246170982133434825497300969353220134599655359814145340864520311958198672397556067334485406069948205556287686734626111813779622133832683797558149075460114812201726169353500955896598387728756562837706029632028983232606341188987453518998176984596578523955552912615544269040992965374547900046746539240239100728544282497483967259061979138573706678353930721705014282474097806687664753837140125020486869845947599006661961038784809748676535742689583975906770173957512011803601306708497758876508502537440131771757839788684743464761115785429040831760519791433765004162509626549617098938595238498622451045643325502977763345916875838359850553577987812471595568889139466263382077499290025573302177215359170483223241601827934801958683549889432135260236126764548089258115416129449745232041873467581941973186239700511224191909693349196126814835029342370613734145891260061523491531487338366759683621189710483261621872226872516047386129954325397747496922409122317376600856503739213386334138030965648949670412311154035459456718649227569534947160612166461416219983885388652729362289470620557437161925252539160942873900011955744504140236788048100741816810525046677343963274468169565545438987221623687345173417603202662265998844364669922241161183266639325392908026746898954190485829265407840898621109138481277954401606787029727009066402931511242196095008898162301263792869960897323557363813420380245779569940080240731165917226335791589415893602530488217077000175055602458279017204405149662097265089714375473214940176687698830237201772665948776536317027794198650093111839822536627234975120702595907799847253268976247183299813601643795604182219721031404308443588501515180426167125657277511886878866668882584111438725729585565260957609443756911463261116398932374786311294782273867146264132621655620123399440706204113898830953235136185252955389149822079875762687064200357272388147231508539833309575710880682274698095158735039785904817066542012314172920098859267857403768766360097432289486708603155506035122344916699522333452594687518785947212301961314277075103027065654163411593789506069323399263916966223024522428933744100661870945985208007007179990893695439679555241415184314112105815990668556057747868730900680185500798080733516458541934293851940285773707822188145466139848654374920013019636385991701483790220922101453185407988689982945723657042201538706608154252914552695493985343141491003604667811700680893889119598653513993389360076639812953553687656918214626389058891414452909657337352783774355039414541436439303142438560430463892112606543539679056464360934477549588195171300334962456626592597875990906625521797123048320539121755718072072041345915721597272855270401314341882112461645497363908685275627413033460909344904402666339344949230751829422725049848717366254413882680848554436000096340181697171916720844171552795135986156020435543573038997179235045413128542992951999086315623273358006964036455270848082026512895268608742806504210031927703845542508541893511595010200791867828526525297647164236900914230816043692219925032322751186972278070602749158824383040123236921070089643301380332609125113416337243291672952278884874693857820112281561902351280663988298126676442791053616192370541901069383078820158767180405176469282628068535724721473634067827387834224000015064043118882636924279654004985582607451384891978084705253255654804034445924163985439837756637489873643962078736145746777689056327108204333757907945214895641218364349306859331263888837127187803774643295778360500036401019664519400542512598302976083494569812965891029601186328432378107403493324156331411510214151476991289356972264822741949334759074038876503514082579464810164406073234740598272807102708326133028498073332695893553167856413480758434425979954072395787197917348911236986873894552703629560317912145583208358834687146681481456925227457978881456116317457824197172836540767213139647387946770327231452002377368584276003852938960379684116947015204865902845766491393175983463190672527356893441242459808385647017345255843980028258575454311183620158796330578746708145968437383902487527659070638538965471482052817607801146820889702788820453455592561757001906233950833722869333375709452133019854899330495320948140171858043840006479261269096298838713689072509072775677604225388372765080580639366854526301207837610579133879883336432061671111301988045375003185134804948568455183664445971711827107032136586904096997997895231515720877491616094335033703350526053223727629795297940789639590100090944555174445454501754563832514673881256109826901875926822326425127686489465868663959423396121241483460804585122708398039945946585465601614315075190701649568802601702151690525427259112294122417417178864413037187864684735915300463086742739405005376582684622499497201308544259135412843347841187165035697671657326263726185120680018439839782984674704851542009896131285467819878611170065758119424591185704558108587368550951181678309976341985744580677022385393507903451158812414639786128581930105320230847669628128958417225947838129547529214577354464314008463005725126419060539383161268609253217565793999431811697464547600898526082898941424088045714435389807471698279454449972484125858764393240182419793744022326579786075731617191435461019192089369282970586681634085124389796321353302671143845279460020938880438140234040601203343891399713389096895150014967914726768975876971189071681625041254282284791421046990782359659824093360052702912745976025324960015359987573017251821159120742101091967206655216915845933757320879387040184596902406473398759044400932189089524702084233638250305585811902477972071336243422991263814917668636872297744261592974535463149412193691499881835424171519248577737409454093711232627331639193227949086567956541668345373118983369047041351430484084898294315447381155341338368645046312981175170668834244196005076141557892797070146414881980812858042108899250946030363211712480884519631578910504260959001764835616511002911306680943688767447470109508165682366042505607209484533535944886606395850640559963071305532468307763906133840836450829521185420443193631965185911867981196454279029281649370568168348525278143440083608879300842202291597976035152701971262018928092288070367953712397891847675748610776669667801659795873565612236257672603741980526621264774020764884860150766970689973124694540890405330795699810413162264112731553525938369919420865489543900701670428550400767010201477326791646800921634973810461063286562804052742180898692747614849788725320628691924230639028268231836785439301618404211036429572529942677046738353597157723059127263680263950516659822419252443392017133920962521337699481446916176807066747118517916290582305925908448288985041352730520326660806441549410146620687634094857035448732979111814833476562985196820615775065266189219563406324522800508304221108420170084722116946877419205546326490087497913530822894882870918364249525791818851826197185158107878736443000452246379700549924993525014090812969024689200262179236936827750987502062393240216183165603499316179143684928921821616525611253585310957698377264880419144100253827675465406637955878037887958308720303749882963482531830573396158544520638005932249148542625733643633760291636547032689419319317606592556535421940619743428353249494912600309486522679944881363974157543331709974961829422376421858005057395746890637132473856228255092311382619584977378545857244032543395543663936054629010076519267680694422568538949107777289999740752419871964729214003231381934012092961192919359599842146969246948374906067829755125732787866162261154490073946317560468191170143310046774002071827765637884615694300711159183067885559534987192842224197697655443280360481901353393671117537979805985885612501764688990838321218434073435172588567636565898448754773809386532645676080185061399349589922781754976534814133774310259183471407839405244622065558617475551151717426068071560527170319612519057741960410133423372016924243526086824718507067517175123270207848461720697960604526796134189977534171342544742744517600434812669306873842270533333836444557836781216401512946823759906553230111291452721012638812260294798237999085297431324152361753981324399470234689737384042611755239330631889398900972162726676044324642294364923545173018893137041231374357924313473985722334356909607213904000489444159889449754894199677862570206449615099272655097055714946370222531459440948862779349454138078509950640112068200127991506295642505776641752646660651627430895326131812914206661864725623176425066533506896158641588596363928506382289854225959907277817341943401673424062198926946006634839995036240740603494569966571799806230316420436651191125146149910181435761343167519665418945808210607463078493761480180439047041755793439522226868427319083401873392597699040016322622872263325715859116754792804783235649817453558851890825044102093286013676408928025073048476585196196438589071839451686531891824570119485161302553728797623977752698622276788249003250641928663303885197796593588337205127287648658756253096394092777651636801437620848455683693088638101188590315187517028974845535963398776047261661756535424026078789699342433087343241366097102965145827814171608907640034830306246073617413140449990872446402375369763087747754949956246155765864764216678594222676800617676165001035166984595900175579701839409651642369309183273692259125607077136546406588577638533231259061251857543666519228789197380491729507122107247638738982552188629869398630909590573521338540906294845304013010043823087702831275844934524148040177142413978885318139772150095920618979871426747726109044473206890665964303524137922769975990526761461990006507476372272741088138091329966782034579203476494900121451773543482729040627198017327182071508478387106290108544183604060861685425525218761490748345385324002341836220515032601048802215900572223434371152081736051571696177910681501503252470728514496464112443793011831801514233958280444516331857960430062554895980008754203687927910646581881265763059206268480972273781161783703875859457028077568709405198663165479606326995617648344310202331986856973685634545893693216371995045021788931915770368734168346944909120448034609377143236927973024660163603305993755716668721598357274804661611002976606516891393064955423805239067224674587085694236903277606753816905355935111274667982044008078969801811151458833754414881768561170930113459284998854552797361354467107863682374802583242595122021878127030979188007628172468753352197565339385434528962460732209253527436527223031181547044195188311011476851044980212296412791985405428185636740319794908589924591673782595761248978617915786164926159699930623415869833782509990259451588759287302359870489143784935337722275274494519873101667502430873714182993864931231518156227038970709439698351973785642480242559003416719535631249033704898926413481711518512143832575292805310988676292095828724968447471040501685343331553856782450779767164230981639618369590407065031332736279055165670977366290711067073821923974198157443017514619322855236167163091692350321541238352403701793182614294200344343132212870422869537514502612580860968960557309358398407099346853458288323375235876738201614389841534949535034320353433418994566320233700849556249645553769385244483339830168054425941558822744781894920442085259540949715989900425322738140761854520347911772974191698739935317806426070812963418699639475356416085347037746710208555652620155656557668597291766386362286253043052665444916393676012103104264923878400844593075554155945228721439049713795960008101995743953381917399300415303700185248708570202105739774109743527289280202180548808615835565832711797898511553281174309902389678639036382785361543039601428021270768487285485629333788923985680582511653980384538336377838805710602317074987981897364448405035929219939704480459182623900915793250818675925243270813062643753165376792305203695296872150534744021441531711862082130411027570409550414075597511534691384212282335529220909046660546262075521620487229053579106514982478230855021643199147236434192402678300711917569698645544862204676491924980597907193330009255244693163611124721878505969860092214561777564676365204283191991010880921799143097506115477180742079708315365505078622195051495437908195517911160506429483680100546257759654807094597010320765270048063261686242708416377262037544343012263581302841739477059068312597005175741398927899526334610631545385029672127201202375325841934229496556612376436030524973734767951084217632061423350438397728795287405423497127659607911764674459313624898013159400640503192173921939139404540690364638673148526423404228851565522863841479954343746654123080956748250537420229454828165645702010198407310377409300684951780697438816542439038999717132346539278699564328855462281495166270692080621697826022154240806225301398227270537153834479187170860651311118284838980500357027809683114457975043264116412963045551302430228223604555586014121689682251868383539873106052819099548296032614655707809730947183748357233720364621788921182310933169672297818329714866707324140941574646284731903344638995441614479437205550157466415703052994370940195717892134194791927592844917154279260212590094287692927459015882999464049595311734020505939429340908136317150060951401594629892208501552440289732182622592792009569237367998505102129692198978757706206917322467659742504639002979757888321427718269711727439413371144044548732698507652707054956324697787793339269973743994851437534105206721381672307956461511769316718577529833175526566209112193365672546770450626681320610564893975124525063919098254139195191641684278609227497180818842746980376912188756333024373825253488641989514455073054019038501926392424046675795726147593539238712753339805284971797271520870395513608524479251042374637699431909535603504349070582850536552892742554890155579416825754940539518532892593105094299194561676692132557326613473372950530509169599667075725376197732146367777848424582743497140533921367033973904631162953567184776097596757379422269578839649263495293388089428642471682742005366449737178322416246544372652872466069232623124351245015246621017604493447387724473926823707141621916902445152135309752168821306962698201539990382374934843181011221426263950718215359295685472897059321066448540009524829093070018141121496258016971659525899993435422522739138832246230840523783913957764991811711395234386453482615793882882427421227332202269022628473850129341168318528868494233465834829031243737236395879540583363312855696391159465439541263316602943984947823366209885017506267086289026223714874908258094261783180031891455397942462208794798155025172974801503246104960181380892701718480675093649150717387007949817242964598849266665835975377705832585597357526661075338366146529603499327012378371521417927065771786861618926530669921089259100022776653570114803555237263098554120935356435804680299424960863694979371237987019298718276355566840263437980081858957350851140935271228873479101203421297732949893444042644404765613913630226420582795507987441245035506966808947683519240149683097825517588888726102784965880759560133831959381084119669828067669631799905567091174880820385622063002168702161209095730669203504965184653096109243976486263499091407031907675437362227684020954831689575110300923265057790717348466480240477753448932359090115448803381068849493955923689053135063015463093148092647331789323524287947476102821806366865427234767498193014901293207428597473004171748399316470291779191476624702477553924342255945747523372567209081968381082700568827893465063746706211282972003064633138790095026411019374632862270060445442474374240055503092458347071410188104374413373200793649333254415941109846238173379514572480022389572545892255971968795618917767545021193503197586191255156906543917583652330329664873226845562265716670199730916863485514158021351930595747612198315567678827275938291879089172918235310918888173326928825238042087437038187001481035770772141217880701561915374223075915420171667186486426722733378973448459290329065629017028551824180249039200608109211423609345145562952811514003097522338758178715931425969635822703209167064868475895880378477448241490458542013201556715880120124537583089176049698676286846788708547088396389642127631389335655972016031572589501693828435519494966846434576283376363949668853259325565703235972707364191502395623811946974889123028246656670395371074168352220753061983481358853264759920075371807400465851711430374257493324391901310201971195545840030020433458143641733760129430246850934939482739046528559590613053157966178252390142397318081954907630585215400010546297814469817209253362654925988822268819227706182313931403197064305586132504280495155893383640455743497614918957259833840455654085948124069139114423637177270502885123316896381669138919829534520340070056437597967887042688072226573164049645800163932781817735233708015082770461094988742610451757838603640413883968917771237389240358003820826919259305166333220409526432310436551664713935272636251815007655679480123924451535472018839952099790291094959446495558489103948145786162098085037611548014779531804830259348337960071317094017804504724137769590705884174991300072118463760251431841098892699235056301160611697377239527854797160079078234696335652464266702675673766888071012523915273792154726509999019619149858780839245160433198224857290275126527307931303489119379079941951457002986056395904641812937837544390999287572200177934697591650141394692057248458875140949911316672471925669296703525836741565571756725349897529453079915489403442022819781728062490759846467010040271356919687890418761965179944265252988111678322605209591600843501514715975479331764195153435241058778606080642004781356081062792844774552682100897676174374348287416259399230160227812769100585062250219961125799453004022339858226240622811991130860482308691617099645977828331530460103255886789213308515501839954250465841645864577829191551322106966932735302185451711722997253927598534931015768099482841132140577853501854838008170112376715214769338284696356640666864524035363021320677418848484759216283857712595775893330415749326133915928542126086303419783137003960991571242939114861916231545878741933045777841575885654495000808654903651627035558477879014241338184163445597349164295232193022285114403015041195764988720210784329686565917374409698180167643267508859790612745492627452762298853229906564086148201729729842661232972837807456225967862957766265706227303471523376846025619915813210034644360294545464816953191124435012850797333709653299348637865771348216516731208733627356615326706401613366299070341286104786838003550881322907562278801799765323015924866753690500285460417418317374273738414249035532023909347944214034699442251376946205308108773000537876583802620521354292171406678249571407563816845581973976802901198386882078274378809300827307517291494290997186870161692355581423013379750277299372653374964120748105479309603267794972866495738946087792016514071655499377341975640345624438820444694160019141168116590944303338445455822051362364767366898188072787075344284729617018515608190753771304856351322884900829135362780745099343029874982377148165894554045327884924986521668568876272870301414647688179615340058537761659606485507920526764789365599056500817154333606751908472083167286856048703829717630232071125568823962849073622125871037496379967803184463320229006589594151131270627293929286291234991869719803508603990770929836751772819000040446019909327144917261214971352858509747792246816930056696404466032441295972725591312158949360109592843066952858070915159876599973392422604852323795266532829376830562987123489996065251059667405392852678656337178488022954752832792193000198610793650187538674370586018444761036167070309143232077067954907842313875261844255094895988191391736888895657476058281359598323368951585046365123044542444338757853767288714587209141637591935738328962317210817874455744504439242426521097983874503111047491496863195098996090283251522411949142766456487664766737842196015950820093655821465890133317997219807476771827328512766541978542311322466849523861987107809372971366809779477104307251561243084327146859704403075029963297106866029646431019432925317614503404545124596140925451529295241168962420962360285929389158174779100750015456906305082446167994244864576785041799067637203240362856938388431742004558367489356285379385220922855661373782339102969298519914824817131750908639732525449805509614161382290952473436425576687767801509028336331991691026805486373261464933567641551031242060317720944163325903737917227746273342888261430098897448229839479339598425194502849101659644506326178982206703968594351657802835659812149194302032659303524041365252375924068304016989225191321879705591389166133866327714786770037683306783126150405921857823614706700543062843638599804967771704712012412689120640892515949770116374509524363289015508316722547881315590034082830336476491790289473120713297162017475132105166011433336390067487024784352290831251060240041430501867060997577552675433127821720925070226326623387723430507611657066773346657013231713666494176860795844855883818961924626322222550727029329159272810578246786437262840850385114737376510728645611929029574095120542539601415341540332040696567714431332422539502165807682586288669357528743793259376538712209289283357525560486921000308588660591226725620678386077122353202561170545021432517085135827054835534452815153706242256840069085484140771364615316422988346421057414351541355199874461051525324165471556794760923844960765967271697091966809489289655334874069066567778099101438635531003371334769391867114747234436686013229650641539384037695384892882837107012187603308591917490445300451600765193247059061204853148116315991424811150472901108689827164638463599093519312649885000200982802919209261076517317465750427657764390876785450951693822362289052396395223196038793598310329911053525328687532174400470472083238107521464653754969738545758585886035206090611806242399040298841148823860603235094874341028275322777497646540237256498639850151935438780241777336331613070758803233219775589565548260628290397712087086400322762657625709534827730715017550559591759949499123202117230911824963294966162090434924724551819781886575682479178413189637496252942552895349210898551378653365219315272602442571687834913554506741575227481138383784518326056424256333592469718515148552694831887090480109194472330853656214330732340969842869290537240810322081350511847974223981468926123534619080728077945944051541362237504465743198598149858961705615923639667139128902032911883140982123332950722874656639528521922688158995331657321430927220610593944785164520791412151002157811316433266082140100612381126216928402637479353371927963700516750236702338097943984528464886277024729786532560096978352528638306108456499081392086222671513408907088318624786050035939796230544219092230274375630772165413970366194428137510869372529343869147266210104714197580177884476585008660808660505305961210842136141205500738538702306720802029553907249307160077490363476107454433887273727271878849380566904866928521323841740385408209446832375820659614058985540950331970879029603395072943970041085875010948110398111212159568651685310526419000116058613559647485711191454930990224593642961902373941825069842622314393853171642145856267133170282798708166350946669364965073171949171410330157448403162503627285075102526073742802055179788301817766184826540694356668821899165515829973513744908638465853822352915024313394466425954632965578916375127035349925737373172494489186247109947988683848913970512232070099200703391198371789197503029659223053000960606193532387982204194493398888977566519990087551163207080241804134056421163148807711872380368574970202716594606551978830870162705730428899399334797659138457673468293243771903411417510913469857489337290766005692410467139292584877331158346869610274607103461429176055125896246893657471221311359673229153958625240722042173487630173769634513444379993479917648582370229897621911221096912287469405551513731014556621541770067224329745265605117309640646164578062228872658678154804910793930124200550297811179178567342805975615142015694308907764717507964364043942536193555074246360338355155392695359639150957792322911404721921682422577000001383209636775431373954325671962221134916026817763184506502297342378173805106703590010289270285296520656852776050092243357057388478955204478998130104633672943858044227393789994416687901788901313645275694277597142725762318064144069452461782893658094992293242119255348805587906077918406883323675416315426701498983558504341658089242629180293833449075972531438125538739413833176307229216165056507827913922125235720937407044193552441743488055808216476487194982969404887852393409801172804072937588307510720620675989990929843078393657232821908840105788800505847409920924086937551921809937894266155395912268731389846014852271424114544810895299342170993969539381392101292119891866573535153362303619868957197661187766102322040436536151973830967132840825056179234630658942512030158597149229039676518274255073425552883126994665970461860208776160916900286220091780192702826931787466832117352194347767013786109691125126075346971763310596915752534000689002744555594319632304389312432278825486731037669184802171103809385037055937532490141754426129750691445767693037027439616331197908520771264813745039628672244685602440915458375544659026874971227248233397578786759711074261730676801087961425811247765527969633926378398107425825019143568068071751468984080814990254094078920878932669866597596812146393480319905163867125817368769858749261011142116355390210101032995508311233839561360034900735778739349330961669411278148847924430406542842818943281039792422229460170278725272058104169720409496022776480847979478466522211423906501561001883921174251464787894973798762454077798820495605039553770958912389203994959168086331638616949047309223259726870107217144530178094756647656647236652878374078112467686711458709387483818771298043710648161390927835762848797097675259998697319201646908930075258209356513948935589853153301161180532083054842724908599105670694200777050327921186518947947468237615581763885411202109406580958303910615784588408424722231912738574879454823145965116545281495145057238177997694602098755502849574006280150741163189966980321878373328594810825368294169814179961655549121438858158355888633001277548657649090928221534557880640231248376360114813870764380024509742614203016451031907997028522290362048854798251973295325077658535598743688672102889898619512940190105947925376947883625917726275076225867685011062580345611768089153435866035426330477058611846269453024966702851246881772086948932602659748739963592388541921773875477640867815843765679154502906593690015287508442286593876092505377407372864544173554100516331801222370009109188472063172298169468703409909526604927897363849178731815378178997109112864430239674295630441040932673430438964359136490965261268063297410138185632997967801475571718124261198060858762745871765131566273012171988757685599209790692507690081333934254093397018137902594252027364902779618493796632725591442832468084494947319357998194501244238360166267978226255906100379885459754912642120149045881013914772192508610816488577176133935600032129438591713138042588620642220036870680500393906139810313092201944775083167001467095208121166156382143350772031762175361462114304729879438261894967526067826948965886624993616183513270098786963574044594587459612902454290124391931511408873794826098028878225909087792855708337080263797760442742497834042529133490039348048639332966149513451612212903048567990039969194474431082545915112768935780648207807597932145655645181027141540182529621931284980890425636611443644464025577624096585517504175882902764490237737906550042895299239678942535959793160529334607093061488846036720033319038213995218189695914488481474503465077200605731282521790228703612566140804310668134540045984805075971598159450533056027893525310304602473054906339880872720842531813234517272404866817638244481658872064396645107372527302017089130598635920081311672257562621287285680389140401534025072086533240868834988301599162378067420198054565728326287308258102257226538032125705087676328898386160371519985888203217189336089435765628211432850731521833779440089126550957478765322912782089168613085449578500368190748132381372426852447857617541827936721467798494579938590577253546650671268570425951329893736742195800916890198652808582213209020580837691763199269461651248699674412569568828738692687071461639321806490082965671766472981029285527557203082434533086548113967155949427879200808613222842206721683149036261230989082355259744426693754399754412958153078851824246923753389604901277263786230361656869684553844740769803008056952905545987092790759392121691246499904233461137357188704530907500339114504458310685698077459862948800264493448195024909289852480238283075704578795926586456715220398540023596393088447831203240110767239107289993324173902944865606866549902939499802957032067476935380212798818265578593462867058071199550561039337018544217823545464527228150746805099000526933251664811132683342542339423296841396243144674647034674356647852815282642010079754238650745955607031625809699016080832315738708660086610342426813491964939609232785370305349554408730330763384608990313295924844980228993486983524199291979297504190633976740708305848733179643781522035823494936805384360603695685030256979487182984978589889351231233777359297553339600572529834888016631088577504423911256575637321158777708874818976663418683729445336009859730003197779895395700736848742342353828871853226676377508377349739956796844312180949497789514777700987912141313057113112178426320738880398395606180071298022842898416722888806747364891142029599738925760710006500755608667328768450795849396825892859192537702763137492026660605045861198334194497469353224258147933691437532068766035731497986991930165426370094236210333700848730863237384656211416008828297289183224579225754506057778405125195657690711089750332760090963061139230542107203627483815578472647108756415839904321868891328052669701065827769389062609670446241520691185867616730807490933233956606965647959376188649336596731967710083343108208210411048048030479632738909396447204883049240785424897201565145743670846145893396379890597789102829315087947502196316433201169485221560237778107194026155618951209827140477983513690542522750792083723702498383964965133934057323868178304852519543294588299498621629392550137264300267094760203727396791281797987367214148775259460053051705311830279918105632897454257748363690225630613188382129725079738388967054144384137115357617535966046696288631510792792357837727861886893352707830950474668588370399986152824898216581406536412039224182558806963492561102135346772623465056909126472194401580244566953149801873006360476642091751172864082317502976039514478962196559796212216060400833723559016980855860552185827453087664741756537618346187283659834343423855366802500060074866203673217203569522977806511374893320768002059607057413708332314540310832130006023987733700188713323501308921845212858420824942390441079078390812098987969829957045376698306142136388053517853525110020762740731802369792502946548513041885028550159104689117203536079814909680348874856272021840424907257213976990169315173124678435161185032833229572508274387605882516738919518135367133521652111494813227150172775867844715349945226053553161519971140793171129354030787820880303471979934295760949209213235685033435039292763190483139586096895288179597913889461811404072275318624029528954495785805105850767741350752250427355026155688928769059873263353664191861389373734303260545529189161212117529327360179957707682424640642202023686452556452017648367790145196120800460711015578307580743195165895672602059893000252416802206075389850707604975059040118297620944198384249030317605948617413115467159509986801437397431482030579971579600940485573036440029609499402942848411986325472863827292799536613430196607141336148574172126331656017131700110171375164614076947067335794975638953650313525748834571676740215326881537583591114416389508390705507378235300455361554754859203525759668934724536289313491422325460476970789021007091115161531822193830580595967411417210958379474775300749848881224293494728277588841801824260877037990911507756677595297019905495013657870701818167373998952539211979632377588298411181269636486888020365438803136794189765561508132918072261107839295443168145535079778812655385538948218265258961193313564933641030547921658721742614048623856658962236520677192615369242943214557924394841387297483722063897995091068526528084170608471074976188611656437895043177365596408235827704828293217565811252770934950740688735353245783752165628454227533984634519510089234368344701357609821067715590040016081652439419472703746023321622573096357739434065376132950086273042024576181385492216175742141468849003653942128801298499107840360177271056814650410129836603948474592808835198614585746774704713735377578429156033884840977275547427082986834651657381007539267580793379698022456711572049586264018356057668740879721656201726588125004761429097908401942813901001408292169689513421270351968755879604687913181194262423233882182300489879833323557050504053556164433956711779517511805150040393497725832586132013321368428756817574185865811758815002967316522151088444237336630884743137216528155243570585677215778387197555208250165218359731923184521096194342621429005786465592024016076104494818024619893508284107708773554073741308800179417343051129734534624619457008574771858691873010803743339404389310223482986457732704748012542008166696621653076636046125990321031756100428236054236653809871394080515559655087027178628381452410541001872193908415876683619255424319016953971921559624150478284789377204995838304795698527143117383574526062834159581639375522834724119292291305606338508476105947760299608570592370048212520162586440030140271230305254252757626436216272056977694303055587750723688804411346200844502323403425480861720781747523311017413788760810245961491273985117535777698395229259820534867838591591221814967376398227429337120176555122689195220849833350632694363883780677277265373605013863984821477129066527333825501005108892061416878975199736816632786445546860142553757854730657758826900807753606312738955550839103702564560487199876684755345511280448071562357068142097448289276331687860002382201926800547526605870778364560265487370986166468893507644683448663744728293110734053902655817284654047017556862248500665895720350712610791993188383606333196488215845649897137514622473983694288025296486372930608831075111766705286386855043540320697386754134956148594229887807639027869751152787145767201214922946894571257730334706437314479094807680362117278769132671766081711366889978303563911803027708456882009852601857890009022368609379874225966697072200810436793990791925060149144495324688834817282961118346326223746107638241698404489371781742681685642109100413471033732993255003669792851710645754333339759133603458231940009359957526539467148271449116501555797291748149557170431098293735801190881867110204700711711800138841774547347676702412848339066530275543603720548877415449567023801846003924199569666579402932815041565022725128431264225456355175534862146379760646819713147547978770501510042175823438604675718427658123497533304809982513346841724315085570500767237194503068943011752328393327159128207350076364226757073607849231142058813060381854870296407993935152073354074914294931701841758868496021674390128880370680745448786989336245366061877183737865222336410612069065507587158220555326648053744958699786268111778579874862754041428180029194240294841285323673792900722809543880045605793360683850868160631999454866979977832279256205840811721886153711612217395739023277398841084711039665395542003004276437676624684550345552855082773686337547347841105781119903774615029949452713923894585698171480646266473428647823136385140823726581212338175734368688335805576184673224732057507016898732792028801233956943686288258623161495453636098253644163929800843894484551057215325396838337225623402745623051555037277977571241079194702955733667980273883740942055965859894191627768620943992377820337184001531506718885363388566546638899583608949854372190799263155007441779813184653857956999210731015244780024948309766199053050086082530875620938019524298874719885626526710616654809162974656542503972369041549895614111679906899809341083002125855099258335154952473745534784106882700616637035895843488706357017553916538183909139366130495370882156970200706563495724619861475030726957225609376928914479308522337277170504144010847381956104259836105525349435494228176184241928316086048345738284741796884526051935637466187005675678314367691738865031335354689780861769877904036328886160056566468654422892620577769420602945815450807096723709484902806985989465250393057192944089389300489097932213732569073203649712748859622899903910612326031176565196422572993956386490058360999880273367313620115729006165704912563059801525339007828429340671983716540475395116588520582378038179533263005642219634041451133013831420056522828985235838784490222162107957107226655777789815185571991483676559520734557363950152349515749658304635127615738361420348185721351710185888071362600502892875508523583312183643164531648557950891188747857591617969521521032046047708772217517868516648798120390637754931393195530571654830463910600953425777750024163999350356588540465134909689071449117808012242316536147622508191614858046965319625713126156491126866126270061786525241132119426451471612462489631223130551480274239436027258747320687937063760208625368705345788069379179133381983051363752248329371904337560722436942224550385425139614615710003834582881150939454023167684862213126190219257025111465125959403585817677699388934184620514380871522716985218683648362347473237092699915977615138909701506668358835936750991533054661924361737422697312888664905947274723717216187907201894045674848673194130002492266997912929619983995927965146115962705776869679518576789427165377522323706457440931692013783768447487754696908108318668924752830018032304482715722928722811139660192544893728554627869209774512680264544594388876940995292107590120771883228567299819315869309273654645130300918436654259041827645175672979942031062563049527266890554686545370950771268236545745358623630581239825233661388595274818809194332940368128463677408246284339750219460629206763966083846956303414516494425725793167002669244086865633913729877800291653701365270041465130511139776606476608798490091291316333459049886945435759036769078693446081560557766086746007657559018493459328468199551518499326048551219192411188888592183883768148845211827581950600986019710262010778715256747089483595910891632819451170520386091713792481800309992219224196099135808812238205105305647573295262635251623084467534408724055608773025972681389057723291214571458292551657758976112569025510984112788020258688257641517938140423395217618381894287185693351274244838348555885943134701034060289206156488786142221167388949320117473389614310090922639166951226911329884261532022386136427486069701885649594295429298802651624498904538425701699579151601721751532725925704500879667654940513245875740527588745979534507243783047306857305161846559549517986139825796797948175648449507599875230055859512331278496634615476771778501040535827336027111427631230511009682113872279870199200851005805287258615227489483208650477051039330001212933398226201857614113729465457453578299583984229159671692612170461057555949316345508580438552201398126977337201898539159291028014389897066773091653407284574802921524479925534416320131416942321068827415245978086758945128837573570494284493877610465400163875081277833794391652999914557242083192551747941491436985775532829883844184764067454558847027673031957306286173770255067815054942823449361444401642732343734795672843166469586711619284677387185260946513993984898954669895701319375432670866083198925134962409027491498141445764774360002458640048267751893008800623463498444517595605491712738932775440453945725160861389259789054507905732244686384085471883284983203052800923117354051045152230769865739782034907400235013606250001133691041329726782356055590707039699112553742597848384324033428379999444254669069872729536458329369522253179355853097384743058715338357395227547971384403431757868858535954595624399246918629488483585486488153434749706208817141167144213146900074086087295242528764608274674627821480642715966073069863878928178092014690838836573635900332342400576672238013380128510044322640536306868756154713138896051334256665926397216665788875904689193986210270797652133221917269078955412930643329675348348010481141939629031356758802521030200046384729060605999634900039664997658503866580459662165230416037026860298540353843971934834119383841323877831124776986200498963708133479315674878632717095296710652978734757646360019340945635059073671443812988849795943932393848833193754419757018030905520090372892784161330158051186811614602543008970333450603149278666883058459861113923178044017521063098407003369232707364457888375875974780487735844659191581076935767532511021566532614689275962248018973810562779947142612701883381061685374117243615226251587851644210268620932352657072430963364241621547316287168342085349371345611770373672389016523367499718305034975992358765988122789381607743112774964597366325042788630295443011650719431123477259239274523835850445994432569297164836716401814170021930703755949904235865467031313994221938576318790506160064151996823525290661948990624874787544075545663858981591065459662658031938572849759950739555795042155924740076602785755511789331691748356580159013409208860520949910553704537595992576292162109144816524777669890574207918163411225043768235449179322950043009526787660237042041892559048880377653160919045616901429620482157367764530149189754923402158388122358348937985409525460839264924498967565062044438490293753941352102638159904934484846209458604501142824023582133580789910152456604359642589774998574891954744942515466914199991615182840200641533373069681741367223642874798445737932780705657671258453357475971440328769742756260271983512433116609644460721994486201186194795548754658450667194919679096127325753828327376123808822096880239664955134387077868173702443830123636430022984236763045798316769048492293329820277261649865070375243753671006692447577922435216382635311541654555493518091050522050367045574836209402809857583015117028309739837853444374772481702567331946274972954610402673268929061942522863487581678118267584249665366291629907619945046317492672009657431647118176204260485600358055109312417827140113318458993868442802777362807175203415142124422724945112188388654541602577047646143688276099605086278059003208052437287603682287611761482180058858133975486775889723610441558478694073228327563613586548116088510366868986711995811476900180396960255400120956909665806790876116282972394012540528916121088998964583622146935312302019676748037175482365440729598017579452726927505882487382027136490127991940511893208464571547021040381015883622399175717383741268464749844495670418270343923847898877682029639656115308783233915592195166477663136546351107155068804031094275994640707106016293650937046756547618311015450017506738499994592815470938240361670047537075639794494349387531717617967717577859195090969537677547864234133770462213028899151145003994305949695022351753538028105699043728522822488963043257579016601112715897541176165608709302279663808984844692190937227523792314472770232399654712627484192754860255628980898068029637191288899483201819066927927912158292410449430550911052423828223006918990805701432177141748277736031139420392039647706640901352412581837685958483802021166679262234233547564590415951934781367186153134888085679209033783203367637706302721983880568424186895807491932158609330698096521526647845090218235522383603488918562710748770861511261898028640140469713727431902393636560611745526565433990028098861916770524074727011983412706035669574649289964970957103732210270869443172180360161295146857222447499971462024130161939032789060637565086557599000683135770156072556758951582588952132170963997164541880911005980112200446309976662856500161095294728482459461790146017277858677543724299433869933169044426303513122811839758014322607759353295327279142990135175995444818459169377684259776962908122918922107130465038977357971991261320654521986547435108942921184717863497645398775810008942492237046539815572413699304201610737593418994074032812498827845404578488473326776983407370695146056428541561494339519359304298377532834832600538874264963605971445779634491518093612438918984382744831377354241295404772521420933278803220666614446134744532269430730822380110873837495860017090022155320164976881972006694169690152341186531483206182309012947116350318526886656313690381247780463683134065130111494423701857896655473782407841150094324271787001424611965649074718426786983310950159146191894269227841982121232640396236143481618206074281480425026915104052545987237071448763143203196836905856533614784145547506502060609990994680738920415265694983505083965574673248435211202534426314248988384799339450286931624555242494431090282566268048824324500467241609828782592930002547247463503529712922188822625770493017398612518927636303727107952299247141468314562974211931949064766658350767848329154210285857829113797714510306717559023725809776477641403147466952189994333481647282936003655733316688720765291954078467074241395140625219838905120758115823956153403855351762411689669343823666310561831270107017924863808614035267037348072095724812351443587746157848292613655944487378017817881467837932684864381803116533440370053434940569826502101071237231109054328347589055612565337662871031734268703676409233133306375182505265961851055702305008685918313251853251766324704450546930024577317141926320681675077906825730782145440149047884508187302768102713003173992763667013794385611178549658130512042945885026413638326822944837612850798580493577516310467621121097578096376929023755832976570674828655253815254119365231627853455944363487152608475959548636960560694964043760821873459616246603128193676013178115964571144453709279096111335554318949952690116386451845381691212856845080988583631315379021520832894831135338540051621220622500309206196652251277576899827223727603806550190715176716935575616888680419660588443149281335889009686510369485370907100247599503125140018891926469327557015883422220479586081216431268426895404842103416218574761158704248062954533752251003823925017290274483174200707617510809073997640936096281306028273066014001904052706083038160960401797480823281958682437133081972266151924694629288348106831960306679155196787325992206104931229801174901200151607460466180968798413796602647209834143630748425813572104944223682676915493338566590428443908258456178029740734059526509577651054222356344031296556055040111686022504753588120406038738764274674491681365901536240797638831124045245751830170545959838314715702414987870991681483643919012861986417641204248478200353695021843916549662001925875366797886474361863454429212169724166191973645259234682831848381443625901971496201575310600147147497966549222626643324395422892639833555733483220043305910610125474011457786602335470553688429393805569487536642718289253602443429201215954604476357946975140084185698334430409547387200500754489629435654356124262045880172609791199224457522294223815136972266438700241543065239703854507542689273941887723546933588886562614214616253070100443461108094146705914587470648290791875826332948169244905210854996142694576939663588916945665159716618468514331034706293250685333860503988308905180476839647497751075980305688740794534893485137037587013984562098842360503649294718737498366005845925850857359033251754320114451606605497017576805816220020826027418096676360967057401625051196629239477563929351798170721513426612229925485763054252809183719836420743412433789633314555200125151194799917044666247743572371205334239943990046006683571457588604817466194367302027087173168882292424285827101860681638743710239331582019763954582207827896742047813929368167570058053975328756747194964446232970404784659768599523240614522188606609193638524080985575349265372563186336686202355845625322182647807388543656480038238041745773960375415701436051737194221431344153155674534678470297308525243833916430205039809288372472128682662764193722403896633331478773495961035319758476964159416352029199366070957968325135641394459432303390859227822458000839468461290749110501167130860063778648963017582955706054124996826895317478904695753202507342438235081631149132160894272296255762321766531053854326376282198875212720779158036627559665580986087989076057889555238524709623522960309086252875243914856642807266932831533051288789608450921955514163790818107425974626977845274773385165417765565382720320846198776821081078458599468750379294392922063964075287122789914757318623416730104212342844925462102268859481648884719072279570787470180437528186852740318586240729844228934174202690282098131164774607130590996443846877732560971119189318162756290045043140683336562099162490088560058278934585059586869262877694306193737317719067458973602928127640066592547910187850452693683264740729302611401189860487767607198629905287508194701068066079703350963509414183963342428597937842012063278013750710037939092418578144928703243197627485382387456064980995187449570730732379178695684385690430762626863680305706117530498952199975437823677466860983028161830295277665571104702888666789345272863478974373335563872982598978632029093843376429659206784400209130972437328397120486085119216489268260888450361616607378808339262052370599787134170860398451054489027893802326898338648774466297692322571023127352165194281120469019976457794986748393021188204362211760966295057002774609471775078461031259400225597095223349707264459482476090480197284734585842859927588739373799085750937585656384365307460375304664025320059688514600613804558496831499413653019543353788631170000525468405671473779826622203904527512753067181880989624252953719365378807021654550916527870442258293785959432008581133928610897620663959992889222945190568508804860984733996968745799240394620407905881150641977492264067267540542573798291014443953513542094942419210075205423396250244878739863177712752698633517357187429771695102580789721219404004834350748603466511057229093858956487732070173802889202610955092671952430492150704774999436239550311250074702123193409905793380238573156220355447144290782117573950867429513552511554620499135727850867856910819955691575508901601843011398577943356110053078918180255068379573852140388322174444772723959774601375629878276118135947449313282781091702764469522020588841119899213004273766056655949897553933305917221658557375860437760792766491676601426031197871367812637501939702586409921737733690156775844323887530762664284663437411249576799896614405013446356752370065686294471930735779055053351049961380956786227350208561731580871661442336700509038441275456676585912839436797285200653005727383631780815793158114566011141757098840593314224305020635064850155165109133087297958193980870380750041281512675149096844338187680128387488190853902559868998465584777539764177331053422437974427304211725118278260415788365653453709326219613732297869960099059530037073220616253875896932690325232371276605624954703273236068693260953616050351707295111622129596789933111831441439998161255565667983829389512110878597591935220790346501702287590024556782095732298319174149247021220704382185226301767623795360208568490795215367546518837684300141027359432291201199813325608397082729232456914123990034393830163043292588823845079158079078105182302945519892623513008724697072739040531130273734733327595137605130969826570825977912666854674683425310896264724853709316360383063344333859087261553980565467056714074457995885423655644269176382552010535537805610225017250817263992489491696166114540027859044550965375908639980624850298399436379993953867309582544349015825834982082027277806646373179502798976789697399336438306444647921914569910949439490631317687574075252011737602481734158927377593999486944000041377437281859841572024012257452665320319519203190245514024375214648311505211304673641877888286626422697135483561753904001820367534038796754817175542394965645890879861811666495501210665874279912203131751362371573009211533141182285200709450433810145454782980636044703374281043404756305924175713207923690918819839078989639489932882192396380682594358620561504465442797097532116059525843281233780834691240810183411592686405922265105029711031296209515985326255103267920106931016883151722186343335930306860954777949194809650189966995830844626891703204806189207541179197126620937434096052489244360691962409577588020341304413397496916796116941367808915604974295380313204949617202214107144160047725460938892389191004903675038789363824150432998779119669827197992495152434710804801307934582740119947310655418181131647633349187814954176903534489214649431715415939569585242493354586076666653975368567436260102100435239288129805905805433410401515079521624183869766534283933556534407474507106077384956714295835257979664979116193884630088040504092760238869772842304704332978581586892843042882855954684650854191794099350162345602915268249632552015402802641499703443715857183673333595574603362035978778096623010941989261172693565713187368325882147266446112740032844872143029165644134815165877201980503222126369047557108361702456535426313322157766828715754215933900826980311429110402625205616899372478735381408983362387867115565594111807028637884214754044764936293452997610124388114763656825455350056148596443836526163248493909409918760271981054136293527554777967778193669953264389913818411764734453949300716421772903621092650126446160638189392230015441528404479850017341563871651157051361861036194776445063857975972837253072355110836084302365848258603686935672173138276435407584576737983810282441644976672746545559833138985692985683304741868595847011721644543715553540711997479398227791013196316674627188886250086702806169602758264803603427411476542883327177234773378360939751143573714852753590186593294893618734435544219877186108742496746339636663103649483913319349023439719734236384819871224259243902811012511901211323728161959238818268409775445117257924180774482431340462579128235509491163394421393156214355145794133856455888903387178258601635013915743037671397831514815626650304250423242210832378319330074365673467318492092024646427866855491874169591953685470090927983894822953344666900928765022501898955004981138704701849163662606784035755633918455735632282053603102853008560140824609057517152296587631504431360629239494904062880226517168771723929203850556322199991256747794630928828585191766325662073069279133048730512917151929982681015897079539131959799190451105266868279580440199728683414094541101034481032331333988395921859697308946468272425649830364539578885950855155419968020327590322205319537002171442970973523387122383201404484983130518948842997313177650414989929514789726802948680732377592126222906437478494547815868174025650139380869355365545157446590716783425110124398327626581219328645018612320670955121946021310385398905131832804977924030806175592954669078731929546122434534553142370303251879860451126226850661568580095465225812613422703060057611797952756382473205519448942728723041070506292435603404297549382767250979816432872349689089181816745283816132792710422634572278299587501135751439676610648159779501826366304238054178987542241687240939793922654404011638077570317872214589260839675881561785793748057520215527751894345915797694373427884928488782797152135291326156573343886015676611743074041706920967717568632189479849865312647938431069308317505355709351531392654755530314663724683051209677333582747150457397774099349592530283147587863220924753731151396669843169858288268089200422456495557793185311688602737458548683104440245379597019810053593168375097809160000049899085914875174847562903661634161833829426592120800874286240747720124906738289970301292000133335633482666897340957307524742738325655939567215930083532399208614902984521602958907903888225510159691679540148202440929566474776157368055389724045209244170370437552792942285861514432389192705289461291561524486844061834312081731959301252819500405573678643193338522635550992824723415568913022308533904729978830183111793255500692185623349988306640772309209963308561936168939018874708361874438131136155715949359542758191814220291246932746053624272304340165677083233568325319753984973697552622513235246679437165770781300036031199091744051975327617490782200176048561422994738301217976641461179357644624849423483798908120029207147331983674619332210205317614374515885967043587966963989690139310812347254659279784052095999020014168425531888565743750166836615661135289390696675040753775843806180102046108739945022899687401780980614576439061343738491973651116633025317010288512187563353257035869568501058454880750767879367877830810434138824736517585911025900866260489026253396422120397842725517711471820366079517469032289415515110594708069266638322982207995498297930341052269280598415252585613854637707310445065819187017774179231395252272971417085936690035101485480896408787060090589826679360084885100568027535634108602014933835964219688774050981543915777500925778899588834093071316175228869512780712453024895372032963605334770707559174636765518515284521799382658951548147801459652511028190953057368241947263763953290205771267225829960432843176528028391241600633044037386950245760223430047402347151169271214980659961376496796774429818588799138617769487371543073675305566901962526315811087371704997019243760507321647070876426179235458415507693804305453785013190776910521417367803155285798999761831091444070856170251873372661448621947622693288811062630730458411402194847029017939106143699876217038037701152325106170342963168319480555021694510547095969951905513085982303151504290280448808005946126198805860884903168676210652155322247316363371761243546021260367838208745395395911616645571812828787807974233878217597079076891517330471202363965770258505985253863539551203413863500484660640429428277261769150706471566647124091179780592210108787673634538089036675755087791798280169663231500304231227843021403104486065461362899174606718615718811948685296655800973484797926962264149609210419921034205573166797546659453144221872869743027163333404902975038218173568605082261957762732733308416393132508450860909274501521614912356609495748869862573649157871195861186397151674675530708878441502192536795261641312678593425240134429221296341061512405481138902718570166279943318669007302680395727616565010054654463328275381105411469040237123574224622529752695189719754157550259174464660052970323144128936034564010574525088898648769323016274442117674396939070995209458568666427334290208807533809176375494647165872369275655180463511047930773084203464756013754507801727451206396959296097349193408260812481510101182469397015473343137137314625297624409049802976036118144089609165053883855258771724667531391241702345389719736412002362053160005398224003062937584446014854007348528019184145642636670949933368409296680112516515946031799548034280425203400547950225917031039343559540481794902392236877777408288808285926637562326836401529400981058906025604530540837486542004467181765543781212598316681320769099281377551834502121013858756600242506135957407617871419182661241247009682932134066210325872036189984031016425254180880340899073010884539445507966104871153134190980904301379073547992694726372257512080777720221972067081127214805972879916104023896842359435718124269263056079874269670163494987563804541096918628979273613761307539739346691573737771456122065146776136379163471023865113649737427665356407841254715779719828973777118319026122218919147980011462869218242660853164201840059959763858963379210436465560384206186357706281739286588113185847221489131147141529914356381539392185879067720146055691926671993508105927912558573760452892202071702661839687220538669939396760763720330306877947279958937440159823653391679858759681384691377150529014266400062733378488483766614333874373940716560468703601784872426667910739817496726539734391076352402135981691264641070922522519845037926092845355943013677433798718998860709164489956825263964714106217586536823426820728930133868841233809227452769574659393043215695773743007766008709699019277846878491618100638121568328235400458965232928520947947572478265244674091923208355281171122843305998556386506522370281094567472041419768266151158423820172058919324623290647979991961586217385322220825753635163254003698970383579121594112955905889066693397802955913319184274845637015363719060658241846759042783771945772007625978169137057098704182501731038860067698884960295828503227994054728614079706715968081271885971392717335366817931289065327157615893086341044055227798451151710080768760746707775829593493298843114682109221259853703999480014641107842325796158224532157228033252013004958105385688734030515994845425307852325570904677242678827620508574171853878852187305963099865896370368217409456775878424064215867046330773106200386736721320206810109999482993564141411302507763214455349847342367454707473979698942223680324654739699488941984183733489183172540136440838990558022984661554787747335950536866642405673954674269652590253091932411994913328184628593147787379238777913665829802728574630708573146678981018709885878718803317018722060014804708236853156700745675427913886182149845656724047549713225343472238190455832299363634085144325428958245236733806991538639862802287504947386365709059486454127915389365608851227596163345254031374053608919872299533840910191502294110441885272014941059075682564545832972857098693177397519094681427013598606215323112588433713332083532268137017322923420979056202460802444661564713537583772114178238731922057487455468050736270479634410982889267560500842745675258507590535167306865384242227904190023099968891778736451220938342281698827816296552788263310506958166806151095714404999709797613533337093426597915633234036103995271375870373446979316580886234617641266441366171602769012483334246635454196298134901258597446124542095469599869252472994418504636567873381578606145361386038903644005363313275621175424083076758330631288807177490012457333690061513017685180398457265420481720179559084981499737234663205712794991699152950180781986868475932725810074111601552668775893225769923800124637667681602522466504403499216116375594919901581852484565085284977684834809246802290284984514057419164500120022369395801101637050371745891330204629967465472862855453006877553057947255355218823865959009882549780204208971850959163365200905686610703099399805465536978772267038066579984333994765832763274750458677752105538165595077362698283784197504822640444806405036633124729039202139038920525589879254661872533666369419360608266918402741533317830699026346653249149354315176656783208671434352008710238967667568247789739600611946553110675063622976493540182896372322529374160458423323170260864244406477999534082748811288339133668767541872303972727622217254194176069900574248150078931079302872386706292564017119892253173357762029747185338858936556794858864920698674048994345796099113109190663077148305580173892663579390682399760407725422496284207466071637769209933439686744684241926917473828970738111369111835478647647395746766698752561156271274375447971261984162327184663995294204809697996285472509731639374379642056595040394071615472168302052447514822380857962856148282931763225059384545283677615489508889668835594769180764250858505970975994125611310558063043359657249430357738288991687286653278302261939084358422463539934021262762155885983875506583700664558291711937199801123046465694649069283399003692979529445046750548837803731804087544138210797328745757575956049211100247784801323716611306440250338480163844426328235649507989853500492661549527586050047516788656286958847272033319429087478749237413293110969038955891916808881703647021923742583210338935260689116604485391842360783968888750612324172906334268509890489908577599209841640534990105757511684453408072401553021538727625513331577648678126752994882801840474590996604313817477667211539418042004723011264891631510646847539600758582572199362252215104911736482106078031614623364565535778988800053081875609967885040422522377283342918673739432146051307153618437715127551676750928957860182096844345827747694318207635454953507049306408336022646418762616863919682614614220790843535163619870037445825613679275521943000417302175361126290008817850868959060593712687173634189843174369666782183796103299688668008654043497094510040896502926005727901036888328029769982919063279620001724556435092222117744079505105825189777604317990199477799236278173189954035999820181288310915875347577683311375408139429878906933286822631523155822265787870439135308697588836043902230732234564885829544020440678660024827985129185106711044037927459686340596515521476345832112663252580356346526754250790811164922004401016618933892746660426121629761762503592677490528189394128079216510884625584994595186437207907343166059645168970510342433793059345483171423148662442847899848837984743029269838629195066530200135343048557437842262552900781861282076048741099931711780290399830271027647684325190861473122472014887715846708807883036140733531558658002535082264666280012726046100457959693526523007932838129497703361344080781623524208454918613463883587085781777199669924093359382032952577281697064041739042898621463637092511739549368778630677354306597048273472361239628068182184998029209024657225346232294124883623684269704228381858135576095567482352787858339552998005945072137662024190286071312432470558231236952597996060054116233884661782084378900480587977258652528051718272347002145902507425593250151708586100111196879327346878301605575694395117144013501792394778482654666993925725226852516117942258126592023653129180770992147953375383304834954126671198172564242706304662951333759243455556995782603075330480283763514647688445142172084734642034646461600701832897737937499654032747168708732962290915418911221660943230069080203535705323575352545087591311793198806061849951347711411195561569914652899181494195605559204485552768733364558244956664483858281493719484434307851458567025846882312862261913347120578931430100557343172831963839835170371956427812685996705253694833206789267032212370528017553190900176779438564247821326689657186313959374980621925412789722996972672075172528090371540288898269563283749535057644270504845981199202721181121802159964390989420591619671415412409602071606381505616105904752706209690910820261495792919528814359027990636719467391219865358587685788484762858127912962201638312287842788461706477490079291530247783716970788488336159182012661616335916712566698792977064237387984653818178542245646088633409912408771377557199813519737596748820300862084117208668985665212565031022871060361357761066747509096963719304977601703149374890048003475991149336876808071727736769840975933503888017643717389221108780876143352134953749825603417592383334274399146129351521068240050067869555551543742331417609925985442371224242231125916495739238882624246973488151137142185334313863517659301146462067530380289647979525485417177331802071623373460615575101825455160830054440328643203139655984401045481663670944390083199725663856518672652926587876115334518391331143095445996458179781870444037037049623065595174104931262095365090827169898658579784030136311049887545804460877467965312699399973379103923377687454391424389862606573954487268141564646779888188343260198711146456840342983627111595269697302297856248213969096961642064739738355327850074397921735354464758995807875667780060911631682935411182071232566516358258620811737645444110085461915209920731300688419337441180164501313768855670135147492535080984215332968467632192143399380973683893503140807715886819284242455143258396625283598075641511144330483473704806348963292308241358227341104360674752697584645640538358038518047512350745974106679848135683527433334879675089233595709313117774168137342168302369513019527057021741591649361345052745252350357552030526591631883658625236557028951222060990634285115614968816275269054064632944884892575087685849044397587737291765749252615821960762546895829009799120197166832719638044249185834634703905882953089347115209502748989306820458585436736575824943561106291930394306482161317476172001821273219032635202786833029239275013190050207681760457548504255722449022252361526690185606185152844187670773151285068692548741427309928840624010885860735573134380095148569238215245380917393775514289687993865104654729506171040898417041918883952687668717687401950816090037571609670381902926540465344233625188485539360907415234538158995153286471700455477125053475871362946036536553533838758995900999328886985094290527535676331038351620526779079457354131446574573480275554377764490459429205825657766956518007084830114474401317977124374686643548456747700301611176215911692139113648558985085715960637844925145474110689217946594992269986439498581312680914220365655987776897943118106556300652904351516624878529299567794240346158506180622422148312033451639740299016648551510757512340981477858661060739816770085348350094977394916356585772369751152710720952962094333453805768740740361967967888373346669121105417254093234702548037468068628347581373709466219957958948140698141313490521021571695023096992908175901027723670833472789869280309545954669224973857679235965077433283281246418695182439469980727636918220581074619427570864449393007347389864906161478425621187141880663192053706287864177679447134509618120595631364931255377583446496901853265326550948751282462050359379120039303532900138096395458639930848261944933511616741479049442951357402601269402002902521331448314636712736179488170032324712151632849842013105534494164748168697620419275077547588866494159762245895441111828007462337095297514100504101627645958261858533493695213380174878757892820981074561560919767179877848180191827187780518937082609272337818736522587829242417905958566202993379965417683566199798364236828433520252083870850503213566666851586835102265871579599614184293505280465019010560799661171174339131955838001381564031995706720974388023586162899855087143400062187737279531927521996728315372297006120074515036557884180297594058299225753417045337772381994662833126423679933247420914411692290760923537612062110508630105177351805613973538810966839005481066476656280687403325276623671964369552631362129745705147047918501228715828606392995038302537278991917454354457694430947266942373410771383339220567570865697884151431992202841997781325129975975089622839254244663779449259377543169031747470822927736012510441485949866081073839720693202303555149986823902735763600563040056462957236255399301125806674114535173525996175319049063258850006542939300650444425554760784978397421248059719206917590099175132292903761300984564775176292764016728073982213384272980705761262198865237140976294267023223384303941458884803226651577020436383592804740317843060440810928081185862335885843331506766474719609077394007983789423152776933977473338913399219222002093438063748549938612624135249051337767587681364118624721416522284500969497048627241253983719374524876358090182506136801458207823811349794064643910457536983041467159545876081859793628296304807699560131426814211824872751699365742339136227448994488249933422665815332836346490404498579184036111304387311431151246540618680682461867903696133994393211939973220692313625810997739808285286420150105619692130287965278016639181271786788225842543326988537759614851432608678015372738643490474013367577408903483450491284786069776230538505354590318062908978343316862197949216422579102748295856454836669952135453617507744947688902844269224458884183329605627922959338750518664755310714610887373335753569063064395994639043495981076968941504071208648900000375569943866092884111235210059873631169715600717942951706995197148514672688551958416781364027055956848151019959291759051330170440962734589258159524615900563437870659365997577823853284256890428878091274313772636721232963077545467933368549498336235345302991103377300037051168743270360190938480671241524020518495771232204509592586043576449061316869284094246311275074240166545311099311101451384730599654076851751129400992052845069208739118925712613921648322132748485447957237957162670920747365446931837349894223032212457355154412637031167095536381379284913322890828769799717610591189115914476626547313346535194864615677605332637081447634584123964410281882005058358035068044032261256268860433050397416838968101537827256540196180307224586853054241326342611935016148313513766712400657438114030000678546850795092638949407728150594718875554567339453743756194285615356527654141652576496177311710028394674493588315260817243904637254846356989522577187975027901262401418599609712291357745027382419486363531759396402689750866423652778866447427645744244142158749505776952370317874440320667099770462721069702762759849392270601144168076345125539645058212992678277450422353939149972475286354746201266528809305547205809412638591248016247617053819317746884324235579794582359482888184524139840764163571675886632127865856334249488582351449179182372775709533861270254969425515201223772786030713227572160029584386150374813116892273556392665577404831863309260547696874652571269791116765742623868589694867458547499073641206614684136007644077398104575267758989413065009735633374386065500909367573310828325785603187367225822802305882000118972658580276336612470001659385132263198166686249908777312320111043279055670892226466400502076888721339124742094618637874813325732537467326484003666288461207056832130701034767933318510439239252270348039963719500925751437301580900368560501724392359287111505015027416749896073740458444850554462910203702780705129016944393599647683354857980838840483970877019222056899961899743213703959774062258543956340885785579305801094737794193418356750288934537604690130883549820160749759652689274916617335409917341116932546151517158499485950405621655277661986477150016535566321587164416297162816445366748049906290878956386131487285869924017531743709389640437072558688052760243778354812962126551950913273136694359018884536179379717110707350595146725666323747076539661653677257312718448109818062856846957161348093701764466358705299353916079734497736889968308916173042429094344821820096486338146808518559017186587343541769806062833277816956147594267925498608845603225999891906156705127352282411495039644321759032721383275830237168812208535451247407695988746926533011852804249857951454303334433281361860478584332105574690678893026355003483649565272080537235537190412924549596075503414801127984060545265832000056351199962791637467669893166816738063673465323405969619364142946081435598435804265715974779929515223106037695301399555224165511641845956821379934638037010739076953504583845539673077667769870409606761537117895544966524251626691684872686012390838415563467361748960367891433448123578568945136404952628774433938125992091599535333156450964256356264806545856399932395720980978101857410305021546628221806127134498493679571539090704539792435362347649704810142238932657116035716988631357695084961671958178330587204089686361995595454157075424777788682183452133070036124254348466094672136780701859654721445249287209353893867107545462214751742404886581444483866574812280531206964892121093378151185479261589097193874924267035784131186757757408575079355185362664219714704800791494840241522939413933115389879813744939354388764461308220827681316582839483107816581737686447158440445148732716231124280564426080839765059292941606787342540396346947474614282194952572861451612073524717147159483274415367340313944935382394184997085956026942594579028451643749442377305709198612968560100560180680646269220814811213808247258346089602630518624861952222257846765002011021367881270113117242059799877023563228732727396166837507660202085419046264029467527146765683768358692940314928952392507651250740779883752092202515726877773702584903406362962936714000927418539380696011326795011125933391901069696485384585940402588180191711256247935831432383290322456689481093096701964300000500831187907979500840658213607785466537618308335657852568908298466646425302994471445836404550359220163807181787470083659857494563111247969545263194261551129091961562810586107372600866196231838513149474825242444284321267372983975743888970580565132804532004129780121380322002219487198314679251014732518217103040377291891098294349898182168393011171362562737809891832382968598267880292105569007761339846684090297865442755900826530217382111982694951209266202659568563523908750631462008615219427166609665069311671199685733882569565103611849811130256150195506238023422985329550523309258735386656797634679443172455255573956989815721492359204790549114906449201231936198325828848039733770497720194497557095035326623321693221750615853268801904274965743389306185720720136111313473657116991060848025945815514655486837521728081171821126281797645051042820904830750275534243758875970247336018074465398412237293453528653459037937907130942274979830182618492166187396049357974727488297719800847445587935257219207809996667661814976122971341167867243585894593479769203555199914028329270036071962160565395432758244581563529054112803841833948942986574460909680565708300336105258315385374058400439621285801190034180337071251435844066050819678205834723518920309885245824909451821495337176911378029174425994394362315093437662325554198855541487169626131491016584522082149476792724439318606130266065148974756944353271427190953950017465825999467371239193991329651383817637712686241247062265829339962664031665386371515571406638171263225610107856372646451074330032081972644212773130196138359148646314767585067760182310049489663054617597004058518006967178025116071756840762355099430193887140814804161374631061287493444972337844503288579162782077837080347291710992406669884675231307624122527244666065777187812657833108895066829806346332427113609151473765034712399136778891759680397372074093143847317172018816256338663794614904490100215312720293643702787783619241113661675462588503108080208551877841780200072840439624522968105539141863801592646160981122350525194562828320480631544652993848975823565816590521123115444764445390159602965132263909698790228774879623915343733873009919249360290986937399302187859279938205266275892687933432193515745561272050644785819185914288394572060178931217911562477878641742777894102467846058365070474717847602011446503987551854177218242213049142763604210165496722370835624307292823694451697655319141457871146266844048678232212695981721846301955456357874325253167814950613926724108328398485307454365908755373842506870356936998217442080427037853799979663677590966730140809313217405157441159496596437055048005092397886824987031350812345403728379029984448391154708366142125897650341897381137803675811714118749326065611945966176927200748234537534931515445736931813219879183466092479845557182864267138023809970707415069081132748533756854678102208477309705009111085224150678655172423278256266999384786328623042998710510770887590078440331450641876065332243692092315005322977200591663342563483362466110896758404829200332577196522051644352228199681356188183018384878528240579436702241050482539953351062015977850206748384088194442416269749154159925925171238675793346304766115247056859805329324173279130260463427559808302505900135170505405091443858549894266028438887857017194103541764269398094398912863247491016779752140999773334300607463357413081929623173401308756841599571716927099831743236106326813477898481413147789958099506933066971179630086066006721623323249514105436356952220781957595960812216710178746022784033007000667348208838868529154968775260989659724339899972432095968445998046306913712519718534713309772387426392389947601710998568796601255308868552379200961840715938289874709834943997492898571868219269868546534999904400853141812434042161197435646700083798292648988297649872930551066768280069961172707863363861680474533108523696433007729312673652332792574309640480155717588705450912257329469158836842467772004424549879491052704250115630320829944302918056874889764834619052881590920822658767969846961410721183549295303788343279474014940147603246217483562983080768090052349583238928326168180030601165026568494221847701768074137588924543170217680696922434174272122713427435203903984409868199123228250030029752432445251128079222694839822460700076636727200070207402949042023721472221308672058290059733535496199343788104408343905836844738851500911161772793041347472608017018763475165273461035935808672016526711040030745351324818649131030208506079809617002614485542698470197201751188919208944559850691503926956804030065304909666167981767600529859458552226739771882240070541332319864870207698287430677571281588744089218301107569298867759592579248100196030490592746937748075911667544778789452140398387864329684114868443408654476264300613479647146811638656232216161398088376576200049445945583301348311518946016757677859598622495187229336752608421034628298881128544098287219773649004108568676843174727664123095927076516736610261847028070866762264392458661820428089787067069635517290897813495625569653347847128371185946318289638982389467301525876518504131442259975060624735395177460259218053064428087092765036430873304629395247837984192576998421786268370818308240081143459498874080164514413246876380355370438462074071846002575635593499250006127475530249196819578921473433879283597745643124980409682055234750020579042049652978755303719164673105000320223022715670333181253648011144780470231420844411039882724241576417265894098375061255497541227296581115562342797561465718390266939472077018619756837570042361572765400338930021143277622319671853600471320068374591244853929592690259651723162733558751735259241802360426083418218766511793882523427258621640536643986981822247891863823553971370867776232506565513749236661954409064409236327698155348686590375306215343892687517988460736783595043927285565789383141683231607941644567036456493989386724574389215113581168645247327579202353634249936513144277771511006710512013240563163309404092055154254114670696987880187213283345997420350725285302414630998823367883287040077204044049183936653978720511996455421718090417445203799701181478510054238047523975205548768215015364834254439082104897263889186666495274875899646162611221899321372755096368927680431654317303673775168690405254438689491738476002300983335306491931597968858093304808436358492673810089567850391206358016995852190068713827200036713366876534505767255467601501541638072131622516645358934389629875402231560613612622338490092080179898524072522604371024537255388278805791882465173959537946392254493874392039808247638496429555883181683349389433145211953185338602039600053375027574467938833909416152847100613701323396282010543740647439361932663987576985483478903883269199054197115856683666263073046681038862866049108718691821756906739064828012845208191066046123647244345920357420518479609214748459692302206290083511687340000789044359015625270298615197678665191647580183564417540239190140635915324817737438070433875232912463625077832503871596072436360628806421206479529222140246432147961757222212514029849524817681814476775020683620820527672753036907067473480878264986339823353307689443151765043312068913072239651506965845635251206108377173979697151767373631708272288516213031987417724017125270271038437714289303768173638071987535544317639035244773061456645230248733640000313128559018837641304633905472434418903434362583027836500439523603366586262665849000753680600510121314235212230270550430935577332778739375585834555831686093707222560153706826299893550175914399648847007030415133434015560653785784272458531865652786703791311528259749200319238031993993357270912838467105315950328245131667689111817944435833321950446559814903092842053447153284972705045853389932445874401412110013401012553056388142596844158614874379114228421650141169008446393212710831944739346124769344272328859759203374304954840599797639166962799354605708741549945482268583667633764042623826630830267313468342344158153197658304423073552247778896297736636218147378603804075273425253519673287555337950760645775110923896345827355681795674531231106847900591390539887730526146056595692406031653953398446932578307819239509436822919047480163037044288121101765135514746569475499131103451501609943580739268713880366222978971794544352689053182650067719942213374471207716020282417573506378432097274576012765161598559179168382248946747860154578952111126603594039798653523455038201850536409465988431054163388354394190170769759074857173530401772309886056894488889395672973503503039842956227149842477925787980400711857178116948561459316286390172100884132500997719252171423420495071087832473292098887833747114310336467584356752419549091180043039064475422318795743379133780437947131781033970123463985316514272334191367387533794787689600672361405668426788355209251570424656814300618365481797427345605081397402502509955452051567794044463466048164260131389814093450917486826531393596379850957278427134165122370703174997869346867519950958490343533475724174237933610401055904221280493200412225135137083006654029803522777750012988275215072924233460902338698787377279649227391470581661183973132724416412984905486120568072097148566910595473396396685141956110461665957432143129956715657950931185341499398123710606403524916574542105345278509081332022571052205659844044161623807861122296645724542204070836277317985220233540008268598408643038264838576159387512795633621387639967554918273545218484590763860373386400150900276302443718372868720330003239039356997948102687783205926149461722550097317428534808993405242476908899291906244567312213067044514074416987544353830254336213366109635833381031665672837587811929238430225708998641811024834165526055606399794809475908945766585247892012500995877956416454958261651234149082928332115932129926674424501129323309693356017888114058048194152015134027859360616067197480745073733762403165454942758246005617112893857077660477491799325910393247248102435429325324887436925149839466164021399988941628325796260632435597445326069120879387662836211368813157127827689243894425468704154404740897185635741852746330239802311085939331431632238635410846269495305258000241376927607075040320597544934341623492159172848061582969238710048072689373367275087601390638333587363151169255512433170591257231310710452128737474440022783296062891564921288521045409980356813327117272852497691306801744902856933369385713093016520042535786698411202653105274114301092116768293371300598475164649985785364382680465506158894424278668674510627304962760505566546142780011879319304516218188844473819873728585486731602374635266688374656538386376032983392979884656182981765189568353596477134264409300241541178944144459947946604553063279680919781816009156655188830635062451047901477664488062391959950350682154920709333587528137497380462486164735801937986838897518798492836987343916892780708806479223025826777185514325878042309842022263991757719910566742577581762619145934405247122893754021571552949231297557241864783310216684968197785758144053144417141271913562301164069121036610874670458300524102444387837904257609974523683372596415903763132763371549446962515881821109569978766548434476537954940238911038521614121881263533098481918000639376924151213447187373550143002632675356476907293565334900105753765119963833694975129979522804090067521640433151510759919160512234664084018226678167237421045820118955582286125035586366785056744647714117848446610882557729416606567284044536336720384425768107452963873635259637924902756242024601649165595437418731216418102710240321878133986283555416663948009159625589625726220293046242554295536460896955192389270625556590169964906945451008592029774206462259090364919729435836503438596645104140631566551821740623701310898272002423437611512049417724353735775394088587810478689563174784954081061289889873917894750247636026116874707196237989258670417788903675133024036927658413187076558959847960584544212560465922419570128904145161330110856990796729213131422983034166068229677010483694690519022837563342545232548120897428964362472777627215410400494216650221622119446869678852351960555858820289633989815292180690415951737198270305636108869954486903967280512445122425482619371809550793800007666860696096149929838055324211497918623043983865061374598342593529669468382285149508990845228355794482855672742259085904249310118074501207614516370991573182852570322964261592427877484541843193788767180387288766529689603062702278265557937105436511476204089590847169552568830504393792715510932589481469561393498694985066973789463791454836883870195637263765964007285061125704734746372681619297814559639933677423937506215983810533625779832942582136283370000601392452011188745156280849566097232605364488133360789521220261176237227844893734005178716317359453452360083147835898696585411711631230327967564685976165165033432230040465999232957828217177315490645972033892254944182590608155211137086559231237299281936626925626322039405711547227188466508223503942957594375389291702852117328908044267493828001963400559819693503690590616907897033732355375238572685013349907608101101710130156188810849644348022031673464113744693788108855637831772616004519345319460233534273861242324357681943469189325997586742875173237542102817992427360633904700561472183950278185209394916691551979800176367881568534373318010795669752150313061563355983561888995821998763015258296485447996199646336747041665305339715704043952372498723587666385840497492819980374214394774706173316662161119505667488051260198489551496770837903227261147279087270668084746314976782033898134671702499546452181065494299062456697243878474496946346689887136059952187384217153503610202367678326664477164325144974377706227432457688600591278567728908655686044365291836089148257225636543365666539059429178913932529255154688703256014913902143671565117716505349523496592159076993706666523112800811546066555781753679754066978605683540838783093797574494282130993065742434929963906094227404312133424072218557434851998067692623896266840238819769635058484025830580732243760125642852849110471360350689472293140234244297951275894902460062953862402180127274577032838909974808221275153677619948622480374038092221236729400777959180448194628998279061577955313124062728220450820058867333613720624064613922923883423660462327466879733036021899753021263513498840314539283515490716068026065233863211205400981834503706154255858109936968445055502245088524880961555225448434332909801620094464378400107383800462664990895614612667208230030973995708069365586517438953922549154357547056401346151148303279059564597147599375528242932571726311164844782675904193426766204676873010712424304005074097808774314467053158653009269105189496407541884831601334410629931543133788237743920506991771774041989456329597286781404377388045385088201151161381960513013996850789133727525320282496424705750722225540094091571420048188508912870676368301462580827291551235576422802917124721750723332712486918029619701078766914953118287804174736970065493194073370216410290590857796721043220994609830866100539509636581549787111835584009156529127197562747334052400787915486127570217500873855822215609091049738435047757775086276341284985015670506781384072763228987287156902802995269147723325010893632806604438787482025704676111206315396442125138723035525100119246012060350615082701416153746417701807688121922147184018426417109977548780344306790217734487241229771574936179932930868975487875383770757604944819439561297264861344360466854680566042655573973032600317514840435758911183772350133891444367382344957982971586897170540265005743375542892038153132425512128501963526145350924173729606158478355800668209242237933658464605007784083204147377000159955667196550804946064779680575276501694582792612574095644845484138034306532869457764902432424622290817064141946311412272854485916000691434842810099371594763300420082340870011682401300061158296302023897483404166525648383913080116806276780714303160313525887289776854383249019364214319391216751269938260228905854123497043947438519886536577727432076284558878705413564274222576230844329261829601912877348663464775057868710824847987509545350684636510455447763909413950565285016042351216843934740500543072887103068448192494202546384643324042763937707923292385741470155688569956900799580368085601986156873647817915231849304812670031646927615114665017914328321635058701959784500848279374723046838045958735268011782765213477718579034479829719135250515508508482971508836517991159615184060716633710228905734008398649495814502532451107106622834625886631142113242699563900918025820279513256924000262579208803658699081912720210357236965397340409522997384167732240493179797961739970307529479013494615966440009434944268650189978291654374202140098599717616937246449827861656051610128614191786442571125101787739500456366741701834677221443080074644971433551289147767297718462991615678398081200459470781386914782023517200987761086781494520140474616721235565711700885018271663294624569225368903961373057060759782785893331928188261033337976770202070655515136868709580639369996667497290293773073056840006369365023763193129965548916824267987796389239397153799456688908044274407645295681835071902971974934442290152328482200639097127139223524220860857808018639193077367924674007695333549097346292224376863856022017822998990676462785539236898026431163348129676547173582414221309969528502182446934226032962734789867792954378687356216587872466800260924329356973098666167564249650783132662167152569604530894605953082636163038042977673495773118005027312610140347057531866814411274237878759765406270626791143708660827078247750802547151679849817709528931429181896489309406995541457281861294131562088781346668607319553061368612234357016558149948027431008155224980586635702633680261141839825883768198032910372827050333683012609797957763250913158660713625789622322322713461761476348419195225859810198368347741828714904154600074262144176562082906722069713523795858745737011450331483547328031717924992585355193899562628442861286493513920164824733554086080721299019570032921091481742463249090650968840373716070584436264029215571404017704545253871304569696796084278292642427626789025025606223642343765825915003955080636455884410902556911299479716809917744430538865316414762540639194589054679761948241128915367604753071609590516233046432956283792150313286584815669225384299583207611579155635587683854750414723138300341911838628522524413298532878177232071856434984931372195641040577481010513344668723413823083439001029451688056119874424487310292188706398089722379204851331935868701561457035240082356334270276973232398979219327940470419446453821754321842026169516123776744278508917969026888407130370268656306294383930357712058147125760685169007670284669578308624396905886026789346436805520328726212550617119753724616489463148522170921475328911430124068720967817723995113865410254092251814280938152973634784061016723833215780586689147771161187092541100886286616395729994195074544124265917416653936343521994924084344475313804305576246999949952818335201558835845351024073762193143791640967585828352170207138939667409599045553630109016452563317114472256021870627783554313841931936946771848135286129545423315352710561100884039636541688997478658773934805818598972059118216267697263204960673873213065326024193834077380039799906924508800205283484717890853990942367643715461968629926228391379353003322254407309853968825686498248821278413327999447570008658070631434266763402708589258107549328220855034798521515425100929512013927862620378819093640750179749550855932854782765515641274818497042347392214146981888425641972300876729449291944929859223688988365265750658870520028470033497709844117276465950685304046353930066595838730893444479198769527572111815569300320971629639534746441846984482135646388174167813591690524603640790567987232543752184456323352004324869388312638447436829416135695251651347682888518694827669326301118833109639214608192134725988143508433134775666205788629868995130671273143824033744434949492585668379152928392558230844672956663977388299780666204246008854148745706727158548909978062343221698011110437516739213931465714000286694650037082553304085362713937068997865368354180822748098507142162581649710473200238823441896415185753732229514282925473603914812197624992222262953026093331514707250167427855567460265288708072293194368170105217230223622956946929930125348145940494866970494017805995987481235339439579332739080554211073456012764124859484384031276195246918407615994999343288976951500888284192623515245484215579274175793155024081252535562522525649471387329659047420803539734476027170986067668438868332322465359502712544817587341264140612649537682214479150809739471803144031762888715711100551138473542461276214257452177118029550335838341014751325281147461201754947175212537207224084726236440515905946553112513097278337643527706286316034513672803417630584833489646385075631451899316615802249486473618906863580817383660831345450453229784429402103897544257368367059935826737122236140030906363868854615073823146959163240645322662416082921349898304929736360433831803043655187954030742789612939143366613160846383097514120691650595154951361161316808581977372262199949007569806604350491992677356675771165961108231148876690512487220817908813958780073342052131761685838231869594255451239570378412148173884315614262244022488424164274148660521396471908246350883676212813539220090417197076687311068421157618551179656571476115815985626427255159743014380267136040243224351971639074221639504244411486772884797189995271943788923596561394018829021558556794342516932551493275017767422788806365425022403587872707494280186314862436025745634453903577481812069114666384156981706034871914406050081640472577737349869795243063986786658936591587993705821471417582712378251633543452667695643172896624706451934954049898279611427953321625015787556442145082395155514317514575678543412764648115685875695460459417358004249349245902032729941110536959398392529922572044110899283808994095320817674218212743607393494976521280533160230918988432263346772677066726116591661589078602167387561234574406539508233110533148931006424199038514604625098591279886457381258740837145282511526642399812681078810779149172032595039648471917900176996635986895871666367944434770539928915282800517996351043066047132841489007411734836562897057728863777980283637110646350883135125856376663784242772632158302728078876964237129697857151679522331796288254176603208856493180875616707822977560689005435214568821702470102011489575007806599164540165579716579055080888820637368466775163803770580437154966379716660921242488289418878157948969712009030182099444106166777155863767547879970178683885205133319476583544679740798224189300050015556023217556937464834298131116956448659205024912828589929716540372190177052877309459081912505502235126453273207542565310068538556274695904899164903548451024148698751724641807208073366355803683555263290898358079715032056072306022036861337364607805962071494228602446855224812286642202684523101076459515958458830010464280433857935569774647665242627459335114619849928702379094244489730887620184212220081033287070769899871216161516039413177182016472673845572312164003831329622054690871413852129802705043629442722358746920848879076876431003148143685471941750875444289936547374703125188800397084531707658104497968295835408632630699896581356073815160541564783789394115045585717160127286473696984620763238641316034319263704969837342049466513269073035063658306417359111898369908885299852889154345174715495012295437225156414311946855029539989879366283391109758866655673485594282172255539404000526519756932588852180717374678539503841924380591166670206331569921913465895469950011589705683967429810218424170902614789402484640843611899214717119903618523920526868270139013545202436882698091847948734519042519725887542840412658075115097362397674770476205770241026890114774898595317958839528971519829441593809956367477574013520292013358544208005374488328842401719101968451392743006691231941505283917631784674421220428447929631428832546444435129787786790587600360569039256420001346328570956098276376742567530541521972410979827449164288565518107585140692940797773684062087715987221008933625743771395080808435142027145070962444122049425345855930236662229909998361378134728958638587757195349049108194264571798494136906508802986657406179906098688244843572459047914111454739024293718539540431403251556091453359245029019683846741979228539324018230480198947246053946939556803977843240069764112970819782673692986689225302976556078990427164004416617234445727023291262437357725862234726954617942011298618316956783170362978511175712266268068535680274508896622252133554172788486975669624889097522122758810361442084032082520398027002684959761131898960385563957943128240546644162355156669701822551566009323721523295073044401458822618606609389897498719909090330108639960518766261982887797993179743078455548998012948779743549137846683897129548033405137513714789071778802336708947203953598871856959662074633373214736271190880281472975493605882548323780497448894428714824730571385840428066437786569542518882456899042625301591953417605871339233039114326601009339562971160458211872236256090288739276497921630538995385114652721220382959384109924149623980661083724214356776906076231227337170096416593501476551446342710302756218679390485818640763542356945338263071402836079768418211430239970128352132269733383202032730209950570268083852718733527748701300795105788356289321408286164186261926628900029861552334827890446474174951941352298247486101869275466680495645808386320457264469760226133220989280206812039917825451795787746524832274905919561645175388284706582486189535892296914080613322244272902125680161159891786198588692772482906268279715397086223813974464804804253395043398518732091910316054445303929606686191461885311126737648463446833467515483492764255222281998921273331336557208257537931259805108271818971825333062706027749796697849240424966118639736776973480697923589106052744922836622824030218380121410412355617419828268122464823032786261610485616310868425530126005993630985284058452251032829321799956777623137479156133493515227795569261322445354170799738032015645867349399560191247265607417515964815030395031124647549657940879360376683331434826834092206473673897128604989220432838809327013401531300083708870570636090099590027325062602202520269926553587200359698654886584641837896075262346804958839182625258957982043740933854976434036493683670466391328575808145723715198370286983195247086271927046101380952685801339702785129132151064388303392238911391198307960107381902751184147715864145726492268311541530180752039466778876165404752687402511011210700625458564381230759003614252875331010554698739415308163340043249706664796812316596669380635242871619376819796103247845979043836163628801718617720805248964548594695444300738692871563909029521017456348490027415745014606887985090959136206979079333147844401891842303581141158816255367810546271290839680453864920359198050890034695805417743475818687821034124708243360379810366698141018884378809176142794841980076715833256522517515843570828441220340369008672204456205357796977971215193373496711524709086274129158417577143811112081008525292696360344696785699452766073434957337376581081383512665400592795769417649674975056366970846390034214250318935988033977718761037416807448953186442871587560013260605363731093661140554968223584039862336129382614722769106773418006481277273075085879757622755106979555649002932416630355111608124855887670388127900203609543979038281776095211367314677435697905751461579420768299485620443328841275619884699222565824697884011846492839828229488060474958973441970844112323015701929907921662778047059317157139862971808919688582383360036257392095091936203222680633758378101766575213499324142941599703042349421970473146551117966610202428789715956807772195850655262389471530372216085701304739841329935112761451479505193877432614410757112700444746872774340621674864908672002178193233094639234473185696406213967112180587882409984806687242256462107674106759170186874254173009722229456209774417342028503828311690290190212472601924495561822227731049860982286787692161326711650497213778053473498737025292486155297688689875845041683603111086406647373834376953893910732982594832195246278375205977057334779594235335910580698710800990536308780467714294744848552667144415407366097368298504057444042339064743295358873526400081507920756706629832200862793019379227580639845491817438528202522770228047454976644859444372282345272360528742517690863137420517612193743845539715601824971011103388607541903164325762768168548183331972510717838783531114690592426783064617058312460846172839661368775040947101885689806105087984819686065978275106156272820315103368515084795489870319134744821131144716670820817558738899351880417641058592341287905197232073939098173830622647524797741487432978050606074670000060090500721571283284469542869875495479060513223341810719223439178536576617374374739133736219605624027156017323502813946912662929659571459845060497766473845501612669002917185976989054615730399532878611715364431207312255064844869805167767299066897399727381453039589074751641584371037473525398314757198424374244403813190161262760397199836060107315491600435323676285993322172331618614821983233697478371353492935418172522947899171371959458597638636664923967243759677597527155660391239287065904889010683765902740081570439057976813200660033544207124404597955996003151433096965592223998189251784846993991312674751601833589258268048070839008992102997600090106720624954984660762531991030801311281076379064246417720780372941987484832786451650728646696122553962951992336799291303538499878819736146208206333869351575315175947941485888548656100789456936478731350154603372214880518957498109437295069071128025041299803043877175970455604045065171517626257084866080198492284890746908744324013287420128959606541234726318480299079050104790284164210022577097766287829400487573081220548307947548905581548949365697492408540903015321319971371458741106826276639281923436677871099895895777954892036189330947529161463052190422626821353317942164211286446808162044484895905656869528753199345883419446700887633092605875682090081046471850405805242970106709179907262409953602629151004089324746253639962303956884258514387287696216823775111987630226624523225961903349837980558784930933372831746581861365348510109207297761089932622146794127213774053990281954202597569470626829927546611721151679349255613682241717744844953988509547630547767802718682377176863274918593868171245976707857137708820179254320232289344084666072396818029166787115749850563010669661405852559100024656381486244603151757999772591815771618008044153215405860657795352376441552931052172440847616794272362766398283651640593337809547452360236250518002107427667581745631961229547746234631887421432579372501831344817204070359591659347637743856372174952653189583211446292467347838027591810668782974360212597068067134791491503333580050152914428466531425919972698584998907920024790391523265710718149920650052714557273167857520066524303363698834745855759516283274760869989746928611755434768544895119979886967008111364522403743470337647395526232615327322758621049523014762220348959503779909572680542696515507846669059602089280743102336592421038556671712817430899553717342910028376423739508856163449201840183450837442423753264835185116976471893759795432785634545893596314460664617095041728116526604596602477970442864458784752248257441773146162396848315999741815717232236435786407351943197845509192420850043456681004656696715848776277229524839361502722646620627245532004873765402824573568466950243025879986031311748360590327721478932565718557850385683420932735002411225298985508708283635269818164943584556695977802092086360793077758992456896102729483308122520699830727654126005198136494131357572864742483605489361793672773355058474189176036621195619881870976518197049915439483361920932284038339395720654522352838057928351205931270342510224690364359036721420097561289765266487875901809711774676488710391498517417954328137155823161465969769451580796725638074187991885236135067459515350925903863548116682513680248362452322419393787468823350802887780344510899194826680595187099650603255871874465837427274072055768230286223350106311183900682838905835689033453055386932298269663405897600586960000138524353849614730532874629931504595435490121197395831215498026115269356372251824217546073430453380376211132374281061334826519776678311459633118289215802464105245424721004890221699943423888370582240791231100614443346693055099378885641197073043557699558130541829450007886564724071350606185170903186283034446681742259211896522464807630512987803792691362771559444813103923805005947123229620671375435079276028128725943944091741070145998967975700765903319702878603409708336603270567979146939056334130807912157373434010670099748178230253883203856374478615124104302381690681770593104590875398771788594614863443401198305239879919942679964993128719759303802399538030104002873115230230184615361549956018239828497349879935982939576079839476538665651525836373721452279789142315849656483480957369167381844334758733610684772569347376044729740472432077337417871899525334067366876994558133996988315072474656657778868428544844994525566360682605050904077383167381019701411967203980082215768737114804864873682425205155285010308786066080153107656962514365614061451632667053074703898651691318789741051133483914730207900492385479164490644174410848541068556266839424239491713836416512593066400276753101112757592432650400457860535604467055181269915872546950231003774806832402034487593142529929337503464215570706985451463742831437381532104361362803518003097696404059833047741959650495359793184468953939707373583171350788996736285451224859143024311229322321656993872383095824468625774996774846138171674117492501948841938955514900916618307036747394952165233729175447492338104778526502898764975313686706583228764792808128284887502157007281623060985962258329231717792670436198906365524851743976057014371018035101220936197512640462198921960808283427952210737069577849218508928951851784102866940776855579934831706164002938427335889968758356709832340902620712135897393788997211039790077561959838835786262608582077664673916902657784648998888449186332369105376193007233723651519752060943465938621219945031198838223272161562192584316520267619326049886823166396075141930631674160849668156874415798005538914337422417859999552937955310073820894556871746605454820030813475694969160251003524866096406035528043066560678451029659527997855146688224136334640973424044209860120501032203263670260291215905293193449887397358292091486567486661502640744338198790314569699223405072025183116378781743049880995734485415718347267119844552064606832817512379376413503180917119931533696043509449230548788953675406678237760058114009529797263030160356527823800844253417893246379608681715775443537608376372353993538943621544516758240739040981137525628652510227221704410312010467337473544569223934304421714956114745364192141430568426524094070288437874334440265863656132164190704067203686239910344295741718099819659020642377557053047365696766325183040752706463803409864135292525885748231473064578254353909794266199271442381109905097047752537699435276326675053345061631521954797031167843585000966988515222767586394976259719181346311097893883971916825081747052815945683578217708638515304398525431626630142632656994369140071065562211890708598326859344800362541745696903318748782162290914629555390977233569143312630587282487460028345582543296877549288962461354086105812907846776867211659286368225832476537602744166179806597617485653974456254545920166444896997284457287364125892285226539784776243184228193972043694829344613906348957897976564041249536711962551419677844309809899521949891356123925418684688884636787188850044619549567335652456005777220776739271757479223266097835608086118775052266370461635235748220786517911661412979556672672183744627285074403058031619879837795109177894421577845565606032215884644525611070025343756520914965376275475541052500085029159743978659141295126410888505686408237256773703827710213090223841931685588169908542781073380218819108524175937670333754310155392396803705278876409359662896737864650320986957392001531233276512416842767701442691779190929207676947470178214568298335841814552415160540788835303578862489785256983480188725388533214162748304970715461963607453678386585288216777230795611885897141003610710982369184036665898767258931676129523589120783823693585724580440233089492679429158553197536630630496933777719420018095994232721734290577523864808708056802506863326125044949875433356036011557757003150631753324578937209753507218137843781954490675532108199150716252886887326887401699351273254866494059753207185768100963978685806438136686956624007287318890180880896570901678851648815408240770136309173433491541714053784524645741303744254990771438549480517044512428292121223053035072080561743931598286003012515902660792376986722877562666747433820698444847747784713141867119242941180048809021084383183800556313028701112916404991396962571294930255996032534552478626990437556881394838065492617752706026234820047737443019364173031220794104390165768380416318627439152772884107405506162001941228239113471654828814677025057344662017765825647712581327506387719243031593995237155270974320979505175196479067515022316075709101184201726871197717612084303044887251782407422848160400975590894701751204780532459974318512099055819095909073023948180781217907981876562372869734619166906503199083049642673749611200764736057747438189271698358822018686045076088238792113550185596870846126821044416582791349478345880449595088271465672285681215289355906242697634555512732970398776192700814859502939628116641854316702351763196098194135571339008965839258509537577858909321991553130823077464964797352380608590334668494563737225214758902195526491680335605388867239960722220600092195727320025248468937813774675426330320233016866042723284881121780775428659864283358958749698306637059115749671582261924039811717073736126055307841111409991197603222738758932631260898376863549357654363807846150874003032486783221337959703025303642515219045130577095998162306533151960598873892840578022928987671751918064842300193922729604191418646822989639902066181945689352590237532052946807808169358921021757763517507384042700155274904102279867764125219518456470726269188749016159454392327394184748971227431545171772019658350580631613104803758105713719891991583209470569731849578098977074978413832563615539886862470163440134729212778222886556216833316191170323043600268308827801808254566427917576492381711906703864220878381835847171782515123931895982742681682710894966104378858964475461450657273514527338588975265039489016763053715898116652011157249553244953368182305133844688825263958555219035520065167218728096373461180895943314775395921756082016834719372879086965398991474586866806606131336975275297371596303217119156650217868348169748047448209190504865719023135048668738512332539097234635056622220201783130770037848857637738933522298600969665730449682911018152938394235346706759953724759461762654759675976510719512521948714490071613595235913436872436052826106490159842626231579657467862355822924416936130149308465999081732043724057558363818702520636674822166820951872070177186354136046788511100958681806501810059560787000761835340997895494949301651401737561686543444482959612852543212473979721709873176813290212452304275041232896268281473652367139278923536089750301102510114215069479382611456615926780900079793758683166550414409207434785689599784192781155660450421870938880691572686771254508667384777389940069778150660757614551410405455233947307769352955877914008106492365859867510812854894385007558199598000966577752787109885114505696757869665719328636886177590469476285756395917314740461308051356518031945341827742290559995144044725021484807434027136731505069524816392607682783067501182079111510114504101760727403533823585444283280646348975163807629128817913533506735425586668380254559520104099408223821754057956652479794050389336432068832350421378275598691731279434524051722386293084557466919036912252625373083503596227979480655567940942026378750517936862975684501778306416288243233499724780893418909503869429707593983110353514765185802684528839104821708412489992074423090685117896247641311934185047393597210064558480463266640312943698652095007772921180516268349281347236134141229195394399402566791764889897178567023991262159349379212526329509096682230890990474613448157909971878652290006035914752230802190211897364812230180533373068857446345677510090234795064395071071056105418946536146489803573567422302249712425103507816320477083440868327630972564736628931323277202708734838229255977949871106225603545343903103846125252849929878586647955456464235603721856338550575813674981773455549567191732994383004591786887057498455828865471875479878572543748029311380167285010025528020540902019247972864823804194372162795736527170589852374884965626361932968232794706790328908913240703064336883676349929502961194722393145146674405766926917051624220119045181115960288067536669892180781370324414780937488404543467837292024524120094114386160707557437141008351313722522471644344319934317297752272705163729817325805131102374604609898957730336515451620004773383858171298378787354744915711721165625481963613433553254638114397924753468546984022183230094549854674890778716405582762835899784106019485969241387969054939757850053849011360617192678745150022997126105714376620831255545408147676860854454990234180787684558464570228766259951412693143466120022866723034487753988270858971747055048385215424989158312897736341100859840709454466640159398524245419798783099339153298965494396040897753804989313717605507582081567055962826002008281190654605450685718952136311779669148335406409404356741901777173748025309245785301823697530072036003818583033971949373967310936911856635468489849438625003379539715563590066068247191886478059487375730686878216466381685144957422222704911495261252409598658334665822450627736922292833984943575745261955979269221405832510477018202759331770136520719572286494034212920125906675574297470370518687263789681726433872697323389400993436336686521426538913739342146115496061476848187335508456021610262593180224257319194686927765805187283109452127286955934608219339101703649703618774612704635860040615734115473813964840228370174000342705883635288231743125196519627328590039997355140287674482757904362115670744067558113580629472758238013742836854120930913085059166056181988046126402058233402030593510716389028086677282435773814500474442426193244534925655207192136874703791369059790265892501478576628839105023506550374257921048584796439010502757898411649618619316153864756258226856714213569958642175361859219836366065107247802435366934761683289453248945954716361884998695643611679936118866733541035814288092769781831477485884251063665576842457509761939733219330954597695445672562825071709801227376253829791116616925762682364001997464294419316535832898931815863193667581533818153547170228712650511225262592957130155474094470480489285853862696859005634251242403515000320155855187947735010741097982675146088358373978972225853315087976367100767140661880170396028893092627345357843244813431235002508801212306268118113609806088175827882041694765074718442654480522841811641128455278881961883476097279486663454954813405331190030440394998727331356257237689584511861781940852631580448095170591806196055581872405954145863773784428769522219058649076327489200808189848875414299846636737973459650316757541695265431670050504034907251359923626683691375359643115131789818769954741743103915305639580295057644384118887038827834990551998191682114125836641739266192529906451186532947449236468865306484663682761321293771280422935457703273740500602214839475238582359190142470883423854904255898317462939926700177179134750909672947501746040342646842067310881642599576289181654538231159421509350542198869080492216641420884117205678702193750795001290976691274745470151132527624327145254902965530750741299850940525740236923078878295344439209073976318284200722918076131072840871020885300952760129995978660314791604737852562369712721133121880125647270278640185971544624745568560697741425620290657699283775474396544880952505602660162719462007261618553283026246596338675704386999589765854874757705577795247507441076198249940761152462318711629703709832133868816303486516013102165865947183512058736689437686197877167966107592337259427430995402717116407602620985548604047035443817854996695601032473376377383165625018137283681585741327903825838102831999247562874560587761681179532272072721516129208391194546311234732342776754532472616255147677113324538322283027640217088746698311545865623633967267687740766303276952966470607685622466874318425917747092479103060968817386668678266395279932776320324776934198372206411905133906604243596750758777059181971731202276949801650968060490008375429702753357117938342725722927944058362982040939406964887729934408118342944939838178862654633704733788002476109388442107465840286488462991949259085723137423273587608416811176879460526691435977910114054096967162378126694394714433586150515108864719536779912755927392093540497919201578562301995496811346999393524510417490626702345774104198035062888899313828817355248418080065557558357064059063499703149608544129362763143193478493955490418356372334324045651726270240362415917413713980732469207425274270791876841148016963307221438993888488515144180480485902032616783944916236597321952500280979438956088035701068194331938902643648559712286929830990046102400134758300954866067313856331056188075172149068566688573280696024884241693864041700956075507093224637809411960225478769428167700436230870075420542179318225351034000799143727519567062744989590876166885496446831735684891641960017537152393207905319223286392041482057890932060302686857330585708112438520520222774350759453214272949665262125030130649070904209484915963712920168462990561648742925105046434525563378965899490540876609248442845676542501513798598422941673717179485390098027153659445269445522031077010569009635410583161427373647418229095321700013012933442050090782950545023022780421017512220650723748150663687679556859285754149125002265620134303833509145795825141968991555377459725566823240132157722587458771120222738606262310909676905334205515098711809266434297240604647707299073284249234621406585066275973774031979136030418811707239059527584733415747248986668413082984983757249705212098643309502396775537427177393069643819478876803966473161712152227695793865370100949288272305795493292198253717889020592401945396779931857540058685835885060005599469260260272159041921387148977038643558085767266412712002437427864048532956606384070893535760583220834447693869867207717957709506154738778161403992695296979614667467720795314846526905463608135495958824663453456116942984347307816103535395048657509953931806525257475154401097935881888300922700576070810040867220109708952912992527746388813566349542606259957582300384443634272606217830364864765806113340799071996444506995297399735639236656149328320835752314031989866382037029091929355250062516400657123558359176396614557174350344395348029080618391255835273328419389956222736416425488890245322806221726135366707292813322317043483569434185701073525402979190612985219394140912952551659466395587684292821437845239722744587425759878480641664146023583251052790919755320269731586404507636952096370068253936618016835747881380899793271698405940629905447542856952633734081917138186933765539768886781006799724856120469432066276292790759304470510815203893856563841906268542527827855578251374141085315369169525145772870018267429318867446068149640965607046128328268000415776557871519537144956642367356961742148639860619810847101758135781751792868674087801128509237868732928726127446864470865998922570276202685970984222599059090689834500683608547829047633370290426635151840548842261225796430202393371088826844541099363457945992255442379995860342565436858086761189164954317361176092310858778441221636073222840496940795215562123651075118392179087668411099736942000535437717439620573333200032742253595749686006689178675322401379138788594230061930768345106112094600965617027276248297436386299464595065900021826750620022412701369653035645705266861213371132493480873321518721246252379268269480955682329229632681984437912147249657555131527168280462378101826908214850379152411282584415500050497599780651000326505151866014125208521488339834091078155670008049945727337647847704914255170036505300549891811714636307706159517711017603476873601370419391574956064436859618362301166757042485267603006441482238402133645922206581554340047859383920331175200614974906183518845025203228820775408124035301464976029417580427205116721281069853512954126688079485976491324294734803158076597738721262267183787544952052753321549267048647681541308211077577430112135609533799908300852177790333202278218553187502899645399532240420925070190329408638195761553060615391610334141766904776501861128677159885113639380827007745247194914926238609943130486014832452838638814521056371312430440928124881014785663902775424965678396656705883217859979618935853533173229317436321310596028999394561625303025737266266447872930264672337358938087175053447662491863583339705946192250143302890219987690399944744161204284566760746698476812893326465032175999525870259440511899868978654284906962133519502445826441209509454561362282411158874188655633436122177945789998743383718246908774855465829782534178636383567870122591572516063959024240970512475603672688320799839929287432207428904266107780104632535971992903651306087122230666995712261098606348823728026075904948622307269512792899939807173747378069955917999641394677969398523463251568754168826000966706562876808292451955318836043093000279475837073795238244669007021772866712522644921354787243088277305184590311129834647198415554294102774713325715616789826193357243879353862083416002417581203932669961699568814779848345285757624961478228794663330458214593071237979282142544092723820078229282907064534110860087968413464239710773038884146579601264969817475434922299902525830811431109648973664587895613151561527805979833558290485704985741449135354719747909727513667076495088104113881303015106569459981546463555283234310386942623771688723056762874099153311541212721552839963615031654248642902887411544170557469277011511919916071906452700078247907571009454534120641166865687205047068794423896502316026583236823768488389718583903913331096089494487361720220006280836090079294956827703863742297302950000596918585520475809750221771418231271554046247208620699978559544210441100263825941052409144390757820353727590244001017799439841083985836466381041478108349027344488499946766127041041691238581899800940565370894109270494166444927301579771552935315905371031048564188545932666445139667994756973750228206104377087390015378197793868271999991132899110139979579599369265883983688727903941395213474200585475689856768614273961386261548894342407730919433535428396327381378168766811058093606169575520040976662530935407779154766998538854328393725212089416263111928545053371894763351330296315205079072884998982801565518359850695201457772056124554931476125990049545557328030878521196500821594309029314711594219501734978775423220149059286039606078810209722886352563208283332087326517423025634065735647619404981944702117258573565746438135129836518362251176750845585667426877199768100900765438583028415053031351638817020646601187070000191307693262172154891693112979598017326153524663271558422983972456461711570831684788863376496558392227250122608955357843416406606956870584019278250482517381575062975091314561584666345569483883375889129370043864748348483228160475364074107313916789826773145044093896103858400666041671056780576394051400835650140827319841019490328944866405242471785257180253062552714411412252254734167083951529220489457377647418336567021215184164294134293830411115312907077659562185091717114583764535398641117768696655775184864552679466483840777939270436196782775920569103469582065694646032446964654982572031063538669704265474669662116413809652630864602794901776325864746340728327418360693290844605552387369725960873215456041084767804694085977353792910351650982533051372092683405187838808864312635674791146561516745042109949550368693221643021622754673766534812751409862508811424031430245313295204318406599569320167476212006580720704645112955194745480018278960380975314857470542114277218646703262389566689270827745693037185967135911131159221217025398503134472085706054382810479550454233058886219686929686438166403643017858842218610928520701216083288796696549609480497646067686027929159775802579553940276595973569828581647052662766235989980675706221261923069879789477286487872581061865742565289354329559848149706984822809777571836049476020602893931654991061833682972419726000140329021739625178303191175808390220550284066298729770244879601075359484618049671692634393567404568797209599594111320445554895447583133596742522453804222334837202694966090450890577774162637291287472517686493323881787922055533965160973080783614562889900825322135390784299423712501916983924723048055446794152858309850499646568753501857789998132175228888855694246986945406945997285924519130195711814400684183023998076638475200483281395464852642459727147744489957906182839447005906600900415596540147937871554727902178754296795349870224747137446911166041772939864648286633578639795299745974052519009498685743614184066167288234872780352254157389845330743818300854023237235093827470041523677043699382112881198762918246133260831358389154186962269849699949950509933123638104371310914820371322770569110956380251594381593498966104920828737990469426708670137118536851782730877364315247337141257831315994232498333174376689348863208432852124997548881758644169504407018507267703911881596807851855513025194702165146974070878985064819469157242408028490082061240576527551677762139715539075836566516628240793245142178865279788614025556650229530674099500417202298858054341514276430307859615037307246801504958016293690867804922982880075690147756266337672765535095301837979981725295776839385943605841273353376903361776074435807268296898968194680362017155113214178862315886999732021881676297175918632348118769042178038346765924616455447123293369247274717112235694245949866952991458124738462281544123288550087905798989238357305248375373876073934260345182615806210075485886783334719530371756607896885787078731247587478919591655627499259066339379075726909473017221652142596238220202387950431112360453221926658979473977942416526309283470614672882425009751028471110949496622051319461486612295004473269691699609304720427223957318209375576863588953625157496872808602959531851061997527921048031089220708322135984925704993258943867178990383977881751627383400707653224155944663823213362523630415527347584356123438582485992970312081427698578303864165604227690266651869334421191524992511133161749405580635434291366045319805765197686598889310359300526629709789683494571990460023512237143793500943113326362959948435771736788734483504321408825532019412510523112623734138983207725156608431831634846209141072409244687569908725525082934360970066198246607966738609081918587764569754123700714032680324682354270135113908324462892895391594786613772236802962750012882115842441166084374813243224684430222043092786020812655704728157601737661036953171197988623565009188214466439611562495048061667516408862453269589345972828381642130219584744430422745217643647370063531512085082594066624819035880048314892522705591542915165662647915650536257241206594392352571353599135521719102156231760249454426000235086973718391713729375457528201331647645609159635296646637656461297710280055958878912812136202263004661914345100808394652297954349725364791614203878197994167155805992089159416829882931453743635209087445148096813688867311940333855680175045708777691406765218105405352557300853338501196280680346353577994085993279704518694863364012712875208541444904847693072975740833304582810286037176400922424883365524459612850713669883712036090638467123945797662638369062296621924057501165410088786516783445305619984329403004512514760272294214245878223157189371830439055207390983489624830317638617295203010620037011972996985365998917564323267995209120396514309638905495514083636696772781280923393564039970117399141601520282646924075034154440200414238712929720639066631663165625327607839840872175443405129437139642845606833610128903859078656766286613158555295318040838747809681817405575885680397798861761874949050801496531146287290747613553809294174414381054106918657445849299639373227866589630787319305545217450267636665095502010896646158431191771492458557700046278697605771103492011882413221796758586472170141593342919415533084157149746876807832856919411368655742048865459031331692097794449686697843884950356553967014321680354170422804627750111302064336138299889401209910884925930582415843095945831390563197082193675768940688125833806679021564359820239091895114754257991439839836237135985823735780475062432298999039263037824422815162427234139130648876275011265002231274799997524340801357164747475697092023509128371073024090305260352564021407746795474666323480424160014939986018621670959514737528476978238573210441166137053705583615875112198718021509838821413561247913492074395134931196729912403446985989600713236969799657757817563597201698781222223563703803445647129606747297138393893570412632947535334914881877186504813744054258587322132448815155200984493954264234043789095839243843641166430888757966942941601298212160909734196127781296092974597560725425941904346620090365475334965422661520391613110170631453606586873722193632166940154042332782286586984861112826470394759698132708943531626878592518101176202158930410922427238277363621554561860084594228671863509848015135988244117794978369643486252602376151708883280371644670045139370100720215199297504674624988923755728202742053779565518375936889545331640814024824042438752002626068663914409953203077376128746426268354104201002189895950959130800503435660552905399591896600589319198334012140536191260867108272805346247627468574285749790296420073085224701330526964204933434764932625584149439023860121406646536676083354862345917501053802939196089895778756311440482267776923702507609330678728605807888355954652453626402127000058959077048117826099122767153467254415337963453400317880662593749921080135135107447688459282218335624688284951311433140575160876767002425138123513402689401436051111486165668515975424505743476608802363217628757499386814222740579545162943079087738856301029139537879721691339621101435819711270150280734140256836307998823787462319804460306729630375059491386034590620280947670464239270616189113088814866352841121944079552487344734226737508757170922608010383745317442982267500559835145515708950648269385565020479764773583751494895789752002444596857631870974131214637474203709009099990742621527147372610636879026430390195521477644424480592416463185260831968468614128210322317056291127851227637784559429274518304983419057229775975432475762302248052715589580651315938545262062712165910503628597160884704522639877982014384821350635441605434779227541418571511201071046980907093068238072721785664155863586655780673301370044745590070843877645337189689860861775098346761801360009944048022038040718254087986414706089278020691423564424014658239220900125835521207965574368535640862781284210717311623008106666338933759442836072833605398054883751171584724531110861127138384577466453814899599239156746106362857283900852623484198434578240792427664874856912082452350141394025018640173844556004097390123768506565276385421518804634423759664865858989694291153153319012481472087537775228192418393326160891556165739519492345543490723795542051946979751791259149154491706476483434502531261435401240709975390521455994981554133210627181851181366595917268551807272808122210656045094757910856704366842883261282820644311413054992623800029622025524139644753524899005166950616738412552882407703196395373427498002407240162382765554354613490619460720539071275043216726473147701724521036739452474091250710228886595565287837407574063535029668040859362005353306942937352173335269804899323522724614313095641244118757622009342319452476353366626004687194642071804689969489901047832581927532470390615946501730641265424970751954088305989684830176766227517597311558113842084584902144781778341379217667998106220202810286781775696899521809122921285031389895891682943520255785576795931576217174762409698553330901431529094496762923492704562445589688547511673613843927167940746654988840665485177816186479851453181408885717956084795636667350846837163158961835663658124866626843085412324983128793834653789775152410419678881170900067949946318473362813073722217618718517626562503579353159410134732154812175280701781945732298153478388947296147300407227758797491880291067583521413307322748483491742935326818117097847101439914962710174451224723271856613698340118097802720706302651190049770673479571665264479748174141480855051589949872724397236795956106842996115245677144332454074440077121918731644920521523909802872502987395823099169508592474140613482096902567963269585810908625038905584760257992856711389841931218905639796442344906254326582369885590147883828648759332895823715086953274583100153522619126490213295504598598105417694805282250973095591918449390465558635652708606072694851819877304918400743211708039863719792146634189949867819645194671988499415054335280951899407772801302682402833299124939416175228969155586881488263880641502874594501221129462414871164830867808510223630074933529774337007524429485141254672089026003881774126459371928707504923567893290605649677612809546339765807686391390618937562323894653031980612468132716219877862062251617610334039385588714779479663588550062196867986130413017917010839917997028622158417594604517728240055978750556188955679833071517804966554343117036051012206014293949568078258428776982967163694410659994462793280741075491163080333876895814165842120165563627704799084821856894016180622312007612543806754711953974082137103171783103942926874924731634973080689457658674097968597285369022378041144169787025961634996111811467044450947858050949315562541958968346859549510063472330430130578100579289289574615152770798729115238403812652307803746928213749231197755120444512283081210695504815565171754114627794845461474403412565958834766249489727713324733043204070324013791190169343713354575618198343684670463064589696160055507825413524723060708198147156482482753949043325552519625489928968217667628925619928390757487237417700846230227657762973972709835529419185093841810858747250474953965774718727868190340228779014982756839465013937072658217828125397926830038505002028854704378616409544009741780391172184178110927494387777106811331991574666216235042059682944952727611255727047343611841456836795748470804288959776508487702356862833843069359159696213720337850676392096800392576563379904345411163148231076599028991048555113448413801006990412412652303362342280157843690120566326163890703867912854148831565114308934195682611770755938437039077188361027991315451054651548182607107728175424240487910579956906704417306315016242716464870406380534785226685895911450168511562183809122526129853540023827139443713456362784499156267141831617680766409280309207659855153452905725739151730345896733802986528604895419230639545872390463529540457345113920752275961642129079309394684449464053748215896335751942893316969708536339816713692565061758215226566564481114938079677202851845891758983985803269934834002030651895719788591717415666955525659747247051509193838875932751320621120576993445191361682848356651223843936301842503852529452830973895437590068987890467661896095150912952853239824451536202583693347121316840632765164502557641881845529757961731531503247980622549824462635340427165441553128725637620919098399926616011516279694289556127709471328147895031119977243085910935131185879446553486495958134588881949247426069050161381717693021117726700151154297081536124423444877308708175901972409497164250718757083885349022156975357619933494492480203716410761696035552856861985120871425781379214737822087149095804948406374460709540667678282462496535992054699421657969067381636508737763313423464794190016893905771808653565326180088873997606901646578638398797474055496609562041814806192742394187161834169385617963718178868263596640541223672902585439088533249263418637702688234653854552415962930203523392803305687784941111702007921864454184109926189952586912539987870622822995405271181769779229422736233396642954437145090523022354460822963975987960309769028708159583303409155785705844624876042068070434170893876215148839661490874957831811686067821275611720136075339229207723658600382831129926742398770514961417317743424346315111161782456841077593035595901450200277865508723839861418800123062017435526331897257143961177167671971499972299803346771823012830000961228603533199874447086790615573648889519750577592797719376574678144742394383885334797019134286952454115981647121808721818396572115904662261581074080190262711577028363444852821617823273773465532032719568095908778051088958113817516257842611183355527537395959755372151523977478997426295947512870612079299278756644221669076979849194007352882987444650126497842952164141500036998142782742464373663688656883091862982350205576728266094208939999463710923994186763961489114912214592107344287724064564765636552763825759260324249327969964909219673905055518569075731753191446429829306213056061604873912650243455458453898368665143790791846163136265854663779947665918051999385440244468660397556996772963424484175812638265244138372974640923785430093905230191478625085029226404394584120156133840683063158411740492230890324959328451289014890633425271411865002912736209369593546070543865406846235038666320857373655884054485721338807123151743170157813845644845808233805341305794416955366030623094975405676789329697709625027203476315897587644948171103417753408297484226486843204883863577311057818292065523527153721802341197824587863085529543127423660753048670610862132903126290486030037594790386954576746203199376058500798160942921834298065258610322581284889249052535070931422962365347965231951427517601075684981221126710362322187869067051333137687959094000317293919341589339972530898287170912327165673557450690420458393729097759007310293991260329126649068538355555338301385380392809287305356383450694406296751132421533597593545042581294932280159697210948587681402698234963618827046364591941975285420345862205680811673402096078162490821251289392887459391734958404418059925603257714145283929133130407226703421482114645586036126150546833626337385288291779376792959734297002904416777179285557160362346819897601644130922936048880368828992862451958864245920746935683124531432120250634576816585400698738496205145242257505107475870948838966552968932099783322372170333391231529860048368632836280205411631498990220950350505012357318090736687126836976783095349598209223889178747348752826060277752586164395958191151056864806129956212633114644123568485895652661789671249992912641950856691547521324146503794927043891413547179401096428045000890212730230855153040482638959451096266019427861554457205612680792647914774393140022710262532769300805652135052830640583901448982486990761442001335457416191301096524099107099231227418839105725717477468739340233884196401164794919152092166417664823292038445926175047775762566341589482581185097331738730046620271872513881769219983062115097254040433865998682801858730167646885391008518908126976919360385174033654187211975472257634228643707551182112327308054529623595837644982310741298735326326806432205108048483258994637531695041310005109768831682450352734880359798188825907005949690915193216529187476623892414225157214022109886113230719230917106342519991761933241918031336816072553081828753025158784796065743771546540748968329837156033689498678205186684018887052863285055002961777952426796481404482525656033679331200862716400762403689992978543871696989965340739062551567138773592043504478590058684994985601381159242321979847862582988958201108934116250026274343849439967331288956308588970129649241810158846053834592816892751443799800211199565324158018079749532512359622893471289713019989455063285655089893159843521332716003058004405477462029693100644398248455362037399702668132510467111381152147253884517875552493372336413272278834237082421052828663834651800588705013385545345278237086967975232636051529652581773759085315042747486028311814715851942497054935863947218542046293078078360738029092973671152524493177104922578516238995405811033129845561913048399742569766394622591350949590048672500315224674752766618649910399256536811307268652650757060536073397626746048666461903362318630584072273204389151998167757227113259610587422344231375932376811244896733515166876798317905471283246397622395904766326701709224033402874639405827476779935929625497885396325212993141675478722240483337133429369324756000464095915258159151676506507794898241599336069631274304699777906141491048418214663074095361448129186905209705963017574079571179910986762039642400288588243718795419588981005520226734024764398519711466297242908830271293767215231259988322086081040491627590924327203687180529703818342952990686712068709693736618201942814015772995427073042784537385318745124615524652683814362459715204626392906502541012119683329116111308552402132734294398939572243921593892886967070934595887251015266317806426578727973527749274294455808764031460569375979217601152619850969448298931505552312162224892179887620535109717708005462292211240816550620305010812195185388239938430824234433144296371051639012177358975084292145925789906959502886390384693626873709249799222087637584054387254216008306542368251523243699830737033986174457743873338900493073509991873243335077741882914188866703376280751280517029001256112866329206118858059933361044037533959083537214227673239237511263913196359050709063044320605605142102478617740901053536159106212492228297149140865783949080217505916793240439264436016213156732046547445172369299761975777039194782837654681175456605274679491680467413338957844238296357709437604483346548132286649524221691256930112235776250825824971874671154562176724643718673552140439664788352888882013606581567123130342075377234727455364957304196202845193598689618766604198222620885385635193078904432268788688479656203899443260820326297316569554503325113617707704833459344465395732478075272977691274238721575288308320008206869177506099750657301282511686912309831787724176305921781461031520759874931796947732953386110775028108318171705274923719091274079892432147334777755922462771490259437102835835552229246387847993002683300999642823386130122326341715709509080571084137846548466277628975423584169565010669860463255540358006126174552410921361476947497053893401656939869993545316405387999724347340713002874613418383740929573969122034067498787707671451507609479487396349303028801698862859670577153087192859318774006012710809975952170725001443947858926178772519805738489562562266307954770183655251488545906340099603980352096034151578238793004738827854009249789642576528376284115216447001946358862456394027478498346273808270793740272715549544158292093048381192413931981282739738162343530211283262433882945026065647551655171699446778263224635962273925984624381682133131572509445933287932251883927297277055896849623244407079906220921078075377517817040075860124458945664427388451622116154047465421642226110104325375809550674132070335971974266151720994515035864865354342049184352996052329859410390678520864140867466242761753053380953512839459429895878075565846325781281654610105419855826896070647587442419676416835484209525629020897493950249141084334848308494835747034522932092137642383224857651594004878178364834815827398199302397545953657363172918517211505272807292422154721030444286804678496930069864764887106529525889700220479784152755341206240503857021151983270030409759983857005441994414639354268609430930060713098225907267539330701948026360180231324138015007112561649086861879981640191337006526758443251985836566926342472100602519718032574585057416397563862824696798053994004724760980965804494257410973974098238248548350684206742421876082179809435109471397132782168004000478074187427996539221637781527193510444854001107800629890645538049234455439807185393098467408068290339658156017606039989555974279954981661431969623845298396041681430087330172117745027878608909766885408309701822126107973163640604406658671538361399602236584227755167117039980410548985808455512303758600367359141515799553128945607631397789053782571179163928540043022889269572999729117586310928873028543839134994923423646011777992847830723872402662413361942048354478110979939006225720030153549872454230450254058344543481570089653161901104978461094936010278211522384479495864832344611865379369217802917114596121037207425906224553206151039126106223321436926200025482792727210980137814217301527584803946480157806753805239624384771852282565964190371569437052739136852185057461828526044906069906041643834387393738225805607568351656783099352533118605610989331690027343126162521144151265463265777658917246805035657726248745993971522890516306394029027389351357904507297347056268846107200737346004476199210648864149812233558964368164433566520599406896623143234332128953206673213319285652027424760723421310934318154018563112843047761214839668131736596389871042931892746391450130699304038822416322872785702656634392428681571200962749835490451997697079704975555714731081148888539348492116140035444546419748646051772296912409278875240635530120683659418408321379710950943242267839407788566729950021765579463169930266038591427207993680820784427222772304041165456914420705932471294045434816822172252548375670831569539203905120103930807637685414257008197845220939041335264859095008858161667539187984247443009416878371399545896810014158515285969322487043178381607677584377533228454645199906423447747772894283685796730686697441669413261190814877072872633481274435076275869882632291113830508714072211314499641156474628404355225393812757444309227754001519321152437071222786900831842067858926459475523804037003321676012147705130523452227049382830838357313316377263209707179682682789965897264252848176630419786303530200437689283207891930657876054508551988234784249995303052811292905318289870382967027279974204172871632073382059647483624674769682781301061038151680684794881187027862107956008660016824524863172353334081868794622724684098263699549073913048486707430340550630720653820182345534556399081707904574302145811802442512188100983607982290982517152133098521584856164441681460850002478766808212478521985483092223930570911448938326444044655543818899653964946014014465650010473397415819249265866470819042275498650191732600948216910623181164032286124914918998160617671583348197958815789873939714287830179579425378716864149628836676331230130779972100923780171004833546807357821900143798986528026290533913507579221719385714796187931926950898549642013010970838473171871724980357078448203743808510534502456562336426875761066420649429968652939466488811526340526821896374005376570310269983772019454684244767972267390812778423899356898134385792238755843821160211096729715981174358159867417000278866433741036603356562073383556801297422664895024460170041551442292211243276823170093819717614767870236080965344954394144181264061997517458262037797267952759996568305955718143285589970763624744012960957737004631181134530424333327525470115853082212068670418427651092703621359947276619414813461112656337773975985174279806894705417814181852348833627825484564660659369114646837229037019551478351130759889058679203212923090112164646618296100330491159994628258066237588085511265828801382233692807510972078625605146501138756313117488489991902901917701797835246877961401249064006018571865380479656446799775602387907723171384452069603417764054692050389173233679566434869671100680797642807795463047144553951542904941683805359984035421134717930942544480693633525937128959272572976771143102747597453296811745629894815310591978285095614549042128174450628317312119329749614374477235298465531271267109052772363162001710730105421195500264383672193514409405451223274757595026955141899354915027375746439070358983952849921638891989175073868800976405949574319147737769875119081894581283468702647581258017427634511991989018663660276860254356230226646933337788077139916321718103461534362417787463729168915165676271016756493186269848649585560739780485274191459575523920746956431247372620576298961270782717915076418885208239569886766470526509882440699387519090737855647642980941660583299706955283648588602093656872247567050128941559208284355143625960553204637394910839662979429827769334003928782315345670376511433343046017843597111065693110996265345825866878264757558973370228523674908693183357429862545950907169525187678362777975408639834064236998009806930418896899300344612738135106131172329733973871027919383789072133705588115743910943460424691670193138190340522746673742029767459819089659949824872330625802130143232202848673345228595768777663573620900246992596044082824256516076472399408307017738595229999998142055060885977699127916326821442042003312714039826284700170920375227659261357159603384034236921592211414749518188460872198133044308222922792625390218419631446703823179499733979721217815954423627781609974311469295943451514033048277251850790293357713585239780501027343016964211202471855706912606453726013174984912971928565332057650365750800088781389760526458759284436356089372189820652255924885057610024213974446401452602700276298703209690982285406665696181178029126772651400994345713978261075422452071218705719535416882539864892796213330876233130188413516891250804719559822821243272168321611105470967287427038986540948526783911912850486393274067222190206420079948463689358422295151247194684665550470910780673006549604039938320345383359810832530505971483014871398839429562336538958053416598756793397470336775575155427265181989754187867229309905333885723494178701473747639438734754069201041938157634829646823805644448154049480016725977888356769081995669378394340516954291456752644323003668472427633010016163183335985465801213620803544190338491045321966859687151780452309864949324987829685312899682404267815343953015535920739805252712362520685912229744864567609857763196456358439057442603474589645187480796151777531183943245574719188613324368863311299144185907306655432554002570960048605807693180253260451239731522937357000739920038356579574023904545304922361678273664696695766641806002602595051702942826404332761206682611527413071634043078397777362661739233185789028825782122042030434357337465137121041069027419658998642639027012795394146331196536903281521972360958705147071873930669556807789649030132549297665852418983177088163917354424801608041674589827355422926764607135249482697136357074880600152334107397929130962164045293850020867722440602917693019517842314144250309259297758132053531309244173035967800300160258443232552476059145414954940278432346705498796644989074000474380080690260282964504899260312440030974433026173152370998309462900746587127354754555083412174503148632481569829392047595169496178717930240719536797895062646744399263707211541488325770444152270829070606993082362938450834323645437362306987226255921089587966491768531277296195754519790237064447119337047054346595460047848269565020741348457970581915078087859808916453463212633644311279807111291726288929032088305491272994761060791721184311048521493317546138220472357071710897198654042640761863024004757282217637148927992372795618339416656333852369331970799615385882359541876767686347385555755194246488901380365921487367152959675455401732142581665584454556314996070023500871351006848780073773067185292746541423046962946094891947302796795639114422550182493368552060031740601516973792793346517560771875456762365180722704746015286744762580348357049429270013929137547742416958340933386932453031797009899502909604699966544824507153774097042931216467071156664046830300715313766297674672945169155351340550908132191402364933236711771971579808152316188362594313331345832188589580543941498005685032632323322118170821683576207137719360469351139898655321960805001211854980264610834554459110126269307723401738762342421005149448170036958066895547457413509701309622021604334383702977962312295554501142281497274740196666607591211097219003622080270774207227456825882669098076234735514262051746569676457997905992389700237389590455708185649956886659664123055830325665278259988023052779142413421623983561015348591783469527465218630492387009800881161219807391460658880860951675941948963225432339373098495444157580496304082952469782218573254437773942765997343289290668438335972745762225338370349522575481590585711636569993579250803536361896331437538786228867051616338477018507340577407761260936595152888257945942077172907161163378770056719107925658654055527104649617889727260285223189926238575435293155720595047176247122155785420685346934258040321215120652981602771652713260853336801144360276542040025888752599640716671642851416182794099238102163730150898086544733945287901518268268045505698493784050557094002591927672421402377993696156490973679548230719924494774779691510190447125652884341180141869719831241353809582645494215822384449714325130596454354294551903510707343904889876431510623602564192532589872615929490568453859548471022229634521617644566347140466116216629057218900735548365992101617520015371269755220948368793636115257320433860996778592348790233602150493352730995080640430437330784774152985994153800016525895232741066331796176663760468928343680478669329489323802323324228986643509945826997853500067282480696804655755449751514621516694742199939710180714886065905193752256380608398724561384548365665497429627643691938753584062298161901133865888403729823544040790141591566057010072539469337051328512425189745844449661596690056754886152769820647814946732173320724728705049097363040784731772680304917699196913849093444752844038370385399774559834339248145904291722679713205375557555771028871878720875004703062612868082211886106223441933515287797367576118546434981466903715922458431421185199447188634275819089153682972568947635512953708104394024531308273602886236156794650047123512790891607388616350871201320377615647025604997660277509040674867812101350411774920181505419234042696367551112671768130857433954151998725422490379559706104911036700248471877504135554050866009144832711549904344118528722093552544117932165172157413878261936942790974613585664770183300673533312600897866237592115236781354465492900177469868332686252201830321832899637059394048918105048865906840391865642933382764095277369150559768019394660710152725995991260248004296799333191758654005221247483481943662506416072121993528147378048825910826156410545889626028884830770418643172241271700575462827903105812572101958754986803961605235965972157817782363204371071312515917108427982061704233036862614626750686989848551168677859577114902320947460645950199812686216982059858120554128801552345117501592269962109691776151599390199450783214081367169211090241282255739745224389613041277303437523141143752295900666375690331648528405753990645767049830803566555652150400324917177700491406298993311694788077180700438692100869653342127844293549106646211997909568602445369407251029188349251522437686377675644142146394841004112961644154799137173728582496940830602305430874999176296060133023894042429649633183745922170420354607931897452269356712748606573911524984803272314732128790439575321442611462175273337977322361000135889048604864190036798826329594474621646665215965295095307968705277917633357924653271789446164537091468060618603460467351673969733838693261099417814631087693142383936864999306341175819009645863102406772279759994950033928958867325499675473969649339020988962877152835297190852547926301427814524321326592305784442911066948416379243924845245559238214758217132137088566662095669442705559823047311703781078874734885295358130558470299568474216090240381571181202443025137615160739750838301043167519200333230387078462684103237311796344934957334270643685840290080895233809187483989937056659671781682737935540605348305417784430804965040835245418298319314115496333671469415761190160785600097282202757109712866143381601734402191257092355545251798105280789988737199323156434410235506930877347362406733599581434665193183665343211527003707562493001599185552515904052908880277134924538888332745755588356533952427471833337663539562823277004748273061162686917674666840737489636822442313920577064546734662778177290182654455836161049507465284822177004320349576155745276437475707055778317060570721845747606411030551616260077544256008223095077417237528166391746334012768702506468734281839141209150584302848050529142092515492087425812857779697361746558040404247914870588006337232630835632326934111102528993802691454003426059922291626678785693368365973825530239960727721326785823493251816059892264101836083566093516056372983379430743293863520995471997826869282749836352270740705657075643597965446484080437642061506433471028764264766892835962253650111605469024156623350697189292804708889494385147421330925465739909618675884951855372972476217519888252404269201018352711277669605617646945418998291095827487218551943213907207541336734108088504960957861015565875072239926104281943339129368301578234739740270690623556295999177695917827385673622646687931839270617322941146332539967775441192016111445855415656608231845410988229863993674669799424121688663641075095148551821044848832196793632328211361524177112048972505868643972935273797940484302948254217476108980093796517580264757963989113168840118682628925982280956454454489511159515527791318374526703759784581254247746911254542799458104276172735740108927929307551881156476869635779934587856828482743100080664525282593419706304932111895679644994809950581812482751207448005641891699087099886208820440935470404517034834458724157379601067129824510969817745813284259540850228937170430380433160223111085102370314211390231556182496334927541589468697257049500933890117137437069495703371170394801273998700312377801495833045419584658619557911221406881713314183053755259494449901192773915046042778139550519023280661802595629076711375971301486043682341471367890840301708015968080722904633835890681766116581709857730072474972184681486012743232141625406740295498568599073919931327759698088588359235601089216950576557069850882841811914564478661248792552187154275016826343314975276471401108350849985641232108053530682815207747087319622612912292181835805933397037841381245820704611746648878523490857027590516956695472727374567207576612568691602119632640809184481651803782439096712072619658522999912644989831198423246907394763509362010830468154129521218634281818412570791479261719114114672401780397233669479772489848674595783122919048339569510685135603668595304971937623392842453579882160558098996359703008705350797052370175862392607105575112512896949878705536744855325094917075992412673444075281854357355222223653374256092683904681167805277125651986686313303313471951090657035062136759200606771896623363512417507364373894935174382925122761898469049965755420035321196464650863678637001991595512541959676183464755388954870092968434843411566213069843877214848018635636887293883686631136634134423269017648654049476827150709906888051634425383331539881001643636065823688246251167411180988977215977967686764183430581847489962377766304316218625039555620164570321635997745257683183852087217934011456135117207320762555984005955040085847537646610758505569974163665860442269629590444787962307049419191891205163136664103170267594777537991594701964971026743000181114281701680867625587127159640276370106986431202056287803458046344497004579876097346966943371925969732378441970115121122568788320564332006834784088096342726221926627566574611821203230289589501726966782559548615113090352015149599864545278041443197193714258509889537721052201061733373407519813081048959599085572789772111073804488347370991356793400620778686994821323931863663202087204679847942237177469536135722784637232616776155475082738146063942264852926533726857010133289754418828272474625732125750492624531622314421367693495489678725944534366004320232025949003732412736956778201904434456361209544641509299594798014638007790149826169644240777394496230066994623823055903006714353544278345749082712552306144838749615847609552787423886033219357874893836285082203854858387457222257769838047829146312061692460869893788154909780061349546203939573589765740076499605745339957144878168965982999786390028967607924188922376468520863544124106314159781120288720108835670641850134356148193003586218698807670627333267656190810991611029352784616836848137426173514498563131683608933826067684313597371195056699103786682641463899287284911010734194600707089877789125381922214502837214152805432796970717773607102586771397610756862267500404140066592475938655779661040482320973365561252942986299022682246557789671091018843743624162052980909836971185472990030634715644315717327695315838635969950329565101526370973654187964622973985220873738439232676363673308246780246904089865694351184818585872912244284523261981149161367927460461805633881404974636341868897236211479794059394778578342495651625778182939669067099465607916318178433562135956374548373664648597418053477307978577990641337736160371685550858062578193706092693222318378661513022530407036436759275461536526843662373632329317029777840827078037735486409521402091655198499936205449977821596047709455095625022095232393267564294253240271418342587033031669561763713283859757546107044549471320593076787990623536511918655897358542347875301260476838314228040888211037943348271509847957701020001801019402639998706283828965012310293899528407834334083693617654733337916367661936408091854629704386261903776292888130670160559011707499070499184298076163732198150232652715860024595327054844546646612195914677852379907051076392475073231403767204139363521544266248119954421246803051427948038979132648966197142967309935683580527608489185214521270892718694145913484851304963527982510224095178258764513188670324728742952047140565555347029823744897000420677633512210925613625116851731100323825973980951053651801839149986400033897854975684090083781514233291424968813488261341844042401434508477584685857943720586743398768103482742032310898408464055561203857971306697127381867716906805240104932914516946057109150547679581137206443180117245556410657459583295803879191043321210390090689543333784397526445146640205537855586839873371922093941385162942359272812857161183407162145102456523796355128575168893057417813612470796207568405686895453523213298789455626124720679903052751203043094798425256741911692005829710095696695973381038414834638793039113378648228004052529210336095044588149240290544430322745695710994513611955616246071557301948017902017040572467214268045485088130657076589038791023844272749386297942871667451847793099022319515101984981181543851109487234106297901264936442473992148141973336043474883480521962984112052586443785432238868808989729879345245769409862626054155381330852864926840161483591886637110291223851281323012179474956594828614442636205068802604853211737230401082137453088097072904590575760743415773612911032385239870215478612740333344224616385392315130914926515951623902716225875154434270499193029167563480875997042457866989462006889790845218983631550205263163003184613765054234156885464339844554960510774904277723616508980400583875754070951923925696219390282439852347966729203361051911126874313829379679420103411283793199976009840264678684586700950006362767549384448475909392927574562845887695447653922766563909979877614160499738223138637059381419820280214573065926123068049716995849517800041780060219793042923654702823990752700063070258886396443012720564142880879963384910321953797331578180357450442125392717492940570851904799392717765228158062646341430158422844682319016296377779823163283168571732592956779804759806031319372197159391173589139408938733685183167351053122576337560742501192755378512857159901855707420415918799986432559214264103982157050932691054132619521722074435821211616319443821249631667833729576402916290889463722185839216715430052380089513639417326263156979470386161396577912057109480459295674661874392821538315296516176340686456895874873719822297793967344985291984531935601719746516356436268249668012040214518269038501347869912732433330669791447674359247173013626218168254238763800923599100426385908113330773079910884904980243343335648899646319814695990549771675886899238165073596841091231540189539558207727820026483725092121964029056904501692511265967141199004051801197158429944922066996447418438596905747447561968286969132834174841456769432578707351435637092284752260596754726025226499269852728770168953189519378140449821304045510610063473149350618942196755824050434621413825260608055985035895907123367710426503154547003924126262487597648218975837614496032845648640863272264586829997103388037781166915157274906208990152785958292591702511034208377633191237124872336788919368525083355957500474753583259069665530597686978363756679517647824898576763416982516803755424587772348583440656015507067248662815023776507675546579374096755686327333726162975525962847617015916191365920633024266663202732739281646243625601589379209087071861268459658343428435968534897767063636527819513370779981217054072279164668079672866738720099707199120925706961531984640963743888425849667662842138474454862086722755279690177892383978387910129193652961802501806477092556653360701972572242903591811589358060368327646156659654488077090770741600437260212439861018622724765442218570630196034867399011729784744193307649591286900002586309930932654613403579696560768135319813487425042817060167264974890172717418805168701892536094665307206582966353030057861520292294713281729677647501919642650684716099200267559882087198670887851721112105729465885009729353184497411095282428416654666518023388076505139257616829532494288994032550173479833399298106381189515642355769555843461251405787999227519863270232520447248565864191814684243644884173434305032249430897419078189675206072161256664554575230231932895628863623738383976520931660008689745233352394130186967496237323783867467807826733468926790851375391679785664324860170500993306968851892947101488247619496863122501216011987606895042379756407285982747192837782847481667000279728359329637006044614885394508108952158852961264623413192400157399108374407972980491245788034099922751258178422921719568573569192050447055201100226218997955635308152270626847090124365541097321911338521576724238435437640413537978097122049826530914086663761151754882208594993640795214453417845123020433958873467355716074145528388791952552084834631892906871453980393795615653971042051119532168135229078633280888305186989913867663235772571847149009619872923161630350600172508372651705405372265210472797970119546818037058664505223538770941012665514337431236371352531364715333126125238771001269656541073966800110366587957901184388264762190658951144610128332760385657794210465314540119527498408629434690710262177392548721636539247866603683103927725619842862372648212178775714361090048181544696320197696389997422491513729608109789529868685178393668760618587107679303320042663369834148464017041194711531837383987781201328176316010045150496912233535920416231931686083820561670008961415443861003297242683769376408846632773572542509399449703233986767256023839300455070430134655606881943422395319838517071473310481244783595916391897141952779990576891767518315882944612386630373135646118998119896818771016395962596338293653315452639230651004458269679767448723003337119105181737618473383081980852539212404773298178268775908152442680118849810124985886103457743986569437022644944637737948311678316600662514047071176259854569983787796407813162435850178423678398322252809090291528052311785661888225445295357299659576734940402641933661845763034423959031450543355448953826545222241254019881459566410547006018812439722944333847287512451564887248541296213404103806470268135475020608209733753270866314608487095908941918112036742552384125293698359775295030588837435065859415936329477587088947270757948169623245043730922727279040500406890059492316778514318635115581587184827404168620344269233936637929762085308723890618060081264779910962541207858942410813310189595628629260859440410858204302162080723224375935102979448716998896737804331963080262085705277658246550312207765992499485318362551203729267103077553045040592394276116248287091936215281464821199467068682028361940989937491472612245563334511769645092678043348618318202449792729376464732215757486915007818554518211138910468761171237468543666357061684665103857262865931736265182338309729417482617592127178229739306877648019136835910052338394261992392730774628419221379964197050784210089797418321730023234875157211993233509544834730724269885500632350991892835317953532523208429032621062990908283016158199028334305847917587700736432783194988987010411362311858854070795182349541015083764684870914213842178459800748616762615747611893700203535741355869448664641290057715209239239081715476202480712492250520691741183191893095453894104094572611579520365061546271773950522174379843054923770444663462620689056277876054663185883924563129350622610101829219660658228251734724831992834406312405747755912009124165567931851291541370978804303839121350092738010422299277279759432965566378824330987095183010029692573623910058221501553218929096427924350405050176555507762542111188658729018963856448703676195580184735960989317914311533690556347360521364927979521852834765023367075922065543112721397480988076428429373222399179357736080075221796688085693279704263730703948806888006965859250536402820610489518746504713022769218835583536875237820821392443239431258128863574293930406367922831118323220856889131850512795855166878896320226968624060390270134274248702223027869572051715941803478344030621608097894787657527370748088398588552609379886975728788366654599316057438017327276207700504330079814357997001361525906938545722693378720807479041996307896768853430017392041387498814799674303890006000488984689229114588897449810402983397850915120501060915597308158629619009714768770306752716481466586302484655534798734965525779991295560741273268059998018751931850765595618760112756579674353590481631387293609550217465825284106434979279960464667206301200321005147483582457385689346275287379013503739472788015620912346366205232329890120576884667894806359646746865315341243081206549282785078481950750021293680315085819377387439112511698136157774391932447890677165914523335705096815812046636134740418080398583929649684688838561786895962360295707276502316386419467030534835841009062822299938173229125353917713563158627455239791243317423414850686335483133501044228504339699787297966646693979399608633845452897158208016295455886289656986063545978199670823585535177998760273436118937916173902075485820385217868609570531366179501161952781281834965562862256621010344485082215487248797407140212471697836515437057281258898785463468719585546131079225026849118488069430058380964567783542739856029731413100286016871635942285483375405116704024532880931969531737754313763504707846549648253777404273377803581035859121420355757938345854296501123132849236500275665164596365024961060980637906972601877745787192547816938061354779140526821420905190712033852315018078151760241274031885703761086371278198089117697978891165038988858017657136286369111994730886837776690165657074701446835170180183914093101721438574576429293234171126311040347058333429042285662261648314358906923576049906879029674443717490548019302530140894438721990798259179832575298213464507249317680808838410856739079209603091424152185998831720557947139314872778959506512964327037457767923198601440228410373920706023649205398941624614038368969669684644333154159519149000065760315403069705890489721322158878100547697072437694544612529417680443947793275927568830320646529695425121306123089760289975736191238449723117850556228914356242482132325137012293840049320336314469066608200779359067560612491009773200237005354273548938245716338185927806885547597471139161908143788794477931957552931450321723501609066295519897456524335714417006838198072616880211001889650441795734144511236780096163494398579402613078873584761352614629344996318070915935023132494761733971753340483919487656184033696103701666658927976294773533641222802242248390395009583409596396445349350741958875645828832762946504743072680663451799478234660101453858898532625933039233332221018658332634579908467140524035338708725407216294399781479066013236676716941656040388619217537082399437697132515901763896033658720597556912538015252814726287569682112084895934363652908686671050670739812460332970023852276524396183936835977821576297328631106974345684733938345594413321855185984973895519355639079504580356664361272067610993668417833159386987582453692649148767056044152108243056160899793182352699244513214494241155345256782086772428268550640604991192602640162619315103225968298922285953535351348758015459958724949059011556298171741899319075959495602053736613479340239391588254726559582609626032971214993576726396422530410589840939212680153148345639116470642171727474911329696361287418917468519552617428757416144766412612499916905955930394768921263229030730330820511215606392387518445781090526662803940976229669699179674761791155011665824459858423447339060197175585508401455996529568291220971106479605304543795097963898500611129906185872545489728167132516525772420917596709939203486851567449207157577415157410153230959873245958803493929813579226606760358140233406093510317646194341960359500519371835254202231324669730205187187065507564103656709623308011831748582779552310496157012804248289940128063798375636521358089359759158547535939189323198282342311527989420759413665791638052699025016420269733014012560393189840990251607094181527328944439159024021557442147734594899087401914880602154885308979884739719999250160691474832939906772271108837498107716640772825070112194512378712276003795239127165372272535419824352659042847658815117579044332869792319811060764971557735635322791314577343694191638282510663147482106509927876224470768104837113511234579807037687586956464225696698995354907157818125239807272348096991009926710434344441556375270561083855091637780493397949878810249426631393303910426591676169354438573127679999287537990579546320719351984239077260907111777857944471184674300153020453653480912165790097303629509864235238749278792717343795886862971709050688125699508945997173151584069705570628793585929431494476314670387506504769283747374427283036631266388024444119524956587916017574184817508162035821839412180853938402944176933072923305126893856888517908467325035690747332911285060780370966772599305918736639050722144503960482603616447309034115624128743717543814435000755725908611424337127593816772190975987086358601133318376099687348263648914641371621213305225720970083761364823015488386083090744968807475851965130482256739806757519626944565844566062300065286899254653896813473961001530485954015027297979809649207204982025340347324905948695542861772385839431139301288959114795383678257194296977241389576763317330601823928001889754404891711917750929830739153543692256207350755047279460687364936764385396737169239051423465308784398648500764345954767594309756228674073886911843784973100184743473120873888329687546213217834867030612881143934595736586022327293978942464913390378813113090207736448870793101218642686545123389611320969244177738278224280023371875324779903642529224983373560136610739708994768687790638383370163077243139991942838356954609778565876509742699237899048023100460436329833414079816510688013014125460140767271424367686478431918098053015767104737105211726725875074921011910450860546115253654955815944668180633480770687027056153187116724909744272185180353020012040600983070486294470720163830853061404836025716646429124202463424057503255075519145218145057527550375289667077345210886907121401769013846299905509794233180570722598191243176199706613592321633104460255185539310639055324201849734742909936798858836861474307249311148559768924167344391726018441897670918002432106357634085090022504795535606919968549176519520164338450320461668916398307049185718689374560329899166762064538386583754396664173330984532528032995157971353785869196463600627189499413479754776579475953837886282368778794726882604186248299479481630062929371527992474582468725025757097466313643465327817708714229069638179392888538283426580195121776919120187530901645672586592794077002992335387210851069637888101334531031756007721820501330497580092150666301961750800226407228424399402851392515770123279892673213991722779475060904139538403544145474517075239864770798953058055916232352265300822963541444515946073925285331131568245082734181591208902292859605145179087574032659814968835091435851916720036151282572725180543249572295927780223119027393700497430422834300326935856892058450912133622231778411728343513119136221774637627551687283147269431171335179256655741046310126107979585962235827812768498283211001147275152220841928487799679788530477482465928712170681396570097755770493637330317803154292320851684511949556319886915586376966188712709711664452014317418526901082924261437978488178599256492458738564472631667869537207370815110104325392792261145515915173638039119256793913061411645409429329194640667077183512974148436224888454825033255462895315761978126993963941100101609317338344466527874810297657830886204454435123727447163075290158776949456559939580646628096594254385596673300649684259971280029976474636196587426401112381095532290608167585595632230124855222511602480222455249271654768634584166646223292003439680147013699546057783633050240492189681532928723904321791548779268222909874671163311255145263013584705800931435854261750552849648820278155725493385842011710461314034313272711485669955480788799374779078361664924798191990497796009646802839118263970251993447945211148403216252174501348213510549276360748236481873774644965697683675178496943958363951981015773706857132885298019527767632743171696641755698374879912118562347864156329721382259270271653106439133594094963337552544081458834219036691708031088664911566571397603001724869901955422504608952677438652226671048933868607182214819935971606429716230634746350362834047623306436275670197173246454916697274412508373094970946178058037235599062948630374023303987415283362435752068478945584733577753959223284506935014989958027581077026076859253512579238358978918970976301174116574310107110338819472110188797257056864262698653946136791290007432293070289089926272180621856827681674653007586766842344465894166814692163967516034900289470298915556546490713558728322031558612918589849441463461109998820034987668270485986853443022423252919506820558077157427065151841237100118408815554361592728912849103632903320388569637147124411243078290462248431413259676650783595056042613218989413988063596262768046569393568852382290122181852557766782856423878079363744356590303612247992963110314754717525393911812227706760098434175592004490765764173792009072106298884391241632063184237232368906076528609890539327356134614738303507074129087001469566466796527797648583253083416159378774533532770508908569875292581328135680530077530991730083524011268770524375285367693728408977652957005024511037287239907782856702009120671106365634636976989230263804113402827086754196027732726692329979184947926140359260555146351128208626497003553547618627036548070948785105990827255745901401844911111157581437462160511260511604628374925759097260670250775870313982752852522324910585799582122603613255037182539279187571491395753976307902472223478989305759680677611602777489814358926339048720522522353110199339076583878403277260191117632072961227102723765484746378406718199107922004144497512922419521131222562840183740597341480377857467345887127443570894720144230534967176835821395633581453525778120135827790281880186792880611197323943337581489771308608569303927417257170341394058730105746178899919288764561149130809095138309393974237518424246303978350897229425743711482218035955896104151543609666008478448860035008816160387118796005279002268251365420946896470906962232209354659569579059404190702568654802142280859018784255450336081817713021553424056084031930313869537464188531243818599064875113097816633368144370140959401814205923547019158171163912860887172564618547681108631793913584558072419166475396334799327560029503550847330051161110092642676500397155411683920807742995756464714337933477558496353456805925149165161798766134565636234274857842474164039798154882051168241589803705601975907141790940081175577732681194113615389846867202891934208309782539284894382092199629059901075887724679065607257109103525647183325350308353629835399858875669242011945613594545466217626005409514076021403189664510730757885787223374377316420173024641314220746585768204143244858245441395382757144993173288578715885953179660007358507750692950474205077417904128921509686231536446954902811234105284536118156707577177364606786789419807151035565222466196752143613577408731036463074808995339143701947741651578350449080383247402174560778705081291572387257010014837907401821389861124770034616892574241282463879580753889785440755870485132587476268372594225611531978113164596097039036010152179844600610390649330484206676169201950316802969172534574891902523753693514068140226757836841252077088844186896486419981275541212367781816974936865514900341365533479475787956688188244401865916470595382709232412224451172029684271625074967478052288088569118229892999872049518781788520394209977075050258660367710450355191499277521199550778570593504396069215071235407014703940860604980439518153887490758191554307325765777384173271308140115907344489904814467966655716576773706247424330318882978735610285086702484291377446781629094930828710728984552604051114723764484756434190520346720173322726750587542810497765904224037995414048508467807636909018842101930955230213218346643591751468495828532866166155039217327177227196854256413056401122039277544576588927221299837833217325208257896068222769228077254656612051258042106770557994334715927036373465935653476791226152119325877545959598160750798612663796926413388875418270341115563442840188892376236994541689963253266044212518501223262210279005928382899676628827902216237704926297138895636053493721915459284601866217646966504309242807767202113112483399182960995396691780785305441401114152376532502421921987890689252773137898197044109551008601918995321880598609750094304780725468886896683399962685370980503480978383054191296738522487860215103976424618077722499639335189045198578668237289100803874548847735586321422094619834395113703182866474270363221587824129304681906880454541352345547241289876424537675274049355720923655493440762601055252174904294522215973426024355839157052635263596827303955322868752782294287717638384766981020629809572592854538939422288404698273718554491355983390461597948812168532861870150307373410425747969823914936604048901467620605096535826488551862398637767450969024876029723893390633278083304044660461459995612443041459295382383611911080197755557997414237709187216198440852718641486327061176351055906848025615493662467876257883846708865369324815052334709157360781227718750906009165686549325741928640464302014300580290952584587917099770473523246957661674799146075408508380161313957040319216400172834893165528607314448596928966385619359072000238120460298994234030137114491690455399667679692217723362776372717477368576956884792784518360526949288516899586217902279786144226559832427844483474893686017878335786150034194862607966900231944872924255597278224063631688638808176501391615088318715199124703236480205894095640833109985594505451634906425544676976680996534098869069802955895380625171967017200977252040981385242821253877714240808904247684248213781740891189316633437652446371990031639151579560142163973240647685279057965189896397627717980043067155262237564916618535455680525509976505506818433315291690488493951773699969274861082052766849623115090825143021772868244204942935351591269655084390715090285388449531587589711193986666154580477246775180902482728481570243953168144437585562193945113303175020978763693838992231978613053571005852209724041529778991596953007427283217304976537520193963924775947696279832898080645533081325002923408557376208898762934099713385781784688410396953052692834678815230898557262427710747279632087976082727715346821034210761535392290470856507351499447348975604581712259479045822663520600157697134451157502366877104175575686439241012408983326355761632736026637657549691868081881773003567962840055986772621622591643767258391883615447571908588009842828663390089746420653586810643727190305336815565612761696761465303840475539105596064574046763093773386437412853299335590210714214031114169603687108212170122582837054490730716992293377834961700594449162846083501586093494322510160582357860421276477735469797095872594964823199589385868103151404005346817699519910571578980090101634223344286055462943998799794375454382149240925230525411245052829286015639984969685788123909691351082087605291083668517710847536716876204909690729095762045960134532259859866913264885902488883768898989055089756863055142404536517912313562731898747813583355739071044451980466922876022938824279902851714387871580900743835935899890913330677300737180110709324451523559788030236609276867737443002525584093730871533795134726352044232769181881833643960345039248558806849076073475023840708501312261417934102970987187617366450481412962920846532252276708691030285683269069909076121429005329764844709610729950170955926259229156257735378650677667096513192280407172927971090056854117507125578403663332496755211215132436315743497872363855213870104311870789839248002700289790766233517506574761729497407057578025934863653357326018310749430608749405577962909575039224387568836738615704867070190047605984718907238943267608987993519684226290566888368109587952305155537118885909371615298115193304267438472701716343679538375812953570185435949140053564437923905726494956050534088922951731333354927934342319703827929029394723557409451100439833074097454262666227594905146989541207892544473939017555472406833844955431557416522604541861555630125049650560517257234623645294714818935436836924540334508927525340074242853455280701565870492443544858766293303525948744790053183878307071324864703573512300820020746232885326408424698562812444412741342372027319762161373046769865078820320141959773368873551278690349488281261700155981981357038044748488962584288186118449659574615325658484243773036035893016626723224971076277319216577988772219126738362261469579310700143559835992907649872927488966220019242909277140795247833298638942167204244274944344202109160263874174180224134769281235186407964168053799308014990113032920251422968075741597845525700925493736059237145666308660323276821520185825938598315572453389045302897297167474814936929754622091052930790690108606680621231100257295031448980526057856563565325546500893544006338736696132224563273470029784828000163505143961741294636094896402230582735961674039687040902987621617665656861800601932787355774352561241228703519045853567962855573017719265143504693411395690517653599420733759876735493557839299957201479916858404368947525172294232029960901889642565218496577207484886874502239020459731121086953428625559388182492731923598378551822726444829064658899754546564950712015231885618903299521975537705584901017289133734173120548905702959725695483800121074536015758795522623146370289475873287396740928908568682060499366316920481347456427403219062973744510755659638162637537949113054874116892401198380254706299242476935441751702949477323563692144194723801167559102670093528802661064553167302415534992555862393913927254752567406435005329931320510953384955927095663881044821730379986215620989245904414657065180799395510003579275128339212385756494447507122113428943992716992520836081500059589383554007010762934603050613558239314921710325925441840954985544084182725226813740083286946141883140920784037718171450618038666182493119691275233721418133663536383778384881359206046884126479442245254298546662490420162209082125294601809343918686249261378435229980673053804722971952821641102266430224992016774400242048643151659933785207860018536644648433595885670395727738110076412232675893110154709213122061096662116178723699156638819538509651716807046816096387449035564351507986590256519865302729906845897351351297720554418928774773971484042882765404235481168878360614607969746393828957373044497717616603442136102583664057162579332891639529101410508021956804408076246544076818511357203182881710309898852876312776967105517233431253590585253483638367959536832891136596319153555101655952940849258027584587152424374166185457754046467746953815734786683453786803811349103569948158418501838233683088320596347028386464946079191688573340605124208812235176375113546047326194180349214960595457257163667776993625287475896433762340049474437235282374254957636571432555977439249356354012704679192418695458298964333693603783868003416238852364209535212088948774809984669137979881112041412329667506036198083670284990144175571259329732191177836923707161108141864075663247698156229406392583030312937885149237761556607079712474057982531477152733906515589106952178382662503807486902779540386933780267440067832259364071476388225527228785246735778082238730219823201656834247718446234484480194370523019409508092700210666578691744968376417582226348449747946454470172025431270334692699995427628151895037467075520014885890598484478873936607539180684872531947350918893154794972940720539778650674858276838346018938878840417667198945764464578279991654138745931973718892514828097435856394088796198985980347232438719228436028564792058782000762689943475212526041574647917004939415132332780200861197543129661972194467822078667855608057591890400865350809724471587361336221577325971536169339600367862147488226900883106098149333472093627659030399954626007991438041495035058967433239578274079958993676921824067002437394542861876589528893615962074914791135397515562539733747803773174383085397254087995211258438331477336348696021464786166636855157705804742296185040173602524486285405420800624015266937144307181409120323878493081564192244065096549437837145512635974197083844431143859757152340294246300894732539308350830366072178718113150702451458924994204582349721450418239101375175965591162804042980126637823331835253827086328394835291657551476744505311102929504884052116404058570591348486635814958581786952795520175529534583459954419604773974881813564425249742285036353052523375475022633617256070270231223301100747355592165325012164026701477491703635870282344919572128827875564073363530586597716569295904795535095476191675915297096656293260326132441403214191192178152621285499559826817415224247671815765874757717502332333807118679590699391533612911113934104575102928597930106267580395025685756038924904999997225162819281052750439574807447282860998102383496068911103373027214003214636481260436591821768233533161892529685751064856800746384715495409023603652198004703430063151618806456868388898383694798117180925121912582038469478670049076086339261140205638927846618520335144783649060901742558836469604675078523886367817713106559966809358107788623981837661603407628739032353251891339621054982076045717545087927836570991958659978378818604067989220670175110858896941992690451773250377277301247483255500456437207207574754363908105237393642383410929196284765216100681114364092539625398528765482764792699829347584260504344590650212243616770888557029420580077688024256873116545212346066745406707820022531781201660596423305432873064851202743130637432535272761554579536188389402287961806169109281036545699222376874190892547133341467791765367356226234941134430003979224580329428054936940495426028649792837294066705393764187214116366443359697751579802916395978236555175955211746218002288585682322919762956021496216282426860635843212889383866005223062973925255481934778206460103979626115815179888698937930766775171085621085539089528987830585687849389923964958497185126483390672598212490562721767700459567485915516403208801223511879814536166493295299117263798559455817956774262182545747741586918104224487317634183420791605375957971953281370349832885478668551362484997097890841167454366758926623737817923069210495150450807206023505513322539950729932355182036491063835418057696736202497788850899216541502647391988772950211633840404415440992716005002085128078713519954018986831872784245200261963591465233588604086176652168198947246054922267454460916312113492044496473874204480985194640045199711064664782251587110352950726421048205584077595061036498732623941770653115166562975441056370961803914009085117638553505870476877937637984546063656573360762941128930475871484256491861895999000067838697194702333190621687008538469820450666706815651758597348011815000844962452532851889269693106775478764397246007913802605145603362684503929921119784070969841490125805494058897278633370939190270987317560649687111454556792662213165016195982396089352688925460587520361730527146299098997975611367383949148593407564732885010139898585734494735710567056876233262529721481276577731437955596399130014545609417037482605375984463680155322767289467070063353046214564506887559339849545243678594530703946297494288204119610381495536489248465688194064899051598515913818388214177524519000100013947167394139435766675030534748221898131207512332782568750843008783079058660783849551611273263717420678906646834033120873709444764875905736003284309639649805157782750457628400927488204864931223404415152431875226434572972930098812292620751401877499703478558351457487909821283887593829070644886088464217697033504020405024248510427013339285500749319750102542466811818135904667911612435178487151512463324487603248037095967595385749234596416634843103548025064422735264091343769047154697237747231865631627225357045919694484171183214537811567881519653569985780752050923158849430512712091104441395026916253664349713319813153381799505031808757157481889486844989041584506416880469611107005279316439620955048349701018341210232489695172875148994958959725708795660176111499675202665315194631265205883231754705818125364657785555355859262633614921590608413944603315368541702834936180261275277709177908133413371998348227394271698740326736838632322104408235700471026141229043482672720531069467974538855452832336405559811251835819536354382425233534307337876730363215230610062868125465319054910612111340686030454579040568280337722994877185755752447344102566368228527177869414527815030995759080665482233848829311986468522767205513277853272043555816666260024613197109840810153993220089268451801142364256189686729046378940209866648203163774579176599714509138334374762055302720728346896567851676574132806289759315428040046703952528486832041484084334638415501621739165978223471747342518010456152527799632747178717560838195888888069516455488098170494734165384863751728567661203123632409875140314354728193533596359176572950998129942128708347125782037515463486009059483998146083462691744978140842265037629862932647138184415319995479701846879700023223447661768612002160215308342665629392969843763435788201930534631749431693510438496065304570068133138805442252247408715444328779629330920435035889967263962239012759849171870997708665762767020357897142082179796239887505599264910486009881121812428496641275805540540946471367687414363914129573331163275805739900669969348135432275092473776495412464939601643942135798683222223512136004075659440707181398031820655231905874635798131055874023007527946323617344530038997895947728917379598655804507160744562707591547981575505001719168289881361301241202429366024795863263633972848251841050313236657777837534403253390715211951315747693913161663482777549375919693631302076312748903537648030601204385062573273636675567693459543119532704859066426592292048586342163519487670216970145962030433410236584649937692370545472434424680400545845210910466044079190041622856331796712755427700878055839874622871122249338188922543969570410340334877669419928477372042563750665999739931693194121207720760180938683190495066595692086687728584280649445637492814721533483970711137641283919399710960946368819295053985552518037527764367511990066077986908213278494425169609741905636362241314405652283789061325092415803805847481507442996236843726712666117179742698639300191307015747858382824577457808193400661299635234222847808330000207580162174663090881273881521976627325260363567203270918316471369031300075877295303300033360380058932102786729046583442900287957805664673555860059037100690525614393408986108227670195352837376401081547801946963696090308910671585397203332871205570007372251048175599955755751428178575662536039969627202232517497426503220691148688912516009107624408652556331624330333506197925291098776641117926055687940330537022784654751409082422504034150631430858444388589949536261631375330431410385168090254295279466879100097239646387223507728316432092113027411898977338781729992956329086854819837319579332247669486435090907738197297323974722521705614618527676865319912286835953692288594543135303129931158707239905734759661143236654568320511322923206633452807627938263082036451260002349843025249221079868125968557001760196346495412743410137809500573265806585840817641324965993594554282909889115189721079849836943463272174457604834566179433446380327267979698707228595757291381307675126614070744608087818065284949796457725868084368404078952874638895726647357915030021208683765964225187061493756631357041760021724901394505434317142859764699115787030732713023663361696395294856354891823750987634272246629457210450723724909963842378000793252697841858335659120639205190955731655943870667349172811207245985601740686117951925245423324595615874667793366532157811265123093183080332394139514066225507289529701404616920349291193969679831431766598553379492035529289515514435682390333196504377284192488259482275019311016041811305198958194106140798413736678030026853425297577101088914177937426197909040522098960868713829836069528663533545440375738992329497483590417737662930363316420819091892369349849223915875313412544071986326449878385412633742179106778997645615975662761418700328845757966422063622637026689127315816381852068395202414532072334045268758090686090068372236883444536062504674995657022338039989776758810759204001572215555163392547417301987465275386400827887512372544765586145121775559228278396178605068831690526151098127755654598731025753412149827792326150774018674671429585169738973268669283811937526644333999729780315931566886313258403334426700665231846703517981360431757841099444293043022294917660831847198665327431956541271287546662529877685382527100546980270644923778781452182230815916316552692186246513176353088648985534562768407173204579683100771104973786989607424071634291879712863321114673233379578790824866125355121102783916183155614369628323480508536457483226722358427530317938364055197557891736737493674757095460314764937877515466265722130823993624362644796210974908048289569629855898460075279032688159696195469637767627819480909636119455731114093021646679081695498604916296180338319175031416237704101048648935838861530243794586508073853175305608023588916012758293326800578376184609763254360146650127683743302134004056443787145000534713680993892980023583403955503459945076343101112549495578913761926698525744522714640659064464662646675013671674424605496635646003053998794781947647296682810853193906060160163769343488562140150180132315927333686909563914600280202390285606541263788480482440157727455501266209357139390808054457725385264203743008214470347768795030012649048015918098028725453768064333321731870882659547987496426140535138056154819226887591344119147852675360992194812630562213907778217376322310495862322307195610456500037485614053399161199787826567513582760016725845045563999056895199696334320737833828477739536762996699851685088492380158065194627108335145086842550224945729415167263743201634013788898153414877942291378304750337205382341776679836824399734375955595765009821834618829599533952617920448193753595837834947996161217973504720592271512626002837809832200725331838263463058606978633033220102205567422601239447152212168532209704875204244377530840896776307408134308135359614538462136832996300859220536892722773122350835243715538367107842533887241906189623306893364696222775275831120915733803251158947735916256732472048331371940305014376027106126890402518057624952632936424271126902870406390751503667694441414966159459204191800851897494141221967323063238156390226773563493537034028846605366496710893037686176266238814513258759861578361305424309085473681027903089585782270912065321095840723586658828096954847049400223593133421796915848537232177290248411809304633681179657359238974153274848240885472732659453852333580795792002841156642860087978942507551294750134149930333068912580213882545160662674588212892985506681485782586331150343131493266820004389362315613853365902085651771270938927399594715817357510213583944261086244889115441613872774912516582525935173323418303781432011874069259064863418289491095906870176887585563153284528731957084363343915543804226875381432124249350739450897427920148204107774431089734066556060108666802821030438414017883666353910622826296225242850373227480511400782470549804728408543515211530563728139526466057300681123298838186720853623842694186603752918007663649585403861892302640983601925416882424526005596380587419498774574682145361757858565166706021545466004805190066010572602141312402885287534787551797482428582895129131509382332717400002559311888392967828911221844376765742229794196221507738457039073535664079864319639342099422952362064832267561220924077116308202605706437966827358420644229266288340734770398857368240507293949614528870899836355518958334616612421535748110642352442605257461726590043634869446643716804529276495802032098442941224840875884867117031629869832913835825580257879922863462814829572653609190227169919599879594434998015951643555654376761675416788125473998030383800400003341076862500994257933074750918991051239669785477291286326451535738149097129803133670512809422622370825917154467119084991767447629048837577516270502677124600091770273156306976310062534153866435875321341944761940743424436417957397487498613977449245495853275544066445349516263481934368585089289859354117839690417090065231214678299343460400991140220630593669316093829171909889727162687680605898658970360762686867667741899999732237443954596700385900309428209122955537016537538010267765851472725123461069978769154972439259446099451115770492470714180110386946567404018283091748993359623029164016039018912798929777164843683289280820680383800509404765261357613741107528649855575623299682156162029509210457096570554332640270381523693798866255561532794754884017123719109989308405533893140620080801264590650371635849306172841855721042816140154499615969149680782490086781818957748663789716127413901955321479326385842720749388224805872774137987142461490893335899018323412177920765364628339457293362125256039097881369153868258334960321458256023934136637824195479520323931990849508553980897256292278998985497416114927604335637341908245408287188248450767763280807926571131650060982634736159520169744010777933904344109076491655728450044362342417849232341655739745510809432880195451501628135715977574015390463785427615478534086693825141924778289277729172076956628901212810145365805060491733837856350720237109966672255595537632959653737455588756759196106479485119237959682224813843625641640238973039855613320763594688907910849544542092390313461052409759418015266703078235216702613259498136080141280652215565202875577625825596261753543153073826647594503723219266325692664255920616793987615237861480383083392018527482807880250784849990214743199047535005252415029965213360255672569632985179082763154096587723380645232297567474982119248491869513166680192010965554316080876001571973172267628164938183558578909782543469497260391707538216172358972883647193207441860530730163135853380459071340839656657136596666465531529502245537585923009662965223907765221648384644467557423158618435435877360587731917399472137559131423499700991071968800929491577114104972895885940453560556872330084762342214784081728468541014474264229016628562941925806986847675465854912035786676740094464284825838001598613661753022452792498393661876511664337391677401173371136747568908859355359080811567312888995874420031046828354960750356716770291061944287645358674240738637549356406535051219605516854947240196275639520805197486971952382641257977893576260958684020000733170853398507056535054083775850364453725365550224444079341801659949790671371589804236378541858266843477170575326411050095855502069089627021500781401287848384682295989441048159699102988651810479653342505721347160766800771759674626402538560237695939420155926054342072212937555940456524698478988006189450378254488875595768487497543620232411332080473463094615106798842597844875038965141981188762861307597905696748640328019133596483653797198794123935175852946154547006893430868900938005804473969661021693369865335795301693303576723011722319680744714654028065972816360134295300324650833328886654333508794967506594568597475382881145185982348298594817804548903848224525017964276305468408783013511392796085046324866730817660877091197588069128491486359117185075465394103300799660323768955402956175774509178574030974416707584331854711088661011041966884102046194371529956866606381988339774263856437551096092621373642921835430499925305690524262354311725614787542835609756407752876366909825211199717899375035037390911138825772577315488324964573582900783977345826512052519105595168417000979713777099179239387435021918391480626633637811832213120072846442510855831308771277691844324881946110841253578035228514445428607653457140638543766437263654365180694089902870962771852326057081186534671477027287792705994281348027073602258523807735496163478161998262785241159134874089530300571725577161944153119422569595892031574320940449012615114050284872217801183941668692120090582438846620528560863008531964667152017405597981177194458583611349676000120953290636008762142943934082463052504175977575934122070597678273244085816665831638491231006987357667753398547040013892144036046804560345502466223910717998677431444571304294631877786650753704694469416802254860426962513024212394990614883932865105469126780736086111857784833640508850744141626243567044035769819144489366847402802592062533824340530448587144682781368830955105841467486791245387203868744489700682220135356711256296135581599336205212883679236852690631901796832030509678474793277278344169073757599611415429677305416877649257405841946970088385320116470073833510544486397755740241468981816315162879905945051047340011262903778225793147784906269679768596522544503651391323896211196154569501298515494357118506382748593368593438281151590689778926703338092203647170151208659775377418610792419365190908215199846039199718960615107996055481978613746735524478804377043927082429259568281394481642863275570760967069317769422564759043586616718376301924073319289562130714578957867130326059740032623538165826591328006408630028141248884322537695863116544151849964657079118255776033477101376294688270367604763949579044051373085013093612353134437224243273108836174037861580552867404368609089359954516427005833384352535544920297117151527841704532367766661011211923565593768453681276537598354124446679609487794002019827236571321387233335594050608683684445446807174142363053662029438022653588067537487682095097268358896842350767680632339722824766566704539239052229723114983112055445395296695818469288665710409373196614956353558166990467895432463890736612888191805674399707687872082116394659100353283838300546129239160261723859553028616123204091520923656772709025929795127063918521469298529619093588051239234631936310315833455584829763794822103822862438739142375809342222303141504279716882961069897228502262552771894950818407714994805930812163348301267293316961064528240806959652542490197023132475935234677102122162581301222320846585300400917991847618960910752697569698854288190625997300392993165552699099401991947666933960045773142776402923145672314515945005560540607790804215203614808389557783495759424164224290981301084843678872451878499126257323307339619282469672996092669525580611678219641689321981939055766477482441262512055340428374380610284002903833056398550441368523126522904812693014914685792574781071974308015711855482490632831444457436061596573974658891858559345682311679968436751600150636731000658414474470275071369795597984170608349395155327942324669495115124014864724196178223959246783618360359608819205310267811631385221094428902816411128068019899856395843405956334086804798715339323409914759958102616680957297197742529435065022988012334920724060222600873949172426724712233992011882217922846003451329282071995851117066777884055768206476698427143556526990948709753389174189265423656449517584616160758917528288348782992863145996504464666098674612137032043743329672340844280732580206819357872222486769962480629252218209764499387851005836950733691286470233418235677073659296169444124551048448204220558457074649412849818433505055516009308378968566574267064655349247412026004949462441913487366664018947062877613765077014499267799869350481591967032227187544776236043209405070003384906580760675810637085286826786587477900514658282718604813540871553758001665294442454615092093375107517976682706581791042596666587000255227715254002638637491083115983738115508275714006043003656177460297562441515046885250304699062708640458712492788475015930486498900989750263019454468994290990532956014273717022849690076514771021090488351297585301355235378142701276846234051276908803310336766346490690125278018437108832932730633131252600482782145230055207104861787696200540840501256975246434776468984389362541244440440563743779256936617986747523562450665164799240104733274766458694528567557797934462426062295949416538827022794491074691768516044711611715042332773141759529199105767894587710550142301720286084059317886899390113171461632954855437540570323349513318951083744888385889910758164321409499015008943555942881857397153538113401246450292145834863383607957806791455868183073814110602331613444098060684486087009781577704551588606145914440542495574954297260558802265740233298177967421631936034207373341359602030832462091730657858868106545664316316861385636335282226208277150380536083460804414430487820049157587846241478997077544200452503355375215577780941659361431780711767334432349506278538971293325859813416063057184472623425446694308640993581025978279892697267265081499543956126410965271267680871357354729028916618923014300925826833546643479136235667575649637006262917351480069274649003564100350628388857319293983488948285689671401317842480425886358837751908654803833992738745481773378887296021068500837155120783427740377226425078281711750416380628162572042029161575465939342700430341287513669649660485073074091171685638384819862211604444545104534790063036466126106732633659264714638380460059964507142693311817108559964631781890963314195122985814919934613174476692636864036775460933221684236498065750495106325724611354430727003735153186512087661809193202035560811189862908050243173011922624793566294171382094651063615473218823696889159276902401668811319964353752928497598695206239756913082184871925271303388298754992219298088666895475392747433093430709091740396657978291584132821940514337904235220193780315210894245807168162696518459519088877002410646533350341421457212827712727901512407789584692145455287166127805973303053374808766297807831093907746623493925584918786708579338676004449764993294536813172240358344960976512299789306632018835761813279681957784405367952471754017039789936899849210036651200408748260525299036420902576355832963110831258537882040188215382150910082589041003832333783434092230751423490616244246243564907313507622591165810288330609446871327991246434472926566396456651785460796094675399804665392902970381467265042125182656324244985099867331193384917946859447121359602436353543504519655384216059060833937093164726395385001633740367942118601065741784335232241173068401004056327293949666772943141524391203542073911047892177817590901903410311076726027465852998512023347902365328590713795858317018334273131068736369492138020236927884574778642395989375080048591122096793252514873051680911039798058827576868883131784465328843618232129623988416297074055582793162635267312376779424266868449961301424887400819956245882135646563581270831734314135026014079878494828275303805726645920375440870702478325990948091522474266850690351346369562627438161798402645182549801313852435993923429190613011579564006174049736147702895307653935000744524617612406892820284066753294119539763072387231794870437886520685111078169495116022652912320468721437794799773807313552615153504288649618610355254637370312670518237934954356654564895774257173201058102098506207805383742065685800972719973466659685092986675982185197727890231888790873849606734149068917552251537573170883699896691417889108531947553449382594028320898650348606193144919656434950500129513935522624139837940598657578132105429857072082123804977774952699242338589530237439087393747211027408966653380380353461112246826188389944265198235725710489741449325965113549929018060816112472441843132074939469999705930355981399522940897256160192283799170179990617612298891577908962751450556233672698493485113786752295452202606973298505629552981055476583935552098458216854313044375512606050907346923041107947550848723787518616225859201173461044716267585827350625035561300383047170457094735706233522441179400349345515116661748843971321242980143656797554685359225936030805269889714740461920915476458799002055967971224015348963974674686437431924126178718684819596769974211157011236032105971832024399699807630232038076658307634440426715389914927834172501991350577275415496861665076570344947642614699324326730105245814270426030515241207965340167808515558458269260792300248146766593372251564634552188776259380611280827642428645567913490924359483201123007554573438742648822562999794364288731830312100949449989187121267578355501288523300240735556890981989504791750575157512032353419729719882206486128973711142767127758130621459444513480726513584489949474608302392601419763509805448002037367673961323327386545357063178654037380024460129665238944276109947864846162012613951247893667882179643832524738683399627677508687227680765322018951113326247075543211512069936273494013501633646728229850441896502938086368002325001944294474860541147741965329741201616619382442594255127752195267248046690891173562931333072267152536584484618307301802634325914520601367527394295545029651513267756235470967615791224407080254511714770982965594897467847306125585413901433837256850279457745801420407821703924333373861750587182618915675059874407823134564453886141986181571325843562469523029933897250044550659800399216969441748727682106601231720473580448192633357550068418667955822646900110598633366891704076279614884076978968567239150124036118323056944976311690143345475307876402038570670141840197412899157763402780199984683635299688079852848392896317099146112299373458362087229886254233949001471618371058493833769025122657277554111822834700868912569907210746034067667820128121627558779058933898301121853665997914270690062538939374843658470566296029169061463807505467328118598658165456538499607055377667532368732064565335881619557027286696643889033809061885077553305675266125808126058379482001413371228228718080905394352395640712060191606235251262267339800001987234258073512292346072486985466595654777603902542631784760923531868149907128248763579673472437584561944154891918946334607035343582432176926720145001842059268904384963780445590280204834671580950046739566997800515961824171577667800896445471806863154982665848167985582114829224897122796766996891973302961778963624798951553610090484838347883008543238454648171193940946982892424824623558686862323347607107818961035459653958877440021491073045693427642826027974755373886720922858321802565378741050768512302984812967557336460477972514588621644663304130529034802701244452404567649875411049945736669681167040050218035020419674505029966817528311610018381706218047816839809823825931293860592198980065932340716667900314309000057874054109263131321888219979662045982785556218230078000051534154203195005767098039526582747944138883108559643462469477367309793570101613774904987231758644821208033936612145500858091020352606690017594832149313203441535207417703907800146440404808191711026544723737973732602327505665549758423568469320310041185721182406203944513503496305754379039919348767060460467911205942229622800436826581345993918100024460715551033766632879097600359559924939746284382766141514319754766603567053766714136746674804508535914583355170454865551384213528313117574562948263697637462420636024855954504941744518307892471383433754410889064079557782332782632352519113924914053910049279179958910814632949925056095833867615005309785413955770402159929676125570650741024485987154532441038218124498700713813187075397522092032543970899354343399536445696694309524825067740210160739458852670219520944339384826541872885752725166594059807641521693015219160107965286215821607335852357602104633891232776261086922780643711586321405757840439855030300068807586053738005057421743418983752031351795517954277923575395160988506715846195710537452531046239170055760137300818956597370246123881607158952602512848497017039670046970189259499623582744374518982930846439271280667899877337140678544280926996095998195197578655505917125348549326653089489524460504703660503812086261877695795078743156341928193227427232328744209839609077268709064380721595055181764584309586685098674526265671943406769846340709542342284604414390395784419197524854401400256217519138536805635204708090225555113433558832175728827603721318293365539235468247555495742228207227449512085424895495445134290513935458351136659568317484527282272028846373890901611641816114391034287158698322543599069615550175226695237371507555667912964869112032052248839104397632574623277605203852226618344261875685047120051685396934650964960493704774819293784923247282808722949956663418421957736149704336021145512682311669353982536297593450791477819451346898524380313141336258660104824932779920561793733226593669114147738273904572820005146166765651010865056516577415082658950458183597444417130734421638416559723096907754906009172792108603057943643374708560070364896105313943412223559237309003980949096582980702593575239510818326164653119657518495477351842131985113210624226269570721636483259182216898071187124839057978563671176670011136568621287826171498304988258258894253010294896809447966479513332466282184945838347268973292964951614691355995445170259081527284972315710508919581163917337981443683302618199709266032579959777772229592967448633779613222030292812025433960342259160471725418725874341391513409657047006709653773858806058086477982888118203202426928819748589458320352604174661211226998235246580075788471044357297835958688768359539047664357159147475825231212921178978460942324247759909564597722771748973172633413529597464354033501897064991990830113658877504876812273805944475068145883593729058855329240457729339054510782648925316783096615014383472654385203870918288200319296425197829157036816397902379216810398537794827996660975482217178648660229103957876268616396817232394378772353523846637910163728902225798603097330232822422634961801910469176672845210804597375775900102947998894645246763906806094040709825896053364582690023642417217637831803546422450545214887697406709180699340297035198655294258477697414996669423605234727207426521091305542913065527124487804699053729640361764603381521377977080913047104695239068257913096001541586047822508769853071656684344345136428934991628738419052378940752249964577244493577160833446545373993581942627504629081278051730130995332193260335854974850731989627564417648192486200101144042288798109932979743794753502107817075327716053482622179405515272088859613739471127751928436447136247519815907467124043709719219861561673859857628025033946859128717373755380619872599641564288541037359648967181670607536080548432345874272234322428023493388663235040983389157004814719222737784702900452198170646762771989803650384718348034492615790924360782268420476342899051880098127900079323935867371669938824088811092123520765839541661482389587302055500879380232699166654195554516068158279003481798105656207947620891936183596329439546764420926896072327310142008623234063164321169520709105556795052903033296446499466378459855389153765562346516602363014026750186881080597712472030683712559728191792906375419935864897132134459012721803512315250542120537669052420922504260561401820859198047412264246611610498278110660572049099887279863415996365678296345342056024577607827772833353476873709831434386442249471767352698449803947347094242387282402623152480635687845132364967283591067528594592199849448816974242715888219348198586442051879591903762684678765055456495140603633120927296587847893935370457066544668031519764369324253120026620078311996379390195730604635376204382976715826337378655986094262510305401448644057681322353310358144071585925283247711544529924309014192291201547629664568597910440985995821840378385954666774574807372650056238677374040219601606220710690874632614212805121076114727909007489906165280893513874787715458763198079482868860615933935287099157982482971241068128338206652190853035610216663589610863351663123450714772739381626316817770886475807617583079655204527964295217643565025105296803237015087718945090520505918847342121681972888956402718970241100989351137917297980832248588909240488079814957753765884032009467289045784245799843555103400963505958923299861672934748473497622630829731103697049706568592435530772573395040908911528900721973258202123292534033906162525033278633067993849238063986608230598992351303458020374416981530689984133809789307766995329402125950576565694467854504888966896024829027118449863700998516684430593250367949090045731296300212569687140055480124292362547906095183940903470605764743416910238911413697458296794240697771348860294016917934967649737843916637559115179415269083813083046152586121074656104352452363578252327820291989399452170063511406974685952285549609418986988328343098356710325093764657679562132675669581581958324644814680272425329046271367931925484485007245490199077033326906602984271892531418095784168980998824422876468879407900232788790787751755121522874658286408771167452285044391784615863543268582030487680819536406992787199731724629447395324721045698900652569719896248611949354187727924941589926914846455229229238912036982975141791525521657535281988006323701335998103048608047800292694282902340726349424290417459059890460936266883638950846819953245234849626682944629613890328615839593729346684121411178708787606096641336311009239598118960324558430142981972093479587260365858589469418898658966395982766863424812313333273532847869643637412107584931491392219602990708731666101639598516920412751211978488584161517351890643600209625512121988555475453434237332678802989830089556553094728680610236323058831728981082914557332340250453028292349132216387615010608662033976086685150733682857337215146736002976299398691574401319896190818778713574619750925198790091855580179844619582610624256686351791523470155112483655215097694924377839869739307777910339891085322292751132488573859835528592891707764895277928163132474540893658127536084629879799770161861792693168274951227996831692338172368549769147953821380521845003178059203881195491925008503273810919973433107600955662741577982050411374309647012166561805027687955169114917995726982669898224284750205507281678441655921782229887142503081609548569463702097918569550330829130352786456686820147561543781433728455786859795417279447840964465752875899209429003411836680885858495784439036188738230638061134303896910494601240798216617075055829928963529983208356007122656766120003066897985366869881224077264037367054615959988222452834966293454483490101828699384995847910504930115775891116328197253767468945627430391946244700926738458098492221951729896814382520537703902834835568601462468886023201706510923682875537490494462358336128696938986060371900884284303162138082766573053248979487495759991719999997894566722477764259919646709499628493983426001412566881158821832149893223147970259030011157455266885058633014532012898428007494587324968076303212830117190258011906977366787796786612166642682386594171647640526951082419945098688120411474935037920658894595555521764719328058323081759813393693136885796238426638862911541291836297546208364256107289268271070842871693657142552402820711654493028456697826815510977736115361971412205464172807415362061870945415088719084155037530472171264778559644552781163282837651925015868533175370969079396656015547871500713557525988744067469877537548009887383975276423636406292420336219904006641568655670179373690409363961600814895038631560950973029393844985259507731432948779119621558843403406697397976452564903618820602185318757072435021385865295890643939740255140765128588539517685644157283475240165755232477604005412329399643242226968690716248724363782409079013224792773498142175346379647684655213481756501099632872889592820643628254606296720411734771120702206334891944469416532135470015947496810778407402602130619384216760024163605414268671322292762104702130450342459838701621009616085758643764759142882657841084564122398407240976273236968337211845565364485424469601198740410023805840516008757151412357332415964407863597052187452606161989130004612814522133361666739779266245409152971452822531962440323695977655836810149699995873043275333972368863964862926330050069163219276385343639958454688248650112469804172539916893299219357470897485429351683855031515530375882429194799419155060926418861076970208463776163379229100389670982236458299996919371149150384083178788124201262885277931392743879144721156759641226516027066837363752055846356845898554292037772517735570200438613167575201781596179234736966630884490294303143100660890988939769122502651833501465675817479225156206567452137961639693415263988652730332549570904658709426399146792728595542704715329137169023767611563755838123750444159233462896619306944060342117684489911940319698894652629606657216618509672276121904215607823892879361708973087627156903453689640601085280399263083324964311683326957158374116518966639431901174812467159880077327441495836254131412744425140212133410159911134499873213024184536322304133939458102426246212177510276942824463423190272006763519273739372186313427814395112997139062407356388741106151563414171887764903066119490767645290846510065365001942078933026510682600203305108665302786369904947623737218167106924900663931705931148816812544512043661995177655759172420286412985025328528818836049289878063198658752305096062455543003184857473006601334654068524771819655613020210881105804860108154522783674672153929108871091164163080630013865733001967466194467926202877062811257740150330425976715640081460965616032376673403520403038025410845641849538918530959647482060387166043856098790463543995046580483593697913981293235787312661285105550462943557293492822570947928429123911079644488592763923043913056578246873920785730513871802956881752117967298628577188505786971651248271770204346123952691833684548382523500712954219642098744981972110205678475496161773625503882316499996318590805681636774391374787945192929657377660698468610586750194034336209824141154559512813324436333088398638447045673336498333635889136580415263201221032524087244794778298019332094504603233261009067289821518790691925167378044663660532825938300586439208320507900181619525205619997739240999320396264768917521918729801885239065790566758444571744111749614978637397262702063944295278522881819022730716020538754939365435558625734305285375717755389255733400839709074485685119467858947676354042675266798199909184586790483684586259233616294366183869597302975837792777960962957614181160159972962795375437516212559599827151162518346772154782194155695526992965943596198201937197656881384478473416722717048120613513383648397778722731200597855084246388210638202192381771078070580206105317322157455792744070161478888606697844879922912053198336010022682700660188417003402740934274967087166618324870079482580631341548930576820493409393022815168830038250649166619146306391009792528713097151228926419110438875754631885449108058756636245765020272171625488887725568188083461559264030530290014648829251493993287249830428414494314872351177555523688070870481779342538434665648589543802723122665876586825375876066410083721856569363772274399133076895467706477281488347061062438171682851587144575105485391545379599526389065803975939177961961653072041971029180994879870855047408811444815374130842020123401599049280161698088890695054730283874727188204944233167867030603658765774676323202465926495478667127699272522941931948578490980453716544173705344454556477565526921045750329949337834934003480941724941022553400793653305180380551149657032255418787702420802534695621233561072857538845069096490209239889874328616899195325854415510537634051559885445728708694053946809115846143932600340853751177512195821569390549705940545478418799151247771760497191856671905787951442361181998645703083755314019925910234696592448044291431571217043577447088442598515467125108473459130392044340429615830167572847372413754501491707068105563732010527329536284801160946437927323403274661769456302785699797925399518203124232688414602374320231627050547685102265702537175768954428489291863829631065447958035762084538655045078720043280033885821456853724058648754876800171879060793079609096551880156960058907735339766318238558223176211104658937520304854356614286835105444347631731906847573223697725475480641880393888549571300040144668415542474421366134996024672261313832898710711880859766360415905186601187794583580501740190381650839079543381499860074427446087692517688661350224508598439850616064880421696917185433818023086856450948894087175118470942447812274996565394896959855455336345722406068493613686446947138925233018063611029898394287960179296526474732070660447640111643361793477322619130672828629279095124567198353256297800302930660446477727560007904910537778315200227123101534076350395191573857003661625367980325556062694222111828349241224235799174883162930670028648973512556228910457578514772407226703242279199270054431224717613031041867354471129029909024986231215308006807982637413913408965146475126383525335755154536971557995272949519284132113027563371321312380126238905027186347971928631712240009879390495163407290415797826143530669435634968577616102932650190250847921729539586056482719595697136726219712460964841997039597944154490070235518281391428623713796094691935288385608974468798276079445876028012274157611973818992625814480568703720870610593874767463237849683400386077380751721262635257249140984443767445123944688280706809435297652367173461005867591792749696306212653532688140134918194265559675508952043264641236400346322558188480552684416841639768733530225985580609676795998819835934096333988698656621587833801356422872045574894642690824763213289933496206321897390684981421011153315762351826609734402949430276160490256656151741887617087502149335756071335277896885563162652261822798524040667586647694230268455892381309705223447911399386392078242264492653241054845265080566378723913124352086573912546157787525369112564486140843697313392178456712262852868083784926565831860623982449740286463661135497807785394972206763517788993615501101478196476411796192523991599243850749970960118762291588886462025294365090335244259172058658379511750077176853151343506492461472225316847726451484888380330122337727936905275337110235483269403309295006498514512151694013776102786059610530067251204570445801877934321984703810176688953844390997775154137145845934644062246344288348714578898111658982848228661780284191548391456531194286977874439605357994176914760222697195783151871446136645004544389999836544055062343061154301089138151290386362403051554794258528435423579231306002837014210336929051813452868600453204398070482534975170972940149878062027612421078748645728635077270688513101048328166763980598145916718126264133407697422408520681243364749234022610080724450751972109217548688997181569216689637582366724579945223867669016093158168257987733991353191177825659602681796101094939404316962614848363720358095148470419439438570268260695597014577933101781176127564889605288038827282587361657985425640767961246682399011208410529154737477468315656808132799592361208124943948952363409376888568322224498297829408216373123513620453916283335505930505488599347681661739622208293000633225431599061054934278159355461706957777151252506656269350602796248576142643191415112969152145282995303812235331272781071823067432488380539275835806118339971416200421538933559771117655646046789590832771281246992936442935885497665310211204439775425112610660379505736382537269729372884061212297274591634815079035571619446335135044251452353952323831986452402421333826530760443756016674943490503565756212887949343726199446296285408799004380435496217237346913833569392979935389978688322591906936763242976260290780906860075241455687184855956795873245939007041617233685928737204640429666518368098242368671777334022258718082471092412947444115040844026612190757505367650754761766257572956951930759797565613792769438851060827320603778242741929622917437674663467261496207040959822949881878194337767463639350704913243365787690785028824235848748554963053951957843038931435795834113645195705633119260107164515792735124015219951253832587663075294821934301527921388271193876903871777050442497515257615211369368516116722819652130343525459888938973756698318538188495429460087187383783113667156054632412224070507204016240861586165130315750239479328725897645181414908116701409030865934879179339768131908542263842565032867195567731841123078774760457608952816923437750610652940042531587271108624259251524502227254019045043596096587069296512358104104629519405195401509642244440574790289933053523621723512497468747957479300733044394866432013813758617157785083127139905634880833741673193231138133026145792905915205159683896682140136656640829673508488020821083399211001069793533550854785315908516817357025717279736927867994080438000480847478026757114603297774784612449076985240880064291428116563410090013883116948280668401016493807961487254395841780576508222126898968349361142891585991706148232684836295092851973763085221818428725576890660291319793201840748865279595015222333660999340142325032162749329459034141706209840154370823964567890614347786690499293116158826095478102650161851938137019348588959521793826519070164912376244861695711968005855772937901319930418147332890300439468151165868570226847879021276620170876275127468175100062441508281180212943611803043313068833114090835337963694888314922288387288846864372311450734568378534542985684011709308809569967089939168428067734804885104988093549321377796908218124857713431086659757944312497180248090113243993112100187392714005601218015004027733099103827616006257579520232614976945208099011261299354971303902596632781503387137323455486969050914900033589631716714111166176130350397255208806122163384034125921213773226063071040181912541613464470699375278800209550552208434225669120031383470715486454582447149290490748858734031311654306608306636987607352471024819383295487839829916553613930092861011629097870219381350411049298602623653909666834928874944144956815039787930399103298746326297543217415548463692867619024163107613408086225797199646821946813779313678399250380778441160505102446983842796266588370620255267025374829067638943100609946677270791616912073371597525817903529545834652726924888524267634102245779693214669375615258739334009510962146215796540229201553742118316500823129412621136172812930329706850300871529847297894676045178207690146170101347878810255317822040073356200549144345516930485573413722316215990825464872615759689959696542710961724308048142636385379998411138915750504547535103281586226201867641130864622263052917498763219708167186635580533605450968625010809951129730690551289425629330709867185534327285664546621606018296719229062610338711477948837371981856756976176663741792081969787462462704942684929333797239439428619545769436383328894428011980676698533528006870133700661850084509007604644687842952169871748658614053135463155080875817308869733393253093217710550768685446331274442600820174804100185954923545471737446541140592698844721106233903233896024662221699715793349398393556287780195062404453490042255541967275835650006599641398763100483682044503405346311044990527520565329549153880481524436447220872380877757497015247094993688521827278065407856298564292920047244163790456086244451970146410119700397936792872304955971029424313326068167783923956568364985799279584598878647750921495475663359766313640360140289869627998188593008782950149246140884874047514940564269891331951528256460776937083348101023009955019787627242347148947890813509847593195556853528675770073232783894102187845253337312009384783134868711770892479621538659297551074472226008192489128589056476379256665677324879749894681267237674530166000065917387009582254029165141282338796272638588622934143539984740184602444289480798792939475993024741701506243460699817599999727968418147890647842544336195780209092534944547233750003637482635993050807239330228668508161394071107554727894545936957107346263326745911404446309528753407924809297004335743845555492789883264549749977866360710436218213687659587492046223917980274249992668042131882541521146889671334105788348575051940936883095035720160132686213740641364213642327170263191762717009066112088966252781065534223330562255449201907233080834535614299236335910212715244883802109945285139299828739606110185272930268467374226019101189302502953793115712644694481844423822606123384287316764583642831783401992496659905607542979275183470915330913369966273038311777629091278066933442894305143538162789044408465679870778445578071102679711400627718891374871872652899713944333971571376502046409337363387649760489521519439693277037640446225916295038439691850494081836356738346639252679202569198102014377702455236773924561700021685334687044398413866016488667810853599411684948342785392445744442659732021005745067415766378353602704396623211786497643264929160529982123773753616564407779320177526751778764855349785329892373660951535225415005535507883357406711657190559435615260243973690609117877076952209867292618680258535932588085649081763174873008022092142816654166046776701420830533453153267944975974038928857897236044760867882531835825408638239744191924938118153334964687575948656343873826886687165078263293755386108312602929850498528306053348113864928901346715214946409590162894942200580843143481663545533778462003508704054481630543108545834024765892188298015431117671486480332730334012200573668527100538667829459658943029953303337836183353247393748525132801507405180531803684052114577441823141127609625062048012574018965423775306501995542603772688852810667956477501711601757777499054954415114795229323627987229506772274066826542550920728464216160128454779412488268971784655066294166532481336867996474682917712599567673596101202122707562351402961361442322632644364927859878370140965143078963052330961949781977942084511094722938614892230483985517653534305223310662958828338704230190441818468826222656096852088875391673850622179142975665725483848167196512617475078860208533785189576620681693718146658462271945318676827838131804154073365074683956159113398495284645601525165352732277389860287448623583824643436374221033654707564218608158103403969169330358021409670529746498007796871767417233496783479107197015609447026844747162208623033838201726393957994519161001572344966622221040164649100716270996875470009208172066060081605128275672726492914470771827275642470387514698691748953300902513866851156699363645099592695133999904420485627914354203414120521949421027757932616233387102098479015054561273058119199362741363401346927429476544622082725368274284735703352689804923611215419937798301350696634963167447364029305114786748798401157567084334885943661974369830355959448038665458259629618819698133957517414763266066643579601660426247738569224619454456645906720601512696504929386150108880282355934121528020313705245309387121311853477625720046994532132806985252550059614357279142037711207682904216673333034002764764228545167585100446070354769368927816171558230393593659979076488906204528123040647513420999671080863808164676922764026945581314969970867556576445435097763425498058755303554424803217041223131751619306618672022923827721832511856424399442232123188260497091353286572476481338014661761319369597238723969752397773647561444369357664695117312948552374385727160928027386107955843289563165685327227583173993996304615254882635041197833473112057176636063341478343845896529820699404700587032999204534528878289846392421547714829137483481572641716289853014606340186948240949709131830460254108221679462982246443802808991168984298329727643618205141479212716477990356705702233211772163723112095739551150951565629686485332701713675443579036316427774819107922080964996118406789143083129100759496615766722555355256113430848614721490573548510951928325235846933398602116696671982900121728263705996772829827915405209404928582878538363701344125789611462165487502588292852837342381358633966842673386555144472770291972686870856577784330210137957992635038161584465074469920178418647754667470957969286957380888529002727732040859012142853401952988110986380579461676096698839049930010392404119456170313204284509386053903844149522912202121500281028479759055827429286714946606346174516463655013802334513444450084193342359241021205487127215988594802119821400339951398433761558689446006491478656328382288177646235526308994573126987947197069644504874145995141433633101246147643751177986679997167951375709494176924896989974583057718104855433725309521621667357805985623137446898070115645390797223440126556611932484822391131289639274211164542861994516199557371588651677357242441462302112338784158144437482297768368055338866105068415872481823641046909627124067986904497265466110127244714884548310691160514516700233100696024356101553475534092044041381643788050469035045539183907154136288700413923432276417756218672231286682246005630797828483850051444285638492765317962553212282800095814170314204791512641785985915895501270579741536206939103508914150711633912588965411741240181082424291672283803360745658770553795456015004103764512586984305782505504432944449481255541798125322038596278520536690915921712004714869605803614798547057188001868358087467677927002420485505600835242129842734920465136843348895460388929911273208787826602331795840359390885192606098371060611370834654102472518103490939388618408737774400072336664991958734691282377233233667365414346941176940481921825148878234777813141216577644386827792050965030385613602883196264015822703986019629523999840455229851745877209215493012359678588731725372593388565744252469935556239878764275142992412955247665106183064270054573262839683653371442916971817116599039759213114214222075384971745254586080818913276146067947135379613816772586663434292459083537160375571371104334977348633041847077908240174434474762400588260404872084081000093240546700390156406261137811664236509685946484136418472349764401428491074818785555267409421587422351652648245475493970442315037934748074163630631676824429607166150351671718098660877835059770718787335590883939922052778235465538588351852980649174825097168731900532159150239412050893015262375254330784335731854478268134829841600745393151657682137075566788051209926034143649089134936454485711468674494334443422998305835455067845114857626758044237529098875453387483676825748532694062493986702276979112112408991077408325660951351128521154082968324343023177850138512627906647382287139800657698680693855393797820772512123140100096103269598059561726223552032973568828528141708767898264170956850706169315202380144012438653784055762203559158276432446609455163067938878958493903958590568509506324317875736319075322691113027571266721166074230638410631301153569616259929087438698451425963786376258139738020900336791717681890780530443984615063145390640856924566826133737658792265740067858435513329016381902553601218237943956520570396701769503524569718688535412494860407363493486879552110523159719558146537401887053219064655772411820448761160869807879593796029521159854761022902727443239793209333369756817771253159777737789564981349515522549997640858812112150741056299690447566620583712300028836861536140399075427319926067707398386308185172325335413645522315459852203127153473048724032518507103970541982878005488682432281271565530414641351203256008637598419831569805708242039931401792168503500118858056605348445212913789684619565591793306257368120251087885278811484495470683948751774353339272218489864883431342893143137049664704841428183418630405802473386028589572379506623487264041415908700896122495518239088843486847234161609273528141627652018490371445706002297787485724821159834918604049753715298041482755708831051488467315859982718664372165190758089885841231510357319164502608600910318119923404083024664621751691254312862373788231359785065958180942081183408941644494904805935269271443443921605321734994519809353619188108703965978237565803263602076975253406019137274773534953791592372598709047970084165391558497075092121124373544985001252397280489102568760921715139336501768325834113428381984056148708991294824088385703567637311209299676263186551795605985908284660236484176516228395331581617014070088760310469742779218656704572436640738303370493524219004559101735101686687634743536928044142519231298113157191872511524684970254775536681520742033681130416243193615721851048383639231126820023478384052433742018399455495264434260394504726198134832777452224444946831188465204245347895771472806214183486787355780242667617804570695774186490553315368322680960854707066572703748353667649847414804619420592167285418175493058463315800681492327612732966277428057786251913312863258194012189445818546821864877550025877488615243867586571457327030773473621103290662035723782226055723699540345304724642701145604850838274750569254460163967987681898723125967314432300445273732018719814970787409844257732358859054136200771276372310224439858050155506972175185983405630888074871627833280670181554069135991723724599787821329710310805262973944189259751304613602615240503393231628716199286390637630374881465231153113915074355877006604308662373473433699534176624823102447163224241812491963943233125979928493320081886523604413855509842972626740704649596697574605596580891365619394158847292224369554055807274968122647616048694713806741286910108626194717566966697350812485073666855413168257204489689163776203869884947975293789088538519114258780640125274663742918983548860653162565780994522025343203627828822670576539184864028161413733765278003645366177538403267473703051039408744271636888245223557278356282117921540647863316821355969454618315464493336595828441803548946032744437808577353155135730197358519958563602713419846497837869481010385714018461357966970843275374665740734355092815079718696954699108765570143869895555242964782528402885033476515069041504897681461019475483415854344687836842880554075977750169521521630809979580194151674370045222139076647521983814862292267179849615051823557305034593471961911881699838123054076049730977252394143845464895879470024100720174875919907760065331308108420380842760204878263146609992263191217155758977316089596849114125815190988938059180998619849525668320011208569489171964395493320767115999501620199287532082487230765012262929354255598805954094133603371971578667203111535775328744060488013354802121884345837096406624243431203786832721370099092037745638213152951614962023851736556850032612971633959699457821078714321596580702851759364123276212790886329353279137942380027295146164334158523192683060358643234479092104095021226156506752929060368100416333353992572730736593234400689248340241030848689804124567188731487018993414406197365531506241936975124464971320558252012451706630777080641889185373291342637097534275320883141818928364651847216830284502471919168570167944260647995499186024539088540780971957571319223261306063719429373469219084634770878258004342187888582670451182051302616626052320505885459638118967352751919651022448343944642700454754139515342785542450432062325428092108360164462950303743279754115543071775824630600464155400423958706635491458014810098856901391077151666970272102530798608824792244702772978185949256264954858066393259194477375393257506092942753247152800542840519622751774423430444104510594727725271450760450444989636235363609365207600567472184581348201010780408229798886112071148668597203833703167718109713455267334096993479045925493821017533922018259965381296674555725662842887917111897329292925769815390838077384816711249391843114710300047533970427602029668411295647949676579989554938177552286039602310303948318961113924617534874928584216528515465099165367944114091285735796711226483832801771590642583245145423987575043912017279111971022569266743355527313893257568880113619766687472095888461281813414915895997358840407268715953307123923972312822745000385004023071336213191429604117235046834536807948811903329247231258430378390535705658585959887709327414341015187265674765909120025699582144221268901766351268165568729251362362263703352200610292334026573850118560703452660882632597534706501613239810171494453944445904120189248714114226953908090703594951635615211555226707494519322788278748071321198332992355801155237536626368466036955867223682059502317625269147038928292984992305516090379651655103479736788612692662022496228112428958932708596220316084400364490000985843241704501372906444107418374635132827022695385967940655458955464767349529917607226380509707816307690989422893355250590098983332383271002857726223124820859357938907687281967140132362331799224523143272522460403125670007511338807939634564275013394937825513826905309767604811498800258670510515607428618748802935687862713421795652338114538935670605848459105897771082449885362857778636991079667957974597538426509961071635649600878524235940007481429494425045504408808973287943758877116221103920751597063451236648338627309112062834720040057254744613554608801235837802342930628494394896247163752823119618522091900363752689041748745140117565762183959091967049839416646865726858107538845327048091682381111589573507837180634273518807429337529228909684042352352977308327603136887466583220736493296526993042024802036034215398885767845050213363945606752031141505342817014079659770658537359483959612519267645829785476237817269779871255624535158806466610230042821005601344677528266412566281074393736750371468252069277514623115920636266765868893704627169571301236262781437033199491198967916755894865414821320816424258344266520222482920776029178714417443325825972449437079521519023318666702097102908602689740655520176250194530388721927164832573295662626479011288279204818228813032869045556753145804837021064211350152218319538810601337529339411131510330077255375649713627309457261298707571220563948806318963025298460390058400317230871651110556493158013096734871331428007539641854182658977541049551796850810043759937950747645060942237683147014162663482516265705376914171700355893359857216546003618344436499384872748701904225151331359599992160033596473356029498219570798008141001546307572659806860889215234345196793198334793913288476193927617721659540302668830394595050877921003704862173902831438897315618122488216675868388652764048821417500287871320536316355842131054715889535865963766142614831567767459440678825320204332208780171262843791190172401201608818422393238694692710029543344061393999151717035445127081433288949003505087533999409850734898762177037221347600647783620263002957248338625606784075394551040290285345291206107934518667664268232142834147975289827187527976543188949052896424033989550802972659249475700839345229423906988129082637292531984159237643117720341153087765254459973387315867731641300798019411306588174467191821303040863358095617956132458876231121542266620255798905482460996593800620445663777750553355366606788702321730374568668995526408230573111760367456171437232569244674748776334417303976662592381947695136272849462202366498688040341762649767406517419834965200002331599597566215702747030660910290210436460701297846967766761501109076014006674714781121423040169546885856752335210804494380109353109060848673422272096718765413323323370788210816636914875403497444953701733788002602478603142640338108834093919071875554893421310137182814504087624578247481499218644855386513038328718127074934316226380969354962783670431736246169211377723305040447540466742924676079508421736440651439678134967774940589089209885900086085484446405907879053045887453651898294301193569920395550888298083605161824827386430941866856934859944799703746289430252550747967375989548512025523877320293543392859293025085764665240817530874348183497567490113903682814192910293806486544965380356469517041958827514060046828964489613869909314761865001614271619551353013005716469174568585229453845512773252936571160644273949754388922891200434237977538390441551533528205363767761679019942510204232879502976020975767865130845095471980991339641298206946513772903636781224046868340844094990376709991207293766213637562380528579010673907076201740414821994198128320450647056465767348009508169444746567766291179100978460999075301786686094939517974788980417606136910389919076430682288515597773320673899805469773117626965091364104616917775447702334734312806446985338385127611888869785983728154097929251214658783992799979539934617011197346704175976124437097226588419421234114925863767598803821869102923585640485888097812940899678962574572332152780092929795904803762435990857613517452699466931117727202575562680553042262017629154365765887061559432393166585693012269349618371820709391691512750814734846818201975228945200724733351479583274593429875083259422952085497839650860166952223530644950415070878776619323999874723615240679830797099638509532887886699297932911068867710842502229867937672213807360369273160120581258618416324337672675318255316729187663373470428116377199059641320003627293168588557344250277421322262986615063097126965113340159668030638701889809152680486777245490708825174943368703242735061914567601821519207208184404075563228791086725300061245628459068096710490310642868085117184492912807967901178485305625296541208563932309038373314714144770416787368101788141043430316354609482812711213439954089264965033657427864942987043274874661959088911723001142216935179083862707277206413285703906572806727098911967427245852546007405904710633852673875754884860534539302904172117793863266553726790979313630551808669405545491731141622603898961373267929466939321929923367142593152135964919042512154184135671691631229265576908089209928176420854596332588436198527369970585507974974525723833646466347326123700045919174444188656951944958821265002656497773726679773833486933578490853105815765060967611926691101196233602933317999657474881169198465166093408317561123861601987667191918614205239239182943546392381083166258335969524814367831404488805526973569816583724786248708304822477543580752761523683502923087101383294876827247581166418322266581020781289745916471039911763986140317887525819494494730687939581818974266576618518593698836300842626592418916495014542407752799006148028458081258012387417411330080520862132976324852923480551719319625931385443050530604321726335056952677582453633188743554404161117953239642171083252712336157568701712548704403161742226009234691339537871896480043198454684071384156750933825068179852127897981795754107323604340448840711092940971268388499117169272357832111506599462835403747055245717046500837119392366640426426208958140916777008201854600757691345024260510458776744619244496127172634882233986781188969970899559554899438662373061691491090907102718046064150393135657115939962349238066601722626879751089613495735971337728032658728251461980841504335528920507951010457453561622528352581682108627248978578834927307580099816492313046647660869214804821931694680601226426850041867017634383463583236525172282936843642721488557060697599018140363454066493048818163852610559444599777481046664045541802557465579597237938010837145983854360768718587203264803901741472178519248219613683073527447784631444155754094797878895173174462597415315265547199579603100919035543940577291577459972736979195151370402563319016733912094413855048394010657284572939109759794046065538110434872031087162179986627534888457955098620720785517662104420931883653833851114449079388657492622324627967616725768389852631336570737978631579227204484627931069241686272640723116278324288445814317386971512527651944713595043837928294587249291658920689682177996114709493019083770110868938496176549110185077763590970208044725045831803570935919410385192007710371989123614154060450842628895871326165637639543817633987577180269757613522374384406851894469234192005248234504541884946237880801333865547226727603566161256105433906605082156532775203120966868101298355636808311564077953883088933035699820090532126323473671261774689822653269722720899713763749519978201845763360658160273616707238860382264350584198764902316643654822765696994550345057727872619651759475830830030807538779419752921072275239840211606520063851268410539820631303392787050914623779243153155127027364179558117421524233611584714170270782265320114958274128491618893315101659828141873817488559692155362029468293710988580369771324185819146061883953668438161648769908037087058728808591747853745093660812284180810353693677988649186580400631534270767555610031865358152600140390241035533604408369097844989642642022761809191525627782799898479585977842035765910556659519076463683326188423806388314458112579690594568316586437794157892546034038465982685872597583317119712295188200826847602448281055988386553424899369177770275406500715645962140595657035628029780786301592978014181546338363734990733327127319975927413269517346851113740873695553279923819762414411157303241938040012782006710533937672596508382596484058965055387558600747341710957407438817930215619599930420507397515206263802148625385537118018163929840795970608798501965441501436277997237487989772400561919368194295128118773866050736518288392628261808152930255473901912139620753604819509868266720708980090348697593390059167611277101237511472773929751102516468266354829941909274881512789291622803519686965142963731709834229354237387842943371782662745266714105222895956855865627101008962783049865379224483684385091087331950604390873887070107688832853407545483642344705754810390252007151571345743373815015402216362098199418227631575756405285873157210993660704892475702310176125763515052544183962488375306280910351497537644196734782751153938712463646733192220039670409752999321761531914298055110514562364399892452844723781080981872261984268274647515842723727496096436263821913860808407812206626224499714362827207101074152273115018212509911366958298337026034925665093725881467661235343643698369580969404495368459364173891679661427506365297842084664408565243500832080773420250434543263470726470404012408745112267680787329645875011633434788010736572002789923098328984331582012671356256339511598779380890504679826225928296409577015797344270659853067003637710030031727910574790066470207238610475592154095283167618896442205799853921023652167051570662795794828742034192700474707837592760854499595410356258345226955588546044323034347726189034222567361120563775311960013605485027763881076965749352372062484693201654802171441509840838473241524175778486299288537087133012417483803794476184203684860453578672594586288888501106318433614629007176823360236776032204960682085813761447507615540022757438346530698598972762087643010294737108344335705803009564404107922430619254421246398768278521515869981978845921504690920091350490280391169175286260455154858485705009567042763456075162857673877963744244428480450513851031793395178582461846094537802105557216168518647261697579410306710640345913588195106206976579879898048938346493302478135081996608472278045060624846944570577898087561138690850073773692681390233894762868808343652380387659340766235973923117927070447894232737247143031431137535316682822092331640224477291738116007887710829337436225876175377027303506549648837960233762290664974705880245536708448315701484779633949319810082941897130793916369324316909163730401188691060807620002380927293391661242266744390890281951800244887282101192591309713346948151440497401977532209873230693705248317286272879273088553032408935906260759970377607691936787396736941891685560334287443107930597543874617021422957545577252070500207463727941394741242599568523447310816076609164664384953404181043198575813932462742832265627968560328274954283249399787724956164974732738725155496316678873897806811568782330977159298308414983014720620905216266337323824203181691346513760671564127768842960832821629351113269605708557715317507746250438280213663282416738581273980340909467228530001961934697403424288558235081820062555310855159749296273797064400059836467218129897858704866654855493099911194581490216574908788873236487307102893987788608793463644444435571953390863319653415865686736896300510856625717739760935151803058295492334804216852136453407176238413941020588638469650367097422524092161395120622896867474783721423967044876712141072733881738645002105617510856946958919777261332729883208844742727374830130866816280493429593301033325621574239648048383459782362025305801330376609497654628701788063130387342258825716243198725352214472974478275311029650243545121545745256682389161369868732071910973032789252952235069131007673352522045755355896293218064097977855045757600866962463583522111259584180055787574132230573600907796638671861372371052540087100239218094434530108444772124501137808085007701062994898521566110948198360552102495714749415481933880950926174735192392507570160506492144136209773671093802672509045885483368925021961404557770188698229408676284024110171167527480924037437524390570337866263077716729209982078606635016724625378354401959772416824204727969938912474582546917632687340160341236918308928312276266130213214061462832990117132536407435284517013124538193636301126122412798857466749465905317205210992906141101262440338349434964649099770937890650492398519442329325685479778904506562848531841610512915176230280470270780071834739883703647693717394738178621063349907476991631399707223562077808443120168614974689795301809165092887155222374407770065992814408476516288154094174777943769181159611986581186986979577268190996139168763786449357959909550856280955733435912289325454235303732100647626281188670362233043274491768985263682951143931210367417620877469487857826518249691776435997315774705822421761056950836233314039178304148583850911012832075588046320353472935848470263952526906455265410248984206537415764099937805164440420844691945540041516571436733435379273187328714989607924983454494325762582581571033346394427621661061844170266137597979069780733360299200425090462116867797799580707241086089225725187820808035768084768721214753553592500233772005814673799901007582664246265039249250821461794146294949744822195226947842563937461773983354714669330246055863362799508182500826355659558265337113687809576110354210937360231299332093822814243219955304643529286520617972095343484785911245028059048765980546054218490534278002608607213452502181561188161984988784572726136158237426692199019425740996061510377910793231877524374951639168395711573963481654808799161926143595702857138491983469514565391517088844000563070753801608343662370669260873293735003220400749372535284244430861435059608407947473208862781527680752496703583062193344673958639673563997600076051275384423579770917639067748305408612063355384845649852331620070156911205167878833767858458283712544054907042030627076676271578281664285326563980510470074658968517487656738532852807035525989634065454550337238026541496708544852298378739155703433447269115033445214699070045120931605299176374914279795168893747842582254099437650476747480814532446892628233109914793333346675753057224625742241846700351624914170269644427680518429686756361471844668252495995124774098633399595452893971587202217522237172363244535294466834133755189993204289992223104377643414619645111876275918433122373867493105490290380154499021359842741177230779868025266990759790152110488946581053030959020292496492037728476639781309557528050226103967315779898595681889406413853674205295396145036834957372405396783282916295316400976012169954490644686215777172564128629046179638137041713933266988096056888892781395144010867764022541795843517073426957636683826524396240132736649298467246600110704586625610721344640701313042876766334736389594153104191942981852201126699754125644828704331281902448221698126660133860941248736453573895009217357627530129457357404704495374201831870186528517806986688963565861661239701840601594139599529560011377764966177226770393624121754538519394858744982321056504552258274775705873275957956986074915564642801566778813450236994869341049630013966206821502978304717435378963372589562882382334442303163729839479835540162631952794642740664393434886370874327046586190981835455337456274445778366474968500553370828176843796919404996920752194948609544386452312994423555935465985932152414190793833740045736858591637212748657650270129322045091396065622381763129778720012703901668294242700523997302892075792306912749074407926668407219813479671068519270405739249341640135160296524495016334138487080608557656906205693294748974616033355613748503267683203951878046467415698509924474494055243039960079886672491379415592953284634779932334786373159929949232222358186468451801160406376390286709864679387141918168763050103802190046593658257213494467058810914853982623771034065333680381512272772111401334899385684722435753308402678899858109397588160610142751873136095723072564490293611150994765566227205138765893393795718821840065908237409977154552212716419470173113435098573262882809751470633529178457530211242712254143302529946869585082053746596317012263340605607796983483696433039434201102453892540600088491566840968204539061722384817207244351291698458288149353843852164885957870190448254373267870322773698284654883863019850114706852719661169631384388824860764289686516128957927957937941475477019056223052324420514916135620577412398351429180552197907910502110849314337941247242786162200490527007510385971396455044399428726297828768147730243912304545367782910949263592387773202355663414116430364111202359903668820295834572432155877028510612864692957217409811177096229418283489755085438746358536864903541910277344847163192588495943362130973014624611936091112238090838105876675321697058228220362180386556286150737156910399277037457038823713143104507689192497216111753309251055421221823130280785623401707726456149175516961888372089632885035276434666996578841444890072142271722737365628281260314156915930730988345548000553037227909455737685793401116443975671934277313461884686136188065541805241558673505312961872400362536450148346563554201687586938529698181364843402945617706066339447891651251857582870271588195163743607838830315487340554760292039816172044176122401702660327693002123438967706795512864988707673617632941724969342763949231328904405839513792812416465133901523742437996601640729160310188315393226513197933717614722789466112288481666372291824412182290000421248372161488067223485588804153896735829357640204735538215838354413464236082116162001313797285594075490254892910507682309184384169959567368582627650942348325166254351750923230578048349013103996258466451953979491596675535377079129794548390090050198637729130266462223032950457309199358015428004211401203593032466427966165543219214697403734530829699145901515969968743385378373368298157940576733617617709747302853858825211620323581744315854716056949489142496807516209942930061707607811826543619634239512635810197777404781645741999833305099955937995174514004113728018337631790929158745789125269856265867169884651294871797912451270348132107211859384504433073976239785961803443200553882379255311288357580314402596429404424038605862608451704479392129124456682175887326924042108278474738071195284224675493002049113595027520993884981685533530170137058099261077480397497994086609337766614271497878559360464278643740805303474962708313676615185045020757956357014812440827771138068116765514693602512651134627054523644580146356399987402612765403671836824248720771122966368804163594414120580572688914506773072236515437218957299295743261954097022550261831404806729094489870144256367180107598703333924885146254096902982525228354312129648981210152009807634519100146044111168562674549067233934759080848529311285391916820902395397472947544753516252569367957313413199774707920350912769293996907860472509383271380208494564820654499906854513408836210342236373560709368216910957307006784452214186042909879525490970197664668728642443504421833595440646691645979730985252742178386700413349935735537318391824731261062681928094763323734864927748989626904716064444458384565511586525603944733173746875700645950571650342160539509740376637799893690470198666536164157969267384921788916515950793485374250577364216878130746607385562857826043329308674167270415388359246174255064244919906166512209889084448138615313042022036823073101395610771095209658260533994213987429463869501155209627013382162429140928872493529312417726197300853884852560723617087646820019857318445152221961338358697009057189975121922482031218370074808776541566316641913344799958778658850912772619678594788776397802628741394051736500101703325219053157216891793461443066457742974423092623846269013026926958527754108404627810244291739032322746304080453049046639988271672264158346637803508693574133548452809237400664720148227933472184598866736586115569421450251307707803255982382460675531446101722938680404359727990554973309038233908830132418887517621081820911689890339014355022306963984298780156587447691191054270624105832608504717729400846986412590409398899718597063784974708137195643887850847595286524048561318844117534956152217313042536262020642488876923635081460915003412950804517731907589219461700809437581823365452066726245409754653113147973235898576482465418952767054713398483274661219158859674932035531959202786657718831069717567464388316307493788393444243504062268855463009734446080643474396668130945669397773884831488038433221398882847071977228387130389155216085216867089895024612100899693256248154351247939821457798937906215953639078099528753752830766491841540853560828699952770959751126239422264049105717178762645740556059765634871345788421501199252865119286556702291879190092649896197184591666985637480353293811439921189029596875752570429599586799838238338726422879330363706307425067457506510439949752865919502608953411167997663107501847343915761916517588413859187656876780041812233014116587436450036126755937255627737112532656364719992075828649131036826081545008069618071339122401428153903012298910560692026570234900003116217200159018297079136689466966274578301115895145474510616360496122603045803465375182906986693073908626381911604998869673707114117679344231896188762133742061075916681576492559936419885190952199549131999896872057117684841393440110315188285046350490257967603607924683910940774644191881262979378923123537059114634494257653447504422736984202044333418221205325176992171579743417654369501982898093127277539534649105595197360535517413528787989589521251338807849646720298306946199309459616751603085965084810591245033182459951369337417455293592843687634490565176643531375214220612313050287692611159724943190706294616524752999816739583548341823876371020031355991512001049077980736299600068839704352400967782564445861831247765454960725382130745683280095580674192563261082550649125238065312694016013568491801621925933822113458011064315855485979877134462645446874693475979278168383610155329748127886016791998519542754356348432167636499776446800269243239621213842653067368097399224866139255330735865278064942127452244909676821509292599502942036671071097862372627026703417612324093262944058572567893026438255838874466545822912721893213127557056713209066688740702789868973458007241798675053252021532333693387362433738823958501838831021799725394930267071655131890152826422967324176277478134414560549501370925225274498960402035612795126976831143218868383983824076475628158707089275032954539326146832381758689135406957016333940743917755990059438522630246535303151363118093640152899126788492678696942445694531295628947221450050136951409129458747610632809571976880653829439458517759078631423497761262835456374157889193307657389533320162709695083565197859374940099412992259799835195446407761553418225831243808097658214231663389740744612304384935094935811311008830390797697619097909775143875640624550080759090426524422298185737017544366505532292568198608211561571558079439582097699461418437172991213593844914607121845051094879851735983029693896202195371190790826670847606097927012463737382289575468590155538666795498541974882127769605557097642516245261746205841725162662942201679047312708096225654103258108845880944651949045054549546028708317407264294562156139267864295572099328006611657890875280716998091317058322545205346578905845781779315481183824923181673134255588428898007871113962153032765037896649891117906556851663093042848350805742666856401012720961353857340815359200635813250837054000180937495483482054940099039173162449426735288769873979923176727114596467465333832774931351872562579920741821153637982236961724966113574977734595287297227425305191780545268295539533454535981695613651477498068420617219975358792094708170556464122464342681642730072195355862055713920955812177297286978015859210830351874797062844999915401064144001611775097278699564696684567544565804674561020051946876447837038267587388853014579743073867697367724221320373844195042060126246437281797420642270104692817625981207708134102230976662356360033641928171260792612701720253289246927580399465670354514893991201269821350310140935001820496384747227857733536748727493866675491659934075051682847538564159220207570797193019320218789746911890490324669474902646285803206950617579468349883889727261327758399108375628497100470865335534684103234792134011457571585002362458841950864309358321121587717688322227115395539632385920152203447244309812532502943239144074988532162371805851165796966916157367206913313294553543079373255063264638188882257301644310116332949121638804424571709583417013474815992749172723290284071124616717971091164096922970544810386197248875175366684756132427188835006062459542090461952796927069070734987588417171116014267024956104341473332605773043707323772396595423159872587613783329638691656669843716955780868745018053613177389653776278552471210846220360636189483633969016148269095094716803869048132253680774034499666430577665281901596979041901858810467455482222720275942992976018632661367347997903920350691797351815088681707512882760072508919237490398323116955868917954471221259126986696488340261031648794802396149291543523938567285354415756960595355833297405167254477418617763443684006849435831435028771675911268431453755391826219804046301491815945388251528386524817062485932436916510350787509080685894801668290229524442571143271125193857682185737931598592082680434014212744635956911897421725464146148757839196764008291568825541251062635425442289726857896574469739264635469011274873613197917856108338042646846847851534626028600111900027585363135748656213752400761339396705412277694902054622596798789306689573944719434340669996117259489339063111197820728513348737504414930974645942790689792320134286184881839447376594562094133478820013974225176241929732838212677476429561850185625565168693203814361546026510409156718113200458183297076572411519310327170282074201129842387857416092556339362549204317092911041185971887586343326359313525712568478534230514841849011884506421894232729093438096744083451804397454943710112000140739604259010299739433122024854995337182976651227263244081598963108461997647097460680498880324139100350822616701490397538212354668193129330656489183863445528753017118569926685027698894182942241140316790594753554215350302423185360257672201814698681684316665761785958421370312620762714148379401682515078533335507207260765135007677286082137274907151747413522962043658620771268573969405008992749883977150087614009154309724553535795838052968839526082804276526428917670422909826198598507502578479765577587019461780647367028987972291220392616760239606585711567563154544604682821441313437313407867805649352370165485626779604624762059683615741807805262275851650584200098347713393497564091450598710150727556056392253625743189281415506008009408966166405516024263813942323549254561972804384635164685614350105695658774622222107185972307080878185631209237513685513632446158216753262044700874797554817050414465097184962889774079184603849960720690205391874810632097414252067513492798851100217421232126128168687251624925485615117775828573208179017080524186425194370923839716316392787897064236563073705029763554908705063194988640403156055276364882720093289360136115610599319155147364920756526131043986656790736281056352852563882312483049376733791253397294375934156241344543948310168067550088803791777788453755052477029710986955212539405049524510356831891058431432962601362299388196157632069175054750471189414922447517149054655538946010332172287044654265669658625800251936243417051436988303946519664233890612321928979185581010988128733274356333059254787519852387551789575889741544659593775344990589599340058777244490637364369130829755485425117216006499113916036503945372125415394642891523827810008727445421541427379964477963081657475933002767465971223074121111342079127430856897102432976491495765477717467166184625049117015594984835929130736440613491705907997039912450662042764498574454709379940464158084819588789189719994931348557591133835815460031050923136662953756359081845061709513854451934038976366313800670850682741003344692693465358753679227113873637967434018741673667812163229468651227770301487871258380328008809674925280759005386218993399381519452467263248360895947262069887873733805678608153532354745620576622326192253937222094750088814893530682401823841833529601751305916138209072677432923297067311396220543237576801384595520730397573410980979725665081872027351978661576575537439792913496579469592897783145737795945569540816459859324478439625321273347521050265277062685051138151721940253977144956173120520239163645986771674573523873341759043010201761107409731965071347246306578223705130207243098377207561740311527530056002767606210363059936967164244615631963796345788326763560473471540213668761416428780953428081074914261228865587896362428508427837987433781061779333441712060975456763624499415434805849914585865971169257940171708781160103695727752749125206609643436142683624755160613820883444616535821369334257041276731189598031824451294108310070270857962978412838602194707201486991383068971930708733455788434192366360570068154718312680391870094261327928438636534201921123828421329571247353714644928384380062699638000067475885969325093642250974746860556023506320534616874345868872517928710334794250820669588873938044562993694224766350432771827833999847606775393392912761838085346508564219778688727057504595207285249310451151142568164413385581624707205898184054513053449619625286866867308391758446678923103636526055611982952302414145842050352555839393111108532534388972030525741448484513202578852409999912305518128537476536355172260256228608025194908957312841929630361586804536875138898460037757605249203562072215078656179003811056049259988844046222439136131839319215080994354502255054398426414496518644149757251058007461639847983805171032204302658079754977952196578790845572623966525677020772423574768598123572647288650475868025097125981308984285385758726559739446492666558670923129602872873641093465991022318651245972236770782237064319537491767790720841021379839615478399396458842175466805348504218014522673379832003663627948592344895568639757281061773758691916296553600341328635970520659632327417683490299765522277046012450111560859959028443994851327066404468219519970427712308783324112913051268596600343332657420575682628032252162578263271563247586010444989963879622310781408787145286351366260132838058526059165341952485238657230942592389169391404318452966171662589738251702931262740333960067201624569774045605091709965385837590504640145128658843114436364902695169097255065144713633886794219542201443653148025996642371489829113556227925477170828632644933471522035626909160456640293765696093933794382751705309876647691325044203707622898995634642802507213944480215133320215333888563511064457608415556020970137729211747215331233655544681633599272523948827868445986052059834081921687930901709892527473263578669626242276496828951957029789178474672088704332298825764169294737647796372063011888290997588344453790679368740046723951092748851321410246986767296024314434177793909060803315085249482336015545943541843653442444155276750332245841269277153514328646067250615393060232133576040362742737070329254839754360055927461718727421554474933557032415597442029612348897642547091558878409368511532670573951654877628662913383808191207452418349997664530768279564292052832952492305259059013778419795721488783882784271326834120839025695984273906802733744798997095444258166495080121070609863820657908215820310226343919201853839082218024812590484833481486772629971767596975784130035758609743363024045462353141625407316026412309196044952223204926126443375582946948662139174253834722539636286007108290176455990180584008575697376496142024687710447159322064496892141191230479982156123516404383555855918063220579228333705343208361785132425746098389370430308355007644571997653063902311484421416770704209269995425531307593934072182892556420646746752882386845317912648257963306823631251356961219293609876264495948002436094590348267462087541382457058927531285903789930092168692196131196872703091112668280958333590980183765789367633473825251781029494221281339996353317608697961611100921890564378044521039125158226112166009524546139869867585427740370575392123559017334802010758438795866400011630719450717488070205745547883695613765210315177678270351597095282708541809752098386125585660381017025635746874013330200305095008955802082277537372818870764510751147850132832254129686001428925084197981414909826308545017084903322183473860586957006166372500015617873949995756557856820653647426102392195123329688368499172638667030477509901246261782392536188009001610901627341701638478758683352925788534754599127767915745090475079740720113755851277885148653360523096198596834790584550791159817969930080746470559235754723368598338593305069653940308024650330403989752224465407179257906955850446083954065729335019997636726264357118991151327492958457734803607210685102509165236851696405403885070890354424366589011802382990472586065412795431252086639183479666756230649548449868599399779904921113922111684445579817626582629955032509593715461113646900402283298710573853815845704895515931546366092194871042647143761228218970585014533633881683586377214705041379669793109053957660240418162475523992914183782808662321958732225939854338417278443181264274630214476910251946044754730433403418039785989540086833398037113008051808018166264508680735242732068307232940338414319508460583722591852183929535312378138623729487400437286471280067406632149753253898824455248502049669718311767315697531027003171216353536494897513977455400454235531643860130309502544946403797924016311743155854747579358983637220298537687374883732874984892560989485870810203875239972338176002027386587843585305958442562894075486719826287269580878849370774979487267763804190446879175197470411567897193510734159623534243962299086670853040608980514195840898572507639818382739279612801971386977922963073736598349184686745360946223742386838288275502530583121422820848078465642252973192721368013621205561742135833019512582992751425498124114989145549896333537643556383530570897946304210916517396822946697096642383208468881156512409108476049600517647469213156863198940792336545410184483158620886453805868320748614656252485541601078442714966086616378796521441300537131914778941827412822860080670442341077186594339006419191293510554438488066452183181748138341235710396827791813243682717090540772124992201481988502792107026500289048237220183034710310581007239788782140833908741526128427009353555131003818088620664815093252836931053811920891858868357333683708062355906879562580142976791947494467739128205254818099933833106707087594493807064213397564856021674240004113568422189925254327268630495544269488075234632671443307180683372439054147643672053136970420424899535919598237358722977856962672953370415486178974035988275649934819928604321939596989538214979903712892729973005720484029533456654987380257463307584054466011031472218602534733815621834151739339377608848366908986356704458688475461807349865368143621993651968196760513034511442008120834337444472299476424706814436208589389328126076321181731976359949256261408376070881078119206329574641294171606790252348777697102242200617370944403782969948085915718559379852137474601300647231641744852875220653516200729101103017478495100095228690088280058017854003644752954556818001935615729895136177937057617670678299467337517387024724487139353252425159265021196904068521025715387273934382409930295638401083787936249248834906962444804214737203123529725019689664312539343345431905208322173811895243420639809850050750349369357973239210824359437504724578294468813055665864411597942858774828083398278915828247993143985432230479380995155188828062668584028410185622621537646962801668290132802681923147112858714461806197348375152129629485645556366977739759742579357700243084813169830462755606474193234741115563727404115670194742142272101453339664867914858741392272861954673921764278203310108141664025614235944769964622665483365975690866560599407527525008256749586496672260278170230326714446273384070859347041509829114719705327140842660937381151876517409789962602489607933159776558167282552960018143709054679171621039401516092345595852374054436615324204598317944243725855298344722252161485513674187083553428770889524240573548588563902192023186892358409883286401664256730845142305830915549731582410919177008804206170120104254595048688547497291272807806219152492071635617219741861551351644449300785950841859782438107919204234233999054458312754298473220468978647505175875458164327269846552991095827056793930247684051836594116403179408549352608593097277129720249181932452766056504102223042969900926737494433517119070688545589262692398447227669849263928282332179868915217447007300062636937437728788731282425646611103468091626579661753695707676043168318714995332475121564912780972183196397250541742591471634351980826856267795863849411123775361639571103288246727070686159212491007376383139307940418932925706306776277282712232637849204460770433044644760202894033328488362431184451935282975000164349869704284850094165708993744215786290479561504606896794280615661400058472480086928198666390409756767058355771004890964168596135190894882016951104067660574061431648677663007580667031147452838013888277383773883226786245687451683102030882580149442133054075530243367315086924690495498892465603158955201133136970582597715450443356918226105045767630281749022103737379550881303861629316116763802536780735537889648345997842875397217786446227563648504351615060513715750581564861990508855701867181275329447369392621244411694439657922564364396851311026753230087525755875828142375346515687363390300580312917401544672065731297057270193795273258765583848825092726890009085336097990511509384331694295736966070338506526043340925567829286916034954707887101865753712039046829311606343750115526047722240030979091628127310008724985176567882537319362605958691782852856569579518122692110713070262220980052067949352065008385371374072220988954636711599828211985584748226498213064534254763763654309118017884571219726060298083856572394951467144004365842386056466445535032771505909223728877788657322681943225488733023488210145935247412289038696014717007255746046565679881646316727754518472133492401028218282278974840677106080834422899480990986195583987518438158118484325220691899618440358874032822878876387467653860378924844049380017431040681598259548846811159557997810187356777435448426095859066820968248729751191147843092434143773176343664224501180833268169917620043241952704941213336961282858411091940091944480244450598682410845544647146887044688423795133050903964272625616170228092232787866491306656545996955129965402933091662255303222255013239117062858526062370012503753953207128284920229951126919573371631186405710724570518482607105294899658244438809965544926693628085696440332525872471855541063671394304650542316773287500691469126376257781841090602486916123997585467294927761617006132916328531288470398352799145172705984801685190739509705854474283540752650713009512232130711695438235827677106412428883684279894133466783334986187589293238326494893991007678342351014928832155420530687962741467914581979786283979537817193282472551546411631836383243359577642463470179910850794549518322345064339331080295292827200143412833356914072193940700072684625772067003800635650392929716330165522478580725498827815288453872529255811388404803345860969950920390795465269466153590373329298057604431396402643531531366427727460954246218015450418290442449737657014628953625401191217827172803819505693713553237194912959898100568033875596876741397583582197703340517859520963362284410236679843168335613325395434355430936480812655685364774256309036776169448244295667401570828879854971021032222235723819833544446172107248611454265009579752194585694960448252363462135957337368574422894685884338485575156155034429948458745383443814196920060556989702769426385856460854838841979017479402468653492672009131741573436727825762451432308611070138458912400700302883338111114596411943559907933702131040116719979123465584429654804985257241797945415872056627840783525329656027481822640203728057490055350814836983598675234763573484830174205951050416956221912304716848157298705322960813197078263485003102872476987708916001999561123539527022535965188382978366850416609019418947818116325430454985288749256470112353744675193455230831216592605283127241404105252933543821022548234014131715927568274143387628714670565488928018564145892745892197089238380055471943022939514700424731656039299650116300817923028907084975140297381112785998885866896039838128223626923131196531686563890229271620520452585688660533987559122693298921339647833116084105128878508084634216007917523193354727653254909611048472228913719477835805049223770410342712500820205982320708422167456022366199471986948685129772301798564388872427008310664819925965960950716862418522460468035877269755402451641268608891840730280988454375873866495562256207320087288026786531777225933535547339940609549601532877874750526908061646126662084593446376968194353510266720302943342272652283875017239574331132441526042872534161679478585574442270547603491632572612139430561647922785000471353524244016902656897536096319673307000424351889363197347512446161201713931636982817044705730495260987434964181603071618777108809869521537032912863499235351141441841057793850774779906842228033792999730754585616689930002423112775822338768366042387167890548421272286755065383823028202602298229460492554922412011446103197609519281109864064171065015779233825645295861278266306240781527633425436376680696469316347551608954881167991667292463484394181191029477017365929966532061042279054570925971483471415489942941121322464911698954187204434173254183591461772989656672405637336499918346778344742253990784673758672602942607262349666150738474242490513617383540739908671879428775710637826042606517549569420738013462338711396482214927383702160628485841261801431070436913143143443830521219565926501450362328861609204082363477002974305448076490513157967745782065252292344988439512583117277438688555451123129034341508673429551943030803778495925661815415652383058053523623870471925253548019239490428445523357470592802638333991203994583958416042392172576973849745571631313563506799240513476746071049959383765337086038391616774922525381087096316562589270158534016721174848003730387276774509677595321033576479413985387710837719106358343799880976212287726508421490663414634186072402602489825696840852751886269922724175375033154232386445433990250603370830322628598159280223971317379700681216298781756823345660603316110349937854619698529465343403186543011306580902536145155918998605336882464239338349320197854505025606358667282836453774713513797878339042700695571559837200020860708382087110433701629841672553056659923323789395427008228699144044946653396113415139537680975411586852833422967834595856489487113597292201011936482946878006758692529284121985013324874153571120012105643708972975754645322240146604233072473024583312955560879143738890235511804617553661540346996760066936020757690265517216617128457130689111002196298246523361704578577371898524660961124611442196047579634677498162654334622893896567354361167962955660374532272294306833795321025022689053660651086943978833221745392719423958065493895444604413524783604282895028281619177191255927345909588315364982603393975869137696142511826965255673548770978009162251048267276735265313973063313940929910733322231204022329976805359479064567407605019174586228018852864782846346707433713573495261733207660623880432726213118108102800982030665946402178867743098615425265851256580778951664600831976919385838688802375995474746086621993304753111952217925447406027018501464423843167811543141352272941310426149965795352480448622264243843728562805347665392221620250475717979415121140827573591537601595489522324802746484377083832122509108942210155687052461919298402449647983515507971994135872323150667450396974965369220602071663218459202617695758420865881571785427330453501210918153368818716220674766749439102925009688678606890142142470407774209040065528510738696999179712163089258233552798742510613723871281080384614617898485343876365491975699524222603587262237851400168716062938755664027735394430964396221227449936876734028101981738196910018199709466802966139073191405788599457900782924352133050009248312598023677455520387785995438252251843967546323438879352480519298067724834997574329682660245352380324855883828320942759565900652835272032654909547705102162785411385076825843031406790428770707783327534385845537389005490994375378198805955045087068626445196977771821992895871127836055033245316002476043607703314570566376931524335504229934469060213006864349911673552750766185547241365606776110964063738808789698987777561513089537496657947356339674144316008434171112478818112929019085738725134901868103219467405902345164937135653126846495396312547515235524488229926670067623279464575293132767066456652125980427193878777325159939966418944575919785033050744656449317487074348778532305753722439651595035887514095215268140921297738940512881660032312290740609466050583807200903037498220222192250297742391623533189038429691455911953939018463390437212445007588792240825895579950199870272638211862832675634082272184567782220424104149725934531049349191947967167549096457243886840711033804326882506772063480222754755973003531895721096812533607109370668534851825342511546136524791884569816779262631682021426422255746636343144393234548443556966739336886621887638059951404178283557472762538732416196573045632800281667797297049043401101951583556463195237488406277690639272708856366128889122898650653229379074264603633353053235009810631028899659117885278226203776445831665133541436150236840051156740851380443879022016350414010143743568719409619027191272292065496873210019578814587781671426741876192976678150473235465751597596044103386880515701928284580748339158180412932852120221287858346568068951182462520077950198222138000435520096880757939169853550016659160429145213403060279967185416993781196463005488279619169890010508485030676138905351356224823550444337681899234371170254940953442286107055565933941007138476567218636916675704857967167674168678750102974701920232983533286460190363292154682326826732856197715725360136084808393079249730444590021058603238017496594703944519714889074454725096636945753910820571448100044773787615285427151753873912640758659026862950924855531595544131335216818361663044078420931898734356962071887691180267099209035126202137827337614716851435759824741169239303736028611222935020392848676823388588455543073742872347228195619907007905689641758927196430297379733979728834688088073406275250087927705072902280434817662878001533484113348932212490220786166419158357390139776721502909590822575745899245673918790293539490595884649449620622050803870168453043913675738629347554648432450400327800078195958947739974284545286016284350211748204782071942219860358878024270308798812453964750378448350024105640000330224521345490693297053491473427158305617382572783703388121298221133413728453844112414778818422637806423298585605171805723910545662037573948623884180894948941522058287509457433336975480596484296263031212390325365176827111109810342756288637359305645869336983397305772590324822177163724188835275833283855140634086650550634129096363781741565247424936615161565849987126104589246496097942168619901770607466551674515087571715030745556545707216169371193475595129408026028524851984570517838027622593282816972304763141845732435369782617420446095053848147787972720750114904432669135742468544135599584381731155570303849055953077963868306057758980547837160209082822736851825028960435663959375785042080202676009852294682740456313371805871095430536355074855058301464486290094122251003560172023680839500557049216898326206406916143253680453120939320322342330038710636602594240481392315557675130806446592585206016243528785208659909533138401427470117820460456091097345164503130158878676014196620632125317062355466996423351301701274198281796525982382522218295571377087839847366476104529029101386762922948260238285364127036048028071931334237380698113309505528720841544349474490189897230341513762574066468381042093096940893560804025509621081786347798205706233066808498676705472882328340402899056557816074077404976960033937632881663833908957117083909613753796623083217330671520143471542828313528060453770860619024353223581026769901452479704584055695281890211325711519406439763400123270973009041916663843806015906934114298761090496151950160718317912940113709163612447562197362621301694444273710077133560893007795854241428322414892506765633014802128999073989281719687281280538895758879399217150141121890797426783084127424700212255054324866235193547877616792814242091406296668602069873079243453091703244437828676104872092441346741853070765071852423303823449900217913206362947574429138293540066111411769239345492849103851333145660415012877590085065959778405877148070653234163378114828415686246973090169510174232831432611024527897088113313838275520020191392555101227308799784355277227663460436662463221717839992415525613773473576313153520611904162957013453643584994356725820074017477974088449181356785144823241239678940875749586880182010812542046072296413907202279378240478456735204106194417366840686658693651347648707884478919846575568983875661011791910899518781497777063977397762566821412124142518114733126473714494399980980454422795138259265067497736103264308214335610585204846455188511281567306639157746502966045197729921180756951515723024675940934212061231692374156081514790984637881396104937593774508081871897135941427985047053811430859632893022457900484396965427644479121343929046577829752793938686548163888334798955672747097877393149161355972451020110206069573370570994351860350065701913817815778839545488570204646038510527476095538632914199794315423114322417201785674659407226171074922096402941986257715740729506911344572682555434865955592310385103908415614315765754159246822707724576897111949333698375934488167433824858267601392297446355315641988895878724679831975467875576906968901587508322398515562424307834475861842462002582006410750311649828315805025944250315879942135037539565862574157400125926255284358453368737358634575252001691805254361065295123292231571962591467598079642618147527290135324386594610851404537668588923163178103576368262426308272875299730872121262138332183622428533169153978892931582656574674489794745874325396886307934912629244448999916406487500571769088509497676671338921777553363953874063889241424184081719667795917419418234606526050462876554430419147613837701223823582885893329588157888916685126123903051052895329072019020077690468928236805053321076598523833579040343327184567717013676067578240412925538990864732425634147281539730761298512575075499416343822435513686320668995795880509868874364061664389884174864267158016107349883108246093247414735993400554587914713904634220357541452857461843940682820712072152384159633488916373838878986071167545667317569972385675155892842386432214114583247588466571510202820666653593150860522372725906158527914317077038261952026017322685942445612062744189734865621794546871473008699717914464162677258824167087581483961375783547419592108772836156565057007297280966614486699773265420662788621007438149497273838735648296263706082376057458861230416916455289995320079584201558848060404996746114511417285521024195958044298740122032352221021395670162834321952968064087589378341530652441350851003814033869207667153575728108102022987477928984039270720074618938018503865854212691623735814784305390978386690516777321975431039749882562481059620921015089045660102366487555899339174929267241405967796282538269840028241838414305749840356437339613530500157481964693398874067769676477494838275182157700802514548249171705045160989397457839017350684024563929328657501627493994691476533546674042191611964713764955737840607132547808257912478371111816067642051987218661723667008335017014131943162298139814268894959740403074932061507328738532412253976011936553703460777418738599952981818481167419755487567799772276055177876923912865701151299371911414307198874615089213025801927260994265490238828066715630972298297144254807080125410854835944748165779371031293267281310623050645762649872309692231760423600022610307703730080041238424264438811941350922032400564066839723894829903080757743807731241343095393093928080308408245347778276516747633874571525574894504537998955393374062401033549247315278112494201345698488330173729485745865160228224464963219858602767217689966285152270902504866069928318551022259774072622890965807600795508227315086111600930196495367618253187410197666130538277664859437849554423755122002744015153929811545153604557485647202989269101761177330118470023061589114733661379927287174565463127759586059902549196290818908323543190683291094691847399509472348411635078500791895942173891821650102832941126864765102353533482517201371081064776034211505571797448822701277948192664739951167794178247932018068305903884379926715630081236736589247190796953482780207131443996208904668267813012217095440891402832706933815359224577944839603568381876766046464930240252114293492874341823811883092062340349601067925332560937458861065039299111743215072311356274678843046193814539350672272973161398363539995222008616103122851451786962725842036045768438493846633838996996488463297477532019230155996500761374759982099956665609035578523116910073021567287562836062322730651632946672114555969352294359207971162023532028442774470662036193970191970217845800926115939292506920584733966446541084197563983964149557605239756713073614176072554582268945126802666387191801827392805410133395608207257606076606234487402344680752365653481550407615142509753859765551786187600796973769883257609803262904334833278435097487769490811713703435460744032876724113293541367306906306579991580010180218515265018737241603288135742413707658320580027875975998554035389655341088220297511856510649847002663798862671573391551140611889231696125914803207026806267156355896886669126083060240274230950434365770658466060437766204422890594586773982205730732605832145768992213913764102079123873352354905678609323542061859944700973273482848548750860397488151819738739924887170086204612396667482245558065250167999952515883316050047915158726331350358368963327013361832607718448617472238104899549496382855102055292174403401903479252451936530433598563818961476437710944009971255674794531536865666205428449141353844025080884377130010865949963535167824017373863705207207020418684062858096387185823119680757659013509457323769440739353119485364642629690517378770905372827125475072176382334858058116130979488148277452440859893814672028456996500664214400471698554089670814722381450743124063493297626544934839380151441628869926468176865173060637471762899221323131313686368190909221580678927365998400861815080169282912669812534258919960129058592060821188075367222921348859032454588829173255060929659725011553134879447081897521149822859123869071574144087799904148462793198917470808052214585457353399272536900384367404790637527962575620968416616300745827845931116322676711886641253232592574728477140506186379014719400100436694992850873660614122180769741690023784341523515011255029661369415230757246509362208104405063073027039124923713558136324041747742250206013307101030254125854536485406089382562086481634973387529095228635629808075677165254972362365540690750286291179971671110119263311862596801073109613140837271842847879367661226239576913509849178156425680894760356901491944305496573656708170007297814756989919859081570015275079782266988305489454194886105156358492310688152513053785061397080406112379885912875028768705029695664371755281681592499462400899142149771037246662557723161081763559781533653512539061419662396364989504870395752399255757431042997553146782704529390496144113379234919431718564415020499135917391117587267904953384731032814622230596633860275233699220506127741222022678269078428140254842632594426659684678941953274797222069517802118707768636553077478580665941647667610500650359338248111545991254720103262044957393183418310050918487143331145237817997318351174594108842245020025727040349069524527576154872296349406527182706553735096132527050647789730819213066910908344616864242086138314215491937985866219307085704239523301240194078359139446515982911150953192891928239832023027326108068807862935883075172968183093254012822985208508507207401938145341097765855812471528461663775801618522304773153542436324614531410471415775188757049967356881773659129578678627077145277980910566224351300586204910289622159579759609480198330123074064955457810946296813687280456049112487637036879808295270216379945035154512680244830270039026249001776023027574205035755293103367661569106476761379962461388967259377385959925368907139733843118635359687514592993953046515188112521612566686296967221847736768766155840931712667066806620080078944235550418362186503853097783255549332340199108667481365641391032010151441143627001652962976294001238581062443304617635732071967616409428603397962379625121587955119724835440946629561838515075874351800431144006368531153845297503758963147285455042105431928325838580777330804560225102500263283913734701146579580668056339164200102291458707511670302639006649381929243213216493254109592067284443770956170870238760948048115723742559129495973704381204010935591976712715683365472963600776171959953444054978193642051424097863257323022644890065190608743736614778707961389157079330339280216153077150669069979403707344544519488327036331668203131858210751228577074284134327742488153627121643522115227562734531742203806535021016047579488748282715736969014621211748847411812920772917818848933344355239735436695489871468881803285919639118227566033013394837110236547975121885724075354089156187160265036898510641647173851534022104004026228361495026939718797034867423083728900444872892363192461331712294764121636669935500083301912809396371012696512976753306261530995530545971249732287889418101298082899281804241875466911070861879657501391514826568054844703742769963600771460335759479560057984775638815492646489092309930757864987182658586889031499326180098460027941960533412094114569533053985926707768397390660592494542884330283581699037392118006539735815782800147915277940011285795291318051295366146939093002487252805449860294632338713555351858587835107652733516193997630192955045170709439379664109653715812564289929017538618729455044307007807675794520284458130825932582327423359598321677664580231703266625669849487822437097072071233812321899350023113483586294674383956194544844187638896335434254620216552511390744732848998986976521020781784352632217219467529480543243557310958717849710225034021049245986482708241809205886010210507560003870410904001344480867170382519928107157692582115930754520869696110392159367879779653444361220210791929817755992704100325647156718738485449405301217365524393100587639137141093562315886863447096482434170137226664484440092124027518168677285422858419353915599672308565274343246913980338502689184159111250491399601268654795804647556680601974474794981030483645676398886894303449059270505091456289709886905738604809638942522427050004348306197944503710383726076108096985256780255646752503987656463467666377902596007010968467236992917710486608111864852107548183740726921210940917846187160158906026965126978590172101766962432927327036475033186092438832928321471799486063966717552836629977722931639220269316279525947840943441504349921926009022145993426335532448715857542582344335826388809641281457410602336098431014309157479395707489300599577546582738305842627449127831116650992911850464553473717788092650724931782760171941709043867404665271919559157472181303364915676371663329624086006279475044522437553717522814546458462085508918272857371943832584018601680404391411135781602823423472201865132550119421210853752942232319791928790140186902755494974665954673124573383266995593062513886824347993363499647577678372804116184658082057346860336252425787145232747362486525367760348832870872940512185704040889123646472461343798922390033639480543581132103831304444454144861545189338327545824791864804010083710677897284308391461672602588499014095480191746191015252885902936127663191100431469874948724344668010225181626745227876228094441945556607467351361051725853234527532387360826259081757943072590159026781248010908812078820389194213353051366381515105725088641376264715851117167388002738589264762571140632692034050908320018400214516408183298094124421202180635101246906960971232810288303740323685811491280793431446274629955657960626637634912915753412018454849459095564604478066238535103692129279296462911214537155874933024292365815997985322116876368222043052448607783036172689583017884030875679824109548907562349044311630812448531405557681899293270326826802012006421803423811312096443736953960468477696740086208696342731246913666457753439149256457426069880829818548664640275112113834522236988851323304614746920879082366184111824374760861876829780250611848091306530006394902038086523078530969593665021225722738353058457824229476252378427555517345220817293926455188776998442528574120144215685818855068888271859246996920461355485165183782156286267849565605699491580149609690919133490151986088398553044415913347159309745205579973766796949190128107212752165633259022957086079933910884326985816702130755518243547496899603690055050761378896717296271365654498866844274792918361649534838768272964458779421479330751544175377375534203019960632902060058364089741348456466607788805093528441207546987229919578719054343813972284087159433934378775805461524232917213185270780369701767059981048763798210154934600390929297474682468443998659086774795450346693618574845949680169394402678187679019019269237875877610924691576246587650353029474388885388112584407455209321400887139689161592547657342612793517148413070494157237065242167769780080443160829900995912643204494443854018461364649663001788022041101392715265405396159299906846170179476133711399110064531050028656370846775717866623653489605803761705083692276429647307405258026376472685252265944809761821295373708515074657864962776988621932882285802447552669113831383732533569395387143938384587833399345066466539935624556373080447228691185324477796429747754380435224126466404918732155994037216972584368372222216429743993140353580010529555341554156393879539483906612732825132369040658026894851511556425074024797111164400319734805321890417821605448811722646620977264512281784224590146698279928174759731195843360775220706836352440874874190421473655721831204012404360726033867045065529089823944538412100646153704657819177098498697043840698209872996737484140832442249713291793736218598196829456486175681843472101239633787409192939999472084715533723802611390357789902599647167249870554128459869450425446395386844996091961107088986102035036289944727796757122377872007425473824726125821105417315544944442167002752535888606195520218999054978271370617436123541265378965197923279250680709220834306539542629140256696850363794814753969031841728362062959727397780502348774526784804142564069873987039286618772817440594646305167289986731941196129328505724328157427284954597804084594868687518618671515531554542531354978671323506572721016533956849407222013366888278134386196773605666999319570591756204691177360178041946334068107324330154776809754973836927767980784265499890632732579265334580285800309736626271001282441749388958867196826254402685030004656688987232415562605870974111415011494983740332996768738974732187255793317521531711090225330251117809577737999444719354309720075502042155984748354558472184808738927556375049233262837868955942563086949729076573196705976601067214445760012249058309785024501073720874972544969053945013895242665531250032540241308254013424025675823529202863032497180859995617131364098353433598220761022666895330933360988625827583702215222549859424236747047205432880725587666343098336402864121236757097425245074453020137623528723710109513442966664234212165910175221082119053793273525022572008802509697113716190543598234846656587109200273839432973009754590432047267864650577090024475872490903740174770582143597276371403587093688882707541300391556651603722888888534120908751408531534248015642421801322137886645931348000786585655741938173195136018686761888110182864497120640996435544671673931217294215169896073177560385168411003674205657662713550826258173217996376423006461863479713721941745181915901698588436257124072855279260255642919120403407748719383329747858341887049447250978014372306662765299453009348315678779281290581879042621419424040759640159806220121403732003697749247875520774146852577285811349573758731675671063933637489845727205624215543028732696698285153339691733384816564111552279636163804822052922340955326212296903562637071844441806018497575704656059131495604288955210068254824013783459121326311717183489709580206070963911554100600454400802230360386227611157400711105811050339940764642236480131267995615540950159226745129232911587807545935638120623358971933725329786547763273798610639414337285131624641401159611950467694754824086922112641880888926771922934421010143170626306423462237414751651186959605260627993401130497854931831672409287988361001787322296856643396721237521775877627119930090099468872680515477025351552306416028531422320697225321440964967298328478245424254805986904836990697635645734645487135470608789906349841073775818996098361312599279924053126941314376266220086368055296865038184994421511769819824038244920100483632113874754064661006779686507087005842593040816845428281532424437831195209488662056229217379728297664217960358166135067599968953213487242977160342778832599256350655719660343603575083498251811857432707826408060562661175188664033002627922778136243513770509356242831083621751078198616143224027537479204228298936005525983135012609597818055480723388070433250611327761014472479298584656787635430162219287326972888274081371297782751709195348980077307212193638303765687147418755948689925024066156182711220492320773109377846390479442694262035374667041552793263695408570516768807046513080706503050297903032436798347867392454648515842850986803457396315860174308463410994070644173733513101085804580943477035010322014081676800777418204263760041014080176012049659508302950355297997985885261772903104045250719277239779150396980756814723527718493964785136590700409840970454543825024384049490540650627723029344792221736185710559449404067394340604068108644181390983063591645510840314431160113976415142144720151451565111863996813466170873232256415542576640964613994736241311025978436289209403468522102692085305270788479652987650977009993830858129017304729274389764784084830166523755681567480583303713534289782028714057144715262727510453257347285972026027159847414613799052273696570626088512910769832218809982270136173863301403841769062479150078346630037178394954135641409307227196716077068316229205091357181569007021405166696781691174943072548364804111772628714075359365088634430356157455635591503801304502004921945173920294240396161257833828138870812900492195028423448915081491032950974880600293622541696085777670874575067087322197248227177816313018512167062748269059578695166952625716657231396717837920045015195057254764720635650165322332738168811093096110009849744837141414643990186510446295724605567007330870144029915286482473106470934186199454891349929395220319794504564120338261773053359118508630152358821255033894793282910408090236799439624501401222822741908724427209959618596646348833099721480199850022295407722061248619011378607924093796530019372364698729917519520816762470531804982993421210214788124470858541316563014987095625360717353527132615807230983969165982578993816279346034228175172189399225789003224791721469514736001834560797449562800052513354364031292306372876826971392411253658890403173434435163991931976546433791217744282193158551552018025362475499272016233402059171800289387990423456134885116360597456717971406414693468325044781770231159561900114906882924316245801950122185032524570217099367284783642166129932121975941050755349324459333105840096374758930510432779410239002693060730743693722341987803707026489568329350680690377084612959154728750791796224566804047624586475268043138474910440825375282509467105222409519077856258274314904664781978917678503764721486622972046898418012112377611451877715631026517343995068612302462189861247087975916728965149943185350402633817487457086544395402641963498180308762118505458567126603023004811872389323120336815764671589434316790736478872659154585012031812881681787767604987567557398773545546815016473065788708641427283653167126858517584189142660613029085882590240087277066689686453890943624615961009964179656332724209154354800490819589884290909729317763432840910182176616737458598970979294683495895058318693852438651819519157519447210210080725835026280197630976339446211974579219769735859346625855007974993795393846293290996478412497222549390193180137567377917126388995001517722736338825010562651317995265900782976570020983945049973462948295668152341760935067670997285944803492266152458299719084907181043772774707761323082739176698680949594822268513435062493967946852618737602281281298629051922813481398090804882974906125445012350464858058497337250552147447259724595719052067664825430565142368003587808361755284441841084958974487926029156897675417775638568650198006462306450987287960914290155441916543103270763892510294053762721829123415170895609014443908645696781418164728824744338292663468146691796542509849933939512027157507436562635029756265201314245774451485836296458833424108458467185298599323750431946309719268909942470016757190213689427373367065180513377857426772312092815730410940957164479410585088388322527824097695896310015636436301514444873587953658941700304665034004224589448142327766082726006255798804205295467308032236297655233645378511714679126673281789847808068576554421366710039056377055449589267428128377797124071406423325567047241933248617142062328644469838024122056645480353165646795558297503201810709930176256338648325721809736176021033290892345721793490958289228822669320771394217383006477783569217823112498643359597717809082642002050777014027513774115851976484597443027719894141189372652069208534775966323995231725444723713354521963984621764348232522409728887384094577344703578353823786532832874158711510785969288129280317175374201222435243364685927671692039740236340912377719597151575003936243220459641461692812171567787685615764051159030293330409472587544357637299340539742637521083887191774606019333650379761027071762407828091669892950572648949613028940080672563263923389309423647499192292415495188112569499411094786421573312536682135828035617066420758455265003242308989708962639747183165662909563530090250767340577338936533264568403621484193017845077576140604216151148927620592092949307905915011811519300854596700920616665902366208863429034837244680571716479299971336510904734866535172130598727252633554270795794831654166337484057235939561285271062117172684191947421358434726221519147807483050687911268437162909446328720227656991203170087131085535942722672201387538614730884516692020969637859225591567881731129503229089742728652153657937333507662015053500992734216631301812657496935622126599243406064125423254288853050013497766469802779021766338869925845710446216297550222262425655050382950268516234001563435807006778212752914900206808032683379176952138175241559577142466007358902641297111323852393300926266786641493189500312721087286164005361820371060300521446361430105301032899652456727066939018150154784810516117826382185014512021518115968177443868072774841159012586491868721309594680595578806988611968090459341239927105762033411239629323128399033147825000732998567131810844233967723942387231791223118087630692728667354845984984470905897847942960384290721437100609220112224801745735328828844064037833847445014824998946447198651403769635968951770929174097081398008734393898243236955321676145795118054321912250524467657637663654994166939294622157762479446542058443834569197153477509387739851193692886933881421845870867611120187380950865845347772370767384030092096102643176442478877002044582728025551750470252286474990266612116360717205163892418243481643160661560145727127206062886535215558161634794811420106284863850813704570965805191676364385605093436745563314200082673349055982965591420858612223583509139514780010469003013425928782360279964776838786716992820061297387098090792199532988630448363294845194418561930834328352871174447600547072835006355063765359101825676789611698716693414009767814047270345237901990019228748260622723469861528247195602479059855042722581288395377199558092229855513161492249451674642263023006526578753507937836496871106863103824305539191757301293730800147846960261652752037345186591298370066300730331911413847873831417831266432536994926122843581930654871688995963809118285743321218325417124590461497186309389085323131612162281412143704536241721885802743349771620875544416307678473577112788936684513296349969519363808446786553339682853352833790069437539777019877991851540815259921512773761963651149862686556533281605430368997317420308737107744219811653305933980270029498061171339830759956394857621014200677363230571861871567709350281508643398222923030898966640386805722672050717026464330458872843120825414068633844532952380140898225785630287153546883948546593888307950061559691360629383913792429226889183065597538454201446088132471833154053151283381636422014578383060994240565942512074375720058200925922390146159786874252403916507440890245181926439422358935873188354772241607190773947826010588538745918649929572612172537619818251766727970836433064969548313231582375837562073035097383457853875388170131761438537772768364136417456006157093998635400044973936013357077996133222949968054676858888481452692106918743468057927751135223398989938071137007096417563108492019230977040719362121073125248800221359116220934125725172109918373690581252231148703019213106721538521592299706604995438856537073036816704323425263728833531233114113486150313565599473735119868563006957704972830861919421427332746965839900990641104996814971119037190982215746031985929274973816062670395329886743692157015891095120303845161937834202415095468000580000682066817335565124038480852636430376264276384879382043260757499960323945611906800565440432997091947095560258293156751615131311520193383598053852810942452855005528196557102046247680604139715115222075107761183793196962644007597709684475850879426794057626421427800199211884080688799936731476704015541124558816071919877034492632347197835224568843405765208017250039495310356892689748918077710271914281232667384920747788828149228848334085553305158823548529106689256660553577261757460242378176618896969538389844034029711494155215503178873057503508128004107013527918119963683311267394758278669527705599855950320834109598606433467079839672674853092309893429082500535877881222586410828918804513868358778593516671045438116322107909394766806581905845532933295355867618690019454414801272186775844850381517142802808108412170406253993553746721586520616119115542884917931341202206262465521330239525495654031676244042256841834339923990958775170836021983757034961302000419174592858817375481260406230683324205098952532205201285330127784449503197703376699842137415976846644056448961315190673476435284926552960847163724084246452023181455640534119624902963938943800411891598487285205892750850131047440536928024607944770035347259317137769041396331261308030188374283865117593614239090977358965514751624529758907518116904896243728828256217170403720629852931192821860324197166122588841714951254727836955801054613282636166793914445046014435094564285720540804908531216013322033671464442113598371772320602270048279375120331225870333096055254892524638402485967484801984620005595506516641804524022246380696148152591957664175201206741693388016157685019993411945281133692040113158830221551040016278699889183456901338762995571646170232467276204717306090669524494774692136270887602721288301701281243020566577408759969004594420707991257722508346533014337036416985843597271854853586174622669906166880604146356932048909259042501965653751696297468296451313987895218678407641921958714460562466368765770911479221773255551436405915466721788472235257920229688502324437134047401973999278077675787701188999599153848615941646227089420333468511253690673309816361722526248650599919895567614919455841737077091085803623401111026665914410415473718717356827948526634468842379926495801033092038801960513527946028351894393211431863405615925366260047094825343902694947770773867295986168078411498936248964160691285973879811525097634340729548531641414339952470723692435169684644398007096527869461135451522433776117101707248176958115349130947331270776078140950643441476252789462493650612794828982057659542482425539815855045615000443815810159327257869742631475777184755937207487587220257601704646369337554626560121802187614737056271835290983514663415253578941997180786579989246674359699893689191045538031672496859970352801232979766720400751993602423330753998671903974729305982566248084061846960821485174182695927163141215900483272636988944854094871757487344174938069103603323114263849478709183177481431494050842349610408591914060496919365683864576595250125889113202262193483583523789096141883557173234456496603247272308940717713809162977399571900299392024604954120031974131076584276314036333464345132864859459023221460281484918945167929991553123931823171217198780563938751874520662232710256693115265362163320027655523426891295307725019796075677671584731492276093222471934442100740073027448112966258887955601913799014303639562057087231101763112988349024721092222017659120878415657645790824479839041823520972599043069816042198073721382987356987276824942767147393634767016762793624001512539719386199789831426534403178437644759026256525026910115500169841127791531830821786327331917678078865888197175842963874342070544184810903902139068419772379765602193683527115015627804850022147557314494673757185881153824862197529152641084764591164633000500687536480846806841340196794533881665348669248603730209926705106475434143363652895742113114090669986530437050218264775984733723261725050280270927777237342941714422570713774799007293373992069171504769225684479859882588462767909572409839854177261993400707133950725271672495011434029886046089092571529048888448931194892904018728641808368105238727376550790133728839587706582358623125343890114074430855384541120057619686747616337740555788702537141431469523480678110077514184423043981241630331591437759005889255201231628916467179887090584594038288124599993777148164491500542435060672694386316670419068976391059679851769500823460907808197579204627726025874410121158622546383393050653968721653588773076520767747409567550312467096908375445589528063778927720269225277429809664048183602590800992366209337270113501676589519039944813443824540487837958454114072205892922947475645031808098076387948173950116865226435703810620689086071182173978847151478986116186879996360031243733612313007342104403286245339796614079608803744850424057313490424796104432816584269412228604954248159865850711617435772354936810538408290841890675732144291333845026964577760044839127186245717344630567348991291227258504722016093693569065822661839637850320820754091514073513035952699274975463650092095507114120390124609889618512823687400418928115683954924696262234304368895566030825236013732540332284006999525637853841073595213452227298906574916132404790881705125951239037789616835767237917017319465851706219721469636414479987678863110732469880154587273994604240800326873739283540904951611341674572613366096989390841464114842567539778813775289406519468694545457376741701879879274643184237873440269969540865433124419158220343049629211277823949995115582730666545378602441816377072561429347089816941440253293859638613026178792905067789329465022849721683815720484406343906003805898069383746204575051463831565241609208578368289354669054458800525599692978954666375402735103724638894133626842592778255927591124462065849150034453039525720711894024556136795670943647399328474432372215296477135474012811331899916057834079933068446519356733092163615194483137531215803893522831590940775833194836151477816022774184006354346986552907504666100614108658890735792126443238529947959843293269611405705090873519663266640009367238362484935497354233695845850905975532057780349912421053392124004269971403373795268525593041764746933269878207306177267918392457859855451453882783802063620579849958810914096439386765776319568253785241841278108060453253299542450337903272350563718094059686516962965152463634104430743578459009834018330981614711212681337874740850562456533606031039221389565149673076868559720419215074451160261152064017479776362193925589245889959629468518394539183574815071857562282856579444710905952324516270132514920540370074120827034806512403480439801117834354956461014665257734555146012176433171513461136191712038383020099076534352374490565090735702974240986546921727903231594992644443853920577486571278079256739508807114968156108705922084840655977539017320778604177677835671701705191279863334897068560163844291411635771694671527004677027110863029429122835134417412019029339796502876551859453765383124695606609240611716996748142630148111607908626580297976564294872637181646063318662178193955135394757951035219188181700817483431464683101922494018833292750682736351376045491211128438865656380070374623407927176620630528892458395778936842788223485438636082832638418517527336804654582633906050354579857128152937997764068331188495097344239662642793206004706392768641185124877358187799118157536081557530078395921984717453798265635734825066118077776670074832220529267950389044834689043161991372408130165695829643956833861918266677186314019352131551485675470240777546963503212936332693501744936127104889091757067953119040043576841341198552450792738437480574952669170409149774424058631830689152498226973803205676191385802240360276496422588192495471266299571423622355455214745110775565341594638758165027301376548895528774384216146513876992868640428155323734565744477171074124385747790853773824225483607427090361225856622418291580137289245925630088522441509055164042102323664354278772745223412367206297801763000076304401366952042730997891604752816315418517282025269365047969035795228442640495391509824176381885839227810221050964830746232905824683800250051019243707505306596198943978072791924656058056127897050165240270403885287194165355724755866832451762562147845632723843155771551071578195053118624082086543457762622273658279439422340563218683843106555223474315437135135985285553460431744437936016184174440481724988334451267794700676801200897475481201213116646948123609991902714727036832815567186635139269315561736728349544947432708161128601791015549966271194223592788101200014484819002418968944739440618029472204239383689194681487911327363322402129928800894368306700202549942120751004942089133280393095297690920001462144377542435661096051482886722046626176323861571716846344880595729228384757088483184450780323829173187129260744452684630196347005577201137858075187418010870168839747060580498580109511309176762921280333921604778284799515137366850528467610940371321010574029692928053376219720122415042576072352892140859994544230365708798734627335037382787817399625741797310084647796459186361884205713022046075428519833564812684770852936948018685339154294280318530536446888589576137816240230089675066297569651101102179164206945200540068368465128744008210111562476463290434578689483912370103161147393555741342958819214208097406415349907955825972067248180252642312164565664510062072118622962550664505094545881681124451790694419820673244830053847495586634353155122932295390685465032154031501859907877798215935916459495590001493370864857646499742371616548296852498355083022296047944729937136180301059305309133978405648658150328373178540145601522618336066505114830450147346661833133796764519616577419189712159121941057291330198129226223175619592753112587874907919338022280728652796886920917923808206600347521724510664636271292146846140144019864714154174054643987727085963150298653107866544824194060253735847175597210600624651381300330621892836061467458390844162399485105084892091116258589923766170215049793833818545704730353678292614698773500879038755010176710565380733732625014501926590571074601676209539148454265136301111258207605644163407577049205076716521245438722585708652512419583673790053328167484355423746123565787858670423576661805339070122183817370947505538750640101458535183889461326508659844517953649886803639789165735184699387752216579742430658136225540305415220269775312545859841095660243207153242876170342283821425030771174750475218115382113050910448274317844327237818539544300054723240710294874125380552221636433695480009362418265815224779521608861998708225635663041005574025943483852522579574616341898925550955906203876778537566689236732541826417653258426902599615942244325470691468583796601189933552908171948137256111572757744601462500211068422598043145389162330835632920468814192968391366392286056807049271698792720319153529207046007237954561122033525439533274166171586231604443669219771642083712729912252061593342427362817153615210353900019497631800035903540449752651526946535002512518624365353655799256190799992573390400430996906131581090695377105083394253423342857048262127187347641871841760013177959530247823106173954700521544843802359490917386762480087388557018409899107866891373164001473516084637802373815995122755394212819064646949231773226676121811397600075508160273949576233559649898843767012590235885164417073560911406938666186908367134132433729986481106032029718458355859393505268777938247526475140728029459401367352870378104955656011939627790369304504322635030077793923809462361093036116974563128446990469904327273032673090295813752517425917508347228897477130563330710931115312753759472379076897801952855677167836738793659072555572365427660277086147395432382355306428598203069792669023831422044578514611901134525006786465366981606206509423747796401886434805035525565066106209136223526702854321470707593373744081006646224202946905677619044170516588928786365447577759795702888432392575719055460824460835734214419411145144782931588959634372004456732361036151582909410609860179558722782163353178439166124681326719726332059037877233737409918051292910658686711701962262727960118374346818045375773973751095564076389474570440841692426760475074162248611388366277838544731837375225615593040283001417784901044891829494215767507063035151451308287430302839554031330513647734429071799400933007645030117270575945849617783237866058385579970744168184283884304840119584111755957221523243422925955500976818916249226985963589997500770569718338101569966343338165231315461776851043502767399215841541022982681512163696982032374996663183260188851888045809631326384167239539943248256216141794609214496390353127852602681534049479914152802879151101979861794659299791820490413939456839328800432566691613471501994766923321462188710591857214611844738229498644000813610106960374992671112728274317801533981739323936766275833488702224576794734750303754841523492780984643041810311803426383911013356998997279943836504313368566170505788514075528659694342762712438711548267917200072375810404538712268739849813253535109605798945380934713281911484625543355653178178384337162923380152882969598749559590672105397075535909254437909123024748776333341250798615078440465247176386939499433194517146842819581912512540269933589239017105393654430503265552709776888105066607432243401348080799749271174909062943974887176440564569731827063475712401026456737876443131386697422113652066434964712395744810468598959176199485636783328234157892681736881160375607136729559181830671866420441428284494532375246335130475661050763487040092764119346928421273626874325770373285906016148216449864212447036016967249611642559837100358601395124140079784999185279747905987733233132710204676222310358388935737342218103784420116482376758844511350463111776331701617227865586177451268753352333873794646691140510753214239547246287590624406073414498230445818643694159427294381046403346323481334977545338598479569559633044490015985475373982269917037039418435346762981604087664726283462750924859019943505461802215458344691385451051815906424467331100251012982718831929484998382243850299300394110504191989761896155135735880389199509923960372675265552815727350782853757997072766471999436692684557828539523785289163223274249093494551195873433909629562756255963526147519805773826066592559739286591122834315998596373757981852790340248975178566518904462451331825666178663448785774974883993558050234714051026232257388247894491115482002756688770809820472202129312514535559014200569172762539920524876956601854528342013980445760669452739878150480659920730969732435519295198186526322402776664627372086429692709142532910365452273672230917048784031549338164673175734122018663758660754080595777983464884290612647344598260474009673129867334217893314046409798439147976218532420877850109102814525177804978934710345426399868586736845796033338251290305338021808534637193029359435087030115986529234874389999426267087534489149528773079794782418216863003028699743175264253968180279823669234265165497304599755542066606788856882217210161723883252142646047548677133389842936761675608984351884280319372406351019509554857792527223983508911684558132390129536651534074279527538134607744512838327405559158709693186413494758102488073566568523362122335738620416209883989674674806802741588187704562792093547128859014180197533270765598776928380273288409438025340432117978449866955882663407815821859743770323321238688528503787656535141338816091845405063458838071125059711534484123168142862068629067077622664208308974604576481456333758561546306328476721460745187582544028936475162080797752546814320841829115956400082170010182986530659957785197419713814525267009710437070543757094926104004313721960652310157305185343710776365683906022290873576465417069403165900500139042425406159882926753255589454697820933526868373359603408339114042835943326753103758009648541118287725628104757989465917020918501057934133347735117615487750049730129958372057327236597591852966907677675596028024584980373379060909205253202196840575731034016368341488258562565097897090604084196640726953716360040379328628972295906024794095107382835129646408806846228686164251175279769560961505247209430359362902248657608546779219010890679144699844196721815439957152455021757371012530701499130670310040622924652619690355040001167900533292157084673275003630992530898156732687763017138436852825443389637855636172401525501744922623578000118924385776420437875677078918076885049073105136169500863469446970934416048861287506244392267376279271533972822310919362749508161698253829387382586407088495212904208866399951683310628659475421721996325504070224244576307415684361801007447572218162661256060266186159171423614075585036784495925605811067938154662901373614209022609031562287018406796881599000008275045977661828362100940287426752717291937618566277950291377363567829175059482979700569434003764303375725423789425998443651561607763511374634982806746020205952348791072428236126519921095158441275030605993129968590634600715788771668383817425075143426788095832066260706785212203564484196318895828171554373372480917211524775820204190971208506323338781626349018499027838713183580138761963660584967331926331866535570439567313984414978717450172182938319383833743968278979700246994679648776205344789258519844625903402387927147265935562813460073013278087748118840679215192536668357804924247269038648177430177578236153636641785897301026988443357487866223353714868499956704219151426007175578896837915992918663935993447807072863630016798733207827673542239857094817055423399732309909177387201652645912009872057016768873059786136968354830647958092088428433504891783229567443620590840417566055557451799216423352165448697609604786673088182745470130979525992956535906249197474957496837500376702503472004919841060999000020507543746483125664524917798119030413351218610223327628558859551455771138418542540889866410813065494736475017171877234235365859672826583157437179503736754625763645486303585715728042428459703152592183063516788871873558693370976690571210852331987477770487234010951882452488026750767761378698488654830047971268200993136262220206433237095256688801205878495374528761938835975951989967460526357167724594853734140236612869249748735249574229724361899595568627258395607554496992256173426437600852725861544466275012691023956356158153285052246808415134282659577886095534210877257620737705496389806743907875786537407910048173348567613793846953413378164036134260524662940983648000158408889933007647174440032016841205993110213775620039345207666926899545680690848406695444947607179234185001652245856775136007328957848056141580245784139961134968596039244624005754114416039414452803195097308612288721695917608468011145085690775905108894733976741566457617441495024364618143220782954670760240079330643612143164336930200844217730964878931531770196068530287598935008958815465902986339849793676748098816442220815154193698236891974833830687694824957250284785289143451726248051559803862942164417392825979734020797346657231292745574189586570266155081978887828671520643319725400065558981788534691813386743312182208532870455933609766919974264658364986675519876747640860231569127772614625327842748985070378890480970000870057830056598113763643363599526268292425998650429697008043708842577205646539347946187409917244955276400320272856356967135290957380675776562148341953745059733137262676594588399771602201349525637887788893225452709772124797173669783995098630000232177144475555599578596732016441899478056513978809190560620242931879375953127016509342531437209997779768738387483579896913195340988292831134777364984853859612949131258724557027027941912038387757601518591776395929405022477006991312411042358160618516967404445691251661568998531563798304800868582061517689623568117441004541778426063490176618695619248905647932554768042102653447188381527549378197864642886177359651499839432418347552608415430074309723846536504634094124266049783436106520155436243271592985539267017921005410285473370150945045126358364334395205446430476275761372850108591939487280421711484290353901913012789463207291659277028921133140761636376361276995906541454583871013924376735346327580993021509068300552430098097331755324042851633480513566862336396864178219011710392975851131978033583729890616331920558425242517390831132330837491321076686199213370549129648700892177278210306284243685627411595125420257763950283934735608586728754350074919693559419416835361920478573021888081273942216504411800362190999454483710614872079264935249755668305330696757855345636380935438488200479564735063029658618597108376907726486904111049476728297300087494474111620769539562448576667290337735766196298309690907999449225206392151017156525618380335294394797758329327618251878036371445452381597043125995662116592534966662723923109353322546516804470689886852523366989870066275584676727589404370731294398975584351742603549410913160614686657127420316843138417006175092004547716503904651734798085940737983210161136660136462536679543208646248574527508875217196321370811701886702146414002883788854184270250914543240015118642833039234332267934016781706135285328781306476600444583824042417301641477126184527055187229236838192199107831332732872726087936635719610255364087001758687962687975003663483654677450174948656908314155985058814237808713584314297759316052309616488456633841508878925374809596574923588700953534063230144820342765345506734150134054900999491118348398020591818627468843640129505959204949348059346525034437947645775763764839853202396126846798847346631610840155689079886579718421475360748125209385380063234539327767399964646942520476102667062284230572595223215791122894838040430337261045657631446132415216407045149921471419943553953672463480834566397695145839144099032855201967633040090865515694948070370156767751494097181696876035659329164773591260873317566451867114939996676559432932017689155541477570957115960222388628563526326402074399579748264477196058772260714013013165785229445111344748122208171720478305749762823145895672502947938593831985840778365894258261585739268433728741742392310997608034673953116091470920268474207818420147879595683963485870279687571182423132888860783751859484124296729748459536455437622141436358358122361841503590374514318884193333928676481627324886798973123008481471686141107618067465393750659985615825922600017411033917087584414013852394472842856947612261132909935401462375822656856327975005753740753146488995456974348591730770370444444437214711276464369204929083472209712305882753358732650570892781310794664143191503778693776207944645468102213883546591837004437297695491330020627897628492939066422120471784984109918085976745660322157423283504345646959154503712214783553794987673821733165562532504788462110117418966911230550520917540366844353954632275937979567954695017445013164276957181011553570846395440016345751353573630231774841852025573174703006705659849038675617869347604948194597676756798127896800967364933003621150035269321267233082164191283663515068437453250996805797606166833745049172432506899357836299687283169352842894019861526252472349908722476244529926086424934646786107406223952702978904307951901567886920586323636567427231313012340977313851867695584125794106849488866199451530068759963358887707926414348262293121455554704151692686974838818292362852554616965464369762033250843164603575621160978941977489890883437112502295207122006435661669873706837711094616333384434354895318427206845298140612782770623247931588746785049346355141646010061051171722414127227581581507199633010537049596477828912032962462560329565677300096499970907033949885371859717675003042984663883323776978517957339655211638979711263363782890618048374735817137249150832673514741526849198788433610268359280225967165928834691580802674113126847994772554270913118626857625755538201737989716780002744264438155043469949875273233310415570818404604445221285922191088134012311829760529350925487170033751579433263030823190833933997794400389738609262422451411898456750707682070109968682868179341248056198974893974226369513266483278343129110581145151717565844901607703983673043402818081504557712852815808804566581550738020135269786791527142437487485841371457900151652913235546355806139708339454884510888315257270033774622181253821598589079774127569063729485005509341821183092257215371867735586282268623935902799075269531548454671280946964118528776557870287482257616348810527462671351901040231458688042727310602782471254197560742642730663507661755190855462242535814183164277321310210765172366732803673923402330652930625988995790525148417858231505549390287811323219276865860717327763248757724202111976229816777581213483161859160797808953524606568702866162268262629498398411059728776817170877034508210812895863885529309246078429142779346338282605550170695976462657198633322600395879769505922895571904628729830517403295829844714195025054676843549839477620855684635779002067897537799938000058609992513964078497854827637505597685664587400465621264200619614403528477276744276949156768524258173308130110861080571025052875439477186536923224496993522843189556456989637616002691428944528885763715561574093180063760726656545045226705798501226775048182291288129179502517941581401404891606717738556513911718712000417724950842922280513072816602186899095022849983807818359376026897504602510938401104460922615972612895381189813971289197860919243855983628150500671016001813949463756870228524511916358317794952486864298896656671265864862370668304991886154127178265163625867263196898180505721718393945431674469306362062004949288187657475060614368056246742503986861747760124855616810128302155436934811510169054655657831847445677348459967363844971853304092058408969256946147469275062325937109508298959804705047964123727635094917792840751554592324360310047769079647217839632765918645258227653423017847713031432412752814526893198589960744943203918295425332443651242129734858278755715342458133596212258403639562463060564908689954250568314068672694760406000816551354639921004119174070164294150032307089467215533259610636935245778251867324116787202963825241788342594672693462130680636666983298563070910333051485110676463813352678557018184784647550747343435307169738217984249088361633375664516826667098833493565882239350567661730415661150805227259285013446914516594661974173613373557535887239215726466005077103612564212105762437317717296222031968286107090627549677571633184771604850182457633568281079751041666552636841004229185761067638961799346909394230109827665905480664432483671131215079338288051506895945380375452207612903983119758491311381385471714272070957078855514481478600422487892956745526845907995089742508699853088444727643646880709905071934467835674610394973383366039493379096482254235007464247459377985675599191356278194825126317966706299552749266468418975778036837128688253654073370259266180115505963671781738990821034986098511710521653451269217438501866718116194402240669077160556172172730504080966220368466145619001230867806880631211938407887112835651947325202504198473026027447522954249969226425313137320885274014209044763505028234847559689576921821992747164447724618466209732301302579377240421013018711268232253969204920707399846878352282251783512693160209812179406795157565619326693472413545011250249259789400880811681341355580511913991616828138650450433996392505766463207467333496084037817252237522649158660014007741653581566439279203708565144213701428924001984637810265707548306603040125715258520154168376729901637288562714818665235062918220496851365310078170013792480572519201462941193382454041315944997666649092133648919057763002428183659163989707173815616966057166076622393176325243649890876396992903439798357005915674461132185023315790658947193615182855940255150955775090310412540426405247073240411180740004293821167045626817578090334712145502582477999708045954394845177071034566655820526100728409953614913888264577363501665989748872642362441727348809874523145936790850925350799651234567051299233922847913415894218612039662195504487499429097251209351166199751164412139367834652316773096793996014070090671027705512531130563734594162714765479157324465351451839357239661679731545754248904737397438326150283681826385758554849481513236256238139016183986488346389171208752467549417425042718831763087176261728468158924226278154905197539084011139975773207677870443985579032560687979297790680411918723112242099707502674132120384981900845908598027090981782553180168894043273583428495371903214379093114350417260457925031318739474763678853254447122102221889879747995954043691143333922120558525427663432163015975098581961010391346056980626041504277375141424848496568513607276302316223910589452089834902880461519442738368725653773148680623053892919688536496826065673695253372827618336716803176852361213447082047937624540419886720105665478697052257501114475029561215092129245754118487023682008800581564762791315119595034308350400280115867284522773498417915675782976138172839997367437829771445522331903964965706044676362490262656545089885982831024297282295894424635886963773229377248972838936394262088364812529600091493250945526951626618150867792066964337185630936516778025996012448553638633610806779136045000695664521264733956199041399214795259284258490794347418022406786191596118086025129770846692982795207875969212256336600514874685346841176656969343311318119625430011939443718662990667159284908049417042849235754587030614786053414340698374604796742966362281197817159279879325306189616176132778962852825577474038135614883663353406591486678918799470357987316859652401072772131100030457444161249778230732921796228088131348423058793746853449213381526314207276137853395869768407777240448660865320945402518162851970672961651262316438358832929385898324025165651973655387050901177170732712276069614797304250429028988586334741173878509285267848570719946450581194606668510919076130856043816734552527333179798109870459071718741961402637640481749601253443869710379015344106117381038409023080529059525803328651652269774890943722539544934393335604291984992302854805618220546002747781414393893379809902030745510056011458716160147866313832407916800278150409975319279144181019491649402662323002734143985818154484210350765227571219631776635586725072036533073316529021490683105083180811511201418413541880057874768088835228461962524324592031778250406584258309908892108506652749973384261995538156249858493072118219698000613404856193592283467822157039471291082194079605967658860978336071226544747911329063465236977808150076517808869588718880493803138156648939617836288122374049637517005952358524358808654512712396205623276032621307442428754846295850633847201990214583774351490996494644736719051913048823668442511363697222651271441351034019888162218599054975791612381885825362659024246523570124429955326883690222594832805794383160390750569808389363700375331943407996914817482825309713426243476013708826546744698831967316369510767029170454357993328778975678802382957797443269451386433701100459814610715011235779539635937600076685524803443498401014253462574930817977910035102751130443706143596335852352754850648050436618837518946739967930331568884006961109345427887288929067559487743881528828638851717059004494105915494975249501735231111518194295909238899196409194304703247164246528777901541932860017683364447229414988363527722076625478803036076151199121788287295164719902680518273195512826368723109056837876094374947849260952574919971252711808884306586348073967154582691841026202480989740109510065069254819322394070287461659513917914899131072601688405402817606036438370752171098234179364246731965437092176155846649501977517232342831434946551188200803203633111596638642801666238658268006721662182415498111498276733082716819364154104604996051274099024376903103526127618864104572341680864993268146562562122810030956684323198178303455113908753744365571418127947882514363951625517566121165117007876416092657932830615054594577421617530949683321239200813551343481379680434486740256782776755188264373983652461404941124676052865460588230023624946392754613459668997837149239360482324388598606619412556282539558793485747770925676737787164096838824839191762976852677959745375706464319223939352893621304261259312315675955956569563254786651092255750643078292859187433066409462825875875532735153929047777852793591741205612587985989965633710855065544182732477830287363448390647588060311655281080189324843125230563959072163699149079291210926860409103249581466269324390498509408794910104526104393401787146384596196569652826915810663476265474979558015182138560511927648947131691420415072702878481332338683305404497653352692415143543573790616023321003551553159401116037644260734862674829894149374722018256442847237212598576399520788978635070056546398284531144645120349108102912195413596738705248455992842660987316985245969726107959107139621367925960152372630776688933716386119645564742782272353554851519406411978642569903345392280940723378487097395406898275875783187223759304186141684528768107915580776988109255803553181530635969257026603895428352774584153866970037307139111650361021528783445440291790551447913504859587872939651951830706569677225242844587969687805686096441591352910785717689148966765416400331848060004692184130823126708200149901729561820951199819737386310990391802269848724462611249893923055615286698117733059213533286145599538663540875980731677799635706688994045824067597123060860816403190782329287250072049842655458470018946860703238876601788467652127432802816706380806088306894108971345531978583382357160419851341438531323082959683535006670003860490462911761291414813489397341407344023579684845951808071538185727572834340153391825889788615013451112595034761978635914448118169352612323044382519096713434884453395910304298006535316338274759369038351853315998144352163050772592564593462764617257058596509492521034702183759082320572560466556555438121303718282908237755047310715815951392092229314931002723888352658656607531886841309885838265864323345700096160158396909324765279158002078656339517362147605243298361664765730128981996259125925268245972025326550297150880789265478783723823383091570153732990779235199810149010787466427895959847138028793528616770508326572600269537171933659180571162358404289449755896272427751912222959416074366134213725591921593882791391520764479557384454939885191300976536284175010201862046152802786516035689118952397572924232694171551970128326483058836122086536538965752844390480145248286275628571196919841045109664177026819179833096083820326959756215623114937056097121485247941983814489732119327310441547628954854176311176467265995221440952681296648463224169221133388751152353424022896560118936637622964897982858159556855720764936975912996014955937969408240506863764150403713773942724694798462412323699991368893465677006679051511601241466982926687847927713154527532974558783454949752128358913343196386310506802742102715699274461745122478912905309033598264268855405706296275941688502929573510355742802383196808934539741073052339704827423337010387957752611830972503358332794598416548000605323636895699025430527094007041234341998334058205335322179491178572768982999046727786176425984747291619680787025966284250325836386358570017037998124221073099118539979933014995193777882749844669402294825498795651436910405358887564942661785046511354614651315110909597639847824851322802020504073037378502287145948851773527541783358319723393485495557866496808447492836487978946535172175074709745353112251699773915297236091967274435557544958430393784296694385411744549193988804239018717105816372538539230551424250132360624106419439938608668689959556729336513182757742918697497644618975072888510607063873140396956241307508818371412879902424981140005660608794232456125551033693567891361087383088543926004663578837827445183990968205406417256602035223221069541851066850617762543949722834244098676653177516618851394449639807672657906627180217726008111838210267095408801182186228409357647575984823685527392927721483962425304479265611293580188344476467774655223264238942774010245155441166846743598022761406374776372724690258878954732725419434389893738087788408522636861968862071278958777614243111976869417373706250881626951528977509689690821674358894475339911632118473327913208458428681198902149000396423122208395093829913789981854946482063469532804201211485087038558537644737738531285193020482524141785621036443683997596590756444125321211050757806230403736906769792052463772964256232207627712674116689294560193721408360291367343430610092145344520845935502274777217779376934643314763323849159829703891722684369652703542586891064270185397129889414503783472342547046868168853660355523377298534194838003330097600659029342372558737260704763675413756453569722840558568551089134605734718550704402343342315493709075176084328958706869314607378174927848492294624748684659666327107557667114763595912718467132216898800589148202728957730242018515808170529682413494767037468002645306952181972843943815515489362137571999131326879365440403044413108315683691948027326356577049069697495293791329097328420849910365537496519891354554840972768999278303118864681091730659700418823248079688578501464866790318306788938756592646923120370513414225312973011522646929261660337380985218193080556044701863372292891103457716575181682160044682795969536139465681075760320512111547536958499534743420668338717942742624393837062678562360826857738190312743760962662071643902634251630792641325497739866253059753287612392657733835899449159786125748759987374177825721060903518304109798726221981835161818064176198714141648587317128629814446011782526176280965286050103391521502032895441310090980145171749705009167293205166433359283695599450817487736919579959066524065810419959697426563666677684599488209856944970748256138279208001228278409365851441089728068298741352041948397123647751632765810143482870751158612770321755772954464160492895285401139840650385802119833890084094699037418492296138191577232218862537901056900877271237932313517675677436046727753392127764078947251774869166400197756782884004785057095963439345140356213068311551117572804601997272411569627056435312733322559010280784213213179164329958103538954242881273498476542395398776823044081427122640609662036713614371737540328389109853667632388521221017880277133511387452446838319337522274602947518467148596608719435212453045781866251215020177152014018835297451722367179005002636965629343479988889717097857537235939744380657984032527412196610208611006226353754547333539208660185204755028735983522706757759835845025296557489938183879200057890991076970892506419909461747939539067972722882641904526618148386386057780122243050332011665224205021598028370786352637212468996216878547260952026249133822756060566729548546852539305598812109990420715089181588707538308737082241622461653702374452704395710662457046428619113476947802885594817800671099413397762555687764105690004574815605069048065217362528976274269199531107027157461329185703462075032930390009258212372996163037512335782946239902004314907292782894427146729614771608262428907359639365192135969811408080673193817289605807076228736824312192209863910091127614910966058504413811436798775786114384260262444775593678145516209050123076725206158576952747030641445032411756152381313988423008281926245532842014066473487671680105722765177789431811125927272817762213089929314286105729059076512351345032574896273200618853673675520666802595899919196696557898547796257501690602928099386730636640524947455193513546275026404891555006123661269162347525973513743055260161397735951114529439883060387880237556030807066066330566137358312959983045362843920778132517196189955414168268834717140180635303816052726321024588505656071333745715990843577764798307103531445970319762369503162118703480935171090365369732579209084209195271294742720517116256146597066566661752254053997795051269110925410941186200794440483652200229910891974997602632748021891019734536294086221451770848541082724577744050461875778797520270702390563983164396843359983273340395815503964164250983344241710546815280444708151577629365081306379099987940055711850660321939350527328246998014487080861554003600645058968766296805341570818663787385561210908940602081482552568381241378558221660697010610799407400217167820697271800938684048553212580364956065724755214910249171794084882118679545145700116370293417575515669646970113335990589634796526688330478765894562741916312173302946898181294790195812370246807781776312239353106065173421307114623711731446269377808333905472416333077304607749263283198124293959363428696850366694038521844295722055134187454151154616869556211008892845241844105457481695671263571349839472390666821319276926466199297947509269147576384424073729083298127912184848451708890566271229771581576304870728991304831728500498145280590568767869983857461523755627302071962656577872305297412769404994323148232558720007861555818667709859759715034152637558251785654343037888911691097037280764643187898736142919652973155960847670334239661989013053958773777553081841931394387035546994488210320495028875682799767461897924116159028004913914328759212237481943626975187162927113425457628405355527066546883942267007437638405365467788121364924584742792082742306479173369069636271536345997562667190036227232858706863969692475056997664083297536944978272032461584509298004659017729142818385646613727349352654471346762978489770198839843254000984350576140420804086349150205895506737134152408115551594469738181211705759117280371943775474907779797325624683786762644871214544016627458132343668320950067673226186677173565462467155304379873354737559203064751873363039824224158453770853962353324788875912783084196597641687575363510313400569325859394743755589428573622066614253798610489557447465670436315751523185326464679032432448284601962885715498513478441917408148086282973465702011222007466237241557188309774870049277581470547148984449554794994966457651273678972630259439209110839089630793352638508007670899240890585433096582234394963758715423217226451538424830702426728628065547019686982589607249346773310012689111727060256292187151579271187385120052164618612911755980060825632675568995363292327649060558251944065479266619962993855222006098854191089156382459159619554161799554610975680573222935948332427125844568921433157373753275534756534717732326727014816057407240171130459349455031939766541368776991952307498985314793883556996566504266922430550229477469634521647563574330231609638004660487816007782936826401519905158277037699920717378730203162148958250303618953482869401643236210624425447617527990134438420037462748773330874308916152094096627968560616635826772369652114248796178732769093677460752172636650526256442029782019419144583475098200889170543947594306997180935459468613668045595270773691618806821331785941602332411373521679352018310774983699739690428545965313936135421761996781041549693070087694853511872325551553245637333868614086569021612210026370392630415684079606650960874300144620275779102654060475705341186506610914328316216226192575699303196695764255394145687327727589814843179192343428590400217022433645451611923434739112743218745757735194582245451420463611792351204273866121329602432043435973051920986762969146652694547495327144720008630357552712732218970585369280049766985859422343376909194928026713095054474569403484244148971380234969454596230932746365117932028642895484796210444705947553674266905198856211767294557412029378083853918906409758797195639450373825628326214098013234404363079323541720001919814945359433807902658107057028790459235408892733911888910097850783895664242594301035833683584675017964040788017265510393992950812161494818511200732248100380221935915887849573146040111545422862470967676283691794906862071548505104924063000823855022926967874163875837675204946304054259402175762989212315655922278359985767716984238264778433299229345253041831686854250481002703554712939951965270016651713773493594896198103171610046142807505576493702718601903506195820977780614967920251385103734103621659930789766926168900163492833399139309837483492016802744934687860584968238265956522456449351666874933121913607469235390882939906071911738286000005188864757368242861592569388289977299305960874399074490068876635052563353053313508357198816278416683661764849950545550669660513691804995805769705775160062279922926449401407235052838264236546068601306798852789305749484199503412891788818492515250552912142483375610831002533191430206316411627428089562584869730740337833849471145481039791985996244626743286558089034083873553985264582659543202812982673446136631029226735478872270053632041184214819223462178005280376068914557523212485633867807298184371149306552291640907323212878893885922240474732742837621877587881625960599971084176184471457371904251047537584282145721094409222529257872231615093623517580345243673857923743731718623403991548458643371191331190367194942833352766871192366975298503724535370243213368812730850722271446575002029897910813230552150404700745194962406221354399353123512703592996110277840635932168283431061675156314670631390350303168785217351740789625116334794852246986669550856297793601061394426276061278005208830589982949513940418028953219358291457711241674127618839628450199489413143927098767022701653274089576104984696687614512005614316364835934198878319941170248910988146140698368577028473999589081128937273379134462750769760907940741652165239835054689232683535342126089836338174785934852134429665227040939364840317753428450138327759680005838339218431727880229451664601399909032154709836729835122374916010558188814816530995293582687050305437464362123235829967287986995517119970403128516907476895127004775595198020083599817977799213082065782243627763105726575892221010770492634218532929061051933857459476837174965675022953770480323458065887620876515303054225130040295307839248383430297920933862805530763793805680668207710805678417026161179896717564373695646260794090116984053981949602905109733678364392929254380244676750295759096576005343487547151887424738326479870674131869842251113957737065563978534414673080845340946346324228776808432209073865497402004666906957197583974323723321908620664215890269503145902739970697943602012110297079258200098937898244150339761545262215340313284151764653306401188214569445687640936880107984640141525929661734524832150494233625951468202656814165786390073954798156498069904898903532486094238772078491766855131258495612692385927311220278631648228771607312071705477594142443877154833593203021314160148718276015885128515888136686344945262763856928575918093431940084563918254547572634726556032848307498821193537674197960715778738801342254119781313059146730325652241269922124536095694618548963868218417196659702478785807254040613970350545305650804647303542931840856479415174259884179696907534251188821475044749234692903425372612295446953154585860818913340772126000540451986486143832371327795639232227395772723038491423761868006900608976905422851046267373511238607020187780627998059834826356616093966813972191536910208346438442316385758742525885158954270639938617827640573670500777497047066089958030225213075370085620896714348859705460614218492759669764846460654803325610835826079417785294320350032461442092093396080619252684257554665997310317230601822178685751667229001586755415571668110754248940698412122801084696052864385036212142285471878771499545522525197289682214576010661777763442342337442753947957061638408499566275790890963887323100628376011052627547266402204634872563942712545239923266605345643525498386254418322699901009874746496261491443868561186195149698717645553862616512307288449467765134646986322787866563250841049507639476839884424646414964764056344635334013053252186643797203245583617759339054569264087391939545114941730992058708161864395938860277141449909955510697859246310822329245831643683669622063903428973747600322986371420950832289516908151651271588487969899796678059664802443099651375599449229733276787144454213818498037137138946395234974803095712429631566603894124027351782922120564242228517567207175417724431661367599789893035263369002449649252058419652367443794340476417368368973003555519851682374193058612963855660100603821095201796894186107328057706168606614565848616949430593998025614352023406673200891921866029110819436881676280908150213453014768309340476094810436511810418021691668606380678861327657229943687888654949929035880490750508949863546327358990337121466743744077019976613362879641223222148135284182875299271615830134357181503739780329057730100872660083984055033664651620773841889129528637223014363685646221160873830708167532884580003929970006296722452079215263273253137333983009919430916494933618145482454875927981517185598213360884642426232202782909374417496438225034853393438700845324268728091087584502133785512777564312949006583562003801332238698449239220184049835908765758919653351053142992509194794772227124722464596853910585087586161167681304837344667025475707141291660467382337394052985107749554364967411633398004391917634235204206823776948565729234939814275093274661366440974921130501368425711504166089845011675563599449985411511985601423419956453703980469696633313054893814841733680524470262546247615921267752402886143853099347229192534994242378201586915269737164928200768755342310979643133510822779327707609761054595425952546922778263109336360688866056993330614293487918943706707327815993860148484972559583081505394316770065148396792244591538718905988959673429970346030331763300724350375147697385270914066596463840616637619330173728359743497851079598485258349189809624177216478178221496577491184971934493892326065125240095922403022795798458239966466654158380630462621402242547325901453371784849540868487232915835822998984260125696690804444468535273711507451953734936929965909620137391543422069314846888019642458477847199031219241405868879553139767845723900138812704369023803178437015607385591489296973006550615466237092481946760509558435708430927584534672715615076330773385695326871046440759252179947883018513621464354921591372276390544544891031988630268970077521239148785336009492408550007902791114340663532692773346398916936143429520259583681078542280215533111909765684423926100500020940660497408847490034191843438658187897887431375312152739397770433652268866686696922849049664464448312477909232641859142751667327257236649754120469485013047388877312707220497054585056085759219382234882494963028036036464266035517416953212160389225445292980648241749230254130950320019710626828415184488785250476990527290492476076426501919675535600790526687185603947199686476846508277320581066477216548007069157691856812185327923659721647830090835692862677313498901169492501230119444612159490949304408261976429030383854676691171472644676674019088183314722688093436195692534578691957540258275377903678223191372682337664047802073759629567795036560672780112703189064688795250439184798786836446785642439867070997146392297697769510123543463676690109963825716345638565107371065156502967629642431331597709841960670758756676993056969570977042028021054589877619019033271850432573009080125606991736809248447239125111389728496064460507272912280505509624313589751455472610144094730660699012980566812205499280575977892008606969550960947357594352557158236908613519623249118236616428582982982394574902599013974866914757735213552607741899221398674686342473879948344598999962776481423669543449772024842126298970718416933792701763519742171587124480559269405072859827666707248634959159488040664968429671224889299628323520498772372300093552700037721656584683443813176377227923616988092107723031292975763392950496853987210723254074490404133399075818396388563966870324565843290892584189761027618677757240526412033126754831736993706275874998002716950640307080458353643396467475702470479279447256887568568183816831155162103334046285952379009427059808401276782963497401518220354395461762565168831765176492835694407003820517295458058001396725871553889521214347001368303401989634800963689939517640330735410926832862758018570363723061268783166025682140246194835799529777582660150858466276147137685325450292757065570528607837693122157825263647859059963009997498754673128577629555114445199333127929358559041175302341324477018712431239604529057956892976181341820173440538311402304171478677312026849255868959071710768733790728377306182951000904871512587727380136057137547709176068201083823982210367423745856797387859575165728024635592852810832349946269202576558528370988952879975279749288279092369854799662144626708337734955692726901281447812983737815336914203103852849120324719124392930567239509956226381684839441082136832121450887190590202785367048272740913222756807579560558642986829898416000221016792902641934187471038952066827418298135359058250983588645518527636154466039900890533360547765865174904160021780150872744845417052687991917975256346936932365091394138457926716180231941291800022975799082489097982317298954703606532794354907669015756120837086622077953588498049226927761588027276144046594091625180740319855739688788188073180469674539267299168823471840420265476886744157200542978552403975939748789605149094865715775376704644465325613703920915617830829984562731409238769259363315017075203408089092347721781377298360800738243387782847763583684135507400649144488604269003393466104368118784459179651206592923117295816433860770694700992931217285455626753334470839530920680945947506713842868398616660087678656951697038570477444728834459084136500285110894841503227061406346102646135809065386275785152429104510274909166683527097229335041441184460348565391668689584791629819989325977673292841063624835487284631398287104398920240438194059865685096579754664391430427397723237708748270010889554865629534380257230014541367245659424855411953588865546433683401897923644282539175831669057964100146259632953121675385661761750911554390723648079940576210055159379765812260893133910852207353893419136829362158455749608226699728362006494999903232031647845135769502849905993448014364002974104653138375842592854552465025965718342773124300767673633366524305336515794239791237963023772268639410754595627907840887054413848368537553900463013414407983534790094680203916446436417251782157677544190130584322808130045274629622833623386867372563381765331195625859264901187560214569746701703985446913901079882984502109460751433954098123123966984997717791004694958637806294531970985179618924829286271040935925824042056452601782202108481742329328571109129604218327116937992217775525249478934212511120584979859782929539206519273120676747844470705795942658147628850782646159691200744368456751101606392101404977747249118699311534979241560562508824953757670399226088570430663158228084995332617884438952006855616459167080470453380714658161500688667709228148696057942638898824630802579025413949640037267670887421843767761991993509197761339512918901011092425058654177446454461074746829119937739955591243717872514408790830693577442095918251910999153501541040206416121214214930490515565804361173084618322515950082747134230678120741267799996248592379984079773915896503027336746858203462965438895430366523402560907541512760468374861777661248018926750415255528503841506640609026860636855723837912870834957580716109063848487713534975413838209479798753335251546187341694386667741777399487901673767067219603466076511953945122639978050967729289752348935372267227916146605557681903119479897418487604886451208710564200072217741255048767932094986770956535914370485547468720921631246295898414610606097386124490330282382682895749273239453641589798386146980318222130258750718407728969457570425979704905970739586136585030111820820124604045061801476577621101443311198871125822223416459374529158106553170327550118326159393776497066079608221730013817109331416369691397083932324672943731178350372651642625517349014113383786637906894474391931217953333913731071284525412402151933231933208066435235606657624388342676440725121088805777858857031177631962788108060177463861776857029427255381471714732326030653099107968760203504004237137323447402599308657085567046049226935302212564762546216078406325303881541637763824883097733794875938714639827557287342078330553163356209722081537886695953917657376590310013528981573716839421517900920539665359910615165593515932138351485986675646411623169456385753701457931179002752820205527361113117051033309013120657946769294822868401303936168946272959139290738517764955013889287670748730082596124515568918046259272899838760022779091302679237525702178876123169379229246281598441430962858393356089963151935591078023371225865202790959719681822488758928757550951074268726122580985131291289436950540200736850021331453739338379427551021169585574472799219854075116300755928380687454777544348578210591257019175604769130865152796339708325097107995569080972337655893799692562292920777012083360876133117264897458392178304740541942939400370835100489041536294851555919204614349842729284680091757328730635162010740757810125720009627468113944601144036889495636053913085190750852398267416283798136836669352686279330596941462844882602610624823604712102283610053908038834670653681309112982928082096887109551012518403437685368366878402284554747402775640796182513995214597207328775397841449649552226844188111701824464478927868150933388927297366186568263207097483942950984717589442361885749790609016514188053402414434506401967091862698505711949759631546432450911050918977415201424717458351330858803830498370183388964231935471274435176104149279547860874223533375742534820378242554899140738707645946570029126791410321086783786170044399536686317869028553356470746196213797399697428370633360196875489106603570401083042908633540818792405325874309529731164652589278706459296268308040216390248252974408903506990471786046415278374870675469230734362504265513696327002328584136091772505422858822375519951437734047205363596013792904470058262380729802091358387660719111054681229778318234008597899147635818456190531642232087268670504846207597971150174258390745227821835189076105508691307209418278341950655301297386953118820911158639130949995296045880133203394010668423206284863895175504271758492301987063611590903041893332458082853125308189761457924131147834249949960683812812066470043513017776423153100426160830633078996394451723466184180278941513418077907042190043215025265568269814384441388008835086311403906190715900434870448880791563520111827427974545257330473886750787768851939219230760622765019294162990539789796819065487990918045293252578187203443864029885384150584211826207143374034557190874152528025093859538093790537333993457300697028827321526623900957040557523495874912224813168055058736691901727442000631030322636838644262904766356421188490797262087398825239115036113770185104736306761026828923965960697699247018870686467984128412991972949385981222012102669152603892653645178528199335143002469514725127804918874527243946172490289430864767556665144268125605794957589426659344827956879578929590103856384181924269413774598788845918704200383257511771705167744940638919835191590505586319258808283141734577474524972472861891443289458993861044061730053237157870304382719126890168109282538414111321840837919331571248795445854972244342915421924453012798472730106617340964263407087323535427153778183622747668469710265570776462790282992175746529946601955895202294750341757412529651502976406359826521537060929976930360688312159610277022086153081868588344725369778108898551155428902358841132791348784667715436574935567492999249144993306870347424036577568791226002301861015955564183370779421688491881330118384710228372374408634976083313744169820788544205522033015362928933864380327286522363988796473073402738786361942029556091513451315625556740501195907676681483813235353462734496182016904566592124430421725451732167585962988815132800140594962590712590941724695423038300638687540968510909369711793666661810987761493022691747255069330209388109482617602339906417795932970446766123833765333457887363654101783574413361194610917715049684293352281435951374012804439604333467966486014225462785115879215207778743010608425878482732010770070886038074777647266051629610453638641593710800121839558171383604231681660157328537172929445474315001482862899303684880609277123766744523101192968513166241507255680399290406845850461094081021434990344940832285531568496435745883079828518625912043958714315591033693825470015484181461044486590392632808949076123218538916825232511058745432452897629070746704610707824175744208052369609813337505057541741488707468878937095718043875913585681579354550706475295389840239843324823994145482642266554464318864254395653270379035132475976160282819518093372938811577031831549137659100560131493386438815635600079123268297959375975944045048015928084128361238109089028973238832047730238505806938920066402326999302555942293953631731513116631115189545588068707285987454529204745537010581816451770293680056977020143828827482601989079925164351897640291232243749626315430568976810815594842017565380563992360667769515488689227355100429786095060267530621134103585832841372767104059639234468483012345938685688601831756779976042089485086522168315075423964222049252221714115652861937882583197896553077772708245082471484130883966043956944776941954228584865000873377039081210142608196784037150768309166423372537124425714356251985038569210765451446161498964255990080218622269680908708047285356241430596315714512367078447293516286637961195116464074583150878970189044321662345623600931572585197772716544492833763601711098839454277144650973081299123157469181973909695852646290405827910018009351720178089107072448086104923578643743932083709687158822767633640082324337425606779349251898068035060663637666326556661992614965715146932163979671451651626753505982924532236836587976239249044697528718924357045949597954708584176867747945821610676928169448488263596038053106819895313992002736654476849602585787126476079704362007790471119189507463851040315205675433440622823594282741838439686071845749537949281905650658977351653462081671642322056165269354091689652293041073073427268517712852348293270043171360162770790756711597110641419435790039603705696744049474349385964138716906450890586050280065315165072386192905583419134101229184697803536709332230639158388049103880716700196081010553023129506352438838797058891337821628617136785467324934940736285033549145272683221935001625520126347797402404142373583538210410271859998731598040709875347873416944028590737836133341060663916631151051260941663861629029045771458072499877734316185514786382363194872214041098482327039778816355995107708979505055445137155537537793794261134180289721153239894108671268056157168310055443663010605929721688311833322413891303144339328843517399132611321566582713435302069751687041674643299153612516448430177148836037818895718071729913841046235321349150411760962661579662872747560161771944892364324012295214166440119924485570180553961004588646345528068717521770496877334658168027373431340583305066572262581105508287186054577888936231216862924323043387334898988356704831420574319228127363560718591792697650977192471810030317394065020912633000344770768580158493885667511332001395576990405960455913073147731221135491643794749937781924819503892919132445233630362291557528177290967827654607025785010634496302324275036724437655622597893676412342956876552253154153660761462463282547697759257088397831119486932555107486232775250065161702268879503972029759645141426756079465815958951943163468880565236027102783818332008350819214960045454454844784581240471203717871623763302773807357665488756137887007960004189747055059170367590359651552315501263853386819482841926646478812079728168654095205296885968544276804895485522940765739380538469774680177554234818469556407713576661747024354642914215797711074079733924841776665167362190337270524822036276273882583768253862655186127201600974211583727267503777168349847606366550645123662363861929356324524839804787535761148147279518082028980137883351684544698350337352192247721911346338731434357603463289952350118806025601621629541449521006641340959224486989591933837393677866500441942144506032129975968968321759867244186105107581013366603597424601463489836048946940989668694389751787666936981616796269946483024406586666244665183339756311206928032666463466361211773183238374200946945976205700753408030397887811417366381790069591865054028189520460547238432387290045350988766546645279665258761469063014714203857061668551856542460268257640584643204869865307852605813897808807094023888727010027810100120905522670203620829505382666525737975957504051127360944232399019573531214986873210019841823563781045275936955385370563337502789021919323916659960616945024179042199717139711319939247596492944701870048792444174790117357206452607830591449449761198135454337695554346504677587701497850165572361589822340058985225360303707270221671572554197061382565398727252711376525724044631066631926451148992234857831871902710697280742487709058752762482592996552627872923491653868569601887716891606277152389983978949471687753689187254383389465268810353249026368319468421672179828898229506937031347262810060209179199594407822147623621460895085753395870961175372169006763636431955137762938417467743983013047403050976904696426101146249720576394616591461675470243667728273306621510665755755020823310109710325249829514578367196785554651732455225373068175489363473585066035843453251309108209191089129634387364192577713803195757992596595439860808095727655857081380805405936130611028807324923920314693867295980387923040258630385446689289134992338360860131722397778341775580183824580701915638215385642109021592370987961515453052348964828931652753445128089293655413123679294059078321524064306980252038858120722419083650896682195270936915025910838290030489719634120919985436630313820728633890756911194534903984991982003580548824226593656113777899121789068303847901202031296911842260647514432100030483275324966613389867502314217146846445395216369114077262190570022755570860503134245929902235498812848647279397938846249852986992234377398680466111500183019312113993500417051387305323319927604517104784876062319376540358239262229946981607035053230306059144853166287257479586680528352206902591280354636562475414087241761794931720318843144606950897935506914616185735591053066507677070805996209802831022903756105749948971236450534585814886304297459263650335094390936669778032338188090167850534849221792381737325434985966768435802100084932143969494758017821774215678387456233978921706956577641472480160779205955063800479677830237690264829954823707295464942508347242901851020273098730602732212265569063820890976203383410386616971391040359599977560022375291401346801129208627164705217159220606938815060545726640608592421103505403614965646765099931499453732322329543542679363650347511047624662472163898433780685223065048676660369033518381437467665008951475411777970867820291521024049072782133331894622310894344936904537198579069140115058491592702165382937886243076176135615910815262272179772705098637627330265819973197848923181631593995741867653484938590249705150821435366242903659417665944707002073093366787007252244011110542955612454744164841828269008036343302289328348574972850522925600920938059532474458852682713821473944562581836018425944949165094184748788529686486275622381701412962925836837286501146687434773914871743234019746997904312635042997879466418918494160138447081899132949930358750119407587255060535237993290137440017851503643585923045041487392309681044889118628965052863562088456579013348622978306995309236083027393787275153555923087108255340987602473103783381077511593707781072027703798871350319432305104931950910003187607674304881749865645356367507998534940274319477071541449001995194693799849031149044545730217965348505745058368384998979172429869169531932341871945447398877812672525245535557065670926401096646056644606526600047657343820524785309524754387591131505276693083984114304574563611731117071444800233576641484407956194418884343202360993589030091130765522447182959143886856691888180678550715663273082782465507299798189452209998946533029655433786703686473227156897607430993811117523920605513552770915931405780875658904051866681573367580414650539110792039009673299719843870914850611793138481956047339627350372968964511277012481429451987750260487157010213019998623628499530791396074048308333877845073835716391582713767308692578616363092965778129298468723265637102701661567934095893021447254420097685853629255357179509057761390323439363771206067678102113304924067055825726451554210950493132582741193548680139020846855058339570164295905450043409240956203942175232627379551442362394695734012200243227817308948928384616335619297195134924703350735362114600001102024100911220125946847310515343473188150297100871158983310035708272174221121012561213033975074121248545056480444602486424613834990738356275189260439798653058931135457632354683915388183650478619189739874308587639649382873242786161446572007019406546144431343305465477828122550413252321137200993366265537788159268345966558339589593340960509731419620178183770100375737677829255440626339323550275992993942813410955364845302062809187860443144221228301835703161855596042794433447841995877518051902142291873760445596154476941827681936713673813941195533699976165390805436706683894275628709556209499618369982049355291620076331659333710073472318100152707714914361223909847921217218700221645769784840747805418966204960924380982995206494426709082810485330013347400422915778501898626374788416137396765658144109544056036111841223816428388149638715106507345755822752484409030017157696303264051773677456600686166333444469526127388614644412978980011942642253415155304999465824438604321416075575679761711867309862283436247602408288818266895814323189716886903909466396026786328825674055003762106960737694064127430090079617638895520279810395533695161805157493245668328929346332870066715029493301566472142193605352539952355533439349496892448722080110915036458780166445170304916286055293486647648394062543592145459648474275000259397364022312919082291643664144025528936798756636909126674982941671359667154589950328644495859177502056307757614805673468420807014684987162000494007847611929066502120282367157207630026520745097504025068047291295082952273691555933240507833911604580764198104820479776885649725035815698556173912164936255584690584091978377657563055990730924925980237126777253810092295115924204488502472221030718829814573662235795961187959157356847597928784730680238317646174302565302955840937226838919098524192900635251473929334397247825411689064318946469488816923752537052152351725275379667966975921677811754034455705557942541425994292734179304962502856346231810503570189382135890444347208692528787655792478746470309431811426320132720058487831230266252382764056608980086165155721352345215566559829381817182675156938447257482379696571563275398278742362646490503677982857079395488451113759735992580219167748818442824646648347273052487534395906975217614373905149437402865974423649101750970181567976138169987149408001364280936686262281757061331539644868072804893203774652616062693802387824750417668934128169874852960697569909919501548677455425676144190154312310963428641566311458637439832226721735105295287844627532381511881384019054338367543171537773833224142852689677911524158979552474109071985286158018452959318567992493032283602378068878485017509518682801049677282060294952645605353278443120223331679988547668647820284245904913895653692705607409246395498351230309977679515976657085741750738442957603261671427759810448903661439013231483589028858837781240535219906111335939246957709973836783601802631133576585778557362965488542627823986861960314605149763910225313749587694605598924508623149133468022985617241908786321335387221063789562391168258910791710426559103282724514537219093844615803177518051393819564960089787738183386659890487663039193750017486542522722440356565114381241626319922137987466999967980903421807812930560073995011950895374018883303549448095954461757590545014944727810342368002402415704178311316508785360433521094294443319122730736501601468380228698887095099699550815819744054991039168760127983024706456725459024011945588927156405762742904781433431030438974267170570494811614852952143966678908899348291586385161536333893142996760139784930669794613525841698049945024820218278121687465981455550112253923817588545206985846014498536420583974828999788921693666900485233442199827620637704056729816561300395099901259296823007882576196597604196246922979338690590149699455605117565892544813768050781550709050289738844321197032347029151399587749597661592288929578397073207160389424791974360379791329137130342032042530200223999561485481960136649801282488513182296300123965418746950793262647932828372989974442084849816046240577774118202287169505464352886959767197318643947411852219928210049950503482096338294541808225066188332147358164183941060746252657127435404872612113663084146486418950032618631015745056760308217305635650705944038276296408299093763585827007623600571295724477600843407865453880873786766943294546420694826472118420369530398712869727879011426879827074891569762849317795127545551705265055308813281460226527826550591387393791820832584130337592484976730365786380465131948799308148400271557701253900939757830907464233577839348447417622776814521548232255814386349060296627616262970029680184694835912368745989361725091976520720996090697634786221780061974327759301641957716038273075183725408862608655793094865635589141366167451801475834423121961618408298403255451035983880833078084600695448892796539778178469622436440595237016057657863523645352919031731958193173765097771315801126728171550349834385864782599592440855220659562795771372793660030540302975166243660292793069988605659102706657458357917056636248060339318688765106393740945206736242601371519450805302127160568565505213837122046895316459326017357214346794668075482688028593907551814259103736076629855177108212270639915865483725573931695630841624934548803335942442036810767003016052838595484253176973280693211783609824142176214395174691812275078157388403152996409454669709893428252499810779474163909071272987568711788531903570655838561620079508889781938728272622885422645803628004167277782479692316694455587939473231493297052846348945998842671169368793982938929648031107313701474116747464410419752187129734904889291937250203655286442750098106865872425877537428225876512759905811132237849816889777301614774029462984748127501271916310042287887444879610366636593641796757149194304228684623443383864942166921362546356455909792941914365802643062754410069725935308822309399348191117012044337822815445056850985942993646708137171536055450038757177303610016059083720632825761738552348180966568744020353501422476701133081983396443019147622933404181228392493375286687545402535140357909581301330901441603174038796209516513622806781368890577146034977800143732178150591930054075005050756279417547018723633668523547103109765464142473245248953977533403408665007968878311483773409341382897764251837474846350296877115240133667186253723492559613116037587103542667451419578107238507198886712068598841793699803272557355437935293838983386750967677472625452058118580379626838364271772366354349303074208465902354874480475952513904553874466962193479816316940459558022873573984519591378115308488541357352224980110878720758450010241853746576381859386087520707429882255071985094245376064814192839856792669576108692991298865096021515612063537089777668815195886945124742662093428126360432786100708793193478499768573446050752069562654450592224497464050146356695394093423056826353746756190316298453546653516492521907400532941041329366725107897842479057252725090333170477817947253597385879625107813311828274069044682441681995048287613009080624173987356719314481089568933005016746540031175106986557238704650909727185303130761496671609742873605466861789107590563720109210231989823841632112010034448582259389562018626314073438190769345295695525611191301617163689798071632840220815255341382596216927410231515459183992315183395959314519014174281398785587312430295710641757313838773256775685467520141413380407891895277220250178380478702890310357662947343123172097659514024120088785681815557274484077312764568496612143973580340330950059057871544167312397185596618757384933131728434260275265074070587332769235869219743571098521075753999134648859099260703032347248965082112380138808507503407239574161447129930747983773152990833270317561296374153233064094452763212661153759318437227734569116649748449005963938146679004563704701551850400683136639389783129183708626073534252821734715780290309979909768693903462452272039626630914199888118348148663688995130487202802658265607378390944326135657481230995586425868907342007487307838796966168790497413674283979142750253560816911707142936329681618382910229601916681975805021397792191351631227449980821131297414187905935397211579939436093950495908247560275921067199763810259522309558756693050793515892804429941090284065739734364607680099789144405719771585666236583170734645985616962496726018767493176157694195055811417882365235643241533059673765352179138122706165319409513958361727691219927891470872320388887713337668724189430919400669394485616143959368293265188743636953762845758121059140252466258435403412156701282036936867138043873381901045484743160439547701042919000871072285132247506496724303736153883579861987072876284909538270393868015881995720982592779531878329311438945801771326610912327672332526538325159523491778865478693612757897931595342658702656216390071110412251109564789846722369816804500223404525933591840170448144976712635496252116763735493689032064856537329383964158556251168673543471633003067824499143055825602599511021200544516474480068008343382254314645768592585170220362775383305163362008783953401619217202162792756803491794293305656784135488381134871658739109105778244012443530328811616020803695227804282275695775315487904727636035814733215132692397282290572114027505886316690709312255750566471510848077100153739161127511450128866183533457548137191968225557373963837310410363554179947056146949623870331303541631674440501055850465551203207482593003138293526962792825213545140734017125928301251890109858078536418338980476787264147499852669394531965689147466276728833098134622976749628383809028778705542422635729833257873637827611184298104887090416605310254749575328679253388261234353271501078225778767124280803986671840022535462469842466864410882070679821523735944904380749109368525174983100471668358946040103738419580616623200069023222708922274979892131160534413400628251422317272839055151893513609307395426665981594272910766074264205607760017807300484585577134640961315505873403140502793571612709040035860320906181197536782163577813308697167622199841751067653723600473149624961291718600510323552998065934489631007475564221238639037214202654687691724232905222816761795654751401575106545477535196497053524532071917103627814048143893467884715777627227867750635812403193335177453217697759548159707463588775451556349351907694019157296747982686688810143233589229456703709815260487603717578311212375025383096476314385356629348200696042974727449310770071266321299159645338736534018873234352734165441487453889841279011432960091116933681541540317863028899966316945015939055149574119043313618645784696002068050654386428793687796937824599057057517348559120553398080794674611683706422274837083838862554616089447214236110039337456158439677212924397171904984284750400111075046015845646499437144146676042468928207391223469474550121620240661060794041194328319797783613555604511627118587755849744155603999332083270872095547771432241076841230525165518008918555409408244139639958838203108363010108504019544021341336562522242867415179638425678452605157525478524072547533333025033851655665008959103551889934814303270596778696850224022559148271576251812775185961498058904965688841373055442860920192325085430665473737102423011513338766409178562291225405752213716597755690861042934080329891619777039489046635413966572545386834907612331899968063953075075574267393724572587624616089413897420835038672238887369858566261840005786928642512603558924791430586880252098262371700681659252707366348664391709176942916710146064258830039796138959816733786087931974435120707583242007039271945308348439648393899258078045214661983443873195391528261152012025274080282167314564148373628279893543874119944851661319772371701130929219557885176283157373115500261053470307051027896295944282593936721846644615101561627078792401803490222926080506419892956295317769125231245450252305144019862399032027282338179975094605216357709671802836457957247827819438259597933293205022330842098287698221047038430907100517118665233613752941824433381718274008251804980368491856813785163876908226399674208178379217781868916713810608554451947480607700787198350449042289667858690209201653309933322202136195328085841499032824261792478330256373354592048290355390282388548138551822128770765728119250765649402771711909305076773159425287275285697307291895812833338187589032116964677763320365022044247985058483589559319866848161504074388460024006481949285657067974958228846940151672754006868479177606836702811308560853241722990866250603207068879274111343604879503677331199053084199034602305272122136928231736146654977906840467444066692232450820082469130460113741087720257921798997800450565205766499504337416258006509177412407656090902232560978565087673833887233097019782483144478981335549593499292713030239010846162926907621925755881529166956267968461439841022286460250680023113032885909302682628750974729484938755182438884540523752640414162894635914510880036455159393859144943212996112554058409518760839704208377740325409657585934136141844571320830236952510686049598337535043868540399283998058474435462397483603126720067486262933416517935882903974631403276263850262266865672616107628865432070892597600306275955153330291515425400867141808944078287703746805894113968911094205230067692817678840144713683247882459818793408937573284517613170356319357879595241801541178486436474404376412039935050175886361205253920850055104635461411220419644834252419187570518978040425549117994609458540664760157826002294971879681559887757217507158331111898875780144017539837939179857281961793671400949856396013353700959235099352202625869358037480702504793859474667324975490631815015549112212146360071180767235145357607208359973258042927633621546485058919154497979431887066917675811335443576531734088786563284326437572960220391894169307131112518659135314648990985588199785040060607641311046802160585877010042344325353126801103067058556426868510757845036290538113643020363347087820361849976295365234406458531546774085966641592717368480160683611860781065740960602239373061758062872916060474618510819157141117444751067995067598229097068102425444219703361859212168735737970832648922250034950360603615773088646301179135291960848264507194311289998586943137637324940384478162446324565551913538932946901802473921546962786414738254876765763861866432034417069612297818303050314016794159809359838200214818512559010626738841955371392957823016985142636607295775162408151889723473210772948545564881488368436156762525503306452772687850770489829123558717176558298313338775553904841676575715107443584363396354667236532479058531237119872888682676624913326028873497714728497174102311529612972785692852149847123066669347058556608453360653911855326936469983778421574735145652801020494531550825472691955920618529521339787504889591457735912371110604242030800514710991708505611352081675961159071345283592863215124770085515036293434276634852791988636113501506666236658554321155019793427872794546674412379545030169734248227757500891611585149565008632070221012268519158026940505731323531959024518152070322956332767400099707465988874377196065971159381251816633029648264137309316638030309486698331858812430421853307754912964034305527836050518214539868584745924723980778537086849975722585547790451421117801935250930587201155340225503666507240354617543162384485778110090241048542929401635817418112855648418069065209113378936325606842236676196666126727953757772519692032486250963884870114614083440535814481137659042549555289764112414619272549036246815361150342671749642796395950614333235926736531483976297797935449955054108153487964504647602989452665294618953014012143837762481513530059656542254147870504370074154708239703241810891191925316356841974733016760688978010311739766528163132870976347122772563823724803760065074079975969035048927371344048152850638390090156674585466808525698458301295204699908647282123668108707647237243233694160271728581261726850263355838248724398883531274093962699063628685598883275509039471242619771909724930804838450758224397217275265156016700480795302468100880690566981465317713733324406104359901546874268933591703921169354533670332172099632811457322555240509458287438861066569429203462139877804623141399512654014118774751071120615674022316491968127256905670382322157053098353683854821549009779330405129316913276782158751210837544933113931838669403500063079317260761780970882382541610945659744264337200518129677225978179364544593670420452895039386456236984927125098755287832913631314322085526638302500208295604535047099691679363077104906636523820337487518418109666038465486474736540405352759112390240770435412578469177955907770519542077689790837838538865579078405024157666032648662881418074815640496621889043696555771386830639308790018591340900968299867162237183600973801206300814360060136613713809831859522184708725087047268403675517810099055692098895243485291812925043601979514981638668468627763899512703960710442294585980291710676954433590397091997787466025712507934284819890524707843934989334660657553989957164272195273301717081861391440928571571088083720935458118356973464745640659998582193738065148985063640021438515285050780436275061788191803857689687625143190434438089285467938695748396301611557004910096237297061807910983810044845855850418613093287125362103076123252495926424979475060516945902351235569156523596029326967808607871985591442141656024773976521529029232120572501934956437180229149148308982574091744608173709031973366915366245547695086061263710968891892055116222781524745679216555561350892008775032254035264191902970674547946547491578973867060160443404560144365443082662169253227444175911430320197767980859489600264213460941951872277216932432952378301049902557276699246147352578935360891166910207419270535181758301403747917741770435224120904154551467584711930543001063322023183499675697446034722965456629014201358592496512668909170979598534487784225758221840731560917000229571165596251077130435418246283829918706195618142604624229972870132741308208722464769060813024298897529663696778265590426629732490268980062849251702371011696590875624577109344175136938991529550994127645610917565864135296842033315445987289713544538475071169224316451754245328572378694204704381754723401236474749577346878642793986757909995461285571493824205325778910699670690125230893180285862037515339158741833820090514776063071936424206421861516867091817002638861176891644838388051591499685032435590990657643103069621968448379317557555062469022904368567041727519424121266522970077010370094487757286552608665447415398109395602058842110073750161716306598245392279962865069841172760618621365874109663334854751197364112017507891886295465266169510503917248368419767938475371133371502748936323771992848074217406868707995849218587536208100623788777751859520581634516477161036020708298657458808299600784418366491115393554082280884345450542618579914428960846306877613315614007683604304706603215433826494652316442229220321728868291420509194678560576551511777567052439826178474870365448581625814144751344809594609269656453004496706129863042521846054075896183887062609176701010260507097508274471092125596135489969016946417931708525783160408831483841801661636670088512201126802502828563611368060433600498953533294089385406620160174259697978164059073868813745348832442666261624821382320605486788849546376010070450232514790235826224865767097322220135873018669019600974442793266896109370175775367934682068921021465915313871369324561672706706402108416373169834965637756275052389860506560914826064717213487959985965317630255385092753873647554068318594546833324145705922355610082210795213806703103716843080127627608959481407069688962408950875649037580365638033243385606990074490195860468995737863513021916269201716608906830764938413302386129224168192998169319025594866661490567709926869724526780159587004753032564265185605088950873100971437658333863237040030390351724462732557958447916375525000362508091891071174064291964284360318703083987337090444090850873316899145519494290853104809688222352817190902385724217132920063791387756726004905732807514510619099223137489047758558827738788272449673829840858206192818979546736957720526996001742211775898920250696711726108862625389763193508244153467697141562023721311294731575479148268153792808692042584458008105325123610554683299171582347765933316204160167277217037589378268597382820382146696184406519985793204504624663693833516022944191206983082615408321262897079379150334725797038522515232152106346898201635496248308663488977450180770353056383817552922543934413884228630644388971693804221115093036720671436569804756327422315618355568369325862046598733998294363593079125387799920481763349154693584843548601099506960466456284180531728880847178118449954611756717194099992656458400727865999934606292353732631247315330006645570449748515953280563906775879016751700471308477395282923137914141365084527124948750874167335496497054546372787016149634716907345903560067703468111998134971512812585190825614190157229826960689956312555373264854582936858129331418906610497786137865032377588264834413365594829933588402847514186163017919044972113078056259632123803918276188386707635998504597767060611739570123373021897027791088443606629965199673926447526109803063784434109777494707058774947667474736696941716517731611138478650199804378976268262540944652699182674821678953811965686900622230358504927663122745975417036686743612781783330826825246699511593101983102439722396653058642828859241882973225024770574558111469237007035363854549925221761799789914921512695824313736346496569215101865018877034127820038293306704656717861753872241516804299834604200037352655859453783160454946939426252431224462186392938215693922190054097735679631039646605656891175159427420321081185642551089056702199173750973983406404730549466639749783449392326651584487799597950620578984214925130587600087662929040945440515277732527774287733849965342540023500988165489616691036982790500651824955768239426633969040976956082153766804087423204652103443861796300332347195327027949867962258929378565469848267004827365832682916399047674748190360934501218572744502187408949641818549694466256932848542245563683292389802690786445829135837389345081915538659767786428645904964011223920810859238490866681601064193393925082286946112652219005539549470922255477402258779643918289134851964085849923261711341751654506541248386640837460718472333178020942094596867272230902237079856364660488821484863692239773550576910023791901298016017074175022455961128525029125496802145561525790511566268953243707176541911508504292835276357990686374803551626666555799406604933928025036818599630193165511462217537274346314114963809304444390457062154416061072930601361226746081548790683020443840033259046949666661377595598019339220242309948902839833112438562517153194927779903683509509353200388806419485783791315606452094305316285066076467688587460478794634596012578166669921785613143040667967002966764075165463938202834717429693607846076128669167535221699257108839360259709609251271757975721953782394745271456222406024037039974420044795749474259069749034599061542223752566733657035619715462018443207120769260162584284701976037011243109905397549386077445644353314853357481039646681142302202443112958572629847141786494885843483519282822255175827079924908800969091176582202632968167731400413114296448268730922095166287753227966178077680207185425907274282254710891635837076034156867023365160829755726233357982552768492062105721002519048704289970564490766859342713858669384431387165203420020484756336220752740105432436155820653931826396623403815493503901391085011200869310576497132541337928993590314723446704257206926700458186728141202469586036479046901781292293007072608836228191400359279685032935554263775736865221927591752578493835853678919201679215629447812913847255237584062398845644180969984677587245779171522134326287952957371985603690340354464796558860823947463470824076102129599906623350576881027496466112242891186607816464164142285260982829804302356492700031672717420272514579924436262873409924739842043314457634432537130689446509034801122698452725182261811567682588838945718595620343481816939388989698152257634378131301763884452132451632920033318010880269534859831276417138962712331565158871085468258040093412864757370707900778048902565935283252598923107783779084063127558406648832722385213454732384718587027505991376354453083686317048274211039558070595440731825648356175934395524040763450922313156802086435431253423208124387493132782156909742677516516878371215839390336177207294333494584555037721458963050771123454767679099790425566809192473977933399393133275639581364099732733011393009343033964384857223267384233793086748261291186397891175363527078972616010743722855527876775810342009480871492786044755837096377167190301386246070063733364850311594784021430649621567910972268473755610627095427657090774050897653003773388753782404765494072603236013277317691747482606574022543767461220883107865974532433277239905226413534862652418485837026683018509059548001564118248737133094921155007166476212612630902283854306531175232311651215936769772581412939012832696085791725325467053754884519105646760868482114887924844116875645703229838259419587884811491997031910390326067542642980181023005412562082392722745348441958311362656177368745242898891038441683566465551620163045030600112643380379629690426456131585054491080999947708137320861138624709816110401958629658694569767653442360800806390490839235741873361663175974239671615011569614459002988877596277377085555038580875613789217350290371499419419069106651445791620817561068299237706514712390566865006899205988486028313638640822695718052834910866348403858453131797328984482361594879933329768248245091470265183039318605503866708766230772107832076544545099958408307482930976273352063566555188737446603840447254633611618651248096737775375041526011341708089822109849271993754409625787003141408219317553861202751518991254347450112996049519040169378187250338794399398552837922263361463055632231428928275368495020973131315049353127171232879010693624032036654931450789289009527343663382875327575806987268744291620390950484633135402259164370152712512824454657423040812438725558860626646529701463810545307490139439056227404040116048355177018052084990075062186293217308726097860853810448131341634185166870587151590924644717701442848477181859612550820888061867534927678473706719096222440977632140518677746819030351338552409053023894030252634576333617630717696217563577353492116163155210234159447315685433902261130121255877226792109841160923569977563066402079275122279493257831658559082717153333409408726490716706973502398361309491355064615231806026293874675132330374697682880934492711455951754670372315289931141463584093478509876981895642183633044135685141610904322693330082241487354297739109358024292756868543154841409230863336624511598204486379326162148059085293471401669778743459383319507397312630516985379822894675430998444320752258149262422243381360280608111557004457881499440216747829589383068946581067980312388090769362486176397463696806038565506821305902068748041096271953523941925317532275569692285559765989749051190844275705414882205748228729176529060256854726902900117464577185189850998411754593775819928532962910363566815055280083167694122986806874772139231414545762671524128577125679291462530051051571631131909324696970696357031554311274517722773786139243773753568107536725167488168366356434031080984172166804913573706292228662358185653240625007491254039208401658953450683538477881672203694584215473104853461021892671821280291305750648434505318041513830525922005176212351462528612402451018942264060446278007457452478436428197968170345321708751471042009572522849526251846073458223430673643647268625422886345080014251783340784814341797741009210328477792356729520389987567932309250870260901035479866162199273498811414060291848236387243560476169955414541096507966415563478686002604774592075423471144389002009282590854546177253040673474665689846268841891288773233665420225234591729445095101145170542224118809139010015003363691418620314687449606941215401742199828318034593311476920148112365825859172135344208335377883464697394228842550960508875637888994593985180460582776565329423243734152028414850415630187473877408405453550723934902405634662870600397260687898320842724526122581344406616854082598139103442074821132027015100410859353783449409795009730619235241027386131540811110957306978127724019667064071615659725497435195215538192867239856515125127064844958899996978015380559140250873244609473014533658394271110833005485348347040614740855353077316875027170449092497806563994277487994484190760121295128042377075211711710519634414978223295376184538030461494973724306419537528293205469827770955392106032635728889673730636060889615582991785644931899976339359540193092484223683678623149256206537870733465032521030685874880666137718581698188326747340157073838393314176381220477013701353709969919953885286539611283350173278312504575735148066194160697828608970745150865622216128156386408884552738756253397046944886118134339359643382952588950561178273343527058533244896817836678679925109786988188230082425925958364541215169581279289150139737341975551203432492728954115896691853958626364879510855193368199202607595341789655590848762354933145956107273876779816713029619316547959120769100914028812413991731586242132316416162569134866255605290005957682789834612257990916319356463973128357445971489351013531983305519657312458752950807513000117983945388898934574785513071195427550401712516912040262077367650085208307000163961700890751119486968699414425273193001678561315833711196229146656640925777683586769817273088824203063222495329813766901598356565108725681905842603831307656642040207182071460327785358233606437033699119858847973562338198746042997230851019029362023165674429800617979840687103989134639289409919627541292431531300592750158491551171479338264568460902249986357451753267382642179520845203659974382437957012947992442401890522120636556318335611396672546594098443234189143581813620923497111660821202783766949373646704893532761910233894868350252520278292275517160442977753595539492597141603698490158302563610416602702218962710949894051328918767891334655740431324539000037328146915989666981265086464830856721796127034934404688947671501306769954579101091458325064545203789308962831152287633526152323785302565273289223097758625975398740179926334275344546339149751716558740075563693054129307997457522655237889535106566225119758202834899839912679877544115867141242160258717360947413554185906949875679236471120750190713119100419503019538452244862734603174066899666833572382705249031536650681202287994517233421899208072130395981996802141224873273916881794653878690545119136219955994871092316237027857539628080134707606703973134619680162020214169395252540002587103826006744539140491585310915299084220333663860744446216047925191700297825599312945066442614259568470615068753869867247188561394647559325908254887222312559718125490538894986379791726779499820785178195936809690680890161409863750231632498492735986787268205168908152342993011645155212249354921871018319314383483489610285741689743132209384144828298542758726952845429376918590631758997848545462463810711755758683356396018400143960729981169185933771941634892138955911507218047318061784203725930241933694075270942288934130618217157806105566832285021707237946285435218086723056382477735029424735549507663837088878518885842075753326807654357455886078837357849883478802299642632684561521975840950203181631704444399955736206550240257638034326235683018921679809457527804176486185037669755325068428518433697901647311848865334470720568264712945980477796159796019810572761627257619056133755382102258546586922162936461080864763948970108912878003377140773988119263736251199825846168330148465282413067973001946863463613265647560841614579602493147607176973598695120376849945387583781530145368872115404718799204238687497879799280956108019126913056395011541328907431685314394760903734952929997823543352120665792705459507228648218406317146180834520102856242376759057249283312604318537644943946218994971648380194538901160936985178401014833896031441544901586228704761450869279210791900462724993553277007527178927452631332679341401336902536861765780552958914755378897625341224847486314034053125636592600759299591465873540623226611764210775488491507117261375037752334492345170576270017951704984947245182462140759489487742577816572646209781793856167858524393885148947065405326225163734547822726438322629174667367275123321832307840786766950001687384005684519950980485745076747878617138006013289433045730300498151632120533366303741902951476204479433183681827508210948283188532607999301326308406956242742303896101651562083475998987753745543789977794024744798417856901023397762537797697319028200189497916007141181543932623324846698100537424933820059439500406202585290915399872135512618788322638484924301876219819854554326863398225531751680259016095044937239741522112390105624668026759631972154047166891644466782160502107331525108376104280176719038723231149972457541576529579225951467435804383773073267363983614870721774851109608387432508757980239934208736930184557085476122518058327942014643095043613942306920280153573628202062612723099775928723008125918200444367069146426252458639801956095529209793090057003375247346885586340024097401008777364780151041459270682587809667072272314014315897148088419835552363077080841064364272102791298550827385605204955019874139967501324698749182336920979290157898829704339291469820933384554467358724172648869792833440472670944984440565155026211448130559498788979262520624488477546904991231138783340728011277576446118742896650221447368533498614513074306349701090581466139420624259761057085829865965092911644630400332925067907600821241934069873555896703730357148354350302012472115901351311732077250994285233078459576976557339476577409493827783909199863884210202102118622231873947883519479891047654224347207265983766404253283305560619622582095680597600944051518053218864770442227133599370012426574768281106156829232316588815904288031381936391538670195638141778818913523666051771086192226233285099611257090101981019469246707148357014306833645631405517309333660090432476816067247592797023584745434866237985935102171793813413088151889928282265702071920359168117773175600821734912859318911916967282870958294247203842632878347849858864754915790905306100943203651921413215148924773519116958880319040757822472056987408754138752449623178512180416810643617333863528554729836756120525870934835906120501271674579550058969331587212274487439360445648938918814994500041922166872256969595704935663340989849063962414487849036452674472062989210763525566641928905431702526797169955781366860398483317431928573371666093689854856784557579243524105008714803820590942901083521060904007018907697227692343301238000181413144260445171453036309015876079403960919191956496732535283270321681494114429222883072049177759299707474347750387600409719842445110335608642119093942521828212921279772463140717780700987427771804689740360440105345550400420881403393143478675476460768642845303615299303288372725566413854416899849297930026933336885867683759005367798888274202423847587651115919504759885798587854328002562448705059925422842927442049181776554674022241528142011099711883457023549315670559684236127627978167211038714390647461988342891718451205338883909413211881582804183448573954549845688636710951111029154760834736092043909645435478123517333153357071010898350459384477503124956380749156913510260239845333845798318885967126874273544050966061140231071647736676210850924080024400046267503391581065525532310092368904863127290405984317187132677372699883739486969926502192577521225824240075104164099696962542735057379297486920744713912353708879931277570672113678561079154257643480296119376935052790825878653174173034378523065411678771951540202488205779065913144075592440673412637450297241334673560335088062472811352684441644889721418527718570581793331060403039301269088025879279044749162909098067300035392089408192937539818139582729019652599548620333495684807858722779558089929647365503698377212996830093196312473352266735906099539197048538857187054464780827215617393391234447670300914147189184991786750528268726124525437429667326754361144163633065478484773089956031409406995618033180740303191742859854981187303507579079820701005748152582357595311542870993960539905879762496033894120865409682839310337861180944148176590702203459102858811093909435376551866142433471047602999284429130849267108033341877732718742979028083894258701501103906469687542492311866799278276805590362825091295010248234770084767049565166923728400720666802285055541922265719211002920602287576293488828138081371284723765193988482531636397497032198338289092387774138471320625656402931501016738708410076342359929903031845883984040005658681009164434687083522471912100793440696705383018261281510333894756182069568016443877832076041278132985318556868832614006274774260867728085524114498580445774393852587710790711406882783024827809867091704301829287571701895673066434516326883122476981112120412238959712119017024056305409410514803418100492874678211723662852926387668572402654494228900749733966997429453707561929952643593226606082751294217416668731792301698488315121444162500789121742008731431509615670675313011904522879453769967432766788779098971188969353292779921678935632283742429523322632863170965527524640924909439325819668968404063793445313161116713409355963427993953139116216040722275650456583426909335131687952030195051006995209866848533655310452697164548667300386470841120900572889349385235554581364866035438588795428114021230562852839640307426461196179996976959742117936126598444322535786161419842652634123445800457991665252933330525263871187160643990778752081093158584841130196438890427271026670606431076274726335054413673451140369713441760630475546536512207609157172711465511189815441047749556367923945285829896669001360930607750534531153165387382937159734156411731824771572783760686244137313477207722258630510881768348904219694482058957165388922659840209511717952402312584218291276707614844049049399214172839348981913704653560419312926479845736862178397970592934972458302500383088376742474414178581919773381204692370038788119487730874933083746686407387899454602809753019709939608348135602455132260785365539261248873967083351788392224962383216509917413405608812114922789069118355463029014667796336672971990192286020897583494646445078095022878283160062321912778096063857552330030907730527113869418689523171370603408849800086633904042366815599426862053340423597216194238390199688184796034018640082087734312999375292519568664132379367426987374676886280462681467517449963023041742420506750080494872656797367377767845406926522372422460931301426770863115816244321215709419428986583419789560669056198551572102326258833175510370882045338293080895330635369248423611560647033719242759609239281432557307671724239397317589175968316127441454035294855904893413309257584768838663704160970000263623912017341317159227834766756858801858355153392814877527454104328839676891196800559347251560188211336677212299949290334795215726051468777531501879888606834488037800709573536855442201756620456216481258964338716537426136454981280214006517736825352924506314951711874417730593334869006120224442632420505707702145659247576468822108145945226596350200613319176672044555626777170562795394164864574648490748725976049289245295238317458812302168034710717702818859786389331137405189021656642349823498126490127890275934002658400659320642170486816934850396142352878445773367299729407351489498277580987310271895200590897451699014336738541411591579885355196951063558374778077055794730109332445306349552303380978813906047185648641842403142367818767000452070903811242431451006739631186305578747102108146399548440669895319210120979470206358323683555777872794464065250022467399537331266556310072593338948323084948784400795515320873162744523034547818892971830280902005597710853555804143944754735691177179977118838885219360122279820480258399566810539621406360825002961272761355883069742105144133855107681209503937659245235614234880491968380241152781424817295365741083183137238315070188612682182497294654373425409119379451992136222518086451401814281222397048633536893111734719419166009553347026473963526726739289467738038531891295786448808536542985803843010888358303083103945337104193965839465807497017178798157197254707797060977165318267967509006531544079242057941143449743226123630600314109580468080488501592580487005734865672328678536173335795703861310239442213641394005528045168087564659912706379217826989725962648460907084928484939697555301872437980890738340545770729659844451668931088681928578061735161308352768306448599730523622550281973400307252058894037605772050026984829396183116881081817021214516431946275499805790331399502475089766980872696483913573122500847644699907008026902728218472610196092017675879243192788918975979390896528518944601757899764113673968444634853976579232492387709178655118475487666915719540469296980257022338237989576063391294456305982175488984226432118847492628309043676731432270552507448522313728712166750299884861362156621241741168920924927963471922439457449718806260004892011070443781260182555536351905925635515565694180099994505958245730782941858559189475249861207476181088172501889713028683662651794467389770906829975997482645157357521231488830301819615895855249725773282176313672637935982713754780166842380333644904351273676293599177157121571988413931284918369628751265171404058125627723150436415232256984322477293777317183531402315347772864297737666529914640812944822792989045983389033964814615715528072161565649084956626840104184758010826353037810103347301799777573544503378732257090733351047222625485287772282998647824488162521773355921189329381734485273996636592251834262134959976171150611403192003447350817696817178140458350775490544562054324580041990183505340484435179539917349018565221440165127276629677235899384720263976093537870330339538776455971438592909814142806581093073597230110409029111231549611924503331186482548566803211389130662414122480005855002941853580473672220392028219578070095709664616161068107422710377497495881045640714584143796716325498205778963266675823914455062359199906423368571260086612969509479322575849508048159654738671818214435092010947602913875292206384749684899317925219710829139320086162804536280118126061494487126645876817938909999677708207130168864408418341816567899738887067351108445338662743719359878150273350824008042485523433890027590963393739799097169824557178854027885711761540024038540052579826230140512507026686623461917499637663759649691172095125679833825252452764560208271990915023158431484310377951733630591741498639916516181536393748804759484997662292844393979536850249934850370665555066144324825581761962544050825012383813647514780714144303477618256747492901003141369714232839546829541699586665551694375508668841290588791976665609838223226720107912374348503949045728195814596921217787488507120393998846617399746227051790117229341301912232383160681891687047244184176267688304738169549769308894875490017373798495112120862060606296764768593630342344023983039272205795054586613642143424122630115313694226628058579914828848136352707096751576039716509936734365582659224474040918388809011851355427704926269660752354714377302218630873368011802616681723400492027207348158261248865559766744177471144545509964607716271020437182732344390520593089016617490063824191359547121044794489188606666629084931595555284303568944322029990463902258669933172933038340351503611724980673355873753851125675107843699579655102812620601895255743143624335967412817373193444749392583395458175028169727441335931784646757929045628863861561156645820343649096560885539757194197162048225185081261823974774620773508733925144713504945594179794632630334491807800596134883305626726148951156969699567712478645454881407927691997637963637598904452548192707657186837084718038240004948286839761039599482480803081964060927825667490784535669119547474294724795818295232473921788062636639753708033172555122495348076058213515803997272077333289073700502555077387263527258802823930924295564108396255755357253794168901928605061086447545623001456578115438181187741252218076313092896044547779379537337540134329659853130821322517343260681155517397485450438727690489841944105104828997759426927804314351271519838383184442853720910886850283425053527648202241114135141472742687094869320292439786771512059732664705162504587975711991427846227691354049514049480205549879042784595266959814394063543517720237987499834229399441666047267665200459803112522358489482729454651917882678539871422186156459500197722151782872222675521067180560661901400968355136951477385095070026138287690580234529072074942141384765615801944199404291675105119123137182377755890160711322217696220377559892857131623368651546936962181117150323692009250650968776340022188925342585081802595884563640051566207055383571977194336515444023108854976918138479646962608169198054583524098091771340332371846674588031314312691194397360719459401298161134814679269376672392150542961860629168957622369723341987081836569048691557745619211512187738504270123050366116603472559517778871373912330486540144949732009685319486800443162419115228613611042590570012235595296470932952342634682874923276423293420156119668376400235363918168734572544415484168020409909219806059544575815625999887024941464489616781544943399311164369371309673675254843238028916330602711923932061233551331305740913295720386211877019057191368508722071300023781307219391906374506030523005661392681204301548631668042467073489120937538318905734797101376568307767628123132103978755611221228229780138793543509578405565316023373005010803654252948129057116375347821502421536833885426993859522264884091081367154971100279766418434728956499449499678023537185114838347499221453741570301911361367946974967598882258777818063657589452018430872234134930127387339370677400218623699151075816356240941195547406840346573486596962673234451427391716416363735966022380821239960486635419914988283797983964360405683913533477717144757910305200098929677288285822362130630698115130485972750371215592155257379042670965397297606817639048021153466806864980351904862925693526387573105867801382186475887153546635616935142267249737540353470783052128541615245232449603612026423210395914560714138027979872992401636304967086191432748716931822986760179040615280232531616878084501374984910557920238188693791293393243755183965706178894319977106663701784944798242805375036248143580862001990520829468104713331711494307722402672908795191894124893998638900393293339961334836386051574532331272312159377877053176780800543219493341534351469434487931273337845445075965968153735248421612881751813510947883483039830083324380236053175037588854136075369171017321870540315087463894412416360063382712596812180698980116583553669637929926816527129160606457184667238961203202612866494301641686790774454124710892589956199195791232788839027197308890683393623570318315831370656015587404715572026940590124512531307155604366010985386805010016141128282709560553250318375530509835781555424604611446837093470869307736995417558122918441504725117064229901056984231647170675570888363206475249124080038946882866769655639598336750854332129332913047494728446363913734580352027500090988772661283515137517061156036780467953960952686142058240505386990268051491409488256636522329212322711542459767450752095608429493292085057343578320008518491799424070787141750465807325172692875268091757601464090602362196919275840079285014616262416492841512303490925931115113635394877345392737387592366400797152190231402419102643998631899551320162906338160222656342626194808153456975438940621249689998296985551583000499008380035636891112125070717352651386799127005768172596074579699732542148344383835620746422576465265924913545485056136965512382054506630404411325125102301922455590460292893012655419488761851783447562710289753726439381395804760316722643215133305335348338103549254116263249373780250094422886793599804905770604027288703935226897467482413861995417259777066005073151467224913731951481449217980972106949839571713463117652625099245031672923734999711685871360045219864772761402737060584014145271667576704606686262433903982798903029572957932733797076971754607587433787210363627553234649414394203158606626791924579154381321048873107674913672390061676548983596547437887987708242236292745367765397565659196761365878572152442785734895325378680458444442103656817566048810356587476907192954122648890728162434526607833567204828652119432572653044211636315082223218490209850623241711920807717125709194447933724315756366905610593627757799253605916455573720955274172835087328233793781096264322515096530747937715835845350432471077608330554441281820608021306128186218181009278006826249952044680477337136110031742787683174837818679845063672601137919119291215764924591590095804569696197949121209657702746668306226864183787325113431624967447393834037376922244020281370319191197084532677609697249163392171952486560429866617815923932102452459987947946492428391655147186375538866259797495097273207257787951206941558173253745852951651550974762602042944703058373629143738015858643816679031451380028763903755792918427182210843695914518567320294654946941085605302668934130721476216838160734829518666100157907124472894450487550037041560188281883178146490817848183216931758961939296922224728445039902518291898871079780578742477419223152008414006368009673929032833344470451619805079399127557289403517871773651807915617230355138312885135809525926925085620404922194878242671676783761253820968239023993750336772792512249048063128622361997904911444667046616483098818527899641794549941263227966213057994225344077259945427317230006115725757246346777542739861279304251908370229534276091071332370659364322092612323138111095404733532099761437171293377768175112176216033705172329787182376679657439612597838090739786660935352303485757986493565818162880262177364767140775833825092053108408264900922120828437651081182481549110075009439574558216810485521747620237613923945122001113366833375196115924709642056594120008782255571819554018493773036314825026967558325359683612589652405431249419009072492603557176514769859907271399651758040521101728075937207940333668044650418649647870544250736017876599596879224924392123813163365135107123930067723525797518292375246864253772423785505653468536682948221871294902189970611910776553641488075765587327546313052526299188001088999497674781253321536842223980142598710185352647829868959832411454204733385154949954411680286856605060486346141040879119191144861178951604057989341143281161686532129004354004917621869436009165812210807137478550947677251139849968164925851060291476074624034600606733754820220856661680845578671250541559097943295985873496423274939692834262991228045186669330417719778641985742096031684506366101802841150377769704865862596581181205591604319932507973405719090844348380761951840051418358906620176614022339464623544548151005870182978771654110675789124068317179648167916827290842409704685952900909676947427645749455057428584965772591339267180825019799747663468164063783966089337709284597856005686620496763832150540049084160251861726302763801983480860185373928724422896562679919488100409788708644778155728367678542050258944133838450770373206417819579881889581526575977167446060653519483217594343174042408090313863680168174317076392729857942132741824588679406537916223176187982536615524241738621442519947884491109433576628599068795556069517784999724314327936923204691215602295983313632193735195680579638856960249587210719071858802457786343358181737416773781659070298720131497304529035789296030838412520996742538779342836042899395213861377506112787218475226470652908835563988501489799400802531865278707586005843265136345791071545968713187423038145107207358159758700797103473544733054281395608360538488994693025127934181159507912416345222050500887737836839106393022670748418579449653261022828117101475302910277422892025101539146432777289188541728371895918413693661691426726867059044641322038521910796362375472569175307281925430500908924676038874771341615465884399813533349094572348523355176376329428427929174672995916176819492126413206248638213793985133456994715407474578272805940354961730207279328260996370011539642142779901735315685028851807823511217274337167054537441337588470564255695481307105281248612616971574808898764699751072344974484253057148693626331150183359965032758744101563535990777373174919420505445521105217682229156039711813871554809482536866382991913252967067180313688344241179655890045491266948041174105658337396292152453619507018178397909652364990910585319671087044545991794064102343225912080004748072290510430060915605851550089676758724014016659989425655759934155108054000006173040745675134262956378580306263064424107490658737509441457077260080226000301629158630574361692058359435089978196897128988014846006819351090559156971381627239724482726623908396779655857660266130823888846293521010509320727060090770549414709383287554159266434056423933120170524541959598570970080614852555699565637667713862449582215304975354485854963844426013234138752380920603742528835917188060563249245859760893561511896584001001179056635210069390716047259890979261358667380666579297299446320848218043957252167213114156299958879109817623937352332730580481985242545985576042326693274278323220432744847921784525669393566180840575919117937962306145008040484901391010951251142995967813218230388108733654616887700490498215416295682845419246581505464806939463208264457335677028878172053568763358629131007543370528007500335027357259246571119470047805685873504233086652011373203939262892593212776335099634444950833510103593949621800549605844971590132589370359120785203499050527685228506775132753501422431962311526757709131670437958466746102960420935142970243254786272804154047037221427513876837524011578050537203822621217756615755281098141860749551415266344024908839394425650373665844440228721564666353168777525651180605430370278887986384027846506001863406975120510153780823493746432717350379695953271532115451285114755904728594598786860313342071362661228925542592074988205888630330774949455307524908667284660040927673026034727098050028993503580889147922213094109961153493849545747630586561657269767185495679583761237774429448480989247087865179059277629800272270836210898453486028848851507121724324967596062128051555718138052078841785782141998206438747593531082754203890822873510740833024698497678565180007838385836578730861640911883749901421267814687741731338173177752805678554839812352715205227557528928750437922697882453098097279522274159981834370734406770320602489701633473396892738070019496143784191009719754802737306182631839031244943407070655945564713852041554132041458561453122820433817824337688173624847715970589441992735351023468368553294025388411642099879878884781076564534596541511780921841986870883501463343674830434273235954376610731433481234539908510029451319181058508624690295383839457959153372548127988332012696374209914939273889863436609981114167178961843212056962430202091814693157867188548215674493752585495022466668476323610741500409111649090630571399350244505603360937929017405180719004977238841796266423651814177795690445884310432040436797851546778869222591307832454544085994021419671343441961471179838521379024456965845672358303603357714229865426686614564827564426921558650363278596886191468624219110298398090143505520190436246463911090627830000353435618943554890118657632567253774605783741167637195258461570551025146399132631052348898728441796185911338366312600961101817880152361626823862351592238376606228854714005425522155502963768594287168793993074900873451075226385975647353782228557729456302137754173073916983838283960041812520636557877113497862576412971679541010246844042265805279235514908958344694460888655048559065045987094471072405470741419222232515460143708890194248328574497227550841285889738636878532797685471373720803943851193668483661165952030630779710610962714519241566405263951442344747688871105088518795533590643593066173184974718738063564016519221501185663718020539967761972059563962489088702867704448967854258699819446752921621378810231891306144309524714423069934823086216385184415067397170553528652367680705559289045787032920205186371030892144509967597569404077978862723515297589951940605833890073973180630782319666323400776080917897551747596365901530704608826586828049021622383170452358589222423495851482357575594851474300493352470970913290741924842140452152960604908415259063529459916595683095559660396198928594510242699026436804739181064597028827016918374547515656236282151268935651354060076226234140844363685722726697123163889484440946699529147809913398214406844689336765359930834361022291539035955734765207882428944069443676246215002036443599249092880862042071474431112768059997902478077842356551406676959434360836055915945586945800360802191665333148090203555151695594971742486783416126761607715926437936586920537909679054953739453014648325734013561639874310624630593303355150390722816533872745051687983718520345249880561254843710450416848918360936178899863068908773252133923393301698961403653613906005770921293179343744773305375384731711658798640400067804129669672323102242396981832203622099677377773240973280755019239708624965768231663163370449416411051906217724351740085232078637211436517129512319954621415883836729306354564279931983039825369048266525178569625863372988266846232305095026400689407562435919907898374811260957015997463870316171971654037495009265605741688314163935061598218816178588888672308472693468076217434409237332493994665170174011561780134629533505706479795033845545666029938403396017018547199839380197951302026152442379267383260590900538337786211998642826453738432623217951814102297996838346782259621438792278426216930990276495884406100114292727371561195738786617378194929187607784010565748139221290683527579650302931994355034785441681430810959876078722131405010591745637537575917165873810221603080451811925030533658754577781609398853087638851538379060730386948511493632152269247419212194316729683053718188330273580579707232558278001190707908877779472208173149646542432417043878597898853907039333137002897319991410582031560796265124940736286546535557405294069590380386066495502883539777758932249126415237619086084215908106000735248684341196429131239615140689330330544407837689419364508441527287933011660712932335397119181418294285397086953737520992722707174906189143844881415905249196227869681245628522404005470023236043489730188192150203568857010466948888860303194932521150252471605089741631235769392905358526537062914601118995782107871664284669392894610350293073145365096770967614730952692816396993612254484015899886293568885285800611675169109644150844631563834403371342471482675566302443185688427840207566671881004927841482704582071989773838945037797096257616103406088398356085570842983690435409085552321747319964534096557863678751516326814355077738955257832877377070028019715248433080948305464461926323445796056377696834636984761791031169170394222835612238768261795543666282017128072858293858412276059682180333121922545991217163761090216769644055959012456548050919858813997604192016393983238367575429124961227645053728563989744504294021731709164232670522953057202317807162098039735105356736886417383481784754484297428526123478143153644660557473604258851574249056728867118111947043340150123891597266211489885156581716466146339646839583280875449757208774936327120902311935153828384788479022198134930928210188781149145844602043233099236171920154416593801135988267208425079601354567836607463436146270928005917406382694508911495866844179380592530416358947189003658028381964420084818411939061617319865275478239729100263023389058345321446592064600929705718710564406914820336523515098258147652605278976316763607135697821627387226600083300773185390644885330723488485001107207484468599661204278633677024394680945092998751565425911385045689387192478417430617194400019122487836728104399554621196576151039887860502748341941405393097541926899131437231292368716647088032491210701322065019008911005009571507667681891780550137694116049553958838297075363701057871464096212174730348629318747036120006027730010364829336511277996104040560822647714081186965326865323119985495692172381511998682144772246493338345450614308258046630653308903424675981913565531039110520059565195454372486375083292101457044666403154624921947963956248906686016593777237426253472378940939734528661334260627720507063831185394449805252135532455976617221068923164667270998829743136057898229198176469276875573061657815240572221567716127150091873341526071120199043124551305822399272529866935623919661602643315981182978714430871379277087288934380220669897435837367588588696976284313800103703676308432934723630160138336775544287422708802375365860094310285918500476301237865413957473694838062864309961419688270356733271570773275917805126669126246537022217547498700369160175041292900628891706284548892231700760580304880821287243036593003672773928057314947337167934082802283642284954572741420658102510243615632543583953535275389897250071467492970756541138188604369573614948883480004280810219462719878408936519509740522904117313007083911426030734857010091472693129530141620532870368567440939969794520289368423771972799392217837861234971786065712635724787730813698308069207090341643999398241621847350296236059228380256824095106753284585749469116831588147331170607798694695646162681006085471924426799377851137913121035131703751820277258773323587674082453142969263229552621236926150591924945817156816571023387674712236408263031334978475853990567214308607154793483868962015859294564036479750652189978885495129192980386481167616201937977896063033162298975292047836468356318778496138860028842795279500200860850178557692323599230172404106352265694291491683930633855724005969079305586877861995692652483691220317150218698042797610855016442997641667827636869340142711251239506701290136254218132041326376117626090144856643816911449032735900231824028516860450808000184252322362886675287911837414139962306490936526722754916092585564988567373395743675388951234991157414289202962800584155570084541905362783722246443410636476771903054852566341094595026759450081023065170580878838178588833918363170539825463553335793328324376364552119713847859463585484468746750532033679462022267055598367581897463108904831731269581200618124888142016347910458303395444013271410878782678465420115336089017989790294585994125604203199756962433753664647654039226992658924669914858864553832059483585791427595815612599280256319283671508338909724939720964042095222382154190623360981952655843655938371344308063522674764777732817307326395505232649415035706479285759236265311368275702840836711050038508095585503117725169549965848052486748340190938994066246898912758122649071223837244774078684687457115478444015980632807139706434437822944430028490354113385218378331983677092934871525480550673777244113312568436658808468984431525088862962214041639264874381304060125422854674840972799366863021987721826984081600221944687109318108642025431616813015318931730986212492605371649223902619104729125248492055468362212304875465007133455430639210064079607388577160037712861799076636389027757072488035150969915546526903362858206127772731150971074612727235390097809860605789623585859329740744218780058011535732090608502338555565492803712108276102595069239806162083798973904151346083294134857536135583163278018136110783277118809214022043300857447059022215827073960764261273729985679484376640792554354504381867377240654357627146501839745124431856288910824203653159694392131997466871115793117360030099193234320824771511421700983205342716992716449883210408379473124674973961865397024139859820975558773644113139642988987535891368296224311303246586476892087627973348526047027811521683542897160087533642078545820814472959932933683854961307928729147564610707071096118062047447271689161308685854683175430923089040928467417329373965612688409830118505284223146690489918157491444631495714715510157161865576013275919054982398604564517308860746961952023962116680284020539869499429072385286913922120894358888787373359850535464038368467675760394180320189606549006459830578769007010567604208314009165651713148395579869516190594320156748306190757285401649991230895859563958230513928416864635035183561495837404486793227191985121274311293778380350447533955948941371986481270641346747226250731379365303012252697183806155505786326506357920803868834604345483828586588368363626440850729522504022253075013074155058548415401465798255245391764879956076272985312013743303011855066251312461857586269975414699179465450805150730604540429966790965318745025279889224163625473228810879812739048535507977721344981449631542840107466775818474515742717675253435026324279382858606809712825430298996088822238383527972712082862162326011163662041066720659534869155858169632142424143026835222958175946535388474880474804636108736112876486490426966092347715317907285205885766912785953697713193151874024172605650827303608869115086413504430639781114607811659771256876869378567446128103375214603389349411314978511546152907936758366517782651217179108777608445342262633364738207345890340635095394570883334864197190302771477990149421918572390004517172485850569082029400645165380469585388989601128218161662438810708129856747935584604867305748375930327940435684355433065630838720835032092138801944155845569753310289384644575698063324243992475727556016908905007032505554616378761244105917453756986642970572687902135886504117944508982817651119286344598203774833827528476480181383169227688414789554575683071181051319707019957039716012561303034293807619374211670491178058899493034546752249088129460563667352879863721290170721966859024036597837969459225025573588842790619730438620853530377112076294847574273663563419350757471686558201520759539013439314498094997469906133533302176667789860422337365474263345019999041791381198934126519650626275804696825475054902060357904130616293226119722036101821750941902893220366613896888336759188310300999532322033730564520403002454583493559167666836133283008607866040237364589319347617759033029043527160265669042747759268153286933276085486297880577735290583543367951423448644578181063433698450952495755739186622632703796896990378959858878338427422408865329934266003057126647531701839564141451130028297437887015444430736498429403470214159249429433845408276397446610472513746803906174293982337773976721621147913383213432429346286432988508588016626995776978917409173884143437940582600128470628281727763094021893175854715756621117498948737582532604994846876622907326745934454817567808554292910254367469147499857991084055348708566825788343396670054263898084344970239558817412714242788981782236482574491192965735270140097999638915754695576133828864291606640571975801866397828045344390974211025346162071643874287346412259291586486930559728545441172888856364814159699351811611538485166979311339916957328631450146818911458986967518603261263000298329290810307937087125431346048462955735532125278630040862295230117031371483869222866376014417345064231721286305273739870773057658897635543031224396814878888424320558229840515746833410399365591807165424993931029513993339904476425683875520870066420978893896301325380820209666641395143892872159397415965722985001850881042740546539520531488034394059400081740736932069027471038074880323232807425601976668244696224078094119444957071314917708072310171848934572930489092366910799184204281570026207308170623093728533020298846399606648477907247287165379076381280453006377642465282855019318553463442645061091610052258960782119654368562463169986175702737501704017680142960727979288518422970924578707960397023098610668947970425051624115512420701832140877601089800606815255776181156415296477664848694506246838518943305990572067124964391121285013492943126285054923659118947878064718924586767168986542448990612749093576015615466735362982969872117749702066559749889316266610488006966848363152959867865545369716916012095113670009594821480928880209475927201222540058234529406145740844743953587033640136018870683230799428477014489209346140045517575224158281420578285395767416564303814083147189988813869554579303010476563434840548450452192820983843236536102133874647957659200735699989224639046512618299037228848566008283084516887163053781194292855063766734460551865526843335872026334532820339909934130857189267397276693696240924104271604177430112074998112507479957425888487888023938840280381741248896727148895559510397681366486555242252498036994724479273998060217741938559736352178777678271981384527860303573958464681229679453812138573912017876328120075098783257151235029552109962154528205303086129224665268343315688743855050647265330759655156882343670308559523029172573349695842976822077274663539314482550103953770829545545595209171977204896111465670593189617936611521303821457312392118898011388581601824209190283372681985694173513343750153378152565511858054540294369430423736915753236247546228027484962748237336974004379335415386284714193173483980925340219334596605050323097842852640209984166039776175572267000916371051797931525964665314170441016007801251696084114458547344043092790834671387397472410853119732677071671434018378884829074915988798048668470474441348010489684468518738116337095707790178577787432399733370644659213451463808279837456940439352577155093540073306963505442353850155195557820078021085388250414329782305355301664117877054551046843070346008254845855334222829335498917415222949694724035373317247829458503134390093780283162536065253855496970261399593739669299595216568980498707174456389423057826341780210258029926251421973601344414445510194815699810357071020885585480566358733652522426604694737189915039652279240328752661986506157245456639155543488333601975467891705062013831011126675087750029379712073267372387021760259869116954005215149039467143803699114669597148540649771916686145556987862048278498528296250721429858852009843329187080859620094278331956566926460578956898743806714679691343537324912469554591918618247164224788679841434983935170592591069184301647356965724128581183011857951383275720899852722892523373846123340417061185465781670812789839580551314408004731369732970327240216812272254394514936531336085408608094096047319675416785768472895179052874985739742845876275848849750352253675494745337926204998856758847241221895553094956292560786715075463218628343532712284289640101221079277244126554436412937933600148675705215856170847829352626599117795308659739547792244738994709691722514683648170477603416470869988581113828675580921330229340202250166356831281301487994393894137394423673186324815153825911468128032989304139307644804351591407928819894375486635482649713561413822239522833849354808997999291641176685923893396012495863903547747381899254212570848789345046923559756814372161417001780262495599693700374725235569149707194935689970643634149551884339062394706966574499304890787949578957106224235474111401139137311830677966638480000581454969552309343307920129955188471426441192585566949880198306976796637587766531192551874968601223685859579853561088034175854361827365755654611124843406445133694521465271847864135539348765567601456455312207354930203694726285405126037670457777917567497834765387494449513468724378883937908484499287408347208347311497356493683671903217468359191008177488827744268255621496289590599317623541738574022131686449779966733585462108011998400671181811816647657805377484576296897591704545637372481471138362859706566138945140181970759222196385193529044355800477188933413384420543972537235126650055464648080125592206869746478020587929668543375315963630750242596185733600279843303818603145897584797495100732511399056962194701966234364759913689833438316403437072390610382246887128703686088155346681547329769156760774448367691123678032366528543882267342630736483134337656071030196774476138580757261863916281889386163110329809268745761844965921035693504125581058502692929921367568158753779848610800098017517771591908544022125822829081903699434551718186025147668412672414511958391329936534845094846941820142248629653348199565689229840082427821108150223352978882856996165931600550923816458675834043952890489288531251469832129618913337081823558894412108264978644212330548327791795519778898139951096622999227971317252113029312492118483879936638159357618595860497654298449176222569443119001014402018838191319303228629007271406734444946418049175027005505266023982390411435234497411132815003089391950306787711532613019573503786514620961022644189204489118176340588610407991300846793634888188196411419015664638165333204778458425353415626791138843046423270929963019916569681214837980619676176617612208448091893563399619499280675632347900480003632217396884085643807448458459359579394252343818681285157501877503874527910573227307731514014512640595591720313579701722825272695636271889295231857207705500106773631679779116601401476856814114556638060261350082198506971633362321582854503256335890095700266451566220436486015502805927425208467937981712161932286893985341893117964683807971155706662185398469371924063837545117294232636192439686029601108597504195018426181934590420722090212885705927400746079509728873148042997338611686526798974738535740175861277387497611392566605110084826487261390396551684861592243168296710569342000499383740720777066290936206273571313094301294873535906052499569424024649400628286208774789181614116292571236988010971986745541318004438297622817016307494339401201212388269042740878631190457675584511679423547234641941964372053863774966362634267172611656588863809879764345597242947254259324470143168610573119306471160354537496793373293656430745788304147504295672703382646157138465069450580110360450890521261081417378115566315385816513303711567681616528696505592356785303267433618986036013421803886157674779231634406344625647666889876468903216411682602909857026487860939001322745591403258947190052109669406749168205586477993839036848810862026219465792401928205153107993501570429272108078313700260057559737325316575519228205607518596113750260976375698341824393844336475088274915477885491602141067955504482765017810149145220489330076514703163943577547342622426534602831389335575560156929115333257897872681079294953788321010382826247650119462490777264844427321696565421181051957935973168611935437337263082221230091338182042082824510589411172155227567420006776540295276342379558967323026807488682965213312825412237377665770511608171819447125838914410186401955736308525946435423682412877116048312672786059879084282913666641196669493497219520726870246136879621420837029586837292281065332145065223828552241794869080581269491107873925508375774679691582903303137898917817347436005670145433252032062223751893878799385218925040089250765274961084842772565296950109892947296938500947618632464993580201241989126677048597632718861493708862173478429501862488217627624495180490245530606098409809205654733743944273177213591269595337257040198654952240182207409351932195292510683575705358958036264924406794692881696203806211044191704030325483751278180165928950714091529503114972943953012564009900959558926610671498620788449922215132748758961193332105537772872704588666459236889970477721280688972461391509317843063946349201141215953117415564595464380737725798864323202692401618418948672456682379175136551119850720820072921536281979203983770093630532052682043254892240614212617001803382739292504996871113684900022369361764427539337159672666804307938671703381962238542192216609497139459390190468844283299339731049222395387877734711059117783448718562774748725207666260958002491642265927144096129165376000918154232356747496063464734498430804452120741934119082611720044453121971845754232467981939026000549555439926589230107886605843486707260761664157779784199507716600528260845571153719919003618747435965762733940791083165011608077121752791068937728644893381785252117482713813266929977171301384090313429994565115830189057591841677411154751848496026003844202671120486707985941435498352240743902898702632296576564092177696266570325988015200278493388526366546780139785124878849933802767509880396076072628267711301552359836135738080561923705145468191831937728107112170912751580259870543089463990147168864336137317007628961554775546255953297578178771786754665623804754149010596246652064812523682560314779870728364031387814340848023217474571180097247715673276375597321336120088032594943634663944110245410526411503962615750983738822415740422099610394248097391181756655907229545474289862737571923237169079437833354696015761542676375069556232437423350702483818833621165364514973417265071995939655373635316050085035474140251610462486716731400436621916525394128498907365278811882163006750104637460149776653198890005888637605162969890400914310853048724623620541488488848505479678404736816441555960139219528006665027143552636995184168666039943932312230710424730676526489449146809880719019417916533971027796112427916110286427332174373780821961754381150902961974002932772453208032871351800036726064996841110168543187150216361544532894920018743539986270559758931641723256617946529815630256693937227080466701290890448508757205017223286541694211113330688997702435636500139970025998529502747719708671731434827816024945354297957878072678915533863704972549766828620845817121158479830078805309260920071416347859249765501352660204065309908551167592516308056137788439312422410942528377836193355231093340828429492366183819778230721861670726040376991172316440361786005071183166249864103357890356633709306524874544473695482845085538420797984720685104696531646798987964113802532638404423052603612797145672396336915073492254174169118942883216515931011633822234012489468785789162087589180445744360028752754959361694308270988681072212188250823519361856910303441755056836599046316054348838484062489164208293121599903925556609248358806674636024036744362886049628349981953044933889130476727670655128754188951399619953526647074329381458922557038975147693688610216850584820847892639565457316981056631122657826002575211330841398095385523679695291743981242059886712080512727726661395976678167226965671652549406064098927641695132615842946846885631198797565995126235973169469865411085037369076054097245902203506598589549232309283522384560582978648119106984278699143005590025064092552661626246995187592488146042642239381795927295401115940552440595254226593816829028147108569781659268414558922586677921547438824667520124173616407709444815532237244018015122079584892419703326265091391684632266234623837546006463095848555273078603294707945211258770281107009662469351178058478777208971343650592122457820915431586813770536598141621591324107401936013884907416256713800912678322186540873482787524721761847638377208553956364162434097959668049085961229393926344579681431682674933973125236947193948452125293710467334809410716110802552676618000920199201721117623439939828775695069492616419778975425864826748799659654458694269764893172149004289325880126981244622047475920651776575175795854683005824803886283310893664762397273462135172889236850814538556629368282388401603232710980160094616869723082864040732208967506481021990241155433916596077644249294848372273901184698459302502929980729099135116646266344908942521500523213325298226400871538734040197828032558098748137109998020948509484487541274987801547876514446227018353209516218569813178174936225418554046825096891887045472454581653896655049064403376935095455528225913874030519314041606297817723892139033053355335572402349967426076971400075272902262791783290754887475580099651807785839657154637567669617897881459253090012602210211693082146787630325819007185395399881666455932575694811044843251767041196171572108453195319858275113489319497903982743750291136768051777271441536543538165567569691540654771344543875927363551881012464734691953947762727996932127477923945823975680755013919772807009380413189552396751037985566927209815951321463983038446105499308349134980149350895854076992727220953250153384427683394614588296705662670167805487961411638881841289157743585692576947551857073523863505620396061894215648276974487987301285659074455917548477620563843776034246614427644944625572568679292737100544995864020564501719032759528558137914059875286979322825681454606776220482553242121193502142288509260739639184375749032646665246789846099958697533798492773314248084536851173194910289269213898066788037871139875969982912382345011956185250578671086586235889142087212025122174296774994658790464517047579007491689915659203601183642340935170371276047062448270965311148680297779937007889171209817306019604395192257764508172904027216717067126271559931420498386574250712929067811694555929683571254625836460013687417022945800024421153097086344958804261349949139584678173786129758302223314818497036347942589276596202957035706811927508949019828813321316132606761679801626081462897841440123991927071986108896201519361492343221825565279805687374093386612024263173862679531275995222844349794309252667352666203408535225019476099956318249256233477207602890828933458296057512495371367405461918344253003357088713704946278896383337468563764119037214637143993945786296944233487749146220674014692666385903929023236189071308914817811560998604244831034547240717806312964724217076985396945522183447912245305910276680492702202792473331052023443687297195075451220142047795536793408980603696347894165020931139987588052987669215505845171771473013114064519696158141838157917659854427982104886567107253859620803254562157091010200142217996558679224627933284889976985929640804119808501696929098915180090813948359245946329757080106501904632897674769416729371906035824887328140014811742545004885619290647330980487449323521080308294548871807238945902486904179963927254340895791218309724450685690346379663096299310800263641417446651959264465256022567089835014779015867805561331248094215053034575186553304288578780473556301365586536408246307313834866835492246442838650912248247803376411790146351322546602422371782939174184131348603215552462316648330816625229348491322533500226500783178274561987549174891065399546816778708217628862364691680052710728109345056128792617752169995871424729172064193513860573031953020511452179663545716215600137755047375435826456865407661706136371804456521030909368095987572190200331609084683487251022219974612510846470068393718725602835522821533245585552501176261248944539020671481167939455715297353553077992895801944166356291197773339344828356054194433385200117277142328668211436425505311720100162179388544163328824460853889399052465529946156580488033498233290025862596186096754939585210894553002152335751239973240092986370532537495154542496262883458706282660043405281467934311522551669948291266389863540077170939584501804469106663572843455859473002680500918082395258922803809556751935930458777478920769121737573632264549632764738875002139113210450068894351484991634919875431430377459595076135102123701611243201665895392586561271217957206539100684676664712374040301287192994314719589993008314151866312325561496834385264357917355101068221486200502897771807515396972188842683554768586395836612857004242518165579196143588185428608889593267512860000920173977781649018303572267137658233026870802890450335992419931450044731923810123078981502077784130454417530218920293108978869594020978454739615443570593249878708516323515800009571158555058972328265593851413210606074592283139628973035870071931221243276656344402376103702143624007443888600581343711245205882544809157706388783633896347773738769762598969097703530174403939903046096223448218550526843342029044610833707419193785719725249292316841961920038641262884186344092424802584050404383743194133164027554065494245765863287199464543150991838138849655486450935912527181674021244414629538069456381890163706385974022990788675112554942353229068546776055112134368405873436392413635788427207042026578148462756614582900833450330112678551939257308928632408915830824890889363908911414050414698595525103324908839397643380128453050820504926161783751430879508703885330237735889471789908010172673144950013967530165344288912978334772128041865828963091529416289842332958135341311825034115714506462728860066772338154463142483909042943713365549966176264319946463113479162461343082538201794281720788060686911788593800982049227040708631419543129972532791351057244490526014089578343626030067484256821907674511842510603375106854391962712587798114306241662334940971523452714732065145435825331081487071793373289682231485176478880951236269639755614421512955348488514333135932315462402029605242067352085940695699242699756405309367931706381279313322189333667114225053067362357484735716227104299798119796861127691716881205470514742332367110509649353975244473394396325417953609436332988219101048818425565029570087312951448635029167884520577056723347119450036774759078938406818833864048679774463346602718238047883359310286273767626011147820470525440380005501016053630818659676737083089110624721866140740167375542152040159340011371309258341266267167537096250182209368064518093985566240230079933423455368636351916504479152671266632806100756829197641116811991651595163157817802322471384730042879249755729657896647530703447896472919539786658641436595449870989465882338129128420222921329205784451853550439986789375586081448439364608077944544720644410435217359184922296845605686296030677831936111717578910833688104037769059268855640134048653806695773447650653884045045965723695613795319177745604532310144709641978440951197396530919915472263224998125529441091602947379469454643287928397288618937299093892452533439673837537685393854783987420216261189314078222456263550529478009403906896428740325617979760723160262546927507544805709263528466458153515877648356187344725674465268601386007463186963409496219015128271540164754618210528719077599764720408310443573059513541868759476960222980319495872387861204565955625527084002551553452283751142303332494284435907791333714704512525286489752886628214224931045373756249185028345178809431091410128469686662455167494462234433861481623788154107257320568476245784598215466171003794101802340778121393714428572096109571332944379993248736521038779615654793863614240893591004294077306611974232099938338738425491489734038635614316173964509622324316840767565310259394819768877247968075892440859840969721032280491303841373807873131879792911250619301281876889450384156952969258690219629364260236951764959256698757850240404302130373996911570207534890603674642086059118047430515749081384473509512903489578047807891976408859767634089104549035226357194797657423854539677843993668789783526498439067521335788113593390606813932740434095028098570647667191180364814507273466556174612788707271523112072253189795259446309930487041197514984989063227736112878287459710759341273127310854417239510465350060761478938661220623449237312680540741654062046953851961458298329353047771711360776774227085165241580523754493060979225262424484045147749832634096606161331725227001710093759997512670189462659628598950076711806845899706263929452989757227243270807757883400685562036113008373597411671373041102536546327023830961584503637605082969623575866937322189827299572501741852081884921038249552443366015839495140325860484279593550589091890889742928733878678303026212860131568694961155758001024539811725834897557300163907355101690419970305819953691007224855787102196879770116006648449780921235943836051334429608474251181933575883172463698470584203043920411585420011375914041761675165876831687582320540802086127321810924061027603946926034886180210052776594641730496038853953244381959896328622183711405383791366089025166417039373073669696374983622513188422544008236381687164182787956933928779609174757670709043483123245131451145622928356305213901023191025897103235490899117614724852864052070033579228671116978862041829090016187550448872838117524065916704803042409342014766320427041465623663962706179512130759359994765657624131651242730030441555747910830681221521443267412469170998419569614646877398189195538237968075250709248869281643002276283311876283599135242486501609032870937641647155116058894904254852710936459969161544981781065647311057870264050994289603791093723280629525233065092556202243730310254922233457210767499152949362757432672953351616792980768756398399161602060935365952210359035891205982300813783767380294673661505714200565526962577432763829461162011752007078219732918557743040874629105558725992195803213286319653430282365611591108925225221661086951551228739625960857140587876051900314478772486403463598647999044311897160081517175521930155517897395058968005547154739837817040565560309942569670045492906417729203660706402749024195661377572407537479284451338555037415621685280069965489403230171578626680951177841601883254478881849509859090457250937946913694034404133428225322855482940522129882634494264506759633780101167938110681241033664311493711401113998804458698610918639226482890331954696496705661520991711735320357542793013358888852698520525691125736796340665453184372534604992351680353884936115255551481281545974583357200516477843110711613376386548329457592087795908921460480311297051379077446088792207032524887651117471670989512367322395317610144414217201284070774449159969754001018090939540535113552161457499857671104584138595964334456307678679063461523769644852375507229538209421000594050493039044208236017555246671097215734427962800909335779678492896306988359427233432385054421162354516986887721727251487772313686673057340438650101155240648192419997225047887243656852773660220257921775650751472880263792497670876541262281987276815689564805514079928664044269542678136195248773037949184789080199819163728439995051915429509653893290015239210686605654268509646334671430701682561728441556190906091491375967817440290915293354984189670652354455570798265045028601251333607554598410053483465359516082571694835924313192563147536185947882028492455586720401870115115662588125905840008569289584175833466664577749630630443104653548677697413176917266047837284436467771765765323142715822365097715838203582809086816848315527849004256496767294944326460858038679768748243496249532929091034594372710438687149582472454203212829463409126449695755134982616196689788380423146732182853699950510339145892566700622195884009022281625647444998291301541344645278704454969265032162330168453408845993900916182169207926272101453861413373238989063708217626709175518073825459653728393310190857671302567277672683066421285190737146145085954000922443951367827664830607678843553680669325636237032396476282623766635280008632545024690197880997142471290036960917722551333379485438339772208712713850077047943000689894360849196268820047245927559472201109995585710311376854571583219405874552420957284355046330228478062482543114958124302394723315652987841834980735573635780859606704809291642065525647898873492419052950141394221774558423877057290584009847499767575837590330864509351368714331898943298976533629217946451309430254657075944973529128632127832638518221028394133271605624116878160972005161409218273189835487281772338775589670655455575442399545608466087405980492693774382494042451833922404711206135868275786261857169971574616095178839795090859550456567205810205584768778915914742704056199460199074876434653781632777741380968606798630044477417332392635760173668301818377891721805373772779064925362505943663785591557589691349511423478550226693125316440951300398889961018850101746562103309849074728143670942287271447879987197611427132716355084629715949110631272606887565394146914678378971305063303111758866995862601257831751300955475268004611353451306102941437443520183331407618435834314858832258927479687142440758141593233658641784012333179914762478404798039757074863979842463202761316379102657179184856375754697659615070520452345992192322748407082833408483674283531796261022980665184023243311001700949927685038491240718725318070908124196011896248731322774517041548168724861383142497796028806073128424666355318096009806713109555804857103900860406573871576903799918994566554620128484381146380233159844306438058800222008319610100318169988531360450829866309227049939835280507378103624941846895630748575119081366468992016972612487464904669094343169378457618825526050301020235172485628759286884887845326680118656399908255736086948602774905351644888257815611047458454369084803197478329985410989541550011428791110121979929311082623961248317331406799678936416423678542924993416146062769780748912094843075922623215588066618528121624095524941550570610604193441191892625852164715323960304616179911554175796196850298777281143453001581474513351586022599666083993602824292840135913949616457946796522039484596896389285957790984796450238111244780257983939613007608703661722851852762034809010589621735409928069141178884958550093112467200255314974118841844920903854428662585934613243618478040142136599915716321403867227009695571894743940871787277078294670636083162900374202999120913667720290349902177916108236157060887775936553396842035862383093883357479342715588910212793902951376654815155267675256065985764481901528365791027234946489632856239019444319421391578310757316484059537080933436999128364930776555517902812661798062598329067060633499110761815908582117197561283382575279252032599198724579063555818578885023974549057572377036129057797159991045090395613376996338985114405296541170168383669368697171504962553176848301144792141820055155424429859936978922945807485329817064171911638997131816760903262751511557075461790672188512802657203279457475070246478471636372963700106212500132696774385217756963728090607351776267462932320192458247647850255414067849621268136703994482749074950713414860806654697196298229288383854820856415295883411634106042960784792428311816498659784658651666052926495924298335599214661753619323337505392867367615509817869224008630320898989869850698841944893005089699546107064902836663444894898871467197135002659178824754271245170896801695541924303816273014025918097013260267938148232978940808570137236886154467588069395074875536678620259304962050824539224063505886692647729697488614416471616123982904131045907711569378941428905977487227806089722341302506348708653011375631555813607893017133553061674430522248747270885454564230713833216118664858140513115676691382538674675199885686592627025024400361872969326995055100372091493915625514864534771929272326294652504546051334100006904868138385288903041809962519450290031611082228223665970367732115900000959934193943066397530362273944410979766975461177640294828679288701421291180424592146736257298828766980216118982396920696102426281007133856824022379303527292049236733469433841761423499822986835140012722657825580263339629855973382536073415052817387192366457435115513960716801851940186134372054255268109614250100830838457764523193981328943356412451248761609527503229007984201787614757745882840559554637172268986862346137542343427069341783063553678050532375455672997617296238238499313669646205380049194659412081490361578920667863919428242380543620801877440240129834084660700123172452046258695768766919886215756962817227692125200446542890392088750214015456907795229338564074097746640756755953721101509347944171189091504691245563424058694025225907159323304718002600173256760809276734628237861907523626880243795010923795635633801960115538520953442073734445142247690680188703758242074521160023811131235761982281260801733585775753739108479287140327790087009750729414508465441092050664841677975733168682140903031671121575252140142971170871917212495118976276031892453019775237077962977388245767283718630038434096934502342190062624711922882467680409949032424962170904222942148516942784456058807391152534492454287850273632767112667929670966214754742733216173734515633681135450313215752580194823806854574052526765562058958805257876723067418805364473712365636944572162884803838771281558543575670990541314601013473765163532775188170469171839650615627345005590227904847680910254675949574253699726174375739672784574180640378655441621176902374506190484781612789124704884499948405191571747496833868595294578813983396231725926118252889061945973858666204935633804221015237833078702860171809924510711730174321414327838338101861467087381861036550925890104751782781424921912343501008207706186390894206642486119160752638064971868933900884474279587279479883108092069332936874918957676481545268406213818426440667138161137469433306390143191088010608856302046993806263422123209285402069090501168646238403869497675761393283299064720684781719249785346497601454701731743684792897004113747564875060065520198095147737937964667002542259499416772788591805874254454376128584529899077190594114491096627293473878316033299238104138562317149054231328671940504508407730567616389020024696068482134233161786366617471313389974326933880285735280321471745401973773978704302906479642827824589892526297259096791882504525522627613277445350310884967617158262708204261222148536067528767091291064863253869174483517943296113811215094733743011055091517296956792622040848321585939246560440370201607980640379725416362946647440917769266951618667816773397485452182349972819329425757654352434105319342985639690573355796251596762882026224270899585621172560816959241004219841865171215659482255362862450211897503225195273341670820329053754179791806194627192531913525577057939531307027016460356888646428615296587996341591956936957558128874340680500759647071375056309397412760530087208860007727361024942465722621208124361803144944215783012281436989436645118483516950804126299466170113102794629710929400424863487795188961738981648853538547707428927075287374315160757948690534324396544998640198447821568873916449879360272014132085124011161965419943995448124896275163579964162272686507307265256173875852984760427101799776563123077452344157705811995760294150228851456943063148563198686203574008088787664231187986056670307660502291597033403619813370583663802869266930984150426275327861143176349600624058127540691609031956363000938635013330597232949173396747393269008876303475407919916751086368336347538940191090160964605221061634829779920487849917079012622242740724300053331866678396415933216274740177292714619496914985942024291042914378782451151320057253647570862521271757032290179386145040226505070096478630162451563875296178453622304027425719095468736888286307706336286793081567558560590034244012222836812982645339812327552378534050627881832387722348822466073522578083187508464788809345021043327940890494036605644021134969128797349924693178906850656677300622822979925945150953528571927352525612997723515889859385438607988058543895924128468660814914254347330484285798501663424605681063077405886261433949975393497692784860083355445473135824594438320278054912306213174511771206743495418986340243743345416137279633339341917443935747320964663577985247443804153877034713378137200972535622120578690112613501837370406246850471011191858827447264626522363913032063686685102691821208588262590064479435476839595485858939354518567461160365386106943870091900118332003789404445284799162803027645940004799062060703179974963017268516049130547191726768153955440388797048162652020532167502433460936242884591776572210068828107223677330951668203434758455325478835465669035913356042568013363029860342980671011335015446920162885064294756323661077211007935397200788845176464595684230554041624945598549044343291452899838102678612687298515334395645918474554284177383238285657455435692611606541658891545589580729669627743810663597193944003515469101830566526600599909853771972705080206040786221335289054914646780224250656157998869693013816364026973682373927193223666308717582597322372015286514087098964997284247872729747047537328036164296643306816482063724192173779219191383683947800853935834848480102995812055188769886476107439380539996436970973899641217817472286597632396943696354283126490740874212521091264831417635041918334717333353327944629949061271853915297749954012674854238170852610504599461610911327409479088686621680080106789656865728375236726541285097213935329408572392235252102169631919870133697805774563046843252362789590572053488836396532619983456413201496921804279575246620959175056610850234404843557103969672121507295334687590786308072864240719045585378294222466162752070238844485091641942003160014587946071120163635315637684776969334829873447704291779688645450020810602064918764065682386376947147105946084362130169978722227838715542180452445273471491493263458191413791591179382255775566344608584691129785298180002810687979734987893017646716861197506511832771304364838856514131649001588334937359192960174825893520702569094707894398687055601223967782372764410998968191305095159245215118499306951941339212586540652570767139196370484481164718899330800190281205488865686657617065576001281222033528839548444920473029387115763446204417666392834071949429599860724233813603315190633420367274191100236415970427398464684884760764690010392387790830177486752119158865602141364515812761715236956453320288289714480375892279128361963901754183876421648268882762447217159520003849169237778391615214835968371281842280023243525751005145980559545674969223091799041182090375179365503688503043173253875701171446358983254515526317864674442473440202861443912761956176318997025888627790363001094340039844083038290621586185145395877238717505222142493155179205374066918417272727547657136480401871892745672929757162826154633717209729926949390231537415264991213188383108979687785559501577029404683840660707012465116821376127673193548859069552567838806455672919963619659515397697319590938077347415806553179238278261188290143896390030105186552425595042200050788535381747518918617165860056358685438961152417850664467231883571717768827034779963761418354898651550937042437273902525601594260259248760615493959619333138976727620665084437335198185044663153354404345788048540337712753022480337176237630473141590447385553302166244609812364532970677875849995984733697659334896898275390712115598049487448754103906057955300683554614350534411027149809977078680732569190478846479652790987429329773137402595863221073394871861435515419737183837646120957909551340368868258958462872929817967207040618389703707976340990567020309030498852563356045411190799343337108270638505330252166599127906608735766209996054132809821990077202850485008200794322834829089959082517304107816892739213629836188344257404145504568793230803893688881619665041731807798042868037910363235324215849702032815433822359501783859936534238660159992750004348247535346045964830799603209988633443810453668026898168730924508571420273769720827041936134536850699377313354515710830938025555408278516690041027754157089874085067395179359246848903534972493139021800537113216399013333885347680340016124011500578641692187710659566939373933187507897876048768326268178412526856534376087630905357234881106604275448111956069060986044232914855870316589852782177970776866058552182747691388740979797889076314622440805461378793408439907834857212764357355555306736677171854881889779037404256423849000276251109680867788551269065937867524708592231371991510023551636342968959960569716626269519012726941226993361356651690786357651172632491772206139701170691090866500124360960242817705527071904840843938542428362411549022858844919299787717059030382896277570103313631265679298573866567393480863273073112650039748293596254179791206720246064968552413376988897492704385046856791943152793835999561081628233264570266361911812629168561726892295856568246444630301292365723703931360527757728904781101625726471493827203416114170021523278585304325417644675245548407130497499476859195942325151552241033681742306123033713510628641842434013360815326990553721094136716350076763000255043276580760271316542681152279919656964515425597778654914908406809644181855369907753225751173291557360932961891320817258075067958631483219557744311394068719085357673942024102026615613074148084981533305131431024075599041295130754005555848806773206655063363063639821545232305669089305510316368322970056363758660440466910356981571907540055197527066163652698550764271435707931554431196636579922579041948985674706856693284483180402538903161193395496133477052651826552255269080278992903538877514008959232998097493502509875132507129608612015472797249148572114734203076615300372053877286459890915512647638417497216215287628533125355893133217780395097923302871767381227802461061521221620462636169572503145390056637178217141423678647405775898931589734377233004721231843310040546869138714068301440525219126812504243766297072452956947311306896950709300437182774901639178950979096979469245722708760578526651879916800204534154621913017139347871081228018432129991426591895884906400096999552108076150968745510735225709224007727252427452917365855711654086037531721282614365243908622213099937433957405049586208219956290938045653195766166357093464921538875684013189422497778499933714364225185589991582903477773225374371097672809526881530828045567638692776001408214813374169787217293694500119059703674486904859431181729605000893619586386767097513237810286360716012018135096803153376882115644494706584626917694875656488516657040105727989081873761235056011058690953922950561990479175687745795366487066514323148218924576841513531250934811435820065925042498996030118006073764547694039178152967398174294768388745864674230664149969908529457963701255429745281854254385008113909596904328052480441245383872401085170966447536876599791178478368808205639994335733336233475492342695399903111384292322944300432479715960029532727754782064721039193843755702303532480200302798587255625693829393144839427984388347615155066037032571198921066030282461952622667442634540783581614091772326137482096760638233971990123278970983054147072793732311388029497279380408631385303058918857807695034866972881301501015948250149648612736389028784670529137189655278019546982306752580128316973221501963183330822247249426605433000080007453266090041771153250097511410635308521430288758676996501443272847522533262455902311710634425809191403001358039214634336880802871892789998360012192564613417311666674518517519736757488326065031593595300349576619909458384378105285189776167372078146011793936043536018580985667725003247758591756947973532842587456261602571280906666039811855297860155564571814805386242714133327540651905518349077673161522141973138307998070092868209226412571076312470304446637320907411915079557883546825414728369449378600476942629508013538619360362292677353536862892654483620143381832689483173394419897589401315567877160865744130149160465434492137745103036958649757151549672692750259560392471539644848632532953775646253723273571188540663798406591415242692087237383263927678812700836324297378884065475550886747185593644031669142480940259178062142582541137155335801801826494864685816025732658309053492558901596954510534442974778019920926034952842893041499932424369933013556528241061344468179061013284055688552420840063822865711016100291407174514753068629953396160986191085186343034444393437550283734132400693822947013510428509842081024034541779856796504025214647542131566794894048732641982745413217883953642153299911207159335341226950056193042446849736001937146106481610737006493968618433877170596163038212844787610594253962436127736031581820739758565706487352041308775598110962232601334367500645186318224538185298719156522786101677532564515919723402231959672199307813291142424873063629873018910376418205926188518128297563771373781108923766220105085704340191914737816953790407610598723469669292734737753008528232216756099078718190739428317780687161688927586465728959052623676460539987478112468532895680535763212940912017466916435698662535735159367005495256163347600811026719542720352324781698135702405094945109963766004596495608359350181186168301268167722398094915193375006277634796407157877601084629055495698421659380386272825046367386439082736516615588711265936056673551979758108256401642468447598022201867519268121495665955941735555826152788298135490716220731143663192052122959981516709945820698228779358478366590209771695568974078125847554590875667587351851145280654836332324398697597308870772397202487559731636949304207016636560971821553310399375088626129325786443331112477760668328048444086940782313489292035117481419070623548975420895880623648200733569918053101441397534071078050672554410910719733226692036634570336145134919281888300938253645327890527638403057274086526128250763146397959296076218820399143464597688149126355362265071486618407879040748988690167404658354432779201422650144030757698561247794997835559416432953166757128362470643429015910664222539200539318876908272058824253275536670666577789944375851012099999292115116741984877825607040334404103255665663216182676026339504894592713790182969493786641773129558345785853208407440212134112416461668210809166931502124477546105674763409975203952651284232951129334059100387404811999113304753718975756612888112789206973933215224107488172392100646199927988606173181560142153843011242879957968868487675748031656357562538963983739918424325102532218481308336558902885564302208793671949478147638585411034645949582086571531495284941560431284301946069055899411004813599428471629396769242153059022227294478404218855451693596291165247682799559569306851276466351562686605834634509617679633118704658326933859413744709505178563359316609271182175013935163985150150225463576916780910448141268485383590289018535093355244533695917074876516636378192758913532309997131270653316324599928848398954280634641772014611431069617995322219078639376530162361376967025119755264007725716435220530206727873864627770051703986939439090746208838294046402125761231938504286613193571292698853271101635356922528750847578738335495432187246531381295071713183963294285823478691900651605154932444727773311473849852527768230691896501049197352330511330368726385989271029169012929769509359583751978422529986238899162478160337103192769003690297987233912702452766330391572742664616219615572911740008612857178402434540509344246830684376825583205424511302184491172533219680464240005089809156810115227683908467361708727547422068717286688344592959144525773571276631594847295238522895311839209989266841996730770663217774746022641950654310584958070747661253824670083545644177011780779270793970941693446819264573126282426165160668539970318308611097696018351336733835272029121707198175901783511703815847407057535092134665531683352468012288058898861666587732889034266999295456973153288189145568391074126845457210713880547881432681279535550524668814931325902303492323394370896126317793258505153362308059247364531573562913695097913290926562535066007860554383331011536752840288733366105776639612846125731123892098137051241080668401601563860355244270823033053751136426664691143393442893464625409814155507862286382191661237650805393936869273824762818786352644583866975005303095007385936294524430234348072703079514154052666866563429845207828379077457588452086507370245131768620624662880045072613822896728775724602470949616248774738857798668717527183168291723337841755052058844562522798561213704657232552922756666858043190534094918306431454657676742145098848189307367759128410683909735755004300891274288068034830565044157622864696517100070245939513373415177343305296393388608912304771418415563149654966233086281580865516700344972769946073749062807031968869792490393453810001544409713354433402947645840035706926906108676876374659352613823916440257901273944413585350387226987891324519075487577205187805855305395974842624254369249980225444920514090714957959994596079781859336543905323654143182714235030330713540978164895309549446097209211192590974763084697878079578122240824947442904755089875567345369318996765309122536259813681253338331300907344939064898987149271553090526086356245242900153681550610131857895493526326372346146281421948629817670479398328026283095732266575680196599754071126607206062401834409174409923067452051698612580691890016324085164561948651553567782962976960961555625732457924628855388910175040029167769786578426822343624610690110040833955429329166205430913402408903308898970690834270328438405961493376398097475895841084920295377594257399891868908273039658142681373293189953512723269678791678879018183586860936194589875210516217221696716987662969474311041632864555108178632805050595661020717089316328870748595682255002346702950735180839294271852242247765562364746833914384835697011740173371946898828165870143220326571874565324968995116954077029253624475506663721602034925477053300352666985806160301063274922383777406889364143943366958364154665747733109866698595274738222911940970484577223135285880823089295643092938441580596349886450189728426698752742414495591691803754270522664936953292056910292085800667258037808716825490542392706320872825337167378040918647726013993636345007828302999568088863260340774625261554698769696105484101269804246090391516825888490146711065614647440113107935239950262365177653292433169850021672382287235076898574043228274024416484861437361126254687470719115172759473856582776662163843125420991892821320897889671953899976130521539503986684474862049693964709181964905393192821845060142699954254638474831312742325875926176234631895308937379335426160614692906754391934533073626800375765155528914914095963878559002626924512072977655123112704027091707104512444349338542846699475688147015342558730949759972073074191075403930801865929285250083365365695704172191833614351714345794368790065366637937358110793690148686329070020886946805803518270582083429797615799554536519630617580008127516869223108069982567540820687611098539138082594218694739485822077102701009794370849061436036340970789180021748909733948742458422061371762814895616092213357075763313428308527106369222286128728593910744401109235677658740602603682163974051478740107079689833269677857735808078629692471697205751959334624328343435932078682198127274583918223868743449058734007735712561238259005638170257534506685747961180872047280575011366823593748629498757826845063896450587889261096470364871245696421542022402831387115558023452695899350641243605989790951756034158299729934956511956931342340529814138698050199724840712935761672080025391836119957852945037481134902169547323985010219656879823196413089444313115095089531398947839039508047965039622555063130596094725047829919944751922921263727397579255084381347528833326921940850107421357751824084318236949557607029644288674589564122136282693354363055584364185183037715640494522075697912279549177001924997521118690808068066200450630601716786297880766639620920333359461736705291443728757123552243812207721834783218945927068807059827944734677217687378485401118516296488937660326884428467433707600919213377268245595765325301422207596807324765072080859372533014184135527194218365434336251727374255932021118603955899728955906868322406684792166318681861539803872874521780085455890341316620735362118699798800784553506697727522345735612908488720177886291969153470814062302282414581642512610441428361618240464982851448099780257083465676828506637201791811880339542281607964075088802262413955718304998213708051085430811497867878384332665958783632713191015597697293519212487690622800306122259645388799988660841139870002984697980936774288642935070589918479122171069381157046574629147815749569541913181431882101137563790515195298683828473439267420711739027210798293589879548370871438021094486907704273237833769005290294956561045667128155352319436041364512298968779793721645758914012285171422374847313573166641174477085560171086718566178438384237878747941731023944364000656771016587573078817274137323421868115721871302702490568427864577245025742449394188857062436294317500009839262481197874152355457266192277407877260443126959336973777475705808175241059007435356278326166250761502490117250272311410642702135219006501552016854690301369445528964537418740034933161947520831180864183013108231431111304143306855865789125220152676361554626795526601217153761657731064204065736352584510404534290971112442043357183313841049858792420085471998596097063811572569406899301951334068068613726346637269052652308669143948542725754213603375874897860049901851352504085332281423766180884032887552878892623323603056561515938497216352570203214839354494496892593793450717522028071623396879043601097247878721246588957370701228190100753881363487048235568347082531743867445918865947448104292218461953590104169619934995601612216529967126507988619266917967618744233069011875398945286729944700942896234319344337494222280380028615446934073726719311518978694272171605698876034546802946845490714126482426143497944384713734250383214629504334870405665696602532835432441063724192316015421616569442458896834262656595981796471414013184553107397616862589155309779757157173197575776945635968982779390674378101008337892009600584960275049538563012108223266560438177555094056540406320189224332220977365744285070791029683942666691060702249319918423985785213143034952859766997155067820358835195249394211548482692926132652753850595991527601276016864103630186829285840986215651168006828914258613688628971347399665759720208715385078632627582504405169097288932341148820926565623287723275777732106136623019059331414362268510410377924265820553882681115895908925303485897608675541016909900681066834487377442191856164181609235235518249987599551824938889359053145461502062309903920689491275508655272723101478171126053356022875122558041736206207789723109187923640605972987175049236024920300627768564105680436915977509519497125426394840794549123410092101653873568332743875677088205594541620171138597808212337180541184332887491462997372840566326205303109742293652274225184073303144387536384463120954831240372375021621805771143925752980118314914961583292821061489821962008582777078475392258588885028253545857844575894708728680747988222529438738127141824641946082689587838782134046499652897569264172762102472934627864419281807840603529403754743569745153246318570901246617461275749317642488759454562635005225537404024528193666135067451482049533647766339469859991238421416778107879416724407161119025990959854542675991181999635594215662390153550505552092880196077455437428365797359683636105252723979629994690142587764458001517384287746597955841776130787633112870431992772272235270695764802108702479509831381516946472992743367120613680668535303081244154103850822047666727353270212883501279758675708119270641769300312136135635073705325547186558021741283538211412552441776942937981907003897337629782239952109446508204121676706703504579658806193770556165700208900550091594560171124220883619090143960221709184259738298133530226667637365094710675161509755747515624815550617155402660218011750843352215724313765819111376611814582989489342186613708962540633261679492228078481824136431379072003890150761137899178103611161228711995565050655504354306694749227621654795875734837446332927778432292287327579916465254859345844358874723316481471817151359113825530073847853810026784433927981726654982408526998756414510833786864179738925149904466530285732526644838487955136282410132794071103756545691113139670476664558170498252347502320340857816198976058129130767269033072102144186663459109077155372576684720022877643972890544167586658034968950096476656808367831734701106977812236644922168335108540374742613604108246038490509001925570130928566549495110106555972531207997177033631606914846782451355977732899922337395222193727590515412794770151418445176051595489340593895781464407747212217555285158000511874905911292081139802698576881696770599618475301316517324080893932439157391019707039141134113646939233101310883117202789701835947881297052390906455778205909655149570544145550949662396197853379607025450195595377134496478100371452862251086270427013820230977686220158695686769698758973681893550987224089079449310570506306952487749909293328729239432795233194171213764583134404001950847923892028124934369650011015316138448785593157752125830461878140303725280321748354059335951755989313144445363696260238968299086618944114732857037737423362038165705645540989245513140385656638846944656438886505248209476090206941839204320631155811777732244945152107233217798367758319747211874487448645007954310045144171278370079271157389059651802068771547508647844496032243695711864640245359813074968114971356294213276200956313428748842038417724319956721391870593992570251299902970824301129907427595126612485138523200951620530724262757010245067210387956087412430923106353110095783777349778391598989786189021420001986550729891902130788828311182543920544797233280382077477467414554489262425134866692180503298062702099310653503356817206941320829693949075634474753029997465126665693230176945461892825124762574370433111752829091377194984554286244554901295176850942889022006123926382207633253488111748635661418046222225883985545260188597997709055061028003446785077738673905452081070225609898301176039105614548773294572482973095222714458267351595873970605851890573374231588849047805321335589623633790039726098028252093437247470418867566819587989663937939070315102811693976884172419177471851644185132794636984807016750261222239389799122083699596413773569245444197040719530821225103919012654751601794355642355144218960585567375416355011978048371083022253382462227824864416519083973657672531412938461852119393429538523335740860763937429606525095399871809219111532873056442057636212400246889678299255870006743092104705580433595318890156430456004752838592207927239975083205740602614765751237193987500249331868178748896471872900233752189457238178511765507758157538637203333838943125592523492779746895084625775485270288327179748999967241951376504569854670127469098985201505681243006990121188941899222673942404334758046396267442590827611661042201025328691554696590085471772218004368151980288306864189407782018435324779824623078914365967907130816692091441201317340721785000844505255571427659683302211935429762195146447322732779817089811150853584240409837428445720299817438084157713535931696833567930761152290714773745926634897354643027280231482509397922760372097793168712811618587357029701938750090165569734548075947201992191646906072346905282813815874919771578679235166900570040575124888420713343883155426690603220878733822667577962685939180583875726027279503766625212694723336462583044920911759889336644529118398942171126423429300605105582503139855297133363575914040609314797154549355183332119863434815506118537757206718868517446284951922933102597884968243433925653654576271454217507139981197685846990755413381584147294675418648949034745109585097862537219108383606298793024486424874331718478718571178647001463159552492848208692301807926172474521984848819912945553049653098025694562107729252012168305880713010291009950709196444295177329200096905818053219794941587897293342970653058271263427038612543887611005048707384980980703351455680586621788839903438919984195428851173655087402795688832610709785114414501745144455064023082667586909763966617243143990006729287738697085515789591701275702543910188665371567460155449672335063589348991027119066724774976659563772934145080038448938174727034104845359352640929025308570306968922291064874931548567820843496494174292386603565568137709276362480535956744383024544169813851736848456027119803034530826422958066515761408214384049925639894013943419775539053583651954406576825590414353593534908193733242356973441536551171933229235097417711896809512842435881675989900988777506342678747926482553760040145418909746031536756450706425965683209494833868377292458742828118146199993525593265731981196668950319460783671962412723776996058983117048145630071411023030304074255997555494084155238552729301938443952154402898707285789848096134611826246847532933861103153229910410335369697752592634065074075231507866235326358783961388923042165106738614841476381169800824505683058439200838551639789740089736640729251064072105379594135673069877136035776687285402822718220199030950242125431260156578322625093941679602633255226952939499384369961079610525038039126343925388835126975787852802376883169246767413955997189544921954710512739235287532243097021923276851377666436922804857781601245233543222812808100068970051134760207865102717669625848288909215668020484690546732098587065629294065096025908446482038536943169357050252549433352474771879772376218176917683190407147488215365950000929809046881749849780502646707900867622843157393241389383504899434602006133953529732938402046729585149815090778264558931491317657717897597746700296499632362871991857193186720933291445223912975477830286787044863650163488886153338420921549261228942345782789701261146717533942948897057386306710066706030020518694099648569727805669518337223381452878307588993525858900145349387550612948491532249804549964935643583051970775792046278874590766553173906316253226030565873711553896641170370356466993677684155171686068402865507010918726597266969207490440169858079358855062896099872652924447431231599171897442112099798669219842588708233540078116821426617632266211678061175311256652416941709765102889951302736122156137166316487105982131460205828062141992287382027962721016556828200793675322677839217094839625914320635914053636361652669823148349601154379837299750418526844681297769499891341554040307243512429634607847983772991930658890279950786071101137067258415115016403006512172139056818693254304459355980643991148542842329433451969113559222242461792941062328302541330834506498444937079459737902118256712565934199805964769637605972203971292879642942050754972211449720815325361757553515755155798451292445029467179323585300609545908677309519879103691318208068310771092935428013829542780362425095815358676168378540853001811902686133461211177541551066900073398590287268179274935951443599725983448583295512198169191475832476653061928626948554198486414301638942878641723207950110848510765929944148382417298931694075024147817285737139322210093214728675570627383938878773258429355337448311007228813590881274187309829787640586318735006236097047207048634326231253997316817557126551472831665458529305762573264263764925258187629139283106997155594289534237980347379078914598996198791898656665679396815914144653822147524976100696436018441354243329871331381996450763601428452548631889518632168920758924231077013031540943241915277134297021746849880483649687261711658239589929998455413275212603362126721276135377667005702879314628296502065107033148811340758448055809517785758891136072803504090003041100191495038239049130377479974697417868605832888601234264031032740674854001188115638899457551307264316957822240509210309327060136306753771500553600283153963118632472998902062499561957149110909635980650515497934620610260881245666202167509027184995582798615327897206140556864130908265639604882541211896544270080096748978020006931950525428289842970631709296680921772038459879926012080692800666720588202873194112210919635691263687235014003785705978990576459463938392951667655646420693174383304029041072418015875703403238592869762115534263795227363482821438671085230239205583363989111065387777226907173522044816455123663516278625641129789818205957527691360732270616656609418432268849764330916057700326409949562277437774857542172591688201148418022636435521245988470647191716924605875659725852987449935362132562835220091052036291259674921986249124886096322579269920851811101313298806457484033166292355167311743420189562726904890673219935264458779449494702990491676959747376015252831117624144851886268012483690009196179858231253846728715788466131993592920876491001062663742432076104005731883443929828450150004174475606091457046559111350271816938657883122684980432978705299929620826721720907140753366537092687486490359643650847462183162349644256292208738112238750274529664476761763403944099825456499830945421941956838080394782291023570622514343259911224398597710728614484205463806930071609190403107482957945301491882405128301582396198371373064133839273663967201354725186571483955438072142760474061602430595215215625436465701525091172999668534898197389444531201004151098217769849664499747038416866920443983864422914149503908867232575305057479100863442805894248967827235666236179155780793575085506976012832964999431891852561639849085609370277548099290659161583620551143751881604971222490403877953578597614864613730010983535385405048328263301935243941640575033405403936873842567039087290449393188220698862210951043026232064080234914835915437726727233864512271051604270255149903856548047458890624659836728976194700206915484170251830274569500590184912906159943232292789428065980449077278275825919080654851193807160929617419666819343383329926595351212572374561239151949080104770939002119450820372367349121961749076987979837815833065962797166571619499893835549042793563773554603469378635498697293736143934426184800565082025344150476366516842541311029324669536161078790503168170236397223336455755741824021723319541231275798207429157907682609338428748434815514691722129159765888155265357555072463767516685447633817174564320851504116552371933028970050367416240420185385187970539325864862578176233069325325580741994107670054085298678302539802992785083391324362932014769523850344232017816547806254424567555588636837337558827883851434174785826298240645707513091367789360887295454696922488698563295085747820912879625883408789692982112729038058714792750959089524727185869234501222590506164659691294518037073785006075356028274298412041626890839269420369941060660365110649125020762104986232754107591903744567306891880484070400231643850408411878355509567813253819614598204121197625456683598974676314941245219870256430205115791261592384214851219870955826982224769714119257314623918950959283989359515049521792950422325804997469236268683446321987171641172810955398527424329473484726821423959177733563480411428402764447010733448384096490916212788810559821779799069959543542206675139332395108145901648481229661459313544068053784902145064950212468843594497927002376519278626779559821382790817901446059333889442162732084436030868701879029524526882442031518555115653995028983090897341613508490073946695520376488087030450881707938647510911033542688551957256531063693235278095498852780726876823211080160723478809663077596767863022430426427981161578131154282613346418946583832208435598034039045022069115165373026966046633837539755372516766300206028652091520540368433787482047710575260453241181903381867417253731987889306161732177013550847617032771573669534949933085144827356176678156542737084371544944086850007570956292776550340864579172268390064178688682682049753873536843819827406168199809008656163472254709110849204310036208284382089801114888241468958269902722388266760858771301666241330903969985936252852302535832069410190347193375015467741139791632228500437450949928427932581847592703756219798629824403253979351054135436070350625946997228963730177167458587644661167446840487832651435859496172667598469039524094877370059436095728592004435534175178231974904460365238202533953150555585202276649160175793434466908987950883939584019744852964475789161020281424830018869213209160268708254018714498361627386689667230864304481367118440179509142163103778960174318889724011160065184148049677232978436258702057784001410305892685835648119382813047293832533503672157096284810539546434335861793229807492514443312002407531439600451832764611152354933159158416825834360722417702381147142811409266884714684421377945295640089314844226569862112967468546403822762051664599869834885891816388003141557810913257384873811435628234900987490786583824506678527889716686755609417579700971119934197058511959743575543801121656282578872599474186310741865251439014880600207275580262732441825540230027555976751922175899004615803914720382125552961566152485520457028132309685230594759275511356590565991903960780021808176728315682908575873298261056830627703188604936696003973095821801556436927520651557253354389607872228210201476976558653015776390273177870292792931367747703018777791521985052202173014443462097213773802281973283056684991058713900459951797113846165518079324915368336028052761018839748777972813498318288244529280043448647027816212660983920904995641338236082289361197780672219503382331369145158692334288504480178026877437235502301314624024162163560542748466575349893225390718481230635363167585963730539220992318452857778212089974373468649034979791273701733322600183871191412166808910029761644431648631539066638180225979436441433227201652735552707806706206860882163593778144379686359169132630520979257854877690446895183560578948235786745620068871188578713921048301795123186088805578061231407321828547927262088068742805985105027019857480213946172550193971554184491089495715784481345928827429004025485780437003267840735429244656331364600042912611704119841339298469458649135378342459117076565118954234518669592746863942711202973364505228742778179866087593439298217288372013059655720958821643612655076452591661258511116512741496597998933089922193483212111683206612639968289108957533659907524661244792587816379684407527884080695608798904396829842201417226237201933031488834652048370577949830958563818421598366121449786373930817069905609366149358787582099824184099540031052687565228976070646573019103762835621276455355805280703216363433958950046421356357285231581979741214783849716781326325676970306359056496454710380236473318568882427547382732643595408181148013812374237639047108685061667746184571248709566053885817062107562804543638848450976072780549320242721467295308658042767479641733437621371594106353666010461498803385626919884229658542585451135904692508227657081109743340269292220622491513162596957840326076385698151663270245232090975012753935702229826893702844138781595361394219416861875149611467409656300893639369626709833286463821294855894062430553513520572450230830397570395681422842870611085374605344826556268150024167645047435628273465786402295085454862825082282874725939183464273602669741261629646614063245033637426385889835125624574939254533123756792436434534243973859275389125175906402349462688601709786578899862069364407928564449319869703832234948766427010983693264919876345140081134980500339451474842322026081812871429745454718342414725360941387911337213481423553687879609568201602269904074652484742520466322639094478252397012797545345289632872220400726053158563945393666438736579213020031792651810364211816792841328387666838500898005644627790035085146201735683689641027418013329572637410671377916346241744159696505746820189387566080670142679991547741691011565099088129656301520660942746140342718142871102886790163860642369089227375405315457951972221850805317707979116983796920316081632408132012510732600251410123638881824773221603710216895462167842973959859810552827897655653271253637170214780739773628419294130773078682463102010072517723865933839136119757886510400602008786841940661694994098675820127935592831484912511803903296232402926054151652503520356482341656710151596721151624481535005934417175787203106747878134411073576028541987817823344879171916359357558752834766448505723096378686898783194067718431871314320651120022086806849460891528649154503710558463312077489024315732955118879903969544014035749782224417264814036941338960659674096350118672928189310657359058651903306149396997691475896826507991878602624438975251424152757941379293313775246958979597950497098743022499752321224061527128173689286386357893556661926932716213561969487763296934829526913576115864364517510409019964889611134115647839259852211084030809780499631094713080478083434486740553537068451613461875701244482871845597457884812266237625687719632106080015046500197204361851986328731537134528123428289607658333629436244986274840077583886959911850402311990876437699637166680536675963773107009495626910072197316385597128800147362770632686945816159468350308411652992407442175625562141702321032799127725139914201909422381813817649426356212434451177356322820868562780601553312678500338834215407436530097045597420011730904959462093718673447299367330674344854460762465841107745034049482924009131801794333001326244283723270459865737511005469341651355626999608233701027624564016687127059800441808201427358242530275989601924851965882036937786070782932996100038583502162291275540790165426135290068160719505917107750187699184779369095920364950435984515313654121073347178100805545114029541996554459644510408103374800907771945693534156471175232295016044735521925324268488712169768056483507552129144458239106401079897163278496384076861196349296387436492359863741519532397562012771558777523474934814725137950216122114125341870635681948810365385044485988858246343219867049102397579812993396092732744655317660829451016963275868429999847794247490765985043053022247467276904764941036105085192234049877175074655196588969071444870906012769989750191810653086751380181273313663030425583748174432597630801475378521227582871837614254220094685921138600060363033862173865884012724599079935164571453767667364057360782868003406222791857609068243021338501053406044354659733701951834449470591394445452325778453383119632132753484613530675831672346738425260410574005127197215817355635974614632752427456028647703331192083648666186700615195398337759681523355661395514161615003309043463848806949490729135395541690850664993697581622082091508590915555451230321544497448961748399530248742465735367265548253693511122846914518169511457957966428408221856225401330499311785128459672681304528923274512236894160527669031544236777346128235177730432152589291327756128040991550313444194375542423224741060124231621035741278659544880496044458459129803939957424636135687177644610139728700352190811988654532285022470064781392320453602240720595770575002386946307691405481792465603295414659349502323027886330409972788577523171647898172909418115114527113402526199117737607361379412830326817407400578799814998110136003938635079753074581835194430633428116208578023820859842315025638443153418681274910381729756585347541065064280986391200762773599388078997883207506874239075627595731666722240875912305092564962909410427976201987683048702543356094447907177938130766099259676025550987745535113033861443947944126178085488544668424069712989556476578505117670764152535471857948683424152360656220638986795658899368360240805974874465983060413139370685911821468984133928473031266136299266316658354398808037142698475483332968481138382936688880548514892404479913620447843810165209328132244829158318503308717104578770294090787882638881402436360252074075401754646900041075114549159626941408442266163978903774224861900999484503139519524819702231309241811601983751725866379725974977224073053940097830192412396538233693669484549846009282920771137541844180631929294895385868210750500147218526747829404927558679258752071172271819225756931131585087160635584533162276419049561844595818914681893969400140637260485593665405528771013512898829649629149253816403175734815996607422670392709866773317464883554661611682707142609511111139711695537758354658982030451242265101748335757252754130367155375837353935727436639424484852242243781704799632586843446896775853380632805884114732476488286262087398304874260242160958935175294562062730639585011508655460017708732005054707376870044585037657184902663096660537625246077596416007031456174972934486155225767319415682805934336739689980413014890347851542085087021070570754956125932122500983873804442878452363387666014834645974912821043980805084208825471332809591787876939105084203885903442067182944779979684975867389640023576739243892321753059771421040181088569158619527750609339846922106618934045518774947350180578385363210274323125503757227257163924196333721293689139777807288698202493735303287248420947664882574046270522018792661586817665620311327824870065586523580088791501191569375962795400163793177886726264090190131451577540563123710128639232631300363513724968694481274082676618097387144680927195246090377124463371260544815644761315241238325154827478098986803412944090260508983697021865155497208631463524797349565179623698229078019141497002279273997983627777234505741524556705785325802415597082917732640030117163538125782937419395108834918762286539167001191761008945372924187668146278243807617185503219354202419420858263934634378946433039049505963224503968274930668285895514865141625726218575380458238482098986741167747130792964428949619090473416504527829444589826551380447468378469348792729588399646842100680765922074259428290274859311513290598813205766316120437453026753372201026962959885424348502274243197880603517874360270452324286533198683956875429654227657034697463964538339638871313603185932161270032070625676353727249555773400847919879882111936984304695011593763531135537666984879084139370904040910521147144811399779228505803840155703455446157175985733861683179060464128391175292578635276031027418347880360967579199180603717493825772655106653659658036662319495728483603437568911576528398975348585048185094641230665254903849852695765436842364568675760996810904603251815628072134075908821850335299525571378952203899547410298755682815645227127171134890628013609362226704337967434818038362007389648715057675951838635483157050084562395251151851490834658228237130472537744950839860347689423378579135895661279346680113656656144195128495191945830480898181317633550889592074647942307362100473124539382032472736639976272739082736066070699308409158156520652676102291064124092017258586578390786107075887686292646319667332937449155175316141775386788065919199461523608602693393889486743965865928862366124709976683591026616162448874448704381102720340462885452922515499011123715890074659818688167811732821118050635322930321106603883221575707068912485939167401767255978666510422295207850355447914664445837521137675957122134026835341380219859538651189543429304822281693956208577579806979277987223683212262697062348274578845745735022951581423660902819403640285651409241801604745061918226075697566257251863351803847933986573658732146108980825976895895020132622835316977922101159042533148589093385987567329828444267023207664607689427402834721115099448463260387697028764148324402266794812524072196272264874822014744176113565871244775844557569972717392701541795659278115829655902286279443874216434799299700321510971369692516032358162668621082639968941154252074886925590843232340180710221226831213208217538808354539839504482689290828517817341772619079997016757419742561208754506215594317204599502308429093143961445002315679783139755084397174648184265780968473967546503684454907816662940346093867359247572486035491422975640458529103014135289335679084755110609673790171494738338292061520901596667095885642253114562266145237342648673793056609900797722947880459695642179408686075594081782258255894500333535723880494745596358403759866669945138772666122490626870282125513402887666476153452373316402892381722589139525461731758838203280239612544591125687945807407531562179088458064362311068899535283103500158791433679129867352142964339956515084308089399396247034807816118849294918772608066426229674150625990694659626439644754120018510401980025233364172696275122341243221694316461251270692208584517528382415705443268680697792024036433463958326707965866690449592596603969119973786610755089799598874209953508578022855597202883893174814404196560989781228044732914104292858410849821805489721573968661333256892418374951083069546214912333042929999066987237042325055095203172903972460459422834733343858260049428570255647608700073201156544619537415789376447021939699928723293556751513331583814099857456704508795087219748198267440932930867116941314990940353111120025088907412312012791000775728649989232939340191144231668353290590417266374345415257650935342580519190837366807813987446420763312343179891126676476614266416120795468504461864529771018370489236556101634774653175552827580038588536315776167422404012360196390276144546457317153182148076874931397420225947017570020137603932473838522319060743530013683714804544852383819776641690555989506434655805589877260459038856808688397354182995333442063832893650388103943244856863789857230186357153727422635894315367991402701015794047498776710632517428875384244774495761023734608429384568782552531170207823905915873699542163607998721796271385960572088170907362263751310597726813590286501930814877508515898187115251326695885068459259241248490291521092237113043352949362110181927072356154267732692248304072581279147394406786855937159296428241374519365424701961728513115485748808315405863923312286833548114691569317302559167827768356958563493163028742270096086968597995778811897232512650629878835334718198637398182144437114602246957668400258903267305851571174470915825715465680349734218094834074774127375824643764359460875913687262908846617867101962280942206002521025192100714274736815225329420319664449026383967589140750839478931465843959467931946860701203803521930533794561558413818428275081139823658478296230654420469010481265347677736236181193713370892115144502904476953496471339723239693711635893152951165141056570216374058715697606731858404429441533633319114396816866666218585169000473120789805431114647334488103869770258031727708482391009823460900604831886151577394658667166312099142006891757639766817079024948822264261480359463079737246085411136195368671886442831136682021370154007635276111810583577092474785146916814959855812958337049686612488167559923257976513959883164887495160082397655457431731394472769826407149005229233035793856888525113046645067149110668385462073361717400791513572219648782325129064927232907022515167587308258213405167177754455570592870132818805952702524670001652398774131597483064769447671326977291600447282719655065992021199363931674322447371147792951820754096233709540656539081306880844906684175377585940765207462550312784974107391128351022851759633566398724104905055591043933196894369535824640772012581176227638744156541402791212707242285224265681877992533773083731244619454208583216900402566790442878927650013604138865896395558536065871444317517399206651392997326284770610756240468315250681399630416060909395783492061562876209205097228097129023393613596471892991283819788707508439877792719827374500950442517791454002555505572670149657745832069594622451017482146439626904007434864497517888469675689750919512036387295043615086575265396041089265704342201671630125901735217117451185608675411603825605344491661968372055796924010712707313112304598532200983967685812006122242792628076492309422873831588899997761926995213189761758496864596842934927450641335611098016657054086874332805002542274684176561934480055543391920726033312489211355169480633149317390788489835983696593378590996933041364890049122178847037297302017165301539969988477420644771196351036634603476150971781463380486704105415526363239008438135837408025948048377207353868727466444242465032536635175197178921128183620247121280703705055013764278422373657604391599081453572673824306439050234623041946571606605093508492806451566847172411861248970290570040748835238124064802763532631787205396195143288634379801634042385153734922061453240081213253971712127941865063135760638620863953147869952306843879730403340182383994353047687163685124141564916639850950407864813194746518889275137479149812113609639577406182635283775468337689139686900250378876930806023398731082174399984766489910000624227254491235132224763202101087998501072728156301958393245428765948941394344569008272265216408186101226617012594994187376042600079437564281999267648628355072320453972981373867754469438790898466256180309043534886771277117677992199793521892395268381653922948272928744287278802817418183386507083785535620753809359614925253623471434807701803771275796809658202781852132599573237300525406626248049620579699371424498860089174032429581490921716611346074592182590795659106301734220598274695668085753561633100254177918826773403284770286456979379685820253732316213182707469418226897451592330445145802494290534772253554338393128471540525850714610111225717621293893945561936344774331797801831563619072828873894117408545775915271797404587960070779910942154998544807285796202098775796752261773392553850992155595664229574760302433978220166089767237686810885892654019852465154834843420209587168486658124559469108600303907589316363485779730261022799476940933661550235412232944484134272032731646618785432607747659358950680630644407604282298975835245203348269306721306724958933206925894853284206687807191988438678839359470426157157048903702643095183366007201100086250933174027806502655322312105441776774546571222695196946037021949829336834792769840331056857121333011155591690517562679073916137061959534165529691809785363511238680762482016391457739574911201074731533314963740985611665165868575516518042666556093757854230451616978466133708333687317348669604846207979435176363742918995632637452168508156890073215815310582673817972563080824973359607539980165719963392931892313526392102571615222016734518213727543083276012663070430765793420007696102601953476233909876282138549828867708907013109391880637510362924574848981127502993633000082769950493278954381112705777660473748562839216617034910607678950576534749736076381790292112879858940594426785479408400578467939122191095800895763250694191314525895802829689261307289649901638702369312015754547454988152332720985371345950728201588333284649723370870972632385470019732132409905607353527711053529311780067989295086301079891517662036016916123927832087948364314162728308157700463711262779247659846474513097843979083585121286512972337577231856039043622777091242257419231573163000689879937561404276728256038892383789576232921557803413819523483113385698538596605587554492298742390171556228011938892000267065593470068212276711887638369480360610149079701256073699277943823282252619573226663890667421326023390569345353707381036005239851916028465496808119924234309300116526619603986207674451767422420364559803779993992980205822102633154163924097523177650103111175444862803924562525146975227755052004197153817272973756355983016799710468893025827736287224924612617958510957312744248321915288936312689881284791043106664782860896783536370588145790424093406890158393923438197795851105922306071598353373374770625394841392083610192953236664676916148299597151403138540710431018836388473349646741843648741707242418922311713607775932167427987294098753076234654586262178703803305437963762936625615388613234017055759271088777275428012482778028881663038429960618700382023165975128200984012016474074032379884973701834069887974852430445017593402999198364534837362463298498745188701883875081364786718555415655898408606879681801958856662592081948075047371647352003434252171827480103111226979620368722205833631843083087098541458399328532410655122893080250529429133589122365336300169206566020387783173481154699775287604438467381439026212073562699679878602639004082137429978258391786220569891702605499521758615282156211444952109664008407190871829029769394054089075073079346658590104473490948350789298728907463359941836990813704619448961907117569832598734562179372942572101607669791871923271328807043112085722259542101969283747978846720085182536475569830039628621963876285477274735297827613418213878956463955150156604103101982957602046902972447955638847091741144719960923412416201542869428839852293078931423461673527425056611276441058441126740232428668715902572128207833040602594693061777830060309513032073788148204292140133211490865602359566267128464982983458401349945719341963498556859608555903585753278990161403498793652617823812913211200542909624610082064947828698864724473323706316834939862602612724677205766750083598204501986858467056482440422115430357558641355539763243267076667414492073760321791803530646774858342357379239414393940271767557611279192183371398434846191834655854490490699191182531878426294739871457025512054198583591455467699753022120597076759742983531170375381757805168277521983770838415412513560363220415599825769460449867984440399919659061410754694013474449496309246460673727253213377965230381740126616931373494358300663189781454713576413584953929338649210250017674466529457605644350240592948412636139131025035114066465256081453126318543356833209931404011386284399802558084139299181124999993011893211653939381215859780514824605654775157792092829373120272954814135261562059040493473961614082045920131438051403856748196090935789469201215968786928899756602445479984076702230239828948184860611608609338905749945477783309838730923406627371575933191016554960934914992166210799294600932433324803219673829053973151422203492085916207223273518120264426728801314568346849696971783733755968478923016627004058855495684312545268454819670430447986087079288886069513277064830214369363494864796067229058119716608106275755997554481098089532321336345003871917924048096996692490153821531333449721753856944500681132113127046584400929990505205865318735847312612682405879237487410309187773156450982744159251531825029090593960794804906807607910837862742338185974828620961720239227178913517310732757787688510388819241214517928886668710800968843732978249170927020972375071631643065252429373149678018545374991303269671768350900475473257099607432804426787490875552647962720991821265090758886372796512439582334859940288918341136582050120988753351918329189926888672692209257120854817664480214612977298769174182218320399712256416517698702824924899956599018459091668604962015900164043204980410526885102065608536075529670474462479318075909681556311640417910723437935368836715850470362726439771494034010274135319987919153387322255294998348377023769821713631159306068521238800373318704938232558394105025069514099427085122157659567410564522023234482857317474575366297160509523413444215426069513685756526148706445160153082706092877712715442915183813510831861374966415726449982486137144835285201446114790127018640154009027755955061434430663579172797534786805892422429449835405406805962379810088412740161873329857044612201220740220945359986020211032917791910291180856574192019473191235161951505154546529709120290090155562782731668479671632634683552868831159418704500429315677951411401257490641663792386112283058211360819352539303689643580610945010571051064881676500378490381134217549335374605459667012084396573112341303500710132979398721111704485897966049750474134371372359511380028917334821507929132848801476110936204282987389378329938878476592248676159098483465880484708786848956344316953637759921844641024527002145544500058708217733823396272641659324272872418351412868484985919689695721598772879163393811096475567047494877028230728980830483069781172573341546965867084600285466602440033362426885341622652962014284131249391419546983921284701678667334856908905049469000947962100756414179986642113146781995657935657006887955982974615289171365661922292613731405773443795433639746339120066307021889823440733175328280322811554627650098429516168951426543955312201158334115479721121000549524012538426148481056601807188539816218299684129715221667041675968227001849098872870713470468626889823342335430214722989251274799016047628816793914528347018069177406272860873165600399502283391325223720691538824924151863052841612713361528444526026148502626196503788538349221007651791780613494368924609135820078896162566037193192146427465364306896367907503439470950401479436527563481862527637316222688199500539149404818646439403757129113262953278600926824153983036141322375157562117652324460172231030528450002464330893123207543392854006648415122115851080042136655927445356047201735185653579071468686494617290203888069990295037671634842994004011357207371137214203339045379944629211502992820236669036303308179148789070712389667895782166199151078254597457977329724447770673138199530954407269471172685856380860367713119955923155903524457246240214847625342353120600681483962379342160406186670582377302326542068335362071494172579231223165139640256107281452360606048408423116954563839747714798461840672449112697298369782788762708685514650754233733629299187444995871845480441422723960576904002813873525439497718103936112445032786731023398336280977819886631127166704012647116630049448077581275582201373793116644818975598774733828498503820801712596711473341166068773965116912694992957259387925076197114876404181382117547304183567669651863951657574123245128490863896352333595009662300148445558826383722453874622539659434230280420895490505841582386327024199028256625163245870112047447373266818361307469580797515210739216980389140236417839258403099007387326810150111778534401321138038737513154527997300420026090168663805303765051725172421401595186941819009009734058473755407881267605423760337047349363623823945735386783607372778155998388547226543610201959951623893162819998367288790823639089931737171035533547653210633089921170448304828631106385371881726849541528721035895100040856465769312777054639148922549514974186418868653940506907569158376796614457824961816338721594590262875615708791764368534527096956624912257671932316774873917146537594199775460269931351751599550881273397605333302120457705113701695741472777496476394057338990794524296335008825629549598522666211402344350710313845514179627197167307225816287098242325033865579519293370145014033533078015443534342649188066775600468399449696683357506968685687464458556118367131945019652296454614251538944208925747714232019244571858267555725076048389852251303867955031358469232913423272043000340750691046324938257760448438385932012854055406544086631960170339826590898058735051545555378887346474202568974679303802771175574467776117948738786012723907876284264097974318711598208570079461768637841347803208004382051954588244817839830455751103910968005883555987405185220683228461111585051575465302294257984508144352265028775634253199307457269866648384518611485826852956542725356249825469980562802046528314942694792736518491560161887665849001908562339246869816520987816582448062493742889049391235398894112237587376253729520645648360526319323789808201137388879739338569602690716593833450125602591583933295295398599488938173418365192032911632974032205805404477219004617620694820462787222215963530266902521085878038171117389310644371904052150827280599208870452851171245297702563966073188416545863387441282228424442127162027389165224326845585264367729296405362984291293253720618867103754487609411221503697581242314307454323965005121380769141475144134860790691781440978812220070896334853065381036842457538519651791211492915453880963418334819932877822922382044845590152096367366643184508391262687678304154515732773622044470301308551258170431491595388256951265210314768833097570148490844324358925715695943836797847445985139960908814393670773222921923356374850887263271468806087471773076979533273102795734234951961927157096402565445357221259200424716837195637949797531287896942615594814978209409932179106206854570108753962341644311068753538004966497865305673369170496403906610803299456420617995131528200464491049232639932152569814068695801395269266850499361167635686759880581261049543052491901099877856127323922625773525489616696588042573449646820855804865012553333133298323134381956215083621830593445485786210757712280395783898882091323863170135156661203189678498032538814437231411064581711462915615254281957662125367090204555588666887193558863931652919735447374684054173680874550419261671378054643953605937987903157755637876418552400899694573271931060488585657921123510551157568497937966261756935416475516759731247938438868099757537881251148567835223247547175559902724834589594194287810249421402703838580941603277212859038050494452657724385548528486353268404957473110160171064403075190776694490024413949012497435222050834771378653562533657437061174583170763412305575091857735059095390021315151627002093556849578364729655910316811981773674817455084020739658912373150646479721469581041711101575911578463412425994735997347261735493309807909787435232325299487062590040276697056849644067958441443930289270098087919320752666970204530692346741833364524466291575886469231629752793107648477602477075382675911999278053087142078485231849678135260303725776311240897813393762741781547478367784869512304680105121728181628026443315633690524324205384212660026961514130641105851939408929295950536235292488618856933823801067071450234014260331616873235688584306410050469976568043883744009154405884125989002751569523791068304210987288060170146631485291651345860304481316040893692186185519988956777418670756551246741991193559844434385987425218582256206934948054528614325657617953327503657546018804585309951654909892676257653727122974821861962483987962476319084486972432156781293151972398731837061590493500184002094255918586342468980235100741887246572227479671244515100947261122492460922056256586782652269530701411548265070601770621481119267474132474749494392147282211810494745570292522352290997312823775683994680649440939577021347848237583241873281484682214010763427941735236751045320877300670747162021489183070012156431825120533328936152319066051942518887469793475480953962287762448873376896568780946126259342165462220788136521201846320520707063913094069158217535189642849345173383504324316062055159041225564651803756498833034993446952713070055006392506671371062220247504801889275742180012409316274896843461183524145066195969507071096919519598660971962437856296684547738152545193845124836997792218460221519104552229328795406505894217080656933648282232318341716860111748128289791119462316135303547421946900056199292300963702499092478592152015211453013401647458887335109214819008500828392680115248950169698043470097094324478598006186177259625199711359948824449140108417653122877733619147693524158251802521336819916318907519207041354395831985413881633844449499941113354076972939480346159335786436418869194070199063934557293530761125715305198071647305743686254976063946969687384783007602714899283468934274196536019041255799681191249945837032985257663937371330114571434373347488786215694562693303822662527450570679045672717536920932796833848304092113168787216302437610027675625422125451157845997997099584020635323698038187067177606201834288970096305584205105263794955158913306828970689027190226420404496199911435795361121572265405903750214322079850036597241222566121292764801022871347514335471581550101109379785842140214210735410350629405166611716366023878850389941870569180549764121784554792756001461997434835712638471556994466447494301847002005481933533350297030412789878365851383641759094294869093136158008876410615181143254758242502973736915383696447193688616274937761625537670700596155258395652094748756434503526020261520146254370771226298952281873630298555998946088360647356773258422970798556092136981980283558684051904480898730344853519768493833569337885130160730678370275736752878349734160925564463573185571445431225217827955898523917717838908678956444070413059176106875759092233154022142599671258063583848516150451872101633148309402321959849794283270476311951176924810459009391037294604728720183895586344183667102413454607312509739720449929074323336989799414598150190822473932590367681026193224317547053810271659997803107568369297597528219390727597122381951450306795619238379137951563059649849329591373996052883335211003854174119813252745230806360914292764550642677955453573475802866043167480751595421539333913451229648866630861322292940380587881345455609936360216778441514900778973477190281904819703713318328250682793720303371352919771248524166133618957229229432696343099304050711003175317691509869461970686463138453883456146606078920770938816696123452125459221943448895556203130717372749515516442409539657061765035856537254645801054933862634540415917873487992844761107823392363527545146831327117714964575358777632097513987658525096146749839268524983734693227595719737933511211210058509430433467478318927230488985106414710915236370454482562330928905869884453460484818018975797814084000518211627711451809862615133096369114168426128031947106630313289748571105791273021284310589124144937209258809360409154321856466708628184594969924653073039275192527548862382710298186714716715827762330192182954272802195063266463685165538227037664800846867711895314450112971432535673109892685380553777991744565927074803834422246109804685355614081654981149803798815715876542547833908726603956884580791776141237794739386062427412011467081275115785804147238671291614419432915896402635892360038378305781481217664636299568768678085750949253848672744594387488449548559669777803414128430200249488397330379054423149550423347709666495781393853536508908271032449314267640269382669226855182244007347473530703994504404096354527552827031887208411671368458242327123805975093555617219972947004415009371873391342875677156683748899597858320726679971916418255028028210274358178186125313452504412391897725487034481501587702873707389704506231206004441472410365679627263126306377388962806137777243018617189950268440525343009035032470492970569949923023684110853740563783848170666590114957781270434498949585643985936042449615821496288890393529446160910900938847111278552004839279306371714867403256264653799843904871885818497842792236828387938591225509012257435871749353820811052631209248968794167790900995466700808029545909268986231756787661290614316964968617394057611598616893382792179703680862259161544340931613180822365224891924040083882548892180011909465529866963270064161370845691461941021816627290217905496352021265646282443309335478031911831331450099097256220319625813207069144981161620508020821195538790166876570413495582336856836593229832499168982938430950132171415704212933389908080793113491691759041682671108058437857013847415281464622282748101991812954378075502716805523622497374864942374502042062913164922051390194583244530082095041859825259120422040945565065142252021163734907462876444701255699880569180203229287607379606546125150332684283380929214532599262759721365263361119580859900618748005338573933117286040491863625163039580401713109302388155675122661616704196574473492679147942429671066609464481913168323452328719281609403521762687361026696403967196318823602793389868631569885266112914357326621734073424342542247708536546768233267709432497843298994093580005605996979494468563763855318178500290359334484458863943109126031103351583734469108842500697828157722755531370756043925152930675185575050503600631812860221592848843442462842446548130030874631199305868669286992126114745763149138722954195460599671543072959958803310774687534150990140691744753793391546305165402841623655805230529705992643386846770428045926133865052178491166065081887043297359810001607142382231575222799440042015746330759060329347032460108552993755111799385986173051854150000031643364231476651193789278107936722024631443954142251806805696111576777197811217384133935118012234439995709301577765889307374876868094696548853669407910642457583913846808287819186698204064751493794428220799391612718180117160004184673040177187723577672624175782873778474825054703072111397459583128440471027488874900226257797899424176579247178607307871851974792953251582478284730173055997518139827201887681313722999360129663240803297394734167798762243142209831247537744302535007848281539440065122987839739702456038844325275024256311643985881122728179017683726193492525073163551639643633677540673743947505899750102965036395729121670146288529357624790361560104080429093560167580438551320341116238641103534827101714018482388200717826460878600742339281673608439098199406050638515437984557638654489390039513609804958760045254536150553743806496301578764031567341617328516236474249348792609109135086762864606215406272908707109293368466566476760219717604885201024508476864496163166751062436042560266099093250007594102850078406849890894061982308181723680380726709058423207677547740620821076595367583877540632103629690607346697171582567955364461106219438292993389231214907674044144592257627896736585920049163940409118807706689294460383843452384805270297105023924602164193313158205711181627075051361594197619681835492594705791552990183905683468067728069888407294249309192685016608774671087308021866200954459330465550020910447490553178416994077106451827216518104274955319458644479002429661391539599656698866920166628039654241129610967771683385104931384095453489476502245239217331028804448987004759152883164910488416785388992380637198792746154236031862817857068132418178320240429928497494748548676011480860864988000287198773786462438964611944658830791498846598882980942637174779700982659612022210141654538572545053894111107056802129526005919440495300258816772216226236871096815681539648570321388573615754356288284795344638652893725514422731908357044232883273680694185934495729430841106703767591575389597605548978275824361623235246626374444090396692013096805038734992400470834727099833509607797763131100439429106425771007556484843977214356903325851237072788798169124088186577661765001037186745721101327884362071804929125835813914981386645090955679925284342190254821196194435335867707504543538287571920592600118845065275170039472680514678292583172635985956532640698377554877227906780588530409208643224303233096613846005086700313200929053218712639474050182314377051563913675857417291942363378320992789647255524522014879603518983371933739349979356287661062975616784564342390687135120139863867886088216556025760328708531209832964208412708502099340337299972993726937279333773209356774927447206575315945612814356257077156862911860328182996879756157272842106107482277414440850141439132282815975405444123866534517774484037779801486457561185712498348305482728137508610422389479717893265429625031685522396089367096811070686891721634422616464660899426483447190278442592747173845396605727755728681924912093458384143556799501456305958313413991017650832630823579133661820055739949906041636820630607155881867678027325067567091754566613565407769089224209733470060232561075061124363266724784453483253342645805310033143872684396762203162647125435229466057761885935443334099235203306642917714719915408434905253273007506920586318234286711435134671027527455236994442467639066820877477081205969335720045201162977856534341506734038804773856096347476053579073934874467328809079826904904741659325119735311867654084753713969890937351501954850664560935358518488453271914686086558061988822550922531656794079835425887899646633854403360421976610299252517100055530385743528651606406197254374948423569057188087027057088366698909374621073920259662161452302980809139361453432257222635012106037305543607407257531464573962329811591914809154294809934807527098209519366719110439705727043748938689463501197036121904402448799848030431855780750573140494906592974483019450979549123816172674465484162099764795563026483670143617894791109747032664164331804164492983748199971270914929167587121559625670362792073948990396052032236504956675386473337382422896457851903829438086345644258621206653983546114524068739731465929858854952688042176675009434071849512784743471105387575457436152572397146340594337924318947315060016876347349777698931904248044430527208910831597043877221938488884932490221727965097921359000902046204151474244170391685031576461403483961305093671168554060015203166784361754898416355563162425139463021926172885043977845037921244151335493221700448610670500434043171044471773565466786763555281795349533482848002473751765584569364858932680458030227866655710759933936579256045837228234726448468408792182527807817985060119149323758788760550125184454430591014793976789317382371054450453196896199571239441511209554393989255869216839759265702718738355384785848236129040668971910218599216349280328753143612509351023478233959882889635605019908526836567543077820519939013391902334988219605362643057569201156126527927207571089041566945881451019294669192210324306630371224669573398898512117040678504011809303890507151610116452919686111404504238180994237228953760769522593557286068560859680735667857895197523048700570195618497998210897449753162115341909769148610159401146379983757514883933566990128170282644834363340610686834195645212867118543938089451497700823719486444971716336267052067167189598163823161670298644869498375697706998208354699120153147284099385946971247641727883209220909656673014799315870565919300910337894486870312836240192444597124066011331200634236903219979236455135119017614690121081109588467551921092652513384742613104090541617425633599326076025046423208697439017958449448359436647360547223166023923022079500355956886382167118770764546359377902518534283729722427056227110148521948531978461919151334465777488126901307140898474020156510280367712374719762720013624038843337520869982810089781386942746166814601949407750449687060966871747497392035275215469658563759982735610096558181458713673477330550196831508457419019377209111368846136415183902988778829908284176433610771408872953456039758570730982902964404620818644728011339766224632408755600051602421092923791347882890917172088665633803749867916407905767665802449078589770799150569411898878419135285116063167755608779718441637600229286326805479517514684956812036673507282251607355902567441111931889602868414158562254569702525596031199396278145345014206840725383392498378294300138706821568053652979286279758196674605291068481285710820439566816315705945099810776584566222391872315434124217719073024591835737484794382841241379265353066907701671677594419109240947170701446593733751130490337503082950939679751080918275412817281367061356014412071135810291730192582220047499590881149066934234022629936118513112591250600389712463054590822393163766849218087695371787037287551563030300125027955629117523717828881183608517239892851729519139946722377524247917852826377172338829481936464527828669786879387029262372502062742903604421767060040703588370650757770730314368864744001662927673397150590033989168129228540066710340600984427325142766490217598589380094103782542168215039165087862613484006750831670871615080234121395751117311622985297172378271100362029154996496570420607575300046437093263103875042498145006168201505069311297247325404123844668999407190435939062068930085335947102038045067997423099826249874234296594438378833467062143195299560450260672214675183826333281671011960170788306449750419404113667077848861452146827182267274837535697409128370958314070024643585248203043688662456805533780535965259917419032566781590381687328213402855068138630089241846662489180468887855542488314761994377353126646504623381988471365782957549701318457142085977095457346780054882169930444469466465794154175337528194746707075824813918437040737428332238009485725456268510947100386879234552413902542923420905042598119714333842337847329961385212612798628706821110599916314063902589979506156259804369453734052124245101486631852780899333806103195262774675884270941813401884586834777694511699454384615059562394582903145729709985584153866522010208037103851775293848383194148179204141236294887925738995519678103724422530149853701414146083093754551681076980800035479428416438092966245031396106853423672896907780905824654059002991844861890416386915444983958720360711242755021549470425451185468973247992561143007714876256787148757839249011651399567063226480786677807715415610458173467405054187125582956387838001447225965873483977654454073356498357904121484069497134069710864361863622433505412805098035177281868472425892693777592678896865482811565230520052827096639419936568529426787072136501045432409229191851002157147319168907638949443077774149379462561049913259465042874372557989616030998324511817785425637424334641653076046466265969104111811565158423087188553488370993158189186415245963260904971702796634270032242795294122785311557258840339894220614804146748262593367565971096241119257195547146282311799651743988937823220050421451463135848605425493417909766745050158816054361754304429970989603844780849349845649681794850405221383826627998780393441187618810030196784334487410754621010599096304893845465828030695093855383385232709972560427857206923434024173891284638002346376895991860999141941929829537333029547380415418461989958270320935108738587897486795582138945513901808248674665885798048768345384464375164424265701000821232227702405924972621275309211520452687793996551723338882554105541536063125643865782474775878445612238089199817676908055376929345639249574224534705028114449309300327513366423403371861838678084640482122737889677255273830735695944072269795216607769956147261576840715521645394159535903973132687724872525896510795640084354895025537516203217981801470340739373484078220135110431739717219657391893870728914768123668868517558197519776259327809049081962145915490639305104167424661442284287703908814559597958598433334989417029144732580984493628474862228740316462359564131263083628494498085053002890523924911279765921144499989081451048395955154920151254110247724118953593427514623542316032638140374068589965270349882748751265537849179268708479979551398144637639399557685352406361819604406510698030298709992396454779396608207318665633328394056364764014765483068052918456284698470437437105224437257342866946271009186078556086060869910450383103587946212940635133044479730667890346359501724302336792609745712560651114914837063269749828999066621573852508189095214835841641531255093569359103656761724031394229845367414547441803294812873451259154052360922977054186843795385869837477262431916287954244318238732790986392500652209968525661195245437465392785782495838716406850609510258331825544370576523859331027041080782821591105496421434100233075231646754664412721220691588563026924102799655304005646223277237948563634863784395475575899385632349059937361083658780921185633422033930865866506851200852690525274235931337889600138840056210043874388332528465432037811670757804282646533647280980748574286570464599949215102358698561526270482862939474525224433818744737244335386280221464028198471535463379578051291451814413646534650992360394413407753939540369645040280018187807450877718679523723969019525227384186700068648717151554189182598993834624230186819606176848864267163075439605807467953345038459470590117338801182391478243151855029081917743092786661185464198707280200549427102665013189768897712543069462037918316253925257870949720496222504900812939992838886237091244759680921319193281027962982854567549637545762973811362858118149564236655425803394612348137356561544075745258634101443355455016869153233015062080082408228429145843782312516193593904069316389246661266767066594582190503399813980414168048289289807924885499015276552571344224473322273975057939647786953043579341653861210351140039695140650063684142849763878018229701242547886004223028796137397501927886245633861037519937711110667986472182490883592099665348843232458885053073104117614901676843371261356302447089026651881383823264821261406352876763771935192553246186747037965472746712019743342963647331745745423317150085304129195021070839860687569992072425171903326296487497293802484000388830532429044020599220952482506055057460638807218459158528359964388767385046667698093175631550730041471173456157631326107023206761148656969272836901731378393293928228176630934019720897319700711896199093736782517110423974404654720361668730088449804006619903419057345593832563594026590728014238875430397506787835265098111799211246499797136817400427802116753299126574846743790931075157081115600608602009853183490017950801249862504298412438032829997336503581623686919930392827658138553152733003624445934123426636407806272290706200907927641775464411028358814464204829340788671862213476491316165773402115081121378942052527671119005516873944351168388161275143783753264298670873878509575936021761892792751769872492053047797206131199918241948135893702414834673484903414176718070962861817319976484499224928426158981015956821197181235606352776558183765926457980816079317729256295725415013461388011755505716792423430225805387831417667641881655226679671300649710167426583886440340424546214273337298746174063781508497225700316815300843073581971148704105899212657638058873074146975005025748912450734673020650344466113154638406128487060117229632517976170544581834720311814350101441512710474319149687613356470721285010155864194466587081366940579274913910250321944047362919485764772289833458846080929684687680008099881248297147757741464257779265043555261849361946167917434619884074492179020080409716478673499922704271399247880005891291186935578141689011641879745322367071388276131622754641050232020822993157770715369803849673116351288138832158184669937286514161403553052841995434084512937155991378535062123416283619626777598936489831426282880216373420330172045550395656758945197510083527589101961596106193773471766150646257433971258640165622510048833203343203868278740118780039036674169977801278712768727277584924290631388906002755719648948815871650746252119248861239742566659627702275005873721772036637290127241383045986224867662197846891355812309334285746994424668010244846210096133020892614399245406508610056028260325104139246352307343456223126470884561703617565425263988972010384399539150162629903640069288349917593076997377328058589920093249844934935005874023590463451961488124091177941714723150126172445580098428171261009268675917693453951114317684618573487529016877970333168457710443978279241957592130292862012760172679470588688796491482174239448078082481199906619658536774682983962708096894620613508032014190986052890849811778167511023394844732653161788743044513365871178861963482451901689439120108147090555034458448143785141125807940677471555306449629788064161579736970530377268163730546685585945778124435835595271869374676188485732218702408910859559541317283617142744993936382820964114897925822820107201178496449530814372766012610471324303513427386433951211483898510031257225741643150707034674194842846387195896062009679521507448697819726680471405383614285126275122180441442261878837236134282178162862004437410439000559005836229655342162081176200870522906420863545552530017718495946412731139236691863185064228092102575425913373422222717768089309658222471067776624090885746793349244947356104221348830285824427423743783543777986667119588695642103617325533934392505161926194514891106376916923212958024841146468123512732831923148675534297431883918224911342789817732025311495755268812698390052417226831445985150346050647326855659221502528413299484068802604343140657326719729319861767139063997412529247969961261949806479261069918682321516042016888882314073964810454458366514498033609214911576558602073488698577080821665610733779048200940440301725931253016650593927939394969017096191335580163104517018701271565710479220189926727711016945963730366448179319600838930283994595978130953449213373264006321793434998091961106717157286649517630140900495784332683040233538284640340430544897629857902444515374288017421260440798965071286210546455066732962285240903131275625641247810645994031809932845245389807863541002571781709941886624112104078657993702980062684490565700931517415942076742098923303070868248020155996302124144283435331902806406849557750891877599507018313821578419070409536698780076921552242413294633585547152381889681072151776719090663606463242854610233250289999990879401909439940147691579043514422715286323338310274856018028619758007673613500512580821133869711780913549454450563496500605627671618029939313230814519344296207766159770723753333986960917227691269396936962828827890428713231055694617639322357755084925426879088619925359152744852142406278744599562382112988419510878742009915695507141778845931661384707286947398701943356590953118174791457407489075612465599580134325555648135338901433807714162717408319837622053860409130046434908746243323477179349668486091642523967332789272346063298139238564016825644563318973019916500151537478312771794765067892476546646595646576310376556833039018048713112346379651386037230172441699023458733097287757234733812549716887510759908709935460767059247351241469484799637437715456826857737294153695845619848829281677879778425563433527797050365154009704539228347811080647328998432033001212239880369146570801066743820690223559375054516160038749594373499179526534665640646605777654808209163943496382823228965431750896682627743384920114174553172981841268791277045951793524350619449298694052167130504088238420964785049748849228453537279746417059118170732320102196251521517117938562414037703459106366431165151530443493878906627280430256607188573219594134803107961182050008049373376897984677736279320380816435207949881725510405048008988288251737280112527519018994288419668541900672388498542378719465966283719941539835578780258088968885370341169452125925813119865063052669401560206659509185185269719798725618742226438862990227236466337086364907247711222477966911784726459641892424577667638754827919791512215438510687525624084779536649169417819646839181898911269638902637106141581031434650182860746839851408064128468181081228264077505236656012983328976486484611474207636151309989107921969995130479503917171717906077907418513354235654614690784148604107841674941318874144933276708577015558240883522135918519163507421768718378037499863319676517594795314276006776684599997904064757044633361339009256415885253680975006740430896194534521663833013362918199875997630046948507424420853775854056995250601145388447099507184140072147943609853731208848143131552906756839225471631288376918723081965088379318319619551989957471203411511924769976683699677597114120652123881274859326233966334903180583999096444915943429781908872440952397078033653688686116488325790786574153101048563934951914378727139312286941200920392485886287432708249618265338924221137188226380028942566576399551707084570574583605469332427608759094254261456844419245201347171233130413845518343371151183199017853265311126011200344251550239108871905476442804827943542846913086078837453221222931857619206589914040865956364544628904665599070374814845227190306419796552536503032043169541335963369466772828006638587333788633808720595456995773240526910592676949312381454915799559464999428261271784901757260099773613768810689722274130145175192413317983140413109987237413850748361759573044551859564041780968568580111597580438818322841060225130414780354065578060324496549069892673098123233143566566948479312242246441874126695729898949763971174733208976105147992499463192813239133688359597690001400860954126676653636919951595057429095259982134058868841329729591749578302744390341096568764116335287502150036116054621811433466474245051431649055393555678628856563178814320169956548451446211525071093251431793678154246968316839155685395099258969396921209818030837461202524921779958255611004345720197461737127284656017641042418007786576744280490302331395543999905073424712150905595570790118276344070464290660989961087583524290449365217821793426511023538282448760305890008765045559193218604937616833920933831504442132255447179135120765350704971700828564712669839782720224139927279359042902620244299068053267204006701763902663050414092738954236917563319109385403518507506025537054472113772359972160263886243494680347895343749309725027835598545811317843043899009009612817839458941073524214529367696273420186769950535771535555367078873843967739819932445840739101996996700504333163365915992242198676585785042036898710173805812794026021809321855457732209204857404742849395811385641308113061510376459542398213177337215647294741707776152905400614649311762165288223316541546755532696756382608244906175787599954087305868533514396730411722888109522599146347829825314333869149733518646065782039354286936949926950206667875499954492917692200589777884540075374057446715023735564665166067076330270266844556840231136033256239502841653952370905457445833289933965938011333576997926636524516022579369130653184757710056987037432387438502221450574707595532539456823717148016898070007381979287374903541352955577557873443351970548819461383920591501176539397357685802592594871945192386528380021372505833144723360934322630611977996687951395286207992281190900236679207892333721265113849618868606284482863236544003893035334220887031848146066332826229741454130693083276271311333012629140803354047465859784534454054413415880548481329819199551833420025935777437982022836829134319768570843940855008483277614117993770980946502054602216086957417739270006242120802465509094495446951039685194287836718012074763816773263053870555329900483731507873313860054580139429007617361493953704413915857840769380316323730805889233770994398566002947639740751237963104918347664750441985164577962016534363527152209687851825519199445489838460877484937927806889091365529292220403184588694067299066476674163312190802887606989164092470934553246909867526714907397635354425789811029371837390053432063083165299062038225023059116789524801297034488808230304557051765490024050020357522717151683077916822064681245160547949091533059565181229443798156698713436000441412121676643405781875554235499587272097577486362914649526932427620244737990103199798213212885615994528552216487864300665949122221036858349267213565021347064632338868794389053984647430464697424094931256129361168047909805785848482187055413023587512661778496835994743180294480773905795419725664481990478112435745796068267533584724370659445139969746005560702853120852695063607552885418386388957665169460217594701876023822450577712876803959317106327366775531963332367702505529918554081346815866140541241824889178019254548049868904612875766701315951220612983431561141239199415273091821087715968348413122315084513699138325530966587702095617338909200695772379274608800243232834107581421509455006253554556807369449617012597707577142359027461975062845614878267120562454219619937543896451128344868164332204638870746836989353935599809957364611006615358144667777164154198962643297620675895563627314397657806317105896930893217898256746420421872016595791527763468769930077692048074916473250072184790568816799826731004544077738706154136887936228587581938177074272419379292872296376986996702661914195290547566338464271808728469356138304360080319996128680234687187746389603127818751702241858081140144458460646572534368051782067289731310226593326613331021495938852202016689917621670045958020983309878467748797114923906681760355741094221225279047285744477760002858264971544182413955055309265103038095952601513744473583377172818107647081769493738999348286468657434112370347159305007728126886808338566948717472353110579074024319418905796362532081172692890536634958315078329932882046553356716279772175067122388990406223629909834125009539027391856103597033911557606485203402101197678300775758590301993756415498132620315821418572604425032415512417586268598326867355335656568704670496859673815751398955333257676205938864679670375362296160725061338890291347946162034201156776953482736247819918662517442489295663259488064321568115980653473419065081267431572526268382583003045411544695617661885380378592139560505127538297444993432645236033201865418563837005307581190874083642208068208436758637624857243597712046530017558131095256316666747848857603131191431952752605866160848220559667624540450283916260299562439996119004993681575543222657524326180058336514349374241368671972539175796275750799228374765797112396416653248920217621576481418973255958394617610329369159916668579035543969298712906849889155299492758525726489238085217328980299861366456968775411594857839777347737457188961668831845903004218680005860444122244105873831599132110419253024641931227291023783425020244342787013924538112623773900706847832416913189633006248981592424448439808059235565574085355558730524641381749529037344795222768294480117083160772535965599987822714399017161349352755704770899440780581188973675340724053404676384609803429468675927610787461254225510979642566114687123994789618484310892795309037345007086701529082646225626671310110729048299792725152413418269611055649702486002576223853328420946105832529454168049321827252864570141446386743090723567689404130607558143323974553869363239215270644719077411862448366371425097117782464568378915921270386977862352345763214913601468797588269736438531468319894642071346105870043154378362000609681932281653961422046772048578466591195758154591379390055923329752171414171757282361480824329334183931732099493544460423363475809642556509762393603121453030703203481237328983494165358484088750271842983888012720275451896404262587290535497782042612756180000305295838949823273269010200708067472269697738654286827100060035785227237654931541314923309429548545238021040945725691998319789432333095366020719234871664373083912734239855595655979500392334345470699867852145340565771749913745426190125603869747806068222816204732363582760333886331849319690099746968958858011021310533567324116354156197173656207020230297477047826327682677389800616458182601989004340336983005354687134835910931677606939861947818220323622875101941170295320778991397600248361734603525071703401676318413842066980397958974131967951319598501634330938463920799315237763406880447583496811592623941000241945319684548986260629836215783645942191281015373947103076867049733948060774428217334806996622246731676860702106164854003853878374039223689155109618443165445683561693469079924936647177960097640972288977159733752947074397513073573322552570287954253139667476000214329546851558670879491840939720858518431641513899886071809743333706030696265975952455686838561401019945945135175167629022840776626447285545782565270741237906013584410238527893010616194468156698710214521688952009322128099051853738392240136458478094236627161437303376725569193298589388040056109067688012527753929698287676246291944990093840262997277679640117741922692847926348188585931750604049401039901773378277187259122229725291589207990258875059589549971551070484437253054860434032113798913597803662310578863507146733459243535838827607732119703774598521867021052094802997365584771343941162732116918866847178436180297112198005701720532847935704923215717587123942704271706300314851090589337888501069083082972780983706136358486938641201129178008851425164868966502200696240726311495751132182220270321488452632470959459447837427906338589551156883808443125901861837948136569589600734798594239602412855956917218747488813769079689304507631925834190681676162160172066611386708913320889983424970296335203893848086719623231005230566375246527162249415726594630358324090900316935672159037087558870051671935469516436881334037151928394233834825749082754459272172921329763507090405533986669048374748946253236432585266867554435293013547773612671933508102798375655196291308943793031236305331380474947317002131429868922611168834387460174343896882088052103062670422431181178243368924130533049630630761263605821210994400720811632537824793818485911329401309851606873663974370637277780077126198855491621269374794057024905332759216784512831127396959724404261854099279780526523925232883511945353386078935378683612199303219520830851026163620808863031317293611155642418761445868399075585885897993382965780385301560448588133733624207406396524154321436536088759359762836675932815185631878899863913861499323889176134258240809062474471044023286481175639033457787182976762053623494158258874473813006487562543841118665685112473975883295606847162686207234132750815132572529119165691922431280069108739353026429341320427153782335839336939520532956774060901678984075716303504957131781925074768660147198864849077898032679295131783791947259373328104810053193368372833230019554301529734405569689887242574561508136527630554795883391423832976339706895408731733242790259940904487129500503224782078411572544779256617064145521749963720737333192997057689371014642786605441057964116786536873671246507931947716230426785937945143244641901744693499212427512982139620288213033585785840324943674334909468510453102394283807406871609622355786753673883440686387796931981908096942859419442241873904386316064584325862826515612454341876509079114880734574150241047278863519075889254149029847440626188517389486313264137468672864547258742977340192695192912574134202598696349729266216534235724942834866762134752782282627907705747245099327124668665505457398616520625721252731343756026929993556305070847145339969593409973053466784472212761440059238217085677890203072587130061396648832569918558969336661647814784086567838529161570119087202110770074633998350942676151526802046539397883859116182763795811766373197419336311427059483877429563894160966574952682310385540482562519191267627793654675365212250765505638473913090637511635628788319995585097529295659312262880497333634761621805586310695089426214779821173834547706131008204757517806352745266765081606432168519454167739678054643817408889051041833956380457104154453568107160639237643185956612300494155150869575136509172013700009860031682931466210867344054850360736661570717799553716011282306211008190088818446131622322152898314774307663694805350773185411411096724768498160260776019336538743103887364804752200238802531530931910310556314253811659981676084735788698991565155697093666670554334420662955115978334702407552373028454648125260329399466598053804061439503186124114642368937715814522950197376978360827933649464188937188472069031676812847411647535524894080145382163906913137006500410729802380793143289220455754027715157973546806803897676028200562057413906386902994800695977550662870221807659111136074168208334051542098761037347722961192229143443961163175824173041973757969838211562191121886332758409620441704883099007071358492712481384587583744597612900850329752069434466995980046839748815452970163095992161326394781730009997796396530299266273007394310803497425711980476544207579864468852152220564555621451510570015639787461285884352096074829829592549288645088176571136223685625069242444915229033588795104458897762718564644607333251952667083389253342729235857420434962375145903320007854545887499111570145098744288626633079403802543445605233850567490322192041281735585929641008578694107294321925665690546074063411981772544153738459932964972577881789205486345724712184220881767550048686024616753160516676574373879046799362557535211706351672232791185468658279208275038077867861135124434793574219472455665743084105430430105502365986185027736082025853388754492933043638083767750932673981375608344285001948079709152619785081473736399681477506102673166065684794190699780886189710959669391517149304234600900513036989713024372864594037250880234124595359041922148213789899260914372751530002616389687259802666724234512769025668137473632941146094892026330778336702695186636063767572745256258837709832667436513112249277779409247444309447052976489588879863780403701986859736788019085838556180396595398586396861097575943273880716040784977306919650574365887284282226682775798761486279820358046821486157881657155138270279048247395808621479518741640266872268901625107361387467855189685682152250214720596551594430312423759799269591953096024547973156657202986699693132896640296504814817503460647266914590834595348339605712592994435590618838871794876138759795989606798459788604002402515538215876877790967485352264401106584215899832806132837549166824923522153641302657981880564373139049856697455809602471423335152868752721293057519836177525805600633041216562266620483163279220000097720341992264731748156425264627582425662716014835933847579824436068708256730266102976326157979200142108805933424754901133312387153554291315431789261928553716441683160515161261217401353063375157918023660275546043673134079157640226365154507704111249790363210285834235260310463065497354655650609306925461058077587556038986962887036059973705122746270744167481258247594923256966414651797360044259214790864197366657088303393852992791803600270713297686828662914750636319339978523289641652999753439594104831600105585034323863054633933636597241642886643499196116606309635472840758452191868427408500127586643706915335379524093002414122056290845042433690271124082222861537968229155869141587161987409259801644215168170693617671559188087598559638366438979619581990253110451250579152125574131397403200207548204783005448891420530172218787231314351101798493730283548622407643228823522252677806936866165187163408051936608597504269419548166180208296022902202485464987011792849915098166134137827277114197250628171792552027273333553882603587293440698717967849749450523734466789354029018740525233100220636982774019942915088625283626686145074296670115309404055792461985247132972105691171076883197605140472697889715673117312052951148485622587176328458304733540375832371539258514449585134275715056492449793200789087798378475741492081487085172371216160413036410598215869715151278480994819080461851314406162904541876786719082602096529599205408616740310027111464784163823985704584692795211791995621917779485890194664357746370990148907869837206347249340294883163112887849134680784777295038788151786335002432354459998858763439656881113351702725344362680366206460707518880597407686140913690468372102970169272556846007826182024483906515633840895180426776072174539252370976854372896280403959414575201435627770067749108145309391898219802498740169441079430775307836845667242396550906064098832506767753390631395593249290299713107590644646445442631048365512361161332007209682220864561459545238719805805596352584405261529832378788554514168113389218526210948987076027757377574402704115678081742570467949569296655765317369371002686610812083635963843916682377410508228236547921277500610679609000175083224894292792811100597288968158016369960874369968017790356476874260391202245650431797930824854762769950785273480703729817060924260851491613456472085664624247957084990074581015264732604390892017572747302576709646830831374199438927336033027666162933035649863203629313610901770641666865137687130293136470631498966658592546205658531947058923639959213236095750464420863974214215784844176713416347956046356112008927606672121587807248467325438131237914613801155474760494876812564677494038608231885449207188062702870671900669008029618714051168556556186250825507579730142128266996857379014480232315224499226487995976020749525386403245508572801324947586286842196457199634364239970584075968107008519152131961160496569399380302048770129841935015386405084741221366741919702805381168015770340799160604022586931540480862041350295200761056837070586202119111118924424640754397682373308321810453170689052135062218502090543997038828155499076145580802900954241195720844270357208734307940886273339571102409018110961780536080378514113806474774040233674408571741799700198649688499463763197897302962586806766216661149423542420248796871957549382137874759339600271613722404713352304065528229380574243127716030681473539419585945556756630362426722226594484115481384901498985148480506975823351297880490385207917188361082277482455741414361729500936892332044266277835188329334935490369470792795881416297245460400257444133587278659208303617393309734764357093121961495589706553539195936742608228298628760401359901274682948615231219113372333981370509370988173830180597383779266759147139478171256309436429785539549120686460298294774628239895932609724514227277828314451924003571252895362437001440645014101163208709420344093625954505244163390985846985437685642332025087027977041850045616225824920637942884429120989485588083695529419596579241410308478192070052656637680154271893190689537560088288615140959946130424270708510672240547827016546254691696696149036678465807128575988298373299209064088061391832432507549799657766924413163331755095432378879822564730020026866789157027596707433991741112489472954106132233608547944573147470404627514271554818171632681883278139723473884401715196658937136645743806873260350922474582694199691075080691860239971288985138104309681692797364142273635976905770470845904348984624882272167705444864666100004891294849494582101514222427175553680755820823516252812962132675307617290964873788322318655260904984279301763836217526244103799877790335586180759620746572711133139539298276666938494089074555290565965063720399025911803677674184967947427209899402759011542104619501207305353565417304622843917560718483227989313485506677195697532044103463373916155766645533550716150236218596147237246471949461103490228483388416365935759664722864030441629237452241807206790919686608255495278237727308085302086242084312915206090275749589387436796105010473348482762137684688921077925588016820971218910679476653745990515365701804969373781893143483506608606819023440317990975367537924381129498322620366274712574857635855563599253902668856518870878216801246443905686783892904345795907588748015271784457059787152970010676393608565541634360070680480866058668149360222179174163221305562836023281415564574958546358298109599983660551128781965428754290693134740572078250610486094800345781404806572820980007792757511958315442693011022279740626960840334490095711218445395283130485943416227604835196877719685095943042368311151974817394532866893080990573390389493786968658408199835609688680679975124236384118843290689904067570435682807162499671746937913862448198167745376045950605510732765079214158739340501291885937683591524299677318547816973912853928048512787280927108650892459981210306021172501327470035844493571689467217713689901408370710674422287578314118776111243629501027795568589295579873403111641530495571842828157110418093269142485400668931524065929526778605596715399273311390801001567906473640830517784735184716714983523947431072532922017034649176863978849068233990093577579337872364215737099868539386657594096565188794721675379502221148058553090472844724333372856743834404867911379628353068644008148429254007663605528523697220370145515411715176722922813695490285103797239956846155183124281085450047949322316688432238288510460728781161449314657752274969269691809448676984274558513473915261729822560272085710996959755090314318997971809624188245078818892624347462280748671612919124813649079572374152060167232249193769921077144092339432234007510690354345127981541298364833736576659045675956045486215256843478914247670231182466398413964727070389135271845008659360229973759223288634432638706534430522864049116502826496229693479325575699645745005866260223548417615302694611940107825371800181021406104521216308751612643830476219145250060261176559073278363124363252509354487736024623563875000143523309009439106843467822941959388769435859970424438677011462094610373269826840313392147726354238411921406579647471908009610254009999573187023495527698620649048524471976375882105257608139950334777502281086588944078794598331519007412862712923404019630552778688660169713944052099282026308472878594427306133073965959618707692319140101670706701790762975114270043131228842737386540783427440193225475756969268127946662530780626843303323864445492342315159400038745253861899791398009365553360108982652970027306077250578332795571583440548689788156506523995774472147622582763648397015606663099154948382667831806812273030692975206250391570280150842086788463393119546716972554368370557598073428884045924619682268363465174718910186592811377992014853161346974281946061351756604203173355048941490822073897270825295481036450083583260750279668633359788827475205432614733211615447171829045156079895901204758099833477988366306745935118538206160920762407650048546741565566045568363489935007236141316705589122051971584489688516707424648628317959289786274247886036183315348514462687153057272986064140397863010018872146832708677204638107428358369664528200291810981264021516238610898843646238502737496590437060889139378884035366847975238167973407091821816657349102106083834206261004836409585870863356994128122457239458090702260859478134912786057268013614547851843484288514582454947865908601901179222895446609391103287366301426932164911936581918631698312703243473678902693097558231165416570556893645547845172148391103234430706917243882430565237161455727161443624115777457047651587740625382810222171186346408516759844435937368216204048972729206069210253647261367192848170788384910934757376397306363801916725663869050992589449397402078432167105516767296318202165770531219461359948551619907892346731805520212171341359474793204278679698701770608404454902464327874967842215109634456754604475994421507199831026223129567882949877469877593407382901063582523415357952230097128758355595628804640838697669822924327037602060563515307621394626671002156526124325628240591566408298824987847169321505404808753286855638570192214652015281234570731174361460614862724716116055274201349719391793743176980933643944506515389387050645493512377796439197981864934837439593678757772405270942279423040014578866429557923826288639653256582650380469076371705190141106361270869815483055727719795911939779015818944652633289378473335517699568029177949185783844770701218162407726234852345422296132099144904666180175601560960227674496083588585581009945951914763761585019355276765774037417012729449390382262433935844647011356864181357884907636583377561812734311192574565194136101921551762758885418080611687372472377477609665315334442708529725875881179822385923727090061245733257964705014329872259222824657339227007768302230415527959872056663836444200399935798129570769526339040272389055256621364094817445631479670325077758865974503291119312121646191818433556828878376921466005937220276361980381329411291769266569842859867741764278552033649794924938336838345644168310025006897067777103281127403724794793317494980497341031213002287448012508899169835599697650451062202232043745324327145990714053735374704577116480165935954934109249952828769591813977324259188941995117280687389663763041542239516802803812065356751764520150123428395552937054605819845577026407547559284309347488132888561233731804607186297454294299482635446049681872008384227350005141836226356734559295903718638752136799723869903959406037774411205330954188631756119775012993678553625811277689084965847059702646529727614289164461596431122149021150543102602723150292005497039300480678877676079472930110760595562935351866152189646862337370964916244115045080452512398057769048496388406799699537948018379799985468701728508808963308553460880369802089711589662475706095331175033516879583031908691042336337174474479076470484266161574775774392013532348077542615550831802761389242660474521093319432289421026524902495037045915335781051240895262378311250179734546874678578973191089113240952707850232610632898174618643352787917688132871173641746593383513171095912236148048473915332216692569843951035235932448019928838699269392622449686492923390660073383371984722998723322275307716429805873845277552532735705427208243820086084513044237049891942025068216566868209498742090246884763089811606623566409261938134297451285105391364877121276716269527603345750092111858528579442735846276185844029564328828534820583394583607274849373603087995515911988354615472706895348741334814672611937235838262890782668521611167350221577343141083264682556745824883985894772295520764129374844754870284005283861997779815759854973159841518769702096766917370851877976225377413961550653467234884146491255084950843019942590252575084596533209003270480261166908795055965989574882836661836696644993499840743705159958965462695826573552526233445300864252761434063880562963577046985855865613867773440399801715273406307261863233617178031004952792147313572655654318041913439503919471082850131662550483963675672029067158602586813360759723873757588572320091846348506951171521625950937838147727827758128102063662542652702812123980251599913680028855460933062398432638961464472535367961404183296617123539258576202216389859831522565280512026671084920333766859429336257261279178478870699807630324649797735443951448330340305659779560268785772729066947540485638353237063477441238386100592686370581430195259326937233612980394131709784998769269807134857854040156737170061462439594682110894207409762762013172378471611025322228792825750367491245269976343328025935653508014308693033500574034735040469055815929251581316688616188213974283614052265432236989621170739263552399071090873515345883440929872411812932696413893654299461378081596145327954969407577244681842103098618973876685371724542679189133146300788855525688455937919716387187415796913072938001258427612010213338183777476218186539129729132220150804657789707721250783303281607557419331728645483671780137410959415848960358346338871096847799482436405878249108323035964914639036202168061917915231261774309238292329593780554997219322892607707694807941791844506126177239838829255262555379926314692336873556383801709791114282717969118465407510207844149233421961811248961352712463912754097811705089095521522351852456795517479508848846794714258724523512758301348845770743987538829077915479384913724810897737116976223728576230717495805308911039693223870131071231803819402107531764987657987129704089012813689552964814126824785010950086915423827422975664693323743101540767188540200463743428793182611070436301501206696933248757984621465516163567996199188728610938323264475001519578419048098286721600700229748261222125641730733153239915527404488170513084924225098092638055802937723212086298862933416605467298611602638836215509440279534091697637886694452801746845541523869974239139671892544075277437172658163909390550739375111395156398021434022934785632455623893350930619169506625076882171585594590199490055356819504613380407438346195366131756586600913719761363610450166153503365294227823226412566277999116524364998840891328877846813699859975818106439793408127599706263809520656367605949952941077153217605089166841727467396027550495575379145085508905605322131694480530516361805041753317274610560709088562164664571741467772295590110104306563321951753805163419318705789158637283020585737982781736523791551104875879907462523900896178761382321022942539695031974699826143635320457835108146552623720052109419265348270386447540995554624309274475928127234728352776701545663450098620519253799580358530773126853184463283145194302972838845128300994704386661190470844274975240903290506687207478639507137870428322303160927890304970773580974897254691191576177220198343329686713762503799553500611617984921378216583700233874227191185311473403266649845133367312727284577997836464892947729637095116494785311453636157234753620931210381271713802965424150437327094720961372925232515020782588665614130945463472956224049630189920251672184808353095234719940284484133727594282468938684456501087226222269442728526138821548260098096990681145517200411088812290623181421058475690030733714503388233118038365292779339600655750218418134819791589787192530873703662601881254244078329808541315382828797419769222973868155326397619590881720036504725180379329647800892890944956611440516250306285332278083737788159341435598056619613886741888613880359879238934595206608320297222054552778112588185780971951915118442378194839911856047832383528530303104823916901962158012415824469013799202985451359867382518228998406775972463880296848628185591404745500092016412093744260312792147377064036080535653435179721225511162558422207400205758526704589778409462687560645343530791112512879125569596274795367123754020078491081404531908342195838059891444067002037005157824356462165937454583787018702051618293897498975312917153744844679699430275811164503000447832003271981845881501766478744510144405355115942088071760101168323126149607986597751481334810616065910876270690850918716458349779926765744681572461305805122663779375843814232662512734260696158529364981279386485373056630392095276613978506444247586380526712421290753654267019670899136184873820122926771957551811537868003904376479770103023758052933079493783417577693002705275351054026747986505629751818652079865009882256085824696069101324419274547503907773018351721794112643237338223818741891233415327611874928614437175976021240230889039237296868095213086239092480890426271501225646612143442403596745696796915424893978243008992387819757215151677017195091498808629396711730682477811233163476191229982333409506258590072148548033268017370151234925385701506743295935319195951482199677519116149303799433952253861956741920606647097470600412687334471331916280214296078790988962263058828059412743318797395164844921895116445686881834452804972134809145524466940558851532641844694069255092789375321555072318346545916390353937718401770257067903095900037476250539125153784623978871537052449751793187918944242978080698414073276605426787560117081085007572757873098416073991258688529856067280207711686796980129935548251039195459243373805326419909813328275212804785155276686084318448149168409361702586396316498242409510507462790753721578933877118546710269042417366788328599933898302260522981071581741249020525555191194460006146413475128067708527671591758157661243322804759372381192308451064273289880554084406211768218630038676143294597545590342143666469062901249983595206866431127323393912964207554117693268108864926693182697877452395245023005676090882983864866605575422101465950029557753811056330646473828625561530109250809446327062965907555511294848716338511856807661538943780565596143782667002079375966890372081996248799051376409245696264271812970409723487853615457186213070306052747946511014136584297312006089376097424385141541195969240071417409009129237910162337995726991730066854302096003727692973252267461922225853433806316221067944329744577017679171998976141452406627938001706218794995045134220594066125897262103578811641659565608553160073653490921690096386211662199014349145642704546557820108452086487088534923954232585000518600482794470718962819275768404400396278841992702417825466533119514404275523360745540792644408920314105504027537767450682973909189297890672133607523559760405353529443449196206949826997170528821528652468732829516705933891136154756431084468593197893895872739425991324173974880824216814614389149863080921192675609281073799113446545412804356828362677943319065219091010162023064619550125807775478890269511009756778885390543291039467909946247841003773463109885807116383066955674637207917645143483331741565099531211390024099349437820833386168390628128866870490391176687474741162627686404452028395445249268093628714462871294658935701592954633704325505966391975372471791907039026738818207559325744074220092610381271385507462199934867972881681570037296338788770587446946469552061280366912946836890253415509206390287835510274236318422345768145933269826203151993185234806570825884263156103346549293101093878124300747489362750465406874447689558905992930322821865959916994089088467649591402100912514431698073513004454380960114946617364454624447099669785132238295689265778893124202053529451101513800718150540690255832543897768454817749284354941482822971343462715087824151366480776930119410558536650782605533439452817998981925872005309445520606522160311884844846381942931657203535786858016009748523376956056295545311140809575620317287680822218894121512153651980837945686234707954457584701008023350000526362043360815271377419874338627192486858250783179865375692551377139628557240127422401853586310841250810819121065640383282616912879250977479247495986951311650491703561658492749470135636803177493451038879504644081942200813371181445688958324020460798122047822143755263558850942840629692359971703147957302885145250367760239156827751323047160223290660862764437029196456699872479558987635955041426653718324574721470667571612909614536739600590970480380821764611983629012281621888473936408083636661433223332669516298625176247045698010800715284973272073648399970937541637495209754842005602120093929591234096940393439086711349314992251891805514016880114125650398196953735675009903703687838827440999984623255192143541234432055840096048602331947719052001783156917713933759711580213072994208252027548634361384657152598915950161693891393011891710061427187565318586821228596163916031579982868851992582555070008475584067324268206524333573576488545220391668066549227122677458579442008581860354219473112654847216321846123397047087871706725006114283239600988951745971633611738337527123550793297780872152604005563572181457561315827999747157846744422386729544592720090759159566815306406163484694180591422622856262683602588997805806230842172526369556638345627521794666673671058656393332969856432265826892752259165739017933761159443664493193960252581354214810977416011664680235136022587643846972046314529403125434100168206237505962868635061119820621802071716330581814684701163963924369292864981098585269017794741937137850152511449184131249422662727179603197257564540864569993834026026663132103453657915585010444368800852133841115136421601664175383737736600589053920914930594951405627621157240570415423187620829370073967586916868895372843194551770619639758113195724924845181183466766881183485060700686574507152624694866572874961361145870287465615258272853379144111369488234849625038021858230054128112173427657730990819677404943670482197959637205400875314100132555061934163076464661738152394426363314399858173745835965941194771467004846855693935469256592714569134446035256175124060653790189568692380908021518504044722050419857552350868011049289505152353606503578697119843588199160359690703076623255277171144414679841320707108066844278143493719542435189964081968701292129414639443447901305936789657504995643253221504716803149887173424886434534998616880732836079988859889470109015261521795100995274870207507438327105846169732155888813835335628793960028548401707869632046765086488511960211736495136818819260936167358516210909395449523729919214580511284333672268449937819350335730416537416648199634010353711629531154467988690145158214902056477158041048126937789681264110174726054303803684932366110355161603715796306532042673009465168299101145375945778638943875371838223815328359276074498430804759918778285220460379744282075251818078026514113475653213320316412452355190631019640143217347417409349372372174615415858722317931062241897116156053055943255515735019854570465612801814059338273677512062433154676222069606317795957786037391888827740649740137470504277827058671807760682031840251478014725316315418130688150083050219782135484903316461939982890779940090030212157319528414492728627170268686433596100439889912192953466449550409260294429534508737838322897594289574494882512777612097121056409279923631965188606966317865716847598253809661175657586975695481375149220825139747611146262586020379798525144530782753961067567491960875012251805682636426149235558713580539704007785502837822721839586403236473451191599525182451544270004516754579494304887360206764570465593243783042002942556864884076070478170690175220829127779362764221915419186304264762288403698487066178993733152799413180369290966376287560372626362924946784173025916607065938242876838930449206955799745902425284825896496771957165985503103886393026553765854703328344531525864934914162241669285077317218379862682399436127049273475653808414724789611214340063172544166525969580690704249528686755254317484052750599902044294815421465518379969550134287635738574937018632887655102684157392151091337444453183988809848700932033424676150603740870087911034675777151968838830268604586897775052439640260409745914612184467416585753545464603893511080403596776928854604634110146109668573705786608268888854381532043480914406134075559442601053020321996010325395666456834882966985505105304280994847795894604590290260174776676323676421393553378123790619986069157150886707397802706543421119451417712427233536123102839576377047887215889900887751873474583844619545153075373397432674904362354773658268234423789822435123027598185179167815185057490323594443287876779069765618668585786726788176801975948151231944308210034030219498033697071271489401484964382385100942014895566500327584490502632241097459048331168428062621906845618336605890300044748626084589831534018385634834260654701058861055038214394534998019267508155564661714877903492988696503296762260183814520123901200706017630666036612619849481376020905739907543028640432815122259525044270535475182344459461031029665833644846276994146475018421319874198535789404358120470672515479793973446417457377806580009313404950195062673113029515440823218693099273026690834596302051649144311257045794397810984590853747516105803677491257538826278825180223453166253712658937953706132359481222088722797853312730580237472371027378158096513712139128580927654135030215601767384569927202410992043060430541154194832502394500136685117599648299535545276556619430930940144481823813863637737094298751493723090855515360463832306790337467002858961630602223386284927050524705502278269313861240756554329295650124970299485424845679366184890000318487582858709641819694622163679267387822045083908013751067884810425188025662324536018868021547049179025126348487722415341064786180831458516203593483119256722802692302247181470008757900508824732096235153706985912505044721767426361978140307768740835203161379533498924967667423390400864833968332985844565462871648510352774978176923343367859342944873712980588170578710556859337250943882734354136601524924057198792702302263273998232523098024733176003629727375829883690218135356079742901005710190093727963581423034218675967005869708863366301942723368092519380378125086168182599946043134814285324428667663516881610763057176467901042145865816446236392688643232272320723383036597373826695617908679665795732689700327703646281966259831301292354603567320806696497083230896581369378705803221768036498060602566087325498865551126932474458025695600824833558033595190083262488991297076646054258739002821915225331838676418393543015512784969849270276754546859430384425024603582229707771224362546448713557299434531535570847061809918854568987602347946801843196976731212318384297435894278341152126464729949613159672533545739091539133837803604831274682644097399207711403217104885074955960478432288906436006260755932738463214437050415993454980498271649307028566224995053465860844434633935960984238723582744240024673291089724085620511951482359763552948217322750294051354823863311240402367576413689807603093364813360387223777672909472025875118217714720088848306517877370566315271003394786729288058803703765574706377316100432972290816267262821575924314522647970290886489473497384523985679207268342024208915783686570878792477715118553113962318456002366011215866520473919241890182041010545351340151017801707390413501193904209553649155409252419738396199242896794730529201316447917506682790223667439999812530519565874202556114234937897069142156318526259210303309676669544257834469619025267521110692132927122138483984622902022756345104991056791104138406358953143011118503323409432428256433140885594673540118245292498759016951718305295313158014112255984516406829778806567996964179156293924388861375721664650331094862102790533936012667385121223424054269162395508469723484654581179607895757927085205049690636849868623854575542549447204764066896713459619264598314979600930252158929982485634516438669766658207390017379762411980907991706714047045341552680157184771482693471282337843943799448982701336615887959043246204148150107714116696472115231786431999313260687029914237005843254070578471670460190691441585153254670164510164847766979483496365127153483086759271062645484134879315000233176002119652773402428497379025228946199337142701771291803687770921470659776351618060225979497062114169442659821053441642368986647528691512817385026638422752522631509444173631606554972253521608862831888807936700341772304680218789055932262906389894790526100587631642566111918668447808649035567313150199185590516385308968900442454743807594993474000404266422935830121583385561710205051026423104984261895630320084077552438245594997863846861570871392086299880067977226461473063261103765545432966432864332446711039486987932605443219489692508972259060894864269475032620066737196123696783764298487751249328424841096446776146579990480195514511794855503818263161191727922661336492450223851813016758226728573206119040000042748694937388901367560405378556805320605152683563870773682923525280489935459797792314399921957523077106532751172157774497673048790150277167301616791677495628065286113545361819382459840675451747109971536584238081573819108983986145194920103415426351736049291662843126141901197519660016757538613068861863794399909147255871616940248328660872801143071503757849871713389414591636795277014779949535963264757327093725245301704496665918682429985158148419359405364396987737748044745597975850812004911549236448030743674559681213985109553240593376811608090719967699950666895539236746222310277253069344963851792590290221446999492542061549207199632777820012662277089364330475916184412182266552338720774370671576828120838548201549381325826530536799700723032844366348028292865419310358241192870011533735263671275468665724609007450347157860688811530234037524677424928259896863226832282832997283099904087017290597085374553401173188405311630372050567151829991143229730080997655352836555591019691318148432116191928458645498938209944062528166065703609549631354064822866672099154285699423802128131293629518926203995401242940735458716051171026316895907116706665246723711593860472636841736873591049750130414050212887737674719657152704038718263671817742273411150221652598661486795914537727475252661432153697445218229295489239543213762164822982639704214376892387863806131494839253683530206399570002146194635104064152948750216103998022064962084633042108419629982996325427690526572824369650266577580098393735739184702603918268517576516688728823660021921409488814019644241233193219778722786106914242389055143105614149209414966629475417609613767599036298191321030819504192621323238095177032561525714491617661145338965112080312916879871543936052212379045240819431149552838264568671893467991686498791819116615007144269513004772181862353971617983537742458216989179140180476999401297902660268504112631283184750237024885140559620860400893893449653797667169087161309726584124301615982472401218026387519275381056921920114744880777589294716713762911876748359627495731109280053236922155754295209638122205745181796201650629951823825154571604770128739347716679379058068400170601231980637049339999457227924704533881659725473206670649711434546114191598313167404068036367857751338897441717493805146791750278890539459625644702152243186487923151393023783461757120803533536181633316321388300592626287514033615376126292525388975110200391550936735842092684660376465514108660218695839676079758119382802393188197837200857921704388873888144515145379262635637142437972908554348671617948180182032602693282891163122595307751683056436515690542073164297122739743159499992595682575043145230957603973445152664034701993303010348857024895693651789531788140301796926075956219999780414904703209479658138869811669362922322090492182617624016773396306369602398808371380686681120109550976080011502329361577964429488593027182588981903653164950293608165451071531803696547706324525935499435750311647874242934831743872209473548638953591201861701600475084581548295435546966086383766311263642024654063646210251709041662767949306005641669072023061893497428347747290208786624438380091002033559299114138008146813488715499010265132868039643153915769244155506093152170660059434748979694857031048984788031664206380718473074230588782002802715220294547198451775370113548961777589675471853933353158356458808028943714234689674435936409813866968558683407732864430951649573487716559588442235905345762930842243590151952646609446298083986558417290817469975784099517256991947525300548538476790978584339971402402846086009358406909820107628866507593093472202534706621242883701414653809162519774450680441923041709326542730868370143144929465963802341226130010832112004462813614747279799633742873409555735636851957702421326735703627858568000421287840158893150554236846338532579427262343643877888740899485563283704541507769426872220487668673432686942295215673631489763638224190665848721143052880039133782153046557634540911609587233416041269347097082674470181864702017177873379935034408761825749397577679569132435051669652786161688294596107045143433015794212891773018912293553354035517094464088233320194927809371140606621121947444236102701289670934058882999869113582425081587830869683757092953856300270702609512757534688618787556634629077183748305903383093478298983517576077028298869702610252597922909517460117985613193957432566295226264001667127383392149746615878166395649019179304320914959057678909981941412716057109977437309436466832934475376374812413919883926939189012385967568119149486391855022763669530807885814989368507298589158454000823065830565641892817958814136846697713046669757611992761163291313923846729175353084419187674192619985651443800788063096508213701663263762062355777664910872768970094923171129126182080564522002617076400278573255218831153964455512353952469960821969779776520879756265713060833286018537128176008635472564517521420782510567613138829701261051945043670949405370666088455206895527827510349064866508321822651994282210895743775184657761498325370347247018329782477333235293162903928523116087695836094861252640628313353085121326668868803562166341749802923153691455613405550901099113022134335155073630035297484704084677843624846961134123602823306039887008639122725777802408867573749434599087268658973028872376511904962379810748964688977456209982743960727999724670772982695010218501061615653803979360238114606826973360144448846223428335969737709017388962516364873822684488842209716507960250226793090091796259903243307911270523481134599070121117807321739614628417837947976106942477866227022162528689230447339849791356815992549875501145448625986562626546663127027975691082189355914827501851723055405310748618564951858316438961478816577716566153621159035088178209778428500211822524223502023788573794227571242399769145704334563277053060244588573836887779319491430721852834025247289562164591155526088494899640484543904506185919581321338157808819692409490472197676526463123134943916791476283484230621122934426307505771451301705376151576191449384113262169851379782853052554388843461128307107425875348218235588150827842538979172300955044659490688248442016093002305430608211775924307051452406844039233267391724395008070967752834353369132063997024199097143989784828151134532621670031496961220677826605890541864268859233105776353916159450850206916373350146723353483261989864664909049541652018761178115137326103168023837969780909266943439208775381749913191505406053403179738052537178180078898128174461258027894806234315174674101284334380302228700240704632168147874865971752885244042374691611713302675521181974229761693634252540637203020777228692210994049207880223114247118347839625830826131116619529653816729676371197066957220020451367627260513357094186854944546175380227747301958654104185010629898502743156497081884448705775920319561918855414706883078168236146290409507210905195672954954128843568899194597705296318968859256768217758260635032168625769432921766765213559020100387454097909355239339658454197533133233237028811254591540859424424649082925778934959678878982555851566870895583082380531065232297704758774882186007884322532908963874146711848799891780179433822441185656207231418695513057587815518951637327854450003049676328615039418065763360838212776188843811355766731182821818626392411365876564709501713103190670285471101772906272407472524824394422503930031666831241850805021731028985901921296304582434785714246991808223520360107763084630809755106958460666350363079940747460246926757445551244365390168178806461962142262565493358966640818462875994811858986331943973987078844089810236687460317600124573869241491796068026200403851161130311452844060275229866063404238698768346457994939282879835472402626840197895164437729208117124112749125144197027698948256447696008491332278197376100099720173413752262322462318109484462146441300294560608749595354397366221523349828861704976497447076840780599788499258860995692588537462306636759050517236378691367600353101742746311497919645685337517718676065548450718372742841200918937354874242172762313591733610694274767211832312404814311205196862385175860643254385489769350215472207726995351992434446606384421269390170942710017390856129164631478199639584550199257779075291013917368475824058999658985094044776501899421552664404319444974951413092991713843454397701195557330099605156014056296238072868419816180422034499213369896013148027939288471027536912476774029058142620052590087880902498397834317760242366387240376980306492253538939850001743982448168944849051239094545500255914727324788237517000122902047569666465419995994194036520132330030896767242235074553390417678876699873594209783881855934971570349417193200619683430205351569117707531554956665242654998536355076578698257801001299142739311679559761010142576618581673964773565830803453388101167457433695685700960359116135281944618501957513074116126462800695648267871089019955570690846949999153104067909653778089433880350061816921310120583854181397622745233613858372726214440752219843974002331234691914028448411258262321104197637655286603931752213285197682075554192340026061686574293703367018815699143927148435572017425417364200311871689494942938962638238832642919199856696312820609420237033091503322284078125593477023787758467915092776453530735024471893985277978812800466229733435476270181951400921525542741809183461893749290239544039700632269612141778036538677430419441462951315120867405330028326367605134847907389983672424368821758326892903590355192211470738376350038768097405514885677532940761969501561641518085886312376145675355554337345338557444743635691079941265617692982430711535314580182656632150338261653967232050213958396387078425186472533353577238422449818422249324405179652842844294119201939778832913877421838925996833640491827689688981116001415088380519006296909671910706799912178095673249364966456883481297340955707976889093733839605783134429010410979526916051983672549323571597328460196942621639816292778646943647250645196383288086990760094031175749350980225075042194845517782269853379045552795698508204631219785878205944948963524736139588260920904899729693514775832589212824884819289269610118404675102642529640906419881758720954331397446299137492844055563902312748749423700285900657443732703743773651320957059843009686590560146264539568424120185712972519531446012620255777872072493366316181556454003701165674095654176432719200262548643322839071230954647722957132074693364172614995865054561307769383494121373720509176068777084172603734922967118366559451868799157609289656450508648492594969673439849476031098090028504253740166070452001458133636582185198825203367697863315672928833960579049133735375555112102982242411229232387885811122542946961751615415038382838475730118188217295236375861576072885375173760905686402973733512109689398018611974250182203847202001089314139624385351023239617764961888937477503831052049787707649079830836790244618479437300468673219197541443789538636841015031454990081455115777439133840183091104850556541986016069810740997441366586576149434210860560680598666833912662850817560457553833160742250209207216974152289935352062284746519477432943754105054638399310060819966375767202150220751627775209691116144569980347235105260691661346235161394975216725581374254743867078950845013640264634133395199403084027005845637979843722925065126243305242184222467611214105859621347930914948611544743636459947930845552595643055951517836798092523299664783137795716061215851525995098952536049660504187228975303204864903488460995364566527833019325534769744215648160009372609239429275809167115388173060070690046132921236806549447942888410485592927233382567798696199320781613217616905254320159056450773860269709461230545394595814543587000993701430547494026711466776559863605910942461054222349610742367003665769386763582582008217307557275510792135188977255884035998506693141919550198602779266319939878048540602986234708555835004321017306770512380935583963461787788026475891045389169448668609163198984202089316064831843142803139243823160131613616350704405142951226074665025072004942460048205845972309927711994208404146493614417880677912798873474007548108975729100860919450528466393665867697338351026219105698318141694937110102494338081173149868017821640927190951524840361227189777758907171285139840924413029953074556491898104915518174280771628295980370384317111532991403472299470211830164178733265391715136524052889357105827384071159343509529661703235247628929299495453694301214705483207276373616849721345772016660588109450542784913050100502324146020391602894619127407896889680660615275140157441939082490649277176160416953900651843076218503721663074417800286045569995577811836584764544741344341534549304651383046284520547639884821879698960063728548037554676565914989405768870899278727572859517156529949004233132214678219919770368500671876051402071170550308859943254992778515745982527287973751116681157560764856662099623413851924663806244528356353772988356605293470740197651020153138347609008529574177549249154377973468090412067159381944980140779953693060683677784503889028945245929659092846443192557083986657504486213968836097570545748250181021914414406252064743640489285562152441548939866873684098658925946117304647543169596313907938144585518988677147677768226389479055225177195165666037324286044901968160414406229053927707461105307996864380111494007064029295753152168808752371988780187865009101099862547654769776656086451039426772473562881773502148773322966806735390691259017681278085947120979312454892399003451126231361846659860752051872188260783840796581370159690707503629678713927992687277761727786430948921871867765844643590435806745453142908931950222601651389294356049406803313496241507203424126273100529977352497065484082648593343041497135848170560399647470114435159182892848345788949470496594186414116256003673109267330149413822397200122763972123494098670443492618785940418542232842255675858281624740141266694172164300811392786139581080324520649044618738433074368762678316060406593796569603730501151506825616379393396557984702899850604618097954450889549597036771984996550994461936333691291031635356399527581034923413440940572512603767578743040653359612431925171141942937398121611027965718441614277627844024692173079225149309578024443155796574664156969222144606012510824546999491866243342840857680019546716481530067383975186858289207847479920193254188298692062437278217404956793949647051124913558566263990184346483681161903728428820702946596286295224490770358192985758998878297575074976428599995589684992739144186008679396746661369800138068448002382957995134860159007457340885449226111164759998340874651481375778293745817774112794484429308185553419320543444045609292274803313313236998406814616402313611707796132497762814074255642580173114665716579564297315294351097023145416018967541259688263727148442261386571484670416587419344845774671253177078725669776161551550299021469073146264773712918659105932063074298800796143982128066233160303802107506679430769319142008971165654928291844903677980925613255316261520317172670840814477510313310528751748737886679591900319039518243509851423001516582304805166459148537438034610814822835751143765380484471030073953502351262343359031642315593614372895934971077895146985603518144210683262171464513412193797596365527527136538694472673016641599432071864218250287269155783354449604744373965549915625018203385790059270117588101479212723782545989066917637573511326504047405108000858498528976674696426421843249134907530081464063557742396262429324922847387591152589108318675521852489433389630038273958638929411612471592167537086208276773896156632954229444536276358277543218010625844604739480148213351532864312440686240244058130765141134227520368666504876730049680343449600917634309461130275899860055837000133600074849364037354817264943482108696045911325871779314574043055828551651965416770320358854671494211261164463848266372635558547611705641694824610968123941875022825797407171166111539544754581231253430228812327354368639060882751754125867815758108495131137573837475199527855273174427572713674009822114154122472838135413523496903346223057563458514131079798147063497709367287223896358314254718242698707936138533918353896080602239236784966459037242988426303283734363442220914290502353138375474977547755099607610169214216447042866946229669003782141039786822334965669832045795759317243206750661780322496922879722563591430761106538799507930796995518560520987938991081107487315974888179070515351022719159504332201707135757907351262758761052947007604787903329042536560313644014877851312438408363966812354730693049245830471341044372628582669515001810789823375210182046084983395381778828034453819785509455710809077136744273791971895219791545794362530722132019002838683754230379521831295597081468643663855880499167831510594695608632330095093114882438384478860705581366650230852142861738470058708362781679670597533414112770610894695367653356878610339886706833551885106511851702736924573450767306667785433316662105578209387688618844261753277813685506364906671953250058854145172068022726305917860691466127036818723503319997971753830728250186579998994470331983380190251278601793334661359304263761632400795458332189690772520253146412605249713937518218942386935161667413861229144493010713069627449979804655142302059257871766160210802411247853259464792694375681134065751877290141439866405129863108226589646951697917794607481071759691949784902072081433066355346188491061625254281555325294823365940991629423897425051990438160621057517091467724470166544113935700929231487042771835830516147243929821462422190679173288607827567480877102383746831046907065696285923709321937001034247628676986919286184897795139767144480158160821851173783254088599885628878681295940598040346442758648910576723164064824474080305770156397252621935222734429347067799635882480536314316237719192235270127182494406181313762877532245541396859694405101123533786464102269792163142757301227080452573795902382946979833406643139763097432873879189142795616361808478576450057877456906738137807291847416239506282540658591682463858682998570578726339648703211252501512607508151900491782230715362489064288007411565113283761810193598215200011823331417663464481799160204885618375474463869409147176163385624744523751775040720859104325772093337592914029787917128768983819204995027187307194840001056805254690901097272288015353948903686683987049083444243570447353731620990178620461098536978059336697777068247437604836218653894614884761656555855683874724752319875435986854272809911501035757774777018065303708337815875947852974173775851895233739505564222078958268129829840059751768910177282429735246245955303806725163308556196406914867770108497566472211814776623520004804275535057966961714160563943259346977230265332245575292509331656072805336635058476253909478466535608986451693486212245163842169821326924465685818570204979608331417170196982974600133491533924544294474658501621600008724763731327616795827370932326995240480496724234177331823332261155454372340544476621161039520804851853100861877067671647074694462460234603802686873662472969819033939024504596527981353184561487532895637920066489940693164816555878956062432478007823234242503118563334012597764905946958732405255762810976692308583720893576929147682663443470238316732760978121947613036607539983831011348605080420621290104087402243041804020960166862164114192737369114125204991166607649846391302592155474752364255080157923246195487361073270759745628048496447008315881208043720067325801538247322679130054674343501283879515543147961680889870625846825144786786971767546598965279601189629576707433997124277593526180589828665651033314989269328977630102227429164299049514186768066018842483227951091164457194301849937541990327907148074467865329645286924697730899468261998029217474182515389306140609557828123065497813609360577351336813933498015945145406219774163045889903814305422125323014994439911616260367878506676165037399348673316797555278660215318052625363809729436628658030158322893087269368064583434851909036560664039014752568035806229699711050660477216283246522876965311578718444693226674966311644571860187283213497204367282378865834194915512315896110960297338959068471449828734508746135571152953764699073309517743302813898551530581113625995783383432329120132928328314853851047216796591717761460520220475364872145308565754513567824526394594160163802461950130091472693122300987948964683182504470549980470260404869545845294618911526591596418536860942057240069407464625864521361425291816029867815063056268386133948481917565972593918171392903778471358708416517054446072073523363928058154584373448015210206754591932197268264316167516969919734015812162857160909309064842179056288454374355037771158978491585575781183075063653008488734703936855254451835609698873349183355161574151731060815706714790890520938767692639524827744267773000806787028871425833835349795401897109678110990362787216589446264148937835756885344945363450157481661341920413841497446884528563061922624524052446789069120290420696117301416989534262618223062296311782314658869987212299262704457680465534724666339045261626578940170317777678456582950560446964724816529054122004232255524433086879511393050992174506748604535113921939497002943761120137070979996791306794541499024975523207890560218870976821993905626091342502698196881662873670471493905216201032736444220473237093651047648042943567686638926104054117460602632920049726105886410184723672977644418365926406811410579588774213388122476248415723545492839744321966045638618383931910233620966809995925339908239771109149711202033871347640269877185932480569228197124237171798719406741373597494687495333118461526490035347266043757764836280540281852703061436954831352825822652502505250563256695510591767560209267094867259044792962958003914368917788311061079110291475083591099812941607752926355040569679302585282157905499677441385792116788080446937631272623763647950321335728838634323514454075911176913188441781242609109504913747281854649786325317530128777059678793626049994302272635422547361333284059952535655041944217889738018138350344238749597493741922040801122063396730886129866135925686807428428041152650450336597029238982936930372267675844205221754927508640222584414873496048421313576892129469895668314016838294074004065907224949062355072404328660769948169700877123523710020718819200859166163999888080756487832417958529578483376050495247866024904180455178395391348357230957313483054215756246259196744638378968226951301117970870699881563351931094810269615241100083659718267907018203113326993867961670437659793476945779490031545106488890848863653028519926972398627643257935932483069572466292161027590325545469741114059330043101018089167610777805579228399277775304074884997864197452721556750681441551364772477067946321352939429502124206692889590978496584129936781279538706310049796495289384273978313449411680591917350235816144304197814631054801225961774926505152575462566832962039853257947377999117621118165155356509558911491304552462755488184381891538879399266441234764096525844399403506936764452236297085325732315756392465818268909165081828768556987916543300543360342909462803387250738533321423217297647088275365068680734156335242713671557410246972386800552410897097227744276014873575095762607464566185892449067979801452838741165445780836801907081853775131748172490130494118056620651642048688037343539597008517722134673207476307950659111712082738470542682442999030981467759830386899985619129503544554184894889435722302648977117589012953072708517978598522436259392227804251581528951109203462234542193218861035461837745859002052604934272789347415044090562684154720750051419156428903652334942276332900555135792854005423446856653476236048445796424654458184354586491411833460168275821302485890592253724872573074478825504665636730549511364559181618074956679191041415298641530644935944450306265816170262288059298909854276666419068090073398170785612640930696256576724673819000377208416710206928447184746571252876937330653725872306823364378908681608554505139925499196116961765034409432634528532378083166887345437815870197432132936192584495432249012323300137787036299441770247252838773881925310047733976774180307189865308027226124443194822890286236731080967461479255249783934178720068813505569881301076178795312391205669192967367993037125288390439893038774150112491231187490585232163753057366406002512470287425835981916696113839881834684984775974130443722324287089620676526487077534628662374601275064491397793586305647909567199012985161784877271966687282127969382494190723448023603140539613835877360405695891145337899059067184670827807598963939207754963235866487528098121391814304519789009560380051718066461452142386623732881325788782043398723936541015834468908393637099371786950253396446114545811889372058297046973567750991855578982500339816313956497946278865984677729998888278040930316272456859188438762455637219719080409471050759464193713319289628259819477757584427463928441059673383868916611913307826354301745231034057363061257515859294037060922847330392680024953647022511756080944127310281760725300884127680869626893696150144325234010586719633538612074716802491989833687502810669222473719390757098272676759481468105427386193773568583768559240816904727761395766583014408647008049230513900921175113885738397270168811310257865341430256604240013041016998408615176783722609180140834023250533394574872667455004783383709191349452811933396313517642064469417341629629573538335385966593741000389813093891871485287337559308852779377411666340776635006335234151815903214444828078027688808143271662566795594581661889909311793280269808173167079553020467587337482951739721268129551038290679768595667845255452604321557682054661975832952861371441743777470878864314336106626994797948457536200591041547793075548477694935283772197967670894266063829164598066983566447629602449708288786596911642742877149571028581527608826531679858036558622215939562836344445715915734323650386815747492694172489622391412093389791296773964360280356396280835990481228426767490223302606880627791976586483872012523926804485997017198437231985553029060783702607442953489471214680877367422284572862792839822151088180451197152697353430179987712707656563385832772957714436840208624046451312232256024152046055187148429914150489901015892879756606707366533070440194639616056117865578937869355015437320471089938620398438803463058125782023448252463285859044368707904340144825546468078419402465907414269440536620282039865720512680211465673597914467335237824985282397274335924971542774772045255526617440730516934065525358443981210799838619595621498772338119961350830741187009630702466171965970458911515429146558893121593272677249297470439991662155775998799793612853990737200006832977908544560236385699458536328797011257769153530054457117964801162466877628560599341235982389331311435272856225385013783986766226771710670545501805689041690168998247475887231737993130608663488776596423741874658881835513656324611508051418865351338491021662385923780984478262827675293979242551929901977093014691827135925252293694425985160711510085367125092350462510354515580393844361407350968225832526722802199101136493198692195436772792182698323892539104484383722873709486053454951615095093134156137344579198000850734983523268642264180076957918024343715021206942480771723471479026387422803715221816901085764546211684845139368419688109330139070352873726111151060171998525730545652487448798119589691277340183066842357076623351428530060703021980201887928343172223264826766270974284390311927739772474053146966063955932213738426528258603539329191069123287839596684041251771487908405541282402968004660119599101440987602957607931529800126643208681689358800108564753986440092420003015306258721985616814348553059600489624096075056048606466079192721435058106770438878805832533294723167598652594477034380825572969596005699766471889987282503128697266254788028724846995517413865819399403913834855928100038758854141785905428091029863288142327974032680506969266706711990638777561738018749271204812051439925029627748106708979324730154926159050101943031154222981078399708483824528098719902627025799524047431763631980625734819468402953208324659874138999821758208599427862789717996912469744489957811591288878957099040491147859551098526938780443168716151394428930730794859805349791243684076441112093330526445699314043728704454266365571469125910141897742780463761094102825045629502753298273660573794750305648487194207918615196205292219949126270274049496927475172369168179268068437153853778189105409136431664875296238335964736199263777198103099644318161462103943456974804160845719730539429904335337143499414923206308269686459992606820465422172315833185508341865136638166867788704660546901739485542286623219237111504833390873999467439625053719063116087156292940712069208962196124247001634294628006741829096822253333988126603221691180552680802635066050952593639970249936808816725066604733243910456402665383372496667428289039159479022117762795086948384102597846290215330147942539239478561148060599719818999298629704632705975969836600179355690226749286352779055376662012689931037795035516442146426816105619782059920360133871838597436767006781985672825193810846897767792449776816146097485329226726158613877735842754891173040086304826254871352633066971481693856088836014781153438375330812148867358167463731049145612499851961110033273575317152139702840391734470161565104034480954527138013469579919897798487432127271864423032357573095539580333693161582032386060416393548030868106851600510042545681575602511534295526058980687604059709531083222723945812591132832031778768021722280779253413209196966649539040144034267066156996606047750506588106856899465331719831154824581575934529678746816957292553574237919949308171883061773978016745709108960985499669670856262136256761332942618804774356707479141148333778260519886219497749012513735106432135715782336034644515315636734056626972232016419093141808251666111566739040278562129228430253352778277610466546343637841849518954037389084664875745038751962110233701816374093155048816018822202291947388735519530682875193028719266771265837943455607081555683489151403869161439671319487343324750590649734612185280175004798478115675543127670599227549621079410063040016885728031502623711833617371147915047683153409319691906146170587275962091919174759062324459638781539106497156587228938195005330738498218719555440652973729139350606918600653589251439923150222696092019556234712627026647718559070701535035298512913114489293480647532383946275679458943814226226376661794467936121261327649853062596703385544519216583836589404279425618877594445569121675486562988682771117466991154059918813498098951955287145572901484761935077222825877948468840814955038000637567386792493337225503623203211880800687949807683463193979583853940572984087398819895562949831621981991540071489530222327733431547519295704641370713017076905516745518496714079805487667300103364438166426948351025311788403205266071958869247786605227074526292164123051403714578643946678432243664108051612760174281315186531132540146281809133918957882713626217486047124757173113928976148539282437301582683638077516748664228511931821616652063677987909597334887961218622317530124107214072414912842506696603204648607102146112467700231664564399486249999919732668053713281793634217952355320095463992801534172021494159891786293895872420658637736839134723102013063696822149034455384857211737773860670507989859091384322336737868987762263257505816587174914438942808636163527854519012390614976519098294393674541439032732250170796399847862934447476413098625674503845735161771510100450718942415953959879145624601355774529887865552607604407365036993620328825442554748976404127420812783980303659515783914093164759011123078026609443196663616880141890379199195124438969954438543238079981764802744218466397715711524851537574377266546320357928801857305837176088218928633665521994775955160571558739870441929353877748902913013537846677129785999528133441890614302865394703521915448090615624873917744132044530698965493183514787856598487507022721639877004904085043751053607636182367205578327908127879461686943195071248202978180002414239574278920948759122895070296884489218386422860318208821800018650906548177889972521932094886704895957342951927315011167879417871424651884733163129586063853882346572485534968293230823002154036838179373789284725249119211291676374962226631234975838256773879634240291760553301036944433968780025328879370927438305778832253621373624913444710628120553178162968351597620301752886667314994237539196755481487709912321722172210936239697286973064546073091602083318879030932669710674318639272558736887132773456489655336494902797644428242860452944232298491887728517034644015469105933055850946682196700861483108061365576941059187422966393004455046910552381626896537017230483589388299891433553639285303322698971318844922919935012076385178361091089797959845819025812120746617094800271230150252369461526075401667498407185572199554180782623914115094356132032509380896487223582095939225888170821788760946364430212701293997059594150771456425708220614188717689728698372449202186999642173863276275228953497154641996327023334717216139969347815360729307320891013117124170686593482521880199906136825367830900422546031284579825986822899791909254072323281558460670094907620577711623336828522594528996210636787511559515621723929789205277977087649850830462496972867943621481631349003411022670814914599990423255024162467707450544103183313006077386211056071969782081979312727683636620372237067297710120822750599360516270992897843008035958969467858232525960959553920076019390179863211954645929575590054294685652091849963739456475770090935777507393358115471258492673562476842769083638913878196844129113801190802847934780403383572565579051807768607256538411242348942536532238535252938614936263198112909246956058283669290668612783862008376301855199922283701858372067044359048628310918447276314646392975014011191298853649969515818553789325202599416422972218940332152527144782093273687313814316176036792387163835231309773944960316090141889757147556890870248813622746323493597839668978678983832586639212570354401860763424986384485787917750241474034317735306642760039663995155417810720828140736467412740236108077336799032558211460611554503096745708589027118836530874847704132045056788515103865918960623811984581440783247121916998274031950699314449420622393652510956679729540437929028973102616676677991383638079220324338936528700234890682274649524096190830567301620350225810605759477722351644837330067673720670235637831540160364135087010776940520957780902965755032846167669371201406451933260362033433628954747289643509616764714393431914411522864711015651403172130133755202139955052844719206982087927127347006125120108019554723684161186710149029017020015777576850016509428951806901806587657797479994538516110593366969620485550600021504852046517629379828949670213695692599889913325425166308129457958460556553518190165694069736306767876581654433276552575984845319037116859841461462929027075688248498476611171905274502984867325039023755933755033230772063337736558851348395942323061958331033851145153571490037232894988026311404153132933432113467651978791092333922111237825209177285431500830487887207426451970051470844123043623309035353037899871726019039530342151249981622493615366363536337598466310938004510888473215044426872820034477619401340488342331405051160994891448380690915690114015186019124389639030643601331900108442793853595258818571621050864299322515166150070987763175365690763432617947486165476410178200992368953285331817192166611719634254093032635608784551010497038290142610924811365783422728147443171923437403098255726039447125027077669592347259440080988795977612667558556182460595531098950747735828819109376482794301712646160475523914194027663970561016648004912592868964174212038642894616060641380496694792112949857881509364300908750065405547255193579494316103769006582189507248845622496143227543924425622980855760344506854989167070854992999119449796973625044823305013629242431621664818078202823143069575429085160117895969510911201297515485653424017846603914494053126302346079855311705448599218365618101430741515287625167842944526016610570499352331778463505051939905733200785869174472508009463274564988086369778276516914799572028767834996488535084168828215116545929975781395790738307937801929159272903259812541882057497054597619071475907366328645534117085539369844315999730228906728524152383415511873873650136814202030108555947691231645544563395187797453576184480559528808288624154890755741878698046955114566664097500521913194362349061036209130586978609562451460320124753882294940410534070844262796976106426069856811868155907279076530433840777904430801678443462066738151816453671855847498235178483512948087282521836016266543005281257755121022529400374817935940725512239955730863386173041607155778136938693446755814831634081058338830360455113249437732085019216226783523001834548793686744578357811232394347053396793282319778436648303871189909120193865744070517920264106904863413927401388559773611217078737287391249611113575767360357543196224667722263314224016146335334828237407513999391712591739726760135007153477365499752207282208121690362789157115847875242710381263871194839684983374980066662018917375962960171380561136995470742628867936094002486776865306120984835797557965460424272757618497648934663617727544965851131561727840852295447879424100497961370872409995247552332483416364615530165232344122122464954837012799707966465213534795205395037508207720994154616508369580508530559662011796125541791160861720022945755517422885428358813717880698532018040367506987981246553647698678313638592000695954893880096967540159669950725832432116715817366466671481648669641539728035324766596187011744941871997123902561359375192921526694643892726560421757641723456163197216820690745836165368744513559473979523763440838819569624935412246806400968298512915333277594656221566353888310591522319993948086189964155526859009681140140967889410000844428874248994184222512212815087603671533693138038464137886622862771177992780547802836108638643458407088529086518046757297333673851603729699533959468878634337628255180060549907089666130412878337500542946713265073683847215594186282071318186693511104478504544399086807512934718201956492307315603444941367877518623300927281102893277103885788290066204971812660271037708117406495123605855601937875992987702234574943794226504933876947214658837030708363462405560652107163985790908929265423958407630311231029094248381578702378739314696975386801445614042658140162988764578216750754694284859127243198821332033907998295698126914039773454536876962793161990568905296742496623278701762604040815825207293841560695486141441755693938394093718176038597337233513940966750787880697730753700155069428802793310831155596431326258001551526790148052445149658139495787935962186683148694728587831843317788096073264762633720091224740655708224994364329495156052929701242260564298515544996827292158647900965127693078351317275168452720729743774717795606732452212482964946330341872040522958726017661405990111758986225481093176758740341069357769937340168937930147078648886592213451870960654235860643519946170041526614989510142927703560782735095320934120738498559650543112288614878406073186100322179581082740748258019903607889485722629641835687099135387545217631022883356699732748814550637547112367076022101230512897347527464894212876037395639639421650417687674392494964900303695253278008773323649834610224157838578318582793060418862778503832154898374150147693563824948810063260368858008770693893381456767940783499369313901497030045798502542516334289393183381430042346301644102914597828075533691938624123772120646036918739137809259970453945830221834779747103496083287522203165741011239670175212062668895222484598557271188279434190394588634207632474103058960019956396102929336808536693041963904606814161878951701155870334685600052412770692645572181085970404719130570968926836685431437335423466694440535257663467383132132834848215963464963105804824174089050359620482164226042535523003037833761910529140907147833320884312343723656092394901387463134854356459104714401221070192917910781974933157999641685804400611224162774152977146782616034132322201138453920350534854356081303610280370590421248132151418188520278508439335894547454264581083944620322624062951554187725851888161461741539700980944368742606034940032186834047481490407332626029474056787865000754373258635826784654676164751251347863072989131424756687951451875049322403282511591045123412639418428227803767682399516568123681209795511962991662859618061036092606392402266110372828967931209024879452686062464508951368312701060163149452374167918940044001802571173969232676462498333359794117520427880920921522966468393310218684865369056654205211634257503737330575792812588715512513496882208700696222096194011218730289177096059440352955654978297827136640607748983934932289400398117294018021015299969719046895787207195968472849232561737892091535599216858993177473073573179924456565634382604779404647504063080213829994510655648469524764523073077777607305208367218952813222699644908021963577656667167093255866939925128118125300697122632957108443262993960463604487500520050152562932988929431994793580112786877036291042597604579633133832453192387394530915118622241240154216121165670512502240848858437404708466662824993626533565222046892104061870536044214532513172329659224654691888635595619563429393291219468888511813562700131652083844811149413635113188956512926403555997701013891560084035348298956592868050789262078508070348324867416976570153795155574328091505989017051074777859353834799773483151292097597901567012406686290128670575740838594683957925921762797217383141716726042145848447147699253709176549074991256254496148388947661730241271762376546138703633879660464627608594930822866802895336784950521421895138705442294296824012364293135825253701860891517309750648219343611494429257269810387256184214382318078428833995642299301566300379743491997499595740950324810708363808400047698674030991076970418266706114297795498531248053911583652869399235130375608845376918683460401813236229107451208646784678427914652708809688355977694718682631238459090754986580169347212744551781498564248230237708435129166468617952569423223133870602346624934229118223100575011351775558608177609077839741297981791250089454524589250210165972911042459157008690627864712925558327113193764429292326754354339703691850042716539117009792658995485488304329883184953038751652728590293521528335122613564962942310267776192131939090224704661968576283590036154508203799745068331322387549045454430960895772180225001279435151633046151097233036274023973479134680503893945949999530942011815940112071500264425294727517492507725386816546264692682752963453284134957971516332666098626136591826800285904942482726651820523526616275644476377707832005956250182064705911603381328806337263965502352816126651966817958763505553716817347854190894702850997404505800256839965615980546429348898074046174452767582715869180167477888447267525793087601725547274782680424752637240191995478866617706958150343515831004884906262676019222764142745743797430531735508751921496593898052457944455286696991857859346800184308135793308147342698308153432155240245934953636557882963586043433067937964808197927903502990471421007327695572834436922077757032765740106690870231996109562017553227148910416145381666273595874877597283624704599175018714514291674050647449200287949040193397933895084622574571713078195588770122442960056382748955493762352910075994446068739232019774879274150974115325350727248707638484489073888789720731488385194439957795079865399562272752831718875708843192421668809687629660022363062760402519530149172174127771349412828937798432219474750910773632744108553400820560288327582671268325059632863944462791137411056361452901310615815637650199132419155050105068578825708295670760778463132784155824912182189723128164133561889664586699753406251100984075293373813670908994554829060571243711905257844860955453697917072914834845929816342256169887653722609869670715879576879725512323735644582200953753291961520743586753919315937589416805130525776186459977214707433919046663932380055200556910961575809509270084090697878588715410053748186322966127194035568769685119946734481860743596478342766234797302515976556907291916905988975081695377986371118583457592632898302037721695560128474527759873744215996400197927940763493866596283262626721077915754386903013958024166653152784870690513449071567916576074271199561830793710228803450372499263707240308546340235792487931259834270883572252784607319209617914970005003104277369232596430526054406024627697176594968119846940426830772260018076172876981851307026015468624743089625264437431144066902860166955404419149487143564637031208122530426010495840746957534881509819470859771534590379440161864941602860607493007369482612569479400200754796224252100558544374172800047042921819958952773259581436991021399705288400895434916806333098525214470211642591577005259264979019603425474485868232540229690633007884105794829692664624604624198964885123271693849243717325700136354274908735496503566342873773477672964558191925861062841483511347628702843045363095110203335448412801092174132142252951484089147863799326009505275325684866945387100308798889510264654408015555039150842201965163440414489744272253863472245418895932032830223070360289907951567675482947741991951487146691985648711738297100031350808788363377322909378554286529387292857707171550384164287003804440286503037568488457289307635664384091075513904523663538117783674615906834303138586643275155453936636094806989816704841440848025605227162600026086703713208354438085091710962331933935637708818673597492329721267308250550558490048721120292609710605839514584720281275635087209047266149015636093558381630474460751065569857043904913162421084592979079162882431246498609264207282426091086503836764215503008731945072031715336414568900757125054589251207303833980124315407614153945498600264720422149302099392916334403760447311321399016849114216562593319204993124823054302046882819644878530434399081811531869340527867751120587132228018239396216418010571359526558534605465202373680596261931355262324345309168817903034065358205513626633539748310560846840195979468157700613772715354889051913385757113163441403725470743108003659107738011221842651753131106450201488289250785794419048251981070447873446689592863894168678244152187538669162816137089020113308448955388232862364761172728636228406015676309153408810521961041689021489651100318790087692862256297739971071931836380121840219208339581852214989832476751064997259495265576386662652917985416631759040301780302660159642502460809650378619889472719843979797720479094826878941873511227592091661964799261353149219455191922159627064176960082800433353605906827307464088983150774535795599972776837223666606609607108743966961621311756325985836978678235720230347027711289342602001875067324288191604024912135863058023139545093070888031958920573664955927782048153464307320199035216920527661383320327670910156337280414027258833404351187977989997673308666233322209925752105448887304228245307060534475577696746473525494305587619993075290935401765846077045060131703242602495446000864244510032386952806549719952543162586732268356675048667705701944480903401250780054644179648070963604019590675131579257851391116954279415024789767776482740081877528153511740521983825089020668690967153395627645277927783148310995269229015162103967012173372071892306627887098774855445627872566479460331706899097063091461861772358593723110380655258647842632743788006708981871946192074608187279432674348726035312693611950385155479128572739132479222237575236537620342797768853835460068163329862332630525445544106857036699523883355798722435602699484257450280029223933964733236263075489730665337539752252632465866053870979499619519047552666744663194757969204445718980905428236326259500345297505445226230994078569696316780294350021960563440482563431599714750215202692009769048386159494985016571553645653247045025026817790242741028886905822458678329053521237911163462955768377417335066452402861366679131991611008369203603690592217010911194799125411816050374466517835916855790388771822890258920798829703215124027961209158094609249309073573226576898003575061291419977855086932517865326253629380890921937536931985987607783198110355184294310498680159284154750967787560239020164441507683253342116604300105702280219598072692424087331111023471486877967769644368714490299954476709490884912280629247806624813657022696303979882551474267768897925879744013518205755341843505930171057755674087542632595331219056642414321178778282000575401767276560414618771239400923954091342731842553232628960636019262497322781013281133071643586546081687657048345640563931684461041630937285343921914439997804037033446307166042370397584018437119401262454084242590936294989319144829942785093934693007852830418083245900449097416459395032206967422781011060569682592613859914743269477896976017220161281055241593547968510663547768830337547212509894296959160502915364697710084294450409061520678833369796443821518770263472307870093929616301869480587581138320595933993250984270233018406353652284178095232873593727204769165305693850003294007042317861123893282958407399063493787092897901768938902888561337701956668800414240720303710181176304449954454753847785044218100323108093216645563907160128300708823188643154198645114074953500191637321792310797416660582684163131438288463145666421868180641564348126267512094078502816345389247832900614875173735885619668178858289993628873624907925861484590324911974345973536211681140694677192961813668784525472780994393646087332178056439506368799280889451829286202409384059449794311989529554974718869484505362764932950482818684400566438537427062246547115823434536353867357709755968014337169575620577402600601634949186475272863312371332052556634422306345021069416081419252664292553030345340676069668604484303594318714260013314803138249364309884646261199258335692465003391053684466050343644057864242990013417910488212732122672464297326630793639296896027794842863910746477411969938508546026918581897184580531043511442815267063044541564565051779184875903796604276030645787539902842543049590825998679912197781520623309244240360466749385744152852672538680662852017738800629921951157309635737534049985338007840304002937136311476831320445895798976788301029375789458108696260725287192018211151418458609095320598887889798844631761090397101735635954583134251624031325328093655039753858888792723241722112020489214090603970395484801288524827352052892856448772133234542657950984132804203933035903099494274701444077127023072214230734971738544708254627708307971605980493128259958050842991904315251084891029610310886590306731493990687020517543721543355895439138612873698033489348331827971096062252893977172633381417205131256767812934046407226756816481320730403991240315156772174599504824786374323489358322294505363436491442678945771721137336060268271017717070926409485200748994902503963641835647513134571522519868370315484829790466710266691714735484308277526272298822691228283376105967628535964666209375539504405708434079531016896156096241692806213003541887758886227109635774927910776203706983362421790089401165024201828571523415522667379821268144917282786825220338181268526146344266327358981221642404381641658484395789796352293835306262390318582510929979780936279424263360781871794907784541961311879370198339230096863101497005099286179710334642063327263436214964583761819667792691292096044277788843715867237814080189559023169225191719044767569635140600759271497071071599233048250704939065136353416098860664365713276728663007934796231139871630088023765452624720433015132243072094721230979261438416073662809503891063188194007872960754513057837026468590986661233737405500971894632308057591236563689856199916665463760958409924750500612933968752798627006252681220938358444333799079150356054286961300038404083267710374113071397670941840716383702535107015139007280920168141554131317292471377662571552634869097470419494188625797663397869566851028649543072483391240076041164668196591926413072799225551605507057706026744534750619153198835799521586555970373357048493706722177532622959837009060704324346214434934603392578734702194103140352728344151987733733633640137119407854148722408176502213934145957113793771329995943364935436425207011988962923667506589571914643212088817985224934649831818378374713184562366719387799001641925667137597169979937026845183713176792052864497887517640594040408563147502814401706794168068657053737654532653552322110040991986464503075503969400469705645914606035139873036423847260513013719732812381848884135418673031690789230814061075290327866928047513445917447517118939262119371316730775628093697314290973780497258148164076405598540195694321572705547618521216283015227202550951965770321808859595858295040266734732325368384701698035269139972769804103653401423636849486820346048720266024258940140354511887191868307937012870367816329680238435412149030068140206743824634507024020937157928238182887295147066884442001389791888388443555096716268468094966943855925242346684115999421207362536742166732756831221918458717682203774909351412499064803993445968952998221040620449808281563312006557546458959434848325659377177292654088505845109170962373690157999331510743788387295342009974327616354235698067663989901157470988597596851239757451655884648255879292693697695428667183265754100463932064431043970496114656335312110945779470787636552053151313012128821304062368273328881168550632322847854539747272420174352169330429271967650709667056168669869951847429018422458560872999147460390165424416374792419897786252414858161815641960685218511538867248880201312529988899798899705823024141603278528103518687028825233664817577145665376611010511182005321977406513458947009693611222975238465186437597499638014071118223018251366674429218598572482394409873813880520586077460946207849567331138457014412450790287668561732987909314146047366937779274436900926549355933266868696700215247073193567832187027152654916704061775768251017950693203963907504477925647291760945745408197909905027322896089980847706042995180030694057642006788197267259228910294207504915672318622780974254483850318178252487074879489237428538182297089435988252116600599030289352819860682006647725391460054569274525044348906232184104691338373167418083531406085122740035209617423690881823423397022280130021953322629975799721351070226470293283792827633242914597415356477225731460371947679945633415021667721258534750583392079831702792955895594936283302881649951625792874737133041915387009255688562220611681080369795808798828639652460346613747533688222148906585495998635158055396907057241909252983849590912062447267578182526935206991539733726519439658558646294101060405988174285211535285168357481967810533750737351342059116122430466816657121121867904953670755502442032010623066605803067672668981407743810435384269556293017049493440611583313854578499800950094594389498265963684304853849027201787014806185181679112404819067023363172530998799679610478990872638056783585356117994541558023788960775199397978026729843787842860113667160834286889542987438250550549332797965172132433513106776666057215408421138197581303532236778378446593885358910125943965857134652877835248083086482217901442301856157777556439153801066660017470751198297645275604344769565891550492198385153665774266320557203512000491298475371693712785937267173329639216852163429696973281341916525761626829577577948587430220530433888150841572816354823121896938771948226248617450077430448376233979808063594832298463152688384617293024674532241239219094582708554002683662588131845129742823820688952094118016376732937487482403165872758570784977623884790757574229890232999837481623434500114967239874711769194282832989864531695545483482709980260875983907816785295591705596615146545356176148319423016594138221696791651686414554316037438094487303157761234012994714584978144731657846495732343615545002570582569118478145134259053941197345351934987042137278197246708302760518855723831892286536012239507308123505180737393942870745948096237508251918963621316238861542956714332358511556278240248721160472841194422382821657947908139321394265778691727186143939606787439002808936114221287814878158615554108351562838909610275380624496976263413580289281883126687209585672146183837582160545499791917959751408445398530470781460106979669307287127229606698070635347849400977959837488238495979154297697687998104099104331571165865698004885915584290904536176787408957070285106418176984119054722833967146582304050519034806416417620520450244456660214240116240949636695813531335339099243169558320646324614223445884145253723829177655588319665178165575149492777977239738573484750963431374207786857401412142309810000252705306550514167028213431062862325661266869980640299839346686613512820590529975720093490214147307492299377847222780133802240213520820737390332966386189901105740530946961601061374558031706518566029335718774116535400037041467464854130413640816070225904962606591417590961875893666929491503436090013488624474892014040330593031091862991514454813843366382855208300149525179131301403065774553157916411106196645672897193645414578335401990593424737908548385408587261836523959087406443982041613674361043294562295741666168857630821867173034607611949893723930344248902011711600136902325585819413599349588936835097445267837525920618351568688452374639504452286460493778280835286632691891841858459964839562297138723486211136041891041825134863652709252366865164339747603437813536405259927814249051494438483549674621815198104562648168199563429527476265203287097116267557523225683465725137850900194353167569766986688698954078118437672801716485966789912047624015498374177459709470645642135713953834447425390433345213757871321340554627710306223970851536039433410497079886468749643153547280744314431033378069074360203130524335467352821224645290456930673057461637728262910078131219899799397057535349420264549200003843070379372935490005685225810316845290085384006502592131738954191851003919375319811206673793700375219235625307627862093416105460857172064902725481243388052649354437334190215720962984333814321883500740968285297417039509904447447900212500064415839985853478828019209491346225382141620931442800872863129251173344928831404981892932065756174378186380210652780267216483607507424084685627847967795574519065242133104411323494761961165420028985351509302134045720027136173941215914322132529847091496683365298736257870036858781464512144011624448354655615558968526234490703859305596766452379344071538465356216348568761662409367882407179154869178569373912935085426905209206504011972705914256951484969203640405023888125865414137109258299699866988980369332800470955516179230609021916900656227901091195377571258287628920348598839648308263142857893277810404918299872140928383405394732953602782148938292024755185204365851316335800188721175322844307069584772515026353436662698166118756667066415775477810678835791883451209286002860087004598536161509621608447429120125440966228949330642096975580179927064747555979816609732753509110779869520043431975297392239269553275621880631897356937983459260915835675716762648061851061496578152197772326481952722462633784231218993727976797066902770495093550143163907886552936342486707119007280866429033810002908828853278608828353864914885700878693133834939832894706404779288905906952314172563413114620421265987635693493180698069630809185457670045338022473696707508262770598988444560542701282916126337046948477057462736552866946133869556692164296961333428216979854554463904706110128966797470709974477035256202224888656341822201879311880121026174007085491243950094411171777265672946014934613684679148247338377034231026340445113616306881229726713406872875291359032345614490860623208292498952750449725234577517675150111584513190218626745495820497179020939324712971821122181824550904015321340316563146578106419245359839106523847954031346804340679663689009866476777538646532261745824207058492801204925693137685904780489966474490307837008680565617316065712781701457005411932970756439278429569175097945491340334001521375260790543041585687525504035867270938381860162611718419925667634530070282124334461436475880590630709295354863188603926275585361081552956971375458366697375324157486071887687349363777307526688847418384466329449849855273247017407704897556793280633194338671765035001904180389384422041393635594233879416567527621072683118838916424525554966953454419459863311962879982328715041385445966186228852559116090981918864149252896396270766250573756876014938622818872527446348944860391870239706469951350308736468708243129717555614294350523333251863667604570230112581333910314951094272566520923999175201828976588625973405829110172351027124105570047959232370288602594823238513753303423049688057267190981898383791769175861465449264893425854521821877676626588830841472335176889578001818881798496453903822205444390092854405088847247075919814524650977202416053419083383273800837210847341280259260392503223756201053332799095287619070943854085463341675683629419812480403539252602722213820159213492541407502077632418282177989716658246382243421959739456846492088692613047517860651890992330093748820981450134142534596469891957149086172050628856504815814848127993506990622992248469334345176952386082143057333768272462397281857041083542388641129109719946065230874183322010392625027513845188301022628488226726729523851314810640302792824254961502023400811042587610652759958336668047890114138467261712933026353760224381047448029657570582807111667997196928144477313222174780312104814131463384825942682809448441757184501675291093885269917501095955327886799381826679174139607315198442179350205716737413359862144343817046999383767392659157161458360611737126888689364146405884358627886940293962695181867057091933449517414167311942867506597142098558445484992198772718277755827800902537728383677680940641296480063852751340222437627542798118663035280461484532980643638573488483511598396651545725404351464801447519297518810768253403294276457485197132983118960476900911962624597751388653833711884543449161431645228048748815355469412704562980157511879678869535065755888897916410308995228554032642647457847771795032623335998436082088900232148780020544203003936757147559728489580534112713468089299581109225434484665447710890440796554450780144888178284953519154666712976092126059814596138813370357414729592126380671608682260563098295765870955610192870176955255174067621485639790591138321305239204755152755682490367327570965299686236114463114335411861763450130673034997289715068248097737811441145630016025407852113535176084301057799080432561045096784378040167665025330496517358092690929434737634208424699936148930992789695421087704647705764181124245745968886449949902295563213862585563756591785295645491206966772196728775241718918800791141362712260299524496262706266303051929788038943982612816877683977442854573280296116503102045223093603942661794473211120662373684730309868553959479387599197804105335014967193664909464799044324232603479650543366383037104916777777957393483353433334324001602874866318937765414748364621423609407689571837703872599438261914691432530908442787186475796110131885067918489458038523714707277563492829724361825178113108504637381893652054985008104818628622432242264831578075618063955915577892985214003345696487733070483162083109034116789694293516663814324884374988176108121074075266585173577544409445657446475779934017687765119938066567310061631448602370695587805807240400309832612369452892731036881065674627764134835447916603686202596300475872973667080506260360487155212222763327523119026664133261409061168745844557336916816508256672007338257141489956013439675321053422223413922486490885403733157927681006374525731665012489321489421112937734837714502125040507139105042062347343984215302443954085727908387248236629891048398866943603687196951513327884194818793728690129878625876699737876480368615546167445706531154179383783749307230041355179259067965933801180285496282229308178097491165184405011420076601735209694265466192956847424421455474345456512632031371634916023939796603108926198893628697754585886991407853556798495395318486095022404364173902934294639563740216792188526426411029635776507155119683078034456403671577252177354745904968184361735714063648912029634325329423262610094940967413645062494917310567960753431851457577554130841895959020729538867172630057690695398701521804578413355352394238421646986210224260174412368344911456477912784827160316471943432129875974597321312634539786809358541762785191807034781875549587094953527735732519419851524491581456190947532153305449553082618923362859438733360140948289960556878563054675595309025192137534743848033419236070076305111762791145289885634366471840591745960300834021918197448759857706579071574292428975062449343099983050954825186994473434224108110408435130547325486621168259341621286456356366179160606179628938889787147036708627110252179599552825458135826257026257937061593150286497209663942265144318937531288552741618719487106030931500073387276234133441127768876812038341485767057818270596620173045910726137673376161781079211043791416018048688695821005704029038691223206585576984650385599541733528849264980949162643342278610695610521935664363835663381772151951770607091008589650177443284094115630814053234092953181317035274416276105408014851289398501150381979870539783876689822939516706923398366998091511409945017023212994735552402581610464094139953084549585235338086321460932675549723877631364989051553845375246553758849735090294420156323896717339945259530461891670091870385885142627599215460833963991793021883660020069249502832935000044166965316406187888630905616960898353676824191356805586077004051301222349294177563248620855873136065426905772348449725853724926431569058705111562089293549073107390577065977029471604581266497448240001352761362028198930143259603179391871053751581525131689544128887945104076060706071491126719356240970467692698268582546493203900022020637793290726714769777129365663082425518401662899183994571778799942090461124924696797837237424988889053377271777674502836860175599713392632795307522100671357387114142425547916361719927212641553521736992030585465082400695777305943851359539419287269167147685181234819519403968803899866033336952172776341441755683417033430742492025870632408729432232122960115359059685834165762754193308158080997576127681453960362738384691220812806499578654420926466906784363844209097571565159844161670466350425795544012807498580313622539613949976145563208040456771346542890644161627228512677511337871084078625940480043989513926424740193527349781164977700288094252035517120758675952682654890925487739433648537716263868354030459035293008945293347734310481208233354366089385502392851431956854566681927609701237651029297755809555110637330406085169325528471815888111510683975452263862771323280300752639075792692303797408263756065734642107398303859515137078836796178993810924109463756971786682705689912536915055439227498193934857280174506735573987312629673709780004076581751931193949753952599987020948749735524135512544005120018638319836154023811492011099652075957597983054124050643096802506655277433921453561145412574410347479058410266102320565920122945942365363549545270325688864376000753647770562896627800600186420338819880491786343356896430578071346681996035855401424650812684550313351195306479041771045315574953047428550160507684610991292531502833077052517193529798038301304321523106449508541704402897402010998666971996296942916198302320773607716725855355541708031409123964996204008961421701492567180551107676976749572817408486200413625965601705343009236423875933693150507052540510349935033285850602976680534621030429623225279354027103180425495358551966257920384068933933463260323813838532042990059479490273192101178270436965253011000278484835975372298109102616005116676367381603456849970820045845232447491381996557999772270661881924200338522823910442394005787097034523188869982844347051049110447830050360924056458054094205678325715734956805034527541205628610518311515117153847721507639074487714295347847248877713798758994632610775437869036262827537685406739966811305037251154458136777265313383230053808491417436964637829309740238660119901506431544973853473454122668394225320870056162716955816324389032881673777748874034446212925397719322841672086056806404959378795718973175492690921247057114645751079973496846559718581051964945012500179885722355372367482834868595506968158642177878906477898691365182993785742012282292049958831888366541319280061646840765682905449638188438626404341483470344032591500300699259326659877818350203700478103049333743175023758915418871092130772042257492689924517390739651411767178067724786170189263328630777612586055661940163192771620944675277146515766038096497274575386348051565730578061762948391684888277891340101781488412209847051550663392495034787260867272978485015462655999469733631736092216566008467354140474645592277490237750721765339731933482913716053888714638394921598417031814179038050295411975263343501711104852207246659900596398770367774340372348668776060788304502927651518040226223036719326497849170502448769957331336109817203539485197150582535013015063436311442510593971046215768827123397706632698508648267152621873895116553732980640566169754988081079426838478013051474454680783661104832546755223935662226038550802059793005837055359136670638290877539043568572403160810394196654605037651338861642377200567777910942355419614954797871152395256472219251353268161913716860473692196587314295429166388601140900666882636366949535842110157893228126850244279233982275642527314763011506060196740971947258630631008099200287184434828972684157746675006095766850729402696287487882167076161765039738510883716762672339468342064223180536886751393972120690370777994691295523452127374871743651662520154912671354145959557072993173436973018940355412194118584853314263708687365715159441083129468056456933814116188658249563803953541128108780440038593712261616630816301444822084166191624974100597054574558583396214715488213591648646510984768765988539052893272407394144947401600922864770888686370336408327080891026212795878949884574356300087608335977205987193267197242393348238506758227850424098156625793499294684772538724834118174987264949653776428016288345150081141222038846799205541011803713806660116451510164963946384737380792385311957471424254736572998041240335248016476222268570633947487972328522451803361849151014113064064642105532682659391434127591452574514226849829190665811733550630877017745650766367721280100442039612604982576594904342162386997777293392167731070389686463357592075851567098821249776145445702573646609101825413434268115647396701191072366912905512701396306704507189079292748107901480529473752733975957598020930133070293500296886713234247336101604701488675170157101405565383055644735383772892120117995944544735984544496216182727274902129516529080471172759903844503416135720043081431141358851766954823237477903521228417752088848146650538661197843472007413918100381776419507531642120392572821644140314383487841343646333525699124085926212115168650970554937419014896796082321016084386302434755634065001455831309079870124880219739266081461888417253231065286879965461375196277317351084212043887062928702440477847291735015080790433501497782154760550160066471685546494749856078358971455750212729065319273228833160996873855787292682650858921678487930964918196106184989281191955384529279759678722917836623484116271044438835196292972873344880034983052686423103865210835901108126563065526756482817221982446269007834928135861371461955306330565824486176203606075461597639120027208610790230756026281679092045171862828798174691854590094157935379345973678566545474254817197530049824611958621999413539012829917073768411621886529924385704039447529157366860657708872175106933086090685168381022547604527584915770831276447774698705459467058875074854161973116862618516741761510743669181003880216683605260688225670988638141148959855026867733568895250831453175104136396304047141179609959012520528776208693370115858249192570595297131184289370287878997479895923646702713490449045130512819503987743776950135551875543640553196505880748518418197856060397010100005424121111928748593347557162446823164127709902744733992605674439920492086699605073992456909677918204951798127258206367603527470200851390546039542951712115760631010817307507487737385802322837074921962712384645116167033839369410519145145071841171730751489583498763973679286235044531777445016635172692765895610904405776574319570404528650248165702184650410902025331624064178697687979800387459902128209641979190081967999868540655202914219598607938954284479983920676823879132201548051946781113137540371116781033719704944757029253976698957792709488793519999144062596168652481369122733411096579270858678246015906980007680788976225851045193416069939893110426868486492896528288235347620084094634988360260786425474972935401528434302274552586247883774243874361620392837973982779323826142994332203069215966530161592836517866958401723362504239788507828010632925669401419043473630941693641805712716429859888561812997074948336892135882726254012592912530063680986363830842710800669641793200388691079775640924505427061846361788268625684480535479494449957008378101931211034722481111449917008328847717989322706584772087083566587333963511234690024709937093133854860196581518654910823373835735377214335463164083709181606647063702973917147949228868882025164373255670360849295153690386846057403313374027946972925484869663829215831235182850087197267139812224320820845493831081327153147619788260628758942328684425880443922587277011102831535468969620422914430207760939563059949827392013756015855193100726619256317531297406954853692512697452434065919708920511072205461647047910506831893097788132496390791307267295132289254669486258728958685634619496604270414016166616621511911308998740082712093041873067922483097938696792971890907589397067645800037186079843666572650214819994218513916423070620426680201294262646851251769485567714553777004843786126088096362849720984025861190498201866223300877555552866649774414911402152611569329380020200299990828873230972138256811966127687496499657923195326158207847564136512417407686585710425892945940366270289468911462574129330218658381451186310537903184815014917970928193004755051317379193515984532636936458674431322330283768828413171280735604571031599319671961460538889321488491704177766097801459656268740293347754637241461813763810959267476504320681403608059193650572725406013514041815097060850708876351661511543220147134652398819847764914952589347493688077764148066057853711540121793851257368812551632799891307506218787144902975970061116209891640121835244646511859201582633261402151851741377763432435570227605138587598732023289724210441664099576230033162541012780957814231680171035317327713260032039896857164953582804272057027475959260904535269829342410790209906342728231742366441618336418545606426030733427049122064531099342517619816806225327093995398136977442472526610963915360113096887128986995262474084764602166769200989860474162933456608822379080245667414573654168763273149261657684630150648974430270688017962193794239553591634281756160230931248260272681799101882263444975988762951280377072804821710990600219121007609705612811293324430816046300336745784406672743430577423773438290359586222013579199692492795907389538443494213330232709806797383240648768648111164206306295653676104802468900769431649319504571101099826070306503208473246344637892768236222161520853883487858750230260947679777328119931531450567103778318164383178627216908546844588379077751603233367516254374492412118545922850366742992805050270329956925024678846158563542243636056616727514658579030617800658331957524298326504495502393033909308184872093136525393891682590164783051428662874748273480191094217685244587987727520690135204389238548854229579464859799558256257785200341663453890259595985472976346855007324110683462161929686981309515808916220744757841131859835901527127640326191912477351120134323699095172905877675554836482746992594409960731577058950665844066146439153068360626184658733751344669084678992155491638336933132718496427135974722005058691513949944588627653565078086831227351360476131945217823469777431684183731807385290665615444382021672387392581995466343433538389693050267266798844944989514647455853772782810345582138063098242927427394574802538839871383987896456275862128429369891488274237229705567800841491163246704120696030142830565111580439164178911295096374297774855305830050359924665629892847240817980153594843567975769010990495749235450200954815812719875765376612975851540738746629454130998704999616609043094717531875628135066268845948890597192569078891443255865077599728424226218866263837096517742515739114203496586064925970462550292545192208038169717229641639744727850592859928997333643260826943560505798368192049000272903873260862945071841242925687798048970963772412858530117756221826161807624217347393206618219676905669936780938381989579331745760659288402281878400999295207882782733227458208682100242048036447755253767437608870368807207149916299858565842830423070625756122844148557547019256332313544132691386092010547838080332098953416074608183840764359541281266036982806257361130807610196978735279361706238256097991846702642240329131977375250311271541953428825425316844055521023132598614671356000904323627444287252251509175931803472509074244135783916854556433843714627874547258334139609797226803428778958830763998799615202332259720791033276456313966772400588065852749033055808297076678583041026804429518059806572990939648729194782819406629583679027396560294006090200222819299232536852910189630986226397600069599652936245053002107239495196549645718889130384527458494765012330276174331738335139473089776441356102644151924647385680002650302396807558670538805904707923267296540727831810789059746705936822127136051202978594923281683337248576846543557656428141164696548617987417118903251219372893079387424297090110844344398886238674664650749180471651556295663999832342155041927931443986921988144105228978821174780173178990082959163205122500291943758187948214921757364735874033847897852008720577596923258189788491474949377238333042804884441515321815277545088699553254530560296353932828767608689729450509804523598552941896483806952845357298028002548192623673431962482144003937937655129750361589616089796497032007459540889969733652743899671730268623520372975146230009305093420344852850441119808031041602577803216307732846228000638837020418120550604655697892348467200516453744924495852397414581013806372363464056346132430348060268318515736726451028462151984571834905577100261848464553261371920839179019580894485909883292898663024600621978001825583628260839856833093984124474953203045076652018539069684543477225333317920621874556959096564015630117537872285600388441900536690110856538101978353381275039072108446326008167718486961190085816908805327412176991951788398287190345842017184089126424560745204619977833946050195298166826191615898112941870063796885328718407325538957756957193264687337340862288871845931149552104145655148423693910183060837605295482471723779021600173941133757137983085373763978441101279419787922493111074668040878435549154197875942255536772964853115161182130364485304588584276361401912657075435039585093093971418495963642729012174571822840182360916421839150147094290415613733118870141992827111371436190537202667351385594091601303385497656402457229229841132514681342477727140706549768723691619552434852257614974655057312267245307076494820188958303630243649228961458547802834610469533430777460933168276526908049582312133185148841261594566067632405218435848815552056513370771546180581033138783858147634454852420715611799867619838018517319590740404361407666163380632491073859246359162669292466972001523961765261979456844209513885667696145941223104875799762901892815395432261583218204174501854784995371218117009640809120458652405921306685593714690695324779475610799530437643701765844626591101046039581793756855571383002610657331888623545802179550269017425910024414801504989573752252220460470091061095577813312657788290928538963922900552209549819009588432900332780837537260290127827550057879626602391495659981908031320344446201024815815793004343284575702828005014527177392338599944265050222596469299607809273299647112651837156595437598813524410461790511431597141953591718740659546663052612348969084358547402678603578805798137980482637208237267358901197623616552046446130199710448925538145873220540217532474233413053534389393608797732934603839329410976296989155161762960989658004951185682688842544595960125542541950345304660792170512734538726916297622476426105667760915247922739126945011566600660386217074014226493441111594971356768008449498100764394839048760791807606414257504090163410606481023457492327941976426960205775148051534654058553292564303239905683633952244427337464817816721888026334815895981586829643313260884412527808174593463041817513939869904618486863926046685216224111444806233314747561225824331649381775844969593605677527673429564960659428562886817532864370706341971585303570276215552753246035998537252175572792013536154619239096222775829297720395842489365561744126087059890966440236058095752466560213696690225612070194110715010276859749220264579813663767968455686368117496753041164146958950683267141917765963826877752758881814141382316983434900178707863307560073749525850598251339486051156003134507284246676984629961791274062942585679008198630187347162300662204291817761731761656132217703452551912012624985021375185059406327986532237333669458717916823745066466597617580058287831632640097758699614140273153362523144501132113056446957737571603648208869573977121537573934605167276548082379782835018168328759456351176049879143419851852517371962666648482919903133585595540834829864801548875670686000701218051405999606030091925786092372708662849071029987116561054851595009388678312729507885102568558136509573235271184854238151838515688571731388639317396437067841332020135306742591218019700078925434808725636636465442168031505624164555439724024661639780532063473254168982229831703751105527403858567173150461474461144200439180658307335726416647939835538504948857751615613380044851972555680384548999795128326357224042935570969144108919455933321552479990999853310852155503113389806463387703188668671096946900262092482805276405355173522077728525549411328625655227750132343506607351566465635336897564491333865282660550134069422918389351605259285429166361414021383427999476094087999942812726875623984090017302286572004650641256705598928332330646732009782326354560133948318465943106387282497062079846047211718115887152431496698001138276170914512412872521791516626602789348568957363376783194086579572587497908500964351692174470982845298926631492891033520358111495597168845804822603894809428937084305208845384451746493824742899573411512525789530129053010878998002130901819901957386145590228987284704247643512760395080109866576354900238725969638997056891308251210053591624300372899542983177744098818326402813988418860718911482917837479584985261958165605433335509676504975752019693728452929031223311658793018554289842078814451808063408376094432026423692473808127461238382224658139520109311753801606511543529536161317113643542036536583250381749247997395467183087361617611096046118577017142832146579063910402004468282491672406236121412809248523865631610773620772772785870173415044753630250135673224092874206869724818956014104509838748523032671425536930027387450078206089067173390823957608756106941433076968155509967081940090716988359345935837886992461295510777286341803104780123197449145095036793628166153119633678769155861290183964978945291788090882162826820970499684794311816057041253281970242735822246659452173279992197101310992335956645675507433819315887111947354057943492170699561749457321698991882411625566754973932027853840308804692310544869719871348593788154932063902076963221961037338925460761124329458057296298378267407361526601584544378576123385927431538908736011865308668003065904765918070577868627390260164625539043128582145365167892920416044286956365435494162996794248925995143834343631277168876711955982747218730506742605023577888169322880929899759524558647900653387991414045892671968180014388017567736398506807002307602477816295152298971736975726085558345283704367454057601141949412173020777489665064337729526713328701302470679379803666806637166726508444945505354497867938031958172971805915794264841561433114566152738582931396819013729623524042530852603345680312604655975978631425787108668736050085279952523624991675375220298967978394638542677460242230859218126810627488290293882831761450674429177847384580546665516576164571609509206168605295760830969134195919727956276107032452964023449226526450476767046633545226735725833466170227569469290096484039119588410781377382020090075951634761520870763552999784726196250106362679024126829633067196897962891950679892935449112184293432493994865063228330260162582200944280343938105056146715852860078991417700907287754171239906316119299243404208646489165059620418712420324576523731670065897675547779859996179661291341322388485796643329475761670933553852755390156969197350893399845846057825146091813095313782925417338099376290286575199586006064568286461260006968658472886795047462691962259075060740892412479835395071221090174718735999378819678093113466637641201089154841273678611181612137968572302514079441239525065290183228332487012246938075556393961526558927077218801746605273087764081709904280187811449052127989488272770184157375118456421574699854417430385824506777003919871548236347654484025092277162834869013696493272906983739990621558500182887939141121390215711761797660838516878401825381758979697637919618338287317417682006172594513598867120172262954726156050607598839313253544544184006404220449345885360440030330827170737247952543563701342147619825896834697137818786823348214190905164123469662956937970216127694378245793249355314702671069525903568896682883670689972105461364634407456351539380131700710251477704140221521103983490480354143024707476434577918568032096234932689723791524014876591901330493543580256098969701306234973675482458261433050757406212892082212634013842973563353454103740089470319060035308442081094245960613200667791343066982773366642797909876085589643752742102968967542653860198564409619109313094298734704011336369136307587724707799897665420862878318376974353286180708483034388866737538678105880295256551955501525106148630810740668204824744201393022549554294188871306091141510387709163849599451511387989037032699947821450807172075162035364950312155013210127252674745534712595753845126144657641189067474389376904402559527715205229883663463836010151472421143656634985552724853916226545316691695413350860231812913578048202869709474698856870940007542132726432150838853098400343280156292935279812301257810341893201609403927072070717101270686163475271339119365241959928912646100068743978458634223515020958375181834394070932124687648885340225468203123017145736330042036205191359460784674261421357317311053579133126747745035030677948370845552513317374267615177001396606542002052009591108497109895382795114158126778695420623323023803132471509834304930667232741087543787853805856270604718281374728518595525565028083914300376279505416831284661658974341464710398109828886651672288244002185970328437063929751926690275468505538534619777408031324599918726389192541059645540666164830748014719563275358119243848473051137785802917338485072284053007932351421060676042698458494215563305479423304924173172136709850083561394453847082349047807950718385954816316841488410794006255875317061569211787473913863527966766185213441764211830740766374382227087091138470449068992056772073801067175905143547508305590289998868445757576956977826275960600300145586292550566642296629442173712593413776649793548315424508092217516046366958277754689470224308621960034782908031688446008718228389760437093678221792453265862972215249294982800643555176737699176237280716142377122468775262266117698532467599450765642318372915547935174110451190202663343455914297849939761216496299712282363790475827510367117688749474415960520661884828978409936095573941809371031692864526908469428829169503295185581670286534911462610624357851246780408539278269871448040520537061153860947435055875785376212867086988382102810124818634747072741592908107810882181790206833787667054637390722692728733303280557892143125588644369857150636974637254859818006223849581137645349578314512626625507385955565358837509544065038555302130796674338095989025616268027502192374411776561420763448513628541006472236350064483593660196948271409772932250895479023744746284742234785542369061530571139392889363176474831577190903679263272464346683385854811426016465152738722295582835462543558179072365163732456634023953301006751934218162316825618503134715178506533597151665596561818476302875560023815539056689140649468505201357853837765537270014126528836315468535283616132768276741455789429253420588601658053804803093338077470044293275544623958982311222315075484885018719000329728754230715505870256125113006140062596850078703509508375638910902679251725552608083260788089237926709185658976519710044719776221186556991120667792153083064491720339815673391977436483528964048083705266073398340801614437627832611178666329641824345159596514286332901411478481819946306856249991949036622288043959172244089332034979733270183402349530000382085592373930819694252821492101070880103770612872137320013718914608114255278466591400150945317733019298462473379510251229307435826264394568406061195760784595667680973318392339791370261921894102691552565513822775670740804017620024897970988943602840833154187532023381379684655019609273592768120617338790305156712630743344166932381393035410909978689270408637588552072373395013019616846809294914506062992724051811989393988304515307720793404853730176957936654453353370383909891129204861238907898468739970425971461935337965595989251393258969192137655011126477579341803031652853402028498622336078442689870386243186427547783257352621210192813414405030711755271448570129713500338289178788162456248205696344238427169729220779764843280274836567509222553549764287861001567789962408184324692549028309874081772415677232872119309186739455711237126348710321433274177776714164312507390850383001275958953879087917952701670998614712742672061571993166374483395562920765392200899287492904481105763377270149410510700117201998123556760095449450547789005705936031067164949843808916706088569725906363452445172970083262726645832380401594126151734138835216426522511125623699361036752667437645814348876000596193680067748952513094360875818388306705550133711369364523748298981501614283290146111050347840033276803165471115497231101193656818826837463481253266210401397859312562648053356029816587650068213563443557701575193637234867140860384426965919148766206947937022125936889131494660475356445990300985413182469684830074765992975043673316621443125987676497260540801629780132964826716019632972335069285438690905114157588593291347208031164718216180067259798885015297675051062607438157649618564702814839093727530748959018968055972652421704543653508179302955436842554056774441185696533857836029205681754759946875176691154299419206092685564204784201122247773413182255224365967430492100719479423751669996592990612673002743271321009917868164524024532305184362154984974298315356084986384880467704447719402238622011466207242138718957096810684041053999335503320450839163475878413649207607338951606057866098265837088219100404255121523569885145282621456911004704345178357892220235525438543016828407577722138404854710045176418515406294330606307688488337944944912006685575290052858013077843276967206139917506833202061751935112653728529024726721076567567442568650054050072699419944101077174309812659291718527257224505735990477955149371969653460512360414820560721902068009272294903750782734365693194761516912870724062383960914752942203446574641931380199820667534417612804818636343212125803471110168329091784674608109109969259716547761354741612916952643274212057843289556682770381426405348168160005988972086559874825842676039136900434841771192416053913765044164516671821606761929181123855123297585702932402201318612565517994224082721295917850832947492385713115632716968325986093953035928954037525186397910465405996771353625236461302695062678023938476281996166992348774099253824339353639482067848319084049716651464749308468948868813222970128632125817658953842350889377025987962030176351807139536284386532208632687232177998318033635015480697167191535147291528183072552187184817605690178664635781137995638727443561531569839720474758915030451993277243382823033365901747894521054682466058889596741559122667597333602900643972723518509093733866000636566647133682767233730875464731366893948321594978401231582077967778943034760813246731849851728636137366817971484833505277948819077839276982802533793051413468100388869835947515201986569569726977622995063567397069422364503222778970372648844874255401284411453389100132600493645773763433553252175714562228088304162374776859570045037545922863549934059577111986012117636045722333515626038184137177930327616570535823431472669509020240754575124622552509856404383454195068207349609254120249860929997518375594131067712354046870373317884387194756986439769118585411273439000794009096010484578606122239648271682788398804412862905254188820284914924956986901716803541166817743050257846499298192753691198941053679452052270150515026423294095721905852957111102580819160057998936865604019842903618712163880102105710249685000557875522065213475812869018634192058359827748474181757988669618373543450843546874681059483734792452749834047911072412552061565415124097955589750641263974230777598260646961054545822393985809258367307288324870544559599788500733577179335897215002094929502124586021255760959974935369999634822996488956666136695098024967922843988503829576103136344096655369153334092229849529303490241055523798431864689393986783367911112294153482289529093011839617014290642672742376934374507515683714506498293991290917243289007181500567490968262644084671525145040431010394084182691104642804028351015073069697989575353064252930743738779397594736946190973958206540206204789356471139120166034825586366716185192856966961566928590042484449204787264656037403742850800694077659181144802524596825017491873406614248224180576964535651601924837100200956876349073494209489984716911507570478707245768815122401559043255979458487763135718512746632410717899759539002324658653328481392103935377508409012770130041893707006615500340050423562625779095079212208669899899161417526523762133428804001768983275337939691194791626528265101935102969232887011267253494605096326044234503551133277469521008695272855789320219126274186694815630693191699477488466240734083634418463828204657156459361416029738548359066695980792810277390323498608941441078881655701681456384258043667808358600470905044263557996990768924035745419860416718332667950773406858125804389978422171172057307289364200017273184797635720285654071882339676444902868933909364959540276496791421577991476566608377637286972116673424438261219089924457614669395396756217156964083208230596311781874851531420738268142112363580307088479350238658099671375847269176041957156910458731045855657213466247264788718566101125974771156426720305835286779980856068649196986791314998484900162779153461684073167751293701669461086456652951222515091481870573730240392202815370880927492687722754024135632303895750536750231793674854961359239545082751135527951492166553160770178781260828347757352991784190664148029186132205795325746086748209132576109814903778048827573402108920939188108472582339506228281036603311100943761437214106995372908440796307171529859165729666070000847713832820925824401608135896802967171588876358830897458912089858341072157717308674027293896490128017545676395181550546676497763021734035426410807577771646638977591400629462092525064849848858882034620346282884491123826205808583750592248255211034160661372565199490659318409338179978201149219599443256098196336522394520759870102594460373395600772819951458769083979616853002308686400820144919637457958629762861658911411264475257295023564450586855409875943484820240290174894727813127166954769218330650817457667815216822122067235848600797297429122174246938780649849763970399652513373207727291409650215486675010981259441261927888582228652641551484340853811952885069166475578108352348479259502038619284744770703839079451692051057245270024391711593460687291400237254597457163084806739995691480721563023188144706746369276229555439245007013666643448071862381018818798277426310140727049240734821399813986046495236532309659507969926906565829262698384170442473856223382782073928843845334678586216093650676850366023007265529576789167464745045037014329715081949341392369974400990995675503747491127505086359221123698048919862236977652132087217540904962530456264603651889190612731154156628795476390211272659708953148667446630908891536813045222404395311361095693243630660728632317207311903057811710215809268128708200048502207675098460367295812127465910159103452856940892889483399853817072757219824163669736414237754173340245758338730816883472322639290980073061693498179639927636637538614356567036526303624078249175527904263808023195539700425513230414639994685212363219284698595094178538035569791866929527217652571443613139633664783641664186818233325776119555014685345336523848064320708707901015164401564286389536485944335065605081263233884686331567879965254187539478275446174114103512451447325450522794429982129884608867470480514054007490016349462194675872989201935878797884581782431302735068614489714966214282783299298676379373556151479353514863727235213281635316424012141462651261617632220619845261563127206277017194270122379632672896393009858307771331614452309224065089462641003988766241938330093287621963233702313496224544571838848468996725042835946533950672744806353548909510463382512251727142340550191206846807913612044189647725110892504474051776832379875280653163468746932552605581295022175491265494543261403558447661960325175389144309675244491035734445725336775610625157403707574807987935067873592886644461849896333314401990411308695598202003974542286840028724467621304413873169484711683442523756281775275657336448638849634288511274828417226732981267700530721011796666134915600698832124020282644563426658264678469385590451652244712204952298272323507908778858555343629376421007277614569794864605437721116742778203548969598773092978591812375913493985975154256906564903164942815837824688443063389430468027212521103065597222483807432328666517601969902581119638240629125454542808886509220065069918531463165659948324190091638155132144384013802066873224623072198088655472847500471570838616028082055632381289512126120512116631007198873577720041558143424429460402254390017578865928243241252325754354813497070940160593265306703019929628771620564251957302840173663145105396779692758063495932740327328910214793720529733433796720865241842245579659156779662096185474105366842083524658413115187124288468013398680972170726897094188500212559878130646562482691933400990130033544777309806452773055843599512235243578911430507208421464312064753466072276649449734175878127519484724475140614678048456172484181796491529541423804845598959299494168996158783217000429733443172867112441767649572269754941402947307232462604175127497502294185003321194477353636256273867637943147512400588902434960461071428504591636633375500731286566613423737936881847266678181967896552678264755384026432392160397167559561066757223771288036179826781733683189556700090721641237297075668818469091632974553402251418770476893441175129817584207074954067402951854571371048852137998902118585173436958090053197086500769881809292224938807606003092773393695633722096555479887531956740123332179603981649141620900197498096344441309135352894623963710355010787519156255249629947072254767628998460767300398401927315606418754939271426074879568222734732066893755890951008606408715223368576927198046294471730445730680422556661671845036828596562482451765605624297008012060896826083976362193072834015495136290882725751801094732354730728098251926906274982290203888552957152124912844940887977383282906444833307011933125713416944834943940457258811142694317361357821607703561732902492555461174327209632359086972168000097478150530075565199820182818556461705097284466964038536634978089488926162126403513546866114932588218376659913074608138315945508633192887323044569526976483951763027536034869865796179598877981178941133544331228382960688793030645804139913884786521249698311817763741165425750018839006027294947384956669028443428225865439366750053238889838756548220814371736439030054450666539398081316549733655847476602416651755629956728277177688327868623747043670818817978997594281730272831300322262489676614991051732912938865415829437783621920317310744409266279359349962019987030373422130185187002613661020889449289390777296994181340958444883735438084412393175414755202469315089663777076990343292673731035733297460228169355942097044307500259017967832267091706723118771235937929776210504523175981163001537174814736780168258646564830406567205274984194691014064992036549236487621415795399215534558731223456150139855874792040934008677178312773026529002448182223923757848464097284758594580832839269863835274648500623067520296737349899183557850158181718374926823107796877900422826234863804856374664524001027768156156353118786926988821744542326660480572228227890499348047694066251036575219004826132968303019375232632393360697003818059647388275732353764224978694047264813797158255276905698323147473161586437246961283328431576173678280373085936602144089024210941030368795796570741457264873900789951291432603742399252728650068175898722724187127764829535805002429669786408054654050157919051949601995218757740278911870296458323853993740562885196284088978725187929817968065066946066610148430134513427593239886557711191836404215465025229015599777267732146696688822497371874716528281224910235444466045317364679227809778714148666600798476922034878502927100205617681759390704027624374614621319421875312783655645357637614024452228274512812744517583201449557630850217114830333797623329969507326728395859592283301125007137342111328313144665092359199051610964020065525671651517323378206560499321385174142883556251329124852780385026107406725999852726945949297729267286935678586532073318244963893640274803491393840805363739182275296657123561339523614034991482929899424173905876877445900648318821176470480287860542380163993097537612784793003893605919262141854034362820842133940972150215614386464179673299475327002082132627875213103156824227660491042898804991259878251115937076583948030318827951702633726374830559759801842895482410406888308737313346558888606932326261448881753631520975041676467867416274412984354216406987374745545563415015264575655878228942029189497679190663912477749826206110613728659305406286411798353621791201985828014639874607031900399884610552632343054431424754634029107105381723597941808640771055660954724243138033424201359180464890494441304123009599710028898607867872280490114166750233175613654233243587914469842458167038463074506359390686875293882103474664435072003327445715038010911004341223087416348042915542489010393549446715597392718745550245123993382479764293690705243850224768723936980914933186460525857320687067754048568507202808988849026355138408366101454658176667986403775055355032964474933676647978878172170038759971704170786422190734283686198006042613022885752299335384520579103522554335658856477023173093482581165508080964947751573778446749793006070670126974567876296338477183917579627192429869451538635376696356744059940811590849419316827183660636319236542029876132677693285174542280786107650050572084434250647186761685166616358393704791984553304039052466081438492597529393436822328702951884737824936517269901079260832296181228164884248017284961999849568968806048696060694271762033674517649969535528529676184973542749843348480097796429322758842120103486784742641271881994286258227166762141011552467846103146648903109217723783266927029293069999022510029998653326963795512078510400376553222221320468421533885708925873300176139437118223369606858320975497035932896813903768180063160660785892507916333463261577949107588218432184087380321928848923998372431081127404515372088005029327257586496789968442661983581863013520384708208927932525300976739100073078833957718300664806634796439555826214080874907559643262663647534148580659664883113683382536256820367188328630436033022725876078446112497098869139716278738574637113277335270013889191265909937387588494589065039953198200134497873369116295724772329454545280198955961976440652474815179501035748929656357058433462089791974446741663445719393299630750446610258546695619387045496139143666644347243943541966296516945877853011995588905731547244329900856314643875696137866856265913850893267430167636911770229026039208830622247742871774354897180512877832463094920677417629816253591162130844694534215034562179090176232228753845294185460904851981761366512359736902272722349480199502380588517728799399960314084109035325000016703589266364762439267316353625909178728425959334621638077292370236286387608067516617212495419006163505474663375384182632406329528609036685257318252557624339731163969862439887105009444024491694006345714489463980073507461751585952171609833011271074438609189155265290478350914075483881863382369725087441093285683871686542048953645743440468197771747968667063058128627303671598021372715876596249176719319938027575129909647004217540153590430319703979528982072990038302775151870775783533567762322379158989267417524480951971583539079053092593513501450052661904668729961740999015881033340221961684285855885926858644106035893426232732675775930755111432238972608158020321937180426696174861864436198029136611640846052205850855914735802825098104571620439263630651896397834953851410363461471923435403719327932612686861720446479447040178849624553189252866021672948220890847193025446160684026097345868212749745079103450541830489969966810726515440983049900644165082258835597873427854475055375058707330032124580851016133550431225719273895376371510790386975062777967270908432118437561960786580909607029383429053860234144383891207046338229189055655240166480273660853130783088225529772628557272728422287858850470476581660658369390027905721033247106076414841440614343606124115832961367204790700637369305972149364521224356418654338475876385391395262321196356317308423950498411625043135724634565882849252725058918883265760091860356076542453160584493457312861586830178505211455988271646756523743383534209033125975005101697493116745893766283118920841620681579872158525816558182154656521040323283009527281473070881653076115581610043440023739963384821372045907774393031917021315200859361470206167996881055853280964669369077689685110799799123471752276494195860269693812470529499274660114958054053261509697334627022262733036597279865641466207436777905380906781285037693240485062492202940544927873478153721047430017753124427111444733603620356675418098593708000184164023730612615185802015855734022029347513482293621925758528261018942494833473055841864267798059453544463616386115304010188997709137216177161225716307766661774076116376356015198911249041497758413829395430468028802556148681199558980867548352898187327098983378226369611164538202492052363961805081477046557184908913138995418584313163661258852767549920069960540248073549543742308871804158355800822391661572082191142741503473356512145219279461929626874665245012992979807038711242991105602866435710989298887773208278130116022743821716367573938897112299226147274676097213630931533041767539969575278225335739973441779656219757556868220252671542307966420854407642495236255940317131114530659709567802822972955873769815653922816560003982392593547684697391337123634482897413168166180966435735842957265342284457104214106324275649206783675553988665130314228924073824429220724495398448325823101005495564221012953205804548137651439379037200681831900178646486138678672725424157946305483114903583091997823408589874737232521848851772624434168360616687152518258335746940248640883310929387233900600539273880340642700193077797053404407512660541589919229130995897175520150426188333574954436591218715549242974805198113726199442010572779380428748963647850277644381511487063402483208022358161841765859485643269535392640576861310684922218621054940800670188756859332338874800716782016111609765415507118744511365222880536829138869283371075948102082183502520695769470973378405647170456312065779507767890539480799393183654021402968714134228783387901468504011123774820859605528158300620057940772791363826288521672253229927762006105696591073985784927891198832567735972113671804420075412455903553018398192537845413154010431836628097260293073379155099752514883285095092316302681199124842629434852575886606523095767199046452713268247732480921609179267469152714496321937940380956318964069023771057537552845468598246238774412244102443006407723314915850698575639562562281647430937614954082056875305054584957528371409512770448246651336758150765478763775137582286267899804400378421659428807252926444224581469232837579189615240357739030970253418138204664711216698801102216822411488266501785219888256544253383007790590825183108299038724915721294780428871049204827426976745140024716875012934385356693921869014862611780453832246583089653389997798566351766911620574217745990071375054641179712855983438179659516238353575064805527236977110282419559886136621564925475587554968369116430865095955227664085975727632864840827189456396162683572483448258477010894074848650763504226387238358995893392468491581541420617592551544695458333325446083099390910766304789069297120010568584243991566922190860306426278247842697101098418575192395253175378424706437928428380132685708179743949063307701642746379872921409089926308346748548405190457807528868824364290952933812359011691782476119017774913989751890795446141899939273278604192393747035975703894130401798880453068390562636965302747681311116857991057158072032434179431547752031350256404464238292832240429511358225417487818693483746815051455521685919629814447351805990278875176780164138303449815639666459262785724787389019870388524506976375279338804198604828908530189547890213859446321866519027343005628007445455763152086670784447477756870978047154883094323660737773575615056859671072735149811996332054743937459788159129660999127580255415468332511328673345794225439639799304664028773856099313739823190759357976557095099677517712792169887207050257035234594662459526169974861938882251650533376082798925718550752558241479978125576647121943832078305649659944937790591417324875650149138036964843441098003764774256076409729553844913175584591940938513948639300996496669185275617118784001929336925896493281776693996577869169310732488932853952900361685248777850926442259028352118080450513161577776965911242696940050132702373132034860578478353164243866901520930863236401178415502759829309607202269544081500833277333783443790498841341915332191917604540160383149287632778092084123416150695174757842185292436448253728996842687037935676625399894617895046222375134899511505758144174425481888090800711941717939012135345391808905709689587313808340745374128021754454524299087881699494400338617661181576263373293596348190111791858409401823160489298094919838799395112187805630149999917818591127403984250073917366564886800450707320474145226133496783433657241901309357835113976487480240989519981699781569936317697961910608694703569724279266754483034548814835689253430869613796239059357830031580720872851593608186327980081595355700917120000534450231004307403959808609554554526870989230923900588738972100377585053268157065615059492926363136994485284203631080105796442330158529573195789491463075489904903755572390453142922592754469668252870514936460791919227329916826932711939279669583274445014938683703604146657084982204088673992105210804540085797344175654052231401404000042682115724651837117842070701845525470472553411543245043482234508781577168919342366996710515809755313964369707068940014351753853910837209513838997823163975143340639079905826811116414532691273002117910489862608930940279063576032319412904710539216188193019366620084029566045700336816678597613299295440075648316140709539281661861520130746207762897988891897796148660605285801473777061144129627904669042079937916811529063920075441115105454832616302975205992946310951420752630724141256230002217329290750378252609054495543936573154505754657307230803292617812893560633379390183472269906831215771064644852642042574503195494525576698452735889565811663113097699381234197185225413632426265630259390371145167801387946820438120707968377926766576965487642728743232725893449073374765219118552864526626243287579341129605110138321918480323379797184646076096891151008540448780716389304665619396323987319493143829837054241262755174503998959099396261547840248382372722789426176171594348843509744454817880221703002298368422087180559118312157770508310846045251957171953187377847505026907256642185473428037479501797727644664819907886519738166034559426792076825414876614499905381530823538842553987184153497277999361038211605893823943481652996730605468001964169543492771960798218079605201351555277654229704019106071016459080222792008624626224068959297965704742063586891037438907607483962241747146425147983440801129882200732118507566947718659606002906739885807646049219734622159631341745070293221043229975917015410957950438588399333796503905525172542851861272794538068957298195983024166508476459383010585405090228288316355213775347596656922392323030339931560239023993934770228124930458615945460061612844758095138947390385387156117299960988870262719998288364592666916200854806010556432461522099347424493244042473711861516266987958450292955004537456799979296388996995073539802177657452413773235217307664357672281615574577331998538672685344396647643138878193158326149428649421845623978096538602835364104909900783306150669772210124049902885524630057034351608800506506887709922877759804322844098523425043332139284900795989003201508143250169150038267077054014763541891107146859814326473062069862036009140037297139291387459374686636063172325466833484166510149333237008964638351419877135495548542698408892277032574259247936330818472446815629890541843600461526134636380096830729633882604785502762366233945984636009858169793893378089640427023287125094657661767027365710530143443255297240807280283328133386954144578666109971621206615925857290585638023627730691864027031423507222484245130196975293319802192120278154654359093436577721311687399930393863122425010020363765728409148789342994919732600137950670987220059677325082189694399455278619801793523808566352338007407905010704399855866833638418943467307683569720252680192068201857385731240293517290992934410967572731324213909425297352412262071408672847540424954268096262401571996185274895351270821473695819489741123137322322546100547340462168504515297745474772451066228334686103421827937509308772503891296281055792501528971067200501082359591156944813539931504306783558594544029423508902568315603544006999632335562725695116427553974572921680494791415666616468739245783135101210781996334262716060099943686548873309894964644064459451801054807663441495617174453876290875076149551490283594172698027679171541350785571648171197868192654887620509469699478000574978783178402913023569351310812304086867339280633454966713456744516440791495848800354051068516807882302941267075148227461421856609632399146675994270819978720794431073952040772322458479976014548946930567560839775409157692621270930506714281071216038267381084182336797744423621053446686801771248168496411457156095745280346167842352111442311532549719982831452301956917864615301561531515835030428871782667819570849054001438346457078477551225757151077966182010645293922498730467837986381258383901025593861677710210391659783702694103872492659349061194241845029562720717038890682034807754211600056965033026785026244414748420992955820859027643408879936418301578149863769638615129291468873658775804271288351167796210697975671681924877365849665101855207033322971116604489965069738200048113099203018406085795359683968175016720087491806808890483873541887540343556169804764517145134131356202492318481452258976265121235208966297358923324782153788026811992680388134300015057926402062739785766526519805978994405578885224142232236903132192615409960226518060822637923043847966033059045784285074106652910443506134429132910002945733489955848478301281064999604820958335283616494232568968732802684638055793024088796828555898172898711329564787464969242422554238531711489728519308448406922323512071801895242418538566814438159555752961286362189767383257679255737601236669233153713129528164122487938343811891337058676809590204536273906580683182912112093191839195196240494266713457584917655938315945691958455707654965134528734934755162162436450568924295071868452951233515183069139391038807991626908307538801705651760815781088769513566338592249978972444686583210075994494617149082084822640333070078861255703401116853120174754994287882975650692174371323779375334284210702761638833138598874312244916116442213929363745906474341008349764159966525254891335657876408589401930288101863056604088280985472335499394235062420391649732271926669136006825017271850274182223525770896368699220452350400057862902951498831747617073364746197629651799854022033314762891207608637784669055198537361448943687672953999922709240615853125252924010464526464307344931670875958360223693459773257450059263973870122357371318822423088220379218428073332939400946947760316843931054871861115289473950472493269036817649788793206501920516521130021087321984565629201563253825953094019067329647233900796348334513001573596992500807595592259029752818314289126124583427456524717853226014931381618617244588811724395087695111972012766539930773952000301094688487265455359569898773717331972404418941770764770851039142956117980352849149584552831099133811968579697992910082675334700634711082968355836605088146963795602393115151240752192117544172509371245092357026909568441302585272075029673334556292599300030415205380959601014132920670854793327389285969205257676481601257140793855695749689874535090757409920225322906987176811936112220998767985067777395951722279246683673775927211469899617689570034760243695602383883433556334148033454740015440051415054444877816313447476936814008301823837867186947833970897563760351460605057144134244142026734079583031032736230347051229091545405817562662730545387897109089984923187352766775935535916972288885659513298781122935288579156417167454811034052283056522036314783976313046807628381113457858793464837707286642175048782448084172008256640996325416593313554818225485713283893826886762683721305575682179667345857224720296310894870994708903104785978358431008989674891049166519877488480303114121248211781803636535759140049921521327234816318871657804794030984381237099062687330245584527463698966575019267732664321304810120611761991047736855940496833089069341807307435942474443130839742588262656698554252894009946277813610149694345059247574631428789061613427659560833811520215715538316625190082287310042205420592466772494812536378173249445782442988186194875708789792788328701490402024127989847881503333134569851380345136686058759073610741547524692645105409292351267678159976251657604767028782431257345465179242182540863909954634507875781217634925223181412823509841654557572298498484803238893994123021299366711011428202884344107538418727370662446780916562246531600360555051146362845074953435711028950627043275193266002521194365893836801415188778445651103446673502569271269498294320604099522522808461266385737247587590385128755129585054566193598076869082771856687093312248337497857126157621876485467410532811295423036686322993313587780580873791643206711825277842360190664415616275143555487620071208664613195884848321846128704445108368726368268100606594538693888143699447960624008338209812957963962255397686244863016785645831411862678451403967369891553624918932048036893670387745060500457366756629926870498449332433683241945858938855422582678989512006101910088490350508991913767253918546673212945164677720628108424291574306880164495294142036191867552329638528849070285374569257000605518599734806414857904348215215700118318544388115579336488694118150275208076919703377985527572640837994901170353428962911546679374023590780454805879973218796552617628354998154785269178337588988452530633601944927084473260701619031715863892712307794855273113788647901029595984310485514263894409198971454337252736502635999881901702127706395796771551670387040460659596069182880359844634113192129026865170272854418870731825268882684163963701542372018033523500094332903697621228098476534555913612397778744009845349069198089125971731336219746029382192389504311964338658468369517859552301523033738991956379836025584260816249109933399311342404596585067555731179417107506484337612066658038292273419048252369532429274613419801278726633602339101238602046575338181566539584424425903159049666750129821723575473729734836734114367138559443083707274119318214091716797236521479463963141525199911833095168573931322687425840088838741611967974655654821087056873133280753850060751551313373257101945545092554407263099182040539658921123550489789315789892089137199010149333208511708234591514347135870918602107595742424276533642950212029073826234940765139292512706474680237692385986108675000519323041217461187469197302561796313217279222179560776721116117268417789606567517369494756998160930729550055636641792227330602533166061516702457268240814443215158423237419546883900913937039915935180518604148347193973788924698518294420822108379538615821605287200077181919384545273082314980452090255134908450924823440111753050311868956153305779700521530369557836920934205035302938121972410855724664108028757819833467282329970690323753858915862869274220112036007079014197462497440341706064414175157871360332128671509609455690281302158933161621513236570691325246263783458401880641473191463218533791343197413425329906223309712958635604056137058383338684118546239128416113796941440022558100716621062049645515402768609508873649940203765009522253549301141430056217796920583615043347144220657741469782595909276096497945844401068293951322132778062002865153463946333272117999853748337672284539831740205576423176355612134563377413565774412021131498922694400930508400636602187849219919503908631452298933209089058962186453823258976491374261625716336287212027750757820109319766652614473319338297903015087488373054463203104851128704212492147633429349590473799375300295175879920936622529651835068741952595569136645656610724978851351747820769917008846133839840303232414816189487061106043762590733653057005792600760623973415265855027839622180585725843050880881932825905365651058927416285929356945124336951037984555843447378518991629558948694780341355141386996074682194732603546262745158243493338432401178524067586244535939545170589318986574030827540150596011497013225683626138836550136002958240746541544290158153563964404852087765130660910346114397824842595586540818112567470229935942086292163236907580450402270882484954959290841086081814546814118391164598168810004184319239701073783685549750734340905723920566046292227456383660269947112831587726429202181368460711600551197598047823641292665013374582860333114188918694882388133344089207256444327099796405193574308777356060423884551115459982514657551573513270057341542615081653915116182303241699331004557112799759988049639657613498724914530465739460327008702551387174700122954287241935492940622620582989720423572827023102633962722115531067443147799689027478077769320255953284644256858960937183874463841496299374009352258834235752191158474657898451695640851486535905314440307845117339470329665978768862419086204388851630235658413906173043247306329691601663410199703005267203734718365306376301071526838771087173570738194918725920482659827747924966156132053305174877173423506801382088443984855360324708885827564803030422458350236533569047267582686589966341672423426430777754435172111824722788632857808173716001179661411147159650186108280176460759144954979627400338887897094469757685924966609286133851418145388280079369696999611406900905470668986800973265336068775204086075767943323527466146544291510090502923787814391567115118486714061423930050726464256471816492683692414394319714034287697836540517646753898019075383885922213517949775195090567667813423089161721321371344176299646368832148959394566470934692243778776750218712233559825324342807235604470319635390089405738611951658549286748237295778160670396186264674254135937086287745657322757778127252864119787557731198382396889765152023751546471142830686424854506117197309919297161141876653569970209653980881413254505629532607360561443264235358107314984647196477521516911306731925832063743068178892395171843363785128924127942890105027279026126516737633935337369835520348764877919980072192079420537777772288784015447684416750411239897989610991109062581939888242480699604433197814006351391288742224175159973434973370702003057452419406434430372708425924273982692331065256735445629375934557326513327321899428453672053703055375917426063375002974903279274363759815619780478619097238639814502733500502821417011829460590324438308311034399077078444459245524066942336545581094263372821376722864991135192595617057723347600868636104494119155944639210719613419171269613013227273666368009937497184808571581320614767172470943051057565145243365925753808865210005886604989994749169831593401358809226024030516104301058166230307352045695374176010194585745203136027056441416443258551337304438947818858388023489405909758026114039553456994818096868653366819845083586735532262823689948011742930888930465539912520103049050997431770631017379613805200070840338911304400080770972149558790086398229939267113817656123255435894839664355137407446647464340709320053882258230203503618068840380253283921451510529443939688845540873789942269745209027576454554924538491693734115138071469638517935010316368643486982107733757829285526335048637128267143005139366621473858360965525818631388064766295416113329022355567170907497769866068470634782717955475312171948442116374904058780356515118233953822540303659404096254074639807488113061807962427033194441245637879579273543030496805063296870915240635434055582171440811462941263751505914187966515618202624164037682962555724516979800816364756605490577108673133556733713848317001262403563513966495080456838914233143397107970547876072012822668024332106367677390909509670185730032298445178335669516528318027976632597287181998338207624177794336257006342971362069799510755300901229707162160157669926192036140286894251948843510330529530703923788483029611028418995412254622643124804432325459128067033929545289257085965420918483582367087795504048931192932801034565493279556104746651816761643744585209008817853081145285539245616993452664841066546928085859697184141481372390190219145708709262332396111953814464893029800956825120286512426595072894234239339695528967779759647128637699811257233027769095144603518041534479619498848700290981392893058369833657188157162370949275907657185483551373950094136009973882032915317926248299370724567751811176426275020950273426160672997433374763456482959864677911827858845453890055106560173342400097797549444360124953107239943486914658689797252622298440599629587791835139770690636031186119200356985428583473350843241049615879658428541750320588532576730043814611453942074747154119667823375099688783211238892030599426907198546440226348015283307835431165987530595309341715062832781183985582311173640465828097107924885964952560933488056578858612184705704642902964387638005748718173623723699213205047596906756338642639668404723704277070955304279543291674852915901569154039499203648175938136902728729930258099014349142560704295727379669818282839401217903781194434133016793227148593364915944939220582904666725507964210739466235297219255428259333956939784401733412114667387365930976447370270741099163595232680660437924808199526493482571854850318428565905251043795502992804338619885632966362671184769088074302770394823730527739935752245215205976403257333715232524437712644314404162904415714972309533214473149988389684434156246094435322271027086327559523820567038625213588169133215398375517385995848864280984747230388505857253212139677461277795719305407639829289553370631049177278032913726966825027508380129863336837775766129886459085452426557081672377026957643335306485749571899526299110336568122613282573663184013840666473181197031769159065530534298683793201141046046123221350587924124140448751737367224163645453424867881856294088552790525750232724638045187182376966976677740464912359470074776595522672312159767035282488526772662797151903041610523130164174752799871674461745884062694344656624823331549900574894559461734755657022160484299846707528253988632883646103617953593794436901874540393266175411084385199984545774843499807278230241983124696259686031282661758529582101749144165988330903202050692460606375080032332440909608198269639052000928830249694850506125259726635898838248918937337909569254603013195982675831683036786773968887776459121242826405750218175911897701749753059788124331446788101750188878697376280632862635031300296846982970115192647884640740857769448866955520754190717551797586535148581031978751639161616802674331706418730075689610848773265650234231738711869210689535220148221188845620330135613730829385253806835838556535774872834007627279620088002789512110294956426574140392515387387588249190468835933358696392219126928569663680324958495611541536462293165381774738013864238125001678392107950927539928168563666733110024035049209975258305972174947613472967709911206237234238572506687127448132526853342617167603417019043152642264424061931238596988008095904234870523588759792772570447148282246262816293126289022518164589117215116753619723271076796396934494998374189371535830575062496313766923864248445947047155532577793442917986766113913915263239112474034383445238319143215686168366815340785619851642325763900324175260369065065116213170416179327204716320676848662866251792603092692804254104873763832231429036041060391608050406176391403082709133226134393716007940748797880202343761401035435955360557059924368416644740407396140412265056737700734974991565795543559185467747149607673000658225987508261131526255268366895120158089511692902405744004192172138307771751283602719189666692229336966108492940426258239450426424846092736449585482897664130694643448023895147038017466137393222653210545350522210687171113620981994193769186931548758438963916936355840966551791747759890457274576237032502970677297570294234502365864646598161561782936538625293135445723655470515304218727148226587836008893715519494742124171780064085919042552492922581878524041309036732546822926052590968765433704735608402594262320567598454294023526309895426209913191944705855340193083337062675986237739611165487738252160721110872291930024572835766799347191624693132532669305227360248372565401888510757451172513600321273837500318242467685950721561800182091284604806497830744576170933598637136545391591865089557355477185867679972767713461500685503233464244413069204628563885503545228376519187331025392762123389451994466268110285624945148204088892829923858604988752257009233682052223925492416631690655794133999735518276156592594064182152570515938651776682894868028234951152516524950913079778609641036203315975650734597889716436952565119853441525587347603635822367639709656562588529370596703622690221053241911939771512418838166006543910162522150950569702717569458168749994254542275838612304897700747483896583280209471942023839074183245652458785462763176224806616901689492420976649004018310556722314567139384058824301858261882488951699163469529851740812982160620204663744475120041628991209956175513060518385282336111489585880678582419980836077679338179707880343596210331274645075797204589432221578396862035604017367190948221270838422120678417075412567070375867370617139660681481489723161342147724873622629393276131088586360781333440298902620586929414107450962643701237506469273453941583596116279769026394561153923727370811297477474528808185973485509913671671073235699318092557694127483551914885487715847886483349388975840660191893809920009465616951625762538401922315499014079581859830471659378794905460081714058425583704516242074693694188177740378533148971030376569933574044274422336519743790897143849828707278733185044545851925789044284128231901075850064115667349699488015314382898526487136128495511996491415770233855794677272997979535077230096065580039290455157646084215997104215374258177796728438564555229156003938570080149924569830310389189040895730202922315087878118762113644603848099183463121872949195864174671215746979191371335882295354914922334486969619129813027421903223058780627121072805121784268467462594657867637568967273547481083282593296998629947413513742155929627368194340345218313029991542057964599788974021582733739506973602467109101388739130325073110045026754546357559087491618059852991748680971865670182488031559814602770014841981773840479479173449266796072756130310383853575882916051403078354801336079409912479966000712667037199321296246024882933712342042421506310264728946898245700335373538715895576250758898474220998670663362525083123922383469006976929307888270772809716692556373346932885974021349436282980341384811481374322051401668640676990219933770232348547028771473310587749648281208707662517816125581887119016636377737560231182069357092590701288768002302731356153777669295875078135297200472758988214919739923455749090495881491650798567244071253027825223488514132427821759779368642223434376973408958934421660048291879202407834634429066506460829196285912580994989023472591410984222920500600098971891533516811135306168133852832880773009730269427792717590628819276575628679664307337688945076720418355598647897961426519539920663910855063002181473195623457207371403678024854582340510960310060282273779326562303790925399134454688744841715272181336458978443097961211001608437930857610490422560442821909994351928526963039220270506783434699542615336032689795138958006083326108831810282992189417834582082694907838044719454930177262236618763790578879945378922502734623082367876284273265996378136643932756836983860551059424501227152915705140950921302149876103078662021733860716445280861874025484056231450676741349471037437961716520669676766630807830962378032739707005222078630472055146644158436231748220062069701826644377844875618905658152489459232130904800087433992592899034262128818002109864070845404290155504861923335164093164545923822828365397590942928550131273065500526111563839331760138416720610513600602594009592787414486241329970274829683119935808217358475854820208996975973687944795251354471877275853395009631559970886036476958728422653878124646614123662551622153026595310304115401921763613969701449726898405595225648873195044368674583642009968324110663981273536509286745398780067170174733341777248152622806303377509449838230612477896553699585639069889443800645118308787125104987895211271190862802882431212259442141381352497504960465999660155492924933567211893377348074473205421928436465342426831420756199161293953714798838564079363397563686997080502570462038161813035949429588966776742324673072626852246742604162352217822266909612334716587766142855196337992651578903340150206969787750115572273302812874913535471231164454184200342291836053397441581493355739473344130816902700263283055014163072103083629416008840818409283004992373628764358332341089284495345984875022997052420234249694643754642716731803156305782904476753696966167081372033514715923265592120916604653577284946167645718130124184005713706227582273411688274463767547060509968783092663832483609097500892962314741739227426062337856704770582412373530241000628635447342606049209880892322565846438182753360523352569050875196953469931713279957052078426297921837859906421778367472055375723384684592582108270437923585469026157095686369059929610745000375447420647631476315902853939396163961230623631021633285647537699293522499124883541691924801546371694061867114746656634429735298453589929286391269677934674017993400373915276838280543908255491329617725818069725292242111688727553651451402400037962143164789994950342840241179040902592161280701849150094518094046679005248081486686843445341807730419941309849744040600016735699864995362728341584601432619024802125293647743008698639706596548131860704528588231201248643932236771377261788832211895511282422778815846900461703412202680000377925802505449503089802983069000777515554784561764692373357192325902125492882740413347471420714430947287716917729017678689843415403530843814300999272108486684485804176085051259214649907141922038329653623952264614553139006574618971136976082240890430654296771314251276615800828885188619079480752336774420806651546492399742984299127898502861685448476603879868883419672125047331796521585352899988628200310624791029367010848871168181504751909536065812616869487740949462333230205742045420130982851655594663851654670244231880793501227420115445777976416763708754421542506078169711832947363139267591536628377868471627476874080308840953292070128928515569541293041151812075390418409335524200857323633848188555167739592763566183457662348422588659070632538610454345291997388804381469624710090154693269761638073206065164672940856328559260443928641776376450844455665309136993198314541277557798990113458198319493350395664004120221921453384749048995287699269728118578533265002349151945561459868264639123475040621580440240540686498577909866725674306273357648257755367223050675758299681896503797621906854370620561831605750170570715797308539881673542680201998238258497514657482728994678492398588972897898965315769961721344563688728291898796159110205915693591573183261658769972457726584413926581570057512655311382788808371774463089617928820757410168652052258645937822556078816326626609266603217312292276626768610692664247319909022835894805505279796991537738145699318432401650568661977170513690205959853726845075882274874895151064861751439750743584419636894476880082091352420433381221942412792308250765492038197222987827727197532601124036376529190664813799854899199560975266097734160566322899387425710010610382176010023125070980645833257821779255439988407298130873473627416278102849243498033234103593555484186603389511527081934278381559163668234518820707824648037396498986881528588914686828487934080356799082595610885420742727818375445191575399594064877724596609208822075793867059302930673116739577430443918944420932306701801816811337405093363747287078763723457075338138663715278580586152607222942196645943663966715059555242140123215525813053181415769318812931046620730710667213425466024335095780008767206514947607179139992831505852954725050275363740674459086597671826231305791118901542865792500590857125854309366050140335373321135868125807748561526771571501997273778675532268046076585039888346600704255762427173894670996669520402468559697033509986554268646442654085892746415137935495202217158352571178119039276857779388331702230478103093335042002474650350528169557273867029159650234553961085193829627283225138223545477438415024151707062332721421925641992068740526708080741935229992932131163216713392766371901407615913066412342314463297105922000542428418030620603481506198521026178608670091959234943981077243146972565883250275076949868977154304920365132484571227333773627257225051066541609205339180601039145369818760061044584507914756144737560024192425259691283832553501191382987759008137289728227506273306561917167038168557752464566689416100478393623410332235663193516429940138915123645439813403752276385334421313574106407697252663966690819475661668063125744120204626206480728040758737546889429743883218884012910140336657455597888451960615092949634677661898093549157645605212205813910483718129463820572986933593752742894739280942757838718474182359352118444803324500571211716216553437859635295261341847806944540854709353004800387803866682028011396817846948867965255656473927560598379961214331984741322725818945591342803041378273929496029969782678960395797690854825478147231289439785079444306306109299205776441542069344977227273105454430091987101068231605946747925080569074011501371287512324373138231277509743090970910916053094284147884349478441534662280854656277302403426407153794515786592160308227403214089501085543135876797075689064209155125706682121313491913966800092254155004094601621011197041479693161042509629130990822006887448961962470790213857447924105263792885290072325973889533467958417366886365528599133854931510700390222920612313132329158135219698633879262643104663827098861304455524232953100092725736684976374892262093487894103731217721219282506076828503729076089730448849536344451166846228605635758152295069880668304790892545494799325712506631897488064671361497505757512002573232225043866690864992481623265748425946827587196091076754517254897168646675812954626228878126303479958400138112089667589493676486771200709808270164594385937760795825349122045396556064880252190383735640514842498351941134630265855763355546176734221824255118330161078026950955864893406958357200734299253548316994981599666647555692221440351951702829803132019420644033417044444950354916516904572201736633648147899089106967471415170583912762384104933885066100531262741971542403857386090594483991664782875160470920882731209179441841186419959175732383240449285179863241840675641364759033147896508901513527149316833401080028749227035173939269578455712435662982323268852992582096768089391826976711127439311621949943703559413086022384359745216445135531759292516047911938335302379096106686900981133664102415462303598255080607019271325319346309512293351280580686749141089826234032615624967460332666170515776958751898091174468453744985695756941887292340529548485298121409634668672668253836967344590835014308642444643927800357199854700232407640147998456568951081755355407053215926159754253952237148411421376759327221506112987515640168453055418554527293717170086630298443632918407367204795766058599350862617529128157845564606392375509742020099787904408001724178018930090272721102363008394620760131365821099464587619952064774320830665705429980719634332708028013614347380627837502773357218678683076480061380494608997795074462152328778234130790193230373252707933951101105619756410167439344311028287605717115203170851487810285787175439933872625045537592173936641152642960698772064080066667745489037421723999018810140581168030032027400635786257747491066639139337350877026594209736658707906512759985572689293885163426227141425997495004520811290135045138870124935705906852045374316572474522436840499421842515255560657670444120749200260509490578671470586075463836681192815124468649882440556262011011681393490008052464565411670260909730672662564637002953538474311803478996318172593780560775401807888483984255119951524586396561392068450947561156743718438078677257062601022321426660648532803731940635274557708521696345663687818822049822678787235965241805406260312235038338865011653632313996786779462903377676770408259505686792588774229608471441771650463778812227584746656610892759774887650950699132899350964772487478953925717589077066772358489524709625796520847898281986776660432504072908189609678448568025803432184344430560651597279952697620126751119935144338598923616118278415546288184593951139071984829651862007518161757547197431014318176075013426428180800217549053340988336615790652053524498717866872096086365052393088699303148768537668478906651401477524585112343808815762216731089259165588393336698337885029544214159432045745246322316904176100279984647036671208741668428795642858661747434209585691157153881917762277749862181970005628342976828448358994273523197152115291368824593082271426113576457149603992582619860444119712503189753268310360950666021221098577958177185870543200926403637214770008050328162854706388148040408151946925796414000831118497506747155548781830831554084687925318981973961582115045145859200854093647985830012134486889975924316903270949687629134530364254819262765174208356249510281515385622111464761449639642418320677421668432802281288000717895851067089487705949354560378468489002754785710343433320203592726484283198118981978936659869373671595678519849065335940308919198048603485121817421449604459405796210754357319208570628693437437983918776674065385767343832850016167233703572859638275456070031076001922238443302521526579965698683269318374580259437304028622957001006615172255590161196230050218378025110574231093515586139857792827482818410632868190458734530671472951901259955321752966731499095079682071980136745742458602751669690184970817366167435499175770604432389238091594607932319615660011374454487450033665590163678169209183929794024230206890653993198601659123288887949990267591298621911168671857863260292266597069637946503149537653165220015707322847840224000594646547283404982717527935853593792801776820534514022529630994299987290698251444248931025940320072992998349701324398196085823605312986766376852938101258638035991788059695414949391323783924963754137158876991028902918926962196381754664666433722109727371005687942376047792933606362060391464224352170737109938083517253302326109428899056955266957770730475030832011148772740197769403571644353073129050762606190748047244787936723984677078487378020967483700698485656483188970424986794098366499406528980600858346525965716962411562673885556365756899664344529495606268177200100674293152930982867449971799335391702405892275825554417136906279891779573788124716223651439315784786114829539992247947243828676474874422468555686182542656322360965844444698949320919583877526947334174366701950993429615517707719896989556648462602988877047635414979209328233468320713124547308579219905039709966667039879986324081187193803426581776094119359097508545667608347744147785520590802253246446105776849370871003804295971252080810387222364680471232403696356254684175127834811103705196461526996071032023788487802049262419783058583968945171163140188655138167948088248196148079592840047920736379670669039869358386085381049205276526997830147113748024172749328634503265649396546441011867433518746914553490555038077615033497974545272509521908232417876304598736451877090025047870624623835714777192460517990354597763679484833143166008786498558434331606832409119072962844048335632750065647165738480411824231905514646528220757409785533496403054641950698919419758133639475324294799466523847444336039580311561165888644901751310398938075539583643126643637051920969729724297836496339782169695159772257942428530071387019063245439048761292747430747826159465285476944654989475152834671014271661766124460203542991986721417523264110046513410295354364856393487970023431140710605739540754112564213595296626990579326630852520998308877491537700338575649364814158732474854396650109846925752674271370591111381096979715192098175680821693242820587883714626898814297949886515668665576931192747428166532168671581574212473359792667721628123656773035498168471970475906148943313474175115364728421127708993655392821927866706040918664456727892725169194776014276667868526764730942653430758614233539568980944205734614149271206348533367831150052759885188197006968078161702928034662290670945566631446618151710983822008439678173614542658293893654502893476609512858457655657043845181656711159391520633879170948127469595023010691968784983129733352545381387978446467107507775753810697389992942690056821823604943058540435377604092442806561209160881400338413157064491608709815650785431567814800242909640530547612708515536611440590699507046798253828588689244925934856921378543145529671365679954404721801591869864574137308178020370980728548483050197113527265291609492917605564012467633651687427510817666226107733073862468564087217157356099344922080150964061048150170997823352245420281174665374526701325844278709448849501150460433592373013686739371904273524117528284057202553996003163850121431867054348466785647305338228886400925827061608141131702153036783718603173414307937546507463843742232363878744145551756677405854028978912872060364268372751196194640301261833718209219436600767018708708417138288230105248565942386327804501399533466850276168966359149303057499538504466967976018564577896223001523917935272867024294187779923585094996483655067541146369417250666034624354793656027327016212184147725598128344498437370454864715341251570816111131486593333058629175637083880041824840232960309733741465735553913113251100282996221051123741860204498106711956455261324866214664467109093125769385016611881896536743157532572904261545705351446624170938419310880356452551282157020671821661967858595800648761550363471818745398981774356444888952548102353102150839049801834016861138799965204943470854078658716296021244656551846958205426963436170863811259933854083970633439157389225563459834848353575999078698645266569079385564533773250341927297166479529394084576374723252293732339807871323098914461643243419267570052534720139727363160886443607888166613433564460840833730003455448972670989337341964943256806935945566119190878319102091332510447242028195313569380628682168564917788584418315469436116385978517723161428856969292337076336715916948059302523096335609494955469369046775208486981211836138612079452468019137379730943100492899898265866928762500872968474346408238020695532766141950915111834634661978562763170383690729701688410955638310670297369952942192598979700532585117108408390526719209109672103498303950457189525054956903798282884173487296410628629445294232468797823661864776364815871118373070722961495833537844767026329225953696443512830455624426275785833432397767780556476715369818537916708148574286292068362531292531073192047238271474737449625553832741724553384489170167057397917809207200360074635543417521901275355091395338976278411466824204949448899001390491562743598468165757319882206722091194757976840312590239828180844690340963060377681838761646377437555786827166080707902736278425160348072763450463354538527944192375388433700038649823856666452103587878584520005277717280722483140923793460307221763524757862252168491527512085004930850299129517499305345659638741801455992798319202406170208086396091506266387232485571324374517038391836252351428196503593465919706074349400010226575382176346258250845597754486858290081528628148363095471507438108985180553834241531636397628979987121507132405481171978905960865095921770004379171869339910867263815845971260369811776952137354273940470971746588599657847840797202124535902116631328565577035754501842127551657100658771555639647049318096345166594627570531987267216008084626446652301866089238243544014417360967490179121806693797997185039220381003984877332200289193395012285903084819165530224140906137590836363522945943545814437630124730816062960241469671338432422112064910089207816737304770006138739359066953603755926759475537163007901605244990503444707045123286221238839207942504232070430443869087727166408211606435299422128711679728410816979469030930036461236088123789200919351608517588400467940676056169959911038534170920736051215776306918737604809502370153770643810608362748196073358622108677803305535319864471759568010090198013556953197242437361802417811208059132611627871372368489165313029911432758997241245723358927924967630344732237536255376744241213208590299645328800724312219813684663573117004664811434764338151112222712759999618593118309253837284095223018079842869428692643838718075059469122716957935490454913848948884714300825699701291909271427343665431665805133326579778377439342178096315479763526905939423057390309170587744350015965876759583174877828481826989151081056186212222718657606921717910045428185927436243548586678067270078215391654613750678125829257685003782642022351352021556365979122856361112385318469321808980031777396448505499044475426899347871481820569939421708620669381476391841445644286448397486198285973832941388389352723078862602417686299064314238962694297410958122016834208760582128738530553248422046905032156503912162401198245928286173899250157108327607336186369357430783704113051438238889116436261310331557906438933651893673131039304619750574136921043454228375722870838601428679725232579262853868933951673885712135005785159331135413631845083318446480824248222460625527207447002030513628126566589959852931756124325707192083329106583580359006873137564574252698923504067056785672940470647267927453121281684667195502798439278338927826375821974604434647939863531148180362028399422512340839139251593819950882613372611249428106009983131241219055893816214856666560546593840148515513594097249033787266133285290875929698574386400639995984532170937915276844981030708945800684194328025495554651304451387529142970887251694970235207765250436436410786138670162951101310031262713519644810838176173629065056951633502359681405278765871210163690652770227048532104749050295639028358006121670157469301963889790571942914585333883417788709492353528844799411912345276209142095135701967533377865005365061909470390426393916911491304450017530415309569433193657113010810474586967622650573683164069360953234058748076314704732376847261556707562155085351355630956164157655069443880133570787219714760905426769899628754808687602219293701284765366626279026760529250498176064024807411279994581627818133947665720222251048880900784632980742522678514370973464225738716386446658265710346922897042132190727716857618328068255293447969118604681007989070921124410938472014429619229158812011291972037943907213843341373683377702931617596760622420498171412759414161755064314883153983671937940401795192735555343606866124457885556493298528244818231909970953080232105404411377461548235628585542480921916955858431422232338975630065076237953370729168631377597606767997087616396729781646396453842537583914903229908111415188351652475168288828331562321346089925318457903132562426225119064315923498029557617436439117478937105546415111922579965369322093930521132532605077859768685918590775096059410266131200465302058465289965221666230110179840434569955038447452594521182713927527455618880350432248912355913458493921449278451543778001185593588072092270766590503297741418673416511319696912030568948231300661946868790803329278164338343529745600355219029948077505005339228544835364421993372593093945714440321895324849981647420923145597907242196875713816276079774164160115914782420272471769184962376797703443488272462521612936316361891997854469178649397915252651207064627196491546170402354909688318575571538832454318147623551335983537262412067185858560229108479404457724820194450352381379058990823252853016462159140503815327568600478953138337994469676871947119397539318202841964667964648760392357359822465668086242007682688245671408085867493158729834923013582106065183418102715763545127544619853422657506900238127860129528880521262232774864091441994568857905336308082906828870271913344786460116471095512060706711729251548389061131154311051745633885793026060391435557750384927180572597717215881675241105428960206493381569055407959008351525629830182389192772602751834570765380246998767037723507882039621282424477824300548150679150047627411386396488365482711301708239967075341732527402095327120255981802531286711465829328554066322134594291368822070262323207156603740615692322353208647059796736439544761960987288089898734032494687728335099600046498541352854984829191938408739084641041089810469445495186816792473456249195012020554918281430177901348164742810169532692228490445439659128107782037707269158535341021409270897903414828648101973166159028024433056406662108671259146157996273084080197065755047052462462338636610612557482902602547275913247755016061136310203454423384273068221239967880694717643738404447883624256694076843216423112609665838723193984993991968886740847369495351225966437600986602749737022370381949104321308150053938989702706959057878331792839272648867236509758197585014500373772824250275481429102026029502716320188190308468202859041439249903975037222012601169408309856836477854648029268560171868466708681352911919617177826545666255308753830840078339907269111374441232386806001506631142280808255683833489899135810028939306448314449289043733892959257078995125969517743168541629226317781284092505487089738176596537308508584205065915497910024740212105841396169318703754390775197297163116411858965555393514242470592224344290242695003742633830474865042834036143576090965164178425353507046131582096186507033128199227997451388780512670543180897758552696113798134393400985430144750499508550095201246381067409144039721506914145205261629657768472385253937758265556793128142955314485449952697777543877429456991665916264696597742647625010184002236275436615085035138049259898360230882058709929473441417166965501893490643580286486466882868688637353629980833866193770940700959659250239692498577399770344285320322364741693533336402574675733841394094612123542178214823433466677181576741526441662215382924267615665211149331853963171852106002990838190811705817666216429913358031449998761548325804574881463716229102891396578101651092176381842464542087226390791708944366378792239569118481913175434586165757738182821885455029937653639226076438590123086543891815621673357734954113614081860143114615734434780090932685013923640841744306156197276805994672397428383950459026756405853870739355723653004946622549275229752552735749735839923838499912824220385277695900996499363222215346651857908163866457057382028650434420556612000305907657163504506787801162513193205312027042045596821047820260197512577449518539620378425714969135072791007570677779028070973383871268594440753014529352442048573484936434599544328413234017091750394664357740675806462397681715318018382647089923592009863346854757389024374980642885113170619114456601237914516770628890222978378057165820752237433263965614166428809111468569078814555428398590832575263547713340977161662631101557225286299674656670199986201955890806455576835001394105869471170721399633300050290343498588383100589687704155391666503245125993697469483573363101115857447937781707486243764650268869428044647325191276649358341644222300823972350983713073577059618474583745100289490224573240782983215765326659982941395905884681433666567002857418153047814522146619222305188140988956827913084388740928268757838969512965263194020986719531278526689486681165536716176218631514267533988589833994071875412083497882766688912816511562959108584324132773104644968495093034961270976790729706164551388821143471413751214430944485563900921655149726681302955054292977549783679248795303167690621431366922803465173679185820988200480186414628358164700940954823734776454901582494070324171696094076917345680341388303581463854768427560301068288928848215480831827303764959661852147061862922744070606716790897194235843497361037302948922238509012025565329649392623685439596871493201974259456939111841615211249470096780821400065898009235116116051333513685829486883601251966052490423741405601676910715920190661202777755155452765172704229430461521053540676988918436201816717301726032285297796899733394710967861947932101430187516347708668440680014458050494454005918822821233308293355547703325043229921236146252593925371351552949351230532533266477128111360310026116506331737438202169945304714417189225592757657372155356138489192709092965225428698895711528763423991497073791980330117933034681906163988213128813261889438999316642845030546006471079461101274085874276098702131916817654526469106663549456069154194019189736691133294964460437276266071635118933336758417751465241056545029365958337536269178603654095429694049129408980183706873461993878101535396344248049502035334436264266989633782478929184669581334672639123269243889718297057310111548385871873665719838933068758855068685159117833768188594289217720736684924931774189586771100165202452751738307464102170652539870730009427588640650653634739068188004846829898595098610823555674837220495825789888719927139861710498782294509106996803086483774255025108514692965029689867892145861829718139507510601504247874685692562323933526237030617243687584726249489118712085740314970198839154011578812946800934799614908095696829807496952979047509512649579488155593822480422316825028442143451987242663093075486517595003371769454604477158633892673605140888377091812905257081585415714972394406046974774828910674289360806304513106563569931539230568730023900280505053945450819183150425141438193768351443840378846950287431563039776736953387216808629617257547274647081085617010511551506322601683924378477411380695735069720445430868298825927579010086228191358571078845386473452828984665552655349709990384117417428306092234245196790656825267101090495582356408274109759641389964226841911823635294012413234844189207885414024004209844440116194979629168170820478486992544341269350273900547390796368950098683299571600377506238445798189755749911751165865051559773250021392028722261030137780887923848072007479305264234805990044162297697192244765657379509693449802018096525717675049113370975945529565743108149888632549180958021416117499860041713122994276926554847638048877330324554944250541327773756548969319286185403298090982109884980633320930999362407118269719262965084881672738331876802282864277118951457487328355717803481048035811698131012650469212758386514801015789049711018232409545793003522153505232101724406515997223962021089579785476554925469239513904247079043643843339872707459123206855003645615977845059130317770748147650219420531345109695180807649089055641343505478014484887707764183048719961862266014376502586062177021404250302763422730522085904506239363163180456952162344077694269797305722691174913906869422786539440979313763605525299380080598302774970433026309353559762414602296236207337016598143741702442491571512173724378497085618027991147715345986053771940348415005848157765543862151851754297094559945968669261126520380745260079996260493488285428333704775784885463909885314413178335820291849544256234285653075998198455391021883117226573618315503587523966237168219561877439374068787085803870806342157118124024508637310100374740150812384747376618038282188959860120502374225825357083753827513845721086143405340012156787177077644645511197890149267920009849884670332015628927879955821019462657092287856282609341239158595130524770552612568192646958335740712451598987494650019408737668054322195334635604732126892217093390740586935140343073983142739473136786150745154951831783887148391823390945579685118142233688737510189669812931957003935776987013918544909204457058880782313450548804969325897667896839453604025550434590635576383622206340287729519094746292272386080342848292159767556606884552390560138815870548570595376816012565835428934655293215081940794872415282014157955140362427605940759002053961070065550227125293116758348585109905592380437451438044604422906785790007749469233860421855974866601092946514227801599109031408478034179971014185732604548155844375165888716495674712915126251592626455575132672880413501276557679128798161019982904545061976666106842299389306892079446054657007513607035367675300266224677120662648573095298045109423824977153789571167988713021907360449321221842311609785327270357814243113276536089905858719908464937489643072115961342980967437197726003819095751063128634384019580969254838836751133191866217684398985842724754076179547142267467641439410772098746536517637803720456003380696372226518596944313570249045558532404404226090983249876629776549998517176838974217395277659858164887927833831999120170538148389004008248404451735291796697142989855039219847372752479750453889516985724191629871616760130242052917713143004610266311442319094119630255614255276346940393711703448948325725488961037317403545002351001223373374500385337186472333235376309712078346997971668471320301100248746061175404014779620789116689587694298386276957767355532478016151654983737310395861969417895630710756628795737137316005143829126864315877350296506407291807931455797172715428956654517869324834162377556311024516449569226457214986577163618290883193800442186876138664085765104728713442153601245105729159039744983830766489491821421418670979203754667423171151596609888934728337826345827134566234657407025689620873068036906704295156037225454791703932600833858061577751954755776547788761931540277253413736677055833027111054179868088770153618827007165623776373747412018067742301836119301387994124699594215711107275710832128691036827415852007071812188884147153069148717092161401070351006588821161665259279832577677028277221592900012827414378817321172834457209388688798224648248350290303424733860493215037389541393921930573712123339793250524343671033706815350609443374260313760086775248950659914092477851173012572864504862765872152143298849190332472795449001690177760520912987533903427005306238991270249545295771841788457232187487775050464902332176853264428798243060824483388584673213754899709267385568015127893246611821051230708801732407999891510740340926815469820637104634301884126281204930638174447011232232930528160122044987038481016928603781766631559996695218681682805041945198585398736952540145012368542629194711957779048450759165319077717918359541874236376874853824597527814649925866573308169118887229227383361468425142530465280486605844770671029491448967489706477674746090985096034296910989873374851124024538274174019690654081940361285545200263939304081154838957847378653897093946813176872677590209005004075114579377202576713168452039391317906645966655791192078347350267038579953340224323666821608918285023481720982074307996694913820968051159250720041762301009263550559563533432396938902004212823785789021082794751460892804872850367835683981705847639215576385365500273038252402209008272943157099687594741573386183696671193688101431301994902218508743461049054326675654751040264376589881545342318276019850262028754893758722263707583755018587627089611913391936612323147295817326757681487352489610091545946412709009873096727057339312166098978407125651119229449081760341352526567069993939212798528445474478391116619845645693356296942410201910354521997394576988863999089654395386929224437043578527292828293081382142084003043953205413859741153908086605731341178526891951321817433622462719133090632965151979727623115341584958865610065615954762790227561159942670756853185312279019336515298309829814054142438787740191028058993322836719133430762971818623194552292014987505776060270002696704385096831374043717562583532650521501767852428714555587420007854140320454315185551937644196769190744412115546512469752378248869232270178111268894806031014011835102268000922092999281354981187398301230227952097738684397543217110486370184450820033889128917260309492407915824800943457891312803641878542267477074875422148667599523208166607537054345172445335092400472267013056441309047796354540844749234609161202080995849756546368890829688492160013613548281117177720563727500174992025965772574644286332360923218972500049216878906451969942468696581252587402273788098735831137435270439024327753901719318028131028544702222762887629486466388091950280985098740035770252470976043158326220312554536527812457577341350860414382291769857078322064127017836530816616828350814473014401890938894998624680653387767777547853456277676998272792091153642345000211069065740760678057306797330850810657310174261282087020933425673002715050935110723646292598680730510045404664032603115123072438590780934092725076434786828171728480169531494142787165116864759726053084743518080927937879857918024940745416149276159991589143229052679136008979946512984241020157335573137100476042884452311371884326105338723053095291241381657059242660553352974844496233062372633622356137886265708920227346512185167193284300007103076862616811188669891260118830336293018128106677881331422303893135864102314977717488678489178993026572119847107576373849395852993894378970025978305240998855330625209760381020213248663265826741422121450266734608908468043316258836788743557069079204126094430323455928990021072091715477686644638060430056170445751471152029520719632493450231595577172725427416804476644604436233849127043168766115954314448655471426272206457874985288454791212684851377754597181690979170182258987278230149848076129358703986001615815660070968519589491334566156861013052417478618715549638958169504054337620211928060905616405013425750530379307542653129682375452512102832229046409780943530218994253224277946090660775893123034668777941332968054956407524767279141218059953010143823114850730713602680119970179442056453923944010634693257710140397568037584397016858788039762482035284704111990251433167683059063202313534238856063979369404496974838627863294734605447136582091880272750909680212037127873573610445728865451947636787057248859974029790158805124810311888111203960250966334433573847531443985938129992685980373844827188875248196120367061402230930015766331448488480624033290924139521588937751623827064129990424731996081169270682474633920558816918428347345434445880883413535901327299510673536104796249605467399028629144307150207263703987526816830877524861370319217774551266154096762780186886527050211942732246668274233796447840182083843513973830232301664615232700563753364298244150809613041837899512972243499675758245182917244168905399081648736650487778656390208589884817120632910432877201855680277018612352880913004156158438377940002005096025664275934102371529193591307202122278789667729043479155105501226367953103628857425727895129518232103055329682688992060589741461611410263017020680214085103981792141025847990687515884677735145702236007571514073685479837089723705476216850866101129731387926336567394226974982727257358259742527584843780566244222270183171893853226202166954219545570626369912101403860302538886890210131829693277923061975719663134891189211998037118148212376707367523046618716074353690206301892619270493234957088604539319198029888980592046578612241355337043622543296786226539329030650264303262824886363197688673964722081190044537019150002583559028001724747410540635633267133455750475174661776924200166574857931357387315222372711398819338346814643336111430324358726624562286565755905838478910223096801679890328847624185094397632999991278763760953953797624304906094347771154911806595167995997278074663526354442882157812307342178961262840674292435011158928371819885534762969848029351583440355147018703137759778592117557302148247839522993794730608676972527700367215453337046116299800979115369486268960802723721913606741179348611828481251803858979539114797036409902971678060155912787690457905550979945832837883307478536170608627573444900039514192170196705723350406025607581342404311056322693272512827341608993981258660016867240815229294597489097378722109856179072688703022761845690732843737098115532444802194224542602543885236507369042074399392433740842758500286718914054547907089825748936794177324143926343206495823798623502007495115718745264472970118508107929027548264097957598645230001406244972396467234660836162198787646756379406263785817406233164113327682779715432859104468614740692545031575297866109436316871690663079264687490382518636952667900118566817981730276923115403675360676852573553358528225485962922702970904089018072154894618269313464463885463085363489361680020533727007525129852223135628379706685410196589348168994065718477472140601761538779753522629474341149202403646495834718819049405141390933698532755857928070136457551018394924959611073510114725143160334711383874053630043875829518390078027634129763261854190782347979216074511834507096538082162907716771157392593634806495842543738219391120707731631628457562535505913869194013096655269761034360695781211427098727814682465388314438815268946679695733444972499465117303508194666867828927756146308113269216527376673732548844813476973972932382971110010513625074141332531531091690528263933541556224113356395769336584574632970911507628979641531608922758777226385011897113896061213043270222308841409240732164381210082366221378166097357264440187575685122162097942072740321996092029264718509860425396328423414619721953776733568323320813937997851272949978229206439422166778345248142699177275142470476915489377205043964593227111179426689791980240298159411200430491612301903803331723934740459805344439452679311559845508964171706315652851302080298228501958125850529003913815270412004889470352457725062311766899726288480677862187453805004672697162379568268289168183203894719535822231277879992787414144550805326182750252736669629504817294890213608993471160835054027788387121917694876340509301491955558505049690956413859910023258642994008387578093145043241691202899965554095950726116117682616445640936794024252894341899652307740807844223793053184658511647177235532873139119335726647621468817205531633853039680807615364951563405724558000530621072417125894931332726415347056951232334414540034023256755167271718242599847452036620451644425543357423350823087583261949228868782731389095430275218259422315559836797509694092338895444137664331034573056047036965254295438066030475364187814837244204802976853461023277510100544850728337105233561444592889796300967505869782615543547417815457941195804736264714380594886659754055546060634287217018053043579982864888830365017012435705337533870449969487402237730797170165110418141534098669117605951809646074296904167959008549393450349774379936109000001637148285434861859865477343594897712790972065394373404580939056278730298149450195067316664611929722770564090820209987946454624224295128111148301549693928205235583306948314323987246262866992638367135168478192272924499298709116460185601073697328315206098660537155454835812198064231959953063689138445213179758269061745167962481681772906703637628208220390433581511324295624425634397657170215503335860089907407075829568986351173093521952343625992435142816507102484834766209108024509991689136367589927347678808175805824692380218359513335502071894263673967500374951817826781708356443847186709534823145515218448073869209406358142891529056801552655680098045815952288541080029058250141714551356790370853443117555791927290393859877729473705168639978641125304196919288133583095896445201821099036228899564683626230407559102247773302238576257875119428118693932681398397813922396709070848277137604827602363141519635330968800035905342612861520899835436573505392798764247884070901881563415913523443076074021214462760678072894288783143934052086214481825670840897480883199407523747876694772819991989168174037890578155739049940589153929419145397747033946810720391451166041431920758320513273260005934028861873978583173873561300433324555136760049361854828292726857511916703886622604415275291318695075859085094017903475625803557808223067969744004859378993095356058970682955440764821866898103061451988192767218243629820843888951603008269204169536968997263534986913209068908622143555625063502526376143085967599239106868953204910922389180292655875051846955033493150562399757867354015896233387887753180934088603889572932019252455623222839931853208567245375817120334411210753352851129576061061366510014690989023351522408988553707870744992012870668879985433896951534348270755919624459459410930651749559559794013577227497551880693323238534077150512421381097567523384329364374673132963214123897830129896972308538354879326319382083160824246378573810025081188517670315850395816745598595882036123997186679597943497491224516617107841092368961365333849601611998799237064895466675425957747554371558087143927227573648775631164424539202773805110586102814966694524139375426488528450335328298369391600085413138126922247842983760097501872190445332244548969082809575258078529031659454182515384864278426139162076956831264079793442826917263333420519879593493597641799980583816892786669755390082872108186470520432144600666531323927943395644097113244449605051544566120644359959520718971199342326073314053262544788228795585521474043834546176474627614010898535416010301321173235427306919771164585386355028485163742865473613293440068787279986804609279161015575561040387336803576756246464477291078966318020138447924359898761014724105500360184032033629768159475089320266990562603720685387613289919173090013462819640716582813400229361573376060683652533902507492393565711060536280287971575844905348537751364363097711794951941618074190673448266708791170528395561879759671738582761229608140828905948514413491745755321622214618054050436216151144734528290601357611527099988239904214330456861195545406889270249795012561157941413650528252795934649893512268394391877904798406223837215899298079558168548611171290935623556337237740383921241448641813006896416757017188554839607056165072316989274799616052901121333007893105869724553984588736633183204521195495389357240750299120824041159939543774769355432740900771209690018956238487663077677612937190322732228123051176810391775400895047395022003560470429689586252252565373489884636415397964374933895996632534740613860236387334054461040412882740836934516528145810041249370866695393002266075043700080197382881342734858515686845398282965555048941840546749677761834755096947962566424735956772895178119765380991576219149224597502578615842527462640210573286240481397542955546395294964106943112159155195365957689919432793118439494635815107126369408539709883761643824375801432143060175671808705732519371752681736796825310951902985048392680328727823230551538152310127722758414191663887691910046131986739637461795709219594180250947515488293512714161550591090631554406785189175285821792579201329571125624124740736758462795377576039786514033568164102101025330311833450624508172788312258350215190928608419895724310480765999503301848611002792035286690946593731833877502188204754181511431147422822763532976233676818865562354722751296840582040486291363461212163945465928737373286107093918476618981880808597025458751026047897028851289419721134757025012116490533662409852500363897397261264261996899985598514219496290101348666696396333690789169378372546937684375273485044605955542711558929650326829227161996183232420454910509922279435431916076714152555389387343975026938799903323609023158363241454464525612388035191992668649836351413733692816499049606429667858764413423282410681196197806532059849432591832983297708999207006583386623522347561553955935878459554599723516122268819660992183088486242480475270345899945074941815007288310869575180549148743807148705268314230434661826006029248283605809243838573581103451856279651711822616807345082964099056990650511792274432250387324246801521667271361933441442718235603321285087565504380707884410609640354565719897402160741381784748318840341353708283594297773591747750920863386282192866960469236462695265227724218383869300346272544399024540645336749980197819612004648820938725404434237977275238392175487788554031405219405225363552136115370380270922541429708858174766843151245014706831615770261953718208004210953165093495038858285842685318532909269734040014685707497979897131845546581541672597696584087078200133992831928609021065716515173467063099530542418057017812475673356283246829047296543364305489927285986088424351348919228260381380280287561013425013215405611388003086512191798114167174944668498698449911490226258134785251637518673722723131770881937151268645847824908691187998022997518856331236801915922813797549155006282389873754856301738371922582546919920186182952188466067438487041964322533218060399408468086969910406898479018456779854753741947263283701528484936915207063264281892899902825953688228618614373946531084502957625353834073123873715386966921648293229787978822084931004750079315847830590710341608354169623661125252459413375670151441597841744446877372467857689584988502503386491183693600938919885604058013462304732728475694435853318817417180465635030821673135570820422204083987154252305914536605722132048504697631662934939905740137771680061610387003526661973180324605056765242062487104442683824578961182148691355419237344757531544896867731413967971597885938514808975314937921452470713291286513450445879960648981276699576567751162986934898400041011412253707546418277529798682063448393702874520780912519631299779079185925311629126117973951690633059896889784145562781119125901236557596676838627210280419475655879456468488815684882214634556314564136996288685089511494802310508915224301676886146025713727532518535996878981444245724019120266167351407477080160272412205860981574344779490352531318377757129788621943193903441345444421338389820704502537056187246804726994723637105553909042194528345743251859739742496153975169944165798226819687740330569359233049965918937073305489536972522465723498263833949903194424189893304705488584602601558866117831980672617806036671037881804120016881666540871013084988118551629967262023004990404447126182497925863736945242329378076949834866709949648322049893570906237607776688456887001855577769740771615534738061251293377769576961800530465839713065286306838676846191848406843413867063125710866368334078169293365832692104654613967002826398503656441661492791737109871741939884625092068583875616928219010027388977978423685293259833018248610616195666892301485150810507545027112238814211830913521058751483065354699724648528419140812883341943212619977543237260619784480488753523684459258145937342914389492916621656755321013264457039894661876958933224239081252493386866972692956739929122518517675693611897835365277609552476239032965058376305073622837878157189031798213289343692967577810532923088053257468318065369051684310894453619688389682138083609883807871213297345775492096813649307500227758634839523170669882287549955674771432501971902677170200567768651416730583706830060516858662020155630145407502678740793437926779051630076226917017208543676088272586868005573538075166886704575368541087042658298232656437448161899457756001932249516440069784891516358071343739202743993753321421129695302879350536370125707393730443394279392614832533395009038121466658549459503010432789007703383335946902756170185096380657217537752817891433312209253974974644093806206800901144487317854461285305343993490911085164727182013831926305147667515120931745380460748414979258343361383025583125135981566425831731868203060909979089859634494712970472544515434640636585909259239036893551002217494723553890478239422387564150372205889892295341164314420513719776770754827297649282215553923323546646517535864807615646772674017682690603162886157087454077314238838796416557363908874045962956307909930201446171808984055718656045280197320858039254351686841625855996109220616524253050046395475568620415084072201240914076825902527885721743883680016985350129219054674781613320295416452356142668720165970578784742702057782904477959122672215988991096409574548485796395837088350401563791621162119166344673420774311196192181151334295001043968306118129970767383378476807231009274463629042400488112742784404729511400264794016338485017620245272991329011587862224932978136373894445887794383985876754674138278457548458408599728319356970882948023144600760036079601986590701001147225908624918121712086239310047517278849295960891441984984646454932171466395913254617664097895255194642740841528532563442521453839610842791615614300115683859527683458285268819519109570626797958325917432109062785042840710928116163639745352584367414670610040246644621233363125656246365554425560683987810431070574377644000450322420446058248026214852623790565699540258817326030922393717474187279796543153907594701671183097565137043670856427769538912565326402759738214493690291405414955940643114525801160793145769870882961748454798079126630939642505024666891683558524112451919138477857889896465526963005587989123937572533040627427516537562779581115821833119600518287244757839739819594539219262862443493694657088222021165652201081067029780605558175264506809379265565114814873781485565030788934014430720795532658474014202403571331636939573292014535061506682018918163233845952630190658472110653632970451601161325247191958310959206792613664842656915624801613185767857156641423140037428352115376823328812881805630857811323324698124055568831538329774101875719162075194420153933819577826905930052629527135772665399783729267879013397857248630663461521593743667933773771063730796407527476627931781251521822477051892287076435101179003110794694297753227731712035602163622577245521887837890764549518428289732441202098044721273636723201396606246825482840662751511361747765951312399434552350425349693952360393885585920406406907892775900206631458368664101697450270689124580495374970045243187264313886994570031226448014628758901632225199923131266406678595464895553702747008615456094760818562521418786783690218138214101493861353469246203058416089035869775155680167094032206304550046578571185828377192388412942360510710325435467180780731146800214532492664013337430720084949725120268199788192875110519503686275214269997866268636922298732040629168818734078232318692874899632367426784277237714945214735945631802672474102986696136455582276043580344387441917521090039810553938167950085975889390542729509236486118755819361006666760752004572412019999928597348571957619602159220275806059003375863097485613680831087963508291171361586810541309932065428578002570146593984177523092778932156563171560468641600940262347134018877427084526360610904399871628732027696713520331669105776678427700741116016245885305311692755711486079766661974476149115715842299716852902810803509643755537048606984711939705755174337091603396580742087640199492199538432634094366190043743164340328545918316142796685366847997563845811148868143620443865965580802045495494518138543485583147528635606379834568189750065827942843650444900699793518100776286761992562597622811596062139364741842137527756353335785872281026332630282374627199286379653006386202922990608267410388829185686539110128262452560982783144025600301875731047027581982973124144415625965642263704571522481343279190715402356726603433101953549940556154110795724136050438181376195303351949905051055838179300581546386594161669591305937109015230296144898269038552983698191373050662906745705424162811414131651931637183944837234587913708097838928702092893877744206963219423124986559628104946398514588737197285818015019330726641337017955409148314577200174558975495007899054121460295078904299786958663945854283581539349769940078612523050867502239939991992953178158224843909230743159573518972399109567141426582255313082960333326779045099874427375776715077931501151096429606773834751330732526705981951344275702748192914550792534327831237018600589426974242835967992524943853627179214888815189964046629819574531324782097703177777943366508059536818302975606666759053453300695185280128026597508964138187196222577632123065082195711987345972370391758827662570326116793588019124753292127136762395099166732898794085967877283247272518251404956631812917084311369966090106977031013315372748765402043927588175090023506278344577990489531713385284510350169138448524176668034331378590489345793594566217421296760450556875813870761281378473338759351078105260223509074228861055611075782383028951017337212406189003029754638496124134679881915470551642220533267820675811396649621446696961731726639091705463096417444105991023716055223445220521915194493096518590599360226384760672090437127384443085407474894035916861123062846566484225599495598091777953017318033512878799732832241536424599907676343713993481573376353571441939425454847173144604441560019597252200397784775522477901787776958099039277887595859383940326254223123120850805601862667227728192794004924543677720086103479064383464850652626792648693871515385229405211287439596097708918423534041051682848933654695451824825735081436801687749642702827373464251098374554607076586320881268957820139081446578690601794132870214821367543045212923634994462684412328627003395548205425372131016235368311226471166988039201438324148572919349699790266530930412588804499921664952496550147288606798142210415058295614271437587580839589553870554224613076016924950854215075119194417726203547117629331585522274072605933308369598529710914951212774002671407002312653129911302831491417660838511061506056633277700106458794185612866352101589783080105402751642702329809802349063504473902450413513664601483078115585222358689137374581009553684386820090967033605268288909696080528956997939216898797036002329717173207316804017779186801170614615151600834989549682524239766698074606647613362777488493701353991274618283547886250332224439410037234010340977214094578732446195014647697162185635251295055028733419468254113949441228416773115602325289648656889496972639958820799678999820101934735339457100326107052653561737933257690423817498678978112558093771011082404254167376827058750937946226949840194375249183635352943436715579984099890746269295101663907705819908040717207615419331978553356928028203952983907568568417427428826250970798943700796354780221674404713074331384175021214645822835634848864484373562779443908753649795869524160909361178075321493593964992162802517526337022341841540202421376447241633306867385697576286291569917726645138456660370109765671666785308644009311919148423539385028015148925380970921659879785602267460533042844869704569845750876676207059225445597427013737706858781042266099810135188614858751083665430734415460484053132346890730597332278348702419708612851164661546948995250288740845545147910126314748322063028779109549898336660694682140797776519532528741573616410084586701063317033674912769576004896547470602690429449367684984711293568528713320903473033906425904992900929343876521099374346955085760312415195026608324242140368994503886235019600668142777893195746763314502629113921595137774885486535758245814794056836495667111376492183624103537833341852283677026826244613173209298552857311211973010847566417610810612059160697524368668921431724990247525397698241327033710601177102376723597610710344806672519823729077640282359460230291453287401514098309228346401771096601271871907333059989639576813987781458466566384283122187395132451308653419075333285693398926656225024232711746916522641990687419296131347203884414840013975793239492350029395117081466339660166307768224604317225359402828147876800365574781664379998454057982955709972436560527658159913517564062328468041674733519808821402586475807930693975433715433772618061720053792789659545228675516794547331677579046115761636595878382787286938245610331001505914273199941645918331958392763483782589062423917433945592807946940354482325673534646422628686665761177089251998583541271782347207879017347884689687629743789487472386166550330793039934895549645026649603316294891169219846623029422772112901554026181246537445295944577858342494682156718503385316616443070964456213762247202690706862010630816985999494393690398700416763642377517536005670855806563876224589177836484958782169820843497847162977451443211160619066621452009882815029557411301905500817118502371242012099156082588721873247422032881303385954476047362070314909936549898325985056856422084304162226391645993273684437408096799077827652737919315248459952942537302834434921360104947046765457081094880134145351636189087036698943755244306237269168379179940234383074131517263186953269878223128758341014754583718831202741530507308885573227247534371101461905353680519386666118781065821606746561841537861499485594063483859912311947794623498012000294708342393359823206447179884759313475228815954017928806980459719395805487089704386475325049052954834347622873640851522977846006823363529887921946506236737924644420193732844408803063686236249171116427278378172686890767816216028413835789357388004473626291586468979978381458809511695821054464882653815812892538288901923903272241597572102937210096186495720892173937916711697775829120836951651445189869007152335345596059233550036236535961176848201112084269214196943086777083085189343097416695037064394060991797478337871411744654557584627134384226543317503783935896827258520411475886550795102154379602432320368760125690683287013556669879332307203996794580342507027695428938562864658193917735908209233527220463359423006980184349978197024448922044557842455594282867523091290203763175428612849828314959371978135589601677342025965440220464366854139541621779533361823416359704372997025033987617783544454389172582026220881081582415062130890414544411063965748962119130889265378584489937254071335481709218500632477044678843233540446129379075708439353955526955916821223625422591306549687547424930085300297994773668673273704682210239336582015541482133939745520775660219144495817636338018706639996871121511134625225944305140085580857150917944219025120541313550911001516473986586869778809119558634466881461907201832631112267515747947673023323354693032465121184826148200736487944469498112229059218467717650870658852252479260913875249041123499912669668971874731554690331522322461863440068741023392886160951467105093769126203139341885738823913937924765629525371540881809021923459632398164386485835487835557518302754593135549126143641153521075855456727133774167134478323876469981169889633945575902103353298961502676544887163116171972059497947162244325178707843803067116933752093509118565290011629225980424426055866559209138544306793664265000046980374040566051368808668940582662666192988575522036341420699450357384799395475432533842161120405415700049071582415128947872792074813254654821487674787518145583892878783415907118103532689127728694708309521682189808517901851748019083649598755516995934855792275248543287321274224605307591101826710677655104880697322172053474785601854548307588739195182920357472234913362375822307843100244210524492149252913178245110217545567512629477725962515883134504353319789150356841418294267901566728573385899920820872612352478439753527581043805688697134715169072569840636292236303240997285672007772289017618878341018312118172241679581139100513435677415431525289109641102930026894621933475315503803860986718206560627182674941765057956998848873636882507812870229433938523115341244714611382223609549531362619758135136053556288790127687264354098475145560696190584732947483212191262227601687355183279452755068615139151547603494306568823454760347674171076193889380217233687223382351474306827057427015063257186918564776255461750603065181646088575323449506046154416761810441920016543697406354485699727520159856027291357833633067941086161706812069702199280588637212737130186211736703791925140608829373847714054486869892539307599810461271447591526870696129968570040456888845032184372657669797646252418711921669030836082424392226211340145343010074792692821389285935473990804283936263491265207990278305178779766087028061337918519142548354946595417137040834209069759860102523626354679244618619711019557903295871415544998012498796916997753069792348201372357464536595882212130498690913588651197220465115712475854849281796155044643735968028391163410536254228825719797359622034353879491511496891519470450819250725282283943919183302863342234260147526878666516937100953836835446360022318211660387458630006174992173205278810281997640776198390050915905192668594161072089247832498034632089157443216536874179021732469637825653453972367229480939639956133215261399890694553965326965453444129876160725071685699109442981373049294434161457890367083504786586020764498153226043547608063253453087206336297734935862460185019889798993382313418959645352813433807035155814510275225811296625409853168857865751153762349762573166551112004871020251792769521107391673978367777385376087892248564438329861027007357228788250799265911394672803085150192808089590486452296257012649865039068889891716600553439442393503537099473692020899357405684859186140318258078271018764097986635912693190167873062221242261442146771423017936371898680646287676422841220428335104942094673280014898628067419729810476537084264952723824331298267172235212923189255230929056148542141471291245388668966793314701012025462956698552150938106257729680529987101706442325081814814121264169604654900775046391076543936157330581354128239103974908328403623739926901561310129475633355428199860949263100960922733718182499765913554892108315853040279255576618635279436354736706428987316971869869613478113265564117461442741614923168753000239249613034012220052356128028211956335326450760546156858637551102370053489070814728851965729721149116976977903454375661772284357488957795268470743113977148015018886994181480941643629376633340640205067328524883169608485863630583221906780730360310769467632391414864122912807322854194403938295598793994071023318694027404866162713943353771586051222381584699268781396506439377056727472066148001475029816844516982407899631852797567481133587306443200348510995309435830891879948608681463870370091727842320531576293795546812797082408565095200044897892453540416194778112667332739578127628057510175376562501175008733666574278157322316041287801866624797527157158224403118201546425627228944486975553608609979763887772267623882456192246381690366537291991025604738244585188200020276229739821982461738096345971655281488837137552085655569683722358029598622806987558775724957213168421550069282917146635242251801647271950122871377923938614961789209358081862091664892266986450265292895063096941650133947473452461799342304939726731489443711382427786090264148562501459457794745323339137232788199622251492909477694071152087127855676896209209116160392678192870293021585744135516292459484730492104742790446051740218644592692355741399066314334412884939604223195050005964008867502775291604218098477985146387805557465030907281094887895074418003384009921613839950191944849484607799416225077980232654486542647442439972530621642851930779157689306738093184161088123012277527904592861221852834163358934746831414842900842550062022942161185327522752622765027067656026813397484085826991038779800914411064007435103951058539884260855228358148275132813608036280019967411125617993362265595013661509415698606770431442524329664106972329382255422147679069208013509527447500578502795983138361690095789511911107725306252648757964140774790225126866620906998340195264043476765279687178484145293720612812710623746920374475360071437035221559780612585610979433298786403580144714667339162907560782351574361288605286179853287773672761030178091389506484760512923765925079160404820565578942441103394506453513154545042317619936503791280813571815532049757057195422928513690546661176466103237813272221283736535819306444729767037179252598748639455835846284319565778586206348429681559505725939393121666437829488886547127073438519833639774153069337838983682768047915841881313978332552310532070132839791511412356574764641080922409457331959558369558174784826018807988526396931729618609678363271052434109130297164715494044155720060780117367177762365819776216796646762726215411591969802598322733032181524871509384767721759442686467706308156309612489960049026140402803807181276668490970729548733443174434296898077743732534985438530452904685738086652366850842386192244428738880410466509775132680213599075875058355401976850620259123807111583825080684523124165288063216712563804480672264181477068779076028938124392857995937910305688345073839551996125306102540312065411741016553198238452268191660707217178487112565588811056085755286971227168045805787847607085594683916432521814500049446661646535665656313016243938217441297660459531461900440243973745606219238673780992230085678975680834313140199860967304037865374235746603383599609648797128464224658638487753512724404674310463169083292497666170596419862647775489051500341818108469698916266073130667384894604974500466137254178171835384339045773015863542005336516592217479200079886938903283174866372079427308712204774488798060898308385433891463980848233135962654106544632567689611766129839813185819259066150537674660629198875216007187464058467468762935327817927971468695295259415029365619823441634881068646094178289087656215672767848427309947907529840306983265926969775941739538623638092865363052077847118099846281167684882885299234273897363078591284112333899302477294291007548735216754519343279953550596737748726133318091515091727134128276732879855018895566723652264452654981491798562151232021871606775478604775451176395024917727343745308018520834424876623655804370550875232394632819876127479238831413098550528859576129869960727971348732888191218872981914117427110131814466043030204458151089745008617144968060604908296332684066279804844373202577532355518049471118265258299207260867223038038396682696883441445724633762753047892001493884154626565697280178005448664870743557418710316750232961729036051443492263903055916333345101482754463855612206018635654568978992990237682820343741504719529700133865868934412509579044948783555621935137022978147314659454409916329494014577505106708274695269385333228763685010859712144823690823890379625361786934683049693844928705195129138184084689588811797172971731782135761465031220749920492868476709209626194653584269295002563334394157330515738384671723642710721146093602865333628955471164578680180581559480545488813807534056196378876352962607725285272380968787214578846434086835586620359740934971669025474251653049630757955754080170588324187860128402667470519092950963510609056966022469739423019396470886519802642701265207316341206594699370071799143581752668913456108842027248069248639171075745006281106756756770564380139613333641825809114169821859530402546603168780846592768556127126523140485117165598562369466484829910668817230162767833000140399394625063205923261483693117566012857600037933340906850747157800916507694521221364914782521572687594637264958544042891489681915836678870628968283617598429908217230493204023573899013796409446322042094338635349377218464557043863910096487079007965638549441092550190806533609406948038621092611452872842898398378143671477687568772974070801578163011229575021376870587044278796873323643012575745646999783255649132024438721828836593864150202055317116002135394101526870648057874259596339846809646348596168524755366644200291761584565432678514112495053070378617938169422105433266924665979899226203400873064711874788983196136001255346405427203907726078064433805432997012288832537501039172594732546995157907377142598331596518672041719196176069371038682961006905294264896600531166943419857916469773567666033880128203457903655684933471294779010939422435266324022650758571798025310486027010111746666261281607471298292371467588706166523684691802955896503463105062979313938161579276618639109532349283937293151200904308161113661550872587319024800057261850662862202791610286173875510883735516123329503221698012807659545755670230954694122331615180468668264661430737294554413453919213052517074326120942146423425539477327869325181045129236103912192722602865830483412179713007845358822896472143006664610454804085005629039063537607081158825855950651394816133130249021608895671615711993483582639186982599315204789280699645436302746388718732836195144356568139292504669249172339531521349481445534046594929325637639578754816818835449153630146973002729070696965106497140907135943248426256846985091002313209888568867977977328890764307411330456102019483023327155769405883576662292902782716309918983824838030546330754325069103024033531479691313248023968718622898521129594125847430330747641495504587623719630644541431989884526587420876380812912032008818641962709776727926813322788240904709647955004960247262517370195959373399763002245127966563403381989815631508377349861034748319247744005411800422038139836902567071632492975026998239618789454392403747082169346126847486375021838036280678641395239810396005954283909435614761800061328686656580282509644486918598097826598532563670252743916060516659733787370397611360338130418776705804006721269286994752378723923618158720680202168015704736445778071835396466965863387264401122854942454988986016316801831975473960727953762425703677587099006474261117985490932274243079170692384878135133470629018357038388937016902126701946915852821965310178157130613523660859874264536485063793550044045142097557952531531860350996865899597101549859057974006347303324798856437825602303216959685066612117586368852529139786732626319903292420681436036262257847557116213809645422716265793993166213454257955101481069404058661814967465356409952991905236521575455277131087905228346749446841456721466509357837433470143051484349648188322320988075961056351310210689284813098726467331881492183072549551983650891286597672342901237616200372610354524838901820297143398731905387895463727398943637457444248813837833925525594408958009601753992521630528908222445141475654990424130799260325466426096564346039286003108648848829214227176468257679653888006107756308984892819807724102998614651860273411387142338735100829563893098348231658066905301324571677974382652592404912292824971243501677247107101671358614493123846203206084331000283590977152185975721486607059251639828465437020566862992961555332197622878187758898672961593774495544887754188341873684434917420645232381145101213653106225480849422486162575784117305423367860523321695028414006119387184471468787978799306188246860648512300187158086225486379836321174955446861465537360336241402779553897631927882297140622874997331688744395408789403479987183327160686053284318473705741224642040723117444227409228043483506077718497254689894180174548530964086092558171207630056694413347816911132434090647903174145386870855920572144082029888369258980038975431375688417141082347095254961955072071099708890846395802728236396874717859016207338269097913344514428827692211366712484692328444820585206026161292286668353427341281880629167401574954048761276756298693721024750207439759649897376275427549792139317578781028023975540516639873646760668084860845624928234333873708108257318131680469270329646916531295949065689778930902271558369115589400927033405903378171233380220408885792153906071728447372935890200847617421999005501423561792677423052265846703872860301228788643242536578363992417251587680554080460762577151686080214818647105902453137602520320690967154723730145297080826894833055076541860447327040785569159153712428643278184434116476290804865740179368554554386358533872370501591618495424169024200727328376842005502704790240501069871171568943535696005022684920557881119816596466017935001276320545306548850700456848292454658413842816798147290914794128472873131947232261898972188955625481789879191226221091024935254791042551448774147199867315784969069187916494918751729687171901888250046972820109713450926713454724982573114775474335355168097217663478000862569473444078150037429781072389941949909414461761699825359782446899550291608385592706609487073871620267406014286991458711757738614907540864226360798975258457916399181854563991194165771113678404371537961730671722792919000438710303852187426320279525289894226569629283878536820055483802774397378719629855669419710600581631592575823899252083329494813073355269601071530566375660817802321902496592891784451633002215238876219537084749100484442616362780601012139889988485630607563140247410420465241629247411003032031624803853916208477630128441022806248539449921243130721526798733046950906532116592232115243688375628826146085155682566600756590116738274762944623406718854463446877823984672651393528785956045827507709378611043949489150632459928081140270932453283174062996888827324659789853997008373269067571514877294814507027522990810248090203997694202487825480281051064541332787106889438458976860293155915281379829892722760994189353035823523439105823298028257815225621828634010808657597071978462171510090889623475123527842057343125967929967392952760090642022963596466801903343799839468953348158626214872941301260721058381502617172407378878074740005137153705850970581199072213174069171738485139076712043827629642593191008774995425999850600899402023874350673846656112263648560865388542323401639831336004972985015729546279838811917547361857370960197257881089631433448540975164817896638033668683414377876699466905379658815827628817552606051044498075071517284036490563063823726796486026953113131138093114462112596835843986827768388267896990379053726927299878499975799360165446872093407651891578427226450259856314840494096488753354300879927347636350272794485408343075948706720327607955583037092403697007657601148362928639241651418955606247289094679831116074936663967547319603262670633225524903349038687038393923947446151033955327721587971807283114206172140045897210036984003149718075559890805248889917615851900639765403859235962803804454719237345012526355862308310414999073982596218114342344685122040295874214103726552933387372409354939424417836193921102043491830526923801753956486909103296482714027339869180596040863313018270916540348706052525790245285177120210193111889364914796721994036252708836117566078103596374522651680540752586144725973015158731165743824997671450661314491650638213143129740090990514318448780302706243821578278489783564851581605642370015428190351885727424939335859502023354723454731586867409692920617732894691984439252430232224186075650780443070378853296064056837715359290156970831671428408389231838819184328635822250928535518966148528654951666113368406448531366496525928926055787325282713614304345067767556709782043388985458668288158090284450178310546252799393799427320076279652054356494021669184129740009283686538484101911614002926776545733202154559861198625344731387916684723598649615921767511641572882548786239783480278123308330346630126108655673971918747993205877173192903232787380062520495793356658922225452661060027569915169933635769911151171375447821906049171435198883012904639141442310004935107688898397988442553827080563167378334904242575458859505745408904612793826358812111124852428398616328786763494696440793728801257145435678179469921385175755597320309841989693054617048527310741210828074175272721240325252305468351179654881432519031749686543111713764124141669691241015754982314156653909561945553171512125924132845195888117349295262993176657447057869501769943670905052139760209823062405063664411367038313118480631922821784508912926888909002533536885997964257015759411045810567938577420657397094286056750141663521308911948105371843078968192034353970073011465505668680896331627081245834035808411406913681424922706645181976379451358322268494055399448182666928208289631670911931452798265681868037053091887334389305338023840594404671565471543165284074437838880514187138790691490234275136811298307956805895010708399381550383261230959267087014315608717491120680145250739184047918790386478624965784730315879442917830304040003133214347116907497632369770029581390012009957050194992575576774996984549007885874046745384965039799477113002607491840459148680218406361121878745028566472873601140206789472772150366334272006555198177017019697833019030373735756173983498365671287714291869998590015483177622894820100773166374181749634886120689685285882480804738142213782681806014284775004313937262049095195685019439339003730334904593640317552503263675258641171000155036531325730766272538523872115618772697983086514066835007245121620528879577338399526222993450943407469485252201363403806475279001082230060186035897531554876908907502328920353962814985526529578583490433494485835455070896385957967311911889874114690788864099240480686200446741761243966224112029918961514186214222796242031819420517044764461945074664288512002316502421041229968428139482486210004229047340795583838510217284186818540753838573238630389615511623421761444741346886173713753963764974985537569285199258572685327732570471877226779165737699217421378058270279509425885695382055765738532150754699685127094853636313413941715420811745768572502561953561885947898362533436108987552715369573004471201649449004411146144291600533038408857876856098979914801432379406991837308528245982893148533941099760976042446835856867498777384393561273610684797875109463799226295975027337850993949507752267604452219302973501898881216180879587343113339546621369093290937333350966302453532664815463529120854380765204231818266383735876286618421655532460288332145123048463567849730450565099745035932076088025312530613129378063372926349687870042867170872033775501152029547725170673745532273593905122865062069780010824777157081347140307588603934301400112668756371113092897455635554943741141229706914974610799502288835228203003394722373345071255704536452228972568150018351982018526168058448897417418005820621853161177867556549100121021112089174155812240586882553637793465189773673281854184581438758546828355381872973778454859036030177289562409995683330015818669708228608327282639425115628943743088852850375159154126241038677040211443650554748101232739344063441034240354988268301887215558103840575242048009383239670180483358250152327870780020835494951218681825389790497518692673128415917318949752925254541113198140965055414059625805509422731400559711465910714571050872520018862068455410418483925952791836301065683493164458016843207888979308458543301934878956783786363727702850587421997475834698402548387387581817792222218898106023842323626936764047823103720812050667794778979107886080785925733093141996457531840643344325569491595056366133107453737328491708985801771912700152064141617707832720148777754953199047801925430065780397219343642837347885840831352036361519844774670093882335287952159352126961428618932793469930082319513302309354724534291981339768290408115797399286885143019566855405521206410706683374371008784987630723080336976762124133175762118591422379998658757302273426725363766319568274345964581401932379818036525202449850234736507250415436954292277294107752558775787098166961056735193263641379533497231502792340326960449956411944610709327429629826292970277417359496798320364922158979193672034969001713803572034739343387677143801804441630506092469237325667983473281663115133935356431389018202336920987457581312389542391290723884319879718688816763572532151483873680716707525033212649889081684602090509616632482277236128692324185396653155090826514628116942306501418472972380464861811654328451756321942697873086150378521366348269214449356570614061378345301528201147562599067483579241996910711711544191318417105674605415100214646308274635390508505172645763096287401136232497906579098269178995796492200348558693423451868460610489084560983702826274736246374433222916903047768994633063135670987174874860467176469314393026985779218128577488791686177043649363948847883587510299070070916750338591839893183719089692075171173016088744013376977277447323706753346129086977429418728233521263485484151135073990047529758877048429141052494143126444444791676060086730577723050697487802043238024977455648737439216579165568056494001073913402670479318779599315677634696471328071279172712625600988160403267439302362220270211022259804797668781863302517795659063206690840796809224373333522798958120545963445604992693161087520832402165059933823365513803093645836041090331313398035971628339921227385611506463235827665946269876795961900557416575741750366044043272073738077940346279416533996737457355639497061143245537032788345309255533970626229185444164968586560733248893763244656014991709827145761586552222396991356903974527726386401178117685498766092364388477707026398188967779004064159275517773283781880248570302649219733783391371697308324193264207160283763339359517055433048546964077069315008038639000433625891140605344155690411220991891714690498920232935195505960862560924066689472101209090374289575513426928908346815332702282475024117389907702304111828591665130264123498578958568639132022195685351485105896421284620059422790308368505866012497339755743808445765348711232694911092850174187340360330403209737992621581993041823178208262873288907449359673509077603307737188077003952322424955990524996462138530153049699671651058494259280735194577805304050360204945574515162481461793006540829739101702586754524998758963497670552359922995415964046086240886250440783491833918611513923989044439375915943171121162438398166497253866871680293456296672780119558303146554104795619720298548041150129382731819841856743788293378651881587917827707825604557524803701498305799634815465060314314586958365419790420458414557712504214520777774829444928291319636098287586321006834982256572687892186302793429920473603356453803513642098050057369736739118261105659723560960486844635916521381430723263087589383332968872570683195348575701010818111292627358624508160469066127115616473428292012959550650527306613288818229141657440936713255352257319920910419706184586444888232596066544436640878466888905076541470442785359007621123019338099971059162623639100689785216345697257391376593929642315006463312927862062602145191916275572118279767703613173523266192894247634494927189992840183254556316291342820238805235518255953379481402010378126803955156897247259967690608353903899505871136146606980313191156173776109001619525862750011513358317317834205021116883397880506248293042715684058529646939351409074287470587413569597951414873771652808093452356925672794521066461182151033941951913823083522841259587479562460358520247132693042162777896481661841474308490798867918408818111491671590631820040764612492412247482024806007125325140342308738110198371136328768754656772769649355353413790055662017081777810684100786773734212359267362293991694506366433573776785608477485357439247234712097903081958127062766064209916981831729009749064073365826756460480506754255515434263431431736376878690277215478469377396442162367887692194717923556526450221797034124555829143931884296299883656493955952196420087498650794716332143598662021722660551490220041315065587974590664762483590830319227604122565721906388146479492746519812407856406512587976107082041245806878109607975111622793273202093732492004627229353112439470051402131918293864337013557249594057654349193728626827466221025995308229013622691438878064987834755789054280924575181462029525479511596407754906993000978118964933321466982805272373971534389606353404988547855781797860645080829011882601117924891360495320424432902038601593188066434240623959567671668595211583664347268551725971186083331489024622666208646035726668967579666745567851808011658270109167075223336567343195655028314450243044590250850921220974933112171955700074808240605849601094013501448751442739867836961789112505863756496962049917635777030325687212434548647314112109847629274846453459955996100632583362917139635018717096810508636203410325994816665027123596762037947560830312909064797080569582102402279932310242939460854244855280710242387218287607346287857519230773882929267496495274504689841233202976474611741736332777582733842292467896904310180344657292577447769117925703525998505075709529626129211605275557453414487459174774245072596010785047645426765200240707511523054997929811570114533704476446560141059490095460666152790569395397793541504894001349570567285762032890855695503341976743191523902099382164871508988621246651780842874005211883000747694930653719951809760331266213611843670701054232448149437751273090677370156698879497295466479976049391594395454277328430847114751117617917536223600161867395610051244671164037128406198145319625418648395525215345002119318753366110832625882981095364438987152152552111682883086816027190886676476504001979892105506592456088333178030683095126283059640850980231955049559374820770627733785909794538937073514141850781367544640903665546353885064901275808805835884024475896078693614616303522649632033631045627760801337930381830908523401670606568429479158860922645088643084227898403122975176752254453133259253641794100321513776756778281554845175322289463104585796979577337204527365830948320180316785493913969888381559638918713690293963399675014862347850711266119496696597002069434591871742481587091679526778345793220916941314433953657058441361840531689182241943330228006773358619488866035915358301088052038728786266508542699582046975843333229282501554861266995398850231182437817949556728744404524042852473919578339714871005070208502653966502426626402194515702247588976731756410756746986371817876927277991869947007794214711856549493189002690571134377133432213013764537154885949438947265965234059591785279488890640641459150917814892097109245191986590889218146542836582012901230216812572358281847199308595837997686325092519265882885625934511100377110760195287849712201047818564089764171608350610446652192227538821503295970656232175980055744315406395337945614113119704256042473203668398372420129784527670414214241819810438902719900907470504820575010575152981608608278066502708695544616419447886043103200411592827684246930427544226250062957405409584713113854886726645137940458395438586636268453928658135902172272127799314446346351669424799880040725475339714670870588526488327166489580060047640415378951047010348537898034174272605570743365257164284266816178508368508561105863696250049096704350773101250402543186619322541239631228115368781789259290609485931200577075333596618065720163139283289402493415566995341020360159350173173458872994242275704936910203866110771119626030638940932530163517708065112063044848337659157616792067694625251589895816493874893462235560829403632739103294665079698654454717673865630461113455741866970422599757928264971846531533811995264496417837518603716088684567276135815108760167431796512982775147426968342928680484914632803373264020856234500369148193939385769996650542773459558318873254616660976961119485329801673340361661433708362356598925237842243357320393804703474784559737362869066011610585558404495861196097509314082475410925395264823328793479219664295878950869135201557866627193200932227122834696942082918498970871017783116503935518397473191856538360908493567586510643566103032489028766319574267525960424759978505812241462926538814381725448737440371326928406514988690777984422169416921861057477213846148903256527903486233492987629926522580573515324734815182474411725858324659611359320564687512958407085570247373088438144179389849942778640106872678101199092120999778648453657943845401440089348406736096915662825644378403393511516893458327243977326247019219032298695419730158060095981291321201711981102509269560112451726817795773186389992151079988630374834461019178054498515434811934094398577521210718186677227309226767700290428177217607434066866757951071663982792739384209360849149122622216668048463318947113939861338046832409513145489054208628392307527604834165822725557193289640211443251169160549469604040001770711563039049536279507867391531726235129729311789767050349581768321387368849899027344070063482336187183337424982270967412341249216629055156871595966471809248638521430539451306901551898772018452254717272425507210078870634064058991148304031402340329040890239180211013590701398696212461953392736407245792243542469955863483904223844842378590593339357203344964559183173793154840469281133180340978893853777709786038948638071443258926901607533171191967721289875879933696204626486988773751093183474488115138346950913977781427985253807163767814232065191834893294915157295758137384718718962841472855125220507450619168148723633262636014741354559804828199040033173795298005303493874490208423757917715154385445316964756138358657624669307740584623001527990441528080771088588009237483739979298605420207229182283253508646431319814818187700083339014671967891429832253663902395148163140308878318066700668349368924023762752509418191508782703935312613452670875437431594664277786256168282448534980878141743141745672822310767561040317613011162808590300220001767539281867036653539253371728610596475214865995296023517936945597844672068472673262578629050339810843958949011308990479486430078500368082496541355347974952871878729144580829383694447211382785778185916946056055297222370403598935878511175314376631937983121278709431382926902730501216235508481960954971904483380764396572561325967383852556740458953406278775859639704740368028242729774199769582351437690494718891140074349168241518918551690938156201902743017869714605483914373949202671002071815621926197356529836205760033532237112530870876398275203335494771463968194243890390391829195713089632450242416125733441373981276836330222241046376556636435869000237248942173781618764179178035167457715234367041319644985275272538856049674185154306582478454800357745481543469794421129192685471912957632886592412131126263815126963837946295587409967475022397808012393494730897371099447190675646395997317155526855921549332342402582192593852581728677370170815935725471441016047259593338014499553621737001920015557926720934530647005373017836384347021604142062229526015635976717953558132469259213229135650546459570113929704614951727458693415244213896503073031131194939600728317970959966238271952177273611547187293048269374984524966399533234337354839855884653665146716611700209195033483665516976993919393202803417796813560363213217190159150381301166249803648053699832257082214090393938068333002124716106067727904606385641718978299879630919338965910056562323820792496832472029792391561306202581564930456979862420394505385377951067206670761678440215735992921541490381322583205741471795461916733572001063862221888437080059726610004568970865876674441569987660501872466899266718235581770161309623035409824646785770721758268224678465399409183401590347462322250359511393618554150437994790358933734325232461736528092161925348676782542818850460357347673441925936320030345496392041477966066091412780701050712089743022383309757124959419995725801174869042797852682816108979873745217501968088486211256023233959314062393744884450107413180116643432900371218331717124507509492192950062690936670128847335423749027226046880237728886975336027176480572969191263359461010697019842325310172607173596689728588642700236397251669907974321894573488955284313335346963454099747392168091358508939814847102079170737303060829206539970783852452501099413336930247281101521264957529262600801289807716983082666988556155176479896858140284864019141692789977051212858572176874468520576750272067835927209957580955321431298366585549388523337737844368871242027960796553522251602358793721515889990182757955946219301576218445871891000713811487205210846792779797477108596901763445448946181180202274935568266704977147074818407821050088890302600989064784314454313001730331346353687411992193305657833258850372705052647387302368396970293023160651888901933325886784128055763936471695300906730229929668369536160103861514156377557164255312145185123167177482842205747760200804893191827147147448704235200289327032595931331838375246191031660456809243918483448482167546211577343071937009560985612882568327638742797610492754917433393358232192984404217858905829687189985269659789314876384708553946279216706152239356485030096688225018266427179633119167998024693925741824332317952947351575517836816807487696063824292304417905165886791012145428437370609194041170239913914026523565179297552747040229101511500831355965913880524700007709394758280040302224870247495973174461172120174963362010244049121079933520277415753267711439308328301394846567016589933440772072170927222224070582631296354099687025194609347790871624344181329403037696360774130206907166778624892111213924053313651576169155214121382850177562120751060599640013917004327290934770888697031423894675820374420844804280632618159574847494440241133635000912166217520192129166008481070374524213830943228826852000636953119146598126241495194474750601446161094316676965425592793637758927377412172322282222160092910515883931771814522679219981146625503269227765876338526391753072105241553875053512596607111111216713355601290752456027035564481765047011992585622230281527331081429141075343861895291610928098643778355569540621652808871099073020895533712581795332824238175307111220363796557196090535573121889842499520220646542292893132884605326294052402034220303014098682721217522402929123848472483498070692087921977656594443517356913280344782479150655404121786173937400425573097797502471844087220797210753917590866136214201920338925337691433028317781210409716131840934207995598921387069073462980586548792559673108304818330056068890851020040442250980361533014449376051741986467707562029072666335882393963542502903263989652552754575847370667484960017510767088767096783005339001279313874671753844317587382017778634612475370283762356892745844153216771770311159709186010803030568995309114759243086398249052419857756349111358437854535927849599741450063776602088514501768388539563173864471392574169151882853374442373063171233857994281407931220947736975342879806899140530944157479838218850622700836108164024520544934255404034250168199876188370164264361327988678285991255499378969505864204009682669027443965396532961954632920481583302234233676205095381183766643977208343877912056938666611919103502495006206941625968885107000817513177189349211666044686441906492939473749362195324765811316298438411734394067898817413893189588558317147294116924385517217926430283132863258653699080174128821520045114545549588267670858252630544637039236689239289578934737692045415347084872283136229796779722431778494637221736765832966236056022836981966501390397599640521807397851174687662777603298201386536844532285986344249258632612350330529926626116276222641570289809792821940416840939198358828120289198380637725919076792104065551819787132026867140482790302622375879213556782441882992189226183861353454467151680772260260536444621412063935341747486654525103400009225659265391746576928966218973127702043687825037023062945810919801824677850705645638682918324889385569894960167830149891686514613374700470472871055211554676683323033704311067071772033590934884997105819798742769960955261364623593769642681438983581637435816639420667733178408509023948439698405284368465239095912731846986861682852195533854893076082398484327098409528109352855299242788080990962452190299861616145763963860085723148831218723952482363814176344106148159700752273613210087882021342487195622702045945263826633396943335194407103567589255076745940328057787353342164347426439567554282565648457550455844188620598764807052351127540844178288196849708413821681241951336760131142468242327754043817047383597937252452949136417104809598616021450264067879011289735490611081406975379086402038530816832494181432775400328455632323016807286636818562714284851083548273878799699588338281331726584342079537524556856609931633751360558819147283928145036248506461908304959173227472279401227118060981164099645849767363606421370203405974026825750685051150002801857727846267821258853835849169647147222246974736201024834531307611736116404739442977319164423333929574272494422774184798725157238789369163123901806594638851156422778897779391025407282139518911304438048985581884527785340747196651667724142624176783642699055601502800323040406056909057412058977972101714630108010947768169737212519703896832795257163058699026788880569626469758211682953296841905922730926926401325315498638508346537440214233684020087994743877147071151437958089967618863258313422419506276448602934797996527095932886265390361739442659934468611727069259234699540574425858818814448011525843887117951917972582888056683119659255510857828383228999826746071811310863056911521121800575498479847134238857189727580840922085449884594950265603037334172688102408582180875649695675596999168379895049021106219709230798102978199871648029675019804373165023484248341895516031506248684890758896003156605344816161357068229783702081177108285924387655283533238531441752827025166070370239825036575768696282981632677447086967796797984486091466401316465300860748803894942210639052016129628457011787354333759707102951760604829113560484268781619594187082630506942012979285322108657028095218306925730458176843397093804674152603632143643406111315653476422662287361951937823053483018762376939389030499447962892403487065846355028747714808485637374127273006061787988607965263056001798828500144170146702844352195891769724855268232718689348624822289289030805982961060281879121716409352892420905018751521789985996501985048193002594535682717855239945752145072551045634499096609068389944829946528518760695259340052942797899930470844206663184902946882388087180457817700608237858232024159801681015115124525150830227320705394914189239427573655762180478270253488693515905627047074815567207473515891500447370568039841855873948202834254419071406911474869980039712360102518874489901955835163281133679020352713750888921780656067729329530612930902233957733332405650069452952742722649982116649570591692435547218083360677624679962111008798101042720221101189180694521001297179530513793497937941915394026811250157843324012946626467505870850856600188652682277792061064770668389395440870495925560167283086474688714634102786943400216786508417998877758124227265352224877894585894026576403025163080688152143478262518209983332925739902387190118977817448126113411620120800326941272598219951690203903321354834481141965652119751959121633697000243186011031145643797689252777354146955949542496570969158079152246999249363662816542148139957072861086580054602191864746664295030805576566066948044397486705761338427061480975292569136045106892565613327502341463775913697928480813816013688303321357928730022062008746392875568521718823759736671168302121528204595965349386478359801195149752626764692324075315372083708904169543659523992898308074094592689466380773851012793591550297328541761424906010967009090637009128096397904920824510873966194795816307012918767880522138936753530443862587752250952744918863528077912962500832773231968466780831390417722219520897686526659426287728168862830869969210326057786935525778555082386777623023214739111699015162475837051513056603792831501437219496434830750971792224776368080685082109360991536574849164921608511576155456240233970988741617731955314028693551331203497146054747919734838942257889838235442444420526991600966480375631004383392661548606839378725889256015091164649326845135247251187422290495994525827010497886036677583772737235102231565244568172664201094758085600800419740312131436259462970839128589528612724833254251876918331655223534474937327928122717880184290830232091014442851330479785052329624268771228402739126828328006387099048995209280006213437310367546419896588892217457519783459981931357792758675535506793256567584803699974938477689015493503986659143106706714541001782134223690788038289235103233497237048432942363744859706243706646035405803667910156170826158116957735626846237451550831790687786954680266471802500456842479731505877655844312736949685126501438077314061640729147192331814024649277575771545139444680470571860110587502986735042692947535801144835009461315513601921673330256300147339456495471636163148960397594229436982482701532597051707809304161155402125052217905184825397146331183895323269662495786597812705988493292188310272613580595850302804570831200816391931972635541641245572967784286665390409435410691993151661284443994110436164651969189313274549054085936982411817274170257292151093178265052926395837152270612893944764067492246385211642784423488190912029186087290576853623331786377447315075766667909512533360423022711035333201466111820409147390100582961866657599295891439993609945144671006881528929436782650730295355254104480720848215315922683046722914055039101756916692684146189742621089729774706125910639797447729891915106657515038200114081127225040032938816453144579670083236452816082652209554737885770491224945390720057151006136936604889926082808794323384089660100077453998657703748027692046106873361729535041285663964534309739629670621901257322960118760105016461023408049192249763468492351884389965727372405020419818675331419216217867805356655091354944967992570052247224554520268555214697812277497229662552812724123793253996250306460398138210376733530973841591709409646634222601919157646544856530352135396212483567743939423492282442551019656374903315495314874181325848377047040541545341589654145332185390637624624706763380604845207770857023799858126334213445856519720709925171333990359764641463406864474084069663246509694564160056551067663813329470065400062714676371554465122819742202753474818322047660281993704453950042293831215632228919353702306211193984683577042199303518719456943071343106941775833960361134342537008287828404777315269763993980360812590761044151809596958377748794370536617962398446381286906055377739883667663925510414154333367508431528695446563834823870445950720536884313417565831379088492548554593324132344388599278899981979960283054752888671320116487824219153702462704739884284763246940807768534654851133246451845324472224276150041006585706280188755946867892792923770970705809261479877362818263233261093349178128893557316038414315563395635288124069290620722362645922635503990381198064072918222309638010992179779569328457431945428269981513474854594284937419059269810729101914587235939934779243811654395504958809034603713018986334656644341052281226154115412278468533814582743888999216602357805721250341246564913363145957418296320362311721378445855980772132282055734874128581359682781774058125777840020019894659164393324701175264412872493563376180869312890711896214224278454208808367639363216970919859776993220130112831743751465140174300405830607098160173284299015841767125665616278173842314530522298094898203498272848622554312717329584293748514702009244135751889248386713593949617099864869482574347769459134867021574894895333611168672427947968223289847678240985764313724895367359217167394101396873029565913748135199652199992942755053928108933771018287592617965931723570468114454089546443148025896758245131562888406426893939901133046582761292034919484555134166342735188063194905869528014212853362910490877705154058464365861265057305545624797800490881452038856282296793846490791694758910436181970265605045956651070343094116072634548455486961246935018935930048679136867231568660516302476610133803917977708414302421402452459997848045700460097831329654342459239840735945891664922114615211519496569414563660769021377888299746356843536571615519753599694059779162420129208850827704215713796990499877112926237268156891178040180096743669258440667668846808141634337245923428403907033633235199405870493020097853168680975273351099491712235211980660984888809087328093814426634770174473430403022503833210883832501577538073968064763490293645736619488358619162394009735134434650134176806281759989647396224190345619182314828814057678031362999816514892867840011926149133261943550239002160589258522500305904818771164545567000638659619196516205580914120480688002195017275664653861011174455430835317041485639535284022022528514289254459865305445040319563125972874415930282518592947394375058909212678830833032496821304057642176689940612905640711827241330611632225242072204644544037592409148744676372999198547870817753269682961684763946415934802475380823755907682167719878553271325009021009755756617078541563969039203034555670744320687561368992384403154948722089427783365088267125145629132027441835632236212869381311747804685674450932138580040642834969961796662149787422393880921737890421346780090586090396417415999978396469178462129623412693466345162736192242536782581016067850718838228833835201642539911734087720074458990476088016655337055896623064563182703629462025169495352155854404563715718266856054309509888451848699606324696210302620615479253930757727939960157280156061353965301878756214555072022186018415870394255029777558094078461469189736033120723878883071735956736134737713877986702902398705727910805576687685405490670384192923087579080226621705002774114724699961942776078621982928363907253986980225859935407077029667233744764933289025135956196204474679990106605537137215670037068873702388293166067947378616301460481289626013545453023840735800677876249610012404122954196949321610081944207721917053847661080410124283612036891311663199366324236018192858532309888770558318190606435879040394090686813887556925578507435813062312877927475889887816629038341180622446101820727596024991324647051073051004402424688898773594324020505185609862199432599196932914144783683019234487833337751953137928885864736258618997508734948609871442643630754481094002094378073173021588303368301859569954023345792192888258625057525802002273113258440958344897920283839875611772936385829979204827208417401691952115319323212889166885949974111420452075507737262734799752707511211279869761317936894452124334897316316096563462735503631962251634635269682753564827248310117159733370691674608105648419678643597106783173228593604428788833455261184989720083615333969399237025690475260725693412662186128527697748845713241315981737270313885821426094057491344689346980947907912213749191219747889720012120937465667128308868646894384898746867457796675897349120775713973991395063504847728507530618755451524717779673338819141445426564967052963905569296798557281941962923446359347169263951473182126029305538500428598855021215383064761385225761570707586889423919287686331840294652323203296019138502012082525978295673288802936884691420272910405205483148602868123662654826211228888614283224923987868111012606404652653688391310042494024040248079989019258396782778239444774706819427181096148041754096239387527342022963453042358004924362435029331905724254317598942202607869514976109243545870733410405803953082597324616985234710263723345314661591441552622065669579493389860500174843342595971892470097425453586972073041334816086677362532312281918532429149002160659576610861099720669090943563254779025271116276868246176614207963283285808815884432262809589209198249285385282350259956186489667449480515646603956946485353960008404309846652513128570879489753638639843892045480292590316433687652347688937759130901988847978722570561901359537455590475858528374729287998596174931801689339468098496670928836696461341427212789915208160419498252588003233942554669254479495098434120983675912970727530107561274232756105976487884509373625706183029984630355960719062024959417681034936620285052727917113365162384877906005539797598839904441484429866507714826033503717214031412545266779365148331122643351480071173240435752440450217499090189614190824071804966852942684004990006578934924740688232928565798182274777400640471777197483053287532619104359009992476677393840882283388794718669005557155788562566903859115405405877816555611486413661688601047162687734107926950088274603898758047285588283348749259769717576823895467917149033475174198742539651921803991404368420589213885430817785879935246477906675504426736481616760518647596449819633209762399061671619244702120246893756910993186371805942235880921699981419970603355218583576153069309631349218756994519213566320843273712724689126437907594815626611781732380229035803278807185375961678585868366663728366858463625437651610459539892365156885596055553633129614683871004351687428398049338118085755714697296557036145640975898614440313541701345275800316199317909651997808436340248204639770000366734573300480494504646019140921444640316307792627279809480133182006917804660392338280489766709036991199595006180414655397577963137407153230805622756966943048349921947423466825865516989833680792661122261331150280431855458052898315605744575508222176085822441116060954420371479695160684086805913492785927098163095465378306368725542829993571395306432566353731224336544715461388596635194327109566493514902283377142539826035550370801700018955958323126205209454725370224958851944621397520470424612713822409729361033248672999052237858226793455916649852085429196868720919891857904584012402070477265256482974898700082732734231069917673876139486315437667479683558369825359682022176058106265895536802945760215381319230201774831713096381949445776882094227583568866531317015749578290533023612825189236237546437835639303431239200980489084569202024369558482241380150317812185944735728466542494389052630302127998805054268280489126972249658338010584420638557140902518281118476575931543202950972404771071355718035366533644408203378021287031054897991271887299477638704287176094559079421746340592483376312657753842463703985347389746276339806597158816142487281136002897288359597159784226456744160888834571480860090405998267842977178128981740438498038522022614259717511824221474915571665362854333021425783190799189375724122822182903449995095064526574004656452169502018156882846184011923881007316292294932956219913898361185972079514652649778050284548867843205957794783563555095125317460803226634725206109654963865588703082245721500612149146349596712447575193913630316701770730651576986224702340146225765407286402726092624907242551764439542672570097272789859540217444426177227809571775397514497267779100001449918157005788050510318351525099758317559596081712390121967189844607760079378583951312562710344681046775302428937261426448169573886472778499425388681808725367929126971936599609279962018242166001221534544889910161511679546035346506868571259182909243096695381156195027553763671552820970890529850311435513041319947745148190904350228109112146775283980199253347738254458680913353587962864369078843842839255897568927024237221549188251803135528572367857214214327304187018934665794199268829075731514256695663768637252841656431878298518922539172961787255490906854428070404315600796572532065353025653529293302007423479760671399186959459222250619797895872201684266409914866349427184330009849915132204756201291730008409742571426654699896910028135052043113035573424447125722265545501774189162003521485087261932003790839217517021664017455829034576031389678233068988667174795221798247928147931973235996507668965371692845464567615793678645962392297735127845567101617401433135949829234203985935022052439105087880760544418855553453658307905133296319995832195175819218815315168816593100237856925301517091255334975420441912462803573035528007242615231406334025723963020805084211289245755116859706100631702168247131424417500847571149326218073606057022399979564173633681222352556319133911555721943791252117873842368129368805861016639826995557751541717321051479544141962990880485144894130162335011008173825206844695128313785470621344424269054201947499097599692208251932182681230288167776844341441140972589077337557134605932416770735453775149438047969002157513744858759818628402230813485734714279034326972874076014264836363506353749503633340060279053398813124630900565478434645497826780142206884316750611462586104127363693550577045899080021159762445994083574681391328533740531301444819566872930879889706499177598494563110729829197945540615908864084521867979237489835079757792869387663980108159767155648212910501539123564497152511575938770058045315023804669750065452472994860552762908993295055163146939984573020084895638189372172995611702808734888073989057044425059713751668329183686599962463718902316376979254512392363385019584075550626019029863549265712588173293017329015106886994097130188242583370263667332374266720523161324100134682690341962076538777431268637432318525063514407276334868013493001218503078236015327925792076680109857725611605371565062002930255240222868430175319511136543175904510731215932857513559194427778984862481593498619228166859042788847332730392252701870743700402243028161038055800747157158165380900225075858219166869422141011472681069328120475090140879588043156783259633822949846592485022172559094480529094875134875214974156255158143100252123339916436434282454964736258858656675008878396858620448740207747911992270767150698572507172028581515063432574073098664510407666940692724416777709683924093022181960006547082755448767971045199745641956704534052909266406417360790232770169758745742911072201827085721191186978219243864517575448181627489667614743449710271354349781142969007024299831461081574790980664084256854968119735933387966778182754117828942950505228106035525361347387164686467382131287915178662035289702448027327246343114562442220208179857639723857001391813657998869338895851491620783635499218893678054374682079632844467703182730443608010453902565634723842505505080022362624974475046249008922958197543069527633393755233262925239582979568651792690529824071170109917328318735659179722705603839132027023970051105580763634984682353194582548262814515512503320320167377172848452315160606791037339002412870330793194493830566153226128046468934502131826480555971746998941713689161536096932627725948632724175544683991952584603703246900507513101125316659010520913625267013432297785059260740913053357755733451860310319986835062766108480887612521097304221722540943588626978246877166442130357331553938677565601270435242110192077574280362447744353536893465790567801942860261231593586772580921564141545070910008828861794735394250061149872247347805882951090590862013683188308233856487614586998797604274799839064197234816688593580254423791062933017346400302816554832263622123598116008023665242685493049090581244989307629125470848822434377780719968493208678081769464166288780236187573684309854846174965030176896382550736337184927600093141763490264221699638829171922681965209519718812495369030196771048310329018285789666209533194443728720146250853745968647238680276601611306968346861074363123800106328837504903970431764060372436499737666044252173779067759983641655565608602726588858561373448325367536293116213792412796832385980284905440993572823631974035842446278597758673952242878166244235334390721905706691784702387023428855315866940075230987773453799996903578663155838815788634970009899492909332466373260117081212520735388325396406880150557371818212043087532636028295928273388563381471794459140962234291035636655759814311921850153303592255825391736424718196128817428183926530968402397144149201037482673070609327453541967203225331247164371176436416920452091668754177670026970343764132022878922662920747507125154070265390368351027856499319600077717690899997903574944628708285171971320695049120047055478362518777895633167999800714254422625495503567665613842190247884994727106260459440154080815703868276219584605781563252631779074936432705860555907325196070769802647061587038154911063480959902766851629317899969781152019558324603876016835676404624673697785925400878098887414784027762046706988302549187222422799112165541190602502111909151063885671460987050713306205684751037915000384584884217337020378447559065489426125242681254224910211894951481381941192171706143635702073274752314948679484316567307493453570915027587978997761453811843990617323035349340235496310795205979471991735087451854975161447037340925528767452791029348488981457188297613499452771687920169554097058595198392322704174760954476239336950913321877293906791191309962841198348751471909108660313016577293237573557514660349149473907388682456110946494216375373062107364017246218594363450256193529266996644940108100227315592455186213681581820839904451578575920576241948723944795081556669355346016071706384879390909754868614439184081269368561563835006031086420768899240216878308076730516286876275735444809353328229342088489430182563068261089383669112163422287370695705057258912077755078872311053126592039969171682705870368332889761569851488970794338352695776123181095518374438946879810202848620322512755716938850893800360232264171275481204782277152495313015680912721633447307602706894370953159830556966907521939886960689701717013765937899271767651367129021496845855140028571538720214991258125846040423563282168467219620263854301636373417053856195555713496382994354266545545949783992387333481380485239349562357920102178292733901508435976737449939207827919441291042474073841436961028131388314530183589757719008181833807397174898615740440424457720838921318413191366523998258564299288515910886665617747041612695761638736017635241673838253080241580991031011101577242296562735634696300649841651357619751731227335863217719467712134599842154152617677259634692315853011074692387878446626321426897211278002933517062360093230746955613952621354123918068035985325367320208722646407363440400971308013219302583129805230805581452121736133431689715157830515922589269664588548055000346684523310034080540003313329329028261606829665339708917414907968411420380695456921156358390065693970226589166445790484200193569520709392192761526281534881976929236582769934731109747908575394513247077630422467371508362303196486130650063351631874226409259426397653284749719878882334184282919367908461474518779634354118840775888211371557889123188107220861276333613268053109261407262294740914854709306727154784319564632108889082131810819331373419459032097125900494647456460301147594392920947899044922197867235473578000758124648571078172305259208784063721628484286092916329702453869082544828915106424576286833027463520667107371639438961861999271014030846479193246504188068900951723409885425145200120258839186074483756243547844490038126614462948573476287467672027484410955899297108170871980296435685180091344362778173678031236506566538798944866918407831444234715099653497917766663187122773488650325405117227298617657406383445670522550531172551782001804153146346322649699537491995915435939846682445551401967272456345565288103325867264572549425596314703984492945245211718175822806209315147548342433436932406957104986997391445436153232986488594264861493466197204474173319813812745769272185273737236088003745658910286958339498889589639125783030113100067276370308032118748850979996470299860026064423571781483879040739922647730680074326541924932620628117031075687325824368867257889835470954596729072485738804936355397937753569450793544936440576837068465078443565250224633903816358249310250807572148779921083429172324009531918425881716782809674903372118256454337152013197147866045235976727482144658454705031172475348320472035122972605090391621248670811988225975875999953865759687761729253125721493830855798133104727955479128157004505553352995489077867439317086327258704852662241544023399206149131137413971647465577641901010265695376526326221346975341648854533561926724017487196619646773660762954515872235934367990091521619963806225204683580005650215772019929873362112929785036175022788150048725144842835610290610778829999508601841186870721924751451534146272530426836025258484371656326008458480275698398517214667502146565486448198095221770653575111890652707398982873061292916871665628491173498935788623846070756552348421456159358439415831407912797068113437217974448316421723071440310089642006615476486555037252447560793906103393648167307664695361228084082611391920226510167564132658747233484848790469165416589176819147996847109192046601052342991415980350921941637599653097722508251147681244950450764967808467401968066654727802944764746135238673189514430064977524043730224529228167240438882165913324838125405785198347665446590137813920434236125087827522671209556704409316288590661078315753278414485087111195712446649794400977485007315189687453243127817610396569755008686378736986451438862916096005939122781889290454432569890511184885069695252613386196292659602633086086254056478579441642035490907465258791099079360764147669919008427916395816066929952219996975381322572823639159698603254132647556287617818729792013539429512458283824492554287420523405763601507551911950339042742437068036433266492148906597673080327961000780501484977121919605766293443485318086235273396583272923049226450864786366910034687846045161461562758066090291876731840400173126533923738337891638417795823970555961965185625232273730989399478526964372996622975191720283091038988621163018055050632400071339174840879513282160583786692697949360982102125228676742816461635702582037501276988165267375543467338707773656439018334795573545776516403877719609536463990239987206306622548242897508228168410746171194449531021914919778092211971246516650734473485363760069413384265854843798456029538399509571895942128211723226550871892720236375068207816107590328635384109967383517132451381963696242856197627359608462907790992950051454686135387839639740208941430743494134709828322177472599904077070069488897200617688981951434958046466684828129106408429572910864493621687183953546969035373253950717741260611983641124349372837417110969840791827595139766693129867698148252417282837823223722499781335692580246633449430108282155593925884456460756906937553832550698906184393408695706484186168794513580343431058538132410099558795885645151381901390231898387590600443094091619771044376224242800986357203396935284081157055354032957290961527975096649960854033783531152465401248476161035352693052600594777247218949724871196516361873043430845775123255357840658344045479167390258933157266489020511577742873716390972925724769702590161085737771389193647823731670563554525230920077432442318986986000804230871559154140977674711017452116216871583579204446025979945342372074456011965640736246147812938084708132262406149095981765457928061561083359701870459718346223165741265060704007559137868554558553867363260047695481346151835411152697858540790009716638850691170284353434393124278036165831543778047836740350082904090151469925930224413348490353431189094383018493020520254132474822843164784484942485104165426084288711137518519805982630717547565587932003291131795259363784151821788176562657309874158649913108247352664354117202268365636465848145465434771050242786515398986214403264308282898374103123262234310815093372481075723361764324579947710883239111803514789348974886850480013087631453297848066258289472681386511117484224784121892856116806067224708315255872775412303384244573919078232096318111272238244313686526779801455487212098473016198364208297002674279786035748189586449992396998461665421429210733508228222458984342318703552824850343348922527853784112282499451680101685691809131192852804640200205457944979039541843417250000889543353184967928098456578262148808043644314438760285675808200442333464890058711052892537598489653644168613565352916592462861230497523632306257271865692799332898100942674026401731577316245941797794320698990631201779103932879136347195928475738360061966477697698951820357614081127869203553001581234272065196839892772691599056426634726014459277863296058408366458327583801153542976254108350364560158059233246562760418816887147196742381515328364295089355005706998973834385298890233216091866033604539977753863980223154705387332459038525620243333578701446458896072389948328797498835826177990526703435991082253247557436695863079999000437505878790447733813957497730710827137322406091080633299512885444705920540488469232759759539416635518087260007148439096549123501664715054875644097428944232596983125016780273836551244007458603505294333650160939543610625515648241724221292443940965326237090293980664901027093790674333837583411900852273674687995492610963410853112127637313628539294328572667378920753310004199595906011209697056855351536839647975629800106915671154222058100441748892128833339171329365838301705959136435673976747457414180567603034528924527496668465526163798748235541474684705974356819501555769567345849757276220975124818730204036222041698322995193181616079009228980902518892314436779884249773256547478473901083180944739754803447511405755805258692731271522396675679491387212954707437020158579949851069635797453218417362542159705464542189859065285277477803862163634804475075149895491708365702982713047707419268849731353645544164357020446370536118877866230931680169475182731164930711704039748131869340051834071063465266523651808637560016630325423873069383525792617520636877524588041604744983418261397297070308945081857910385223204524227194770993029277693704362672022701177873773664964808846427879941453593948690818962118198654981745364886779303170559864503119964083248032988637428778129854562997478677749391719078506098741600471060243572950925551129243739645780941008984686297379215908622721439108754303262934147535772291837641543630095678681829047903081757874201070432646871227658463919952638949386993078984392682125259963874481081942122124534684630635882875984794569025595573112050480821189383699321170118977032352624163893302580285770493947145024173125236814598522277568063996850510041489030614968281566106933599997149799481414950629844080886959925275466056116324931346291077322602443734584727016861317429777776452560879156402250708681296161451188824102095991185112097567839918302103683956882332732287565618071649542700229365184817107947601917081673458625490628049300203632262626767933230749857661595557896823407491759958794456185393382185725593515523079593936414861143378634481010764926546977058719373689068880012144491653746179209352293315430179319118629763677219566311941091231725012613982074822801436481573256405766211362212489015685269573729170337899579297777551061959482933297241322378876815579283772713140149669728234211998767562918559735522039768677537293790230305996908256554729223957214878379191919308000020503573054185115277354033498192975260220395466715608917655650696853278873707930600841675868724304403510531881402462674970174975086939932121686568548828883648104785412807684078902968116902083671920492211321730033057091621958202938080519732069913461728239963014342233111825014552921642047284629624943886124589853895161082265640765177689532185956792075816183061294961749719168416591595135932888298158619603232293495036250879731126059107081410490680994855858505175014438250770486644161032567996605457510046109607468676506703747191043825800603208809754479275981752720795125971296241853082071306428648481399039607235157634672561429379604358835643188023009846798357153736221720566614374793963745156833953406296588913034077587966502722842023887592994201056806324109870815794070880323990936057725480537494566677486850704707124285593986205026323118391781807001018565533885829069973501236974899603436515400877474649239978968007631097166555173831451708453998441723340790031888999982897099526617078987268726854471309573615248173871886767037779055752421267234451803870662587763212433649217674093597898459442226184667186269264582529192832269039519439492823817780190605064886067744562242195519429067697827163303851854968496493279989533574966015542604155552596525499560188090762373517723878798704176675627824959063996598684600238498798889167182930624144701739417359333224235737453963783573302387921459894226649892831864766371045986220660082754053996281513433922530688797721398547196194344860381044541610002612628899504718167557745655905008444280572075915875611969209010644200903750534526972062154282484844041893363857685884051342355322696862307192831201153827773371199001947588922357492302064951150434297607123307257549217182586757565017480814823790946440190843961972876726065364502753170744475085954328141078504805293977502450438339906941133045932619180012540603148502195766944397688348005387900229895073107246430383815547846288448392278132895902908257428250626938074513610875286585837791888385414241451043587815047371577809547521860769670585985599719858202816837368247876194179250127409994888023151243816942700864096305608686646821189537812347367494713512387976808975741951279951075985404634112556786267959904374017243954231506735070129783179175988398973225847035174199283080321607960703136243557149974772586812994808158925610663105465088065464046929805205255153042818266857537934973016413411150861452489032373396671966454104277040540354949234501323770937789420771139052629327527604742467281558032238659301278010244545409030303299039719424911085607841579118704886825754913471661901262703528818357249511491720008211770932373634934107531871727738975530537056104941365237457287861782299958220699680579330569065595509355887580002167744649632889149541020164618911819870472852186168294932285624623315175532182326091867350440481569521319802179466953198639873475059195297013580695877229361100604688388904866314435085258524568122532137968656687723505795985382275142221233429107962205145992402030595803589373226240718069665333398543443430998001773200005800979521595689179658600006972241843069924604231731082263864642928342098463577866665885718438971240288170824326446181427408860392142633985011745973239137606421006988896473385113587461601472003876429637584921528956325830817622901379272322327195465581939286215695492249579165055722182968077506078953267525735098683019817155096051497359799856749317231867877861796947418044887217094493202439091014603719601690330565601263526437521144032525966611439328892411642507684738792552900778952317534123641615276990484991472924938133629809324161947536113867306266103199470486801332955217606549284721733273938328486070707699737314443261341942892497384608922776197466215069931955098050145761112791969230767878181967373879809523900211189318241412806016408457249150124735538856963257411439771658305692299821317605506935207210814974420135671021434138484907047365523439606382889278562706506684706299565178108699839386688509143788921188489062794607499353123826279221046173518485812653922551911932764078884519358901675109428492618464371230385607277004815778990731197054692608378260258399078289823596350717301733801000082048076938826153116203949727008926950314686747227288647450377781037849005464715137933292365695692561742906042471059309140710964086694461041837211535594673728656205827529620094669911499021059504368184585680522741199431195628207160908366161579656467536201840974630708588293650155235516524490794830584779330325250166497703349740773788714346554390187344160570029063800452958740842430943066100588673031967563211054334005704518068747761504207948516159706101677545574214261816495890987636699588505895161369857911615581437056806070867710381411991016987912969019092851390008780003406890377537836515468871174176584139987424105987564782835394360770801074169409035057732300762711940593051674870712923890047088401415468038121016967317246875120910216388759016382440603593469226369081785723737566014090804218157922464536201200714188425578791882143705515200943900819145498270417842603226892475335685557376977021282774809721693233646852462162616179045533046862241700179872438272686574040441222984307256385621810134810434995798096766487185951382991753954139655136740472926730729127781601372534219425612951290077628230515491999553170954328002881124026275695879354381882624779635766177524130804776077462624345860474984259165697281107974351972352510487701812227409375404934423207654221705595306316073310196288810935248908283699831645359857397686131859878922110684623835513287490923679137084915011371724113818818137828837555739401248080447622859199612708642119171278220089491361367901226060105493938057223580638252458080488466615058064253031318344445618408622228308982721936099765087422181066673077331775231388368938528749310217667889655056836121835695577880082688745469223978633420286786067137002276226029025726862576743183876864376181533246331665002416752936203062473004188353272568753977908113375836005034375615150303132444931905866045755395193256762486861427672912357875251066363169474658116861859868677912386594743147826995927662611635352774721428651612769289660797110683366368574995527293999224166700476090245592537357764169246455768080437516243686315842558878151026146940524890897419163302506559978835556177805487391278266232777215714795616798322050157330483936493709830837239038507831190430989586913775605477587233751151148324309008670968250592465180197272541037034149931714522707966534196771964446010321074393637588933339138123052441552191752510810501802173983164032527963956335325495418702784834384026739734281582759832429130524411120057215445341954570412621641370225438437522188289536513948911197333513148697993989896944788106702196527149562432518724018009956493694094216776721978404524857601841920532966381630180288889544785675119286065519806121584915044354951145935735098523259171383763505023017975972964538538381411172929509991781759557670343046908655512059320822357841804820866130358581212134470520716607897353003122230706022424161320280235396120843622058519135738844073993990429676047744191821326121666717017019855223604142953905409842528970034748448150591313402308230735783123988009255708094075761504589737238649729740477210000613311760044754845316552216233101011768995327155813827817790493898372938017027361097869931960931161578934264841116228118206054502019903875131039228167057898666271413389542851471527353878822207132305932857834887817295049506408694298110442629215466255293628831198000397286135168121901338497184746467588820561694890840277566926777908916272495766575046310213034728562715089915676050446189069629924719698066784814997001311405240742938189814489968232759293972150909715738733908418972595275862551301218611914121820486905596728184853219290360584447710270475685904402800374119849454602135312359486046951844236956726013508572643787614974883451655850537257573734193294362830273621064684118644873409265032231314054016647645527929919457284024435251739773691867189054164181477617617240274982328742509865927144925951582738113642808030828595687758041116130553909941602812856918952374944944384200380544861631339729659350646890898630190663477823871790546327612971467408611434706869240429758630101149844609313362312275006137934704443584111457323456306852267238963971896121728892424673538657681424957701518500690110899864059946775825184261450825541465284326877161508352348217612305486296507465676632601432496055369604113556592281755301742545860752862243498135611095130063362501779131988277121597121751566120445178304087765758199627934897203105067248956377728722163621572873110725730739660291314584332256684520778066962929825990245502204642766177643599249244604526917751343424701726843197451540223941080257332840737619203631876866757947059832908187818589330040515624126038376035304278686171116916845456874565724359713343233282929767676426087727131250114984005335780718768315464093229579933119585079943450702138511208112066961610274308619343446498445155207692692152828232891974469750219954907541247267270432038390433759875528370781635344697151831852451593329028915058218859028564866990878123899749384422636824119323436927655336777006817570547528032749901618324043603859626090402235337709895741141593674658331733274973104709233816949879969559736257912047365863726454426672041137745416625397575212372855380041874803944510691505508911035525075481967716871951061483209854705367435097654403503554474756122421407621182998708655111680871654629966413351359855983600403823018790356755674701177576825559132882714462028884990873708016749921188037106868448568340199927165426846502522146828069959794314559998544318657274780351770831274660827829964209442561622154456517186382424936170662452179413889794995139948611458735453908694053246472574060591361536710190030700178055034757368809361945373076120832836954520282566526915556016403642216313622068381553524304789649044822506561409466949235388683926320832046343269741929056318094279810895096244786385603655506954079095316971413153837645391342112003510980966917620579592598923703264581176585355391644274896810742413417082215187182709944923905076842971502209256912784645452009551536441709198298411367217508754674872006421851810904914373957395454159779656540064711065770552345896566664062556101797581081476367628476233907792191191069559600201615159345009587356747948928067742706069893894722667318615865005009699235636285800312355573521487708206017502307505993884433836770399684139348867828307195401623489581266611213114369064429551156187445695762355597118416379288709354143006740942121907275005623846539533196697969916816840012793103129871907011360049113331100495094824205809812581598287781242763400806075349673049274120798293537518502888277603837041208154350713160134640962069772637555293270206692492838716817916480637174107260445423870811938644420735006229502168043664099822611809700739445742627260520038478126537448801918002473860548799200853215293155031619445223351434568006272794742910673758000098108144629783959411424325104966618828966100942971692720148860869760859985229350188063835314038064321993228652433191683985824820488714086954599436227145977964072342516783136731463153229755654767078292319943191278878983279651596410902229216851159187731629498567835395882160932720520300704375160855849663183347717798719824545340168361494527931739673364126620020669768436480782415296719212498011408816828497724199101490929790199391435298219964394548627564357745824727805769837319854887632057023854239137008447762578912086580052538407251473078745398497299079137186910509401907156156785190575200988873661898978611200132700221705055116264625869677278663604975601364603680841161676141736916601697045305507652574861765466349360377489484800545295801435657703224375578121005014407803131590697006980894964824275285449456392934233966485802104060664184383462866682428968188723981029685809001078875325237078336406671974602808788129245998089171418929976853119644558376312042962717446429102555768861212235377098820735669141459817975413733407904918082137344826422007170779815259975310032857044777908374465050702437823711083764326909977882897430241597575871761570591540674090920115114655440376833833108535531528033192832340704581062834237266671996664945412906895878288571955862226560697453958287191837802075438292035978718727822468978981059920565608304872643115605020138083617710532346224499785301949331899063029206194292906441880547557679908633459019661473817089379724403802779889882120442919934676324715467250522922705424976444025725542773289142842336687207049522880353860246485857808225270733274357197222270937248826081042828921352531734262334719698706577811270284643766653975380218177421543728519639289770144503366868860169165627521912417337350926942892697164349546104751631923559540265933772055152391987840189600023991138912251466845188836799535812935749225395270866625765236167160884199345376935078011823256141310072657825686972406190317318004851917581186953008812678565556410256304200418563078535294271743857136343271941523062419793010446738816437867686225189158723556385788983251546855438532994245384225523184871513025610432198335136102759556925261713303074493328613677326946922035416669963062447948399893162660141348959706527564897983634083378643065361522502278786871241678566668435126497478610172630638112622929584499372685579421039181213920422453877201282983931731284157546030017716008033124428461039781276766541297806569681175294125277798858030821863127393228785339323453508560810133036617067088719667869752232975748362623200992744045440834519125528922156454071316570836396308352866717022950986624148901924788436174446264887497608174560862615237171341650762703467759163571708987048077529548008752683781674776941648466258104278034892017581011323178910488385918488677185920238824966000006165548336334239985992799954529966482321019998794910108589255655075640956780124334737651873355852489113239887823837138292526472011561495619275923099107333789180403207882493233131201559603278895655089898018038836772937076630495244698312621824559637400050764010969690056346969122763451336008934728100620805948340389069223234429030493377115272687550129590070574351971463065734621230341874734950886162266235708096893227823047764819348747849161293941112164788413515162195928683291375081765816404304213218032187754474200737706652790302421981151312598280584736763351954606937470993828142058559343593045176589608578438509850637266216103212037828001367820480584992612025714737789976371020778401888174662751046161599605667885104804784601249472722066301338832357251444238790139748205654913370407036160581933598971080672805162960410765584220255855726453124499337995235713898475214534542613407492179563392407125679438566238620035646510979161189100306871111870926790930054958901913707210451208503465168465263378283634859991808620384393423068081460169401058568872238091364264648340885130927029753880276548808671389422650471574555266934433703654112095111990551713028537886833228689209208978369361493943139676025496140382597657249961343762002677164067320153238470666200092120089068652689482571762621096842270121380290235983713579206789061037694082732394821291200348415406892568142047004491717801151022241851416528060078407758348325242056581674783907614407311441528623996877422006325812312957328874785755831077147408365664547658145582477945337854632097130707687923910819150806835677889777384445326652335869229174887544184340793063914826368227839084284486073631470771649569607216075998369243347592422869217675820584702553274195612872597614639785496603195870879582967843038138017127558765766379294320609182691126031549560789831557079668220673042337135001814564264014196470339662152564695218566131850127023074730854637772088143622505660129865770788930001089215986005910941670354538218319309990019435267259257624368639730181838473851944789207334855432519938308159923728550566463618138608439338197374447130018161838978686019188013054731357348390844706879898054722231439071354539066822030733386312568670950562192315516195268508333740160966729609764865768427050175539376390093737398484945418315706102731314735862925532303767248556967076902463547731733991599887901982189397875280215897732154735001803080013711520038638132592906203038170810395042226482703564260073569508623751128753678349835410238468809142728320283600367002916200514077459626661156423406019179821395618631033900862925531798102160955240115276044185870321950948359530325843208215158297429704629940199651125701672559924123534158585215927596076717957591798213114344470889553804099461877114867674086644544307954652168267190166182347077494118814497048393467959367664324716458111286196744757284077536075894533142434325558574059106760437032347396036738647556204473838733486769046722164573683825672030834576194773726623343019721036389177478596352938839529742804684145606483034423459527722608583481310169845345665942498895690587797341158657219394158468788292527793835156366026183339374030911990334402507579370542764783255911994979843357571499314023883269774624689452921408635055785030836795189123455171838876899994150339270116329000409175549875963153233694014921418922540400458619808539505443161095428426676947504145378335343900113415188765714106387218648608926742278078363715271501761451853773440393184610648759484227577381626954906920544787017388746086730203229667724242177552505613089278506739889013155661097979297330865463337223640772202892845176340731122233279060084614911401570633415460906590208964589127558235693846011709634990126211606229632313956080569307670474774063402747764591355060489272112956655991412561965351323593693450996763630394363966452676858209507311355118782301158443580258298274816226380460297443949675270000345017005171936101014663013815939751254606960372137496899418326528131212445565692857904018682773515087545346799546611126603182373815320391743597856109788417734355176752650898748391771874400904736204886507325544905976563691831918480064952549968442460900968101062419572982551743882094174986947507551261148827997326045549301253569462934602296315131386081789297032304713786305524388074710664846897809540515331665492162757746222172121158333213404620983474195829937304631140924920190789844695853938877225065682303048780731224573793058558616963547350961939271003346451614327055867607307423128112284938769710774829330184110858040427009025342931355739685248441761872550657521547714048421800481422169695550635375117260722805779209469130149212655056357753346657394123982698422020100612788443773229724182903994800889401087162152236693091386294739843904911051254749258280178640276137434116036061203125871955759241986014464473038055806231055804245408606071455974380945311397827314083429618263159118940493093647198947465513988879866908323064752779611265745689978371795944044511027308493438115396075725343834883778950755492962046912909022042003131841252709808945316975914270654932862800638842575830547043686615501215546275723377769362126360742497826553279330271888858831336284658376063708491298849438325883783184553641198013111013397570496120476067118583270716071363964640587445134780690832193389827465904319047900642635914130206324568609265207590245908090935558362812699060553293314969851075144838723302375341616920824560299122797324551947813002168321098321709660900933427961844673908805074326694084781855601588727927849173009566739393540918901214368267702565489342560074429537225600233930338911300187936393047759873680922963887865779799184552410351933287642490667935558971018101198911930145970738771610019699468571445104735690038144306975524076482083207023282931039877468170237301589920227098981486136921461621781983304222376074618968490222551837878568094336887353778400679553862196175916768619512609484002817200063401676338015178924112463634742886764990175903654610110735325392332391454323919092518429951059297996560188825619029365003608583191419873864977130279536228321378402471147421619303991559252241077094653900958054336376420811512079957292613720524876235170690396008982085499678137013822205390165087508955883284564005419465114339397471963852729343774052926813989969357163914487702882572201771048580173913767872660686476269756293792750960656149166993300595997144870602303719066494532614152000914405905373984284054592080333680862515921488689326907861064585724761383512371879981704534626500527289108018023805317724476998639071312487238439483411787824745822430392070357835057885646177614514036921076455582861974672519546835193375942715399163478498675041214480590842300466326582767829073305002483259562517294955077950654106750713496469246987771917207780155822795103628162678793545640703625794482362507514564050310532146007700717983714018834492699446298833535632281288124362224588485721815451708133412944132367512562581062891340293944933352196000252649677818341122685760293884012064231762969786999809851132899374769336749324897852859200257045857100489401435610085490832829231068112192016469859525857745453299965755876987453385533005130635531672940776184467956435531168598239471767098615628936766874465660076036526664312658942178912136983715413211377784586919638003775075528035742239923255822631044147215096258764332533759573504205067729708599192570470160126192120838225414884162132541992625803301612241365218371393333836532979174107942767467984426332554038212848912247598500292547428182393340548022454270027866672701832047163793205764355644897578076133996217589846070714638790147732331800012973029755675643766294688897511137139665872509552134649227479363690788585006614949250373857751276368637770609064368289905184283978851492764626694370588179525740159915716812292340187985142500405834441017313404548698675902705388583810509843866900533785881528584377575803306656181797568467734487074747909179682352654234629918979353985834348646359981283160597590836363923323437595861483647943485280957359886601816764790956706937392234764841302292476565995404186905018814815091936796980230192799990131550668516483857236228092711526318652039354963438905984937118764909024386922178441700141388512693792743723915240545301956293113325252369696280465213778239374802281863450165620977291624810584615747310350730796069686688731461097221269247452799325682687688164645921086299303338331686179466221801297656243258673222486436615891547798258054052860939012733063616593546109616344522290810531886018873865113504078787713090529663606731138825140047860489641229901907297296484097146311345500999624729350833917509906228367104044634004463621906416761384996637110792649829266568577638004111929947742519852549475866083423976835441833038700005132216453199169665681580294540039934231343056278493180266678140438161253658933426912484748904483265681129784001451670046041397602952670195641204507232003803852396715469377434420718749057368182454121058149897381706917054531105164373267957248629205967904146623116031695765543665627619128789314271417189540009929717071105879013764563500750563414561225463092095223742810200478816902090647599125191966525521322705807741005503674882406051749285230908422339360265177115346397784857135646226294507668377943822531273393088559233091540231585916176483985956687924930963580793489049349140994041303509616519919794135764093302155352408842896702982894137620513641570864615325461214824554941753277722110943036802746150051302569595200641669703276753026480470000006397746285132772591560338864809479495911926803549292397818643841330537419812370982308106175489785594420220138864561273597055355984589887957298310910634544778872547839684194361296715801203138747168434191810036988849862850036418054407191916755047664802944295156439329954950271970691449117274046306320713382177887481350271985675007641259356803070739379227577156652412859794455777421919531858204632317700428059172348482902365096205866890478891880671943835652889490815076100661832027609424163325069518700208041076346327325547058068674613413209013799165139336301608168688422208802526085111966415927192863115411650480237032577943534261434902907926687095263798573676395859193782960175408973110456392760391463988677980681174297689960318051515556063586147350328634372432102347419027397880352133705891960171087307129777909903809892405567910614299407091124805429615003860250592281757658303165077953088423583032920495808573016044720259420726496358951199627112070414131777982192660665803869407817303811570375794117100302556792298715125246661652108174038770708225572898065549837016837548198078571316846581332077882868421527756991147804263632031071413278376033434658200372628531424689959164140024673273063465081458161014268359858949817956661958839952927583926453552238821175585046467409463029244452840434436936584007062431043624606476270966307845082957798359270066621783165102218644285631668577994410407605571712457809895087885798400417978548885083715213329155591089679441747383346827042468866940974894949894442484206220898086002550041686577179829163179784618790569746395792549452372865986729525532653552957258208034715498912428791327609524836528914756770990516570310402335177489597328634904498280537413814479175357113718577466988915593674531868381224937758628720666402501042812955057776840642068444377491247301159067836600399427288681574668849941299382897450866763771672240450505065246374126878374909645020040336023605943846971486525156346316573219791250450435199402730944193486514647400637501588124108221337823838700586868263017612102915189817600344454674486418662313746841703134962879683015995431863395578224755939523494987949801541339245988312310390522189227591599495188581261327383653667724794877957410673765416904452173789843652229426390517270088249988853959710966622928967644284276347977773258716995811277187858108142210074925954592248245882845622785327987461696036097377526428011946582237182427024742971444729744666108143948920189589291818196944428712434414942681308247347809383527800323580470115169955980491798468730639566710129607799495680579510275904201002135406153144889300193513871639296274675506557029279962731387823203980788814859740626450889332531136341012223807688784158092424329441772120141849601573685899234195712129309963092116559145074553686273309095015231362941603817945797175709938570396430748662256042934385593847314068070619238594172964790748665848433779102866201128777084682074525640388193561189551048858488959256669217206971357791271000240570784180175791035657211683892792998739640071688823958377457542554948667504499618341108611477241079563436583873529451977369283398828071071820549744907159474240905670513437807560364643741591459886381723630178712170954316172397911187767837414894928037603385332270891934465795229014668741954319419765618628696763613858861456100865430109549618492367219795226016710442353335623838825551554305972639367031290702502711357793600438998621096170668315333984066628134130144273681414563553163885731237312498264634536468326335558153766529896001290614094835291481758758583170067480001536792510637786995020889641280844369090261306795982321849715400851581086497433429264344967152229210472818690417602605360036014721399750414540031362158810629377023770334660361837013721163781156707090300787993127888728905454209651221527893419023236980859472109560341313987814184840607227398607170167737956521265757343480644257214457270526422262769279940054122484744230720151591252778583415089635412894475783078097156647989290664272393597977422227304960312421588306806489187357213260847615133090179693205950109984638326717657655266043988609028088098991270197526436179183467156905448915988191165073540440557607169127045566797089977701760987305379907108230257616422391056756076509067871508525526300896458037287217832143429284007112034203723610984581015824058008536554318349562391915443286585540761113665298111862785157656504753243931234999836875466646733632019939993273341515603329235012647190716709824438459342256706525220575399439866200108097276334279632608553569491060507438267855357315228101370649535733308342902834721563485522254299451081399338042660659397299786680019821820974284617460788634953417407561925921091446006788096949845599937645810173990913770375974723453329495202805795250873296811013044906690136962410948138705566330645260989006280527307633428050914759036608695159441358819762558815823603507784808212446198962971344025915758730132896639745495319620803086025360764668102243513466335139749147236290814491682007948819844992852835659689665156304944891582883737275956177721901243553778266814793009082364546717177391423692190440449742840262533395544025475948187062140413558349774834223103446132012431111176221086854199572669549082317140579556879348388690867510382708331462559520800526142894137618285481036017193144742201934881283392605144761951921144255089633172210645952552140857773227512631331699592216086977594066510418014296293019810680080788415559372052821508527662359681199234575931247468544101947525381262081556569452603956547858800863278825462754922481897171162154488558717833307045195770269789166693684536552400334230671694176385591083763866924871267989163263487445081403207980090904283808239560929700110854693982996757022156123096598083249865816034688164656197322234993658325609984807661547015851790423103134901819895457904304178137742355519952306999938224985134597042885751730056343932060884782668797589631537930323396568189048830685045447914768077922551744605180033946788177986406440329291923101327872026891496684218081079797817202087121309092836113696092813923549889493289221145270662161997082503971303431097894587452551230881522289447499458776461813558234262480235896685107300967006988575976652162666129546509207669334270060863596142008870995743304215366770447209350356917949505172616825605919738350344136339769438362710793461752521180455592496923490549527684392880100442920397107772622792100916861232473998622858186931202492654222728594151789985245570658698538055145867130062048297088301088157475092053954835578004513160995121362964558920627234974676068734469163803560727964951528739604997300247286466364850372056615045065249998318727428206171035055706514676337298690491227497775434806523579845587228331198848079976050753348180715965855789726204341548453342289192121039130479519964026320793219090730433523997472137152218648642955073945985053248623582904909982482993999143111992366752791518731072686425462598170767147325718678394389700627931857793215361228872628342575450598992729718208747984636144045418555644832499346854777471217128608188889234212385945126684625345909743692035200978725311390521074699149592023236252507248217008798732026390019810434268503295357156252961892896050356663187443104858999734931192909036647282816677534387772409570931008982991781428634372951481113147244567000648919363741838539085016143236722931325878541349459309749900772380274795497711369163537319412796857903141938604930140121498277323818911479155261660492330523029390237606604785563463980605734676061172131703246274295033294290254944426465528937096964123055632065381810249404324584962888470100972400244883457332538196234133200058855963012918844782074904592936097811880066233351333576317385899060983272491836719056717708634796495351445730939125088716786276414948814643557908090495805155449309657081839595525300460565454343465579954611652091228183936558503200162966633803166225491557596690727317482663413128766999510260565159458167034845353214167693186144201096563536533200518747364981532950934836550357220873472409665856365542837311290813026581578687362067416480223343197810346080884945187631505908463560135457218135234025453491439910475417859072483605523882364107413010107363355484250745531288902518462593041148128859945080063332982537014612450522597286220530871435537961136708088271389082976670181109550564540087158811445517377588730206889968799684374790672225540198915348608748424329264931621512353833116937455400839812099793378559460552197389174869411965095507091746860061318704744223877127915702184917728700516554319506502097114995974162813683512223456108942522359934704454153779713942674638422169348763821805476500470746294167308996461173933913644763421207586472093476732472654273864133055759865072898068061649322239346963990186295747487837577601741891933498317134485646060582756464937445359789518513365640364983596586823776182209265054319552157923821262547172601635874253917502212161096771163904404911609509788530578621145211297830549079639703083017728921250259376188671870628627191230256922329168002011859240784996823382569600877440350984101621868634636210100006958453006165617592397850496446129952954272609049164271633931164274430631159785013941350509416309386357304848977689496984322311862709818173907202846217075839857186444778553653205549648522768172006400495554412231261618092209429889055579417686973654865484843356061212884352515653958798757725578404072568111016619355680730399913674469470627904186836758822612243333590849644563731189283245625269709366439079319772512525921099647857158993047072647555034498017427247248565751070251542078574004099232947605411718096668632331213324843225997317145874218286658467782493025897782965331543945766572945159704715172359664421143056960909266024675915734009260546010504291858625846462695847815719303499538107464251424387643836556350813833956916023492611694984004996330271653520164126132696073980548454010356734515318717908456118849149629287762762635685877310295363731138049158903834904239141511984931062238390428790682864784999145639503978200328421174885483633062126078338047837802257442851505433368426826315774499654921594047640768249632832663125125134001302228368725316958874128711899282359840686226932420326798040078696252546001296897625665282857965629251833013924202082327860489779723134079708961715965121428693243531591867949986313129130151064457940768497789677503699881272926213024411198470783835401513216313673622307514269471324260432978611720451744234186914928093445343111554125131199976130163938370904958737502348589762701637876802829382453005448005993532193791442010946877250386517449967559506263773520100519209979170537358348242186295394749902699941440977635278601355008396308330391180723699930697475598008948519235846351622116914982341785975016263262779422791330286991437700017647196080341360542516162577611850806682601606319412928492016868770322248174407120262358313598915623176504586477638060198660894579706069231059384294204836769650589321463177465466995320179234608927952680385253674949937216834531727910118691170055533251398535741385765534535124534476955918328446094706547832400103693407388489751436220129579598829630187276531559128012102464349882302724614262197491777693132779294520952343471799156085988087515998759716985966684837844836465854854416492851000087368507111096665523910617760703572778846564671303986750545299750282267092748922945241678329906694530630578817601060455908402736311870248026140726879637029009840710503072952762943604140753901463405023134304938722572364607253314216192353587732399800785205198509855535568835755034335879071793861586008047438087436453229286177258774162436909148046103043533814933705266708668427025372163815201474810665839530732936499519282550887847870203455350283555478060980510715392252850813820652902965834854075590513817937712499969772532156415097961524229691285645691299585765239004141167865963313975441119828225398800121427363048175204890840577096652964871693536710791764029567271635932894439881130057743747218247154571773721497709933265515408194541267538236679456871770885647377308495773027044996942552473914508039057943798348041817915066537714352107137189227687067328069850095665691110915417569911516670362234072896794922779090756364108173924262570873884443162016476104613077958910122601800343800830949588195614737345505748800065613042559427692067062347616979149235621785776110681136725585577332109133708289619208698623415942668697167968199077988320127199579124474896961419189702498824939050314888408724362075696455395489006903522845207312874394023332662108428058581827326099583282082170338966471136478168279659229492029677731595924224963497094505343748111031555946002168160507949484534309403496672872090310782980309505399901483435418686862044875802361900216718976650254980322606063134744342917025890690165282303773730647961321811493409683802382187912476752558040574464782487771087115259540774096972347584162243429846993688053577690799311364707017609386420546459442785335835893363239056218803095234415542951210638552847775575342893147581367602027216270172949747185942934813627241765059375335907093974485792464948480382357144754480429970969501063220957467817226879813102071831483635889456704820807064948268922931411874188985927801972296349447319208503156440003939053887284715135383250140889645491364437397630239673918372317642778798977381579697530264772923501729930856079031605544739515991176894244270046074510521958476742653896204595668051369597180447391875898137389072009640632228180311150450685494323963696354354244116192111701645796327158459313645092320120812348324274903975611248937713429138478736677121930630895947115467726208826568353989140183593180472536756842533829180083992929627882611448006274173362037377038588732312792691175639275033639701838677063352480491114903014018764430265224655286351566040740262693014544480948982049645427291165087047118128841820982498562710190325208850092652711413228294075383330119947464902321089193949752527550189895383272998237523240527773835221136734560803106206146147499640631127575090950873629012687444606682885955795340799855573802159622175176068111705914502087973928762357898029801415134275655403115662872491935595568159827716162936537462555850089194844678900229107398514414070474395433777030206818435878925415981150845797520601555773437448922488184915370939860928116582977950384784339353507714247807035418560256583524888741001395105862635096440728163673299881672476326755951358042654471846363963236497788578235175121402243685504701112853069226446801530671810390243858055298425917091483145509635090769195519603313961718408154614491558050928805126522508422650496540220173606602994863484198798646801514946961891789400043047272779430901130831521135052256187492643013047059879637618593565993292922297465874379233181902785536726116819650766615307938995188925924142400608742997787413873350397842142861892974138851800300302711532146437814954322771434124035151141306675119515924439492754252208973965085745979600322461948108524386092883552425844769602037914742089460736633939939984386799852972537251443603107938428373312603344056809834512835818945511446885802800740258033875182977583777800541046160999920012952948395911674200471218619528464451869922667717413632083311718262398181102962236646151743843235475496405568111978707580612278159608967609628902049144126582668760037600062046829687192608974577781647013203684449388044807247903104744247942643445841976799236408061542404302398204325957085026672796801420560101128273750376951662874636913510190850001568409919706191404631095124717034100837812054331644250285627436162189223035389965386532439807332909474303777553144674330147140630161557087828968066955949277235844034644924177870686627974592100571304984503777914505724453949554372649584109028580464355444563965918784461132724027999666001532187365942980841438837070448486656792625853192430258086276383393493365487372895619477419035258224431099879925724490100777823038357180344457194821612306327851332121584627009302498305493161778542966123417723179465053529119431796271621999763498985474195488690239701271000850857276717689481151467997228471142219241039005798497602358661012379264514515313204086630800727810125607671116245556383117968532566306016674441913786281164273121699787312104495635409665863933455623521124169912981590033621769156989649417627160748119826091376377124554511836819252823673527949041631920004477753510818360023648664797423534617406571463798270164288124715166229207948697745262036606042083475190065525421457455869156955205878101173665287148162387842268439752048717722182981219353498221180428023608797957072791314888098756827765759179512079903535270868700356231483389760257731593071566234067254502588378929686502738189379801716937844183064533807142164402290914637960713679245468974664318365816598965247433236553775467126788348309388784164935599232271086533601992203781371358552644013063505211257397276897820375969118398364115214213573131360340230437418298486712948309209053569055515491567736944312425659739071472079882686232761904624203009350944502073846529048926781296765418692632928200443512445128705315241173586154407027195205094831830190195337711692498523699182514301731907514604966290252020511428960624103926886538151030406865234755284612361652494742927169813447078350706920981864807648771317938264250875017021467044138342592099217625553446419526134012087477273801785656240393002385806881933306559195986260450060980337843528329600559912638187878730938536451634472142179073327522391807005742330706162331960589193895445063371294414273863819741500972597571134532241494693121257746320019224520400265854455060557108099847476716208939699391397781503383418358819592036258609332727255030406647558354715824078187319314816846286749583649852357441918138291513641768305969868454392081981007020492779284306569958249480346772814806564861067442306006805101623026599681168400537271496259283054447415411601903174376002844377218661553620266753948368300769473855427351030380417349199218780953759302897861070066301837536192767611766330237962178344338449621176148357216546062949348175395545504504272639044356912311681761141809874886329899617522303716300015079213971596035393305568974768354851719167133895110506893153896523674585037902360176366266746156260551895985697630081442257641368184552260589042378303371349974874095346696220574137586092103198853318828027534960967746947607660633918160026625353437654114270276949548694902699816536037270394617733982766478181968706323471217199414071103686793889306658933473048713199091893820837262532841421020153006009853204393188307404245481937025471403360082425039310888043769854249560436881686056891980319629053471181301556724441298791545076232775298590357938730351309742358546636477045235191101552412746649693486755024542201012889209302514478059829121988455600413883960949759121684509908211771486631692579298930511424019160975960712425682266921520482774648462858315035898758926727690572543527350532060905680218873547472946883966863615885486218169057229319909501288373461296128903220995271572849183155371839716014644088452599354543864090056437412760486170576546737865173691130127895071581330561181588875949733034108643660814532983444930530839192840041246111923555293415105690049889116053641555972195199002408852358125958997169385323200434681199683098547913309404909624518961569487157187482435380841806793731778770518551020545820846539526519047200267730829862495626997922798875726834584386561142035157371271535823575403586396786987978560230173247204197604331067786929191846440279778196500759175722799655840851619680067324462132870104871923577798840470768992775290223769011863714437213300186707793725123842392616995914429932677219070336967290614865245518858537905700581090148399584249645518731448057068887288328377399125067469419219585138694264982156000341191325357454636818429372842803204390852654545839332980214139730281298535982621470236163362415854114152147918804366330032545162029158671362146328098721861970838189773164439772840398453839861649161025030937698175131481106155410535741832289255064762291561172647894324497937903108835950293108564210191414111314448029270189910438667615273298245371827438686262967326654491710552922889097501603709269730651410426273533054979346217784884346601855224910200409024890751019191282183457975957994525567698415817499402470274958434331349204692781921710518815940572003862372385977631323852759815434769228461961974643688548608901004686051665842752367551236619090263689848520089560590481923505886508254798764548425398616055749351805397560955093505518037829436235347181948563957752295124126901010095600226045359999979791577228501315682863555148574579016427217778770190917019272581151915076488500445257501961241170790823136787157872406063989932981497846118226032262228206689424252076569537390660139022674490804719295083819100892558025571208976218529429206911942916090757440034965037547111638163651679112234990240562005718854835052947134589499828198146576173547890726855065234178254053255840227910955332773302357038039934306883526632932622195257102275103650539984055566053579047987224077854407559134861191417172186522205256963989903670913945362185763199508417375831708681466854683838475395909718799988230422794126004087103739394167138289653168019325485041681631856091942520026364248157797303622287017455265596723654708253982785370487993435888520976442212117818827139464845441293514665337005023466751543429059502683562884391135270453677178079668327015696936757880670564383028029671963892596548065905983346378746272699638310824478227388193750123223492657135347662025657674582577960079330608437674678236774010045495629397844269542878055568342394789757142159010047602382628521662589889128916453237907819944383863927833712791794497666016510274416506440096809759813098985553473021249427864446119917329053517176968318960426681720322087740961908782050588192026885907310116291887599560192163205054917647632896608677709675696212622784624874991638001730356086481917333019086048856114542779831822469166037635419357767742389614058026276838677354505753712773952712986311922234877462352455286828491657182393073564679400432170627465722408080874272183920779128904537244192688726485214812400526144790577026237221065475852733057674463041531335370830594293820930004574979676992475412662832419081254996767795123497830556872983724310996840035674333888520117798952353752444730849653177366346479802924076790883627682474963259305872478493032102091620530625539443550136344264074174145988608169577158218452966947744133830032272939072237049506217359394169297614782197232357189449411482709889412279988385907627444520563347896238823846046476409688733611300865359739143147255059451483326013939765318048004829746834623481192935272908637268996979058556587531610934771724920280119058798803095693275807515770955090292155484936773079668077552658130157763313831810519311869440159647264162604355792765892334580957502376860251572254238725739103149929743746288688351197165123330355590943319256701572047172633677695934351353797623907544555394054000912061156867752674932446342506700098950539481693959615812554014240946054297292199765701011785127202042473627206447457376923537639412019451892102878808551050220856686607582036261525451218450869489647845155367389599870789057723767604586431324862985032351304807465003280388651064080513948349753461935595047287925260786415849500790000023008337627354167144324796552113712821179885881508698656559602589021642455574892850528443879271708853489859045937148784129281368721030003692375589393208430776085310406668100767876064281771451947378613878200778695771823208447780023294072337069460704066226844371708282233322765612311166689508240191779567423934163283979512852175880699834051398226476547356027052649013831453522443485411034611593069820927500003476668551399718686392167111993199232252278108974363810874401444261028648131183559362386737043798391769252361441732916870757416938583483261253327429913649320817995175558614798831143077578636406870703275456075712719335365247074141274317969274575505437110338829553864063162908282212893444278584113418632797910624336755780307634127305642799708082772415715082035311287163060480294068501841558897264888090118364389545200495674649460121224908934014147861227583415836832523675859157653651429154840437367693228133242745580995586852057978853402490283254100296798313255901391581756671500985039048517270718591442807362419207663824408826152077675195258670258111638007385096175841311922943321761206240568588212106945911472084946291684153882550264579199771289024161145817952981360125207278496852487834163222763964978439847648481405275945847247110356960168411277298951331519097150122114240353319178573414177382825850604823527847176811697020487220664253922141698889996263298669084363503837809409007671666186339356873940859999055655173452763326353033217444866018405651612373825172946468942125708734712017134384148239213503022877995876007103845576200677734429547560367813512173337322797492389680167556867129006610074187699166055911597795463188141042232378695437316234563518216212980351506465262292835739906695117279557908433384660035481619087973744590612205555584951328516495257770208743637769170520467872947624109765099426244091116123096572964757013542627588922542900637624747319687523499679286451745275766211429406424145219436669426930508016176336637428762437629988386017352438611259603243425798608199847737436376251289409493229854062463597385374742977411892180846516383774872974813408006800300118750938280323810466560946520531248899047582940147680020536166337187017613552410458199916754036694986417879459860229774073991077396223869493815078662629767663901195959853671886915110071741796367407476484505751291314010016573195617389327926278768299554850516580514002441545320656992260384734537161633991449410182618455806054598095379433105726765287254133223962840242293364032305666798663419755821871502420702856349220207029408167494870166217200421873824639504974237672433907969606587840978522744748286597621949207599201742842256110745168216497116533502425188875485031147024741810752477582923251359714028970750202945995022670293269499810647015668045938159547565808422622899393793949524262812273107004447462336593959852037601165896153210220442530556344093139614684197847326612000816855357822977119535950392105398158047558048563889885929784285327241697288164382458845930609125017794749810726586433069160609920050272905378781141343924953303354968162278070610528175650362966774996693372939657825302328979913749946054856534574922147393363384555754998455120781196182654184448508889752753229217448647816819924134187901452375346594156170840583439704984960997605407145756031924951124632702180853777888315080925561676382162406434545448097332197562214006639076470959424895423204628130842912833537922942084329698752376055027946752746845843441722901146539156383302916231155689342091693193066750809921540848706478718139526790230660132556690538095741193596731799225236925338657876709515154743254979560906248225060434818892890343131632564443728611886021531500218731611339817418112430148114736891180893547817002056699936509289705597967607698528809117968519769327773041550812605419287867803406473627708688014430090725105329961740756398899592661325956895527396975745793192740914288785881851845433342944326611675906495561151775854055732337560538944051647735761904826254028423421403676214826767034225171203032379208678715259352355538731653579838336034765178416727981359029580135724810491675978825822033328913352413984742401861253031029988134522396207336904582726257865920721505345817612236563939055664574637648532964560975699832275952810011030319700037661338187733628358989130138016196357138785273524014805065408959041345732018915863997438685883980993871853868390987692350181655943850904208455243961041205015032451168023297743898611320019721319871142832650323937560656693321736320955893989154371181325229710820353373848163494956387923748954854840712831482967769081898450645865719762373982490040700666230685567630123055869808931225627811013342509431317446861476022192277718368357394186429520938725401109770487146313516001183706611399173442050151580528963446386724716388943448349639597745006790135817434076700959573865134542825599458831085026186273700395032119014942368807573712132541025849446951137196356562234677516124167729540881249324813009073060609032405740920628422636564552849010278340086774209190916101380844213553491318932771526481935512905936483149937585150523064744083661225164744794215998668703839868391263934845642144436504250053998731480151693538802944340138684638553463421915326270452894666967868600503314778949538280451537546186177175422659463267331823620143632033329168229253039948718356781131693100828569745337771952033464541535482387982337448784620725554065318446035929373318736525732157208108908580398667401914352500177194326422330755761467504983161802420711559598000461398593976598968604819478831473291663845439787513926874796048702596042048326093018624816112882754272544462914995624801736185075227037034720709784615001846761730385791454130113414287313192358027218535708142480374673465190182568046968087452175303079581929115493444756517884509331177206814794799968029203277479652421386554456527803579848085702050043904271841855081136032478854813428400175511668012824623710660158473008538501398556424805683393823899728426756553758662521346931153307373003576392708158439954278502688042718207165638997880544182497212298299329058294100236764036216003706494622239888620325115059891491460479477025701161368898884606026305226946809511600953907816224318015074570769933561825614239840715361791988564055604374854056977268601969389683993620609865446460940771377591061896472442857406088783600434562941639763635012612841329843889721831690885510310463285380038491278009746312363699593405161282725388911782088595103647755651292504074407340393623811751747393649686757412427654279464869868420818708646478342782057610749835632053050200829993449455963377427735278671761277425205443436198601066165592980864418304538610092851518767448105311804130661722449542626845533735644359540266033823457848416797455104264532284323518730231037455085446877060774223865492359856766096218976201452950217614614778680702445566311179354093815503423655624157021419474312487039007075741997773249064272345918578326627267211775283505841163789880773980011128398964891229364861120677984219505059319617047848672703909387340051701684058824064606083420605887944455038529457883953593705188488566393639253356949729957758509792356225090499790618237502092170949476741722180956272917074530293683265017819577185484019904132783839349419324405172178351095522050642386041352937878288341764816559343515389679031670707913185237520937935590117280918281022712879513503729418603065485132676209441238764617588373757516597552644828147416751462419745773383444276916360451185341911598729927533049507948851390006822995667861003933487593897063629614381606513482077926313893362978416711679399178895805910599131671764158307903166697343338724234378436437306116772069891254220208482352483167792047229050651313399973579162646837155865387085967452887851311776926845732874554203764835848139665945903188313700168172907831917176960282506099827710536166737576279859711866723583972560704072513562370187870051528024192764542259865640080694326303466089025296985058517695082854871140457473418746640686869049740703567866562169660621356459247840537738397280668674401918565529962061140955789132186994780005624614269671778063178198772346415160163434671522301978994151568532230092412068089181371931536156559145884385847833887322011315936056003932015954468956633042473399666349044939201578267611198713629465904591605016165899456109745188081751971371607767386174001859625229353550958117189225147724577153560116581559929022292371364946721555027353440635629108342907881257670046105584810688553648810273124234039801698049624366371151420999931121428264622279855229136952503349097270893517149665613264594542181366897992444829919172585082318461502022815083910369482708079286459868731746393683797310762625821551594808333370707866108029436834208343037972778342784747362977580287537647561714035109817236185753647768463174267015338329275183127548514034149736289669925933009373440723599617068093195097497310632154339124231171703151889196094762819668596357454784905469935034858336458739947661508926764556432988996952472601605048682314835452557631538747582779827539259562168875229075222613177381947319435278841332459085962359273807695532453421149438101475522800532713970405546153653446118987017064702686193753674381542170622298490827602197757767713617902709002315974429805803752025799190233101367693590542024376651780462423726615070265274626653653023149026853813163180209352785592861318839552790154488051660678249025481090671750632311795526617129369409341934097644364673521868435453122387310555462224406437144173871889620130003974643689639504368805351450704902793076641447087391384101367864193691361387371171949875494543556134125485734877469244492462372415922621607090000889793217905894375309770758135094277308427775871745482392574980687835779799923421264370883448145460140512464339528323822623264850510883000812120605230671008559192086201157210446893888325105314335110312300254936707148859762065709948471699565075734707111413221674316141674539392373168981893960858585115707251658076709555038049161500196071622245904471550630065652936842663645985006332232027807590105087889802773550442843191965781001952257427434998939540208914890611990539917617815966848011863708607876181892513845300812029195938476023776026221492497663440548146024377583590117775757317462982276364180004221185402850748696619446019145707695896656036095932165837782970250197432547968153179597196287324339551078909455493857747139801687275407024374226502206908085838874105895134653382812505047034659020917218408298769529887919320665827241193034629815923859294410524816370007161848128208462553865190108795155739989889271287180144609359157018989823763273578314544253613482002634503561283767066023540414540151455659317554537518395071582770449204167456315342430256257818867378751298613589423248831866982405691203973735781338242526567219241175637882838849865432232377469705332151712608346446264451926123211515345256704131354566593967571647712888011708328150517206812618881658692067890466448301818130658187691045905124450483929230421564820438944696960108462620673232012223967785275676321519549470775228838403388471416332073274378376806002886642144304253389958377221104382627492272666502391892278276415360919039549851167092615117978162564464801534498622097624206712980643503646434789901187615821957053451554518775697993427053070882827167861823972415858098726193291698347230384311296575319798025731472024707329251738050636993951735121506532726648676592243974313039987575340487302158379316444425569731556417832392358233349053980575316232638534570961014474270473271780616398343876744451942274959869555137699111460806321903732622182612080406165848781931371077442944857514762552101760217210738695893187749088559999977442911766064300169551097508448913931063744030911186183201230286096870056243256903114314763109977102525018560037548006745233857512158998620819760447693205814860801193369834444190931049024056955393015250641186988593573565889144792278783062815041094717118881641006631470717910279117073300422865341077217214917340630514753678828588991514760904390855842758232357563065687822854603057361310779330500876763909878174753044799484682437252779556858246553606074773590563860810732123299189811599498941593125168187552899019272769314161506983602238893501886986139706019023464849278834219549207806727885949201253431926067343786873875208314857099761681317397246218735407546731669719582978304684118276214320701031819317107242152500005649953100131664550186116048731036250019644141625680336020613750888430550661103132392485867659647048962161375231767454985460337746677085214338126186269680149624964275812344165233256342189975872663477513957802524315655008591314241170971382461922779536450595801608887850223907884134746411968531035515037699567966981762534348383491062061603812547501073244301347024595000958111252484743935066882233658582005197564335710668532034641886469305032041254104607486597466671255149090084824145514913750150375438607017116259690916340411939676408187299462459406146728513531068629229669155321608680099464365008977204462800897039845692116893528580320784069988375068683871299609550227769871253268535543722903213779464592345708611562360904490006003564118544210487150205144916348800867090947127010439772954065661772523622407112973049240567940375429244777523070723428219494351730147489921241797721699138427207542377471365415518182244131006193267407532104361416237259501791213408666593508621925177683541652730579474900924590490887867047904098939978876578051497596614499733841170905328951188698581131346718752453237082181621154987887021446515269807517314041705775322054041652619613318287588791452874297419091137610620474369500919060817883542830375693634417013421532206563101014197430417741471057446906070040101401032097448415644708992277108642799684162721208348554545377326894695650051004462140540175278526318540212646470058566473969604107783105830101610806337329480662767815519007429530591168096581740328490298998832866506216409161750607348119565997076484399869302351344048719976034568096576979332826020208491918577795910067760653500194552375995545407502298978787274551094268233571150908129823437004925869554000824127021497372993687692143143693820740848035097452874655810072912129187423825735761443972567050299482982813510824361740620899042251835790064242199475516026135073961536609570922137009789928805647202624624035753211028421561320788785906868661233948396489925351732166118689904443597706506754871705349361460315608664402008939653893544047593294942885462098474898824439852021099150713636969247622133579079265381099588208481697960909487135049795119679050211024488616153653652201355323791736375940185025904951903475264405730637826147365727924597769242163414019275516198557341302313184952055924602383277052970630398429637432899948660017728412774259885975243389201883451135124085044598131863357810295589886230554299849142496009192658091400927029884215838946790155440869886399779026366872165529574559566006061124340020421550215551975268814868057838356660415935839339681774436870742643427858345549729195274361214605312726992100685946875467415240748233109640538145252306391387728735999782622247590646449992728564198987440723480773176802391001756882496350896892572305153535202887051329452845220232862026289352150137025988448302369105720539383573399918124212388597346192997794297501069319796279028761060470573103366506360464776878346068949988522443687870883360088573342086985880186265030663462677580702245255431078853670770060093275825538697141187666297784046437766525514097369911844833293366367393730233244559000395798633038283303441463889400227292450720548627807139021824506565433986079738942770491712666169374391725064929255351838607284691009327557371725846827021013028237824405093361280689800995839158676102164345004528331168617459376735584984754721138700081730512288757555766965928456184397561029303101587112090250702377571371248495191552171535800996650204317546580039691882078995977583101401421597085377771137449087119369116664392366831254303505068205661598467448034028414091604812844210294166779845913327180206217339752001843877687006509787384572549214761317995068749222129807795961569006299768294400408559194687160157573348356446128133175440650106032321853959671213772508879452119064447600171469568456194278506579265784690089671187079469336257535594174084731322761075440586924060494152858943819457446875518926853272663773898106609608680144324266035938570151151054105760132588566460655148167191163616354891864846563411337636817388268317388252032068502887721026082274336428457604229418825625557842457243201664340176300356999670352087419804695784291501410380943656360956101548433294326613664915052706039619947318402087863328641861473665122346930531707148329913116551540796806447923622391920468875635850725380724515998844991173062157839286578132662152001666879690325382802730618655126382934159406900059974444422222276156496235578597395658750917548292589735416361478733156938435576592478265028976460967600644832866033759851641162269000058545232016877389547710074652430040978106125954989045997556319507946956028011573937015025018836858046114672291731245779258272346204450674008427390245651921067448539063950319589680768520131440637593028341099089270310775508514004253472264443794140066584709177252781797736948680846086827051237959520467624075441673484171092863157802440457364301871802605154434857335821777718952672526561059202285780399683164389744866995443210931919436197978385002410962808064948937381664364071939159227400963022001470277029734950725535737798092313558146761087621657646213661814007954226305163034841436502888347109113226595490779161968265670869295750353403163250804270256015557495215626466993762373200427395763606087716579864939917459867171330911973613089231272565960621430472398423518314055514684369183776179642493656264975803238749950092290538247632040299863634978588692429329646209745733390209593428347265632416995243247565278614904201422983407750373399611076747979601525336979551034133029141219585494435682399534405795200873472578125709908702094627364945278711114837175471383110981846294507910795436012776347707237164364814853416305381320882752168323848833520713806342940236807895408044926828740023285514319650385854478098549863441673698942088264895105275186943727647678655826492268153556919056933894587120843425688863750339697662202819149330232944550452668694954688346663071016539579867070283778986813563804008624519591949670607898861401573294313157572698143814451379579074926627218181967104341358187191586101405730921024314217846953136465185916620871150213836264693958140326558349904929682207928454151499887271255082267574179896476604004290101279744029485764371096799812216832769506575905170024901882720091458658799854588017791908059608225856716789857703517746396841415471189424912889795004184789349272155667080407764395523467747634896752755081662780299912106900928472553406641133557476214255641025804623451206538355726742168826963762458517188613046968876425318921249480167420505174857878725781830118476876547420592800568050415321884870683075947433251614439839377815276522058191613734429738701012687244996714469007346681646688624124881657267308890988392628509823400447292991042600450269233688500012766838148300927013167561217217732250451811087173375898371587767296164098128069812237651758196244522258897285557713737654431286722986729068611599776451990076249645013272829829354075505818515823158061315994077436523853960760959074723829377077541789500624421183990491461015993874618412560801457956738028407391636794458068595858964520355521922546765959680068938124924866907115417926191358424432723109891473645309527194754865304197786781548034487590348796461883614480132269515900161052819652482770745578980761873232337420464859268763184485148284960765985495420952927111614181338276921710442937261083633487087605067117977416531112571766601397093462581539321183547505020751728677197831465126441833985374531218792578348143098777375600846023685581964569680957605709523839234706409558051478931364279744235008734991285446926551308545702334665969843504509169031003419049600415347663676677638695850877589289010199150018042333813015355687016386210061480645635892732155074583060110324643526442304870373395059397851604103185747671869748398994447175887610233659728393383545192391460786459762386072982966247193050358942105229230884575247708079022050407348387852615435788371265319247021435676483629624589022080767043042807136406650386935428984078502436945561050063509269595351736241877582336436514885717392908022114806871108182441487904948233208689166477690854866202646357178186203042861695150515131677556363863179834335925223815709675560523231137662310943941634302961058696738303916856219754964683186536866970131938948474131776837258974224695471763737001063836848729518893089020930739197899096038319045943870760627309791255494960150559608654286566422724968336781624166547299549167960895238109873782061303878391674653336841582584719479782813285589354416087397083200164259152091280729462319608759499937985383811754029051719069855263385960809405360004705081487998966691284848915275090644775720158645677554794037396351970189758133474768776555230293215802693390998937611012844502152145630673084421570558600671305137174586550672809781288386111182787946420426204152376446909887350483743783681766641211847560581186020065158856798015037752017455333566318955352485376482175514406754198479607762658495681031800356408493042893697852695810941485168545739992972671519085339922610209336576969675469770901155379569253527773763660694927555542064620862910283123445420331887421252273529299157032072575483066088467161929147466533711988280874364013075322082090234713394125197149677399215103304952274813472001002076594193876171407241192826401448391511421149519769710083479190983340881206594540636878678273038043453854940361684921429661308189675144704229718784479758901815115475898374479087562001208346973524831675312607564542144571183392619533503724160473004032428202897701624812158870948097888286341584016913084570615671630222746544505310281911604837305772840381419311860563103109254356064162569215597388398939328927895028718195380547275143951553705764871180492297504442472847881862263249448781320818734847181040806316140686257322806580479527420699460885692532215971648457885299682626679846418239542998674293628866364063799319409085038740193755142951424298455640846873591802935072722742119181465217628372557782619087108795502525151197498087573039333516722519072077276906008367801157652271057142581346190520188364824888364411336467468340368146172479330865116995247873224750540931833228663309554275158865123929299005743342561618625462577852714144402641573792533982421995401196518534734125349076350904499425837935104489869970974726575397594702545052503371128036785119026348249356521130258556065416223600753142865400713290286469211114626389100121691219874026121274213123425706064504763316127128190461981580503408162852051826264804127502940947139064509170191235548150098196796903226783587929873738344050343176173621328059239798141225728550256464875196588823248177768925661753004102981301628474026134433926135579676748257121693639468753003603657494991970923348450664875972705279939714124401084510697726647620776509799265583601783915580105670867613672021272623742714666241843045680796966224550011348833019173153823601570983754887369250970853620163451348517861234478453793174416225848423041658784814078408269678108489057158043166523211706462178068676185177696635072606323971640185299398925275328092129409559859228671009168659675918112680286444545704932044988730341189017568350449414623896507852225699707305624710628415095799807133878729722276885616400469618604074497987612868092374821858235813905227727642853729534447326739095630453151040153516919355906044294015193956361847663640788123910806020689616813649812913189008846448792598228891259221567090392559950212287008841756720284526613111063890800107114237992620380701595344207163814165037086348658785179395702831642465739975234500203414876655174340412613588152299394264607839187286569947221174212368720700728539582926535450321757099518630032848656597776658733852439247204146313739626543211742292089175519862203608585503876152647066927778485293204735022079465393651009112958378179092273355195587041719039868604478494568889009134550636186607989581707735597074794578428810260351106126319021493116249921468146059571145514803123662308842588395317030828256816365158731458842898502474105700131946971950681684719664762136620552265731544074063807899043279072845546810819773217010365931126215950824055603849924583505040372204498100170832959469270173267219914732670553736467352071874411893255303728592264206171822361799257101135726094267141630198321199813680413431305431612043315239496430603232820515412599788904011349890969531120947605648201806286029741077765301931498284389800735795575635877213429128037801574542665019602674878835718958908685468111893845541723850147333750154800071535951590414471540786898338838743677671234743183315321848296812327831879823179880463000212718006462446308060911166876534570661722883966567279137475627908945684066636033222961925445956547403815920558755602421272362825559758371338804673711047147073343332312157397288117697833643320645140523798593090247673440715975148490536662092857217941047859930004181760163695866620508005396091428307909394843500155528673683210519468182501578782210238966612727068656228287749996356547890331205985962803547974715462318126686137343494653882777686728507774464681747359917511431211804428237328987845428234627966756775555232099040686328266084904731398555054565697390401616700801901893820016158929468143982656251589154793470131422656837673033404707461999491309344147803259314358370992737887020075565737985095394566822999103353094907753290434935148082528404443781585220872910122230582332023736403052135210444888861637691430414390597168418063701815821213824134059870779909432855904512125277190151503591766895541338795445890021821620473089519355760153672713524233415244914020594795401051486071218730517589913111894876787364044937744977316090745252736930516045928745322117251517674797432408363233129151407958626669991300880040383782637260068703079454799462395090206462169352683504911278983785894311077440676668650817064727549096730544898051972254471201915011645617660206260975027544594535465886415002900132843695156030013309290899725529884187328772261351676676927295563499439946014870251220401255440572953763556147518891272491802807922147379665907168695242682540757549153091701084172397909276143211554228509801859249483140753692636840980997767613649907931065086920866120668003831913027032776229305448849594996461493865524757612521056708866305540774574826772713623113829322710459491513362831198289839132255919750059345869336883424460372253649781537386691095998105371967255161392750071651430743151604765953395412919297265597852141233270750501910958075500878152135032223133590253057213570096131563469940652215502601224778257645391856976254497932362996024705701108795967717297303130206892280727423507310345550202190119736269430565046719050997984787798782148512818029698904408088315030128226054972060905855935274206559552965182985440319228624859264095772895384257465506490538767664566113710234493765885377285428990767578398014155559435273181965535765704892143814408091441373451159375640590748196951503792956090480466858290015210627412181346782444798159049355032212789847887957379813922118347808807081877923146970118279617586567111678176062456072834339401075464873381259963149565953044285341245350302145600456544286908743457750467095328708480175431707224175441437692840115560704318998099552912704710523555029844406969375431554377574707612661682713266189191228851537525213440756153759762110647360499297321401886034549970888291216278096271641436046673869430032388320000290674722084389011335728467052654003300115592900568341921811336911101817133845406936708753171882471715588244816363393810470836562837937377422552332618660368389655979849678818913197547866659597575467746075343044895306371713278944398130861240510430412234510185830371553631425028709123138230095051868261566886957566413376269687278280717759413457505870220374996003803193771227084746094985462969818651556755068937414142187036607078399360583231184294705115335585356971371408000437712359367594031041850599943355394224635351629472455545113605418960932725978947552612209728202720803339937731817720888463461193802067307595085515027702376000357215950773432404711214542840906016580815776977646433099028375885502704633416686743995307125742137447333086283475080868505116320218504089165892708043251624789721077935921862893333471080088213553075473736123265646522992873443332694719759343640492769648953537326265395222656962028524245911717391812757933096230084959171671094565789967532719794340535177728759824757780127400960038325368667040491981514197453176696828464713207936843990143844300901640780859633602849537081243163491135851753387037796175412561907726544712827957693851901892012652390959059060689218166107738904278628158189375786742231591815901701399723604444764680664956551593668881478304892698335602122874171334361860742019038746103012879868533398016537048349763751963836781670412286672781462089288321265100277160757625662223376588097592655339486154206654301537265447246946968098610438875249161241397548524416650416513362378584240529916196192950660921120311635054292549045823511713991119778394197797340335108827316457635650856118644617831203870377201310171649106248484085135616320506478436521580269252315151389769234825036605240661273773563515976371312732516436754785039057779112479303698086947499484034787696909499847042606394870670809503261625504586430255458652370065620739912937697013406908655184582496911104410078857823162076172543440289582778231754683200836855773508074767627262998057653332402929955871478714666996836039981676895374918539426246422526703036536860803667936655979697652449463266519015643262742722630064270370983494783554793843782686726285269833065118112942925446790112636158342378977329986746201286208066786117264218325143675353173716015905967447879606663673489703472919148201715345558593597486499119494500253283406788800868138209395783893452367762893024976273281515473797938198682231731354660921811860515304850769219166445732843485766170419401549485794390405736170895525353369173497954388608917346840702484156900059932218361180340913147236472014920577886816619822821686045510229341357109676416169220824904708411285302816005034484828151233114686128826457393012974526112191950086277325546264527012568205383816394325293049719423269538451354089263242487061671258167766883639219594838700467408295432898792012031855744524571277567255314669805704324338292316774218584351919592852990656881787064976316680236916623941511540644338968138650324203278600272608581274525171639981308765013227598536616881941285397401732035126452044690158266163231455386145218382298874039441383510450526576067930923929685855745495470716324861073260956626573409617186785290724951557158169785523239803135846752291521768137021079954098595936531302463235020903329117016984060371823012408069247421395949259709323251015548287331405481617559609515172828771773171245354989051844777983891383502622167424348647325312518535014519086854926630001701058480422449524364893561439696483031945951660028682362129360288054289881599556817836178290999091311117940153114370920620565827642431098302037880177839881984649666207366645467562846943272081810860759455724735520768586924466085863413388414734884300912281913900660523119136850174825168617990108123318721471921810504788650976518275181305894285288565931772095056664194724768458486494510729559120711714032906486314215244522296965552219479791931219932021603633434305998495771643807749192879340924400344025407158508718962349558540605754229305756822488322089158918831265372370364616471560279263425486713910191611317204877473812231941237855231953743957732828663938460760521470536612713165421037986334377783215321656990956485432391672454362437911524832624769517421082864188676369463962086423500602786548418019832073431189766230662008478854797713249393082067922258180773671845687922783669071205354611973989518352933305742299251215362382415897769955831820315537452387960433727398497864663465209217671303739864544905600415400381921160498949470651830575143333920165933179286677553977687441521883203410823979309264273213854760101604407880934574210705824594743593364870318435073451468003248968080519552173164072283613186363781142750599952495796495529519867446571835695179383590595599442665594277238940743153007461702140204413455871824845365211583321007761507124978022975875767861624271866524760473718225873768472360370366660291126844525324410251243478641235275782498415025714204658567923215705194399985568833919847308944873063064310843220655800321436777343440751639398488215827829545344546826932008921377007451472276640419762019799219826687669535156948405370552771708153720221677821305595772585476045868880923747257973293312284641789240042101945201512702824580322822882923413230607164109339463687228827428143792885915912922265415238094601286050801262772277678280455783283775026704747086437352325699911840883940691059234738643366305827021152634066106385903772437389861422834669254734104951600564890082899446485796859137440614887605982217275395538025029175822072919532626189066878284365369809657952010216013134364431053271591130928730751456679903759904397935771409218107462480991411092107185488787101883273188048078072327922183173090384467203346059628678023353516490730722995771022950837469777574463069350158668689196178887074812692659471467375971212010919585713308335624779269580579980513779448295740980867581406896202145546345131626453147268922314551813509560033657495215810376410659048834653243901807887194158380747421285090268312713975736223922297257104981808714107740821328227877046479654513980502708014850711971080181852971922223922920008543930698899680093975341095348384908806956381234681160245576637768569415008181134971432958364726194202470023708561817711675486376422220412863232068393435875372858068987692148018497848310912705776098014136807939683960158112774720929498204869820555627998086195895815510236906951068349848349583348429282281344156753603853423228391272058975661705192679921792257065572151899922277011595087308374712328359746510175073958387980211127773256187012049952752729735191729371017627441596383838859650179270093117990413058760625235207714326160938069821277321314140804954089932780059473147133719841014034824481981345683278338428184931484973728550851012318944594374451536771581582117925044396688734311452611800779835816960729497585571247644228316695857376487318531758870080533478305070247112526630338190748592609701151434519901152638256751953981308921529751927690023486338155362026188152158828398413757618607476459283714807451715261535246189692412587347624428148990386630199845699271766428474358394549664781803601254692416461696073722469333542048267292414175238703194796931770917033822418152730151386782925626204415372315813561115507463403278650074166670892991610853986449875383726342883347487917514995201000560333983371950731647767737914932765675629189005506259062522984841921225038103459555083942241318739972037531651609076545455629069888134864251122119091216147045141694087961594751299949040650848286718672201139264987942309168081194164412568105661984321362435559959838841408208114405267862080586312201705742669125147794533460290512627543679746803198991675260795304669686176112657908383266362421844462863639274497774916840002814515890449119385189931429780104398484916497815028833212605408920310027291654630549667233098041636933957609453636839019441619236226038575909936991967300176152740793558068602409048712894554879397954031299641096734581503561330657458617766164835588151795926824042846343864879304753113660740847208936716207424823726718215745687941611554813804414827542971557002649082257034063473348770325739036643597974268752657882986066199527833112215112336107788556386261682375928397241796886371476469601505793266874413032401102848698414609455690974354042219159412080417460512741111026327724875070545774386681522392526183516543940695340987325583338804838789350785190828558396392747594619288179964742262578677706741672957779993367701218129984555646675040872071436504300640601766411748516232988458237209532165165909052862902850907904946653847371939674551576266427963544901067428851927888387889981607665014157140430009801022362265785876416450582399813826895660701076373427690811696568787853540093018076790772040608367530900287428770152323963174281389854672385472111291548800242334497067628089333245793614136025352522830180929976204844795714682108649884334729436795276886250346921373976229833290434593062815401174342252332976226946459954195972221942054936484111651760016741581334927916267572018942973894580859341012880507839954409144338425322375632825162393257799708727729822741597007073702276175279125470650652016137300798888745691560895543945771702180891193049222305489215139848655449449113198656289204670558339429061907643557450071272704986817073144368707015810666406923773201421489131953780269332809434383937688166278966566253995159638383509724860359314313929090416143839298741110704957078333318703220023648447926154205295686353313078661102596288380920674740557971260924943791654726207557294617525466331765769352438958661058380464351972363200159936801659325755605529999094677132556173137736134792436141082123581054164120172443151311195331855919516979118775830149240572617864987500716589066829332724225634809477764603747753812491521380166651386729661558742617473194120193704788445227468809628845450814040365421886433386177426617350409524680033898069623951783207630589026750322471842307573636695612635242811358686101334424600902107879181745107260520372585466456367788245033860227737300972503396925307650288375863742838658076124930504999167204553406629066622662049011789837336052148081403537934111539069263362621412496829900500560602010390815971666542338926671794434432938410984629075775625038254021615553419390260791188171588734332869670407194018064634105919886287806375933832156688932364732320305682850092765612788380031126044316865087091976259219878959094342166847045203031658545304619259418025877701199086716655968045365429285676341635885513021284430529483901233458640573874183613951796031240870660295423595685090266487271178827830465704286668489074245374290203860375541732298137462136155405941314111372060756293368173799460927178166762117736667694657043743846541356206453201397947920353940290576533361567488788122148179999509727167117106007147000200000721086354353538322233803301553668153210379054788343524599912622660268589172386643479246737553574056747245909438603257163519126832204485366345103296197720728228071845247806935881326696968640258036769303027930899102722604343798031169038098940819850693959647262780441853753362281842543628450761673091741994850414288588809650865985381004279022431280705330996520783158433040026550692386662246642426317909845910713180805423858249043846261660805715316951898355500449761354778808500127386075980675880769409233442614222483573625480539117307107010750193004936350312195581016057487871236781640315821282851527101244599252015108295264109425789080023722986475380750121459637089558980841675735277221718479186629399408784232881008264781175317160575965142717479733950881186579796614455327890789154508290581299307471236084478834641887833963015226468814540716745046274455242729944933437760460806202797099118729045290971096990093319206967579851972514504017856933743479362736944150693707012124025254017939594720053015308257342688283472350619165283861655887628604211618652138279508707907237794123708874935588912132273154447067843128679808611330487633133139693486352790415653178974068893142008801768166997235509753492438120015134818313502837459208975742246837974082553432240144617495917517367471520173309089170649079224232271020441228231008163165827805220606926010073658153034848725170960582681193815661128223471277876452408329176053948230018190234851854570290210254939470315363722634352348080402945061590452668288051097277378168538130237855562501160807497013722806703562606664873410215628327317140392011879946086543558319781609708642291741141562679578153828221479101816086072991943273699949799518256582526538976469810696418462958220552322972858041514617582226134999988298293559723949716693102108087286185261993389012530554989336957116132908014719747517858714160087213004549568675825905280008333640024740914146900328051172106894119936464213586055292520543483424250730636739873878886125967126315738723926474802139193577546869416744749944143085802858870182195961933254538500451292508407593867687626428780049252443783878485205205563352762257931482099703075371616957641788598569861974913097445494118338448258552896049214385651767441459494623851263443924951397126406040596352020637612446210404298735645756397367355661169018506649961223387887434445409081674525284476493433150089844639106259530142377135458716705249410734360923512398001528924180649998808630472231585780475252650461808035925972106160907768323128622808159572801531986084071206564851710482445584969910943957183013805527759927767421335631513352555009284480599522665107717245803595933836769145495326871074434128411926450945860488633519048651073947525710574365535405504490986129661221295655963236079169188415190610116532871697677204530075356807499240345617855865710882749394887556225649044513499842281228929576323443702963025152169064587279675635438402786083569671780397578383977118250132613997533902414377051680108379499382072740650667762376399028167000963910807128022488521932963162341608119910241239851244569646586355132967091722629383820615617109528610299460669358831830372900887194974522388149000383134699679518609960423364380238182060052894167930771136340779609818069028304488690552211289644372355469310502727342460520360604159361555158319824629345647769954963458150142361523855209799598968240129438427257509897756183347883486077106267575535885478045976225597389345789642737971351497613792718557706202936917155040959345674856987097786920732785663216661110198493483188377920275576365178608756630621752313819579397348002351376188212601120802365517729436847205365533521474433047363553501905116393636186535638798215385277963759486125099392627918879321126389786949939014225059587025331036915722177907287467179010275876561162092899021804541598685893442303492246470745626360337608424711717868320383896324084389214336001018860284829517167128655430088680608947132929330921392958124909871551829402612792055993345403471224457824191224007420431395439042688705389731332561331052297369270457074667809896062961733586046133366671867115579084200755090590305828587871226770770033725645261170417238236152627063233243230014102840989143236294098934940131361079789884691202823651902089702743681880956147718861994543741349735599165191434093018882611055909482085265279351806502891172153447634797597945970673349856151823564145981483401958822577418469686611241310416199707729390133012512327078976120196267663375732488400110241275334569451978608401697482382577580565128764567030802062049353759360524422446501296549987924468240753256212742982693488016114608645081185840541285369734894025391128057093292504530902787984617345682360139225153259934843331837465650712092598260087879877287627289807934451977604181321987398209718706856134406947191403807972453681480549961681698053003882624940460544923596222593223317657015018042712975960821559183732645069422696042751890256089519508814297057699389848756710888772628643516878197392524343562344639338577705786187330954356994111964953410925451343575617506532969041892536704251590871742264489010281096025005961741377089704181708768213953247336242413005753799852992291846211585572173136470545208727375983961407103043477103038184514040453752215312973946626421277962605750665407076159631154054324115987645501668868252993265156099846450773090190609002233887507540706914848648330558005077025438567760451021807238736598440909420882953774055875958710505620632062935094122369643088975707367986352226672413917602822603664310617880696110416792345776370908975079353531083216204580832197876696076301180472905899172468244602171149405031507051673864670093107641117397439879329409269212287675953111121349908873088275116833810157763134956145294553925194572689361290882706576779113559241898412297527661974851614380426960603232728493005117928412822939235231528251318239499688080228809101020770688072236318433575349185303702739885263338148527605851435033984649961952344251991960150882895727997689961561626019623089749531555044707934604278521246221333879135924404448219941955463250794162740466482733086432717207259337454138905530623953603094317749775949194171036350461522465440958956197525336453419465562663972097691564941205925308523807740425441205721326499470836363748824694689443664956588441224192462638206035894918011039915359108205045039798145913556435154605314593597276124307993489822418893272837754978897794514199599233367944726716672165765239215684772594481742872390263954645612585400616566900345585429073574983820177310682066926002984767177557732828170864633445943322056714779594021221332071229067676185162558554752355571043780738263713150952512410292491095663063561188013393387389606644341086066295466677114131403063526319878530613979728147162423069638304540257259082550755497221844272785121114756937735825615751346178572378450755852205138767297015348993076613285895017901074906728444503636950368597199493821096471339073210076032063707246168282541162497916145194674794814578970589191220240866245638935977039789990066588609072114682052135248433557776378975312422888723860763570846086912032163921318435694399089131378839550654330375167036370726138603253468132749347683078942322454610878956321453515740237403775728685858724678156298065631010393991098880596263044620695574193270429377378651820370241838818605456665708422315226323247828093582773505743950951241218664333872084203617070538951573912187149954539167917897996346416216321768188966284956191136284246019716699362134304525627054764972129394038004059083258575507321510015452793800737282884690041717286872987979296191458077951705713937615850669984071586329110594215183814236190885604320077962006429350610738904341309701843007063180259078228605084853454903775268556750215021399711065302183308639438960644149264220874032068701054923955918003738974056034886538602578065786517445975869455879978549263388852665249857121806470808079361301987136384018605964046718827941924211781720720114567963223148401957065018142312481253016993478146330178726595157193487208529334206531963295052066578672245219085853704625487605106811525463580910073738912957994773223652930903799636564213594841159605725400050492092345001367012289554509524901181408042895281111477156346663290732022197099254233163332761898359431487574634233959055743825076992488018899723895480037392189620148791819549955041015794511206437883028331214356814484884333971733128507853042378467114803969619048686250908683930901288578467925194759706843161557767387507986353496305365441792981356286791614913583416939665154008458792058747279542835248562739097304331038517580823437141460295467914237069714215029175044018641918638814089110961174750276170229959684986455828681794762920847978318599996935627986933750414580329058584994304116478518135527605755956977912999779839773133472731454426553387253745632755790108682261942131788037563521890743050488333882206290410183607128406656593588820823055924026442205216524249991061462747991211733303278524613070921670189674125154910365651471736082247297471141587364046891936267915233847427967976142928880894989562710252691739951146737650295519385951609935001750149106480934480534035159185977092958143067067563675161482949563257751911090670529104221892185703207938384871116847973454228350064498572087432090115763250593404790372973297007696515615770581107378330516411108526752789087294893595308263624495164735353239680786759247276239301755403712464329806103691030504460332089440157187269235644837570368205120417742255281973100238464323541000404765289044696153043481532358286504422767769011142185281039350519867232197026962017090061793990311327261712862200979152876765832685059627499944586987417573137172473352483828708978316202580019615434716852489642859809639660295169580172072715170807089588626894721743985246212705436768388996755889869469980394570952500864684543529008975110701174156870354478325670465275865459417495674254944292893476468161947853091752900483294548594410350788141487857119397778008686012296330735523418131824907788402216594161212140390835080907868623350262356837535920084468416158141695219217344965418600855421624615681238821650402293890117338765796467242752383974312480417503472772037850528165773066387110893602485242159705376281666353075987626555586903837383867870751433391266644855202893840794311754889800339247935100429817426265346476011771769318231804432728727634103379261373409652833656647231244948587772998139382516769395900297569057102975653968125932708203795664049109439696489467780817483296270680622893183107762491530171570961372331450509464992580627992913848360038018717356881183372169882257178646152996588258251408792385395702223452235843160965401888300346822250080506554504334239995027474914405631524411282091005698842209984025767118897495857586103481597880141699434704564241225746355184280292146255284844618597242164917626233265810120281587376626121052285803907908404754345832135065469013913784841646227915564022127137447967187274731521247791331839178256874229252736936915780618916896713060802604839290880246168217771666151349063322614236056475024747646653768222765124275874989701063625676628994398232822893635020392462096151391900387213910076616285802472250753648463113368604185672944865084051840566435199188783017225386754041422000154670982237421597898812917185383336279923476904953984189813057021350850175010863382443796191891357484210795041495399329555789289852495334909919761028651180279308681770999697167307708978039032729118653463685403841059198828579845458618201424794262173588760104965981708859916216960626395514275926535175033542059388294921656955703793574339390073270983736302091029218343415248428439132104797076135971532730329582143783481378831658831218403411311612583247559831378919993414166951569852500780830374782141635604885600869594829207976319149850014058701994736643657535223017391285910975886847366066871281785923824161948244280682002940957218164517119592305005423785142640202953387902191287576360092708733826609519101456014017220159801123107025636363252616625577050094015655241137826685507517041435439363950505592283276970772318445896687026365796960037396796618338284802859900568232616096283371750640695063455785728869090179222345380878977215942169421398279645695533862425304484881799223013132441525747345283634301776401062963076784665638207929270120891868747281947398828583376657528128616084983629258400611460328207292038579270294306595813872749796570214527238146746359006951771616778825381023340839575816839543711625340947286990304735776463530236945331363139850046890882522650673500772353592849382079562786458092141652898721681053245187508397173957123202841448115110749599438680039333831766317993869891091042827196832262206821423937026082667143019364779663217655344916076586767412532945582809781732720426992865646983671068809369592324435223280145947626673959871292859995380324919206795422818706080198165499290033194923404343603562572719217763359442873319133909739101200991715779585322150990707633816699536558469075703025643612809525216265165991239922784139457916191083337496492774566510758083850287203716860361190405485743095759399239460658701024632021873756575983272261715135755914223747432039133178909596457903970833572001865682988724075080673748779853731046561531247950001239092146288237862789783858159627678431842973582245479338231568885031364797394061344045859383419284091403221991653267649564325383151645129213241754929188721632322793667444617844586161962340142485977851323738709867046265964090762744858805756358299092231817036649430217883802109774712525372617096252972929165460902853442474959166364277017598734026532706657759094285039659017413493007659850438593293216940002404283621594710433405859762345263497361483086585714918734652707660396867973253725235386835271378714843139852115909274874753264836705978976367829441665149974922714707742974296618544848366684057174751089789764671565787209232363997967795329651698465811515929805974503213725246595927272846588280268510194167567161084890719671207148081865732687949846632657176729206591337642028120259406108757975021660869324458546661626496439457485041617649602868069449142005850798024518305819166233859644245205986896589580947856711653885575632809405013465801332543790943422935945039599668483711318931863015003633598912822612684548213819041324750172380337669331930185474024152462995697948281481956003111239112966154467909677394984095711924848075609087707199817574884721400682651813724590023179488784898902982336638240772297081335040659781600575546200490143237591568389480982289819195292115651411253755495992080731776381264514508175859228151136404692233821515238326101217454875645157406489472184891785458100245708357014241175029562553639229091540355628570270892960600282195313378151658757067842501357375459765835735255098781640035953368878516482660279279842948618172012993059825324916609324982517863175823291823640550959223859506308255523552633350964755326619425445949728576215621717468915394368277861280459516821409506529098482455029319799928375405319966588200435187189060624639125248217578683057085578496266846816090856256900734182148625414195549698431448049999704912019100023500051268955109902122171132524958881118620026433375766911323518175416778743839822958211391622748927265228794634217285578195272347022742828706739070794421823795697857303115081947854810864908472630612919972425467681625471884071524480678722071042419365038689540027406390923365543029410934108585426599704081808447513151429968172454130800256797167916795770930996392007246845522584265675545746525379235724778923598175324147496323546365306939213269473722636525278104616380557106149793318594068134266545069420311577408372536411143780043293765870356533185954340240925952394269767484402268084866792357375912716363664711743558516809806911217295860751574491132572671092765718992942198123178080534190160113564179530852696040042110629882364904961825993464499907188493924303981988615438956374839487812845772056645338157903317521981238949307570134495569452079677161354447958238778438818609920077706883046400511290935487567058532290987239038096578445195101079927381474844259066792667175084201779670750104770918132147781562599563141065428968830395255188616964388756554945708627998272512523571942693624850167106888572360622641954277432819757731745106826914980669008178379106726434757641522938160082007671038247705622273031818524338774140046031514742770438498270364374836301246643173072749769861195843125840189020052284182766200719808537818403434550594516566491496145234266692687141222975983325771301346523056756612850538241783062371045809827544255887848104875389284624968649745057803943423015701764952924989359016374036383444001223106112051087214751834847545605824872428352583000674192613664446437199950614149193831600187356265024295146325956016045593744607590688099088584408382905842509568917415146160569824585968077959541644468026863055826099590982357105537019419345187368855294489978312882752063207180616198966351575106893597244749928417361087888366224216339076622396285171430882762167582669266948895066839403618384038737582988007035413802458736025090268193497072141348617515817132621268476773395364390960556741638368544820584687115595071879631821214651476651401814729710526267646120230607518763508873971646601015149932877358232018481430890965179592537384285006601807361319480704687086619386029590060247304495655397404560370031988147052787210239049487890390103849790285980930005140127085514784769656541199533021275492680014341735575591792974989695329653604879320936969883660410477826869444425592016388229429309717258022927685884799053098142353406089833275421736596864721895306502111179605411516278719388242678480347417458598178341145133619171303458948443167981890509797942570468987515229410276830472514592818892579269477522080853644586010296557530880569828888271824770566012593127363791311393229334560743795982667644856057652611170011871848619541525283103864891463579536471548677994440927374883791028154949532517546321484903992281031452885169132240211776797637395621896233882788461560369555658687204894704883046875695149693722926404231719597268361966838664335818682289988637698976231966396296791567065258469296165480593114618264737459099374736444546855602737409377579024420863813015076630661318811110607777681485614133950007587538614242004556219577241519422191108715404898470794810692202356308964267769609492396125096878173211439633589657798332212562992190416315988075890865735011762754970132189624038648114922410900897369021999645531286994486573962458892544921076686755061183930390697542434674844277271694033117840949241278449800813435524441702516641577357811755897817731715691360177232119231473935781924269794289289144764624836899772454523889493644188618563592397075346292050501678132149707854061675949688991071986886535326125154220993379056577375448946188707017626935244947433057460742138576494663496246869283399715223381702759015463533478320664202229053547022472453088405087728816803675640582202417620346281443197047569145359008560001984029400214485706929845546257937705165897138419620625729034043597538651278226104090064901481772889354133165642074930028387941070642223903805893941571912345314162761283855127341703374089206894543127322027030643976991690276680729537178262114522661032288905141296029738307798364780102754393067726711658689019177966717850084489046241800997012850356392418613897376317037650230757032256554222337568575573212744493960755574235386298553957295841011952789128092249316857362267645675473742607470886641151083959048251163280447819949585683763058125940749463282618176780666434415377915724901739220914688206820149180998785786481280915336951006509410313938080558907027373844283560631443554015417136789859531217617411257068908742116603125355909280520129536500163069993914069649126826565735772106115476291259130489130240716058679532648212036946516465059558030018104050661184158615480521860171562114813244242212271337363354891954357694412177249277514609802822135495116587410167185830141398013076653120448287626138598348769691710145568014288282340056099061740146542512396213503103927277525762280893445378018100680133994161913622712772451819266812974570900994729849771650666995592438644777706097870577702482943558364308041329267686466507672849233374538385752378344344641012252251797115986034083467833355489624398409272279001855362998162336631929301004406826075448314435407849898156425096554688166412303707370581119347127609877976204102102870591160413609684204296732357381460872738246219567667713464473106914493164285615785269338609654904944098508946951448240255609203595025887106005112233576810635207291222085029039161527470385631358294933628125959699586844617706133460193760266094884805156952517254772664260631867860421580049438447910601273293200515875596234801602392428900961718644771905268176454008046233016114496751426667127263332104134784878648741367079560435082229762035686544879354153292606954027330989294701679529112917244712802681688491521995197260139223539521816094156649030276769954571554269407431722723863720840943296142991539824641768788005148583925272898486390158279008169768474176663437576893673160281682504584702167262443213062871162784913045384103521748581307167722560122803956761145758606279470618954712661042011306423235038340301919111441978033308236499743238984467131594442468979664077719944765053338496295450887522662169296067189055507380289597121024491700395143026146222366270649444925152039724959363031425928397915136857517509653755723181358376105207857005386517372338447295149986834083218679229346519332038109325771133823910629711647623352739338516786129887907079489545470166671627947101507712453753569710311408355258004291603306659001824947880971576135162113361283413453399899370300237150183646182047903990230409781273965723685023192534384568818317400138917751633985206061017663968034217941237492926862009442327461025585441493197542060647938759549488789007220601144800426779556136556888261742128847692051254686604227621584739778038864112217261793410895508759526429744575774990996551008584806042130633280072129575733921257940984291645734749444380477732955724417400376730941834908813421029344912374869539407766202874519915952722392966671648236065358326399345386848644228000389284888977057887706455462951473280523292121297860202310142764745637180596199964297383408781582998633515085097695005434138843015458925308708447277269988500254965734868077744141445290082610515476169098601286426328724729702148270656243128252852007369790267642785590302880946367230397549401822238008981114013447562498174364327742734858597212260556406119558846327934813414190608791031265084725366953267764052020558034147227229460075683311082834459997020067622158893956210421762453694563857143461202337260568540658074415278022214858285261291759985999941820497783305042966389062564541104768711465142647256936552234288836145661129513918703307796145833966454316200363271808416095578131100805142471146889017278357253045169767282920213335574997889427992356863408108695664276589567840892885420681752778495163626016926015414058946819769969577441713424148063561867243836304568186240740683435000098624143833993293834533305994402217326858792073957362918900067912675263955255469356280313201541235012385916890022841119690835162300957161886988954920903399183715209024476436013766871282186532744168846385783919024308005171793327233098980713329176487289547183409153192789938136936165346876559018870156553157164349375540912716687838575614062061059289230920254764674805969019630612143867286158592695019742339815864539412274554779809852554595161058928089340721657819561403866077453201998349164624259557973146704993510316957978767423375058624835644634394366015692457091990718665655397276630625837348841982040812207757129669812647704901038259129196510047618516857524656165623181021567483481382465653590157852195925859449902272796834438516388855153040562919303184335324061112556113581838304402252940714264302288417833638148820685567000878389453394483754204760059348748191065881046297663898158234853437487479177953152352173466006210562694552139538922467483029845099549752882103234242607868565100041515926337653743517623056930765239540601563219249632755534606639546371245401264710694832394044729825712372176603682460233685379545431521139033357981625051919170258790888004218724948513874706336729723603927823728833212998991946967866534096537040802676484790757547466817741084949506064213622414011418291548551186332776339565651856456163086999383406273147396928910976041374458173748432880258420585841696306200920467200227135540160084267479433879747509862249604388570424260021490915303728538069675407632358311351396639512566346766149424990823382621665116574296265711453202613330848510938398822435887000022841883767797284427969595485316907834140429819873684030056351477132637259232108938795978624211360303312459565106306787353140793753940916089574992094015034998950911667729009429816598751312103066313581889322779748640919712535551710517078923768226225312094728974468240822782330886483310990079108569435478971453772722052891075109215401915033731010364545161423920927386668029122068480604731576632753285626551964433682611865990177234627654380466743266505182960564298332713893429422784146494134137560199306977323995438039308330692262276366781643443112974119852519756830429480708680450148199878321785300103081175983429251173247289855164151058282469516896992280677949093432848719777331505911462860960556606059714262751514438030154904616823981325427718198546882039990131029910825962825449451887016440078178796720566557963558698371904253591832715471401480422718383113391973887589240833226926165947344771877281556282728109194888707396601346710275755355837491239664318297864597078602027780589768430251243346716343803832555416089419317980477022892150725208494468940371765303516120705347615580764117708362015118976419861681480870099752693438627468176622885153870244165279334396890480148810099714377308445457970851497236028675673970188914564715349897182976959842188545973241827512267320200917942982738691601933350723197188179364276940320841957054191468254774710020341797509537844158013472145500446594429118371474487735135997276140330838041798776680366298298940173923290114667868251897240668657917725936452312471851014522381198259178182812800621217393615573293961990884066472813147628779783910920314040910883933025380982969767429685269308067176918687801220564782201895307310844418460146274981819835716392712202009321581430466680880339769241917483755174480738082047138658071183741748702069471566037740067158659977095772821847732912807452855343920809948836621481120468147991041899702872339085909896058043696284475008666018533253732338930595261500681824509584636779258574718135611001376675318152389966452819190982524629109026583714328826094828038817628774854797325254798499718738426446650756506772473271075150176826868801128004781101115436152056131330367967146482093242493976345439427161439175190398692699704153618628471296943212873264118159095123347515484423905030902937850041762935368511497604590654081265211872660041077918232433645827213470233434877667349088561430093688197727307572299202383418125526109696480495537769252321201544393787724166075745923574033879691516157498201186214750365471837861528670150681536744966011123928608278488777203664045658068190251601527367882981302306837641950059338854840001069869111801946720480922443131553959474310545183993162203672438054975582854376398669360906488993181534527580795386482346146028219279367799242786214303817524436441234671476409156646003483594565060639909722362781608064104504862910388878986654250724148465824886954005795175476806679582028618642261694774022655982679564789735631779264666366728403808240505433824958921441164859404082942651913114775764676125541964600579593545742351019123441179895930555971092334759958947783949906669590682636331764655169936202037534699596278870276671827638878806639027329262963286250579554791289962260352847388556633771070903158472663914715029062960273735331601520776070874646803227689170401887354547676330840157882044331783293428009887910371535759794279394793341147818874987330173676453618158833072341171634934293512095168364210187275278188983547789280573080173782530479913779653018280619323941569199542869309284821665107038560712381669774335400029641584260180130567741973860567242213188857628494127059746275450322695531308378301643359648257704325621932309626565576196107208476412347032622623275580699228397755930925316501937444848736657046968321460901654156726124239405837071257045541841636177376816234537499323938742950242176579248135215176715111776077671215942803789711769938659021160193688722243553637974373319445722562292597265956152995109606251990956857326538697071093641578749303539341073480339908401301824267653233751007169729993496927088664434919168940946117732682974835978857661182083817632623397098524975481397662740116999228943747443409391652540711654428579089059139897907788440670611215822615968149693870623463089542830819481300762459584670528348738151394763115205147689519994529931830622299104088698482361665045951748827698610168959438508205747335936082589614057267364317175996761649923078236176202712563712990226720496429905315202043357181375621060269431758383850840341886852302376626431606860578746722093680560049864877016133476336221461818574984040803725201741677999292757453727405350500512567418220496744638602450913609583478195528684062271598922994346778377599344325345500549943799359794049888897158001775980012425918063782027596222350705103491795187270031058743937865571279203134100275048985946767447912654331097420211682705939919710211180473202122095220787728421218250844351774807861126061841717209733566670368548590171965398167939260980110223366474135558993718976305549903473737143512755853833989820919500549742475079693478486621890403783868253294885602198064935236434138401245085009638389502130368461068729817061426955085115080465822905370069191615030028755025771271538808884330431366290915373003788271160023666826218372881801388359001969653038869486391531201899847221142070778983365747565128870309454832577734839377046390843723425450083268906902684246729449192783116985472974751379948415989853388344960246520603587429069514014854528032232572900886555752648678239124043580830664888179536107000648755423948197064047503624351666336690596710636975793704080225647395175613225027819237787579260191905094215671205923397544097483648447227084077738622440531393158296164822472812020155931851569195160911960436709053862656883483325623302642132406996557532427559010719411673790244763293072623788024762270930224595413976098258812496579339755414322247455356299591278524734873062818933488393348297732156349824428186811185596407046613167419975839755173074563889494005080887107130495858228315423951507022543288341176857715572881442926224525148071210224045845200613179569583842510639338654949890763033389786988324251786452933285694296737319815464187350517474228248550594662574948787966619764872945406247443458573151304465980961970360023168037607327154721432768625227685650841656982223152792046494975720048021509798067232298633115243744864614768341653455558694570745319510878717723257884296936415138945318240529466550415877975446943976382872155765022441936696237441250353857640407719485282887525753668978528293503168964150012867317025320319745072242482310725930832899717577749021784707435462519349934486909887607205951854965462205304470348361520885703590308062423674714906198949464669502141546015976950378102705842459175635708261345097354313996756944806789071098929417329816267914254217810178758258600071958192148284610534605536539866877438361981912923885540827093253754253203585640577087259500099947541819892338876583166373291279901371531629916710501903099738891523932315310636496961973211103911079425463094121416675960760101560651189480119985422922846458521206432928805077194706172776748714598003615066324358698380759885251314721087601291452448987557787118147753876865559294519500994089263871354418241916841675172281886760001261294652190465335543935263071636098621160947165636044973151188715505223355290850172454078215730647914870843766221255520593965123825465890732818776672346261622636021255088192698872265463395895023445337999466543899667016079094231915878957213017703755655898668508959849543079828043545059042993203801116641250916458487784585804608606488043149106498015532384790408172621445599253569856857883585563870826721496990040620162436456872849135283650043376921019411544714564917948347026669085296135451831716472626581939938287805648820035707565063249736458666243656264323346143452914475484584598351232429076302843249437846382370060923013238523001778698049572882534477240090235026656044209181333901888741008257080196615300159633646469782629170133538889880893794846195026029123895752430499340531959802161197276729915205900845332007270941580862157421749535959819335848722029833578566181009629209367107531373488071255628000044186022847728240820286587593114886398020857101661238595732373531241008016382195662663042668874613860989057504492599976173078568939932851643341883415364519842860166393652702998444022672079646448962337114946807962769699634544141495234472112378333780997039299627728287556716718325422507660280883153036085670777417193756864537345621534393674989810266175115808171637583052102949354037009266668575190899504387926350781924488947669484839062459520521620343909840384444938463659872848383787368551592909969011312552408744283437375912037722473103475320043727555840794371363843486401432669285554215819951964811066417783188226809940774690509205838123649960178597238510829823707530288725152730854577295471633494954113720733196344700302071941150816843567278742057436596311031680714263138680904347109591280922296868049725321820929515758009730081218548754914634263600668043196387576924889966820069932114759805709240942759006485479691444418132442974166240894402683540906839825604346540591769388503054209508865031804463044232574575542019290268094867462661911186732067952982951708234654891864034458370846095272561374921885552816602313286436206477068832175193506501772325896353050111794931163331332236444613313541386569767898744920696183592012839247951608739462541591401744420302941047184138159722425897357600576013020064435530194710943520047890798460549726444192893506872318196565243784613838409471999317029140899485789234316150260907566038211602870760952436385437005295070053066056494880589725877579924164400231653013701557422576395747377731189430187678209175980182819039171274520921374690757441380929189891066011822385832161940417106246685772689232599423261227060390988350944856177271109319364466019164523157831481684549656443657134900464397711890897307470378523920485005153014878130521166428302036902307387161712324377899939561414617806582162565831072325836101864776560811162075718110748570114797823617998715620176125668576584128481759425188314870777422019679137017737233273907966628094371364887465228717654139904263583429586285685618197810434466482868781743080726910650715415344597206507059732660642563064654436362289360495002543769660246061921664446589325496777604413362147567284688745561936215037982609456973944577816404075588419445437867134229092083935051039595441856784349103694145652881674709513184456712819834336576058557175245764585920245848653940150643637499792686193534651167494069490903488210818373493334693761744402434760251845344387333511964616980342007178469144421885992748507624848238521528214120785438482513271883817579943481746329972407033757808742223229016247766944205217815825160438977744506225994414686683686720052411206761533928034233379118942924459094386580499238693906093262844637971675933297165559087130411007826634388707757192043140730385434314545415316751233342827042742941704410815498239054715510730022202345660269624607992122990773487982718774121317228748510899314993183288104679641071068015144726010928514113596580175723749434332565517579390615394303489769508182473708019539835615744057972164411537382635734754737493209137697531979260783346683634503090814688376651736199669237888001798417263497341848555515030255683060495402179429173196880766540300639196774002175016331259635074816417521182486255146913289824775567405554248512223546653780829124031962809099101051601559197217497842013985601694638075064210050406327066688677274525222779948377002176931627696493861045361198010702449430520547793453895439397281036595897222796203451301027231583458650842131227748650003577677619121232020893739053031671375621342411393869049634165125851282322185463763721642222763141468217478076847203569534974827821513541725516997578591178025411137560281741788486421854726951396258950364981251767628282295500531421829233897394204262289494490183470213848506609634726462923408224762115373867871043095539732651101235317528324482402857268508005785843585050053163293965906267167523769219535091851890236805939711797951012536159633715320447477201745684302799016619210289289413478356844672707817598838611405382978960818575981842565775096228310272628862862322598008603468796317697381118786884279287390052394181079147850776713364035201288587202037581074686283410749423719479290415874759177532288176339826737367290436548158381564906875377422484792930149991635978451501688229778868433689465561352068099350780202283181856099333251723691177292689344329569365586025547459573579725225725375830344911523812121423603041649803004944624085247308850878920431731759714827808938202474313483553753591461876826999004572296399357855656390824394091599512631119583638566707129815015388235500583474044689997604835919993039727498205326542012377447769146030537871657919170638381471752520134571841529047024920358526848989058462964261389141208898219081601498948864714345298894455719890405206355093079863373357050698951511519911346318869975149586202060806066616642688397404058908517982228624410465613901983643156249300882202112833590358118017808556971364994784998529554065657190824584421601635379659180222081497003237898735240801304982225210537324589474853699733356370097676368637536313799976810086559905740697599880006491463341369668565900965793162901259064686050330488960200679223262562292674163593900025418711041497984014153192535735448197206459715524198760717993642127614368832901019177871463703629767562033552036300185812325457627673832686243252544091488836642276383898463386345481884571415618270281526525456176407034813836831650024752668125076337076462206200536040768519689154342159416698282267862515694508461655621041837987914183827811991903803917063478069882121237507355867650257849168696448841401838744121588295039305935383154779193070544432710118046289512065659235484332253788395410765585379458673991706245324614676495931853231783693160810412065908068118143789063781275959963865304710338394015136630635428252424735535752500527791875420334688130554470200200217890274980452684959148660183909484212751302521338226030645713182449084318074683597767295252899565904643577805706668221209640243439936494998782986817742956963568150575276010470262492441343909307959164875169068342321966377560469429258306661986985189038131392666176190129730994880303168097241005380159060784085589674374857389150484581165880766422404448779346921264373372437838456436604758372101364362526196412164826030115417527437118237677342251930777247478133956583297336068390974522949878131078873491745187744019409881204761750628903407019214054437102861799475982961185343315891852384503754306198214680352115429275771920199322683207626903857072225864496653186202644068182300884563273869124837650075069221704665808843300913162260719040822383547330752727575933516444807143572635853638982331506950190479376294635312419732348003983486389193601718584350628936901429779672708894179682725659061802045398331728593874729230897319840309094974230141311381696811001037640712055865586019684602334229681681968795895011451585152003627236279148569021920079319848062251317571955456877113250781511147856861050433411792838151567965016045967249237445870356863619249155077771151413671085710004097428140361199610168384597451421727998690541816693766374629505516945092735967645142281842210569771390250522156439974385730381777000607901326528041785660221525066707544606058477494227024262979129730653730616486327727823360525085174818434639223283684223165748637478096897822520667356119473370201465667511602248117805021649558296775481263547839370541344883918215287188650384136177020707899995659911246074148147811167059014374466080651775860963742388985348989996547351053127391749514471604609468672641887503621467002123551290440178480623335534026830490137510845482924208249063475128937405392051252641130164851267933593702981375247170897656706069212666873158197875101866809187470095378546686956731016359079579220387839276300273612642292663366228396757740018644277813207734283008332286659977865000063406969577345729754621490762640744492598469263777846903946906394862808056002644631397491216360273939378759396677507869090385688981027435402242255913380037836782563581986320195231408285233268672843830243577525297472232483288976202052694281031513630347317935548689393499983200777388213890605509784588910219982877472208172002554665504536225876206588914572518330206245306912675044888258464547218494893770966262439139408293153070833481573916120110128795815705559028317180845593557496965394888954216163407452084483041793013477180297157355341608035068167054540713606013178016438207053045381107177498073518530489842491099378814251090386772850773898153869835013491587597140630225731878178327410391978725417974296092041369192601459962315349617054425542756210701867473495939715388722130795261671789260592874939628177786102859058232547895381822451991842213361607875285628805719582035380602668013001870088021212146389258417131970789240676272929363405834784396840131840588209116726465237974527809775442802538618985108433050970893978368882765272660993842428165332360405982322287292327896075160278122595880189801396676192816188808955339530832632961403495639904183331219144434980468758309761117369328447012130671823759431177905927644720925878598912451409892471140049360160172041703799730730438323662130733310374843731467777204896259173325746562583323602060837494913685537371413092018813056205363088567345311471774051823173652207052345189756384427242364379002045773496067666261612944641828685744548409346456463541833635743168006373290544530801785911080241061131505244284688601509251243191978770035716256107119260720418449560621580667982142822822107305751271289454525781018655109643356556898313333024928458198116285715213589915308979688821863451486427019474361405960873084779804513818647246531886990131161494443451459244359933083438341853614264476377812858648269405450415237258576859399139920011632221214975123368553850486816755994005797533607264551512385746931564818460285661093994092071465246196549971982260150901735863293987031869957718620072118385770598564076709460271815828238288872624791042400731013040320416713675333963747566239704965067249882210076039661402383944454681082570510673316268646307626031654472480440496136818262011291643559438127135344203884083359659994102159704439742639923220741682425492840509693154960147252445950484661923349565628267103428725783094702098832146525799890001382244013613120318905099507045171602781508327351167649289623156043724420703812667702641360881407622881336286579062502068546247499717329282904683490202218836433105408517572475238061360121854487238422412986064550678411225189516023197970114772180151111481888844363771147237352973296664304100305272049103826806131013953000425728468395089986103152861959165324538441235198552289620481466395335220354053179038038149411427719470495456756261140056281591579156455371446493399177621497174431577095265364091189269562867559566716240283968810708299885425415140471745324153450499557744201013720903169690119825113359610817962186023393861485858220653350072225024655711329808427494795692715558431886181957119798270415595191799661864695278028556657698019874197891300189951360461255661318767353235628563245517538749126344771325631053893382868534105099224692153429074289682285254339103371259328225982191177358479599827766292622213305809333260846935672794194045909127268515968482743337734826442005634461850485019895468861458280490793003968320840452800761753504677832329959272347719268267808514738130855267615720762482404621192008750306098944013178708036163868186575856665426635015700291185995746266481510151815022008180092871742547331828661912053744332485610106822888388946908859313717103310343935955578684890178017783395625558254091908306784530803820367724618981532021898303763290096053332909546491030054870751567623405769756263490630567265144959307146546056686265193930498849249779326829592479667080289017186470120960268495774590317103326856946569431252111696349479851374628853551380049328849615379559070319907215348469149916650737053285853116728517686014488400972363320733508602946082078636466611594558353930969540296262329014204485179993562657390597121890171377065378982278684246767416021518165371399715569536471666077855302668530851927449347647667246083862888343740120665302068796634886491227046005288076231901258895245335050310167498049067449535499310763245234862577114286176389815711469729796476544703425318700575551153156477628084239425977658069480763636918593162865340892030443592750898149047234137571607376477756287054511304640323603195571144486070756815572316631730751967368753421871844189315699415620043985141549451498214691495761849362195769052425267971701693205216277955182173260198493129834984606059962459908034575291144430100257458079057338873479415164709047845860875270910373867488735735928672914255918709898649064568367843387586613723904985952411685980034814567088446688328991655401586577360779029610627429510559434104821059612061353989686617969902391887409870143379290797092723376096495671675983067673956686617327623936171765135305777562547033138442439551468215042352646223039034785834125843195019925770323611521581669042301875529818571814230746666546661535906977752858993358275579426206960517031469436211410101520745462854155536282762757921785360525719975645574973677030791081430166869737398887674525386043174033805341873849435417102248727257172362581993489932418573108374904528842187688135731871297781365136023303224631881749327125024360659142154270413777871826685763934103627117391278860567512499943417947281320609263419773757722187016914827699386352916145771636197874829048580484124910185103011206185469940561848561221185120930994732857256212445769726643280052148704188988713169755392704518488498988503701942917941961088654562604312505186552557444816712332474434042869932141286956254727966212683724681753469055931602356511547586378159258576858926643911630485776315894529257786943652687632104829538424009331516084569526223346622417983817407763090740085540022978597854204047330923640557836841960347939082567014226460558698608916871708190729190835135744418910398197676031750572530168297247904519810982522901508777539160734704346048106591625763401301412569312023014694303989414793328495135858683828970926411144143785551507770555110433868571195798167637697917986692317398213941904177629294235847399721945044109994654008789734976869788320925964054208175555142822437617383028364016509861192458108239060717577760809758568458165082856500151817360477632300919482023070713025245830067900631042429303435310767915929265797736194908140060939784453109581285442460223396888643922263360535301750693902105872163773256342293144410568115182727515171731569992665138980423441580774278977437986379150194291441416862451012941213429121248467112371686575154735810578901828395980275853959758074130747726657400798779098591941859067114128827570248811632037346665086899750723683335744581935250688610379176790800911990522176022270007287261691342467582548535881942268399689444373919723917025026078224803962879862878995780375834829957486784780411448146013423256854873503321772110084208289576871856656174113526513507082596199793037489228172350417839059830800760506234492671893602107580428908388945346994947039824131567874186559958443285686089459948772440819293512711742811633388169449925212455875928487138450188363252443599350886198375402602546986259266756977465871555871816203296863899059724782938261073191222114890035508987160574327467804640042229205829001929955403217723643697572218474965149161282761566313683568261101417338908537436383732333740257900731560867552813044817936735623677597265687323247800774952042801222332581958216361393361473438422534692428420264580752587995678642526435904573794155429031850556624638204096434186679078268069724429929202305820843193001484499889248806347945708374147918286685880768285590630474237464260965513740014248329420616525967271674879598073175130413123440098248130760487173641886775006271165176000421591309190726356322136828834764249010444200286810381742708782480130572152577426256348500669777599792292248336695673764748935750325799003800992510942000598833037201356395737719752865777267669030924260966010939063535199323311609410906358144242048942280415079391926707283048426719322961310996422589059333844847254269642496228221012544446380610162220123048867606722705987037450147110153104380307080034670187165731153216242318664118379891140074221994470723463027638319823256733200419843668387587745885831375881821754898978410834516525372697108118423531896288544978769748523518360850142959449708641356570412688528626757444981367893446166803364712882786439564932370357148701208293739127138671228772421482548861543532330850604106725696894646777199357212020036486505250894465888343456550054856984071438854578487226336213576880724983857175722248091074841053314670686533723012184342820901228471143787487196832178406176631472602755603727560368527510321812407112164054299064798141716422102225957470352847262787342764192554975773776694490479453483065666968625870399745258744357118274003638123631806498735721003031252487149126322591317227227584669291121659590552851051158901160680030554576334564484723260594673058822002319303620828236784553841143217590283120483651157252101549252928705904457374572436302364200871290388178604927151892343939787917432757064147665010910070687924728327829059081939594658310094436642524488156866482081169499021026594475534013186015453567330746177299849850425788076904546415253842782063797806689370791131863528165965495682031130761386166723831870891096586116926279106266351807409505203531747947002795542723884325284939779055195154262244236327166728247740207906671458865745116463875998781957582278619569945381086660392810489676464496551645603504998469767484567668484686127593449652273209912214866095357174559363848605242786009217543663003069328485774994997049829152842748396004172146948816975691178570404295040532293490608630290901077032191167077028030813327990421841022109227309142686387371397960722864165331170587901638453209665373606664601900215104897803463028001361749283379506395565444390982212654699803072302876114444631192948649512362121140889039865089857455315157508509662095145488466638677058474722902237053162391637172629043808818949941629759589404406780805935770861584615255275640014598008724250733506907369858331289234389726429701954214751281371389986054523399422146903176580485761833719403532113859180323511157750394927981128925738008966969709195613441214397776958625338314734212696299103744170172451321064320233815640823166294490203860258934390523136754086912561819680589467630327620190939115912313730057592435517646018370366506984038058315623290229348734738035684554861862741801948092326169986803700084485137216206532770154905856837630796324898860340881095809862461079916444571002796247864795589463196126100841202200149440813533739442681426640017559492444976023790006500592214193373818429767338060597530549173072111444461891223484463134736890122882883464415552560683981880864539419037529264196938855994636191115915400834434257482822825128097746650772011454474652123356118566700478921591373799774572650243951504186656972178478915065781594076809865766045781894954966630093716009585745028390024253919382106981697412230498379261088308878776657565373501613109301128728491826882749729909906823960114439603429626007023566589955631333260361467691611021029029528968656740369411643102688538964329506845538269747973789353200166803613633510107645337340574746764280976714963019646329239323808467987564505682971618732369310591003871721247231654681367568666591435298898522429273881056623373586072290832180391664912467917942501159002756004347050491423897886442085143047550111203098463697693243821641641887458287028019925642470360245668383687598721233572404245723116616257422803395194015230244651819915662278842967944197417371324535402178108120268498279822933334300406401552269612602832939303717761548687096381055322791415880950837280034786527506390114537922009390708010296799163218353431918982390759962443986798247415805558404412199229986145467076491012694509787641447193046073605427573162106629008327623375725975645223438148369726709130780472898501130688303661251096897685820574041606064885373560191497115752746228263171863665352453677468033707230403922428914525546878094285430323355995587335047210622351464983153008785529247567251160974691071968362262389662454529424500383662788255575411573809980441078287214481306181495476241783957951382747781221116782703703593896974747186467153836582683412041254329174740639234575984371128266080320793541271470910179248945916383984098685770183897669343278503959535085123132716583294586750532398705557339220735471132352906350409620376347194845354820401981074395082340797359528096751470023622187808323808433877899734393373106904138842484920232607304547638336254413400437627105412548469662729259894031616269494377681336197802355416513482207636415664495793147799411021222110160150666795949874813209011759868889105541265078718389043623598079738564405934764516306030512541960396553476586728848188950875712841657747892031372890168289391950120158645055384386043911614854660470921466887556025539845770640187654566581226914194707363358304006511358254712347660149061760824988337747654363854439315326396412706499053153307683895393597176892037553002231500859626787808520344752017205591166189483217493003638193205157584639613508813658549358300759362618074509330687413418125025213750388480045890429224464324487198839812839092853078804971776233856633126466311949185530924735177691499735109492111316082080904218359228933991254347719150020452264346323182267950855301034250295544407033870841334921621241512083163672755501651540642373364048893177720211047167383261089355738260202745877260583519022974142437507800944589060692638265528690615642169341884015475587461694257314229107677706532795652109178146838957844023308202184190668102269549044853924688103211504129911257774638567339992507435858815709081262819341767834844341223581964935026533949035817609063738317297237994372730773781240916752077934337855377545866707225158787242397696641973422800381061605976711406855378886248091748522205960939795625196506701061798643848449934335373977302698358333554517002181789824347011883577441596401706537983689936516002042781122534865302378296809164953231641564987837958942199305828964640723408070954769957874332007942986608092536690601634718990253931110230090027181700649025055876207670828002770813339476182544457202338866242208346441515441280860689217316167050848102579674648264029094494312959691502795444116931396224402635323683267320473865453881105746991200031386592030807919044410802633406793395363703530499529982192150500109334904163167418911430623516138307210725015337075838956562950082456737665867859658022689419989270578032440517467696658863771226417023343001925138244915441213615684798906876924361117726740079639992706313664847932119202787940939117067162982932510456782118396951762072691001587504026657419155859785611939712926651776991120943640569739406606753411221345350410424085424254733918798098869276973993082977447295006691289728400115097295018880642247369358259441435674788124560281998973082262854351029942551860371537477905657055848288380119784430515789315985174529466984101014253073721917113284109365254492414375468003202235722382182124008307456146404019719656993318538613945493196270220627973541553912882196363385504842502380178607102925445485352755517936726926530667106497394981136457777050626564592356603000652981763099185158243284860148460102386600541326274211049111332762285049951008055958948441094753016160379811538007718623309798902038213159252505823954631716633206447950321193658371608485223599842316796778775954072132607015778297278292530760866126270669612511912396231613472491115054502947593333893629849776547478081608933792746649707939217371891520126052894327334481300273320333900920200449215998589223784620461457220903433744697161799543896390520355771636327149095389916761521215080476355314843855261180864446384349785287549445510428345547655477469518917071555577751505795764058080420591503606207169545201122974719068724209987029709514960005761789495938582630250156487045478243146950097473818633591207899121728063207333342791510528375124497872231036436402336778698930953142440424835765111737189435934513589454562079205483647806670152714420008172790823034636452282925506110519263282379780288618862418460342107441240316086911506754675453075848136026457366980313398897677108658059532918723958270945395053308298592047973196375228723254100352849838294277151856196146497149613792796756359928594303889459634230978526740139853093100603318171112154040596800227968709634857975138225126240713233768621996901975291797932244293969944752913284491034162300231111124508796878058698600727734428898101704031558021751716564507192293451241197077255323090448495803224321094101854183133109907257144961126222736647232740649705193605122147750655210910268152668319386951820784214773576968879372448500829863409772062359501347140569138551218180083334466486316890123373099956878539933106263498568665474281107968670493567286967475368783130236665619016133492270804554982108302718574791833793358025514359766795280791642080226593257514336245542377773602882837342954677254342578656221792058701097314740811874497225418945714706450677660886586170342160695506713264106666886367387385148162897177000474473706910717824862173066589117519893816952494733971786670763134967583604726594503355479291182150725510389070404620286558334232678043776771249094534973324926078098128390594369535457242852653897345096044424218936681911005013684911804832317018252598756293032541216606979788840789678875187884778929623182083378942572300356429780011302488300029788646861884129570459222076496419485920098901226400389870276896358500587207380914673907035361416591681590147835513870656846738524580999552047353041464672264105789776830679845419818002859237048291397910116455972342332910659000626171776329495407260809033407526839165584753161078292256050505444866098794594416770181555013004906551524689730508226492218778575206330932106986089565751875698453450063126320938893941307694878016358460394005460110587103770830911754661764254003807320590388116640487278391438836844811571450112697883049666253790238332330053097090584665619230258013249900937327441326927277574911918672669440414522829468541020994780091636738584164943101557156844340972977328155799893987284022439015012229000210381489003058930295132131028118285642904185176015459473550037858018435806849728107377180270951139567775625272574125259082179811325861629052392790972058053924384853660052985621481150521057549383385587196203448867093568266335330945124234327404870622739591536968538789923029125610342336342141114951340516429491265365610154491225135626095104559180021231309205178796737489573115439969765659412932359842453969432992794279276867896788776429581708542121735628349931341588273883320999072982339610261180996838724990477676226863718145385012070630470579098921284376190514578644379068258525635228796648732880637936725726420628923153822791081348002058448749013716849884759029370008272340830761237438070807951139504340958901817540501323107200645902151970686035800244819084814063147365620580841220946196694914892785574015882921630886121666774253115686586780387770792398198038064969503415766795053477391019979374104347259240739475741689628091593233048426458581323098967815730549519284965362330975094239464891829389088885221394109791319597924827284905928574353048810847141572019258180550940014113295667470422627020379706881853632853264355426552515294014895133725382734438725765296659472620139509345146611163612285079920803184192076544275923968225285242229007569234083602296447749300316783006597782943397585541577199045991226493728520386345601736348908592647466114461290291459708016598799158090363956460116720812169586704718916207128320902438459584835984674865226172860576292249243048173612008236211570228380734584689724750995943016287337552437080649466705284137409568120048031623373962074396634483121562010398635444427318774070455588277503473640978242290055676949244840485155471278361031247856255372131765312732451106596754814804630132351514597002422207960630020484041166135918487678039895220392193641743059039527886025084712078682898481694142244784264082357093795403643119691090850990338000725880703999858096069385476626976590852467786497942670604472304554758102016888342359843436231377638783785841623167032573255094441797219872371692907358510806094329549194339910408611537386605783367560010545529123181932876110443208121136299213982251066708002793247614443512900124534991236283420863255726069350813249835501134304041159784557147738171294074869677226211591236589736617774308024380158492026033559310275192777347299613157064493600368869156102533119325862632708931898398026507601681822760859799646903131369971929045844882782680792691425064279572912155001888172213212941859375268553231253392910066262181745586869571481985646333423898027125753519732260240551718144683292359635714279552588747624367316119203082214909082963222499310928297405214661029036712255749208329877502523298964641918576642095125702858674732713198497410740261450343127770776457842435070133829140216845760147796136581963027094870051954855603331083540703393293580490401530090060166329301861987689581165010701322068491016442838915784633984948354030791449877896945195599432518364446908677544157164004843995746121594653600737405371349783038683992180186398462094428126776034868741212798287346433600271853764814960545376306258029123466138674020515367066102866938779459240310056238373524164018087370044054459985565571865957096220572083519690140077351999009428797312958975180818900981174004823074082765400032202863713891871789142544275681656479338928840115810460554562440552535437691215716177955340414957320173358223935721263404064143096065549095375937402766243798540967935449333887831802805179907743723146930639134592864055489434341669711788349357699855482894738523049091819784071677344975434632428484859333829736966411713183960683762588157665908089782810316858409384189813669463628958403041644294141519873900605623750369771523314616633291697955732487949311246440001381571231523344735792702085861001648240153011763086388885808320397932219054492661634635086895220017657506600052216240705607208141111775552978797164223237261903591547508696746600609530142059565913708786243426945194807501543229875215519067431943126897896961327692323698147558903496530099785736601559382795847218037018588363988988405851095880408879457442715322332275224999148691847888091479614931283634893054612264844502765469244085614570378240674670685246150157088243590417003361225648945354580706362680983789320360601323816664429773276434165655598132524764322646845287370694960040334661689870238140121010300544929450767077803736966132700658529271589105691662527805945677673897621448580777706617615386763752665794453813262072844374352760426636230642464496352285899884289767133186114835388293528198991807790066030627607999670828433923165265803896597658221758844170809879242510036413908647165810222356981456444278177998907374982085411332020005497132761624624321583352360427289603615619011769133772840087692682442583422770519736571095327014649957341518792641237871408222129650623674977431618548662464632850412561559245789989895898283570571754336167775123065177283692365893844768263836196409545001679365133193997713075109911941154854746306320344467214538364723240821502569141556794732732759927849369696097178843101670573525133873269023261075481134335055271370939737819762572418462103363676364158693362042750926260926627974442226938226907386766016194432727737572479463981047924010619372830835163412834974112280272836329537505842355246271232265023716786832133312141396045818170313451327499768586393431733499081294594650756185727384861544569408278069282112712055725584291177643735980362577450666949921183101830404445211664289146836709390877502808085364525218345186367033546293356708048304313073588652915801405569354429273791962001813338224628667781040575951542067543219569558905374167911145692908858534093910128109924380690213076915895783498245353917819197580968964161616541753956730239520969741073333820134006829368455934686823995452723112384064595009542716897098707254841140974415154269228936845291662129080997420489040195141468172541479943148943936404943806266371015842455844970242902741372793819661222287164072427474954064546408014913587998541370818726743910702404846669347300840732478392206594160879346144522401999237087550923604766293587616224267543514695893039394780101139103269129261665292037369002652245399174958435934672593517802037023720119339591717447998526086884835099541628804892683815557805410717705721375490083624323254702419439311485485236864757771933646272250163376684067012090308933853821881711734260856752078442676667669848541016989561559045311994573893194324970613080304902830257394430385035467383221824299920071468484782472245220997702294607010415536023342009510610243905331176712418080031052213515419770350390214877645289110073119792422266494640825494341869456797652922229537210181870285476652514001790639454959018278100640495630246439222003675971564460275479038101218797122195032870512399375981798225589180684984146029913542878296049606459100909619418066316219980941997740805489205410617685654755202669291517763563312569119362136413470959423791545611204222186609687225617664441072937479622595834761242615932736650608487186926609113216872749304888472933306377977781339147404424281542643418750748345694791093471979262479329581063565117506591876357899470929351331119848347716665807401552519386420292447794602786548770971335370089260487494337384901352721522219498422993105079702446794553286852936638832875010399100043643735224561191117832877381535296076625502903240342100665333249270436360975811533371617546323542783595660627373335654299832060646425670132280794604820359491105502687438182059678541766164481870950640340230137348061559074683972994588996411503718851079398914687007850662101280933244595886287022105542307899944201781535165818449250679096363186677997362549512129417186795985787783428485749616900404001834464038394420183231728434176591799103595760813530933835856413253965988952646480332432265815958174066196467060941643814121162395249273363268175098264748234187463248886824346130929011325055410853092744971259197211520800281740620118472726522006830779816335921534149072845162189266886802476599318197426720189108467687270774944400109921329468208989520316181566815728266367214127204515410254321977030114312461997788854625088429219912722285233652779612348556136601666000798984400189741520223426729215117052562434893342160995601165973835417825823690701026347911215075976657788960078214131321672332211917836697237990039934753929525844026292896844415885275153233456287267125289798350566153011029653989008217881708007051696521706596494511098603621170386314384602240890251354675865963073838534359047356434166116065667855417742946204885046564525619312386117449280713671943205004264209885432313444014375111203998981032725607216223962205557836397858988018079666484936585942011974556778901852592452322635175568058761447234884058930126896739263672842228499635228818216224322860672107061632506993759254145584310606640092266815325473834726422648298597820032443861168455602974880164156800641386544710182290023163958434050409152466485468507040570466587231852628360530747662865665956670296020117974127438675551895003972917844619091974964629254797262423105846237537382813795290064395237911043321361913453476662356533561110901634043159164521862880433535248808406637517561992988990631442944489263247218362389295819271171673624582536303763054176308529148491896197665789971692924677214112406270526885425872478386915349986722061296541292663174651432711954909962011063678053111842857020257390622589787951667149284980216433331037006062835683010904083019236421407244483054988931779672489177792343967544080484223370049490284470857644076132971518880525879528357466375440110422639490622704174193641921283382048341697850122432933404740445964174014266428800520073101360500896939182021897524871836311053501861332569205514462480691659495938181749673504740514584426261346732829093696325758881481680666916238141351534588541078770460218905934268838667776552054585797260619932253535379737968097821632678730140887792088533959454854070004904117901554196304603705592358518961534917788931505149102143011967273246073161183739529276688714122984954604221594695708417358899166184263174887406737525830808181259654266331360294798418124229950495667234705189748855029789901554562681423628925560702709566811844292869028466778677684878169986420495722769225000558501248457504457872508865720015342717646572165960087608170888485599743651659637790832122423993842449078592957542485017438543326382299709614506922690809098601601953346939108023176018420535188965896119423082684835917995698397746444298653676683584310916997789269377656122666555506697052252768854527411964747750659974690856376638863259942819437392561260966837628815877199486809077817731141477043061082971622026617200367640597249143344518490685641439159793193410257628850755632226408411491846964160660386483838179253731763262219365311382097010144168229583533891847335600553810677492588570235562490045412296905207952664575002307881429741199885978452271459739177053474761258122139714245466653015334017976278826012067315544012989133501975288791723167102050569838915570416351442189471895901842356677803948385561383031163112843546947870587453021663750554098702137055356919993454165156057640947883329621663755109380338495536169755846359525411835031252320309003761956508387787679264349917902504220038315457413058857299749106073568952634384282220793061438261027677893575623222855391120049643869276768176167794760630793537552174438498581096635290865098478408444226735306556611148807002529424564149831141941200550136510855101557434316358745714435451788374266597745056757431732717522550064766615167848122007142293003890495627292788657968999272827154962323585066103425276949357295088086829494928472079193484859872435007691886137775530962676696358464080401328884734730547043006446622686389319383658047926144155927466708355794623692504803047129622633025253199485728584228707733006781053280926675748716312720418902418502748739894259121670351407836803565426661136917056089663709880116210208819296353273918867913802150782797962769945558783683937630934499714080107650584147858794967949050974498862105495383681287287241677595485861975635764145030452335217009806271620433814218388497614901322755523953943501921323185069500932885961334443609580546963210422810739384515623578007260995036110660789876136030977482273631828148685062074785352341484273359392935091993222065295558821010447878204786701098787435753093710879023697957022385308377187081886527271788658533551434515754827895359279579622750497132759314637697840066808274053040951464805932254303058095382922265352710855354141970836604993902261327262622825831569964376027745024001592087425903651693095249049256843495871775184915094308767315838345927553479820973028258258274845453205961704226199490784164623809003338300125799343464523838316893218998733851565307031735498654490142583347064990451180682563139983010032673373535669485876594373132697984012913928146119866266859047669571588134311205729109319034659435055496051626212559246593786697698567606631927384697931138450434305636230187971502456293273002865588471471924922292016137015599462469110826031748550204022912434144900701286198202786082331105568481773472101197093322813041275657509010068345305083070440797119587482348442294807184800277379884588473882452721949433121982180143969417044538668244091451038429957536978341102927571016239877486310735721976923303315755811535400987737578074309199387621754098037418895003233087563237212963375665487982423604602013456925369712323426949471554240708370406500505355658705063201392190926678931151625016153272411136725096520386154650537832995852600585564641177605341555892747820862001407782191862539618958389180892313392957117413429333940157955109581457170208532461368733729789833571245302329367963331936217652636590972869550716859455269337035375366390045173551142424429215450325292696583039529237825878487707276258699060216453865427851453765220698828891595917823128278341421957687428265062961215264339997560841875059693270900314641658457917812376784017102438420399328512259343372826534008355907604359514407929104125314570353306733505602342240751405093159559833200673613072522068801975570275130517687349044596050017290857353751546727633277339698624005455057851909448771031779084729057113603850258769451400978094897703927443027382894581807169845208587786315202409328760248328271665253913649735873844771340396753391121661987228370512094824372238997275418850474185981225424942214305111832713938015120717769498850757388390247208809456053093958488161512236238776388467544712167935300977357885694277539116571105649232903632392094834160589462287345017384620722767462195545828703232595731988106127326413745688958781282447879473396138666140827710683313462888128314923544311902683529305775126766528268389257969880748812084298066875943252643023814292613636689976058974475052256475371513179487560289899638564154683088544227475614493069345259684373728600206292856798105589373441959308412792279570531826611220195734229770394504670619616867329377768388810229975987643563887450130371361770649702432133965882705053383570088027179050401535687322779164257148980893142280846607545342218089746814469058912183367624610406621612485568310375461560388809367567448076933002346240565856437733855240916706930905657735029417579928845638498535953643354410093870515296076744825152596522268382397083126334804619971370096171820915933978091151226133922673226289052947816474717933146124221363391985418144207864578888280892418309174042656732525696107207059952623272834750256565765566675031100208626644225870972720017017912711996528864254079579052669991503385151554008674424400208521955533870659595823198197657470856923774093071087377259491330464589584191206671494804313624073071392737832808051302809768190371133889549418270004449687153698002714769634717307935441198583099088760796727487407309800812774848175598775326552834063411971596025001470678763741086573400508197163382274425714020726082953463628298604230537488918581679808129245981309463229618370078582500334237209403378943878126490755086636881153321512221250334407424103074247691451968284185663448180451915821790540336953117056317636577022094507074715927167344994202474404722873715921566556619558666467257685069480028885553425296111402545251137974728666617624736386758162322513748373064503109216683590308077536091109946309154809202029590527887148789700628865733282755112969625825825450871578136911589642505170278350447650535112094478334411563482250122593546515960956381916105230846597263442521571037795283785978294923864392654577000500765636435316246570005757861806505300007493755220204489859960445916613684287986874154041245609698435747644240255519198450117311899900489660581443333728390051567062979378738654769053225631846659733192331346073146308050812612540496662656843917835954935862404654265287204015650842369861440571931106320285640692664086068476763726046612997182673842164498548674547382426035257159224241316984704513201484938091072554638450410759969023453611848065994922597357850383177459099247176807701745806728684086758006490682917119220260623435100600232259915272292668218260590367647776479484701009641486206642778703722163052217528902122890604931297209714491993358714554081596508748513712137197524914628537514619053716510312275680772828566749463725272353161790428138819884768922678261845566745953739418475243674023530520887481582988453215507138536149089084293370580249419707694125132687310946437000414083767024841292649502816225697169569156151564013893766886124762292326297241107584812785922568875465719580406317802576421707240210430679104304720026215670826804848627686836593501928753698570047877497903131803529006810155713007429841392282316746895750073727864107043863924342079151499738888620119168617881633875912215695547094807620109433469117441026564800819151715040494486584632373560308762877818028668423795168614614486367841295177923163682814262444350057582212250464471242964077258255443089853898950012599507813446347950382988329337245938721165210876711818919041696223244055452005256124935369591364096556825115819291455046906831338806078449560520743996488169698453948239643092832423401272477969544301004472278447178107727632328550703628757668583369804154403473873736115230015341431662512630979148597551028326976344741854624197684982404637529873300228120829992184340280616841553226816177496633961683845346647408010564702659866406186917359990419729085587514493980875320284397942110333280256311030449394232778899446798692979722462929764318821471270053641695958752837895397356157004987646462535170300687053089465250072936793393302252934961368134681203360049292397644715194308286595304117893161255790886155927016302831256538036239846449280308712817313898172575155981566532246290545522575084328649107240984956251572864379496237802137650446680846797311220680466815875089135377718452652975064920370916081374090581344021960963322764143417098795353778597333412263463945020898793607650321793613935554206532673305729387249388539178564116859005352294810923147252535133008749226348911748258042700485475667969578759263230041823188169936009420261167646051545398849358960052236399152690359452640074243396370836637694917463193454524387638897443552772982654919414990558480103027978664831099809480817552184981172011396538833612912772363041139939811928357484523411338053844132634756901012350095890143094938077904209938041878026691064403920975841576852304223881716850044474113438560490886396163266952567924262041939862637002299513139285610780504432743858187831311875276732131852785588622311291517548042769466169472030808540190115420659603919948882636390447377499084003352166166791089915712678471272616911885747089738476325602688615511126511952382357395266326786286867415680753866890074703570336209614057074897025378997426524300732121569930691260558564176921213905908399174503099363102840385668163337422699137037756661891122180779302326444091778189299942775123583228992364408588365823574845214299119158243884315688086123569671657167570670634098639209677392828297089073348759237915272127359799580084692129221065612117254517989077924075570661388443845687283414255042626742998317314333760753215264304246629616882018087406929910587821065416887608484970800847736478463507984191418571322776965767912530630127165557547351360099678002096589080276392564350982889256916647516687384851740281314309357372754897487946363836264395557011796143366406465038634575071734415516867430605615463778367070617657960802162387461569948731147393970265840716249345580850412476244526489226879669011926659046724869202261710017592169277487290835627911943860845218208887727957621490229161064457702351591896182275770434006592490733351356876950841183753132430606095707887678143091982156323849312464994142957524015279786635292536037839626628183961194958039769820574641864021912044835758733287379300969727565118483091467531272004749180141499529592548026401247691743600236538651202432160792152539656442373499031787221992462893222723695239669316200003689397371939579909632168264513365049277437549606966476937680443330265915595354161148506858687012929586288630461460880379820924196807362063266114275936363859891555656280767818422588000461355200346059793614360819920325835505052541147692350952274682598196854330437955655170699959610185263482493963175855208160949567015535534052161325971400246829613069617808692663834036182282588022247769078491298256816410638907950234449667974137583628384848384665707683940663304441334655629427254268591450268985830922895455333384511958694557362388954455482993061604138175961729541077245596698059880828432256267016709756497350486226230631992648051884923870798615782005407037070870984202247783507678322068165745107212395085894898667456678041069037755720120763066440872415949719985902500036889948457927656600364898402098537647122639495081524220272707874718627325817483381867696584043845499746461131356752979372127542659157950025608029257125589133750588426344193428618968240321705882675014908665222825367100029007925052552766719068275965446760094962192361929350927071737382111956967647121183214496299033069468479466326507046396349887621884313820344918385727293372802309986870614372429109111021312332356484647972235693258554837486431356006692131888890175506936461497082236093830287725672140580537796755401923464417921620602751662419998339125566310487750078022176066503953090825984915886184322680116813735647959768773819175105327435510755103473580815133528339194101437866861464522982112658902471663236940051853215079764593327536797674850734148296625758094746190011742946061253265571175561572324215638202293564215736098406384197039348667144975241156376061903853798898436156994831640727882189087884871452317762154012620476266583666188275770609741920387515116282265029155618232661226026116809430022694590269437841119833486002797593782398379369228911692694106508665828512232060494470373849755068850182222116329174584002130886040883226618352886252550985563440838812899921611317164780118955610253321936161196892571905718136849247596754440157596916141637605580275350858861163455496658272974175321625078166297278970045057977156751274100461061483291832354945972584816097385088948321075747708860191306440711422848381649660673458491777946891514689091338433109966331819151309756203210663078888620373546756447643028603392050315677007657596210488460039445230750880755372084563083575265115087702442216086034744674565939435966616762191629194695672746875576814619651933197004735926262369528679426975009895116575496339328677638187163371957858271806490906485114370177185593517863277667312356929037406338991909552108083200846102971865315201603643577736398390954074222823643300271676718489743601173364243489864313758832643872401031365282934335082974321434046121440664080119113678826651966856408854146602132420371889508329964741053056703234721519282428983271120516818462831280577197588830062815411175266594844629121395143981112023737597224235544639434409856372406799791563201838078730064652062511363528230643482039266601395394066578669585980722702278188953210103991055331676545840462377400248479184428625604919973913974684678337468456447158868457352643427651814915134924176408796595901424276785490925982731576207731045481272775590604786141734387337448099927350308649679727921490086064275774932241072536954815648587118713906380557317307890950836103127319173771952483155155375890143506762947320552462207779938940730804847725599405000893110718118503908678260519819463005165275039620793005188983808636656718927403881742841176658608995926796034300875269571385476860873023410254997742293767576200628837464837954248659974257248073471594476924461634789114297849061330407301269619344370290115238184497372249190688182326393300117222494895904343097810100870862968428400569339879055887444042026244239344830544731051856081458421466626899889030263775577160088971206417673238492299066215125368551561246446638843657992986946595532149448220999840694483487782026714925172346371227522984106557505160195709412163187479471453998980170778778736292928660979360398545164481434527314381052813827501306138821058334118566716696381964292152934305310195758324091118966110536333362934506647483189885343016221204593616471191614383127955681696475516812605000527841237122888575939432433782859408506582743691391717165500735398799168058860036403643949934538131158848491743353787040397799772380426671343004881560605500227383379372575363055754378435984306030321812198215046477805934239383064692101392664662820615985814719862442468075819767797171046563021251456202305923472553270270844998347049254591350405145701009550773100411429103065445085792639217769000759310150808756199498095859638056624106534116002910349279776432316471282523552286191254485215023339225328778684888368944614938249182268910665271732422069779019505516781373970715628362125431475064974212115579478136860445359524517793046897372641858711715394655748037560014814345236230160981381074232109230716788955156755931663374022971120177839303070693954263587567268070029831697728888739147766472404665780730277887523118690826172041282789720119740266988272863736119178993618577958150315414902032172562663314286572257479819690011241208333849327926740853982177956362655611397737129866108903819669383612750699383204423994495204282593706167793037153434857192161199068861615659917893959658642028372690140049881624595853863956501679754284603796992383209222930408480852519798118331572576756790514235711712177239012014585873446732947113713158512030433791705096855080618179222006170757710864617137490740895604346768623608895668045748499998037599905315181673681590573123527680222847013087045922198666049606842094434313612297189531055438241063786330348007238954745793141328610270038796265042590596319061606413044890068599352002768422011427707326332713217295220852245648612252485858914734452835902986696651209656416473537180403197741278446510907779676828848164532712479917236373506082769380262091700518277561103170399274392913609884555050186813589206703167293698694652014166626582056779642329965671238452426183657090808571293041412004971504357857893954747139682927529919915809873136495946416173269220772288275277700932759233070852696142351341614628948347057257117850487880708295198653344454504393758755859411714244645166518350451581338631842969007375544677749903353469820372866820647407333116998490950964486201871330398003667092647684012522072361777681430345983455525516063942630300949086264563716765441712504018708504087375158127497527926245411409082292917078054970224683085794641178088263234051422240678193751646900494538472486586173283809887053349785303824803171974690592256494097758636936887939360987920902431716635386877286109289921772453745729526723288057911510718862355831964032502594841117001890286481632450415067529010964176279978429505206065945214703746719715495825392365750979397375438165955736537164032027310339619657857509407601553669201850111234767904342720190508672389667416926758394350693440502316742470498109055363837027014707203925217652176505780332613381032874363866408302030829461486910825714014762003038124116153166679057469367679405527250893429356116969192895037968252035644531023381672954732459433362960053581771082961720754477012703344784867507509629185487401579707296597882903354100995737015739545653661442695645851744003112387721178581127334334733752306719615621159607292708325031771788275680285705052843967652438859533769691191323914681947225507161088745361015131005535022374852393260752223925720154731846310546091836342327250329850013385735108903901833887194464958530627950783370376892437048244005325084108489726305647632298290871831396680287511169207415969152249396770988951142949543886474268130612761409742149415731751384347858143700173712307809265041024404180262600326650215974855173788061465508193260932933769978831162857923947012716616779623456959429600403227817479489985402292273808064194781508147388254516669746629918802687494760744478165247099764632431943028280295624396972227382627935584303678514680690921622528851001450260672830873204953249473606854034377781516443366528186394698834957933201583008649129265708202880196731480940228319760537445813862138169885017299510288734439771883904838238788683842282660151888154046593239243602719337273654081069049069738081652665227772020841871070515219540010295501220795365700540473465414141438275917278973876324362001660419943094390391794212235967215018527196327794146520357200683315396435776756257305926318225415759804228898560494177600150326707507400756040647361272397237282781086555115016931949185225139234857383547426452667926898855094648285871598774240477313699125471307012335310727400628587779588584197055239122597904325029932155121798312049803723801412855702308671792619242959034320557299451295929364094766187834479729908759569832429414935149623030700763542454186178087554507432307816754851703963435178155043674640238807206603154443562279703334208741312905309836170254431710964493015524832123236665885718623728382583393280687922260012788399145424774580929343891608719962962327893330582704386154614510437680402501191273701590864629997554357318825601058177673530798903391934816901078197662004332606219063536332112367727517932855126299837242676617822485894458865223980820666384262999135000485820121989155667883120423999477266346211928043406886755740352968339455377721155638660782122408956096444454060096895453755600847572764138746282030679141987602372933583227487194447562729443892567548093144202194975749215146233341871113893314167417074251181718974998596645269616879031173005158938255086647971288361880473627584977751831234707013310462158611207439301962628377367810807296191405256052850396163439593918528307429535078428585745597014437266733490875014010717370318760411768363014398120562532032509706368819645862862690575938999640563267693001873024941732044631510335020653607550403312723917402096233621924725594247338771967851134366300575224641905174049759911018376026979123638509831165755881875900437358577985349175008899375382391439197389521648199870280532641092561552037677645937233050185038441064306105764816609954713792420577621384892637229706964862839543526871134594098621071525801273365591990905964053091137864809139217505182251896092319940608797937887634847859211645230149777879229773277093607033035654123349523148344704488047484000774655151840544053345811176654843103838691377212633507876953114654369422007124858866964274249435256558937386603807459907464620884912025930026742576346176997149468529672024293539440650258416165270057993473747945334170238358830315444381120216793672852078262419337781218894909389019713123014020924942907387943601578424990729931514715548089536614578166554354581357526389195422148759170336678547929657893507476878788247073173656083636974716390176810288927739309728647523027626201560508270575343426151892220898729923594059060071116900231219039143748999966945265080583287598712674563560367468331179113574642783234020792829652043010565525049734087777020039925743889046052762265953466360745189858553290214694176671942146245264793296192759217150872537684712354986524217882445510592741459787876927749998844282468482280679724405639350531736351377673051915625866016050710766001924314912200526655114660842575364565362562716293691479993955187127402305323561888152329312814302478615743787450604600939443360621984778663505374595107278454437929955444989099530253354665246206487115558419094172626829390626981928481320784060482447753455009654914677407172702526876593546622373845025777284704568294382740911985831969375302501140352596654809555098280479671356627881973187286383393994941566600618820418103748008349085721912196204370526159723758872560786454141941282404125256495746302040260699451266933127902889305190901754613706393523473816004024819737996580253668737809462940892511969441568988557064345856788911194945409446265815691071087329889691896016554473274074898089026993553777389409313840548409965407498069184531198822919525410543811423870979890667693966210970335614369344115932809204764230255376764377258453929735226843595746306986888446993461264385920215832649537731617514927333624502642744135748121436303980097735091582419484064867122327514914001516267889133204174413232348210963627494140824301999210502068072699698344005415216956684530800878280007371566422990916550926011652106974902319178372369257783836417972962517344166639661987038441046264929445924837038325465175170525272557459858999154121535679291758479625148751507816181444731488263499667892673685758029956552716573985988957195187226319930762076205761629648556038997376798562827512991469425924189076683963392337141336230559118487664231700328647843721567367436907202767180757009089536555857127769353055933471704626615001441777043918067043910744728132472685689214064342311397796917729638548149041697505282173798577153837306780765547084477840152649126505227589859311859195664811851126430007694746604940747686603584042195431863773490934406865437899657103910770033450630150705402911583153212848697542841964208088193320533963652663428274388524947003291042966667628966078962396362679352127539480748854768038625111540231496333901325317725203830060153199541996880098682054128619613411281611939630625781009377597798914335414745264917702985166866454971861536570487320721406717123683157074067812582505137379427341675387452904879018389684682116928564281468708011184120213547650080645092170885600412208800577999622508569924574879520315397819907941702121635898326562965094397063781072348425904298579432033637709815411942507675148941815478072198282520139112183065281367734081577603260254216204853542529289050575645608923413955234287252545903807838483331821704103851199351933686183308461491057934132458052626326120892599643776328359990945500016231233437753690546284822276043944042239903742647793326070801615866193321967310499731987509530815154013011781970114575256235654432312709072348687902547941042305971526212819345931494444642924452972331829802844915823378511403746533197309125380414909177355714292980782355476110510807293156872307223013291970774909992370474573785603049995705809227957004758051627929824197635581554496927787379363195236051685525983822013350753655214287339194094001314236044613000246646465540388349579947897510676964461921282830866953620679813409558435400085120920144831156279700889041499263592132537862578735281746340391248249337881827339053565883046056935707480946365995371507422928991054304249458153711842629521396467435380493147817683043591457051792370846963958253940907647890431698088820465261909087749663597292811958015478084362497009916110041458822813844111729340602268344532257183204397382688575015030925500930787848664325164371135901002520490900325252957945065618484063675176720521474616215389056753254005051189573003010130158228937128984659976074764566119359531434907342845661036016411752322308892743322760399319458291771975108883137343357746403604743318466778150832852443419077181977460659407914931899854457073983669878527350068139268594604897036717400789778234116454766270787676579902809171043208543887263126150627936488220419225249472439933083529279985409536949561858932509402717313694936196399927355841664481092349162454831784932004089935530020590234408097143888045114239779579198894053569741321354957691489526107390736116470700211665236227558612719719234182400928932814546793142359498009997951978374010478714878362841902060338829439636138265204383159346601449588157619762154647783745658140339711588533252924573578433474920642504384383588221824743886946540033842148225127400862528073911542806303346285108321560853296018579067474589004224805358011763826219446110525450403725890507840001235784707591565059152788338137116479679012152129055839245806759601379766832484048219819458991026811745936835245743662926724449762263553665097752253104619153251792995068547430137105556068809023533562887733840683294109779223678196248792731245242795337827271027169273085445647061825224584292865271957935309733383713039520459418725763097937181623901842577536431548610135618055015459181365168344577570312251692932781230889865113937819187435785874848929475938844745244314432032287738910478044210669672025908607240493458330715444400916469219429184256431335891917840956698004655559468028840742455999079861933225064295857615453337422455056216703563729957214218942515493170922184282319344583245458892421473189286170455300605490560085989205028436391931773675834038526629619519432910457465294480709531133192104538189595619828198576554543890117393644504754938656506312979528804346947333020814430847326447397943190859634203941833038196607340701255741267252560532989931803181724179540616195835949311983952114849056810832169100009849325213303551502294399947593566991701390636452839394125316346623604054466638169617211949717861194157907013475726489453485537149977922510314107627790806184629490750636478945437854411552434458466609503990056375130173085644373414727174313253591383984022221038362413852922274405266626233007973209668567153076598914756497120072577061661027239742832891405702354685065893559393476028077252165941586388553125427311250669598822405441905498103575844833139157857101109523594450503555947821148971233606809521557869777106351174772934550490358062972649699440362473962442091393210023860661156627901065025483371339879028942533566642759606334264582349799126109670525533661562330694983831425764745302231365249194727684175654591604317431516794745819437574148360966979696138651939135655257679907212178397213832036809961357834611742631124737784496605700106756905982029103746155111152931453636367941072626957776176739233813313075182808302127976264277639132397901181398810662688858218735403931609572723984129457291860753823033044433082386789201800827899089270080847295506529635479898280638201315766804471735584209418119056151128241825966270413956858150877733348712577583996810189392509009742927473990925916920483369287369938883486139120242182170298383084128124042916280207117338089680893359994349914230680365694390456113092437649334168190630562421772410563970060670382779988017001295296107462113242315781166730996076656157113961628295760523551149609943531403228095012274498420613562029554347567145048953414686752277006162377916327909154117180045850389640425735332050888922122832202113638189503247164569480883621268342544181697095694522960020901285621877586502511991755771310556979376350008784616265800514510034314172848265794307386378256494317467626336620555107536480062420642864530486990632718779294999237122205596127533916776193166088655467367261464660196301827546520705290326099374177333835778737707401019530651503844104472148202680646325630600494097136990541636135175545150665659696485026744719245106351086340184821773735345739082332541630060184014496960290354846347826579401407982063302842215201897019853085919286504990260732730415939362022585285223880162501253183045485368371505866578437859433934669240622493592869955321715575128333834067891019585287187231989658161600111883775000522618449016270765385570632541446250971871509353185761056042525977778296612229350485971327228284477728499116024374154982259704209278688615860054412408921482568767696873935536617853903456106733470118433313684657049209767129088852845399631223282699206304482528216587448820300611645291898614067644242449809693483355097088805909987809670166848192200730013209096603189393818731573834796166549916576930480029238714630450701923430724852383783139436256645622402643284620698847614405509139392073635588929964282971068912042483575501097402995376282378226243750954094104351361326374568279385481680868495115563767530187620534661389566746610091065213493603224665289109578312268915105250454121852498333228846638371862549706389989839750895257492358593645746882909725209526061286006210886091356551160704185035844633646813723097702208683057383052084831882650059148407634407809490304427123267000747309426771854210879253381967869210811225271086090665579865125434205878667829778662212841285965427285198059560861098534670360293303444872552129748586000620177096798201022708980024342504315977553750897898824362597457012888730175695892475115483423059687005011959130329550508888444815332694011172206073553662483519586440846876961570441239074476658185803664824410038858150683161624467814176816088903693805824792290848682343934545179420280333744149964581514845594473002376828217228969746631788377501514033609102526565452778542102735831193693722070893331560008810581567041765049654844443746725628495181856969117337003630521919670765113853680831289033641698083641382168603297819206807294471417617139870479625871111332688022766971418386685342010161654592110000711324538786751246466996341625671456526402973106723882012191865252055742884023071609746130757818372343750892779297558660144184382594129211210712427256497212384597789522139039935802935468406089359856715492982794020376236044146643667933006230554847382542957643645913423455130405524555136713939914589840566154904879237368184464382461013268430798709842063336945946121880365884111477140470791149201618791455981525399393728299709252037368312155922069401632754920285436117090168882353772169937021677816741539572593624852893255328794825018951009085135772407299440623394748014296772372478021167111155860765555213871829336841248276382925261446827989300622717009658666844733645223038376510590167018838009172048814433888467796105290986945243041554962136847690995516161040686973989420490301794475113230746186946356092640580763111892166172539992629968921983778166795657516945423843179050733927852991259458400109485831341148251131847869231506669981900277763866545566422825953029871160802823435642633345267208526505505978315465328682564298838667625870989601487649762951569390972711060482666860149947692100690992039471399161195455843277305017615045840758931088253332904481402348033180902061546495951309422757245186535289172756360937719484726365220583768809047028429363223850897914845017616742625103397081882266875018488422540397654381094389127900206390622864193152673519405346755695167965999844044741138507797022949180454607007375375979961886087230981496201875896557091466648392780839498907539360621959736003694113775990499845020984646981679574797868884581316096646920642658359261534452687099928218139989903994857464347667048851853543514845510566261961293571944061606687146708880201546075764086300653790004892675760645479607502993182958688699635967370535564042083143818803922904869036876009363213922575499189201125144782910720440532201684915880626536401563467459733379695365056811319407353150459819747572709380291243052083108108667832727799970290123005271966375184830359953061759214274938898250193179309269898623184777783012012380717627323991386588025043837247582508292217323411475521031062273799858874672629432956751227446353775228926893551982958183898580047961653192891366388543507557128793158122701975377130090268923239512427952230095974108372896173931444148564463388347245855742318700545248444178344938001814050245893447587088612446645525983294147705651886962685192371112475415857118175287352014523551511416536691690671213075414002228462219888437024204216286875704817461553615535557203664275114959873697899399881395983428805117204976177389769095469752603664394940954234080669282696225746487574835441220651711528842022017644143261716541430105392439190185569230742897937853162589363125420598037536644677700912151436581043126370045819389127031226679931411919587559149700662117807310557918741615825524549777984552019120958563745448267064549556724117139270822167142923279813252164421974280583582532923643926136657307132420089684205020101095693474680866488564429534327659524091465238104611515349574431604733567759005345409525153818127022913359447954996676240495096297246671390357711441118475918803934981343747091860398060966744030407126939801607996624186187953859501000418738298236620834577699641818919404678138379012520846307605416802791952069089868245821010396920781192037671438065561883741271879012504310659171203506275739409603076691784075599391752039002670443175386267732508863867396545767124321280087642906335445253008401312212785244896313098124085977301644541364200070275427679621905167791039097397344993404822497832308812687837629900543328454737101493017469899531397535967295051908836792931845125316524067113504246142790394373357922668810154763780240833400807723250109801461223291083120329139940107916563360704596915152126085887460770833476419764911008010130834078724853412697582786339588626223998790978199994083655298332694533652227182329237016389260151244372980202473372943685094039491506995174569428403289950637594352478965054711687472892347163667194273170493183531954341978245452031870107735006923876865352739120310666626722996351432203989249674697446920671504929885573412291020535966989736369540041353071387357397602740609862132896648214695203638020527239317155696961982656526640060351321562028153063722534361353248716229289951012653032861015611403700148009539980962363269724214876024064932598256982519684157974038043931049384132349084202319166974945549129122297053041565365244630864823404958147460689953150876853942669335093902391128695514514538052058496461991707822970463171563067959428752562070139433513236374622745032010308879919445181170933904286537220924383970480049453977935449365737855621630023905510273360041789260940231268842683253203829415969531208324460411852924966406699365887529543679353219156250522509495439591645976648015020499430690117005387517793659566647249683607815578921714424661091836604542151633888499818386680920003309330175116471164637569279256848421841136329769408509896946024865285444860020635364814433882546273090244527452199793148996276257395817825335760942684825363055125726628459971974896588230452056282218841932743951024645346870177335418256921097101792953841991280796796981707692752143033968505723686586263065975534136197720319971945805242511047515276943442076334730800061001017114062655671870404221993407398601596693197662678147755932116107083683484610205121980514059620184629574585007391989967205174625879730566127224624522834996992086267708309326065407629201535465168297181121782193455155826186019092300655418046991128351007220272111721739132707307751013771045863284413945198474178873125114186481969077410243754550180215652275598196721428481261460644885965384317376128300217801501036969917002327730085815890910454426129333529097634300773837321776116860138552677726866700951190897821738893483865227159916059944031451406961764964801857605430434215897198268205343495724602907903296292647836692349785111687509361745402110852982119223682177164455742170455492970146178711367804587943526907095438547553679922344161420945593127852223535766464037813018721962984753794513642712470032053420033098241782263088174570483832018081129625492183532683409084544854627335801885784369913749302176934682093201954454678166427757748522710789304945270450321063924317248607763868988939216064796141564318374762276124252552797085981295000209681072141188898514648221082712101526019235904425672863182745566835499062230747874610891997708599546910940505584011542330122912264828335320114511402903047600583235158443070773690467527242568172236613503863004126526478302481034883462942314562672846696251695849514982872028071664502024482250392158922431489351629837863711070833325278706784048448544492547366061398832832912244059333576216455325288338229020693427442017050536839313418375696795209510962115034540749610029188045098032378623681215530999915008226236795245017937981063098201439018897832890906586001116650383642401495839250437925672222190039344640022072603253697804232504336571413104673168684852064346907048597466202747973573565468978611912659886619534444048883780677537332147718325578239005560009647894577539601991307091353934794599596497983830322277493971636530534373836901520095340206324059280781614391898495407478911704116280129999728188954228049799154612519718307108500174979939630708777279400597694070226758665351218286811116039389896714377338535955653463580832807825073334784358647418344607520886165617202842956282704130972729486987096854463363540681884335028726530520614343541992241372179876287666881151641672939244006756797728314769931613891860080155104014255025879091216361094917563839343595200221471055618664996435164821589069801641464971622125194021123489358466817837922354030511212402890808462818220243633453591416499744363422043211195667937299186244404514204890226841614986803442958346631085006270292239112877495909402889335625079439265138545476132248413288744010749654841168903807770996015730725016285654954801928071929249231167787779946585326004407148502681705198236383893480282179915309349011781987931721906835990892284733427328329584926367242555960247970954231431572722035355129334665293031764353943003444305572239883306889972475133321276993449933852220297139396646183817732738602823374800788646362304511641726649640017877895759269532840739269846124794293417750335755416120951419240647521254289179942167724710017358899437836622487138595606075849572530240237572554171706428544564132099522760849997435004904936257436445930662527384147669919105074622716395128721834514766222225472574472094240203609484513987885297997449456915345287405886731004309349835187683967085223510289778988286436069515295915973693065731427028430773761689157217283186935882984018327111441241025169543312476037287338670428235791001473504142089916979608830857783094619423060169309034138805667580780928847551703295492584410710274178609710297472249157832743025849087866559444608785321436923119390405861504370063427959804192746371900146693700615977981007997974718746477566811760868580354767694300240127335701925782680292507403574095864154882925483983831719611594022231827992193871847514047135007772859420975088612850133665259963246111265153274021599480157887978072135272466884855604395411440510843080118556809618673394369025609227239319453186384187148883717095614299451719742397622193266119358416110097169009781428471237327606701548959839747711971241481524601296749032227621447863227791621397590440977117907928075495999894453609841196154057782147422062542598632468956526122420740787456513033946804980585269197469657943440556336722908198179517141797592621274791364214795742655671971343525780102365427140591945362691109359322366414731658513742856495260099863143892859545742529751496081511963982038584479562329288623094992545468568191847696437675632882993657330989997461666301542614778159809743617268247531110101138583193988511542846100535317794184502595699714591844840127513777674561201521416119936097502297647490101565856788458600125691494397309035153831267787761250478080170493759118013057112512088608674787663195617308801698786013394408659423683236201433338676239663261737343286297403394570298404462827166158103849716448496545638897304134713211723177460953660289252018977482133690274123243793929951818593578883150021610243093711615928979109681193324574225661266544208373709447675805387348780750805374850059552023459110317717054112604875170460824472035572540134804666647585037420635489568007043359969466853970303988466617826406236638872388838228583139306819486150462110562296829272819595634908288105660872568239368713877756906763437003248100987622967494978841407900878394640986910212229727609641828683823837861338433586892226279645884298728294418818185072741719471154994929597206407655208352597577313707279163285427516826627992079286867973941691421099987721447463745930168391151021705535357856251849581590159728454962337625227857997298742532119786010700682552951698192207411391842682398835508247392444491397626035142332026635822445610704773360555659051460545546116248436626332952067421036542956185996954498960974416329415577476187830044908247614998309409833034894120639705385466544151126764494464438090980296198775425563359005477136521799633146243745006054312620951685214507925093578601838628776792908897114392624037552516460156549067631704003392043806999874760945900867745050649156928630847091762380785708755335748929465325616853456478675953261211962031778954471904728836756025305939617575699036736401326806363438750058129519391655577610039407690875204948621053127885653078073367302173554543279756102182592768024849525043242093179464158492045313556193502768135490998545508284922907267105148372109748600969710305792711988673677398605019736011817502068059578530006161756382969791346331130437139851639637975709233640893855643972680616296254140797558345128767906473434996912886440171686743258560682878332494886407346977388310632830690496037779516948936122702980726566616196716627240369158765762518272120680214277356975573177145048318907651120854654685331802710725055281870344679003963071890021254816486266481005873088026598096964981153419280992876858194365026770964526788446907664630599854118050735691040875530218997002269976559896518622662792181210468319199757524754523080177465617122659229971241325782899983007594704779147237481790031426305333622710600001128079229782501075616933108641723428866703980361123086463684923686984837138308710169142754614704871345401960487474121664112084503542693670466810556600872950382204458996030374447201932478729015897079007811576274152208195071241299473782668025175112216063966397687197482240556733956315998821411937130239330695722597922258195950670802255228974258902899979966115488071661976923564743541466470874184093625945579119265441131582567335882150694587712720341299889183079226434957061473454453802523846681023356214958659898663188415682067015221404921142023611151132757892771437333175848169181290450706698634753765386628782918667884293334011644365721626069893885989852129907473857174448464104948586219174753907169506576530097255967207316364767355629146765733908427237987885343253860849488507955990745539825590395338661628746444605818389545527772250648370996928944249517673556386520926013741362129634114517957707455594865732295553321996083206075178908637220593154854901305481434204767126669236442947746725636657757155140232734780496445214220044605146910083722267938620301163096159521679719733840207559487942431180695212234690235533128439329073263735272454819353793781859684960915088654684881036236128045546769211203640779424026199163585967960721892601439747734742243834514658755438934257346722202078996524823552935265551215822875895363822904793321050581323743113968378171573847734242431728613453308970215150203373968073964275231862720763803231583466170474850981018481599307851940521438573109503805738318921746899771173581434718306127428518630754144615333222179164700418537969029821643144269975995124590411632171331634854901070372729740796401626225064580750813701347542827667879896751736357425098464669685883384505582715052515931545130339824296258345387608078019315476429313868433966846776046462139471254559908505437166379714130335928255206887107126229808215686678493019801421645526154046915843121669734214264197005149467838463035712214475535271035347363923479712053002765820369909546882049671816644579097531002783700555211859747259387420309016635283947984331735743278597254682447256742605146634683610461717377006472765456440425898943561316893494013774560971303252635908232580137663390368350251597611517069634511305694598837638448290188802930818641283619771915050781433580608415043644555950275981240985090667476832962294783340357403079581274071639293155508288121765072224268929495708717700208338795546990022219314749466021332072789199793834230738453965992840151882126816042482106198316418891260740196051522222000030260866283742585911486368872155522307124723023974738377857476414526345452682854989212371753318198661875719801982981740471425537651035191910976342238326440100109647636939330297434729341240987153122518954067761364117614082509295305191370331185433248466695839854125588471185286100276679304676193412432686466263222436764422936674393533177137487883867812699391836916767018242230290360632554937504509436535768553648169304348692803510708734194109131057804925033980139489317725949521138380622420503089182964004857680762073176755773591129497904019818494125168449180851475165274114083804596369478458590581076175864308975391598099648377319437491604211799424487126726230003624174724072857841130748315954840226258472690411334391647000486878219742383259881419577216362022835671151791216165173839858292924955125092004738649313028849209963573316102957382163680117418454252108845317459468063154912445311082789659778924997386964623887302942350212495588064828928416928660382257585642948505998261820156916624515269106967086285945284431585764890852600251251953597580680030438090159147792975118710903451367574888351877069135325125105170089384165419573319123087421936560246242724104602545987237790003430612035322988069115535016497893427010195515841398019778037668224052773692670909519771606377938871940466291942008479869396973418418014357373958994066144778443613006573669482741814184952349056712141395720519318563712724479204485179512989796190319743644850518559473910868688493282111772057421610055572205132369845655886247623198182267846285511612876279629257854434704723962321267331589113990868936158683449154866699692360933128177382970485689188900246186571684096093999464551729552325522462306374727243343297927974639659429997933568567855039354134088414526320658772655446287024786052581300442538654713571392854184180237333114702080353222012426594425793946559207100152123275021214259656609196174890267792284273966328467631343601869079153265951158271712784958075477630964055924036513634303049205892397887800320883477064174639259363338259701241297480393266190860984438517011197640605969333321630742685480298102160539615810636107487700818514293047320045409996689171198571114400832162143020238204577539798051467954001468396263541742574674111383935910779444665321568721665722898691340337743575245712823751511510913912238380823568648562054983012233762073397242807570672916936573971078225659669071138513338200552903324819385616733428420685865114077444808424021940621456259222720446896526340945815135852368316745749685487485012910745592165554116830282628047830329458343555281678798820114560129876272438143609099912101539252457700088737099944495209305084231073605276390760655131899362300394537621576711824854420522890704597732946464028484780553732813417632025398973066113536491357583944995243386290519234491163188685470643858646073942766528951757029605772429014414277613556185778858632719867211993518211006571509457913332793001298108563696198916475333775251173166562509417882646084214596582993982971724733120270772419161377745486532309495149936025135323428773695992453840943360005245339753726178530641141337739459084581541247359348037202928783708836230854904269842291462575711149614811773044874505755942007733894406382202673214522351647013911701532999863974886296369307226831997380067908588200014229702923677524787349529254790626717577171138902157251555235571666034774605746090890572045123352721877224438280464941900599918083076575988975745051698115600593994510115459272672558575321854979856196429922001572677197015139028191931988734043249568747875452972728588474903037595445234667251665428450921039324385033987443076849808527617979297972510892771232289298012677206235983992882375653641090725050207188575883938237513388150043308111175769711679506187135559101283811425290459225573343020681919155065655912664319397506959697740716701820061503741194756428534875119692275529527803726945576393841666162705940155371713038871850800374148539619292115860625850796172876172098229959769289843134413568188720583090425376265951363018205269431087421590441332576263142094319318322430852263189448928222249783189443243256160397869358258912367030308003602912536721115005751213326018659330060965980957738815877266383170681190570061344027461829407980132475434056675501073698050823785800676583662558850181612022149857438019797590659304873559054937990185213661888436424908782030090408641774262527048668978990957754203324021121707019103673978997884628951286381586103008860746918115436687935048888781224940542393639529032273951247090737615069572411458674726378037713206544733060329425448262063935399903295744599590378621552166885042676583634249831005443026902635876419244727095611167447906414154854480492927404425230424845354162971538183174144313345902739634218423272700271997732441444899361993842284597900075245228159247783742653980922827519542049142850032536991436996913030398741344965662090148477224882284655128100328832483410587709938968761871220587886507487851539323249215948972431763079645093330437396089315095330359524284026496250058225372235875790542730528211514103697063148537019420268257616642510359435269211857564726374807242026995611131473067264033765434242830072081561680929210600509101361415120684587055388942366046901686317682705932434182729432347165290257518848829488268530192036020995377120594568063756397962729501596721812081434949784025099129641159030730074338952006565825556228882936630889980391210953101914985638522438122230476723166935369593168748231074223223344750653616069514520184500937149877314619346344644615679898788234497212695249958457861891894491115527661889731904148826143074054014039678868692144018944779841504041040112694327313155141933422050319132095898442067108843270339432207370859454456109787969257424416494774519632085941462019783295087693116474465403770977228075435802466202632073860645435288078406030812826722367476084838440795018011939030356340609159430209692158129057281320575763719608616064884221478957399604513606294812858653974183303270930918744796154908953470821505031517303911157488164610152865590179536881045419902358678219347238510120872648938480930210178270312983912868668882616311616475197715690419088744098023099725482529808465380706254576108896001713074925750756994263159578014662557133266437102216054634483305507878448534924663275949683629223145817395728625685575509870312390542938452317601663289025057511054392661563517906385930745798644056988365769870937323876542623286886807237476813002410372318282473383992529877381423787149829115411670525823222016185922494589426802476645833098320226055292283949184509907642744173285387732932646846445906632556841484876970998542499655445589965150617882156792621140492813165694829106890957992259612901358743749545741147301594071491587022929043866398744752184875407806158184700347771659582240410064818488221907083387107571838541736807848060757628010312241636483579021531783497955188848920284876150461362173745216247706184800790450638989618093993367107536092439390925294103977097873898678242692275064457740685105931129245879691709981060461050143795496848143220368018022445314799450669369307153895900872128632527775941096817925247241427679798007114593640175491713355760973748886697517805148932098120165825193831629918359676712582207992216646727472941365466957834304999861861942673651878182172128556169446898588310087147264752837195087560026272538795616340278340368544247027518280914981816999122143647469615847652316606644861545516444692718098210441206350292152427139574260923417268521856402784780615899129140784589756306752617300859915038697499398971510609187347403844889468767135969823556003119724311600486030260460897020901021630601520891802539534129072981758226958556358873618411340096450018671115897948626753690210355282909589734061057124770049957645467812990431294412924570978929676350289395013843903543678249522555083114830871256677414547389828641900828681825164316100650286169884694913477830842782167485470947852077016699867545884020310997486514245213052940127557007165472848195175364269908228676803058196241861106382825149552271268994304224765364986825644655208627270044608072687623334062410453868590157309309716500670471698877856602743582208443429631621418351573151211133022764637670821924382553169672004065180373013909529189295635982366304048103519798300681885082199151377375745910391315862318459291310263648465193322984971514262131561603448029610289669879262427621691696135034278911286800274073121672080000912677171146229340805436688456952096736325033328726455604174869557982565992127528047491148549968589461096892503251028564745954609006904198839095087726880394960980828088581902679742324580203105288963024626193718208458602900632565124897859742461677028020598737016979688830519809747729885012932099429742081460108100851580169018346795450867670830742077898833806859781118087940555811471329469855848031054131155901403387822222401614841876489410652040867228635523314790471891359642931149311635366504029186065750867004695989366667369539516602602141804678145493424562484786874030498735946873556260150780740126196696426749999735857129960925997734448369447925315205207501246335189440170020633565792399354514410422205416920731959230183605666111180923338662302217320263721533211528225974114952495062641643763550608901675111186556500080640625065834595916889845879534704064976955798035022264509315174912377430711191287103897881226868818068620467918622865071041249020163579111955914550245286245586143964976185477592134361907856689802178664090740196799614014191601312888152237849489354962822400974016122780791684702184315696397168622063865510172636469351020492987752313268915330910120008217343722866820725770573119591506308788798801550933150619942517276294534467026380409814497890457150027194603493277949131465079148093699301166953381101777359849874955057989482977047709843832683112345024466987356798078103838284679809121512252236090000004942637165374992090039730763374873013694614764587539706458460723942459320659999864621715541261294142551619390819462592797349761613861312681200267425565257987222460598942568247798094195607968749331725301196166222759580177459879714779593794878141442326467887294253809915141792618550832582015133830817506966120360173382439564944284442567973457746754445428264646706911198128408650387631622906935215691486234859754605591973309348156910642107685223614638788908190438211531497669625725282533398324852593163813933482704011594981205647079814300921531067745020196051946711753692619444324551659940152016231730338917041698993399487856412989821455671724391563339848113818689168434135864860139720851709566807037037376743205057151897052596151297360743373639741294124382550911410658440524278981969075486032402828368127167716942785779415880118459000159132036979086139508156260149401181769137871764053770761722399073069888261185304656984843039771460689340939147055321580713243116074174706712556958955266913971891254619290688404174506950827907327515523640861097985108552499248175850419956834174657179471570967265135543558612500623806063170941150830125980632630009206497760493818055228322538443952623243249807979665667276686073556089956740111442350525905702122043018813930639458186506243575498228992946639733709786850485087874293090467025285561106239853062152422564014876700096049470921011281532456331443984731971870644468017523306973685294586841495286818015499685127266878094343315650026621874651842070417575595029099967898419469690849702611982822916129057307393942678428511411412678526608325423680094787566640779314610863706328737914296570327769025863787267470272177667498925499049241984131944362369987332252993035141754867010864855309275588797593386677423012848946181802830278022086348184482423990593621582561260509910589191303997990615275740902571251390525051650643061095068982690441587033060568351980445396644590382261984767846804482033295978298405170701156719430791951171472052685507675966856143026921607200307343619575074063130466278480714962162295902001648487486439786912847773967830178478203117485423120975073720903705819124127153110244392841900667074533768772346124255200209365706113067887210830827821782841681573980330015350585014012046367270277661966774367358888851803469420824120935308717731286940469226752784610581784836515772730005217942071829830570379275503248631222617032002716885081436602062666991324276239534134738710334986366641142972711546417296254489623242817224943307045374932444449700372832548812793064967100492869405092638701253238293911966513616313110193751875871652836643216289472262371765439741939353984033507339769191824865446856375192126034457577652176508430896495027840451180257714222454502137419710507320337554442486499231256227149883834652129870502022008645983567962436400098360099165285629678238399559494241810929323606987518824168065848205685081236117142895571295638476886056581192254985350143231045138426140136639005369482394161733597691714279093547770049373648326038634897814456446220717574146695488475450852558706703729846051097225390931543415622853921837285870316677987320048442742360982365873526433625221217274468320332444639709855860291533545842550680469605419825977824377182196065687698701631969746361136323370509565537314953505461935815970544212444110522560086117575135935742058588160638425870443327548628104504770671102677832536193990369273010692241384562249730479778553416196741828022302752647479630953912403943066750935170451234645241462469762029964407488208234598227087478591192641478388998048192210415114396281154247892151440199863828326123640147347146833985152852700527921192473757629411410218453460224554616914605401342033218697035942547761135204532429592992552454554944852839774860821832077761065519340739270593197589182038439075666174360250739764439546248084637987075027171616679209603794380776646144644230440592688339781822359742821343404775904800514272002392581922045915847226175592656451837328459938546718285471811792505584556225779902442145782791141311162088447218536307009824882034107262229793686874448149947941369064084901102139693186120934862802604544474705369816718570677699169736165854170445153523958677931503233367454626750042108239102388734840274668736070053646994540061255444924644639985205804951158185107630039905385020348081285454568493972006256511742731598375202255493942466638931718336588528255484562059629903472387483610594303864608157458962495108447504675372710947535475074286013053753426176698386691254135665416729274918393439403504059360614643490419616987484975484734464972872376700597877662255813359462834356285009650782486585849159598676796349362796580548184402115355092952564356362149725284946864393986321679199117488741670271517246949682445385445777241694116750331590977040418812839802922502706203534105697688948636885086923731319224932512596106169420746758286256950236717041024637498300111189350768486553752746414130396042355675146320553559871099612450821925706536498331189703736999535815596330558117804487470352098708096167015101000380489433072704908991227219711433736046217838870885320918808842171784667892846471693449437466197307266691571893766745597242129299675664134692690929709461563281501475562434629098858754039971835892059311781105263819108283848419103501641140764242141954374630747799647841735874200117633616577900794091917031957173883319068383131235884091678513132024844231118540877462137298893304675643701558758694079745312644646595151676106009216554639881682849764003771844688000752657367199771293233099422761205436127486969390612629121960560623707662544791488100984007953936625541508137698775362107544718039299202308305473148293748950691654832095340028699520730503088353849946964917944944607700187219469222138920381013302774563520101139053293199632369820142765941318413953768334104154686896912274786112975199510991908138767060631058042319889815793243571321972639459334682082974682169517278771859439914186235348338820132000606944157738052651562584297293914105442747436389131941205597557431599472731180214341689554837962002085580476540154668026101718564306685110964122347842409611229124672470054577845742028408428586847725150586759211737647385517689240952177120218482384176084202702038508580009640064442846328748155695219399537059913308061483589879875562567550932427449414212332746910745864978912699129600099536226239378451011280502705181925493902993737136911789912759048754606271725500755353253796963578068159647476368591939748183490830006210547937342462948433883799316585310641269085019955140393881443382002640740428591051906877973654885827515481585446897287529295196102472359887605775495210415814698115427338569667210244473302136787401679183378812477479928799487648024030444793194456580167697832551477532803666793931492269374839351182811332183711365797193894217386550538802103472621855773108619629724901323910922304558002461423341186130736654711082114127087026367692158855447393185130191756860717306395164202818801664972364683660412965738272979827881306410086034410874475488268844387231222131514333647935497655280126618368344855927060478408394166624669978029893068855980340164276500314154310885738054934605308672626079556784229065856215462127869348468374728866192127975103545337193685253342756480226463160628472201391965269109347885700585840053597818582650867482262588414940893787508470113116588527102879505312964411736620560197935896352730650421395735621791427409286598819012106154416066459815186966867287977444413246749511075964147841070746228153768241106936030982481859214855884614859991959563351568297336606601195633411914470038542540980261950176447957143675458415804998619786034208286326655122685274474352576004891949721854973194206726052849564074036672597026955861122942636520151039043365943632966576251142808279313103192630431539193452121572729294952206136646723079331566933628068267932791969532840436953521553175663064801101176282523105487835317430130938852383434619593506518072580518812810402351594037564698946986163098966755525888578414312600997879224366515281171455020198324584510122141581391763715126489279169418751259729156422180024604780984459120397086921445021219102562120219708167051186488442966107523415055126029246353018379475545894405341054109113092888533658264470398744789024628287850891280952201486720526015964616604222358399420969404728862210057499661051027839769620717042564920438819571244435408158871443714901575368727643152712010524088259657709751525421033764098745811178959596790106534667726013129321655704610112286348387570563406054551983636716252929540749666291660840274905520982129261633986644861706884575460799405342769829350047035554699949704559362939301091437967469601223324663621806203693318771231663537560322566619560801105768502123802045403138294182353171016607878547152105460390723061248507620075310607175312040567704481703760444743203471506307254755099482183422561503397800510501506096230414813900772414035889083884917767891344703649748685428315799557939515747815685485520846273134192503524417014468558848727083123379000409529568944654394625553704475124478132945620432170343473742264447540487612357562873763957789974625407067416313310097727846220355993351110241804344909990875697371313000475503299209964128636917821947187840531384975698811242983124330448512943018524781620962987399157998078407381643643264788190556985698718881413251205925162075964763397501052852934883168978366862277576349692891564576177063807120674255132992798852720832264258640784266304910210490779067453439235001530132432254461170175588975149381135045332935681143806150657898173632147697057235934416866665629629747616315443673080261619123014147158829287644516237764576043951780063445552693655719022980219804806314891291044539911736268635163573169035625014107506938031295553894572565834673297938938881490739499411488380111159495779037916105462054962434924263653105869203438741008021484326927809066606038974387898269229185395783380003012598634374845355507995672978757422925745457121959468050932197059514285731789648475526666947906097994537616561975251674933306646278085952228842645261876262750434605191676760769784735002764626249303930168813379747220417989228366965833951842230176682615249310226108233327228294827918718904874529096146620553919432973200408717864229916578316209155332827950699668357758961943841836277481634670731807779304480260312338709797559775626631913571801410490856182521228280114336484722010169329084756926819689996068489332960977129149909782134470835141173258850552411986696716742014733733776937105098424525170076981597033890409006212051736288834419668298305545188976079910948793602485394224293433267940602130919179133874135549144137614983915884501289734045038666859264863146763045944066743585944246108531689251032038584154288965407266954129753455373278251455906092252300277137548298591066579773595666517987349268939352146797561002499875573690763769751478958168590116177489108864132435076395587078567074633916224376432640657604066053851798476762125528181255199933727726031067917106286821378434451483795359037968202966700501851783694668501799053220083866934145745066704804797340626070451210417856567230206538524212047022320142612389554186181243613595457123518445105232354916191829060631440526610815377661577829423738950476020498286684894463326356895496753845745131562188744186641025580473747594762415580281575494498527149618047291539309594057182603606140793221737136689483973638664411991726312617024266963852019626054794643689089016639715467674289604513493960734872034663255749874795473273666286718365886689611655020531492792870019653213374974227096821808802485740679239268037557424177162334143857089201356673695678446972759442357006127704522416653795963790242703130548875021222154402640574854368993685279464524727483813614852303798584710399743069202454316975693340106983139576979343898751488249557329822557892578971945846385224882867061891123953725430803780240893033887688278871327638508504578765591111637937817057457041672112474520651116805481657424765448621853364224952886073314247735691267890140967418208109389901698172413035928820206922985268843954277500688539542682697187497112924204009102069785238396123504173661980523967176129714099271176073525475948602668282317181761302675833497420525991374523837736815198652856115834606511730038637904648872762193949280000612402704847416027583416861005892402966144596564937964916071048512330463696058077519597574774486921843674360178379126892652017482651808728322192243964401974782489033220747862508812315335177305428973226859423296170679174064019474123562704104226787857372535949416576453898596494749945117508244398665121145990313520203553642400402547195690349542438312675780568801024813054581093613545462573439567297995629850841633813604424084256343691107073040747696848136659293881358370580661247824897676607668438628599504858995921478618616614135001444213586135480916524803349563481220694706242309821641535550875653513886186818911066995502902775761611158701377819506222676318997630915672203582423636936918700878048657535994052784105997110234959734320220809114305858646685942398648984059414694755153641981787062257686568701530944423891728244362269794325373269274089104931836675255728537369605614843992828461378544819388024975908768490206393336744217535988324086484827086445728678867045691455547149347693360751013617649505588162423375039904239173405021654835267563022859970323737364382288175932644767222025813957789762384283193598070482760058154855024270465197397658455151945684025153118358136135043171733738601859518671559621328675926414624434058028487142914756308655413758784307860221482118745139773327134340675619384839089057189866401814141655339024390592597564908678409706786333323812724992254769982633976732018866783349497786578764838952753631773620460347436970144319658152833054141752745969433490764272872596700823422375505171364923255662727479251874695738863695225588070528976202278992217068231039920264193714332674314679712272693220986205881468992887189358325738223751821425978532545958850242106313112321501381094091207467214468583686900045309952952724363930896791317394367594949625072543891899046644386848063535551594713787238064477512375306152116229672146887411805351891255139724517570640439405937460619768211330602254617027529400349450572181727231283650405290500927509615147168329801969892312191330457616432605671157801200779111364467560302587182981740898074378643838362908252550000946648836605995487460930382466156358942687114139548242850096852931410146712210975880569325560523777401001161492284168954443229557393872544345264097522874831682813921743349917392626024554239559109682517530444939434323304641880222371433651364505816686896118549434011556023411194504518869586092122674788629106171879187345651057864533611819179540446665569169648574934000861036041252104641815687117282706960951367126157628841669577351216151965005735737930872579007047960911539188012174574258900013890002913534603939608930792236772793047872955597554047332657221506576095372703083593274262371335039513815451067094902202798491065260148785614428358424798732962040409942326399776743050438582995621552491324719861339068744547491867259515266816206469048005557982588757905130320583554985560496164111919787204702199389728215781292422796925558350134120160003795905544536219225632760611678227461064622171396535217685994742627444858936543741146129913336654269678682860069248770321062039097960244324631647585841226240912919536461662801187858089237683672824272866306483818566707081926556872081026037275440182344696771151626190661296415283159554475927250334521273334129825433311903164623558907306071990558012653754399559151418373075571547151897234023001020593220080565332503018872954193058895414226498916471300755029311940272052187503309054381530416704684496417144554526872601997310663854939023389929138974663706433207085426163976386527954317343336263582978194374993515619360058470576778879969020287888148982249451692913284676181105481652628641364038726828577809242296561364575414280882435505187616618288689395705782255449532623324906968657055095427051795074678398546705524617480051370070515077651555036438059903058569371668988304541285357782246199494325707708872798793151537933268946571344152027165556294581771960464382334037020001185908935130286454759999418285854160040722732907113153343019770012520456558615985797395090253240167387510254860060188831746907213506490833333478816266669122794900616069738653814725233947459848316918470595036325578541685303804685182453422772832044380626291057153500875418954643985032913092590329293670419325663808217965487060427800629595682227463478513185482786550172018833265379904875272581474772370197391776833278178317006735304279366013042812767712378728092625956447335254403232448802689768984409595702449223773321173787546374468928641768454680392419616453326084295229661104298365490894297125068257562924576298777580693936532922374530257518903740191993213496286838785205026038658754978842123662217561804503904445064869912278800785457670674406165078822382136159584955225453650736936488974899992657026278123556606988104642010940682253143998462511266833485500632587091809307792384195229509222701484356735919033649489354048185313864539680605050027850238055611007196257402949837763307945369167258532250226689817091392893107962541649018668950877278038708183336563642203534681478544167371179573263882007449815593869931821632202191405220343777016933247058047849409285717571259761184617514657252799924189647400407970950457724269950873058705366054424910114985554920010623010337891033429829732065090691609781158393005081787658851925914593811102776797368479183790587196295755129477383865039515148199350949657531971706429948822655231513027782398404686850048524937816423384404998609436725737685138400354949629296625815186883020717378172758454065005213489910344977647974335828100952838300365536059009528373355505462493620995207644816991490056638217827899900674184151445329938058324426388913490365170698299094336994285727570105760778723536837055198834323205122700711041718361010298312152821258356789421190185785826485440168525817549182677061582617724712974290208110541596050325097809794880001182290276946142655863693875422990438097639844896298047252751709582559579229093073714134387896509437070605761229911355637955352801118589003218201360188231884918177783662707702451439314464365669603384457827095966597223854019633223783386408043529852728725320121899460445468617985220972735986595691509331623464894588169760712421062869728674017898562478357388334900555927491173489764032952466636248441390794957472589898350553982691949104250990570312176904145932394907610705040906994792057521024765140771854777503207390297014069452743130460794551126154738383619388843183615577598491916808106081972581249102823554417012632819862978968130817105993598181263746918957069744952751443572448399105717697766242049434622989076450771013451755745625886551936377271053339669094614320756377008438000459218734701843593337973422712146424463081032804698882458604620081427233351434842812770554913389592678286609084883287678201845711960491522282419141102252712900002898352560304047304053838469510187807907156049956578874258264885488314380021375431814885567994713144054038300973859382080709552224791568974078598643108222905003388538215987570417540106016812871845069946610976099358403043665506637533930537296255130748336058926384224935838126862540236069896265938975985758450358896837783431523848588761355950294535394698888829581909269869774605762494316823092421413672790632243963795606748498650518455788031946830429810646647121962822864956116343774835225526825753188880658598394870668430218624477906690306704618117598499522152487431733089674147646209373221548732188849669098785078886504349707214861404804440956659223558576627536350563050939979367864446769308287148561456964018196422310546274478492045250047523991526570446853461699340501384244403156597317920791574107992711387329266176171868645701719952372920628660622672293429322206849983369226773224329604456138362104288037090000157433775814307741473355300303803936328142655339783169001620076994851057127914746811374904133073731210301086999750946298004698341873719057035007469622152845970822536068038040106177729086370818573860629376451871296161829641158191564245877527623643423881840584022828408619854050294924105663802503240671473190330412974987128916122210572834397735922882543388277843675192138763307904457710648953936871679248681581720378922184371919545924741263367251431522019865766716651677509104991447042640051006979348361648290755085513054251079781091420340558554365327549775229386159122309124070493944743870189788363533557005303173275015595750603025416611225314644934619798218343612349654332464655097862723287705277489885637196330848594368208987241775468840365705162839746462400531822035618363309088395976211171747766091072996799534058176769033326493706847303547348347233043894924763631065292624562385120870479565881878656221878880762174275399948488171145799246908683913328344967788062669733983589357898888965819153698400409653820098865237010773006809781738195574467488873898956190443646665532463125295959403171192964060002466573364412639454432623402669772579350217661413188290525239428044370936530823013106375789899063424947559483081545687124661066533842696313328389831304036442751974976353904178384870701106576834710114317195283054925868683409252592372303526860080171752278455459978732458861263780717608934264845188338034564661457440785499292552035732944035489816018616393518260505381492278596485872062805757195777213642165025355499881752409960045603028196555729174726218689005795000324539696468763378889668251151754651039965439757652284925378395052299188133107623404502070069482136313228825617146605168633709050386665797851885565847669016031042807660032414539237957424258840699206611852400831277703895383522896309841569202916967388963472322580940368251228724644640962071223111173459994939106868096756560520757004317462993970258679504813968552806797706413564715924121846484142775179431393835698851685353634865643871804341854157748338104143978541383207438890833778535128397839157350406042807341731928436138001934623151257959564511793859463421093586390453974288862012017287052045572797382849649157129099223546910695561047791048009297421606708984614755909949628410289174332802074142605490315150993866919131499536813212915303205830004853330501971021452153774091191729904942891045682854240470527295662015283446304816355422704105761359832610942025484225544976693680033978600664922044875655621214729193968416095387923234581190549406727443437590199834620918222997087492179271794237648620444897885515329226693145089619564248964749190969169929586884107809056795538903613996535115341255477305046449409169885857859592503422713166279188610851156943431669540292268701858641740155831246574947299384321110352168714839863218959363822543548392123548920010877411471553484791762709748591511387599152910976866324676783877793870103502087507660136834443500252873396625260595368629166458169429125551808992940505231369456556545019261908168857358030934522065058415128110809608871349784805656448606785515834933118316555836082610322068588417142025918095911784763854056991226879287767806302255662495771859083438989952456710699737405049271402421198393724769340354690260529712105729162903796130289780896984361329126849765498495601302139859244475764401865256764313001311761967743849753591264089359341603080477846506135196717352440835680722577430973509236839477552690535573154198327014958198328111238678215913818328044433171032802595684850142917569920045821967566594375806369251616474781783560404865997786640584253690086527049856424896227026071214481918739143056918025002419216495514833135183347018820581890775176128354385860393049284932790758004197575972697405660112829768781736987095138106396350676906011224161480374533803225801984697089411450886744717178153341354021904261398275520846059272044624827400015990800311051333811468923698114479430421588473490357822417964595089378641014067582533110775129430800015243264087541726966300131075619263526058063599154785504037415612879002767722731074441177645664591348502855936781358452837233695397249872697628656421928134953204451675553199030790243433811457058394192956927719858287217965702272998390874187517188375298916252057137080464626064781738561158236192127739811900897528046722741633306657164265022211470374657329662201831998851418055628969825546306372866125374142281082010084818270733182954808991822332774760524000367359779295590824241224307285682193212265225992651000970682562817731241023247494445969938953848938825785227042077772738366852341783315117426388617916011337421566404469327861478239015832387938199948501565780203021702560266145667745821051276016957981697655921832927662877507502580377373362301405723349681040755617943560524340854959344234298285715739272472018103683429490821459023368997913913649319358876720445882177905556218022290059368340868415001516381354568387927246418794912184250261796219744146928592164885783217445951892798141872498911743538789333999757608876156402137677424716652807756843220055858375228713844115270345082164615765804105515126349042055850911421198969240595346058274299738611764846939915494928423870414545804229188186671461499794606150066341250859782033046330157385259262134419776976191152710359138162214600984646986218977349685748652863789022855057734096935078009221061689968423648314908273746945223950709922713065492332883681831679977910256362263028740937179010897637643160531622359532444285619643383787577666908197646201778497978323033682375576571938651263641740502934885867721730070784610695527768552321934443559222764635213501878918193746283492178362000889006464610236406130105569971914954688552330292107487326715977588139995273161155749894240577663006544762157466913173905982419037724502049080857477999876825605406201880536569807691055405241720962476463090956150985559033196327642407117216033811437700463150997394246106053903870683134615629142108508919063313748990516936292739578494477968212845824996092860192711038813951636476627889672753655143745906206571948250639510963080263522191572387757627584607991612102116313133204865387607654641102534054994090497380551234808271592474941569704222917483122544491671965080063840026218035741541127730272475268030367113791581387387278620977099868991005134963424891242173668495235368209787300064224872361472695594127365359905001698756289513293490292594125364067721099182455362846699619079995852891548346770551082528567023625438970531799446557308291414406715963250731940937487629108731857083952071638258045461241539670012081120210519986527392284863655805382427526864980923620063672460502435140410474102685571216488058463445262866936065495786923289895080315009297839063811949764979646844214728335943559042588401803909698593875147074952664956860797794249442189485385458325584961017590433393319345830141950418739101697998456083959511978814510860595084900891579359828040957003365123463005954426686118926223754595974570635454756969301003358447471255075405700049598149800679661559343255668027267451461482594694849763604220683735846069707919162178921128047501339663669521025314034197555107050227846985796139895601564136654156851432256145456688129278307416590535532111018200273871087086713794782297439141550384204133552710423193758680440111388475107565939893389314057012434327126507219914591825337073315450936874093364236148478975320507751522209913007115057326799597921720791239377422339104976939735444202548638676491978692495017839351221164634849018840363206650383186280244017477155869676288898302142895795344063111562327549138848623997850657090287534626899661475049665719307326074756528156553143137418640539547666141176882242271748957165737968617105525487386883463041450027361732743103371513592995116178794880915271257842311130931410487307828223323193219992028874087081022931362430568568725436007724369573166512730375207637622912049354927095752605634247742404877517970896877844745711056942622224602692036830165012248849101137288643693675679417687154940461818740264581950097699810698636160496703364259083002520225599528810290293573209775694349957004484243899119908189824238191178626063495998679187444341555471064231212823468211343985730896041598668050659905952409103473015763955026586172578430620627961228567215188691024364436740970703954960148772795780758785021081237992289884544590856900940813769944093420947875393933222791794196391745070897014230283554011315446894079428625668052828161782198474264993631971282786661491062306428090907936316028141222539223259951016676375430868576973674552882994178822338735006198465887328795194150734757466883427348995887425177660446935564284953441453160110443522607192077288144196576654256681717789223995572026616078972359015734303755595871582466053489589310086607324455068687590980177394032681948449236950626244989981089419635647545190961176513294267809998445551930999179010305057113295213723418994337279430676318047208105013017561510089026884002670875971226802927177365082799949403648587787482911292254067806205864565842647012511135873631287352276976527011549520009240201055252809383535271006342590897788125032761748927815395136636463955614967004264464424805953075715631276577516095842495396359307814724662890312397048570898536121979234856056882876198337529785303549253105213156001240482489962463623687521235596093003211243438789573005110300709476288455159636940791686764953875578603725855369846354063797908620788029912465469026831561122942650566669513472263014900120812362983035263166660031098134805466909333726693049657491604442985650391808283617006209257985803985530274280923200474676561247833526325287748724257519941240179778807072820244475554599491857358690579155791221092934340906774190764412835613459588743396634156384214795588938464890158589989586717497318370775768661238357628618358124444333256131530176986421835682156101114582114160651336061942133118613892774188292101793907407971967733943866579530048448025738559824957034065582612915361665376012577773163127000733882494604596898765796960607259712298609391297268799896365846273120668073037153973858723741509167558104733551578924610288739736327177902889438943418058316645898419030237841132518693692129968165656669352444092706452732222672209178295795860729122775009079192615765242823631299864538051709410678169783940120091154307309250007738777243303819577972457034497296684966717395252282442919164480151596718076797685159001747323479928216190468392339050387402907157356427982013310563321090336140412220764366347281740061520006253057219637483326392920642127227770914256388876791775720425941936373257348814841691187939815158829156697990088051339677730372940424232534933905131765334008406486335602479934577124367800116858828324599404369242346372855306103644715685069459316015391208126888194861490292433840866161910640170780469834389121529048327040126268058770793042231263868449232095864725007778279161550766481478341674082723968730142834369074096748776842582326729317051315097429230806573507689491102970907954751627668788239176525562212924016954224288506046146449509612858493994168915767351016472595630075906928697055780552682796594178551845286031537228880987313977916820416964000853332952563768628830014696665204871355128440671276434089011665228526737495822749716558601058540553489597644402307951765933281841837775573905861304935613625721723906405623598604963558312929092016147472731625949667682760119747412783039491974175003914577730548835228204396083223065133182590425866907338588679090422744957293395210987590596280374578453322607113370269539021101679427102701576701908805023812647835824020132659422667662281069660485254290395113887952990315441120445962733827323798436473522043950306217475309637227390962560869014394808649022713856531912233884333504403101402122016702741016853764984499560048062694989428379619568452121327709843946761256485711090142752570086616590435364826215036466031466519297614276543572470385488198086883501062009423295594051648156302667392614832976169301418549753332537719847813747778563849096554197421386059562246563761033486788107321347353186138805722476822150105412193640108974593644503530404692988485360316798764039266024101671890029588041913427586469715412908110518058454499649090959088161930792153509706157563051013325337161104330220677277638181098932574723853657563190131882672615900351539661416855790598600106760321592790047867333593657148998919382203771122284856572496096113573098654244063423985312497685534029739265353031144191609909596607662630315886086229915270658777517559555977305100088670082018753365078765377910108321617296270171506950042632660057439722319101408386114835826390603088349023781687254052375457134781765081035616710984504163200954521675865910344978175911868970166015761560349496607330044684934503009529668177913936135750623874164045810054172110958448108426418445524827359271237756665569705274275816612706269564078929732045539616803677244012271994565983232361972906340741191886818530044363983705556412153791788421243578694440769470263763292451650629148368512209994476603934075120416495097765965775903361167760715407267296645498158175691264102894740848118878647169897826238975269900399385791857603018865416249090547036907895806528349170420343183210527779363381300463749188368614125608311783905812616151550430939482173129610752773216924501917759390644972674164077342174427186233480353145055979877301588316912714705806932975775789370902425498247928081232457611190779899039965666575307985663046061078366460505200337049270171938410129748559594779113698678525854327853204641008810403044201838667657969114561044173320999552178685798456349814180426071541324144204261960679079584154973885557016542135610883467744892470195092430333019856840698708283440207122950997973299571799831158208778993135688009515271442116497428306100496693419007588487223433183285529384073567134271548484355699173377593257834512892933657342843061156575694427413069086325488251410603587871148873332634326937955388176044035666174337554685488543814957502946290118252291532406241572629312663720294839003352702325457370249708845459959934396869994238916802541400037586273157095994176692114381743425652267740029520727885317218387686112225682151818590724922758065670539685522523930736495864666529463103951386917381833622303460407053206442433928743746268537277817132066509326222688656713471805564581279523156672824349399888558277042485465085250721428210513944644489719935481224324058910121734098081890620760894672692827412941676373704653722526077310921764741757536101560992024413509369072218244576012542727293483768495023656787049661281634659154026389336361199807646216777216406195255297062134808212192425195309495985508478040154012593317096037006857901981024110453629077695657923640396468401169156615417360027115802020339467593241228405109187135192998985236431685121370006618207783303156601189173466988237746900210893341959720467485532591123658443315059761035649524988984814246542138149367398555415394063844318724706598520397442833444955766926521094362960019048187159509052023909527703889869632856705051648126900536545759828401451143641786916512034600284392853836474158714974631135542126855292061919201272517827190642107466439124544639935761460635542992990773496381239997486938248819202637728854984401656284570013495632109229735027405488624828284790704910748186543732392862875217395125977627800763006502834444010124413723266189316231409896933392895931434314542262125870516376838034214497789020545353452614980834141080243304557035490998311611925449272494044296774548932886418779408225291592362414476570273746145581970276351057512824468792243262562293922052474001724273503577127744334173627605823074602970764687882284737353459843867257864256458981032661021556640594382426029982622078956243595348321702349491576902708038234366450373764611560548761217229078085885039948927693550342094862790922256267048364437827475710809132040670026545935344786154124773030059917294295019302750667461261001491334053545875226589160616916143926434083834058901073927484792710366034461527113120220699879736877012812932984689241996534414114938112590592402830078742753096678581525985152108919061071447429694073659978166281262596905783801142981098952192385305730874821906207516180500811731637753331486953206694078543895342333177476797752641866163047088408374681394576469671335306404402568607917317774968912442556421529374905281305799367012366038387979239604100584685545468130741448965652064988554216080911109977825644429419352651226588259671933247191885612261529319465927090324861365661522750333046457950672598393713165870900453533281689448768947598272904191769100068333506193445196946062922047891186863139173811679805173296456198768704342487858087072434718487530732783945758955124576548879657501926477560088094140372342797975991292943792037962794346780685876403238102327490649731729577466576261198719114004662400761484439764607164076417336136237541542313408615098049503825295494328688110808841379889346242049668814971956234382894297879091623919651552906695354040417677889629084260512182304975965936061698319897552281546879074748741212828467363874047010076330687502003115212165276225666501016790308029166983694784256068588730556923913538136824142350356821645031630181491948745029221262068344176420698784954856218955910549114320971503245628719382940364148121006370280178203365462818470451014671892359052576734841799168037712725530257844974126427724452534046084625660221431480227057221837305986997826624305341019646508270298366510294960363473022326478458810176168605242237011691683992477510417825391263670901432612967202274014674066245064529186366610999253758777175623397501851417865251437800229489069418564464042949881403144798050770196109883911286483611485784316386134812120263755138279266091614599778765127168483655550384395601483528881148811707874232469369960729119381963836959152271321001462568585835309443732764987458862057665201041463855706105433976701968543292279246468781110176083687573733029571001273963885227909250502803481926408133255215980106896695281253459881840275774863928889237146561075348466650148783619880147290968884112814988505198698577366425271113473463363210140120169143781000635560822725580179602467320559020898863428685508467350820051670938011759872753460573355684250709602985623117625269345968094395479424354809248521014674656652897854421104519213974342771939898368591324395184259377993059524872896871651616200943511708548396135304335312002260289348306029918920501406949839750075018189621036823083007803593463376821248416620101538266623517525054016741272448766137460040693930043567365302021510189442336408976560370931002765739159882715984695199737186588645891855857445668317624047402831999085963016075824778824728538945861079039167991000084682651071757386164038132202648289599975926110047174248721291112760567601859580341169582531103736830877401238833969112533862035455647841299293710554306259913214116080446591703903075291591560665491015566275386745430229187789021643283555763968075664668521102019432472465496062527118473751185543754505008038345757124685658358723903583301266728967136074830881571635600683749488828602114552568857783358393213933522400560528469978245690702646205231323475791673585657275492005361743237552798310370752716063896785794748697878175953129496563299486408530827543037958508997957069564201050348264126393145902465955669056861939039059635267154438894403814018639587925163384839962669292256916111675286636490251750268843843840540271655389028123844929125480797380082238451476747539299957679210001477261974670433709971817755412885912785938853616115565866889754863266569901750497765761611841311241993971868341757464448892252328395516258412421780418760640257912054100598614480773203004732594672348337450050591621714821240769523369975798650044869728755277664717718290158252286479341907123399149466451125625883028489273666591825595839763778331036296304234017572694379423572944189772931106344010315948976853921522573160034198308929828167441669707259368813824636452379617570622802734599928698776604774267763071936284892209163078966901782883179029253834369956509923979182812124025025280036508129834092313773658785422679358096111564017754457938430121977826825430202171531761441992312842492035873445945218189187771842925697341342615667903233316899762084430081974031154433092871214535960076422145710172418555726997485932002397431108683277374225043639964931877281207614850557506746409111990225636949663199456933605950370348566651135052316114204270797875579140623206144299934908569459023851396951491813912947901006365295525626104243459208483341264864622266468759952525487102919682824160811633189151228643299383939629805626031386838151224763553353535064840956895232860544998405492963271011704955882560066911265704473679908777044270492123416925150910954095035280494750716066800903286941675609616670113702000549067348889563559496285536229408578694980133969271546798114781452403516952574496579711117825150025998437591327004060538846797301048717615430396963017026110022229239043151552397624269739523549461733255090137146380511057557982748488121979632762235051704748671994980590152385737155607689296828369842110892362850983320804381195176275718254119312566338865611626758933562634743229925051139073763783410273239275229207155702477367351027265888392061351117519794941784065927793111899158361171837600494104714324051491407435483011355518894390807594503373542882030031945831875310449491896315587492567790474868257306414304846156679732485483952926142818205478012277916283521917589709237236850654415365871979501522388973272630589496510454840890309892036433812479820495151090441541112082894207450761014412387803137665698045387526810886367443172518749989397698569509806159835216475538087240001202478523411063465252430240613139030604430890083113478843100242077311397378289100390206481246791080881247648548311215494031916772374186575311958104771722981400223453204852153670909218686569423320499420728535277123940598594178601078771935176582831412593810161306039219769931168994900327753173751020356159002989321774035109417962578533367532460537233763297313506653408930992660327316851167033330259929153185668494197780556684048289012559587812734702524543353073046472354900511445025278685850731430866816747954384208614771731044142308878758534180507223788236667442873087914268122420887750413117938876546469061315553293432381094489347573106761760373132500719126210066230175760575002846722974465204614628612776603044251196064810741054695264757403410795446492334359987155546363316178770385327891504572163740036162985437021561977819895024934895254035780512032778887076953657099891769662174817868739394468808422752123655701224178866525738620448813891199233640692722337608221487362517109737618730061411132973008516019474296061599872884041968386542409468390060194336747512268237792807889796790045858503726441051386838706246100074994323079689281170038540733641769057758609015569532059112813591265657912008976539369536369398537747275512303357137770646554643074283698434565421269861050124801680936245146260529976674279756116167391370196653770463680052763151577556791471219956444177533073714815377477969112709467936932786144990983006582651267053931049370514319129112236414718132058181870803039475613934317155886752305435557679946147997364451434493575772147919996284473711700669544608316005020542827992498435951249997733290379698211143130055904226675837338382791940142004461761566536267206810596129974269753262563248409350763723100425932551782215904153230034046773688445088754005157963886308397599558900283424786072136947999996153608698983679512419974032993658362149871479507956182599735586690976031982186317439932235369320205084646735233860058125847643885301076395213107877448403186232526520909406943439576219998057194456122715223010115991927948939194382317386294717234639154762268585888364830586374748012589961826620880887703094673703758262429823285794349870073691017216825811796097352422230072383794415552875813674741817085092252927431586563299902029457302956609696072532735249988837614530687211164077961465135345804071172939442570826155428224157075611526917184514286554077958801722183859170432077189475106025985907971680511771970842812652686064711916920110526190056518818939294330162794192650252503387802753882278965423591380463284007915114921123538361858072784165103623418312741920073090705156715802855552301931236161850014799427654341319223020005546407660846355808908204924962343815598218595084684690529514606324798551087389530919129126314922771747240925250217233174841033889391280243209896298094629021425421268522696207936453942017993125865009082709251717785365024011662783580553643251284247783112588773415831421402828125388505384891534709957298626923621995554866212072403865064978302976014077937391238418059496482160419725139418737830976460800604060607965141233591607078925409608591580264241876798373946822926521482731232320880304777676230902333789764677074204190297498432683986765324378045822751890167536130304394633776488930014053872204982929330062046403720556657288670293480210526936050046715094124032647711010169549472866353376272247987648524184842487920622605788201075884092193981588538544376503202605056918075937440584972867377301534627891543278183134626698051828432079983895944665924195273122763405398962176757238379656877210407992998245401679229088586219935744995379950703602155486015904350248628767541823190922320479098065681336145998475881740012989258683210394047734865987015632806185273120512237695500745867176913712112056708315136737832028631467175583017291283113403386517260121715275487246127668985938650966294673871164906482458281568049760830679651697712668111104849559309985146485103437914952401534483994201432436812985024461927597730664520532977007076693078126125022660144002238296585720290682693555761700981247389070444678783112421086853742947268377204101476409434735662100479963904934840428922110356490959001707211826675037439268099476526816196818213273008596670145314936301913114374681428351189618804503721201375190753302238955470356951191207876818766061347135398180656945029401775665502601035676925125994577876593177864529914135196215599540005554070961692968508230772865688107335570137832376239694400182669840701208754650870698130451184534955393882657812288930125209621717692242850301934318711420558175471920974856889608239536184949118515314316419878519427500159454655359598168181112126216915796755110547874817062317288918476706818669595860042590932320704407988445438442163951488583146456217858671101944203137523741963922072877371871030573324409239006783075540949471450113230950701203900941931269522081091058997954422542886581969411703637657700204419229096327569104910799937656965820109198733447588649828330543844884357975120770214482266199227903965980095563893583985426071918583278003026051787013189168908927563077346932460703027452167793817498804313587992579782321445903197821658437969345851285719250774880583209118736108495729567826555421876916362286859963820325384318215521997242570639107019658789412055095008634509198032635435095400664194565954055808531714788182915596724514693539994362585117935866014275447399310463694185728458308486957184072299795428734737060654059744728604645206536904818713265318790688103249791962642023742304820172288258499005279007490762723845812161322565160744431493713912708869667940115765277266551658786468708492583386626569049176493561136543092544052247066038934607185632839837646526572806764936065481315346909449946347879715459438138404780528640916191035987778599980760681972946761819015868934863069817368870651103996963754419086627721097659709648983257590428111131528277004041918894695253376525408128433834095571492615806740407307156043192934211630626183715335799156808541801767636669329679393921710794339927284880417812910932590033642616840693762509797617804416403625957304341903993194713738668037708336416352170698072068840944180392751695230513764217017962530671600074577586130730655092779121193793399112517248799300473211408238130350065597887705320793125023311315839949434461927285784500793396700148852118479346211075948377056420719088722013435414204975481415203135404779699171869601493222250994249018940444543260605841810443531297663083809937426122271902821887923328652007617014305141625800965204592558316462947004710436214753362705895231562587569059575649243421992402223724132232150088137677461336117179721724894317898139393769091914523502597209951455252520978458577035125048183208656642487703123551336877510556850439167457138341695256827734037268616513852422765052270032797666413371006894228706354631028393683910086336923340713478954553335711708000703289142506114562211038011612735959572961637176279412236757415364167101559191741880511589946802584966026634271200572683276019636118993588298264520468295379423756279254251858581507646579084465359813564710921102474374043676496365794505438186877581991459756067672672146432703935726973083796237232321520658977324211254327582602393884276881959015065974670622153483547684165503097835994978434319792049023323079778952638143671093048339473794213585587245171507505931160555062452699953219855081541341559657101254820220198653179326140929522433057210431697042406662708403920732674135041321657039893271654929145532529484853204789488205622088599444099684453408952138979902996793933911105747685990447796648473229538080272855521092802859769606457143475171066414174282591719862393354661799372662445998822418745067147092313542468132867543080173594522324616067443176710787009647409403926937773510143229081849186928197718554307497489377979172046363009543226443089164100511266466033596364652747767711706481375464125689601383592001120042118250356564339113603501216406732623526796181938419202217222192718399468851964400321907898136927087827608732958073727082465736046328935844212507692086320937037231495847034066255418638913773118925956151953463942451346925353746513314409456717996785111507558189701994814999881977233802940699407547403874060169813407050097404539047973853342820161132012168672729031118041107305616960241075054388147312369936659452780504223680810230859765432737638416688793600742880288972881410749524931465107098766092249183641856604818057255562966654767471679630716011272610844566192340749336924124119761847086313691150661671501724076669597876135104957850776612222318099573538133084430759852512887687166280558290780833850852459848391941616045233555025519812443307585730361314390199492823490985140282023689414957783757465358948710774538100959490322977791824822432197631037074588428168626496321079810363791891608217668514405282030966136025966082260282535618987447362521113332133357746364056966499512434175412815946390759532870489429764656393719108847726307512742906827479168995239963731255684086265411536775088911005305732298275177017215535645743151027145764452531472459019908369832094873392887357299175764615204642548656822189209036943942229180072326192116202453138389164730093278465634981425923255654678216060082242502577559634989984624672553101899280528785652057481013208724203893114379275161502902368892953993181814831787116583399927307853672978051218180495893263580024001026874698316842557634388862594699356120949480053694823758480848469486739811568777754450212814699832328834476131854291872350379162974960647256424589662448415595591821509835342858545831920928416827921014677112431193709934657687149431186936124857031527076404837892042361549855569830740478210224718204238054878715296697021560943207216385000633096053506670096073974398382387609448533651053502414890228666110542873572359856677975916708447095457129963796551615580242613412466954401036802702079136906171704963786876094081282405042488296946951329528249900529092748164034158506961863719783056972128110448697686783026889603955900978687218874322320359785922886101260738802072795330650147171374377107873095274590739710495786850704626086045303506718494912052786279930761253141332032915191519570001856641493948128087914686543190793802280314646293134641705670091204636074498274181829683254547848727294074045874608770456621284142191784807882594073424560116894808727689730745409206991348594105287991881593897491177811246738526146730254521472624954631347977270334240848963217508791384200280307355492170121389144119815020397890127487692096485173009512293646234163821015710365651999470681140040249990889111259006102356526265259232142495980206384812481897302143224748937169411221837174698047876911085188112785309319502513473013109887100903063044816741536410604301539995870672930473690655548248734346872574669878853305732668387947393685339562303349386965384137364541519496482999362544451662643153700036441972324889402259343968498012009301456206885544181455149637317184735011444915050067439195628112092857529849352995847241488543604338424281780648951586823088127587213439672129697684371093729909430276834378690056925104492456416921144608989064227687456746008988355978167613142649344588901189778617389743750416998557030483566723906723856223238204331869783457682265745128925851099837891884352582563996323665419156598752303128437705407703008205533403628073385728594359476163701374704894678424930698564618000899755941743850007523231156728861203694943206937637683956775556690495727739563750253478294787378166295588455026755581353783305748061302672624849149458363641375714314705187619246787600543757308186340718737816817046514004105934873897360803869456828455000329721188183562114894006845029949181111017526809667101390602842559098126801971429012314299525883127669700791493989082684446986196339108741246748145308549144635963625433064414579353157745633055885828522520834320645666384071705712731886533138556447666339347116007488942657873330930970604357477020946249347441602688982710037240009619142571288148050646851227916271439504627897926205829537968663229682786168155266567215617469135524946831010949208175669495713909836511434113759189223706226438778034370923921174720966772058341880261970044223136443821833982798686929639780523021988523996784078063317480903890715797268252764502611619725683854370282969962318589322985401029781168774757122753924285267887483123808616170850398667363968358965836476717592041756937872449216516600399180138362877100272021748416939837480257903107340483438979573972097783267997774947876960578290614725748191965836921173893502007911698801687829389856571165503321079670900189990563921798616433447221024312572403628974344406797326706157161499561563731910936774414191147066897833192366879533798950597558933910977814633495601508626403966114590882720401449005074547859566746294305404403456758345447450042772414887621365304268179543111974922204974458271595068289415601202297650407605650811355590149839038242049575936460226856100346757352069418461160826386833839551058988064709132563726943619671138822250573724469700411134817260639304949677435132274325474824310677365401827976184103429599924532809067506572853088777818188585857398776755766620387840275604643417929194670700687265579315614484752999601493979975750292348778741687017783933197676164644538270762573820408246388172267612493000231829096989626792592040552342616972163387416429612741612463745294334012208154040466311845350668541386397432604416622058413595298688695070313244961643083739673167862274469140601465692035129947383663977651940632422343034952358097904231443274269558138372345087434564617918488573818974996721284016873256859109736966461027043415759528953284654444415153972416238157852098792677644251442450829734126514985090713754535226526132840636209280235207262168753554174662394342737531371484463939756332019791572958722592288433860840801061837447877352132046102470103595044826696624424679696334945664990736508916518489536419924654350256390854738199383518008438471112677115672649103293109934764802142746669902193549040024979424858446341211661754146883096658012222499101416399010565393482599930372534469089831194530707034426166101900802582793321432549600471756016952545394058555305437598502739389553006126473297649446212887024821600435235045825161698611839627003476674340138195867829774641857405762797284985567089387367831133285058276549947604788667175614692274198238658313503323353398006004651355632111477764748255847053227670929488900324767767028306130678251138067679837651535884553379174181567243392857626542868990133864583383832597190403190075934347721651015278899904010091720937260545645223614238296688526520823513331597099095151116735313597249707671741587223016520865582793854269057852078077701887316620267465261038245333012348488061517161530790509138687458029510612936900542391652635798861798297275176347928038077737608773311855037302778930680007944099957692625168073454163685533602227553780686070501233573304957877087164735230751699290922817067200756143651700964160723225345563886061244910572890083600077993478723570722049653966483064208241514928450660947732083313634463109142328963978214037990292081408080009933333508370919412581276171268306715252401143977034069195366472193889684288858171586310660107076342619800488828826914701800867194069704854399624951703264849709640402555706445680136896502055540924920539221091191647274109627359781338510497093215279166229930569144571960617896037766182611974959643251232946714143578482227535480882363287511907559015311771111045494771374916252152598055500573428229570398048793610281172534917554188305323034812887363535035517584488839545918292698999193876106310079829427562688927741586350680887940936836547748720579765347573799710037105199310390034926175554781021716705898234598193245146887310171965053190643177410253891885099274004677574343147613662853008865942883749801754947044555655080260250082707497257787518381838489733335346258021741839341011011790057606831663317609650988357756200676692292729731730206053314389050577365289856088308776243147187007926545172575198778384330412189767376437662237185938572075757783756072769761223964198080118968030874280267909292824133185203477632205834734333167125665208155764068856090983409859040486841632746998643103582090332222560391657350571300673183994294518094445892911376486200745838634654617582315223111950199118376766654007836945421835846888918157472864715958643866820786074217188072693004537047321378151209834249605708764212985442749510737533365566169495453632566532589591640027266589454774123760490907982062246003570551139390603762424899470723989080955007191515242578427798782118754837569245482271431227804492469750124463135220229864286784411792598825230118090665212789079044947833751305164399660401627943893030830722985868142785215551734865435063552506757872396060584195544506019800671592272572675462349273394020309065596002384484420692109194495145960966356252979291488232689078352852305222216101315773973471328611039930367444384608015918701337810624716051416104012293137679960230808675257389816051470929153778817316063162388717519673701220127797666023204205359553352214459981497566358067047096221099345189456922682007866058334428819196008182854915032393052539590159575093992445847923139477209434344991065666547958919206717153486464760309644288816816302112232101314820730573094826432251305244932308877667335851639087133965898976956846336261286896868046013887545639713760146346501826240846984030194006622588642334995174574039373471783537966873875293645307802633208689901241228105898159861392784141229119202382321451718079133572891620464906778371298544713423492341935931847912681064351316875835385294389662207346802754129269715180153318806055932516306467377046032881990392433988644653463570331042250225212955805924340739187507404812023794726394399181095694092878913259044132725344743277227377451691203297208788349102917624009967998219342904798945091108745856527557862163020310813246174341314292821794852392001386557325145323132354117969042114511693575028675390095631276337729679519407153603688100162127258130089321223997135200219551869797335388939011378868052291945993643561397181596526541859536128204576413181203260349879536206164881383643140997724967573538480333898956106064982615597086714696014156138089779021368390151385770051802077551045386161690153362905786426646874660310729361613864763056651125344709106371116138071981546991539169935921124407111609145225799287209044953789525363551246560290710753749772152583614530582017405062374648519101458882799306257620095242331110543882451760525845702043672589990421530513880429341667618973040411010364643220273842775204889461269070345406943826722270079720111539110406155500272756672290377235152314532829442590683914553312441401695990217470800405709514647993113493421151984044529668859705381634173678026824346937289805296328071308682632540135645110225042764619934792148414019042298652491927091226935010929954906179968310030343479111653526219566915912541807854882133773156682710624874419650464360882778034500422151398506628842593730528430722544126899092961905425789186630394270563074525949780416559386109722099829230304372906277200895276393769703765210495094681989583867473966096387743615496911254124630113698463862529884458283332175556691715033425494444150304573493841632081695007119768471087417622981177233875304837852544800337656872113990618403128720348659927436842267050875603621856025941484847036661411828700636899115603475894066972909466690200818272776427209554757765435227562220231215259870194350557994806872846816195891718761465899737730854602746131164804966789913978161996261498235517174468829298218756562211819697311950481457498131828590100536739038046882134618174464268744222254473911713603942591993572183180612761421641734462516603361978373972720067019488410846208143984710344726380612963638092263703055102163016699364365343152330259036696385316284563593060080790940198332212811728688637880325278561979397890671006057241248485377367915334022260975881998005289700329352177404882584602575956875006592981222895726741398821516084277687055355465419264958766657154042483672440150486041714067445477682350575616912102976159128125405125712481831211836999621257240082619709854906632563132001971483407933437360115430733591407631739717954347193762010893228802480718051111356675899058164436144496598661483138527860760177690409167854391052809919243378293951574128218949541301467182715107982480904301324361912088158949066574569633256084688035639516264911297657400600332339549414555471422842048503976433491052664862938486740613081987888263646067027502577125088082028434767254030157497063066342735857064914556406563795668019850674485642913225968295817803633382519694480518270448271028982469480030295256799133435481167711887547183567325651098258036629294860989275657040036947446716929142891473290305910674743297223601284844561390981299499883775008383243406663228212301003503124808886720689592218048694239881126501843450886147386899571300334234581512885018429431684675038442641784517227960522698348477712063787168003749995348977858481469167354811027135996664006224648254802003469264031456883772690759943717991620021684761683580489869453928278860371474702467293404502247986363236917545388651323853267292217498852806235113721195973132139623270469782567653485774642637566979315943776932095407046347925951531418878138701276987174898424049366931598537115078900682695711096243925342396446900942684104059031271459322403732468014026793656184913329229080076060977336708163198897040085189013893066643425455724596166821591328631598150464343651508279250765371695064545538977143694346868290461111993654129796430838511679669016160455103689461746198210591883473802932694696641861332169859761004671474268194859777755863894917095460224268750411132560760308207326066078038670308539160560328533935440847954403109444140336099558416132592117450930300586283677972577151518163387775720471887710683103998652489781050091981999085828280146118636481463059898378630273667764020533578987265017347067643728360263942890010781879959179466822475603416191045485511186635081517983021822220517237580792833398604653899265496638763763266761922491430511043643476626984078613907635540559702111834439551304759159609477847842201312878636075963194878824181804697080032970001366685357304024207321044329132224907740037512755564379277034298368698176382748453567933362165787597717882392058459015465046682145019615228832327317710071510044566133627048054101545087413353965841697977204418912014348907897156816443630648238564814784259488729336439760644585970461014565061486775402498703777172106614598401703397961003338300589354608975309269469097262852926895183596135052965310418910456346580697155117203785554144853872911904844051589940361251710581038745391883277318478331759555083594063019635208976149941384464131707279786389317269975392547515089963006799381457005054722535594675659219490790719529430145752276105815270388105086997099346989228513466586244805648159756254733412791398119260425177385659542741252979571313243793387365456011449042488980274250160069755932541654811351795975314265788519022303911318519306111695861566525660824929286672676672339142831888544417594121435939264940219470135065239657896756930846693610722868201998785041845503338514877009926011068466611436703405147969475685864353163355291995140938765980986566544155619925503956123596376372626011307531636068902510254354692606333761590790946350978385361736127418724197457464293096412851610512050954417354982370399913911752750439002839857381702172299529032851983119729074744538663420200051518426302958731610410538759484331044065758709275761211625609800133938386495205101445014668893692903256065338483713066868742525941355532263340618944181801052774857172797806463798978370491388467442894251936340475612471640532368566499033535972457441701221256792092170504843093502189791179644282708636318185330729585274195489532656584418035137387341203498989269915952160169483350675911645219966695842177896006070252546022395001145666478555582036016286501677507410906807636400553206204250673366697638303442839573263521881327684248534234818338273919991127639770162357026280596094787883455264717063330541429950439451448176687909997268721198497832270409099070819793496845669266361254093340138791999340815116038892143953682206332259950549427679491236140962521432406255338710476575154324396225577781853377734918772747722023308477372435057498096057605329736814622514261736926860402921334884926553050707378728126872017852419773869451856153517466607663210003124465424091727908462773919123820162815957641052655287221423296041014081204539606310677305896213878136631274999197735720827067401801787319860861997430861873072303953296285879599149210876691649515412737198382997502725383710075625112501308696176667850688390448699757525071624375193897506609859674021970936671175297461138112321245781519228094569827552327688007144554067898863862547189656833489437840837841881663293301878019678886028697603253257377495724787612756421355996254849121468613562965343057419740965167255582248619293747725897571186296333812244203517785468271812926823212497787157862366333405767012054227957908233687761367554010980250060528080448846523857729083647752308992361289275305743340276186198606803400161939676561443060245697535487759165099268141851773215152151284689567093933371756550387138348337249051787161135390629516411620821368877967840859110863500882669531274296761490495860493016456435725190804293094101776324470998632858078306568534224402550330134327213494676985324866144443944515051177527476237588604038336053334360400677932149022361789589235636618232446832261098219991022334687935699020304320555947144039385768611034232915350640994561897707528930634859868285991775016775855070379860177720981779390830694508507508934226918386714005457115310374071274775713711496292277647924390270928493351645582911461426327506139689014953862663721949268610161585149930545891913216307377355544116025436200390814083165826455713441748858203090183704101983526651488673586112488548330603363259920519420512208288675824165317835298323066951271291929653382808013272894249844696884222899567024013417760754058535891596068455557913482775130840782998374592674868396435676804342871491881238158171148737718768583194733249734302750222744490524136877785823325557470601031483244182774703215502675468451500694042429576700867382975303465634955115418692636381395628145542037427145110744186431989846250217325320720498395248077768004861517395156657974255151756763593443764429831931810689979514406084956072477185709263405624123821701747399895261285109889151367441306300996814645207904956060095080690722501124065488708901884886854553011259338493296916334109667535049601759521891000839714383480330888844540088658136755466116495005291219622361305151541997606559344195513014938035860282189242233217030993015607050042013182492962003498873852370803865788450667162183838355329059848389558162798316984436790175287447793993067408631342200713229674459079564020470281004203913452700284625680543675111370848071562907070817764119315272110166918237657670662970672480180375938554268921868209592566753558726719391039064363603323717087884908219245237806612824446317851343604729975139114536454169954933352948132504357590171594181033617043762833798477417766401028607712363385807069040590367307220403664133251796064401810326874313094741946371330931914636011474465118070901518933352782727716922863126002617175535343251487135902611003595693541457002176452891137169344950229299972195536626492442937012309689266264117050446823617347896765152784769583493592537313569286303914936568432360115648577566351166951555371732748394249950232684440557471472796063049161013574338626404723296237853410953814552149553740364666607526935278983200980392135002656769420536742055150076645304966616500964985883577197002597208611665923097464292730869520937168624640809047681089250253873704429521270127616477142713155503067164078299770305569338333933540643569167835959726961029069913273896442997068385681562638557664195332305631687915992479042726899282533328619861786932116138949148558358664997609991021056507267800026198766730321746159865360929551486266405900942465648304328796322156275880379303256875819985090554313367365814097973853298604790831415140887390348731527914114708486868473773729941236794930959719170018450265808474763371486491196049766799789863592307797312831055700740038684474382784930011835317040267943060060789927661492373006587635981157183091425600040289717324398539049226605975029043527458858418126152374286133501577379419017568408959388713377531956973494938436459535358084125617845469709709224665877983635961073130573399606742335428802177961908422754843804589322058041720141827629063710426117412584154594904906325668064745590381164518153865636821276393157394501643944801807293303977197227443879795412995363072665641981607750464018653132098708305787740757417825769874270076210243665990227712387406847075722640491489873118317986231619545201616352859914640822373296261451034692885744794943714513781393254898892134551155602760405569236054618434153438439907592995066594391699499435148792486380917596356389043754714446167963313308338400503422538735732917825979429379279687471341950863451368300044740795487604525503842212641892881430119521461435660666494751125042211304609991944046069023684555455644179310178495012544591025062135183013106601370532784156760466912489967907264776159434613909871641436756482615439024797619922053099242515592515955345646517833580686480603111918143294301461332551904943827127670863541824725695491811889393285342429401295901573817339003466293311327953735535321435249064346633649666506006932045495306076144546814218009888975606514155520163413750568780315450829741698623590545809208729269417289063438063757545167098918314192189445853330562829362777335960516781692699052880424372895708954494931984697110284502612682009289644258906451607119943992156108523890729738880749194762295790824069885366082240075134572729995293703650394925947210562685599160609477168965453726528254629706996025215146211387069297880881744234732313392037923329947790071421224539390977402990402769066777891515972662162058269277516917928073525472414361961637525356001854872106970035090710495237294288494721182605224862545197691911467258867049263206111313888117258395750203894190061834626041885837563267626869691704626896761055225453776495614827727603973122543193563179261146050988685272047933462482827263482830156074302105338223882964772377484954043315847019410867211395448172213151820902099816757264839485107614389216583313552311757012797872504910561075275158599614356048308896227375773213639370145080501021261018475816433858721316865295414198946164675163018932063242335588559901431566196467180178298173175962489549088650330178663738238114987935695718531156921494149758106975074140116930161631153426887097452689365543537013265162702462698998512211584559678276553866890126778492034285758456891365640781282201798504170568103684491951938888369509925103971046389211526275007541206886079854816381113702670944416651091253448053145064325512069664282927242009755802522816215197487118865459755151298274887604512213958685609539157290769810590361354795379854817264991722758642290409264148873311484551293462752382824242677400874253867858735043154000225104524529862356985486534187963130097099277660770615242698701817116540526346810147974933665043748442863670165683567098960627089676446716818362801662004617442310051179748768598642357386361029832811374851036629290734494138365622906798927311223311502780913022509429314874154995298021950650993704763750495353948328323393693036534671726904153241344670312711535432520211263820989715158903863622480807442427828152607038136747389168714871073968789237742137976800216491708549913267801385281219869666971724232035467600078946282066385150494942420633803740092775002367542601387915404442713411694016893399964962378156978848412554278917676680361712859719739007914954698861796776722833223352223009511966043038713723739231758984983361656081076593330336549839059549839158040061345969460223170067732129949938026798861953930034028162108884185613715632627340417234732193092968115111275462184938775714937367247590237234783830321341352402262225408005862226043241515672482416787038149619683082674417969776889540838798487050234930803615871148615007467624594084423358203962963059107396596269673937744981113211107668730556998675597037678222107680529454446790860640420547026797638388148046693890436246807600302787441890553293920145289052315229860931664318709008638687223641342553116757761131874501436020312779265041307088755819440800807998765980731666565661666931861873997281580535405529991043799882193580589075141989262624045158777210849834695721501736833137975892369041025880286205992018160845100953210627099358699564494632546614071972462704395377917840817791413756843273736320913908803495642857954249883824612681619548247179157074288238803497682675019059251158742243410981461948005560843015551588205752650601933316365387636532682411739014569905660159104792004927164170669068014319052396830455760715876306166582569378243523208052709523150639620024137546300031016634611453391103202786679667740879480348929062658972641032509579983607521722016795554713468404835861569632001605612547415556536555397834897019778985493736280797360102782719712145196728669226098784576585763576976802052435899196823168054738883161516758884919489225262954700057018681527130036493361826514470566164063159629071726684210002491990355222912616772287977662049631511315230292642043620380617518513461220060207883902551081000971748386201613851756431208229195280349718718540273135030948925204125992991526024391882265889677880331557315882247080195507278708165986435037771437194642203681491024756654264292054716935692669770686335365815835307737573269278900257361820125163193247979428092135253507370110975686262532042965831342611132930112166554844301016104090834264065923597921979349980632256158134162022033544916285340184732523812829553060242787620067197477408431783513300093174042574991057077457120372772169373017538820473633919767967002654974444834390455344494507133906659115043832121698719358184565839491000910036117352114863917748411541888264251217719745415109998104241735338837020221321367010607933867738534314876135514411299855462379324673225620089254989300232316378970061809928126274894373040421924139500637175066646394090441489168766921890361064774263342351305026381080213343075670726150431741390088235119434601436335653306887388637446987126017412022629405511269680673328274201805429322516267521124243154655156950912980246970170704384137688263809310959073331913462735143738853566399406914686949884991791070450997831531406743140314446360263556226438185070934510580376749033005198542373884319294229360229315320536135533977400928163215422117571078481105447284810727834513969396873031532753359231658165080915952051246097038411532351240160769561773827187827806462054737487046912493702005734283442085556282312285238816163894301627784221099759789856673683854736860169751074818481126338264705291465254316555602430858963821579511131612548574367415957893907889273971674677114154128996668971304388478956949859185411867109686553807526542060589643531256708299673903598604619839470013217663202303549860045011498285410945327044302496636070255663382402528043920246295190973215940735298891887538956305896348427540467738735033992505553228681866722536084030769808600106931977447046648017240817812113251904845296909446016956838886924166999683110300516165493781785820800096925874224484192681628484314287632095508808154818085372305228119924125673340729578100412952946195831377335879884556783326548966099683253270609564083553356718591787209124031822961705941359465974940183687226654885362347115455268278267374347438066274721335589396762234450941004796148218771821548154280040687163653216062401466266315111965762619928806961961328251421886610000839610147186629557652190955136858196433507133607268342206540640473631886126544463499962387722507775746743041345392491830487157553322537149621116995604749725104125644656673864421888242364382656996407306875070087244007099118917400046720673364678580323449836294437911376185605485867499797524781460386667390473083958787896472082196359815955763336267580317414452137141191284591242844976260849042382265396750027791739488432991514607686903492703607924927280986814795182995925231246942932542500457280667163669717688140124086267900575989982475629418587679195571343482919318258879260598655244349407969038405137373125988416344156499558986475222336203934986423260000680052640326913599993004872865355662130091097778857754301950820595350278808760349066440401232827473682911244198927973611284345554610978287408625176870056750731537011434428455074118806385617727207627342600182178077722428194685065869906860019338187044923095325452458886068946553332354293614277576225445717566179879034352700086799163304101524530482238382411192731970750299045493402993480365841100530519671652453736749355553211681799428759420037327467792197775813846011685989578379605046255080329087198324490026689541764985769461187102742184176635364381247953144668125400377147533718214188869746347460268265086068182968677194126022131668455637274912196544103987980661189015712264957371422410798078706688459395743781733167155840596470341835969970969006413289160845995902534382131774231437048866384167240944494906884247923022561934442626384135001895510554113920205572510278798255069327651075912678685883499155370574614818593111127137786877313866882758046291483247143397482248627572083431834076156437363498700507714203455635067617286408296082796992059429342113375198040840897325454741087378794621669696595097271319233829594321843697366704927213876576337977275202784025930367117033167472507036932163908777362013029976884717260711340362078971299606378795068343463314618368004695916070374560918118636013715397060101609502420956821546283301455227820050467844839085817611717791692730561437591560160652872031934397955056031672175278575172271920153116321593761154879212307635115191798502497754592524323890643350466899717567670804321651079095708776833960998602412206037693270327054829703731979736928299263348278445051691983138831241065190405936408960741610675447746307635511610285116565596742119532301406148018588371139594615848880522296934236491826898994554966175490172943385892952767228363739062269077433942026463440592330871049409954251539298698955672799194934216530099043758247209324708220163986186996793484263625530862497083408772627973140416888655867909981358616700420449449555511083826281550882127608455517618474363983351879757832908065679870765062357981037867582610515275551181402756019991996415640425915070223297357127426034604291495268025175620010183267468208109462663709897609911270893577967564502941577417334858137351958653859962219499532246659235762343992625101664315651926196410619817147942005329124509045563393364565761979244846624378991713353716619116864568309606315599419912995276823605788904919841434644110607384540679720041531665203874900354866298348378763221106124255317650681214228577708911463326996527226551611300847656444535950643233170277855092711659218437240710337966379302920443334938281921415028018551149378089723190900099436442983123789912058273989446882973831048809988142804092359830367781981715171264316821319328359422395876782303395798160246077734247984928629518500174988582807785860440975922745972213660658525061716077319508551732312943839350031902418761030201507037464069717329767146403293257413838590865694711832746870309928361082833638154715200419179966559911100941456187918929051739894494972040138992017909153855749267646176770683273267348448042515094617030904099584478337421498240416179536021059672473064685428484083521975306691841340340280178254418565678574932788875912499082117672263783385364606672422014423312545671848258246424141455275064571378437113865811009259066755679731143058544810697175668653481637919063309926967386131616766957886233211982370775566218378963559116642178923297315560151077402453089221946928871372016702528805465175861215632819807442331294028432591224128350986191292875731171792970262136316283022659089130431767048581434437070352524727067302653408298453412349815201445773279124378613434648658036584142518916217841621692111678742404972469157377448034660110726554885552014413561326452750419850382285875188959757166620163187241678325779794961872125152534458010395204965377371991076931805873917591855539979767244407869089483714584171581632409190949619255466111601789580809949943975440994064891761523797781061322441574274592420720478757148885913468098731141431594843671553978008767742567649030461910998692771055417072143949313019332127110135583208379523024725191087263543516302813668992641869165303202396869673377618531246869717060578030491946181210617450997610657611977715104277338296684120007801119641988500622117498681609924656188250049714646102643872286570067534276249910075136571680003003099274684555573162113652993850276370030328382738916199831772732623889214183205887522209167253764766486723945331792415148163559385825983218032914138945956410794239288410890412333255258826574266884733128114517638690444902351273721502550574696886378306515989617061859262189837750743784960106022529591384342803998041755484357517834424132556403674781574463376386546414477423907375321016136090433659640164010884858490962227493611756286220621512169680489060305923286661576353083354818102785529315778686604376381091372162563998394412459674116630718358049730115048736657805474438954672607446135051667801291534915561783998635831398906773225352811533290506022356680284985731421834383028908945526441905602264392494021350798903645421401680693587000501061363900326170251821478540920645503189846085475648790473441284282018491496352675733352844383746672891226177278830125922456822752412060187680084879535850465628326496759499252756022190788931515035246191881915128012051317612092708401794860470035384415265289560399283583828309154437061437589958745925137226368944064938004790552512335742264792756443017413378668918275234544500022245152560187533594593557544965693886264481923788428200803717078976056967295430494651564701480200387762806724867610427093646047334184640385961529817824786915182080417127957204393891173597484290024613369196950839246709119332730461490820802976315997402845793158860201914096238323046709236155848251801671603486596029102334363918722211508642382215504283206264064033745266212592606779014193891370552375251755478267176295106730349748718115195748964354469232554319878625934991311257786871242953923157050761480512651007895176236553630667329514952479368201257545303199508114007766830776738238283169776562032059405869458349473301186822397317210281564908512978206468733869933153406288146889759854070865208048208739265820467946484396249983689375637735988411701144372160250917088182467899686064685512860547941862019572763176111519460171702190601337862184554662951626913670750859781036563644783297221977175150997932696069812093340295940670483612185789370131265019489050737563471437479495572302161464262572127843875861819019355013336174006525377128636663663563664948841426944167926983625081268058540035097749910607045657017995527237102467382235956401577996109502931178287214514435702589070515787448653505131283922649122537177193494439085148797905282768831276535772629037380522989958313659868949037714893710607979017314193736916973272873446683385011999827374565860971619429213667542379578487369355948350361738220033133582758756011881450083158288267492783248880983256205998379950683634166335894433945822623788458885792584277968568517223363474118933432418024476576928292389786504406932854359449237103558422094783003640516583869697810897774228749656464526870257203542965394234642991983743673264975082328149560888142841992888633609565694335770521649285728363613205570789002460100238099325705859530918724329203060520127402778746937615391249222046954725964999161061464854362204088968503473859840253951912202293333640451093096746230874966959552519312427298139320047135044665190750069651815661393098076836921890437464292235139805032067785291000031123391887578887433391693794697415727021053317087580898507204285908521418313549417828405721900042826014034285474128302391577637444459160833932824692743359146587540402075110279443381976579981597225301862655045172049804772707553104572801477084230152943055490196058667932750580205211832273188347650051798552038073664561752240623935996438181604550479756054165763556191635587232935318516078520280267915234909111759500186971412967450382709758698794508337999705472273950652495669384346896153444318230436143736868572530643844249909023042354472456997972983368243440748535131932450403407974873280642902269809370654275734283006040150095186517409762623141684585011887985330024540210795763680502997180498744938896299074289881466586014404086382740163480227600256327467031272215147354286106749931958531003265315345741304955807161269220406899267470245388560632655778138455555886040819104025143247716114336696806385734767015461489383599592738812484299628912956059660507862679100978742902291967622274271922826034800990119992522162831913746602717413480932873379117413615470721310472240828077002980699827892507822573937683346414236684120387865222904563816447045310449238817993627369141331778546945041748268308356418046557047882039997267630635549523570729607538491358887854606053529436016595300011138684626518980314754750652539469665684367145077693059005734088804864791693480407317051023761879330904932848657884293555295964882841956875549846380154000871610136836849927496862653572634626732766540775625386968630106587699676736918729533795362945779588635039886293392233430504720837292320612791572508649984090998811711466589579996413929826553688127999092779062598610635620304504714483873439013381963263101331746838768796463334711412226976992385878978746208211770297897106753371546269684899543037562810534286225668539732500580659736124803644627714878990278132287642819556791712910215249485214309418528509034743288608329791720849759432548537711149901634619838923248849158057793808925055769597351665175858302943497937693094117944400978284876661223564689518797757929532112449073803903639970896563472904353011612983431361260714232214992778804621460238213348884377185339294383089605863319163215801910963853653113986111589742471116437019450441961293266070781411064253426486483435887566892184849544387254174097675296088596700116424031716901821698219205151784221053831623747790193826311849127658348035994023878922611081507739300698945080266124126008514822158064988172498659549307368882291499331255643130426463573814422748484809655611826684139483982002443455370694449569970134442596599507955591422423531060414349904978781622633092118115878114609545881319288431817039354104086517240680636949784623488239347898861491651774532152972733190517591010890460597526040942076503073216798850085062022427101665448913582204554783970619725404942247162956493825926962200221670643693917811580510298781914774067652027868890215048864360990160466796578928160601552822740032540435371337673414528403089875226437522370502274078541437429259250529695063245607672655784154338838438268451567489996577418736316211977847529067395183880627887292893245601441871532349379993153819819534468453070658941006239602340451701846860681414764337936696202908621435755439589154059511943941107136297483632685962203192721687515945187243238592692976057376116439546512385664447551632494858980086993887598844960057398085112273570813909378696529752197843558435188569897176618486019046415515111991187726771695012809457944710211752999881576154581451441985822075090329953801705875144556077787160477874301235280017763686012974885556125706709372693479305200125350069344820220285407443007547921411150976502748590136067565815510168716690560160746826970134313828512184792230559953918274962343466306749954018639677892794770842652766090798877632122457878968989812819291102015855789605210539107278878815478619154381414628123982636378146575779280450529467028489701131941081170911021121179124183457985868441527489039412362461333623805927447011125567766101151123580093042717057337195651868655156242905984812796388274145941665936851814467276986006985688680835909722884928613613932157655579531765178966526117892942494242402209249356037888019018236212143045646802023424237831004888158849079369167860362757928790519663085249654914689888175794599943241132750065533901129465406350430430816225409850944494954260742407618229595077516372071949024937558354490936672111583418141479582191728188076234842895586701974231772425876410852265196068984351990203177129816484725737966835129901058336344837412464397973473041516530083416112308562541939284997440365385717116664637513542895686750141928515177252271002241371163440678912080404304976697169278883458136121351536030091986297008253984602541508249589808263731108440554549217371286934067476407437892767577662155573528307581715653704168309799166213747470733061371835801609152716557875030763349659588660345645689495258235530274401974837347287279154456003234624665514919388103500042130155397321958383835820942663093649549562198359666484047985150933321944840796308801325555417749421144581411257566059594603133279902672759020041909778569696711685146954234424216211533540755056219631958047508509792899538288284539277078834249417327613025671859999475074260338965136951097068711905496971905187127912023950150739210810810502922822299513145325287298690830601173550759671076037169301306359363289681694426499333452335957786293171015890359339126865180274138663739504947908203109717749846283120487766163956150806335531421224400082028540062609099884174168165493695297049917005245605431907107743293682137092212833963397485894303210904298789367448815285011368250604901663611849280811189042238063621328184743366967391550948813761434350199002712026838570021552427903598477599460815575192322212175239062424488124611439026655183371470297490303773450535421830042762440265651370133565440317353946303285771364863685416436349600514721757666169508392522856397594763252362179969990835304384820479251021694850097606232108912401226648639395284254509532988667098075955084717302237758744607343730670444099696184254469370106114368064467317293103657602436844692059750712688250426315779469967576847686176283488044284758418964665192477412231356743570593546321041611098110785987801009105127704918389343591149008484213714710042250502057142282218559331590100682089005947884351379736882315558070621391689393029727778289058958346178754025521727688570830752211824052968527979808815731140555950773782155798286573809210547068506554819188173425609489671269677142281277076012697805633763919416826605613113788460004479908007604450766816634842792880338878938661480577332296723714541819022986322114760154895769474399794786465172906062179000692454035509805027512531004191481048351386877884883966430189056369407943316549763027284368714163403179968955665843860931170520297635845729649317721772384309861311651719018625308703245664665635517453402432721199760585208842167959053524177622539775934866115698497615085571460086607627185178434712872813767531130213895888364012692831444427994757111816885408838747738440053185517701654077242617905235282832275149539630863705576828281397048944945420694902599434090065779342746068358445604882356282516599166927403174682956489696780385025359525634085781666210752742687690382998396103292157236758094169840601254221225668603732503209429003381254996679803860612819830305985826714315505342354243195480991218727319100676434176982445537073816842524452066523289802011140769585669632227280721534672719363028081188954297346971079246851463284465853103484854603831575328143197471784982251955963464847788388559541559021371972778878614224425930785393147123374707282843194523135238049736480109299513572699232169939272768269730020454566873021705859731147164592930074607862004488076245980302402216653558050448942643923908307609693981084043651581410053339477729070936956892124229599809762025560150078489312955401309881520313251618469687440460792322951781110286982759085489882173362753184194036705712771428140583184189788278166529034621357143312906601514374303304801671140115238458615893829328456979858583535195252697397953667496079681647137836824039819904350119981382788083166275129155782518895638457259606141393452368889989396340641377983531329514047957290882706248756988857390394588424898756188360380426091756299264556552264827033058126744407128827391190200150896576599018514365529198505371586468790881506513197993848686916137070144138599461623889536063696523048381683810754044008181024264127484777018984563329866195630441335594786742187442713520768706155615747449602589212792463800907792985875105783721168716826880525070458251455691214532568742343595731173362096964244722348550312379674635572115650830748995154462032314301972322424540013978870894941487159898727201055112600672719997999494337359415540439949513130105276186294217615631896916059176595467811294512652987276619197892391978409553690097264906243256184262522958165970774794079371630105220949331553519839232924246064527027921536678264225153482213479423300824777187857694865345316073350707959512716416558516696675957286759810374270475335696847216120152309431019584204473383025260546193414249932592349466247312943852812347957684746854217004072651645874755809944999709312838780367744203850480014650807140587430403410928992093851903475400693002374574831923872953916019758913327906921309468159292394827094359648778268135425156844693361624386094836032820210866342491295621453246605321245075379471432591556118816199279322309236250032015925977058011816940187455505641668640273601486915313949653429615060420746803657386726591752487231913185928972143172565932659685837812958766684415588018991398070625340775522290900524390883801153730821275031387880552325381369404707326758173062131120107228442658860390068594428170099391691270478323819529431950328270523768647392796828165385187029346805148861291333653728970172943610494927679437386701181436978390174242879926627413932040296407532788109673198151668816431518128899020841002925778576296593322731432642017290815338050359181347683009931809529186745552241321051847147254844824900847605612974560723647478586375840591060535089603930295658585709049666941757047461473382545958799746908313551405732188804970392333008493576803269001140010420229188841319854847144624747644341013320339240149196726891189112499496327650912560469052226366579368714376191212132432401958842466833154659724512654405120278274976217897824695279762356592099126856108924544006342066423219292052145163592536513494248775328225617587519061632700364989190325296906246338443267262727788437979767065838413022153735106037178886185155072272290923714093530905546991607938581652512360551194172575149965968448013842938968925705302584555931383524458580878497684900708339831161288228353724500196699605801671004851753288168153716468567097019803366978347325734075203407515942892159896024784702279646815646195181985510211341299057398785709109280248572827859517759179930627015226629428910275358654550943593089280920983357837563530366591385714197995107817550734974255326495146083815211047541218946246293215945186865536733527406098040522461130620429951991727493975416293132656873156235224682730955481898794341775250191199643553809032303037155128800007182091119645177729582023286050043008417249784645615356653024892688527744452047037663313374075057143459967942197505876530860128661521634977436527269283644212955548490418355861078264762294583610988833586358811739271053878032278733147343003827197046708567716322605676392942208896745781666309930302856004383566138802991315667993883817146880057749575285518678427993267831941112427727965734280799342283850120822828901150406518303941390773785140028723818029812444564295401163595273414396081774026388744084888741225870056993306693652694229490841961195527603433562151621613520451355905163028795606503639208721308033184313490820206709502233924746276542802183612651204058323763112481115544408891569238204254163439654276329301146793796464693083365241510159303517864171694818867068590926630783711257248949292746741304323621535949564302090103997691299136362618000832669706493156238166108180110006695108689879758240460125407486161285170932558684293859717495968914510788534988019229006280553853572579487960679630867479036268257463096488407110972879765829275961566677100724833413816308984053729948063526198716730998242860440155610285980678104844567916802381896202596417643375160977186814416361782447802547798969768072895315921800400434204805173353445225968588086746207350077830011237037411629247356549155196805403984999387130167527732329657480813253213502556517838457691459073045194363325284509531624503596665148530674996182542880685818288224628918488557402447234880675594906034649523466557971522226106551271979090771319720323656136011239170572068795143476196757551999927144124182663074170452707806256680792711628058175249832630882652013807086580811850097762105165742422783774887031282347433755813862145109817314443177704915579655676876266485097856032056377288629750317736135702320367487645325735822659376169768185687374002215108578204625238452349307084704572525922233671524319679935209328858047723249031406600733304162167568995007939475202749641839656664633450597426060713273634871979822304083065274277388706619749683674035737665570229391501949642146762494572111833008161451856461299946059952689100776414293693825876140098867285952003689538785377653024845049944301095333874002428928390230848284436939354527805282976471891472401028474411222349603860099676386866753989530126807368107113132234988733943291787439583917015538286194427287222909331725743721369757736078867525840280030507445875038579827661682184902745501908391565853046822993038903552099339861853409240282210464429020668475013930171505042101671426268133771737773142294487132636200613055596045600593142989866488924978877289176529706287580032475321915950279202418723998777019582837397144061718754814609279258130601985055553226477969329952563214107120466061206857266085599427287915971797560948306348454321396649416810482950798892678138811850033803046545636659995604819590366658583338798889723968712976159307068720296458850964824704900060298046105273864038916945956649247312019558312175858464461855085156618776058221168292524490601044140210127234124601070754845164380946259756973401762734440978069471184547832633362569138716524567867307542425865232213134227792258161595950077856733429398403621951709528293588451877359349284675074856734671481202058080286040585433062248341009397400093512537416365227053723886232844384568241514252343976901183171393933841118603597030332879580752506548973198828905967783605701819512556623793766614824378107935252571739938072220272162213607365195982471126840341958870377243681731815952229017503325625634345752750254603075499445479664589130974679157894136053200685623891561334727786771960921925580664088313530894120978831784382505185027149831128838531148220039682494869474314648431473416816492060100130271916429069929796077063381912209826741032537316533837640003600752238476412804815318157332338469624170740362749298820939542072041288941359224574159664176964525568705388011821252012482337578872398991072240331753828743573802721768560932511996854237694326514266169575419524723509407968422602150968211269454103936861519822995014287564079764133842666196762374061729404375006305490059376850357077150893717242310636875875445028276545630510873471375309468866150953836788710706691545105760382420626547695608514857297513112905705675734970521007865337271586801178127560210771333057400169719838127437983818764753854090720471703481010414707724204581516579725421213338459012332081335546844797459461204795862785107947720038225593209440725477110271849105322263346874463184752424876186090696167154818430741294195849922809588498825143465771023074331693879405571391033780704980986174257445418734899253617803140361857644423544837723919534331966970970392739496495323630875585928802588911108068819166822567374845288041691597163396413447994229919774224959331095368689336286393725802837510691053114293128990835986832437340720160250902057864637798707421474441436369528288701810562900712731571193839960021175041465192241340188573311758151019212505562107276695368322502852400503212190346033282243463768994384904232632424297709886867248536390092637654065770291781243333430795970685938603747920035779861510396045519584407595145533453692815579343685940437558188285457493343106776587400212555166025565815205533773128709390006195676015060745057696184043603117846589324548577337233039858734332487773400143787898959385877933170398973975852399081960334809870281144418839945446309099425297526960144921195287353589235650596778209320466962277491465057489215506564914390290095825639606175104096606625290792235270459335752517385636693399990866387147474217298385294974609694064426090214210985381749087547417561540851422508763598645120691266520002015435106750109757528201596198048950073859261900434628005952849388963941498238207081639567289162180117275019817479898930117922821330405673746462479684689504449177753347481114533344309829325859743499707332042491978083838605020007400773216024250909954641145569582120138184689446632847218756690059563413828511989421333592393854167469942624817678699270839168482059693378955036626185217587912080165443347416862990726323978267453715426213815231322549508066047130312323342736658507899027957527127905047859067447623202691745891307240411324234256706757900283855634468861697965172724002153662016922923691471244380092003252367092709077568107198803196352347962907529389210459075347559095968623963356150264972176334709032824676449919370971592593265009631514762389830689415368307964421189468982094135360870571503230804695616286590075861823556760074666230728865855368980076379075415389191461241071905255797603985398836570765955858046390427987712903280356099235727114709322532077548332445263813625032139764287182543209613373666107415402987867275087104561529065158117223064754199071779737647781153397696487142725732882165150047538918204808549876363020392915455748739542495696461261768974945212740953801457411740986434592944708033935878905387484582999149508562947908758583210360989359438028246093611337718154841661185724018265157357329411192952793520970417916715761326583991907717853203257665558989529208409846855626259374341041529465376508047255874094797184231781886744827871324576128349359431875602042188022344455331752566930652693591763897937492479479181513576695682986789602220303050754309946466734878852122153309785734376575638064428552811908987371956813923920210808304372294955061265266617624948390900422129003035699290304420188331587187344999006503436433313399573341274504857375696686940874243567688339336012328749287611218919556693350917152728197314768142383577711462077479210750056686779836645322959139931979843198381941078524191251369632951631234621104982226104768216521187785548003822106757052750111518800851000333552548293866472858541450308856583549011990900856390953739439179164244611170107534573381993947475497347791878812708055252593186989323688234741809580701404142626755853495699085820840847519409595918304605698275786615897551432338143731462372160406304572335078614239905139172393418160861333387836831468613291384423473325863777098915515235499169146187848647067368677588256918569756230377713149878527801547142711345645432491577081435782470197980576658125106783209259929753481748402530985175821126525756907785618526130911220240718017689522427907546531351306605395415363408178546739620538492700904305000195845972895502568047220945013292508408179738425440433983911035439531729478385897358955344343842750247175409705840751413144793783712373655332906579590184770970108738919069179821670188363245076313445202744531019120294242336939611365245196453791183848425713975625450387326117500335028225222672047502297720622302504904989634430481683145386590524688951276976194450125456874281526116923279518857830767816758583240140305382292695737515793110126547550106979206294087909533025066003697042698677354285544551160141767855767806893042283634984032394243276073385647789304465387446583889870400700571226585806973150383911318363435497238976172402213771213418932737451860048433469384408236080374569449791756480126983453927566529768358914620184057413339310783719711422012291974887065349118467165512898307029120146237276859769618486884067504845759797462018255541198351833332170577427527060135469410627385570054637388826725281929308298776114783896661613752198870429924909874125388026321584600660500739845123988193819049224150194184914790633009255778354626102008375822218252513685299051609317578466321356624998286222258310916849672356143708291936318625093770711851837219710757839969913458548060163663184927476044341518204485054328669750895347290471808740604599809920562545375267124523371408611841491123692379141957686264888361318956639738697187478465175479873148736008952791916534449370496287668388150653029139145402844788047287160104460433166365854619804594339889787211335681368648253558292823484931421625426762594369791975199366661468672091249524536188414791733713993879018500405448767010312205981747060173293212566823542847833308471775197831417115697254438688500207038547965667877895307154150135238994444878199026581153684993903740428765968212311292509090789767998305806396359817912650748514898345065908675089440550252189542095267017752049949112941708873669260504839878381535109964504543290407469012640891406411271839435231972301416731370940176966941762094253974993073633775244576624704740043256343991721169764589992747153819369005690869651120192358909379397259638735853153405960121542603132784060214081605465294796200344949561483408025039481014353486123573693359841806800927244966467114449198475145434199448845488582895003161896632446326273826110536892805252712590529472850493306513674314514157206557902590104210862099090812221752496997887550943890781905853363316437468349502964484189875469050496381829992285609499681697493135723145489774464094541366498111453802857196394569988478791419921891906645274412955412036245135263176432067602806035834710083839950654361761181017346653652200881197730089339284804196242806645533717574872605646621244970674268873103657167586444650971805637671697999981122152016484244278246313752257920774098941054844462325321245662823621629225715628762291407033559801478883725419238732318600751968614995531375972488250813212146435206548014615273782790768797904881527706109321878601327359203626562997148168904064278149180142719878219242700065696413480985310393481014388804828185227687970089360455818319817297254353627315292803819945150765292009165804438589699574402224841774743793296036300162105595255734572350289976036202521124773716476586202866272100691394894585518399902672171851434885340682147313292843400758556731925018175170003767866773311379515217834893229241406871771285144930872273514598849881687105395314457752111127106239096560787609421485396026308236358413164316924737946310303035306085080339693889265195545570980527994212266966746384109166313230178897883242901068663481134716584609648117803418065567722329177542269388343111912247260325475115067622101996468094053742792849742178901781883201818988309543775962665619701909756866888421083585520024252298739436904891554462884079157763917803492106125521127826677061169557368414373770717397388750133739146480803906754407540718642621581363468538059857756152656438498335349381942526177780196133584261317009891935706132303752183411800750884327447689783852632053151377266034651632916583032557815002525303411740077227140899739694722609700526820723121500957004183503133138538748912332533864753994662264955387691981358327564699578417094428641816974050076360267775939876478757392540948573398464008936278367861228376066434387266614466929751892761976611459953007062456831682713639465383001722952948365223468086287676767628099843084105345052599200623264034739283379542767702910495011771693547204016192409158432285573498857254772309233819405583276275104463616619940908099848497856267036655603491526134646602290210454233787924558865199510094576593121822756071235356079077519852253898947414066548336558913454087204339179567478756092539835873217232280456826249750495051283212055016479261275018519525874256195775267954803156997641930649621861847198990132344702621146340424287864474794902377487065077335536296679345433244308559682263931528832535741429788592197678290993723443293519146506558901852788076811860869848744097299958488871972825968229134900528783088366902259551113671735842018534930742353683155919488466769419634622533259320509002677377367835200748694105040139965785912384836243994442135820354112513362790955083405317079324627041908914144695833309937285534698302183095473271234608063004324491042153048580010369737321997765705306130626552118073701559025317931376138809984877759306518334801427287043174860779047827008320163596297168606287294604588975219742230046054643335679449200739827975143599332599417566753136363011248915721312307537396764710330755896289994565010184721181259105610403964827872220901901422804887313852281316285983846302492228238968720788325105502672327234705934669072342918380106373562843305545231513863787222046154365841865017416103953319590365984660243705480132871177334633603510087713700893105546507211609308103262627489772243918420514232730974182173474601129881967453262499976319491731438516737194244778557181936996657262949309472255086641509421797978632243261790096446503662245668610886145798776769815275471057181049271906012516535663704735965315225952099731898023372027995738689941719136677647398385800854304716405553216993403980709746190953059664324768207072823514783710576619817579224589659849619403184691056970741101214430018353671020327308364592128942450885246031553085522860336589480244652159230387216952077077343217982530498631911406410133929436447066409769869686674965907426136856739599425785492139286278171229909713030590336070523978016538327774479944965823382807297100030615127533043289061987687649915269548260759413450996070287734555100413022095309918258973658276553530879169072474063287819436283484495076280906157681493311837441155270099202866096869989047153735100951385161052769088445927370737487434065685163772713118518151801184121738842391099165427606745823166369524251913017107625940618575188277948634368751188097491292530744251257401243424978024510694822694772416518913961493038419827253409344308038310237894348833326228040488717927249873141614863345395521116274679694449633536336143709429720468046812522609445409561308613891951315373311742056083878143056343096432412885682528832331590894721122957633673729824877439048049504569204470091585779586984645739208126928749616069647873837168576489516474632217593052847676735232412281063561018983329557360983165996023627615260484169365496090573794750441260819199987946384121438169308062591639686112561636479535748524584850401616227751151195584312891652690666710291257481626262487396732987425888512433238318924001900324280204758430848583038414260348505638040875020185195129126631773867495312816738591198087267442717700871209153669803997011909665509144033414728116366787949625670145885546053693220203182516750188367324847155205225156782328888798123773252652647971496846337469607405469164112973641831873861034990433305556778934359204211083151584738902460657886937689489412588173477907049380471552204961526358804143669906140143384168364690956824328348046413254946165908664216975012194899931864041164492766329583007660579613668118659118027948648373133114903793675749462450914664689315355369426692620308393201649664617092999753212039962806028754135474263033251069314711454693031079444230662380097282449094214682759838555447001822461903032694219627918248527750039051255421284168871128919642857675029520448912820399955398282539743572057619071226704421699049658804681566738806506939688644956364474720664377495408612048840989638640025692591785012777025984394228854233619388085173170998654928370634150177344716433536495394308895059386405367506600302989729033435346726059349682401938421147361909355841700702997362063580780687839356475648162155925676853046167423764120075561353612056046013468448574182880087455999155853412801663491539987102200252652024191332417069121862418130820785412201552809993332008548519621260493726371974537374967319303518351078299233247587488426378317133877203910185135368189855726592850192042003072585949523887670290776148629621793087391704456237249450991475341958223689306744173902852090230915035645482995192693593697672065984963873628298700888471501283849627337970852492294660674506968299932680208584664702235729829436577589159555604344201205454645661072115926391609932442428740557777951129037474059880360363769208686718483162960088462236684417298756942504807851523572097374996536999276169193959360268413123311127481609429216001714763687111019438471235347771659914502887096138101402593746130695505048553485514944493859101974043429687756052323344734337760354746526338147302923289583344972573895233556221715922448011624478889877090502288864478991643937031659575994096297723769960985143820957918510509242769219141448881670809628793405615652431599530295609715883318731996802681650980467490835830248863736153441587335666683590304699256514777392298462252200000531592030020658047598847805542583368120146196573057295049119327397509160625844843469563581310349327415588574056542912782267309776059994289141947616318999566697937691911428080597550198404522241421418033485128722368306422380375455845867249157844807815368963827957587443467642600913360358793379412546074921072064670706883017701411334656630096066804100894060771145959937514369529941165699801065450841548308976942071383155409489891237947621672844222869989318220415646713977503989093651430251833546126310469787746660258011084743030921753949631415249671013825078850565764908263667768764887506237306723381272928093107944948458201052902861902362366662779818265584039469991707373458234759179134575664928384547647001156495040528011371344541817562737757806203036701316621724342521231935759526185828672172123467298477871176827112193434418508798418606022070871182975204162599913177356476372676483001678507071429106989314731998032419548091154866975936704862719036929363142677503716319627631918886766016535464904851030908941463251822892315846144248129606603041774003839417931216042615035280593844464515899730088234988998759974521034818459756243648877090656165456358220906498231069408568297059216353250137406888307804357633132564858738960215712088241600315021767076155195182687516278695505575685775557939680139341349401051900461022409628062746239805968460169836712368201326394641434786119647800966415544489924188395983623538625947656366675392141655973580338260068777078777926295234675549357621645718894244634551926565011935691062327900981086618580678360443352487241090895420307461229844304808872279759000965543343407737598052355088756893349955225696249719652543480377716380388996779898980294988656969119638604515906653810924120234253078388394754319869664958232260872761654546171200900334738158878451981776747207542487833486919383630373053616839761913186786217378474727269534317821645295604133291410092076240840102811996181264923002309147907986249357228641492122097053695648306435391728533024774296472609481822343617225311237140384084265991790835585209889583503251551477022417614990971765048334123499966095739260155544445799458838384851911660454976521051554070856328025981608503463247115195347054118467589364261465674331467489338067469775407931808122451688465569290500305387206887279139663660399748192373798570128424364787216780014895881123250351455081384214313326116444159587941989233160218465888485940273702593377835287849154564265566247866605093003186704728184463056066363042993173682510042261042869146818155527838943897230079873672103194548204872012006223080442716911323860092869159805926327978362965579696468873751653541412910105166219235518137382977632724923528727535981473820288481277340171964710373031766944600424543585764961408570549943365627982692018612517516327689833742153472299431133730338334197424848986297975859749728992394994432507049128192352020201156191177956985614878916037083888739065284248817809916409889174797404360630152958360026577530643771241610997982458471165851286407820234322570228653510059826681171608000954059358797196870813997607706916057698102801293929661150643146863977906814638427166503155217317142650221598919408043223393630788705245537014087568003489571542844718967675720748126740698720153465932221438936857655220249032759941788230938152838001501597485069888354592120059758996625851750528726434664456631337631696669773509573162931586252911484165536419663261750583600953295594368801180199724178870701767444742056271629070972528325310050215248545399009416070864846512166255438751395849276133669420370281448733851110663963496825161555280819206326264470662856427704983524168995466628598198020329701229967728589360710540791567029545495968138272366916692202854358208807646105895771521631255685286097278707137173257058079606488971716503112589586832826797522951950887307062604338432063923401938628090623068017442911495154654103360235263990795242061218697268311643376176436641631210943190688048296034173277440077262792568500901215142152064198664214252671840914895016175575700089505951621278450734852423581522239097860713909140688631854319280063703441422184655851388722311261815700144986859649288799300758520638997927323483086779659210013901913981765236994469952447159208909263675451256273958124844267095154839204384124647786294005335658552656648035749784641290498650906229162854996606609999185540623937337463202189425176646733802337062432885823898918469853728477940352651810045104684131909680086506467019115482221365539513336683199915385990053882872238375136740596335950855334613780447138029901619253990966644365285112940414462609740849967663779345047797989600152776843662500181407074638323772771665786793000833344930205923466724563285213488397579302515648705476977693266312918673734800296354177896321888480230142139529840109744987095448578018045316861885179368383254433902302235554032079176397116630076065944789178491696906181385922384784595732727427350849683931273822542211969518422019813990149515002465912891769390229188658673519747867314531477337538126694820408508328837046177770159157876862901301425012902269706624862732020982626327573355247030395340394919219239169496802751211369528524594648298521545987795013062544552860310370842724690583765329069793072335771214434054129072792067139033301855888807310146278728610221457992746396189133197176571418631363713506790105756400666727852683310536946225094305103454808193714026513189585017405495824697304690084951232612316781861000134667908904240890254460607919761582109124990579024882472393142250278024819779919493665169382339849666393645756452466889317392876164529095022921832751603431309605908115284840900393212707002337069646621916754829508928858472102265603427707880411048410691492613554497528567246655693163003450538510109254281128376933360089060335183117491181667535925407530642271201937814757990524498694839335174151230441074768626851210095110722703096941188319540094182240194770177171531778448079767371548873118343358284215238165040230596712293894150806592160233514086573424654010809588559594354794238385574898888160930146075850556262587668643125917643235333505163672989552124510291954641651629779685786749993971782673935185412644151929580252749949343077098272188911343150733169313348142804874419841568001458852188421927623709194197444634456154270612845923900837905958996718344128496501138067346820933288227608175053067586411979072092925781640490582371789554323641797666433298514582996509004794648528288246244411354477070535262812543768620911031629648373724539379306933674521632321639210464382735341365751703154696260182064741819601405321301169022031720948727259489181306848612310264791083680252363093504255675500534925152921799441784354898399497349493188983771019422415389407557174570200640192552411311582977663485437231996634303375920479361437593960124844177067541933989682945878374182151847900196939191799529626873233785075093935233410179605764820847774961376744270096105531664352992018701254638210372236404500469196204962653811710393125130893108767052423188728316785449092051866103448432468806934709903178839188872786008736231479153414160492527902663553678995525482135208679944359425338076043288169945879503476086992726873462226597912175745958245289817474173526508813889550031115646665467446444098927407447002730649675969565754255264252985316812476086097793113952959386817388230216968816079843945926791089495260733698123603282758572981438645288325266726630648122336221898099574185461358503677900575245598944937352802629407874408807473576533580007005854864142533062508171100865124869635051038092337825030223801987304261506333038343144971577284829794591557240202234961703315164437704490904288352388587719709632491333301596356781075052660972225648908624245544673852332256883505937517185038120510617494328708392432294728881837247012463356312209536350475585164874803808521247454948552831281733319496773075106893120402677509649949850956447523891765980900999034951713744690725822358541479476681916554011764106551833090420496496047852606928206988334913625120639966773874721961627780901688316779449279345109743586901180860341019371816832165384641439090874602206273312858923777090646526937349026414576793912480063892686840187761307772614660119389030836681988205698690203287784821001920131097455548558747618488088776277031999657219965269338913719367013171526840938763108452577908256237250134305456883906768411759380757843710888064375904997471347239902495885467728380764166623420749043376467666662895098085626084928128087942659521092446026989289678599538740992421585290990023874834915299409972692772034664324807045755983730350989295680097032551707444251587378401849791855813415775977570478077187879016165047136458022727701428059854517163839153970512432677515918366289977751091470917022904381488560952742676803257574547678461522310268292205949838915340862778494863137272068574816756751864307713457352722458462500777031458572673897704714051634707242588465389290706151031787861383521617794493375853261099872164604899472878865342702326503253710890749323786065291156983543615729108694013638324631080044529535268657361721125203584334181044183573926933024607715936664999693328908916561161484408525152976975114724972263619782398637872446534116629323725922994608877430821179940233601211570561601058271849512777094772156838860313878966032239890566464980812510349901297339722038795923325321377190778770206514402851852598419848354342377536363043622859666581324286385699154041970815814162005161859903569843897848047030101855240910615795359602050016104046828771582101585589860607368316846655346551639297544591334119436705289359462027327169685564099743566427552388491582292286008487426391071082323013637018947424118578398691969139572791499842481751665284938784251991305847176992366924112347159170879733536846766164783854857456760812426565161824254158688105930269088108191736485638304066648156124051852991552949538357429887367767529247065808317960037430023391146586872378001034601320660919917745950026664097280625274665303351469507395475272814308310352940164291441947729245956181991293814819845656992690678329578495737026075712951007888705885581198369337567206302901622151397891178457142884972187043727418754057166427725490350319849502257714843843834047473922594956866190278987130791068896164648674423985054795971151894532700086930585856832548753519625787247948351829285358879115041532358003108103404161668660782041481766690047528084041511728886861466012890773370175864913895308905711705315053573701248781149420983765290125561443155559267516218021766823932299609225473943821611453071890964651661604017152141481316887945204117700254706303036816046532325451449963649395935742126339801294321968779687436741144659628420186301182923107286552610855838889356398060292217327407865159372107135710145898248882175615652231071771299736996687248057020354200952089216813750042760092271108902894065812071861701461713213496314813925820474411340230182482312880862004495028843336658582045668338090636510886799968864422100068705032348262845151213393694011404467111511521101704398624889087255214307927597946384785814990545133352096325502346387603181688671542790891816504426733180901315173420013290154672287897056994668096842723760610101131490238170287883531569282668092976303490542879232992092454452166233759062397417312768254722991413827435944553940560303043638246390622545358036916768412218161009017059243201928509263226931224630023204705150046710136613913730137905816613368576037816395438570764053081450033465201211876699298413726541875727157711439659057595649044499751827009758374074225828514385249752069642533567217792855515489110194888915599596366284020657923918446209140053143008711802698894777865660221193001697499969732620208269449775769689397748990135000619072089335785182595026495467497220600603439720148979591446491559953744865762551601706425419816442569947445209010116686598616527878125691518256329041868037135704269902652789950819005237106927725113708117795066680717973623207472664634106284730282103536502897433671786249257900978529894868083265310488994782700135312451702905379589757814472914083056440828466779630777392440867470428218487414242603092270071583611320928061061889666931356838678581088202146631627592882282641613561792366865320274805541034454366682479652527501048299434522234880896864652966351051397260084548034794504324549717981726106464873573003588137924496499882895573238991891280269111124655566429405545477679384212235132396160152209437200266001773953914724582414800218810372129635922169894832434492389495892336722330798029127995094545975941173493504827738907897718184944347275728410020819363707184041845141698338814118200690941212048569942469619251331580798592097378326850464554829824360168602077661958086827090623220779441126407872755063542072541233587089062683464298257782189271107317807555832720831021456235384870333272816617105030274568190799580899254584918544501919609446201107130400032674500179135332928519195303803053959332137465777585738926757513116213995916013728964152447799081858656254592233644136806053817966057815237452013262212864522938162007311282074943685948382207614300729351102709082257113447154786703699513967301835903938590060072923123209279486961023799797379091986780507910300036232588174456941115734574619546064154878231613833158849482854723445102873462036081611209924334930774231515639712554911624433832946166352816553043402767879020639013287571339972074744046988469496190634477896920040275036993073394455581165375340616390105033092053756189426523571948465499633089209717456566870983438961827243679681260771504567536861047230136349115067297848469831278610902763815248448173295049206737550800470846684863280866338353091173821181236687970201295070508381791537401083321305928853494582518665615750678605827819833743829666657997538534506613747322149555357513938568486407220799811088553886287615780950970476695617845801847560847680968495258068926241801342537904250109150138604653496505777554993704665463929470223229820768426012084080063692147948824451159056060102416796107552947834661913288367948252407005118072923754988250287033682114107116813729067429264543292019562714318306888246725806105811601326946274220404631043285333836621869793524224539710336951736216902954107006893018439098532800012205496439151938163336870764299415834496468519121517032949385348472389512633327166365574625159889613294774201613991366741809898947205288523030919733435678663813830770309029278582424568865489646327578400629496129139048798015262894458610367528815436781291408526055756245412925551762613932164649582527406297129151877613910829937903891195815763903717292538574800757196206267336120102611919231888147232514580470804322535105438600870869875802989082360926310186238481822040861449159973726231808385815232675539736631924308385016716786328420339961554178240189524152008402463846803084255403568057016253543271338226929696005022595948026068423310606949621069746488366782909034276892304332143899601366787992144450748586966825414779468193877760389452036796447969479227979031599044464639298089724488480046094345688640333983341696887182535250878942399717565075639123250936210990476187702368896156470781920310883272969020519697516111836329932167261904822664452255722758700510811289179385745306150885446520591477553583571014956914175183830092332172067277831665761910968623060101209484922365910270348221355101523332492143128070989364982765442846065199143442080545309122786340838737631324096868015165049797732417509782117456067066667041858268100401512127938940705810222381306017758071928793412429593857857140178958746261857722772176320170342753321882234276039950408501159633624450783155604504330678441548905529188489351045748431163556852184103580598294144257935546119196263549929714823165387451124731727972554545897752516626712122412380751257059049296570995666713983568088932138796553371368804211920455754816587444742972761807100088090881444471967987572467913039765216920075372467118889838021206197933612942939520809370911319673383891364631886269471069691706362883061764728300120711344738489797119091117287068873995828972037481514394810406919386476421939560686128796659534676420922247418282248169794147124602238457983248544295099337984798001548411106038368652940142443055973714980320850273969945963397177495028121859388819058585788114701959152856442443402290312956377429055331854904996137470085137253652364552105962215760454463398992513461964280366289379474470951677864711181665458111033032125913779243548108595103355208767309210397521098729527322565670512548153211173422445756315365491584085492088279275008771940223692716959341643548608416523885245909271380301186830350440267934317714502608197459473790819845044831518555149893114216038441401787699150476483438024666911232732228641580734750439586712750476943772163132004132748123238482926751081904008382659575820780417150239837523808007033518571370739781819792457410117591058461794367775704046082244528425222218849785222919676090265283604069172067842671197918817048635550849389517746383648250034733166354477825091642551729328619806520621453689205572923950080485655028774829678091228972073467737540334122789692916120162452736441259574430085428419763878304290431474242598438157550828763777013547971650286152993218825652677683804088708326766560724036165892203976063647078400792464107955902568472051922600934622199838007623026802147625215195354637520927482165051567271241421418368312682469883399683052369134060488812209615973049565374139868374609874959595089402227468638011300232474646632230294349767273352204122974494881600315526528328866097601400591851850104191309054345475847603377847172430077496855466468400108533903008182781091398443465159122673557669414898414673056866233395335204800300547945199103778534498243393207679871683946050114644478932281763271613080481702626148477455811450208887963430676714442187384148454811897336760048920825414653272604669781546676071834400053492532310537573740625001315793407913482426856088046942406628363086930095981792571676021745014780987091345364754438146432248054918429512110793251631328157034527477357888519285214878291327254345053674396554514647739824669590617637088198780187571064253960034282527619700054246357606817735052786042307412187052842617809746708998593938123442090434380133359138305515070321735556745117287626066055639202649480328645248310812041006589106971354495397003877115215840785771635277706651418926332606768559546606395633660765776323095129759708594714636957718291753047710079651209376134727176435256130749636213726670545213432733088991556976147297483696703584512361189447876904374560325560525765944535733474845382398483476462092074271679337041181943422335652193195664192584091428746365669391103036529675760685805184874979889448679566154251743261411734674257912373550239559392004309353928174832735784920354627429363644937979934623753753393242825196679259928815811823129119178792005767873949580539626327345651631633000823338076472007918650817106056378601059480264654242949425199886503428310506194895775858595597865500807047208125106735292631506044670665724198512363687795810563459587778730689386042818260683320547557208277299899697342899109995478538179689974896298877583897924377668128948109445649921824854171215119477412418882823533958239169058251290989661181620890119850630580580816420494910920892147383877982258695353144252097503929769829846885114592796564061098016046769494100861146622875323019151507941083255557962168950164485332524031833863103539070814379036561876007407309173957828943575957266272073075242636301893786875768669699214116065826610839920931554992482220492483443894739065499000223526534555735139967844663478382411877251330863983023531134555655718524910093197363654351038257276160170287148950788171626987830592973367596501360599003678252458243867890286932832742559346741901989062554143282651817508201007337764735315454113272227661160502066822035976671787100125018291642038562403731945323305555385100483002480431113403803710778097381236565402571228966934977980314984613406043864696611885168609482161744745691949888190877452146387236095335973778367829294391236365932912559124302983618102293011126780773499554267913940767228701159128309845290854647251635123733302572597961661807944504427723844921679216268804620150358200999983621188786905932064240661984401694771957271739435198897081111778777661900816090278362709630681677924060393255735685020906730534526681882037193949137172573267329773559068474997143312568266588644159090965283507008759366590798072939464275321985877224292484700025915162855116345606189466743731372119821932464379246436749197243051196215659222364226479963159206297249937269992235712161817433926263946300367431781611180586429159849940662391162736584193181472163649426662244191675069498075587681112609332340049845038103272097163990538304482137285501275874255861258461471350082142663629168545953947642951241158336942138912192681941364388990432433363256285872728002529937003894006235971538993757063714313794980814054307433255764959410634285540943551376298416772168289668627786780445167014216746125259659417952724127522383891352806121639703236227979639721575538132657138146341647124893728442026228700211620739238463739578521264707360009843004509700951181057944168265474446111109424436117018636086839970062345572817962236612903290703510528204979592269942871693705323291004641789233603572042103556782593814838267307082938684101824735666680907661406309151690117794364571315275300437057695961821263575524832081346650203790527392284766201060537920631545337962918903298555268099043505996245420005606090330593568307687091682988027826374087108633283225061393331413222258510948326012036435334970332439003156484801261297703122179112436517366905450243348665442067360663545223405634548521147272426359523942080916582985549815595119086801942577077185791157290792827032756556679657216198475673067914756197892588153874624519376547195922223313611260185200150644917036506595226611717524550326056954929226029034486005748292313302781220785141809161423259716065853295627327980980180564941092706800549812420470881789122491288036353827409195561735251596331886982446372764320686025383269154117975496021014069307444010650512199838223327775078881319516280702201048683409296948570169015590245731886877054155163792611663109540286486478584253447393304950104467817059387923945589254616079867029091660507587892850082949784607796204320829051477401304820033085359396714585423247693001758932379489330025448201465373602449155898737419424532679306025692363492579039397504545340177668648501483829988151103527991520706115656390075857132208310902188167883570511512469265863871330944611283906865089904233911435351507780875955534808388571686853089843730266727734467829335878044238309968584716741375369363206695676441779152403930332708507447513376141414264087987104043199588988381635177585949731793215579478461942228050702860436753960039171990348870984378109947032942794529405981803517605540754045960985334572327811647946732584987418594598053487758618354903390380756604485070835609197257553592491190784306042846246867115372663834463999407483651892963007261608345783792551387884486340163335378650295117135029839320058191326422501659833946223392658058100906519060026792882917962521896280117499996559298894743209315270161749761340133809987602281292154357625968422433820127451027104418349127901901460535476077084345674435295783969267745772442675627890524169914999762239786445870328744059560307556980509993946037469781240621852779778797278394770717704452026162501818222060964974796782039399083625867047814598474203437146355041267141484159484559351248169400824940293502614900033693891434736343787130875323105193574460061678244638424414313997331772441065734626063366287517777537877899295965868861631497792545012460086856477324154348027748342593678886004132476443113722036840464337788200718300605925818608008166846447184774882736391819377090911919572753428285390336909474952968257697677292219182503019474654615251306681213640144706956344301599012463350647722319900045990028562491712381136877854127653688233853207668736528797768545558763576937386796222775398403068333014883847462819453849111057161588102974160335636634423283155680624594148626771593793875588170530988768285961917783940827165119383171958152063383460624685407697948501845965108023493723013997960066448303139801597388334073775519182580003233140424587780078348330889896958719153807249172028752672821927514744383283805059398535424580589929168278459409579853240653474860357581098737307754730575242902373852358685461620701811853472721688090968571692938389476073131902336912656432130988189691460571962913751051044416004463670360782250489967232692667979861753624758982982792220774558453377224012342923241308048510913711002693795908403836988318475237392284793807350088350938766316395343217451543395883853230305507615548425800927639985223604372146623428948946498369684337517901956323953672946847110970692969300252169293722910869728416258019002899769128494029861091402886524486283829678952363942908150327242688992584461269976818485645853394561496431627062177536290064820085487274002939390014595928943730630569276463858096553159342331460864402232666507061196927048381999319055185170294974085941588356644112294090059876997132868036958759602820993070643215305917209368301407895598669689095102286282598784137233727931261161319667188641901509990797884093846295618824834335504483577574652060922305655379331045914429213056160025561890967096103938433322508591498626292422447804929109060118307576885015844625350734973392151820926730068332466165901811908569701907142108239245526189413525995695740756389967489364937465220560395362732789002051146270541085910863060281899579760536306776931923510308267348811312395316726694730328021025802478962869039089544020288582003105259544810754329696854577148357357764732137833124835198822905932230772684063160997448783769616781584687266453095331153427619338985751240598098254718951277715347037929074185118630265217447583120237442622062943297086086624625912531173386902111075301659376499985297178354332014000450720007522176400969344319124556969836245302463252540346264169908583655086095351228712820588018494030941507441283040365463244941283535414196595608542481171581344491237499102023510185936624575601427091385399888205637330968572468121579634964803201568495441946031620720031654510370456805909763467542385145457814982880079761052780208814476093070449071500097474683532738567535349292799570373134813652973766855492274458335768460183141905865996574738904153340845647693777683896158658264958088045579681226365794300078527334746437061152704198613825466199140063526352707040807534007138549033062533361017614488221454381447679655201267821927418454656743064112008877051190988635526526880776612545161117707489972802786752850691437825072355382178328958245556982795838879787700524115855524390234191520928130242660274821854592303344443352125265786012455227990422477456054164696084602084831029298212663260705428832353595276801387079782419687257600757778731882320730526948913194785701127475541134685929088278801635397796629325442265901915578303953075189079010929675443741399068586889865998805565473973002968003266335310153355806957113487742256569767327362537324983062890070414386527695543674980284862517680260316188977371416689341875420772902832705925439965999713364672000892689140373643968365058918544418601854882045750853237287085809818946395506987589776130174634400279851583157932743953958128079058578513826147228227100416581797929995010484098175259792823017914067237532330046385937854902828265950328280673203153092784593860132628934490629584757328926168043498161336571552346894455111494694498338986334873253063227978970650914080615179806117546858522960407814019248851673476519074877374690212833091980359090016490170350220339267616554033287093622344437133460656471109128439770510704327753344973659205704392467673087194691605209071213762088012800494033524923790002263170052484675959685052756392155599679683603082967552470997458382606172516156055783160731135199215833922507573946242067052296577253571348522554990653064998283005207594206871063867594317326445466362555881794368757709364140455105575637880252940173507731696910119381843374880606465121984564952980375794737577675617540893318066187663557196930134811604354028281305114166616939444156150301450168920174029490011031360031120663796139283523772748021413691309542240270464371445306503600095875131398547470301948247272801404678107311693994774564313142454447113474955416301285803299791112024242926615771891799690651993078828788319298118006877491795851786174349774843357599905283863906949799609202130253999821329073288241804361517365886214578906062460744599743464400923318226260061273891569255552864757853582975833870157105929411923628306028276111263799686944464787659041589222286975100398387784826747567635937858812838361658050907732595426683195419359879109466868779216937117704970189233825782152039628016776254852263185240276116452164812583723281714481117028845374841773789387735085586227608394291244837160223516262879512841187158387732911030620782750243018246020544868477607122263709154781902997514269416213048276711856448254903006120121302340625402670751412072120235100882194305241125793312093725210726490479844570130402753396392364611554257234514171220213445930171599104181411392389561993883386477634512919515274264864832241337876017165026160258812454194914811992172888405735364927467359362234617671114689468596766552116080747950125218773017311077915636075950300161916237111605870000478680772826012692635415497575742985272977161694399763907022935801708610195098084783062533873507452680986607535357939487925476002686807185905290241489646115477242596889462247850786884969714479971318995898459375532275078723820084498123343425754151631376448520490293743460677550338729521606922846546214858079348887243033335026655069481021194695516261946841853752259691252381058649887039340233458170210695213108668540367901304909106696249593098212719269571041072400597030882703172912040288354004758329004406946034258330991427300090699682016584358131976375807597885448030240969910648408724873787318677144781225799430645456276741514082143237680649191773925537143817727139651745986692878434670067429972050730658006471395850403443867049359231184159713506162059854346550217262572832719364357615951845084847453971993494012489182793900971099279560182580722971807123437196528093108561920667913135092250292237651344682905409967869757055824196940445977564801724453735895595769021827349556354077886556447702857506339921301292822689177083711574786316491423266915024254211129338489733534609528968699147713681634458579354088868876300042313116766141123115117332441448129638401581353084769221288659418553251662249864860794115117340690362746812058247922426510837489709170918651644791257144484426140446465010999575433082586658054127000613738676025494922783653137848702302082673221537106859542445946581790930003680851102650051173898902140204485653361348331052011181031134986789974965927921485392390576585046436641532557621182280533755021168104700159476502244516508043150286102669052157765965162414840266041266333962478965555604003599284829503101338085981733948552440679509849464655243640045575695923351656990721727649176261151964124127345661499466519370139151062254838842045918567141121532259275268816693227032716580778397939727761656777492665528282080849580631453241484801978771896016302843692155671902089357653603423086101673193869655839530512376540877392999845134045793430940830082059849369309703644497413260446605868380884070169410570752263314011740046576881885076781419925809122796226116239979616198539468817464625598536370533418526725806283797632520449704310361482487484332158793947972888937503425863579137897480275751590203317626655542566778217654948336817208334754232026316965546836451627523105720602443960594426198396754288555582719169598468990160258489257973550682036146913029291269791901881757078794604106822866953191600216626754428995956126125565256921794172183897279280259256191820264030818045466451171257537144884504762161251845274474509471358579371327704276373400664135564760750752150870925099927950572434541558302978653272352306347535439622224450355003713867788447756799548122291241548821236930335950222506335104782366141393977136374714912383913012026702949824050029174443496452279024579857789049379957417558088416330856239874442706128220440263635667352386085917402212586951807275179024952780614842843202017869383608471843652507386274841471021391097516894594264187888790404179004451433543637907124064454535697528140809382556077455301887329101336776648039540451370768322530999705976573808847225506498825235760649499471360500616466195454860351892877008804880695189649883932080840503686581768720105596650249707539705945733910871493715986139211235471526709996031472282371031098076054816953160877866728411101582353552215021250680191752135534121861203081133382151789550751001181392715900894391028307953830624097368423362270733152177564174803048552062981418407868697355861126947961488296926309790679277221872554731143722328737682843860526738797364490252915857634009067387288489573252728484460160877780784637612292159188762512904448445115662952155121980052261257161596769664504478821699509270267816196878817348077494929239264500701434073245543661763378823067391832865967914193583206667731356533565890972667873787959625772846816617018036921375640889673647603819006939126102182444922639202672700674517945124011166893730808739157716773161534244512292186963796506601940738656581472006643016185388726682083103775468448222726509164466111879516765270441641094286008348947291262762438854532615331847637805386059879083774572761191080440298853237012697073940703358430963651748507024614752424601183023459115307143230956278223152980502695334002365252075500020936604432549964384185209403018062404908171795126832008318726925486950811892446857200141612502664113429977797028434976073361235170303317255763019924568525452833139853732439010951520441855024352737582860934796665900916221887018090027161416525841369451409630852909871611485248682636128023727814190624151177615332982829508813126045019512354706161236486566943352946366753377890077671910788852794514031588291927332787013990695927918977178188420910232122542875990615870432531854513845774770812003412857916417875471005410211945853620737108040708576670978448176555140741643499541151580524370167755944774903750966724380352593049733473941241219149155730282944656638677634886055699748770708614445339217699694733116368451454032469592065144081715453856630208124353940442073504260731180338571239666947303263529323004498218219727263465945441139708711134097929461170981652612058240236109619330275951767394944635933592708943246361131660239876311263356406333669489904311473968272035624796882687978606117592662485224488450697664012450207131899694612793617854610333006517249157717600983626994197754711245696304420539246839541124834109641108847520125762022719569063646889440821363054456340488335100099232097642919730324779107320736879682913285169972741209691672997893584746930553509720012592571424418451159713263712370617701532472424334383433271498467622349091485375804580491570488825371597939539884596321751654566989185156474577490494078155873743720206218686487405002066917499892342010013551241284740712467164877995403931638883044511799309498053826831850783903030414151398104432018090124909508432883710219486214574611017608650594205907568617308142230135007469858033741673806801316604845189679871785082087856598718552816708298489469298077784351520742657258748837093241589059328287668818936070384353165223453418171580998867192055039327802014724726103714246587374861418015341362514180070750496879443431307333685766252436568659153645231323081865996909667657274872724372324103265691762023582900472657668908178528882420222146364014150488962940748066501989828250612319798272265948672680598117666495996638950893304502921597020230488558273974019062504166244499682895135968653581426667211526465859936835497012300676408345525776144629715038618783504121352848389705650385316368180940095352580840811212212231751279180179394369030286854462163956343857693387209794969634282950164421570459591529339673275597832381807589616583307568361640585391158050198719787820252175434971212539815502009518813639473687571120696390487169278263133993477957232416003705522318172786517572050400200844505523624415387997066609523784656050179199532678564210196994951580621164773768187114109741835687765723367986562011565858354131943014871997410039060932441423115127107416063006102938303227901143484185926267567210120513542325195471370449352537217477487857547951334890568839565625320812801038536430531051276182000036243141240959117987852418036871747017292940309035292586437162758516806896309903875851000193862452249964223142218767517324896534851913722589696677432612687220040907620872210700899443128317494554918723726889499801728622503237523973527244998045308358877525311468466922939492633712160276915005382760532062569848425552941969002842789394680352002246529237371954511302998687554448802641708119228353955648480134902485019319880849385611835066895944678826912781750657160056762228844099259692430002561111810220306226358703111610656619392409028595429735499035784651971768241060585890856199463499297330431367390330124178533622392495374203060844038977286804734680932775969566534509064763795369484744661069398904342555122953340108661947167550813936557203408905336640718625604857415427751775278998276207763622880957815737137650652783334927159772111869468139299652096832059235272282150188884985584052292657324299745627934297092488136501032769369709744170295663669592384908761791603526836332392040278413234662075094077788146105814386072325155637882908796877465598638548419561855325917894161756845444000523253431370541093015043914222480873311993932596005815777148544163240239436010009900456183479934727439214288745949811453732856666372589686983427072824241392449983461485247924179110680584456958751550946101200344527030547948969434780688689715572027308189458134392616736106697505869179739301747031723144375318120582394168087349591977415339285105638719118145970271674690178180263960654678546878562835305189118089122743663453728647151445597299662252727530211426171564653386733945998536464999003296534649808970544452608759959628749188580682829454688594194041632317306675059504151563508955196963055653976837404875169963522810561984303627142915108941584027431086811578672173966657286556615932893810016371930826023057006384235795053549433558765660157861323719087644575820731525001764246254626254580503527761849217054707987344536523716932339514828653806256898578974965682098932819244573198235034551860912833642317456147123369162220791922233132621947477834015884660942107087082543806744134408326097821159131154714031901398656220670183101252974997429999570414410270561879204366784224448989392328958602814454576736890978057438508706644835156512506184675447989701349959065072090642936984937879879153811296190313632871122790395973476831297556492790241311957792019403747437449301554137435129308611408621540485809470069151333208505282170518993812959477396823073099186204027909497837412272816779179511958853473168900041822371016930931762852375165070600844530240484315692852610079580674745905490874661346964029663062891098853723860864674438111969271041135806683420520863482546746517302929665974062584932990658049978789930264567077244883804746264745873731134970811894270733228384485473444399403189254426502083596602472471674391000419950458218744667825061430858282703465896167546305911601359983297420565022594622922652592604739873344102049902552070099428546288712415612602771479179674981965735712162927852707510006752647464339727975459683754472906181756928434378319797047774320519647704363135236792273503334459616257232838598824753552591494031301006423017534088776419060075635454604585109189927673172266991625709849594854711123035522392581060712106573930195408385477058232410768359576285687031091596703235460881331871130589347292308615815360585482316166739775916225066350169980024586902057883046960387286165489098495704530649547799416489045835385829368534715891596904330779342174676106699915329101786839769070051031066845840383842778257865741483371152992929876409440005333909265160996579608978308613522455363898024632446155242516111491344915115378149019277382240958913668650496363106289663864955086667992300620566094051183026154961958381735836013932466892252767971411007387280234968795464791307469111289296573929085995800608807496343876356770410024116430192574358945225818318346507468720051839181827722718473712077908861161570125701225388827633264809903778355399514965543330194109280813798812286288762973419239586989138938571140300000272234402551565703533601293891077525224782828174814469992787804770646535063284112939930839520741482116237882129381822038384088386047332347248521699955418835198230894775306377295727010804035028432973540236888384028287775291604988657186101104168374857335367996328467499539023466600616620287323700943436129676323252834492299986192350750427164142438152607527784699895529916471495178299828771085670131281365242975727450882048119087199859625374745117825970414649239993930641805236511636187403772149155752549015805194207063483607490157531998579466865568624683416816484841174429703082380432745148634925878481208770813772178774739977181611887053938931448534150960690616259371434442348295950423014197683033960947939041906486328440813614594312028508062426931604461605191204286958739197936035372113435418467731888623034647333261758883053850377330001744030566907170920349030752345099964625534983413282310990782421211332191855117160317448341183483987140913111508363423464438116509569476615994281497043191057768094546229926283509284725585906180193691786040333966389922893916529103018392499810523713615499800310017916144273275855010074082155621395707367809928492742162749848954017385745322875867542517076545498897025977068790769324558168086245702868447282671487125882827405955006876334347307807256918854277416098930685875137079599218702085995513751474370850576725697860862420333008821578214865020865392428571404231407728018799976409341785714966660986788432443355824818571404419282716424156856109666588473373028555434986236937676122678712021520023349248975047191560825481221153010143522253280878405864286937015218950302439746862162674261821134000112122457713388651461194149949932625664034124022507189243909446312155083409479758922877731156914828406351506752699563004480881715287468260236337048509550078857002261566931176596415834359092365458435599927766440720391500600066915126237314191559811134189095282329462574878347480091655268457903025143664296549165959614155775010995283644176783301384460958584546885480787295358606751773129623797152628536317979463985366399324208640325384738068583620626939925402064343212300455873060364952738550786877302106481073530278692078489006469253467191566881574110114814300358750942097987986732836154055023069297864824579694630502672361301054446428856603598355434474069914840969627816075002737333247630713602623940694082895207571628748801898641702938617808517646538492952832111103058781059718028087459037006061383731703422113658202381157387427402775739714505833518720469355329376843268217459003995336377404285804313300313847983311134155557430763196727597559971826101171069140019276931732372524863009739744070189276232351855488380124629353299421672263153067270450702783422469612885622395690610453400982264440098213490512315831149372378076829617199410958586277331983502946027347135095681063555690179238750281098871688387562002335464415105508951317260336709023733305905347457432129764061331354803837906490761443339024931609737697655396271359213708945292855513570821658117646659229905762125283021446420619827969404221315776920459578068828485559382617727516591769604421090517503794061546303222847635675084402225333440561336615649234049539438586693654248350713473976194241882403103545470957361574618700061100509594948897810908955868460855706797501161800284653008185125113320326709385586172782589970249460096808340201293719674637325385553716089067234886632459597349292275293497435748545839350857318467222724498202323692239848866531143623559257130179291173356405242333760229816229592311005593476859909348273175223901650235339985402637948949145581204812601139945501457631560147107521223101493135868850582161123514311712487559739956505059178101438556438421872450321991760251134523270048407965045228375734137284223209227163959804544935816241596074197954010714492888616655111159720254627327398082532716081598328750923724858736593406709298637250064447542836992862351571138703297835622154513486207287010522607597895166154576034613069212297417916180799915015223250575137750641932598562691306224432907064851349224962446863857155940389407020001667153935340018724135840135797058847425232203778728762030118626598931806418999153088279065621100864983687544189522241710897763888949092234359499861544003364613051640902317840911874060782292442150919466129113257919913322808031480901389980240470360582238148952095474818928513211517298965140787815016083606791994040772298625897586876961470552865309129768105329773019540326225899868848117519829609180477114521560038306178532241148358212274772643713429862042192685566604853985760708630483677027862365518770572452329150702077660612398568046340225219934291580589980596017290945895971611616782814257205808889650756545173951963816020453159214220699099246990803675442772669775538286459876876359812305855792890163329750580891823757697016986406264190490306497424381516693452868771783440465241178933007435546194498699034848463413215062188564347766732651550164419743350448511105216703518795414837577027347644170184399207220546922369106546415098802383932637596755869000144541662048991045749746646137770457280462019563882610934843856794482737464088324002117349117821897982073469628285247282638994299872571843866626912922471644534648318399271116848758427143805913650870038516143342241602510853545077593218094848071023707370062469014226323260684966268059784374413528457347490564416046455226725576040129889703427978086257902277183608640977572611374614471853946895533102702017021948469954199466578674832064879381927433177144986967198301554904529017832731931566680404274665123831321978629155432748002114673355872096502849920838729861432663559670535408839892501842767859444554096558221996959907708368330352059200394284003567184332954581169065275287281617053922804634639357619241898230502369565753720311159284148462296952684748404920124359618800707121166829385067093156224396359095595107869640297589071299270468693184956929091637107605762516402409530146848770957360559915854819126455682020973190250655167486547780666271173704084803528230061231636527520487217325663173787564907208807783834230532929097868033280318991812097562363804134328972302589529817506810711846713585288512413832847939654003419475139902257362827784500650260266861905711245263860492522263822122580713220152016212792771813268649999171509816112432964425715653775439856855068039051631354993996788778906506104455230100865770964302184956235642115930415295230101811023330741369335737043504446125676540084508718350233120873414665287245189893376840559691299131651968645822229732280089867914011718628475909779262699379116161768547054350802888551070388425230805132835645269109807300755068645399982333007517969423095835184091126551946501382314980468111338615746091133315543318999027357211611890897541147110464286175857730383841401211824587659516919538083226045810653133917509895058949690191749354507223899793862059325718419570580718769837509261784902129545225429341417236566612228951958644359964193628490200379076742387775868806709438994168256655392629318927094971859860247743760478044166863212757962166435561849846303439532272209147090501411025832218781988572856516044730129498567911145138732859570227025945276027941421243415401902979776566269617505337527861970474259265965501099854240581978114006912005358209684285038122132432983029527797334564044689897788321340206851292780204541912546822120243983364102187454409305374038545091888480688221866329449153581327938976211134310845999657732544170458716133588134469152274878258778883934174266756926582880898180084511771473972416641792451052341491274030101607843962508136655776968559845799977611805694541137008511631664846052563270254250812499948094539631117179038279575134149176088379173059642713077240017220133765704575244704727646612770203793205380275614633822521916538411519071042388119588749366369601025143319883270957806042941542226189850628839131852946495331314460006136765637485354446461342648573707865058738014593926252544637132565975722821749080064955700121674027458891082148859757524822042936625403665211571078199033336866886430207884596630453827487285833227990930528229029841211571854326859699135364091135737089932363071519866899532682504585529988902535813650046215362580145713196976429697999346620208239969413493045075355360299960545488268804531817068143023012496813373962550681204517830912374121434943774687730247621955772823412511898518011599144738727664464263127589145632063073949193962044559972617971666178154076865770999939398126699488094469121044359658469233990991790389083273736567884018876944501976835828176271181400817582489978164821111773745452870785552756168352899818145452285740834937629187658729049694691210955821030698090344990461868957142632749322864947148369507040456700339683925111257299299857753417638246512485138367430449219304447833891140202710160515253245997065634206711888347803653528816371859570058000328410303135165746007136318732882384707187972594007144753824407634651458006299375688323980637067941047508461173848461187432715054038315559559852353148388234082794548157842892864667479642904831687681543865558318454939538971263791636225327199579777868996983037369035237934367612846427400102662975260089061686483606967145561737500394404960850582786953123157229488401671868301462290112529916900473555485567902568695580835708058482997397391905447876729064454514191991958828675737809028785692416220069334794313536365122096977827327316875071787075444088530117290239062506387275301287787439277534646114775224591703152168577321434208423481693046816906368441826538849804335155969432566689883843490087288057812403606591752144523836026595218909408294850127137919271968494167702092317322308797352538817957096735829445270637072797450155717482772171723963026930726034435757018676506569607071475547873399731550621746397214400386761558316472572775710763707924390367834723295523787607853489490337997515520886024224133666137168496044574966947706609545719311012524276485527138452896375349197434807538246176598762238691502662303905817786697952484675584239200689866908172008006048735465362557903239544272379836077218274610282785765909677690480071439559739840542251744900893950027047289167053197547501464830558470715034555167141526249666515204058637390407298981633117017222500202870319651305241448652083761078953965425532273663972808214156080855206685472269843946732766717866385758406423547867748829268387097312954836503111391748565493813927842941987229040979349367243717815575641931013186505081826432792559154770459236380184466842747561840358796318460081892675783036664716219595814304509587266503665384615722467431530814584776471919215637606420408185985859122635659223538818144309844821702970757296152191699327719678974344346827254881670262802588527138454341215408357961949275707979678662504476374662359594736540080972145436881898424997869940935596495664463529781479118435606845634263250601535366926623760673455884883612970272992669609123423330366974988687924165633047380226323476863608086529748179644708055254871731752300900036853933586953684535724200941773055020007567071314814870102313810159730894936589682821767465547867205986478721102213778105216143856938054700010760769156537919696889175633696026914202155984768941180172072819011646951879514337258149732097990237171352809740255134176599459247717793485413841490899728323155031546963517373773204479538645601239994204774395850592626255747652745865352764558391228868301026007086791512253854181511871736452295026694120658840552304461577869671646929896782908966380849186638506278525318717136261563202109245277831386092465877968948215453572064666307761646132351093214659717300801550728951537221297333605950019312301365965272914985040011805903237388479548309395389568125855433248414925428568404270598350359819626147878066592642647670441256377312280678950576894315998510904405986886556592444530628845243083562908915805233622524668200755347889270186523528477980331121811224977642823593341604743024143851304429874407600230921633216790287652411344553788798837238346403588291766857823356779188748044979664246045218710312748251708365774366516111420448634475722310990532161874829843959680240545208539779523917736345014101899679087784497139179019048526578143517051212937496870986696645557098303897377332021022143109985550552298565148521110649999290129323387648907069469579750829308752096456667780269234232274225977144583057658484552749746105351306523778124141895614072259669928837559712889246512237573051724799015204021890788343480330444120165894503321335062439191717293958034304730311971949072255052778483818907634708538143149654411515237232215570356318109205660516207473698513080710267641710755977601941373973508264109288396330417807633978879605948579439836364828822989165509487937134886268729879761201419851528788358871654064510347685208320007361952250902487765560242147445836506882260150929998792603318600858018951499074951706444883095226344102695308692458321081570777699412761683242329133843823549551270447731148582219393259897003036821939142449628733028018086544614284957995760561734238943798509414749161594300956678226438971924549383307928335664518196601566999757316045927176090332442962742665008908514946139242966303689205875942392751344103792133150718954173467299462150557326360756130091795315866555604100340625904544412895961287070118292734261160686092621476404298795936312345685097712211827337486425218300361523194271646314490525986215277940207506674606735597385565758275091930744665089208707437670815461243303330684277397818478647151895542849508855799335924868108631039873840203697200129691413312099575845264755222612601336670576781690883518146100565179344338826458193760396562057516546599611689581279820620076797606924391772167667892441453994311660881141628329987245824086895105140552851984862681080249676335092936973243913406365508258749190407771897246975391265398032881735998471676455092576056847568994341001776979497764708336483118437226253459041375389832639141749446427676328157566743434599179117779460003462122990392253616574564309891515432847381905280446778986063193768906995781957298927655840023001961223766958389630991857770514894184902692523161596714172738007038484688274893540721301217180560289179589361173606815126628994192718525455439957280594540893373459080283465650404156024208981727805063528050630842876492406845287499495909666522178255028717278430085587412783028376525584426332165927963150294390023309165486317193919773256016814328164955302832863514523299756139433748371226972044659451750832669450306721510541324529327901836447647036486605990616009455610840615669288140193942041749255430037990751356655227958021646411569851183716170111420757329029211201368427708995776104965029859851475493817918065867112354622924342857274330634512053211819417507799036983818206083658834471921385057760998120497878167004229814013426027676781005611912555677798629791002649207693186991212982579284935971391089470049655842880830819416707772422663363207299091600117490159989097027427651435778107591063683971893870253205492172182345817598627377654671249863564399309466466538534241632657720161688869050001010011584152285450122640753416513754948289120486474072343854269078251394240107642998212877657766887610531500068365434229031753458209901004088004493049510494101761481439043721888980106065737352064375050212170211399736842651991121485312446132566126263190509948448649516418152701658548283840809143686141269128922703536277721964745320688125114033289390377422642962890323927321208594416007826681836606171574096199543110596198085967968760062349816830665724316422714236611083065680884707334736885362740499563740931461343832101526480593544179519199830709701742494850777564375015982658396890593081371109642038696566754595640203236842750926996348917777735047601962669664904433684786235908664518652144575763593921486061993415727213887709941736378467036966482457382171266061026075993863323928731904009472838068923171391018647947553807796879439209434433914829459102982221069413100100176597000720334149407173535240687430477744936346847838077435502427809786561959288296086736439972841373095879378598436394967035448638883411511721145360986309181227483972003057302234985211706352338560112026439173068159787972385327777422835718031153431597288466530352436215389642284573620376951737355576090421622040773716882309655269394597518506946536652825629368349386594625715012952997121749536960708741069974204347517828856258304530803788988088978618424487877605280493083448612254594712185130673920987471560753066505531746186047147860042928744108640711803853004047011110647509866199820772925101745505799417340310950677956433183769917533919472392680152413099183077345152280083901788487324109436687782665873038998373550405416900390299665765341073402217136732782521028639243249008804706452983517605274846486415102088950775502798782032522181036511568790688625313537535852307933724666312195363039379017732994934948264073765004788273901342429252805526964185350258564308254848811333349654111509456181630280912915026179165431504647218385434669911748194577564515984032310379896710022061692241976440534754865903094644976512725296233709065829167780366063481093126585533255014223077301610758219781216057338070767944295882093035949769317737207283198877934484852767026076938762533998095229954049638678866579315772420235837858202088265945090470849197222489987459772366732704998398239293012606157685417939797234206398251677511773742454530551263878127480940568861220742475999163389345488036991681279899334324413638797572006800920892380818493377503593417587289949486317239738790509213674753688446121195922792462026888098270085120943530320182551382193597314640967128930051281670453347678641369826676074334638397225743064365084484676401229880287756544365326556990743186584507458922412335097814793006355024776857044356208819291765430357707983682103193290834199316438447576031729863217929130418389919824842098599200487851291440636229910051245086285691166746456251789160925406213509343012263012579046138096544044743704123475836000037764513270658520043127703360486770637329550316601027757054651486926776032728935690027920648864610221429676975447909221603074208524363110026176350367461971557132336832805155205513485442917920336799959176367997075988523989825749322970637686216697652141320868812131269667255472372829671613743063787593760911890628550785980411927131408393937389568342602181278516046129277882731631413120018565848809486835808310510015377215131625396002748380842984419177234181708961924196534681132518897792615440039635563668295824889420589052617701781391924121184752323121393732375165602280137486519933499944659648014089216121701408622457683722859498448638799971430115779785930527698514985093172385286490353765679430133348892754088914042670970385944193564710333665215027685381552007179750019525942798119128270387029158274932791688270693356408750456059829224934556272995689787613653814844626782503961586629260738385453625741252045341389097144882210286337376339527300613879030247729431312610864876672415027288399834624575398677104549742428812265358105822037537150114602323259146419327106306378960085490090891906666261220762757305732565328198851996699113908109077515339331649155069383254314842130107661452088508141274427087810243572280013334061953991972911156193847608403740547027419442078151639945553052709644190277139018793172355803451352559023913988123958284190094799034683338232704615909610423103605135322711128311465810570521850043323148283651286648693535966741082559088289292974613615504791289595099966133121264610225709887641606815524823528858352534212923133651514617394287200633476000771165167342269567401050498483088819714131598559556875458315502488249357017303766289391400161964098646273249044226731957234118666911055398594676447912827311688737954759203270297034333313461945274993545143589507534654549951675741255842539342985464204323585865055230251485382621162220034773805178954127357674160471638866685033743979610668585645656839693852635689806937029353565620368873547546225610244111272165492321468805030762754363167189710849936863394982935129481248527502980096502965596888711720322564312977458060154883996079760969802611515224688080142033002035236265211249769416261450620649399240597666039438711256572196007825782606357016880862126074159895175858612159580773359808086860954770208778743447839288939622649793328565093001717097049501309313082073666828916880005170565688051278971928986719323015129532065705822489989138143626248232346458392321074992796657376358142762976366874107048690719054729026032084554239406814067703289634351085901030883753678321070321515259543099425421030265535548136281428412543307041466569903347419533576231689503248967385236072474819694422810253080640020482552179294945039937027713758610364685882617592461703385672267773639687957231964215141580044331194323917414809731622486254124432394701842237951041001938905039495551910837471155996038322554300488706048413044599778635168339740381335793651148876656523939113742946880676212187479869205944347814102047081216583718063809918852016851755538735634775752326855895788438510846075777678317748468559408272952587142074273495699610509999517458578729796484627101824525580297356798751401891359504455986098260562831639281477264230976742186776268683623828759832140146341106217766070287184931334780726154583979405281288823289312649898854507972600621569086607944339493309508955078876956928711322479052786578026723811276224469106566522185327280690473390953374523259416397929796264041415913275516533978070275787948430545258547992927360802457740073489784331809129161941848998527265970856166556200888026235602070963503291920027499438189525574707951566565322883697899689706403580499376263539222559402383449476541953485495665214075911458714702096606434115921867167512821502807696447100545057569829536490166354456082722544166751328768929976370254896889683170976426862850783811547464695994014884885789040692287425329285189702335583347307580831890069976987793404351221961874157273739594982138105202221483291343495284078827267574134511022302942295800312246367424059189557894383312023167567167819100937090075709071401394245806892060831272246381489302397328694751054841582282800369875807819669724474810367753552502083964054934518350594441671852806064696896270137623930336217772260790130489936199207301634866207505925046179492142286425695941382997826992647878132627112615902644160540623232025783683448305675049458000237129177240245667866117915215866516303361961336494698006771442084162748396082266451428849098360320465289126824030741050366041728390300212238171118508476260145500983897980463709594905780569124966459010582163619474453122021062193632959782023775230384005858518638205107757671492216762288313617995385891572202482538029482269668298221338629465663995802568221582970736969250088143550658077171491499333737335028063212351209198610125531240106988051528165664900579598257725439464910543033620869249315149982590508454894512484330703308430863612131889197143213670640450694346572475806368925351461128613799800026579157946222660226611398635992516950555951873098803293860078843079670788152845587933872048560301704864208657387563200320671652147562736639850462410186454199465520601773199158282168123961791793853303626500258615897906122889739333604978307305800164250539071839907463367315889118190029744914725543988755435957442286008010135478720932827779431033584253527196244717035475685735621464814849018304230513815510110856337329132753490144438850239298415496536542010597534703837077166195306980595006924545246547314486347784291316852377092530137272852184997050824727969838562583405835471112899650081704023654746487236639978421589080607281262285612644744976395067816618929056222405193089401095992127829046473355941119968658821240925520553044262195140427362890187446411651107105273226946125926425358365246866246729619653729751225477923066862320505037463152129586650955759578594164689823836377325273283730764021503714674204072490847155309368860272805025134865279599189284585884509478549608182375032614350663670601646196934601856078730936331948163028713792591149635301041381807616152803979761725588361895537808114427224581325338275246433943414875222604864852912323062358528427302900324147210169395981854164980772464585197653927086824292907080076375243375035979035098482098136559040647404880451741765700237643626501466352187484500863762477391566099880177288022333266384938606121394930395271701657349955922800347885798947085510696825583033450413881589422311717580884270390634153239379593531251060272843268537344913732032806412467209479265161183910264391912992834999972308381086399768202443973768296973792849844465240890989754476079754209353082508446901848848261785413038261979325152811669256049311088752345283914927254306945953266343242432399342434601639174450294938407648647157627210164368747304031860532515363093506648950501172749099829274847163884856253567235564063397580574747915448997645370262902174671452200125218434952918284323394912499012595350243978381593793354594613938555351246771128639476090305294561329072590180814252373335581211451301591242934675172289656073510786801591521776965305061420361884967368528626398063362527498255083214145545062652692586689644156503202215188790043442832796424002747998690233562941461960322999553438235221499607451918173628655669447909889189404897032745663263877535145668194773772562927708826987136559833410961187691077171821034345358819751951171451265850050086385724167912539067230360789550630072998160228134316246016753158096039498688290414035567315182179284720237364746147009493586302919314398947596045479395042241228283474778060525101981434796339350296715099897082019758534384481236808748285206363687800336110928828853178030316267157133047368536848513686725569276597156844874434299977472468165667745784872748526774322934271263821978150600368126003523271973302805039806871735919497888021161109622228852904759447923291636403316252882926981003502751999985514988518525050875290031607040610983133675775736613720215301790065549627103426718904483083826624074104096443089392652091316345339424490331438125732543771865156521465177146792686873201016688977018327606294512963960428023020411607470059892895240353468720347607085193499487166997867519416847982785682747271559542097579732775301290538641866473982398179853142539709289414941367155275531410784633249747846935583418498994500627515174512854997775824422044766317738147697523326461059642976636468276125620097420473528390462726178560602404497294286566819011314972808957787635559216703051268284396880278306686651890983919037110709773678777325293396507406655797448224021020554051373510659686158753081538588928932310667896150458211219005295686954417537472462247314889859241461077515188120575268996334935740311060186173969643280173218951457159326672138795416130583006447176470218471380737764401195327214259497976500941309877784032537494846272249395127765747612541485452673204321558911839389286213876505418683312474577044490286913900567609555580616361297780947569078933767581491469742933545935087892309837510639588004653973328818395335674750561077122621742176228102626412569271391371027570997444247138138298100287600583437097585646697805460712507223893330181904883290854981854735984169605209273683417852582237799033651631532832507702829944533275140773572087709300947992865578894089843211468335102008025447727835851213639875186226720371069000313625034578059360719679622557484510488194131460498969867540308597042018484004219757659659725062508223790845933468532892043412889320151698253719253381982011307169227072278895721054988034177537290778065597335154931038647391928644754289203596119130401570624192572560683866448932198970186988963468747346284168839635390046383653640151219643410221941833909353921724443101546456856723445661026245879348516097907911294966653086328778384449390257604186742065477399091316238027520021565407590540625443638851504711983795192851793025506758727154340799886891496947066692519187668016446287083551582599577663722925759311531132602772480660096436544138530151001761522902498697010902124346899779026515531467868207833924080072907488414251896249389641946388888763438750868256106597181313094476912385542547019501473366958802478777134436692367757581785205549567900289254844094546923236833106723594664927019884059000892356819692991438877607380226286309130804535763957559365643802682443746849503216399366156504049833496530456036524660131147203282950561119275460289515759430230872012279509787175292267824193763260569802190194451093001102954773365184211433472455050784954590497614905783169675559897543686395759042065946566549863666290222887956485408728108475158537504609211730122311781053567179736331314575256005729803900594599176089448283483815080607329932698853723562934749181986420786497131756152938132805170752856775757072933400390834276888331659645563176936729123805887594760396420325329560766969003725831404643938014376921411851397783173643613274315996940667396414104760460529406675448245438380932443657451291138653595746426880643546402309018915783539252607819127035319352254191298629905054045942548039321508852171672048532411133837629284549619243318305761846863754235192451808794205463317687755338928521121614109336368974973624663176159242260097637841659819164943168257263510673427723826794201666183656181576770097623601669743352526987674770877717213678689174330945420441785679508826796993241179716925889455813705188060671734262965326858723425280483847615186610910187530434173434655023073472590259394680986156643603998834345674542299608188984722712345420828206898201288980006499623638743577363115232450463106375252298813902298384326453179888131128615996010703322851533743150056439890185312707178915715471393274244238452579519694927671363856885999642944778040312675899090540343236469980088327687608782708005907151129219223897122929658619567045186575732289250888056806269932282039858364833298881812804953173195253359072533572899845384130287690854176484188906609733980293017541864151021620972186863329340305910418842418194500586812024134086616400668823856837220825003193090872789809549924028473279923403361271822677306997328215087503018305371362629609562474788321033329876987315589284967715757112918888477134252507744317245270022676047162942500539589902449755815371513618160461372841066022742532060911722797057646978353258058444682226313323465087395864333940411486218488052363766074237579498617757405152084865942019847000617177355433147551753985036437602933540446016487555859552479593500436171870555308528042301598016521047589959951387537021041161253700905892582046963972264491630839472302315642008635610391675312756595027599453970873512345735342074478072189926277223691925760476458466931286733009403037373115270609096662288937387214132313458314328360626699972576819253947327814090877027565236576356483988647180312705552834208265952987665032985027154846544718761376424723285660263420979407933165838840524530457161366920082991535082997226125698884984687600734432614642851060430861518687860225183602471708836850301239057000345658127196109972118136766077721079603096367638860896098900280518201100333308937485807220955856067947377516535588705572923133505841662258247785348126116462537417950727455118263757102321350249291624221401873858137280327116746536167772932009768675497515261353200839349949692096040335558314270121048635482701550495085070622822724481477000434205916060700971713758116741542844603939487140252215842081320196128225928747931277979683175388758949099116725167785087835541788270831718741190343788026176720275122783404121769464872459585189736132880455828014550002433723400343381003843793350569898258349016548249057325996728739997857837437197794780000116576188249467415442106166654354858824291304264890774043222401481662162366846718000878774565584255840836691938059650775318159343613131772587421808820462783597399951303338617818392098188171803401574245804614725065990780844135248229438482999693428716401537338523099886487341315994670492338184548635371489130053947472076327774045783464808503893513709894373307450942178807778815805998041834244972155431749409432676449091437390660125354129209965134489300051189497567902975447431859012364772659193179236647798350310172540585515627366452973290921828010194233524682051269532099442566865548584312342835778599657503943900872643228811138319447753286423974317022721283230657472379348400848775627510205501685677054248067342513586582404638129097854609939370905965876585206867930190757003734932447027360821904205074335088568365499081792660369231397682569763274009725883409249977667005440980030829815253302152859793036804270811942715222174198646065747492741968572972990262979420857032595452004277913843967172995692972319459427626440712000099966003310670230996077806804660664515446446680917206525521632611765334349211378991648017804938174082879951498807943963258022437233760216994277912136432003727813704890044424462185413982331387803658577222116563684266051485677180910808393498671647062818877817945709920477418745240158966696892925785568754318653145515560574416121144824383359972775001971358952030995406140714241753499027156434913404195968396104996004246718093822902985646575673580935635528967961826975097057299178704033029852288204695382797359504421462290367302224534320685599507079999555389632175226217187040446853941468829229382645191975640862145352846504297186509797344350294281050267147591868540972153426589662614339386938377448506818487724961811259804430404558464091889892411029856110014265202305232874343474245537356920729850016238208862257194980765359440206805081124256147398275935735770400589097021879706344369792428423596400425205810217822059216141688676283589493048535775331327004337681619278244477726331500484310796933505475142764526062176543671087532535135902515713709727579358716021916709478202658946242035751894118347463196100479758329685014007623370272944120686633665991510552657013010430170860215872572606851314512195741033672632536226809178292359581297630651836023164949284111785868206874326988867575542479213714173036039237594295025950699026899480919031795259904568588471943434658258940765251100424729739699305426615506261972030989218096889416807982043956355787060529203464735191698815065492052133000801406231666751179815310594080792833503090715406069907171116825483377186680530325124664699570244178940747171921479403687228046963843143467127311966942821670379940698989329845927862793951564769119339044340007869534437649636213791844629276866265537534400947249786253796471834250073273167334196983582290940563266061177841024147728262263480069966317340892004324733431390900852635466992590082456074691740186926077833718926056051391560230902899460173927179491780729587257640951783934681270604644670810411200377735467419427329250850201525094559623937659129560578832584004448252925218834201191587730814121803365797606075913744039771917244811712557733121436440463249354124392434301586882961454791455110094181896495039969519435242190379270510414857376478079373012623696416406998822046395311097891755147012072164912725919567216585891006778658923250782621165797375203042120465933984325499603086215338808557928863091464646414128922475366403844412636771688269451915052665174262119141048450990080931828005718240830824800110805116532085988356981365953430193837203548773270866290444687898644117720355238065632202152423111783242899635421416844005993125733528303691528295167657640433631505638608003409980889321113114985469994867390347015595237864943499912743887768123608207806958525112537416041744997756353348927703316317491313471476768025167861481321837308227684323679825593922022492328243280910898481353320326123668623697844322490199658617864460940970084802817529821661319310506445025718975901789266585316689810869274837432855335361266178371513474854458571260024208156054048066813212816890808854925821248306615699807324739760002295690537164604222138410750189667791477079210209643056648834671849702819424403422015503851199723877239540519939808846633135988155553451017349567358656476590036009470184602003484403565266576239646116170689987284245421910488558808701344307755294273089460279880337290007862342541880654889408624129556844000691795691534727666110017205500706492028786812243949874463666325338914675510003115281289056245200908984782881123487110499266084874025876074409840751332959776509920381035800060477369642075732732068564535467814901597917482767065035537791713277018826143700991769266088191165605350086611688359483019491396049626119433635229519032286564124652768117868360729344466378304513653618028749438488970687032266012199741333025046886485258622839700799347475336371048371051462492148637837267245728058066077766046024927882626290903937394630868845644167066647696640883065077279976583636000929305892242822358301742200478550490145683386378651093628059560238198027257856894425174686304401220979695957450426658381817483554454921037385927198536757730285298817194458176829831372152150238337236729890728318754510119627241649330664439809989400656782080188274753542283988902879669321869142612007125266409676222994566825745561590277584103870222801525104507867737147577536605262367058960732625942750966168365236658000631642176936076003773482349703545786258799218798054981671808066107900084950209533072037181070296443768493652611402853583096301417565856816578850525496725062798310940823236415055200965281489175061812047280055970570764943758905765670304297673891558577404162374065405486869028849411407230624082486311127603968899010816523493563380125624402627287099155832807990452094965163661548191826410176909918676837484636656116230042408040705245895063493329087300762126988267881903325938873048895618578674893754459329014262256135907015508757400297974795366076626660248757164331487217214312277519499152400666575137224075648225829506887109712630219904575488548176265084211129681580500289085368200076140532416354922382024295008817783778786986974108007394565300257824258104633043501038195304946184239087321005203424275121991191246481799658680185370504385563893268803394899552734741650197675876486845183399927637464555736609147034383242399155546445104135066338865160950746864113839557549023182726680187682373283997311458817663684383759320964871844175229489409811072634595075459911942191309223553918214788491060467202221469889900450878200260974986107877133883302816669707218923771657546749230435189088752506053731213116651298377825871081648515918108817121426680906006737037807322151492991061153249722959227587183042666378795818923653515747484432998979348116289819482615088277501093313188618022483700673123954825004351093564323008573726867722499809866822661273100212596977637265258787413870832558516614944924492051914642083553971046291194332457889918928701698199752553908828971648799165546294409541728192103030030432570990354381789754826307773854826633119911708011110970875906000705450301765107048078876382295029692168883157740107310375549106474797475506804218089061783814001502312130136863796633646784647271674168709508327921659769230305180830068739163604558166994104389675375594761545495787124788882666628337418868647741079014494821327165443840521620507306959019556443274827532819432450866891323397025458653267507420846158870175967179466489879664883969668753695200152814836038088899170105037373833794632243326658175357521208886770327960303241698263634562229957621465757624626035159349094164296103530350445717128917348449458220751059773779924378607603503099593443859215985154949292756473691523736129491676313117121758123600290999028178696464452016079531354956929991639369718045000148908641420784062242509685909010073615549737515673401676255193243752672855824137930565726648294118807655953963749725327525495046573216218610934889098614795458901195136611738166429459693394868168108770154099440057486395187242751570734143773313977724948290278809093294413902599047669294511495246229005935859594511234686077601160335581980499859981638578674264404898605905343154829693555715781814480011087071788542207343844425769021623419522795636943757201487207355297468918125881048466918061940789901805502561343822497312676448762963531420039214894376494271335003368697283729397273789202254700024267226628786717539214456986271872878752329942383338465983933186607299952800966000682089993147660614167281558014614708027027606943837387313050936034659138689370822729665031559744354357293449956753868229034006334358322227229800049284387368598469633221162436225457104980572974230949297469476286727289278765801486179966914401348656199271205962679002317810021205719013245603370985130491932661751813845244896415876562090242025723844821600131309676719705125038063741548160081243590916564584316011675359280561801664675254561554584343802705999766049319757653687716597786683562843349998604075951208985502505119427339456082385055377221810892466007292077218517907483834319130934225280746748317837217209187946643392869327548809798099468363564996462900084529585014521637324875864201735163032583980948651129817237423768482764441435590355303446324927707466837668684112258655812988101755060096017410059306237885229106767522146878121168701435226860708152146675240277769571972903183784571237775529847517750458769787814408343203222816752037880694213783083358328509380579850194854468876994798972933625977559558043835669374308152124436025081572388349819863057530918818581910212479158181735624277363020333809673378352731017296025372040706936302705673006036208438586912450454305229122578841759455004580369270588399199738709418803453472437289190205676650896984673055426233077954047941720079197595231370364425413147762551187469530841700555047522070860873533655002043593473389916737325364359450884947275861344324151621050825125459897005778562818064315781335215669059037508502307481409825468370232578343445569267226972863419545805841748965678455725136234100845838926967092052921032527205685224773908366722233385611750801112557980385862883243828650135180473014192531786810495037389746604887425910741380217789406908041078875281916966585278441170137111162405594951252130862849423895141655176050776830477869353555750742262917231000951952604089782076915628442881604249955892251907695529093913139934422592765401119217032196532124385966598580958722114141679660652507273846015918184930352507537764189391560122731232716974351133394403665652756823033610302210943292194253072623539415805652466945703766852173199213790449355435835266910808698530568051846936518136277008847904492336704658068676255497439189268438703742320986670169583112911047808781462084714687204320967531410066996236464021055678975162069089426450867839873234544611587381315180525973979628227835693670398014633734104930437059710611555673228556572872449833696139304496736227696054798879835693215034060333669627441343267083415013839610667579606818990146871767630637554052255769540382663852392472078879706613069467620774197830570401582978568020077709548087731583846058003881332755486894947555874946659722757784209289325814711949429340188401153036532798920554176920477957653276951820461096528781176844392857994028567418574592170130108839860325187125713844278922563544155681848959377819902583999352863372656008184638986054163465852292025297241007721754720256587643998186279848081396419840826001195668237242476671422747839824439760064229753592632188193799899944853662092628764374408961391388677437828279876215221492101845286643975569755633999614983904994442539851669938635757876169688151792570236293066301343517458281171321705386981283269408667791124742594706444166656988092207981234714782551141425038829747092661624153574062335851566738544099753906009706850305644774937155500693048390772655619231717926588665874227421058544939191498096824773948332852250963826837179333525298132957163992553576573962813487003986972824496458144102920805338070968547523410645116256993438560877243265514106739808012670095714612127590379087818816797394475411920981648840153236179578407334802551912826633560172514844099633100992760581794376777612321100803265407681252076359348302596878235049622849631525344139990974162461199573548815527903710648365240358282794889860041539421644054609347578847706508107366787394003945548738658308677987333616381014156496049697433181036482617191058093313246179280517384296674640369594971148571985130538299122062814091811874024638783431846688118847209919115800675375243611114672984430976936302715881886580874440977434174420571118022447891161550502706127095919451198642722752764327496651344754269613629541309896593257747969528218071760802605734044925570258196615279340122390234683610777514877660999573172935296763386453127970470658930424451694973797430938081811973486390027713438434842710584913753014766858402238071479235800830180927432032144074435568090113694358611859691415108650630825412547414589289919583598915550501410980709264805350952321655525986816226137396210055258551685744939315544062058936823062463573095599186251794046112944544197920083399729503034907150274416225252791937845439753081563969561385955267227190305701049450991736663926110379565467617895636754261130151438931265821909495215591947593649314337866199104533055016220162753546670759531210476498714467131221109250026408071554229893783652669519732283325288706519086143732857342788156579324338050093755574728798254728215130400918484152094420954604543143406335467045142571484460799501216496966857544964255664040742089526334252841249029427754283859531957825464329802918955938842774985184597116489188891708999842748697288930553059613694684005746032198193942736114478205921950988556456274109703982126437592473976480743842211500178204540718518053250551249819576045136728964363812061814776888185131095382865113649710464248914077207252353429536888332007153906831139889041318740789596301438223299092217411207442329980017009010172083265172095953923890367959945065067243175398796078533686940239599377332253615928605462907889553581326488158739738834438308018831523667754456109967144647195736462607135608012130052891631671072137143216350680873135227649314752962061459276672100445744687845826715575967379805628606040645431968004280665148915510666432259812384806340704982910292750647190865592536839548473567069192860901220711364569485797062012890530626628139504934196075277738468964587926413971582074989413070607495836497081461814818907343382148183339250998319790127955842538495426275645173513266471657882753678601252007606390800851664728372815382364179479437478485474651943281283104191913425709483366711696355883909310608392216234519414248495888003663677617093198601165236631398678260907111637210196254239619275437013534003413185595837421255400448581769071839953649098605785313108948472538607341094056942799841071694382022858977528127032040530715515070864522499932902453810370573552254848584029622606699388284247984978604966779512174092927549062029845002395785397229832124436660983483317216220388851471541060937271345049960020136373193227156187923257315813248019911703604654726773549206499479527861618432173111500954865361851537092474393987951591020744011555335958377401908727787019963205396126698125973328511227543245693396656095647893156961279983079545792917908675441404982546477262293956051129159584599199545952923838789660025085271243218309489978119992973127753920016854089386980959289345794156824575762195917548995388400089790393508162076532110083275813782046051471938352877430541215927356093349101780817944910001726769035424677588968432304006096421899636636047558505253295172300376278710295819821706214143562932944561704108973656744616261587881707704652869427274921318030927889032270360307384712834549214026449948639933946469667937808886373271885851829095894037519678144226583259606538055538632309684525550451081352052879576421559813960809702047978323066825543564946146338939716872332375164517809613453758816294117272544313440240118210080088727414989229617941487703846423947975167236678285187985992420052909675352617446065034239573463848137787345363970481820780695192247897255464780109428442187425541653036078838691080182996216886962315787464654422392045038662369884349935861500404706400732303242743783768387987109767551611146631702166760838565218641330337213174897245812748131188129716585353136131732046932149894144199274204820877954292418910811508911033634558418426310336481118783869515688810763326748392589689206332489975016721045619624310969714961331057738560524952697424276187654711157916599084040280589789959788522987007192922789816265684718244209137005776476728633984908207628721407782209986966184766998481039332525932793773988011836245334066556550575711787654276022398659772841434302728773193331471014289019857002133913494646600584883483460521222949199411494105409565162804743278377852300516495527912812795282812931644681557750458185811163314911824920601083720561655920673850180813793478650139938836940549846565190242031539572350985824734599967603825413993566674498184568730495607444505527459658781576426836120423807813425777794649400951706691277934907710557469114862303285284387104873697846802038951251891347199994511608746866651384321052582156154622365494847969064554154461995373180176870272919873385689436363620160091371887991209573945253935653607584731963467197839633769068129163107641176577922652077259915972506121419356683381525299861356263071453525580194964582243482424723016968178443307893363756652864708562671608329703891385521227388634996144077725133853735832820427745892319958094939298562757898683593148146284161807555681490751980797551383103393307964621728408151748106131002303312246923386948555728066997560687519078000338316946902085297176984575103756952506029697156411192750956433293218274483274895874176586170892591535539574545533708860325428729762942411568827721139687957702395094027819529786476736601549106759925619147047902530170417803314075885419742887276278865610108957232911001819226703517136114565844740277115101445712253087696371779735530349041646455223614579670229890345025328715622113052337865509787190976253301125079139790222403493214513181760730939037273437559258639516987615230921747429759098563341821485242487366760652425611187340841046531176900690637808985054265611536705041861996294582177748679183982222370938584555048331534422386541458611329281193277746070265068284534848292714750974283935169872807379060514220872968751561721984218512222266872533923272728066238462191163619659379408343550259931302342277442529184384816567053793068297804798675160585905473883317077473993558910408450255788258453876028465444339802885725405974425619898431613899002793045506942024592386192440319671730172391369110649615569709667995270181009833952654314822728974179570472357612082111143708135355245227692215408790617236324053839171767486459497500902191408345622601695111463330400751064255278735525224166189507401977556591071069921640257486026376218618808665991616489882712903270552277598911864117868099559649630420962953005516057740372556067309280810284296384324960536985568950708026770703296340374483382761495441556677006186209167421964435099010523206747431176233435570692624226961905201921482835869315970710587658743003314033733136961315660161901417651452978912962455279275158330735400450280164775211609689654482122783069906332882879864630709675933552799819316985705378474867033625674828583234246233607991563715827687967565630105900260190687203106275735418484749854971241809759450515784571596892623450537098445870858924961508041816470327376083778985619317084581807453722179909705294304725544429385524456679796218113174878194061559068906675412054491647790743034341352709697757572380539975852843107311610663292691415628214455170751491474971668148232807368580080739175218494293083561509652863230899228266531303963086264705346362589902405662697870576212154678552603622561339947760274593030770381601796095647376230831846357560722527556235129715358169176546747749937609115944961677878312731349670315313350109960411428414172281651260882752924433112191701881687302470488017040598261648214892550138265534307113730119945734154915078058754330710606671041655092402458743881469574339142359163452576469395654537746831135473908732578522275108808339991583641804260474197431296620049393406585581832621941653942274155784557803100953717792318564676244164158060523312947926480242446524013337311314313987935838579482377466180933948863428851754166423603702403568070045671093998649473901941530481043866539336558442521996428512380125180405005628551612883011989659693754292160169138199077434335982509246928398950269420244913923478107667773742231094451239764451385914705059067807078564105381345172646089598364881141919254761485188275433726278955852448221310724080364006434549845322539338926226081492379777443100780102214658309141291119888648768842460623362712910012317015652251456903450839823116665828853769358972636557378113565138066142530789183801120660153604222250766320523990213092007496394741075866138064531656305436996392800218146955924246021985913568658403360659874742479706955563113539444322254237600831173238272178931511056583793005909549860178516349778079658648997826933379927653066693583414570665777702963361507888939466663316886926096017007737624055059901288348856536484977308874127794203009567324813218919104874543722281812268201171292224035847139670276294828219984892677453738235967820709604324274655403714208597265609625170926372584332613667187314635936001702684021149259236879614607749495370036018495439443471820103520758706078964304836372194534430571266118318601234686012353399082670135963764219785305927400764011902110372368215827431365614079115749562936529200706319699492166762697826813113918446570589663343590920471945911604343859862986588756806788935304752557933607213628428809921586890511463871662716329184749386374012617896289667671835816337938646674984702434495905055793252066876665455364121046258108528083017075406609749084876051001391187747109871793847391704242448431025864075809680030964745819355754852856733927975028972805094247717459313914839434315542624048281380389632387201421243229923542758690975952910425704819676668221908885063999285633632757895249797988345342863769310840228754945774436229747666563843891659560496143139544194018094126385633423248052269644834641708676575964860128924726008055437089064269584587145760604327758338052002441662330121341044603247120677335976871528840689516188659444140259238342091521975266304455263133197964565751267314313351443697541377912396556712649963768738980236394471284040352319872125344972024506304981442831458103240427023861894063032640138550333559025064852833419036279912861928402541611481543869311785800645197254835489379375648983524903814549502240785843486821299947346545785657390383963838993755391408205596133596045137758274477634676004079528520373333682424935951504140181121881104877208858813542020311629770948431144236356987934156309877698429464843648079437086635728164607639688361614620862846370734404624201043788722640414954815481221345281276230624302629829036953718942783339628259206784003763673660987216480896590349086176299947343869797075321084578159648624893987867096568063009140996718666053657843320624353109144649731140513639019230065702779274334354665475269872418557817907320124761574751728799118304171009599417864959759370734377746828445373713510200157405771289871596408540591884440044707990721230837826824190003723086623651775180549289087928819992465724402924697268509460635953118853929131450743414150487146935327009249685940524758793446100938477102952029139117278165257377943549048372321511068624708661808390729069892685217649102849388067828856557387761719919998244558357605175731449316749048732816106418228576914740937037847942558196868048608035126022325005055541001882469676625661030760627899756391631286604973221038173632195111347041667554038830165726770637237991212745607386548426745897545975107382261673580867538259168025708003425563302583365642574908221214264732814920203413202757664633869552717897817766048180445368692634388911755437723626219964100535656596430975696672328419539811817677453868087801690662534869783606947218386785165072911535199868480547462153039229659507137565892719969524125286470820192755028821518703365464854494677629068693237634064324251286318757720957139871473881444202343744174254231585289074510339626637698738508947750515043409609532804535794735772935877013039759878817732584243356612710974026807784558968528697211562637257956671994756721843938761131506466106857533769906309103732624182995998841924164593769525371260814434486327233566501361853534353585622008841561072700753772115373098463903206751029182871867863433829726356878449922489959204915440971654611407316538753340603059771877498765032984656647051751101072444528774854637250546174462261476545307358623176933024437509154911341330468679712837221961237772636034180537490794155260451913976023748028662841385660214222240769272088654822341796380365950310704681237969227382758627640543762008550587297478673042720255868686080481337428807912557256882829330916737020451209579604052756179725320489822048210114072336405476416990478930809771480719614070159733464388337409122638681519905602851948844357023169078792853908870454749720587428692967490871209508043075529224750441295570612104318841545897754030906041872992460040041161654870861826731546407954804728778646425519547808998137676718981200190925926729509671158410032956671233712954553455180234451842984140873975848306516166593796283156651708571816403116852403332124613802212254332083039406879058343765350194856481279929674806247644929523006885399257766644979690691529454394644956690165559146035584719253165894917706216772442053946984918696909375080272146467371555396785844982116549381730625844080667131570488482891186953351812194289361676040580201509926371972409394078020379441434246148054304964091462178021184474493546698840667047034867345048639975427512375428650926806652579857084787243265153540985137082025432254927975038779611885851332832592522671282063895463151596329824622063687155678414096443539699497430782460386909441590621440116495655250293753758522699528081439368363043242224021249342216654385373513230785804733599730186702918182373631627758315887537017757280098350342586003964765639193192070104264132894118043610449329863245414619037419915053294406075293155252741471901312013069939707044816061969948233586438809172825851900215541253950339367473195306138913567766840730762748707371236176240852217806630351458267841790325194262590473358541533311544561446868524463979283428254404947530749733316489380818821140540085205650497794161241069056131190638494522039827805229225461544973394043769687733260375586234257589624003974563914706021493084047693049683337655846616273479769065123035704403326547739435298029799373931804861721849672933588884174968339998783614707061148364620140013155414153530245282359931510232459535970157980352572781065084415091052988624147390285803351169429890975951609072027552854657226847041343391791986191275733706569115219121236487346471857911118528344942170420971920050301500012454823016596867960886900634824568433798330052390669529740956742676094584965372422021713890270561055702475215647415554506650520640916055997948466923602160779958596059877032962356765100096023187334226029019301902080998927911681386878338442714556143072855435620894612356112534884265933051840121863005568506137250232442604043496704149380169788364642772622843558362775675791194437019459227559039774123023161910394752601496748442047544749874662867961214214885093762483116489640057176735860435030865713824333000616324322100704086570895752675609993012940208000314364591525179429533872070499531281569905160500128947326058739134268752582074412630782272822970333974582590360133945521555047122003311699381196289926863471459872890792036871773898877889517943113068014190145959182147819673678344544575532981344196186342395441439423425462902669436240736620121762913511058503257482821805600605233240124191434111192290514139291227600640821949146965591981747231623329114542412182379223662583601141553411326784776214794331647379107338751058016466513020359547366430388291275798323435900816877745989716673024010412283629772297075590396403497094295411155175921089810062916075973230932690673867766429678791807435599528321539849720147453160533552982838340433765939883052450820085852578280078719978233154550366911819100179945796403132665455939626098970988073711906295844047778088497639067664824428375384253982250911323098614050823982608123309980821327353038809758148103422748633085736456070748535291493487708523667210477978244667166932110739411028199923781667663499750134760320492569196798807886280024261459302785721364145547638085145268333646891087898397010525856732531955997428810448577615397583947366800724106656059865266347935500380578322048998760623783063235799428414522525409025756430662036944786086523977668647800759547941398277793939006041146571925214692696270059261923479899023784617116093491826889333322625425389644398325217398749551150490224231740877592075566687468860069624017364087105207002383056503892144668470791187625759442220735817030282608982923341477090807917493838332681670141259774992786929409715227985377449860266882873465771279753459713731285954866269588286171654435886159681248899450111794301605168956619550231589314195117669044457090815805009338989595499997106578855723515105019991158098764645858533679024936875111698690440683734772796307760601635987401387975196646435033745968356121722787383736579443349952938019799704962399614407707293728573388062792092508169408906366323900505418148935720332379951955769772360127222820670441463382763991880545082225198777643614035116991766500916274385458076493677444382422475637486986867463504384394632557389245497483450648316651440217280447973536038034924843618728220546570983951373598273261912391346391314288082369639948365857276767165175634398225180571008595761101578015019150803434735490029086833948648028847787682211379743042871918884372448777949256560633420257821651946940702032577888937781182025196156272966249051904528644446498129455476696206539757099143507748420947764666380169650417809405457384803039431654336613948721237559453715048541062304760271762540451610311397747479696490649453790684083964945851375479964167679656534618180565285324613546380332645745887527352493182695011098760212185272908727568417306409740640794810888398723054450122845736893215393256806113628785541882704277887861204832864017920319796880337672222848772651063586043444583756589505618649446693328727208904059009451425289884114906869070668157746155885122925333112637225467179195194126429055418758825008075816741120606366897473659588319256126297243713016885018346912270681330699796576670779576707612274836601596810044344362155760843863523618180256718367437268754033773477029913504879998975509935304994292149374533738812863408123314342666449597437891660278667043983278602014553297029740283211286589780315133814050773620821476762301575863166186753139671412284623256440940338756911673509592126281364199104415517320603198360728822867096632750465741661468976118134883568377816345397268898660106709858596769183647020755758747342342757090266909418821391220804337313642583055345512072842099241554215595266749734867328634259961435268791341292670236903000882305476874239564892403905692174018186549163622913595697483500089905567824064777768767602450712551407872955812787037011043871470190677795830363139330158639229558423821902501478156048951049489389644587451095015465415683318020616897418937338317615002956434769390340073518935075212427536874425240581154068018738148226721941850492845769322207773700459518219597496283906795456040613505756151558398961631405037271590686614129432096147752511877120553802423475331449439129515409711006615925399508377762811873719617213691043715184759732673789486836807569068263246794781745080357235601792754123080446960143796416394193606637085222113511751310734112505684554207452658618655843997658086707646672892671089875284302444516720410370120047157901926244434052908055967169242622627845058992667902499442112400950818864224223113655788635230696678028003045342210975163284678435842115563423046481826776922643582912349800830423473767897656669194900715777819464668803805887625157952482028635606536491620616931300265103310197777641609933843235118367557479612211837901571458201864032072611638278467787263058113905818624281646513787396280458489652245672523211244114620677577350227234969237578042057459865349784089646046188507290386255860099770260933584173549614608614287369302980563825615160871231935271812192865589947240018052649561173418215248887837859164523625320664597467528427337983616548591161165446212825560341109038468417707762172549293694219084841750998929154496408858841404499556719868833002045083856605735429719939804676193322286473301882784560595743817705705850295074692631023226531783477517616919062709350972865318133901420147956485933760696109683450248860855238675925210768184900990474843869349011906450498388105625344688011810517053485669205851473082583680006975277306790335386623181801600092131743976938571072254087806799938066196589133552745129931860300791352813422394724291515059204651938637973408734432787541526884917435624247998755193831139475988090942418750459925136244451586538632791731378757048453921421775468882171771526805232943457731639164495295365049425625251461332642390580933277304863952963938736391592466411978442791478501032051261795458908449712821294477012094788495732847707310790281901824853249537004913766557698744947601260005934058283260283692313519145303234400109754290628801248425943507955997887005026380965210414447452230852694286801462833150084412399785978590824149006262829668849193538644076536822722461399214437697216622091292701621459190073302824007046086591800121493970147617855465843759382166020562081626036136623701980889236890510266849185404813836632343794628022790931647438304595970549705628098332744771654492744675569207789958024482644332692806407076420070816163724282885603114449848727024154077042333032648594552378899356986466465781409360612091182172789348086627234372474292764294064891126705103719028770168416673127060268194062002185277704249222996216726995916557644432228943965234554974189068157674420330208890116532435457340319930389271396641296577756707539999447430466729096434994013478919503628895532674457808755743891385293620415103005390202368333703694239737673609959665769004818634708239799925838801464151815822594346943389597060607918310184250951612045745001152128689403677461483968693065397560281388350253390773710760526044887019668679459300617366185538091052260320408515813181661952947824318518190029066476051176505635325429492833001852345766057676624070183877711689915326602729228256642382698316555520077450230455368249440468212357779856442787769354801884342633161082515050524323424589131132123963111744320587102928240346928669291013797948167516182733844273062739272341360957883235894850188357890523465202409525848308676499214677382734239691858418579102723441735430478997475913250407204668664668904307422651362582249899406977230997167256488392908648697162194961748206085146231959217611535885280704945648238367237033558313270895577694317482155182233426783934529807323508528354868428203763904207466308594876073643933739352644716799066039189431321523659330012947288971078969491266298944581208746063883997054053371934466319088075028799354246307152252828133833610468595395164841744362511874716320689887654471650512305042448550945892746761265773816821045592490735107354441486540067556157895129559078269742542838391285820128712560230784799222959550958417855951617068180106225094445658153098015049506432767145054707640974885253320050441339147474572457838133749761655047962175096434610977946907503798686036509463754918849346284032017520386583173966445075002733336645270953696419141117345182740197718939781200665685300492639449225125134242895742940587869159286683559172774722057313841167104597502907421118818774269077391798427549142223598367152394622071219101140521869741966581079886901407404601190951813923429622271368985418405089477630558226066470249045585981878113587197479332874242796730893706120472811834183129989412319366218669007193069912450558305463550418493485573686332840792333544130806467075351477332897075660852343050296388330174070137451922074055023122631087746933643375970451083052413694374476509343326754546811729429559235477100535536070672825591620837368886148003109859426995557815797779348246830947302571652487556579282079714314599782011927219016628200275568048075124757973630214815471425953451134986864829761601573030100372804907988662621318956529144350330286171783608781884470439979722636898518488308940613430911095486907089749608950597480329675880333111181711372222455443333995303019029271375885957525162657007475303577941744977187301774357181785236508884662717146418285909330678946728840939476302692822715063879099134146999596747837902797687564208666357087175923976382128592436985147161708883830566675662623046257836312043165681967930825623774637913577396537893283770375658883464205347490324416808922709185706043670616756263672731972366872414941103274192698827260538754851892640290925309873245239440652143121491087834825244009285598346828510453485910445082146982142988125388713744108323272744632425524227509011043159881232070861825513689298315740969397721656480503621697311536862875628059958259127665793968066068300742092364100470298056990907316484585263761769177167964667524056185334315541097579476198791530675118023222607356211914797105658919217925426700881734476212289373682116202817337224089548393777889840963851441738598621067217163999624927571519551613430669087047055828817081757891367766855291608475112205008317866346708058696394279461752406740507816910675208512140432360101753874670384445352344388950107681819039335097557093323189092514448850497779007749899325379732712830004040959191698245923423843633097954263759064227857468145405317704958427493097174098787672331518696469649345785446171408317822881711182794183201584090234008702396178781629372970683128813988556372133592468263239201025625417655123185897785527791648958732381892750649688837810028132057959059171219061854281152067346583746559275359788479328885771494379409906380141540245086940490086586425014868560450001152865251383995825632280019044845995300253794476342415278484439830951299092254455253252252602072050849392934453307133030314071893489046889863135866437920177324475778033667256531021701067976421289763789356882878252950444445819503392821900325077951916798871213882845066730377758150452408141792306955438209522177305185048342493836730401357266094586006692946021959988039206488720433227411613390221430555039735265657084978687604688949031146247142491429661682843734679940734898831219163810451388395750625398362232884738210711039565126845287725566247120337413079693874533055989762059998870224155639497805659237935695046409408109026125605201194086130447532119841408762642562080879188238697083284766750086940635428170388376872342211777867292752263442374696722854403943851209945604956940285704130225692933350757244033206424683854547254454353008983653413987296553260258010310283763783831538111850465848728459580043228195388881322800321496992663816955705422671456926872725099900554977132108161037620067589684238194030771636209916794559181706392126366123383131062097315630823327035483787391761804097890664160244533903925880110631534407876704983988134381736158935409695785680471494877568258161883348436259029322498928908763550809540026689739396832149806211568389607036256574851683660646673754832419304382834715927667845837112568034152721217746453778361327003726079551828091163392849785289512463377679806144608932127459154204895813173436309004519498138504851570002333742671590594598296288047256240179346149447180359980430978565654676790378076499952778834862168102285918071028855005847142894368550345845086285442557305084699211466334617727073791984818924531426282620308281807092060067948121550055162389952770383672401205852150606665970359343684989931666523050259817443633379794935552109582799589512737252831940656917524093946517483806654040799782456036732844986325037618302027999429893415904568085778996491363807071247314650922520913651575595082667033235075641670007666915484298310693231249455084603687852018682329530830223594203233884463782897970508170528416812771982456513083491995755623892639587023271113890267635274462138352692834126914292700862955028610499206790923191832725456426144279186496666571631204641235135932045585116799783939143104050040461862097066131542379925533057449599103081344000437191838776029694432030270851868175916602870907251938905213373390725024924254089570971744703876774850157866542313466343870679373495726978577515982829397967966554738122090632654050565606304455500311298498753411390423053850180886308515999888965759173355131452847497427510483216942033834975059951220871954640458697446576811398101091274616490707760047875253233725436977588349851731353507308018435801350764273949510327586171843798529602385457493301435641794384583827596385615539950254012443954789880313680896338678198827495279836721582328576532019893453921811271473545792675976348222474376539101045333299785272628480794639193138876682317202697939323099755662619397073839018937748851734370513587624701552563276270142488173124439415517563134180500864911176775896245107489438754467287581067394094472769562197759791482476685325164161862815249632540853274240122729190295920819258973982902616908355347289272076781736301818578987532920390425535421854445084873877190534264638861564469393855774246915347208194360233386632023294817063299073028215713313983657046815508527221434723736081521991703331195022689496464615812555762057993739346692858826033285207053293742814461747825458590663586726973185665971732779159100865520204886238939188971779003964543318316761085679557381057362190538466084368778798137901526552569387927265706409012882413452804772438286543002832494627759664292545395634560402103760207711326079100555485841045771209502426095802436922690659995636510076084035611544510692053015360015737134648504273818986384850205915857940402435664392130812700185043849002031768738580214932866761080593993796525419557990427176395092763451117840825085639152060785168367379695980255532438383067385878858105016947695544919152136728898700702693691462008814647051721888974070635526696397107154291625563982016766984967050866466414889073253185103731587132450755119230724425843298730011848611987363457532102487130326904127336668743681015376585012729497123817749581167133385874425758992562743007067170691979042670977316469431509371531500057212777888648470835712782653295229317577416653460459162597217637001857108226255522878557198966027069074088797803450110757942141611168551749257790935441524762285233982458972720319636282613034479210496105975133882670821844531344721263619867441725678597800788947746801498511496952738584068189347442542299798934135696070194428031874129441791100836430241571491478632737337493354121048394190290185588161081983229238901199369482211345823078961458431055170210684940988206407002120430301002777693047235667542725681504339211500487282275301553649239533812965285118224144505422571262437363221473289760870819480536350633410332395619842057613596134498994643863400286818693062848304581370738754969571808245508125943910040364483626322657442240419491141976268920419011964890722661225033428398252070432830355747145460423341430672348210804755563953507951609447819705370131169150636633742266527779381889222591152141628102122973717298458605450098857433492003865927303681430966975500605405607280054378711657073487175515978411174974054944869893130490855997703631280567942977978990057147150756202112892260783347493339146921206341022495042768390520239812188499757766685197755213552899111559936237408738511551205326718976573553184207747448018464998116016753866188493939842034769665847775329389241122622634662300247498512573139223627380883444450982677751417184785058301009602468991049029667819171422391068875994181720742341173947981670292565308141006934340490896075838310989699826819532930705513699323788366254183244829333714693690953128050536807112393627623643862202645261369624741007137814011411201235565985905150545731575244084848557539258449274741156354167444233356968695269399441853095614324831520750564376875001017612459041439243390064011692447974166395919609438218983881547359483636991674105918114008821208967371431329125441557582905163576446735023233421372890434224573060307674064309935640328865516593282570285575291604176782931896638133999481075021760926395707978339470597586201599710642950661752941931296426635835124783959336253391972534482426129256594949903787442611686567478027009186176294279582038848860950381638638215850059539058555910734491696470460593316188285700609214575806014635720952869487331764636246109985321062245861399033633805829699029842098021836470228383868999076817683728610201124250120210141430025618509350846109242107909794459150656874207963926264983017780069890050602202396069816907944018658961687498700422657541876903451972764046744816126984794021156191619862484628235614936520272073629538163303869309991531305224644236956562184120280036708411312108381104020095371021187159903596436491354353891515391765178693355814361177761877749685468104598659883271437780410045615287723053488049218813385018225274940982241294747199322619211550898801474888029462424654422433918972128315850947861395763767314999027494277668714348094753939399829899440804937869872069471374113469088318604317753347180405173075257112968193523757827893812548990110662539122025450549313827605299788728147005659248128941820475257333252127962923314921835421095996591891370890986582162243478082317288531668895567696820295193311396417142586339243713799156191696762416273283613102753422057758920038694886023405586368351818758639191081782314569033742724912761430644643168895030702475684595629213800822347096811513028186509987348232710040922984175824464121823239754692760195128012885830667023998273118273800887481718943040019944774688381019839708548445207735420167927245928536700435275138379833630330328048874479198108133558272776101288169200732564196453310145324368514514332871926804098471238686345919657874980845743617993255364800440856056443443427776514521602590391348081002533370000138809727556610815525298531510570431786038832365256427170423628229539648849391551202508044835765420900831781358112378319253963396427247682789579157148698256119788995214672131648655447357561143440289204163723191824765291101786410891771249541912999229693011940422587827984397769291491515701588931971911246873278220112557400057654322411629271562889896369984518230290428107449214522778452713254414507407765943074687658373358155729325493089511489260643238835961855935337362348146696701229544418983881676342695647444380839429702976682129833942609218426788433891535519635315213606487510720167302408908005046087630089404518671338959361834608220699516565679169863525371317370950622490907550041818025935587186926095026155798269922494439204037899773989221835820661928788137833563912230799083523725412494698326681888789922507059412927177084116634701381066874180043943776030999399673105703091021126223147805041284142185486825586607586850233163995966161174458257129315845966858199481663076984852895839872129920283066106258808371826018511116701023584861675409857502692410247332128362548595204356478257860012623437232185188801032270608963778216692259704242951472492324378474570809584007131005244870978282291890560498375010025738252963419720006559341058483931450874466587458692501078859004994995556861094833942259239619243006637341181041773809328590104392748502348784772691386472594478237577568427817014501978074402355525932085947397480190900306746189178395578086837098083530625832250853516383827844179592418827679823128978005328888666016446972952551092173492026687091814002716885828285779393794833964175585874859454999426825993951075147968917278864072360597572980337815684555410647714226122271997313914280503654069679476433051893235377182013786162675389505137975414806420480622949053316301190533627757682492226023164142581802085011212745980048682010055799644255484790371528516728090856383399287242970923801503199472716527351664280856697361903391764974628887943872560837713700555465737996413328510941532210642999689988490785814249116925627030702025895005700486806039675178185965963888464023883107184238969180193568594548155569258705708843603124264775451090271357209145165174091615551668525331978291546621648190832047784753315372806297128776688618312814994040767400957666939341061794584150207934411706713866338722292182025651216994276180473784471608592925075806009655570959220578904472961450891386452314489365300785338148145809728164655754973190370259068959710174715842343630098349929908912630121886530277949612104679314242594967420529890717272130742923954527339000450301489417015974948575164836866742056710037013382686137894055532879382088584730840327425827383499547991160159929149093546795386077427592886556874040815964159279940085298744200515682987618939950954345830525233740013264720157673831958434572110999254886745292156472378090309128325746154233131951327754900082751543629838776625564461984691904521707427821914387829285437242883861265882472206572022416510518699889541799555427032963024151975484390264591623204967434563554028187239161411032869171871097449124490928089999893837293226986079206304995052716613453727508702497308779457544654546622462145406732514688681807201699846247330684935603160477090547982393010057046960881932989127562712998946666278365690844469788069968305243238885892160632235554312888018719482798271748150409202794533358417764422459593097532271857874150599490847418401121250781087582179449993278966655226368360598428969779808490469642206056661589565601649132814405046858717108524312521247174410913414441822288779752202090406911980008483029150190375546483956047735593443197674915343453901639407687437955078567187248567850112857537955382494617736530473991337942081463415473656553302545728339986765867848781780817843393466459312049898596766737742366903133837002757377217173667957492977838714916355290449700360075871052215999433838108672607341033547479935771131575048255728663616795531351030294172810292605182353495767032908723250711667245102211776337026908185834399274863066095044891529850123403378855583019176426764628488000904322293925111801882249637964601791731971822086715182795023377391828413830827610391937916957350906454101232175354315179858251987917440593728335837063557970824534212162817591089440432884822620369105929820115534058900595577764569316468614686653871816643566870060157831300156052962024870381115328671327740230728763294698120469075256662956000461375312601419280030844597713787545274517424814105367028011547249444352538970194591033732186750075065325314395021238110026126503240232316392163651208963319048983022050042204160760667106914819250743542208353863108927140148235918330872166804782834948809728638636639364301258853002270692534355734299516416597200684665434565250841684442020762996776668104476210456450508542942680779193182544027458307353041573654705944581292546101507400051546029986252875450288076896234513956280197821759844234219430804646203039557112727051588156509422593681655945620266123012090417452360132256444305853079414062022701616416780280387085204944542510741729234887738268706286724792532423124232561478034848063966363763112429927313096449048203950321472676121804608413982077589364019244428352177270565960379340954950842953641952076228934076218125817653399436197852578691857112595475341989370157935119839713567663488664300982214607869249943243688190590760594709752418779284443153771098980365942461946001883487263675795001165317662853749585973104884807670939424281026057821409529084520166948140748306068449681502466567828132653658724845479613359965011741439529715988034164457919905337792475263588244506972684371292821813274964063432197428058080686577612071320030618771361691483753885557534879601516804522053353600155130895257682897133608571518918289873857019619481537540334226781302557175550297197809037916992549514744574858234143707952365669435191475309372820391975411305949364962849097225413222362256527641159041900413159204630970134847085389406466085264143305452526993289739484568278633151184090275832094244649620292873235205106732615978027221118596183733835118960190538334340756890830210849547791977667953063302556837907944247798963668487801741962673392556890662494721976110683616206607622449744204334740772002335007856571391329479550558090959910182500677329628678680214855594278084630092963131799740456652657992842520763703531595031987190780483584690510633940644286265945012697095190963786489169508110208078228084576773756894029003015736022767730752416578345350306351098317664245649160569055413531460294158754249292750797976046982297390391210429912637650077089207430760811221736207152045042518241556040997160464248421615200753328866283816496348390079746453919432558776447365272895888602807549143613960404829290626414235152606307288224311744182282706496719141116766641887050974364611288295796855211032405036605869895887058084055799217363286465989427317755081810368146426948722837667559879245679121305947740419931022227223286114292615631788935387301335068015835216472082475124054189668296925302279439769548116165565327087679822016604512569079300686596752546235558622079438485934800102229039069263766640732544388355674906395316989127439282332154308942733855656974564833657348913485823894225590774445398206824031604203947617848156875347412850114039428588880681686529089418963459224909332932839413655672960735519346438715998560992148987432121600039641681908878664212525007841018082283789537868192943589952177822282648911030751937454381780675149528850029063932584438356733013909573931217661567196038425273608921935175325592996569670344185455543706546219423748308270562035378682988388214649851837731946153465354053168744806095645249203939316834783969415221122323333923999339608705437962394008601727124420927959025079244904066313255955408210372899305554273748759169948755508446482926958636419244935477554717615576342074296830860777988257052903381298387316909917859920807824271474625546602340623651651320921122822307483762813006673332451673430736085442119567957723773374879839618921395364906494427498282441955782305411264792689724340634008521428782354834880705858814940755702281762389092244580048271067691791315734731704594585805905763809093866262718481857577297103906770252786246776076619578156399799010523645197833360233399131487106119389227788301473483158020180913516473158380548311785839827937146100071666841027855338818046465002699078482440192022347013631620601878954004221161980025359258212925863640762673723257087491729101580146348094649710116111486176088313825550350786787714036535173795124891184152836708179226257888199283834524496452656281333125828848238328148597865457937729362478818545407085023021655531497526833837647233300406348985753045272698638490688468056689800136667759347101143650037293210338825011997433826827813058562196726338137153592839562770154257838479929965738901153429585537037713078744839720540556857005055641199273574427497663958715020674907779998689264077238695667280996096741137445279943160564497705592880347765755165361580282121254372971451357405691292461347004954952374909868694723533785858990057263760909858198333206556076732884738398110194744002986311079980883812408259323070809815470348715425071580385896381831826785764154510555497684086090916345938128249231606754105335000911427682759651792930176272118103398187581193230694677138048530769963940837110082051720520293715611048557891226568341578229019958112312775898849954542673870778231629213828187800428661560225991130205115499205651743347147258944773109251048303332083977578832796641388267928016491704561209873462119545462889311305011529365995140526464141292467111941656461828551592845620780638749472780764032087002852306221972406730376076440111910942085189340203496043998505139314252659852593846617989523185784184840602156857456813488754075460353057015044365575888524942840353712663705553141032794948009760208908972883227093459872326861961248610575769795924952026941796927358467041733014917917706892776816653308518277289890767900919004275458108351807594759179426772877796903083902649369013349115145024841464862845249529819497957563170831616984542504509385412359891618729300692462007155179972691767365002778590994410030990409282177758521084282351416774136657877069934957261008695438924523828834126820202907499078940134252484412112302259233496822249320816189455572162409695216922952448719011153289755270680068037642225100767599718496046135141448341184563689836466917675585062970528359736217308890303929715665677683286854179887166989084404629340424600453636023594345823490300176344452490920269206766040554922939489617466665592368438744378764708876745654106752296704684453381349646634499201604067562580132311189698806287539854705506002842777341264184341027788435157574794474022423694804952356928333962314172596119205542354101967309380446313468721389558507941006992650833430402373324447006343951848301030295214675095863384156502876230140861753869845675377828251766131488920857024269440654332960410389803427385900811025865980344217719762386614969301607624731918992448685691817187630158174081783243086153150054626419165796076028454218948548444105183841394236166355465227296041441661559292297664442468664755753490273151174898437540569180670411370957650301251490605196411121717371960681814534972277664496622160259724036932568525933783938806363258411607617191873194967386019139632169781215252818955972891353842749211495970415337782849056178800906291519981865429713771192167660252754268557293339981441198185940989976425350089221957738616616611074783625451136890816524856269365825734380257695070753607240150242309496790994118119342078926281253278191238561632342134377991571688156699413689029484087326112132867243410517065101575731067156949371019833259176607214472626755541829639432080102817774703698348528846016052318839530231959570739403142056672321680520020199518207032443696873929681265277963261116194358509323727265311474924774500752914735089183495997889598756110353647504151654908956845742600876969602970930977890451704887433529911286540157201358818967629745331497936335602249826698789594189304070458637176765439348599564833853833743387119559514301750238364155552515523064870088064452692202032636554481289914720984126248094077860866644872984468542009928371478905309976739928693857970658319601748510938193345671336257515999812696717845253239962341616112409729768276002701494819610974256819577112636628109840410708223162477437688978819630793694483357720118351550042577285312366011051598282837735182824098533628385814081331272893483986844095915598836638790813995869251291584540141972627297069843052540552888012799372437415334378226910481804052189967447864295795669634624360374491858727300966591468697315585879292628369523533166766907638340989682977291906153199788809851695969715030715154496517825728980407564231428949987616513671520654715133735339148844429284868068772737255617180198244402888276273402368921202889207458189708482335433314392640504430411238180147203321914169840941309954471298693194986359586571948013791704703905658248426264036264444958489768635305485961916259670880206648643742035238799292213674217799856839139478012450949399266910967528880903070020869534018835089294792875944251885459189906246461254765606878069947972289704044218285105473608647800359658567007758203864742788700103881629599284095732154110205429483089412357248820977057875479996528790508312666747147923267838147386643640556109621108693882537674157127615312841462116723844051403846065750672953135771554843979015533325977739430017130818789601017138273675015318087690467946540473628235500575115350269160849952485797991055652222070864782178403852231422355541437111744444008987754773803111436492470692494465978271642593025669623715025165848329558015763429764209673327912288318399707730037075229744059413407280309781825813832582022577751108187812879683948072371250102186307406593369225512429736240926911922899601165330945072791677663734314497338026910979702777013522387573226189970958345103070716679769118977359042702851824027182654337804207687687080222341977877953103389582542301229036749780286012052079777738019712089933260668763501908192757216430379346217323977261448404660003138942850599846548678894790049537875247178991651397041447982636535597796102277928108768312031998247672123776346733052894426444076174459352101227278646625843600538348267106044367766750166115573723568804208600348976659389396787108778087855541003080166851495218955734117755040691795094126952297231053666432298572132132055420882291914427959403343336023128700267830891604805620500556505883590945605693465786098346427961103909307133432605893497622619177414314326800542668228741014409467539888587992279360519759011634423661335318386240110157363409923452666756087493057232770518724607903057687805947501089944915116049381911847325816652935751416376835729470004154107459633425607483821614657540912644303197402495992155419281001871533954460225555508509227743611464269877571034565541624810825034569849059089211974985151427771086599080164589087910279674835421168233460785668247685439221945755688839026845507659474624164557881548367564184482458317645034506265330932520888509717006948241278560433841648343838794701063607269982573298514832648468740706609096538917178543680524146633333655388544105214394549621990834297878380526231673000311317626813197386432217850196595894125837080454038173048344996263232555375257027110124466654985919087270135921902019685349636848844393738598288933210380731709856631116216117678664806630003703536493615571260437673670007199985383212039193847846658624067867141921123373227092081898906302179639364267399809242851872443257253729372715190774105706883879426483155663289738377424964181215052699493540515302843313389267796595883295687310148126720794005159613817203245591781283775543234435406454401606729475728345546876549615790875053437143395447988886898007589531323110742240285484860934474873940253675536221448544469586352210259807857558522227280516844450196866374436630091884056052918478570460487365884287430442770088940717503870112822994377294327108300859157067767328579046544961428614076897164230122276190877245766064541490584611406146355826514561953270481245399641012463492094430625231351761608328828121446326225649884870855339173774214932677595072075458670629601611383788425624459093993041354760910251661336373257719193896802544086123937791563642762776656225228924795024866539341022753690456008006916855796278621626127669203990265446985731144082465891709305680644034196160264498112464058212251966451640048783783095053693345375994590343666325878594198720042019638722318340927390807564268367599992396595131488914040037290258105859214411826427918966377777606701359592150363481212958328855203786822143619014002334940408031673595439955329420455697379208686776531598098228925729235585227737091817412301178328969084218726915037480675561489610504212611312241792761143499538958615676588238908983127411999937424144430524234060437216766505366274461777176802763655164665568315673168543331454487251866124266805572174633660517663053464414690315160805278913926284656807507896777942876847191271299912379096339194379883802172106091696270907784661591743850352931110190804335256151470419467843602167787104199280058325767643526632706022073758972039744483263557744582954392230758104367662305047494738364041770968463026446268047784034079823817923639562229572284492582248978846664038918777527063324223032723657065941736464077162134945288986915394779026284500350457355864594851097073382175415891912786259871022213573657182417945100533662349553012936171068966228614667071385011966265177975847777210584739134062568463652828314080172877488915471636940279918082074513702643192240722929547845908798330433006020708989472355699137566800283504569788486073697383931057067191807588460719768643453240720501070888188723220758276545707833713616429338714965521293576682970277747347106964066282714707410900845632575284915791741205721328052443632368766612181058527291582943482326026948740498979908247657586591142701523263941670126822232110156712421642441781139743030671914754903216065244526337631180094476138105656317228701729159083244713068606850494474343798476957270707547606084123414948815667264956305622322926996690411049866533319137476724870202485283413238482758371859844993234206467065634913026473716545518023536010334226100736860004271456636701235175153135350943715725809387219422299600568335361312215444047267673704732723629623861184431919820522965587386197837306202971162304366147973399363442520767640924753002340648323032361949491708458068232798693729844993032726837168893783511557398376005584148387453491594474788678853514674670081286388260660423675358606834930715799346590417448830875435564824064075978247923653259763977792194438585717346905962005219710769191979668333302406051373379663689090953976166714284411041203404752872328802132874428639485400580125961919956881332802958947243462391274439164183922647616123897862493858852740219241344186278123348891020638966951590163134505000543630369302402317294698124114906768346381372263966614865166384208191254675817304317920444907576777257095978099628658723384198369709959924302519785489228916252723950972269264725365567513395075688225297076340570219041956884977711094844906494848809475061112346445277365269254539092630019774946206846420822145331819186141901150821066202936456713898967688206387659763036249498377111936231622932968026376356258822419862957170854224256576036568512010783612489777205075998522843377336078222876859223627268427585607423087714200665889052261016584034879284920313213870821393328197671350759423349685156098082796558090088714874364195664012422810680948873398339897707434604642828899949361292901420358654576086378271642902265846483451650358434732531659840832513336126082940004246996821143361336006681324490337315915596268930990185283301871763311238609311682563304387239884897999855329104626423192225438508230252775800798409914339585263050840779373341077517635373659597268610964384048241014939905779973669119868625271557837594594211659232511242097444502210128369689905545648373659117610570574511263621124755183862030162959600969524881396502822534346374754909861929353981732407224429576141052594254988371145590173443605693752760516077406691883152551522831626966247067085752448725411309546777122710964347961217590652554189795032345358815304246310766935485004977301329359833942414462155852047029954421416325063362529761117967736249565612105641286284097771877363549463000138911611447696337176760606237245939576513541574225331171455704728464500620136114056191238903273599375080357264081514883907042586189441191553543507648243940536955037437489777326394152300385365120281997083254534127935904954952103749052479499520621115274134525732685055869135288734848278938883442679856403569476483223186593255193543141755209989684745844167214126159468253523538745517185383983363099293913358174383838317035476399882005449114142314648038956690177616201129448560226445164884710143706324714089180675543734872340704906508040066219246814437256718648364321524344556185287827079640730833393260790026745875788582869331839406219875186261338375123778343024669454735033795068234214062367636973868621744854263643758725385472129589992210107042389833355564844211175464084228854096958421176700900007204605517332440565594717147511067484084910139230373886609566837797287662943014206668898370834827181483341938784672975759395885062026394826886093681145951051046083151353588266038136441883912579140449953206056153435153758999875756345866216281387592855055056637793285187972054608463693383637102515855348710070316243236066388428911575865673684373821885973232277195393765456639968811066733779983546009219137020461619723755863285656216077710855327054571390786099293657629355555082330390553724129034950553311870564961924663700018639074912061628116406171523928214294509668118800170712558776680129642968878923536960631672514487519933685833019643207272134483821662478064478279586140889879787982319920321688305422151806858161355712199845487780817858266109464746248482491829441392187020230790399293501331404151788412286422754562656302986902646122055772460452480890383206307249569987538776571889308291228999905225955238190234618810734445489495748419755383522970979468112065032861845729959511404196696262948677856457764705593612538698245606369799833606121269326660790121335415672007640981014716628112663368734382997600910434046829832789177922947859262216647954873676479418984580827477834575954546902956290982311468989703968148603024487601083580035302575266213035332667849763073234710188710311710662574250685997806814861979327421833926861845538402437090457397075276853244887389172465637514237550741661455527268566830054606920589355430635357722986940001568570330661640258694497296133086364455687782336148291649311784194650634132897243569376182800057427203763535020035808824004947394681034458096082451677817499647740028376531456691030638808641506714289620447051741522477218176300254176267012568923096790371893908884604209076769713749087653547736637794124278202277189017634427897179452880162073710176613022522266216491767413122129723986781929501540718553326749873221324641323192547373386052861260035587889505739792580905221452491951301402096982746908004752100407560738871340121811363592329063300812415302066897808393555423834032205299757084576789627635624545859919463866258718332381271956302182798268507729513440820532403957637159332137450180568149962557868431248300159610522308077851263889196557083834334078634039412273253660823102777007125037793179386097473143886796412812940219543120055500552834793727509330622658183718026250254237826929796397859133660842329124752721701454431817255616766705764674957313258957682970604008777298578699450461682578599962821715336274515631010829401124733285911145349852695087896021858645127200333624057087897222735364200666896259516983246554200909872244125679707384343124250797608101971441739517239302304667043638141555766023594990123970788783891267742991639374108486023220131786911273574303343546024669578217527236243071066709078736440319856814869507106570242192814272735751660180488239530273508424040710212397902390626245159634971285012893736735602902657910940630650743135311418146156257814633231166093387530514926218002815962410345738879240439171662325665583534086179639471752772134923738904608110035721218210518337282275023261725091963986375099789165598293575356426389410906716622145943007568062709188376871552654150500692204588705197284755333964992274221989580775243063614182748354695488691187514789087464578665653708756146309507253898064386640943565686507331211251532439428309473830318512743940233627276596853761934992384827956708493921704287055850136695419502025994326110380368038641949172972397398239905852430647970788771942866339576717784142464530366781710319708449591884038533552794427097098903538737121062762530969508055372564297176175216213724005111001244538253863886045870222757470743095420746422755263312634250652072864008692463121801161592315511104899960828698102275429714735465943640324719887176989418350422490903913795013023602938784317624584670953084757758474721636767824523559070636477218857425836265359552587830806676879337520622265222634036646252536511403021403267078734377196509153626044637328539869850560390072363065835653584699279774492965829220400222855810996996135032538050247850254518004739130388612870404765223517114008375925358091308130022857928525804369460547919940870096267035271621379665025260744816314471604351441272890258796661498119376003304200744057920166583712246032638838743113520401142997021612465697963585700739625610886221629559418467059663487724008056836241259863703182677787447143411816977987291785717207850868968489192714750530809641627785206376384869189221108125710100582540938064141031819119264247777588580736616277621364503440391004648389843721837593012107992418139934828297698736192134117651920795579337702152691258023643900551695776064183943400905979416600777938798657918922741967049586456012956790781419887790082085969195568838037697198104009348224203728915102564583369241737621842068510747976227342249796916570536548418352409412822642209463277243888688276851008944294114773415266214119893865780589536347409968203207096507121909860925138262930777863628571481467282147963181684845218200745253379031384037631581210924918731970969698558995325517108791307791231663867859763808748512140223711490628636922570438227324547112312317500988477026445043233189644270225827949297083661003288375648280627036854356169081459706179265452752181313374540438287002537841494799146497339908293595425192177469594805591358321668683486333863284978841378107422330785663336001627333193129723501025834048575304141977810682119762460418769134056867026980238742618761325435983688648338999340306363992685155622645900430929480091339483983500342530651568950019164296816908628470179376344832573594292786798785326573473974560587952316111319013112146325951562365983226226493181905208207154059225796298479882853511675593400675734696360248760481547923858460962781339794812675454486627119432543728994683590317310941050995930833970950200619938624063586015027250885860366706770410759620403786889922815176160179080810360167835980287319482798483294478682820686440550487054052418705447956598608003612231757476994898010469478405086779533747753925334875643017219034761239266842761413405811632083503849083754027962524825323660642025890396665524538386940209839555828351111882612651840888585495914028203918978582871931956099458951739961734601341067155121704969059354967517049449043610278767182588722224299194484093915904125999107504735631411559773561331448986735448875635314964358869858409334377499391090221600618848722918242358543497122090092785329335072561650995476614991302229325435832658654514658388369995959509922003028771903341284066408654087158823007355375068209676897056787420040502589717783460027141430944629404742893777069341557211691706855183941653280898261242191218500064957812475218894415067275653205768335379440878703947185374040648124006963264150106060884575281249765455801884065543074669999525254607153331478698531251969230056467459345332945022134666030733216370113047796806918465089625385379702382550433178655830994617779202583880118681434715270255472927066270959693906709219576427931698580416526218728713765554838527995587131912503091936489293499042354542443432618387079786481798427976136533875592726221517603537027415288147617898046846157403855212405397713764239491739426777794036503143500802347132964507755576773172082899814115236965071340564856225217551271024433660487101982552884156814325451790351448244122882515150611212487497519286859142767191794830579197490004146388630384598224798799907577317038549214234271129458373787482043068948877484255037534819275649803079433509679124352073020623346989543207189308734682588664807952758881935608918262691476927828431002475359006081489321936862188441566705259967758307431498740585998953764193444535002244531111598045014192225698644765892658568062031623156557080504411010643244104388572638689200920796495555917118055361061225939864581477046842315923594110759945619411272070554124228962410767754292558826713497024512376706725664131350948701844336677273892722538635290260507837298592100005558179414185135243294723896762730474189037143169534372918891651768538421271744348245436559295827698452944359010107337966584554560603740863878473418371722469734913101015181869140790420078252464044520475768692836952321745008865048735394785142245728343565169587380056140990698107038088952176853991999203877076593442867047875093789626173277707384288964480906176516864690321517440413748299733741534466149245169252697014668967551282468105624072636384699774912423214203737570828865735340876746489244790914598732065049481264094952321439386532225942446657007816328424495000650924054069919047231067383852773975894654309521264913349495154421516314028262465455266568229758980238350837671589605664072209682946952187088976319448591646745932927552274516311145425151371288281519261564233991530113276899877706502867901311611503271907934746415846999447341247586612701993853558772432025393938649221817151144105943348803676427128585735897664599496208675465074070635481879686106501502238856376889571571745496466362341477882153377298840693850397576135782495418178818556016651734374966887188721143023102787739505538470349324901838843561950741335445553882474888555110572778831113984681362344016971396184791007038922263029027434820481985873567652295396455023731809685447282506204005477692332465721387775095925266439821201995519321897589825586714831053506450402491810083450260725586132020941849284012531477827653895384989452710662655495901745592453280968567835153143418709504019441918770605837110990769064522290030171153466476100594028060317586689741807114111762443328091158889115900239954841848555611305859338645469370542997842177542651799168356817608916072149018159450964995577610399588933065981172655048289567978912920788198755298428755125772137382721943541111858963452952877596154789000426595863230284662746592390603484593064699898064381412604016476610060630745516114332199811847234423627229971762592680881344717421220500203906516294447863097891310704604594892383322365896146441658460515109628468178640859283042645032077901834993232272130387342240015090191712277974617806211516458305899090815216143076532889036817825056454073926123404050685859243354748171514809296818092279177638869132293748802802694775854671356016538033704893167327304861593468149533175105125082288334168867021708055536334544507284651917092719437508332559916128372446502490112674233390505986700226863026864905856071758484551064674608319490534531549926926748629981425727941485571225988884172199072299879478123080792614188358919598947036833759000410019704690936396045906166838010986164191367835578344127070984328289616455917107254160753188511702419272715912628913195560441216348042981056753004500069927658429536030776961579907024097583111902122158639025738452420539239642666280952165248110453114603117082961620510902586406986366772249444190153884533352315674107155888993897099679512691687031997819918195432489339970128271517515041642450284960166744627777447663638927534182244548132917391294564632547902905876939098356012662536580474737918309082776746239135766028359522114729467393707652973856362893709855210191087644053912693375000273573076073056880911932574428907917566493159173946096690353166885248478938650152443088819700260611630346914872540544777112531977637852144582789088122006333387302317989019536087401201090957914864201505972866248501456964858490273300812985527256673358486184901142878137061217630142407929154859391514756859080986342093828558953081696153325768864284042668906453754878515475491829999654743238270544864539648217426163781959876201343014809845115621281849911711999643614262445030598864179995892156269878662287640564613440896160799384805477758002356278210799548879401354730420909764963055824097218789488151264715975460094745415192289708825211094291979736992995218125617885370179224535432958104574433148143825960002210874278315512119594252123727265443838757612676473323197727551928449374663878666781928753565845301907333725390000576053252326325891647714669325202524497998712341296731561004133757218145975871192852083972746906660764376719654118504051701525529301330974310004163069118128711285005779163036576963073360672682711514369463716108438196466291070707005520648074981360640459954871142747339235647186769874627807083385140479992684428233256673179535040552521588925121900015328753760280601505675271251064767526864925259037281494547688544145939512801701052692490471638269302258103945939438329124177229009515500039447221255166858254423820149724338940810450353258622627034577860848892343527710452633025028374955318227000741963845888797873367438234866401503357136261753169134543825627129364748626731520019654846840395273965264323415388763527865560756694778228097482280218452277367026524724076266382214625527151533477591136309171357567170396567875777065561408800564965302970927617203324484606236982677060341871231248272500515736007751386865026819141822019976961891519895006156403023359972528645202269290880860368311123180256100265427618874262314187237484547909978715894232150787144097438201538353193828145834826755113026646938893595971703398901519861876651486559796737878527707132270412560011420917472157767605198287132020197038601152375188515626438810480945169323777971158636765465430328125925664828624637815582597536917802541967179667661270794110903830902480202339190216133152562982842690342896313374199175551530383551483525985558652064234053513748281826491828523770663326210089014880133355111338243038545075035934470751350738413501233388352163850587438748091663927225785173887867946160996505082427231365560955857168952373724635217575337417406452300415338867674581821190667108204519649957831650394948029442982795852469474119935533150984772108572202428738209981276600754673614140871683468351603024303064641242560356726634341703593451551416414311937853337224431485449566222516269211791390876854723435956905351808007917125622632735748430460596106978998868911440890499221101602760709123187050351899205587461705923806484005641061093493307469312228733001218641814980707283889484341371570648496234180556143405823005429498149803149325996199649234814886428219392776820866710708255716630752421473594888012453845332691879311810125647578293391267880930892197131867533920899887813653402507592342152151573228568628876433584974405150587054369645264543433794164029904878788853030654540327273543099124091529013782453742044788696565497066791655756879224272714468782383323491448901099894507758684939540195309722775512354555141453331630161456343215770704388199134220339286593513588035328440595277031680957526562187797015239709161428196979077821632081028950765519491612835659458685612431018693098808871842783094899519847451401305806007605305889091998438795261605475106230800016432195052592291789682808660959279736677440962702619819416554797384291900652355951677519710776939750648565512830403887279092923386031449434381993501393024060636080485133845958337029784855507844676791292152171978320970056613244652554312334471343753368719655206293227596567475321932966496009301247694241778347702076697403741120234793299893745815605705906060157405307259998756244615228832436257990568797719296833285241248292919533607489868025076659295424028867213080013785784405594368270499372095077249706400420184577158911973580840933269081702805143173051704737544738676259932605116043363201996020525214284181232642365625619765284542550796782921912565473138702208291758217174272035281766026612230963239611259476917485020016890051433096845022838528109096034182187288746669773098676462444568290614994197618774352855273627092682596364023290702765485343083223034059530057467917805798335716713529130198090625505884998372945316533895583783812245461944288107943276111719198009189587418129483630377579369858082237905074362429227960457583560768739905441535984510732014695202114049217039754803783196864987792137894231832672722511069525230148893645305927575742506751811490114530543109680720796284330819953563863009956058269612793356756250146579090251473940893237541832768559851733451175972455600060898993406457470614105313533419962736288987530028047152086218702466050206034246045277914131889172427281763536516523687770215101880489897821415312434038035681635783842856154689863891624124074178645721096723335186346966115351199418121542230939826252107505330579354828705892169408072454493167967250802200837073017494266409867895325683475537599531601163661659309582106069379969535564571480404363516633607623756540326241503505333319540327669642935735689215509129669927079578163866696506883678832717170697316176862902764916474642920534211633931959918339142375575920273418661570723118875794823829824712574362128109013876202741006054006300275675425305692557701115201989850365444051140275633690999532363620051501486816754481891166744467427547529311735466261769428357691166577473641785124860235708636568957479207737081311436131155555855035889164025254298407334521332088915242341095818881365120428699029255871627078057233562277918290556319992217326209196975744754837918758181852165591275577725931245904671282497362600097707764223127133353154528766590649426850518291286480351020725501674303006366336424117135726027660313665468382974100145739199083475303474037987497917087468199049951588515292933173593678414510319412207011832377129732599386018230251676893533432859982880634585383631565750924463885514934503329561451039529960005762006809060594779793565103861678349577090991498873378427541930488502617851484882775718113945302406013244836647252877604404805289263516602156023583805126382140516718027321350838929104004642483518618772341982326113036751257598118839598027597016991661152100020145316376373996804057942581155469858844949389304316257628338288863361601294453141437807830457935344536714120856496474012985984713159315673529777301394046332524355936428814018522357409879962191890109719887525787685884057195728797811936437974017897020645470255429557866792812516139398262972749308881281404803550050803392699031808011794706474044116725578618311867522245072332615257324222998373654123149502878720729976094804515641662260059705938535539352699956455343067785154897084042440257673034217800327801895346791353768868034372956426117983415157606497838974523654322855407117178048593280576766560582215703364527562064906075151328447539239928808806920069423419367788633809146539287342790013633961428894469911391719975815831655089855874451793451516153341495761182235163220455387712808211925475724478389217743208976287335908945132923294389226016217808845863837274778550468544307796178625788038327915064980837940948840842879753008553127562099092390613786898955664681624611810592036750625996650560834551785151127925840105047000632197873131074275419181602393101670005199753361518968160857057253926248560779007245290504952396482005765286783856759813067082428898838398286006251295709648740232742889858931434375549920688900665098894324974980660806882156813993041104720793436321089433356984634928567899234092656420303043113736629742201453325348872881479354855556966370545146749307693001907801142633414551872134007485350944553321942794902137914572858134196236333923383051385699489497836860110792708685395780865199396179335838207643480027019399418491790405699624903342279151016834688382667549685075103459261567098679226741379131489932089708549339662598250626132017676885363575082421377948171188147654666305853385833242837178957913776701183926436084667658803511201771655732922377474758155560809927616355642045321893351280774294287477774048973362679929506957182624905465090309661257032686616642177758396654772923085463432341406372947528487845019253295270972019114460718348730983841066442465051587217547252692472267492422382519934249867835660419068066759326459946198954248403124554309255602314837802762889417111133348697228803815000909611311028011362080325927265803621079756479699505615498372923629969119602933963652431900697719577307375787352598111872635103075291099077395219637749686372120180475752945572613805527129309776688204398553195822636189928605654170594030591733277198430470897301316391116731584443849686283305499972260498296689967780939907459849618055905106171276493790833487582631262417712297337595777773595408306760703628204344382640303338066645482838510421104691572425665449631672061849580552408276549043862244986413724419954352059476811745065261299775387416539572440885906555313504143351447852251110270468605170749030582986367986188999987467180367549410698663564270291695709814401309141012127915919877220626681386238508218029628217144601719228080457772400584340580245666055758563090280444627089771410150357712018301403069502285810467847455015655048945974079322032279605433418448057473094954431892691419833098317459028947175673458807472368874371499788731803669329009987068105080229207601438710575904342647986907758069873274192050139498599744832684814326263392326275942657446522729824566906839386653493791115665225876932163000240635205105300932020467115349151294390754063350974930394566372793047557304152342950610276991108200299142866011544965069555375873224713060477424443420361644437025692347163302973643408884439064641560208678933887621811110188868640945069374392989129636850147879419359441449025860597216784230400396287658214963692932173503384730512350769339188112451589871559879439005002232563939517324663215200290921470591468613000226366252857124239799890617868889163262749279224294320838612805975926852491555410657050809368229311568364046350047202474996658158680965886258515059514981562149875637889091026118136069652778345363465719355499708706170656517554607279276531799198978134141843547451820488691940653536339299924652906492607724869907043135426826099546453813904381958148539867924026768106981850946821425362807828265513386607110687239668725161447610673901461624564891608540699068529850334779407849589302417277205431909814526640233513134112072964802502056530486571181295270553735193259825732593998614228291840720149610897358518959630868128558664976794805306664637727278959708087845125904576018814812854773853462463440115550357310831469406064013443216394813269390992688035549606962165962124555825766383150559037350874828742682748823571138997954314489873424283360018697810680623495798770538924067707706834546073823773987790569455205520601989993109731877824157807878160446896549283438468481850089604210727185031397025793294106755130561465185769901809035259159377465398043287102168301317114712346043327995246115632396571073924365532688961755322696317024676651151755720138534814566666376409503891439795139571818032387217692966551338623320124356962278782338204107864907468510057607645909940340850295055130421391116461433260972273281112163880033934921228877926027296151466518809584052985730603184574713516346106419345629792583227104450071650290255863882928738600563477645930173818808808241360496335815990562785034562265676413756766475406501621365603990951814327949349779402551953676168027229923302294976183262872088947481686855955695421570746764226373156648242486108137003438033338555546990444858286685443454233584753964480127225223257654782211095252893276860486961868603802042844293653653478555708027508193590994280871312277571669054010036417604139769442005257793318823928809638631902317574826114547808606637893524662502336523875138196790782390086832656889139408684968519639545128286336685422323768553168188065823476403568418475352623317865877806538977447611549846397675168691724898581100438813343132063898819434866500514176435282009197081860309172407536066321166965653282846677318232635907040525801774986116080506628357796589127644982541652342855355382157718217382357103747086005369844222093364924727314693298124975481045546031430398342864370890320098866157276172026204405167388912989389184918169655742914491549695977819783897521332438044590202642144793054053401193959882452239969683599124863278035191736646465610866412584209896280746032943028360345696608461575264790920463531643352160039622779401040307554908779044826654545860984595239061075820962031825053581395741435409500472581158590807306297054272679001962569071445730860892361293044247830641717681422093542400187244896792141590180640205551527702849266906739020692304145139735827109053622644631779829998820038614542340734681962065642746291750654745688828600295338460708420931923090673416730913629439123167757527807161948856829079647217065160192924844305149915202078101557397285510312556417521568713036342671679507795907246312719383444986039998475584018940984991125964824151692578908791412853410915271226382913744734640844116080817836331920755770128814996501135577750553877017962699819790688696133913263965812401839729857279910234622952646316000719505093136125954379633110838511912592981929639260702776722301313748304489856622348937718189788416149195388058950489694626473387209904938858833056243104708724705397030232706942662937145872155337416624490458524206350593149738898942906427877834262174059361187928300682805452291238871435273789592067205422298593962149430317830274041760304628399375135202686484421126875979801687626923577560411615960956832735508490031955810304973764206439209090428034745100038239110409362165866084890886758204076593831648006981279706790283794445904135862127453709995136624714515447238443014760448661194485914601277184802718823661780351369034740239839958534257489482316976355413057812801906098855635293081624089621921251643920965612789595273794182665894996681769080433450475724099296479126251503675504653385561300685029888473504312687090846420216250946238561273538330613273233616670379097499547829588290014986920968628304113003844254855248653835058733545431389377816338954440773773230042835041278284765411413459919469271974923865650753313863546446484997645239295172142344309291566461750991834138264491733216472346644619458155985676126598655752669628684945756713723358241451180519383155069098695924368664547106308360242631202540021931328904123989408626657579835372869461276169491406613430092094365636174750351383747360937924180344225537530515919865818794333545706065059698786753330487175024841299341350342488319809902274111997207132960674690635527269821589209813753567924846403941974308442482682425539465143548361366158152254917893209411854385320288165358208085837150906951636713436136711223379107460062908319179423153226791161474386263304357531492715625886313651006938496352370448024705382947982928746180737641121549543512040019564066702951384741664467273654757285670187393997811521439005847924331541218167297812997017217201779298597941450955283056786838403281443864399476110811213242527411630948524118306614220243454100960346944656689494018934811452280385141536955197437172670972200973142990541152172841271054149327608202142525919957012069350849706259254682168993697569127246745527506160473444663363978518800885820154158479557963389243720747531459220167092555499410449120709013351105922932642385667169647743990411239207673512737486408018167777777286510525288646840601441501424979828372070899265980429543958236326546020377898617785453744929002666038508197759438287490418849378802165094378622506489553179853304491307550574237997566778641695768384340898893561905425276112711380525428574536520712001510025983481420779630140679627119399181037074735461826214675597961773887471374937363650749340911825308263580136838238514247096173080723769264695178887768677977945969373568921467309100794856985450908818985758692336981949179148657110394531273123680165065462817316431322279787967671106203617600025465844705920635876542063637029163808757733445417884008029247855424995979148885542725739597811536398149783746103873583187797500016178349653495512173079549126649860090160262534972923314395173267348113615886102337360242545690645012177967970421123782061069434165393775073131662219833918668168887912150459223435562933183695688499072085914440815693838595399047745819911086068680269822165087136005349062708477316959383992914810926778408613096921342448658476270929837897642936826532909906129359633050318920306394513126901333372003459382178308531666488761190935473555722413673326939177390337914189928320608770924587946719490956722064592669617033526746855816290949333744646196203785731748185727154121947330643609313701713059815933065556615407783231591594536322951124807310651176731280747546221349989365841683750373862261794588159901497318683916743373371099896499342508359840669999624238443274808094931599370727682318563702864111129538485071046723487553505035816690040270619141873199581301929922112166360629579830727385357125070652042377900180137315984677638962695282400198371439313421264261418490531552449928654922157169307345221428109775590170962977767722202714534271801615490620515266838668122881407640778284819612074311291872617128613777030731984090391878476832809858666734742953144534418072315330914258176789534353100324976756490465151488715360104531938123891701458769070731213907675110135117677708323963872189428638981153571727255304856335687483986178239036627199380524550793030386957700946316154047113899051879698372094493751240971130036304267052828389713439792283773531569911780385387181557560491654218745320996599149210001525389567450894020068126670227115867679972461267462754505898260593183058941524145494702098668773205703328072801090643169539024093188150858647306822468389207390146047113729841421978896636509373915620447021449774994822871949328854120319501891229572893277320804459631159542649833256744825393139015339664272305009557118301461100076127581525155914387260842451698357513782921129124247017411453708267044238836937748385651627508526598680562944928750371083614579626345086720327625302187057784007414565148779923928884404622219892946755153838315490694705239088165857449577815133529092586188739276956197863680941143730207733175293728833419124760975281943273099529114649789463120174898679387917363657648751446377214997180330776173738000405272489002820225701062093689072174920819263162674682576204724312155157842206144727314916836645284581283365330711228837185094701611411128067811121250011936235535864371334618830376630045344037238518343480208757781577742866862337632719209592164088097917969831416066649515348492639562973138909001887880107018375806943693462369079364411398785996516293524218717730684504055422029685969792359765594215387740591641778960208133613764777820227510036809371615542917790301802891270114425173985224836308701062027692497066848402561333406238309944174299617831814187006343445867284610254258603190419328586680105050636695592071817321124924862630117019182534904065679470187166155296417780289031314925086481117017142241982541506074399254049830305759255415467277434473312643606166895017030313501972234641495652690792851045753477255189571298745562434204051471838837562514340079319074928316456438570257509729080643554237239788706025113971969432659589421539202919965841179361726524807359702809950280451208904493932970740027330975110901906207851690857601440281409953847874903473117625301683719398397728558294014375421159621205269811995827396869263133672062022162078648598692699860458495669983924585910609446257782854508035721257020051645257222507740343132058876458563470898457870457481444264271106144416610198012779882501603961967083030503688439415373342792546546625311291475010382662840641685645888312701503078690904605618149713638311007590364207578621939065685338147281485147275407644931787512131712010482062719643359680276646769889217419690967345708042763005351677396795661361931000009528294507914511574470550642966298010331866084698718166673616485762471216995510352498554267143933530651431373571406625377992717200164958355320341769974040623111956634216851853958164607068489443140522847046160269989344576698650998689746185265687549338092371032211473253143119037826909563216058862994735988907982626015369493360959902994832295900528058705509362975082849557418584386065852078666092902163433218448798048272904001719056630879808632855137006627690186601005282146873464990716803808380911749698567488118854520980993491242250402304800090360545836165049429839046191208636168202676068831930834150220155182865499368501996714581385767103366884944437644518874388082253442812098313652137063873333958368812548673236266479171778273548562398786745225960408267582866809470072366215780284846558385981702518559409849574303424864270362675383776759283757387885782301758300199593675740270531402848256843516749313141210870280128459981552875096501711517005906222504018281525359875655925381607267323597624798637993938992626992880294354735041925764796138497210294444900429077662957364269376095297665000912725298675092339267710776719788250602569296505256189137914071977499209910554276379235445281946494490892725335879129089897028589224953079926201449390361212749085588436638854766530557435926595424968360605201477488544378753854869894115551136044707017160411713866149955306357232540718289847631966443575751147770707916208499698916513758197467522376531051253602224097613670822073753664555051914687010369033714440395209692426961617766322759823474242482634892854052433224378556215964485007042948175491731497527810697983557972343911506306451501816671090001110376238545313999698034931647061387531672753506890997904151904125570228466425025579280514839381968494859957713500860469683502149740016816880897568118313637093530566316796177505187476775280419087038300879311328095375954318026709279568941962989695892650664289481998810511666648017239352077865921515340294195685208492675745686899229682930239833799471972614387207117789063938352235626893102188425292520413263692685731238322519628581534795610879607917611473125197888906729142065439446623479822454538418745086983779348259788642873318448764684774994594817093441820771259369746399633060835270552271124234441051947720175352244115102840152344490539460533187613461620310608731505487941370370588978579953586647589107586872321240529857745659560648070391295892417862925283607536988439161139924402639900480732117857526562318954475976810237702799964694419589574367809852080899860682766362482978259263426759734530336738177494361871019990476424205749318830604021062299940843639834528575355875025565259059955050717476511261882228980909762591015624832169362527939039376900133878970851801122851261719527619227623897119783444805338076158248792582562532777352817845835525251434797397191708477681275505860739072469025217763609801719989211664089837146365904911165981996130646586838910868057266226632071427363454773125857210157690831175165277707324197292094855262012639956477433992638876612202578003658942317551239267863381948459255439366948358248978180885262670067257503423688688682365530889818972684791413444114814247960214286452508945672903241669411124644734415534940488184795143072678298278851889123098015076845866115479158444928402663624694246795799546240107798970795298105767327879947647508027840112612754553391289604120936730582145121099598663271050406710969898737742887770286636660162536177749492290649743529159236663690377294056767247534082845819844000231149230240430504567214231545294746598780415004744349638772101301147158525959377929480695576428004781399029370733763358690188469141498544147014253965993592200068033331433453144103169044696348871794828490500922196671769705565563364301034944962303465414373101704847399468360299204290859658220604414401038655134702935850321951406972087125153878718252737658731819623875876262659698472810691215753949543382763324930476445678471563026521670095228811043397964742903023512993204048785348933047082136657047776780841834789066071225224187963350121738623971885796977767885690902775820816335495750255259711730399874518875985423261340888182348081919941516147142237682554800322588799980802040600913355221622127425131211114089396541563309684719391081920736637216779276458329930037752629169144613340105332825786970574925755601575522575910835548912915920068510112040302394235339940857871329005543913791023763733430652547414274380428481472496529950137851591929215216025421031416816554872396362591789107587914334558584751341887056942624866541861691051677306031608355466312045643555886328757574167824185417041343895125437044447873486648903600095042965719767106127944175633933391323617010870654147079171615439500260252603265891819018999913168752551946616751994095537619274268502565727032394412429420782916474156871991607497220169763869876283000979904072659583429591683772902705720119502503722895115358982087468541252729412583947181345960862980781114569570247937033275644354793712538010956905038988335940537429662485420980765772416859504062544323294980835792044988624542236035302617002985604907574930241364416102750332100094603819741685682842939655718520182812256964971264709940209948270375733250935963342255261210784658306310984278185901395174189719327949622207304734129368808809525281594086766914732389391421798749604136474882573431699879133876859502000066848685495027708547625767431112210950582117495397033487900854788841976188973541850159474435503191917848251005689193946604413910774313361951848985021241161129405449636883206710394293143907722399268571786601697294891564694529921600543365789428233339892178170276496775689393236089631406886082440755520461794627436608369637688418350564988212859639308405083334169807953774629061320742293903566897550382444106395484556783914626787116078195507718674296576052325932244395275845853946988640807264986328284641933348046111928497289896582371502633727840236974654510164155889327597900442774972833545758033671420716291718527022571166475119360068004377224691923778308493430515414381434173684429512893235522523389609088605865574310741911808408847999980346223019514654842675828527659755512920690181489259351995470384925164363479641590778113518090245608590285721136785378086708199288105022652134596451377276435016244225270061178304706912823722457718749810849749635026136672734922496651035649617783851158584450144225439249511613523401771571960379388649439922674978369032265723456944058131584367619877547408063494166509162754796535780315878041613203748896784040262637502785404350466099230682158699952362910781144196433309059301915528394898662375612972500463810634072232687125526624319057675844353761420446275951315230144035655371880775913829382656421604136858321342919993369191347533374631667027855102335082284201160718714205984558472760645739188854726281362142866953970694180208831850891030481217399906421394511233675957108939450475961983089265638494191509599797556993957438152587639546779660748752051689407796335204743609673711915918409829596181388830772966500791006311260476748192168282738931972316969750914262013746618332791063670951613809454170495244191624833721891288667965144736416205691488789506489199442835306889609553758155793291559548095040310647022845010572794274711142548311223004313280668037816255063123188930522066841217057284286305557850586247324732185286006574392750109792068556572350910677728311116091229413218914326584021292021733071289732663701133981411048171049750335975861288242124158678284840924224332766950255224378583520851211957802265772841070339228169052535745464658871551781830584118583149420963603242232348201116793425447917528664346582422421118713364607865840739858014165776394273245725255716727390613137343686823043441355481536630393353276038833131866752426665297035329243904562678297625071476545190518499594889996629300851516753804624943900316988749424997838324605873559997359750059709069032892491941625957942031853356758134400056702056461531704027259192257720848071015517638232129462928283745375105126350584977842778788787178171222847539148318096160547998714915246030370278261697768244396625478332040478956904234813821357343972698292786033330026661808783870851693409300667810527410004659127734651873830141076304951308049748827667469435616654041290670039135131451549649807023705051407561207441977434394712004200369283412322292021028979646638692567958307645127010980132743832667940620996456376404883465367088122558782350577706482343414635779443619725076978068462652958331998978226511432394206422389454816617274816933598868199213562551496942169908980781899247176499260062241088011901780564220296698036605313782644943068683833694463350578172550716829515025780807450422353328356943055450791229985025496021179307946543015951829654265116255521939242661832591072605638248553888700416609020823426199582152290421225450334346658678344857063322449478400378437336584344109387250221317604863478551886775786101305735825200117935155943129290596752904441364633187992785730943092296868514343024088287269969619780460201280250134887477576074287093268731279907624727165003096289618382462117704256596305135102473730374897725332879916205806590656109718516662402929114807887924525328265736629674351230096625672071764470640144378900025469607356308861996024127017930140568229502729843406620018575890731311905082409698120298499821490359430223725301522149223891999178764811371409813115237780576198283872820739653465671123573219093206198262368206382459470369255471160315493529651582398749110289252724995765431980854713912586015453832534039976584369639501614018746501676792814299174732063256026218264680509931153699051935994705941848168491419010441534974921049237125644012265039833484967902877717373055793220052162861416139041193625351520502167022424300802231315944814722433479792037275713737568859563296949672230015287646355569278669837161519575266608226193258548147454808223635154063445896589354326639541653268883194268676528653984210542901540720317869741516498174021632912538670586561631287774411943675873060747815413003282580179979746801485738658447792707060621909718019167839133524149125058513461838781091489351993822017165587506583603471324032904870029120930931428402631519179421482806476590006948873269005099770030735332539498719891190371838769699076432475615212898536082434108975699156295305865115815394004454107952517686588364286392256656737724722186908010010413315789486222127447278179149887211907337641461825911072194691955644351398175649719362168590598546213827649727189093499082916185628373685045171918331078786742777861164261745863248400264280733501237834095911141605642090979015657545812209966139948971191963238382357682657289897956177442208455789336888315129456792231554392159430709889646422907517841240693848415891040935517726112350758516419874664064973838334812893892676969626286741266381761828496120610711644221099556245485604553622269176032153135625186104706180040469961582918188112112172260289843440911607669805728098148155962544483247596002790383516980813806807787033258408759573743210611275527745553459699123378067533031410015944100550926563813800781700859130919808141760604168514716398364586484379928908241047673745780981348480425557773375159095919235086825363234167835524206590527148888422030217044418994772261576724737047239519916764448142620363500639049939049197418924033116533661617362318805451918544557488345797990904649384610913032366125200853904162877169545855113401341135687942379074124695513905045131070616767558317204320142687396504410978600245942670549645486691652481561993358930379020121449864970966244833597719756839221538681659183387020126857211113061283036699497123398401884373412140783437561023091222782074856436074129746318949746458404924459264108018405001056341939597497710636858371531654337650297946138680375598811892996750884379336921088716940726448921530109599084322179583028390075275618036011135675454613126789492068816630784505732147248892414139067272716672966322614872076868085285770914692210699922904594245369572147024729248494137322223643354771366699907780330683878866207517172216782721422658154864402009521218446725120150762098681905100774136222640816087957999221112662686243111783755809046097984998845695299998446923578134984355439811570289664986495581886978907591349077026106403104388882169426120798409505601671414528196982268333223250377816016497519021879870065503003769788968266614756217361437745343881919179351010919438117024192747630081655769711839464022022587964971262521163049852703129202631312644655303036081226929199869230674041957825428669473073126945372463364544001013210833660109973404037059814808240204762986116739791882316285118471476383324809134602687732227382213263479372193948706499948420467956547681287052246699350827289200439865466564386504091590785683914206382177528348014221029205799740760711849726788476996312575015179104496993455332708446505392066918429491113834024109623467582440998417684578561259430253268089663985143200427611002384974277801998622111903541760234774648422942360286427484644905450728626250125953136734685894218691167756240960500789833252929651225165173212938022288329205202393109321371269393505426981078441756360165013470110168056887984354228115656122838318732926904881921278659472221463588539870099130183721784765069469971009710180002800853303993209745173526674489531427903827500922749238377896088200773420005042183776313857035633437472635295456222668829505626198481738101442038377002203432961916104156261879042111647709202069097639407907728236184476273944326630087114856787060794770171138431881967857291205177580009439643874046444925887092998150171648514872546500809547942812633899891027133169200757789022956625206416169331359286848094629076932319629729628841470683398312128875897387220069158366963863466643884132478661093347877803097502336173424500563636314978583424511764485067285124865446607575897203174732850289361750368253017857063725304648738600089202202178684250624776098693125246699830831839792156700509295342361008973988421177048313475696728191844548419090510955169242360626786326929143686152237122552411895861886073189822651978638521388452135970866972905068211682887758985954570178046472576882542486711638106916038476636739847693884378887202662969431161921716269033903139510677106398550713672914789812915961043062841186476834409379970141019285048484315429335148298356545823780794851420610263617916865345471235672354233072859693736840607658447541082483903530253169819435817701864468353958538541139008920635484040250766104256726799019277483960637351348110972075713837406088976852986558903725234600158647656698217388213722523207881103225700776413323076949221089096695919878491781922063668420392465706660062362018417304135779344876566330318233387628258664204950972618533730933998241625941591381343058953296713685597923109141812220633368002425768279449556885859486968229876457277637639196741057204714254458829610425189653846237601262109168069133593424298673222151162159614883802355499608286753520064048008742090737661611227173726042392582546694810880225655326554007701475247777499157863869962929499618130606430691427645769209242092247466104536576586185314535207166888113947444352148610364527965014803378156491749551251492227369211065824566212645263807311512695808637853925828308196903606661066071837720891136204822241010675639999787885262714428328003445884272253385566723735275337951869116248865191075139301514801845876267333915725284918672743940839642918379477327327416918812880248380563086120481390628887670280212260557239597049839836984907904022906138560601376358722013569689872788099316189423662833574439567024486564597011104098387743249404229006382292463537246546653924336777239158885547680843846414626615347032831234704430299690815915682751560171628676647557947221755543090085723758852429641108419141060061820395778266509138865817897254750064940079334169486914626781449050122943444165047036560955159862237868497440512431682225843473630090123873629685843415504006544782447535006464452589860555338174294236209222611030766408429828147841736464649306606317009610439674351761198480263849808178255925612921194436899114998840863959794874429492024745806567011829997576853898796413129880179458976649961013835295038530509637729075317855984863636625145392191050464595133162512027591213956045060759925350600925820541941626235294795535466407059801659800147836650315743966973931175797396369390416359515426177721329296014689779835858932750810834408082864551524591884184027459921984452182774025058037299018553540472534993855372846681984092688082233658373952191995438977501718674292753778625604635653868251444390988479332388678677815772919290159752214413785111408107634873745839353011947897455525525917232268462268332728217760720667163347712238140005852994288619194812616077430404510531683160451042197695869849227289003495113856417981084074159506756405915111141499455067153146090801498044846795145286212498992877959865760688931588206569995698544440775494419651033440260234108175857414821894867951440358111015265142446178108427685278176652088993924124350825813236925666903796045880478066605949772652443559872407902701726997106095220621809488288618240276257918798867986873869122818870803524236264156294631049212432415122395626632261509565471538868299543440712808645222135855154004896182765016834145368736338011027025538713347512045075641533492314624974201042960485374322026323554201886511569452067462284542983514422493640689224199266431146064690510054687801949771646897615599109019954273012935764010481815453301291212354904870431409741874997851014478959196309886434023141494658975489566599400819826271981752992101525219314504837549011619912883184571168139571165732318020136227745534045306614658988649658894789188345750342507570477043044825672537262055943689962084582662187037201987830239376789471941460245363036208764053640088626523329022689114636529620973277387291967167186489066687316292886439965928718305789749453700234560120424763797541007630124261374638710951438326882137340274811928513649876062905701181114816250440600592045971490714598763981600073551404003070955484684000334196557761560987384148900906729093146529778102307477522576764906900668396072118532932878034776103417902960079557210567089925636222380950394153695169893795521194812271502110971248397082498020671476998215671465585581658217681027395625057537588078928581317579762433716900600736281857593372527003533454404636420273997736258913521915225759363272843438880957942079060743142167218331523840693493387144940156650221759425364690742770327713432298127691922746112910996509673860689986741753849832737754610078236843462291180021686795773108684031767354096958750738454913652511269254701463579617625758222819163883114896195421138282793085193515883699234816031150116074916296055489545592980359307456900901493393136534072787438628844009535311623140118541020966215872230268048572134745656885571181752460739633809712726726971013888125034712617104632875140956130943181401127352770349314752429939418972811852973627551144585248802948348846226984659596598291843348170044418565132222181571400128699257551427290352876502740242926281509126283415557196765267970873482554863344332012243736293158335285326497201248933866587440330939486491993121335219111132428671811818384598126096419525039168349137735759723260637893719451168757913059911925536959410540391839244380860922168099105092886494272736057924364365720683765244470425239298660612131001024137228370514213722585960786440303908538192642254844232194427441143454362643949331015410092806038570775368024331011454435508192946280381790062449117343006457492039836116270790306743054213466857341119537160422650369309653622111020106009191769596263565032551988113995242939138324007205778896452849680263280632571692548926505551828385106522338693298325678224937687426518221542896198760142735047524197437512647271122953002891725436738742492505529947621873021450858649554498310129276130917774247586813158604600525479517641516420233036906741046894252359270456749150904352547203178598636963938946084413741499497040456955839443969655279074629751713088689749437177623101828817895019726680527122078526584039815369098134809280445174963099558392461603876838908678780526369251555318896255173965344120884323672287286297269368412657677319697243243223832195855733869886929808099409841383278607899982131804362761085892552884302358727323354824253660072481442377919123593575794187217447193474039889964352629344697661462854612207943902948640075954786020371015792191851051049488551907592771748178276523831430468857788551380031854415544475535843440324119037884021960263403516444779217500241971318080673134295624179590357779037442567044142537811238655870041651689535992581877423835155608677944027842712799017189785694101680395299529700115041448916990862653535922462855262492099260350310544774822934327588739804132726827911811220756349247665641626321445777563288488084427079520926611646605215426807057696117083770781131366992467269074400755428972502884256973871715939035692516932759829567763956719499509051790389174400984114477022951487596692672151132060842391573677212052296414861711227386569233170528935030074453465292605566149568544012961536360777338249233192581958579363662273478299876399508967314433108781964953023021476662363813259164789052219517996102645182076821409957388876618216089769095095739175894633486097938289386985072866915231459283617047415679882058424368825578611783767082796981247352974752832031975163976303331556690387671889789019011586448046676158046395127365704697181494106616024606415148977324354901265711937688425011542524484703500618459066558456075067479812477137599259259239176356021287147012470611006367451447570237062203015996187377673094323443105165139696508811737976466376480000268940151707018975221649185283947500837816947071239989720830345586727129644143706869334230891391391172708379666701715168035110603426502100203993442480311258027355633685743835308325065278278928794905305949793093123833847050546647835345992023172735439949688726296008857295702118715677293241309022637495119292598569332173973989148169759253644844749551082520709314506149064165393898484781818374202969669123757930894586840067249990429752634390975398854747673793593238181069110984665824201255824214414296145004417657743813098735097795147095615108183765257718574653582021738647946568686593819524333682472013743098854957265050583851261803522198099110035687035543771935208562586893929965755925920252683300941413812510232914052817054103929393901885756089995776427919053588749159415688171434309825406648935273818798630256503088163971753013439743069854145946535907403637839252152976735757409514434444541379428514229125739788253112693091430720639722499279190769570331777910693307686989942690559926001107301826497206892126379051017001043883092752705825317918332196554114644489968931046234335775971697899894149412896245530355628063878107952409480030918507406311783706105600333645317362573900777223015879568741135294866567780995920959766427086841989628572468907803473154772270081406906996382456310675713598234629720184325796263660630316862229691556723771905362364677992689448243531148097938926769248370970566110040255190710501897415008524605816562867235994975260833946419004945015523012942734650219610840851281387884147324837215232685864122614223975636027805408174217869707427101321951309621427118263008975497395052894129947826871701473821941980971340942991396464574063273708953184676966985119783893096631719675766916456687483422343088417699096659990301362182543581666440041867551676047316654058507695572261800349795305769140124289030132751002276746046382977496686352214420776609865003507817582144205764533285688841028959794651994775775010596582207596633154571876630954188154040757942089406585702928069203471552585767902199644863886633322801810442454534232207791558419019896348961201046906785383617574156764843421705260100487982280647334648822788451443210873680107159946511794117900280664890297136279033663596600162648914050420713392913553609069146503321211356735073273128383398940299811236898919997195612926754334141737856038476252152095281047514814982364200925593785826130664692083207951078839485662892403344511098926066791169022278081822575370338158287316937406745999827418892506280694037609389086258715215857442862648059188886920190103450360017608282705027023595174326360411140460066575957089795123708223696544591533005268853644346127311012844968298450884282848994214612193551462681411623091512706210190466046800099700363711025243994723651426550028788317740584954131168145893722185279961332328309463639486934010881359903025240440277403732083475200256655220243252932828624492548684803808733677364723723254366584585399259247016246527007746525385185832041485084884249398019459592049096717103713712691134904636286307289371684523009978496590356837265176181914924221828108101653360879624255969989854987159704591985131011289994082894933704853834515840889127467750904039740044856307543221372440857707591766859737703121439237156303445888209272361729684135611881937236130480787602881789011548083540588590592727743666391523821651919060751809416034532232785437941927100869188194626143645803017227577918911852694083042041589270950440565586807884854787215149934751605196123347809619316390282376857744480776145734200243910360771762100550157345983894091563873054884979361182782583513826499903948642839355416394731922107373316406126485294761351981795819271096127735403016988609865209749618894264923384720978858751822967605870777371471070545979195301087199876886348889528135930593524596286285887265774182689901760610059607087388756402990121130218675386280728288478621868076042279175957769525436210040059081814828160058430683534913427170469876226283916947404699089312964391191197656132634281117023368992197802161885416649349716027401725902559450342917055840051409272742657389384394370603476955794184963534392943638877850779523551041138819623627750247781491809637713416539277311281494576346630982664952408187421243408952158352940360788819186375838164162153580331694632347440431726655029545586942380345187348755588782179844613313520865950348152136637007570338286705756325614173589082233538913632644266748272105987628006618695100805850670942573364745784810213873633947990974733296768180983750386248597821279706363987734184848896477050024901521863355243681679636933283944412942928704363744865756777192661429163341924646684316334203324692103996514184698277257812588703694939624419609665881096851069876480994631975681868054233189845451110652544118385628503437632615068096244451128587085341919060808463982792472462549091097382588390809632895982639982118725346835990354343562516738433505489845081287271165558138751212175953200988813532252571418158102317241148227514647507963975555623605382672294118484861621287265697496507879041351424457204204941856807149445097571340646961362722109056275303892130924233821950219904151216801477958993146342638527632224796820904621038760262071316427067926953868877201587873190090149181050551476317990393822231203763687462600973143455970401240011660083709268009691161612106294413404995712511059240326319583944527533510138831999032539845869712110199387348308341728706666295511536301122832698760169435178941235548815720327346499749625806229585064598021652081127200725170995297091580100212591972699950837151898136164371364423379769688373587447151157173306451153646153852427870668590520238118766420407172632746164727732566561790660501372650894974689147482560762295851984360419471651732580990867509173780823337099524762365718558012055603797297281778476465237327764837970367561687945537036339897045970584627456537883283173151524873582217277284339606702959079014302132637475232849727835823780398423352193836679158880605961336462483574645302483930109911360160241630038116125440863682997566544023410460696436427078130850892295382944215996346427925861595447645188982619300926168989277563923195922907912600643993525571079586034672290372905179594478523572546359226120818197916846667683714521470254492884075946016310385628592849625893610014221127333999285893683158727181661672821302119192278962676293936305418809362497088615328556272742332718558328194809950798200298003736172152287408610154880901763366022450198805451773600956168806000188366217408703862916975080036091740059261749607672542763636929857886258636200292678640718001649702836788429663125607105118312349363099786135467616117883362314410341233874562177115431302150641841454983454635396923300045371575712940125794223859042696800135643574089523796895325918707031666530363012933921331486233003181587387475272624412686465134648995257825331005780572502800491982199670560956353819350277941771762194747348875822161076083975181985522652060072076483126482358185206145959909463238043044596371261704188449387657243059154939912592929425273209070721805358644826243142147164934088732537255240416655282944530544523901040794474077630492747386226615221580954854333995172977165885142920059431285300775033108793188306344224429761603346863383226545940163575685040994755711830190729284918357996884160261478816546680356726046512137671956263345294222097832401764650937718922417499622765227280082502643148969080087191794534604511909050651206445679763807654691790697452466087954829831936615731141497869634604720143966734782902879830641007246557778604087745916191859005799053870736366656525357295587966871008512938898791392622299017313850761040919844123985524807955296965547496346793455134496448565141541592790518931716508262483470849104954144360090386632392249063747885555779831691181945446378909964148319667658098371320493196454566986372986309889001478100356406600035266029825572303537814693494533644901502633703415205907428217736336797518177028243045845772288318763488379486272966941807373981706506514088497830032125095448291718019715979115818475802788864750937927063906776641685614082880250886389253635018218936902871374489443468517758422195944265268214014988575222109030679296415491073261316167524333441953929533917074357180752418320796626167694488838518455396631318801083163930587127432766011158545860997102129919558807462311673622496434465670023478809340034431888869211375830976797076968806816751175340833381174277634237612915506865936439130575099795502354482441874389715444330767927406926656793082093949174479979985912978647729578694693996519946272606256060883936249679928343116535791749470514233568667487352653998680558602528929584174381506911764059917969590500274909983287574190566326657493089880078213779756740967389653622190196734994461862100914098721829834056497313684737389770507244397099830012570482799820192728144272318622255487889519222635361528164975613777355943045763643678815076643858131988353730992667560361774214574725330717791684612935278899933149653106381850172895483308852365508051574433688378119028487121127386174290734345667404934573710667420825076747461139899731630964833187359758405947320520042959501990159517337301517761969403374496090109881320975977742042230678180764808030456158016453376389879598193244472925789184209218681180060343306547505305335759647831911746641750340127198262072560693547373055774428911962435148220116193069422114923084774460624826516205436215512797562383446089163274480585424055690270694231249932511146488129034557491630652063264277746201507649862032818001872534075921511792668257778274690818341501218589179021611644834037658479809762333260568287053660502026235803239868603668461041904180344433053492675546318765158496296814482457790547641960788288547616086114667405120608698968473134140845624204507586455460549318591354945518015053922487908059665836634438652577924144585264209328881820359459381632701700207698882729097267828079978627934558267640398341278103194745850870529426792928959408142670760450195720081525693852456992007495364920227035031499027437857960902121879590788969753379448852768242251459561000655775233809252182825601458499362609238753067022621536428581409715959551145208933789573597628220860374290277677552248355998863165507045058690690667674660902389608553744474610510769890209534766252770776170076749766412009051403534075573002276092474476744612502148121300349485389514864568779183073640298667753857819291607738366878283995151283452957265751309686407322763264664418294906543669027194650131106219324133845591967353106449319947123949652799484963998513374221134339019726540579965247782680833765984368563993731687088931067963122729902715902614081301323920093870927268581244941909664337325766448659333529422802228671299294403418873139276051518131132432141950288002054151577335766720624776996955830862747789788792181403646741207387390932529433112213768639603357717643482312363666028221939282558977164456514102107964465235399520253389586273613901539686925204397644192644180828330991082880900361696087586611517352374273019877114651746946400783950731008560027556914827169188885149366392296126726334708759407327841171369569985551008885599696096220876134647594461099397678072759289719589134395899714555253912338766788760816731412561334508865339078246151254507289168018270160210092924515973207444425910142582544724556990371146405438286442012559259199924570737551437720007470544568636166201054032737539509706753396026483246702740360161378865476900719311101412316491821504015049312362747606223127128867838406060752264801273032532711831425736155214943747345884832343280575758003603785935066525259603620715254831320156218807197517213290492823762803000366843106302902201695775688800174775549336225271991334314079996996346397853027696700339656014905777195716111460889181532972909583374105775799488980367413144656293800059244760308282957279789984380149709407348578346550507939192485962193603861870570526815189867669900177019662074221209256078263991992585838762603735363924378211233086346810808667266046569509608855413956637731822837896302893914294221362054836396208481376493853813956201395759871179512786111759379881257938474066089833882793495742130047226139912472331848570353157326823397349313996348942132877839286200412138203449941408571619456243352106746957672072533220850751021982371891499563097219720555420137908205653244371553719087902622324641670027044084856077628725846934355242784438215763966658961836980409596047912692088567023641630049525768341546332021317316046263028728457769662710839357740481587308311821305176246470680298520352912542285736429606403846040477469911126992531127988060604980198245302584020645046602339612857114473425555134931717851123344448123468222643977253935557461464479003464067852140885045306631843117011188607829892998778773461898203466479057844691125483206475234546815431047957732554056116734455718211073947981854209331282783416653343445655899989455501534072317004676565120943966245327048076485694418188407544391492226547360110939185072414352736425995677646806351185104819812705348906394087333788199478427304461627099540589276310103107441160241621882242871589538047696833802287225883892579030598773830856141717351413386984502857127145360179575428666857088593334646669414838193182073927991715502778264212949343766140489292197433811244357269000306318576594951615896772312259031443157082580916070829468666012616432196640504587991428712195323699318380710109583940687933739041917885666340805423809132143742570334274683071109442041746591091387438211296974163823592311359870146067804281678367865189795535068904580005201107317214226541179593505989426891454832231588536919774874993189359308130487886647378688277129379336838589271434695247387165717308334719714838556721259273440142217673051554737220648052286873731274128961616834873286701093154612013157220324504515398286991284016182417842808471848246870594618494941386134165335308898676979835108101785867761963467803718176559445873860648753517240041306578786648113069402350088729224071459803008645626833604097937657501428614636125448982763316629596795371943166815458321984586656009225156778070214683988269650774342757765837296503178529521861977305575481713815707539442065147014166190868190545938830238994745430083418823777338732342469846905257400905467682805645647553131772075658564659863202829035182058062793623152591306184274819307331717744378878922161398469963144216722583233528325226900742838813885445519573909604671064435861274773081421604868154111708502312217820183541447820201091626161382028990460134413263157319658715561535029854033962263324557825920144763602870661779102521744311102339887890416006574255505083185867778956413807792012435094305674283190719132604672007405987602681895377449219158175354020872773996681479710281992519672973675242573503270680228457611933449235410980071554756830650242197787135224024212770823917074463119762934887878161169189317307539045820305178960661600162088685329735768787424474038841182514687211877068293279289352690591868451613453358999714497103417297976772079936858854836106784605068893615514867335711609459746910175138098075701470915574807792591183590632467517914974958401923551805225892818111051463050343433864660213775625422378529015116010861298963764013911607009065880524810003603750852464795384105146741902368872220531624292001923829700053580067797865662930908222732529996684921561487382077452087759773136659831058740057928560028630506079869897861775379112430343786000013801233901647519763666562071798041451071857606979945473873626651235180688687163517951680967660189185126021463991352022834322316320724168987016669128783179478653362331329204642600117497402306692100512164781340138920477735967677792308430465904501696415229428555694102111679037142465497542082482907729280649824887655261379572033289229492028543263827747718972378756918657933511957114245565127280771232996559533500612477618811113821443513827088813969621407536701867345701221464423564598603100622942080580043425703887248235897176423365891408806808322938761547703395513132064010801083417602082597483137419793556799044881001083956428399997287500862528142890953731858551907180678237120320032093799978718497931393288352384015660668052125201531234903319178419122180768350253366851476270111105656552028545342817468552670694236060044762508813003959819621839547269958476452502711793953539737172639191915552269210397053411939626497577912473981823839337701149854377209160324071550078943388790158623208383456991198464513059659912715177008610654189018116026221375575846372968224235928786195304580127743732736386873877049361425124537778500310838285371867832755565754356859305951396775553347880328188742877679113790897312721361846145220594769408150720063362234098539322467667459938030883666524232869766917919688751131332627204812883566470851250160674966348305231170941591689110865165750445549762722500668951094814953018021788594470407621938980563666576291312625139047736286958841579368410452305756856373824030258452735278035394858978178977093524020742576928040276109710401628888839997062101319971272042775513075814231353810810470281005414513483453891258879400128641041072062540834608547723917122122832178137696106062289421248287963609989080276094319653155622625536315187159993542509754873863411580112133777243437669178251421428621302925174745221881540494407214449052596076460306088317935162231296137903891113794715240315363460004566577144437912035204912336158399934091689970300975206070930668204746807054417593514076656139181444008900696040006278672477293378888731951617160853789776378590608811123849370417522851292625484220928762525382991428448481569821396564091507127836546915911630881538406895894746057319009167339454482941172884026153687993881272166880564714190965348669081386582896049029638132321189264071994747447286405347735540532674268114626872883646290464291361177871608831092783725632874246550003804657249316385509951224533472379547413970449930514710864585205728662134895279000813707732843051429051137403274009831945676662000454999467157546238693257837683203222821413553672732523690772183438661658429852672643174233845768919349971103378026187576961086231133393944790691145242803202542565262776300783329668430703888549227572794365306736689894936449869061302682056483638884906641894957682562730642938355323312713546950381734231838864284354061817896707999954595235288443892121611817663832843999138137010592155386475718033086968210725949376794740466545708038257116638328770964390072155213883259162223308261474746769535061781685471449340416455456663956339152005137014067466715686220363589479486808666120669542853817466758656047099154009926170698378786918766052036449852959196005664291606526967108339930761615730680518385879145337467484385483876349516946468674717639878391329745831865600681993707523469823070818421137680136748542331347921883448597406190379225121062837914285173549358720723977162477497031343606919081175929827026051351931043071985839443296127243444330829232125979326904414717487475098911460822030788797853764409853261010781231778463699409205055841599325279592288344788367352128235918394022123142077208583521215654511127523179128746462886963735270880216004887793133617577273015009684937204384214693451551306431009416226547519585958512659495175248891710465563748024277766601059696748162762011433624501918308845293508391078244165634955317001684555957350984157648657538601278279194943319873676184403159654839459216176302757366135152652914336838774243059500623873978176636825938838645688266232232247822701909367738529258747607002808437440828555514556468106554276810394986449295118980392979030690313223309681315353819594474996467708694052453341296069016859461845280941588577456514736040356976308015178759649617313723521651596706452804835878799238963928252494669447689185320034934438191622807432249929736219509441315795644326533938254321820394385451104816614755440203289971779059729694466617848212318768045681185171973574314219851779959333019268078688138176903417617515487677779505436526918837549802756719597958651816506802576314008918978623524304965204420024408717131807839057835317682741856208353789335225073958466085784686158031450920330136465014063937924176936690391320974670289447279988543401314194747253333627640124683287798493004168151525674847893388591066560610848381400543899654062924106661291852992803695414550034276524887593298166168944849576471253370996798875291288775998734557146417531389759314129867587374813426209403394521743609447744560800880648315834793867936099083397574150694090245640512930764849160163633604469890751873190422062200846245387758514068084084271170857692567970239195839929436400162636075324979285328811426957151830576702352771718266671617981682249532565062882509114928671463577474872733384541547648373525894621847645747200197989714587581963173640981228966770862922635897197240555989686553622120383612068107296858920527984751313096163700252557937111944925885039370620894011632120995192671111778773768322585813536661492423032301406764508209754112098928161466643913628107812314130839708866980050984517894685606606704114940458464177905393201188213169660109694152181643262196704607598308373105737567416999318883684871916845335739576069486205612374712449244237647582169645870800853886593711370114663264170882334427477426946526808075897722182064055330808803857938850264557376736378386470480659850462073020094315758615245069364738563400099406794381863525928242353475591324323040889201362155110717635910086784663699378072959053523841149119902347333041534559848031526237405904414311203565800632462257753341506875988650432250093066923092821015506543835241013426629442747655129011820397059625615414646688770794547633478610935195549839717354205548101909723600790885114848309744399206508088142785416041079748340547443372987389932404520293831886491069830767791982688921009990704579259564707002090924759909221726364157249654403267985840781213327503001070891978832153002294916166727183975666173811508536384691954150704330017164572359165898405536316704867525662447439343257860580514823995254939328406387610635950255823066371524315692343692387922383819880184744858332927272943863826973941920772893109787030900999224529488439792244495772907734239025135883173957102454611888942470468308668642538453269435339565858271505419854247744514935224844327702568314831200968705179212302648205070342192699618295357932109772769200322325874637615763951748827771358191513145739265379843766420760997388649491387637461080165142225379833554500000958076179539482840394464489971116084128320422780272921445436600347038722016245219583822797913678222626776392370485809209417225478285579898574230647202372337782055018397558046214931861527930194529106275696950856474602855185417158035615412598896430353033505048502512797213489586228169601885901332310969128277607359302987688370375979801258263753466899325195626252617102772010594861074701713012323303054708041702176223295272394259603719884085273710956998692270009285547205331289986163900083653121942258565143043180395205585590824674856679458384535932947368024349023811015966982630201784796469967776350811122478429070100397022659654997003946915537964938930586212270746309425359880037841782227135482519748032401307676000234933841386223138552274028386541293423923336851960836582389063505626152913248913952159352189287264714272088764765117569591009493713795868508675160421252980148315311550979786156988649760233098094006734354743019600557280925601586909935863918059391363458927804761857053180219480543671021428093947204094034713250005686873799302485594037659203766055615574345438172798958754137179785534304779747764745040554409048736202288319067857966557631039093251831306944803422979302003320148851991764275909560763728865047692719412265721467942418773716400219698132215067102324826639565853526218635710500522236585445474217436322041483823080234861106965735574454792472859742282206045890416851512401954436339161064499960175021025868590737196075863944788924116982463114750112130283231251654730617006626694898019436652617221109087985808596868141365977463828546022615910390949793307199255498469182464682884720844345645465497668660699330814585148869558691277223151630492289774206736150507622418766457373640466128160355371803067774518106919664667905104175861340501920448827500532407179455251269120571300588294616487898425899259815826642308272274271141484613087013030689849338583526868381020877504244889096325110602209909978181733859713316716898541409567379490267837359463848303667207222492409105714421443094262432882656764640358533896069536506007797737655613530979783379490730138561293987911296674947463650704623105871638521942133262725599125849447330940941029929951282701984687481265461023018704408101338598349944839602221839015638947190449607612130709945562877426963095923139819671720524224107914700035962427199853535393996362431575579287345302684189036089269897638323869519680146074791789408292643199581386750628348133695359445684314423195888190622251338411694689934092019601987124450978701937261229716322057013962940815004845678705074955439275761372759106109796678195717832336482073295209260591675300821175654826670765145302108434298061697354715534811517569556289528083884023766217563747521182550087937742516850663096608038545821870615816477012389623272085791664963578523839336247284245907260226094377188932560009948073520408555007998325306894920782116220063251548328531020778494489874341070295997352190056320449426041633332104089263348451341758671242767058750302805255904173792855268511526898701230554201064494690275995071177484949517951702901732404888209570414066905272082930514374255084139040136980195768625910769170676960413281130391001913119587563597462525401054914557803888333483137340155941064389391200269161546754524662187790740101721739262870322879774728225932038696572992720784854714983881446781830934005368383356176250984479270289998966650507520285203324353332515378415840020417110834991487145237588753347930870027913744899731848859766919968301343191327507024861971335954277305945741857754833913768237404453659872787040039224592543656666834493284440946188139803168013304162834443602027142378120485437361984995701478393259557895782123962905572041460165584178618158146639347847123468796731918714093832910405653336144540011627716382511009801699304388149079882269948899064260537764265995454676619496395522004349196479544021935173887241935139435030063264719438704470848546407912181796086415705030874335196468901255948744651669940035177601303961565376212758865532253657533555833616350300636347240053383382390583810200167415855040667519751028496498632083481262369490660937671483922523924072130243930542264311093326644711948101225004043930583357733900476909253444562470517705816335787887709974349625888152787419146058036355556918615756966547974023025081244695665833134626285883941433855459482855541390395862498370945499073307955585458972669982571695339121663551223431716192221245960919953513260976603795135330915431032673430725989605841963995648869509013191843193451716316476371068769937008182120073110375063560503960141540338803649624158602322475883976165346182713078271367468540967894810495793959526201503783768020246651749305424511926898510087663184288052107451566630857878653207387332329775162443361944865638562665136206148774059760378850887429054646691081187458218968008012468193611385665336195461046060592876098707423561213289051794987330548982726555120419244649272420345325820301555659834058058081448696709202067699843255977581243708320086401725024126538736773770253761752301057097919154236728328633267430651010692456606295072960326035908326783954871048106689405385929030703606588003615694424046861865144581830026591682610260656679335885817865678924445688770538448654772763040382756331458783571591229778474977099104383450741044291091248855235992602326642385269670940504485624945519018710147336575390678340185525032387482980634357724976153176863845161466097435998478375830859667323668000244707049036172478521190926597850704194456549647121051263683802028903288794406350479495987845300489480966160834909733522207178896504073900230344049875031789920667573294264319513812947701707808630463759963367990722303417012103618444514366972994874751629564272231403345191986444207687600855450431900069366754123653812063555119121434063777718605789622061076678773056339308988451991184710769718700961565672655425605333178511520444343802682398948199832660893732007640542598351922553948584809267696938116098345993224866841720546476479053898288150641695312437514572297528914237380021322704250415274683987780967147267105527280027756341436397928831483263610001046980948361967214438645722180105313484356473549969742640384010858143321086059340245777618812223154372409929141071449558742313591439787879325715746076952972536960555639253544267047588677550669035825433122835463619898716388911426229908455802654475928198306091150303091594414909803870154689350477101601429308472114183838008362900892799454925720851204762622280405556865774704184475571824303933915681124985155575212312949683816281182472979459056138307508208785372105883024774932917667289548939939126233296263044484226202326832229332283557842596121023145303050247846752519709172305018523595863105133626789520974499540288783631662740031191419375027163168649335224020819941738118691357260173058536260005391455091383109142473856623643045141373596627597493164815526877732812979893319720862124621546728858224304169482351269416678570300943222651940812064213573066909493910647096130155004219436907448087478872615515548508695166867081544822647793931669634514805820562617768318451318950002671174649578026508426826504970521381759853905518054487010035397103753068728566307937299892741525229303761715471735454946513626422092220629513467066467317737053729845475910925819243811987750358057725612597920837601458460601349855295685737276288393842386762394852998748709495426883572838101962122381370317008718577419551697142375519196654859798426855073152004392572909964769341661109864717812670779135204224967795431970588669717350065455661853551913464821678577360726048566207903302444053302682356301608162328474041721548840024192922293373760145883113422168364931413420886261349076970086819591604296043826893376295943486927774781807929401312777913343058225385559221702766171211532089711192487648459590342275720058741953753169306853914708588290585126673651677208501384128295577191169397455077373480101939713342196406698342373729726820925600532812342613743320890710898424957126796963148258704989626531692377914928527660182648112760379569200086585580352466822289994537683699160021714202711415196820726193815168789270895204869643147489257831202413930466063412850460053601977640255691522404565786703206629075185012461375931733187315481480384066944935063181350840980262423327072560875691238119914063128032638579046779399156166237806755235896790230516202179420678992238464756708515409270039860933111405119323505637344315147670391149178809822609775278904443981505441395987108100318413427961089185915872315770925238290150610619790410365025525760770013337186327436880119392836155878343853066975557908349575007980585933054502948115896099489349078887478248563140593364079823587196818351562267202229715912965165912666092922591301160208487596977644450891917664223857849516837652227098735062874613687232062136177169737456470944524395645595193844481055031830790189578790860559175583697342371501803997579870296871518823515291967982855164259715596112821026114841850064579828022480402246709075319840982254816110733818337045903781230521309636878311868092189398795693477711544597915708705810197348704968356121947123465956234414485632984810867383136215821158204721568168640050791384265821648032392465114231171558857611338332188790142677847323124386075896375384412129740074497019252719356033403827968027985563971558956237802464877604526861203075516720225135277383085005463248697889746399828700916811892655007338802356512052598325237569630110882174998668893146278864656241929734287507470922811837246170788629646224257903270697231312052387370129991005078321140558140219780818396566522816352178114492008918490497963839745038190732066851698920020828048017919578378344351753417381492395852977122949278575623139870518760404011686210897269886062732771457531694973599163263431408903979811084872595945741920862979458970981762645587470003581900082308676943249907402872016676212991934228665678615037116161895533734209706436116311716124854886117619177254042848815885407244975571274919612133234939575238060285698189602426788439901364678705328274262785065105152351199405269372370939792049416286313098802259876230193672050589185746992557750309967656240843785156030899019308028286459547920939831279877552226455942034919537084336123236206443433123118316943198659316540433811886626403103352438801595375733377031212086183416073419555471160010968087812559380890653739002273494202068089213483980242025378070617438546886417040609456430403761573330578464074029649397627757359196259216371317967283176812375221854848609277734811903840647927295401365239951515699917082110898910000492561769307621843012114312396711669103387093622389956930032413790740080164877730228264564088429831592474031514128109933269834803823963045353851569763918230639659429323835497506010287618048538669102122420556614332324183772983759239726454576559684517918563017432394618628329753268106637772038369336371339367262369937297602128922077195663166007924909215091756816479806650800573715290568123831439124561946520731376433785395663799811656354647470842009161911691092298517457529460102823898072017809991205229302676808014299681649862987859246431460206725649217582013149441566491709822081981327184607465882931860967294944054158164788121180255955669719570943954003921636852977479827242469876834150314314152590750147409549483172193612132179858675749749585603754172390027341113344926712760664658531232675976636550917846952544460463861039125905526599277325543904244983147528073334858704696639748011608331233847047171527544608933727045634121625043333914045004332185109331726830807361613759486543654364422242783969969747604647815386880489326941123178027164310843948006301514362376681122941019317452484282889328040227735798943190857343450057074214199545343255868841606541233768688481632805979368305595805307639796185849575545120642437569291616728328506204789845873994528715664591065687932809397910783437583850794290799662449789819772552751913177954427190685491526559796481679785101976307290454207763343470892170936875788674303493461978631564444274073369865869292718222362602058153780097553170121733675649637013266151419267668031516681758263266262081662871608899976461580796776276346677992165503755128122173610220918043049376496521103394011646953330283193107454928553451549216034248024324881344221971032224336751986521722642461094024323119409488358170628414611593630043166093645775797269968508793553419991280506574197161607725749538885242851550157639105400672323454620257347400405506983414713816749681503587555709003741164772940733908008210051690359990807863539455354178799510168595814890566043420809784093364952953877777267871916172371588456706253849130584023747020135912085053378477893367205091585782493432305188327724316836671986857382734320946025757103069663870700970910414655141294606786508481044304384471909485695085976547401057803200605108445508276192187825671523094020075572804331050387351023436605193940363445746756857355038233871609304646442284713945522823617071833994457076528041599397070345974802153163537695360215365402167867554642526817916334534792647776785798312504459343877945658860129183662129766778843741586690641952881122941886274962262299003264199937294068750843219181582224270782528724389631668850885797918819927368834151785542092312756434259274019547318172080612592579101414117970081464667808720184962067247471347395772392799237077100192123612353221519972581303235640758879818816856411899337092920083300180049171904041752311656282031114630491275121216385963787245370919818908167579286085601902713985562819818903953765619370127634416538327849031262435179327993281202064881246633629719233522613591066377624465732791609812218149576959508142599016577629398438251763659599913485764896068122855773736050422459249156875972585054753820785768218901720491777218854966135414217865119490251288671045497263522750600081350478127206192162542277029599021822995648303952977656160518360419583047296036652446122273669817748787389605761843389184118919921616813892616426187682068454023815937443094935684002829445921762002047814468388101945856082289815310073955221130923959713768826361556084763228182741440047012773635695816992606176461937616036879287741300922742053925744432405571377293029637305075116316594177833217801521009858349602382628409926365259376431683351260231055639870840491858745126498748023011291229744795754297841655983516708351418840550034523743658944581763762927894572810416320691384490360038629980484101175090542857848451454181045951608358763679319328474992444182387293139582523631599475388841164806286921486666117988246483031609999374293684607194175121619819976618850703324809859914109103200318112433991238411706229524450701717081947806645723097896219998299113817522977648966927408215088073550572448442643714651677273717098089172196585192351515636303064757497938069609490206140646583352890233901140246246078551782131852934498027899030217842480253462521024033460037603078757132794473143633485279065796680141430219346007073637677207953262890820367427399635071498502795932384177725894737190336482990658083413877550014765365459347968253838389706690235988763393995196083325735118792193185649379924267158701466900875187254882317955671241453361751293838676580074306911418319399767935729393662280392350514546949481404299046720469083549318275582227028893885458028161213584699649208435655684946070943618192278909681654765082946394050456988819212739848514013128604558931659317459498851803666745543566359270291571118120710793940569753627686316936816248186142505173062351761053309074788066824654855114099286807770563322398687442097357308754810604310187961445196131059760724983274668409007269988434086179798618457974555152631300716423668122512929047701798657504328794711593416134614874075820121814101363625418853815073364143982575591385370734963020862188606407154527843743600464665003116878988729248199392765876636687808608705402966675215329821431477584592655244960144455823356443189809859226478926849305717520622332938919008446828049160547392545049053272929857897567227675144177754827129157418168094292105200568191156354826178295135806076254574327024083729817600129937735553842742692014013903782023521381302712544078062708561834929494448342198512918429420919137808048335075845857497769993588827861371409063659397563466434343842146809685648059301495085837743037389584219809562444317625031554967138122861728893197320982024756920828625064686744472889391656433517956438370264813573396594337417434352403847427175655148636489390156393578499891497470288030279206296366642690176637155704526342143640413281006349442506034694905108250145198916041438556153972906161529286733665261093102980128431856623420625815333573742085613652801403801174812208114607160401042915837301480651731143478745705053090017667512374847469889790864455588059679532091225277237036383087464026546729830353881182631480124737441442851278400269544759022858157072392216576669773192909207254193532679977555193704774115377157106525811408886257103261327095137184599078022576149525358812346873429901940705405178569049736366902806120028371112261443661725314572997046547381662837854609248089002542912624210146124147066020101540299158755296407490774325415452012684613834829623386743917071976498372469724999013017363085368202166608035186711457090209238757851587528079152002622427721467662346091217178530647727784231191570721393930589311107652757956348449120543948501060355715024857279902515534926048204506443170614848319260141655898619724436008416220874510879812817174905695768277697744226717433053660991986527077393922967112366595806195980035496543238312298370826022413839063242522929206449784393667168335239607698697068510750245383043450634467239998655644633451261317883529734828856168000855935902503487244587772096932588026484633232893427870949968242346518319333605756959469543397095079989117459835317351858215883858561736692838784291834025635931494903482985747574790566218472430518190525771598845243628802303499087447247690607989786089973689127514031466081079676206719848629602485665900757490902571792862684362130040243546829747707303213951089934518454376857760789665816346968267524402261682623630348695699518345203813092263065820578856586213818519475610737283421869695066035031643056103268596587973397392665714097105140626128194576508407996480829230527899543687078845748396348435982919444651671729443781281693996513346790462397353101746081726608411050408078629342040630801907830630495345425892545454272448748568112075356736624199018069249366649867786143438941742247495662128441265159044049868104754053532259302040047770436639312188022762863166743407107012779305011137371335761627453273623447183230007197130805497391329475928707349140291134899916930301840111566795284456508938813362921978652434565928258596095621014535699839085177458123446120625329013304736348506974759906012017230790385073115168851358291623822622750981994465334469825018393776298311094960482103094130353186290026829331906533173537665565528845686133836309323414257279194357180430373420625718819698458450294584793587060531440866273947802943401529171919722561309645729198986825208119268812642913392120802644431491750575922378248982921077870219443032791710077831829294275806362575252509912095059964908926126477456681553277893601339260501971093219875952282785971355405242655184989191473614468007844888216012171735541153860961110876803639653511369523325329355247189660693082845534944887018970985925758057439290560054062867847595943011512989852975469104979149974985965884186728445052223982858690802188316101094227278975599189191943672994385828276290874325269037895150901088876170318366103206360605278961294185787934313713243848141317349215949163195996043418252208076229197510225114163963150629828932430462172162105044249287257857539013446904702592619615665101233448841793010680356190154657256290399772836121017803409595222264489719015675096839872762464701246641410668746350576635771227263121112478790217835231374686712286509559746839890809262285949948317500786155223324718501725463568836468682641809226110576093289349878738538387481413335037721843809762095201459449261190868882445194675073608222759819784975738318120581167603400021732635083958808085291437905392584614237942080835786741999004860911868483525698538347415913622151210037727528560243768269766741426078657897066467830746606874564628063374168674690998243903752637574695630310304531739121919682983163840764344253888136373968295610133389310606841519882984082407603703941903724900933415656312593988791875227208078925379095446541442378928391503718603673544985201460117260075790434564128769027160845785068657302107105870187219106086461535644374293784696950388943246094531625064727380559100771539808593375723426679622993130958064104338845983280192566887367355916418782533326111332106187934279229595069918307644925496492085357920059353724832405243396407553390925654637009548363207377787494411643791150063375456302540120084480360525137865509029936823196979602394222755539174437426068724700799319764991038067784545912911789282961767448608917993592044027650098138633530311187953347699357649660477735298343926808061849835113192437082684846695095545420170623370286230471395386657430042969213723130680388690177211015823606069837677638091666646123642999414436756094974294042425346473148182116942208692625585369794252591085990874757912427793609344070192672151803794737263874780225435568959566470135048232007243793492882105351082888020613769512121229863016444338810987369713224848141576914612992916618430212243816471215140583102420534909446432653088042230501110628139790125055432501423022183543987148322701348724497818272832733258162108808907864534940775039905353815287282299594370945726393152359000028893379876441324271219128023567951368378771098414384421154932873234958627530442439262837541003310068013483323302928540746532682680890507769654042230070981246317039353992441059025497042489033892099183017326310675768422875096250271156532985153308571537772845167274343257454640138714594632225021594188365132567714038390406590181918891612290906100371271423356335008792879694805241530325961658173793477703922929487473322148022231847092209996565506809933980950081706071687370206481981565863444438024000031846533960775282550903635475950042162844787749637808487906261533509008965390021443021427249141824360548609258401370156263186173975050978959874890677110238587877313740958260531866161645088611327787164488195337123462401879399740592492511577415478659447903854836342450739104286652649072944754367355375554975298975718238614738270269909640518470882443865573552810034371391911689917328190367111317132216360941864672379027358317787122727803708168060830610099064055522137628598437334492522516335801645064442968716827580060720479928018983704564052586653522607564184431071350889649235765990622696637324716609615518812960015953005560628422874766111072788841441951216204558934349307491870808423267143678201091015064769745985924561981795441266827770256486743312572720477531850194966575481127794738141026828907120435229523467441516922677748066269277505924097928445822581302596676601011376293891058986467847009906032794538333851286326571815570778245126860085165247283079193542343431402115130836453312721555883668596301800443569166514734036383047421360107769240620127445701364928971136429217279634043301382550365152655838870349380559005697782493769830510502435006717722679668929259461562755906068687484044587937553067478951318011641234012865578134654723371053639555481022334130526633974949414961415014595864750009672223184913876231500244561125252666189847948989052065148571003283105786481032273363255756225780883448761545594004953762241577411172565282634253947452297844000548179199525322425858553363274787240048099068827599269131227114971577569517357614851057424480292009784137064531254152168964963800805645103410819882058323680107027976222034423468329688112297168287428019424789276144564756659725115403830542343610457281618009988108224359277945193659964159038062218572244705023333261240334602173784969743875127161402480411308862590980730647156064019671752905675130835923573219614266366528096559054522921883036346133474211626424376713176638371690825827022243340792179577607752345325123955256335473147751134310537398734025973603801878477416255747987836586088037669774438718207336012672287773343876697962215494014878600656108758001488547659619076096557973240122729899813590241043948969922633863305070998474817200292640708892160220534684341200547091317750838580247467497455251200099180708955572304841353621144664577087816280913605654767225657246325655275038190165681139687300782114656139251810084082945217984913880521675160127631844010894503346072950287733548847969774555931528061145324997214007564888335157714877688230946669822755251176736162007451503674019336490148357950336269338619561590263094971087073728376210079601615667927251156549675028436711849421001600515333201857092947499218336083510140382033921557054237122582282532743919720344645214928566208981569823114128441950822508937313111433760763074664385449323945135323267753198212911264346273692516231105858821914972833105174274233122282738088030501293355038662011506104881360143403705065563637723871188702704838121923696065313943979290125748597143006596631403815991752275518726261634261583561847763145248305026011803722432780577670343036803737190188657938737880296480068168423292427733557411741994001670898425520386297953111938204968176227899434487936310112537658800695450494340778773088855581936921431301344528154031752895389743206143436564925264666852714271069835149949867751253012458631814589258083075338700341715962104144633938345831279931652702360204500569625618391087522971904130145580951569516113327557290422336566981729422801714999207313099184394193200131443869627501500721692897045473067258083574540029709289274978396240720130431524565852610041404209364619305008407296089333181450494366084642379762422001801613845099248506749310028169363449210556315429612063537056073878925815129834977362670844899186113614199766457048118067127452148753585659737526452534334849541665267916833823400921939760926130128707273530287604802771312622257753769512566323557792373625496941050374676306930395831887412871836450316291049476783866199800504459964511495340772983084532880721679828330213868434905912127986247646130469355297049382872956580678106681811586464824092838642909077703394325886245438112146396097529929964596566419629997101081280542647007303476775311166148385201890661358457333572933975190187281033928464793494148874301463789289552860911924058815409487037594080753773730540988489713241470099494758320428951299271553606656915120139672548184726990587601462145824298858147815446425985572425820776879365457455911461858575066090915644530209082288350837275879851399057977845643885165191668918457954420643111553994243610874123208206105683183741118745647471253714826056890592163603136258377494925576904684618628211851049640831045031265871018828275459263675562986990147297073533392970643109687972577474103817800185222062857253100790005318011360408008966390812667261094851735230801340524966484136009513098745418088479207729538161117238746046995804600059441739187658671415690489864024255686069379559275199807060750081063533419632749690089738169777302575184573334333172398654417628308817411450139917007756866204808520173461494603384291058436566321449991623282449418829854653656767563689668205108500734909831840499222264153120590158407215472688361862495292467823121952562794630492222837944145456509665455666581210179325691856777585495419282543700354458841479574541859955667243577300472172004442369639628005604230488598732431809770396322254275088975076312549116766846358382179509520228438636371698613260170822630423349051056219206610944815472531294913957901952407150630759090959196416701356081963874554340029483492804819511292515979802642454343514648661960451042007683065348858279361460388616797425075970323326971653350807357185288540378899732109359507669436508504904115920844836257062566568894287417699399628247087186037814267936220885509318294151146710723746427410872241877082987830996690009069808055906589913401452166121977328552806853598193644226141000078093182130122669970890084711055542827067553106854319257503074422713132533304057945606040777440790259196903988591789091918226623334357740693448918707963444626883367745140171306515644156685622593448087630100385297358308358519337709417870902700412220933659508710632745565730582423920136010936945117401693308168194711790943758585247071542334420910177778291408889683507313186080316712462656237099617394634509057998554325558874168241259254764245845340012597422926677783149641818410177361994341611774860076379590314534606743975144538857557585325001788538353980376566780724210620809645714676831809373784975618917091715031758712783141456672268818127255041157036829416137963582986405108812539302070604970737656671643944900435335011151571645134412776431758688548729608904410943191881209468348834782750053762165492643450573891865752619181675373935977709331131871463596343233930982024996758063353421131560581257745316156843092685512733966423836600423999504131089349874423625770442371082105458323053545465555460609204921626033903033395940575059376670108881411725819749980757944706166702433707176064799392926762063476534687307760204889917480268344577632996640002493070956413580443879377426631404595713560855814352580343538359878897861008481875535708425529222969199524344252994728441343097287427500371218939821362625670006128879642018391446962189827608110261701837070604853386335279707168260796957122382523053589483811616796905980775393182096722749656815328750692927653899032801073655795930868596162097765319008253027177732577208669844367561001560718050402276197640613162546818436303247572028470138687397678946311400546028307266699413629929311269459033660383239424906089517155681203645573517898745544830925245013461739180369521200190944275505767092280199780846426513591741225221187694666752459347706921254261966022555146651563022503637352015243486093020842038073325804147352672768475603355568373335072120848632078356429877000033644171910831351231262360175138678732475308131783225735212930920970619476972741226442070572844354702820879084559972819954676563709372472655885706326683976873572978490829748700741184320662498015373743332704236661486776136099980388588325143524779371249170453185617323020943582225275860058276213258691455202341070995257583955494765347108790288756169093706430405667224240392617547885324833612186830426559885364364564001181390576535953197619266600798749187982645002495863701203433597405626828140026126810700523268357469604624559356388592146237832893846419782863949748218535077707023084421909350576029005843700481718449805597701877608734720220648407762211254201548653481676893152708288974106889279459552807343745776795549146349227840076461441896352904329801470107174288190127987448623682567389692153067694574848783230681864422624727997637726303516458034788569530024224975813454054703529983868480275253368214660065299978302720954986286544065098481871755901018330375406335880004150184076327959439443009935785366882172041089344238378682775242770328797130898187658237125691188407168892488227188693341739246369821949069203048924497463652501556773785785618660391611899481154344574948549147272839996317889899684877574716813019243617219618539099800844412447308973175039865821158013865308755750182843171580801929892999606468306820139762409162625409041310469969465779187106526320775444921011884715616209786893136843704783834130406855002970917149668491432790477439106636421382188145661101701861597333682292988557515488436665068723572515373811971203873313347095814983943130743375455183825598881109214741791175533798107835861863855650531979125394945565242039208743367910790111699999420991764400432567252102473300553477815470706241402392625354519398484929301207062932023570317591481294895683324612607761736173058338088688589026458958267997098590867065980820343045756321633732798470048371951150770221162112260518675434544731495979016342088569576839045031467932278253241775328763482141862376805533527190007419803981791039705922842629334556538237133533345540239863540188052174071265874258176539913165024600631110212690143617465787619267951100461110564116618178372694171723551226688912379084968836991499260582683842699948643166271446746467421844184702463808959141577856718692268224502355553921757157951761052532329615468708795050363096229968572407000042486775801233960818049654830375195803535523341500567725467847790935242064871207470670176354529504511886240531388332712908415865566082748293367272772837964483756683799467108651757544355650609723248078648520687009973719276670417724256275639261201245360949548616732427349028753997358470098850864767846356427443954163455992225502608726482174365027410177136960180678041282566377386437930567174533294346074563971650604719789829438498776514189650302518177787929351439854820243711646416653914590528934393876555484778749145124835331682790749430705412992765009309789439366772599244594144051312694763702965559789911139881277684349839537910434970564781118133130957858108989526718342806624996190792530497976684226969343732846279903124341977193560594621790063329947194717137502081866644054439964192695372944776783561996414142071947032509146309250969077033595577808681317589634503418567384759564601652335384255211541929688444135174673653557470948269603744654962746120358269340525726712959285301751197542979106264005319835418369715192381098220941132863203385932410031568097804248383717151422423346205848408941810999711570481702886517331724013609029544098253106111884618561467789200579690222232540499641770046349631321172723235578114261853341569451057604658513115277939544027105057989000476659377241525592390763189508162961819858390808470006715561799893328573919937874812212427376875479395424817666681514853140929475637789746290170074885810001145522624721622864544897604807851226967573929363606067113383864433108893637713096259556992368068205286362046386366048167803391459170430654680841239339762565289966055753802034419330239004411519746563345873834889492158780899629677180440754934225267256150780211656892102263166160072278775213883427737826390028446307371215458275669616554460516569973426853999870974388374381991879277615074019540911776403707416880790798705316373544973610258541288971085775282690643916952423487910640548019746342916573903591838028992329522910538259133621311614302368574802996699727821102409240169021400431522962383678946285402590018586359308887583316111842370403969929387215336828988988905745666307852217897635261152699351096277364299209573927439847805665836265378604793280221456515569113079881529072168898648774847568049971215865699625470365057635862728136246035527182248037389884823070490969329438422740410753156540675971401400054886951422163677367177753148954132985182224066096575351662447661962194777027135544433666547868806717855951726220914538930185028257920502792032644944886387354537435429626152858624797472006178304031126495392355322393294747821066240913290077521084512782881828097346324069623128603253046744942997950273557109337643529274260051703225538663788696429114654120510053583081916160270078848188243156885002490661049603780160227141622337473763878929682726935313136683405348942121368947074324520685431763537341934743418700026671864585068103832186323601095466963634098286034858380524894082493766211706036103209620579162666123270972049274664921882681988300367905026008934126644719115930852145035896423611904933178813778481298964875519968997879141576606913451518559268819133595032431058100381451593928639747618656750274881560667694345647466018124257354661589084020887038614228277442598327024542145878776760737026381890819602106266332561864136221705355760935221747544317435505567413643415739398707177657301102694158323337618161510531576875799515389481694267513044607644598238465629972281061330055751343805634372242013339330144134368830178110949652511400391361737717634313396107734874707870997406182422265855909920731221156650529217224082515968266709380148436034391869824206065920813159179146833366818634412803567925338918132883344036350734189348662340213085115116978797769697419924075196718571735988397634798750518148448654604106102537363157284591916332177114303602637142959237677149904111378423424773414585789571776370820469980332598420966608984709320046740116287599315527502121058390840038290457285913584425800098448396999658992252097557416781656621384805030296065525546813408252726660136924865051213506363489879615659066990077339247692334635257801353316233724308962628660224922028056611350608424575307902345495329633153848916281337328983179042147972534455781874783094921374742444591659295558246111985081229951771139423703174744112254833388451708812607104726464813530706458749705892234427448406873723814070637152008446759756815469731748578590921122729476640066730778366398170559429342598060082618263599302338932701067519332287155258208739292500418496457836162531293660270113153999697028724781273800100373231229947082724166698579019332088562140571093258267351384550909019253434348178654778227749777663073029692359396788438629005730727236332879987805527974415253492750427272958865785684104997907141479906705866012695493937092566102884556892727736803821487246829346099777360888786014200567076788814837243397223880112872159165839374416576154041450545751383990686205329065403518407836939631971341263554706790631635655183493801892556291106614160770242162359146553805338431505414017215550052104635088337894389911994137201318984708728796810978820531502624073970068521234256216766927947783619498566895189872286782802605709457965153357292993376898253558667691374087341956500039846699584573640775032712479572122008994712375490625906307977065509951563494110057805951035705337923994432917383205584137196389151510857475285840852170513957400362936146202976266524133709165504987444872119390446214270344295642016221291832381269770154383664322263408929834119209942809418811315712741529342465715091763179093414573998502503313414089762127147469218837311074552298804887884927773022519553044205306743696291657688303818547364052275273167700593650687759284386564002478909849814477481353280507707074516668761478787343966521367820309429886822032233884109396257959204483571612446221962130590850262233833392444838753578053246299349747969178891250230099899159702755858920730090584382664049168555280127851866900014976911638963711923850859359959032529143454222172225998791414625941065893146600872086547455665730872592073862723334499148497080985277015493578775438659430642694596615132485489899712332404868678957114914756172544725132318322622938429861287625718302638700903622244059221852755443194378109992066706189780151326505422548540018019387200222115121177827115762495971795707475619736012427512655119350297085077685932971409067738260761580663709744845396749434234716584669023261616313805868729532843163427204389006130861516484895731016642291360296733462261419105999609415819154852909424590312239553027268466599557708794512164522947974399027783116864573226692717099373570645639494340087256218413684083485070855163299131419553323720638057776890982306149203618387572451362152473925615305306497237839502124865256428118115387157859437584651178867963169817473097432820592836875536006349616289618345098751939248788485621261285003002776288679528119300495894342311210952121021331910252765421844187082008772165143023770977194159982886905055224861840550589782537312314633050222153183353272241993914650386181986113468370079740563440121483974931316315980671856936262544172537025351009031389639846367048241858904749081909982511995460448106130472284009863596421127187138172987578141237944388564236189213152459937396408027799902460683883505348920110858342788411927529389483031041039192777681173616001653165201622308296420634041811966426539731543744961911470985500766138925260479835315595320827373181327711208035008401121008458336837457591348217620710154897020401451435868388776635203149613711713761987577499594863719841707293006379758065153713196524274472924696812897552114908205993524484420531479940493064907405737064062417365357683140780553976661553871077497826026937328200320378249933688193177488374319349890827722458552431893424194927711216237427707559250234972750294114509093438093300409390908770569353420514935500822389294951193477389074416019600975124948725364138752086556927330916037777817044690964718742633164049213623198127596569045896018877278905082307236304883550931065663654819914622761209874949965086174643738149842977996916873442067711637780492750088886497563079446754277030579889751997878862668862250724458349791380512438762876967863483732510061459026421247995315893605726465119408474826133729253524703535809991904314120700743617783077878312178054708287945420241861136874975916170583930765810809189917081171967761943220596342359972466311243713442795435866816754457129763779082384265379888576713692562761450708464516412186587595027015015289797331426510042449468957881366358345255345985335087108510799615102657725341958999898318257766735153396208610256295928781592429296161039366499566630105767926116306171121518224800363220543677432030753031903034210580470877455063885447036928213294457310809697608839549489126633456783366369084184112700827252937955259699060927513718490949340131350181544977179332999804394028053782098550034252211464140061419087423925500504923796139137433945443736060223098481975656480641125201788885110099128431065590182607762159157604667721738979947919388332409730234548266726742271597280927728213564828063109475790942289459427832636092657847423617011161530167024442079361865839370476342761562335059669026888898087220088305887937930318211224253949727517066578083504002034241482380679609508109092050681772009473411736079390574617219023373045360306702016661757273901939097940892306840004713706584540271062778420938070170678075685363942666358033103705615258141822332238004035604984795289112765601313351039775249901847280356948717573971022608151972733120356749268049573365757593351455568796332514477446830389917401652056655256672009038197631132608355655872452024790514997142826765197832977042883126617074944088644115554582753920995021854430344942858642416209609718251967242778383086526898375709555573217822175667009581485010526475819730179887096712635427720205316504133396793855837148833529393493283544295083832834972858985443633612076596431402423720948637624344052879038951041034341090512204132789821704901575985160736679795951706660000839518115901796619295458905609828631784658857127579246742560033987231858559835562394096138490883341626836424486927547547702953214578933455514465757471980309986449659876128879772683426689316877158795659509033207458558363960282459135085066492902769231726540439288592643334839568858680292239754120149039607071808178240118338702030443775897373400978597432591790387587134375830156434412467199278645316326176455293285839821551258473294702701491965725652320474631764161042634152561167785682057567695231282718725019926176525035070427993936412636086548323120145721904356728832990614656382395411660629802420774162679510045986418864934471829177551847879561985539769549971825482688723397557248475357485798045425889653938880341974410722442034915471796105233646762744519223118302306410639578981224816254042826921666128857990745352910915858446008583462766265409182827693941250124925570563769145682992339694704064765592640542340128273306222621261984992767328146301420177152722421790271880003873282130122546716029333772915683602466295021004883162012220082358205583764711779553480891540911655950168341192435821618605957001424430321153989274100346221159125089659372818632825461623375500801713716484293654642247775323554877135204632585162671338516694354894554944627739418295917152429637981822726027120148866379097511035708405294552640683630233604116898592638702584097056045609700580565607194130912728108520639150493104274113038571770099348762841413170704180353095064298110583010940101944647146883430647892567258117690112356015624764521702753647836658356358972000229971022204614771539656489067820686117599762876217637419774330509230314347213367885534305787721260269660044348970693225960185741428754109086743655759790857691881889327481510087422537380971397817724739027469090978635366294512980568009073841427021123869295254689633573528185817219620749962404601628775013368012847240422787384442303656143279966102629987691571322755952453995037002137638946222384717706629041496238831351258347739601243276429585055470186146231328228819122166757662188212312224390782665651055122866562005714066705235714791786663317906225937164189355407606051022641051333144781803544697142170856923864106669285023526890871118570627736737576342856905236873519690461074127121677870935506008142657975587599365833567355645070538239939161091741422657179934515673725767062421061240782172141991763652329739942391488206481865853645036848974446064535013610332131255257947798110693161162533352767123380446669974891871594878967919399549708958370846836161195342407629714542409035207941670591040506734407429537625581300082904184762907098512242483507224523245289385748453233912993043871234897702458564646730628700264931409062295280557871626735894389625274168238978910246005748073692143100847567018546595199982179765982499136363152780375693136315399033771251145376134466612258742222012525882077251541960617324474432615806127473585465817973634290047080641255747628905429317731027096680804268164659288995225955330072418532018676978017592113021167389664572614129656421484967403820423310133455968656010567695762255840334052709871449418822810192995391001374780402633726906210607439310031574826061727828860909110962319815349831769117847125593678008069761920699243023217228496478625737560243093975897101598488452359687604465543145584311311122268634360480247080686752316947633024863233023348055288911174062238589685994956600532294796184291987973439803805292324310825711802566173780946473651181866990149103649900115359265601896936002999269260581238151811757805898909972515736344767530188643092579888608777222595330486107901802428997051631478440330677031868988947313030487199120138484592764739324744050768021239654152155860653721310954718381816112629550570068035978146719050036081120862969807024438222048422211274834772278747536561536370146306633866956408905830616162136094568899178451590151558811473106445592087737537372853415332585185595504177741873487318308809524354421092714279745586046573417613323217923316854140307277727472425140851675990263634808524337491145514450834709778530842449867728365049660289404104040640344653962508476817345610114337277250992535988082403333109025552817399378557512814629743231901519861333865797554336734098908742182865161182283541632267489153865015306931121471097575025556018964827542174769693619325622439934399746403222583638296903632061726360157892760823338696737763718403717572808956768409441781929539257201531201753333406828978985935377824546164843302521775580738702831243688619551991923556245664500254679609261577854824174009493413129537571946655771835847674618448289964741639846107002567692406368722690073929280168172949996200642367446809908838361042351527580213689591500002136888477029589545530143871121725028769695973456590856828495277800996378166140300227856177231440572705942351868255769980935984277497333927276756944735859459793969186752946576291790281642715673416510227292849318083010305995725474278520574262493125972638157673767150186021402440120663474382020387963369895827244932719825554177809035961345335361013768475049506409282417132342705259092927984019347727915823900722308550871098386637625984148278888310348310327128826412812176793695598321544881086168750258356363681518523407364036352401973330861854833981697503870506705803961996520705299760655980953731320841985755109831622810171565987922883181725524393347834615874005292702266283645547514398163890202626720165660751533748009906479753132877164709761422102843361160654556305571299473795096966345883027120425510862627489786102882089718763301028512079377143891502451283916701818168156326128373106294300817370870005896408823218035068514795437285372183757110403861073967222094408156051740704079632957494021436263409008305969064990618406038502456724004416612984643373135381316347388987342238297548649044582515423190713196541403734833933581827523820968806837903150288107286526752951147449992546103202815278638707773216099286137138843616858804885043580841834993477626088277363595347300127730500035965153549778901079214712469087418262176038906223282949858033262866066814852716315779752153582692094726550231487604533228871724059397212590320354107497775030089998004926711781281463302788803691462455602547621893713908186957809084541033902916563187251438034909808117366327164018870006413258365538197232940399173461471881308345346385050414608364624041518077507994995329439526365425254371896788695977058229754718833316390884506743870558012245016166106410098606680679272355986557975433614386423297735560154927976141303815479629850797838735609743806078373939349343250444407664861227828443559657938802130864856056094726373090266956725522599748657216717272802551593956047221825581774407396385383043105471768063403665390370395078912620629495290177470695808835223166519408860065150931501032792035153231155399832328724595392589831494648969938697253605923021246821192108213068030574025906483423163976765369690699109599662860637620250054503296988602158298684856341263482701928935609457189083396755406301786370801316813098822510519125411380546135540989998901761317204296802447901592051357728551781192493749064715678508655336118878556493654215158098237460055736367001007367683244426626538622854653122690282165006413771378590894457571454816324235714829367720085118309273066143323775913132814075534112667885839353251085451976224245192720492642277086554607878769907211471853586861879206924146130026040525116167741871883985659377362111446828726253451004295868250366285325148560700574405994139785824347597781545491556248800305070919527867866618402063700766334054156129545764608266392075086084318713333733467916600775449441393440733841035145018940995226800377515668478744086401950587357776241619618336458467136589843777643652298474841482773496600914163998997612318136411238492140658537232094439727378438912180905384335958086386114530807797301673877747313918821085713054048185657506524089656260602171161454291464635663298856563811958767385644055901112151804213892186599282070613407037531553810127854778928060035193686914777305988365089306532079300651188390162113982642510252419693763619225117820472664525506837390178714560227754680680899396588104239513758585189291579219285233479057043413868890540218183367876276549982738340431574105432347112136515516859401492182799557376202006678251522376086378972246327474449973944150806360925733747470975686928543860198503086807712052637703200386410115866016686312822141514031099617554147081906502242183129711858062967718753835765129495332729858646829647203086921094913255845524806995742483865257276579770047985961731875938985374513426035604523761102322054929362431853073471757382502895754569415949155030973130366584627777093297806032192120365288102110870607676879592379618789112465234997219647912981030423776628077800853740728546733780737064759344975153423711987116236875230465076688113562710705683007518409150631627073233372411443513152706792494006660848416176643378500871989454708834886165110269363344934387134020185109861361512781777080026289684184435945698673710904491367147136004167456305073545578447255543671617018794006023186987784616569810490555505490496628749393843555737425425228358373936998538364435534048727160396482119618358928669982136463602022084457220774873082229765727177457060630315936794183136572645539771846839619238715120629480615295781783117090400419731558151072403172499965833305259614763908096852508217777360043579639090015168303635477605929072864084106082946735810306790593873172912986523334971856323560900954941029124417559675209913887936975753359992921225913391838494359837637968471758020240596592097539532659332001443410647317511507298265036046800646308297267098591980873353217015230786396713500196901951166795496315461735469871332264228021867417572352675279571936387078071448088442535191593465343681702299993320392890329058839954703471234184938357477441810718253261838105071219295547147727374018959021111473831845695407397084023513894096283258912801498462557431885337080826051294389443436329479862624038707627151992044634055774459328543552068734647949916194264032181521183817873838564474128510380374673216970428929241918539951335424153874411824966313275731229475243482519237171549171743878238507890141630930580384388821795233941734318366260889218012339937134191415032734525514461544865734193343913843370778252662559969871774529928740836414867041843918360005519587979950512903489850379569928793566818151251354692086768503077275851509008827127158451877100383881111734336942137843977461509180688291720368030830961047769921199803810653907706811267129852801371433753894140673750003295626255481948180738815921867987323729360657683486353384919315620875278252757921694067787220663346494757568129949984979163782999741067088261113055155419634479080559799161919506659464959678683483757515893770907137481111354803126981696224289730051618777559535890927224055070791918128490279483417729731054680390067209986536781188295414273299685458324340983755994500487956231838402261046551359242652328870957547503020137186616729155835004263783625878347016023559343096123535187181149093644303902483486515575369584153220407674188450630524003452016185176495060177870115484456819782552219532252002487480424011738477461324639188651805602792565895388316878231107981920985126851045853156666944257202431472988614808093086504337359420337677406404484413874865044876053327481892720524075335249510126609215665901820737007585556555942520276209580054920478798190478336273728715803175056872261158191541977801638401591848972023202581556011509898685731536345198348122086215054269763315394592496441157848985210111060967323865737111426950351177483808416943755084493840129334701816434008193455388132206864011428238905633777334173426726712346154157536905800601894573020403023475558874513546833543655855663242611622886059311461542060711420919241031109001465810537260316968251495755952450957707205325934615314230328041791829117263555110945837979280453671801909085729187088170936140739304800683233286365197384617479675109561855220686227331188683043745782693947595483280212633390653360347617866253984837790931159995762024925902300486992974436505654558575204937832920556202940059387556144108476260436378426424623225170406340569223633049213308649382931230170984486510362620635578168612018605200951798125288045264508370850322502597569562083972198912438685052395897752894684100267129727336163629318403740255581460049720471888960621393219511795588845639505779822708447184976356296087301415511618180129140543528666220631485664772522283658676141069217624522750295843455551546051190268494590730274643528082642510485105428559459967981029177431716371804348907136187953339081180340936473863747603364343129396810860568197141340054538105114760425072461878607056903477354992392232396744181107395900048731464382837733968598892737934359631161919673821569300242437525761404848038296939663148957064864313411306530391804938458793346687485053065430492362703277971775254385233428592320502932192766568670391736681712124323993888674658443577642207020437979575414219712780115446398610549451380198539752956584203577965358430353102225055904151775468704785420555667436143836702807344545114954451710484669366960646922698584823975261486900342651321330514397131580521236891290487036580287454772724981238335947975164000491416134187001660401385335045742234823959393774250146207565156524645727933521546051398207456744460037510999670571304176366885935611315341154405579293504394565889726710523025074788778591849792968016916659256064270484758987227677444677209929729509751084642299096806640848018536556203094818575865699243569227796628172338463730412958181010738701639933243567937198786031188078265167910046100075946333798448573110650753623930443919023928197997267577718977934275412682662414258417990604920680911388449671588389288180178895976598938911144714193358658683842172346807514570734000134275083914571648336422563917760695466731941102457162040254438258333606804734016034008891651665126985358562247871402595064482101859777368465956821606997743244725505669511447075014529180754079467320898463848413850619065232014828558223325992418777283578060256584969361182762749732565951518919811391035422401812862041139689148531975140258255048134713342495265645366996811403694028253685121009285173479172757051814650384157647023815196498741413967589178535422448686667506227669430577357193115234980504557666143426663336891798192669053715417073486549244165473268795633533762576118349676208218409297602684637855384517199961193843075539608679950486020050787353640713043316959815148633528840219112051875684729238737562858128489646800374831025532032680117295179893382570126218286661374819456193409773936510112430658148369061376148638915833478456828940154360850742623494040124083672844663061508777077346748830858277519138906277381906409096024868518005358384231156231807265690256079385562883974631650178928898374995775382220274003101885877033332090509077147507928665235831838611815118216228363395134785490118699762933687610309467804299415339040381299988280526666110557294542604009813449371248330959667689148348647676835965990891164384263325333422534508547535615457782035304739079273483066290587199089455865129467571629399300126269327171088499424240000842168098167073284000813804853109485549924330640981448631741879995424106630419515480757052202374576409397310714389627094294355489803413427036902577916793566942766818696768415743018537304595803489447248538728356426715424332738818157383811778971562817387450597946118124783376012862521112966405994140429416818392152317346726539144353364808093555478019955811536636942317479367726357237208577515015026931071895696292432540591606939925307634575180154846831775217531982301296155980059383392659636951318023525425307156576597480331290062599381773297674688841366838071571051127871063302332209377632032005399257399281794571469486974094821802502935503082962185612387467497959051950996386969750273395600639370990014944506038301398564174849915151112449924523453930685864868274065073133106030677779777312630538143408627286276580502676138323876965829629238015943682254968311070310175637064422824359814755241089882498328628903991143306890312266778101570272789245622745058402782028563092012121576084827388809499091022821605430061324609906899529264234564396784121185352216077041120681010643524913120722795188694267471721685913571084771655175504253387706617428298088742879501860913800742977867367355198489541768291922997915986686029284441054059938956470254468967487086754799132933598495854589709369190459431676502462677872966511110244797779504894637215422248642987595738524265103380218060902802111762241367180488261067195422590786633371237354895363629570321172577791642940516276966637666035089506766329728932255022094431205215731067995519604981371292060466973550637383844888914611328320965864137973475318924680099168725747190182408561637381593003371569901407444575368907006106673914832849735127664519120550478430276530739904474535811575212944378562017785640523955370905581489981052805838530025530874069179799809278148233052539237810341540250950694427112754070769715335182235770860682848859081175364875555490535215388090560111813618448594561654194413621282365050993763092450573689683221320116085063955240393163729811419021941522307663925748510335761527247496949151947534923848130208048779910166942786441073564572871502865552465305062430022311543729589911716207648804193090370230866699814228864792855338339584553934761741093072120985169592871893276509904266947817445226183565787925969001678768042874174432259183596526765591575265297868212520635689921182124828548397266534517962611699679177091935747097925935749649285624673648706483579229510301506499211723060841352980178883658411232129677798745054926042713558939477384867620007848001702149365714411601471482571442341122871263694533076211093051649147386877113426420337992820709410640155958002740447056010694792998127795680176462030899357427834313158397280048608409470774674923857782420971312288990002588587299003446800601920390662302980660565570559372107157126179279436966397362420737462012661467893913276036589640389225293519896548728503807028469680483485274445677405790760374464337861680190811800002407735099100113872668251118963597188407296431810584550245506984221649610839883346641638968425402987822055276303285930351136944303765212464860170032702819547642565880826664720448183034218469620310702787757261107187623339841103520584370523442470435668474300329808471035744999125260186873921076690416585240361076863051971366909254348577836148690826321282121104651447202524469546024351808002969414084649411233530759174032638852997204159886170347613303814154996445542620530017748151494186212626064841583216663387712304187742055277280747916656588756799575513446550135408931350715816699890811785668524646321935316482210611516505198732388883655261320174914657288605701043340413750744236393558861780387734821135696129860898120617944545562986121864034449396644866439821657117675275209809419907343752957239265251846813660505253631735051760009809450088332679013785637622350805552574034972515145025532231073962381165566840458321464676270914677194193785735695645929145311974154535177782814524578418603035790316507152012099878241847504392153785897848951758992309517071942164939435295772839603834595874831943155394489795422177349975404807720034033397673389679534738758660087314165332874243971845027328798080981041773968158858315279075003502937235834614628306314193468880038762352171518209427462607622070719987352323459532930583975373060429626114142349579691415950257080394199194353010057625341594692692407026951515912749473906158537949912874078848101605156060784935089807767462067904587584894886417464644841898738836751595214967517661716790364220055645312100235688938765913747742468032147871304217764017709773180597885842667330434975291640797592827054677442822716424504655547084645775920084511072617311596636830974211736465297461938886052107506771113587664331796497174535346906962852404180915731297722532368046329516803945227446755741967438374506250158791573319869363727520840177285037783120395837659671013812088609403627803636667574057982578364630547185923554545138245541671593008026503634286623069355970474358249738248055485440388017981830320978914688929350921477157514749764402377206740433639178921956088321372826045766003753709610043523414407089070432981983113223307466968171690236150054449630609775608851045591027204034261761420190038988191472528231919518420390956657376859772286636305998157552737187259924622153232886302023740769921143333732207801073917839718464884503865434189468935074900036004346984814569008158151547655708419672653990943118007254925847181965854543050613453128469297236485461236966424630043253066101511177943705152260942413753522110892902945543656563379968816423299995681382951643884604519305770489143161602583289676414765012192625857515450180625246162082670414684119197018732210677669686665317000147745166315793592614706704807837375221946330386565065703719628278117349378328955867472326093646842313118409819052408442954153849038175804750587366341725712711480614746211606332690803345340174670388399330223373840222708309034109264194838773627629253792309805140720417572708071431961661978495535075992566974984746170903463885127920619724118883471012030692563945869363250938266142238302099793002372139813279713003578358802268202594377187663877915303123810173528931146622203558096395448351781969815483662911944897593145691545895097887435752825887202713747051296931330725701168658881843473195089847540901936725133361258019873532641330073214579954503730638649507274921641897706097036553569967509695663107756938585424686524255815119143530770215512440115310031081618464967678816345257458861986890784105013438554309521892666368950551358629101970886466835227773751517490906931387852645576223808989002978288589867080470305508252037136140563984373219972157693976749976630016056741429878569818324694606735602486072926257537183691962335320353374946402993800365963811595510660372738606915031618840084509247847202972177046165267397264660491647174080082335884395856534015239384565981253472571870081041577563482707622925924826619169885750754302687607920917130383821092590528242900657303984841572358304493440828072534855582445281944440760084733108974361739678165125704732420084385552737964272487904998789694335571660270991532593751178562477480248147980792856904755103202799363407095217786486053560094283042723291707641415441205545062404748809090129248644022091045397975822328189748848401897554909891357716776847783447060515521147874363581845630507014629011504548398402624988784199423168293834920669135775268072679754646215538793630620395325997390302495483831808743157651196504842572307004142167026881384840761027337518251904798978412448449275235776738927999562312791535039769765127734679034569058161803223188346993094901561257611252221472737653062403860633914625832316709359077850865143957863565027294956409386758221051699351799250834575427446691450932773138090343726567509333168304392867556637317596371409985576709046233051743289722441742217006467138039946173417601264789487570083008090048186723655111574029621564862525461373958103530936271428790063990854564353988276138418691503068309955720717827735984765468482470360244811457678525556956756461226473706467254668557663814764593296547584256854229074045723408236703132390753927310548814581214033698744917531639998277122028346044003979990833298494938714235599868066389761245756771557332471906102520118048410346560678040316848150501162901917054041694123271482705659404680636248744344868291763678773570423228752808318289109837487170586221783251823439526866213949599815489149881148049939762972129319326047000148112578194703629085606558473491226220526623904316029203560716982021171764781518990967252359712547170944621324813883211274900004416057855931102585616667035893703086370696326604107312588388715576497092202143814219887748314468123324992256749775457065813417715365537666415968330898870650931886457838826699162444007449199450949598759045692795661609015085767696110790827069780482521525673189329332915106935288021682346485398816291803551957639366792444652102349583578040612686805808641889469092069047584727244687169985112930964234958773977453829692491486421290631217772546565545916961852563012728908805160572607024547066142389447027085632876742223827784963478493780283453960870751733764629175674681309046478817812380876002661411375992368781729532548889154409222015205997508333287094697624396360082595880340140346370018774083185534749047949059290274517306175059835198213760285086154702167119847744390867865938832488349920363074921061401154622257033446182111760192705162848261702331798691368718170976140050295735882235851211154841251260729890570220096581441631319785462759912863472617907221738437478802720695420007576035171705459205872050624644183775793370879576204632599749105494029613628630789607099605235916730584168525993026210934256977744496154661932115402669558943539064017397987197083965063306171112589949050808034776007452762893569861369133866595599309997341770993940004945893630224783520504400531490412031310499222593012539542735251283288370547437358088877143829851483508776085011027978338005471208895484041851248444885962687572012342313400398970345306040954460661579731315661938861946275525137342295354770690392953382350766277699893257027492111847793465786237870600889882049406691554114399603305950575633135651257345498078263856225662272579518754388668110969358084475760879409298137797835295990063926434915196282333415276623347427839596309740861656430603513048731136254276531875921355284697877899766898787246959548411974545333122809228349285270337525007673174097550037006287805002938388827825498768454485530613507900132117913112792658693561611427516921794173905800940636818391281667755362044358701052461849247282476917829391205398892488831084805694193133534063971717126918919374918755246027698347500388775077080224703814662975478932235987811596560472283469170268094841060120961220736136936144877879326604620691430078387075089124138717132325068969076744318711055692624481619787251058158167225169265841434323290338008828603461767684757897048676407793729740605694284288095857666344563955723341682978880123606041593374070882920354045774281472230966720998761262612311030841372945075843685473224927652478805228788048858393677838225813900297169593310747397633403824197201481613047308779479037090999969590838760389065878087127932294355531087366138592051186330822340797588535473550288796891551069247362045645310382034963854187168480980457070455964213621519339868254140312253055511029238834274475207462493123458445147529499412495020360682418175908486231894382914112332729671864350618745735853498778464683693251919726572142819988133939794593475471176858550325061144736471375830950408984477136672084415824877149384163699115849223899917825211381949091412838607738371043822008468253286811505277626642972463435641626162954070101789958793053604048767183300464456271605417914047020164197998406969913837930407207700672224282885498116987060821763094367446793424580082285607774374671359896848962002919717944628968919748195801507401070014504076331386296291380581303419772967101835979508957047358105571320296183476139941691101946389526482078051585447802776518734495186086244022280729539322002255912558619285430576443408471296210392336959456056397632216820512905229724349707723494808594584802542495350587175473199390113992569936009794500313872741508370565293923649103971004318813400384283415450632726790652392500358979289840980729469858607128383537140047280964237310570223146712149906055615404646081876718826536911604107337385394213497137171389154981645187244233557255400736607034545921284736449599057852418202435668456675915996277324551272970968677599175830297052178364794061087956034182326463809170835272433804593069585769661111618991535292438724815174070739236710940885443249804637310702134063845215363471006608915967241753634454461307001472203303795465000752590871204842516922352733608049622147641712911252094891351272511183003371886170000959346100162445607727230308658860629914811268443714903894071259049455538771051032500627264427637014421281752878525256483381872299203219715474598218462941143070149370623841377572285730899035446890011415161931944384435920169178246783471005889997927368341841377500280499623099048793613596444542884745184393063297847026659664971685383141404804246760455267395405962465538162166745762493238980215153530880217274209540529698956233723082541770901739633424102657980675349238007205245052004134372570134895522521784677930332295101911011140396789091419809077381388199139980588856895810883256564550660452501061412766602975256254155797339722150406339917689043920537495757371852066292817000573855654325350225075309100694036910381827755539377676308580933426380278886000320195267058500134197237249841553394594361329276987761895366082273826259941202393254756934091920234539523849594038368742969751927507376431987291098250513404694782779132049485325127141226754006985178297912399892981827250544043675473229496103444243851553873242940333002188037836670723407309588979775785443190125844601104889633382596394761742565836928913835145081226790735604567079482480354088934313215864212956026082688952837453873641570408308086163639424490249025940799684604073547058707151265279501174876210860349467789017121905512643061145976209532052089479040723974998138486692997453974254284562869897884711917263383225613365001256496043254944477936972800517439140877170016381798105255985412111064533530994743043097790133168315465322012056028847924682430204247298836546398468431442971792784819087595656311631986667537342355964926898419952306700957076543466238188576053534576966211245547636393773019583077538579411880711914505131178229502368119208365223102359411718667650723808437239212623981819390737428510455705499663274197824226192517784037552132060789873971240300689009103077090745155485431169848352925830072802941642632601401547273915314988229448863498219977053309531789175704664050476442479645982148746828717601961045405754700851562989048452995597679409732870955345770823217925123588853809291607604933478411417217245717068937860414875915456059798146251514257459141649292462183658118646769733021169615601532990286181204206908072683167314155559741223742490621911004177580562739609104018696074882361899602147900946819881739356581371075921116165834616183034747200206716615716154853394347625075253299224627204429298938939112431750318578604162633688697595825081940753173528189261475501034971655452129931088351911403379954954389032339131730821362317403313667097473761769608992178950479147833878079644071057085267556769324762135054179845904668811874751465079054722309905675241872784810924665528381434393142624055299805312590847552849476431705312987188426513647571304281578384859466453872328341582107402297538954445879280910349931267328367472008980602614080862493742399906311419510933249520446862940640788038326704566805721848167455972440210333492167487270663736758450943745465240468784727296364371975265244394629665891678757550248633676169883167312082580499080653799891667258753074739386218065602170658454432298285210569013170105315803783865671097704069061180975200094650048266266154779916354402776301742236015251468058515898586211169377808844789630497262796035972312887727633933933199063268989511515046196651728440424701826360339378680646865691843331230108053204312287416589302597489257787546003376907771834759266559943766507204267206979538403797320468651610127656319782811971715905426296529131142186291801216194709199899390597272127637619773552397784242617269065445051285694135205853777488963752918400299452156028733413586984685994448822686645162980709360428591193592890805781025172197832550825799775550350207713049925769187169020872642955381076795069025235943475214192699001347461645810966959764002896864268222938499007268179836049372194141132861843561096515335588108033096481614428706801014552991189069120625467227295626923207825751200633262984171962683983650417406086951453975592424281966037580318368964047197156085381924714844491687321705880190829913179969100236173677316528178697601458179651601598892259217623824994010290694809430705700145783336527620833783491979193407121146725081559380674514626572153560902116055317558747182927775402337830679908262042876572819847018788896037044099456824136468615126357932464128042796855504999047506705880261495573766190167678374330722615312004133562917186946775449925349764655090436692250456368744634854768821920644039270862036705493400978069130709748952494729463942894258919396430415284948151650565141315017075276722172096739522164724127755515952203541214413773851203148462148188387501385809891949684077937014056360307805945512339380194045980644140583628840559160135898144704997285114434043768619257621806099657944647974215551431989782143621245283579739865488697544736824660667969605393142638871654261865849427703190628954283092902078317270202000283126398972460580208802131821965606371084484691545359355693807926353403727911585315469240507373525039482983333761530605805822336556160691546483081501662395554696561661055620129458018463851540399174064471883805124117785351444212380349343855626550191572051907636715294918738832875209375477683002228989479723177498104392540635036818316911875550359695189392601095119849375299824637790569565214469124446625215872124217365316937464303419954134803580813734357741730968260823081996344229240867498285878751482750517839140540920414293365820933836641159701099130165418941441487817464427526986919307376423937970430296008825847594204915528698134236990412946658652784973104808081863375618606105696862089508177239118628625391667691882603108808730894222855095640166191616563321144917814516779062476478756851935312795938672130803596981688946097843395738166442714805770289050514753116311477310057993562993476962518539233645248195451170132652268752895164049211668275189730309263469205454447334788449433945010692679287035146625239285069179166553976956197483997837078388393746819615388266500113949562123005873209025185084901353101817700649719091779059527924151730486570081120165910727750260327654749818271789998291521580962385742755228970127373856019773821075099361937251415266544088585340149690605242300668054491713732633232479345025862103060469132380454630953713529532798328924744846916326429797329345045521339448131749692908127936131594814912183304824425018433116235175938071696203578599923299451467969496260695822413922245385731780975859957569071798217413595892341275296696382599185897710312518691420926148737269807909117064488745794850054199447147448025234037211582961217849761401913333386448080369041348681516030816283898381963265127457466277043632682367502011995788701924137779228326293101381099146286913827267203955587545191375278339923994950224175352534513781475671603257862081703070329313611099463094993037699794556718401034535207330045884701221492483571718156443118464589560122105166373551730784971192670856718826776280413814208366486163753428321092775185524389166888908302916954578728440549458966628828980069542075422673152226031764452230954153347181281550980661937583485068781032506588113638229416980253053285702070113028193823465536482107435478612984908673918365272608871080284164607860790462565343317805757462805228247131203231314307310948879834985597134972526093121038658197683440795264588301661184712786953115888202600250341067581156344722130732441701917633955510388753980830342615673028662241314675925642637272940128245474298981685768255909332336632602990750464350451092954177217289710782371939417382183581846604806394422209676094553876707813529724449695290812768329492236716960790344734344696465781609792167988509141786050253580415882939536144812911546806864481949223107322516641979192620989782867150920898932951601066866343778019665135572616282042834996181552612778687983569811574120727903939405788814143969250275384487519117643757055844133763768812937394545952434507649374640535286146895694476372249232969959132068320129427082447578204282670459978552362435502137343133526476803320617569133467858326021536408362262004505758277438464970614273320884117169379278054465926314321346994808533675586688980479814537715749647816305513298578395232481541056098740697576476837216713722613130505327405581563255307905882123037770866677399920010051266327779317511555206795794640201555302331781412836452456294035217782798147069790817179499241986019455209308959239291699870669940811035577393747004901419314243746330420212644680982499618917584175072094542197501555453179361265668474330795701775845907529226149530748681076637064840418336516918295455965963779950980439230805134217929154546709666843581476931914178576855294654286389444989575369526026784269109578700636699246901828981499317050554791294546404011119168723794880312041433730696654624242693841486449563995298766042825686717292866787191291947957489292261388120840044579519509891291508086238074039256954958632083458734176047929790917932056443672667680737461084079375195089131410811638182867238287546771232116759143029398283119669478828912829460202888803326100921057134159938038242454089810243835205289183950937131355423634978881199895949558378084429368839923451070624191714873927480257881954771987812651827639164406328312955096581138433291690862231590076172174950507089797586436522651257586227820523203802932518419854729729830567680925401027252582957060557128899510805557818364816585594005824144497285101048932113512334776762507227287748195510398111491353560482614936098494705534171499397166933160097808862170789430909649343593855123956129740098962871806929893676335028332047884885981968485281891566475908282323873080340644692069161991179817831238431512307773319778178609247938719953711971018912981260992344225678814213327685267214371085737620789584509364496755328815582624450517020036260496235388158613612855236959188903281152134106024528501090766498753219236782045003608292370950547733746533868985230072327654018148337252695634814033713821189005760859712063406557661359712696364962763402346099580015416758186992535462249315278659350383605338532334855131124154524713904737863881393396214456129538843729515222164889676589650313161535136279800733059604055232570904900812761532874994032324902929903665515007363007221383740101607827299840355557392097173928593997237037424224182071952518470260109382445606954452235475519546021937321071494680692458439454516860228484601985123564255320336143880526518436155214904650997498954384189578345780857227544707598819426258108433331462102737646646222415364197514202054657512960580199805633278654232438589072858733020196728318290162173898319685799566473392185047764091048440956040710047372968718204898906476498221957042054614517511154508099650231253194272107186408850338130342994570726792961645369594388751511926849139069692841406936650401053593660820668647190060066664402273680385865690202897451743978071118245747109536545441078029728120677375703712932790737383063718744179998071209022747842206292021430454472273930279440459854342208316983733432987793486275388237811755456669490466241877407730602533728237317369813548314034214373584486554480705792801543342068625064047394374732502417627567204888831817744938829028394836603759524057384849179225006861031137632531376826784293346025138174532707923046058099411138959845277192459253610796184769111893642901359041184545868481936870117310883177876093165400436381875889629826932636300027454126885658674484703465636604305634986277542237151518308459172207062930533963829773364058228938984264334105301183922679027620839460703638412977063419001645398062774410503183745720496240213026042281847756312394907533317486624083980036043305594344345364979847799606949901060560585515778895786851735402884576773466798821428208873035007557974187924168849353786698794609110325619110202270451824909273015882122236195610494385939024718569429542028802709046686194001888518815889507917375816591204104465843592000807616835089719908903571560085846972418799158697231944511594804884155610092343396930842806087676983932214567321253010238623260102312174121706907471620482358433423402930504861454995534814470932317660455144662497629707922321634513902325021165097706629169364374665460011236538040786859035669730404261668292075386295711014807146589572332517089347371763513070651351422568647255314234505104685942331902245823518925786359047590524653606232128305347267574632112247001425851464173740057886875689846779217548636822701192985450883099099860056126969403232271740059273901729737378405155127896682843475391570954128533098758444060890240363016649920162076042200765871807633854031474518482171173895523322356026568290263057937310862593777786829273875939119592432544071227617901123228267253030477061616893005919044888020979284963229828124495967039321229479169985094881468760533931669761297739622369735145888487643923458685924612423967649752367342761890455486446490184869523378342571130363372427828474268902470909684648550159255227789894007808156342215147577709465713024330557743419923941596021299134793466672346352511800987327792995493595797772822570642648893112404024102867885639710825543100656931819748826294055604227808556382505027042006936990969432073792833637125606305942093115762474255536176235689333273629112398749337550658643976120074281728694535087012927687162384480237992927647845447676203981306189585185238607112067293114832204348423851697129090854031099600600070036526673878849465765929420754094542178296187563651470742724922714855896274096536870236027846783691497777558609965581380144606330877046666288184051562378077223490326121769395004142855721013737783254259349431786174281941529679012978595616622352931871758683033092631068121894400836966320284783794863502669114304640553470517382533501691103521109292536662436636779998623475957816472440723231260465166659217442657555171192702088691693072697370813329122172599475889123702075744527321828167439997170476659656356559589197444858848179280026286197917540952678939905945225404348952322193785149360853921246841511595745857201185525992061205867728918510133835999652754793609447434330068581080437091956469742520121859850342593319094867954409677691839754067192362129729040445357036286581129080771049463543565677534807262379615338805089088140726064859961329758669190772922049700025463231685146763061122969720422712973493850202868449920960593314952793762878159547505562914181161119875320361960453698934959966075641757796915434660571609207890491866252351361925504468148871172040573382325617511991470034844390883105259754063344579376634360649923709860337348230975155481032732110194179818370848904777366994530854131101273494349339174392969594304250270423922451376089771993671260761798870126750319597203992767668563302546400109077729829985979391863300884516324653743107087344423406131124487630265925224001283952218431741815087795615589335378901006569269524515563025438771973628458813809694636046457789716115975170557987410590436916005723309608811325442804007923719273709006720767727742646604934178344807958369004023383046104195974263648119470042357148942782782496625687339417101022845849927166219522166160214420361427639316711681405587672671016332423203624909476327241917103441007478636494066559066321703217165449484321774482025259011882475388237757671556954495559012846757615506056436496977744743241516005506805191930778654935776693739744582205060698400677110780172008427788478289366158034158263420351391854109417511781219069724597860360969014264994478159475200678419976104842313566903834915547673038227916319320683148030130871697194724342475814583494212491782930104429744241352293240826153637797371736845466399018825751797623321125287365212094559975871407845055122619479977848399065156877714356030677634067090128355796993025717391741616820140463937469518517296551708977705054518797003650209635354698475452310604542848356848160350069608463904029234080732300849911568333651750082507320342722159042349533505462587367484013090913397780475509631472808898587602625098196529022068645525670789929524810761244239799569056973797206633987904184691173562346989818327589241950965748892140588025541751408301681068073618374134579365341370982376919497789720056212513305519954588225356609079499844580205674344890917219490269521369306875188468781766802142187801814431738199050492022370229236554208673008728778119321153082195535290732187921347275208520310690836524360809814380494649164320665260194951745904357248575870607575043050053099307400256877942213197439907134066446045793679132850247056549869553639988205527858541924359967898355064256905360947680759433121584790064107940660112738042284830026203865215356152791954221137446518074972149177464623799654455715288675422650161576451465846599310243511859425989270832419473220646342375818542890759821970858890140874273519560778174188996280288961230734843364981467457472605373881108532710432720392471480241405276521101269470475330840849183694526954319848242272984515599877356596829508829053875842960472930268843708940451335118120646052839787238346980973478146892223924510815078671869867767449209969471369841329427068506059667895623737809471547458458669618327235775368501779347382339624148263647145543361384059084773137309887628833937538629129809303437827982160121481793267083184648817359371765166810433231627089025891975427721763902830955461667688687419321367563852971489215385962642175293521330678434890758695486516007746959483508249733813289063389962737925818066001857540516564530334786247066863721204523949824022190025770185322519385629711646752178486135775773840077233681548124206664946363830687470770504002655632566401792343177692495442803007881648599434601040633424514969952087312501263028261685190166115516935600805257718785537543699871293317058755027575576307697506154590695559877338545399428396945648497298858726462651021543698525433579802189916065222440162000848111467508869734352076118580460368530764966204877594908271679238752776067800534113070968174515224094414567771672856642507383825065882156186427670513406735293218853276614876635923612666115696640084716152678161666122317881209717204600956578055950857380402510236202071667225770800802455886342054013179693193655155090005808254622244146828265717819322818789561129238580934608206309105230483520134048431657870343669392765414497932746981453412223448020086630983227772458784523835507028604802090443266194309719264479681167663488667561054637036057458559462180029165968213570858964701967435015242993502968135261398278286958136095759966866391466833736224539407134410379424755875326290375430413322202466230816367259831625994615673965713972509952654459565705465323826080754842486689539771532942539666915925732434872808873572111788537296600105515115510656088951641267219724397861123951333171699938934626727709144757885491861462469225044766355982992687251859562200167078753709056737831781304982378427450933309749889388454916791120869168129153177356549767667863814381699728917615456347192795170930650416714062551673030848664897214553108136697987077052268017255316504952922994977328007773970719550538598509118756303044745638418592555281860693742297771439331814593109160315040773989311032951476963924993952850371248422099929474344636273680758064838418750203778905144452286100204897336678937483892784186672995628478296395633448850006895187094131264957666912901535259737729484898540175183826141453756806591122165609100832270495306149392134060755500327124934253073147509536688220706505294625956696007738857086293879299384798047786559585132807484156760956823407929383562019645096329793102493985637728391614668663918393152191688222653992902453597360431678760393476795698279559685450242677056864833730926540622972802631201323349580060860103875813570412279268293341608731718528048524091381602584101196712872360712263407915870240928157122642942169722018592098664899448712335045985596303558369126792674948795772504418522530008252887451807470697667119315721830906800181126099628233518253477915118665333596950962492509084607655946349090344162935853159643985104322350368923066851472053151831126353955064830538456966642630280137050791331488436230814623254380226018498499827340539091121434082380225900583586747103119657557700250052154768244904895547525126913189550743933425212620311646994663531734226890331813120667283834296669362601813677383178050039735178970044678892328425034354704586217199345273152203795956801429293911538183402927795087136807528872803743985756947123779381604962675804278940552671972421842123040191928562931550885656617358261453649606159384960817610539463861373261503382296221379142633668898151580555399644550539488124567728400915337417175341201669480777933850626801657162195628633106077600869372947157483316351427890852590965405693706455147176017279751781290524845129447110817634882917081237373453304259544254371918344517791593500649967782220505791108692113497156957879130040933258069523953673381753081940725356576982136759850883952704598188932057458922925729837872025366055895184974753164747499873732998397179549809048890415428118826659728005456546694107571141384673445993917022062114786231951861387321542559033851553640216770445950198760980727130140343230868340287514835089992332894186272081973130695865072241095938573355747967832829133970944982647053250408707484788447795165555404248459447089549330632646864523174777496895209710610450598886995161151042817143352032020797796781715234801197369162460106946466395884303048567630049725030166734872681256738506282264156323020761099911436154079516074963605016277378267408708931069945589426229125023963858001195419289230899786147117779748579539324963299908560973794328521943095272939731345202863768729522300605880257693214398998415286999149770586302145688164358540039991612354238518062471405120487906143581231234001554717042455586051230721449183232318735017403514071981128320227050575612677214233609634288398358071504630641312797867320469982355606899098489253555748790645662397789510825848117434931236965693532499461825373515258227535305524676944625949334208427566790094541855027680037519482129692470658317581309633784988194101437308953433028527527812073349038578716183442834030430669377185689693912708950639424625475105994705712230400524604823573292649370746653073965152308330485424505915538959680159495490011262630119155411326489258911046194978907412167826023095333294725845934047648464409917207437830039534913719218575151892872179362288012242263846109931089753174421105345742740350589233497703060646018884168421979502373338745105784337725225262463584417319033606933230741930824600240106778140209503484909456539280633573200547119304601619819378535426373472470955425984254185696065399290443028588477767400867870706060950081846560092714440914030032750126841684827158202795418957400900759594513899698806309781345021958835057459608499988552508660590727064009159155396114894948791606842963609327800875080279021699996037736852267418734467838103303499164517619972895797747582004548351612232421529437334706153990841032789908264703179570515114266252666218040579883563947821882646585715619965205759558186187217546761428292249625573566865118789369758082299986971530637921083963614836389076734182164783446132773623291392860933355931073575220893731191400406006385010087093787117169602833013528481885941091714718949253132644894007783696832165395365950695472306347370755074137708777473700147861474995379123171819645063801638233156010450017437938728213859713808726669419167450288058017945115015556458275510500914959470957523638825413527295384313345758640690141158268979700699065807307379455970758469590278766752053293597324992647961738903278589457546350351810453296270521532922163135128734105133927139020479902597858049432884230445704399277077218384638496499665710693482689305255754339058812788309071788468804398530277548717912682180043046745305121360972057783304023106682948754822667943204471359755388617852844520698683695925505913241386121512038301664031264780068900902881991154031418565762156619087939827502834851539508405574064486187036074461356998056683466090076789290965901773620720030729126017757910447062249898811150603892420428959781322436548458620749705930779119729659510190033356807222179993683725102184449354975019047984005052214988377946735091794402301302376851175368696821261464067060895571789601302807342276063898982334634349316991090324432998636090347104974317466379008205351399996426697119426749344106030775405428435351735544636434355497212834773371655013771045588248144751919139196061287715666919417853918883333291309966527384013191157518251802362547224817729657572057074552778568657714714982876475717300909883165220285712845229219801707049103019612670718068852885061408912269554416287984531716495887127503982592825709086763259958325710346379670918589665051578316963696118084148693620818687861006336593317427940310033225474132683396787258007781370468739566464612520054959223006626706972015505020781430489958060262466543243590409133491248421361680160562166078741864792249476331854166528726664451688075075425654492975977600139307251384836206172891455617934339992905298195809744053856114937195245630689741084299164027615499078649989457853033099225175018550127868360612794516006773938085370130616956711545301026913895813757705630757715967779030256372449359153503067403638629503043129020182895392957707402616805027165528551998280250865823243453943487127850274230705062938610897669079557460193509577406804062605087206922458145518623183817499526434334932138916460598952448515880772574573033148766499114577333436988561644784475974695671631596030897301064162865568552226445869306509233396358542604519297180608450553577206325887178737316730559884992337288884375278472879155184936986612128085326600303557035122129715028680580396399757554890680097718174132280995282206838024660651129990386649303031625359700063532000767173818653651820074670499610342012826912812209325582649149412043030474216080416245611533874288223557747502927365439940008028627007571070676727451584055140238919707140465984218119708952053361692070133422776005792402587955915322963112346084469876677455795671904905360543768081429417057689684604244695836530146900232217087689067021058298561088887135152216936669989639159787911730885802971651407037317423193514221529818177441508652503347387401411349177375356128168454759560530350199278982758709465569917857097667652123210177146390323550161739227894202180244097383405347533538941999629339383053024216564647336980132491251809665606748971455643105608950003325630149425049123252091611971079566171605342184256018890851166078780356471998756542189847542061683380448956316399812090617464274069544729310065788482167404786750890256928297316041490582802290926978288925977577844584497577077107013055129940389248668331269331458362304100742137568621107306300754361340720085439011841451830800703367997817202226406744947058051312842000146403197866143060147769219424548970255002113311390771604838176806866220059212320114724664412395087304245083544987067045652778943851928304795382359322389773844554377207628277784290379218769675100642099291536821574624015011888596373096274996209432634133466037700423185444179765657677487779631756089163837058535714416714850759044278342218228337472943942642045913706066156124477758114393645307735514953192590107236469651078031889697761714414605586493686137822836435497137635015154136549324324588070747148460592387506131956264923103294839331346576989264984424882669337888098132508911953860737660976477382687052848086102668854372197892206310330535664518896045551136140079936312135990967396311287775282181272107785208721996460094320851268057051751579975670721178188964516578492973598933333902017930496320709337404106812319668945770295182548304088548474525486549475822979445307610471642172944690978013664303621571758263224916818771873874456148333204279278925026696224236273604450765120325534140964264423625014732693786162309135292678655453916654891392820899425827681869965422279989483378484724699596875047901521950034909015798875910156609023021234267627189010929927916516495013415663267938522804247246653603712328769996313947618246731792437950986664066866381539167529759737246305009127514786883624897057517106184460995010062900758697909632621489940221553282549862729413782073610529072859730256951017311185836566896564129975605939557405561694504477741267220178267221547676882453206666536235999391913790601277799820857511046935324647293283277401242125433368694950146017190802452901894963564425025095555477054117232435711504068607939052442443703109295490710243566141936306585713493778853000629721116923458706996694302964674888793340073100351371052526744458335960516496313333091532566941767339938467671215851307221289170034275705715517937982439700653731667581460687585007136120736259320274546456931036672495598678312395717460967629250738893541860565457826380317546465103042308661524062269225479208676150090892514077226430723441947934424527557198169660540770260582329027759024212769368433239229468540568706234244709740737693635577822052607262893219556436771415766675543937442289588243138854983822451462754009412776362394204176965692120685749383415830964044713975708334013746351194168179129539163351990452778769806649965707268623457675199556143293566781581876135411391667518499807806837911277683800770778938643821947753292889334678241050222727127453221741987508611068102284342892499076968387657672575324882989697073073999005245605503057564390822881781352177574045295431853117960283241844342838349510274372195738609931344429583671575894497544226148662748126939657676815000771864721348508262096881838086976625860905507589822947924772562783485628826707023659604883682910901038788408062871677688159549048163528291580008898091632328490537151111830003431425776927476679252009344198683473786080653338862476912568284466447046097394184064816299694822266086130834044409019245273068684688151434167181328014372931166604115534548463633801146215328937137540171983463049179955059365808677517172096997516946630073646421368685710911138140424970912754945506650124269500102018316001707244618036765317446877769992384880080010420209004982034834468898841294480938828035481750300336213222990907676173264599922612710663328791118209723853793413275952934373279863838952162987734618696257495129915660013490483150336337606277100655699409555463338797754618824933202997201985816388034526341739673699807176159999798059014851804103240367946499307406285219363610121276189958659997918541591547494612386712662231139461472014549205375899601998909420168419338586816813051365752972809983146665799146948968136639210184189591847543339123374434236007926207378542483298610816313688472731175844576681799161595052344226959110549360380309958581880027174693890332397492910983347680751211496124123501827902427151874726223280227457059100120772487813442055740307606503768227643747544476510057524397671944939908445034746638856927124227715241763119360309797835012665876087514793954874051248149002001231593345109206294108896082425473152000570272318971731859905090339521084154681600519696520021190252321417101447806449136237892762389321808622348339056733790128585150520132121772162905652520248454063936980707697990962340330613322474473639068652834314449974172993793343394114445047788014789230849352572346139878402959890442919912941582012903055066745834600064034691308521422711151100122880124838771646907105111385775925682969457933192481415941141326604509387529267369723966378102229351543873640155761438196273599635321540858870131746569019566525118985393843399939700013772524574137836126247992003560689683673901125698283700975863981512380032639090223104619331245922874073875203602119336258210853921401045272069080662375392018227885349520806341226436985625702337505404174713630284835900679896683559925597575296927826132378023083212796762616252963951197513098217874242670351834359757291681314696152206383621023494789367763465728096013190720035966727626452861637475795489209142206309685973468986875840532765274007401852991903901823075282704437442987768848037280921322413286668706930651740015674357629811559215245394665678502184843587301462021590267244346344955247746558141567435501095013944747857350766790690703128954078539894213278899787832896524309706852441958225933434798364520239859511114959663174899848850401756001957301761044955669286272594587002757408051334270504871804101704318150595772822529822938383466278700283766773025461104090089723205587303811238927611864515550236512623066821199835768090372058275820620129376037432099971776859618918781270966307195116045121607035283789776224939947361067264237422204712823439204069776749542498870471981342268724427885865371659781897135980940060437857384588938490220800170457180472822056784138825771912259468007998856942518145160068901769020268126428697764232351919906963718324104080692447095772243444833052028046649391059451036041999259235616542505325281609777436380745717872445116988462187424042795903355056910621867625414295496076053805942023806675892751953822411499275998677290636379206367236239901823445573539254719844928819782657310844104145044994404195117752991592325275740512422073188391978444645807453260695137288903394481059309828680009538684063401087578896832567239025154499068734170804398112554506758930726039113574220036599515850413144975306394709306200297630826350794545313345275033686944324784133712433076154702028770210400448874781272482448273535500947433088979434521434636914559920729929417877865143121445192650767782480598571610299690803877463674927046918656379956564052157998675739546017896541507909461159726890803206434305694046386480819919458840756951801854383258372947341229411832633684278564982787766514408700638280501600323250826900631813580804792926612635064227928326348529085091933206073581901482356619866570589345695084590379864190781297425545881847315528462705818441349418162091198950721997137543441874102907441490923569374439762514490326952772702525096617169031412670940753020163700752598948764130933556402082499447448162804416723949055200047468047282092067257572472074083742716399851343459564244587594663286382212979360830354687338268620994199379971312749310484273514467212518586939441080415398313517627751698966006808564142922075406620910458684842177604999699605306502895834962302762842453433171528766512734037208223444510811821970328784494536518447421082559187962469456055285321314126634446881416407486952022888823970889420471904277839704056456729556376624596102091676450811263853555269044870335509138626103511444184169912257882508956631762350224445551642172260625040910229521101965302806739046959448352763370390993419495917368553033846477881524427767214840798076249362683967659432270245534287450844009576517372931100246764544496878178406675665966527157161444575357171259313220868610206634321130882483429374488831487564719712454305920241037010511300212172193317649404035881237379503343106830511396509913167567396195470777860836208365164456225650936026700367233470760346699935657882992104443435044604204087186032117058530693602178155446037257106058039682754749584470073501940003817183302720965395589211204597027185364142678496839170398914846315495859629416990880305448329618794981531984672128316881590059955741890821988756702953569795556020031408254380759929102369592959270894483432194109357642413257279447088271130994348007085813219002581859151780173522683991512540852508660895590044323246004392713121414612339478318449547179841031980868520722350713292508827247259157270084579998559872218117421934198304808505932839100633719548155646249992265347011992882439711648504321081622737834470632748474079590665508972871652441171521771658291562281839683645894677278282581566574872157497463760036658410066632729077018902674778971610243508509181259191561015903940793545284719633532315106981723072863157702588738825514857372254263330648232936341516661519378146644037477038053924720821237141033189713060226690062246554178608044153150897359851943154378061963092561708374736704062738943290354828265783764240655759067849334701094930714700430007595470386392504352305696326549155585243858113893606406489632479769056711528788971893277358963671122424296073281689073883794924280376806489935297879580537997907078057705288741825421488720627426087904882228301387213699745053779216561150391832342181643447660320606452592855771001225129291642080663725161679582499752528285868721321631320800576221092582229788596483340429606076814064893183102583823921815020092455101530354590793320362443577354911470415943625841062722713777724796989943579423874965215685853049321247845721863382821190189737197059464046310214706186146096727980632356125180494907250506505787124245131696335401048678106835157863805216303801758254200040417756698957360037750283161177660870532136103291818078041236675110917829999376541764232684564106836810441840900626596148997837666762186942367015981493991383141799529190795520114253503983976430964958745459690088328390085407507983259779765545634777968957382961926235037778523477043889236908311440116181319963075691837547486721416573047993990356563478270136573496036464542375648056564720016375753852953086606198932667883489815289905598030696025466927606317000816935201525505014310116410208631120269504666234899379109511028629081257777356473046451212760839990851962429568051199572748792569861294636731526945364189809721742003049093672885092584070023429115623570566573481563042522829960048344881249136093412228846330358410770510138656156678821905262071095187069216386428022867853205757331233127158213765312300848352828299853462772464073495349938267227627160550493434443499956090165614633228966118814504568084302082853454109815684091275329010317033667317201286433965244157278106900946593796283013338680739428817547481075733479278085821463502315293976136315743585536937399126488718688926119063122653975384346251736583627845232894451628506778169059529770306741840247963092447084106977644792867470706891751190975581381598134990703383577937863709793662154924220662893696929834575783348380972661199133056735706465069867272047249167492057052353004770629648991325477840430520191836270101397424185238944046723569835096696411537757966983414886150031273964926521187652074269094983476380106831897997802790440184254634906899425010632967766101174590700018914106007112201561873931530861411589829429111507092382804134499388324290893442608732041876174857920654583181478983866995553132151728314994123895718577718170276198652590218180596647607333743896251146858366143598489458589977854451258095479094564507734581848665723164386248315164365661731404604482566500736051984782142654076946216214858629583736538730439224246975879097485131054112861495296543111897411559134117055876136281977173044023065886676264402378582166967308366146242224294966865961983040606839328001456132048101426165427899926392949083805875987636018364191888434776098688752818348166360606340077353357475689285262430068118621900141439319589218491419178605641716304026528557430131283454504582889434837403340058484849882555668743049454057689800989430587854452327683878499222750716034607985532712699342539686943812971008206880043948846766955967057853224452799847261858543463345994795342927257574626970652674435026057495248829113946790809535784794934424176888866927856764149248433004031073058841052242236849911793507445049881023994883528958188002254087304172941932390895051029686249008037614897978381344130465119000033123985790830840140756344341887977088209421752517466190085150834305325742138718119638923668229266398212451242419671655118034090758945227288852911299838057002119495201071886955763006675363276209051091609552039528887274851500029636859768044085166185092530660732193149004610569396013550643080079623730208376400826417019763178892548665965798055623696006052038610154160700027620375641587878845561894433290083441124634563589234937606387314658846338511348668757219574244055379610736504269972377273444184408441439733034970779102176916274390755938277784642933377672123688730594714022549399731516963791292625335221660422335299785714161474442509165363440460987257947475638133597616930276361633852601443694320242918152864760126856056822008594241532482645644923430390599372961892952631851152309628130885977038020421475276459498741768906557831662252276073371472064613917080635883058474097333750915891616240694941386367383497895291359920131445405826297044095143168643430115063467953007289791276165185991472052295787202265521883546438597026321913850977865225037230589545248442938674991417462589128900134093247727396720353572690996436863539394737485002033523453621474766207413753829732818951551659933571787737817026726349947235383636054586178936153913980955857709527007272716532593266869453818001426464974004676274025568101051817465545074404226953593133438690363398178731454110901662794150828992937604980848544308617602421028094514421224899866501145447105162025152475087878254486595575483481894219117785614528456787191153622739253452777722544005448390399212781816838437811198488152256493475361691040337444741692064226613051948472923515074418893718808080885023331869279322184448502353681980828837447643220744678246638597112543753924251860162012717802002093248167308879774594368707844176191117647709714948012702911249758600369663673505224846451674218299530173473963616291479390344691685493205892288671324313657695053351448525378039456574547058214187253804330909729695977369330913564472133347148277493833083538933010726915651125231018244025548058910674899102849333322367958162080471813948218830528135990991079069806134091895451713614118580947309515052243467109373554912597591197767617308797527379965405614835908993639743417760302332372900552223996246119445985837603737055857049966021277024515497467619510277108689690900492276292819227130182461104245095501947934684590465588908357478949153752960502647852787890010293705759651626637085640297513357380892487412048934038975701548220181393924976999468188982344595180176582804822578234475670137819198322694738330532433418962629757809971487691873417425174815625072775290528964031327016141632109619992324485968499376944479494573010505102061359329325550796365658899342772749270605436984961746269388721918096151849544123940540092531098487494874560807372760278560361519266710704969600139842258433587635531314458866322617207778338843911611980895182267709103127227491271837169534120192448368226490050049234202437232224749225587561903016293015307318903573798781943322680863854650507092650546998142998778086665577048094260023030209744142109936021551754068430475628874485336412533255875382853910932698022907354757934546417589007929635713314171573514394755236464850407104302707793772479082561259674452061697559525802685817521520649277916942731874745661928958903083329106059380281282648584008446279317023738189026679556448728920714532840343515479991615249948819110796023126062878927802420373243592241919445644050605824265532302030161876079331838780804557252755366929799305563908619574800156999007456016054037267252943989323586517723688703415023184253075341591346318561324586026892930380792957038932980116911824909267935867228086850227070180448531874032585430198367105280579075541427939424041227388597540309511978302410984127903187789922215273821966020610887610295426440629749289614707028495195247265819882802482179535892848129903016253201208702383020192275378265987887532983117935243370183652808339576570914118078842114261809408307019652198781384417812317241556640537998386419709212079106778201775228198380293295413851241157786292560455571150918991453415566352312571305011687589616516392191587925951993842121235473517319168385354380560071070816363162602185216126847286144970682279609819667859370062987925598277774879488537889890172544391863425355196758824006024240555710925339245394493749705965014203943515806948809592740247281856726452979522828303417226061386441484894941490325499832788161559586487019173685129470557991303368979059488223143213440006789432333257204162181615715001757505815719120889247580208122755780556873531701533845417327555464967540448621513038866186371113720761898779222511739538989274431668523189463805943706681887617297168956792462081719767181964543580658408726785066382466813454580915403731039871914086788678701325099928791419724612087031519487220338150781898853595481427115732081826237740739882730554793825410634819200612589167316534626893172785024777088117226644380775683664001870839287665787823361507531615415362020584415657683127896353839789194791463158746767717381102169467626115961022412539159132091597777639559117066093418800999614886069387365491855598343684763476458095581097351463554667113610716840227293468058137184112405549304623990532656997948223759998604444130142915311666766152222445131096342641623575600480299695627412527510239870992097211453348587174218456345893240769526772052298427293909441028850370011814944269640268167842078637482781380496669819436373162372323249860486405416170850452123734440137189907976027471443705616452120794973815072371275446764931744825362876850580595175707597556232360626856701589444563661288673295760669567492254204463377271775781836502376299333425168605378118087238685879112621312337670980295080301017471501981460422841053118026016079649237512932135149797348602693154401455889032757971340678592644107182997220433838026937491918283980112423941066574801445916087497232486288680098218122018842573047741832941544881250958325086593886972087901142784159789630090209836425637922298962383352346437603201989213905081374901427607310436867723422108731722694690230782470343655456998000872968177491637810819903510746844312660796546344252804565116877294186772110449211189013623891128912825684576849175586367401388004323246354040365650712456004901127520192925873555030248498886217978828754221478962006050482853640215746591386315114585949738491811780048152560676291369993070428054236466840348581679770220730292469252084704049150672232592402873345701136561848868942763399750939125988456992984757075321471517962527220293590390906002724704956295483676643740821222001849200837159071334629998050342023714697394223947186285533549184345317236672160810016900910380562487844353954920459568230255969129907820772009976024861550918516488087904593169471363986142815352262766247425599677201483740347450105286055854242690711491197482432417832248269852519072362766647886383459056233149876433585278131875080860606224059517404592593850785091759893022920971900185063944338698332885446343803354641238325881413523187841233622757100349569971513769495275672961795024137613653453811911764436318035852071331541193465345886789871594617824770081526761992013513229028427389239840758725100948305162702509339308485422705635663335682248470442951562456256186901583378396532281115319061298190811837982168413957553811680434038825698084982148213722034333236182257481191982121600174325371181738421535309361219166787843576521875513924665457089312184174195681412408195520129950917734656363226381456875926847223574525932167116967456718574685396034161665600015253031881376197230666727871399428897793577542572912791068040816068403638989713318725555619225561716137353295635333813781336242274026901408136811386280843780938018008031217979580298368094589660447995110047804102462765847895581790711007678395532078149234463451954727355429991814981030821115026624333188967449783843533066393830305492215481418944831430914262226726182154804550025166228751346290662681586693527899790235831171593544348629777188967860350170143373577220110954441538637316287933816491271251461186662986572722619927731097112050925721363274746298338036594368357825550429505422105523585172688955762076680987958369998333210124418909269811315312240855259210966676824660117168749786278885652266804595232775177626080950593807562594802537945121841314112026730164129213663042563394521016194460117839734641829255398038769671584577473066243275127030688863847916179804232011284780423834121187228487830240690442856926297884678425524857687496924873118254374098283806224990050343811150382466972735844457726401674184178954985597642921918808550323654245199395175590544750224619902441930882705894803464196010524054990360025588662403276644696659605001985841072373187423531011650885399532150476238277276201076014595909138870755912053363422524509614414199157695769125972126457666989860212791509115708107989828701112435954355213757632674712294785955355232735496848495116824291300939126027637792851025673738919429868358484458288265210358630446529462675840774103299810882694262066477164282826967480968140076152754878602997648763424701445208426305690052922083251637859350976788945269360274623569160490672095412383665507138209609706861423290252717130074612489395064482046105681829891907016448339034001671352569756753974759811638586970580714223265203720695900429037778221819125214221662775886032234644675103107516647165199124471964408720301520808141035957750271564351555292077124795441786932398249347103701040402066064115200409157753696975783381631545245951382717727639843056890674012157019665478778127515163927415969410937520984850576013796430383006715360855924604848868085693507572446447281179396037635763893009939016868248536459035717734341648533225675675663544878020066140693727197676163891390168921520251536823167430665279300841452424750527421367052401754039922734481994981132261985744595307648995252686604018823375235087891978559169376947065277344705142150090919617410490072166139812948493024856119990016479323949603224251027528810157307424586220423705638355599417449696839209055636705829748861952013663588246760063271893762095887589832832543935479301929337117519306108026447496573013244514130523476352838498395029824514016562871905487823712906398305229689982612558619289281440341354455962843540754337671126682209529804123205526613253906646591402463421766315392748040639633470780800906661848238156459421542788126689611271191063197233976557288592477990832252399139293412234763059040445690708107589403647808910905456697336168268879510411549706921687751625096099035034046902510436309221679844921236812146607883963022875054462644675638670700987307983782166313166060784947433843547771015328001224869953966258901845428587455427325189533600866634421157405132099971152513002372626230510610944203694652002619138250224362642021632359116852869879264813749516741809683996254254975484608401911185967968292436782614391972862673013256218855637870600117935829513364049061664516071678416780048679135637270319083280820170656429237553041858170898919740958571874483583482786454777819013591074812938129887316403810529178976681100224344336755156477737318242535804380072393017836463880582278665578035870199164696426831195723700093715657129967176606369081702154879450572853179258748177152677644250872153154653511444626669656820273423991222804362014622916649819928604308561888743560339382078984609300690847548699901196072817287252377269987825841408014838485030773934240968157341554619256174573514180794442625348633678940862094714218201561994348934715978750487445932042846458691361904151587329304179592050597013092535887372454752872989994802314002013321625551874286006557344019372727470700803768067657943170809206243525239042959063582268218257736518305972768267417717267024605463187547513300860565574989184823241097004798945054974902347459288837222191580340327604144693739769091084569919921836881302309091634729161924510093332382359414989368466617845771897941151779182439220497175821972988830085721583705397821911559800783958214661187891554310873965108149482559919309310144774848466747535651761252825849852459403801703826520434968602108949744868750923797579947544369321762944781216934394626835026366273048646279288158284041137310565445472374182939961438842024295953595674991519489388128622917162860424023571853976320309048845952587132078261641525739199144661185097766907293310298414586784523725807802474710638211076367145017377371034554530019983099173137544365800826307673520003774728255979707962514360162472217842100357082133001248749706427846432320879216772826851458316919718142243120264516736351369851108320969700967274316812793829614989540096428227220812528854118872863775033585707216225750685652676538654298807937484849843731200173434008747282258516758957004398250454219362276418375561572442118404945853624261150958192974310007098420463850371218176373351118686290983957354615926910991392973556283986255812073263226678955920165977157954393696073470846808826644039005660717534242802718635603606257842938548011479521421440576143460382263877362942504827660722961180317101492003833106640022353626014495973602541676692914156994556402324716023606024454379772736474546296905400477005960043974423955856933730380173496645825204176436505685281108863782458820515005517532872235612898912300821060917776356781550293430534284984773429490044789742819105876769596188368059012940920546225493719676728339341036123257055652204018929480797120866579357792605726526301539439467096925344799448667643461330543224606864182652408136957230600058309044205877667883988846156755901175261953487225724816367264090612347793731668071059843967049105069857313536410006116007635153447752386294078772222480488429663875099467786148781162092297737079621895340316649732391146908651255340015097731608501874637885490693607649464872335226718429864192278954260257805180301669860511839490904622158168373707397667014558185254887628916907893827014630199169657006779958570385605897048722857856746142470059398834024803537997229111137435173376040018698322058676846806715622530649959102668508827503614681754443559180286121368086045200705836049899033079958356390059181256656269667554576078271563283224065294637097147664835776407318688789963869986945534700361473696708213594835041484965021609137112534858115429377967668013724297814735382159987269194643440977714920598978944216262644626776400137870827154090360368412692895051846103166399831350098736681998633672188886131229589605664342588682419471998776873000737777215979950459459803115288962527818355865347711685462159468181295392501880281475695179252712845076962031116440920470098325003740434872695610969808774307053038344942803133969099718366246869645851208796092566275743537228756593620146657911976414993470832459212223044300866944896226683354668656192746054705980600355792592191946618949303296462545793215758108851067728266833114830012303344179776546382576088349764755501666565731137143710666915555407214230812077125451762180756906632460174279381912553838938688231911480939022153824821149586194534174644718462741758530875081175559814757824399569359883096782632965058396979409224141495862474019846927255959414369849658406655951804501061789043587453358888722512469313277699672906185804416860559268875870724300500977591988764681380981371956998572295497533083468051066069792704341714343058255190031168932947970417850749448499088082827575336867432250238170184523928300621523250582788632135020290878021503736233277383514839158677317851475380895432558815128588211892955721033143917560284140724653658511603981351543294207007530040336611179150678818898430020354314703697540715591544885468822678008646694405607084270725188197406899499153055598207438910339109562036593549393257700667775020336510505311074976135226593093459748532564655374607167395705420580792019043499067140922881271459110838687393948936956868221367042936372192907199959032279877380898454165548934013022007094537459525435087610451527217695577285558289186285762945086414924160439180314101715210183192311056938503154156163672356690671625682698087729564366797012075599298869748930292643355750644007973307643783575342489451845089727877503033258238139875008648342430225600630578516091211956113069573058610178633526965524026141558143406754825543367743060015728765821802993398973300789976502893177199342094509386920762998322313355687250240572342556657136833829535048335606629869349787677869455277284810654254690458433877666202084237433085120513489243779784844328156652927094659735799300520220898415303917835750034883990561951190647660411162444661703984116128286854066304576412845648310396114286916666229189396861529546886060453671969827187536682032320853193658012205126229651008534342871225742275944463062506902401208901267203484801011632800235824109538469898369263713068016322582535793872627174237094973965990036137022495851592475034267735176378386019726939691080168447159655721678498551610603915437447685685317619357741330849560889838831889193875787948929643744187832989623449545290443795155396021672242289702473143326646686388928552229855763708737139805153341359865854867762527193710270377427003982617297353162130500957837304265887250315524652498888333521620203980756798662009511027830545991924722916270203170942078979649067448985263824059153581647564608231831534136397477654089401983970989382247763185439062120415388752963690072320057918297982139949744828679135483124416465152201924359911892440769773817927899695590022591434683175842238156517698172795701560712065924046195184101774908207314117073203978306669166196486090331781139072804451867087208531960873080246922331237384658097951461256007806395855465425705907066133009491832187058418114078795723639176072623356987861741633681513021001444311275796874395621432900650864594290311133166188743714114101050786075906685436455437531666759034031683814708711721276951554198619904188267394506531781436956654162210015111350734912500634198530749060919596730947048178189583659781111414871199089269142047194764567632930443064603712538120175741223144328953389713611371653045570083800860295451634121481726389495147521246728356784514807397667322849984878244387077763302270884503718627762979301073364195418123013690999045196699532600086863887260550475465785853864914745286444636058894638018935017951454281781951129689345693560750499600372246440946112165099154924809982198297850908995126098100787002041935871637317003639573098015112755154478742532497976785512779509946019597388609634954110681580845495172679177208421424259331727395256649059618008388877480154909976058841556892161650379554091399500729959627857855973409382706737776356385608284895828629072075036208938757721123249860177380229235052799069623086999466497100865294434809975434970619750323189275547479511861201104167312189740546848704481937410495725884326019800064606384839016212962299532052979015367934763931137314417381095148689874793068157031199778483160749957336563373506451754075321298661732038574953533249920586630480741530417438318451524250361112520913291505510473243325304260894381146465321083188591585817815172483927964015665298484984098369883088356983328367611819395262405556417307546379975001276736199735183751523716244585504846185558430133851985400723372525277109096739630263716903447183266253057421851279573414725879166657760464193737509707707819184084497282623076107010186506383581065916080032178050811694135231315801837021438874772551267578702380977946760731370082261934015504979970386512431945114363017182660234916164568204364409825196082416351713527575501117504513629488425034122529183498558561651974414972662658302192360780291072104552914373776745118391379045740283091748622603545131338611756681934930704340108645997332317096222466392213728467088986099926999073203812525559819023903757747881644274604019689947332698959256268085150066494455071852378568894319708505736927555943810646958466489685147026837787075863336019683971059595463262898935019638314697475220954845235541143572765920579980652347078998605462110643781953012866239808082127214629494361079344066665063257428230641413678166283304228237361217996804352106316877948057113094020448093954464864167393285124508390437044048281914386679416042952540502951162724097594499164588465063598972882243319930368065955876359450088799331199911291947934838057614507715402507855567532978612545368904910795966469460109568492037445131448623159558888733195264617332562459602127045119958959223158340220546411911288817640821019041653889588305437090616649122171816898710240904470821127473717973704597078451556747745404892246597733400002369125196435066923457959691843491788835207651363944457277157330346358043223694087502615115427506451532006169878675068450619638893821480631833348383758440521955449586241914695480326680162216502965757599838777602303049716074275062238895483190069417700457400022202538138934697981065991142233468843386040669180504038106897936334456025729824983012165263781999170648146420477674220091236029559380356438892669889030780535695336064098311924416312328484810690862612161415745733128220093412538470939023253837913701209298225512476900382557832651110926763117344589015592410783110318104458257300262773080274128057049038600647037073433886385868197271433630053421701115270852730899280161891766204236848259722586384429579074439133585925496547035881999748134991881643188829693933104336804036377216686949850871462664110788259184611126499477354540920519860428453304251036049921978380516236833795296877866221411522395056512596711515295157267410918230956305275981384211411278800379093955401310768645430686945952469103825394501139882340895258840986614293692153281050416880861703877063859150143433009832108935720799651183496708635875231924912102794755385471368261653366410488969957256396504498365839939161468547664773816867102107742258877115187884619429499947625946610077203766917297529180028654633105524053271281663215540810225114244738094492273833143726487498217343566776101413983315626952774513713256016589340068595419032590510522118919474291716900995701094075830141937904958757667252678714473360639202231048825114309782242964238661288114012120246188834905675095197776613517536683218278032541174673290807801433383390637116581824339764715841829816891365777640188286076278637370810928455924296099030830807051770995092017869738660129471398255493297597556564440692107991516674465667708897873057038839409659034254174087483236816892890469182690475887020534765117630362711863621234446520577506363390022044824223851039097777952376610949534588901586163664654887611756267405719219663147090330816505475064123811149657035677949697061162773973538388546382190229823442170620822732791643420312923981315042213372431690781053418780408502731832823374479339874410344217360900428485113476440723152973224397164274733489881549115829661066263751460890195975720323476357230843875293220707184946016167714047255130615909698218569930688438731286344836854637033372063065422563652853464876468067093838062172995516921735704838289353190627127867621596818989075796255914448458397826391439287679348314109752338496464486223735032028112086268587469830372456357306278333444084688241578929503772492744435201000043383215705477523923993670192644478288139255589142499376506351960862237087894459198756441556780831469216066033438204353042804714305665957381883591970352188049665364923092540409440580804664657559896126948123550898472283220323571779060349796479581277683765477354519581786861062734089086197228005635920438087542401651978214737023956221625205544371593762629327191967480287323745664479001422183475298074727880072393385105093819939897335908529013637483222995242382061525968359794155917229182753094857414434503620931043752393916326674557920133671371183964150051858083305677868887531841605822367798629599592443252774262955784154783269968215908589630811263429847618348173857928026175961426135334547339252217041586125746253500625375623840556979443018527098548000408255671313378467942997258215713651540171979379476099341325487792751102402194416465385000183711397359811300979586993044447797183739294096418927645410752600353522684207911482836344294422407181991994771718934047997956286763950538801969694912359199482350044408218932099299835917670530565301207763263819029108571740018997256898189366293540158749440871505995796413725093993735686561681217768214365023631167781790692130087390578953985341734093515960251628344133068910062784877612349433628214214989185379988986163943275122380693981912939007261658979879300610898791531266402179908689189379911883528645994958906001969433904885257311209061445121195490923815674098827074828707290675626459558441311600966207346369374074928354698849508093060504286762022742535018414903797604936912289496790473813422881572290457335044194898887556937048471240733320099996351337721985141349848227038693036390460045291143543881721340920537441501614445424217439765825235415396092162910288691696646446667470039529055140815944096392314004766366479744366654619968130503642805025748304264251808336954830056427808285958117409247789837985586358500942983188230784174617043459590232437511046938380935767491895559130826647586000228993589669270940015636809319536367428127305249586707897515521210640429916388364812050056449021712911214882570789317389102049014761005712394212906678587113031553299992998721240194883372887904554778862878301582998631061633146143230732592517764177560653481042893100323508228069061528546477267617713711041489546954479705644149108600658513992288168951435662413436002028613265165757726506800679035518340230820232729465108111822822310967476260533766119055403561996487298386846344072764535435613660507599287161033954594293869315523711687254202824863888486736475771421671378932834972870619116874767888430390021843246830965149963722416658311645714482979621298043317464032541771651371351219524098963663040574233957126063890451729421722256923480148847759019601421687821601792413419079528556185059070164247925330653214036098893532209462233322059823939927915025990532371147182147128739992794498690961624370711704962515134608183694206434518814537949096780997786574191201318234143007225823489966898384892956631521370621362668079661758448485768015573605593781362650497030952507355078003543426824802618249344298420909034506120028388595888945532182258749587317423363057149557499034853482804266286806559158890538068501031741844604764261897712867076538738737257379323432907254498188672646799540689869381162602827801451454651310749004799127463758987620454065050903782935615937331578400474996098469376568287219747157311765022534116455894958335117123365260801296437759977719019710788911960802494238655898789395266572815308392286137889163588623145128495269509675956427212811661286582159951036051982439394867911963185090476192957735194743966687367664687874409191361838470741464096605312758786450587715256256351140722060998419199424227638284648587335486823928293669486593531331205139833858875334789997092021493247939895305504448142856928591144181113431937965633107088327279786851134259723626527054689497185229449833100603606439859045449659696822691988226073063809832298050673385373727171341293649824933869266057297243992052667664593793997931662052753604017215513379799304854621134541289315298013613231277084650103413791660580979344319274403017667993935259626789179788346761960661630688154244699718391299872987589448746777558921449138902579024421217767375527120033695943975272329510024542660407839024098357342271341569603407790469032429843259155594408055435795269096509594331040818301551859544766946129126873195800244586030891968766140398612479404518253760654773341874357496130901054981920080165638062408612024276443749401595456654277417229254290921654676961207183021800036814680957778251014691193224492348995223963099978710459054986373406769152344657275985103250634415898681736997588698715698783482021941613438611220288449845480398462410692633132298909140249176418297575309642352449915660624627777959273370077097853382012228097092250888671528346094225455840821863487467891918638262092836864898294024673451749497876330171142419864231838980236054388200053801300007277606395634979554306566836167832207300946171110695945131526136674167932358149659053348320047529962514467855465795551658063210639042787980910325008550125255996592970856210559442071830071141217685696539430371174412327686058279732431454443562792124388485196340545655708064409661174101444478501212263828640711305651524685981849101780902386304021662795221275338133263833266804252545689946110418459721530726859352520627029345943968764438419449579129218286813281993937959180677379651319313138557267358569504807798065136973226345599961458725260735128933176320209564304217916460371506115201340855841361124718849328073071769464426824164835185550910402422437014963511485080727852529221925899456460852587780889324267607055951729490565178921135576942268396171222143211182149336488028117583888573461965627178143143618207427150174444766471247373404593564131266819347535490455263824470952290790336608431473474163081924309462344336435649611410637029901744055786645126565982963649601803623580079888868857030780526405535970104160600785480716283653615054248007164337256966809623174981829744222734189179812629181086109539163328676059701009066567812124692690476964213528525268436882453901291202567181106082460524507735344785860619936735323793352402265605951218909636163721051263475880765929458144752731614262797684868615080578040394061973297934001483149497668850490881582639964395698271201699086518750414810580482064899761326010200814646983542030469215589706202471527465300107311979328462735323315647768540991462006253790313750602189337366447572654671792442352338503161794052325803462482451627306295288132160034600363009176869104668872960928973486910788238239858038116560775574490649640118568761261775671081714623786319400985817191635803316376072821431869970783636969454781665043400213429129222435889985692813935526372161220194294163097779927515208582075943269524536674851826964137241543379218051233989508875445377864668269017863427666890255762294151687961244672045025873152075184826195230134333975748152224633071855032524601393077045088948662378351290175683731155502353278327446056756273368397354700158046765799808076193884797661892569692304770617743023606040836889905333194654182467882354009278330723472867905286033929721774097710487114125479251031081724366123307661177129517410552069075326823894814776903502495829801235771232006451133027912843241323758986727716534805193446177660732875098002463872610845916766208622047395951685158640045427187363977019603644718166747558883254207075564916715849595845062120499614792663646086932176403318706161420430500808498309987417530431568318454778757845328026501120947655141216496031458271336194872810648404295857955961508900848796124993206758733329906382961526353463051429601048216539975697281116625587379976591333907778926258869335039496013820280304800866565639600517105153793626278456407548540177537609282793797740425315568071913337471731449486334565378317233054523514974372247276203382765107933440536861552019399120213785678478623707415435822460509544863560180506142436484578580466296441021049944425364088970236853379850615477878621955960952549785907770025081620439862073759642146808749091182921443699340702244632769851573334884934089284594938768017669549377952275537596481802779532001126720883078724631010121345762415561175945529122074288316661205982932470749680106955468539376271518221798401246350128268404140593564928264413708471111959071160436774934425555821749902589750874929402848703534760593990518031312429629268422325875357794466427170665733331949173474392786883688547266070437424646631363038469793467881594440402758336604052706167178885618206793579523471348524462335558078860828120264467077269412288924792679606232293491371972219184087811079927604267985121883724805604879866122755336864497959260699348139275905435010072106676999102458523783747571943621787118117576829468460336809100064466126890554974585087469164729998855675930898357775640095484647258815400525914353106674933873518779014091324752681419904753606301704855004473798598760282696227806237651397614746613809183891648227280319656591125916453591979469909899294015410685330745547471570730492538967866475828306738596228034624586863073819610781736587434293498860638894465816298005406212836626798020871078019775913254979643834462126217783234333521577075585267730463635376882016625039522277495173974335744763555112103158154891603507103362332512824417286176318300422804110765620164316131366706464423479392764936136754154781239237877420430807715356235741213322142807232110493494604611336097737547507240451709356716685184686492726721386729960326112431846366366930600677266938809284126734283663709875673445659072052564802931609176975189797321101434333793352101091213404477285384301548711678624396250273384575374940632540797748991054548910390400840103114538861166789630608956023961909041610679723160023171468645270404649100280950846223449755682496855768730429031522983922715690361342929327427616494570410246150722338066276560995956207140793767995420234767802625642633714383112730983655661263937167606263645612272671512868440010610606721084291629087137039279090285389539805027362336886090653062775752365824053840565545518270066621863600870398794163063395416507934942359880836776938518614462723857684610397782319379625682592270802108398152227275844334745566235259661175382936770608911698520353235271788099973006252084200937905508006391178232822358353967225664995579135391816682071490839256367176793785214554670818908707406539239100440030055038838895021757496619753006248570736467974741382279797199759558781674078015453837838422099557600143665961035340728855436411325670463941465914286869952261076576096319516914823038553767102562051258840252760646318023478338561902434341507988568742797976607221735499202986501349036689769580419586671729662711086701722823311956741015878968237559333197755953016295628362983177132726276609809201435865194627745412635218560719940820595760594424887659746765024852616640631860885517301069970732693845813868646743731851591503390953829589511890978377089932432973329443444957823495072163529461123220450813676612842722132010357867309158005015579823415249942705241797454015992663333129815934632288919699462764855958624261132391254060942758927608002044291863920995244494037182230911675485596004109302431090460227273570962111906877612875177137749080200487685658630293759090347339466903297308850484272333098120852407802079872868715647362685493383484037344620195376266792912670557387697064480928461926393122292450149466702434954200627456453914325258978151047058027334854359877862606855377193420587092631981282035762996612374857766212602001046700845732114606860742791308324597585593281407876330797044435532789494212296666011607090174770331380818510126099362455916132208964843415464183646003380318098091405430414157661592609685353458969374984901863102770397158558558625300374004618437630100012412846178171001179531380971119580700940288326746902816373251221842855917285290355735993418108355385349191225884971293674035384451272627846504753837073088154372785960613498490262288717379816982482093681731127039307323033504587317478891796028677965219059890462555354962969551724920421033564633145681226881568227103421808206761230461207027225235642513320163285823866452701061096998825921668926053504807209206418483000946575426740217065029563920743021241864641137958907305253834252696543665024907677494040773066443353215874684387420544243573531872527910905467459023525987053325859090576902767601647174587914886628699044269905379783633399221284008510185617239272356939108049812750450655375479250272195627762738799836147637907105917522301846034538549808022815592484386466262709006951424883048772381574142284534410892961292826846115687109171741350002500184585745696097231919674067907926288918554195707025979024290877284442194708055629506359225706424651497957093246070327131444195548459099821588548192186163036760467131503573312887538065818140534383366312916394170005965857505412502502840419340766407825855363649084323135826642234687997618890580877845569831556542572730127764787080703356369048755223929813000296023723784808008417876247135493041284505137625271883078643796135353674185746413814316995904454127979997066496288082666683028180919757750674800592272748323359407913181150705616930696937469021093576437580007349337820266446578615658526240981383546289917561864568704320682147675523217519921497362150954676947283597953017005632905907764093254783579886287218035744730172883591496764022245742205829411201641495458372245504320927434043504065602965202990716365009431220798446795490715179028977788520848208931073460526821910580136255640517498182853788492144513059051588009357463757521178193448179017862141344297681465537933139356130459621142099562510127361204926108050491524173820197284362666782354062017472432979025088101382396028042888829658149657734411520445006593220438328266319144431513306378043434514888720862728703023267456031742952958575741161914533865281831308298159635371695924982434487230533772748295286980380389184099871635866155478188361367947728458084579026768141493236690917054307399786769399630535804656800283997818488034863716198638840219018291549144418033075491640976432178372727852721636744284739304834085973864242158966683936470590649164262574616087605718633009442794312553224064546124447769018585252518661152949853115585417233052170356083981007682401233567306353695394239324518685441189971842204496299492295941499577427279735679464924405377130449834484313845335428026140660540530597510304763469996818203216527543046192948498887741599950043615562900268619205783029645844073021392817970107886813636840928722212666316385807508449822722007134897302777985438496522632512530244875726905760139885462702610978238725192038199048183536235332771297181642019712898085057794401632730806129866154998817677896891149066134290053924488075873692807114218934916057381351078509877242917209940056887931428455310844831547034708008277809824020662010937252726801088562945365102632946329497338176824066297185737363388915666195079939988149969266938644776518681442489617843895133075135548540898661726794850720794559067923579911236643319739611994862792633723568732651937637358874670965813253699324745607333403987361722820089419807057342856562074852402171249339379654397960040293148076475082546422617832521806556443446008168933555411491878800323989307367821286525468969854603520295956212020490976021327740774391445382166302743445043308516192088143135237517990690638926691472132256826022386395734117165998380616097161327036999896018720533240958921197225569005238472186478336950157566428432869121523668866910277711389813370176217611153315829907148813472429109914262647149542634583567206299859816297377209479029199980297084493639534204554114456336299850699344416514422127671287596540734548369176410863871272742959085566266351374791301947670102465872398078784669169057063749356258279903187510527531663641630121872844427102759210322481979254253910471712638264493052480973146578320116193541620039093029741151122778098937968802483137118343261574801399015199295127435208763917634417718352642488052811915734988289339711981344399411523748121466581052710151998761848881935285398981883592728299436264231548724585983626792154429834098020599391972552631338286511586620271622962328555410638504605066511479081813109892404237882522188329558715073274503784517452840629960496490777241399998282374242072588957579115214495753379433113931232098979048326867929740529623068191280587520219542144203963155880389573524440612127432915522772706502886737429930983842358046214071842265137633485321431802813249796578584970501317401758582562523401938923752295262496716345855859512373539496244187464898470391293962785204292134194749609189535256111662319410038260387158924551692050540685137089117404051826751608187670132950085821243540478167973631907163757065878995332635596675774095209216695380495599762102139274643718187878535647544079374583437529555705153413524420652382826518297916017554879619036474605317272906223164761935847022692970276835537590177936156345302455516390938892729293531861250599163313992227244790988253725996532503292692917120779803888754556770799607004631270314387216334497878109598209249862983955224533277437646196684039573111996895668397929909681893087096987181004794257436954992779582497349919902104201752139000258485189725394511515563352015360161173751367797943397773531811765240648194622161348742681747695497041489063896493718101483282016418288190411316545690096315560252212169868893866794911247103972189365488999991475649931396151349439299235954855121953111609744309854084446612729417810914160769156632452853207920348747774609623004117286597630091246163899688141266788812045524036822751402208084158489716271826709992419389674077423954022622742314543089345012437079086353002476294735661922567348861021088543016587979801897474518204064717590528715129895235240893428893497965334536135055682376262652054033211879476638727588959083014246596959158672733468268943661073501312410381458153178380078654627243576432840140143433902320836741449678060158308696313142300323559828187782804085228076164625101875124042666144510537616242957756415785455194310356385479454519463016949100807203075140697557723959696577323061202162173671937314705534913710375751236133968910019392740235954688939605764992482190716350152551952952681126027266801721514110650288984839875407326363858225500245308893922685550016146142948891068232612518337880870391447884249032326319513087721114739682145186162265182206826593867382670473894971555842367704169662278177562538906975389346267032975206366767792750698164117512590429581920619613220180987538277062588961929187173061793116932215696897251777868079800416895132769136560599830739993374696724918399247073481963723854912551995448561828053917868620010031928995138348207034274414474449239555546023354040976373070927264028280155228941353310180227147558166689115408867309517706535783571208511299760223962316135633291284152589375078615348962499989078309084565878561582493365810397833229539657002716188656800589698701352562693050893391399991556115773877157781011380605764127687814859935640292389331546188831204759220142211335851974721446838018270065547574662257865479857615577713927423954030630551796090062527462425573135327677332026092534249629927046155217409366561818193634121863554265777535700258970382754781218843570814012040289631387583744805399119457995738971295738636488088478489198387690580001845178230286367139728701884428059033113880582315320596580264630525641277819386139882268099793053739636179522841127388067797418134619949040426676410057014580207792218411036347180267552639196340509287066250777831522246183996950289292410442897069603907341540965935005563745818102568930295869495243420044624399154825697892216272880035446163573293334917207875658406191348475918714007284856899009744706908899892317644125697712565051226427417301685766011556708940701953639642706461704244446913521418092017134332948662761539111327245105754955344664220613277539269673440555190366037054938920416679440795028375314872828238568233175222898810957595078214801750948520582426611356825137612144573732319131011156606847538000727707919916635335535547795755171452894778319888815700457450379611352234767563010496368051954519168865702625697923237287173482790644802727289617942908776302360787938465759191562159852365488084053125188002925957424315923834847699124402282755240757309667294723887577312347072078471310048097504099019672424076957993502922846271988513302193055204340987947224548107144630002486923335222431281157955443120177706434435896316143909102887792719830666831259735129212302008391123184937835254683652403592772053342154164722907820686759502699220608202641953819827175371784762408035876033712407805184102870971941781823686080822161705483001204927008221207111770895277073900134803697814359714011959287853783658759008281090988927772056208507184776030499529463110648589765240924995462573411712027071697082045620957062131081616628279269326097685535519882416508727313433813923499713989366666508041659231264924954224781849335696690627593987683028421358588136113020003337277323306092053822337006006802970352322195517712047568981117517850532404346337281088945765455121302424779678061790415492164343740860013719320389311604584590288367585234193745186044809057193239299292872883710599081997277916387251787545108518236578244920026273662815462576523761934030376492267324141145744740243194590967238394735680633135197569881572337446830852829100099047940217683436243356284540256121750996354147950298701255392112306987943181098921143583554195147954432824882205643983457352973133327335738287027962405473352490331090497686581894678060022459963022724055071197225611755942040462330164482298370828255925164961682171158106893565495528045055282554072416876546595167034650189457193598198911627748249911359122508052144063963209046771506254034819746786966651539888035607633761231761271583381602802427560539916052264878089320817289031404775984882883913852095961378358655829668365471948032738563186590045555503644373434070268645684808197158635359774716109769194535372270542332803235849180243417450786237271489865040570302740940111869041948466885689133006468662369770611740868900397780608501461162517973303764201068089395065212828241755580633337858034847552452149878471433629818192768242283792852052463550854280909099128631962733141834761422527669750061491279036446409802108120553943848267680069682863305911802196416974109157668303110694490042532578043067590240182888492258979082105522307675530827487965089839189985021988132729330061204660094502967460829633808767865954340131651840349932658345355698796652159734345903967009001884843902129265163101139385018729113516118520892513244532226129870679728927797415201749612571772070315918728494839648091139792718467267390756127957365402289620136452294930543083576228362159089355361964614426038938650003538860543729915200469206463910270570455918907778764144244795242163821458073733836856443599300048605802944402477741882364981924160241363666222169354932564184977168947461385878378549238635785982271804163897955932398253421125580798404579176921882972059201248126934011418640303951940644614929101668861047299090920107774513463854040648096001091188414028846392774206696683266328711487182936902088167645872421941547845701984640933017151026009608711978662897595176991741076215938421534301493999202260672818131535342009012142976437069273224363307342187198642955699162540504361219607625801251080915491742445718091558785845265141648409118348817185022402929823472032555689549523129479890725374539437630990805400244922824069676919508790139878068483325588503028406993592488706050215314528018614650001630846294169493251000509885417163330397554959399771990231830193515929691106966116780943254555733773310373609020956112571468890040973607582534512816100886423142252669998031620457884442015029203492974067470458084035170935832574393012673079713977229456416352996771441433398464272783721008757673018353145550240223825161677018403653213011335296924000798591799231449096930731664307173465778270498765305392137517832607710223962845441029324362978747872471437947753905147267611374463010055175256785356701219011875872867281562754912285814295112288287094093986076288954148345405688495435065640905705765279194792996218815273458082238129861646074428315020292638351891702137903905892144297165135188810813630063236262500751486824627201190380275154105777545635070045461612422295201319972350591923967798483318377980439023663881621681298863887266051401290201353740256969800868957335896129666088115388573613344416491838973514004958542948051071596790003191413127840250906080008848704490441727756241742742662298380994613576553574152239517655038053900357467093029100374027595862034228178136176890226324888856633298120902567122853503811744171156230172954287821430664716283443392984746433218225741140201993474904445471323583496599722032064032924477181682781641638907993846949988729390606536815991216854048642910513967674232730284963059019860155828524376191476952115427499849430039339432358022766061160916685995900225388440586908404779080055929849626486251098437515908342067877207467240760482595004825110127683094528938003260930629107277135063401434527057996626074461708517622313246278368906816134247213809959233083847419114040551698654648602193990324628716556228347235324415329127005112117196923362953700977911150268518650230257309681503085997538963908574575334014063372640011437160808255815995652002792363956152399515905605499418137648854930817511370182810588216950201115167778059319305406794700672008621519866625313294305294470685738149272143457236147063239407036227764729634340836477157456150066521654487759671690568177306688343621224300878773510087762450325531386136331771441149056402480637431218532385034068647137257264252876670686457953127616354336094105478497478717041607725995925304335175268830149307983353704231373764006857108577225048954281381978234913218079223034027765836320483159083533441446347475168090666599921228934485733278791982818475859568458789517742731627242597545536264566506492002734860098655938833425512335626079915802780389685160816038753437389131560512870806848456850048450107715473433090986247658067293668192005414117963584679225744087514268244040572655665055326763987694491899959403679686838706017655979782146711032860634459915476448573893585395406049894866634662160436958009938709259416596043414609885727840326603412141703593513210893379576710941893461461931429431726081823043943171190420999316499338540217181292749779371275325847929575692097756380505118605955512142661779723835296403836696940976671646792694689383022417641543489632166455013610829961180456792382832200461585874885580182319083016903105445056183038319402393392739878276054675433275952455986434261139475926203222693300711076406888696612569789832534022193237262086058496761492229777609036213862236116122048220646027860378190030898273079486385523215640167259074415479119951279855820614079399393606136329987938189987752182817179474076053402195481622234324450326192205369419149949245641720388607000038525907607238733758254385935844553971685186670943848164810871274496339704373767678278942136442000907353568093088915648197637420001084083103183350290138483715315699936437364534559096850556219001472428109627534587364503641858557820383993985282272637772573840611223608383569352727795289224232026962851547929560481986400566975299195977258894279672686511337389846399434287985650031937456920345625225132505598455995295839516460586828323731996701321557443899339118993854295202055623146144311063813912787356398521746664855843873679488101879081632463759876632481401020426089582713766525254722140032574904038395196231676271069422415857775419879189409939974061465006829659282800621548814987396294583634759308831004106943800148507215589410785476578682627426555998902262316016785630538033601495076497243043038425207723592392488300512572121492265008100926160219059672560443891131700485162044912208100218915355958028182461863054247480478833384113861539903267818729044409496136162670589794993236699755647364479839495470473993413939638952494288001770269378501390337159768375793634303993006354520917819733994760984068296819263571905504258482172400216057950534225899075354196564518077820126892466002249982881787668207721086472804617600451228318346640053197444759863391349667146840978071369870497191149306081918227997523779756194068123898005104933433851008609209096008351514114074287753523805297487068464313607411143440761937904079362961015590980486691378382748177736567844029660174022579454766729110709505085509893209836576228240168156084019976716791238880805380738835717692679040624874149478618014745444933133543008405876681927344485153283816562526777450959086274378471955290661260684547344156682797332978035044065595987425093182350155452833994332756709129148168415528098507608295041301551328247824653938500697548028836465444757721751259812696949585287410118005513653934467028146761517075032698403322796840609255616480728261477813990950668531396920210779801917243203117143828593286935285976480605302112065487936333098737008212491938008588431243375036296356702663770726608706462660944555810535514735715430410441078943844263407480503362663683864019148085481003713320073682554094214911608262059940537156470326121788312205314801522799695109853443752224779992569285975795718664867421188425014520165930607665837714554105690737213310612023879770609764532259301596252013293319946157669705080528008557630189928485066665345709400879648583507495632073397445490845914528332709400330727632390449881461959663248490317104453395690893712754719503469730699572412488248609595889278387627966506035062770901938513674817930176967675786564202374883076296936425271784699561246730526541889239650500200426880752251858294846192319905380833946485720965846076381807173548712662812296928519124379642265483519131098209624908896278922264900703669107112919229203650210931292866156912241585398672870398769993494729675165431241819815552524176175927281567729740383927965549835327096917642092253702716077005969947715047362798709832624687199304607564725407261668789449039918442540411569385670579059268180571260862448869295597445536455313974174015796099459329790580208508142782067542597597236328176886156730437458175436050861177471033869190365100909872725544342866677093967042282190388722344697719377446889818078165302847180352373169239319166181659405169485943844230381055987334066554369749499322244171604315237908670079773104428448708303364487173967114088992189571530962390644915847256600761796879667791198527377204737127481765804835495773854078993743906999749841888165546955129801117481918124892629895426124257622446306116370926277472934028840755994366268732398126905862730523531224484456414792186256383782758979655882517542457761372825775261381572315967477699319643412736179726863458614527547335650447731243877195931997679150258524294713929195179414624803181089265035759180173585238439543164131370497561505461875922571652877404824309932381525538153337267601194538631079095238659000374497231211265837005125344268942330083747568666327702576676112171793060409317679434483472722284201957182062131617738508086515153397153954341972234824530645856080565527646935974115481541433930245158806976615605845808454306638384307258874862261199997052088873621360179367731972201794852530503774887614736660846561818086578726314140581135554958207250213998729938733074871840107007414531323407893800217255530050839571485606335923996535117358434009838906938266724495347029527950052538809519931329707162985947996161311700694535231889777165925756965066600598626781067544592511115187845564735399447483515921756863004634979656655289886765482755847929864286560872011673459489922279332050824916461556406545424522203291871778806623962911236342406933496901843391231102553095661378124374172552501037954979821941374157813890373422737045253363974034302781423972588416458061047719437585443713186058188084661050697823054937902060203847146597654309555342303927769273000413903528461534253253506599883469021171889963491916846664116096443115856186896451133229008088255801976043106565293033582618598646692427903898653876076525851204589211950298304327565731052029096752003191446324693141501150371542527233854998181615790719263785088530950916183630466107605696017714905908629625454365334183881920498438856714903331411566788627297980039451726641718730454870067256044889582529577102454896911401501336899940418604424559122379544442355227719340663742957922210080104675473300254163322661445470620163385238855138550243726081692329196720610156667949590551865133206396292441399407280676036813921125784220384296067722004514492229404615554841386682343481084712084524165190906232392755797292691677882907964412424891928737637828078579261092098892843282293378027224000993319035921385140339628911488472836575266841541881337881536178002531200190902982606060930329664024046594449342661476349925050045131118693842187783991504996040183009065862299910094783520499354319654354325409704089008473344789229925078745986603216104878812776593515570515005669441535848813503827380716257743442073962539074795141559545558521906524735777997714196929584100030033966518503067877919172512773303398805844759727996686875799211864937817596744459162853026996308668993404079455339558555581083509087204933547444456964087309858952776126026357615726129866454122008707956567364543259190516276909859388819389923085094316901860941476641279669795382090494504630092053344519778033239106483497135362128300355537280928362966409627967095817182514278484560107564851975083898401932916721255302208073180918878156461259403960491626240438824223671284155794467788037760932615470137624973905762999204533184314799863541378427060346818354529537625527518150563957520543711632502065466786842791837580367981612135736541637971833901040672212085896636266553299519142280871346432670112053320139758163166369840366992438632206574527575021613401510796178614130054822304167581844628684015403996189621845654737151025417364824292008828366969155799010068973638680735198641223884869521442920214201981912790020552875775812040909438377864072003304250750513806285784158225274487430063527220074878307191059741032319653861220967015522298072950543594764017501121291989379712837935813375815252434853333756759054021199847432831782220680603400582721498293853232392861559498386143989785394955147492395179648454422100819848529160512111914623309313021766726855933067830215066201278529553757970026139341812457226359586977990913923673820650481213949929534266092605086471439084129718429302390475115640149567518086579156626101977259399804020597000784133888662194761603642284893784895051023315417541592010766233495394290301573017461748563348889272880324868969449270562081294694423762608261985305807372388738148071859394873107178598093103067155722797523191089291055224541147393302087558088993854542743438820801848806237727017808530933486535557422888195536994308056760341989669752389615232426727491309101049101857049899480440082658673423070026037621044044984818488710686159351571788513070831593902298480646464866235578112319257617406957583193776240445755444866668387389924924758050687730152183156625004938969650853565166560470544198133185470372693802852187360037484928728428889853759522444290643558695318550267728846295125870775324799247442966037698903103372961215249651301443970002962372566881050691321671227248957939277055172401252235184345438764678745693321072529611911793145137179674811354690019456532810538330128089475873643411309059900076306746199000741542546577741294280211054621633664981283821487618584165857451477678971905067641588339043581660341197053620872877312359670024337136825747671680566939543933694159081574974936198989861476334157613878413934115423900393559141818444956035058781937592875152741603982354458307665436354814895673659873132081691240008891904321388474409249409977541451794779952261029234873479701765080786221068509271046869325542600446202888467042507622517615399972675115193203992746788542210230416131873420628220178935620552666367761594597339691632755374048049680298382193225612978251759227321050044254581034388368823214335039214081388095141413022446369098362737923184926695872966546988450987473937238805950880667839578115976121931278158686322811332880491436167771339690371230315147530147304549036282937925309928834380995595542925809567694191455396585420252814190611216685669198438046706234863876249993287148458827017609688813299896394320353465077969835586109063221956260105640459032064407739759790985818704694833045349051893343903337784567543524247136590453133947100399398346987475875878545758641275301274073978056278129317437467203966328815568581313974350216383200697871400208759341699779063915771119397651673304182262799103629247423258379847958476507839510960356076643179325480870758470563074743418002346189338823810005634781693115492941800115736005455566944784723438070493218044144342128441812836312172282293615434654826984273668518246565513876270283034368669342854226412216036609041988275732460422542375200019241774256310129731993829750437362402801731282320289628959887372496850811158633399100622296958464180559561797356713010521089191475013981300460018133268252466494954482525824338808387687082257891590626380395579152617734693206517788348375733021047416321550081564064907052649470124458527024059364436874906443298598395906436402215782125930042916043630883762655690919177993847380187681312128797855589450426449564450560808654825966060891336013336178030277652916629377419206650980531113445838334110555540363342618292606074705057862883769902432105060057085219979804832525064094662612787504943879917736737487691675018013388227202174169773506313544136020788062114289331424179885110286044906718583800568816947347824127058092769515346856002174035150400274493831831875263895302953618205644801602253047829921364064996304829081503676251019236634161675572865195929536097556258734124377915413187244507287167763206717341206695019862896668723798259182266685647130725362683822605039727480409667395901264079641983685623746421516676791750098654965003237528448694993464523473191353354998840342924360478495344145641410518992531930138521855651870320119692792202400252710543238436117408377037651972126313840960805764598724849152279911487765946599364422331742132026631782766980640034420641402781862539683157125779196428462685228395710731464734937095189875065370513267823661647897361421606390473371821301950116747880718680571547670407821726471277637588573409643756936899564944513255004352806669183536074125704369332502029398352259665051261214493619316314885277756816462708539675616293488089234948191082727444839178345034819632404688886508208791426468955784669789542111726155792356422779759281099839190925045905468670277494933561196062454859178533955893582119056851268890971688321431802755602253459319335851658995455685654125128864686409762055484392223305238047323632006067906200774364281916359761527409526777451643922892353945908732100620669283963917721008836646097615746975606541663052079777352678875321661918051510673914368949031714145708155831017823861149712057743460096691091200298550835676721500678424929470886279821379793100688770056936137693561006071094281075933474052991334187034967697885356045509219598237755140018709396135107728814827004305343841063092118546056145621047347187681022529292212465600784978366152758737875412475377505645793569713546351224388739473212914636854106391678858688780100468108801739078925199288725010137902761733327011620937858513017556929731140309793096615654748147998471808074848649171629149853431651146065269284498490439513081217821285152430063509011783441247790925342092774724743048246610175512881954867904242361557736834734817157102747575214232866949540758045029390093810546241846592385086525396295656422127729089065382882077498688735119680104374538056951150875646977502239113556317418537773412312069799102498665095107983739092734297266630691112347342239439078447967986368959254834425743092880427587808231822316362164740385349832141326593412150726318209027353971994372413021244872195834292497776832760220057757492086777181637209372192627734434480794480430425119506129283971690167303143487552864300760974468542450138314517647204404469097824207189662503140387441801127318361822014309230977430932875410023155980671181325264835048193995205745226057192766589557887613817761597334500510596435704040745841172368488667037671204356532400857748149769078008353976601093223823787685453531840798246854551399040078976630215343130684876158133059538719505286137884138668125332220468512754630566194638180004994633221062443074443577828690408163903139303693647795094417258976568151132351461078235101473634441723997332126449366060803160669457941950445212403983886907783021779403842176414751736848448302571433111350447984597121338964510064222775013654576943196087987506907525545379562035277894601747386288190380561043145690511673593437805537301057665483020834651364310845845594002424403052032632281182553180081286679423134345945462986850946473175429038612636995780338487862273863280244363559341191375607261572992399809714846930379612449916788851828405793117479164552963855356074749592216170774258782944077018263404213342818394740852620189611065587114255261165921293278148891824201913543449639636512991474794742493367656731073053560246993371240842784152095337932500091759034821972954901464808034188649465367073297381241935902249567782556454632143245807594572378531353942002634064729350920794398066007339769361683482586217347112069590515196959072072122365367812419780640615772926494879553651385123625265471828051104957502726577544151960957254946060109545635116649827759744656110451928937063861039527208555428439462503440980799543669979161906878328169669614662453977193842563816795345950520907710747290201806051287399886098633729291463641074634984919326748083329626751652837562038360490532238132803866556751753692421081256994120670359702909312757427108172457278400188395630708818078762257453299539776857616155564485441563053291380488711121602567329807165244136718381247822566271127682548792129551435830359894882052368749970515004730023442120007725615332525266452790349379182128939894835728160840405328408051056949820383414787008049077040343130428908090817217494048632034294416473757280297002164629352293971225258841849057530154936177647477226901068271742537226415792173428793264263653099386136048797879975473907900176691657226641935549941640685859107606977291239896725252842746691194239864137039632794915242298660880111226231448025521107139827142973253770316203336597702685551441931118822728013440042627579837279053589897592206682661321184351459198542625780985254480875066098470239502064983433229824646816149258764877359949120651907150500328445959043073303339925855871297056982551156951928499581545385323016703319036653180437878276444449788432975151836757504422043682790052082149627083916023774339995976720589124199470364696006009910106658429546596428336074714663055542260486156640409317803438156689894401173567073623397205532505321053180154178154949172733784946689705895211365428099437281799992317628258727686803247233117613239614954769576011427750931150710344017665087141267908773141003541826991394629680162851894069612859847492905322585183783137184313472214121904409937360557608986585794442388901134428920285865292473177638955477438070185936580986155742503057589324711019734097031109376925075118474137663642558793456228942417311523468695720542558287780901688486147761564029740986711973055392907053478587211742971610321679069375772130251485083935388461825523722622095485069514927085251395853169265886843230018138931162914123403346463071106987453228349359302950702690751663704709982633800731343300193449984482253535347108904167971502883744922365491900402343621630105467478463768101819390333664645288679342305878483644422407693007463454108137011471085376746459090079395634525282681288997691160555172171415098972294829621442367879427384516355005180707578969773173239711433915119616024908860814699821411706736749908623830043535301560371526128083091271507029654214736477785083495384757347426931990086480921389179498901344311973313016076975960388526605379936056147133466083300252653142086117498851930654933406589284146911775580879333717700394052011384160893454211679245036549128356021045150005283267471432391880865340117249612712974521628279300497825807565181280728909310259704961246704660540517765915065144675121792335503235447507665082127003844789606246445382920835515082021708770412088788631310648669547383479962108828832287622454056304965351297907979452035837806538134110558173553087605201617370223954884715020436232536697377522667151271369827270530894022308517098943855249227187355777138776290740715036665355802509609293273842939075635649523676529673144417596695088062357366277513988751281393575109132411268470058633375555079173457938261657693674284516096938717227363267524296799300974056497761759410975544748076116598586263711412234532935323953264941325500174168995342240516798112442550776393915268169980276966365866517863955005087426249529670622503195406087395233793140602016299695754730973501657840051317426971661162361356420494484543075615230777130023636159376067661248798325222738799836974243655892697921775104764316495929000296393276792733833132032066183633648537382707030088766005489465078452824223334410271011442504383036240252528375122529872081528314510142728711400539683806949604514711935268756026005216084608520974325736015399298936187351923166538778494362280782048761237596350449767457533102244635417674494512916016907757438656510809266955725562159147310097911734022485268606734682210851116062344891697300249668633789739454082162611643960512957449568827908830635550532508609302012470310198414972452192603458409983598570328331317387924907224500435327963336692158123153190547428955328398760194899719110328345648385083830870765138351993313555158314991311993046108827150934055262941891074866215274770962993543571085948012888947678499873854136768802082431323651642751754558695447103818727261144307651318763047555151400718819734776347440994331174387749510483988655298743877018074088747948582953590104502348583796900101843501482020531566343445094863485198382295881783566445975306227386012751901244317031772395570805551222416392221451609357847153172153401917223024685960733513903799826436961730289919591942786282463035392487732625582623010293385976267661271488050945687342943842531548122119584312677632579541917596903518526045633667386324409442415001016200618006431813098001044400373473320012669492223768742330885247806232373105419277738904054859449900534763385473013577009038808922406710479257990037198889250541682780638862992032853211254821098647250348766778985027907208550173139167803949423248370829954349725326893295665097968435882107793873014553527017818388523876893378856205193536612132581784238392356619427898631815065765072648244325840807498026581355253967326535599653584903425320543130019283515443661375252273835328969123627797675762033362520661967990306543753161844604816171059003196149683816210002018734106318933142550379452051175349427794709103564858231867103487644677064547401945962659675178467940045066625168199568298009822122300283396496718077245960931297878697489027163844247716179290157185348601095714994960280317431807524428959734981468216100737569891384011859297972811079221174867741129825960597350826669811845255379458760392334410593110159477777446925107658217748561768560868077809551334284230305924692928912045217736215808800034020979558023291150823056827384815308760821887253624394471175539867147381647758975831702504315865923541168416858583646374966982575346191253794934942811637556150485087528949776537702025580257519119947292897938538531704612872108974450476819068242481870931341051384753116323289786715731327334595893383551103350728798256476995373265049771749535067277051136936723179974978710418826798177245013395098741053864438899923326129756211012499123482583320399857968894372231579579687817622626315679888108396831336258460408672383587567410987716864266427874439725074887729680581683596564202079307613365485921199256507031265797956532053177021225260907225029475719224055289663082239802871622419697642726372893421476835267815820095621571572518165679965456629673491770807483775189628430291961021890469664937752554647925586036705503281245152997114882984346599266303760365429396222389838069907993890628938193251913874394176303098542392019061621678262954521782918991310899716615262140483552338772161957093345168821466870550598294915244608480969892623791644405893351199229285876794604090998396399421998731469291677784266148928828049605117995514963566808714311238881928640940757767240690670368209069469060644794583484675501251163186109463647343576926675071692740049376870243340466805912983465943250347897403392199103172781770295039477137221463028926434150130528738295916389152993468511461863597047301820014870308178476546134149862277485572901990431483015310971384332969374579246295402306409162603293246777494024634453854988955614751707433055899571778864939139490230680316360362944347677305967935448316269519376352670349617837742957043947473145213560253030034812092980445081261161853221102784817082936401346540464625481943281975910193882350405752978312308885174798775354633506475487447498162677687521051368072624821657596752781995415667620560345906594306669625752944794179196887978069143210120136070229820801682811933928589824965672918785405077976636567996442208955982665992996162183110452536844664121901367241975502091018709118266214107027055694085333229310457825908969230755564437904229922655823967185180224524683007382660634096374906566439107337920640170721249506298673390125455589225337122271474217441561493028550746707461110278047108354855624202210960017683848352501940584148668606275235185965826133979771213333491873144074236735541925550928145908109718698072375996949135136000387131190075756079254452752756486423262766130658089004622838905668223046581937888986415005240298234965466364390556308821824030988126485361395273965340400556320471114381094723721983899892466886676696336887345418056156034612477333935259492502600558653812809350064491708388752070258799256092959822968901345664457815716779329457140788183646604494983869499868414617797716309514135291264893613023823591448821736689613334541545915072004471438274844257211088626448134550427738661439162123082303262163322831556740314071568269639977543577063804544983622769250839805498856179121812126925275261349110797049271418699585632593911760945372934072317199302695191403517227574235662132453010391192025731848149033459258953299495651205085490209772753634801257939228977498985992468423578924810742741595769627016022068893802616268391171694795475244488237421032832308915663315635572692991558879465809745021237687963703293871368321229606442067086116618441104193333913116018115440745281769584944096403389598739639398254197908421596411315694938885294498768325773555839030007964208130517905114746682582723267884649050409921366850699469980424876382798592562355944323749883558416699066284953879777925405027197429437899634074622767945605341782823080453009572590480668132382651025754897263524066603302401393737594878662704561983503829313756606793040175910805732806849549839077852151210434798085458847758607870059660365399235859668834299955153691621128401920318264381693817726436126547537615612024507577068907004242721155155518174413016984034120091528935630643556218025057636250782679336163868311559756621423704565764258964173118609256326920021928659411031409550696435648895657922807892805984455516083157433888521466283410540295131408769933628988708192519309369189511099898530839011256772190170988968132958691669235911454557060949996364485716045325616571077717442132528322701280234712276629044411371677723643775792879628899213013966631990684856072816853733413255126502297456243340857766904192200056942083721347175843687194565242288460977268194983982342815345284053201932712278234974547872177196015575873573041874543645017355370394226835930808371624192248530588393108806517398045953628440475030139397700454977346270088951158683344995517321801949829359163205092674662385110498211945862018970028768927586635072404315752376644659893448514712967341114148803924122024880891784851313584228881963550989423667949291598413680655091019710440194605934198244095350213517561328801410516559743090608309250735245388617117496791371460073634434085440107822477932738393964840580209259647461472158496797515170703068839902862158237066128518600234237606468387728198246787624870250499912978435004677283577972675625274533927649300236638002947101915970391315371266584535393440444592946382574828008339506594765811685278453445962618869039090036533746313887348290327188169312196598224624541935283811964499831389853943439329985540146805667911307443293592461521679527001168343266523122115071025754485725495281643836114492790890144488242049424491389953979841116830263817925650730697304183334835427660159357672551588889751369769151118283650380646935370835262700198158039724251384121628369050727640954029524168005268034356065681321535976024587884402123936396187053811960956237900216165058021984662585882307144192078955301936207404631204835123915430277218679355772023134076090992430027261683562618027897468243445609197235524467284850310101194672779058890713103667635004541531524573075167482753884163574971394376814269030529709836158417648359744166820336187566652726281499219091411871151302274700112375920553368019408507325573623919830044653975825320161339368547714829925353361733281135034963304569008521248709797954440165270414828379438157917949329306244940828927913783540643038465335504666112139569042950028129362828319019307221151339320431034746796788741897727197359167555345667365118860048257080595572245579519991163739121840334010155288921302145136849053857646066866254905547393601249358674686429103097237532604315456007749720779841719686702950069698766727358947217918938901848073627422173770199997918794552183144003231369368782834626128234530153067185351254050108867309510557532160643630768863594337776998049914595842731845516541697619305303414188522172081132733329235663564985890454270640227544131187573459629612266857969974080214230061646979020918342606494171663644581634941927221317824402542428227333637049880839965737294592433998136035453643171352539018204770338627071561182303571009552655511076048923338326132911860311300020018436431432081659192823149343921753534006787135004214809758080459762572987936984398338336841350413297947102851797196292573504329931488216318805987416710665229748623501022540792570899360213319350169099386871904952678872036833366308712639126574085751504591935021344753366788843103161092929396623739839392053709380108789763595077813376823353738899367658863597878520526740028178931910027734395620112498641211365905156175347623305482585648422962016190118867623489864384938444374465145975533732628521543043685701748598240977721692900959511709387449822605090644051742904721270744463069931839077670987317615316026825852904224794893204300771857926378854302825886645613183403272257474282719373756723916104165418546515728770451978116520476780775626969924235027262203079544217939461782976416139531146199977841710106958460605052472616750981713590445357710693213316540328982155014580425510520879961687101067438646579459964711416221325398394879059743197530188261290124993724511257157760508616496133185040790388226854591457831517536788191737150767197671121217906589258382584626243452613652142080135061625211609778393941568934961727861663131020336864736278372599831412474920471367366961584230190690532962638444705911853923415793238572546393827918511365526801623066028944576965446298454271352826706122350458746223366001261081794732005615104152602859852429290113482188168339482593319176917732378620424356141851756999291174088282386212171991023529358747699540594679808114145757537601174324781883885733108186443322394754563522060029533100434079233701364375891424734027598349758864387739139826072755577856548930693054806275249505362880809610249342653312715802810594378231581550894234746968606024147722290126990315428569230226427188278489245712721025182816148236239219571644103582203658706681754133000508822026526210599683980507392728672410513765871862171476129196691465554002331564190344705648599504253656064452839014925482126134935136047210817807976641796112223357744836915162140093546433521301015383181210074557871315104970361485338686915269194304808571470824466537469298529615022181548290046202617927962621675437440887209541863438039330229707393209791489313444745396961769457478165848569909549852173201012038517891980858986610542617557102015489740243457529955505507292063807461680949943501229479918487952357256744310526696883412169857909044301159125909960295746848669128874625740032747987174572945985403238360313759849882679089564088909220191527047563658620041950879208573151266863872434335383052455310316419092281935426845079075787462415208248835838638527280025122669326239185095605033778452652838596745658397422617630108628077316112845146530521630186674034063604142028048025152196297794087002649219905351004553749409712337458831340022461595997089006648813721321232628146490469555103361115544879081187124621208841500768833966754561792977378589176872467507099716437359070104273589543924929848137674894622896888397683757373515365530171512335752864934541638832083307591089767686631618307593820164538176277600151282919031575051611186212320668516885095056879948140808856345193407892735791734593206536417539419907311833540808657417664812613713043688189895858901467262843166941311181275018157541859396197047327573484005549629636704576283553701599473044309654592602539974130392454206948350872491844144426975375410943403440172198103728917267760273134235193552549921664401832866624242948409642641003361836792076715826779424935502273376833956528081746872820708720445672089536072698967517095369432354912382111249660976699891491394406633558847968747120163765354750929196751841168387750501231444853830625613781329809133300044271964789169631580269197613784481717135376825652491130626269378067193253656100696393894813213238577057054850951668906399581363986667156960287992368762389437299068148218446845399698845484961491583235602710584143584687366104891582479732846166770263630016988643291394458604400954618431837938597910599479610575102839347814728483640715315559368831516016972343010462415628297437092707499732724561541351111895208715336349876386295563540554743563606495517495939221183365771292324601275504496019364762273603992219669138155397750554815745029871193110599785348293977108416472485844399174322785783102492624887846353272740402957112881710953334630723652380057085437267423995118923891596694843822518594493505189951565831868428318645013455512705418227444927610633505242523319861742241363844663523911080236418592971737247912627367335822142147896102196693111237114929322189518058193536012145048535284714312839752141301652069131385108406846657821972391986295953304981130865781677507545221950652758739288969194786885868133558449143635017018707154282902141799012528485092955705940212755919687919384375629041068606841290907321612812338451836611763563255499960046151473586314656656386340244725593514954281558044469632218225905144526269065915853125153513535276081007210773440067722185180637224881108956148328125791078052705067094147462683214320860529329040500240868110339736478725700468079506777857472790077632414036618501838420740658319316802811753315463996941284446211701414701205082750093006451771593684742471482947912002468120316552767437287407717490007633885748516744907573013649591144673680547996481866738735447966719750040429495015421576591583565869094812141475815484854457714448849819419255818951625672827477308242665709208985799607234422748235589666237305023515685854828341762846260229032295897633486132047719867753750117816453056592885985419730959401275646468925561841424284898595445551922208882410858524600724769284305728281875516361234374720223048543172389913634887974097214941293175196955497714994299071003471308610047993234322856139704337319427781015857036647949900231491265406529624149716032265998992225199506088597710660233102194519655840743620612813929115146905250190646142477152969663659008486250012743495353237612829118846086989615590420149025926322801296172513373102110494626110554116670157610243904125770593276978282794216714139390231190887162116735745718969803911616040180700773465749873737911205397375934669970122596214893515403296320529985257128697846777990848552146744661524943683519280530273239839958654435132838027158574559561585403463234318686961565845183197079018127993210287164272904892683984422740403310827236430407155457700521282452791454413370593369371598819487958512897050962609369451473650107979365563844489322264733293099020218248025555276239723249770799573295603065806313512747345598009959312658066441333433203957215318102888187491154878813608731634673289425833729759407771001512406272760664000001707542631350631550527135378325345528951875926553401009575050829912484944359931758158247369573286613553121145419334349517557895259369525120881108144864217011203957347474085003695492291160731011608192168239104612293658822792834982155942768356116041279884048055322732148752704409687733470804788282534404203537935621921031549180256864827512720533594439569986646735457691385340335295514038101067075009727918660876739325453547838090377159459954345410035533152069000885097956165249882943127273175925555492882775875798896103074082867492726425227728065939166030061039585209905596241506343674410760647558961917613834632555306303149005825046015670812290763566037605522850934557579565145441175240011056323753262276085695633504675529614214796276628262540764424398774249608222863572997630653102659110977979100171764008293053603579321796070859976223380936086128278433672087371516621350789239248704118922557570082368925102834810699185888966867716143278831788007970496310677200914511073974671206545270343526744503131318578670167949444852972509955605214745915523896404216219205804992881800496969627320775826382599257139060249694346309472057454812243318311490009632462437920965153097998323243447739274557807688609809853228748998668700073027903363786084079040998788976461409753440484328767948686789970286422812682892104492189913729732377178524731395111813869551467197935386531498999124722414566546099531796686505345500673040273813015556265237905520708886400203240542073059819640788822255272412143208616083071417756498135930291914665461343568767055232671115572234132945313107537440056464813061433654266462387883624156383673679106623324285198778350001130822402316950139617133258486016132995561779404306753508983761391772183748555038931141598081938194861292177565720736842932519160278054625343285863305316784831958781330311304857606666587339014182968523014268524861623015668633317236146059371590110892115874988466449153590531811766509971682736483406833363938015153690215651870789300131717911919979540619257721674847422733926824700824430378973937893580137903399720608941988200731323703236204289294555434999174986068533200643436529795871669158477448653861660907186905147014693844409835703616166124503480626206242498089992472851819797919804967941419692474081710798129867149694064217722933556617785221389912137391244320384651084471031907220057153588489682548462451831048222288434151061224757572284231127693322876310819539037061279722384816972598022926183542153610905183359101930234879210982879522158580433112663675898677781027823757766137923596801663649593605178293181439909658047461836339652323888714726623757097687912459798147140979041684138579018899805436778672042351073872328843418586556654023585169224220947356163188945252905100169755226457415436250786280313527005070152714778951113945341478332954531966047015080830666274332810052251711019149051934031713071320811098885174269950869437572223010422911865206244914947876222474863727778622773614093671689510001515039413971028750311235178289414517785010305979505566208587660163633174292199984577246077080048147912326145833591615500686121230960199095460964608888053744725699549408352373764502862391032808242157312521909392406031170557382108684861018254988358566355517619677517214555379044970919872723654677007678094148005974554336863120905249982010459498542114756338947148173505683175874142643440381353599898855745459265641795705592708170460147255996605492171489953172122575902007685189420269503974250156902818170869018063231173826752059276543676374384553885662841560124001657431059068970171918672871460424188096190158905135762908821477322313938589756896352956436467225568331052788961335090435796131211869590009327181556120801075129291827024733387811331178803520211565770772448620748044783636030709344410295874445870140209627324687392093145380468762095718258015885496715154224348690746018013317197770189503934070070086584777669401270309864558242404845535248253402212437220359931382124024879125519253392310603332195958386001217934664177852910860857807344297995397554885769322066571073094070335738291570508143800465210607223180663795377158069589711736326631589632360470283352185466670521567153928728853841484450799149787978996512802386757313265481763035934508083270924202988542480109766501291916347967559414228769890955844996644773364731928402606770495680329777805495108133801340665760235547923455398335458637451506295822004976905492927026078523798164964707926403402162936561537450554665145193969449006932201469476270171163100330959870366331959141336883405159458757794530220609466093367009995453066124878696627291720482322773807961332268349220802906555707598305866551258118803962029955440550203673371601836040266878300753968525826443820071792641633879869402674601018191779721638305125544431909470846925350165798985894882063591826508616743153300742594139196084686498606639810270930525730932802419314981196702019913220006207852037675286427277182513432969838875941981330238867982664552092808053732103781964039434773340361446473735564083499888890747939966301532034670260196646973011013049483370843675456180113219828542186379313078668808442351083926670770537823312327091161659116565612843167691215648683141713231463612221542865187874782534413049990727490264130111936091046412093968070552297667874700443080626122887288536398486156870970975506159991390662697887237999399331684430921874198614312672764295417129956947478038256899510481939704141268680878454533868793990782769811381191094638120464892373894360057040818804711736628428222546730577312690739590354918538232430261836806241808371846346552691211879948572952493730347536454882287994660994119500928557791330811767441599483923470544602362435782005121759676561543328460138601935020780958345637821183117914629638836781477521367912376322155431769252865180765983864822150719214188136906050158996383943531952739758431224510565939691371218420933089234917982994185605932123367209521816089882173444280041361843594876323614691156671381806649371491903146626391456795950426434463273497838556006482629514278363905001997911411337017047122796961936798488803427167274530241650729882642729096358536085823889977219258608895947351701218520906974964581519729861017107199019172030456130050527063413529722740948258765019951925300809679685280236960454981764122552793798852720656680393468141645170154651814910400895138471711263054088796494165501596294788367864387981486581153942805580107374628212621824724957368910727684247155630817867370826915535086756424299893498797402670128990897088719001253995230539190680082658383560678085850188056334177289380868773457868875439592994626000395766568467032573648022251735023040455189522562895164555817694646810412098716726532487393185455672435849274493258961521389620465842564001069919667303866988471497850532539152270585898021919247928970416377503366594432100127693885392272195063872504565153964865129094005105999437035905039388286342575533795686072282145570629312749593331832425959241824133073833945069548438492311845258978134739094430579438116861654976545211685680727161862079964953982361850760610544663686538564951589237705482523823619809689746958027611802963257691955732570912943920248677078466881898668523085714857704578095569728894351766780477888313943078099957483351406056725432618762513146332869947421054537075168207533044213998866766287342494172629675566802180098239860233998991417719955024325435489600226044812798763327012086796380747386044260039497154620421060935837255035654879927983823156069947975143934982888717313531201210077082049996023104916063993925608057669323055790673965332673326501801338962493693801284502429600833841046084574800164065372304254530568079881983393831328407843138297518059102854626854351751124592636270611201535891568777656725249094458321622623095878220461027019549044334136003143564274237879717683445958848077600113525601376257514580692307193525984369204226920886251523899128018428217870604584548882725855335055258256627648741080740526910806057956085838252962098694613424622347188189437216144093611632714755040972094629852789897731873578159152909582478520189677239161340096268860369430250662163339443410138102153866882195692945659095249726033453322137889537143698426748468157998485422285047408728335519175802207119757407775926299845877596593888733495162423186585873460068764103417251564166034720666550379413371575443113253017444735714405043707352200349446640237187483715862773647813849214899779830818512221353954116091662459238003056729923458358310186799842468420420828139369204227160842005332855420492974620699440414438118601346010697525668626958257134406543699011025485435508483299877683106886330175717655482596837294147432579865946042480821308235266710887162949716283477876410825194857439198635885529525669129224324381364054565378236699895348613243702589144690882235012076043215614318646563570387881058018886797604660970004078279105567662952369057989440450888018699027253126960590212045527694120451005353202575396593216407834090193772319069660309283194144126840607492674311887193044272340012167550641512086315216904867107099828525966767766470126876634957814144267335452981338696891110672505701301467620576662613543950992322617783934668115509243915859476318665857438965565578336057644706554097788107676067576526645188023337899163581763448260762751693023817839978745107527593677500565434113609972180199667303599908403988098009198287500437354919646643631803967217183750568734031835515393392894487909546849663327854209725536283734086477488199664594063354042036049745293338030779098653601641301570915716495129658692173051919590615945504736342262334031814363335570770197568568683582595657523783718385533725910728574102481349056845071759872927374958723696289548233349773668487172220095522774349649410160967202940302790801106405192912405250661634421431089025377635223551301191042547813921173800688117805540719250962084769660150305323983484198340611584734319098967900907238227181597147574745801155950743913429552953311624379110361419701685846713828880840681727391160271473948846902827531069389995505784786715373164844521468149029236006071486406094488022399889918896388655100269798976548597816750179561576240543066058053767666127575122326973252772325531134519396262454441160657581103753842993201747095506442417316483388570457448370316889586581366933736980343989037504796593125942753602294758009147720273514842999257833454882012146112425158607564549661400079614064729876281460247028438503465122516919735581538037036079872146128557627697170008058661251871654982422078579278530112778864135095437213449140662614288268854879493129577493430778548456399733824967678441234099900193232086652470227306108042856879481291459742888140574749733632614321410477530998519194387758749408207614447526261239108236653573828606825464062622949352417789047086297120397137027659314662455196104752713111836617931665669958773982763252958701611390710883215053104556660329879134928423155954224076978816421652621668900831144914477368760095809336865618532038120869163261820243301093187838832615111931790099898422048799445687224742536035709351452290086229238916062258190465679443194447142569696234519116500381685829602656601601777136880306892409482780373237335345765982652596383199523276250802705216939779911644237328614651018501046233434606312148986019797070853597901842375986138804589536642123681010015238539527902552675573926543478830894831479439294086146339344232571534561526886066457639337140566302044207614397388001728238396024401735944948527188134049520483730543932616675612214244547930389131321880015368808902719235296016666366900838340741588801534086032201665950488556562831560389254625369133347813771235863517269466987256527791394444966097842223865027200268740143821894753043277446968194955024116893789733299899449152553314542761997079104677962854479167954654724940033156457416946905939004620182749562661908202118594987248572155416625775521641099317079204943391947175176910792483422692650358803263949969468507782844159318375333755857285172466665859504499707669540967249035641041557982249527298281237576687402374214263545858636113183510788459276839108133666831702729410677252608120388139328372930340205037322202496104718717086254940230584985775247077308980507756002944262273350388342849769637792364422139307877635024938955036846644942539727362338185931373073456017043074709158872575847282155333090270538125549912659672346146524427031655549645872618478688207272262957339352412425565353617998390819956913958069168412043516731613035775610841885865608581379110339512298396448373033173783309396700071807935187548170408594507116748368262682027443848745003462978838666202889694593509151532779942405454382269322540589113890357840209044833325951938639692760731780624125813951412333290809216213815666360053853499010608469707842235918880995880160055700333093997615883231987257263766944530327941164112646155223384787384454878977955565028606681773637874927443130926293580691529554110385843570036632735950216038882103924210697560940592277486341819733988617899906032616325869888874958973847034430959262015603039407022721369582366872723833988668323783726313985286447273863281576923722720086832599244549805541193748950998569368115136275699690299929277955204717291728281821238263052549081173298916325325805459846990738423403446866238868149655261283298302917287047960101158898908182894143904712525134650669290080248430675023768760546915371972438141883266973177574832201393752128219030105183534603051048890632517591214929387786717924178153661417028051528728599160942451939556117439913763336197340808954737143480164981563331664660386077495873668172042371195942148221121965003850804125729938784999716618980973626506141968245702184087169110452284517168820651318417624739360473698391518072473839098044499614608342508444397489993998511699419088588695826061856557538392194468513809658375497820196247175547003841001248332417866194376332103234952889282524248039949920840226707549968364983891579925685985433772326316630650685052278724189617776454933539440428893984289319472808577986563296612842266293660199423599575049094015805140650990892605664783067054573075803045896726037521133118777703719674620748021564766972182238660034059608965288170102682182459869819671238963061440564524676101897972318823988671533022897455537433762305321857082978941199197598053772572335410911095412588204822028695302135282902287243048988764292775668650442061800762046775557539974924941056400207047257835292834030905585011318455859347365142543393217908632444860696737566124381858131016452503914027766753294359001088239580054483742535961273955246259730225288262407531441536027844993757920957557796347831415983153587936828264382550819977440123852580679493346270517382356876582314170791603161314910267840298259442607646636162399649652676401751222296852547937435269549946389056661593143889105946168114533413245054490341269170984989814858216597806921956332109572992376563348626509073004321507073957291976045498313865639974707735706466986136851812109781476370873547917123740265108514407304626540818592614554645319204292708922593107675872288284727656960279059522953708246773499831574988866035611707427670273757591892373954514456936173495851243786681690832783461360024059916424254610667083691136088662467405814950354497566307420104823400203021739743510710260776756750033449066265660997661333000612669748792732709308698721999652357259319846259238605932827976142497003511346366273402212211309943561859492422043899337644900577041425878255941284786044556743038555431668982581372323185546411587153293714909929393984911493328220301955435483667782746615493964346354770713866660859446227591015531035052278746191791088431222993156114351985650698016543809521668521350055751890037927416017993332793459296532449504515889529402546238262693098947728896630527306770438492441017093150545658961254901724116115553672220539380951795167867964278936239383189391016312709028570791575264165456388966185392499049838365362839118167265124896926516439276199098491094974741923652611319398815244049469347730634459843124750677246063547707802350868009662065591398489409116973996930355601297457856301114197400557911732514872270477494012233501372016836135565188629306616316745249349610546882401093257458012415934547787482899181541693592455892126539597590576857000994834388260467406115523074735122246271132191840788053039337890410846901245658055071108570934066191201067495239535350604515955072277079123417773039722646832956828071342142778713518027868660394162982920025949951033942391621906577435351210867926068511751570920519929922655968951794616457666196441947594683303495498724551095222117805152052646731855363789441065293335102141656606948386037250513485907654872281129352721674545300053513386784681453872180506536205019178751702149554004872175761178908780673767086506610571074251674174555328655273815367280087807373139332679281014290388006242475685589561922448334941099484084667300982278945069243118407145516087201970192683594542340770864618205631979190831058622035168888963432835906397650779913006157507032055857401603424506214704323684440850689519479398854514230874207320342167429805168445220565135946492249998350141894772229094122867390579924047404115818178513099269600167459602787841698749968257622648894168842977730571814429092512192284772574510348484651852718367484935434155472294443493798224799262960410278661222804450452021100607644443490881900740945937874258967247355487234688843746263089303853981850578401336629221462834264401506342704200010263333562532484730724086443089047176114054607155118834363272989192463708517017306446429364387471274702148364566174955734523899610048391745648514242769374687826632827921421089801656351434099271957960138437495857907834535488780430162061912781937409148040231574461937614516980827329727472864172812992095970382286730896347505196301785885309783248147455268709011051323108965254555655191443374412593877716209793984723279444723253090898489283038083667911431916255352423750483248655706013487802307719040152096705139150153263989875943922166831671599889350734968234973621282808380356749701005914202918871929998101529472534356905073451391922471468760610911910277192898309921419176604965828520931305663688172536107242585476453328369810953961342062764935108785863927388869207021021942286420054164987826807557125591523092085444710337732758696824261243940949036585055561476942290782651565145792173787044618159862391248385333803912251367779895587983705686346754934868326774864098135959043015520903770273886291761553459545558384764898031297652046910636362513768195066474225535820054089563971853801492643282099438982546921572276068301780311512952905566243044023949089239991560222951845359925228268322223514805776414031300800208771014103421888518570222966390024464880652608379804426542061967081001717539069147989418318670497231341289905304043693175479220352657804564801743940197291486306893735079520863273659175327241079539543860964297009495535959884792071289975024520824461939024967393217174561224316813744553062532326142931570080686071669894561822301252773910861720781415725775679215091938201014157310202843865323892778082511081367090997798987553812398367875779439344120055300460549198405019365943285818934048779442298247714532177936018772824928869937449268815933596359108923556133966940030287985062581168674870594747287729794455062918653861742712211643480014781955685171885591061974695656619972856032644161070303181891043331804530921414011132655727647558282103936939177698058515554288756563265826929644696689725878887119651192302528232491044396100947645406379992007186372679277138840868426128090127355951784565649923965791755852449082142247489279560692651433093275810741150536929927170277827700056639313029073187037648205983843324035110849393162599897720855622632768170390349409670632221310142959428175284880228567010429813684874407351297516689327339466048832237937707655816431242618337407919520104058488322971678340978784247708490549589805409305844714712236401679718013172567637265259457372094882850817353704767877724776204429542296320249566181546519834841719085848974247239321424328388078919341217465395684351992821383153942645176794456232335328524389147417140574308513895949547935063825841245879241409970910837730968985459701570102641472332263106414494203413358881909744573163724697523438482604672918058548458459278640086940645201013806968025225601881678005541089508778903496355819267408523851316715134593374471850671045290314672044003222977498491518646261471737644857179026031945938802726540546683978701369297495476942752409001325029221005441822978920793967012880373084552127277312717512892619032550683407720703543419641287225727157367518795951699269581578670154014564534418305467726703315205451545005389818217419924984167686809865890129889848625011815415095496751097061914225054546164481409113030738631331315561963451221139106950861406839959756923865561065381317715330648838313816146083612003255394618423221835524052278522119063850752833465534007110275778499321244751745674230937909136652364315153201782257566489738005039443009486854750214302636369919898581320418253489121121239625206360281711773351062811330409039648462351988336490055287097961439296058193837877841088077253068568914102146508493934943081111178476395726493012786270407816266695026992191965783789962397402692453726705339949666090332325174473179990128661809633622086935213797202185080990115043147073221046537229916440504728955983554105510752465976117227531193339463167209449853787244016236232649879766620291789869000055382129735476519609284080548974032149277623333656008585231729586439391669395098792892778822328301980802007501983645508080454516045235074912716405140741488273985400666031884779623464497803565345533376686696556490892585406519631410729893156199162248769278381420368360410685655342075764085667918768353016091242821695082379939100596749695736333976296794593054402585612023873188661269187202477940486374000426712334016671488902102751696626711809521519617152257510980362224209542071313635517821289961224730835412053702070328764088484024810952089142702957925126223121423442339747890010571212452679247868651648940821163007372568059530465947295977517364291687479630384543481525884053017177748355876844748360243488959364419413043656528354679525013837794322334394198666585387874851015291218106840014012047693226360757579477031477101253856007624902229733717223462968643789360846915992250631628179123342083843631726289209798422914708838233597019405188279815838621665372739142765625995007910366663791046730847430796492980823896435536788391920119321807603961214758111735419567312176083067012669611091723773707980167440933526219496761850434283732731254918284474022165480719315223375421965895585566409798747664296281715631886310325394882367824300209776416076516238338760263900744035580078755385447004656271081634797380499642665181177024282989647308045685847116499971441781279270458281907942851903509322571454674696025408021908988416534009164153631252463602839351040042429302544116819227573614460872724965372353585230063515309426624709385319696598728151836071927291287530468364690372404740807640446255154170957082148691046473881449918644409122351258668558098782730272691674204053802949174032408169857798899059695141393268286443956634942136613085162134234988212711137372841164688809379780762100193317329337562516817499123363726003161192618833608750739352067475485407713516492571376999930843688191448773576752873625815335997278179462280102005344497719585985106796325332941741056250370043732642144119098610685371486349801503556087957655242182358900182096281215135968061246188718059238190467642013076524426070661940946913316503745718399092252950665024317032031606738319720216010942014470884396324071718930559084714835555616917427372304951773667832918352014665105731607611764355121311911018190872879186017408396963395254164913954801718619608372173979676580849155414001382531891215276326728807547696571289976800780886576990628492991878674745227858831130991366010163921433499852875891643168578087442618003775741994611586183292022659375981247810367479812169037489640519169248565836350507857442590709105465605170102273201437329362395913974093190601813516348491924196836473280778217905454115580891058108047771144342175747456919717805530864361955796189696567366973220391862788474697126362981635670628049320316931789695079040891805917493999603781352036973771274023936276524964043531827544324569241078536669728203897943080640402866433966518614028562751844246520998022303733936170185494219702806197792640850048392443585733197877737384653808083003416400525230729831859098827074209568373566822573805176376586335882217855771982024956535303333815868120709046825003921682794796392543885792076902831163433269270505077959644125182411810313706959333087569988854813363124928809027265613106293721312378194174043004642224251849558594869919684902145336631740226618504116498419464820107329391407996058837350014805863170802191695878142252837553187489380945967731762761866103434628767733214132296525084793891704018517390975658761321114581054431209798020113413415438045774857630654110729137627498555145469150942511148480276104628644091004798500652692614361492786292210092716002041971583590183481527516059208443747348979138281628065708786735128691367029923364573730862076001876792066748323829725179761815549941912958263255825880843689227104877925312566485572511374974142115909457805637913033829116273284514674670627861610257747089282934626648340699748205382098867965731776279932964899580129749654156212874591850557428257776914316405790867150070734866198257599591701035156285376879809254684000569188872485602133135532540922073950077944726682125766313394573839220151658023289625224147279157510764097841339374303773684239821339637751531983453147244195823673728239625364313201349678085110514485868207327266152937290321402339129330542448995549963744811506036332327785090451346275918582420644351936691180251145459358335610519737189525669871724112408407085400097540909815604313736615225064857658594500598889334752719586420383414807658411564173429219728928315215530499046880551222201263317406031610795188981431114021229771716139985187740062371870978704579396741478853533363917681741434685137776293866284413268675394045351463663214493616193782628187648593094600957767366925088372648561589901800416699517494419752793727640322996631396330111243580261102113684256758872790667222361611966419071982810412429753037314449475009219539168854453333680932106749909802342952763473830179340488268904794553417283673442240190848228781406494721242830019406273370726216006454053658915697983345636866153155320955305190679305603736951293395594261798526985077567545322224648197135759942371331585808891963373801916233673517720966712812808537169644449432095997899208542043204388244899826337293844944410251029202034079877400375510569151031372986614612475349082633801837664828356412757482823034526145652671953280629841254659531764708618962468273066972795076093673423437292539313489905561587038235445346388425472206171110437272069356148513905419779150435076793075125626082002640156435551390022981145974938428498986475680239384815569282560813160079318849504162936148363895916164739735855473486283907973334208488044803579173074260175773195508268288012734819149654949420303590115931984602321935235759845793274815285611551050698091790479547101743890935480339746506384932606742577177321452657372306119981465708105702310640358697414140547454385061062504526633565227244123049682295011892895594714652135623668449170366960589450254374211510123208634843576473594745832834032528241291948536371484246991325342668241240090263236824143148443805943790840346696257543499227172582433461526632837972667650395961476331465066322377347290660633863036736186699916969505371042141502142037347295710158590853792605339717706517986902482697123570394816701441733471240917768580572151416948364963855562376367566049792039854967547289926531807302280283204601305453702614587581475955318169451722453589174078285646568185465738983357727733823016706738201353035787419783237144871767455564824169853014677073709754750769458556238364386171983363170144811976957926571885422596289099653686921948465300586391040775260071641339070798882437227690558383431684291266324709162756491117072448123430452341247940073366884856974706658533004730905180605404151855024933681352435978943310422049156240027826125041600894986493247220894909896789353699480645864792919160077778750183861010722247793457709816319523143467643821678230431769436818951494127964988844005632385480491710242414352153278904906240031889472714214972927135439830236595062336120838246987257020936276958908466646558500488914488896557184717575067604144977939309102444456390848816674420792043078005068614817813561275925300687252733152626177932188622881888069188011424821736044740608275105989898494017817946828792648932165798678720080471428092992936112716967931029975834620234726161872062727520963760319488700545715590160545125634749482557819306379976409389560228974063062082598937357690342354830273710671014418701928836523526549551369137079586525920683991101796691621037838641847358588065982962642207819344079354981914440548669608174566200650133237720756503306676878564226329080414834861467014694913420594222247512871022560371376773422748298124441524139270255712200593217971872908629749516677038735613253082755424033526343283215190546971826078480469218835481481917713364381678504752526226871661871288536065366928401352944934712804557689838397442865871688473114420521821286305963356442867731684718338175948086832655987574231156596930641397371256961333124425774225100586946933228582570222397607252842444599663078968139447429671657891468944259757300508150190258416838917033331177801593302552928098890071543107855822039223631204196945556081977906593670341552795768539500981670246099217253228560152236415703102099769864997770467147943122107154030057693697686162474064209106334673469586858706194202705975608669655733159596172682660699070306177573477691512274276275636293429579264712763957259110352807530926693002410619262534653284150159865157672605076989543765456487749608783036139540018236965042260589311001296220562994897805708921120588560029103084996966767864331296306693026026638687787988919225613278992925861928571114501409207304937369354901666689768152332816464028671923882280139498274184383977298309472210687930869690003922393409887066081251262443213660266680315329664980775491043886013480341949718444481867487539471075034162794841842441521221848633950411349370729215557666715851214402675266832913286473245482314996719437169552698439555790487798111977823780133670179606507065716595354730078984052236585989356100813089573834622095611086412393442558676009649875483435439952256286147213650961706886040222297374624612672927618409678932309359916793554129949308770449802087495104415695847094986984040486049865419094877406248260154490172636761433690915647413771154837896448366849136765715858856102021856069435449970571023270576834364648556411797388466753084653500604960897950594615672354860639134797958757945712747257458550847192957623377246372083679732206766924384177110632095120189346897317819452931248191165622457699475112115063744888708732163718547132045981703104432196946590736242251782733086683423373265711650858214732509962948233686887090868208553657845946137244964725913203864221187385486840922614618313334512433145448459835747015599082863706515626111083118256029894813957858993521467532579814455063327857742558760153000946502485796705078822180123471947134392642392994380606245395770126777870027803455937124736973588139526012625305905657024003296573322808831087460224810561942080360447173047409201169797378298768138205574863703005312615499535540484980850552294155544662188131344270946398599648957498596164971835476613864770384116006214096883894835821685059394243011164140824397060063221328964167819051929839202299232350409278316679768293430684537665697652176814581566812345378259532618474018818723686174499766766157571586781653822679302877310026175150219771157020865213929160839838792287381495900036249811138026337334607380798508292148145409007136184681907998626141824322483812551466021127466189046162342217591542521335296919037318773997798309224686735602596897835523079575017494719661287139317285837497231239686774309766695816457509641830191959661197286371165017956235656473954130222608503792756541627848094538286532296552621341059965878709894813665213545640318411993947502103525135849759117619900628932652808183920933091000782970145450087921247832807473569004524928301733716501946486623969088401185458553296459541910600199132364137417001182919530774711890807003834348502186896896671857032082355702324406450076042609898890583776903339224970390462898350617421194165081511513785604068593894491964141294076717377102335645942427531117437396926814838856673386430175940784691928189515986815511937512654902664096299798011506945684564601062396291802263780342523818525633921303395052117749104641485541265969345553483980802032147675295671530609734417051462928430408366264934631036053440116082665667194380682319524506905668639494218691098331905074273886447138229532503990900971716065586011551006965077805127495880321527276392478320438059151584495279937973435073761565178994623573496609584702326993502480439014893840174070743311790737334349157607011853508442619409657905072980614196751349038336556613528311524896602796064722086268727795020338140090091217790133847979207790524472836914752022579668649376210498742395669412502329874538881501703508862496527824054648786187177412651020792749245175307290308060687488057792757993867647398375763894276392582062653946746881752311923935716391777866020456465842348670553159527405644558732237265991953350728111906105019687556087465176004305473652676173979030105359664120287980603163492967268068082506678111359570044845073128778092691296900046538925230902084436226336831599319103031947626665717438708289518565871944386195960901109850320426126656972357572724879051744176786380129203342450915104979312388656424615859850245642062639188019410342810195290308238081425476719131455023854629635139622848132440436993060028343449976357754326684071461551144731405870096533456001607140980628043046634646063494285486073578074397647562519757414998420395183216418242505651141279003405379642992333212623877889505234749629891887031716883822118757243149694136779558422553536183078616495732324029466901396652921003193575275381871991029218458639893243195812188938109235929762723357892051569103300138669194641564449251667072921733886220368392007796429798677626458324553185995851415826271387895080884490314215865947699007364056488523069143190581987359112959393353911612822068713619960111009159815229031236717147691047890466241066182957977024476363899919768028073964397515929899394167815009451948249908460293466127652024875534865498851220456526650738859841882252133889806254526831966873101185567442499053418416400089560840333154285118896620410114413971279412359028906645475756834048845211139676762091536468558414762813665527722512210739082207111991474618207711685772402447691533247389179200492620184847769794656414457363281442951965530518571190309843753615851897284075938819323540322587582976025696221230982113240098669041985467725113697585960632562270482760214840797687648710889398198909443705235996748136377620235418122302311546400277383608075187079882488089100135753965029693367096286437993179216492161870795744625048852133432755576279837039799173950904213422873381727909409297976407535422020001423351174816214922687811230425591299206089440353268422952941714727875434043354343347012787658640653140597680385999906776757231579361325476017837737633562210431075620508142853251464277139481363320111629463464950645128209428662638193740011065549299649367340943989680184991781060536047113668343451296361570464888354782279531860343336877015281797326139258349530217102784347510028215765440632924309243738082646168185099821017992306284300060067736637497876943774019136733215482825640944509863512117555547801553456713741415410942478057377854863580969754061563197813065539218567352522493318721630801669561420692712747092738688084921046202533234931362723896342534038487025885442397934464860063329854235210788580162694273481826011003046046594299653083590093491166460884515680801541754827375358499217241150200379798991462329739478169942339423899316913438392205180014778586923654033104898178784129259639466738943718208226896618107077662437781583866652431923213803173633624586593221977755437578970811528750449292878505902987674942982297701208175838418298624339777299510599672183609406451580573889397537565734438076513520958227699112426077044383994959781667145044043461752228571726365334977811750091743778764333273082141943844824554710621169065615974817430925738882017131561682529963932584168703232154015940776292606594388585365520954715296762214864339422970461130624263668106346723788164270821840896063924939197239608178362131127010589424495023550283424658015455850913631867773038107323387888414665871032545103665809954715858511317442190647387591879673256924134402906435335591137654835597006573996103874355135816223056531806266674567880977855356571815457720297545908914493961327072270911716758373270338773452019687546822405002328223285948256687064298554995856355137745189458828472499999826547687326821034682179615198234288653724788161691215165650204817280066687356667728505586266916193659980281129346983167180928927748991825811819638893679008094796408717525321085425666309533988761701618430402706690058282456712402531905302467483328758700419954349248893688930615650565428070786464431472983715925225810555577012568085462870742101363933647245766861362733726437854477602127404044416043470369516199938472520488873897185502867439126404684628226930856356684482281309079006970115358099838340826955041030573879851042278763086652690646625139476952682725441257495877683122564311712113041857004594824773624273902756509351167744187334966517670992611706097965031524976855051016317124402142125473797036428184338636947803612333134379486049395304593470147658245001787587546875226116168280916160708689006014706170041397593142852743277899399092509340864236922832606443346875936715040238404315493658516561576062338921096717780972887327993116560864067060527030140582865753492346269812854423920988730002256407498562046280698229571291701688451743704457773133284310191313537781872163466308557852558609837502816306665520049684137990490279564104122158227494040847478171531035990655692766853982229722673723131476709715045911517751355320440673201827705583224024437443850813338287235969485367626027085575366755759323673959770102468724548778083028718923471883231788518759565563918607175200488706785837488764654179051579477796683567985358888607490820537659470108515215254606933561391184137804711035188329033881254637079739587986842769848676257103289179549536165811347889391659568359848798402606283061674192395179497062201083681689395801563494008034933939233026743136759464444086799702155834188406931800004127286527567349318089764483088119046037056710626894942346751221723698518261965485907323385637530196754507851193420947066650472035950419231745209662626153450114760461031868281206574530829549895741249689968194813275018599553862520253514382198377788206086608069565478360078656154747153845499366315410706964536789860736965018499802380486286781560082266184228679509682598267285575057916181418043423527463405822900329948667261815530629638725196573227483709397459171090334701889101204257822352300146075847533333508977350762606039946927272167206935105968133824521597048176192527038883980757677960888501219078590456497707793433480379209390395693936364812259879882080488990369433869925372422708762393798652265847066188917774488376654588397076455625597866257627533411356296719402209270119026394222989525880314496992629493610036549308875226736885903026868759332175046718042436994375621044747747291832200375893380532543952647555424741562953448479785541346073684250019503481409838405701264322317458737861749776829897939715111752535389271189833696622064633733430997026252473030137551097176394048229019007264433475815270736509081582958504112912140636416122103360606240418539130779517935889849425061460422037700807781572745124982323437262615452249415702499325538635677551004623926814816979854395997551162184634235024178448370331063166315814065143206526864919740334343804911240926838202855413004840292239792613131745751246057193452098659106763876090554887632164657753512660639967752166966478799302462451237757940192087827680012076903571615887117687697579133951314723457788108556582186806261631730365164585013791625464849065240771603775752280198983333221539976705951530972921261981024720351900572020146061168540963159804167435597604821114698561785786545749292093238794029065008147978958775890968214716594842949961830193105741364768394976633245811304653909776881641214813085250556866598023148592123644441366663653179713706773708470340296830875045360593481182265482895481117753922152893122159892491603281065020419293312063570065435462600552510458118116812560645489299112346690115200910923888340492500166011272470518470075624656570741697955586519625606445242452892937606414609552757178553039179267740995696154605600051351841819494805029526139940982949930831482189295987370817067687000705121236071079568806762877145177578143451883391519959501186429894026877789959481366636878025676949318942133338228568557450912761109766251770098830625000234624627263618580681095789706538742846958511655483303727568995342996359181527675573572732373691474014219903525495499979564147058066077811301982404047572385076971430124746239689046532529523151728949498177241028569039139472606907451877926598373276063764116982616391256896587763128460363688719625873566910925033774333741606147943350940559109213181912389026293979985793048159675621775423153184715026857395873069939669825478677573668216786022902441167618077025689003442195009722720779246109778294569850557882629587218376276155825827212507675664855765879430937915122261520050480887989454213769178258666956576587902252184320950207825159412055379439282744252116450762546675561237804848597005756432432930764822028722835874231195216595199594636359119706176632203659370630367586879311606915632617443149678459681383710985845870626837347471872125234156233981883726981660408740283108679153743262533253926284605048736312191030760872471604226195797803989949119171765812479315073056202338297089340562417094828281235733601490570817738191801089846185727404015475154887551738776136437042767340312082599015117091037553574816038702990831876280626213947152455737447402826297837253276964121424934220244640556351755969061134967503707757561153210369183414443031224321938173624705595496172257285587684239912624157307263614539757174389687213269545232943218575963000562789747735386642907326377393033069134916562530832551252560280257806884467814265375618861371149169664578838784008628446103628905984749582803505151812319869352505702243180926158398863504042783308666031497643399784093316723504274078362602091460311963492987519297497301883420516261819306459552877766622728649137123518278186304444066412887577879865733863326551601909145107001830588213838138980184956775592026931356431517192015937347965929973412206231407581717300492927125853310512578871099490525298735791497648886373980163948825871437871514024519327702084158523012143395457170997556195827980584308007334363656094854010759576315035612776905919864390376838408292894978337216810515462821421742445536170814181039341444008506756020286144033007586367594759268233133227203867547991079581528689238806242486803692245829520364806010274429016457503425523320368129078360112852108731065016221779567471292612604197041749163991630370151768904167418521802743868564057711389444046787369291141893781959143425010217891543546397713507965306188953376248640462645033335838719819098427886929081412857408703924064472720816476637401305902902109181439460965881852390054529521192996075530466134406766549909845543847981561826608927444166390280809461952377385552928099436716945148640379841093249092724354182060394110744716328109487864698625172786559001054839815361017883047690268331723249578286421398932535433617206419658050432022281230477930737700710000890751619538554304856126413552005770036323320472209438846374806810554331094689038858292244725632538032620829760193922879047922034162403678547941895224392859223361797503892254256686771302544366324979297130995091312249115240977881468052508698832614409526583194644137335322687865525848508071979436354691236010681686460282175349797510959384168348532273750189581017611604369373314633257165470341710663935363779405186401119766540563606046309275183437829067727291206877980123882451813584729006356724081365167431356679954792770491767665958524038335076550693108369216328626652070621011728156953138292910933138080847991726265837725239985170896455662015181816499836143249580282679007411821872330909480331026223421715688315217864035717195215772843520886336239168618806392242407848339747342262766343042700135660707332127379780104280618631091320673329575949644221847449470424671875172955174171849364776700274496752625474283686614142723951270042235397110708755745064081422191836327512226479910660517802931829552599817698586891147129104573123182869732959394636770389642808049608873740314102617492032175932782160218898442662888147121727330331312188373576467748982126303932710833391639893639679273297050293515148886871254040581570426270119936024845333150997213407632554780300502938979043041464774692397358734810484298998006935651825622730874074841322502940228817280088293986426845913061033387739384247026048851867955736598425864908197350314679626272782820234912553219108237091914427432055509006193487268327607792871508411771611667932426397590068577302813147727257012288938587608237218683181680945016471495809589161728330922127339722521151070513623933483218039334014121030568547330174564731188552970716641820331751823453160294598023709783975665114690110502545135523545414778713853383186035113924554858572062360827682098984336435166675967472566025779021659529530064201679010423083867714128334833986000690694021862524439976980541095121318549360213152188839414122534077468343424403123127089922468243246263168537899895872838378248308125478072553918686186810978601197037978084851561128359643648840939230791348231206005054778953683599837077375745845946360789843767840162752447341356918514651502358341002033783923779981683869221916778699468538968928113641659752225687520212843508783872232972726267927691932309043504681749295396471079754414196282519765522248053977742071489728553146139324677147306452102443666566443411317743469461255336085921858750009881691403004924860888243827200503122620101666931150062891809609393168004470031549158476561781104058789601939801245012616909512493579764489020975562601737065207831978229570163192072036686498134679530548794007268206173538528821533012731196077757357023700844596034126191984890064013486179529105810574022825996664224311262829345296899367240132033670392864427808314248836526383280382404820930952161411192770475310473212005626647109299218062970191926403513961324617847817416651831688226096835271236672112165256135945023540623367307544740011117384968813027502194857698692314909113157601135211447129968495687505002173497648661333364401423616996552560381037255391939616061787945602801231732504288220119314366550094153055798565013219266947244551847802659265420018629124040600046215964156855934180461730713431029313601002637172653361112657034092803338054855943787389435298853237666262198389259472785440851441185821794876311188543122601856187959777851634280457311126176674244608919658460224866938751990301238348779096791143975747478400069448981876100934400712252825142902639465352862881008334727351185291450573100036428312006116539350337366212947296947571952773012261674944909702330971017629744378456459825289066181897242934629278180658932827269058180211335828795174236906399520956563977281701391990394066306846907932879286464650537767231162043590027774767430943723698832871378757825430202467446576853136686667279555784592087805192489761320954722953733132659979036027460748751359381419617731993008276335748278548222978662753127808137816967537136282410940641667011915711814127654978626778747311889943808706177218774239600642051851309791357972233168462658838832698156438448157728310647359228844410079282730454559511468887576273036461879404575539894049167540840690601352017415832128918057554383030951603303024146148938093432522172383184333308493038812029259943508221763883163721592739126646223916050329824715906842747304496870376059896487444260730175155982587430326951941284431336391871634449101338935261730925364047257276742128320757837781771754258222382012426900149278396653070694347912056452634900212986616018206296684305244110728829067600085612313055304910824491344572813764947791565107524202334847525956232703053917729397953109613852841562919737839980720215408934940066383404232769772014183084825916415510472776015368829010230847832717960547562503287313933690407187882844694440420561426456751049132350745009943469012744683890044442171526765900097370570655039712899944434832664726824601726524484835368594030616634463204872481804428592974099738418087381573537660945646814354253612983066844608216741438179649625229971059562540251872086200826978199081608299142821136532574779105075198580631929787257285138596670097451417522990917399592077287112375591215958377532618594968698785862004962329677083352625246558358851100774590856692279711325696200104569534379245368551063540996288501150282584679384116781178278745595857947180428814792630365694009470317359995665754746216471176024878803454158184024175086683804439831862562601645444758664237777169247036746909877601958538134578066227346771603744013739865968646618212040094174165950665125067630161353661985569983800841052497484087982361625734119902066053600538226007666301109584482161762121323623296045785464799275710838959054908632449720610579903426702320239947892892875940605270358001075059574295041453603642521962245047586987531123649770001258980363713039552303149817964810663760372702885906089137852419220068538061695906545601990642227098783355483916413437368160812114697095783799397573644993735023142460123457926392199464120299835029110637959141280927372098427096326119009730212351891109266165615066038088454682884394447552569244051748667711357866778004714614539863331230830654434338749421435512942282304894048932071361320093513456874811207404179674864642926653684773389937538252567350196970071650230225896794547393318732288400824715488421448424508530791778159184926744551476645985851284381021320282112008508954575658335304004169679457067693637937780931039947657817097379248331726481084440225879393800967720367547285581236953503916759406125589048553365183154598344658202577213323712017349698815357643652260184362531781846734943215355589656650120264532312599607828095530424183676685215684554180735009367862118548708610933009774502140499928561947078024034940527906750827007995826078446892336840505755732849493403072663927406210622276260542827076861538726867402180867409861031244584802209859363505287456570645144403644389168124403013922114460948291555717380709135065672708310556055941609610538347376095242501230506669706013257576897479487978778945121993818724164095124247988268708818031190151970409901858784264749850278701811987012463762588945716782675675958490487786598076676234295699218563070853406068169344056614340100896303253807711956309553307532380192866072088753355563379265565782513110100348847217701020009150222006209757245202793676918741378306233378143906614717639395847066013124809859987323048525941208518449256121840246715555278775244966218178648427289284387383646897192238561197649917091339989792514373218269666631381952236437346961017855296107981827636658805849767370462337511849075521226236655703417173094147712225999059782393781098265683461929303066677106876132176440057822900728510856218317100109672005965594014807605673927001512897278028321117050941414516376737595236088010964291392486148524779587349656004534500483112967755733494540381652835523175597152847803496756212458934910780561387259028114688350600132450699902275447012387706583492411201093201845429711001656839060673674905301113433534126768181240317428301244757947563225799523142026408670300499106796464718012382324898130920072779196563519043881381718002870879341928128363351303326487520979169793357000393456669572022530638506311548191551210784235886531371526662098094206421543263140002272955825614583230582333298451265994773299446683390854851039319893378019914248777160377269282650828120322799412146015903005784351449482575822924089800550712776327229215150670186499791766701974852283062996584402975701745355607428005837689415544980056990715004722514870361720277757876358188764456506775581117450366741396238950174253145253442439228780690729436290544513397198159346329744888184289685962099306679638542116057383052807417226606108909612709260120252461911133026861144420059293224377411286921610104829011358351064953945805870864923590981772763749312485098428322732211153246770670997816669467077314042396900170855932315654060122740002137261107566866056922453337619194008141542752403451737491531853334445861571634846267000682921119043266779790023839325072681627074136222008931746082075651282974900716485239262522517174876991092867197890722675561500098189895759266091041931325931704666159411508549079840073517997563318356827848806847504637341115980589079761555968385612026401350456151753124478476329737937485602679181840921387969623372759720653691022508877226767087691923352008797059384170383024785194664336903206091867124312174088143000757639513798937493693651151593616255609632616890022850602227139017406980981746148575684696914806332778430033586811375651688816328396298181430620802027298521509033665195750343033663612280409912535988873891376363297282974484366030693950488600623673449749407811246338451864561777055420128643731491893589696405580657998288357154150730924553657869653124368484633256628221606270775056436424921701527656495301862374084842586157357176001027074232990537210746474148570520745062026062331637391943180370402738204571978369783725725030359737596870890529429022145298434262204775036529169984725951513317736485005029974559179052892511955267985075757116820160881913746653431720118172263256320384688707059609223895829216065397897406384367981780805045647545438081856944794575340893909920423618448764363389926265157536716371942231337121650169220551015259904280189806092349096944303160516719294617772952487150984063641809366844293089800904566929331524992713239558733463637599375153492318445088679240472927168513841269224168004558410597201986229644102899540664463435395394085853572694343323235974130249501978343581807524649912675901752399220829054217151255959649737324174358935793472853139006164469413833719502931372615868735462731401738681470896115211151398482444327645079096913161237931826841056242522228519503240021674338440939259339132803070267708111975827065603134794649379100096633453713950978222156565230180379114203022309823391542224792328648152721876732607933978816642111101210151514978610257660059805066593070562354010180773026580185395345441225318188016877229161688048334088967031554730413268259384933985840153087410522810066615045380354697907646807846610823765410526321382010187882846877751663624203570081361525804887620075776177605136201120575850042934701616251084370658838311343280960286523547277405034058819973528306128318309319654953548568786924690645600729245079176364852798591466861858635454447032729815724383193349720307466929362380773120589439084288938713230806818004331690417963697709525503619868939305412193553866877560119851093148636112830135630335855930726012579371979560691405740469991669368424011915832942011028289532605983675344168192935513667381165754782557525266222160925317639990246634842423686805023394851718447956967154297874296247032684108174470116885177148449620977383119643813254095230767190957425967379101213689375655646242348549879216542519463497832978453880033448165003664787609762955997996265910262280098119633101987588253789198988719738414777946785147210843563668838721340980035490847926148011403765817153557039254444941136504294375016975514870338775998518361061851137845954226872346909686029840954156380733111828451814904478779526217029877696554586805912539293767682874320678870888820514796802096880926252240724798287989102252501506948876190110235725108916013037049198583858499737215681033850439631581590955661851944304119528699551320587247407523150759958989058596535107959065578633870066601162193131242317662460087169816320494452234999422914580022481830738576784153557562726866397873585085947536985031447601045134400107500615947674864558392098994799012494086965030828462386164576999058881996787556437065129114225744848956815855140289154059586061446271909716192405899339603639428919632093988248602928882684257628529541917926646492924281706673001051477415775104895883035530026977906827502846666541302204543537711417090737459150462252515868695155430620607536453233415064509572388562373646808244100998427379677579270906136796665781501195885011320610526187444857477089320425830543260095898944059197387441964996762071577109374385755735216705917366885482289526742026681147673861900981932559862389086921075838769473638305644688262846691000008187373392180402656750972545016488801982772483748806719079100267685104651462844857147515177839412608073178811897905470681055072121642611236089250752889296826154444098008801998971928130018086710428302839813561612409687101759482343764306716107072349502321199205495591184288545718503799315242418505513419613296132271631196316081785443061392261314691560998761465042850181888003986344567559110187194295102789936122156836902276718410603959753580679647978568059892014341604390653082049205392723723988072504954155582022318255635221811344512298416149407874852610377725362810189760232991454465782565987638344931170055119746354014372634155247460328270879371204303578467776226083418058375253453753147108056970641968782976198740134187953782497095430564029320424361148829936101561544570857539659671095832130660985198433484854105796084138271866475617548544823214595922107102213245515180110424252175262924980571132856853117633605550110083507296942284614541877343727040642063374807396996655934137466954939550054354625664299948804256375790566701770021506639368354926864333168509921449361711785983548789244615479214749184738157026503084432305920640457929881764028166832576597198097362765270648696123932186126942282200895951110081032568582734154931189117775707015519764608526171380320609436058575393333303387784904764084166867130988554397427544129520297107372064758706793203555386203111577331913203565768416524654215921576012925615995658789452193082372590522152560165495434796566521481722223220349766201574068413996951782600405804876604774090629226040512195320443424049688869595433814664260698494689769313247774790299758608718845982863329739757170111399061260010610834934035095551463378318272189527998361009340414911438411699832796887006567252852529867812766683768103178577395567711019245843442193538897461300979815893973869265622765430226829084428620233501993915883106053184760223148608389723788084915555867736288755402024274757702123982937313425541091910332669509268753799895273955682539699323282822557903291611907778499224769758478602193904359958434909025501534633643302660083426543938102037308031868344887003647927952228645202754253159857463284258105197244468078620193860775907979722329938110106406104216057835819506356785735083687296031383967166406535011455400463493159202860176385141505590763570391081036652548493685246600299728599133409569828654090214972286598364685069343103483920319445218371529326016750667826661124226247782728948121983652956097087179700679889071468601202527225711809344382049051441368193934019629649715617161301947406513777731337592721248682508466183048235453720575891886652657609544482628931130417827134989265666126736568437503803810245505717948352890185987009576707255981536830283421275570929672478173257231576918543308350619172012635381502218187360997222703654297888315457057661609747887423473886905715104520738553826686491270039151610572159942366493250840719419904021131432571973066554045370133978247408047223254705690532304160392572525350862269909624939040930022857812896098131366568641219262080883838486407559702333274332943840545929611172822220905997471716689578201783138232800699054203480730329851379523497334832320101519499721096374514173596858094833717694002699479481390730220913177952671003724701660528892723158973704517591879026252069966906912324191983758494064213669145784506019336399532763704780745162350662818119574109652075907359678487023612222034818304624946655781116563278178203089944675749407336235392299275289854533309752962538070538665664190390992943905658838562871821437701099059124409044961360013516080409823766867641228795199888437956763540419594063354122759286145024725622535177340374263847497797493457139643212359944950078272556099903319171399441013392615078967759572064743037538727258706312542808840247932202370704442238508739047145699831961476832971677125430346387372741309006131118781342626168444485138567592670011426508811786631751751999476133669682626159957646607987494938957764314407593610797583217664243761519688869131972209147833471037675768774074503784659071979636777137192544726392218142626037023206338887027842688445608351057552146978794323540393189212463673866538846702538243127585784506161376114627367836480924512725192928521085564980508272631108322153481272446290060490907358167438040386310041753710423341411484172645482824024906447033521233971899069278953681081857072059997214333591841010229220833202201734267078102511070470193169116660314824868741403972551404790536700570663478595245011900863182454171727961161552236727717387763899676472545902966267948157320508346271330199780505059539270921737600713083500925659832635383876460713053307450938704770858173536967462168837676802838152733248030370207597915656594047876140595295038479157458561168730104821417508011477907671199598022796432189344247223721285810014986121664960807971370887675011257955399149596627331315520976271675914584941136171759094225646617846551816266361808038283069668568075311019988345413832964573354407370385624053011652044703546223538802799836381478630420692554228814293617025642688350893213996812902696700554777826448664425155530097992095538333386768368547325563096460033694938962742239927083291110352305717079475908058220138031575426342914013319716058914155830893059738429489449531051213274618819402972542059820851551605895123562196993453004374999324218718651414664144310773338974364838177066280404304276289732354810947707355411199169555492742641478358791415051354591106395396184447896023686300915754258821891766015627623728719360521294852596301024732801016313260501180450984156297360962455229585188858797837815366184572919024124483704736911256579402405649115526336005547135102717721377318073362675754089206801207990932222714907904895800250652080620154259464712034470096006360402797281566369882951666023136257804390503674298446741472135940146334977989940491462284996795272455100995458508868440632953194576450893766025285715310334460977043640671021144307184783576522479735214134108740856470603900667523749079130993455052727816999293353599244512805235965464066365567036753107266318373584542739476963254129093881281706801804714521684298191296201758841090701020488579780267186401945290211848912629447422339117890915658442163344425577224091139425457640427879876711773733117912116167427811261969492323424515718391644116884051049295878831141963461263768858832360300899672133917415426302567441399747882445413269244736367350531659645029049024055864657156447407987223689809655738847768208994591102751578020622603531202720236192013338291769192472964523502728471426438793370288420393008518198761745786282012979716076253775473897380666804659573241464428414051862289605197378121540858575348514011106569772933706596494555887420890067869763327141864420156246617835327598901831476084558330498688404169804156437895199761268779746409596173286099252478835014338975164055168495544905173782871890945489750210404946037537031036379254809217883573689888161970690390993674810648974699512403240201201012619524784992581420198439528461371750892406342930359198688909140765987827698398797580795581862645781668889919919501744117185786549799354569812233027532910775764119745814658583276077933622639938800537086379264328515734119467780390625273094342752021259855621113939571554953110124601814956993037827996848531343902667077085206089647995391291955904926747123565503738104898643063825556421713770190395749043251357698543658636959512742860971506337473027519584151477108313926734961534397561961155481526062483238019863259096526622922018996706509954861435380108611212371301885683954687470416852763753007855747059405362318833615334417700402084007228146770141359616271301221973594600826281139387560649822515911746815660597759018712144136701588124292994774006572820298119945412699809561020669939194509727097508086343462943610109035686730193613492480094214423589200458098961070557431175457388739842442396782316982691465327347231468677753367065838052236758842281317341989395578022561700425292260591907387217454353290664525521766939937264055829453085837074197000076327697842913262870192805243469116013257000344069026068483899875515765837960828339718755139020089509947527336319920671083384829795337433267035081347472351897120088227554501381727324013182351396583628375435480496846559913304543318396805207835091407635309091775995703940914682401290939632759339629192347881662573235730130002723762021946994932227815080879334896631469846314754808346773514328643324610674321609079288086262549753072647391560814311213676050849220227292158899920192214510316253566314370110492239319485607384502993950747351852055393359362565499662378002476339403724725227525725576487529969090805368692865782570076272922783218005025826636889697728989173749587159599881416925730801422624582117707517000770437052359286835900141731626419040116839576642928145080557658418457691155516738706766655395604650571189813929976377058099902647397752075109451329884977476012771150724158377482386868233122900087064711600790572520995294971099520792785543482641836664249962747138526324369411460650011127297887081680429693396235380731593043773620789574562128070358583431166520506821224913167078325335614818423613429942935195842905113201349104709454220958230293999962841802081087170034868665818537894068307473875752824803239374331693993591917689919404074821216127794142062568053338275305756443328220128561752490362246703091685922756687543080633991224064963535092402679086493588634777779488434975595096823257212052091686588678843103551616308973669425365228600291074174680416484922117915897268410016181330471841514400884972099514042600138763160619626019925923634361331218801474382937820789794826376387075816651217592111109273288025189206188945274067524165752163646516152245875365228674762432789508047674292865892459904466514546372206966192311228952486531677638800198110033641445548837747922129406461855746476462349445757859444792991323480208062510526412809065527539179221263111378362031073116967623782263394172291356704703267067304140335882357937094641134324807723339262404464176519453699404675024839652498059268246000980293607383344973144996385712460506797471262073920365972448203227233546591279708014881476059417128535157586785546633081444308444568805150347798599186664135470542410078281474731942039081804733882093828858757353705695500838408670239774469413936446683168670380836428365248519671506978866776598160381738281752852750606080564039475410876820637244506306309727266021298709058697505303453899170753555698470085990258016702613845736280949141279433060410671788313167957686525860024893714998609295156558169553705739488614060884086245375909888139278837214324035235070273297466582616569988165489998970086482757024721311448351015219120090570804695252300890418517625524977378788529369011595457592133788509420217459972220181466613887985931120412669621873144215573923112785312128016275531047237388982345905718468406196121974697787137760587298299207829898990843247782456751280815572293383850066434527001768588234814837956985615061006002784133243869112256144685336911240890534982220664985373288528997190395979240936431960661666815280830282682861160051005560450765030715208555403152548030089257642653238228186644347771636093489639353799344654151332763022562988560611425465338781118140457452353467367124278838722710830816178923644894396288373045048034405929196232434642519467114096718143955694651939753098127141178772094094514972524662311458812267062436432344520755939185291539778346014049518037182700411842855649454951509499118894547171311613782174672683619124248701554738209601313619814967547464642697158333245300889901273481148985913728101586645518284320670871652198397830590198222767149626528790383467383352773063172628839664703891808092847604396286652003560060590389479215870064051635693380451745990516031087204942754080354283652998731578375346244759074926363841857188055491239025234510158537832249675378479419849031772255000521241930207723333601184703599324011424875227966953070269323352593396586389325878777317012558238791287833104312110887199399801853145853431697571768623701725011751881316276602340242967833876559923011633757737615337853945960082299863013098280481362663731353783948568888377776721607159030365238366804203126836949702423262736417419608119170998943761733778136903557415693630224233224517107042874010480885806922500953744494141128263141167396641602090244924651838718946238257800928186048900413557800451895751612175854021781228263044318136891494991158802740811254166463329867612328467927732088031072838632047651226306896004644508801708670199912045424022612038905369507982895564747790894729933984593716032102747928151811850283633451025632061526022970837230515057211438125545177429573983932581161325637482897097219870111432574359413360472659397600653618838124642330866058965402379575225115454438225712277644894118945853477486503838948600727832465980256215836335959914111440266742019467019363185685433465506071038341025195508471953151133490165862475486203955961533323973389131432533859664225485969129073150004388828331162676236176447307718692798800578476835999267585117786800313236534712763914164830231359208355161737607076608860907905295806901624557685872184503441573781153510253250486546739348964997649084430006448034917673416373984971249681221095054239847426355326310141459317891774075069426814224592232496313170323069544841383909495541787619680477935063458541559184265170903250477172313089470901786299901261272766519027849721831624663041001054474456951878457782044975309256645401876632518062647018082986976523378288805884852077641998844759548511874128896370574545069734402524330460962004010246984093955222877044416311627245526247510622121905196026597138239925299130876167348607840478792070182912085517482306844003699768631182473185263755283733539643977166305010747299167158958546172124444519377642777368890477629212956741920032374638600956804243126960627363083758525811556126485694064122214303160500877236941861254635180723454150515232919148776690805672080349425656776622206653960381320845878054251933381744001150152706080368091671651730998322878078894293847405389954288602197794663757278573527861527562010735592506905142961980529567634936366674740022396247953693932820326002012052493669592383964224187422646967857287239142208543986612392244407181548147017326070284817239272437070223891792882274332655648248360891501671173803933865480800730359031891315203593961289924650321066851291328001547969458127692606587321284724705571682757085331897380330683929541408914021197699977299241984641652410702470542665271496843764234427940758689036831122526695285545063760989167205756407500152799817259173390531466389073666954192150103358434722004313518153466035624400298144671813911176679775391673166834984231917362262497843537491153856430560995226167617528349800880768943210128971602235998943178298711468801868736488293312040487233664814789280591717310557011022205164981530430239612744264212604850577193560238778454179715837437070039928021901907852933347826530530749523229540694431009386959520120628463418486739121967432420064200893044134206902328122000122562694405689375135210148754980766385743759586866427365464926882898568122973828478659429789336881752920848741871130613082570735647065818573019284820465052307848401955095363835387250864687952890362415133079410601947001467598104776509482560943840240433142477881244263049209782316215167560665600196921131208077826170787342056808128578894090846539047061779417636782040252022383849256456872562806231798966119514404188949652248944749401284015270136247480950806215519017456895125872246837541036993000794429511455951039414947416926107123437123666684112290273989116984677706214353439542073182467865082536043233384281085804680953370620205675283210416908132858696722961551081817610201085174143552094322905236680137392344523401934895675282373438667451665826355428447313828600953636452062836829583737648634257435102109358603406875679843390765382563611991128489096396262752088250906355433558970369676513512918843331475952621253544762243948554375368044705919971606420387082000348499056553169275897915228638490799022759595510198741687644780532283267299405657449865610211712994522893933467986392815688319934366516235851677253719589542459293316308001884785801431336481673424591678057011771315063039109359277677685678052947467891935803822818935041373939965757317221366441419055669805984508522588896748028625678945957689675207265906850012634704090682074538407725633962861624020103511822173436746686698727196071119470281475000448481954397932557980904267811691950560640965983456233365145232193523180076615463636896258607337834061837264015017266907186120788579821355098007024069185304567493526431717606494726992812398255050453844721323859863780265851650335018715298348978075399139859735694286441830513809366319304659463400256412587789331358048974974663420810079875561011417255415286366516510588389692220177689972175992675195659330659900868363175946182619472946920427395727526436448229639789139742635363148984291823763791283218002795979763080039274921667169266964603056119554458955412825442108105803864059589400135709139446843193755292899631245636985366065931817073550476101546321657455262849668462947106724247756488813740178171328296086490843838641784204608988143643832941670906353624449021530953079733153728927551945324546125612632003963850762368883422057183143258738416723157566351559777335423251055258863182542985662095639038129071893019245524522031326283157237458713809135565413082907596750544464707235332220400943480752931599056656618346214826589590403288870438481055818907136517990379118756009313442951611060821968048269745503615904593277395430317406419856939804834043713197634605667278544032146222564021657593410999885334691266788919709977965017176711825772980139717150734025874270845908013829874702806949680023544081373535677123901740451003606066143069195338125605995883038183953007031995061866506083459646598607222437254161094068781061009415547097959564079346274581243294864007054846653219719067369113402522053547266199679003064377502895159278047770994428931373163882378427243955733121461531458722313728006371247777493199127250117412910513035791154371948363564254766368152479230547611858367017131791547470568478611306862379771180650845034872753186879403154254990623572213635165928005171345028903324858383637366492569156367503420578545271130787254875533777544755104672858788778863221053727463624781580282613991115626056509700525918370064737522707154735564150967097313684940781165559593439498986374100095801378655501035356374563974641656737984696553352257097910580158252987225357428277602805514110921261990932753589511680167965283502789512075346685761140138655130729916522554649136273684604483777893436271649566160903952714812518552246403064013885826197159142503581295224587231418794853844230105881507758177142634968726508068797646662715547237072026690504494579842859789174557712867443162888874261052130888574395484857318308197126267452345915959596108742722385272676504638260084457204898114557191492094612584091739151518067017405640602235649718788085692060051502955339217751164776042839054727318125470192544913790934588820836977115014011199755118310488332921071759199430710393034290250817705127435901348051406614461176911537404031021123921607483459450133184828658865235407322909853461377770861676295106312600177523698363191309779399919872295366472414582893398189744137248476709073414543109774924280092951004355777733214446843489172200934921597303477594362451667782906331358970834170432815352030743470589949159895153872531506212677419930520230185342059818788418628785730266250891459590013052999768595712859678873398113189359555204410272345801497304024277237663139546335856185048168523609924813503130086196713678130395660403488125843209015372214904678926097813154832315740102853611598483164317002399496448375555954634266159161557840172902962283359068999245414243095831853733472119511555042955556405480324251021944492664087853336365944674553066002808361975064472103306890923377829767109423685950994887731528963084317008498185340303681945100669680025635105901250854626186331670155421364619989822805379086660472081298450372368491267211942886434892260167314258004623281421186129471280144897923922911448302526829232946959738536926416357735325404503024945165692505681661245679222467366730649182299500732205868022487490674774814892357986457572666378950206750181250723705501038379000041859229750736527533112074544842167442239343016565027564221077638471126800252305822042413020815459983118724132899137193380466529149715041919614855180608182644627986859313503912488993507054330613618144620082506736438848745339583303928882929410479876378616433864804576302841995801040102712364963434649688881927011956768600264154775947080174875974485448701835973546824406833299611559200277197345746366840353245902471422614162013732175326667810154520545824311606210879533970095857076156856644612679678281001262331307786262652772966310193861393791601863878867540028309419173805349248728481056658906147481496682667944406898656136713679390310006448090581081234348834858258628781506129978620693914238430823097059075087149197229772827014705707051577552244360711223008243282136577292115475650901501836705523727728223111487748547512401691880906143530405973032314746094667712617000102625477705335335506782818031734449248873355660754479600846715853174586636864724416777606009017602316469954645259193117774283656110384946956205259651782786249186680915608389520326410217439990622782248382451542289190898534325675222281251648984013646524546362701161475480898068788093882727521033024143680022003298620542092184069377432706376260083369816105437889623708778281865994727053620571385640290785225086092516462988634797446941746840950783404057769099324612438728163278080916333973021423001576915789977060918692830961260521836476209237177554310885559685341724059400886524672751148376031434664127388248519385089203931163324748385982397034452171391826735058587871043864503343491040097224972896967631700122814327192362306070179892723932290535536513672395902987199477160395319440983563220312578582256906380203552825065146073190562698007010102355015550711180376342324546487008643774289630662021847105910799354141953765934679553086660413228926022401299691023261068694467942472199439147397942704606515913950407571152566087248091101843141196963889266741928475992187520558103332971722616044911458379896646483973874888202645297360987022156351173548509021806105387539718753750108954962197037023991932619025234497584041681984178713793969737441715908223591754562401435408941010045168631183930062914347374601012687191410277355694238272087181809383347813126550673088973672681054069588079703724522163852383473811831791370550253660481404914131144273095845895876786942317112117756507987972436555707180280247003861574847589422906970083649155939012887493948623959697777908687847529664902519369287140562746498086179755355350708656800604327126918852313087303356931336000006263066969901075664909078099816850465420306145134612339547122403749075063634411500502137506202314259518705939449333703253346983450055956456023433803656868375178065722561018348002700601549919672378416130995455333771888735230195012332931070033297426101078416891356157030275853528912584386621552689502989954023887236669723490618295883406558952601530989769698194098274462008981141962648078410143779576089745603790239764214081586316734270671871160924569169376072794231138343498553727997212199591440838674042945711334141691464934874070444448338770207529580814362190265839625743176677005793316852938026463881096694953388221209038439134440252013850813408907354046233091754790298550236650129757003074018224472410128886098634201551964899180105620729154863403336918135982732073858587860370031185638859063875292324685036933075944287679081889938237013590141125205873462795076550632428071973079883635103339212540755611913920072469717177049753547614984125574726472176330421858592152241758807824255135424001496758954259760697364985237975627430655501323341007463474822157493873463623235512503019948615980224462855548825660753930433845580032615354598522097636954123112815231492056906323272574140461505432867871265743859100066148258033958090749303429509535690685647074294724355153482001846508885649868760477072196037064249936355734792633197478922219111201940492159088715312753464097888779224896401101626038912897729941958893062726225670832072261437259491785925882494088577392167821270832314132326034299261248728192227791637775418387453020027367841151978242009339598233444993266361976157979260665386477144677896945037793656795920345728478157702952950469434791593321645569867551793556360284668176438938147432492146604942608315971012291450957432412100971870507904612155533083482748626758569451084642723531218537845716633150500328253106561124879501186007718464824423431228939291695704395178055109371190182158904517963037060215849982700224186479471335621603553176989623076172473271030984831509556583656541239091397319061954517570810378935015920426948444443919866011918936671324426546869670435498218708558226161558937256213367570621631196758110310247585833015447153483557651767968169561935637515945648183287785776180893394671719487705828461008194108552105198335384167076211732345761436962986707864677403489791814842509456625500645119664089720212377206469543836029845429722705390574472449517172981133793341177910162618707232061503902235937545387337099909688739096296208443748199974920163888324353865675467372126823913907386699133039783530636950561752165867675863257994729102583533579367160581301858214339809000768042790234254875290548546977082730240819565041905164817886783392504687629824914859205966314303985378123218468035306422489346559805153177557770412259084876519237185130053135151349726255224149343821845397718094721985012500790978821752773080637384458310716750868924106501667612170976219266453885737181734735878231679274779501455135829933308403528416937041246014144780669144043333787715546865111701662531236732492291823884442591143323711140349469078669483147665699536157459355735719281104212473820147978165081716481819249020600709920746447374722222475905013338854436218284334074855546142106126181055531399129699731889956496533559415821280714412049524761948461561543993472646718279788012083341231714306369168106364591738509637461776961546070685623319434067756362438132465869067474245265717486592720403005552711148541309731457408247617296961639874211166992026674907332825502384136635840351792501508091220744196008094143123847030088333477014714286893606040137713162940474617256727514393336641531880597125396230428047702752264571460611409564093011757573399854425559913906782474603717247590261128405506432928688523048667172241463217124030334159838567081940173443808105647556268403525822431265566378861874154030120350332831878718508825728183797237786207628031528656398093167582897368695876639864272533538334134681378909050493591384913949632166544526499125085887009278645543971299555414043609280144167492884604120052594217622496373537236166374215496311094886998465436338811590041791090178195255486601850945875239446225431548957163996998930817406869439407723154958343024026261481110808442285682441923490148474528866885676625439864375893624907677966697693056178573457889810457339963963398652189280694763127067952704927153967490241353464214978592784189494558362625197841106143855725986104345516077477362348228205583294203130767206882094114331014181054061070634565639019740315768643779893459814085317518446049208659504898108248587175343654268578371802927495240984511190698833379091501733834192050208485066155675928208898583148155779463701940625389109411626435070597878823943172310924272668077108036040855628688447279567156189885318032590081318499825574768325268082929012688215287782513495824517262562161234844112860042357461984169194422782236061943809804188330929164810280129715738478564877409080868520432181027672676327246280420158717305803980238999716881980156708859905761893333965302359719294407679687928656247500246092944785106407686170170318972824076900825743802816556908552637886789295976962904906106361150172082115862373304270211563252881842165848396725292117314452947061026818008096539223907084686651154178616188044992254376682907053029326653693573953224732980065409505669841759573726886989228389188098750638317777289793217315011139165248908998987182007377428235136601629121852476253205845481980273770706504899899322469615176638964456502309461067363297512720270432341126592323651512739615866746654334657729466878787583903833448549988928575368235806247426760259521654185890939750220935326264905094737274926103499030379854372115645297086552894456674818237122726889174668720153118095773699988165171570390339291423492525049468043785376486881540795885229379481842284484493182186813839706896916692426396849170411586989539004107413553247278986385066065665451555111925041208122301237977574690992062816292210527999017348034391344831270610504559299679382328408298625667280304752985423909152460021980111425211324147526255295375909396458023144179863643102466435565649681326196885575200386466128573629535361584827137445928268610150727531118720623956884888457190353431526784831985695092665338643435686525828374795400916546891544068108961413946287081618627405772991604978105210149011357444716129219983053259062753480654076312983557705268389381381683110829761457496695841120531767551438694904631682590626990202343224937749294988054319839866715666717612164996061011253034726896395088407063546320659902885079679972260021036441539317409695420622414873151287380781148910172817840025456142786124149438780963398261698926431225079316376374487370796538705030597384805180677231975937309110226573366446214342818326175566674381864653847461858656944869092374910112293198605776101404846669320850097288150497869678208574513898352497211362542304867447404028611809412505311850398240452538679177569278733424083777885390585997030359212063280129286292621819365237431526706334240493535334808003597793232627587459000936488726999473268540680604564221577040793176708045004658316411771427104737816693161316678445143915334032055991688087979668457204446793242286530299277719984529557679768802828339318760101696665515030685513695940764703999486312032116752573381163513350825650613927631924702998651976479649457606762739033005604095196667308817916270694569217131589361805655405891976638621906678610772534042954932119363047527192038847223715511250848696360739493492616780193698854063705555348697051379978543706727210796414327863656610229743005699888216523388238393598758632549348972353475816286053504679077229665857519066640256057964799871508173464134544058184408049534330057577690307004235190208546658480694217441356910785078732269513865920095222573865318026339852127004184564778318441245787013680790686668204283330487834129265721736518844493494686357546970957506474996671348994490993609338254824249764334469126374043463927643004217261862347959057565858548997747034971157227878293359398471986958996181757246836318408774943779244285288865163514894721431600687088402300276429580544658358349687650659905804159587553848557842666850381972089480475610732759328423304576833193324554072506313089515543690368166327485010678335097007448429689213602541928933578782382277656845069121078665494379343101260732881234150013605374138560978147997582418325457155968750307134665990437320929027495120055053791193688269723198059521075683161943447501581076327948978088244213139336945055384362422031969184136825061025143272250225590250340063953471119527380860898630339224159077134517054414796546978717822705161453945820050637150820057415376456994731852195372880829870338909523301110500924207060247601128451750044251483301111671179463053810018887147569960012214222953823016922219933988392766354716873072819354382434481594865334960934517138702074753848351009175178719464404489864652421701998154987108495307890551698726821403641869276075063896574016199130857179155214001592636694153330152177110973309063207326182822515909118289239135342680655895960046639503513775277307780006129778887591127505802399049911305949218811163278068399755797861466472996088515602555900601483142474647202652785770940185860144965473798050416169057426773772281178916427859518375487807203609110507629187125974098260229761162933648995625789099284920768016634284455996866558349903247756651388076383697701406103390455170626358523569928450582650077576677682570684531719984812304209687634101705731025550200158970280815563901113044477343649092268534280486195396293351907066628997281767851101035368204529112395903257623988318877855437947952722348293751240258572828373433849318342719285300955446230994136669506243513023496619403725131611924821642967749861919396937868772509558804952575778633384361861999961168737316502602677921341906290293190216246569681732668864524655311284151596789587056789490597519571095774349619955127565170174656261002210108960573220217439402893616551967054575053076628265451822463478183512564446438392905664795338074166788228544662010295969291845548650049429283173780351352819246094265792964830823615018728731608186516767883619506460534019043999668077876712362866191816988676247734976667339474002866562221781002420093654142346088961156146151485124336841509705653384764344468403211519379288252519217158564655494861617497595313927017636137758659360218937397468186180143974698265468017134372104905541047448627639416969662738006375245689766037816200034792128739801356041303624236227549848437465896681762267462442154489185171128703351094975319406690501202294097033202417414186311241109172255939816449215994352276241060358602163419428762751737931111832851790004041494413823786259208887144565882494834143839093319229799018796182562764004751749102894214897265164213771318309535899307634131270827366552458503784799067147216516228545465092387766952051954454898784500481188115540763420232787162238472540480769399597644372993564320577173748772483687467473608969136427754354873249839728855909898597550242105258238758189867603032500017158381156398431935640200259481015919205778703906745339790219041168482113083743790789133685296448334332612958676087496721928061543809402610347457115040917659449858799297904301122615174606188958954251506620509175717890790864379406830352946655505481713352784951785245324192228304936851129052555055757171166111492855636171284194863357888348659943229618383859592077339717323162862809920892842869770982388323536013255254215880176578150514843857851512023762690185709863312590234944080546641034948754991007286003310595187878828883613292633380644216461250006537052184161255538472407657807252696209374694381399554020241579771535900956485914707960461226036706512402866927969947053079991971165160581353220732521012630092759284227122607641944722778255197437899882064117808901919175511746440686750109315262606965995498248683213654962759340234257162354070088954960259990493470439256445979036188004837910619519591115867520770187916793533688476441383850842147105362099078811450536075833969068370975420878610735767672387264592032646177862526505218065851756260773285696814028390963776628326562781037435925211617047603019808293229563738362441960716455830430903927349168696001989514439922084058214535232929318042660122884942966966650652764241904307299681732536709158310666151998897400769050877277585173151971691915443234940929101689141577293325219013482785016862314715831810760666145394273638529468949646102121862112387921974409109534108325355077679633160944199893996970092201813639349970220330797093910220774560195536398946141062835363095750791511954647112998329444927146584788975456271776685961447251423520695616364895626336173457724064972531930579233700564629389287709752630167362594721790156646442726175208563208825054941175571319132161186954999259965960066073016499291629415758872230963659755453430616886532094579533578897477235456285176845825797000228724221817827046902047618014368811502147578169020696777487155526181867009735607729303737577036111215764518322137675143084252358691256446523604880152732843206229326856005005639065916026115272074914749902876983054988849948646518401607423984899818837138816606104293998195267807299298842402726791132240375328936581764350430845193809008203374439612890374510154196284290638116941921963980026226616150723040878412774995326646330287473341662494993709492506228708514717251678633541006718411605439164292419245469581323846843712242953593394813771566741397751041449490362013125644093351675663520007959605569071269845701139926819451377823645878015597564410828340025684664771788837785699341590674862989800168616764013943275899843641804655684181868529022660705997763435994366965850681519230592043110089750466529051723872547125542294909387757696632419006314449722952040146037811167007879129240307400886379187053980301672651293038588589397666263373674565320574496749604913788593186049737266742612509590110593288334864869069231276726460682210722038103082353555434475393711119657128372829785369746039181781791384549844001048461233134720971274518613948324887201310032392615173236650601318041997770358191194807490551344525059477913463996043487625237663141151429552679357688236433537910842779356867032081199228387054716798559234438960419838175688729738823324190492772269663251556341105085574741827296745668080235162471114135842359542990572128900066058399457172419391829002115967507879680212291552464964932194804348637430687343028537155880790989167915287921973018412025123197705588152972795262700132746687102678763837915964345140232652316810834547617432379282095103506533238270245141999428111017952508311444214966113542836371815556238691414225324898451773699661672964111204622332485577892007806317496690306834569184521158472483630300152386771280061412849112655985835696689249911795925655271403763302382415726150649630592705986770501880781062780142038906554580244386294992481495200158336286178648665817395672416288550481586595231205853008251245966792047062082469572452931276703470628115397445421074169711571121154364376221778651020806136323828294749357451545185674677903663838321886643253664989052689697910581802374471646546377806280009199532624041893982646930321447520579412674470917210801245530183033321315524958490348226257339356492001236046469188747324735331362911848957338748246713542168359159740374633739409184841753060683069567240679936828236700459566339265148455664498845867952542689275049653780107517950025022593372697022094355971026112251190099243055916084976028325998109409665043787789405789963347613352900062680462215281831688726590082905749200009296741442763031099943314153592371860155850794923110369036009980464888201067512337149248245260834080559627315961837771629323160021885248293138267059927245618934004429323647183216076168952912608391958362285907214496940963810653382853316157552060868450781187896994297608702094836215427153917226979372785761539167868066229067767965244530336282376104052414122619405821623188698745442668058770780809955398072607490535037905205208682228715525978919442007823519260167067478090784527133381886289656406359024894855089706440178760429532297658239863554390993149359313217371505985527103756887646566549014676233272002988283506318480088272010998703691571414455897483651033325720398579808170705587322237896992730035341072584694211851224553180316305469527660775343819921824317639155815944822537419241978851592734888696878446516838450348116876657856638628466215241237866515647137976331277079557760246315989487658431116475742169821572019166252310353206520155188033456434627291052588273148153282924240702267746157327504637506839167133394996551521304211730692309829107880842657987028980307332710197964535773359895853123406188601482221182400974178831080710803845864924414514893209375601637981998500918124209930095452730039033674015945975573350230496404533869384810868027847308671092983770131524449484510776809203612193916499045336495818697609304229646933422605568884742971970166547981641904707213077150443217341676863394798337562121211338506290889345814468436605698213079856390865337980595786057689160329454307014255103934546027675511099262864618342995586092352762994157083137502228513860131066083417292870083299126159366341716684374462599080580209962118582172275305079627353048190414237019320581868514910691151599650297937036703204092299031789488486093453134032887959915020234143438624465660377956844150143172936423157714101255100340752277730259243239058572131435565817765069331246217303648382584721545248170064349223060096218967335338269155692417940139653623633897239053053951321888526533951918278116510633975539454624523742612837132575877489080235704796495538473012219064826910088583306466098457010320155437905763209472129324613613904727494234283696617974908279619301794328459917933550576958878200537528718880195929884965591732077072363679538028128850779433969383082055683470843125920869630649062554643774839611487647710404497464621958037952734066061675790477888705820506492954803783466378747945398320045567919866676089116902695289872592503847401075476049867516040598431517709117030074902812405003674140019559176032690951815545403518666286860013342774981299633053824581609148381588173043857757330330542795439039719190491978941755616885998419765184481698773743507728356396234472541186413951520438604516290341053496108395067923346791231201604659078670484893680322417229396031761304208391431282885845146203170043528721908710830001686455268566745116844337121459326674865402158154286491970779807375400565816617474257408338305575278459133168354738048157885814325790023881588374209555723023493807703855543171580669240348586442395477288039136953139131138864236184548903999831769282062654844454121225679500339919030929870847055950784104589550856728797402922477739231076953015098335963985726075469107411986348693041739865608659908079532084979807373195374295440694275110271567528211305199281969187517250096212127232572082347816082247879768781307862402389115897650580190446100884888190458418994156679846055904615529031874948563291384161524248229767342851002208577008814257441747928903360236966390522173351180815386542570477410043235684652051414653921128028328503978187833576500182871131550355618458431721458256402924496097148877601129067814991988319631201248695743912550252853138784139426268183256276672055682860185691219087042910820425631678157039082824545189984374827924015000884231703853492346878178880456486737338058513883658802015299403020302637818640360624050882122118901047787356981304027522089210509015269733677551878299104045197686774975877640519518551283354112216916208374643760631759787830367267814625319780110789428832569665847800012772315631275167741667570869253725138521256541137201738350129890791716624617268145417316135355494923383029591267760807824749487459123485065883800849585655184479435889309652315257209983272973330696144935096882492704232933484682627650710487109982511873212573727686863669270926749737465780663276241534170098559830517072639277687313039206836654262577211306202587683238637524438241902229020567457935698009038655666323123950233263225940229980985510352426322278156235700646904901319122928464863223101747354137807149483507376091581161642791255130183959089786136952359098875003768497139973193161556477466159094481508110919339324977071598950763779167938947934986941065633213091853754778385734651994253946026803572157557129729637914603974752333436109836253287957742482770045869079996877817492042861691608261568697234426835454644511798998868625457141133708069929651005020181623531947735106315498015531292541852049587889572417373516039558927006048390107179040773981517482617643572353314478850199440731492211332230002311019403325353637316105410724502352151093513851201193424613808054437842372805437820197369879185360871930181772277306080537164530938816148608895990766136804542492907257621755553967018123336194890068664799550677848648752840093216574683485930275364730850074330290244376166879741512702894884749567713040221123418057803739001572762251021084249253829480932046851450297712661318504935738599987949796402031961063267958092525003868291605143687554021491168133797932046793094366730552947439227350711571187080045006108537373262821682109142960188773411359834704329215737775808613350280404590041941130238765350529663974979120385226262498842683664009603518953224620925471832839074826335569950016771171874469615868975926247738574092087225344736322500783512562855144967770994701511659501684620033862262868009347744254370323033874511332632677112608792882020246614757271384465218774888577475577414476504491526076817230116838571343461282127329514678682120645462515917247804183913551984574918569107807139153251209162917798639103380166438371029772004880881504160692663444432212099317588857158550459283077076397710782260577615930487900750902146906234367875259968113891930208894471456581080194003207993757223796605538877717967064650545309508290543944832094634765313155535808903327429432143302373608834488294016675324605304020840349791225084880076682225115649833331842376100585273662099461321015933335702673424343312292467959908287942791427805436581602780292081429387587666245799787299944540341008390949782474284359011603769586972862903425443718172969547979958797830970041998049664496029073275041558449260906099215534823957630592280589052890145307475910613239272110511306010105707460312530990295865896562933247347411543354775693333211063945897339274324107591343892963225454891039854006870459443048457194096001542228852533403243532160940068757296917075442147339870794486804653919419601142719430604381668130272321740150796738284476044997896565398109605130056185301180913520879429805031507779605752217429005367153905001503491199277239558086076734845220945396497607461423809118698065959698106855524494385544603555992106033558678748623497681920745430941612163304583085240938783352021832197254762914527696236366431239650608024365958357305328294329563037512961330598964474619193415870631565636646794618349124084179908897294155365999644236589403021475565894268182876707201845091762088579057306128839662528471553821241930078213657470463639070447484856805919799881793730076292266214568878722306073029543358252010107511627321198802658150519039714695885857139485026165394928642085500240635138384250266294319516721004904467241090644738897048959775756016534528626883551221470973431622230605048803858413220645421829731282823084154239967299082670344141272561572721815842211498050005888597689210563197992484278541803592994816310001191721559842910369621399634292473041355074091067766845055755172943769995011270544665335184664894969430242437695114911258585586950353855863606824642554915311655608829436800646658468947028416792772290625336949807285561293122328737871585783423496822580366714443519577263174907021964293359428959808847612199335534057456652171504423819061895613255017772929208708096532113433516925692128085649335902506129751123493129187344986735390573053745508841422060663883994840366273298182465099939714465673672386929227287659704386212464948253487957453300545896995419408962364971313682684097058935272017446769375230466217747057641302743894439149549632669481401328885955333200130020704344155208889832847893723450304018504196041001500114731558436657896425233180017680491474940139808093911822652827741324496252858924072753889839641413813486248032350287757454781376073681741197696308596214054360221434053472670279839971741992697455958696234653768754967988484235209228353333158958922816943994383940650174879735107435976091700823475737425540675557742155288645551015283452617250715443418456087606440908152469810294562636840467156526482534844947780226466047185200991124543031220925143691129104625925422172574577935471414455396154638097222855730998784007924202986291750612002437843570395779463131959612013960248205702322164787190329280220389166401339661060434251795446232015988240062824962467630979846317460356412304915406242299087252873408369545262088494059667030503599194582490312911999650893745741587870685438958660888459395298792559389044878214754729605527146646307769364086112615260483232291791898881549876292667831791614056156363196258396274434525977643730715578498307882104304418954959438320271289144789083133884470092860728354386519641268427831835584883057486928082995371040603620035210179725547504783672382615952787787336096284505112571940311573089593034912929787867700713626404159129366920476870928355595722731133805268769984358252342370784620365833662073245141981392878035042636360931473390593587885538514677080615437758429453094231680217792937665212554367923808150149245901590060278555104765147894294972993089406951942477439769050005664758828780918700801289255066112381056823082599054109136885732547665718051705293971143940615816868970645097826303487480626967377743755165043678361928144219579601004869788942477127826798988542467685897635881341733662999848738353243969594301238229850094685511282656650171352017787975508974378230544761240685881553981492400358549342142128714144111035303715907235353653807691924975788408795573357760812558865816688095329416171403355403695374798158139696458682757324550949807832014226535494206477972148222608213521636180442340634119245291166931052259966449789654037543184027453530925630031954574471103603856198491519373061542699527362559226810252577049200185393879935653923648034663226198301657949770539319164069132565018280615129440916747377529294369969783221464069584294637343116047473609825854600757989339908957967876563965768009405896096503046229265064243009014160879289056968287212125352713706825429563470365167837481659216605659271127521216558396609778478568562709292719912737995101221439313916820092721517828192289136566749821095689166733535213058102287542080053191057334942801074142803176783518132111124509130196677096652167355466623026682031626663290656338563731320395208245879002196687122573995912387570799718284060358474052151823715137979213898273846665142004444371891886915350282123213198824449230853606309580956751240720989515528182218805557405325840269381322201676311147368420616038298736679380100865025337083624357550178511043556768342812134908702260625664618977038925819911118254760855702925265606701528498389741534751136479198686172285886921518346972956272880338674809606770398008330053869850175474333664546512352187491022472559014733849414215308733542251902245933523144474870829280524748125065888052011720663569244453555218413006742407570105434279678363634354907503340022355326625271368054556738027692078413629222861035948336872166428524670060583738421488858269290839168162778094547288698225927881912639431035295928013669798990535741999688319598352198084747429621451315020408599162278023634498043940721464409942236651448094824402910467764905481227294205498074698147401519936586363970409777593392709623068511106471009294400755179623657719341731528208484454378624478626850885407286767173169874618360078085558709153283829745044105093411049823718264702833450958048415035650287655564195177722922241301245583602128509598962108482711542395095714973545686207073983186947448478906027484046614689118298802388755103857487027133662759789843841892909042204124590878018717296958825694102707698814209548360263783176988368833763215844828077782744811471013535896677766871550820902978974366583506105529459165387427724363779533869343627129969724459435629582164116420088397739059858635641298440170465542815016282975659175620679163713259819334152390075445547098457928629632946052842531608627725911505579189361885313950718070569400008989418619807645780764445890146463843801451983204854172693544939833781198553632278288997009137145919774627849723141174978411258143993726706448345910261866842531285365140666378730858968187907202625658053011569314869799766624435739007867293858480508852118075488579706608773278838998067910893116087807102961665058508361451693337225234014340808459204560589407176635935381241581879918530243822081104266013342419537353946441913624913036979444126918118571633328847828042652893430833592045584812683549695395522235540939201078807436637122943483202210883218952059062581568790162238507321010363088673368678068195464238363178977594574335313993044835716167346691922782927168386868888831396344122136391651690592149338778605205087070517307296468549151245976852584359813743476758159434584120394025242178885024905791762023506133529059390907596465492296794313544085530432853664913168100153983633536487664513663451681068701935858685012515779966746088413424942104921693581589651125719746425806263653009883439897138066422052486304203025422758092020841809761990918816812670327653468434585882666489156515431268453405223256868805210143081922695720857687637558095043615402668039447987728273005846403834569076482604575179145227383128845615022656870078388949806542992146332548154868623122212374205649295022185378324920106871235045000542852895252332592667767858393990662463095087365246551384945080580525823033597377859702634236928783554866640063239516032640207409290386630763389542537165195782699653404285625750444232682524728347733715364328592814007877127059696844467770753562078109595205344389364366119132671887917941099396392702200991910895934866721954553616312249475790497870953250074817551070534205691377131853347465371511371950501499350001979625093421547173390583860360753501403561526256648524989180774759524426328802076922950336784320838339685288384261905405417348157646666845641283245766326691037073291851917343190173871543093253170082388502866059694535267761613292893768185640187002160566722403861851219841263441673514721308858578785465717754592273215204377541394409439951496896644497337370350157175329387391391519652162814210430809972232031324170082547800273115306829871555430053975452916933723432798790920421539331909953768227773518047578506742187510345601596197572186945886639700408972336642501680721332514399507900661803221482021786540637741175808659073529239339578697739553297376426277345643545803534927142022325582621175173333851756937641826486230487376286967658230544662418128483197072895886336159262286155042492061407701206579829431489899119351764195150600356806545690415858751603245149904911399802937237160380303490286015606478882285804571887900997118993016867592708800654254734651448211562203670136240177930599047991945759991896957965352226687335352916962360286839264372986660780412047297258940490785059572364009476880527698302307012673146224827168248578160999255204428992729429588629878758493517790048240142959415603788959825353172593984030915910196163488997204068908869623050413686896655371960175617643123413374492636078877112967248556047740396438902299819333362164332349274596042012880588858895213875789662537929542118147517217864261512447956916362146641765259516408189713883520927705263969502375613965940926036471606695141653349399810105808889352544415009025256975132075423010117197971044428028717662780543139856926907797760371320274302917810433338111495984373391950755817966211990373709199443296222101247384454348343574651428891066019567578719103321467446877638881738272257008580792222355361131708613395075076805973100731982829777953423061835395485455272628917435226672826673149549180369726087180114954073154306417893052704267231482421555449620965919427232775944062283030536633360142777377221115355273978380357345810565286289858222939481969752741852311524596802503545892451192069510290644398831905034407655774068138721742448642757462198435487683347711832402389803349852258465263473703554342986352548940325509931832159154065953491654384101078441762575400782910546006089369953910496554944316011343079572382229557047338515289999606908148415644464636249234830226947900687757225554262162079224576591662565810880905805263269116980531027079337945000707654688443426464746559839432989126328687547105103108605329143072838420412704471519250762432898717600358999317123014664810682113439237583135554482698898912658732456550624032337518421257025312716681765403370210469149588122079342988307272658911198626068342148904576929728795361905898805208208564451524906421325071632406206696327225469423249584107997359037374808480065961140479029262101353518429652825400707129628080376683685766035233163934265399156347039537189598464045512696634976378794622511181415571887386491767207583969981037786535421869323525034157256112992254636812172929642100958099758133411987371168318446478330903053323448348704689856765210937496796554516901927629281061536712623317973059926860138201415317387974262398230177502270054972271596934612154433452268774852719933576246703793527772301930045399661576270465422140512305207121225617402478286420798106945174303875610037797141350697903907079502374499188063600932736330553055680836402720869750812396100062147635026983393463309834883452801694392405384726040212631332021268068062391670303048352595434383576818617027974730032053508160751490815337652338775260184412580836897132004540085756490942155424481308905003217038671320779125038835732338384125132698987704511545443629143443549781018456712125569119846896372055017623517275801135917314142161465369157641696383017017467050831363607386118411769253739613607094725602947217389204020902190775902390799858055730076228001266761302122919891320427988662832496451535086028812729915101971376690469523506737710821702769667872758235058860807337139029783436978934301340452587690946877130850692884586416318193826577610833797248499967479789319983443809462693189164400412537935779912370656048415790935926770199951596198503844635720918244586474089334300155590139028124832726772921610384794932022973325278831338561763723721000321608823319825494254570274355866667680688729651306350854655894596787187936463789020627161178082475155265409246861875347021215931045926055878757036052360029665972380543149547120048468955327037141874526124220929183644206303404476566132468717202787112329334222481846937752699255786535695980687847646493911922592679809041951932800512807627164893244689353595060703715972231763891951194867492809231440923880054333289136969983588646251268708961065414052342251943111506311099115705789111750392801323061531476011815046781872631977082902237876847204337314794769424018412667207200176483163935018439155337860226092000237432331023890824864723887190910873152310605839666533454117872218771917188167665499679623821147931727038456258792618755148692071029760447428104347052798193123470118676519177924055656671081298079100364125761533048517022214914970147683295564783179885231777773429767709298874858528769353325202375297362880550596196031806803722847374151183552750466974931167914282917511848957800121534672589700882742172949925958588475040623269001659859908980231679530641451460537823096852315750376259229116916571316217015506050193480721863249067807972384145977238027338398730586178480267234248871068073660009148112431930380188839749541242084720070779629202123865304107558687503504093150692177757308862310788181172937831750853701130266649289513243562572909403361731182352779958992362158654534625805224052332805542742179464508361602808557972744180651421696024870955466016149549609394796222221479589037851206438559145330401252874314439428848001215711086135989925069382914500641567101833850628833247866794890398286815383535973384880546384374068742863139823466340968053412192051065363280741925146507478481075099886731987519369181481379848720982761565104824987460132982062208454533662718967900855485648571497624759347575818901864304385171714984263752707018730860685302139344615454672450602119672540465347526325438101650207630025042386912149150413071406620842905419922156766156666485339974628394513306129951658390750178622919540445074360805931172831985927460264593691742728367877305496828863129400595147142332446920446443167748709739371411638427547051587506902605156303691640905447477595405660682280303596326993727977082786640656678981081043720589241376396450880005393136857484761439482646967935415953675465231088253105882553558288187856018079172378424214734312632683334558059898691250516331811073531877649159773314332532746865436617956444868529209614183155262249871974248062598734996044998970480986680333118775281800684000094287755824687385219041330404809249951993703603787085253251472676024602404938365114557390718408329199476758823880949369973676264500923702868201205555254726840495507344140466944407300570220882138640397578610343346379271046253866128803884905736309489903768019035103322226970973954469196272706259842422106872659387948901429750157036660899219322621242390242455490577739383607117084050439350936376261050869289927415761680646260288912957320920750047416682495506490014571024700076254954677232306855719833272843805405989159786390918279322329117163159429437147265854229907917395101278036746478721292670683621295830154990255060685649745576456818930773157536230614807760798505633470463105075242045074221405059553247188883415632127625473917431058708162500781927548255363731697752405361807170430751581807757436370791107776859075537798063533218909188740792872203106495090189428141391907443958919797561268159789441775181735675516364102964075532941586595860753477771875340274994185915293093116470767543538223765641945311602890159805594298988225914216415663170559380021531887355639740527401071160599052265804039865133243609431693407459425286669747160593317539766712773551944747647029016933050012434365313473286524163451159176369517560339736870199415226805456613147248974156317911700167896862321003367833785891023371116169937155891361126383051361399397406066531929586193147762450199881564159296816542840125475872146771837492158590681793029186277179435389740799392298571755722877455039289830747448705144979730826412190532968381385500717770920674019991238535019131739221445111701739251998191443543645864763782119662347537845705730736281890468549770053060115683194501884691860219486281527110972935710016704272146556122004333584249744878092371667987923480599024933433462015278843308217947360858999488856743143388948763696525014232796059027815471102601979923163342413352563023906893522055214522477784889902333277862267500323579568858031030346388088592294700849334621866929569868972409457038228811444080792785406379771668177254008717944848172146452697419371112401251282276553975829670269448009746879036558873971722110145469868192060846054940643074098576818609127175211806124433236003008498912624464919693361187003495759327096846840183955249244885593545127162266052769009568866748408438432795212130599545022433618404644304703407184807108825303404471255638547556689207613902367774708499683340393110952265634371501059207151526022042957069784726755403050246441119520171926646526321634600519570685650447862554129931012096302183819426398977215983008464786086562571828622450806251772760619789906791878672940863923963661741833747738163334144026605438696881635742549360517375971960320795256055330350079868903073264377674391810802056493416267719790036458024634774099389681351700843474690192410550302791213501971274122714659821599086169978888326463051294238085687698757247299940510056107107144351863650755218368581786338351431633924922019305040448598471966011126130684125904741929349014306735228391077198735755020748598161053371960695367260781394851119949340991713570555428498337404585909565666611222357634253309108926923464973981139165809213316521960671510622087075326024497761150065005604339885615007163514296782855516707913235166548602331481616860191521318542631219739827638714377466910387834105047569277780542826521550892831657857648792005285933903013159484445784678163754561890502583009557932029579383267349009876003593082070763788710988867958575746918216427232684364018884640027991039226516607879326589505691849972408145477875812512686380464162208148286664089171154813642437944824297437801635086964159367466876944986803573360171966424054674740981747900844737323522238862417640856738749668830167238109369603830289810006886084384749127428960041640826592142658661155656099498723797383641636364884868769119097201740236403875815214012326812614864908185397556446597411255154194375259227034423493966736357256937682971279131184163784817916278287284593435735502367880610960784627958799985489251426030495411804861490074474190057406445254200300128463570518967804292003781526505254807276075909078115425017302216046770505510723783611426929702008081971274320533847917736264445336331769653910497097805371555182742757958642924902207367986456544929862780697366434453435660132128371243991123227100335881261974155780148400106684589196461942298710343447702805684185662236253640501985459386479197938069880075334884226678840531923024461521755297451363517149914675747782549156488054878015595039573318391128219045061696766968559039988734278574073111705291091238718258440296211920983983722526384851309315687129040156281017302747109078122810816766946521847737907739653628224234000709943927923380885887597325918076527242883706553481169441257149455399635511061475638730151360975033112444839609045004339785772106286147816075197179242040530635171404084143134208199824897230835149431116266770229510468849444901459702250506946032856065617406107486087032962847726830524693442804400356186715625070497504657235409371169981700077745438673405569167912359990417409265650928630995850092585398306173751561707358834136584236855047167421832501661242030209266929522000699353941756810088082903071561321975631642596905285908726858279726025470685623443401275651708983983609712885440715020517300662682476857337931968387797873511089930125534918298094330297950934622444510166962809181958728325345570592490360569788270561145523759362998937272255872706863856588345629169837376760623158101195947062498340237774789320275838802830890983447915450885696961027722053871485981804043772579645642242834370808916940527470821920298675639382949499123584298723424404790412797655707445967526199147739861176298298461901841182021983354555588661756620949697745097877050230932920186961059614131722971533322730928797745603957674994549340911527672768221103794544594589928102641620955421562908007974926362816157492031316774562493919868733027316456941837134653361409376927777192965954071090747260726380146869610501386916338944526877780013846008165611783772604028070518627678417318384752487209115789114481572081859447161676904924831653000858934362829011375853481980189038804429309690891861321014470803114099946950235578564509141776480321187912505835380447444750208259524335540418287471194244082390798294054744478713527817708211836284479147382302313376753316518978954174030191241241703990658834666777227521042098749028222357963687884069860694904686090628678936496699298711382699486036191156272213306811797280874439158166509886335571391141439101808282315121492567958573697355948600306791627835685681243731434435645806309057727279708425784463927809652619371467607163822702936801701792421532777266883107475426899657356178489000943135481814250657053920251796010445054058677510399032133916210635546078275922795193980494076000288168285592919547354424712235590544596584132417253579311989789788488629602991116341011168793084860577612575803798179646921727995121367158404387513584481960056691831787619485250605466419795164050088680645797824388602144688401367291605759698211182518123860709673904535196181727266494686624499029187668234860472811873295030135637842868986705698972206075745230764900467082288500824109966568333652057526643754918377321134908010139645797735008634128179221682142117005218900692175853214710924706227209738353898844135818770528158964124929155345910112661693804507209008362111870584375968023982925726384806370973414910751125920331893064333526406446370348955853824647573932991553161642914090373623405737016636682490830684741287149620908842905629098058757063736883569221192401709310059714986969497474645949078867795055939914806989239137584036479690376661298716796057403629401807488611426630640639452258133922511911221608519162926741473797905134581071678847067325581136951023911867549939377821306088655341171635245972085573452465796126020959396089521584259920680727024573034468465008013897570960343977937130477177945592552044587695188594371431129479833943851296723818863560592013571255294008593116302329238433025127692176846757809249759225241962027311436959172872621431641212111388233124634705951259646632809325471170866794190666710826831757647924967016214671723937112319597925606364377145603378829479665273298514940944873691136093895028364136660381820289088651468476332069046656878327923333289479223756623875727457539451678400046976466602699253623112653399970876158306124212949205363131629030548737762818136788937004504348613553513233021381773919255059916882305326089346800768801593878352973722770686428736846881997084828871761931069491417791566769746503402649495742116443771640605099865863542304135378519471402471703992922462396973622992722842042873201387722123096601544307761251605075094151101916711011776961820852145460504559252966083230604610103042858940369064314078088990502548693920739107064067454038855714336137055599193593687912225447379010256395228872568106641550065389940357497968008151864596326321399907515234621794161735571698091376320029531756599816817079102492180117415638302929558023831868534037080345138678868302349653540458100405340517183099699362949572888885171052068365672112043095905539916877310148557303257862091980820893873526834569514066875454910736056980339728364031380129222202089219225839482352207630121032469265435301848800856974085504555894837017730010695231345623018588418388140127151717658194566619136768400611728873012545427811025189614048215947268409730529526092294501639329290338181898981773065082866912357103588768992362906899235812069390463621480890211904831655946212329262903537020433950157920508664335066422167313679116392253228251604926562891419148135886153341137075143698157551774604253343736193728532449067936771624567111371093946112400875932029629574873979345606720230279202123823399326733900629079880844896808027343815221197431785642972490313522941657839999467287624354959724452529207311366270859971938452649041593117011835430337700676196403847094093253079469927720786445926762613504788041803420782383164018681947743084933677261316900828316965067715902528109800783739750266752359464116918869587093583566620499130426811662292266393806832939430516981919708180271971660864011774743939463162073358319286065799436654364804911304101400382872260776845133853607259392076648779920423222700039261468711045501303382028065062076022862652606288722153448678881279032141895787236873137096530037479284322676402150773996318261564902562892670498643836942263850549808145344927097348489913292360225200545459287493292057617583233983662046865908956219471390024995118472495660090826593355858258231902804450468930565985178578352383185375466892942942965025008055377191742676294717062631394462388673065481172322479325497341942684545219788226049610425280964194101824564454420943597712044810655786367676636212360236804515409532389760689259888103089817419799552842007481045876137010772011266724960915751115201787531521213823352382635876863126392241978043991525914155013250618385369208551333728519858621695481323944384189270387769736873882267441194370787432642721116424833220243805493751180707820503403716628737557724345209559369040850821707819122998388097266970599340122187246782653009144830874710424651383016462399266486354507782969527310800539015172059153891466006721008977069802761693365801066239279581777743203295141065620902491277245323762475689608435041582568919452920954953249046212004204999089468885282712786791746018569046875823309705496309237991392273757392422247328108158318804880128927229326885928525123988389211653550967313815067074388594603806792916137037582136330843426618860817577723770569828121022597902430031315777369209346275426086327723926082974501781798551239507837626668316549879069727384841939224030425785080522796920108240048458230983686723535636103521539244419692870829414975942368036684306037026014525866360983800042833927977991582264430110286883039519341003080630671461176741725075568180696720744911202788420388745727938426126773995764985022965206683124923609896464540888199875020596919447063816892614330636525636729111491395097017767139228545011242637742031787758260441553389980869780389027989428133602959881232208584934843487468910020341645680027834821572821682885952348213469812736028886511674151784511304225083094431412740779642947506460608726242150745873431080263501496141939757390438140412728575836653863738410909974668171610938525188315911982072490469309938025052943465933515113109566933760023813976487931836643765062226830929562313100898883467402668420409107349081683459456386516992519693356114715433930412783385642280262537684898035538739686009710459424125749361230197048737035345685369033634396138468834168374401872569587919761938656892171727348134343752668261646686255327553840821576314305927127216421021322932659538407623558841875252530979289291172584125689051693517581897508965382173258131365718013677167017125360227357412474483998241555679873255097106392174966374161987880516447786645859781969255652929026469119863410127540554143568966685680224833659570111870222767567323925141736813846983216451806378076318947233516191585953932637587252621706815947952601412127165160155630698543167921718159714886897866281447513720329463431821906404370089165442282571877602123585156435592040897792231656160592002679543521625783048990887584488868203138655564035272060406331523777282768095318664230664014108099640462530317698726280893679067635851594201353135446706485682403691770132422129822392605070905305899047271235131996273997133306325147799384031493483124071854886991701831067971621962485944105587672031203348445817682443891713481323170000010089453429004420730659274185639306207087856999285949339855661969635059909017239085943286094850129033074115248730598966152259644939298533427439246122275439087348048045025857120145383784478743888810058804757622618816371095264231704134223225422603835013344189834327788433190894738289007565649895793833536999523173776191429931786333891729755144534479360284028878576009353289386740613542260816714359427589572633545621108424017185470193329683419083948851317308340909541005269982390135661608935089526563923411989885734457581696247831691506739141200869944932733290371136607595015489703678711624830249793035622498923595870433906172704872072862876799647152558710336591983447258141796704182710338322053194637307935350248864105691829938644931698122701199454803412288021609909733332062528583988209980304312751918688507051515023226603171926636920934146106614475470650531277321692806411374253703070591803897888429154350386405345467472724812831194916734459581833137505526576318779448903284998929446839682310062461625203975952866175053163719098560915802848328477695575856899179666036746248138605184366198410805085787985935043967983864218391367399386238952914719768314841024633315228489397146245933050714840976406788901010580750837198399039068355107505290830806241157394212704424534028513934357632952075877270632609907689354775949912812890616026314683692463763012041242895450978188492578873589690649194486776464636532917337600363550401957039474162705332507444368272806778101907520938949575855860609641425052781226184756269723615088701396022348509785059364163629229858594840620799106375791151563883865840536023124571312109221364605034264531444571244531244942464966930482924351216924631644896694551617824552041961415483475354972059274849857636920082150434494594174730408098200687183046683679822225241961501978797700231421486767566567827065755262927967991673067317337750749434128068708936139295524466655252131802364086849221892062255276611376362304934315495530450498820161368954575783334985562875379517253935587743435326169595219786811060421083805767094432923713791634180742067047213366298226923836896400633146848618903004185931311255861783870915565888914707631355401589785833613207441444474168179187405135717695017836100858921663781379483622670078066783862028192320187537220983101495546004529154606061547972947315278212566168248429158153716594047712333372795158641086827763109288183113213663211706128209495048435627121322872532427525910677170691641484474691527434807046269018425028444270350674406325684965839344466480052240424359163557710380796083570595279044762325296491137684264725316037936314895385008858726669858966843270855136677250317873112669628845658665089555479944455852270015853916500353520779623619911183557150829640337266596723994867961747598512391090942198565096588043174136305502818867204746435753359207705048285713864930183311322262689665737946302107471410167323653615680461409100418213423121100171147485710265080661995335210711579507436009390886109795820089859368285622379836963081524711288848592108548314924308509224141608012793400220926163621556478382953897236611761082360290844858219865510439353313531114751950883392653690311724136477096193750606956913166370153760234274159607196563669259106784726522485092343270441803287107543817869951633397908268686944480753038113019071906541000831594266709982018507390751726725521005683737503488895962523767099682581741371819484024367604946741927947411726027193321431150618064431970278289789004247184441824039694322328597048923086756177977667153944069499882734743799864518197080663829371404643459511828569639417612225906581923097687361065276555208149724607378085178330672545136333343321237602489764916048321036202506716533517695363053211300713246177044525601645667658880863040147774936538422603532484579755210399341289179237132360752258159116290012075212481261549606176174618117043556836165576289678328702921023642346466746048391131469077737915178165571628282102895419453246654461565131814815186497618932022421252928508644946904168621982345125403098858548467045775543974402184365617239034088996748221459361788266497752528033193784759896718207245148593208774366311511621955416584187604108453991494608507721442259730089884916871868581563815765546527893200502450912865458670838428394392256872659210683720294251793997580457851837207212688109734797024035429243843769009704425769307105916576987607234685457552280227124364005203547492388158559772679676974203789340659187406693006793810297614152940483659163270150702436472851361922607131905310341371464743374562760681555146147500425637320754373661727389183125663409560566054520095020661114375685071180299971313442506339793814558063768197090015799868114676003586907010782708352880968197336620594428925954054865448539584027090216494177523262857820621541109945403743667922934066442408110160629449789053293910927431547515856529999988064232374388961580303073914281740616594481389632281272653641874975690169468989128538247757372548994571330693435708287364847386815167948888259845776488444071152295856859426184778090928024582075058453138986416967859464812245662739548716866279209908365521437246077594718208488144542525815608524050451772889132182201748248755769729241148982122950780782835969782228754166414651153940379495736954289899901425638138858823163312427138454076027261673050028437525441143289681520654047327538343711744000319199152549234864274702205771209825931179761989269613389149580319094529628735899931601938400936262406529496635144061982205994796283805947296416625810840439233030784302906969221122632686280063055452775271926236161150186637280674176226946735906663954141241759439565987610406105416697629540332671213309039875807400956256733711539763370966004309174715563325068509368782282881184762083817230901504514650000522525556886669581362607611871194659171191733136733980445528731481208425505334783198276373353049526431277006385822447363446105138819581335954905973326730073067556207580458278312493497023928771204133036273021845846985936232306003355676789676844343319608321404533931700964743656520464046627354411504284065902660211481647989404625860813706027926923808286242701745696415595147614199680122905087375406138742543888810126355689605775345657719216923272050297582625493001755351800012699834772164209263999442031456421759105108753261036534232327987907092828000241308050243456676081248567747705732213637275117268514650800198282761583515943062490387437144230169031286668164795013700374975158628515284510944125559992710486035198559846467303244300920940037845685329823385060637004880544689642594749956991639073830762999585325835957865201177834837277387749884393705954183718567329112123168596476551603355057326149945578443822311751022232077201407527774927219036354747308174025393837587672929753895900939077424358840161989084955954866769707463620058770665664748269415862209453010700890197332766133063566210433723709730141363420298724327983591403155323730379770186519956486091686642743366882448088359781417859162349248499436857313043286267114201833818238238643790780047204289278420158934248787624666769551949549885586047749033418189412553885703171357503170566580270483264932468739123547329112682399742156865564301169553940109726976548504814656195583064952025938069201147369197000289877480159247353362530482454153917604747685135914380729646648427299589470449537262285153634248624119355701652781150163350810626783723717678199613308929472098815535935788921155560907743363207246577754757489892124046894278670381096936385893876769755440991338524193131291408558058386947393353217787160304095777549823535721770761112700690586169693474844021271913301662444296329529851707381097553766535141908725125613402732641317682949048297642764461172590327957876410344909459944048613027807535338738130996177200977109231789422108646145461600719360054133661174052376691836706238383772097808760982015615475654756933153480564740349632980482557920342614854177278559758073425616568051974299591053406041625280508105081757729829088562948972098198849674701238470076715352529125427379651350227910510232519046872536910939050752084784737697654651453302166227552388268335080965780196570774613799347641920468150103805832193487324512259709233070193452463295443758444086375873255088684474028712637448400214577120231938086710684183788430971597594024376915990815923464918400880005120293968727976015962139392005154153495958017787538562389445076123201868038320138192812705335088212140587406212933957263722600737811608404402028345562814901617017118945498350158079856403398570029116621697554162962170866782741929085152089043805996932192123284855420145255240360246256010876222682827595496781246033228054678230711887498007442231679144262990346057941121386800089343338323805457308402867635231778569064775540479124087794382184745678713852987390178536086863467444573735699538934657281860192144414798158000759672097228451081390701183412675790496618239579286045069764885550381511477214124516424403695931956366117908879005617227470960876585453198901437029736556192655125409226989327781959745681915367394598886446989714407029368168384020215624479163860364611717800696725652364091842679970778168526686195732829032917814164621678121583159941403975184841322101680160229421874493156025804010547131074180589878452992534709804041190714566047839733547859076581325647182290292859448493171250090550672074467029709333017636589597148458245655850199520004561442454673578791383219058266341139032570206966247133310242996476135209617873125373219727279463118599397992077724778149768535486178164944480517669168028080695831018268422678247584851097492296086194816392066882961703658924664158215807468351296616913775150603555225178972223658725581801201509381315739304189502597995510190318908424526364035422641949301414749979533439634175694932141575431935170690364062162327362955691096184845804790350580283575930972266171940475752728408480533629355320868495252088482437663336560776280193629135863584427529784747731119285663373504808107344833232264045089308321665887363632278671327442332526357396365881849971010857566198751904058002026732293913849170109050249030832134829765776741611497481387505062045525842937459228335482683208920187718293916362527758484648087929961569800990516539403501217527724819812209979951195134343694691072203917291920116780952558179458679165102352332744171110026249645098028701121098235756093191387004231345889319594322902551009295713047372908984170633578132608848602401189106594173225114107446490575267672617927225119394137504418772582714566498269095739532826588524649316244986462983333940751197425880002127465850968395546053666420672339286880059745082028637354920098491612714599090188984186464555273615286389987282490381074906932188205210632747664977436170686282269644622176598770326638279147487254151677080879561535489538867854219939693218068364356065171258460974690988941443634456988602947867307538577870361242528054373942608894427391092389610361537739276579184573782898547251086567332654189481735008135845514689699242741711482604368415247391449553066492343783994074807858323581920358014616226822981758825695548327070115813648201865827634591539782545207935943912569999238417861257086773543588785040999431502966071471326830914259079291869607818475817002309949056144435963725770738503815685385631578495333174247416317889566505021368458021861508321844425533096044088240069957838460520458668073875801218494722590183561363212695313592032001882514661708710394758223261503826625233695422777076625970100660878785963122762523510347791292002007856588434744654746225797256522023728049528630292383803048252252680817261345457209176065426982084615191400005434093101080680799710820535306511317504167485809540827410553701322992733844406042029270910949648343932653397665766404363423783341562744824366476132881500926706432458598873466523412454745388632041328249850586598877022488256097718812725528774289134759129447429828944986397924007107470063919288350127988545074048831478770749274523961119948910546873955038000626559990793212311759535262031121817130927204361902530454395829775560103024277683731366427864210826310068652331801888403444014545547309686620427923198144588994216773563807959981808575598739808403511666066792059444623031579007189839077998388260666506623211545288464739368528147743207082251656836331776394999132312921593247091922712134149814237698224447002656804584243552477409859364693625639062275643305133415552544100135564380896973580644778463759862406288914670216017704458511963560940113253147254585358146555275947122065714235340354094496548347854284991381091756000771356384384661621360584256227485852233569256415588834786727732815073809955814078987401677566209946893819652600779630180740925565497564497922496728382588823879453232240662000355657756089661810861250273477469161338263495172907490090573196085377758781465078127354782213081980675415395879713493946368398045959565778159882316802308591325438268558905548314794282775607113177931587030083553027728298170146475363573642923667079980975369672450752480650442822349528190138981564702660418228136274288160193448027025790498141940091627397233955918171194983616779498899891882914415989737656471736384113127855048421709817824689469316759274805654099252076767446358382259552101741435188608085028636626276064495420012150158255072529485332404610383608550555283945540578328116119882870337315123420396943607807049122458804512125010187405570831603075675884575267013980497078411120342939536155015211121714041656335781203576506853862119810657847088553796037195200654950770581632027644266653912323735322276839791226230423340157695371452163740239617665691550958657156537665756339178572265883499496971295640039389975894816424104845085993059347909850883355182130225025719064652085047033686070675607386284739603349877843540874938916886897914043071186456976961440965049276665033517002502440407139239963004176288131013579314912451873215309991548321494031890265526528975516210344915155606440264506565020751717494246297918168976935609665293972916152557813396071391529084790136369465345698325668187896636239617543541530884316054518959361034641404105910387974912749644112284374771108317277622512324396897202908158843910905129286634075833045926488062839983938445707660702171511674688421229335467061222194564403833447850038923670951908508325423393932995409552514727329883075772214544308538929301547634312475701016829805055438276182019581419066800815262867431682514990752031178634706929296262788891505419476452139392971713471047629858169321433575484407373303629246628375679463164052087528022709659810596225495266811689700700826397045909278865054293111559185616584233296573956290804398288550820266098606120763785598977373687828157770267699319845446371640558191725961133040074267843815613535146159896885705177006445293999515231010825402510227917858953787456819207571418274751713501326436611110506007436807764266412962551449307717562491744472954506013646720529639474417316637406458042918398220346408480701862770389340761275736330833650595269441153694007511368867540410588940151566664294896237452943411491935613557108312821463920376246904570354299570050549092520987900982724913870607568083568883375865313861540001076395244888894617348572852801965024056179480269263514873346334058856372560508334823176292847499479186363122600468544168418395994312433020495064459148653773313156471868526279362676465031875582893012023184952045873314820036756711291809467897247737301996507041778109882147377903960352066778565169100440887727151206821538660461577635791560452141476319246144839770894120824269616445697881549933736780025080671835540492554369285220848405465816774712581539814757640498740840543207893452232610569334951882367368734118244079790119554396053291560072142942399076955379052789832203772188462494578771802622094630253129738649488800154860402176704425581652312910974251221167676612518932035129211663644919090549906294710454165191700619934584762219546363699421562599096999403321826591805944853931488193396058678055967033820852022909680721289488551686271216785399398988491877122234365052493894360151784721080932584251602346650874686776920182310552046677375554555136486535329072322533939127492372225477465184895406502862097744733470836983927607868299485201705312124577201979625670283571166686505751361756250077029862312205825183560270364026792898771656817356868357896973359453845021179373335467943649615783919219368715975407107790892766387055999231938435529118220958437441726945363427967344144090650975408196022761963942488130867614307570899158966835070034318020716525734682402983091424979105098094045394997177769009594883928140921125764728323995031761384232717883283793630982562755332209970909333831057608665006420318518115918241908567661271799581938957509628534933149254456915309555054936490915865957040158325333295794173451146692124542133166531668962572154559111541264864770364224721678086070607226967979040257087790782697722410513789070711258778785007365789996598139974303714541004234789607503766900417890339252395706567669009201327666609701383250432948452474133368644456324747157704766364389120056064135078802026058925644378976674472319675766649617242073838644655419068908205732879257116275068217795280840699484173502681881369501899888312945866672895846738970261306294138908770339865378050539044150291444031388671820381933479618283030764875314664573455241847095675897618362859735045419710096477697285142917872721964115785173308106213883048888502365688056679372120437608742128663555073689349837859684959070310407810347935817627985063326313309400485307424288901669836559822514106021131901809106856179894056427872041320441093618536238963206235529613845795458255884444220394186403071591313386051162593743414236261508013151162680288779965601853497902982447751008444112749296803611021735021884856197406788904434979419808905268143006365495078451137806979816000900090511287852838232149181946719335842759466308990984499697683868800682772155744685883157100242088795207284224832378441149738830741223062750369132581529193516705013400577615373398959205916615284215959891306496536146418336968212102941032642514193220285063660160342635401990543864522133433680011701332263046582503624190749900260930866209582415040882720752558427918843889135918965159758371306144142563066581486767520622523306179116232466598957520872458263745415221878041567525217473618171804695495976214048587943261164490055606772734296532236993428209844739929831575322429556744446176892535227686444083176635335007403699874673988960995735259506199304656201757590421748041725600197783463823297546008537911641765964687480427647919071995215824919791414491307825218967361964278890509287727533850502253959954626371624968682913047435381875978190631194723358687544427010538688031569081317301693786195834950504567883134246802486456838352252962860053029774508234516111171324489915942579735177786343281176031051845021290214612484294647569915695745679276695881976125272594339163265971787533152342018745279458230971723679992081677479405454951627057196778376901144684373901912511588219252685529789432442340093619703681237397670052507774591614388744925970533920177654399720648029921833345227076729745604651424257499463385725934127483479837993724585985073262155329006696285716056177816018804592532549009472272067053554721132850204571031369349102812268159188732941736204172371638032189732816368357801074823955862516008747050968402818934590683496219277171074231607504249895883798171350393152261643371443206784605621017396882093689944424287382453670314512950687945434481225674982880757837208893060041519207186262575490050596062142097147537663633123947293481919395739901800431944176494572851184002038078186809405599863630274354864199842267838212968183630631775545362617748582522870111691918997864978851604850387103144250864584612894880176392604179304367589130388052062275050302245415474445822696601185822633373933783386540586346265831207281907145024203249975953766645487450102024141802036681322081177153582099743676040348018089578445972200097948832372425496854828520276864205374837530677564412128848344160690498800259456868391142244141380027146880065174191647294096880106682147587476924813748197800452740113028942668087845547395509631995173603658445028023322573507072969293007170851974116563688776673341523192947037396826446231263941727127857635107564247298497764350256371849543807562455537231756839975541967331452179372551698538014340183031626637054436754348466356385937134756879154724543241017979749080121854757614373318114853802961882676413695711355151647193964920946479693898987205862064055584748040411529508490216038661126026836158821559272539692977035441641086511718110120588676670783431459766367941761017412321326844189359463416504294538116085317485340444153106630524170709569789554980239833495881158123658201703406138235926632150932129855375923621243006744542982000557873667863155490486790202964185288153921673893503113856141902788582943324003571926136922357266379346959846632546697506544780735372563622301090966261012093682934329433676380734161188637300319536502847587645061490972478263388208576764479608686434377661813740747095078354371953671916630633191557964458892478204619484863826701277005002684611353007043841460437325492529285629764841410231754892544338077216369229743599755140636867511798547131911196057235067981893673618998955973101592701214958210173051878083837254161511676635285708380227285146653495120622667071247553806676877211816518376295071819884515923738623733843916657808231455756188261256207376010742504902188283838129881751413394595469061071734039471014829840076532637392795835718069104016423604764145725160183828224443886916191339253344932821875572631705584507343818399545613513772972515848440640378267340277339018600458206439249812335731543710414494418137714807559543755437285247305731695340162492968994086229942214561911872566053212870179532785404770990464065007275706517318141654095726209317568105615001701856700418626735410278891482408873194376943723479753771315931101718445236466413145094371621931793149854442670235044591489936461096947079318690010454246054765833540066356763967341317956795477321332522638416964489977020049768385959600114543828417320259280722029720968062789599938613142776380587451248451696594002424121540404350845495645682391062208563271026656111853707626836588684208927511128256102558693875829478580648787877585087663795957404823307963262736303737429998586971195380421654220259474095325871553779496805406064916184352369897400361220485679885975589744359236735513945614599063222011795640333320288130158198282872793701320750528440046339137139144099292372915258758513294462059255402534911645813576136960502237347474283737712519502025023457477603351115064353776564941509215074547708519309031087897392881190541460819089487565062584488094340982774205663879602248464337091826815189979003904889554006502119337292975092195640161717984111213266372308588274179720618645447701340646313873626067044424755487391664319779417188306468045708136663392266089235255968361296232065238912931365633285629801626106976139908850035589597744118624395026735473902001733983804558785293415088771447741852801030654870832926783048147731075430221891224685609739021031111587490775637103000659719283512703444451358780340907341133320523137710056506464227953732764122797377113889024913975489391332045993800687073768501994545362691842185063100560233130462579562886316897027774106941594656474184647253932836482544714737677766899439730540742954651286057653015284108323194967155381972175438221283085438302195191811462061049073040991000905508173719580421998189508081134418478957186691072369362663990454122241565439384429992412749312196087688416415215225639528872034909325614008819168633232976634687345093320197706196289872522904845264840606206833445585603281924864633354210899776356185949087271218774123494270383615824387982721466670298792494793152548983720035108610591382070473167168179611756440928993886315918508361906334533440157804180516693203443031530688378967521948762367001891156455603686058099514415571991480415347658119093165198647150269838104831191115221458865881421255924782073076620194522065644655927771431844092517952957167177588889160229796884687097337226879833872494849126710703620714987242597831944990933143110218292850008960570633706556341510913710166175759473388469781511595652732425387453107655524506209172234273030015967892387849953805590035255561909399702193289429157918954080940897281015593234185932060048340183721603057980686663197597472669669939135843269053357601778958169666208195140202467595558162388265200760546983558721788164188301292593994575343405724582614550287909107773200346226630505072723886407964714706542357969795455017291001273859191316036950912986203835739546423760782625468523658516338917467550536351868662626406736126656719938674241143172894360122853321844577168752740854656621199574609557353999877300691618262649490364651179817413095964798195952547552204799494703262853986975224784617349992235359107204417316232723371900430074009012618914576427646887205158674419511985412826811115841055034342411793119822921307464123619297891765066921234470985462636641816947472720747038774345165556917981423546288593498876958753488992692004221381588092832087584035069476080458418034305775607767666730187336995263695415944199360675595454720672061795169815775068211006639803953570622400150438268287240976404517612975393345336000877548200164787349216477562513585774653024000695270073445755187996959651044311693625055390366099851310106981562003712540226162680480415540392615866945531724870600935977879285322468522192329062670993031559113847585701930720493656670333953336331837701172917157717147925484429982360490063782700491344924082680954174785645476908207059145126338689433526688619834511475784129262460468609122873443227222583348653019048981030943503441649986669175574228830629898261601892015964602736898834446150550489076234335455277309924428256598587245299208501735218143544238679868595171324299227182514865172594947173215628049193606559606552315809157915300222694295313997014167546614016337050302728528470238451522503530568692380100690677422941620845945832355265258219502666745633874793560879264521608031409422359705288893742174151423035122799415350465150297017270895714668440436828093849206961174648242087521907536794118700296128146891545926585276021767297050253504933201079228611716577206262338458738929388934131522579778459932523433649637261729701237662252687381815065434739093498749549947235088863516405811203026020927278905532656997501701904522849828117295624718078185575908069071471985504580499209280155267512006213601558439552636860376938465804147461476670633561848408771371974258188473560075662939058484116559598012057902252662866503355789360966121029043246865633093983762247641162093725289884450312187132695084537027015358427249247245788652330887043552282350415310031061967292903850524798630546518338537687659463663554476665436695885248416897073088873260431929118319109561445903113707367356291879878766122689086639031736317442983477914730103064338128325975180246177813674040600266045570113338736973852583333266490397470303746358852037754370092106249081203150784413938192859761402803244010079939762217801038758769076677651622232852403737579834210154643367732445464824599088351675351781773185152914651568865811089156586156675542946239530794622771431759072019279525188540971678066733280785749749720335338217289781686916376975689813316842483780158016369265312145084519931315487819843821909878385596238107916185545074704024232932301803578571377326022901665204717945215340576398587962528854080766859183131182065150247076858361564907878297812138626432199821063121493619844240309543792279075054811189882722431212356405594500364720589147636051523901834630794721495412063715568890866000558837518405499148541423009498019666441986342722569361509937350918820844852750156193245042426150075013407205896767037179000647097242744327053223795659281735054114753956967953318354993381985503137289229232177738577838877034542188924215662273800604811345990404632116433020130838320879171088936886804064125346338254781276029476172077815724267944582862171809593578168545369668636216226727153742003191297648412978667747864140046186083408598672700676675545534291332269584123936988573264000101272312552653525532828309574680232852581020529328685976675057409468836308405320956429093556946976759882178467397789025495435945416204682375881506424101531159301107599579521048729804098808928408927322624723850435591385878586561477294514233794278063765496779069278441994424826366481392842136439396873615275433993157715982569390606660985193395019212787192892029672334403886365566911291175638952185101099776754072695253029760065252341599311693355935463699893003880772513341283840247552888390170589263750740439570336816544820236909809138234525332600824216102187798262095429576475960650271722712927481349307236879627046270268430148333876650812775137653202583111707106507800480964139917588853184564085121811339998483917045758432725853377340617457683147665968660674439057035247164721997246920464548944223752734582694149981206408372810025848289569544478947802765383272023544493838316181702238110720023297981052362112207045841796869807841553941659322983698578660536430715623394196401679102474791131373683225162712010701919681974602437238966311126860672321403722820243589427528399524989627154256588757648799847259247678424569583870031087865970758787634326850848615656624225099784254478093770041126882085350376384497849305507300116179608403346518856912234873830093237173550837425357394994223605839894726907615393405506594850615969798553169026665360642010419064917142981655003173126910180549297349125557310191116541589465094544193954524290410092447085747025289504247971933160329291550425272251806050938493212018942581749466823513191306947823165882041472375813792964406779966150028626186004141578666045096544260694159470687260466580027308250383644676902896848055664022791395531300722010103309516359626227604588280743792237651510348510775807486621874751885256780053388958930295878232447424187880690003953717434677362196594640285650643858000356295669477984630210328158262647304547478400870636545219395601192200261129298918164408677124589784897009784168589339890169910950722445119987265338562423360509327280777067413216927558992572810363798745616010450673886457655452512291986474109253406879255755779871027964458832719423171510394030348964574784326453158810605632742196378359730265930197064096666537808500958126153097764733403992296106717083957252449787673791049894795852114049552939120486423864411344534627340767384083733457307140343450406556697353660597525201002116298731606892432479817053724831761352803236355072585169099816699050107960583014765614136748519981574352222555885055034187435799073918100011586189284003134355263433111100282009243557351131398436712623079900731779555540950994477081100882059694729401750027408638684040920690688235209458832725002111964487289099407002970966680051450737790197234252903245762317889102604026973439693721733212828682608361537375362144762271174750519361973842823404873905973915212182291245606886185530573693105090712914351615196762928245687824639329555950202961300097096812561336667693799857206361425935595346156317329152331977383590313993020400948856637389300855262918147129512087256189559106293838561821687463752636941229205460645129922682379298067409937696439614142955108479770326914885423472420566999439143290814932444773659460982879448301161609337288586847142114224277396154965325968584881178500575092155493312702510124049522318452133661730619983296115979618941685140156051421234043548443855283471892982240477121903526627391652796432489693907714259308066330559385421048658435915765448057879404970161662435594612056077547295297946170332543861352269173668368828719939208049524922936940457054432128452337580976210814070141791737833414084354040165968918410834129421266631698974928117633696877078714549632737734007857034857932026804119290624891763293047373906327899103054817895337263052303152777606592808659513053875877750516466276352483011758503127284973080540479602368349212683493639089790828320160338110327633637634451323237140793104779808244025423610175544876783531578383568818512935500850991874892356641207941517489761779571797157696571852986361924034930614080403887970218233633830402992942962371822512187265629496569116008054670895224495322327293189060716446451578736159789180647445351337229818663064813044785607104248170457816918958357968899484982798648449728545369963917544460641593024489838396020310615198879789216585315779539179712175370938939801426436071390336282451205206922307146317153449511393440618558825274889684499948366782509877618827177335011115826435505451603993186835131215768770876652464019420786917537408500660379007055037936242401387581814865549356599490596359034734638964438274400207326235765136496908736048568051688546767848263870439055740307412632197997058268033768589350399170774093782329980223978508291489970935272095901446595189687356285166763993710598279994782540401781503234073404367859185133457001506358744995970432018822177443487739156971201048263263056732635719376534782436105742157847307043462735083422344623699416244424571525161742983166047169203533222882597105462237841629889657129836550483751436773235393867903860521037462032432824702663282794044053489912021791640598168245040575469870509137867722879509892052301685661741921703007630077081111137981099099359001630671240692221755547074419815967541918045538821414536470637477056434121179478790587842903339915396832493845353746801592275375760043464873213517031409967546554220643374963841218986873280355775189719221356429122099797672132782553470150534370150763093591322018384737119687302392076083357586808297694871807581086408255074502014245942721654359624562547006155099667860192703300669000979672077952175003505991891311149903790542192694442984868773779691250582195000127569215065646051458345140746075134697818589707757447582439334039904341139278272226618762248902861414580611476024314882774356121442843736141415131479468294663165341948288347635535257943869455697019612869731468320753552429652296063581338493586150169856494319668471801993538273603880709528452741829219595074764353319267627240648038255046509554210990465276323871239353433717312617380709249695677255551260793948376982413357187331528910119112126268697495226602955251106487710777967008014476111564319259038555013846226839276884303074034955204586647346116244100479445998968860415644554384098956457405485511180886739427604723493820207612739576452295045734965081402691092164066197921006615217304936901126005583822763743620880772845663438050366812617231501924380297789702520468900847575850462507897710083918565483905964865328113256956697000468846411685487362347055893598926410280228355378009314108298568896258899595177073691533968311718589487908205793596137390387683289282358919382873235599684726366729312938729757678695111308847035889023803675848665616854882075953098204076201534089477174184953430469392226787243059101668856030075134231489353787084934312061226111199232831477619987601092904323525922277282632588496431082462661750255579579646152595382321636768254651461177247531305520827462431346552781298955290437716275486144485185517488856993416270705541186513594008612809282539150429704820799551528982235539989276095907429179712530126830077678316858272746534025051252754719678602218465461663965823613630744466508424322438396807738376360321193641594296395664806977727011531794184516584008377921231360726015884056129010232942242162060320435711590269663938474924544582320539112131572191143383861086762227882964148910567972216741805450283206322731075824344479305275270560346261871104242694306537575492632172447939570618068766174075700741598485369979380361781270996566697484547992690176917874731502189067390056479127407974486553643491822111734247506869253403767658349778271495151975472695934714941101722286937277135646697980457753156952880547700991201261873052706424108950207790785023573037197710973489660174304558336489880522429180255854048124524888115483353226008807018079278733473004395485226640951661420718117342439381826655399775500333638923441899768692324625222219657519992442085633526025261984110928814989471079545926683490556807354023004131352523525094994143799928670302204367959113220219119378194206316399723465947548470754310330053132750696506036464251165629279545187848308666087280767281601562442338498707147478540782460828874105162489755448242650169955866851217906970985749695497349956349688905045952471648232586696090449597527663059785065992853860252309899847478568339134188674762846993339001343572480997925087469720191062850182234154796548282296210443023626578497271550779208158547574089908177277452051508886929405853188949144091816989456863880082896062218620976841118584357515718939523421773146420956022868116546796553134031902698966223254223169325183952676293979632994021334825352075570502719956616274477777465709236495139967795668543856679959211300750687098805416538004974540342378652875120213838539179954012464665631335188038788224628673923765986748876770183681627037131575524371310101566757650180524852888256322884803832580373895930175948873695019021408010298479778378325951821747020152443306877427306912009042936413215008906246383749903447993168152348318643385593695237072549954364976803608004957674130905413665901816193206547055728694020758195889393333290517111330581421132246410154728717482971029370789493972800086864371318323531225892361339758312885052402286188143771041643418128056806647877496714055284019184285402833410845436073735139460298962644007550969985083774101230023623391281172895645182258760429967143161747053440653108624945628933628110349681044450440560659471666710344993516097230975503640661895868314593834877104961719125684435091737431932630730455430853776057382210053387979425435736459602896786855121104906009604487676626467997810104914202324118697908860563780101232756003041100377087090228316903651979754076951180575988669320138952249654638426502317129687154102249008014830631193481252332578453106006740788410933176482630616032578599251903116203707868145153273495844886388931271550611364682308634730143792401918206244158507565372385605169540851036580257809698865122188395947165027482492267957649388183629522141619863514979608164634419430792759873862022745349066062318381467264023986281681444620792510444042184771742923078779191957742579297420521593743765611542603028850537984215579714925838817703504028563588110644208226997379176285742557660532117116077786098064050051192283226284290987203418980793937031293183100832730043864451978602384953192771676520939816955123650656506795368268070909195430637607680519986646571535276122923642600335318386931812338861794703231128891873819708756496443416874007176954813686670544029808840849905231267002775497980986560451515584842253116224538030084581821834728982381105182233114226044931211424182240341364102846965087827647231822606212156703898538457333230422998614242328852671268959804187277564742591086485730461128301172473306884242227633849115878757069493824848500400951202249878541725989536214520002189211417888966584972099541253750825017470239530900553181390679244427339058594934570284044928207370120397724367602505586352239396427323626988747431270631617973398621188284814395581414042729491978770686580558567072105479711044498656780793169707462030421383296817449345179374251659163048051132895344797354697317635399106290413417530420294867109813568178424218646026622511026467493415724258616312538866308488890479855550147717269300116926940112294731334994948595433010059456428166784383369544598338679888791121220509284118039457300176429322763228582787533835250839767448141903655611990452776063845822707839068446760726070086991455499078705116389558308049461674720347453369844119312595985659741380219925352897857199752106235568295337823133209125033049184345862129846417536841239122158254423389625671852065333241456430188145055960746575040950236574411730033286453589497946659321948240882664417817168107805379266789739692111820522531249391687432911521081844276779580701384403336326208437269508733369987969562091413406601063513304266384711469319479663981923198688753233363418238495700559067720611527223020669294399333635523301846399434218573531819166910161175746365230381559216581179336816578053911503169635827718151224845369883666101682273499929063906527637769065380477840977615030146797204624513540868831049188719741798937693339943568596276507776649615931524093905793111518151866513485088786834452580607317644434199620295348373221725148086852952999095854708196798117438703098133565559223738967918773721104168099429120705194329290937769448323525383795827118690087773781928447464622146033108182480439631698494790156066951816339717593215736085840943842347381342041781177789416710228115895027669905823597074831111097126486465502108290815318305366799868190254934623968429572818738320111218963246357180043516636316988576154578842333049794466177118883304798348906131555018841909493170626280913799475119540296724489729595894369773001781478548446985987353489839729342315666186929113423463797432172524969725371111349615084855422134893909579674298484468937158156686452907742033681074962821640960838795487333050668963867107975010804721629990233427961314767425894289762574177175248693144891779466272639054185997646370663579252144064049448624843146014098966568739200745738695424111555960681839045042473383866485603895611267647228611537548629855198778103389598567911758757437142429919629876572455698433615556301931089097242697242492541977642368058185987528671491180151727982161941831545183355663491222442937628841902428898059617943777462014084317301052080497884200559491753179993990587631638331671357459363155754466306863204146675561012663163597541239543782744127348768610561055215490361153065400070616310428375694306749032891680206443475532963389366365353946830409014942329727178553352143044074935742962061136680863107118037011314720756786036548195936103873600853572032398519301643217107750707118932158978005282812408446217535990596891437989784072067869146281258812018517420353950390971312413205804989669099252492810412942253321701088772924744789716600874112095722769013502190929689315718291286345806302985838854977627322179918893794925625807907432382333629234338658382041893045686638038057595702193229178413602598883649758555389911285530864856875123114523672952879233427300405673594019190572059359854786879998449004580154413179597745437005753382210239256479885749869207732900112427987929915777934679342433941085540631689038255516585385202790734349228495820892508482688091835433473747375746308213838728052576999374879419723620540825144457066078039370180763867963409481717306071611203242006252271453246348238919444635542351511201220462799775926206192217310288429139464324381949484497559475390876747912463783492629978643798634403597732157094487399454383571108670985932518798509980067452415806603271691933889910273603542496063338819533166554157927269529972893052026150987776632132664118126852203312662798553850083904443780409255361302319052237011375692159097636370019196442418375035908662383476100034760155292635421271722973931530423981578153935699616217627302365397813641175316110702493590837655269985279697604025600725591541502163795801911490024396084209136553676435536207592335233382786663988608017363842549825732317691221074239487840030999444202232501889844613671312715038419120926735959157937857836081879289782793308813168460355387436525660276257326125268410149858674279637607423097719071497284089638435616797545637274258764310536784205236308082982809086894847958784443183056924642237587345360451178112639827238553830455892908624850048718635057155870089019842932253140473176547896894648790933910711921930597617471637949302492209132055270607897888660364897403226621452298074494603899471570152094297567478166964503534009417126201154336462711486118988150251226232486920001039150717872833187583645243047923572277906523534878444086850242611320326939760645388746282578305732263122917023493194431191446131124324917026529753097281966147407508621405047911226415791188314839538317427902885232546161039426982956596268480696370118783424553404429076770862336471177060633320909738418230606228457969248402753667074248449013445911216648824325427990141722553861425523369037057689073378758494520512057306409390891446766418966137718083760248530950587090071332500571487959950585188952165582665217980297485987117865435666968288784584315546997636523048322713957417465214114641828611091156625492975895803583634023520497111235345229829663801396334603096970465738465680971468347635562709455193903816858974277509654151162139242644458628313778883966989236014140352537996127115620433773701854821769010432950550031734455186060945433854087802071702772549454855871584367873909528905981527843307789297801030540775829343900519251510095259252208854012999695305467265826793888591558823290930906660883032634745766459671407802440525092487593485506627328768433825030142137083366510703525790748661634059128371758801855664597456449582116774758877301156666314003369457317944507729363199208452808240740069695724811050889131393713404636763673734783786659990351853076883171095277286794349963602982135524580296150328783595173914583948297437730430586536673231196667609944409040501676139737037105813024587118850440129282344030324397992987889103110156033519849783967501528299837797620537372156854966448338270277638232282522062763697223532862593173357966685265354601001615031640220711454769597813241845209970352746213403132394676059566034265463907634499822772412948613498423986027575046099677104427165070182072501599786542553266550816515520663499126708196355313965969456665801089751268027135912397312342302392484207054143540321163695151616220598585185163501181689298221627650118820731552935129261147098390516190888212619845511161526728056598982227560574525237739776038728333725951258646214926465152585689760092590050927663108311920257994682499202465183040051479051293958977030394662105764906020711375420825217479362752440433540262953522619520356972552502910200822755536761202038508271843080403999962099480386808717725071908545076565996325753130701157658095022198456180922605801898005858135089519757338436527805879485315588234173324166550862558759453819026259579668724245096469915497054753135284238276827902878664129995050100035707047369964887356994755980402753180752065679052842480299669724358042188413303994421410226731409643559784761439476932222146841767158035600497590601145609296254525225705012115333025719709426959226990520755950723394429172511834700225907927265339779892537681724762464156109775780589038325686925086954789474734130782156416548526729610833446439590207139027513196627412680512406250494073509303869977922262648024023565952337214231858191043532670147579331952340903236556132153300575605577217433853983475584295796581458943993534315191386366009561502986753256964367352178712703268594297687995915614148005953023028478081918926261865224569601997194665478341259157760875242747780571444898181013403004774553535945015651277672237001111940850579770968212367767666746130978783965585182694052755691496587542196151959606405313361140616643532781417615301561533757242145405140539615888468088689535962027145055273390649280037315828860566787212259911002120441793428101156776698841715470837088655548463444946071555659409894210356143183834437221072443691965547307819341991742895751410388172739098663404135753327671515213162683919809305905118046196707575677882466216880601296452382811043293196340709122699688558294626853781688442779532511880327969511611318332048625670074987887505567231624783249945917526004675231945019175685581358712478564862696423619699258426919405680813411771665053982548141293420760329819922810902847074094426061116557191468739683703341762314283509606037759105670147089722796551852723911351747047158677960608485168197821956165290817058409752958357224587970164378166297570862252408450913942272750504698225406447795283282076996610321775519889821116890257855071515978025090284019478543055744478700797579018250835471792370113204548362562503533201771711989662513588853419059618553962341390842899393113524292331932852199242092992451280045539062874590543186305655658040510846961985234034264298130217184351300681499570111963748646870244312941873095377928193208712879846191187581696067731714542215276495049107747565259319894506682902849745251195987050364111240580342777418536774887819168606053690803930267772004381501277591193949786332175996990541023030710231860999346653084428610884438330509245413601083684294163232553305495464357081926334392762352616946210727098979648682619684861809765630854266524097474456517352672464409364020884811387548851288259888881272177254225807033632187943196075469781952823227213232933472791787513258922183691602278598691660462806818288734299606796554903831232635294656578956687638916518921916811769093612233344375346719630447192039567788417061580278557576553880864023684974681112717105546199571103854671360042446617983041309228793361541076819254455723947614963497994951516884901128886992250552892961582310067631542512601193576100256549312088527406354638642111269808788163680476496760811234110765065179795353524503265321691288598812974979437058761839186842701042466340189298658077668218672428021882519495084043577800405004458387876862946068186466177031206316457590034873140446242842395714871745165061318686873440556059302040248487578910956848498402624689691785393287811705150515295986491995065615754742045240063484541573861225717959204274535868594823372786063680854725975295263255236632943511270382343150250965235582823860912541251885465537356207747180262330563177224159651975045717084416565359176752253912120682906149765315595113650364251707152007507253884469978246791698465760575086079509798675095917369726694184117654871505068208812294611091751595831002450655613001715207418776969726312634259712384071349919900613202026429572715871575304626683475229464886222101677484938401036642310337358647235798765405874997408595088921044652985020834570729168397771701297073919554852505753435523485555199432706598602413029639990928094501950049264494168304092292590110781152505229946930034289368072656357336540995900169646530031171907161727496322874360373224837730309457163898679638723897760577940498903918903026907668091328587592361225957676127179971807123056106098721044753924659982589681930733068685709462522737664347622207751701972238701618199979171483998014260702764229974979109792264669330173856216860240883156199177245337597614431973221870558754298637266084728297729167425824199216652946487190819088830986046782210464011246115596482469181936222059011163431510125483991418866637167089198424193463984917700579544962168633935361236693097715835584413671516565123054714962156947132655977910836228701021007081787528582704439688054899184511682307246705675613785841222735928121661894749776274073960725621552444904540277186000653807939840408238283010398768106760968736824048505430999381008612902542463921199235151031907128819002325980106575748001421519199085389167033814409899621223268086211126002087187289060605940130364926613709494845721706585491062106514122254399982506643248856084846815613708856549146170536473154304911296195053601512164029043212843400390053765644490915085636191112479968724035732884126523779911404881129003067551798125809702365284267782645082455890378427397966243169362398858081542965409671326069428130311158786271676825889001463546736248998045653478154084872739210570749762550113847590003565150649674430598821019985196575212842530526971178246163691563459842305397094860644960320547816492566266372298534903699895640021816866035960920302371891681082113979468155519316924633755855619661922446996332831121242434145513686010398176416768763364963170081928233289557266783882699775928669017397388814123272187274202519187983212450459310902353505612772859946857091661999452287759020988770628563642041445429366541979294167271684535368550639470570499305688853805347186249917153787022123776928486365409469369512226801122534393744698923348634078955742406432675818525166420311932200626869702386556933084397524066007089824724145395636351521755210803102692618407916633707149729671653392666286676722105140799788831166118510306429554561923092461919938739605336961336290118983923785911578789874150227194232063488821740346491300919781145102141210854757494053812927593485074767890980159035769626061637587285168901867692060407541911853259230370558385384951781478776708829489336929360674038680202457840596971355991695417137881967736339387106641119108036996841853130421329162064085602769571754938924990846695530903586040646403674297821584478786660974714731138967933741323697216582710669901363125404428272993557569664908765325955726545079637586681035889826613751834331435645165697407785854805312486819909513127522454891870569011777610474144679003889862879928468611265491729473624055109685943986637746369323847290629167933632887629202751860070037686513225792205091644501141672476834210653781556869477063005034949336750554243766526568254533085229887078449896130850913082195550346962219891760174975326587967048847642675578568734567693930952838848285444789344822011724941719093103474439444624957211843789645160819048546553936920960746479488600998768570515525202035647106485596692680826453714557205344070187235106288806476667856181555405514273871518908312320356835074620769808079397203098101407932950725598895918133478592854283814186788209958013170747862179418872972155036827019321406833737265752461969977405952782549249729632408069580075338752464975882622491742504615481130061015066322051414141111599673911099199111625122685196843761460960192877712961481929686796847609500553081744494950257775754056826741966531318088712752764476162640739707613746901532533428152116958558588266100331035548266115663476101295779050714265657048089023481254918112360105955321644376367244600576279458483397631997256807877485251233261110054977696774612371676696559417774489550541103297023122759434052218849673458771200549698727000825648330966350462360142819565885674553246707587867054573906457965862542461667287832919903758378098322056349732034166174895702225198027037480673307700100099911464818079065070492606112834479532240725979777098496724790510746488003267407951113874328901621896098168792327939738931455670546936996787211350032379234230711440551186741868007150687756118710665888351342273138206084913090802730247608337432868874817406632778836740944330295866849936658780580549368162844024674559324514650021446593173721614287642225058788866290079060520561860978309324028101995442268199295397881081185256941160421251892848915151042106510058777120503538015364605011455587969746429442569368589528657476291582675349283135799207487454233375295328984124970774501064549937703970980709890528556282754121688237618719358970455705114084721525801214263445827838711839750343952429896059483223697758154242251753210008649805032289816607724137202347264246922499780347611897186833260031247160807065296749789149949652017252713800705064056154578030709941503107602248458063871998205694234240652208575648982330765406521167951298951998127003946873301274843462976686543156524467275906545578277730084149953550157082535141466144168360724970277535131737289803775055858916929692367304194694414579154916968517493216028502371987901211051143460597662282416701834893801847333886623229148423024436432036464613198379773921828907538582181951417248147627113159132864101181996461581525901854335433999687307266418066662946135507928047845900636848630111461093802598488686296487042784827984934018063143540163181692946456472102452352662592653676937498231130165789212902998321723477439305508454110600703034233277706869698928392463192010287153788620916389366994432900889814850326469174194754740780287951873105126095640722524129371710517521657502813922302190748716726260005360420281762079118754054105587009002590135728556412857804346150682476304975693827685127904839879030628431520722395024260447897343687784813340970452099093037564337029086343328060486758300757626569194248681468944863350912430312522702592568024361100924609747464102009706371165424470227816215965949621545928347641758790220071021932127653237273650394811956838731595558805914953251650839857927902531180222949786255674032380662921404037672840719436524585073620698905921590304391452634722733559442188678309749668152777588395446595261586720355359830541000499172652750692263979694391385860468067431685392367109410754167370047792460635569943798229713419085850833432749098505782037931132299142456961955910767512573819943909853409082778888742601214875515457777889869657485056527120660497714826211476349332979574340363103320677781681298421486052528810106422934051737033024233198172114908869304496712481350660252432941865279868144070157808909972443372455232959292875860465765490716722863314148841720030902596536991932397006519597920128240656471267501755643443542027054311184038537621135314298236687613930313104733431758497683792090190073340080746006065544935807432856918522984239927877585046218293281357157777363624798712002943987051747904897094748009305846042891704047229428504777563726932908778618590460109755859128999237805259699850558110234412560023077300617892001803022950093604966878300241672692731020090135322479882051175326450992273415284958350053382970370455658780674515774509361343249350356074976233345532676656302635173642066221690100444891107771576876261647845727582277123952178443113098616272647740180339252593293252868731461305696655455418365248031943619843145419053784318393265105457305115254931586254543999146257527328195559063837381729363176100886357013784396835248331847333063954795268111479549602033734332331544828859179303653448136230829299349218983533800142186183168221132235707090078927151485118229174504483693283082731530172251122236242728532505628174662033487953273687104560858170931171846769830237383307508417084208164267455314570972345238236718085007025099919882477121061207613736089714074930007503976060945381091471544924909592029076755852721326532868445202099352132945259861539826269337224246710233370333624449419806831376111757722813834766220815152551685541881565038403024241010629234543654319621681075847048837540439788872391864275303874135531947530895253153117765597883641508162915553541067014703064061371851221465751407572539979403435933305260057640259979221129299281930779335024398850256430874552112876082687963823359855279616822307953252669874944246027335334752496660047440608963549713672244022636976003574002953744656979339320028949065558401591871288614508346879466634195913920440736136622350725486211913235779294778090612999052082238265889779458472688530445058301913445251809619556772576336153950410375829484433828553544905985635279702795264227032348769362560769509251948786044963309790294524210700927599238666734147310910233865757425787884910558696736171844203962854627372086613643306392053638504200933274126792114485271871676704017519750275290131056199678817991829096666494022169023462232021215593658723468026317893713556271718109824306618969206254783252624133580438943865993467340775724820599214676655789501798402663343896997802009349005598848968666210707484388590824939902234875939857624733666817807265760903288491099025901640158234176926151702652274783910938083115309224042242240765625308148962580074002752959382597124266018343543396716081285170394436386947111957885743732517286723688831190679514288324710552881710990965268607816872324001248498811797893713401829864363071039534383554565763669608369744431717625624532409850049741290460233209000477628695135284580993420125977177097619734663398163348112901672640075001914520637929391554509545983495080634552854893564111179500231731269965502960381208178324573396288682220137078894778939897725988193649254565774773482757255509842946447721769740017707230758917130303461258816907105613473300978055990697272767711449601242217478885518059581614148845670989483931838374922501916642353136185093110194719794648019809733098781093878466358875943268558463004943905561701545086644759058630830345491236933877811645885260920040040597983378580185435767811153158575358433533764275557923206234504772072038436765610566871556836883720793512991475254146169977452119130016569562378534625928295013672711448208003481499730168574095525242235489438860819624763233953731717328894687068235194830204352865859365007947482809105569826473124742584309519540649690590292538096522157696667809753804498309878811666454894777872342913506041558603869918077675308249283024449815961482702395703752140849200894255433135806975761976400608778504327318852421125351862397186822736554549946775172831205375640930241805731607339738878410112034977685074370238794155621992428969541336033931519747615423096272664075570609116361339925613877101275289966164669712590693118371653867801169351895900799740839549357632395337578066766071556936146455653784378666732794950535821148547140462407474505773741889469244267989113004244896869169527296685323646733198506148613462303583468165210946756485758868729189566337970388827097206575979790789041534776785579913891428265282395043730450712818891118077639680927758810738532044511373296442642728109223779261863841966730779400865651016262004310162615657799463436937332090936049785359652867148524934090693504929889554234223726702743260008957961432327889129703342908610573572112525846808949335339656648469833885413554355553360751009641815718391607507663153154199317310889754848835131330134289827385534520367843454172199933918632764702153563621308077590976511612748771915761551200580510958011568202050945585084864955617993606626985493031612428939780581488467094817587871694686914990075737681164071662291344693132583259481550582674487673974529992823258951535743217193873556556251912594270454429436157369204380195223581579918267408194505778134256643433428883712773386638949841408813394098363573642100189658353731690431709631215880132633634018634502779590294264610651230192130787819248404108023054185070619251118223997311945602586835600355831247849753010888815535800732887157697809238156125756383385482145370475889137427340928830879011848439041598323002760100682918786027813028251540180933035758220961544289099484002292798616627942031619108693825556102648850721698523935659752116206063728690019398469039241217203783530456819723870165301454196686014386458970267591902293631363393243899917376927951021560408849008231193142319300989192520956545357065712159580146019808599063086043762482212953136504589289426927885713039222340766895781390903749799931514024906975563698816904167013284558431209601711806111976410281944226031471684145515763817078625954074221659624606202473568248595451209565447983448327647252174833525459242200986085123760275068753277028478169507582689852312925222422732385692422157884174847683820602524198459547961666562026514505633308401319738149362094932484159177201864056963500534270547997387835143137558975010438759296277576128959052448392249754575529960765084566399034734071137101553701086465267451463313389038433660815266736095527046752758382973653976549895368407972119582506374025856684072773445986770231168431111527284814660647389236490683219996633332847691304314651098734042509223155880439644176366959652321911931875826788799759794803073333683101277508095103183482976141569406757254485070293318162682669334106781186639724209721583871592355749766682692236347872643320954340497677359703687617392318570640630222915493592666995599013186313302823610330361205820941674901144857894159560405106747121810184015134643662522330824949855178200124554455543497799525766367530475845208545561183363300873932191708308299318556296628142982592413154018888907762903738323989126022863995104006358165566882795516472555234252828190040174809333174838008008343446194591762884749176751848429992310686029591944592461122612702127034996570330273586733163516843604767679494815805179006131589708349942315231848290744467029794727524361879629670339082497172691551677774645070627449192268704321211504145745892905536653177695657785172613973386527788526880154719058596061512930133492609238672903415892224067390422576533550588011604865219399130772463544646095001839731413699163859876183470848959702670401438824292497575831318455905521985106455859430044258358220495014489712278997477241029135865059887352882649209603931670377096459465042191836270962474483031443174938319832008833424390631250801638488751564117922035677462645777570836320985904587120316439145282831269486991894443517117772412577855264654207466443195651408489581411341810348970694885194506593130762444791303239296514725677995530455180926387183997218844934521411892467424436787124321419318183974736369905818320420590857205193728858675342821559196185937522209036107413366028731342509846049754299913939484397494003328430043645547900904650671973945392250046170746680481275728969164857902695434653928046023567951942749118959583848852598333368652251540974030751180399560926270402310979921771928731616700068476436210408602648299770969648443435601157888284575061102025697666061927890113753526354784587939765867545297204249543116512707597632853046369598756423637857839645922597955379605751446378319516402553596824611850105293967086926399340886433459183291351126806365240341451554916661756088323970638083808667656858957382155744393992121436052901418095268927957666101052213448023079419501388741211012898478755700443451748659339018628773352842650818303499137350553563810023135362855050227178444377229555183593586521911081410473193971188849808838935087321908420188597821359484501691123561752900462173340457131597623407647262961392302643205411580753294411613514745034418047955529339734366713340074172373662999957743692243516266887801759935225780879167642772470174035465559908733511918455918813699654386812793667744644492299454657185158130435510874312418541867225412857007350715144011359454581749585041810681107993044419558097568336655878205937821249590501281322381068552755450786260558554697851833389334102921588836864575449023498374241732963317212056516778013616899866439853645187583714714008234518141591424138627804499556634920089523277653766279811758909712385192820121951218791009172611839985230163054126136991737855612405581642060038050670168413334397679925562181441509422591450067056856044447266861280780344803720835812043418481071894555681185830563821308958262788086804327335980481950770358166471101217455145121259947308840712427056397842482559734870033652032623034577963180234829948038714731196477519864365504745420285446391835442917666198913820855550077758557767479830995821787954451801607380195780947964073770962494475911607998962153906114270036587154510441916913961540845365852961669818157721586220561973468042932747586217288392966391095779510772854317321972007607648495417547482491802425451442042376664457704829011590163424462969350255151367784536036626237992654055997914409799651114090180091514524536935084665838362160712649753471475529541833154221796542928738079213665768014419183149811765857543739968948512984109429248016253274123660222559272571741418650854463275429417832673623856725571342849699464841546180135188383827548882618167771386320874212345462480921505062898567409943320703898347952496136731002150677311338835439475430193793999716071502900062590335431855139649604088866156236346533323163360272407626690751552128724711346230249947935903169802967632522350184372174756287125229220664417772372946027292362446134070409425351663002261498935185083700303209482424665462315631312792076106226614840673553879862891719460343396678915026261209220108644471898144746892362864757287631678288458744644915014650469152209672329631379153714324178854759581024116657905115704385099464332024763260462304175462322528890367368096628033612188066841678387779204717393893819207536662984646514161082408817784150807747237837189640820886737964907359338315202674534571908528813382893650968134831868347485443353958848831216545805318459238584925309686218550715755283771725720609227224335709671370795188545196656554640686749631734625026034362094789368270108462958678088078693190839893914027009652178382052424061735144440855992293228301951135615863586230534729026547551514567346978721995190454973921784440900174574543402891306531225103044288638091450419948916601058039174407299702336500122404127136480105407256746680051996609562164796498200459367377189070860920908569447306681881082057266625030025962390592113091473148690643289737250046622805759261402458003318027839172409296444660641811236592968380216188135208245449186057946478239379324475342659552142473792701493193289925660425099207343516462837373670891396265139362025145638120247039527067580387371434953788131659504145885821475730610786205720643474016694667315555742084231121797833040529324142183136171198053735753160064214812727639211055821503220043676033500114947596351049710492586008939074357440207521747382214137445491386458926958684908958550231287987026220263069688083642719510815613201926253742683630054365548749417251190123394584298890449132450525784793081345844604766374408272699231478863744848594401615454458685456762059311964808568073711359921589579998342323216518029228956792982862340134665849988332149930099212748133031452168763665054455537303371104021430752568942914656954687146461102251316732123450516661378857026801594740664215967527290908355067308115590569615282707482147875794399491948668319260869131240750395913742407369249828269103117544025223221656020962914748308831418783605809085494977505327425335034689475787223062236270705108619392212396014035345396839400061079434850353321664248523356118272527141089147020690761789301573023612467175940739247849175316824747101375670452337926243326105852849129105594710832163701986726506696617065170486820243623446539018828299571188427930434693982470049438353483883099323493106307790288423292577555323538223325436182472016741254693780271932638119103341841400644773694871438618789793491755730081647372927855802322079105154380669144804639640166875263454586176714971039502511618263057206602473531215482257775318285149950673189094797431165680083931188382983393745212993753795721073957752280211071030480880940137116768588877393619867154200325088092627073581516816332322798261488135539714534607113034729836540996720001441388334938455221239789639810884928522757506506343526719538709501198077821184004059387042646825762687055414512062244114987665172778962780973915922672246193658817887511379326758206647586526635561577745948990547538184459971729733398844991051109988669988876411562721866662244221227399924574694410940044053944116927197569076742728589584884511700306324522674073256005265511198285173079157172291808405965387035841721544579258485423489434224848218079604516423906608595890196084363770655641269302442654311658358071560744374854241860352004762778198796421087912976023919722783372039726354925143951546236919011173790331742885221674865717130087863124846661610174284004421842580955912748772247280114339296890838101128561352013452689797315932428103650535533499921418231622977187508017966150038827265117214200870021942413756409300936736732209455784468936459873913961709151148427502714517652739218154095610662107089811199337819632725018510176800904599816912813868742005277805849856202444179820015632178518658641069156778749666919875995118829054703543230791478133305910830620683367926770416541977476889934114339702843089162004104160076194474462004357026954591823974391484979443187576871408159968211333566158568638113493216785357151230227894599316596222029169495162061597255208673812382935966962839036809412920493777934557498593281796996273135539846440230942693692629879308333055831010300029411055632672382124865068917749526502116509451630712028220116754876651178037925304106918259750553793082018489837700865911391056123080510373344762609995324142479301332211969380435366513370336603324448752826577315890960683760730638130876011222854630591375682296388562235919024507933834686259236079073065649137977154413942787387478541613797426253552344212860905013514430384674680523611081922053905991635654919675885618246976140118939711562612065371170870262775437526260999694334362725415921379076008971379424315340989956015638891892188879553132692355787566433419174923260043117395634301832615407676731553332555902932334685503093283270745576163088506207481766662991806693441121549827734446817875228874063759740634939218529892201284823349568856998185900386598509589725668107249462345002729094963823687637554310592116370778785695482513775025849628434359675104901344516859977104299502349628546471094199895600726538218419160255132614916038350395211514324326023371369584560618204137559145494780302851250884162414249690451790740630678077195862243932374674610601774209872220779270785054134437840865412114078533167549975561835811072337906159873393756161948303340315632413103411960190972953735099942680509055373793671432755102583307890618742432536014402111020070789223953515213304081019906821246652992330907357830841160869510963869003391973636590120568029663311021623942737891367669061114144956747874428628090307450004344487003190772682703147436852418982666936504132404859682980601432037034310054349017865591630402653900751162668800591114574750873401771906635327098031677549390255449083375117212006801508594634611752903689658989048932046214353622150228189889272678223089467491292870659509884305967645916379158873556356937188635189339459535058394016038602311110310822222566356504594609705584929792963287322838442225428406248121654864473281412035363183730068811410257996394477481147440991964750580272420014051851727114060276730098499285749859830198677393826432872428885377724034073256511199269773377912110698979702974206363576331254441246864131369094717412524070327517322453231037929982896046192264315693699677304337090409091903640831802237991033698113948203393204942840586038640217124773789501677259268583718046626337683579993095221805297170040722706213688547160399507053349215916368147679230896156425051175554019377050948982253837938329128599972469778197248987959720674982243600565944194252831397914181169055776603513312615446541974267754278736351452454990955007207621440936784547587010115578560739198350889307178205680348316888065763012892073155679683986241088899835390189519231800618984155911836229201483375748060593387424158483070141212108275936675827421457084507901940817666678274843569555215526290332401632983017966123476185831366595810241894000229073438201325530674827352521358487195107350596918408723389797092650260780078131196702192193772001985211452963351692700078283483303445772054067661252040036830829593348919013288420642295166235064155932716045655890019348970096723481220227506468652162797907892130943091696941899249043686931035465253379855344348945855296216474898053837355767177566445822929282800988594472489165843046079947583274811653508082175614802541353119506515316185099591397285844670024850566114932575937978597052244867368014875155005326452477022598985303053640592690342616239703524640145736846134969550711801930635241813222174425562282099284901890371184217162571565092252083013025396915701078204836054237468016281500399564359245645635161794978840049877472821945393901334057051819075782338031899319934232516316848816945247968222955742059064764365583252268729454684979412528707856981005975879199612647552817675962097098409391706773198338640078778844938679182590439268014734637926796876145252669717896983973612880087271261915771646782942468934433999266832932745994551243282079561875547393410334220827069896059943357017423805591287670258732870816125583275145019770937013943289141238283213167713451905706821942707330314353697096277767338552324863456977265486086446043599203268282400943947124610800485178150496370114621383330703542043144350495313131662749492547962884439536902885062138501431757714243136773262484037796584224094594772984769347290921079961390719504443016104298499625049108525348080171957399360094777425177550423242639109874971761665430540584408189918224098250918465652633267922315843906030292897233435647838928167936755313559438988625755110234149774497246203283532189145072725387392021534156236121660431219216920188045109631825325295011489616364238120938579452293497604950011830537240851608074690481459451184894422537568070439023129011636549142507330612068178443860289260742004143628794365555381512194120549345951056040586860837858443331512270401307840237173000203010571938515809342113520119019486733239568426170912980128281293173335835929275161192409739683110235233755591809430403212883316023790283290329347953733421654244707541694618501274770202087649268256118695483247654500594747258622620088007534186465514048529669496920331687416071957832098139104723810737249798038814208972520793855366327255691504520813258956551920097018373505247031396676148193926273881317758714984632478839764639529453693950554983166098007628245228315898791469258695463780190353091956699813578404450725027034463028579275763879734516105288123285540289867133469302182087886385882395757634965695752814547288492526834305716613193532237158900614909840142288602321001287504586341829641135693381413229411410250480420941601366445530545987317835342452102127031216252961932243656664739693506471388855063918055573925260488413705721777159982699654416734221789585749839345815402122678447882096695632215116500428534071579402381911200648799465271413816312497327807746763426090304693229213551250076837915347840189837883214054362439718794457415634576881058557305667299840015949963188225985136943526204332689861081379095112653403841161926268703994435011411302837587235778900692245426400803867749059154551965925689474769655724245934629911601186276035362879786930139664786243222506430827982002115980385110389245053249780937869161482594393413709858023535583871035740549129374969030208482255436668340491504723384256890774706635878868111791716873648247301120523812860683228175819481797804264601282758707465818152139879460024667458492060654578406546333814051894275043546671205977000686064387114782414645916034731843303324539814903716757530900519232132612084410220738783059024966861292891877014385589091927151027547718107818848793682992083238199290353782312987306417963595374034122322425194019722356739525481463990113526438368633308360515918209201246481207115059788471313021645228230622686620612399116206540610884508660559341855715331339859588188240723132135820581005908830342800045711189101853520906317502704151486378689995612370793033052579563160846181546109336118309234975655828226827183363064281600724739431999429792912211392540625095836129334053888851752861175077813134805990549567395625882837785524849011067466172312020328921029162315778806151848450174650256402736119991456580277682225610178714022568224964284538065726953404621180101039287500841492467074651098140459066306249865322454040796744355921180043409605264577795768680732005263543827519738550612309754670153248311525047841577354129736333841540954229816531412103695534455335683372386611282866056342673996319112194540080835646123895841072905598294190662998236336690467347190951543068699116910776181318893437816430725093897932413816673994354681463767668406304478656907444512771239788485789550248410811042073154514237399271789041729883834857078566121978424103061326607660141045624466742898366484865941667569512536579391206751935785578503960326887605531492501709727610010918068912003663720037976183688925599833722319021086590974974953194047956339589083459938510241620776891700774226870415769535998518945570392215108510131811227867711060311368322335048859491774017572492513998541072185985432363109797152618612650584894823628585777725848319637658907240282326095758714806451378017990380427396380918995242151377773283084394947162734698706289303951134410683406550651882644587528353110446275340916074501240923577868769530103245730543638397276162389844499102215011723571331231758465929666222214730797741115076455033737227909719641635921518780171089895856864723253738756712645653259511215711022516380397533225848658141272810135199063543115114151520092643232288429879804121157443411360763350590198415677778193735823756356687274489372647976056123650361405734605809613371441967270958747829849767494850958604468780947104142862956540477620725857015666825811994070355988057556200395331047561974788328180915978563724488381729848597411138998302848273085862642637030987042531156812792024706772975676222815819109231685065726383601388122399314147778990227691199579628683841684593134231626299082177052221811975348774512868206433963922757604545562411071279951039781939156105408753818088996604871237207005106558958839497253515575848176574008381037085973626395049437926279636172305582320512434621634700225985581531087479107802681031947813009731510442958830773430018963416543621652450191690283805666055074701145391148258989910046274595362305921856281324358647488942856644515635490774289703450244026988008579179682614819046070402536478020394613006026275714525288824091226249500877156154224990196573702612057383087431572928990170966877335431321437365734260210842918698279715439317922032174013402572360232370500699588866808438354939812839684733298056162742866734113626947341983896902587593193338891444986259901697299352516243385945773314181865820960671086858300621046442197405714383055912062946714062891901268891656256812703799085141407688153754782879850281104711415939747355403049145781560249147954926514239729345359872045852663054057103576700396993322981435751315687303666352414548686379275253199690968181510897587288684979269319423313600277894033889134583812524538725168427250847181456844008202340349125948659418533466891519930892378863057805927018465272224541806627590261286775446540341240975532745019072887479127097317108844503985557897156026539492150079313287784765042545994982530674347598594258435661814014541508553217400847791649913394818748427624023035222894720508398045215646102393260082172436720477628681250677601319127934278299644719158687139056893913828294072785575366384531908010818949899522232046458155622439488053433938710936538000496588553642163658074460228194207147923606476813443608505987887615618924086649077484880796047669336160853484374260020901324669457542843623911417092085278840027328428232299917841043624185406641355981537093539568800861881989718190872803566171724718817455958962983563623851129051884338031032661979523176764752640847985120919856216222514795558124474851826329714436147368953947302254037673845077460716722664886774647217036940560472261475323140302538463018697581573311784798066114642952920667767201702641894793031832153466534050372764090623921237095336295985140188433980547277149001849177960169654181575259186926924718336433708186098774687042065963768707340534585396230393108642470830041044290098295450900762607129725589392548639395080056271327273008671731557341603635946336860741189613622380795923771628720405121190935269839007177006001460242646721817263963587131073176735187754855649698410944056225111851583073092285328430781639362678142386729571335239778375887798265757070557712785084423781767786983582097945430807317827780266564523862549570930581422995946918245312049050095788637194641955930025337087727469813910969047089539329732702934668675548874064239170171785813293485882041715692642240111315964288023739941784745480785437015309223141023691587989331662074326533501849955065067738276745934189916742053080953250040571928462938499549462583776190170074289118701857640170487769845302600901241418072410706493110908318725233856489361016490416379430622431587557581466747143463983951475400063408714655277738781233216150272390258202647751170983764456890831615852315766023275199538927893211800053968062143055642451071674545172716736543271720756398945140113832606982441127522997487321307002104481084333876977125070582125442127589507471486009799230743405597064570312242119648772138698606536929004886330536302665430711242078321553522484967292830161295039610751394052745765562245354147480531008889346880344713465239031159230718067892357003545785175307591052696949258331627786696130302636346093701492994555787358987585656545567941119540640870882454609507758904980099167407841172704008319233346384691552432004640136984507972837875088596672043692815400741848522882023418520286248860414674916354530760647830845249927428528922870112389762909788441674679797733576783491658709527607076795102126945519720075262400559183512179701457214920179743553142136099476571792730392691222286209345329446702890141892237898282959675271205929714493025311361801177832732001763717503029802737514118420715469482746869407286785392039567766616680812646756116649960194041331586285437098981697941431792451952458430572163081886006265412252222186032131122774257119701159437309154158193151524144555338384403181308704100013458112999557151691748892644838743412600427555838452693382322642381972595690420212263870048966476276789506728679551805566424020856860822766049768906471327306838454657919683457859732880113165018175666010186419248046449068618117820331766707404480155860416156913897629609185392404054522045155102200331218582964737019999212057130511652211966761251755304658120938060969699329370954775523923480977062522603750396593709099560704078536794682106125445617986493935831511109843622253633581281945149859300142876502213149030209164541124309936898039272889255065334525353370851218881817185798749867549799491385996216841216144906216590261528395607053089878894740402752327234233730633285035205784144929389544689856306636599863606024262190253654251721658854500192982323282345867717156680629780710187417009627354342492856184574096613480205901324348951163418315641183503625464830351640736837199745852904217837341811521040340714610257787913423795733345981635176760105332860008678489609815347304966222060121413227830037391593791578732970619473438555475607348936184273253693007530575560892125928400250259743271602909630057442370789612881574175350662023500247736332026732455482380200516232513532249387490198118757748266782103989754534084465520760598517510412367438566601677266647123444748120441512469793984220609004210387472673880146833980295673028406585583631087118538753887722521056703115584094678870956196767693470309902837905583734153909059731695989358577519118989513409457950034166434586213637320241219121649109325081811070052106167099117869107814842871838963577508530173800040416586538479241211960120108714580438747344713384755135884183677567019281522043646871523601029423305177935091508399230133247599300326441734068025015498452304994227602409296091159223871559534843828747462044931257456994988980839276403265886749951077964887839770038528294818618511393632190094226572789645790883936867461682973702299962927563104646089191550383478153609347883623332731467455346347638849805692893417209869410646729771558868460817476746370362733435182554602668653091432504080707843819056201351969945247640064279096329383135578808385744195976688555587184425730410333054268106816117194472911939129793843462115954556291875472778167950535339089563435043824417919819358085266439554651406913112030677222192870975552528788732310054768879912411642046225731856661241366250836687772647348587997358046596474468625434265653607594018864165176619018665580370281603523940236007403139347983288120648273115764324548826542975143277175857627674455811091852016960543778401831846063378343879680093926178789211870511409582701543861025203486656629800490379045105177267553327901918917557225318137475112982987651732342279683556997488132075183933860214336944744724730185498761967019723901495166446789284723946501929905921129853121942087323557850775882805573559640620437039150304726886235791647613373023478321975442898144610501703006778656224964411033322787791878479140830589944222609209727042532014509416287983665137465472187305064035664787081600993316673378195769549575735037820446585557844328800458101418013672338435551464840635533742592847107475471163397427013685245682676652823576987049153181110817101038268768026351577449734500671765673826017911562265555401556571844957900185340541620639427731888273606394461001189104850441969361978654645074900999040207146543695801028893590880846880087389180139385576018443116569817668759203567465011809572337151769109999265715193355489447397887403697915374113381437304802628122748887873123827870777656108622826817607265175000391909679153679519782910736190746307988503764159368766681264718848149676107588454522391724595352769761292957941173916289929203286798088022632172944698535169922566546671155069929149637372263176316043717792400038773375672601274561895248854476777538367207940890931847784337335936256973799133689473229377558553373072873537228365813487172598921550173679012103243662176021185547656560530479649100819993469904313319427797529494466490908315267731148012380477657086429897943516880942683619432859394711051389749143937810382120559237914823754387515940652671996113784439738137652236933902652601036611007033472207596204353423032982529758400699739314979222315681078842389694621654361695757895788370529539229070714683211617865403392998987800343123577806065377381342798837202487494948972488876297526111882049210531092395217470325999425638290633288678161709695206462926141514492482413630008494451668495531119677846167102223106070503680386811791317034601933937079068485644398399634322953091841212086563320330889290247421527652112694248028868756363624888724440534697369082335286650676756210688707703285674055971407255632381210967369102707588856290902559016243680787264254514938081066786277918663426886175488340256230954712923669671989448487060763628435083005755719595765142811849652296760957975105102630361437411435384146366964712418458207816258506428904946894705280916413373227089871149606023064414813164258246236402735089039447759075918001825353316263184533578779143034232295963822926066983140213308894431299150645131139720166002766926135638675442643658783462723222637277501282792818868132365452861411347845212861385281561103303225930659289797106345510698287445319816578557635893937468744004518179211445209986067480533344847244363752506944191387006446201107395238633130970299366597849007752968378503110672426339347531567745434709127400086718131204859563088622182250568495252298428848919977465130521332211209083572964705101784748815248836474906251757109162742251902598912143162536367617821249265796095164968301676543696302087661690142150099923014053329470049175511582973966848381898771048949472739502297162075521414372800619743838939284278764159078845828738311214306949036881811855809920457325997341603880405800024798694846644139380822973824074911838102076241047761227454079779608754229271384427335414315949499609520886306881852911930231771082533610671228058195943285069286408605299828293862536964707556833557880879060768412392839448314197573069135536541011293964720686688130179827113021632263987574053956698858132921755135296509996837621591474279407249349196019872968543294016432953717581552526736870408428857587503135132749616291706235519568542261246660432035024832531557331580029051573592993700803068414153452376932619164050959703902036678854466282012659010340827436567493867345707450649860375614590336717620662848086947879504355386716320932336491850379793334193300863520514599071555070733724591264895492681573804112759831468754468291644651779239605518365131036089527029431232236186699293826029624941420806330480464450597020309703604335862894319802678142339874672047377637056675560218918700707731241970906506004216173334628856042719539345534391442071481412344679433165766968807863573834508480132962810348892848367231138255800125388601143588349381218312173005040079738793414732524473164765577811115747405765431971203351019096219677003112271604433962723967712143238376199955635606228382706178461150420557228674124015592203902434977649330602522221863889966042952614792267626717052363765659683459817699207474299298270085156128547724229687255048611509969907037686984942925567126412906629034726186767602565139301531434736141413522527930168413711002604840603947361678428274353865478301395511122476919122067467444619525391224480733914182993087094509309248481598266682392360207048649890592079261159734383719764821441210580479235258314676186226322501678459786517826948860982850529844768270718685422903695071955673007695074886244396857970422130289409423682923796251002045134174101021480605487732034821250814623164246017668806559933139624514977518418875639678200441965140246659982765817757984187451603068318621038220372147666829236302042856967783763690279050692453065845968184598179387472092725068872642347992662378507786908040662124630690855419069819962834782622973354684117718537148461109301171972624387169689149807440343586893924934277041478157124480444789856220953437607531333184619253642595919677563973855161017570781610077893337407883676310184993104316529783624742014409925155974499628589435666973935047421847498255229927854431813682213541646047020670943906255688039640793288645583021378465798556351072807188832199669587076565299628723003319376678730015319391853613015036426622320218031681615246366199784046689314303331977501610191865677006844088583093089111281725296555660226061729863098376830672021835052824044514010058373705084330973795926333558245428839631332562072782006262580602111097307528853741179810320831663589046427944214508975103218847463773804245341083939245579880615299287631141372428793218318776699518491063013868120048205588958994491174508086626228234647415071599792785770332656518137963734691560291166207307751288506277089407124039361557122327708480864059875235344958413904612662489365754443071800292352135995360835435373161021592019244703164095860297221693580678971657944472907880812180144850605772911098840857899608894994801075706159515191103976060263543249170703028453939988938829944768715422830204777292920521244678931148120732113853469867492381811975642419376766051045567365107744852384066390976050137836994085566997064990718256026710447191018760642719031968736328217798680708834513101816193767913800549800013258439245609261068910661183983581212035061885083748756967960317933087008014666210960749611020256744706754675850204181573429067108135770844972193248822238132929029065299869558523168443882280476578589860692188947212557863145143795383583400280703580444294878533656625785635496594213744069335153578944312305255397847323171308668823311002750786219990208665839133634368970824885593322698870811919793996696655388791927473687296660392568812398038826191744284898593810073622086952388598883060650617971023685288665280170189771866302780540720160263015039986021185308247266948394264680376979288594190925062515458461118556679079107511288413830635325585560465566245335712957584743392006483033916493791611518395368248267276947602174864327506721922451797753716262500978804517124867817909820564090078245556501633241777566827591806389342841945683500393773809584056227382391071239786841994348971114184158106986807509745521991684715797718833404914365416498298848962221596220027916520522394049357125147730451700943982754220263224818314014122103375822064240432799219232819800642463686702138669298825856789055340167251824580390135934774969533629975241797610823911994090073945880431833318351326496857014532274046316807687861252249577469028846918932458636250383983780399776586701375655252686938738007827992549125333132805036474022051493648123593643996880594597853347268363543116955294914039808405615217907180633950824902582496571790781701290868727590265879263377676564476665318257794170747163482024694864754174469940439585167782931436644073382170936982421128119849416192969190627997132816676339154323112846577742439744964217877083422033075159382232918110248044461419575735929426981203496835245406845701250184197767266651755643126836656236501800010631836021543620225107637632885842794854160184462623693339856836270368451482678274605155307926706563884315627140733097006714705636192088264915800651205927511867427872570560681684669091284251467359778431064523598847986099705189897993284720795705864619752491188264305403655185669572249886411250433484120649258908555935334984996478673186005936971004062236136943155567099091342739192509340030893405646287002451925644486542900626513244855934914861785720716884705162240369326835911343088285237659886311832493189639909901143638337069747001038625660668548815885420713353809876042243311996918942356820112946516459819912401103024166123860952255133408039470940233606965436879227239038444536287257865448472928500962021460170693802624637398487592524220738413511021568103069969260455709001043632919262844943101632275431462843118111469225711336096650209243020703551086969873274873280653587247538361415196442833585663328346134342088437454368708781315023431826087432526304639596101717546098769018793323433627196031240716108810416184587842469481744609159587126189744510311096675311706973417800962170405733776122189485942294655936227786511649255958386505444665952318032458186437394514535188819877217048724832058663145735258393563462576436934537840046504568752003107544665038413872938388983456782871581702534371885476487036874876138134227481402691930919432503686627541364824476447715353149065108813956981217518330140374819111819225377242828849739041315702331391828772571915003841692370823558179590437701455432222582377058456928834431263071954396994943024254646466343515808655665042120351029172817061167557133651739736201884854500981423430486012765216769915436693489132569949511220677836094888200645427833883361087789635511768542573064163792021375502755822959307015795116425598295755881491280532701618859028995465526462188009921658645721047545993937122701286618714981995274025917961963374741896583172810510902258801723754415501199002983560279886261827501258249391284364761889901775149643448138795529449953540153804590271551413608589367685796579481009008230445444977224002456302056266914088835918398818788293622282776623351454751932931253698660311231790278560127702614676146433349999211587388581749626498478131406080117419103280595888426443385321829257046980519826361117797543045414036656627461738486510791243895685186329998197162787990312101671719831364643455397596090799397510078089935487523152641417073506130305966268368140988141583457373006954044729354975323713290192913808205547304105828087535203846853407405836553061011448813221676491076199509040267704925861993055650940228034634890279833904707386484851004504343962493939710790214537114541530860703943329522194211379975851379613866731331995826451056265269040920689041447883924975684209378213006521402996153066075205498198342331979269662007716080647827651803681771408817896563890458427609377286131406088743241676169613870367414052673164255336874110262083527452738735008714120693833933385952022689016201595716374431871194802647646315105060025265324290521658782939677037685456438498990015846655956607050928093259721345076982194864699015265294749622609678640232958694794899813417634249790681935020723705144662836351401899407368759409764724449662182797015961398654273390446506168877608908889374378260389235308572913782997368111336959320655050189621490813046161484285532491487169985545066602241433437867362752711330518739734274697450860843389938092204727016822303829994503995927391096136857643090729271110795069924471307425666796773245258634978028816563237842335031007095508880358269913447212539198618897449886680136096064059347709765914410026912385124934986311750201704267787747784139575857267515110592007026516398606486287767941665159487647863397974914347061380934208492841387569187035019529638281234144224378215670121858185704275190738166219987823830744949113932257843929867696249568666586180143469270118848176136137768751087062999234207307343135438810481808710587503545679386406550209593605229485768456048056747038756672251964796363164300268465459789544185491239415177644319536959860631258601945551291541365214312362051672747725121912471720505614408410253788833976724721827981602896259444214197805610910199697467708650178760431026646044573751156084507884092776959716083220988397603905357975856755411621086870799496593375904484637259290642388665252056229864723550322928923874389531625712220775929009258347580198647874044087805523800972091715531424979348434265078157686218597546958898248701062614167719881573552337317485583565505740306437487562075714824933139095995047958557576872145858295531683170303577571378859118873463206642698350570272070623883506940998699936444733850632559293354195076053389441749424625880872481816794071600020942910036043742813229947478588238983162493121719832254547544954771606324722889803190076327314577824051977344184269307131612312339758642009820725444254671443839704652262718639477566890632171619028857019298892586524916023968775930807289730665363966065679789248812727353825079143508339540543625293346848035049019769960782338315523849981767161791830051714492508443769241095369124435791764449452187139394757679789111214842463840651494707166208575584994653243797181582419887900395713435365209571407846996661212357361850733102025540045040398473506015015365153922765638003833593058402670287279314083845814525112577667953194380788586246827146640256633028431949109652502148961109460948569916962588821426300299560603766231408503363919246413445930066807034305511402591547554425831106123152846188115583240697238475307375673433963663641570523274949172830348628624926235287348474469066901911322148759785200668428033861148770045135139012465622209308263888508737317644731088117801527642428503781798915898417243560298417301195684910005601007283721301092364259865329703585926908440213307194421567034947307636313057385291883955834775660004563197557482200113902897581425840926777503213011581633529408929774673409757270009051343583098846374491447847184501570067552176280461593874027443841094737977569174619829451637455942950325411201602437119737408319586372276543826975950778733045844284157689734708423880783394994827826510485559181417128185074413745073615439049340816879659300739243129042561814936213192003562130389330932782916331122634062201636880961604410427474650031879951268549231108894021569926520311792855610198911677763858491318505513985752647803990466932020881242095824982041170211240269987114425748322054829459063846813809695239432250898091519863725991109841972418406728140385133048016600606068062320633717002453761318059263287811889898070517125279011318275369760563228712947939320987936707596873049427654886551630672847324025774947878367016003510201586247989581685033161340353556700661274625832051082252925852552053507886998825073310169185091580629942947721202013763408999173350091178597144571828809597114293666199703459087749006220265408647989476762407769745027572890915505785649005996846819545004219632880277478338316563978280969453458200809418259156601521358338481522447651991591173985321269543099539499496423146805398341525248945010495037690337580224267241688233964152250497784000227981292833562297840541151004467748889945124296291406815340739547356719678873424728556056402251631038796864592622106426827526275047294844864340137864782820647984013829056241823399820960018626146637441614217886526183999504368498294181114640282313194955954389488371993859635293347545053592932369690695621787438465733735674814195879624010884813150431916161408927927435561575125497403633341279754552199169197879190827698010790532349201780679918149207693523797750806367493485914661197468489446679816613891488148539262171251922865407785717644769446853439205446642228040589257181607440902737704247297994012890236708764276487741461935277453157510660029155337081668564272474089679678322760736697857242243583452511941298690497649307689009060790902442827230798012525074281828516553172220584627248405499822068161045201010599816916741225724173351577970473205863016974838475677819528484393638301629861785329605396313441701164401938076428924653686945451331698666728269406181318673380858216311523900475166948945834509831196546240143973983895702214503337630348869317628092764792914492062613288062393293224783555288504839064934536638961748229596516708482408546121140957359312607253656103245815971081387611704184630843514477057135344197686634895819646282267497758165236767377535879966899806855233734063478476135571503541149777073762216964604427182853761317779726675482564184779678736871064641819403680911493534172582615253865948605752540247243368665377652104399710645290823882348336547220635960832154375404857248354820861263251736546817883762655285914685110353170079207212109938643881405787747465876921825556969942536887042193310090782002302819544146810154821106685641303096612493060996193562296731897439934748528472824925773198922728531204095044662475860038008275561854734959258010978509997903689189419382641452961545370198138583641578398260922021357418111478305352649985117702873474434648298741826571248118338377678266205222122613250651339210298888845782878908558855562863992825081538664761906423113223177806942887123536723516046479380248635784510689068491742662888581106461741585524398812445987345071987380740166977434435923881577451406528118782923451962468398611164803059680167686104079078828609026601829287477982382870789752481530413303565300817447051326899577581505778118375960215295266610331467202504798750587466029125715276955152181727004701255870515924779144644632032326117945601455865086490086966932069745121938161184230386373829464247039130094379740932525797640097043972193462552972973865356914664515739379130255595474224967426788264101457301867871039748040153574769500495893241537978925782982824025952859614853081269568254618066769870743105439780406742279325395544921310081406549923329290470384521895004150225843103715995143728881229537692286454047851761463434982664007441974869020769717794975401357700316710809482745754568457764684153176703038226036104043252773515282031288748633899491083704529855270911021543979757253015672188171481918481830924105541381077558587326943357267128502412124783274263318709497397709128940712520412924456414834881724652130131541034252883156381664157165764070136864978717863146619284396344287047913477809069344544672023009714961150632285516037608038914668173051569031906835939518289769838479679009024961504507868101352878870426221083299409078850302859314855342685984808345311378106954805809901881842641866870195708430968455762630555514972294983074957767033118362262176361586114952519280464394281948617735271878069533433849222660156655066724023915066120805017208750175817852513879607081968254169373160122491530399159871531045509877527945557934555732071822993327740857633168232375691863499629649578359125151995360520594352428554769524890109717684027041316791337281553982144074429725982576483818351902112487737487515962639009334998406386593170924508441585980143191203864764928033704051058150109530446088577649943240531989999850598244085371465287097121703727182543323406995853867317684412436429132092154685318892187054318875862325684231382743100743023422334713086448468040879819120944480150327347683191218964626615130650894029537926474754362794967081225159814361723731672610185059842963993995121176828547001346108186470513056050495529240617095522934345139804965740188127037114300092320705041720815224155131537303009223109441225936517444684308976894217565451931608499970362976148991855435093710165064897731550131362665117144840198027078663177958904417980539991174114988687968123124020010055876009441985212916013880201340250058189879139671498257196640417034833723950023387562561950629342591858386844621603200141742359012637139249282653721794752011041264873482840811326648679609734487988861721197407433073653641577122395232453218970913221134223770270808475175384960703978886289737887978875460160696579839973915831688007999913111790465571507975760830174503467251239243198043097428623129856047463282313968122854024497676197388824974492316012030481744815531767105658857523040347379171561071525563581651287920349910698300664074681036588331956860247229105851440803534066328111259320910925662929563087374836217792524654094313397173475022357363673177137473458990431400254270864883679459791571280708385825374934817268395490312525578223950010886921394659417705985834553555092765312570009331672378806603661994910556869970865004322308234785496338922861401444839534112749752631706491070310641519040489606845136879190884935807864314633719388886124873449018855395611973541436672377067660730300096671069925341235870884173295451718934686070215360108931896582323254409193231145851932989515195521148474955345563056356765336416136302288599365450217211713299658908867829242504811696465037849878113356937283776927991762231373097890768753781327085373130947084812781161290560881512142902218650842794109810573254738670970128658238186915762511602003259145361378148028169494674861831984120196525259344161867482102092278721709225591627506577649494167406918704240826562610389231901366585292223188403819585777650429105778371712561349625072710658206897717173322492700385683972098406223343950824254149929947749418618458652492326939271659638442340368365133096880235351766132352317653408021543275415153453764339221833180918199417003985750053456557549629777052426704377550678180494679474132599259948021067742172424132576587802335387227450942384049700713326665044024655730816530260668326601320880807747837971452723277891842087826644614970564881554839738416519708218714169014907071640429304842692112809261766071933745953798345456582493626560491135165187863636292363934619522590120261278693680690227901153168766313861095814168752115669860054874807879677630001058226681536584185139338259786802357436153997815205010346969656539759831395830216170723366071227689708202356511522077973172574742508580501361999762439423739409509495232595581687006504627123763853387968487559851025631223157132655285810018768123817944563346714330533195963731077820163433209408532511787726853544931850058831156535555922194172508881983821360042156189366381334811433378525136875958197861550310587193904825768156178002223327865806577548420005357366504320509165411444835658630351470727307674053009242022774266666677609393203770078267893018781064287356124769958867688717044276541383571486926153817883358902553374287018148203487217024357733839780946428539768681288970873336829477122229499905864377340429246146957700539271711488628969016113274491088717697667692544002376459839102358809524787692482203768450968316666794704050418382376058315527027830964124429333363043427666618708121184109217852520117210973536965385270208102940396070408618829664697136523365734836839023136289365717038942559783406998067942000798083343601846087568671905412092781366499179344769255755259982769596012265968340848095631378500477657650829469462957347884929296509180812086253899893183225630302907088146038272896468122663642528521561093063318200130943984170149826508599581132196724225814792065079762118638258324897288698217915031014852929046203148363550690196353286066034316616976921598939910228723379387562045568954818608305548831165079641042950626596853989656604041595001856775907069312051694420006971725028066030197981658612031413832956455832785726014526869873624310459566134939627150307042558262302619875368275105836891115087156180642026111856762951679855564080942211906385967926362525480829106817906521752795609647044161180901947861040533083799356763315324910025622991010588480915529352056196098293596200200398714299231738500170490547209993006088430002908003899581398108910690279810318767862432016204447689204501889901521694042715206402512127209469013467324315912373894875544071833255235472964838022564414736703791078131479614008844010634799255056929658155748359897518193589982638632466504908267516882705044544903665739432125400102473674459171480975598472305138886640411186900865249311819015402105680090698150245242568527991821625909500970068648914626144163045925072155084793919863156488718068692836690226642590732284381510119142134920858294403826129606232277628607268005766152447904885511208951350639647053105486660726363881613478965545875882128072320899679790942895404448632404688726418885824583951483943109276228077128494552511548699925941579405577634061156031385625699464199514352834104993838346991697924393645253806336926326771849047773257605987060113733354313187848857117440549285135643766720926448628053464110731374228080703417984973724110337280898793796554778047367927226794620773792015052207386923991937340812319895744708212364966711515786195312050806830675466035403232951298606895536823145084122341373309297085150182272008082568934350058008607433510740408885140296374288323951423259980106931503244176258594097721080059697784857490259553377813229052776291602088410186807136376051638620994318466597931030825055324014426180215685378879223728077818018357949742892729423751882874908574868357723027384223619189607475387685377120138929692277560906276278941645782634648346917684323339488476102340876142775075079434565823331057461862575718093706151368892477344457871703301864315530045324885852651259884247803762265752577326061556406183904203192964226692042853472904716676451504396787622545798656604805721144124737436995663829432150591992086749448342112697664630132943814575029016654293288542033403825311374326771533917335253572516825241220474157160850313897123285488781303426566130839405625824580370995833400089038453001392249334784558382758235512061853741678036086915941779591764745446735561609584549648702247069249533480847731337578166842986716347325607349195040937341900788878045318959473398306184398453486998018968891417521849524827572822642060628889133040893596129637468535057601936049824906840958682811748322480807554302867887164004224707826079409027004699677729037399993429364536844524538631654450773773330298644831329633597239829763533520531369791025036496543028259189210396460521844049893143808367647787887785667320077526185243216537202541176862820630102145646625115794240675943120943197014411641292750742241764640125085756246733374071140396741222394854728064618073003643744512965612725692148038784710166855208431448283959890771828802991987144842426467164127498012233271702512229603787892005860701469213897483714637229673190283232466191465562057861997454739656762253468441198668977601589179484414196350653651067011539777135658272206204736722500865327131418923783963702287865395019924105268732052901274188205861867593847025242573946070228637816703597013736309855620180427432295143752936907915860541551906501716637253378089619096648058721556983113305559886654592655670076656611195064813219480569396720153709178064284061626892267789489147260404981079116706475337586234742821834086467624794951215452873075628601756426868283120408198272636290176964356213257892756978748247683776752534989227891067125845738917082357839784423587899271226052227885095168264535437988872593772107139353813514834763927687764712743097847540363966478538273908936774476758903511768789944164835329992010067757464563805791637267884297765485444909459967507049127521352968027442501921068897946296964511637255348477071659386022740683237943138717131954811647912026172427887465160959562017191892668536660099536027289222841457818268171487374184970499048073617173158077811317652802478433078406160435523340575207102610752673064854410474927742113129879788157657789728117414873778977189110633961752558974566081462814560823764622287342963190890476625712854555551317989385325941259124100898206853915712585662564004377983311387804033935566622228118419983113566327696884088233340014191509849694009627275188698031013535776342022418909456091336720791386453085455074293075023963761115640253288442822663443207154951586396159393780199254999427146656604942283366410116290291969176328154797255800837709838800562020275046321193595405618343091540424860857074418423164667890650659288542327477576323695382131314203402769930062090153656665292169748994865083387274696035343829041462313194898770055366802060544367541459412201019725689201690557275951557124286131499228001044209029747324561084047478824634982647671888373504369997126799349916690683192365050669591414061707888254255415877147334935685691103510808166104643471565541998896343841153044012764751157196651946111565262539371717536139491813940228367211355970121775042508926820744842394408962998744216713408744425324729440140410827787603257116888358825213268414792321963497085038764424038224374424533485135423940062728454513097775940327625393712980935335520292957799238408832497355944365796946013317107734668099439826164521803672109273687431764347341589604099006757415538308562092920210724126436642624774410462557225971411833970479915452783859385511340864604297452128436090053449724865054080725572783817941354213474122453568357132636525911978864743917245653185168856416149054620070201590195631059384556547740815554156066855744819412097144434098183666740828680449040939267251319393441874658156077926360416587763449883835207270051726474590540071725104129511616449316336559844913945397207441731517711612911908177602044618668090396740127752067704002311800297288773392140534990018451059996029174279498102379747021918211368465841716984369968215496606707111041687247131823165943496973630253020976347815196538729864510376055539815312445517556791147651336765549241433145829819049999927892106537895165792824660145295899420320233481871194764039314275806726585901367835626208753088487369246907571406770154013998599271805191374416126284980499900099886812707798631951375128942679825030279610590974935474487826657970484176244607140740878540263319291271255153954512345426779529250362199250030540315260586768621214210849714816035395328168173734005418633301955950110760392658124348522375605264074354794954671397600705603715407064113793330807633052589953948139051292784219698061042607520052934328922219722139179205642154242165618640179141348947666968541785593724933530585915422878146509956188703410078537181749307430844044377072790848435310525286294987447152679070169900428692395852499566843295796036704116286628688068526732860250329626287463557207508288560714735045682792187854762286293896721123714898306845735521749108027508177613579499617068236281731324861250116023841491578835728623449463913015846853181507702301665772225151342837871652386857980953506830934994095833767800287364740141809412916011672344434673611441087316145415214031234303315482303660064800898574883593194637571437407255242816120004811997327980957700886850606825109552509605009032045064979624038258851849749060409512785467556462108919223261430466888807459989556710125865562583651761117522268034390956185577373480930766597174984526773663738195109754499762233512840944390086482556562209283124791700469877609998316864967089626031687796731927151312120853795348156197724591777771784658941928822171345726714046113994873326208444342242579108190038226148384067139223842747711488396190805516055336395111365654337713737331328822907282278011329527865547717826239063948726234969939304630809732131889950722454585074725294471946266298235478351116252847037403596645908368449151531047371293073382654934339553185999174172765327685740662501475176859615521621493902407180511877423001328437189708870143030375516497728099830704266224754657915470610576255028540252896988760264042164237760903630224932554913107433518406450942186832828629160872051655080403404650304563407789413352397923585293407306321204759741270694900622998264980691221056748782656867571899680824825464415071577589960130286213509566700758922336497020966553239680219025597181621901573930393317467732207327919687257729152476976567929165331616280306615129018103183859683191717004248944469425575043594454092100808994984542540997153142304066311119833804526353816221079480659883106231537045327385998183345749039357300211286503163376687561300372658352701103797848789853337025414120205469619236405013450743416501668019711103716686334353664625072120964519936576999187201567413314036410015558739052624609282269539157310766155922293096078543079117265963038070835324522241574321989318429279609163995535877035393324844732259275604753943401591399155610789023893578015945278093201621301997416988455053356704558948539784254202141129782803769229132382009493231935535138546418574900599335021374547471512470241293608153554770608177064886743612128089518087457291511934415547357105393942817444992730073692260472073621644684132982273100890833455990020938457951921232562943104040265476664113374706873829824702048270591246620711907591969434700964538978608419819936104082470978169586756269171365898048352816304603770761963144839376332445337392869665919900204543522646103502765811889057990257302466159627649063275963156182550279710725276934246186880906014374358954116639355399022772383130913581029431294879307722279537712598801246016986517590547039638060455994141066921431269504621649448774692181701741003655896432394234018297426549606065024710824679301207718103673170618808082863390130035188548552358464021791206870576313614205618390112575479330685715903138073628357324432407428763645951624620821412138790697129946382404025151214575074408016415674509400290959031826741588796369867587227624606830793392939466520520702921594008193056788353416564785397046112393109232140688511854163845342283119604678988630509572353398026537215301335568425034703571420126478133267751582556184365369269108458378239676646288248459106562878121084699018956537288059199255710852199182488439958520847328316648310790981548883015721161765153595978027188442514059877228042656462353480644242667974407482710534815191681635603445742462178922866430213205051592231736489020913725828151844708549134660261696320538859375176566951219533313744670880411301228747278547967934807056263782640921652101241269836652564836176375616514675535272015069880934907998961113649539316273626454131972352786816209334581824680112224539342884223058398987092927820423097500650395303040833081079324085903046075891056288418829628254099355247816317107350465443939083305605301712501857876019073010366444990955046080160956278491801451623545684266745735398622745495205015840353157915002278052818509579156925888406736454734809503960428982729220053529402030064998611745702537791763279086540939099762297060432521920680956675380828655571233155037024397865299513929955964673482930028469724151480437987062959148668039585656868254272798253475377763098710326630308279752092730549599536987934048719629775919109608951072932209619527600934536254914790879561992831038092398381979631648539379657519216524466982226360143462647212160839437431456102436039605167972391677726887673314158521527563464416825789079415661246499127849761949699328513540420635515587174100727974612887274638428912397510874692858583632821976152389490075503026859995152632713970131763416948138075663582998088029131430358585249017515152522064190601360482949361308694333306705363898426309816104232044912262915551719336797306514718109201601048699178893411061366257099522188385638628275710872242943166991478526950544576909658847417493675612100192884830394673116425794164489485846053891071287350781822491262771156881165026787910852857602793927775654051112540299857191729034189022355403808828202211543033264848970623448672796291034190092112732631025180987110137915714673716678209466154098981695132513226581338384833063633681106263345336343292432267032437986837549772848309436237922420482140240036998519822540970585134017530555926894939635702792889543037007150062544270807866616550413384895445363180460886500930135392343213355472479861522657884217397477014497647646808725610306501078713766421907246810476839731256786793837108559401348056717922380522679197040739876222953188161629850756690155729669033361566688482029189605233838302760419366999488040708276039297153783933666164418067769535903427635339494621560076323774610846394912458551540458762788284616274606654088692001068551018831759193273835073891767139719645556788801480111555264729421161096393624599483222917730287099265968224710119887758783176844154063240877396243204763016879697293850091025328678150970570458521626560306631848043280969568015905108969443560281577757833171524894481424189171429902920529029954095364645083981035719413277189771934455094384565910897956897711786391572318353092193455957566393245694727646484861441532764240189129588186466204145039594712553502887442742403488588757745988572844529064690374519102767355780877591019599360833250846218341054155780111946004460984203486394218621153894288744072715038192877661295461167889051714153715410219702165539417845604000556397898387195097875930120299650763295674737545311612919192654183376371353366935498125680098628960405909725431483536329604601487940520610853045049830639023953756080415801720221990541467770298054864903462886032173228685389748407143413513681098763367131372463950571116480449007428144555849943250390226738799270480678216425427195786580745937307988535800412648004673936798908530488082341170736996654441209210257393542913708861242735518893586627314814800759873646131270952125410612024677032438337965311199939566861503256992505371704369624532736541301443126236671716279989283612216424188585821696550847463854525727278927137623770142867822227000325211878763271295778244045864174123465203775762002844707808305621366227979169715763852429626360058990507505765487339005103930287206365261879542100679963020569849113570744580115585358951539594229232457424605347461997243284353061588606411168514880176439561060876215950393440929283723535831309462133339814931152619613320692707287718242485261779831706046488950235587724843720848398137933249591384239077264130451540934915943065116620746760465547724379612806308888800372328839001656805611771356099196136283072097570720540164355856142006478367383166441325030354284478270022450611102561716155491089064949428307002012198778251172746817367664224824089202158898823207827929332456294653662306560043878253100534044516963729132173786814285700300946750787506878462216453826175526164296455542581899344659516728883416010612843321711622955147359470220956448876630020690120336390722863067899112098420620359428211421126407460012014469271272985404139646099721513095778648227757294126171555242320505977668387968446594396728524501923505555586218353861948210232827694465130416797539356036965782861109672036867038866760207719174640445071867231052344353153667146995462986905917056833180297351286541330016636020429376869631307386637840943512096048630826269304866326783025061211720125069645513047123978310485564119757564941288540167930224312586565614174808056311768110288458898199924401816969346214849154063040140473204148571263062885960259745581015457857850368352090951815674269306535545801714473240068753428492961591171761310093108377739554177100982509313562838104892927233736801708571342666279603020799051146062453984449831212885508906106985487874368025713372121771040839726239828008818160452862231238307758889251393830338362988198775970114773342151578245578625788849235472257993386313638494896128841293352627326745696755412699662736250196548116196249456087628189415813685361439569667793444092667851820853012163612362567783913808021704947222386394041759708024239607397469886866996478828159342682959738934987720384325598720843488876438412474979154950977062562261110561061181312608203028772289544906585475638032982822057209323304764956783809697731389032106870228483853292865683546751963741613615906264707134015802354136358920168785001275617554662934121371623739142570816918840914167828053020870953650999787623162923674458814666352633017522147016487757043671419074253284920638286508790098166356716000715108712461707962352396736282899133983976386485581106918196092039700834739140799293885803190313264410616658889919269550783078977176973594908022795824186945117143651197142598838377075084224827522528826136775184117611898527756011630884714773323478973274468613872245272450406968813638297782325084806096757009340251156028340251551563739497547062752771452846475266802389390193235964002132216051800579016999752959090692305155541337631052103925308374281173380759382236691018407424580124465834428510035607597613531130037180287018298758830064653068830193378602026439438903798257699390198107711859617829767341838640173627844747207494316093373262529587224009907408589523060481999663588522866888859821810264801291604705209233091250573946089013268999802657577077553369042265015653669771270935275096398071048880141710917143480834761209297883013621976327685495075747541284026332000541797980464715978613992463815354028407148457039180500600027633241607670293087482021968967787041837773040740347132881264195812449088370485297634966180272847718385693781503528680777991625964855206357974031751767585521292105607284990907963348514185236485271058401908302621665575824464576189008462080596812697718199232912828710408723509461148259110210485609100434219778398127407223950037447183381113558084832413032498785786018686117722905057024369943948489693234473001678998248082611975222398463841619509053420845782372527014351766172663769483556923986909400046966926264645431886522669603447919111724543599663034311894977979309036532718125150933805192807149804600947165972994504315295483358991679166676600946575515581918728326865041099745303794144682262888585803787769783287853968009818742109722232123053757232895371120784989694580935917501414873358098149895798383230964582604065781808831292628454136594700155488205841588135340478327201247922625957764518386858180186569088251959234136297651594402859690599440120900680967238288924363016263082472047381951478458339383914618064939442183605076574231167802137569561510549397296486456839828642735902446995523276485635192545842160360033280173658831240123313358123893100020004181546226729334643902189355232605918576716538453043161425172619863749618554659500783935539422987146364948279651136096822110231741827488478774049831812734403123132186887588447821234201533007466281572888557452813242900011260680281120278789566066212666310055952713062883126772176030029064525972302858696357156094051710257329490252747932406638709241994902772385663540783561742618634112053353458489205833196541590396694646343006110145918387072529839245285990568592795817530471846645098010852270974963262038433571159429827527569510648801026317315486090606749119869290799073156449480579191852473492484610153603719447819093912924580682881987062427447094946443496494453583640233373389807245897925796873627847960411146839045250420105510091407078901990350560721228647062811830863597289794923473340093500025717723408901555531081043083255446671763753684953217993971049109007477768566549770969567692166618179025590800167784422761528405950750929925851274344143829141173521671941066987840547873492803625273942092769002284264444634371738262396286426030740102274408712309701458568550607856034115151468287883676011695653569041482322366184216404830559817764383286920130117100414535192107531393851739077874062126064745038673816091274402958632263227581357596145199670677183733680317845000173555523533574945827310369274012487493415496782491401883372410954018384467917458855564699173991098462762987457470963128040605437589994389097548471722504441327615324304401239077305154706593095351924524570827876412536621233260625503219922966824550076143816351653603900007676764491184316009528035816795223476493429066145796134321155396365700408674745106046717741377868197104834735800452382868433688900280240374411887199351392621454741723264688691962209208727343901906625375405958079946305140904244545698465326749797362311282620679389105233849706324427058224983402149904351313722390354646326822072133486639667399146741120029837222565304503220288886194460998657227030864360346736649973823610110686710968123700928438058786521307198452198941396003674206958451850446184647531128258310854735163572156734394545228336239810141147840209837752564500328857888234893527432237006160141882611415446945950174256865676162315185710948186716582138426932372102823800481478607789904112287319861038172021695516994231443880210614139240913790080942308559687486676359320715056581837576943908873991237566422596823955608494240538166801609028496990110038448067027102956128353908358293307475596694425997132257848549361752234644053576576669518307084409015548852812615780469433453488050902238517605685620980080955568487251374235597686355054508958245181218125665750902535587633845258080625012294978377078393119786857159934569250658005370067996188527226170003491243282069591792233149997103401241254254109112993054866409400752758228357207417473669578911581030433813880191634247078431774089303428429996671516644961267777704704780873369469401796785061358691007004973689137266653022135319384750564571500441163965548291363529905383912936262780153692637097864157588281568374843516180262936812614493872744478791875588322430879667773223656220145726860562087187477078370284062342003995019370636799002084985637233456207261005107837337334640237768834567287816855441103058148218326227815442155760003982740324372943031619642142651326821086045454677610710790484069831112626795708420599153689135149580452914056114382288498221244436263626478216276898307253118726632316749479632084785551395521781171237318263217932179236522249261729874169543636032094567942261313058817002974366360457393676072943613551937642357175972957737491472409702666216191236997898782118660392654619715909726346540784200942343412301696438941905434785937142148285870926957194246358378768329778415553222470294711434552523032287646417006107132981757479706801548615596489720922342520508675241157468446392187892753536483634843060673740004319164115462842572661449706057686748291620113174194549417541088197574599271860650196898972154888531100097943255817734417841135361245590489117943141543627802839897800931067351121206007335301367094980958789936330289701093177164124448911542865034277802282226274658509821517633997601949889360452388279158797658125067804370491707007873508814595022608276326187002936747006682029325068789076138424219083516184610542932846878218107870062578825331809701993980792484606320244739095816554539476111320491446078636251570252106622920426563640384461491566898896661913695794300518774264847890010968249024356207859757248616571223131161895420517125497146049909967612576882263490737751690116614875409673760313910656620188511808854004610694379800605927945032548067489293309609601061002547426610506764412136134552782860022575221575509536006042021829703978348647306262234239344317235068531968616321728950113589785426969985713911165986323177779060292396464487262395599676379812409107655553389130245143165321982532759085347114749165013341864738671915837280327699919981708426529671128916858434632890015511421542992600926997203902818220637998122176130987066478163849733259450229759149905961495597034594501453411576283055260534619214010358511870002705619886455752985622716921588348459774095372653919920228937909053361429712449720142710961747371598502116219685031497312427711149817668146830622824706984092887201835974963808201226364698987172230612846279665495427852139466245246404231447910400320741859783301068992997446798411985288445225292927734029591517209174499840265826641193761711249942090683427782199766413544222578063731229796425856272633305230791228114354851933161687572017728479929935725459345635513717598274909829821939961756483507472186705502594030129367340097526074130438762730857609080284690396470414783887607111037563407550616282162842594496859092425385548198476749698157453258590649104319077449933915749198972047429236989497393489397991490076093160351324781633471743201784177475284658601450523944266390400878584628586594930604667328062190543989523830615263514358317832554571722158921866258903569852594262076752296631215644159703030670242479389956806811824884578679949701394737706054052830057963351636253025240782221051616260164721118920482089069495648407261752851209636897676947585354242439945739507104603694390408975142968885928227563138335603614929613666019085637941466241584995274930328684521120932535458646078105970479319193053054805487003972762048948636746625409694780389490506313498916431153626379325396394624174808943969705892822044803043796245733312671044213557009221760069320715322067818435120466978948790229772385312963354766450092429001876531370624516442315055376646458603311238128779555740159387013684678473105203677491327843181143796573071505312394071402140256665316590866519027736794864304351881518619278159512818422809444615806193088944737032826483540094779805197497888081726318430427194888016682867357378820756855728688327461478847902861070744551724573722751010940001653464170979818520247387578292517105444082655029860718031931002577243511820679644089270607497716214337301107092450588404856255007437799245097919523695792175163124149303199750531066109819770237863598493152372897292323355487430294193453792615823934749645660013156929177139105971418380503339173147331112261865655442974717075426509484004703827799567986363987374019548251258642992717785259956008609242543539995770601736451666648547579027287640889095969982873317493548479949132637119698426050009157631369924568061336891284271176496750135411639048858442193999157618845701356356936975731257993879092988142199221988829982514551126342995282809963058148725815136204454948427590968288106197046254418555817970111465579787015826907901627382155653833713633235580562871954462102778450700112616146619600064369782869508319316296293326568814374278469562787266988817681518836802100402988006502263816163429163026897195101367180995357547849293851844531171285020095893902964826680074165208162491743446767158068347359880016855370344159482208811325148048470967147532376406361523895646515439737311885872789735891431799670325855179538967829533618736520111326789256545178429756754549697373681570205471493084485321415106414956463630853803292203422518147935653508442333938189278300800876632037062264695488417924446636851622629630729858615523999032595219608520476236897138305404599196355677999995759782551227228488048761504159755807661208908568908397877185559856700317543041752503755271049161480897151918922545734446756863668856537759334019879194380161389572590959574062338691983872771381007599497548334491336030902813609438920294482996950997232949936525081577471680647936324162901163618339484812056505218788589503963169623602075676749646376303977124353208700731052752366244895533902030107560587676955440589935941542579706822995424699329092106824736653411423602588771259361720739165188533455808822173048306472626197176364461515451547946693076172143197249797657238104403289156520572318031678456835757378949355113555978806404022335456234518464476865196525551656444621993365869156917057074392667313178123840670014522983201364337671521350589700426380136057130863254864079724757337265324462697536367571096374764556347386333621844030715852071893254950477231635499343737338749056746050174475660018748659807446433754869679692486381694239675239859160326301724596447923081749539524946855777712966397310170661402012901603031970499591502755875202142796051647778914493661141106121252898051905647577953619026573997020166700227642358810929432309543939446584949991977832369973008387494480902581275890122721786736535832142730494890976670755617533311195722445021662240078656600226333536036006558613758801653762304532091305081594171886433880841234018552538470475252444590463180036564368892213559899270701133231090588139920850170205667351157903010316415333843931061921029489668515983587417521352297165907380434427880839198161322514791548631798466236230497379672850511933731141488234316032610203158501687719949893959729621385157725611504691994484423686666235832592363200838570092428369625931734351065879379855194613280357346789051672377819320163467960474358785466546748484562204132810088814172959627441887202599237429176802596327223155627125562945092853675248422427513017783540430151761595702317548581564220068833797188282014115066982980722498187588794490950524382647699115055172700344515896418412939566092771507236401318616392143404184793934708063097223114027220504080152347972823836339011456607958837514527027272587559159717726636403877398873467353913291482324144516331650901896001324954198330716766939405626468258062597766156891357466125545106539757356875734121141242622939601059705589408017651317745922314748809434037723558102938654914655311275616273747910069031820509489472507547959661325614146728522199570751139704033123737473650001970763311856719053911556421688766512940205905878095028512609217628533074057688210210544977115541717564227589861158101305667811850945344392413924472720064149052598836100276950887408807619015050536189662972231004689663589312522635775091708570857302158337421582545061707330825077566963176534824036240966248484475242364166551611599614320459357711575700914552274059866364231784365802228827833292288590294717793947790468292674732894601795720401544989377732885164285798395694775144569940106834633337865927291702593020473954331783198346036611562807757880165833623462754105873161462964144916874475347219644821663616070063825166904365322477296193474438096095018383724871724695507027448238070267086304768956363858556002226761472995615706156084292219397640564026957588024238840132606745141865047890005869632411807581483757120913933117318432428824273839423288694406298980791876761111012614904879581891896955834059338219302688390467843712610168141484845989450090105616319589985808200654854438811147621189970548856516151921235292797494046942240815986542968174827397659611315485936586701189948963903736994329210565172820877077599783201596512981143188351356553357537645387063570402770894032324757926492093019125620480532442550160931669938574355206665715746558806951707044574430704520881994013497937046122000210238593379525434849533676086407379697562283661638837134354403710408054767127621312052922185046717122156619709777997895671838988694904962756417544895580839094435858150644798819901147350205243174530973222024404442396950557321352709805635581106334656108539781309913585088509255963636523793554813335211204584608417158156186587079360601399865389740742610213867049872587514200953632977696477428233116773050811476920175300716076761154375936990276905228743900319176428175738538563111196666020563751853727906707687769908848429777171702527937016051803203574504965304950676230491164394418226499195315219938649516980521961689541063685257863648962659481592646199421563851023583627739996648636861099947148051475214842333422105980914195189883772211766936771595120186474682876491394697788026910543399060151531239695323048460492925277433942854602353798900794476242865848238799150143091138194854480020123201994959213695003835448323199826207779719869729484390591749347629726398399810068706193336286946023356131615282746748250573211385120678619870427752945463408248681628016609344672017829918665382690652532644388650527286863509559399334582020248834946302152981344787073193437429225753567160798835701256552430651894919498682614490231283482734459965951249483356534303766558769866243390395567810646685821657049217809123673566957694767013419387780207784672464809534048016011033531091949262455038123840478829408159268536069246370445301751897833025660723455856645500029135191767289925195910590329030919246548710948247276762333995109390895961656157148839535250142655074560637910976621875803302128202356690285451420917116708908019162288230864221766778203412923355475832235591224660051470070414806991991210148069590402331000763104677095957850475368241771681388721111161611719726840184519294653568201138723959207416500480097018141087598779795381286033008266303351357604870790740005972317732778823813280167181281824451549248019415028861825743227974168992008153024656633202642664787313972716446149487426991429868930090858288956991774163868687252004836374015490910584176796995378343770359311008266015531767004785973542077648634018585622212382317401421283825185964237044925231041602167431631092788819002075480230613003794271282805994304168367702828993415606905284321739640895277084326796701641528465640592475533737848428862264119444543388493722449726904796951520669010165574089108036570635325048133496582057331414978567257902720935357395735772951914402378907199868987145009009494012883209489470174048324448930642067160373417192350573702700654583515847647624862426193670126357759914297601315730426384425278077035059339520203166998296091028070679787694923697141649521046651410491200512507224038320514547935078473495714506252114399245698564099851249784481821147685996697698828876733239392050321454250270773055200753502193201874336614497846077660643167386003440148649761773409709453340042449862440847617821121471516309507388612262923555959981601737164569082853961041101035969368741807759909966109515908373692544147535569707037107952642242088100101809226231094453906275324604432667661509165142263113022270143039213127930820921605438881894162585488002944153959063920505390332463948998125450412695972715668012251749609621621979663546209425522822949948167812258601643706197348409060687454974244448409484582673623314109025072397323431310213592597927123863799136425798824235867075827016699926609193291290732993756053048252140561931328082076174848472776519736719044673822045859574122916353326605484605151566001016950277617977995892175877165879812731765037840167956439671894315774174946497641567452540557684025605123897788225047406830441070964545841833617089443390908761635369907216957203501444609938316179966601315971915791733574553038233669251396607273136735001128206231195718360885146452055149029226054852653200358392234632566673655915897177691762630157855583375922585858707921304837539116535266051694166073128499078050619537855407076958915509433611990756419190992065252895703585647751200879149630333263510718640003011296913295297309831007846850893569204460165690301797872009524069658335283198348402968015106106212288077076209299390793652101698197832826606250509154028175938355170498322061835348748904724944911584376158021839680541011951870877199582067397809367281998260686377846925777179914494066985096787160467073859730256688628776110539796564977886204263190650203406264901882866072186611858873481243295032184665445211799026294390468546584175556532226515947165769460197295525429754673812541032421993123206869652248320886433928887299152000153046816803700025615759773149627876095686007369533571304856944857534971545146797103291119107197375219244446579825128018337789620487103267302851980024310367339610981692732071602128830602447264344394038544570300393898795137473667802742925697247420188499781773591020289422487859238561506841989712158029603699672335756483636309043618109926402225019213993122824986194364060214109329684511208863175660139342994846422775892657832791107149013793914118446560652291183448965983594960448025988145422683466284069891119991313932384236947995038688813681691096003130514789655648810792428672920651634039032596607917498133165732043101572751840411580199917229951976555242223652384725972426597854784426428509439115383932205053429187501542400633743303526945327957763787175197476723882883424278913619131782536653037255963353109608058601761428376537249076407416452031635082006487177710438629062406866238343198164079825439629719649836877603455084695722662290417001658796438673940535963188070686373906804029312803751971501169899770511893070189743477110759045423446769539881095704399373121904383940189978947746734183733236426257157309832402807057418901382716886805891653681950273814735141730119876187729948519233280762568087685344163963073114783725568823105757061647758444470753886576611650878004279872562975755518215360075133606244341390864433709272628598283012889196423226656844211922400350090758906996548468075903955691310029803327072289467135715804173620388160345563175751956780475551076062182528789441608024637702458272469261419137739816678273166051302833530973355508731849955849846771145305077677035954726976518819033933195355349834487532972163262779442448464040280653519585130528970446446183958005237241444026078701941097798379497477246881357533253808286031887671753941300963875173777464809396298254082338592201567379155930827877197567447124660273347257351167816205161562468058436164700881289105988773483071950166024094800697330456659484926876065888994117646917968314956952652146127194252090266338419653701596993778810553372755155324450312805082824746834437848445384986336486130891693045444406266818592176155376448288001182317173897544472790288089638851798388650191034772247047979222306232118193230345483842558552082826354445476403079883890280381125901033306304672606210857631247134220971487935614624778634930051646061166594837084782759301453031125215784042030738842998501169737468482806077197401006317119941561027256232384040705684008610142006236613881379859216776368309434772340456049239456004187863271243187099419281117120102929127992822115942014032657367887638147186512249062910556706586876161527791016618165164008251245096201254823463382804776211063009042692547855721151359990304885083336440885143228860694851651611775943931569410913103585348075744896092672933974361930504673856947727562742891304529191985434581946744270652272768401719130188173511790812455262662342759654473983489449847524325181874461201359299436550261029115645886657662036380921990107752020420527519988848679278442574460862212580095092555321804113269883849307731811699461509101033808827710676419384422303674701416317925810998730981550692447927851425624856306164706169404631130352048300350464272006262841620624156540659146445815860554474296446055048459367048432194182817713371195735603722350547825338476503972645140761366935356850946479764309346999822196461066262677502226256832416327564440082710590895082344231024412362984759805581644682631378389186660556238496009532807325631538070317817602927991308672566929749914933144750723762601329332624881370285616633555170198724491793336455796114829987203839511550376818676284000540569707097339724209827139405908776572037770480456663117234534619371610504598658387663200503040207098083997631013522210850678114318683516895456956856292841288874517501511284245005675679065952089578593027335862448746974412187661803833391146133587117635808614852902546428109872003037217670272909492376553635970343995022450810878260431007322339455406237526215607528558297416079515436795257983401533025061152852181688175365296818307875765119052595147781099841819074959836487676557063571239384544728280891157579117462407789761770617696705898579235992157089693937741931530121986724486580253967436085551480495463547264886188707521540032525576598900516580122900545649868711733201573928670401542221558139606965030149955926242052158771213401537315174769266780054989097344095566248499368916325410044302124488518529453641534713689196713404503038473488557797856404341898531073368481555324037965296309604471799682910158522432600046699297522062477161569668624684666677121641551106741057887512686262294677997120196598040618108900213903009760490115115285899564414277428677393151301545377113153473681689187685458947239831167381546858541817166432761701218916924602075081010516515238480039894118190696936620369387364465780779346247750335222651284900745300297841510338563585023113357023586674209600333391274275375943311925022091970627844469590222593479731574225710918583111951464514339404586731899920758344384224782612123465738459600249872385070710104629716336010505920261258386995108771967969668118608347825456214412837606232999401774164610994652469211300430469195707826429537782723177334576431826676918162302016070002055809423402370893453799158148460466605201333443274691993743335963211101096883383407901748366312979344990701149572159646999799952935151553504887719456050100231758307367187617746995668717720755112034604376137271725388561278926055124223638044949242218415749670149766540464020687799216051267334133399004475055375714199325647705703614158152733481472779953796502632527618071461264875133755706080639497027958143662062665018313454727214024957609015849564401932722302976884252771280464741370108411020943778699502244563519307603662068314792067369088755734576720424181345319395079167638286876433128908071969135500289775382495928730862315754906951974762278849022224648211440498315040518412418694280676930054704333007085338375676893850706094631383846573163602944815580278909577346135601076575269133604779002316539700287108891449174158120740170054519164994121718573570665392515035195951467530161206249434252974798387821876142277357809501160838983182708622404174001723070333248813807363030398451327047483196739537591706773160975170482469604087456361406877510144968178213195635772962947654471904874549582068907551957446793355059065032212480183553434359415590961711007377098795774986657371572934034296286873247341507234915990274337188675456744800815807125161750938825137442762663478984146739146967651879981211613785406409751895307139407720396289411181032305441256386513414546097767998577015903033721224961533010907420630721326204507322011037747615910215992141418967832891888944626431614066465744949077075147189205873000409601259323965296083067761390704298741398723459128310096254760339738263359377084234043664038334762227072683235651419015067433420755785132306475960755653681421349367996166470092746451018279657439492050043419230358673583244733045714763264036584666752162440174911135851971607751006215095663732990816265981709971649265706333959694766335850336866255115029049191103268449801932150057859601117556469705620145911172010400814461983238539179987213373007065537520913833712592465995621234683515952815810184019303838818599470509281897821178386070879501123337627612497361313826376974441195228161323182833058191295137489750628889858035808919719880371436069772460213699206792472524715548794386624424677012977846657252304904370939602803982337323691385077712511182109001286826674970500964409949646091005963118204360381287646629453852672670978573107153213099809275240950807129365275009034429780052757993528912006913898017475660195716826360722079696967907433977255442922390220193947371711020830317025803751103615314100540839322360108920624305452446514166652921547444042744064903868032139299848355437981523832614665184383253464348738084991719820644394473268460868598609559106642728766677186473888780841128166060120091555230008896383448466664637146995868206580397950904422785480590137435580173339102253588496712943722892219597106196382362105399415243655716600194506590416854239276044185209497606842595301113781728389242047747336748692859091074256318997466123444337185308252389692108135943287306903457586264118790937041267778583271335739825728629207779854568457490252207034686546701108700469047222403653930022462185529759558568306724324956213245650302914936327708899961537168947260036079501497643380163794415564782324734556176668139628636673400907848114338934613722419603756037283089714764960681893508038207184665874234702772145240425910489714365690707740916312007660596384539335636822904554996679260803506443463312149377666793876733996263624684435231879580355632200625312849123737053110058154293274370035556371024952372689728904155963664452392024858144604982775358043589106580274650639449043978233913998824552761898661759139853609247361081827290199080408902927906969277006492470752080022942002025311545928101842643851681238627476369318528267557776352515279816680839035500749558012634886638243800105046666365060271493480456579867725879148711258557457848341967009381957391427637299879713813800103059668710434846253492271419688092478172002045540436165616802310747839320265171370084401879567768586505914089369596374763145951062963645603575171545771044460959862736842607701955930676393995580997709779767617972661051740107951858099442608577138845702224706149896185448176491331476673788214368511943163914705805592207169664165210301811247752030620316673401790356544465875707638989597633003955356342762908348575945190255176807386258986708098013804300798567871773842648585600317988571018679658021921902498111210039928217222143908989253700949459794446728416873681881043271663269259721287625194147313689152670745027487608080040289561151529672143511023055704706220942615924553630264026439091404328403720303627279274290318370858597768477423799321284050745161008178119844694104718921967101430740696417682419373451786723150114865266929003593698651703419101495763402538876182625284353906762916694965239263006370875552855341850431451115840126272769696463160906622603186932573920789622594940855144756790360153202642149738645858854347657001181841073001965417441067969923500320939471037829904725886513452654955745467651010568290970964932148610286094301110865164654395379192162361041039887073684270324469129162646632447962094730312990304096372683694656337143898147076624629787840006538067406450776848481472420795878800886404393691915140659885722568586874992398244114509132259531128088457540612013046072988658800250897729136674465777124921900372483181012058121477614687505961687968309832506696027759680303996645546825332017302949029993527195639230445951879465143322205954682566076485458207526711284817521720469712365027612038978003611896051775010462635351374008970374348381393326057881628682761196106605600738336766429654188903982624466292288187548217569896604310959145736091994230882830094746783195319892652510328407005323816656931513851329065132095485912504052952416247307817885539261255438667320309309904048209960500719763035236348338255043372242355275338292007506981518306464774377922839611672077587433698710968635743494378375608639906789941895324202522793533943188123339425818942523471021873893679571952490293129068583196071753207195501945006952338377372326961850550034596500560072130750472007271851935764048543039912739460929146470580654533867910073617380258531769579974768639048737204990151624489523630221995623706219195657231428328020455675176159605698345725025760126971869505422455392275947733831887592090677014544925246152186668000052723214402341108154785382018025595087336342486780142558305384316860193760917658119890150132555448865598032788231745625178366503921939742361860937181258686180161654806404578766429981467178947285027002771194779608625574286118879255564169182903499691674701440019915629176525127438794538123130980391060273468938106891746304212019141343118318076327187321323516626029932861491469602731733404251823532668455991292314452489137829429039396922783828607834839764290657605106817133620759364508947380846562158060941331596454242078684751841326884436576569009714546478081244946090704892809075314905637064447151193929987050584179836446042003153371073451654753231756617882933741607838985950148203857731454885976025699944101937821333261388369716313310167400647814415345957257473844666353609057227950036222354060891003126186488048167923431750294437243829680568142800020988466981828350409900396887262813389672635419648761798944737506001243749094212482683218104809299779739398890660787088564577185941107778998886666692942097159166541765841815471572741768678767932850789706477160330963768487912650937949616316171536546934321084542871826182008872827270855455780494640014412301239815656941155013644050601847639831318407549783515123737082099306481799921911395599466483393668282486243963097914951851829919922079077436186263857716052976225465586861550188035532523963005626852049416558996973339608199158713281775778529061555931085311978885513342039627837222163206652891081562475742393789141982563449699320436892971350267990361464946528777555036667978649982220941014171269067444088715906957110509026303373643030866320026542952433163051821989645884514714512311135322080109239195895036714307035652422146730487887613047928316537081815043244063274702393902675851574028138071786223297331924714096499518141394150533028703394316264762106643253603145130052150609826253355614117601921615916155001486945193447646594855432612107359268367616632984247964658808187255405296008188181837515980796141841884608185555768291702199061582036342619810385027884275527249648631480234922191960140214405297416690553856758436470788175823503527882756016869779809871290877414719656713645272284906103666845875967925766357672348167028070577541785998156401309133382902738178718238003805199268057081364090656483098370010044506607462236515605650170604576304855129124651836965812731775933497456609681210090197616417642154380726475377061145851637909658888263925571917807847383086604055726220027037627476958819749190508260440609956001744160282227325491577597794827737966380088846876911714929899106714216146328217709684584396970713254275776515678145906189492049166989308672256331290357781404501902128308655086973919081093280827840511073438872597588744789572805097510292566423136906094505178628318553553856383409036344013597921248433479195201753990908478957732017894097882742369669867781707255354557231012547218993925026405559077897977295274977075089661158308222266556711497791223151257640641675877229786160556139000062433033956583233938711457558606717301865807970079392550792637065024079364635804238357898037543704903271631870471410956806853235821374286278450596360805614544090512069859850949374813665712446245510588942746224201269707909480038695199446716891183443790067146833604728635568894482600817112502041316886971544403106455029230668226034504237074774815508162668298786302556825889223971967092611613289961396256137141935030660968288515132026818377136454137839612571887482837241925887505275189013817576982647126814642401707744627084517447701242639765691347499426075243149435922430913012115388124256592024626982309135726176224891199500658039099472028208853365584458075257839829315430401189309772798031166855441165444921545357137342130933545671784896741402170904005951647581466244493946959592159321077726847015119965095839252876990559250471641339122784793811384301628713147293103321048201343893773241397319651590505162584969368309847017848720637941701726152586671057388930196672739415905286991692115423171066568570165491254133130269858380290393164774466756658388748691784746744344791359851074817881388249241313619704013021387939785886084187604971935185304644207224060536545540532096778381228759988852612623485500456445010875053911936035978128473352257366489368087938136424263558383920506307198517153152195191504649369601730489709458880973536400163325958831208403250050082536108733839528159151510571940514831207498753102995622156175130939818401105870514992742502848609693161632474753659619337445104007514018364714299381863339920272996989250958500551728626574401077212598472617341708413514805655536260819410347114515091480815265128973530244905976629800980707482129025936372486162578937343975363990999408782753832797318855585994957511143040405352860363946269673995032258149364054865283674312114601401273069388864119156769937282451839798338638822508121529778608335107713110740576046006196394292932294806425688005384362352792938221182697944909677433185571505091833662171429542031574944371213465396824707600922713540245231653411648931797257820841741926380026376220346939602641449136036235137240076411033672273493619387330007621647775348907646452564712030482493292929518209805108144097805789479840395985565277878643970531448720555609557024113946045841760035080219979056050528155708464159171821477868934377265179075674316083653877107222319712870838719119221368259331037462953913907688716078373384952249778010027597283371846733730673676119660865109795319583321259196155291562159876544528825475137760989569333250670748051657698308410148652795219257005853219353221345456631651627618474628682360553754013447765805114783606125061771549992746392110749230481181650718767282005262951488531048477466436825340576404960766100052472910445531576284617213633911371419224778038867423069807269599054278187756537494288100831293151995941899480282527645418359945846559357935076758905199697205776093419699301922982626530667727171540090072786970915796922908409235143376513924338859948097705671458861215497071318573941433426104936180185270279455611785926140977097421228263551265087342663819384203327819113283144077068154547244922156363831472535759479024622002379964233265279061821624904654357316971868863104020021688219956654355223217877944665851367065978125943505002764026689136203857903015624768944905798313908297687374310469269351820374107662941453535232276725922771136137250444005143265692651071747393481919843279447015872238295889410716740259713646800390931332259224834077928481211368193602950013238429857815347968597337246711347208640206706734700081102160240371177675681531673239395287378762388139954496125004353628726461776555720762816166704799773936082160206428429498638724687950455660532352668659775546960638506851870543756742550805266579368003989782916647688793928697778986880982016558677096878700133158486988850203562803936661618450107238537462162514242275132980142889837889318534745164618641904365987440038222801944620714248068369246643619406427809624605185738511601853541834605613760462807823783452586467447129055892558331325932353027483006005344539856902375936738692117592905073753720828648748948591593741434775170190468343221293706738834541068256615635031435547085699802511574066129206060400201773294752165164541572800581666592219423940159665999715726119508765705279130471898954116204020813471685643712368941963965618414499435312560176317823493086623769244674588310276765527879065953471868982254582107243948055399122281311550186231375454123147340066045731846035983948845247971115164108289225779404732594964300515693039746096797363776561842497912953163113656021742579121924402093082132464397349373542760018453946735363514753224294439692456942938130201754399646363223611265331026728510007653490793039428847644606572164610853038868561210920572514794843368774678118548448501245209834325578489302622311316193182971178940139784476218623390717837817879378532461216178667389540038357660187373452742767908316559017087019218061987236825143205273851956635932791297043246704241959980394335322868170821564659303273929979270067470130665550953710116733356350503610755174092711814390038321877224950365559616160382537197899727486295567391282028178934157509175127281049871450277045132141602283737626926481933915632400950132160057156914820861872658581337674136985929187018820287686953261430592458520547030698183379352882261850224653696395933304316130382170707052132698785606404938072926862237931105295611772100848306088915647235917342017718677052735111717889318576149942583618248901700604952671326691627568170973319757365929007547874546138660566757553080184558697935881318289164706488601142105077262304265901765008927681828736882163274659492865314789503280300751210376243044914901323269826053711756535590404750367561499107526060745331504230744682954659258131446273800010422288864677861102847483170839057178594942742765332776704388914743600141642070489768215811523304810253839115111457715841552730203245281062788712387559406674996878875574461395215694399127167795962251781193570666616791063414591070703789844767217959239981718744243584661807128564040654135143123589375096675495991820737544339210253519112668378541330839818341888122030163165078891875450842981377589095053066647397977596557612501446780514482121634071446806056753161823285423136396000793140146369053142832497116027229173183838063854361360605228462213330372324702881700095575844656400370589233274411655182119132585636411783638418502789286996867084703691642806649217773556603725308633378101622283269083457114849666444614638901201782798919948289830961048894899875507492604215902064818353025097885165634402005551081315149701484658520722610067603194692920624663362996566151792245983762162842807275383781256009517968813961595304687799053438992394364802674887774166242987250657500782016330665025198119924155900729712456004330994512651334604553883769141825993780676448926380714724310148280477326397170867756362097218819964275480034662815373898671350009420451671069517360643564415719112057853130062006097601088487058023508930991996039954459480190772047017558369026750974114261240272137852192448728619976222769827271010128469616151304574279027364770976975236542764789676258575657708575899348538823749767264017270894978313480973929818604698626486371755416509207176739665905626921616628766641081386498129618444996638114497705729105779310459673543630365424950124281941707834621634703138030952760147595317244342056698139116556926758962127470977730317091529269314291486358438030776182349560098900845482716236685639668541811525005489935841030391877461779304241322681846418950461845269825271817892632071203394058240636693345314119987692940635149037803467740940505718074944772427648556053054017942453574711898698012230852161985625276646054223912373037278448308133890311811095283202261667812767125700721127544915459337818647291222265758874410933339352502120676995295523809298291939343744393253222764323339169585095817901284371437411263971626801143299883394684370553330288901416352175731861565326652279975542091499781535912427333870942092251492964427133445437646403307144732967540034353002737186599480771905179423319564780472471980382710055721276336335340929928682941414401425052871646677682812417292753853895012415447784498801546887243247960940291149932779198947553148623054882397521361622162519973153596269958637292568676249840474971343734198894933020402204110541146073481437946752969214602862029295164396182817415369576540512713715442853756411904674323545689886339445286780024211484306378330474245129112684790878163981133380910111121058132213530593028017887768261487252516814576878791356173182218617910308358151967139616757372186041436547090626428859793795922766325097508632378952219993691325746925937869870903221928845640844680494867242975660285887379452584597085668996464865454057611591203192931133769652590496101673950142502656946171245805757037046405208566605834669035075511801254173978407770857982767484854553968303087275813835943435981536625970510729888952787761524113958854152652619785049470157486207956399032605963958785721061544423209142530792441297225077612629546824120255230365453132241778294482461877647358293159857071858963316193076517266903959777645817994032678489426304081821155961049739808650408122077506456431311634224741055904352110919132183324064379617089808936145678408604801211561443638599585283820620605954385893710623023583811451620566348736543629477957548036115029605077822777553488914664923034130657043918029273465538057573092505343660843395871445498680515653486096424845840334727047791837612833329080153402884740125667217038173429398247393229189885855727449292720861632668632598290579794265156604499156620987510918185528575003453232404842807887973977930096421491324657821150086244339172866021398488491148261825986114377219368188103658219007257571239707965504666806205828915817763485298146367787230789667821483645917076860109841927005109766947460675184804638613714601720204944751287129005441252203565688918304076571549084872392639627380145167264609914018645036230777628149950804397978487166341408241727184758129100359926076833953822477819717730330738439446956035268311177590341632558313157819153716160584257744025473309221743420768533720844907497078489009968147658115233225172538689399210003307850965505390246038552257008722209931333514680896645319265605798297873206930275709654268836785318375147619283623121401939569293685795234057484545451795332259341124586327638085583935195360066566518114283792437327066121947033460221853245761800420946528727915615277393269048192450263152914348913495341267084833865278634207437419752722878121196562320596999890918801281957880023192476228949106358045672659357882230441285934955673062545492759107038951789252972653062281775098157958100293680625099870370904103390532730488658352135574397457771065191426072572971222134344159684628413105485618423648256838857906606185871017088224909094460600484190506026634756755193939723221705302539545500114161419300545466780411933118208796822254326629721071675393069036678355186811177667299697499025526244183994666918283723285845095906630751232350347251084452280782321170257193080344223321114369594427899283717819283815394176303997421484077720532672419423004872069107291262365119469548881133220899643350281009866343816518645872876927632840851921950203609428837955413387743094923133144824614928423299098162195108597904313219973923591197068722087608348555813199189477343775800358061028789111855639808621702382105219933106975874601621094797601669763486304134282565171666094590127122329538533937599373685505880966771835323797139214918888873317026346266650707949770873697266897483296399865137542020637624791694653174962998675747883768083402838857608576715749011523222565139911094909342603022220210501904872162026661969378418989993748548272054651571662128666778014843192812452744745640565052796984799694590708322855673762105356253994430403266775174692837260341394898080863460322851007978238397876855243778279583608029840805684539830640042460773163592313554092322782929342872670892351691193822596812902835360351385923950555694902354539089974755672673639257979106663925627339305185918822632465744808637426207812881960005205470352814049147714869108935235160441142677094077456126749507289290678174848264490894707956798403488879125193462681838713290509049172461334331913630822004627870947840980583814124294773922487287173974496083572849634971845871570679770133928510390387962384770445408283841767143943968570847082895291553817643375613993358872130013034932590986002909923873864835027436185597868119587988465074977316463925111789764927970616214212039851865369473514512967856511011351187644966441072177787595479115726548061422135584769522776335569943844933087486348198308656145362017480536546182390919509942033755400318352583874165472321426629612051065630011987281471424708846300041563427587524130126570764203574112917080818692804268003435844406520720733989460205255915089116680061414442425625890743002831320403264155512761692672044119026458210762498722630128088859047385497656869891857208876165028648472092862709543067524703156681966202248041937145225702939285321061623968180395637732287776372562387080720593417874075505288742927359401810283703848666984692449155520047897103643903803009437438349653224151315652031191718460323103962085936639101606660993964135730170880806434451808997828457182047926378571930800150329775540004975212370397195953928802243485974980382664412974304941644459005649650557136417091298932008838388243120774243770022378962191260053740712184504805725575948014351275928513672766991534498198226815305029798950353586268982325299489439641987430135704581026505658610197465632673714222009125139914116843297178224077195279169403697697657847558266080280067962314089008805510021630854764107920342785558806183209031710812359440095236415225384414154212048728901523985586764382668706406397526124435851932578665384434599581371862352085016813254464208511894413157849230501996461597324298062233141327352679819271036370459216875993150988268612360616507302526743227197295270130916762307851825098425416784306097657197076003997814891727729395815658971089444586609990422033314042696011683405573984238782975424577932476795842831263719254017899439220339115100255512108686354494260563389361856508021761442507029653031310464712943956454726753090658652247163562247237757730564493294802946613734532075643179753469674900174432960551351544493777075078561351185496793390273324353008745799266548506205144259069549614012490417958662008398629251134575260890600402140781016543739475075580490856246062546596760060336001363427207328646466736058529383118932600271904519448944453504032083383234269486350290832824830019338716158635702280412629519725806488587440271547951587319263616042134100036332229457171009681678413557215586243836469436825825966233749514840822509893767203401566960691852284158866970802077286718115198625721528932655896085793143535144449315266690664405331977776852600352657259377348059087488485973448849985743412366684942937678195514755512272201808301878475342685670154244006394713772079130086838713647794178914625047575364886545185474859060900879119317395371325493165071446917604770092299877485855652167886915364322140739399037074507526724637393204967726029572787714114782421111833984964854878477368222261358136060272363685795412830420455833529223276100451178795881062824991546973831959816267186019738851488948439478194801490263517289386745022546476474541616295002487421324154098012023959242582135741973111860944944252177037788471212292781536257142027958723967201048461195460175356135931347865504223143347200537006762056865862947062503862908803643974794711497306141112933482645181593891829342921990574279478382055315301967523489099209393368252408706467094315490084786394217912491857809914060348966311973796661332516785255625946908581948412228155109334447992507400028726863567162770224119810154702762557136122511714061159964396065043546902787914747169510998019189975438986302161435680237830459968172872838240152085471718904706857443911778251353393209368600330761125735749935119917788279533469820879923854618166313881686203066227667049897138268697357028172406092459967347292944479499310918065642664411462825340986826378944383367055146034453877822602252308229200773928743308930847619644808101626502749953743948141730444606469676755244965428767445916594075587112538874522340111958836823609439981714847895316589827504024505271465368972622833879908018473791971032330598293537131617150768601666684683791970569835415577185361530952405273191541030756528196758142335501333994479822730711864779110015814010976141238897061648786374073300108154688764254239802531872071554972887666466531509690521213750051834580652498838960053090335925448094363824768316378783925727847659597637182642645445983500552482794449033553192382571980836282569602448925637420706239894615058905504182282003722043892990778570011050605671508016541475219317640226077670056382391249216590882436975841129819253061071159519019077547341646175862186643374317683642457888862605026016384874773023878159668919973632959672571478333890834246470952622477618651826829372018277786082788723319317329199079267495298742236474377713351055537930689378747400571759385319848984325761415561166269869771824678997484715693447431790789662232822699626353154583975545554133063859133361431102820413863145833125956994719993691677373977464993401654152084603815132380895851093122629198968066291550827442659810801486392569927233820329645643654767575421780024941440008729637127619235649414076044833882257907541424238744386495463087675720334507938267946591104318859123423890856780568806571603976112059427242697555024826294053342526683919065942827179853850999627722904275947488026931715776627592861069733522840971348452503043555235905783599871970120539770250640339951266190636941830782272441144685314313209393638040250567724232433321963814555097612736657063599744275382774057811533012675400961711201286001282110417650117316799677720917761461734436426114044021196095996900603376853650965523931234579293731048384240303936522212437734935034614389007880948072374224787454787568677543001237146250045498959927551263612454903505887238689786489718005893776958100204344326745184741878618725524892209295721288218899896413971778512397922451761629361908621403350596160722463157915018532970892696039278346040994190711218426088226722324559848083294969677829346277334969117845069224979318602748628749890682141468827195869408096203710326337060678199502760248081860808021768287120975713964914433640604913027839504260057795116899045659203492451471868458485266839279765762414457180397551159670003307225433753507914672196623381757728105453526528436286809896865480950120036052880100462659077677333163658788621746452919865764802738811019362177400394828191238245639257101719177583412290161025423014429763526154984741284705849233853276062984649070809453762845333719547500164492998371514199892783039109215843900941908236389457710126401446242410960600206459438564499694288372824871239646702299259605094305560853047151718149353384429684482768812146206272746511982778386326885697326982787187233505749501349159954884874763032408427243140989467513014770188635276491556978651795896347475558821887304526998588213289172839510185810060308880710206061794739764533547026586092039782208087382366318434242541320543920170265134086225798712440491219350482263313882729626995953353510694641008376042384069043572256704277592694214865340099390883503332729714609455890265855595885790811203192969412136906729752964434853207275271374223420942768548649704441217431570610804947128511388384685910115567200942247344983716943755679213127973969315357908704628709692722416336109364131015117389982605598441036149339720393427239316817925620153411160426130649923645711771748656540006047165935010330619519281942265263523787322731252070574540541522490750676302494667851967063913145866583428655626775038856796761500938437351196097790060939067623982022185073776944200400298966875830592039601178485241102325356734370901050954076462348760376396085582738229117505342383984261448801010294199858898656223886220086751249235954717672563436066095138720611438627813021230718463030503245695361027342982432100845092003272523542113257020355833394972923086657886969991474114839160137091519775483433734882798833388483601195239521338291041056042536357518100768273403712114374750792649063812673442518252409076570392919959403813398036783386437757802231880941376638928434885503477456689077723951982970249095287096457960314759391860633715134974347896597828293215677933406659060594513522337604557982466264475720471903765893342998275792519926872967962660816655742207736564250141889998783081881319188924688753379762275682743644884518033935947366801541036057167250186648763204455706699074426300745671553706002947996987004040598638650865442910074082409405822435245977724170294902760969178377793038478302429919038152342044920251999808859875857882657627853954014550039840307395652073955742819724251551400700178059707870718059512896197838069462381985495621996969111610873967343221292732156697840231007489700538648608704860998616243010541224704423118035459867803538861521499230250249027983859066513632106543476162253824980450082888031794335406661104071805249998387532306001697002131242320197805755496732173093776237141573384055423913261215322922633924693637530840222575376607585609177362552226086342922178066817067217403220619985476588380418632460942531106926057434427315844386599670669631694431756967972810409072884255281102820220494209017614294404099616270029839367272616380466508705650678954649035752970161221579654804018250794354068774804204533183468330594196220397965206767807932193206429800612572746754583922178319135666068493517082206828983748098497942566267607011805069846110315110392332493924412241513208456590832384675232965778270436555596618802679310489527127989403797797286338455109990239760898078996878873074038489242188293222266532967545960266263446778900185618545069810068963508376289272411519731445738005400571918250121211575692392573479019749716189887440825533161419661071870168294138107347344699599770841863705826830531145533606684961322564623661107866194627828489327869206965159111561754289810344976386033798371875521248681324373574728131648491233244968710843120769412361481601462153235998931414362488603920594046263050894088745732386320331149385489262419017785157172061191784687067024586318616563870192465377376708991576329524992509452973322701587475099065023609221388201769026155503765700579030533933754935582875524219517494585166749706725113473012628389521662423348121702513105999470838450039867681481604666696310492618316165219757507045925553653811480789735171986152423601318634233383845913277471051554812483992864467690351445209237469020144208068360078730202380030054683973092424353017505812540864688558024960099908557155620831921272843879450514120662477076978009095369271120250529835107293264742281293764949669407813557609201799989211357434684842353781284043947103668951685372748022840838825864376436128878091093383854108387442440830696037448124901793094898526523692821540145427444549374053480672646686543121234250333442788329170937247574540607523638221351357311595291505909783370525071584888994506954540144829550818220312886921852640407124010938855664723638816251619160514540328007874307248245870075924130157987894271557428037753535743185049716602022050608251072200473284416621326183786565905501721265752351193839083701384687216124472511116483255956033742057051350185795923718377679393174442299013669241327210390677857901810880142760028881773754014044948403824239608088990532936872746073436961253831184420384322928921746204270921756023772110407738495204692449400097290807237217276454005715896718119813438151863848918105290898790156821372094413884778458285932044844693760364188067908072497146259025048161435004843030665600363708819119454081354505320398911985587119689650149406617356748616444028606500667581227472786587197256123792211233419999044593804632351477064221874237505593214157926446170320276346223191705710209664546621433756969354177648285385765253918817988289424598190128721760108442116324742204970766888481458491580872003879309929061464026151190375719709703613744019192439250548392626672552072848964209475310036532010231300489637901047807802978433979635330966900787929805210836012604264979307878793345529943929974320217830943954965573053428207432268733077726617590271684922934064523345885614367852507929809055142418791291304174847874634813701382173176361345020802997953127082424112795048869596452995455383593059025676099132178015218786415358371888729387825406253362914816012788615304068885638093614621637538079986044697582917170510066038640957575167136163501234624149002937232606917262013244683174302178222219904508026138802806307385733982639206800393205506088078293387073760242391420807702495145718312941393438317861453542170615227873309492475689286044064547537141095352741835172676148764161781678692172623112328687120125163226140709790458747592744945205433523845116113996527407632639153887500679184126760730579812734415792198605901466934067541887281240751569509596115444280558881069497960368468602186732953878533505537813649584616803005889147957537621696577017056037351590496403157324370219864874799933041423005838427451588562090898375108845699028494208445439641403925151705869841050727106157678308676820777643099076909019618936703993982765778044311961901603471993987960319998065663819338827034209713673400096977265337776713472766153378754325044995178752155990753145352246899253321532817429945334296547694448420686806473583063087934155562264655992319265367439719477530682657391818761952775910542435441733902932371347843696682367891250531180813221850095294786855492769061213660728381886846480996774453509160334933259552601937460144044980622113123396881865272414701049523014661795847249648151652182694304925869393086639830167586095952183688134264181843976863588576340514015845363754769596523981184651930630065598598264003046963688005242082019148928823631496621084036436860226295085592102398905852514753240713279027143286040388880572946460298334407922698500297034301676534449029524164996508605284522580840118866965799061681911316136284105847393922917216564039419788484124638302755965283636910970623209721450734695444685847027581963589960414192979925074175145693149872826210210124617843438906251133195439551278529868143464385010577931765596752495375272725051799329782634505871504781123037095989760132771149903482052489043631825222647181737245960867408617407557981643064011744147963579777056057829226682603415611932975712139113012464146628701673151374619853198886464695323435023583912204139940846344002627436223059465687294088843917393034748381415728012000955762057066337846931721926664055558646400593856209800329306305080329112547069806995441078752375607878810286406608800768892620364967606016212441731429257392986279075854993884024932475413268184445371563736665780261335873274838701008468977405723404860180085124316096985085634527111745999185676433623715651813897256385356239541459579264268709610794943757563424111186172469587571680208115331883352098811103726489261807929907895048551993373757600218100646496349777434261133724756844466208871338458947213239390163272357071404600281057317056346577388723799632035343951638676271330167770846609510682852986225624530967147110327642329725747906007703883548330979052466807882847264880461740290336173626808878285944484019947671049148208614377513811520524872616202670504473157837903803851731932862917992982536393624072175017179787638758048173600985711866216743580567531180068137653444849717838398357258715798684119783129945973308553960951363094862406948557761500326446488816023244603439645290027131952633663642545300409551993922649660734627008536300781542300221974305403633528996032524969572907009959397766474969585292370303668222895935697133091676850951535719897186958348459189870677263517865362671507079461578238900861242636234667769369985267091334405371200305947816539938875004217094293292792173733609770388001268312820260176208019040496160625173202161852027640118633719106679748520590209053821984122289917941841463381035391846877369420441050423012262324608833632614655856506957573908738658711721167495351487062696072448834871915335273796559319989313590594406074838031619630516075528294789531811286337845217452729871103682529244420707801004920550435011769298664760590739370550382878731869611295478779252092637309251082766475155161077628793743923099100970526386329852869382316986948705276397494456452996015825374826387846304405799319003060085497626885497455813811022161200400199592485927835640949556700484150748991440273693660627384937395527375571507109402592402771156020112499487436488407451937051232333661559285934774219295536966689413669386226340427424100308790409186079142114908123166873492626503076044253461402003375987551188411746217430323418850000113435752695119696764356382846696846032208316974003451663609578732842439666735927223959764477476913890402632920281211518434645566615978733687764977282917954497334493938238260933129946491466579712980811102086778160210783196423127424001646523411131312541985850491470438739341738160524821359655290522828341514340275039584605267425286206396022708284304157520050705471879554806616238587696825049855426810736775144455877384182870744380308246170892492765768030533255840505269473514320734159258785720728603438952376087905118463400772052158298363506576828534406827999773482655642389475483102632492936178300765753990009771963387637034272767986011944918154739207358321275804537196393053490347162947585360241186917957715718271501208017974699411495551309978070375434978750652167443094868060500303297418925706075361111018021830621227477070368167148657136423077917653235022522795244051004271034232212632980127239424734140684221169857490037740642566006964728286685985667100405680320162223674358352219608655168208155732873353387434070247431962965525886187950305299890343971769836609062434038888140377429156705728380567546231547074452471426280560855364749538514381247203190255418336991617959174461956057116071359562291313153779888903076800773864271759463523809703647289253725534970029445676017576356630865974547309815888792495662969742144383745313209281629626594103732296674955066746643352468362458090379932991293443597854304521586540507297873170698467406265751714260584901547623263919806698373130154885401491841080033595314550806800093165328141979234337893567187941039779793848853405928383139149723103239222479707249158438510028704186998558228512372375893957031288372688869109134175308531136160089179873692034942547202145289179776324556145834644048983955340621195786940153375756392956521883298795856470262949325922065725370886909063825412136608349236583475700013201689861539702823350410021751757223449567841388901426930662710366373486195850982342549212543332720510078498954282336048892046000739020130697231442954661342361919570231314753822786736173413958464651907253258231899156672269465473256746097787348240402815785295306438701084214127009522191169973165132501366210122457465566997690864287937015759531630601396260480754101300366992868003689841618139984442036020163710874796861798554068400686076073773731276501358581406687606468289741534120315354279035391838040437815487307064920905017375484026440109570774938033638305362905702684057078286148303378711785981726923183644129676753471854946078814316610308313059209290628383827191283146918855405688750259411313290815696351848076866426145196671805620403905381176939311153504203492725236651277547162063833050062476574933568153411756639156548353104702752039881570545237547808006891812106774730390857619370934102324093603432189124813570571851162225522588260483061125823170394561446753868351423547890130194701102519003874779649808072488997558383208957010442004725322708256006026533025534502178613954261140108210324737076836338337219770124241581811652565515795132538674201642011204939168528132863616435920774327134417467672736553726181695975712265519099540739760404144929242149617825173712144605551264267658149716612445046641507124526765980070124459637810683701404358054862292702939073220410991392431357693580752193244106943265416090520840646075660856962346812216235828412643682125631478994951165949058751403441002373471898103779030466525049319204911538469639361561942114201523838121702720065226598852458874484757228143119834223000965891202862140014408047570111625975236749231734392448941363849091746790303061249741860380182919426722402507475312108894229734844260922973670547863966371623767814963791842040587284409735234978777920252007470122321344760206858287575778531583334774512901764927913801029934770792084569131509364717752358948786231857399851457502021277257711720214899625520477840743804081045628860016498474888662223203490761312153452901014715539008368603259689155787950126829644701451992735715518924776323828617698217296915954989554057219986061313690757885845305852733553546001218524818699468621789002458226507254460303565281553291536239595158529558711706080555250553010701612208845910090435754522239091142296360262266539595673523639198841069602742970638176839026835600022364114465777309928908339637419287248138371277025149396051000742511426551135318723204423551322278674403866291923069931800893621807972942859215156286655007369555320805060818228063877009374567608366254769875119653495351659649405896224914921318192635855713389745010586600994815762566805633660932531403352732966167006810661247890475375916898475804345345529691544901480359675800783825793433785521663404508394978825501495664313424167047990542625661994276734381774580812228497856777709891385783815036488027918696370602904947845507779069089144994611565575892297099750517259390926155764266540761161928887155784988111146597823068170145598678206124883386777377967216759441628124723435929066303259979656353050311783828107926881714421251053402956424743331005155784430896406691692193584063078938197200413516402125928328433919851105071894977661726248186397890962425278645313459921113613917884443505782194897718472763765319481373795442587778845878890456327081572248021975253019552986344683259529395273525750017652785978130534110465858260310635043547853960162009531600089391216374758856430910498280671745405851527861800935878339344043361276178088375656270950022439404566393661556233986378832168955633873297128306127523801026181362577597511661648143042064419249258186377950842303230286066764326631205423549582961844259139215015004127179482634548704998513601056173931027249284858959255750899462898893005435026077736910240840216639572597211318866378520518460886567318582593298081918230052087185480810600331355325245232717831066079318677654082035058630915473410516306050600488864472950865515290153467071788506026686178043439766404130960516818044059185743810848344914176726500801790675364906643267369264212297496967175091445798269259909807722963181249566857067456141521310648252861927555884151568131487130304847998126019643376971104112392537139226589463504335171319706662191724558902614153639306630357333626610970865183888349113238865235866610607520458756856415106415329155935856431408931107097313089763825443784816328494895459401560713925754498840983520834600385435155343837446861247788986471501835384601090475561098388021509313318925018510732026124737787967688984321933768844131644732657920152715568447545713348249367597105392179127952901431195288238967420444061910453343810024818249222924625606680260235630017392448657472110765493339918283281964538854701668449292828361047205511687820838099285864587183243293124346862919571702188658973983435706778718586278079935429458214725669714452040842579665959624260692177463282034911786928777081188342531275695280738825766119005264424667898347392598361572590121534072562683202857106586493858508586003470834957197628532663618403415594719113365050604723779132418966325509831420612950403170032485404388878243365876726750493224792741711853036416711806967551369917523625857609556350691977920138163836271087556550997720512219686664574029172705941970086535836706294850417460681925692186140343930007403544276497223796705381513089088983117974843759967757308697444775425225048513917791049034678313365913953404403766735315088534242303217353111635702617188391723912286593121843686198789382778474667281153969892039308844959422353914836029861918267464555097509099675243687232539492570615616808371420053497347753804954653332254389901771447746369240973719248714685631790287945778068074533771953362410890247888801503730950277687529730825896003511053841585619923193486752864772164726550503208336512193172807399968825284592083646261603337850918175873658571486021230091594195239630586043103821492477170248864189928199128689765464695729007962568085210641669451106599214540710358125042522049787828846671048790798748422656831980916256031516021658014401085656387034976228776210820787361179126231729836673119907213688963857118798175978303402488807434557795967622428335927568617738298913607803111740349938963868349773102718443131218921134502574006363513951254823889871160367641446766526806279235269996636410551044495850880734210366587958270156787333816226262258854524967840215700948926610380245030644013725928021474202980844698129547479592407011296998865073696238158017113937936181798068689427938522823214600094127980570541612567112991980558090382131125258507502935939072232467917696119916118928202669710907826908395595778006641893536066631996795075411426772172048691928728963327075592893713366751875740874269785743288273855431155022690570228075126809110913671552183153496760917149921756142506597192610929873606515520045964139929018753998970038587666250101289109089444713888220454737898432774167280626395418784504798444567973646337013440562787547506960633830447548534113045852158648684443060622825196208794403506802602380683519250921060517236499146724324934533702044728829669492904796651125740676694154078357326868499391444756645647278640204949618809042948580553233121933724412893597954278815628364844471651745873160090262740133535571418147822633315019818125688387099276735084284178538448190383976287714772988159254755294995481166211624611727018079495724329733893101248529954058143802471282817636021269506414253827519763380009636384109771699409891563119465954373176606232111517214682282900863185767768445942180084895754653046683839408830463236307769133343371604826040613655735003239481591725849915148986012668578975859152539620890120283481271423788404145184064393524026227266540921418483812958152288321294757880968537413951114832155508072774966344849210037151695762760036983369902615430582117191599950896450930856948893337977310662223337754291033658605752123404179432414722660581256478244503778927355579967388205438903734076154098249407488490295907457993429528749236884724250385826204789913408885070069081181479854844001913168580397961274370767431042858196023132794607812624610155462544220827136100887965237751023963752523129303090872993365920075915203530818981090793712772072128771366427185621863025808083414807759536132027659934303017277643969001637840172588252343903180982321958573611112899598189237051688047001578678954215963652992006282997290901637151082627995271922346960123762647968057582707898188940040252787710513145032594822228171479222229377005601637260794984683438505907579189565456147802020215391606141432841616435884245847711358545196265720586844847137762166120615561712954966633278960256612299067014666034362371679896207726765755998062119985589234377883821521570445670490474774516698089344920036181389508429407063031266626476782451714006823286088802695727755395786231384681015438977553927795119794000249882378730522870256162101418825850901096321581602376784878974833801706391633782520989824763234129546049649442906736809371274449587384519299163893433523490830367421091509495217048311656309369523655868673961934205208500942663779060035982176383558719916928316516683834153569010130861950769933935151735217873037638548301621397120550740473033824371146782778710222701958910431712380058442194222964272926357754809742721175881423973096594496889637750881775500713643804106111069315961025047526892085021944865369807736248746951775163373007701532058589369024819368248574222341303301410858024044558753930824642977373052497449018517715913553322007843184068961105146184452255956846471085189583665461702744381390899300194347666911804221666373209797659395124178676477892178131224565759210330387404348003793706858279585746388481914122071424559046878743462328562075785204978816672114666752505542110591745847527199499111054791914318250210217480648899121897134163816898455216098947478052550563698566040383136817540353888586933280025396225643685945116328285641223713591427896132763332586381875366004336649615743701636950129541076481124378832306160193526816629254752821937476210945305901432460052834653447237040626639422889595090023159829688564734186848397691632932290208347239121160158563245766543466692606627098895906379125652745804231738750766824324206045848401091170168806889684126246836416381108056184074781521346155975278601445744456353406416922393549850469985960435113496898480998716905910106687734426102998328954750995315210534562293407210639699344239916790571395625813674532051135894557169414095249572891269363294974675286391880931573670173902840080222245422394252069566418124972834850429999376927425733487636706432736159105098279418873370040613665414861568625435955406047807851094676424662219942779457842039794110876763556536159496700215700962850643589004145604154410879174010934940028576793395601146410881750575414612554862121120076921198270388590639532303352929007487608290511854625726748294821383309055900930944807957807569772439842333551948589499644885866413166351980422022308397769908440031067887300371619102006362058491559223353709695218012264622925332051140482855638417958973661144804276923688517919215224652787660623339778160744248327857709122974745191289284254405078578035194389986414628580891639339651939004167237879237787354461491870771351199297099344433560683159791575162353928478235550038101017558617907105543693349690943720224248889697174187248484603502511513464968612076317360971168862278485495487179265391332070524977183886930494513580299277088117389163042498037142890244335559350419922623865282245454373516579342285628113308896719263352621904718135559535742822131751155192592166852659297744041549240848361275707006712656712061122174791933927144223606438066023343699461070664685843198663101024319175707697929456568178363132726742348631577276699752863633658748206230972454423899377682773154146807527521093993437449930964818160466497521835599512451908283526658022517317139068312696011000132605064199508561413255943983743183513959271656076896639774727209605899341681396731196716238921807217271834629489578179056869288395854760183115004083763022255729685559279598731131856629075283387710511474040116591076222609102230835328166148690956491172886191265182272278403203266894981765818752810835298994702758149777406507342222422659046676909930214835157878856863022693988264581039950953522021469500621016463365458351181601141627128309050761582908743105269591581010571520291332390455792395117042324819642219786503479980372016274176391552409556309826403674839661041024567532612088643040520720733195596447385285555852477261121139190715191269350639863479278044843659801076012393377632594785362052776182903355087474594712807913147299880074741810200206263226605215465639678353204429462065170158708362090912009669380502237063740382849812364793065098904180647366443801901718138143072806129760678641571225492705664407750440182491387949809477765048782314890193346351988365595729394019433390142000578907252250459223909059053035428792444150373505141048251464399182933052225058526044315816098567292951543497211261526773743371850480582569567841796749930800937383030287592872553973976893776355866876540733484096938644036833668491281871184062511525404167768398844129009571550722152960622959851624869050006861344679544700081035796273488914705810979436146430014538949363504153870233035927343237913751421343443086886160550652207324655477362890439693487706924108573610084508306962294729200466176241306512784310334099925328277801503605504088388916379923553256699757089243488316579554385044175763488676817738578900960988235504814887542024189154215357174814170164683062360021322205030865226198435635821710204509644894761396048501212031392973351699080753841818218328895219113653318247197589844863877498951972371614853187722601014453433082190515658759074946849080331124267796035258638099951997057123121220847024255948888763661878031473180451209765860328810680532550589896076046763587762522965560743202974998851013308868897468080236186627919799836713785641597497033043166267969551463356158896782516344661956821673952841758225628563102469158828987044234640672294619436894851843568516452677147456945781401781296263281517463272335452115039677254740787203405233316673791394337727937700374998325746626117898530751347906860459141089144625857483568539310347809886794188644679066779018089202097211462379351779150690704296252222378696236908697749397550361215717729154647654881297182594917885824304297418228587442315476240444741988630626147472348346212133332123867782684174088500911657081452140702940752838851616049178075098148068154671305502565476331770743752179673450547512138708866555719857283525948602431105761824174007360319510286188541997799803706537198842486191625255847949105935040411526219352240213295810156731698526249044233612755667048487901067940481225637460091612338080873177549115427969607640254175760177475653658751419758330080953840134718181191180466855340221633515670477276378289444354568465014666390339804905959152027193362617971828786019169017551135820122970851457367298299700522491238187413083915354638128489809918051636905687670400921980844444416677887635980687489742022445279256954142628144109706697498949604105911469304335300958836214429325420054979162367573396355790912568065326884436653280239759277217206231531486779847843387853409965929972609116342522646885635628885466149230642156951980756279438671420182088182405657844657037112683823294615043532318992671472206030036689789897761917476395081211430052784222713150034042878995437825397436233617407357179546215596157496109326147602510902276340004841625920119471158970949688594494707625897824843800374839606718389010216867275146048526623794012805350387908811010757595964815425808973686821331962936644374515072929961864130063304009873193047912089778156218589719424808420897294984950679613721729679175700420347012296700506138479189447871660174335804032159036946829389489088202376445052117963221515499573491231335697722640404743849949999379014602339243053233206494700020561955907213476789921601317403448457303690264443603391477646369549128305055450572695049590792455512669074769227450996042427900637855162062415236923371016282157568830465719168407491564178407245593282014988516399176974716263996490863467603207065189828508316936750145563556124715891522797088601710898410661839675353723111430238438123261192028837444799941049589998694952095561247051915210475043613485965285786005861119227385330190916801066364713909313340146028493878908768947873415806101827150693614939195659214968874533942764293702674360221251686210583903087395053189486378672032177550014319222671475541786394958153523648411874994314726851310257894963385487741231661140359372265969803102222427936452982887574359598330684137949200653597279277697031530669947635975826329310056397151835826873557851720317384724147770301399890141959024630959490803807214447587125220663912518831525797483283490360027041261534855931065070924833551003170113242224193074302272810208806866314361107422240382137279935056836914027670034794756759829445986871835951378500601055705523430462007384112486119137927863951315088523761821628123889131695677778792429223363191433204417483233710950953061507423389609179550168667283749962486524301026195741523739405924147936277234937458921189276615021375962494270121422028709269330895276999888944997266660105239347268270927400402363550811253863981389710951386668517491449993706732632701525187476007852554105266535329163296648721988009617408016996934054294662488964685737240831710360514576051123215822929512613548273838634295409291672029977608109348006009160083364134091167178959022352025257370107990460364849298953979734163451295962142317902703065370539646143951815671698038731527165285431067580120019026798724480294356282358863952236188251428294393841502939157533288056109328869681419485747485514536449756165003986193823507227679072643965464544612724444244513526142562385563492636761576566776722130833076497678028686463311539219152751975892731413214618319348928955768725365774323724026300113070050882556197212501275115434807952944705511084172659147394168960713558613143708939500186516325497508260165694716515038582198956070908276027941285699913632029681400172570412313438745023586496737233368430060909791306132301719845764656263166770127983470088119885137858423015544282890107624273636534153974615228528211978714891733574308598183955478658084202844999770494398227278106818587627380482739205742243993772669190092448848329537538535859336748755593186994078746864094924836742781557670772625189748165121174423838265775549488035893338485332001478740741728049206541841482101148795958311715430106700122256380546442819820674307683530905574736332157067383854122972106478935936981075452051814457270151493472838077753183911976527158756851499023425973094767510932385874805469396536896045613531558835951717893743324739496265441152451446975169532121979912598184311096587735138803124534179721258308141163284100655762182956811796291224037112120902688603310416299597963672698528590087644319511681945616032450982609193510922951435967119824042514534222093206663859797115241175725160534030029044431094422616426503752763895049339897343885121033275679231099774941380113727165932781731215698956219247561730086749599623477517416818976821403136377818825889813417848776523043366292305867486677170178295091511922789599791342508800530085734736963069614417528283277430047140513301318093043312905227391492310331955920132886226383184735604906417173551301835644671825366085704878039406388887548363977409043786369637068208183885869346920011424881204779460020723278196681179010197431627695851005109603757240268319417745681035293554223439108515725935116780957966632212107716738449881167294297434549384088287922291270161689529082577959542476427977473217174667638683106750842323231229405970603716559448534443987743516224247688790641641855790421064895711025397946360537664884922074784804084577785816391613465963598435250644554536119695641611038826028575674732188580056873895255759579249814585396120559889279675009116402655567064920937017818667720224949130466163007049108741506740241714525851897862690929881300825967223730961940406157640292049705947007312652295672880036312240897709334571388941779039455459286463875368836668002023316383211715265890416086270482776491483216000071642466031691028988237558246231054887584126677580262450602375658951430380845410007244257564155770150149954849104338639594491168278091695139491533304797139948317724445927236299165613159559854968315432007496232861274034019463511382832561308311918163328578908706989500558749208510518699762475434136430323261469229969302630653900999365794459763762100585951594523463596213058246052125415962195119530067170709700804421241268700518029407559950371285910122141233782173490989788558913195312520273156413727535694082909797812727661345224117753184283186439738896525090278591607434359217900539609738023276290795819236492190177861430118685995604106711489043617535617102125160771672746843824683975388093390698347944318081907073353806540583886701749637287552784074496665230546017202591235026710998119921418357057708048435862692878056585723414468089449041030103742479876930816554364592573476597530453373820871163635022153433991237427021003745966780928702498537778753461756673262848516801744372601063113386981279263980365157429760963731696258137846657539346512978142728942991393258963607333671510666429432944728903764997089168789176219166379977296029331229912768288557093903736077662620373153686974330895490759066800689815580869718217036609309707540212960889678326278253443015762032171181784054470067085343028820255533944680245765234640950243129184785297629423839169117926977947726109477125512069948771474434070717160661780474856115844098566070488651687479281525284130988793550303675974375356593941911048793289909414148057614669136690377889692989654714258746565393177511551691118529161768242896571436995382516674262009877211118317467417390329710937905994247651043449333410227010462905718021802002250301294380648133344664485497951724523401211881228425544085559350936243236353890588309031108719890728018374715913128467965412570815995139240935274912737347726056803416984053048335711547413485464844178119110535251847768958666681307435983472615820637629053458692086766067623271634068094744386604523774894990286854237418664108781050763313045369885081118764877976983372498977670032052615897405103983497029678944382398169567638552797649034722599107514742878286538458293707188979611249301681957607364344447460376175295690966355141959287595480425738938730947191987484281528496203581058198996177863759074224962340468410447550030803022869771976317816253119155310797205640716498496678493408954083955602511809304253075616770639587793164098755965056284459018453356882754023920669137176379524056028730169820671731238136864373098177289061992277110336603591206963201543987196944265310581606520195008537075363200400391550975753160770886591232795075245577217655374311060533653029998005485643025096802070927719570958230102036428198753665870800949531385566611055841178569629964325514376855402388824272525720431595038201701289120837319200121051392252427326463573037999503106461203822891706785200555097691579461090598139413404656939897270593109205990537663155729389783122187698414088870083830394941670771787770540997659847722795473939801648533871638068559458802785785881945065238159007959625174308054636711169482525451526583276950187108641604409856630816007031865621272611960445940258842140265588493032532190860686232867693047036105701008193705638694598016940866138857554182427885187759046002926822459472975732060207926246761250812087082669855293954811469008521318831635872588142620803332627220496550504484419700865679689978163896738164324177287497154192326183518528104271419278541668309204637696048281649267434713857953211356476203852870004224023949493165411854468865434749713151550374531546312018895381481210313635552142183487509376787576726694783781028980278954524505355004371273997311513226809417975142649264497371035271725631218925294921336859636938067719845490344858219512222027433158042663403097389961842985777081301754335522504560115737282498924022293693047373621213287110151703844223048779198368319595984708683361780695464139034734076039513137201692350828324915982244690709486679866283150777089625391651774042175104455784531011262463046061894255561996538808577582818993243464797180268329133761236622117688437902652262841010183506510726126025842080448026476840396599787264705898451218259187051149563769938687408406896516427092337130390208775761540493146837029002018733772936490348874448299051412592445047749255575537595461099824511184294329468138461095497869307796346088611200042634116507830069026727199687644072351907239849886134863223396293163501191835689159572546893406924183826341382598924712530571462352754282831902007928490420014220560705369378093364023204085394127785245959944520852984270767724960557964918707200929910519227461738389717172629643138442584653450112122448039347390934658502618391817656829641495803649385394708286030840570256371112139662316276242077729754514385683600156816123089695143353442659883186765507462876679744522277518981479820726174365861936128589185367721239955849343691545720443045341899697187983579287966181556635444716620529675328532466323319245662044811092998359393350376151565231517013691838501206597958468021995112363723238968562953490678262029431358058889454843742627779977113709346261844309780446120458857049003275253277271534679705119700339951754078305261550662724310921830101081187648311774499837581901420497177260602077581860207848261733782325014606167156204937146031812964823763453324407399951280982804579229135258064039663984692341469142283290982537883934451236259986551075261335345146551139115795076174171440796215261662789701293755861451434398551294404206882382528986960039917415780518005396752113599660108093485662356866652511464412746938114638995875912642273008741207825942582611403178290261031760723462248592857456674507488094147530845465234636269229135111741701721248229316131440374146329078719906555696296675373347336239661144919831117649883675594124538493146838314398310753527865519097410494461868910974555355419558424594449272661485693278030885850558851584064334291107508339759657622728922653509159707299331871174996262954414635838511111334006778610272213454328197353910623873168195748323869749863150295182594853386508088311117016067398834579903835818761937557550689659698489924712036276287833534783250930689057568126336315020826884943636554078755483491046052752216810541412568926996048918436619341880061020011507433847340129829272497939497132608881626271935882607322747788417842833007595939428112547327534439956938876386492569585001050103812505271322135121639617794334009980632395453859963906986666076405845477088132754494628220210764239355440074764328089946201829340061372402597315486622695193829313918740077330423619596437039973484103432830075545448228502339879415418083746817879916639164315964721121996544169549558512941362738420993573679861849228557816253188189919634010780493595011935067715916891067862057930128233983390629978737230199071093526845951604883567875346156516415043267140262846502854744536845931712743228027243118631016393635680410670017135005480217293023775615517355566212196336498921826430296578437406192082709377912343261569615298832052062343969563872750840802944135120997680126352975468474255120412095759332644681657652881068619340387718144824904654990714380960626380824611078411592967986366220310734307575922575119067783787403256867288086014263538677986232552869691949517680072578226952823325735841200072709979414681887114625482880099084027298264378385001363343872414343938274229360393054210549850600349023602867694188948789357664939856801357028695207556659954343500858922360000657667629514601668065346345746464229103999057582578571765152190022398141642991095360587923501086177659700496141834927345218414990618049237239570448321202261194331435723189882681881694723455763256440138603269572767765206301268360418805081436896453330936036697595373813183423861398431995912621536938064980872920029254132082730201636718345833551523161313444382399537822052176067040453495680559925552183080440731281006281383715577632313701374052997556031413000681623885671987927596273030963424185518209257856097677914851174332248304045093934141541891559194175757100610361485121116714619549414106400330721830045548686424492421215039189219990987308261669436418934792807948328764233202686041893627322341950395134620196975608530389320388181956334941839733108062419166996327074439357542582591148677181449208719499859386476318643004430325561152794485361452190630642838249743265636072133088345065920882818509322137741300246984405442231168293458153041875542090342166151176964107425704456868349397570895401368377480372190766399814486926884668577678340945109634927026859658483269574687338016474377567283877505304511788225939461885157408768561184897445484781066699768789370737776599230761783893197610487108333130691313938415605239006515229245616583384715806251479254980526598216833031416241540846249216521641211437779243767199153827138328432873946194145456140574026822071952906148899094114232299218839667315736285483375043181944881065427277031036241725459147104098265273026184751699410502297344305455380332189669789842158743795582810534809835391019086684065878137519976935578622551813599391610977562958129667936122200122447457488146889360861474731924179735869642179570626657035261686877159758162698465061297169086463114881301075457933626634058481805497808382057766063915439587913525488557100515227719221702174524263359170158764600923094150362341577742540552686061937119943878575712160749078784771766014790212457985845599865587888059055357668795738674108301367314306447541086224422678878031322248734291613880550432161131384504220293980584134838420920855483167409596214739028707248362953724417775674422469663794072905608060513519407250112718146243087814491306866618671490213015093902873691451187294494533574471767859525949272499585005719038227157750664067773106264655626783087615427953936175811992103026055986808605603627809278891630940729301979810096328686543263277801090539829647423168477838395884053375395498127179357843334034621914529944417667561837238664444699108530477766917594752288120139511094884461086233573097850778071977293817400150682681588544190886002259007287352066353948921741384764992583198090373154725908470780981924813217907427874471883075299825392857208409208757840196075409240685963904434981975997103801985976302997655998956375842493971535391613124840668230838920054487345271822631805587049941925380364055447496440782642637642557053140545507744932234546618426231638921227161152169675112516961567250152314774452101653742495639938159209618101896018399184918801167690792927218736636492169576743854972499125854852293785489369761343916270107326287887192786569921748062951949099366509878782461412911350326240462037937041663480802963275595215033161100867092779845820057258253478137792722698714616941410445926499247624844349521578850620054576858715234354742989602531768064895506830924278145050251191215930534136790448552955546519155276712014193874698232168981206884535867362158833927413803926041760761921812706848662504306698517663223426372924878539769489662809185233250810974774342054745927861349433208393190111746818176300854476948129629328885047656167444525727323351579983776340009127326161959664259439253795189664324571050122543765022939212453820788754668017263090222484402229145172497677328513834451300687186049732231571940367738017003896836973336344041824415705846425263341936042724662469577741578312746120772302933770963737175596817185697801248836478569095128691241774148769552917576981691202017258613598414704386075473220506634538171246296751037424399878438806269246265861262449098639359042130436309438058674423869608034206901117124650875699658561229603574271882159072914538732161809790790045631771538474204197503443380322169139344620492100181348830516390531008758780720588867878853466582903101882662355854308216454692238179122060745563842099294378102390535984218429329309749301046827341327234355111548712673089635298780138818172074408687876220172550049672330765357565601935178893233479063958599675773059380385106825536435157112904474760332989218180394759739765856181175767027246424269516765678083499461957558019788330060651359936013394571266786161227183812092453004705282723677859309646420163535681694905171178325599038839107433232863224953532525691511933401383837213112399682200361224286439749249127111847458788195240338875766067908314043078478697665849004545156713588323162945796279163595742896040979808514086987690323790185897129859958586554954046710502243293474495562012501826635351299105922738207451684738006205222417462261823551805334433358361199710767014208347464012919907370303330677303888007602379999920284037319557626356047937727139176712025810502663546809933283046610978538526773373707757977711648325702654055046944358225712929320081646733102304600923498886024814179696553669735761058604395918039528919134760379518847369225796000696532836222616041202463326143172866543036381145460450674369693427999818548274994612637627679510703868406366560456136569066170807217222515866093249340545989109183732112998878395161379396304110007170685862957312162286443761542477375361436597051666575509900256086844155609315307873306741638610016060906710817048008604664446389215726351312607557673090154873504942912218335966274267885461832416165941498906798874184640143971248993336017849634757719157033752140214337823740351798289133913338018860807115102690827163438987071124985754718181957001524857469442511429978636537935730687591913488149741837674142262888880215415948579789908276412960979840339228443013221539899737638162747502783538408168261060296760605076365310315842268849088112496961087383632027013296680571743865809575269154232326955775221722338716044067696748749289050950204915713731467927371305186251602609528177807771602865602037038221429467906146256985406318816264951482593397016096597506143790892357783098620174527322792389711599373890126633969505536446381880811157735647384968836976909013993253965805159978454855941717445371691918502508823460276035601807561123619229846372873626311200618746287181074189430288833069521085955188286653672689912869425505241335351607585457618900331127650879074925762508030921945654230947929490204939570750614020326120498496031855147393345033282754311757188039300907201509534404812238050467233313930184767826375123034647823020469143176257095896811528627260110845129181042067995050769413187702033492810204667549489105799956331911315110872000500091614186671377319584316902798059573975878076099543032092588735002932309293977455947217707735560667867207082216645132562772685211979292841626839058823787146111091955117797029025432987123109261934398702588559135920534079701410501621373232849116741044807970308264117101365284553966043831719950229719002246252795129953375622033802367092367049072160074370514053172367659357526778000171837355934602857871368420531284626927151042471893692850514764952512638011279583062919712119214443726752814191537619941973729951294144127879355335808864235957653733262870815573786409867211866867866305862033950571509198411739557857208668656247992134426332310906022338144529658372575527706854547907264905726437098846661193484301631536497845206447768740196387747470003495066861487460886212071237109925705365458519012199522897294584543168629548252709798005687754117611200767047755716699332405985503364060422664981389647279229660896572112838594119786703028668658414846606376778704010471455290766467714283338615533272085782669478920098063421513612692326931120441524877153806906441461478410419136652346745620338041122677994258671743144298153616058549090250997831830175675578439149835053145878531520945168885464044792428215342100330783455351590076765256706293523317203039640415803276883461372207363661380555594339602237221552057765705520411634326760783206440012659152246372707658678653193219648192697263071814683983348192374427255487453488426713127609539601874382862140352640826850959283110904722459168823963446540867564165372203763256275169304979000806904057858462549920239341368639204767328091453522811516483921424091815045585103931984973740891918320548536110081434031395503591537218378775439047161899455194344489618265193298881101756086743007780155372736664969056462739859402611167059717817753308456894016804433026445978013030559780225210432810058503448019403581986139707447597800530430851193848387500728265599169094618355656478625980941752839735750605612609227301853813418298460345433350405970493064795387073042643756806737275247423232059548624819915636372158578876225978726470637954163299568871795859096599237095148832189198208904688813607236833550580957959693603916239012706166270735892748104499065965904050699576424300468974517124052835158257634337231794999118177854943519111257002368104827905728623108963780796622559113590007435282720789955828990000194411983985862922498275114380792696835412819105158571607550426640117048287382904895107127845833872277354008128102880650010716560131012821466018705017104625401185584564204991902452943198721508190477018979309191663156857820880590357820179362531133217883137654538111613558669930743948786779417510531293571238657384769315742238144888006234653904457590495959787509633626986012761154143291077610458317684564920702646667117797377040617507791015005099266449880969413681141002805224714439810444486078026820763824178751327882871278092838487222958817065966900556236454153447012478837003497379720695547716643299625764509068914752671617592755175315614396702044011461609573185629511346519203519205501415854699556590058068197782481859534381911422269037324193450375396887807276564195325517910897915122184033397398497722629035104922536693035756589249679214733822689377768199041015983139459095921356993159753323920476640622073061688916266158425592682186190148039486283075753670048400746038851057260313004824636901789150092247442975990846711574202878005795741395489433930486041677426742171389619477003692655283999219549139079233880408582575799704404825531181331027897890797162630146726938997960184067928109771281003877699916855906690773786381889075178357194107636478843668292691808591274175255568210642791799918957498430354474236887379030550499621023428169344558559889027651907859687970226293760633583554930404346322649611655943233987408185928579103037956904709996237402782030148229864947257773633546387285346187945547689542319328637254589735465089499811775611797822571132086744401154748525556948280558695862182191075358656488210121268120826653477497844140301222708218873778298131280584904333189393985477615724066783302603121688912405573488147477463101950590208306940975573136018551267664713163299579882966636136029835331788327076504756259814355042918291414435422080614943570250355962238164180319207352736319020646593050423961100595570568033352463285060412512693841177340097865682171517739994777378683778786520579170936908689908656841418832521206425606373368312318465265754785530900972342050241824352063844790630599082127976497787374744604586938970575267934531298735963243170836186235449697655037418359268394275162732173832393929256448033793453390814789220691223069866134963069611159171631323507522117862040752965613407949484802999132120033181442253102964959757543239814317095401790413738873134074127721886036737272607850324695794044553259861656072965398033432743487987488728155218479579245629220374763127649917363906611144268732738677875889953494468843398311903413870120816167917404265110789432630713530479179539201458404703815070013334548647372232907252996630656205039880157864882721985144344042640994411089665472975565455528731861308993244800581827528916816875828842399168366519613131871817841681995017540424745894216695274855988459252411450761706675905814380600422631860156685923276124068795793061025828049627405693445965474372689553062837070369022918354478964576757155273698251995091018817714024986260442569714475748029795634104863557342820385493241146939144703223761248623739223734120749306167089549312699636659650660119628722811072737808526328515484579266582798878770772526179944496452208198250261619262711124828919805857374292529959745236477558583618037145306559378907607094286938748348015911309610016618710197864349594360675178942154172833660128616452948638346887831878653378363759018125626118702277869507701344753155008576553188709551715992722542070755488295285661086714032233093733802763946448155179592797307674322670352796121595668077283727069901817955655871957873405016874548637301370827994535250375735994183977659405418171591116339220741613523337606936630900766582585354588248260982334329288384670149611622267565538678953380710937853447476755324753466242876393333506213206294246020125134446701031185977665308299148356804638000710327585605798562097838842738336082119005025782430517877595790814891450971567264549344374589013955615131216416861641616082076485508908478598522380761191186481279761665028654156666257159716618007049154323799155440958468086752488078479037679661247703953877567107829711176376326318397064646177246422130670460087317421144925211038832714781680970393161224282876027841207107160802314915718076847624785826083832258345632866307415580472116635030353698991845213194406432643236748703721934483042665313240174958221062440925461692405745649897559200937740448374473480157096993850344171489813043545918970653415776236744412240674484774923543450012210931090567209165725798900287250459298607286076073314300586840445905278084094068170730542969619186260567947657920301962836092962117153338600837212788734648394168916865178822913588033439079778852213500532856545039028080968090622368618019723194069334925068700634335126895683881271816717799906536398182517664925453950961829317511509580375180801919739923631446787544060676383749698803601522375160131410854371204687664492455219556256699031839107947073750859081496909628177368512867491024199390425246727396629270606374577804616631447574804888577564077228686316291294872757305816026958464989557870272654605328992346690979089311317821109170202121800292485232391561420217957127462709316982035431267962624163391819240944732569822682746469939328187718319909254095916638175127970802765728041025838834590777961405500762296357425479192451758703133262650779635717542059997724079699219946649619395097044222884457568322368868624630051793817591521704448944215323596789159047186401837711821308191113684737720543659415456338075585850442180409556097554686399774826462428725277881198760208455111361951273928058553797939780713002485839279920272732256025312571597225851498256433274294311737476824291673459037991312580042053108535863500047830259136765522036158116808843318495764851289214633232341066456414617961096299763389077621259270773990256827934190484087863214471128287799389656532755702772640356515395867294100556419522053233551471703832897460575397204316899380293824371135845487725253783886309372082658430347225783593274936191103008916614406371875697345288226375232866304632768558740668914346701152950661115116846561109896519219929575384824714264657480031608818162137678008194784393835902963095443445719758603633701622263830242225181685178553815930887550823094582381294005427901112469225716656253582626105855378024948977984197591879372556523572262001944755954094901302845180174027971773432055862495157941958561827036448822382743806369715333252183825705287682134957080616965687490525584873866566379488289193679879569788126543400895104272161529474790823602981072727020047306791994305853159331888367201904133974455694612370744466881439383744607501041144820770199224934657972993837013478473932515619339485527108085464332113037201527438735619906973364464623125690580997473110088096258578874552800698954530035830430306395081515326587219716233001719893632558995405579675511356238111727466584179959069333842820804012747818138904704096288045302647773041335345909412996265838058274860074622751284564061360633445068831977873055308407471398015435507246252112479695061764279078204927201448124497923478584225023255508393134056316002045116672038810654384600297135277521157060434757491716519984975406788850221108176508569124856060573823482350286436854034245637663576345894258546948393097837078232452341185029415374788977734952936514334535603860230841137645488955699957463906657803952843728540311822324285760537338488294607578523270382993521948817148778462519065244796465789266393234926870649257564245573887733517140191187782586911420730474977085668164312280153225786792086323682261610283674899418776109130857815976424850088155543185527500599896241453662989900318863165997140485136153696671661225969672029250387055086276535525691367502858953396954244701617597848458532017981127584732281473459346986923036851207488158774985162875846239223575432980172847902246069857124975027210104671521920884427779705399566608194998258556152922712266448676676409611446809763068802365471997078099146256644856999418130874213444863516260483881471986223955756663645618532304217614982564469122645013704072181219127745051479037670895189192118615311101415510025483232186865137396386972428138540324645424815507387411794756828393908529095300740457996225737237780008045705307005508616329640887998560459029143627443136367432255151181050108610823666072111367362224693390643341227260531994679010004023076307657782069284846370614399604959616123280155362417073621384800769030624363049006813500528422569497939503975807468517549285747791082800522275977555444360046647231551213612628971032385495700707697957163358814355780167897330515077090040110942408491432068081241345390189389276559721476899117125644243511804607459876785399512954983541969346301714418330971299312567741333399604775879000422786563540035527614735301448885376522701854888224849533705027626842678413508513726414425212253772706466258151235913307637814469205657507270501416826323006582138565208264918349577055376988869710768497900196638749968257652020506187217381066367146075875246281351780668256501185845523925343668597851612225752344495553495483099498182263910752815953380973304133787016665593312407883805812838387229241935660475643090969182136164957810668112900805076947545183647798579662464206029214275844916987164681111080567019391562474162415324923430869538065959393183346986780511358027628737986216603873573214850683519420340615121359381901851450750436979436494007488385678357633023084648361475139074305169522806833133396265791426699178221010329394574999632983389776712920909655891024352533443425805409814411427401265438049252246027115964007780574772189468382370909077571826372146416422601130137029050233690756940382766306130563872861124887271214945494616059451255951496126157538886770284418833348103465633741831256673583617612285486335543263484915437748714531884133141972108412617992059882562098132115108247665262698589500073662253398294368396466644382637667616297864448046912768450395929084739569992615589399612270583929933977625799486424807748980467345893501895365690955173277219357911516788734906316147818031232718431354151340684640614461840872274435320780193928045152686116473685691148143300672129196002329366950079426955010133542423210227748828849776027908319551485166766956244136993969875237419404005237706654215349377414546170032325423391133853201450930218970348983491207976335720160236453753676509614443768444687198505604703931391008630517591819548748124202696125921504257671969808817990306678253416384741985292086640532320059038920873154108095525528332162225010585343312440530348696833047934160130151695502965189755989556734078480136903875783944595351591021757409195271663243712486318274255370974994688609378398451709850990593514243699846145136802108218968293839872810321620541331414824091042741441791663952241060280351153059109017806768547099851966698809642551229206044307777243116920352500364298104106196965442874494074827253625713415077739585142303010584716839936440370392553724831082107944166816404367601987212212477499528529261552013663651967249534670666516895356435125211432860921238761481385702285921873382407478181135244527511796923738700773780053368419615576823287783132389174127650663727661361908421851099849266960533864265674440665983240667617215072359351694868977586761327489581934148227435965361233888716008812676352659355270451757570579978460562620383884201201693481003886826742098340503668424281789462711581501854622851380254906821331653038255914799302996883230479841778157768479632544941792900309030640890545662366074503408448449036065027478420828190858015291856638428441229653192438902353411063077599252105486682612084835957762920312536319772747335352767133940884601780822337625270194028348364150457548307176825705938896862678770186207515541237362932625059524864638128301084554693851251998213129393526382695114828836554512088764254467051359382969453358651471774918569843276307875191684994117250931129111702584803551086493314667968350409972939784255452094711226239748597014177177770986570482063832309078387656148412080905056572103179275071582703945660275544716832148362392367559243903081369114289809206873246753634216376515585580643545563801217273632923458647180061376137626279848929132947207063679992368435003545516178534731851406141375848901534120087017137779255053366447004435709647059550914521773974343738730982368432155188891994389111782360012076974509362760301171914795571962687993437272742034071354476346519327518909034005815985948580817177893688587035386170306075156913086394782933010196451921458145922562961456997233563751949647382887840153571437327447901193482860585182918263169698638771972877521985861627315499369677897513365697878182773099017384611598871862427144098454889070888363287256953827605912649624174742633883583465829406780489806198293371796999404475490096154369939465975877497348466741580959550402889719249043065627040528923726239396100976983195647106503016968271491711357801006293315196635883494495817273596161813981130953973001431357495438900044552894881898776451295598545806279431987360386351895871928056891337546879976579167744339657218289680249919846446204505711921253976763512019413110579007943589404729596312555115603757043353821295764168395301351786790253890512959970973933485260059516087958535412703706166229033584824441692251340273080178086299226012199029483723522568339422735772827549298376797392860410910450216366641815320313491370915618183263846096927761477718789396090914957061192106797554248298558473259633754331118233231235927304142833419426200264286254612547329784250323222686146069940411643133621336942195037741897508793582603837545036255924442220281409782563514839319241965508013650479163183694741421593592564699285473315877440460490579806286407072774503077283538522453089776900759427585128196861673089786283113469644304585956548424445081868756526217792779110629395294399958701490152903300447710413734668015527784851949661845903869447394859011739043185488109018015999644690605066895817674394688622411900782620603153118887171289039745833291621521721029259865439064215369314514377314298404888574499539591565615677560792792172189252004065192194434253159667651076333747628436246896457163206288307696279460542319314869688313353967239860960851228564516817085545879820941121720268362290496083232801556957071866305515473754239171439665285779450563325322949866737808064403087036089226170676279266667840374092410654936373590408968371925651971650776715006156713597142335660503002610859493605441183217670478744839204629153707275173388886083744152605289751295609094211001354362906333435449845151934340829764974412504780121270548770140300355740325413426199999953824300922165375390081375099924334711305010632557710801886140004101602896181163384250343132501472371562496596151283648681929419413063994883350990228644636791322308293264518088871333893118462010504321818838515434194453430609393226854476261168096871409157827089924405124843200430493638645663208843657837893901588693942008240742387407223581807171819513868246509864893323989149760897270133476322832101085037741027608451789055114549795254238392265939018021381489506034583117286062009704625884061151483395161968592831139376905506921293674771658251758056272650128782976044559396861143577473295762845887648075797512607173245596160804565797113456420595639700070729383840862578401821488886514838559666464089484919310121692815307883452993494737542519570289127979130485169733188258317455245453899997145068285117318022454516317678061295529754564601059488244050362146669345904183310330218575395132229844354125600556883754488193378711222733163431252532159187387254876154683886608255317562953282375750317278122649786883068221080690469550566036914510877022276261624307983314899273220141473238477397730629805595645380099809183920568698403930245377763889669382299197352272403595589530532030875534663032542230850063453004323742527117059444473786313189285791400943510650586969822149153968684982602258906159004517362720339334625319812608659129534575183862561131302254248017118728159681007338630934085200895572120167259039025019555299203018675093574320503472621077028325528433316849028841394847690001680718716051953468952958453793891095995405104021111403905858525470125659244851973360126310006637333682584745643717438121121634264922860587205224418935240625485270309810381825069368436795797319518314542653130868544927441076554146022515124537834339889215186044095635135098417741874524517777025379857377602853297385764091720625047199352021896290326246068997341360556271535249782405391513108631482280898583747696155421857873388995503344646695598951050359549699506772593126091150873473226375818040197897830070922402716053129407453066902007555329606581717991635133556702876103959697736765173855497438822757640879120477061457263964463340532718998895671604921243859308969386023366221427811050932921305068024755939287648400128100622415116233709203259713918614194379534937770622669713211801104883698225453337843471145555097159041137612600266677489136908970573607026362217361317472116074460651133589205675229594841154483271266731637229339852067145914839488078237877822041927050801925247581717400688906438587930714148827666528797049811296525568525164049587451154486751158948681596956440956031103566589856220171599300442541187473886294339930757544423145488249469185701537685973638582398193890857748279813967272420160539444358453099667223517715102652597003717167534916380487342604081588972109686293033537467264323808568704441257804828116974306219904981188837086948639302274450665103211017364029616953114667679922889220988470446246016969711034267199320275314485990580351842376938392807468639150657853093984162614613556739146188440230371781237882018394763628365948612751970592978373000653916017569273036720160968127702645384504691201581530786200929706033643269345456101522684060641266181878597521226107240043804602016253515826704226859816561706945402516057304955211694956553464862268643167027007094323773713051756907750408791570324760640794135720663996844342671739556544933635047214688822607600988408847711409906439741820154969657079324495355675988835272347297249480607397287495469128745570830551030270176847831886090852210140886523095071852660957708647316586932731094498492615010713540761892631392929788101689356079700697450339521219462233062133756442421372251306311391238221071921296218576659449998263823196113552166683975018191051228433054808593745623376343319680641873256547716854891751546835116293572689255286303251495512911009151545964156288605608173753777400341341086799506885909904083680488485427062340124960880860764558687223009110916164011895861471438674975195329307643717582998768326531632550513500345659974072028469448326179844504854569415575504847770901571541998276584881113295134809293444088420585035816908188095908684782189482291305401650292815855441206330710821593717276123968142210505251082725274964986237806751657675000980772899310218331318178479530738439581122082451498381012081310154852640376265461336446373709418397890243280346371189805973766570934840510361841865492762595397958414101220624366902353172169845810885316421419599670680622359182591262239968422503938570322260992544173555283557414940439995726729645341363525293748727148351794759267379411247230047624960972898240019421341335431487207547536655761560910774878425446370266868322343945535348701835955256277782183897087963115831053392561397793434436299226155577605914213842277582018056919246262937933108031910966428308075026991969675212529581343344028872629606486498491798894689210039712641953131911150532091287416998966944280236461794290617910092982683012438399000100193569335465389463826386875519513989281153278515051396477556320419778666705558878012133600209015783359922696111915314424160435856690897266148817632152878443024234780063614708017918977596833413699401430577487333188570131299751513568057933934407343133847827046077204439200543628116882661361395012324306853097356796699461238749755177779324048326219285883335074671491249514231868346566168753380247571717819669055258593046264161184972056922811122780036990686998836135929993161027544635560048507883596418650794257018533969896855523403450637672395963397370613065673116898674596126909175381941407273039761436636593315650115589511704006666891510621106937945473033217910963370243082506337821389983372305284367791815708409320787809161130097498310002091375322972224923088552562176993183329180316392655234243158683584428557863258550926025615174865111240123413162171185843737535522254583829525048572673337349126552263402950871420223370052287798755289465137906566337012734620406374059874443436144695074800031490113052152429102982415151545001702202548488782303204469564210838935186144347849986670563064950962311162979331931495033031233173184715813948890594849136393514361468841674828219056436484114700166568069104305034870675585628535930652788048200801947593896861524308850394695665737185258695643833408625253951089529781729963213558965152649757977681700912485454509715466521612630830045135206288650337197251285006217179677780970187612252671277330253272541099921336875582828861268563838913110296573142045709781459660737911286927832590796845229881715236949948532576449664882891222745119669870521453164541385324440611265569672116265183845528713543891431814593264354271604980733200532313443401265777918270434175393247092835447216370888524785493921547312668110716375145713265295533480295602363908089249950738968463021527579309138642873248957918428110543087526724532629205742954266232058717230785227855178976202044615771830611415981635848143450825334144292781394961951652955334396282965985200532198658993188455305354366122432459024913750575745245344189655227215248840662545195881731490895949912599459509179901232343786816455464521077763441545699564158990727035813044173471164367065730646150987355572552667214410800526652941574936511075931272092655993499856715615139309378027844777822845377606485125640324671012607703979736466781667136125324204776645519955408407236980350713693084719178730973949977038532450207086607888377830170094158603142236615524217781684787297737434161860283819784826747177024817820105357770856353369722529296917844647121839304466209566450303037951967285284039530664729361560277212070524762076351376873722562820005287808717680553743097542701886971103604704447279321657549193319752927921093607913155804012118260419899337747604136793254342431146948221005570246655973973736081280738764147896452033448597800245998693123301938677353658936837879711512504773515393470790461368006335853901061553988856843569748978247763597196462678900822103779361957089158797717506826642378569126202552045592259402058624386549365699382362017348607632781336451661026514027662890110192740407170466481177547090359492049083167017830774700499925007814079067183527287594049318499123924945742726356765108070498147378312691184463841892213608938787982960999455439476428205910841686794739699920679156678986679482246466921054064425345800464892976483138708700319684972331889154073579043618558701256146492024587334670647683292198745989869393375305298564895774627483909955249477055148306840450024318758197921499599091771279485727592136626318738798577269546818127614716113551167153884539148182698284368288163662842449870155736213726023020543205023187504844376069924227901900448789689895717145392646846354347692485513507466986547687893220173848827253215798099146800372460901645705160560219187350718917188073451060939198968922364277520254972349458968394567985942974473246975462652855791181952050299856874171039130334379149212900378281403633775069323230319572219002813314657023384175126257874337379782556023483319930624807472256905368209774117240107017048569709748745968694217643218409027846992836929346036834761992270532222135382928202393686087874245195132488981376854539130040303630675924630291749201403656388865751890167222722258310101880896552465365448424981615894778713310701691861534686636951720036956604377702705770234689523816603099728826114994052585116778739855618823269777633814137190903396560155152873773473158610413140997368316321027694468131779638407735741147803065463469008476435658936581577603747625795471964369939426937227157659215252097429341239384128640913962623888073721888452149926092303904474639210928520164686511913546697005951797155813812876041925186616127727078314369297741291793529017130887746989360913833990446313686957218229316732403491015523402263949453551424876135675746040707260131816719010417973682665605996086187699639504776268394644909998998023241228137811877124882745251570460327972655536446454819519292499315033043944784889404276346915225693388991401343582715635124811231153236856567033915298324520696860095104363974779719162253736557821928065423717029286743935030248381058369352497305945322014597871738073095989097767201286878517918517422711812677763652963696306393717480761984972321728799460714848067329757467409002191069600995330346660113922562265369190696248682409296873166061770670006306761489649155078711682682258095022051405854580556682926179261696983441860210943520444286116218497024540697674753046999928122042960702144000381643181619256254445000075804858150122495629249008246951499894791772641515674653219355788445696908129053146966082550601207301668502887764694182030727107219588223549351122466339148890874671983248122661446965154698047612851800828771816934804639305409254399345789716241115321437052554947216549976928885016440866904319755237307409158688349829183110317408138201882142911874476850200820342880233523257061911458816330960978777086437170296272296662531103688598194876841709648313474034282055188119586536416130288842878241649673114193795446843337665533395338868595170373722631346606361786398279566266498828527345978217833061986008746740308784909712109136307917650061749004365985701519964625447880311983919029688415171121573847232160234087205854471867994203673183338242525471027337291794511473930690001268436349998641783535222394964367472058094669949090064754987277918283785714582828970865457220281222950833875424412151953578750348812727460694068702360863710678244512308993916070580460513142082664616032010676504183941903642687248271530522051047507649971552147313900719657237090522475100804123085828279250444046274733594128481485022623643230640771023047257202037193991073225149370511379506623306972559607304123446498831986708998963009485120569833113428764747367699135676324834880366138505093239873317636580097903518640217057126449034815516076804444924872684848790948444799254036472828158575038395230213521020243765570454151679973631870759317156910007276318107665480294769766282019374743771824345705430579009341852044787596878863310649578434009450395124361369469074111517436102509432187347262187726411619307046059053866596446364497612908209593822859575599225936588118010817791577249150216946186356389887263764359163149430060085276874354618461021696352850499370716765083462026045424951109043198244992268145983997285689349261489183120106331805214328495136795905807800109702172165946967842829879775092657501856392279826260058150865062323360733570898918826653708499843461167544359726634012151851823663708992500151257613174603794680689547860539529950690900458341012699181872337998002978044673457693986795373576211512779106752505754277886971333947337095228464362362833938333015500587099310592145875214913003521771312972363608696869305929598135650601096590502473036745525001659885207584444264745045498550466234144978834731493616876257022232444366961377655223825757846556022276111316743600958182463394865622750067935854180416036329936690490479889579974370261529101233009990871256654484672464426203535257840697616861502182815791794745657714038451375451004285913367411236800062160646461242330739215104660217583770893609066666552674402652215193854260171059731744714942742002389289163703492122803615872842077592671678891737133501949296007028634053954535138488254769267103117988034019915516872936003091997893408990330881923617310332878205234176514096749839096993098856870759930968760908120024444693161451979477258152671439599930231237139393928823149269535233309934118829976930741547787123831124936376076801160005161154172192581795680838494634050525547031331847305911806479862753077381554369031706029143711370996094902560967320975642166755430937527421582647591725039959782107604707778848698906443986796681539212927527350230688559065748976169265612874694389633648855870983584860531916341777961628440076050975084137985992996375607375411800992538205538714848713703825112956026298454881464467571802614379487942732151247680667175299806292701418001523725789987756606709772169274924734304608150504677992956854371698581074965045112514220119597832063710998294954302972272572121413121938015474151779691081576110745175586749699904947146636954656485913915677025560590059338704345612950163197329373293965446884391055198871284913845567140019178301999278059391164847479235820699362802906615747275119139082028643128977344351144606271396966969230745653294047895851766522355500318733812098458914641562074356330631362639838232447844799374229433002705217218406795944459962969108193159505597218093384316343637474867756435145700141829469374101025007817358741337909156893346677011511936129986425176061534882004125133509262155852732155504785371105655462233898452408794149002991110030482312502481924522209154761188062172822881954085874125215041398545677668710526889859638664353250485031451014068033460657019922573147347970763938349008342059428803489632655903250976675310960168569474600172437415650926624664219152252567630019142463179660587164047975272859542273933907151132121147149336086099353370471644772838119032340034725855963888354108543576191451860433707714496725389634264189741767027472447503603528373573433475334178247329358086813369785827424595787508127397662985593841547387843495424130850442633415424859086952315794908447254962973589963130354616917711603902241474887071252792194984953845895449064383466508172160206112662432184043530196527407721345256859097452118350647224888123324946904871220076900931655763194895019913027196422621091486617337946066081553052758740548285066236339380478816088848668397850173674349790744416366879736483917174298208086313266055728221873015879201274269016578569163305765286495962438302686631697088760929669264291963159262022517825265901329460374451955286341137619597803667405072271093576678288293381194545460724756984774293289566353989476859834145802196313435305366755056088928473427338609194609911258751099352258411304864991169291548570510767904670057825239873227248058689369804881601453804473873042727783009171799667327320844173460698811718097232544758211221918938829745855335282956623858917000020312314501098952545515677108997046486514121418937340762495850956967164292845304102493696340835684873244417509678860911824595211297544057666650358276620308846944611330775683282317506177044321468198932627021365966141407474900848910310838555442154207793769349086322079516581349315316335068746679410655172667439162923030365194602575267431107577668824302845151208031415233320875995761170131179981978382926524427449708409804255120093103259410484800592560049532391231190645545686272760186927094922859861181253818190986417438412738270131767543615820876230477017735664226646532061526045693957702761180439914644268364880325350186180901425793665037759207716770304243756643039514649450922470841409403832488496672046963029531479465240249876294223772000227474865222784493470907531580123192016111838910643463669290144227704836414848335959726799109574287818766068465878919430201276039098921067192939283341772801230316652513537424765898873407254592086020266999431228545903555828906600880014607350512340361529076842265174611170546301162232552680396979371854048530279648658368767025833794948058924973155479997270196277440262387016031324474297793886743010309573539435201863054708014968844308833053315935303035323872212898242232612720089824807389338897464710542331711674022665150911507763086371980479876588225093464182818243414749452781525049603509899027418573711203686464634719372660070664794517394806387719609359381385706551604778214687404963916092653104675506714584930071707863110351551892417090096068783050206097589936438225857241062501535144661325569486600602317187811007900191280560998624766778568546575581269061625288807262302598792967365929489300174859087922901828548340170422811934707444927314118237391924905587515264238389684489968564693308886806102804930460511231111706910517046782044664331181171475063074992330812908500197046284066637383564944062617759402746165140925582276278120454927057273040199839858755862326193784132504864759354533003886653555285618575872414723868064023023571750986944165733485638240982790570632085534328190354474675929231261254723452017295075518765231348348888623409109433022761635804676310989690376463468313270971878804487292139623240734390163017106092770448606245459683610576054047767161226281785850818996277388978818719624717732735735995659655723142806509334848929691480905716864192847237246244848920149496232871915732370452224212286527081241331303849887678429932600726291500060203319059968187075003540968627192877615501217499048413884906998882007191728851054493736973181703034941516675625083621244736899322151764135684976236354496999252443568318420455333850835075306499916790444652683636246299045012491465295637049854886041975659285158468254533228337445617698255689451765538345242716822790923646549296329751235439899476277624239960571111704768660663864778532782588955502329149726527370185023866462467731459555070211430488170701362646787331368186776552378983208029977500787082654559631256679941210476233785229164220698585248601905557768970635699428227640976636955108982308288110699877411380127670508505153141193615172283229273804276059690045410723109891664678540252219451094805678952628506059720094254264835688559899650931913598011334565929397489306543692011570621109346716720477229763326206287963795883647613730922181543850025341502398303123304599984327585305313943376064968327682298973382383970834233163568348781938912793934822893795113936790255531813363130998647925526499240357237736473416307657782358175007648855360732003976539329085642886722952359694905203427032583242513537032126440390432343450184338454160699466295288464223408844184477570535380942023258696532256035055357752311287322642118352543802466388505532997694140750637253804784249670830988659688877573543722021160310879795029692437863956991470657041017579295385175926545288379662000368385782345188945710210322045048804763227044973432769305253306848485197671627169698746686098673039587227839498835120626613436908549645256679547935757383777592488487913108025143184688803262847384268403847750335935716218560289096826732957317211707049710712683965604705688460327666004049244696776665098473342279615526051670031430599908265667720860151487633200511232581295024154607864824697828947614878554930897740003845281528884798023274592983263303603028716990573300999376523784893647610222870590565030556388117555382031236065669217791030246950615750123504210877579194972226407341500000553583815930419108591453073897495898617244663021536473563534574799094067522642862661240604742942998351225791736170529344956297545429836286898300186806134256902243582996220421048080607580689771187459169536925996281029261410875929653772860996762261076467278331677238407088438390400773174682124040899189023922608028335556130353579259671941057774862478730496538886219652289157549018377315451047225511589711401957835553526699664889841350179428405331025409404902860971866114329022061984360128573796004381487268193107781251653978708423523127310097065538336771997962290717202889171644454284382268398547598806957185070204807067871138849542823634825647532725174691147934810271212791817884054506382660959816198086060341342337785612709267359650813875517865969322265973447915743093277168051580784452515082223634861276972070869347478358421876954811897984171554242507025063054036664401738120411693437993289694163220445393505947057582482071609238156191364653827610658129897599058063840946998554727698032343578982600545281132039968838316026367850420938440185668696143608932194773916891359595138638679760956795034297552865189645849024531547900973882898042950303087539012184527383498365705406986692938916831082918753474449541704844966096795566884541191700268037564550809066765198643889755162972278535725786741269426830980820021530587085647999965166831763494085382992195990624925664195910052621356773371996784651104601548595529183479789379430744690759139605711817931716176588557734878312962192129285237297157005061853984949668714964364421841554524620332482599899281908895937004378677459036992307394816202457469895480329918409246539812226260231557375668541732505944881303037050931021001469355557512380237016063578479601889816919918866452953280992848814306763396467909253683930476328080411445967860744982337190955259205062583832672740271230272110499492677077364505556246585209768631283124385454330535814414519128093947957829303844857727709261058470200210482639733786612765863437555961226072002030548218869518116502430823406471413861131424392771837293294695036340083987041327688425982153748394399556803039850788230840356992693157916182166809333174026834296046086910393570356970107025875082886912986443889135900544666457748639589207161951751805309545973230837465803278181035105985602028197687093268970654228465193990029126163965212527023696176116224292373533742789370051685727203000157256899106685767435976690304027248392849502492766820890479517290742338580627142970053763423439752220479483338418887334244162748181695023878336994282863345928418197616734088046868342031815170404331526084204258006032811511197246092480524524049631688011421131029845206734716627503007284042893321311402467894843543990600027320513728404591302559729151732484764598822485498914934809254861509464183246938991703069170463681149734812748969135575173956755786174656679322429596066812460053563477360195914855472106125030367743865895571897068668340227478185227675532317181522423904289065666753115144249126595517313779463436938323903206239362178659060102952085493725370853849269820821037487998842536731093828030861956469648266767587728141403277040188907976540000420300659558799332081984252910270759065346239403312599761740437025462076584407523594474196782808622362695613776289465089727051779657140870323437451681533817326956747897330442608645272754870151443663113470783115528221142963178091133050337998909992331573880274623890867672967593439780424589590206098790422638134022714059113251152224525535392356500882079583600732310073725913239660996137002385456193760870179577498665634455012131630371870064071909950066478940836057736454498250381300171301559250821008092694831656881133990033539052423217187605613223535440747543449530431458912675807973093345010405700213270968031747755320356834724037587309736027440879995193794464927817937198031459610108105760981002084491004976997238191239801963446414715331320663484152836899632402751765635322245567807974725933658522932251042640250436209450690923993674273642885094491715010505193350761751399249592721403919169765627299970944093327486523005085814862550455878802146016727674678225152058101829900398189937998377973621361293143424030549242521109987278734512949829596842082852938788906029957188985343035217889208058286223114343096405679532568465368609661825500052740658067957940319548610049152139875572846851915282493842538178365643907312475683560734334659197903215200995483065091005771680975454806439715880288963387040767880293264759068701784070211750333214098644604848726682695154472180570996980044606328957206043227684743650614754207923502276818601321678322560566493081977141299550104382642260541086999311271464957051926710127569215620526131948021248689946818503091655633029567509758724987459358691045356915500405761212694352624876931664994540095760950688992769456304342262825240109400169353923885045622582908362174895376760998977989846086796720036920985520991898340621088098068728643133982809840142405155255132196234786991814584995795394820539950299434324636126030189766480048461716158570773778981633312447138008369551571320482012086490564545687466437557985468443804420122092464666648246332940414361596430233722009068871002161623358765454964010428914648952656263747302314641634287527910821405935727198612862287881482329125417579057917005600576870884957254551317613988124922354518203229186725452998176142057044326026156571023525018383825128778475656224594188303489155692071520600498741368473086603587024672699450975112400659254419138315314150168203469226996019243470083710435174462279315921273943219691297756773748275247448163152576700417818437807263915609626620968101619150429904627741084552198574043660742852507134850712115351451488123762264761337905282995070602132794994166090940949209274714061456454941443165758998674817052630456418632084023886397850927258236487141470831353996710395394349163391803020138787352957402288284258527169681770051385107980243637902582164417671869723882714911796798651660251114451242174698277688033161423342857320127022592440218641760614631920099483172995454909126181184514087601949257699282236295621918793973728554564473383054204845683169046604505976657019300572267167207799238477858467522194778844666824261872068064355296640825836104758546208842565619540230201581403729090922478007592676232042305597698059241533773339844415700296612221686530221266119830147112210415135498999503382568055031315876658084496728990494543612427809237505688658836955644905803144520282559774481282791380588403878635285454800901334784858257394827026716854195908638765341805051642307909928044527108624457365788821838682302454003366737773732798116933779975631325761601657552530082056249585934636629476697583407555937482881438375136058713113831515122326927919965881957401124303163042241849306971500183011049696171816664934366806135156679816230439987688549606661902866735792300052056383621558681688853643481860758116116002954004012710927869213442509584192342343198755288600712404012916579952456722435065989931127772335178270123230341786996198785219455272044685719149526883036167323469737289291752553014821178849177304494220517053310803304725298284051727360315350635486653979091495891590571218794189876667225349727747717302231237671292081007895263298998690002071635055926817938190620711258221877528878934001156161946474581616917573856405394527398446978395570930798827147425397279966699496598432786905499303274550591115075572888964899522327259593389502180775721089786795505661926898089122236547495429241866154670984424598613004106186297699294057663938928965390272376510260119884018748883737790988039511703328567040554227095100378064336864763929955059051439069068837669469041662153881645354330459426296023586411308737711293281033541623018560454907390602828743688993436768678112780939330783340708656357345102439839718984132598748903351141212216325413687666121371688184445999480966536748447405930592315695877041140392058529376341419299283804869276097579816720039594009051685066487067894103981927746197599907042191005149092808375406008580661456972128203887669936837731222029826302957663143996567318905205678497529147391764464684218100214427067553440971960035561814349076123603710232590193369516966591010752596344110243519444225418193670539410680739363936290610160760066589818004121667105858772441615405242903870471010551402521924425731010566129891672002850416421515931231968433140599952828239857656981227802339123582830183841566450421476720912190001910619731268181076781187417188029342524512536733244535034427813353927642584978047013171320053500159634712110701941941512640579514856734330796542242311659920684166468025664637769957907335227365820361556142518833591875944111979600684082868046776057949747149613335774424734372283715372519658818343498108232533602411827138290314939024810842655167993019751803509907110840641779772749337645795270004247071663766456352468966309780984172850242395602739873543830510412554542747907006979071645260290050174150173932133797638617626510683420896030112607264026899137181703213946918320168998817383337921879143874502681456171537334123382964021751886172930225273472343035307345994275494812698359467453675071706478008201638885419384426344099828753980479438000579745838433189783903775169294487588262429750191528683464029991392856122578751547816388170114696623951279603327742591725652198537620396066310234523092265837920206059509227877203623885493515487604110248873896922271784165614386686481381648102948360265369723342170503157281169363725669301740560501717081305469486909896943526428803405930727545209617063734225194740908224651035706252594887694674391446782308572868102422640263976218247238455081245993085951711521529953604510566228799564915856450357289371628448413369620579614160923330305117917938162756650370224668941615162673614324746666326365027499512390277941479991034323439975377093953221727242423987090066428607912542060650606859158222425226307905481168655208914031997322690866467572302992297857522191765885257175570276710486827918521810403243208177560458716193216710524572138915328822410748547878590950443170783369235853341931076915219635511825155583634673260884420040779408714879341751270080674476306327271521002718127415802904467655351266402305327645264977003390629772405293102323044674623701962943772434003173076152341674759643351490298678402539970430176645345118242124832465034900240838280273037334964792796235494475296315039463867870909989575191418608779007288903598739630601201166704581307142921787053659855745065935939463936085710758632262042884479585579616408998783607836896254994179155285272885173423083920312473180970062545197233862271008761023404438290479565103874889090612936016519340183145192255931079001698698252978183277228582459600420237804958333968153813387711455330301621290909879282947963708336820733780277361582616971927378108570332672944583426041609061055116939724353145415225616362864333138587359820963338152423140759181820137486928094290479342018912429471307652143296372528196798584299039644401909000512396431849803831853262034403104414208102654166050684159124966756585709979761508846143172581041593740453171131214596882657598009502215955434528436915744799446894648938952270370835387728642054486743714972312677406167968933432146803469675011157525749663366425192404618620130873440480142147058366299080758134241308313133773770410505430795005565153103774845800957022165132733656980575126469184171411071011408978263492408270963577943653211404044590314603013238269288645015937150775779830587231524283213387889358324745158663675283382243296991816261739603428245677263427818813815780774384442792411838587655934910091416827652748829596710824408852959198255226885564729329015509310451846649495332321411641005705893917749670892837491555980916844595299572577491237550281545847260190076312896485324857355036226742067529266527007298986321684189040134757177163259243286195161862978418169403594767514186346148517938983783231987189993380425342714538264383110013866692291383207282152290193781447448887315817428515498830561632606394703925929451768722839116564390292857427775403312331314043196662222293897239067923813487806987126419960194546380965750989759628383123444761175979792423829798418703182316621984165431140603162577105474024384650676643164795225889887592190030095918273129419749114533894514247237835248148858777054305087349981539045785068060286091456851232202255372195775325169035010087631977828248449673429390493279829076065878313657455388820462174196354924815592072976774043670244069300992949538588241524050817671566270075649168626422459803037854013464600254030794883623060698057900621129875726666524328678040030401425488683001102132485111403908420966678944658882503115257951060959762712975590666953008285913455684809949943373651576724496622877521642667693841485143046096786364739546753343462246315968455585724748016325907191619681798602956896828636369824519274888189375761175086995252904058461416848878187649321995660663657316144780913547270120819105743723056394733250675793886566744765401525263421826901971699701037570773601396371277598399211641636726452354790985686090429447175356928247080055785213405627508620112333176317262374771022451940441187338831924455975988378285931503631628469816938486336711308685637170373518345333116030890808607114645979701329766998415188448628477903368598705491294957987879199690507574740330037888694458290711179565044109712915267137259522720670455564638854932879271099210367316980136736364414421123097579983677493752668635970412028460743671257541845377393043293840988220631730131059026241191516141366765693640870072189864272788667920350134927333320111852573701077428302530650307788415439482658890977948635332859316822455304081464574821011259688616825626760604587351171767238850717214509944900730761525661640953826515567541021499292928105890499540573015537092094159688923157177099043603643219240031742335661906699492191174957220806849638973676262214499234760478518270611162392936207233505630856603613211936013615402584513326875451769137257220050978959771821749733636679021195105557218455239920056980461379622728820841142414251854118131604371611017083065141943465319663139517490278162656973738182349114128495138442866316430614572375573210180545500318248489951518608867661127449071208180970790741328696846043914869725310809021538516162068664612510803120788241414730416986707831750153409874824763034269185314977035193134115051096027267845762741460246877825263868607932336640600196961013196801036079061461882396115985571817064984347491310435098235367048193916834845643284399695013572982059204529651847661625710967178345826035344041819306277280861340113016617104125728000576925817393904189965786509601501129909321922781323790490655952576294411985901209679340918312729887619875992130495199345392407820223587980468573514763939642457303460574995229898734795850010825934747392054443341905164225021211675479138462905573920512210977385678377958016797890825501259931481293893282508672817021125961288695739531243360748006526319153619137960631575224361204738859730426989730884536987994024192583078633104032584558430113398567618976182816472208165192630487238899518693012218592623707564367824041603267997654445281518445152779110762839967755723481911442975212230885868823034974471247621403447801842809793065343180994054081383776000444539336834031224157033872677701115583652484995525405719131224148904055717752454255388877802044090843274667167819700913094904197044447669705524679561375712232686819075755594462817426972716586056979394427805490818175159331582167387470287153175435367670574013704343717757795093226166396650242615036010333352518073695732118791771399746943626361670562378052807901446960246312091136387425793360465561181828399158354244276643402242740415400253593958977610091547132177291677381698471143369322073412809948216408486612350889013414009270227800636311282683601725823893057148147057653519099890671569904781265112509839435994984736540008105636915104141291972831087323878309724017192367302685611733017564362663411316767473069353877305685188306499463885577518435568041784767212324780271777985782100022010042733271753330223859910520919452368733030771834787714207254990973103021153775153966147574711169166075021757944600033228878279660426258865248461441297404234103529425660384184101560243907404770482612802251800295660624205473866951893931827060479974107091324568229316815623694612197851650399433719438759181210035147459357357721963933680552813939493072716047646727657496694343737066231306807405938309917625544409115238232312594115753094171073349472165709547831936243553660341392950036554146564830589649086838323814761645710454780588138072284226838309344098489218642028199747144024534374313824302535054558023633500686435694143713401374798247770448037702123244654028638066223457780972432585103278817916097268637777722554568303029261009951114761861565798938352576472298804964987372380692267039091627008624574450850704796146408940238722270093457109423563688611873774640156063013863370704228415108141283948682860419190298425350765693699891278805789163554994793548735598967491055025261756687033500922155310937991709769748386025140358541717086964088653258730680818373573323494444133352638047724012175711101220173221304901698983348572620993000232567243784985033342011805741192963101136797304756371733996088632524506078805279226866751987596087344063762985978900390229958853023923091110472980058188599781788752419728991601526626176175920116006818568316836044054942708004103430831379167492592950491859374747499679983407739914352376378455820947999933765536558019207322877743269258859811748571946634913433787897170470246167667153991502099856413531278967327780757659692027731851596137759044415336675438953126373035101404127220186137513509720336191206767731075570628199405609178932782616910181846770852306192258148528694945157133968324871733306772891237448607822889897026783469155831980461880755361523117650812038489179930819387622501607540909753163674544166798552605627276068756352381395561886055393791085570466619797097047123723959144408745190339865732948119106737669972153053252232162343149876992163709686656377401302131505471914932141663593627604315831184792876519055368719954725862364524214373159734596719294042970710696261422857118877854730571351230798466608764169906459032624145801905407318522408226439377375390409187543739537624000046560844380267983237121265650711100568087133708876155138793106252073716254605566065492197275045109383763895954376948293877533701728142504382158099880594297763125087373516974389167423695834802887374793825612116084164719320228188557893871443993041094368002199155636307835170616704024566336126076837630985306515520733281906128923941988336904673707462309825228351306312898896241055311955936280159266998990133832347536049294454417112897313994822835398026060225441796189197376214436111443820946780944027543434340005132468649379312900153761776544525139241074303909541186694567587250418933453178059399343886306434892103097981805589632853891486071436357106245149321743720074407950248494468841707293945865106043942716941495233188096342818082272692315204828970627394989815753725210919377014802645600583589199020170449467278484231182807550303222817794243390968824604707007281564791873876993393928314336372151607664573701080889807485441507115742531334208708435134534673009300220045008196430912767569549236958517423183508778959799227980258379379361305129197837416563750851746293307475230878265873566448984022177125219901486484254412351712414829499791055527353487668527084798278685438771788751111942846448353616674870235651977350849178576873884113949908861731224902507207464919569195848443003135617765845493719875419203466509528420462369274492412579164617970343519948623978219949989305243918596627244058158270300422156889025252287731972068701697379982054410900663144806261463685811987834607905170181009628194214371589116199154324850234915917274447917756482395947908525295789389754093082801473638266974088618743790860887746345390766677070782687392824413668177167534755709709427596977306773802187735727866023650117990326124654691496422318171474546377712715562380619613967650220521290930138772683501879427774703677426826769767512156862213568959646026498410046838617254284808752090858935214601291669853406297091229965187338902501588450167270278430588083671054817696859009356576222970331859125552381599776331628148426637244514813260747223864732431150872649801902314093961658972627654790928735097534988515055191253665277335577009515128687763215262101827537807244722687721881359258988803736601146283742246295942395717421570977832189617337458537370639669967655156775377441659970168791222627321552540113614263606849441302503887763548740236554445182130038565080984526545007905551093127613742200129947227739490042212931119648499254129892079626758844850204522588918693649929736823693665941239192466334155997439972539925539546019458525867946364703212866729421602064179850392465849104205049091980298385079944229169228625612360378250728660206027347701344025544353377862994444696965278092440512377611180203672037771322586604207816174755208540744093634022522978897401510707488428542465920709630509413645591394536376490157017518801914133932122197872738327495470123126646761482860288581422754881077261706855337585634909931105223158330714178607426372455784871243631836626699549762153207748138856535011411453869891211649892513937554193211463724477585694088059859853090623284714992843043525240072507540627797193668742498595924202769110513472349806438505518267795815515535519309760083262688208312247791428345375834176435508331400352478790272960072031364309701302661847379084786833753470010165708403660204372637035596606966682207908082871034522191461452978871729412724019274961699585762506814547616829307015014058468050705811387457835089510473705461042787175941672764555639008742768360060522542881364317876769699158213902493242262959223114939390474415146822987266713532021978027911691698291691047103057804914849659931388005349441807043324117254184394148454335774669942851816460346307212316425521987791884836711285569217319297745367271657863141494895874615453473357752631704300075086469244245554339979945997367566193357227564963070831340471209357774708763423481684587888032403559001548397756415547748821988406357519835190922289651361198601763196291507400878141492979479621859716584852542619022927043034923627742655597892308885306012450188668810736986119297341829192202327823697354787160667080405721767926576711556968925475662303971404830060519307149768852157848336499931356406320110320365792116349442461582466118975087135845751314513497356722390162010530746274814126268805809316330452336902766844959276023264672433451503559577806052991560751600160460357109319230400539256378477253239074961594341741041962111610237141878928500736035786338611183435504501322844185958420250394992930091462152251934353261934770358745644468620010334469817119954331701341159700791769523731161541332934623924106642018915421685185489296202518786056036053332337407915329796180090070621776705611222465991811810360715939306902010385796567432877730991637509842666465072200067814196524843869992701518144016994299545355673601032724495698250598508003844074959046590720614475269030452103202994920532413912013425343766576400828673952344659171608269439149703297004809542016428568107858928040681513893104023662360267329554370797926026422379431885738292721032246714315076349405475574619585692915060422377690542042780313432836596757784368265493023282604947356004720932367059135344980939082715490533561993513803670125962473761383086865435194565922577063473932542466461180607988644225545259441589767887259074074060939924354378492249322474123105238666565522527706778258104986965386705122256403931787906691257520631194454867000732150389399502923800812190315120644779637816008767883084404122031178795325095635243803573638445306596842970340944845959767858217695465458390441229639606975508949595417430738876632353507887800792279668655352948981061460547892452801969322403122261045147380445767171223282879410491117701424993879629833608298455442842062531400049295105156557489284229449015486483242999731368716495837618413058089577309441122931788424165434435435299497875283089428706042101628799995722919338473061094097625077147384770296057286688948648828896472948744098525144700554701475342251194348925601908420303137827453464477040782789187313460619388281699597043939734274150854389731132721532997810155621339411856151720467119298798341304043557896504992494097347141700350180610240560431181129422112476367909875945283395151563330263106618516275358548002874729696062485158990843125340632525645411347600443014257787461849309190373085276237036664933920186756429978473772992758152400536137643498962931715762914872941424630960350306388873301269237219013112159416228991556452874899849804172640779769404736189889214097642344494024648123639918029021597178209763167829104943900940032631744546201500912481207893462495380583612126416996668223326917072074218130261693050493304583738571577525077666255032167226455269141420301549123512049317578460374154780073939376924630332376167611208747542125342443200785417287535042873156164715271938812541107311780908215529538245384306906204743249908422457794507091729481706105689223292851096580229086632583006697368682977871148752843281168969292433511092048142080569124556720666011399781489423691755428226767600243488961375723508744084143608905555273409048685302639079045358399319123666561003559847191537338533624040652862516895433028834298876980245157340340400238179133525660932505027927486005556628518169980995374033549783824408906511440286229049187179406804769966667014434733209908286131677129189965533879724956895656986081303589419662225706331927804177297894516493050223859778853716556376640718552618223455582557463362020666767117443326779286777256210585125671876435160680653591338494020770712764968651349094280312082478466379399252211370037351299336926124334130562536885140861928494900355917875585722787222607244659797654750418586666438594078423747074906188498422085805810706716153355219879692927882677177632618568142438172429937356823383835259931517928145296921274169837834999408141708749403441487793910769513512075612693363002269963716068631801605663029919600895026285791980034665630989811035988093347160902490877295897783642691296529446300790627031659003274388839033989767761360656279750149456668328015190252394865811914726205209118064038488821307545620458318473591384147060328680824986244443321389554340460978667094237709631241381195098417887863854319612095220707540069879762306361242800566663634466104658898793605156680754436587778779150314933069562275639493626633802244745388183907117460212478115018925445276626365360217070199433608861784580722222505928794784014471188299396832641881743006491092063585756990697270656035227142986334350671223910334595654622737076504229574572148816840118310093935395894417328190769609327588825253600339718529366984222242203516516544258048302385384253979230423308152935489872093727018903052351363668024964041057034629481302082771509044102828863418852322378667138603761374038595623907519896134639133838920320606110409482326158313355515755647473913049505879064331154228866225641319086307919763013771603695625959583381315828186901599287435217315594604118989735929161110231452075528374419178943616867578394641759543915550525852311150717795601333841828601035490429700870871239817397101203279466621944579071042250647459762311101378200901359411078087801384910623499910599503397110483592046006391102854078021162407917348139629951128683510394558227196127115676394569611677792893568612175600965632434031551373238247449797679398322779675342269841770325028733874630474659537850706110425233989420897706316677632686198168969521327616596058674385669789766364349827571999549754747628934044889183170317859027701791033095238003500125334844793470600043723893131464388712114465638895609149071864317316590772069923790139000672239822212667810339147065900458481156358730214891511722069742846509135295493281045075614233315566007457913542923955734074396789925229160239538712482823860379798428190020776331988331292816398892585715471304716308593803838861223970851033357708846626192193418761604661217831812267314547936811351991687530681545441057676282253966938832023479235106078467391736121958636874410885601116734218795361089811647471844892567866726738700390882716350580423175537772164665190166932924631171581142884706186868928840753250367886919559032561250919104915066426492443337422739483278029163774694799767647866214915472218828279212524032614148730645355073215204969777179832466547757334657489149743663845450537869615184424002222544184342050802280085790037245417806604791787706266923213882198491107383028975051062642469584061699601593567066807161834154819497576894645738654160541250846431682459620534010420473068875788715942498984266571712269901963691193463923336725507711842354789951916781826909127549438597417442572690987463425598038082589661686447138129872998785748561012196975544253166097782546398171963428215925688374071875022390790673583144827425608203086519716744071028746706169377216679675565413191119427987264849676259587838881006397960778658285052925859501574986669617648853102604903603505578947458547795925819910246468749891459473204813934957544867392095835142867792657173389980381323702553134443119167889540308938657514928737723210650961047645217515935149710169734349344147266384947311231039268272135263380225551837919409790168116400490579755512077993370144485379412126068839275181521534771182970736210747823354407011656280044680513488935684696903536516357790206934405662639743672543015483010858396643408158882916806125253149753317640974410287270261650436915404229211973896619341799755596603608786210265948979598570001191875449711678390888478680067766674516658903916797141764213003583341276957638560867479122928888292106249649611674207118718285818410340734724227450652286013342613670390159909087553462748394755626315265514694002061672564269578818511312181832755174296555206004629454968594643045754140070628758164175399107731044961043763188491575823524921967301621967607720961033821916061864696741936765239371442002010899739621405823248177715634823964598874174929594376965547061509549625147902007196341222254595968004592005542866734498865589994692211889204317176857162157706713732758769088674567225333855566192440242652220607447408452571251391020370430827211873071091642713642771029691670418072646987910291275284671598003354360765935597558884152840820959313154961996266451329621643113890744159244403599569905315426523571892024130627170713638288941890250814435939714018814772133425810877568377891341603458580765591802652643863862278754397159846415296079046587168662246852652349258669767556233860249286954001907285113810555048162334416592875695890233122954999424853728056876258229385194277780652569138558049074756685802753742680568223462885317659665214760650317344672049454201259500710004635147366423036804058572873291521484063437370005338322987201337242914341390424679306718181990180438921901668258355863828976690658364688783412676783700309184844914747910530596451566537918521349430176719898672134060998515054282829676523842902591020018168059316104786376161610778803092740168806396188394161396567240880731510175176528414990190182202747385434279286577158254194379119569371620827456950070052039470543605172591068054373077343081908393937568770693901407366227681947266943579258578483759957592843644871669787068248854164716272388903659771832033885400925500441943579287408582688564492650490124440457438766711275781962866724061625103053108098871688485398702383120908595840976999031932909524778541064224836941111244600251258634800900496806322948509402661865069328489620558436267265456478856312274450902226664863520850457557605516751346109364667068430323500792880660002228609451604629202835917076622293449259138408922640676529043203718581024273883798837424247326758930860804671333062396330459245424912116058149632237038226967000982574826398969755389424492693968702664513500168826740135733087212936912240757472019908012096568292852330937013121976434493912740664456130453040068264322502177114916361523510273504629045051280576760879105117121785585697252665026801518861014978649427060246757610145510720239898509962070161288581142148996394582299314574981514505517092931488864692644323643829557735241186638194476981580894419305038066205302225117517543191270452161050058489349068782300082286159675668057220469367922689844948860601591803966718868838205453468033020153255793617930156530357333214997952019351038338148430985696091685267039572486514455042583406924910971188256806213993851808088387761262160926676082809048715274178000106566400807414560420447760294792078041051307609625084637788526278049614118423241352327685618188502466916612433010460399500481721837816958650453299871223756372782757749386611025710623670529872647555472896435939319609371911655385320777848524618001983998852137726529980978107116469106214426854376416867856741875542899301453608668998266423783321595726166211837821283738857899852884158639033401682875703774756130260981581891189166835700476142070850621831133622625950330852910582461544630369898744652153682830131520057557362634188051412906725466616485367222634639319358358515842327128681253127746839631833408847999532148494611791062551428331262869462433737443760825237057616849638433804920939339866537626366433161913542655930427845022056028942021045589283241065245973961971497821925756754209784313778218806052301296618529834070567572228571144438860260175151481735457068539235844825919737170188863657857028736773138380142660815838419251389803550599101102944803616450031629845457735211668520395894095755808504801097091484395013542868149145176830692811069853924679990342960738849577252950039476454635004289048558622036511435125694452670151577811633835432076527811909241128186150381189887256000889538971731121077765347005518950491342397362948538691486658836196304768240750829297706709459939393033199122390509005505274644994238253467212146139498267894588478150099468421984211520514754479744662273388273335870639644267365042004970617662454820376770662951261580624443405843804112196714742211852336985181765792202046687360682300634528791348377171907958122312600723143368255245637168582758273112938561364489448320767343534360853499169763717584659697138262040481940639520013647212279493271306943307370349005286975064715586584287176400645497016638888640999635236136178671311993413073718030589782169331487520257560491742762260148150515524156784365256750348434212955000635952974197212754703857264970517517969101267863075533445651610873388313637651583795973144238818072262379650190927690913883780309993813614005620198044228064700947509834726692542513491191701598708069241028168888205179334692184819109803878500375955115868352143393230405041754410010156237744856038377530737601333355256112822946781401555909059211965225264213137282907219254511362766610211495712703592737641125625726342135064544867711421718923159350021853826615520808803596310188212658647871466236805769304196091902354600718702370764325305001538879550472319279010186350126041376893481806660134697561836195151146310822898597306834029232113643398205537097447720021640734576561544793786691161969094487517783858748709338442952722426266200248611654223283598472955276937143647104858518915593107680704339676502699760289202664791394754736338653874872743973452070240144050586339413924384524559382538224730970292059094474662665199757111410211824697677103459213411774740607433900849452270662185176441220381742137433715748871090368114100801161944123284945248255828286621491332003320130197695953132814576038323930830943753673937026221750345384214881054541598774385052257987480227227555773349694124894038923585963554831883232995319092554648168316509106325962973238293660950038700125835569509675301868946969335803421517809925924496551774561176418510012345627411827848813232374715561016420715358606404500859492605179711781298667814734100721161588590396292795613976588701206262609956016749072862487324209431170690159949215688491825303230251948989149861632291106833542378629712130792562723490127874769511275767383834241276198021369102474658766792445877796601989271767155393822711249262793486400505886045752592887478519051415377500736058935355265143279703437474889377787461806218403235778930484564664661613372446228054006788778809688891809777945382330240661582857567655600793630054576796657775386841021290591427311114163395757625637221016371225718859516758493938314008705750667648445076201264218806083100200823950651421045607714354231956449659014228877894340502051712579159479241019227049374688878386656590918873783725625499399435161083706144161516414582400879824382892703456367982976418669657745623455144294895960699417188514048154704398077390099377149319064971083957696551114481413740826438391297401876787114840081982585299717249195583655336705884110448735959710294087137331564897304339596449512103339058744785743010897278915803773737482490952859081609745481468698763859069017143261662264499864869163219083299681551659363260221975242423628539768245387291688503488204491657593171222521160177891021041872096779259022377561881721953216675994048707096489078774148411372486418151988223924311734114110287134457670037617870379381517704348521374151572208149566285648651684121338773950154219950740973957220195769797410344537383949071617821252106117340631291530575549960070040706569086077642640673015189278462144195829082213055868858286744014915006817756339147464106009450519785320213995977277900257544622018082452929171250160205543852484497749021181240371719426792602607265625104832302380458172308236437218892036967782215130547361761163783176465528684748801815906211804368948000304001165899832321564153734552055110147903940974579694179130918315715575589500560027576438849575414979404951609796912665662638662382885828487161348180167007093116007513656624154349731980821935739197734865799457868916613593476693395410430188931065761256297221214952266113424799903840297922492957622666983357447716812708107849045346075740534956563636796963849496862739489121971923693097523341639258453213813932073188290355639665686249654159275687108862406543732078572057162170344092522258996983926170559346918397135437631279873015080751729601306122446313470097107237688495486386405581451845658727107988135997507910632814188664138615079942307479269335050249500296420529523228513334294604103410969663664844380048152229385757650561644048810516095245624729489389075377753010956324097613988898302088130442584043135802783941863285403333972790174862321495135394673085253945438606216590075398143940892033297995711731620345157721479900596587869777631866142415636378295998225421460787250332942935050408693940977817440994492839068232348812490187287963417831663563761554790485004296434385085804767375414929360315692645282585177007597172940702838086955777051770745684728068007367843931642267042772892906573918431640511410119340496631764265492106139566456543707685509314436902603554670545457894602103755840663077779922489420110271448984691152630421142604513744149605296124840051729015592362615580956442126767504745237362626569413054330109632708128780701601634651799511493799196709672086124915423306142353649566400245572274854138523100305152184732386315560982250227087294772195079409286541300649083411125065431660009112458504120757108285800525640783321170665628251520128080415554951318599288153925843151190857392556988583105869950402759347832397620784552257821824961470610432048398423169452481053037492272601726228061599897745507621294904109838609206719482372845748457516092944565995813544051237760378812103856096397217488722355734580968108285109739713617170596512994276369927496721224215595992636419823519664300697175647466389201999116291087587694453903799807664334657327435424353072671982244682560643312457935360758441684270722787772444613487669463566994510008848889446350410233323569506349326093155814166989156143536558696385996233468621728127337178334060354331944331879845482602153557034650962168599168314286745158516818527968732033614140825867230833292936005073527039715340896316595808103392317593501148016213126735240486335789736088159996885378725271481223148606020680429548940500152950043298562487288189313783944602833368789985801633920100490246207736041581094000488511247477326230597885202007326228969834355475993486408661564866057541471290028368139029644743219153101572636386704420097467326431879611248758665873776018200018137056611611690669561349929771611522839051265320018167994842547190646879382119149072013049587167002780043661152979848274298139061257348635718223029120551778160533419259041395147471850148707274274997401183926990679960285801312048401885398828102919924881061269859899159935810505681170184140725395740891815448245449759657543952536762738446207031740337451263274286512490027233249030181395667102610064542710688829919233511275028094126434639065754304599506914680585278404763923526193924128764049142264232977128447332437063702660511002024650930462391884387254227802919270455522247337235197090799631078053099483800425354516402592302851879560122393135191281451513902917648730654321025717712720355979368847238314794579468459871833815144905714914053542682770481561328705582136101712345177802021782037894901522171706040479858133552774220158132126442579796293787423426184519090949751907119967827705415886668315569549984792016061740984796841035355979780069191572848877392881118301213107521455315074903093802748734618832182031790085415684901074742048154780754010776145516035763486013758128668983579501920314481874540146714574926656956473143000548495873926864426849298676887839331803886288756421525530872617135699570653697339413161949543089516771310523015257601564718112068744800320978965512017809622320252015403209664881447357337416704574682541960874612178888670544070579110192600434748889151917664574277721605678668738705944429651433922296406599957878380183006135545547729640637471308926919284932695264770860895387089832032855769136339489378604330555918580287205007305495002824335752858889821261423884266813268864674033181547885191390885300978894392897553583667747186804292508179271093075051905429550903874472621501670966098142208936931627804092625799030442678065500031403157334779602303697292772869127893374875061406762647208140261757274122218508079943202318780382981722073995851999111090664132123260887541625939060507233059630752040701292637203797427127980784558787768864070836964955577056311637531490737901821114319955184196409612914149598168378888382825100431762174623446744176556789490724067139300522632199634703974564300024832021656011716369520099725038364172952154176345493386887447829813644584728031803219998840903265993513214934729566610535173880703586271018222511979218054414326123024361743358263027064677058229731417187646965140368643079449843966176398109926366748397724531332962125427025332972274406124195061020491007284027675805439708739251562211788859788233597599978839996890366849451209049704320516187804989540849537734671432615507679563903121286358866582019062904058199552075295712300936069487537060641603977592432306018529275200547678935881476773546987706853766837114284341338174932131855407852458851139019557073646475624098976479083408890653977113824465988402905214257069602847666683239398725939022601545742579514120364774451458926809956181002523191327553465693259287841775837116106327871602915269903301190812052329168261499296323386976114737146498765231239171823968600342709999573067942232002813154918793538065052966605756511277430465845109469967169500616274460838421268328250305853336754997209022880986819751554208116561030094592928275154010032123450265646977885953476265819627534886854893127069645646389813508747156401027721302505606223623769134853959674345521741838437537701862397165835709701158642651507781701796452230437660333380780008524078060145920756179703796458252517037017556851188531354792816862988160829865391151606235682580502608498069096590945627504880849257470187699961649610578537887926668016275669155191084159585031669427305646081159185788618873880290309765530243265043172548645326254544098245201427488076878031090555262182374001474193919651367288116395733723894465866781791326187166563051105527126767770199441718295615815019709980331006544490297302054672916245453657560899923372342067801440359967977951350830583854098846213716134722474922622659132094857643601655426122207331456814283729364924643465478166483734870538609480448641773300488435252330063947227170791196853499430342166550283466024974806802594511945192644162056325769708941526248210527900481892620290136818177722957630213414622611669872706161378621048161013952629678650652973896266965968688037971067120056861472788885156787262360821991262902816500035969076801386526359656709001654268954768334142280098487732555962513992045441400639067706695082768551320508355130503823254566251299707760323461294551831216841274473446780140118835901627877325217244467709298446500020689254986132125074386513248343630328829013416706056857137328823277641298807938470871752247274453083287920325432077103583572198592057738981027750925029549318440277533561493647676044105173311861049082266695836477281747723335993714656550627448616748300175264908728861696085562872228991680957243682353016289290850465318065505215756022962555324029046619517798261783194856375588572715321720737978090060047163192390432466411233336103437161904433113934108601256181404819287720752167548993510322153650377885963609635323158958388608536415062909977968352883050835850614393673963036488369711762407393441279223700782132773408907775224634828144253291152108180250490074186587027000231433945565214719876226131819794678153739554466426388063315543332271588384262650155294810032982576832007779514363185880963363090877908884798615417680774412244561977634886487685888041075772523901982392331669883182330822867763768098667902262769644009260616368788502304107401447215390415647322654423055969526659655420481400910841381476169405736088609462495394977003398194183524671010049533586351614275761801674229038252985074249251500241574101483776367769252521950388096924817558461403777042861884129065528011339937259687104708554695711060193730723014218043135007227133114622738970364635753962250744630185330754091159808999894189445231765775047146501824106970769368521853700250687885586950929654967522522821405341809616570139671267871739686993911741588778572776802847139692608157112498335756927991034974418728716298795287132540749915118202910485484077636752085492486674916415531292362837909000358431788870126111472276293996017567749751590704113511931190241282403500753193394530328448166321885925272792070280494617048894470980888839207719007463623666007497507894303669192308798431841223677249682988784871230346857335410062849490721891809812609014261535264232699614754477830182396470935986544646393610676139629511558881734124165537183398293637684252162958199262074931958926194040031100463549700518521599801170167183249036562353057400121179546464849299737866262748941519761869995539564525945266808097974978513171803440424358192721872023795690152368580908798857334986951999990851297283484684085397016742999421560953752186646637366793497946547146622771879673131340533133610516530624291636450272335704294295482629379523664502329310182723443275818373998270425187201359472814566370657117229602745200021023678943985959014463470362866577644112113570315084831773820053028458189655177521060882200073603486675099031731430131696400372712303461480230288962969737017747389960920836959374561896621024215610289390020478542092890404801985273182547764057641943928221789705812552718778542751747995339357929265390324138663763430272160002818162751639715016347872051294250308257742572904011518927479310724191712965838074620434576234946002457264082840391687094689615544294226567612880600994301020858076618299212950530766916265622843728346232224611200766451110787688617171131642384949953999337722833656070796670897859508177270041351350050714407716618416739649899398713763322623403204609299468899074692273798228624642069797587934817732096877410951017151321508585857201793162561351093760758346457833196657206223759799562774173878985876885886295669198796921073175731705519974447560913379945554937316121700230854742533612859579480522606294108506978303472132984119208746415081258084280293235637529688543119230844582191110737606373163269893600196498082248063111999793984547544082457336651507507813967153976701448072963356043041392767882259071214095188296383933056723197837645718859560120186585315399865281318141017922579484125660531189635130239565321700517943659176641628154381488106293511485711630237192886413358154581490503429830379969131577921110751210728756122703593678503908835901492147403980290618675343490598287799269940762661920509942048554663694429390643591315651600270804704779753124712513893426710150922234249416465246632243463343085832466260803951796666333418545328252439668146086495288421664305796083069405863320461210048786189284994986755918339259867947140796518307865547149112505978162082585174502126163200923360380914886565763714698726794290793441794026310764661620167211752851287452859821595339250507247346581586727648457433733926983401175604404693494472013338993146966910512766081282393614941917755405525727186586159542311541199009422953833459724617087594438431124570337714739559033571806534628380019615132582596307032065453000239281182116500671635649739797716773410908398267816927938444819995883082776129286499641709880920722378243899780037821395606849630050937686232719096897662961521012436526861343234266889564589434282524796693713426188812397859950640280760938680795555575381209076429684144196647862818675623127720557361402053871022273651897970877666156541159382695455888584520158289553687518135960071074409974001948622150221145515461413645311155186025204998217007242350853167570117620308679062132979074898270103883574500202228452466193446806547913218899819905505332861469733840141226741462238091996196287538679910654663425012514711359678355753044994244048487049007887097770726355240318561523243858574279753579815566890352920139618178539948616294685075041314966990564229759334639829458247879830178652409137754531473220514305377500871712080219033207173136913565804351685350581169840041382972479916426708380769888087812473706835603249508484001035305261511751091660889406707053769054762200793377132186091354037420262633091342825420485031710690473554759227497427251996643877755883339736988248079321027804239890788294710635641648449528610582618397008172555416557520984213051294551049701070624144996495205506396999677889913674934974742680916026350003506047541755167969950326924058038964805311659139686103438413697526665306684865634661438958370780086163375069934427459829056527616773905137688691071601349899966083205633812117204813986573089485038640294326461402084409315895404751530773407085450414171261330699338402741794306143170099975049977404855696663879315849046513161386766731401531491395736562581666973534180047353291440674537804000396762458789771096904366798468760524004556428533683334784515202980701893963917965912636303181159498266084185705598768382604612844686389316260099059851322110543704743770921356892448898431189880520772793145839843725821938747844301144018903212352969729770717504350723728075084165013436263008408483024907613852701678311647141568840141400271420397064207711426845639264375755064964950402981236734031721004897355458461564397879081397190593803231720358612435460830254098064813169967248856978857205468065471407549733919559296898322052576458758815661113182692562247361006349040851945180301405214170075059847161981907080646695636989533762842792204684303102463822941597086533884252593820765946559280915049299271661669195272476328959741167439938312678565430864760726951832791899492007234594838369554594319918835065123266266095138946953814336894039577787664304179807445987401294686335056276980899280254913748575437762015618546664322313035531178110054949328108947007013945735510470464395323307021789058166415606079723521227255397141056968800771696735596109452971192680155338679598026024636222326610175224837808778329918508259144095683140113105460513822009784991031034230721474673209238545745834217053031456475682189347071314927028244933039178226027660464460270943924830470666506675517827467917760417820525116302765347055491264518373713506689221706107911320390501228597886668414046329639832579042900123343305584219968560230089024437160645889679849076882432435369841894774789305489857106249139695290783063780266284792008731926526651577786411384517307746964713275359508139285385356627727494153930606439855875012410038468108266821141080829847561577130253210841941104658417501683084695487100642259126410392865005969360590823916902082458244178865968055862430341522247680736647489195771006275325440268531897949187770655051172178525626927741312031738383408303237349425111621427199495649814878793391762448671934619855809794328858469160070084959958899945167090379558705138884440959505339670227170942065632718551427034645590560919308484281621850118933605725993207111452220090879630299127237504143012238986795577850895740004414417158991633077024518864983277208562749147835502325714897345487699194382641439155022757328180115823519927132684858805408577660119283615187766575935923312840740920371190076625830234710847656536439622952682041676437289948509325400470751120109520131424255352008837465830881810177180948655259248318451877742768458595403352660265759907145451007845150853657427454425198278411701951229689475160817827161694419041058469620728285296781374833464189983543513725834980404290003203076528925428853265308171491087581833313990449624757748274759238315028121966736899710086091987625799794429398622794591594361778017342028759362131914850903567934157377923263584059725418609439538682107416059440606826426848273231855507720804042651352203060603009869327206227908158328665914220933391763871691254542031703648576190630716831112404313716543708223961396662460099002331766114139470437829875005617971626783466889699179285976076430736193272631400447905488470047018942103626601019708783825469464405800182403497344920145370414043607075258283269482174113022525229363388826739638514536822677713596180190850033665285892746728888810334001139633214479600311329790375296314773433436943263856805182399637224594825000471152665854388637441070820518209233065301161770530284110555700372087483097853092346183526521859111138775492851397131361265517446562626352771605458300145838961757295782603522636519372403659063444534185481775905936742438200189397584724161448296888966421207066341251825863494132171024530254395840199935545909803742572253604725284505933466443480908459418559000638193209957519065919472148929999683197784736084239118838937325996347002436774475943905934816912395641133650723669861463405835417622779112327006551391647734235625323004032818243932833198772434739800563774226540181465837638063115149515652229295765754745270702452498312449507114395433200038570698943051049615150015470374386135992210766128876067605150635909605205677086698053520333141176040295799486947157015341234358650643723419501535868635729911697015041507721007835117621158078160399758126709142010419713665682609412084904785753514063956817007743078050933811532171584771779135463138882894744209604836022280005516316510196367139984054408651900671711145863118591556586222681746279205321143894197797300803981048429502409512551438644988826907994399101641798711581839306153724968589010135843824942503484615555450892503511962906283383479202359682384144374647298301378276297378483568579363054517017176954582913643739120073642219662011615478672811289576980950704452132410181710692740440991998797311715122127789780912114085423354220383801828158896238741313481824320612677486705166310585405219416355455434357374853957620944932835621874238242785107264426993975861056631259729619409948500813055088784095078948895525664170221399023487317858536388658341519834811847998556707441473265358879597777162719479378728777593554130757161374969110287080120493439774293984150775780987733343406238352355264227608509725657310337463662565054935731816432313943675500248365806230892181336808171660410198878458038846320985836522555349911876367094226551826557027342429037393124234222982402634739529848711590287962866761297675468165731412999447932013921922222363343876524002138359661190361116186529645532164423065926993790372776989156868209558850714264091028304871546455306209880639127751973689713969517724278855701439583743813134750452352706961142942014044934693334746096871361398647603729460437875840103746249542300506022912507181882385871706574411208790560637010935067837582570861381059379090344235313030882837379495087633876792141076491315334962258048439213326555296560244596046188928023859766008665464991824912511237561369696881254324670816200642882398878963861117688500486578247626849403420683482444107145129324307571479650211663225674648682521123467191169727383109984247477503380174144590513629793933970588627641964252593233483323755524174487550690181074040300326803280010082292734150258561650560145467596406469747005299627572443196969887304336898064160006941350794919332405115585368998524513456389603986987926779729499314342223449128235754747378796860140525856612465761624988753638694496701620797085804043143296355774012252877770723461165050814511015814649623323876643147593933873742263692235915302260795829508900405764370119312272252713604484888878460780550080362432988244562069479279083571394455725825402657813254122348822822032358235940720091281950710589044951735621184735674427195358742316586754475446296715363398476105553771881985942506634056658177147177274299137159004358843571359014186648577785296578835036875798126597761234365135681228378378980024436624672579350144659462566971189904623324246237858752943151488036190629173468018267936390972619430332789481588121154441728599773728350675061070743121433613624170232310555761341926344835207872837795505597607341713803711007281811825398030616228157656555850928326878538452460426899547931859781566127288224436637997299129690789371050188528374713037723288679278235838114457780478141428678613523005553438447771854644055804437487324917695499775930464356274270249562807968890584695742908936197699527311117258430818666722270991678820695818621857018570892395429583349685194787311188245507603944614344339165898772801289843124890287363349055777756710489890313018351164596294566401658739409145902025568219951878231854006311184347373163217358388777466256381715907917446455438001354116132601647427162988649003471753742731483752036894155242775480964432132649648245909641903951880522410840619583662845943316478646078821120359146889650952253460032538887786843095784198443553538249241465804495531950343669409139851983283999622532079687262406219077098808562294026289108060051844555392457174460829707145475692965526643710174469506431131947228916114563442471768797431482172875292624182460185718446237677675265857880463578186819148086697414983747095704945857208149638974829387083084254620696176415282882488452132719662678685829328540678656914513055112991652220989627379779414162009999778250483406006627786179444383235784715199575551408804922808255588832173542862422927727362885913363417418024519142129946856119908486761724587473252586038552932841918626169158354498810595567183371652097860195151778220711246485487191172322933264084878201915093360262641742923941965109977701369533388109964983076913982320783827387672070911716270591135498630041376384647696074360342651467541702309727855820373369820939466052205557379077439205911106077792260884160336004159810721924581658637886671996342969787757565349649206051855820457588002153502328996986472818546381227374983613171166443520664008200708405853381514009931646168433699966120523509615173379791092528342358362919265529245068816348369756236865837301864763199509337622556915734538509222547382656682511956824418022109675145337654724273072143693268850491818905558015911567672373822719621664654463368593207391144071750380150162945875162453956144657656403587779320740583868818690262760819810737926188164935339265019277393969200371255240487344827772234111152760735819602083713195176977586125418287856347754253536062836407754351975804163562636300036555231577298240621104737862218058331882758792728693073958574706148024727907064259617844022109338692885106619396245310779097021403686598307932789485068431060266538402499626114726845604857628762466468101961721543882381794885513648541439188123002758994582548931832345957047260431362264792000319830061852218348761870660412845799545903943767777729776378047132801373632960806896220647319090924716755082597644299352007712385431962305318248924682399472219743888295551077303280969828709421418596732675463917541421054608034066242338530313918270450931237564877454565894476355328139917278242531426690357163045675860032329743929703854357611058639847669862528246165266237192305160863988330368824250221533187457895145945778077163997257152052764211421177556961371911267497272333319247593676443183136793800092895898571722156965713346775974602569975595832676277898196786755740748299997794295572980685555532095382939997362878167421227955033122430678845390189346138874399844956730146350794192447918636581570113138370013039686181499155021129848297842436056223289746499563497452827207346080460207361848957809292526572849055760587179778045637724017447013564044142574524076851391391009382154792558250716488590023627047161282684876284808529278562419704570102258885137712547420875655563277703268484933233336069228491199990423925565607738644404187866450875234682983405971938683852596724554621516567754056827970672851178074824904054367925866110737040303956318458729465513341348101340707266898355209689352587339682156324814022766637913708556780413511399025299115960044676311049664697320013939375012563504136338993038458972769929794596274904272160413168337341089150660357690887143766960724720196518123568304225045627297839266764644102345916130932836735623230206465357618836375318061944517965637338958207104309593246286850182281810243509603820250398921426410536056055677687221548477084799065159180631193318040186151997294937779634645922565487799672377919739543407609261006916620879329867000839693585343188831393796796666439511486134306393707514825298470331115533143363981883118756727237591336038869549141003328332947477587069762319196694254354881237504367885869759137791666789557283074312077048915299557100062707001149096354802670258377931100537639750701290091865788914933395617306586760622823984199030223233297874411153936096214836801577024142756964119376898098731996800670083016573050798320014446131231596987538813976697305099118461554173282566672589999051643125314444445325399843328743188609170190643009476722922711498313702244697352333602672881348860422569251530213204287223681695849206267719805841973563604900571919730671865123508315164011532147513124011867985607892304030996910987533345077915405771617678804176976818177856360361349945721607171346871462963721570661282595836246073403982114871134593880336888930778804724095288005392354273795158358017226730616028908139465286670176055869815388279161937114903841474299213304573008719032497787966018448422412030206677837070485088840223604783196181273805252172472652653337863904603251380879407975742618549846083269497807238674127620080783382128843514426186746880318226515386865787678856707708434114622782695672439385469935582061680154607850675276434838675648334577805049912131422341114532093343164891600354133074886208093706709602064467603237685953225456323070897244559450314465803684655772499562934285549371209292972838230928131525456372477408262736800287197141490816385140779957311042327787425621298004207905884186285029184107943449487689097775685807382687607277083908931594164886848702501427756755415796934113726402004549375803743073076814603501643624284793351901761741412932627119993642042681377747693879699271198623355623723709579033746304980607759253128506729343200227492605911066624782762173356834500517857049625322289861424906624276176169968892426159494744613382187210681806977456371406272574744542818783146032822206624489366978804668430154748847210408004754734114502256373460200138008505050105814459093134166113045676639989908697409936407163539096007702873550040018817991380767407383751506227024657240958755503415702670196393346556797969214469589172063511512840640809823887176711744855234604992422367369028152230083400652133443654042762456941641093075087587507307565888022580963055050964122346389981260672144347096736575439190174226480537794148286581211554910542314605263495456519084599852365255100614731842715900359779301680596975545719986844516023289289760565041871160361489414475835019437857600418295234651475559401727673052614196339605065956830802033710272575520949693866272668284448381747596752395871369926804090354029749543525558684892593577500660040323180826328386980387481134411725062977570845525031200869932841143469230354792241288165942209851050524038663423002569860440686745034481461453158742581896085506929303414982689920701469885110074990250900917267214767867005283988989335790196731639417091222404525830320038984331937103121873199808569033827054481961488112394732353958912469944552155696197579419602916117245864324906107760639465255678273530530637924658203239309046695816943248875913591957639139957235228568615299536891451724536016250605695334099995760846118715171423412321008957347288999940390956525767089521631719328461937862080269835976346622708604891127598053789210513045908198082474361084616612007739907118312419545764877380455426603675048646148299233841897470898530797443421214296977745958908323857372594164108196112330549130252147545642592374836365247524806568910222450479740595451564413447526023038512314541737474148064382486164435582231536697786598578493882178938800251157227690829772633394391172852275649260334053154607951246219751693293981767328958864119735801232634580871756295725255031163419598962656588232154141000989657673657881135436392022467541259797431313166448618163610590117819514453515755381133027495518145733305718501871461906291344614362816255763086873659121199212134705657240956909295688205496504683622812001867843670616042390404785720129808634923933081410025676767275102232506372304672758920087543069704444145620173826139973665198479832516131848271173253170771230568491550819811218518300987872852088308408141067254086944252792989005577378892933163466459690741021083013994753760358706509166248869531714271256351147326241067893642826025076612878437957683003175851703770457496531876775453447155426512405702865782001757055478958495155405397768754028102223939145365044443738628832168752845756705600913609259400519149272152854302974956998551329241072289909040844329410390900744853530093526230854066666940387056087669377858410906337231242510215589727994825856318631461251087977530396216931517840270846869560243826493987712081715563623475328291981797936159679760606065839866958267829291003983446430566182712213329680417767906495528532553073531595776844968988122741842616794647868257319747018930092691638970663822735883382263262127198374165642715157872547511144357966051549446041586655436025283472107683630205996810023061985779550068860506979639538108998776359591104360111714528131453171535439928475349462972999881214799545368732842528125414502397682509531559717103706670046821144371665789849515023741343886151642795297596546123468959708736843657350862063669193430896630335467418567417651235951998694606313960077593437390770530228028851386329335159648065038481230847413858367819259619651326895295678167046947736022296816178743429614888991975991950937420197914165791658609922974472119089893569713437594788609003824871887811722648710165948194432892748397651558081941135127384594123709959522864774448626976933387050312498514084867546367457989185608534475664931035910853185067328295794127151148059415172439783582965110068095430977135669711370549952497889904086108280153110965501112880656956501356041091958940955002203992845490770731017427066422395733305749451949802077709196234010638621936968994793300082142958023573877702418028615434477080782883083759670857731777298703399476505212528140119680503430727761867663623649862137846928335046000446561367557734210293019040728176324117944667505029223949629396702545409150004845572082425033390205138523100566319156948044531419434029769403567234146072350510805399915240502158760195682511702530433473079168247299461050592932214888453980203943576551959087570433405013713553779041973889570966829869553250011555092282643133467453946680294155406468825353612573315626838522840907459166002952435514590401976968978621714701560496981387382528370573844372012121424657808963366371229704068829044857118692627752044996927022811635068166300064278413872901862672898570923217467289108353806183740674735585346789880791805197485854419076962722071577738589949907516761191507299694213202179072629408426235244522936009101975706688616493892126897882317900939347722670823475347236774658103975982046869383430790020403555572416587385997663709031580063920058146313675537707352529302195859556510870941736435909275086870474128321379843154684598640399895208881277559939858434501637178205561924622752526084437965337192184623913373246352231808709059923025375661138817570676698113521760041616732585655235435411633664618631411069060596796015712585250407845553514919902726810155734361544992239430007231263951108185613474253404679958844754926105221138898464770166808074457756731676838573668410087244917560496736039164770664718837557590760177370363244715203273394423942391415384804386215824001687135962432340922375742801353040263822575444209473762528162986583232657875028761981121348228014674554652097902425040995646952315593634329686846613308163936496218481820517287234711636629960879684944704707719193082647727052109532354863809094089985778496562618439145860510245334367256663891324250420037305551477131750856168939099564374403245022172754005072571330701152611554423914475241091441682112916807553937243766627343051728296571910331059796481146331765140142549676105575767465050771552168090474223242644425128308189812392381296652242774804817468244266919502894345943577091992050211221930361526907357993936014958934635395680682459421771904457783389338269913869996639049875949043015691474170888590042832407479136242351766488387229594278388103933178504926606758596715026094924774933076227504916474088124383613250612990945011260677997962962094885698869302540199222982273463758445591100262775125764367112371964042601461277282671222981335733537557790224584500492864118690118293249554429875739835380298223031063170130386347774471894402233790801624737798917832316261048174790177200684188541192508115056919964918252815532006382851463025793757759188207679522797404289750351516000780939168718108710175503647053673898197605907272889899202644797601314938787441860491552462969128438741679532845251904788637660883577121423965313013830631183895341135002590888632751003114978540314967155584798041886976912572092618119331859938519585630580875619568442153820594638551675467722087578626973738772079361248151133816356237727063696737929814257065840334403995252969855096867671567696994507964288397941022670566862779464662519065986808817608876286269257646354252145976311282942439049167668812177419538003011101956322939222394353254104156069081924708553811423986495671873955635720131700230018011457321983518668932947743499504714799653840722427476003105847311153889942304967593515118835686037625808091161892202794619736595994610281023209774289544144366309920638060797345919098654754496061598868939505776246855899141859639638956807823112439405722450530370734607183962687068702684473937436900880699905623734816605721238455852498435441579066614623501687473873144981618907408039236079279238498059687183049487771894391991837918439094532988292552765087348668747688320265486380633870819273361419202074870912773742364764412666158091763133996957409866954431763707824614682371253047497685065712886284945358709953746418993802323283999091297819609334440014906665816071621717661920190159682471725375637319923580440252275199576329543240834878962064361893577017764173913597862001111500438925244195687533416774684301228236385716480808221934294723228921029095327073325105888242240945834148974666911259382621424886737439019098185312486736280117391071230731247179724932358070105512148930822401609648132194136057777904923534964820305349423736912705999560865941692957949975293109595647420156201046003250150418140300121097854589996683699677533307178343471103840484138628436206383225504100813503869184016563944944893768634087833085692919579408097668945400239330937414055173997261662205116815556170995807836555129121258844503422953828581010907292610627970803843303299152460125020929517017078614694410868163034590699223974457600118397871144533346813550793070556582235894316138265001246035604055815572879490244769365569433349086698466617330133206578388113790359775189777323381401957993373714958702001495695612712670429484366964969698881972830519817322426821620723921490755318315833122704607813487087345056686722235028715857692500965077679410434126974289180815495965267869852615285705789700887235440223572391446849125980252874188491306090323073119278237629779803105633899984132759743485863289388037628739000982343824232302431277327491414673740912038892432073015092063293544653163940063864965021123694147723673540688508353171894006590075441438407824026062560629157227630512814499714581137927152170856292188167260133818914070936616850653455542873308745420660693020423966517789319393503770661625990516425895883642693707182791934066665494151730244005588397652657735338142457085532748946497569447252238029765596825753124231782875149455036814149747956346129252653035923538127292273694811772639216492744830394099366837802444930685690597195859490936720623729042219277443325943121145169126966201111473364740606966645333601063961909217774630200991487349057924543195607718983898070821085173815258657700881611683135518356397851289833692080892284729196875216509276389830517090883205000920938352428441248443750527170457995656902835049625540002733901418369208084740648703959114993631075212651179609966052229456580964282168478655519328874252861153844876854493262672141402923956999474543841553224854348071395525544684125342844835713164790723372666736314942578369291591282032238911400077048628665129658142456503904062340789335739018223983660347681579673685119190105976900577028261395934668586762246250721213892815121831742082248307672669790321021409611370921775143523386218572490172887841294480787074823125379747952577223232479839530796244120359966664666247831561353694747127567518317595941691448680481643387905506876340384629876679704084808407015267671754459167824229650508753967882654617855722397262459125636338100979882790951468824408733308329385745901139252505681390197643890277041219848397175582380205263168207214390596307467818252304975281614178529774401414982368950262008984594206723062263656517902286070687382062591543780070681284151040541606974647899311399470665332104534025265795035143233744635626405958053933905949179097855137487641566352160834194622503944765580779328549485803479743025968879236855415158922645647206434274672146203342057945285728446122747357605191424317242704628447599430243598014074700185200993265601892374365055064548551329741784359920964660783034582653048664230616776551217394535106384466486269292464855162937164499961198807056209236097154180458195096715240350438622008025382020226627229153954428263542131505979672964189365742488848767583606128550023104201149986117219021625760750635647139246053589370781586817299020820573610761135092336350851312761206752530870083919296865789393278579830817858920749624591846911822402857876117146724569597341595806722518918600793627973990567200840221801371069193490284040856873330130006798917701142517374472953629728704644826618871162503916174650404981331424164445373958073087414601984661971384656235988323104209374734120054061578786674712327752025406760269176615452199480746481889633272665918917684597269440687658984284870495512412385397797154457928957206922768242579008661106602751422248967604064488263493679719688857071646570649011240226305072542175806356066346364539125860351678779400784584330813012747484852222470760389317733906618416952388817507589520862595952422065342708006267847512423934600828302072690751622681265570654643846623688451782072476884917174963210330880662834680626771626807186143792571225148289703297084242722737466036070811481802129619487077028172262895962830945377970582849325521033274281494536503297879669340672446784830791713428947568967161989482855664113869470212908939758103727260577152889873018315986251292098716608231960619643072579153228860145853200370544529580619119689331570029139528850719138319071990239766584566459758923537671127724954162299216631441140415813112604639921083970869302644680506667664075578099839819174957103106365898984337370491683167084053989486711508475707734130532158179596617057735732998522130182598356576944616290662173247151597520550451108401993662214403067602520256269223016639428680181644793932076063859414430465809668641394181071860853467502282024999319439928378310812333156096223382440196901633962564824052570898860941536460856576032372901228446755799770897394946061730392443861588077166456962508599229238923544814801968020136548765179940877620168623941374591786456739779710137413429522874331066834138201212509623545857408729059065284721470112055231270751466246466813892601650323825430314625003603252875283024983667429641718561863733866706005273260218332467549561860585451287411056743278688931526794175823217938246046387634968761206437119848799480922238415657812517114263393001444416356448593808736683951541106728564346278663189333255910390035867784123420386099252138989039275255267064628222732135223000975862848342816785527464349789026348278204398216380942914924544902492518934463498413868171773790450710005421392187215400525120474302017406026247529177561047436173653597715518266633372894017992328845550535440684914702750957023595347117404783247789051265140242117203753426242547153731734532715622880327176293219680230163586685426160132177259368928079376767419361813710755822591058354167207023557136823793628636447369836339854905083371331993090571792041642565603051606509796341842418790671703504336480732571791770550314242279585957822208389984578030119953812044625499378227753506028848240990568358607089714129324014614974600864328172494202845902540494768100610310516227774964498353873188288728357934622394062746266076499726462552364627714696603181655984268776600863943660690219398564050946429559766187191124577596259535509452992965616607986928479103418734121160918752829842957308698260608917603726367366803644280989228772164862779539283944633379892051280875173300580011436572391992382427610097111408186269355671456663213184605829412859972821002926996139986366493055060996958807507909568292239778874176110636918719267972101912869199355839401651094989100501174400642876631671282651998316577238403316709686180014098062372494415241568382943161667802566278237294629761499470727716576081473553537227780633353466467593837948467118933465141434026466716687580053193837769157942164975143184031752041406476594429259234593552357699041036790134794297159554350215822689079821922468287104727174250368625159552810156729413515295128009530200967018863249253471966912667777826183540636281235535974193346445924496946637117302833014147731075311498701178740977640327811812820709329604088895394171289134237298155692914600747247797416803685481647468143576038323683495007772712354451601888102099205847047428338299298496667643738829833882992440029973273072459240202089389703116597890571128587167941831370263107035027250727867123690110071873703508243514295948620677560161867461998177642882423038355616449982456519500875418486265859578313712132519703983690102903484535873400164613989378002474929235822268033135098331671998862029383211356866714260446593876007694868414600295676192564146782731102563373448276655226644089702906364885653288548828417808353603677019206790894535617502333820190680685946961106061576996310284894359494615891451789096912514131436837058829517288672540820433779704471011705096940375816778964618429752340107857884157534395651810708446764834886119618791028061004751963098068116419266417429270325781429331534088525554665158434397513953881161882570987790705021193613374048414959641364617639182277672564689527687113731689397140923311050070267053822792450157450712811002370789017681421811842448758767314330552770157838176792399524762541312342613511469819710800245367901032652910817012255761436757981786834167297451449981144526059810965601876920691233173846667804808703733261733061755215106265652310520761959189319440875805877334848224154667987691854517247317044580484519329248020665535416741808132574168607699165492697681265069383636417727475455163663994222337256266402585555563629121520478220286724219164690829819792580107087553788995705659656504501789675912886676215338982212200314908718772143123063617664477135742049919301961387162829541323255597332852486734354578693171978057142544658682227157502358140858235284188687547361569366918089060853203594027006151806742487119934160259319990366052614208039001660141111452312001050030214968598654882010250656297447340836452861411123447729343321661113679248012524824388425583112066477560462845487220723624494457117249318765389280200070536754169155317411617982991188167372539773681040143779966606344336033822818766375646456383858745748428996567497798582836272356236000058731523207837367071480210616672611975331752310293464640845209141632305417898190983713266076236239637474441193697406187474656708264497714738259106226632869579317984706880456241973283861575097068894939270671569455255492555447972699941766162433525496502092686255966203831534349935389295118299758096689471675216355733938642546219210270138973502342592292539487118994422244533297511786701802799286131558537080998150343242576180438202461167601187182033988836920576380604154738566291822955373390537108464430909410016210724654373501856251934939401448151363830319552094182348527315420456288122979035453870426729331835677189435935168302213768523707748395574061729054526800039007536953802885695815179626358281531134349534820520752725070307411557371771418622138171329552716002706765155046313559463439394353427587915494178304182121924993882295242897522659023746078176960433414668619126790464985223453240867359072034320588287273367242700247208050769348164578082409960595913594459418718472657543655268582999379106626967848938511715315336816216540154342955173508430615050272739180066955091581948954894538396307916305568377351763613621760804540146397179962954842266490875630830606706063961345450965681953009553361632299151560972456142179268997475077503716604601657311379710011006359619740666122652418778057866952663582739669066338931674457883765135984550202838060092324876148274266178431005519686190265801340346598662134645160814791907519683420489824642603046825541404732953802693949849778081988702700327537990186504350856185048604017273573450987367972365044574683197424355018074285005867886148291148366170448067748931952602563479570097916233671023104263138306116345096874062780744385983597111525183672058821845244940459205502409447154479681948994837077046870633491389360942478788270038090184126100294803685639162862647288227989929544017211283772715993173411485996863507991017844577013958991682678214928784304363659823022895443120994062782598058038695416360022783119715991160777906791899769583037792336848652518215377114777524712409462588887111600703725152871637966258081404155904245403488214572631627325436920188136556628036842757247543641810596343724072097719357955771729277901708530046921502369618285364567659194619672276049091323106289246502550509991163524993769208120853675705422250024359063912207821806467681431968277007619999635718097463433248962767159530079529969833413969734314904237051115760877239356139285905320071530277509008960156442145689085168638739496842120330619669897179505215241163112788361043870240797420554514812128226322886302169262039373263655893217451240299304254336530548313830283686348157995234522920700266501518697242958213354890943381197218081941672972295283613348710940884089046523148257862023929372366102999206325803834948390995984636934237615902918515684221735165019132265936088671594740628685369357971919616966691374117339619111264581736330751999321067311897395375213911848231071869783022522709703752749564378003416939721682504509726771917904304031556865666951090803966067107206876964874877547788340002246491622140125677334748827367002436016617966168599751202708528758125271602159698075478268176492706556965935868528201934235201307945460108716364279403927705419185323025684328148315015449191147019089561101582751272621441654561328548722307206428403975190816472023090795466296590360482112544309010315035249225626618642708613960014119389656626220043533819812038532932740985550499182805869422593204475145517888439155966699920444000267898731656550965304905765478413320671481533783467099788856013274043747756132930895038784544155226062783480966454516482289478190126837196831160547258605919666842807647366451352568526726391301556361502402445556554006828857194832070417168835272231390415158497173351886252343429208821485829691708490063752736076204811627205449187669300211496492926846485476016438697207227608502921938644241623967009288843083432940609765019199421428373834230186277363573304348190619884317908839491527882387450415288973482410736441614291325626653152624749896927649597516582625562261046682139363136440371454017305193280782281254170668764534036351038690933164389667506289060481002510418287938815412733079637599952895279470606192657855774075474688852398323076723632879324478985739916796739653885720418591525607505357597475867161038653511388851926557865801413947004859694644243258419567124006961179193711355516136727726176831749641743141045846069647838641447122355346403487958581935096835261520332450983737216790857910869737098104359935052196411946125519453286126920335778574501016674392837935358553218614614386181505578466812758885740744407848175571318150620284304804860296533368394584659667834581957741413504939549735096200100146526964637184245205229978897085277199648233112174499604944358905219683958255456303803946196561186587493922620095952441826740070287046277330814011318074269966324622872677828536572196082996855599851720246343296504253183332484665107029518694369673440672027324496434238082337000922020706261631766334955449981607529631222471891531762641781037704679725255036186409000544973479498131049946433912497627069788254188839383277738152149017052110988546661704088578487222409974339276004707662976150666074669029310918933212314196786101343070240645918740781798669788101693931541241876042484418839215764047751320073437442418207100144487317352580677648815713381553801425050046956223583039379733337959663395608164845508014899319741615793298612276034513194523049439423062510584842974357452951758834501553130953765989051517755683934473375071952680112539023680318380923604475642161920191268412763380840531561031818700522232348381495124868452527950803314591170466175496383289885219591653395340560403829599411985303287328243573279823209593155240443723147520468680094160751634520586770308942523508530064141516891702726210147764953729522544289395429357744526138054493639610339408970989363855898000669453756279623630057644558514236212565787765339015791036212409501482098215161670394889286486698911495358510030325921997969045182825223828659021989465644673206510285937582415066628295583364758998236597560616657101542619842012858778575604104665527314052315661195332844950180216131754145927257961645603050834374173600879597608941256952785662551189927058532949137134992338578027523033940782085693567319443612400303289294797866547454154377800019492999268386254617587212819039432452105860398385883073362391547002910827579018878177437670063147337361080105531754533165272529062330963255977619803615314457524625712466645163950065642419862924898952803125178693213485517315536642173018752528466048406544180943418093205104243317051262293202820670832095080045919330506994857607220636626750698527421296944790711952185559172712505961802911655157288499172485382422605874674769508343798671116325639504755616154257367468388484359842124408812323277901079233630689611617686576201556161091350776687087681512104270408653572099916566316804818764954324801775494624270204443252691657485523111959935676827701463112176873678199988669825657266842444446978732174253493013188024977012627889806835848857072192453589255445561635430948619116591126198992110353989846933620578472840173753945989032831913158494881361739180597107026345210272070516393108404636412981764697360094901377168324738567229279876991670249336489302146216841893573801725871684603044549523845699574406108340395682069884308212650292105733311871892655437795425524892221795242607656217472984762187300353819930063642271287695616382100360091373234635876259863188891069877775836109952831053525651385540882335112160178876358876155502049203635929257479491885230810512337520979428344618689232234644009021010625519691512257668174094916457372450464525906024561861606397019118319719480507769741922340569894883793702133602386747992551670793908744015098210674048417686986722807554635109608752982868341598332471428276173598756884981927846923962991943739885594291880978069739114382304912901713333743868533532709437083210515449377233440963166393080564513831068491841758903088919726532551691421778587110141959386000402991155236277057941358210718313537250752830111155503571552897598828151263262255063236510895484156619483409647177882825272766716806818293145410473249701959820477692841205842696423382741074212106271048259773141419031041181581678030272952738508992423410744891455578708671698340376219567407578178920857861961248285937141979862204903239395374261000406131806476452260571853253477910589557947853850408884458825444027715824690407553014220210461221096344624312226694060232881438116782917568888556784227803082734253193765872557842946297127533366347559094623127102055572878636388318364834668216167784450068314708797799157650099976889695013166770401096074551131073219398872021084806610859886522474258564982137219486262884258295770471421961209726347519712483189559570058633599114433181236287674197273846765855650220593038757649604527122215965738244434009166163823626304222278185719811962078584036555972614837810560495670296362131326580830851107127404480808522175188942927388314671819402172309596673487655517533676081091255046464107360525017938232808691498171630824735426125269406496432180419459136571812259897529972204633826982385852190034646951985857150582462350596176113017266225635622285715648629394577794851041599948635511463512136819881263681707350174957197222703571694688626529457645472094976993794233034548972283173297645575303826943961815965831027230861850221295037721055391961013929670996821450704746056065337115754761964993932530582319444472647875896309429769631171564404872311738921879052432087266331535924568851748824865575191370485982150966721882782885325012998961126403887945758223201636475984928622115977931303227889315269639282262737679502518359053345034320900731627183285493378822520499739057412695474324883716789495726117471792468593940938790019388233114076052075896020861251564854601187624847185811547097615491377826042825281002890419559272544677178807514471201732781008603097027162041531681678599434670174281394522287837727672219466389047298062419145643597792344998034671567518324247557768393842269968347951153756863543676265808510947796544996408595035776099925365844217534828912672305518119442411654116655020523354197358058923224751413424482270415456784100829586008251609057585282346507632866023094717965288333469207627156246116589771900471056835039533674534713425755131630707237326340077041607254964695833453314838069140154660448404643463474894500549403016055436328062739584760820582399897499873835326623100149730740031483109249796346991676551013641279421101950720953613135523808607954377887664061525407411453537202245446168278625882937474156001483427289057077148524081651777449317374804697938382910573618421720313315985955469410014398462306168747248845107905795275445827142409074285555674583921879476538669225604658865304742924363001847855807871578911335705797994063355773015669524836429408721826597443358021737309060673550543949791511793736490662272216593756949893416541737632990466665720292944190946015410499397735523798144775913814596615323167333854818537801246032881633919882979113601276294344914918436774025853403947931842801136297230095841571220475000288859605456708287627145477115904281562921316285379985593422249275194842025548464804071988346866827843191554115809975410197150891632323742629163042876179067486497819349518992030194283651796953363305559634668139929199996592679177796489603369873895531164158715374959177569861898821295011281753989512762188522750654424095639230543252061069542511853439436167303540504319599215883125027034898830367261594659177887363982743267937128137610243762344157538145499095308634779401259545226529171739451011617802893759663515666438844154254145561664966085171734973097395319699756904702460851760103728212399715571807958884701269246439458991365224049097089667109365991414373690954033778732697798956911794937610383903449771714083460287890036666284466290627397799714290236004473021109866462422030465407290606898888012446869027558866538580134377672315790827066959119944740958636259057115251380995280024010476368129680429465784994016744038265195198817672662270698504062054049940437551167685985189013646154974047654352539414401820968074294722652352695763364692257225575599111851747326120920468446738954577699149841497650497827914819645111398121185907246579336721436393348246355607214677049464577708363113438334031194708139625450607593209729571796916884257698746114572654022667521145835742774831530304989411548976298550204884187864087863435355604510167817701697832499598973861224496903283886450426382834018087218083152371229054164105794464489984700359502797029955949114005259444659930954436077645742770050795053169099032536653667098249561207128242313912237992830676756088994809262948939314277995382621424885928219251224477116397900748257659729847578764805786076155419841120307167526097834421302851679014371451698198579865472788189799722523958509721780188331655472275383057745541296588646549527423723052946851146478344324542746500812778575799712033820061727624366941401590346011692879330782736104222422535409060183011897939277115872379914046301306187712298050790538530959429973165261005963709461800380281778350150413292578520498278222045609327720042416453048719487777638276547964042380208297080095627573171348106468680596188461875219386506919185723721701836716795307322093850447353304356865834465780659928440304404295111698051279721305051457576432736105960174164506163018804576669721108536221146885538314161476788092550210995951634586596966859004742295226551657825172942633175483140328895986614763799748743956186312684871376636287894870281264714202414408705145905943275680179898405315667062810567913735784783256387258090571920723440922604036157209375104738543528321571850989494557848823097792987204227436652120501089237443551103266178363065789577269413914707662640487892326110479562917529100288173635122546969368196159269700065492669412147479500674476292413496198002684137494873082327877570669527647091201494779783389588554362367364378184391013288203016122354225912994661644218130623415056794582544128740479369775703268513719422900058703191104510926938567010154121696999306027274597547439805477036100141106448967451635318653020349601339429129886101316185100402228950220829980713669482722715259005057931550596433157707863014989557432238398204868525905941308645588312555719756025904152667611107166725476691026660538869652301710111491408917948087368520799755943920696770804996348436826927713942337062148088087567401377637150991811880543191299322634616282281934520115502602822222955480614672581904064805665093107264650949850615406054436228061586359506532050545535238624544046990300222944489059910037152250628173693670598570030760831497496703188966527143437259484184773181601124194036840747271868189229641358003875757820150616483571705097160039398978866616437974965909351600358708087857681249503629158374293843794177045736983943521606940101989180199731658054754414036254928063553000731276326890678216703428424297068565429028121828440418050525979919288764008398801080023433372413390724317722445866353788664446851433284538307620287459684344867963853972702414268680944447865828335220230983586520508418091133921049491934612340927763238132589433173101867967133990967773060560653947583443691864289976977386909076729655888700634240268960830496834035917073655432080713850031584380420447522600217472594474136709827599835539255737999813029817326308225394309904516304325059594978577006564397240305605499115238016524952230303028574306736648598148869891073486074712875180015525579729042018479248316508787341158475332788868694481878588576673889105791605677677130503150179506301628402245325520438666447284277484999674066947782288491169344846342963560638842053586796370908223433125046972158085939391314409628471031126638209265431022502773319048422808394983440982868221738491178537862999910830667463210494562447070629573597146976670248786552353316787112275626962839476595852123069893869667046844312098644100837611994742503874215756399968439841212197920190499862405443643445674850200600668458640179774992955621481885016275587009268735284111688179175936135722235336310461584321102166897163343117426961559851391271054221893428686974424968456644998848360046384073027778607762595694537112363879891485527873483345468597747955096127768425970851940693605975359248240299203397252185832485957309681018408228939936420667951716999402301940353571403857000050295011580609644932120132125551636182453426621221862099502826207876782712955143216367374506084777179288935685071105486736170660131976200699299101027166846133889146126748427533630193126031360019350919470835156825485726308151180038131642519796104089859368970767755297508708276045148740628446799632395015756386193491408419465916979237128581554290468452975919958643645387939004675568745421308335232882371928948831943032115073528335212064704947409337691216515885415626131349159812274132292399692725057416587128722377091626430002055338918523241858654137268202333078540206133278854668233870065150178159246760316489043593953355073165380022485606266869404532861610283093832074564940869170766113056288484540538161032428894371028487397815121349542826408615771761442366886864852243987439251821739443697230499727069789102309808614058326871128920291398703818620861544171868786243371740413853539510282953786004850129474101482695392086729472347335058664504976031388357241223150825925135837101616571080840075933699907016051158461089215100644796223644627864973226863023764373299142323004779095151582797016871437052818049626866484651723517325692333014990015064456221632236648464625040228809030461192803896339686936991614822066889082487761659841312674622733800003679329870189457836521154017885040220363265665214245150088599272173110946669324524652931706770474538520790181568670115829057838728914258937806552947679941155472968250329285218211218775418618362564131712600978404135735263597313834236365695593700850837600754642204035727474116615044547307710380020692722439369680137284236370021573679082264136777890321265988965888669836331707101102025817222513129551296191679898950630858787536495491254575182769716414672442939677220201079143131134525800962815973542464150586022043435232398743289320981285139994158550155510394796395857412706735861398761164545387887430844345485158720742158947821473516487478126559839415587046303146218240007601400641721517140681163436757756964631990537499912343589411647865528853557184706668721953650226956534406629462920596602276863050575829001355256323213752775293933717224251064889463063019928526549447007486957966201007997482433246245710492241531381293295033697591179213010724948128370802246565736892819334892763373101099112250679240681059861547023490401543268625762685083920554019060198744437375208909428470811407591663362499052182788988865916155942437182526816895482081736740558451036570555975219845398630079209045918735993780446828221085286263150482598768242655092848859593814342132099432227063495989539381738960652968215276713108996141814229141373204650830028401958294728927836013673447876417778606021579451561324751893530113391544254421910137484291947702279655922762563397976364989347977494251389603776046413085234284905753189075799469433135421881363646242766631113642040837123833161852358360309380368046011322800396686799648123913633213998585687833701831060422992748568383646524240341741778170369186195250646621488341418771507774045828445367372004644481307363529996046505994563266810378150951490104647994327837018021328377688882797873205006500022132305850181299873008348846487278870302129862608873698507914338097566825290575717034278543343885005775304983574660677732933046364378204486742661822051186745529344435717659190045736882997193024788487958096937687002151745712709236079841384426368802569611268930904421517615435932581599903692466591974272189386437349663383646034968178802760510154791290646205898740879773040883025279973334628480070197296494281597860514869816559945380464971266617419925763141910612426539639692496201057800015878992892537795800765335677575781860475081948431535557645164123685285322375121497238541905622200754253859721907166676511707640848481904354275360035413651513491337341274776515773575482636568861543991186408302603617720214268948341378554658597362461648005370345248486094212187254099001464261936536896012765749451053558251830238832148716714333876172395003797757975661942535136864153295825762201248026233166136654188243688652455022397429633808291078677778865917205355850684184722402932108979254215448022402781112908903274082089595407388839364133222341854353699715398436035100655764566869354443960825300356518514550124526019290685439524637186608755875219434137766150842695716857901483143318375141776451826587264024231553480977021378358421962359518745000733935954215817050387691889476815133793150476876243550064960215815609555203679117291877626659308825745068245164769385698790101399298860291770992970631998041025100623688249132533232193385178434147252042937136484434050285318650566149598200746190514807194644706437762121756406595738845394836882504401432638057032817641223331421341016940013516968008750496551533769699342215704695825382498885715295368256480899084970959270878133635483524226508976050884991132046826503062684017493870969764633564228235046065272378497799520500474177290981823300821226674307965788974878577580295272470534589664408362148063853154569984209223494575392583333104656379638631551064789061479021951270048670903744346486388874541109806968110420718054090703951347615292680868740384472173806802587943720774099755227275772075943956477125639906911631959121882408563432786749983320539762297834103781078782080955678197848868851032779415061052132684672757510729807851483528689533061100026390570950117517455759781862994586105275649264644435000888488471413756892312496857154018821326926238274041303235857019127309763096257030363388477470260671091894048638789546280913002590508706038343023586755640489410146238483183937571731159368997900766373863048637377722763320833563394098941273300964504802007583506141321698495162923669747877074962835695532123426631120282434067989047865396837526618628890500489722392758065672682508238264472732080019803295148928085691885948305441996816122654504274818395900704977345241488073189957727193401265392854743612389831168883161559242083839389756385256440609808617069762272292588302334187192713553371725306698176155467645347259404392266156981763458813985655810938359286712756989262999247032711459431813100133858433037588267682085612497703734810317045539644580276146442574205363875599243840189518496871289182536275979876944602425517001587034273962483182452633578930785046557200066081953560579528191900013500565341994601494271564671497286949984648649713652340766131270203388257673198653629112346682418698888278429130808104801563678187618080154353433275497570117108186968742075296526675537798099637329589200864154054653278231459419096739661796983397958623765844102890382321274107915081617271610819666782761893301267933889752326552126767967052177572688127678685220227936845945466707479876976026372249247213944935969648779278602698911782768996050710287915236785463289697834952750238055462629407183135573019574398332632828621960864841128285637123226933469012403955371215108953661766852653320923204547839525713082845313044493595190091170238866550386934179362206070014622322257954405926053087523366008320102829827097316103445906513677715897531007890754870743610695293803863032984858298689663550815507294458237267763995805286321524865383456738529377542655507880409015204395657858981348928559259811077041161331014773923789797425455050380548774886521042551432943339534260897536957556446253684942572002275333830199005726905703080952859444023539795752646741069878843963780833823533059350305818414805878185270806187668083241689161816673862854204929410536925377614524576534558042531181965030605059365383065621103317724840895756379000717048716513623669416442487042393755622200618095079769590040911200507207456869172681840215749638724973975526667849892654153409479965163548928954079531129715406960910057049153413273585214515237902319838041296821820442929557812284403546148617498163127153696873473869537263259458411323803034468292530491248647830344924412986296407273925403799146857921969149039968617070274113540552527138086721944944227553782215780133605919542038331908500955854440992165059166690217888567070712669610682082561369699896525159384690763533602737207283379110301864512177873146725628095109372166525361252089050193866527426025583501128420485608369148613704856783144083119930500273875805866311124888205755343427883845566472086855461060117804785425003476876328717264941145909154365665411139241180725275025596846020158714062431251365083251323832348207395142079891116681120864166410396284093865443875768715649568584875001895213543309806763423661150648093310726250606868872841785779506644343269896536464217492311025824837900536326057159918197951075303728680000813024895111708245808130941420732359087146054171204151591693117515126897439893574074870862017238696408930969787936965416848349483505295274769323372412528182502028730193626652129729860952493074468152469893717566151303525410890422881799454468441809280077179132344007652174407167252886945072383031197062183890366342839035863520486676763528398060756051050151621136145063183074990935038887133734709946576952041821223856388086928736047716610256683671772093896188583298992945306535087950379708393102972847500179114463950353068952501232550713382877649942938735910285631960585973934698220451320763445088269639455664604262922318476216965324553469147341360678669352227635020161048050141071377440274129831695438007070470091915561411617552112848401326659911780337901026269529018270033990814319146605367012383484056285041146056232038358412250380173888035707234104638170408211395036703002952504878765906187402704267143176258064437049993919695132481068407727185769931983691901682692334027375537385699326447039043079961813146205778310399409187265794282162395443028912303825311560407028982002957408923486996362690120757464154169119199407037930783201412398355457394107269847977379257810596573413598841920294770889296829873351269416673763758623848046849396836463763830664308158422500950065517201243664339933476100780941746167437269494711312847246816561574746877028320974586642598301554210216410675536102812852060637852710965972509605448342690412909358516810314066449014387990191784474225343443923594064449174375309725166709031437805658972198381862973898506492487295207491660032236884659628211711099106432551616453457122519978793153908289161154079982044214007970732251827057525830496099298668453632187030648933502865595219350973534183117639541492433970220870773257173224464479234389318701357098751008369640844754107467865259951685475098329226795879584868907742027717417097021115912887829285665871275619511462598535742921149541842533354982232425064616109132607499905150651080854450247714035693247721427389685544569607324980181226259191311770713738961141532735080877147156855740065360842388067309390488593031985544938123577764013797986835156639932349609457628898848366822900490151235967889131023625958239139985302035518163552615326552921182931688037800652663534844991062956619173369301739029022074794309514285370201762414308660574757809508385467135767590608702816834052334544709754392333480982528874766267693371121305671666930710531549682640119345472624095349367646645942296742077644304758604095765265396926569809219180645167767088543026539540785522129841556096381115935889399886200067477312318352099449571856023940546116386786018252701164530532278631730549555082238274063107408672635751006790244286800085991653305919739956359603765171660751803759820931084326322421189105649902586873482574547445893103021878431973338948653201356528100940579290448988474174310910285936571937415691681565207859220292960929342874681715135988430420623367271566827774568781017933384339178752517290415048900818043576102054113093557626913476461186908557743537364390465952084271510029519098068323481674060952594370263174704289852549761643272647663772777301470343138132665716395987027130202025476975747732973714499852169346323598320339027109611845979433259626772074680361577683027614566762388400468028515781559752050069312088082269837164286210680256629573152864971085199393922729382241085379181076044514163979538689059509192898300241372956534733886851295528636873766546062577504498172964009241717419015649464385670610386073148159373813537319066080260050808173643966374718265864770744330292932943825886231736102441654687062986581946821860659697227228343681072660648614944762744642510628392091689798632463955568645020626637318395088659405024397793224337151572126483269084156274794739822981933848982558271095099570275989686669000383011964642053599973795144416458845191877219338965307019650117814933803827720508949761848334483476617055022554943434133611288509277751323718196379588641655260882279324183689915429587115028297225875673195848269574989688490952256774446119702318398663561429919710548590585109504269316324427849954442367686812277170638460610953785884423000975177242223593917631443686716533017030435444924355737743633652460808801535061890400924706489910565494665552594571843805274842451308886831196877860633110528945590940031340050142096141896196371518111728536021043426192784829915149540013546626163547130552972968851674732715386499939649993209513787038172755500277093719063953385141616439004725283294429510683571243527347308462007613753352498370119951120442867098656439417396402749956037618229747621168564157070252498402401481192838021803228936996955880308939370977638193836483378788133115315037652402500788933683450246087829367685548302746022281287800928613161888393880406734161818649919382771846014208064077429745484957835500872457720941202530711946391947255430936026903143642939970440034579666326524908801576150424106750400305019418037153188833079913022391227588946906684265056047891437008823555297144056416940531651276068428192704319661431135260970786117579191919177350408834205222130487918005158617807620860548926974689263479708835076832163307161654911163408693421896206229628279249641068602083295623953929023401614008403536679939227856392315622075796728177572405219528107216508532702691528214318126487033849010963175415812625995754844052059365164426854522490413506993478142054008246443534776761400862327436071802529561559145825141096706054945686410107367458207432215399272774852298930303423377338730038452620647551664529913819462978977989419741237208045007760328420623966159844022092840398376439745955983950562783306654659336908722435381829577404247457536870629140187714034609819452566822353741235068513756267605554468827435642565841986210070288200087438525237099016910121679430349827834428957785873823199882974566545950608418861457812094438649790394514509525839577442697472177560688831611961973181573738586252741382846278823535793342111500411896577055088255556769519542294831654537269698681605220386621668737555882949330771155677607877924223159134005078826874234300697741970998687390328870207882544564600665784585469646746618274113167761124199049246794165952680070300574281910046588557943740589755298384760812648525797065537101143718082790999753286051850440658171054898836192169513186129514328327987542796238889071716535024861069903663809627159652431948062171106692728114705364376485440156759896345309959210788549822840895098634101971763527178899387492682698192060756650038286600915752977389429242803644365732798527506050108091785781769368539910608732862852242030077146619863482023022868485766503396795152496837288290184524515364120036953242485020714683974999996921935828137352501586939249376423610145828700585090418714489738179269723527667820774091944702717992706769824828384991169616452473411691404188921460722318912524494225012883129823980922334616073007293994413477292274927646735627513305994541306660773015157087436755907872055681609359680769971135248835812285217550511393352299632259716468855839934869685242181793181838069662083694750651909268556977724039597021115914049278710351974905663480996615412341562161439762658013167672124018051307325045350741974095128084779991402849567883255383389848030328883155798034927003658078491814970498696756306794910057432257873216768146935605533186045413872897129904040938403960316231492837121082560512448144908024399900688725834147284026035118853720573608263272502282336102237270445160609963377661638378705378531917547248126234405509545966665739443075312103891937193981709810671620026204226543645018645986495196028807728694414456224864979458498196503275217254352236525971842133427105612874315857678150427982504938389355982776279244453512681644005070283094954996768337861512502155152906223199779618972735181326353505093707236031231368452903867345786478664293019060249809152612280832439923525762440765876819677770362717873159399800364332779214577595127398060541349658089164192050139330230907900488893051794486630730075327158123068554846573883977496156777873940817820755037834722698522024263158597982903574490870290752743969363426896514532906107094187103675020060080313109391156293017673520892342811191597968560255268226572701345144742178953944852196101522604917394393771360421628566348484387450211402824493927627252719056858811565280488981329794367935058048905013736430358954004879610367948477672358875963723000842966866161443212525364342710159840874947231749771511335575409391931349967979641764766540535587051322415165190925570283684153260782063490374231795471847742100746875780743683898542027863318925155574641375950912467931411876864089523473386262854993425483542522835641613089504936861461382292666878847679797426490187461362334433275463263528718578402682282202317156922588410124366639361363778441423434898241961423070842592850749082058603147071033340119338257754045451648541488879315545614149956705738338252975639564034770580447608748974840727696386688141145450038183312857358161095457384384763450961206681060761056700805683244576764486592648812652252471561746096080001246886027077318348672995695015234715410211198072218983448185274289444287806497522481905255322125976958463188817010359370323072069382040354363592234178772263964196816942421054774560498602508494320477975062831388857756628723294152680824576159731395991311209716726020798225012200891741020532553354834779839529217506920564904598200109670923184959355045953166680107343310376635305135615394384699225710977435377066680708931583478074472044212695296744334913747751528806619524086611593623090402867345530472910836338938982558724669329601958243414243126206879407532530935587069035475548473085909986806903633576457537756728063545148408385113798528407979889677928801129883367556100878570064495858734439509142390827468294277317759945255128336582791599724612228873214232585929642427021484162858317003421465511983992864966916321381682741499021381417593484109739348898395261841360389125185778045599270007248347933572860672124637559787517291914558206332292964431983981042267162320723596287816048434553855102398612227568334957689534578504324672662803984088262324906290172330731886389146915270966766147306545436347492523246813100889974107534402603077900879397852960801419300945522910925805579875415424212740878561407987655607208072970947830863855457869009041799755305268108922548133905388257732757139479410879287846538822756125770975480991818101375912469604647505105309760143799868867758195395133820748827759165705009948999671859708737224708956396533156636180570389485973919494724933439760912288924319422788298356353161356878795480300621156159416095791560378201525455507489545547959536722938291115688391454266094708672965770720802144952042143718307681085696375270757200927307085215327123451196585512249800373100158052175856590114350890128470313856557132626414340455680946781792430347031201511620737633352762041006902868803670446115285835455426389097179034857308942231065155383788694403065894049883038725081543752100814314144758977756880161944587844576848042475190605338585118063051924397111881209377506942041449492719545796727998436775071122857268415060615324851053091127844045756309157680581204573215824142699862226768018462321360623613271685474128732577548481625039118197602427765871760212874609898371134279804286530639791857944098200488227526501587377671747686814704424618952105260716807470163584814291951716304825659861912137475826472814823805553237015341747939985897868556636447146370258358812447422469641864969181399663202113877122664171008587429947737001252025852608371474455564831268110674315931040449957202522816377755713590288028068506254867940606335543914817849052435993351149409609547079592810910586608400894994321855676163570425852362609920953554189680467514821645883706482252105349545193802822901966077761319957590015222210981722095106311610032718071322788018298236611566480857153248160559287420997530293574178674451045886297458768349620516273693819765314844683250862671911310254055953326021436205001806035788465545806473500898436075498911324300951603456164018456366224555537334548925258761943669216854599645301601728755945462357102852773994154225600894023737319357938612550185872116602206146453257074439128393394387404884881458346818975675823993156075204190080616042050529582503565082985691066364017553211620135662577404503358991551064534395840690215160771760722087756557415872750681917411441021195770736320266098057541231163593238247446239454734652401927641182435282721409996892850884330391121881318361820737460120297394337964203236446025985750352831288523579197511832096645539596284410091754738365933234220896850251404670042432233947225085087828102098219735705217424366480257678141573015671304288716759630701279327884355376604315875697536891230912650005946020017323812898202653018912787287990634790857668900453821439772827445021710608762499922240587742544520502959595072556682787557950077938166016322672631799382752571039320805676184415324093187564296927877215197745417671515783660542927823480219035474050840542516529476986097239130036121241189423379392494878425013827476174028945541355050059273457069273125029839741081221213938678593003630898203680363973309904293040315839161284106877446193000967232459383208302646197996199565549911019092302871755429775240826567236338777004823087522778409411295438323794647266540988462484486532268496523878915417890311073822437462684029437603076617468484370556167153978911643002493289089201593437162796578746781353801703423329463562232783547854729603263485837870561330871447981606297735335107899688678858669627962804547356677030408912076655047212217515400579368467258432056195216600761686565110839790304006057902095342449354744486842625130059294300350598667948712104609351587349535224626325332682985877130875667220073726582416915057517258092495036296690544215281299085078327262521497291626990418783852425409117488340596442940427151421262942428609340088675711027259482771173194841475263650180714008312261266916798029212111913941495238446650625445932789998606446340394476066194275578650196850010073974167960627012145664220135160679537280659344879438612583400427303614482105895412182736804806044994870939080901549746342986760456943210865104440634961602835165771676158387293504895856017893095627342470630874955359539615261947630293028531345887677467464040712717696610465334436300643120049015875442888828376590562065848866557368905980000900103764249038880662483620618745717586398175345514614600072027791377445495499697472623797136636178507068955337229189125422429554625426658032050442438449765802183271730769675888957052873566132605486189073628826156517396137387511067104483243918995848274980211201109006569937138639250502646449290925304314836129289302854607996109533647365598838945434814820851171307338458275944165905704066660445494170905417352101169790485081827778306632900672844843097167682873542939300277914792052705680897294893957674892842898673064219396614221893708374293459139617061781327901854919697674617182000553134468567613116768026052660088077524335283760334614317985628236757136669378266201942279676183149733368225253851954715087496628926023693372594914943769235141042589599358275127205034755423476345733723008401142800292218484314390938536317704461254496953171881599330380527231042409766892378355756746517207062050337017174729323564567474436663837590851271736317603864568452851619885157383888159594830038714497158534588084757556209802425490609711206148127858136195275161529778826613180407538872976032242620596500610084065223177735129991457720705336781830516476396090970701425481373518294037956572639846688692315646854850171270816821113155928742246775202987265892009162930771871560832908412234537043924076117274688665743893049302027570224876234825481415290580153132688585274992731254638203427086471355404468736100021886905666468262030489838866347780469324284511430071831407881013912375097428959622943050502581487023336331270216420450303302466222206239512822559250649500276121922452836229308381142607922005200314368509108767833019938861556826946539860710294956662178925780045741106213211006596347352909408981557362083309259778468480857083929026809933398398908555452557895823074419260496608526331410619811615948369895581808547539627219373172456148094617195780761865252444814207639681332941627986380654182994933488172547005846980492201067081147422284630417699505587681676657537396688527875881823167169859215204852735439392417178438230006800172791722819121263380105845561605006073352300782358567152626464886574072743058460500112178236109303015601519579798579931681171502246250230076795735691813368448840715653885576424590098565484453461213527540295333018102178410562390478727668702542400249004414541039786675718144969483065433526467931598943425499610947114625763474682115564051711680149971307870690414924252603345903359753721016754697957290657050326751280675779526796026596084696071482715356646229312682294119432916347431175854992026291550386562557755434744105901108379321586872434435089050471708782037725162667533136840152680452934500241251980445104717916441161986076844075544445546427687272131491841519871193541257163486819200326170296241850664345125870766163767696739809413916003449497116102851977221133318311703144443201950588824242379626913085977193768838479157293961827408246232514607424691649754461721096507321454464030960449705602313525215925598465426882839763646212603717359134350139196132540013641122811598924922037950871901694081514936098535619072318620432470311455349888527569883857495115362692818834431574533602898869997708945200377707500948879365280087582961356148241914972938093856748506693528866461945808488987180761730213504028281324665083087131645514802133075309546342262780468811092435398888038058689603465095435355470445734014990693795836498009663155518802886524033720620404902440612541895290120976204861380883327784088976998575371352967307931046839819773754021319103343076105321588336146569008669073621257456193765746472413345621022882556409031664833765854123851762572837036036932193966863429060026639798765491502109429431260478264563560355377200090853228104244500522773762017227933559042215505888788715963234186128124594710686790849956284403368364044920863951633945205327658227643392377866654156182081129609922405913445334518164785735871599166987390569534342655902759363295222003739941569534376505647530305926272093515072560178568807969558604096185233198965531369006594307148343830845967927708204937908626190219503450514959957735168327913348517482093469186825070450404028688118685125770120225137172891099713550362034762134134598608889194378238312053533947903442196156252718404394129567247047557512124490414679938951963729190932448747956345891674210241237799920079650595810855044249274010547836971541331746599363094020126989875751970971164534272287587340642863547251841707701621774971946504552369164175591324889227577356792673714227064252616405292158889320884260971143350689435141105634545728406076381758263294520634861262986975593081608101232993568807877333655305628092715748176406741859124039694293886692045406788539382654832796392181692179470368260963037244236196869002725336998662775494031763638292895931690272000855429270483567277794292546969444517694460584488403489526282280269261823110274969215457264431425695037800249203742629869984791641535365364674847459953621074057062272869357989318981665129226602860620822607595847481981914750213398705996745015209802366056572129316175200306874723538368589788152584652698238486330381178924409562741961241950266784319178254166112943646564713832355590008291812511405820132293455355130193080812281654510069110690817307867472315047832776233956454013986425004441188459364129754259228888934778827184204546864677849975527339341350165582360136879373159442367273315616721499670861386247357469754406129067690452709386368806986163625222595909873960956277626738611169316400665861970089953868626436665334897075944644917140148559119801760008370974882924765680305614247649595493064245583832657301425692169161973074029867116087878804055792749416177157735853683819315321031896005912538335731303024243200854893733675252212902443938656788330134856254892589142487673702201163012355389228688965285090503973665730322758103395981017399788044174513042806634649244598395616204743415020510865947928031865691266453501574285989687435377183635490844601190439505295157194101874694974665712365850931276884616031945163979350673174648058339043607076698047037625390990421330237380506583451908977338224257609016471518978005777451506072715915381711482644743308996751789758319044455937711997296205516079222607262455750840942165657506299278577099750952397708865746535382806322240484377347658500695228974708831305033084687363733267849204931204006195258491981645899376417912497659020496670641421339091732733210613649040771609301163841762955458356697373946252339955087882791764893366872073080271050436969174658032936515142359043233969845743723499739535575076547200682720797538057335637539510233459498644502718922758887461574571357186133412096211262689708508995842660016959950245436912119502592302086291036641681435940392001295263923761980467936410709994052569718052197475139193542028746115030592024459202325652328005721035559537636492622689312998423914843716528579151315212124455691215783806060870119023343063376799860018308492034852349045924820099876075532051071787150683013289052837579323785281431916203376777556930619684274450659567325313680366156046549911539699218022053323454960994348856673359490683417931129519257996321516698895534694347060861127056926794860438429990782177135973557273958381872514257720688788319018247659063256488926583286781210024825452476926220643742475426917751333719595065206858359620205423435947547569048912426073306733699949192693382388045062951280976243136059155732611907409345365422454673239008048554748612869639323071949637516371180713924413106081412006946851021538222232689536304048883657199117364543735015744872959758618342992226554944044769038421748348518109671670462214588997064518958355259108666696097468006674540642410091001957169395619548515589742864116843134786193339998602455188048541203817954913583787473922645442541862774541082081087068692158428931592927117716640763403678080466415186839382860440356622393154445734605030590397418954481929031121335155389758768491844409177093102952035651067919505626685833489421976884779824515322219757423036995628437011389358884312805874805039469097185848885512757684225691537358891945470910228332821621330162996477427851185354529787778586656476704948892302496511402960530917604773056925093980125724641428071796443996033871233919998230081739490635415202196523627996587524851494037149115061831326657420222586507593549155479803292994357743316609739438244808745394435981703681250530532884038902540943316516963052305739669022398618806675646380083179088558323854359878993200865326356639701383482158812745598293405523804247671512161400658462853737802944974846491119004056298791345095833613241370744308669601554029551785225929235402849197318232973986668530165068508439278106637609815211840715089976673956272674530161451971003780857650039242287346894176683223315268173732923168084753173975198268779231430628911830963729365470253165990720750050102689476819901955696184665145640875125084167894884465411721188730179458039417866206805049183652865865994795209653196605941004975909866862798064323687404151787327811270907658382271412666917523814019263643624558249042936696551195697777393835058216497320853895894474421928326766623858258990079936900354858670345689655080150741021861957942726799777193356882997368791558761996427086053248639261678696205681900216235656415453732727479847675446441902140044843710676286256389342632976107760382868952700341206229588291752668798321495153140427344562112775929807694115594992370451179212997340155790950905678156920889218172864844204461190218649230525066565989952914717187817664208466188104371772510648635466990756788417325931019973111571472625218313435671457835963932303331483405603850528519745487430391082274529028510302518662536999503491383065225615716468411190868665161242748447629225170485434648697894792337872106672095627625579502946474792833567651758312298401918802816413247328771887084308363487441221749732577837327558733539993362217122542480877750272715050585763373107110240763715494814835933800491773545571161530977393638723629555211532149898685472590548225261516186967814237418666740315113494524536493174359267741150197304986411990672436286282809421989400064714801447409244202457119515873843088802649429823158798361350701573280119465916613791905444233777270720520807348853768218755880797290725697255212530151462955480074080139048435980226780051444928673890711381068374165178461401908407006838251409805444869912185921662531741668054070003932357338772104980437385775885718451309280489761659251231884397331303739158854489358743589604083645030284554599569661043980810265955404813660194171084420924954345585450878906937847276034078323809937357498648878720255325297778442410278170526446368032536752743705118330949434072336699732693412598428992024724314604411669701162453961635243402874272813846917318711165103847275667777678152498231376311277396544115679292848633011703347889119816936434847754086627693890431535767017777803559209030285034661440180637495187107413841844996404983835864151283244323744947426374303374034205114933991941640048961002477229769033920935904897499148283832350631544792102705331584461772391620438174962583198049675980241484583522985713220650559379513849338827018683122345027035156104473678282137738456794193533777695604278024848035665740185029159194190982970442361084761076720897629800999481590824554332413764060170497670006716548068331068983724550656493925596118509694332571572455133577484341033852770379309932779487012001627378192947699650081405016181843611222041047917300198961704884383455113647634477988272237644106589936749831914574957492879827150143366796265893941684163683085043093405234468402864924789776714763379488315208265992517595916898530327878464228064558982046009116029830797636551033420533140566160909393521343315657560357939782489500639954785624397383943167019558044975253910331032122972645828626332559201231943469104176999413228971992911214855409005623007902142533173003799868052658262721798404815835492256815741282231370458255323921021889877059424365934920406071515626666563132183650284529231030005132131713720658003240038234224167359737249923951094075187073083373771714857845887759930644194548914858697162943196698520914811928941001645546884590517483512100755008629415957495045831265899818470469775813626791341834557618183484028812008302004355510087068535574528959765717452419877768613848836302247574921628922854399999753283965997983204954535091958843974706494123181542468504165975819811384693578201246851871136586090419565798133516354838656087816044867368932455745986031056555370286288860382185308259788001081553145900280480338187404038948084365642884136760023024530086274493193166329926261298621800718044881415345551991570243158988492762856800822561129259989298210319534112906188784562117589668197669017886899317121355895956953291801366044605912921819439218618761664951468626645265287981023172081528262260470125602292279684790549706838830561895930497469687397269604597045009014392742809080203004992072627486151405216655813293068273187554101967971860733743924340742516323314612189363748586213653260575746181669162165343388858524082578738784796178388763975498019755393055959115173929447255899618072175983501246290284213458201480850314666755464282707147253164276046399879779354767142917461312649260069729721574977074093585896886636539377130163953484869887249910037215964542653878997810865184786166332864381358988513343192702829835957101508718440764881070550548404434808729620167173630908924166507244747958629203259461572073668347502578868082080245529061273901971000636843500825975369847358368662164237393022005723948240397056124639598256119110191007891875812934101893058105775130983573558944016754794262967727223227475240309877939841609452953295236214339377615172540387889024267134144891517658804874669352916068771078556498842706599019882857843910150845873390090564415302396988808882454129970201608476090113222648929931281066672756599484223833531204581686022557673738160702514045609516763150980145779099111707112135427150332360439095732162638885153406117175031189064910436940032609771272387624336781150591118116072193614349649623957709955232406258536731617119117168460987251221744148572935254924074050070170372593172405441148598556356826187305114940691903063884850922477935972053494211109740854189913535075764545060944496088068978572330141780791123466369916595113990375878198003503983999587088244664152456621361101852556201921928950908447623309565126923936211135298210161266796218650490650190553023897518596105305851026591263513456624968509339680142847237597355410651680870568871415497496553922402289087279653606089573037037290610168008644913693372465160761087700304597602954813213668795224968457027115259036543960059440578359526031297418673983067026329491187632649817521908642945700228371139907994129985278433906064363525051566632404011123721493722113789074543879900600609622983323779526291199885432908222192414585563405564016629434409316422571613977429249294387072999562490384103171126942150520025115753543275103712175061100661542305936430839363954481237564086450770066889902080269558442069545372891765880815048466024458149083116132118386275816732975834138416526225374074874270777795208095144824401611479617077752028871497006170537307228409322659577883004239451276024199668066952591581346299672585458519837710796026593785664823123185726472240223743852498875791979150943868794830779015985530047427208902533871059931963272479760324479400168655011188810417448161225974427137661249393265593949800311793962144217929574884761978331395343798834525259918490214505070175594285951618274736300681413413126914566105795409077320829127710821864045751962132507513235777896452918978493225426564815331761417837062901885058406751187358478471837355897232586452083124255439693484261554601285885927904547018954400839667605931928374275838469311294328372172036801189971491017473785201818451251477565119307341159642157648862913716359100327968529142150353346006480773872831143860395474756223180522603864622886072461643901150624453106392026198884468717979386557721103116768961224592422978288590045774470457303310657700474027244542760860970733727234647453474228444933682177940868750513021725064596483299112343811149492097064261764428086097073157511497899510649199538162126509784442067947043032768087060395873841538593050552066128750045050165349757928585970219308448565681399543761124842019555074502962282422080320958264033304094960737783464258740212160746054969185526949494605597133168153033616417448497327340449169739528774135914345546629994362798041499901961060693386571805362942638578344810566136581414604473826722724100280620925899844774169589641265500796770237241516020195382267023904845339967456899752828056995957316227919811870958402662373251552133259333079807970410644150561934389132751929305792788100623876814245880451156864286755514165441952761974208825712040965097347899597227436557277422617933721240318775515251445265449506860999386504114612659977436365690197578751489155417073362506208990035559351201714011734481175483299573901252474326638934471709267396180982696239442250180344240118340809063533136088292363501057606896383818867407683831990467674199546524192637378070611789524123008320952340427859393067081246137932164543936010108316820602509975194479159099880316119145252168194687670687738872714618438463666383576029027139308957863600348974325898114961829460916769463191349320149119568403882967412407700184823664921417823194758495377805519323939469065638598822728859052230669785042822502186835421300672209588613443871631617317895536955107416843921806969795063295407349265751799873732130476075736746140556877381987142398368956261954961351004312058192391543941737159063759327048443535606659495936188910622295100554114251337230192716508207969825467009187334435204264071573654782566300965325863616066162251012399241113889173319224325319218511754437295570151008540579350700720870168721349563643151579242284223931609379509144077767954581668178385861762902746691079959828242924484273873801213447006920914716879637016238164034604086674028871124626511300947027198866695706326993005840546965776796452327853438768828854646964659591812712183500381064725835872044528304945262597895740354837617120539891766838783220593496834669549561209268662390741135413077789384750052252445844001071933863376594951644745821169784282225583668696108840984653349387377247946503833989067104362394540164903674810510487726683766009529527834555595026832923336775995991294373232220286909688079039954561179075273888116328970848186872254085272739906296550528188488429529372074209332287293131519178434381165861028719996944980256738745109164109101908993843421310038930896152592159565324881139145570851604169654635602289702997311335286971927228006978947719827810289703288839667445923055110855640320804167747035793622410913265272279748559990027659463435318336936683406404263081642710841189488272534433496246805377069369767755703086240043532853763658017642808016624491146860762558204168237639978144857870253844818594736915190437372792432682202036125267063029561075790435949988807135151072758825309611902316386631475096727118741286517404947359830443932987938461992157197299835906960201052199850417103801367747609820192574218647850062387911312363995974364287294562982259761335628223611277612759309505275026703855310399793145904005543466346119861144563491865025125083014043758344214236838717969136743929107095372252757712400125902815358550206695708082763686614047934575567773297290987041912694309772142509546188356703095920781009092643089947825932700587631044238803059888608848880061117765259611692094647193512988933574907509281156602122627809042067735287297978385825043973946426192039826528986225495606014264979852164566574285055362185331229139065583719581881772884057827847547362281394158816645648848245547936455198235228059427539496747276095879528457613232687678047715030568034481576707628944385398062716654969651838125369199275336913769410688347855811476465578721660602196223091042938475714696304674256196998429153846576865131262403982333563740482592104382996246426246753876519811555789139791448031074406301572587071386830401986864373888205587880418083296011569755355034481792977378866596793556208015480008591046671221307432381442497502763577421955778257223348032933432025504115433319794809755514697479874419737758224260469000225209144176986721777694124915810482450718431180155874584806569108514109423758436894343109584671331763108772733156793340355289671746918795843142549259259562202559032529774304532641069948944442760911896584809410687991638391974308868178711204781809095348876581369277722703941902067419202386330794690701227429038543846778960586670265351328939599438970535084719699934208321757169950960475721846490565703176625236544614283891809453554164972385291436981006352804497603908620356322726769388610684947507841519816856080060123850406138929792870902139243983663946384066849358836082948568056093122710865627916480314743904632128126882867093347835058301704230804764961027975771518833861492475210534465969492165327529482926772442483363279359222861941000430145181486015765849374468159622085895205021797481677471187050974006283771495069522560289385606849870278877455304846618038757783413515673597629997051042590111779459306193710646301237735867413367731197347564419165616618818448367445968171873650053675091309688056926318495318978083878092353727005892129941213966372215231745047805641693161433916412642720604621080884662617996708723287376441571099229444938163709128526161457534944005406206980057673991508398841159251579286387204887859180863254577020545941658648379481587835847057064691873941954140839390362373346930777484380537860956864138942460769514143914638125931731975778152419634485028082969139023164659953723851314454416813213270337928082691040677582018828202749367173906709563099212900918955656560019936780435219368481166264938146613384489528155984043143980159463810019085969837781519900485990594981185647149891726470256766966837015935619471152068686517834298041121735809973452634164562418657210538965941927675838464938203947052158555105925411658748505779210626472636408519087521059810580192599493574675424308264515697615184027751872080952634035805277001255191599327108988193734494087818252054679880070491918736628411158478164403438357651393719623973070093632956583351569672128908041659762451184257262978431622491786928486799788412600997193063270491928687991768857073075752305942016822044425849700465655516516005560515439510206984982211758842232577003800728737163722323886483275703988866375966013902549589283511171753778987628143242948476735047800037420424698350070415409060488529902179113795930746860543593929831530801754012018337714286670538723904553067220008694384303725684009894116175960620628286405865735553591471313056361612904686206628932779136413818773490266534838839747065951822890302918029602598828643287770959445419200001161849451095149898439468958227794123228484952482872448550451644829609725421879207889643536712920434663147540667202991317812202295198345746810392459276641454095074211950672769950625727615977290803273338913095332987937445295997921416118057832390759144393761039102664470008652840907083679127963037093479840899830642833101722385167862849256091395134783169304320699007951115786543997185747772882574184916977386602420553504871460467262236481775591656699759478119032675459243648591487578501121375312721172320635707853499058200434347793689780504980146951341879673580179555413003665776458846072880339999565086195251057875377451735308208588993571625748662378293708156826313332546154309604753328248756526128876288539163993897893991038333279927883403049837589558847400264497920004188256546023840583913912851184551515777958823357510563050491740748370024585659209052316353708657239238315906616203919867495584496314308402427254887897783069384157235678297441654466680747054559523922443730031985362791843970350553879718640946699309220254516270088906789247100740130052618890255109125063516426185014252754052092340851532598450465257341584837143614917583351986074348513171840879989738597449199236953126998715683301268593740921176169059972779087165942161647592236459326737984449007330882976191166477272442297082343606991843334837345234682801475644983817036233145490435660670545922813680227441973693553830364548487985778323103820745263598641132840480969055805240354782333960583055325111661885911969990259471544358224839465360451501097172762268742796694100903332796933940168987361841188095801787379756923487027560305523117236099447068105837107250665554562282206650058872836817245470114272595709840409091446241918780908038337392080399111301181802041136387139897609495799635926435621074678338836821328462233270178987546611314050672068995596926599846953365571622012579439680452672315658913537460387930394529653888558538799635829665106100136962827805916530185385339682903526243143957432736910568221211103742850148580990917822044728348075547758907516389667448880851674072957439583168330557779566084290318700006739220461337402348755670206030666328133402517634120647752689941021883768136439395403241754757901487121478089368098662156362705871492102361812923556477631006660471358723024943556728125425815540441020283663131033323940360454290445009676308015772292255498498971027460573203968829899605045052307531699862579679855075801293620007791780804548246332073830432378543642956175337097295247764654487601470844772315080929363591235677179093120877514245526384905617202517553466789633072021975292782775497033186794938877413031745413141995431565912183369005160706016183451907021288301826972425736772322745059282433513596432163160700934270718126282923713176695798711134908492449590878930393636209422811375898534607028288412063935397516501463414523021712610928725041639944169262927526064008579864087349370383564462481616473063468655908815580076299077914364113771021732209077736940431436857957979441739669383821963703216099166092013768757786472708945003876205894911427864686892192552850730594084839934498113014879478318986005263362057212126823141464607290493599947768832607089771045298698744707220637656318509987596049339127104310270461284444418999496594341650693239978163786455360287701424940920518515288127378850557057214826488570217967053274662345418127225053281833905521163970064266349721316586466809276363936811832208597646394891007029460228716096125853033002717794062548264371734753495748822678978599486500645810826235625949540860581299282021860474910727605013714061584276121962649878548160374393484443642974557132144632230402965899072111158246900858591470842661150164543115956211818300735090467614018435012867417372829511812524668347512841782553776083673264573833814483125031904966713407291794376777837570190514935860563290754835960246265784640152433426493789364020785265861670870422023931154489934347911358308817086456725029936399524494354051437037686143063947153910932022279316256252649159382651690789255359570139402182690000731723699516578937946303926624315439429248222230679407167702251971688853564986110364636826779001641946833809769377121870419589737614890224296631342942299434376448295688132976300871273258301672703505701242989412998725022853257227531244725899501746412190495549006524410454386866790643130193706343171983227803951288049603689050921030732368450494777062950371227334177839391693698184759227115859863082848775347294818328747667008500133309728130702760053339123458465790815351902001355478325976687119557145537360321684893476410366414621921591019569232430499725563866393606479909197150468123852594653324657977096377317384738892910205412239885028838899266650912095174894287342124578721295612045824236021579815580122026886496758163340209547945425415027030923153865321673559959114730565228805815500890340760958455212874910442192661596087509626677400811639131287451651447660788249569671895449489007197170306397153233498903161217132366273151612388068583095088512088058294739537170073592969597149564932237631232530507292754161888323384039145995212169766140170637364928012179952704809348951764003720814228009020330023879657233107026397640187940464234129517670051253161665313212657658278192094929813053367060568961373035832530589599711215916729029257595175890386563456018381700011877952841674603224937516643749332222717019310147406772138041810259291076177303770841037354327488155723795562800942957967474005447424539013327812567399635175364109684653604540711762682807171926695486678037303458870618427464932056860039858526782794574371636466672269493377411351376588012211471116396409564511492680773296012924209161021881445502046487422292321116783541782215412517055685602462304360552655810188785935299556343526714761801659391269934397788915869206740417364977295459374320454469558985080148101468799193408903972020964120183683997299222469567129472873171629499115000070394990299195465049224318643496867622655121738764419195120754135801665532211003574414750593411268191747541108243984404466357392423204625413252557105689188752584817947312107427976276041493608361920664720549864352871251827671377903385843865713598903243473487707559997900390790560652469009175888798133360687827904677672044603190748144508876242584732123428520040066066510149328332131185473086086737652806071787414253542560161983312305245412497655918137279239378820251566030010526507525028566885267921397358296409798919507315854531952538655006107685849357129770166156569076059379526230384090949030309235008454736100176700241242502564763656621447447632388049208135608774611418851272304305354511210553734752269820022173828710447585901892201188276355275558493097980962834499611392868717150795059903953771891203314856559487469877019407284684316334520825211070311928969211544781885728006738499312892832045128005283083673798514428375469001405396889064989654419457711187361740748187842393663143360289769796139952367015852757961065339140409313300156732296075287292206981317619222866057875312125308437285523923834094065992174284547832694190840425876881815605999086255180199894800975303360737595326968039901421093101966451944956497888225658438684863047329741123084033378169891707915735584953377854314184773457098992080149055660465395958340942307192649451675320394962981799318057480920643989984253568622389009976006256060397263863624630170662412957942993117387128819166223407863285133545326973732003237115211130345643493051751980078626127000336994795812168315617809652289294673521076661676898563470305312807512397343677112769934054319229643202739975791082982069591996208389530798205855769429000573727273247756761305281624882838147644364197307630083476683761703739776675605896782464968726764161356602500480654937757523358672095924889968380978947629077259078870873629854705050337578954250686504775794045604588713831836070017015521647575626184214207869922938576316168332802903842958805963132253078008010130632485298981825219565717892848306333445137192026660883561658551023414686768516772750467135407556020575740962406077117416994968999107670223423792328868911599159006834717704142349506750884064948372388403324172674395118533865472985071275187856443748195065754088751534187347800771913583105571882927648553179094403304764770570941427979571622143922588504300029319372447184490384461492801212119438852133362528695951920465204970793534992503703449236733991675985366030574822509499074731030678749399712978290869785693561793283836131519504582174856743663332430144072632241703824647202352355909633813025220714137019070910271312027381473482797726519355053280451596065163764041141358628944302317028812491312726289123847605683067040149191991643194724403160448667235640233572863555344193057810336917315081512632464192330106522008740770975215080247566456626539992374149762207769249882512171543817167783319090224483567110991845248797453985527807191454780160093658522272947326541732904583996771550669033892052819966916916840974432055241557293768556827312935295176939559415762937913319430225012598664252649631481307839585090649574572990960827684073322219324134453688932114866102410829618914496503036131855298108386172135751728257915968533118888700317773938900553780933785866772081198094866856705018344245234187756187803812798648862979475053273203173574613754615781093560473758791780241904876944038294745365876057232598774327585111850540101106264102718451011904045012183783275039536641192310776183214581833679831553804534974248616233031531452719293195740191239362266396672777961637008082788152907581738342049812940120060743354299325464230473209350839546069200064359213697852154642283279078073747815930810472376456099266227307450360600249195795917892961990355403745655506654398463452731021205861870147979770852742611405012067367640786897371791457145890809689614187468938866753498713251302966232246374926334341826492531641519502994224670056119651293658059741410122266322002994880457459745285246217750233761698884182068369043528193144514930767616538528175234952450879825798025302216371436375884925143115148360608015781079653550554713270639245141250177181464799355746510415700360299513312531604895829381711281513977302893300702117375447066207770860291452322478358824620649340611299396696550755391749754076476882623704353088764213839594631598789304409748806227607028718407045959793858559227766130584988546617054500162910482507565403034976297522092747597056442826845246777149666126749075644559385627604332001939898900778274040191331283846439254219413358295718225138693079242239418879833963046290659067285448186994080214222255526532828173578599188851533304841002387782526679304702971778723562714818313612695328760005752639026906377864831347099422281419639671281828442528221939924741968485987227197483942144758204887409273142012365822058586498377361184774901821912502418999150561804208871091318906618549704576069989468137609268061755870647050991263440738982391253411896168566870329249280426005172664745109413232521433126200613421505961660364816675054890131832328339298121724887906887529151071257537958630256548200222478090151721048653774315795335901049951762722374436973398296008780679054919386398656759933578374886719506437303253986210752793438347956252556963911509820685805179583530708777580279860628208126132410902532801108694143363767872062857925960370333540386389852145503184282042485351656124133509854302460485583263414578392565809953537047481696478108690751150036517806895915232072269825807807107361355667181058909522417309492584560445989070055090140445934651429988242332191972324299895894311634110954248421636831330889273392351815831636743767095038953861641279797455269541147449158389193119288986469549103621430375757524250390059721712098621823345399086025393453487589384112120049137726392263501994069403007985651694066686421886951822842841697432008894591382919122186334497932002202294828661148925903671119601561887344311011160089547903756509246114703253746951601384121110508372536016073322218205044616831145715678941112080049904258228894088778644513508378605063261783646708548576200458088623585624129677685328424150559662909771129622831741078907290861761298143517260748666805474975390483394890988071085489442247403651653925038153980630776553844295970194057354193583074459370051079284417985073985655009716302047536709300373748155492677170329277406625197695836410559064830326979923201697990827894480751683295431236821921275908378295945294985868330032463277786795749000354075595577193825858687270440658925327440226284064124364734632482057848798702143214229887307038021757321098319269124263535486034451877898935216453295614191356162171846383631989355867011140808525076007460891535926492879985810062061359109309245064913851279845058061358621241497504979410791273409153740792937850387277010333538339587998171776163088353042711134249876607202355808239429415913276405593572048019754977376991359891975448192537230627349526341661756437914277881055568465022441265623058116933140001669526220867720853078433119039738433772268383380545431728485567936745592073119699746934183272173185214469594620446362082005728215729523414058786892825075971662480241090082120295212983101563263552848175455654323932995721358335196692824372963545339896591412994997718314100550690934975487789507438855029364222228828768687185802359196703145534968110414241711979496116295987554725969111550346996772070085732761769924692819789513054106912685618416921157490445376241051014979936651503812243848968132123295640259213219257659638805187800760209725784657598512417090375446373455394424423952442101891841878052420365141163250194703066930680342531358007196034055730738844409755725102984469504041151883563395892031491239433504816466990846420737285701229828030193788870499280569873506754111908295401186706393096249939785423970716051429884265771944748341141873459433008331626576864670586889301471715619471100744749867248644892012972179785110341576276965118234130359524650020277375539624856018778460196284215404844758292806636803516858672139465800065892858414764205682681814447213659703925908851104432022941250211032779549147959555281292881208549981681871864778345652399180080122643191352110481484447393712952536703291532973028106410084044236559574496853005716498768429164780277460706796590348030375068557120016166443546643823627863888766210936863061528046126401875421480422845996220218578949687726557838792349180429298242024248475682573725483213034564685142627264788690329733759852447435302835948596188017377048971861089356855784933112110663585153343521028971299370842081815603711032012485377731537832716174505445730109825329443409831735165459261163582394041685613043946432796354401965388821230322937552582480228193361181574097526797870102042455600895894756380853657871450790565476392900111967842712441037026310954731167995421320331041300764562065494826076396534817562249835915219898052788700132723184600003679373217693209957604542778627017660327127740894845106185544241149120235801732511321717870358237228974072780794829688006892785391391365096841776002453604689921640271909326966205052740831050462182592039012097191277997444875264696123929797274274845029025607364724675494336549725646550198575543438806731388584857369898238699365628481815065644092761801247484677514693546827568746990560981521310685223158430823587819294130153461691703910550951643094380918389017096406080553932406869911636153323906606215854412939391858458334998078763146005177128050427324741908869876923300152742761600910903472845023467962450538723962443621539156773268625506240753855551049007076628718660205316632582432370317966540813366881910542487160187884134087086289481603404299413230888462198707307174888384355953788926644951776341868692626195809307602114461248815381301642584800501474698608391600771995875962603067502166398211381947077931649351871087249436115811937396409189618742090019360787895166628787256004761097512900130417450715812290321223960068672451581997394432266365910602709261454198316281857556233437003285379968291356234293168544347599818193053804850921971509146820549857269933273502240547393489090934899581118140457945795426767066679374825084441694493471243213978759053254034259110680189078408313940925754464153834856294841208172423742424352409028638385900378481096636218002395328072809823749607403570633759320799422268005240856130278631055490085642014857827399556689828420217392192731735472365173593530395137256510783696248118496084055299449646034184401085927793637816437287460085616741985078888115755889856973809457266678875856496684228334272513733009351570249627929869234543105340211194654573108605635562493339858585052840294564471225911369590747192748511160079287911073881153121452512477465134020355855934502518699896009593851261139012931644349553458285959469540656731766440491670940833189153180490236208405774828420216099687425252308968061136936021701177158553177522221671575522432582597278788115144779955978669190808346686662933126888002613841071840722005359844769232980396999694802499387798068954734985834642188629655480318274322876003092099229734170424514343678769794593058486008999714709737654691804712281595244195221171707093747481964166965935409044003365520574580828027791183738033854353463534429421368941929039524865143990859928204494014643710943460047340904848870038995074618212828534920175190321689244767502789623045919976984699980054466580532172021722411569934088164806298519168661694324518058512727117768896779783484975315624604834124354563058727294812339861588745794246838115472685938632760746759322108107698583860717326333875313214306660172942812705686107234928894237423619160156543724977118578060651835820846189929919996926677851489409076037357519443477218684740195618621436352693561048289729883492582855543950866615446764214585500474444408078071254801572935943969767146339405572603491079964329470029141285055893659391925449149866222009091568565450095881032002490763458529573440206663788442871578592074433427011301523849779956294316374014546348008253413409658498890700665850142711607744025358126397993021608778740748338348935126707308629745543761153388799365855297709667547168421899150845370405419305542480431563339899817507878153504962579397800675186335363242654115862436100852409738030577157076097390601867702062594397129269641035734664370530680347660200494422406255619679637682488297624020433192549749861290067468435149539263955873524786876282934782982112315473794787688822587765365542430131295748178319195277805257760840709921314985282559603421609489495622580224580975185607819844140107507334887326495952478423805378190074163442563369354917606130477075020715867346998943078788695348361710363268769353955831563523515439102156200997092303922071848473220618421000444608516132799936098222486410926574383614010449516625919900739085996831327918182323738569566827901124387463535701265475875051127787370717589939853810408890203346144115446011455614165692316208022699881240146607948569239484405498360721121291849936409625151944387131532706599152082532575296921048218033808260822622575956154151149777116944676477745045164591789367435825704220312519947933434627553952624595161935367346338774801403781210918702002422980824989068933823584752137986828467342813418579602247442468365971485602669434785007552734471566057714113392399924615608476801377260350065351471166424257821103529531781804298073445154518239698361471013341147593267526087749863457342552823269122044875902453063759337276246311772124286134836047713563245718404273238351236709310848781154173306753719785879722568986878304537877502115286194155758147762111016400884429787134814776988954209296229648071913720098615713990879225374978204695616138564586850137824149907352610137834784317706078947555055312272593617769343778301169957577518255348691924954560474488977309705232406246873270523016804210054444575840486774645975956030650062196275214491298173750601989462651045320546009365615960611547652024390398388649886492265140349065328465772452598145888688937920248654656527344112081767333603414892456128174376779349246578306663696037230810947717630894565623484083353175862936171703656920080771204711622447298350882752153056230551750058994844189658817138245898256934299673215272737836608079804483748053715972740531544178456615742239678116619074673023434420393452172433321528239659447578396517158985203076886300550929827796891480325898546695632150389780460463619827224875674474596070987943292900369133644996890946032787965345739912399367751524137753126218052865406824891732161382672117779454875978210717872814951842519349665566810528023582185147365805150633041954947075402999932739683315452086718406023653764490048705285172059390069489831532955046683204642424363522536741581894253150520538064335918230145104770166168833390342527201829052033386690251214564863053826834262599828653851744453282929533559867961688949213447421670458704328580965812891443295848819940762658591285984262888586884641843973556945946758779611807571686496426367056276505020766414814226795560534309281990725455014738656169719065987521747491634129758269611274722999589402190772114706018342209319956670662373711329778371952185948813353043044895136406388677492318509548402859545752370749151220248328198088430659279971906815801019945561075948186074467797020867766204089293932588030607183340769589242439725558200929429228316023551263374160358908061316369685085168324982559714933990417596472936224197083324980470248146836683776564320952346866368212280323039801715397887621879983322175790401891288636386731427938717787534313114698778500404672299330663044470835601811280991471725019169610102964844194287663822219658801168422127445530329282028676089386922166586338048591828415912785928332741915895149187314540052928950899826189457912304731457852836614733636238247506671634941401077981424325806632994865014504078440612697486687203035615257517047360889991283696773311754984532630066477796675608905283106916410550510881594443392790017705832581314113496209333284011139049290969690445827155612399733479254038455608999574200631936911237920090751406466838750672958639225856717915902533897576165524222781359368060811851274631415749695701089855028939723904477365434876591774376263680843016220026952501835289261140018398283849314508604384512328826813472178117260973447636764552665957220532993296929612441794860714985947675978922884085520491883095644430713082254277211460966136947154854203493373863626944792364446273194130813701262557946601612231285834151478405122943286516288169582263572262324368284309054797305896813386715507666670752495030987753967424142859307150510795576094614968532156026088358607135223615415321405580603776078532978501002001614379169666468788140845817607722866758769616774254609283627594812091878798660862049233429383757787980212782774529712606656437364519331414518250888923140269393539232415070269967794968228752661183188845219103839155794510561178545032544815317593802475627805488540202757282126554519707718056556433742925295541593460144700899343419414874283587333548220457359931182856800357152324352733631228525853474273257240000942511444333706696795074427046274840594395832464901237795842928018758618138318401504597987537236048979964002797134037036455030544112010443993871697944355269771898756959997750921983005935137653584421770604375948650905418137075715775334771528403037198306290722959268106605925476626699665146363610284802935378216426038682810982072505518198852116933923408802483324623686584264675212403127597976810589787814188925992715495287812736578602087120745710652271084430257483476730408267068237043108661452191285578426131833210420094569668729854017399031213943730651432621971724988243936737650233003613335882957260847818804306086550940483372342221033724702219325513203287005868781699167221454307490583091072595626564116974377526733803213155133925183589797881795162943115265518713208711998808093101282769506301105795029895073974069158979674791041453141332023057807835586776648826519742896856095359207278481091165540841197551570148255940170931415531549897838636636544657604683576082825438971915047227701935686217653456083092471688729987697539804034069381808336967320251030890340779474307183984502331869779876723538740128720197758104679742764230422427773831948155768749878050057059762659925389357618234988889043318960621262433361450475412794577611314439952604241715943509081686993472103942574758028249409331897533049204843783330241876948463613609435857831902413468469779367410249800479590945654905274200044375323804395739573794556768768585345759535228209539685476939850426707034046045581730673991764747809062842946791702634637678944866977716900729531702076851453764620008177672252954379314265315213038425444928143056608793829278430145817771706173067005828568242677417171451483140118605397368720340869335841650351972767613201627180854125450412492116754681984419481038516602025904010488341044221757387220667735039630370210791472282575819447977652940921213782946093677908527172395108106097846631546499353050699964694861775999581145732725930503055460851790571342009831146781409504333274115767012767255975220759283483626906162832433822531064717487909061449731755992763325098937718667564987121847342213683684564316563197962108146422837635139986535854454922793642904644834615312996874463454276871397313160656047616508519375292374755970276526371285695785866174025064232893854346750184746453785329955942922282278725483842406492010427990864996959010319259584925396119238292095143879196196022099035572228781260810672409166915525991826870751187644316967474087451118121715514574179406549711939334075644730703652277963189404025461137361743075365020741996063101273199941454632155468089252617193000213054170425797863011979405781766780672172621214232121599687756744793015547397037407497990076470657207168304860649268914664038209002719171862425290730111227933883208644742318586285633167095918207509161509126564147305142622931740508000456044545805227846684941904130429928328397574972504277102777677863137520005571617791170208611944927847052872789898113533738392307073611884891868068423907918813447380622067878185576600881376103274534257032626325295386732851272714881530491950809553403559419965221837850833430683511399834794536653930325259472797178990679244724277485274114921191472129907498545274778450403712597116236627717858335449189364787868387161742844109169364715948720188540299771763199116150111101195756699592644095908333317291036104562600129305262047232186243046990260663890551309096606343039893915451581536378305025307199921378805649221707162515358630217483439639607084232498480021899812043792721875646778388109897348713194469766200369597050213486940321421623582331733987814747357304793827580790511106470182716461519733289390358099615036953488478324954034347218544231582201695172023859406929033704072642645887011787001870263399543270344386354482623024517091023412852914434698223831364859960802873524985903518692150370827783237260657924250333777681002800912044393517940450774521775859534559256906498354211356033039964110120667320566805216075951341741515318527936542755481483424016659795837900961706838168785290597752505223558915264810640218551752028816142716048907233662033644495243463538384189703620386177358146848648913506020244414391665293476421395629352028357794332270664864140630977094507270260185768673132602217168678813939938000354309261497902739952996994853658909962314601907747704123954405731221249085104622369873496619814964155899148341314066194813378107432583719613750617620064465327150352292394822094448282393203639355624450296406598335226313618587598772891925463528446552474465344246479966373532566473375252743166002080349183523093683002286486289341705100225849819990273030786258745015386906197422103195264247667956234728986775034850552423246825141006559393366503431000290649090971503499840254751367628246087561861974143986501814970877637673395940739181712161973603166337335897270987831698838282788139961483619141416989781456833686386295151245917520592309292658197470207297630970928867642920646337686161159092777771107154674832058083330396362047456781845665522028157658347039698330185194223607679860116873384883693631258231248670195296903240877678143408818649411026289812557743897635842835312886447961682347913412780707555139077848766300704999648528853810416936258573433425133272012711300550307658550460596357560604032082607408351682802853104010867213429719833311627619134112430221207883879852135188625962309760957626613170182370431570311430771271466987426855773530254334719770299136279710424248169639066775235682439508040685540821752076040795240191599528586242509816313763289911370388138660050764431849576721516844279721577197894809134147295876330041618458881207141143065180763911315340310573698900843203058508238979380107666119054886548311917656266645104672392936141972891655743514271653740465778422823488453045905718462602141269912794527884798199277278515617519997876394897069257672122542520775938927913387452434401092038698214521073612459342327540642302055668745735773434258459805798987648788899484626706181316984719344285302036992938654124847844867390889258583885205683697633485737394334732681252604258493287430132367020109196605693493227965278965517139210156230823905597472013298619809332258179121712687610354338098588224880810933847578043240867040828765857719937135747347618404360000267854444143256220142367624679311080735686941335089743038102248610704163052262061328485196402650973683287346755429602134617602880969442973830326289525324710517542973081018003107755833411193149126974111750110170107726696754463931522608982330739590532308632887152685384385630234405433503292475947295830803756339212911977030696315800023542620880853101800387316501854984190505962969364835608623386375859652521574158388714553999881956497427246242021967623271562335700812520407061647427291991694644836894156370314650445083252545390059846427441836007937484906472549120445722949979945206285532856809727659874251736320186264454475476809879993142256330513579736862346349188655972079462257993509160695422964912688935897182714264755343720270841046431142468243672796120717351777720853318368516707570173938312176051047112799665778677001560069564636509270586042753275765868169520029914541240835939310145163070688206643950026432150103785017523956634113942664395319725760021866932692606390267621547547440764257210445336559272407733044622899823231322430574008580492793541836724256676399686684216315998229192696778444542614506144869595033660525065171868821960152079927007448757539837192610398601600897084630606851539342189888550272459855634613709807347180617809643237560180564610982864454793931489573732272826627124791857627535861466098761741942253683727702955484364374816147672707331756528065528227938115937037452806930418545193552306754569247650042362698602206909679679440675435586393078848536219966005118689731063109967294357148945534667339295065871403979729623365840900047901923980768641940595969030867144551295966031002361203268857715042241970074875455628561509086074924727864784554856075958598805183170003667975903890846479800226064504855550759096842636296408927791257366013089710397025812087561714897748915635425235978555121721647974318460207163884232004244771719345162402844018989447881762997193287810222915035136944721006537602114199559690885315782707395081450430964775956131215865206446969236241668990273318250283685503866366501000670090807159543481245135830949702271061120039563787474574232803340098157195899587531820674172078758412595039739501959700814298539691994495253045919372609055454444925939763300263701796147524846843277681971390441381872882799121995526057937103952611081199079832242028559685281307142910181132139531772427036972459304016026952183318447350967119460687703638451460711853982079480511157414847921896118377459470386532824638607811545374526012460459603800565413866488143403231370098656815074041565553538646217304550065276016897304580560986105271792941704990862934249952751234787063011000470805438974025010008602157026345050935286311194011695859183233491292989106948676259550448387384264483131681918887232803994925189021396490172663313516414270863046960091321425178464859890236429409908593071288349644054956844670701476073555213813238972184960732032449473139987225245353957310088061725329387891205326384852343984524056889754637441639428444937018024837646700607568540269077643562373461577520315818754072443379950033292666523809700349907686535309858276231778167820295187105062304718321751227730069336752565520622670308804705338828526399073280642841362527469788507068471842007306618788907229370928612879554800629912319978146696483167767478751005820774231126967705010836692843795076754897822116581651779854102030648452002525127419208327981375241535030273225178055355272742380659813401090311893568576280855209146014249569848378014930051546896665340888934693800357218052895767383519292044525114064845088712874722368828420642593362075316520462175964397580568455023008092385300740510002982436584190027208397901889797718271235615917074565095925040454458551234964942940939914475405484933483619470395181142519393753947089625585018510146247770502645903596462805280478424985115336422906195268810321539676622766639875747927512330497827025286817027042159135453742879090209172169437059769302845325927502487334908624260207404304074517068470976940046439318024221470497907876695897894406957375630833954149374786044278688482313357742595025505020981440186885602684150382222889778297785557436820557673895752372463950844248260188667797696094339070832935109680621163492916332689192922165977063182035215872852081742539873928197515768366161204457304530934836523343210888026104457766985402829703709816508753133115311491482700108477870501223223462790724238161227289235832884571991771431777916012520866112532506820949005627045092678928511744306838991790184055822524747607382044930151678621479363755753647969443989458345270118118512311942779061820458785868453272774987612319504550433828164384578435651971740758557387607698824772483287725045006527523000343304067852040712676747413477480246501815868999937210220455284678545741672742335574368573731608554981656473902093781296667419581589965690094491161776016610631297069946378811066979356939344197779533251371306376345535448467222515300969426318979619953070611044676498859443573227432780301245648046819712757600349549245624084657596139412679052098919623234393944028594865657438744642630324989200130745989505638311636421461096889884602650889466750804650986524892749724737533796014298819453456374079130302377400916626508586327812810498702671738055267021620779748545719831770604128663871249332557626015447622169977762710113501874380392079921811003057782274920179239026720840700971667352674024100578385009819812655975982839037506044150015794361732703960179139912834656897735537000188783035893260738885699799940873989278366351026773435615150691204486754278528724989386996235113563849663427749210231435770855705539286239651131671523342959514106885242574119718890989102268492813960658549973491099547624882511569846331511606166690756152475229582175084067859334957403136750693003242161737638359966426481772475208485025104016777750516035935474693789595536186016916072313253143197013796819521971164886100530036202961654276972129762710518982903156456037917373594904350371189004523942519833731772131389182540647202737489844435115319477900766676629933515260353091977752641102909563732593605483795484775384745653750085928285634501850295849993399094203547682345382022224342131271314771581796987944278214631557698028130754405520697690816464387572173006296903799086094968320367042042590402995520456193523559353663782577710816476866574943747287728552420784565646684737604197503029269096850570233115211851350862901892345493496582893930114885558863111502455759752637602065057526777980629374555017042894864427457554278170352578184627227804245986385626919079733375748944100696915618803648130762348968731175458732181932453468927529670943915237215995349955799521118345253342367056368128289082660976915140996544622535796776696583370904715404999292465618465598240393626732939415097841324059147445538547593481575842170170518625343270209551136950368276807637602940959073121783375576683058217488105522769114833867566575744863964785817666164529751550903014191587432835864264250027326774404948800898568899564946406421988523297240726592911826908008432365748521203155662606650692050669307658423109369156314243439961836090753210924076980456665048036091225797216841899836044822575708742810588957842738318587522609281571465697814131835184304992429393273002276092167381319547846129846063849989323919245072428616886137961880554835304199544531610619289845070139358645512002869125053299766303507569110814204210234438694416446683706379417618468762217643776679264647604795749455237548871083458164861857496756879390005395631261461996434212660052599333998771206792164784636636909018900461458456874466025480328190746513391937876761375394562281627910415584833797175919469708114600045592441706926666562068463862272676373698835862949368429741973015094447028537981453025409033181822812915786962522295200764491010541317365720508464319685581446777846456154189759312273878538035407717094867603906381714653354483111571120720083551275879440377012164691800704856484570711639203013632902411041704211974355846565460418072645924149490011593795453147836444833382833501684786859477364930299966496501275830001357854354098068722778430947039908535100095324339556996759856106032673121369549204720937857100804694791980476004149392305227608320572854030951526732669252338929098966430953028838367936350928461115338626209222712370040049933157139382362180375762772842262742138055447437626027797347277879940612371569661529395301563051444383845882837675811505314399768616095597703499227151062462126753760849124268262769061079728768089616020432490644016026814656484893141943078691015008070286615114495655000691548252246418921590711301665479099455164982742168700068087288535106133760802971662923080884569429227634303322139261954127487781713296828506590386278802099114302236561883042635093338358392898903412260764514639209780779204235604978325600513815450465432806575663427082421725878254081522194125175846431641076006555220574840823778124491854003271390155788502356658252610051477518491896281042098041001095111302935098243602086013777114541327472016495310143444283770463726545024813751194296973917197908612787246561893823041422375340972067087992952493959487520600108806981168514745765681348635561686994195646134758636905688938399890786552739979355759697676740679955927346581539276406829135405809709143104216237262152113381587916892299571891331918252953904110795207002352548763862126091652232695529141927411655259344424833673610811841860208630927074333871247120159140201964170414384500412159932519696154234471725434652617598564697316160521325219977547489512818531014637571417804713805551949426119600244497034688849421864900236196130240626903623316861289544853737510097387489361562253474895337303438157256234067844198692833447980067784260533595758476730199981853126038154164540512365736569649043288831845108703738130397044866519762409120568717590144431836643846710197557614189347714238187832956734327193361876873349707246943463916047422483520101271270272050353734089514215706112042982035304513969666262410240392082015581796645067626353865051083475943576270591860999508308061858376998244083221725925457304756732351954708368249406992538517454759040765965614705829137056813501429488448731569261919899792043920354702828260237935561717816979553179463310815156871569708881317407116743832576792397319946819369593826113939819941087068865506377045099386928288373458848402109091636290142762737428262415358809535193515495667808262014453349364996126666800677490225763218015529443092930246096972109125850255473100938285309810748728665155808238438854276812696221847853653704405526872561645820657756416664719488087703757806218528142869229301479571342735664487746020186316697508213668451551708235394490229811640586182742993592353624284901954474567717629571476513603330438477624633140295807541923316551909378008546755032415292448472129008750778104267552969919136653497671477065781995032167948755295840217592468360479892196947224705260409399036977392965697402198982512191653489043429536664008837371329973068083948496446284431736834130133218646039794204625476862221075332610162288475775300263374951595056957782027246599026080853618995671923517607367128647988261605624592698441745608920773234191991367621069963527543568689201166060020726754761243767074449970719377848380583963843847430893637114997029627800041782791349698866262497906857901626918656825718228188342347691215195816340075996803124524988815591963513514304223394677373936645813110210898544635814085144780117409714026269059439725632262190233996184856465388024876531344644657476909945578511940777954430160025181005843826937490551755777198204467349311025509226763548331375733030368283709320552827022498041590203421152901269675344034790708092654577007134118453235580405048913513901499645630961728448898388981359929526956119784955938558339945274414025996733069684101687812688920017234199229632866393344073596758496292337307831461667752656659891497783103636456002043879766882349878750165851979215693629106075398948101394118479491215722549609908085724436727592604809866292374565203588010115989112756755374832217904778027284977209652992158351420930133049119346257118778687024290100227029640612400716504775222822438042620426947001838910027892331621605968043069526847304005941580515845306381521576638698779242913089117057225599115395233190048913981021590681907987930518463727768799341100604348885871584794798632489892883061238112773556968232482935303581962494156234401868727347793862919422563496605390647030821815688073682390329548043295728302772449097327504241848924840854233559248945269244568423681013283434891552780687434907012452478830314661972228385845771864207195320016551890098836598212587320748465918384450926745251626192909111241626843909158856631423854122599237002955460920497535173822159793165462752077507585982257378126294430692540219810042898365894327618397110752035701323277128454818792338418707002944174529072394050074432336429005750976757763197275289015830023064034571045277887964150683926403938510723758451404934837916133836813108120173004714501040454284630035720701922237815289673692497908178578851595955811981183854858046616618271451805308830122333850093398158306298588252312056465717486343494948436189291401418038274927808322574116632860245353820711933279233772542055940784088733419485044870558535709685837002945101373310504188064995358342639619441421670894904393603454939058014321125365867583466337723023353652063404489746555068362831403643439902594504764553762540233816487354985587771362609032582827383777152533275938965441371535448186153547916495300539594349649442364464442644090186074585689670634217981570806722501509480489941643113011190499396665576157970857146249103243284812435551881042058469278006356280081908953172324168592112089864142368252499827872784915223634954601883357693116202537981482482371555282896955253386626233765860737881361562210856511688033038553897059507760899908694657974322658658024583692750182086297685391890953543881102089361206360012780012792464601441530043168301212048260679404785002233224145643090766421236382396926124979549038332823165333090490565035766336451124846188187794128039869543699459900124608927708819244405363732025103264940316303011010186092474230907560399611873254466498749301893488853542106509495733184642778498733745396192354198324329668889621342906422715169231361748436157570919697741420615139570157884630275788698821350877173598765339081691345938750568781477471582554628638723592023987539926571127315098291700176301598122485925119910844636624723563494742301677791663354059134589583883871185785334355201645955922677764078511253501235200467042577682456303814572150541462451856787024219775112979285217216286403426038322247061787533160359461797363679072749821552631103544596551619441221904653131817813533767631025287720994542273217452063520479529614542776415792855699525954375655352914030941861295857764657760949987168664875168652568117038507379177127429699945175652895778036770901402009072338253082976348976391781195367920340940652407859106766568183769338567785823062927229164232371133817734499097832300685754198360678803609536383670362520658009145964262586158833805543855411827170322355732295229246113316399648508440517376555700743617855773453784212577375214305814906490330172363965713925210205523714961088608372341284604958854336137177878196458768165488642480627530253900788592738591359141384532737453306253622122953529905203377124073393168257568770513775290849679060442271230586366952918215808843593422710982368706497062604204751743602488595009599173462853575903369180227340045198368861671298788069921045435196213821790415148800253509536233732107902868639413057635861522845946145126458133822464948671636623736771321187122518161195961572010506103730327126630975438141859891630971843592066808664590474103551408042156622038599820228176724355592465052871453359788138814967838929062507068531995127209003887773127892078865779042080288696404277013988676004238567447245358625696451468213404798263112537335173416019479823668349310746032860861364133132121305169855316976708297799714622512947895645193920287636176088902106531294671935772925881010847295845820608257919327525408024213491765713278989985549384186413761371462103777670043573881966365502120004627650352494217147068765834345959379532452228074076145807236077926674561888969992481081319313165720042450874216048525589127748092313103830284294852427760292488914553803343987116582800915688621500253041006238731157913507448632684910261050022158542562169131290782603277537758993176499721322300369669315882856930513912672311698876254011753798519607324541346123300263532402397964114400894215188928289823086514849888067923081857781583886655223243799584816525193018951509195797375888503971631827909698590641032560003341553273363871632891537640198103558342299936557016918663768124809042272576198717218790044849441578180583734298836024883954627816386442456436598626542112026660364871466306746235222901259998464152787709989170755244122147217868518314932597734094981958252124007057110961361880344142896358278181427761363818436082895301141094086552460898248411519067574602743158665634961131917297979362971112816615710944140258509440024268903450290592326676271215575982887564722993335194411038183506378210657471973663929048239372679361034780464399176216699627837250074061165942625589516950317013488618753054145434787131770375706694773102717234768760293901665312020999443178377318453031918483044641041104620259429142429879693585861233683114776167638082894173376075693267198944132520455574241074381522195547354069767697429867050781835068043210980288273374150335739853967161847244760009320906949150842093449040924511994262308086901882134787971788175055297139953240572583009732499440310275546315803307415223729906359099863862435747860460368189430498405415877483176653513168477527907538748044138172012990095190276791416691233353012987719276751195049808064649203601488070134948759296943738034954690300395905487527334146279907172320421698155639586348411417070858515059375844485336996848209637678634564484405250018116327419630384778201623441401302967589974066897035435352093572428956445719479878665832934549657313771809218543747656784579096951747768673534038605329406441314633853184724929543950819854991757000942788595669249174819001282788477934730935734655356737539535968280387201127737337102509813633271769771644421979372842724463479237103286232793608590116012279376459912897305281283345883490139618626085529097039824373175155193069908193071166895119107598164391543812088351841357360514611015689530879279354626106107059171629580671792254078857777813849048366003943319743280563749496489356694555556789583001443912381479173118064520898116278408841921269525040339194685160776205553404187042691923712272358657196915560469392704447731052376691196373292784382068327839405263868496399343243265139038670585755691564550319054341275583773369195237855367228069810192193306090034980394837213109831268799182282523618828166245383770919683836142975107189416969007924961970848843301236105160889259591957310646519759853255223155926517379116954440983664414715830311310090772502167487347934698837390453700315001834778853167928519583699164234460499320704367292370889245851691762580521820368398308786924109635687379615227293900445862974844980649482410553810216651961841600026061492265220724240147250277412947195012252167756644341245530398153420861541050086076571043237753780578348440866141043698263471758507106225896707730619218133203761972547218361448636115412910546355385381903873620299701297895974767983777776151880457490194802297689381846528200005948516711091416504782514480942350814713775383239949612383462644950015922563441900851416082956852661550242554520655371796154068575801601781261187224073653341581098825703088165542408253775574530998675399520406275736200944666222574745788414339155703490770607276662564001590363954051895241576946054263792995034174229650610717229122795522999556579467296891288055746694608729650241473302434822279130349046707920053674875524705911770489374373744999617407272099027157831531051696826433775743783096882602930169561728274443415341699896920861903620257137489798116771649458013560531137404386929639972904087926787525659848031540739965726689443072326018017856865188555320950652023886487216955121800029898410846967636721634004656090288312327427700897116119117405443742869846194104839405515885983775822857309725576086117546873195185566919620584168293352953483261846068867863757492234240988497486490839172697593838634393154993474498229106260739457292735051062606662772116534608323389560170437736800934599662866947454655960163413988350295713812474613760276323773733851298548709268079504069821243360153010382926338739949488689056505567239735836349234631601487163081267378506455543314509604540799013081646844799350528707086225741591047053985404467465946893871628902006762448774496759974633151238585938023886391560879177384787885264464965500841435445780419448272452394800691429849827556273896498960716747388557194136812883126461220889027811988970406064438665733387527012207881108276376575594174681074449438194857120671510275739161748348619027542157418483791697568240607469129174344213310007051709634790644237882141928363939004872467774969144591115564757018500316093874786689661285379826342652723235486159618359037760204974614036405414484821471967346506366665400124896734647168248501570560501728959926004417805004276129786113716609135198214533172603825741656982354535563095062585846483906739291473549243997391441859888663052332806134624897682506130010508447332993585723493857054103902268470885504378853734851350083201314069935644119679613381209257399780161943464679732349682573083169953815791524706260270911950051950994544707174979020003183695608470504975464548073513308914645184864757776699553643525156028372283289294780134671956544424676357756647514752496611740938551254516104650821168400192746036830086888376737061517959118927944195370806739016402462189215092719901437915905271095225746436465375315175506495264397404379581618269538750937469736775184005001154994313457707817321406542543185630881246574181252951005706642637444482161750887294738695297296700158818038547097098105010993026336028556783643707409092172082937490195852878889957643212700438500731555261995960154209164679091551024857824949870025785146687233436450344967065035406541566241655100609288381304062385077916310923840160768829755158456353729037569266175750655708154955162409758571363182828918770444627656633328651564553481973257816469969608196535979903915497925874955133710675253582058856479258385500776589168611898993454795619881772412996134522043716502577461157099079133569483690429450658462130316531845870171153283312941107647519223081492804888204174073320094456186874176307269942362124359428957334047105606674786118258765225806076632674056072121194201156742664207448307608771045584353318940037249451351336018773192020211290635535173912374024285878146358886023692371988358640667420685207260951590072058572539180913356200886847317474224378312360842794080336533573223054851273133491687200428954704306306089088341642901576242868591828726926873350826435517892267990356805721827356211489209064005332537125476865705495275536835935922912810931812624969097633273639594356757435465259436026631557673620614652101185312367024463531859694772623106892229596024921683828254159451367684459039293765701339257989304380995855452757699647532414576804765376047112907775449587893748045687380003058968778051686702457821628560169856236085006947246263761985966782870498293009861148917155271264329455625615204850126666549610942122678359727876582585598635934312873596171618260993051992080353919606585601528590323656599244734651811230464323128992743276391095605898041515046126282968984100520796308443226193123366566426425922236562434693326304246621879984362274665373870969118993960411820476060635740619809752419587750489233059913398294936183576708132613890965410883421424635397007598404684357373209287771695349554368595968580976456759814468202544741480672673970527849207866954479259584004691981570881789411299155183596607943989576227778694814886959871634378913957126512367119311842442529737326188302654465330486257434702175397973199273197009463335283667901998363697339153017966795854834716934876258989463284251811986099040100277144777579217695427491035025268689968563434485071959199476794100347301360365422610365308636986112480475808497713133975955310126539349297535346859988501578641465667165957087241397341521598889666839228773421382703614996402662138874487025156475041880367289053306272305267169421888493673402162731315047531083925760835141756861557623895474168269861565283801622744567497318801802876230703868617442065875109015456849685574912630533867065855075512074823002931032564868775211366772608630477619792147496042881206929809201841959217550546110821527542296320448148627996278489690440422676697738061701563607410162237890605707983762815314893781029958465673048364825026658081274102244229639580375920136443369087759214152289026977386272491827568884012453077404473006870012825138912818260348901995617686391012857680421918327844916168662212529007835782371056682158355863370173958982528824605264015238545825789940438317710366038474555529740435555141216465512888165952698508814669259207798502272001359067464063414943007538694657991567218143886200093461860088007814841825963236497321871952718567094133506618125500414077268298138412197679245795144904536726164175143573196225381543871284876336091821671260415310729311287836197098569958442431869614175995287973327106504992195754137887130667772076128937299092709207912865867637612283525065936689041727022541222385459722402751616775380403973832732585480423679837052904306822293497963636252459261414139828515440306900552941820616888564147032705482159594317431404466349220062264920247207235262422938304977504842423674007463883921753224604362686424617386959351663155765334987635270588490656640388766370032901388513824932498688121415997398215179763399894108639293965013698118738874105223372525261419351989231270406141798876831853095364726173860371472475623908783372693519869784576209201635911489787805082451527533716963445069040113660226711842015630798650918955289189896097231450057372359287978265358533036708928324560865719001146380193643111386520791159593089750865622710937182833303005267561261655013477626789701386929933286758269837103588437373796729931837252876788530773450886330564383037146676966177330412863437326071652356979836659461478254760779049469702971470303502931183191620978216854145423332058129561010133740173592569372893232747580478781715601127121843728907432448693264016569933990638838645461195554882849945207894845441305587306685935971546189640206469105417569400767677184101479695468864449014973212394153406621899762816111300405238258390514249091981331760007942876715184671209442868224513445498953633232368188272718485355705597104211120588277923649008875325878488538958859605118439139831575803347011502386931234224030398751463971843389502984662903362184768830511195138201524406180024160672279393736126403041106471608738543406231439196027001701187464316487099765897219513444897873176198161931895110332061804774011753694846693450448771362674318981583902032050004374698322085968089392614408050233784142350444646291528360331159570185623214742886683459558261449337822392096744418282569388571355075706490010072269237687669354631584840003020518368214181126744987545753743408926413170377321765624943599340968943646880309696166714302212133194567307226950356622756938635240076888299175735516524684473814230169056366919473468224921377813897727289173983255961452336013528151314690912785609912881310059874044235168711333509320093358410857657688083108371552597727842986752960158949516448461298667852898431212649056621195699636283275937088592457168094438756739702070761507991873812451719193464109097022640120240469691545917912248281365964823715626053573936672041447658498701449310457764430655623158026136608379896069287396221856929662610001596855669110095609635041095268403705182868580391692671185999866588010322266451563380318740607214485530389903256311444316519084549397431310347055449841682021522267648571723554280963249294100420893080210870940089110427889152809337666388691804255308888794461576901176913022441885592877080254842446804343053726749626370749432034484207225692491193893667009666146222169653318045115814043908477806386923469786656766418266844865853413042248544525486528537126033243021403621759800451140297763444681461546620709543110114991450465228251584570113504609265864948617799050826992322683154683992518831261616415385204430780377990619260776973009580246218034158826178849797134759091268999483551689511885450829145183353839513466471082410560206103135209640307725575225627835754937119989040851008331512912772697352923845179663203103224064353280951210256219336399076807877210384954632661943435440800299683145665627989806466072279800005246814371160515083515283141600055440363525304830269318869564068218307162544953898266497944476739190635657790592252911056591237000575339218055333210139025871785485775765016238011679732158116272483787459962214294913115008942843990274211270346825845076101528030736627597575347997984717827234289770133698894513549733562767184291389017246869309877703031866919122524553738857373812218133844074074385493964200998282749169837072847762727309425502578714941047054606180992262133815503402686725534716626204996854374788980079390394844974943444139529664142631706549899603078812616804246602273733161696360026236289824661677327753171435860605481989968808596921357748046107160444190179258274675062389516976688705214675477727664221567858079790446942877743792910339880814049589063966170763897933473029707799298170108374807074643760624177483297557211662185779709262398223438376870010048202179305458446513726954268137145400832071768277123924808739902063849735064562337126448877387196113534806900953793058184695681034322131702567062401491284732120425193917028061372385675719121517431502077968896843264226740207203220332977274544240402695380042184712553904612749257213847050703224060134922471440007868935238602056927788074079316404085740452803072600555541144766577999193287368653653547830078258575873916592861074907310966041088066459551179093711264437564577624514549749238173055760287279665578476579954490087326786064170290960107356214775186524773926575953169802683887456812811089152244455587069618180154209788051447062754530883717745445561782061123984860606696345335782533694487431723611332367268777617099870656182726594322737056297220678812864476467027277404236013660106206046485973998456448425550033482825428062554427074592628003422327448358320654794541891694735699877158701307908363228931219047027609010725253853411175091078212562122268128602545834513745476275162029047340902790559615232676723446728746474133916131193297829898623328372790065347774465397827176239480258671496131393227047090424750791151393826931366098400775552966983427664916484251339573448705264252091414585643237121644146872258076896330853021096263119874598962284335512958169667636863746818888069636203818525266986048960080791360677035394959826409606336129537615208990589434347290570219103679798719646016855486214408759275125647677015925472953349963548323415803978606681586574270902731709484770499911445812046486219508649535025579491116880615473049987651932767248020140308692612345421579375060276027432473802432305820446274134106367336930054899350421402618556724301241643002506368517851562977560610505156622961229211048351857064352810257392858536884978170451396523938966484899518409550756990965188418401477033015976330425842591165880515477878987589122283531064556363700539244769974634576825620623579457032625685287207426798480011744251362837873922859064762533583244485622207702290497286004169347407502214931706563134181211259557275544055766044415726897740668140891088704365708621227489030393603729461302151320455546703779353240059149156404748446354795674316361776192401460326960765789211294457195940773318423927697312900019675250350923102268078769451511204969612080316459724027578365002892550149273027692916106534467143841194170071812391219020023213370524225987103573118650081776778709757428876297102309617899613372729368762798324265699183551605081558447197912330290494584108724458205177373669517554954402780615635645791309756319489939734889416120590019324346463698974097807082715978018032238414860812412987658817728274153253829370326911842007113755669431839081265914156159548503205184826354263645051131282229614460652012964123999283752619204900339175427161612432600150749990075829413340579388470288582857875120736839555090296105575923612052889205562508880327555454018367945561689084587714017574109409407963159862869087499300695492397915004710779676489592382732305320850713354068358908503582309054759574499752620802300882028243610065216385981878117853787977629151754877820868061708411972469400513390490379569637442828535598658464565116739414344859649599539559994489514130574003477076714560570874857661533417239511276667302280554816028708839409977984277839565650907520161752868037558915793047852196486516239686993259117187191455724697458622166302635310122032679514928846059739176469796987142314075157137335913814668775511501271523648384679733115450038994751968229738117588166181704450712268440966265257033892321731866830593292581335715576822512073500183140829800093651616870592128925428392281345309913979546175500834711549215085156941406466692502362895445012447947422366427369303556199608426606585880624840377998227360122717668020344649060220600218762525406316085287995151765152654141097142564906295288211711443463502793585482061698700458638141278712928062359925991702009699519108767763150484966564698256038459479411271294768643462585617509916526177326870264301865615197057875821228652789946356663534633122914538208551735189818269302630436745473281094706500293111948771691423576359788371618720172589686753372896001485654293714260504845732066724194016122436037906748799580182461574722035519290554554591706598558109483332410949726140989029828967764611053912189805235038759667706425692678610769988709696012456922472859616166303997445316959040791539788909886894024831631159003342104143219020731842576036266943017839943722539079390559555640149404096077833187877648730345236368570548297628744111590010742811155208506744419041829727238847830830149818046411452745720556256137241358660319392449239194005493145601393481466236947251652636893757663449683894101146046789413834602140917671410064600074691734296527908431635805651671479984616400004369711738209481341906020474665622668384889481208636582807651792813745881936402610756628342926904211471128396180581180283871078336728157527406273923587192589478795188070760709313513060595818946987111187723013513426917136172604445897670192994371262935324948176196754474450520787562460752108983767516864063459157090370678088171846444573939371714294540794521597852006150982639520035344992439514624498973020609824513616665997661451934185815693610139326067695104252550685973170586502263923573912855051243725986311972302894782939338253108564578624490989622473281142604811384631264978405891313538077280887080551863150940887141896466170453409843584902127299120100940616385308952208969418180685406991996750216214202925148506723251663315859057330675544016270722125837382175153084253970527422666506797285217434407185007863726280650883720191720975775711675321473370704423849884618810932328069121352922060702901527699868486906464741964180837610662408210561305319439211833314945761307133262518228395300352480118045343203786024398280816423099695094427445677232032537775284575529943735153966768031641614848050291495401999173761265726373257791404388927957220338822807761898266683079929452731951222995955367050986453672694055814926955181838793818427121556976998646782957438169883690057161129283230969235492194989125088931439155267529805670407810448944457469660057751065888599002994742518163669323010025167200675778501066531463690432435742585378042723482519779536467983724378871214077639674766916380059619378103281099862904347497406489810917870187489825510742905089373177302141126204763075003726223281506213330239218612946645464770719158768953645713360419799910209211110309729751120796636703551261893694194200120637819537438346129840727698030419036743331307396931864935924848473585420075244286661536141384591914415048628450336681131410666293770912414919349380007471802508157593659754507176754870342785432770430829636477271237826747956537103592598581778688468385710228835564491129750335081840965548523865457154515947251198170971349585935217426768663644186929541555205702355084532635507842380302102409070079778966662398231970836979518734051024054306266895349489651570514253389324337856454187433506696980067658450578141696118747926619868608575618412468210146064645001333463824913975252372402815269347894697303913605184651190797198379853882738309660889625394178299397707059033611000031803936672850645409095655300563791744912781801255881297982862652954403041764799490474301204361871538529916956602010872036261543765873612440787457086403717671496820387254303331019162367252580918741504019993136263604714005669244040671689061160144079778687120124691845124459988762397427060647552957274995567932052461349157458806724190048244391763533649290195549303485281915174100060178596759336116298063593722408093467555179685759174174312226779286602565418060943580775392054341789696663511274530853676323455486171840051338587125043886975310148106808355077341269616763349506228028387438684732702124537657703270409730031813277986935631733539270512287745991624146106113873405417784782224048297009984921118194331065424939141882558551519229200680649787638353464892736128330960547765659952520279969093957162433714629821241318337465441287125875118965478049302703347198822520076104728840339262006176586361071310326950500779703660741389352810813423566272027956376223768764221615630132217726100180519409066197248675548069471256111289935242855051176023669935005798086184825021127495622392062084652074811904796146017842700413352996541804995805789074718610225612991865782299695447556017215723575171663082069296359070483472488201244570208661579397718827674230193479637105994725299905896953398992395443757664258127264182097787003509860307255842646985042943455440800702418848826034393756586909416516983731256985746230349515533990550314147438229242129733264427323738395249501477201714671749209934614812244564683216051921496693830086525522173404012357174252884607719268321973931947766480131005904999398897237425548770141904753828194872927696869877067811609804174930729397557923965220132034415069508648747377421659897176210834438345130716848944020971633932139980416675435412763048678779470536151788949462324000731298275110841784790021903618797301837794139751380362042427947270803007321406714878467032610692218323314272268971064647453137452636663622354865807328842619903989611742824431486199140496604551606424823851834258542415811421560278300966009219097018776004107903792476187353801029557044206095252372754204704827420377605968070972497239691217001827205038296064407406810105501297548708713055138064743099544614244950080976684820836937199662867583450512381434838569696354125382221317477097199534855334096129263653102587561703630652741900970403475672369322769647325833741319078041957419947853487840306520118415791779370707586666851882472765444139722260346655494633746747109347308093817082189175178268190465113879557977438044145654778596293603831895969199854694362437057346789577218437282179720701025574101411472914536652288871266054895842836343607350918162300569474413829119289034512844842186504393447876994472544197043612679392237023381455194412319958106974428375816657334272199716803907048536009052106671538071601010935779447744037649964824180266428200041473667093887453492178867184566907466595605886650986942635898166175919620794126648636304847577446046630734200441291896179709603710344292621579867958743527083439596241864350858319967579734576080748876599136892782986606259564012432175385236399286459585852448119005875875041638003648108644293716173423262982302707192788216611681335895565728357057680905002726499825558191989790915877085763580541113463145062823043595222194851490275386209667403813895084680751577862629918606481652736102878343099041416592373246175722902605679327415693145634592648002593255843655698760501711713371383221762172827547266092898213458440953785834519441077352462079421666489038757093746563314549356488821927528639142264560718867044486522615940390314244954151035132949190047761610186384853582584610680474608418643256531570914331805111374068568505383475942466983252699764392604129494063311943995754158420158807423162520542302923630017726948686420647664298629096733240730147615896559109485246232166215111120287761487185863169225765153375330922385506450110382337351182191151296266375234420929705379587062195161719425019247898450363920451334894240178660223210106575107189117528200120009737846610574661715256420311103020582546678081069800753384516002517625819399630285094760441156429748615325159970611637296820108642131376733511517227913779135529239683877268296104060823002126703430557777302087462132899379473614064423783780387391520849798600217096097317891064802673706015169890636840471223744663325056266457142964104944843484149042282746584919197132890716452146955562175833842289072054093089722333057261162110712884193816691390630680905236786990905619240381129014089392396730348054958757323402499198373274994185262249385533113069883606362807202877169023749973209254611495478969833834865849294200881568838102848275942744508388143115239637720593977416500484046342991553086894507437716380698625629091229715602074731209426929053672400798667851538026831422517474837166250299644105907691804484139689020749459687226005324899269398722400204035446073893786880704199309739326287654048349640809175950162333633030044194921595102244897961698310917683121192001697921442225494772853167910433197730411858029569431869999926118099648067629122788831810947853403104653610255392755939352558234198947860642826249563885201523135121020578185703168545816444047870526304065111592006947003698679365747857661910866986832731960497964410475601112128040869274824376867688023992948494645227893569566366316546978901504666308649959886816924775563136448302216116110783623869892370739691289950321963063607556963299335487380250043938880233465266176447335844986735496493778387838076069557998426309548345316676241749154978781392298328294814452850544990736287027474149040546931264307017600915987969467505504346636401293451736506161648388435155642428082394992002876214566000862343411977474303779487056932585292702222680228923063660727220787211250924549766407498308750637310401489701626985774521651727020142550304501541303592702996859127841345291359680395735265324800947632652075444998428383297276795960488767339200862845683940636686477617793916565020559176416696579269703594504867880037109905000766051999010625570860874117033538089171499185285298915024227043118004977757943168056003182080574350746921043284064790650725011356399990604428390685580172402936242344832182722125760192784471480875003543961515624001263801096195038527408657482545977352103767101800352890823708703395616485716262745046653834513118258802541752488529402804384419872688067021725085034517492612645060843574408540910048577646591262013679377499174670430775328393625863540150242450137143089646314486096140405621571341119499434842342524948772473514842197049640918085651147035698932482847046638906803213641085520530900400854881097288355094523169468788358531334845870677884077520071845438654391441990310778576043526784780928549927193003451720960596589206431981062640611487209115114920497918644179110263250605118233575860127032136991495880957877825774206427365893356099485541313262193951428253567804284330787084460414641015481054394800088164906322592401896691421207705219722374705498564703209463245524743930034718258406173497219150658353104694512348379437137929585423614213673462876042619795646933412964286602647958115047034478502869302608907486290868631494261240055639755443318918743764455968612981292005891331514343044719460385389498887529656387965362697568088009597340059503811962709739965775608177290446369659749274056076455928981422108979466662910670254927768720793027146865244932187489508188844648651039139641637697783177721391680931115444385251009672895084351970253224376820563228858987710910595097219050120746637052722328970296150511230736374442289890331381016515743666324593769589942155718291194147988500359783346493059538648658434149526037572034936298676853306054566151105641868307633331491873628635414872791282177306854849274325785077312652349476120581234875229001182927455604100900963120538879727918865049852737678110114258630520956837126012735134123192264880784311001029499091895158819095111935788929762663468267779982872538002547168880794253965045887452565676751437403545884197545925647219333654985098236494669907619973516831933425142125008536543351986174667406221581634384254463300112049645784969420935682220140393732616182218311048731422146535014969178186393389015405879774705585180599013544097874477084498276965201804756439542968056799529667348518597182255624791921578708233117184497698988948613065558765869053476940528569868464158050348760216558520454596351205756154292489979933728112694830417759334219922403435030102788166494106753823462900436238442088109972157712170068446085107297351022219032679875661650179339794624256439774025477835867674638753656323240910249057296258470906852843695307862998568353348808227889903501789813661811721899105872520809201193141941452464595486887569452134402207647329233270483508949817157448107178491766984835338290680812198252356561233287936648300004845512401208503472505097398987736407409569133047688284169200537861490937230055370079593230115134628792931678257023924718464216105379713369102069392266416811996922988182428322377253492112987586940540078967601737335540132353347606726914921075902245266593309390257156232872573449684712572580140271607660323611420083428066853379081962385033309329956982705011559032500580662931275340272043101876611754516237084253738847670482562822592551562390150398999272621024084162343015950989820099664880663137785799983968334068493156589804462732708939504750765151685581443130508802321193275505865673143761597927342008374493230404793191693036465162112772856989904441482338502573398267669697287370768280177159652580814909924544818038775633085606343935656057669629905051998996005536498544209617117076096750404853669127592796512538845585741437028767425810797514362369553699267545377674221989152687704092206587423659186877793284735435990672361731860175113934970775899335855722165330715278941290651561163643849299643853480536660739246786535797451580834654819334541487213145691267432109622158549623722543833608201894886873887417509990730078708548624786599428489117225510789258201547331880126970363530454650993499081660368599065752502321263881518526974677210856259052464386223179229362575419805725037001575203776760612470448228225520005113637673980762467276740278307661392596284003414357127420872502489663067263883528376022269743514367737671496793892523399949646924841086541442546028945742467113981932704638120469822706300848508574854014310193595536529700126217746505797005605065563913630082768133694899700515461060037146104702900721584286052690108805911161410462084523701741041506906220009181006317287956495403992513606742081143594586611375831148859179457810411671426405296012177517751070494788406101175808123047004691841839602516746373213887033713681917645926612468050150205638448026438961205690706612667151210941029096044140036308020923640211978994899213148760109357755118600365792981919606211064739240131431216825073409737359702216712477971475438001275066623176682023391380872946803279867857002811094053233306089106898669010793890764463177195953539677043966912359752866983699465947788994341955437991633261132771929248551701676634899167924046807967627184934363912480864767467876100490014814119187405696113027549920140632188690072659162654744266548514028625460354055518824679624571173645827551953291380708545008539957286427218752010619244410752134394954338006660017304325741418156284144281458120440344675841401583053984450265171055845326011370106152331879947257361354966277038477308866822442398045820516538303709092521881145640586224134352277243406033065022219079653412391200072832603825714065699984930042059153340695576370105552694312668435517180565947269229904021629653384448854003577613586566108683170412825916117684634678844063260476748307411961498255631270922134219805723836046445696990716036870358557593231439246147184132974316342871211469130291016300395300020962285902754866574726108259627767764265889590835294510998609027447633028081295242530662958372859450577715859500226223497504666956972232922369419319878514262992054667567350823031450253253993499654232264917778145487016929236067257584046635295757750724029017907766711524254097930227262077247346211112921323086852499265602039544461882932439024570818458349872453902540631617562825973112073481285587357252425234244507440621206871002920478234089916326396486735110782173497942307924209667325037349382633633456274276617974654984342706749200444685869649634181128658057185058602818423517129940700992545723382245208144536687278492224839106304262035845787579002439934732577878307355122088421290500472326099626204471763210378183203892758500473459175493954341314148849151630413332667682952544979424776648205808290640194382512493102249499386799343688029235299065178189579714080109971945719594343017525179400690100954191570267527841937622675473645529589544754046300785456265969144573830167990737071575406872486973162848234306032525816559104660403752216658827335194675682828773005364770525083501735917486334056374826142533421847164011816882914590711311272247402785974075696391239296909954772917807990891695470569407006566476537497645670718650798683984652358698422078992655419863992635715712766159224493597965728477062072459326913814601425289287360564743892923201861772285494690562586618932556000438153076606420715696864610651439655594705689163784536098102821711744452493460757640602228477693646978658063784517187303160257593668883259396274797726893567987909685829266500788710711188338972235204797847141718704258343498293572025765000756392904594427833239429511153126926481955783149489340028860362782471146246000773317989846470672298193244876488969496522361511606440045800024137812980228789847323553224182654299856672594778296139787043414909149295230671094648636259128025353077980995696421571198604755787913085178670999849227806615849638257728492475069776083787924746105634119523872061966314475557884359542598070508789013027554287008492921831952718616035456162975074239228311952374601279881896313936458903070379133617506475700805009624462190260247619966485810469241978122940526537090398321118009181894622584052168964683643975549460998566808751570190757830674537234437943318198655733664747567826862181900231652602538638723261462819831444914371466798799532968967465551466744814765915489054666860939489638775352904789185416036156388854858531901478235450894700496529867887404855110322506500204218287561214505742467643571835651649211339208188778965509656634164046903489180672585432553709620649860575488413180262352501616022760077921582878592665257498534951671746687650661482248923747251492324620074492964943490538469330527224506702158134554100970252823960578878140011490949895754486549899033136004079521464841664962497401021277722561410998158048028317582751771617671970237193698403041325598735949843507533630006590596456302423607421458794707635561072912391711721375494398128094238920014794507914587452455844026540645733959276141129648673211531964358896671904650668276196222459777676041085575236962666642662119965672489486866205907644578106024415043794455180282052077667458554324447733717594888251347673829942415588568822533879805633618310373279081264844096044725594367570230376414002094413435016461266995450392475761262381547929647297785185575285498823065919564393274868044692215822503652017567860629850285596850099376038318678069553510533119885906631795580763160451088484867069715170362777991284231519096399200113081500256764698467634644738444233959605109705509047926740063394380277119563917536235054214963602542830244085771834777630645756647499458346753953532378499063316765794538870121566834710124830809901904849788848469265351849207944373700405334500966421264232408753518078825456311558095939882452793326127419101488297703527696012519755121529623138599603119250296737541825721911400696989451685484679680676606396151244168530500664632725231092527533929911063983717597267811802780430030583489208193020503452044002407388713335283986456514490649856098934733920800881016336111697927973492469147576587318848851145060743844658931119392686876642982995294508687436244793804628926648358092520729770408891225728780579053238009514119650432741459482238751232913215509057915298293043677203565741665502083382910814715621851214953880216453418910312743482764877259326862693673919591972563947800568845175801001528288752446383834621273892683274069798412692095079286243741217059606217884308700289800492069924759245475290493096762587376130827846805744441679942885593498199263214181835104882378232333171514316577506995361840320753181044702378935838471382222537881985341524708379995081534386009717959945524620092607757618530220323449862697681890797839587808079519917244156433435360472675370815063695098191114685035518174898799237230700834002586338728970825802976288348737200898488717841387409318946763483511483779599227757019464756181053618366976178585930982267227378721726667216348945070376042464354575588510271803664032003406271070628873446245731586484161548796287187698137329234987552526334363719325261747533698352397108170817939147411393480302405439814175421093689354365045610063927469390701823727668701031050552185713222174819030457547199434651844258188708546280924835881553964011116486186913297975213869333140258422067881321274564325562898693795254580050727256507685897589571273881320850896784725307625702576034397828774935701124818196805757717507757655510534650423906681506055155434342716908836100044919514147979958095083705905362947022493876703212775265029064832162692081387480633661370453771705031273647113434560666500818223372351142919147882673005316766780451713078977301953110630638001787939489349982747587391329320443402805797332933836833198176915386463095645336342793037362840801049787355188106548233424898690448286821520731910065274059383000819669520740247046508922498260049621615143599909897506043122914557303033590061071276187355175159415489638540661742239173002521745402365366751802509651918579291695941744697638767545698542150871855878397455284215572567750538386934557251298702167902933173029291405295305611041886175524907920619449147861993836926179385891915393953898953731902738491933338485438385195831668338873976226343213524626790820162232303603776774517644959970317829180725042698871700827583776353463054414334001446016037699730905072501386540220768283442433492081641525578763469330403717810798454856129897845065943178294020921722587648251881656145161919405942266809933218994245725558486336235387623701803812245907750961613830155097536867911595896000240042525321794500680116631053730133940757430827771669174729528754217026447925029981863579953417919347052030628664648277377345574320145393220438975289077836952179971820579601757730470175964162624211223481586666566837988078582522667741183833811093943757720148241128630281081172942203171749933728300720966995642565297705210033157440628632518274035112118407401429084565978521335751155853703897586028529263339727677344856291012185664160133726550593370143822170220446566146516031014904940871037155903639049306967471471044821270923555107400069733378298230954076118026218126721317912172808114934019344595826396497044327869719502190346825907257059716764390011192928014936985615761785192809948409819484653347638194535699629735210950416647680102166087707945214077573218820734234068334722067114937883416235541713511276885933076183174649342169917422919064757971371893036977411761016739245948585917034904175203163800767911701515427672303029336844973975905975383536388562297977555732519125433074850194531305397801789309386189176155991985875583280267837699741982424336065187117155318461509038184915094150526173512935750398260295616742373170026017742218186666702563729518180483498356551125661436770829225314502947819757615547099382567541671762255270036737731094859802457888892075506775444907609455230061249496189859760468605930367122325931601326969453837898777372974745373263940692346673638260655963091307192554787867060958864529220200991143868968858914503175820138532834047100649347243719157092479812277074161772758546061695963068186476130873636580621754212362812596856459268958245026915447832612764304440182252086294002583345120575185404640643951474766678016012661694758752184540028279002515372687130592306963678211687525875759301551754001542887792227590546742520591741377444459481732631916783345950955855012844005027341474546923344495901785719583100791745353530072865146742572744388803907471204402999787610829026835108768556090904546301665592727857196054227679489596672434916167104013691135992366490482947545858970658622003405506934698224256371596222761998468232846892763270231089416062609713809124905697328972932283858425891817492045382003854421997105354396441515091625721009571908062722661888939904185701224886172103205001659925914980622451956691921991510622654664517424600941840679650301351522521673521732728582318489779963946483191678570101945123312434848520757968361653135505180425446253042141954853621740854520149358341369122668518940931734007962797438076638610138287204548479121955510350242045574767978581635937321991903869289192191281934455927307753064493685866527534682009587521356406149072955826180658411726781465738122931532137579468017221195942303966942447784857796291979079277469345265958363919385381805444663812076199661525641792547667305580221188030218693813326341201999178648658734810210784883742600047648274793880508302174396805091795317681855151585918488805351354045021659821332323095335860424822670694630054864029140234688480823603543682932982092745960317729633687645095804704418230918380819937530417031362759214958932154589697941649123389095946466841202701983219311269731094155347950779477206131750728539722844950068463293736326248536751040059388662640513944299226567153760768192952711376791970246545678478672832893539999421337487517677417341969415093833787445080556004056390798480266289434291092015821759362762349747543305382388374788206609762169386811241128349780781207842405482775334413543930796781190292516133246122213231612515064005857800747740439304987481102334281183246420960814642857686795035442781808729668297460836325114737529931908796746703854548657955261933554362970076359135144279090032369012842422199909363447586234623076062795181980676547590874736588290410854839785495559302431046049599944728784439609460080974222889704139479291478546538094950784159250556612640418804739503740743224813841330353563724876193194688009680762743669230062906996774827529699010250413836604706776442818345924816718449145195597949884240072910656513122387257981448294058222412659277194246812904457837487603779526821263601367963675740018075927327148445188609037412094453585408716838746974493792295280302436388340130543546451306276020525790450847018904192783469731340020984063457004210981494393539972729749787045333146709756388015357232727288197213376615755280218062019944127592023259495150888280333504741207079634376911789672914819267887293775701790493379219506324215177158935260115865391583175469045075632544994764220007291809644081541974702683906162802685909982677911514916320489068511960576608930117146005788375012404939210164658299361532470092983595329477410290516325584021841995845245918281782748439127937147168844347574306442182813625626467174466927381908765847052675428454863881843068182905483796825306326571331338851225263690437399754866273675667530045565880798088621331484301654763574043763181046025488174109723836980957779202340899703634190023147190638829066794371095353926797430519045076594380270886547770406455318369705155093374696034697365525381252614691559516072976351475429578728416620342952746511844273600407224624028954077185682078859213562134081720279622539774681092189793394734358019571845839137787032594320260374700233675766457572424857323551828303498626191096376656657592860664216208453380991321346284223028087766047265386097730335172350126078083388449817683723713810468671190288837353721352928064431700497217241140189303173182760737526102159397619374898481971967405634396254837943858640195479668807015426780958088532267764255759894638224551864935238292011675182382285772065925488974083160605053479931754510857819228818626931521866053583207544230658057946272152708352675893702050790027044086410545513274085538946930887899179062503173824407788279729975972822770729902484496201860033703156449579134074991056377481551881071438872233866615046657129663204919692631614543306462134268255188620867791224206853185314499048590917231513839101310253857161019514037191787818900308221747182253714990634700345348532383074729567362624987897228360343436745652135751808790567391388751237836195457581295122864497372650053019708129388915304552251866587731479867855731208854677202594279709499120461563519991175942562001646346559662833218851992285423713551442684379580143618371902121899111273087201678323038259854146075024618171902413969586928639376140710714830219042834266387959759030355563214492171260337455268218271446211688075067424233875520786204732215627440542255102884176002488095367072614147005568379989374070619126882709357484957880927535478214492029009866254598808154251944252162632639930370831919219370552097097937785499809357920613235215319038314864471121544108012750071833670065241361740456052811265135221223068932644134143811917400609127014880970298182842386269562566928431820197356443894007042545006237926055893583211140990979976756294103673434591474187650457211859575586270711843782231996520221869737201128728115495281191966018323061737383733721918406824056211906053962546236639242735064568708376426884948304396881348257306514161371267529646911140096654482009584086863944481277791977807413734438387957353294160293324668573999150418471146536207803254390384120187230258115484019097351306730990447027256405556831000101292305146152362972561029997259380002386915667978520591034799694070006573976929437081468460131065908273405578317451248944855142069063723099656101587506713445671252929726103420772382547621992399800425621133453799149507739108540496466385301707499463132375058098933489816190539113059660140974033189162289234602610620057552348728565595292904832959736086905373064565441648411657926946797753028939682828332339318877703731895030301138542115088939033568248342191142571345976458740581967141527432841295501157856528004480136425952256477074795781277393517687526709379646827742390966966764434308218202084489486487141121117751545989405208863548712165825895960421003784205034981587878089107287244522765856110606341094738969741889431347266145884109765520489741066327645905083095437683352220617605402263710604126870699722455189702292395070740318064581536086477592387510302950347500830466983618526387054166918619817683312523241898987309842926708140281068937774906692414981505333698478026180466024403466842796542118784741058755042489097315895319680947970858167797915831445208175480000194230377392723348886162988644567158542381052310189875403938913122606685920477255046477298346393775730160906410365593051472633032302170068555348863815064214684745289354839855156790491210766798194213213101261873563306052396814817289674131498195883896192878122030259766773879347401290476838332590122383352956478900207368989819409128548999266992670388735656447989353482930848834746436871053490558806623888451239830314639370247390968769116173842966067810389740427803093057039259311034096888066539464644157370351529529680766309242090489671417973414931233490163592355355958901116055058120635171801087884270887022534981336348084395464329321732382428768070013673461587637814911893392237381543761839636228759585183454404185974307563221526154599992017787215088977397262356137145867420469565885816405734418258324362104276174678766247214440817387342205747364672611399944777541908750102631103864043652724343722994270745118941094936946358856358415619080684622103559351232310925681576469373479851099993785380179602311782107147925673357320689530626483670410048898602413481381665000613771232960577239444651912915299506560801433412017628496958486013013006948333285831290460588390627640109199236633041600267763279158677999562810066287252945162225823439672556909394172742132148691029487307940886985967627755198721459374908153715494124123103374207413832274718133670962721745439603014001360988849574071802644486780622379767550343809022590176524175654055422442130489676336734914463893481268116926642561686615640912723670073025304201348674668663360522227582870407943487880583195949230397786526269065431782328791340934336152104645106556150989442155692452707860590832190753343700044982989073951408724221191174328436921793818935122667427752821172830420689718943015094086231112414605717730459636676867552934408862383539659439197885464479997129278321675847328086669406408037884167326641747156345609844352158398631188124641268302776393618653986515396886568544988948144093165472602967025692494868247939361314187191288091800690661686059408572415350976476003688819112164703626417366852167134942640731951326834395559907844383047335320204163562004208213083068126426436884768713523766141801079478986560415892680200063699346504583201651370387274478738093649157136789091863706253188691110383865838888445019756785194732067162786810303992507153983606857603415944368099973745425937590690920998880024717245229095470965407692717662275408269060138875970416590511976860452669651724154778043500169103542524779692221105996273736072251298209081617879523663831428993566455340475963970117982379237468012791513183406910284084658122009661551213402266401776866151867078468271783687201349424497545094029895439581749268172130417423698648180772806971134365490043440719920560138783064507070365735917188392077701593502373274982250010617402053525317779670484684476397851084710993878559299606097679747940158709141802035551913391200833582692575307835309675479529779645696730091765320645060147393633561358310963306693604655064533533757150039371455059982360689069955070021025556753649420388139998815610816086618657802631991965231247920770779924300173869387605484295868660714350428181349249555706304820121524417582395845669609255880814276928331339222744310479580528450203848439858892762171582388873090948423117258780501778067360180321509114285084713810193072374704538850261753645548745933035118474495131723189858050552688914823284787023066050262591307195889502105983838123790432822140158803147352738656450266063861029990787929962329171562260231727352212567998672772574441530153295714800978308023296998121156220528787984310560269817289259482649993256891717442143150381527800296688949544027089665615213410238294243664899178081599021007064880110121844942416779169053559823822549910764661962857381032086807907636064944147879316349668727964609255800476647355721781242582564997057353537437159332622367502760519920602053358406118597148584483739397218333197015954197840836213913770538741520027005253352588931277459794776066855452342623463847358214345232616750369203663251060341368605146090075295012004746497001060242757982975036713265479709184236986035726141799763032702316961640225886491956317276863799532571574285019051657184369652974583224169915414817381187048000322451350500944238329619600830631371593346671653659725192293639185093653801207060599055157244823684406084992317733670050206313256779344817992476843939784645160767387559814331842559362674752887073862526412183950694779849474696417576036571945009762568645290853620526107438013244454653690219006515800002747739304271332579701869430785062526606786220360236112268463245793161303299614163432134793364700095591017091400062132000363658091274247585273361215272902133320732594434905087884236904548837552906547074061726587363586288484809636026980613791743141125027526720111994813514096130042190076272036376742080605293444805735944955687990615954869380594122108983732046104785655032702608989609913108798328010918836905940678159034119887200171186451434287859375812025832230042469970316713791849008974647545325928189473500565340608660735747496601959462245100800933445993346240184701521548930338951599673127030091370669864407627704728274300386224438242519316141989097834846565198553793672758015657733994032308261498524655466393285666760470307095020371573231512239248032239298925203460377437081215856828942623429801610242800248784637589258450421610214906221123146859335811437524452092838133283159389836283561832889749763678272014973385894124107940713024704053998109121393440832675819342453884575102451225871962556623360291441640164784805039943607347753289690148067554599963164712571090469753552083908489166932149924414764693116128706786687332868188779388800160053799660107430127712410192044482761894225150482311204204344013870088247334421795481045397040537204758469423763787009375161929666784610481722756880124990993574551510889390747951174160914262939487281206767555295536346831535455879969678130945440082710546446808898052337905270396133506728921662280989893799660563009593961189733567468677309931759250931918182355560237835221728645158465849221098842605192283683336631453098292762317191313483230634436349055891053085142697219316775051367960378357943562387956712534846478088704694675357377161723173266042710985980099712409989395931838918851741195763731842455831755682399361372990673468302367072038090640145020808765961930992071931580759510230451783019961135220407454794952022884944947509037766161068977542298779348074364643044018780795936264645528496190534603693122268917960125853113457751527631417964194770417305191451219960818546006561703520684656287295225392945257208414333100689363458199936104961949980046074763505280608277852785144574810953940053867032167987834973040980317682742348641334271746323072345095054648180642387350045957819433476014466979859827073671683382126772434320850750950521725111468914140012939143907563776248113336779458271393239115664117250715855782930798850864400501318923403921745514619861110433162324333291125631051938537325711441688942211181794852183190053879782702417290770002941208567057758375208341118943373088013748410401195454788301795817786739548741335768964357094363154239195518412848291206130665182974795857749708432974636262987907043643373743899904191186019221483397489139428531135198521027712830653133084164871166808670934935296128204646932230596438899638552707473679387929330851434740213087698218697512328575486121227633625533615668846888483384373051795660496078720627093440607310963229118345074630909008768763278679907744011739374470764421751269961331257573243707323275839821299663646144021543442496052257753870932110131654500564882004675563310479467394872894608929222718063988683651008787872790628308815165999296596877243844091906772970797664605440353025958414478880043568503256691279898839367114680209232053751951444499194310736496019552569364614324739850031927279290674741692207010699476219956805848960980168358188684694681955858759167335811200572484888569350751785801095676081460367402926270374443887641112694850935204237618879855975589925109057536108577537828860486670853258800812444708136487949969529242556402694719556675223472371979996476704082100845775433574912789674076664727617135360109047136755074936222845547955154838567931788002310005827598459705383993842802021692478657699627829113303374643317288895913161891938457075283607639884782254314104660382363782542984626985714523608783698815388353512786786966491450184723008140757187961302771053007926621154379931477109970941792741126849432478597186895289806707743497979876742909067693908116562765242614178009875548608772197355852978976874881166173260292478333675280425090413114841839362320193310030152479861351837614602671840788064302848391683177664770719716498291292965466747062040107385048014632075510323451757372522855665719197343723911576860849913827015789510923554127915015011907745944568787361963764585563270824326523737401502179767633031808922002495432786208252952512394461810500719475655943403165484130954371140000528613876864266518644885724661538275171313622259025564733874547056266066309412007967049740431338771461915622182565517884622895840181860055019158053668849562475433735372692989165251787156519884183818314472651520388705700443416122470127844413329681996905808289634831917211097123693863344773788653267037579683902702018940373428585015806889725948291244288422654319433181401269168022259795273540612590747232723947532598333357451993166796671749052960538065626284876618545389720575493565524138593056105749150767167605691357440249004276414949943855703723795549341576639493254415934501105045292803161973367242254090004717394195785245134645245577423603281737777595546294174866786605069188907412810453684286749601129260590586853847135070441525209395887338340394418292048893573580569747812515164484485962905262319446683129784893426419278081340010156344220847650231073209617736875384604582963497227679452163792639065986958475307542104563694772408701825337041727057001092220524306784881230389732938933802005359062624621200837003132184399098730574274344404380002867115588887779133206011190587134655980058979064022641625379935755133946585038600050109310363707884039081897217246791516236240488535873061583312636761084915960199262952948926359873033483900372753780918562827144397969532839981756858293401761030661887597151121419984185037484939594521191599243489975652546933554806806805748770437049144369022668936088584253545957813277439203832918384673266118108284973336600453367504439582379900760443990252053772467669362573908090823683623199659829090453660893017846702054220225835834690749011350216155685222749523236316158233643338701096599728048276607562842233120379515865812284998719886385627670194039681560932250601080968162740694755204918195850361849500265542726920742488046997594832676627030775518351788197358483055325238274246158389847940627710907087997022290124848940903655139582982025075775752640516190223137281371597126617000484057860628507205105173166754679198284213229216707152523229080512310693717801612037991961293946891493723154694965420983860192605289806149897833236776072201455454554235456181871816234019592393058650264249167679849634410631179685772418872838201831935815951784844485244163144256810812581959411779252645800831839766413063305651428268383227352614186588921340907472160478056115340619068256632454714771050425103337057132089618338030568867372107099115789031278263065297970675356827674155666323395496144463745732148525012538507626046395738559320049000542595829319640841928443206200485906392120181740576535054041254045100867123005374706615310273398106308360656086224820986434766599028482359331627516628182632147495940722505945888506027960018063570812328273252474578672616944729659300573963600859376592258484886737387601493783475469071998725845526159808789085843200659785588526328107181802948877155921180143399622384807132010097735559162810890239655726121685692737566728231013692624518014177743667066431006324764498866166654768126843540318992872815007338285601467129842844602029414303587756908852081297507386155258759404204549841103140994309068824762358949312749047013859654579764527046404677229005760780260706493523141918737458475900151184682598412017140045536776245716209898030397220639518174087299800690633864173589647552397636048411325410429507236504385452708299274595919253390336964856365511623664002538685956487622714139812040494946708550367710626107576062703207940590453963832338123010929619081152948379505785219530086397378362323875251490811974906371194847438541522546035924237307632466023063114765246563727317260342883121715884708032335300439276165817258992753728188586042098800121190092213745666975412109653914110356061024346219702938916375801162008866474616414824343272558938037628639997335934819484942457832497631582127498144695059035718670369013931593853372282888555227053635869871390621789098240836581921918603345422397627761241468055120411070144899063752444171030833277494524716425802756608418063973814760027767648559163424695647816401745715262152457815469439919090355964858411436490140662908952694610072985868219299588321128455252109764568095408880252592543402919292644213024767766203953641883130520115322998493634868266271619941805642561446955476088809197753300214705063698109026470845997848892790440209107046997803793555853129080423154226465998817852750740508676470619124623704375585746632034251724392431111104117066125531338501989661848238049348045730881284442934973435170667085164586680834383095416157443768398980465353337273593509142070924912343734437698063753749300516754232674388001432684766772608975492757345755632111969824484783719808294728939369856195172461546321099620778379010380465575094778797791590207051973410830863989258763967698468707635526964198992741299757018192103090747127225567799416992138734247863463898597030636489346880281489839096283745321579743007909707077686880588820041600022568904314039118573829315033647979176693354100340760676305043678797965153786818702994675034653218086216359787206909049647094346932148602618375739368613786972671177170731253685097433697043483499264623279645586213680377489944540538016769860075456392309277480703654131255753810998788956817330234952871312133679891767593124337514716327773217657575913062884004730627285176269855535779083717210956340379149742518359671516556999839776722536126699813845529718895161300827420770130034714257470470755758318601454720528632797026791807789642277547429720377547998714754108552653565250883223586167585284577443467625673410423787857025618782383040831271920442320661173196893110827235166329017047899078447731230065637074337503115889290445380764806297576076230118042917191323294653673348490431095607106513860113132484523286872538820795751889386178798240056104066109990705331717298463929632207817513314287842096834444308094498059903022166398298010656464733544102984502479059316255694480064600825711282017720547648891843686981479709357682111843596826939256028334154739812203360536748353965851133217444233862687378718268120333911456245314604952412688649350274996082373651507989881597263199276562240471086507098635979520555705912655908441175085536319904246334536632146481774795392354108157555725368716448806735145241433495083404747233039675689403720642069711042267631415361175694685923880023574660142882148356567896936675488479136001325482125950353489460206828980326562318146225664817078647628688085242103579029610693343870936891721161285450306193227240382226369593895747598964848708405291575978025173996628350165792410621647125010506758281294706817781573003964407532049693948982596808490099183356535618710890640462462257959780905981367943277927924219136709950421138090120249933094571940684207465148366596438219759074456766649329672926524616616825642983300280196686555801275913351059432513749519932088285723063600892476742895567350321497577714443573974508555545055976953620811754890276422536842478516043639908367620206250534428764103817830625326709600177581531200342973421247451930840599522902005276211928410421315643031395782226029331292339358747421504136191520269365258964610230578144156794091262387717111141341084306861707274579971855067263452748447871690052016035939985770839612671082540824426062073696647080446690234560372030458774268412926765201298047810814412243005547161347002731084205213946876745106814163854274632762234149972508747617503119507503821593956219263969714734378552082062340634466362212466977655901421553160484115039446445193811793305762821440396152640217505356971902821058524691436401020901920236318440399585874575885314987831266965774641751278612059220162996550672503301370802885884449084806086906482748509158801347814549987647230895438549357594561720935492325845886523219997593217059864105888071432660687246657198165687454153478272496437928313523289656922736301423977159672972901215961684463421528292579380158754030969573732565415842637567334438627747722168842908648980823972309328672752649469986724787554711696394028819680425981595797603026196837457207786218161576048146030265474736188606215409945502722969227525269934553364921305227360333751013847504784956359097857360266900572260783829372089330638835399793269642956397766576056888588672452323721195847113646098063768811228967723813581309573231360350143313718706491212686195310875574798255268099609351589767892889777649421246818348889427195335784132866533589027510919970463398389492845390782929064250999653810896861192551046803368535173988378785185041283856981995233801467381591092063140857754194807959287815218053001752717919537065137016462793545318037324567844724604929148738281551340286231196014742503210906552488787260628764350109942181052523749931320899846420091293318291277328352082869901545547609155760399478224023000956221083106253659872218493622067724026338071957713116396962913156506762436414896027282113219271564457382653816077549717489104107316160766236293501634733802937698766265164053453804360127157445043316402071718865608896461412714556791287032629627962713269788197530362714321756570744054137121403345044999916064006364186303804259293954406420370468095033099094385171624654758004679856849959160752553115034087447723019134893593977883721692480623151506446790507492531107278475840416181703692748245151878028854294814105790521154510350887469185286480616085344944440409044628900365370158137508242240265878783290446616770144830775246301778667174907475360927645125782534932029535601308971054210209340854929488490640363146116624587722290045554148219701027191282507824012678983824270641751863370805637245612848470566030556179386982970839497404242161292989759521238856744778080915453775841117665338465524193968720238663573454253179945830899137737799409105746669760536195836288934942713072168522484997651982159353251020962968816417950289108343682936749386729403623669228833908543529254523950807933719481417104690898445747193479056035631865546213468517113697651889837513974691257811631649461586645425453161939178665356539330632598637290871404180147621524507680201409883476544331804298140334527636139462999572762834710713005983034581914685869341951312247269570734262392840370568882898827739602391139916846835278220544852384434322895725609575312839909230945004041096098357661306843504991836999035497562293535688186124264916290418851182091994147309807293280874912812139529557909910194484388646317599455443981702058283606535591351061390249701705377865781980022134671980214766106758195667269866277446056311100517695569422741503607612184737423919756590027292204564474974553312129272268820232153511110197118595718179520976944691589410541773569591822946354034353145510396151431731310542024944522539587500252251583405250816183207010132947098396457559460001092442773686562736574559340052335225660661148877493484932110545286194152303559139111034175930172809139527281495831292262461599387542354911618352125647107831724790252135376112487259840046142682539133854950174438738877107994489774350255494708618100375992546132111533023984685386805318115508608383686198466673413206970842355549364235199280341679166827164976242628206805523218469323104240353107697188758483021716628725243890448342563565751502134911185145549743138492198843727604240263860076182104427264205277734639473862006188637719337051821622148441364609318534436242226904294557917737982369598727936218632990988333143512184737402739160661347641135585013080798634538589721795980083431065915368431055791543799598785694107129372994008115293818313764677684633451088237665595487188903578378986228048559182173670955260149760150088222437544793346136045977550939860813452217860101704419482847934718734043973917246023888368496620406803488556819449535329264441290999652473403048488607362279657131437757067735749322509416861357426480697599962529215647289777346327659137525057615531931162648471702102969612803495824959918674260367471827286373763460590995559299543788822880202975647049889190308733588553461704459400916557980385302600856513015083515150731511461388491432725326403230413618099627753616401853801678082571447209633198209962851075608397530524004260708832813843862714607554884411795991608115303666970502643843394065804432094372896763310496864777974924200705929184551205228710023749785898849227652885906000313045950101279081303356761846940752497743406230738178636609388244418360055212229300005943707642223064306424895280922894875331215388644549826286087075404048195996115957221539622353519025070977219220595810606875302212241973342119721364072486454527591447208134876376337047087918500628986889770187141525655322957228593238352859332000686762307239376756234906363490746329416047727645278695127325299209479163481124421660107724102240648758733394748738066562077466782005135812782122970014163650162436263073121168616547379614457344222236118576672797229767835545469080180373036629678585556611593269788270144438653242621851550679258199490880872098442290166376318594054455184932550766819662665007031136758837272420961155795050592708047728360466145070366126150359803878016690636565730501550537470943050304895099818245540296300324693265928890073196044718005014557821532626792807200223348220008266483182101036328187804968966916636760625565274939058676256972217161318973972734295589328767081590421098076164275925526884757097125256408314904594512225037439155801996232603399628817290723873822866821288458198565678468650875867821195608337054495599793659164472531245351610033232351095132815642416770189250243354119961810292139103039051344517479141650545146585644302992832331818718485995199788312772531362673533776750843512465538518368943106472198830324147177646090180759363372592427519074682695035892671985323907474550903638061537677496389803238493334294130626654145487404511638885302330724491321689953072039736786163659646939397124736590803225096486644807083700184654104806905294515423918123701295055340269983105782277742086747250200045654620194069639281633056417201416379823758771623838072652673651140061175095181306372667666715592586507599988625661059900688403686251804696184962245451926289940774395753697958374219649892561007261120322034604725611436113931900434545762372990542398194076235103706133198188688051355211911598344279832955178152807211776833478797052269790333051135745437455056539039206044243761308939809170959838614821299779701715262054472658581473960545148464153874026039331459161391051188097348987469751051719918622486492167304731337242933670037843235238286110027573198301515904829899325688971484927005699659443094087602230489630563685672344574329092758850103510169428502146881965421433049333886431859847324575080345150498527784644924854288641185270374903792801944854374318897655731073941407986135432337934942189843851388355259241036107767030954288724522024356059156315037623434979663673147312922435370607978386887215778495063795944264515536698706929143638882020534888075490103135085872348060046168924298544643313594652459526284875418392472041171702545095294265518257415599282786297226965231864126294856098580095858672208765604433613068963077776090691666723103057145813001822004660260224013364498525010165817451454114613794351483781305035511892027140650206581214550109166365180111995322906400470424966440790343594316759349531812288885103249300800345810781877931015439648593428371112572449692879766516836805319236764494711863422248555246921510008861716552679321628777591621621960434820124514082130838848511553165235953488128094426108825129136773077596487994977312551103472434482963005074718926323396083403925405472235989007443447167581214867644771372258690954526487299054307728827352076962985479183181197153132177770693257848876105882042007032963856810482947424740580607338279995713412172465116006807547509716190259624477870260666995725408230136852300886025758856751045400262695524279088867972039919845587133647687034077442316747366208401090814180110129906536568228100827754766899602456003462406168117244711446687062924914985716962255170045695498227404125490268892949334262096650242290152215411190131157956334455184001697741092139872525818564985643321395923221106368196538016497627891663731023352844382225514898045833286524691024430102476609841351945607760732222337019957190755898959783300816757740355731582694212970353519551516082999028919093361763241416585433959979252700453116278702934664771774158886622494941124060183898436847816413205729480941909745215790572805295428193087985200415883131553477638938838181179799419039173331450729454733031791188849212544817702618155783059396893376053129694926841904395692634436227188691641396961181412633658991625698886126455951393291999999452366458276177117206134594156455382779861999972839656680954361415832313813823774366165876674031794031131923089802916265346832036251445052040796210599788145189660139872500176058860318324959860704387876696231825818829016870361424474904859697703953930526651099821027142120178701628848733788496072401981805927584039562163244809001677342917398723738439124967196250007480553093574789906147264961065907039556764815150695379882118765923866944460826686078815078921886600163282099971005930521247551369366829359578870765833043895694503653225510975584182667891680265012446666952503188206583506795085893011692502500778685802667076158135144274284031812960417460502868295672822395788208374842581228499068022379899855460856869993848102735807379680873846500793074491660748245748244343077649749792290611027407269090300169668369341846762407805689996507606629286736457023019155281650750028846221989203362077616094285283170611334985620327770523775834318763619541128757064163675476635587309773719237258527848395693990964402284703824971806410522691811534940889202021963575148752038600589723379957771039748585811513487501511023600916243878800767260841638393295759739291217290111715864053252905813097989528156183644574128139213779436534214392013101048708504832648228010435714216314397649691786233163595647440604608409663619056458802694759845263336964067161567688047929691434599425126438451342856898998207303093557486025396722239245033143084377438740735433963477686341789829314422818193043143395188447325602368617526828605706325840567326007401285525085158329276328125476782056374287629230002318519018619670559123488943080632636387258071596978675583300275356876202984430417231190626957993261890169813375315359090436058046821514441726200404701396733189774148892354281593186348074264841544623247837114371734824398964783852640094749773607224749170997377327563574746745947601682949689521585506510444861550018266977947283546731941157411429997422386754876325546695771626849966497366237873343215403136725676433312465960936360014019004916490864294012994946402141789641211300177777904884879735042713760433790433867794675154134811080281013295198688781997546639809728688126387764758436909816575934766954407699800516677757572627388369318929956396784507800059502032924170541654606943866874443671623884733918451606573317318356849145146563093888225327071656540722152932675988322836168171248357539741588501363616815711142382752589646215517618911569522927930766348279911185918627468722281800827225206411097394481968214883304716633717112048633356639386587459587131833884825373538552038485050692255707505128781319125742150404765294726441079570367705181149480179674423306130408400616464836320880245123042909742276713953285144187329794585552611263504727988388764110350887322123647042826596305378309284816535041028020071324439738382893129672443557720534544534212719363907406404924129529037434868244659352339486196498644157410692236414001680533244710956270072951527663700874331848948529657838081068000782548050321735475016995843896489421649704215471705342158450619006776360066408907178370961067104604645581023943020305659555290196184104708176971634131841954218917904832676117657693721465497358741439201322281300499462549144664813564217570363456482631482846120766842552586252360758561155469387457375330646354238477913073122862071594360566838238785862643532296054547459889507388964340290750119000926912882223453756706573354001131792630582885058289190682996836717806220196820172807435030095372163305931172515917796015604809795977446724690228621286872216798068306493021219359595427015165132909587123684278666532175877296951626502388763908430388243118081740256969152049108353439356429285177517750004088706666526282595876508746057969939697309797658806119603350013697420376258264219728688564863824562512619419239936012736365536464928137381841001876408210086839320000361687325787786839112237403257183725190835365362130925634738286261484635180323674490754198854834221279077571241428412239821525233461509330864728989980172768863525567536731974373440628319498944121653728725505814698346417400176292014906809611699367726178433491983517854739417315774812598335740515815215824437743709997193665970618164228718394886996201977604942752821296550659313292415108525839101211693835666948010158845435629476435348804737541931461719254904628051579581155560632337327533563440286098979556038286056989249734806336416931455689955373075990509043921549194854265079143299236195318172561878598232870445141224412815092919066466447813227268778499756152673640178523564884556469837641144881889305924244252485321511179517593144062244887715135941190205317599466483217144874345619636761145343995252171653316236772008494413245610824968310465605994880615814660643487899867304080871881986492048583621179484909288197853563422860714694491352852119119069938677928616993897333830135513100132391014406086098051920343149731711593038976113923599530719737191798883093887320149203867346944818160077913844863224024988930388795107631238520386149467078505845543940890322896602966655597251394868037951486166793812135271206776523874201000919436391967210223844137447777227282283949915788277600250618115714492566989057893888878472519524714018316217452515150164495971119290738031700771627854929722344963427339212907963388849987081519618196104870632413452967504891987907074837826075280786944075167852639901691084873305580299926587779288331022607584123203874608583085730552449594369238203498642924783852334172478711576963399940625439330966918264969253652806683558759285566202189226762131838621911400114469352133121907187102022119017023295521397296096211148440819433571330262039135565154495097840286032781821075222776553360160551718292928374863104752336134455382273997545707671250495874404292762343132530648371829938831003220844919171719791373398416271651063248504211513070140430403603034422087130728298201975392936646797954957169619995284365743262157831378708148580853263393535854673469006215104514338164605384438592986050999312330926974387345497843725952542548787400835199883984188873823319212751140957966349873662325634875547999799403652980683410714645244590273189204430040978298494679704252392968691328697659701595231368756426850093708906467334408182079254285731944528324446128931554515280871447219171747025434149424972170574485670788803086413459367164143919648643155730198378704266228132154945741626928630656035240646065473018170255903935767680271251672280955259183468590654274782920941586251231048388749646135556683235398132680377847794874297771190941446699318470246511635469321310592919420292243007396526880391654555284494677829524260873617235675139759104052858325669244418734470450680352105114906945498911763873388492375880559782761582093188201406881008524376477788030452159319036313390624238727304026578454497620115260653594357261136974946472069121994347189678799734678357640074336879361655436723675203427362752681938951625875294914055113474472057101430454913266489510425315627557996817439135963596453837024132021717643375042824222175067505754347165334518014648817269163020503491698355936186095738096565778479568878575673052615363893301296590267543243732573063211326879493887741752873839588704279026583455258694672923940817964396022750042612162552572835299010139804331956958996098675908762130727849529624585494896282359075145299892904330329913196037509469990017230194998785731485459180566078558305915047239997905200896921977243324593672064368414097062453395003831981276927446484562499347594353465921077531910869996898733633540998499480654537881436053491099022662258869570816154077525596425269425565064260948045431679660647509010823002658015824437498865601892285392925871141917905841563604886487020132268424246168067600974530096145939172658212789817453533905643037959512786678650150866620924999738592041727944190321216466593782470324696812679702721970049261758050296655079654718101398278558697613858503117031281130030952356263248621598943890227871698768148955805258294387556002502869801088341434065490561073246785718591812292413153972852670961576349469880424681011191649678321409142413173415422498279157620282239112929269015111468088743567743385834427550256107591405487186674028097525107016000280999382099512811030875960675089802955217654103955458652699234621866386131088898153826291246428175306831102694911646281958176321840115234516184076247294906657403538201133639987009515061985438293094261334980756023003835738627261493984341703130921561945935561719795815437822970490521493978951979781903503235307756343446354311876506605986137155406702266863157751317843465898570063533153565458736948862634399456131397089802626376035370704242152796966295948060645630343615746592050005291392500454877380696402452788766080119963033748477868797399975219541186994152718482805051442111497373540980367157684221670949845429815111749454181562492093060423583388054113934123432390576389324968043676987688266952850726921724586258599119199705425112229490247802056486631541640454588025221524365879555427474780694223385752300557590204465667359580309127260680168720772418634098869418906886669490676598404796805913375045258579600242598045351476153381749765446715425927621487919376488776122130081835751604830396657415540241698596209098204867108492013303709262209629395836299681450746685547168083692803168367080384466981961437097128327169767862755770267583761229814543529520094130786825428601330731298988502760363582512691474044008336729487778260093947081785659717810729970283180618074814634537400592078262198312617515586802273754659693789964380958285302112565296652016501319075853031156137715512958523806970662507314903884682356145416048592146327237081132863208386984837003022730316997542357004382314666008207539366528330979139666737722686937502323434541397399870620228274502580891258969826397824427569444736543879862521261199140869379516840159360524953619074638985110630374738079425330853596794094065203562889255714239284934539759820852961075201319891260075417785978787336205739330318203341714822208984426421155959547592493381312687308866283891396221319880236827819208424025311709602781268346140867293434919847873581514991655256181025950739558707178758930854071190733077635271219836638544392254166332176114804036299540889268936040972804797350837707014641715217059959585988966555437618403904010003113597394609538121680323428071743103850733607703108151277992268102081499689323553758557584061218662608513314116331436767155158186568351440429593412720345981374597911632627116071497233762258448454854372407093597249378500498043761623756013011095182954311729633156155247432767776613232125514950265618232518479526569155001870669778861296149763346968534332926446488066657710931438951022372762563588278657158451369451438352378000156948521087715960115234094468881672571233517970153372059354238931768201914136171410262590132227228899464228113721183455239096965685740481636438449883581173298842751833325788946453421684751368252505477823797091423507013546834896797899052401592137280104065894098455291685752083809326385183174403718600654071443755022213058877827884021714179655427492701652742533755518023623449577577833884381441133014194174586435542437254476086557226453779850933010412877745657692340383817613905433496489124709932120992863746568148141981074553016759750767289726638191495919598847153056920064662001519857952867177763432187008373871521231866908882339322433005684283491578572935764677386800428581543802002266226142225177375570135134172682095170315482342324618095758205978499069417340128702732103459008558136449058360598037376209627439190573034219716269107815717400946394341166097923117393503032686426866124433458910240531775474254131997962444829213982918778068394179462607838327229525021913929744375553086554122467610810529686767107510425035031242223082994002152066955814384906731058467032834313569280126172086468352416278254859330579542568226997946460569956292120804529566615901449885075774910003018023013396332989586384245700279774131104640058356593162467270957676098928173630478718025033970340033379229999924058970985489765901853798117581511825385547749080921516517933198283597677812793898694510761844788088831259610545639851206667175985957425565465948546223401350415666735264177362461714530391485596447736792743258245101564887745191363454228189998682511348727289912253719849636352408595521716402779219539569827415234667280453991832632139988639415621035565673677234777302806888919321250215644388099960821216827453287679827499981263825126439649750494207320335779449106464717300963522916712086893061628285695307699701325591432087112836018819682966444800663644554991397898284222765867637790167983717012834559190473514223868396860106896681661384954191958823042786602217237646867730616617126590420311303399599908640041341419012805860115807031363522678524392329197163750581875607399202039711716664580414351524970148735374004535130933240759102846022890101082235108057826097417774868342680707854949583341005202809279640021862583021864095277727708635931999440862509942445633041381932894533895546674090053859736747559968926770413877168507705087823195148609060625311394524573933028342227307504783642606243045773491404908013129322505630539985415816463384819384176811477617618176170348809445337939828943781136401237800462239217191041613465674614076615549802977410173211400087834457304318328090454773561508168204249001504353656415464647577650504423868710324149838000014617228531691858153432590979360798964118406256583174664888748015494840371388993895189457023675233297990506785288530498993355956301722049653438912245825015502985001492255449287345692878705130679852081971959575920261325324404606445104296081910037890147390235655055368456797650818407715646910266148187698706247440403604473791711777108279989206742037329427354207235324984802148444784264630265201361969325782758018850178100815685515092162683387431477470545334369241084811174854884375903826486860461947402613085325687992398056012511780902016102957155001259274528469503273673756400689116148409446852489668395416716772000956875822120008363540494993593746834999023760893734604650740281017086547596696592339951395034482524560059460247532108648366124772379392295456251217208312699267637765173307995342858677787292494816905824589038869149582397708769701989267291125607895053182495065407966721748427099663044944383889028225639065146147367216519964230998820923059870299669497043724130337581879029275062755281493493339461143458367341223823849219018449206892738778360074281343950055226364631910898745479352377415159594284920518339144617348191226770304683962610155969088515355434191610797883592733929431528184738778062262528699799124363386700852073870105485870569737975011661539601504987574242130909620999644373342985809366210879024976278091784705693354346632381384690926964547239569396082710364081036418220252495591823717681657435785447368045214778412817690820727276679753433050353558996736358428169350316490592579550562411703203511380907875992885759935384072337051043938816403430304822298136825814670464135455602034204060082144587294978898520140927107154650482244007573315227505628031601065295336154968720014925501574464536483546816946387671291994907697672902624114393345046798351637098043399903349690213010790403731252693182928876664435009542174132617755404104394265593132027964519750926494798233040430156929495687587831227251767321513446649831341038924683009740672608062498578957762848049653426808060129271634304384283205869307674937879218019783784372514058555804138654132887155983704669365429637599577752209080839171452420641848106609149560107819826505747034367878352923583137122881760992786450061041452085824300388829279280310399693108307569723663244604216041558538957061594602399821205327484286000764947196085898493631905272510205369322502505094301899492371120370933583133511702033203945479043400240968756151009646200586982955115119657950112209501803798014267901545819848165337979312399304567460992819785294373556894952965667698549676307700236198877872999689385860169402967570065675563964957949656309011839625131978992165661480637764329007596029457978929620965044096398556648099318380397116684984325107991077825416544713676735906206117044880293947504358820776193911066732105772672336118269983732568186085838920642090031075442685085208052854193174239082114998777966789795936025485761729619848190343480277425699846383440256959823549562315525562644553380311227224079413103930537459237323646592850240574035976229880731422353379254336094462001404290491278735214409969192499251363645118678697048035438376439928037511767578100846264356132902455480186455688756630631811926435363124708269985299888974275364694601320226160098903769809509706199734376438853419520580800384443185410799156276236001319608028841201527642035209087499140672808291354138278271668505977389013206440749762979779631116651528654419279877370343093482642295572853714042288825144091983902084200775347606446087255618456621646257607217775783392727101983409765579776421775123224942187874724598480395835590965992346676679340729175756896797563145172227171439981870459931828381135609245267933421078195697700148206001296057338496714075215657785436057119412952904919634537911014545174637032690274592132083366501942454792263073107984322635904047556540155048559944022592167391785222884631843179922396757500012934693109231690349586072266632850389805539729801908638396780584258570941805753713886865986264813434143178000129507895502179044311856064998301427611920397941602628567795309142453114556295576593279618836474208465081520348286547079767503800221815712873848790648762756750059155477585445715172585288559859007626586516130631527883059071218065636353780340939430184873661074032839748078318447516480995148923732986314782357269051567470102594853245353711131947057063699717081266140589643652058845393669268491500586364366654037360061955384177827646874303888418164754282170567191466601800005291344919343753421911198289851929530532965634085215279364080336832712860789697550725608692694901386785254872281746442639464882515469272481232030521085620357451997178031715998436845405317642957929550914175384046199903925761411544188888783332011158390486738548100594273162202227302993776096052196206399958307188869147185055513406022489589913374213489444463823358857118950421107643434837063684792764316985487404118473298915615520939568352353709137390445731005086349801293713238443072515799153455064161195357539196560008733483157595276081196290557712159305081962384721659807585586565659495153155855604214191251093216541441091783872387490026026874056195399575607596208728532039182888812809552916008914299214171205180357574883033371722366263014977271574795904458883655665014954136014283754689958874692231775984476571298986101461064026651029105629165564694249179416551412066656784081614447945887352608128262206436948057694268925560124787151667631971860839604632581176091531388831553959440399710611358016294665838743045343154525862893382430940572159712420782555263564456547462325897688159673285892645133085320653191731492806308374159059243603565130991057819642243476191652491035248234910104216706598657000065349978161065861824022067131192388444783671051795973208266289129725413950091248224926284150820118200507374710027226280529693603000383229417671385469745646192609153157652273255951581341152490909422722462756569018884260795602440734092834421728835983833711366636353087286162733478297694024441415053939417403526727855969849563981581043086198035556837749347681143851172984988541042791360167103939839159757706628838413466933199167085022441760800087130216006696933490544127972580032192506217840114047175358795045738671037893220497211115705103551795158437513690170973514852281224050355020777528839847208779485215468313568196396986714193180271632868124881679559888482091945611170142501714011011216936225133491564165296082007265515616317244238443210682110206465207659330481841441281705203384690050134015133890168722819853417005218474867432154378503812304338472572015504392994475912622422944664005785043634427334497132032466055926323590338858144993690227493245685120164843914542662876541171229101318802368394165907836395783913083355789850201277725066437603936919339736958212826588210867450554023610301048854413834879602896155472513071444132011092421973679857082545463645440838829108903810205401117072252707048143418638381384405300953761075498069914604010237058963552968314071654123706243392804600498781566194774654446543604661974414172902036991136163341629156726710463581894077191936560206972080762074427048458709832927706648628639402387217172844803956072095717781504568767667194412045713993261002932210094623668212947529007879733325106043055000969320311496837047310254966922297631699470270789054739896734583041676001367583900666243736846916800225772895155484348703871134597942761071752298239419273256783669561459568171925804213783384138142097297535478506649438553904250650379813801323571859954962570510098555823817176341761189160903376753241242973187966603304938431486357145587973934700887073702752522411814357309508256743546176737970564727267129617415445613233458209863466437354362258562116521362732193213533676081152077075893353326514840795646961884696328859135413685263960001582042518488191140827297507838946484862897309412577421722106195370865418086690666496405555589578514128325034415295915413547095174184226416793479967442036452703180300372855910114874943584981426645236528983133598210138737941549541539754096424282337042961540393728297231932184159417900389508331494345622444446339976624021512862343633461839357426194588098044714422282196058773164526541168483591977874847933853622132227323768139669197495635801002791354632582560099970362330190235223409688371788444396781255535326697809866043460304826142518299739572570622835120189793304409778407347793394989132365311421785793616285265457485145185983698644817309685129500980327224802044788728758464782001307494145204424985009995586821180947950420238600720124784938546569211861352614009763895749080550805946890725658454866892966622242212456472942313354392121697118617759988708579247916059227051668184177361659296927595779171505624626065373802639955569537392467872858323367043027089469422173420738426055745136755621293736451531785324601621246762009389409938280930598594624218792053674749331908866362085212741555275518595495903623751679590109506550458505764455545401901937318012941996124237378850652459073342200460703892512090238642983280105931128509962848829647300087405178421227239130407694774247259441271315276196146247031530231882168267121657117319742826819705081932123270633754326764520729750321040701344151858604768941155791034794894670805671684981259621179025474039874487650063004246610488773998269853786648745225487937167643515868594409748887369698011265958402809944034760472883131489949477462402627176413404971345047536445066633260154183660916135386832782889176210634587458030797684305568389558425229627693461594993025751617226537725233621343654732759702999945143674534089995891951598576014642201907175469784443379454672157843943308713154788716384855439459349254294215425640849476292342230508694810239769050364053245395157742138625662292724931454523707412893208821895699336791763998739526472866371508085850213800876931011192685829606398698449295110147471871849680924107501641568889402003966166554861784040258956669445253621979937621780854383914792887503782483112691364117402731364866790274798352694366307047200557841282068422972090597458796652585423642683817313258630921313442606238842389708999359694053080721098487795665950157536140308617749475451460968213729294310381841114326704454117087131972211955045550084103648784166794343802783833642291131138018624085317902211051960101857163336833432227116735152204000644235723271644580432745306971362351795346627573196093651551695561677873927916544981341629808486937932575031458474389586029730146912821601691458297755346496852100262655531697443378817446313370136510898769898238186992669544755365587372710363419112964499165705010597404402863631636050418004124032796981225737036568657951719290675594529429862173478187265658966506109170273082671174684936218181425805715904888131824246111305802767191717127932386425866968046170613567695533244086178527775665732840738014453172906076844219915655919976159032460750397735657672765991376550990939512512359411378209932721626565829573930270983488170303612341440365168157581798327878950068565125467307633400022269957951632291315967145331304075517236241554873226153069660720708577032728461817361571509554344688616696569448580817380449775265969420487350705111978043747541562502289322752814591987098944846536021325515425721892010532699020629595322816049462222341967093818924280403905674601907263317604029135259127112113261293009302866562621262124708423545276308503239526046141071867278480860988051487679336965620965723739028523494953434613644701629156637015808316585868116926353450517885943547869369229821967710893188312890470760007869542483404915401362374959583280714237322499475590329442294797525630753755939483534565155830915623003253815348543432267648474857511221268721587566805191430873245501459864410265237765149640437007357191630355330629666555353372722726326374518001752588201332378933399220129840879865399759063107198863175058477952064805520237481882122566759341613669651865047028947861696129391354126276525544705434431219072130411458011878407366799385513118504432665567929560342914671928681636428612115117714018548723464628147327121768492357549675762219480328109493698801344427668726960125830451949184069991911407232172336594091372126501974548549811936307688131555540975201480927243056122233091144273158803295583529552239390601139643161346546495716740418760896509099274306711596238023887668883341075944281903370790114896051968351461214246650943789372133031360899518067028864875486199203328283203299300937397124479268019086573538211005728506941292592453652728254351065060609514475627203071432580512331850856673165822522476257699439349177359901559788993770449248192626954965269921477807876997837241977034221101175502629398218708071570495789167424078519434365108192164498848978996020641687420084216783779894704090027399958513316384328619855811001405555600743028380845021399584822294721508972839473281514135253009773150101876246902415716286205618110141156222249341928494822753999310173780811958091440035848077420741220356980800743119743557843674577995819746156628783277976649499206791309263810274043456740003855237569675156281055803251358780193836640707258491885575960851645747067343588646549760612884491674980336423470061843274674730889419797848329137901997197428671253106323031716469650494091364666381424373338274727954809180821662943092869738580957782954466805140204974533933667891906567600262838225337957078336286966924585004908291942203988341207376049303941173650751525655110366815327388682859205164743595426202754791853773772384258249810596920766618617643251970779820027721832577854293489368659414755098781772818922716007977615225582597913056155798081875841586949530301287424219716322716621975379799457084409677409720223548368751648769565444651907806950268388881383830218743016861941522268672554929114904459372809944036876629073747110564260053511956451832230244974106002075528306635607657147500633853096137136605680609137471962006099260645414023001003312144847559759386797539338005887837752555727727511192746404836076229533367631497217444048948095170096334108857781730406391789738553994928315226906853219203946078529505020351823388877492026212770275999204742790771469779389627628038405229308969850884906375724580525588288558960035918441359170027816652680732891354547747213393419862862034457534125006754158812817577110240748144598476831225125648304270341290593892337740642734601096135048437541921665329080925516304998037503484921773533179192581850576636988687430302605873035338839260839163948972280231276364874679012039397749459220470012159020357476030700163735078737270492197913439832578619779320170318038876750200179597167075231833857575960261009878514650909984743898404705496834094036467682165710260977557181628850144607297750534892600851855738097016287037380825613158878953451861112284439429555174826946018569767668710674681043063933309448182938639265027795244052947108257939802722543017546582445304917076591965235681746834387965288518739774123072266102693505414277361721930878953717317876120292337618953300786189017012099551108607382120030975004687569742656476025423467930977103741501711188224226888962040950916921512780452121348089880779642397015910352339085451879739600893157042048055148358612962047279495665320475358653825105342759668037864772584682079987486459908868474528543151120169731284501022450925741335283505476719242480360063681901147256296531665980753450116121763609609260509622670742309556053892536491298409002295366718996804465622463495419382973308704083950321819841419517060606852337932062307671839673369874528799532608109394318719972261994330618724805307929792334945738251213526700729913224184512705356760015427934758949277047505733777573620365388746760494315530789934351490113660231326465399413074983588779742056401367416553990962718791939380760818147212875769130618267327231652430974409268047490751382078716369020807442711391648305293116803519671345135354727274662538515611175541191663894998271344168735971476708231142011389527530386232394796396401994536553922867723870789343704003146891348348323401809975959161009767457915816168073206944286856660931660673516941520388897883380817998700453657929564451410765938043530634486195986483860671905702975282771970492475547870371375468551110038277188564702397271609688390195488748067755650616970880678542245821974334754179370676048011994735437033750405297692598198433021413640801099953981004079087223809061542870629897399548131451894173388925441645257417971479418012551228503952576685601221887078580289883817754772219254265898256045441367559785851892178867030781558799638636134195481187575637711926134656651410629444139577639489773973746498104114806292932988397799361580217244627168545516030824691078352743165608850589086965892319056026804661324507085387719319995664485183016772835542378665390686876278065280828769088881533201470726831510456513018680788189057003407545467647190238162788897163945680423785411583434183569351660721460228994324854733076397971756549288379491654730396724887982477442930613642825818541572796451459929415691374804457015703998994061320108730808592265359093817365715708770382862050770421693914560320042792464635462461293397200620486897243497805850613064180744975184502033077472429259398589638439361927580351723857780216102033696821776839986526557120608680561614943080836576088397746023482157225189228314166898605894431099770931003025191340672639954375194813969591506707382839522113709413130791645341347288971077776164714956193509405675549898637095465210940175083811114735925853568735776890214527882483761081506699809986556616709592200036561883947175993295502004869159290476533239726324983602373076973063129597807461300123789055296871235803271946036707590711264180575530322657840124680428673366489244786998632350347395100238818396883765606432913428812647421035562048056331824263320493018760355744671334743961055094640917048199980414590923424049460265598743330905810833149426332071577602692436233704555643939013949377486489097547697138869223361487025787126241272336378729019747954958516786615811146654670985945491723049356700306035282136532978973826888269099311427014945766196899921036253755792895605083790981480108235423832740489230327156106062530826586838567094560678441044874885874828604974204356742458493368013432638586669440255640220396892641757709058893085174273768694103678859335702067773016123982972864755182415304052349147443032588680982100539083950676817191391935866116989719560017264141338264199172713026040903705392732592667845992976626561177130074162749395596562703920283073590297407073484491119808281959503084167291985151464468654799434837774641406360415683712783830798238282901888267045366327759716237731343407351903741866688780388128674387247082186408965261697003434535292138025945807853344716492556225562334880917932743528260711059815733865564535297783165796541484344615064432596752676958177364793623771140848712339531568046248883322290680218477347996376800751113402263116885497473095272205246768754458740390401132432888603496542601817476936027292738595809503557183056599543993428560452288354907740231249387899062799320909550940524370373402212248188618537622836574749803584010804938347232877904865646423047191559627111336742232639130440181770433398896492668683968576212370940332633212423546190033761931556217209797776177287230652289204014222590284933143085757610647774195712437628720797232333422369611219086373788731737527166886573213763070416633498202840515831137259092664345740361225089550315183676571997751049848275913918803141109820148259762327424280209700484502597986722477997889710417948588878431461609003224768454521406833478360236496463062672233157185664245553352937532818773394288024663763200636723924567937714382456334360835857822776420463283193706170522496023989332899417800849907684197430328505899828949843330546156279503709885513430606610744665364599348223235622299213905357298405869456388039337788540980774538296698256998411093123572553081368709252183571590122468521636778224528417635084798502767567872703393353649422180602823766422394667268784138293258664899685482431974249323150913321370770197895651630249102346667887575634422931511333866589253197528714366120545931121223876291481267609244074482817263953754469979320752700997313513475149109146206881297077492362059343226465881865170635902712329494731570707671902157933529549330698316166336868587979832117825584410692678757160216506703118669675937414579037133096919444650360823870832955284109216160601499088652741470101626363589993413788502592877668647016824334924242550668711143418496248775386882424142860045925286767249396663778077013890512198118419832565399061290659256912717352668661346422597707996227315210362479603528015899462465151852906515518753255584605525453287195420125672103965954395182937777047337413714717988618697465346108919897943265138935927735840799000850072530527416572702889093463933378720290038344312670061990298381964155030657241786415084468497919004267010522881294025735976581154481064410339383341588891263846959347770972583562962032862805066987274122628241832527172517579773441177220564156661328598184416756509741683526916140525017090598625854712124906305507528169632386935333780119637565562021475300986584948255520458857648621411068568646924247896619340777336992443827650417947551022500539579847241206635022381971864370797296062668627271018146667693191383513232678597238198867164756594661021064285236834045014522990117674328463697920745556613688604160671945671679258155289605008502916048035916151401739530515275188657682205203496639139695673065641896242734196935323562495962787874651718376527858845199901838014621297327580910775457720755296809867271665713856962049678056701376869051857750558492776963657540747023291471479797519658723564276645348532246082715985213703817396459841129690810639737057812287584401092700889198814329796230530432316461266455473923449683581444956793763591132226991439835993835137198998721112369255452705709968608656744857296590366873762644383449428072038936309892019712582234194156864277027766357328591467129798637066076494415179068291089900632178229458051739927251741359839662883178527862807994165069492846127820374807820588127146910248776720075173672099871104947477692872335592453853134354400390059831588503424446728264653351161499401412885624629546721272528414931696307460103911296653316142714946971466860437916319348636549542896588788409024670362438978386472637873717552685939092801876073548453368506217905297584832350897162091928521769122863407165764071139970302954205094302965631916436023470361668325017679048810264345558923014065391475696257110017953841034583473840304291921688193699743142664175323643038858772492618589655222606951012992847928639620056163249060369384918550944830004808911771379042304373377934131186717492741843033953783147643312574055816417184690757341416661169279575079922604658996326305664273407310514073897264779625237758575857461013054062146720612593441969711073673263141247614344127995493540176206189800810300833341301874346532484293515480017565265626260686752761040884573712662315132668903888500568458944840209779725597845045156403666421293149753446882370101140750263635914575378841313034897085770368761752330921916225066687670357869830680960529962253415560091365907855494603821203839041281351234562032112918923163851157078861221883070924430828692222703015228788012732945250556816445988342224405284257408765405843772902371031211596652011731827506626097269479334543511529297179412280521191516858402871596533096973633203464674849175536301338923504485053283479771636076666060946866389095798404360992382366070812125728448424904136044821236259768763651071709147083623941392969287683036674839897295852895895520582845279998842033109194925815845342673323423575969016743155108787886875200918490758029606102414859912655859412193169074140163676815461003935608602499477838540036438994848712740570706991935491120365575540024304947801165927860108640848652798607418127783350900685161434926066159776196930582114240324814562468073415089529343977308467081030821403936522313082514075096533341730629608308925293238103490709375964679661291424531382911563090387542110448092445158547663809098411216897689361583608890360129131809792957824001646361939589704040437328533669783251662514798453028682766789510243460011043635966890040493406356594760148377578902783005149370063400688498498346921270248140940107584329412378563850512992618040880721515654338013033733881302708028413609329739507465618420389402678125065471221061498706843277634258160047198193720488115773119148786117307837989881446147041506065681650179330829978893081741544385084886382896002737339974377080613673221142320431118391743315713605404300939908836151722409804124832221585837121882464769822291427533157972047801251558794717172611246466022592954085160174344015864529299231781909072884831386426346768123457721496143574192808062482683801912545884730966078332648078697676072873939580385154348456883669439438362406096839893154848961774678734038243594126622305810800544311119945246804844812296152013826509249364691789467532896228822941228227452464109469632327234609417349662162302624785077822445778225026477902117121499149250360038912143723765809147278837101488021979347633831940908927149184567522308530479842167131445025270807529372912963720371820325010838233968469531120475424207924082314596927576609717352402018093211518869568353477352263808680855473986559838011638029766527408605840247877161461871944833206304513419535343126776061747372466096583784210972477189186642509514959364425602609516765837182772430481107659115672853420955934299899420058056511787981084294752189271380395699235790382128426675449557278916387024262840020253535209796682375869267108093502694457902312451100553202803805156349800018511380618290367806031001222999316973718227218066659128863468766268205546686318131023982808547859786494392274284820192299483918806727831474374867783264614279557246785808008659513596163184995720229335058037572986357001581042716689594684988985580976546077582708676048309833442021457128278846111345766514897443468564535541747697338691248927303163735891871547772680266583433734592886783168657167295697434157841057677362365622211220184128563919708024487981586306502631541961969220922326569025680986179025007462527031654633105229416681577395103660818471021152364556240727899847048202262319064663697441237643200364333800529196827849760961868270036479441974670967254045505841512318009394221960388015262620243357287034274573657547151211405727549280803457418587815622777779828188374976988267793914594399070816892073559749486834471185028995686785791038653912469364690561004304604967481997948521172567083151248595413163341219266630835587400970821370819944753462840805490023421620827351664405611535372910736025217440724896871222905146458207824979756735317276796191718803249469481792981171699319062191162608121769449992496887143193165401652777995313128903642079239119435262283405182217880685325838136043534906390262615240518746232141024575343449473967095628423363088546005055265048549765323462904769029688021925382250158893679689508052216295316659455203127347218478929205644561952135819817240172438358623118343013434918467659458970865115555950039439128183080088083578393919324208151413671216598306632073139540053518476374883400921623461194429595608566687647270060179983015741546018039268276389473417316851314229026739995246135030240370989184870469196947207082105188514267642852793238205369042083433727039929567543822114079102641505938325693091842758939346213235689969763629568409567835671131298280003682120351788262075637910700485800030095511400717230870452448349471346015388785576231335844867804202197148547709670901902503558682807174983077322810153758724596868238130024560622139487329793780568605067180812569838534345750103589007746164536254107909541379536701350897424029372934362952473926408799169256948910578230985751038483225519366619856741491897963982927097165710006027168565797643621360068594749082197416274702675604861956313364412367688813533452109626543355835594926816867669422265634994840118484290803305934030847569631298815158040433793387945030637192323008896991490287669718886117019877044628080554652573047893197795139697839510069557235201650943533730267366992245027653356880700171379022266508991433556504368553720817983151276282948257624318404827135358721577295722527234892805981707620606222435200380658657728810807989484351801102668668200559763145209048760703038597714162735932624206214440480901722171592146580705217791008291154348772409981683002475558459718793775414907497155339116101759473666608419144954560315162648011330094584064560552450797944765198843982784613468223907228302565487867362677600479728631883158077560089595370115457595626562155578039832667550019141229575210444016547937367382290695292689138906572017980703936094122324177358887368271901803954827684387385266491431682457194622594319017591023396652366635811270144187907227994552279908415864082681680441242299525186653954420131232667728695097930221256368893202324096201753539516201724059896907912341384992193322713593717557407799706685109818260404498661306509947712717988493208181596200543461775820509084187240988213975410350395624272013585175792478356476604132834760620588919716225189178903273544554671047571856519402934363956181689987972716533303640868647313583977216158413679702231598634225141600277151730659958280690040842226624538779460039945189686709749024147874181404493918316374212731130554432027864725976961051485930284860380501897245609161291184481089049224790009352889948366442869856172480854228454866373705422258259072474643008585873503651020765419493337701719565616736489246865810372782726641517818040589419996492250507993250729028699056810420196736189933986737949364654622710173720880145254402402200270083944301429988022410305735107115399831282829303963809531414289997838485756763503622017229867702737421483807400546457385371737679810788433205068362010704835811170900065712398833054022004981599915640958386339326220978493724381092928334612751653092860226703249310890253520236716456090480153415537745372549220888970147901787063848539251286699882916483962581144052523765219934333442841152901527707547665662087786166327614655846568811606030131411192182386478268115629544489868894413303349830704008713965302111209331959004908561959045417619275737621455706001403419545907817573444703253038977467917929608873450956212063569157019177624907387612071841703427126959910081582090602781453393192059720237606564022609577018071692487421683200170584450999271245711637501390503407300581494787102264490385592874437824267176938276714531785086523126301920291714156971226678073825935087198770084371381164278974872820430658222824581306666690603305146115746066497388210101401993494835156901018399717937591353018253202278754999147717009065504850656529770761243309731131528337908436269681067653749053743593406734163983396274278399269405356009702092167104154839329263056626179631277243038984128263504138371137891868399998760440820890305803021445465284310184544638316894500918605448687179612415229383750135071711433056077653735981781701888593809156148171430805708630434266198423971992674809594550003103189690843145115831566995822416564050717501356000812335874503865696062881831578968628171644222533075886683523869420075146958433043019814132126611000385431155070384945169972956555558358204823197385188982965406275607332504564992442486346665756619396910636551448506914390073020100988006618431575698585428719580543348734470666673711498637569820280347440850114694919771213072295047239616572524077988848609405783838107988397601565710781637662815608202761062815744599708178010982889927841920156926922847335015585025022182152697611210768268031414919653596030698872426189104088108425613563357646296802238377922949480091389007385920749049208654143795558272357717280246338999285726610275309012789249198254542201624626141966000704812511700021972665352324917569750652898962960536058510486630221843366718307436345364263581941994591923317091890931310161084256704665091979866831326700719487471501019188879134061647411617237613339892730017328875003202062574042939982811816495592384619200385513169547864466157780171386696056337180338593202417866555012845782502602190627363509272534704822597646518860337781013759148558700689278615352702377706455072102701110027416210865580717140361466820058500491192444874056533961660322349154338411605359305050710432880837869273548938342353124171905070115945408902964997066654022462580025549213814425271640647655220967919038170887641807956365819627386344819592261971196539873897235220762843353194115069674492757753407686177950465168311050437243975198607918807086753397704582002501027573520559598409813037157137339352475491110285803436696129429408761825802519058094350923075902521601506884784629737854585212739659179552566218360850517613356740743013676984362954714499030030056379638883250959450530633776016168931995149608284235337644186538471860749367681850365364232971272715880526163923927365697968755029750759839972933303769164371584442304534646802435365162540044417669301334788550709286077421571080482179294922157736199319397860882179241581938827129676835679992868549741498651615257843589158810593047937955024678283684938988617335300031244835128902282896219401414134142748358070109014148448568359143487786100341971887696785648183561752455559425995989343200037964502240874590559379778524078145513584305203607845923769615758503085216081840056912264988042623544662018373063372689924568004888708451714816575454998403553145574647605283639804564856467002572129587778127502259149991977849755063560525947959927445187639642224188142031420452726370817246427697060499903023896206877951124373669695966129246593690879372457250225186154735771559297558196318580281883098433877531474323839325753949199074767359252357919925238198929108798061688117498954349227677210810846386282738597540042327551856957882504871691095916568300034878558806761794536727341890188458412615429437998358504016102509632466041833568036203062468107435690301917108340480004961550999711956983007596376748095536401317752813003907424577407703561563621281031062379412460456572102092749730711155891346330234786243150681000257771642800861957317467579710537320834318439845325418779242104805165862450899339174507769695888031481437675178668667644869611163471432043092398040700007950240772561697900558468120772847981905458666473717723122726834883906028191040105943424704302258507160916399049169606675380488511787687446069690204853367991483399287293740449850326791964599122521224088077537037455296722283237142700724817467611765352066300532823474600000438221428669183812016943587436223346047742647149802792161775845392398538729731650970778001059172946275584040315214431409556235988149625590855782712024244985584603896940007541331896918134555109646091511186176648535653455628522305824248496659570917318097709181309563188073652570820297468108141258154673473120746101452883791860202731302093796976024425325351926333139289077161565791549293512270461149888633829130685114791243124914542185787836159226058540020058657000998127441469688646786940877008327271708919299162390524145851613745936716657255804591975079286779875958490016076840031288286705220185689726623914884097982652513658282105703840498419707895163971179415509483817355245140410355252544728793004064349092669079871088183289547240578944646227338485116601684125081498361741311888579754682255660388892346461976551379643082516068230343456233656463783589121262319541132005091368488966769423025096020021984886154068682373107433820408575273851626008139518438794107934682792263711500119765022052423120925095731554655083447719133191765637343361466190876290340420031789974665408292770880627067818259036495209917042799109969277043976980436500727996846295567243089905060040002941266214262415639844923679315618076302440652022771512667273129298335147341073648995428909061722567240294181541190381684269253046998442241061650725877157654435830499335352432689539925698001405754730405524004067964626665570941947661585854326238656664415837106260651586071571246129357094250738537450748373317424432156365456357555653076402566953894709123937997024203201298975302571152644432885230528092910808919360333261275375084723552120313114679685079505369357316094650938288079655101449753070355235116083367134283706955117356117073878071536793056015648173990394438869503726648230056629019272796151416859510516863179497950247295616699803201485569852447732425987749936461325995170970501236067332594743886159568160760830382901560015469291218659894828572618454560192224029671522127820835857959886787248568721375877860774090386046032978279917112142151402552350919703004644966226004728856365957970537744352691033163737827564959442301380562703304893404827007954931423923685668281122510228162126397824697306784674057303442497697820869354773924443770757406962645729372916060833027713299089617004156990440897607905663831978370940779378801091801379652385116899533028443441927143773726174902560367725193007405611021811125620200486843821891945807087719254937346519058618881988943270715436880850712899293481806033756695917246895201271659972279590130149019238089714232826115095440934363693656260366051957801854617565803173625173344599780237772131897030744353435855284227382417365254817834993740047104191104560259326361387017717174441226614256830542788653774700391887265418013549306355961856561837409021327030107270333425671708465829177538063518325940382263647379476710107135039127067278561252169556325016643036530082725550436664328015259474242255487426537694375016120053294596631174450692842315213186609509530024957879252662599576904103472276827106378618738647035108243219296832354985641621091386104390332149628066137941951440369034486038859789522969817927771856610670536934715358965366810119912573035355788506688676064392639769318516036792077907327408691536566923092269394989273146140585988578094533145702807453479385768975242169947680247862262918308537289117597761751095309057688573521307270217562613387037440339304082138097766758121014761870426538269939991453866810572893025754429481964017495041069845780200881580372748734507375733169261334677963592310336510455391694725938023356305838539012598323159568145267108801377397307547082045716567926854945918998107868643042663340028511083043441123036577305061569167254024148990266438091332925223177585119741829919829650514792034386299734913788598809274579380581517306783957464020463900947475958575139032416355922513545118400873535578695369454740540934572743822247323190352068860081172863064258916017309827001748509992537172666223061343588167813527157458432262455437153067375099547767739335289299604365644568825811864300704570639898438813392534083503542613876998593765682815656425132768546623585128345462118619138676952402107833365658633101160466572132996035469721853334962806085262451633418868326899382828538349862114398420521026553671201574500701727172135012739119129288855445002502201725508222750242695048463044954555565642293008564730608891126372537441019098285509785874875091134218976296879437163217833657400172165223294945487326818695695593688809126626299877014651597743255490602634902742685352061496950162487614261765446900776020416363197773548942428188605154083238979813300129973458904271682758608862704796108345547345628617047195045435921306270398318550756012585710456737916834767039975421107898607963598114100742049132926812721684616010034134883510865711657462173067571913205523185335214052585414619896375693580425911433822845683816160128278039080436829936113575532218920880551492680413720778975553110074166474680906251130067566633610982157655328305209435410716310080214132996122925434424018610746030208830815154853561886396460816979034062031830164024980524059350289985989627794524067593518373295691732411497756756042238729868562964342224839293515556675589214645162387074168355781890058209800804163386620934798261163730529860550006626149729468031294749928722473340965842476623773785954940794955875620864729885480001371992109192603242977093293070134157304863930109536488714696611885934032928955551545763489032966368807374757119675064856074959616199513107912798032157050661607253552637948908674899681609643699778105656993523050994193788253181671101179348755315103844242386578952227584201479994939975934000370290333429960481267198189101832394983163512753091727167088587282754163567146095921211668039821632137553669929554807260525613192003587922659473510948146296662284802281990819190882824082764199860314958849187935506051459218231425648221067387276407452116012162907829377415618873964113351527839579948537212310227028538889578677548581955412779630303823084656670928532173987582261317753956341257082101492989793287890288268780063372456656453899885000904671963360545638553699006515165832422691461248487440223083261866965204674038421110129481669010528882560298105911040644009853880996112460842808954360616878227344191824233599357826651080818503820858166889704989772694488961178161952784304027121219483817391817592445771683519180661579135268365446835488727714647972555114789370239483049062794094286881981346845545006996880223360054974448688007092078861085864899141785051534905309684277663090394062358188364316067468952871021775953307040467195633069119794135456594170630367011587619983062141548582007756753902311455338783167511348487024580100926449241166492968505084304598661440568721875674458678613142948362312528239279497229248184646494508303023310735306539288122695917822035956358966325228271739576968814128983471007696204390842241786985262688606602221071895608568059463366759002790563005315004572820271564048557894512688548549068382048681031446888407211486701917392297170929854375971131718895028896226172690761430554980005310338138212331760737500533807710462711009009832333308801711894423414655327366857020723421210666957391779192470940780705855447917719044401857162737611485860384692009214437516098003491867887044569637367443550438587729887583236688122573624392879277871940495244310004419046421803553542859656382284592716677992312061332376928592113952960680078763097850519556380030428730741204952430519790177500580555319025040772672847534862713718928373201614677198330421741062344672404712999025967104129444496510255320154792786660508494660115183337022325752727210809095418779184093155871711929866812556514841740393244076044221223174126559454139171749388420049031004694984791130580821704228242922695908971402638756192380765981672636262204685967109432706178013215553360721571506816706839313419575054449595409739847301517210552500416347752757051074316716602246490155699466190642814267542152159752876523462188626935052971375367274776780032291318860791261439691439632829447917494547991227449513940444063907047583722137206245963020263108924992832614004235049836193936524742649938351816857976665799722516198192500908227088804349463699546051145544744553332801972263404101112188426213405894457273675452296587880938849105566076710417565718825141117322644650561045860763526930204504116559773431691324684948973475118765684560626303320555740531692555792527610817682652362073945900401849491646030564966201824403275996986754189828095655658361981272192880321720900149165909200504106350165755496445134956666441119496947832689629129207739655608637397704389626599852260036144742983216139799904520397872384786870108393972353294955296684943476943280430838511874084496626518367564613489413307981787125407261778508770190155915215740363593934045762023914910723257159474691855651072652886399288375087932355488054274528037639762035560623784100794850653321858137267482390848171690000470898750848970869977292433332757617626769491074588327804916463821610874013283529897252259231463413611028925790675982757196909858926272565885808686974798200711702708874749636848361252962057431625764637992631907575947142902095489892032436272394324440917667169268856326387848652021118204574059256644135332289828212054109290668406713505390932837422566250033267851861862448625644328094577773138243756317899993768580436803350959022475292959169858584247273281004635611160289514062336315217956192372242868185116262068304056546300348238464011339545282078840365214833722610167510761492845021868136324399691405603780540735006969355016739816031977054858519826090556366657601199541736969072136299570864871901536757270372409751981701794559622742076033395687480105806533852492284709638125923675197367093098983115398295176687150127712753698112977384335989480464558999256133862370914030625645104327778131196578777702336193042582284129496676261985406269439389091013875587041705343847073737018948049105474129391194449510847446143456057147217097187944420941528900740855241437133606306436764980299271319753927162597810628247536178204371797171592387663229911842709394010005324432437895429477704227623807838401085413021571032687595276415289843678895155333336005548935443841887743806022357364171164939706009508095878892222217535667631626790292786050890003693180285587632698284658585152559941772227934403388960137748725185675547468319983474885456211905341241434847959184373545040688452370896650866551068207175098112460666411452264590712986199870289182206571080435974913623833721685937664851061217004869098801921172098500252316464015181593172435036455366526482080491117699691447323766762027654681650039865560081678790451627799114556474146550394105349462865777271635485572136925816623226319514640241712882267669964313766242609355666553898580391976295576595359241409645005605902916361155193250044157258439485134039022577597595902631090203810640239076345889503493299419302237737540548654903625486131401041335265062263110992374834925250645540192784989598292772296874302735526759084283542871536250228505964622398052663216268785717893767133902275642146144780324336289057137894904407124935039646750847885235950493391045103284677631413055865754327646817759751109971647532724233421888690644163866364825083157418719784244019935880080734283584174592364579817760423386225530831236898525750412721229974569660733617381459051766289202433737539265062074971937813431287837834295636134974380493377396435559059609884878794542299467379252332325838655920050628818284777465128182202831129661534561062242638655014918870357733817975924156057926256954510331517556321227672351795956179259206644043562411491607506960416698922339709885965112772896883370199415271487428770323990442307611566139359983514225630550687261920051019808150125766385309102242280163474634675106016075427940457034941515459367597859371302708499728795535896845906947689256544741638718329782397520430920025587919544918633379901808143181613420255161897938687354795304165033588920365225109711437312478767604078466463721617582681012108358900346325833446623565395565812882382209650283037100008129631659074157087018588712576743221079078110209349900139045202568993511240558218748482090325281200815886733256522937321530306470085993195803098758254052423908908685658111839785104379972721093427357887203459682264145691041063061095991055686480871504625452371362720954351731333433717302512737186452939399632935644350989907287128208475644517775402458556608920452365155448194479608506739963813293238583953954464492108490488770015911140431344109333727377203003121675518336902016986159329787461291738992238938874688498582322239276187885889812827035289929607194468318127489263007507245417151294160860480264555712398456848144613742719007774662402884404583222546249707734220064313234050243483812168118546769274425414812886030382438620857481650270201835570269170759530208221663777228653996697119289305593718030172938125931338998367392568427633787781850376109204098884622440236145634243667895948772240833636391746331709995069864754123541727248650390636257464262575345002530626848850181761419515023224853586734046435687926700146931455917867476465100004153095751420923061549055957017717258091352031598042924381596206981838488829539654990072813980490105771135023271968017231924238799862547514764604462075589257276067187831237549258354607165505212928276453309600871416047475053534578203193300480925033937550810740376345438059830761194297191853599443317275157584626661554663054549453906488155631695956004059548624299994673704031509355742095040698538742961476930442699203110587242174016979584187093256312339467191535471025162111167902820459097267958356758317234071966626156646349568830395052648453761449770406194547780812009341210420070824643258411100687876876462756633436348406098899154142798849507641559015463647581567800223737216568127379486189373844750303709437909491174610580636093402190086948176279526677258215832011215369198091013801525779122756797565428824169643866129881196669816689658188198131089089230212007430872413881141364224918508621039886083868460115741906012975727160841924991840504067219102964155088729499490080843224633364172200248651060217523639073416248935292659231450931416137653719918210698447708481373139936535744264822916189194868275996546168379263800370068947124015859288033202129976784625954014510071311654384867188377400557725495743145013844046609633258798435297791140171866841498482913075346292189101109352073724048663724977925865588915333736640015227461727195970866954514132561991067389673241289570698622954820602661866136736822798283187664185553537267478412697281755440486874706287222208242726757656612718276905677250527739206771790171795107287570675350945879040809927531155233683381752939648750018265310144242968674904870065225898968011777924362978657691930799862574105093235240091044066551612575303964380516432414821923663378370030919230513753484282828293335475139526026636548887587568964169179401759650100521380758409188564437590535495225750098197529285948268210918757926853189863532846803759093759004762474051062257683990419913638083761827843680085617190441512133295592622709289192809511636237704056281792810842874385889713109685238315788037142037509018921571069397978548391482743247076760194908233177210897517984879121012675524005079781453834594794557487865898185775086171339576999299188253452886460719992171194807950229133630393197095151369142525402104068433344868120439971186431261149264320733650454856347983505478100313802182490690528917231126359131151509755619389906150555634740925355751047003655661660713753140661671342078144532684650039050176749156704670519561039642345711556299118599435076172919802325907141225952743811819482006199538608363247696707624220432305106890986959250416792235631536678944330012555553289410905657165814256457999028560877208003943731210663415799759242061766933400709602984963719301956039828950955582245080853062683237292698073488361040762335694965120377332740040899405833564893530585709187966731648589693074717468977279401649467952150556374701675273041570465991482395620814756786214091559950797678930505758822706095805889587354296832958586935545497575980089858039675599909381250889123089690038975549605228078193626557090371220625880799443026356476829282399811278347624460951782256312796905912635417810394586444811014277188431219196403256617654424049317983301582558259527576323081880709326199195654242801294269363809033220204283574434328824552281246524147678296413247499932668788740693253465902525005703434707439700988914821527877097651681294612027549711162508695811860494529817094573807486671761656463299479973928129727026100182721533378814193902505489068153897250199040048653351380446704532675882008627509871254585060784313265863491445430995917315213964421215291094040870925819939316495411115234083237066441598487201427538846913464804466351201442086619340603558212373943122404612251010951597518412253913936680748077720840426857041419791141442950827486148664838978352744399914428690466011423193425102972248069133577205003694768151755568462046445061762267197454435392350459552829681987102991816691762740341015684272024617197937469888210736534912150965034931109540938331689499149193877039530254224277475831941290855904297084677297967483091018194991730013171208232855498885088583388455150856216329346728293185527117772168447036420968176672571730077167499681353810921885711624211390782939654429412662709377983483570226536015440126309768896343688205240561764562063936117709371484430017271251567625862380366923006398006746520708015511945688149238592006663036879767210288988087240431190530340413044326327560523901609747978986731752789143556664806701054022261897507226232461027108561515060886764141625537614837893937302256291988413822889388195478472802728930443584164625535782749665221632798330244817135939668952525805705278099339235768755015657841840490141654104778216045646966833306775530999540644242560684853449341110470544845986957968141950540074370775783772159018445544647295317093790840625461710570213574642122861348543488090701092622185429010849877318230929660523141862867057917411816093968331968406265954099169668795541423142750665737616380470884276155068545777683557891060938397718780146869494072444303633195077502237609475990666456214359788670501132098393368252840134005969312393909040615716241704232156919939713803287869771241924978338214347373727542420956107776467290154079052666475750377725766334318856281708325552107862806110708665770620796350865647421845919286612010986083468150218953182952301599855361031823333708194493485521405121514102271102240851358888028060432988947526451349483318257619135830894357394099144642312472670213962207350213868462901421542616539140356299922329171857109657388219111771987559138864876876794586057308821767680325493504493478078844984905121026771369828638616297457024834947841776428154340879053509667528786464056629966383355766852367715934725654161373395695686653549349049469315009064540831663877942036768386583142387780949668040701509237987009806470753088604031073227619130887959484253344902872848535668292790454195458827246651959986733220637184078286495399669027069336169188451871576081542268984908641460091757138809687069122094996239067459121899193022559758666475667907573836329294198643366562317247179334208877328799199911955974556919667407490979770955451938243027642427165282500052425091847785070136540361127547691186330843719474217384534171430859340942848627946798187271868903837436446110327942929515114831378866528454797271242311209887633135442336988305962202845492038444733923727548128218389013831601495551092232091595277376123686434061725554354053027334265849911401457055553698848834219733933603719929791009943887731639610747692821588488429822942865071388330419321533674009987221981795672487100413318670406921373944526298859455088745049390418626845169253476839774248009816706108828909937198486018773853951615179564456331180737347184409969047477942525731034307477208434154365557406507090356038198480443292946686727270989998709852987514412608135045789011950380841616612865771608108758771903715067852957358918746707507799113847732386594344019388830806506269199427247474970692748151850621782353474136227739082491259313706942658632248129942450002846118839046297251873454011827948778889734753401663863134456989652191675729826215202450990188911613945543880147306069349300053643136700890888838773133901970241719507025443508593042018676456896975269879673580232089273633357194796040256712060969213387736162685630246234740441949015885107973283379986955571327744847454282716368983074484555737031104121497932367252905055072660191802145849791436804210437322384383150340436169206672860827737785833266980703403750036426560567126581187507469926758410767360794845519457227579037743836759468300907194652082288485374369733385161150715105204855545136318650038693621731132917519175397641827929940651121595839055944798236023830121667493035743630143968043330712510618986765133659140412114366901283995197757650380792803526128455609619588100456994518821371056990502146272715691297090444626524738660881627544601147714877390797950279235253380869575187965150262508216134579058925703050766758512545041092617691003278841212819284711125868501121370828589758149253883577962635310032877599301020377543096354167621747564461862991321714804449618744590187472471499177920957386733888776771668337276959304094024563256843632952784018011264724686130041655160569299596542568291612091273468171005959404223186809343480693159931759926219751614402991298459310937696421571260497669679932935055605059770539249012676928236997833902451722317183793794899612297696969710695990156462392311951358647951544816663147889863355249775605127498771785963396413238723010276117096810541245036226367934082195396810830093388201220846488136478615124144547093257570970790637506576399112423995507368052214082937908113597299271605644178742775960819029130845246588375897224944407193094268299456795031881157874013934930217057566208343583039373476812350790974224336610388367738997301488630862334449429576992872091371402030492438745776083888880897050931679478839407490657647271838016297687684601474256642258148137641045160576978498932183616328101815952249529090890609591804942244844102930568229101853129492822889122918333836011538678062099177511016602885658802324489165975292521328380868523301120934674674136916393770698080722918054652813975791131269210506433167621229326203290752014602000459472568210707361733346164252328595881175948604313466281830899533008521618699008004938921824837905185537569238742160107654041991840792778149978169139450742273011190574645330321660512694001594392197384431091715956545937721734817684579482261366707785116624295108714891516532834912349885140751026280922903665663767103182476110819366168424276212349489099652708641570481254108727340250470653902805316706756964503552360034100252608349763079732605366286168052479398924990212345190262696068643161861748050991198198627574864586867524703906005083678670182973170395245385262479439753124056812768917669056555827988365809880410443360980049300894690020948968971324317663404466583655199676603864798589337313148769098332418971324546094803206808310296174582923474909042179175195315034701318077704458607359678229151640969764186613261838482633456539427743142259288204155081013703601451993073203854050639152984180788183415485860862132183237143829604962435701925219702099770967564979426675734481842558273060950536449461762836695077309590305795955480201255229302398018205904817197457417089539608674280150836599074719218764525115397346925008955044751688808004081319101000209756364441193818138048830285127296239396823321379091958744406510918366136512685269038701726441272350019133879949974195137886533411027612713474564143800513504360276873460409804509588182205943760179920458412005384064354488721398444671050389774747794085326008241611497123891776797995816728051980085597681062785980666491027552056278888416043813191944491398412702208223655633346910989317252951261630406150888144989736274155328886135520063321547516495259659805390548352132789327475998399109303447821839258135654735865266213561434816684731112578333572165134749946313600317049244394724370119998662327965057473567037109330829827814585472382256060165028161046681418990673195528037297462031712020055022712736547467349565735038638312424626716609952265090367572463504832754503380027419618561262371206923144171254422850400204649384580053827488716539521079394250225320465703116567557546717916995321293281186610504228423707316069224932819011162366740167526739465843407476340240309730008866948645261795955953225641210736004259198891069779545856916933869384570459936889646746269859315110547494566325520823782985827305041709981585399882395932622385372214475726234551145337325616322240163265974622635650350678591158662052687477188618642112093396839549193485459339938017073928919337317866472003705655139128152091462289459482092205915606767268076108133229924518227349445606978735361548465373945803255282836215120647359426141182365410508801502821240373685372902482687639077417204782418609694307861866462828457111176887864704267477646172690255774802439036736608846698971302528887510194310278533292634923932477902773583934877464942079993250287084102840433651979610816149376036105782472124113885039694210041449091482552791634686611621118595348922369891417472741665502193178392949703585461139987425772496902944172288733120897430540028580797523619648783244396676305839275881603543046889307964304945907930923567744471984791371814439578679256074318590144297277038887428135194957889124206296114296362634406753588948765631023855155595406267072203720362254515942047250262452327614178065105460706549539158728781756718441035626766329094491383210134801851129133142901647581784201752877977913196316274705021231147425047251641725388469328345959225600671993622864580206387665826065580429129156106193527219098926347520166283188161746043327048321295210487227937102673310018339801383813400810607859621359443228439785724821266659605072184028016353412570445103077422872243234006965272782248058209081499586192996964319809809962344672744288566599591345579245899926142390365804011650021690733290774564644906461011884374674610042300459546875685876729074574835784856380526337661393999316799751842653241272317400726437960916052549963776428854213473213808136578800666831715400296167493810587481033609588171129692146023504071572156951627202054600617278628964659461136244026258803661907695791131208395007609321279501328102425457376131175550697812275243845107968153909289811700255184215409120895693435986666240199021307023961727351366112134702146725715004087608452740350818225409795123027704541387078113877877212035506763286851874094143117567394529221601546632828090388336181732623369361100332214898314420173472697320262181416889451231252440929145794232061403270496728688028019745858399153094176326403902713198216910810280740685205084834099190430810604443502351373145440366975843553482917393774574335097677869289645861149845881091405226424548435411679718351616347351403907283610977383000342736277635144781114842181134054823351824195269991490492433735997914105554317866114197603184996893008123562703877778761074433225043806468691328305597628053272194486304497880606130366556187752303097644619366676287092992476023764511182473785850008851882952681504957524172850992686220916588304867855395606284836157793461974968322734224230567678619689546151897682044743499842635127823156514287947092542601078894572113333802888533605510491978600354905935291865250714264459427612009481428980237260637622336807902399350413978734318096557633609226032477368977807628365806369801891215969823029397925816429619859009447951281145121049814297858790010604714159319232765388959997469163212561476962279811424514330170611838470860807248764390536716969164700793920329556310409815423904323701505450352211093077838928751847826415565360003019320864866553584787622673046621694507487814049878254279146316064665799182243874629368901463121929973169209171707408122959050919933930287858285281496736732832795086354143614551265908098842022419614195916757860508547418945855195322032623385101109279217256076767940002590454362264647360862309350896668688185766702823667431627805001538400689969560448180729863424406543961897925418492697534541540249377237114439901689176846301212594683492577640367577422725183070007414038337337297538486056295420599542705569140661333416634899317224128978703729909645945992174674839201041425242219932147520910478373699344320078026918555649349293517872335394914826286698335084516269496132133941653709040735617043988788397579511360479296236217440309401302669279569909833883785529223005230233472398953339510005793751309958865520001200041076394324188346355559447188502619133502975304541864782462640187162044548840428902515252793632794880742887991671922150052910844768716576728353126950268687289969261906778222458105346051075531163716600152081310954891400641598528756854761144596196818619107524209976946483503602695548324446576258898733557763298407884689550933242276099640645751655224926557633199652382367822719196433626820834438328951875933529855397961907576058241375063600809403355960393295494562590806895053345026634931747834745098328273674139227771465818511127090800421716288035923817119460370109102568138558407229492443541872041801528785735156834366393800948245553584944629759175104136570424339537386912316084906787195384868280360481455567710070918256921729604797547619550180838765953423075731441148357343515203974528245783586790645795106591080673853736883753937232574151420779000108242409141716602414058983199126344148070634608885139346774839906598463500045709728962772712409841198629246370769493887845548982763622403965198490081150815874821288892253614913038671497297676164918641364075384207753517604345491530835308854687830148504225039127237339251094665547987840855822009990294108259620098176095576983859742158595427162051278572140714729168568207521691489890156619356513309289028284894083745356260295372844676473440318801976460885971747006525262976617743084474164309971233430926668586008135862211396086007651640067706268753917086138012021501598404359746326274993756502394365213055120571568547287498449632371899657488174826978058354452327466291526950341084189133050423099057839975595684298694365902192404372074638420634086818639102493110420635020862210478955778776285910142776113218885546755404177897891432022666241868194111579133122653248066528643264054596613395394296915718834557893760248723761928824852293274417694491484208414502372281903363045456087924915021716066211135424761351372519678333912439988467557361905736834576795191369244021429828979791141081287330921679072328137907503307031695839120512366966805373469271167043264066358031667726207345654456466937292999467372665166327172649382189758506912518075543049787014369819707601384203539578893670145805642074845186115144443961876918067666482847213878540754905540873733756178852397318002288117333463532681721363790561908021760461424497320652594579442559429490827980508860868933482343464081945079345345577769534287135433718277481527938487682676941699028979443291535258002355708876361035127580453460525005476184168157399135800535205743453286930274492705217003802150276094571170657380909466918813873146316695742539347336484391445340885442513145116036691476919826264405874720161762897222211989388356588498496065123549846663267646582439629071124260666862482331666047180045295326437421675151672416060711465242205230926652091374273486755876744534362269051936746989231215695579491223608552130815269570654497117102807614611502487851480026682175964734004064000815279004894478450032500679029456936387380674224947358139405704852434733636179486609622079359117319793073277948892671684958120912661701183244903315545779369234524321475627530341763655589781238925972045758029626335115574474586106703234397522893135451776311021012394221005405011822241562364993793043540382898386022965737226394441793769842846789816136854198593577973565293397610733418398564020454162051446661807310281008381255032116467823653633116816100320448129134094204688767044665539758808786131717924358533691840524512452127446335145073186016155717514628001611687629507537778580550467164303934920800042712833390099698622592464296020089852503389602999569973005464453303503502048506209975138649772271486506061256832307222999226584934547904112077684791419141299577250975807109172106164817786547301485466759153259133538164673101321514893755434166489560181027464154136622671235105684494422061483166529445743940511746870835708467716770641815103421698711894409112562172739198999037770288648510718150588170637161077377498992879326904370298460379844495498909582500513894521765891056410043165493663783524026346018635938331180517933096939737359618000642400083663152020367281648563959120946267974502872902714952612310824658688272029814190146393020982818109768268459731797822568789889478354257350696331231335646110580629232854960479350761667856435404880916720063533136595445462786563749109626784663842255820273716352527152340833219167705053638083064191354634389140387625779094824029789740423012015377417212186700959505182633108706205337179274516750421119621130260297623727322658417600514962507405030909441045258612954066550104130254335771015530174336697613416239907493682023970267227485850909239193811512535100444176134133831073781521793977561180113272854945365321207242514749550121526718675997983966282125721296922710403862159257979815931165519657876592250241463937309583649549916696624398482338371260813793489439015113990506185527828259677201551122138840655290890856318171217573887157314808097525285307289062032949646456183361765986469990510275680549270034707992424410940284059541147047125413044058504723977599538560931041236031302821374687521097624292218800440588550580784686296753172842294150410985914711430769363256995475100151153049019665451643174568649393460586776623843198373673948542193743674230672805882084199893818331616055983719102223949728992005078544369197600813917682465954058321618089996219388700163410469662021406848461859726194153795556889344439599306713647089329643947677531470824186958338494633228581585295104505574137084653226811465899595137962269219007447884473034992164880568678715936060208455363767589582889262262177953345520782107659633918634106292437165653695101700814153933882392317660372548249441215718104719805558412777522700424919449014292129706276465722744434467801090922718379152133012563566417868291485689942769671752494927776224444770341330516841639906501855044455729467147084729670807797251093120166427663929218416379810357690171309527267834054660621867746292074456813276606978683749159811717831591841193844870308157834047585893355064677516895366859779092947148885427719960703656796100976858127257057454430496240579886780875016502662414170597192147302780008603726690049256659774432497101122484910368255644171679338836241149765008685767208924506226680545031219410780711953792456364114995086329732569283207818124052002368928635289062214220371478311934272990206273182746995355418408369885428463731278194407995608158616680878099810724893956286097081840444584065929510367772036525045590082219219619518966774337797368951897397129249858798634283674053228258110775110629362801001654583082747159466485385544528480696824266956077769475259741887687308293321866908196623301697768560745356643033015356913551392796743821005787916005090068562480437422061825469975393208096066053491455460775316766962696780573564340824095510130310845082173046217034815551416229555235940624526373041468040980558349745313993213942039749574345958688058963466514035609710627824696076223312720018978212120480432354299720795791281055458913306147026141038170889868826576153547842671435086848267756574777468200824596907254629708689036946577245243233867170184257022890092914581935248296144291260437140344731132921333162819200002379368054745326983446302194787601488012338299630138509234770998114359385809078477782867372217662077772054175580290786722542322826574752931441670929018635691624725631255849281960716039889877095372071443333595633876493247129151250556135540049739380125212741599990649098826542305412253226269966855514918750630177637872082976066549812616340598437290200381430620919906358786096640217123116924323476178950363124308765801687139846847791455654544718665057506102383303699617428336326296305270582632921793809304700932851020742723287288539140072762168653061960338021403008327247982326580927011705417703817248177991736478558268390466164088570787564612786222022190928340419886430129604742254328170078371896673335579010254825332928284686972430191140820153941696329065783175557973835427612652325758419659096522858921959834585685632486374305659745074782153636565519635899967897627663654678427480911253338827217826769203072340772779609837575315214804862704239574875025351941030096066759166080052368871299729157814385415771750599055571348868420320006463601647231234755828119348397194844684682897609468163240795969637693143157729863379722982876871954115682298463695989732454553578692176350341330603012127985432199111275884824935133041908936432560531431520630347514645234485363439151678337260537412012413569701045229468670082240160032696330108809216269354186001919329722967603358638276543691355693583311201454690500246712104880329149667081239732189713345535158362012493602023647537842156836187795288721242354625516065084910708443353015179627705216168190527746527166663660851248427889977886183525607415321977126065836839606101745606059995005798331827546128867985470988676103774360132841454770991337525148922412720336316806459766710045103900479510110771175572146406034933873262296247137047272111441919675651749142292182540494443053910088869463557670168131442000622468880375700466352959272314926878767182643731502805847653052111376865388716599200788705400521405220060141139174663973805043127043692393884101581221746668596315542306543528527465956827692266372020633350189559320027314110612825568076767465904648004657351835487491233873230289690008507439212271264112190297624897837870446536884575691353255809714785016965869875311026535410594540093829316877426378316231114495512907361225754903722621339844916961921274184521255048119705250227118122665688404177485849225739583322106514716611849129177462487651184819361505990840761653171440167467687664580574618251914723510528343342723143451326878398981311925135630364816344694285571130077085196907224199569341251701280593834100175771738517338755092473990984620505470198834571530207731863247318229809725153142111135442967562781289796998968961825068801384642678609969630372981732001414999750100265103127189447484046214187996155170566873679348245475307261383774188009838455458357762198477534546908799643235265782882143179354228302879321348975607042110120485767102371543864912440298327158625731827260112579990551882612525144179586770959842972172993528590424347344702628757537720706351913370571128242332225571190470268287823803649788395786625916492166409161064991542821992800078995338623642154886693618276747864905325930309598560048941774499381705171733618660082228191246606505988480728892586657583949545371875975033664121483422460292354681105447861257725738780942566226248298345553401144643866564393635548585716483727571011862405370163349956628369839036237038762997002248318789288446933570567942397127499062328064515767520094001404702713469298043742799871276576370698314875337380186805572650888972967734281241943793285892133272591659336141084522264144204884202685525665421391793439305445589297652598287701865631666926943755807889863806710340530457099408610886254179283245374132908928657587087259161064331643675392398034307869088841694517335195035903497345382215516631494704187683142586275370422503736462713198928965088642808792718530942807455569118920853430828670843370964517341928695845754509247210743360005158145181553270602685229716290727889070022470826088131686263680590293435152582713285474537660641838303863813911250751016144194822683715532707907599059417528406948556126247409906257065090543110650778680005747121281557683382643471339395400241618550967846921425056531605700673476786383506098644578135622939484778046058034411691494431717178943958215249802275094659768027722739850133371158620233462612468308835984428744174386948683229198874287883053329814708524793567745965348096243827284926146509932730478407245516779867956452711095252615608375293777831734596911647871685780452325035694809458903597439191411181901889988610587943254430507520205795187717216809677077383075303384027624296574127055507323917955446822629070178808945840867774131201278983773329685051097946118476891936018517792906041808907074004775316145938528647407366751690146236251888188857269002726370003589391220550459983349549713946441092378976312325073979810003401907330912908201155474678974512394317667134998351796947297295189740314785358112132265340222808186135981221195178175015965291639571031382166250633319522410796494844041707031400529208682459318660252399037606219182752363499188502413789439435926412599801966895593735831454645912002891570039530240160332242199055675154772833119699357348613116812203696334149568028592999215195609624878959898197924385028871108855204248682504826812314627175330167896107592907715249925178974260208251772400944654786828722367371590388724263703428242101740601324843463542460044854810626935393425325780766568725589459212147140933422338321845250973278983111843988586595900531369496383444477716266507971493131814777674868761915217480689739638194661398636354419342913012001708919017474186683813802702362827210759193430377684587116539160581844768174109631832497424053201206020722475086282500092299092346992176258562688912950586838518706951426552443346066825387357212886444354532464072535068194743955615963274776928578535837357957077584294419771516225555742186068803842568335317910846880275109521126072735241093195516195211831849193449851194178871548813529193565423805332666394180898574421387600835277631112726115470512178814585982641147687522962184862206902216672737659909850423691339623060007069867863484432551798712926067468931779514922071179955797429340036893568902679394150797098870499096076825287301625163653380338898284326070871235214928170975371319673874702534365446784281469608427407849929715774463947541157999683856081599222707369133743431526521577060367557633047524022483263806529409346951509605226175164685390298583391410119862718299403493467449685562437795394941618714430026021375717351983706006261946796195889990070730978420232210750208857771942124352653636099972496161608517397026619326750623831885427753257459838737253175222356179584078444672018091095744281500791664896485629282316815964210907106920609596566134872009386265244132405534569944171177854309052211766366302058133506623079044423129093652649667034226465961384288187167439107512418019088357884919125229529456088452294287586052358248173828553316163346460282138711686594557078720831725639953089617373614471141972362043016248594012205933274985120048504313365867181963821986046710434979610050017481373229097597807551125079965265452395083795799017751675759271389123115101951049941646981652847862856821775520894544903380963276718481150861886894679837312206740315445856420044907672621523783503514259359596440560713262868459042991216362648260143933914809527737194657657845575500367486547374743354376378944317703996374629464452355807724500852672635801557120390489454448949539189995780749929535023758335361605978309451935209904888273098597283543920345986681934743389150053452495073196391564233772267398900569083618216641604725994972180012655299488423730967286585800196266206855774319502390091268158634058218015551751823318865042841494589235036737794549262454674947739073950846993507348978801375558011838275239395297910043322505176303346171056496420183328380189259176505258713439083453379513286707039248028443019603040288809896904809159169448784235467572372866784240534160199974584455393270323561587135043077861971225412041076462472424222934203661304583484604371305689351534548777384456235037433082879270830615703802861924664144207159943862186873482466924698596375378679912924720151235637177823270057161572377809000581344570725568717138216429333955696192369699935571451005304041408711521551321171518971222595457149892222956268241143129085694864941269771489010255759266024525722795142551088702112733182756593070032044507745755927452293972923637660535607071936003978002914960153225466982074235536432934626261206185816722313025052114816840732095218049507974166491572537962551262230523119339662075711003142315086033800938970398556662988817029250208264570562162869373564222442840453496138916484392889065728955482572910870100226198742361832792405905359020204077628255839510769964268357307151693833380147301579857167658549047626123571607426344140210543802586697070106809796019187750034952942865487143639913960561809914276291979890776356056921693350496327541169476365088768951827488308292326887016336850339557182352564436983423262785056218503568318417643037222671633961961157613854464193609337026635050577790066457800828060404249058341127912502783674429290141669753477641631369571697183516198647090363456723867212123583228969718499916049790489191335490700840639987969736439942076903011318258609832186042027622743686529183809964213166717205143646602039243968951219062286833151222579602503856091862558239501263576473655767640740803930458928322699005740113968393934035068059355463784433447207070055801001401835323056956132412556063171387766784299109473734734995311760049089544883109079193978434064739109074364890198675628712346534574003390554722794311579879616363101509201360721029746088452225879440637364298802901814901260730314640090593487600423813662470429930648943203863583719826472461921750354940672425587715744979429551933184361010133586409088853830048534324366105348566234803042857599411657901427494815812622012986172271695899455860629387050338817696446319415498892985287286367478597559760823923835518939225428057306388372287514211558049714061509159384232036529348714765921999576724894275234762725692700846119724457639340478758795420400118771529810786965532782262503259458813941076482233174573863764711896842285076761987821319694649471118758368287996174840551740431200577552350444845567825538686544689814644080713981910698527875757262591019507378444264367043951799632896279304885803475339013489247120705107351154770084106211494438213540113372391326343822643638789601936584339054987658321179959457776257753378914462105274166616805366639970459635799776327712102060126849030601225261222737284461595621922337813323327284056706872690070163641969778432666529034676602202244308808658150921831773743355552009039344245237414378959629031637335315831428662491854964337708606155200401683780935247906996601876622121597935422561242412647793447957098124243492440411048947480158862220298864915581088762290432479910191428899999190821602460844058306470362961605534737802899903867432453625763903439020134771870943027077331457469039796902844655612728055636984909899085773098448574114306322163405134822003183488593019010937323428996070293837102764028861516986701196302940252059581632145827281036196876294873622214989907523969357104655536412472425499734817918598275227416746382402809355911483186369679511644573199951010514054359437874650633019416171064324343909100529309383318801773087520480274586081997182900024448453496117193895133709787790000408648181407628964669031515925965150786522342614067631068051517210175454987570154892544349381039138860086707943305408975016954028022838006495331716553490415216961237704996286686913191295893549765219191014986391382004791141744846916597479973420625705280088760029022751912540176874829746732853026219414156197654641518710380065440059102839230479569731129243326300518097127079373044354826791072844365281093907708532331894754955096865666515532481257339292621661436633445680368352026331343145556342738804183338982717565147268985511124131177539210624897279698742166581927441389142161625093443461339749310022592207928837202699058961144309929823194183716064712580060107986579189534321937370791422372385837855751743914859714088832758777229323260269376094564110098983832961746027616325846956328604071110249360110446351228466081340910259947629394035198849775546079191986878247223338025760515727851328967146831044780840792565390311928920501324876334633100768272611445390349780245264521176511649755184110127416672044510624192403818529427841862944717776657987899847282085804639267690188086994746520465147722828460841897971981433946273964245117531100636721927717338038087168716556406564550640770393937380124863122159379512861272998089567462917687398826312973954279954485632718141550623721296369376956639088277400254267071031676480073992379164808963453749358970738941267116131291277179969361411781212595128678374099191581860534555345302742106998146600121910066669523558414309263348870976778288933975622386470976063669664322082500342941154766926921097124166843482166192883942591947902598876158249595336754756692014560775804879813663855653373805164867362302333414918471348348068933037875097578622929558643523966611554177646704424626970977057781175199781905399065179214244508650913881033349320804200701467589844383916385955734542918475547034028305747332488187388425222707400661877811164612229090023692415268628051149016875314940898441115854034954091847325141866577466188298043787720348009362800943827838199807670919174297713440958164641628107987774471010083892278689557031565223468185672421992091671449097577593189764365807760055114960312867368928468399844047956783153369376928342594000486518669736779518458211286055255916871785814052431820247997887628130798706054527646569447246895637353131721974400543287791916854614741504227842541984724049680390230223901590565541818696399539587796926589513333032119974841654827092244615725191240210774226774305254264020190243670596562009130636214905446689475626035245115176729632944488336009315296765076633841716945641202146809521117578770802625586053463769444800989222630340719433875813507152331068161141272879723732219244153960894626707246927995916471164713515425164107069438622862279133121078021330316869398695159538824628331867014974606878091808654896418970201169400723445873282154611463524080237345029125126195259682600593072134339810500396681747280157223564662875054346917743667698109573459583812672776688928097481620520266255945312313470904492699049141448789812119648210926427249001260955701150931172992311679483682821516399243067609503562902350395751753129703822054081692176685625775798404492661080988031637775688627738547752423578594910435214571835611385246086544290286680462375506869243213333209227558665942939529184795629995657595736002682970712950801902611887740061260937427423587538642517828889621676733044467615787336496764055482420675306104890990036456427930086789660242484699898973262959339009238798203527248925942585784673670255051926185974095061139365267320452727368774684069878794993025754086389800759333181939015310173718735349039465133073872133527761956626632992301060262444661136852759831150632299999304384001412659550615396199567573278048461243266028170412459946167225782876365256893351620823257115371826836896888620174235789324161631580047515781520249359262479929969476266291199749271655150698799604883642581407700850353999578776553411062268827411525553828061925987967921865607561804683486032238008385926951323526234174591075752191661819444008025062824468371122505304735596778774851043243030575204856681377703752388647839885287979153500070509773961810968470654688461075321311401587408902509063468144592249266607020016845281497584621310767922761959356611872328897504447458189057515802430590852842236147920187172218922004456576392659625542083996811894012901926065908452109991947081671528180539504299262087962959027343321776519588164746269274589003467121647121631600843353360682825142947543518521654855451364259177000193641675599448195119657865430464458365732138486469462121893397437709453552951018751253764071663359043362932376604748946121897383097343238947451781397941286919504713341011554936293781888181959012053605125741258541156750470000557773249818769389103705180966073868720992414538333156771240604544108766589664813393602193465780185103871961106012695803939841858105364291699900487162820552876073954485403560349898057020468546239015073557473453731742784009785872137558879140366641692745270813420304582631094479220791005183188711528448169591665789813006638623207133412997482125893663900244334443068766673581028458735938877719379736093975854103848843610390910012834344489033559957125387424208849354626223417473154612636675850903703079554989047135715328428842635583763825234984991435558715711504123851027241068883464307984617515774966752938451976577341282300704807523641142290739702531470138085219368600561175960099302636800010138809321343507289359996116315746907321595057357381378693836314731558716877165085945446777866262767893915066811090570383270021606374118304333070481217436957097549784120726693041827490820417300358025008727057405657777714372824316688613542797641064389636317696609729636601266447383953879468015442263319927095642776669279252594662704388227212152733155420730659821989943482528704010613134860486018351594462632078879115327216117792014758401222596925517519959435272122974253163124807088158972706144829356812481689682745190108628202965416778384092132449699415417423907767401140847940251762149511090021843425691145396568813713010188262720967046714736387813072798111592110668043234359861882850697027463151138512115533881323175762362274167359904132704780662082315378729630119822650467820456748711528251173640827692150092052122030542472880993350366461689876832911435215371378296212350478703059894713619258912522373043218641942466008871683177337469444706787156663609240592229837976709142892207594322552817593623143838412591547374448354564986782674010936590881553690607631202974246337603278655520577435749432256263669880541307879885717314941223662512403923471837469489496261875967019477880849329422860738635608511680346756620751827670855174162936161995957605139127684485567346826590418359178290501082667156511401248655824865547012438551375411382983337440835625948099122697348402397293858993239583826262955402113794302067216839516351325612642779276008291744628087437621689884125671056380158838125134835616682495917436409883333944172744709758579153512538456207725221031845389084123786418736694680467817128901695438825815696412610402425841389934243717063041271379660657114591114653212805668320753386455911611381879018463235753114830357733744755102344243962745604666759613629286237936642715074842249715894930086983818975467984574441572479566778426100431601570957476425396505928137724290458768655711665549602634145786844683099664412881700115853265332539124766901314851765534092145815442727748898986606187470925101693944957295110813934005641579913310027364144091854553851423099104837832814659428551690520857863210237701376837016241920068954543448988179513594903006572141380633427808739435614200076973851444888987573435528798821349346730711510694375114667052747781957067817301473906978146469585968175952884187289603912094856858353222144101410263000117921472985141965234657233590281560589173636870501783032733638636806421571907234280917507953051242736687057807617035422721277237290201534044077410863755262731474729070608178092408446831461558135955173104098705392309640223749148405479514275230602991869297586573423474993251207008803249821864235342587694532810156718363371456020337058128920703821363170919060242476208268518480581078766950718098368076124617639657558793425419712199394048778791428148817330736790777553565737971103826864208610600453567681797837091554118076708696648803321218010919132753372459512132624767512933870882335653090697630919909317347205807838093545558158432733903030875015249352950140176714381600461338212941813254682133213416923824770938224979494785250128870891970347323947705740288319503942896963745409529983824285422111296839592519581350690753734954300718142860024197650442363899436555609295319602975730869505651485530683534560887974861949146246753192402308758634300578599399296704688624370088178043803799817111792426310198166873972181699225598143310148579120909042023998949397519406220299708857231352553474848441827892727372943871604201798057272346651514631513045813368179573208694322952359735695978024737629032183646379019814387055625178089225060024187559744066962132216310687561485523598123962132611018425780424844703855610571326087363587937170979576496439837523484729003539831971974649326469747457032867288180870349239677964511527609560575738382936093194908605939194399402707345709656163078601515289107729335822159131300933657724007711422400234358352849392179040990261786967609652365543745322240348048445216011394830380088975629658539548008429758346641395440736080989453239160343952104303899254646898819206311354601425625338802618097812853734098505683226597332400997095138143198733723209992457889520460754326329590412266642341936021663073419609241981042110880671984389485684766039081722929072346460904090216191816024929285587770194870219911273651272507472063009506091193713416943955219715078698853401863188154539328827755913391518849012066427446935923804870959912066404071435800955272621212330425095073348269228533146269439238689696143942722080332348197569922560202915494970587426436430799345418484769971944116346531702744784957711159215508737321901278738934926777323185475524716594015074296193956531189477405178473656375542029802862811282741198292350838554567668994304408848500422824334855575729563506863896902602898033649054849429022942423677799694640639312095292738674263412566822117431328035861725528333608599335607124551886220145875534946542143313758122272133641220587696070514759433942309462416224928159099609937316498858585654558995236008219516903784307024035661642745034578307867062072672936429759250242114900434321833401538961156679374676416020501255755834490605901330345710048377397366093185937817283506034966254494032402253046986874024014100579815234133459575371595772870742080976247471654724082864364138050643454878941504827835730522096508756337570599267297769193415938489629580639705102262908996313458535577293921868175589333107235422012545389285199071073298365499510427909408150587198198162670259457814944023725449501031637724504431955580520845311463882820166030744699150174026149082186205277556941932268830427953300234467173087814219998820533194727367134235330970935711176073870270395499887918720777259425443393529391671621325173810337501063285976326398674980765882106233508564428457674529336052570758453344635875848538064239845587894122096267250445252158331572147005996426668239328323952385086338302216810033733402477595224626743273768818904415756632748260182060247843672040747408352649873757326958824410098799848574208948645458191599725585545973615579901593706617745060029597612084042472022965423437344558266885080186259553583667937984667811375336892180479985137464179292102006515707067553142918744951043831459743666544974219839047065850216144839423669711445481632015022803645303358253624509204389081287628875386868974360247469905794927484646841863151802749002531689505237420912651404145667572804971889925519528151038079673922516679752116257096901916339522352690232390810251004916665672372327301703369619841929904731810090359132406432436083460665210509816728288065658330545117404925867435811911286610756752950820007762737567436633897490533857901489333657869184666752405471779010469398041505447665548158700480978349955805748295783339703590283843518552945302427243958283243020423710712005473411675268345366868942287553306454523668745108275839031086359933934406086237150416699285976367754736896464298016513958560534812541720783187628397556375382711126923012773250135916329507219461936339260761006968394344321056595247001373189847129080854455418794409038658863328589765740487666592745467445548319787441797939972836860450008319417035390907662647524775482595340345149789380334941012110115131905187499573988263265973892489611555228377992232930326745444890279949276273334241269175529121952688669220990804212431824485117026283536303229120356186247503346651097128489835586291121226675255906013511742445149402157913752554564816130736264639232189442916403209425547384168889943341022844358853660530263633906933707812839068849576965207720710424592801248377843289064036339960661540353531696951311327374756009522218900413240218230212668492506200239445414711307771543590201111624959495068738971911475045119056405042797828082034485180340626336751405377514594779664495985761380263577857701646942707260282276990063734077747967134706202056406225466666262622730655594218345077110586746210348169668853424328958996333573966603987596755088038719215810844243507437074575593090661538234210516677524028001645334290213452524199688195491035566889571207928204744037077637524395069298836663922973070477341899819925636348082160296813112293791616627912676813066505330470928601273919010677705683833294542620425602601893635737154763060548008980662842645723924313283983392181050708109696004937831380835728116099070029186382502800808153960699458971126146671364112910768878304882238701258751571617386073554259175093699046626903191957134018502427082494590896300606581102767531313449115617822706129680937060787655754729971487516791444099042446740678323835739172499331897330838344929309054875766724321753203751581227462579425025996500407623400039087490661566942644500608918864109299827333987707284226697658779753391546466538024534099836482917070029808606861092469470219491806035065211103865805607379324354486134990264537578760719268041802438727313915424470568881104405174668437329587380433439978224751112371219997750654809622422075560113535037693877196099051989536405526585217231547852469990340003834195293837539277154674604494152122122483937209427974758161512280654467017761405187299160362050600618453217754410200920315645924239637846826817317061453087580293077662489820486119726024917939898924012362791631510678838506763943799373367057588039321025655691611394112751386335645753395511985703535623990401392782555756891766209500995383117946736470809817475816776872706218141161305616764327718288071862929929832667491618833964409073472260111284259981787773957131323534822050798936711211942282467101115989842195825690259473280968648939200694520704252265814843074604208946535609064494302158449981865633856994081708749285030099841212978493139933040934470045191924447470254797506594813282719172465584138040002717053589825108813775469286039301587798436668605270159760701879949222827033618615115881576306417413037904071355609657930092286545545829093379467667222152462514831308747836946621830371376257850406354606345373645491380162591720211485472570148769827440035256073692242857027361439216710803008464841805159501093971443818125831926692402347024465106036835777518959555633872143894438513696339691264149787847667964818716704622453390276480051435176805814216496458074762500459745167180141094193837765645480641719701341575540712763861900982203984424428102133504502769068258419133226869287197450898468663518159640246951867003148047071628426040224916635990108515002927510898102657040477165184743921929444098102157425718882764651590083901851119637515656617197088843392571526335624094524243217312794094158717505645832409950763885559130348723343320619982726882116375092895191126498084920851226019024341700890258385814458119928172908031946925867973067701427055333553069125170510355843862977464278080488323820524857829799600014769583449811358141475127866708494923823767754623065771330691945271090072561198478770197313067219852258614066797879283267821047441314060510721689451049845902182008889045008569170376317401271639309807496522004265115957801821891112131062550882843061926247302684396448201965109790693442263849992787088668616300666239702370217511289771847584385799293533573658188275331620713264875262556531183291333039581593242346115876915508075137402816412184526188440148176938304710937305052431588117949211654643323238272466152993434179230106424689094903946505543032570874663273055870524723504973948477377430227422611614394343040907975084173859678551197383205930958518204132620308899854357256466814485253929773908960893127109862648271372791069643392007577259140525048154457930685452095765093020953047393795812898128950163199619948319307195483560135305911711856814653304544556997228999230892139830985371049300297924680438127199278816237570331238082537391727024424233334146939130446822091358819194951964968354900670875521614643900457770676526990124678321018186122464902342402013712783228966322266025343279562324458197068463476912170539281800080981486363478896020027992673801817649520904121969675181476810701713843924140770602728498796185796417656988001841317732401680747668512869902899025988306141082373866115086641210680235159058102647450063463015394970409630686094671076168905724629945840454318761149088308512958812257777575004346142921552215484599267383134689686645215624304807238201137346600375681361254875881018886489038396226608837167607673350770201170794310354575131033339203462314439515329424159285931716886229238115162458054431253124322564187488747831794077565340338230565530765378416353030799789397378266118071141032880079161175890665986332646522970582057491198510137057520215948684363652691297304670258720120910168172172030994514330439233706263100281386048515233890809792818865522229578336272879246796295703408388297359581211345833241249835229729710918347862830462866956485915515507966729501762649150328978732731073478595170508932104568711335901005501301353524306313584279892331705869445353356197325707238043061516846269166822191472328634198754572197470524301922281259337114884792811873138609646202556544436642709266250611376187877857709919918311059137086575046243583943218934763827931543244145608465303174747782386247587896195422736429480015814583110681148136974896229637279302046067178976592272802899457217283289970555360852202471518310733935967662180138087938604602468792331840777291450327960392441670066257801257037708065323587645256048251156648923753718018082680313398675681685656473287483013236474726509659003523850067533247449398841668672903392984966178261907786165271726357853493767585967365330061320280649891662643976973825356280100545007791965221488043278698279566377586564226552410998563103399717958827772824236022508340981042550140306441818660638313120950302522667306846933620316098963164642495425797515974124837512086702104748241786666547933821810944644494316636065491728735879218540963779805861131044062161146042605762545060755362027494636388276266407792150794214242546109033314291513413938526291632638602691542972726192520096882819444068556122955888488444361059740532151325675947248364477813483133229930959143187732329148335997756514421524201087843233762846968235153741480580405913862588903267530843284443566255902600670934699166924749875406577224781737156393624079698734589578906946236888303624442527478436969902375925647982544847222971267177623799914318838375230678582131180923356574596228678508586546306236164422058841262617223110832495181571836574919419684162112486048661636629677565617422241137859398360748595880655816387673777070747830079652173630340521769008580721377392727974238016123072461621165342982460333227925126093933791016615701477707959328463771593133100727102687463273120748867106915654403096135472404228232119023395679724177458124615150395954321465030782145110859031412135327428216981300598998304313131171967472737969454600669443114827927133962282383514049249382030534535812466671362053439180534439617912459152906086696391592578628582825458971609713124235928031887644526745266494726588281579894126867507415497568467538803895504880819887913667529200934241381004249955450438316584460503006623968880798391876472120442363361426352188947640552043872279680035295463036556574799946388002610073827729947574978139788314447511812038605058606774072035870557659760859958146240351696365312251554655652287821992245243166487782545707285607933792653064031952698749707900267283709914720188142618369136541720318856381667703912129587824207325635589323344907124750438284539136966294400437122443876784565379225716103890761692911915672793022278570225872235378481578599705843280132564997574232664537037806473267437318636516424539484678416777197842819004211118695085296979023393112680892125411362297875168307179733008530754437448062647494778801929029109530111210735314508192929713699235553685225093030633047838384400856370287991300982989911754340089964290514915300665112828387117835864432872929547811531193249086663872207870779115748568178498209976775748839337380780489666381912528496528554869074487002722426962501379521067434357453526306551773958213001409103074482744781567640115410604760948195796191621568987887794521479992620260241193758667238364850001993137587801030549393378218469109104181391813830597591991920101301371633954138931008261893099998818259310592390602185646257570085283350252417372156385045122325869934276127486607581056872753441684888838534863298013404274321671700878605726660749346168213679770881646658498385155112708905448905571279921605104825749027121133201074074267810253278266812648483707968099325776073015714919686870141948479539165517677114320501025569490210827878138999803335784013170597295560651111781931847767570838445833207557405286503331824842046424434559093358878354645226885784971736154352872005932901747415020102530723396740402110806416921217637615204431597031910678158731839542119737713143914870206607644547967036670887956553544060942473989289243694668924587234992904756629939764287327713558168408237167901847732556047359047462614142179088434255714407680131127743266991522610312508302005124405385971624744397208097960215576877533082912344730913926548292956415685500598223451775481435772123775568505742444652611478512180244627496306424265685381598597380920463121526310727695775874471018810793996749245567073870126470217459462409905228936727674136898066658077560208276199455235195711626741688535733332347929959028034217144316188260210155688539830309128819718643424410240436374470301084445329788513983526776277437603970205524666352856933521403920284901273415615678069200303982523230697111861954895170930335906884512808107272404269518298032908507464136213525700384998509586527387481631332336612621477022391152302113499050478251560496677077742600672311433093127025441657653262649380452030551152562838459665518340661937941925854144151060441400742933317921037259293686623375596568379229246287112426689079070347511217255827244268399716679926330385360855619324052129972481547591763720977292922791148458899729132856126529182758051302294848476568070416613032302735125735723739789582494916306636283265883340375192410592117130311266076939091162997652986671520661003283881117196213207834895690654249748875288795163612844747490649670650819687183516089264469490187330328773115448922961989932524463553146587237012934992146914276098419508244609022225716250771350588115140720604133665398422354664812510984487426753058033794556887905834858087305697724795338607856419646261183429772491195037143767825329055351437915978599610923619575737602403443644273858363894141698261264215962055926818357859234339748491339384947973521586648086272657489121658704166797437883723082752359696884703220744303810714892189002408020865060111718849346217063697049213723671920509081384449755953287628799797211007348307158522260447516870956437081161742269842864373376142424214666679969014067242213994471699894588448445676937018043038520624749955477959084705502195961423994246211444442134855896756748660562868731621248033427737792940851174840604826236931117468783875079754450010935314724910739831387548971930376365462131135380823506836408881896888817432458089926742489347996047723752957489207882629900760432923030058971855306092357733610906842813481837116856346225120368968133018652067293306206807855957257988860160705854536923311742929456435111553200908596029992284227645592956063722215254032946605437141117150320337161976683063734758152701325806288452851949153848219779929211244915530974103361085078230092842306403333638822423423272947726689803171528424905643427286475637488739356892713650160254492855474753557092399767898076403321699694337010014656937901445381827538046726106949146231822033288185058081098306896476084955095881803017720299445140814776158088452751210992611119744005929952704620003642982598446868371114686928858283241774443564018295898555302873782187633338700712067553622555062695871019448174069446770222974424928160205931797774903636751140122061782699419164923801941166148819593954925692111070703538916090232894108678760124833659464368174770147212874471874038037989577183497755738705256838580546048737645939990030570121716021058687411497143813394709443121497180555653939232253984688210447189447584365593820072999819121010029690490728396915764485390600593638607472151160200594973496997374272140947728437208968633125081989125796768247938304437181631992956452591870568317131598698972139457684576629944776525468727171200607980674687904818678962180361255180935338414269237287988575424482459203143230239708693844193860814177220267183166438922866061202777199531709641654949858392065511810862651448928869372034980334668333890000504847757523472787077788727132088982419986251534631795761122763858273088184435522713574177877206639546555032205801277516148040773649454951237651402925459655895677255521173447508230971456273761330902676902225421856340623504257798769910106700104829808709993405053643211820073718809088216479638851165025455778739926192050137900016001431539414169458095577149857683641502013156721407388977763829223203993344117368883619971621603704254783768878847553287848352376241977306239236636335965993076782124662928714420172530587675321289001065631581001008464628216979689993397907824037237063548780565326719083026915537008936885164165715784655541044927270931662627357121405369965021692430694807430012951139111879378014765389073368742213037811999180105933969575531909587699747633876436517252640887698049826589311634354564640684713255388475829126954760289829823382736598438091832897969202513344114985910555914699562174669306735426603955435317742741883653196934729027903427864739590723763852057328577446775934752799335921373814233165354278125258437367788898903598048086391697727986877429275305071826903689524414082325925357500480154107901448931369114576564053033581858928002317192611697702353544547097801655081610687575979659112201907920352028751413290276531081526798719172454320000371302520744041606328439097944804845599478326506805335110432642777791904248764199772803036372190307415437811200101061184240517910627238676432497507194524806233697165603445683991900375824136770152207356184510728450078603532263698381845315218897835674922232483530270766676080229359386495287190818867601739738276440775504842650652398280771423548890894299798685218705722996254829082728957935542902733342658192283749518326517340675137748485099958011673498431133365440227480313268014461476922807862882645294734324919244517209818319301449437964124577846600141260420107376376437057128197710018817602044044445153164427548932938324604895497227703342890717382699038175765001243990433582704059354092329152434844114196833974197895979169931706132834536415382869830640386653358610835922507578831969419504382431136277202504684479138004097612864541353369275506958251906014659452634174306243066443104041092179705783121980141573415937535742669612505738211604514373878340578336616832678651623855024540685916286368834854597444038779837432181699729293782224093180883391823010098030696367226393388160201958542292480648242463029962291715126981026540817967350988837675311610185868926728778426711198368383517771839742305858927874413260861737512973185542597226856082926905200661116929766413555457219452262675922424508795721264245657490357486049520983055522525776779000957394807364833979603149018092472452106741072589804036660276010823416289569366555660331013228501119414677398298286237759811934592183125020656844404426934125876066731102123932873084044467196728167292869971270620679533063145036827915385659563352927471568090320237784387847089821004195102090701906618070154635267221208541470398907489210359313251786364384966077996124348704672648529184870912918619691797266621648872022164200564813964237538442646810753284188166625208426591969307330832249319716783741755636816292949276927028060214482686869611908463658728935603029043339276943210223764609757783771295511119898635162097340942728880962591416496019431901199834578251492837186963025356712535708485665225646256789825396222739931770205117858537163421762351725927043736074470758650750390890377126075815161399527115688210374933606652505782621950366053916806991710455393543571943734466080148415964837778848734522896851897559939847557541792653215258438745987816708021803022873447998403868961745157263948283116027925636396479141018218268749801804610576746946092624316414654897532871103433189994141146559335369912519326659358946149003880482014261216645926155275925409958164943681708698177388212557263679426681020173267184492271802501352227026650055810746495987904716506451831657640450648912401402170530314055311706822857125117630544169344577233941105906022796758271662610562531969173145274142203976834675194569038667799677638627564201158319818086926619850750420347341363677900539692459880741488809384886612983680203950857260906665363402574059224579804848553231792870989262330824500912263268111590193963196761788229113807818197465970318802831178184631940183592017655778805661317390396847540440878554003051870075252525307614782709217821546151550516569792441167937466888578447996747446760903568734875545496838970916962606388031159428657507913403836087104162629361823411572055905407982489880285848372959909400796956228587054019458391285171815833823660374503783816965962178305015656537558349160061668293510872561627489333760178861528442070106925731340359802524855329061247929376287488215989946090920472787921221357689007884511108256277920267310178979868181899295879738646756242875817467386066347566032886574965794162964909261701629433072151326890785585929228450135602270124380545581118037906841960144631188904393858889847258730458814815999481983232839006591681594425693054736170325466360885376957765745503527131067373849467041549562403707331051911678228624818564102413087661349186164280575668460328220225441182241408356282698065567981347816020627331221279412342878973333880684928404275626560702855953869185883066131404710830017796270070626459814043082821883653415992725944152661696392226096778470167522671507440306199834405229492609022255800772850015479892945465505493256893428242165239104837197581839105223111944561976144334551656533875933481206014793109705670973424780538435320748409542210849192831201613113673938740295464089071148511246788886085481009550480286466500423323512309584913601810187193539185658040571402962335869040311309976823268801822128447942890523573201112649670570033845939629093124192574215432024422780431211192339138337397533567031052825078750253540723961841425107414374305780790756008127511825483185569390243862104449874127401389044174366158300934099322721997378168003750282854574081571575356655956672120285958931661533224619047677593340804803407714712029720957799709886960434875758267948497406922243844978506749370471569763324099701533224573885301601375275162103762840041191717232233666602207342417936257911323868370752779097406033925524164653946988537632386543578066785301731389393230228863449627073618660854385276771557485230380670914300581431932856888146316962813453197048984067436958092847776248393124928047064140081373425638571618198627225014320878985748214332485448045983726118423610994510750060163487645320950180381200250087687713226894158676622687853366870371710032393257765925707392000502173237223238286076358970444322708677390862431980531718009390416709982225204033054718090798754205310680547469134368885871473254246355659599842720887074633502036189369394764830493047570282784646800474955398884886003344148654370560628241822938327552342845199852939097819852143909273545452201399071999871149203101088857935144826867172952264811158995791543815286727632240308131719884795870501701712587658076530475507576839466152170901841423106195325260138681310510830473083205089468989257966571900893476982561983649802277597559625797393957193030912999383531659945428506209696557757573975971976116213041865478156416541020934093653393400231801619462054766195116845291566626943268783069868620393879203473730558072341354372202292490398172265307443156098413838757776920626376830458114891690987886027573609629180366728930400158187990235596651488824195199052986053437368253350362157373265003386408918872135042820267038867461037117081232254186399749774915794289272318142729150893857847539924340020918394364716916426614180867227826006420642286617555473902311292111468651125744439863727700732269912882897875273795059020364729669526415500708671619205641706309192251995747514794017149840167350627359260673993696001777630287070740307933393573823958232093181565803995409868358792108546514288909963979732045764454470938755021312842147067519091475223738587063673289013959895851081455664286216964917007754474320919459128699512355606825361396880252318245896608975878653716388782084290046853622255822299270287804351935549837921851042354596529352292411936676460061034625484427451186547723344725676941637077870035972104769150474228024471188862550795891239900961585442238324077667714711356632969786462199886376944445869023316894752339432643355947308829342532245457845440965954639983257142534552926602315153133007980880672332109243217644576487766863506762986996472541809604871237567232179000099443666222256209661491024811354114338356503835682323256863582270098044635312024706357619270149515298069551233562980032416642753854275112419344490913878811822483857698043104588093361036102693385728407894966329686216791501294418314505774378801331623663384158921045030749674255832392728662970870993539784830266510627672206452765718036695129704614505889109449542610106166496009074700289593101171929405586975572570125830151694126729527779254624555298547881443705366379339186353576224070015156201002238758313291209287921457702296846176718600287348956025069721439699649490714909695733482682068049363161793917388832038794027408591459431609685130235444818456185899277449264420474269530687241231611131204282829673545152354946100279370257803105895398283721295971720852314964425840964303585059129308694838422822046956345517763597964383269112298746740944844484068287123743149181457165227705482172926993630755179475915828081823361358061089130237131910117962057796615283592752034695059750336154168128029302918309534783180922512343593122573454055489293472055657423388541835261406562932427229004384211418484793724103266879495467743848740057978882540474972735551326203353074523735729596338472485079908191757009451268114911805138047834719039476469436642844007422556019223150045232272691742931717362556490645700737896153067003662876807771516505277586599280665594420254719378906533488752527630023906771805684600322989169685315108243404742445958466542432018941241975899835391146135547154674793549799497031035705209907164953217275197920135949671001646439775763371307335637586664387757349103464294803966817014585799091790911006388149481337428708581460133670561778031310977141486537828924618104145306981775419278281939225235947362396720807544552312442743557392887533724498222543617417638566639663449736413454152908625485968320081282699430780312214190835206783788462182634709142084657928871562990950153291160926445659486205817016211542734038424145221189794336030749498345939901083686736227765627801106236826915361536327497871603017077240810386186569709575871683236718917498675163179859575578370161085848064095298677445311146035838645922726597175888088510402753190762651672640201421096038820483355070906724765536108879817667124627586446194685978582384473247137062606291405161684121380296913954805631988815171294850996022595377652873103888969569520914588899669391991863734508561143963020078877986179768393804166445377234308877637232739623584121549905298945386448295298763181929279277606009912815662247260516841300497289113389054347058647252866128723642264989539902756236990145005392556054455220170392038447644011975021868205506254624598922350861656935051665131934232835728190746575146137439681417144916052440861089694514758840075773199541224365695884771122144743140527550258010370511341215982956590125072989509996805824898706518075045499392189536679591742155892390596989790688269423032777493864579020017609952278285613210505100941204552854388134241246991457550457296656810552437609359999392476116313196305433775480852205192384732861779376137320738880737909171600589852450984828735840864999861692298836058861997322531637292177516566364307130267002325649796420838386892474233553265479247787757833720785490521994051515137384767641575338534292694139115232451046749129879429757584473197895956143758409877298197736722929933707234926928005810473649323544980372482071393139012905789753033557726066982304587798652425138583969887495500526869743619261064854246075850362391345053406404731650614078817472657656721417101856305932246692095886915534338393826172584348617002235474845498884085471173742941113909535845805425307856616605110307582015792650021179461258900104158608074544662982461609814299950641519843340893792152053392345775256961139746976665944555569745306622481905458629104691713590475776953941180295844417709351036248830948098236702337567956538611275554493315811731060691175443084677964123849175138406803158222306609311716917590585992034735258795774745086400831715541555482187609283860760612484331287406620773542948953265397279271509054616746649826841032772980601158673063938975746401504869102821935785031834236892364640331035396648133728834051341938758277953432526505236738145934727534115018370335779250827808581429209073267032111719321468775811791505704519825975312926601228565828614131993215746911092975813257176761563904854170483842629450214422133185347282663454765417892599599098541959494710404827038924559303810295601999015984140105250579659556736073696029742578258710638179738592861272835764494971447967248117825053178132772208841954200183780282355111776243254924316849727309539250816110251185535703644538195475516454915735523126128465927671812624904484840485768947867230494860773728595955202791928006493304302304578110205608423940789438960482583749893448492029982544921508061073305175070859777564053574602222292173739482813190224206099926208211143377301164526904989060013714146626554938216444403241924497448795254056657079382560932577878351129389559855601471370721873761127447059829252766443228351004795391945872198199457075191218849636967587669473532598840383442981489644980809530245336269623420439234621473667443714334236703401546065356958627801068612440143702048517933688685825013250062173634560217890567175803959163701837334896380474312794763346825546200901823620634583651244565689861823082466943985194529894070076005595359338328795717946323027073453396960849150332133625815077164959054688248165317281151176813240353057598050159509360059721868144973257694968798533618763284487229337245859348902436751167052772765161778121353208236934233951681170685350887091154238020690652918721811013602603269997322700112209050356559019737122478229608836328595190202383970460001795997453813304914784854020300002730398692673447213731309675826742661707812100199621974860129472547376734748478924092839254427329062607082831692902973525665076477392371251747922222454072690999041645405338801497606159055174171017579698881410418352035940355255606631958164341391280593577063657985583370281292602671869351358593551981434688718232822000055069331713716397335488751415521506285374862154413071445481749061903384706388023744161920036764110542923992595044558525885102130058917157841593770952240085711491698427379494675108168330685065096138832194018064575862444287104334167320154332748790728876393405725737272687196498932695000831341881520801472642870250239864668862154406682496413955462083427984041992491266412116309597000966257867610341514097031693800618551833298584747191701990459391215095550046315029145268469932846098120559238347008054143412491408814672929360914298788110541376210653524548577227819320664632191437863715868394260861761341221885630098611659773896322170051071507037620684495737329244705678397490986680961478811992948784816410222303105965830559679086122168517067196805272937331247401418192421904215707873696618022398221525988343024126556624890341181277581809131009774155449140765174649775602435043089281074042026503205969293969856994835461609695371044332920362880373280637160323337530755519759161873698158451092116810638570885182645916703858192852754740755369109285861646881773464155819874823345630882954874595703158719783562669167542704338730137326108282685821242468821788409663468162119360480909491858490379190850387652907057449871903443333074714577315279298802865154482428581248986538645562948524463745274963533006011585465143181622219829246442090551385440453145436956366126682176626369464154815092394646843835541057158366937733347622249144699946499392254861953382116788501587204009197671454419513618456347247187868782794685253296492360421644818253651507023132564717665469984997340263988768524121111791874315856543468712247172504537485333053475699872154772561324273688020148379261661339023406098755883355596062313153068791518384868068792060540719764214595901106638691944399077801224555267195496987299437370035318046839781901813786613635137437618974911369638559513272314713784261071805023663051690213603868371422011861727060780074777869615099631094224593774431796286272514047773103952207208818861852016779064341227826431443050680601382041201014801479045480498965229550060137200104924745969989157882024961914847047951047108389019695377792881652669628054851218003068531609068364621943730734485427191196776597024878462470028939975181473214143883282373042504374678248291847715012189438159045960137507574476134871872274246258537667276033169863754385405572041550226560632838923091517823247432149804856789077597035466761022840744252450490468105878110945712216070825984630016895420261771511811217806981886539737322824467142573287915754554067262088148317971842364088752118105651719416054311667266530196398097636242579226268556296204880334629375933904161971482150385034707449489587692975465719751419810615538655776352931887055475835094122962351738872379898281689633139056164742505108702894684508620275176823899208703670966216058461930504874960153608251339280254293991023246014881342830872385924081838714707451584243885630252961657700071031411905920167337967375435843457943184438104650656685640738666748054194065632687828053013657353410181612860340240441862548990465982000529843355316046685131444183090073212830279086557817588529649462583142105259639375012134681101954354614060065393833641604504634554638461985541102917526563364532122565272309086396519614977934058766663794451552718151652343544209910169514068569885942509593517626787379042946122491512305050476720462553640737679877480616505869869808353766530118949050673542136131172796433508568960509235279960209076092314854941172373154728795730174372421890980093348823808430056708470006257648014452595607764226167145923836152562844517904126935926056596833660508464464244919133351533608052970401446962309497949782640011038547870422864240489944520372718846941663290440997156334447211925354086400970572134124112727335069620358086458095159570300676907096478521369583964964882165096438663834426707165585188957641353026346505480400257396304456973138773800384571779960862212846793130817143374809388378216969397535238643992260692743504437938981873040914842601979028447876097707801936011970885568334820496213391472594165559447978042003798877983527683446448605352674860720615891230625697457617816663906620385682758246581452093962718625103928001692381474803056534857357214642442496105660347821933567324432991516058939573892241999941126098656586419719414424657680757518812981798183422785734773800254755738944395402982120267013210536758531390599545547605729897327661094520247501891373455023806901390263121562028957726624883321103594896758146144550222749585496616524120750672002860643978536015391155895626565100156073217397540512247042137863760662214681499257863505944660372621070067209268115280240989304530454228109107142492584981852389873735780289028722577018476755059461276678472039709622910463432243122480856703357728192867207536543360146717426123294905203667024146429444548574246447997173615734782492668367190772093794372792401703471987139875541589459244689152259940689398564692235145313970754226318258034416307375266469207024652953878164441521855596911731277654447572557659769902316977269029237702274490901007061565732764361991750601940364810394404626461846828047651865897084680733806825830630448825464955226321299628022029573260045330658437370560847667514445735956098346587863300607040303809062331248350562177973516480988171822352885710028412540285871605588925551511459822696014465070217004513984832009812351881093298783528579802245249071434578638469843035225647577462754436887763021455728812413012335752942835116569454197938283693128754900594310373861466603586414147951759467552063110653125843763688662744764132847826065747425117429236925582752920551260418241685526856435814906930568766097474797460997654882308483148386221443249131280086826533811229378386589115260615140005261507485763717126625676051567447166013732471735896943947470829050378766957094602286773292850495740764041763877753901771457088551305213397361718547146042639229431280229205121184486171462465395560584864155052654486069080954104960854928380292758566202503644125219621284908726050848710654771342843330927609154148601718582396946323914925275942521612566873177870608687711544316858511447345967955840345791399088412239360457880191004392944757873544810448318451713710478289709379294487301209113580133730816054293413059951700409974573075043182400200239326417749611700578738613978655366957661000952170835972117610391709953606869044806701869712925023705507053405457885100501526687103626248756335660040026542996143890608764342287960353573499787923227939301959917517430273486407482758376107949051735300865649083570733663671655061820343850071482396208639988814404263807703848047146131703293939596251397256802871776263012135926205776033504807976083390578544933935651023179124923215409777363561848582283513316723627730559332802673720996046652972821581817631150947051832135540478191613076868880369769628348534108781696610994163497696651311501448011768571322037444918613614727463341410852741716235081746576801835205590108437197765275979745172336571901409289355295182980047725386846358350207979796887131613480399903077459508156565054857538821931698020531139395692308663033622191060024077906163001085111263752340192162491791488494136110812080193598456798333989253098000671762836111162899552868731219965313834311699059086358870844128477206933146529048489474634123989119325877103054254582820322532049147430274412240198245799480119491534914193134508213247860579865100536581207216503170155869460167568671952587929707558110534366484597482407148418394845054062236484596054996588964840675082433241577942152129816930593886490329316329928419787765924505322335992321773682194144053863129569905631810968694442785896731125827857338988676807090977437652830411222583498031502048093224837772296132383271146910966601741035433526441945430919499595662373809041487623227701353390607700747473183823803641775477895714022871090101668812609115332434909504249916206009446493285220911393102057673263689014389773498324330389404172916628286327517425933361311151575249602108453938365598694002472664688718051558344293678406150389958884969225449702704213739648498394180708876325125463437459288836235180043807961793546979622454929555154327195363713761633265129790774606424980014133210093128602935481012686140993520166301786424008220469026113666160414943029033393833823556082699091099645700307482639826844932074880506594615805721340816360734469430077367639457398341543610538740078224895766234135720890917931536653736136994112853964893032010774627614526623706233096156915720792112173874096293686871325726137940076298921401725164038178060104999499791049158635758548325400479532004706852131375301280115836650606317922997198986061401188292289489094983519668839927054131545980511783367637094114514783658955686615108425437230669226675278739085668999384805284646309988086206791085323886886827434913988040877104124476403333785136177510665016848618830416066812535842821818728583482374442790066361092405129647363040594874249753232406513531021210259151563638469145181851556455846628270965088387599938082662649397514814023303130136327797144731395151586478600185055288199313112141172954946014152714785508097280796142044433024431800323347497907423774761606668333086322389878577679023918859373592317613028335111746841434067216422860374438399172905520688725081170072739893411816001258885931513572163281939900192921776250127730191945605144088207568261808088670282309380615111212746419668272560223081252056751187613227733630038186306229355037650780067186453066405807861612808777338421934924056702638637889824768114086834980590078228426358375108835910107287798054795888350483893296166928905490580151278997442288337900718664611318580656352371135681146212011592698161757335274451472721136785222547889409162949631097518529495385258806803191673558211044206491431387073005346007198561748932000921172060889723727854671962360736551183626577034835620159293033637200116713720059933406613136103265541281933913401856553099529023118387177434408931198636477775335918148246286117823173546467968392451067984808491966875751287532610579499026994934187082615694653689087444929927187925977207080581270227636745259543792587613911977804430070828217620442264629193058929952141719861857590759883324890206333773727392420053026437119787545275701432568431380244405185628600242782942484989768042721194382045127932074520771202994324412164244075447498965214424817511876326128032197098813066893512170174693299211824226551629485541856912989710004170739717888192869888325454102496450219508602387683488183042503591996273773192940968382475727173236681825231129394192968756677573976868818644654765407429039477032641977585769973068921391161329902927555768667377524769637078213979684403298968160546990888167196323595199572790650574470980513084322694144404403717461647685514678891664250065348528200475430869202423433279305961545834382905535972024946642142864820506147210357133036855352689970024127597648551168394638751059651621419965220857800618767512028974521947488459854373561007229840138521986770556151215175143106007079300828557804295404203386615646316443841876428587195748385487913480797576274848225677399704352391019465004679135387484174173858652821458280273870109685123734231324777246578233199902428034463981126477334343081153915327631475299711933127858155083003105546118716281340488353520616090352412433355502257983896979312886961729673245888940020507762010160003488908458846015405075523958511584199463340192083315577682168855472190241169399571418863891125976400421502893633067367398928961213661990955236490697974369584839571126151575675554134319060161287125789118945859552798997485948566474747289919147717837264888347509248708277368017183884367091068827090290948893251911230937698260479150460647453836394777535654688150100911722346331393177501709741929701911063501737058130912062311914090354747307354444417045534721848387228477376111703218796271677633600732907711665323495590573676483823993681756983539150599913615737906876982117920052661832531431858877492523462660615917558685254055768669275933239759861230170248808240437363743202342840197617210662596363573255887492953423245668197866142229523947733496514142699321596349091249362898958385838544170726469470496745616373983102352552210223431624509162121889163123089297067310713290939483651396451600475052043092751616806417996606092542732870855594971984789582967107958021887688763034155873471175528813126300673907123226555638329165178012589351495832357083259749939870370635080749309673541659722762048812126533173781936050141183654112362232370888969572818369519153809252518782291652751796660666162038828628342795075368271959264730803760226553451740931777985852853390157885437919601375136351312566180064201583708021931431770828166885014151139975145704634566842652996666638187644383172387493772983563254711366190109585932847023681549179840773640158790293128587596794672394428739870250479896970798447093645877252383946396055844556766606629834587806982290176623768394310277163962480104081246849954686300111984123949008348341558610013494124899735866622044325708901525499601471330894867757397595733835592495375684846952195887218088755139371482916685691960479850165770433275170436961292295538715660572196114306605893698208995387107198956548017757464154231266693598474137432148000513002873100077677203189088574026507447240232463503199222134056859120050626980242089992140032630224821338591890270869574430550141739140845480046185939589219431127555277364915144829423674459288933038801216729205423859119892849321844418891208768357687455724040275561881898551063816613313050299169142840857524716710266083173970065302520104240048660119501465799756930390875836133270088447801459356639355057629758194507154592435337212676391588332702280177221069220455125198686694875654963939635365365673188011280593428141877048883563214306593804386634138275941780610006006862173922772784877462543571522057271440159987538835155574782097565086594055504988989878898340352299418187010753496378425269314277339625150236252967004947748975241376161003009110685865966259916909946390127874278375562748346599070047876127603223398455496552184703799812738093410740496282678039039892516526552102295717358166693854278180258330409594610500444807126507126727275788623687896942869898122702646497703172507269995514526383188779054878717725793286000129254597855213901736011865001259400513170434231814709813104070471699291440341888809740155438634424826172806717910631338168464170586882607982426521778121408685630255129821830536148737735525881271923480627120694423118106059880678977430069330534714842190083394104870152631297671040670049086326226788839084630024964180660307860959515948333042772902451058521107978245452372308538661530941590078092113907526655875610684984571871302175400466969733826170533675858026982353516692278408121350550440054345872499705430146999735360381466716358980704885152443534889075240246053228106011059195348452187203729571292971548008922615466070061298716256840759844247691067731932675488119165188428250479334738086266834222546072317082382469853568194811286770188600099620539530625032021850998455396960497950206478319137699864819843814303266387511681550343962900753000840903820049090654933116459528693759989566246679893771987652316807053522457436491990979915390192895279150044827199224685192042847540635531823043326343846662526544475171708277408024786036417777832710483589293935916212040904799885092986780654622050415754595053536269650664947891213318510764656234058200572137690231298374727758512303696852728184127237477567795529256704916986762329424382509900878023564831719700557504133026985222981510122259715851405150612868336128306444011659785193185822425268708897450233494034380597422309010358415229661330987550482006823722871800043718440882342183846495255253141923374327368774439801966982769248613908465720494494133602107083400345209903988345123646073800465213794727406702436401806633891646402262611598114300319471851668675416019049935972563832013819631102629742767675162899136427181299348047996102882471006373873146528865349095426151617381579186883620587667614112558941751692269975434977972696542083898692633680083983448854314304087381260234689226006943139400736263008292876509858600199795041813326575779834942455357048818605401486021874969388920221388165296305718664385240672928718473812971780478779708321211158106138362203173334764482558651221437645607773718620137781970051063620021915824579035733299309570801201511041175701418046445413828825157793338932138716237440522208690301029230649581322548200109359877178054820195441501725743305090763444392721070982446258144790559404943217677224909382471376911024069914547107916152925175544364007751476221018486722715016595970033017649466530433644921970170803745040109957815872113308591336897377819180270096503544674054488150877606576147809714573050190694845045807548094599978048878709217263726771693888503000175686888898990379391594260385955991924875370388712756419927734953760885486891923274473038601638703937901349074356072808827652395009782041238941591801015865250311152888834369214365335360880849793721875065095106752910017317492398196963141748815834814601429785677755484765671361068757793943126578374292115323154903047134727059013674556441918408415667461499178791154294585932628238945031290218946254031337755742778237435514022635549168292172575133644017716254586760771079840150847531405499946388495174240442225210421343914303359336606667284227940021424053938632246580915037162853292126785876171211072120212562737359521931706927829958070150588908621169323694597979018077513460954931798592179591492969053057448842127420570825145179727170285471077306317895493008355404370175614146649419912386458509678301755475818515274440731773133083278921834453556794342033576156897588733327785921270460373471517987192589431032351269475957339887395831178700852899269425395327053575621448743433270088079591256660766347300308346508693953463931099071815772204593411528749994495378106151890384407565936687011896011688235848211358446469127875450639353699087199589947883757900007181586614959774622515149361209051437363357023905122620765970329118692151607794608458943892998805677694893474149345824705986124659126597421100969122435601637216246454943813642970258599360355813356063205421154031921994546457335064897652376790793746155234129469450671650219098579468961094458924689827726584696608165522872150011028363220528868315642502401152157030043606822081647486277424431498089715584445117057882559771212453265025348349464527828234290965598285710633923963705604773688738131491879804413723075212445978037572016517091618868739308345985351796847735670409694949479152503388473695368125779845080982014776157105551287221551532621699177441347303166872332863813059726446959669922448955541617071891952661020894455337980386881763880280382077281208194728713761440372137364676346601921824691591578480133111676593668852432910858925701294560333480903955591819795221321376859594854365924520621507269984911212196929741814856643034320367597863215092167144273776563715472052851608906207331565135603656332265474880101194225144693664065085112071191269926247515415523871522214385433650459811033916654634541964885712039167996790544020229604075346302970160491229705307059333165567383087030971185715508415583326662091014256117572310090208086259109698958278612849307638269031336288068795266612683149125452323841798264365188455790568535739319945581153120720180893135821121540581721457632105352511523414637478900881936902598351594948720534474401318481864679698004870379746849058133811100983962207406045454614952754599718509761376085584624182115588381619622422874387784477746044113326957373647338911526679739304202536362140417176583384508877590809152790094375155799043981266910079798381915044391270478795214600132274796664957175548830545760275112095539818778002279368485752354872969714385496362277240894601674597722528774928955603987974937381879314772565011472987792573410005534795174093773442602832842956755323798314938506395071261028899941554395253074674167074462894176045730149163758398470536273621816794668458062889975980402803724732507654163225959058796273784997640066712451398689190001029828800558267392052245755956282554381135389052907509266868679612458585618795115959742947255202361352909062135609870345491145785679018637144845606782195537550907909357288007271619449516083243141147768723086503713982891727474966512562417574979431704309317587452346640486523169484078770971780726025006722192998734975192352230956343244840334660476878465794391496857849992065762900070772042284722096448260473429462547426430221048604963442903347212676510243663884229478932333469940195753482966680142581179613668656389761563484530446833487441746323749163929830467630275314320641764906201079049653545422968626904191138085308413965174900851432342491878183400108268513190858982326676205170153071054185229644994964208163531518084845534808893552830623049446027275134647607043809915565222650331677551389095943278688812259844646211888893851497544819364497197260352045462433992285785972130493708756856715114480163044401847250816026459960348892716703631476807471063717632557644225953283875153273861164272329613056404436932794579846891876299555601500206409986649551169281650799498585592577363083884799610845073783487679363749537382048357544021198338992198420015201323444193506193667733508338916583839888056597212064544027544979376696238812443171418548670070807912315030335863722580055446231138726198045087685212261497725868967672133745259675070596096577817541252958677120767100901544507717440197543222970395215281959991495463806022596357503649224221959959401211480739473383459159879156677830483313255792656294672175318221057092096025860547753815078180905021917919743114856829822776933294061377364155661406010684051433172206572260507133827039905135603378200839106844959293865148880383714341405873653196468242905837768738409921065501616916845273574329385075915741066510702797217385809426348281796714336884394208651726198741484155582335933327424562259957227765998280104259628760241473655952412953056248146650869198110731602042096715802956212712263445063365921843808523521006002894539267549257271675673896873913974137896981452564194285923749170664179655940813391661783153448916276119896565543062961257203785482683529470062877254568060870623871227099842673036988567919751780782036480950550036832819520364248339165983836229651761880559825231817973368912471992446907141282924947836227645391048815640763963862201475713701076846502282342461333011842023964934680038200165929110668329941014051374164912959688673997171745846284014959132722518475596076764129661922137424246764002759286886267650975717571026844397028357452292169381162089219137498005721275338041533725825534481731680583834183748643887293199469825134756562298657195802394365333143300641133628428294286802366711811442532547513170444210699059674389972022080024797858507402831694324299996693468635444939389794599692831392236721989625791161711452572867517841296242163505625378175204009601707877928491515065495079142277685474740715939479706788757909291604628745607119463663830134159882764705884706174590669021081585472511880586060096397281139388315035158946571337260393343245294551118367998384058040513288917654169048696959442914077623553842373265101596171736736621223005225052383311299929212441648321378265222714561889655752619084050399184870420127801185603336947010305613923296267201128408122077588838433784825159577045722838976156708470577085026119748847732212225323607227205453049982316821981602611274170376963366901627397098745666136323663542838927587282676902277441641657305709622473197636621197038771272092130533556957111261481318991901650831477956611672426319484375362151691723845396321635801485520259718484036305606998075159111553457028767663302759195504002862648358472014569492043912541545199903724935214636969294376476444602040430247018069007661466072088158714361978866320346980216743213852108921678382951974694048285055852888401174308514225110714258039602157580946640059942710230057774394112475351777101819547864596553780393381229448791111624408787871587574725442784875876202287884751676979519687974633234002817784547825930901907598431682364390215042036348436997127791277354226880425299821895048298862194770308913030414632240526342358293874882384476624174881533339034084281136014596045100521294244610103123233387867302678257203647516562534056015865460421947923466880905837831540290405670771607597613174138053584790408547504450920379315271785997747243355673422150293503880499897152186424182708954666233557364763566861829781187173338005227797472139166734662587368929945728029171531822139956733071947292987080831698917500659832050063141212500637580971423399634178836623693306636393859890139691698551622221213721506970343421522466775406215098441465070964376300877829512717987625960298079657419513626058245928320033252597033922325823763756973936609330465439325427438180271613423721000573055355617166321746759239107907934563494200609490652543513422061011711474561784098172155816988218093424536051352704807311140324458545799822310022902357271563918444489423919986729431375344171388113273026520744128567578419981542877356988418699198415795197712605731740871039569035486268815518607894826607441215923891848646680203089521335356339018524703415104173053711809147774212582580222748744673402665319885472287588551725510163073820270492761510593202953083772441564785393145462338046582573213467986197206302081392607307534966515504162379927266670901977023510091984673414653012328559928535011992475350310345180428107254361985327261685224877417636390842943553254872933407462851393824868731859129376514456649947427063125079656119240710799893446849354115679930119345881592035110485382283408271551596618817572290380040020334976649719658295802334133141633527996650221881281243357741585348185166852497168638825628143969040175506642340409454458469269223945947461640517086234579579614768443648062228628011884612204159114943462352405936704329399574290506880883696003285463606262585845105862362796449579972428272365182074310138706881068581084168410001768967794288445378645480988230580507569902313446604390275525510050190506257760232210507042518772588919489934996815816005464260615041892463988967723105857680317058582997885527178101264539639439606717764820569973976230413728463435642379436451581124647997482498768151591135334794244878393678751223285864686030485478342205140363366933501101199190823083257528643559999869870399452185749317843662810688743645194967612260581365278114592912579233145420511728630518687766385863605892219420530292377732022717132797234470898026097947881313725570118382008668080856380106251044954268395348670932925543146341610677670558472566560948656294638049673251296675312412230937654365243928662154882377487486612995058586231447115580766196080335828717824323472398651263465266865399009010846330640711795562232389288556909481102312755684081411549575253318497105801229866772706799381511230920887078966266729028146518419912120048467351485329968260550892908714539328711383937298522067711677361153447893404979226744495049560130625366397412232107469597189686932615445028627854414488110102958690328256233612227146922626729451530245888844504061652827844452328790850402937858385601152896476261286489003328627759652531482653425134392310830980612341148059807502188537616098355642263162658398649637986285530925020557924187228981300583322833988049503500490222305537796583711024045781506134071164503860793078956102215281140876253971927081458528414686043439021389294907214490811356821393437593311487551199361023672821983857753192797151616823507330824981927223918481453830254268176428575817708952141051335582965644805340838006514251060947849788600371732166567571796544829683992658853849336857067849507119783949795617643364166889317429538795151525381497933832759252432882990247804236976637970057658716944799720109739586542290954603564298333872524590771477386754062566067725431986151377009990308827486739053502285872412627472229238311269516360702030292069998806465264840071769421538441847830955189270766646858543040832816154203476569203196175977591354354842910486871429757402805286125089547838400198126406200283275102052936026738796640692357991116263214442392221981841547362331761652549160466910039002251668401199961905729226951846029624632182754692769776535857101368873139274741254169837248406301738715924510827490351400682212183325585440238667939728558690418676322245194146251210424541561825339802068453108927434393027315124928571758778725264657901860228036622966838959277004719500202843586304278327464896382404294074365111935604103156863511984458639702751982964173421922243577280575643364381801482022046717241834446169483841252819634143277076569284135806272209413596295093516439458918100198401131397495089486260449382185857066834153324826336946847711869407074536571972897152517618932679647397835626579658166810498878047798527961206066326817514235807777396955866282376913399766475730577420457097528570725461255941387582531842440833437747489209223294966991235272497004615415129876898266434129948567752816784797281085441099139470520516569189123530469810998648801357855983792165249324476258585867504474795492301465613843062613290846549050475592602499718384705628886018771872801433518462653436344360652142229249896679841436142001057796003121184503732318760199934137232915916736824817874791550952749276656935960125552869819100045862932800471035555934003693967908898724282454976849577916374488465485771187020285313934932940682117793872467921173707242123599785680833771494963863498768568940344102128223709930891400889805237094167601506985601814906598458384721035193412072543563247407600243336321236375817586646168626765347920305814587898670576090545851254342669782677559978264328754913113690043401630023936733335038181773232334704801055705924567816733386946726959183826931966115892940243415869466730055427643149291558991297314262762704400117518464381386020241887607396331550370470375981043620090708245929225788396439146007901183482204600188716119898675234967834466509704793707934128661764828680560748897599180246677970530076579110070507145609492759534457320979132722904534716491519268929246239392992532773809026532941273504736321435031096340460320482305431359426397187170123071786452160302429231357348080659764232010701780047643856633886777021448658801954327745056770735926544394287978077371842017302797293288314712012628220065455118055294978035897524525838439873296943384633102520026117526769458286478160291387942238680538628741820550254099488492911257995398219380398079817611757596288093398085507595013300671433423986884433251826791756312079810802510807486446153787906244883785465398068540438878640190517503599308820117930779271234514748114484626844048120172168785495664353901939866718410700534180580348759655327429842674117879388993307265523363580541617211398787632284895607034822991958600074617012757034495345615832334888242669980112492986064238378305407535457790729656983054577129391847444934804391029933285133461573544060732795599367773999765790321647283907305748393386340324246088003440187574459881173263931624374297177141658149872619676850372419898553958749228258546049236529591622025180528662325240073869982845234568865410411026685432913418217932849233464536506378289683302707704356630088359680724426912486964248746844130402044310579831176697234242931775799008815296763014524939669640024374690882464927718177725708103301169927595203976258397680683502405123394121578220965277867200184403872139335409112544405914346387571277739827503593849834137962841801709225795284144195506262785463230027828194705665705967296991563062469893041341435043982076576645664714180963422460424235215806698989224420134138996016593372544644453982614399159742964674040826435923991258696741671844263302850120467355704445282380493522118026054153396080937031155322768579281257214169822732964443078646853318358281663101371671500673773986838248845793689772727113109228744588953573610960149165748759827797127067109317896957871661731216141939496126231799918365967810337329902294846460405648508505533068215844947872518144519253422061246392953107918038487377661035364178966093111888923600381725990285770058712851627374073864261518643438265351680872113306942325613418656791055363894804370325591706217331187917025383651246678989718443964466386714639035923362212578677897694901142852631116483440053743428828259866458502833440332254341833799572406247329952090385453807037130824911142838413189597114569940397950970000003196222120907223470075498367542124731514161321779687660503258315301263119296896241531665128657898182529652393470660601152913046094619575203617479285030622625769287587610942010791463516108021267093485696268304067664282476025398749185756050811303119238165600681268334966323198202500313591791548059963044364893765707854606780797134081060979280454967789488632955090592269909897845041658619991598899119950005935381975473851497697991932266327049121031449869293426536443573056584000906920598280593670806063624799215848305222305665296707452216648462129479364230582003004090515616844772191435280722643006395095016047396063482032658059989434441137430386294010675708659755934623847922534116823789538038980687984117924492653097371111712295133327788325478609606588256372237970398926928218333899360731512573998522465355356443342181176373883118239283860797158209609297060486945267114016918109075170900781204683045813263967706235234687004544218255369207900754009219213381537549234282963407992768765647535426437084957267817516333775834732634809319359487743997906010407704825373885570251642108166004781375113283847266735655487437639289819571304049405650108677648772461991135423181286121896256611532455670846784027548030575723608355320626956165643876758701639179740182917212179581753909437306099262844808383417405867243579599879448746966011757718800635310373460317180136590101850884819187033453502974098811045093814710473072422752056250126631937112961968780342905240286947301926952448616934341036925947859273105033396447810269438471140820294274551079333923238438878459706688780269743306872699225685140564286280576592852514778186762579015609274105594587977118334535384947194674231489213743383991832546075255550698692893755935622111236521478624779078134135783198263951925277710695004697618769124113419841925705493427844805520279383369558695399307086878151422909113543594527015883670257977671866552813863751707550570160894436097723396860368773744383025679596441783914046830664232179597770287774362227901108948699626585072591626248615464780193197557064692019142725740684709575195847004169570188954287725295376823471273561023097336819832035106458043977772236029608000638122475706297819428142001504409919185699357546710647455018782536953223384527419546607823787341830107990738551608838115629241560961680763124444760902210171981919795789959037557190573471173000005564131404603639341884764534804713864732858757731528808067714708889962105710977315061983330983638984789405322911380794307639151455567395144582805853284702001096367151258513753727769090636685935448701688970529922030438777862981859218673943333924346032671829342584533637124359299202654076025436312664764422752329525695142382112573249777997809546130519411978099925135751978190792102996915068036577049686086080962236428261891926313382048086421137283178056015547838041395591937941413099225518569221543708726449646658311363204649537453126098462390858292495210676324981361501636286862319243621167930941527377083887264175802375297681230337727980218149344305600335625083482284716654026822712168751164978335871429076143746428390666466898442078722698242388331428645198688172321004613433668391983501260521845848673061938544860020345390987693249203077816397484145864027589431570233340436410177393463783571693912075609012130954275447985984661583487210386971499190984334283269764464732016956762923386300813710840976480531276721063487563950927270303710515436811800603003965036295701793620520985240942546798281900553761142301308235192650681114755217832306558102579123590186773296019625099217870472573903548849375799359077420097876338893948025374883712335244476685999550152272096793650912055940757150714320750500304244453942861182457493604550622270292879117632842664736148875347464456920059107516251662315722108568453925225833261387742450663072826356680732901600974713930552578779920615790335822700653699224584914627345321742559506485379840705137685437750354201381498644087871206983621082646179475992621362104436225992688096986507713395104639045991364079966771790107590423130116055203661977536306207422390011347814893016226071261823580057146054322403971280821971016662823827911972040992007862966279486048045638168095259899901174087608999726294911616247029529715129052360475500537067225287034340315506276439343898283003724066421609998774093853930399529956445832729901665355756429629395750555247234814077317893088971022518133121819008588922781577282046988139905757858351516769615470854595704236648186833176788696928502678823602956634009338142470253445024241899965423590229955605299367040374378125221892271608064677983721559366959491890043075832394524973175238843560911058604425971483613189991524536322338592740492877253413272500117317961676571543481266726474943402976527932802620179034183240648497794648664472659067061932089838139772552947067431627595887472218459248728423098509614026732607173126581287450835470145476525360685525767622115623350501185262246314390322578322403456676483728526750607627563029639478717654834188967440164320847298970477919928809964954678270524214501771604456058705266001866101189901012496756969942890415538058736326367949484071575178293676191707597645550591110049079880894998144069314037101661633230213038527668188479104378249692224332964285503282291910551040089941672299257515981690569593699470998587566396239122619464483881212276349043465868239498927051110925798030851279605889104138634719925623815863383234657385682752672454288763893012882189315359210173026578489237720147289921877823899678369641734004774714128319280333213807840802310429655477640459637389516280118793344019797582280289006319775512913651032075064200275344108461116104840506081349930981166009433555039908250545204544623937767812545129036686284421024549907618230280797766344160658804175745298293166860520363217079034177727861143142449827337583188226959753579459699265299108447188815580164904392937809936839620234680870534982318169193132812870997458132434856544774913114110631562724295934344516248026168108382900712933429361506984322436325723028900048116559353561030421361322574097381844997156428347470766211232770909638866055164768389408067952387095768286753796834540202967339208361336931344764467180117461936738098352355344285963600133768958566063562805365813571373067606176012095016412996068375872297958385638473399522141394504536889115948111036624507319953122281917983890222635184735707766698648665265375690402265293148021990837375967085871301206820897573713424665989715258251147474073366672075780288649911338059662594724630063403957107076579536184491035639440863260628411216191266620413333977177571178630704193755857410615398612134845914595889917152888243956834198539396284946246891856630252755903819214611349846666909375151949263160231545491780336733577723571154591824135947640425621574373427294762969812136896289978637777239298387140940407845707828164047998743546823954358103036541538262728063758320933313802433155108883604328679475842394430989440027698847873525328233403064239748218247753204934053696503455135396394311550336812258717470979182131425501362623241655841359018690203701734359519689295013290925505543885805083168976127762423416111557387366340959017593928774838773489083279758404606282245703703857394747164938569841431542855961094115442425132421119023444549407530205624458778534129306697722982031974792036339227684042040617105423758452838254746746933786472418120666934794723165582709152081238156581051000586024488085713527425863541242091609461924794597900366375191987495138874686946505487505933081364827465119966537036191140640197679209069486989605436107739065740119385975113791094643401279325773731710297362743731084979686924222752795246788643206529267832600944696553621344441589941887352862888257282864761985051925269782293010807321539163276898135604645674528557445843410990269772174780067788421719906729560035296118431014753117181223746538924358888120582190759904081087037965401133276587551599834741767835746988415999838638519944973970241564969481845972673546348215393362480202326065183979223806604013911099286740850207216017104353293201555628503368979222421207340211261778922037861154152923706853943943966540343608484283837743289126645498307303237927988368497068685958485841992737497727525380894438542178708692571222128537934034082533649725596871344210303029519878548718860945391909003810167868634498119058912737767944031619822738418527566864247973395593290397751386804151356777921086292050452644013248911099222556376486132970278990730894554065664695538263969422923995182164052278012937352143474952908208539563253408170365055289402954283378619403653254391617915154893018830470732844882141608794908455454818280269836675899081849297719701256637598945102032705833711271675960180893353552566503784779569940333690872161554037309417095366372448312858186874402904771854682959262325789844313611994035923107607510680541398197242163290680233178496333291635786128550273164709522151043342914236000810030974185375450340971467888460729219393474903663459196037796194926002674539074086509503697477024055278136976011511116027416372686978103945174399831881328384822125683282007410006879682354709751779037417481433906188990255159903027567328220498304580468498243485372993503206292534322041716798744277659396603443188726081882347188177037854157589594800579438212061994998629290181940619045509547471533798582076122312461780402011288429773128405560327602168943613272612434798939923954747754770103249765413523404281139877836536666298251218118805179885455189246119349737108432293032657563540202754969763780932418475903853121584468841025541703530170379662805778225163695022342438458834065663548272612599853904977498315234441445293727698841289570010863415579050871200593623825352041557694742396733744543954748685441100092964121954421870282200500777326029383773207042532239315994374553245423655981827752688253530400884193603214869028805251460373639076272576941808879158601976610177170920713582478501410958640974462275282475541030675743400018503101035098433318723740171492271775549135073989603568860865958956043221045507094574977309415986859680423632439103504668631874277355636859852669137444656646763943440565069182769831686116840635283002165678503463970421945945675356785326087851251445800731367115874294068443383347503993184260674168353575536240458074609946823779526631839506398937354014491711833387847657742526930081488068908165988775452659302023357105536465933857265976288221032499920464673608380373167490558914873904617566774117971541464641834573152947181046832314369312019254432663090893807912992298803530594633674234972656422750513349257976448931215299433961358820506271256620845547084603630607687958133841331275692685441474031425689546426188669100181693280675873134565282470978616536962582523116420193805755260874012088153140319122954597113962668050448591349118053652757264967830819549652344715151512194365646284337487057072016173370277712500197813153535491549875143748990797019867811358069578817080161416752796685653271754451833316777207512970294449465961221471564200778183712845658400944886729677258072702426068299837784526510228393288929340545917946145910321351713816107210442813185916028579624241856669871894640131234907947613394089605185518950239661266904519712284958002344971889667270369092803902014779414220011010051364303704825409499971750081383196675339524452940772719102803622473385906385236387640804206228058832421273814840028790956248671461091628761500291554783737842309661460865169960231411857475605797776243204317026259933853530016910555707283977824476129643004161788959360391119993846376087091537639147633516416684966936330530153873645194225418323190521010247765017365102569780531334067721909757827448990477806285720258856422235731001953699556003854113431006530444910418982200167477328154692683093009875452397023629782193033746967164362925205280747235027513837446662002285283765155218086327576140354014902508889082871236651137609306957160461266414073963746535067310305723677066827272690414411381034791364700066379059862186093274787123309968647888846086842362255660921356610667215087735234928008858877233900185007992497262539409748073870343357754496931826795589122710505387033522549207482939913501793181239818971077272720209031900914407970893025288864398620816880305903953366132542921749472352898062614315765050647796949970119564037218376222273663715492034766826166218089109495821476915066948749344334003789099806455486533517331356759153718343983963830538712147915378894323141368317007205041537501390954507339128329591980840243269584815979794577722163746349553211486942379730636330266069580749198671688470001613457738956217429876393315005008687725660678991146027481898335636131362965622670527686524416839854189014995485721622967137079820574113247938641897247642830659577781502286530354346955172867362855374089516432294488457380642442378966662999705541108545950734249021133654957228092854976823397242704125408971093258844117939696740978586036780116000130599850396124593477843317596209645795762567096960784067487843110665782777182934709044967167144633459189886803029524663292766275341073126081095085119693530457206139206912846914424207706726502399104909436839171883010994357262686251330245145778085847401192391819930206004216656298548119100495457158431951462692940583151118732746672364358215550303346495999055194454320157635940107664086101924613529586045884080603601902623702859375818504846834496624803420746896203346665506011697631562372505565959068614571661301017519130258396536285799360942307194698743566305690534681245482807584917248473576870253202660046960595793773174974520051097580041331054960480979120900200627346631832029664986292178657668240346933362775027113382855351471990706643518834357492891368635182286558753111508227126744407377156771422918010818580162660740862802855514742724097539772218100927968231659054622780952611462455709759974547550800281658190298471881416422160354152618937543190879280528186342572892390626219121454715939864976540211901465455086971635667886032363892151470698333449326855913670144312568990194845320802801638113965221051151109143034589019184225670250377332672679010386477512585178133470386250010647829635463246125081832434305879322887984158446061034373169503987690272740350612722867266982698287667389894917665113048727939133431755466967583009766512476347508627051950204028379533024488942050358103732011657651569873086860109895826713581392784125400417570999218759265233180177536277337151013136503573284944309749679536716007776409152455895840408279559061594377852260063915832066277082177049057983079489418093901915573721544410029461374042704993428470547339090614485486695155482940801669180737263732410398470518723430605236764392060990828556799301626341113182032950107886168663849850529129543581311189736510696786418146775050702199785275584160831251770593136936127402401632457304788190255140503125654799400908664202804443991770841640965454270559742963026535175849016718084308260539681461744560178311602582388600047672762031783830990730713225241265715954836585544292502997301120897944885221059741060424498660248593388120990191414963375101448213955411292227251001346976316790575398718307292346241754793623303311010311901506135020487742347766791397437643842822285280972664719564325415390087105064221612684599763561633664039567731071343881033296414403118783826134469433587844013673236143793694649673775125015345112296782410153177953109052763082942768451972249487265731428626807494010123361467229295240074289080892307992520435182125905868479773523384583075012500679793281417646164313746928898819928671394739518281547931569483061157233850051881485309721975200575185770575513569302198878161437448814759223620119510545388843190979116365763318970775938272376182667500286265320345029059914123709784558258892116772407506395300036791310486157525348028634222798727946722528812269770558547260675817189148446986230207532193232170577479939809742419468014309106067638585217779105441876151969496263187728131409009298292079586631387733709761581820117991336954854396233146764413217630373166098101544453846558890294312578656007286419701109565575201950122665561203322877264022040725754223039792313128667955765454096535039077394128549722267792023854914355154193434535042843515661379086576663588599244620854552316540786753312540069559791986099750655621827805208091311600614587491143372502009761932805696811683935200056171619656077074515926897365166474735186929787424451979608505073527179735076035332043976622000793888402950429822853213613304893843861111303006608358516978868828381546664087879235679112555093636694283965008996268874473591466629070371101634593197652428549640622838097052121919151612737241286612104076685365719196317116513354107925071845789762874954044817416556374372960374295634245351796497301465921090889855146254008558302956810121515484919124933312715810165880143013662039609437339486015922183893125497505013362306574873493564851387440600906265624922995899624719491479584146263536586711989464981914660765299376340003378037680066497985701385966323471241793825707722681722224993891888241154765840918143366845927089913137066599400954243081840068741077994829231327274865988908232213582397699159564567736346126329429657113270482970215617237048219749702643028511630908302316020323219085924088018602914570255652839998745447888559882852168712661400635794380130611565067477996157476756520623987026476588509915750272850000351635113114961134047428423823232630331180949293089574694682720131904882812071366318692216393046841630003841379555080508685602781728418733760979880727109373094518215945345066075617019694319963162651499203179514067228227835621535588399137361296214973787387965010682462652799383564311893823717592179842781531290552311310839433584564842321822031428852818979971066005902556098702842713945800517821066547569188929546281194783940712837493431732745653457949872293292350637243587619327991010182400540461143719986400702461384494893142301129165133411044725525934268699379234702952458777636653312986177951266169682102848181043293315627693936790233661819749004619343399372978423610986525788393583081908392718705113349351163357309849237139907159970347264501269595530922680887114296382282049437278491281965277867812242373139444608782584166197441138282925644447403614453014220263359197652111077092404731855797200858234978354071252789815510553575915260748160108618036546809519228533036256773483792142108507859629031463777684259685778577545097319651866293485426043532255274830393753123026504705669454133762806958552345534563200091311045725292555988919858169021888182456942339548240957584023961012060692860538071211862849681862841625501480265874690184851662999006618020092617031827243031239648094328060820160125464728480681906383802937218722896319751625704543883997248088648715034880889212464913074695929548534517465113757337170707721903588779786883691846836581737091856038160906265043997934922419709176459247572065268025336252292061409157506336100813591686454607406227679805147304363904561068191871031459287775152930015676479322081856646846740368529787695131084989786603026252542032760413257840364716128884442779652902871620667748643803213302530217590529144360405474774549935192742597604832863041821498976853921808241263276435989237253649344773801133874938685097233068604217059525593011421402482260172175554244400710459575672803003002670949726890384353602126955886727606749771426463768930076034947430161456629249975819847948286045799725234078867219858930650451619014280839922702503290002902368236176317490272955957326040627291873216849358069391102829847054781788250368449666811973264556592594982673627902389157930200950940780674531327626657895591345658232291567381553451193719524041443489908806125924926848963492125960016031395593960839028603146814384298957031062088039190220403422954111277707521960488712034366375213909678438928672465738747628419239267284567699289701462385528069097314818257762053650491256825485511304644521937679231802278620928033566643669931126546481626573226539965046408399432782977915490764489117158027278509170842269887667647012733706057144480022647662906501905686227868557252343514475323229850094560566268456041051167928455005090938326704462802231416326018146678451534766114098871805755786087174929893825366848302110401906630925090420889693603745318323607269245588949014940041892854043019547005039032823424273986812641573225874617608546700727692111003990696246969503748167334290161087691006573748000718625418505623305895543614786214393172685712442760144701077708518254534951567341560388960354574726047960310266699007214315288200918473752465575366526189144697095205313278064950649953202562807755057660128791114532540133132599087924848463378632155468588684917741035057897442566012268965248755789812684927867344159032480749094769419572137693044113510824153417127091365014464629374304085497716210448814042675160708508781349137497991890738728887174880866914877277314989508931058050642589637503449296079002676717121102180637083113926730526208757350247004169295141723950319488260872684213663112656900297961814943625276584231852499577650694687036445198803191083567002080249610431907314960367332449517030123476442708479599774327896541946312882729835820223551864403314653297759926176045894008743557249582047042456127263873770156563796597177439315552750588480590765293601233879274817373665155278509355885995030139135394697783925603786950608964469185633596560933364988934513017289623060303060107388817486140186988837591911931766758330869216464789417174478671410671216915720652536509872413365457869475972561251641988171012577447932790420555942208006022622462561381618996363460015938492848262760788614114284946968124230204493845659348759268446506821681982655978974328342714711942744757069370821136206482058118002736484272907826110600967563818840577425931757252358559053280331479522946181707671872556151918690093120379428730184202969218822156885793135376662211093581442447272491608884738674270719699283253279020290972842922702271334774664808382186487990877033129514641031081763207826670037168016683481653069200750984269142883636216086653406884776247231785987066245101079002318082721732608843960163523194238007952858054070964016707079481540866918204870165312638644302679593867992246958098769211446697092265519742959472075968345330828826632481097888154227182628773989184118270243415750675461893791158751626855488989305352268003834685024783796703994548752232883527169909042046961928809721302419046619625990135733813259331626060946908737263064108258107314091977709838855768280503185047496903611058556804169730343252712497911277374510974758819337507349822093247896073840265913470441668256319685525852922981072711833936331125864696598690670172967271664549987605042466952427710438062658158503632545407931122387872674245776774424837517713528471074133800614988974113557957942836278937322655326408634130603552942239219601516297465237476686578129352899420548621681087699090157620997281301510249876326826652426516759241044351672192136817438250332298614329642226268099771610836480601394573555821475995604996623408171575761817513438935175541684476967159913739593639645195158277496109521523820163833736229884983299132822632839235635218621863610556840113110821680741113780586354602262006905352973249505033156980366834095560017726250619533551046129351955657846158600782521525918458375526461188516177821317174034183349102648019906563208966776376810151857342271421097058085603678551031424784163470765533645947016587778455115292796150345270840520129181214365987385919790980244167719447528036197772329510638652096071491650599658913254967137035977104803266389346118798462839432908693006801110668884911997404025107198789712011043744047595389039384167352090615862373949776236384120952636355782715114362051420870666378216296548983998220308985504696816439299171611913420997289197432419286932212339013458631352274918747052333012638685229702774361722540867481703593430500356562383483898005037038735161909314933914233798339764010035649570934010341768658837891755110849451298382936871468609895582345049209543394042939731041572992122837043981385701339609420455976614032919110727824575477055192895274002554656080126389435791534058063605761975260417325811253131270460132022869965755369680670552784824306604212721518132595065954956156103126323468599079762579882919354581590021397166581717572626106744549366646864618025602761870599677439801603979896461087805229223347181535905875137505347561922525858205801902871751154521147531055288462138464821541230991065537510048196348435280766792541624957209449469958314185306167523676065101810743756672014409225129403903578071651285411497997938513560229907010702318484277879193100925680893172647908351204662999403810080117588847013746636419897002664262268502848471041101108174462550656031205836570323936736725255689780504961317796093853756824597979426750184489423593215550161268225420030981801702423334787985871360187002951718438747846032261752288145804681876742027420505251646510080966824322156746165714386092543895133400980505512314670809342296302132554945435333552579148285670800297800734051753938794963630754420426681212506998741762056133625123945984659669702134510539700555252341581479794877959720424520972040593530115307087188590329982058838020475861739458145090371371902671192806271852500842877776847447337122919420541658965514181292813950239688270758524553831834023601852084677650756279889708396069940192029044463161023473576767016729741794220660244618743448601846103865666217457298073288060092139246167336060760194825043710216516254623682443606133727659395117714862652436312046369884778154854488303734445288952607028951126735119243521791951504741896762170970640762412487544626031972958300852449789628879235155172220196619583945797123136592024286246979216681200159036853110792967843827506318666518125179419159822378900472147254789290002222938538220189733987422093819451154306944979849990896451977378501767700854233017602321865635416576567299872057355642860817783760380594433651188257804470735291570660152536240949582772592015458391742980776924451449400423818997677172233813631197338946731757486610606786597888956909073144744394205663868120693336199426623426754743490826040644916510480373095047103471995044346605463111958127488502726002250970715228333699519501630627098202106488881628830280422885992799272261503536920856147570588643903142227462314911000254904761140798973629330394798205420324979305874162177675521899651149010217587376768846253724224411404374626592710734746892194903662739772939709882105915768546724516855336373338438601925144682058718091998835709489287310986696423057422623210525437003972307181020636732759286882875497862075643110345491282219512779732581198899771267759098432049169732896419663672952874015058724016479067817707446245243974419773215745504571783407794333873576640110802164116237025892675928101734451724338651551365946623057515958038183047919550126183760741107304850959154193845287155955925075998682101260292191853317330706650079499224583729114807341865445169173069661643291465611601072095982698975030500939329202068659658150500937347184540187906493715881442870383077860224869842742598645420753225074430466576429411720291026635133828543257061026352917019013074492478915596872902047165701600228667870008712140205090733759198397324683315519761274833015731849664650587275047296368925031009062682565643578286754814371299979272170548385506911153015795179131849593963969855665077048538820950987995526865212196797610481732251894200436762182509304589908796377593095153417448093352619470371831277784282427511433560847495177627027458764855500953845272086486491995535714279824807033750012099481011391502514958897048129748333358951749572860357761908210788862518223478703392668691657624631235009745393732899473162994932620394532734231220482908779630190120526497646543344387784559755566170493926360841562439381252552695126133607962633908814732199500059978941267045057557465675939306164893220875656694357070195275363648998898386766732677557265207992264638759416876003350926510090930215608463777759612448940569159776045840756731926617200890009776272809865850659422330453798581254637019884590792356629031359770831599779489073148442371847391802235919927206038804397158992138745567401641104119669589645562851174589158417519406648762277003535103815064945655621038619348853504643806315088097245831567573630759513617107177725269345309196163180151578490015564795508802912370578259285481643458852685263380460099395680871283309286097917234089384800140541839879812390255127651177097510948251738186938429802583339912716880661387010799860967200663050499560321554288715242205652646199109195252628062480124677936750249941755618279674858390609859766134314353785392869645443054713508333067194372153144102346260384058246748340541466604124346192024166705416892521885037599887437973771223020017678694414503849272221665987148051646365384932474131364230669682470885180142117836012325046604722263109502277585383819200274339706958483650713691204291378233642047834428538688715915297725138261406236093066625587363022882324657456018635018989329434108683086972419702000840668462313216251887938954772700874056520780122448246362318661099857328337023565787168261143634546541686739209109148374471209876095573385840961945034913828231863946924228808618798316974830113509207682850397775912878271184819903970846251254627699538232110409125540280969728843633789338863546240543219579836722916874800236139561150556140592542332963635413408673218525259357925657172318083023233694665316267204554406823066372939587453162083958521039237143109222979602888663279176571606947878422221686090483374713217798441685176608154153460791271434119628735339025259518398171124945165476533097557080413189641114397061672596899605512037569748612091924385902473745625927239183587829662898731227827136506305178637114160783254358236857412172080591606413934304240629447948147963341006458976274481213125225883888475677967568151334733912052010357118235427807168072031655390060030777404110096628407742172906156579098501569175822208210827106724856873511099431996170017031315964139624645808651870564076704714481307472148700313069375905716415795472248499089299632050815718852717091610469584500447147300341414615888635746837596505997753028027845357613145274184337456257543282078666510754278908678716853586794340759581208663393484378675772807431311960478231434864491853826905361078874243757231937659567795650039523792766911791571580897412137240075163853854722099227920680438799245825385972162702366040291128353331167092694612206887541297233487397247618657640876887624862647022558710469472426351502153505875370603427521607347490606421502954101803488952526569543025098957331762973892376654016220814293457856430564667117507573456941294559292484010441703853592226673326118192825041799217133073220459809281806831309407511353252401555971502296015893033578613500888836904596873061888479003136056383048825641742892231280182357166642839493729840457772532407316374479419272943986751315138589251542161391643415300876567795321848140046355354301027745864982747331659009540577826490263691126742183945282431063727865330104111802265407048975261850043334117680408497431515489428820344931974872515859556055581030572137867240311085521179247693423227942095685712264633996353005306647649612527403485134334769018257863896784458252419236071099670832202968574670491629741310750138964625881896636478122372908729111413951859657886584085735841861152831995098418506641168412992920297962190104818727757892999990085144340609662616580488720882626560248142395684900542027355235431189742426106382005068533091325014687614983456364867888021575411694322621413477166994118497066449865794253702854443990675185194684484406527778943704080242894056301856680656661315785534659708195736310799437513611123411549541376845943676545033560893437372995751510507672959432415350882189026525604976739922769800191707785381773469150799029607708132062143925628108196946620282429816832723610581950653647495660469063583131369979716049848741824839405712003717552241863441559423618674174503857929255286814149389843264502123725184582859258066078248474323438752239761352523280078923668939803580975911539391136578580936302483894456373313702793596789836469669191235368433150669701243915538338532757440989645294002860517077793795996951001650397038484427025295812307724516578966832855298180299704173332486157539401323304229009372463159058595126201560094846918455406638903676778002875814618191963004320200070165793971435927624217921648045421630220056559641849528825910628406012709328309766855573104142598413287650064306383532459930965671630773035232668216930684388095754998680872322017056211224043795259982397714715666340078877429912427365337130476153199067885081940733417029330629093548617377372154442005043822752435140474531678990022224734037514203267461686060229568775447105963904541689551741047377419560502700190777385786799037782146518718012202390856747244057216674511591371095982566819465294591167045196619313595508760365717532784313748279832973793024974405514804843392443935946691212089222442500135120491124477300840839532616216755253817210048337830179299761985499819325643304475256810243724570191108163776669890814295858808593479646033197543942735495008261455771785434162507745682695744549231967174565980858028995619119944408697403869635364696715959117300306148163505251135589026056687431488257509490082117322348015733815153494734754389361530824659783189811989262185387591692075351863049128296503621778521061250498193005134874637611378662286495124148581291726918269966705813505000589642157763745361543378012668530046824801864915386984142118005804089308647766522821700715801707305618351408648037085991063747805300188457758429084103827895801993737233926113453191366539470683149270151266642035918373863997881676562139212461636529676811277908112581692272489151561881942834070705324120886009844399720095459431972498328580167745113602742370747861414428229078533029133780174233896485026892487633034414071981260954983747039168446017230497335140517647282782218989334913212824872210623703409878398679436351058327441018192484620276665305097060365509368004860654354401141330616540918742630965520008657057751887126210767576640345918586455341123172310446435437926981688564887967672145872552352120916295235805930348718400004890979377941032262138819338643756061577721889675853380000608273908854842613980126595900152787103452879283162564260636937489774374337025761235229594117675821056986237476786996417545927404966709694817431274545498141633944156859191140374808527057790498581358107696135961109030125003710845098326306111752469686105121281873815184150784364254441501521149832529281223889065981559339624872323937928244305591882855426850277691958051201177081697102165846467670165127498477780999992615320880977970310778649532116124205450580458014511518834133601381025143305437909186014214492307561823332304139233185262786037627110477806947137691427143117590883636267835236853940251252204587828579727293897442311176688027940274061166010732829932000184676923462615893549419742114168680020077321150826557611778336580378970621428767241159470439403806049671367043881107811477475338544836561221537600707373994212325962396045778632817789064849579704530408861115149137012054577807848887179658766609250199120661316560549707998564800482921699204847755340857428904659500158435556677450865248669865326666514534809038561182232436545159057110929138081576945446400167339980026825062910939438269031487142990644356070236420702218270035748132142670986895320235322897440917656854053752529705659029766021838364922305878051644182092412267062445524097207511976483277987333419313212294479400082247020075335421515329764489820321134010562132659696887652828867135184935091092748493687789368110464166258801511598844783137160037407768724342602471385806681196190164686776499465016014228433875173344434305117507533546758132959675176523375470823106460156052737622154781148414237321204793157053996449073613889329404770666315539590026314150785234281272030323741882143204834225268302694390664350927295526323541526038076263609865023090756401874079340785857217925431184986901846329743351752869703360390182855714643966785975659532475224141693414590202808048715739992191313005253468581425470240855806507316503945690526855665909946703026371431825670677677197818113813204307297595244788192607557910695535924817831492669701028588796029236831227886657074461751025399476675927271273596527763056417292676686782729271394154650805183389531233613234994436365921942279356653720733082640492657025502239035739971522553617670567190499529911887656095542813508266438624108987419889160606179848009007119018200642745409175518359064127193163998254238943871968867918956316486166918411920947538877255941581355523170409502708848115517152302602198364387798562920583919045393308046943656305140339091288496840085897185104728849371589072180018023092360373455951466730606908974177281367715473358779592050110424318615973811276506505875462462016710603423266201186026481923225189383156963389426653946368585340515130112606775714763106749782232986108275593390274122414503819681069292909987536890787680690257971706406854247605133431066906850122968700959721933049090104199907203093561505868362024692875504548626504071278507424317967397436317653612601896122275086438065849158807524175709140525769370050708430068252645977382037959524914008323181130402794555033786647176881433590574017871258293763586527136295410623044709991332788727434009412122061618845185975777100412055547059773700704045034523181986857457857777446151394550116251593008679911476822967605644441511834816794889715377195722779801670714054573013422714695350338756126146270361616614558197569425154101706667360036434949203444811289138761901104890185936985196109091297681029074957145480242312747672402930371727503069760038762256298267125557980110306757918085231095499285256220102823699170632306018495937144909922983530711893748819034305979160534112661519661602577244147211002201632748020797527095055734851639601762754777473706247600261020028057474045911529087048631032607025747262792715709787448019539927547775400841927999925639517197369841999332189641184642705007539911541999791715224848925395284604779324615699658461401378082257876616019643957805922186263941975476042397894829700761450307975402467293299731759889630947731222509156123904484930037417561135348467289475541094985912622398281530609826611160388280633916236107613447930535573967785745219007502098591569941602971092850516964312763429126017198905359792023689093435835993924708987405706201233199891043113503035374358648316870095870518963711011060626206746481508665614614575889979150978353254408004095131791624665420592137095364572290933924416429673325508279373715047350298366556242286247273771481421149462835190509214927392662192565847698288903963648169736400943977194322581783190845279971623053388006297063658287493611097119812802513190168844817508545518863428290582051865606216024973697149662701351345782244032997344017396389025656061446741168207288942977883438023195746577614207121710972603029129837243408546708777088111350679796313121510679406650583206171885585448777901796873278152737339488266735894602250573734620335716725391340789533656037563623229332228915380747714016421103477351250787805969951700048715498299374800306610445728032450712462553265423711431536990192973550758823735468026372517418312426216990425212277957620782324632814516130007979406126913658612288384911718152409971307834581745510523742545504010674835714663709142065575330158209365016673093330026861260771255224375765804879112754964145196734657211694668424121306864824634004583470316266497915693820171973050744459374470123510292500134243976038460426999078762679049865339835456385088929637360405167104856081169971522372387784458216122944965046788511600999930512039396230507203702179743822275172661575697215816877910760978240467621115721056667273860392129793796289987844367730196601580539317624869674505473033163971125776774187332219303150899566572864356867454465913179295618989697466823672651331388591189325938869129156725311121303179554198573414453147671867948197993469810820057462009102022148394828672211133924874551245362702424538276458570682038588795200268701252612731037449041135615145619803770745906676448569793055513592832827029606980875778140812331217797951436619082905955509444416365161455531307757127374114418363092055381234121700273057838330607341260520081721555403965905929215819591390492964273978687913802612653573579166294559864262865632282343825598875728644701239247680701155502186774653130950960640519265228150832388957443610954718911973637331256729819403386798302776034827956057353102654694214845497001991815995571320066342439819791035249774791967312982137508624366774902461474602743591212916682290426027294058120508362436158797111653399939041278257365880493927293035520891009907977352790119936019289693418432141022165132481086757745521278463101646626243679866907136844083294907626884906084786581368259634869489987114403510701931224302449150987347380982533346071013285680982561982267742005092364770332555068158316042515457279716009265201271659881845905513695507444284372078469273027618271333696833332540132264104621675229014543530160618288920997970376403813080892274417900997260649588280647815425909569486465505649806437904196537904815970095392216150308153495718249870205114048840449697461870689142430179870054021496025450187554748063038718335283807081420716024266274019242814609260948727722017229119600190963228804261365027419847471513481965364092494259234175985790182925635496190023666689348960799128802271567761520441601196153790604861365701079256370532678810152215757144715340920472450060266110486889103673197641237252802619455908932677283947327030526476885186815793843951090020238283348442200754449595848326865510342028746329597595107031860395772610935770595908307791585971261667946049995413324631675566773273685818145803424053463934959828396958900694343891495259912933828011236703512532650840596451367470507442197092258310007306501559180048435223355335522887519848202736076076652316923645184740118923373727937546219382414699706495925440214272439643009518098822239353220029160872954433855519254407933765908787590288558915053704906381166772666049990631167410418413647102394958040231845394266932180125490177869218846386996222127857616723332661674689600913327437951071144295455029885420942148600654347177028124615077129796642934403100518394450326479004831369824129635112224202353685389700245536179755429631593336633276500205124702014054765793676649847369263039882119502357581933835920734592378027880298368951947917232022857654548109947404722906129030110176507304697786733315058097802502939080800262708032186416866348810211725312120291236585224488888994029655358598786015315139700657197636091917034512194173726372456171112548218123381283883611213293887579343049579763283562951727508502322677279618705521498284989718839698787164301353145945715642890514333642378466879325810132779754521637382222154111448002661455347855308742891845928212542276544519776805024247695073995870040668926688236853231724587101018774502629031968508625830153030031112806854679204612845072729414124928276461915268663638044901820351300127994790209085814388354171630830083259655631001962889234205523267866173792144459867224976293316802068635565935988256266642810805781123783279507712086237391196417414776593603811681563722670502028621044039577344942075295394011647984932161711511786735743620119246668715183013221916221662817149225581358706135640972842036270757335522559364670136239989681246898279419572068951826325595287188932923585117376441337168122399947860479495527359501446012513973982125922723994956660828026361795978877530803068340243576884289503284180614821687417343766826952793774395063121425668083028326269566376120293728519576748634250820883676119644466324651114519187476077009115882860685582759126608661965161122607467123064825333530646788540352022959324903706549308487377422021509257463879879471482484699722453695851863942384958472051830510540220833081790566961079614175387273530515324136512071808766162888471222151891676876786626449176096432292966489046546904223557554949245017351086717656145467302051648698348700787746436933944790596721587346539200350840230520694935955581841814534480966295360591298889869626377882603485178692781761115058455961936408945007570449802519718636384173103061420832348280178314473784472482733811449770300343659779382808026459331505852547156903918729882562878367768700141713207278480281763860593631375360200675717465638110928694457032937315146525482946036523066499180010230073023355532760306038945762742258770384735945785266516357515494710504554226056209935530424036272797116169424375874296980706680719222464175692156061231879410974176753920155491643349014749499260863580210963822167453115987758320155887613189934334250421143103619353014188700382725980732462906778748012005861219724154661185682005662745222180997728263591181045881965321049023099301389281428002692950022769325289790592240768257660654412817986908277297730839595205460734810066480927542737689560827097864606361251998522305955719050044000683286881896215218517542224948297104436122959690798266447923717811152676132529314730572480491858444847563170673158530423948402033142779886434369006824241723292441467461035860736482942999330286246248359735759857412019480860906543268574861049189933594195260209955529427720502156678265098735263147464544277474643094970845065170368884133006333999294791329878201091275158862629902998326029134494718164173652544426629211833058856297448319415506249204736982868388654654376822224595981300080429495206675956656787224576124368972463353778195812952454168539955503864084934870225389733481395367885991456789637801297625598203833173732338182906486102525619376642110785873661967812762496482162963716808431765071070329909399975609908175526064953810789761508773063282267949278665690285084088752685428538272447421037895717719625985961325865175475693220689693367984080568374841241372423745533143877030074129339685086521374862529771600102240135716178715820736727334699450927215243321586695853143547023242322420120416870919723543640995072782629089003728749601520816690371672753112689472272323983622080282066469752826315422623477552360779897239477978897340669480546039275617424256048450276018767537285973539148722652057967844403865474217399048629027832047701299131479338504683977066960543727424260246084522517397204761434174819978418069450051761171505795002415264075302302907136061459803926437682067809418528144662785472114375627333414962635836133437138304078649462063223254925434138483940898105138104434583837713063859703269229138252982778465529488455564795497365900201893150408431379872343890383080104076185268483030801887904990236231263059309084494585698446451813453418029807909088149575195430983255253704269547460659314768286741958169739844601134922297464232871169926375168965504777396522760696612862286146266669778276703030022987549875416021797826569315287059743391116628797066699175068376235631773907383343844327770611361465774567394454682823799723270460577756049157135757328720166512381695855760146199380575302817048454367320384604574679968798466208496868838629196163132755146188364868018781562467073667670932361253101075809684077919572675306336666393077550540411127466266494246160021896297946278739423277183724135024778752140585047059263250664129072675964670966498199731198672507552565877169667544602053735832962878269585645531101145523827941341760548428338603369511024959213886856751649517796385564270609930806755495814984029582336609299070386561455108791646522522303484853546462027489809606986057645495725148422958046758951399622179442705927534396934417961314145317450312936760740004031285487594995431953766672877519951174096306176645346770257909686580134287345184149110277119049894569018773503865923522085297312919550513243476142900826574326982719417880051301252299688451444705007106529970004356272923613485478052648987236537713429903301056123642905783539636244874839251639700758713120835388720314014737117277914887579600549971354749217252228504321667367613678584576862296712873988113577760272196418826985925875787425228385131526505222202338440588433409184269210827135461753153148089146812157336275126305002219493646756458347608585893833275984286635580194984848919082003514849373817274788911076202717089306921810362945601178770663401049871686200779860634395306732498880183893686202516257044232699561459420643833653503573050355455372118145451420869499820172601154483908053304110874979246652161021435604560312549108640371866504618609611596398864053609592937622083805131816351607012473907904889464708622573699822894803538521268339181842907713884299584238296167081332995724612680264329561287304286231346188448033605819654471674619197630065992410515000424795003862821425263000953147511969825797579416448247096057635283000000028538751793263484016756138958632682812695893802058260065742901062939270478177375975165584992573964369885817849349555749502462596572636914525565014128161757858934274558391501027773286711485882130501404660205993257544910657971287075763482775277137191037796043624924115133230133700815566078057120187567453361828286363475810856948214785922292831664877798427177707645490765262211876477650824892421293202846272095015971764013853979953196882171650532756447446158434680705595983092616926467462733931582019828633848101098852982451929177267802695457467719650792249043150088685738819278936595844079507899643382438858569212867251478480903624155746520595983232838848663946628494083394625334536434512784441925325961910140754512881901286479402587961464829211299606937501726042664551406206008852454368891373394984547686081039018224401392109466535349366572981942774506639582658574950707168519011026186628638694373622119260142392551318753071168902981650651042179334059422378724438086402623306504430084881318869596026861031707250223411229210236750177289937870752506883040699906963349056136712012856937429979748026405447989962375344643983977748157811962041447939429180771726102582354455569765066794805430957891847191565202049922259057735986213700429765923041350967868226191725759333593398695654097681662088457868704416582622390450400731983473658620124228982144850890377652862864380488354691383826690761646618190304155841072960140130052247012920307037081320487383275884621698026064659328047793542176655439867259483016943962926845295638082261792494623715511183687202514752395544782905760283345510448545688716591719342369350957453373052543398715592068503361184324359167338474794802735632468241189754157426433324771380786792247900513800105348594388408915423757839382022760151973025908606168986887165324390896863249835492629405625796256190379868466416117948385223107017197409056771046533045925339407473733136969306619676243929579157095284250426539613614800661863452858533754003895261597564756155194246967449436192192115646956030355313919388533478515888750442530568035853977805252990082627415786043680382084219509327782564012922705162971530329651106169694490990861785121269462300654684567759600702940157333484614078863278670225165256028301551040117546428415068386033721730929935826629939978271638342810494095928535153261649142403004496500207913113309939533510445727690877826577162732348162783576622332992615029584684047587753385283775204339455160531834960513765510378284984853814793667244430793604426596097849590618214213404203602505839736697045418167091934755215637545706273129160213469206025461084480217884690908668727331289134834696537756197444908584089199946561069585336469000132726159023048770003767544905585084462808429905281030129365027262503191072099823851917046426233384711092455988685105437989110019361098661917989968703821519385216066498778717959793520434952188339720844710740402703588427797738191636343374470347844369718665191278568038514641441362259291950539241828894642979041859363357083025225609417307077773356339215452217974584097867093270831102945545761087128165728991620010448132396713775583259482622047046232272907707580130137816291419531232053222472512356760798721811527199985705213528668385019508077359461505623195119233357451069736295272700294956716616390507791545827455094531862180735783056693600878011220388039613562348673874972674939419669653820294566586946000940582905969025695315640930098137704268990820283849256444129309647576391286924774335441887209307440839476950613448327478204438745652530399779946837701296390899579408747895249372009077303289666928821090915447047599965282900115587142571620115350616307032489520927999344023006868959602171619677839943510523309499697504787541001599248178193828146872197232916040698311060553464383200200877531462222924131193370131215563064652181183062745517782228797836099348128023301082331842307693548912932373608591495258890107811421115296065242753151631907515049734663574309414964469752039993289125289526869577950152161506758768277081616038179118564653135081021525675207202591789082088326935279851876081205839574525014203076863188519098221853847928435132939493012395112072125367423483026171371241908639411146611749192606536761135549350897160631517298163257733628877687756486485029825946950595935447428405914769740953677732745857893502908642787058297758230414836827711547872193911775620752203865075564658169674783937971750835770330899020441762474440279728837517710532942358430800314641851804885274056894983445311119385249875692340254805719007079516592732763922955735616353666656689650289909431772052312713528806057003522781147296517019267905278455884022116992524399621563060359892060437598631530595117701765202308669619021612940667393415200660612759609468830494472491020728960975691256361389352607783362073812148951015857360656019140507946830414750800811947309492403567242424265173200267007784167636223220050109011197122970532674092960399478805952392908633283372075610615311400149463261306323280779656196782682972628869083543768757251460671178706622607151780146960179440887084499845783480321443515034891693158207666694420975650470767566254025295674103413744378717466831396015293204967773133352466823335797130815209262332787764217520748512488241709706435227965603001595902200331795918458749896538870047930124243790588511162657621427677878347303085261837718023949112028141446920895858315335901693836262014666422042343148035146196121405099139437789231636443242896171557147054936669845373118917076125527984364350940506559181075646445088652321644703774281746589205081888198139337011311869787645855259334643672056891386321453692184072410745471758499928402811514264206860740716563839329469721563759069402804884613498878890098947199796057332038461966374666091455363817432457015664677198238839006422186616046140390892893208815069378796489483090471545493740643132790400117879517846341354145704906545422011065059932623021954260327416186695462482152045243075284704842505328971823987785988312777633866616944696586810605103432323634316687086838696408095764221253646961146339688719388949153309231442561273571898735325585800992036476201803422991476347494607165336853375074934581187472507894552209195052859257001813299237466532009182466694734775566393376655641296414593190545091153976557591087565319728341911157001463702201840896124707552057826063928761314755257675513535724862598595374108512784308928575387737299887971126922373406532396814398467162481462031734199670777882570095213331328598119978790027055832858523021798342224787596074871945286276128555254961340917032449400252467588184191262090152023268404176147997669566025364760229839492781006280477019073097431984302625096898392051155804319494374177585379271517263598409432979429111394527952130966256031433464346679906251925975647441413384391639229774339942866593619652373787248329058453320962669976438191760148096332452688693280677666683337708204583821709483317733946783574261513765678451783433255964033606279249837428054823949466187679718161040450314130976451181771073330984700063281305460638790284731981845655493035363918214372109213437599225520605580624073363439430113347455066733121835441122278287980081605666320320766404293838983019329599350207003083541513388537380255560440938905826242967777145612863750457676176586830132731333962939379865074649308831936196483466416341251396348414329825493837808909696045267732362466436090648476745608408834529957166596983871333014483265365278527230257312161787904854497421107026770290670385943646390569062806649586208640577413627018939066857389789699058747427721495944330026660950831773895696690890802419877646029846820496034737012601621825886504736971265566874572088597559578034982411251344351179107316733366043912699330522879149919168756485343842187845941772932411846581290557039023466587160238153125996529398152386226666342724257584977447550028608312066082076941751756211816323101686025857604200345934193896855041654193014881201290878328583607687547388132196394784596579618856750132107988130334829634504507545078337868256749858510453310839761326983226831347885446473141893080356782312939057541849125386863969264040521226255753682539502798944644930381355488323845204542386390035044552913597210042988976060715164447725730039142785052463601362471545545258547867229435967920543882900142513841208082108098921633425776295768408129361787355082791429240704284255408348252528301632701204479562911866498852866622859052557301369794671328898600412895301179652516842915587526499320584032243891019448584956067451786712014093356675599063084702911141389756438576453197027654035263416555279736889873202818980918356869276747200415866184680926841800406524709694845243204418128897088008109559130173598167356094942429262430160972920245035124630677799988295587306660854694634432603279072293367644826979035796858391502764001289422164229253096356721442311128770689306463272542305886076889208193780466674180396091116300646208554567317669403127088341526737046698764944780240210911068747892026510822644227666881869075661779697832470917476575227769946957491348561062641958031775790992856973476648468705434302642188097476070845967044635193993713767584976088353222662879518612108228407154195599574859554888123711472264338952174539883666418671578588746467710902101203336098208398614964640474000314432799580997165969258709134847807127820040732873053050371269867032790722930847180774123284085386999343578544853942512609117413263470444627089796891842608899591586290825894624664062468361346223109804572643025685078545984010691376539004502594265750785968268256038187411056476451184656626233939040152738916328481187507417209054057089966171484835385175551351837243173455870705907501971113952192672581955798645218390914126957476878979590624629786961694037685540066445716513709842556451098194034875372183167356349225197879043300162413580921198037892611846063820310156449811733624982005633309091712357683392923931191746338733358836071383457990763316513051445652796481599758240798410390837080847866416919099739702052332462363544269435018769059903022043396461361765348408170031309155175492003446539246228066639584663877664996274276429112064223193222509856516073212154063583378862460350201740451684252874898437688810617877572038268369549279201438463048017495929893130235366367012487702656746104233141192637648461977523223629457856883790659213683309357324825060095296351055071351302396391861288924377523271643124628475137591399544313097457229842461499637362372208918506653507376886752500885417804409395812481356819419963605446980926330997353008921544281720383538761888589247258732451843323559435369369427708921969004968603918189292366913024371073814440016008559265771489960202462511553625449386015579426284992573718949690059798715787660553337635840729776728285620330514950023455287924202543720183087569028612504217475483115780488946313787376938165213160306214616798991470180435536544083926582910581441641171143902219692407752872295182299423383238685368120718724218463642377456019882098999118498572207987630206263988420637073712705629379806420020784602517262436625503938379257039345403657340298653193156444557904064000835002549916549977982308290276903892113266174217891601574022128054834986874970138362438307812549711234672323533172897408539127934395459599570940681181499273162234204429681927308188207451150594815692195367077133653371221022518336466291386388262530986793880524567941400632445233372999781181734615981905695216385089514588556274837363922977565743129586611614247741224995368491655016057625643209413395697132332662492321113771479463605538877541546661738795744033712341653655797158282403644039483783298225071626257184777733593255616224756058735695856668736256260497898458320262045409935768640779203445018887381369640710806599487304759239907396677674187113562872215581214176484207645548883646075880144139252377548939782249221307374959358488150143172541471423404004627594044844883434776601565129863760561671035176019358203321284397171123083381888563984257865406874810409020624474107363644132481222475585283654662867082285602506164738268964980456489137227585477197694084315428913270700460497517880302287841015130122833692325346287045526726536617290802802356763583148383244695937946689617706774826326414628403522290629002784121750303018390897741711099090544874897940903484547393829607690070655450106759764331288748124499124473274725702991648971104025209498353609348151225887002404255860898548733198041657400547867538413549328344499519414433597083254040583070384939490107070902848315966661387218043081114040116791745363689056316342983872247347430463011629185102784048330747411683331960579231362770671869126048820307862615131190667532806178454972255098224579383565188532846908976243814847528665440759357579471938600928242212366198557618617906204525690163182225061797550260210160602733407490901689979303917666616209670307438189724884370070917118600324914373123241043407370516303347611857288701829712188037842868226508077498177294592153418229463146399627224017353433168069332789634126404678050186042651658199039363889589887524058844741131915711769743128265785007046474629239258796803616215228524566504343778742968646576652765276646936601650082835309786990631473952046284279932129409790300492698093786208798550931276995407235662512938497412611116007989552831795891497663663003425131382077645641467938219102940197405179360700886804443500910354889680002079764578680378109851230461853333744210651375647085834247578945724978969442503031247717183597376103269608862952097471106058022257431169623962567184757364054157610876320725811170378456407835837471755319288804515759065791811699421906485632372155458585941304045213498690603141606826390648165413743149620081859953658066879132051206041212194127247805307649396552709287633183862003785052981956763926547520405464002498877816294261661732224797870556877949309874359588175060743942977235361082988825459904527570833830519797840169188414233213316220173787720365036955738612016926886502173431988201363014619890613137861614972333609056084076324094935147214467860527135973081321778315261400471718652395843582382494228276640096313657380025603446481984481081969312024842663072166976252766552749429063148830447842176258822577857091397660969655781411204832572551038572410518785445477851690150737313435164260772920696994490507622539914798365293143258848648330689077912196070907465024563934786865922176537306662079566088395621772014915609613385303879860045382058418076575803732143578552167059918220453712011039127843000143918850854097552759732638093822141733553371249339192905180190702579299673767580209475526215538886908749066249063014980121243405157090406819405769999617896386287395245962092461114989483986179436625887697889865890692956372916764783170956615857846936713436569531959579633733533147939024525070578181924412850174747686624760084649825986487763825935727064625504318156526543075262176657861160416321272996502749686879262648391958556659838682101240625751553824821696735582040251050439155824713475315202849407650266157797804370474082795977047790246825078985781110855827353842443457400423769803617603281509504827952346472358999993631825850072606051616455784168425118565018124346862714322634850978526233731458684562950109460755699948836717006233031736958033601148287538325281115212524877422324732493387823140492918760946874664130677007259884106656860793962595725940142158342725977728478168674991657365230500950060958158716544432763063075667917376379340065391881120193480480554577800762030320641757226080283466330904060403947635989439770907995648632188634537881624049544981857909378486862358621875771766897935519006596110535919652641414626606861654085928874042463388159949132119896480642937049050526763287422951068948894328725373672339861531531517984065346520732195656830749434462075205007574281145928952195207325246569427823769137294177039338033047383890984603075393369823468041953878002875720218053314644822945288985680114192546863192927594000004487584301322397994125689240866672251928961491998956901254089738879246947889278051823874022561907068467813751980359111448553202680979437578565108304791519759455367876346271918502018210091489819095248013531600420708667434571692799717883190050798951448741718700144379132671216370968073142674095872591403198723786031658722985493945558456207129189284065942983893589167737013619383957728196148525298338559622198608028312413503937862714473922706456583695698717802107301560236605628689241870641872120818412184042824365141731013272164238165284438097924534349697160375519522628393078697562006576177114886353597911104490682908495542274956023624377910114340736541190280241020521557183299018394237149072461685024127281233641359045835023877723562183689424948210416767835470700486880878018960173418700539392147450406242019271797133870493313925685177595847359573618099694227151592121310561433818234281355327364468587177878298150854939102164550095210094464565401846657976836460638840881049438570098552180667915198882606305358582461018349067413617927894622443333440745683255358385413699548908494757626541153393141569304358132862998127843923507148130931965805025492490900004734006928470098210009118051856563266120391147607110182188078594474434731555052616514396691176588338682613413309528576386223530763168168258734697372786031615532459039229345987927585332967407656566221577229813196019587029878685619543890024161438997004421827910479270359317881156231134748784094293706166771768906908968914169147660367446393862963506297058460573300773574798318380566549125905181560870804362850470388231795443022190640829118474526412745010036957289761611226165325435562523556968787051921233504369497570159474329514658100758838262786702784745286032516167541764170717889910532384637590117846351470048233961161345741594600963785219464277707392101568726453979439934380553176209615573250611184163464605913242072922650995745301582000571674668619006148665170171914521184824509685914463862251464251903178544908447131409442000865523338133823159893702293264751608396385968229303826475763719346588465087491247875405403789387800147343433711619687671080137820073909980836135173324420836032840371704733945242820004878172360942890485774040943782501305074342509182742755714502704577055698360883655001324280616349025034234472654234520549675580268384388024224417747671973249226946031338136119494846539735452693044132963003693669884756724176651105712818951849132038218840948263491621000268017185889725626843257944122430877931725838138305188092220843695363712078100976799314415752471661787913890730984871446884237712622814465139676389038198929703002174419165650441339369630718318459356046869800305852963530011232252688311237961771387607623266955892530450902339405226527333464014566625134259816915626028138550137441962381618236157776471127925201522116153239509444359290636361964804999099003530374418042427829300041026011116341362340488224131907176001062753628631282638301201851811936820697968942219978524604681887736594777609038723210013517975962054318348849872218180834301665574107713320664460551887331845723614322816649060971051491940817792152453698304755935650628802901262662921821350971584696587170457942284987720146452419418165725357044774453069952728717345987056088262416412461487961436294636168470774288968902324055101417562122423068073543508437189818449760611593269127135249726785740505386877570691493073605919320747841505762692351727902229152001869940756834992927830764591220364373629966423609170223056566688533841401997824133660128855972218736164244611669490440631861328467983390781357905818069375496382303285974758283432743391613693039695707378398633116708567759539631796843176725956979307576061159577760701502867809619942262239363245447350229939522445363734917302069196654170912397035856296028995089007469448137845829645543244915197901614285038617567471195037883099794274440115838451294146810712407271604797362652671286685475028520315534969623874241037480174606656243098044026604391583506671124359375904654086576465979964752053667790141158743877816013181669554144462824116496964392709228427917767987735456330729196513459529017624572150621067305702739315730714262048702592157872514961540867933661735546924170250561760402230621788592674408989941995421693783052418847194985101612813251783113780140876509446231273776906536182756235064178414403183132778919634933215390598342790559075539920131376685242175360231028563232952380537401603295333443230313610798532247137012564015543552542480903533507037192126857182982745551544837351920464529141446868479490453499621295262494111086406316695729417973328331785387372998061733976880876171185819853805446276532249041875634889934156352037334146143755833078850753700061159747444395086204145044384189987106292658222550143901507886013403684544602841748411919972255281478853000513012541872423334218532569909956911306615024045996701776142512420574167753978625966407621669495459176785074812333921868089927815614778330640499448364909108450353028895409111641514733003395554404527030423763147517065057874735425109608273783942496981873397135943207843581571272173407861251312810582886219669311773866251998504829785717186290587042721575634496307662884636454401265831315098065797545786108483157807675051858657797908617682851071778885604641635898330394513883573820313039269738292624294601518828167372367887223889694472649579532102863732748760096484810177889904408998536901179833606151930565427490982856957571636348395209694916428495378412795645278497510759411660158694070729919091816145523648306052027047753240738555938660318361523576420100815661197878221508003741217608407499349919480241101380183122264257768346867611034501775013161415330526630954648876776287294806197302726683807720078498709497790412820316961008712476195506695032956190105379137703938094311519340816656232865258228924158965857356919911534948315837587793113326882833467328161806660160267615682909974226855947262772436120891778323124341243609393512699994408942531807242042178236846224101103485550910474408863803983704352165221449502350501826678306159721381223854152524961939113831360361507957240953216969015180246549810076618188896436211155736244533700305931868672742460746618153805663643143981082738686173392703297334837418398567781573461853692042716359413118481502306814393876364433082508801838383526824991571406966665728306582090137254675729022795413430500867074254924023845989483153629719687111711910640963180414279147161794696308751067020368293661160051791028932511234442009752166266208859732005564096956551864751304960980644885374477483385574776950771084689536958152715492313536293710078911175551563898939281392243968203936618246617131269342793458083789249513693787946803326606741810930297122991079826503698606426009169419881144744080367947154148890146088238743724809308548535361831355044104379534457945859755903100336655140458576295247693853352385481020408501807509994020075008797544455489347764833737744897089785418053466887145815147161266863741725455131592218415459036243494693987440989987607490201864660706762791161786654424789126669157182746378015682692924663272987218576524216944237297459060638389161016996750839250983139317021604348873372675121680097328393228924153848528772497185297151340534856467453611205289926068529160294118825380489370816395981100665816138692280053839348824899764829889531668081128277189621211047150939545311171657394922268945476325741663998609053933299239441189187815164449723177162413616980879755528549853377495581165768776485777940695871233588774291113849726379077665126317820150069174556738116194988810441677723627613556968096222523795479542444740446331678228281199159771078332972252511740264070112605034846941512264093367049729078422038155321162541122866156048217550832330943130282749669348681215055191338501419782675860521861885690570839884214306120734200871267027119486045161511191596358614190920126052237290696595781840078745973635617492779143948007421846443174939596664790481476299757639995207899329086062325830794976008285779176792069498813984513088461694929608082162415630644357719008808383770682792004231757660208693337769070548085950217312055530880731620061053704595094939667399260957441284715597205133216894398462145301866819248624536694907333232382697461425774906437822163911827822037920772704143245846127552209096210940538813498615423873997332550214219429165252553622115677509129433924251691969853779987852524897960577911833601348119376937635058865794716810664656927726668985621805235647232111409963288738842918852627991961329150727490548298882369270096708852909384406900168456236853222300841950934920105009973228579454023002202754637274623855021066121226696850674872135007970925678698095173872974396736810802687682020967721176515727536534340993346727078427179778025433142132347753562263627986877206829797721692930043566548048867132734325568298623228853855436674621324930383828073527281767899307751641925382264886039915844341994068975344924871336109412664967809687038751285512061099020497787639359407384151712925002148212717595008084242620261353745316116065475809585959402714657260519339986263605731404860642108870560750681324140747524773499220906776798140676274635524648046912844196227212942168421668242223711911195872146723341486614970698578591967899261505169095741088603549200073639417266944430457626809399749743972987841105484947778894847747042511154919717760174723660570876665610549479007237217149813601461259644231611217954902339540190868711458043327516123428082466455014106892991443547694846298879734380254184429163624966298979447432002882279018662762854486796715883689507917743387193161421066501083658492001076527329126834349614080916259556113784138808197721474320449951677577108755848495428897284529968594953412819622879214611299777437875220044958508870015809972043569260399274193118651290305324756107745739781140415473899351340195877915390459590663742505128290095836587782415931807163666758942093267194700798569625289679075443512598895182044325868979019223569221907381959674963343661310260342282289274656108232114720225011706789274779638116121412250708055376185756761911465764431328874172314578702323695552242916112890878056740179330962436388196932754933173626564037235534209170883800238172477653268835000074982471268369929019081919196676398655782176022404822088845815211037358082027964511768084446615381897921500828701816194368134010379946319208952251146803866667542331314785406942158431673290402410271150785869393520281250664662727566797775431750178420201575787333599289429600880383338871113364803332369400886411943489538012923746496927814468941077214806623404038909048220665722776894551333655564426780340766401358426497385166360588664158106625110221337274161060964732113647405807435151989740288151020535841773337443537028635036674329639797439538908324798420129008681141305864867797855807385089045703908369493069259238471899202161142559340004679232031165332117244421149807914290324521122259303105719569857971216243555371643197234142630650932430672239035736557794961039985856259129513164888101069397379361631224886486210891068175861634195336252375513574458287993125609010398774642628760567491849962602217794297280504746258850376300808418430553976938146493199122888883623667531688687619636833868589100015934704344896706010956705709392825504362321139571987329033386955552238455288822647501110670797493410356350903716655236916341853590493316342604254284181495744778567709150737207822456950101650165265029536137088351498599269799488081474110372378469980783858696665102049058144647925143340016861171764337878803669928833985374872077039597056376222684563315667470312486487583618598189892615963132071037046166494319669527611708996709879541137309116335579261399525155788180728523378114091107710644205835433371816185742230659734463829176642981508997032058559622909992784212280479673045638274138347365824544839219589535747001483716759169851946650373053806607089665344266719373062028404253791401742325080394078454073037080569861057475125120572912959138147308591731951872322978285843154840971712047336587545881124830680109503615558491941445842826068692704312960924871104482128944309584816124551836365102508929845749275902023677745755834579048870053749716033446581074755874588961710482217988269766075126447836453118163915003668147448046560398074917346846293919208880113309692391046275368667163489298327069437009807786835335966026926248684997184445652181506164021784018734585759229261819919822629448504665202423123657382071392071952927492318191764250344782522976147232560228365639244981468895076543165737172851045569906619864917428587310929055098636837395824341102204318515524732995883424973251411367757850717320963609423735683110715236448434300711635949005670821137921013694187480871544321865028809252945017646490087213289785542264986887295298091240133186674242552296847861805866042255366125249729938989269794075477390657038719813337044463366183459475641853622242503533123850974848288284516656965823808087267585937758199902412074487288522692516468051853077948639612269468160039110539539113635742924939530886429677906424730873131386143512413255931413635919314777638723422442918723404737322150207323553495141616514717125484336495761030851803496831529474290056282684423669524039559999637990371318465063052610631119699496754154021699205813973566811611058412334065465767527195670328050536682304902576853728908198086040457028302681181516629529582272158563345645796913351114761516998756382312600516692994839830890251658599044824952412011491519582549077504901816119376188452404773418813732470527087566248312202462987198917456221720457990805486889362411656658504288563409433728114883767997815047971114015813933472763486534627019664001492250831892290380019049195606093707605369914822551933963253642892650726610387525282239382088517137404728231401902855506864175790114972880601934409678924972773498074246806337073502917686389166947493789120031647846467579877349496542813344706488503050340190052543926484703394242914879101136414145293077020664156051731311204367864358377957591563640442193613788317602700976863218176040224729958769101200109386416118105837396191836182633364434749258454900139719724736859074483434083502498286556302249105345393639906961692236738333227796206501610383231378395880530515575544528433688279711264636337741348506380149676036210089537744139486052956816088315846450065486159376362816930437275246503433374771528669120192002350768025697800027544442009111739538701768997299752481740667008622467813786903552588873461318613858151511340257442928604264758604142833359881635165869700344972065389213288392625574667045947851228270272886810286355496322320814323341766328725467948300172836467955020861656811614566366665994452037626973384078351229155997486495121283215470972842520322917854790078327209398753668429262297541759701492241820511479612413188964130096006270063922733525440600721571508465438970136389862089413121328801766501579824799726139004481424545480138661746466472520097618610234886144403277899707471370835179006066867789419357506542420478043607450157168825503526496953964396170943713591613340264550443981655429137451591986367180389309857584436802425772991852983556127891371312810642821618729883853910842573001954659041380406226987499246999429864871956089527995258933176299814053052399029022673217804690368144777586472018947873847626811819100739346003010322522793519990494434850830344284114427205276681696086773633508775870167724347539674574684419883322343821930655341539144299031794427237071407066830552656764824792612350998931697257535372540411222348879214408018137219146983877800232156653851516827458510059143714067639537107851499173911725906170303837311569384983693575387733266032690652061571822972388183598027821924997803668275220599822341263012293951491293344151126574060209594977752491642750791892267940110187388024067234964295158183829140352043530538638377686929435401085060948522275539184062368426162254084523124120790767662049225165512177608026551729134575540049709979687561902291776386351723530190311145625969809811108445210541675267748828262630326743624770937887774182554044370890853108200331045638259225543270967451715235403954732185948928640277859377660393047996647199192797041796214084045215037384302209701240272295447476737245931372865790645326813020881185410066536483190023519216382516283918625251320101894542650275666470618563516364685169676013469103448634498778620453705227401328442245669041644069321043994788537718334732176650404574200388342785393400207579903135716400431382515356325772412297307657865090824671143129139389082169816824945443375227600775370930447340185742775560958758208709676266986174956421865368987726976060037849561794783699065140744470878726949327922706095013862200540267249172767315849029775991470615372604238092139553658844695940372987307419556958940506758931433731105449197600964461821564368896519931935357091903817178159452632965383974106324785686037469559319925190955910593154854010543189867661823840517083286594917718456892642855559007748556002173753073542202702561529534696710846337034340299400872388271405596842563345036878179240437265517008252094950571131148195437312453724087251152339090653134191431718082206251890181572222372872558037968978070386877467328761151905304847584737396724072816104986226883030747557179573796089979780608028460787307612120392983829538610522693366669527854504197857641666064213666119828158900266208890934629120194612679428340472555175823360194427362020619858865168661162729248357698205274563169226263335826170341226285825445507942767943326859860486556534282416848778678299826350665337361479035429149292754223514207017498953289379455345771928554573471661249073496609451256264457565083752450283404299963952490318453835905134920164431899040747550321714855850716847016882775168732889670983554948154409888144326308400757900513659774191391214883304526332918917383164092172789416783905492060737553477284555383581885152473144421190476503429932023176006862215466682702211960408434655027359677359455430948913609506780514306058228030244000613974317936632431005903920613620500762057783241735641706805367633663259128479257298535658018917420564185023685748413745253076248629664209834060099646341119294674616043859257409743757852816358217518037385720639977569965773235054077439285386847807401536187963648559961122444118160285273203511678776736090589130894698442901268410006135751501310004499343251254972503668724421346127982741930516216442342686183324846701319498352830362605856770744926082668532277015960658859111739253541882884977932050532117915759388915740867766010401519587964027438579542716666580679481368022974878463531699004764902449768866341603884718036292307445503784222995762634493267549282303443151645488789403512928683951443488893547689649312079729830247519894576486054195533770268013997408367154641142455881064326442520154112112622930896536449061920098117026440452343196477868961242484768939022427747448180733462454354590930624161611514337025978379452536716440083925966638256260319563836106892552906317254695793644500775535427429042643055787378707673497323809993788119136925307236323646647882810517261597278931820305409246996428528270223997086123320574923324099829085530423958391584635155422075611378426144478133897175495489174897679260838155024772461651963044715953378508722895889063035720182720621724280219085218474625127657556993590523069842936338014958318413350382037436836653667412042775982101638579278870615463986165622856206306326018567157961506639822762585481434832558209226771869931312350766576310982023534779433645996461254406212045912386404308469697490423097277708011954774034007115406344253825595967151611673775425012799675869693728869652760571394135580060602134801671775035566791295116876635459140517964262795553239199259734075886108541397150087357833377134257449592057112439869163430618503798210080860691516538329534129034392625192364376719541184164912376354973756486009512506047439596651741525276557257661574446590994249187875890557751649098692276438854808600801931759500508080803682491721567090741611413946418960408514789086808074899993617076358255400005476835574700009584831607135205315370147500328379555150735209047345424014170989160550578701293096693675652000119865734884563832948362978784542700263270382848392915450129365000268984053428698784045398491882913357234837586083172769103563293446370706082097229782022672171358103520455424280232323680024652258755017111536837968021660272048696629233523815142141885717164742485059674376587054079870269775046052372906114615044142982637058196102125163202764618401099114517527755654989008667130446693551208640348905586286430681201407128468184357943277684219584896042308804581578780974125292788170390025327562121455667756732785141655194654812423328166263894354559016925456488219529090381332182945449787538471664808253168463918294389423264158553413080052825900343403898177287760028198947478845345973340774235339007472462477869686233780441776853788707326285668913425498270159915896747792214975532957269471677154019692365719485738069950796187876031680178539235801119369720335494829053153644925916308019597758708041318278151836471213630930740532235062703647314572108619849566541203037450302557185189801833157514839783187699287648422693750697690767234530525057145228085092013730141116056103563611628803180180757576345188978210091664295865789789339787670203868446074385276600518171958523971559680170858175302369195190293706583318666506460418384622730804729344031779888003261898100663406723737497981508795662749715752787652364759899105596449898638468269246256844429940927687520093793041570493890730746816054500465297105318449771305356764995925031582265479171172962472448306469915858850700068935391637143337076296470703437372441072469569788131056519556285052382979545788202707396143888677050600012485860011627070542772855757597193917260550207053326560338217265906466024555940374688613597107042542224181479729105161959842076486646555826945637003361252764644334749485885820613324694070524573374852132244228185701365313202113729660325141992389098570017515855418338934450481192506226076945981633269066125359777665003616221964233929414250328146025011619600082877648224202823255583939527906130275438169994183678265042786493247105917046885986771959850623953950586587747358567401920471514839600810477247419633856802015517303351577894612782994279675497837157537427188349575416671518385158516347825131170641986127832892372091015102087639193403351816755662161522095346110410331117187618284773059347261175370344674400871813827138725983893308661460473754673854052206530709859213666733232788528431374224671387099647947510605780881619693759203511314483586974423814849116620975278331228061138766972748087075453004935741869455152835194473520879920143745745355111556140445075272330983540697955258669787022431414568183672534258180208192632501319544829428023473902083113010954779696680959885823041409408831007243182861676739209593734879833889259321259806250059867253872737872896267501724862990125110196604124291977212175502856549291587776662423969883723919702440696620754668137812494633813075816666103047498511462481391814598479228946867511382459047727967574037360192737786382520259364790953335871054893219616700602568920131174675968750333203172943388918041457826128329049190173353799579682638573744869496584575811799585590365431977062608765597928551289554396243259164734166592254684839433552432375247735376510396930548545469380627306213379943115467926355080576373200707277786057619463844614483639844304350140258830306707455629985745114374369757916157907202632377169703650828852196333903673898780008122279544469405379556669801360995602690917117638018599033683058096752924564414111701238685266559377312797358622614627372392215500133163087760053333922093257801404609677635453109985790983279995548961749040741031109055013746292554104990596605441840209019564333851722553003954212095868442915770369311034791237908667838659200099491836029016657273213268714308820632721675123215989327786795748270668349117830605711328396238873987361619849929069611221757333985912308611516326255708353115713249563765815885207068616455170939101956014644286129080282826342333745236791410031131713744635539275341236507796432265696941322165761459235763088453114534723185451133704995202761719647545674737033365318697166246768204642089425725361516191906287042794725935903531313988644285538171084222250583276917919802278053168507505268530741709582964315529477930924583710381225042070614797824490219760820616841365309220185302334984084930432513418165549573053587231722359918471101969467718448083631091990302363875987027317927663149634525816592187488608695909781223793604273708146981583265480714936201504359110157194105396005792626699118849878379270280815213082237037694937562614150867854113377938576353867901078438994017564441144836187615383028477739203897623172775949492788274822045626429856890062998623867066926890411815432757819975984480943182524730271767768485307305058436605671755732535957596468160673445795530878393787926819067464550959310584526564027739104360934679577754808069887626145699859490669234806803663189391440735415728484280856044655538071019581252064537670532771995416504104244510374695383492636049823021264801000612387428502508756777347420221484136751419703946632926963023839497502434549597673783010857850493735646418221541073400191705840541457031469391893610737199745340771863504204555216955119903032476466874135362170535596155180393172661670246383743783178408871059555541602984102221372286278325048404881127464664895101878970144623503781939935986606373798173051944183241955197994080990240759222317680536558492143700440351348926078324564272076446208925875299339467141488387304757400942437585652627034219139013121804028849433633831149863629730841768445346154845796000369294568351281840603273290845476139860519344339648406640840636586774803008242741389976150114909847425929705129735717181226649456852208032913051251244631083516308182093695620614833242398064725131648700228090438966062092174701459515643623241158377563643538761364754007183070843426458982227790883938455626486747271303143601233049339169134126605760430264490540101207515362260154653493009398797938660825600790553378951675574319012902407943826942284165047635941257152272141642768186255668611022091898874967059500399974187933320484284016655606902304420730093897076887528142567636042591701483862724794111139160253914407519343756996865138605072345479396614520733129454225162001727384354353764563236353097986437438582062686492014481876326429325968007115820631180625547348468854728321649670834194209635855332793928266556061409406301288933303536629157370373405666208498737051908153582086348497589318722045412865178147445683497254497016985844136288417311300977210292131604438453097020228153027397412013055716951221754459648487806948515916451668848198044271489996993546420794110530532127363709538880595231010116820749134429619484676566374103306576252618209174748812201356182772878650956039382833137791020805573375297058840128014275999313149666285426824736332801343695429776617857747240949957764693196924913711863484816828991010074606636437282039084826812693683688448709135613882793958706423969980176328358457857059597278993992941133066835271707578897168237715745927896904694961185474777512439263426767354773333576161437015181839868931518125425094904279702056349018123362691810627715560047021995951497897258988357614969333358102365803158638169844992369630177037148371442528214519083056438591558381188813853162064704290690000135544885172173181154224234175454111950266247647568427140123609156562642107790203345137697789165845961302029994890839443272742590571316233040077893709082319326539399927086302974247673289852922353166892372312616007501122811833562425798072329444189677032769634295992006199531326727486636218497361181994173148633196616274818870170543795146787647540628497920109981837943441075271361521295885284090792789413689941330692678116586313956177272357837741024745891711813216438839551997994149821367611157702191272288259123008737092178618168701927077178500997214427127346671117388286579677483220545362120328196693209807702947289143189882517749454770096426549021807629298329248570268958333552153909284441416579138579948477970779418320744094278047508912358176461954269935868853179059414340493614549703966861309614231240546108900971880043919624976269656305799307629452719229355571115065801367243965980227176846958063533797870764560592001543778587952540531100685262222785952390500887197537643443672491076137655215752724251405574229258966781847613594481694638844187232828229997229062442543404520248001594352978470374890503106885224841997585200399964244176173030737483005257063915425293532186438830288406879226093260527709835597092520450044231773614810722596301853984997946308326582845731172883590527938084132504284991261044091414071864415180636451677412865004880208561321270604287541380801166201649538327607865988449951122096770937315699415141118353991992766143757762998017753422351311986171004918479902706940570784117255002331492341181446405131012652517057951917814682417847067067649983324803892082051023040005676328096756884635172217467142269393637191995199923986025725348797882599793012382902319224321135095067832621772980555716204650717954206525019700580271801691401813345177368083405033454514797383009699470001704101250670812490139995529056711130296233855241980251251725357111822318154290066037915958262814671898044028745863258709687237260157486849354626114678545633051338381539771610936498654221621412538617306768860967039297807765341671172054866728060375283548776516260028371780036499995410030002363066382101202970373446072179296776821140431633174854231465397150594312921616648497864171250486165633605490641878103883266504659316646067629374126476743729652011679687247715145377257508333729427176533171524499517657254751704235190935546587590227038538213785119808468032691546080641165688871701931842527490428120047081995814411519758163348632166133346952125440277531406268593772269770413302612316353722869630271073809554061933268489775860358781619296556713484532875023258524290329573582055200215826411544865793896173814572772184501450024125177626635146233665568111315972550680281594734927548090198118597671160262445452412975219473764442775926332622178631856054358145203611352863183994490537090981069831456109974252289905922160330642760096318565448009613399249273422482903422476191289811233418748798097798928878277053247153607862030715532426317225488529502394705169846401553671666639667838845131099873513816747905111007850571544034352943495300502124104712978656851750445838618277518937910696179840331458560934883932357210215644078290252783230827867100239650722477042107041010626563206858578234237948259194151299315754584449163377347446213579632976242823573446568860776571995122832869599931307244913741505051845820867347978369891098192079418651501304265864704169529207770365282579873390531652090162343012848181209271142884781493309315771762669882787094581701847948405557607828323328752810871280595008205688370396230065633785089649168371885200063874261030208906936847942908648774149952090446925310458655309728904603909118576191924196318699806199365966494312356119323351043137236044933365269780838541285036453884801523571357439345208741771822400233718519313157418523565620442961784913149141487386492788835587574500558501081800461405439169881276065564218099019694599258644580689861510750061736581479887009108560636855368424926380295970592294347249885339575668181709741385077241606792662427391006275532833347463923870234365196245496328790770323361138727242762666666818814631366747921533131766798736673709570000676926863425530553692114837182919032175921899133590789575334518847716046641080316506889054007332117827198366769546902770398589847596530823947093345975414370292117935334600987306526757245323286300747556591853290160750187953458129337089662444870022766792196169196389935709165855983128163027579852776662323782451953721520081986966839450891280353752780435193366108083613367871600901816236387993982979309408220827271405525579588932150077588999968915931667540576427171792595926842655386656745105099586771221519050791265241054322507322032040151405013541426473016792686786539591663922549700998838633120059143115998526196805994656725593230180485310806184674850038398549720554029558800722426548072789164941020200748492542444214623303141851592464737541880358291862599282826880750795954771353613201748587041313117007462997286153584863143700647151271346535057941923557013372663855784228028654454730436241690729506116902817883274124546478298629991225352454883294620393726462784200244893469904027786382438853403022710021709117918232094233151796809974354682846055621858923289662553221859175200572340611378022638510635786093670695935176925000946597822956936074161372509425650181499699141846381634021917591518217536929469225881096702234351070314104758787638207129866188769123600814914617484941578818550748186714206098805844860936133102682884194276002515288338676753809014403088594634994773174922535813889486059767555131911357557621888626050807263436572840457591677223357464007585436050982723404548544017613775405411557473736511167068965822956501420082403893967787230947710631061525461648758020211111694967463267258417383958430159400349921086202843826388748974102919558292349106468045819318337190560491439921065557099325512975911197968133667935549159636588242811359180857436307914673726553494254848203309456128513494233650512298556587582617276723303213951406571328093353853309692282736635148251038146758576030509281794001187744415222325684036787496825543964574007911244229641665792480214191303743876803654149880526488390191521897176903669302053902843276064470311096253477771090356438761933866058727127348891423413100634968945256987348492453877903850688629110990925402182735578200595791357050400592415028740786409419382312994647052711140523801165876913443510010828928096751716168095934705648004092174526762179359419938518504863966706869950937170551855063260124743677288953424967595101975583988265546348933992304272046087431169763416565600393814366241387459297433422873633695134567545868929034405935040939833397864256841269723549746564141866023577723291982493471310108195058340003348516245089109226383736561200089069323919273601930793581034279648830623380989721385633539173524546098062977554096713314809810461395173199431403592410574846810005344538716644285609333394636072369882605578718486181160889654610511600671411055013010012630243634129562950060019306277496344108778419619194802095563338114153635158887409686704311261185701740275479342914385001792699222319729179642603731579914728787750375336588975962703422813520325658065648232834648110745977191567394659059398321938270569585024475611277365342340907525797146017335415337764197270168941562338980668383061075088325929883565540825275173441226770942055631602402611531078631267390108835718884961885767070043396884726959499584891191249030275007922407498102427135942302318301568586729119986865783159319567551980020009824340254059469326942878974745858283184341404475076137855821258077775042371901072159548873230362459574152376050541752462843981111230930065106940266351359940715151432667395235423386470544094045313336302588026009224712403923169813557765660287562852196219076493943897398400976517058722280077231522288181409177296074216857685556621413863809016433287294852102533605051503847026468301969325073011601811642400762057821227100192217056395732565466115151405849100821505756647864383683702164751961654232587881783878707275208675955577819237234063043161421485521855196958474408465629045828492587332065590779292906121670969362194301297950229659616724009261723328046571011117548060298518442353652731635867012813791894464973773381445414579199247043889649557399491844609963296766014685389838198572257124486763878636112011605846515352642605102165756547954402304297542207086138731854956245871099248681281383281458863690291611675729596447377917608654855315894068833939934848628977098369890297842479676377525605613618378304347607436162963037479645790089435466664755852327662778234727603167061335684515978132211055002950686425740288919065163886181394408589119261760889082601307157561677041126355812180413401886400865638587201646060213269903970984915706018660422643438774878039575748674607813976945686737147034989223472261958922000190743885460473299375594719150259832194903855690893233427805716152046521158709282303986719353659621704922962864327000539362943647876046222768584296824103241884874577149474779732009162625913412923620368642622806663941275251725444360025182358009158466120979398477974024572384578293148412734499944587160318303713719758844281512290727629054451591002675151624150838895384080053398656323055334180775895561896537176016342194098274682097933872498808644189109499380268533772415102779919023903571290371575305954328056550628174824383845913584323865482328512979736158079069540841021375993448130051402636497660652947534781162643523476683279140553533268146769387096755708048552725545652513906486581643528826574373562402445749634012116332665683595681130357789810443841738726133349612414254462788839403899681979552696838369468546451129125566746688738519607134125539483803676924463324124412712917399340187114811860544008390027709598247287186938886127143335918271758995947074928937011873101076618948519677724182669535759066567574086623833318889881148017749309298153769493354087231539437336248308107158545720527937856362510078578861981719791272345417911846967944204784153281243770228635352917252212225139948891079972708047223628263239304361561219385003245821675212570982648208495726955782961248407450552691924483585908689468221688240995174847184643267862405811611748622050313437083094744526546408747446405969744437066030584447112182965626362289472769035976487177506452197365972378142549604842615844439919690597839302661439037891234123582041290296195543984584310798687960831788279578444588029810953906435289101611721238948002643599531068045205779393568221812426765181500984458598782138781646321319951217194034280070954645631503043198125592789156135266836139405697031042944613275690827777627491618367503433200446120548618927344136618918914726871865478263384345430282016600567710760720768174442569981038210348729443495912815879075338168184761783019021856761634819017035433263283876510031140185728776072056390011303604242786144069376529467754946561940606821683998603310548048173439902497151215742938938641106127413633701188962307256311129189650173352956715459038061320105230202204440268344339124299118170135784246771986191271120196991742179132132380985832157279871139332347037479244434108753368349220194621806154949223198644430352692422376504017631531309561172763667458079338648810711497000936228522080757551182625971498174288786385562169176705335850956640370627633507033442859277796161218469992543298076569206027967057803266525914636687713587831892989689362376594563871741660468271420374490996256344674670937910965797239702130743793190953832031465106695201898453562536594167604350897787392786883932799857562051050601454955509154739602810513203520804810479862057353580997721377819318273381453867010368075749438957737958824379609122433591353403867639451924791271152371026180898437328608949833916701522872702991056182479553888674388179895223152988570520697848195281362644457585319454062698060459066625188534587182331500503979611187258231333498821224578056013979191952048864948238326606841345077632061660278661445494403291326405665754259973921057853644077188925291501920996447527513697929049531114153651032495853865403839392810363955722399664003432692222023778544125650729045444680435345698725866188399693758492046845140790630736059719152659965366161773513152481880770407297397963864866705949662835639522284891092080404968342922709592383832583211060499484248830461767051185703546446243830839257377304472595336062410608725763585386536271008960901340007261680941779021399803274680166296179988459554676043288063765517265018367556815553506595399117991344937975992305560927822613041321045502420176369902790552975973148055729465308206090210652923873832808247033876734961002882911123193609187477479875195548653555451118551374945013352084468940039322127737887845327343571466310735198354615885017639196339669916282743245530208733164181261054247623022679479240520430914567215372725437594136060128032583008246160271251581315468450636036422569057559896861648546012839340798903864582317846294803610172281615850459345786730496046745229790921501187567922168243830969799886199667790661468211041810416941140412957527324267513515731638360713435126383013017148522991070888715522557182208862143203511056042331629116629935402312333324977235555004008623954227264850803007001049213387499965878867486302489634233585283667767238015055584033725016667898154587281872634599294137916396959459443760278524940223527711952651796334837125875788740587241833303103395821147083478903181853463624580158419508927807826232376954594822225652445248909760280352452072793645849579555363822654860512011736410423184764496291008473637645560827132798247242869113415519978591781068739574001012955935966254102013976676911058300038233949025201168545792808270857934543000114153661012529250595054831581475912872646575561648877019830929766933929052818822138928914049057452967928562299242948038217387170143682953836099757486433180160240177630081019238277504941917337596546091158415712383816991900591760374083347985523321132642490611375975070022665889165653417131555685688656470333196471884546002316472241396762677493102130234255111591125812793978195881110867020864946992184832517105712546220020691755617457439286942817443850653579427597834281507216342711920013123986323039840594694487355709958728072267458470566100340324384618161700444667181345674785632229550705666223742099792225394175626505776493876236712092876887172798083114846601190437920602470723062898281939524672888155723945135293293898924172240163032449722511891498318448865709487159649067068525280030062275956522150110224662902626993013466933132008008670478424850558204782529653375283037941436581833052485946289609967469255703508135851854070845458651426751944183958968105543144122576222056949232483367604100677856174603684513346211324336854166198036043337484274435763034044016670898304387218494589945741578104880558051923024532229482188186144035633970659711215838255471826196317862495529502799836571951434847629679379708537572767243478835746822120513547432968251469882303657394427494091355901833146777074782693398388236965227510125058593468918519459241836804920476417291065991626221993933321339207514123985856574083735812216242123461417811654688073520505423390909301215106062056521554936004918068796374425729738372625835235498637753491898053701594977464898982014650535111380411567132221592392119332054841704692894727143079558542650538077741191715342822239832864573619936753027372814594493029152443555919311335503177405710467804899343162053691370732115177167891926392134517781818072259408840538018206128833899223054780557199260114538616306343016767309866655239281188995030462533802862905581691796017986660225273015234973408762668333897175751218814954434840756403464904595104424795979938675063600188142703912506458618686357579859356982319240041662243287224685427856152968567456821976202717637371341729457761679240659680598925773906178731991736698571221639418815851374448430633739608292507070582588892244555348510506094931465046079201989375348847785690061491456609237670079755921444000919471378852479517886890173698277853911159358043240873965509594410449101364564903348142100414842881625278325892369122434042812003130472496521174635614797803440568935398941758101652704725480087285841094668618191743060189408534927631920514684545588932427416361535507345505753078403649744838454047276821823588003910143669586443358640122707339444095137124151319771591903494487060576848678484330641164044553019614037747390007635248044290499777892229374001088873050410983471222933726499360684577408162899250141697690299876379229590767110367763709884365129949469659452247254497225168225468016340774514621274634145261717390450348107707297912706538938068928308278263837854768583184596779188574228646616103696705426780431169640462715416062933893019466256718473398948216196736487822119484270572135519882348794880753645537122963328384899930916123203163841260874016592539651582394020553424891741526229485946602412234040935056545782927778164082667034357752208822014790271208799863657761932579294464799583312633827700633683871782394665994700441528402524326513633214386088860936393043786560737625666633618173009548736090395089527962663153644924404688280510401953945818228529174226124608606609443411238362621816159723195132962144132084692865542272653552356542651961463903595120655963387611891375746557625246562693726708941113352369386960634633221728716169685921666048319512809734581813059338321336264058127162694551128053613766012432219576868690436042963540583810832275711177085530763842479943832300458622144061598753184147851435681034924472659130318628929521531262054548556624902343698752571134908033735739245346701581215840505980491726483944940760280702234801600758670719194226046107474806000487659348135712427712715199937564746920487008169923575873305062417451973923404004440048181164427499374758383116234611572939702600961435062192968100210995982551528178538562030182256292392030752514566912787812225568454101656816715964637381086552893173032749501332007620020753362248581340404020588843997602447799561802902676145541904873405805907630203408562501176497694337743139842487862788383007715411495368913300866977802582387318654293054185591121733572406890134948015950410041360749261680303601721647476702772345514681643769611435475958162022245973179855691022416411586584076646795273976166347804373417700104528872105967313592330178092083323787759925734086590778892052618210007343561130295210323624570817055226298602222911185546300113719085015711213643385511676451794037838996898457221936660553014618389369029710343743882565895573065546293182753426879529792956403099404883876522516783917700319449359400994656331808099088131794055402064826329803968220291642342666455911337143764597395419323466706086888363664001478648450424781257079214867439466785130094400452441756351545362440741693938693594982595173936093224528680219394521505077652726934581018222861516246515453984063476140089318331226630776174315052774099352641039385395710972440502108203987966598670330026053692102825113118896310955239752674211726151026297450141669133159385992797994772974482087733942180311211725518921342520010187150075430991455269252042892927189041422332978611458713759206052431258587590367908252444952285695310797256055515966177970834543336661533943598108914188064631095847943086991069365180258873956135989464245718672350835530715993584048866448011753377600965907843653698850962327311795434997358664629160285628461647950195227143476666730986567221670604916035845437651575768646243782332112387332715137756076434962311764990125363944360788313882192189095986702768167922773130125582474548212979944736586901064030231362305242439035862329888468249919883613009094806764868023606435979096940218061836320855210969910553185745045569525136114337063451261080671920347748735272675826544045509564466368753121835806293073253156532293463023581523476903649887973031271210950386933277936488163279473903831099807860682016881053678915091105154726390599295702885076513401719179028908099449746814030041305836916225392444933622405724785095452287647036651763322001269936634421443920553228352988348266332828812071606361446136618208666374763978475620068903836005386955445320151913570893474562199503264605340016541983226235299913609218281117833690225398829792619150764182949432765706791214652047418492603296780310281108443316597340672575590604116268443966923329201127609050308615818727016005404967636208243349677978413909768761200772868368703110942312282031680148687752412036206316281276597716882254335169471630042874855906297502939411235500319341496998860950500752800408071747344630241926617602250037611847046979562093059266324193623768563141937944247210094261370570830305710349665580001483821057789955727700444989849207402523821941736529549553238772397152456019362043799680685451137052835208356091417769465213225145822955774784192223056411798680184193912880544892043126210053426984153650779905055712307220513123001171588960547142201633857848126508477526238664616378722215177031968152435817275245482277495267957496059925981977292183902457699701019362543911538970010826735695271551054365825513773393707670074353214607311742354897725020093241395509813899926797703045791408380237487288292300264719946091511030603794494025146166435906960258023634932394228489473885555930744765750187462161159125938760791908083409058976860772496565027567087610146237759223555118595209574760052661845650283141308696992735301856471691101209352152713067132291853778870453054467931835530394558961662080941472275193375983447264781239092890722176388940533702523556125181095852611034264350963311605311378663492694607575880503672071405698791087765529556927258634736208589794537595781336165468811586446245140829542643170213704801165479497213368359279463464955963962726130927667319760712733701113367632088208550039373416594053157023348820522773732496454088958346960190495902937482803031799037877977169998657219384093742024614636459645328724133306084689244642123942476398188763385038793716731450208164289631267208390241592687013374535355595172296062095407383000940806927628745915321394002590988621134377440288236565797123999213451234721996862223024960816784247569873021641640461604198738560342979221845271142577429829689503674776724908266925836587241541376390059275226102901151771741912813472018289553857303997042824553428672214420847800573417819630304070228959637797967863528229176855030719532334843437337576247019325154822738377349048598101658925982928906614735443797152640205318028151084283834087391576888142288956019881467288725414227171416178697473800147709512014365736774122099005600002832027466878341007860844676746557064288169090776179447938595037428298592510731341310851388741560018654579118048176756996831161415259007406755476917355196628989818503476112200468609141619103293036426430776136548734554686901197432308406677013750612611333670280188237747266871269845922896144377543663823355543968894878504520045709104905098922270456142329537152779725722672147628966896390428093147626287130123714956482169132723338375350908726374530264688938142071538078112373875500436672187505048950231892451293999109865948654435569823005648743682939424959400084542724036918889533589916256458153414774761292146960647616743942306807203686582570797190458834810287064623900292433100180734777439791768381211673819530731887979449743774046448783368941946014521793889945542379067935425069693254034414460664471620344667602054179738947305147596632270167254824883839033740540101916971903613013915547090317088718954921463310794852410452695872331044421507212626294907137602144136737137436857510089619303984473183998425425755627250106505878791330107152359964463114633864797075302446400877719922665234692477541560473411421523047731194906018575747216323082062317115855033077729864156028785449374701172778164509387465623708254388534609965785166730922458016763649385996540088035819681591244285633584100145266423380700532120640164949634707390656683404343320528661693510365271339521952718904690405560165657094051288329004862409391689153916537025351629670071340699277044053212577708310422253784306431460820850125285395871538566853724288782646143300831085225993922981682223657307746822745797261692091154870585895784730776040307056170970629415700464328559760797643579978376132491612742771018863700720975203053442239297608596986892361291521095247614948169794117602044110774578048330030331354684972882885910196966338031852091788002252722546393895666248634984220060699718604622382436852890040535263653082554394423070028368269414083080526439875605651133808876058604939603451119119788275883766639477566934755095500346930925098049292466603806960442889826076961898049420608917565999357597620318447478749182578868305546541897317977152983126423487851147249545934345330268479323407116708926881534379068146694330118360432134022897778501253439089628060610785360623041925577803438429352184112024821702653752275908278074879712246593955827545897181338965310388990180228609766410480027243448557919754216505232241294954953702197580063068664444679615512329390660650163312555179068246780038762380210955548948931073688168664836389673611269819843695465842208280895220819327702775784788376490294619550881651676737521438737632561750854336213507102022693432903639014407291428170029523369497313811764334801719278123133825879524661108742863270573644578567255669865360435022588789218951357734598863401817939029828558904781864325881643485309112135705435608803718441141006010269450998854141237660964027546329289661230198382125257273975268274682865797360577327548315635760315973346198485651133621011131855291091021332744184976666410610698980585589219602449914838010744980654639655855048637277649112190807885981904343256240265087356825438373284990691925465926311042018768811971736637462375815036451041334639920457312745358724291478345322267596601141491028184026908491664335994925664572604572090921495172816273556428245488900526712093669770299529761795147035554552291247913214779541642685013766832184522445045303915141812615307809141376006694576679565582475622133676184084951173246660004825031428646151341938225450647765646761460774323239178842487936143456755973875929944720263242609277480697890220220874607059366473443838422977822702864121781141402691249387690387004793093399317866868327317973017337978295898743692941852470084676317882006629102983204190478911686524893027040203334450400686176698468994932566669199222650264074448523301266002949958954291966933140648930706672634619404359280793829906294236490438125085908773267533027006503143030642169064727759970411630502222337328392005988082772141961241782888124131318951364007112814635911596738460429851294558024209033289657120015673218146613919248217589412287130482818590794641631996456791301349356803819164179937205899129441397332433710726834835856226641750344605339818907006054130983649928738313654267760008547772240396570362219777770391334032889855064637955405976545682400905621509717620373078223996229571253940696577764476977244661600096795716088659449063091264235209993594208592046474618184384079044029375119898557653522118603632395490277432721768335843695198305204411477266478505160649996472772472253987011834314376637294652623932501000636258975735950765888265422855820880015997806165848834200844842064549212606450435062325052562313765802745136103440346584459775929816424339607191608663804884241848051411250767068096665328137064353046493402773917439055339882080298493677912151846090543454689949710317396853605732539171544491718772292479553255446396794306371832688099042913370181884217852887834556838468423633683733389594289194317911462672129046251859865817359552635727803595449617617658231280432711532693291994536513608426907323112725466416817831495120928119963548169772829218550667367368923013611374898216331660650779744837663108755565618892676571757390723734054728248738796132708112769963126257076941344822494150470683230444931727076280098086522366089772013172422284339031827079796075813467373167524050373025137442217524660938195600829403695271452912127841032228252679374945345394757699084175085308129306671762807614141141261186028806281023284383421033295460021505992831531051734818034370282600812366641776772740963246889132562550286909106427466399197340229565409180920376055395226861258812046826449972171992837766387941011972934381199056496007709701821106402745082435011506062197309638450714097074771804392278104895773901792400529594172304799917854320455036005788429240760202637829756830339756016320859828959052253481950880992955584578451461917864403300584582322285798706737332918603874135631833665664371466249959068148880915149832889345164235269450569561183045044627234648284815686126870096440682702131533094954977169955409015702179951862399867140725995837202127947724825835159194253235508478524024507794059359966560801726700700536143677804908915455764056329613301575902144525039615879008156930345445353938720047522161130557676776294925183290536305268499881742681584861380877717094485334607572806586907753650126321537609129315201464624034569122765100908822644115789475832517502274035501684074085588653581573895605816644431743042498195299749489745148428469251717243849070625743853853133205416879427655267182296777811573760054471656972502634867512449760289769331159924188198488266706603270838125967830435360690795831996971281747537446330179055308755892164407311332163762673205215031464390114688473077724488629516520502032431253671733851183559372327739598533723600910200041147519018176486004426368347897354776980077929811955992122954383862762647090414994799936911939274549988074726022492762787350956827940351216458614423769040836594080394425798914502644503101444577741442178092821581295772674558834983203219456246832461526616990872798175621996496326108484629260650343870656241713340734910385482232727126228621453733072492074366500812377899759060172676867972133312760410395674209317458882817318674456367496488428990756450003464157194361551693582419550118963626478006683279967950796639749340277800085852158602148071338506936799346756761308259469193189949686972399991615316919109594177911976524248951390792078667056544158413781219568119985790781749546053222646062552805320315364411616203591371482412244712858896675512472085129471939170785310813939492896842252505925024709569781929057714114072749103550853619132515541445395908488643241696664290421941277041254551964425764136659943865249014250386572268064237841100748157968241337056840017018498390374882613654608051414394933337002052950808622327374928331093466653726026525999821070653988477526431628949755372374134631909470427696752604249267259733502615584990558086627321467173791148891846474076991960121946651197023466757418724739924963747732177830983517098749540713178138270262375744229384925756388171450597286765535710679897145218141790192625889085991572099375962741266569950492930914418541728163671207560892055546459477416083287127102100376377204735289552670553412197104916672526908643035761774661908437450930332442521331947345863605159215003959775556702082087883594791402935385147543749385536394855696933886837837180221675710671777624088191265013861241076369712747437562084967769346441281588002284078132556579207764849137870742264902179968494709586351070672278113878338208920914019744517768321627601973653353863270387614076218301266429721034319099270825982112800588705190792253867726266804723766684911629381732427565439706297290686601754024092923158360074361752748797847165552706041956235460696579508571658276676942651780837144428809352718107445323924555523680689710508552590906891415672126631211431207273643921042098484337205017156407286360859816131926409909916950508029287662608627782815760581147736380200851356763465148845715467306941014053600450451001833040024603541913424491135798203060181334024256507107360075920092767811648296713390387480961055060962037119963177928416113571355595543878330862338866979337683468762383622824329112413652051644069771616686963230497497942839230120641849468248516692470104663830951314454333737043288022363537152385791205140472946297743239843261336476654419947761994612273844308167536646610746318681252010107042387625889377678531679828468049410328009328804810594224111592368755240341279768690946394138139146561535342311223780471243319920053559901787772367343429159957300720379546450140388020704880364440181971046423588249066018629289255794352742574733460443987234400058491555345581923140775841342658011931439772414024586087875191350336890214396845534750047167851858029103211291995163005604124637508985872318983037841601545146931069837791188803211757743229726806425625780712451089929728580639863951778714178485375219973900027414512154195541659193483613989159209960841157122779921579006677406634577502832021630423481347349340361459278157530461388306989373634351694382189216462332674881361484028735212765677873728592994238544176877091993431065755476100124577073007786745184425141725632903986465172620094960618216525811849230924905634574545038198839314643274267229383826580157767274380023824826435596967298510161142404481101978155577946070612749917649746682167504952991153185470487618672557153284270437322462919932223655874953284066613886399669400225156596148105004163968573299040412450360531607098477979238465221896246544417106289464849233388289909589497589222332254279604978598093058919369550947814207766124711047892732847235611846071047117858527665501058443087988514092021338715279743656646935444248742050504120187897030399510774950976480992639704693676467045263269986383117439264904092364181465016699094135113333487373637410692400480374400269940896668332419724368394678501852419596439265998628640938718486692321896922829728524914760433614809573160736952567498343772747553354767897361838138724333212839590967547856290293957550036437453140749441714028341455491436844392231314795598457883790599592879431788225901316186953041168609742956841584482332145357748432183454448676342031557258474985224761073463171534592056139632810230002311730869520869341018101720577118278163307376545879599897411759721960660840474886338002762657087292911642712912967471593470052031486226387699694073839470320331238683870820066023917832215479503972592161024430842754736529529862679280372907836089212393521569178031609053739067144962748406409880533416327380247107027237470526597555911110482262011298648513712541668411200368240172360055519544351629684046930104746406873397887846477333922670791291906011784285541285595281816694832703480334985646065779360228510392609380060696356940704147062013783123376616934613054914072653228415755366408440264102747075560613485046850249299167798025322458922754909499251072056354253324947639348010943510529557404737442843577818496836580231529628487583826363414248467692180550198931871524549988856960016390468068381629783246967484493404745533836571361789848650763223739697895734578888636839124855880104018678841903610088621643009341395196859934757272649630136235529117637586735468614940910282057307204378437781239955423654896520936185262212119867238767412341744111750725623216653713261639103834125483275404326587037465391289964193177795218788527672802648951929295089491437832055587961829772954746658892373983283526428783810248201603527324939305109120521731314228183345369529097028055311924701220236816376153896429468991581352305061323892180681717671995894691535118416020636320213315653536319246792919300922551087825517878069732337168272455651072911453906486421510705698887798437624987425767419445503662054377618850540593684585501324113028794706005413244915610508265614818425009594355364506103917149879104236406528553788017831029217941817101610376704665427621738792685264730182192309235333518132414983847627525499314150058266147467829646026776056389239280830987507793254582464916212074696812035005377149263243733133212841597228511838175457181983353916173802562010021716104023653321084704056648133433439900846199263509093879535079080526863697535846668028208849901402355442928018495196209425723645940570266226478470032535724280162039788977749977788723381681236028973151459129006524610655216780694949774709321385644427267447532262269680679363291983203995770771156995017086227437530490987711566947841975714313288906610759548645375296485453753596165765131941715727948369766420914199281022476916260485196981739314020889603965205384927987780056990291880875889722809760649834156058122592664322946592117708253484178947902276190892307502092743793134542549096046084318326235445747115972275332310146956136641380243562356907477640698889877647679845129206657178378486727747794460952181945284040781359679745531628102571273576948304959151198712297586002882788694126259119249956876869515090383225982642083966347251850338892021776577583301557171478584406209725538823773791030343968580416999358584884825696554281016026751905595010452023595648562112029121652513887201509867833912868489711297105490177863054218602936423498440430915841651888630229462403093508833069419070870988804170702624359598440621365228039989231749359265760257705029042271119088877126952222804733054588131612271322343798499936768515117221614273341292907447545118913548451036820534278972138196657840752803099199791893903120202597442765724249244208754502801108346355295732459470001022176046746092643125945034762315908459422473985719938520689552808005401994188936556444512793247913275955551380592855346302237354491108315530351888348968389867668545141096310891737428359965942324081481680426100218410308104401266184681992810407695780118647629732008261751224160109202171846871751793430513136178052686809256215743957148858586326239292950644648024341596568076919425089645321719433580685220980088837785726941678015076485649528557957154389973796484088788230709319668102238758062324740594085125365128211976537681451806654783781712152377617162974480542190294087974957907291187997678246216217847416682917479904288983393323098243544035800746903459460572729778617251223413455936320936019261480479630080702559840226806906883005118005368862170914959128536646101575127629172378019902983684134438146769666189024791064359483812410344531867345999306350478319195561350263131225600332825671785230602608823518661329559879510916697873840877800356538946264737026597166301759323360105508510533168170300158762776224674744310846386575862854742310314692430499710071715567911523121182730267609607571196188802986844988721219368094426924772883174642374082590162959540727355453951275559085631276587920679293699427753368811731169155864877170228683280147941167871350584232689719602300491645932279695926424790337234911675774562218698757038475632041910999808670744751101827254617561122081692232441744983353346824687888478865980109616406117877755973346557104153289069804494210647234914008842896520192787951735696367632130679130938992883087660767555179757180347857092751188105582670988255255278185784127336648331888201351397541852464437842157830405003735743807429461552198651938137069380515755366758525078926646847017540340417363860759993452955176687736843137732299491074015112103608687169074225256036707187929843827979994437978463049521539400895767360540291455865186308079551056600104308958306858892091880753539973343056593234529642125182684466516940639305736900362986148618517434443953065293845101576955322355027100182528847527816241878214607692755207781523237953409570746116320705410645724422768755285790703860362360019331151823561101822274829387395332783026080231507191214483896387901873347319362714687238205090028125351470564134348112336533442702056761287119798737821603022979988523432187003520452990127432058613364154787322972136701972438404882141479900172954134792342249780283464425508395716253687867635070020448215180594885015604215078531190830664348489631579279738570442869083422297367541894962177822574101787897792778577044751923361943429666892277197360262062314460516066077271548764610875236762071719721168043556252544156409282015237580537039865730527213106473497887727730130724706228393019567480334961311266577541959259892207164768349325295308974757184203747003244879334834120150014031925632497884637015501877805190124507284421567790330087712636874464939143164128555839168463574216802150026252379255917873973018526695047229820672116444184867227429655633896577695638696424248028313557979431380263054491426924498568508365362267484680202662318984600896090086286387675496666740492857454535382816571236152807772030650377310546401879300806175907831923997884205125836090775753787712320464707672962600662247829105411061587549667652184394117745771568011755569358608141515170802838061960091554245523794132649888452013113210163201816464536299200843889473250079220574672321318603398606911091627381703220406995343016911109179728506507568951471226720098936702698160032227975237298674754332009138053842948719055296544624001172171591477894773775360847081694536034720664936865875825700280336801663366977099039183533603232116599621440396142965714938588834702023398355708142263478127435787067203876106164651674779044244903825148122083752419377968267714297768251724477106641184560390038267894247742926291166249940891157302892951928371141796299273130298941285569690051641640746641080110183071416133352876768039912432171281302494047037531129046738262479556743497737462515711552642253593295134093791976745469439384475839385673088335184958654282166440716620858238832340673416318596548470703683678807064421122527288193827707103151497722946453421741024372161231500588727300557511690747615058089568311299314570960981639718678283613769048063247070333380793360192795771384139369053648148092756059529984765843511263568048119691460399158792501615470652359487444130149006729905733071419411229822633022731238851731621726159676282944953328750733266244036804436220891192857790230364926787723287949898952051018420803350187677339940852186373212142137250907389021779551170643209073761114267071404914096403789870762574992167215370202254067332929479716332111316611508291449957679497048291987539316164764016969863207942741941025982698273532312046387548192361606080274060670316513181095273381863739558749065101947552781081588044948773062461262589963362179057655717335311285751544344472116310464935353200369546394195408942229365082438592091618970558511165768219714167594928655367892410464993545269432123353031657963157978060700333479436899540812180281240588637905983883547330334652619787023392725511709909718850372768440481966883891886473456502561485996338974328380241925873812013316396739395153870046684550962969662891984431043191321735322095277340337750101408889456151729409935321779803805007314409338297532908044295254578514126743740809452251046401206036391538821134420016322669139316664736007236746447034139251882598654233113647495048851238134015060725637013662199974639909964085660492873818545659511492681280893852389380958983142458687787764761953117133758032746559291063256669971275864183372849711675048431899899484497348864279270488900866512729164735841959043479124773742109415993523956460056268528085861110807595086455157568140329133199044280525561094602541018759707969699680884698155667644194655773594322805463740045105932621619836890844413152034500032190735625931265383028488537632389056710841085873912554166792111379765760677682452089235715824670144912125972896844053109525733257549133096044775978247470319660314079349704950708417720618600645674905245016073870511684420368812593091639842574389557638517120028921708345953881461868678860070570383937143304922432096207132871957504150987218929124568647903357622607321187814597289136261341239663147012618315630498968489942988793116714540785883790971890664515450477041767651024282491265011913849550801299259085710272848666557907896237744912103113737003093102340669479371916657972162488625374763477621764634084595839988914104451258261279720418075562126965560070799007613854122981962164772003766411799509811048094686128988277268329356543710022190076881196943010322703152981484575451886132440659958617236276292720899381177197850749005928138631331505267184113179330750975750971094989180679075279776168434411660322778843778365569768069539673662699077510105396210172617652289493783848731459281096285605719564257289506374407277564708550324569392841353980858407993443467426954067590473053523175503236747723467822989088902821638949480474608642350844660246424727236152645672759963431435267012844471684381646442873687736336758759350104458770212226979874367361703382615549170122005863289974951328765609558541932487323704959738462874238762545226331075023930775599783075569182620004199969702811418650280692504429945463969377907343917498890506928137235647097853929922815473994789756129802621086309912956063130402376676195984338531882758104694319720109242648080255229378738300776634507013699387776266723265162217643500001553909695353006301232246262918511375814658329894613317955163870717139895124402493705813830653922110224899611488090531770238727347579788298645694361424419855413283239300824524967771511632281549241932671424622623705595741560047570770384207722928585706342988896284377788929907795997293623078269147756828461001852698670214362767648512973969297989228855375308014642241066405841602917884703351349319246978364234764866283006733064879232786728346908613213639746999027774836546727139045132711809673742450647259211222700181548072379603007180865018825581393761955382113576787723637901933861304065038302673358943769573988532974825698412796804977800036337660187688516661965177488257394184075529021406865928831657481133708616120912342613469070206412516613437096908688432849719118883581630916964303921817210689521857649586136121019225314747825958913453722974394158311492261137752350652576833209122848239338466067001787675624076764313925798961278655196954927251739520701192943813016571876328759709781618916611799316983252832807746726162878580597505223655124717372632597005195572977598774709541955009406073099440161319934206169861533652225920963077905600204829340386849797268752892087983222601110310595725709566319059871301857143092245601159028027674147002171210860869065103359593926882596648040403720849514799557508953353496786446279434405503604295648317928692713003658390472840879798737102811757298481009871609628923637025521819637981875088329375872919751594498363422902416944912661673665469449147393611533937554830364003341555789419192370574636600329140743378604296530861356413696011356383358144731973662359165857381979348756855480630133586222562329369566842229027699388784770754710772893366275221671805804169425502763630883302604661216191498675593533206662934625582618403859162835734115536641757140005984838563558254106258501412650344927125623994325431700359218452816116648200112220574157331328654375037203769301770068659586588329855579998705119686716391308903675722251003959745925068540521148644241125481751263003523472543054171513111575631183589538315507159395238776540425427095413664589248655721639664516323907530676765727270213773334843620983771161521770436984292891877979710880335747107296445509886349097085486846467201150686603253608290796726470393140089581728030689434138423116934526661154264923299249073021036364541897082457977136813721091918452284442863713463196293091913190103926681064924767276445122798039246895653848155984599202704729479146784794960890243545262204372820527260253701243223720972859714184637365097222490488731167291562056197086373565136988588937866386719593538889002810832390639211166502471976573257329717264182471228795898621078729746505532322238322710096009562971905951197805316990058070273062465458373955222744521077778377169521377121499114313672568819535161711768123164642493410679767959682317684057980529100247522858166537978460327941282445622217431439081057645775486168962355911334399431724520598921871919849432164940194621707794395876209467549075111721872948880656148307750675343114188219954478697381890170968417561166629976506996864906439203070443678307845144272261066732125326994324382276250588138864558181281393582439857655130038501581209423870537622861989899830236432039688780285363324836635858785198986259600626788375449023328734286485325770784158881048095443663318875190211912454994718192260642245696237290014000689253429261711162025595355010945537148011588304551955117743653745965296067783594491123645342158370919814988908561689145746134474307454346466598298424814695407580608337907054169948502296143626018383917370336213247408655332292483694766222498079453763368855356259693878573147010094793842959383749787974467035800512063484332222791378592786673250673608068824420595721874223010422060548590496474017277690724998715070327756247004215310746946809603840860121903864957742613155888372938581117996304051523906326903382215342727493245050256312933022815754682649227778679950741943327984204863437320963791573071888253778153573742427894142137268541102448473395314601694287339698768375096939632310300414074735659577580142089063179741853803910792797956932766829712843707253849387875796766757790412502751508861842454000265513208606873950443142995646703065574375422196218043064509528610205065192895674821104403833106526530402473061005736065413304647732573033646951269769275412959516547939154155693765228781347402457277391156886470437258986648867504635592442927425440493741358333061097693530783032696186562480349366686008880309639795925817909286442419311782353312481957469703282328321912847508763479914790613184180823963066284280391364466514407131689794144507970858581167070951730149117746786184452103100763481082792439218027408770714475631573086820918876222714684148462628011171349852614474688363049739829988048881019828624766768159913875891389545080102753578788629544548020344829790495194610116990093420302768036002988083012341173083419934960748201690808552476266770835178093903801918521837346100585486738801449603389515020472380006717577139213676476107383777154652000064360455804669111277796932068691276236470683238313568025936051138779546165268232331620634281968303828660857332085894090528181734315196180459921361896854785926283474781932338819012252843036256061944018196283462905646460211261988901507065447439632441874325530257105857395713477842854448168541982893474557419204959149447383565590749118187092020689925034219848154236616984305927292715172330674132674035984468121932973000935280724495300866349498114611124458365374073448654439399207008584534208655624273113421348941390986822442553565768078307913843972368908156397542161822632096362317361989656127869761930416068364475526419514793872185216291972835323624028127432928583346539467147922154183158460596011819792223693593397998038190968171622701674273107218784284709243573086695866001388391317559804269242363905235450030025949063784080090386640978604940244908170906645667906899000692546083184761710355384601976174143724890658651345240349959649750062935216820638675142099462839526318030745495030885274989063671647303873333999940571368567569691158761643567968658950838663635309109703114693488728034467704860250604589619849211087739774875896984323152317751807107670437859030286200539436229344161121838201045153348503570481871182959310873040194909915932204375748026661318831680326916040391544701594491741304993228810631637899929682396210438133022375727687145313657179204997004075640521034917827174383615818326367406593706650127048288089130681667759316219877900621196348000801064607323563178423188711764605870922259914461270324413304008099305727974029211902666369202191781410918468323740623156428433913725338542848776479918868558485875670737815563877449363248862338824449778245896064306713104914537555402785021120464993460040255126145146577199708468441498058632514268107531238308459798311749434566624936761486063505227568914884481484809311037047558412649131869575253555395525274223137123771543250138090779034973158764314286311906109732537218523350076211992504778781772440056126200660273444820933432466356384232425837440015510617529061429795362374167218961512931135038315964033036887392067990021164663842377991846996187341047316505032853049502135563343347807933218183943057349772902419832333388815948537706465974204660436607431734347085679823476367214784456933481063600445925893381279569624614343522637312022224921603634129407664596777945418348207658576966214649464104644794147543821115762080649814536736738351598278489723867066673761195257108858550664470643696976443669660662296690731438623568737914576035143463185759197741850045761579153463578781071146453502252169662065633504418736110429124310249290737554670753723763761081935651534207661477128257919999885643148603212165355378517676174746352228991587484211030641577346324997287726820822562238146028545166092412631355626523113391686911439325618018251388883085342394270576653119940967631193047811216372159003450568687165923201733575993160803052668669888687126068649386464697362263599599295039667521662928194517661218600203064266121696547567719538165542845019616992335421699364410016244024539470220149778772338705707507724476210466831061152373990590310217426837178490443998396905796997814124789230768067473165712118322409834204879995659797093057546882126429933179421186195426113278162248350576687308759802167538394115718375436869321958188795175895391351837566044801147079087580408717093514879351717734543188293500499194372774525791442291480343212949460092483369715891768458522319571147884093830234564444597243247490015322454785504907475069784781961176113740446393316593966184232984644431049019288764308716995712754112944824544249571496233964032261479636280859908837725427722453554556622971615385441923866478295698348320588105478565321042550006562910435198419417196853967530571860729734231458691012535343681416033729916907539168160841988813480330525557755331424336634071536463423139484426069512880609665611418774974048978345187382769146984241444903240360856128544465333315449087119832789055940701669998814468211119829455182964082009289864587969383961839386395569657827162282221931524077124105051733289942568787060302955395089096842704524573690058651156135192093814374698515737031655031470513931948797164117111278856223595235380364044349451851393139954459140733599060726039307906617041705299626495109817945329085390637634859008245886886393565697306331541098218861387266822711799602990084337925915546181931450623087707010585408737826474870851597526502425946094056471489731998311117057560908256755518024134252814785898731649289635360215388357580995900156945868757461632407418752900605542027195526166618010434220968637514850851592774175694166558763847359344935507651266009537447600049677399550331940791594525209358474375872867842574973930048887117611719833851118675962750192612930099043386442036363167118049171103297661206893174686544290123538100460019809324046280735350247061439579881472305395307916100280952954291780156645196259146968367217122183806928590256346325307084787204864525231635231022108315315382470050130012895796624009946097112468523200817006017094017924883573089107842108128398852761653859326239833079586298959428367628541049590524665224744706721839822913253451188429374452109089517967874415021630006845928397925087427784986525357282121973893406271628766626782817201879886190744829795566261631593687374708831372795001666003886523897567141787544496411099373252432621134583574954091243667598283898100520209237891423925710065019969764174905148175465561329574132154604637307950014402816355473140584291282781448805519099774315381818436395465792562468048439080053151124832423059690619820211274131204678287536083329653279709920478166660044902009790988559304141260095346119679515748222599866374247900007504976530114532462798516859106833045875232566649232541020007845497396133814940752253032736627182731892168238173067095627348020831987499101434320083414996188163359497322118347303231637254639574253379322184095428198146599377159127409204739553441209381631448892235854068023271240028164777086637920585348967576574486418358693153821955746064259159694535796361571065096906892304286018542941996912354820310001069322579348574922851364857123401409899160670980710396491336345354241393112008235667883815205433881518497366156738737398943680768050570896762722396739178102080070048218836287288810898336989900251012652027054839916535570471841353729321123160525309850735810780571357523811513205505007032394667982378266473702704975990119889253357557318652710546116781511111594978775340360373336193100636708403372691623705962983252723359665553457776138235155931103889666845147310601520888465891053658179051139521675172989591055696483381628537321740129029634436577266780731104170547879158679697253331029325947591412591778277712449539939218002747051319310636135437929268639463932040496290330188493867868138830876361097842928007435672495502819882342530676247834299844159265720012606503991220249195511479539736548761460605082412799018212562665147725867940596961400269754941346011522511619017504360969242042999390047124570011425059983992849347070879603359380319163467530476924651900087412895903824903857678475069786320517743401230217602328534376036781608370121280371701568004832247687592160359784889821998623805405020666687460696429299653196854413477438131838523432747849021542543051596037124911220391569790528351149138082036359869433832208353649402278047024962752235557262447713774870002917033282749204800648308295583753948886037151040907402563528568044387706565717746271983093235381458935182503085519481015213156484842092320771943020295141318399973394673321786298660778145122011399851968167598140984596263480201144040829309854169260815792710073765794684009743842241923842235720668553232167631647128422694285584811431229284119265609001467938684325345967094511355906234090105072708656406792704316094650583707871715013366207038217243643947540895769787816146991135037446902010593068672594307606709182418556726774342426915141263043259731907307254956052634722208456216393474711766113789025032488409748437982595501215815787929309910906786570383474008302303448146044160068077304773766907656131866207714475564706884787312872990952077704804581903493452286322779399810883444569397716360457106525758072121304642660724628943402497386205904357629219582555515500919014405040043394269855004736374256589341504613337731098907221230357196764598997765232235932840302567125528828563470402303582509166388811071094030240069736161843723381776293271507781855151853586430091036664210722539576601177022937864429345960474574112534590422456784888825949780765079211254773052748389595656212892737032731584410144345337414686638553604343660081024104415958469635329907765416687862054479209956464389519650915933260045292566920637116019190314124896992144504250904526675385326898035985949213728909066836522714358473075495831198632506409541402023325512405358904760891036473006412729808494470954393433181666739768349029692100968843267048569734167806470776182515165945395506239853191715078552901272000249751950200780094100947420052697111841894375806214520107192686042932513782335754138661540422715659994684044752980002135427690349149989231015093258195705184420056207982225681597478713897044956427508866762839312108666315606293929550056326579349780453370688616979545209044357965902388893163655065700571132384627179641734959575885894226603456536307252385258243174878410478002848057284494178488906388957651831431388544773853013332386317489559692968877948636266951825693517917252423203282950229328618389438528334692039687641704031055266282639326385874143919562730331525546239504609299047291223318839879423450920789798402476243115762966551917672964438170768211290780209743261705674842674241004799219072408302016381431762416667356596815232827125453942406033163615336248257179968135850125697642883640190361647285252315453107294766772114022277859988798887356578433160808332432453524702149914010389636340630076612335546414488165126039058233199711133295361706150879503347385406069801660612270248201803170983163515955149541674862589435516477289600666443242629039589740542917535328565342643483233237387557978006578926339186288043928793000238786911597305703516811103417478652617353876343549598512906074416236777562185949653333290636881283646838213697493864188748530966306246440510393973642784258265655662281330165357036436305386662856813480331071535578844879187533470018575977645893979647320861060503647524778731900799407336857727225839602518721820504665710002459407677952571626395332787644266573467436525861902371171185503773856674704263610155294568562114847374713299325434993647331270718361130882825734294183408619307182098465511666894589411155546957162638275836682310020062288700836331684257920719328456260663632742302512420462097246687650767330633107402312205182104571545526516984270534037763699176137561081655478022673215145986952542443464425222257803049468975676954236081901282823644126035990789702167088913482485036174637355092651325082933467456414415085365918413004776962858350265028411415429537888487181213980115634752441713835792094990848526922458499962308778384692545460523971297594381663276893971831343716572781523433140742438243902200848285138329874971970252603160682956990612606708567622985552840179702754541837824983569120241284904711911473934077002621789936951382371081179716188716931621897012149624983574306548029391650463670281592829348369693005324757469628853121868941627431461616628372411443999423746371662999952456064717592497007643798905935743467247551849837038829516590437485597651065650904840122423864290248131626588865668684995875873287645647219678399681420494636642434718240998787756025817621287385660724387818367122917464619770840436132768423898919807555868898274284686814255596353933360427202719631418733358829961145440268426195178095957229075944354870475349996173445012263222509549292769954235764426959140521999979076355244350426770200992947097336538087247902555433541170173057529095909578002716707852295098995653967807239543865510346326874999707590416602415370287793557835051997435100348175968774728215538974289154703360848491410280864864468452879797345370003005767716990089818782594063902189295876394004799165143401242934346496557293103627837246890829651237497159683894196796853575992489297181177982953289702601634236612101916012064981769424729167029128518953751208102939825754575274097809355734335071451945721871280935085906446928720895034079873429562849592574660172294504588644602244514812964082610067485591402171043985398281589577933320591074442670520406821165398790850756703516375529669094718014627172657019651840873047937800616464036179881206024705746080088876506962738750610282181669773810490354128700961031368762933941251828162757810712389224426672042011122363241182015314460236288771020569841295884468732875839239974150474099321025656905267017480419211272579642484688116518614789086330392508742405136962412646088685527096722654600836716809349834657183750992548130354780518228062395126593487317387267718878960336278613938345380173037066731059169115446331457073801294164653366918008592703580536242905225370932945563464012815471678185476785906038091816255759142741194847301978468329706950334976306045687347009118147083873651545861810846999107813400725073845274083889196404655054114349088824117711188444100349186227890966982144112331721465345141739012653924704710674960709189645594482048614914680019178981681935848535020639403962945225141893534471053649013300665776076949471246526150059969002013262410461948901238955001197732557144207395559480306246122468954425120133368203526631135758687175960419921054038514717851560711400959727826240829100109683782552677071110667685677826474155184011070458909518135373345793790598070248297730461176142304387654434995714967799675344000258864045655223903158338343425072216274316696096951496623179915650652455467835759114938520646953991250315010433401637334499926457797069600066209049973397685946439444816366255570498848538471646295546457151170041847516266077713511275969485964372250572671016607429059570171131204768720479375460878287260656975948135171792455258939485080038182593502011077862081930337488829776416139444775250294399661278973481067010708049170404232857531065167311350749557934116895436771898468336797428793650915048621480031173588624122889360549068527060816517232083293194264529316669438981088587834291781407926411770932402751667119198701081937734372765452610965312517170222374186286586321521665403421782755579421980370711766015852507341005338690497324544489717647832201765479119020764504175054254649127136030652143943416096023644140945660323763427843851307681923507644129534468118172072205244315698651084025244835971095224736370250484789866410754832953177909205234927709093375153330579129007315413639589921211627289225795929549494276318578881402087525135382098737099575049645847795011694766810111283467820369061544513991832466255322660076415988513302298002951359554923383997782896974614918100043998895139587894937276563235309317123944967866837462566228812570287982035616352900437324317312638904780084952708436675814793743326657399105718543889549914856805009617827872555448692687558879647856354307436499827165432103633798156253157761504151728017359141395238377660064748009464127513930315105819466643052691745495471335817881020216392113940622239242989258540047983181841066959541532636000229480186306478477877486162478843874897304906041958570219971598799298980668121660150430520912496929828936975922910397032795271669345490049045735043862776882660403023494269282197325955919914354643003358412262272014639348378635345716753583393623492432143228039482086183491108542511787447714019417286793018963120207724175332888160735706262238785628741881266788838555260769048654328902228955187072758930534428266501909942502096389426530604362126812861494053935427647777484278906398052741671320585342242210323810236592258366837663611772239729012951835526682359753772544877284335208753398447869053837750444979249135642080394746903325091087931598788795704912084936362411455644103544802531102968852965091706774068461775979947550776404204372977168806564347464969227861491770744073177265951961187663783060093522571278353249129658597419331886569759995970632734241499308577765785362785216165174803984748146134810110290879675635004954628313543534026880384476715410370235589456475395616934391241885202981825896933998498043593651747886930201093521122173041097884508624757958672297815428889492927429578040589378566053932561500388342224332880412205590770033998768890740755572808758505770250129609984308998346515034161989885917208199384609350261838610062703626080093533356476805201535672345122051635143398550628281323338095428730592477029622865346650983089054044864433825883369156361793284982970706818409379986245055751462488947319750925556163258788256346318004887681239513349579514126663786896476000194171828318498023807143644850823191068099334581848544822696241737148601809037124885451955253383495439474434794228312161162831992881708303868522465530565870831442396184773982528070684043107662871207460843505613032139282704278968870457350816853801696364319384554751977257936103306359159910890851207878704893485095451180823417177073970845161865632415915885143239466265425787417690024961504137358412979416426850855002114698612899825158543904477145195895779494285791582203256572067881716005843733883258150788872433880188704789482137518924696750169425167841839078239286157177353011457568440260915998784269710319368726001117174786615825149707919879038293772989564441124272546038044381047024000759981878244797849781863668553554536664963901530572250442415297599837067010370432979790380847600468389025115939335224281930237860142199384623216489280844095377680035994561685686673040126030507796660933539613709376199375841250088610144171050228767948326908142995822884026430581652763108428742215469515500943117464161938772007899949541316279082405794597430879460228164967269809432718386269972785375364410934797792913713304166340573105564369090512177739424799226500958323822290484123133303690494415104664326398300293445025529050989877583618047918621618555931980733813909992577651005583973215674534256547562489881147902211307006440278609185963411086033536952364160730864646886570502057088417000538584346941664106296090304237605032917236813278832687525783914840492432402102938053147109895286527911881527593076054552226293338731503580639225921863978823916792931790188023271018131278042797596347558400044600427740195295384175263806601679250726138259622108010458462763957751282535449621088075784261123920387339902758913360047907817989894619854454943014396328253440558833322527352879002780311310415257559077761189356695854299069704362770234552465724948258871002326067150230839537277599261777170281760166961586413097572879655544020428367472091204249789416591772964405296314184742947091343914443342366071828570672025782679430426649209681369595413850386765761019236993456030096081838709344980625035289298528596676507462237845068039654198259552797875009834377827855289725284081118080621125044425842292937621381311766116691285446012700506959523732274658084689646984446325780381827837223384498211273319643625974304992712326355657131900974581252586728192555038140115970966022801280076934012181145395334333330523407288213568306319989588184531226353761177567562781174214628010151441589657691306088803665605213690104907120486904117055276745239422183082875146486717914414697331766779723445626347900796119668388421959981960693740802750930803379662735039034877660925477273788966616711833944640914014929055882001714345271968827570576240537026170619578040564088033047532552683655053258540189589118346654267447438139865310016301474247383449162127771969889078174580129508340422268303438073412206713089412925986538098412396820007169462369441799892537150001383616498490351954234150844761113930621221137698135871822878527037075726521307583368811835325317417171025481625199548932619506379382680231702672868218824065024398818087659761631409306561978250814433473504400849185069734991625450080878774536682209080922992085467517169316083859145693189864631845171161581617027686786611003038465088968355851346382099528226624492797815782088651323353147221767261543563792551039821875633598966378957985028023195257519755885808762381208328756990037725948607546409289479679309313648518743160432842041700084409257676379308762587220147192856985752366799703999298354270334864230726392039509120121079069670020717836687109811978214695695981289364626015468171042548771986791843731280272306689487448588752089127981256480928445964649226577344365489661894010995529889851975238632365494347681511908031299134205950980074308514182698038643001780656654974398720158552359688303056195674071625074620177843362956874763132176618718784491620256329303971280399544574397215075535933424068602257394501444700509417004988087052219302405778947856175166558476638631142076051888693693977446000941519815499075613925252072541234685689747203151668487325286638802612131616603285650955438851443510625307607107642408923117507768054841618386723726858726754055636700350824280394077518219044386726952968609002219233116375044905097238505699512727945034028953731602627212482631438237603715149729597892979666288077085625434330386615432701995700933094501534204563607271643354573681129326392538522002021682952078097002262752990742252953809739343013298805555545300955876008312246378359231748641604772105380906235391992839625372564354569289736798599423147442067641292581953556736310299254516522773227891755689376122912835303791786441592082358446078123451108849280301723173155426921508263363105151714301742037324611101514596955510410389502910797613403724817772710520552862790891958506853157614501077698176098803724030906976951566352642227807461414512415031349270528579142413951032188450725259269666784957719832434441608124421895294330117532682415138847439119186475235215594063368728109651187906871588347790970342112897811133083946905593756652161374237680851771904805469287664987380226891235489371255056591810353417051166328646239888600076667684147165626206920946357548366716947588164980957227699899580410916749564836773227692772213064684007620865401837758677548806191738571423829259449541565128067997303912157126033771840713353388518522807092169537360754529129970560334658156046515424253970906560626786638517602876009807052825707163513151114627668938933961869399854127924198197438298679061455893824116439734935932141306768399690020191849105122965813020696011979982411585074152237922917308662578754011078201991151504448524336323975354973402619645320904780414819511206527727582683880977680593831484182525069558640761961734902374552934643120190639927252803435233695162775097313403431210003036212748381288564183880586021459860846050329891187869565391322854408633515097931788300886989791650718086222360275877102432029104814670768126938230553186676053337736318726827457698809476289394278067190049658474797015686312022943410584387141395065305413311642281571565742550739041414724973675083807101581230026409225900112666142281058879301500902925297268841293072376802303356638578667525576836461345341631589033974024246934718747141754807174761682372446531073815408600763506502623807587179276941812639348426115572998683620073506103865863850902339637148533595125001818578380575442939933921833272270955232353362787720365173248816978710667698748042200936498349276030863313706247483832288335263659953248895633858041341741708749942476763056580038006555869884733492128698152378121309573930783785889599864692657202617224395676210529543725944818896285387630096431699664813132910498074960036621634479289426118159907561399149563489898317373428242501453127327111366627164698520830812555171206477575803495032768393551712783518954003366712748226171066555689046397390128217201742328127429599861360912672262682598099522985340993091261731787520720335687822384888000262160934256601081350330409054618960551568919877759927324590955346247603913266634650807441125322028753237330448037185530179455709666138256801006791689900053313308967379666172924760364868506348432158317545494018403669355160268772866260805432121893982788812116984427344863841817693742973156620979704099776698344335757821998338230876338972726427033159753408380699584733645722147398541882380036733461374140325350146392280579960581774088149542215093133231765174047180328811097482439525479588434905927626464031865949154031739438819077182672128563099247874484218700299151626208615545723138684099035140901903501535810712553407196227391331519289170262231735494785522686977338017884193649578984815860406762468950516425842089002896139805208001195221736293765272898454400664675037753247286794488512433132743604877406469370279272704418484445456234655063827851915053783322267499483533419868450793546019121419039205378384333537524725464721791088334272823513782139335060005644437099575860941966859465822998211253733378877479293036454656539790082851494819831258673507363047191504064987594506650603090136027601153183453074809286794381340900763829258447106972859625101950679545627183348269099225149292271581204533374624810389275842250033527252277208611111098387792714884896699494360643986447580893801483967613383748746485213643727006105287491683612260563247217307177871492096038025605197614008210795959843461250639869432548479385314121381422767540422068677084312810895720826937898195795132366975166372248063537388281597652697564728702037348523741975147515026553618696785499069038828215750453931392473329357410132858944912153522130188755024250597354232475497131458138724542639305779657543201706814460968015734442566620332884597040524872913017233857922866106898347773222642670707805202764650736823632798858536994215739265825890149953867034656604017641737973467798495429177513436702584341216907388044339140003291440278101267184364836502950811549074965009902237960304034552307629762699060057615120589338621005921928240170751342417268808134746409571860715178798700046023411603044664118209571153263929280215132726271559256050823772764274742282467691223879577607580776473116025245533119136724965991235627159150092339022286515885617796988892844105918717258926290256366627352560482598416260990855035387638448271900423285739361629601586768823630395842400493777329565750444006443051069534972447245507303402491752941218539089633290127765900746405707295913703504061973685348774383130591096502511947478883913748928094467633415745835471546698510230483852858555663682292630547739372538387557199187369360476805099378704226166729067803003682331820670058859063370575722858865097067747416814889041227189226663526533883324508471703458409787316700502227921703958444504819677853424840427846311305061198171207763977759308740202206858065446505751075572729093212373540798556198262822917058979295377508618047370575363713453721766616288085743911742196385635479424461910689463095553501354277968722795705288203530041764992253894278175012797352094866492707829774680797588579851076402863311588917929536841348112653238340614679976843200461186713953048594733033160418514477786782527789828207830849873672540287288054836781532176424521716575111986310872871967224530167555730748830638907638201672896677280620387347838005410249740869834968506051056226189949169710226245843916422893613685513114297689601293281702349812115437113415775598901552716669442058281256197086376210826371536215533664089813084494662826522705166260757330870962590870061697435210300881086971870433198877359923647431783371170030154974152633134747782741736377794881526391122027616595551559799898665832480875470442406670004531986863095650230847682584869159066244868635889703986744660226259674064034256314868465191842640017959424879949231221761564772849243425176605756618441940408389815242336666678567063743522165777658177444806687311198298430243074102280577822437468922683105685902430536178386880040909740205199480464698915656272949102703416368912612995255784811342349164179549004651066597055148217698711222194067993862245432393865103010636897652091400229007211844498746463889160278263143753064882244462908260789108355136819622359061813155641202201232764157776863555247795467291195932801316723492524625374715561218675416639474904768923814038657798552232939246994874421851904261596533327375206089115638368981624453457608909123232992335109349912505802701388878265265247832818614073876897133376825626301009067906967854073819010951123080972258643663934728402994093548920479351289610793783689627486457967458230043615004425389871088019985220387174974884142359263952545814154442142570311761574512812983521564580832960739617548468175430401423454864496871732323469886912616253479550756608938451720592508041162971980096795303390696484971130765473310406050140816016573065478747668003094934475661710950681710009329847201908861874426493838689605908080479617160327435177331100826721623686917403230081808797982142485865620778106976143068043522014777349363492418806670388089074131045748656659495402706799317704559200150061522538189114259421070413053241414180363016069813759203682008791895512193448274314694527186592806695989816100546248358372852093579365325975932464956196806246728300728446035328427078327126085834331436555433194528514016485317280597203535781016037379805385103996536781674179819171504801746903232774232099352209587069665693398751923591725148152820382250118503327540075549836974671345461064843002482230587812104075177757115947370384791251106512637196883701434587280840146466140657970358776344757083104338247103802668831543680069769806545790238425229303726601057128504795164541407334703045771284995421360501257146434489896960189382157010727654114818217621877536403543341964557005443291310131806719874298293038104904955893066188507106758146756649098517402396544231303734846878415093829672584489906361262128316908068260484507162355192982853453313931082207529106691446407242198308813259791979592675606457743293794311986533827733917763545998547077059625017782648195704067834625090384585971043594800018313283635823096916214595908726822918504920738711517544870718636487831222951370070104568596555766264649302799178155732270261481526673815012797749004822883224336294028175264926749040099918013928341402563776670540444570296346858044754205655884721239194628459363960020882314983879486138098995777841840963455143216131347053535154155785069649135052390901519972098960211191978726662599649639236641633096095266657398298359528353380765206584715265538812639802895880644080972816185439281281420488523035100460258949080858886498520167646602876613655760753661949540980616150177800724837867043607083161564989221697627813575992751083963931757991351021343344654806499273353542027441931036129343225989190218661820562827526557324427634821507046109299479878086451543727533903131750342831355474796524879990920581017436994556427407732168816674758119144538767374194294062971933593785034564876939626192020988204323227869089645670571325205326627380096346104769735719647630136240005006119624420772813717005800164961802417218359532125244665896202585577099043624037311745852349351068165017268990734661843213014351050240017860874312234288110859505087259597633920271036256447624932052836605549951753821589422345818213784666293438421476477859244032217598565142424326561868218177326130448077188034862267551447675730995401094366839911700034464371206659774059058785186205666451294259132842906117778750789626588959860105766164719711789251278590635078466327552615494339287001033911998848111699456495064060283086971519950478089977591940781856140745208637827323768517300884688138666412586237105855420476713962304550956126488712030780604969526760179426178291437492141441052898564517764291394109158215018066258791615082126708316069321872072606446158046952994487807758680184274413625882473872377359213017495300214368017621796607330028289069806619427502711072424080656523851980103782571003449604897993056223287392778865013021497460535106139118367339998020817013771969203199633404543879772673805016258424176578960913139651414226693311396334899730172141785889631690192683616558643432016029564422390462446004178553993244351782674170160083495341200994485680742254748758157431447011501045394448369743481309000329972649658057730679042896086181162413443761182697871409560463272082973776752409890357405398345124481788083505947325864206320387608424370571117108176212314683036867946009608313877289773652187067248848885678683778632352672580884715473418612795344728039017106135572315670081925250882021862569515976094967128907412210973948141524382353644677947572626060985530772571868384263200137126961717897393151711012520347864877483369821873911175958492676682417794232212346971640432468463528823221427914381654275233758644206119936748660235523433735830839230674087979250463349165215674463975425255631682345804849341750165645788895158684953350679291365463384456830346435862908339049434976220157160467983869674658233117302257297682018846946919154615042206529234005245601431516277865002848435647555286979621800435547489901332680202165189759846762584575564866299819433029687926588232970810356852526469783302450196613047960340423977044735976084383609511635023304462035274567324377359323256252408415731105678318780895065961716038153473608189857694693396218954133706424484197053029192512866974400002533823369083143513873655849663177993836617562392729522281184413091664969821763229162293271825229806929045258755043500642407915258489707000696812077998887228702506084441264161067428572027786699422258988599219578461864961770908937162556015042111489265011977673967534408676186740711242144948497327180099079193371725140424609855182426934740298498439216908776631454671271456417422926218001634853860590211308471753911744970557225928659123846260224916169103188457847900732993682174000823396165966871348437539810790271767943020109438093996692989589517043346440628247136238893015880681957660587878824442990995709780786727386263703719274157695414962937890941241641550768521539802246081025356149180356634385302934515754079484251861093282429341071603912892074050419631082620220236902269960166661202895496074442037417132182466338520675672021828569418288323394171724630616734057765448625460805959284198530006286636316911766225362516213410480325326860563917294692277765456859027136247555247876279912060137341810069748894909638755535202255402347058097558899409805768531788843073996606371488417023500805936334618475365285152460000217430367083379125210344787345714066742254690405996677969315069128758395276155873616089028480868668033545119530093356678730508788118101836267106111772312594734913850315065757445481803223579300105345348225052098426322259366392391327077324859736782994010788081762838811157677003523094743296155603446021709118020519418775086917753608538563614074375432775437190787803001616890729770165252378714416750286381144117451260465226449274709472793841872729278964534801134502501029970933009116931723598794626472518683474602731703844333799142767221690437909131161169279489578040334475410389875173081523232703173932261860410131686088131412096862989910171659634862129282463560548643837521288027412260725129254797840075936426366112946544716891935171151694387658480173614969599804336359340350300523093484702179775369730707363242660703481024651391141125389306692165878771500910664004093030954651673796362574720732865906965759143301088420177436927047409382216803246115143412449483087190780748698340319466919512946383700672745093167308946086484098301800064832055619804353078143485187695741553421466387072738888991459842023554322623316604583076987912186797115677836533795701969812374662816624560097004582200193625076894754828469041964714332414883985509791972993352329249525487633722913349745947102315693666109984720032365850532159741370015774881614921471072787050006427304998656180109100318507937238322195947106447892321639428031082587796825072781985135447706620902939031186176285374396060081143375308549819048774664319967852892343753237415977085818812565038707178751450488068912528102921126936175906517621562649508080562906429126936795213607898585890677263955660552239363868591549907432252682213314713555859428019551869080534059949826767408095276383084433629498531133624193018555405852622664147328647975924830334221136566241682264387274302595753787382011135756710643979092976929711177941558214645403124842437445914620872696480147543393940278060722206964392349952410320750099239658274729799358154225335576051410702475358728989397028148504127025271836344480138067349881863095548705802523368715393174791025949586980147992321606867826123334958804807476271629599170465476003076435239066170294909663720580710571232095052761509881642583771750554287472137640753033184818591638234609314806857148276777096969520452032288421815836360616651830159140360741581994830948353313625337506167283963159524883072381621852031906858568122601588992178328416138858314343476591735007260013748061684059593785164798132767020063828026313658622620453564369111217102350354546113266689169009075506260594493350750507392000363275406726955113953214127980586122558921611705744488978872602555343748907926095185116901440670494183663200239142508859349741957283726214253894936412807093743933444338258087657741727966504031739104059817477912798322572918861519126263385299841439594746613509460887493440029706046133252408366053525017574622723372867345062246601497179161977857865283570458308564415504764593051306259866722266453267870310655153532975270158228423846572408671189841796076990186115024900694444464606114894836098936120221005219490506210187621263295674565063022689363148569036634957818537769901955194268860450232988008243465089747021461941302638077444621068167181347533440102620256696045563204048191441963668155617843937024797370083239447173216421480674245064611358362383280519831006022705680531834274270055250759101825657500834384541181741784712844768410206263664339555363331810479874837376205031598181174501164606475770397377558378441041631755016293660923178336062429408123721097086111482620795990360435471391104081810652187387428776507542052405984848539868966637595777480464372862729618289800907237707609018543235604618504202815753787493964370844023188850433259867009716371605226877582661319400113853474457612350641319911606618412411396426426812120204456865729300790102439901903839869926579474907730452387928621765511264005079437369309016444726190045682820399673951410765607436844874026311495911271002071982045960689828062659330178911243800333157496329363603608962444397548490625295314188920614845135965103106843047541971657113242085639190095055273040056778488703193907940550755046084669215761014147445345091432646985630721033961070336488490250344201175107002910962324272311962476124746913825922888829859123224721296736602518154642068723818018889759098839208439313203047368835764630909033742374669060560845396254945833374745086260270436585220466833965389000889512627954693520898978183433257775240125800271148683138997838633054519818747120026812087278851418143773274234631530557827491520659255124474224422591190261823372494825276094391049329439683918989344076421409387230120946895373135253306441079382611590119127335067137137967664144301408926380280041708124494498645874014514267573573934247464222540648876414460229176362087446329128074919862266467570152460689854301396746674318444562469094828719909059444678532040503107376923621007227501930481864215370772667668426725815916726451314672294451095265771464230041275638180018999191085445786601039460646545612260953580450267879765386163990031416435627335601977897803947618464520400333985858174876734654322041824084812480946430261670576036454439148741386342689803708163403453544891552264706959013325927443398938014816006829938843685087469799842765585691750560187443689462347327485493625760015714906573054703319838661920378959147094942194504115106745141822356053567210252882715445030504932749301600839719007260181060129358532873256281473798738001700533871606196820868190531168176313276550502759682476856422429212847428497808489466929863183626448328924561619761233165648590744289275364098197408188158229872215474282866925864877943195962770910234860079556508942033488661181328746596651957432262466089157973458147179909652129544971957106748401807449719662492098744677879448142135336048086195322443328188826494056680109578847513995174157244401245205014399451045920442083236925749294470667209634280211795028123884964537294084655031024575930429557817107716363826474485624588006540744614334549097371195261327401500495393165197475824651872495809938741221746758581914562687758125375973023583417577789462538801484462329078817259549180468898125793536526281476635160818881365954830909897437920766082810270527364654422665629598372220931943774368077755330727857638110331115165578308619562525512102158798785712017983192255281443691407195296660048191736431731245793167561030637247027238837763887103899908898688204395143907828967029675604464321447396390639268100511487178039635373077623694978266567408450985450187241671616478305275797442308274607160761255416860468449301564464814557620391459391323461461338836015033645238866283605368979335051411295592262327530055322550917945859427886203404758629579925071685529329412895988779877316214866008885162505437340625561571894441541255120175744047797034385901948790383980073511246110539348166622031351037084821517972459931597299603913759667213707606877360150745960088948927752983837624448110982918100674774670428115245663158777153827465291850361161224804912851004064478643954298903540938136940409663901330761721858728490306104314206303519762998150206466620401154908262362681374977892085401358303865037017805560505506609813958530901393136308619724461220184014473806006686738951928034792663447199431122736419178514531356971623413486497379946025128184055252348588901152699176779259364504463417077616206367839436953229860813269414184110646977404713574312773073695784810911296643330921256430649684612498626985871932863835193631295685519462867999402445248841425034006643644249181394053889560112134494801990478455440352986018051142052778440158851955427264448806339620996100807890539765706466337437407653754034557886323635696735550913802586014049137984068265699626701589784384758712955520650295177678292081297691832716702396343913654568874695038113524440973357584423991495150548480134450568841617210200990030747378282918356498326266995579586128682799780086077823531552584092064164351299302327325268297785128943303025430200059755004755345051432413904406854415889926191522752827805566661344550337511235277073796004455838947382719984787886725550716043775628691960360218054226589243163808864177581048655053604427424429981405059955059296512621880263103514626597111357014148380527236623904274111460288690179074376961416752498521354690891655344899978944579802160048288737235205373485810842840322264207867163892238952623188746514382112982159885521524561211971945352181515431878437971260041056987208050371584714193267974850722924013334394416387334617751964181713976492063358095686977031184755297902856958985321295273860237786470644159424221563901550038684189982198688082620974749188992394043648418992830557881291555905815059058475528428070809943345164080488021550922106231492336494850679411068878264488233165314423050261939792968399586246062428611068414177885105933120789492482300727542376866336648206026882870352919158326047507451170573185454679811197279833749268601056534278228491489516859926845247745351943346648816146723677478692068902222083404724901939694239373442033863544093273286770091568564192241152568612425268380818982696244251164043443843169096122637336284277820056913875934314708236516259591000824798222741272786615027903931053403535762624471298067239371449995503828830979284209004820120844910610812602081163201013645941739518125712446160540014756906358772226057926388359926039450578165566757396334480301895156981020658666220682865445143266120915475845540649706384931405231289286086322708985381241389192758523518488035686536592594775447360406639865335801013150383325254452888799659159824610532359869167357644711325294268673501331576787376410284747325483697333635260552066888742644594908890391961729839062231478934204900597169495781948067568157387737403073360445198296355183174713108192131460649380636456988768443468336555481560142083445685584523034171340550171986160895911696177931909937526609138723263540132206465933732582011511141534627258430006720221633733644640582183103969646827724477797354819830632732891044037359518036922235780664619718456355726302948408006632284005580177214403773146878337440666988477333270633121561852275178660982466557802450591092375779565360670397268366568473323359571822720896561293309291084541476082687821570256525629955320008127581309024191677813038594495386444934300665310832733506731030110366611655987270207661982139994593100179080978536356062545197705722006276164450883174774541360946539980895250229446083530617106124919283940521610259287985881682433094591497486887880616935288459242921464892597269361796838786783687951747449770366046856270718838116188952061209898753259703776705682003798534768417075514958832521925959745947472208187951845972311494567179898394703247306846575220993248312783029941138932569492657966954447978944164907599455836807389643297456274486959995131291952087087086320599979243242811468673227508612607783940470322157290371231305397164810954551473102168896458746140259293808652821215739569613612400271978184263995149214503909019723636612968120985240788996152192479991704283210870424631527624291875221712735192793607062478139683208494681526686067281882240631747621988604093418725014120872873962018962179665802418631807102162900477404514641452660906421326846522611001008232373037255037528524225559280961200161371229184640103134545980091337134291798002059474602630761575218728553207668791518782648811566864328832006193840992899438136383355789209019033278707217462150745109072522088922039715255451090143160360035875222031399854016694425683616833740266604521879757180762408781259716894523819189022233372443220314830256229689931882675697298023667854880918803569528388539339545223041587355410072183094006047357711350084484326003678798452543458966438576717267674689673884534834684660658064081499697014339510198598660539365748127895938102967972727584456024551912157289379556679605243577422636119071272902998347502274541469169235254591116189612329718080369091112947579059942541162381821004332716910166370909456590958628521734839198970380494473422613461011778425487524912324086197226913818528444655870947045027464647274379456366041507477009787866390972489495696979730162027610482933909357266743389459085523034995472483313043951787708110789773372686375424737529647043290915488144741248446038871731142814850507381747917264622882574719618056425248509835167488064543745980865708309642938675328940105123229157393853857947993750158706541416838815405348901786812869274424693279956217088300263095056543901379651287976578014826101414479482286703693553351443004536479359828951877994206626968907322392567619345027374863870151788177992841102572039870518231762409564643203809726142145928014229641618223095269972229859863985524454058691969229652860489442244371361810418597499161009398003998850270991469628426827164034349272309063162031401835338552586975848637953731432284390836148858161661021156217846714720552374810418590357833506282874167537039535281800281745898254320077174172369886024528758145538827489946519820481442445349005296346710499486602270808092641744130255464608010977678636784522397163488343800352155446561636476384963111349497795895292430689844182826941192477979500897707022857770460952048770075383603944585900683432168812676408470020454302324134200317671730306977152459825967609596744635502997510933986105462228504517258631967584682721110792952829939300465296951539617343947029741718940362886162017565675397290311792069590243271067785761069467832360116718912086424323535716959767851024147903476520992856565368254148467043079685025579524374210934971002881913339718859375855801793092844752982770250854720265222541164234217174949622529647750289178836161270003784104668899038206583682028179847213290884585556259717472448865140472520533800358792492935848969036035161809173010382037115226996091073415071308390197435868361956205670359786990012974900989640924643224010554774638356144198800549622041227785232744177752595021157158911525475535053350866438891457889398772143021909356469309831537295092747544980501123287163370062090048683185171467925957498192185496802729605967882293865766780356468881644385720311920220876261560008307206562875088155758653906065678917479610730401558023723622931014087871730106049810957844845011085637751618503745450413821854313907093563850755053972693692112093786698734470838940597790683090432228869433408201817241942049747799476945307840233333856319452069451751324699693281382428735653330539959142575366530404504311706645592448300681237459120566654927820838229699277992267470916289291113379881337978294327204508279531155951966170063356289914946801072652519513288120712551820533527679855783977440521034987030625365834917133536339819957802099754428467621302224871700050493098755341726825489570315190787167867847809435728189473331416530566846598178217390387220362514704399250488452033068186759109192052952232485515681416544171922689530480374095569824866941555890933196761846091960416084535010227653542288287324091085482019703877558471756780488755752396911613406175075453499235430448353629642395565252411148102743830410031193397080370181762796521688171913719260699050826283175355642265329723230769741669904763218882941023922280094370286140041455905559044513605446487376671244515757888501698675295294078346686040748818969654361846275265210334503161978025848005220015133146880532068810644593635343847557631113124273650187331348487522067481833209425142729274977476017449405390436773877801778861796211780893934233717969233157838662280323518139001142557531367030902547732964280197992588663750125313153924539006619170358126565058545887400832152244653829619431336333365883522610113343015864555677461537660167962200843431930781715131423622168325356271372694799402148163982313955679112446547830734377916015279872121546334669942130302725505238009025958656228577798706435167717621487611673244839108140470408251066758579835195315838154555609755750691623487080185358909560576552879866054265052237898912890605191506070937878149703478195053576989854436069532475468162347465599673554212029000103196451785761057052939099049239442293900541840021042273143647376273552429357205506678714446154870951147286152345495442502556977893045593422120912116038032148836763579840254106543996783178103642883466725978305759297454481401366816963664958580860054322330490071951475599688357234773498354994875233039514764984268624055100511019138739229593161822165196817358356166690481914553855021067346668783856003201174986991662374578707069962374937208011528469091190417221730358832350538549029037917882742890947562845389878926776711905130314551012592035504743249624034302113767656734207915984952619571033781071734497140123333044035685184276421738271800038901325873122375985081377248801508376619222522177550637852537878585510442958741635788202441175677608277441506604265023646420749289425231864977493027759854954507475588888924878225152922124018312574057177714627679904450570734988620700859338521275282710474536352960831079255015762259595494357742244735833100861847475313441040297034878487394476964509459375946754696204685212703654813712405542139548104990612044422769427273015832876694014092494499558096062325569348550615353142367157172209503965649474426767066016371619206243508402722512103982280038471154514031525573820956051801294710276605698661902226705202409122081320458977590071340107092632051461612310087513366417413070493987097992024182738060348455187641077390319650340470070679990622170144887847029961794486175178829038109816523426135748092339939199777757049801906919151254789283819086153739707513126199607227905061628474571433208818647593909324173103214525380266923442335825372266237849519452396822723154797711563361970071160752247421173031249878271832761383051094984916557142712627862353673195828504925070548324726575987577500494507438059786414065990422864656193487555300582943002236358142500236096482738796070170409274468280298776527782743891294513292979930498241375903173177698355917029727234125268688588107843774632667045495879232961767403211196642509179606811917807231928045727481989796393406748193794570672604918692193665642216620634763704419656208473318619706857523154185471375344573580572112368395873600940343075079477300190157531568198829490233745937141871428167722002674809733244132854404095464205327016701128772451581782550039751870654643957713231971358966475176098900734670526964315019316391224379155693016215121034638006509691533730563934425874502174989912969529261928943236489617074524319945029009156373236297735146527445257549609794731513194056285107889191795538813549256459202319050161065568923626601496918182546345773855555510631989490149156793666839819448727766992541310645080731610598216971812481536905081599422745072992377975352267778555178807011981115724014494283298083880564416594139139820693560722480557787256536977453912112649918877919819593023791949107827314684793331901316253596909033384591563377714773962869703389731514498732864695953664265302240862321359303680784019718553462702003071735999450064517399526000178610158048554969184553054795752653011201003676080568052471376724369146687792231095525786678504290242679922742412313983497042285441409301807701687596601462034530502213688992269754144685770455640853221146135152360052227779639783579318695116129774562134468057088367046352594117301358073028033484642105683696863274823176948541270693191774691813916640444707283015753082142366477432721268879287524436620655587839416723383300918965803691302505762473764020688635388667701826581117766943150493690787230790551317390738558317529365027568492501847160202451539109349976476415305227669477813866557491006520918270548570324719692356448910792506786530630931026990463144401970336973730275437459244928656725668364242470749452615046837865342256889318963039724487149586793930666252449600362919875876020236263215736848587393941538911572744873534753891329971392506639293631321570308546449634206688206623792016991913754371981132326239689728067575380423043192946082255558071964685879565089969909960613342368846076125760960344350492145204237404564277263047385290484797484091937110015160442452552894368838254159367256607676444873593509208591731943415066748118592047891483186620890381920507232520959218234003888014215919840400929190601388729421540094724723291520390230599333608917343318387399381176570076547563027508852549954673329186816838689650292532717350159550649652812568977699806656627969203212981655244509732348544137831329881050182140648741930280138009216745358728578047930710572588818167373360361694886213577498463701704777926364191514387142262652987891519619063774815870138956488272293845102022951276828352077912379672824427370642337621753896915665402786667019436892069689812343102416154962485729082205257342800163699912306761874971639515924680422155137427617201378934771312465977133188229111725255637601819938663374102132556811429309847196996190271820149450214640512499126154612614942050190023045400934885971639584529773664178846012126876027686762166995438279660160484177475351834093598237220837302705141835762164443129250034807543508591403957287379656950389599756247437484705130433940212415401389999081785385736239848279408850840278890392970822000467702999564341037177538277511876966221094234325372668849716771436867853834377096421257160562271920513461732731493487287265725360218042426236669343703456409989961493995361625575534026947681990025603391232911717075234673992792378273410081057192248501379599154169965255131980283034774835890577698725343131437107450290051003644939195904671464771723648199355207489968438155161351523954842656002065929719883313013759829704304412537304148619594745902023644931870445413951967247726698244778693566459070318142452045527688091961707834832512708224191724124934919467212480546386277474285530702257124110926415964088497076458711637439400314493527496750524236374419343897394819922122646066917577891206495366486126872680070959704232337103053674003155853517269263240115623715450381327690902026262250869575688987006554868826842854007561596115177042601239962884358162479128161754734452098329526511810919991005273902563342544673216742904249419481489884662727895621199586946340021141264995068179955111023294917142224686251099886425616672545699195193853395959210696957592812993882608880948617468567405891320302361264457948261009574034373849545967381260237132321949253035424281193566915849694648196401005562790177248139315272218197071721843498058507661261236740284931039493397674133760585740860723462071111040042467356651970002540801051343499441172135634251276759573732941079847450969124245985542994412615178911638235950327486878013014817751931425233427727528691501984265584416295946506947596835614969081402726773210895988645383769918304846994614982726196085799561520327997481983085956109225119522744320385954801253491352869600233877437169292380921072226589487634702829889786815181932133145416436129413646839624891054521211934720149102460679926605902344776950700608113831772936051458885871216350042467066020264880928088571184080570681504027811877218354631454395520092549073270899372671794156428027516836684922547054732258040297392248786472862701708569894963182926383510913760098827877919665588747769494316455052000229883833262672171138977511913464606133849336262058873439762156902119383600606383270629713861054465898680803801099978822125882788986061123767131177805409974291818131227856953422975402604451977381652819269741636238589029703086415371095168146012808272818280455852161616302729012627241828161766675863605596360167708177190955750162250333755771776776037004709694577953344519055502964808477652337091479169868971938540726199284042730466562036815707711913837901018826185334437404430732325043237674549794517642210718090322037657394232593271204059205453768933191795358249715028744308767141689944586296500284917459739239089780850086531131841429786713070624431343648188163124432924864324059611189650818582923619203699704692611232676339562005364700410811400026902690367701798641986565782983949831543390481219129933226651722423764458821246837748973725455109656771120857535121653841780733319371827937487534545843964071825887079502965139550674510977712021748391043894563821752989255502173667528847632007198046623280168119881986732349049800882943557784259916447207623230313565718243566748374182217943574283808369607495477908141706666987643315624995027658278437819028882217670378953629423420523020093960439676047258582633815845591492361236691020235823846213572470706749323477609212611650064950689117462195489432319165245957848225665707554082197622022093083743196104439187960303486894264297206894780377631251250262194493039458305743813839532063365898135040819400231963634941896917826836598736392287738351212710323571126791603718088928604846849782596482559558386136934183614033068508389735330779750232826952004948008979484911007349376929614743630650769728943954225135428475720199085922218473597118012712318550278466552385232349248460685950355386992853406448889931469948698287727291473298027721848805470110646538309008568261458753765739231286790502924684097750305754392954256638480322769690232737063063986465841000045647402817329250184340564725019098981910554992132385769190396821245589357595296225427978938302717119235997916822253214866746516335877960987760128903983185500573274455583343609898196283564378217599394871960164477723210738690752133891217134960938393014471625654098030747581161154633650872085116178080507896487307104217141600029501947207155931568373219042234122038903183404381086043085911827656967815938060615235172220613351939398371275962983162137012592820933694459283536878113451064371386197945231917041247877729280698063693775988071698680741328584482401614666849238102202913443901564115917232391292427557920056015980977842054233077121662307680077704020384319003679472851724500650923614036418183562571911502726821030239975501475375431741197905531357080439512823701034272914879270537733485392219401806399122355257189274428988174070450792952045802253937055683944658426437614607225447438472510794737731532264471924801591960443835424312876755858454145297012891016463112692168469937159318592741185865260251665623470384099897559620751692340894890520573848036799665045179586158670424957503908266069387038918800262281062991024872124730126263343190711303080088539051575692777273105650782231425006515435934166696787367851391491016917280265021658593057318147444261116297314585628295439053810371539003793339863396887127051164131204941682861440115896559369095745025225388818643820422098523078529977876232728473011982231272229707068986168005667227177805687253336717371671668634540089303735102070815242195179677323631660747530617450146355058010691162373539970302521277538426515004268010864833632808422901514513915826813687948938172820305575155603700151555721021768740587119919776690160346650751730467967514562803269776869155228259193893008320189152626128533402778543534553020024368110909951186479477074094710700963163941574939611681262715590435932462026963602560699350132881117261859581615713603652625379971566894873022119920716029985662440942019044690134142766613999287063543403952746658802970777170518088418170378887519635344530446687813582290240636863057994377819209731994976296479556478421395330063616226365790130831150597673990043751649107854172079642645928183372643720216826896746800758553565458433217370354395209564951701164158190629397347793986860747991437447139884024175308430602201920068166563038734513509873646886503119568079851382598516115963432079960382335649894411357384703778626921826792322984013790629188549621973446629837290165867388566831187114275455716043304210858690227092938684043528839238107147108932467840393464000117495706055743769578622068100739148536865281702825056730430432379051608902432228029102111259395188576310949113654005272866838869419391551982578088869502176783838126296685184332241358019691941358800971128773830296414968222095975266557052622602365114796730282445010631943891637854258622650970532078454871856968043497083802935002450286608271577787243980576683122896398121439340483232285408208873037908189113435301090915209451560211387170467745668278538698454018658090177825419081903152225182926449523340305703008446464283079768711268227222144683944342451996116023582470109134197665908699767099129271072485116420404426117530383372519008998146996258613694989663141513080018570159651949074072921998597700146751634959233562691930669460573808987982512115201322865680557611226605366532852097517201498329523898492081900909533713393912890331374012350301249542406400139787226956897143654166015230688390219585099659568747485812264925536753263566118999880830126043082419617004121132212317493355369509009397265177165978931942218945132326777187336578911206553939316316582043629922893968334995197378605624761837877132282961052000359378486183598313661187714664468056548098627963142377854855886929921538959560067893807241978961581002181951098852739729912238227439154741610867549687440486978045879189039985653080809969280011407171013133858903809695142829583446629034606285150495780084814723343084619132227363081128385739823986643879528950719440128138934504665673702349243869970730170257657074422928599540127335347370350319543263094305061439599967509987362411668487062441230837891480665958683417570779040576951770493584450454496203731521598857621333193903077412615452720084264734044535063865763126387270977857011122298787359811663444131504145149352114359430926775235074680125931284541386128126337258910360707015126433584772725261290588431398949630619968124737777904450372311812430786958503759368339118095900647722846127518801418930179064455662845736526918235824795057190561171463170182577808716473645786218923319891667984035910037691122240734492376990094825374030550048498579103161948696852768668164945526155679197681733431398457595431078683459253421826441594579001002595306530474213575199474720162501651350356601525480817669909346726730247167447578822108105080701974252297283826226629590336082370925858697755057876703535835772217356564941232957243218956507100425381260468332078387261030682952283882524446080244258385227627903723857199267778999651852208126216621986316278284822234917349549012040395893015228216290449265284858105849826236670512140926733781722602114471687786301009765855815083850245917782316963867860479898707711026853269490689591670136936597873321479930329880789939647236649966729349587838513359731785616205945212751613129170077757949030949484452684614919345995983512110662046545349092844680513512449232321688260053724522969355584067958429115622218755681633624089974488916845923753176316801223801347181623879596217127526601133127122653828958825930036041104200833635060314757593965892500833391197094403192412688272979691691400680593745917998409810149611871905262090161929634146699464388489567396169095670572443879824934909309966565004215065553091968858967995245263923693200909616909130195235690140994627761758549560077617969633345340974381897314446649960831436974343548068828937869242972681202032789849183601917948752596130616679718659983755501001190190807810698518335247044500898458521262454129687472944714987203702467490650705874721490128145402898644363656630198983699676443383900098148407009173279559310240598644426974711417073605444055952098538379782284732625839630390728918913285365299132399216829487601521299842678450538424115086264902313569385854024374915508676916793996951593717572024929942954268690178594300056011737520550758961778533199329146084641569555215923843145273913211625929967691731879075018583617526583432628724440415645646636714599543696412811048911029691023682258042678844855273106019213251697016960538176711097578685061270975958299642217626734992133424917027609247772298405024114317292342915135015102350295751658477578586283913389828473597011224517490756531678725727074258314282047351574593173656479664170798072701545989694822067815169918895768321238575634321467956419054142180010175670050769025797014540575521925089935605611981103702508696155971941933531131729033201356939842191404156676732374189874866720675316295716334792169921894124727215760889613181416078369920737674955554621960126376653057877317625502819199338309301527580288169560044724875036355409415015400635064449611017847185425481745244548330218911705859879382300758889002708258375064643577244447561480070265274388734212186683925739958758753541545965393941839350320154777594448710216858662110210809204040681076478428576692742411318433276674756302489383178559534363203114067235909990207387149443731935074228655965224115286711552789218730989996348959735880178401559378055314107356636660138486002730571595343975026737954435751170262752591120796146376805457955300299118656814652133658538668079643393192552016934871948644964677778428375126440432561973998255863347138510539757081689630070406117093804575088973104569343813721105604279688463116113317825860607686829568562439164653072657791294727819419931313789759166296137411956783945383397992898615652090756852361676631221859402535567081737450456865299069662936446086561943318461558527817311043411048515378087161336105786493957550333108185630110819095931941145072923429196935281270886653769139612942075790119663484895864966713781310113138387027786192752807325286110337403300905075045700161075419222210156093009961491723579501462233695443371435576584234050087854237770630897170159767887589537330597756384117027325709802258811227213118534735285200703521437648485377597459498086260203704992919693679480173967091788595767541183369917259819572535987129736979609206075920531988055973677368915047117799415089227457093174986576059267852645543706646612642688124234230364780430910122751804183263175811798627392129005178898392381958685489165216373607868115284388142540589891739797448256087435605003902437293821330292255550584987754557599214670512747325331265590196883507252441321233255864655416571514896154624615441429293727358058433303369405355579257476980592386316117978295256536242806513219331687305322497327850220216772438620518320132346238102031978995208303347803266708837853895985475135567737382210420718659600144672799418659113574209676884300468114126301655693554054195320001202051798079536474402860034905121764313622278251408777891338749610574356930014488498812427003540635071884535187623775057630201027421551913902136465475581930158599524238513776974140937993291864481057150379411861703520426487387974336257173466558602853641254497183744640449385778021686052978391158228844229528221027632016676513636222493063112051380483970598010486818329866681153448679404156670854442380490445732608640681775180956061155429965450880794191013946013080498905051031267355469838691093689034123666584203420142439580466580959460256805193944040446212487239461711475020469663906194382621802386784750603667034122958813758940554320034270248891384135268490601335020771488049448627615073977698583283724029818286848045023707252262476701884715059318074888018897899488575181261503285627373717676267432327402724496606432261366341434316106349635160326274101213135994386639039744003581211463317062218915317885615321309669192143135294727494464525121427990836348769008512749669811552101083216406662447270789883312479435800915803791274043384019368067408716818761596043278481713835840613796836431500913478115449772621836309218029815529655442585376744998883404117916755144079207458867389276714535320731461335725407343048547146217880292256198341992418517626821087109015939537625523062826821151127145154906845585841061269838824234537130810675469792028016212797730584129129627004624902688619810951682619684747620769785379802129697711449143834652225263070483405719856075699008067348956275565883909730369178604905713577124657355987749159177881831786080988669423547419372791192355869562879114145004696102507757749855182541507811731338815908583130264194281744588198739710882702030823903952756905252753969778830351125032621121790576591954283017633359862756998724456708667874520460282152208913632401645073150471961531729992623714376564979324914562825433759206232065375950119392293151959816690317470035728054246774219196472213818557176312151079191551400243782419148415974114897231848309054785048494734108326091504245715165646114858427571758008199680815206498223128256058348769953735428112099253470757261647118957655472602131359953062762515933393398431727047484185436325665836361486711705111340975153627673658842547014170448235705750753141323529692792727922461897192219455383460345651917246679757075163750729531994146558367766560885277342847422018276618818540499240783567944319709509805940251536689496933145684871281299881598580981456510990745373289495248449117273615615753013245532497223794683187806816580889797963846766351249495579544209665796302986822673818852000592539854113505127181178723886875180202879539564189977343370648114186273192364451904258533962173378998379533164298437931697547661708813223047666832213734987026435226685689766404418372545975524188868890497759287482832387636497747002291963814307101822266188869652271125002624185021315434911745674710394086122277350408683093515348099391180573628326560286478136233455047025895435089216988476554481585153073547885174881933955728658931870445861681528982962949891903985570706583859238922585705306739287385561420285168778637291659985565329311742514623195634036889359469344084150118900469524580385336221164665671479354088073555837545691888215356268620349373150902339341680111242725388069306561217341762295258261411136482817828451783578207619125672103123521235254204450988225291271974279115502790828860987137096102307859521583342515159315389991572745299885571601726910450313413807673425424335029322231970325000337301682678480593743316605569353932572018692565837734840252191435039582544037090979303869332122773136528036451827530943283708882923291963989009230447557629616649726708859533731861661805522423917436467500385640465171374670790392343993302198576619749416766058605617536665949619102653373353394164648753914160075578560997987706936475553294888393999312378819620950462017755534331835792012577796749767507406743657833690188096486000584957255098534487470409296707313966565086528777267943721474688668094535337911174892322597533502249386533801765479195352710521513648844169369637064093387296043822105282459746912585274042094397404308625402121425753225628503793733097214868283681891508645576477426906845448989353242363453165733617908852565325895286817949476718763764775481736883003587661870797401275847603446654048635163360899866613305295998255010126574258673603636846945781917125387546907748075581043813534034620707439166325515070767892533294381328271986788596113929258351229430380995829408587866106526912825227694451634428290427483157464593012508846783423767875703993907398243902539324966803848127954709479815928353496996354827013512328995329017522268389723728916944551015987870723158963376824908442007846269656928581663515462691750086275856583968636217036520933697625971204670938707652526874186929386432838255347662241193714359102439412168822801328608225484562531245726283462919298224629535386752212101824311639748802483743153525194290509491462306739262777972207965818130808053404483712107279274098488052623598143090072598393173956367240169735076656415755353006495759711410265863876787627628667953526536856675876816031394131984062107824784308002762431608976822461157065663495274664540511838892165035210872753114195313179961249800040101465406914849610596359161553597093879053408852735125548834061139193878386975861326299186773332831699598469605079106772961274821096275859708720665797766359873234293614329146674174936804807775026948774843389562858685541051069315078179812860114945164053442662038889776702447889344589407728643609995095845254764203783665809950530177911940671405034795509900569216327921846431513650715253179034394625032219761209308638892827293566518062868241191838086975631158526360408185464702951120630968645344121083123377089706988469427286230079903469226290846605583091038384219372213440062619844704101994789972324480029155533094854871460668142964346016645610715889862512202048786711076589644847152314375039833183712720724479101406587224979889224910777369470520908154993985481408902303483950575554656793555908614096581250666586287706273730439785442689081672233487788263036844433000850454280548356026419551849189821391803766608773134850763482238804654959314828143719188167324539022075321858542887479068844303008545600382501144910886664920781893834904375707030486885472499466045662265534911115665544622202047622195697832865137681852635331611695073777766020737100379135442857797950873824863730198810528278809346698703736510987107740637613400292774135441570140212203715027608575755379674682123047116673393280666055973378030726673256214885343225642266019336849689544532621858629798647030670373226039770814196138783678117945188605324810663800633572593088591805276056795390277652141473067570146528723952916109732387353905923444737030878862465450457826317729006455946524110824999006139796672963473207504434362363906051262115381086159394865793239580560212463572497616887084069050241320289324218587754451490038810546573235375222137577601078225417778360023605189770142925591088271203547973973526186504172119088505070796571883192093669963049487639695781599753761066141002781005602741608936021709515989283219581796997274043372609279629088849036890608215075907052348373982855942098237348644830874594659169358657472400570384807670877195837284160222878112412090715447731669973402394471923236369558142177738316952066208333941256836798583719721254252522577458685824986416773862006044020046915560749278148918590321576660166439873306825757521811370085941465394553657048150097219604562183490776059571066319271035084388509857853679140902604088711055082435779014745982832560210693613625364550858300496398251980143186193929084386784971844996504367928621905758950921661833959921112835852569128225131784554584056222948098652126010071222273529020853514475903552363257809457417333022960270946106826638062383411192263287484763423748724996185496420139353211954330604817041087447408132354892247770760266466096752321531685559161474677055936581459077968872144850528988911224105813741978961049705628415767066892717532071237798779287455498584928466564673389130366768269253002534164103417311534813284452267434440207734794900715461554560266155771360766710062475712015601009630422407721429150341725847585219269040315304076920995197044796509194800049496843663250198722096925099004640060115958253743765184399836715321234617643468002087514733736470707318692800153924975033475771260523040957479682510091562206727615504497760829415685563310321046093472441478260071486930982340263516856833964343263838651707646968281967624433666617147090504476969350707211840142903928997935055084626271064957964963846370407778682166182469508860613475275786643756493400632156075258738863720851639504483148030499719610806157458035407157940555626716554748314129658508969818417728631707751198977303968210981868609051059911296792447265530534362380338588647080867337776784266678221627608169695013306800113377010855849488105003016307722707700697271301612483159800353179487608083645547653096535694865633560247225476089912713277414077274729794016528826368158254866440456507633504651079279532738330101246117911114140618523753238222482003976598483601778301253239034702882752363330021710235705004965107242704806682979469652982880957909196741032973472782659628507875684850999634557640107248196361485693543486995682830020082975390508782904523549772101022533943542457105771625379181675898451470208927157092325400493165069528182957138244451882576038295845795313470407685760153240765193071848150793090501884446571313547353368856051893156824694563141168307433285896544835190975651400209219503612596049696720629483936481796376547261161960376201306638816868278945589904664784698101672899133689304752338556623134832117468076569996814799319491117370414001433950739698929842157136178101652052979440840564259665464852270414743700842995840046193027140943387328771500053316365624159843668596825826139594250613461050341745080320538486336833840154344956929788399402820928988762984617177189085775485353444150523807432244079106903511282899389402739249723468503549832459006064343271518479962748944065614180708877657417089061944171510205408181852165897071880580251836460771367878788057104234782705364921314867695746642996588628842064263927574453977301868293744490516782358476335911687391534407702913508105970241272048976212755189479929082090174481014138715699772843363881478868760775512200305552381160188062835381402497468879159137050810527944741426429689823519987775069475006248162921976011978480767287991705774735028204009722569234986626073193720408376820211021883831465069444600529169153793412155922747689861497417216559413463540315129404469301563077388470890544179288042391654682412578856465398808187669752576764874303839557464791806610540017716661191494318016670124905674091255550916492270084743103763410392214743917332586544917827379890885089731260689144031519613322164058564454014476583663561191917270123586280168355427999230975639492991715554927580921006223905380563243674968927211360100861523263155771705032834883430776901986356324589261795311302272163649060910392315963168703482821983187297537558528663298796948648684975026068687803668012667218043011838041603334076034451114142624092721613245019621815410305957924998236783167496501152619025389156661008080907289668394827754361849006201173781239336251440364091416941523827644276395932031177970767660755623396391548316853437083814595148626574210579635076255944874584225375688514589244141055978762368465093896251652398799842559015353399829108069330072214451835552146541742665369688705080249856651495717991541075493012508590391204634369282249380062117696094707582800186548922138190472947786339134204136962565086197628498622358800505773131266352842295937364642432791291858961878158162941094193757613092498616369047424766115964901608401101797918127425678172113134546493966454905320253852355183579121177779091243573110688221038577073869921803269309847945623269664477668154699935575780641592696893692249537648373980477507144673674651611980612360285025543282743943414194310796364470999100455369692770877782722264037521671727129923415307523199331699399019701325997262862922518471361399889680627767136196268323310208812181216540606439080497367708150856044638774194390082925402012496825085407276538591319691117635142167629824957565325767666667865272530223018835756228172179353089543001433239158123852631460479864033245172526009720954978539817191221711043958178908357140803468748487022303086033675316532452361763124786931307791797551596142321321713945976124131343457377437940654717177699423932707581661265682548666370535254038933931595639066992320012868571255290492658267606351661558078932290436814452473812848154216689289036122990860352795015214443241315622921979508327454711406222566543240432775303750006049250398297895752031205939177493919492397556619264950636140495555379406704777203542837091559095900114726647676883281032680365626700036897474667608061191475723111166789953784971002264367413436697928279052640491648092712104140588073387913400950386383532152589156564703701303891707210737620715106044364715558563428747270919930777320242377514582897288387661288450571181825635467523886528124604994391068971477979670183200578785110099626348749524793915138646950900098478813922516257875391990220009118746905402318172533166261285240946997816876025635414977266934844134723875842972213584623284109747226113034806484456768288704414569501406068722139597795355384927291394480879354427286888022090299406074040611485626069358317133410108451675821756615610484362361693163722796610453876848576080181745844196651052883229435721498913858784662683164004874594717900374595193652328460476392395051932691136350880687087258962316594983018559985689528877381758911328878025780453026650104630026118068803328295422157801075342408741884862308737551375292701310427118627235782592207759893022764595044649212755122417943367899262386593999671397319083094214114428314445493550635156013556751922263468913397316130278758039173208802173363028605787411398140740090169676020443487894838893936447555229814966509334372696414353730157598541523014913848679341513782321979196261941858952483395651164220580775757907295563702281852857842768031949525242787949941140868737217454817564511427491756149271592917128844554325613731107619387977447189250585302831680727118402338804056728875255694552431289374601793031290660688146972431382699466036259069324988042378098998329281781076257297125820738226811868020276380452379430447469410025769387953974180982529046425083510761195832479348405032729371007335154939508477807136676820246279941053951532931331340124683602980339036464038754592573854769235412881783851721134597111847361565269445640785790057252011152835011625643213670107626082401618185041515660374891885523997164884772328331216456525062772689698483793125492570158882203946583003144681340630133384944935125480893453302172779682813455991170468218424851789598379163678776023223701673848506905615403787464540895417471577557972285068905484290241688376771708893045716431216615831217891980631844543873306083300896931058914829222401704940441983585060753934372132583270788810413165971288112198684079273460490442863010862337591915356811824853061416290106414523124658036174239243625190517224907179822468725032267205149971624138333113450882808457730673625775165080930099313687749104731896457948959693973920876541999840737011078625264640494686278289154205311394387581150005834763272545660400894411526762185645020893443941040540896113535962651101223945233592572101306836411982054212041077723492462552332542242967591063903127874408548448419299255183628322913026640807606021264720242879937412382076820525154089671281381362320856806141529455236184897773836430158759304102281331218510343474304200123451284281767377617256704862323583963398519994835128574899423955163804992882117996110780018373238107276667441729026188000056446784803636718463942257504046024924843988552919131416641564203385886248106098729841580596547097296531997381310022874401687835153932285051866474170103797059255174992267879645148884108693603418909987976980581526420231187601929318349349168583188879947439284146060003246021544970142198293269226917968435270458756468580347212104782232623420205408902195845649677913689404661229760442031454710290804975796851241037700970597343234001756827045978534393225221806003433653290395343322169558470641444194724671707177639449269123683821237952738853937374920124862280849047231454180244720022019592910832218370313908733257320240721401825647219190372760471654073966546362535846041192970001432237847328930484215488580760869009885125269610512539177274393457786643108098219688538388772272779162582332815157398213683008217800411504192818366749673722305469167286844208821122091469758154502740640450503289767822135536085874466224264155332652198191775042458959433299183581638510436741130195185932942863177702994024921711718294745210107875845524250733614130687137546337999643273292825668550335844523852949810920314802090408829857645582600540734328856976320031221832595001884292755086209270798459841282169239122715206917822859672605211125453856984636064907519804242064075157867432295522717389011480964257945599564125038356296426246990891646552163079594666918657961853887698905501477411579740542388659066425277061450210669799834474260827073811207265659717856634289212086509723489802217760367866362329837520285216609903491387865240307674392058696233927923939083431885726867238990259554911685686780132299464067195551149696493145832058047438177868670182845639263808278702000973218880432845374415439872491919223727966326673877985497449415322352552532109064422326241735787142661718655581647403063141336319155825358014831365607891824981013346495898509591057729584298432339333335761487886763990970280457468064087099051441585797870796654627659375525090516073048431424151928296335655195157420380586163387472838462138236136471710634043916658333311075785502560441076271701374870217833959008277528394714746021491324212750088837188864767397658823216508398719812906248190614313594422596422125338849514400363026975853189295717548629440797157341189554641669436909453570676723093256604893453808263122021136862290362853629244724582769531437495612638955415147960775772460493815455255048681821870622477728449944901606819088723614236449681519570125830278388778832241954292790484209310299692189399342200202040328285408193659190681765930075679425159800740221244186601066082077062237279280211305017782848987929268552386364090451654239265189418036166062674483693079591799578906790309235339356507282546136538432849539968952693595107048479229034375484304592396005020450585303323373540595757334751688562405062150617124200842265703472911158165640836849320893273368675617057209102933799652290390625631688171816187711922597276258730615623164862666289702264165104772326493524102385850549256930378611735932007188383496729017996109609957431592541140644646435032450478234953035886547594878570729525081377667020911885179399739028180144275199438937905216008360872027933432755331471661832585885396606373352285811192184279032684367190665517080802708694626563590138258079126486365446940883504677960394700085816252979604607263800894867947164394166900342892792554407227621874547906356632217762781719172336325821994708850479120195457838111440762273911497361393157217502863024640600866214901836408943236419359129949344567952825689193777385501407222161105518010642251762793229935563098087354664979223644004825046017194877055953213165060265112802981892035537242336496436692153329649697182615881055665629450273884982345117077517332812074862422061240236284810565898011241895419883166092874102285029038000613343280862564497804806534749698254376960822002025312818514994724667325516268392059427734746111327307048586893605343747934468126553080194362494181245885971020702177746530846623175946487114066642900651372044870079163519542572707395654058541589909571891657314619922330933512946534179216928513371872091703483932767487884726125261379853978518757923770800681517433148495972029887826790289798510674813088047156846516069674317658700894884255557008932982130184889752372860581799446868012101862727723106706688474451859680549645186032011985456876816016318603755753946738928755974683659349128445704034985460547434279749006460062494008850714670495776333962554210946542475313954584459864016691113578575470868764571016025958242679378128028783569046212320957088998377097289451923282008164581983355534731697130727062352005532930833678679787648948692346623676819047514762479099842700125520413416044558536826297459951134157908741627578719362201091791753163926062522638033975170073024394868800179540810443844582957033795922791122373290338759619939814369529574886817608712185917993628308734709567248396027013897870691460195720213777982183604699385906275811066870263333305627721222796856407723568452211539232967154419268552136876195884073575753191432387874676644479707835340761724662506810445450658043841341986512793125126387645087575514658830899289861919737601739939138956716678404306271959970611038836207618454813943000368566157964541164175495447769740189400602704883583334704792043027168297078944997897215851209630775432940043169787971157651368992197460873680947837344214965885150232072065579888832332156071638262084457297541485105415555367601770446502918637481271564940872395704296814797971913304268081103809749314884683351443248079693794740859942188355924176615012250923968227414436625515015525542707183883915606109894012866930801706680695535116930451426081616754870534601343125026093723107686018820384817681536241973739858513979026582421458000417744188225543430363313668735101379615650613374489408877104420130761494638323881572413291811535541420707765316639614164328860454799337786974327764457966705824620057163994409776986671748161874535105793201689278936865531881804075512428689075933298155069712451275576014729149873103620579859913325858621087196093095280428172876696796823008290669811618764469966137389171776470365928743023263582254861745631017011271468824196267822684885776554036555372647558907231934477622286431063221230743806384112753807891174292913579449958745625904153263738722050307319613096896435926358752741722299707855336653089071240000179893389647108547305907764724286936587708151722148709351128956608549829114161287472309878356206794662418854281559826202232932650754356079238898305660451643740006120618318688200772336529881511919646843578725997342064405482821057827178713340647445218784729197259844436205076830681374314148014483285045002639855342354212614025207045827345764336788452690315755382140939479227190060394044799027256684015399574528711259594470773867353788512601518772735867970539358337045459455823201672545802181497631652133186818287220320088798004058628570765531003780132147355795961927266729904094928086402192051488479883238482407996119034453601030886151531066521021002874834351482030776745136794831936002995412617452544753058748163267123722969787394997924015775057007286396410899998947150088165808358299209331790858235017740294918785899258744802226803686692321134016385679703423027585233536888087176963474133795205925394877621007797160219126983026682954906511790457931398767508928827380612029178979061960088267311541406224490566398869375421812591914026900925091444644446435729930510719628938180702335254115685622167725084355789193903219778100321627123896456740963209652646494026634609586778039444075582519320442870463102323777701027415912337275892977680224071211037960680584749029877335835301884163084152691096470321752375971067606878099199081160128965925908794226600156032262296077411144520489541327031424043053616072668221101101051892104836886692714519811010397505849665814972045573243794077896766256862929456526683652732604837285930010608934869242799156402776393390122164997355336422176721716774268027802019719297157672494029282604214691033910393096821052425211465250557029044622017827166170484496512553454520811976546068495497321393931908855312826136459204800492948358591691060197487709759850027511459097448077543360825957895769361511639387286343540543881572446281865460385137834699205794058761016942415028092969325476233029763252042811346328902797781565910237267771408059100132972156600751386606238253194342590212525409213756752612544249245932727216572225231651911444720483881237821395194069424320749944291882320299050953856733722693086277838971473732014447056263402573682429965310513666356876839122124695207681763700628391149787652502000156524617011299473139285230512272162186659329704341737804253518266953919269107642092347114152484956695257449263767941777715245104496739725799576167226645826817989110258684521219337222788982771095154071423273910083305005725057052227708374559651328632829056056712427366930989600876132800616532523451382567130997223801042742717807835075048398431670315559317815241091558990370547946583471206061949827498176439422223548459385711443840606624333495837315420820731769895352474381066154243099845614156446146756313824710905077189598918099544028894820713541596832584919724432999066759881036820460451615914365776558528795094356697735098930500383415594849289147339733769390002487247836995164761153047709160599892837615801537109148187537527929599752775370512310655847738314758560561959526746268431429303160756442386484474708953239230198359169241745670036334799006483991712680860883758030650953233732228692313651481212584124959144383364372659038774255443662772280628850306964341048396906194547902106886997173249506047416261359027361012496138424219008145961039268049246809149598539852500570294387805258212850703186148979961570657573776705850948612898856694773344651548891085439517930857190557793828418006199752499459097344997196501532477556488612055123738489596027952845163229879730507327218711354839896539028356226429218393670251660112564924816778459908078186954751545438063402473031100382717735223182447650370043994395005180766432532425077511389273352516685833167247645168024560294312990406531603577396601671161810168951262370179550047267705737942256382017007584135946155635242688759427446321014341134725227420743905704445017518367719485914621591210604061566452684469093321338633897778206773389828185978983622122044316109638098049157410120872935785644125565139295353090802218249494188341957826593411089413428016612193245253291636381711720986092759849182613806911572343687888261136639420111529569092528949251381807490043212754573510147653265092268502881208151336836430032882168460027130679182115744504793960856459658200777368317674113031714504664420868537511377515483370156147366233645627009944827230051755562623860632744045818557487440482237697416385215746512533105020601986143092481355253954298036824733092330721180942698333362319423055004852000705772735969150291699168412518847727307814458999001837432408502022796920219445085406394322352640563602616716967104580828340283611350249033334612923020564972420696257728656262710647905847585773888649864197821142331509922294986899828970297162028298364546630329758912247190431945712184708579582444769865119814406704409878722398682439847672688957355561183155386566745579171504795477837075349594553151224721407639609379617322978294797366479391421472282589913465130968158214745607581884247831555844805425919548263319940682252313195037526639730773267715014429731569178334117887532736673655168445762105325260644303497628512315540113087451560227250147306232637986689041676248256852757544015262714532016100884132125092955208142410904109835061868852415717187461905398506210468691931032327633494767278482581975306643173160972364993574565852860954812036264393563253735465029598097823256474079021271386765202700325053465035167359702677336304168369579256801476169109610079147975055868946954937545218285923393956748488833270168011163397221420364023377548770321889414602288960957370400628797076200094512687163754328843334018547599974741348039156127728908252730894199622490305746389810541279823524164141566649038740510805028522575898264335269764300051292767835214687374678818862780838584425567745584835748775089023778468761822857844597780089812673920169567704739199610731997416339405848460491148191906462746889614186863288636419691432754959143859263994241883485340525258291568447271769878828279201390779907002222487774477165734541760681952582652877209372072832090389297518399256971513345595565954780966789326914576158522646823819601664268504352124116784697887869856484476093219540457811401359024417184632483971349199093484833523706943213454937449083371688916743883348225365304604360054469372309877593195947712622269511236311923401132857370905785334346166491028719859084967380870379145913023435272755706497371607509112355711586224783958846344492852844506736384567944280313065774577171929070790365711100407109061004103847307874562507820897675535457483599850903429911531461417742362554997861998266868266114535297496660566814273690170665520306126769550326134506933191499285765851470417674552365658348072414681400438726611312199255444949394781273008071133944503620555103770308564816408850319493110261590514395881096222844483888944544162423152455996007819776451143122805508648058572064099554759880801124230914486976862403023799805599055605821662534170391458395342053775453204150913885408408516498888710568232102949595650624910251310221378862151398503849651339220360098447781765534504284172996758280823430909107883070360036251833801452137940477561849152760222243758798382875734252193992228034727959795492958105530673320107501269219370166874375087328002452379044642837233851669314363989681479228024221591315160815010559733473801227966285437170374482495212057983112015285662090587309819236373911477964146124883602007534604366064420649102507122314742207687252239310539363474947920182058229161729293573902444652412027123672395156841025015664532237493575940515012550201760079608985174218381610472068459218904936571880788961217237461262291282169701913524585353116574667846231819338027740186673961144182995151544983868797956826538240476904049141542621682641510182584715982332602550838612935820214192138284953368701015601320521542510347266235537465498751122649729176226358093645750498169857541220474191097346350331327255965270436652469333980195098522072244094287310900289340979845289825047030847133857607606797471560133558478759070797213785913347397656268617345841737380400071578276491254346704085925861993360581907542890000120473661968394724447587181255602528918406769424335474890186338453838299065004352834941230972470933977267530732778267291128502638179542763236250221491763347007998992323755201295445519962089603053280761714691232676532082359824991435059934159980703785706649330160620863302078381531089175287620378093862381846578711039405996947050351252922164722158693480252592329047065971736631071740880214191849356418197615447092373346739644670828841311109259791496409946576213545198002320444876467661513081024480880540690286710655257075138946932437390714116604667540294329369867334529928017046233517465349994634820329637046013895157721628501891645475983680016040497340249969003996493824677266781057213541653555653044509123878242347165182338916102734290152279179454534261207506769981351601652720660251434557638752925735192367813459018006121341875874336916716673293454033649371847249761668104344535839862249056490841905720553581837088578917831254860995082995705896869254344545793110866850010428818435054959030175695426988889736770440728332046961243952875565192674610601289426846223987111803872599032231728309964542382421734299347943999278169521301174101705171411590266202530517647249752884012463534333001368377130609800449542302258297375704322273237606928613795429330386634297238965997340694303561655072699812841203409668288427973636367176742373369641210026777262963805293330523878309037569315223308034121798375312315557078850193353993887599337043891177114021217944898851628154450853509548716786104380434034565391331930508081313262539004178937590118298962688226463221416432935691328158419383668072548067367678314739407695186607559614571433756916458701074220512659417402798420286675532314680942416562948137721045879867719621966425409117213419539369106720651426790632279187812655364804518500851917861896399053075284198047912409861007642184305547597608546091950845071704508360380162499537763578417887266955721939462610434908420479326454158238537470665374630929981746900033329569828113453579318029251319564192911980955042282667367131151870728480480061260829861406539614740364209462483549930949160064885879348616858673114817109193410022270013048384645055722641035812167245266454734210153315907385282861859734377380660205113735752204056839554103469138071087048613400169713486734821186136007416590575567279894010452887925549817911231625660578034922147329321000653203491263579391786273192190339044934560642157290770562990424527008733133216192163928410758565874526645052671257486170311728233434803981443690598101274355392207165462310779166859640408570619107783528483987873107941697906307387837521098746730731035173932111673574103664251377018794748774939084387095251599592138496051376962598415922577109624346328094135073429679527184450222054614836416887832263191963610827629403095165732758915066921159096264237903313969546132288390572833440648944180281967386232691948569414920896869690534423511466023154489796919189432410608908955221688631182115040939185224556132359630794368453124161037008649769642855968158463918933584186363459979004348505754332986572922886939926553485405946948387361383354967156868655016985572256971392099179561876303791958130942941591447600428660997063031824710872528379227551235612344717688256866928512274599347664697645272052934857022418834735761336603156331750526628163190547485112357162671217110251008645028308364223493286748219065474568331418890553503594633299618827805192001166251853918380166191429483427218503714352457702779245049493747285719636820474537816927341228623231636781354922693845200808237493137720609822079911004276755999053698964710057604329286591525826163172468009914970836587290427230350455208316202003772674382504047851205139529990471588881823891993324987217552507988119514232704703465769572771783157863569466068139652842834299436939184264920831979404149510825527894083719662008886581546682790761839665278882404983749034705665993646358481527559003610238135286939688312424777658509712445654546136383912451962314479610261350953746901922529613469829236373602200975377115682157966725416911015284893199250691262166732997197446371049475614299305744335575621039483506433766541827865310709181483300902545705084277306450139955395838928702988688406857486611090260550762828214904231172505142331377065707982463158132909772292340291062479294276501686502289210614788921831018556436127181208151737774368122912832708265010826062896784476676333237245708642853414244115920018199951686372726746615477742178388518012880977166718187384708373101554474982300854142056807624882013359975226351237784393214399976994445082558130498501618019002720681108720334662079712034909204013953330131481613969494115624797523716071116708502325189300990778329944671043687861885482744121070926774375621363799415664299344800101703128818937650336774958297754566987237389816049769441561648524706675866403890831502715433414286133173059816580564672148266529009603556385425467849449981528881299970547170298018355609634639856998413759091361444430448657031474535366451682178789233858323531930728462363357949492213516976897553211532927482890349798690899279555417942333966475949198637620571878721353192258952661146063117468908885373620058722425397796752697173013229909198544059565556885744087293008147328077595005184122027705438472871276607208122651967205231664572296741767333829635683436727095249900421504612027382975259062974395380271166824852528597115048684794748942894349155316700051781092107255471220280775942533021288785552024966974510507262868389576384153503290485209397858407518851699870123999367207087775274733996842701711219426580039108604086742219780569680274077847656224040148855297209712365725858182942688004113817420327101971335731782538024057727692187457561314440252484942941378575181176701841347127368304613832777440584942221042173096592749732692653156341473672867751753008567959425091624509576565570518406298322625533053687559653191462098625164410179207049197109280455120429537721356571843850494107146023819926399510239644808415912989785211622101490014293806581678520488889363928114022211442077685216553422769277699417558711399469641770915789905107050427300188947727449921517034799553585860128515136929386205307647980035473531659035409595150190544209384421818275299146560753374692766931256089293992529241198214556059132455975308926030477392880292231180194170559152868952209987517828013423021627176817751195834854636257820387366406236390427605631786666382499227203787229659898007945099850371414154964575006902475525695742623918831646058186969864233030346608449611181146146055899217855412842191641442078760248815029799720944251590128972917267311778528899196813020941583390398966755633188867615428253391846962590328257122428467268910916840535339230562073562255604503774917303214498560192117175324424966994928930867313830212753768842409608405690051323428126791980559532259229318671448880973533684642562874320173555166627548162049094244459989267729333336918896426703994439667214763288356775689745945722944845781343945233835314419931590206487143951473921863913665394246504574362953546691323428386290733590638772067254138500180986922244496906678471372108869415252506682584905812095023136109221194427630203466339226539441941172243670770572289539324089036805820369017292092042568057906323708886697097257159876989624138199397076501579286500588165466579393269792621492629932912848875844384563777721959178609533933771530130685693050719335024376597587785593675019216716770788607294668227270172828983910102044622901940137022381718950418561943244295833859315049562883854551380251964696876007312826704810179145570056120204110526702534014991455500752566702333186347664849201108721817522306116569034721637919452609953389431603800738142320796825230829451793779605997584881848277178425906425451215280789285927521164353092399939300853553992635540075928793298757872629325010438191842462047642565014782105614914085950383302247317000458191856112669240578330709414073871242747124226876229860585514327124539282374076304460697851742138481964420530821445417306952885972799844153619198270319226761043808058917895623193537379721008752361310480710232873335848878839238438755788065223455323250764611509749863661052690485111010362397859286062034005948547007974461438331354369127276848649382193260513878262057965595457783255692934825239852541828370342749033597461316447696866483637732449712317403349393429766178755192706734634416512400188608694178925565271402416414995612291893887570298840560260911515418844171121372886203861184135271733080331158888440849836314995247530253321768078492661669589959510869262505482112513549481039302189823597401984534322614612801107283758080181982817349466546041890739999565217344151681175655765554619162713393113415530919679106235907642977566179868186047400235938540499668940767599503781041197951321473123754242024388619344691144192419414172472415834644854725269776818801894875692088694467690329209456572505190660496697837873910416839782382411610745466637760280594400349378804381297143333465673415626683032559074173210175817456018201788226003619015752528858313777808819294923509057832475178752540021880578595293222302533917744898768649296741919936833437099515501997350430354269860143869543328200861754811278288686620769428309412717175994187317837631390601519090159446680283208567582202248364012300363022888987506997750775250782398267101405757204847291205247173734257765853057506157543311124946125581074724896922419266948257208293287099385061446296830477529455484269706018007623438126608058660245195961766350554156823040436172234173455964058894531626359740839503791911684485530314890457720245240055832821105156409031472182026169743417123160511575318313707126032171933217509071475628230499591911741300739216442745070761928524081294595741004176605443437733174300635326701412484092340685246988171136809709706403381462260284417141641889915554183687075698025872052334472979509932864617718336655051566600820204306625145402172547354842163386276162577236772083639018480694781998498684444204362440356950757105180154120356792300559036470800690023522394205205848943351009567301124062848869973635480565217243264200365985175356437138416679142506276997654977520246073897431639880882044236063676215989052596042431611487547541909320024781544992256361889518142875488420497722286563948556091401896285507655007665263249238399448120974460678724056316721704215954510334064603112318176943309423740759521394435349404317292836335407591224445396570426356979932074115395791422056922607389407214404965551622338360709940607486771383355359703924646629751643975388989637001394176331800883264890670862493069819815423388658164325696685263267906760619697662063359239626976689867299370510425179086008094798690069809454887674135640358242860196865150109593927062323928825407564970904744882935142506770280125237809763817280173412959906256614891830880211846812243355935622898165667562322849935275805957619669477472140482236153259426846323621768513646947747313238929511703855454810193059330200142367080762670870253127065466930007347772448365565165535272495939096615654636027555458139298076922668644928042287518176790195852016704702342015698943579383439659515228418726176095157167283779776442544755525286253125265698873246368331471626128375121081600209237568670782255111004254033551844363550341695482065006862210028151440922903823824323957567068733115911730406695592942193356566773288258636118029755846509732521007057150057610339484306553040272299315859342061189437101184917175761433511726800892509962996994099765460781968195311251820673450469406138833261600289904537646518614661070680406833730469746470870407983309866475303845084134967333991853367335468130898718751575500284390160294357332530159783457495285994449880439816650554452161775890938986989782333856083827975144502814012918837911633248337623707496230612005362018625336027183841508070512162885737264286014225594932468873125993781137686733132473412461605834567353733870472181445346956824649323337294260815085656363110118361743959355433075649986332459453520356034224283647378169319729183012839556894857916541818504257067931986592449250183333618759170947858736097785349551901395642344370881693859595061156688798878136269623553486781292243955562383212622197960936618543875769099842954468215376257912532402259771920031269109995348101974958795493300983144035773557811664115487666234089321321067489461509474744505961065083496163262463199430722783676429052397344728754792489445719939161000789319849298348455919077069964544784566546141526595038701223668817158131133055356441469517758317252670217241537932426322785710980672899077772232374174480053023455971177012040410061872972431107478561356797587312310894764378194819388029020299864058284878515379725893340617392263096348075810610977073649490559722643695461995180430066527620798631942054540412907637202008525745967848422340674341952398592433315516941706795708141010950464463509481651854931730985001207111133915744157206077982768999041807734637457224783352617133871402541171510364445831008894093066835587939689993026060186710762385523483789575679665135274200203866637988286755657857763460681045161714175006701497317094519563043322646502883816822426987453983839483521725354225979371603709875882196328352407512520095604337730821065408354572643259030716287921215336460064140739392687128304027042110784802143801848480757791669577335822878226554960970648486603813353066606301620768549780159745075867695493324760005113487251355387230245415402374741760004976227332742613248945269120199560282726931934473089765113404345170095156227832887437608168110082234039552772735220789416151518072279674230166998389858254581525907309001045042294573542628622944598619745897272565943212105110848263797479725008091488722719588168830591349824053894194473032550155063045891913890605474072729087755871451264403124654054511033535474620690080683203279214368248662006998930447228596714251254246899870531496907089062254311132549919065539927367059262711850957654236075047474242584887840473058597901914927684082185956882878552551380314551975101627311357852092899992335424262151069086530613723575148483022417019574151155151872033866666894454167373891603329356767947162863039785572349290867515711892936704510657520057958157679273306900310899596305962243413961305016040139827541660855202437925098165161748143661556456842470980195598062494937957115931670195679142157810470212544654196918661553262958518227338066211951014840584045346234237605319712666888339536829131137209283922183508932130239681098302184697457317930583400331911667903955076804108780779198285076845918378529135263528165438874474170436426824620221268177852848087884504681077325457984007977349918908204107039458298412407412282965593087699122357486921163020705402369135826142756350622747305662770365397206785284110470436896369199192327460097609086577678181267306587981182320949341681450901803045723903926469481197322160618592845864157069605497438856522434489743630571656759266673521271084663449364009683191808901100077434405872323287086175158486842965501009316655905332402592257418795373140210619024103562557962420850476484135420890580594931653940157811536169124773438444635679024616297975460624497286730301609380457209322681677636437892852034650514284344397340397838945433288359128828821702876123775633664663980386991632888974057609944872109383623926600080438387752289267607050796892964608999775388481162609307296717107279604025473656514059730941220981428459943047299981852966074831840658197116847368743205263109138083187553695246656385608508591073447485005775219655168582126286224834721383061202186434346979551798066367831840576172888115884582387257317598742264634018339774644287228346300824239830766259389166736192004962339513989874965652576484041974308037350874565120958446716336127387294302891885636731537909048215370883130510825027491416415928502720960218771977376280078072585502926594751217372046195895236823471623106639750612343270464693702216882557170848016479031052211303230796200941355604711714119029967297527431485869950358727406981392883966640714046018534965409380483474142796993496066411347345173284220639758254843290351148639122247727200799635329104638784893870571495217809486978550313558000254078932694433655679224466590898945276486647414260755333817447112892010176713821463894111205330186781014335944352154279322976426690514691636055201808708517086283851543415056584333604480392725464145256998262042275677318184764166260889194829089893401258742206757277897171802890517816047588015301673764888807932400333804423694984587219087592776272504905299196804876414440415730928063082842872347790909085225027870198860543254467133142176032297080734089213734402126004611582122819558124607976946905784502723661237206246269529330760896000198767983952526714007544660490283920392336190106008350484517992395880239579999060175908337629398689638612734468335358395587883976170687748279331721300599090444367542051116670353882815208509975901915945955398011479338484329960589444760189403157259616679440977256708463505480379697109665586997671760055640106688452174490630132163339616758318784214983160619163301493108841188673138921882786093091637223241185831830635619947906859525939606333794830741099481939966516954598690039343029856132375094868155924736149570708174945814738170868813517565855195448736554498201300439330608442730476504564740862980990037364037822064249560239554404023015694459889253980357172254859380537190299628337375650836139723668648439435990588749406366911543749598958186554274481543747212566928782277116785739750088185964598870179385683373747725915003865063527926576239983995764913199272626569690845495631408358003558751711015104940023069549274632266650553937295074719014918059246095673224854991006940181187531380400595726109969268520954289152991020566202330962992624799117237123181360946294438950556636534788866118751886843706324919498982832101048696763295988900565217467280606798266349091854084688439505257603974448598253489516022677905914650367762286467822344283410542931373984158045266521774472797268846931810119718417873317523793253710445050018396302230482199574040180682655121675648973370271065149809402513955976859872411259064465526463260178268219760842012465072272465916526068955865768798008376499121046633012337162971716752591619767220118776668668765598743488391740790394833072370717515135229185685561606050164677295459641638010014290321059454307935118162730425056926728111307747983268454766897456200734138604585530684914235515180234210738476828774448412585199210158449916358002387301201058474486246459436731682300919252797169489917769402845399973686247183724809091879702716908807996310546858071022659628971619232576835116538472393523484338465980327796760451053383928681323086053194047845192929004342221252922829996663365867426545421173781890588616824369085239347412409886042521304289851317942729344819342462877073852778250128742424588044343998098980594691663614550707262172016601266261886343896641068575814410552092876670407300179996873039940104760078022324806780209454308090843886291495640528608910879043014373184383069223678150856470057405765906807272088211116905299718324535704496321184854520097486507089089372134224356639261563301210604917960408806427973558221397931554459887312276766135054254590925301394717838630015524200609736067622016501397829900438701018926051304667169404394700750205770655993142277528525373249843008567520422163209178523580419056535359340615415811661644611322309520642756098346272421452469567543318920660916353878249641174333013237583691653338014914096743508392014082001487623316812830098693609294294217381908236366911224254644191379863967700958706490545737759632613500068187858224132146656433763622502766655610075833997269271437114777341760664983651803554344245046851276471146021219432075462877897251609885632323868932055751376373873120430511024190501880175709755640736799823437821245819395025087051469748409877414883532731471268528292425822148388325764053171755230540973153812786657895872081548425566985809433373148598821250281876758584871114764849743871806963129152801040610483445466764116343470905983759682612080240028760940739833409500562652193148971440822546185990675249999987500116170770375111517770257835518517635503647977399867100305685849486177244233410647316519916527333485480934164877104647876869890587072106392354623143959225887165777690036293749922461590953336679312411073195179528367020901381833130892578450696872775243351655482850105150990131161037827204048921914157496909109101862323403846218621029567858238829311579266173153492782156370639093494862993312886339199440390681606996873341692298551895279383082914036418081142997874824799137382703866852108980157686804591908417138896558849689148025273393559601607901654506836977796462955438284526998161142464423734920473908559358439039632989494937451373742317908385771544474460812114340637583688596464673967210078822099420441042887360316917498467149883685675996667242497619593443506728005818740019683926238870928192928951210600533761645703759775293462495353057856310992148268357940154133803715889468268910402551184754419801283599445327054016216565689152065602724549959440407956108053040345756743869547870094505894888865330021690608977552341082096859043511911786391975694906745808953604958340044347477216235978695722570491641302624473267944859497989535119179978123000543901520540208645752095674929594795106934066711951853065951034992778571001579195729773234460549209508085940962709819542644692854187441958531290431770131939594927251982397920779722480423879163134480371448297841611449197232296768399053674111266177029931431294194046924358590138606464967820089048277656900982725197864897860669094480877771643058756657779415277586371248799102602945148660927978961669813450823516131338037341134209423914397885009108500627821223710358311278385552705198336635678774461998402316495036529876941287880070571380959248025826765770760902858117437083146514274672807384397555233909811109257654848946555450916669402207581713456781806018437292225406182414255148780973846879775124824459400188857660500409221754315018385732038702805720576601234574076930982950462313655816539250166196898249383503626832998474531240658147670367294293542325908758706637584276710630760934688492745866101712628626006238917533995341160086591387776557443056126300916117297613040763305588523925445943364965815335267518169300083789379033833388961578086536243716792293377806364775425065922111118714139554478247072808852061555681788288424385213100265327632532538555603720479167690316852533254382454246485103786023233580606305777104467888501175796596569889754885858670014047189377346067676861736403531814294303400022189987071163921884194434612567990057238707834428770838242249794527762292294258673182245144147492997128950645829897495244138814871238141592926940846801094889459345159715814191225762336239680078527944927236714117952696997577103259751214292955497540068406748490202252155620898017635072263911047376422848650501888872847905431001112102577850686479821829165281082441626924789458481869296804734724952785716203394102456084483968731124131363740909135590662206793451709958828640867632218333168028865573001116499391753074309683406570310583540600385709679440240829302798345590158358501950960487151442883227190868604110815247263366541620031588609225063212029567485226453719435206131101686269469639715846807157483847746629119686911140353554389584199003977127279563003904071903545829564480160815656097869610993752451874183930832764046425808605159620431444255724534875372771278803874723919810019712883285224020729911841122092965197487893125971290525405361439915178241109142431444060231640565660143014844454471882485612252813412793974133619392695907371303607153086073974468732578074567641239509859108660903267517972246055951692610485347136496606366860614229876198468168107491388464116738131997547409235167682252537908943358316980844484131387344881530623781224056956989294603645341502960339287350656868688086983076069652788704996135270392397253381638283406793682681958161653769976183352775539703332338246591154759832179495921921694011183791112754205481137035767434617911557400762854322761868307927143094359324327413587288520030354993903534494411883397940899671325199844343627660480842057803677835361833791938462104361397679878114629066633809452466956433169924339583314540069479366133701747375288051781684134691733294795739822584300139062853902952896842849951803621872879983941084706721003937357012781348610054270623764032073442400038321723456967246455848139232989794677504199786465938362758551188454336149148738051443910335798903799598392619588148362209377578296218936842455420877259796330417506579278755292812836258793300324205783288872819168449380850677923729663151706748076903931731635203995837755571098522748453534947085390950760363105310241026616528940434928502495190093590266960296595662055687334743016219570524195959934835371725379775056242106348513677824856143891513021388899101209084405622234352859566315504819453970768920482405265774942591393823812316055223602002704767459470792606794323328182476553969230551451591845829150564374242130185638910263663195635488257910355825964760825079372778162452499772172565352810438746530266522302782606140775719352049473498008878701287222481953523680784761443129443576957986439793846343511613271959794796381428653472214452450548893926751515094163970936779711669347432318814446862617948126578126023979416433361934604947153418080975295625750518338893330737371725199279103192083306099750095052465983604901830423063412866247805061163201212577899088098812098685761069932556043230171381128879941012253166585771947324347714891164741089677284982013572229442660167145284386141271223330877848903559809159828626962508730852592756782895607278505440929720765064878594945647649321057966496834252337254024632772641374952097938506313498623504627365408326790783906778179700526982059064847280072868375884796972493244376006492254956146424354274162803921357967284923578236681605775162062536380040254312165230405787292238156258215018117044397420095347914509454723517300398064264344572299999886696855797418080617614706368019873504200437051360250193355216339080314710834516757729031492503196371033118642595457529922997306720832831791720693290931386876596087391561108562409719622339385518459549631436247270859522532154011463058532901278000122510819981391430368083771114931922519327146169302812847953864329117727913330458297287073680293331317831021805215388937859365176759770685400282492586289752154496141310894275941667143077025417770254918237041826606364359059288464212021360574820155703419237187063412244809265010135622215783644268260276577956628067905448029810696956540235859317918979448230077757176235681814212722996599495505300521529061499829907511793805779769082196819662217854264412400580470976118218452422683020080665925405140503192120453316213050022391764466868284692890073528716482349742048989685986762046479882553370725820435648310187810022981284281300994613189446938663205118360579652480964760119842643908198584698470014275804117729697752307368460575903221329668449317704600331422754870741413469520550089263491341632791892728754189819964402395327148955961622803806265444120334043208856844573281076994700066626921270472276959767624947909802620016640685580720540848123227948334302654477935972600821152837329748047347277337227359075124765111058023664005249750487392080935564620814956162552478154619766389998583518143747318487676074802092120023909286048139944475883759682679639154607372772500532590181749278386649480675500757782363445944886341922807953758783497010067187538161788885853774301847809631024661143569144370266472123114763220773098362211612601548677280004720902610981366847099802017324804673674894399796767037556243545753849053292922794272037895869241635571620272214682405786954392055166034045346437326409123816521821691854837677987233024658926733279037303506872423708357716772388350599834938104722886741478126157866822799360425755143121155103796001528554038878944461160470011105260566204208354431185821803215038343329349179290511099153123495800034124789976834379346794564073261699756469631359292970356215068066010765798931795348972302692370176659591377631293589371667310787784282947155897145319998491378938368661498191585602896524148551158135990150836883885996109646149570181835628276288333750418720861105582573205879247744662801511552659738880306499258860805167637744177674648256773064845162747081302484343494375578561045394926397107201296782027587881584696964756190616545305137514442215462463534866668276362021626595203315858637782531162993544646729360822242156698935863735107690954085822433064400540743286889557208902147420376057140856097637661548078229774852065541966695822058607403863689718445099936862018678555448784488937790197443718557325766208141900360832828045720922254708138341474333038537246496389575470312067546983422850297359255608571324815962671604173814713937684549234122229525858178320375647972042886670036176914163450129335133249000034907451496843625448648723374428894932886417210255862845078558692606559002041501931601895807079323487525249878428434657310592941751986279456773687814013883718349505626712288930603609312303090136874609283078048469126056589978743759784787379468768375375483498934918496502842660699703736885805288823070113600243059990774947576183469370346970147261206858089902317316683795454538895919996333468767330175232162472407956017795203460863901564593018271021227245006294281666802149867771976019265495981032699528544181689852049866531385416585183000076240576792319588432482687035210405338623547246013571614637685820539537165152717145345801180821965475966343547169042291617874949154566663450349576532490123337381095705968686586567511543902305467080791257016884918697639644621468496709436005483910116526358688400096971690878285179576417861748443890033217816097642092593326378163424213337970669049588281595517811340610830659824777530319487261571967559392185042848150077614285507815550127893313589630725716048079602062152619419493097267489046734139484560072002844091113197926379374367794610006993374221179347526614186172481948737976847088390698296958741665942236144355019522965395269394893167308973322377839647228189679253194938613546333713085083741103352249566285875965773600415983799548020265574231713789637190726427341513134432537745662278066660981291652967509805597966390971242231517741309286425781238344794947182813617844852738259655603865770243263907755597173463157551647828304831770904186974708681733164745570673555356822204880267792154752254295945329752441765327911465011627122304169433956216092796279437302422362488511817736335390322470755898809165525690989206473748230721173701210307512921487405035531229765099390123481805736996533654468472739892389580040956738729740892808228335289086182418110480294434163908110553658968573093917132865773826808631087116267729915128930599321671775770674388818551729587514344332450760430719521162295317918853382415878825719633176500775844474633986099862464093926191577436149002437860792991274360192844157165379876602079380881391630092669860243962445380968197268517156999196198071407835313408345422548133517870743353730633463256303457371344001220605603944757027578126446503315123919921851854418665113931080689691764935804867400121347694457118971712221085690988660713025742225890236691219610522964783302709635023101509595688911504068601573436257586781121439006321747997181911852954076092571217112175800946714570334979961833713699612546743584633061256601339015382395448904196244173453692236455913692591535843475172115626830182276080591770054255410730543901912715559101482396773154873728612694851375517314020404342033212799031065059661546723796611075184843853484099640205881468071957554844495529521378927961050333234825362010893064899897295300917683155134839578661676600224344003835223751127319850575899614819675888233217658915453811125408743503055295402741029373649436477907997390208358960621438173745011176035127604910909581180361047188028189699560819010790192650293630374192043472185086293788669102315089102878405770375559106948973716387651891931362952450433905563138576792523444874542076773373040754565006599508122875580773396848356800205736268431702779598384574259948530874978568583432602559761679844949406409723853217059094875070385355624963362118934955978929275278388738804949881314934681745445189629747423082907114271462800844607870025351312765223783029051917613714335631834653748701624272781515846643852192326318433443782660510397651675870131869657668154964105127138595168329383659954533872291727718706700977101751478588869053047393422636717855613650319334468789372073171327146609007016926078068374292842472106054439459586454789654312985770617636620229123277156967163307758684921046627663830168168125039294278057931715301876334086058083068222543006878950717190740139106284796317211356549084201445238854751819312627452658752986419419152246296612824511285686814664328289703634343306611447494386832050298626457779081228549438241694079000533679766796016396594696716053621555815258999358591793327282303087005043655026114021401420820521653956250063131821770287680753433288700363602240863139488082092123261231928398290811776910285861110048102763057690218263050008835064168314274026356264392826063295341078284998293520378667675452545018487981535430186612735142636803387799458714731575896406612608753168026409893248761806095890780208646940472810369788404392346531265198133035814926138864398560059972673926564332056885486157391773313852775879689614458081211047189772699730814191849638747334868602054460868814451539721851130581176911141058713881160726404599560053079291103487894704620477857063477510240034600297558876010309327531998129328019175430943767611666713734767367542153494803096857261036708034446356009155738701811440134260008386758513648358737542436849973192042611951366335651305217533594191795832207377957750592126971397649634623906385492614976986137641985719408233865192761361149017344617191178397847939634097317302569924154421100532910440194327092499131178513209245542311049385551557466694427159435302135394694922545299859240512951662822168826428874956395710311518693971115415744273702807877495182029713493706638463570654023032621349253747385641343006651123369730567955662986621875837402964251038523107731540748203571922379950332930160948263485561783248562075782723148025921888359358981466671064529659585635069474963188257501594185090407438498735718008326034073893579691386111426527800985613417056957687753454429498011174657151197224703431501905605701156153673315882392935341350434494012354584749166732001351901770753104470840170121237739308048022145931741818733811908158106607479768173566557675650194523753367721234351710806927096933083564037417409498220026367757386405482459554238374329105712549086957104107675827691817631192965824832838030229973753269209498849502097463880476100428866620996360263256682044625332904948048447524673411151982173287827780834099181261481301849946999862674920257457095834305411128876022036071224555049618780330515594858512018667761815252369025033798116434771670824732107168816155763787235327078056848386300838510071814541985640506613216719894608084114076174942520923621996113645658963196166047194184578453227303926229914404491614144794775744216593333679024031123399275276227419070089362338558580316257022784623735294013326858660940503943114989250092529534086118015735183442398733234016386429949234000805638119609118895944396266938767756958264640169639868767326912989040681718448301256936445163922854164932512230656655568907155764224859594729548174024395628164794406036604669561718290955854259981936686381974856884657798434440814825582222940817207534345345278918893174395104453862650990356154328866112313376846943249937365942637000701631331948350477196983292895971544065187368572150150488270110216680866127148232377099018997399059710911879620107006643209093215134207356344709372288688279402343628168178844652464539811753170260136330443595109063633853687141760394751453527043440262445717563341931689926504657264375707167286513697469539604474149084853651214923456829552153854489670726569986703779824592717367310259878562761113048274009667255513448062465078541310155931136717094443000420652583040796329346147300792144383582311884325798229557024888059497066882859625770926126242251876676460574240360528614379612670858089858089819670062615539748934095780289165852726819164481474473717406285525673168323705125485010129985088117167705065896660359331313780165357860683447319635662951482306922898124904686640140486408481245307261999764313724002201730278805175205929296822566255821207393878504380796821262946786052757031918134453013757700677621023431985331024667469389872126739372686784846228644768233413985358329281278878912401534720006405001744518176517475026648826358483096586104371952849117543673273790005843206308832015053925801901698916611822726308076466079687095003218304916376852427835476555613091085092874881677846150502266458650101933760253354289988583867441380869993108279156213064221099413983128327735985260026601626930739687530156756522264999491199545434449027073115852856962853815573365161044109288913989039733683280014899894933020607273638173610550311677262019566769141897797822857730938041027697343705460130557635471900748231724624039949395276626857263062322888950139968542211085887464013818552746793068092105356563408826989649533820149635787871083091956576712586140866271504935277404700300247597723189009610137441778069286046856113544158329294037283074887794132190089599524752390920821342234182620337305226690906068708735510225167409402299068558266935107829246860428571317757834720750985395627902153119405576808766890658406931883471339603734147360739287614194828408136125066032857805794935889683000573189506864917395376498148785262317476205044183350793858671187432977764054310329426080072153486855875023428827904794355994186459852495518457576198279399504486400511734312636324640443124244326408775485452062701396793101535420248722676719132449466980992908558316935585012760618151494343472914263283861852717096880108356502260046904750402348433401910384048884050868401390767279914425915711407640227607373364900041801468731015267555113227838278952376533314616172888681684913643203846404771621003249302988573546530170087551719866226977015175999840892680545655931516274703134813040756058971793071171076815697430889634583731629670961615230015672524946832405397990649609743461987471756528154854893140676352876232218002122470660587148150452577128896498313267476022072768919452366154911890028985669729881959781222977842468790107425727920337999361405984054265071970852517329485107226311918402852672662401893594750840359413595379905193116375805143653072690926477607593647147454645843951851277066780465397354076923295068699253939433308775037135607951725955510282163750535441635716673305467396317470292843574470567702086218727843126081949840762429757027649721564942928338843874745585950097606396226852107846350612402971138721720931381614102832583136272577889449103318977471021538261542471023468949174371041351901344252919045531751997341804096382433527681129940426781572666083678888204673234485009877565552280655033267111654218276779245874600894011960489987958166720589758496335142694512555931696051356111813655281633800613646793062504662637298104488573082634809712325735380387529483015366807997123744222299049380202611365439375486821598985384896979668621068648546425648116225028329036837794085715165595305883608235728053324369874029386795681055839792392272288188375729450627850205213801954137678390983388364527399544754733458102933546005851995238486948095068546033306204440384836552756479713586691980595432088293846868364478588487164544211594704125946522595426861006628202096678067296236494237142590030426823281222745572636988172282421046192467497994091987060072037885861788393745137975812619052179949522710303136874359581811657370091443506906689192182241530997192590822548121539119697334068682191265441855195660876809926753324846000739747675679755595654008328555358942155858382025420585201569525793270642926367438523526909841411783140316934433677101799347047223085274142540844262376345996298883245683302121527597151009581826344529150357339202938666450519648813648511043728281507409800579610365630990986328448364104095199091242555338531471273815662526234427124395239366984136977015559690887461020222626829620807401423361084872001171667042864695358622889100549691049839883379799531240269374741331632623566562357615558846533900814307332322867130042807694820806512275972119460020730857438688356470061112406057662329771668947675523046406840151025651386976215717431459099752264711109278845694996359447790476480724449523689238174587509741888729466614151328647950240617749570872134921000141053942818691853219926548839032764836274163157528912422204041442348073256347456752994111529936674712990785339232734970075607210349430651966374759788698682159136545761455919958106008326980526505404339321582168696068673279606869691199130620774899767813358121547873346750975552045384818183283013682094381509823894652775170748892794602816933321580555568822232980855055635706889550982332660221885780129950448200131400207799759311166878991189759959982513595767648795700307693731005016390205826966376168456744870572357159343109536632848099520837873023151102003389533656411608520908348617014487725816602452415249440997301942755161700518795662474437390520710609591313951880419708112487367807924928850786846825431254075056018606613284429624650992262455621550365421976555104579895794430721570182234185896728180575429136967442464262860953487085981237485587457671053970519364476982730674731121819720095401087070979444806681252360717207227863046232291832825978830234554271874156224734689428775843889418483868754267616839922462996910783246323330964894451176840380906766197302427873883536478729022118687287531217986077608761490271761394592852989301771740959912024485315870683636176831220089749626258678879036625458311126753981543498935625118459512058273308310805602415399376140896142278442920081375358358712703486616866055424394790094263637000695554420427607900350488184703431793197467360035432689053770115855863131851771263217269740091697924001884824326712611036514352790753113427491326428219480555758398458031659883773672753123969282298009982381980965708308786627737259218231940926998714985119535431767268095165973919121721442755954409964644898095207733540537203139778045427903583743424654417947783739655108287523861027426883440135780361780474666427719364533463786219110986104128395961107266262978083293494299055632193621269056551654061214361882321255401649671572653249959969059756167453262730899025318642357657884315371287124651073318413216415404013510264256074600772452971416272446264339935504595626642575382677029755360892092523584671232620911850324030972950923966967752581567468439325297752034138352543764954231029383119113697984098646679734682476805824627231326999565576565826369154280216432178948107746229684244083279841752202761340483103564158912532227080229633373370688778539137461520027848725445160685615176268483601220154419448391940029730173197357936801564345637223830611960837805950709953473156679633689708001418758200556547546086147538523169367210580319048622522637776440104741039517857787067104742417938937278179015943236866691111366553630119801879475030034197766833095422650720977673424099901709331867107835632840959538489107842214433056497906097372749524580031903344532755658855109863867157744257839513664936950055215115011822606720844006009236722879378205409511221524631035123179343996602530960586644264449115883753829430403262632093723759604224434665610869123948143316423349734314271331954213142441588357747771117168531269195800260197940045996045007255102278902926641592192976778850796334155243933151233128150358625302984302232269885977060759196746223438943134319642870986929992601386080285870582723052474867345735331828146035588545664078927624130276438395929177965615782126822174220339073695914626087309674054021738130594161493593480575542213334441170176518317740877970015110532776959077288358046422256591869305877677148397494313484361852147038930366253449425629885539628342300050876029082124399394507565880241540097828112642977355804690173195230738865126465689819841995240971761529729668369593616944365163759315144649229253424860580821725666671974390209625346114165768247813047061082886387375506595071405631598837775747822925559378329509739041312599351176690032261195035167137369317964577798701001647486155271602403164921970853010283574899599921436590288516206724462525607250309441387057172470373076294202585376845409617940044358610676477229643400930737707255786869446983836838968399990200455161611085506402740304612437968093844929186952383034701675682942481533440927016598767677832687058083244540127182256905942819136881883427827067170139592513674247464629199702550166105117752511741427156793427362414016505319189792589832764734839935738129051206555960476626019824159439243244212952872868506937062192523534827904847318252616306445347674290296602157270370140559624978042867810181508974808418666340352670575640706890449398011769716551364889423510514180907244665363703028914499797277934518530324584082049916332007631760477774677882257371215230534187521402599785879286012377274781741079894621594753457619081343673400173885829459836071410678326575286916324839452242490765329566514557713650022102059156258680952685046511662024671971652129301802084490357562137774101735077543600124015653684886281601504362510740976127340968560074338729768241223845084449585749068505660929174184975246966831071123864829492134815623599970771881080717121977235271255187122280076224779041780998338884412962435358899999322342600400547828797674160465480217713541361619256462864538452837186914982593128895829021937065214414110026230011722788156330615293730916534109788163136456562427044493122760982726192086349086663005436424194003853538392331186635632987113933761316122593377366655540616539512567407388924358954834215053259458676691183430874350928730480068079662234622608139498173435094114639646123774542809865334166864541181397288566938512309761426702726349908580258642567766829072550125201880772422372997431600879333782666661278992707971718671851367927177491806246303310814310787161270251722236493602462580744756514947774609111612938861129810409926848397622508113669550030021146645737950201097030629842381474782321079876772540687354263478394061674003558656635836416078342026660000397311417481929648817104734929008437242073946030802735761892852379790042803758050654981740762409995649209186116276668122798888048768612307873759302047336112108933389097604043367630382690374472919939430606362805979357789931389784180177401068926206853960603713800015301467052687075450134630325013050799784520993343092497989565775024525024621478672621782656177725418271304122993432414820823080188346799289035942222271205776144519889957092808550858996561479076234351270959330798710021945225157918718414678969610516269344392865440412804074394977795214359865102615873086620037133645179593193575001589346142909496094780244237092018136349928941530043019207568427184385734028200756450571739051228548163347950670595906288200244339829644361961992448884842452116069422110786638967019877078169082983556975113425684119791909009458635703648907123490642228466951335036470599916492618970259629189195949824022612462533467813127213052047252169630007040285277442083520991043604715163965798926723571080193516195773771665824083170956107827161054991601913404031557280724984169980760205507631594491772460420930709374301396397026026018612815931246178631971658227138870484658040320074333896952389020296104552071627826941681114295280982043569576539647971766673564947390310185911807866713119031760573536677512609665294349821734794708526278079554937651092734849344310335171297230166736709763840286303054170509280643001015569939747362726209804732043934861880236812731163260934601765709681508459472816177454008580181404885504486305858426061280592838713627578955269534798455871314284139761989350403917447666977139704468504918162166624897173055759846236232249739721633452290459638609880752871893748868016866088110118452999039202338857705218809779649822615822657448988996010309183597089316124247146079380679112693498866218809509878184962638740906398799847447330233795362092557452824688268111843964993344976872142475944832819257637696408007139926527650273624484450551414983027371855028281699918964143147373013883437280310240987994868854887161386843849953120244647976395253836754555307018057918784444296212927410740833448334106151921875215900719698705560190352045285630309244463905541405701151490271585544731500590826160258484040108070097974390612897167159910038706699240048335897549514383232963795342480233625161500945311568559384266610949412971687634840016648418941334999916174316621992157292048101219020860465116487786946217727204848781549623870192191201802229242782132743696112793997883832145070638760848666370858685891173727624408548129518474137266904243639573730973290450076084692554981747745760746015220833759294257346495730373703431150963616100721105639654025142762528456926283999975659437610370983968016870169269099941460146051618974513961279395571164991159800475440005977148213810077510244938933231494786851923246813467991346119442953967919385589664446492983098731800677818930353611017953066232752010497796679279472501834119037580142220953251303806035431524346209703028653957781146897024512755813234113412859746784057700948213223863480495362923671225471026193280818801436844430514359171154794663012325176427600602077052101280382797696886667032761360620848396860265265028161780114071551375122452996976776617597621505623811091929078373383366976386675572466922052923418179296180963495759817838919538906982586104522822564247322708335086633157606850738523537211886815329203553251921662633829831282050222423459165516657738909366283547416182759880228917153714741654096945696933444673555040684838603136779592626777748557006593830664504184615615116050851240145173275540869776405357429973546967712606930246150059332341260899491012339736304200210409561142199600887890471676671373943097986054840814712246617073077185424135961604759831335151537375168402796818581627231326943310411000403403040443482843742699057557165818478289521014333881427015963385968424474745222521934948219520106850076906604697453192081609041783233650001723707846958202446534799205171874687658513166853696924389922345886585430649063440524250846309952601408421442805767528324789671105259407000940342615384894390170334010805669507511331628713529462357854867041761560637610096803441773839717796282482526515342233862821132381640362775454610900879286599390899983931882419030297874125061408609892526357931319051403196447083340294382585143645240894515582361023498739172860257557710921944209786393718204396195654372954707211375827405979504801623099515515674502657374415721451788322465702841681185772904352588054390247433069743296553881421649096064378056446959173980510246980875251289654718910310744881324067378210408697710933892782869990341412705476351147560833947277868194547083275472166966283044170123543906358307464052108802040546429509673216068477369501686520247368463068021777177958480122225328347935974500043314405756916144179331656684707810440945798390778589526499526517752939025168304890051382201671942650355847913226533000984801279440115699340775297221858859298642870675195039955753013662364539029336573142532633150745578479638668791165919116482492698557688174992941856230942515470991233664207064688641335666413539433210198228834394271945898928201446333901025501642918332109403627015693017216918812441973757931781325563466570900126964395815630576597017884455547467042759027129751783989998895260148075142337004513271750026112414302033079886017094845206414922738368341778265958043804909485580422837197951163116103957043418218175360223968941263019109926945516765957920498378907795940868020142280542595075801958126965117272928538426161995337752781633651414791317609042588973290363805607192653669959561992459939056751066628574115147850743465037928016679968642460902402707071914115130161259500233801429719377557409883512357422732195569054631326635670527738797384978886882197118034790528794621071823242664530614230227503271909071964997110599826789826043950112454974031726681986793387277789791778019497302371770687920642045915368705130039763245451645037574946765218077239914388066680320796764758614154717439532284535128132000572567495705390699040327650846867292424986418436219736806833733050357809697548848306032359758457853743399705652443551345310258666642785454042034010126499640830119071551751864366582343736656423619073711636490585152695868465459237400007781336909287308029874655696328827469105083793447175297670785192387758081760209193444932101348503454928960470031056488165746824238375465986568430069125286222366725961933306765511709570739536609994661627889344479683422319284750833635213065400200442853585089444864610425873911114723327486864880658301893997222312711866743677378755226128043728635987713280010073051634551304656802956665530173231008844433140345502794177252891142624703367517062825206359646124599552905443173969395912285470397755610608638099617918113800735803455467502697147425584932603191315414630174148910296182275617538400976641986590935921976158683476976145025108710507402851556596148285647388732343721881824864449228478465670053742109418297062449773050493739225014896223606752592726340259407672145827836534305804092636884195292731868413699987427723826383948828072673873933442291472692234988729012293142621844134197324029292939628625895403660968803695064126550198842125145289825945102180120895903983702499059159402850963401801757560075614194505309252216950785266715629280131007204478502303704953886807319949538227859332927167741566874517152013471760611330533013360580765860366227348331615601481886038370847203008433365668882727559953241404845211536527852723499708897041067988767251694814172105700638469991664802262707705320159347313951696378669930643231008047552271550886854151929752343719456238410638817975601876406896854813081554885457230695866584969637307965620819218337513377280935309380311495085745147253432573200011472513982577674377033452695745129767988888785699981822663669296166177345250616867864756036111500033097724810995202283545984050021567369260616714301604996499505760149491438696381133592108998149758550127512032906598639290658304236120259300732388942962705922116785928848128935167787643742401759256722983326347175186096511928804798663572898299550936370118631342605099590421453477804365214255012797495791250077557363492464696393932158020614985545134026123818341688061594095108017520682538852088697280907059486731916719491689807401249673345037837938556080195199691104049692238235532290025685010561651558848357756684357141057457834030521473341582938676131409984615281680085809914079593682500068274971245386114943873124685317815383974646976097154440311076178854261972898621567005664949899050135319808637884532416718647265357651288865689027534689329511581404739364700784462227888956319057354166787871916502668592014053955169741238357825307638896977045094790217333900781178211565757411955058973279820361394659158692633437470076436704857185649792967525562229486220366482834496417533620608167134302810176955058418773359917194393785333421519543289387751026719120388017826329823771504634553820980874916263471262159827007003251501988321495644183370992504712347439265243566205753932328755264663632858706205296249096854073487200908771934198144012919227507528413135703682396738710947270874741595361561783465092014184006108482062400220717527832363017921361771231459989555018694146738400995616877162100481920259001581673154389436243581089150296580741023528984871037647165160807777997931569252565340171359570859540990964081756488561397435655182194637747803865722109916833264661395071058081260100145280168279967883571381012071721542376028807324478408096023540874630150077158388037046875086908336670303899325259001282964091362200739077092619090665467931632136559614531795006758755037037190730082357107293694499517779037907431806012535354422314220942531868407707974532877607351771348848264420299704909435364283856587673846560537644974971132658681819263109789568052797741442708084153265016779799020142532857576740805805912057810268082352081059057149522095391349208724431246207738937850741262826382188864158422886411866591331272675339686409826076443513162201579988222015591807438855733502444619802112173921546794142124410792847481710614876695424259782151734191568231176098978138031325594613725174921676373054257047732874185986801489663683803341905232811967665704175472421243370936530795725550968741545292199008208183964208900515724378250470427881918206795363747012588167866922220814671206213170754550085270349502605423827938618286351085396357922214199598483751377054774113851862896590275182032551985554539054842229054091787333772361642962660815370078581288258531013798117469304489339340259640772224739558018876211931074915875549428792438293842162514878026319837855710746282401528947318177807027703204859826460972229111425460827323158204204751463853146963337832015699207029171526688500205419870343360915301201848837793687395013776276498180853986084598133952370093294205494356637066038840636555224204035086901655988074813551702303404031190409758294223378760617614468108068585115560905477376236341064489817798421361065475628498131446708538299524603795470922603748404309270124804758099200342222777939392046040307871155768021901813049143616755242809501265763503224343382610569833266117978724431978798722761843061084070076422355642282087855148901071317215276048981518825032292290133605413069659080325135307693149096919874504918015917083301205668134558199975929529354408318057695202537350082657332912885065839446783855903231502199111183736494966264413904124607969012012628447912587709137280508840566530727014286734656620694404148848394863630756750885875974038352869208202418729381373901500533378018520368231194636775993933282326304227834658486072437003157326672542249239636295871352467929935329973964383717915281415410564470490216221389794408246058223668363042717574756184580307406511403359115277576155306837056123752947918258453171425961574858151017179547018148571726662147916687086179566415685035372302073933674936903643177728716571152497259785422004493005269697885274743446630830166655227548092945086664654568393296696102204750233541228525912371596502703988176517984416004391492932110539797392919141600159495345321641112463581634529715434543565069505408434703069737973229206765609945608280253765925152089083253840096949642670978323152610169187569668465414559552465510434005218494200548322306470615425501366726764302802260073629336715459783130081924668867873159890643056696203252381002573246286304596933840679265909797911416413800894247846236551493280470664176508981711203990932132809152257250916326768042402520698906990595750937874477910911764424709926931293708345583224766809023972365863723589297384924222897478744134490882990221777022517240964435448945597390232347155050002534624739992736233026461625846072385444820376435591246655729227718975851245558982344110013193276593560388990004058504247132394103871168793638595076565054249642183200868639844715836066709298812622595126601361337777673019785131747923940587765978797121143693869914276007708518689422421312846327550045452738688420792817576843608038415643243679225074940556174963606600809058608981081033722578395661946156232466849638806116512125825460446134806010691983888564020322054786174126364965779234408764189518050046864354185060491186963170028482554922673026759245492933524531572774190033852857164769033722941414809227609591861648697994986906676929524042821973479241630905470641536318160494100682141482856433129721739229207496018596786402861699418743837342109551296191794139648779842314322168110955217108522265903021127622912161805230616214274008044697267869478287136575073011918014924447509896425695471029873259294203182513055633357996479179535704181520499708084122288254046884922397764517775713205863143483676319565425029129391105233081047129818986596038728484946524792042931876688494439760225029529795356867441905326836349206463541822436220813358103555850311971905450396145921883428347155780114612271756907765082688219658810745367200318812861411423625382235632489520275426944708611090850701788106883760976194070197788982848628805067367197910362568150409882301940044323205673892220731732438213312120283016933036813120329619326992512457628656284112145737086994629423920380711954795915705556730577074123984823099690245332197026915727981914213242511269111715839703215021319143093093482502824098047295638228570662674356793019799881921065095974473854485546322721752209546965160088422367987986507533711250545022934502156695319518142414318101109951576153664542298743675100933829152714140830052104833023340745388772382744136249337055898686316177927647066496420699761291520000563235836745376175538057057561759637416281186586548444301539747462951232564668544115556890110647804978129894354760677794736376236182360717083142827613865735234400847338681613534017713678384659467179571463211325754309349390010004616803172709244770810786451730633820231273263741308535018191206542224927120710657760649254249514557855205836328314975812130200383828223096561965270356516218719848489187579912720755229048618801816148047450378704656252416188762500886078830182813723650128539037806026997888927560060296331824794037856561824198480350138098984732079595271212457039354325034157897872669011869698000864143788795489963949259257539014137713339772470531485167071768020568667187257464621858955734610628479028429482883459041583735502178022924809367191957434744391589400058722841701922572517240954715380679168249281531595139129110578746754944204780286214242694168409611101594191421225812654144055970845548005596360945185989050779647629918185742284457867331854350791604696544705159012057870664065855315612158868553722135938117278321238572296754042271711904345026877750335747392647637158307009332525413164276837644597777223547525864971597030415446546703905472295216971131096763241470915007213905575735795441306755372456628943978459566447617669172941615410446960275534473255998099891087332362845399145842029925916618983595128359389495670160491242330645144467979610428644714605803214618032075189285001638756164086101270066346077303754564650470298495163205304638721595273961468695267024623124607421181305268210318229362130331040924018488812734578837614427334870826844849228753228890126388981006421945940660188160347051258747519332690398340294365316513296247684302589693881654465911376917063827273621976738437318909637860132447738948612897812921362041351119611228455019387322453682737136611079744215485305023497903618285796891821432282007785494196909488313945598033302972172516011622922380328234517698052638008699319643645111785856055668855849438468292536943118822944987598732278384081989188346817432881996561831176643116886563091783719733930206957913270208333290620097238849279398623941448309001089449064226259263821204789665413448388857429392527734256070313270517133891969250170575135997760586857532413972933829938485302592481563641108440791119296869243087012727267775338551353062036114662158683764771753524332583708572898236351977616878416955494601386512017247865818012886242783822435470721269594274872783823144158431494514121750131141515555099271621390568371682908386057348865945801924314035508650566270080778169510323566471492255832602676506204223565361391131962799174919981683523027105729097849147872461590306912920166027612241800400243897169550617153593952083126120287673410935381052205646945095902711489799053312057339019657833555893787062522534723020480548374484147259286989011438221854110976242974510416330045518740427772460987054706028783924204592558953982310930993446859611686963163982680170357011761756548133467959250215188372091311179236840369691639948399854814544789595611914883503371941871614766343082414877170677180827208918331859908454890388812608968777115218911343536570371908708788892638834993586983727739200467446479803568924426721809367190463769347622502342866825676965947242996084256772829370373604491852323987796162086680537975373195053932963420832269048407828759554954493011006259425768219199050858969499582819573743286977879635978024043443259619898493611195380107804153116187648865925500440911409826128986094967090106061091989623659761467435687441728293092742693750820376832530573820674035529554371974306841916059153653539452129435153675094702908908038597171102801415721591800920926189783355860348604186129148042565069249035617097938339958696514421219820006657219639100934755883756843463433265240576950866719650705446376748533222444141451530132269680417265219627475594019979145142400447967279675657190071175042015950987801786284127926432929669108054523404339015682823453229534121810195352235905064700291908921078118391753253085130541876901424195281464924068759312763623233886522327933285542884953395110625096794259588076657876740695998725717100595344056216883255072432801519149780796358961644391208239876292407164349943430726739490658730795614118713415281340721149059307030930582660190184290876401500129112085156153259521790225427687133411225421709141323613965491499365863899912474172321079270856816762046585780561498227578969718876445405789059013251460280300021099694485692348445855814177373820138846957673935333969687653260540295592699485744635826679329680430082957363281533834459569982264703717316582331931686744924694986162824376684080650239579402523191258713275366239958124741963399141738125392140655460879100052214065340168943033658130475585268205176159247783045360795984072911065179754821044197646400273877046171349154199209275934895618640857621116610657454321468229179371936557959859121919027454800790549412793603929850802600888919899128597030940553130488449875537824602510058989384068147244500365853244838676483930504259752338089087983021042830446067314141661624126163762332613904689104727424961770484791153038901070771208084653887066080903263644471761213160082873749666557758426462462497078841773046732837740356949674076328960828868526731527228600442155629393867757834456013856342036749430270111763305836212804843740577284026039445724076758901221047224851173007270218924637060434857077434089226193499042488528410558845159455249943745781167498635221167669992664506187410553162378920497186505700290250064061320420017770781194171777185510365304340229494714043477661315163316034224134729350676010765245815659933085422477720192419662077857278603717776590320522374668959114204006173274997951823934620682784980470107447860203975118702716592372830553015256417931591816586415080500813366163236135639133208941779773882891334448990021512448350746944222681636657081856750177138220393806820851966412557038882550764153395990152175909273726668123699149214077077964936896782789485175479510466350350107741123107223579777558976539063737095279631845607544628123413215161943288041835388196954900235589764029290588188286347609250660521254662854259109173010157694358167322636524097402900344745349244699366633957291815181714135712217315680735804656006077427315458081052652562633535292167749469507684491581855491136249564700889074548827630741350085405194122970419098585382011947469736310433893400939360000453490003764174624054975957707532225699960595831908571376351984185448281714060404125976853088116701743476552216728341075875355731752597149000888136943085392142418288481076465477655814665143362302850274118358867915780793318975385702021320308695280277646212563560772544201347632764326604061192998804334605713749568041727554110642087089600358335381432618743251753692830030506512223047689845320559305023752738459727607527497149673924030348698612975265888554122606111446836949404746190770243290762644863857117521165649129477400375679793812551916240536563954132991402496003886310028923157984420573180268615225728073104909438308580436514265555213204306083410473636851858938233665960715037957955101121313184140067853552239823955546317050702212572578465290827114010287493022147380823441181249784463672435806083060833233308048749981124833479755235834320306992970716906579983479674017185827866240415645382999529004693186471113857804448236199025222515472630736339411941453985758274927908187591481449042633341207916591659517122846718025018176600265373125426914761218783184907021095407120681266286128677412998471635902317802606359192942392019216115361809048164251960223953016884990612984404741135397528630860937545795793704745226378111001011839012402660161361950995566021465990895766813182490349792501232967145933514169102074118281650403885368158252407213553145514236940487855315471171431279334226032551577017580724138476293388048279739396288174324851944310373691321992256178163820686090118174966227801315763366569097586269083640036586160111595564668953824282887160292897591367938534641935357247945490704351452933553035091311298596486381362646395921712453242633074509837545096676599232160338968582203775715928660555916392899779844977375880104032791917889458873676212786279192480097159194984680655174371769008345922696213292416228341831610479292528321079665802789769501362537275352762576523324142802836793879121871764344023437690647984703730019946449668518916484770233459027368525396774497379484408461811939526449291058924869881011665561755019109581022912062775450435454901740931601214986994512818225348898760468430717061876252263715492833039352506783623840664852796691969922563556808981773577767103507104770975280723886241298056899136716518751197200313952830656035635152839455313836963322539367274545036882117334127299614339191114002526132098478352639432988503609650382232515821455463621415458645418186830372372281945632899488056110551056900280845894771697859486804802502068451497310889532315707806190252850488391953171239882571465698162862032861100522091959921435268656006219639070748188935406242965251494337924017326327139866506546621067980374938199895833233411180844621476300330913890952663046846565408399913071014357687783418989540951399573832516206148680553435757017146115328689291267210157508376311726156309947582152251427394544859139467462916123661074644148010881962789026198618738146352698584931793751985676699317046627128540427274874733060713256176610451281386724156859445643375156763376230959528148046854621456037745724818468245924827858902609590982053201976430733417748879078744457139236567268771148497145039301186064914998705163859979552944455405149360386710899667841048191928505686490145897931197249516826465550718242230324107463436077507535866709180719035100925749670556028454803354018868154592658987115661260633230577047303460069316382312388578619844938520123862472466476189928351562929156768700711835943253898770583974835968988255703356956674734521772373517028088131137487413010971775631116708911031403641899271129917822729291399051416883152843619584411112862643775525054464663788755869616547543163803795846618941842206975338545524071472589516502224277660014360583162574706641163580607112234841161623480009789632916568269470850931602186867644745554407295742915527988055802500005455226304038292214765096765536696894992539823621375715368862905335550076142182630187174903892318660498858187310836989200544561389107879600489201132751485960046632355030991702331694012717191579863825258819359432027320913725826414343584551307998692748761053657287696754606308587947429606292102252068240895478356861030932227478748889346283505122731820605402813440897403233581201368189168195118553602370703515414069517419980793168574547276169278813066763476420050019675380238249756720715724109882296246582076759817130749814936311409072296804506929334843517219439212202171739947004104722916746851878004311085506030726100944587098441515950199146150309819705881395294253238202104694051301830595489353470854869102613907456070679694061563269807891989269549841149961425021360880229266555082508042349564211820600199074563762590336611424529710044503994747612064940941727865562274037110023491625456418921865086746407382265783608012552003083569248622168386165443236706111861101141587507901379188026167552958998983890487101519691786408076178433903986772829618256301388196858548345722427816660647036912466265879399535443753651114083161395409550908702845093085682670284454074623823549464338303797995665948135943544996702094359187289827195423896318298660174834010104686702971619957963789242874948843702062624047202594172178609087586567516019886067182814610942473143624509560518808222019219338666179026853873756667600566480299975398445785159169160257798306679526171314306961021733395913810724694021002304595002653642245368400827438312355477007770371567812162869759784562028766961627135895047485964369495728455456251148265851108870208465200221305959329043958648900857087646418433360993746682886250241036712108438267310060424510458473261204264976912287648172212802404425425599900878848077984737379234003845628568095708924752520096023703125252803537305964834690494877828724297168662061739498515263218282127866107917470386235307432769393561097804049578597509620844345273620557019812167116113374358463641269254688245739403889771646078730860831734834708961087050308333148768264743663032424519662728666234774460695922893906180727709117768586768600011456716658696297631357738133052993625885935854879235137282034865316604126413196337974063264015069742409109060982755329535585319209933337694949253592145188268135078794096029264095763332602977747665204975295123774808784884310892266537828461405201668587180086420481393937265944876031682756150624422058839998627345566122170245590385950483125427338385434927929035322693118538992842491894305508899479576905586671731901699107679166239165651847727718412929496048965000004540396262307662058417749639043218312462445124862688449606497607716873348098150488549743127165513376022689432607440937504602329029710584752218049487839596799334949335223181710598822810149290094874294663562172238813784657085708426301085041634586671117779749136682120331681518714331540272329352951471685691551126294101440425602474252966102126040739060373347781316506689489608518684450997096740671321138976595893565223010709205810331385406530005235142631091654611642962792232498846853795658363166185301851841959289822923101707348724524997764510652919804258382685901550538232456783086019589523713143646200084180001451188108724292347051162821808016308814531862167801692364359228018948847403562855275437885729185210971524494666112216749160998442879815921138045644477772170971192188996639509570935203930472578714372371676867166826204171085809192433431965756545932405972311490454777129115794579723247676106073797179194916766226068183872425063116473014218201635974676964117883213896305761718376639024304777417464566212567262137648160272454937568654688222325437844138763651008634338244822117916425524710509838377381389780644933506835393182529673267371584265267667764556016050350203229704778086061448483762516096730629920902193936925977957973384451021181882703088127263839853539856088237800635757585526411010828460855703251848090647391537843360559799435319239450323965373950624512717143400440678004986406080671316399568103152500469220897650743804734370202646196085377801630902167663624315948811349322634533714718507979451786284027144873981156794435687175283597197545647983826073252142025146336352462413561953831361751758872815251881498593914008411547895509209213617036305175200265039719533449675068042707535522667932590389979955823698604606924483529415894536415287523384074623442077828582020828108183349142560169778601855128882432740971864177302723840578118296435466120591959846442754256949238849752108303009650406873527316919671333062225533839378265276982130644842326640095368258074635446642478666992280155136983219780390649983127931222916132995287493960232541217613861269905530656819976019512036170182757979662371720983030987572655626736810621333929048082633936835974659778761960411466541780861186320142310469805633270744815701786226322618600182945914380564816874567260818050926232450010678299156469125314570296047480033140628332866302210299124440763912000337090060942903768283765208946159116776380633476643196223223206658024729937304201967501230893880475127641886849730390901341148445973451400121001606816720455458787043751441483551412582816657721701006210204827827722508655909951016525123685133795463637375161067894659451130079356639083751874289718798348706335261668344741546061864358530782343539443272999449464707531913753849276993916449962345795674378368793467457580525221015637630367600994452796709210576781478216636987727459194004199591120978709532779811049330059340608441370587106675549362968135449500372441790196539878165642054549607577259260510932199132731189915313037229884551100802283998848334026411400898196279001863723968276367043863110018836560319040001132293800768931602744149245606013669179575925832890168841527421031772450713656887759954164651270391123480228216056694703101448881358783209880879144269664881768573141599053726729730542812648469828194966628914112622375415947080119303838809072541772542623503926589345374096464054879762073089154708103031701894122353461341127788644499180657011616765310891213696739709784096743537241541548458451880129262218774457198611694807024986309689286314683245681355505557200558349176710962154741799623757419491321265250254866522361807788714277561561900360327689985907056595600290952551943161141197343047890310775971759522248421558189153147605924008306425907078194024245860658427798084465274128810160455984920550629667345156502020441015684076286714125276366271607962434717196479232701586090503777468179361811691871309670656899546988263958336176566760983254164909580234806982895604222825841278264448734014960404072535531719362223695762265737356267022726553774344634914346710687259600355174741676223178385055349046073303116582558099958915548824260013006964991970525805075875074939531458287769890736148688399126791964903049911909135424221265905615745189382279336762823903580705601160764978766107188455646047014967245085390571717605553260973507163571817224966531443321278742107130984785125956427610704658698118424953599979597890404087878160342215590203454441778874706234284714929522047726146668617081474631186689563689018270800677120006240190590074817153843795110267076019798046150490702558338608470480436819943512629787045553527753539111494647984430200691017393753288227632283169718330250028657792257519006489302986751067817999104368044945122717998584544885406853728406396650769696696731808530497393944190921092509218245703057696252695047687390717827340203964431517996496537991299656892570805755058986742460876805422350284915265536081379019555362065073656366184741220925201293152622987721510616266751574439088571731600017735398647925256910010600708914478780927973375383130007738793745141471348131485488597682187010360890992383293021686822892401451554849232017574268985187396968710499347997363238804191254191647696583350399884940341189137200133617226326235725110085415808520027875024406421201418357817970384215556400213838136738729877665325497976329437150598502023830303411100784106514083468117972764337355548332201281903898052336619792024390905530207803302001490273410130250707976117346802462705061313933978845837162118444305873083345454131686978689615318650830485612272105612913638614411814423963422678557753618516430378453582775580982860069000979752266160357449006569935138337042241685257534285030381334813837995374278726921395217645144476698480410730172388987372924850855494419973903708615070504965043836925323057314333446002939708646065224344719071325436817581693467591032129458901889978275155464241056146752017759407973101032728858411886919755064895670486627146913485757627722459723607648814695306039488417330656887855395715769121672579253591252239583781880305360887075702988386266956873959419419205391723077507749671845992864710928319188179480656016747053382818003748916411406656263455763748753947080050604434148524547261126463839827504610348248725537787905305402675963090976513736270500446172469002976279206141010280564378450412577854106220683591579013040748590534096761560182823719081227077098170915626194323471535704581169809074883131671005309892703747202083425482160534834146647039325851158723109866986104032684121315739917155244803919897405261971077092347196138819872543670878391057840647953911973644600950259438261088876234679449567420035734758672536177886080768839256252417662333824718524679773179797190579987927082444967579881860915777664207824426124435431838178697856130782550553451157195042397707396593536713592080167910647419157623947805249849887530506161176764751273257346418975656686182462903606504970781694861658816701241045473824729944373748566873087721167184819370906808685250908864877904840473956785580681510884884112660187402466044690595937721597254463694237942928656987028745542463553915403210525665218297824481610607760274930511327158589183958302284137737990259491049422133323837748151200774261061744723259942893471247623147941680586957887929205131771693287929036972718927624574975462709975418058279643251660950063758958160847608922853708041962436048622927361156548319134925387565244630169534720782509222192377228652168814779828531424720439936583356686014142257810480062212393561062882323166856066390121102125448741797509381179714109455725559877050117324126160688486428753172746747425359587610393940178954186476546936688586293933862942246063843262238461355263446903702875909431227911927811280522486630697475398215306915899773912421967000651008756496422347311517511021892138341887244569090034955853738257813133119819775087563517053016050455919424154226467000338362605776643640772301672844625752487789858613109179717199401526180538742314920221837671164178440861448426761316128733048614476134745617377129290088255152015280037218692060622090557355907702823943661695163582419048211245077764487567463348981792017813622340095258896017090354256920608055798811430639695466176954411821398818684261838570409457396358945771217479193048192098288728946307102907618171771616474837911231567673079586692479113319076541464500831852375989866708835936333587754185433696102542518143270798067371794400431633633580079019269337834976950846829930758291727422224407290288717053825298639162563356843611346282728204495043768220858198447266965405470132413639076559880705978237937754757926485307960424993209126569612651499328735698001852011082963237158836362086390679128589304051095378535808856591578607123794764883400508407899518659620123133650873766467180897319850720133301969863699486050553081486516039598060230102516341413245603527199989981802022505863368625695298261233307228292027273116976644842626915056393074212967001724118739248603037591074331386732671504873379110013274709667474623656947841000080306962244169323976794487941322901913621817064964223478045334574704182149803620391706105004679873517968853036100114013849244007397247636997999354710672929036179849856588862828980236656390361309577559475559886306873690515141544722821150018902713382572821413525480826824756148007161537972054209441609397773595092521968670326887436069414899152479059194028586574347013925315536629043872828654291873350211396712557740673112667396607760978191857405973923707881809644820014794427009913061415292382084337300930729949960880393969633456787703912354564977833661720071106386679834779684927323450883128074666632120886198586779078585533187003132838248920996041039380671575288273251933978935518179922523431128244543808119252485107122949683739869828496392351386886228063785576847065849091335207812630854773162385461122010902073851189241911866479787883807068359071541602189862578270569752840260055634149414049247250516045320306588033357175092518777563171542628358365647238754852680510007912419382652662011328601891588553658175942143442274630266542470876868708516617752904634141028155669111939472993992806347771395149763448592569469232540979911291075537535555983650767208859769014753423741457123693278716324094649389247616148085350813923573421513807305401214184156276619849653072654569808170705580375093699908835224137473605223409219885222437658531613796586513157812531951197238203697655618779846776434784432945335817841264359623018844238241313806535572389068337576000457118994527075031089598659720993766817190251827518338052681747344356748686128912934690811595437195013312169470511944353925402604941448169175686838159391774090752898060229350345426767447218248599438364712919237766541910158915226910748183603626014349162829127531467918066596987975933387778693752965249974900909048498323111777881274755963219859832187525361288113666717651958855874168540923908217655295957518308502298512747419074913081740527450748391354495395466385051092943050248223099579031086116079231355312755490148403546507003970543515997949892203387469168516427275604178771497759375177916521721057501032053691357470715569224188831176056233706026811509639767533596068322566960117283303912573437825679663414788499149362811733754272649212262460037955093542268433944668254444934240986462884919291711588694350970900903061136522938947745856723980707494197434521765416446757532145637782640245077444059365598028570683267618000629877961313018670447297713362735113214072825815548219675053200397422062935659947879335755726775597579747378875705709673720709069950074356708287025176057054168420727642729828647209931562209580378453863744180487099331382503142549387464347823225233618588222220545152102870886250946737983245102318675057762419208848424368592747055404003461339845057140976972244808577483925341439656059379168018655363335558795049131659000332625729090270086743035934195345419121622753677299328327623937527111625312552587188029165267830305748678308335316700989254979671589017500207380071809581830764791994706682223393338148064644920427416003872873345602332857095623926077206489149725303755972933856990211267223452485135678858752133749356478986741434531827271190501664575817445136125513557641060152218446939799267057523540870242640831114630755784300496963484493333176986148304271979334665302891533655303130595043578355073088560037884322339882824959226500252271900292930644824864865862449720695889495138676828788954572271217000870623835766959811459840571706425085078868555461476923139058233700438267771687786538589570337356777952243200245186920950300917957673153185472404187313101628360060437719003074541441912092466992128605005168392668015597999485604009756006643243809279126550319552934886205273025726792139911758220391801896373970153018158222766850744857759461056974534897685146536096678742932374056598162465478428285245212547831912648846091365874076333587304377022236149706583475805022158468725414711611566677954229133275423514332554529867522483916010601125792844695703035530823541989687660110951276302339018401517750438672850173924058658681485330004457034981458300794997218506256750631276474855633355199654444321747159544972836285397151033716480289874560684063521123049252060096369210627423596794848200296163163117412369094201364115940129624316423863551822307423678483949440963901733968319501460746457551112843907123625870494416037614712412032356931222114838307820444294830043397549609343506320948976647334678248917226417253403010836623145218882896417018706728243513344152189360316938279249529645942527958616935548923992391487097112171542688619323132686280678040458530929051374959564383984972076937731652890312568084397124166797655655244483220681450984526051148962572452585229464455331302949885095696381142354881655517715127726587788479175042977332148561595679715189760236917404669504727249128624944948122947925136627486087135021285015717606379495524626831703006803315931749309024713250030305053770758775582436357285830843692101082954843581314363367592014116790162240308253870066701015848537727152511972334772357393698140139269731541965452346980269675371212064317209920557122193110288953945595362334518009926386735176287123911954672966248337565011072084934625795880386709947217908412044044841961441683974523147615354778040285482536319708855629017813298317542130652014749974773374921743455566582217169812629317073551128357838137458777393001074326720078529278727659540776422687300195503133974509109770542936761059461645926281761836186939484163092437857542361234124035481661120025050139120172518039270419776128980239531928112713925868397019373135128949128673421203371243124790120844938010167818448837069453303153830067517521758907835557400837617980030377591982201587721445775713556802359000259684395822149968124780102101461790453893380612398603154225729031218230518653594041869534321904092679859934053202656903751224521994627657926823251514493654528133359058052367062740084934765874485513772457416639776584299910288438440460796580672881854404466184287620070512750112807987657293739806603024600688455946925453078912811935761801125391198792980027487861040939413672984388684504737965723920593169464422117901668138393953076875294455181296217858379800503808270957676991441909113911051739356444265487291920283885527272050761244802640507840629064115309218256613000630653726748436617466189113897548858249222755028035380087761001448922514371662634537017041766701632789592517973053666691415487986339576641726752699938880987452658758376360882021921189043597594707306180420459054545842891668952072810225773524312911371542374957449942629539159733486132833881731730364213264398792182781051861833514691208032294335067256496332567343567676899019098018659457631935529074734586620023083973980672900919485830062135117689691985178997198226788839013170376285547143129214559433047503219348134427506914465692425499537675077053292597196419624062673889381860523424026911015277496387768734615439731008826573605117552552853174222635837812859643883659065361211178540723960851139758537560373768557428307057778532104488954210625763159125504182053663780756959497384556020355996024461548159105764544382705360581768907984575928276461241519389966739568678648540364165465301435525773088216343236738929318764503704768284183986214275482185464429723521364331013301610442177507576644038361918972976887844031970249108786581221028363079785921186834878277365231879843194656980487932832367682933310440279699660040185149316749820780991160297670848169434756215110479465978405030406348241212352978240204366838826280740210866728855367361336670319285055481238777836305540305221929623634409269151177403919399580075252168550638361405251423682856786236946034999078401542773429807077180821243452373389276373809712480998810130172715156820252557533490834087181859908683391622109924284391955946049761255345441013651573337821657222627792412959202446038202231509887844907455995121748062189167865888445877465674218033609126563310796687790862136443233703596972702708715851737140587167102908085060910432108726122341928290695743723833846997628158845476575006690211265235924013647549492607992444944891022311170510402150782021684656354617227193925220607821030281301092696633469082241618179813291598169710827188035401355227642896590252285841134277365180624297308803917719684882239463399860824388580310472069256287243626406476148331147009367753212768318614130373666606041439430060542706275790316892647372858803209873196166374838485917474159062378107399828087859872330266905082468890852915439986387463931884768529191332283001861770276101747139595969520243504792852444365949347290526042458266461317301844057452246471750019370057223720730171997518361242077675739525206422848330853751544411449311907067880342155377384613590600830748488364457419708683348954764420107117932256795974145942228079748913762814387158379921197154227401185947607051424166203552848541784033028473475093495638199266268914080085944725578893662544572573998380792965074627543542382089708890760449609889979201463420141515560574525468552366714090098867674735536483900068626537418231690044090061837439253840763824286933201016991505816039863501009342710607386046421974873245547316730228452075552971044161731168296938593315275085909134598895196886295767393161215968534581342574784871556411907907096699063875624717511758435018010698976069567462923793811484282682251933316031690697118762255719853753637114441215468574258106991879331517932003640800898270997221050952198089090040644820410115328869459728007774841866203945270496833024126661228664055609637946625898344051495447970386705110787687756572646895614089688420518593869690999432989319095606003932671247005539999607120421107453039232913582423339687826742484666688841378956903638348501591911162678194211553681672137290254980830546438550875585386253344495414505445976785551768245830252422828899588199986403928739512207304803323223080290133467478989890150426762796607646636307493313563138732631806798590843691482523116805235756303828984468280032009820486877557725946149793905378279889801821726561921184780352633990346046241672639580256675630887001795504134364526300444039619010465100522218644222037952604346730614287792411917779100789414195506780488143870950338528118125092221426258971113881901204439935772951302877674432127351122265341484868625246169562193677459663178753262386559791773997878575967734405236919130402518548352762863520083373615726849158088599374762196229408518065168258941946678698231537538914947578439490160573647607956780751496754704674375066859613080480829347402839288927223980294277012450540748319163949835323531878357469216718257695607416442102973400461874431976637190446267547004442253408295995796457746901907683034537628934744696252682120709617984677559446264825067854003147247298758298414749544366423307104150086435457268404541525760838535038284066495041300214114587349721738234190620306650463831496134100289481379324780783339464609301904555491116503370635692629358335098625375727768473163811748707031199818743079786418180821584798685109412292759847581894916462800386296563811061788094506303479909792730735542521070278675280507773809468160761017505597200007037311276126317923735077633847374523551661776913970385315404694871256267577280385769396538697254038315749943569214301235476771495082106746285143834731249572950468896195092141978271642895361742045082548610579006361732118599124269452461585303087671944109395408876916013260825940965503182419380593551572667683570628706516656369136496431475877777831038401025760527331636871768483403331503556193829317912501977837659476159004898945025287669858692000218703002171062208469641520382667368132799821765094600119623861825753359316207139250235894088329271225967774624349409789878686446053936750520252035789021095238318580382553707566411811944483183744986800354531603200920256444733545225237125099445482192353274410506609329040540431066174832313375017057891827126665768073637398333206773237930719200573123707344659019557870934137764850905844516372179994216363575645819710445076433418209194052566727467518565884663641331320193176716910649199941527103933224325493397287168632339844261642157849226744328613648478204473375935725184649762970292086955353551400891616355184201568741841100142454249260493847161809900891523306483955785093906539012978723238371743042182234633897973712445000577012202662470279228729592953313900928159548289265932090650064432022841160688596422848963771568788615385483891104208059587583558730746912413677394195040591544528322907039098197783682206212680505203724128904656519446850428354463422449782627258600808967661069412637600940551066160511156660527488258699424074912266016047261630689013934787245471217205258901543418129092715657525784188233193692958609711695959883904348525929085713078619009873386718205622770044454186115453019528637148495812949336796266266770958001711798726704979575906606884270298846157630466346724147491209439865839673260102005373418750114622317882143259062624213893613489067956054375276564458651943574562639427285809077617976393424889776053257641265198084991201396621745951849704418232779001985064531915429583186169017573171977531155982095766623025228359655087471431734312455401149690697401199771561163963836002080722048255011780510889515593074465772378261301571645891240528660066746797349668459584173555241169101216585972228752721548985536722773753582903345369255390513786132547749367326311699906583089250932590766259703549359756868312418775276199681728100617133564370914782294039800805387784063598005255357915082896035080402448888789857807855285070047961268551911612890952988943812164944874252225462166385343603114709398463731604744759524485730642147352918816146573620237874888811204031635786893324211793089548326009953219705733888676079614526114565885653966313357618217837508192629400702012347320332669335246142425073710870437079329451869001404829224562717264047209339554922293145234561640843453830454341597292623125474491515568558796021854774211954430320898283339036745060683186671068903266652321861209320056483023267661429701516757363879465964408000630127456418638974022037362362240083649385493124656128339118206013169581493818184093595401700169125990946791175567493680750858075746771028998823257457889106878141641230552636650779223726175528516944801321112259795265745279045255236118760333636313779893772868100959612745768898227982906983242579087827357836832172396569912387894183773258311321789663364920977366123380990784899483764185901134553967690915313416982373760060677151764248799502813405316827473911582304747742958853904288966124981350952256296801127283186989795942795370987332246994807483880382772220750262125114244949080130860171119153655956275382387413035615767096153251279722442033836106326757200374422624405555409668036749882579713707306962605147400627011069715996534594376095993457616710587039661307611126797903157618163882123702932817646082236498709082567602202139448356121888623910436572508898863862769780020856571686456483612206806733345024588761490226310577057033282209194759989617937991222047021817603542590228441674591134712442945230771131793731474844347217837369917395600077691612443305172504914863098697484882940167380053615479007572527196214536305736924794058447613686565972440896730273475820617811707369794284567990279117261440869602241775025419949740138246289612724828846358891714114547579743234416487180497010604028668347448894926620748922958486485108760495434866618214270337314518595334263729123999837563935491380175908941818875321131936161306712739416441714912590873426119973914988329465790721760200752172369528864994421977418834552188033025409697743900516441392552762580085066382716093627921039952852698007604213374818788155036951172466897038021443830030410137103462837354555561814325845705208223028249196973653384147303735432232831960817758113653732476730513393834614873972063203925716761633666143618114026200428359943055984383064181349690955402854148613661759651349226428428539750441298512882746432482715169644109729934948826916547893962150444827075491120191771804288497285132285558661956823322026386886223143567449377044040352114540756525138496756182902669112222862877822791886182708787121702532054491159782489813889160384290106664861084769556035345147976094819100661029874804544020360455375307065243412465778318147638962097162508316025369353404465301698386792586859573844086145020464736819265590859185634722902757404783719421727529925904098181430661232283331318757661874822970572224818242308157705861988693655640825654196832939120863738369996164978501307314439830523806575099128989195931035816429531902921637550528042050716464772173506165699405137594966456795359757072155887837063750294001791953982764347229615498384180819744340820919182394941510338693728853571403563587119717392324126087377673060582720651762690918115136946561404969525750308216053839110891049683696019551378629957341585533622919744138320580051503435476032001469885287922348067045467114376480501410621227165884480081656073473083084837473257323786634891056638763625070258589540000047825048039218541032476405594291804423361072129623803051460712541422498630061855920579973878283423133774553663949670491096528218103018208354914615749554499463522863696200150864684573646501470373582846142207864017649294038139242251442147059626957460261032974046269448545996862817494333965490118567804972160073720603219354051299205018096100657850947927433092707289403496060025423026636727424484652120067297554776608288150169339055805023640100178626463315551222440114111670461677675700572307095727483426702375539741606015842411848517657371973297307537419136427863179308458681411931517947104114711320766979959828387884364487053044912091374308302303463476055348335214127366866607909969160391659637303162093078880013652917831932294126360239492511267076267461504004510487050831976952027157168441958545698198251180303456896181169356491894758948321441540677299257156319126287129488800977115450024486763180927165652954312958498906286707559130085829533335841127683340039282083359471786722373913526163921630807219157188270143534177450430227137533182510075682966013012714002191661512192467076986347625274845569476798075448013135281304090060094444377353390559459335049364140455227676149567565854460514267882388423689859642717989156357523711864944427092265267276166464067701002758124847915316868760073576610193358466554778627177789898308358039307363117317554877928162318482809304546593382948411830347262715048851738323564081343524833188943927834687214699558763959802517226227992101846175230513385729332647795876575361023829115647801263742795900882736434378375488443825677110104145083037299082589427925318152109604440769360877929821809621385621550396927373421053093972231921191982560020182252142761547866211584815010278662472547131247903295818947236495138356482246886451869792769428337072293665428354843293887727893430419964913033116447944578254407698417108813749872341216443936398535837706123170294476372178965913565918801700236351308370670578954626430071003639313980553046986886926421236468685008776801217362155386740998422818615019703434959448470986998332253208087620566564165553392352540472263882553462553135811474067794387191494672633221103913691768304970474562723777131735840128658103944157722736627969092491877081077256322617691015245752989862134980712485655658340252032543108457097145244839904919326449055346565776888505902217964475618409495796688063350242106002341445454962551852011717120225023108355636084363102643570131421645721319478605137355825396014609996229780732945943182716463449299970115389403405979775851740470468821228507220461736126597809045429034964978405794200914494068437909476822368402861299014884766585662542626506948726592230869615103526887529243573130068213657695415809199521825855426663341909949867927087957767429941569851551029178632111065679848510651521220508183121871497261517892088909757693487874690827517857227030829183496844462784284059746765170723095028229484194452385023844604737342225970791949223561918084780324728676808118533880136517221085804312036416777241903235209315452302301108387358473779230828952307885208164566717054877917509569774863731068514558518392317196747633873039242710279615195499943622510804389746132803010436247381936451674146558864207034249160105621870578068378885971364582338285497335471498715908370296992302204413616894376958412380025170219391299302435695872250886367079616996373785857990012647230951921964780742749160046201109227018966929252704325488389604166696056339193189551457245080136212262316695800927233052921610527038878031187396455557298811098561846564784774653359939866283444713839537770867062377305472897113564341359308327678489335033429220089059595647850512625111781980559101998155876499567798489685149373078033559158218841130503108499557498893062617561868045200750683165003863612852189195617988911770666638459452601794008242906868275514898078742641956298149727467198700074716035871734569886802485279222200817590138631668395310821269157843694950589100070195398702497950624176664278102530386298948998279677423317295948446209467516728074999149600243067769950999597210555992300844924865117553510716235508168989889830925786127680391139959594834991217433578439351333414677535837407873577085892923907065712289019703653347850007325589519611283056944233828112130304890605158333123652037957601643575173184196491644487588413040431276320626317136867460960991783107557038191049824362030511424750682989425630987996691430611239428366580167476166763802887234206736202488302852268832662741695221873143697046152132948558216629641642800721290739440945633087747576206277497222209488107741081447484667778270338545285546449997486278225147006860037977259086546394378512251218891008669478876882836993207674818147787207074728584422534526658619742679319697971331378223486047902354539639881410408514288505837332446198867852250022405007696618579095697006362998290253207371411078823600751753546318488196008454307978300378746541345085557497793545485352605001351843036164007326332310495850568713455445198864132286408946431018203887009363511027964427896973706835573644271834587512893387739595636150887363328206289165875431301389222002422574372816598785835028430476463929285651196141913452834201192725355560109029573114616019642288943101745973064646843911073125119956493128989477035475564397160011212760946546072276243144060582376798925842818177179082056546047007849630583267591060459472849113773232456134878216331371903055830505825239277886112420879450267444886733182824912836864036697837849726771284188209942813871893018051647856046175815428657489406745059703039659363749512000966471509829910921925351461852342820033515012425750338578786169339752292577363515043253915965260003154461130294362975454701665716094599144034297227236109190275470117482076124586988827959443892438674820162128612244983891345703504318871818809502404476726989721424121240586651379479294732903424871683080932257827800740775110427280022569329482060755791215486983824347783551364934722039207442101493036850945660408357567575337268481050166488898321202054266361140374014410524002583962578584298873446644316307197118500726929313880228178453330220328943708470065537390150053801381982427926667764122845986640822349059761239780869259272866783757880126480289368293840635424198891165042008764468774502757399872943405473552279069868594150285261607746541441655047293431068605292962573033976827561165471413935486470428736919515463124581596441895808383919939130526248011540387967951878638733526685096586785161650737966645635073494858694897145913461504245749077782768285963214954842973110923629445965162017540304952982186087666257576812875232865241887122131789043439041037935530662793405212884305237531209985783807726380087227107800556208635180399611562091293836269302816212283013590379936330995601829748732267703188772650105214647880492046751661272040894817266876512360970142515609432618559470684398348449961733851133001636791934662472550183110561172938098440442040224654533072780495974757277267301206551413492096806094983538246682002375991750621856861049966854607532239211653407926639839545926865441379526183573960443131269009212113616094993258365102644522881307030651124492076665959348817395118126443838785862599988140791007983118469942023109257344910166628691695401547935129439401989674067634638484408907029008258800643059190609992882733146488454241001661934624319988853989190374648071572893499397268271701829392262399596538272156081330863516786625437016389124500746922511099238877810073740124773308528621594836340745195229849107771056665293285974311123853228077679002083246700090984535949016313164236965996616671370349594278039361907000333217515374904031983537912822203425629350303067646454287691902500954312523623263707577505118656237315886720879425002998853116463703911593714415864025403352488752787853127575507579493757044011854236018094433213840392331092241857153280999142189424660281743464869771717844791688929990471623684459855685347896408030917735925111982502486791833113660344246471293845885441824571581383073757744437207429257426547873538422286550129905186831111044345407601634843970072271260981421487969691205448783263634492342167770602073185143099018440862125934169957615262142023853507839526797313121332763957080210170607095770837810975553495101580155771131982622958423062364166429350642148464144158760563463416386132099915380878047302668158548070646490505281795171228719687898016117808322798712092768383032624120764960785871879809599941276634640382443825839640732311424262801040472420772871564468891564528834721305829672112693925220081562021253050858471226527964811648229242077817467666218728416981389687804905193737001229716681252189351757064735148951044650330003633497934123194631462105962366342956530795118702143817928616827481822781736610650793474742884265282068765450467792054869549022176158535246710896740848064968767065847739730347988282612233404678309983288066183022038342449473388268945345483812206739248376385753148932562907841830890574579783503780520329965430775361456131624070601647220073525887321415291867025433040223454503535828368523036204615818855179733626230220804046783211921475478678245208827127122391243154395662674276593557314609710367934976250651814878651800033535522575607251164707122537002014650991961887785332237684410071060344502869336707693319324211086287593412934155172454861804306752582784980833446643452768149931457521040899311574915565814899631770376090927017657581123881053549273627182752075671945117944278120517326488188705651376699572439086225627090228040599955345021317653146510561200802776458916477555844829779371259561623883557624571166543239457440527087377965529831175868614935971348288759612718553415060893845512766561265435500178009796977923017116410784481680264634599445993738888562625489112221668528628088481868097629135369968924230936912122505058995046874627050697492580210370503411553583072165124042518630306837088675584007023550870314939965620607555444885071074099466228755611091627296346783403663351475495609522022610759259648075994800636102329224135308556098717929033204686214339414340286298578367424330187488023834684883646633917641534158376129681352033089672382586420874783904646764736299468552646866434175985077069298495577584396929618825000352757675108192995691624383909999884203574867997972656699333383173810955240021520771460109256020855675184224157844978903287440324559004387357845688116154469867563562883259437789910675447368199822789902046119542016636513283971839802678367887679364573905879311820192473307152530035684874758397750803331482591798609934914682986283587394847287107408021740854730703472919346422388920239829154397312586736540795476748586542755686255651123905247037839957361968411442294970954842220179266068680131943653656919152082030560903896630630896058719359709459169877683767874435657069676150462683452973578610243336209923425656916532952295108548486802322501038630140464705663669835269685597770840131444094973898915629211552698145800419353269818467096370809926351561042783025867970297580360500529966118170290134881488184498825743365227203853563202808389784397963638142604861654175879809280144794715485200493073544088384525799077001926063468587775633589448898720875781941791058474714907317663952995616111274279412781806908208934972266487017511709570012032789334730954199972525910020065746898507188134036927161430544711049910246415014445198072595691914719608606861827865061302825354817530115310620227533021170803760767926208454251354566875964167471922690962878230625894277072985108693065161142803662912909238278911515117914568104963713317576196185079114943507953180913825025654466501281838916871961872558326267185565574148200288786154276962739711885782390101440708742739603173870818336169056129598896124457226069415994835762287779509217610054400944095009961037058970198301418710027864017122930878801027906541590595166633378060289149198714986844944863394890451673726859247148460558397325417900153162116673941995757280653471170573304475941682167041146776039929354767750251361603009688931884739981699889837657936208091034661997375274911389960622988905082807232366334170015069917635978628024130679165291146873486030570359306017154049483818806579725902261045313155322160314932699341533766913841641759169169005781736848402671606012267739871741171953135689822309134313316241578936247929649402725236365304722774915756566203482454237358718610398590018245833130196237049521908080554944801364538807551394251131183647086869774506713639557328463051852162584681845696374602501891849353523815333564788447575330881896623406541293438697284056248772380713405013041317205032872174772952102795017855050947886345480997266937708088342814043682955365896457330218594967188009863478950193952408441506098462196183657897333570139661527282067033304012945285183952549731054861635332725475415031261559554547760564931598000375866563722886898304266744650355198740857132264929416531857869167803068690608958084995585355733965712063563380621158601761506929879037012455022912417916401321937331598898496470469277367885613966587147221464018049116385582882501207603745061972442178919587857105651642236788661639630208769757059787329436668645654140401433138210034530848013348835482247269772186275434842363399515120465398739082435522971116719629872799473047522186797151453007154391750268762183175030726372789510637381361969917906734444502671722659548231971834760509447059137152821690755050113207477851598522169632749253628218850075650093997698750072670995532516141112023464401793835540021331694213774475965790777906310098932604382497061470970039852567707547548665667280165550233272535707899742386308572755482026841112719073351708279264868652813345159545334460505065896969319726036447105875012067027234987486407905524390426326079453576052637151227737530004252655693610999828123758899890524011285029952950441688008721272155945497518908444871975930570736384485614183986541264738291022875616794405727242743430417006122057010315388815931434960511247189558243458183046080061934643583583994702827741999873892181399981382532977219432550606311133776780104877685640213212921148652837854858915004186123516135684744104547318058290644291259648321594164971635539279748563049581602854407496463432090019023242741089768433824214248636904293466738504520047638839189251722158659145837220550119873321363875566545925237816620179902344142913033600282600117984020558182867374609452675123476914510199788620104141247148014193606812904452127266755284380656987125011090393969716734498458620872311215823394956856256722891105992113808081693746763772365989617758187386305792701835711589660618302671786666305661804987476155857050884213334523095024933974297878376782269352411459912349912151986068119276959264212319965411335469845169405027396104014032877925403793398888411956908066854712847603173446902089239609760361526764418702153324632253327352184360747187386403401951106333314052584933538563679735219650787161322396536793928507442407264296479676956354195073761866464169674548086610385307180668410415052298391484890982195442004509995457693392476863122697045534223355849586686332357084864824535549303927913292779982235552956278339061508070241356885375262498386413789888432283747325087691510342308144196666073605532169959815288685135409937568231361309062563953316930082245481958269000941519179506840360100839647201684014632612428012949303200748021503028187861264682273943215147694145130004776628053855341512875847979047759676088807180292638565217466863920621760793486232868302038102772106778586024101666678169896689699842226225291996546936431118457500401117361656728343873274374286257789689174067787542425031137551653874817043596585192548815730065067320503290501962672954276256141980398377812661774995766534260451481680154748670201893928899219483149271637350418864703301691467016381287497666878208709879282432721190184631620954698598523633560817996488984535533309116807833018905588616437661489577344037447106814112209377738941445455264520918756681910010373632541617837174903674040830835244022686708756677966741713874251155154657570581897146673345263521903075844049201985707958754185807244764086597395261324465770344651293371035460368280241342885143648661240592717034933986214020276839251772569074383603363115340886909722372771481056679394500917318299841212495973659187567859364483228486656010848013268497184970941242784669616710384800078001163114305576109578649980589120351031373733586757779499874197509451746184858604249153289938842418013108035361667297966171308082322060033598863370659395769833883020856071098973708306173628987351941449170452887222577721766353326404290935954376508347383870637292436694979810086731514747845794484364589882702549744487120820524903127091709478090928998660884648466935320346207422765663715233057286173082154199181779011074791081599328525898410036620346321355230397082679958291292154916926993521159118252787961880796938931777579604208328277792746639228932894802818145650929268071437189647472838931451969172733346180053730218031937480759687979264759873502924430865010794610090182781494386397346367637447055873066377928641441310659511457391822992152276616801179135430349168560027229965438853094296414855559403754254444099621310561892373221797088475748454439529099567914470107066977257519616948565059343534552937122787783896843757566190999114723207357607049500984261702781692405648134347419878322956114661224076026787066254898356739588324071969178269006178121083363189747890598660865153094951576374486968342975105158109833003473210982107274815116992167980073833055622881567857581248013656155670497899559231075631038281408960391214223763094060107356902689155337485809125168827158975425568897624994455692119727556180819225590552338627195921759093147936366840810043926695020561891195481174745993437449059001981990029188621708547867232392761554004090325963426717094826779412420967935379259756656110144582117159634523848952569497417568665462202315282040136181619167682136471484959441317340026421280226557738049210850024833070189461934210522717231582810614365845921594431112368674164329906728266109407600408273209439973903172673216963182466832582884030287659021374025822870008818013081063734567926581242229652490505646685267411617371442366650327410960019162611065064098269842343692176645689596418638160535273020000643305407434663956389569589490692603733916015909010162366419758462222405121796001471661218232452105750914579459722972775961250966868509183182482880166699185569910146213774317530114129226719973240857105031489211675790872122490956296948738849681036741651995229742967831510652539256560164835602916396442749080161956459083651534494387967168271771081811299571849497749304677383752465970844618091470513937541837416617108660908808166471414692595157143020633450962251693885696928244430210083963694209556053105081926321547333689339643925924072781614672877458295994392001535298152944183108724809945149535716315844359910363937608036861253330527273724686904207869806852022325687929801401413428309766249829482880649162065664007561370666074595178881853617531737225798117595511401800578549388900041072270177034458389816644414035474497652521880028283508556192039697380121649885771531306074777705160707566656573766230694642336454070562284476814812733570763599641817616605875179338823092101358818078564560876080215456049837779966642298967026350981743458783520116058132366988817481440203165203680228892952952780984699513397454979520516283267533890553557924520845887301509687923771671026167338593841932888969216556988568864435798525877453930148535310316756257238743619519711159364159822555467882257425398716934526630791162793379314152016930896601693756040493050989907356991553159733000121928143238176432934373712320861102599857252922440758520556896928364168690924184682429117295734276233853435305713451006207794733556966998464684770463194502973944785790120820964568258326744652191969016330409972003210873282300553302701275925150032513239991945266915629739889375285473605698058000030801314614251543992462224588698321276250952602533221647120181862515509377952478821562527381566258442159211250592829947324698501338812612944149974081904019077464657388409255323153916058451031529335299403820476888538367001425658313361052167248441284779788220901087491689955253044415545058759738245880770682326900691004231756460385844055046252575400740293361125372583046402249429282652686048745386582801039126306133287289233004644652665630038305817968347042279511229485380730693735846078034215384106742602270421330672330305450659907093965917387684294751250676139717735352129627689163011218234226599527144330127755444436219104554616143586659791260192564861901845547556962685829332601228542234611997416455348552042875278997686037601033279263742603463141169277070824847257225497274443390980168101252249513646460134241771319071603125634731623348691598069626579890331690041638120599802998455797461657627248507553868355848231659388465390211005235066605370953222964760824138892158833258365829065740497766094109762472361737406792228801778024520468314976180891666692945622146341257905095173054522043072808442097465142173631861078785378853702793268960408788604956153108299192801482437614940760279937540309027779646812612161083043027817700025204022421430048879234190880794412840905499736161653222745782326690301424830732070874828125960361809563715998493839161190216713130446510040835905034915705417427882507607875755559346191383262656567894625250007931714690494475263992528108974700946747297740977199283626478055829989155777186521635069048311575585205322122250991904912986433454713010456724846397984038686189273810764811321367984943257105485173138998944150457315480093992390188412992752231222048581305505051880692683488602050906128409987546214975151510329103868629735383651641301502601320111214616978141013976670021255889339534206028517533511863491855778548978559357948345321638953764755823956951076427090538700112574502215539438522739220049591430165464955883891871219830145924820940560004166953915027578483881476959161890776540922755555512736292809582106237086888998801840282107937386124803695062034803186599397328228914768491049894392512757526164746655482934764261217677854991111107378054077044037880352305563580201148446744934834960074959903361610423147566654959222369836130952193042035844407170681219986282440174206886365909206875303507482446524864578165699010641391429425426945896278093106204322084822161284529080987047655841797220521591179187126353753129611704576057277496866741471940695862354142969649535342778212156283225736979702323041864956298576732063761342837522273354635176653825643467547470718221524304102806890299249444010949343641753621528409446078494587876201204720087033453909133622689171818045551628389892315817449850561765257862559822757434252465939609747939812947554889886464334890841208779304444222811847101912108411568687864971112878634714881823017884571225802161652872642392992125994092708778361283470649374413716455559529234542088552003185971448792121398947036658552512874332154505785791747683183380600007192430319736833718729118593241961374013238969134510595573575604666360008245576007695945028538028781879149726243056605875258906796197479825031899811616565062749727389835831405280897755865335658198475658257195480100410672235079565005336710185748947293796312182162789259454605619412683385098563827302966382894934507127805547770837717061499399769441513574074306907860044555636687677828260377946355753342312117057480345889064309502974633088649207742744448273573033035672065493907138867931080984297311949855693080745936738959222994316010354421697401662362112947508520248160365966922925488921973794267243722724695103074024963724711219845749873898435838242205202811903791935498156707563527819667386023103058494264461078587144733463021395813948139982082201343223069446514621793397458014660189802377038905585494903509466744052108198519615496528704832819931640445415436418177852969865524479695818281460160084715189154931526299557063398788178807001579028391611296904237026352714321902355619520912639859019090965825497162619485002064876329842953636943721193305703943179762463035797807986398601226316491560669936108534060785889432658706843368413356260603561916404438212396240096021842205387016750213900093920088237816422175062164616577887088123530956095073177541253589049863621615455653637116313147246830392516826131437526181926615078306791979974254672889156018857723999569909915524695613060621458941976574037010314201623921653834589859379015833099175261557817372089217822080246650528077496729951890191686053753195328767931577350465583214159815576438280199435338441141334974931860049353095866311424659422164775855537625051983354119465756224642923372357503730497744916027019760877562088035630184345760377222802999292067160317139137562460346967040146149262979408139279977902917398956975971677705972997998556855764017803190395973143284632253698685096281881703756318174481226940419711532063468337899039445704766984021855043921047625165711812897878215072619561066099867993617921509012620497005652953485459738387905400984571225251927270248589073028908943050532167897071302327940931755952093597414184292114131984699373268176818766196123203253586021090529186816641042652171901200762464586160042794958027035243315828209394484006261149212559022524986598206500980744965311119192962811570561010586914605369376484439918623077658555137130049934986108898653072773157785706426271113664047741650340464434685519464155781369874077032765665117701106044183042096005477381126491798643151764103739635804459265607015058558205730836923631054648618041672697682885815447636163910466706677929087594405654608522352001717681688412949158505561967532107338767885890345100959245427497539698004902230851809756036529890532405430303970102423103453949832799100522842957506117197331158962097518480228056534637939366707588728965777489300479949195665426598408979117070771546127917354506408854699819496639549296722699766844617081455048312621409936008075055576481317774872802354480261887608278824681938037240387899123724366774955369533099936375049648723026756033288292772365552267774761335759232891279214426042757223576048289393567558166732229798135712548579408381909302445364808854149035215181486686216477187844815320217673190831474870630409482241497066455076170449900293843305171504665136754516666749642580307923603114287965765887199300572229349073607725079546580055099983226360527679957090494565397671721146363336192085704462314364961383580516591030902122517776682391537256783763711671442921016682241267365507821318104306454388829751081243204196536238091280914774823646400394218739048522763932291703095138258135144546126616620597052705479783216864510105136090164250811544031977135906855393345851755453200105378584672048332569937622848200567292282595657105226905392112233893880227120080100468150783620526047961102095505279435583112378018363904899051794533152270053388501114984534433246298629565179555257182803587253431386834180986968225104935663624500760004093763429718477992587188244960153977997453650111293164020342710740820523865050894520874180076237859787801479901653787666707156289081163126928146741266290971829727206628702119990334446296451022514845049738544875795929091822364004087191822425780909642966785091852699347640431079194070178171517238773853155155934902348527311303641112473224113769142296359497172873532288147341321766375177323357609842495279466080460731111569883368347159934431317548150941412223670569604656977998293635515512315342030940843988530323677360025606064865119893197958114966510403378747829810700909815393367559341533558693562634454840947833002237444344242099145735398241787673326957568007131150680810992625426043421847230668863966071186128650414027687349500113235084625905710642782331117464959920938673316158746437758103097301126424781726597978522456488025208862606255859594367738369935774180700319123825067430118395227627788951245934541239667497838933356166725580824519221141363404829866155858168355600277221174692022875615441956608503556421856119023409003084537111009798495948503727938061004364432041144506365108201884201216987256813773878288698411188097343815319183845877291359030033298227932905357483301092939018774555260563107553693212634688923303254614093147290091308068904837835771162559927080548645565845350385045816240474586941535956736187250991728374677392478343468270952503739555108059850467261572697269663092510272802266661976764535658475209718472234301482343789941537441520843749239534389569713569984434772104374534934979096140668198766440347294227198222194060446447471196164596815809397065998939611971757545292086967695753204346521071791750619859169968819512108605501035524065828994893967071887965577904122885469045760867485533348910597991070987470669956938821923564166399354025609976230250858393016636901755332196362979398354669467343645196285413044189567131612188531440027893860993710437697138051914866105350633688131211199390849382849459416482467274819907424114933740937114779037701872754644643193820065743630586081966763266703575403621473424405669722318278571330594721323592444082466464047794762710082660953807014083511334727204053387149076436465097072558453444758021194662896576925652899110962706710157996095140637897795411049555691881451638822117480016302200527698388220716551970843122907033993165918414512706603898331960203558035438836379660760249783164267381856190990374342875814300276938830916038181831039899138387673329907467975913466931893283192669768364205414828114305419070926243905546375401436618884942523874039474858386236056810085244178473658191330393054699992503364296293299523544412150391130726357879270407122203221938355292956373375908394110049442337320334170632664412368322774949178890619477114898842144226357285424973562942340476063521447501596025210251843940296953045080386283002899967260475637350763554864498022012179124861848704591309203695548153997436379852550263146612606364324737319990692627252823034032936940566405513075915884993688497986840851905227902977287179615011918923832481783790838553943178450925246796968130255038201045214318261215051245323680761083096534623248134521353251175971705317374241876226190284554675168621572729165538076107509105794696748485399637935491075050227946366955284665081353945341267442745251470881579674103374377321420941647723603576610801166282363395665535400317231858281675478788547802805466091792300079305715505655449169742443060564903846280120973436369067773666965463165046201007182618502151275792354142713845414013764306062748338476164866548653258165365760227992294321680741160076495314906463570855276657788951188422291482603310793179234745069588589968220955100661817432047126603148703343624412918053750380250745772673754571249063261325216174306729762563484527311019306925423171344570437772485929152638500206663902506653853043254675485241219266649708144558517310088036191876267167658952994712093389641846735181298337998760359394269534099882450622273922079809997004883168575841646676062150665649941271760061495249873748195407620061545095718840992191917395343496715196997898438741755792145421455111614652081993797280439552336532583320202868301814352328038706831580162844049536122606059427684809887909521235663354055286967571492363397997912234366831521759327852712539106801661828033843966165540578966358729008897284146087414253497796454817229184733023882925653008953854180301144290326725427992243162550436006827665941608616480075854826890442095463242752083362323822381598572858392168250655529314715155024843986586981442591250644411420632313341797274468626157471972827601933297382389799755959892423039607689211422803527751532715841794465248619707975316315437923235656998700966933747392543795088871774484795407030542001194787675501322064102557509986761807390951826733100297150052059489930190800476828779252824884002103111279082937542548379923788455205930754228701180825850546124138467725158972605166515714718063907113571782778099544983741348832313394953063045244882234757813120485579100999732147694611891623996557989778778713426908205844887521608376086744201780138601271252397408336075498041834718013266977486091738712808568876789246959827855346779825488597060523587349126127681089401104305933776413680853889423730164439681013206839410795507602382597596602475205051345236913605011576237070553162346665414223922751808097229057973384856533660094835006084635922578727429356892462587025440497179367669185056681662092586651115964803054771955816483401911327089354185447897866748797076432137309255871510762674515697997454889682704281220835375012538828266912872661285073103393710206259734947691477942320165608324073257569279394039370068670318726771405159426120999204937113354178071108240739457291209655625551070638084533148853773472475601386338901453229169484874979443041658269692824138494511194563212110186252173543969189918824877679111203931367685061815346036508068857613178738605987637344532721408985712671267405148453451810609698581909680740555564077296196764603111606584229744389490072928443723475795407782923624317660182275684221332229314010543331812332881768785976277282030196316813053797343324944075341237768774825847843562084760068805303971128514710659566047974777913180029000585883699755045985277936746798825089058303889288521530190186883362849428574291418227061380942570245118570175784505827036451929698502996198880951560521288827045353320704720561563188216386807230040756906957482314573516514219161088183927630117440846279349300585647096896678806083285218525812622137200147164094749628269446594322902135187544735993303191977468096862793357458126212634455761448522776799122997681809908656382236111940795225155082179987559736932146022913365300042661884070279175718264717101974086730175167124924140089445698676009951638910018487783290512353173468728588114474308355609708647627130432279350518567693417367074691219570651302929572738129552569364486558516954598914824485698478221466680336277163389487437105629076393797278439346714623952969519740683419910921425165733865747575313027748557015546637067680085120107513367908609726411488180655507551486956491615798712549594478713547271180254022752039369157118478595893723779602540687831202654727209609633649901680373549650764244232021054470508812567029894083729330379254136054757363289845617264437322898940929356130382008268639301732529772709635238572854954983879510232440227770297733909577655861448165995933407168438217119632283547989330039879307427142570760645057117743947131385336151789632163354340997896993283447982603987760598882335490146171571045197135308920628704810240602441558497072379461589068978713454006495038859167909294252371488072813455641677009783632022820077221177853831667094014542157139855673009688289861605690999811350943755874185601429178059003344164049328414746309523996876357944399901347674796472711643347440878023515566204672834385308893472669337863165262489632011856150044437425779265885890389678289989979153102762649097113432235531786032299971365207619039382456673481683824373595029849357761710962704596319002490367101001891617550449691654511948771810395495294163606406546025857326791349224649892054061511019244487050922451191393364494903385033961099571631735691829613253843467011063575583824618649560285511280922355818969152568174470568930503657505058049210085243802153028830340513825913979797484045247647764667371524051462450223422856536684507174665171535806881192088682909025126169324632323201052112037612025909159409754413434555805066623102497037360774223751511735805570256034403977921936626700313823623592970382903848573165381392491705755155952592665176454472626890381295027634079994756278614738335770828068824176674286697464438466269035525716592348826631752918634612596854832564737669701071347700403516122479826165212791068660786431226763015744087797227179307024952027570434397164998575699680193660502096936273821063498866340173166914973294210528324975102606442659504393727250811900532389912294095613662125092243944749715657071006534385215430134954730670428887398940856032331347533564997785037917563611388781692981270212917797119429873472969132090470524428993600211051340219860377030273021405947736827888387599695341186849483467133111500266799532276183095061191784616115799593342665185032800968216279303583201938906827375523176297222089976853483443373549383015140783397104718099013679741315118600583803428269908715864087919514539195453774624597786706531570662039922877494954198673992126423668082177405348447615205471043426042860560733210177150763190023233520242442209536485454013893759860447315060019618207771007508784035331575328031062717772352867105117147759888645901001220861276537807060467118268860683759351885261795674194026586536169071586624544352739996736345308241933393105070244647127309428002625661085996960604569331974363109913267170327826917433960959385349178734941617490205235229724040715319138274080470482691024771086666504053803770317032843392322821750139834883150651302530072313358842474587199836467953282992144185200512379723712216120688505219553160249240916444721173899602525882022466165397555459711801851160047015533830488248167107188315408433446674019705731654381948138598230535877609827993483387910335047423776101142243657082972744970140664267743427352081979623649013908098383947056625156680936524841043094896144546384745200689339317654102837099504301031718535788357417666802417050345924731502502038772808353011096436211863144888895554093868905671327377594630190084021872660777769422412348391842722444476137470167507574429307395782624324819866198654275222064368234919871386334176796771068438260091618479792673285463646534821439055022561627461270996810127355425328549913386788402061265427574022569237310927297516349860858254988767223462533466947383229804556742916094238251749501299472567960546878680655893929280606685111042356455627927561502730717054652733534437613077013006594375095543862844776651497666145245744651209773800181757993046016524622004111863621723832078773744259193517716139761370633149437099771613077293146473586617526040241352428413890529411216613074734110322511668963560819100454650874239086221735146957625708598623619737032050393014744723680352726709565874873044049206010990050587123727806784985553788114945129481903179218154900279200117985058683748475445640735159727762603113830103142953214693818732810379746943164200856625876919072408010082728816349714832479748622291789655895063380986351017295070011739400291888384602371583962963842940109958878352177853088194092321692965534316391298842648366763445477456701346702181419237093906601029910339575606494347801122196367716732705697534903381054691593653031456131473516752907474385190516608554258583417155872964385235951636522476609713718782052853899355022395886423572619899008007631696912663469494374410473292228668847366809802182393755057179574874163915142656540297737228107101199041820827926322760705647355581811204724212618788059140938809431053935856545443145659511928872571948929620966177231316446449595215512265044113228001210752020279926811805219037078808728590333394502859484745575758302063257924147611309526619471452105085270631169898838206601718462866251632252010590876714094724935025759060475388648597890496586478854193187807702186557022513724268614089066696873290722982337330897589227553058720684624262692997450291440755133220333964154246261026771797790869562946408745410875837138508542028250265123528602790275699721985093418933083815365689472883550524982707844713392197539076410056120135121693525088390131892600919023057663739442778974523079561539069778777319441276983713377608944307970371714686973548762745782613062650220801263481110174596987746660753964377966059247605554355670311036531759862549094465375551280398558298255303285624873897044425746155382820890012891976240011593626854823131284337028754290622666826078423884561510638899375892664974576579665397435443482113420490388670895940366613066996744110598341195698101782930736137782849605939820753234314677155873101511848831127565973610503621939197557898906041329099987526156447672802928104292007112876496195773879623921235059141838949798434750345291510659339761137026365939308772636147379770357038951560276089200690735695913576405551932410450642757187284778450243933799173239339209443505311005446101934632259791693346140113091947442413784620006898908589141748507331729972680068455897872365433348045298898675084744591109703799382868596811733257054493221949648313002666912588430367725609701501830011034873353802005245963425153449324536430437300932016159396832918732793121822878925911590396150526305239816024886888939984628996974104624581920588953103181375094009258093184224416447048852159542903549547909508922638154475810980183586529686567569016215489811987660071028670893909917693791650841693257689187110148975865604877875670559465364951409117186939136054963486336147827537195726046475535783544232156903181984985763212684112515699369260074848895882907361466907209018762410898525192369709437908603623319284115212269679930326690120779254779558551268972142939197664310701532513488028452230715333053382522566699333358151854697120445327820560888990764602108175484019879240271882624123785595860386184820496044388656551559193843106976119064170342933201666078844559619829330025061918085002886260806771371305625386075224195185015278835028687358388636969531618160600961952536355946723267157613401223604079588003571479190172480685957669832774863930376085501646260324789862630349953148020162654637367577993594372213513447158244667939063034873731650785629447417111624176111146398239573519255127946387589475901060978562308935851644913631250025912476169415768520327617941976649386255205707702625821004143724038461926529099404122777281293857915963795703154506199775064005144127664021551180747182974262456246705091570193851678940405175356921761907939536726560585407619106169102796049867328005498992476594881102483562760181093822540432086251516566571623108978527173813710819969711356624390623158877475901059206510437902020374179000129740363123209755703362603302352514978344766512056286925141016126941260966670843991401465977611848308654621436437238952760868521278665034884684752279071212667432957723087994517315174473248502837394756521685105199858726734331170561870919946694431456116790305118348356058278645085074318681305312488535914570479478775377981139924449555855571800698204630777641180839686895339192178941606458894201607703821428409387634687663451237847364632265765837129000248143045342457310918728057121320952887150029426802356475103321143356293460211808007048104820494677199656099747003245880844848088757503280453617914098617914534163493135571768252112936422493756444999204961520580430846404080379755705154679116139909536509129965779378503141699027902755575825822658058702897649724372493729016207191885640615254027369956490013605310380459291300449440752531490618873413622647382512921084143557494219985178902655341588589238630872462544583413570967591195270724510430102216369217135949308318596456141618117894324960790497940617236229054193315822318305786286918680229137388179792984580860846346955841946589091562666980961827512703430742370011857898713821211945136636487078002525198755369090043062350172505962907766619576549897216863729482232185086012401267302930693934814785985382459899366078739469608712999638236912727396892285254088219641304995318030342325793352159386844898402275886570070512618505635671328314215297554910331438884567734409833402287951348621125481155317655488602871446112957586891283022681746181797965271666828732269060892195790705185789777285098586568784001140372375973339511191460856430712019834889776878343964269299032855110703171759244974326315281250877451516586105561256329958349659542141393655772327624122388571220520717220734752478814408531364595298199139410322399618807755441957578759519968358862694875338015844438036611808622491914489637890922923683846818818965884914792495461591735454449035171653613408482391082015201336144351192398088918105469409852593298306214414193722505072422305648060401110916309510391480499386125787803432984080871528741042106472555512692685491639353622922079657293651011473879608951657435901984521519989625049110128524880192285625755850938249224613361494960237682707072145562247085193766876923649172672161655512784436995838935376647815046513016354151291799933349651633560544020139506330512630132721818653387173687876947070164554300588773139156924504273078567585970183699767466055970461455047364333909413707113089952592722118088420392351458421555614680136103856526118990712495533106188885419822592630426717027277796530657739117373458195810559670835320269320642757954190345696937146563270511894508972178827984021247292061771248539515516371002719334522299028662958132125785874439299295932503914910614886475380278370753353044256894976967788519517848491823702297773296503644549711612808643617006777755057272407591163445021388392987952610281420204221295348848799120617376017762961026457049898119398701555876062206195188430969857993025394259152421582000711147339274760410678354095826776386891038676042983401372605915367222440347525080928454351281763273222647206770436533149102087746278305280177903591199556076532261004497347389723774272722890665255006626250237619760287735456578015454705236615745034645960940997274443260890707939608485438250867706367989325917944120518351473760273506674376448175162953918373473044646725793974689152150200992220853068200106554535058995486494103226582655373620932850212638313231289024649402124110259056555336080818915924512399856701112818652000537463168155360744983723555757199861598807210467044586813290196976221935177670660860405291617959505994743892675121537162974224641015561402164308092499244005727883248390758777612171055181413512451538674543625917578518707945164314932855513016752470407512330265202721292209409089594833824528820127923810466117180810393158786280195142391382473007358064050311895235390097311421391149734853816590438884623188453151759053659695495974471000005692479406318234090851608436965653403657271945389432021916953654703122245491305494255531780979844612050054875781722890249842303247524904068960447626755979012345537294480750087778380039710069593748310362773598506968651106865232335844524476742659026628019615613299417474475436851260647422776873384835436187998409557617061852520880155076857131422328876466214803249878841546824454905048255193707094317419440959219984197630253356193471299557715538916576014786291038249049566792011897215301604740184396617597914787888129688004495263662816441829889598268051219411711243436902768674666475321084698422096102956561929916331702199905644191623696342273926372346859758130769327128912091903026528646913801033744849875235152389706095461644679657728951001738515370062034562474594520600258755246757252231550296329929923986739805867874540126386921385250906600930121988062027729733876548931654134623293913897191068493015092416247103779503065058650542491610448327646117936067982432979641021691811496638536147114633191585956671109281183614165458447656649411033078153901493408770740984383137580909885020655706384747464731714809692266163273338211606778028624169797238878238462910717996850020506660903155816026386047832948817984072043098531138529861599290960011543448482044110470729988857625539031090103710780435918646027391796424723518649453644714749578321747338655070619223461301831615885598881988465599264498439383745322091391724051291058434267935099389086836049403032952645906408348498672438724198757610988628782533102249631561265749166091803077801847209852270084498726942899343353539171520988892195990706381720707398520419663174897772351796803401596806715567738224959337058833301267489037123968230028620541672230356010462691221488974799605930937317715024074753700043072907610088265115386714298552908209454568591692029968509978158775994463453384546856690222037435723265188426914980184416426753600879807539655685866375715457920312350276701552500979903871831531249778113110592786984038115281035889472702632598791105614489833669424464052412538511805152906688732698616810608260000900754215028664437020655654011987838395196514748309094720011491027466844057849163498128620115713287550271625245816261806835723919706477255487122765162892861313840769998507651271131383784828728566280991737509327230024307570571978610799095543298908621374561180954497377547886849289847555554940219501581015316905442793574709200763358645377563665810020091582604706966489795444477313767515314180724546048590065508190029557249912050054636938953212396844271206637727125129697538266960927913212349962803891136287027951629005218101658402412498256752590455142381637420580888137069979635630582825753702677066751056239688969730122893570656985316427909976143202655344432025611684024682990381539213802254615451490640960515094055862416805108729501608609951684216501130818076503044407015076300851018540204509896848277440334435252484829765998320503390265564562226528140711664629999796231568597298197696678835284107356671054183599366676019310377493942502708232379051627920317729418332045595907319478488083272320612583272642195569744281457083135830728830160374809911789563612165893238413620713498081254787197449764343754679877736761280975199997930556694994861285895190906561492228399153078147910791416991486595616753655085433723085922511339562756058935287279370521598944319744388706829102950710509933976216757807090305753945022001765168340700914945435647843764026412666797859243011522160335107044055531615308002348630516004302570216436113182469692083813680348939004103756618187160615324909216709717761649125462942188898531352600431421194308649673265632179257060611657420107340085325585217697237269712370448719683551028782822383853588213459174834102185972872839014620561242205757031197685102317326187784740168502070484016227154313918959921899923247312090814195733017612848339970516219289600383721526502300072701368774382578386929403788361248925170137227621703738589180815140426082811717102762764788389989390025259278030608184516927752527631996457116124148945935579809033255857869224858023440546137129932852733738241458452269066465004741263291089495940669052649170152970358338227306577113865269257741109978857167191257489307507436208461217013024098998434880713721439532544962668281628501737432384856351148902862803202653865099902502623681889225645108283791907992548196483267677407686552513221295504644598088842538989763838590250539716709783453292218052886729180724920911492513038238120076078866827049804244994940751757540838769064720832478402363199764113408339417967437326827983067782854201038222596757560337925033204772086967826788228019902128623083866984184061829276713162391539810777864938340338838403007211898017846724274369220415200289954725401335831732271741617686200279045841601230541043146603625854288351162177821580471306518295436416104496962822195496920556559621268926292854503729848300042511077019129541680107487165307930956217751824889798546984429396490636768112833785594545049974276682951247718658557042301814489448869085816931830191968391920772803785573798379279567436567686290780323658442686168621964756075329749555232229391854277986896939030260996819249554218209220983896695674165049933264347364891565639275118328071361295877588113689612421540492050447607086820939963014937209384778819455772952407447347632026230069066132951169529254637902560939144978194044593067835314674999909634149839682618338308929729577483145544658261551866082670623532535506637364531039612016239162133917937386775612858755401876050357162671589734973758791537773437897056242638487322622818583188371147894063166326402074653165867411860228375917676466874643539504064707294647492704991535577757397245553649005784528349496823078743099488327295889940950157491303869554443315480556680756979102206782754454085077763419609008684824374547673454137527543736197644120494295647164321232289783237394880443654037959203911815026951659568692725840474054113370673598276016920901176465951847391955667245196353620742396760436698874054824429817386145161096334913595104273518464917720515891854615141801696505143620313986125269003240644196085848576972166675410643529757206043463839623896090645583152796981674399133687214602617519178785693088612127762149842044253373626763255148036125499649232763812257231403569989538327784530621448962310272283211683814649733954498128443579914123549567262521168640765669466108047923104672307559318974491783623569581254791316219160839064508621366861223849983679364742991365924754382556722196181100569828606720156754080413121944692832876736654924536322136996166041874558259732584025605994298177777868579316072819615099448401488842526035029976163318037468961218523194565029837617646127594311075890962920140303459276916466701276581550007195222640561553016144247926200474653075770790124873532383859175677317639644184938935261417586827470752496741829794852387842018316615738891696308683870093302250835856128775242957320857765420773331098589422444674421127987802998960060508620782906599896992099317815476447254167056106461550888511628201567280464627186350008678593576086511191659949079358128365408960190139609913581472983476744244308838786946735648739822990529228715313559512514649624583994824367165119085990956327875917490273245483871513564076811133549862722413542521801533365254393152330133685782268024401540305058788839771344039229964570786810976622658492264895378358119700251865684725172452557307002075498202334196183167661505447417059079092728887843513868221939259587013657924906188216656797255369048630931315307323052165762082374069256565627005227755640844376940889713957593658712034912786765546370662203762761223487641217695204825251128437391567353001287405360939545694792748070197353864129435343541949772612351979379740791914239272474354703410932363126842775718198769530126666250178456281619095479207985022599210441670832128221344836802889568105299976903312558746178278790702452953455796029769083020555762564799785843405640792273123882814081655031551236209135951857816256396127301662437291771111906049019715382190781695894654039265985211001366468003835344136104772314986643196865734152391649019715119810797405333518328002445092767734023386021216187663129252653116922073513477666536128087365574694562642854881527028056000107068149082030967569701408746736090040338140949349798607876483838274613949079747698115145658902555876539238719988922950211474825610080380411239157433667102839814077311270598322220964639873565037748699841492117408885148401682537032517749479946065267620370408247186241364832671324590634010452562937388464705991231838867688315769753055940981045417092517765479091350635495985775249747735816147493802277800496432640199418156558469625824853597459626904769557187814889216781692345419684442453729653763888783318201096884493330835173408382582726313961486088155751971695299366548889699919562649399294653783860856254600240647517432326275214152804370709536981609012619591119760847766743562087782347020042907586858049010196573997059657045980326674999594819545967764009616360570571035094869909327272020412501063658576307367295929274991275959967221491837919624448768555262177725000306783520029604209068953349710388898823127790630790058423908186093906117584639285243470141808196998355283921378184283658049073889060136081641106173649263610387067563390395377432276614286527512791875809181982101719477667026139229965069478895983837698735275833334555806820479615457164817842039382236561998601944237965100683026688133698501157298280581655434769454284077447875684547487739404641076833660215917327430468207157021696032427221807753845520711292156802031940648825447473334246056282178401752356007469441093439737665907613999942756111853919269467822098663061666865058241859753944045843521374336194558503142529291429153127652637325326306523306247217411828300584497699523976833228702028645291798486631011522563819778243905973496966335278398375742106110418631904986223561604446692198890267605948267533808261317076520447529934737883174572371929506114295805112377340307015043415548752992184611996934765966811194363238999615119722173178018367855711874829184585999515799849623523474852138225081051170659106593221642030223469833370031759863714050559271066690403582639865542676629914299322763780872048181784782171655789255131216863216954985879797886767129831029772201096857547055225461680714775030629198817650710404179660675579473050324746332260031896848758924577457093108490627307384333357812845392091178788086085689561577192524108984925827546077062802436783793831962912773302635573773449773730916525465410271414578844358736636687195570498429576517545548453817261685139884604262444096403946284056396488288870443313048057697999139228000076021763848723033358906324636236071360733926034243006723356721829183425605899081282290921824698430674669961308931050139807425977321952395192011194588575100739856371910060951113023868531036945593470109309480815963638126024552354771885315376068418127511578918153225242055632707968975831272012821883866543922932060933368422014043467760115902188180976687104993163354394679821384795727820111717815239067793314834122413960828689252810761565175931978323252640223640653912538643253772758696974506165116056327900916653296727591217821278641817986129336710843567851218612266383106843177794978466985151165036954579406447882781016176955053067831595665132154418556545207972121265154360236196495717570861965391174710146027563934075120128728249944038191288984557085907464321280893180199195692055709006863514529591584562187847175975919832647926629857126615585386756290219538898212225722965061946478113623184966195016420053090823810019430319421176067224463680634628215171372799778160676296369488455089786235217582548424736009436602397697030782787740561604519182108886749960898642353045214939465477349604639149133404130433279433833749388373725191886676062521875100167013502069553017360988269514914910724940880261346217033037594178719275686303454682848530772503346748987813297002565645132887527563657781333926368973478038131637939698279810055967608197840672276436320248322030512542595906283972033717687058731011760448955483394260288781291886890098550826325774515713476148656128257474692207336901590815894762846963092400537216073051777994809209000142272856801782659881744514868115441391578270977214736783278928260140346668826417055613890190493118942060773948796376424133303217057449862320418228922257419108621155556683260314057209983627002680342685547031728524261929755388816934572828615477676412060972324295363169438742570760637575938653757622978721119641743363396423828592618064756101477149675749529478072010092000569164249469246049583675083344808570351570237897206668340699507758153226308736704461012242501712138377841008106695075489617270045184864423640473739362361556537547845549223954047684568972690223467149285259815033262313099349572150521012657669382680797579102551891946148638985264445251703144712943752967082999832705446130498520283648694588179646497719579555061042309083873309473192623815954033596203279045885754884318988062910827795464860771052347841359445172889712337992304747604404626928030991091807900833596496449321399176149008702792556090628827162853769379354173880864937301467402400882016078718225086039431525765051486344043453767400312774665414805513063049096664913944287108082581322738469204999543297237237286893921252122847708889579716111290500052934676913637191440830636270085027041609350702222398486346802822173590899430580014908886092212866828657846832896022725662723954623806310971076703157577870253731388204103353315859271050389397004386139196762295279564306852911274562241239722269620369745822859039877856791652633684115370738452281660714092058494203816023290566807082023043705058349851759221051122519517743047966215056838141306588733545346726180520102287598145287949907913812138354723872351444950637440293228442512451156060181600347599054315561434014493772073032028242186814100419320830922112992718317730834477374172528889821891791234785472049350961253354171761505424494203276520210634738449094205739659365711935303398789183207555463855772751793090970664275177069845023930526391034187247805464540029499015271525221196054550673018369129371775731672344018438858908879634207723144078275914662769139937382165714976256533879748728552781591338904353338586702991164642790051881253655114762248363540582947046818035977188939135296127782841279408722058054640695991281576678443540943234194509869115020822907873708061562776560335667014652752240544404398423070313074529942116148048552797961439844213477062719369930720667827932379045625896718774098718082828883192806008907091428387320674056310174610152888716551523944685745462552727635053595621426089694587899419427880889927766850397296229280717789258650475861202545179611988702028882588170905309514095013400297826510480421453053063391514564826165435146728467788347976469803154019023317406563709469030085224958627074762906868078857676168941734197261911871467396667658468528306890604607476505186132008409518627924943556958023270927753537801581558483859211886075278778583308793701144955109588348269204966155578327555658600110455635838852871754116684441112926963601204423932364389917276014049724299021954814530594409105507030171128205530248212086695924807370391120060170866768533260721773422114392801791139587398424505085242499668227311360004531179256885938050161244357326317787944730731955325643257897128630520654899976596834146122269111416843904761625357324566993657266005558353980322296740779600859947569249004121477605830447182956120130466279991912369865952078640800119835565498350038463426554297715167063363589635986067235451143109789482885981563138734910034401761188876391300848275712686847780239508817611837242377024017103092943972289982742391362598893020155726768432131010753081782214504738706052008528566753396609805059158807799404772876949160145469502141970787357548771633082542409480323074111300419377214993545628987767690397951515961066083212676077769353725967350381390727845130942837092085474100059830194872832616424879313614843079326812583448660658574921706065741133403032436878189204040007824364244887948444965709398243595471830182259110035426751934295501335108305709173068767498765559645504113134384172422209057999922635743865170581835109328997445725829940323146498777515376586075338071984923834543790875083458031535878213954618030885223808306703820646849817513570216924426817341745331124587617266311700491707494731312287480789236658486835328260123066102667560964887667254104323506137058872537584269302625567545171580645443757189240590081406926637708096786781376213316887811485532975767318773959536045965027164991158438956616663435100282722073626800245088189691746008358478875205721048455272680653961138054546864623100167267255299815072150925652380408254398854144185578181797256614468719469460881720736552555141277459155979482144622541515713971346507332655039387978334626891276040312378300978698394262868770378212296267643477108874824711211624176266241968043295888555217128647621218106368018116567563202232450807404454550055774721340765468135822096784107785737027053000459251026685344570816428721683216639801918178551652190293418251644346872816355992913715704434017118252366173641632297753317349553639799980531167345428375710388669117299148614461043016596196373412884588283976604610961093689321768222520177410202013960236121135456480283011966357423851231910444428695023622128526928801508445871245767600010029403440599025461637325616622381671612543408489121051405497942047064609161850181579484003063918235381255772302145809339812386756151200245351359906198772612254383748964526293668274296478193412609729388369710367005961875996120908484819668811257970587564057959278889929041390657901717283253080382293038946951871178803339817003219324833975790667981028313859805723061420152006359510723824707850845696493541021116540897526203678497733285813568706661539224674502520422868379357774731161031499863730984048179197535913389714677667627038086392226903480903484122727415510868613766827367240648850378127409464439267852458535218542984261101830723243892881572895825995406491906250265578687020787364350007812534643389577629670979318083230396219832663960826407680691248200356851988988313674875271500906198351471297952106830617662032057579108420598911024667881464071369666587262570500807239864119807131622777085515484325146849682760764173957290707574934529443761096237299067405348795156735064645284471762453026464657495133006843494847562503292108637957066389113917141479910436222081788935132889346494427033991865517942376358578661592798108186471766596470558732869194998903479916357354891978940477453746967097683684654037908626507983094357723227957759201991106168668200805338002301699638505301411706498000537597936826790148597655765578570999180300593732761469700355349065629339685934854446835437028995963796056942619364425904157172204555442734197127384355589175258799961094875920378581175509023330366911909474500769642914529374050126601048983769228436279459458228177749158872821156164568483915277922659212121615755498543093498564706155649262063872617838558575805275619338159507906787796080165646804960541141486592196802758920391352919897577811456119429817605274339530518220847443121619043932495213424583958786234212119799127655743215202069230954736108937885446790180269889549948816548598611245182604918408405787272008703901258428464444293347350677992947252292448372928805092977781040329305926962884171890602942789765377298377602295441041673964525536511968848276016947809400615043057492514309985387174650971381677781997788652626700991245047777511948052443938297414397639838947423494125443212799941950192176714370877153201823414880240559581557687033700291001897933610325730824039493410804441992251940331281298888692482939295779090187556044553489748905918276644257889189184250567379504950126946339818958668329128245537255844027277708918091575618909050843235658604525520227289341503338189493037551725422183209666963791612131040824376490111722927490769875758269605438954351780515008870406827375139885824807574160464691782684185849804828645134554994826335861377521517816912474539360174030450632246563539186499647852530553057719580493383140397545335960707364113840672186785595051515377222906243584361513199109242610876038049962486245485486789764944549903713516768489056377872929003804081472673833800720559782591994322777916237958400111447740156457475038603722672800807742721212324181511539262620021254406685844522850073990326010382618677082804522647516959611677407027739298635242755085830203826669633633052293963238379572042326877313566204524669165462594476790909567182967216334048747816973870246564213763888394115840131101312997146846237875478213391492660962592939258871687940390326332457317765436128707136579036568864251401362848251565373989934656971844525818633904557535173546592016603093921105230763711346031657123649273488881908102208217372243691445999861757327338922661927364799017153620839424603178848693461936923849161866195138302237471857123853181093534466788432984423753877766277302287543150043115716598294384033131594648031252181094423404373944736902535325980949292146494706024182674554749254111630872617326859677167870475414195430767122886553620501241867498164194623853654383753088061503556492574494143224200006285704651503840702432249855039633520175421361562482905993154454950897613927103067496398564879828669618215786347340730250707469449514030613035277826373924093670297558809598173237636608799903052866256335193204309055852445931056624274435077279163651764882540376567777580184892692472492302616106741429928450219236620943674421968739667230461686718436223061112494264048466477684534673978401073439862143222917817618075518371774301311282691123332611541525683781396862744289432731212862578624073790688843714953327950184399577880406347079343360485308576870198005915320770516649749978688656416178788202881804292030116431129937875724938137634906774341753997723178272296397610699454217342823966306801452756678167269681505024453750238438477677391587822388980702034365347208406732126412307901369744731658612075189371258668874033709693770793206318136237188744608083018862994745332001887039245911762084116217010655872425075834202549893756424449147916334390073704367845269969954154999072084367729774089108414583405951994995192120491765952461385869477028162441096479051929714828287877561654607305192073572100575588530084893339646323922947498984627449936563768680836784480716643178626306150255107084118631671690305392180497589119792290811530870237736421216309434932224819311291931332358430759151136924423011362317737546064963041059258310231510856305035113480722138502588041200607370919908232429565179302173604760479013772957860586358284676658640750800106716431883566497649133859902985406953872012921038932887557073921719607284541557564096071984792294329632348768255055374472126360514919835763742158071887006988452272247789116640079694462913114569413740976141634422020638930069994553610684140892285587025974907297833983592727993420828645573986434904887019931612162047404369421924127187247727232028237262825148215255911037080848386136456436307707848066257920331284123467254846736592582560265222526111026264957179742270860560205705522218912772364372636009518198909515069609834561196151349665854283227021553445197934828005800521185450265472223361573409891023840970213156946809174996121354438167958296636910570511866801997630194558630526724083012529530019695595867299566108164967583521027776017721167176661381805866523892549720781715250658357424735226816578952245261956806542417921405432824577433856253904134332330372182550917011895577604571366926438282919378069740056962464746482146937421334708651256895979676652021821108089438697490927175183268766304048002602339166779898622109701786273365239785243654559333192791662153115774747530902470122298916870865797288886266980644110810153047326767124808051274298125233527387201215377581245346831013960542432750859653190506169257937496105020535288326425280893910225879320563921120992311115991621932078659747545383187900178088530722415438120111960906647344136765593087554885730969473632810580584794035845883259307192549994875812660655072573233103238880078893945277280061886245719201738164300781111152302746482506074561249307696421918034263600496057253963132287204450952236874094900436416859005111448210549073516252417546773099828382282590424930852936552162756821836722600877679393954550696975910367522252332232018241497166567371173123183596420089546984682850465308118400940603732224335587346236029147040585047382261028082235058786596407659063487692975208146383490377771620149212222477124534588554893906152547798550581432535407957773769513311623519920850782888005730818303830994593170753530805321641865651779657653712416827156642874770631572599332820078219044748299123104428619475489060485473692001371390467159647673802304451349525097508358506742603831105965094993784201568751769779929636853437265796932757885044848903599699178321196347434253480870407971004382522755070848242022829944470855913916378218031254127168098660982562066052250706357345932013663769065154418520783371539315114021676198808819422884488252177073958280920196363179339698264583604271615272096904293126451214262001449263988951500556805557228637591912664660502589515913810315988322597278995133414566393313380776540126245116729651008025255546356618793570360958421812033546856792226993734552001182202822305205315120394916944503740638888083282297875653974621772422424491149964526910043849654834089585576099273366930924941716912146507235533675327224819568099775800202814808758019340089693774797997653998537708019743321811753482180319101240200523980596624994617817557445584370285004191972335564638395938277078357446424036773209680125115116169611142649328738711327387336236877446899075934460763708899763695929479027018211383319443565841732534492489396790574781699756107925723533289897440961419536359835150652223428015241058438178027251713279583630309517581323094743305171831768713457220728359060051294192879718543837727779506881903149576232443410751402644743651343972450527437685788621522727366630552400782695486299234289304544618543723816835884267216078350124088596737896214542549205010288006441367886887106714236324422313415864560076110356985548059802428364959743985888257633826785269382169795727318627886326484929796279608101178538060207412221183185467034025818834455937481783610436449381642010287463504204235139955472215700075267843989506259640955878794579940742048148026206958406692630576448805140107687767584058346902672338103894648018729162998715419451787737952449104440239663029105283708287157882272730532885137394466552903948094030574729722512854404908290026431228002486481748116063233909172476028655574138889047437554249682419680677975618106664037438543498965876636177602140413233231466580063065105254106316085018427476913790354668099054750545792431909542908799856064002996670220897002120050058282957961517380530247094293633911372082222032445934992841027903309945817110472648872712098975790693452684937550559496632739994127621254804209573950280419408099943793660411967416350527798297481135367464121205321461285149784644334834070190229689797441585959465160820748023698894550095129897891281793150422165927175930528596018410607790860791450388329629520274306188310046064025735010040815222291493950297917063937202161616619541664905510910314244942611180311348094307718983952993168889779063453510613250059850199785984079139112164191596672850306048924233356186341223316560249192698801436028055262563610343198595947524836745774612625683319731988449023160650446391845931101407386131237186755526951955840660478845887032944202897079192920548702349044179708856131245313348623739360643667887330944776604026033716662722548185111556917448961679009206490369227770671809991148316502624943265038484276212188295611175113843156736793260154163088606432163168588033326999622768268005231765628624284633552336126190319057881892206459124110390229578190360793750692002150729469996133460193596107878782052907111142483967716965893236050887350203023450805858508636897557061640184950929258334724742185783642267468485779194811339473588097482585508331414774260633603475183948425744423549955189248139002072205396134731892453592884385229719778429836030883135412758730427631857706695718951315194766411259094454933399583198353063674744732608789013058857057638637645780735265779795057987988409566067181976827461776585253726348244329799742995605382933048647890059476041607027676485999634549666541143640030271261649996650459903803187394028510364972929356108364530294374522802277835839839087000531112215483879109943048622711678683164284788086166782690245555757954517837283607287247043465523094562004258667751147172602457453643589929075452304251154651873280621016060149335267681907180949479218408220483752402787286718950417468169550486197315892797548302525249206250771660317924990122256104815058245826254621944851964095494171595245331556109689258841237515508022140540201221209733008147357665528182920787098012042700430639785845447196394330180538213487125013673450171137908381718804117479362177573505851105986133919943292098014195671100827809100144463322653864220559158309130752282225257967134878268672135004430569546050106654794329439113535056305744851409826788285109532950851085344803984743392681487966606430517576247845015976674813036907592589307475226389847108225869232311576008824675185598574284215482972140699694051893376690700096802214662796961927120418986266926073121319927310471979960302397966318450547736322091332930530454720902335451269699530570087905077624196411345649463914321123909138222570984413036794486686412532946956607113498292859371637420049713836091781054590251685332888209560831722738200967337518604505029314154561190906138504246994773782905438118021259658882735999470924813370480088281708079570509121835412478465363041580369865758531020439950643252843620413891678936344634379804156138551577830101244943286338489827935961980843152417698666795179909234782632939014382665444544932411719507973161210381857094586840141659684275019074681250668389006648456698014742567658020152237054181432230850031966847042900150560973040486784056639404997388938308828688753646877930251699751637146829874626854181396578073467054536593595721216924626139728711060418240361230457302135916967886491827188896514192115679381642361418852524764398839735703933937728406489495499919485673306792416546738632072475653321061504192000938094890828817945514794927936877917385864147842191565132919035905865363567007742817003721116009729024418477339794458128862574641379778646840095839826681643996780794672812148038865175389867938474375001164775707459590275253230237193360280253916653260234421608115485789823479197338923861509663218026694519882236299715002912325069466625813827515969625605966037067815991942016364418414586959015922511680949149859357614235910610824740753944807971469765509844214221422916219327171824061818785952742362471729822865917024772653001055401472225079916533877252664881747850256272248677182177917688174088910738734804819341229953676845746936995150830059410487953425659147398052969931994483950605363634877512885023560307981947933544551159455769571549290045958357250598557605477930458234228072139668023910834352366432259039689539886612651793823540883703836182837412160899121513257838439510969057436848772689563359684163575751878360061945084249778156973595297139447690186395092291075517451475113271858376681929389407468903480670524352556014223893639933436622771133505605450925895870832003700982533661826236575923254730502182608723509719936943059516049210573711732336605684176440144925133765748150752542281042550843131663170293754115078475433927710076866992429940658209711477898401563875244181142897402598280745621344101301094093241015662934511946467295192424603701616847998744459365298383307432412252609108098825293309707123920082988762898331167916874226503315380765395582474792357154660927480442691266395003558462195392729428288233804484608301441434120770729271621991816522436385868330202913047416859447131779340482220352102557179802609438552796217629630724120108957773328755452654854312601260573829648157616878730996996296059362874567047960352199582615236000254043051527744307280725407882775896702059350242114048559115413605270913778352548258082971427006953094864279815152404448928061338244968729702043996228913096834015470597012484939621519306074450788531336233779921648897285690780041657033970238613268460275511457727033987699639369997825649014413453373686710847782962549535773218220018463302047572747906194041528076595177043572860666374551029625822529137929709025564510011141271433359269513345610031956400158494327364659283775297066226142757144299305997100875531771762549148395562360390310552814068445177954737528787864724111188410775835243456745679364515523987314730214852439159125133475593643947593309960884175791904536883817846289797279761281179487504993272404125206978919971978710067973149830986253838611474911140170247475875885704823521142995270341192667373638763545330685514599604166385135153209772933795410137782468455428984241515416012948653487836488482194763728098614859311112866050891786114468106321919705403228570096271253852430005838489140303902846127072032096726707675583459428856365740950302754136026757079490579754932490777987887193851558784987972636585016331123832929557009363531754457509187911512441531379160100885421665821476404253184174003411221704087344019037999965221787243718818740927741573803572762496192721187627648291404099236798377629489777139710963631947232384314478443331784000708698955086254674484006997826561646057907865760560540523098850662732253232785085784896692016944606509408566402961141733683883051200499689483790515742637821926366387587141831190857341696383718894125075069680636812863179566347917395601715953930660117433726868924176278671076501564138153367494942034850722354373628630478253219374012674657479654460473049336778326925659480475477602762350099174119153580766634796484130813436122325503229336782047878105455374741736588326866814887162679164180147415863910545680351901213904506113797021661516445979734603386075917382964435030769173483148237698332957965628715181426385835177944158765056840160898282584724716557697718085181801941102840535549771602444264795134510152194498170370076624836699422712269973590130378034029982742432156192503555643894016801517578859221025180449882359836130669803208343087370441689266885235896333626991369188044525447428928863139338350384199958392229735533831438703154462020017213383629359813568005387955490123518628565886066960738112176691387071362338651385078076288566328073408518560957812800394708242207688872070163451965552673604129064267246293947216305733455116991804951205928196459282163307492152778226230392070025786365840014903137425032765345132971912945967156989483148405904203764757227214538280447921456893972856131906030300362284197547324379918182741910357466418715109094910052317889861305805938509755554663522842885630485146481270488264219728323110001365941959255985511811772093389679383357318878272252773568948152791347025336447311787121082077916201320790609716422681786707939271740195663852049111618974211969498098682179881639817802583202429538136012022472341730222316253730477905158142574643745582743680161465368971060129150759097852561912450134792124369170268408383447529401007358921525925149003627040065422784294071005823939626070926580441081147780096200957045695380135524600947372512057077774263843365144529323326638477906835209081272267456179465626906887945435612747531146266372398729495856582854049128079570074017213023591019360201684627419845114978515834567922772628066451958948504699837114400858301263581096970712412949549213710217343409181105171393129071187701680015826623984007714550693397747229515723782394826562373741114648854823752321546578380272419168099311852466387631873225425935681271783702911238786636607270742292078195043495634402878381108684344456832051800827586102642758556536644622748362029813322300680868100961261339499830096467014398421918445383223725931422612626772037869685273721811778030433700933935458373478545109158023847577471677909013646735354846270072623874639020708567923469083809498711500455284763511013448465164161774013622763564380641767053226334003714460929775816957352154188252883556911075660134956074878238989197946851340055717242060193652730762319166663522812643874295201694460977923146495580544715987372826160347109083089972995269199938167293402453276406863224893412048862914406533738963924188732407667746223254238760022164396606496930780161363659290166162264814514585208471458252802153539922458188431395247330067441844962767631619928369581220774935240175799550330465084518774224955729058512209743129804067563346563313719176836511634793208609877983697751152033392683405958881487232932243992953411285353666804741373337537697398953758692032921710618211268433983576406448613692058065439395781084936152535589177608860989743977192327263962376202405104650780197278911949907448774170385503107892131994292561481991670740802279718992020688243635676373265094777258384604945851563652295656899486582003633450893697025415532264149856396040580918168907206175324606530218542444135646420166936911297761482263187843219044823932403193877127567805636711364082159378419551520520755137101102194188700166383718095899105456284321247130444681423440496356592468728776847468015221913389964173044075080255860051731498456483975789608609739055954781669925678433924335195897200730469164229505091208112543453138408528130268908343208124054705689863664706310949382093295135693986012644005968786968995913071715691788764913240289125261638642747633238670549107811887166714808029463499565333322041184223210899697249719390217176625910033864969660705861022001723998382130046891389431646766475357727728807481172603508656202255551437095079397919759153214813604442273468241885882961611501586786447563429563712291870281445734166410897263295203109749474378876122280066410142380233139018909346271205498914085142432599699137890404537999046793886699742639250720845526703087115029033874907154858109232947354568408676906170536648057245939903019178037201526180144601895675485158562219197105234414254411271383386873185429667089001037460676930580598725172474190710234517513053054341278261870715296893758335271800412329251384610439873293133416166868531179867551626318952229643212069815095602168315922088354018354373177125941848518149282333485042655318349124106915785450808353930322406029420628517443726360842354321574921130744433013396540461261856642250434611737864110128314966046608405594720740394083959201497126861962063824887692690441056521685017547957475302286859260872924287284529489233722528455206933623451205896647867787771167996597826712127866333241032590737909789883411481339515842292508012861875270296650821679510065401136599468546387378954695461809187693593992296023892343735574786541489419087323370969375700619014396811094810825546197808502813703391389139979204556451028534722148152183120735106572401275100671304229704677901597515654004526319058701481580594605923403435808134087675802706554232932425082283285778600064247672926835484408949277007485754273341576562378810734647309550330737863513664868809697195677946719020903415147980387937994029607149174282470361741245345652797108650383399803536447238329158065948377679427485442665560397746338578557073450079831800632578475250656866736670569447376812597481066107005644475580625640690758002997809956517328617559914776283011630633161592853619848421088777293217220555453767937588767314403521786729918602558142446826103677263718344932957945493370188000056851840771561490877397830856022227416194002979342482577414044455542618408307015611099288380398317942920512640316058714701604748574169166767327198404717261658648244474902780925740236319699741378535403819037699918686256273413778225306785659417084422360554109029341240226877543700340058113298570346858047826065666148273878778753529779564310900664245098500262134074284258384913079346519517214750418325709155844748531590551636362181765942609825115812552149349490923870138831969617173065541245699342291600090401159023597623333895261758020963224739678336086900005282008274027311198718465380777180561068012549870501595796764999881619549423402918046008261694122956779124255613631896579076193377990077183206789561739408332331600526959397023205444523929870028934422509982987697851211570953669524495758244797621335165706198140200101847008804087281764268967137412925262661615906253644149343204614133845448198144449635895474924824401625659973412847431655394387864287100674088736911431716953738719748392873260038852256488513533870627811961239014049813373506635483067359754392604561554628038751409748246470452825227754120710222606314371357550142965921249967276797862573661541331703797466862426771444340120584162056194690723702389993891358280331477370367189351601167062037893645078294116801287534580615192789124154563443477064483985018952500038620234517084710938554267309028945070458575711711885314970296720578189896814247362291757616611683194696356384254390719033580501631525585266389659204440263381425327860255838853844572061655332517943749618114813205954414427608196565244210549937481005323736015996678459950942653665969696082141590423992840854861128752087501894550387376159627975870804118190869898062200054017757668816367789499667483208587215252542693160070005158052429065801474184608720313467838910927889799945245607543492036907449795926699411273650053031054140075727283686346184218672715229036414448265214883755871406112440243086325855021686693111994329587324992701377179834021629874327034038111350605808826478424564719990748123526466608265654275835882504347456564695806004821470473364696492613097333994918137004300845796567777482315286319611608235713835132059679199986139331051955212414587453711164193165330903245665544880518925609124696921150197621259745495516819649917853154711166599604549021204812680216981683581295337489564252789102680720753101961430101275889074607258283107715030470406781008281884188505064559241688123948485019325656347372296914002095337761067459133922365084918904282162017800614637097211392967137171827598885313949251107314009398580381497998570243172866018691331605589686783908923427614454568456561734926409273693849670518528333119422516727346224529087551447386578350006569852560933691407605481785320358481951329664085835238052675886513795491572975170382439807123808012774819731680865315801704627339691911863546607684680094629881289536410980917907774375751152644617013578290430169474580276822313176390142405709000776380827291635217882837897963195258596044346429521433510436390584387639674928531570409802994243626251892486128263733512592357699213164636174650374751860449367820042864640436547723413350064198422158386038835689111164341736442640070799064868979524351612578428862678667984399670035302459666579945481922963354286513212924333130829356537710407117974449971196973242226489706087509820808458932623011571349699742811911758614232186901919918287707055738886551517599489899246896828125787363031401601179874456255679447344472781515162373493898680286756482647006557233526735177285866890964921213778623144608666084511688850094564750471557088900527648271803612640031049414033582676293354928575048124286112343891694574038782511570814306872652829357129176753921739284713761393463225704145154709332748055004693783728589629863970514334293642046950320931455073289586977977410686642517221896420456953647935694088162470618678978043395301948470024190052567759286076645931169220245054783737407306529296539564728503621414271377256555577918152330790965432205931283907768247509777080742179988732096003906947739841495960122391927483637478443710066156586527592835361840000313645170121686924437475400680338055478799669951834150394716362005511645863260256516710054924884658086203558530195394692610862757819482891884877093069368794651025988835787031601371072195001324700009962719304887198157041034556505188685071846192852497770539599518551758512082118941674930237144185737489809650914278245529158089315045195229174400242937644889317444268411920729010881910215933950628891971691931825871379468371988610735563999305187992253029859110659759332346709053713906631814748355647358233271510796880482052274831683041654389423011036270373443701795346284401134607864087178502860325005832678364983436284599778572948415093914593093641625957756065806704079676142433416179341112593768907735530849524023602104306323361981526958896860727155784719241164351572543085560652406215321300211173930340703476482268164920627702210612046077694594924299386518359909345811475539877560880402858366216696884599618494415031781459083323276641739424512955538149198138926813885265138763559760388078446573682503618347534153783254370318570014874857445002047471287550106998329774520744152081636218405768831824834334119862503962575744530935497520148385015926862275801558242818662890908646264891827803914044014883434175898902394292822425784994759547360859311240860247009324445417066515488909609960649971041521058047682078034223124214048610926861707410516950535864600452026421219169222020603951303843592080825056112691084279787954506490795822022137212239229106737718543399927472565661606929581791326126599941232246466729174565871233074347127619355283642677587993662954495518232425389775358486479590847426461140604576246785958913087201002645643796243472591992632876496211173627054487677817375275500627341827455397340677994075801193741305178051838901540435040345252658726075947746647657381972715381791432186240780862533961888567202043032616538111383448474201012454938132660815101676088921394782173483619951440532260758027915161919017448974450716427811663192386589701789311727777346231884584773009944802177723463964489911843197297827760422693052987657731580396693301043014128931165814430699583215555775395321843826627430658688325502483992038647787555978778209288155968991662867434249648889024136299595529211272104615366511195818099390311931418185989022879688029156660478513128436679566751906338188826707471500310005030486406404619538896128213343629396044101111360815774534239751723203384118091392271517848585953501468555631463871757303434269470274230211968516081176114099425882667740837419853195898133824848300376183122979708751970723050421367910670054760080602619430409235401850994051535599731802570558014497495209193024261612770066441180464847716332716388852734029384503154909586273564560227449838898351096478378548813570489410857693554702547386064618484589012751824555034795200645348172369326431792227919685465477677308456318598402793347529964930861321475794304758658859415196524788992398900947516007605621518217685332589250443890608835792119842730656630918214387747215111292473941281358420310081625356608392698885472110532650183328686867188059996674126628646226956985250965562031794404507567103585312565374566886257774981176209622391858332451739594413069592158471148497416303289583273683121844528276683063448668564158968355118472528047087546112822530214113192741255414789292565047230830640828772160335297066774017152031149419647826918376250704698312164798070449044177187489781225675071301601854507205157619050805425122746335602356284301597396934986996805659143085899901258941361975124104874829267802663092107347071883682563869011426089373153895926640111828876423828064923188163672719776446328626808260667810771109818510079720107286657998875736512561697801340141715419886483903602170100258527433539063580705410917196073973192089624821137843144115495845688881118389070553158140089803362512756543729450383251952915418877558171234821293434464232974278588710527444025233971589440159655402708412294122692776274806349389464413882202643611594625758071426148337119014442543291031240200768263138890981710050407943088600522664507676594335166624840201005919222616937236440815012362929835019332803962069720882597653100565880935261002583252976521828493652064425549025016664242141315933598700829565095504380543183212073431780420682792764505105985530063624373373398862381396617504534143370319362027017860185289902030208795045099654002471085182703022332751686844568889604278844893817843752173771050777852578554138405406100241203538287766457989844387246116230475770464375909971106375336202169609223641062655493140085730397299595582604140915176675165287023679205765239182005797927386672339270289924914476597413828651173319368326241857230943644509361467078185641542056289648594803863429626281200902377788874974022739324754288364635203869394750882905100114534702475460069346868299396432391498992373467461927629929665607535561266483159931319469239258114352692156392732779470082298689045049229730937605206815557867777775443420697419899735506629896214026608325052039308452680143994228083266537990142790072861618959242751626904085000150973064460482000387505183231311673790702495040417689489760553396254366089168250192621834992775713286032986267288536717816650689319898311756411120105126575966508933688064366844991839064481930217281937268670859035670064353914386243329001099472196525822921661237745430758338784407059932802432237201531953370030487477938611774684023740780813981038945702073357244580260807799793335978975902682751040701078106075646449956132228051908185436619904687824006947409160695929420489947385853905239683281884059652948177611277854391289515175330231271860757082717809873133091638770106784384052442050342723965253195488543743804288655021778439852794912032216214503547103572477197798871104291256570843606758514338856848887902609715309937914441798298165468350648268028891492782557270157018193173393832825160250898917409737578420125335936052849360035149536026548370957888954687374344107685778298856459509294509617076068151314711400686992175993384580996185191763048559662664512221335418950189490051471593163127077137763932340927694819336140797600812841922890059604661363496225810641917982930760295503507555292357184567373300521425018272401975529529691256925208256748339885482367963764798833544695784925696177934907933162878830640255390848484013288634901816543332637898550044257545891650414055503901534583824930318941409550991396106179412737138335145395309150624681196507774702551202199415415271400541362426469657298377525960565146857255639295150111973261899581521161589935442319903107722478016413505872803350408128804960001804810087474390142902412648188981445019757862825606176278223036274605873046092991133823060774972956151412379491174359484517972149470756088449837876870976164816381446730942720192636849571135512040838759689127473696055652403630553190425803376178076087719570259146069052065874934152190075309951380185019152312324104020680155912370645859689333235198733337639087681441185389382062706564288152341251857366067072562741516250454529420224450435871800651742449376752578760411851179210316654325310237216953062017334618815247096780429313533554030075132338926106980882538543971661265099640897899199606221698835675250743224401887421518300698183865391549016550761073227252864978523590610172176640637350296648030023686013396610294267007754516833494932776798915710452227662445520133201070525875254884810750754275378104678646088271205761897500533057771388154597498202106495948533061778449744370075062184014558120135925106477248314606485122950488561635926252112123513624642857158113092955558513732580756763075403123941220748349876285975976467461420637550450368588938593780699128256201284516578217407757428273316510668684587010952597059893990029694744657212602723266080914971953669760103651954967204695345081781111572358408668217088223535148316209306193468134696762643438457270451451594763992489305593753490353660446673989861884893874617595571510376815559574531105144625969812088871775356368685624171695607031485271620828723092677709432606277069211237819256794292678582198433917095104629211880182540324636858315105035217499032307129910912545905478959242104403168841135483996814558658361270759594227023007692238105890985492336851805739006745473505835724673727814410890217940998727949488286401919071543603206785285299737262395192974690349111947327231262237203645315509088068076166273598218543816310134793954730128755261194277996843649226464847920498187954462729447421260542606811595749692666231937007748389300311141806164558472018736254600165744316267200025876674591752031751817182291875869726955619651347166855324373984194342048893716257841165450715016767029573894591557550159271676583478208666057941781986772938990621006972484699024507417022597220498962344847474968379076202268455655229750727626963718236426027507517454111317440543111582114589583474597561828496887104901914675324977227151509962236845784754432786124622184920316387087825793503002366073417720226828416727503429069096255328254860133816172629924339183726783755323511009362567757815835417591002533334029741079840855973707789332847974867604327600777901267414976089138495370569020702918507284249764876716001451461786253483659977712858999969229882686059610872099529978823301607721117653417316322548606034253262443425908271497949666769705063186424892170138704732671788966184244332074491654465964568651007278137047324045856475411307504518953660164945781020950733169723789340387254516215161002439437363688752633701599293712886889389235777878295008768133356441386110469224706585866918898890637564825980721953736298195009059999171801777443883812172683859113628136497580155515985960181527363792102165946129501068458173491955351652515065459236662436039869697804529818554559141915551435335743642313268910992623163944236375796136069172439617109720645554153505048438729752386081773981832918427002423656778402827137443870708977850126188074479737348790680769130517169796231627658309118576762609611089449274337048629825811253996764189056333897758902401803303231035932031308317898918786957690575332982961809912032384629658657125232157418783356309219695629772001306222735310638770637745157203069371262412604148251200401779012046886037188559685394925639645981458643110519506915232234180292469078363756774283816494804912380841731274338041657902491417933925052586257471160947045712522630186321623281170327120437307686198749078539347120569805248516790973525348004443867007428153132353736979390970456487215386439147251235190784192884618257862407105420342389457916448942417441020346397367760497121595335012698831040224697074543609225320340193611081384353671407611480264081743733754131023543015550915326483781448357752813878578496649272881398840832008884695103005665758813407451739714807086848915955484056828536452630431657379309337193831691429078436232561657387576182921206158601436654482900095629760724211435442491142837924585519852504231113655596212414946552100792757279662948902261214515187974106757865531551233017947114496325067767157188997191361531894498405565731933427794029061408043168249478936443786126792314468378143164070178127882857772242525508366628684755583579485280888625081060779357509637684709733897480686115425117597715823848787829414313642531435091408491584786759720497884053319639783913545414545283193090668074338375161405932242262385132453868055221180960222085039608748024698787955542686102807678010599312387803100731421734310263691312211601302844623447173457039377660122707261564563001096435776464746350510064764852699537753122150114929205668320760051664348549612393684337248279033471955958186197095746863464518770095099931009700310230965956021462697074253431032435924731368818656293847219754233459715253886515233783881440183700050673531369307204734035099119054904016711790475145863567255018708893250194820623998452548824045874451917329613079607215914034988122080813078190708751800415787060498583324309596733953405684294365857338356229819177115356604206745243292622409880791851642788774911900285989615566553872319686964663040035034597150383881533399141332615396174311618938542319328459552338707081879244250726884320082513297647425427916369422816394651227944012178210583148437159300917897723546634419466050698587640272871108366494213061293822584823317162390923328971734363133988440596798293186126011331500870004188148989662418348473150584181884087142478315173722910649222753411650937079721422139745928723431711644513553930288350691195338141764149455841842358004365942711570181188351733686095331694834749712518218944023181121102494969428423371116480142565001944544781071300170378938601945356990405009766972831369205588348788317654572493901424622681061031269080995171598578616053909809411724767591972566129944965006273076337062566270229928787409882874410131832996852446639259466490011685777072995465292075569286287287625262464890860279843269225556856112488740390875097412488473303078045831283872556093690322625384517025108557042500066940922602637368460691252271825714092383718738009379936883816521588645028396800022400076441117736156223290856905049376035544974644004742419546738967636731860012376425071974998728989166396303183989664704600426990081142757861122556696730916079073711684170076426301087816945541169621418415025035118927925321075572712568720392511950199290029497598112788735048820520937384418835979435522359383992140810178651822859712465174205166171016865708841074117864987984604967252394101882741616254326076058955481717796797935520521110980392470814651410296340815145113492503863173198407988995914590929917749929978644799419192791763379836754897400541891744338327703926792852000470447061602106890719246275945237945731118230918639411782927231768875881839726185287692845116003056893056141878810625582273431458500037782005163854673025121171916776537797626962367233493874726496015995740624419357206978648391685021094482159371888914134093192559662118642648310754226395641338062355016819945010554684695897022838384464240538071557047355768639394940862430196132756183109286269338248620268064360057268694830794862096524465456094828289364303467941446966846205307152305416206455471885452472272950403941770492980834554133598437349184375551334618023747173929179258593156157226313136154561199378092014352767872150042133215877128895389595469339239365926190120230352893246719705742883485640039906741217377229159451316096717778790959633726496017530849459858277242407063590119037696814836935494312264803018031777058614753458554937608605642000580752909316319912772036619284278652371259205778640304674433307409206141241532184340995509594825363508456839411656098499616016226010181977083039921115737982554455896137079434927452441899941601511517491548117835272725100310559749470991194374642136127764054448767058459007688096339672353220426631093541738831584971010142405781785879303246011608250906327452780280252449368671327195401591060368881626768802681237566201618698355859771146667569821211803508435646998630022063061136991731309888801429025196578945487663987006605417060410928927525859350373357235863828316849015302736945560493354629731071387574710664015843154036307185017247814908230050866368061796905039472566183043688513130780784754450897083069243644325936491846225198123916680522372611721558597023862640250189207868839286082942241582590297107278193600338142608033243409876704884480059089910650761089871999101068053900706333685374118470251965105866518058691845105070901263516027101531504920692827242939585191671824943281496969176351602984086737333234116526138539009379539323636228182604385116291801944659318649288398402224439914927870518731796575162462240272302153483719740233944318117628749937832429669433762159331938762949741157708947556875639800809960414631200085765883606592319255857927264855570418279248524436205821357849876530959571119789779618371440886025376971065382860156571252646502744820363991137917439608449036020381764828530991258254296713896325460577589682610493385808270830834167230489947670426531796316864848547669076182480799969846473917911612265434028584032120207331744720892759068666055171562262001437998091624901877156834768822691348019095160746275154653359363870286380572813096086136599733554762943436436059869936536148846180127723258442409301621404357102778295224134690312140447990196305960158563319977143556678855431789137888965844985939355014719770390465091515674740530643787554569652069110939120501958633557010969216609807203984593663303026437923347719739393309031570318400654046884538539788107705994925096867621030639625583969625543107254192172251528603647522173781181503458112703529804934259483632757516619477061180540926912554015261104986311719571659548483184803249656566106280653999874616971366995697165378633391564231663287383394088020153328227108577564063348239589076194975858163207484110432413948141587214724092960795331144592081565195661127472076890673993036714201752528323059124718302756844512020721720813096520659184669739589421390220721264680430364788199229590844689823305436842525169550554844211993686885841826320688718767670645735217119265346725201301416960908868986648304185418921210570989101068947798533059440412946580812932271689651234798040090874967023126733161203977627699274046572945213866347104546159290868253762186328492158135194283800488667728874411504194579015421180967853625031844077611492616148177235997982712843953759785864192643635830431896496154500731786101060946115063771367743869193949325248996355995281668476201753669231808060003241026499759423585882062206239985245283647595992376040625353008138193436514740855516359773467509050918216276807315234216906412241798882376885702232919388874248035909946782829483820085783493407464303590902946967936405061791690180339019014659054121742824566992524193572970692136614127885932654690490881373732345841933531990863753075083100722746072131547694815176874510757551926384970133835379607343194260172609485716471781021212216195882264045096688366279630625890842900982613255065716029593534358088009364564643487993448040048668136763355272226205927681709376178253896302315322129781046368687996934834038660194701584203755375117973945917252252471809687657457445862256632321423287712250745459047556355412399128675949395071049617465498192834786503584041603653540613752169964032395883243642930217544575304106389225553712626460407268666626383242003083656277871327950314553896302212996711106986880700765963938023234205144062131555524098321755058809111647322145207009596176332805071683202109889068181059473038354580102290476557355548118353656058955907672742746687747851378875092398831297077398521529445754426304634498987326256640133858063997343668948928385534221202631609725276778348675026890072437643892345502573702865598743227375721116358680788920393313192035732674220014722393608579606751588702525241472131205930315919404570925098848702413671573827688781910819032993394746609971994310574517223513772868546009190961895573889670393716252922198464937804381986784484918508585055543027222903110566662100985050534833960605901998529790466615949828387469748687358917169669215171595585393537740161229405305971726182313575914434510064289184808753886012063695946047988159162831462577164717211854178261205922494661715592021224076208153605750588471363959192313345965777455472956727087232801936969093670027477022562875421044750687708896390142568640259610981470615459055231504207647883490439623639013174725118469333494487982078044082666141197946758198388849749063933349430879470834855868858097227550216691613081357616861824427389227522489109697691036742295070549787016963464504054118553549985499614273654935492904252694305849823057614062697570726443837815708448429302231672610550524641463351065683467690542629161796346277685150890646546387929386879475405945873970738461584462007352793131732344173628256343565684277077090494519424855664458886009810120947918088562542492108696216971135641588483860325272204665982038755535381543119960056210275006126793539791556688600981417963787626487626128097057420290025946496808706637927044367176637376828902450269044991436182899383122500568537265726625466474839035024137957834799804168787487220961520210589522269614952744480159010789404155230465399001040108001313976269296438723355397494209423190886003617995573058152649509593595800883865200470677241694541497855635252490712623667651388056729954530953770632160166250310042224514254449590568967343875771013600843343319793580425532926260723497282983064487785104217718862396278669716988772746909644872534920418983130997834745368413493941367515841101856770760634460711452884402498947685551692463432754354009566904273554634476284270136113245097549472691747397162962289258796242866541968963753983766409360869236176854163208237431785362289644687280375434363797193160883011749327228646718250864934600715957578644971215782864016608161415953128576906085403357543594103282622453767370996793687190421502793121508098223289418792028399744963900265183315605378052738223615249106578764606722686849732529117506910124328734921931921403646818683440296112325855972643556133464964209734907745174840392564625504524149169485832430768110522824446641748318012865295318902145855180230771535993634339759302480921360185953671619009911102602447336910754499420301635291605419796847107449207107111542273094158993614759705004074056792413594546533620197840868183148084106186831751822788518396351132428980815953756022438027463964752964169979321917466107639890607255851377595570497147627436195540133692879359724199338909362986623303373347707942465543174772427982768177911777724488777352172797069254345460858627431852387040677072495527105373785037845404215467083277049774326539263404783584180348580860459208319944328138290380591994901297003184457930129738675613101567469243385711955215148780266849764674416659392560172349915411181980035857116245919648569472844823504223115890965243076755073059521731335032177605535384354225101623117237591420820468499695722099678777142090099512280049226600597379494216534969876231285084899156404126159319490841938639554531709467382313856138753853387930346623522920809710043829220087200949363634723953760349262839360778584194405230555647194843370953818378458862501245918459263318551579835166967020160869010923798423074244545908267329688452683567862358468726553448737851423463372393199966199130117179047869308374783891214712522302295704190050482882772570720800158364773726109155464540096053205589213116781187063942111287901818830585211802372657007513835680556947004347778156575081460147869606692679702477181353525244802506352502626378229123073373757682772698233229568880620394930753785115310693608141010816314590054576337164585477759643081803409692469134692802991995219590021312213137160476651606620339361818882090709338043881242717491787068202807166732666281600347450516087255032448077071014134135164928686921227425105615745098873781884615649257283582363377882255597570209448329589059828102365907754428162293981804829388305056123244480687453829371416325618996406516556561091947443099214331791076157780515250586607938197121486539440325435688934002377237534502796191955131599788322963760347871689481457269420742120480968740465849629318450387620995892231478239547228473725177265814133331537986340916155393310281063592425727811337581199774368619113077813158621285780816265174375792981149365809499283364546712175390612652656947461882294193471299111865551769191412379864652437241637936429573138743431658039753620741831855302157329985889464560059130511603727698766754979640886066866332147314907281684499912036954391598118355225102122951979469042317820009511364661891609422642702776038590834668944266192654319599767129010465826628116915622991666576301182763427943666023892560013178944329729573437586106797168894650350709001641355682586523947026215884762363241957557523970227129320023131967884183830943006742368341071806421021945452324761495080575458714216756104761902090406636134055961598385976817006180326845314467541012816557998494952585243622301426735610828557654356056181835958827747529521500530303134506555605336932412300920850092232949369151251587157130642031948643582450333096810238491246768378251680272760879171370248805133418152138946483811180508787134417790363519918066023103278241646718831955230257346343380426389482470072287646775349433208133335503788259813420962811900287344916673380793022941944247936165087194424121915914819955809051496709735921912741278329657918839522526291976151887478402832131719682260897595037397398415222242332651509252098536940874091070562587988396669410223296034443875298173839771928588533652549081824012934583276906348325280160224036671783653002804280805147560299677580827479613844027110885250101195069083609847850123028279279320815186326739567079904054698509815836626123719235307491120527541231821691913337772599682211382678844626805361615997434164217653500852980902944066978875897319709622783446087147119912280118774059317101041815522204147934777567730548453300110198853760928034661713886407603599488298693812287942780405758302209817065125555502686962816351717688413187317120243766178973977279852772391390584767293278817110690334536923540484234825895420663586635076364778424305805260896545446152458146497315583453373578740842838809147447146614320852282812024442046383185780865676419525844597371876973119723826836346078003314042576142451602202695755259642312388929292303827100775079039216495047881835209117514419978066461412830620641827227999251110755673835136977002359021703344305452306856918303849476122232007036986677847321999190497648351696083244196009282798815348973402512807518719758819401390753880455150243536941836199050831535674209607107216408204154023889688396823967770579602347637060104816100265674179694890939018221202433625361408152157732674668355800844450173219882115827581536057646367300514640311855981598425782530137190927910470488121408595424161479846143134576997026468098504459376220691380125063765487832574093753499433109700107410417792373937199629789681372361199530121961351058452105991326051915745613086844120420991121558791668388881493419754804464524000430791076613067567251737393972844439360882938383595269985562882160489155194261548462007326752280250797906314627716205420674248164989796149875505066044623697966137978707112033232122329905233668716676917740766399419602189999053265102595125161767665001599926672384566641692330249610407974443958445411299377035510508540389893040707846603737725882415949439281860268550609659963324365073081991099260944982221798197227908297354297894865710493767144984337304752383646209377189821261405891965840643978002359696461123597405500693358087337899552049034140251162915741353156166583720008525252663210310077257823050695811684334593627629401946289902181999282491252228635901708076069467356018284097081916962878654761232064147412611553871815831955547941880521934693214484001953241964034124939878500021131741394943248466225932576859701805825157891623226914381734691036564843937253512601445145290273477227460200932704761483158836984233766507001013319776224783805670494769115373108976295661843260134458463533097306590568807981531634686288392943067231811170414952522030183471709019831280226757147083881052968510059564103552467822974197344729091432256992385753253243844041462680343546470990644061593766920160930902577737236390896291891535097392256349322664591397885970062892534127514542789316914798266213816206618528029255643467861476616809186856959955784596529968754538671796220839641026515102861662794483968244018920484875898647198916223857444694322741168545355446060027895468449973392166060641636594216042715680559340452981622674481058374540569899715619961252188236986856155376632788280259758560307977615956140415623102261860615419625974023969928162944556136575245848012833987536377064007286788071506832492709733546628712824571365755527926422191516011347982656443936461524939202943557164375949830603607121327996020546569482455954210547153077191868380770485220714986668354136362808421526339053887527143438736464282068965453917937509180212737397357597643565484402396742836692255447591081876081225857629595938797794072354896405212600618551169836831829919679551626165483742298890888929600885817356416818627084521454132041090455136776802828378605184394672353878991824695351282402966344464387846681117950314456261144186113926712102682407712582727439313184868431234637549678554366096791987077263798062814185817458776658726466733274478011499464121122474997654933020132288131129208193130417818246682084320876495285250360286504590483211298089630247822226118228674349130657483938947906069256901480774021825463029343656908860773366176490920122086130047721165465474975456464513395015140983255207120327632819867894890969040338781029326053477724492670439194733042285873949690350370359998057633338269106208420921280262330642060170262748026176050674317281890995559137463349978050865136433284138331945255769630446801729753892233359868712322896128084939748323350572607386086834123567232488311305395315268329477585278831507109623355086450072791577154309668597895265732099938788570537346338520607358631337205703546288484795434449133075125601758119512013843297134620695326328975232838482292700379554720603593781848024681147392486810928650499483377936618014695701589463134724801538955070467944091315187865363492835068054473546937383437627428425781130645799960617238251576193309984677120824717220599982095713434258172951694497880173133658597286320469852868824582531285514355472772914265097790414716984156110709889756441806038996402835814429528602481104822414091347470702659479013161590718208134851976785308532409313205180630824101741653334960911312490791030753935229122572511714360195580050753474777615414374022196572034449783216435702486630908742985350434413426400023425454981961742054115833783423734083647278591196998841387572776597650243076360949660472579131601874374460390334302345979539116640178797729122943899011675351417017898181750966309618788730213448895859755325504688019087741340393179102317857353915786860920067428580563005974057867562431415600035542077877162693617470798919382772349432976807414818588858155441486462242228141989068998296949526776177428823079942762447780458414638848501829720398364706710331331491342872039668223354475466191538641602780827030222331607477541557731636160754671836900919707470323952570016939234342091187483606131552858139202030942103464330698605173050733333604189537783769830854596204623140232512613796060085413358022753820763186100029784931458283213553359457726566763292667004962560315182491299391078757248972859623713721363862996590671784244475280593598015614273596205964672037231759825591459424350978411046439413251408483314626117597218776055175215317235959865507455201757251032600336075373101028358906994977103474324109945041283947978447076384890379620327948258025214728522760673135758160267487033088756271923375959372484190930109541204436752001595471067857586475868601532731600828202653844971529524680140435248287508729726438120765561324652222509729052571378141529757005023893684505071887073916177817549082407722599155464705531410529358794905158508526402552830822215869273492108111976268735275730918613371180273942058528713462082170760016110967694743012397340333135705708160345546121284014633112363125792089586209067690672246265167692530680661473668283493905008250377302730878489720287337276664061256438296747575111524493960367692696430403757597486137463723169359127363545765403845973248495425577506233776177490727280783876699791404835399964701331360349433982161893959958964650422458979319830659962049683728065283255632078618979033820337200083952800303625980081262874320798527324561137193766096892447320937137222582502616230941309207440172697786513659443993310850996122292758242415969144758703674830694957284951336163627739075361451612833508395321028993854338163247841655941584991470690062602063420039454458079531443948362812315773778230703508042979670204749571739197506206017112601583893826955524997760052708334811332535441194181451616047672338595329690335286947188616569374887552858560149838241344595459224733603237787221419034420310453126709125732107815740753023883261530058244875804714290960508225483225006627787636570098243019234200800163677947289104631929536925152321922659757929015155323023445753907635050021830460936157161356316839547642509696564997407213106352046342270255127346086485384428153977496125910714201974298835864066206773940911481641889953419608259063326228800848780532402285445013223860882454110466860215957491306663627344388428476866570492884744795499132140094737970176161897790474766045393323566379921443301677470441892359682781961473210467632592304870010517456841737653451506007594099078681973614125028696487060715312021019956993712256474193592750284259478983189671497052765571550516237249773277405986991908094585277751580980101194312257096704173226557301866084295643270404970844642396964408892150720915018918471386018770217922053159041166271910959354369184575528722958941425660580925316446735148362978764258562126437585712132664824841754721536062949283538038670122351105265332530597498029055509347608514293913356416720766034450486415955897190817531625648577076078195733662589708870699857106931108279453431223007284716017543171428597284584662810514204858816443656560110043912799982100892576249548127684653142742253496185460905373319891765021076006593701961997415602199645277496658045745071745146825832767935946212794298371493825609691597996672591435384843888681218868526804092815617282957422130820735862873103521049628999735422124724516985771124699010204149079441870136639712033146092819992999015463766658598585900484408628730459955183034119640708689673479093676815904558266561505596353439602861720862031662553189722501458548086545609636252587805972023583587349252554504823987732142945725669758048060272694964996633636749153609198425991293528304861744609258771363084051086965609974531993785929874706625892617196145134020616521260384372828874898083981426962486696053265564666793120609532899350745301491505541236450484153245653041842051920750637742081425908856848897029871482880283167632712571906728365463498936241275574334003324838424809247332777141056522683129615725067451728147840668709782177609610046232503280950943656093753981461244526411265509281763428795506569257825249305081651896663374433989084204426993500729143345649215026527642146722877321623885860782806656987856602493232970417267225987060473753207371037346597215444184518794776814638748592099769497222975000539458644050548759438394319158215452618318699626558390894672209458621845865267404147334641870218169654784380373506959868419168196205421238786144525977513575852483101667261656473480256694944147782826765005446660836824689287029603444174706689379610480619530048838266620416392215361188344098611833175306736189524577565627163859984047746642750455411851929588520556513576048572367925787660675813619631075326514231757977951005416614872923166656647908342446861224369434112056859393967393712450014933460980948253943163382827638682175584754697217878330499432036435186304013265014262525028560975993086098366076750961953988931538622234376096339121104798763805110229160680222565825751030857749320810482903593752922909360102343060544634031086968039646982207040532058068507527007612124585373912836840220084413442229156536068832131327814416537910753331608892325297106128278312561029356591507235783732835880743815553752001061436709952336805500639374009576134025466292048858780411061665485327224320227126672155557388493029808186363442051660921718249035475724499455811253252614175350100808725946470956029960237467968285297837735158415132258374608456356481257842660724823456668374876185352168714093411428099529155804124926145315518140767120675251565815555806683587640877693294447465824800919786264729824309176791559199098716790474060870581309563404272892972021839410477382441535922467670347724346138633057864279691235201110155720791011765042682011315524591828522628542587854473022918759116923841103789872836394166509290092660874675327618609123736778740618055403657772707187741785526498523537836372006324472573834484995609465814800947983686059884203206348440121762108206640468367801690822679918682872774618814826046598811272854801127334347781776496586333348238345731619226521871182799604828677110236589620129992104980037670741387178715579730819037408640077022016377753868434515968416668342858188870828077678046511096264115717813939285006088607737703470046599954195063055726046501447908006759239879758068217890883476144469489443915893386166697125655977639307422995886672973809700868626165322853773696772616643090617307635328961847011033659759246868302179071117865851940565299119448308545636308413224005520198633229580663460785001658700591261945342012448712220448827378897359903810586386168484454346260847531241615739608424876764575723089727392424980602477206632357879721798200515855071662272627455395901044674683805720456830707418014507368575089922338051783254237820048880892821483549466246117019213340975884444699002098766818073404311122920518910403332890533725253487434194652687699519016900178925424378343192401862440991352683922707862294832686944414648164443093416458097066581882124814009948554954897225636652202359971969224121639705564305746272871737469392393540805671307625969436692428013119969523866206835849430537259439556106320829148959792183287621171850619891357263406152206251387567515357121585080353653727575483287908096289918126060750712285790181390490480432952792765768940094248361510007646245009022754573362213402668352965674419481711854196722173421542439688175895786480889892210965096879082447657722250637291153523040982371185823248868833467688776765180955243372421785353368489691285418148968786206178190649035420735139440916698327712186653698489444225832475508882386478679247312396460002935473904921479349483996254618991856597518957701648285188676627493662499328158115697330035163911040237455868128012321264867601492219302414797145727262722964838563236445971619240614545845050657366822391954425002740406186225763084988502180377665784537895983878041635732046137606029926951533976499934388946349414970830952774201029346795963433325598249166657690960454195444707425916657297473322805097386010065116597086440360127810548223620514364928379832123916142813651957560798910520483646622992520220400545030176430093537476365655931445295429813822345860194230311350398775085317844368719373466856994448979332235457970978773076913815470536921992558927238958277550713954862523147717018361173900097394417924941217021228974340169021423386474380784771381218814847880811637831203115427659951719770171024648016044526672824760003478457862943955516499055568734076439216796191014878118476169773646793524320156801081463059761099465432611962944211819397106781651014019690923555782690033956781563307250711380552773663618097969783912676897212012492054787773990614519867913284832383187372990676813177696021845263644816601481771145136759132111668127383080132880135641890721689299292847321453206053370373406059140559463418803831055428510766860594370834110926901121347150078176148731843731982675344425167034282667516459177392658088854586806500298522621449165444513065098823103060223887497540474208431761757201868635477014426800099881451088711894800077369745514393030451078829334750619774642376117371323369555107081431154635564733803991614324679938366368643338674993648014732323354115504175143175735815994276437204468214160650859100176110534102807058357502544725662569797111150758203635505150746551639682759331135162356990924792932123184844560269317710052327567959832324492539449753917132224769303830289802642683756283396110869454053035552142406505373502715910574632415689409585212426446141568970895866544101219177689726054285474727210180035243876984431953545989781949657914287368666283410851228027616432495559236622394818121800045340111962085745866890357190503545590809448616429042359653623544072369715754298159655773110322635318030278030325117910446546296383498182468003322825429232159377033041623088425000883626581286418227819998375017280255783153481269674348727970220239213764488010025704868082222565143340073091952424672730529146718033200004028910044838154249134269502338194265306830273623276506774479623669508328498404455270348549685052109031921248270364378402742443571077901464385756500199919898233783575968265219384616871604405311960795192338969364493900072719140223372274556147589061875990766816050429974371902226876025525308374092965907036241351541019428216167126718557600585505499006080491939145645727292115741978470800739975567805693091510758034889791541232290899433678706043258776302181569123481985753986587725486843229457722447668468126684493371916619268799272967561899595660136224103531337566528699111453423302535035944799324339345668023775851986915086533444291359701342580688979580807889465861769596931411844579188966009559026306630753880761012301238750940708239123436284084751408832870312064917886102496019109843591081892229549693700238410953019659335344950461230755180281940661819595006789263601010688059645110061050233816749229937279551411855301140701633845501265800099367651966345576134813128898425837422676055418764845704345309119295058160941379899371102486550015732734108207622528422536702387002380408593999640514428148799066573944976624724506495880113871738429066294161628925489443317062975380036619756929491017548771759219518455552148525807150539613430458529138882488689603285895590386365443242269835217663071223706433520426152921119872410093322387926242119902583582877913490013132143313108778878416010629200644486999321402546378418827805656031404944660359590506825346828045209555914414468060846530829597040170559335644590430650784863282552139677634368417785056642347749189002311903069672709563542883821575699046212152921332183632747900961868389653825433310854459798489620955430216832828141826471093793530232622453917440203557468168608555165120537282928766720399158565317213239565247420203180000266220265883775143152971820503986468779200944125719677862031153290199650615429881481866903659750195021019786005735228068026289042742868054899997313859187177070460666170936707906681787534018585551818382525473779417916492111602238810850228015034964576085876529311041210545428730398289275649482807912880248105527417004354678890165287706943659388336837841007747947525284446319648129405366191871076129408968633227938094387946817851845139424600797044913142236129547255558314913402931751365455188838703702299015122350400343535749411327212107110869568875033721704224456886775924644283403702057371583500618889307333109168977435792190694026127408130411464015396492435749802035433521208297049325449607422601157240371863262715766733078996748455943860569114588172568614540584085567557071162097113581757315869816918752661152971456637206240054980197637284868117566300600622076481296374237592921550397005459396878232034998040999718187947530317037756376004606970186247292214556495914840733041602935191774361101964472044509163838777369199998177882763712029743462274997237644219117866388676152070505178184361436689199673472785113172722280123265056060342950678887368495634844592276461569861660794177678298318979100357794583749906620945670032009956365124606664770085917044514090434382364958460836017440373594419334610879790154717386116144828221385060760604239042534561495769893264160549370754310345373842127384222063123886048750455180273914925525419019610050030279684017323474275523108246627214536738185845421763672583953029353308480718571513211946265699455773694707287558950810107693841210553804861636162657729257523803092752014486781040302325826809600564993216555341046732699172991082301585841308835472829244087632338529543726959174578775772358537355495153135653547372952432269399192088927223612549764772136369364917469112927668782466088486727796379754509231814049031132629542522892175784764196310716319752760339352027303557793300371280440712453648065648232623211825151403715492820752447317333863112359983122612673793588612556197205382578754620902950032962525734135284374756143328028221069403250922747854798048717322924064088613604618731480232757513853593473963905291745896006666574799831976039494735188152344890717272082424411879538281470745413721391278447383946632627446157790573213380841481186740300165253237197410609313947723273156614604251569067827215173635017408204447780477942938411026935215535659077327447443124370021320512635327433674110142835250682154591379809863953410663358899149131363051812761469298689440285559115930894191799171052752154853856752907808948036780239314819212577379294978629861929611786335752108592841334959237444326105999930123609903183408866262080854361816592951370567898027541782296877508070631954829603483663394820748504577563478931627190507365150562459178637531326727138518810778364529196174230534319555346743219095721915702024856610943693172904498557814954075154749985514248468183526369534714243874881507916058429353371269535552545245697957347797923299294386025386490987251001285351030593362647055921821147768952353858890973118881871815642558181567877906533949361159997144266694298420359031662155071767801218233642127604862100564197936464458126693528201354898494689495596367090555364408455310441490945207586395432248937961249217416455003029621838574808619811683350211362765117626396142640132934349516285673799842630488758251305784367962198773438796100968910520530413307146369407582900878316141049424123928641024297560535366516930871733173411815699618378599478968971461537692775625251422322059957330664021557637097004279469644409439204083697726882259573476277396900457604753692984865860855645837757069430028519972581552672111542559891386344313445498269063473624085491344354067016212286151071333065103869930160267023427923291038659632016680724973311139648202875453243925807063119865129514222468163045464617644276434946037394047470673314099679475975473218318289453675766600046213473878483752224759360163833843765951435820590078627073158920113556687261214755395193847359932431850122459967945513230533706551639288660291479750169473191955328417003302432855462616467899828541764997768377447235362909317680639130211343404019039175233804378566718803385055955873847780973055147963184238414790928640537071864528048101071687521754147465543341161688407366807530035338927976266140870536110126273969222349739046151327623963334784397058713452069881117990794611745509201190442380506232460896287651510011571209308092649976010222835358905474027604077121910270698908885834467936335052547576792632613416376727109099157658650052855073911499573829547518956155160157215162472188231280397370857137141053874831510032103004235462887222693062375977451388767229692831363690605500411442213988380138239864577565074184469538002514943053575995434712446128762437603846406512350033800132190703416620254422207711765138765693524630724196875975344235400990542528068579421663804973387771006057834632811016209322168962764098166024131650366107558502933336561027169220543212479265461449616512114000088095642394119081014415039976781287870921739570923775881869432356647296297094538866711756651242235443060469905209493519430422688690937815672465544992686719918072353329808565947927914532887532839612955356856941236523976271850880249412687147962193909465540165463838808866900076420925146471706607546816054680601509969251160599847248665112370222199113640413750582899371291453626351246593716390573158423656341965689348630416703414477463350166853679931673290084046671824465996097020369564448363127650711872882009162525642072797957646587458773468482512162637917218330958274987191672365555811624083792940440736301597302575226045089250863044555101508522758296029154049784530386051091773040867394040192426660639052866078117142329309539710880978054518829091750809995272618442992979765354670818630211106998615731912481771952845013314296273510846278921078804307532637508506897304631818155572176328554456462829274383465875502504400591036966755991256682426051498332683268685167508026699624993596709645543485254226416037476580042023716957651606016816209652113366433406442600038722073352589441502766139639637425820448791179871397628361586275870853193693413085698448732093301942319501347398811585339091841627987387354494451067051985177996500217616305675801654905681180698111811200685224112253561884808657379885862513256122791936810900089985737376975607843407647167888885375254390599043226905461349960761253999717681116227877123708303328634361402584942544118784970109348494822747434894913265883041885874849243634057131216677042931503368120112751834313816438097155871942355345171465313341082792817872443919046635502659433984855257052741284599032921669924993099231056860938081041094306300009632888612542383362881713191166098273767568222905361373784862927100242774206728109105592467428971647074226854264242964981778227641983412146845220816330163720711338821121629109310039045211320225577576774726451226961272417611653021456298504180393296262019141680550627768460975432574048687548704679577277266327019595845931030206399122340964884930662856948911764643314614777229784830856171359025113440022275855348107204336188176806950441507146147194024577922037101014162534657732964579023874354870506133552602961722980529011552899670101289223229378036011612609331056446390682477659656992498196820647373836089248720787868188227606845632253525047713104473577913885351425575206498648972582925259526267650278589823075021311284023546932606322011091773731496307796838924678697164687346974391651167636435386935017204463090290068460145055212062907400509411078872976482576596556788362506999838659566215183444872802556923999943667899667338856252298190850201382458784482376826587697525095293902225304965095608438228507329009064446506273247030642768314906994023980430981859924051823503055835715950188123107001795545972249576288813735211549538382532470882549690803467887361847473971715488432327244079776154112355184357033303825115246703083866078578123750537749393830154701489519360674583905825032894028973655105908547930516205916007761286738049458735334217445280809047110111926461681540000163273690536485850576475775635295581506651483453332014458529212648120507511733604006458029672145284377814259842252153694481885677833191698739593367843265048258459358471409632641458872708444197778515368515756541423558321694102036302252726911637942274064649429717403049144230354572733538797990692706038350105687671914068411926611526163118793587523135571173281336483689519786356145299944126245591995701470963125234931071462773282546810234234930462479582515544725051210849653586106470667666752095974425287500943261437892796313842138825740095790375927215696209615208363912545431217895296079109956354621248850479142259815393874700090471977313295935338506701093204619204551527091838946302260332786088663828801132116005504324242160072295737906321503191517798493788112175319951247334845956092073081142685639413587706755722942076952890320463666257446693537277092956223027318641944870298208113507814515435906724672683664875350741542500045753577287958553647827935060550565459888540722816328558430523053965099969174925106683726822273487520053953704714379468065768568090284029731430188854784010933553338099330431870645626868240336732299418173297912080619329349065818023106000529077911067264164041186742549576138563934369744369841071027260349209502751219675773655667217593251015077312262236833471847290227279102246537038349172189717961457496847537534645686592754723283076441169531003009811629138660943224903873083939180014524786443356418490784770229417363113996858661765857723755060353753669759840270512902714549918451744447221544825806715571580797577407157956179858070164401005592514010300764712712744253120515041811092562584892783982051415886033674696645730678900926704695309556038470022928599604370981057011980990437096953213520496707279826376271917958509546266104141558483878176183857562155253478340984133855691974009524135152930792497561451210363393541898543103198623573003014111531989951540940176664704952821071957405511130228422643093361612785747040236076019855343963825015371962190932350924277324830622859128309400096436105896337166497424192149495991813935015995075452521168210462638310381007390830516749754034692279764407866846997473554313623011077038967796667525667331482073098778987022520699566718849261318383491628204704839198517485369985120622991621478436929251196884449928700617982317155922560188328417628017803682878315967993163680840173714193738589099160388096873534144191329310216613685760445868664133297651795877861360410966786732767441122919098976718514390116164121530600710257666762389678981880579551874724027707789013382227797402441903308160776803491684094888458735498513558388468344285112806483800437165285001688431050453870170385750285838368532537970452718406618052444052624720373845692509469743567068593377121510321807075926142870343165714153808467954148362790436436702501495540688557225396304646738586472360967017302707009041386631936576731456936110080951484608246797241149223004157419745240072984428064076721265747485234152220840650674055438350801996145087334504918446897870895034531697946076164704440085408858629832262122130981130090074463278280044742577599389984891191171653376506152651628431653357367100273760730141330797103899153532778863665752672263705073002078948627049753411649070359780716765651202631869238890647425996080094878734235601746069814387872709318833861783578205625886212854352229915106087037209006709442498136945354501034376500017941365395724395733584961718487287168026318582167376944737551773750927462625406059288460833672122048242406005384301941350075601956022856416270153028586769290851365182566055101650871825783645187686364354277322911050611690173538485824238405576841554648787718597735995078336170382913448565817838310795737606003326040695070058169427678713825093016195528926293531627112470794739679973333368809375782342628970441156458661006008452878553972238446366225217441670883881947899580819682374371315532187801145820157293425184689638279432049628351349200305548003808322355656817760718367007310195403511026310456905698785088640969929330523325540866763850231169648082518277765123834499192943074295348389503549661496482248223772917844020315306202274580322499800408908665641682120239600958993941472070243269718796182398231380975674366574227545551121325828681364925438514727871211104828706462263884906947189201219817423971810430248908819119293710697428819805863877311986760265300569519852128100544133058326172090650968597341128458119674327516636411042155812698004802342996668966182415773469889163595447315456166258012576617634471275425960204606100791793733653143470224819475576420327545191788330144694092711200897707322859061302866974003263494255820914770869275288771006687016759194076496496157966234903513328438062641957494179785405330212946098225930402541241233558288218283022123352406592177203822833031355113898937532529769326230600608313615193259374697252312319298981811256578539607128169623801179568074210664252470309178749058496615482917317679957273613534568861237153521803059270361704563756854180795704648339784284099038946392628384752262024999170413844162702311978902820996956804868437384639534553362564144422327449754672039252057562738277533051803788071909386177642037048576986313870643041183214974608764552645492301101721998300767673509244415935112598852787151254986493163463860577813586465822027429962594760812136188919589700092541780109601914158078967680728732421325687829642348114114405816674417398262065487492459156622506928194180993532131477237294081193364188955790643072732934311362013497037561527401685381631004240344662508822155472919201772726729741770951689332535941842992750553595122829946746950458711704516444706517304127199892486337541547047844491524019175054254365063427947563943917281148807425889931882871028707728590226524545723098375379681135557864815079659818070883324383090420969015953596049632454961385816629281291326280569105441318701244629101675000848993490308495502572043018327221539380500869477464722390760626417740355711573840600943087943260461229695599645752213694568396193084481974998603652550280541545017469279773762683445311900017144128773381433182721117714863182621566177356669636588860917673627464938412369511143395023088732271942201656417178940841409258999687808180879997372761329654033476991859708935453143304021214212453577983656303116790705125387039097138167288401924926790932053916279811233384666770341544528554387128156389092866564842771770884103780079887185603840327931353581076626516443719180448777147565951355107329111156337068845941113450729982600884940590968684319694843444738447827420786699453639581434380347494952390261715555053477487637723293408165865686933811245736978703734796557033796727055593787149728412929713878423787299921705121067579829214815360338968090987118419408043531130949049937115345897952680382921098643883564472546102242204875305358940199296677507853083486006203404601898479500513468947672163974600532951026674297020258828570757449384244925016917031811235425683365292966635308916908976413348771185422608042398681544858496134122766243344965695778833898296020821691286578085408735738215500810335896055895197872289710541171335696912430092310720880659780026709396525955080525982538694792224615678897801970056628139729102903476678168111019213133070843712250663454527472199761282992926312520626434558916813348366473660772685509154472766147936931224843356144557864234726680823811704380779536076204045181010088979641638180296218329772245513603997949242746225392418857812114727431286735195768503436346626295242525148837648540632241144473951288890539589232154073796226951546019817987169876256092933835068344901390618571757624051215904420580057854376276788904228336345007379498510329588463747997368287659464225113988335203184829171478803704663731727481915021810368640728564082236531205835152509150344467090837401810157036748490832114845832438769579576539250994358509712061215774823674272228195284188276801249317805265134583936197171914833144742025225764385297590681862056855157687018794171948588431320011997129174706784719718844387104817348877645687703742798145633415958333635834891038541721443119380754484473847616378816841077653717433882914878969179548544190790014067286674042224892758753458696616202315204884769947692523041812234258730150954246494535466828235007365905229193659813532502585872159964079679438440312966912827099710827380080120487103546598352398505282602639252402365145376267611229722733181473523013219756632187743465390993499537521712904965372127825907611886024811153236877055448093798034350867182707455504446920856362002363085324414667269426818714087228053936205656550879846765522974904141350156072508790889618128573908566359079301671107137632331427412275775652567779880115733886140207601591511930776959447749915949324025284234616149647182022880015843872611215223339001703975771364386637173639126746046132564698453353972409131756950694017255640028554747639949845907604534112173991176633137268496540683226251912064134567270278264293897282205430883823208089097722131788951978720288124797163862709351646821898398943203684594371632661441691079490365650126739476974812202521800925333073261482243422413038589351331730700022649903785543204082071029951323316021520069180209263197772602238323779052655235668723070652915396757034443151328716107616885312408757105574266629264275498256605196817207513966077789365791851201210580694152298572742094838943467998066356323648766206943180071296800602324969191518668657834337927144453796099402826315795806711894083610933126648539188300848660997810850577093542933028927765370988210860001850636424286662069234943264540526445246063078759792925564810545872292298191445933209090890480499301955344896449067532449945904061049639553496257981005207479696795125868175082257781161933884865927676036085098901362648248409497082743140822020040918775598344007632387786253885840080455367301829014264537922830574138986013799328769600360213537979692106127974720606082004283940728191223313609430844575316812048770790772777611345269729805381584603366929348362528751991837089143893882644672925022797262820290499076849949760640801871301395232599753485180464905613043638558392558985421237527588174480403260471637088145351995363725309273685113372838523680631398291948988703386658340844967203600433238052322831786749467798325432479377300750800215206088227184996249040462479716980927143770013850815145909659961024038704083323674746295466670247277493150063392198289035924837075189106134734736541580792353246766245918358581192643917880491067415013524059229039178658553137428404740350795692331035542555647974468664915047742892918972726803159854048334170304825532336218303880270630733074765434555108747926131281232873283694130308654930421349940076218363620521279194548139743230663311580860155297227979049650506849874061052581086732559581850698657759641094501604289657138607727255713807456263660703492475187565381931780096746556361400798252476014954922265564915295040733841803963115519318256018548604311859733835401405603248162464662970320659303455614465925755646077374779530995539529778848291494009273615757466281191436650249298070264216789207069390606636238508296531467042582730366406464176575053005685594243947206767016277187417795710690746199434914427181577962873975568112656296962151528578455611946189978139385769124884044564508317310725936125945090014972722530717462348350442184825915788619351734690673527599299004437065983999630994580469258930735797893655927541933581238999095141261601742911450047138666708006211543000294740050030000952967475109405021098199329570462458441538983788481408645793217945497666977304526870184822124242223562421238911522340167289301193061248532790211481086549198650767273469960417109780820768061477434752692021705871352269273745741443711202680684515178555098521437365856174221926869714308418314297328464489941520732683302237717926768104967241093291976009954307359148903219948823188135964995093444610101043779434180514340398992525932757675775149139556425746468683831519827333524584996502789694539293708051513031768888096810549215106896668787849520825541348693698014773290536448591467731254495523284163105356659382987964478270327977260749122019532412845511155975217102356682433044542494582587388547004887377083591853765442896850824812343294351244213982650772240054699055350710929135807161900972359283199184102169925204738397077629092317911495065254346294369327796824439794865139815413206385954367609144314326469024030608204911774125999045433811599682588323607688148222148813917594778374938785103877564911183513468893912011935692559132862147067609515190123573682696948730568403949269107701114324877749325037024718974190253933079479119029379509583935093215268973520707083372736755972892398256463564413174814729641739728738184907814602344660282339991674119128252327597238626471766681013034474117152744292340914164533728125348794406934812777516500360229344284622970285110028618726243626307813942691830816916069014237739873524763126933426839567528727484141063155733693556943102572732966887803301690631263597112590591227913012653444656766521159637594025535204825339935075394119285510844976587572739994009677199967974330029229792844126303080586164317083133266471957842327963581710919287796578119072871817442738863994670882809893408583417750979524942237032710982576286759838535031701327546593686362169272452396997823460139980891849101841396598596243605958536360333783049334728725024431921101743715074559083578686086907379107950075407807747160352131518356984593717484491040658155068853714190414318474127119694635503626673693253194340702985403967848186012719405616713811070937542618130684300928582262307406430385898363771426033316908801062624695208744865383422144655968340137480815257970206283630993744452986433274225563535518191745375633045086038792683334717317671426442020862545035452039283000299657650669218343516778088975942601732149999032663716907693193613187386033806664959819733604096810101587512099984047523872773956418164572900716605420040473736853513522261412767856963611422877539909410158493312470085497950188115567891330429274743624098713302442147196701686924480900661636528143652596784581944925465684813841373134855114972619905947285119434834315611298554272704504333109815117492050415894970421392799036688924177744400728074846032501147010349958319296644733703623436600743914832338482470122694008549983445237673685938853611099530965852471845236554347256948855930080233726999875503311095566238639361894045853639930485507813243192411805701808857306428607925116188863335888770755772270614605600381414497693847174604779563192618034458942787080339392755667900435277831712297421623636924066207742438488374260660939246121107432317469803143266628444632879392511113756985655886424644789269578386222018506384385995328467868934455912959199932426747520321892129440002890826695991002345732822285760549102719718373856239291606443815682498210276520724967105587683135178983663926038701710699422677690491877118454163345130988661455973545759525382415148579956411789084310927684426515646760356543075065087512190516021004490225605075390859497949201215738493814478916049533423861624768539724369168985543915787741456129738072143254603215376220262176515124068609482471625482344743642934192365456319726309557463101287457998368491463301855741668408907872329553974917316171195005761968220510734280767016183358396922019739712989328639427144505916873318578922634752633244865515667920675990586298220172662865289061665590167473781788177428565763963692035817831420374543184889517158489620389472861694724852842375814847118999384762114854790190552977946187393319953708789946649478706061027262342466158800694491869793653069477253488590047844983131552929133745079249976568132981346249698143174366748236391538536167776477862171322996702092215174746628772959109415695941644851408431387701858030928022110167683089222788454000300345532693918447324012027696615856429954398768918918678238018883645397263783928948827890698822483895574770303509889063573446518758133254190933107918578109289557031948620889731569906773135882328540543996165156344043047625639578918222804178130823837074763557873867439969029205834330012463380154068729290452122658671373995182114506689493290665014173077784596677686439134445034714415416326966064989740393104576586070753086133251738728787751937470731627417428858473696443212160266092068426599561506825265546043745464945464501744946747543103839139977728239047392776232759262139986102602694574699803079607782977545880139683976771159992899075441455754097086901003635725042229717790184862034937445743344182803083062085886197960396728583959563718826494723373397674610941800925850795978547565462530065592654316885083022799814957856368256549723797342910847255207120911122379562492298273423833632742876331293315060651348393555519499167446742600098005682725233897135744994689464474806343161721874643327923976634504233889615198094111065823107753218296454541149885593623678931422626888485298891833571974663194434397783464802439932761601852481199430113914314469508940893077138574367908155289013728718558656778011013188959718374697538362808663805194576590075861502027576402609757044617776975156919316227565443872949232377596019252153497212608498993204387284085358602547503049377302696088973060422310961762755038347234525165830301414756668330269472941957383234051858067727862646535016277783499400382421350309432231196833618706380665973775949430796492110400230945488633299811973769435746518442031598101980075742428904177551615830807207054125414312016747540038262999001040897207791138780515750042329735934758491492922787571855633775832355922914200028819557206189259551042024694842711107676264776129564430109380188965209830145315800410685951620298955320443746908637031324307604527076836634516214032756401199659072304014565626905978042785949285547415810322997881562348551783497399385256840365427538669676975210122775756669655339558759733460775239992158550296282125447895239947904078593728125314544669625423672972360266097007508608143736115970102435109031382821869058777964215645964194319992685564753229184153237077878034204237420726002267207596928694721950258623878123941259261321791562637861277685142745977026830294217167693290447695003648118492230481711883749798807689460473493565047709140373814210746060725433257127758113901053320253898748624500733964041148620205807102255024566197519412948911468062197903815472982124876285079617878514652707534555474259559855050122782658074589699066194952373875585251680523992870737075152399103198812923836852232066554859882857171708300027375530141362117930402789058340564906940413291222889100516150206227401637270456998458257991901346681724375225046495776955671240042827630270324677461761550839106565048414610280145343054856266660338088443097566948378487567645789479863822361194987327731499952758711695641641089254283132531071902411134586899332180127495439079718758431228016874091362890661358363312079126857643383630362537868279356323936302356830876193064008371462644918553827325006502171041845120650853188727278632775416285868900093826962770341697746781725801110383381864817642116206857626096372125017516825857092271535751437300455659391547247376026695887661441929767055770196816571420446924656177199840283153993973115242648929895873299694528719823920496544162460143832400954490753618425903478931414090893827485749345998483638698519883282557426537889088096972066400925471563373964847518090131177736418881420734774995070145722128080543346732944913073764562651528455469663754519192097012882838944491743109854765166233929065375556217233262935873394394358114026515822809423592925153393026187744868975299219193394187763638982936205283815919769819733109539243061504573149141807512280381612497885558478356452265872971978130495720887886646843479671852613300929971086550020348968383823081050040251276571192737986467588319638536108990215129447295703106536801236706918869916804159801149332709272444826138194075165411574973531931662736260189724620611992836334330479226482406191998158041616480636995252256280174562179834543968371041022794032334111142065408173490478834823997848056630811478911986863060958049149539502485777406652897018138330223973039582296442897836420023810530215689966884580563660648518124336334856719717897111531532386871632241422545894085632928683881004770553833614320257317844327224153100317560754644258062316834984220228116450083274324357067527996055884618506007291994906888340970938937029194729947475356069626156438754501726525427176819019093185329439175926024923571494837206288293738692223149281648229164792791809486463452108015699358605982277410050996716625974711831616735008575317425736811509348331667318890599389766654371249537675948667759273033731602041573783847298701270516419328312450892724326913620916490941412741867557693662303702989623934212873630254425607685818009596131780134871890501201251701004451827786202507050098701084191869526344036043343303117092248926170784003983504921689424998982141008731107873140301553514958439655700457357199829868961462951727817039599539359165228025740791824625210164024331991766329505351562911922875699752596264691970249662373226095978201448169956960136368936074847231045288411000374269665596304991595211319843427788708741104393690769445697182200168723305460587610599399593087975533287480005756530605954958246474604067743008066183535948982680963262485397746002271770504300186856235423096862815419853205954066704692263649746006322906530285461362894715873039080078718289813165026492610739172298342911757920367546021295447503828084197222710847901275255239314914118303739195614251380472149253638139010320506328533862165763394746956219929633748726125619320089452000055156867935013012329245139652357606176649625198768317821090027366746301778757376956077554066633357309860882746676607097444939116353995963102258000016269598243336360813096468671018307005163729309073458307126515512586670027003452593786805047994730581600993187528612360217421026859111876373413792304893271638035805960012981286845722440204946951647626148305394003878989227359361289429279667042284089999383927573633802221738997645636415853480877742209522089108909230687288866215932518817157599982117003233725892895929735350772173020876560751434408677257129961555320459834525326216101835641681616356318429922797432731156362857720578689900271638292336582034807091848970631422302496289576437518567689083582173700765117502735645752571493605918005781052432371246224323354935047693943319583340996313450596044507921642102404703177610209059733234747991341748985426713619447417443910797736305536146080118206174015623246334988847594206674182154850824825725470603550480808941855809117374359231925737245442761493754901951488292773072694800425062551704092937261192547068749903506994327291567184684271901654922117799955804715589516612273427909289504963469205247206096225738395479623133393095255616163529839859055153728019221276315968149389608210734226819397083830245490383385881798748056519317721538163201733001537101375001879437382658558266340178347818067141390953887172849685221244732818835106202728384517329345492375306402999260532242929475033455652222520782914000500478252145542667231885267369324606828269110518696385400188729685376967177307500935150094851601035075101987066872928192157392889086170935386783691852345403424451462155210734563419892482884530032381551709339836396001471716797986153119287043002697488893753832334770840443112460518142920199186036746239215434635344404138475076333377853815207379378340103288020408017675744067180120102553201867463492032986223735238475906761833838962132842379680038739082146582976373423649341583018508746732002276623952160098782375716753403274521866062650038736415592463099390263874682331580008705269709713458583567783337276186618538336143804501784023562961427849406005902093627495052113157398197121577552032576916357449500232953592732002061001196443407515507997149646249588109013740243450236644333362170757704286015444343265295678676922128406155293566004200875249861133764846557712556824318781653679699380230450240689982963978123246971979129321688079314990162272584174231935643486017206601754085267484236773338376768306912689004802709445569596461449323398495548765203726467992280615606666926864732288238277751374130424798806637728212542811325430058341727072535745659665042946494113540197028525448583331223519722630877051021214425961123460693178789841643697358817918975089360592059660910796620639828702906741842765849178440849531874817748155652948056798951426987326401923423039349737121650197088439467051982964649654196717350962673441757902543802225561078417682982940221897649556030906710148901653900554265644824644703214247900342333411133441473812147744833355412487289902349345927409776632685435869990702718064300971446640011501419765130492993109469453541762896796711947541189165092702822723944290186072717072759598153632486584541390254800803413897721195634593465431610299945000512342829703786543565448884938205013464043445121090396472173107137696579554097221704052875595571452629145426553328532909742899344259293150769854366160834131638585373917133797085101452013746529490908089523563169091581224480886272693588429137454145119242781827979575219486820770781031277685787675802755045164593510812914557587245171535670612719614759725103664737976213318744905778602798115866828699109516776029115531350387042600717482046032996929683239245520224109362879577937604518896880982173534611601151943404636630456277562134022585341536997175496124971820920057208258993339193964571681572653501996566348184420308415144695260646361841872132645169385667448022604189542633784160078068959847994593424359828656942631519679327585995190981788452579626447366141653003799663348637412312462914153517221586030735769290786825364176611826650755413399621306383627160353697744051111291186293671548371268525613946810214482003296891666085860816584417401014836816184589700020149523850000796053159163607072411473726883695155127206449161216225047324314551924678877468990785281740414009693894133826834020390509850109558495958666584834635919954078571611785260098547777036840876894638842870728970263913082830478444253487256052370977993872213888782204854292903436654700150968927283066523882032209983086077176938309549253318340037360499754441213636325888694919250012483941295141527137492443324442948858484634943388767284806702469649615814253435817577915980865657964003954063491447368898785557250046312340190227562380585384212899791924556325204930109160611140746226720084545324036088442650962547800995353154609839099074483640467726874543448255002291201589317129794011801595858273026751533537011833706517925357468596965861278872069942795652086816961303117759799825731040204130795650650434073002141779804322284127818884767041729747857533579311251705938497533040121949657067792241847134218934104827286828172064923965753825807128112671335445885938631940276281122322845476748274448072507553018759994584126337597276810743524921088647756572272441919563345494571723413201023307825817256372882445181776867607599352033911062967841460937563785030656342898229866905235312237040952172861185709930426580606218003001768492162706820922068064631944187493773248753392460481673793144180969159964539887642473433291118179443680614858306886160902675943898357085386476656748226401627933110199466047645880349753284352289183870839990052481896536189515605440815023215846660591942631257404105016368222445036290094217911433843373558789469584992992188922747057775227166102194663680550107650158169060579678798795048050438715652137650606825386110948190699103527203270192044031081952603711388915025524906022560469077360482805771550681520683448821063287091982119657252027763066561528653595284615397213655651851996500695937506216670417213505477799522113817279975225725451267208705383750492944958337366355775216448859091405588890697556343539178586370801003011095936825470054595493161814085743386141393290296332001323616794387345267663052540106339274717416010053872008203454150649305884190482102474443909185409462615342732377469020555845464024431806524367182800382947616162395086687615968547458980727814135485858943314120460367778031100056857124845852738928786700890979506786899898372611388402950423398322829776753215223128139091766484715667619627757220894665967051299550525965259002613913415238730621173724164029559093998247860642980912249126531411938044658544459097789157098950039748415077399209160126416665904765432308409183936091923079672118585113490934348176567488127626294964154918403974130939182441058517916280502748545665983741994354764339544861740841787522074194011811892956910630004198317596534932719695664007016697500190367079491127081940314088244047088858362969466465223035811639079734214667936630044838431776950292675564752624926612500394240845903311943703563784149008516039900087425268679125543459474136759290550286486303037920358959275921624806810583446746106812124758353810254891272051533051475879087082269202194637744425318432274181609366945216124781831238414890959393079926274861145612482818350943705498563643489940046795642998868510591426252789594668472308476178018862572184675465998865653632891712483292023191229612787317013358597045963702971905712428566778497207960868143254427298347658242494204721134009727276894805780878246948589139326246544405533282776742180497186087475054834382007536307798337151023766026004153693005702558772086587125300805617186399281177847266765717471359325071379135412210973647850675208907764065013886864914967501974935230883932031469829422980685716470859454298501368632478078101968027537823047333852562932953082652624986513397458063673928931058161121957268619462965927158351294475496334126410965081982822525017162963404954713016788735449827025700579406047715165544701569000929648779593484795896472715162056948280200258753879756026979644884177159175363082295078416677191558208446065704273918454328672586372705496544467185432533516348501041904094889358043280647928601215129403968317084577238694141169488905341262201603668737924487183311144468019852185587350982342111128647133235795829637573593959903989893603827820968685103002767679017618400492250899531130584583594995193955224567072974202242269506273003956211600452522546467552169741340556420068845516942769454593548691622589028160487159517181465831370751973956236641859680667401573090896695004837654724061883605313809296635556090725099074407518177803161247548979954273564823069740895425463528611044863180768786594917368047908045916336110011232989130495868651219208893252866568462704475988801517756781830694459065350342653384652319859518763692528788847891359958583446310713708578715540502147583468899497054412865669287654314553103513842965501518657532479953012375328834986926004446112900344573614365351284767370096005946788767637873710349886444313151400203001240169699608256080587696770357985627233948034758114627559879136509745015256074973443850057602056944178025395369370961854019369054343927315847488192400357066892799687137082282889450792602726697871916005521492237977711730288780587369191340576189272846562027701084425898765946007688246943227668720146037005117390251124715214381418186659737510282744909040196240494916057106642813426145467123997865836532530484500247394893058407651670510258085708784667466786486364356299229694021376064278474447736518894927619701495363816965921275254951751499120096444002357660501464394912662730460321122988520573926256772675113345442824044544163946331997152566842887496774794511938589888107134544421929759186367746046161262457078336620482640353482201151081714541285497042814180620783172094341360680371559568889434838910187277499843165126288416973084187593061183473115070547099089284475518591641625368499682899217557982489123909535102938448520532524426065252919825460808295794542449507084970851814650833736979762082232691426203839109773052645426990963070002351235351232253901878956363928336128639218919986639289049328749438709683490219302608537673250571412247511023310044126574800631252889861009595876794279102411425351269704287369210728713607859698852984820259318409524938239104902428323660077631998538640120361690639832022048542782388963727589876715030753700109011039307888518548171040730653820526822809164363613960253995359826312911918952307225822166175410078696330813072052907121560188225707543290380040769007869822812819015063741179659818126157674208202220724674470363530176948393973209779796300147449565164596187165095289335060078968208065667585291978527227431425838629644524452245469129070061336317514113380953568697256075766686823618356147700636872717156031236315355611802540485183117963704466753824574515706908998790366030895383769519153687904053313233600160247714027721334774089101462461249537405270863109781524399246223042794872480381602395159889748616195262065632339869785587494532416551803058347341375509369214126539910019562710760390921533891266080388322140900247129486407501051480732258347045643696989529620640552571582425466971234797614999502015226720023777725661740766112045371404084755991785921549777731369774846482230900418627946102151329815109292477448815574539694293280110724885237241465716307943723252423316783095336733172032927743949855397437734541506280648453908879753108590744281865921295620452332476341235875121173214584548068612798793822764564222022326133471184497920529300769162629250432994447363786146747207601181606778660424116914870140872710658906706931815837852854838033473749252110911839783848933144815807633078138248341501948863405352736902898580900225738421522883252234053980075584090568362345633671703841602384290373827022719105113269866143599887552272742117541151702182202570515995251527585391758494252789857602515013680910788282176962708072649726978233830686292395724751845462044923814287375131632088431943520748752978558609795510835936250344575351839605961125608942651403683403385064599812729249939435185327449738558243518942726987103771897531048471593922815953302654605222550253715593893075124752235590090166778885356716115033462648861157148929480866652835960905361972840495110066146490232497657707527267038823310278289935069227913124038929637843479672036492194443418548021916100973440922193680633499802954273566603835759579151998111281664077578785347401137258555798951590886533479141016113309394785739958565331084671318017595901697488707667876604257064626126418311692615170002030828117873712500764528418802451984552890181635873842099659535958643787856397186707723729026814437353119652835069928123703442193239200987472801677860707152555783062573997587083061151884788922046758941568880386944910574582637081366638660630886099287633422775262363703527078195131681537860863978904393472578934171386016956717547494427529293835593157381584640349170603435812678417590555483621268289576122338026255897905669174707957658295000286392660363676061291897774721310323529707366092316027934292056043019998691914945939985163609599364711204055638429011247346755517246610563142282001333551390340617360507381624098113724776321535976538513547196520416534274333711642449843987822849878380024824147591808334670301987259478171036595119254370618831477989236854861168098107034215004235445161334986023011478357123174720656212031463187592869100666989031493616708275442782648895624089575661905305288098559509958369286409617950380746936445184697132905003818230370639908588376867966268354766638438097418416271205366708344952587806011973405038007826869025801594941673693604150874284813624143283563301206776669285873703049662533822066111955330155357712269103395093579269120877917425833525950568478661889619437017906870008504956279510870607310078100647957136219296187082237689454176183126955132615880921298105818777107511339487565840199751287269348523208455656840961270463003904489570219831725734035404498508799368762824036734602519521711800207971368833405910815065217188654492667213841871597836966256177876616197474004939233611811769719073690118890134332396601425899732064581818412212957643993876508568354707458586063762273388092586540587922731154959940279848108912028729301201763719467635980764024863722980406654512186647873788589557261748669777507867466958783244075726005046226724949858024282427691919065819386316277144713502239859887065426816731814421885716146135214960471784671225199136175215360329211413780427149474417041551233869093187128916996146086565455289316413714194844790587640205820637471904218915024224621871604919805259533622014912954385730867153787063403475412229357302596843649124641802040777566292838514998076245027863137370443751595893682520521155244972383654279083554303956614736172087527958722263319802478058353723749224650276311480162143203025236842264524361475502476273566805510528870818258711965332431336812815914340739545096583650710059168403502854425669031341069799275703565416526917245549710111797375636150817991438526165762298327302986350437990863459456576096243527787952321041509224298385230984679585809129837480248449866199271872365208136408783186547511200193562639457609783026706423033250178063705468173893998950318439217466988660995216442264788599211019872031077930715067543102001070012016806660973993036033962570670486345524466822822494482607559923044349165736541644125952431631021701542364737342308106699929226667441323597581058999383806209179896338570060870268600626559789394527661615141489599323484473558624326271177720414237193350215735885765005305045038199608370492742561971921084537597339469296838036403196063971133280693128826430056141453505739163391482470338703513415946208996406167571465334728996799235244274902263313579777391281750428707650200986147680227084474411036650521700288090826525008136748799937371603306976589202900858188515676800358034028534453840303001470820449115005864543398051541893283886592173471748036422592602728705881364932608070136561158941610861338640827664017987894100706736893937361060205324804246123663956723564786141639549945067468222297539001882562228879291378335433887580044232919022342618483306328847277123722894818153928374748247796192224113120451209800120968069693152664206457416816828762315133460564607954761377581756135364633975569716132524088129999366786362395301262579281477641440248477799714253114095147283603414002440760604417393333777684763591418789498083525803338977681371785707500566979410885445527701377907328473320883705962019995368884303733396611993945747436279618746564936892540291425710708762405861580040516709544119203236703312331485666825731326881854840032922551566149744455374465583502721432999192830290236059012954365228387864394726961365126376202536896809337285305590463848796272923797260280432930283528658771395236525252397536608955406409509295601474272007251191980387220377021279463119817341523482233659442578747655215314262449576826152950474161914059032876741368317317484670692094354554352700277259666163145735151153170940954761474908498648256761983601353450895949264139318124628641397412828515934699370598428366357713486905900013414780954405995827565208283523132136473946691664295080195792579841211607809662204288781945247414671476296055812074363246600589934516697413784570622217298896316661728441015711901227720124069440744777945216694527280464099079229169831412207008419467977812747755990254467991491107212872267317901368318885758659550893027456440790008448605558510952635074229915549140387554333520406198421092346305770393790308077885826413551668489742094430336337803845547534820567555411534328041905305386325070543272902642663888669132843045430578577282945611181510385206998664405042751651502756880081094543059854763178835966287353867902264827195759809315446271740150584050557773222063652447415941642683896242575388594504778888799214478334638174293156118790474912009605011503448712229659116928835754856336767675813879038204408749161049729788039827316228988250240142549631978980908796541453816208246767950972270354705964642132887508710673862943854250406095166833186351955954252351316549321812764578709092331595428344209684179512907653170267022454813930336437081276789097387948398894519929923669581397013780252949151433319816028864640553194141578969245530859020615234484181202834003023920769131765204482225413942755192179032298852274493047733221998305789011806179663572545183895960970599198739303628847906179633869997876197882716523043463084552006930921156246910378126694283790202026342054581787397703318351193996848998268711124059515316780695084929393846137703233258535002269804967809020356436241056844938048055086335724337567362749542184092545327163578579581929466310693497094797007356922593707915432086116392297952424551199918009694916921953829643839549506643328834863276556734326078070973808524015484953846305955760733402642132068338247418484014773409733194573644079550899371342239451548495808856976762643404548185895316311834299189286238825835972683068637578355838040968108337870281285914006765341090521297291543044322385184576832091814564145778103897636584711096331836980521070262515403594200596024329672683762134956309144092701884190693046495531360430801262316227485640715521029553044384812910774408364994845264500403981853421076787881144311701760694176885421420254943652086449437458970336037217675027420032423874278363968192440778177463626529757054693201298685922706081932611040764015352529454881483582680832602652231941248669566589900767877999939131509946683888427837509630274856991307713467668638976338402925864562866918214205044669717834511291211852013014670627988596240128235495188391713964412390666970377834084613541354518270299453309230406898407898555028244832890481280068643409465921230621498025340578451179998469315250136819282883610889978282856709529717439757980702392853993984617915021410359345307196065909385207167705465901712220326456280114155202007272910678884127749667306257521272539533794551779824022741877389873621234324315667761190207108927113142901945197716868341524559861011618981549163007646172931170587926926750241361439875077776601533095262290393662475739345321584195787818522318371853601020866743284230689433742891468695866838923035227492571958282238153478263836790655686422027179650032701064532284068846262033030729542813558251087937492615208588116081601984023389572744703774741097382643901072672241024657754054127913844339468110221822595060929340560167267762740196162597304147399748473869102852586451706977842696323782587609409756585911813845384153846851165206052235086971371672670625645387081453345135599347972848795160913878764957459542084235954050837701177804192371397316853929737374572104275323487618737552809672787376393324698469346234546415751863621486942694903192960634557470087463815070180694230221385414389069936606469754973783881262202865745785988861374491598881348550900485565802742903829531924094238244918458341276143036427074578128925025253591651402395627229514319941355620886430285639239486194118836109607375621618167604134628403958140711316342717297810776578359367938975901854624924119587485826014653676301464555255248350702128353761678382739272855301026127398417781505268307573115154483665113006174883835719430562014306235117594369668565244355294109280305319224786636295920676090047561247534865403448610819887382042666989984768936843060131297970149332919575633809491441649493629390137414631008799476827811777272892266920594697700361087227704841334354705933788286780242159157970872574134064410758562262391480186500834469878501114689750880996235247230672417382354558048030578843178520317771041227012023245752705203163641098059620053506609396109877325389570450984202699173458605054243545611025549651094544450920154606927929667009518171022782709721980083627279663265223446110302748465344570749787789693675493770472504210320148673700340780357775757720717211202898879934062124860054998800367668564011388517121587389107074449642073323413218538119639833683968184135702143867813147142232583046189652400018170050427785112737237880074937717486984754966982563243860691329638470485693290082032955546240569521749332602460024208640769767214298618090440833151057558969932080050300581404648710560549136450017451191500764267675881572251060125042525630233848600054200297230498685377421267772548408304134737919664092844836195935309268825799663210270294051227615119665110236101540051207482999282334616208595939582287669592094798608912205465893209397913560256315349817566277474634320644866749683204192506059340058620124229094583378121491341710691398729528950646639936559257433931915211188118150031037217636949249580486781708705017476376164347972242677851421583390444920481077402571858258747192807560202580182727601420723895376653585370511492569758155348631847871791538182602237031463481892242944449925027618370581427824252526696510028167036191673255999885709431424828002249507770358405502839097858748300162019155638094948889942610484874421100081605241121258309493148213599613858443652533687468649784647148334644966771721801168436782676766743786606108007177068559380342583111244489993264423420590148787479062958883666114009539952283257457151663242846579494074739501358507007020538638032412748347369412109871321184822927938011223499147097448470156106433838049774105164191485312751248652616967228120926928288490169964335120359142671926321315350124069257385705955624593345010212290140413559393119558149754184473556223660448226360155135699948845042163033818539810441665784027226133674531405401486011753556704921672332902812855424079917737357784364016070711443977989648408570319495772155233873133083689069164115158495106527840479478515087049649134062466550939304258234477436176281806402972811828181485307497818059048855204097299664392308819284756978849526509160816410086115070464133919857828437142637029153996702836051976012071424500745449733565254746768824969690155911468690931032994328348862323235002366802792250602004229628661945486587621542915470438720533839554670806520805043964944720424990974349131835967046475564551284717154342495281399597595504027860462447591957749549297291038883229584637601910830249957535035626240849468190263041965932059377978793600976681923098701503169724799345643562142714691557840814426656517137076483898713737079716231736758776073864204905467581834505887945715127605212743116742712880847121175633732837775870451168720487352315908387619575509331926102335125149557572126367216893828742736467876868950247123922071687447316240431417569563297322927352291177902357246682672792895544710760225705709232215369477085029227173588025925276779570931499154085465301944048471039940700044964177702221495861662091595992077251695375655612465838176489075259658959721613028629305538771373048967009310130308040407064908119257236833528501776393612927560321470465479484298319184643004867184465890361432524884749088732195993979804563618255797311167861403020188028943717708028188918238881718120242675730386907940678583905485475612151697555214308695445638812529030045298366286171323297230124525354595239699117707510458315248277854510621583704976770342271011485818687849632788611723222486452151434010636104470930730669529829104420110347474211082192331638425166130792482548036895374900911472261950307647344879639919171518020025874262844954538810292018458420173496159457381110059455666216774447616130062184087887591537120036235560332027636935353177008427577991560352132020231017966141577647463166442228905013341001457582098958397131097790567554767754649538184634884212314201926978100868736276912100610751243838539694900142218777670729276618008649708139663299220932289423451288520054735906753488304959668489030066955204844027369591030855114948289269511920623849281075815561129458984063703391233490259192710054215389974953977481935345594074059108654405388966313666652455895587282239475738101367763326162124912417619658976803728909250305492376675894577543586938668027763128844988675859283649885321207108721783925588462689560443584766823650008961982513543265945540404722211932147789961981378083375233379978941919542742583729893467755251900229685970663275856966799608543384095867943060894056185365508057587514136295317871743925608960841265390127062004199129040733796144174582223688720590038122232813913062129150392272341542278647731732888558350966101533766271842136473680806524497007351007843370781206042087851225354636316790584003589306260170518328312220895215209493740750620588749973631548555083354635127446121384210775893710045278926671763215094024685336489503425350077959992302675149385701103540590019628183286877356416413300888468584565582375730023134054567578584907687614639109227862831556165225448146034225710418915633615620776355092527612952486745439779419703425675969073570442703412710636059060479077865422782076628787908023894908794250627198689890895536164926684298026008880103157367672228222279776669880178325807587864767449959635141324475084436247286014359943733376544147510250071927730858440629306781510956867528022695085572047570105398586784578267726507934082907809116530498965717178264551947637665594363578929266665766036264202511951429128171610977000381538162809840268820176880090723284443360807718738227652386011740271319655163582618792381779716570840621513227217354485852667107189061789920069134820371717026234283812773233103827548236825780498956765911154085650305259333725716758302636275377089494571597593610260747453801538060552801312422667029484256996127784476772234965688826893062512700346279595201596319886395688369621220170505300245032890716391176642174803709062927771544671727997333794706776524014834667198440529085598546775778217579110136174873219544138309350081394796696063727100452240504870500174597314919022193083230739155285558001218355058509915309782530061556749465821630863778264730156390254082748099526317296423533870472296491444207584605020331322299373211929532324099223023832887529469722629226048210330559092961760983710388131662152582730782755067411243895592688445786846143455708439364075445982722620569187174147505322450533493988361398368036850492872342779125849410119102558757464320022260951030578656719657733331395604476967450281561246554350282283275066353102789287833162931800356948920009272560160559026766569636750597713951113429127604952186306523682262197252259728167105647771751998981495170274386260485373178986658029481830330309605743263201393304156032731418418269709302461600282782672013968622826975072412281818035521330327570980237435184164139806385399545016399148991936721319519938364102120247522255743924848636973011421729320079474724233854055848125036534696818066623401074965362645451799205660963347768811344412847651270042018817752845271746188720572352797484927667384559146471145368285898836228112318520717786701377887958525723162148035193803314659758350993771858221176811033793677952646468531414246444048570773567746268236777889618693302679965746257831329481316490581493198877481307743583208422155939120886638090584453620448742819663977876305674943006166517533010504068808371036529711094295634389192518066007997411858140335373487675414302302171278312869276692015209159923938018465045342104822068755273709893997667586518759685133269732217688686974898341342488340299006435185223297936140351251110845628019048432801286628640490170363465843720623259549887545027108076382492910604834139644770731494344224281316892984495899071861625791109447987613081931975727186384862027051744615651984165355274872953147578089370973696154969704033235385088701383152986994221095693802725807401943947756610681096398897768407693330529939081547830661629500986555048650124275915696089330593104396691378481573593725347132448274578951790545527614470640463192645414168090713312651318367444213950972334853298932812077160767504364961862658685372703488232986853636036048596606032645537207609343829328996787199118360797867008301183698203512874233841137640512169026656994098235511600145736890440225774568059479318105328121926066456558379546763186560971607411300662252793448166843673810372462784856244783976586801394251876267347059584349757611837685849672790285923125294922579432514952467025556162152522363144495952266153153442383478783291955769102485725407467807328858992853883184378930771567895832236416067152794089976085222656540207120790393442707365979581995064197796208409288301898807398050880626127253858769582571986770932163342344631137313701510173299584611655343266186660490326084113685352915937409612449714038854124682136598936561312749221309515510479737358874599123367391194702806386611030854583234798310963330404212883277695305144673506841791278741580915974015465242064522924038739083926125779200986263606178231235219385159451737662710685219343231027855972634630108515843533468306302152607141569572652225267391375890146210389068269749415623728889728180168291212534559356558858071789831283153172828185183807811315845119967064819106223684129463779074407272969374320623417031535255151440123475786648921453554072564089924487214335900410139916414795293285360576391556397467283290420637854114580307773236840826492237802279842052233074668568845855919089923210217385516371316795992276435116156329196151012439478519120220370374935732811545021479348157154010582587168714009855121341517030565520039534818199900888320941793345835523944648291983986788986970916317525419325948779583311959390395856002448461697728112014914153966527163878882643221319667705962416398086996609887089291647187057113169744382108161521388991895853142737523108526778619256324551631702839599258982351061591627946137879073162575025897459186893677919533438536361149579760037807960760790721802024344691625078059648589344389030061620926578519959900752675190481576894107798683472054669220968194237511294878700561202450588197416306711953814625454893753665361804085771656346078062915488766091986403332812087094589126452625776019201780417542125710096701960446151363599809356314484299655753936552857510470422015140767327040314083545178417115919058614512706416773557031316360603478200351319325518643227864731715082925469184145775478733555523441144087012023386407280300995180070221627238592821283692543474859391825080568536347195525362155643537529600890687367470968629610269417893848295699357551911086348944964015705787195394069381157160562319837188011066085379809394811938528132743269534029575367547787040949208609989892029010844579450914669866554624816195492275242690419546283433615262513054233241768819019575736103312122693581438283123851058257678730350376455758307891355855767381699954360558868426599934714217172542578518202791983345848086873397080723807513463800560805889177345182458469673714300290160967330559951862040461652335289976682494614225242540643579987283732035837146622542724946629072506812804794365135423885332817895976119973499967673071011527683117690173851023872782290065852597307415496085075627657885148063385184249931734751118968999050550329634898737638561544288054362955566960804453932593294958228322766105404370444929903219634767598723338115455258784034974810609287867287397500479224403543552865303052847834068351762520796624847944051501335376226962081873678726470500079912154583062809117404666053576125391228973758668109569710895621982498852907415762022672346588301656839375303108147559912383092105740953970838118382021338946591886256041409179547784901107079722008775375566469721318565283083715615155953681039326273215205542164710565768924389917056030393271129179779377593995002120290460596342937226752664877723378929147029802331707647836537969289358503656284291155227013468328424217504029784421889488569557140324748755587394055485707286003217537868556786351028518696725379975570311663530793463985627980206571750450643986318922921997199553553955642952034130147620343336772983191914527746581279734292115723513917322749507975948740112608298525181036103794400672418600889407369391267851690356017626574789784615013359015638459860779825851630990903906597955445753162058167850121100777960226994955168736932317342148870072984681422268367451872655587762026943491968417687376374795757072487646237895460538861402890139842663815141388606087975643882902522232587479415108213062449775445269621991050080333243049376861157241662365782170948390268021496868341637556063830918190187817895406871594800103933003344040062131046063540804314786940005588845835751081362444755137029715787308345795765534094101208266952661990682545962666014141051622661365407913461508393293765922182942929627015093433888529467873595368554031811282118454936377950217327567368830592577727052600058349405852345952374901888848809884924319059599077819393046651406214314531571271538733040548314627916113932967197052226487546722208431816553688911586387069225831531900760750346301118225170225931328610946952975287461226498813925156604134702828353312251678489654359251116985189791195159131929601743551427604807130650754177772491655613567334445400677344583249336704494600845301556568391336723471149262406005471995157116603231971690424640071602928909078986491427980445456806145438688886354363442023669576898280240055355383785742115062087429993312578961595012285484261270200265882567148165352140957851059495120209828668344236018250132844329897041149103731708231681635656023390323564700270099424894030874066597067480137496498554613738800479295185089679025415079067489962519372667953289348134669932285712083635230644652190753987790974509483248466975700684167771717803336377345875653767814251405774813345736259787548230293681240947956269458003005935478252282389757512298886473395642874318368671741465040307888053395958981822752677330532797384422413864328819386860967021651467828910641421034972618307390993405481077145956867429537586598339053119538922557222938480619255402206600421931469781684850223966155894460632052580944383278346866226748437939633004168640605576570681839891158691885113216085177450118038786963337449151238041437205509440148208771937108180302160576798865897973498826089469079214504492767217663451981492002893032840225256983139482583667238630146406523317982345029073061177381019214580315296372492246670835038155790008464552944735773158794518304591727946129251416810328546225671248653159662510573989460144028891681729315867450975745627462095287586534091762742793351606980688910819613816366893346881066074019505861558542269448773457580271129042146098603524054805871499056751671503214156099596004560162720439843665306888800909004266584281047380200661327602479183047835639965193682416122289846894071565420852808700681283175211446498641136266911075857534114484355381160193806845541304240428829781060077534475002852210716286861465014779945556674408251684065192261587688120348759043381067536458027898529522919015773418027403230135300648488455647652116556766920677842437940939397365070132435923619972747194782914423802330109320150022049864832320045050477779629790563071759910104115865249016659536400859899638743306659308908918035369381467416779842696349763324042973041043036971737092190094424204776209222377025577304610245658170762421277739058589914558334011673069751987489811986906374954995278884753579293140783267064261154432362804915291540318537451298711483132785068404539780492163748375592757682466876893365064917683563156216694776387620368172115914537235731156276855008368983595238871938727270808696509821148032713711664387410037554087301082499720130187763383897756948705432542528257758207209928759269258263058905348335634925180925090389520013499405632097070517574276602605140377039855758663772896239897319132844042501232405971773567552507682690579770433101533541667242880343710991857175290699586171283457201041573331952999872668846413755756492934722587589438216516907467051324140788619496472740420279125585382388980921967173244168321610517293898690953023453041696619987845716876369513528035363414367183128592621588955303953780561071502226567596414949053269865938971174882114780744705568958481976152990786148739478002203832235855782934032911221564379039420124123120143341041037562509744130400073298301507243034374478696327036387759006150187179065254859189818227518339079684328394020570374893994296770301805980203981099606305072004277129224923872772516710133947618577023954606376300343366592649874261916775179920327380901225072509062330972453441626485524080340423062684423875362542254740550651393500476558909814936160895056103203831401738023060357718911840205907535030778271481965131825374635491349604988564285669749230977865195608861515262460580945489157709819121774216185281265353323588684553623139958406297772693419158562669557417614368900200755226765248780986846647717917638173117622563296691013516648185306283280094074205922638252955142031066418446303556200056610540530781999419286046167189901491149970344715960894815491405978348676235393926867520411719173354656822819949497120750089920224051914989360696853922853876781238182351175891964337382857989290552448432467534375868025805950128344487327261039157894781209892335769557715608314923664278553528424085133873843540810960648897905636148229624624050633218027565539274985357458656867539188375705368649669975691726279307857527210348017090682976464666315577296555993885160716283415671529734154582330328349124822289149553642686560851590499299822150941794228933406394299944541523650051912181111514664175205316189530156269340154014349182055194521811276924129383608615722720853913628718393543713406197827997826142587271807690105460702260396234516217003412945655495612606944481257579244647591376624315424138005203994813449670109861706072937559250190378619716013468635357995435789445365396950234471745533070742379642238432721475403335511196251928830689644325366117706003092227148076135549545262349674228565586244151290993844942556972222334351093259435225742859339763099474488310875276062960323310416742766649943212700118882098220890483981784058622677505789356371305188133687310723239117270979107001262041314221415790644866722282988025145637494267073069361106435759394473639240523641455510339187057355080304650279773449463486924527667391274601801344126456924338196383788610577911801668284322554374471805277342452547650971796503089635670445646809956539831853672001657566734507974812107227541352969504493654915944986789255371367840253262503677427736139913712550225039933254622354531553844946542308694287161799805394441610494712293649944163238311990392187223003049830781462723468663889165344381986573934155839008384334361763356507098010746532557839630221836376792843327161859087029625980575705779836559496101764810272104482019347950612013844358458088109619855182607319931689216753437100233502678372944124027023320145502943673547485165345641850403561048002456758128579015605362611831250415941255921010429157629488435851586774735286199142581289801444887056909489912077076205531757373470463479909332648670508494206547968471101206464539946523315593070150119000691428079803077385856821923234168288531569444621155294398442493394483986195959661500447878852490981762577121582640589194038525866086623107060885159913323894221098722607686274105093472276974704818424271729956675231537253326501376531266655339720294261554611123704076768763907351800191091198079133854475595090895363943603414023229091949626466873455627002629097506850121634119262397655033385290706729670082844774027386845933245851798633683529157765094661050971401836877058888636024532276028307904156007878301860934151638786374279704476344330347842908376796743809353631563364776954788510108000395920258051651754490408539129613903541091123849181097029148300080489691755867161532425299382947727048946656018079349128544140238788445806429083254463363596403406217476184177417514566602406395162711206672779784939221483030969111757190997399648466945243718464422215780653626097061716980421329348960183088938164534774814554996527766541691066204107276582754910157542083626811899318673148746992485857778051682873122214251268340570290156906948062424625143165250333655735836027618823219711492784392166907459169184661625255921601545624653681217020397156950447434714926355497646239897351823546550792579196947721136670219497715443421823416609900458738266504748424889056437009767728157954503656449889383723566398188898604018593039223833989345237229666469455751102566250480997352740514956691621562666501565905986631240325360077767904294719889689516855301539379680558811449089882902424646517015683249071564552234455379469289500978053775360191598383577478686415470501528683215238967178327243991650318464423357398174384021273077135153881300065822283286828717824161729593026097866513772010477272113641524940235093625422165246067420311228656382362090312413070164278499073471323279323762419028446651567963103834418554690776455089561030162108290709045654305455279010823058050721028957760615781340480932875379886664827605406526074074437498060152417665992221072133417903907542667212936893288923523392135079833828822115126832208979324822883902953867050138781691907706667404531494611850113157470296429013938984489804791601865444922159420355572648645192346448186988868164243402476907371744077579833814100516977030161665065019410495750386261095834097169476922160917332648518124011970138338045040380223510995525508425670063234659167226164070928813355269298929390958408362938144532790477742050101291407305874301137926681855263952821955713749593724626213331560185298550728362815364063405160257722074807477372631648256759357397895174550098533272928841512563240554595833997886542952372223437344700637691146787706029965404616599669961480458220741063706232109172769940551692075057518397451387970841117928702930825859286487066587566210348155679242641487439855820485976979472931631526794279008531223159333722326755253346146058279514868413656714514376252017399738653771667891520933499840911051896188993940770877454756254535274824606061414117185259598820437367635373196286309153198195931832752166858934028154314971039410048772436295069932222306609771309266545992546383067084084818960816423213094567029157956197701292381032836033874954890566299820305381511311749115650828638070541761357869321960704339423152222216461407035019010602402463819899657820673425504339414836986734031033689734218570894034989569730389192649819368382899674029501003684074988986181687530682921730894506053906843344156237009158477220597865365247977167706599083484794927271569053422885866979884877698255693429407879699400530397982816793177846138246048172139555172947416042548633719429753036127850256991578803862412899643796173244309240908944303993643234512837883694535649583596448357574708704214317854811337412048155839569215112813881714373694111373932257293820581172992790437566270076357378068609512044425630754245025452870502923739879477141236058651753339514097726091536291685367675711563799324186360109530872709599597387711823419036903999809833342251886185729152053421551471845685304132504449149122634793109007163346913076280020495428908729381768214088055618851940792536758783888499431917614251081691765227433507415594067429584651682755466105461382188475907054060193137321709699535137776945468490552356421511744529574968926727650098336942738689331732195135842705351934435434820918218934019674718750446777234551080534071054894945419288658049250069445940756892988510702644634042922182634179848225030236235393970757084390951177685843964390457941864236282033223565768156561528927939668909278419380345700754439938296200734805087059746738385343115185592611582073742689136410825378845596908068371262642029413620778318784734717627442187620468060635198302603269386034664410504156250202422419012079646035105583295627793058480145762725168827969792271222828966124307536516901901739466567395646492454166994504793010496676257888216661926403173844900566052629612459536553775287232295538631351633284251597464539455208708652256088772009061921372392093362194802634381805044202564893356251281850497061523154413181116732375111433078226960879799923298599470544945670966235827052674927911811461844719358236057919016749729992684338398611404302156126914756188762341785892831157315123899960233672847373566829919097963217525268037296027040177612922719268024522945584371802934457521261173176814006003764950422367224877207156775642857347970432872278689466638788143278121886483289373409864956638243750171020768434030283407577025632663388615890136124175387616407082926473656606694099104752672523516925296497912990899110713711863586067826499422496712896921512725579769204011258730316154953744354825785713675520509804098394753095997798125657886477391957249425812220628989669524052144919690493679903581670321903934474913670559183994911585790140687679278635585275661947939376924885510850699295442748231380134729030894232943815139731093902790268036903566716117677090416181096142049295534579016630391140591626345885304594511280400907098030324560462462412021713588784766323339017358738973249560733065904470474513514582816830032112840854709425890440522098687258831160494912137362963972126809359424504146146491130659522530304399056814384429696681169893739790884731587324869352572848583542982054585653576678899992259921097131725111715448772472338177708440314720852290855179277535293571833380788388358013331871657620370799856710113291456032343796200873926522110790399991994448084659536209364241582367251544808815186653213399264465233113698697076747403704988940524551374580482870898048387574424980599539108707427548695518092062862203930368977531524719931388350619513590799671083934466865843912602910644311663129142363887795097772825499793002843968735273515742259896133659079735727022837522154756032632758947984965653215660176742445977627772841851253056048154369804577849359079300124230383418251059034025710563392728731941725079366265277933919483772250394666295011315169893337951199516566967251961238819546385759549006932163057454884666297810972628755721411247046857592076824427202422147285855357897574976323480804508065652615031533325253838308050332686427585651744351376036091872180177436832231570933832008339766042678106955269987613597151772391984538836033448075670533972293785119012979800770175062633217336959522654110699964701275137805145715288824254321743551338046001807658151552920356049417093646450770288924203032774216110155114233036010265628015111727416738554394834541025215545305777393037140587762830013888661536605932167474240667753524754534379663401055928956734121449659969071423547195242438977020784385396514750484442590526718062424660188963410800371193215910370858386426689086166052874248576852764097299213086714163933414251640408328257966782367061835725230392642448079701152941227158633580010370268371224963124859675299215411821371523711607042606282230494876437602578427063224830691995495966728435723837696156897841584484887332632524277103848669156253526281603628132819306118273177511652078878139043287097689707564948924380260622914804004813902986556262702723390488433438271168864128340612074648671035076816143782825460385675192929624458391805287739170220937030569195573732704571969845763070854240260299123437004059489038594106905341623031128533069880396810383609631187899933417622289046372223988059799109461830253472502717509939389946931906898914297033979629791974513292621286530318506155943577906598827067588353150488006582417950381930603545267716031494258909597684701237901233879198277886638397078665537547532961570247861809817611670899095941857080959523269001858904355690171459738105903579743143695591399054692485149136800367011747998278203416303936182202168288983231010034472328702398530315258183713362159853589056636235121200213759796633879875051252547145006937433880092950883386027366603893774709065823562921756914859032133629344964028477897164562573523395405111034430950109888660799570965093029167629895633034622525008231898306977190661585325323157044384486648972300227305809177294644948983662000070821896223314480866532379628835935885595370361867376748212279740192332551937562962897761657303131531162113309189432100031607103221489513089547394873020132561639794427196815243020016984206505972472716321646757053078173125723276037737442061115346631344660290541672048629643391569586038461054275693941002526924034272316106663964978115786742955593268861993339965102201938856264593997671860483326357953392547745007352794945438440164322402860483262894846016040775830055424283544597054876083587887909878098602609457648925314477361442300412349001697290722893752826462530573318007699379929183006539340346625980197467223173975772780179601539017004040062839816833619266485119094569687025443602720884531913041200742287531340240386634062602131984849368379600215151856670448127519528395944121254450536866279700927938015244040731782199075816235103155347002224063639300176451303571562513197041382231917641995392379354301908884900583294718387657726486781729436181649907898320573160251530663103813892461574258271728003655853085589521613056887695037906943795876502589051527449182245822661202067216760028101781493886802430570242105074446205259611023745145434299717526265325158689911965883435889709147453482236770788827510673644674822674223932105542729144060764798864270072868001493356383854080944586358969410660214355203406272740294097448134272662176094711488465475718345057625328899494294431302923848514216709845671889679698593600144742998038905332310845214322336054280178961151861916263965877417545357351297482466213575217836575940922016199300176674512159408611715007446548499066497358266579154187347862950146779533459173722623016734830799819689559795557999264404062243323691537861741789741060202053261459891387082670187475623793692218911824742603748691934957382063271816463054797938594036044872158459114772465263292452231657179140034076617853038849090172827451621455036519897970912599238286435665115617821578335583239957699899933989958455127756750857199249136991573888677312573534075472742719029451400752655237939966748558999147860325628345667396866608673663148426402446122490704013596265503264954960472774329746205044917470685340574239460354301046206740288331221254172303246829592382081314003508302517890413285416439686928951433821798773286874677377624057438119548259116339344209280824278177040683857313444096522133270922388528110064202715597633366150366931495801773333544488506301718533590784245350004265824240429591096632362775730024096129571939071877147084839468702192462373764649398273290766668424124317019641022084748516837121190265136172910042921368530504916637729340734213333372502430981342198453535624764239196933518822993015948376727563857790208227428080419293021851074286125488482258240205883352990285328576718344591878527610698378151019400654902643739959957758554312364390540495547319861129361109634317008770032565474994236953305886172008743591749419130181400620059457761700987709405730246202376170650867860451395384173654920584669044855558097485989060634276582491450362975705964902192097632897230119920975402613750068389384154551762283505925325258416934123101468352968954095744540119593936554401365969090611874427278991451936372638022103173084137617606901017787427369331318780501940205364942360123204543764982047249482167177306449931204619260721382739399417538892003003224574794024610632031765494266754437565701694896936474662819243802104953232047485332590725762359182475190484289945413853532061058977163557320883877961671557013842948444644906096459688221933610084222899633617476985276278616258774559540658438662838344490992248894017003762027638131865793071249617361024100949621485090354031344832554099716128195004794394743081383287069311621857142888799846641642516669804542771574346023424159255009584747002148603461713363330842357122659388511951622961753287935995352968422577405091594205675727863175121250769926420274641629477309629033262613295568653685529008944285098779606028876456793098849573508218733472458700674759766864130264870036510891824123975325275967812803458516509819377780005167321327139636969328473943435203145220391486717837059247953720956023836267430893976790251384318822162655974277594349657075235940088182509735416411138625675842360341595568797358074269921276418305324869215704285085761020566249044985101883738522475744616405935486754582104657650596720715202894806365617692053825197940271172588897401878508156247024021042026007159990411431053730617756305993073716149694143487175293598921876721025962784070128712987337069737525779773436814069010821189095674893346015627967983668938750577642429209970761424755728616789280667333285790796585115263649055858485138218814628920493980455963842809347817209176785115595564549426425525327707073486348545049379664232128490926072864251633728515695844625911472109675994032487049457425256192375381912386815030135173640728139098248513307156110033026666656752627027482492477334109931826108025849222587971860267585032233552915597561171640316678582433398367704756884403204221366350310885978752056928465004745791349468689423005646042180121213737989679014454608975080760704404575461668238084566949945771323903965541990277989446360851633046670208966829866043206535353736288737598152455899925141151926911621739670928251839425408495955219604112229745522037052908871694562031853223161027290074457378410678846014272836774736804267602733214714915340410774535553436876880826467006840931621115773416363125042602676728272448622349167809214242798546950274826206006239858666005515835814410011309163322322054645668330740924348027172945217141918144887640774501743992857086195232870373145327405133523777071058272315361196250788878093783006250279647730828001323530847040318636731568654537621713121870881717962215317183249087002602912431459786964084741490946897625837240507616991617229693141642054598618247955400259645848892160041704579051323442785285713621946584242349107026665190273699232285122882203328277641966721020537735026067454936799045143166043177572500182187435693481578347406970272356913339854055064518307544337293207975591288169502460762249704814281845264959053207253835053387969617417498902012508066756867951097645374732062900014900571651362171174494739661662567773120883209062085764022264774851622308972870610055265614342842768167321325307091107716556272400361556951824633784288807289798924210196258118549229788929260482895574953184110117811878862317588254630012407892143499606079111407546742808139512295664351177679959117790210859678702428536662771021341187934362699483831461365288805185108931852851071428786494455153542315620708265241711327044294888836854848733068526864073579563436278345940637844096676138792320032364035750176462109277215224507556929827111002539606543596270937166136375391784390782437698767112503818815822913422681981747157796574844595456436518834240034158950985274767769285314969797152751673823910197111718295988229269610983897308250506384192318188091997977515411586636806513482374745836000594413413859123850270550505451914771371925022444138580716190240895974265470920741158035139513470648046614773685102140033392427240241809172523809629508867200504822732848398984627458532774010659792270779920097384577287615847025258699460191268651074618128650156592567642547357007740919452607756273807041512773946195897762937966421245539659278696901829007441289917753232390712966295223278616458513713005354236941769548209881123550113051954246742197895391535447603727865593189771948477211104220012582389995531987502715020724576543907819126025736056888445013600211949774894363422518133172329376172254507258806045988781581092895108911704449650700346566487650034729795590363859919033628728236536701553875327163518706193062169941151642888666331960131626237695221235944671111128286451108886100388000942407469552574711949293004692270926681972355767354750328109579360907147298687560088965044426977977120386834539682517112349683098115711521024643082565147413806917648046668498329783675149106989501273944080304384164120982524110550949449399545870900897297637389754161353862797081463755991767514801211009062048324670277785092288955386722203935429068349720744381314538836946562451543139279032984262525581923025529239035952979918088206402215177136220332847479351233842325823885394541837354424713579165969480288361652365520016680947066998454190098431158832286401785468429179539642728112203948874463172333339147061279663388528268484680730583669848041345054792154980611247588481370258336497506146464637036538067115239207367984161221606315756920678470216070933714098971832255323942034809970887230090405592582590417732797525353598642918955550844908387003770728685559331507959566251257813048645854783370352848043849850411991661736352041582592175160822182235273872555991549002107424251799792750780877335180835485800065837671705154128589924911807646290546942040405378644564995308112138598375993786539996574776544841783205298735055747269813104992478425895291775692898803065464905908609183205304563321304636295666843418018998362353332937948610191311939395094486255353801449681929866295246192844528540418596056483204424474888712188691577899257454978024475091156687751139192472935111098477431550518986128305536984505046976496904214201473373000612338712570502043070287099433618494674442308443566919316565370138887955728712573034617759740025692804573531988600734214671498870339624382565052867491190104061865380394437368799707164852189395723587628026644989873036200605321534721806722374077762237945142532177309003329449328599045006728466830631556794833909747932416692978931004188913034182879957725477933105854686794839633343680888182634140397347708056340975975049088710597135368491765764048552260402518353128461194372933028269926389471943905316232520421571695084647719834978379770085652439985080355709060800669632087833306293290949567428238662421509318536012026470288557993377928006653031115510724196341587392240885096554352241060214295518770776620826675821502887159491979703798906133956430517845935525593969301029440240325371098532449429678191137768092259191077302228526394525081546292054214151515878981159915945691736154359708621902602151871820886867497017832937497448213426906870658753609993189690038469247875462930247569780906700965019171979588680529886012586161531990972623201912649309100384358789695963497400838797448902543184750627258710105891508513767735901907195711700606474908815762244838577729207196597969743884434707178165750643839134835973465473011930456705532436573096296180047776263195693844071700153347842324040062545916628707768523311186445993720876208963389049424259488530518648807126804459710565366484803610737395899517802833837696677376616666985675990126576902221584267740235908679321399847087008111409475146718566613585574986590509945309964442150950077371353950075543238964616806728722147096154671911670632828857726034728942607318720139654970969060770820838796788010576511820513525531573938586828683146016042480610973617521425036670560598774101394155427959520492474418760466111477269508591163241587517362521039790988901518870918570802048162555708716716013839751128060389517985825003427524599065725120141908220485033182152689953030223129833485304501066440784515701258095008513558228638758069084301595500582393049516627310914855083737424100346777196153946863179936002374248731810614085588214546960533172997923444826986749249150443471680879770576336876710675128367763958749201869083972282619415728016940084918002824322964927450375987732221709292090443990719097971233522597833493111184456798476902398061559991423608291726827666910548420194695018423923437270961398673257583424313772393965173952850462204344513967746617519380934788268779510538289921092059837285159470301823403900798246574044380767054559386729246281474237462276842557342397134841834697088439293370315115655523578683998500306566355819512125511848609927449872865962689886390364538382309974535746185481145938458537015445116822238381318248175852447389076930432181831758211492501756645338246831378307647595067610894993931526607060742172725127153239301633022688304712087381917963496871373101435800816229236592659423314419991474344865699929740084767634653247378217303233446128199457379042946027007533889580351461024664124965310093135558829012415123755136199399161810584337495192273345633260693451239695374931576942752008028011341273559129333985832659971356841322402721460946139065727976102995748910520148669966081917915216227142604231872747997314514565711713835177344232399412902392748164759152720141755194544907083394347091088060154220447484542269206364960532917832234091641274408144566682270082336729822423184072510606979215458154971307530103543045294190333332043794755201571778346195096078031773217978331768465097992373213390326814945235110133387003997136832176084549464432968874927671977712932110361214091465129178486191957778598991258780907549049426495367132338662992466863980599114872346733611892071305558993724489774912237210870077628057567726714396784639324646814020062062844341658060342659915162083261110989386772066331297769622294674295724274975057872939700963903108812290464366391834513230440575993357329599879573863862865530426463729536386672004702041400032142593311909217753153403052948786261968839609205656132769057005309739117460086831059647991471390671384777602805959431746838438125366217884812340004823764795866881621324197981230921153654501750741618382517408373516681983558613373432381034747243676002213681043436724206347729085863909091258996016203479296060967365392068545432718252102503398629567257212912948112781709809813593532013573778712424916527499385769174420265492875648388213006147411751770375689611675974956699157324355541231648124525148441290474195675419095502785145429632240347166633451352693078974935916897132275311125060821945298294440009339657150076684836550291272134300177651491981193881440782836966364485296257751306048592033108160370293782032458839710453298296247481372000571976294945202874933668171833869222262433374407714552960700787741053638225374146560429809532741102212027203890923939494132491692259775682026507480739378408028671690033140755921028987838545743840142010992900847000826030851945200825520867125157592560276491767328153537353158789564796604156738246752813647980483700330777092596330380165092361672539824974066553026060216936466753341358403528256834578502706335171514092482361637170120456797216817028184792043218914939949621967394589887177073399635010052975031791168321036626259955577214987940117375741472339222578179532088743102036349681283634804344827411731032431471912412631011214524779350238485674535393710745523001590412668262621876911866648192973701998251558721354625004533697061076799856888657414480432663514315719355758517878545213868633507700680055326149454516337833951410460539354871352894003353208350160586047026621952523255651354423188479021783129100994884181087844189232817480243929668470995660894601713348694196028235165770231940372699380321421254824405813605343258490210087619277291816356719932253814656239816883713182100565810785749350411919525114778997358585609585267738397067338330621350709079898161840878251286173573516794400117303958081228653264256557808058130925533649198483632885013980401264125677101533772796790730063649888598647271017146712271463551923003821415025841870592449321570816382235019894194480856891116853160817490082538450061731415703249234295111312378596840179248078327144644393646359594415153447757896113464454191434819508632463299252670340340842561184300613450337134416350102820043638137948874900085164917091436476804091017112395081237036151801578441922808174797333760656273367005576564937478647180357650080362129966420556382297531465072000294524203792238069957688161219801232345116408313827358791110344662202012560650702073294879055532845511855600354947869911579953850258223835423220890518789378598612152890889828164006707513969912892315548950490931187775440232362127727521646171999767221491833520507357559585850017063289216903329080689484848683081457719146934777864469212957735567430082609845297556615145193761082013309656261445800863755914206760727534515036302293158504079801363761804725982725598974815985165155658199950825031337782819053588254377555029688324399700116937648167029239476897953426673007325752310532676824730442447870197582703524663132164872624202501072600741667416130685487009392279800459283596478525113064829187024771511148569338803549687302760308669911952782405542011136851146139951889752728901863014184940055761008850520475668772857500821455350252924847616113225481077244187644832910168152770319159972253534863699611614024241303058813951627138063176530747173692766478149919227195259857641012922997002360837481248857512597741261315990640454818374149289869118614982232788019490136523477614050703625573773306580275556801074114177088045402545783402057954804880119607268516289055077592531945917056949694223683577896177171662792329058563250805799136911653937783368705506597125929538620758844661844534053959471557975787795220669649662601261690987202322318296053387786426421645313632777677234564619706824211395815161162177393626773306080991558394154314237529713300525409546871842210249140621655809469539670207212961944818058006478247278766839446279464081108791049350124257069256848916465768831449333451183500952873844073716066670102781699841960285758785285033959321521624065959868902903548185191639068136135542559162054713608440765665732548234558332464863401649565067847864321673214022150641645174402231599410994920813993353807921095462239144697220214933824969264255410181469268004907327505514673423722658854028118032536882154592592348480112156051484206689009284771985218977470272930099854521951036304511178442940212553123791377607099669427038177575287166308703042194667253107787635549431882413293504569978661323346466296421660144961809163162735700296811967289286830308238425892860402343386261637326160253730099872020551585929387206661922254889361913187331211142940436897403950264884946478805298831358792913674721503092825668559519781942427537347843411051089624917815501695893791827740246802793300273155752535801910825988725051823661823876935024575467834845342104266552797236691489810217604474857204357049512559511871127568597761111026694549912247336643431963394498806885553406011053522114800684301856665958594567875020670809750097341914286946876140628862304528097382807409770062344634273629873742228609513194451007702740850183597736378984653950659166306018525028216187150384655422823227631681343452389931486860859393935632671542684152050138748620833580579865127292629121937785571282990188732255155541825778765519904621579095288911840137791263398763036763078296985119323757414324460045980431490488376082894536876375496465603469183502299259151612377053194679943307665331484637696534165302858104823486165364863312528508191063015440228990046291937961177214024083929107912746335288976180904042248694274997101667242922698542325071210050075043486018082445150501489099591175032787459156684826094949885597227139354684788950645443468754855437547272815017354538154476780474424353365252016834379281981044133014627471635949242233908183640914907476684461692131048307245368108910035724500868641370379802326240919665927998521062887816670036984773919070929416994270851322057646337597893071297232877411628057838363454005568413520344351302882853005209245356272373605069995585235770988469842546642820865688297243651432917697078050533842800176740985360685309609904215438452451256145860330652985093951130645450319039883481467923544533185685883386199868238954696090116981316791204421335708686741065754629819519798087632231677350658467929945138951071111208035043578383306576879319360753103566579742297458244296202591872647933922321128515732497137064280691580767742346064975189055643466422032913968032533627001218504654182106169180373348112512709748505087846754120329929475790224681724209146940884110331822674516381270959653188594765045857012438220987092519550097148855129718820173842584207749839299613347661179768791520562352234623484598790638372910545976792481470488621736493945430665482938490453525664434678344790872644878253542150468156744690644542007523748356874587049050883400961840514550714585529261535907196410489857964173827018758659965806857498591811429747315035569761776141348819638455412889394709171455646702498913014106846629028232310787373442684240853098460535875677511208610150588720267740005765392663654707545037903822737806023767183427296581706463305788724773019592052952475820154980609637332453314304885120699339747630656708504800825393280992341344941470613547017076371844205880305637633252956446068064404385106252096014443423499667840622148435555327572353901442484048505494304713391263858871788852698235515836335770940616167674173746655911446795391424150490281227197993148814839252138530112517443420223878416021651253490411185838560403246639461187993152722358057698301697484200178924610006174070270746914670321787987230380171338667983830609650389410217536271879616200239075050502214900817783441028589946417940886221759376648214032373000582847104341190908200200695927116846676987456530004932642745767191586665373952039269793493425451579641514360849855011148828107076779859739801997876963188544987340336005724287116752355689747005407384737234319557339649956501103075330356042790996596287623208897922046325212094847128524614590559351696576831688873658598728332860268580131467606059487960535573421935302601875123215443873027955424018406682587741990667677759270456366922340637656667174796616398183938662913514607714523390453819559095776873224253010969426113668407033255117314063709804282619319185093689719186882346886791450142079683253764465960436428786952397814002628060248999862225204008014016529985358957930735598772584466080836160294867929342864750280755296137953679894729187259644988548683213420078728519040898563620842320380560625157035693310096089641594743194237220486720901627041620225424232254154495846852206817761154902214666178647877780020077815042616141551515478530649605693011504950482332405270771009404760528762176259385061091480578975927375280138476558325130171184055159155410524477634184217926029333136523483348489477248863857025940309611806216449690508155457503894247934165746127866677920686054098175491477390744746841701337927477876814632647412442986649478088512975096507479676857585707406032061937514246282561981211659170227404225649326461306508146720556453088180820125920125863770427249269298938908121245557616547616270217663174158241799414733338111114846155099632968702212432392543355072832374295686881619735123492359487532988019090248538693348268514284133349103415370693468055089539971415850475768112992898266665725789138841738558752322781768656340961111881665792813828102148996900686284534876594096010794420590697061190764014095292242495570605041865407901387413855048230336787261393152007912838855116642970526959901832890578211947061535785513556173157091625601671474047766948025221123191644487583594566833613313810156128061417895093549909824987005654639454450011128839079632108965091131698210171996909792032862489001497776636981560673899234162813547962517013009195427750050297958665639126301044575471637953819009988140770904285116669405509890362325339450887635700781914678946733170340949793722830482612258174274601992028402329714607471726787512347025352819131805042682203379392072993036313139473928714748161532938356070278342748299046093111238002891257898210779504437878373645645679010154247058867709454421563976109616115021474834824806228095356037127081268331530459200961913532899029563684288122063474283951801864773730776605897551253423379427536083279667624783095170858248211532754140755204396226706698094593175166514771851070626110446871933356569294527460440754128550774677051472319253047654160685247138298744711603610316110234836118332043218912213446517059229759578579109783972007989582122215841739132451130313533846722930517955644373482915307291921597260370797808520921624438747679717263912300702965455718404719075032909921351337100326485503765768377576357479171376247491478328153014108442244931393541835212270198083111343374182757305636892090048346984821784421147620757034548351304686399604959953039812263689243954328717410166880372447127405290017902489073296695060077957785542176146226811409330740296499028107051499680316932853294360534190413464942224376793827659342474902623998843110051230641482459866097065917104143043393609224886169523933939490381239294618363139955965266061646255870946288776532063484696352566835531493899032185404577562975685772148925797241351338951294317862122194257129339319811143159320795089491077102778287361196514458380820315171470060170572862299969659662233503931314391146344599677463300197142647307910494944374255974857358870142894519569336415879764843478220245010990077541233264175138175747156905178061190290127748791971398321330270251721451036114588616192718668956171995944696271741430493037667220250875801824481260621260009764001620390174328968286452951731679348486931916422992827114529779720471423981575320003122851675306282134920059056399777967140006087470782557231353760252483700336150666327454749551231047061831327756468538122966160531850458207479122966847229201175586656067598801639258869946544192486147123631043156556340084548474765497040706816916555683049527225875935836696032370838105904638824636213178867131553141520812617025421813092109985782895805163754631033047820008887460549451896899972618424136748262579758485045701531806336428481791035323491677456367885708730577913965452922432478810060967028514117670858910346686793117734389310506135486276584367288971493305189063849927470146324581711615626860437763084208802209161123881377336292141843958995314792654063802084776968055061935937615600382121759366894795579463619356925845817097394059084495804056551046962112162669699570518298524065816742577969018656199130966438495997935955589995929964919490662008801375268383556022031562088501710105698898828798072181434120570862896783320285943300687665150992582033245227561656426134215725482994840643646059956931939902345354244907719687572074920984201888775885701204842437561450567233603418127080897677026416216380164691053563300866739047622295339589327441477908300836798688100943421584926594755757529652550222202547094391154083838443347225992522457339446917170547388083407094538842092530864707750232801303818015796790382763684127656308260514494806989963685574744525641269815840600619726608748729341930015886246567231223647168464157670391874276419318469236120181715352218199933291075727915078238245841676775721686657770997990355127143031117862791282388275392185898115593611793737728315194993900676710637907678468895677403319540609039993131940692978721251615473141572060871868285672258993959819697232757092829387172512605937646413719312074994929322610716327239566613835713814956439152532404088007075221065619944247729715032204340679192201864763630567160014622695286952247673784829431897005562313806108431163214803779284124522349634384646730855739645759419995776745569630864599325907387806505620929416372117346081685917912086715764938813947238933367046334575050027664031799022783576574608628937752003455696999671843419904059288449328065110263440108954663652900482825832236046189968055348621562990160786431215764784849596840198121215399143141244779714863645048575257503647118927238029494298100328892692227276248057931098123277028259039351449921131133115344988799615850403220990555216577960472971896981656766177862634387996172661210132650544267801076257349835171938511825525368036494611744886682931468482288009706020316883561661622500685526642494034069057181390077392649646763116489810301594608720203454536241218589213936590810435556190342550114691304994235017263571994482224078604609735328070031996646312985220228974400375717129390631437077472186734309664414641312522301503954326497458029129932188308745059014706130960508750068121777775075466298415029895366463411303608990748409592277095412225251439637833682318230877002399335917502143308509845456352315937502841660840291294582064835226722385869921010303298061088257623527319654193814755503876244897940347014365693094734397294788754119860634897502839117616604936215106330904380025883608574471059422357910734969024977920613043169278080890639973086832226635472345052857705729530760404444041393760316370117422345812623982205482418012500842470993400036612624980010216288549633176986790187053388443248411017134435872511055604403696752657244432673665781275490095997855913987653875936638443058523077750934770124982396500669073051420442498896450699189804551301686186853761089806310883904893466415046066144641479700388245776747246492176988833979378132157640994248191612129052095959791683877711154889810432986749233497035898669236773784542924230366443106691289806351831526965841324360156853366969983189238670471461248407254371355938797717765171746735994493604562527109769989950167601759070339877740343807302453629611213329115044570687259460911718538825227089837524006920600013322947905947609452367542895149980760859496555248354584636989983419705732232646502773753329481690586144014943505044762903501223026732645505596445649367123058859692621196773969228757488109156043653073260948012283600982667103526810118830921503639714968239996052393896199275013462246400390168609136840616886380563739663214341496754655259294182020448500759129832771652464652073204580949594521724383823643776846860277874809222667667666205793883310519064435710946862840073672786013146109374577813111603293672359006867310841338161739720502205757514775221765863861124600235238318686735724917073686623808162898631745661265237038109563236527441081975711969137538828549364917573658490755464050579924569425847718551035637572460125760670849491562658846685208469211130149282938086635619531148644368516535673065957562200150987999033897929265621676507810455746681791939403784458487290872806396627615192949588063202881735446965721950938673598277126168456557675520172852446717120381018796303965834615257997417095458548855233093530583748983937250012448614065156181448490957107389699466021322624270811511239803295718939428103880087686351037520460257669112527694983654866765791532898090061888299703270120001219547264536330052830900557970742671072623327188859914060330900116378807485551140494663839346295018204395436508156101212903385886448189184075796908923888696672043856651112683945278112470778264541344556699589947434029288956067595666994547436884375488656034028861220449124791629178314927549632623787472894573191494952711591958126736920441779221020161616848583183566388684607243214990391836976347936486363644602269752410266912241271318047462752749875598567951243640527389556605257755215321940198574499992068611714026010465448448777870691411725716529295683213356341224514969191166652804503937660453597636954374909583566193452632004401491912982847214894506886935830014099692185961075882321742238823972321825992776300977919648308566108048187128881763628066707473980529375174022743960112127651153944933418428478233067798169798039448967756894070761423269017607664404540664697695993529626247498851116892199120459836594498504954163366626962721699234300712730795132416261495175922999992447502156267482851644954253679680829459251427212046210585585765366233779444422212579389851362118913476398143912053547550225240283294406105464230892693560767614716198123722610543529292453928310656431629522033557866922231472511234960269895274544893871435114785813079246397383751723144469325716632167535286981005993105186097913497351520183692847579904481627929632092870198091652515055750869316866888874490274038284930863655689524557067225648544475871906303457496227754002408834202401879963851992454374587003439780208135310142370234625947569067001583874439089181079703924558972302607384664024056962118550292402308292173604351516818398506863978986941183003895027584772076406354491946781658017718306671503051227194773753602266608766366564323967516118893932116078209965164592455555249427720996808532962412565080965821566783137239849667773174637472627031361340176402927147094240701288965583184258724072221716404983662456796137327901929281664741409575852533030308983859006243244216959878891041759750474277225283263174741490963277686583203361385337356952007073283950894530666615522423251576722168170402309309084464167477519377302967325368759427108266021645675508677276091351562079566631414992322134661171329218190354076746610295859222648692064984121425725190387070271560253840143091170807128499109739278693060495044744200239542450232944899276201435303592439816538540170943958216674579635675497972382375660277125017111184342990819294193781377381670987350609394988685658149378750164267154490276616986506849682566752418971768503237295519242888123120459035982902944403125054907929738886772098660315420113988539099976466362826814316896747611806599065762948570813244597323628060297678749660541020949718648276767042038492808706453176632972728757715348909589670403141059113028941240904983062074054877352517347837004085499167175660246081971418697608105561260393523133141207293360061624630396424512330432202297039262455084736625030987528499366398853518166467318443257871881004515814622927726403797808016860777968052185805042512188785231414231019906389363834937255194565275144549644988016315519177243806180816697431827529744068063460859581959478065279422993655844880108791654549461065587566884051202728428239406601999982322013243210970430978516700593451690648555922256148214961606850051104003790907430805340001272602154597928103115431143259057784978063012388145935262676626919317892384599990701683430621076540871704120213952543249454560985977904629046630341916879548483467434449390837869308311269381074965114545033394962809359138801246673688956465805260458153331628156982667440417185298327228626557097420731028944406349819163942824553323080318057912664268756097041268836645119842385411536417241292461716441126701230961947699965944008400396380696352056602032590211849734369661522609741845174059830649861803364062556092693729087498119902514095730363400873804859370368088345947188878490799964729392005089360434883509946251008694629677544965194728146151029801870144888667145806936939199505374439602368826381033998059767242450514046743406180701481972652075521211180768199843204777067731835101020046676911792214245189620706052377483598579495305175863553738112605923204224091614480367152717417348566264990753736390351831564035656357661538935867146856436369271109339243928449688317583249340982087375843886142471910432478768246546221907419839750978178995341060186889913898121005007832807929729230147058598937034629598114490870464868536738323107304235443949126460420362061613480333201976041802991731889904057758230867746082423379066696114027782516695805093403068103505813538206272720107520583552040263251213220068819057953009219521298660263091089125977665946763479093562994133234280293492609660492958703000397193194017987830165653308492056114147388318481275850588431835312652123632211257181763537566948399719508207851674528610449097028302575441773406447709423223938973211903528884179702161988410733320687080527766588757622469911885032881392940099183673069202353193371571900500108787075063094555682266640235031222497149071415445485786326582900756795180917365354048658177845536350061075906198608504907177565467682305656917202249886548755205420340964175183635262911989203823786453632008119657933479872014754842087442113933195852643483205760564434184433731543179609895899351241337307453533646802928043061626276221297255723234174182805299988925625546833523832753958326967393093258952266209099314669832321149668130275888885725877921761798797106926738795018882421790445009916704391464495332144189052030817451928096432819847010181013906136708751160356605545726039913169202588123895480295950944357955452562694092218380638713837629118708151963083602655373005655196630434100022792906061012646932545042243220570634190726777102872940255681742305965208814157382990873868191407174605459413339117941578211072031043730296734488706556135324993887717321835835175578125798116807581602021849183878622322772706189332247037464544135885536414484326130535589572274491893703441803050694634736251234707352140510353662033783727796310760055643605638550533997378338384531142290796878040862033848618420040060137570390308879495722054320708000614073919862306048477969215537389478000283563943404604744869504973536054919456340071336593668220720462203286853761249537121272025271551507460842484336908772168358101260961133528430722568366984433700612006562176266676785032351934028515699665899878166740278430409178389240679490313433209102726194392496866541043688032181453332057298128619882783686447199128692949123438286077425267855075863882666824914974110942289447564131008585585240521760497173538165429296285319023779412505474520431683884469580904996572754886608998700129154968495628815807855769067063946522945692048699206169381442161671394440609009915469590564270200051016104837288605077709952852922612686102694211637277240039213087417516108051237560192081310621691972764384980129192734082346649434422698009500548391702908778728790871066233507763947284405471047151942906212041038106316565065875107035599434543104324814721914149845603557011397042432710083922667857541653326891078002473640758440928344715951048772741250684279459276123994895516565001787065807041347959512702867414222175944604747821027909478913776081839240834274112996915205919918923610175387709326322539188368249582767832087212636395152865816136392707335597261426219009582570993207779131906964301737670524758349075009926433139315877974715727197789074432567574383556069203441247540709218906961687695786962505086456058817146277979039373151455450027954281982973832045684574782735596783646416888112778903837006742998899899573070491500338133294050607641643114824281806165958065071004153202366553973136446700028140416153097805476880782386816800142075647004576367188395435472049899540214706511476971244678831295967951105702862544060260692694641821465150154924307313012578712327093926847730578987395760337224409849937196318481698222000422511428809727623904651695315586081513847285448405920832712826601012516419606244661796089599177096428206659728388186672670563003146157217604098743220217193699863124944309616163778597231151225213763366979133922189933750824368917242636207883147749929979412157260021372052716165596005724459404829033348367192626907438166026376301812260800652465698964325521155674699290678255011614261938793367439703728774006715706763001463552694891252049182055679779575423274307868598364629371684154444492248325758224372877973950363509303821656851060433327455213923668007350728785224168941230655899621352545284513746911905922196171671672413127783631985517228578367001656502436564020944369923571631196825378680731316487723260439705568110531454619783148061697512782009378021383962466857391791018472144737095375868948340770327577727911682865027840538593593683358653080989507826680670062103657319672994362237121812684303291782953679338472185748345465018702999459419897025336281755249948257445164873821087087902673008119776601991397425951656495573462858358980233105897368069386586243532417909477868401972860434330485937746313737233913564387592158227367490429450001752924294018194755146744508811633713242654207299273811972835772544433864295250228698355979730233484974111343930273388625207907427250097301081109546942946828288599248999417983393125970801366526948522040510499663872262995104991977221969825096428537074308654692999515092143680592059388601070225606908568891913194781383545294410253287464630446513259355930107684637503737184378778029258756316395397167710415151617132390086680713944808029827117385256715314158437838291974545799645436313037805102472324843006209186015231936261177543879529129884871880783415661940976908644618000452839326941194116752380187800382302365841630095714685317496314832932991900538505736300408713707228082954983079133554353820065892362005682585896437505464915985605954039660609946146461605564088649721089765830182178177438308648797319244029160403828008992800314606024227934999615568215508837503960471907888764742741451036825882895737237080038492136047088820620052140473272068520963123473014972528888144945214812219449368865580302768702093129128094357062174998767854150808621088524340800572431642829231707070676579085845561603114074819110652420617523196106075617282487290442458892756382145698271724589931071047220020380229110893878003411961042582771646867309783453150865229420014558890190856217163389528118733157869796577937647492276167250201285871564442969781107902961835293235806663900543097275297221009754977472585439991144108324199118133504154592946879366869914770862493895709844462553182562182097641930484239676728882356630656887128688643746779582526825908939500675756359339142781150241624572514909364594918388186436708726768809552750816938981757897656046284195770648741393643429958953144839497775444918316831312001601982070867010486255280266248233099623239748555771379579139974986061255068474264443603888103120033707193037784234056771310741354239259150298139217322582993180411056518841526035223478349753610968139295785482725038656325535630687025362791505703877708079577930890709943583577236409376089942114773334163598420529822630793220158584096498676360464722003337251362012175205553811910546172414215494150055137368753464899558925230109727664728382066346661276555655323722651248730311603414953234607630541816905402907473342806489094823702544649550989840234422561819371582144678257275583370960835865579660134747473697754281334661675583117064050520227673539653428420512390301911835202033835210718209757297257922295911608849102179488710150327566792452206403029580889842364895983154288517336796911186085584795360170616483595653637467175006017171042944422144374316537182931901338617380699985899926936197629601508227675851205066347091829691256775932298809912637334158244262951964835628150251724416911663860126280176633649811969794914386495160415324626808203478556614269616483736327033825690634708696744188673388123506552743863016000380934424833803435508820783577673258635365393943372617635442897348147488381094038557046931124063137110611782521483923514356437993561238383157422155863616176762559132592665710312448944430857667754945375493049203878201850077523788841459322959209388062888113522898133171131488056003328908695168566342916522505005263528463174659542512061469545215122545900953832745088106110043813054223203545420426986338486540901246717463925377235416615051566328106096479901491615097641226702354485444360655276612985116652488567539646463379606434099570393030826437598281843736365034867130560918846194513706190313583207365988370977731893302724125691312135721421877308545060980982451874123632299807819918236609572456414892410857311523290795860680654568664859635970189377877292082898973042585953190915273021440769106574546002597252103826656922961794082189207841788848771893885012249866676483123043792294356746568438829021678756218605467691510029518561704904329689956941528453348755718903193562070702069968926586240570879316683211610156558540499667926864885845390091106446289728942435356311172769426587349535523266766413726634500558568391525910602006925842299862121265982026862822599398619744583422073700169835833400107070315993280772072579174941863129345848772549189300809085404675625006689884065389937900690442934342371354072006754149913521357254208805976344851179495240388449196464335459582302606579140915365398354713814214397106902924059688993833529697603777291287538285594119187940448095088903161450867689871145980040924241118261939381096707009184398518636969573826510100249407714001931416475086498007079367150738790136288178919987328073956217477910137962845442973364004422457986664298619071732439510589811331174966039572849913321462154422500863786419826791355550717967856178660936603609490960707570335541842660726927215205611738064318593455108551603970820326034462507760558163921398350436952342578669019957737915662452610324848031289240781552229054504039374027242142321645671617074151865420936694350836712813602214709394858151601311169060317488777383300981792155567186845859526459330295677184769040520932639896338249369103358460309861138947616976789497276766344592974873654522162288758785449852943754104032520360716949153487368516709342768909225447309985290397943343561777761751456127264248931842297937533213766767709269629264358898677480966330337622931682057766224440826629062517527720499835543825069065141072191024922064129539776024593720298726884703321858699411764254580041473721366558481492306142843096430583371490397096191683122012698846608306172519427851952112608596885821871075116774723961302925758304126249208436395859902803868560452067035524385319910815016427516938979253951363990918679286301001993736226311006809114892284088008427599973198738477324643222133952405810295462655344655903109101639021505035770917737374622260698704558972937297445444837038767134585637492707512817265836172952491797779332836366911494774827920169061106698270403534797609173555041029550934767837606066390761006046830621360525803266087957052544863199495105654776013494363363799455909813229494883662552332935008522459666716898895373963027270695445452436273049520083366318023839865689751980983450726219434708348570153870112167455976304313820493116028424517335939960168233070722037756036140451843779000579742646941974824099934126352021797070555176017373899399154174361356988204522856933349491940639304791536389293156716053113760544921242213937763598479840062041544753069499880946255067965679543122907033474264066962159465824410061715945001458206813555884058457813743415081217058837101312174478214486735998293737115088993892937965959586522731695107230657554941316491142852358724467337277188900485149057498679918913625312925091676526488034073541205967357934089179559190931227851119684969150302513562207420797242698509554754238336411731686806643264732093926067914138151529846393881123351956308124989835595658827034102440441452492282246668271839175774595980994823258465712126416975148802894682580293732442952034256688879595128987015327799151320451686291338352086196424033515915212877212502292911882401198743205715116188938660326735749135180034016321262991467173999348335406247553163945728794981037753621121005817125387721940969277065114564690395074577311773863702749689029877092103823460613369330403022252910859243081543172527983319028868698219947351711848402682163481870965538415852244413628823506614931497392812285103319697907153557069899834425212047903174708562061363002514227947358753104128299974066650628542652104724090784269876025815110623463600543409295204133068639098057215545835493661998852864616996430674603677633590109938411749674904403516475385226666178508852330790713829504294547331445859970415954564697670880042203452311553177969356471087865783734863470706147044825784601728514841173009366980676673796848486161540664153533327261703734279214613817826652441715397326331314041021323718454627672847997045940705661106602735538612947655722395996051599049808382840414588765272836417023433793199915872848939180911496725843375804343001591197460716917539258798733202547074198377681165742132463173542458002998643829678318040901969509240466895650230259331636447460817634055318014323728523397023778190910364565938895644994770650279770112553881997136172158814914941638211127310871582341098128775533962052620216948876359082660492414730285620123082931219507335329828139733956130351725873251880278991578327839543912375283329046107975814790218242029642609594103261572088460735413137577687584702831378097808130819995117822457267949561620827273066572322807190901279257829252558186794386152149079273032228950509691813503352062668590144645617064288720520247421112853799641545976547727130490498025763164456387493969388247598021078041345965223321450339375724329812407760468349669050954798594891284113595370724982384447642097944051916509656154043324244789949598609764589799704210217782163189579821189287955035223229327531999446968112787067888116196972331460843027932001541679975033739009612530162513196911230366674739110592077349464864613735145410868867006775993490602680318887448452901927072269224359551569643124820983597462553169473974457001867315185861617340101432819284954628982754845879034969808477489663762545033634042568285744089751280754628286598000497970335546266243410999054770432823372036670042425189926703971860525969111098571797185277116965401989471352361199453355777119788970311269904393141624031779462007299084833160081286956124436542536893273338945858200937179858225602523325981515900159283882443287666342166473675458854585249044315285106006474116519180630308802151226471415708614718205916521106107045278478265476439231085281038640789561516027126932139279541960117935195749211960665819253170822454003195881197281794798629576641040863693307002246302851754501231160749072631656531204381519390267463521967732485472881947028372567166171971726864626565756157071997639551361141454790463660529390869733022349094238640976626087159861708888945969185123621897593460182676271019376934308756184735155650169586224580685368778587717159186544214660624304604780657824841880349593291916041694534948216190611298385363252674041346552559061319247359878037540553966148575638069111666912516380414392132129437490977640083127191233024579278461854748235317730582256983945681666866962110878855567214350074421037307730072625350614608029168274202131330255972818228357173839549710497394456880338720349888823709446709934968660060900132469373954903067144578400131128761089715765018962114072570841082621857719351243044808642299271361053944221303711889380306881179906326231657946705895374106524332788250736443157553456680122558280376168196094311813446610031581656537064292948825310845660080472261243225701378853624684575940542484790674955214858563617315689894670663604957913733334461366380200824240082423158509967583828919103194923376554132083014650012283060537697313556477179148601764958866680135607347589111057639777365088909691297162531380059482480920297610075823167051483401404511205235075866632514903171607494516843734289145455648330834551306507353683896985059108472258724477578262452179283313602535872061423088117708589446526110013501636324063213028314193764253744950184079957585723269772008696309152649062846741957396190479809248093364635510038011480977872737036903699969969450627592788099812682001415115447905866661245768037295955240211529210486373375272653093147420748709147580429200879516214038988155726467184107069324803977473230587363672621177711307487486257866534693193031051970134502255348379140965064122696361262387267668730639302639924781254227681420091391765672232973185506951134702848900451413605500972258669868195143621776139655735819090394311787111770302327370777484418773549592502597403686736762001699481463138328403354842574004326068112568182378811592504326558326577395876454097071090045238463352541744328504940387038113014259898158950826970583196742219976097118316662310538530644644247635654632673355999944552349912846057771637854666439987673750052119838990880006973153891762303561190607948093467831148815579023375061873645229119885701108936340184214200949747984022976647305664217546396709920852470593482772943491872429089133547685056989889688395665036016995985716616257236070992703895354998761483441298043746834287345148459103074521809014776369962364269568716287403849103267684176003141302350863351260433907278849959287733837883722610301430417802300730228806272120895165715738598945902081111887027048881393509359480160206806109755651795214827163295963994319876750292227203260040586982978065592280360286551437469745588920674557361304895579431912173780466390754258078718029428892517428209235018071967461952111050905460981529073177690189309247028928824104670817499559928744769649089901142470283953037219227098099040035517862656801464027061632618545963571456136770561523820919918638506242677167992886526443287531790977674384913402736510917362959830062641013696598449993275172317396634488683741490258964592745061459990386154864191910590908592974592379982575805156597568278344947630920028001784296065699847619725502073069214434057771111014776330807765909433857887930842482145983766436456239582020812077338501540478920066202234408975139575751469703397593914684854280422864175515226689259979977512450945535385951575476168702949996192464900348439432196168507304193284097980806587098707918112532127721034343407446713281659541149568586399284904139500594981132675837489704920088651555805276654468488211033597295845060671831388537167603980939929330617451328150936363303441457930147444648201886530879128542714327915308425004599326097412813380169528369622960123960739303319698407725945590731898685088738052984788696617640122614174188452110188605185714164425040155351685455485553599524691563730039701056229594888234071428169106978210543913616024773393999325462350648002265910367091891020423350473537917774488231357627165436786641354372635726253481691011504630341771560802436659728907746955433194085643007387931818608471954886987931935139834703710680215218570779705687863936440270758530434638357416292552121104878898984253340846073210348972522001392817345702155994625444822861649922592456494921947920884204025252901276781106341618718075254597349154234297091853622330145200203270068275292716180050829133751509250538416128412622259618474976270991070024818995422038264719738810234294104211693104078342496885733340931162652240722234984058929437834050108787270102151003423832870065006696052472920954189881390045964933173329130564626777971108912094093605312602257937252070946791824079853216094263011926564254999286810425669733626403029802401930138015445582196918018624387168160421546639992820607606365887594662519851708216723249062503358633737694552073778154089772839629625533964191031464061017670669388770585226612497237492507430218893016419858526337672182410723401283389067263695797630669366554843129919024326899853167220699050050904820173165499947045776844985475647224736405933676712763088360033143959473059031240721964297136365251618483796556970291971523365904353037162856638295607466143445361401568556138352090553309355085803551908788987917993649490449711741612364521068759063060480976365746206814087620970976539010117139692492440192318240346328453593326903151230574573032989948688381682607754430882108561185296927580038599405531779911267408558861797208896593807180972763449907254933024853641552295102712638672586165894175884166273000747366623845075960379451885988210156350836952234032181883899689461666012107519266040858017390314255035407498674643136678627614015582987253996323357982581008073179510132033081813358586778407273257022668676240152451478996783162287415127048441176545061103615607614900684260180552288384954344652790063664069115004278674463376506973535572202400592927951968821390624673514056553280537532849113569692219125522670797320686599343134830684134065110124692761553619605163367991285506049338326960756069776807043925244986923177263251179281225257708673045001150770711971885094895226633869256652063024249288449713135411701383229732051087097550401838262799918621932247067921498528945863100406169121315465951206898285005436159150066561248836074047705937106720742460182590157332726999380314320101075414758035713527905987042890425619369979371834235588086665446727666935428966645867360878563487155559812318284975355563412195572713839349330835060528773971435785369670673987303580938657616002164926173319397182977943556190126905037642277492406575296311762370124480450425606274336626360216475001620540794974705639876206233608065103461818999320095333793781556560932737511916619791765902680776616613848573988256670482152424121737929237169263925010457335853020305597286787539357319406900855060382274951076809228663567566343005805837111667654382945523040977951249073953525328766791020781570375891722990869149849550037809081288483115411795966155760144185708430840504712665384538645033997995692863669462501842224074005710949748788341364625511112320508562557778201236231419868663428774507437005797470335212766123468538575722997153559951847467021646962519022536026185515090991175356327318046716207028878830820180848620188432852601872960528509832206402965821677026991328230601333548565547814160917153869243360440424053197687649870300553163864002439465650186683925281024428891983027509084991852380632428924883907304186561650320434952393637330187671270634408750602530735192529943696523962246545501027702495749077858470344153237394767879791124258104867045007275266884297639931246251443125630577854231481575824942266345139773532529333442967624059050672950731212673475670655094767375574363135110516812113524906147773775016589711768452333100691157644397550996668834496721378709684413364513261281177834732149067146765601473252897246206834236560166071142293812455371844262508348128549328235565913337732647057419999098660356464219268376452197860816800361891256569318894542424056427025443803561794942019352871510754004138335938285392585186685563437962842855931087970260158823205654671376738230277899127360625933231161797505780452706202904108560406369968039438393167132136711539906179631429575481999774570058893160474178327469284721679499532765785491483384314839616523762851766976849693194906772224827903607738002714643300359860471916100431993315935786601626904771289070638875164728556028022630509706934726217450141533388920423128809733582759597733146207981718865177351242246833865606662045526493977798168973745846796930072789324205384869440275095353694511751800806948274078511518774815970932446575581657803969158760814001671050659926767844590513866318445654603590836246857485069030299433541684195725564704477975634982457261318079667957654856917067267287382825086237265010063217173242255273462631648983228512504310262660947650768317398361744888441856304458109688573384997110125950484096884150610590483494049771554670667515960944432814430992992341154488497414019364664332411847345200265907270805674129046485351169443096821447498939311617119190971518481293238622941021732757800519274279409748959833390661224285702675016165091455649966710368948348513626363088372433388319748188085854046820964402507550161549359160231824534790767485786905534079667868914839815897101387135493717291960392846466808880763962926791893984899824381708830140150338326651595809361016767879845284691735194207685622962204926512173556355453136174417107199735951527744050222557265445755009100091523250617260319951751392969727263357352784083149014629942993060768032804445825698034239663730137274621616495818370618766542821198883654026582597715197840880441408030423470725848677073995333082505431596496008377343206026078611123307255636300357269360320351567551471417763697623997744103673690745382715745136193096495130620571486440050335311346182401650359700467074126426472855676317867761866139731846890223934433921707150554876464771253753923556437252303108030117748846986229498018249417602986736711540806818145472159701520217978930268254568309419232950487738402523515888697068909582730909762444205519673850442922688642702068342540821411416527079569866280241416029089616951953521302248558532893801189495954756671813318908789332563871287211464991226065767717499959212386867292918006184847091096049718872364866618831890113509734604115824239812358031020882766735669322270395405338745339819775672470869773564428057280311309653827889037112461592654880178493189170903706859742840990914786865723210903133200697706511900496538763106952450872710405977265925832649649062914878861602510952031265372673904702487577530267447726465397242315363309966076958101262923325574573408061865617090987301721929317023021271238206488607919588740112470368794675537552322950786424095618536208654835254144432548451760098756326151276306628982440049281220953671474050084629972774120426431950624658528807594929531293778615244442986273592328844470416126753532696228718385781496976703041145063622499196255940064116814992395151079880436280074513976180361005768129813152322589803407249151452112308682693732037187803594912889571000596240280652431741438241269312209534149501112310723196224543648871741676482357957083016953329076099604746702649050701828332031457418790894595429171633246894914941213433481188894136518157242954597902932585497014273877215381558983497274870847988553259933112560095273730191792400317049832214182262701235637326137415846745220722967927619803748429378005013547191859765519912348671252130288536210791208028096000454762922243240121596156396127769956587194642552975406551323045886981142956488336600303224059485724794748070702356280235749503288768685051547358563094917117772129536099506055399653840867155505632215860780030402793649236902305592664446735376265749723723057142054280272890414689948255932027581020190836995969509469151199645138085192402684696217323827486356570190961546996918759688256379428208479366961629328667305152722575927540338597487813709750126105107088064072789687453455393297273597910438677101226411515749945485850285554041449046503848005712680696457875616109796576105376287963058239882664806864982605254300798766887527811119801855695060420100934824502849404832579538670893161991114138463490511832972164029925222545070086415314553014946544484561844083098362506321130002972787287946459571581653439123315130786431980202254089384673024151430760224667436175960236021216858744645541744114487262416814339888629360519140708093696541786624754295723708757088905241543339753370923190795056322945773006059947668480187400338613839845471136997110612710622333468389356895752364722984627184795521124112603685481350704333695734472803199497092057550822672997906693822082995688326383808375609325866765073056199342471993704866190025244775655682204865276324716653747753961481768712310728999905736414251325491253341986421622889686744682442646949550924017821475571691145954261583270402295578366124652272362919183532991178346768212578328109715685133729816932636797749479362237148983039196181342288396161942953728633679090149052965004268319526930829213248787035419458329944248544103835721851053338419908327121561886969398796259190250950523999191667609376155266815354691193002792320525904418924439237046516702657466673533201915865943744875839465971614237583522805905010688617021917438309122093394646715166291117639141550037374417744367591678636266917718559649438868288411605649273647951066372768266063397525999450133939803663540813915732985262866809717479713058244748674355329308961514117570782022037954819292151245022721520897635650064506719837901598172387185285595210948079723434150699704171615138547457738551761831391411349936932666294881423436497387754422465504093666605022181966211817267451177029988291206491211333704737939133712905647896244350334366652197086630514253092633509830803511466092522231109210212702084639136820002175617797809969448509874394575763734602351025146675249453553060356489233984765996132083886249193517513320100389811469945267049444786730964602833747280030228860560545374696506062825233639023902351134204524416639408544755570892738492339548628852757867180651020252285380671910307976588687958026547744572204748942460020385762185006260676389232149442819883760863734405905157426249394587598025377384254879212843167132502747399335689602231032044869837376612892276759870694062977260512625559970503266586498357140383059795049071152723200662813431478655898727935101289653801101901387470699223454650539995113872595866522025209781036801609762504941368697645902321151299124855622964273378324671746732017453656504813288770240965711184610257973845586272542105836164919230860217083375320778677868003021680553634681191950788208604249368944819551444289925237190042957153332608045999232275565643092411606693078445118012995611921605744012194938077024434330911409614536234533944220622077822479034006529246700962878754609641182655799320050698590950320559724629929409993028597310681995368518738416782158584588089393526861945317325403240596838674269943953680099314989075052131302574710339022733893455910508300163073337220293473946694826134739204924711810150030328251672327377426525669189641423933002733739612148741432438021584421540506646711193656157877175249010677238259441695713191260399734352794057706319969267968031857834471515968754069616437624441062161105614600259432775779724735071437074957390059533387105630274393303475345912804683744714196054630341477317981358042414462466063282516635274738024855004645282306111160983099324029332667323742122691280906419848686975764312617048788795483613805452478930508056602236172708409544930155219234767186030176966391428050796617487493301293377861464642976355861779756005027095366233763190764283852362852769243049098198995285502782609206889336733488608103268964956682304000496387670520937776680208579048079822413438376464235922831984169564795596646185421788384676370975619809837236578175549250963993033404586471712218755810853117283650735231472219189894392659306773077241166906433982878578222248754679040034161990008798594588900832847926466059288048101356947943019721970454520004619248892634448721492822087320143496630163501053233973086808887609463254099750732915147880844670232159519574631584484975317446528253094789454531077815270304548329685676693469422767710758599282729682698301698634910294135570750228493690122382320687523941845119506979057037695787938031691164265427111316246263640655435005784747037899685915933357071480594259133963839695319384158572521365623317092426031533362562695472549779103316707193759166183865613768014323336701470961643184712678825512766931235455554758284984397842737150703315288514537888037408604170166787181599345534678052584978352091538770476862231909345737657292110697439214797095302596481591483619886727812456181071696410752651662700167872630718278169444219613169645242285392694375133017617549125887092695306646641377851915961881478675409153633228202194853856800137576864186269993055138244298716465493011530892689828661933819384698820250336432310942275672946672101195687680849130617255844064808985634462632207553812872197559487402969058599003812761899139330555999369844142209683541327149456527530082762246040352396783419006946786899783740861532378874145272576562006036266286797883963351456478261899404174198235419930617309608077824810346672461572935500384214158010479824900441721373984255203243749011182430023982694963031681734642608921672452960622910551717716080517483889734218756737072637142271025394621474669966069567597050038637861800235628932961499219121811874944875009501995541122266493974826087813906805194054660367617348242674925677639263271720055608906774170350854113200115022989233208654789857439009628785806125926458948320074847565142966530714166633298961231067473615848387617831673804251943225282556532316978507255294362731508120410773732614209498453392104760958738960447051147191839011325504327336287124839978173298074354309848263271005831539745460176171589149243325503443517524056028575685149102345986811266820205094717934680696448480718688940119087295141188308869664389784935359037064253428813230541975264400923252253494081573202406440852000806333589730328497154308717058006716580784421926896364974362300875557383151194962518777383846132416245520712276631876966070305459708742950739290838475611394195530228442557991267483234708565235571268911808354426763614477200704523310396931204545037144742647192604268727165462119541373355520614802197320786760683791008772552975393061789969986768952363411166606561402655372836915651830582495063040724298158730812329059810428476370118009726380106635051062595639935138418448752900155597623307428369046392521544087788984582958957916125842238394266703905494628714813511889109067803611556777049510738946810060021381472796595921091194106333165392657729694206748489734498386734003432370499192681966729983726445655236121926342694429910404260902451035825203701476196587401151121588563891867811885117666293198315409529660152306502997588959404529268184791678087088402658176263750875386235095450306673016967915396571265359286517547232634866100496816988093588774826593824448419731509470794542898178957351423999159965589120703863312068888276340784058104778811817070171731183876853637733803165007031323315737677282412780170394128784250221965508707275887574464267511585261393279799767865362411913356289643392794521549924395821024380059538012017987734355329019706510669962354478067323256680565585613645225747923202037643700641576505205832438261533452605805553924397451324069736361834096513858199538716592893612211257291060250358742097706178814970955766624964830316093990590521496125793042668857141880957475190284931802441845741628418804200808085391763849945485008913735862400019697112722826591184758945296441426706286959259533087522092582068971605831639958694842990934040312376009578324384418231794629051671679540501007681223310814274768639949151300672609836923255579096799208407911984086616876075082784106387194126530544792813907775748294137490915352445277841153386222751791321336361572767699658466410024901742193098351333812826354235285187962678756266241070234622483428334369375586358232844611803300731341572096277370335796176094261107620725659742054887806647023408372926484119605001917391721778576282241318821319317203764033981012096168901626762893337663033349450167253872513083694646189963591821293977960810790509264580852371032083067363850001625496592227035586987198822627645884178457516669796217179897658302769894718594911407529036827215455757752453059048302894794920452347248001338898994120820036780176919188736110000970843307888402736238766887981853360179539564993392697059359523061253804621006895446082002392558796558951722750825939660360035489018021414788099753662550870401013486643926630920161369541044890079592180267818305599517514436752354045142602342410375725532443455813335598727159891666814244804268228204168770646597484830600896867736156699466231049369023677236005299982461113173143938905874347452282675620932362086711610482536739111576295321413830137354989578498751080179804052441683956709852176479665425406518423115861599592970737786658053943472464140466516982167695818100968742602885399581460671111735257056383245948181866684441384347258632348412563953721977013497106482183111819692399936461472317144546163050550631997461348390619342773521424651941477916785621331656633316823243739870558090526589799984721844254832890707649518253409567140684809851042696131351744595903249604428851020868708373968638495484338555229399541654988679008762489820667521943493642965823228085433934899669604212844109794212985509173970427600079627899309801011686246624557225650907260587897150188125121917022383825443829660257300194169360620661982338223719232518841390401418261183808014056581040257880725157096491083804719944570501466848259417170526334217655804514456302333229556761664838008327304465134994343309550601263961976388558684383653655021282247487481547063739141493135257972314977261020810157038112404906792976968236715162377136009080903702305739315691537437430054109231121314796467038996886343805435935878233913052624311731836540059466288359789269735955355478872513894104662522816270679186066220026023509211598277312582634287843224117942582385706231328347865837519785239155759683196910578900896496586234876617199487989164128094659716699317758523572934314241486764294221931867414572086427284878256340166868571848364710619923330265322635304348254411995467053431443774457256223157240657782330787667074994973335006474689547630476144147198189766920567387018967180799007014317636359683767371491361971135630120713030410002799920513380765708706212311867055242958922417609717522768071144335246453671160918196851114060691546497694026030938831223938305284706757649221104662075102751067075021216793242323009444788364330828619973323531803622901575593947969860238615920441604003935652178469910734070878306123075452662551218789895694664982854264402521619250575724847066560988873610541253100981498075632469616194051452082030721516692357724887911134224127933640918470201785751613964039126738797631714260237575467161075482876816844625341336759552042126178601675752134455310699021247168701297816271864725785227138877188171554961164792829227994065599586699351334469401220695296960926436112662759447373761343068218999750024394777248574459499174719432963064677235772736113039749788723179090847251991902534894216134210021660923171978644586208149338822286693123123787289852498802012494917676872232923219434129301765172742292514809923976787366031470757797945638707086214799731456094617891489086467284089182662161877773332712357888244756576650773950701896422299423961359915724048544249420868264951210192352996256081421267635275894176544509972134086657460594462613450231137511060934326892395611429478787173394958291633871654996414717183858746706922534023958334974352462392873278463650564019035010799398007291552446652831864111856294156425924691359757716833673437482332101243748422640717140970741322685049447777604990066035576198015612158587907468541398303621850436765158304109953691764222747326481529793353133551949149413731126570476225030569240631316967162111879591031538955760058318151803675577407227961074568400929070086556706194330773692193790443376034249858884071251799410340060802987822245657717481573032373897473415715957433390091750274194896790532019106287275561369664977229872505557959037048317094199977957369035128305536042714490165711137932757524638108081680922308685805338736393483029242111923486341400506134888295386614982471587690518956464008802394632759945721273449627448862196634143400885601306556226086928044119722999709698346210641871184656680147280218430573001670298095551587479491939614473713042328062562784963465207457813079285466413782543220867251283110931254296347864116811274550470875602683003615745255468614461012006697452598886694268754060448324381707753097978231351638761021334285791947229137618823335151644326909946160025842495587443038962131434746626391169853516628907914344148896073298534485795824775532184761565866733432797043336105806599813227281028233112375868265388179885118501687303098426030500496153293299056972965488778548397234651274020429157886128925165999712905489337940608533047087560726073281319805558815172858671877695315546731016931096099224150149053546083868236565798705413508442472491876872598399546298541590945086299954844939227762780128066853621906172149261002600044311822416038668330780079450998586607126173938197514334149339100980066436697285437138247921766211797284097995983740814272094764868773752135572903289792186318582023898471595198222927556924657988936393760722054449712887104495796878834752363507225182479273482116387654231400036962822007276845067551668569927321829942105951672662989106764202229341913229091304687748697227811236131860125103565612315685417082323308966380341791413903545525383153517685606890866094301389403007832122865786550248126870457391303812100564655169219271854691853106235306516461016634660101985650817230385740402853707278110255918950076086814179456905791849004711831273184654716328527665023829597997923732315870835161059843326717833541413427915096287218185216304746833035815443844170140212563673728616839213633056791123524729817645084294286802169967381696220980324093624989121364441828325119205687107606714505864265404951466324725651300715602441751391436610764216855484567736336702250021934659296355152258770371617185741946776573853004401500256714782888534393894118683477395133749481838449462000037568534712657403367767078073395839124637335180451564343001676628542916184254244151065175639441733362584489839302478793230001276664525430446357751889252568712679891105191376929177663907415917625800966676713246553092293193611302043336121411515964827623304097024331824760278264229623124138682030404099097892938789479848411078274399117039113763869234756384221889918072958985882058056372869099519074876552870266627179779418903493848904697037990732235180725123094032538654711007921094869188574682799018610681057363687025167254313516150504358819019736509098807615572138190809273877768609210285278304619556096791555611270844320282649286972438056030179878520704901252801266572902471613323935352738566396278846465007016034694665550361895835657043791043350650639658506944787943667008117158089415606958382807046684239863390111256945880797980281146755251194353545440218038226605156305104843107005804283866793174963656009849849927714246498822109130965180918301806112362405696805830376766139005865880766736794697747279535104142275905683185114114604289972146811536965979569543468999062098856828532296124239370096619669438315989939515680900050812973153046399172901468634223112189459579719992471741998108973001645232225141297286168469834081078547595605619162945821933893627160268725725880352072019746355871351975355380533120330711137280687172961255575107874347756500251997723042815524803246298161118230872260991497117984374545934748150530081608280143666428492526913018891965081472676997581337014230302903129887923221885170746873688045311592136459225837455336194029566355650845586705054986085678097896040662888701258738962138029092739757068479053114427909855451026961775567503344405244898384174564378926766266626218953624815513250314900942084720017338799907676671534248295760656922413592385963845000673668808555431341826945434919433836225205106100965732672476467028928257665058824452133552874194564433659243017002126851373939022091896358226627725862633736315562106033906804393659606509599647514315724048593213590364707729229346607234083653168002043310390924789261560551769089013965737169772007324867708656309190909773820587545882109270964529799394078373052271973434530585466455814317986712619539564317313750138125610129157703367435657404895261099827084935285235790139339775513667060016169012236799324583296088865793528817031053751124182385003748816810828854226667716801110185234532855149272586358517338379403818807849243778521834391990457960095910854687845984355698877194290685317620874179306408953374320978034744233463768177353943260183371741857779126287812479096491059685667195136286648768529272705970374828241479300511497205622955303950660332144618616730876407588668002956693929356692784750578545227715991420175480043932854203782130074778033110158807082674083416346274164840616169029359536119507911876056107256049941117657897027813600318231362754589010419809837880530750006680946735906557930140994584668839880867993344182241757472993356786965917279774587973866173281092990379124717847923659702361427947265039327733612318630956349404024684384370317399327031686659922189595858027891712997540388323830171146626670897516356711086670892307812299793385421891504066103662474664965948243225791049052553985308619383839869459348098976697049780241699550092209456919325489840885324240117129803937431654156752856376259242489713341861555923064530205765424737908397406497640276970236179139713036111225126402128274481728520284680553108489986815532740833037476886436826372876837773257317566832412246943605226554882811512512759265841558112743314863058625170183248051178044307418997278269852056394633395127002343369551705638232836833917536319645660729355822273065647585642723789423993866078992677617758565724830853340853358070301131293079226685078621995208680480004533398847997594667322710241850444585453442224572462358455311688077923110767313418663045140828155197918088905618113172764731089958568479550441557807478617120418464696199644358094935411421597246916679136007811801377662759118160800319636105961330354992613226606652510108092842402456669571437797975327232445112904557257762809666043504708749719140465827503497663451148794799728950803313337679565211991527248031505339241116649300850641147411952487484315587166011949707981610584646586248001765631429691606967381544751037732783882521234460268898403232491638558934985887687398193120472295343964999527668810745081875640704993828633719355372740429965254035714022919005162538113379636371350995302871771105032677421319622869403520427934645078649526422315734646303603134074492997915989296000180948922728988349275397784747259861483439355371112155168409465791499919290696140955602497517503057776115162830928031444327836315957746633465566584465019837887231725894839478979985912206086616650402087270261672363874031137531357650171696812785907031044711382343248160877385767705091779118841611699642112143924256241841811878452177308813803632761950683131026037937933047153131313954693146472018910924497094844982867798404794213400210679038215390665006286517508225223262781936154115385781914639769407862225488065157406500618072510900488292859846612034259892870858131575806741614140880349385009292744989124414502921322000987340691349385024203225466231057014040824849663554114872201800075473764702444998283922108971099213153018174051970633573708685019403438218126366780049723742088453619552655360089386714096648289208939342491041996915115757574686676371039991976156479399389505831502620007024988149016442435616901669639694363357987362994309419131690191295456050205537793287965810162398921523726076791819820712727594919828256074541096562487250827779713660545886181592564920465784792363411986742879442570055619266114694626147147181920829477839901307383418971506633872166826260614607767909808544085758697143775034453607434116068883912155412750676462491629629054967623890528871112074347805385052766460096036813947272853284855802745940515408019002396502812235306675187782585225101595171949799721030016125528803702498293576484333301877103847827106643978213624045759066935581676831599296754853479423524893826902242241870275290075376170295827026312932548588013433396517314983147374396850367135546475169306418447403071984086115344300112572816207702907082321390977160949116793429191661551525872233261259490627334591529609830008106588568019115226336177111763298632521586557935871653186143268745275590736355090980197608745388531448239387928749742156963246019123792264307043914357038452747027346490256190571644232161854804836559824617343267829186785305168831251956016948111033828961291783864825101682043733728284278984458966813644560388394609531518471995948306145889052963265509473315639104400878502217122483240815819225702401384031859905636990287692894377550382281363256750123674933176112269924464373116958568885030503801188590601661984078976713546942329146528630670483892325049683354466150180819871584215209138759805748222823370651696224004040453971694224684457288538723268489596037620505846603030807258939638254385355598120510813651194185069075468550719988510757929513621869693392257060517376245511680921740036221723748231863198279558238169327621003006167951462286894416061470799599797057700854881463034698718459770606692414113899007669919081414983683117173983124939501776876204116149293317967028173283506854322801793761574354565754295290526173237805949933992463656054152716218285083897883719510108585117929938792623992976262154360347544967841070230999235085393386271254258422786903855202516203308203632570606409531399280746944595800864105716193643164001589689618570671994122468605272158758529458797896033077539690045495927716867248121908436046604232660735096971172546102956185833519545619318202696994882111566743628867410501855652547192756060244217148145146027181266669414010912978934795132948592222510876471970706410492316989063075280994529044514327726205239877529988414076500425239862812690184023794396709604717750769314955107413851473733327512650059282744694474157920584297738671133815367613643055224763013120314769896168764256085652155873107102749135178291187403292866098850003144380919584260975069391660045153094424372999305631330987831914935275923314101295272886923429506295437014901879091785790546726293443602561484991607011928447608653076664229214927478929759196695119735781976763699239956659584488845299845050410742357935530432168740239416211353949261379984441861498021165923958506656683632922860759959839024054947463565295106232526832854610863998443077685824503695197796281232119243038287147439342601417161628554001237850101381715822470411200243815695438797987757393396621661684985620375980279871790505645494163935211864918813584794234466763778516804981672450222776104392040156769281665862646707285105953258975030281180788558380799185387665421430554598366066127396875857937911125359629608172667831456123095615656895573125674207656012930467509504777997363214633648269334424867071319608367740655948673415089569317439542809671680732653045078142984882003605371707890127311156280906734630061341793386259149766153561057370281658922784509369796789161422327151986817278182298203768053961433423581339886920499465751401181877888876728196205551699037322697343959352801282258368084630141877527147000436970042342566155564723478679123367262979767383759397744751882745105913985885559271807475312961341480395418158030774347912009501627046384286122117267620399955489113187092144644405741757484874305320003158025350490556529718701497573518417802122735482641639853168697825655368106981387207225345670125164767001493953247477211490575936168200136096153731171555966242837094852070824308550228277578826511761702613693306752980500466538782265684786361977479681403465760126458289735712018207385537701937879764724631478673732556694563738659296765106982484403286811992197978794975009143625433415949224533219683213132842784543748158799517083560817980309314168255453105170225642008037861374239337243847424701291462395197062601783879593468137844264362440040879761325269440984935228577834771836396038532810134565291970280222197693853110537086340342985919506491895356615300970187009784925413137651867429116075115856825114084235004104347125828898902343145156396250340327596239736406677937401327502816355682331931042695596356960898306915732390407957970869928989737075418945725970133884634697332261109445745055911985522501743088699583123664398096984248075232244581777679245075778822216274436437720414540550246664747054100574675284069123088720176317195077818021047520887826252537628082245319691681629331056830738588298239758486745304038596992869243092954131474752306102081809200759999677535414148308984052791935027333703845018982051090410530932229067876474432740401139698972510519232220473127621578785154836955978880450273541660068161581511557910437329584665559830711022875531183985899519212466207413046626155983622541565747950089283267007917222097490882566232181515396008077819891961886173361715544242213965908050869766640750802615820433652294847722548246231293529659777279267580475360548216953569088149385006917418693821127051596184402554355447615144756931911984672074141481064350961175512721379296767975413139926943724255936190886901197340442904791327493218780504765003230161029905008658571931675076150895223884230754851650859472180307826800145818122800316670911450540552056515795196386455448563842316695406916134144517800838493150849452261984172710299394973865155341578917351884183887800380047275602147365766343414476918331821084952339025602535833222062270904926173651510011528456083227954725917726408806699657241230235036284533588887103827483911127939873400174824856295453331989935474073890538823072721663393924269680274923584174968467403630938349737057356800409867105477396347833453690939114427068874554771059114425922514050465709708006393216551685896326967901048011579227379723008649878519522437614865311735301274954235854379815561883408307511280920050783095234435689108760379120942077385078588091989822202418643034003211134085228121846054182274637578942707247426166025370267309883944632416140461789655102514548535899896325710614210452651308064177529487982832085285780876864140859693343418410690148148243301742361295811724003741182892487821590755096747868671793989901947278428278403443632702582023633102883202461793001227345364781758610564665941655763658475735915766373336086622105510526726456224755971869499921183660785329708355469002641247066231861776942286129446174444018675096431685043764094548969429272078057878697046250299337486646279167181126002337974788881801079634841856979868794429113670452896322472741955734190312192735221101717800780470494058093650466633622545191415746910066049111053518047468083100890368271821928540524996569657158297089161186212292084661273135921839566392442217299547631305636426170337784597231474088808407990957992887656715275926295290686666283828762518137461337365789996845491429472535289307417235741186387974271929265437999600439046259534971535074899161368066917124749308481258933308659098424837426414453923119186814762615687983728881553090760264892607485986954472312249361272736086934572310249691815892998684168956180672517289021259184060285102281367356623307052475129707060695531295815426201599124344198417851979009222616571787922357900635709755384490180208450180836787278510141343674125916543528452329750660206619322569288380937439643800667020642410067650453778571786388391181728821683676752482237497631898594447830840508105443479326487953194945682561695172059711080509443174178883133166233386021154832665886465442586790138529010965525339941029373330208455858446816031321089477462734718619442884851744715261026564182658109674504291332133445729841398477547238182680895109757719171854857285594900818362007481806617380121842893482125768160240632994767302650536918046715892802141660224151036009421793569881636658798267503025564401644865550702448919972242713702887727652750893202487141675553889364878504872059100908671562882986519882189688846156964310062870187939526077401905536819176626887738244390770491885220144992946720474289963969596453363456575302368327030101969564111119429511463163090104346688340272049072242403229638295033313396954798088654125116890620662838638430196202738995229841650189470170084326605335044891466236434126277109601188959553252623421389386529421170259407722599714030260238064241757202772958386474183354647867639583910034856912997687645569308951329753822893615286970727393846725271114221492001674396513382350455818507493405265450647893258111101769569839502736102588325854621024155319244615998361273243503125008347997433236569307267526462659276489592107450464710290248669056678720078385928269790623953762234120585152915092458347173594235166337646223892001959761771623808662345586931814689005583204515695154978503452728052610117776099832932115235075233274514383458351009971065004749019521750015362960553289533128743622710761981504455413032192666356458954337283736137238910963226276088430864392932561544869825505163534808677886209487047550846974888002151861513595021775954767236199902166009816095743998149744904384751047447328043992960093994227164278220105328010419206588481888484074328604288111946168810935260918868901019845305017736368242922372376306508797315386438666959258571702467008124291266225678095135812073996019772579116746035022507444450031330232431276130410453948677844950564502144303559773768695043774976914000627676105574588457904119669071556382665965623752003501431229540959238400647741959383494225052536524065539488099307942640302302038808497651261841697439254829500922882504329851084384720976094951881791223874006199128313480187284176767632570065453711174627745291917150704497598822700094887726063231799706952680025585299522043391193255836801393331458410235710497031185398114140534400565655439901607029951551555411279802739884742575512860724434147550309650588231087832314055664645821355744541404953036753905075239577365187204273301346082727017148621076426927791200264224711359035615614133487839164564705989166797816254169246739108667949381671658043784814885739766178897171798267184510031753179996760972854612530557115252040101286883995253271522921037321598321857839147865905691518840521144731831960632211417064645691950607950785413883519490318592898684956317726947040574617618890646008831821734475578142031663467204303013462721715985119380900822133865851584789175274143531182497529829731610225927266721305390805174661921288788372289034336644592349044331112390239256654163542534691121271255612284578269752167722283007004258460854388535491986126684831043301492011368548445204460823195016494191992909297023910748174170114896658995893067180916786652192349654173488333863987034683159368614741136415083900567240402794851960640165457694732795700929977342684309193813923138681107244339057226294751815485754281056605700580563878909639885961771819376436385045466290056594611839621696391066402282310310490012203844975644746157912992072971465192871614841766190577450723779448644308389993145833496171272107951742098433272740290445194889504217938813481542367057691474104570104118251354829720005548920386378959323307266678149577992773436181668550996695390748141967077152800555483130690071140853251436782568407943084124767513424191882635522047418593392321058004190987209766666094109397689717219739151043832150908065254776603836322107800067251235783268390231329167778025905394999094845653459489700542366903536599059402138875532451690196393466758339617334353848396118257525273523726401951716464721464589829903354697006750365039696207946048654016356018518857634165074538230692529226480917956129742189585070076883921390229537942219581993911274504878424297703356859852587600159189279037379313371163796604524065339328040712253004600560934207803846079840293296662388791601577151715545837707624074338073597350734588269490897733202110565893785141080475097996942575184844089110997691406095901698805927383633886697803909300308125363540337714183381271989451393941334611818891311871712043990343253800443582653401986594217307311413972329453848362262212091405221781922986918429673536610189789947887379740803802426109819200032541952531783418649358318364214479721879127403492455963207989894138710629517759366860494802628495160976225281703598430142322004359780787202003445939195855347185499329392200165468053320661693538191704659784092537616765234916474806013176856644873935324823795419172294138041553973390198563875872905328098925213767511496830980726223296641658337564055415084080190559262068357629430895411895736110231572033126019552616343476130018703323437569413246819193925519909178316966504080218360853880754591196592638497938621532262072790282335125619148274977407466973433506144925008673375013732773319862833720725558462352305652906458851713004975088079218594945382694088942299211482662514859815565739909002623378007975572369412433388744786042754250067645273451591424549098473814407222159746357423051325495890228033555715722899803724900823877565779547561314129330871795141631130912311107672715373873586533832489476585369798165931528470490073554655613043367254771504716472202740299020796453036711996390622018143602714412169644244394112135482432664661160410223391209312378795582187790526335535042508076069463232245322330815350185258865358147334157659525995555812695797621033207868106908764094809281458244775297396345813396908419870550203488951608670235436309182803259009274701274774323237952893926692668943149635926568418513430694412449618405770794381306941662214259562231558608984153367990032305024085009243674755393493310215074277783259958791309908577932080627510574099226646056032998871144449707110504536156505196894792121293591965167939427824301517620066835222867361416835067789939376730688158013554645619325875318328899548760368558219734303404811355334619331987190374202943851672244057778260585936336050679624646450280566215174728603081423185753524555536644133512507155985862605487867166131319909536927572595159884240972590055831287069122130058022487429314388231134871322313620242928303465756746601402069676270746073323944301398047096084613236990634186661891655922386963839622536771081464343709203346334962288369354529136137738655609019691958965754930327102298354202145551373878572114782454560030915138778509860815929118530872102272157977873031794757598440429211103168540196161180518206693451158006621189533999581496371647982543327938457595489265811774392567616186211932639682431230120221493789195476051883856480687308811610618557370614750789409930378818706579375542438079155624273184366873966940768846749883790382266880638803353315037400102221912040753468042643216239306837937285940471671866141074896539185969346235992383543386190691819279042686594105018786752191912073452743303358894690386793517396333113178643030910291826549755976844285330866064263732031105955981177939112520996713505229044284530591579331589180021843042633742499823679912100153042895772421893346569478944223088720648514004061186026683868859656664224520448629681117920054392159677002581041237814125935564203150016964694783203920464460134798720071364011768146803191542605159866261171518487398568390334993550251004799475491111046811971004028295903076161568344080677481834266700850098774041072532232255997026643542300319622749997017499671194367594070152528620860670385537321496885027217130885911192481907864998071340869010769649088821729211365838793531633383911717538062412212932237465619833852844339182750728572537991945456565152825407212895153187467787665775932767896283571011915910464437260227864487804105186384888784763517428052977747290806214008776590581844476039748308133499866091951271765674020880634099086034801025922136519005116795969212718366842575490084885661998226296985666118243520922246763599142498155790067149898134347935346863758810050801324700625303841331587370029276197990479409172948078634852020800237382467831306848546220948036252932741384125854990213747451530229040940343051408180434022750120610504529272882736076131000149516812948243366461389851688245581777844069757870323202311076299540691496829430739611519526305309411333648680376408619957676162547200080659362030006204256647636701734619632939805615884311058667297123807635187159054535494528339266436345155208747788055253664704237226955677569756462367797081686394056415289338126914761550520672611347482421025787886530731365864065316876931755221850861870482149694806616268526784815725427144358867496178724724852705958951434010346887849233902635682117302964614247884141902633092091165124957621453264310120527783454280068029252564505523196108953139967188685462262149255020236398503950390543079768155985248770883344430931737998391493683322653759236530856078840321512521048127944115074293230858358835540864038815178515257114018934800554315581377086834067502416243440043237023662550605469180778906492204305544998421305376862881359701899966013891468693884417589468242510012618958207426005602372977623484002654315973316474627000181806415219683644822912664810012244878292114050102380596693046403753078475516499716173311570514968856048039350803027285956145413873984463755658336183188188304204398096117402960816973727726504540968981958660435746147884448026503808825669908222917764908401628848299402493728199520650558125086092104167630448792973721780019136153595494141829973786964971701827526142909566319693675101381450434007730060635241087403238062815893684471083894416913268120435456593132448339926307082558051090643932721692712613926850200072440120204916533543387970626958024250271314598099630513619643974202642253244510471973285696482102056615648816297810287546152898512943320602842238482828321511688473561640064717036205527159002002231317443956140529406531725909075307636004807147497096422373069548443819370904172718901170798916522160145757013837313195537378861724634985929126535298597435482306834588167224149947993913707842101501250199681439412304852619164711695093206871428364218449919394901753226021311535275579280844492379721607203036394874897309760479450012369248992086320919264525795212993351607062378480467384246826521952806542552732362849113794157443807506757351167367172687058685126028973784754452923105429200073486819031443030521020927604146677323944566501127363093150585089323843953618140106475931991832102361014605582918859024290305701585229539698100037324857492752821202788810449515819445115816950362691176926817079685804428360572989058067504528888905160873086837502319915411756772824108941595742612848736518216156480755312773632710268850147480123208554240314103582263975670683232298588576248590487246880471355230728440837329757688675623948228063888356370586357689175509772721223649072794176385752657097006175226070427667738580692692755068284655100371218970788464480619647352570734979871681045412131897274919398521994547347450377869560142190015084630012227761904416509092054810914243559096268263109652230572682566895673759921502331351820246145318404734247181712462817685407669075793212731092514296711087223674155639546810085986269447781049180601637358213088025878683629205286573029581884731037141231721432115686114217970764998618038983821081742671155474577612334028202183852991941380816987778817966797567645386952551664405751389014974332659902047269472500342438796920142815303304133404262363890454520864431949141300982500645355853381066980859510808413821674630202810786196486901924321097357750288644984553964251216626470436680849096959621081461148594123221406100256764186861089223039209775488337759702348181098282686841237996048798749612506051060948521640378502486324040903732605013239588089516967957272130591054580053872465395881500821698117729573474055815233330577184928414362925325948688656271860731368000401569168286035557431875431984023030118057022614644358847521696180326522668625402242199215286378363361217150144105181312945682714732378236963289673695587136256392385996137082825611517629178702236125819801497877699492526745569469489027662309883595266963200754221298054192943483614654984894842813737988218610014819808874985065784511850670566805963776436016583357413501995356501778267555364936095530262414084617667207044213502740043378245844796158253188724608910460309814164709891442248235178154365823801472471352695867508460040289543525883259254382919335175464488238351663197541385480424900075797917169187609883009047683914001538015479782686559484964507781135824245732652717657145565073728096582437648742578716364376846860100233740160490756365288857578223427978115912991916059268135412959529737781408542748570427772982877286451258646800776769997476290432371113091386167784230559750386589406450692698745461896025119064212951242463027000882229720999302638020483891037047704981925994440660438992821520858735600958846853394140288871393225777865072452496058108376150256811729134750938128616405116532639300541104016348464768197509455452461206081491450048381624328526102924416429404886449409421808438609025607706555673709993952143739632450406930611255790823937657862461539613265145534498632967629345709770548169237501350880751070758530666313823800287565777908506455715504692692590446039923195548459760233541531278524643793585141446129295687979569654480944640149915567008939339191191074586106475845871113547663465418733066469143361076863020037034420195557139994852001167096282014858529703311395345587994797454585322549686908109595971337345231062148047634370398199042054492891510977753125049788420901218491972332647729381423608206894927360156710490080450798956084641236606420083660684675274026357692123228768457170859719674102430748094669776835580281092052071613237683765457772754036643647048827532334912609678140850073238282715724386404638950969494966215776808960036161523658287323482783173180141987019294180826866475878688343392685363999307744323355328456501732446309884441125348969712247665382690974742253913152986216484848825036710762812347950434998533389111828066020036183299770162349233988102818084188025724944573305261507662160318918272070914499204683081575999336828829047640259655348821721729622191973986155777210111642047374595058711883085617788428994663534779356052897852566936925748151769260810036509195695728370052320232670339770721713426974857531316494119368214177138390108352145718271817753410781868366722084292734811675572528393182511904858291982755352504741661105607319144217061806726177000312456048371304721025950304139821381081005901165076102030340586139740701854754864211205845763944946770992258728502753891776009564002857686749136781896886727922394905818046394833730989963951455452734693042584925671564082325004168626097568035247801759241060130502103367108895515376581708176333671590462878721004961131346940736265370328703143179434409763840101581035615255892269763853925463887809407690561285023535161673941276802947723881222294455525270023113995854576133320104180296183265909376871318269271646620264587700322461705832790283012088445596932747540348337888113632252508292491113162023420090962170582252167215225023072162644797742476050771822381153846505561105483685095442775856523895652686246781250956295983665873827093028811917768055405166265590232093549876994190188085725557237616393224356771190966418778795605377323373960862971863787915670327995675897481965667611716823871182930202842643622475828256317446239021425914550392776925806126079663323044928863571111874401982868427694681266546222919186417617580718303294056563505575710822220329531420544269724136549687372172903969046383571662337911450975524953735793813695167821919104703914734043218991399063198967446667960013184020335369089664310152509505120126528501291645523026127796056522612751734118522032814600405199350922456798472641659892115332218414495695253228608442928217177526822158889109823898899355589940054593318505128615154787048324611805353557019549358247910997779619223207583478967331770996815823932192458173139111675264759659929175714438234862485856567359948857651873994301517954313930981468313736691490468711012443581309952812382118947316844684328850812796695421452785503076710376459001548709284666218137380170352774055204768906018452637214140396967758003356661922542459781662040723291186322192990406550356577210031381740794726389609502646310326048217048727345654114211217683661824758362225538799970695513233089702012363408304857434808469588089561957973817471009429594282286214820766007372803129685353442730260396527226030937629549325289826758443665560971222870467136920665700429549765271906373941069355320971960576805500756380384283387184781477192685045114727774756579345384191165445508461950696474467351497767114185065859911660085613622187504753333364117011896266182823503611026178298251009730617762002085316836181464128093089557424856239827514902335323156694830936487369451889845604678986572405299223349543747238538435094700232320596585787154030273257217508789465035621361670896610306984183640860819691218743586980680300862154466680508119041118852838082624092757279424373862721012983654845821303984808020804396436627570040914510325510191901980838825968526979542215932272321657514395664368987796723819214326178931437354723337427012681276720783696295474101989894300445327176463958212419672637761707373515874790190948244281038506394777318424152646543826977532412604050318946287463588633621024397411329876591872959043315060682501034289962911943922875673521807452383082126342372215301623303542182011945160489130762969797500793026540054373405436931133228788839129077671620607357768296539858930251186628648053738307297929867585868344948801328227713918706186422853671695743897066707504828052188959348157608445165338232368924291535873442811621637424692283561400853400879792142294942937630972205140790463235562833573524487966095200435989879174265421704357677106659841184176032575894300507757449715625743322306938213105570533771144493236793519308861588303602609990393297962853659643487282965063342126176101214595091805154540263555049268945329898910770316185959783472802927160204761818414240528327169380652849857898451999833830452777839187327871891162258438555631694507060463863111285927991139415074312588758591329227541343355095286380644400682487876998347023881601104082062720877505414435273218863987371028440232923099752637092153486013504459058289854425657964464885587857601889800172014380821780583738253994273025328466810918333444965990472412533131702153974956796364195268551722414801811379439684726064512348364505366790539620379831068979673285279820945616248985274460994253861567087396999975439921220085300301167189620137462209430587201775845246047485718282574766964652305434450978355161087916784742597084186193292345549194933964435545640171227307672760891217950052475056865009996222121570242021206475146608715339029764735514867351319012119745705214507337250757462065360102539066090445035323120527352952405894470067665183876361202579888143567723912266142512667523239119126300056875959919016741906266373545341643798285851139393844334011491175897807730146056129250782557786719473818220182853237980250549796611012146618254236480889038007385978186512777288273044169490019576130166254093904001120870350369613014469499727692685724632868909366217532137963788498118374481697003683643516130027540159027712697963930105014026179656504721032303144801457089724151911383616929647065245825457433390896728885972428712775322074293128521304406976683188495924599845896233449245680089640559444851979454622050186049752939220887103401289410224488854638210273347764332114573298773864544717835434602472432250366305543989660722238033450093125810086271957089029391798944171678124446746903365865499157596433188616596125038425168443874827828757009028028822813021088290225767349590873854958980117558104833819879869444778568014843909526470272221090610625437659092588625489512586392005541124614236114080980173132309062806716192626770613354396733680178862097027604094406918553845231137161955969705352377754847493733257334295764466127366374768824038047859589862125852441782104884097625015930314936760744199489082071581922856492962106872824760254248166243829098600066770894849370240930392540146886622712559504954567636469664245795628967865976964911562384232867584882064840857648414493833795148901845753067450796638991829887102924809295212521792641212557132370974032970766930421242651062424927365336679746462400311822238548841377285203747498146909615227838354145073065817030224652073885253695893854138868966157349110104185987411567048608551446415855329434966435589919738988944398687239142047717749135099844186926743373277726122098897070969376062845170822480160101577508269055863221143965556723180294485971956427638330015284716560291417568959555169194125393168888256570743946120385348887464608719547800409592485754905995566191720527556658697007893049958255579767171601391405824373942581637551904831350522360847378383039879852713877401302070887806082370998363096329172392170453228652987455202519160048869623929872756351976577643957713702930850048012599431481333860101565893522308941398443756824453544801485553170379511688873640339463896550723014903366545164781707204886114212367638278556346093632225241996958790901799631306796327941347602861055782427113175721245358807566832063671588609336392611451594999159281251219570139145890473229771737875356603172572268259365843150334656584630552699894407194492725533716994951303903861349396574063132348921531243551554248622208999545864819434318935792702225554970663438155554444847831659125133027774701117596065175463839035248731414821581049298707555068213630809065451075064364189986369457512167116565527568689636283516551148954371243988689094236421190717158816934594237062269839326645409830006821089997171904066320841615294889968509812893582178572781665233646628497819206592980145531505952882252225952611009248433822499912977054587083819261974809754957167725833530448873012003565867503984780015342233602797030174906185562577693849257051257885494972205023648227711166834066442962774951338147493495842648309433049774789033065561697628821423590044040995787651543747976671689970096418175809914051597462579896257909003495241093758185287751557556376679528426506021125686821902945106304274801903934866921005818594760888706464876161600499212974160927405949098049143597020333965574083598185379500817041102645117316093230522320184476276099712131115257276238737971198297041088387450031454183400375554748409859086956919105392732450726528408055149731941388421992545127637664647222778540435273439965415045625874260267677519062559840851381018494327201045596534781966918853152668689773353052996318328358335037926070085718277024698131395852527202212867471826002786382733079945478408986828339830505841575500720353804713584118119733445968148586077921133165401850630323081660489959152443559568380446438444646185345670457403440184539993546519366288009818907816384626921944599607161438899277534597470616720977848843709364944237527086602621800180315287912873262609159851169747591490823423229920029223865608579694502328004108459044531119009591254060426945719080543731107469357460267056123562809226880787396148384820797267443307951535988791735703774389374920460334951580596720169874578248204311673593484015262569911673749977083659664882655654504987294907884522157344663846728621286792755579673242058525617223657198994503054426788433020606866958601358303131719422963584118335602340978397823499989109419528083387187793322754381528678826508912286404448041232723589096795839270962960780316731106196210536349493056982529138679135482591129872642987446134324969939008609755862219206926921710144042202708222531002697696903891716950321683253973210848925046749651607072549475786775490252477727225712324285554952233496854006021504171221882987611017721772037391544589122983305135522412718288210750760717318311140171844495513396874956230648596231476743511037908940077556512239911640485071116549686601247436593541208604692027182088368615367747728449094251332063093620354776866995320312061995893274417021026973419258148223184989238176986189834013213083053191798958400710464255074199895530193372615761721830559790012647276951089966895439796653395839077887895645713230159154001147810401351167706448672902112980956156480601900130645785391067031230902352321984436848177406208831458597009907318211447820035051477375614177454185046364305188989070222165430171854656627783023755377232037194706650198233320026899328171504224519022722027586105143535100045058772322242080360314118814235212140267018372698463122096334219275572601995862289991683560411532075449731799505743468698013532685395151604736819653626594872301013064260226916931146536085654620637649391306288563423338150314397052927470069365238395163231782292551803516046657609740546889410516541623747320339323612162848016716410002166028724133525411543580485606919584143187347079195108967131756666895669293451737467122214424705448768028414506111995028943590358212823062895435041019268229526459202061600416768995053689877933546781435032774729274073687336581093828794619288728158649074807193562012924504358192842388423973272439691319625597834034406719530743208086060470695491648072457751523315759808158843813875054901036370419068674185732162437617190213911876289527735316667434598186905096330834982889070540484692504094300843889867693021418560196875028923779941836574489426918611150976283987440656553679037612302647924376369255557570200587044386089263277158909592230261037468022612216604633207968951175046346113631666985079613683347552726352258172487109965989795685584529818508556541791403843097825693550088974676949086311497523788326099635599452135035750974710589961122888575637711893288673150562810251390960159105099842245810612513378202786619069711387304972071820906074278291836974575329720120899880613846849387468662090135123561112633488401172525679856847173127894307069503669182506194818560345924708256150752933137618966307690365079665418657337898694852016504592073843017138649014881848467287083085417172570844979274844469852867747661170650368212436305374751396881970358452978226883153416916108692312554392272414652234779208625497409581634441310689928449206977141686097556312692989717106702760288112268293295589880047159959480401328743812797792246803042064859690448256460113078392041781692655719487248299631266600123691418425039665269996427700242403269296146476794525762019346738764764929794358397110774131479992866910317610462817141790175258203965922451630530808538805414244639669113580257406933472887520169414376168108143344740693191688866995873706698288610405813671223964322879717055600614660492316790401384267973054480912777343130945419033837697564442427314031922225667958552288915092571683462160982819028150334504775459109411651842988238089666661534903992494794383954565290452266603191474321436919332616472935868671545557954739892666503770078168965026601385509625386618533079566790996150861936438273585119565024693254449752870427233021998480320852348714407000152111352071627452701277328986995342084814872454937479375119435375786948055930178000083515965429491360215460041123359945015399960933798025872734653355601797945768720993457865927700948634005053830115706356365200092117515013194170121311089043809260899321354926207131052737848448845228244620967624164210443619549347444574312610333850003115851298778266351515176532333987006837284477087066171751045740958757179767051981239436182660634790106980738869461731740361825863106517488774229251417452523668795003465762634736344470502164019066942637282782388850770882386662662184119286337757064170533398965853080639502065953547556423480956141960946201439386912891585849928472914898483532355937297243153900917602958141474833922546724182452857154683447332282157733419956292031182524445554691802623215242416989969393224612980122383221819769024878534091745670863834991655565245787642642255955139754247873634669098474527840600195233929840113095880762950826667358443910633535317243711487676041843181271551379464408571037026237648049838419178928753058963705481534981826746336702374671213385309346575447351871264365960569946107624443363489730304229672476466670953878647407490336880388874823704069703709926489560996353571730221177284031551951049226364806545237420861506304341828379938287735949190358661637787455732928162509584494492721263571412840657246520616250378878273937952041705084993830278873165835743086454298971004098693074528426867125136709792206596182460074192960114881716973095573863570516957786519139020820960835587425093424777557295745344879248412599122516143633092291640925426295369745355399263633011022179427019380653668676721779596730223409908792688686180456856081473021933459310253928610725825808588655247638444636234718950618341835784791357039800140687962935075173258082189531817267656420427578713159204107567581133174573259845516164242154999626300452377605537934463132580126736822976611789541369390129282087223936292021362667500942388914405734332164361832731715991585907347239208984560404083771941809668244505665730915368963797723112394876617756802438274705799455560124499722792472574767611901467723363483677369487267631147052437674180303674687948748719659383285655975915124571301842620902160944119474958095196088337063223120626419801104170709181502226361614814453817422125724628262984686659741485256394021449967591379541825250064567352483390098923092806544282988423492086294242921400863168530466383152954534867024131032262015284241673406161181273094339728019778896031826920321326774942429463151147997141004864303097078575182801268946710968808873583523619889097015877518833228578378252197421116621346639633657449637083774851733753226504573327975579846989182370504832369630866042433104356018208537198153403410692859351806493145030145378976479665911823469717080208294149005157057063407166604412380290720139116860287377107683222529447884332224635089168096023638468376769452493597333315799688575774515097211567351970719229459794290945444989104696835654942044502261102462307537793746244707944377860316731487754163745537340633535176280092209333045069000319586808730595717873819578463662815892087308447666518823341798516585546886250613265947420287236071003080855639035933797927446524564414120626299024947514406647349706652827327200006107927550848196564583089085930225281565978665938946750012616445066466986882724734283253998845047192489146176914851125856684228917132482869463215908063553919138972169551468107603461146170263719873606172692640532180392033896475658618768856223020711428366233552834339420129999201000579859373770142012345528015406963401194195875409105193135123726856460172603997753179241617130610658656184061560872498208783390827647321885556351576468265774852249840337200810488244750897009782664589106948743719480716586850043657864255420695290273852904051677433601565389040826540765906081376600013555837670540206853162365584341536148818094160414278758442524422868000680267818250013277287250777290996640772124346420011734457531667903733998066884144022072496897366006356679533237596350335173195553646241376416235126473068255732179359369751248807150790018768139027630747650410841135113346318516142936725975957741657433363907430434815614472518628684214784328871886909768660678548015306815445350526662488900548334966656966460600397366631666799195194240258219564102273009159191550100003777717133540921643483005136741832318648865979229592671137813175556262344020611446112356502893283903477521290221541726555022024437098607435996811223929597659960268609500001284562620195030044565286958879976591171489236135688968515684183239372289080565321804190004786618970470370561353353047739253649232774425100621131831572641984843392168561127425410594414595308984538755407924829578218747751432330549904989565540100498032619417656881155218011772003102202790195198297517283045613124330205914653848835272014092577160906603250733025447308997630336575332577101888186073348124632115810581417976831179271744226333045756251807573729522696852436729927300858680561989053775720070238026493737772366385415359419376412829961743386785484418738844027857997593102553847838782229520227980989609002016712010284404578029543524779880191943590703244631892536636217168119760085727034462670743393798766023722878175143428220480385341717006258950153953334633259600610229145795715468165903033025571244445454266082738607934307544722503453817718874105453956372011829411810694184978422826273091696273528790448486844203767366034274966481409742974509443639715831678267972956631585379149024169877266775094278471594842032287952077514524680608792649694449919364396522638563017881753989687919121330773479245718389537193234259654549627189848894234378864307424395391702567042168894307049493290523503128040923085068299644202030961138441229238432356012393339171428565584504011553373700214497594281837300226011309548655093594317148791070422846261379291841688716430431624482310414941534098101080384998732241587262276652197970120713432794964770911461258511543456849216153561854711458823380369852175189715366421651964764322579873031533642651689462390599270580660901104560563415387272976812295124708508338306615051328135405701502517782980309843696001191631015296001238296030556432928058197313388317107568447802649267645079340863376135965426088038438001020199066000657622652590214717021618402236281680414525467693796903218492931924113543848236403806596519558836949248809128769370799956216298597229599877944394044165218959737007487413657406024741667200370304927927644976236069367327236385541472963737809662683345275964724602880504553274367591957963153436558307063108099744522724231863256741009090542801475043428906904433643982777357289760070426976642766618929548664762052289854421061615729658313531971629040720562633089697785472323189023877282622705317620765783523163611513981994107913007055041988002441412223062231583761753079941805507971371337001061783922601969854135940120805819255181000625712072103108101000371982291265649648937778182068250863094088985444823615522134321261313849733529370638914072566620759990337905745316676927457418791777235421258312715479764448241759034726674332575078324109211638389732772756147566760412907007304616340435754642670108492805394294560153424926414147600251234302886692868469056681632708095865425654011403835058187574426149303389087169463404579424174069398350134779822147677537942884706116068580211063811972217651026759929131848096312321935544691992990121804590034345033514285283894528006641500237049481954118683758787974780429236899987181871573405259084189938263512112309254858874768389455479723274292642911967446237642216689457153386638432558900507771560652874652596853000024060759874057845382733668570412711860974432645103197710942117178513582457849269254631278841141809757207390180043488435115921308684564594676204924140491300090890054787628879785976428490192738022081795661645421425960357733483102906735456525847283029181041601051859165419852758864661869149687055295362663334845956333381413709675042157900770425967357436894693268406774744694670575655427945898047878757847910920114171378078881390299187918217245066035285874743115368306347950671105714445354500106831402825030408925521441471637621875060693434449204298319236023210218795894420356508928130470209239547423170628916679197978664396443591355488732979086147069166835650664799196779240450642519478078765584329336009766613068125444687071362946104123271513685690904907480961648705477781105532800496405329288164438395447135484423674807171444686655131594782389173512275799622739941227128583233150556216209683480449268044210567009001102089787030494363652312870510245587563516448732250892038308412846734615262527676953762530489791383533778605405460642307084860231330292748603437397858068849743692670782340443061550908388134345850243517968650549011923566179923385265108052236339833044074728834683013595691836838429449149618375578695901420026147142931267912857806307469535189827910729441405773413729749278848946291880481736099729421607387008759161921581573793955561406169598948911101018481427173034244057511543618076916776352123903709488493666025060242978841375402468592526966055016921554691755118120140560887874715098354530775395444186631012812329258407650261151890193002420160824704575063955608231261632452404554607578107763918384818947642613432672363268076181097711751281241942509181441258996318263221720880571751420471713028663925843132103215777345801056088228374207385620835893735721043475756990445193440963040153420678486931631715238428818046711700500682890067734050361345335510903897061406838609063716616222033757942393372174570459348560591156625715491145574819399239527931209300549426903173436295594396592879953870596085457399955953753541638762792071490468704854973358589717518515525085833097263109615210794607020490985123449434537783508513082554159856127947347998174880552922502715190606959628993494399739111487667917733050738205973348671223471054314145284144597201052910644983248130918418250327241408241416740778911392234670568831486308373936143843706673739381023399554281069390197007626859872229252050543889751132167407010313014215405383520156459302531035615550468902665809724397425867775139412496858709203799642012959535109469213620547587575301437843272841071108105493772753574146162548804540549076714923092035673292162925381611037685121891292829986112379785463067695512147074031075144183156998922871254293085901595568946142167872625928361495765040167622165611591880559975383585486983263567659439997158515129596778296061577135781442791330887814363290967781518008026502612171108380240455095829849917193441705254739958481646635713028444025291938696525893445721480929407247335166224015077132968560429250063391614715688615700211331337741261112383137519720725042253909522792114993941999798752067150105183265723050397947729205321604769658702805291241317596388921122641012988240853114688621920004960867402088730507348404842186275395325226109941053675057542927940548367420925078609002288032746305382341232395365583310379657999318819123032972522147251233752945493224065801135531336052127472727895753901605817571677524155287819428107633403103914259011825360770843032712067749104245878157950440624022162156932126569042045106375525935046417996518616928627957019065191565563525075288390161918733891263424924133622694240773583149586166197116189683473168161798018334825086456341742332542471387670667891291589947805306067668098867219973102030878418468061059698464731277909799570903524956848323937769622684985368736981040367866362417753321906435772281085454071355099246734046849929125354646060892726604173463717488003623982569223377979144130552459570395009808868766162363692037237706952695810608307067772015838255391780567556281771450461055756723938004567963337324021730480066388288947627368157967201007504305029571497530623690482397301617517299073529125242282612924634539718911553426094349709722670573271091500595457923092009422459357987016680473006417696119852194892299315928351300934202144438919547108226750826070504776564596190858104744108220463614066994771136866299500192662509117931855372702092482854183535130586668592918977964946844578899141068137358503228222782348948282593660169472552503253134685008193901144285938485652147683659776894615554488146599485193766079824047364585045899764575189131224474368939077398768529012097268921433134821701281944005393546051607627658570262320027235553404508308722875895018705670744873264586059601892563623311373006282926610808292705485495006091584882529486511489086611676866682526924676594512736032153036702076732015004487380605073566045112751536248087536007411270090099733859151476218915876834523304120828490340669706181327938148783546750096280901002398027902243170819492783181177764283852070797447643790534642284117559480833869831283314146994611941762474054093904574123556220472640478034076106461982114956604745037928196600372108211418115801762909406219804073166018966736137971849439477303157950786434803175610570257120983816735115230733065106801852211984756099807791754238834061437021856821029689340568517836036298427343574347895286832584071351247915365037614464242887957632110826551036674592312356896806255117394313746282550262364057316136363755503684510994575470699508778810003348119746906121638553866386997238960157063471488379495370195399657277749174627900280716598962226421790914508364821396555548322924694811846497096058617183394293642844069345013123403774748357651433769494424638346609553149024040563423809815135218708423072144270132409696781536493774320368309863538184495913634496834463596061218330185105014515292773574270171335307806589911004356357850320548265342997567867260956927522232687165784280556806529527880549175679624174335140140607313619573653615068262397911175159975717579503437798411418147577923153650308408518306548706737101069219560948496884076617382709266795770507400224343676587971223374194546247175419509858522359272631935168474960893838570247973331070117619593699478710415129077032047927580889829575086666481457761977108942630351380549790435283135170686808550629544835445860872317863433201716016976106926022382488209137151645063038438054206883120459205389312863724708041019780822699274420008074627834548767816314244049264351217973371008195076214964310712511191742589025350383985627265141094830099776599946032944200728646837347434151816966505182695939906922098485847007332767753444420804247148254468021542848891102667951834765116196139916143307448706837536178509102289295768465602751826866508038565923170730712123686688442121360338040829285478984563653277662057297248435285065291458329830596626697861089280379561969510970832525939904858583293048782679879869590286196398298542682812158889970545869419557668793553316864345657601343501911900299610324294673519465919363878938701802596200973549822333995649295375957004167112310126355153213146847026510967919664733011488022796851868761441491108414173017173199520148054002144268735540662320962444266041669946189676095150762763143907161404917757755922584508899834416752563055138937070547230663962306634664363333076472297867240683512150069679527083052029980303758161673969366520954988692484213433170558102821229727202619667231360535937057683945261461269650436187070490724130756794921069720682396729791955451697947210266422226183139543050756668911418091796212183352923292856174666674455879959651612900763140949460957510133747965508837581879752269830220541275345407278511329943599864444462634431862232406223373469673682579460548377784120370549609133249458082409503795167686448041223118365583543282595839168561214938763536021543535596374300891814852286533849464380076508329813623288892080814560192640220309778647664630110763332276245827275217508769681360836304355001343862229038717010424250703582627939614979142674931766403436841206431995185568907701796653769142629750038137706889020730916829622398073504854909768162624937915868716596278626065391673310681060442877973243741311296807172041051409692491365126127379235749284298772343968471064084435943717248545640232056566409092176709386460419725853106691502697558268608365969591184880608033208690547481317629945979340085562105747795960013236578581640881699146858613837953239704833558301394797281615693940403212754514960389440640599492641621223288509371437446817709428538117335324687017963517412095631996998166007171290414550202306870148496007867535055646272871096850555372676591007364841075088598459402453378727376933292654178827503863075962292842256146365419022842531649275405263294063313201938735295148407148495217458956738584592874340209448513890795177397997948720538154518292540872115548159474428247322694637124032549684789784726754311425067268469508231595077121150040804246961156187053318413562553652469386769662814131913909476404866578708259405266332199513500737030476708953656099909925808064966363998912261038153126392433511515837527713794233061130791495367762470970539735964617188946882668926999562658499891148186133870951112369808316041522741816819836367408269515395792973391165739957140462245471422645081233787227315792981506752055404293126074988861120549939135711164360443199461638219584560346179639009060013979977366215346731975215549156798390675480291106073735716172347007230534610278772668494559088528600039786140573183630848745081351007790042681907349843682229615895745329253458876703177630274329888341524306469161266786837375084745707836569473414514310642121409958146535934226985694211931423952742921310256067783246731000241184737698804020467471502108887605316940090293792280336744462156107564413789387128437501329511568891595092136125095527195101921720647361262362934578154804241159884148702941573956170423274539658490501541884523729198915876272138991068996905955949150545844816450808286196279132976139564997252568779870868693840545202969672690635792982721099970376820507936857323740950350470503993412788258245856614023206633735967689927664976625655854364693504379569383067465598749381039443950759780496982586662681394010613044639746237314654672847840718240985117826470827592539999716167920155656793251884867910472566421143973898038490574719158932512408634143984631280484251790170335972181085249928248730908456923601472350590327919737090604823084433601041406751039387238230192695324923296682995895096599729836011630500393379054194738842425969476340727092080964355178138002663810949616586111209340177697872957806138575477839179303570916154048542143341116121340846448458686324930644919131404511718864392174028954074665569986962459610234985615262369977151685950693467507419779590364151899500852109901916730965617204608053602121799084642689513843461490992022185926492955223070985673993202110274437114433354814324413776087421080630634093037790536251570965388695673817216171329498451628263156291543905833874085861925739074522830570802645843266496355987257592688215794485602804313634034685711428921544306772800731065183462777559517022027967093058347938143775090604793205839274622923621875202277722396705295305211379159880570074662637824467105617365559767293186444823857449714184516368720666931184372555406661919599862380481231860708818248458785130117995388707041283370927599669189331028753950467154775328325132874543894027646504782956047656081046491610570277676928177388958331773270838040383692600421416210724353948844092158906970857784118449918193120672636880734305098762189547390132493891299283515113621714191891804859958518751573941951951858905394850451737710993955190850636216075431305399342274202509712522373418308126203548192510465646230437596459391650783497867245091947957156415507028550255959974162186472525607257150771048844507676972591037433416362216425512264302318908835791080224440408439514530621557305949669015366815971869937702558105880519961565012420367744349226240028326215416445021565516594701727530351993002675125223011935786042233772037527575567134091347836020199177708227895532657689066066885155388834028373452582308157391769498419351287207441820350381023556875683622828134800924649350956536152233862857735361179971698428923894236032531295594806024461048777884319041252137832274562852035302430071738413520043472395906556687629461251608447989182403229787570267003397288757658092288821021619965117463319913840313432100599818005217186809708479989877650013844376612290687268514066406891113630351384362478257785955165760479404177830124629448801602382175961053944134936926478985175388614059962160641789160190728545704853636977606330778836596805051280247162415898922182250703381588142482919623766002191226965501138544935231987327803070082875795764227692718039130790633715769607624200442784778806693325830788814371445438047172266858425864054880912328333691962898061419025756208020179574950449589948323536902004870584825350368488957732090759346787155972765146852779383332282099870071456094668473615555963228419798216163317432072972176261842911222547296107570199056989283151544111460626034519116550404743879789302154295768447209755304913433801695419434349656518192745486662121623368783300105899547588047129818708138625809920772399356483293309940449928466337599419146265662481167639576323114632673722245743256783775000358781517819777074213140931357145107946614856394278283465218396460700244420024897570292098514642746169364525862770747044701746323471776977297167657641480847404351084386747291048918245117928998676714785147815905083738172760398599041689031775344613467859086826000424798121205889933000873422643928651491389244451374594993801431160810480170837928147854506855503471432030767166466765951171845261277295124922571509762883759504640681573572064153028419467000345785762987038780872892519341353658429140330580692275201196167303135609094942376467806122867447786216668526121763212737299510606210958775899142787295091924127785193680040895215509620026618037001116521808018472147290828490998036596836335754655942210478972000280591623900871410795734455546832941580565548945140826195592020528162346994274842845051668204800544350948327249064671796618588843362416454475004975635625220882045117784040301949082998525394597573480872910464309535631278357072464218905886985893166717915431789347804304960204046609343683755130138592731728394955627962134445652244847425546861536556295496256044501451927695043333436759903168207427037757255697187749985996371755382579455709083808444595227920845008971952918906632180869305976130833729556035474820288198385108150483556868891851180289071263798405300686145347839781912017976650296722499023656443733394186558691350496260665748325550814943255349908412595824378325411378929073247229003812621049074765568857044467247147898848744311351527829216563465037481721178167992056787260360323819941800576347006140247905870250532215854803243650826812615945881468348127742034719397624982801768157971887400632744827235963462923371270259960736699005829109696806366809583371799662489277657169147534288253213715893669462541806370344804108505633979714866264322838501438482918465721844605956619248101830537077343237529405921685249947212083735302931295540965344916127073269518749221042585810684392633465909561218154766433194736769972801981972752872220233436830112957470721296091888031434455473033258773421398948604263353808739531076434439466938117951447753052412707403476981709363496535460627067018642125080699238062504842922158115655928979479107596434187479230114394420545877591125683493179136541521782683490634409482284247855601673354444613984918242126557497848839652692255677006212550763897329418076257350077104125137321429670055115186969220185242980216938222288266895584863588892248597372672447805465213255069637363249149031313664610141156802091949190388742258825779676839827483526936076886619525293675860503573884977989794278507538037982088760589645486645722685182283909294530643990486816972430645634934722788434744464634133818496059256436433138464362369739595650013202872775155874497869931416618199189638133189565691912564581001623531788171528897092442976489516718534017986684882960362031400590461361443728376187904801091484127101527150988049012339781188629868052621368280314350337771487213764799199827990211779446162949633396369307099082597923058589829286591568945180997091866353957119175088096210534582376232648074875340070415209348966852883878310646822930913378759761108494691800952572612499802052625000143160956034212612475646582771084538861618103628857106885324939430468376370957092390511232097339028136384354632063262732369106477596992956060995153987839581987347999180546343284124908907313731240962445890758941379318433841516971263546209040794971283579809015743893095288629131747894387465481705841600236994687519158391876239947228283653751653373657094972846329860870466456079162593249892547217673279904971635631785045520404647888690697520069219057744646298026881377281574519717049893889067901415287799975879511987717663399496943682686818482525441280582007186173040202879588833763913999741179535896183691011426050918090866421206910253931006606069738857067899154604730282365881736849375119303204159196156931995214698827375487243550343352606659250208613088779813427576213285874884779284625864127532616528516029056095173115257149398062463851534471745413272666703414113126886831279599791728558863092451094096700037674861426949028427446092746380776242834900870120266058113182660674088951524231420895800716979212717876228428342818166787483181898626828553379606383649083611846538454850114646409245293396745296333448255668931720075724927103540424601835852592824039254366753407190901729598666426256164828428309195249917222937335659135898462637893641173139085160450346203620652874282699181427240856757176117719838743741531045813243693615538625564997496393809511007003471314676139279556371619050893126229891146022368639117751605787312817916291937115439511826072013341145471090960986188110904166537596376012393223683033269612963123998970952671009225962785713554695601564631422703021671327567029429181791088274750263738062442331624852239260370249562076527414897397992584716667535763872308684741618161175182645165628287275736285580595585356771198897532470883255949903054798134689972833541163242060510594422229201579613285996780255332674985711854195716947745288442453896738894567105478040381181756567347912213182236066116183237624998484636122361552879803354140780398730335823919767352721174004309867278645267173764668836291536865610154246028991280603669045922921074770919086610577910362431123669091450135962761350876423493535380016932407712607541391499588283784212873918290463522836136890411770337198980646651071678888512511717848521813187143936359854592477365880759472507000933353754380049624185718347335272031952987030313717354897074660003275149817119903463413737392366361830833672551512539593781055932119135948065128498458526125643009630222915956380501812452864881683424910757808119503131181772162214310771925445043403098066316326520078006533806647705698295342101242608042552332624410729881103114643611865412874945392082168050651142841261592512535867378620808939925876499939495507135238174831978651356775401967902744364847051369723609588733354090583909293168046601142925400049657571468473229927797566135591136867482408756271691134864894764230396533841844394028140757088664510685475288996708952434917413079012120932726161880988793056448358811143454932083760626493450316643200344755982020557629134013218784033932454024472505520300520202152674032920468893661412681148736330023243448272003008378458196025706231322679728691996647645669809779804969786483036864741681660209106190631227370212021088678788302915670889668804725154088599882746698371490949768878630521911923433778442618709787449856057617100485762828968109437054799638034627426977718892956062668452219698179395246560825585147032246919175713392989224770815565055631920702484418150094729711678538772353560146125725568374952553859148777710435033035774958760266466362811521462423002387499371568801450636577403601469900474182993945448539643841445891812382359904266853248323465582921551825068023884144491255244533669790756394870371920423269620557770061548996079739699395545662038762784840080670585805634153598294262164180813730384675797517585556577298191709001370272949659004434049763995480481828409220564773791399292062218013924802407350169720388420071774014477174633003825060800942262760622861028395355635340255802877128820077151724258369625329119379089413000164679440062974632583803989291374024149283176360543810415349966168474007145031238442908191002702946132045130124594710057798861617913159954758619811508597531277292164010051250583757914995551829483268099729048973934550414155270424725036108817503552369899553311036719670287377073567921545845841628131733120057564752983638008440473884047412788234511426588249332867392041966331701790010025214208112557121524263981662056534199054313948526068789189247431558330468692330069353976903447344145921664024394097685970413561307032692860166939337983477675219720544831869960710801362282683576343520854542392175835673127188741330323944417965577339728071643624374469287869934454892896001068363191600073751966140282346975920953061236486369659873445339499915988972532655615555293586323702082063928640094577320753295413090008444631661199950705649851429690713486184174088873524213250358311225701298211818844646248074592331028689751504070356444749709066235209047876198778013556589448963806625756607970431319609271617319311419659758119932842725797867246174796285832137795582809791205765456842874894801638623176074220186607172081226529282286206529273115598872189340933173152810625650557309633336355991155651072315558331501141212460571614037201144670593333871140043879030039272587794016106815418561077649367647765111500539959050462943550947999381552685198951854465487718370455005379072855230280587632128541092121534902618293232912875214413915218652324885191208342719815324732250919170636892226979794679584576510632828758928262689795288400725749349694740811066629238818414573301313742933156889355240422802868187590825756587660356951848055409914132048871543911842422273233129360557727922462021465314362444755564563690473072112384196971320814567681785360605008503174363450071192381588606978919927796463232447923272736128878674228062615114441575670050574287325204842322752476436499953077840572904924452695908429014454937524266797833998281346547401326015249293954069573032706725702867766812965117780562738703501405196301997034392896350782616318388235989189255848774038989278205180945960348656548992398702421528372732228910716033586531856355198393899756724339336410035809445086357120271430045643641826426396263488325166994793573549680079655617458962150881079165213112778549151211955616842945382125877325197098437903629673951132263268057379204943701616569440129110116259802443430836041498023744762615513847763362439897586294593813224970863281010294833419690396395487946689177458654441078029923343889489020590297108461419811644476128120164844814778620395057512828127648846183410588524650860243082161527360951411074919878215996187502300575878903889254223029462106510952642479947832621359406746290886707794798912997217780288501300876059282252830348557794017545486108643797490242013222785223429879882268772085960205182917259768415594965436816211665670074654166323549305275806274985578711977105518639374528552027081017941826660981118052348696623552898069275977301746725727835334840442236259899438975906437312514576500275797998009188399956132052425112632867486999892035191162182703730556583156281687111738156848425835398136384321768724202232259978393890865074475100747718168113422454900014913934153042621369940785006288405015448114032976747449728614189743856286295519148423391090903576610284219099999108099287074809501036158775208553572149994756096614190640665805934148247936057126822112002263804179932117952989760073963358700339202493210304927010730582706836085222255907206398879524845112102172577610996244229143914036047061144393116036015536885358200381341609726909681884701215463533016594794170028950809889976821088514447540283556327297590472918725699835791480836285488253173024906405779762433395285402768718812455280834126682410997290155937609898189692355195625099864248186090185706163526112879066796008115021167637608019045716355711242554960304753912792821350978928780275717649073278145269016151245675634929448070888239818369588607833042734429675989326738849679773212113053759477767599725753174951660584018093659346271696632642264254205465224005364161156623198896265371744907786836021037829829403976071970583217421929619794263934643908088406782360812573486128456816329447240619247257598810871279643307640716934718506870565288981149381468106806767094812281206108383273579188619129167948645648573574790350066212970405157549753827869753165431546502670465885921826265726461100528529940665293495579969051832821488321731526082300091681008846838588131955202686789593810578535540134565898599922934966637349762638900313777056617078265629485052699350021073147486666173156265480520189700407813585228023908867402347543854973407174115644012845635379472829306862491843846881028840936213999465542068889866197522951288972202285669207726536778820153304989242628414389651932068343642489972956013723353998145290931422634164648625498819591572917351562655468651199162788831167876138434304726954134646662792264828640746052387238799207606190298378339162066091117013637749811942216671890610105514518792298491557406187386057635501343987024679031106219978420215660492136981942423499681339877512970787374144190874629782200064104158493462894215916207947880376389231235276299729125251806276362876339094416799460239331137322428475349131486547188665050944318831277128991903828452475224670114140880469364778799850242208226448945198038710053313202528148835198833668312956990790018205247544902763136384738497057988748019781506388800815046534145112083447150816213633908009174178237851812307510489292960926931632877892037728142643288000451863820317090603784738022829208892569544837096537247054401191430266643875683497991616718754490727354133303171450391179491784460087965643325208546781670569349727056364284328589500533416216821860052728630749407833286913315818004948830982015666056874705333536050682771310236249045140835240297804168340946659675684586019448156158151660787628967636320903458632989049627146083379300491521873273304827002455741582083071658720843344921487745553071542986603589764062270258776985996736419763929421333583623629130948779943293190571080745327118558372625540344480671860155088502044327367939566878989291080133065250367316068833619234781330568737532433097217550856349476702141196928064484061915256795517896365360975913016196060531442145976609027366790107053104426684020994197907944181911940166374207496129037654705727740526910495115675149886995511937785395808860846776033039517721629048794895997698002778820228072574384952923324868819052291009259214301547516402199795864788691550485794533460096406091372540013413720488763208068497492219512077804877235295962343413499844810580521423322511792684964477738900884686625965177547960797489857125748442691679429300794490366630353141976406519520336536682087642764190645721022914691990506226063323478793286926184823825688596333019831405990545110799505577149870783671491773423117531455563458505430478744823589288440280436551477932290745486332141881166798780389750961884263301506367213481531339376099724134843494893087443862406760636971478742444130787133869611051304510398661724430744980384921397453558415954007604358963252837008385785404185878966661443426207704207584305243623234680966083358766644235204257178181519070517780805972653520194559401788091162377544252528954939697390046712661454692295235030405165389039404286568593424176623509166955571971423023887985903166234842531180446501580525610559533024577693245450518622366397170547881860308754282378701713994932561879458606649149605151331130957703962594244236957711578996198022088435446966563606497975062745272111608411725225408917156124040635586956527247171762229907145207982026617127589099990943361023279138789066008032497166924786039385281372552317194599173836598238257193077294399404862749444868837221700512425063423327185088768156829328349664474482348701809187041179514381391783768763871610936899159021763113971280779909701951710150406598983564667875510237209592382548200356007083058361224385229527618273862255655311226591119415312469525106880041467460870238164576273662591396681269996693515187144856852876156747064124365175656008387775805904400671510234419293039366107446536791297503863546055510978111663940581857624110239671646054339475415234181701118767147528438361437449829496384254973786290364220304571357558287129373480000198635197626206510268983054092872389735934985945045029292687746603409015697308188656509421376176056438443138916727600728578697141895291461379497720288414829573435898672281418805046354846946347351203140557367335791108013215060797660424151053711206278259805879908709753418966447761663267550065946830259078904250115052449187447199576317092322901555001842433266546368537625626521368024546910789643801487625250330622690264394429263616157568787429567781833845474000109305027101100610754442141592915695486020314515975796677728659276238316817104467611699068437683569258879708369914811604553577047000966771577600072346622059125954652419202706527404253616310919708834305484256675060669427072430362554710821565308351300664231651351225829316827572269833059859649804619410162750101977714032834095496856377441672071196411183933073709143355469060822542854270811943601034607142786765667273723951027250290301414861659310293344434154328337877971286169988418607119688802087682424624040217776765312614039207504177698937172447656423087600797692469017854921275650208695103828319516990486388492122053453858011076452842648447038298249554122041999254283966782568375593276439212403937959245300955117700609104507798847250733136262934247969939993518292744248644999294579260159258329475897741512720928245254296605331503849529464984671633873532268299643667694976869056635546572764128281229206454698726630053257472953138971335141021854085152443649441874929599763281543119366288814620844641253078174690463454109744307999148455240661461484193135016926004647360432321211867815562376982246645917711347706769041593972499554143258686574566454294939442139293350129125981890554784600730765488970424071300609968101788996742023940531921893331826098482887379161155048724205531617240192935605754370301695419974685787900358347538729435523969310309834505882522183388459496006425471909581491539087543242349580076074171002571158229602141637528684670705173237052816554701809132122339272120433074357428204615090336264650583541819361188141162354878590251458807163515219963530646483643775185340785012709090308902603424661004228656096758423046208934581678508941090192089193403087128830116722566823681412245895843217871103633549941032035877311687294368720394146398536293086345768909103506753172280539645540246364395775751985233266942209362931399691849876343470474691058463542088091914145037318234903700962434415539039135017590176047022690820333876522616134540755319422472114565559929883534552876073747818372295098114031204468927108411301662241876354337780763591064731774944567843560175188808973748523651224496924174951252487139502347572899213419404761980224923995294051479539709853679998912677594296104527673788067878523190652955869997278314607217129745376463524211809966815857903001730777897325380276640417817995437840405788716743355718263408821732315787043006734642442433322341504862569209391204327778322271824659022910595189451873453889424839434215137592854704417827666483377915726632528330438973892977270768822760582205950934260947545154611636223773420908810820679011919007170893067213481452188838469475170995975867825001421553256731925273935733573179879791624936117585367020648117949159032686080425225410569274918442263157819085508580320129981456425533498523945981229077971531627862843109529060352643390728332673435958802012694670994880381019514036251463744736101678118984157854948800249031859374175047866336712324215054659162059137995500521955234945521107430838396663571139807975684705056889739919006648671164111561066072384623829669516592534056193387709085521391129541364016535941211313477341551908648002477591790492759253850050695478950894449565158002382145951289781789613612845717954921878648989080045891175476220325540209350674967247711907095645962369984689987090033578359309182920128178694451597093905861056220169201316503308654832991541425716260358922662871804459558914924187174462740985999703298651072565134969235580381880725786327302406696764255257828148193565776945901907769146087717586098880883168126348412675786404735369649957097926312385894795761306112334601614969180108070070416143906025814818273667733080752431538546376049477732508505040974534352020711963252488581222577697486063381214475533903560839455295349810508725946232717707164281180048753985223048606859949206722521163173389403953045031323430473665046263977452209874648008476831653510461728183612574588419385978466806520982537444954064184995888211762719523373650252149615084289712566976931894080965351338779893616205509504006213731514771996660745765680859426393717016641265509203936292239817030144225679194904953238502023972897204087149972123694226514880343065254856636349901246551476220314568393602131245196761791052396356812894225193839371590676316195634766446342884280734619947344371993098591015830113787354965159004372472620586843546905921400246908949604587954532713470107591198570797270294603256215467655042538523770763947203680745522129829466271679748351214550404552809109450928042438669076315544255233729042823223574071708016163895317685869812286670827071013454075463665252666400648507170660916524142371779006363958689385835768166368989928021312590411655685124965896934102299289698854835429464265184355309646688074842870766897516000787176010658082621709364034991525382636918847402661800719097335363444449754057297599700386445999387525463652048429386951496719167718650604502647320135813867982353945094306587588261524741224914121948707641096304234332854535706167063907074054806520340546843937706514717968919568144351515604683261271642178539506246465515317974633035726994073243103054420204855858320213800121133056626904752993170159155699879315987592732782406406799876788612123288094925263049479658525570935021725281276755391137254684774069575526886980973459802501060892168144730334313153641264048575683917036403969177888581683493649647730499791084837518237772620442624331718072680808911602955096494784752871551513894419793390575462608607554409510313447601678760982141208797132020520301637231617458077465420410001395346761923374814056552746427362440844502722065616009029091172002732781329653914997526310549952303298727383332563942557334428912245775760782388494875497375191001582555510136128593614738419301521469381601874135579808889773103785739156588866519925265119784404195576339376230435028708688601088743623629032351671092085663215989913054317058809188378438749604668738381657421715617903864607550799510119531947713997213710397387264003150626793900828914377772213970145254205260294115614855363527703791307876683816521633191216220125014455425987523373977949967976297493513341347565036648938023447955339722851208514612089174549323442447954476957687990009240806101743286152909788488280174809416930994728751249020646067355382905729395638331031672852667604698297905416189193351586521496558396289589951192332118030554918306813012719047529879103874239635697993765259137643166809195269966501791948351815677737814987056344940930315399208335102948562207357393548520025962198666030855575146564413474341936198585967485239224081753798447938923444121541528091494451548511927438290960884938957337855858818372762617381403862360681172243998042661898703099232910318853011434955878936534437309072235331881506493814039274002153407282627376130988487286116013669500821767964938968094030952926739242846521738581386900378789214589678828397832625723613504465707939888506691471094025927309655979776777396018357251709674994964633411722449658416556028946782522049341753752387099596550739516205044288070469406733318266183644550124871198160326081912830315555776947671839065665305322858482789890262152155854293158028913610755130526706020320509637141002732258343631804174545146678906334353447165609182705742339161630723055547778758166390440022239070845722173849653203088379046714075881116695376684244012544551128193045822114203390170276744082815167178919826820102500312197327720715142536427010925403575070651938030756156412673660174945768460472789274962257593489763827364337086015686917573970555213838039106093457520888747048607480318159551970771632029071424222877274954531731689766311773329639579740550006482574673610051867453019613864037832590355943222975681344132670641982161145069620107385665952709913512202705506445272131585065397970001442304318795837773274828396153095127706543785402642330651886226719122851196109109740950215370763619009153669752634819727978952653207542645517005829533976937088476876138274218877542779076140295306523963928275055332989479822859387486947905262047975537921174056520751207378856847600387145297887762739475450988380905536226958479237054688678324246145189043430978650966425844335908984994760558761438899402349376723139000015400257197554797034438041745675849786038134755120774958948087924046576377212778469384586818406675079800459741726705467028803110239627856324721521007843801527923392855308612601711818708830019320545069462267185893428664103058816496335805490469004450086451596991722366868530428776596896588654544065759595052227390011485385616175341316981181526868456213359729524346066280102300100688895919337419943425765292763328774949236433292531434653538033556433683103597390658894155970649146760879899720534328392058063518280595862663260747292762288713080345516567199547430810497558630055889985648321146556884468180751357515404538821816507872626247147432742699244885048362135485087174570972400355970294167157480133787400544579546425462227996064247389806421019517645345712773999744300226755693815845815061855714599580952748678393598722820872789539873360827087589315128767403837223219314547793395352596000877693557013135883879316839321155859402810560056286959944931366848004264079090649406537183736386785729783046838617470964177941025433999910002623559994568785293310773007082842708975576387616867197241187595339829909205871829476423172131860661227830103878979124758904391913039701762767650808001375456470963709971591979231441261144755783697821581424041637963789479024835495021328363624812180143459999771350620673704826826007867293670392372047270313285460477522326721178681711227865661822732971121370319280160510771626501722933014853595501747049865432712901895169921667983408626005410212718624617208754011474945274828371954762662391571995222064250759456042558784873772095060551398016250358997799621757873264218960292807893420619038543571018313530824015081888440406882720675653509270737762488685218932199664609313610526293611681701967527637207265670005218430386807202711503805843286469068635148475087917152499494708511117235553694030156272476302532007579396307691407276877254135458283734753846896969510484076971338431679367706063574800929196245116575792379261956271155081032265540435211233192967304812098226212699136453304044228276396510397768511463950556161491923851885953539011959417831361473908054099193260551023177684142431354390481307722083920104164350608084005209401662099908641485354432879758058569679429055762616685385047337408720137877437257611473080058612046733186686184602866466621295538692239462706171193338284656468703914970489519747846886896400846416040078848457942145645797800470477279366895239987984809771818245858444066168656727244850780795727093479501186907315628060853048947107917542150938526142174419236255687528976822262004973977616170574447486788666610130051505420072906069055208603203387441838137394424476357011206041783902321838621551211801334960829096713072121339601932251837737888825196399501727574511231160334693894721402017248039275986023316836983905460978765172245901625807544676941198980530528909550569033033128645675576108090743200569675644384289327243356216887290740003223813333071584533083707948317528924882710526415463454182930174853629556435532271178597379057154992663437253366634514035527253190778184637807759994661393525475474653758574871679355024368447132449393589392888344631109837633918469556253016440857205774664324455756939901428222310805315061398062269087128451894706335892596967091765775352746284903013716201100108141960447707548504747297077619334464310837298370329848138262873390354575876642742597118479616192516566961649177793978780044615129172930917267787593930055630710585827109330198240604155170980403806813958181686328445546654772872744177627801476374328406381214313784958184486514748391511650310126109283812908296721944869567052710774827012230657632406149884991730223209352138306631872830881704514459850209955114589389677554201205549576155360087575753763197915853172168327165234773968271997643698001042379128671690869589625381251585601166893826390781412436439727316949962589535168538818459836503653230849512498623912339447674378422680150043089313994293354125440774605662656281099780128325776985734792258334854378124456358346744872177819459671719835935620377977164731762988708163383879956293638537130339445962175439543865534570563135935789955949870345288142734270720810390420297773150765346706297554582546508344814142953991072782390946517140484336364545728506944679017380113496716983253264204741398187789109061007264294382359704857636636369861300556182265911808050999522018260543281597973118960347187706378372300154212263355721742778835759117798290425736791420420248907752015125444265701741785741309926521380758818230861744649718671680353110553649050542173771913577040900991768519720815836030898598129854512790355083765068224045244911494045050746775344774920629193503830099992226080450162322292724070190241337323639961250590681817937356737969026124122963840017021550355007244668463700406784982099582787641345959566219161177244290680940873496147933125238703287401620146949291329409960072644044577733552056552855203968101911205536255898595257903047045677318008626211278175962791937560059123565680518512470080065867602405638876591261160924932236797852921085274341415857658966032646513249934807728267935271048822988767877585982873722331768535786476528046706066196951006029637666156395195672958170298754807435292709115327628811585495960170084566517856157420003892904056090774720092874639842435490755000228140404095970563193355408129677562190900951209556747217766301432126068443577679794951319228877717635918432058209148551299362945856672716976718507039125677501110649072022688678839371125713921451494077132018551542462678313714472736824813101007041591208779740303346864761751722474741977899103645085363994591321823603059708710351792676665236583132534649019416894710404477091806617096676239395524480508377383683388613368070639834511022270878654011753691628219019639999212668809587972563576960608039201612544279706847536639580434390507583696089609965747464443409916638365519520775241364700037847613129045062950435216655159421683825882642962868642441812773355682318054501833320308184627796237948608046735041523935022577961232058646452319290551294705899992023783637366099822925410172160785432448625110947579818972742664623755713440033314070818463805510184890412133812427615441055048403440798296579443581046328216852196342488035299647598151734202337212249407424980214604750313976561980023991200505083682661907059073307739095056920950741368005136727445212990662457720623000539787723097493352777756557755171362393325886281504297632890197948659587337180714037520912619741616673967130760938526062477903399488156361457460430895782285114745313220751395015431761595893053439364369284210487997546491597220824202409908033646587594888764380755882983340848795890766379657548641998453225742654500361870102706554593301445179801731578973347803424365660493810645816899380007588486763871770535716478714507389602535066490355663604341540502392834052744261121847615522251556910036382873461296802181313640298479422708498996758293492144000631292790722693312913796370226442598069518454014465605277450229322518400619681416624801245083650224700841515960266288682527168969177266230706635026422109005415291541860278100923934779736009096588565064958977879985849254548222263773566263865577353599727670992924482706362147538574569843761873350465876055320910143719895186064680595943446685761707621532652978337361156008812670305494913743294020825375914114805141168598101276624140475975457989739455710964301929316546700792172125057452573034541286917348060796373905867666939017760929183162551571798504801195923090610594098706903021373595003783635919785022356981456303626699114896556122112114265076698517954961421900052202330464335693050406787559832269557471537408679790139494938894119145506735672062014212800704378681171174102177028535378879834555378620649000471813235178586173965002091969493647689167332790381964798925103230588745911953443502038074009612399643907041703528690215675636024558939300962848258860939383557060651248826407598157626118156216690277182794684888417566604406343299038861052359531603914717723108420402847103811855018984373444589753821190507270653872361754571168215825213012554718770163712818401797934626833828488485057516642795967711531578557237751113523499075050750633601748707598558280547467919670841283014387788186496797044460890748489263420653610750080473424348558126428642780528661238786302305212659403044485510589602959115331134517289672265721166157032753977300845681467129036443324999759623535754813545598185274027311115541594173507159301169889933146003959619964279739470615794563079073894497686849959295294636852816719804501400391345166353712919156135147630015190695644704856219561805655964123961947156928305050021109659827441916130441840413934125198269022919357336384861707376112671317892460684602583666981559979345378989451497214674443325229143510467846099013100263560515259184924236372083296290257086605781944385164861782856924563706621244884380305450751529154717713767522199991147510569349241785522948231843318017288396749336279561446053987588803100880694207594656041910162914049006161482371657061103659510937910394619488749776315801543338898603784841042132788099530119241107706431510492377219062142285545934801317749032537448362969742331558702614976515970321362726446080846810125562107557203721542034710606658221214533814439017751236183330811340024129076928939648209959711964660974629493696211336739455284225936895943333786365024404165163500574984206908393091362681560199891787876623737134365228738463625704482941460146046533367440303855622257405809696395299513742095312428988899173213423529000208559797662689950765834187544919014792761958333629211935783499559569363927947518923589406673123324960820500993893715712452256057494276745174990495761087385016113688759859483009058788497892155653951382968801919184497724106849827340371510058768099372900824895898119905696286122589036944925884578499045209066655264020631098158900026473037874329192507150670920172592244795350627902639622980279566922027882305291117529518988455642696156690894092672522118214814538987855035465864338310214783841578286695592827364797064458662818681048598391360364390400447585910665340761765902608228168202826547870538037926970216930888267959559230712268985576921622300346103265320786571438630783249902218905103288464981860259346335663437849614125847502580664565234226988922247794532917565293031634153605808455399933158775237974792664160842051417848477629713099224105076091180898295191234677694938047683864341158443266167771362175915662702345642508826809377818365794114470606543163358804997861094715242654790146596779493958159077961810939989797300317681732217153424275716532828643681731125705831052189760690859356881868255682076581681714170623496801314768425910215552191157400921174630767965412691205220757001589002187643427789773981666910376676075906144407045052301794504065010956507115812218365379652520402012907952998575580808400541777549855337776950746733581993784670718672714757709264108389962664261570281813947103380738088466338200223662211268113490187302839389062848815705541849587125164166947615422374641940181394911040251224856873860925172242898311524011710276138023590249023110122375493006417267698700207663584701236608976289411644292989283917046460511445383273546280063821247616171855400116331974879905327941804428401093215242557419631051556538454442124828459812319427663955571347449123181944786292543953857795070409366578288759490116181404108370042979562483558586894863783887523393862080831415125224082315611414772996485029837637758259696924278285031739902230215194275955078684865720066375432607021958959348894315511628252572877549119438781510105978013188440243247556674577056489346746800270864822276201659521941013502156919014721021633616612008491567062240124412551553917405954375338692384734729568803816755662134348492466707736397364890672543978538412360005006440011918733942384836637994724240013279629106076004560528723235236455823336669731480069084603711764787351727020721827140339486943256699857109022424926219496563114830033896939510098970480382507300807158715557429411346344362649931226331520679292021679997422075148593801048907127728325674543498994736695161837960217048059617111438826634475630009351464993852797460371222171319724155948839250837542885591494839138846312659479599185183999202854401459700780289137014874401686961583286277911413276399592875013572615244068644929215997862206798292637592144749824590275354787806207322855806628807472112249447909620821484563452458264051392018128469504517592409286666516891978382621602284406669258234050285519840646647436497840072550465381763818658577095675584728118190459624256938364238523942597124438249896433497432962041863249004984682017147344057264077424155204115107870365563777458686579331074577409678706705111486151052858790905671524966681765595489603219715394257796766584976661604017092817875754995798776303800578195431404944087844532400540648620885409227176983633301500347757792646008759622646780268764632961746479811583524774447877012269516308303034071649905679947248275333888940890632848542575713879300547697936030876555489521141541366288216065764857380478460325751267247586261336518883512201587592988442230385900791420442816985803447333705256868058519292208088319505751755297001769404541981084209057806932934718632066456607476925585873723737961814180271115998058679921497418556566413960952274372807113090763513255069931474851550632337667951622504695335013859928616602537326412924255335443141343791385136199083225027836099107543997115313676870533200831937842815921760879758381619820362547597427209230728661475228977317681040338669218595501693908915319144911863449416399235198122414512329614294251653684043572089089657568474263489223019426289518576318734141582329607843069617952446606173304229409154571653338865927168874271455887237489527150482746964316706482367175232573495938009685664960209099450718740786729243884033611815596063473928679828245089301869987239162880162579783347784032586262733614743685315476136790532246855933740121338786815223140159877656914176333324718166364023631540082770832059618288494835375352515494291459312247736857940775575925051880893904880674614297731916496187708993707315761294209606389742084952604891716745467588646291962892158602059506579875199336977491570422487797821836784210021429860384309114187737188417725612587834911364906853755242662215394943052788781854656626377674927305966068992080440617398107996105162303118109232055957928660947592322557279485108035251832841231122667191766060848431496723343938833535957996157517873474908857581935019282605940958350438288501776761604074435785628308064214358560036880082098818047339954269794741467073374213364617303866342203338607919495326665770684005219141957587175434625385094549288535835839860863750335446057394064049015383099659909533465324143538594911798372226603483351582343612382713891384333831897267101634621915265074857757532624770713026453802529554053991746115380928513290865128543170411986755199557780702242791293545008660875906914409958037820071367655105519929533309267032136895366782570534244777029944448812216050167143236482110721171234639202597317759049037263104608436192699093623485880672764538856517693904301837118307441528167133659957219602778259477647842646456108834673515890842720531873601453143080366907252841354388582817166753718294682556090985739150540787250515081705328246947932289354766230995460655527068457575389436649962066694383086836446933005636858277668693199843788236991535547388964986056323069419289654363350050995987001604765152021546441668912092264051808490499779652517474915720141710498231645380116363697452123728727653465723137773766457189351827830150734405966498129842961860442825693019958521306804249516593451772071540922510070561812537870241046611645020781795021422075236799115927389363239762968763636507203370726794423175353621889669367032603103368658390671191389774172559142753951701054398517613695590522071644167959308285395238485777734438305545752317531849303381509659603950018827243361104666273362692947610833079801895849553963216108646093350159027870109004109635707300715807549426512382734773491704851863821221872485567323839526989160757748481589166586280847946312676379478835049739008747007632309372801143062583661133990959400287953925201865852225638865155932648000756411331759780965479417316746527409995508661592263863768011167920859954524239785923479956447267009606299085084972264089008724116333569779327657083733556597687323164449967681074752635107451935094198982069268801964363723578267886581019161381739660149679207145320967291038543999331147836144705613291894544031897725901989602980459046118072514705245971474034011131497000150657065057205698619328824540412303433192022687595946240347419378414754376634739972647979552395531115030159898801478941807779618189290868400424047452400542084923664875890371140815580511092813262646103456429413281802289048742479431417140293906152736876262271455654979742841612935089027440149246706030863294596551964118201953896164480800394924805788619725526403077840167157744654357757199860197982834868906829796025618279492090210208220234543600124104315946743535717968577492335656540020338965900113923366259602223297395702730930605446100151253183550445521288175411886869638517188517751136507647980996755038360016841789744926723334711163181640519881243285421188576679590184388036745282250020326667777396947346426733617326223236225221846698658175307201282162244577275656224951619134631520160157429026428978665070847320071747775221252606144482963390082073678520060376988068822740309848612236404583413979778679958064875459618434087357034092485961268771160174095810201007686948152799117641896303813411001172275791654178031081879403268567899580294614899299326633376353562933147713953052387238842368047862474261925276001313271828711156254107117197350068881166569723062466315372636560004684411730222590612484025770693945095056687480313117223617036258644533535492835966216879260051755449266585592902767307699213720286072828556349570018637406512387192248156844257094869611158597435513612414418163247632309805182076257003364388360635359691849365935643902568219972634790897952453604591455772396339194342042493843635479880326926400636945494114879701628788641428496295320582770096171474830111348863374986987895406774571137302007548833308957974188445330528143501541927864150153627625020834610234224620563005739697420759638922837362685613199542581851368775868764427740188081517995791720179893087642191377449455969367623436555898477833529571551965106520202605640521608629076699505651232889175577769693983018653087847247170953723493652407044166488264836092739834059779336348313677048190090438428512480348431989388502814516719231663799655020000269874449987394919899079014652014402789186154303169935351347860854986589129430285903893824301329838780285147344560782566542493425749672882244959287818709943390927785909203059128098714244149679697521435748291321402310917227036537011796991447188255389986712805560958171995759254529859412109899874194167236797687460285213433070510060905045941811030809774113447109627185993093451148258766689965226662349454795663575488087066876955015832086425206704751230298355481952661675500133604925078316620257285139519091306118250517121731065577716317884893368456471079663413972011409700525968405533383899285964465104207026738024443307962558853101685787207251873750563609692752450516123465824587974457491599217658072666492723410350513144180598075773269141457627843935381704197454870257158321938641115303508814739047705575263002344019225458323743718542918728859690687137622583924568126592241799517401214286662782584582948513271455196759662052054073445800589131675053927749628413381575272942311809507785541353626112423461005732370826546713937074021649134579827817672755406022200318175516003621008900580084615988565619880948652153197628447255298218567099263342660128270229721675760983348302177001175896640825812091953022873680747677669161873956419503954224180583290265390152528440023529074161641157063523928383967511709505873040723975285943248389095888478303524536525358810308135178476651911425205544783430322231921288481035561809515051682061897588518257882786991944581029323898584701828302981741224895506110659682448980613908500294543117479039571212079520135721998719416935238025320975040335599871701720652153691430653305759253803578685295969729262305427973660430582409970600784703133005604968545249817147327140080644408603361060001736490284719246091538157205791043446795353470522958461904899621852526487701606997107482238517460074121156575817702855249617036815915075890185129234874522267426237819367648839376801907230760250467854370183313752401500509762844182991390238127660285393409990360567661667234419194113246254462602823208387210089741745365170729070580262234755364050126700709239105499178356066713081651339799790850258010737314072222582003778182208750488548321310041585126340808540813174730320165990433076290835682164825124437097437852841467107851265764170582766629491859340732248482140612053861202513369150728193244006410975867293865820029006807953542483667850579373890589875775225335305841253604097389031509673272215882653549406563850214080811364957404895542206902639185947011331372914578560569725701123344869493109302699755323843017466165893349452530995665911616463224960672822379635636465846044138218476018217303386711702831244719774699111018260681749687465472131421640694651497032981998363461018563010420041789855822740182104608353571619850311587108082982715095101623726864399453731265500285035416090456032866576316036270117014535245338345972525775966653453981550903075186239161769579282265672822420543054269404824379151271513294672867448577424514202134479112788280280492831856898738546394631861392225257108230612283671420286408182687037483453323707516022261295320952471067170264669632366155505749406575249054629002192905200296364237833739574704335053718598729723988489111427140957365051440438685188711935958803913467691736591560163929838384783600751192321335589984558711000767845966552286113083671449948652813122835223581127141236277586608222045704910245122458490896497673791309115869556826302548723638727000726980736949233738237682184305245488542661951277346642292808456846569840423145904179017849931108686520254705952804827313606821443674173798133878729592015371754632369747082500007749864262572246257810910192845591680614090897269801770775648423711505454756316569404120995497248559344998277555875247302599201635261319136780107541763897787893345164982951442266135549373140481906607984422665682433227391786868195084389846688890374909099085408588400854006980319574762808930165247080816894769127649779646568720176744168506855262857583588604643171434275397932020165301406798567066864453801787749879073647906840571657469499496252169771856587018282596017695091558114405710110477739272269926795972382637902443562953701007915932076956168794023275079443296773658996626359855729166025968928553570455852321255445503574462521608568897226233510525154535786891417452323906396927760425448848940128937203412240392497527012100876649223724530709414223346662500121766869447648854450378196724479634215528801973868085949118007229237541921790924340615532490608686788218797652814732545904147818269666443345892336042375406066945845916008718600504927343847849540551087865275531965447707978581545039845067902939346081540605167692034095523033990161533189295275986231483079030093195549240396370048814506514590831825877488798550335528088706675247539273403801746671787531515609045806291737883640530129143109036778762734436909214488848533191019451858649887803641661128919562773750045234947283705194094091924675924004081773004015264422322900660717449411142523839411525754988808319985163607093161251522804335442841513919100539511544559922319889450532385694042181541367808428599692605990287713002586674777895955823681826133194978134451580221796690859563364502146771608382637882709275861215671523739511737605574487554833194618560245581758975128201289067710709628407053786528173509771147279978531641090532007569055197675009885758209417200769013374502688683548669886857735652220036352965983389550561752379758151110567526858793570807696802223810058940558269442516316250164101724433482392744574331322204515192097917460331696488307668713457346692638250352561612542802794153738606019246702037810796430119686940266525265672232500972034141398172949570196507733354075832687993242456273264594983578306104447000246024252158320228563118001445591040511782318103067076899391978019384069500692408250684585351336413381657033746258602039066984705920135197604084514597987091969166002271897486007296162563217436545411457801232385092865136957668316812616158972700903491481418954755554280962821921865940334622654181281595335603232289385797051012409795139198517000084508068853605694967757390492312330584045432954625527073938759824503112216010636762569198278457194233039636526710424514465059533875874270599502544157615691784938487034138871979956760184601013922067562792850136535930148465031438072305481791268730641792658179873071584486635687925793732591691218215136375511538880812996276580883245007769324146761590697771092984873456330101798633260009970281741184780585881991104402090272559082904210300125913513192145190183213555766145937460594694817609501541753807841121375458220979551420122068537814497359688508855969335822643314079507497993942777562945755786847443734478265623587381013109437995610847499199724247398919379327093283815379771770113291055387988410328969945440022052677765222620648877273232079394171410033721765399976523037749242472804506985530664463930504407953565291284997777146461396616997902067202479547139133877235603457249911610306094018117415385486788011248407711453286521552427013999691625647726292635384406315895226636894669140458921379636676325327899267807664707960599476360309079492597444376543709936595445288043533813211912810597111562826861261177298709343782591548031963742611774649543417200939339830712858096355349802286025651899045196872532389168578891306435539204264270840333330136814300869648830318803530201752993582151641151774430990352440807742449494219780059656572143346558049768114733150293556680292337022563862885165691245505660740654967115017034211428735171404364289003299648711763894317578478997389725455537776843614169676985195164142471740834966734118985023427199916931357318631899861261652690628652080623273716518629688117217098189192234853598633756764462655002351481896646227590817234501709490889967293224552957201442831242893711976067779213274664898100307562296192347917123712983053553881659755104504018975299172628599498888438789324039687294405106880344037007926025073564797950156834545389789940132951006584065890961986873587484383979540582108910816407872279441336506911122673747223953271036263661563590173941824031036267400944503026868690049873309558931563403150747363128281588637415361141570261152823674853982227200843687416939744002528913897805271224668578922978929927788052883944414670867582320305652405088820399317907809211086842801265751675810396930428606275594557763050738145209817865604828498856208273306503098201869916034118139593467162411608867841721730018826425680273494834968108378572672411143874176530681388268426719381052078607964625032125789146950248868116432572066071571274839984986546344352544224407109904293009213572378003629253115331384783698187992961391125190875822420620351933565071207252379311851410134221795404645165667683269162007231731427387457632173244279508595152970090860921560642121627343004914087838601762498774402333866276659379802594187832873323481318655726908864447955791201804830067750077334463773242211605734248963097076048884288945859673087920146998547181640846849836277920616701356282592485463685706664905750164165138900388297981800107561505979974132929536561788055173495459863863301210978006930825129747793202396701325736169057961706102188327797811773341279022149844263603324011821186229091439883912894015414084629128862103354357434575929887651709775384550109911496699506476521410530426507810893848849088071535500578058669975231315648689376755939242709075897971342990030894212648309787635271998891337073066818850698184935710388759593104569354014942844563092168587551705779640810300159315740335928360112187890372367044253872584170263034456921395375707642284149733759371119307641160995029505199143075095234371992441293962563442264440328023745489100042241090690761300750864405001732823516714846973938438356075519233271120881654328248889272869398233555659890260950507223699964422968516972523860442580579324428547270189255048490907275616388805849859316174287443254739210366900462882320860643820468961942805405066854215726826802459120534632533387242937701731227733177557408995407609740760821783228106428255187251052387811549329864290466132011105182289195648550824996139153156266844367219200423121605139516342781767052812114560377824294802048915652681488770950566510965948312084048481651853058808450080292423887842133387295349276421139322793433558048591282251985264216880497221676179374942082262680921850930563066236521490862632744914921139459676345049895843357115482440712270218363730257710553803633518972916436387734183987185760408258134656702119925278497222271513200172582786122676391706892324352772764409154928075559641387991212905273626312967075841006597673411131095613626419511508872252546760569422493922450960427642375968958020999905521670171896692529187030394641889464607113826167085398955143967926705730595784976126105797993707105377882830499439683987327104835298754016740387153663775519463434132073710352082006060461880588532569279433067013009676755838884787248977507211497722947811543262033579375084224380936693407480293772740671982745954135537546300188859483658652581213169143498412081042686406447354893617543157953871567823029306687996448169499851203232526915125500338208491914378619901814265564592576972429712184586706592928921124951044531529447361504636276531895154902592739788607650477051880160013107888401372598055314195511522798294479198145062855311451694495576598155095637274075456287844664300965099913776775422638011436207985872935191335403259270937752211390635581273666877026477799056932641341743242224701769379813210589566574312933040811512676543348712527749747555726329302832989507534433308835209890659355759246660294486099987530096021809910578891305622462469386572981946861921036835819345849310893527899652984924438921457281385165558363626900743511042590739636512923232984052464653809469714188731931063568863545939584246480397070629921845581052799536216912500619942535407411791052223451596171901130501691999192739521687842482872968540716327776505787942040721588244153283792776846463582606664799131771259087585108890971216810343052379941605703760055347752966528159710535233683288270773081802467243310998771564801796630478009299389164110735646264544927143100434222766105666501129005634980289511794876449282729364287902557630876945389595311999118795903840756947415418909620963239006418690149644715548797076031804780385956673805943329885127176575314375599486072453915681676364213797402505983604654413344891448334996836929725911177676223223167308513441963291867005315093830131856318618106363566547593679360463620454986945039297274309229630590384548301559668984306301543402030450336014907067654449068777823914842643433591241838481117382899956901376084086755523282022914784939550231380663171362973635738832427781093198696196675284520133385321524806763706543227528899547140992742291188960916987150283492200153456471518258628220554580367253725511957970063988843789208258073031008956736152753897596722730270365713371145981802324369072731797382523734734643561990357895471285848987580331279352673133117637366464577375666761462101516033935664198279882676979000465626536499296199807255491194571325715960291874312642808064930409856277162254440726636790190376217408109944035082342750376668420358621429502292117594948189430932481848884527538672590161091331938634667818413141022770972138970995523974731713350487672687089785242992687261176431993036326546386815120122313956089236554606990944753522759149073891653887632340959964998301205374320256169371552778891512199488726710257967866872808138665642893730303158260391967151738483937811081539599533011542722970187335839443105777758823761817967376141339227794286853051723667834899964157004364051870523117413682438903960930496583540801749634557395996640596509080616552211191930109732642859951707526594217567104768838947268791451187042131231989369576920044856475414742062569546657489739851355839798029080083271717507823481396604283314995250959680555027225399017840181493007736121057361788629901656185888565892367779715079569192815210431392803685688339225870234326878108295260193337388995992463501091161888968351665921077679196255254843166840700553010965078222431406824161847209795615756503220000364406413090065756601669260837075419885187164980524927307000389546642976438074896688250446655941153313758525346055874557701653717983853559707664446611365921493469336137256541129746169296399508699178860068632008333987342451177378157828224655446516046381597619537800168818559405148454955441681016435933916651645722918325226526458634346809479563783612410657030555420343218892100416866967943986202570338269791356778691286449952279733015271561551929260552038316717561739451720162306181001087049458526468908170789285416009033404679260927904359496739521369174142033210774960562471768643385355891491744909181582065419983668579468254084911276249138503743684000386483992910860259162052430127376770745577460210091019983810233962401152532803363475617822530895909299012931793328535554993765957043736869783551385980609228427683029969993153170267340485770892429233877026194875405413577750688751111372444218971891750251064963643426176547057847972615521725003134480679127929678545505035866780288126705575792724090852865651652120406387530029840715089361652563532407227617958371648615415224061899766831841379333157876422649317319804624751879909386795405993285616725792407591481060930716867098583015216977872692390022073830706975790898741232066873253073947088691249693173134508159135991343665640888522493723455034796411572892318084953983261387969557173300608600368207684943945025483849269121644390862705853882060672717311507047062679848524557388470378759446085231693250182836575016760162402988686592984378898972841567437934486727216237774004484540321509002354595555062302001169469579439471451369808275343517373539457292997851782685121236030707163114044042345213632265405266216058006717835093818348048128791137249516454230043056654784693712130002959200265851760928806336646291196601977357957113955014614170092480274107332035340387662467673962362249432847791851162253414388566441917811698719535557551274267789928520324550224890907847790265117796942067171050729396002285703387637966351578240387141134661467658120971233172242757524561828976533684488218283995105609456206454246501584057343614044436902120231303584525198167303081751717904051062518296410799814486710079179803192966720787931001190727860643391380279119405729569936002888385739024435482038863423834835059310618884582523153429021252569344129780976143426753140878253717488627742000965917972007015670748670664129902801072270246156067390558378595070904981983922655212240736779722515112796544811813764426522827622143952741035188040644015955233916582598418954914000978346616321821470640679185416900995693723198334080351782894618828642097188445812920501423768283592707053772942365691657956191017898154549469901563981659294130369924218740244848008165996111886840217053226630483142379367528033066232074594020540023319187784645948788183965811504813160856582504851732165621097473832938499941353310038088885473833192484097051866260751790713145381276029922916750224339586321092240152981543960576633110819959558969804850911273102116629883996977379143754196676973564095351138157688013861845461503619976062666961350674207201398075205979322194040886737660632326894483847070969138151132724737715721385237973580387947316960561756509847999114233711592177091701310237196434750800518982249553355035726636063759499150512705727715497643938454159420391302830889304270764638217761250849555829188240790514818003027071373079425064123067973169552045773576194685339428413426378319583494548732779395190663613870336771192230125514793835890949777210330294825131398447331775229783974806416056661713904538920142776380695300441419171197711423315298161582221841234030345373687029722666247270044109770036248965325320196640576937381707464992833157125124754555107834105165209949943102799688464427114596991456252973643400682294191835612714443536767122108710790466574258400922868320777976779496037812560761861209370338540073979084975175590335364667879878393945001451955964279143154553992326567747225136189840898728539992796659097795094726769390587071668537826613312134367553631190279859803512334798997915398155351926845857326424582418781496957383874931668537254192001680457507725435167296461304873350644670125645904265820565477709403460546837773688462764905720207209826954044525054153231528141198755811407008942206675877402574898325046126282958648812090534453423542173876397271895917829807346961477346809225946063795820631745070733738563916648376417137101514182793871628415186446837531681162676289614770899999252976711108458448665832749755818457647629791641506745390705909721753541190459858189700075153058766526477460208631539689706626764609874366276551797517050236084288086967684536294646189538149451668063824441501015694016475678707069600839604219642603263163522520982115865558327158326275102881929739937881644880144729037718175461598646638845471400417471582945076322720028900298368447591600810107953814674834689375893616091543878758862695912105132199509545169953760741087387078199505771985813000910604345558932575400096730154088024301278157412549414560385749586715351193756334272241600074205572391044827682141924596959935207283821078492013985184338313498250756672677186902497486213968149828594304599077148962513214180054416850687042351695261120384931191786485326165696175944147598217579444564813291221437820439707579708736465469565252410502185898786955855181455537371719946873476007932479539588788723649857644776843651078309791368894488401615848173927046460466859450261292246950170883791005956334754731244941016028522061692487362439695712232872707638609863132600292645309480745721510479243249039347135680098858311393866946768084002811586290457139223072405975379918240575016652804552176473390630086522073081978046978339728891785893452746983842560675328112418970551440089839122279669810888481254504841353593132118283326594428513802452988433157051862786302680358374997312721671526433851179079456103337246773829516253364818699218571073392814413239429471313237317675147196056394120211436468199721397452238327857086140840334290149472687512941981414917010246867806960415439078691492982603128771121131693057857316167586686991281348993830076120054171720113161126730072360551478541808461532943975190846362070814676321845520238229582731883448754947986156443889458015952223559811732889932581813939700145774127381945806305016022842317501915843818535174473933280128480833657659956811048119034524694170545770993891305485897340769995976125913748396883883174933315477158978780321989863426485995066290878465414860954678970908057175449608323095473997232267182978759297065282592789106325592768728987893400756520372499393459077744325272027623299777247355345932669258874089576853520708106484332097807035029090495132837696889417749731276191427001517192861039626611647806751305405603925203360437216740649583319574743338826315101433263899243688160312471510972858027604522520865906493307021360234801449025068326825670598053639421761625533117591566713309202038340541486523064553806135644493721953778799615341369567566326621914819722691211835969066945925789431228477887001318537260204808549893618501778966201429030914941748236722810644857791370967501920376768667381515119682748880070753935044741997962057921199370612932355483565084805593847052066451383304488695995359074511386324728638605019177415339668305051039406071687971443093577232306196623822619111693549879459537133550753397351217362327605348998492650912655055176022147091980997174836542102437731431400358850188323999032060816911475889174560508507276814925384975561285265575800605793427874922693739897431411025437392014708406613735735062130242382314720577923504543849365543302161379446049787645783693272303470860877728250378168981526475789125237378804620841808683280601711970249013731134757313570784674430083159086902507328190313965105007134244363642888150412675559197518426922792494256632215829393532010106908165374367853037750403312026430504766348615454489147693719152140213499897828745733174876898846014924624447175341501124680523343610990729289620835807530810877448331004675161614002276749320100278605340917700367165681449526197768672226991615562533044503932527594000588951747051510792348259548793124231936242930135938752994118670916363226328926540913722246816380011988916205304458872495152433361795580640230887481603508801254530725484132880305416905351407603744381640306735579168049397423740987176514998856327164782855634781966197961354081787115528996827014167475684817199574468884458854957417425747267761397146515304948463426220915366708437883557238607835701611483438786508931260370905801367532048436979463353553263282566015570875267585475614264975688017504470206267514250498720034552047353089966002751094820170095568132723615662035495775811117565412277995981945229003242778820763302414156600219132115404713733468019462262376898126575742186604612351103668194620548366404455118532364689603431808857374075901655085955340128864974640356839523597489807402209606399825884098962493647866059556152526817944322210433957772612086127514620493299193367438848926979698406176063461208296404306992145642873388315613567753333885123210518525790460500841384408227449960065774615649658314104317303766091732006208220848198858430040276974538436130792261629988537561101290634697927781849413965154685035922691754908419248603115097237752118895596824723328465449613593420253147797890906669104716694256934410385445407837487486220606996684081954286372937671371879001788559358485102060911941775828883477556454062067891394761886128341477965086773300888552814141906356532672408878052613973811494452895492482551015512700820780940431543787785748576980879241452966768684237697446085786631704845409717871922639948719253510002755522253754471910797475469372541511081299108389916541470858756980195919458280537837667028699034670891738168898532110964434983283214789525997425618216556591012594441423730463789702187289931136712102471718431908907918482911935709735199796537985755954707327814881883731360276830576433701394453048131419742147238386609153343336282198739852434431730043272784218569045330063786975056073346249738424118486886718281943087275738958110634125263639282221716172718843875732000847239417311939214721926236756011810126966533659569673287501552854329693877326758157822869417325853035872707314391035240605216462371836038226014896745161298967798920076079180694920676628219886476567347913741360257056797560125140158825780349146988088874389095518238923880705133737385659331997947087375519664443520048495930887139613290190085134798120756206538991374225141391828346642097473624574797560394283455136136500906770894987516562558321033884772771871735954421907860388317253432177514885325483978187640887151201906714979066413614554608017158769930030298151779270059462462240974163805859443087107684841007996648015369009707668999070659614684243403808097509002690890391214263414971903423846842646744824392634195061792091844462961545010799400955946962955967657851552332954732143019786271334697430230265614727994011372614557623837604794287221796504309255374996907796932598191168698693662620212135996803224042909068718021630068781754082095870006705100732976601226829209554392829422604704676877223529774029903170919700779439608864688091044853652366583816065281452350747409583229140690359765166192554230045208713058220025430360279332730992542442186960504717000586935458561931573492123629175361296166485844521015541959199473590115209608634686124634219168572716366282716068936284642212075859510098452525294650505820637562135898065143125713663271603932465101820500321634003972251336958691146885571412623402632375326649994892917291287249100773584674584081921108763316778079440272001008629629078019883288939718745767832054076546132389732256036814958417171416459762630765616301040238789429116438667731123585273856647059791005644345172917196807564243085165249911515717930255930553779035827573776165071635808939549617052347431576861506180296286959372161472949509000812381757598848757621030586095181972151875627480930449141233528544920435876349641654123259315077727849761331489556963348436155763351130198236346720253571250094178870605838943266704725437963854656927394140286622895562419671337149387596494559608621008673480106399919068456234464145489024148025889240383760872897588735730850723263641196570569450692429688329622461381502220192333756199010732802707602053731354797984793979774622898394377033229848842944534468051588826709797195558601094635639974346102534886626327195066640616405310865254730326866416225120523915037970085006568606302276850473419238438046491834493837701610843619504585997245226229151966032445951344946182875205191242869080456689801831481087896373732674622359859422631147032766133672767012428368650434349072063609197683847771626909492552665327622624054764198635193893423829569998625424508844646385593991023072267928551055370120869923398491560921574449697836837385835422371079243720946163967757171694379638522741241780960217402151098935906898746068797267960483925897863887725820901347608946434062504355887827449070913843657643147969332452401405317078049764750550806301197382960682711120768285265566424002804619889172306938624825171754019551579183857306489125414315423330093202547865031184417877257066007671341689577003548200095451617210933355588659919802757800006286100300106901214655669681362896780013575365423229259147822961638805289447378507426954546817793512668949286678802891954861516170465805597990549282771205736622409856124639396791100704331565877190152282208577449670790472000019165419328037757652154159687057153329736076906118514700417368803737627837421564795534241313067174405375784475851574537294772282428269353286978512973492254217306361484064861166056700180934526785243240773313808227164333922150533867678599350420541804584331969470451808356546889457871092013705298342841028981967369170875476772706844787228830626192922686471722664178196012892315057475836925501513142591488692303342779202227796291127841967713211092272685290431718268001648375573932447164222916434478795331290083222268967151666226520743139651100396248691856161485691682847658677920427897636985012005925475021284892221028393022697224693938806402760109995879782797739930618171341767404787731976699712764336169992260934316986793276103601433352009340791468147554120853194613953390905296207976009538513304379907317392954084420633864266864648237385290297983134090309644038273226859026566936486973113480384270603758692085215507597230711907948914252572490298407444486784616871552181061293357319395333160984135444213990204289279348985097828510032203783558629044417375822931760619345467951230452418226179538824174483116258889332867363140080120527645884263566093344557704768973515066859379510731156788567269790751244314261530665354001502735081868509666351181313581486572039838859266773038127928584562188390307755679514025602147431022455167353053445050422276344022846077217260100604517389640873135610026030593371942438349493356796499084722804585680638822873608378691067304640928343579030077932123409064224465058303332396736608491216290601702449118268639742161501700265498847194209420110020986903113120910984257580584116285262991479604933113852594068987424526082082237443105672000337751835907564986483888441037263362225181048550484858690689999469721373512855651265383723008124546197837357172820152293151397481556316623125204692468636876971179808831285873345262704769967850689501728901649057262787354761471492211689849081242506211489995354516071219779466966131775744648679038163857553896742625221635747448994387765211672775115720461433304587124108726005486605695882552437747916104541238531903519963581502272010551412453166849182407013397264312600433094401927227967732801372491931976859561724335835759785035370932316440153259265687274047015703929469816290243552647201510324528961411959089361031108639192745245490620172439496048255654054913208860116786637742483730591631637640589724001720210956092782774353015092872090793243696249976191062146753220277608773784282536323421964334904792417250327651360248792854982833522485464461851914462587766248719809134647896887083060397026294887806855841921798303745661440941856855073957122064517735368843744901364657186602710192124906162254407775597234356066453649468874974613052324492393883022035321108412947081204559973741353899779600938242815927143161658167968859103638432483395886673131662441412454991108402947471137840899968588768104389656004930800497459388482790846921683899095461697146245971062462623223392651982207863382216824108186379020701523821359649845100146256989131157841101373185269181172196630217020966730024592936856297455990891002757113924069911278847368095963963223677344011856882666865883339229930784164095765261884029966709996704925889096736519478770165538971112160569945865779896978671737324767623263940521171481363233534711104989082424864401969487092618569216974378153517648885557497182767741122063691883409522470130031139690081649281452358092408299379120114081985091866783037295705023865625723642819784049200179216623274180309980525522977529573735869598012512764999002614132578252383679989115768763180514489911764521073943953104217875304669453086152718433311371815070040950287868414482933806262290282728108274678614238527123281014406785541058771958086280841818806150320726943062042953273667159759526341310582585995647235748970254652396280899155884554314399179735755585096099751255070252808310625590043319033747003631676052708451476654045064890540244788722379950788163744956481102995872678937434357087685616264789333174267368676909724639639174191776522347984666154477533389605795234321489609301055514767787890571912662997444663776972653815156936114145371998663708481027639014019242116352907329629482209239057160321954453828613603512867768176633764138599636431689537888163293124543177620453183100684675666722762310319456656723355428546853632243891065708836946377164517402324629195998605810322287994047849906305533308152323825389442020020156516395278567054449012119515246919763300016874934835134864267829712078690867566231317127411415318974500150238100420435706348082218358025783990441318675003080310208814925111962221820719504985088815289712007491954569904067036271186957482998980208035585350840213920674781031128658272193631040823620510027821975258807319631899813514752003392345455379813417775826624013570530279602395003449145078869749262243512593231991633058227195837411347916118112490187073726287277104291976555211258914025706920874390163509649549470765581562549690522464767658252610702932537501772151162695611272290668722436812410394144213067585942747156747403669991484390352391455562580759818354296880387896926120627058047371053275023755419921419666246920476416613095123869396110184496752214305899752536768477105287828433021981839752565858542117682699422893789310301212855748073224707260668765388076836012156019527548285883589117089824094189836006174265587002111935581080957895051577662550818921393446750937864142075269547753394691033284236238240719270853067944653166547470584921762597366017199336038047330689560160078166351854967462544562341656759381130557876252806122478504181132506891385182360845253998882540145410079598275267114919714205716091037251579001089599598418912951887817927024660620975220444990506710092379767987852230792599175555411303237573063631666733034019947030681855919310797878677803731515908095497382195684785672050767927527912442354689404800294306324902609022430476125200851208948924082323056124915585189304741889340932078974254150171370366053324063179510090002765468204399768570233935756510620228093799775669839876823170504655308955046515740767615983405948129969698045355145258232942393140962162248507691420577496284020925591492150574303230575755403711756177130759247704206095508296300123246297005691043743139337800358489100051243056979134454947004118640270728193783596211479001837978864585625553964898225793246758312792174075873883946154787113587186467715782509113528702911128679196369261957440843443916274657251983680580145526457162405966864477554451062963290107631099157661589137113776207177394314804083795588562103033437602385452634826524366204713552135618718997011061273989447181124152625740001952255572699031831677908462620433461407829215372522015777880696775054115191948927802435217666961005496762749930504309455220974431072741157277595564954699346905253012332452205506942000672042271010146102741724295576460861569615667521628247821641780014747027450007505617794996794190198994278704216480197039537128155173487713670930557204915544460754957084964716158703646329804437326135097822820130904023646627361117200798032715361017670957209631429560115380812073351628272576842121576238421862214973416824652203018300132363020802922103699876980237919443019060829932259611246349989969867450152179100413787613737734914509666308280691800853813299631416073975745768708530249496444413129590639073589693689664974011745122210126638518276199923840004511857243573437660814224021261136159182801622417051902259811604514067799374362517857441613750824419790207426920689112773348162498173433296481504908353143240852781758001108105250277340903263825644559404427688965067530181497995734117182453005127261465642305482677357038807779028641690167714779869889740851379970172898113397381744042240299588985111155715994125912353381891387233751129527579386353468466453435562601343263515121958813342863379102304566334733337154306250190947524863280874229265650842405858618134433826109504833120740178042478284746980480918320305582713285455709275654539993914245638034634396250981461683921820829337940263649322937659389802859492704143647588468989317784206007970057611699388700755543407391607893403257888745816189302486984288041631463864718355620996721981049605134434607519447874880910356869805981234022034719407775420865027088627081850092957672130346344014514239007762690566046929341770429977586192898369043263963272936002060595157918917739302652590223414122365737782939940162912440181148247700131942987592232240228048476270918281000479789066954113551862951382924133458657417350562488409765231890168563989410312211470546297206396153431699749461504454125131070298068869794328179551173322673754292218608933634459892876698104152928477094778830725149074345499226152464414891536507518850999000489038549031697464158473309550704997037627225684538305917861761184181806573713869001135369763608703622044703804935485644493403503796969976227720627887647472200076808766267177441493151616177139989482943339520356888158994830288977666013636540401384248218479572227434883959373563664016481716318083129081979910545880336783847914995517871939319514641163277187947844878168059530466665845615221475775319147895209654303909886993727096836883138799454028521712539315760242757076215842825867809512560609914498659841781162487664484494055458591386039412185892001197744558817026028551129698645469155151818782862695404343127128287623107055863989459451579290433997125882637424669181385719718696732392577047561911687365306426322226331354746392346268004091583588724264925267448446117493909061787028992371865083895890489775051395543978560997144923155123461365005226364655084140228778879302176163232639055814316811875845480042494909896617463274415982517980327551557930699430518394635233666710968726072496581132728625084814901607838017240490358626332206364849935989850524957508212580329674985075396725507411630597130290565159465488248446645174559063442856225847472195336385109243072287864748529330806610458173480361445603581508520312266731943188181228973339232766756625375387046800581814541760752971415192434354281177184497027197745002708882479367534366052784484929293046161299792469700752360560215030211010145112263795036601421909274861411010970667653430201803652248381970596756336106061398321638750071043451200638536313000507997247609907584571020932079521113818436352378237610295984561361421373491409313426767373818203261729467587659245371010751830060783401937576927568206064358320408813001091383676766736101134035239225527457634446056230141503596441054179873000665223824524073087006495278397331783396547048006590479901265167791247693712535727172372953784353220333644671770387061809082026401523129375206211036107375268183158896220328335379892769594735393041397029771964013730033303925077158073843748804443539691967347789338194122083328725739781673292996143418659529005057363252181443491518974151860557751174945087597487013424416219443416827534932060206409847491583661751530657807594485237590152366157781735869282555940179055082617073732243619612864879023463419491919323127173824557295710950669854755535289730095517762320249353822264759096837393902331881060806738998149372155414832905916305703854127299476992948779303517708477581829571886311154622593461230716224910984374697103825968250847889127386291956477978832598286633978444430832177092847555932159220134700156524131967743252153783722604027178936071686270938815037005690337382000493361575217013526049270069845591455409728126744518650898821490381596902697536172026160959818323270832878246951646398901684772656857909968805169237356924933881189003017263634537275670343638731732664211564572368928381898615300589743841055411822593170876482339872094142269136281928214513371296330539143221101080194738838222408624262156994758516909954714264793294741143635686012275768173570300433209959563294930672614487491317379898618979033084137420510674517999703059890110506537821564092339161182512534416806890138928193174258767800527136562576640889741750479421118839953047640322258390471891065978812156413689709896064963250463440548962971084427212878360307649622752149652798695751860920246134759545187657465410440830607987733808192969464401582221544491153768179685176522109308687850534022072593421601941733559035214277130908672222207698857198013470149603406482741231187279730500467252797051204364160462878562056776939586743776620576127584070715991345927545586330531363776744451915281045348235958591708405357876380326560041881987377794224969499766963571584578593001512238081646892031877579425624621241963729605073950777016647424010216692329425839632730428536838786713539607742098924670982710153121373289132519152646122173909921689991135577767491907517070200887498608456361467756519651911084081561634679991885318005915902184896243367636256621100367079386685757794505548366082864684963663770806119848278994431738145785837104447476373662795615604978473871418093166273161592754343529885966076383064508168034237148086880949549147752802296452552626571349711331814555286845915440956441382770186363748042439116806941643361828529364666992852105420501303127015647487300854778950751849834901860356797749122465140175516934380246663333240606794928488750480471899771805824954370496613423412160504834600010634281242049028948551639938324542649686426436718360675068551039974831151998238019340128689684290879637480666488973123274816841285670141082939791851685087999678186596026366202439466577847311955730228646547580392651121196260603590531355121469924802438610011228196592620114990145446498233035481252573847946211673218414938721099314609320538120760582479816967846634066721199952967616885499983793680275103529605218991093080732026623560310959809646724265174643945836358490006281947295957125527248467501748800605022848290056182747631175441501458633349333338944453188610981218270039626761479583899578195773833973243126960017078790397853589574993024002799907268625501735699187147616138461822835253916510173142607187601795450188838766640112631228494338240377111328972964691012186679234982201069178999649466220525544141047136868378131663893483396375741563035219188171249550158856147120417371544787489353173774952083861724901808489714553853405105912938468186244794330675771984466214440941387254611976405401902274567413867557823008745235350131266761968624099877634470140045087469174120698312463129361404064694286473739878702403319228004524089101000437756761103556669206619670109427747258345877847278750454154801556320927991566660370992448793364652160830149582389531672232381682957421636257543774645068698868214722519512499898710224623932962017839212167441252875368936527753486256403325894996008508240590054376026739225078749925959488636715795869673874759864380543474156749979580494261067051508352578590487138754213653064221097604558784566362959051909746921874058650060808558256969363744596212494545128931104738251189760814001041563110116343707946770892081570088024923200700650326616163930313746035264343591620669196031460076978854479571167240061205099129287818664394795019138721518659260378211766112082992642634742978161815980033988808890474688178896927402689739457578989020417298212244589215331178303965872415654970050984520900219529869879432201991422083681666595388214264484094557193968403229885561642305338814617429368242207645946824376765896339957193131568178360085171588661776963365013927203885403803985739241085665321735428970278351978869800688278380143656715180864757132549101121005378889785107477369291696652208990137281732307475612469248344324989155296235884237968640178705783675077405369438469317925174768044112209633312306997058818971637390768517566986403911824461214451337358143591355277347336779769280747460695231769386161664497354733751072731908419747127160076245173959167874176373164851392337819837354941136664108796535081870706770049512049004355354186269240930202451931711510692341726053059408132893256547760613304717299380000235437606342424935610111111631480229768636739220484551952744138294930023391536008874789505041871580060936332863874543669084501130865181159054763793373962449330177645471422731182685808803683639261772909931667124475495148868863164424517007523240382756004540719896318686196161644890290596082748543362216024571242170861410914984100595404008407340088909207243296503341542821847656953561940406758471855592569057324282944518444511579304789787516306851258181015017522084063001386221163000165789609360512198353128264533181602037431520462635704427373489626855417674181746495545774139763834126647732597672335212856400739057905709716782574617783199984692243162767720100863905158399387807301311017038492074069203911479380321224105654493234833506471696967748572434243676691704229475386359419726137357033934929073680256801453384579705958544183861816592578065312555005197815853326646485339362569684859634330675393123810153823857485664862078387272427073676177197250545332322663996934882945029120215100872821441926609542253916785079052361266212620949766368265019179188933134543135611493179855670856811196249988068558108846813106435970045385264522364388923186745637607228742219304997741866110903717060776035388953565577406570534626329027570925223415543449742178408755574963649317945636220862855343373675386163304148286778529521635609419477411934737382900853180418207485104330904029838690627934610577208490271998363957518481009843509835956902416565171712661541991263286426159220613791860316097878946680644418257172950086563223884220696536565217359809652255890628995128278632809710440611648391872781258175415841472059036648452352845424420632997500667305368867413844880697889117042279532852763544386103526382651903749084714885945122984871545371120315205101010738874336334090546226569225305002498530717456926212249292638571602009453255164490253885584067921062763247963041440254533924623949202971858686286706822194107349962419494708269469195341448825201554134065034060864548651813711175622806672317695062820576696833055749694709721950559961610896627637530210056230421513742498978702542212974597846864091475147360938795248322257393709309561911150512888558721108525555670471200151968384710813186778483802339288721811783077864541828745949471324904830258132677071359472464484692785853949311471481053839651359385545751469682285019257361875939742710013216296242798038094036855738110936291461306418236964838955795760555216671901051849239964324378405288415446797186606575664614245547474219033180039583963141537958250216570157295299916858585693722125799534640026711845936633943991494888527979568842395647816534486208827271634020049310399389759929951562989941671448788958150650715621167931265530047516157883069983631031292300461244623659137350142284664949139463149936692877614965680875389665421281840410296008153139745196502874163430304516305052931073832082554720809436620785759308632725284320412329311417610846898222800767217792025646516492178724428804332161816288091418474633851477559116515427897389656859620266480614613141236306852508803972538495976096903149117191199772287083722751219892392727709508242739189249386232413829152858319048318839890186486743789275187104709558913126874055521543218079430890529040097354105161432240654230133965809378256607120014305720129980539654949843042446809963487603462047029469327150434115118234166632886851670169286272179720048204951144467593723388883556426338310509532843165754762164377099383603539386419118501616359588761759739147140780718196654819316018477477236515427197372306978207457659536380074895593696864890793278650015100130263371740071274582928775362684881470677098374114502432500869602854797789059448355703805352556638842326770158510486011697723204477829266203079789228905132582003833355195708964619408958371591535868483189082912747582954493310878078987164573008779172091743498492229023022531149381851759822006150063991793540122525176454495248230167053195313241641809378146406175371498928234901821210181450485484016910322107354107326341445015209256300627872907506993170064302044450130169136613736930715328853031904826461520843914867791672865815520449714901073754735192222599325572587652944448793794143056379969938389975354281142064864355461173702485060216146955068867814144254129641441361247199288049958278506699595946108478709738799952506556140835220579200860045653213418960439544373609883972828455569663577621789470982368273840058754448220622082730564087376311517559957754626880582805129044085902268911163011219031770064744020024206327361237796054808189745503330458244975952361226097622242684199554034679322880186726414817627935125126588776588611578648636447297238160344842162523471620985871747514544545811706003441060017585172067136339076923102190589186967169009434827133995922821598263266655461584024898026118359562235011530651757221870909709645670578150198836799748675418069453802970642243879407417342471532949817890641419593389085224321944245428490425423851979468559848345116960842717667020127173002606211793798984506072324424645843068261123978614915004553653834079061549891840340096632376679579406563956325981829018124427958610706751234061224457343257092820065608464018366243213522605757119804507330611186496639125497693552602799329843348606445491017736323987836170452164789255651199662269634719777452311458765823780388206139412626560108681081717458915617180755134625728422179422580306953032138523685434721964212101747074128708101147284912531497234229598004385062691938836514566824227121840472493311404824090300885587404398894470050901959418324581268628754208390640146221819644305843114168193372589580222096210913531659615906646495179244133355862415237604773212752620339131759596311916044587265873943914416884005535114652031549433102384816541940536091796789582014658000534311738273999490797798943228298322067181081002845944318206453777351582333110091380307698385241634289916625653290451315568830815972575043767407198620043205425314569852204767259309185051400320684457393782735494712041031896110858728766718417029323587247814395099547398848049848097007559678747690413621731451280940377800979421015813534148162596988770676966033675786572965886613354233458546946859013296343732595189120088054398877128106703109977784501125559736895255216856626856575793287078186221188390822154225233319648636216870175548114528024125628111491111151810087054377544900992984551602163201732968989783392000036518849545303234144758705419080519717289025317665370299417513060979467323379891226938442064395892127860761358942414970595640247320473110569920421080045819662761541818757174803337600356452997303737463411970547771064024489677099388627703262761057559108744994270631362805487465434065287720932737794303997731280193232133228545473455869063086856748589980745876081547031735929594492223698973122895132958438008154871891922195223477058055127533569531264006289249372223557256977366609980028079610914941279468870714247016653030818175020547033407303110545159423095194551720065514099675021506683944502204104454023075605886128433590662679260141444933768532629090636090489278427159803566497430743845970816829293127632348202315894752253768390886453543896626679293934180122410246461400630516184311938727377662397113824368237305755477182181787352172104363598050992077236384033193780669683147878884464641141332988732432785262991058296539320806629784196609280278993159283776743646363485275072618815982931579272498744319525852481369440219259630348998535952457388599083942940234855810989223570339318752375356366893207122012281205109707218473944155940934170750843103754732365993826597974842728802219728936259180479329698401123488980079671938906829899327055207387060287725300132620245840665499951245047664656170627988139544277162493065624367785596508991996326759184504243478890104918095704171331769981215171323124039581349664886181571096769029762494981597425270012425862289160042551443335311302255532999134451706942686126857118714101246680436838906307598667100024544382755188557214562158042655409253501187023566391747168450740145064379547646137118189343402812248481865141779519619179612309335019816202760127982591716876006359292130681044374704151296106760451359234780006256280222593464832525742978874353835400391801595376815148901402760968904291100504235759863079843803941254986126650559306946447360485096709580995150289082774824223573819164059387331780239801323084887407346307179539477231030418107660915877880382602372005914480293601294780764929334649865273973563208515669788227786716521148580005007006474237890050456314376703763946269642361253168683859418183028038049431188746135471111982583361330375965587443965262313223199581008439435223109760088754370009309843916245954188920349494141321756936772497678757173114720269315844989644809703407063194157555380029951531216693045003736116385969987107633669703847809136177208869776954398099447732536714424258426534286278746852918727986062194333472316348964657194778016442597521345991866154732769822443255222249980068210107078321693005421037857285447791352453271750504476006933376892475690810308342309554640119285010912542720135053012680420403286346185300004457165621439049510508841244090551640229619714296346498065133521832848839193354657101536202001246319515396260692401084359365059639837821998615697219016083916991489721976496638050385063068505829173626821396115136457128871247014600369368497305967846151615132548282096288894492847739727438816352947825119548231192252795646022791454483569029908488447983101888505291526655038780022427521256709579237843307011830356741923262173775511809484705665563327833494395653202012105663176856831996850588886695731578505100464328369371973013866301172678460535212268029859372692358042128602659903891034872168407755528444462515815415488720670157546213350646076694949119271105608389740218690579108857425231663890321945294675290392454954048875510303590017838515152362022313961086185586742774616697514506486488576979169650830594207271013195294257396503394342703208808878161502368538304086620569231478361935190025359866860430443235834965483552395042042169347170437537359600930264845400069007216953692124733604406658012073154802892125687095331824086227782150959236407520885701777168729730791886498972151926875801227975580225630875757793223457368905180731644517299745195809081167861052371431166656400832647515481297123486056955376211509333025817679862436215161012541228417567164908673315814668525377215408010283226072138765711249020680956591704860508392080878876639189943455881614320991810882970234175368521877191639561742695265340474419009759025846904560091683703756194836843857568343283396460927997625946620047087123798271245467066827057208545020963562517108624822123972331889214901191089250760374568217035569856965334290240710519009544957421518906118698394438460845697843083905124062708560011638726821968426346521920138612361759994855896682311789252826118146647688149911433682378698010247367874346328551107649327537028138743904068173303454823856150227577072455286448825789112109114583164764599777196337998630724155680391499946466030650378784269424260091622478033887281741804001127137793212400508017859756293938475070555255859285982193658361691788044198122265636859259653720295136502183287675150227283602376246199860507981950303733429864646238538926726533212506532950287118036309452531130678449565264992479586945297148943788843120025641949095975023064157414515342511625651056346727017415342473758381617340415661698537863659479152451793956224726875623246310852216668443938482530691438655435128127291382090361806467946302557275739085175232856251178902554752782663164195522650070763710788301504038569561143881833758772384774418290531769764921697738357042763801921329440660220737250111408725893591810234858002600385340718019088805779366935450548042194649027536937189445833036101535151322623981183970130076220430906413162348992218485952889540866379679513303369789923326547098948805193095041842849270677263430151184313890411952536497742813529080864299562953493619068736442358325323797940637831505684407954942145534899212229918051790414959123179473436280079610462412996389726779274233922421189634628544210113458402861962650118618593337865348498933701293551695105622637892571204560458500083958570890481935998649866607501797593648745714790009716695545120980494582927737812226514066665347469580479249331397349040744101822877339699074499726346379999640531444802545337438139393864424055206862486400277099532328158691588766206578050066532838215839328512484300744388165124330314769231242066880496534599673126793387562566005849005772465779161039808662507334860306381915762159356604528854583377255738288866003370339945841094705238275104083801788117165641533102741288852458872688821158349807030349487906269804317916560529369677175663843110994364333122310203333920006040822404911574707972694901716838384620878312647649114817929507334027274737929536793971915584966853909083089825846923116783923212406207739297777403341136260112922497939776960104185855000426128064086225386181148743176092102621952986946125611931654408030196109924160658657654742537495374326069821434792868561855465862499235411091420849434841614746165273578137332457321977682702902354844587786772558066074955478736058090580953066972890401730508076611662345129725454375252902465956237554979107127902822058616891412426333729048678716144092233382985443181001244547437607576145944233614465094068193992369517169924134405378491678377086996318565870971666919355820944195846289199041411649971316807168068539102863558868120290792594734376942559632697258367784571082913690679103684045209909907899785561897917565038952949338946462016889654497693290612570411434439154475864134438670850253215476902908303076782861643039305854617178444332642449987408479536434709388747320789482896626756687305110896424292011785329703574018150056171869676008726215634431756260120683233105675313471080653181587224136768001772350871853570456684159605446560891908935687908551070488336760915495962943019001775456942951015371819767774050874496497235402271548588242081952082357162028760846922312040526669020999965346421981935315502032863354620907489979362824288710562314502456593095597993257078592683560116646198746334908670380964965878737589282943658550747142375102345067173011391523540515709354557696535210448310491724449458940014292110540076993788066839889510439046475750016106871184160331303091723028814672748879901968624262297133020788993523820348568937809539505582479643936069047741186788568310482088905654407927143623310540689677669032985273893418392786690369358542836319372289730005143828199777843652527721442247933458740228490509966783066333552831252352698692049708062934794264369021900013027750040887445965930796003022264542976840647067592255243575947072141287415623913155714233301858162874958842587789485116477876205401794207736153271618308897516556340495993814149132400571758086225082035033615909675164253678797953553928851108017434272952919785170025095937816323318516894798541666717708374741498834723906591887384434609966411107269915493901025241936725068760933010021690303671589781814275171065474601970735601276197849099009774383633135585374911890973939047837701259538560388980507053609945314994007781565939141775876640953158755059611576201363621448765692020563626686194995612833227129421807803712485468794941166863722346355379288095822204826214040783122201293862644982549878089928311813320151229531228167659057309446426825735184110220686473575462487223375204969509319932084795534623380800921828381658477615560170383797066202653232077141897319327154166647777953357102846565998767662633853463186020150719939295016370262039360368330167800985725069631597765184743946360386346622215765593792746933304185141675813965600286983018791398301794663797262606829671261735029419911494300383951499949339111015678004746089840149100261378293249554690500267768194602507104744374360436545974853400225352435457472527469870669458195800851388457855966743683926712304571359453778386473735944315238184214561107101601218910553007066589129286640133355109973707015569270042881659297021297920723034171594042964360564877461672110851076863617858690999937651225070515906064387957329533454318578240810591415703936557200776519980832962187020450645125069011116761906021562310494143076015333424841403673668547059556189968252229106493127038415902692670687950431321770754052833065959873018823494154116194064789121681126062487406310197567456057687862311397062421166504808421690478102696836557499335322167370423052842633120334457024570202959617296022978215329968590190863660438972016156444043801756517255593299504531017748736506892251994157879416660724998337905047688111568524618223580619496537382568272028097887157094903322213189233797500395864779046217482028915326985874480976834078226451683859742865358382988378056050903400743182709554481968290304494006452051645452365376287976213667472700559131966220179744221585009330309756619267809242358979487261924562656594542888103766131225247497940882593598913122534623449457670539443616125519851837997500204765417119368304789978201844478690737307683257286409789659287820155265998981045913023796928745286892638943627335525043254287272751347088390344081188735550696020277342739813690206970845489857338973537718622273136387121102667683406513303239065552359102376045423852908133198796276474713829295870399632157944892414497330468820101513096343808021072755085880051016286513966980838146335505562735374584007713116642413113011230951763963732200399330676041275426155877094702302604911309347136837052273363213828053256033529685604223215274700772199714577699539347646315916756925228597772026576033326417366125431117583838494506627696401317670560953807553600458800480214559788198888053463911356095942962181468139495287321976341417209996162860015900802575524212683755097884947175217277114897329165594883586093584990814758079752349660081892926304670651370387032192450459399319125686131439094537081869555848289204174117776891207476331795508242014953246979943494273037010372350642700254958163285596776043220145326097771526337784999596859651396392358055819999131975909051901438615959620390665285630471470564449816104741102879025583737208638326201591080557306382347951328252669881743539523418688886617927995507362508885397836855912682284578108945690752141101556409758359783196583340119666773659870585111488293427680518057882436753064234481803209238431069743231363449694486188247268929088280102043091238298827923120098316774276204825812295765543504060696867608182640059428532155943596766602379005496121583777683949516470937196616868248558940767871965473650347091303779961986424264768397854668305620807585733417500830033273263505611947892226137906140422474240836861155731724859223053328407469177499862194662204377531958866412973381099667311695375934233196934591568222260818204344037727559774395727696947239299598281337740155743079335227530507329831997111883683286812975865185975274210633835448937515032579690449273741904393606540433710608928339671667763851501706060952251104333239777565577776264398516396621306856366422366107364999256403829134109847670745809155346173627276037288864624971594369903550326305882671163066640377573365869221434407383590445731381459417760921594273171938386949447808150966662168155764266423401144287717389389417249022632997565923303868310164737006132368590007158316715941379069875594767251460530355505281406575618842872293876047135745820781282101729354821472670844185749194186478750324455257649181725834181237710821353459738689606603861772826656887079180552294337420886522082364568255974703011847938270234944156950071747292094099591007015772069957022302298302170549254959046801055047875825833958922719489303818530231089051606055365834853407571461719219492105363407124714858341941227672725842821068550072528344604256696306738695020477292415560752825333520137973086579038277662760578638341879270757531286170826736404628243035432660354910309680956949228324991203402971129839784366875050636314195230216710039268500676136451103965411629881198787029722296606119727430400307667434354320259018145466951675683938852751208230769838028862094561842027274833450660996627971014915073235793154002876255255951898966731245041784665627145497181079695592009044968810086626705664161698511567548898544381012790619886413178285460879925263872191125163109125847910861729492621688153947797068793760651733600109648200825722204999859981422372678222018210341865688970147697826508604798238707808661119524566248169964193550855355088021879281773921590047968567569899385209215698610494856031928403521882214157843771838222409829016056794485586867371033424741680001330155189051269802457380241286118981198984084794951612685017212077337936587030909225143692302482899187453991893149031705912700809779013960197951282285393800061882832977726730801367326926490120459535817947966685300295407985287885056680214263995627641363960174149863377727798704107050558888206943391736822834058760158852005387374200079239177494450144942763122756266082976484201009085191131993939520619925951208008678458157432950717294376989920314367056562529062973137623196205556288595833725286545439798919710164069016898938136868653353413404830632354485147313820797128300854097263585318218219339210497861262988217910202681869274323948596679439328102961825613480106269883374137158665747022097442448304052774534283723288615441333655618646886109751574468614118021383894555219255150799923052995784770372629726014955763917043682780765500605574035725217477080092085460308288998822121508547503237441050370263832524672533854125678357904583851050891271821558722357301703151841409298246366544627139181504470463986624860869068889878047109135187034888243783972012582120968557992017193912179094940870285027171279771412293267599674225369920678972376059736579017862295143463627749517223172364143777181842187373262574616015107268427531829805035269113699897802559448009635387364501616034356588761741675660084680000178785620602010307630110510612741318963540548862729224729161201743501607742095265362281881215633372064847066960824152489737786733626032999361311499733388357615359920467709040287562062546405620778297075715773964742152543455976571045018347069298735231345743712010174622911181425736838984217922683359289082811059309912476363174267341213797637234183647573351630947214620642246762673304911998889616072011575900852970862138202894491501051758764278268609610144699319419673914159733859986592114945131589768967178398050451578545865768203656955683136523417488710461602661585745738424138027262671776231129791196185024543569505103542761448594533142785328755191989288303692445576306061662078179367103434632544129307481163212136928496226649388424822657640718266251779500378378342036728608028952376815421525272079529039921175459651717950149660161276343328782352258472890875135143545644629352081063626491533589146335581680465553964498043402690557523192909007238744871208961624698295682619510743506999436933868602052509769128423919329116185120030121601937992175910379080120458174724310085350043415531136904159902741071321551497246069230816814700261299708110128170604252408674633619946891953677427152908114393699917094231538536103433211531904218321964347623797374231279892279883420323111626077876294040863101853270088452369462471925018367302340408827878957879172716070140347820983151486403030556613850614696965007606016263263219847691571741049519764530225293243240436238543970387001186293506612076061197959441851186744843958416276959360889917799753826974958478926026767188866540716902713340098134706256843957167429234317999181929372131787726898199320410339866116223834359984196040970680581399953149467362593152049469958240815047857760573304503679694973129545329170102573386484458527801809848130045086596822433593139501028009223077667800020701275886412911384481606950607983240073116520411788933324927074430140310084971298972104049165898250552652182351795690023279539102903008757525927055990848508755330638732575988369984366209162226705741983182747120620546596055697168282189394953564009711000429286237309230817169018289784363303112553307277269517452401727802330036026230250526118328149226585463771248767002240544699583694219765033935167893801958868080213401436212758958802615567730725327523747083164700496663529935828239242801539953003133318337665897413999141137630075052043913936017827205589697635313946361413762870818398931513041265481098995618525464690056780547930829808581629026352552606964166942296240875132191968288445662652548191613349877825675139146765585031204696667895431567292908383546325752621749672696618161849590088316596312938635718265062546833656827635537227246846242047511020800244912351628215651743014809065527452915901910366764665358593837807049082548558248791957228602655126445317198112716589749472724200003069048301853424592488155072851153686746226360910903869350484122892049755343018381207887518595910816314301447523742267304690371246028911719267339302233902092954506653923230063912357663718503185803075890515406368013663249807550416057400578129348167668679643721196975927782661113494417556596614248321182223827184889428895573549713930562512365232892464941155649378734059150863738641117279332713782019695390062794567814041844419357122861276016374085458103934410957701113965881020609972461660352396974309850941309562236994834053534242082668138445233674262108371113513597897494961100214205883396659948264371614541386530683432149297846829104716502433354399436200588845360416778746024330684305162155945728351729518048476380529734047953716164675825412463585055737079849893765785507963934685579848562091946884253660889394472293899743620200269923570247881087555332385045095817017460453624107716495569018103549964157000802204738555234672102697389172384101121203008624789445476000632423659704755705105644106963230552571538851246502675105722861584976458408168567932684970709635874519453656390043320118651913960042331370933534424013134345095112497878546693021319233630592416970721488594218519577404105847563754550004015076273307721691648936122295762931979703026220143173519410719821715722882813501946253707567781772745272640541605283317533088101437779356940999928150314287893355649638514508975447857517812176544335791050805789461424196111663147024718258459486567377035059351532236305312318219609457377424944721936577315796577495019076214360729102700523491103964700426336452038046974317464697100392697787068806833354616522337825630059045727212590132429631436534348718666900650920450864511044419345526368491788033752815733917460221260830772403287158079222776837164865358088507846747353721824865963304349205149211637252051490932010638003393412181538736130589417667701165615433795812606268127356449773791753712738739804600181770976885683585230706535187981090790534780605295928589571058610928949910470648544056970101619304271892195518618220388318909688349660343692675174524668786726635580499077662943012199663070216433741397740561010622057944731043850830626501108373056676246854958156822795459418122844426833598934583638005162724436146948369688109739396609287519586632270094103776217785564396850080707750464469597508980753800047930644923824862958726385801880077923164593703620492117519892565570929095494918912911327057976146855992392182205840025094971848977709053836252684696482485264196326895897578313614191844119990687059026799309600101043606643298516383083331032118565978893856476213100678087869231662798229472611952731285142462640426637715999045980044975078535769018336225484709727347548813596775279847168491462421906015073382565284317322680136306807529033907865870471937697496553177594562762756672269250733553817407008425110837492763677634688559638135827569651095274468749099911165905320065177040375155015215887936441166330877320120486355832127032669470912520757885531939886229767094559750252769189832303886063007866639987263947748802926959481962285121151465593394471776283810102796551536222083224863964798486378437355709797229944592972112881329439043882334476092056757928597971670632592677214668932097953649633756836443250112792750084800815205298830091170369505582396919126664628670173642699537840005967614726120938828028157686232898929028719602436181156254686943195282390512297484059681468473632031473473149249148806705637644549985754216912044677584132041232333438714183383057918981476618202724720275992832379334555884188475397288548862778476223782537316097779424382285007029414220267114865536650716067383531211337142470584238495073180447243378400117233225112214286536680580083316977738545007466585894992266158803825167240762624037040335098719937889415610017128462673076595236380477930922676569102657794083891389781152778266680252401421637809053237597114898819068375078925783807517187701859103080855166290124513640126239002864155020997494195144796455190499738877133126134402549038539515171976577186077938007644680777869896444423064435955348909729369510050214012227455573085438387440021622666935536280302208029347490742629269749859715885518256074877009748847988127055516193854320438000271380997330654720687620812967060352105934065640384851126907075189954717847381617239260757604672038959661325246910668232322720716789291878095769522905985973661142612133193794728881893215282189867415861932097279983320171110017659276446497813324975741449938590278314246288526526204722839091647470448004993015765983902673002725199799229048607895365478256928159422672335373168415638990880234451676991770881133277793148276102255230468480032171424810665728274902346755421689208896817417318088405052678853269495651762930141719837910126379479805608909220396512046494826032093834717669187429036648780415392610080571868218944367499434793588491830498902199254267601986184194003120714878721216609219386993075401397416144354313283898160293887140169457328995351751384994333852230329956777095360680694594075382480619865765732234272367018228963929571632482960476502730140528542920272069361417391977478169986437603610496062575660825376883635619701205203720033769524355615800479962097213203350616786225243387403532856927867636658046117782292163275368257928619902642554261113029329536171951399716448855124089723867885579215502172310160799739406812192352786078277436191029695355763847446127003421828602971273219823889994370792595662642099529755524360427385386560551203800045561109293628905085908543457842947968953034979156543872715354483522551440463628994728481207654282893404333088194035987475017502732085306263770681770631452453735856073830360944919144927453705953524445013556783536187821858542326867523028268241399284517345162459515236505836596311618538829682987883412197854297127743741617099180325524307706675996848676571726236418979292693841521461758561017048398171625587656089106848541516030626965532226867394816545860690688715650705408571873412786046092836648654911905006813332589120117859362133765695033086426780650464235408901237551475140860545760008614468365913856346246696799130420030244665077989450641492700216521761502763570434785908181663108832742389692962497401715989122441050455461627308936624307641604283636222938390382124567073429734299067192867419944808033452463443733125335186283919334999014004200009875701665590171657766936154869857651711391620277970391184062472943590532687606773801176210148075448812059778557300266907666927097513263832750645013819120929831406412676686043222853216326453189053187932947758153416133123563558360227251497245030370530219185361206267128047946528143689487534215480663561876923865858091380352160435226534600205607877224676927183392692069970834115623946155139279433113418696970650514909695014117523370969137647810670964814094071097546823700763092623276582467811330901245979321397307219841276281886913511053004311394181254858444313763585220596188794116824143774706106676515093129278306339024448226617394918882898644532651653781346877008115116187326871372386597377811898399187664374276309647217494861663852864250478152798234446453413560530469391442249884750588902642301836406710142686851842719032998528272825320111929160906306078186463448824743232057977138982546380514084676383122550406271453353686404707259316543452753121746686610934067481803130565996656947845290887796505919898486811457003038201660195918908513214632632637677590023267627014163488131349631122393629338359124932422235360466123541947972258286220156522264721496999793717772467020768243920842800846581656593737483802723110850206926112394573798648936660193045704549913571581630576554480377035409941459416279191255717209088188689874779681107630450694215842863443287039969953152140081595716226333690968866114711272880137694417658006481818497837165962923664680125213331306773968085960925537343613128617176666892184056416882332467474846128760488555282644295045881490079586265598224117332077836574239351087155055916850013250155965829356703202008411049685845009550507161671586975666885695551378703215861904739225994047431783716063743646843449996165704225948614366741561829770611150102570324410735484309333480568193645884416608851621737776174946791684600706520118680140979800307999007650904981947764152040810015562176772369751158150536912510896006792055676870604214024111984483442418956878037975185162256182886112169066661427716154235953438032666650755862803073976166049498671106083787065085253741175270156339540085886155639103606274107542833052537111379256781653275149111302403817006653695855164959681722534317989768942904347406690609630952213586022418364646528504548716016785465268043543960200042420175552545907182666993421118053658771359923780212827987001816336153302771828895461835055930404429467123494577524841732787558047969831483996098872407158316707623024364574107247007437772813978087419474642787264938016558441721634658208540968085321577202987894423124346016140959383685066867463683012100886229485402900053757981142676427522168890611077361829604242766008738512965179697303150424936536997354313539554271723231373420097851939063990398940019570191592385488654068497230382172034218808260890945603020811875858103540737094639165068421020646869563419480092536883464817394250524851069234416219234209043328823248766467973900802831071216973469890212742172784885900723438292311592433678659649306576834355817320330175711056135376514874268765020019839352459488477703671092258968455383436803701486493722998061186582439056625398971907651711610901606635715802544532061470177365292508281230397216913645016919049965458393619816347336129648700815696421388129063600350086971655358182846030713831429897556123173108754440181271736714739182872671130550858296935187795099886867888218731290385584382778486139424815089683149007503184494264122363792295366079903160295123506756684411018802064176266840938514966739963210090846675896788498189560862862346747554519501626819646180267124966447014104929034390187229783456976568993448127688313038671708485817149161023180219252583419571490276149056038876858673937713713134458615934277578092924181765255325581832132812109905888607090956008463533595203583286793295246855837883013052073307569296333537636614455391670624797859128016426733561493072969028580956065669197168693398391720711864212716507878085479592279889464429301458916140021835089728237764055874427002709056382268699629084783193276415618515274684864453953323895271909162054187012879184592714597992401579529803725830098547460772093040628040085650621547882950272856334625534569905389505999694187808895682796812052529124004563907865084894232145370537624699610744251188008221470887481723028098498435287306861383018524592324152792178636749282032113207728943577634720705977128160373002674162225623293520220284362362684487305009851109177419455530162965037057136526623313496924452484873781859920962605164972259213974336097903660369772480229180406091673331449185203319993268363709973467454516902884170829685380487594349656485090782629551787947160352625818173369570540617743869334396539947746398838623993957619512572031389917336686708329197806526279006209313766529739368850696133484157628662860626527865544230048472470249548621264460749637754550686311525101283806200027892230649667080699658299724039955488415586470966334179169022717966821151896218398728609840960649557667615931813111314704911934096299206164484702879284318903668209695914158855565083942743110905648207359574740993878282838733550647990405995299075762629210238701029026490838087240337875528541097210106749881370469104658850066392927933281354489704817105586140015998364652622326746704892976307565372835989146704269133139203913426756823112789532159162053215026793527948432946602959072620447825693794853799705821773421931912166621136067900044404886502082628660328271960036726099338444088085895923029464976215480074363507114207595668939896614773790428760603284710782555409804084589005031285591538618891396859093115139404642624950311290214602255056523826800592493734991955036860729533975004073715013572121209496461356134053467225965924411562616876704981562476739599048737378038093559855909635447353338380485002902232177623239814218381864611209708842842008141279124476262335863818822442598795196538753720604463711327073434774630971232663325350629429759798561886446494550012881086874188106096651622580532843138449701467713300935159051930604298003927137446453737969192447087780947350203196378977613796459932584543308657876613050232568961451761407673501625448578257759809822911982507669870415323035376413079113297809362534490749177631841783387254874566184334010195699029450032359714335052432273288795104388306919749178835462020455917941767053968266299865917892324994355146938716345184212626409074387722156191879347170616465287091179094858699031823489361186400847368600166693558210428738560440077879900519137442420267154207816996914055850296994326470960888031559817011194260301965162575362072494559221090214473549512269506492291622508726701379842176809837025872862402377189414323171606646478498938586301579076669218811232582097950391484948631371777520373700237364663366775815716406187467710219301081621833856752848824722346661317403064021914264838448810530685869457287188723467464625209292038634261936884514223912588159254971583012774885506065740698324537869936554747849392640823600124663026404234281427024884815987823558012266804441969591195534550333980804292500902822068354580803626746142946338586571166726858456449361638880557413306516458650206052768899542262884053679803484460552133115887323684592045750239839622987785215290578514733343263669228247455806972733391985770830754937138764089628332842670954795072337985575074554688498720341981421938329983157961770087471859534536052892120789072544712322630191439747478188245053425539604286554838303358855052719368045562652512364708431388268938674474971707514634212153583634322707505363948481032955045062438648049206198202466353360248764680131234981729454304012212005853781422022420452105638013317706246999549273077729417452043040831409564476917312887522805672689629100347584420044017577249020326555140913989470074265056679769148489892357386121965654669768639294721378800819519801810276954652547897638960089113028531429530637482165578086623250608172001217483779030895505294586766047474955426464959718567864353851763802355947694930533560758490370821037837637688049700118232615449133729379262839595651324543924818433819510277665704616658749078401931501490023920005296192381574194698365072671261363757213145411191895167685955441455339221243380542185162615214150921260708686097788217892662793856359323102487252639663846497947131942868677029502293746906158836031422132321503388862206736840864437486538773155777174948199844633011589755485065126740688496072750199477527161501655749273459281021131860960151008181227514194046431602002504776504720477118396118783608667220574575306380486657355090513992193909123475260751609547185908978825105173399786955916478498076859309981562989080192970187751908249286706229873660105150024256175571970301281560853829767897767890126254146424314632456887764152469555210485102478328326814153590154762101309054217631130517897597213101457616908717320518045376092522746521089719969354970389285617071797631965188332501377969241317898988874396953113095524964205442957198301557597569685767261337846913417200178804307840745659009597568154096949613582376145834582743848164301955562793820129848456303627815441899893577122825294759686700219288155055752325714910844994348496506753291197384454847014021969553866898502898453654610718378345831814168113101913487668390006619870041056148789133591940034663708598172913504143317546946075217900137689193509588268712700918845185242596744911005904647062835292351029882233666698766991566852573743568400462104080556172705676163023936044971036819136984442808797232262085932308047997530894562619867823249637159738605859059036574085100914375606368538556287757741103282331006148734770327678434930768787348073019974053998322554216123316922305132840333514989712370482133347967312542202520948708657164839275143059572741191702539268612981797353011051818973070304150576905806834462467238677328860507684093930951696901350557056089805670931132389340192627702272115277159770432165103439766677328129090538375433317792995115473031347914517830607731351526056354149953642343757388426607504509952912143436326686280044061833757662517268908019380273285371149549873196163580207825852487560895452497006849003154589248776273789591801154243030791789263424386004786189295887809559521219771710234549693358310818922636873461245694798264529243442632111997748644760836003390047679803611922930613008121879965850226082313883270600402744965313991451323870561910220601478541508151433000535380955056320742839436442041102174622558773483097398224605266174469479899411365910103181486211415760123218666175610331039432472240879260920567518535207271100772161581068287668864786404569401518615137770514764767096750580429736528231461910837364859803854948904716938731040164351769704246503775449632004868805011566070226374473123331556928750295912779554262480503342569021722772364596514934752152500351238205567986756031922941656707494632357006117243469916160199750027649615040140453052888424246099308049476822290065743483063151238297428601939129431845190579654871315160542611042264548168144078659812706302381928026005774167936794689198195374528041538651467852913347809908232266325047263860228885244099657697915200822521381404994996280821945931685338577144175064537864657509371501212801584438853617893414521408256257044231849730039241240230149024464710717041625895068689692225722846466503300682988937066249931518165668383896887621662182785967316421615326255061728840902476258699429903014456931188238568489035190434041806118186715189254927189002941605052158820138303936730362746737792997316904071508957287387920651030675815324579031328968487995029785748206584438984631174694694846225693326510802136762048178915275863975721687828476354536279345903397218620767874132649887642276555272099414728368162193584884669932445168482034017619303530962906852088784553477480100234940013260089545006780023470121217471890630196669944829281380041318117235306258175849032035332272905116674435207021691638697806797828536607661901942163077374745813183717720200257915586201638108998887378915574538425524096892480525650073889395416576859326733156427991612281809366555884723811656874301156949760116440776476301486306395373523235071648741800528521868329014245805037294778446910584901967812496956503043473627199848134239711023964559983051877554240895297288772949229235365990676101385398093900911948796124504298347570704229234412053112961886312128161787575686474770179128674876116847894489661491746007275424916450786752560498833889399681390608532499503794381840321194023345673593168016581138061030205824301083760193455814361609080563707386889087170600353938175236959040775877266693596912659796166565373917787248663628085203703178453332003291237642232369091771490487936154222897637608937695088329379027226786163319898461681371592685529086518797684094951230773230308068021573239919436430083749388146119464594515006854308886456626996518569039963368044119772580377740935654095325281719047022584053119943743054873042350978488561722512073149654928000891430259064062428564495475187926792945808051642028957995471492502753980535165688958556271988099035486117333077465210455846498048601786651435500973934577386955586970407804619504644267029427237789051893905230447264456336381974234497714033140126232330149484705144037911310243666560545170518444070809931468460645604465901801760468131034857396526329340214845479273876602687602867603949599225473686135297034744366679238853126557867942766787755435797355978159736450145998924162000219674671023357023608584691029654737549139135332700006476670723658844742705849470033867811744980469473102284248287579093917069792892685781821847486550402967771571955623913251285069303705667871970095092384443474755063486381726184759029685689383705483942647873287070116289314700611578141315596803535364452574134914749828376276633280487413194244489400377799404524467687922940345159270720635549183402936693239917652727498841683953720309556007960419484341416287138850117282831231369954267098076428773750689132001069143153520636036979558557839982605040845817751799521931018707408047926182594863308888034849455454311148071967930851608751903437447033345380916870422206022574990513198573809850390151296367310387758515172515057260769292488319372624492441537967162446832452048127557404574035911333468552252494931805112042136105853554645251543162845743180443027572099055498688730123136089494390459071697186888382818767238260430627182919810173081692027746713615282823776492957120953100655449764853242690957921011609265647709807443175716666397179061725008763900067054453397432629904472241002052912771544325767477715240161359416241946943590493963542907502491131215982152407766980979608848878145316669798976766891072815365302600150577019387278635381105967165367557979334685683109202444001981450880916694701406527807209755710713228386064669884004632979928532041597395015810750309485739755100624812581617941657192679629477706889823083481052960400756636092918478495687620251438597121828579787333772692161783570939451909189060636605841386775014444286118394602258995779617420673442265815500378974195440710800437405297428476656738882127216767788682779496447243214336853178422431249477760202838194347579150289668174428229623552553305324483602426743838291541417716549445665891327140601006591135198474226303088665908439849415766746254800060842497756215427188133114953879340706326316323368801425813506120434545715651755953147253539342825737782893910898625257579317784337410429826824565044476723111004184764469508852039914110640676956442864032772826050662425317991694378464871015006700299883221139044997263037458996856585219653191824221814021341048917548961611183804400848027832298109228114767818605687843761891786516101743635098744067026370396383913381550761705601680542499244825785439622921848795291611954776388305553075295990137454519249002843525372671912767472897960470946460367875643553627604488804893274245713078614053073103464132525097497627212016847909734587966080613746660484379156735366704063340884855353102161163996265808230077278201699097384744773387828021356131192775579870003323903615557020239179275703826328476254449299751810417960422031106697697245556251208897412298145969815388378113441663822452229588612855727937198769052069927207470331969068904762894513535570937626435050060778865615693325871885408891358204069228722679816908604839639163422769578309176950370142008416881574378840226683424701618032497430396621702889556421055900352566728003522395689477680525761915981887723855365322779756436892845705624777878185746358018442864852563202737678000717883884826025571440479725797595412764949207099682977350131603243945984179781426508307217055869549629255874783123793807335211690142398689986124411724324069987386416062505944696298409274115013122720796323880266865314002062854349507544855374872703517010629461666041614780599235168905759755893003411883030228756538311835959757114181687772074887787533812928875300937496800837720774683106512552030146688868103753379749499268837388164333078772638334876808379178531303277417392743669553023623780401510644516033872596808427195763766115083396334701787968015360815560050784259132896355704961490935975316413620322748066435772373671152427551895848808131699741912587651783007514537522158412613124491026084853247482862255374720053717364193147269110940255433303829153913561033182669833656928313808088367847586401148697497408740096954729745017160715709113100818547655929867607267666773784741935223095484789485322702246837770667794710471938719757962749503240866163063475156082077402413466766298344890404829784804405383466446776920832805647133507873159275964126770080274529063403111596644339361513581524554826890782098883498611801176289238882267501154675405895997340353714532469230715261328763254415396288361948894230826211903744676728370616768778438374258500098102882610150206058170595072808550713863027404263449259309509340483762827728728397074151415504603214818494636337952350017299521691822883779284258453115587382390931245057036518197774414154845136771755038082871707332785825661226558671347738701965463938459694552959574295839661471105118670905115582933377144763757155022809472265306680162966119879488705215564145827620643858733981613248925942704880628003689945177688516342786358562919730331935871418495393740976040918663458920177836360810046045109868916252022792284480744301757673841732418582777373416719010294444080204818017302188572560850327274321395835385991629622829008014080101202614391439568009049209857202958529741390968571360729729222918667306432600452139893108474106914089209663421386246314227236572040530115610841869715419552800261898764779378505413516242333898712708882362353716546275566677151677911521484557919830644902075573965308575570418558789026976952914016235227812315482353073513918974884996562127122557934689711618668648468497451430044909783971968577705055814420347123049043562771925434436624488614891369416661030306641949895099581894441106128077101765737475149650890926846450395806164339734691166837771451535474938648675375599661897070623445700398756685065283337979320784690104566498478837335596063642981711410730660124285412972771801973936651518114719985757667114976765807209566017480151625820234415715989022967432394957310917448249525203062718854247207662545068337748473312196463818521899708294026809883921215559631660040638459024949600227504274324622374392206518701549360676860971858776293177547782573846673345828225519638021207662909508481311447868468052039993577175797145742036940296648329859391470372104750703775923526111055043775669634548297798293467057036361245064212944835309252317706466862162885268789959049357673197383364502317880327037728880817954132586364757631061894523171553998695716713779631453193862616265845691816749421128190705506417140180114346255754500249111377805003804768040628328806170411954562119504930445598867633938512177834862135460994526830109714754553674569315712580044156531657869033732108582830386417186979331089239146357523131717008269212246315095763180398880838101411542499205366726095339206792376422258470817108406502541573250298015213515501188526099498208258431684900779316415203468835860454866473846755596738796407416763347633458871631730876464963395698934018244886178190285491229846315340318823904727305340089413768823628588599456642803192613987882070444479608875450278544056182472704380465129689703528932294531621336695439051289366253125275207099353364324971900763747698674393866616428930113726314323111609759086335310679909074840935363735357404968656567859446718256789100016140494120864710977839774169836651256157779946938208699590658871186553292221461279134594675767256062414166139880500633922489873169947567384781124889152157227605792331900272347547094231305529062160877824748394338034115993080252298282712702187182647253736137980742883522563262573939700683863102838383046579649567981682878579872157540344539921347654913494632589319790924077421363527754375141581902812841422519777193451692985042959149058491215362703924569320786991117568071904720556997533744996133962633857422108343593723730673385262432194495042668924367048147231455332926558667386674885824700039520752229161181631894831418215029509438112440137731538492351458161723289901259947903652778631941096678198589008251777199064160332476440927445974054819557745688687464209465760810793043128341477622176441661067439922778766773958420773323382285180039643150327165386409105541539460109139006382823365268407501064726539809319106389353306415382279876428782578051894031274645114306809353156712548941511220648315981461481928589536681653434895861625811206635992184718507690152263264922333290113152915441717828395166282464325749541905992729486563998114881672842931054599706304737506596142144849828679667367076032437475892117261319498197181189162075774254554682286299424823866534543754860483450296712332336124241036669189878635595970846437136815190019674691264456985149585774325825978752707594314126406345813662775237918394667948690672893443564393955355237235683839674142703272814413768508381250509693762488618057158794447690057019109275677022525674060392224394704103827025490026993980924146195808039380508079398767960921195728927092656305166964706869836598280222067795824767556950612319227699269500060402541026245527001570769499105637162426729007353756068837811483131581165618510077449506155915156460025066519708297769057994775280409795262992383311577719422272410852241922437884216109682403546956246346861492322842508165401008581527788736716373597790292863072712532297835275634408524455857735410952641912932557098048518399994174074751213745689459776203798707720333130585534106720557425925196907477306409698042219467953449862774297157652311609081088772586593734744574468595786019521295256555646801175178681885092322933615631617850086994560864230177822752134815601825504878494878828813404997690821477359560807852409286245289194771392554799386020564281727907402568602941033716009624557740557123780642720110136474884594015534928981076253365063151336224699216855559807039478407444199168248305667805815063586134970241316035795706215335553972346080653610980425623633799293313910948001564477407838115958160542566415449363924467503674436472949817322709313261289158146780282066731501805802765024058753688163156934372046531635599908124535853787527679690439769237726686798734586959528776886714873354432956504823513305260654858069406426036942633910925703511974456377896546186998277940604492091969353577176977165612198919562366066825553855626914044753051810018509346696490460038743214576879796147287047706063464600384759855939033901578628447116224086229974553604377902443492216332967584143069365030925617319732948891576913931246409939362792955514935496384354980478984945190497507952733628477925356867728196130926706842753873556307804835699747653585528081780651133540683776994881514740046958386876133435898833848369846314712183628600705685753240882802350724583801609897969872321206063223467797248317023777609717001613389370820444562966223159566790168463543218249230013998721343974660893947561586694486762584128191644117071407329848777052966442281696754263507954543415086186605169911966177149597621029495132534286967251721481606155098936532366180289964320555137417904582479213746715376390370488653349704421647318175483874030006982875693156543567441895023852068671860246840485369930939835329560671320622256505932237644320298572196531210957989278994342416551062745192510650419687658077733236412052945176861145239983270432424946380305020941398174462615603328265257538505144066691567565682621096610353196362813201628721567941962202830596577633529918487939009365901445478463505699073852499876123273485690733610359685090739029671828000293583611196699108014746634722337614342035782004159720368946834645193974965539336578326651336584293114527108281964431445944671997630067818430286418202897758177373084410483810626395899819780793896218229351105742875058021046837408519641750043717118651028890908226475572204107474581049687610233297119681702962965260985230389475766006418837895411037725782327872841554318171185495665727163914667064018770569107258382460762011775950867105906925817468633861951599959316318234995500205146215509142081345199073426727267211387095448833759319915669576574943410698885924569053850415868711551576726891291391974241235814899576763440756717512234814434176434782713719740417258772069657215696882067639102744741667931465294977816939355022547487739852573086137611066556896290537344731875822833285784533113004372213609090318375117629300182446779315942270889502775532367310791914641513363997700326899702089425617227405885635933526886375748951070434127811802259236271889235403836296307074328123072496704827835060427896444567974671558244373348255698506425782311847455930544516374413900456637450042615369179155809606789624599588274853461840983307358446594285883750177021746191959166632196435221128610701455296879264108472678303677012097389430347026015716958457525601886637574975444413543671668946811149469458010070577408003061381849411176886602898493327643139932573674319644412864970717621737515875720585901633705661336826857490653544002214767043550609327607156560558414467426803741897184174365916532206628698725779210696939528201590961799813354228685949158572092041011294645419780708122265261040300113075738223427339772919649762067650796547588436500008923773718694100039022233639799881574924534632577682375817721180976703596489939268394956949296264409965456573013063064016344916202802660004683510226671851212710250783583017560516331870138858720897903758891681740662559405408778007808010383228537410414272898774441984241475657715815741982953252041954726380680776449160403738707538705654712085861132945727048581621262126883153058451299007755824508600530320702022346547946407884445105378553985860558253309457482377827136105995054820618638422238500759099311788213346522575111206235049691065606957728350066359198187393811739467000627552901318307263284918390799599523472187226881062198632732177365156868582706052311711433845519801732198102175986855186322158659112078458672609340095299463468914093472113675490471609453667836343890304092951085130639375573586333767577343526915963314033106844445772642940892805756484329945821139483347175246559972382107763920102821586161388018137041232226591585284573873851349578384629613284373243382816805216458327466001436591426098887175245974400731921611204351168511030161599738840453567935452097093850401967236525716443604668130523129201956787413804139058850221130334240489951031033640174894812378865863812231615024993578293800853658189895450995219389232540006223708714851510988479487457366103995646035767528214909965187000051982435000982910171071392298691579133153602636560552704499901373174454241061855648379042430869783276034850613485100378317914915337711034619545523330472259386859584814854498581433761742526751662577092269928107504537881167309509570312581983801566001941857519248041491074956569042186258228442721522247429383434157455468933641010245259935956993460243466290524994618354204032983746913565916350111397336295023117660737243822942863642542448042901596787556948944196032187365071013192541027431675926941496969609203380416178490191086731639583657873131286418952105474493838441954408034339400480263776230135036167848186443447392841074956936569900543883248003778763371817484027352713086942089886167634915997261292218333573513046483883112197696989632704052101845103919018196751998700316174385730250147628328483560061794907868479974665346061903555532344270061819238162930903539424803275889031227733894675098946719732693885043942055150790051535957440639191475035155597279874312771628856116680946307659196421011508652475878462125759108249349058611152563197755916163330885454283910080533962491882670850655308975748162071216173894147858276934742611036208769584409959366225776462039994506980395300099985221189591159696583146173806027851842730442052861400911367815690828071979361483335823381593927114898545238549323098382809739256143849940564143450407801302929756307288840158053347731943642308255059599602060550567651512308837740428013117812649270110150027615028796257191289058157264820491756346756628250877477316095145168388237443138435452973710269856252255358488060653733527008398426416397831373152081853946905712313608469237044783552267755693974696908474585610081950030068930463359472452434454319758505502630968863304050736040250743137713659175094503471054791272553358480056398981008226889556296553797905776365662451465327920583261209430728006921104209924975414659773987730454475025329274612301822596000248845461382434187024119764988852908346087319755600580045872027580001134456804737718068415113043032825992967076381693781262133599795366793124922743096123009280647175794905674256971923833251425977381061579559428771185476732623005696174914023329805544247705593989911965453373336578143566146991301547788490311985830229572908290947473447395915488082997363626263429472087482266624287939705497133903802195906578601690195981955571504802482585398555587621204607227151755381527620128637477413843038959161295773801040901303105925564848931488274875522568567193272932866535915341026948340972505173623127246706685686246304714628785813876417664446725970646470166101154073872178054227113713819765611653266424855102049909542208365033592280564707809534789062516457214837496314784426098082566777722493809313088001457634928984381469993692156877613752213053423701939796727573007570744976162113677557140465804073137742125053109054475729433180373570305278172440691959232812272899443134936405590061934751695660291103247232635997080754019187816470996164710397263235028071204156313062678653461232003301918191070463780426356345288022825335396299204511931897762974978771123569325765903836088410000931427861535193617157420779782218352577760332319006025220398327810693984252989259014267195469438193158029745190086321499171014224997113651266832192953443226314284104201828969253667839053724621454282589062348634941183904634545728042633504213029993231727235531632891825059475557340605057118981062438259080083357231863549119513498950034455773980913761720639663406718215218533911281747076431581174164577670174906351343280465302456593800920865180774572986361819816086645080581973861064272205461270415693642614778311347602568057140834891499607309980541182358961652284372038387049781679720746458349758809900463424016778458152831902164532595907571245538706620273616294760313808012320835528736913650099418799959624066208861284537601032413683524824846011182930885048076649089227069762503510458465421238126469319260182659325981539204727408847858198945965018443531337409945548465780558108637697034832248388139134395315237599873319501268949489861637946930948072555978253591437052766150779081182393199524430243989236759323424120842712795250082941390815917497608524843500629508033854397454819222127890240198398870601391710863204615738732930456673630532873675055235981643911162401236979239428523139321219391057651123788365334498361191922906834917390320061161663119566403180589796818813337015516266078225899830847965218939777552258360047380635334260171782226015773642156079822530145304321273718973627736838082949153285328742153199966226222489907637222077214433095126412571110744801291558153909985186748665065857882654324976192540279816165793601747028263299906472594175665469466998236181208832318299829403847794409422844074347446080409005237304258175295965181624527617105260332681649413085492252555003854840110400410962247807769756296980626363478606888120639876922960625544376875866338571679528253996834359024203119299292305290187857414325262582342624734931254027643568869880952941490090474428351335599707945271576881168574969509709525065344378128625328696410805738262060123078598779420030918785880373263248983269917197033064264049191145093154114588524353011805988474984165830158263045710532910867972194466698412460624407755738472493933183136372146268139362604651211026930372480855206727328365837099396935541561062921222960212728969004457237847625033036762838054201472662161632420120960973584583517228884280267433658850034196541282770774355687802961088466139888838721981225918550041409465723925114987272396515171786463960931162063918214940956938281052896373352957298786881216250442992314044531335457929170265060472275501293188901703382340207307834019011180356679061075949191364162230155624142732694971001650223217028512917592568536079647891656317241735519771024793873924058430339022011239995983657106135177341542603082309003569428247144049399389796752243112238410714668625348265304168921635414388115372992402709119018701092039676915698996475702221663439496821559704018612612162497823194018056055151704831012683803622733977172555399150063380203424468141844778720228137538183975135307508304889980818939884130334667852629838513647310465870869559646645360790688736905262494537872384499912127518599648448826737641944726828091643298184223334556353599663731527475505088589105439336582436754569482963638233107569296286901062632411922593093964608121537464515959547786677897675201038348036320643386325230637914563953160377406629570958903145171929646506290777021859968448463697572909128479550661239781062948455258919550727567611035509364059783990338452753596300496758689422366182677730129655128425182113345558638365696829707975686672602052436798632651656450556591741219049342602065860919093480674896032396248259184375766990950435778984085733493158426579495453660203158477215299387762518422558902160052808369056831423239459988871761431658903272839441228008989390574682735751088074197886894817405158623915669221841391059098678751354774336310993822648050769389181173227664163009905560767053068064530874423435759146993535748301554254157301370017073378350862805726068817379441008538460987490526017202343937457478312766964610379551392163775616013971602144997342529559512552475654120442182397805992618351306353001305008131879251737371263674596853948243646128391042669000218244312146108277481418103524371030250603775947087448449237317322398922702931939279931736792776896382207326876409418781582735795491320850532047297356811868920912260345779904605192351815516438198617159589700629985465625101807606297348759383474258156754718131456225077915338499537366583900604170845521903418890561229063329876704454372830886167415592998695895207615878429943572867833055358254463838611203914411479846149070138383967704884022171097164348574727766782083854697250248823281892498561084821581589706677493391000197608424257132090941249493849817900999535928233944682734485978853680696584281942471561322879561288763436033389401691434553732433869013724697547059305470381148220498965913795543317863240724182917700369174291515625639934657655121997829803507735765689644590249388961134193531216501290647965245877728799936045907990636035544071501757551244991534427344342104579565267994749011620634322889972669664706558945828850008332580653718536056455370054263815537719412540615609126110732178631479382440914241904489847590610804109468516930776231845713704073646099436644110721755057355000279077289835126452241934364260111986899253444212982427995746129866239515187008257846275727554063381463883240786046445273230458305665438002441801444273601920828223429780979942954785241692607205082668703512293665953482125879916359786733442542852639283254604086067010958087949249633766168230837434583045160197496403612873818219055840758075748515102719130071476505994046999820240268214372342903407308435747265024287866854869011022274664796085757683211851419666457409661160757776512059309655941584327200069107369954500470596033723611674090859414309321153868979776643987599852440391898442329824441841793495827458853492847003384361062262173135341859310057767371376295853881026293933789534607381877242520315944264384167911586891760773293245962954806029228370467358168528722540179648777918009333862731461264027573759094296672383031527268221943207363016511352072988679351832534120960817466716992804245408373857281417193642186029269793832147497012433885618498611221530171793005363156160245234441190190952141749522732122692304090768996245933163965482310652097410637127188852432344949147348120114705496766772916849849295092004490226945963671636160192922489330119872966153499172243502481368261479258151416346248596033100927135108353637906527637189289485953995817666645394247174952028109071377025804921301220074196869255403370713137450600895383238666132740378607387461340690911301171140586203152061479826196645161765731351247552845014212958360499804053222446852195396264082369453264591195008121391581434001428746752694728698407510703624473956617809649918518854646639220306302651616551463937615378329818821075825116586564171633701935681385793237186333411603626534920051760395523410857782398379210552121362162570975849098672836302200762940724537843168704257697809985049028644961057249115819623267564343749855660028698760164192442870122171358946975263379657428654275459414857632795432989134207683120443795278908227830112276209777505399621815987525980814826713401587418386901383941565377158719029119025840150855054215019853977134313756383489484334948050486302342349258648998371861887652182070964649989050095603673075481955251144986787337960488367430691052390163606242430699249334669154899100970316943672311189380570869209542690137761202607016364099846687389503680915346884064723668087182214541706937479594380956178007077179441628355703899511925216848577924804094820161678836284163192945167166852996482578842500477441613698133496590112692136893878925043034960634081512035956027936784937673786101450194050610358407434829258774553250818629304880379697615741041280766278216644364698023780174833651823433577467356686045475433871728490564457900675624253226053892009121690918554650787200767602599522222680525449330184819181783761395381429874003181331427716928977886858559971173999188048574819454679904020354248841003866471694428272809396231810341332278555188094235396595279201320365743639938862678478713169227536440571319394719253248201103067423625029722509688037383853283358576084221403210484397465070611912190605531950055725208441383461304898625985933047893882377964555167755710001000060064911688783505412982205848989861688358601995839498061405008645725949348169555342231210278629932295165053652885036653230147516104976174912449636909019950842706687876984962300217690540084328010291124526943015714438077643906864343322906016671797577952942102520701181635851335959097988126575926809758005745130185677424808289022762235563101472191597233800011934192699502621553669714594792073456220220585840376784198849222041193562471380560255800345603789167346747961607922918033095668541016041472892356422525489405097529574749692657684056998773418523613731478309692277847167770535162869521216146422296079559356777584510718766648231259140337275399685284563979915695471881337092955539586901612174236377639751550488330749044363714952555415612824042767928090591340621700902384077149459013988986078905684796710619509823684477305607777213319411778484272963858523325870137560608373650735123995320894929851178043913804469071791435072185473346448408277947845861640976958357754584161083374858757201756794762928428309317641521851030096929286139470383267761340810707291497742781611854020092682671269307869160604003413412622477339286670837851751244945859090218849837361753648370861726583741841685829221570084014969207110030656232257610023659906663691173335083710994740206849174884817615376594024059597036829803155832274084021085888368628267973265670537280500154381158830453078314113485316814471465902801956129231699406004553961514225157376730510561118398010325305183591881531531905497633355390243641300356551579655096200969719320684913720709829855498391034440662554462996364123836153774514314797053524265387286210820483839570189575788701342348018445355010834409256583526209961223290286530683156814571571644028635229604067501544025043423505479791189053293115956229517951262571127271607008248051123224154878729483909690978769219362099575871021167199456579669741674798466696531580599963823494901978846124286359673050847912641542592853874486524775746106723238535180174495552427803668287025808057292372499712862984522707796001432499263219815056893207928926712928497279894207951557304399129270628343450399031784215782398225538144350146031039143981139545459053002580886839342885065506692099109626037021855652020495704537544873260307793721352908849550436416814481823496550371984272090838121986854295659378582260962681963495660365965340088395012189379812040761713742174699386318916141121418323288206257522346212231947587358150295402873308552787271653296709412829428051002916362972702120156795661232681130098769827493071475405001083392820431712328180652787583788997386259408865708383424925634060842582581139324007433749897078576359050245694822329641538264085753464020847127874148852995226517764953489160447115490183187789603758786689643098675274466903043216896893458386843315931761642730897032956348208314778641564803875623723498946622375729950087614227751560982004118137038567965782014866657757089204708138773148335603535691378557906070825083861316123032504910093612130297557693817039829788641682134894945442845529182198836118126749192407597336194218522724507623656900442977701346729420803414819217350078528901090422435304351154560968712720670595702487287849657158950696611615564460716491167065565558117940310489145643128410257068233834752248234909704020086193791255986601368492868208822847007920204418889751724208144578647834600773721138187116268057283033566746305301100432381975041877405935807155535377861631409827810513005520248517344179750176675647032873501860145971984015977275355180519061848810077357948674320071731618679618649528418281951819022912534666874854043703815557051491650756798153535818874782807133759953299423072641883256032074990793829264885551973653234271714704949608440145305805702924991926969210737706827262741182852055681291249213919096525491443126083317826640466605843341597146033016922763614428195996925255264088174434840323776143106579646199080558831465514268325227329553839694845715517468291570036675629212212998233269449268787806357818458596039240274300396931709349832756392799952259789132919827864890895261573193134669353979300064631689812670490425765175210136555930680725447690258140816127742549327253936700015966103767674331600971343877350167365449771371785282368148011522136187560451077191245722241049078669978810615505911575674321355133638576306670821047891737608906247215121601896343076545466974041750899054533243063988637828278861367049689118149237210313931409713506528785529302532160948850386719356090206325402748063385360603858922396413455637514900336086150639354372952856670685883854496641058245420528435353942995752490799972111061338218869942869877910668958638628897399338359390089344406921976400855643354379506938193982363824769198979777155153740488262040143222859436762132668038950381679970159598637987407972194194254256870406875190746311767819937861422038922981135354185471399440696808712473481721768389976891416360404719670705579099403868644212192524900647175151702723472712679647645465945498098227198624367492897001646031144582593503055307686327378252029104305412386896766772499329360637792227692276440834371835438758117576356593068438791710486112492952348814650428477751813467043093894571799559354564973257365848707030596350642491148623287797514252760807586439592618340663440998163855863581272285594784232994348080989264102788645315816668028747491542187665363418677491919627645225822014604678318475622440425929498339282787801818332549638892354008544088004424897878266477286626057824197424677878400310181634428960070355814934675019731118389436340963532748122475365191780383103129408429435035739318875595739999782012207258260953499782141507944382480210243112887192196203955211872410484527153795208108667162988776447973883816606191240222364942570098425178385317313022356453395328798562545786066306361208583387603023486125095889612809172420877873662985038298364354898613947443915601417918939608410917494574458543203389594954245314020928661002878901153891609769780982200782128030655958459815653192049060113869725400274650757863522870608480918980463761596861805655138356567983005903009931495895450212784710631714457044974445131292687932805188216856403940586881593873357276257616216967621768256463289752866508355430938304354813355632894109931908584897171000288185600374359201426011832849883468636384946373012587947352670807007831393710762321852066993266869672935576626344876833113747461710919971666362818456813714652515460879862047311339508745758368019009782426314226721409851647891357508709193758217275493267452044841877700829884812588476954073737792080314397201910020511755512359264805547248849903964821561100026766088392728504433744364540132974615609770121527281142620136387297058948369552985551582994736717262067200785383502848215616073584689039681020661476427816018332545731070354973776596698465517799231031063587457140498724082204566597842059467243896364031230626449176105041882133889927559748402899754574622199141782317515606392967539204530690215658356028396229930662965134087724975890129601013845587472554791920743393704722610474855007151611250818212666268602216370725782937755545204083871665679958885156010517700474418006966011945687061163576785920583583022167356495478157478481077934027693500225386735217366499937387011325839979205416432319759194367547880130782999468597603807153098975763369863707921491382816203944932162998017363289533369711414465157638908936851333926495103503490528190322761007317324176918968638296357647939306367353166443478967203814040252442730901165500129483497141731927765240865933139366993466568159555718454441325432820537168697613697214616885280810645582597592135687863871239619895672877782103136638514971094162004712538671918555250697541884536200841385554857252020728736496553610285400392460017576983289372608167998084491710998473472318698151944489237894871159974516910455359593131691821139223867113085973877704699216643366336890058213961372893588627787260590768150816330137167480612258675095189279610577980991555571439956460566018713284108163431158907160713624345359400071540798284341468381401426889915784461294261193949370479266135211729774456843810168980551203108949505579822195937817276479222803096932664710123313724524700973753497812549871281970785662501211998323819429815540823398202784428351760747974033802013428791491584930212818005268606338054624930706340712285645979690525594605217860850068514081433697924481771489697249980151796431357994486412221466902087282412102865925027721020480966654210394630245785968989116289322240532428856536450507526539552190257706533064714833488122062838028897353620146829584104922912600897576877811988705780077415732909363972026612059858402572357499232200849380422649332153553598288629809948833494650517347818105689857978156377712749845121228671566066784247588107630593703050230438137531996513002740073026600093748538668133671907314800799301044701923007318007715006951626608251463169387643492778024904261460457703979000432846316387875023676444953987259642677142486217819361894360986664647886685684722999931588562711854664807543253158859951250393170591319899119549575537144537211797264308384362561138995618861247623819473798501524065769307671667255218369869227628120975024652223643595708655395356558943727889270298459603215350379185597913970891577078792209373081972339296647587946219644873230479961106010534289587047719299357716706928365602060449660169805744355703819834842206134566450734167428765547226482391025623129556976082023158161643513888447671767805437917514555634007049348658431778080073563096292406841351517175063490133997188577887696751850192597977062016507718538508783634497189143052505141134646827603741053555848936350567955851030862875050609955460490132403307711587353399662540742418907929482698607907506476524380522108804466772470129560585364901502145229359726875161247224562409805024015160914320910245936393664566266863901948884857943386347500905833313585016038420176710178283305046318151836754417173641644425772738659550026166273158814108544923023566343753333037632150637972028359915405195060868321889812446745737739975558067276649525447178355537986532007909633741720117626532276957559598042533282610562955108649583547863334746752314446252620875066035887291471336185077337652501896121490506579019871710977340387924967332422188122826545606681664439976881689035711707216644486243770881040529674721679002434667847044360926514931531813814249494493393062388522620932274044718545585502323050846882719746295596781624501269269041957258949327696049299098540150976674761810211079920407397336611795113256414669039782748775679264930912488788164043370277425659351691126959355984909766155040878455339363129216830776378518111080463185635422655061350384943149816492286699463192640487710176729494354098157998266805235067163919645879523655241190454877401362239421646083386597453100890851069118630197040669083728766419999871756688070849061053424337079750600968770721942183629951678141974056360881012717902456956820947351358879194220361303817806992946211483790437312859521401621900400731222109999349473015032638668894965560817033415067182505221139860361876136962734704746142850231385516012648310895544919946360139157634736507374946778803338607608850116625134551548033185059810286418605284575558658754652307969537676642770466943878307243104054218385508059244570182717995193786406688121705680087171429388671680033496666116313466996152288175848949672279314112646085491491215627760792387654712516656172232072071153373213882270961851478091294956081448677142211201201121200703427883446172879856558411683367440812640267021581592912652900416469112503746451591697244206682954423248543122439678289294197723611381761012989952158581776736418135817577557900183951414712912466790024714265020907423127188189126247221067216524547804872519926029304147708050825642019556168975189979901618771212593401531711096728739624486612773720379807093515390288961565570561196485080592091010561921102025557080008683945426536070144313403441047359357125092926339199854886144264984598953472856867423534088773351251044068775692737944013145792256720021474961362719157984349251965229618329295350588040866779222164409225645529508815447533340751936603045132546414437336486848236489081811476291328145098458926495644522039013168874852248596071840158421942164011060602756973438197178900300054563465755578780319546929675777213296214089794306993017619888953716804018033378428111438587692141505262247506800228760603498657981088713819099252572140057877865001670585017823399347810773000393616041209936118444302107335721086799356108537528421737857641214394329485247050475696335351917787382003500834358938191983435368552335428171198478966439822386874414981187000164393357842612604255129533930822552778398301980590668368594887594959706311687580819614591107718364197098821618656004522455244230098384507261740438085845710039209626417257454395319220960878102284261100139200011857928110107079728815651102433584487440212611872600305642180658278671190484904742508466185346015036660417606523583105453313982453227982835132208516068265882018966496406866039930224744770138775931013537303668796966277146410387487806236328352215020517174746835444502552941680194066119679151686838440654433298042376005178022215544406256463376856231095468922020363076012819865530236615877229823431821897077651730542824512255594970407778627444405202956957142700487729151678410709826203921354155799360235742255259122139796982131742412464349349312990887636166804947351297239110018212035486120120339224417927134837845663784991455969159899965540222614617907031753678211934596749588853277378107881369623875570521838659324412984429694904292755893439368831660709089735811769586236990008559489336168396935712850159304408169025311386186571046190083287087657849648772547913582276125211857676126572644095597005369643832367242869445881260273298883196949952802658959763451591698962564214223681529468412067853946564399343868302871501157570651257007084618311058509324959725070879926521916612764738405491699912796791037831278564466975371502575297474818267510509952031072982310174326341594605720889236144282873468108405494974872467107832703857403923040420533284274674639144700022738767412838320359808380109175403512590487734090582344025572705567106117646323560339525917694504099072571861977852614161388426760669800592791628082504821629857503823432611082383676752537437538303549850222559785719287413582125018400370289768391919631600244219628053765071424106348128721761281904282395580834224931973349147416581808103846526765078226801363334743310887937761961433336716928489579752730607268995548840379508768056051923157679007345885017587831129320073002971000329822875661528597815086346503813050018485519682120561617934468319983383147220712453245214383729912266468609218759614260598245389522660544769492253571892415675282735618904796295579621306521640388826444228462912611397603924410146772162123249583889338743022036006235724183570312253729784875367773388497644435964612339897141795785103918176512650693133031164457601276797294170541829444049755930233010901505417315379934156860959643582219602374911439929908861061280775620963658536672927380924709483636068567266614831972479207546238759965478591055500146050663642430492345108814265968481814467943126666035337493359930599853964968566471168439579861812044311017409951492896564568517796383753330748868436247982752276255181587359505890931960317185284773234178357666972585892305529463332800977208768864173501979208789386830557423735504130554054707288981768476019270274529343802025247121182184976884914224645677441940815771436275346981316649309690573360258984736431050594565456721861519144921663118003701888515889829667364335814721677422733254844086248233106425944645902561196087787784833969559951524250961473077504168428325407145003698006877319388355955745726693984265128499960724940361177140542990990822517434562107519434933953625982427255565938568671841343728217217913535280094409296063462861161371074059810036214693350697858128358379193394259798643830987111758562871627297312256236627016652379793710567152627751682134293319916061554394643877638006900581676489424269757766978903536589929513227243311057136789829573516125016474198561716129807374609756050975564708501652023152049541399315617867698667961401572153705258545877556037378114948248669283813742607601480044746703091926619469104359894930719965954593192582060747435456934093649770787251168378275845248918502077619456356928789352233229466118789252071949370279093842393506914146318408856743169622181389171116536652973313589980031097689541877992202925483052713811464122839066223569354526529499723749534534940274336157962990039628252981634306723201792527445804079690007519460516884487544802362326434161696556477812616670710500100904703176786125725757112693887947335205933369908047320659059206314248187539422299572096141362883697287679741778024936752218237560028049238143300594082287779737581034403562575566953867378664589207431989867286724973641714035326441388007665657497598371014298731801281604343046608854976116225648057908037226046703584295715528862139871099060656462474792206790396960602303762875063050407518852463903565222734387026356511484617777903712331317487393098234506337121551941340695519929402747463389362961575296868789624152537131918108800080283888816658634780916603006892661015997396660832207554554146162158114731509106845902285408999316131896990085312432828649974276085499191286528229271508730085071157454707336216811683954663814099357998717067608526344649711136151847928623726766235926526056603115301921882468051572385193852378150230038162628627982314951958449388610367214165934605738610869249999387928186928166557724532849600781827181362667527199142385830972758556688091239271257723814077100723477529824538330492854538718911767686427327315103375095001792038232046308423316790642330537894632535941868532082727404233955206806198781849055434806581913892595059679163916366403339656798268144228394238239310339982541640199044288038158523500012162552226723933988629163073728858551504772786750234770943140521314421355043562228547925604772705765682223874116450886513346962138585346147493439444529579174696338768202083056617055214145109371401346124377497768095278140168100529405588132250544282088048687249370760727269764701483710904792666867440187352781246340212117992729744341477284989730845327860397837271775425127154961039452484843084883857126929256172208792132606164852173577265029972330949232725262788940517802830482001410853507920446624916178838715151033991192037726686106769813114234641588343206047991046104959002923032675122661305468783022604662786816819691418037832503484372162564967111778603961623694129253789450373811571574385488406628998399587894988401900374512217123173139957409998696356995883317879903719496569568480446409445473596239147323237302125471939188307109016587488174537511393625468549037020293788324926503686447392248758793317691567080011066706944318872873254324618993525832246914461607090034863571339232031266995704766242901648814929686246941293448225391644295473500422786748734051035396197645654035545631970954688128165492107619343304217355048638456036096488169864499040934112531120382463894465343009956705690914799159441542858433413824788177134946780579656168169785973966242465576749938297161345100024075944382572659633918030569474571253681163175922104620449988085453504237265053946075241910828629958250576563238939845067877719024751263628727947404917852991432408393359218251942691075521398390453300938970164044691675192666376194667787608608647289723532825377303402286171496904055716546074602827319180248137838613013427656810876532355945137681787645449441042704894677119709792644458045805657333514299057286689307922164679187536104234061338017422714850087919799483715617022684713437606552244891443026542205468121506549746028211294620910319861692682212662427824181647799920159169915094459503525236895638047450868426996981346986291876709318990758053705516539393883394586491395352410914503846656429190671326684793687793326343201021594860338985608608427408306082266959437113982226692054801736304955135339711265490303528233921950029705119160971441933338746293614020969802303622218144785086219581338701223256950609283490157118277734919051035636201063901338123114421571111626316829035017389785399809314863379604131198965865153619970575439806457725080007107931865283965536284708411661339316787742676799026538043411426060274351201766917970535917191696807088988530684323876926110020779620794133474991467307811339489165178674863661484176483358780308286954744086694678046576860085620330000720079150609901511861513513737456415123156346554037285733762226190508554836753989010588773601316890452321244721887873160007631732273784602610961821164010013411067033662011996364988235801562915303582534001755804849388553164397529852500637813891035392361089234855401435384867218318375476275650597083043514086308480497151785843244273365473447954983189918679700902558393227755684088175014294784281184926992396351330330193110674482902981163337813144491789050983996634181306519613871184833509359898579189564377848026666780982273522303915152032650296387303094440709867455750742019948129858601673067138845215678452593307303888623135722438310196681134415120372207611082163093690395535282143881921196756280769866671796720416277870798929494707377647907090267534180291711463402530420579673962193742312565848169078502401162468466470695790862562972461639484955957582473915875800875157760666903747197821617358307241126470226384186657594584909832022585962447021479381661166951888931932022247261851391670662097354280860594788209199892400421130806465902666141702872349674960351623043946859275778958920008408440804613838848077758487004845228204150298973337598066728269764877361025483381217627790686462058770343685002666439329602506150497089395286323484809591293845284959724168734484866704162382266387520892177165100048093986915508537892779955199812168063883625551409980489491102765090770063073392322328261886327252597373290537721781657154619255333497674059881347782748733924595971441028861023104780433539245749592757942983075289795734576354796372160578867156352525164373906563855018750601777820980047446453262092436608692781943466412911805718152492798749930187938290361841449516331560314556387635475718661172571928641051403228570795472249839844635747994221801563746483469815285933119685764705373178647927088808981023918901469590251791683962354974018696589002862228338128831764582578619780480331109976380565528226330995958611835907034955160481363998813893437524010703300849563949550200002436800048006538896087546142886060491142089761360297577713572196731339229783818364048617150354410661433501986280628088986415051933575908044924373824792253846842655907786600440408839487441518424794269615489065402584676822493182790023285877132551336189185188876396290912879433944894446369505697431581955106115886410817718081097569789085914351560011650276332702101725199215886204025019416619913401071920738014371998680636713389076141442864995736098386436606930347611770446216092108676591153821580564647698466767334690674900525793360398071847206285549222593080708131960619861157382430421669826228332980873193844370174588898840404311242391860077851614047145009131801624997546134558651166651074111083312318377777153139476862394132326995523396407102075194416651392588985115832048741079467106111718955112406880275265672031098409155120644719867747144827202372032175205881540070655037887020305757728742422322179684025678513570125104550061906186047016677799476689845282691690057908163746972990744754548053047785531375456553991517807727149147150690609031990119527686199468547002853782440773436817394439359578746821644375391051722935456280435539810817530969982476205065687387167777919749064814678814082331976292024587778866643348926633338144926664466049214967673178693347497374922405383271621979971673808991083727262149912010364071145993621182741064573243515801459536515063746542446791955848075495956952787904052576128509359778774010595245515335323418829777576409481288147034109538781498030697201092727794020070380024346999463779090833309747942209769927389128053526076939201693817333631684294495893414684549719674456528977193365615417011938272146442782833267728645893769768078737282188705564255356081576024858446111624094311451372492435610398648545838755673994962141245767823631606805569271573047205187871096694909572968948921159153506499483736081855913308363760944302717128300587912118371308636906395404479400508746198824257946022715471153584655359283644729144812263722365901780087105483651122769114148133916530477240818283079438559332761350111073359686542168670825129507339061884293960751940626279508062749582344055493701320344420628758715456788301924214578904541425870736898626311204507866798660057900349590107583672348265364169439036655857726000975237749156759915755641919995447275828888319203969812879249299027509251125289662186494410012754779062098996947499353991188349773851412626576925777467629031406822864752875883577580395716757238653526961811020791108071613644513624062699706113167951184128074000090763490176533828782432215833376031514112529848444898271710740431127129708345733293168076001282905547347373462956416718544393538233497746420102367902791138409139489368723512917715219310732917124681988904202178944115537433738666133852739783563260953401507482186442885576483183254173645101630484154464557339389145791619105724123457920231925476648130403767183850510756559872119137886866079161392599445964661075834546541727563065237136232470295182855421044517247947314548262834326302432924519244210400760730471041640045455687285295614262478553506694402289193408401601202531181289840129555430972101975257264657198471169360918974263174328577910935896401074892536693090656506179733044533602221957689125062407716756238063329504162493077304094344365230622478714255160395727743047720248006299180058950622585401239619130566765035366847544499787306211550668955608535276041192617206615610673123019340962366076260507192275656868066087034510169157172750022502509953898401349260552396288311184533590106745431905933690354090968473702320411317431103816148453234352521579893030599001711940827855243293929678844692560462496620799735401760433074830235863588525747149350073019985329131297913776449461591410609019261914605322866605601297285927581519128483796230882643610080131812863681645513810867619705385189832601834794843137218090418583647982963870093612032364634678537505315995874953923600807967769938471020120269351384851475231560829276315495518814843225471395910582060792803269141672762050879049483266574053957350209588252249902433269972311839913497603811814639070020459533539788501320774959120907996024789894634558476947911735133025474475827602925379600702702902796570802878043284765559754790752238506867996385806017165340893655466191812759568061954431643982258503888602978654594305369676963644940908287398933392663742932799882660636222405234484102093304941470421841416777640599739795084508008978013645107147727125109493222224276118610972050305744158759707334889739808247245793713374779704813523047009215909093964895967800926251696804678290123494380266379818179601736487334666230199534313448349195188144200301177872893868308681391128989758023640846485618774655684619903365171833191666030026052637322950871686815883441116920601517078176260750920912916991151614869455024315414309037010382017758775362220372283299663605080006606061065525140819536674290429066442364973927035549396907236684398656171010407561471503617328461864045430666624916917016184461575995356688549975295857348624357694480710410840614923623011852469898025000475990339532823825752290125026908572957655267556232147010915908604837143150183865910568266620978300695938220867215891821738766794736605015689939478382698576332041620927162968833921248490809342823555901158453099714982119398728894276765400690244791822749059979298166760382865667298435202224032158663918618394598577756130524566162360477326004594665772259453680158982694157601236840846250259168783456888683553938991670424967137497889797720051779903598055209701072268592055678852575747326399501900437125148594571286612080982232855671254792886257435539749768163469299947049963187820135955162297889975140680791407028199668786263382767268957443819876560907350939315364523644642510627234381646024699077781760176015527126960375433703371374121820532124207173408937068003751889123823409156200179554086694958863090796688934423173700118609814377918069902522046564041456997079684527060612853591344865800007864018846991078391885352052712659537546016275543838889070090111278532213719645643027356462242102502615840477106282523200291944645055332872263735885115617912170360719740383567525203786291559233188515227327518098083159418517238706722807382416021213329384558462069221168239091924139395947812114084413949118986189561124892653817716159703274746091142387872998615953454768489220050206260738418272142229921953254808183894087434147322152315381722563678086193422540388473176954527914819845869645951050664329722368603739472405704281766568226489335634540344345727725458888538655480805769377351504817082454061778542681260391487258383316385894304840083471943794515572412155441999939604526446004210631973164668671366919538212785044622178717556701547328078114584040549254669955793793787400257108310066153859274359521905638723353859594904171169013869348232657693021434787127502052990758942392997149326464323319790950567139858287213535637625565236605314764656238777058925972540129155541266277183447725241641634575499765825020931027739835371406739605861030572331031921073932770866180961643383635655821050951029793446995592058870193463024891649243227492236142181957185749479235335747222852147842325864751046940283841334430405550768688955545763324743406881878492547062307380173673624958328123292039885860159801573255982935471504009713511457262268308332891314973171037662309279712499107522364369226561468740353918096746936880389573173174281992180581134444142307012323376633438985977981963165075159477795347143492735390132015457958769453717279977707326156960661376673461471314579709556835833457907766648261080824205474138147463622291246942192157879151532485379280922465672618225780994517902149125670050258630712665772087358966129461504582985173529785741705059393218596790453149406873752837168855894016111684545431380289964557018812744258567407768385735895019484378012837514210341355990771513361806228104837833112253863403342524183257592151914670591415543385073512197962890629326681812789733915124185462954788127748454585498020933525250211674845779977422802223286852368375943235587599692827644520966657915349579691520755310907182336063806717769942663837015982763486903668111990228180561267173881595828033715692111631032102497004573521151987062259983182892647693865810409613969457422361445362845524600021675405536829209671607111246131639495415415530426582675982960733671240507679375799314406284864971569622159058008123097511752355773028719277540542783647999359423889344126200330256529605197785483645759015941694911421721106567789619244357248105407969882871479372350610532166435595767698479152399615142292192322199540220839716853327489896314074938775134915373371720644556063759254903125366814243757260884752431850076779137353107173121833784609151805829353159063604534118676056735790340642619635667289889977701696459770119288905405142831612298063138546376141438318354976763447249348318952630390684876487961484429850331132569020099598619447856115609100485682670598056414558034810532061311125481378019714816165722817440234474499124274607346197052008626608216939423033950676544033128359506168479492057129518647111945877168078810651970674200356146328834118433509406792745374016104055584256349316638634444793326499318130098255519847595156465884775544926202159864404759753823187407282655575019205134048424602689266668993994062289355705929280786778830188538621287981119613598343622741601830226874098292511353425959637716049941152377688997458855512989736388689805931600690861478555466595983473818660199000258839357020422429253665486812252667652136764669590638670878163487819542223403806089819282902443719690498500461938439778603916006743954445525471315164347411227374474411250813514702516495381629349212953120818605264942118117455706728303027351004914061279747993830197595814447773206687151615620003249410153745327816542150943203294077841839373249173788392391629849505476237594709817000317940349885865231663978590608191152485370658189036464992877852031595694171436797482366114075113770253657945397730268485626950002966812197737224932153463086827650056224382040800968064569958298788470571514518291398566612008103484927728167032313333281628249791152475704613255377761180861384556346418192478324466405961289093656697678993681646074647467369644297748120317473868964126462257440362261256516939498044739136841737690506713630355130371055581548825129913017088945610074123285529909529194524872599802436654428051253353562332369783865200495008190178977979422910822110381590189919873175725362370851922661262757364182381585695409400405763220500331715959689798058932108724182389280986793562657330058633870224528780023115119188776889526546537124142987066316293008645836010385318797721374197148618860292829199093352505294361260419211289045893687015694595625330110448788172106202338451866318264044779781864293909850051343208445989330896285063920123623690324149982382216286498504413430439315568144881992523495286467112980033315324113389957417192082127807212644548392309151022187025539338006106323520035047254894318766643083716492815475602815415765501365843122662950969106808186157935010230051152685624790841290651898671376853706622225749392173788768687042654272545596470358212060859522492902631432018722058830781155975023461512082896786108614869769862762647160409590997129313476166538789717314142198534428017218721841173976637489359210719456146838849126954698534560128782104674401031863541981762382312842117474671012681521589358263751842768739390644079582677126076126706941627566091487859582448608323507782953696180561069043674000733472768060393324547474582379384236833798205070029238518322343448382288091711261109172314375260408040915773689411312296279129418404069370665615317430336194768937809299399248830004649512147266258505611674797380456911702616719530576722295991134824400121012565981493380353509283398096038442887013972339167930304268557152118401265075102308939590913546326070766912513511698398898412214302153484018024422989320504831878389204144446899484512471461067926453203997768171978425851771914609217009905468018172546036488437210584537480719856902848300960952810459363114928639456083488639683751348049325765437809713902231980264028090935427461340574340817075647375301000127372631833489229316748464542331465458081931076409468476827465121953395191790601568870910796940631706365361553892276316967036550257594820243382803378071218482424733045096074626292735510016130184245344710108036047302765025165966590610118176454907578772586289481200092085012694998967292414078816057959010834116140158566276596019277025718497863286681476511911306535259977667834590264793385387840619159451402916856434738510131942256472853679607751635969217396499988054004357880923545205054560428196601013373999703987299983497335602164280311132946625936282276101466065716524091578846088558170520088568623872904856010070078696578688901147580954183883949497089165133497500809468589449069030691631307514672168272486790319537493873950187166684100151817869101940992713978741663520871270460236703154432453929800097443282018712803519406612102671135956700175413803074257768953321351699511248937451001113176359563167145481384321439019056290297797920375489388538662262020530719480349710741239139835575614726758576751954555778143496916179622247762750864078922067376898842831617453759991815646236622021125887195752772995905287766061312403997452237743183168079053358147691713312392422497061092355772421154453619642980125008846659147986461197674200832368783551318933650283159276899961620737750442456881198622028400655923809275053183069498422526731880832056507778586819557083729552886702104883285092454010512277329840610417283296393790214099975692004601121008183131340131061290551153135613775572666644624992305787049385867142067185320720433229426810984170114797820332813963440605598413899009642006032259354775545895987553720060721566955238985854550773899158515195240006420944333240081966908703744762970980869505998504928029075908498883382909124037384103834658316509252515062683295001024811690169938376352036802542078157777767284790202524393023279178525795372005473168105179756931594690307970790663701648425268650048125868286024443558011624790464796628868121419587797918252027378169056512144945943903470829110043531496251584380297578779967801482166249342959764644735776438608910410841164396089437064944357504724563490622536209154102885542029567699586656915557833349693049621167921056847786922974111037431227359847379753573944058840477650880536630352283309361000388166646925337032307251150263558102867941282931344438025332486680824419030613205165553057604236849961717061415255096877052203676251564679320630569522943064379592160278728615864468765891538181206003593203838334151856492172673306322346208712428629611204897471348897421966523025127045982852573818285001704838023506950856653835516136486711635691857103632656558338455895531509577070983262299866269824942564949597453909672080175769541534625644508352304144962755516146197474677583755043638414106660769836647633858463771842274101850908143025822889177270768608366958955113510034810036612007074264759942381546396024465454056416072180263108299702627891908613253645770052183797699005108511271778490451578144203732328981163524445207036858201983268135071520052046167769047522559726236153455064877892946642004480157954906528742412528486413974223316548754725365290084260314483532011796551725908327434006458350204100336654195153741732304510928524469534858012329887651903634505373001229952023947143342706827564862687032295500636457189341115430469557484231684277120867192609976149610457510587904982093751522771095218293005082737215462001807941244070360793161726393482562804212713079426218908201965448730666702537035462109655805915078615123249141193031331744708433149540605165274400297651522192191649891553013052861756738400787170632870296039107482998954117215972051636711641256795348285066279170675883170953521536762330124775323611411394035870356296768592280430945208794115140108939752388251636221801781404069317465313487215977806388585524122857681642439950422054569404171714046633175712141553436544938061789421999074831125519946860696995376292881898985936570625143011185887857134734484682189917366255627618164309895437562978039076671743355336714124076174138988200238700749980643488949755161250330706939770144003413331953340114146097754576919887681642215886919963940267903517095598571837364038496437201621967576530275229578111198668744235231733845739609347612560480568189084404880307445490592397907775020340045293167012964401338580177162009554145590200774260328523687114735787241868062329934888174805089929667517091203439407124889805703344318202285911332772253592288857995786078929181751889966085665127512799331232802452811252210302099117978658310968845468992367300522261309958021374308928485575643208809001767925342962993006769542566718288788231810101584519139019450314746055892441350073793168705347089723817354100181273071342426332069574465887236307325777663287432981485416553141668728926915619801961272119797814731421126700897057794786595855853742064835154908551629179833252962243627298411318273456399570084165624713213975222181023547721475100229423452688541850033436764687560040877390842493977697410535673485604562967465318146371348382637905647848842266854687068301292024666806102002364833233345425853936692906086935045135889743242772409488090986417291174009642808819499311817406091510598265626025147979853950546779800514602813056654013663933897903229727387368159124654323480029424507523259370292455453848536501209264576473679012602644759557395328918742138743045556642240687575952532251230994210226902503076395402790882896617050525447192766508200919283211484014532868356807438612544387262690976850147320719122412907536091583452307460494808790519814496225619644325431631361834292660157027315074109333017910086045425424680598895312615798748393234979443843389297733072126806793725553106338110840372245564924797430651056945735826761584301681047725540219606191902881544779623189697387988926450813740103241103617625187036055052150700485785108561523866749037507875319137850893955389380241644559426488067516658659755580192565295795705148651194284600474003782409408893621957469549849519552591208971049116239382880740241614291932059153632110064587772171626422557106811889883271381344851242689587616971746086264123735739285154600596562533934428955183594036380219119787607528226709041105355139080343857108346178776901821487125175929955303789580196372390622099891577445186210094297568914278763225558253121135726260603585213268560419592569418569574694898822986204548438202924742707126511140300600257946824952353139809227840890700265321787089909643555278482436367777409654855610389045070153164108703016210250047596070285284063523954142418389984614306501824030017867116347303070035522261332531427725526195271363500427750190254704130390124319614965753420804260145011856100755280026883731605488907472033991448937474044417224735842446023062779924274950939617250509883556635943939024697230403185434774815022213348036480111059277405176656623266494360042653145490285308061983700059895817373949334730000354051371119631540057435805359567616432221908324576806576757691880802670637639005497409191854267200668213540156339977301042196484118506338718129391800684671330530974326086333286029919226187031053859460082397498205714892335437875413081993401430056013895751003888045637330419580635938158559025299217822848908662463134707353524116462118694718896729550131749684628627022617079872825023269458315485145623985035817727165363280028549345097358436016056854840953622052153541847028798134724820400972950910150478519059715244558690376117880789134003231026350663400383882723281794074424127078324910559884264999117795178489964044327678169821188425910408016496654348225425719259135860335231853061350599665356622942903343657280086091415197407386310868302004850132473360982006076808436457011459111597777321385948878517932758303298973209223729247363630406348660642670833958680127705881836333438055970004441971731800236222196834375626097220257074881601182448886022397050995333420947223786530928106421701020640964747375937819076912047865853747953534143711541176810333603060666900784316539794210508226627532469231122930170117435196589079286771267119498556684921876319284383117410963187423623778445132281394074328187786840366799832208466070419647893232146921472534628801450398391615511023672102361231440331785783357557697158266118774769491750072195317402388124882197165190479764162972566493190678947744759360364807002595809578235105896652934766456388347169463479724823822586793337815639553798282922432960958988201912044577871977711328897794820224613354699150518380794613454284740274411274275668683421710975706569635736509220547248126196844844265112255041827573709182204554937922284124004502182326350257207176173474436144878375013290945862347871226688686077625263550546851967371418959980852745521663564356646802496968522350690632028289891578219029282202561615701006340473433869013067790418766088129830895772628802682932493957420900854899305358044668106037167949228842196749312012521657378249567860556864131008556676276110545568275954428350239315309710063421062352968776386192788672385783461706497186994014134429288589796830963513942704225724816578724592810810286353806735231673130655575991530604994720039714227074095603822293186004151686568640893738379085552247937420312441531571592218761994289178334783249000731329323503734165503294300056464267206366867644253717188774476792798378780758487850006216424995688703759553788878994787571529583751545269869828123979775890142551878507240089068009534175158622329185691457370460708979326925239694942360012758728470488159928135938561492168002039446192996234404442420946918503148432381183470260132181258442694480980373387391482053367915151250543645999698135709113765902709667639080486172462549587464324631569900784363167418859114745178324481685979598059791710678579075349577155077193082068744278448179023854301919341612531787814630935447667168471463825004005155479271404470620863650318218847265059146421224188698242748351134772044339800850645100884769922487730971165199966034975572682706881014510560495270817431810033277999416773643334950347320399075402893382205611558047171305720307117435407344127712132177446605111014756223604913709893856938287753949875900924382117736577872409221363399516373782561777196167046981852945005754324741090383266918895261232328368794413675742675625473698464847711252789048554748366058355181239299573027787317591412489231658641495402103902115032687218761857858994291161807991526868319920331699317440609584168977043285551538477515578728229811319599818495524269130339005640126917887959575445565875050830970331842461237984910313321244441722404991073380957072428690373373073350638036017981235291379811419385571644147763200918077751807067844712778016913724330397990802769593282899270314016660340804598209586687847476469388576208514850258721823957919819162346058853229457878557018202305898039959379005278927436221183494775820305593842878498993980093938963471037672072527235494936014183583648678807090256378339004068718244677319193101305235270282043600632156166478294320310054244728874131687506478982238841200047894710130268653158008192706502242615077504048923765956827830628979852560553578913285765845171437805786939289065142579963383681923351821104713719895969099097322275036127080152843675012900061098334477672264741137439504353994583391226686863390847739508137852024285516259905027209813507255420314083099005837727268064524339983340017808774112833210483486241858121125562649867150913886484712436405762912118841353885360971352882453261570390457473142519711535662109296539335278407202770459867299890243003623167787332612844911993012651654919429165921166294148625184539028524238380792537037746331589533132139874782614096342035568601915503056468849633378340878755481783406225626197233388869367393285164302863537277901730825384768300412479407034858723780336032721195351155804579525834537842598014117265179808319283967577825398915088512363923334559313758227606518970765506971674423927657754637057137240860075605192993494898429418045824644674471729753964414777466859734661716683942719747632199993099695069415604806912252699227627946416194665236543253247773837895019061884200653180418851526382973650483213713382481654773397946654427890232424861682456455001450736910112127651854226593903118420386164761849076470910187671545364031029941317562494715483455148490153001326338473466943582992258998339695101004834256722384763896413962098582132635868424926300588468274815521295045845636419173005789370911715213153231772146058201185880946214618544593437329274316111860401254668260726123731443081394725681021599441677588465820144022262066524823152887861306481587183629899547750265290461249508248716383399976566665361143612020937588409397871988352797933338582270910907217835767118859155912779057217848044620119050336230717172183833960196166741917777195102836300814583031752271091609103127767951532884151696700989086827204240695515914625998958476549057847227187987128513073796325400112500447831352411733308622225956087071021655083609046176645576538591483667931102467686940451545006980415384304176997616624628857031831138837364827503227867770733360292251716733908480162750780088961884311709974833621291757931607737282167085158530515480866504472994673615513564905914473742702566532474140733914233600266565135572307826463040202476227281477041760423090257496769039213823871834619187239496084307707271954059750895244140947443316235450421569716764968944807166398878001945004947183016530040098356885627988538728463174431745125630611692999297705522365581342588408659007893011944017306425052740867745106538599212368393947131699621874391580569929778975860212919936989448107649643714865292225260692365362983573951057596908206679856733682998740877513732215835334484260003149149324675102838158554028125897774326100413812716148619038917622862124696798724459939043621009123250706883528212111344402081900646292027066380794683949815666305750163140400303155426411195634767033790007612697432694116271059981742083947166639946198622802894160196448782424729279889541458075511985209954864526308630039781122085564295749757561912931508833365172191610266996825401367911640551944336678930859783728766668132612676564114167393032793502420376535970485938427748212029561493853443214361015680597599348386410395981973042991280187427205765883137860576988418923978351879170460299690172589640343515179327067363829153344737124852612952890002174670810329337738806112840538000702769148418677310811803859405035918401385214071449446996639381285414384999329585491974768917474615708549243918471024633724978072243568082584305112584358642756751406818988777173572612590053683761500308456609986569492961842480790961261957684314862022225460045185368690296112608290100783647329813337185449074452527845980944010021046192917990242224768816978922607513427235939188033323731647828230948314295057051890403985966876198829366925043524333775104871163358777758772315249037782684021741547745731551666200638760332118663036858048258750865158516165951978009459101677097457558763762906552163460500654583622013237743191425757084511597170698169882401564233605633055777070437681153591306651602058368510763765936912670003687703414960179370921691956981284861023321547672023581782143282910841253543965925230807350938002957533835692467864505407320302842671713539586151901690895710337714542814426745478694842249467150931089107298910500238714821034441494162095250954080041122146661312680157507536343572789949197015456776000647714369747501685003315004538977003081746135627138088864985267094662197628796762763471176749166087926860547009056094979313241232738823847655639395122285808513758136740754000894198443718786710212889037624694242474612212876669037393089506861632161940518540839765602911691127565962548612919257760105305495740949544724017170795931178432103868706559543830269332344269235919283284613191401065577867075074831635846675344591963564330249034171865216233676467015284112234629953592333036673664332364130267259421094411004682091211588308874135318619178569861550953605234200832675666332236582038872096726339852562343312592761441992173309125870792796968870944213059272030152756141368503446124683089248928901205582296802100626343095300634341039968678492965312627833107946207367759882397115789181195841735121804420928416656098669189626628058698135148483973821281538327575301618823305688775753324984706546450861463867260700172578361797072153824643602692333846643608851342502892003753721824229328755162947266567200105545662821156697589455368828263528689915190840649570922891346343516130140581241488978744016906881915446277722192755991786054957173334934607199023889327479352105657556356463131991469938204940606748135889410866495968690375000863722441730741964477788299446434107209572621792896348775957084024156800412229857393130070566569405078463324205487692667011690131774763910351691108848224888556594385483172473771780144869650295400403019037292949000688179388130048949463800540744664439918718917849255297054137366161928176348842694419308773060765370144749684043049023566255817387632863960774745161261012521469417977156359650560633754908263586880054050682337226148040836102876467733010542761452518640110862132069713092685720113288423486174668264448022113158707914022321249453477199948759033185485889561469136576142689090209199028471024883386368442133029151377051817529981451721826347148447703854096771854670964589312643154390933701622793299287393107888997062935680961838540391659841331932349385246372168927384985841891803771555349903618950235098607375724986167682053180680226960430345886290084983575361879205051558870181615277492997407663665997108301825813844102877755344521326412720154182391559002631460666170761407682952140893658256929741850251530512216778730420988459311193888685006655489390248828175728548852084214589376907971214877496303818605901065511379444882059655820883794607583129072000117974596305019996074117231237951808817232707145951834796416337594007156593468384379233631847344948260583728164545463082001697004368540755115153126508608252980263317713199947608081885666481791512233885555221450263851490791719095371513959537862577388042945625026432009886769066266939724148122174413056496728515649425362772262254935048473202718843383438281878661172784992790126597689457405915741052776235377835628546526203346665559073166267829649236462610111165337047417067523765810490900634040419600084419663995104877428413290053048570410392919988851674152861842573130950693326593046020258009455962702946031691912179011377781879522653030823515993217426548462338457779704714819778003296340394599077081896237583740941307507141522786779458420122064683415374665247636736079819341336286397698228465766354806841424673458754430643809610772936216893488108092333822728329595464182214571109480205197088275550218704695103556897464285296117522936906636378480796467930002953217617916330022818406452340651876553210109855710482200107181852244542643436084889024244608121272361919592902208277201419143437885367924111223654064628664844336362039535360921091307707552940534364275312946353408255422938165018902657114860562897097949592643164332971957440397400533983375583959862064543496065248974697902153383297433804764929863051443139123918471022151582850600845064637533682129073376538053772493776465163958095196599378237974398178392981667341846060374338694055593283579499735681744993265056791284557170212683853743994267270576570337380123455465629451279175621415133477847939220004160671462758427104983145690388313617538619635673907703836505461813520181682844306862160883975871747578942302746490418083200463317542016530959246965807222145516514461586859069963605949178760488538717076668565222807062854926245413275323063648593950269083784320354717609823972267328803184699334719146942542003585150782465322068966955626672867339429959462876544105531344468861391184972777194849736357117896532888142552059827599154892361276622829175811383913900612569458938851644059090286156361279966329775012608343933199811906720634462753311702273314859464254917200786574667587529724348680847249303561833693355688563427955186529912140225891501949734454286342090377866293551597429859946373762808302161761331988879749307438362709731658721976074054439853652952909277107962614407646866772184414237093350190458755313444163730349223461705184306252636008417384377092289956022911007291778335035918485179897745645616651295756735219979189548592457713400160594597377707691986297034688381368923147289922967953264071599197565804690226299808026569451768460681406282317860408481942229459833677134527473466460342691590905731284179718758132347017031701800452734583262661974851940142680206151675309843098362897295694746449698767520968689740004552737376530967856080779470721616502450850082219934004312299518852089387901602833606033773869335652675427947769808328071826155345220522386378859572836539265251924980961729577766165337562649786921456741898612460260837085146591454818553733479627645817570149844491630184002357963218920474138505502063264266788888709325611667830224900116026447726167822144319712446155389738562847566327804278513212911178333937133419863536654634642939392632123777756938553300119005912807597274018952089532967020104719030628969749018954123535272470687863971724257275332326189156816920798327871366153953309217148538426272103672493863226767351772014133887943030097235836104236676563472921603586742131731700405127810827272249139543896378702944060956774197095623772056995943210512306802822620852757192897819904686609240763064630156137499947952371480037044994946942564276081231797251880186123957230763785425768294365809215623597888962190736396421453367480433542242387657211319694819773924574095777621256732359456773102066933317535006197988778665867364383518244357222294183030681084858005458009405254871231714469159116066666978776323721573974864123696659637139989286207302336657749820796933952275492814619639289210978684558539226913013155021645607728698613605937146866747850823160193446132070748341651947964569657099676673878520087932434220753723211410885225174496495161518663848290043110695555324683993488606405244274790931317644998631772922343451763256866002916226892809137950770763875943856925181513544167595020824180277206223291154847390090410840421472471563253403455098826929549839524136234992267023384228575219721791361605609594630803057191240835212017611945665933687346579390283977114594213481329609161865291330383491230869306213851479959950951647425549749609143034233611024244614261102878864400210982629001827363191447320623502360910260512601331517211932057029326279258279915278051131019515669294924527428594714769412827854649765964926305551854377519583944759163841189011129525148830596840119877226366869790528219021703470744976493336794686936801953380460329828549204673197876154486853241198080469441123120345209003987247637928723937788708402999995498891526825978137088582851521990419608739725654950983226505197431408048707763999195360743097371420033597192347738733696717044563158416770210006605694776636822087587444771896028382261057396740821849760349731605603102274799794469148121583351618657801961644225543403613819110504312158306945738824193539482513259390846145778420654279165624885476508311315529972412418874423126408519801536854890151997385943260241413042456296238307480860874488064504799809758603929323861133560766092262157697050660522052450506454612410936233021039799163605866852954630166353763480539175656125133416362778293347056642604558549093427000049674104915136106196875690385883514919669770740261118452775251997326143071002898030461719082053787184955029809053734063079095955349771740516419104312842505545597168460663220732258081407762567635962730736424431550497620518415074168237948654129744823099873473277933775103521658890663120119024841536083210485844623416651291142732661821997149073419493959444356992503858853025331505151350288635737944177533780441377493512151711107741793175898795482969365096937251974864878972554438551166064924675480597746026543713177630749056156055342726336884363105289283333271727202323653272644165077213362963482841644567527457282312257211920075089899510317280685005714769992186616419075743071639708278358283139542894722482942009343873757070611530307744241941283666454033944101257616984353667658730153667667029353869128573038168632960805926629089390134413303110960538905520763579912583775787064253523758342433977067737650399548746379761234341356181465981921851783660464014824898485529716828449039393565750935368480269697744906358885162261818138370393020167092989092156034809576676043881904278336634243977687721849455840167560297741016442021042446689305923777679830725290991665150430937857548664451129570415344319320288565282786595981418126814091041298492137388970759656493756618841500268338609844644861556319651811377187590635430868071232974533855394096005165857968867891594405813651315423240075169628453720277582930347469885759031401002303459348466101884545614383380568611572648059893128659023562989054885130299834427034033397226030806556319044005711120215787448780515662511559465960168552688659078356451159531251113540306614588018989188437795861445372983748459280122248413132837595252587366107826999076343068978730118349436684577513925200968181932860408368208246855407847449825649343278875085813812380098151851261955455770199913893569472338576902712652243506740084911256501080350626223997524542425300655816506811328922330324871926561999389932439831569409261420803916161747242995657360807006454750134550374979305520642178494305700368992745757912209470170588347813699035135503799647214384330047191043422258716250040808795943652098786260980878281008575707502693794020627555044499252936661291055131169830041988724430412295078570551147151698133219659465588780673963770522060005381091276907731443554543479728081128921775405783594282290875424547954045677115475451566513177592128393629804891829541163143539844760106450865340262236307633998895199796537214840200667536466129310687518219436286604967977550240989922015437424535033198532780138147191598038744298345507540017426654593479119037771120896179165142594225748672243375035752406994423193927634385335278416512526628118991600239038903129686906743957422619807289010351137983784344903860727132270065046811744969983184106670298083231520639128632948834197211841297895867919744504989240854681316990182786914609559972728282335862992498399294438878826269029419021567499842889564771122603249425255193395351914530844563816181887371139420361291876791895236506279054581785560504455212567641608545906686916389686310510816595463753912860598576952506841048144187436182884903332016530414331351158200362563238409231120832229598242782097955526614442979478809051414845126997481315457565699047930362921813062579764221558552238079595218928566460953021960423963810734956924773816011763229753378819266691080814662880277835409353178697697384590826684509010873551347088782295111334646741589095222671404925168425174222331203305595330825662141849782988808990453516794311947078738192917365277248583319093609370922964244880367959201265391584422008759045175291787404304376773216389657653784228720480259326380153982582227308304810267717394310228781622061348345917914034238225548542082808032103920836752209906527803358495046266343988778905421776679774840761733635818974707330813014894431842338015774522705731916052686810392518727736866742761279451750462781269864796006206508096860042564188087930357220367856400432181951494059794730045372322167143094349839517983366589203028332862145963501186753814586116038942670090853441348528653436265874090282659914906126449809607603209682670311600747222422612740789080572279789682271431633007255541009676676625155076826213767574734838870308080073279174895462301137515960246390458245360004061260337690311859724800091272721771357783955575070553244067679933515660692917391619740469184632426910578059303010276175187705434915227057241832617129922218299004598904912717520713707956620286277054900931615574218548296995312335820394616197473587386229940266220390794887760986175679065445443226425683313007361420292661872144373583104575015416116789500778477666710439846337616296904333818120800490355461583121683381410107793392666407674158139983921739817117689667254110089844183135710068457716050224320875955197154737966662801241168397884750421982457105315741039718295862921589572070588701182073272446663355398072942277291419536588110994163808035298691872100296116146348601655337874431647175258849137936467487355891873999015851095073253550661189815033522878235108814452173382386345464498434107127526532236779622485886070964420830046225060870184608458103050925537172267625488323574483059980037809371578935017383017205194138049766939735272161527537087635810746841555427393316739984442651557768049397732904043974406966177777448429349013477620092793875068156554525546274110680804530015575691312767883737821658535802850738401771912208181160784668676387065957778973568417212965467557899728922502610148649850648016404578563892369883134408382290639954392091230658534793735098548129586099894488218926393264017213366873949410276473117819705220974282299285450462506762444813781484621949338039333272778593289141615925673005623288689749671007658282027602504670368941417437287363580889306772561751969186170806821279458407847253048907490084711281609579681043253873248036469385809589323788733883166242850330048874263394950640062954480536571737827235864601905651509998758360586675077798166486181124201486493277601835963204894659740048581164728633833823152040712222588632361826237646919917172612255920825935814949874904249143180129593505235125047542719741064847032761627432180618132235258415442870701632795745500861031277492632858073860002452178112673382775125136141766879893077874008825203522950355448347372743141123582125742869906833904094651497528360866646313670411876602193285109896670325949710289517586029626792858194374396304443388286304832638078237227751869808317350346107938600393895674853925568414033799663219899352665101201939895674279422596190494318927351823273123726713929571111656733686281543226857445721259016254929054145116134190073201390132818951729469775640414464520885169056485406383111434491819517578539936072453265523588126769649441064027184018132894629461501625354089046829985104258268834492433757959197432714572142185700056616844468615753936836158016569725787589732374496968940470639449238456201933170485068480431055335451466711427038915462067108292849461661621862662064484375218555820465204245542127204640596367468851617864082412826850989736422003343064960192674595162944958556257180817447317922277376354664115849543471815775496356352263430948495590216813539867015275625613354861056342847366938323484758687656635599038931283526406842656383291708663098602384275695795422782468167077161658247442412771579501817603498111424906155567829621735828839044328063566369936510616020740112539880833835406710741103093145532150292265698286587387979202144703391335821917896494660582028150048183768180278396094923490012516034692492910752529048933853253365707827937577152014080930895516944305478436619172549005618125808369023301519188747076311778825389061693190347378582317133586177856275856246587110771970968493433105059692228175651736155127892365453256635008497824847864058089296962841950463204547612290076074657473535877630392847078473867760014483477900256571083336388178542504975085779810655033304542665831689786024804540296260265356500545745967989196965190923988426127788709713179888587531932933617198453770700151267704317832092047423827097515390088064987878200886603403813153097853633384787223640734000123265932764689970442170770824253674918938318436365349630146695531208309731770273446770096827554523905976542347773777941741063398537100841458369101164152734385724381457843817360829334059190787579228205549096048636692689090028095502131500201734127557059918041856793514797609087137437281616909733804061086302474878144459011924879835485219090061087619120901547245762909302270223695339479444011358814114400419261526925249333281115218194168905764438617107892721278546852614327500469427083032937472834476567023353699920237253351803386762171906185583909243375049069522401630388804371278863345671323285914892113440794015840003890042613364112871983854997984981261332832073430546554150766575997051620864441630881004453270484669384010153209877479742680040425558877233931038285794028657919433438881208923609512332398578029850259155367381974123388330931305573061950742787486073648752281504665492452488073140201454467555788219971324115161569842396896504464766339930390723227615655244072125076450546743230490423588904409386398778673350111352157826441823399554831156651656729984089449605465320713858693550413578227866559381768578741799119378858934410480798115947847235133786154360726312482298075514720136272500114276524476293863611391619078911807181317288990188878528366990514710323711078473029169348867329653827106404227818058677537088565255962468750037915371216616833906921465240569308087735940409605662961968255805408788714583010872037653279594535632109589818920656947690486995985151338076073660835796705674663840799850527018892177190024747326369536787215165799894709828023557539076158413224788790801641857186071361397641436226785610890037380567441558882502097735379432637593907265866494474905088080188064694501835711384817130021135275192318510400521899340665902728265024656796028730899432221402727285219662714390982787689102867646247167321448858867610641523864233049154424263201145039581214592946551831287311704933051500772871688219739104937771338353599555811744618133643966741352085931519003388671584753088015705448327230037486021617279479620677955768843123812724294724525327639422118430735031371565232290008815252203649576688070083268685999390442106260564699260124071055129106322257499250927044142471038396094978658072856457493944774231786793767787798574807884856513672916044982507904988592582246820369535923636824547117433154034735183617197895307775210327619761760573516184953679758874039164645982900810328016417908274000432326995644079831357127207029770944069211308692634681057169211739016542898042459502505183143454326230635689371366945427977702435366774577740233797032971227778941647577331406172257354909003149864198512993009933273166650650929685492443111099209059886541679752588039937487448108666009938446114237009557239720266586695178868515175741760318021309879323742120031382632044332408792520966592961523366755946454769150052225433302047487884892983482830611565914717291153740159481049965429021045081625255881656417778328529781319790453944031724227344215295008868357535496983165610809052422930745448244152402333011231520869871839479837206585299325134346834553914241520483138433085117535977463417342636718474847462107287998712017163240327228802280638317924983658612904743728348911723809138343640806995881423523889771378519151810135985135233470624245667855690056932160859550840304833293095838650303150657657034047243166935184973363120501617781750036914821920560867202924988457341859154295252352072114055706843763512158859310751661466954784012372118618450944926389100561973090896621548765566172137996537683803643412736425081977456464044788240574289563210541975221251997356315450491440260497903983565251470453754135742781027590238620021337417142899574020063851377535394436472724567431369206504763304612279275548844152856935622327459802595341435824693681119528654595877731701052638571873805079500590467825566689845476494826990425136385482621419720612403111639019554656864266756612453195723934256703529810039418186793411457181592380727316830527728949926516347120485726332174095502921364145764752018275568851897674388116509204875952782906489123157800787844793979156906396806241747245720832158024700603153599062482744372280810774985987359402895228862445377350879609623869254343088382644860152982468730588475306049663016565305484301831731329757186584725920263408080155791453436790519987961490781186453122332348419124814263026446855962577607868741320475746229254913407979249701549630374559484711116415476943409752196968538631848446870924591727764522362895928613788717580458195702388388356531260642861229641287402240700557456961649980772946984727067584722250461329874195890356851449964899170592776370167270558373691908150444949756972259599138105586960789757836853354197820899498340194577553422761241092353813659237085008013073356982600056881461524627376952996467294065987628064979393894650050062090501848818224702404893170756659209363620791918655466886224094196317194126313816462365622962876213305533818735792962367962139051100653889035156839046765426785350565784922663414671792491096879058166641804567177450900255440065368815758485221836195628792636842299968475300299977559706292913101462532966691092016969027516390160520351397518308250895188357073538744891338710709050302088418862042716615759842418990590059176517279188636426964664631262529341294049964061682527063750794831657225103869535995171856326826872351062577554335517056617679350073331646765368846176085949138986278345838897998305664235375602156018791362792525165024939962180290057951255378776861055239555786385779367829396686058184801892103272137453488500124264140316712672204788634564905755121496930336660328100246750216307182234564474793336521132520733768678236696719369762944588698914498473892549801396448802303921531095197423322960042092350916999278705062424496693751278294254147575681610755655886950738197809851435660082432420571525410403055477439075356785553209600395503661104705482058800630616157762511691496936286766164030346030473490724851169454480697978502933276279206393072585515161138733960644005783941580623926216639176332105532416639493786936887961042613761042908523245423243367696629079014025931688691676665801609003978335956738293987552454745686681448320583203977978540975899554552412797296869598865180366047040078716129524718999563279925836239172252749207490061663601289180044957777202516106151414891097860578366266908967265650166384928876857984428313327706268658471096918369347544205323455037475213083925188906344533898578984134418632386027553361943152288128844202572213818364092940123985899577339566740340868372976284904753757366434267909547740463460405924962191321359593490662712958614434583674939713564648774136815521881762818111839466133503988582110955538124484826209182975822680767541714704316786357026677377517990436626886529117764478609061439869887516567394228662707787464527890717724750326144277792583711097929035549407931751815217937044742846384933739949232414144293106170630072420524068558650014834167065706350366168600396607328535774192010587081430038225265500250588325702905219188292083565864565252171974030511934546499258984363339836452107192167701417967455061130354124747786941170198101896617089727281017307853187328171164029851635655091006501689680722272251706023650678372546749804306909549906713650691249606543654146938512779179570972124480345239092399913097162493400996878855835148853452608008868867678619263828086578941079951790501602416105147217446032598898220300906279667750113051275637472611097827093704990276431326935522541842812718623814052806365521453889677540950837624125345195369625114251072718330207597242626539590270744395100444020325580909700571079563419928622091875530639090203159468815530816838026521955620023463095223710763657485210859773960256451412162147397232630323330088712058467404947956868880286993417492007304765952751115209765192484599764870246443438422066069647350215517640997759994405097472855610018268305559875565683766361796068478564250705990279592479446643673707949144018350253302626799693948043315599346990867237386139325312220781330237289367713728493010673125235322752712466841532179617078433369813717102787170190002270323824476993043777787627713282126571493471946212803374899522844894580924844185644462324728033058648193258536947261039325567143690837935903965685085864689877321799922141352529051339087315269083585557785024621628445618002610913612101898539920294859209792469512500077297524670518309314531619737199966020390308865330829642185037708603369454870604601478085187286670497276044545605405748445183993176598627636364936714417610607994611875006609476603372485926850217331841484117172992471566017603389323448242954322752009063376534556806828634201404953170292684481962231412394449904768777886862531035005236584843888740385923557926879060655271020980829652924250026913830776059156526771228366166325387162846641185615631600374218125290649295714706781483647265261845139400156141118594207518009144023786649442119622329813774800227098062291646026677653066123383876267369332374963472559154554823561060671544592963411948425452301489514563606541953408375759778527148397038343613060308212940793524387035406583987749225724453371295380014945380467360865071784139970699694167450815804763727553951692132196117140172766958501282077663909395445348154272211841659814458563984223279839734306680524491352461250300448922033921302060229782423642712594658445929144433502907471234955692718781549474185588764432528981280254934887559016921446513189133899104604861367118173469452681874135066784764003656350792739257012023637905231280157025333740566624500381145101267597425253980082213111737100867209293322092396176343643387698391879651029065406293469617012718998461189892029018793988855542895457291996306887644535957664065808775731790211946641588121721188566516305007932735525272705921084017064698327350856233099015359678232330699533660343940492873367209913862327085425901857630425825958277758045115577413279364360655180020909405396060815611368844905241828014263212137778301195683834786434502372654514310252194410446521514577429679521681582819893778128408147305240404136475060561699043264347913105534471348326905836736691140450306335674960149273237966169168347161455378171696644968488729193743499821129753323097844483378784596278490845728369417578248472344799735985912222385764823958220641120507755006452996716098569319910113759512313581617522777906949182308187349402768961562754135321494495923317960291970737274113874061544087656343775641443893248062897167826652514914065122182114759227011654302688943322908378957585292417194884757780180220665548352093438314677128392820533924008986599401420472604727526195913809828476457663646008765922234853424394320876896546967377172957338950023917823303121578709370912513599242722375714153928461200801853646658175919327654424058011751155471515304305502718346322313945938564868241672159029720213173980295359085063528832979661113283333828318321825138919533321882476664981527797893098246700087620529814706904493120235545443702725071470447975010312976078259960128547249215216801881017599887294824030614436514999002820021126525691583696697752159734601151709441335410191119078272845794240334871845395398854548310281990686371181756149359828062670278977812918171719411770447398146933630723475836597563392547892654456325624306710361157082477212072409997164228703092791107057433965609513161899421189682381951609390054620219269183878041434276019356246602080053149436173829026394451199912962683567925468632745294734877866190243930261190655329721202162104014139188991766534579039885147306070436295075953183274938975710025485299537347272363675563515942844414883877623219290415846581904151818070154254422287340622418168710633548853029860416250380002513283005313137170669221754750319472640305781551266563372440625908089731904333015219589950534068800757377986861559552832374549655948552293012041513104135393672873963294891144831394893352707823227373065699720964811193481185728921250878545825600030192049261092263105017589009858976146013383770304850899687754573387901331814793463735128121961403898196766424929539601082286647221658245842689607832711979435477380160234985139566349954671354970965482371504065681923952993978989389117618358767099462572983122393594434667242081523500118381525203430843184806998711061154525774323149339807991376038708722491895750673924464701295361273840901523185361122964231887059971584175848272109493884248774439600029404289817043805068388045042624242726223644839820985410848936982334889613916803460800563399036324562072727726506173654067715994336437063052994363220589432168533065044247587958777898611214891976023055820449939288495247509704799131488478517391600428416944618533197190780740062357453763915887817374396088032110735840372183964270930368576707527662646026556191757276959175868100761597904674782952884357107508972715866994179705471607764733621367377225305902756140947317643894474125046534687069119083870148798678815333396379926106574611063181922066414318675441976255727025389583914545030496104130361608593514600270004201480080365711455978368728557057796409982255161046353146462297493930076566208117542769813610362538795473496698156105010632241956261726084992514970752925760666079335181789545164947691408452826356474220216978511442614116676233003501548454029142802752155814736484217185937502632050736787711977077109393894915274835730637129381834017534219954487365381361611942578987854675487160196305346782463482394370134816737704615652471379174697074418604956646889989460748586464192773761977148445935919842263993375071429792866515523163794616040485393688302227911178467122843773871432006874593490291473388000418256776364888605567199323558363648350186834038284535993268926125633982504534218835779862638049523995330951127265656247174962806427597400308186732198611388759972046858811729082497929057219672634246646091855602628400343272688512038031428789954106873938322003530769506125099295991143396756473434578225723249588317201466912987348220138155917080696541095762244141449708246391271668409556546843325172947604011492722439933628380094561581204642900713530628160212174614956145077495846432864110491160328505099191212541764729500438688574776943883347046972008401382350711248387368629167598739409910447468031737906575884722569709386342580547521975083917372728431062232241126408505939274795276217756969565211511014969911981732867611551336821717256423503226903493473048001117732339416475749430867927394274495449018978285739261869486327150298382203118139010841479789950702213861326010300768219794200051123529260246962029184396340515229564466773868060823427738469280042368555617790570479532813775062540485234677474535990026083195864739883990677980090736098620740085285313144497442408031846061235844463125824398443118435529700248246025160052759709236355708348941591152273906700339174697561053751854087189011885640627858078438074746860062217728050388006468029566795329270469254971843066962630403250286997425641423024873142668095666655444495568593134255249115309752446248020173978071750327829931132668145928772092828171764501767404526469311642434583107753238731098685855066177261530795131331345764065927707845463042182461891645575222976218486947344455161272475431078483428986402769898081910218491989943212419731308688629380403230825797926761979784681296603689478274685463198942931120896716340147483670804645184031304762863771132572887659291911033243495249303437591638527305782431754942493764602477039867086029622817947144471083303970352312842762000847838352427638039056209726932463940836385330030571504072544746509729761681967420581946395917885404514066354983533233258126236288272827203469174032404678652787855358276260860958899853456360655456680833037866099606896090797204308785402293975790432265950044295215885787566206056314792136739001772921367794877374400427344552181545747346667934966205795513654224772790977100307977624698058350004457356418140518217603257925866046045017833400354931674510793934733929685437959177796626887478703388317831750822575053314184843521652871959108243524741606453764683429913380758250461616018323921263706132131012690900286363169224084133377251416352491260782044622299701042765411709494454372986574231997228859790193774014899008372711880780505616586726011503103408872645786413816141104469370194590035676218168308033400116849300657998799915875241736421267881656585680605355761230230074613265352598279318743456074481577426366161618654343136909080491417407322536835957618407025168639186495838568282747268494114958884703453669006375321758199926539910005780308202697332330011979470814535333239238978855531051288274403508416560754591470710559201068646262762713488179862849307633271399734103607132094876899093267330307214959775237493774063381568082502234962749802370809965778403336972979048840173707237688225255242168237868870432056767785102289548402700983749260623371500462967248173124492186413219119606826892708862052844217193403111013293926573342875075577522000681576466818887985042713279993433957103367468132564594629051869472474617671236251838393961981857851298648466930504322941672885539546452853458354541574453069463306992270506916955721016166074169076524439441514326167028624009014004738237512216439561216292387851989778597170712028462150923841218439158043700560883112100645872943167317538857855700321098926269320130942043848543367241411253876684694723024536363200554554514225336767295617949263253551967288453671664972408867554686481197913643323959736457539909556248982797182407443398430853986441952804322610293646297290394282967481313675684769454022283005512940425698097185477099453196373718626325977709732064788021536159937975535708073581941012971343867735414013737568352014037470109890258086043900770915478293874506569596293593425254109279729859819685511128453228019727247289266628824334411534716087531821787124180365345681102561432632652426307594602962228204057280119039083915985468976529859597366854507769615360217629451193920681026683786478768838702783494632922035951434832351433569285682665962099255032979208766262398358533840217856794244816714079536926881296152694154395901832346926647465881343385030682687878354184185145654205301829838684821253801778317613515440897305689824915348898288018734620331044870674379127761782494650444070099550032542936258229067151517651238124198204777786802529578651130356504673191782220103137995302340512490999100706744900017842588173916470740067449852744416356227807360909168265842228256410508905524864909621171828699117449929339085943569226292985960744549920787922694758917158628772128447984769327845885845563428505471086574949996584714980549388009290733415766921224845747145364145178439646106567109545301290021283120332488860636457004320961013045074071379568707319604124383185332531860628683953737524900578799207692537315928670106750328738377397255600496075673232674852071848651063938673779974336673523938602014818773210246099127285354320674964068069668066498852532274464619098718685050018094359295023402260787300504995247253154725212310487111441072414321079177582275834517447447414052957315229348018608674612106150678223472388439424766524839709889668309180472794277868592671390995644065719658137736354096300450713065232652266190464029371426188877135888402535394056819748128618782644018328984180374890684510090834913217212907534790009236319996478158138986094794678916628893233865745652117520073612730354971124110261915849618948110311670994304926852828265466550452515089498958997072759477008919879543248200440041232936621680309434673074321511287433787505629992126474966756529463383522396061422773645111126090395877596196154245576537449043664501747598809886748762998081014586982612325861194015042112238123039352231600972704135699965069620892971982241634656127825300714935035696075204945960569393320581171056485288477417194392194560938218333624847126448733706095864117952003273769718145430351282395838936281445931253532776558131694916845207767766215970005352155763626440138351646749516849691542193824903703748983839400878532030518936066750229422141926305292579384038536717441793555881428542866023404883046885431415451530277525872068178173970345068367999375247912053550969874236429355441143263675271120318214816942841453754201272935639739069447161225776117218322969959912514861261983490937604706184822296461830863840206423017865238806636263184354404437920551055085085727196794382504041737295816820422580054088277812138120260282513110864601128446088415867480102972725348824427421003574311532724578275594597250624971638806005829047967873977930725150489102944600355455766113391501301771111713566306874604178291380245014108884025105098457734408922992675462432364667245768593843388810059493177124532387220928652226660142567505248896640112795273935025699856193284593867742170449090431023379890897106672006578352026966687441676384269285999923410099955539196920537260451296444926532250759023055199551407218632688489305639219581186925809533392140620313557023986223401171987740979971122203461848028336451306437716215126623316100082035385799875416099025342468062358098808269829608420529052508042938329568243614993429467700123264077303916603708682737754291463479882995762437577512607767920671743099498480410243529426921501266404199897552089525082446398424323698397316444947947470891925552664308993583182612470405974959991754015358990589120606206681538616959181224926570575663606183690770983551433294259733586289294183269587715091672046341156185753195763732479949751302223782316259642879744184883510129777295029767054653750295686400135477578340393863850954815895221203916999765041329288186573802534601486799580783361932053556838099330414041937271196741932745709782738767665209631212383403121665204010626218794405174746884802063585022565276544128175401314724412489055132237183886671594817173282118537516611207117169311193568122432860904862568070838851194826114166628152686159027832059230548417019395237805263589753299641782839709097545558328065637646135347641644002761241002065738899433583649941639690896213710892118034566891652649006046538773367661164860622648657139173395323384736646882573522700669620352791169468379889068407001184213008130590925092267269973407070463696671157340023055856198455507295646642342541188422498021870060684726109483821057957058520052454809941105231414413645847147528686436854946032169533911570265933172265253350045750929305430960388466806768853592498164971207303122974940139390396389109607872677802881444140535584480749689355034425037661085563654153625191468555808326260573394371133987105700622521742448959519016815941061471936154595650258170350330311138817588454140835124104187708657019174673977976909101417025568780543583406584760055252336755363404888262589820227010482692329138354380455998397925350465980673774005183938892579593189545476187544143248903167208377677347698293820531438582998453432301290110179069235863546186532135974708677565229677660301269669150603389450258824335542489555796522842642709484009363049082261628122666352782576040958899888593185189305244798801560645802072328428971912770744107675345167223934475430126126047630291536914278968866243246543927524474155751023384829004176076167071973969570685697027239600450375562878208536366576944334668015929366834056395742169928198259676592361887175638411373551448446588309027850358167605213109913262068234118668609061720503974312669124274897698577070271525743494948602294444030522782760256897906923284921911793608719438235774085920558013785601152402475538377798302394693533593055426391364189547304179656210795974282293835862338037623894806025811575279858109636543275341483033197437437768138906626184011408359313832329116679184465162269934476509603825597940818726782186181940258456397740155459914448936952021503875300979980721565181654933786980936072033016390413567955390705143142787836185190465133243728655615389109760693159723111881548902485626869532377667539435465370946176197684506151040703505260468713514897963037514934461643897449310778610409598104878523812987104268989131024299218923945853969322425816618079384236204331636288351335001409704619840014056610068640861708373392591830053303407132623440019678283334678692439712348987621470885361454082066323699406543933764379160628545135120140272578901765841534781929458639937844233841660074794315900354805975953865417409754980840317461108831219586970816705635821408169459672009177122506466051458606173258741928980925479580553135216818576967343631835554694944878055416936524182408038035414454447683451388959844631214724600319382798074589588190940461628980873350753394956164418527760863479558364548555073978957859875758441165255373567323603624844778606262799072117080317724577688096012314374615678647422925586275793593484559646334938098279238296431793575634384784509865302355446006541846730880348410914073944379672150191835437393686410348557564714493969065952764401836363331299090259087886158472408154318500678137087106237316593228648172099823231525474247021624436105587872734703635244556135521871980788420528536616402744975945400677297175098468236088440979248845891287301018897250440879949986112704981027398098872211935645472553335600566663536263896279754446740944100979473118512564199224995098011423461836164883733146106544185903827068152760560373435973890661763507199632871355504263505186743029137695430808609089669811465767631780254942376603300004767790638234533856759359757527468493140086865222677948193942550220381929045756567016025711800402589578345473350318430821275211227731714470474090815266221185148985119037632377384155878694313148994836129397601108986165778269385251073122183724200443000333776674315015082828964854480861386495704005378478001432231042078607432562585016492539014939047044324792079029171267844606691792708313497938420916340756702633177407493458197543471058341521486922630777355026579467762478565191036114922974259341471223857749255704188197342605661593782727126464814092849251929238183431947570770950050659995421026622906908048785254670944561758304621599444091004241370843173150906275204105518701335359111064745862381051399755818900485449616668538194607189153619434483247177074114447878043270163164508909257622047225773675247601256079654403012162201711585091742536368227524546395679584988544613060818299536606020018799405044417860209396152738981570007351912930972356922557463344689567622274517725473777285314253259838851279716757808532822689468022577771811893388209641027023637752243974004795349423377073053640997806819819725028626252807855049369469638592262079616096114716540134740996244141151712528894721384794721889002088992881167888021314844509992680259276883680317410830385648536020197517291133262514075721968182500123133250802648200417413881862723081923365494055777128687175577774921895553547558159827601090256801910648483303285074845299471549665491120714575613722756582250054968282689553861119742866682415726258027407778596089932028556669649588424474094706740182821403221212758453800185197735477691535083454484876597197277935221434150582252158048841940538285915480565086660333090842532380566100187291275431454223159523574434804607197878788201619821406566026411927936484558810210859733458341701539485204968144192084404449337168620656716004994742230132794340912702515176377596246425657925030569020172821140129514272025018008546395721761807578948759327608811154967766114561913807536529854579792837505385326248227735752583372360923955632632480366084731253322585796724826859247905310925255207480450438683300991436956486635480545653927438230586407630297885437748202958458856184469669067037677115601266063389860530419641299698987921017528451948893973863996465769733504250427822504531467106641326212901644130277763101674450628788127676070807915205624060412049922400251468530385168061620670387522356524058946240059921296510783642726071264650216482921609139893369248470895827837703428014016571948380888802267115881933210275020322654620546078844451050849877092360978306190480869191224342316769236917064447619667440906588316119694521495634770915175134300438583069540016995075152325697487208802745100705338227058658915327743758615988799800139439377579515026041536626518648108191438426881163794708002093709940824627520916435853394402729163117711551409707650602210075121504613203732069435009869289270754395149245132321138365079543956724941240408113934308988731369771833907532712476147197874543479030244626949445092601687235893523820056273950745872047815073211340225794778697227212926549076723918885539595114913859714845660742032326366964075175381330876828237803301255721707208023062298800904334949174804474125840093907795136821282306502342063970824393776619393386306115000506609493489273431527184675801091561103990376396672070330333514198124715453584468603633787836814827077314676094466081338173172791741034255619171712498667545286448077067662884063322229458837824176635249686431714106678058877386366647096067268936157807621393367171465427823406836722537295555678763276554515511267166166159238027314450045557393571057748834617099435958660585277779568904058745625277822837432709176336234139940364923493865874827875833627295289491195136967340246517651123004161691293346515234264594033957441583612158142957324175875728489130093985211785909184890181358891061319218097700400756461091345190893884277057800070353581732355099741194540370194310343702528624728619651024410464217646112067493102459583564802571900245742352868914402564994077399937790335433005574906437190284660305050069579608488463236139943244070235189992457364204086058304641002320280705802885212808563602574424364459847070421457999827513446285019548746994946337195942337545311481440804452891696227090204413297557569761316839632026568301043931318974195392065117560663102153655552044571718427795047124155269008733213150258453966555395094198172018734918122614440740365583424776225548945486095800364171831155478014976594430320252305801543654256887582104569235098990213414271742347227693026086189640031910636499244321273535293991831638918514315836763267516474184864789480033473813359078550178673623273426284192753165667649185139265959001014859419334862446953593699902902966092027213371039195695513131155927366830229142888196509264187066716472618483979119781265073888923970356690774764308729671146428570267830054677406041311520306927417018638174227951429426235509717837268808000228601108506068079331891518518829799980006212229048296234208499380063559651603664883440617224913305406311427405371634036222892348697292454991956738860056982382463924248597056400024502425250698848425439574239186904842104512988499871464853907697649514391868488044076452301669096241329393463067112692377285353851835703765033188754162157242270561722822945111458046035231905471615305513245856990143746845064543663285271875526679718689422251835259139083722024202318681739808054580753667863576147083318497610323103483013806073154105250438393857645862582045852167690467591820084211703173167596295263660185679486476950323578613737416168216087721447618347126803184402365696457338642223160543681139352036940218475026622178104356582678554667640879407241894962149619956612092344860642410259417200370869621997689010570029393468921068245846350175033883960417809441567195038539663692936807450521541095687176844642599083637439996246116127454644516345831732393992068376124868252344157710686273305496561543052589973245400833353926431581066212902255961786681596191932658430414244691755880234848409927182455450168418652326820011855914788133937122684718719584806241361346763209673485592038261626339447287871951298879184483165345993392347012555491924486182841747459451687235962709381388890007552508409984491553820970851557862192107750316986457723893588812543540988394383231814937262806620860332549532894657126002399348601373414462007696729301377140649123323355214934283972718113730452835036771919754831450457929451229973110576250656071687666761294922711775479178340514159522970702191288840064169432382684042879564326633549325698852135000508729339285988115395132954830945133838833026573897847667226035590743898311345075714858887479848073632900097951647849957366349943789923210544357520161827124335549029043969415697587793677414458536902012648660584543462157377082068469239467160098544430174788305938040841485875667929952924962324235143123868341199668365309651899815995784970476772984934396622377651498674651345041262817729131264172388121495800881883515879710664753028948989542418916229195455974517551186172808080340944444136949765299782078056825374051003443399595952984607589076108406726500129358042862529906031214025745630317177562215955516736573744620735234413797043664456130449506577290178554538698189614710010269573643177539984508603299183744930326897070175460480948095935558314349575299568741106385948269337904131686312265357894355712846612525434441811121481615327631626194204512416901632805972470523636109432386036706979695792172085298307589599858260018047034368667798101896179002060711778999496051343249629501244430426003345369815957226450968103954661097237306047500910149653777125442418373250971991326941742199176308365030284138864088743592160727660970330069719018799536179396888335654302129073614055142756787560057695230345737257207177043651812516399178003440816973935558237182677570607870531836516181925597980440935416041737853712787549117828932674946573484240580497046413302689902603292817188959934594049759278308678703691663727457625887209353453911357096084936474122793178805213060400246912306474031184749224505583819857182657077694361849079317676357653294436998157649763885892708874561688356206012765323745657114455360001543998114346807647556308229908106617272812762013523737942071397920829454503272566379456635449811156066656118969340754005357591273540015233892845991609171022302811861491144198259984539261801835415856481008480289781303495518948730494828675424133609697538436371551626677278829322539950188768361687104140230482436572595403574808897831464518626679959794402831888956589085794794563462206883823711038290256285322788032686236135838259163470222770980367144270094711022380890674328612060022205513983792341904266978850771272723671897207031594737106788330701821618357688034995731357217440096302199213289339772043203348561627480583371003324940970558142444211153267458550729399073539334019577890862084077065229222456968316311322438586935372926606827661780800249398654063493355848833904334593486286836847017196167544967253966347390773903024406110112398949136861304229534532778513525596987305314976544534797044455100891812388420691951355189354077591745823295168647823608222926371678592907697053631418870181919870044405760910960345931888717844690569016754958750905150177265435280850927773781814814816197320028366497201923879331355612207841305618085754031199689807759676977587253162289344609750834349540922689450692051100369406831191780222968273220095799844690687487754039048388056795507362221789377203844602119972734462206185905387172308867339582637483597562621003566397885691734413059017738133316845580641788068332967634606224947990213515126261287444092289150444185160599036425164774623670481648487319580882161738385951638549673110916991471704146485634479267499245489250757342561518092853579765969894551938048487588643135427953216912557033440233716642787258538550734104633149462985419950111276000440824593171614015864861118029120268651317783156381495650423279168969519958763816565347624133038294339402277820917917393370592549633739259861803140631177055597180541746658832057060701557688940073513825159401577621366444971594130854079108708593397037135914147938457591110088542782335008185412779734431842621086457615693590698397551070320728935825027691040922132905111654178005512722811878192865227990212365907466784513374154992432885335689524099478681678401865214556975475760292710548679168716130617939784406162614390121867101587227695554170911532573305677212361534926672433318321256431208162552485875672900621876531904009357388405895817548750646889599663522215284704395185719870449093647695341930114844079891308782601787045141847625959687352860441441345208721890042238136839287190822063339130254256948179286268762363932984254676139441359706895519970563063644783269156033912264375176301530083301392606183425028409889084682867340833286543822615927674528338150544347688510288381588483168351286038131538123728915887694205488310148128712213392027833564962798701176111487798986686953944958886580071342978400537993394778611830999842001642666369402151557007164067858161055375754060429238883395715303971869985551244159263792213230695192199462566988863993838056742490493092462211316170781209500115800797652564486447343651863781671966786607655002423822407068471327170425622017829391016295293997759607769035560342341724906151731076465916713048268286381613164275673470133159407912861810667204013711895752979352935140454437003170060263253354159680018939531048560228865008553228964637089600733820065468660354764055596034078756653782270743647620883760270418630576849985760418034932787751468668237071167402766910647058682287290993560718335237713342599869748709888890049345146237475969146125972614696611003675890665821010927522834507094433752170643028926467642434170962621106307129398733627996526854445065044478682093860641055444282508562267998740126005261766965926261577579298250224111077037230265178650790862953103783497121233218581510972536893124836293326265083342484465373580174510154713392131564847997900291313044139525018961954383289718897119728099985940530737509257685444133146185583104445489118170427908907408957297420182990471876330853753977374038072527569672317103429984186654893563078438848912500917512559893792491827173519230890134680723916672483092086150040158085587477787402220796610312290783544140178621496126869205265571393513415577098732822380177476375831163684094420470983873780864704548391725728141218775443853643302325680675312169958272251999220731896558826857764647322145839545305755749049018947247250998474757561322064010205617715529616169410653970058205774616616572430997487873038552886330677129517297884941877243240222564084548135285247378182621448192282795416634766578000673580999465512259732716355215417887536767462462459265729471227020584345968660526185527833123513809022738231849580200304672615551569437502886128239198969436365840654118947318908478488979407956422804452101197726175254643846765137840137835132019976732042615968503929810149492593827171243476163422267447769225064328545189710551384077515318433247038970812398251257959633733470215534662707895627606921817750008067153302600805567325341422158730670103982061254555705890899798161776737413483918530390319068906081163963075947187558871583279349269124378196645942467304423868576513999952523821834317221358137086800450971020446821024900110173918796470114385092684049471417120778865122141453092096966798623670535973605557781191789491084708763806247099434248459212982566852541095654831067562526594251201050150162107233897019085152132085265871623724023106692390524317523862363289342596540427886732078622517587911559688096691734257309897742858115501361578189397991830563219739013943404260141050153840690642419105452062947550883511213152663069059903707174158956841220297841245718031012360648061260814553371639061884225409512265222406609820485596939381286909638720336690970161303254460890367660113835190204954370421375967490089187385298030207657084539126386841077628249098210745600933926575481229150669114504332821135607719573450788729156237240705879585253867428451469872493835255159674836868442505033031456784368735008643091288477333016234906362305551929531666565523190794468884833510485597079926269247248087202533521629692345267597252320727639996613532569506826465262316126556007711383235390056873751427771003332946205011758470161530793138634022522115832151116845080073921462573468658609964769927976992015793826999115057521318397676651094862966038048659411866361594415110845680990618331680540398374870261388122041491231966653553308637587635757477371297147702852528679420835063144532061916954078198544245162872195103163116639622171895737454633185136837635556034985281479867757623411365860999222569895353936354460200237075146081456178434177252695601143465760014629407102201152629661977252556985909112576507295178987885277553368396692752952321888251938914450701957576262300608021221572599770232817738512258864629662734477578141500989836393942734915725522690763467174384396892263858088989170344937530965945978137715669878777289952529022384662981727895049415505843558336386657164740468524437881901319586386574315822819646923769579124082891333385333355404219654691899973599987838521204824157130706520391118693999608997023461151879480642570931997767217279856329430546340860394631728000759494048064309647625947545823041143958305622864938386480062845561714014537727589062264871108341297394316978375953837544699216882243760444107493406628678578421114035598884894296165163370549915471563137551271399117284569306825972640208278766236251312669544965757367238997005870537450087444450402884259611075469128093002828942416371899553279433835235179658547335111234155189358932009944003970102175573123149349174551421236220311759980074235537999585616567614671604963436625615825910653179275503697608406721932155454977100027264295862562986144939632967743961097190805007862696322433235564196870625956293771371985332327537447624733731472321725120105441956926117621487459251681611273224484456934753224447054032860515861304767026400775970160454701889604215010034956097503759792441824683182518433595272625202112185810516795400857031093197667428524749387508116987688265822042106187496957006572069531177675762053567440819898773268617357705746732078881110351007772958345713296772412373673870744699765579368631894265729410498548340340694457285745472715222954805225566968489317825287328578556612913106329410029804497844898173357946320794085781619563403890746970405166083617659104423679067377703011996594645043484405501404650406588816808030763156972310371012248125906653228908104947719609348388993789866550637634605716929583253949914677213047718294899441855514758755663162455978591523620698210748267062327202126135543414834050648366338766728745543395445907116231488210095117600156585368253283556475032506975533395575182504209482196682112581203877158994684681564848284999755681819001469389747472132633223500805034772308671155757895043957902472706965142225201687144505290289423357391329810555450486514603995968611153902107166042332869484233679716698081836076220846152773038209711466988037614595448914146362491486922843170300838455857733970279489059851366805799408966884032069856399736431376838302603496929993597902173922315648378774311571348506230068850085852831061176442784981743073511919433775442261388671371770446039524635563182150916680905531850743485960677612415178351339812208246969300376369533296125626489647167091622347133303670894451643566513138932916362547281470174593475266621325275874646023704715008069371335824865428242780630129101630395023957634640730685926478156728921629910781511490647293719791701399929236318578232399046215282376374855545593948437648310432709486693382857439123517423900657104553615987293820686791452786011984986825723831692478685486206067634614450195006143136536140095444308849016595066961209163232526603584266653574059779563855444349560467214979332547218031763797572884091303546345973791655936449323375706442885710732009106179891028666835004509014143118423964426232360681801607954847634528459210294064713771240412044142454226895941772969071511399837484452366726181080552316240512916670900925816206315404755850178576204230352713652725404491432518365567733768804250121381773707695740036122912669658108447012246091596407558571438590575754184454891861620719418569935574463606365685460443130267446983957239470634028607861870631213930439163649966543217781677296967038114537173274321700874454203711378453603992664808557147520346881859222121497804269699124528536341288416925331514768174662354074554978538366963246106889910376387612992761307481211378038925952900396726258273994364560707533039900498196135981368646702589673276100205074384354637653401972117597151003046068935263853091491356459143948515079586917276107451498740489571164178752456516579150645789398371031230854719489385271326099074142043419911573645967776009410947318905831786060909168782492555915006506759768299070316257119411777144260271700823752689855832855359662946128502736552368818237171987507358659946499933979444393203790511680120163195208789558835056018625412427209776579674352878086040546755253573076236466582723732221223593886415918033100832911859400759088703021210871514774594531861939960050110804671886205033935254534983875284517222908234656160599211275039302590389136089269197593874305343876307010641121330914434412899428814019089695602203833594870818650445762288321856024699174516320680875151135485758979104449197742334669973655169268597573576605592148865486651458135529976878423592700574975186046996814546610989816752314065858493941136360207860545958345147906377720562025494669166896328195538683829081308097445917205448885619199944902176595140776832019564180330803348135942112342319237947439549109275175752070869896911592381726566190328210653031843132233919303893602624595325489441755275862738284238671241548245724208448694897089565746506743932836775666253689406554674290011074744521730801585613101214385266156399970523944639513943959881404568643667019254030673447831786646496510941606964861440417300216785584332642220374402278044170801497455490991848657743600565596919967128700975971639680948078404782053714446016416887143299414987278441833015747815081444178235542236418585495598069424168465633559250848276779344303450071509203308926888459536111940561492364121762738418805658576240543259650736477364122475704758185623745271361593261109045418608179920487903715706660284659544326710816006640280487970131176281026994228535813744437222127598162741359778910540902347481981905779342767204038497396867543017258302173661521358056222831884423857793811145778289389482458019200552317595277926256735327526848865145328711033198993454532778553884224966040769364555686191048341733948824152071532176262207875407759411040508921018970844178766605470401597587360270331135040468789006184894566564925441381351941790013214549084457260496786906235605223763026119641764131193069535294994973623651930411987557581565920901709596194613768050054591891382084875508974320423182694683728000134179842562594524335327716151617849072949621721449814277711882692332992411398386745886791336868533731597273164193455850847694460979712638704880739848687350696147042106758730327721212068903590836660155322666447692499419534482127633325198605892215549695734156381741377634587574756709487538064127449469320932019352306915116161975002621236945707088067398651439449989138412371309592526070435876777712605715504073687203077687338184634099396815630371381982699446789822881755463011758743972424416523632808660952480879619735595290522103222851997493495629276833709055535470998200049888523680458502352047570732870415323894750387869939540135780900460370785500065470454441737660122938025453943394468855443373843082262541533400537290304304106614339761951028177123701965327829352683970310306435484067646751195811930532362677115742708657577330475254090420229267490681626444882074629184145915804248899625135623497294826479013569846545382785541469494154384192929311132598961224334800070049459893963439399222569839447140901270570914992432168121542105463343936970344842402127765330016240682936817937449991647291412648346094487710941073215817896493926310589127846261989813822426228812760065406238053342279834428201705501649598237133493349825869103486013299462706484154509807051805314233567699374242562039997254572066864655789183474061432677233694227623771465152204160391085367598120177089819601929927751490583929353695584464317580614719151482307072922556210636467852328906421079560314208822180452480266635327353077985804475038768599978403949102295557432140672278650594773758280502114042209362072818538634633482950906938293386512410184579292931025048043264509918564073875250858578562667613650094830279265411880240577034594678373308682859355105680399894038363289701430311562200352827788753192302673395947737384105337866744881413527174959865526054224797463636577867904594413573191941843173135207655382149396144720403696633018375006814501466497571070493655316461164297953062161617595602873743370271785215019970986653400102615391398780419793835767607220729094295274132907448596016208725136628019134867488843343652369108874569322185065547135962923368603621537509918328655068146234662909368394025550072784025083502621574300108786664197808274564026111956799338941619143361377395116924838255956793692127933142850003218704861310709882951461662193567883804494079979852932569754492719755985040954986037777829740499970250237465456874718137324264696865082049542166271239860772499939860035466425150289221364067990921139461013593824215143071467678436352956123598317218741082824907035555411118496012243571985796088627062692855905588321597259436035661121642723815948410101081935363894187318596011171345466940819872232827027055647163164109101318965745332980138888974711105094538516674980361094223243706637053851626901491255036120614719483882073261889566331999621549994536024565285691589405501839960433700138198176053428098656517365799796920710418136325608134099327040710246867296392577182141787402131134624754501796253114078865412374372250838875946337752310369005250117961611226330409560850765270341172319129059586011010378287890868494973136513239211270213150856269621512989323454155763950618293260732873377576039973201311761393630693786177724750558024981065177979475453916776579476970803717547906197556676553242766313943485129742234414047611634349092908080154535181929978506937518999677262693118385980696825843953640779788518522463313055600632380296061870347647373873066432536813692864470366866478658410441609240179958365361546995450306560733650988741497823758020271279226760444253962815360650773980351822549234340681129362281282988842158059275746084477776086932208977933031587387250004413739891997162785510486014439483698823666397805056003405990911250158613381224836216660994745089710727281731180779415869367465237597420285563389653258098760961161836368962819530225000770812278907168815882064279269297124577094172488063660316077297749701724218694103068006255112217542933661673331758683304337156164360664700667164372797894676738552480571588832326456658347036884445808430388450857714811472169734418773596804942513789774334820939436910806147608828724692561502113254882243564642335222209701346347193836766255995516819844902561488947742007489998255874265446842749646872136101203574000220199254831780404217044783427813639630295524913894850342412560800689078767667055070207709832696369877944707376827079398628530112470766930422000746958985583439582773679984891033549459811175719499967177471566756425611957420289249491223173174535763222972139820422180228363423688261936713054459305101720697448611935665484197030253350256678625853496482285451656625298793425463059968275640125754728788954775308501312688623224865275093369887364182840331019067856929250961240348420983017894736145152925826479473946816573309939998129948346647976515868468430537426689701371771680068599874437454994251705724888939298643439353316434323183032921631401871940537590475492921326399562737729643736088064165049999084946562354710348649929052136312513519812286867046463335727108469306866374806493440694780701761792637683289535322099845439058829599468934940119079019930517682368671457057253508971150171235136072373418887895505291522371239067977873086224645929553029519195002186125596370133553175086530296688853389795566398837096717491425410951940493246229456032197323794659970572997577924712951358877996263762584598344718608026099256310352800119443811841546100139794317550027450507106940086723899221707291248987208645077779468741247428598518254715199792516131414423651086893495958834500864163679012342850513016480567630212078270010305523194961225905545002250852471549501927146364301470770244920427178761432995325132361478604127199350218773836961770370051612994038089014094825933106964574511162401187842099387056064744953010577774346797445927562684995272955089191652712848565897401244774629437047377630480690416515328813222442458919679984565078350979659437924306073899953521913072120150126655853293835571804676987505091906202049346393237581110579845974188650419687689192063083685695347621102362547742790929941853015350824258812148467512883396406372261658771763040133203760695712950933685916946095684001210651933314799267313015643408450076556267530329506923882174249452018602663199832850155300950285682569537284726458794660870007373255031684147491391747245460522582242470809572979106175735340860867503961956998560617842438410765152936345191977633171024818148708370503764668132386162086976458595537714367803269961935219277964021678599217301037486918819089764916827556191015324078035697731126506059266711328384965076525193206913186163252933225662776224182985808436714667028860977924190953385383388082627282545120070596051937481042737929980928990512091973424978281332391237380965779124296091889761188342537642570598177100354591414605941001908830924919693330490468614440830304012466925406225064900803494857318554126812293966755463826155976385686102379571317583132446394595334630393995165877986959708940919039509649769894266667352119657854109016628057346035826054363498430663524801489764991558404853723668627866519522591014376656094577282963244961607203919492457011842333923696632588333113566366854441355616313324610110161735471672030064716178447632518789902173184109940831897882373780278527722031423659298861632335924508111183569912258942467284576329264145958893762828799285690312990707955306230948431834138733534119815076631492797221646582053415889006659971200141512589795965153204799998844754368459956767913351334756479851314411141491849953662682365227549923813020404325195009188205554225721497279547957134114955218375230668868148858680614088109983077607058004286110775260839848675007617909727046811570885347247279993336092581735054046486522001452948534187906210903901611385613028276526123357819646294513741278433825537600396992528903065485912195138025707111242417370281368839455200707861507004990826851937791083472621892665836958764762500583297989060898524715965867835356496069653462370149111299617633605430603649297811239410609860665861328474331488575616384209871001282474800732948076283244326532824362593808499398261977658408379104336344504981465819328330501611104648870348237967578144746076767528976674309875908577464017966373464893604948605720443907522784281557848487539074573003022408421075340807706573742384908381500009155701774080712648306006078095732632958919116290164540098381753263255613237471341123729622853868159434488738456873378187432627511172208760255294198224341196233669229958700780177827365802661587685758481781319303762035763430395249190812488520492184453040791785813864557917835179644795837749588259496121713515975531572686653724063899078208491978521073625002175707020149335941103303538054144046138090189941472338431150339979810308483128015297497793172713267114485524844838640321967549440091638317661217728143298057145603518979186010640309685235476835440591221303182913707166687514523283472423227729422926975114897805102704235086424798722131081479050785827054280400543848834773723771281838793091865661468398922949066717195207399417669889297813073846405527051895218592430182719849013609325430695001863494715045676765697414011480247926576217740111696709889357538261751038823506844234093857261227478485167253421271638736153519256233782335720695117683968560969661577357589407367065064778541825219410048022121591170062715528263691029898629915626675693912637600065230774629605161288105510283924657911123908378379061267042007610304258728231999134141750834330956134774419287842343401289531261885559424661789303175051797482504748695268129956180630156632474122934219200662701847367997547755569901133793926873492914186430619178224361063491517886483666915797619958372772396389599316519210844959049116876470275042918606222856684486961198277311911228886918829943847677376080698682639475463770985804616269903402150757491738743146957144560596865514559346212354615331575129790985755637232413775373488321781875697357445018726666064449999069277998611698034859521947897081989825681005069070835043664753743784781477911329193598337183711838480458696322398240583890337553992787380162500824958180184760298901082757540669716466198313336216938142322837148712453088524361762669844718218491498901287710845844086631668632642714575395305942050792298180892810031584128911402871172137084262790425475063411489084897421103019902341129058591388421935249266612694617046419398390548188814638225922396813568043437325627892212362735964152774828759906783908762319320928024797181038008323896017503722817171801575664725154269246194390233688188304571278500162354005145808615406188844808080460047586048399001076593196945720977450472595475406719724391133188690684562927783940527159631103573353696159176125497299351133663782512992587064620423481022209428926915552586757194551132290771847220672753556999121915137778254763210342062778294452460933257203360356199134831171684672787760901342214091408012058169592173071795322520685024291627384071682201665142871076091878811937384088477214210695297556433669628544196729232047211610551900871533132996726489780244076523265888868322500584337337079497952760750528674305647457488751647562083592097796425009551448268899988829348768793604611663077800788355163098477609474196696159467910067367891079505752990790033983929940800816365097685536868384266111972466636884475117473397539154763033550807508401163185221739093171853804030954237882028401408541953206438735300958173193448673555927081419193821196497317341546549554699277323518250204342504703437566949410442401411444363614674694182051501760740100741894408374538263446533077483270306363276162988121090472425291766019053915330303897794443798164580192102792284830781246020574635148951237503017900679335702296654991012978001192084554270187634342556954799014372223329752239215427265916590468425609573515422403815233260802414998252341768774839798426943392217175285912313051177552610886372403317218274673355386477313269835903291386370264758871511921450847912252995879029524960493201902411763517606468927944672596981488251280032451513459315740610196606293319605260346476415115520173825909230653142142922008828735503052598851040625073301856167441404527756411840024224486463737626060736211965038738075719576527444946111495633347506919036588003745950281377831764724741262508800560322275624247721619758185509314896250112972150572410240884120081879884870758472346823310462882869351356895367250046193180757201456942070829823168379288109338227303344598891095061269321159384849851511126849508135653785323868828964173608973108866462943132796540484138312157467206920625732786156654094654502536193460861532689784176862225390719308567652742224618077975336354590701215738074524147949301895066097462302661250951959450256050956016790546253125325468113623128369573646443538225382044261010205189093785293931172223851417345450018194475736854910121642151780907850072213258153299836005734166290958386730032026012449073443826990170587341897310776653700764038101437823965758545557660795526359114936537342530678406031383756552781803889145934387131961087012619886654527100212900199171416571111793724743557302387875921836326452758668366492446356724528029916783906737376839795113818128699628652192343948730139977322900831562718988657062583529614781326012676122650489474809952311565354105109251619737072021980459843946855341926953499765560518416444944980959101766861538948866375715787436083636834427085284899879695540991729960533381807524181950899272931771857617466366035033203427596078735422894936862751404213515667964248988906589498829584038717102197999004366836593595263488875598159648367319430822050715368623827890074117516504567422346975883908509622250483667012770193968660021512550904403858461385105538596051527642543974461537703650292236039054903988742269983031711920572276143653632960440906942695844914867355045692786167688087024592628057608046381723271211484695659882626593073527703907246958211732100168249715609780446986719390557529924103692175605967853731257641958243052915188155966427301181873806437993531404649411619218727192589154403814450165626947957694931434705450360865847012487185984989037529921010639206374682632183830799252312820782090190304256166789821164330300582811041779307069983075615741727344746753574515437920247016804093652880696814845917474363140997892112174125329552390939829631568552742112241110242791249338927306287675123902539668334472079995623682048757447560039990832518067329859893258275756346380319147765047378940119334929100696718466660752428613944635364164564923625639778674198277699996169754893612328451447461376602433251206995890709722539880640439103525398593322339761215550823211658776039191039127987515278443374259827204487414165177645002169245256441728857748540436657371008437852038270550424888415114809778346156786020026662072381440995730638563089179320372694101110767014954384317060084281117620882644952564056065399151807579016411064300140888708955222224225205580765526646064505324787531227781908583999096046160474724412328250484210616908743286377674182969506451486865148202294909407496777477942343257819784045967349513929568114422822124063046477409070056000433537522661341769397104160503739211447976326203152662844916535107970936678026696409177862112856221265666644303087244274167445911839801140363009129450984800371067962521534892350421257435916704059985820150430829626404738192112175575451950477891632472319493834187497711539864441853332066522870113319010193220698614527270529994928875131351057980047731806161995404677162159064634762591729110209761738836155374141206869398869856060187447348827241201851643278764830228298810469282981341003151486962564559850909552240672045694456208138155839141986873574000188161485934316670120328065410346741324824076319583526030442408183264102848450315616316361533052320557666633880944706640592647255209952169245247344127944983001118919768046281042181525849868040714456393178205198351714190417854316542041405786431483906819445580161041446357689998068811457268165566365909827102665740777989290082396437498447405214385011288582445703658966514925451742186379202293470849830659478350271082683616680706104822341121592370126472924932326343950967854901866252296973117419373369687759001350218595064626197778135588944913088147604028905419783251496515342289684393779283575449180660703274078685840793640658663007767745736443222387198842960484538631402300008747062923264207009787711287296278326465237473009445960207811651642046475976428646636256470108654933753400264598895060500212627048315255661601675989043434932102630729711763578488550391257718524224487298462982204655018196048835266751712580725363394756822328832624629496346415652255346229574981714032277869908179116642354180121981825447509182202482724251419403828907451229725578724650529955872387870853084026440958520423150226061134370163016520867894723005827755183815117574709932026564358451656841513056899148866898288783720296005988538481989742757905332921530234129284423477876648450938149383387366076737493575452689202659299154900302586135814529323388399617342662367027840063961024181135173326063976499418127719576417456342218958032580042720084023133156853511337932149792910877862503318252888426837773171164366087728867251193519363000826475289445944174528921670641344243926160835216876739988913099289365100206531598310800803483988181308553488817077302636239391594385513765261567269350721794006042721411430444284469695634497924473936801509266400301347754217789146587752872803559620720869006199574841010102885718255941179778787198960137510020783797968990254495948702517102714968690923466533534792697130113077942729415665829003219169282225201121207046097374856415562089817240980473252703123461983986532655884131576868206019416137480277574326499344863521217058347885986926661745545562434830056779060904954435344886946510288600088543767206070393671038025630631700545870601464984228491143985290471928174777527047054415595527796110978827441789576859335586315971558837568250385654390467295181676709812765247341847491277469687034694956064891894767150819915917281364651784851347229171768845910758848054925528013991640545002678945900760006345320358920172483778438275274922043058983730574043376066793928052097013456713999652289161899225374217255784262835474173222460254705110069336184354061815072236180118204372320041618686988786725323402064699665235623578281986105995612612923285284415907021475967065532494283009178011432118738336223453109614761577450552856123960907531387013134910313857111110593988129943432155768755510459245785105473662677377045033529451230725094592008186284612299449739503085728841772361087205162266133479200511089925374757478984068179554233762589183105375092406645958533725145141216327674321439739220457284767851532385789642139219019443598135752861992587752582225502998928263851780407832391247318255301006084061805083863234400166279793151756758749246553522193960142590545194392570706192216285901739695271838694612498699513668472949130779731963550794149728992740387546825634676750604212215791106037500206541585133394014552691069556287043737071664779456931082593564751364880726074544940235101190600642117030607702470295890275205071709304363959926089556395941563479433386515048859727439249483223017417656257192433179401112759847774504811179350773108816826459146932360525987542620468294868009216961290797366606379081004824003412717240268988469857270315738350014055143557711720563511429804195733251003092327774746774902682345335163889885446550704385557949969481604649822381708211550087880343391936227842243456869144984876846588209390710594253578898687539063314763525760661602781636678229980528911714307182335997268711996775793576083114213398403024361909404590041594404039528099860534045238729098757806213451344071673896663758578705969768680685560497053959217647471291378019465284076241661904767789408294501549472285870144986238936419418939542578629922421751164403905615521437483885151255897167429565507262855341792771937487286995648672286377600505784900926180572595427942402499163353818132982232566914231516849201558258745613525114502171125237687657820985328540394756991466587861959814270443687264413986333356342512927033531953679705275746473997857330105781668882928861422730039949105451577845304592610087548583476863071459121498260731458490784538662362433208395716252236169905051053264120689014815979559010376465392137732801747572480481045044504238938348019122101074841245835258330623797853251474130356649268096069532919919713199300080525938973361399979063192491850496316092449471866179260634081179598848897611159749394642266555656259606842660189742564357533463980531311163219076182351675973101730605806006643469643195381993707087389240218556260818915244451929679064268738487628525330194790892304950367628745009633121521025886495027674197280143527248679944988232747160258417318083121610329074203029415239666204018457088486526944764754209466357289331558629848360821956433573784227372397640670711479547894868747208005635423006142218597393491817312633184927327587479522913202190084468931338183779631548295249985416372431052578124259883688146564910273257304751388889372662900524417410766136068735154839771797051642242823809710846201000933207638135795355926837074081894707343101056142920493412848496316326744194523554064394216357536864117611793018862807001319199519696355741856558812458171815204191896727316336729207320429454868846899854702088558364344557118467645685556696159227523269877700253574526087243964333998326142763166747386733354990925388146092792944473615648460212840364399086836884206083700682887271661794507607713706664844767759728201027730203669264539937362254333650377982616963240086739465640469142474562559093047502029743675095273868785029275909101541204459990757327809259033454945733563401207918434647393728749520001420844661452272022341776711832505193913368626324519203109617001200393936539393194054150273446229321774388668754797634574693910177862510943322358506605448272411998849341611994634917515984116501940071204242872872977080616599654423357750234891666147985503856076555995029700275502026486683010224830085584298256696769976762918227816158610877318630103474087329165306909248728850103561662830067963059284180014812995506300084569952192021019546706466296971589450225331426469483301606704091539949644507939970313259712617925746812923411982500780119666107509208020525491436899210959902638215897214652487598218811604748121671213932652190193394321507512277049902024555033018446443259170958099751397048973018710149389011705804699418493723986975477853541509015210178346650310998876592957693820703619110209584507655424231342036979322206476981943078780649217301959970698332665959248635788546693357794126107153651982954498346690099156560120340295308037841664857072516256746244876020948528812788931503331697168738376754939744537582780452103155261920914635454115883306223286215632036224922818263663715613170717533634353438440300847542606836224682349010870081573798528039442528444602615354002646258083698468748765962056106174869177806433426660745583606337870106798761240206435275737730752778959000856214510916025595343777437528079205164643477970963174947594501968031261388271172880056408478553031309503169150951604766134871165242397863565139843793575855186018011531177871740521816150417232246035528904978081468262088645230979705103499174140892432901175975927113166451473345137120476952698375600758078006709991790114237670161393177789937298943021987171083294750533426359870638278316874152909590647363057230022258460060067629423239778174022772647377706062729245096605211472269010056740281784893485532559009381511121610086686969237136753497218267248164597966442621575831102811216947539289936582011261892327415027130197996586192717239879716374230969253816373201360915317462531111101911332316512197802194991094554490554364637229512453614865414047536564916150559737026711721827149376655112625989238774891606297755185080514784954777899754299487170612723565154805483040207764913868162108861239385120774488865578250933701959792481601742572862375728561358926668098599976124363469030154403593150100545229292070644035378643957882397131904815989400768130572352502236481520517340817489421155073496103124044201113099735999186320884506582238022339997538967719423657708945501319110943690883082890970498566945711121667116301437955340423009571436698252046155339021707145456330023030778596416431633007075943457507752617000716633611834715333737700748155828325499939865345852914695818814930064428826556978862322844439910647297406655951878492350685444129344939547499364109821638295143192652131728912282922805707000062157682336278418308166378313739430038089863568294920509635129328449247777459047711634715723252252736273814886788542449159666264093229687637035264795503004178137715139062525747906140382572933752169742179595799707494289424403939265333404565484661610019088059411658355279291176954882900763023918388881893990084706150455231025791858303052701311940981803245873610324266327420304720120299312291890156028708558519361413939840218308771124675561325144486341318208747065840641608274342616709748549009620926997295792110984156336533369331684032502249211525925302409589733473735524502364079211145403659767173989230463553866600282882785044109552430269509920491613251265104430564724658397445034113265377907610076926434049377354414783857821847665703590862929616410140690549896714231005058283307757741214249073034096658620426910620691205041405251946820133769834488714095737218278299276159879655040639035932646214671899026534623734498062846838397063146421516015322145439058966500794904895610606452838107167339201542353531661444682814146949662406069230982336519854899951235124744668602271718541323427135690925677621461272076866455892526130306838394043746668207868479203896473050170789941751597575067830983864873726717967649648830929797712477362114921476692050742948508305845011532157446434464422809827202466411365467134054529013909506053730627222921471823023595776367231724645322006166775889310053386036463722814933446297124640381038850721741018172977025168316070842715305766502482806800136018996838006992710589736269073336475536271665880059590087538182606537819085249903396250294538021989718163659393234657422707990575101751174980252446826932129974309847775547332068262443921030162264086792828429068310025592538905377128749279122156203317871271259824612633383066764088207775551487226656120743019166161121137107838287216200939590965304117512724398128595163655837827052280988959758696704557013564495034268441500325486667142778026326377037544092687756422014827035964285019869313188185558458529075069827892205758678373509742177317654903148518953167989648569287834889949455567062983518686623687690051350984576386853930948809765372901579540131648679725137678882178265912432806802113926877949435772666421968150288457517344613272605017749038017326576655540762007116849663633183324389235169847107110413121126588654986908249002181268788889951211185787464117731287347824088151538779728174059771195190136130883537682368597881332907874592123358725991543492518400527042454555530588362201676539684147661487652766016930436463054306331151509683814437447567305269561258325339214855453164580691811073480069412190738722399720923970072581763969542513972364888327712677582017812203948508011609718529704198294602439412387427099327867008043281294562316434869249029954531719907345322375553273997415231315759586732529194101999664672922149677275648543604035262627972517435124846700397984666638974119898622889753661456721177593157187141837643308571676400602405055713366291663280900610924496167445409592545510950738867668341614717026332867684593798277932610878516035374202506100654051548038251908656674136679253727936630729392745767082790106832291887777183566833061693274396135491989421747619861612070668761042265341385247053022327011142219431590016866710268933269673149337059020945424338083876524745248871231012057922849800144394797390761783422676746439408659796623019727426581657168548237948297785584559237906042065083854115535793113860093664462754862970396836111335505800755320721695589553468114898044250269026880640903673351524717236096100177739360909455788631696288790109973157363277584239171966857145006243375201039704250784838849899998312581388672046198100736969303979983180782552327037794552991395397255381125121466513528199578568257025061466364492852363373709540255229721925802675261906576577843995373220207247322401191431501035400833116889316909193437224092013477735772314045643254255473472452785241021138453969110301619536339237689119243867374427843668681772338890231861972236286956663338967848668551240580645795031726872035532176706531682426718406303616540428454481163495876237607805619736864773445167884664507100210897075565981713750941416244022914454661715475397316277529666831687500305247431916072005828967975027837897643013818445222555123195933643188189188407642651947115735046922441055152390778264550742356403333185528806028502606555902779071624501381024900408522779334540214641261589953050819590988921623728538365179920798980374205541549069562998878987233461334794195240923004026927867189793726045906932325330756268495174371788105018752803051618150381589625567101892551173687676426451502469346795288571417233569924253140255554352145024134430808873862633334820316014566836925049290405977773766984195024610978369157531432097877726590915091634427837679109393506917286321203183852459242202193330456107370594509451863837957718616032977064833594404099425609835028294273815323332491563039917188409393015729573540698492720116501164972119033679651826143065546162148998921689038994920911514414084196792787285451923287525363450526365535769793932345254137450532432004023553420236314905122960175507646374907091290896297736515885822968571505037450094447732566025864378099390886067346875030623570123343727759023607598089475286767514007804616225570764612234903028566639364631851990326464719457504662042015323250464203082480179301946200948000599848162878366226744993749594428023870979869658612487057142593542547104853998561099132880500781048706763951315301018929510930806930087866274603667565815836929912883012009572268909840842124066749080826516373278756889372463778140095409002804405428277785691229219074581045902426702575287081719564461586718117858662587536621579308371759794899777844509133462873345551686462663077469256306325803346007963171418005616363397808743181284845775677164761841897201513138898151912397837984816950792538450149340734283088883517721868094145607820912345166206088944036895461100625116205453720037349908091670547662835084878836764776979556587813025630066457042305664613509830237933058241149035696654661307313600628510672743637878483558783792973619220441242652938652264190009392879433465485007808176765965170807909396277223309060109074499555714381034510929984114990289857991781379405890807887442441442390612884541130842185255567170219878862967281539905448782067988175302857878825219871688048887020665833347132726152339929921231870729971443621696135065861264506006082718875146049350917352424118868349044824209233241098228633583401647452829326741448002027386352202026079481866110838436436025988362038565498261310688855367855492995383688234932853424046090910009730580834954266718285286587334233795642292723381805377477968784712884128574233881120426329039246780279188705387366248859490323488519183949104412376234241052091081643793145445386234998171039632798707265599756520910151144618886316565866062120609980218045061882624128632815026503786748856031014416700877546107492953793202187466886817744320278313406453410312027204643336377469005712865381337615162203226023445836760929834226001018960257200240832059728175187626592919232532184181494171035434969624065401212078138861572952821586618270327653321693364601942829720445762412496889743793003908919078880181505707351395282058339921157107256688329030804889750567154118076917305309730961500953154848925014920071598930598883755099827973577356465117108162706568305628213999043115794194456414521977836833394141488501376759894383208416769555371723557654533488532553338260217090555771726843298891199053969552561368565537163197402210228896340579160674055900846862193635516693141142311473817928919536854718496277742146109226791806320906864823026297893923314661215714113225242601330480954312745592655990021510167184007315485686091212844215032749836825091538504481502024264275892121237221328344766577597131968089556792477896664979162625784965528426191981974439453043504230017984574149747759650442452770451782435250939129379260857432094268683528846475674709211886358459904734688693138340247330105160157546566937833394920260905124696057408249683775284443030445392689316805114185646676810548785240489490552671133234933906708844227833900545306066810506533771459426006900467611610066239018828136563307207907554439371082588270981282332161694992551498481685503816139393482854004860483956682876261306660570689282394318757213944960942277680198637168579712898958556803526440243451833269521946580292262099681740458434336579526424333234784736500622850242384192338583510118426613717457687048804574685659913041987849870137862175880388183928885892613323155083851231499223524837965462690414812162907905762494622246300000759438932684278604378148093703808098742303648735094151436526261284824577730789740773593265100250892022424650677601919754701622866577889525395612372650760673997373870806379710663614678616835709642504667892648750048543680797710652060741823772430869324755814829865723652849055221513749139775745721405968723759660585332540363997103993173806757207870468896888333287596117785317701772532043569628164492481006081915786934857077515418560121708992654003728524955170230293809265719534543529437955134849928384199405274187311660474520451521476110756429436874720923324158018959100395159304030608441216167847994577962148307855224049726225853873208246612919030263787492104486000253076940119673234319736785846957713075797561471612676938134147795141793595805001053453825877729072790769370221443809058264466357904683734584569542294965024929364919932432165277831864408451822884203386927822779141784860876531782798081603236746435722371224240091456447492046639635698858365495290749823357095357960501586620927185658957019156788319197527374259808411164851712518391961667384355275475619429659162779687732495562514478460842944634383100037149427799663865379954869160848682559009972122236072535283326959247976964967619748558406028864371238067090225733663770379054415698689283916262836075790431864190095771579331412441086409469999823995253006624066568255574936506707852448992082678990777200868718699961818066230797137346130188168295849950392751880442103737735517798181239704430183575724536363087871786482662154954863279270788614642847624974892101545762019966359427035503226120263020254515855501987170042168550976350764655802776434900046161738328550879424051117922259393416655706378094130662780379928376736207502375600375756151182760707462512188872572170421202899387084228736537894284686255689870669649125983587536009233668919687366514604262294788345031127885103121876777335099427529058852940449878377110950878953926695154172606271216579739675702847634864139010180311425319264264937915067485570240191394217542732029643992187108905692100001517139333850798781942436410871326872913194634736086003537493074525239095656536629363194814562340685531292416763579341876028324204930318843967896912650344233332071500233746737814563866198750417659170737317060271828416350925661362224048993545774860354829012884888626110403386189980658451431376002269523740994033463466708235494893432922948849193982002978645028641538466458845719125772090329697180014952473168209105794956386575002706742865250852087891938605890877988265634588884328563786159979320091656255966551201329144840481318597404833529639957680887995383234890039945803717885858680826747350745783893940526286707608973200598698057151048808158566173287478394523626723626280649768453495485711529709149559698918839198499804812863730759284432071820323487237429476034709090316920709784423729203478495510314962091897197682395534134611252038768538818604559807665658216262823528143136605060614302299990866016667313891325637945615914712933456634866643848948890542495083698159709769244033366840653537058669808063820574840625895136331702222216954596771433559107404335417549145696179444850501856232949126640536406421729332969825509161340905839305683462976718970019504767365547922747477915212337088954169407543370639210121028103061385332510844164643330365823881184214889639782736357029012490400669394931186734211870747066309139590746239013833222860359652706486743115279118716626791298013181350850448271601714855036302588861565594924546753711493303172034275028689491263736756659961512096383553811647432316693949228900341568836573855290665617372451888904148834544779271632762618044483760415451856235596403556818014579252376004729930150153494613225256832718882011466436685314223818971663487285697086682973958035293449842060846861026893486247269665566402877167999860854676692808186347374004239234964166990970113944208658728616017764008130632153487813350393653906314756647743138343209904704987789137195677731767450145465403912930730791139172578117827087475641025348854158175422396954395729791580427513497124081051785053477180723034985059433334093590381290656502329580570790594665556469146598453160775882793640010918382906114463278974985384761795620476866805888602657564917044198386352374875209919875624025085710439687078401160414200370814706185783179494487881479243677485783575536811011884980034840639653738063929970689235727579925859188547561365249302360387590806902466133741265925087898792527354697988983761792268369720566744385012624394024117823438021575049435404673861164512916611861840337414301102596181191585579246727733448983893234115683408228492923516398744937758773677625229963377117989356138094479169008514994090933738634073936684460461360767561566112305770126834551949552836989922694589427518989485913163631032474722613668735880482491806010402987594278833577144625735133503223057393011284751364621230634119902433663726746713919919864092487375194964247466620413256490976538649650277677868796549236210703103407551166601871720957789707916226962204097029425218839359362708381531308602793880877509527859714747278366800680445205642954102577297757409016256065457338422534182557064698973065430515073242603305507933579047966720802069641977426936426038526412720958785730731011797173253906478900445350379289566240979145930020733115255292023671199021371624549837136915340420804037521038117159985574385470474166312613841676057598569123835491342194446046251716907633246406728387583297604812190424777263881435411341487460425298566206955319269576143785689831792831181320141717832540881356150114368938144884716630206278855588093253471518582160967707546227903950250001669687696243440828859282658304929717372344466354369068846174381520930459252859476248335878764561423712854482887805156483973246467651723746189252594296475410775247573040698633081005204839047242240076434352057444947388982242573628479182938143751756762823174145143585868525690590730745826200715394199876046142912895128106437613883598414943153373385072620647604082529899041687413987331536747499487920032753946193583936750613741663026690858957379876014059582690076578913352606193336469670220521266800000425301441474004755373032496717242479499113198877404579198434899075497554303979155138869562648402391880239188255188879988694487592758215669291373047460421855076566925306288154072351239988527039192964566489973065531322107541158183701109308161866053995578771594611437071916845196934479609002732309858922983693633051878810642115070015736177681356306710302263193549795801696843048622466175129608867329880393689868900370735111115815530190107177148762404625136712403446479474094030152007307020694690455550550771085737254326266763190939136453472322567218056452035346047193882862535274147322721739530705007124628785432042862074779321649063940176697535583250143666374088222677218914489153053776129836098027925872239108167258786640566604594281042206496514925255720511436226920200020988604310560569318948874875442819043079982762202758904355288683478242977436199522484574354330681795959692738117759416495736125431098212482537954539678006721625588594147818556037745624782207300476526854861352417334083517320066664172191436081786263335049050876225212595381413329563421537432102122401559439904324741756490889570108631512508167521825713730245660557267784714761979806539708736812675602012931864465808459111621969388077344956339692325686075561298624264466212614169642902058179278884629374143155902816499403139780552971527852020406303268627362335617288950637746040027462638445987218797676008091846276721844289204781466266263466854354080618660173932781017608311001677507453708890000928635100161204268693646972430999838308642143156690024162745020969479594446036784307591831072077202521896181224981518251522359322428238873965951384283464808096344133909250035543009710395965882303837059084358190621642566216742853953393352827169766331045696433102774165267555097823687101654286594662595511762313810920580395711417430933044786119967770000992154691380178464078852541544809531393399936257004269788446239809254347993074343093669636352942452353428816329742060542398263037494739648089643143583321790924178926121622826958287843828837315488833660811083710114916243135772956300066623105622122951189923198208377749060803681682906416041469765982783940636034128970556881565286375888787446626140028582704746902657053464636169097375733682939634609565508280049358831180796081001323054147802423623138913123095558887780224106395019545176512774129937112413445835826634497407676618933035269033683963420584782802849865286860899207534320184685559849730331561321948100196330442873467014413432674707150845530023478666627177124539371454324923412435278316194170778300016586197349406542145382529112417387148998941271622814651884068402888557881844669429342969882847000268112101627300214062640882638088579399498910171265733142747614595395555448631107530383339415435062332488138713057694521748166357216007999162625890534412822886139637844120098458131732645320853287373523643031387272743512798671014097988290057398711483674503303009188610575446970129094523246318770607188355265735644133027938183721518639915844920950003852194714798949503116825816301486071478409374633384176520284215593393783687334882854329014378910733236120898825920781691026541670694195983606408662659951948181373764805035309202646712202004812674948186581579056153981180564528662125666390418848654658280789303822213786246849455655590723788833377710496503677537091104532865676196363316086364525544405235112734140105744035772763204776815109194592913304715542600702108596081966320737211712046304316712135889356840542189700555800951966511272542553922158377182711759155806142078980006942994251987728009969085843889521094600296565913641105509968887664304508619137728589770045927307925018027680273073969009746432362310978187808515997170504969529399253479418115492140365108947541952186630413423666225740782796751946277373591542124473122453640750750868859992905429312391954685345188548515352603445312157520988823850926164211288010762839243868494589115682808166677387428556828059077578715256397219425848738802831228126603026496914666127239585632949867003795336827598549838101553907482241459437660136780141168934719743312441151700498596541579474743695727540782359911984559168464084144333356602022534281509700989198084892397195838582358585753384315143640473663675043597723954422393746113079554675631857427053740588116556117628724715264165462403127706188149472654954601864283404899706523382050192583574391791007490495261969390039973447517926940019706898506816835894159433808087001357169407776937160852744156945387537313117296086595619861111387231439101936769560232347100256323573876603494759424712040328639577899486822954534225522851027604789205260264629389716731558846138165252687561296415202106968380270748390883173826766471860367427566602592211546871420550033608814885437736648226828324006970236396155843568452219046210104133551902816178030315642184954619823239251656091109227800483022056046760720757477123228921669677526234508371687100783907451194675014844277410528174645533529399277391974256535675561827064485516526240979190634432080665704817942411224940136192134803675261491171002629789051039842560505289797868764087050242883870171224380086509251187639794197915595077857048933437768396557055148223296312058595395056796213759740130186620903058729808432653038545895907797397895424962028808567262194207960806701256753560758035120816933303854064691850703345992543040632598538055100677753414293470578272605592487922875008039542065144613220477009271898384114042702161580104762905830445636895812338642278608839323964842201874101570976686690679136175047366948406370024491634304777956622286293212462631378411556756805177244508609398333949237891012592733728762659911913813798281256947842544338725453370855932835677503450872291386729632257360450292243817857426864303662983304988750493017940759920917904228808924656327678024276624168228103384975744078962863974673368486410429127850065590819103839260326256870968816704080730857631306783694704677453925551331009905864817001939246384950631223276787236133764121647268249975434617335820685876598005997419290186504369607250004866894040979157971275051094214358656114833895320062536695595664321388203832228821121982302463594926368669744157213181761507100543472713148915993088128202651972471396099186466723006628760071027733259679002319974644953463812520348234358092311930134715409509187298181061482106273636965639140386185700966773473635927893030214091578887778218759479409941604142039479170680563933583373772927507513737996657242492227305584985353249845949753620399861046940602948553368276525805206670573923150206323242090049129342285992938875946744701509506081948917778424906636115975935154264990785627654550060660819238577219377122988498863413142050832753563880890311709169409781911789508912029596718468585288414689702657879088619992705991910059109107224113362455223625061257613736988545681155615553231836598826318867134644209026309101075760419725868137187727628595193829023641051996548610418544249137027713882299073039630797725173031273843628397055145944927236762245221399995673508518323457257191194452505111003291968679188039179995085896697068477008957854725992757719696713949276832728139221596697336056514353719377599583153030684134222003809077797430502821383477150324957248447140782823988443102300564953822837315209012565481575708549403600704146199254593356095614232894380830091559175088666090231962134677654300476568292631409144641718823752140925837655354546652467775983055106018904670213279856253681979675942220706741889260902642689021135858677008992318795067175605094201445344926745450721937263637945123332824406735954854248510030656248006551180022177423681789091515188167606597119645101742682787762866541864219025147579496770377341209791549116426573668487902254933694485218737780255955307902162581565045978948037532038129723440745376475664794411388965204410659897928371253341443025402494434732570238576592329311638614363697429501864228825439006154566821818785359001780240759011660738319854914676480827000531765582272713873326490226173943574852426496528927444561771222822201451136785259374298771980324246586919683953209611229960056596372506351688861648779739160471019701753203059604823690933747631903343524164872191122946819410518239512609075917877556383393055954111611431501021595663696821074298759050834745775098648771954900748179197685883443223064740898650085149076770308873338698433697664758098612312204605461413037380516057144881160588756583176720423366077770364859897387031064181279607486401371076822645143436512091808752313298491017039463676394343956654151382995357411619017207976131955567124466963259448281276606291279280694060991350219286435121111210509950829564557516656216849085060371574258306627896452701558805253229416470086162360337284999677637930161808735350461643486443305563123928840852090429799440060991128824626144700856139609733342354218514914333080249747532775613987610490299751905420868726581503488121006150226900565620026837175936472143943120875706999867380449537167124195347181617634161312399589768638630117293109533725241179544028364036539397891103789440302026664132750789182751335466211916659427948258874760515295812360023666406001618697882472480390846177713993825930076256150679706265073363605314550161810146824620850010837092426443984033698656031397370073236317095931325711300985757061746514401760907829442961635043285334133914567245099320959704250796407711071552434389026121173738535524679526076169564406190138757640544991625398521737693226163218903518556315492314775678699273409339085952328746896846751420611388999103708224251433560235619580085152699619028439449700799022683162423750924225839797409909469850042536984488870274021013054804917860877708173580153581359847757480149340870693122973744205128608531697576752387982052875117812353777066960600441668659779126882848354896088164171613759615380457039946585630930887195427345694190411352744046786307045352823052184136089709719674748596949799330621032414693718145830789585916989594858528053755772515333292109467496193921238196711283401632869519798653665172963800989015061355242050245853943171289785213845868109267034834198591366555245390839786321075985153637331689809285864529378291189548835232530139334439641942663709722842157388881147939819455565396098289510741220198605187337602144370565192185671486609930322877008372676523091702381103039221739194890728087248218647496044457908985416204511188556023909389106468230197195795964981056461101353624210119053090365286313351933723980896888061648839885390791414431065853381037864706569123267775342605959461959212835514769310639014719811826132360088547034299619386527038195273497227516452291443822500634932732006119033648921864508110988656464004054534214432985828636156242641710334572485797043324394914266824259195473513361328796802597964507747195048040461061995224633151247089379334626183748803431157709990539821032483738594105699970053070524047685511398966726084235327468766675607727571842556158799395597697042552097678787505963840597484759251008353760155631986179482113133796806402780056065243015819432614587666573111279285998908949290641517453087400015511876513399523990541978126548483242415039347459239486963392960347302509796439764157183183168367159389483152265588304668041688869859462531653695527864312355454994984906214588806152899403382289012316077965855910590518908432530290160395417254416202172659058232014451298981539398472743311401128966221103628144086732597314608632037241056035354354796864447660684608131163191671238134352470188120453354830608209661617021580596991576873930101084292281471996426359947568841971240793480809320528962819277563787404881649442074031498798379242261346820942187799529984845908151576430020098502715034692456743353029751938103278218387706004797904175651248017006890642376642368973990105401539132357428380363613638310472846989341213054106809767351769109927708329763136737581869571877295063178890607577889743291023168944447258089748255107753624909524912302827353052878398969393471330381197771134700617089303725627174963805142909134802640814929553882125429841701592644523252226648488649805654932771221617938404782455647758060089514255495002274877101053193288230605903031721735700160822356280618914431714023052916337679670786177597424821612023958057176135168453164336854489772908589051554283115291575624018225323337439935963830737052267443718193155163773170701624243444332471921166131725120706472737453387686846389798226238326400032172013740695560315517589715705497364483654052822215412187049167113505902190374848184572865709852664383924460179702621589768262958666134195722320700927066790731586517627289948863235935250263151946885940078120063037161393156299321092983288661181156157797455502268461527377694570703534207066112162877386995987321357189970371954404460969812114505995023205404486961715050482894837181724249356634520642572289410050954169056149544335721039181166368256668061342348675958420959382797453945453450390244980243760417167708342910688810081508289470043782434550815263397580281868352437607015519120218186836700095015066266326523700625227199504557327310735225686602890984365453785338290887109246793909319981026711954969261477390820354212018128953014361211844486611680868023836045470254779690961800884055096223544684498285995184418910263362306584417614087690432780105897031687218388708980452470444349951471738788861364146081777094731567420997291879559688244094666634907855033102866200022013128771448527502589624463671284419739196421248453917936306021507064609986867630738940948076753968784596598558228110593742205448245097548012417488662739334331147849319849557345579108300120443260916645188914054131553989812876065256673146630920283534092180551202745102856431181603144289985322881525252789777962082778511364317699447302503053057791092518537406855872922150234955200480193927691653369387269165633464768151131449912110749749327631558283682545204159991991904314587438292244351810247608382629321725907821290132496926986367658444720051417496855256537012146269345217688657601781483408709736942084644343040031880499436156260861301328480893568132529382023201571674357283083743456615866429551808537716377483764651019200408702588906589233399162863203113170368310989748735894202343686034036750889054495899917462211156167694690870401534718241670062724331926874015420652330513160311891664138067280324243146939484712591557724309924335485964499781336475611091257819054663428472066884029675532467143957414615051695782866534587550062546330993288799429141933568521796549102217742506736198855140933806656017102127687850340837649395774962813664676569851741858681741548213135155091695542484944147679823174580209368108780275408308943068630401835288842891109042397537681818911198420009337907356486794257989222138590674933288222227461966557515236937665655014440682004340266419656269668634195516398082016777573943677370452682747877405722365415863482433559898523538755291391049536439901107374091127280295138942410017643243370108086081169488695630533623516973956925873978584328948240882207761421204685042328497275537642005707897417959054045239602807960217536581908665598751819395595940152687989592905966332665140009822071326064182638319699793506163611718601140938068860324231535306076084212441413979412878979987337443231935279030151949098857444236733640055483144154270310027001267438318700196250324842789746097497277910074225175713879798203934453145905460898314281510523529089432850520221021358937002073813298526127795472601310720193340686353619663254150403891585199989824802955770612844612358962596996760919194757140037848144818403689673215644357505069097576939662872703185359005744018225615271192157379058165614084431911574442931840634015071605138593650519304767231148212325352723695330993361210158887432509212162597915930255369603248290629853997852897301701768856500407623166501662187714972161071604578282484044181226051022018531343898194204100493104890757342105086773907851546644405782681499426885566422393954581306031751249385181588163525027913814253857334500984011960225542951083731829786831933458383694632441560246166271599447072759650254943636484415132380957011819193349167862442320548482672295919045976080000200314969403499343014103060882036235984550219209211214354436213445336351074463393060019391512314898437468463637646246138754364576903216385988979519021162348299299966529014861149822587160231353720553567953961343732647430928144434716925472545584664731676873976507164722610052525597474142477839610704700283793244129218035885624343034898200867383086814934977882618725533058363440689079729037910044945116837147962858305069858216539764949952693291092322390516222976278928331795038508046665414819803577951739792925662581781798820878272998166012778545436427573275373583291457244508335210774139287716386658174197453545666766706764137392781073484954267772370718663322612753106936907244175232945450601915798885829561209107345088561176651391155332434370462464661990251396578188029688555276285337936871924029635700849954827766953063189896861533146370398200654871577539061502107117672801881731217848330663186079772608862476668598723134599688012646833805676426535528242518179039078198850836183590312577511582132725706709944066544100926903865887106895268791609035822041458129253873893297791711834709483286992482533218992134816537985876830095220481084744218597497029085894655699203788147516221949217604552395117598069697091999258628097282886435883177379150043627508675662807672134360970037412751412996345102806523232243563193427808310261700562706043229915363305471735195713354657692352409980964168724613036298457797735580645775998076683936979780252645244082793766925037873486900613286572282500166562239435288740344587285785764336769321363209303425684017740654077328247463303829271250296550864458410594639193113603504416372725316473004981465988213857323074062962309088625107394015706241147699649536380748841169975450572178333321760801742118213894681309731502853253770876141344255220451116179429275947627816334961316609644622624556477744973163846936954950174731524578145834053490811636958836113154941831452945895964749735010080945569189039440931597874183138196514464982596759537385569325216190984004672285364895702489286929217658386661406861235116816768262177603867565392392163718252853837375565439635113116351435383940112974247051540547872626631067265627235839750349437631064134126119347546724931905990249942348582590304485797872453733287055097804368906758180998737999180780067160472162514758632441340241553717373152963318078829610311585325882019186136258066129287588143308506119396247536258246466727597788168123517040699249545824994095808263508262691006799876216679214861105359890286233021508471147684982801367582629066353713561476604511707299547368118361489158866301760914063331334828577280767696844806249658017434886380029914028344198675870300137272831436088915702361321313168427590722213877491356821543459831120722878519662620197236884824135492198193473088268547691808379690756429447634391079802885208783725339904222423486985225612584693256022332576159472086289140377586342661759111246735939083348486917145487756431294568866391694805018401139541071550144783046391325831544408645287693314090074469117003046924393003105164278145638900783177238224570284220135182637437456605708375388150365185833813277840942287713169493447674388949591037568617371391530662875548688328805082256744038447343209879927989865147131687725635642905054082880284855824055606158890917649005504445122660369219314731358336206642930488175512991230033428785640423986665192250923701222385882712135466874663616464535623873037083646718538060038665523985654937826874216158479543215826422440265659647021930158499044495416991897890029676762424642398815556880150426258382691486162865761289287645414388050960203566455710582143469031144446643618663662593784846353359584841278029968318208645910199706474126594938743901889044081109191358870413535029664332692995088488965086309238034026325275266410519796403218644224700585896328735231768055955364733306266095387354529094342896217084546068359115293965682437021703467248491963954323879700658627033003890467405718359077748045488366467367587810672294650839499927920531731160005616181427973196702653137480649530087198716189747170773427303931496347617759283165542164215240431459950636634100573047537399319076272755774160472556688543840186667956352467425538255951310190176853881036861792185895893174873609848385286906494732582794655304218641459149345833513387408281280702859613795648076474842783827712620094565577852929404248297777672991401766876081692139288105979827661984436807410118089270787440314202050660689633295819134099073448986994122427982679913807602969731661947022876910638462945565225092165371031181325994318848522738912156935009810398185617429654811618198738961883336885263433353287039498319347904393283693543997355394380121962759641085711426793296716077846911362962958527323565485071978536848450997021791071330985143876802984409292733303123789335044012711827655295924823161382314753865622628772415622557390218758555466625113877862597653171401284387149083247837192852309266406503959335087760963691008513436623260799482092606788879854068001178005315235119734905140652550899127513072675943924086821550977136071445799198968967141814870300835807216176814769364185978097778400363291235030969354684157184058044784984271184525285209856838086316278510310366771560865066196423481140219387674779028513142592069044798738893065861944011270795193431529639360014160597166051019787511623307323668202087258609043471145717342127868679374789265315392171218174761766738897478233847683769873841935728413720647454546427863047748851465560629828703708696127763524723807484251719394849938687705675454975923170790982798431090281102855439274705751279532161297709026884839712782737236957873922663099106614027416068481324182644392866149703989744288054823882257899978933859016347403218453588751549013430378012172867151752025304437550292506111913376904154637695151766994962674787238287746011156268500857290561553545955963110423920446545126844460052212759717960451015605551386312199032409711690388494526334349637122406509018201578066782663057645400161892019409747443694457918383277092465265009578376520949070238683903023347312500686578046485349673806401390791674656482601496561664446142242358648195021022861271731417362577989354628522041850063497978036760389128479099101574782151759165649686349106355723318284918296304404509098059279525317203842378188196540211182436952359144611820133594003330454078715899871479390731035735904086015999713298513971776530586915029726083621298627002547676378939617634116111818460031349982661584155614573334941572346932771637694124847453895106609065990735610674877924148782639829177405772685893735283944497389770916229825936636135581556693450999469112635654038122653248595313979834228350593174576262203739381279138077739535778760084387775069419821339714120228365969045730043280059107072849553270756174372714393664377079954183166536205280591619806103044098899719762013571103512831364728852727149399186201989522444688127429779681451966298517381669032694466044717331575834238514524749110810438869128930828712861248800524483885424687356523597597657373799993452034861487104829059115872124565331453338017488032692642347473613216755738206799638255941128005002220070167710461893075216317785907440567884004945822957422832963513422409256279695090642203007684743937508652883754441228104524137604599577384549274932571337931835714287980340966252211247110505645760166333719704556501129237805388190682606930164231928273848072565452203504611589369400992298722469779898091029438234337413244507853877543784645712103772821153704816086790064920312444492598818688789749738739942723905969602813952947083214779926032037706988065473777331819286596665178052930992171704045033680883205563355215268985398664932814120765487561453201919549934238373084952969897145545504635048508796959154997092134277683064225591424451597311819340673431574007547094090811708052675545143400974740267163308019103073999236135298459824891632159562617299583756096788303636202916963902558536653025244665510809682519306611615133106937168128109762260381338396442827830258620436882675911224258897893663821512933039524036071471156165066085976812549949510288429439011464549480350637575580993099933057924640102342730066510643308924795638598380044522523143864280041145066207030866047368818976766659066410233676102618943349968482913588006286741653067787180096656152088408238536406295188703913087795383469185118721411063962357716878574333475923988681870922050177503597722378926908790207544577709447058103144635769046456107447388583033564086268600543526418475256260789694571229585290830955664019650096796694515815377803934777185745486199317089670456597071450914107890707852184243350123897111736436268104405813899918752508064836974790502429794784049849298685055304919052336742805432437752938145697948272391330700937356579289976929462074823319445854000121638382204499256531542408727401663395996873935342398409421484937550688503472059854085819256489593573871735054920240710840408209300671652779617624347124428844972633913265873756063423636834556350697559426077510801733538567450817091328717497516867073102701487232482218116054263433144756025804213101995270762352707417688737454229478261012404699647440944016320920956210169215704077248468899170301428824237384158587009026264930320790239876604837702359425330825343246815124227630458985152192581601300921147098398421643480525075779218373567534809840767388403569527294336946687480265318970703415028380270309818776931826680929814282053550754742448810066544349030748468116052716343930595194596844007516955661822996394745544668215112908507091790492492976214297141103877430562261144760745417872673003698786966867200806521936616855418577824241735726307096814806915397100873974693439063892181563109050760836806587842297910200507740114949762974248235250147921006443505418475111341245742476533427069207918142013688138879274705944751754433375828096944394341701122997158878112173528749599898710953989106401597359212653804354980032853135067953450119259776026612157923189266866720643001824716588018924786650654653427044705416458171426769874537542308876476761334564491282793551854935735447243640409289913935902666494700285945691955717853725399178742338561049903282038298969964896896976119040114481471468373348695661367669645594234145190167502252405583971393820924990532125257802189231468132455786266128110898826162842442650229163240128305390889020434878950647687974899279307031559149435887117937456568684480815535124700450217986260546734264770115318231599513278388665259576258563768420849234215967294530662410749597128241801608960919265609033488645070565408313071613939819912808886151451320952362356193647952083140078993534619427623641244324757001809067674352673139885072466224159210172367413915299155659790865428722741861640861484934251573002647599521799912889898740136062748800549590159380103687887103533899793242697442231160663732746894857599813470543722423751387334800097252911331478180568525588683444526803431063665910921858495754541713406043236892669633693687956846877901021537840049324122930237606234509318208302676333033362714061178569356067124878709030976220327730325642453191959354006122651728962477928890855401676121335682892055307924315971595494799024001048612568421789930981079436948745971488953257684636927694496172780667100669959233071450551252809917727188182774270786135949087723975324063465272361304324706535975397831310984677012248511947491597968402996516103871891418665124444799734552184480999121704424132170887187222063490972801985812233779192548233583200725275995632661221178541142234365550896093438300451889596045376906824178057166866239566455957366531986429066873789422034457926188497282675540805523931637307088211182304490598741958418170826549819057883122984717300293551035383091495213094869542149436283837403467085359476498278854984165647640269473867987502254512500498048162072946689199052259336469064750917837653343599887860389399607638531959631315587406248093783364905166244352606945470368639596199910406860681678266526843639273751382152511707278128496674609131180728137182581743985845947170780825890878987765866031876395483714059179997154638227348941391936417098564458305760733661323940677679124140159962829078965890229086737831755584583885241099441493774879115211090939320593887409211763255898913843723217334277040305009623530644780738935229243992795665549840369790004418762114774819443725869781282213289179029558974523316763800509458075947608768702238331184575746496760183059398951366041877121599720115974842002824663905089492569008798759749562094029437119568944462559238415854750225362979380388251835800098862516974852191265789647734533741028455049842884472347616121864714075011572689146207901004554514555360068001138593279187358853438182926792201758784755675722570793406442209132696808362743899468168850950325225817145895264545700615741646444323434453724120182785950175380612673824460835705920767827147415481158165135965797031955092595399912217951483618252487294781515652036615168909552768897973812348179001557921253917467682936207035274759416245885085206670679050347313371741192034783983444353907766475656101459017234451106317511217251779521279659936575224040043622683034100523054688532199519814912061609512467777512237642745312950946897182259766970550836530984901570786325644333886434149253424016284941268258306413014639753872776772799605614704749881917450346257805928704279192916463963226469336311662711081090584222860579808936881556937554250484988488799083927487562637632787337892495862304161903559751977542153604654181534122958090974278520994419140484436810324925189134784781836167503388485251863153840646526005691706747504883149433820710480419490500040167434490403049593236261117118141665359188834250276848176035198856600252325628753133311887915059414870568158358889166046460311879119050489774550472026091609484502070112868315094402795471745221984902911056061425621373691071162441446728622509097203204526282684476299660673487281664768036183157554525480180480381387512288806035215269928872071058307640567164451626733768001815521020704375040947920474900258617875705334781800848925263167080102619802947774732170707782951165774324702400423791928628885338432752228557859848235540328056910795592865081381057548470964014530328449635965726651394394610083295752785840354024920635470917871215972466497667260111176589607279834991765662606835563794058533776790563357271757119199988659108927477344168386809323744235393942665410976581057452850135325500750314015237411258330668736914270533670685355044567909653155202881009796806581356193213548590805917599063918092906177704275824125808161281539458118531145384278287512575483286893472965981867183278117868486792803456000619613999632121019373555745409527703188937142624965548928605318566587893192487043153487290352798660996629845721829285122305953241295689618092319429875640774488722377050905108955839273185662864387858959518261116569392222584620746849625093255534107297978867211258821025249477090639221561374463347402495302077788091387482804927844859389711011404766428351750742763770279381649035137960532948053142073935983074413562564546504836869645564520610342770244524964334449848411589440294530023362552395459033466647185065850466278753565562670535084923825634571676418185941743483583984664848046974578469997935261482417487156758409076884749199819734989357907354377874373152617806314843470952990183397538316019876808483445979829703014135803894643833954436273148564842484751098003576580900573311842238183522393511385706497168928356327046382269919687973277938697491331321143101867485850683249195209136951929685099841366980773604963984567332659431280493238110797880067545731926280003654919716080059495400419099846653939716708223548077267868786829702350026200084408969639707743569258241809266565165333312173104564880476759957642298052625738026619334893199376373887975719748367695279549738640304164563454882710180500590855157662818199868187634497131992680261968132930990229177955087071602217156680596418905830327837013495052373511615580369538938180813923568075883785813191514900467792774363607861243991210992778224782223582954336968113897267746009474003783770576770273107529525601166354360952272030556109930722394382012374145566136953489137995374950871624305051292659674786778078571609656555301493682797064521537795247482556974668788970843569637420347609165480753277123392511266679294852058005563637847400254869496682722791954775116307202986421386810273829908176953853230587158577674683652326166180928021395649848281571071550862893590216465835815005954860603543597418562825364330586645822311850097597865855525730159279429075739045379349511962606687695872134768755074671716702101344757263301895483435133253994017502566803431541783452939705201303001872870817653843733060011300371699117276265822573088866545836399871758490482150966729011023003922529264537345151630727229339498868829158381473189008466624891391532526727867305106839303694145755308039974641902154636241297269471346974235702849471908365629299436430703741694276352181612159508176214313823245906183181254195814704760130954387941580534364974104191897890009928309027654787203329374686647886704922665908538353110285771157733890954913340114046774840388392068635078243749918619104385266509507121605467346037276368758789922572482075648358169943140544034993490793587379289282407769675256118625967875682231536302374904320034501646133122868629223854409002282877901720882439410332009910185391842341169041581137820100472765802928371585363694743608249413966827708583323180770465421179941914783085346203485921492829839615801915264490428385971729471126363020361386341295122423492461508666886837630614030772734602293774132125778773156882342869537497130389186363762626953355965510993008527599972183236607930090892247512976327858345028114813413596019128667038582686885659518063379873799762710134212872198865162747473830597558616713027639593509853961404544531788052820814014999895085838231191140748714132125830333815449245282294019002944975821702908906717599313270613868838156228699956452620955560582072701322587433988197617347296332055682129114108113657211921887604966844236247847759234601698572759054558804345555968228726197629755318404625411362775930702945960989480453284293567194346466429248458365581580742196878013366509184254202148901487173705311333387946830090460580413664781149356229375078065120165042449720827405540686799631863665349938276250653905574166475765053280196362114863403193182771716143606751043255328846999545950912874608134182966989450478029702276894600844779491444793542220409207880015083249101373350261056961336313157222408875462423160344119809873559594989188561131498613968752558966887530402438613027013156656230540448581634012132114509825534443161360951652772544839608678247702421437199273515866544935673828799206645664470324901391795084318766099248646286972638079380860439190373063082093095031442125154047112491638960097338828085691319480696174739668287084333029216153382865914887178781317918673007593750505326095899808011621124602655603879550098170620835993249921364581593852485195298184266482857873581931412800580869820791579968807430013927627897466806021571567414663719883093428198864502145500645136886930395189651937750963847851065283147864723439292596921717293582374028774801899242430998051472280845362634045006675198427485690952987589230662376971545947402871073290759359671470741892964636040203174116853884359444153963011747146205864611028317429149292158555677111230399881523094767166204668767084593721064999283054000233760336322746166065226856152553578335945358409452663792471508534306668811160532556479305523650301321065044942814035927556578018831893517927699469686394788272793648231266171686318163893004058874091885732090121684273731808790614224111387620718774257775044334183180154207227544366001071525296360802419842254929759585399943702247708930644487200161637717434397324246351234453525482762363542882557409451664919189551678083726077111680871675182243492834412944307433668854132599984283461697775842598511318194466626772416176490224826986914992668273612161915030700701884200898248705353559320281993015106556957873707370224144571286374741449941952663298327103154460342478932254294620610763784988780706391586513346183223272509716738618281914749440382595665378790883352347906409333120238295989045548196326892379010778485310059324395821239937133253387180660624803263956317993328313873248961430720955190198010560421583176040371652529216122665106297412653539932538336229630883121206088496018623673606652573745595365369067330091360300906487443977181489601755370410011321909199804343390357058598893324084646917292593780053190813830063621978528782409532415883443537829856423838932911453199924687970119086419969037294831506012373899883703328125282740321346661103395923141444524990033166551464999930350945310241410484612743840086176806008875915273458994007420366261224647880450823786916764477371408391880829423226464276712661623006878622997534792681700667052134736720606133735823712775588454083963234872459123966745853264713510737933419687698827889063221179766446069719172236732576724402743894112941053483007225306450658090844078347995714412069216752733766172992784146715398549666301933247568479636820322797507576729898757693210832205728070396481774163949295154493761792214974055735148897918681330341534606699489258231231623841747593640581381246660490420128773472010131979857561114623319982633515488426127582189929760181947554835056496958965354926541353004640740544057119695140837338339526838621727215288226533618747292024218472909750597462671162284122144419447022350710160524208536988032462779095776092134756995440751537860746647330585185160966019348639539613111417958472507962054230813253754337739055772118956564572382834572646647486604312120332236404466713400756980807408940341811922001332161024225251464483159210435824847566868475729925520006449036208218445453460134516303674685645253473619715480249485559609362986353680426046660527824855874987697575977716484824861144673151612072971267336835264073730566915329028793588961942817925211292444997339511596667306511456361809703243354050830310357534454774535099593891824063388700891720813621700388155745630100595470283747394302894392643749725580391224378824952100889691119587789157335888049171421115588285446109308606723037420270948791218594738384770597832318952512194736834745151014244494165237439651248328058471520058106487118071658946054995321824029559285572288849039829295680379304599704715312592057428077886013623666975418404367629438729128177064637032189720966104290835574512469798467309156219804469281218236182472578720448172678375526968449924764126137801179321908072211172867777243936537454149236726953036335281556472135316664134057376225948212928098601631009807784979101062976182714516279209611026892590532671467558644792298997764582274394348384498263368998989046465548425732345549743231859261329568446850884904515189887116427287459620925979910356745713632552593087414902925069657697751201166231050535458603108200335601508363535709196855091102597421719504132706597912522294247942436313368423993562264660942368497211956978406048000991299923497368973235335767890338928125454583065541297150091932835930975110049650345025122609376260835939846582361756202564686703976776630829753623766722077653767932422557098615780571644072214937581786717955586734043901446129584008938675185858112812886968522696064104047839472200326265440136453418022899673415669441429203152055238470928200087526224488869395182698151360749470283819410530973445724358336354238624104110866557340910484958488621318389500409536560855601109557722184686020484728143344440777878536543478701466645623627767069034963391228550378472817547104691645795645674497833235861967246385364660772109508124906916712531919759135122438147345698790249353612327098109763811432651839171469524665372283175282932819430822992300561065225892043263036062353943975524079152809577006213498230465391245568166934065440530686730702548891310489621528035878746601070714318811596831653955858565628159605188361962133730593698668594887323443040068166247735565308887915416038403413608064724608537640843232278594731760912405393455595509204113102128610839297127614267612343995776731843191566927904462162224129909480913859700151378116418992900099570697250072751907939331831540428502595147351376752680203095392936566535477084973500820887817302059059381324047556863300306012517281055257636256514276038622950274189021962457741072203880109308224204270713128359849019854037597760173414159849685317216172560552871762005348820150161368278746654379941652035547694288441539605140124442292235842485924370169494339644671217185779816219162639909508437042086788305152084829281892243761366052445206468838171304010689874706837077420624517814678282427012456819554592771900767934689472847799379050524066771091952792343203158468263766247214043223718563126531822944938555583964974540879128118147235638832799219613833552537626589554995447179451949428624035757555359243404395252393847394398529457730881658779008936461607115702260884787315147227609193415131692112822694510773881337308087090109631424703804589825447046497331573262276317590811425518753555762262469396312175186736713156603584863815543806893133525500870414709633051393201976326416252420902845927215134459404381245911110776268299379873798070572840016834894998605115976726645785492397256935524999641703082126093844163132072634537829191873210507819747326186859697865522863821993365614368222014306540882726160449020441697498418509505304404552012619969989845800411854307415543235361875525009246367173357146490858602348227208353856329735560032424036792870904006198721050453862492855163616360863483391175896122500250632875698347124903297938139252479008192358669429668070240719170200575070812638221891504812535326286286631410486563987854514572183153356612543520905834072898418610518170766608512502439185897920119351680715476736629780652933696206957252372690229996223423661134926292883742301485354036290057830554023829922612112042052889242122058798213611085725983371394392699397545788455727063216147533204112678810588466260309107679998984861743632471527263835622049232479881698332366734677123990204843815367975263643283872572684751410727475130002121206801991825149711344675964978211151192568057913649519842258521461496479317350967895445347090701379660668945330747536248790067529341718414276621041436234420210566329406773267204428772506500461778848133728851620328064838599425350623462679520741607869977173153985021149109110002084914797878671501052372094781532059819070920061868884956830470974174321939606060571944899141427165446362937603490916199254772484780348581113366408929133409618798403513513952447544637917224274876853583062394452271778847070862364699989335405297317869483491277655793303449932385630751116973902595508417860498291809760470483288606225337523450653546394711083819955084467165975063559736379482417483603126578109181602657145216514859485130648455865310335388804092256333096962134545113468259601518702266408138998762368508461456856347788735354968521847861630405775749797807042089951604958703912672662084087153436854517197378968855403919763908257577478454328088501375305060766209537226354329416259814769701113471163218448117169287560193382731475767960406285187759660412051345305920741725433227039500771410486219733041697226284859731056605729337920834471542165967210910827659818998667398273000939347817190874779257679494672532878462468697589420010729064477101729456795464167478780982617889445146386770944408199216100039348551367737300947232810526122946572790285934671578118150176922265416132843457132665283452033784327353762373147825271901501727853967071543005585688586255167037975647203667305346354123023292596695673591246037198013776786536457860985084540403259937856141291496383930911011160587091510478346659106873198517898362659550118678317102078771907934078420177609235401581285339234023635753196155696494656386710292370901738508780420205552840283052815394631187852056080605290359913671839894288829756028126107044221220248420695166731956596097357046670807055972452048703952345247307291184481786045452518992580287763131249813761421587244938264747870404307022882663797216381661355052744244456995972621037181411832841720285520332265482024960859119168693464396424867652088787662122346302463288261452407058882884745447608236448928884686515491216183168661470249848899168525620234825672669886740304196359029044951042913655961923531490632173685917581308976535715460801922418901911967023255504423324178723533089790044097195245131777351700611199117768205437206440055790234447557275869742295976283309641464638629188496927116110948819646602757156299065867195239790859998517781327435985157988202811313572223570765160493105637411565570380953590899888028597017614815423309270967960715342559045026933669001004412650136963256676085746395380792627665471115821614580941723088336946100624908488547206769396970253194156271983533631817297943815583773432346985948279237955149167309601936364714076544018776568352742642836944518271538909187577393332859547527026967667882314504192851155748953261773601660222136973907530088211288704427750845217526865307146960763428220039375006325448236963535588708530740935445509810458569315241777560648522262228699048772148726887187093562944028155914855350738248172042260364784648134052408551993099236406757124536674024150472948132226581791498264640359212648477318131183690968028185856686198320677734552455854021461433096088021375453707269509981549074777081507357740989800399536127336556988509514430734435803056350923714833951453226282289954785477965722044122449573628071427821015785897420891820273225176331445440836820364060414162852470046011483731718658904359381245564934941464766191649783369523449219003356180891923832613773037402125359791743811510437078007684576600275060115062332865618739453079437756687551384577730227543772780310572171033656658712254082284247517040373736865087908656522681230316924511469666700807180558519588455628351144497995230184844732136558537288689165236206626970825496459356198163313375341970107229193673475009157901015476972399679395312387263827375701228534721626571161802549542454333501240497225671329594161304297415992577911042120780896694358717719604142381349030680380179737854932204116394177874193201786242818254666754614682952894929137721746069623576546272831135383423680431702110538373595161006803370349181138464199611097179948462934488828483047764750652940053040158764823084625154309182246065949687559617711272791056193807353100328235627550460730771990367717354731155621654431877774142393880979938992377805563665013511034837021573595359051041397919491294870787437578873905127117897422141813845616060223198089489070648055780759531820251705998079494497363965709500633973743774250091260758652929658583755377388874048328264230791559046708619604624163949458941780604347857541594962424592111948814003300397675071983512930722663392178630575547946901868141020692607004502480473774620724277398949258225906604775520344627902224939643521257919551489868403385571982876201603232634355144636755916822139454377913407278990731930901820136324534024980202670614498560990775113842041828414622345784364146549608682602674542199322910377319578675314079682366574599263619537446667564718743827518647373166915693010840112469808179732973742672931710062758668521425558777982693577622741016447859417489957859054711609612829899022625564324991231619423101917643727616008286533537645462753025193256502153474616885296872538438193137765944690439089538570567132814849145375177082646049426626968972262176866322143849256477443412992381345428805133394778098988480673050140529781051548875220913108136943163621675148319611479030225122581383612693471093177634635260877162246744247487861129528942135748447467249077888584313853668120902149879162705596029581544065588514273003034094435537705506083642755821646347581019435543253443843432532881562890234700982823658919815695794127209195173088240784540879426329370221186424387483694571226312305887734645865961446360989683468066560019752974269138379809282349464485693848194842969392292640092001458848152257222497787098430825730062103897364467717289588718533046019582650531824774268120077214673921155312103087621696864467545060930618917196501109665143174452996631237117240775552611051878984684706037282979003290953339230740764108654554995264374958424851342689295755917612666176493005538352806055760387827789916376233637788285817177331577187012199803704748997536650930892346934548617990462130036902573988435232163871165224589442340370544344080775431372840116889878575469478911329367857852962507362645140364267634925597804526214811932562420117236241863987641258375942630771495923552956211757732133008489921624412532738599035473034141053948692083784256135991220468291475609693959647636253370542020100594961029947703314924301243000941746913113256353334045593505021903342613012155355333769563002022863379714652474084008514283106258309983475466261939634511919185608596727339668629986004899879840645276809917173326125455067749936946113981992558940371892369563686277657316779301965857014923250938754572257003409975549706463389030862758357709929352810689117078570251612166726498102092786420816048692621927282241852355654816200711630692404469557036610513973898589516276559148065513811946040845018784537281228956698673292354373169444622016215872681383752227001186234796681847968808714766483809416292660810896592563786821231470848994564203516582601567150883904826840980883663597741111725465946343206713551771954020379353174162496397960285879368906416708540204247701646251109263802727162116260297137657227271627229097584178352760585061874145085989930795541976140893344166280442666975286417295632157477280734645751324146422155490111227541959339852255768113723808146710399140340959763931932196447699390538674341215678767451625063050416004553783799498131914686531663643729037702181263097151806319141575781376195559175221184126406409531854817804120648494311799260800170183074598151994848337428631371317827178537722439919728327237435585091173707612844574687958265036928629997184499681327663350911656670115226783739822990168059106696765581353289620988546361069549812975512910210644391531340063625241304754137695239900126190498706582248191464875248416039325965764213989672911447694958924144015634103260247871626878788867853373779795585736470882639251645351742643087894085185508583195361724271799490891546335105825843053875311618993535659576279662346705592108389706875536050801266725254510554178299016025667535108890663932135101216561737516889270528096963705718133144682041419984968949768570673897177814104518694755541459743179858846900464525510978623309634545866809027974048342001303699522235410899086704170758947242092240408246451949629972396997056483925485285510860054216852748838703088451409528996480977177151023411229712565543642848514783291051832577934901772070076331120104763320671344734932961655592179234948418610735445733865975325361976505609802268857127893634829854999277910094742530423861194729353353994983464474791517957427055635236067962761346149531964493831113519161651037996250805278833109057684496629340142176953816760362611120703198032962585326990701987136988241025433444262449955761173690132733078116202840182464603266430738988078173251131077238051394722980567659088751031609860905723090692601912316386714236577633646959083441301819032656669281556052496978096891030401160741724008970803939892941114239080843502841078117225556593295252292233458181937587096115922406666858685824922415931472979561803523608509682335332740862399580466428647436328253043811060422892087882541230524110225712086477001568453701374799135072530199373698331846604090221161869823397776649111140612367932604572879169307986573624794973596915174105317345523602136240035986614312708247741446721074394063746928952596198987936102709198583508181009134525787779091661958881150986307439928572727544581935302029224472274051978592222450432486097415193836833731396828115608905706760038338335514411194751027842559983083176606416182734021842253693921801638544100399604328881418271403531680855549700426345909554154023191516568624574987912745869614458460322954128012246473637356073697324734951669891334759535833727045510892725605722496768545181574870004366242335241409777744884272883546890919058317004320445980046741142676089966330007130095693980370187698296739293947844332897612764619618379170987221278689835858411499589943683280923372021415740588666200929791138080386460712806758562230784657271753079842971800628308614257173201921897312688291037242702078441289643685109007557332829524443677305674838010580715235965548325918440323153243146999193799844341326963002421421422502866628092902983507474273623298037302648493256625362258445157572274663304251232441355525590011650444424679157259047167549607794644215278744541356802088600923218827076571701049748666868639031152649624865014936355148208095630680231605568631515790910466042637667828068944666768049498399795721008929141745337719181162735351196172897047291951679038302298463923668752785408498020825367241604677644552006864761734130116530894675073137508340872194444188623248231295557189162161184948105004755580378659404921205253957411752347915044932905434598468998828558132472498895005983415619863480893797250981877314117268371860134709621721918005746789216975675935988415194233563114505585776372679414125449130865744594547537467879249187649329176284574761302932405266010372747609785735629321657101165103339383803004439803367387675800824885314906118653101416220389869633503349620427094811632686619938945187092161856466810404401401803177966968551634091704342978645894220008779534973974125328899529869879957399742376541689498712067772996023579932641332684846144414777971417436445955612376936575810337013066429363643302546114480691334398017764822941512865100168492650589736600721930354164844568263140673817388771064868597565999824615174612278627746623292152326615782208690328826109460972980919954936749365959909528842950184492382765022324364524448398264896802555957589846329379082511405199218534748081714729522794571380698430394516188539294833444405074357932173474397948203526983732407290572362746249439691551218493087805508150065460868789562420241686940138880881554021177666981800674084806954304167792185949801658835728924176523900992447801863547324953869146589918998010417439210902551318683992866135967927785136612955608975916845034747743264229378648574920412120538603660356264558035003284521250162037657692415429567985362510957198309579171230296473111848172308853143172783059924932287734402286311117708028469471863911930875393059762270971947474900965643985564537972038090420461290643434871263475115170865112915440913179649881528446595746083621530605143907047678459228036972082469162075316702938894989860469148783177150718408352722494345918326680654789247136955421770637912320981590578543399716335551972201716029985808426781363325754399278953719246312603700705062621497720589777474133246959736899025930615217905561677746142903967872412970514562975083749775093919291298896076850337363700380108139402428605639288470387923581159195798802423303273072873473569199070423059367350436925674951924480640610872736166748499021658502372862661556215621287315882546322923311525173863560040771269440222487554500434547575796608276443141599938482132204799734248434406231654904114028227820315592283282627561127934856334044971544643409052291115515586477919536369771920977801581942515467316184264223033094111130278075401314626661174329462462348527004935972801378636110962494308260478197735767749138096009405777582716680702936383961658158605715804861555026279101031819895367414799030340653860796150285358248409961725321204389296966346424801537659286297652594200041093904471614787237655659989671292693747422666723293885998605450107434329626803518474263329184132149248614179725864083393033695686233835499755495312370606611065682224536681185525912069753459163324103969842388384779295741387341370743794929920675835141450505414751994305081895224675187659880036370010317092214156588689815322515022764354092152666230694428668885945921906323937253346985358609971885969553576859910642704628566489163031846255069501471099507013258218147802427308803827260582805789189112351295355215618903086089893705237066344419428630258904640843463395906836075274075976539386865136504965824168150270591789231802210733137896423618021462460803042915363186056849912775641185063870053016909787045885887296713920603638646089683185147430010938035474950835625843941414471555608025058085275235456523637258422444995640025893371784311817555549802879318992319352411075097955720155097836343189142527916392748552574044962593414523191243215407521540241006656210944583666913183988611675271309429548883737112741628063235870229001494508919029487779494383874959435033085724207135401793375428723158110324092539229088588620352232236747684922563060329144027563379537864721341257852658040349062573126291154361217265683172047826066459539165884701551777461897586427605312468131621320486449834542920029310335504062918347212508218254018466421116017181792389847753495169044656454152740371294480823820414801209362496660709681469187833029724376378814662846812447388484618662012109125121072080472298644389462874397274026201256097966531696513496975391788107563440650151547513661315613502073851676044791024309001081529692279792821213266648071354097946082723963272032595143466207329107302559119769974182012491061396209279674749854856945199568059063222506769983066919905604717623090037036459616497410169514694027111101555309707646614307854634646331476142903299970051549051991273660776437625238048710720625231285207099393698229547661764149767588079522645548478754828563999437743181894941571940121246019124651007706569907240887554919498806585152127261870069475568154806866063655965585860723547585230311609651184485017263018246495811624232309922182891401595802942379047592280921633518435399068192867993727880427298559200779312447347327196944951480645162042748784535514671087556693713575518469065311918565165010174700837213385554612529992189279469026963975396758193143893710055165770135056882821876305927960578119359511627045014333703439008802916156591367907325862642629399687973319382535615965366899297828405596243724280157432567332226772477642899232504948925460200520382840074443990049381277824752505356302555497847910162641076253181750687311486936998431199145472820044218074368672189421300029966051506851572968585446543245580081087004427957839528949058530781241791860911887139117171570954518337409885960752086674314363921180007440918753916071932738648969940172056582944101887881963301341915071186863074915295691316587595448557425568434779340091963001524692224138943268340226214049284795173817996606526430757827682262414217498152452132642745223639127881846868848706078684994184807437699305044628808792345575666858896036190330482426330236200186075888302253517553716509419477998641439466678517837725094144519803246765466997558174446011078802694541186912808387296178507805665204773095067894919286145007129435036934921243330629490877027139853048970159151201502993620841807627217081262477386912317272425392622999736283250183016902759918975105520784071039890162799121561515215596561175734277432931592548718356638815939922646130525019635310118495541566826683643293295148188389407558340452966572317826810552603971462854402404422282655233701719739096456044285590348282008289707385576576199854751986303935799271336107181452277489532836304978456588867009522670848179351576178960042708760989666672903778105244447033382538040258222223092153576041046257895856661754105971750346185793797977216621340113675846846438514360283668764550114041708499688928976479198044906299022131404999186686158382640062406650198536959587018947179777279447966237816985630063312817731684634153388223229351725152802011616654055779977274199357615417340715300944526220819955361555428752804199899059525647049426317432151060883908403931416666969632568775812263605360017351738607655338307969510414090513132012021001449262356179669057367989487528543023978331243018686060009475817671348198973000560816111298894485412155520803946438224156389373742996740707665849659919017655440689124575404994350938719982645208488997819062944382155824446101236861787156460593637571525456185503295505592972825376060816448516005577577534078605235790939316700619488806247459431512898846455358221714656311299236591036559115127014547333732174935599980873399813393163190294625018452924940415705311181003606714758033441576703089531860786406377352415688270274363153453409293791018772599155883636459283502607487928419753918810921969713937516918148579565914670911002813715151796664931285593215378204985056517503747753014747531627897017972341909642624072426385134775578797163797513122022868483648794622636075037961396106921575519458968739303857192323850027788534708985055416508349234680197435639489638047647912789342132975165431995001444567425337616994842720529560988258408102068050873784129886809412456519496669321057536633670118742538461958802131449363485524655081482760126921240293802511824277072698532033943471609425229622522768683630044471719006608982679772447953402287981899922394558945439057429426050359513611055284383133773185117705299302877684579832469923730302809427563715225625987147277754837011647228829344375438245211388494344306672511473458599140030663668362699640380582005088150110382988384219730046856568536510632676955642862747011843000004799759655108990709016002311787265911650031955195403067621325738076963702808438873222429787202582046740199118750793197342844865321388505041484613809647544502524803737327158422263469856263204651117488938074546522452098278549196563287602316612707041436732211619503191511146333890576615941593610336610357524892654348770805019254430938029529778212672960750545069149268694558809754737372910072318759702391557914829409696197695657725711387281307916633694364645018684819850441557728447077333950362851350019269623854982262654769425450410342696773504561095656145960331371117234551415645976030081226880146609710909257538553550564021719903541379022538378557665351468644960558660203379309595800159587527049995894390935991498004005651368351114073532457786450230299367405102359550045522655315386709368915529059755763981824939886427943357607885979652338030896943236001689312674191344811059857519996026341735859401825280148667882416908551868298011436126496672325556406995340589967681189548586989567691225082454587023958050132328648252471248720301492347906466744949797239188242969765488142843786987844196880778330662876530227857295427214342662967262052417780124650645710079766126594406610821025130407362481363450709188084060701753335690698573563688623780556136100746632305216333550065126282626404367607344302898538120456405034468239021343680273512272634637133907838586957412490683466746839417102662911546997497707294179753730865776875340664125854289671841954453212417102462736516189395921813854390988841664980334082187825146007472509298980025287889377405179677482705128729792521388588048540893114741238390563139140580404974542895242708202127616080532123119339308494183953243806265581475876469400987868464452507013271662954784059005533965547330942397597239533889875856295311272715763762379208883510731682865712608622088224986207472627355395951376376980527143844473711021433602048558638942748822286286352851649605241950611201146042541851222869825618401956237573715086812535295230897714747053774110319096684354681673013947829336861028702693966792620381923691063286733801018824693367744579159667923708153188559546319345593717059294105976832010436713458223779312751800790546087150261171148125642771521434730990829356843695455512493249263388584216614635537116585092444425744149989283078197473506184333337489708545352466904855730151976591399891282989248561844412442389129090266693844156180956943025307010192435251351108501834531177658500296291284749406137810071465209377016809921432814976504792232136475823568129717455514839230855870429892861683358780401291703218759527283138450411160612401930592802946156452849676875651869361449674441338975859035074476541781872184809257939388902987566628434425403666533495789891845884711190531103185328622268285453021849160646083537918804789448965009590023696861325136264987531663250267301606190461780400741448207879903772612993858393844706352831457398631751041758545321672015320080590728249493629080169404095648148709505620300597910243420659312919369795915767583503970328963071445460467663636422483450595718788408276784026832357284058409246963138331370134519830513382677328785344102637282716115628495247192241659730912613765800357841465934032147754194390374206176923264284972038039275321388224712838845432469683010430405977194733379008319723781368787086285657617632549806189051553794074258317887441979995411606281617599736008948818708692251795926932909475649267045456890924529581438625093735807113056725674163113979470312543044631366400598913361901015764793991046979469505152370976667323176663144037942900496472957202506760924787600805266747067993086931687685763862490631080769041320886377608319732964499569591091871495503415183402981908121945797091332471489862512519933463836313396149858925014097552124029552583737761395410658338420692913931380725677386698930919441155973725446440186162238456525816012333699046739755809967958877996104291604160022778715056254563817424242390689921662285380422664073669916615187775406803073321181535282070927835644640701522312214812058111964295234601867688434458915444619802301434569468767094143874814477342128070418069791727722110848581203111966980247119510840598867656454653534414925674138557162743318249601775248781251836288853691460813889885583911696673695145211950749305285653405179354911123507854894633205404511261704396445916428559962640376087773582243622898174788188540171543927940947968767200358507888927691095748506831926314400869986051988733981097016056321771675399003154313385512142465737092123297822977293552070096392735616587867237265802211654447906597837795426546201911640355473909646466950176952048581011453419088424030256259201878212511538926155511749109372964073181727829034190474487469672335367784497811642463101571126465920960052156742050730342234306640790227750442515198452198206690866944544534841287085653622212302595306748221083943105476916753706192094095605970881417290614988700568127182565935002714137760243175028159983273662472259359906603072625560680894179406915179976127624232031903495976869706045177043718168629636004870601358582238334194375487133787524244319016429298840435587618039076027467027244618422138082019520052257687246984873923371730147342217909335311837429165728614745642729055896797922930014448394356911283423210105530384690630630597055811908139354357938359380681967992851346057970786211465640918891850878039808023206436889177716834101950868920734530828877365837651873888797060123991785931403099975500073603333394656046989496077635436067726524338739475970083732830688083129446531145183761886876874065499089341174017927112826750764797539221720782522533155615155028350950527182383920108188081096807999943451535004918267659196589211350419964419981472502861265639640146644711593144375294733485738359478496401289482493485012920413987721554799894803805270337206551479494404495696140232700184999270612392476409211322649429600147713140591346714359807673841542134597771566447850547063286163203209222079658086389549356789935150412286855724622244331428788741557540515597609061723916309034043845982294260313859428818864984863465043002543119183991224478280463967513263865764009910370868151319775463974957024964564908593643785533750413000878771612745841854851650821495118178037414253099182687777105154510214124722203199125590744732119876839463382947061937645278285711029569245802914432468554275931712511786332693173037346809480095814391949048812464047065301244621182976485834653292140110014574927597033258813264831851937631957818045485063691261533548118908154177378524306921830804755703821816970442550073918914860832357954140495487162061477478778579251083899391510947638044578852253701188309153085502841811937908682038895414751692689351596353866066460091823204667989233565273658766971320063237643950797288643847279363897795559413129585328105140273081246540815970797489509436524606359108472361283620374675710473456623299109706829459323258009304561260814944548633708560843388084850292033339941807707169341276203995461500752071445219946692084248786789236431388928140341243117555682475182403782780239272838859204329359073230838049474981647983783069723004687424384844812585850214225828134452053449136171766236653076057112084555729850730947275859642683545545396669658171411684098585183923063252613038231287987718630601328933818000782631723791543142779643153851016740076096531535575823540417896818815789059111192778529834148668303057594585022994072072874942113999830274004896058134353764620551757825987891406508490013458910057209288077131489518520468183880966249483322677280821317987780820739447908345695141273447451051864185513782426755853354686002463276866795096053407915890129768407384616232028904305846996352826438845143168358922516227426064428291147524688092756175148802528214937482491984566079848429822656103630166220259906686574012007310807153632423648823820471360695590238390626206386079048511327380871431566365122806495387602247759440496636964104166865397157392611187756305961759725365695587800725479626807896518765178093517914264626346786286615021745904807946600124186335574104138962339868447509539729525302291154429043087679735634812812316257098737301835187836791400920893232252192007463785584487158704949534437980495158605589145756863620541335957223128645632659168067319461491933863414733899054298815948506574771965589473526849211407026638936764313781399672507249513395620145585441573481059744339300277718002171830368224670324739136874643152463935822197189830764492754567118818073457311828162134432706377120432744396607047177034196482979714329612025616210167173949424074312365278031952932357872792063486888936158521650669544329241272916153015187660455296287537863697444230541422134229918236765904248408384297895194383820532372244275639144799007190948403761496066217153289981713656833862677797248523289298327984521576144802342987588939133594175901431725883668270347837522534944449649905167972357581178689328479068971449563770440846474578345251323585687220565665255170187115764869390109989353601283329757704438524312859936349762724267044531238381707256958858087064037015177383012493673013255991139999718536786931416882769998676079227011175950478272737959057939696192302777922455680883978465363403249253499795202322489974661214432404467866715292775427395209106403950569156778716437046239608281415927103957756075820617547561442051576927484433829416843265760258131516245165279768053021504390110684399990603928841824180696457356550587956106402967603899086885218086088379864252261989917488696521636988327041807113034638047536696162568512676011119931983855704318377561774289128516825204716616965387812981350476650564032800206931847229177816843878611502668247159189634367287677617320333413004893573582416611367520206543105328263390093192394505078112227857382074940899049561666603724521240091754363537881042355947064320809764414227702538930856807610468397362426123176896689045252860055441510965667837084905711819031215805957428037723042790048177049998585235130310157571658815091336798743377403984842998252566271596730393710149518333748714570449579402754271613091452231969909398714612120610596007774367079680285523145008596237349069130574662454583219826128147515413718400386165562015485117833204981828696109471441961369502505607934263188928189246922456272164595007341929842003434789890811986731364859817488508879572538857045917143610660094448006471347092710393624584991956093179433377614454828691203421554253609232393083165703097519681607727103792533056203913968574308809705644441655298320289956086330929472839128165274109198404810125286495777372772667498688551813104183723431188948844309368481244809943087196604398976558623404477136965145706599877153242269007685241413785625497351823570312469843064504685886650406464890270634058391669294069542720874748746471163259330438972243376441367046212618204834132476506968279515170820723749852609608024355987188242077733919493734437586456738570865526806103704525149976589628749786314655210026028369823949108514890851769263388068794277031589860862782648576360724047661826844458090657829533209579786583533283875220865353070603757142012501619058273647018800555888147196604719717591076080793537827305414728669932579150102090190017288223807138130553644359284553267318784582951076265084351087132222742470712369137188992163513406990815841199388346853882684551198758734855163252015895402162537559269886957969330797898922902936578999028194706541190724086316891025541528243931947561392031791365515114378450180734503872293798154555080017581766111671065346708438289625960381706270366284902863719605796618499638164289927535116489495874031370065788742247330888225309967351102264184401088875293849238709838263890574992924090188354921419162127109661578700342313941089441162092823682802153221345112535145864897755922459186137517946833235370349186751278592717657321506566539136993575516711636008273403529591387714363547283970724205649719661013724186537603136918503794976555384834133844031155782155964647231017164287600311831662125488232907405383056218651651667018936637002679354951047954937668414828687115431175559119835677295565660035571743345241201738084659578753697236312653238226915290759569864175273527101347506730372194405494158202736095068844692926034243963195775805838965903896196874032451513014902593565378971243173250055163002592479547955222502647574914301539028087370511329596699494772901364446458655035286861414564518717403955911666644161157950927444354297700062326453455491439716395480445114973973630297573720742975076641318272288787764611832721588220941676972339114036466764143447190248253852798126396701186641052680442323916508624745347041246810873286243078520361665519582464716553783163572167704472284486756317740855037567963828195254776820220423361595744892202918416263811867739986107070236786256393052059921929293268099987444657034493512743168717826120460751735830998475245574076564981290305281806615885972754588724423467683619137245538091052119511670397908386023074074265468646003616785961112026006439287191110925139130418277764193943779731262884390455069293755152606192008722868601986148719065396718371348257709996491092200592921227228963483365743178119298492309165412566062443805384099551021120361965415539403603060906933821376172057462687649616464731681185106359200635711205238659916468380515396301369053291518370682320891436300967153555587546956221698429813924887560981267133478322158447870524320010939949472320216040389874543419546015476502866252686213765665728638145815002188694016594907951316674329994631442555720238305131506894525751835252405999478517824238000371663121567917795348259858018804379789091506007154441230109542906775747387136127308400046422165803139496914164907192416983267145304259947076330678884852898714126643678863104424392347615793209001688248041558509034587118680044575274932851712463758928857495644979210536947279393705569850906334967073217609017254146532807120604858635557369278652052906312932622394067586911191754169710585057038373731283468579538317418096024538233255210412223732959390666493043789943300316544989308427810154513835649649302846697697417699243186427385624525015100430553345393151679880777241985897919488235081301381036560476537596158980265393123448888267804897681195655082673226232334853308970677880295757472308559643238529622335004894325403568913396336189673600258664681703818693158776641414411784632844112578106070450639240716724703196235065405953629361993587832873709885756520941947908202059286887214689371996986355981739370185668366106419521895851486599169099851052042046058139076664940266317048341422514793437139754585178440032696218118474384933309285298986738862898230204736153892535852365527398190599278570483953468576037587705913058049177682071083042541721404848506033272402139451859877669958502876068295692650964339759829175787821174499661029857439988466653017807831504859379588584788469083555130206213033598593594099419972938347859119905422374136376464552639604245192911100385868078292418526683222659167096608273470752673620629194748692258600804947204422602379965465289228906167000166250338422280906002802753636400401966697605264184269980086815849425062003049815503428527710549337153350047903505361848094483213558984179136067759286623677710505747497426101579503945212023134042940449060794567055315738774525275161804256223296089619825338148945492861867375147521332028149011932932183876251602928155876119519697651132851078167456773169298746471159386425367519687098274568824032571643881064192736962701385894205268026696318239156031540318543792830107378179700113269137778255637295325178257148199673292245628083183393781194841959363037974632786039735971681915785668491550814267258903160835220645524002266983187295699855520126730121584348602353125456911645436973228926938538273510884267441893664262710614767123796262122456140585993054832958914729415610560666083924355499362900271953277017899361038934800848510637813270271812175329176992770271547811882070557744886209747342876744433805440979727881090702996351497808876679805275406696114910409720939093807246930230219410138210884702865056450271960964528888666644322819595328567867241005130310771485565353963237475062898932190608389512895543454242284404520904041536593842655051190148591478152885908339942080706892754240636898435979945320340964678962947103863422584837750055501445528125868589619659370952115974332800885071168299179554569074153612890365241045549146352508828771717267221642318483960447961274022398354161491930805333522819322523250621471034193652526898772332742526059716595021995853789228595652813981476695963992365673490893315536080274932797980252224603851016543670520768728380961566673339706597934275255431308076406177202306811016184518978896259435496375691812694120261309501883932820577264375485068700054468328400281823575663128095029149142111008063449323434711249911659057280301437577393439374202857429109539537542123103438208820250731545874608866152976939721859438459863562474802916624080361654608633277021381290791448410117107117549787999953455566557897705401476489811807706829240111488494548499945313152483477406242084837336341738170576749928050233973943975765491089632052369764008066908030308608891161165301411549502577345390088242265155656620380470143808971929392899957019423453507554907881837000820444107842849155060584020832945364269698717639428311263015918826666852450394636499835528256424252890254468144225467035349027242007925680097983105228486601351193361005925486547204552003474417078424302989976422395175599868770907091410357016850532433057794551399243397626504020205956567508659122273792094942681529387498620452897163583958606235705872457544835480545220659877163658218171072204792878903254881712787845042665316094077723063177507584142504679506093420312128497228135098929694634257086134174717550196585025098812711407204280513730903669144696493928034245607775948548237981863173259533600771646571431409983305729284382819891880503397427161662054069387862505774986474065298771645326387922365772757495833674925200642195199154934607073967383507765033659858404832191442312434855003158881121361405842408530616092257650140914498235806152868407748524001753605798840100749552868447405712540951735373313722141444840348330495249481715007826273812415899386473935642434244906275947806314947108130027217777911584404073022381875392220337189149277704602587163523483836822601845195661183017928351490141639536107942886788526595589847609306555672304089635948999611459253603002097439316204276241359382542482798246646574327573315466582226426361290814010220296434917105070725538760843192527644105564614758860557608588699740476069592296707811472783057777919332443213896791935006970401796317704565751857945690665013660768776516822412107155065603097035249111841119708177542312059154029633899690078137039295539532569228754435687083257296083885767881532477347656267918618691605036460826248719213236539323733869570192748813090150549406713530572601846891012220492141045011532609417357552035371002237400250089279302728253832892490861910611997176987588155033993680196149398695263883037941632513176618205704594031846707959006111659411054052831006393432013802412189272274612930873775595301276858233737939175545579231886168350908865416676904972091946481578034374824460009809499670241651018160287076951777928952756735939993569174509086112556235179958440692422755595832837873810292535901215581828281808931903418533161244810684842790443627791442970085138674071610986319935997904129953953908040453870901143879887204206753168312719274595121977248741576306958211280986488392506664834248466730048754320912683872616348104663249428265525462253737858258837436594848226279049236061365475419391682753848853491901621953120333627122527962186618981622491718720123179943719156015616018084222060305911600653677360650619904585580068967482434869147755202212799720037600748896743605689557194008854855625283050771450256526823461557434793458633996661290304499304580962754899477408101525486213893782352202440173489445457283282992837352050327467511489583083364814876798382107103262033972147241649349251070922087394182233177974692509061809960714816119054539985739103029706344465159945002235851688093306238917020427604627563000442873933799524786171049439379499089104173791749865455801200858030542180755847111100919115439198665185959406114337703753757892833651377015306409182325564243303772240257721107529656089200452871835779542817215693432327921344250542939067571703510762899438311173273386722018623072340222081882596584761128698152413463043382283875914320616174392627841307541334082416728827311504354558669992844668090742893230826265525075667150290919942408397061334161794212648978206356417639050417751087051224177866566611511063387868712902422857526868709730319418112600212265104636151325333917590098372367227053243529870675228077372116161468894638738340642998043976383564273929339577229695912529584157712024142520349635368132800612934724027028874618911441442197692395184936608365858956496393066373431296374733211148835429715818206848954281332456720294425321973413507422101850908718258053115809151780820840655679384159995538075821778560824913107250845041232500127349134058099607350286429490659894769188443852692746007979920936352426771801901909936118569120643902281975857754903022248491235297723364597542202655914854077980396438436406033296474051542984553298002155516128237133268737939107432845700389946535505969297817928293626151188172976509184114145865815288647906574986762045147981772150039177138598344815702885630621156420099642512017069279022430075048193025019489696995105147316261324890866814504359163204117324825994459698308046710314128956405243025683161251918228321332136769257037238515178457959215937899184179283155116765646533019675491960117874400987734507851144207612672258490256301674171330281344363107467825067853952066532124246694388997754414757165990003209356347210681984104461362474804457856918280274672956078875739199891585477031031795033555093514537439183848228120409441362008392205184771007076253426935668623650683303376984818315789434629795353920921030809602148692609311979811275628078515635903980259591113522145767617812821787893924821930870796985776615215806091782475845062673742966588668180403926909864841761835830611287471732487240728688090995382427774880116419292952914296489007020205994113461975880818679832839736939220034551160044169525365632902991019566777747623015609179547676151918525161001573061571818865879582790969306978409628388556319961107665248883723983367741998372341728331522788699905805758740607804496117890526904637683155448689882071381161407707113111494952419175579295400856801874546114955601472106130951047671097120825264551765114175833137487982298817171613589790664190421813358695725600561856873269850046216704540901470168562663280923807882951316771350525218247496070034846817291613545917921673691972913587260986683502964595331881083889931838029168754011512204241535167046393266054210289921768043549675746930168831038630239630116290360623152884615416589084279246199008097977849732146117371373614062861239453904541288541875373040115708718773391233475252689910287774847449055468026099333867717588341750496789231932121144789501485787091753029551260257683963321915298120753096298186921394001641189199596083148864750346232211572155799261102659312943706553196586511024680233132032474434249100323162984831885941473818032735350201241081666431383431843682908968998978988094656858555506114130895328629038500100646513172742800398011843610648746226188697794681765164849426127607611435906049410553618154406378685881268140353909461546720511371788532748720621436601373129698749542793803523799914952296787221803937197599911863596574201294743803790736608550018906898668996758918453262926154384862980384609408372640077755566466543964042930206060270894510663662968089063206788029744992423401932980495743834496994989173289115436748820828386994231826221609557172634645448243611249852285368456664398541853729004327694244478319372722958632024484414737680627186843467445248530363630893252164956113550908837608255457862579092629989535818470808405042510226262014884979827860440542144534647781391222191113336479494832407565671837334853278147708138629507087189219292401134774414077393817690675198058920503146461184027048037294716821110044275982032610453751117492669367291997897145611249704073987432328334846806480636783908353012809790744381050146485443217330282463841888417828562107520680565284895044577582752795768459757412505513712953541946123873683111136709459383896188063084241655919426767558871397846849821974046137107276036514694742770248615833873546879604928123458186647184606118169470313311959055062149102699790814661739045206511392789557715822463747156212261059257592542511526650073463187835120229605271976801568723142216287310308829493472535627300091670636139608038126721678907410743633861754325817870705106518671392350637786106014997800900612937610115873007179841554358352775085164271067176978972871965857305167137966374583997015431807204906755167254612449534274501227688311072407191816638401611685407460070566235838810606973741913323675361971000748314942295406663880718853265935455896103046342356095021575114897758896316814570426988948852362152457794934358699178312036714373855128468750077645357075324125767650531030280712661750891776223135353571290107368135350002267834732615676104944891738705127466023835052084947570348753040272959635335330220703976947386535458613866414715000151611068078182019196616568830775475048927083872191204427703496122373093413163602965024608342463628061283987248247811721640140632297073652365648976910935343238580771813959255271573582496350225636951179435241504546714224383322546326509779070685453490116690848281432950875601365198178037910489415634973500561262109229697979528058369792667454763884460674717003092592026538882335739028519279936249260293400753944157118502389322098147021165109465068374931241254458615751967514773724465077615607063866565409647166279997513394683659271274117802709687313487497130053016522976505981260363513262473924435716158657560120596253836974625688026213066950240701033537803407188853984484940216498492189007381276108798230108472637243751270394518258877545301840775313899487292786678841037854511678416546407774219494898749688272312736896873932980748285107197482246223584725510674376338045782146906456945862680266887303971194876703109292347344165508365091246732427336719886806632404231704133499874847482744796356038236305336971526472491727267653203013487860423820865654854268096322329008556367628674200759480920356239819525785672739778100820530349654653201647635902078169442956465840929103273972350106239331972600286873079723958322902202230388273350655542254270730173964970897931461380572399200836227836129974166937550630826497259494754374026566141831665882006342119657993468939307605665208908825904523765597823937718974047126752988461278408423934253280654563009595093758025769736190829454293112820712725557860264005250867977564527082391412728215806691005673591192310012354111259834769169073907878697502427271293111920986887892943363867737905900291970694695232700066295418250536270836220863623869477714748606803919701103622098309645348362774203683872276918441609294588484387678400643094073974436424841795060456503388750189623337188816545866731827212343173843747653854269302172775057463911399332443756873182329885546783573835723432832049330993508475903337896720956288640500830010192713935334815385236693908271066983511873481095813659084180541830225783171154564227688316631445574903768226448128466755263298015266561228746832241832435257063524012302105546930341282880673800811561327307224910055360319971764109290045760658119256935786473778326507592399478894617838735587713942800376776966437227689448114276735911280840104535525390756194314092613105841806002870507996466842137881955525509520718951976564165411489080851597497451932545186394320844352253806510521280512581069384395942696880644709817990698235987586616187908693899334824031271681944958079401482012751900294066612061759330127746827557330848585047624026948345432689302174683796862850542053443039373694832910839655859294159212247744683645575863262902603146824389681045831764670588344791632011424786057787740988774568214879915344068380145236013122039469676986257372164013227289356378940221382324140797577798836353559862036558856803134588747694749629702045525474219799280823969689920594460790789452576466571368428718884377780130949146949920593984326599185990359089008833429939654463516213836321778344884386341080270659694144088338435632535451579685028090471100286713744804853621851466656063695043062089647273549441729992914803725590102652036935244571241840639674884997593666680321693802455646683295595034607622144374205225249461191885799862231044144009002186337190238909881043082197239129143167019489233092478997716039340447741481574980868723867283260558779706752283507299433991919820856392168095200335487709363557764434931563722782489914875063161533248853336231449000648342242951536137675089204394705329113620878473938345578922715534468059536811498837597891086409916668083298349040765474967431899596950642541817641506936733413335502600109839706273112104328413760930100509131818338391407912070593863310967587170240758164075933703395289589856347971403013597033226060338215411606286717633270603858587431986170219678710748971459359560056252772962680614963554547516377515863791494903424059932701114671927179287808232306906751441439537491330598878891809139036373023626598940293333844883118581516205772109282130965511268520299082248524691185650156655264189309924847772468635040768468063977667064127948649521729053804484883977321197037615286604115243051202379482832582590365474844830482816050231318779444888307055139127085778110708467090147401368489748704485274170055857238981109970957751178197226037737060189482300673991585509728572981738516916913928779187059174871958402024629553399475696571556206300762155683430523818649306908299890871321228616935026025922890743128223351894668354801943681151673068103276600913408563446439844920831221206359376604709537781035680858087799811425133614945061252420971104375082322882759611759840742352176471519337646114826284370584200415321418753989812978280753670405294295316065130441695770322590451807503689932573320305016575350696889199398956634736325206922376142603054401030759264379950083801183474119089476867890214693661048323653497151472375707045041046042685590364263669325834491681425548815476654627722932587743110230102463077855698408011453180606654218755893030331558608744662450009577256098309179397610160974139616273967720582656640424798523298256296083109431876598080735879633259294479754414792345118079609952718286437829842008221241470855557749527058333937277678183831127165045774192530163682304691711477026733405362914859728977773104472216334099469142730592564440848567749002964999299719251878422772577118449130373041665502882142440277991586747028103580988737152970940103858681107928646840883336853071011606109092863939785101386855956757106153228125365754760111253392699059672321793630413392063880935157235520695652000174710034361403987288767802893652826422341360063027788398322170632719291391147124653399234722090349873139140285287796727114074135946795568552513593601216546260655806906034112859378878743097866462669487445539733408030859973456461742920895640527447800151051344144379583246646873063078887285665922783780383527795451481724269388656736103916451181852203948914730107648588381244511413237252355983909444758183429111793503505142076054137407940867139790415365348320357949409407644046593573280978752885326220850644354715906936984449418464685936353550826028405040090495128566795496935795548583667149308199089359684099298243792439551264016411599268950808938926969781833897691135195199418671537316777778324483986389627120406311824033560612555764755217500721965625892419352271012146652940150087880386748478569271097378630498540479587551542347601461238350805845389538092655432227213467687747358153754792587192816049271707250269110379642532587031109481095793674600556499146546971557334504933400459882732399950584192541177120290677640215229547935363883026904200268491985726633566751900958546175783384744850036371134350903157531284749684297894454882329224779148988485337947222857310680697675957714941017412645320095171945736199318114239984903481164265112235567377567808394793270426074000834238122605894513039842184905573959896534380463406296999085173992086219452412943966731314337688696300905432066243701447203523139843130479723332257312933956023602569187731428199596643567715796519214734718940981245750293495653035946340325610548670032101914470677017735825981457395037562795918369002629636668436718866500720433597907430164989374021595295497910349107870445158724600578271528945982520593337073101441371061730734567694281348518882281356860184347890763722328736659416713521332590665828813651963631708542227160722638005315110512202709357696560021905749272073846197130232227109881830443583050706698154250521975097845510847190067730091111799000494074232308965832002831477864930503398008595364498558147408450690558499215317952223420412491671225704377399470715391019714443123352294571749109049100774626058098257230202871035147289183595891340680391071904635822601759425529429389639608909474571065357219764933883775473775489109641480945800075913134450239476264781671454965541736700047600842927265977370980180916529851919749431507694395841488863584461809217833796246381668215440817597285829103942134878799380409135571688456311072078289727854217296229744340767789715794582591113845765892216245475492718319573147217264737523234018553762989444977047791871682411515768390307364871054722097995190706997341862933224098896094194146070727774133464336281850227634071328741067798408958026675507260660560070473918605592417715355877074387805217547849429803460880650050149793614492692736737603741611907796863250273979794240635230035458371987574637294039916863557819013036701475432639678892669028305283646993085404454463096556448004084534239632926809730891975739630444635085827715580508334068368494791172408998463977463414817583974982485097066870548519202313389860735965289813683156142150536488740932339782886081220941058804858405154477002938039526305917087060993939138452205361193056402758125988603715749904186916234026932647875403517666637280384677489190854031963178499346404812647605338991424904298928041045623005847556187205700687666938981030050033542054540113727542683569428400339364668100978347026432450790931384672359135733172133279979893252625025809312266154513150826480255547903022535527332378618121970585312349750867037079276819860217062633879574598790933798373820270124253618653496455848313301363357778355310921155376724874016546127816880626940146760326553024414571966545300498667959544057644417772353167107354808754689251375119586529814909712242316592687538726633314175021793151676045107855398710167418793176823820229827953760138848831970265779812095417388411159801320054220010656105672019328364256756555714926762920368195646288438949345921227689873809336831484748097467750533343274927595216320106620380441181028713385791216500812218690630042959670239871275426996369151129729833078978521347629514050312798820376830239890700314617948721317636153963572728869575645809633690239113590781035197176375963793477041652409718267500269276192666831056988788298487221677487793675718060998229926333715820341639629576053175439941476090735082780716010717265752557833794904048840967080648902637235487313872837749522963866459672520579763044348839632503803329125386411093002022182862912397413450541222440291410961416001986940608150907555862871418079731789474926890557457861113322487170259803139447881719254477802434289265841265121964674894494308760602142718717592152197950023405946121591396284468940555660661492505287563962398993301657142550892059763416917751035164510682312733849704389450763058241838078440208743577333213804162416271263522322921459455715065642840425226146660515342467233628765453377492730288345878384763260637380207425037117123987414077729505632964842390000318351181078045110305858289846788228416864921022499815097853049721094176781546008218193438438903054428572793018009103191371330251671517829985477124753933164909761887702160880027041566078891677297369161515717155332290362357386399453225920507059398893770350887940765513378056139361295332449763220966428646299253983443094910476636567583308173161470230140105287814246476097387711027648244920447304784868564694669909808357750390235596516409759314618175919101547450659540875572885757876639709402505203097215859493938511076218856770570922561785289081967091646765126101165683691905883585868610860070413350237569724666628512021506674523567016772928656880065579680497404317614087235814495168916745240539484875994153306718748167438921750348810812505621928092081834947820599465878449285906707086629820717682310896399696227589099222628615478118227330589114134278588409908554946641477398946362342525305837853123038312078924759710899661770882342651676705435024575523559875021749620628545298073296635782734845132200976954869043723623064080496425791843359695340328486450415789985434311992540016440348478411897538855718070071337377408331419265703522306872004041399052992036118735182176072351909909486683696106163105370652704444144774173967390331493954791265937333448337216397650606860705155261982612975784476532195409769528450836124147784486421202634333164372350435273118029872324814403158268556247945869256555290035039518071219487149327793038343955316548577034192758852807959066723657927745245582606870944171500340788581992079126948144167228788462183501853350510710996264928182545081911913625934310492173051546217900748090862280014232366033295452619091580381184684546484143866943467958270791845885014239937789118347870541732854684691272884316400559314218781318592734980062111229640037822476272603341841299313143859615537721038598987951998073530782783293931343099326323267200288847627454740220435391165882421768377830238432318135444431132545577658603942147583133441808327537980229072329857796319509526026812532918522119799318062858070496919528941595969714067824151276566683672925780217494466211111495725949357451330135035969211599266886867781830739902087772565535449820499058490966223892317900059706672932336563571058003783569439677630421170904286551279934074140423656334738183029398377780051356536929942185469812611094936954359919708281499391222267861493093616053300279276195709987886786674585754619054988068121971315172662302059581093673227533828760910140069995642741821482964366864244184873342532685192026510436960660210700730154946835592424273832582196919434338384205766064481865182368515865188067611080633455942643091399908057032688681289991724560679591640767289006078273992218849363107564246001881643243819459122902522427585398292589477333283782053926061444500437254229571053743036519961319049927919596347613318598340479718880420249672385864671714787160847931845336941726099057418170517360304234199232616113183350117617774295188982094705423255635179725816592871147208685468235294099146617398946479773709762378093539723392839648775719651459836244010393058806071572016614190816223967523502737539265409558589944810287087052092991408266388121183750531961808708581188299909060114657825013319924043956099982340817629418295381493030662396471412419635523279682271812909973181591217780151286847125996305853571196968923290056872493398658973138477807485149866683896598259031575445140120990311614175050777297341049549343047773338831248206738460975901436893162423702115825039654655488205749516028881693406254334978894865195628304758145584807677714109391661199078577742119306757907013518730167888891240019889302497214869155497142510765151876405548805630387603267180761046833850080419732397462052437542072541469927479860568361989058386620748733538103370538815643845732292830154425877316794583515330872134080444854205476077912824110994118796085032695512156547004367318559311442275217876873989537327264560276265647187012481446863033580506453000735071827319020613652429556729768527231814632713864795692458640463418292283557633183797111917857600043059005344667431224875499033651735096367784622997783034543766021271336336885421971282050540953808185429961583414098592677116593883663584833999142439174760312209850779868269198065665570956402573714792358190347465807972116020210132316190513997340481003627538040472550867933296235795418705253424919624526882398662581504954898705465162401441889064888594240249243813306797876066779035885645491122121229973238113141391793834929863071126541843995381183140636050566297823373202666553561576318877333782312799105833919204505119729450916431312795192699722212608891155163259969653129991652537882901391112207289436899152884993259153966434835669064281567406711958186749050421363042641304618004370257772723513520870188517546930949279257700267156701053019928677542086051525268641985423868128528919777365374176303426948181605461650451545229941905455989204362007631744676406712916923676790372919507877329821600879343784300957145651264423610967079458701850348116609927260261302110120342664372146882322412878807792095354981672863352026514404108984662124591966736494097218352479396227299514508008305756989470975232219775486350849362694710243665817603222920512434658251379223918979120843721637304659746851358796527271197670940526970893173407560846634772388130246350329245862738836403859804827746306395926747876361930015861151077313509782902520595240754916244240563148814632916198018689581841422731177665330760309539027045703684667118360253817075567385663802068934523682626160393253718925707577879450128964996922738900070000542587301238647945251258053605009870014363518351612912890226606122266902597290582330380792566236449769715124643174819557921491030286193250564525770793934675369520987490595224623063382419102910969214781582170967925100767484783268334528625865333398820322688480708989400989518002109724496261318482421925211703745625812750818222012639946991748493919995502169011928286822613600141553269526505605421916360118388543678738802023479011657783556420912931980346271539648750893473516711503060870760354397762951658772180710268530020209651569994009723139284349300728616429261801407351638078254447350108036549109461467142488926179333560851982984394573428319654272671669295134843267277896896122282003442927211623156147244178575874095115510294247636752931767958556180027226464486471648059116340060846418402056551482729254960749022919027246071628754764154882015848565787926689306127878833753861547546369955544398255432691302488051758971038283103451280541750758278080354757454415890076576904808799339948493249780716920706381746002624609408715673079310445887420801087659709775999527768281352721138540871627345928235973933839236330568407351684712371168517096470156329156603818463958126748870662340290482682853337832015127410707914510618014339311066780251810018475664548543038188244188639845929075396105684407741225056963908594983966138930796860030962175865757113838425818122656185331326852522392030351532736968316653295910818835553972086523446028360319680585414252590597265399411997304257797708250690075272987169290443608880261692701397433000454157374291840627868997201006437271235122782595836597469108415342664312593694082363067114154656798662589638277589689240698715929729938090409237051155046244167493486423875374050368325405106392710826273505580441520843986486641877188550583449431885468576741023994408311504706188761049223721831307038130509327598979499210940537760468922723661627725934686389633310934262960953449075150206929255909918979653238735133907292777981621610063225697160606884612221195181503060225293433589712853233849775512161571454786099562720738962763193705862466786194445140280635802310848847162789761956575012673206067990801897748240504151005634622038520495244713589603455426888636755307992918993246755678302231279536999190672122589204189775377061099978917548350578228526921972918694735817583967828377891645533179419152858674481340866203726179506814537564402541158315413532943510377149960325396821111634557270152461854800102255889355250785096014724011037408388993598616928991823258679301577589275547849805666702041341628242925503000552539696404897392749941149300983699434604450767796715519442224364809055458549640597959079720412913838256197994642865676262087912781476653934592249733839510638765161263706236257222188957825160347042454028004983833773096546348622172493611360809200992631377599506419449474604742259890267402597266640217194269930972014333017711786009008304443536554477383433148499698015624633257796151780081325741011464844742877229462874754940903896608717625410657671177688031031312402991754962752923943870848642756587699433615523516683967121173203794869992473773318952600490627779377049707041912642369693380846601429865290259931019123421668920893438314952603344706497982586562616036966642874311784249101367530959884173303392996999174258291122009006829359696857273382523853021296009761808581282995917765974880671016572224647372386678751592689420169123491177666055204186239759489370614688971454876528335028358877109072159332412141432761195680954982232271823661368122285056406396542299539112959217887048777713694687776746443387195675000179214133152424964374881660996657607444830179153954567237417310346608390649474365356791225669412200358069165065978037674036043968258860756404849319331910151614814570549670729701076962966221719367597966557580900033311973850541527026757192819543068282124027301789762467598486579787239742989887232003099720742626095480424124865217085119791974298435671408438774424065197506086259415240694112080121772340842528707093829229382521364748329117605531695496663130534039612402190159357584936284664404107000514250568071811104401442568416413911260147052285766000517167653932221896758223717397277634488403128884033429155005265832407998284874242149999105589122650624837423782636773358378690748231549713206947143272332073193320863224903391349023394324439213989466502336194352104648664548299456877097991326799512707005047693711606265142718080813334072521294835441015667464343907647278386994171011345958346255339693989133654217065930431647141794332999454700732023159609804639795369064631107923735383778696982835576549865110605446309427905005379765098350342084817452570707849409530126585690361424521916714073695294321272211215505669691380203939886591589651706865315190164089276816451601872796037745627544604588098832115390824028287640925795508552331784062397162335128441100874533731739743326550134180567808474536159903184566003487421890249991460752711334598938908026346210039937599817233756149205727868858907020562427629901945437220563132708130390248352486368916205049880925455767001491394101539573264410080717457730412715013866517865903397877583332227404545561138680445594105189902058892643517967553933927063265298728715949422019571959943392012050835016006611466031144097307931663120351997654585891040895584257315421084387276305695036931366867039287650839238078218673616293747111606412029028888661670237049228749720162663196131428306879967489361038909950583400405879439079644922044621093666266433150263032821018538185781094836026016928396830399773891245342223815723348172469850095434670577129531060911380195567939481036329138261976880659454556620449475262288049870140649690869856680707943050763177981179551351560713822818819991712375386473145749573498404416742458334950301243420182425617657962300714641280900284548666289662226884626422378802726907800745414876564384096571525824048733669500860436496070716850232044349765031637247188172647985977697455628291377874305948815685402438114285717138894472395847453822474160658074695848826144391055320887412216440605899035606063924376258153572203040355322773624738735311846588711653813113601843559600912770649429979422899585993260738485594630974290170173776519500034972658197442931464398070543312931283238424171108924152032379422944414115102558197749128461009842593609703204241652386649677058903144408050754870514712536771283248778302356171694993698824609302724288977944401217858139898168925634716822744634571809839930492228487098092632736364239981669115583517113676195523404051300800062833051014141268052365514976790495931165456373058659931466203416104878047948789358504068032843542842068167564245556007721514703899343471335532605852344407622490001302325215834072885936086296499483056129573189951178056634090320925106499728713933712785001319067352743215347562871872989293210544728683631114202363100563212772150619238114655412549420857826963920281247084996841407649926209293967412326711562248381098987406682050261367949816680118991010883400894325383663556544520855060376844427120752895478010998023160029963457912415682879935593144953134942599294542116069558473280082476088402638548853186817201305026791835164851192520936762908615651008902653164001576919307757374263611233426759690090666221390759554044361139036006445401721515893310149803043366267774385521988509979211363884423727209343199041239757388890611000199805635281561235844107576631567191393269925216212262854342293977822416905538187985157588292139073265436816199876991231188250833760310480552956705331785026057329158198454766592331503957265294233190970145167113963735864805467736019490531058233532272080788673534010040671923965323817828265021163432610774133383182160103858212039356877015387631730295529975414245893690282235458459659601280380739304854169649504648131629212507073229851311765334940326475588188264453579214908038595469977752604529416054737615066630114691232495070212810892245689693034841955532646307270557285744332354544020620918918865020913628303817030749175489775482405701926110940545561004113584900864621302260325373804760224545802191230704919632656349317843657896214541705928186281173510348605921685409714054044114085596042712043975738016845830435308006365318442178342634010454474928140011768190846545546185859913421738262156542021968959875443531686638446635587808468576449189074996058362971798223133637715294447364674988950878788318909438316225602425055396793070769563100766951099836347141688358301444431985162892076938566948608548619163061271209898690077851505766271446317351498934300216062034598729183856606264984849640434384270348858368242162363788837387373680503975041275553788407847999811689490755757451996144958496098744768604710723797138125488303175174378868536312699884220633612847314698577193280348215727204900417946541801836981260622805731063643098207748470563137818641343511781272746187277825258611343399347029675872456140959758381920744163813316091875055812509485742051677514177345674104863846069602779755058308398310788322163999492874101862596255610577082865491454204389898493120304173174946660547388431591868478883223106488402338828021419298726832750609556644136206555801175509425172962933871190445125794072342786751417593449748866626257057268745782121259702175784292411649168701712133659101907626100980550248425944557940137752770605967425980753380831550566035969503735418514011707197197252456199742629458800367047508243961272929429818547912919457926280368389041536973476869134823981011869067705467148059688663177187744345830964016338155846367549497626568353836247733513884151163459906062907820338228733816833281328432527543250092268813815747677000917663908944070498734999114529283080392509453485312712774409685009226142237616513360235448493444041116383660056992942182840794071196958800855468503574629110154248755201656452099007423031718982833242343994174132214259440410442160515082853191515469218577193268744286815225740403426892800384111311086872529925359631494741301651860034328442699040318216827119498032783936082235377286673001404352115429830298584947709257559105605595562322964521882570617358108866418507695516923181615851750485092896146084403349846660176859626521794919374933065704676417567167366898344877949099800328406592254052533623043831037079741633094823953200914075356170972669221870339393913346302942913903151217933374836529186201186682652130489529047492523481391995577891297729807376599537651336993418388569820031024365448602298094684962025939161882214575431727185754908065081596751367447550020530490267940743189862909933977480801581618680880854719035954168910836227785233943957629433821454199219336562096265750182410741485922684480016823132158126294840357153263844394634183156364012753908935010354215589636467480990624482786041572936644700355338437732181718428333189856912975894155007046678553173347368813557728460587439186597966069907832098851836026347803442859244548130038954638192374313889800158192336919841694622268258823438237639360397712173185190864276175688846378691640587433896791126512026687336702980233157899052362781306531122941363699053824138405130033884734580334708252266128320807010473105534562153326889415049450744105460169706522894586179590322169759195000975262928261253393584431655596742645627613983281129484223354241170908771617390871127882744308945077690650856311314345605863695487016049397012938276164441080128007159588261849038111859251800766668562975224976867382741467733239243386038785054148731282711662555236455505556385683916027272231417693773457772523973534367893887876354599966658278891645559027957264908138614966327592600868531489163943639344527764617895785249002895754813444497430546507056967595907959478917523765082204245950855288033039763526222495942415583092369189905419279131735945076723357074711803320681044774521798306666979239119359319916009254108856685672963063170598103314539990004468895570687674673787753192465048446571502127917067278876807786415228364584752578635460751539927457161554253838879178722939317808276261512088311805358216944081003523201675753796029128989683481059577133157836328670544748833734257320824214996658989907352744155911237084890941471042608131631707175461690614817343856021998764950539189474694424784685056341528145698403538362005814011797775234878728474552880807512541514080466996565228523335836516673040477845156668687607017167835595281260093701278278104770409667640096339787190368037894831893209390872542319590900886712904420339470034242364936767380551239274567962987803274293266251505613196801838190141061804131171669259006245394020889863028605912500827726906058458153510538097590194533960446307176597586900590919921248691878509123196920806545016892190844167372190472643575237280405343363880567404618564148563455990715948551411260830724968874534242811426748143115887227834336830696133619726176191298700568677361349340032937369114339534236914161061729161832536933420713922396337283110820872426663981652409537623835389471250168247596990360671883454104663589134362249369984399253283720954881229849800894715637795108736817154431573744046131919570942559760554679576806414759200658068790860006872974531061685288436776077919062571038154126361396802294171322632100341865075597440737455824219718924874778540344376849892292151250430626458244850036946453372474217210737336362231109915245161985503267723110132226473458665054836079284048839140656497666984514366054248213517656429470685090040674586327202669201058908898526790077902106208088261236057801817239436917499742404475809960020919439883490949104898232884903031903021038821670572594183489423588937222432844933616826000038088219581047998291950942723865359558182743253538431228224921654206780096804378479592268738088840349166325484865683931317971795069990587380936530341699189132403313497800012682201649527866617340880921769695138711812304829469411464488733626794907500712216327344490122287958756422149975603553435156084931877020787634287019558330270381641938100525417790445585545525440788611041645849462762502283856120730815416846372491133431946883076901870799084331918854063261549954308350333923551399900630631662594303692497890641630030162167636486424128468381055557832140275255604756525727254771071150471400041433977117834903826378252227426136377201718431562669269931184274660704372206087668279695677424219445731882646799729809549785175045337708261207243981298171515358411047782904223029221616294699587851025488535096671704096937284514330968278123381955435408741009420224860320056482204470084843792171268192724804101977568763595675331410988123942076179599206111447746780757606594558828657678189241734828316839156060770881261412006661236404537007110713302471777845598522435434930303200972319887002792947517075632618812810803249450654937113183529530271025460509453229860140350754677111277452664342340871610020068871352063468608652763158031561005491594911748639162758709734324283994147727657838080337513974586141968983508752024008125583322273176056386743835781441646703388645590831739449286124531826567273502182580538365454811194523490766057590436357303381137447576418236955234268030093086205178630116390085257951231074209542370128142055045605775673852717484351275467782215545707578920984194675326815268250475796583438309488700246292406986891382882190047870204486871005420971481675984631328472229908235492714709673337966221539396517706717083922123466597111760112776688300004226294968916191627866516872201044797733156198749303794773410021462833418821241664880909627724862439549619010178704423788161614809575299725726040811491863249555108912333674829889490284346469028480779091002060169666576458414346312291686538136399523790077211664533204654239342750025851710491002044865352991760292183707380835722172805799736606929571417396566873027391356770891752671267334757343988423274335510591485465632252849027598060333895812432872564891203265978424493408275191664335228504145445941387090373042455144366638917824939756010528761323005110259817831357177877069491294284514809072624874049908154570454856773869109507477689811820357924668317916793457218968048149542526578860691863794249498022309241544477599309951741846092158482318029207276800413746123152962914625391401267749029028436591577594107146973461929674703377315678798743502743913141636414535469439001013530869603806777582276219685028271346828038949570314762078595634459159596829412045368659067731772349363066724555213222211052609000967875219290478109841704457715263672761931110031966558430992074579269276144610897115498561113600522216310081325558897581967502777608107091671924920858481896458408120682989478646188835616429394260532999994204663530063594396852369202021222400016224331976537678202890145361220701661122446511988759580956100860060934832722519750549312160332805331384346807330763700546639267339534154584498031589741857061493604906898306199283481089026477238282827027093168492901622690883749555325846618205529244036517678412207890230413355322566887610307467773451298266421528824123156735365088644569284642593134526528451500308479519047504543064152273334661916421565151081959825807908700733403530108074524587328614080148177461222936439655081159230606728246226570768457104267522205002500531729745841725769739455107975591821649264607756290483601630935982464112494384424340091499400230065658610117110485637516859516516657115096192322832337986051400670302819533042783139221948756807379565578819254231724232290719204426552958429372064720714619758216262537840679969491729445747298077823680566441454251371844466934839533125982776857911931079128065311628398007044418060427434471665361107314725574901607039806991214518194002648929680811012099344147193413165752897562080532307046807458613934151867260860753090239737178950936950293185553810369622210957321440965416908420199440749323721977946770582662163134051886386293458932463173317075718471522173308756869293478843707776391962319126558511189862286960625498571924905321419077732142550016741024975676576587694048089533258377384759633098173385750282536769973501083432043566706831814737699429754655694064729025237265676966539886376916518031105851174118815911921008302829827794828511522225060630670199042182145978756245979154767919976360883330004131291498652565763486924348582583963690023628137872274931054184500362041306308497368575795349084743883659536434156307805382655939482500997812548627387809852881473277039541479160427169570029026400762221788682332269611016496570236681760214705849867212354628357840938375768804098834348651892919437445869489390178773457417701955730489339746849720266890133654809093536811538833506707184481730444887713675040074294038789698522666620533095133477480598208125541228538095886253462106417608075478734509129741558177885977440403670224208007434987334170956683387711061112898324766433274927532109491651511289137287079023411556235912938774694747023061656233965679005403705210168129637759122932242629501704875135489955651648102568897198734432652750818636092317313384039589336028096686725835451140327003852092329213507986344315073982284652113686805981427338617823583289917516696523759240912895426470280178582801946238944870939010493972103048372087933863871792451789181502934169062738785267110791831291344695308015486197384442254279455371030094745257144841098637223147502483878921431749780347494611096822909132377167633667989387683459584729474514762588960892454691375269218645925719850962677658910038956397188278887414609683257674377496801430662036632641337210889062959432006932587997741714835446921457657530427518989867015670093381853209841617681271692896705058452979015247195858004949674942739162455097500237114344988269468878347858348077251811670454025662425385743002143220391875698901721786984488469548649987156775913546860102005219993913035823645596442764418958902593944578956354174825283867852571298470558995872739416887741445092841707189883602213708761465450948186455224917771860171032048299539463247497231935825433056995961400827015740542690074318668817799423265636084117993209005097006349155301484477208640474527831641893959378955233988194317350330341585046024936252154088147669989121898737880430928091637331146034734188168531211812376105724587673386575515817005666213890216571320510234272258132881498565658757347421213602744475418770888013709354207852432709938435808069255551002434961171307057955873109116890460134668523248368568598864825568469527030553658419959207254533950023199996438215073843233644515903360183917819224479723617980445374231344960553040765073768698138660045528491122467701571713016833155263587868107564770955628730700714246654138153243585323640818109273656434714153902818336511572579020611335532551326842598419229049214933749671730152276675806913838696821671797427215153031978268849491726106674976354170242854841037481953600647869965780074004112432505422763935923914070641114880510653380925434007967767687763382432532282353883933065158041128909112804562437107311645066284862821377512723335134630101833884348943083213434910045859469254398785730313000162470165355137925312217221763954595094722165004187916810847158369787938831806190551530228382307433069926031941390919408238050752790881912536811931217688796696516307613802677164480278777771352396589077770124461703056972449762957306790707145138262675872740917179668896475855257840882475094784380003648713668859968639737538029260360541795365048365664644400452364372794998540481043752884391390008387701693655920153392046334678284532638542449107393449849333075826244588537616606913043260995258716653296030473225570685469057392088117736758999144778974571261778757818481439966963647163739322585459799474952073876492821043134051947669209527452172066748644520201612435336988108941224226978391877082699711753491164688109972303165971002129999614293586825838867718519482881613167720028319995577018542603484442372558901965692914466335204403038637073232026504859082625816103927260963877531081264107633428437059102017079985618797229282140983069902573788643686664888348218416097039298899903997274041286235335956346104113630346980241729633446509331361908885325359909584263422398936803968062935382114767230598572142666543448067933357726664546624982053668745744458569450205382774487245872910105763859306533115524722511554325985023780166760076044462428367741336546871679408229039766703424944186729492605878213892796727939924017427563928261030381502807965615756285218095177725558733205883526361612795626061492849664218450340018197659488652372221228091437451381847687648699077395705331252500663955905261465883458793417454991929637873024249361853798023083662412567733173508967746328789271799737399218362976409415096607744361656463509414740607983209573888941763247470660271911207877988854882869578407551214149894624427084329098918429028997323339980173500844853165254246337766644311732860660388385047193941581443557492022635509110680618464076234035564326446802336662207175701122317967186928713951312846146042553143466311109154976445960359544620653683169069081995458777574230513594393593773451005712176819614675201455480538872345999587256812440520119585130374102825140576224073411883341545208124950893195153467842843323673043023851652812068041759374298269036588808491255497708174883120789069828947736266295123262492079005614321799342908251395557738992660793120065160212138948921429366986478962311822970545727757446942002419316138961164635730510467294651536945292139398984636076997835609914521646748598089465264508081144419866484412850267915050141594486798526664593159034535460701564172600318515725125035314383585607664311256909781263026692300402269442176128277520706536477131052088105280626829071874904570188123396719554237799292966882751853747170233973859929569319780612728357974314409143009841953131346379479361864449869450466700385378748509744091678505332850731188519763202720206048780512086537016329772816694656110791841369676158147668631908442181392300761870868926608955257186215034925472940753911171692026897247874971114410140117051446829730850396681831819488526245371366196448750413734367143850783823674532014684164474043180806185163559058909712466644876106956026597659055434523074948961205489031449491033131187662894910313963290958600654844501633493969191723464779437137384691937159992407246459005025448816231402581804472278555032931991436496163919356454005632955457991786868805182609109546653618541056769657414993116085454022603009086453572213255906027780631080386453012662870236516937187949406448340437410088017817344845876124692075607549342918788303937866284328132598920314770677847527337987898695313662206262590451065791912231760190585909948178446372797376445723260802297667358836294340088035427742787610533669935269238289674890878626707489478361493028394599458785456460763690215988043736577941062806184905014184401128674022662550915442189212762130239688970995409084010533673889550792195512257625592008784572387731871384429479837073564733431842466110850565031796981976863953923496105217024185115852244408442730497727192728862200913718011456846671819491918318767408616055109417119638651352308796757021817758770270842325240104412596825729003899372767942167121442778908420683782209188985701044600598252950337478184513070464520262034773093205977067544572641448117481280033299754355966112515002647866946539848093949247994098095590017071515184199651193038877372824060754838939332841198499727765487040484006161582602435524778661716170847300464723177928119319844289573447908875239066199437383507340223582110033433733818625484996814802195397003380917277253890153283829742871892692531880287050491754639888411939071591216310443003518452554712998930342360206253581431990095105744448224835386056568013030897541810672894364540676681747435869175356071922709779773407351578504436570894024539850468041117822917996749185315394332481317643256152610234453085663736807238732518605993046610611125717767871160329938580620680160317533450554389688719979830825758542655042572813494543630843053645206668913696233278535792623715874678111937166817115286370056816451956289920840123332022545252251096037424216444438770001386492928673538242982459521093587621960585705830752465516593901391725703814575035398335406856488502404805285099265256731548079626396759780386834943447733837938906456226617159234256938328832274679141272976030928502127585807300871259309814487042720823086924548392615254606841434596118879073919099601033176498067841659111151583136963411374833149507076804426200537704301295935637490992569190758580504948293154821300760387580075519972991395302421775113847663784785428036267520755758048832671058057877365052619243504374876213893465394676272112291335826412850702535217331679455326010837777711438190817449848069261318174571603570879733517907325285747212637369750396378644543156514922303902803232077466645181712676554603375483295781460023876895093788113508652415627294509710837370023919061943263705545098940829595513039939895684594382369011483460119055921446763083405840508589627813997101366594913334321870272890655050225691426900245450562517315590261222876487828756561229263450969064205337492390401147894862710273603584059920529237646847343863312365090731978391141446253460340605686507888923065303155020347740678942015194797292274075002129728672220237711554852202095064491020404110053288101774223793382940357552861365297887771286291297730435972235972548103056544761590452200360510510565520077200781447621399978378745956682416935302423245611654131134433718906830375236928279074118147931903715416607990918064156314438405635771695588564836895876701740290508801683590303630276060938041644811231637916321099054442048775515268830278659846286299700984672824433255197216253170249073510550352914552353530850490152961504148575071455289515261475568291199872699664135656779533129266746855294336469396639621240624516927829580141809455338945315174686768832551439933645320142989263107229237983209261287896647592575506217848926240545289587397336571580823957494157451374324889976462886665734758554223540952876838269502871289708401141157802867512521342984321243708649761971756110166942814027878800882314467516777665809526644055590309538613210210415866149764220329747506491931889129156985968992446163701173110563057209070587396616660347800777069903746596223093416225232077142993914977936722593370193784409657672160506152914149646416209005861416235082582195923666487164583167062996920664209521709812050888334448826159478461320200652097372838363517080078796147520007813298794477931392724597037756018918787294822597363602251820545310072385959446822059185448467517813007252659368376017530914294056853604373403567365372457504774110915802913918951991781326532514252120940593932224552464607085008262680954703541531448684591464784052212560095534131261229947012079926775234776605964757595324022647485313937351683546166571113077879317570942854107872089824367256712269467886740499085270066019042242275663189561922234284447653838925297518873852494851413824847032188469787155344940532013296263062570880947794842949096771845275124402332576571877038257341294521441511969361619493433653801938191391547347507906068386386266836885630171396019727069616633599794655688729842609615945180141603614521821305358046559320475445692348481773423413671922385313286473862022112649375740283611631666236996903103981296893573168026758254963589716463584784534456883234352739498396470049912397459923990095278195290455071082903534577027312621525637145838419413056853898574402563442767158705475548869958754208185250748357027906755203651733058655077365769169212060732799112346459202278744831244902194716214788146669690458951015363612457867114522043798226396165778039981143950883134729861799623136934108398020557958596642295664979854131510927403794657992586634757251966807072603482386613762497280148734372820957281174841678485169221704810726855638311674227741928245953747455749750316269004859843367604280695813682318270454091460679066696287540641721724056445672183686286980566851255473829293875368135147694532540812869049685809796127086428698520186310611518148916126548785026132311451616454054349846755979565443084106933829534899550787248114977429019692585653501558217588537155833666583814037323756152248043925450104305119349565637163744924296708460145812220692141326322764390765259895968746939261342729895407280793938034172159034444890104603432141283286346571477448886400024136035524604492050667161639818503233495386818207823372435569116323315541420320567359787941248593682636484192870771372519418427674945278434820289165213238616902770148169650768949350472011727651250829263437645166113121556256408135440787562783189462198760834573504284073535485167941883704709922916436403291986858712232322795974785185767589483094016525384066593792953721302842359954122320119429039140366414869590640356800411722229225805135989014261467997542679799124299835128571909096347462643586359522412678984881652817045530112559878470685681498075435229057706464701224815227950239214221474594438152815345660382020666285517936849268549814173749843583899671933571895656034066096887381830172412455067001318611569308997620940180015834750783259899618106721631575355645429609386893949474436015795332557085108574197590629030313787552303383054262211492727638565277923413464669967880160735609609775508916154723860055306951770415444872488198971728893329443005057584154953468831805653571016024394411250273052452161377119296863916265167934213684092021486584735794649474148485043174828030627101174843545613871971045594835926895187585544197968395140806589434106968524864840044272379813952986546877741350910008671726981110591896709157366712864736684241083625252640051458660163343475118862655925612544777513047886106106055660514317937320479073609193395914469930551326806026126937672915268788431921138785575075776455071169986880430039004804786720923880243651709452905322246313400785517771947792214993959090735389099835973712930109355597976445489174052223900770669949550204578343777596732290229341484345125281153623969356044490224828231178575559348868596331383898412985067388487133378144483085937509434824189153941826231343794687104294072356091251137231235963465495875997451351546314353652409501332970396949376757997362704078196405681283827807392066380149899984263336008709712983202520510960215695752768334783150379151940514653370288653407978710026169630770825076987213609213580270887667306616344379439819431836308643500501289558072041673084814452743525218461821755654411412732540842431046344511544301190605267987403589139207876295003319965503786697697677373144137869033253636435501556112234191059285862378182848398949012889309528599446038587080496364108729217217156566978561422002536070178748293795010256894616720461388203414549664446144332318719699841366355933490361987219534754783800676239934389735458617925136817652617233559365644552779380949132048281509153893703502953764446556191943722866530056495963452922291006562564439154277744517840056109107501884089646166809446736760641733072284603814571530613706869077941262099008002791457167651598802709851130617967743988083054806524680381987849179423693683773289266576744039978095737739886535953841005024318229562414476906403180573309429413998872105090927573302932382878330855040031400644602504813138823316841823444942557589304898770311178737723441235097896215044741173920287985114658969676138211126110256742768058496762961707938591883773493730686842050589539522334788837899856876763805039098920345734490087439090803072379026903432144754735987712261905970797041330994692778175843651351632613891373717459201710316930063549809330762552853810625134049207678131502161692541251174639822223997610209533936614238104897594900998129982577955675577373025090143202733953753536187783501214566903165137809027196412769667406470830171386779670878084723875648616946526681183019559363395009584585172165138672847463213433969233301611929160347368253060195627929355099888009050861058980795031101002561827988115744938586330750633598936905788607238454443241197061015164492369185046020778477334332139522447403253330900837264818520566626754403136373610119539583263387219993588210394441935071801603895581896224037783211241178351079017514309458850552213705760205927838812646890116627575138592403120094820650952492170726148863771226451419075276237863761305023675832144750681477663368101245263470357683983647820549736280160008860132415096057621151631742366426370230299500022249463392391014364240546930752039188500202193402376062119211529463356524903564774142834397865817430129855585746945631547171430011601182053641389016605673574532579857602703310896300028838029749964715075397629060544715960892375004530543632047608943076320715469512801472443862016115610141343997830436686576271471776142391359259307576697650629656728198337095624568935452114213090488154939115313929979058759568968246410613978354270741754928401045257661634203651511248828327782093901865258691113692861330444147484351314002589823999799770903458959103196087515897661255270165993226686801215746261586661123717461971392300167927248851983613612213998712290293620844044246011999807132866265977177751903891892591731823428547728406513220097197528502172952398769126750485708017055057706481549075994631639949725433150452051189187601762867707097843895372612410977199501453263916881173652493814651817863025838528923555063262898739775128185393248828339067316039210491141730268343197348708908202293383752668195010985008422531409263627043686995586720600143626367640078664057214350839899362229094382168841289155723524744881659946447539931168227774151455515079319545831259041166863099876424030419769621072071521910552409591694450185513275368287503996701900838085181813679761549664758151227037867235773501575201169783050908255958932781087139657352579465989968259826166328414354094562129640098354502720516524886810337555522969247018855510636242302350517525363319070759075180096759475322385303753457453086167135505867853607313275868611021520463371078452713962995166735682891854303535388457412324092156682520972525297029033672641812872825355759444279901490940190781650226692608212335249578081218312007206569081887543049513864010388241876770896447681801674790074388216652178099788289317845970222033338179615856143291832331925222543072391595856576322047929215578014164537610730179376219910228120406939581612364722496685667804845015901165727676176843715975393968337291811220661238064601234910186409594997162147093868258472063616279813504617743281610470111491049514056529427902018317844812526979225934766167096913460338730687346606335494444046110428952588030605053330214737381670801803518911117300114738098595357205918746636185417185799733404663365790932566363247594216538992384225989050825294668258510341297321283430172679411398459305038722545233718928098575785857590646085938244751348264406518788045461960605518155624986834062527024395151010833418766215088512087567360140367080929162213692533577458570799700331004268682484509177326091772564280752235670969857303190171086915337470147502554825042096789413119423962818211167790137271061085032513422834535541287383142031651639101478409865052754984506889807079863437341927462471072381032383714252743414825553257103683562678584248255695592817979871570458681095588721311315842383134170907030433295710357766892122691538189331502800228693806949624067287315462384456075280439035470536239459045963862472175390811843200689402867386152823364355895247768127162439177716994477416006987415682042997288397736706690376275926963033903511414011033276849408715692403391431445040899312088912560681510715264074262099981677654246007692606135268569028876158036117309453848146413773836697680440319333563974333576678880690645669928861775977770886039229266227873440607784167694549753691060973954569168362477382020569931511157353861186126680095395319486348579485020831986281074332922865518932182680968565146214928872095104870044039025388889072090004733990166592986007992558579008729641023759891187712911340334995133637471148815701486148684403306249316363262570091922761647052016602174817205290368999692781183653246141632770775719595308240107675928288436049262755006147399242376654762475999003858315850546673630536597143823645311875251267585176493499551244327060540483229168814185584626449113776069033967860576458960973454988659403412278131705537074049135307785656432422938400602371351687090218684597940658942000337882348185214626010932587604150859169031875830421492539933130148978787402553317341771853115233327171637920514812412319659079520241160894500874963362369318845545736723919253558085029397583720461633046094778986706892070497424315009198302062248539991922825231397900580008173449781624809713188338479226411035335358995146253611079888480535384769792657539658263677792019395609239249428502225381871117578311146639120077954224273260086011241136460561687562568174144942451180774571864648401142194128810524697061998518538401209523577537056045683901261059029146172075546219612483819803388972255443538255751769374230998206225307370826835696625307067397869060657977388221120717029835113929146543855081602835416061219830623036322899348693323876899043921943181722705719261866504818810408694367174383768761214951145193709792086335377243071898694548283056488202025937848203500649936109635879011009198013023009155939774792642074372467142630484564959626684567269347048327628761771378038339167882956710786622750446021214391721907573683202272088614285163459315773066759736394810167405239273331222850207414848763867024121812891431182265691981833872789020532956625890232238417513634801055678257277184440873369635203210947737406373714210608171974738079824810697207801423195204749038290798578913507004737977793807748897074599730300318161707897525738279636961699158041179443085227729505652574536259169770480231076828830229871816202434882262624225895602095541528117866379452859567956523451206046077339177004820772288394484071726640834683126007612299681909232596501927178844411042245753432676297277936650299547463843326703162924530738660263019847283133478031144271482732906249402574243844899550293488703699027590499756543681408688654409531659937176253400741850563105929818820612987355336363501462362013775878515854225311447316472601601732390761441980342516209534084501912923431127626280358158825876068400055328095805877719939192558233911574991338332208820430084734188864465923141561401149288452265705382255363589874137716269125817555857593725823476556447725316986201644862484388602935271643422394473105043812949635588464852949537355521927928711178309561121782564324140022430500962411305746630648048550296341897103545551205714259911418344020357866343936785503958237137601126698478078900072080226731695808829559161920621101187245477169133582295859903102288464146420671689044563358096345428122126998791250506825975543038817753155568152082673395144057515058656468618063994066163168855967982853229405711996594781050328936032107983465028834355733034739002068486732567267118185749018604566581541057301675584313126249611617894157191103228560209837521439136161169288082369473870073482803814616177237423886073983523979037556332749396502549131249694253242493133796725397496977475916561135243490769036432101998582486414396320149078330430784338551145642950080679506960096126633506139404469206750731603558877064038973060294265150578638886098822768060203317106798900952610695726479421915003448946040563938331266050858220306623110365082725037895667575376585220621551605022443159240117352975324457887296887833923708153567324063370038041675843730107216393880317763116439107329073054246676887522198813647975735984421003261956846215520094583580119528146669888021929269634003680839538690836605577950893345700652495657726247953861047923982995245249452593499765102860033438468041746136237236326346287265325711677451546533747300905799138811542381455499883875606087806511036117356345433376003157865208831246101908017774664616636270662079348902915485610685283200165199673317779094497169762821772885736588502383663787216406481300449760924611180027359972255051254908376471072021838806922645641790065981369286564067992438274886481454523506284824445077857478932886728048943901953423472808983314924114758025303188925837440613508016326705918878921870688033792224114298431736931162535528312662351431224963126212307930649569691361787351416168174335633120156564478690882659129506889057456110839113782136626094798272249572759131236919237594632693120744538915151485418690308538448948524392202799194551162897700985445409689091385184744326839847462118737849771743263181959808933582129381106982809758156409238537230638415972151334497782514326400764904086410846864559661423873174711854658615043466488152664191216862842182375328940622385911342582922959856931087291209311168060764542921600716528172788103061554181055042134368774793398745021886889347021575513065201880493895808796549130333952159481573352648786093650542168257161269560494607628540378748111654621726279066214500010579320621523143430744874440209751528164821670622380887254434463843579133349893095135161813247873847690970591204293398754982878005765177654949335354271393652390515356682959195573119935431508856398933095278769720142241190587850341838548577226161211148332962189253313040985815785755115909748160196181287321935722292934161966627564899698056004671058517112952910321736803753431553348942334847609824632985222813615723325712683221735947271851779820195816175330188015186039307033684578071933942161115679206178909000548978634554705304324658362176723834920452548442054599679409109045140815128695284742423312508001884828154414512218003747265573768484576371753394902205591710737825389789971028061011170751011961682280460442766586709582829610573378283784783220858502671014921319153866491833246255902410133186712679647081600389225404456133710836811749829634354894316190882429832159495825943300921878345218971550549630573032833812932626128588845305124512542842368611544685689963911062949061506797871161808734242037125064748716651375319312730997337512330593793054806817024801711482793813731731023735455814310685791612498045283984386503109936482123202853819389760740592258292252836005580766533284304213572175985534434287200727021374264757935160856613857977930330156106712441778467846487588711714012803928326199994258101431162394004298759301365976626805441270313783132042223879292838401377540188410133341546772148774642124224043430226898115197773645252328775858489100141107199194479394985715777396570384480600534825065948649254829928150046237298538671196005568011896826866672291350209423789863722427449064954142136090280873638108974523507167054326596969152053925881477459508411141002382155190384510174912325120477756694824188909615358458190985850146026290917301258994124612024784281006435231672921664499119109264682429225187092982719101106194570456177264006040486148111983403772266803869352559668539867458153851320612727438852713846682849327919018343387006576118885133916030195506210160063957002784377290835023692870360643157289913762309893161164833998710639356722075671288094412583482685723472102344693592864873252568668089175268231436352569704813524034234031025577923667118327091337754170491793109360773794400434628399130631058858006026855725408013462822183933141037498976448605228857583975416424509404628672051115086390534469028048279117190844058998390021688440405596247950124042842725023618977121218706310945525934343686589525561344110131133315806388695042958793410298289394319256621498641927326396927034291527163922669488684635207598314621966821919703507134351555419645304067764937363812515092407396435102396681723689356776663067625226395945515675474792920139212545331080718675176541493520987574701224358358916843488399077718755957754498727403630560372432703377905155437666717909380661593449036575646763311333159152245685714503078089575482517867840215651342555965569377068939055802460378910719305827306694183490975137542999149603996550050827235429970604541769810711356797749808024374900132231265273002252079220038363766524277601031811875243282919580689390593923727806871915981090024534977728602934438500538463175207126208146441417988158045273539192564816534389231591008137693617471682428045472297523443591131994506491291760459778747758193929298619796000721162330421834783451167910052420345403530740676482370600167085968738970105099855283534015413748623890626118439608284376056212920988534800085799774087111803556871316028531618808506579426112759811540548033081516392464914660671411978760137830223098033615305138437585916729093213448900753861109448890308776953269529472456761238312063830963828126100651114560465211382204744163779024732773238787404518999430981067894302472886013610740812060177134203622545061321741878705994992517292125849968216080015614869006187260355950187020643982855388431010602762833334510854687172772954898366886521291997183708666846824814208599194474238454716371680141813195563066426590340416589000103464987692090183516989138712454713335607039334627537421207027673536430350930243627075419720493685000021898502347825991920556694704079211505393442304691391032851565574578497409780241991320076569276107759922656893335366457384703075919744724720379418384900721469585803200815953982786360762998207920261867278372704888075770269829922196123284670259274449242513430773837017822149973657863137847694212056171074394812626182927142085453297135888180177133180589107413781780937101723738102021202134893488468711711061605236315361810485866431625335010405342702186470295367078801163145048225676248577334492386334138062120113453419013209729094460544581041936221824829323497035363135861726426933023148437369255426671920061197738835761953904242510622389070378052542989687364104398743940813915539687841698620065428977879373722830818425743331430380237684683447749445039120108837112958046414630092998756939866777826058696338690999886477696357395933659111911800629465722511749652182470844415519975320557850048402923146154218552511140403651193164436133714683147569108329905395020318699770628513163603502990840815555050056598979109248201842814288671485417544186541351142432405549457905865225740945565893400492813905226985433692486039286951766656006501792038438559845686367566992594600689098068649555239975929211736783403726579402173265930844552301943121149078788140536885231765213905466834251685461269662572927623561387884645971539221470422523917153324040398182130129603488817428246402081086511887953075193055943485216079438118063863311948971760352608332594492823503933787770597902964899960479060455879127080301266008317685705454929049444258340752080255717119469228261994598463624920664094062200493191992364931764348887044728868506020114437465601945969024045309955011330625835573772190046363038172566549045458906128182423256134122110580748076123460180138389674155270775732337006630942691705066856909864559323104875110084087363297447486687289297213014143030724054178855930949887074480893208238855575414141249298526688211263291227813527792915959290248405643458762254952982381867345944139578660163747218479944881389062761210802843595209075004509412110108616027328093209939417477763423567319542049580149631464665098551750347977383635639247685009987822621977398082025834260575454679813482842597444862586978300824709572718588471876249633169219521838996858373943583046349833106726469245935767988473108630747842233965328796012358474149850092913456486653810747230936925468704262341351525553647908422561432791398748712252329793161525466057532212453568949682301994813006362142223534262466793554894045609651532721984085657072556405834520002998972977910957157363072828398672497517786555521885894563904346487431127208462280684688473895333343654347937546483498395284153431909312694588208254539768296722688612422088606622186921063874311818986311694457991426079936916367199702146741385049331014229325285460560823305959711792662424606167580217427370105770665103209167120977943259255058738122450595021373661965290411652424582633141629830484615682102295286420186052199042228918256222535131941707232873093129172314440092352518132414418442222427519285320050844306861760552502329400894575536359985224890390248365800498123311571025157150573690495905461672406216789904715969001880845282454483926751038750562330347863358015414487889557504610573768400898842319282574942878507615178973146619776330034775021931923515235228451733788735170390904536476593530690955036464299401226271290030365470461928666324623449253055700863759163598936529602137539055700592292135525198213376778251479549067152511591800460487045571274490222072924402539753501291543998547712784352352991178446340656975324073347637332824091390696693599816446171872392063042546766710202342690915120969842953979104529441690811183176119931911241678605519073273154080052260223072830704609706281514774982005265199021773500163879425143920193769938546958617262412920482056573249348576539755464454323822970211330195632157327837624205563100361338102667651661456735484522837679764388222604399146888156063933942006834182518761559154891338142784706117376860438693402250016112156032946684418312666857825554183907717979006432780297201236050062873552404010497402992615425524016171955053590519818050319748732036407114238911903061283169742541832368621398090771407571786036892435100484756329707329436337185138192836738200685529227443471492379953680888884162153407199021694408172458592209582878714618299282130964971717013095305532018993482634115044833372586939774539288913693940648302569535671933258876447733851479612943580458622528392964779812924552238346037794019880934209199915681709100467988701910803712557524042658590804329988104029091480195895007500371954513243902732557820016296592521955268466403095353560150907561233271813759864420981484712535243669325131346602739105054916313733998818713085668986671287379942727141847568986895594876740234501425418178315072628149696569952831066350610139769877323628601846917630487225924894749286381219245266914958454389936299782663509437474990173685052599751598568622874279308702737910639698063668822771840682813791589610305622446192146545239340391581731958831489634540290193252056262477612548588881308659327797516357098258067881277226510211285911504675943647945599549768599169773366917893542215771616403894918329179621064181462420448912607403875151752061555474213991213316909884747974042858221795389337659032140411304427026536979693192791203106051534172731680883545824526703121104808921820230671733329027804966336257445622964866776786494172729397971398981741249921612385662639305838403918547913096741378294938946381674143472990187413105869171699306817565673117029073139205423073213597949377036698413376162211329796396197712935060415094192070530872747024416795842704072185254830036860051527741335683285286993729102103190424624415055040324030153498950462694700077071472166531382341962505252058270431647133987670386079048231778679886135830049519706845670584280585127071625558414738930980349581048144324425068875833393385914067543598469330391941443696168657227335275386948773647816843395327394792787625110350324723368560487477984359048716875477111009296499730176650305245688408174175259059104770612340331062506641652032525818789466959840031232481504061086943070611402495740321310073643155492023696413621393758960558590905575049477045772770454567423211231340241861157171898385566806547840507762632616837104874239010556286782753653085097544900242766586579289510206838754076941242092608648499148199092632060977626015133198429862451952387343891885590022529567593198874993834172037819231877439718645159816837365523840404034217301007795257855622546280978427076579999639323350615516537136145686523063036647058037468388936876229917137107837936380692315213269582643892975294694368399177007078280207290955338627688813872115539837042120659526577555821979446651156494815826528299711747542408017824869416719891480863207716127908847714675845072279923693166484605584183820259176725863775453942448976050645244953357890315012954804229222380866059690136951909892437730758931040616804892751628385692228442050670864446068691874457655998916407028850370462545351446724715113509691646886784188234953195603528907630701589361609279295011069535905734650712460048782333515434251716118172174454811432156730160157050091318311427803842358398713645549185705224664908799667895833057469433837482523604241199533909035940410529491890790146316853153676132372088209857080065038870836301710904809425020842914372104205607080799793933254379743832552810553495412703795795354065123444679222671987954834016786931708422617262129437181437915342931655176444078045231158412913872145424876990098795817512484259684009507108059140686035943362610403304443542232623143622889452594011125068684529263725674481416431827327004579006608861861416338663075821607711096764024406066005939935144143840501239596613071746815928202124984287779766027868224528170219351978481392068955120434283274268111202711548734257758470221715896839020102135058821300047109707775419865494879669878545566142835329263869716392856381798554861297157254582302993098176498540363998874499962106483020324111048713749237636544113739297614853973163276857935595942557667703887643695155679655970299874609479072669506835842900525403702492168464258787569062906848543321883130286219789381921491599338739020996499002303188455315054780751515761767111323173990521950607459482146737522039719202997509099455728373289724398916704437543433713822292199508118746790776602578006325719649883624459958411511898042004244387095575413500742782683917963765035801689894928431787855831019350668663699007727231784536440349933656274299319549751454696583693567117841496037069308139416341493272184242853665149438180268105147427169813917469476096499594181256706433618659413101643433020651248553979004035717308455953902883365853450815202547970778213161563376750559654827578591463424013689006843452904856352925594301022567710083146110245007837338257612899577282001987735343982606911378631130744949291432601453352106420428034549656694072222051577100810463259651738185359594834919331637429581000047144928974862796590417233727557259008844155339768645623649382568657297959842896912014608951816417650577716768830490263890382285101476828870388469898991079205788022106066476030992696474786846015887266310985794075682997272696090834713468570618549321628452161521271237581735618209626744599655136067243832200072587775117878317863775131393795873300084519586902152056451270816320732154269820895296274700397694715511532974582977303302986511089698624897184724382729420062672511846764715666416954485665302442485929018615904398930056324882709157515176257486153931574808331415184079707895679270721711712497231743410136731757225660357207674733396286950568958059726899962697152796923543657279125377985647327361270681424824669127175910834865012311296669284478431249883220902265963913842204775614330962159626750337271152085893009571221219807901947825265090766767041825318576515175513931347864879461816001246232674809136296398719687556285898269496891360292705411797690555560102446865409324696822395096813487924084665402795858323953709585442857083703175623578791182632243905062150494226395792913754162925243697842925549273505645105428226898609720075653636084143711000820214706955662869095515166355781656628028181729864774563809943114183449262942166529555604876068999213870907275287432008485069055580970981141621906664942597797942341649799652854841969626118964805803367035120063725416002295679860036766904373674099549801407408980805503148799503985800047517894684863168686135729604141121223169744561257884026459799172760990728190353761529506605709675727886024519812415635153168716139048441511398117209655818411070978620398953344870823953474874519150297009666440057487570675085116083591144867291690385239301917551395361313959621204219150907275330379358777933500561352873210127570839636070904095796964778392873884751827942209836231241778392773232383421265770035513513982575060507894524962619036691543427220760649306313266580784686235190861159680670694127255952521425381341407500152595603703092413184903735192517524602445666318905679247701705187043483013402262697709294173089780130729757027319379418483687529530590564163691285360566095798496478725878426810056468277611671376084672698617203565716816217646208549535957605644625945832252716529877722645667765184265862099252534466139751250617664961665716542587576331943109352764091023543339294660022850473262566716096789071991007937217347300294765525257572724136041389498074990085186556207807886720395912873185940793506503391049624161951938434463318944840491306771304638301659085709643894987062613759675198487888476888536327927623864863310768342029032301985617619411815211117675819037259977392102474847780872511846191504187415258500611298102348458807441229870995893842361577719325592350874733361029033852793846902972104579361764224371175115065702068544098337564521134697827299997393877027699376116211784483755349278083268945264093293746035023479515925117621877716703115217966916899298554718960218206266173019942830402313693877601892004925988830348192240072670733984872617406442874420073856239800933353031539594056057933727764276710636605425940779876380963959864695901221191382142990286396157303887714188518537789378871504451609551344395210742211069196935609150664781121079095788289309611441232610599553095122524210902265599793909075856501803778012799140968785963027344506456896542220850552464395040996758168232979653983475502137252423351843868339466740158602702131487371169476612999873711536679149968777597503550902141124574667553551075440088464105697152038594139443174892948918578276501170403372780234616241429874940112663247816018929962556983501641019575275110046557984329418117944162438710177512423314249832421782036361929961228055429002722132794166094004559868212063732312435780297374324135218483625652287127125318620492095847485593381638977047888559440601961154355791961854462664482658946421698688600491051037378175848346905687790539638650852005151319664032450982975938421181491619830219843687966580944210457388716572281515197958817424632784621661791448203704798044590449712799221518367405432195729365045217833560808942296183910121577858067856966830131579840925832033102576928439163667557248066244747072202692797156030717685049407733056456767371187796482076206830253469764227660285784090497659698048558517988951747359101271399837099741269285390939856174703426466585928540960642951625856215547354175672784674602845856304748893478538337537833238042697549551004336265021649201233714317374261798373453440049378441981301221073534694254517816284358050848859380218346127733590915516274583024450668502334545979233534297704005692923869654764255702736743658575182190402433519931807830256733705776424267806579898886986810414518207228635944595952810968462059574183916439120626530379951344888373513099118752299162827641509673961434898534429179879754639908609772432066797614625460744966943975551483604507831343417369866515787918854695773766698472451990650788259277709663030044263446398905118379248581403425805816363457103171921076550210916714547553151084590350511073517746272204715407218261278662071758511176741032477542129886481603488612205248953856681745469622033062813330726176125227171591284561503505497835522699661540016229742864939793788752808195527107352293913312974543194256885475243867459339061662108247893891605513291976730205892844155091764045601339811504923649375896697060085785255727947287053389866466537400107456364028025984061379028947566976918410463860856880182182707563156344338535156448377071140217706908769268769208152185674909738177848425047482236241579630065769986019226658557938453807667131648248687503479174863321182181212583002504643608799133946900311278404726906591575295984890025710684913672279473869173730240483232395955864062660850917132096749246296504921841387223418000464271914391523209208816129384916744708671684821076389140084480092856374271217145454856600314572764242229075078994524828639390354936706835796815313650667645455464744696010106246659770885821531355464679773111425032972845512996926397626815040312548471575673514011119143041560068249508488362010071217886586580643101075768730059505959814091610677310788980211316365112925089290459136316154637617010414364236703377169639718794059522317575184267681197697845537237499733165938958503703713719817437146921358105922865426853338231823361746178775066857006435240969623868962371841018820975690337746680858406391681431980843511496673910006190475225277193640696288338634472598624179655449527078813110595365892534961447120060904875673501904033609937778169977593613527635103737377370258373876245846562078762419581917954157861925521236134656423191677056511640898528098567312480010548360330968534736194446227249109763374060644585208221502766794894650780005722378166349035673648006985027509363393144802526833515421073656269577264512110070925865924325631847325968644330432436204161847923555681147971503158144048473759811530907087125419117949240757754565705980207831157822032885495030075320754700596734997309604652942332904953068608783277444272818789778193151797619384389476254269459404967111610099655484024012869007579891031016909677742813864156720292027286165136976595643522750924842342505571995785929109599742016232731530639515541591506348717248488519400361906872096379352589728146068986015254113282676160887296868623003876529393968096630552812710664772203559937734109127607576858448156154794495338005421653906372431674263635745247471524512283837417248343477561625748856888136041811248117234296095176259166455727352917291047850911223943774690578776293701813921703683025400124601630962061627970807947208979221837609603631324834657642996264044407464975037798081533906482697882031165433780207368480147094215284616900805315035892136568201818542199105455629236941701017314970200328771759014960299313170692615873122383367980472134773986076032834695448962861472091506420924714056092950321967053375800104721677016675392167289220033004561372790365654979419858599315407612710004351270723612985237852829562924970709546305204459875248853078820260362259822112802642853393235145173176840628160466544446191135575975387703248838368292783904438275984968296944476032511089038444798321460714614474772272776169188051186440125989067065387028976009904351313902116130863717590248045896445378256107401137597943557538971476381856649599197518336810711792441798092358623737341148240499232401707905420885051971287027075173496576193282769060475913561830833775168874347460257190537953577502028478132207639561391511040181085761566399156172244200691128923874846503911511276454216277408973634495650960713317018875529590534030247946791007124377316191844273682088421758920388211243360204967613090672726521155089813248206671919912525056201822949583096399097080940981214976215824549306489636899943920234055260450691551340937600047611619205535536505321829936713220038257548100406438207397287838000321691900665910593714637952181861590507140715952316727829174328246634464698659130432131933714632893799049653585675792747343351936547023508124945953268071361624060876881634188636824523859585351108505116452692947754139048016723055927833767818361512117689970742117339540771014838594667136337913213826123197375310983293823037064833547258991919830005754456530081946088201743557343497867865157706812518742437438271380784319008118930391756583280032872617545742658917955947374428885190961122602687883707397278093776133385306244737558695931051633180000405921831927770710406817970926543402376174584765494595164160906346012248176286731218987540023166032719236254078683055979487795992796948180655819635279944739840993305760844334732757996979278980563008671171717194019774495625912960511875548256665971103289513486341087957016953616928177671512837376472166935919914720901816681191858969787138552204615278705235121778459351681818251961630918820834260872137634031781040684682167339263449730483937884908646397880525120702929515370025686688815171768463650678438487648510026884075520296647452982955861887282523648357329915648736999169519882289704857592569247846182536885796088141289056200075669430255249051243820003893140944227053831948782934834281645070460413479880326229642402153385953185198919774787069679410344630271451690915679590073604066903060264457930048491966342045517716918134317498949001931992052159078985540814566345624362653915038473807654445745378025628686982920878596750642476557483952766137952358043748297607159005533978509299742263151370956804450269955592077971659990630969529976858982203274148488310883449493328371363334129719391734973746067642399681302486345477501314186816734169904471911815563564981973974557162557865371378215516707937396033617184481741019923773759086040752580350323366589345687172463448573633008702781200180587203031979445665312225179364192515335384964024755134915449278470205527907006792292108223065540206926512700738149491645986918556915008653916241735872450056179910665436344717908803158603052906873715375355406864976362632495374988389472915080658862815086071881280179207061088385594006419009739899389183615327455853308887023874186408771195050370551582405007674094094777157844260480341835582010847226948643118758042770583200149203321667383451324050800000580496697936579176674235698159916134354190136508081726009262010839506613320503946040050590340851947355191155702380260590544913370514440610958584928726751161075195846269785447774021795149732907865906378834288478560032282947669781589514276864272437164464338624636637735246693250298023199899927680795264728680015935846721612037046988675316319892361167580355310397362386818803834580909703492658259495973457930745687947089939517167273820260742451100218900941962058803344881827849696211448663771721473159762327860817309825943827220138608998599021931767961932026096325295672730711917366361477472307462115674798121792459944782424090239271229370487071934053255136071724116535141139911105768273463478165625628543184201261054594392786646130512344220963181821099069518729620699714483126516929333660096293866818490935684630766483975122841725389397581553161326584606463897026590132542952045888597454774836001534139031942808685079361423028128016522312547795549307208252595153732568675691449590210707082159070306562474624836670787701875589365614987692630665019319120204801585891565210080802325803387747416413515579295112766119093227624315765218199857069812124421324980440488357745926304735697919587294318610919902209131219258917490196274620280533818287163959274088046986009893758905693815019769871483539162909299336286465204168457729126080721053678840367255325492976450677834858875679662995186983026038044513516376977617593765572603914843688695843456296757863636282727235428162858433220020321528247899058947323579873412103680917593394867470873671130882371449725824752846155884366451762224381918927969993962308025360105009766943439704055212916753665247705551811912136706629662464781075383098401074572814504332409121894037186202868343489349719591407175921772306101919612276446827229185323199835296890516328151300432873722878828314952874366120693154327001305626410057169106691986782756536182893634849469261149542614635847143380096749978751750566394843768455372463252732869747495512634536781651356767064371011142780276665818480910523564840399626997717623969881376447342246933210833244669144292750170446028340508781804322661563770932379467365817384504947050933519619665792882684920362054548741947532416725597442726675669427891608669176264891377448795645618233021088546418747871849632008552244328572886821910865252938722332311993836441123828562575956445484548315186469824817524412647644558163610038836049408245237892858312740144244349686781363794206245584137219863094200386286383679682083739062615065910727760089655739379311740349870018702497691557844337032108235523034318974272588428617194611920163488188495051677517014517244730988440478488365529609225736684617836671262785914299945115713522758377302509731626149700200802552905442882729901783834182310648600847741346051372494263441429892350528745971364305687357882387597810645003702159811085877539273682058388115481952099048849279643823460695936655896590158128035993716934277472976465726613868884307806207708011073058099757013741400619586928566675185802302372843255342666087855601378249384321659234552145060553761115373474229291771785323603061807276943823061943199139199489585982934104165661556189524515671351806595088845249722826280498223161757438630729522226987070268046273809192223677637415418891191137811343308842127508619012860683074505327348237362499354444081910093064732340307253661214599660898579016859153406588184640793240664439194217057450431583751704100858378627661602803179039569371723477588526741526289194892076603946716261136775116503532505719726119313572011200093018586443281580381501732233955383018955945776084488946898881177708646365712564260663902584926335891048024694374532067584061653938272360839043140504765688218350742955976229292954029387411388106282401089709730158865821180334111031657909195524403777679982538993528058366889175114556093855761393985419411836925855844280128931412928646081662966192448933867365229664221287768632171611993419983888999712595297031861264039255896008816105352908228570747915632540758228522076165996678244547554036918957693947467024673525456006023164003139705468938375842608274795026490169531102905719963017176616018763431605520154323660152340626489188796227959621630754627577795865050352541802817569815889391741655669833415167757769371204478717123839164649104838955445332665490193205489831906829692266439729972717075617577873344733591740369121747714283557776004635622655596033887369282637637001516536997294949552466053947952864543618357257267922933314243987425916654946916046660436919125991643001490814347929776803189353803332505578643462794216689499601879426564353026796772887666343260853971943266117025480079027600533074717665354119720653416918221448272729406865763217118480000473733554176007578502939575786599080446968716881106610507279883840595436524514149368864186836972746262944353635053937967306712589139090291920342213685497781145205314348358655390566575136847607183301693509221678527044899136444680259996394365834918259508255316883954498588180510189318266233008183102437978828927894388490288881741985046467488156433918260237287060573619285474248773575351450267005442097193541115915668247403801685312821000125168556664840791289675819116946486724847307243881921719943205402026969675473891718348429532106716463002837066347950905240894065784006929142651168491795610752386342644423013575488280404508838821510240163840194922983070299004137848490054101512863164344501907408351051960502418344879491685253865354989828602361395596773200909280031395630343876945634227213349509148824640359441666110609509582061857544604524583977540521570337064986250445271490778693414397793982452874435756102295099679645366895712079573056682545139483805481217283567965480950962295922598011667595025444314951513326591231382682101479799436155195505638308357529526735906546787030222519074746298271719014372072229706358476459311005434581143657165136427241006010392428563272898731978624035655479344657687466447094342559104996328886565684252815217432490435413021754919559566013376453055293937760432291412512089451574937900397765354753339810275148972641802311932592603705969152592317248566650039516943419531057023117338847125085500536203756208459403840436465999517317848163344393576017357613187376979392134890495402104320381932244660404152909717822424857233278767151317356215198601442195418725376626204195984804402663432348948554750064646597161620556923774458421864300751951991372525011159944940623825967656302273286397306955167619685576959376705078539329829122392245712583611837259905431792040310570967319274897353942493726703685203502169781912980349747255605819034918758125871578419214667544466784901830480425131959241268162497957767883152141981135106705535080593202928451642290644158035614554070507195118554397030485715581482414565505030653172476044924023941888318837028649871430448077315892418101121444637759710349594046560969012864659130746587178719798902991938944861383142425826080014123741778736784018902581503604378125723270434452085835665983638836586651828443983484590425070388518868510717601100358646950396264116376593854950766793241671180341377247578494066656673901621497323353328047153294142589359719707297055495985652959019900134746218853843214562187157422607480425491167340150790792449973590697162651844574940413308166344836668903342792751000078254107676812424858824716570402609353691701865164870387229333508090528310593369769668459154045489118427273161821801266214579499682878229514955387986633144043564847918798945032158989696885351711384229340355843614076927405020995578449365229233926539017191513795158385315871730091814376038402691288120830163178745210889247958285571328781202321777744991109122263664744125401632476582404182952363570436438846135378597020332857939497328082465291432359347375211709487658122574110629693242070175744680313044391570591232718261724558232851166114500905350153209685958975738662602050243260181833641323461829232363800273053128432003780363854269807875121839070682079802432026304393223995389726626767482751727286337843293331597037422229386506738985019523291829686578159921288068873892336706256272345772698879530758735915080459611924164198471351330588236738570988147341563051683365896672793090358105709468204568156037262750827259860444634125439632883302001323452042272729982937164972459037502816652226664595108683069753804717658399239198858906496802520865828334060127859220971493168218822595126060076768654299036141413708505751078775653391848194767884901443511368551352766376254293687398987559883346984099938550873319105085158157906501823580216114947376366797066576023486752303020864773411976803126369210374140514282963226005454462022638312579458806087536700617703552690248897807986253578920837916095966581699069346265037197507826760359423472968449616486585671571236762692279148312328812712872458649266001235195841653331431667137660848128582455261319476926771444429682767146529584966443842639435214107601375936749741238160714473441255921034271128704716736959003899707159247676850542119282065355022835495621879790946024956269555873334741076326715767401193141252715716483952380517118728709698287309453628724489892105976076283980657896041990459069152729289420684279210020975166689048912982985312478922973706371614059218410611266834143086542800993194900428045612057857307248401671447131450571150386953423924823608798422662113210831461984791614623599360090386710710167053486089191250313728346510260605496282947109153776670279308207580871602740318797409223832901322398237591976253324508993275033880903814613444933696992368734814514308799887655180290221307032394742493327501872979200168677332410184872387456526715286946782466074461026654533063405816958296594282525509691115422134832061443628073806220396211173987432232535773905551543641769443830018649767807075274673248051840261520018909187758897910360628469686234889829286943231997442523184980433133735184164556712431980042466218779442342204660602929916087865493014516421729780368412752364669712885764993743634353440494791041783596629885120118504425977407229080794890953134278639325912186327027301391603109619094839511492068519402199316018186529424987678453317575852142258954298363518558892825493589073672354758140036975930722144334523416189148570072958698977797402879410664331259323512030713114114765219515770538772534833656308022337228952577752329863928049989023758690719246615778123624751891096215633898828387414259312899539483675164475969304155994542279098460515334634793062104954442531494911256366024822327254047492416608204798577219814245019964167300384194614533458958125711419177403814389255865530420496351364228555412763517311318001075976899385321763114523066419063193204981126532030213006743543548159729883479347933210096661886573080821167678800752017744089916279606421830210032679741700799901437358638782245344425014582586787832615045966368852276977292271823067644953166557662273262755255412960600510571159942679153840307728580520501854238072446148201023557299266255960987865444319468673156060973153512949291657211928836973770679576305950888161386089730877980373703913723771236257152683980977819585747769964094744556139884426292255622790216803240524903445441005163960551251977118670522618802351774408774552080481501674031637280556913297659474208903595715128539279873627488283558027218880435730051185846871287318121186315325325262590598720505090258747857931061755993440853667968802034246116407707532291999946724587102442243455452809695817940245208167654846858155949672944646076050524042661523453352958489442290047020055006565646387831293481874165042749799504675855459892979730483017192020299212882545373802584910408899332023376380790834541590018058990426073896041624164230824396987162086702893300660430049163223610064465593544586410777377901427024927484112548537671480629868939752050865398329922471393770562965000110393371806937262877696483536147142821007231697445656901790027284249222517005878337236099254412469060699641246916712761700003081377284023937503315150695232896873658568125979038956582991382699996545319695857779636424785226293106051811290456474666916514293615609831009644497059564913451975189979312387608031917179784941106208504042939796070496793905203879147508589034312919130369890519836547127707902485267240374588690232034176836730376851082519688432583405130520388471006200897871689571390648753437027099302105108237655940036475654850746592212181752995965189497755583430756812542323072596762734586949977358117531065783083572718872466333212995187138837767795630789644508742669478771806068709420411949072315987812882537990507643481861939093307663226646385897815814562177962022586578697275106580351058172150067712557699154732337300934201146972367714403754793872066932482540570679948335514811233083441916962486391480703034505319389723767719222814577618609826487681752297898465291880407670444219836684854716248102441268595664870100768898447612800490147578671694031248418326107268913309295470953772665174018629464687088028064425661567101114997105022681844679597839215205322056516130022792764152611057586494719386385793322787688664141365485088803450361394306458786578972929976111097447289871076040270199851768574903049519937704758195140381470156115828400158612589880035848670537666860427414335453105346916464524070224195522000903925664883223252284048461655488345152485743284064471325216193025617273354327523029589462467688807219467855349533450499500488872608789574700491657277408637325600955309147898471788731797284399681446915787037160149431195458594559028327086370350361080011164029217116253200258614126991621729395948206429386226206930618022444680016303035405610125328118045644632657273314659782584420765624623749212213264858079936961771495465447518562930934441999041084502692670238064216485116314061975032919827362208841464604924084914310188710507946794043010633393703256867688568071508805870041719166777576392934793509386785039333475237161646923489947000940877505799443747550849873853163886506778034721675020978591897644654813237873584783965753730265797958505439924227804535364030917476271254102411979793815412655908736766333121759302215336920693306297040729838740054268497324822250164768153149885005447589304258923073708043957230574802776289818885083074430687410095610384023450393098028862211160946588119484041759025669238828392109025261290355826294564950442333808558216474137189848761440867334615337889243743912812144149243463123220404200083427190178810490755355299852181074958223356074512189246803868739441353945099194276478157146092392769440927243065723340435494253265977184810392200508535024698173510339700875470963774106179220535936754699001753106315492450286196575805696179433410632253240148617829754652317835851417710697294854823398817341869399559269812190785627072151156725443310676067291056508748252728739722833113075013783068916937220725281306247720036260519442126796477418419912578822907049129925798926727630290855697277119177767591860763896821360631311478413561488855563740127733160593115730887130358567977284158039837396800536025734759166409663703047922505910204279201406165844438329047251180708742055818199297720556765109267552899797043360654743714793649515974836457865504773746279946356812767788132618942768962662638111556443101027575330266692165557048926778144919295759068749349969196636902656339028739787519091563180232801373621024882170525223061999372800736676111687338989243900178039645683865755074555519432499980739127321444885458893147507176771351957096078645742735480590794840155359272025164309453586768501638860146900959803138001332225905172369711648962548581094870323185957265004114356651561489990620511954951305645934702838111440969995159886172904434034436275008061039523416683749480454795302922606995529331092086431062396524261502393005620308328720939524826393159170589627492386772086697017213803030143554846270134554752870847580401438063840711847649443057046886938702248381997688336896054338617666560671103777763927733625812608556921116936891741023599428398695933471499180327811869497774914555287751167502193284602282660765669825456405265647858415258324801820997768960653227586396606018103366347290264935710638968432021417771856970043160429262896179363178043942628259510207856327330874530793053758928528770950975775723221656337643706090636072247952146245349984691828696355486159462868779304905503630916246566018842138200866715163080476296117850469147739024683537986700057633735626271094176823010851601144120919529568881477400108265220205537083703087782983331811049256789734666871461310442057249207529073357349547965169555382883036880337392880497639438318325676842625661117678146965799308840096454496122466524372346922383200938365750388236425859540340288830497315722673405542586567948924582927919751209472111751557095444954155395602729948678349770384574199488723051840907932891024230800823072281890919951811243274173175122378418631770464154816712554406800356340421976662696962572622706579482407959844428637144122903825978567876101498510414580896119121501472758989400522868544791925456775508104725012322995173419082925480346378728779097657564833787415383400001237656113545703251942416384056727744674729607808557585455801961892897754502738799844583216853206808440939353614027588317473845510228137962132219802646334779344260002305463356819974114831117196160569352253746649793435532858333774726329429117721450245176853646317930173487663163599170477921651772438142816394544540427244699430266675135358236451526946388819355636940105646094918951982264505227316417411249113781876178131354938775986463011345179368127983486281520194391751563181856497065529231627200265033418824556124472491286275859768125085517413845008074403761520186117323662531025929569115865043248924130031548911629346977070539619021217851739526386150749670667154671809712445122086126638804750646241569897307852813359846802067981709309102234918604395367487633800413674087621255568095246416544227633344889966261478090077229100532464676385993762204384272606518007796705539558753472166391850912343896528143519473993719280185811820162276624049100133655499723206835699926178181457375945822390794415140772307970669376374605871562773839800183128266181332674044824410010277543418126269471973308521059760986220773713130306032575710412727121785566883601512702954359765593576802862955629797804750917329354635655571094325959005041864666318149286049377856960025391504379602541166096346861960395428328749551883301911543832794273961074104614676940658209986486753042731200676162106461598557914474968665264715516605913747091073243843767836767770184254280486398073087569221553928710474036989129917353798156158596131377023185377477318517364693833046092147193777379156669342520443952959018598568557399343348406549994536279163782876607793928312389448315648961889033377395810567330573355158393009839091274306232195050940418960577410610058668267694167691268728220134865387789273243936837313580888195972548592820591078460354797898386518460264182368431958565056558680471871490777115133505191139362568022791241357346038954408539707370097439220024574544647022529900232563084197805793990070898343038144637093787523809386649241617824687563235158415486966104766097743032786655973204052920394958756553420924218276698405545259622179872146998181620546168335397659730126287452530441442000551743251205749158318490029187222415992136794952518918546299964207844511380914219622304507587569698122599978334725099838495319813092991882633372357301909120805653076021314260420907725615457949723190119159259980030559942627007198040440261226570285688523564167041233550643265801296661290600592249958153517493377115217331417579913422020908445798104948828685903160393942469550752578939261649829595303308796522041027103909158162776844729146935676967329851977556347655002851507921649795467186977011735795549093445573330746414724766947725808063979838795624918473624548951737789077991972635802865337163674085154327205367196099385337457441525278197944601819493960287130027148617378939824936775986530560480753646055324800043358497954289186579407697285728331688531218516968915839695538147118381458595273613060363382806764537938925499367863777049953291780769138502080988479363064866288409390421935657179776445453623703717505197073841660050156801983089339293576080962215994099186323887423685329331590267170744645285191156602427176477319481110879857186888879162605097564647802686707754778961049520785724273764618455659725106797212216587265989230230029668631836822858045035000697079836257887164946949613242668650072745159274265316250823296078611568245388239951646760368650322723521420948636161437020991047966064520785275192362699322129145251942424702026658212745903724513701464113960775954411954738742163689666124324788823083191047334803992436782468562687302538876884904789545943870141427850349649253550928696455739909452556004614656868158864638601030040423255985128043501767103112631980479821860013448249964176548714616200193213711075939065095161547809722354314242862400442770609508252674557705006250984706529428298848455516719008682077801761832177222045072159209129627038691497736131657144312632406545035775963232723753136639222074642085092449879877865901622457751701663259775360674448674248379373828721351884496666926514574482323562314882924843385452869976255283960550758907195271785025329001881810299475548745074013872089024389377694440998921679358636439680806501911767404615600270639101258455949193003863517313766540893313857661185456305007110838215074133240712718109588221841690636721195883410741949762847094422786508143573293231295796859519892409410301550801815464030668659883621973153548080358889681951205027871813196070310485232255686611285108043803856879390462072686764693278849973867923050705092746533849521755765846354221611946621270444261835768646210553087514757447628844557526738981939728105802853000493767902180214567538920299096602635221387807585420029241666151662267418865148517286292320535527749706960132559733088310473948966109070604395017832574416697659022686069614414499825042362832087241600686100601355322043788333648344363876489274347419187959680907361455535965149464360390118334527615823471153144866386851188969222375139659237457892894285732411956030393594477539688718916788956692672347230769987475207344484076237454802512904649813949335570916654820102913372690430092989136771361257930294099002694432227051121978309903990486500051567328493732986045391462406753444866230321148333561205283449261941624443332651753970835296777288534200307730073501159873383644620141903412502390245770166553334344687038652672627449960144329623819126773310901838010769955220107874941556205736951807215370007487660089131970869174374660537245292325601118404566087152140084476502355933977898905133165479391244376512598665863475254634024177014899741003508576888909747720896902045219089389521167449165722962280080854854430057181059675037338910665736128991487400395440307311974029343801439058950653328679874724757892423571924265678902153450557592950766411799130149081358769456605428657485419994888011740746597274025803073276697819702214040147250038706038988925464595498219987353653054376092369374953642258505840933774103739841136956835264762445384748551625987870613936622644305989942651121837692284730792049188157088884116551025055228522808026455441122216236975277821068135289412803555442543442029579786085401087754844114978150236702712686892189172372298124089297254707120849630173772204646930390637026137228044688568006309354451963039144546700984678504372693292964943414245732102433395362030312226633643198953111702540513580155747500458813774687478139932624883121859576761029955096830727556399346539558301272027660848721808167442085942457728434335751121353745718606135385931456348935628757849042152104231659391558292841889296851044858164445861483903031336565439141816696806176911833178997204107674718369791713639234565712633264601120290507571071482749874496325366634729797836355859125333335120603748901210741417379730049462046601485948305951336438537727456830555518338262363046831055802860104414359162371393425259070555627340933154897003613726201069253259793081727642965837519529924932825756499024132812749209150507664939733237921581361542507168704641862171946406074632698009542239138596296576276757567712362302473778744772906266236108697659486873977391078993311273491803685582203221899472750896072710159202102626232355543867581402962598385313481519929050768905210555180777532297689263051074066718286755944101900132649952346064001692993242942166052312714851725653027319050680497327772788161391230038921840858750577244845433927559382635259363925407293785068476727731694025987563537941091417270210788581326400738914479332719684664670513429248838033455295759903437221870994709737219255235301677499244355967138742231288765663698836983809090645367217370291171623896112215114581541342531046678598763856565915994544153517361188677496486534205408319526352597744801153562649716927669212179682967057278714378008995258623178146743791398762472516827632024295505129761275835827735839066839311407945821250430864263340646492646061342911583864837056052709209387486666328898647887768089527791435706678887090502683103482040267639067118855805078513918903285667763859772055898162480595529141081160417002530978483374378992071899528865556836383723342629360004105307389204982687117158527616097326004822512155912747258592183350428719082215523052170061819145933725644480183351894884473939815890257392350733504921519200801904911008000262574406458849250210917496064321123278976539493925654676173178711517682436120776874362548552938945622271910337621203316666228110432096617377990322088090363455506218587254459548970721795922653293656783444264556976369631499412783047253132673697556511074701730873893857480477456023736152672322929841479266769546313015556079818230359774530084487091139758478303259161189592272617524378231110402941755420784983509193851338734560459626923756579404239135721268126801605868655361096179806491265902785838981597333973443836004204509891541661412865655045257761437857764732398589391902855744619561972100211522752089618468271819002371486719913907225582915880522345708118466354704448320192570204657813795135788045366176081551298373844510555847397445385458108587684714014794195384246820438216907777904044211396123861740759794222306586328476670538583494776185029034915138281097089285802407188117896289518134137699468725755128451866217238418521458299320023419806563283397447318542275997665802457141160174316142078648648847588476520924750519128111458783206635901725836957762712546465780396123136899010387533697259940066703039914165466832347323261252264114820492559424667401109152861726131907583864606409075515825716696164662674186405613899503203113305901335562710096989751092556159697894875209292211816586072975452728911052756967295998882482590988753958292666011177958675473146516195701050263696626810602466735060816714248300156467744963148942240770683269901785536433278802824999779387883108770308520399938600603166410686228257341910599542858452955910804668035235878998178281609400290356725567355713138242100824296224192858044820373792541482483556735972520298717558918479351957315497378235513623871167386529123293851079093787307090188952997729195796218997972818478501225194319348012964901262549484435288554564644762010593748996841630803135415687558838090872089822031297960830393241086322491970381430249539338878452694071515631787561359420239304708735175516819711867695760341931645684949163858287291247172365284516717996508728096388557598172408232097531915884319340896571348180531236052301968164314176848933152022044990099259185169664815399055818825782237151811264768207492550770678252689664121051693364805257289059659551676041100827682055395464693277467162009094448658316160518131306553110149221279004658179612588370079595568277428464215457060160913729472532168137593944937556330839410731066231837289981932435281896096305259914060606045396144006818354874900846894172952785062962214067174299746504656590681724299841883265330735971881915139214433437170424143651230507854558814260478524318022752183276079034124058734861139441451714240310648417862402432985404847669233754112511780385071589982316585758627266719605643830704435771325873163346097820182340561399217639138701019232388135987394587452749258961448380300010028538608885670763852427555370617197984479130929516024506539458825802173727024262482943541364946668513840723521138527211475221085230533759867364484187282419887415566474712601478484778815861579153765007387325348932310107562828789370039909494396650660837097727430194509363237332238417220518199762338502070607877264531516844665243761823242610551290653664030884265393239852786693940728102022623676180604658228377059430915192242372197596179429358217170550923401548163373881381939898519040908980818901631952179709278900191696173966307252987058101555967593688492131145377052572101721019724108721701109698310109801891958647749544255703559493636932879066566295552683019902382290207435491373126075502404126653010383981301622216531381346107735586606971419359579307563210254026600748433824263285188429423941868487153540178123971711454268636734780373480315924140181484974048945245632845670060163764954749263592051385747289479659861488333451576940958899127949966774738424659876734090280329851980513186678966784897469486783459795981845267665275273588530611036469665371495177512112838333299202119263204081835246570524568664277836636260936495305566774938239315944533038052556105867760729048801233627781178147887955962718083846976260719390374628975095467521924789376922827490497566380098468482684614795979114823355575848096394180072379534423576485896265916179763552789503090744488691361743509689364022526024134497464247361862637681082098505462016359897564661863660677715204754506017482012546705207611013727172579770843601767099709584777945559846735442890726910700153121372389027609586638603888708902442485640105061570165765388371467132770316855855003478821946501942542535020032953914156028066930615298309038918214365384993029852725974154093682654433602695314117913513789974861385533593357647958565118655213060073145042692505859833886482558212762183479896886280508333336675166405069948900924898860641747986404271503749521370007625234094661483060620568947905653081232908463015471284463384647909743593284711247729588984838803854502328269232048781277519455853171130126395147843132739025386356499992523314071565146416348762544709922727474219363384341781139770249135596425315839198389551240131687384741938153955163969292610990954361172677299723425195408813356699074270670500202274623892595360594758919463423142900557167469353555854616449451589009439235650920098886011219203299190111279854916481820429745341223357805348233976258306864797375398915357876498735810841055541244510574991868296648532766586025193177298973797266335188061807266431207109066210830732423704720227035076263011469929037759074180783303323602107909005962076157378313482337587796083296798364718287483533909988653641602801248539595904075965052992897139898879869140615853732116606612018460018711974178450560095659206908214227982932354695685481780118807063211895048190055068438315681244670236091461460720032090479211181786006570580100942526255852856654055907960114493559372033289590452958513090468928796897014777757849594161703074649440459396037363711183582055608903553553851172306525721703430750362066878104391957016341088959217341998063724483852008099832607374842703744828720189112853618062134385450940959268239011885614141872072633127700206506454888459806056794172606977618931434643524282032856998681469879400953947345931716641221102863699628752418423740050591020019184309398822926804227568655381819667245036701253752457778884568448472178665481717132285537887243366765976043929253503513918947750705177583811137653647186382532699697505151087691938648061058982784255652867285230948914067293444479220548837856909069018865748619598827196097806997639751917876829866737341825662338134864241811287012574557872634212846247565290880326708096530983776144673993984802523385529676720020916589558365444043043759381994359465615327031530643153573386309499257008611245251520617030014727809237794182382686857478131944711007738750953059602524856173017458072490428704322080448840780517562868068327470520497484966944940311696399010414092854524023248307882792925868594013808883591641777518234282662318440174810454851269642534101413962521562122685496054063622508469424285820137202470714454098594783012775746645386545581152255827250661953464279802326723982778791458058639375836594812502924792026383682994291084787006483433640105945198763323550060513945038539951148250798345731996972752078289268778372257692992487655939808814631541193063068899512149398244355025365788598353734365930634832975943159912195297962331253659609997125912135891600060940296284509733317278978247958133655214855193508123167910850684470615598945195722924617205720856857354278415122432107372647737455246575803728259079161415612344961370152586517482051838925323412660203433605715072341409033488503201387478679602335230534190449950039506083225229045826017456227261165725660820183009780757028192044312767991699217637246817109465223576009361231993098571473931047122792794519098842692812805260652300973099356460907078909782716619910749257461139949033046408821628582750432044484205066564927425438210133771802378946948775612526849205989941161723590336293411734775203426549614465853005988976356374051584378791397045698812707612631050104228924706536850211901026183874342448800697142254476666872929680713103262140340247351095103783939546486610517671701987364150026528015341918441182627182271726025362391292602025813799668855751616178907324852605406857735014573184638015024752569280803590923448604238691287487797962426450426829566655068184275554821695323525153517914736956774511211399216771486269518314960419480747685992261748521905463698811121677199963032054996299448651789429225977185881512301181350584773730340340800893586349132742576681314896183121350420902086234788467159319653520542090110557145022063685065617539504657904131954013648141848449413193345142628369401924101876623578105494464438875190809429001114717606139234138072439061709876271063365828121885085858115234807560536614449778742780493210096957177079731120928284637190429005384009441582336543522129541379243938089029096840397077055663899852555715022427656246219181877596470335282024012969404173621896560597547442509058644481535120658439398339087599445767783074908070227544680634511737810500633478654174959894013712954651819808429128335858146991387638186699167258932379533921067999607401933955234219930663958577994634675789910527452179426903624049340977422463927926517248839998838606822266061829284385387692591157278731402985425935839742717841611979423046917404293971768014236088271072832152727698935555519400402115545849139739181804476227008569374742910136600433314535076913509278515099357248640309921711248143314722691338438153258823392633480809510756608388197143155001381605316602928947290508521583433642239606586584618426454258588454019294409268067626429189123809009872661921574396768346284919298459258463473465222365295911625418239565738479233506726977036349749978804911342802846328031142332563551014272610303969820712814779664797501395579726705508068024871117989320280064236504725106192998543049897687114999459261004238098442208845263286693987386220778608766338094084418437557924328791806277799902272006957419185863441784941812597436781784864275427680696486919626505433147070330702159210028713849360161698871644420932375288335022246583479601168579764169401956097370294898253565784070394044002925155633212431537308909874363261067865359995990578890585710329998370121650271065796157737141145509641655559968634255574117138984768486762360937114780097844924107283559427604099904127764287919331802937361157352459008238018184345084202142597686396856196589140504494801364536534977679727865136422132519796041667649207832915531109617939950675223247704148747738005087730682921284490094820974067392341357917250525970175371187928886183663128434412075026677782625007407487675553251204162394268178702751618485581612978503920938642633262933598621651785723881257005862258014050332225611157844886593800549872774735614298688505059541477963563484770003598717066413657416275610835865150168175507122480205719188673606528353549857711688385742309081444852730209251668514351073637407664458300024016247291897487137411692264698043059498010040230294832383851944342207739563937229642235905121299722123855401012308732198455372017867392317549197762452907483407028969134099763174216866574361826355492505714400896229953019596252905714167940121258178344643693185964443404321446345947887946371844860191494683779400917120220129217085918306160522969067949665535435827217572555869472431597001941751955426864118787571272367421778208335683534862311106605965232515573598766390947842734591549311795804944361789660809378662249184768987756670686371770065326208952043345097709148681862894318421971025521979142917315354761298672649741724802480634207867502535332799368937739395351145295116116213583660391818230863132806826461956271982691077481503916681383083167759768076339646398571302611170570802300876865520594522258472145651806535927825675537398585331295816622980375252933746197976508203699853547310364231238666227030641186347534452926072262218126607396488611479643583161451876660197447714440405220935459984160176345681037427846948053262064660495340857709316792557947806159026035802237636216822443553104816915576541476489794762149171881882140713107830886735061624437899485212694432574833136514929187056274991999426456787303682561764992301867840348532448046082002834570199122663783187409893072028911032027587150633381847471424388111195453184721672149837996892977972354819926805107302816302778759368107480007547892157312071273930652867248654153087280178534140108563225289750820488209833804093244508596270521901702712502399989745517338933713247004638815113411894634278014820507705350451148946821265586809933490583434316158275479768073666626216393038304134743520697088948647015246787301000074137229879082395022885645557103854238361416685065000942036189879204594601454983212337743207435254846825831365952309955073218091481074490559987754983402902287970345224424626186779954057818701048802839888192507514177937453564366966014659782734331900431035750197255766574941976913333965549954870209618839730639898165100941005718479518673989191644469424113156572805171208142615258270131847027857354571451175579283191964851659776491587022735433864469245902918023338315436004961103459229798077102543467593086624622227245971296850017469323971358295221345108534832371640626698861316917744490721837350928483264262179907167880981326151417271372056344589153792392516992490246193195161005811972619505405506473251688054062239213156907629548498129854861585601655068537426091974112710470162345585314417983396273681263331814664412848081854208870623545096119708225285617333329653685400655655842282662717325660935185607571542876658377795262308041831611226749434698114384173559211737517084363289816257343488652414234951610502480488617156112719235830941328445678038829227756705587709015156759928716132769875560715615893529826422940002386305747438633870791854373431835366692881316755684919251831760024779943029596290938050244188490458458706521689452624572031120700228653863452593095639892552948611182797639276267416040009849015365814290175996939032216390218926506675472807369402352772239766519232566157265410475098343609940571459576919602075158069685531268109981350258274335029284499336323911641871799818801255522595860455819168938908468467918291461018917665589944320990330090837179188669272224119212857634594467312243647565781198851400443534920310901299144208815473671482911114064017396202554242237210248666070652108711252213081515799077365281823621296085454823397153653845039653877929093228025285420368056538464844498412864531343007416060764587472443989778897934754187939797003730783396455267722079408947176094388382319256804086069241731184875952726274290625085115878840837141412389607429129042480384383479075075621238321672326742392563051859192414403750540305155074950785835837443624320258449194518575882336529810737042686381061701395585037101608652495379777106143015473652283611189880498524628577776726381448714756964709552031825376318046999231766744951038420046937101225977187215986307150179240534908464220879315160064101513750510616859250322192089288164012768291525756561591123570137745734679168760478929777024279169306222390628257102897017471975683353173873816310569175784380626221677565338535997018646212841275774089750498147334220257130334915621821220857994937561970861347905363437192300396473198517136420504588966137779103606960387042224386085334193557747354370514036742928158804578893920678054533263951681231080027121455879068795531001619519360059199246520015299032654301278710240831863026605171080293274289573984653210701098693987576817312824241552556704000456438094667090973032882996211911556389215255109414350676020865045828375929496629279020222073094852522058438669685192663142347065159723082802001237410816166731565151534958485529280940530989147461021810509297174115218718325483834749884524811886914173191148867752590187032685184609772136511504098974363031857798937745928592648062923790933870304697193605949503263008681396201025632034367661411042892480502853115471851027571328387915465436872957857170566287934736734543463777395933152741864348268011907129289128452583467795244585983885240161759294393530267680131481137111977698328159534661987456856690034580982426538339401347437478844128024161407549095920151633472687539956264474156547403870563787684161992924541651125401953035585419700253918410545239359157592331795048613804233471108853142158995485075602621846010942100304912061945426917448631496680088863143061643151351175673951054754751957018854690355355796844580884160629774557833010730371631477356338746035069118788967261644347506971482683260311153297794728634684371249424367694060643268723636333161224991017951078083740592092992540132420901666076913440766027931194773820470004294765070333103422542031789158987073501193796299613475515308063772656864481805938995619320112751091108471250236268572723260873072065489378927327677583904441075601371246763994180480546868340670230860410602404746494592448177567986588351956403977696491611672969886477209137074819234131276433584298173822783082561542554289451945818691770799251156059100038588808252089693389813813238588429743919845911488331397536070641343020780905797701684695950756574095401317353325857634013095766715602748272969303324544751607369048926876786177789913242966417283689433706096678577835223635737115850216393111825292071630519458342221189516017957993904815570835626356865362645095471547816476238547594193023592063924339056610999976515611794264463130561527048351135262293172917409920881110032327111067050845928409717118681902366514618884632822074865731688692616919537635206619522019204465914246368885800345907574522651219119403060594819760357062221582239305544964344716301236129025475132854700254049342142183131365619810767516126031564336586489654962977669446451729337297781271508694004574901676246880860319077002861125399173035627305098657478534453109293710576690430200640060763070605367049517446071769499184687249154004028007338482919537459657302925961657443934898368325435651619534444236156151272232575244782399601612436884911778456727220289194698551982626276198047888908723682538868406286368445399758273481284405052191629815555987929333061207394888726357174303804303125764502325894335876674586172824087934623997353207411529722120176542825284946319509518446361625926052566222799604375042215181684831350199253257341442941671515609186597230875081030583539347003056138907913272233488472914208599185880549392932980624822024161912320787145335008246898452103859401970114536297015145952348828716372520856009399324378354371943950362380444077931051117182202410443891169815914235595196345781088285172004603618811210806094167353124444717704033702410850774724736904711705605414862905877672426722694809630797475916179466184844995313335157800412113887541387805259897227551289606945000794254604431082398781842991907251537707285263710738764492791854228222934463943134811905709305839060650914622012624347847174297340541941558609478971798363948595328734627983291094108962608976174290946948251598660530347574626929313567234984660987153678895505147891690581000892052506794843032251034403304110158738439521726102617679073883135744177348635150439473190057022089144484452743592435347241793817473683995805765719373528428806400395203354386093545434505468786908100503343128854155582862419836666056829641058192795130884897042024955767252555590970314189031263318112825745485078715636689312411022197610283653267766320610994749531163353235728390357753719838409905159404471840133495768648095026070118581189363293136006196777628284645038391660173003414507386627145888449993072649804207856674707153546582328193418886248245125349485732845613808227609400626587639936342760175729346298049348196250948455870505844946432805724462237711268081956568823915569728593037828155352475177404307891967873561014972804056385965529096192492118192507569438863429924617698989685720895228162576857553107280820923230351539273320861268648076203717224457671441268740772038790532648462744905274450602672259972169492732729410227659980592892025735465852999813712565285313073816405155210466611540587069422385838590256418821079550897024864089994949347626287224341619763998582358687552674524383756623703842677441538265942414298382416876524176733699549570868157816491250240136094239543972873639028183013425490869784585699318246120198716658999228784803176934622259793847025560901248928052509060077176793078298523716979053881659951207184394801844156734924451293776762837987616105722488069878755887734177220675542141114966951286697261227038738892244217491688951039886289822806606254313748326571810827577413315679836686011533779737943085801118789619513880514874854246621151483411243276399604653120552117972384254145783222762182917473173382175187492607138666723172226957162786163053139616345119465741068111939060974857623836701735603022466127437268411214978081567604037265301781056553187976231699571028097325220487529467157708440608619806398618006440656753619590017053126080784797544379972636404426363696267152823086302158302347407783399589447192475151333678625275665192774398345668705243473907464440386692430540499482867761125805948631812784956335524558982341766708504766018888262159578738495652876469812361159416460935778472369701009384909950486637246017823571220058301251536045050491924549657551366569592041519608198251618322707969266406439598596509860062341952577097367596802000731712506429717440036247538505295687842343136809444962300211962009710475001776552778602903083551454136504282583713956419363149619762002361026893090472939195985685499781089891841146093490760448468096040007324126624045676079248020035991579877476259711320464830746322670553339492053125757131155471262236363734039636277111182778842591238934998018977862387688628265440411710393330808624706290188520704881906726106003762656626300524784954129468809827549842592678609488291262960015970233704534814530474220254557883057785569880293883583863505829778387251132970903432755600612133002456147597591950425298014417756697905390503312033743161807523955489079782067056137324613054678502733844178705530669208159035340314032413986923918500512093734292007654209662645026175688319703857892402728297659375103327674596618902775935458309446741529648826291333842254861657224804877455510747382842713385736179223755261881430959313720689515967765302906852920685524693493360671000845467532828500634542801085866986895508545266073078582267441969132775230611868672281015992086638901413916440064048726369323377953043795831178168519484775084484286604248113922082967566066061751956575539051159540329205771004148867053888782331305349261766439627528329551305016841515375360089266886720723176279875426461126084362686877290812999243141789616447132247498810796292330399759368732325362057040654923214968379218531373816726912496824778523328727106731997405821807735454818145286886212182721022631532468140852808775206188550609865174408347728241556209404786194871512372708085574132071262792850993517838785809429603840219915874671133032481608574762773136951952406587588001806434185733400876903011020220475226761386555517980630182707352317342663931723979429367814676100797719797232061580600623402786558518113161677079520501328261114760932293940059174454613407199750258066596961987328786723158676307020621500021250191815091082950408129996575018007000205313561059856534221980452209501124015368120689974138104447579621039225546176550252823399573082891529362112440173691159225315775112802267087661997534102508028423416847001846956593700484477824179427600470453116164078008125143098504712530206809594310224180297030811475608772205367103333079878287502656539938404594931960457872578868494252569394546861301113896434078636144269757003849158711961615642488167408876277997279979835544919250971417824306591392230980373060596673914809115226947036679315130171229106688210949336457157627844762350224649419651700451449982883069489668825979027597255095047790555032815240594347337139195681461712294388976350086399081900990974035684181108972810777039502621451799082760706931817296199914008295121124608779499903020351830004403342346146271773140020064479485731290050198999356253659070578835696057907305599620579785950049795587808458557963831250666299320348179545187968810916796204784166983330085878254268323128727795984041787115139279905560469611788992676275716804791418056287894874027289616675654186243925984445512584732607119605390612955113506432002702013306053018846860936789093479056360156012708307882594851542321239235484926311639966799103363067795533572646271545166693509968220294592669632265456162593172861139849229691949480228252706633299829487651296257630107287606626253856975589843857168928663609883167380752470905053695012977819809381628589120399245021736823378556844807032865451666963991524682744991250673129768013636950346010876643666496811499141772837071594353494868286139553728981752694865223168807190607690163008131108800635188858498243202139683193744103938960905609590405450290314742754306008448494427698491034279503092666132555257755080254076366611658247298478796593333577234372366470601717471842070612469130512973942886317916421764806839311091000232572033671875144322003638033413105960392606761854735978342893472503485946362917481780179523326461686337766961074241962868535353812176362536648129311881005829954231057859317116238604530514553187542376746348019602157237680071879599298287252959397608316371020135725477449493528856900061270487019138270023737157173876962859870000751254611852743182282452848790636845960301514144390871983998721657956457644662689260368104595387773100633193538119544223367168456707967231433893900198223393872033803595632905240338208905712991792529718863892100457544397499612434200694302186336515591956312631380394534323506595936306035664086015729234860354546836734030497406716388535419458063722841977476957847315027871802813871522666354683305828013696662248535703483376724341807588794576884834080662287098572277334535456424588409354328778521373764400770306245342534232526496770228746554588084737032455296068098475002628926888109795177696071605030923065711509459036120884476198441059346239936013859731527747222157468623447026593046869698457770164859254526968300782703228244554526681824191958904182334853889414028711602416428713286890846448196717032272307504176952349004349694787631623882369813192378174739543983239056034098357847832768809139699713864512422091302740202430282147169190994891232316497878953214270465747382359425342023507707035930082345478460676132856550533046263134406724081003808239479998023533348492692993240783901916969354436845540263852510576391198572939170482982016961142118740850551829133227974695080304348770023699408415231078417450095268170203221450198757579193881106139823884741451950756014385411194602075745660734249081853503470677385547568573352847408982644096260579830927339504764440293033930689144743373848889096015492392762259444392013895806353532725298962278360586627137338239362339308758876696051697368832089608312376406046632832883378384157103525178622919628046849172940745112421815249111465308298086396288518912832292622146297257444243299619973878685039034091480769509446889169890203337389140892964263386778913268743156732029090627143549354936279656779543372677784128744469446186903101700805671157118737712948685504178026807487199587858063721990713930726929588220001918131026226641590277276436004239338512244791007946845591835973746207563462892154722232955678523451159007046933498772135151890914938043410368468917879724403640403117472408091556858187209409022818670736028231006297563649639628261400769019674472275730723544292434373278212907109473396423999579763264703297356843231682983678170591750910807851948345206663609145553688520761516047008137098897540251562441424895315338204247224824093661180674952150879673206885006722483004166666396204542870448327684225329860723855382317581726526775045267030543441902664135366314155048421135587651054626141736196100812753125172798903976274061693555545472954870033551431173169598255659592190635575913763577559737682007703453283352918435420633856029355749958217864509599677809687313562793649699633678503922243464102458399172361733866095283125905191080529927461582866249634414165597539145646494317717997425910993855248553416188316068762641158913817188975578667478478367427055562515261331002559394559613538702873201976480143807769235231934910540766469480306159791382205876293854850884549220679742130551993262890858816737694728341668285416229617491329424668939641854838318109240483024809164594938786312816455609848855325357607795144862832663254786013946068331975339656189263229787477837050856818298109969186383361077532678468843949545945139303413210936256454892749983076268414703353456521819000355271435780313340988261359592456989064782294318226892123945199827333447010134063794415819853812141225303301955343086332498118252964139137860983687876560032614695815323078704203762032625106661005430755087172617779267325821699338240261598978273422751393021423409911131923557747433749142497863547736447327336791374034951482824077997804313117510209797930456212315779748560906123047977626162057090673163356611293856217023151156046735351591372272106388666650123342881968104038941410634173438479177863206648546104926368294541227053414415298920926870779962179457776185041048078955996557603690130148771499939742258600814611135677378034705605182791613038185650145403984838777689041548478626775952615103194022253727180205224764330291034726914313930262953433599577870711253748148275068975997029830497814945819843088954363504577213739856946273970948734287626966926677082629895478937460627224946083410838703429019292808511599027373844687984990262007183195133879082287766494260141470648748743679946715707615864433455844099394599562935352572769626955317622551524260686487220539358664098025532005839158748049956411421678709664738545232555349129855307917695158385921145400197806886004005648723913885145312137431642551094484902332460663944814983826213373965358398840258896060234482180177504138806174899310341931601592842228165992215838495676201350130059949454893261539396393063478161665609292412960028685575465843999804913907343914480062134469980442959280724774722611052107590382490914170806854806676166811876006415371511343360973890819637430104886373791175791101101953943142519305587752452135115822747130039635524461877734785481096686439662397012640280360397638736447780521524654074789876978707887399109873290082512715131749881491825489286561368013643925672191525344063098457864330908293032839565455897686918598116421054461991649425332447291233755731257662169319123042321087883731526869178365201007865268881356124166211482530629493168885625944785900338651107244674656265927330786752500901172902295250978697862723770204882623493051592873840478354761110293226263030934187524599087509513656818918270167734840322234198712476631152952310853879343469502936764271976790921311084530866974668300172239433489556325506971236127249460225796449049912248548511808873907586203807370568166161965830962546740698067508931939983165881963410665517999298269974150746689685120207126714231800522904258965515293855879488429746382829906691702489930162171096109870101315005114955770980802737941917110557585984524438773599060125212102336068505458435700676956856126967963961372709208825399279718236555847695659473659342288161188080441287005059259036847277489972561974312816925574773351446883719062953984015378166691774031097431526211947597373365286635205655385649555664995918973260278391362493477986297764818680678575075538835537461199691012889754380293641701567005436037521648299652629923438767464580150689135786033844823994407679691994040025916462956287091912274280879052486072211058537776025098115920760976148282176384487993091532148494454326088150323775776935403203761875003751215777933828147134967164542569158296634008838156371269078660591416520886689241440610862075471116125620488661219161412938843076253308941375637549990012260912497422514694558995050860229173872897099575356377083659626499476997247213684447349762546824485690504219937373593371121891837903740948109961374230782658895601947301353056617935253192154721528715017713762665483882923472572326197763495036470107878474202649202966785300194116720902397164276447825887981559705953354089101139539634382155813097389930102873268091862364379449702412565602431975828681126489423855414011575944339207876731000712597356292582096604043676891802768510104460814807169986845119046048921255172623384731587708264471696074102785161586389025778740503412966852665290252508193693037685394813728773926734189187430707698160936018461439291073146741788793919605902950413548319979212020201506669944966025068218998022087640280009602111015475642401018938750472335849286620342549968218704666161237854039218718651729828343932397395417223630500045522004177283894112019770012985877065531554456645956548670684879421590605831904445537008983329981009408112323040210062676543477119137070958902475240232415889629398855818394826219788590961432070309828643771729664578523224275640411146271198679866850311054289872550607112216133993164925364722029244431730598472870955701041624916299137217387113244562547116252826049434669959252138009655376165505441081582430014797066522191855923977153301213509954878006399850308563942068434411865777810596786331109012305794685359487460348828424431244156261524688854229555711672140660093267812982227362963795282143434237172853421010563219514068835502395675784233766432103272077979701245312660096629708540304579475668719089077256087216013722913674813142384820851333303526379361560776162221494156888334651510796614465869650204371253950383951634769498287647356803950402172586175909909809777317020895814660146664348559070611715532915096545005249809783407109345978500320631451640867709745677747708256767256404108006513355441259498009688798463422467031544462979191261777115686455741171973190637800274463184697582862150001185017545387577075349682016447112049784895658822561881656645783376771507903132051580513947611327180983442894668864862265524436824578749750616240190913022136811384499402618762438526028799540460319510272473824459850014818950407929620126699186802073962340281914333433146239605869959777689854535933565494847290707802711527129568457294001229427789723968560331239103598381945207931815722981596006935777105741623985551627454271223640476266719836177808842955482307751595602743404771071926558687798271505626113509912148388755864042144666459429378261491008893374212834242553176822055291534684470388317703332338966846824281491497010604229017910670910845774236850195972795458534283769722613653082964414278113011032513571069108673737194154336735547676016560819704376595405594868956882574503103917131756789647596449345069834315997293493629679319770556725368504598172234450409959123175812066201312632617850983510508044554230920724883962058105887063519144402682873862208293109217769038296697044843801458029258665092127273526004285173698748337200275037550425501915325851286226854872755985328175504890989400384150893725987173823673660453892721075713860632967423352968576652172199755288057452643398262817901629302565008596361051697537118105566956635696450940847707531088948690289018334608252113050185141316084048128932811686124647774025098596481238435442424588296959837567787349543398025828146310858437218660168176187999836071258106503718670606603691741314854362087243632077834217775113931220961281167592598747255872441764603836525153631994401461133863850558645522670559803469509010129500311744014598280822708420601906574982533182263682090370153901873393095416998888807935928520537432346427836252553761625342495720270245890480295765654353737620137598552274715362644165107132014102435505140209829430211724540518730976340169566152697214267510999840780926518669364975293692917381438864146603731971439258290430837290817232471412763018528174786684942645058801095326928153289347725343881447480890336990601910070954908037531910746136192864925512622154378196205224370020587196661948877148145677221525196848794113039639095981209807250827416541275773561350582273556237884571153403152654207673897729973387294386939796698657514987571760434194373175342104591478109957751266217700092161017031737997266525745775578662947864063587017543198770064030638477814798852286686279575054730834520086446364170987810260655276054471237624896974748902934357168162284152688695021772112528543418805750383600493973784730329833024453527702489972169170236251867626317453324472600245846641254046461683980168258994442011362079466323464490040445696317572563447386232099514121569467598086555209082776179517991256131920581418073485094599167386216838000519711293865266177036292231567805373516924236402063620717930185192690445422512984866430448861647502140504921198067541076984735567174052184763766719583532425837336788872136533479242070987904808935374609789484487319916121472121530941981841659357975448631729313895448583382486858440080133145844091458749921734249749098934363899778050132891824062645396114041994679546942141263492307415683064721488598208698211819629180058585270062115704923334717616067414178269916674696628792854574288591142401712277216601904744862803673652906624851128655825694277385982420358954226608791966585761438947148491804874630889681807849159502530178573748259725513711551732472656826333117519424362466811199809574422850062033373509716142283741214387484988460573971544482472251067145484000902499231073974877089805049425973379359645721245515447105038849730181710285473064288048522788250866721445925821361425603009931123750683455320573189854559557018707377894018431628453669973139036583189196213271211176233735827895400747529396661947660782613976942578462836460979920660832072648400826287133837148084306963506351403166093036491406457152992663490804043425977942117847047402236639403741403660254665394005021454688410254766839530531606212662578905632648045250651623551309159667770469379766046853459282119589922709141675280082361879517468891925428264366273703330750160307943094830586076634336891109896154745044092103233995256823681526104706269864404849482427422103028678322582300143787402627912797417997157661539821898704250076804212112231050855929656749419967257661864099002959878435298201062620716228646817445302836771146243483104840635097995909614642884172855368908571891384027209547194785454116809505250036191529565646970415327989325440407504922362732938765445491640029103463704757641806899355507907483626380601741723657582513322356870481485455459872326341169765104179305255424141664882534893481507207202353904925778672645936271066786459472283936124593969833568633284613780033003942218459921954229899379266053688856541900244132484105533992458222577027296181616556505745455305972406915317120784576372147844868699229127679942928874260424858432468008653479665294630646631902059970930467012361286686149040484114018353613559396082948260841740758635805024490897891893132852599865232499014774861797917561438810084305128569204556804283231323554693009243116918022534826972610046526295731938823544485568491635688118556981664950719593020774602913784911033135895924924723466536430959563860096978646486424250022996667847990643564890378249984096346665006562579238237186189939669358286239132263503148089336196901996289044395677270873054020260710040401596742763451185421673883914435981191723091634107921288237444672913666324417510074309883486557962400049415354987326613284652650383486958690055746835289578129752949960910805934341841814647395040304821788352930881937269221556104194175183710331564787741327187306167001352106818852276886615352196115417807199892997580723026791513765971989569383806417826660016725820171303738233618225162927704420342640434889891904434258552646579539393795547252525673253492444049258657715095910030172408068131435208850255716976217516990462416525327652942187295032831017110338055222246519017902397038441077160351365603184020664424825615097271295508984422118176037974832121052592188068217932899223810109309603325024651995063287207235634518158681170545844018589615668036602827568657746883558296293959243278435329348326144922816601873012900097365317221467470065495543191147919894549235028765848095847031575250407674976890519033325327114177350724232610125362600526593559666354722623766443215297393581315450651330217171705327535322098404116937889895556126641786024604855220663428518726416365664507799766151381219101056998902496800756530515470180321819142641955253347721588913365102243356597074421820513089717511938449947608146456970929501054142649333056990237475542178656230884036535698962968314215701599134260990128130459538856172308181287807909602424381589657709477012608496314152466461436314607552401057724970583026330278852678599763198391805104752919304457538327358801177441276288501918671740336848795065708473937364470918188273254095764268789020464329310430625114917364336016753402656160940138367025174852021549586091739884350552185938549792188895981135981711051290550634756295280149243033112676546866115270811390254707070203112838525516112489201072837198041845501724013357019664564660954581158946813559087043926412894522694202669086324145856101295447686828828806056692925034484709893960612200246840332097435741383068490571448686433240515314656463939674722047806141332721327010743958568137790195017922422636248741615373111439696369986341124575065947901509733051525653106821883287655638104844700536083625452334336120505547101324358156068512970671146525173108382496100474955474566552357151219133536893218974629908682716325198213771352276222545168963061724752275845926510911267537420296313900463480397275784310929464582984065845814288264695754493184052749575681025558929569759356185123584190417876938745205470729598357588425137285468352584303979596569974850235124146175017163284035779554052633672972201346537788227335379996964853690020149497168649265278984501015942983541392539426534032428695362066640125663532654938497361450059536491934667048387168645164272185971134323686666441825893282319819269768818925025459231761958646550997942726197484923718395844092291447908979896030877094109329807459102527524801158175058854196756394555338575171316018862778299793117599052523473372490398380448819206886216212426907814428901692955266485471839108885202985421589865166459189783355966219875691932266716763028679600238382748536121098034604966510053399762772649859026063717987789517554215778084245018514519314505428467031990279107557875575860444683045830939226084178663518018865282485009701713583241214428720707175216181277225359667760157578044229240606234843664190883484142003496525898082693230349906515152496497853880537707842328546145687688255312245338110904467846024359510047409461839938253811979240448610777017523481371790183239530241489011504196471385810888855710442581967128087280274707573221743512265411346240466621223229937226253490569216284354370572231229967486506957853944030707248356764244119168800312285753756859901049305909719468252226298857878798127987924324122596451451113545428131652273806023055592547414637944465563182788029583870897183097421398324345282684423390736587603579001676686074611171363001377584269797481319451547207194119041840999148435457222049216084256134453852373171887648679400070886973268934933645609762773750699559216191706545292872967018226756717041281157837807596261936796585235874074155190812709912989568405243083568359503291787161712602914381842692901323347348811862871412192879321062803639451947708667602758885639852350483489093613308866044570613434400931771894376662492594142805174855564505378658359375844108869735740923927193843702011135641503362078842489971547210258218389348725133568358215049855521391346790168452734458780015321884751204069764215428645720258891923445247339982179065120140852822028464821907709723836549288670603663289012913529258933342708366800237370842490553522245490244682692050454597840311286778671599673214112017158427595166925356028188829863385475054907692647271269369590845990803711795204648962298249604898131407836716786628388864074599642501382999135298408337651104355767177302826350340789504234255673131097146079580486051748865729109515678511087219969776242497624537975294336184264420431510738701837285316075882060520511372726872774239203403763455970763409512629963619736685784364565132333935459612105215767829668936847703768433425676151990698479721705040372063014464451820880426963028386529928395929795289881619065564052066579405991421346287230667114755164748458317352387647976201541006935807891079414709834580238649743873494684771922462775115274949896948393673484627381514033195607165484637459422659814213000324748020998821754158777644386892288387362637001236941335133556621933929492269188133109547600807003575452994942095625859284216659513319481599418016199533811580972697936291472151959951371731746367504955818705746132185601017300770235054491741948342086366074108469175677661333204331030606915044069188466352231699591726038146037013646530005378695940610306031328136865178330291910466260171645246365102899864678402076441631789821653796767325761282940164251752457386667265192834381166178219175738785243786363480555584348533097224636790787283998279354362214938245679908453327388062418670334414138720952111747677616998853031187062208232345847774286399159906435194629169027180353142514286018597523639800503140705731722627119142621561062101202488555685012738426854450665660316154205218508385182600898943439381720999813624884803310600438501482463700807939474502655658971828356411083884019279347258640318905754821446607990215982757842134420994783937071702737265225815056297967695721782645130991021260804629814594930809873483073948489318044968199062342564858150283541564843220054909980183549764812882003435804909197529813532951383173756333376033173648904709496126147886139935023314450237969092096643115459091081265007608778072232067264509263598110503785094390685268082997960666127266315790399161528903634894890226445624172496918574730069962305306875323286991665929890491390937583642581621425691671093057628251140632344292154710491287188716323248044932045652904275388190291129530813884465235950885790236328502787154044080157274140729431405396795068881467367737347372766537511076297601018698440748178417666387723115461240522582152446107248533853972810284987370498287753884155094924232520695178673749862126314818835984785259081791362826808463203373109607074600313663780995682763539085128275783449566238259631349397535153223325820983444209191866694728542327099510485745982092065134587878556863007025862380351046313999794965047600403401447275166245009504862462259356529321540344790319403996241525575581612664765308081888576668203040926209642419377560433174145522369735054100638098845410463834554287489747396863473117932136503060687148142742964583128591906194551428128410250657774108898286914377866475352632114727182237919097085358781279386671453988200523070863235882429284493725323475474294962625328215528447336177861383818302002386146111094564393385826740217835550885875806091648086765300063706945763520916402361098080777599829957018483877818424835006636831468786102482367867707389096206422692612111725999666525377416800133282680029172806159354484159279675903268983461539796440649659113763798996628673729811046458465122910424699242492609288715012988784762303516130594739060482893949224584563520397474286441527955169356849834634571957424307784410265400043517721041298414928161728121266265297600311666959995386722265993575476026100028992456208949951244806746026922354143131621178290389727366853814068206083856770776872699987314522419894751780194457409244207288195004854741656944817198285350550734550411560441799788885505835725227632967023236415360556166048761543789512895940727729811291281677841967999575008695196140666575349596921388441689669557194556261538567746696129936185318299096974639324058143607389853220052272403341017959852484892320136925592536415747715562863756813595621684558811731940087541850811029831630506169190507508307302812874133876187132928029024009578781412091403334069462656280889694298454359835819514033330550063450217448969423431332337872216429429675514437949222130626944891559767148011572452948411557780503718252556156705047843752415698417829174868710365436250829529912415860892873808392170060501710866877866318592234467999988501257902799115405459433110179889705994553090893079318441640850688036167960203024855146950315067602958405913261045214303154091672528282275655537000072006149052589207196739382354547691555747613329871773108916045563361047453099274744785962307824133360247655079013206279225940163894449790967872582200424453366897129231839740720262495275752199344974642306727494792455384757442641182565093704659859520041572640899898602426795280766808335414437658771562043893170070116807235380208576794055806336180459490787313694141970874903592034295104637490250578452649005477145472424289813232652077732000390339670858295324467919247840031913448601201441443158373559711125778898793717772192826537951989993334896465013556300919498039144324149983961737257404973891621281960962313150895737303931802873213787619351233063306097069529522223310430516417993526197114096723654901267699176345961570565149263796395320437603013370061966606304031847022912888332945564995943226883504366866684505420217569908479763764909769570684648137338404348268487606438754287083430620660822962842101263914849477150136391244213268603834520727228423228803667382196933285521622924562190337458674133935313982485560771695409927700582978715953953792920147672310951878735003974824415801571684528871520488600547152361563709990263813945630307265957923560201662540598899240611269032499494183556588107171461862610370594260280754998151464833331769984329085983851084008304579722354772961728508198430199115051568604553410997867799918555640858446821207570069300278945173215557888395212621293071306229433840870985913309773260530508365281723316601528136771023825085725100018195001655828767146275007133062926064422794618968532345302574601273739912729239639652267648835389173742349445043095654856262873262761486630258480759388610982544693560945618380609717747307456909281153663706214366579848961450172712023455565049817872817869553591303509971066826392173592255745198538392562819379712601010127974810375507425576535399599299736669483740978561638182100381838941871212599093526649654872046495858492293779484734457284049217999328989293098383383876393720723322256453048181932429937563267270142167384296500202393171253521017177801284418867665543879673943040162098700309660272604153514199595434520344380065852914714485936537670910309425898041441392145374635760544965985247430503232253095021140787319392113899065381239014080917845521513936446360606020508157125192467512649024957283829375616029128585773161330976815277961924291347934266142123938183762427004085806204316008599858537601460672214300791147897653187527524638027628627761725527650595834450507960777010913445124733026312123502064891352271935063366612928506265887488265963002608852294864162645390883963176058915057073522391478019134046262524681114934801079399230303860430422930339555240363841665010160936408039357356085947473543283668850052104464592808357864170443250281989813885041982823709858436933411636445975703556484953257816044881019291928081138311886214111173557439665193293022976508153970798552096455092700837851415790964368742462332838669625619463912071853383520347559342818374742443851375989516224129837889794255907100923725222320657513462986145682784332305162274410862516851280128571345090528138084725624431287732460844090203650893846502501941962130540434133933202201678830763731794895159570707031933076576846245065820975556485362190162664700711916303589629104502117850942858251366781227647011901058169151074427969850930856274926556565884849548012812946329430232223997872892038644465067535494131581024163992513383478916432374814488848601418561955336926699468578766297174182231996030348469525291533863714762306459527719113357132190212079866192559392893018091197718324443226946366381228099608962131629679628395871113400823985194399266719970998192101560119994955190561201482788163393797264283845402334667230704200354386922866334111619785961368139321710633240479470877609549923538850744624666341520967296136402438014161222556567236913043330813486272162899432644420408502761505585767642959509327723086342273553496051141466292451452742858259857085843794097215464597852262157623450053849594217350313813604119141343807906530877949977570361115152491870452519231629617184634089238063395796103298866514181965641771322081534862825192295556189841553943786181656508877776822495844590888199539199799442122622876696368894958235572110549251664234554227313330605144240163457215381561086350244930117778393042588206213221265686845558865544085994373382043262499642123242479084289786129668256589958893526576181838359880387259473514621976857496477853798963630922098543648293284875962073928197622523606372835942386983101305525389110107945723987427090251309188950194545744605309014884793003851237058346461173864156860120969173557495057863833737892846001543201122084962968884666250864999995355823229723489177017475971656062846714130638349756968873891684616366286214633323735642153188378006727915097089385138456555097704762244182444059504962613548313339246354949790004509881483769073130425269576912305244386500452318898731020969616377933017568016127040059260965703626477059062782895742352359464203571407562270367272075926980817574243270096489379697013483061654306644625242724865739325333237015077207241690566764930290697478333164154972436274312167105357115612202161229570293890485061251736702693218373715673746021671807084084674170487596559928770486363641187541252630193817866730433589389807428202565378338729619212363941555038563620199390614240988686224726991108214912616285014356763694764842895511524309909464298464533273118109267838736855430440643238308566037861537700989315901296265550688965924914790361938261465104857423787592724262518124925723346600303701803686629803561353777571774666627942509764318535935016394593727895444812512592236137216178092571718581626883377764971788665720428497741006915868508859279941860429932928137505601709022357039014874136438441798180009011023277728944066768704231929477728599212985715551209493521121998772379512801770960622986619330540589114816098751684252229873787710724330649989746337976732009381882218613919399045222758252925039425600422182919196621338163415454055405443684842668417840191380782933520359930200036054361991207482438016719035195134554231244500889037495827627158264697704926089714125174470555443986696772990054525753084081321655141785618898208900347705206129890433036684843791371736543557504629933911181038631002772874847518392059497782783540401845821317124228910592080498433505347947350458406650219099935465362068262423683368261344250070927784516592852434277747704610871194425126841177351285813853789910798917071919814486471148494238613026317787888453207946461493662555572395625639206908119640323895681363224249582653014338337961509991902291202807906941601919510219459746657342293647417863721598040081611064636645614516642169909981171906039690389970968043954869861102712899501407319767073986762811293701275847754560201203605082252553391351210745964672276500650856674568926395634647636509681065787165554238649874901033442825595744010358880317523308514792323776425742541490457751702125339122574605003104791336435732698347961926058528238712600922614381826891083711530002246601483908718233624239105015125950035513299888965060486072977526924754178733178300820183484394694732449384391877303683636435489974604423724129387392866100733784168744907146782685078608926481548696686287779500657654299019425109202454714909926446179623233405162394780503082280063138171958476701752986366003888137261851359042820328661878962628184275773312559386877356727683673485235700567588097246917126795363079873299170687031190724162645565230751859532980195322634014893128900820713638789440512208696749301156378834000828248951385726791603046040449298425938364809959445349726443246816284881921593107042265908237812133387239378770226182445662010867940610841643392644144565020526776791641582211372562485395573112096424004711725997961393170266974496287867300594757017129034483564493045370705952384509319095696164420591381288802990255974375578666126146411512613606001595785781852531043011947449638179216189023820848015803422422036838910846677903588403115666381899075437023840597304704781432780534832189739747426844127857260071672107642561297013817779490766394986566737877741263612583277926342083223873220186207613223910201875824125570545379337531936590875106793209685250936203141094485629559274925989528796351928358252105399322038346169375186223084961577525790905218765889052875296087787757217094122300124391994780526626000074299217909889435898004377802139900616975062560253073986042721329231842549231725400266597011672529051903887849986560098333698770585581687224471790328291012739713471396612757265426200873776940853625145188447955329316169793242795624529625915084179529028570881233724599309912481927326706913770207505833519196584374715204514980073294772953013102115137578021364677315396983127581661324609601656818156806837378454678083673115850315453642342637769480003680241277290104744939469496222845601615496542874177181886724350722914490940363812551804838434462543278251254646901827743790711978750809383403353047469944619373022709021312942625640375810763034190444528563456281179378667339990472097104469176756026801002131710627030449075631961392710759505869982956285466514521079888070128870742106370311124153833485254827956314040872073531048986327997536102886928181455703759678683840410347507471918089608018762868455995015640478498928556311847483179924037572869399827442143723624856657485637781244140261645486445455769836430041026069886091861519475105227345959896369787697664599764375734211704693683687210307413338876971412818560809184559977046497634604572340945523050396967140457056064738340903504093773110735931765453998351404046674691147497663206660992559486968113551889652649176657235247750891298363034873166578316514247871065982501547108902972396355796543420641016790838355346996371173862634919973505751739334928849649244905490015951109130190662225305581283419359691457406767477487214184618983760249011031116685303153353050663062333605405630231036525807158703298585972568684756675099452577538180379776058788016322994594878403825275690651200270391248217179136129598862401859647322389140723251899017140365560240075565100064245692977155621888471527138062048213492910188766311864467425053879885625709753065567112867042345929107487001271433170405900039656323627032424349718195228559409973428629593602934176677192933752086635259269044837760579837635939106409358265809947561660387753731736191554889754039950137369770426105617412575590953502431860482334052421292315775706774515179161700745778376719045426450019779678276662201268367578921999250606503198842620756350602418420861908271618205504088997412503817376611941775425867845380425903171350269008493777030485609898040561162048879977959763736022407578950868242586275362773183755774980900690173941352279474754781294723856441342127282071336830037623593766275924711344043755772836568584972985672769985431548287967909544162259509845809609539801765711848091564080348000777606556668442524912705481801178809480245959115596334857847333093438973396578241709978027683484527434437106684527074137431083475444702485284649010950845156919839827850355712277312701059192605634178463585343719707057780699245774108006399987992441479197307405429621306610688821001429556616667545262645570603802080122894772065492928921676422931208025601102550891368601011447100197093347673263802342297015402071821733970144549532880529926352934417820146941731925473839841991466578316870766191140272015157675018154727196701932358639316956571005902745873373000385516972791358019336572013986855818740504933621109340912187096125432613367947968340487740855072971855445410579057438930352082971602664233124366512529503881919164147830725319244301277905257445280108644152174931591403344392023621308249979111135151459942501084122657576594701411832709097685714686618389686981251023362008194983209572030665146772441517897114486273671650910772935899519000149800191866337651138295568910271464407128722839258496275119022701293340719262440957431982088133697167156543395164379998509259109433954608301985320463109193042741236091565029264246786091439220283628604431464173030282136106591897602676771100689140672959082312051717338285763695874633213705011479271921015910443246108539534798264157551387751019986700904392608815706909743766342594120962343708286811684025353859492149595034048642400753087386835542037681912524823390921023014924381577223088398239937579131754861182740126809708671223109938592650147187803168963583812818561031481567391476354510731960473106274082390259620693523011114245128643869876017464654303433157370630403688787015470074111738459886145299722286547626624543697517100221445166388876385579708916342483064530307490219890169849678466324761692614057341418604412030808034230835451707490558010664885760934377258642783743864320721993061798701949316171127080985025421749580770230615418019327097023242886503874118109344380492696472665799782884298502380415510853724864244972944443979184418973724590974073399217177927304865456000769269729120290156148537831622120165134345809468191701301629596250353724763286997239352676039020905740081866327063674553288927801690747958615700241810737567415437599435046873816754504238646142286034429652046158776082615831586602458348732882046037304223492233785505711395374505088299006113842752972700479777488630880704658255768460972658798883229145873568433909207090817042219162109403740117771343707159988513886723908956277613290918422439025038330649202181803819958641701771382107332636889359780795140042527812546369351484276453091494999720955805929671851340557575784416591270303681607197130684045474553778687159110976257826633205717763086628133076714246617258635736418563016035648449063202337130038693519247223364934470181185944988453845793876686545838120293923842545995636962206297347183091940766488665488329724799921587683412996337699717971005693451969700603661846467944322307770430640142615933467919184027697187002257628575213782359764962719271067519930593088907508735854626037069349144608262382371168299140132685265434814888983972649026859018676220745628499036716227339529624842927750248907622003947062798949005543523429358433436043380663516342473391203961304729114890830447222312573687706619400347568254652261659274561633102470547974397568032077949415176558179207191097370785623873573158824959473667107653469075836074001338664917115349701818613853423511493028854664889951365851346244512183148384303057585140771099143799057372107574367115171452151371170231203521443259958689098237573988771689705691794616150886689519454455617103471334231127604921875741571307239505256482681053201185547148360747942357097362489827317640510857252161572905130608535512855037073871799338435475009629010901316049984447568045940250791606600174448379469877902529281506810789724560486144912270468277474480881935065153139133225117433369961709597028598693937101666440865760326457250348835919822807805379597062753153958188145809963163984823335466503001206404422054824811000609918846003121012370984304483348848956532580654885246664212452523913495883560611157688665735859234697019928869441224437394972581438234818068025270017337634260803460214118940527008414889912525959685995650171219905355001017210765340384918234837883651088461379225172542922532697940818524937499207756108308406955632773314711512216034933012859907359056778719419466349781428612665488070290141395482256484665794122236675982736922416148357522132706273032272005265539008443633226595692241023526652244125771672193907612961635178775440424723755694995312807149723836828375140753481271969712077752141852711343383773789786834244630411563408906967991903642501483814746384351931922052272222839829679241765256997538436610520935092159349924787419633228132629360780249027906487247665008115505041400043703332505597132178267480359368095274741612430422862302047660894604587035939540832421485893589993419309740881268421358249318725671361546872647830229457142841153712956512346129026731501676609602880098724829443114203266025767907866447358194256224397329382966130352741556548854086990057037861131740133625238759317318410718104199154737204214844907698134553776244720926345209858702294859444588711006835656338127052638666337537261861267541571164856694908353004412198617236376145119499696132100126071385638158686556168277628373817698173200866962452508206475896945217939092803983677718007547034704728386383309681984278752966234222535826618322111517175536387433865326914515174556446350459028279044318251083156402186294453364445770268345769064159448129859091108660492217703427742872694346176998266023493415647780508843109984976227752168524095358600761216005254187413309871123252681477411633686276332234969709300503193094351708057627127304098834996948977156324106366031605487513537852252781514749035585159654840144046737123421924173190772535944933299991383916680694353965580519251743030785704893523743630956245473944264353144489631055794795388841606261549116795126141858229385938327485978036258994794413002449993353592847257221543549003866021066907430545789466753671427097977805315399954253960087340271832302953517287245742216963039682064711163257173633627898318843308595259020358990518440172901948630719105534148337737196778474311711078060204606192509535414866497067024103208320198933117664571282413929737976129308385227524316951740741330468958369906004338355495164013945112309615302300232133228508601351010197954014839604479862848571970627275466444391453619492295972218379275815884566592338002601742053618732049353885683655584875353632274338405334946653840946077070964082063788744541680379909904996881434433106518691802639607202626798448504635357975108843304295791246183016886698016028291581000554725090352454675099084252170721525875236030225604813505990545688974425121169393110150949857030110375127218718698802124872902939383996938940938280806438156017679986785603783834234353708118779150981110612951376203814382033454506365699289460612109822796640978755547966296482459155323749516523538472915738336716075465462237065834481103968209074767239393796178438960941055547849163056192829041055886084384644821586996050454383495019549683949967022904627370613260193104157868144860221633690202543435438901823577139417139840301917595183211435783705392052136864916434443719869613949961175795969621660915456689721173916212551282115092570151704421777780296017993836479903011213685817984042361858639277973830941564129197446982277109817605611117231229300603357187197433474507047236241338313712523355476306257709561397414079923506403638108970530222910198375136093764176563775572364723220502014709410934938489741806940368014979497603618514721852756889589101611580920491472910689490530045340916927522847811398309963884371695618862472669571801614263269817088116425871970574538590464408625007504446462220318437525206449464520098438869071077369743449847701378693338739588925184801605420272327094172180421196339929151922151493274097218831201341049182954089724638771692584525159046697887107343371024167725247800591946349294416081296480882461264724616878711513585447968596173391057170573542017585104827318233088645550218446138189316692599466864938175937276616761736866421151015988885873501014443123377511988724572642483011844714132813068146131235360820393998281985400872879064685739934391499509129725613795548692571180780113121878988639930700014619528559677685429579993020235533873368783115512790561067501464964228584952703353871441869338378506452548573459903487442134859434120692049098834599099084054767194487831210992903533146911411231699624274906772306841495872424095227916216604058790114167086469521137048644595283858072570329415339606680106850996231771697085911131779968588499578240097909254893644466998306187638902786059540881012248749381036882280133262984404606367263183896040632023792824947336708712250649778717860412776953036714703865422980035306830262503279556992299282237294480496432237765370303203376043204149675662821537234036233647049598321161549678434204240647086955168595775345435562159651522970492367566785954120412386431192680112822989450473600132396434103545659277019149650509823399138938670121952539584832926716140349068005094877088213285892418444019795943753962987528258931594329139611229650865263457126894811433288342083861182871701001905582998486015160891711620086722782397009065598164864397515218725066949098662427732893302357364941857758695983913759970801598738123212735971177688818478184635749634597191859645764631700442341930763063958069940844218978499110849465761383556772363727757199372991923354792823781860303662334199753589072195117208424441912446142307574069918301695963515975420740867879218916793155274585700508013006160386482302566721118308343062976068852477768626157414456678856167220798560789461544035076954215623891123619503461818767746941575130675444272158449269158354750115374502142016200651742570288323209012578609406323392150798610185775790541709073928041362314669248605299972548659227368596110201832937851908864744371758489754305648994140947877292254524243163246020815818226327240627214304700734956256688088337614150742745544526370642334097692657422276850284912481622846025454196473742252009443201863324659263005763356234354245055006827192931651044018095191411137204717386279438126375932960711271092650388265158554211700129542571087247785673615429712322888615595993668672641682504316581409558400783318252726023854536322281697529282193186812753977526634963853271726864449296358914834621722442009742563993543223167714358198067662574128327004096720870168962681900657044390884068805322212604650743491860894935112122840627447064149717058799738096950914751990149382500049976466389062579685309897332948576367853018019792820947125930275047863736792600945625308897308366007329073675973644726280851288967341027936103423027104167397329923023461854963973725476715079833193275812014749045907413475289640254635441270323709709186814044532580371097041340536761152217236390216501201775719221071541668288969287856865516200447033236054374816818144829758536012130426374463398497273937305143460695161836438575324461229266199224048675297717252939035290256731243943235700514507535180037809791242098473667758039890745443612467938609269913885971212836338564675211263250905125640536399943287686582004358547476366163914681797093692975601565024629709748418038930280384044460183418804216736995786179699817727241171082884554932178694475864835734969165845566405015589918928122787889350948241241820534386426525605883441351791430973457668123994122448894640411863652724765862345110202949992931568509699480082801479808001201762138649560081290204737211122419879825420768597097500308847697207618872146851025763366910409378691407128076297752336226898260783488686046464599649521025479098902573043563559400322419681573273444217784286338604988113556974393402978911983476008512228561010134091862698849236762792121139436137597915841217292982924062087044125090180202871149263077333590382011040325500136602685139128680713839498105660069282103775565639682156739852762665597221755958781734440029103251110248377745768026924557913029352948657018143391329831406242807860276698490473195592445058030955484469737082141691107700168415596945146482876614207016516265071637199224947560933594309219734916631165478540726566448105561472772482277058770500393987006151330511176830117256777484830041910854416987760769034154481353214250382267442033239066351187515995690714614252906519711376326973499721983347916400690804640178141515805319539677433170759966253154134488653266564216467213341775484428913916228354918136882677349671114970396821982364166250420027308059706870169254682308906718252225207068919499055360902094629305922467536087129811786622424933419727972431143375211508093266797068579839865005874911714807568921725243640658932056868307164289047964843473854196118997746137930061506907041518902624090255295926274600009850680530915316221856637011214665885672079422160799702649053638905701327948141477564217417738525335420993101290692310725207508097747507444255948795024345622924430283414576357092488603079160118145312340933589912489762681835573930409499651724138228949110989940154861392771380999679472059105784299201523663097924524608715988520601648678872909982891146434684454944696407295056791429588267318890222031821296859901324853868438589059179893976100749273878622440549455485967725094432557124033382754967792969367576143356038592850393129844249871963895142096730499437115318254398078963747934221234410667394091948055301260511001801157684452912668947316275678560736931529863759868195871528516605544042706042818787387925716348773593388973635237419329070384012495444002346614595883176117454996756019780826841272856775181519847391284038237283000236444593298682121159897673321000090252179612494375744725364943679037223577299259608421871923988056369357189039896512527064234884251465560369122007649048064880498413323493740284555651096068916484057368677549338700283997343315597589175082338533144411941587347206414271700957027762768979403545028963447510747919303829191282070303662838338311509091388010966918970394190736323844762867340358382119833807675670287787409454235079999632814552748792786602786269946137374113677293153518145738486620453505172713366514866225292172749515417042048347182225969637705289883997126685220920188019285415597758770938001366644278853356628946865072178255780271440998560975661379244841386930745906091651146141482110268940745856825887583559572963215047438200447734672078219590953588792643942804657023981785266961304076957982678891257740258756858476657305985959529634969636551571501438391927387849587756160203184585533123798460675702160285113930761087573668960915284138491355806348954069580346235638356234166147905100568945363145076132405877643108799457101652174871044058863255314894262135377369442798364513779086303610375407043194524567711619856013832283426876832342902206291457169469378726995312599227509407471208671888320313634028609627093671296344053219532722166426905081023920968345311977308442643523692343598564604699551171937030003850555973781674775382761307762805759933819202469686008524843199200493941715565061235669212287393580248377229142432067964966181660585956823806118886415692665767445568427817848951134409721843497586616797140455503691586456073343755502991356152949179146521903186373994444286922846386805619569475277140887965847230090201248466274496340078141668537624774995086719426961296330617188526595511065882319022141915522368669721730349414820103610117314395360674111679374195443525531518280192331499537459637589993769379113809343685435524134154429304751353576493681673346979307777764410831370144386084022856772005367756954839257121224906550083941531313495131796874241334535537770166972922580941364213138742172721087619615581933771136658142853573740712995976869802847485301156623913126790091274998807378680258086596310127438352018074680755556771171742411207256825811740069548695878953859519133799076327941005250329475453965677439964113425077996086522338630758771547974892466231669845005226581461889991665883486822797112440496624733058901341898176654351030217924189371195538749766648016532654866546273877461369207875683906632103753850728993901694151863160215300316010515273426188891211365890142936591677161319746956470284096130825560257699189439692222237653338867986696480584462466872347415803898247836925481431970328688157767049182282088792689528428020462793587987684007485071777318587469562552782157501070913810019004641818722437317419415501725608331410774131500248654294934942656746098211352560100349580898771476425750914107111646931940174616557700158324643384894638446362532136310457390236633057872138158357872552077704385252537506133302903455469133576701572918093985106237184852315962087482896285350513335290716422967581420557611406649977743007172290324783959210947083160071997329765738294256334079515038031318713683927863869611571695213462493684871726872607874191958811202634366490401273106723354452167221849514176207160456609166036744476384128818274140479375803844358851955839915184579386290309639305231178710845340746778298987469528837822488859316031133220933245026056205490540715260365337067346374772235789097558954582273166598363618579172525508313939711843047074558396895417502234453818699918987936762286300414361821066765846609132609851505578083732622590697240162560340105092740780279210818810975393123087629581308647349167820366719687904111136365089430233114402202586409423884549800580211003923337754911059739807453309629119209029937829115902993806848534644212274987093681249802351015912545243144514110306376761111892292614840987882817870375204005819543377225273000904708230815784341560413024566312532210695770117642358791638505011638150286084041246414386667582718675910322408470740548839566988390040976541448387904057004450199465271109721589919619347570639989947216001267581802239824308588754760863955122079315585829760945880723849821169417462686222001453908036689382702432853168203734508888533014517215148583117057069731141432484645801036044944899122011570807207950715589832574866007759563578400683160923933810333350110124013538977550764977593036823570936688636305919562922257199131503732278470394729067709802214684800237999292149967722710953162202298182879553134473458529607111386234915604379374092543611688787852756376274168117506533660948990838279106875142453430293632132152583348792297415839652870393165896031656501053435416407535662695082216841086681818056633450196672993897334078006250867174532376255307351143402725866165906462374456011255951381717070118616160843506600374660768487101302544678216522067306659247309489737533004061700590880899913807016441806100796518183179915792105616984205218839313439888291090094923517699076944861226320208005048413826135343497850585426169101526366032704681544000320727439011281038697920855113547337311881653345260914351053438770692853546108014802091028196820221275695136355331995113390860224858866609436654857823167634364221810358258483804720649793238776386418700548258065473041086817338329964474982495194631886434576600418009382784701114128338628102346212721813850721105902807891768999826101703698012510596393896731695478341997258385185482615694536935492437924481507292379646912192064135029231303561262983018682713612667952907209576357579860647126041976516956293539586895537682494121339781562206392562690626861542832281014284588249381450391184814884913418299464425874900702882651248909354197974010817746205829838376094522968261342947712379108369160569580074512075629515574810788051058237155641889825979296400919166253963831460677031800035893632283519247634401324617187803466024760538213195318732674261203735479620668228990668327121710527426466503976134383551933380389531463671531226984479710506025910782171621788323665295142379554120177614519076301863270016726017651299636189058786719225376285463897996606136885488042101120568456282535972747571669019572864168282639740911125740056802167946602062540446987227993891949167638153420992752845112523529162020240377570460117982053568830818324152606654846675180249005546877025634034911534924035650315441844162240567341282113843434731373811204158877244268009323573281973500053387288368135869134172240031315448714566418813349142986230757518107383615620312855603302853961296578948314014098452095445668404256788468514023377354506654424153608296849651708854191218170757345877420929415825643053132421759648029750772690417206118015821620228734114077817676725329519860973903552636925184024249685038085658927398799690119224820475220357839285498207541105193720490398520078074588346541235954083552484890279680337610136897699915348802597527272864174077059096913113282881908663010260693918443489906293856916314131748935086044455937689481699045231587161583971233572710368226154813770439548426844192098545105368114121972225898846298158099265729502990176431002783384182088875121647861658864761975035910107211711527588895153443240454608417486677763778862242948843312706489366272203612505453194285603498019668746446947867615580284089757280060074980788190535944452907138735189985493783018648914201494058966686925873523328917761933295620094137128436852293634861612748581959972922220511120755361693601666186705295366455285493096646908793965577056366874477396890686981831736813977545132477800533797042185907374577262827577118552312455595401544292294174366523623016623067697093118726236236809773939525684256442185672624400591953364189784538445432565777691886003470124277735874806719483750556967963256653772834504383387177764183177275462076387681103466658772917737646265162686908522669169210576830290063184914832828701917575158900804473080510336933049158457183030308869682708226181502125066305764568840123145946254611500458432199218681886604185173503988396968144370628599380556254544104597056512478700671515695491511452042417144814095838111195216998370848448778749548574415726756412191720530060502858732769806281609414964031753093034788254730621376870563480238454276826639640166709435018172795139197135357829169143315876825933103573699023955867863589404258130877855302707203831335403807483838421097549610538541345805481758358773529547633973418482954625336760319982116106682093841813214867811065234654617416685132669503423001607506271791050967538480326462841236725435676195053153929707120105158933741047645471786324154990140068328184996532652854277120928741711236799339302111410059783856649829668528231191505612596811060979589586597173511248978760005722387127141134635585573998113196793232075283241230877577035750693247365982405366083854569480110895647192364931925216992819835761115545074615917038837511684080852831861852244080736837856818504308611811672919534240891372009566220568865637845791783870644374363024385595803274986092214989663591246148378241938823395027321197524144238618536061183804197126242583140000541210754732842104604783360364592095893535993471553526550848512332028902924265899801887217450353232592198746710760859392378241909330841443330251550967940282069284381807282640843893482704708516171959919243629513298340189060488554358779702567839967763935646755768962674370274874999003248415189368040283002704738836888904747156893238376277082482412824762197402222835158280555194231988769686185894863681606133211988826097909701285499676686618847041956519539316610008944784171910951128135223009908797399302804678271936837464950787910708745953371620194809953178901287580747674977785929307662572737202310020259260384516769135314362175363659213811685862472310510375786737645487296111486787487785025008030523189453391625303790063147129943717051879316582887080869561583884367185865615160166934083254680640124395296923639387562132119235618543141306829923662564737809212782217580627674719023752152253665208937521040353624332355419992868017148153036075810207026506066455740731523053754145662415914174899446759104347595282745488912418235546541131952534406464939406318628454487301671220209522967319951136505762249067609530509988371715100809947967203816366166634375856702645161330207736075551484774608273934923751731550951642886466956299883463173572968680076157025563072673786214913553569572779427506708961506795336446750792932540254293965703007958588174142410189247731035348400656709773623554888984216169917342235764110795322039015997028181311532227198978738008980099502798710740075330316472657112205649338493617229214513853503402141387763381105054517400165404415802382479575274222862224587871940196642067471163671074621580029509292620023854775892736344412363808903487636017209308251920261824094763932369487759774495442449849501333548068975937332773653721151940546507946301012318559176377481655630243824020412344364924538295419066899370798325539355131566017714795896928842790362305331851130046622114154985547767764433226604313319199752093964284705807868122228065517715559367126037940818606984429253491559133943812477437737164674031155343694033055132932441008959796497887894415578000774887110356095270768910327405762466638764804558640268634218819905308713942245723887344347364504789232684405105879936617654614973783242659758791917368541553528868140688438062698481931220513771743630972917616447080025277861297602681657882024233522059041003640522713044882605806957824394568184239488913763005741962855148562458321556992383411575275585590971683939522546254108791866747070626847293258312738092473887937638294046560431771175811075788136989744393727298428978062670928161440214431740710063731224752554558763845423761035043548258242843391998551114338450507486015122505795305227740150611346497796754924621050249519031991343404796524295079348294955735364732050133632834249202149761748123185082993792475674764721922924523021328161523279872122984570902961841072725567074196102800977122899657431804508320655120765138051564280589558696292304939230427808107301999741072776794676163501582668860962091183274548659161195947455993044768236043986579270774398337613132077117995590224074394220323880051754866185684929322982801395854949210050007803345955728133039847934700298428479007813443915985769185609310769940365988169617344521985668410000271642855565441378361640884964968119550687869856960656861267052965661580540610421500673512755984921114006285464986088492165153095872090601667475874797393764526557234782020932514655535730579873436777856642380265465824664841863425417425725213428094500882085851709966374899104078975560189759721192233715081474697147141915015074495684286827523132145834652054196903376128037071537494135672764275528246821585072322678240194586924015607492040625753599466530069407847806953677407289097667316090954292841061395134225275422896486585770687450709053651225396506080183295522385725061726489366264516979007529783296099601370889129186697910539011350172566976521866767911679590877593227605796657429113662236215723858389266607269767617834878031906618384485535237358064536010545451976407332473066360003996534893600750831438549860896698551337001554683059595580467376177523446927130023176912247399445042844015266370635066854189445179277831255833753190608980044859391690685376165659276909990931503502704947206889565828962721686448223017097493831358830623518001447977924684362315353793718044100234641415244957761330157969081605392375795328459634149134839234294189953503313328557817409063371479007201508774303860886751944670257524119144677843388321210686083349679707066101407098196667470889324564956919196852463774451476562900835458238850620445731893604013789568608808499638472892261374511450922503191731036570270675305213156974465186833092609001763131032805019524455178622359366477747384309406829331545242112181194247069911906529686494842991889615199309438066893242448737377482581335024406739685242855971038377244880139866351503288506433406373776568874081601320316993827381938245548797661294621187352224240154129741423218176976845091678109671945976428919286015221949221394364360368914032329107872141826336882818626330211384185092463216185289434835867750702153100611142261557501800240503204836219033690920509267831132094430293721378377018806659153159222481097054431415655225106506999483512844784143486679084703378917409149839039843639591154354193613771602790053548225126349240085868067678104868284853227717197373574201394427562018804808235403279125361241730628982354926911121058935221123287522319256612159846720425193090193213311357918941717159799603231840250538254265546342284528718783682175538041531471507825014548576342072384950499764788206146726396498331001180229176544424455163695896477426938572523160069864612595382916606083732316524043232883861907381423314141535749806481953791233020967035493627069244273872385144644408269713835019949545693960141111645651708715176633846894185208727742719229892532030548888824149849176830758683145785445489674083391759451305325573538799049012729812129276477523153034968486829471960522064694380427726374475444207950296569942292187191892025511810368550060039464428714726602396972733831886934764530341026517974088303064706071218028686585407662763953685672847438600288010063676354334991825358915502553290311669664115868479786483205365669112108749078356804318661333243895508703581545091782892411397704967138382753041831772760256841189637204886193167830891677270368819844826330833790477153422154896197876843811198883090539770400295335426952120773928455737124316693542676087572619003180874306513688004567179312132282181017686159352887162677859373013817484993761032062106048313295427019526346517805520286485846884429505942275504030353301859389661799941010583924306117876942930931856852813548244234986727522585054516672726748335710881680637965713711498193194755192911823895064256352083547964264241596981543783721378493656252283138726495597857086284379601767842551571116057391029736942368489937515595772235152418628090826504719402668325921769401347774045339134037485229655128881881500418001199354274984760100018389041072387942432256070507871892650964485740759397311317064456908726649544071286370931347321849712578674883433962620741502868579571526634131505068474275337078957358443091657107731495078560978233842281506570353801657568704875311490473002217369928140147716368427279436497827736157914147466798666326296535922431859643197577823859227364965148990094908273427653043841202164361170101484000496394888999666186264160146021072933633789041529746341496446312260700279908736264068975069463038756173371996177942264874488982176861378240075972487361107015677055172319217835174109118298570579860948107857883833361454729871759372467606074165503942164417055430446234692395411216240450447931977223454703388589301120818943623170706509008861422371158184294861097043482855567951604728725174702852941032637670314222843363965188875519036636825101604478271936496915829532999712720067011444825775610843690609578673317661586551090663881626885465747529773426286373405377841108884332676999855129740304135130450199449680793618165798984771780403088586940271667260930501909953725430346791560765232344068928673596133522571526172865315232093033213321634027508145752460120889958864365295220703226938708596669362355698166842349856186920232439437931738494475893218335658080523861304702021999399960712987649812572785891827659246253740493713984961843779317731915119046972735876686547633777547803949903168017731795173535110410428986541563766151905669136923108519279446430797273831702521564921867799703462467828711480857428813125068093667227215795154538275308611768391584296039751289710313331605743708519494361744429869915651154024763287997280642753395347760112229981876911410840295870055977071483750460819374043623494460669058154192196402623854840914470652139899539571560103388045890102621002026474861681045209044203520716531912373741667204918880399176060528638992078213015491652707009515777985025877472025301282717043357547846620014279867350376057851108371642462105101913776275013316349347317642659670891770320107186443085809822479253058020741554567361848036655112467189592114383900780029487531676402420725750699868058485189529369508917250848029172721909942615527030935558628313846477044731014614419489781586308036959327955322778409012604652889038673898239598356321968078355550468075972664260523912031636471339628881563726299311549385740326048435008516266225896478028469905444747794829783361737151223434957208619571325057315090446908471727993075907157527625684627421993129456436797453985586857598034513906815904964199699024587456753515133383677048389589140269547249478828670446073146932767053600463005920143614506444133267879626285977616997161514017277570703517506601516950197059880733218910359573722777160938434559384882758133211492669346902617860800398580257481954016809849975400141103768103290055590124170677272122215879546261838945394975444250740862480624356753658807130199645631220189246059692462411805855018782047887934425220296630257349399481522744769237565569328400261746150361062827588783933859361920122243404388719304668209289801163916941517245349400418280680473515084650919725835137855568496417324526123887458187215861852836536023174887768853062706898300691977770201118250839797909248804659262183776169075204688037836753844030601483602455681197716179698991000489880081761508735947109878197219720505207083528940817184985871859282246493699669214167741633111982560187992932703440921401725343797830211046994627445993277685062541139336624198167445367891248530799846099893238544531630058375819857237651268286724231480299893876631959984046593077340033341363383793513704536639425590162552843213353413989444606435719950994939440270815387077164321032219813955870577347591835520855735767175581122164957655426346757758854205091706276608219527057697675747137751822262838524560810290378526144525038035310206172901419104564745914562148909902037196460025552548088700239105998830234782332518675589910772102201453482601253238867885430899456824457097000023467532459999701230427103637377712137636227455212204556435788117657406916853463801430994917758683189068473284084973854773803121374001490837546032821998878961428331865558321600627380297703205690362650954135173992267651741457954591228427265258819136521536873056925069476638267080171619334995669526256340762927309786419389121652348379231249377400885078616486114939344932826301939271955780575031760293435569297932317309133907661795244244995019118734285227895386884932768802614782128071540004402171396402053872792105692236704307474166000735295632433536237294791822389883686273277787893058565814644256113724234933619433640547607787309075218063670553356710981143732394110662763851989800653473034214586588066663432939043528779249918662227806561814672815942134822835015853260161383070166381955314721853203997272357605524188747125988604931688172832105388812684311238582521020285758973400228579305208358285736660192896644716959912134512934945057065726021412608163187312908886763757394415236283527271738650390109374024540008659205400074873412261998550227904950391035523230572995679095370683900056041336973508987872347828675371645874878728110443073054641633478897248936010265083637606604237572702907272291072980641801725077954645340442757408286712654303245022590158928736952933355587751803867999877612584743308047755120406879289462627047086506951648470537587001394197466095038663330909000701129603200984338748774119608496407149362447275295169917656676806493018303917854533626307912891981536731899374820891176401405021621801902850782950160099869687091369169524557375035648688865825800893358408664403996976609574991046022881578804445121110011463639049129245868893914800447373355716785206168695685488648123822026772576860716862342221798063849463552503698255170500621299742416509930422477536269506031250779365358262021663596237220531508472808889043348520725806157791154620367466878741058822447402385225536071074335917391166051702123911060621372926355914350527600527184840056997794938183406833519745812670296258169465989571286598043542042576503006597856427857138585221764412832279714712866376400259020166334493794007282370348656098193091093811936520723184918930461338989866090646486149935473680694086389984741800417570639142345716866683964481121436311838555523494996592180216975618393056467391195115050894917141105685661567529929003218013868378361715752565391011598644539022201222421607190843679564700683155829469949464096851033535286795664803785288207956973382419582534664715750826071804922187091776290854011510158665542351857355579568484548957726377868332779483565397246951329296507284803840596589183995708933632677293880430641996749716294418429247210324345327117799226129936343300689639880043400352268389144129643448962996326949647906558126129038563244457691130441900010412909167653184068679949920454597049303506356718766415583241460684631080983645313640044968177053681780570214499109981106299280983462051073759244368011365546992107976954038196998587672519663487387714780696507087035399672480522032474853036897161956610485267379662505233626298307636018846734296086645752089418648576677377616829873723353196671670465016544334346176597787488279491795551536884869066568368700086007223949113759198857883757512989961929006599124238271925965487467200589823304071799371026487268277313164608563852123398553037165744837312525241858817535151993429636778853619209612144051704807216349422010181028530244335007868111676912599769742506880964929540105848990078755544386684148250033480091814626707231104986194192667550864485025897766396002641877024288584466902877213198749295239978359208873062469281710428061158424542650721954697807992152612087758579401316441963195429653055121348138278280928315619094243969228660648443956003188206522412682456608876252624925417653222528636841075336736091466265354354084935845883695000761470336263811098496872069007462761518099004327733024815156713679524034512547109295313067995974532679194409392823516027519913322350090793259870762698985637464742685530376487336541644118444674730604085638000053643731055337300303200358669375168405732766368782202223902500068964658356396525220298095345001499587747619269289642388261520339183716169045924409454099202425329047928103026728054894053262638033116126214567467854486954042161619604741447380791614839548162482734011175538389170374016130507242382831323294428770529755006347540859159688258496841102285256930538009215395308713478696323059833714447697030724049246231395585379414761722158652274880925780926390278243293759906810606097709493343841982082459062514954179445444856390913409620174705389640245177683875628851451048091957409882301228985411403739467966094514356048799160526287991989645251101574799822654318368057731583731713478929793687502660199773389933216876166716012536714694635974632725430954561801609395257202832165114967384389424665917816063075456477840920032156167465398838236793804236166564930411892392592573544677027831415800259259261829806110309862254612946148009975312577685810992602012601502139880710348899041809769166914717028554492929718149329375956714400543488116458941799332937085496270132832561422180849571543608059312067419941315102836601564071647747178300232038714655199718809405203468984058374849902929261468954506979765474885791578118987925043530924113588328966002454025976695787414549726384059140280139827980723187373584250936872440653418662644188311764069542938841621874533358730547053891674962637913686142077181888882184730948171006140944888858094916770501830237200798133478178314233497849151779352056941990188525800487652575698830838656122721226084974497795591851665532694654939971234095729886574353412829921673864854633785998525617086012475601771113067705643245231616179069626538326907032611447986453519274178647681390213710696953909523315183592936151059015005390885404958665301108492367356432490000970266799067976491246599273066252217319321629032871755185824727077922630510837728308105694787293785516547828874824737909630298244705856825344938116563879909944906453421988324137846758529573129660523949922079417771129950668192123211447251257122784832457148644351480921632084727328621073112155497500027564063620041845300751785939191187144650660836254400028005268471871388082373274507242622562772219568407535666234734290443630542463558317617584391800698957894667265017630309641046139938480478715842909206289212358295297113992769147587520585860959646154855393829164710087347920037625791171182988861063878985194492954482004845626473671960580847376550081344519032994136660939485888723635841714770267697543034312197706036724707988539714578220660057459932282547118910853416576449264698394821830356781255544300937040655774628934929806821733995878030049827663877012291717270088439916448310520434720108694923331457016630341077645226846087242838939697174680557328560425959301720669963662127555285353562302665877789785633480786259608966920551887256645323831971285038815982497221552419919130835030997639000376613133960978929434914609860338784964739500507767137183457803573156977228206565324870958889994404958360889843803326502252428001986028522606992059526999932384286939745567378434242439609244837468479708845710891285078072089197162334934505450339369784352558441809613364465379422808529404837118308578992754002237403531270147722322600513583907874157463675648766276783458146214873230080093586214539406802584545809737900518698911085182518933418854448539701379307959173220427468170640206868038118619993333021489547475763475131524194831665955974642525895743118861612268733404720688219973606060998425456142358787692861547979857007985425470350286983559557469112097318629598486497510926457965350585426896956891321828426482718941508166715647730173538353372542289573203313393027910863070309745361744106906055191366526439059749205122969012990807375948225654601255677189101279196447992351203710528233936475663993616420494393180441856393372543918181942039115939558561229095510357206096430050049759792883833544099187754149616477470418987462128325317476245111948427672031687749027872620563972862296557663894500763287744770645426363658196275907316705076078554602557837915354108476571591598258393457953046685592975429596167692886649243160452240282026399772050610639983734978636488531550958836530126006096310343796600387882217124196773727267262302098290404571414310775909103281407810141197197224569550186643682731835820598662711348171076247933464538278397889826282357024205656739268978886800400131360921465826906019698671778645412275884560143612673093800471614431417255899620068079158894492086131949976883090552183582540597303915607310265252956704440635142057982625936795900319015491749823050907174109741345071723505413569432313020703662192176381370900535529754321590060723316300102206840715188880571867257083888802967665496862479847847435066732720351038487512706449115040801178627438135736325256747799474055332706199570929474873028906618976328063393440374598844274710690425295947067113848841474175676672454533340938458074942684129280847790004074018136329548310263553406596224467496150258703257996406043132571128957764577534599151316236057902919897195090560416366178918144268600629473548067604667792653825904105235483645067925080021884392320242316792133364040623465225318689931386771439199162782690566083093609597506675166946862979778727472791901562791878897170391784322578746565174240589596278453317354291039597881840416365385318564928987635103534402169566329157245097962248963767509887270069338878776001407019888993955557175454653464167658793030401935109226070471888964865197010113418266483690941201566925811614700043949624948731763352379499357483208142290221489840832294315358605242716358241234630786566936134601506519848040810306863538083177441268586141123193611543599799156419570289102973280713812589357278128694720124187327892598121829542597531135602803502217039149929023463183586600489907949150292599919910008103626743745041144820504123163333012946647004129619379900235163898668163957665236476863031646554662584592640031665781525335835733384164162756177595430773362121659334625547429869380542336374187212984810675657165040703187654152989390277988242322845058795002168716588774838460983840685623113516139395967991449563588013332116780023837702883111598196592254895303985950947637730027561466915928072742920066043578397077684328390658759301249381860192789615437059902871015886830363530818072229636498204302932661812024575438589316363890452059047741992063549797325153819188511991605354054952319552814337961403102545448414611176496148853895908537585357132977158585245526815542964375088986040708582692687250072876223610492967895285849372572931237832634396513635458637758581138876578188481128174386848292837587975779350318996031722186502042424290983304007588679136700195815916613210070871361015744532825441587465748080990099347402277815253494511684280815329911661580928554082635597409295562857595385246354276028376004567094359676375939012621099152759830591505708785008715213336083851619868253550759216971374366663092543446050318772613967357192358380653791133860483756185538670755789919192496286203821120610746695252241647071094823059778628888756720226125673510109972971650851115278141915612033471280622702703403318517309010946847302571454670702188552161449169607595193874122772560562805848007381846836337579507278563085720969720904616987254551701398315934787094067257184237608870587204825501080778071993908966069663074855094256374421636399819356667147436324481455103147771617158481373257092017359319972530172261401215759967510249849150452318133539361881661992555550136651034682100751556009405719365196753652822854712942233048109655033282429650968356245452504725765949977132846851980628524578215731559013365579351710140718813794774747749237810064052556703643106436918030065056971008640574077458423025083054835570907324124610576621417126129964387808664844837635205570606211126002476878773836453248781889193305338591388577416835497163186093302296191253228380749299240341378050262310968185484912157085197857535440947713114483338881481601631778193515996326626436820340952785446616261583245758712478103623002454688489808044312470859485969147970326014324081419030638332315680295101505052509647909120779696568913426892882052183759065152879035477184604485180691137494168537510866213430534060314021138278604173320059613514661406186584083310799903348186334857953767707108915185791317382348579532133166619769335846924064172102223458539941051379257159787673513954463684477126134031173081262422832408747921721838828784692545426002998023080028511392683551044738721696566161684192255515291010954662827292773312087279257553284640983763084824116986999208487883974572122929406462904073651156575337335639617128574402957882907770466476739134304713396523858380524287515514902458769704229326851075727563824786297421164570935204076499898888582470961427497918912099985672350428069237212335670283518281671824713815977103700082891683349438781698757077099033223294212436967046468447922677688665745748591983583402499413564877330385247763013464090233122393161194215921244950521691474871422683025418201980428726983054679410943296815109362774063324490462192267500300965032207568895595653000334951925529553275475783917499233798416743975397652154932181334708509162363337812060481311949206991553071785631576242875317231748618877745304864091189992941117166156779218170983584259896081725420608424913356262443847556150573823260561997746323135259306899122923119832003519683306322540741359751454820775778090793786425975173309368393737696135772933647233867288835563607142878552928494564766528043405267998734423903942004183830022460400957176430131170607904423958094995802938984160024896643066227174971805845564180532419438022610832012968304230965937717106590099529083487595252197683012946365884710697570457937342483231043763639951011671270856560734403817667657833612913268486056391062331561830418966087389923780041761298271303970330481859414895368720570048833449856659351445480440948636406387066768933626787515701492462175185131956474669977159581280501527268634140999711637097236020219944422034022900011396852982587167472720528353457471915993056731835793346223206284209911279981474553124929886472798809996419741355062552364058048307745421915247032185816286106646267188800421614232404490711761298753081790913092134300778799259456881732902038004756492373827512716124113165242255159331344772553760765717902823984327018216784293216964258745463373531060035816845320925715200153753729951789361943163954848843004441428729251082244524823102053000154892278320516252429373430699137902780463235280187091791926327626247754214297081235053111375750204774662044804208837591883936215482310355524192254882786654584226430687289103703619577704071106722815505191251063448349086192346205497486185650706553183738602831796673542260384057046159624017408264763759349998596575638062672020417611758919688277193387516539364744830665857368889908941487789268426290080540453513265086123593790620516508312050303334341103819548952169153281284903386273432546064791899089572147561478250754697782771566022585776313042793375122486672439525940442219252543544727699534817923436648649727834992552939796724189113909743371286953868979504808203113455051092241523018648217283458530047716589594576877978363785327235158449391955358593739391010021021502989400219415086945314885391188828395922493191859039007982716732578410139475393927905437240098184982133940282471463604782958986563532987083515268175987720388920807473273133081507152360005215513776299392753694999355493652690913493837729816884968750210345611950984712569181354477626999065143548766841899649464300940863781474743663901892444464565121674962170997467722194708878812967843569398138405510101026149066190340147327073349714386776599276334727113214858142916755686846484278371659461335324033314807369181536850074247901899870004642116584747419804592625786643603242739121853594484884327686516291114977332757857479156903165869247976859062419580665038321005370373214031858335484518522156452835343276141803693275045928817378245823938003091823036311470689215955867631289618648075488076256107016003304019310609051837761761156300253363838679495505034278593041700955140913322376014666971394982870580623959653381883441962947549589202982311896858258957112808528260847767193736353563272979167869274778577715101884368371171563004422603659762153561213836814956447318805527366746306156961675011434254299188393790254760491645332231508658020618928652777911258893649176218763367838624365270778265521843938624420896430066860182642107739645431376327028739813272183826871142785677076695239797490002670713302373117708018151600131582315702657402221543519812465001126078450015872771275904117055171783458419186369993384279627671636676952634807142913953419997255057954969206632005492040909169384169855836084495658213173403130128248165789624650090285800925585399775983381995638603800470702841656014917042875115607763188040142439317536650378808846294509864084006905329629388675190789189029489504757822208925738953154728044413965872227304059069076698929657999694531678928279204417721415293644844333141288537344855769531445205670195780693287588286989230347962092095139486982018638729647092307006027743286033084831607374063913622840166804668245119679514782885450657894193400992831005164721432218287110186648491816482016167320800122221022912427501522972389586571353369871151303283565759147560704544418692324056357440914159723562270517083203230958181890848331144548074778827051820206844972077420824295910159121685788356610641813634148476828548333887367568462523632113639902218251423181171839333722991630362183822767745301290825931524762722529136713209145747410104324384977422743295289264829457265627721571349361275226036400861964652734774752234931066138475507332321761428554475738415882268736794053894613269086819374265132804393250536294006804104159694094763534382293573972334193880565025992716356154918853824384228897291980157953082319126769037945612488398967646210437211787307059163513149913951700030073897344574985939921987000333574338548871100028544454786453182667728994673845800243541937151032422959310735912831059612587314381382594562936685148611171958570234848409050944314181227135319766840247637521019058064646766874695074328204607118407132460183037167868820915327820114091405399922760305510277223591728015791043900388627057725151681811214477768939749849305485792342698309076672767287371612704056556139603139999392467563585434975886656573896755785739220051464080460438258221250177801542749032409580264823897684288422296814582400057386513529390864655087895520669404716157651490068810041279293337305405842314174250071395821517651405580999773523121777123564817000516488351407011810350930037232595636241200173910266899041965008767057906298492356574280111460765588213672445648199385431083290127624186882661460967674139239739205769452606108754621818315543065066444377406716363759770978736912005909553847287589272390828014343611164944966430477467797184703278479997464601266689124202665686626555085051870308258512447557702575465985134811565865403416088064505449208200063140837733501989760994766624785244350713966170644482398964272474780807390608620315476855485073415120943267686794959086001771905274744704741899011081880633532773616356211153741948563702716601186193178106001045533966114047509146281907108481338587988371113811815874942633093107991495020418620998975343861488903242861645129149442448682051690283734623866673871459954561289850481892383276881944821776561810208761820098838975626094602528079547071281628232436832637367199110506803837653996832371517316618360598918160228994203842281312596936082815994418919440432265299184262130336648137331052402466373916689275707917990947583551079059983977534791699777677660206553844132013275661640817218934340679705197192021895933784868320716077312040558403519115054018227895754393629164019355689381607736661936385902105681642549905890291394490920744932848196602613074231000977853832115127137990376337052280597316910546114838610223948424414721479228162729845666952830619302501452061931482613243280395546165294473911867423021287958567109350057102230855310800012483134684959548422331212065756305191393707187150348295918252290563874414740114639011720575813124833277608779277547025739139145552670817077104969967813486568421130799352176468866321643452685711756512602329717212526679714278324588732704639602244082847474305842229470907593276966426696710644612326235424411234194980839016234780726189052485627496189781517085156028293351859291583613965557503846457810739685903177612358867116509312448101401366419585370407713910496330695639321320283061923647942138460066615065400942274691166717169930775685451514564223637090848922783081920641271735422221318650952225709093041388732786204553350863152229750925483189647394365222557242597544090778829616479437088925188075698410988592325319137430462172340532089895642775082224560893147190909174619171943803929622872692867360225043411361302380999467516312879404461867746140533141357798528267681285135351250582920479855960071476082514254418281141808622710297303428131191575190549823622218901456207580627594830723695661447394370073863469591594288573025521860945559110370968339163982127736374320047968720397047686318950140659382657453685410761377860879661062412623563997229822890517856252032251180208356211059860744920369081056626663308127823973450197813171759018798448717837338715907051909865428458352236053035107407074975886468734611329313819444007254072277021332612132340608163400081896188532579325890388454454631812802998777313926263493624364684407234505954002556326328797583261892657092607069318566794295878842147327422566890721380793810368718149670404558672177215171145923648380137966090739936355202784179454975190231868092924932958163167103555853400159138497354289909131891400719386537894061474817557801927129046779383900363161186965872609156211684326907636635375150554039307076267824818305514573005585995068381793505785169212900549824421012260365933158919365052502110234602990235334150518228061002183461267383633794765869336502132233734516297925192194319062033221436271600651254321949172076186858745569230386969960065642660315917455977760007431112374161002249367100861285173977065712672737568578320414205385741345769355199581942421992856636652708372322792165611430262008589128342900889153429769072633908765739795520281022037199453204756972403598465600669421974565816301915146957617814805632174470420486576673678614019615581077810121118054683631389803714272512004404836099977151246034711888257799473448273466973613496220517763821111454192006643827978388423409852311156875411473674988088493509805663272017384190685952628534814856789340379755812313323612999735695376691763340802780732784277331395849605522746804940924172082227355746487412964368984067711197851401104091540453631915791262805009195796865357214177139531261338715809627079189019348988500320248134971366160050753424070463264691208220912668006511921606384061075498315840077982355526392744405807889583826604778265382173680523579905572340332522108463101698954039365923646717669501842525600069849211960768381077364012849625532644120365463366237173954375944945345689254509705189763699957048631218669214379682037551589620912815069319487927433219624861340034122564657676872532055964388728484127916893160967039343175069637276699662762547139335954610860620296342728541308720118200792391791628909442832191551099256414572273152290870445349992387230111484283237375159561330171183986739434185396350040331943055557198473333624247266982290831354584023648426878185581181847443736747299713303350554805733768354310985998205186937749279644090872553104408550826619849533388486142571733920099581206103159722659757067777252016969671319618006678561995216076253718091858382862300532920658772549431128963282463240682086725185251398570419917229901278146672609449927811934253543089628807779790026717274476449836357230463895720004252400867833757110976601198376493937071182947761571199157282536981982104491970246240129134457723672135966425506251682123204418391713992962249065712149818563193421482434035655025388585613719828766521833221809516716745241167369269735770050318624277905717701451286172846995320260447762450541928332724791733894063097949182313881734901335258139266699017996404143382081972874078561835560759543693068945207679886714757799760386821267146049004032973682283320878054661324800927188984257355558968341251416812190694965585724501861539833832912453777012573227286689018764562495163446115637699043738179345315872281023844587518459953212924664549900732467953927825106548131678093887715421947773450228137212520270050939729551677586003733811837451441149711597996935273390303839306693753591481718949937122442806138533497847025815779512298378959132257003325303904326343721961013993792706928730934494622564786236307288167817581703157894237751251244358582558849117108722819216776148656606553092761654923367876899954558622672773373649798048341531953705393965565551068511247106870923399260745154162977105162894232228021217346195436146448497496574195410651573761365765295339865025766344377503848178742484064041326086743878023176503722391700618494079762296333980749286452539228271835798858352405437919501318430713343693707028666634891118124830705776196336922203643124443947178440766759286011389693373578477552088382515590276364999130579532215876871617879501682028501310632032785425976828751103684744564611808364370682231162810323322679426730394768744976647485159007542071810733323746042672042811894049994182410316393432472877588548832044307574435427667570373064236990286742345893164600849346599030912599836129679604799129517581996539779477996729027348962971460677168270945187781185641490686715994959081557287369173775724695234725619647488382592086789858916112777385821540122199005423673882746419883282460239487559019774497874739982076607725906043641419092101270803141386600908030122701821124628457704924296442575851010101845746409736640385887186113884403747960657806817314731087578970333283154647710407257783888527755877399317831907756072276245211544378396797755616421484604188678035852555291153456798146148272942653438135960245333279359455820989663225640795871355870343669470636740997437645775334305723169955270036910770359131063244126390771066151742525884346767818110840289516122829564983292471177476679132979123646842466565668861488682635481381027527794582712629266071841566429105198549489846619792962000453152773968536343198452201963384675581948084129067610942159056897447895654193467264311719987353176501418261094372410922545333700465353084472835910821224188872030713153589146459463503161355843853810415224872628642010729938970617222759620601906255540484561491957574210941979621629621967285078225364685242836073201754221791448056451481951919829435100149676169327542684530456143721968616585845587207585242558240380641069184228063512537465310274721256057323082595431542408961442838232687295587973653837093523160601889185822550838207042852607422241089925496027453891629465840864921289384187485173033933260216441375850747203117239271833964667608635355878733386782009656097994911044856287627714507855112253563050255076755757101755338248901361239757810906325590636953133930771539680598735520987396874657947981077581204457031146242096665271920994208822180175432781253188740829994772892872909238900515816349174737355293998255115454709240236119624466177322674815756659573699104779353413502460991793925982656558029833853816750606279270587893216907694644856925267944089594195029117053720064887384961282316436553945730980656250530500139072404725442117090767011492619093527960266658194762694757547248741006659932483970258535292509731957626082778497799219687229193804182015859383943689840421259954145994152420911444592118764856826920932436444592234631436222735214177184257315742258986530542331183970609811649285462640121135683959546715852319252099146576724885373206823692387322730034646511310594391794385103966044710671842667639402804109359227117784519034564687155811519275472112967934575605057757725118331380225169014934041871846329043070604276347420858085568075649019888220041662413628359887080151186557682654720905386910941425655135845561060850227869080457870659361999407865558214181976547946358828752625895276366840990445042584015854457728980554400849332018769631244056813462486330863325196625104409843569213926369493024747500533306437068072800582700838112214456525734680010481527108203893668801615303732251899852478736671805736272341593187085450576280034121425980381725705612065468337618194043336198673299963099571425540337344183349228551640460602423421526992788087610231614038978651446269077540140591328455199155690491979998913092941691421943051206445630097867036595608334450539828583529343490378988771902139450666096052813582090569027776924635089248090650473925637728012987196240034689388267875033407828821057703957359562960660931447383371806846649266366822288897750956885852876614769930024311298542092140342973610287737927535870684373758236737055092019750371374883969120724573068292783682417314404868035364539945493357784112798632031384933427566651072569396096192909903285412263083184513160478131792867369137207655514671939472755573790984175166436862601260742434450794011278477773123704461307154419821425656538328001617587637802761788908259348435544406404798995331870464106724358778673746519039228956346972596525599013687296509462658707554411622641397760204456059684519690830477913102410930484488325961228199045354542463161672873948817318497835671382398537292148354179715941002469993898038631868811349910564285373798314476404715750837859500277549910891382351012663491585078655002338299739624699444676270905277530858209946039529937817992975967388341811485764895463506927026025433637773586857517622081223253840207266022843889114058837831335468621090652997978470070827862577448844964893394099060319432587473127518106379676278643929305065570114899432798826967468044644123315076318534303247038215746786366976004536770972436536450043116874960508400062265852713722810550317882871033040115249169816331491541532736566428176144333482846705630437511991615812075882564547057303583302908078430526553518771131939901908462115871599476181846224162304424409357200159159127557625060884639136881635264953456523088459247218934885610103704448266543322961379285971357842200418901860856633812727371740842131588497616353632237902135638349544301785539136562898529221847652869460229338628958131066353453335825195639116042463996820777927402366784049352603557065255485243220462348716849134092836344958928604321356272562443466077644835581917826326307361089106185645849879561897578498763945244884914743148728853097332506600359840508170789663166540196362862801866299942923144665930681986984443000172812367661825488452628548111334463872120222569029303311962178379317161127322653971346163393148535862609460168037954853119453409387091928136888109655625560630728207265585608204659239945172116303579762478391412015933348078925626700083090274280058276486295361646579214813485994414071251718064997535028228076246788519888554820151234485081105407080897391673968505379456849581016796525856654278490783523842165281310392596088553655708767661678364544903020658517579411775537059375937489336300798105691579918724958540449821158567003476323718986394338001756573140654295259648778283784341788087399377900208906989546719631603460505147076232679762484927697547885157573417589888710416579978473343308575313472624771664469950640434911854400899748739566491625152573977500798875729592139277167089048326985012624206057309616626046398411530185814290925541316518399505724973871431529457457680612979967091883626261614296678286722269720126757502401326935267544861319165150470777726700516301509184530693272903837730061370291451251065131194728025636316284384878183476373956273340847513806173037210798670891433221961187484992672239606850638289901145257799458976337997950514812168788423787892613183409266513625777518106632788169794090478263440452148456264010554899282553990770842465727346178952737994329314959215088488774878691155480502644668989826750232912148528633824758373951911781621613208950097871544148037017513728107504147525115117314694893785918709202219114331258639166718975607615672591838376068470330366899559672669027307505798941493482583655927181045609567512393402897297076418293464921253580377968672834088830350561484069405709053246509410522291379536419133879124028027412397504275297506030716003860624734706401108855584020678948924873270078894913461052214556362798547828375206836358067830524100624643467176736632503835801380765235789189414800879138562524229383745857429511043822124043509874115364317396552967474754403850350940969333201997157284160142584815962858900262604680127210800112775974085880491740000517121759737949423764872128785436924985527966402580471906717698856324123789103019854817518783111278316409642823930451456624875962437951770492372298805403306927679514325024017747499855983998852161649612070123698519989282051664281666234511338767743106273853472677950084906273532372452343173901485884259317478124539328314656495630433056313958170216615493183050038543613731681378527774206238371330891631848708849130900181495761358149654955765273892879856829153589771470014711526289573355768502868640817241107184562874393739002422693771606503236327815001030769669918096862697799433656881770778412324639366210399452202726745780904248570626602365300529160682988039838519489154587921343963156898922488193496600076886992321762862549039591621982896003968434250867412681797562382997818244531586057219862454315145649921568581890182489852714540231711450956596624058475432644297346377584687621476872435737335114457074597291367348575361613058302203394933581512948194866396115925822040638109134851262161083088767050092975511231136316045563205960125233527987232577857244347578741083607562587146218753521623973427401826352676335491567977941657597652216991946497334638019988163287815331675640864382931157199487393377233848621931813330675021794605973603540947449988237802287868727389512304808017746401932555593812948876030557993188796135508165532424376610546416511407276236286983418101080374712572535720707585808970193382559678591732376454113125706596544953988961625014715345218201203677217449849347065922899913694250734022506955622281919174100422361405663700216364975381254139206029795330716625645619079537307991142783860925137148754781168075911198689846777316104805169526514308147823397294997353262854948913280560806188701697868989220815616278768615667053016344279989878993587799241568374845397858187948597116667381983940991503139557688984010537976948031284867284245626172362715318716355245361566160389996201861396696714633079569909054459085201018112734519082352538589728011532076258686443072396681158723349772893233579938091391413509659643285459301583880819243154185709381013048215969718750325173688406371403246855174091148210004255879451877660888440756831380046949196153386557102275764800865052080396483242822475717313085720726294232949615612637040862333653401548850714505797204232855359108572439956364963295304305962959708103316295227758474467140049601826614851448816638070633897787843511507201243451642149637310595656608756339235482619501890617289468775282624206538454342038716244671398549995700597069034831099845158421141328338518005008091491162175249948076822367215002289229700545844303400592435668576770008771816178764724759329961544369189886380695938091199126456671301685793131259856199958146991676165781977263804683377268789589049402278313610805929020736017109699142833687888594478991814586129220715685750955303515938881411493645248112213613130098591824982223672315374705603536538170877518927175990248407063523941855766828351860593068248291184114101893818955038509193397043795945472293170173210599345682630233857812501103762131016329796648228839159564863201601456174141394202064189422198373504246336370218969522358304878281002555057309512494762498141223056416812863599739940360275307622381645123389113582966387729690496100552863341841610708906915000443733523198107571881246790067867079144026294095600519835891066795456359879583264938733842550952655197081104256287709498578936907981786580038558695767677907038273185321169333216855425617858588289860737090256040639156432539122769094814409859416030063181931148437760812696032622052896816099220387667741303810178684125871180478002509044700761078477814408486596574728609138417280980703454109097320950834512728902823843512431404730495240664698091575560081390607630082853193221262427385278732550598086622288543056589127329918518893635995742880704047264322835129130601003892462607722858081505315703555310904649909452964869894235914323558509665813108210582046317453834542042101131783589403481428015409606983744184935723772961766724368226718035272391597562198090150531549213598712731802944498022844663456383305911498522210502484567647246990384583930018654744921128211891163177776873610282404267874375786840121555338687288323983878414168723481222903482590344509517953261601600544477338145802513468251297555994982746456787726749245479289355841556117765937984094550493469271080263974189119333847078673076250954069693221716139217199018309097634647151477347380214286018476900121283218938755703762608639901277834355223811771769935781785261968191450155350713024192135047566041440606870434315157502249769161323814626998099960346864099823857137787994015138677016695897026695274533602105143268133294379038710613037941552327779409751613528287299305663208630443643486477097499815040477400328157012921158601346122006856815422366662614356541605694874538095624591396865180749631707901614153914024080939283172056371301218175930454959868990475835856862651005337721122668278067937775111322049005817381278731210572566950979681087888979400120027761727452647143855255058088883730920901569906315205742870770974198216585320776939293328281595993016053558156565920143313446026760460057952244083440959133119108884564828352423174394500514706739291852288232680173890323863430557388921204924953837575714444790656288033601322617192763377237356733129717628317059409247760900110857960917544279574643267173799715479472310603724508321249087515022818435788020908260968867127706818499979174931156463225994728331501542635146176015483808803869548799953305450060650645416950694224639193422523594662410779616227911129193948265556697341193755650291998962512661909414167253945041322411811654075681429420647706293177732231818682797102950692583810468080857266641965557657674802078677952592333250039540930844374465407642566394973532237223579538677868135512151853165418898660275551802143305373319679425883316266399566226719237502240369235894651448888346190876036062360075241462931260221369790570481809083974471776548166909900649384116209921584929098721154882531970861265674111051528408708577123894666083693485147948562672230890853985676590249354986298612806969817077686134841048643718460004249638176731337069026035631924950238582935633205724731530485601012517146115343540106771471839818048844461115176160297533125108934762530951649444615228804966161910117942207494962067125317297859323846396892792456059488105737117360792901011050712371576653095237494390088443948082940163433540807348351530069160943149590083205687174195517360494645969179221330624322433145692877958725953076427703409539342635243902404654690115152960030897286588094995612931677408468973670552911057106986896030191853737474370397106350917157236034076791615732100231643528435881482549264572244500019663999660464234499352702920017884087149540143413851259619101241640665992324215499496968540314556208713735468990194315119085957762215296454086584979669364513483568835754316093634000078824897954427770980850140337079900395642550245547671358283597396055896375234335455901780422248502443351795109462155493385039824150593192141333482624811549755426720541574214312732966599315756404100240812229562187090501317400977378805781271319600566375291670612756283568480017038378746614759898533674806177739664221289587738060717548052658050916281939206166694971234610635185866936928285951109555679869982454607805268747611041030209637107526550800929345560266511766299805789795074201631374738423631546318814712206321768946927701727472906883385833791101096175629519409379768096438195844790202623280945868114127620801787546518539432212517065750807229443511947589603267280324397934081471653574899920339600765804794168489323446895728044468548581918073293478869506083011744140477354459393777778923666452497380230859051182221949615179424576319728700863201320915231656952110886690666933481208701639478732677563631903141261987537209284508360748139444830747434325519363732791445946397342637230333682380275581970701096617719891848574338609565777734208414247428602119238087622824619306989757898287872819454402254670301513467145620809803718445981923038353192096034609955829019199806984001591487864150930665635653973504647282186448810973032006462029325447028875256557052661500915364919360769657587729453472564481106231395016983161694377924658043560362538345199585058420980182711688897957618836440117190188715732842648005270540443219898403195764058765656257470984509030703236454018070335520714723599133319840638100331797691429938969933105627539365389800897054275719088205499736288825301487731666180237719125441015810670791729361492352850786485852564525131453323648436066426001115773051728326632520464378304482532800840238983203366696733382370020693142571807502218837050434397395932785299035412458928993950389005515563626144222568906504707288959248005384331241697402718433091498840520760314133649668794783078833800408666293269257953969660886854928813831693078500089672839120055338722530711810030474374771700643201335264309680313263635008740814122791171772915418769547818508488489029859924538846591522754278188442072239660591355185330341773909187307908694912306861486468579010428408824793870704219974582555220763045795841647436073969064248861151684697838498176645555838291932563664987334750170285403575600963280503226256136641995049660688072248628852391226860381059919941033992929509381528166511876740262596698461541317169446368119150887019487589416532268879100889700126396906987262510064991933423257257686568957829605904684982758203922687977212090317878524839676401246229680439741933611019265297144795762550345616929100442497229978826622640623370117578648481454852795261493474936298984589187068195313423423448238034458433451775943781487805792988928606358983767798528642455007944540655307137408708500674152965627264422022825590771373462229714259921996135874814434499440660880273446258675755026163924558290436704501685911134285040616909563746568333928100632766039172264819754414243727542617224537189862310345493370078511628135559131962772361752399049736751819917495991215580582429458494483943040972954283449784012057498522507340694731071864433648330470775817153360051587403763108499060883180174931619559662743958683831103008575176107284302229292733340944763963475073791255626208518100980207107501013097300461052666788588620849312202561497643692946098722035556854553571880970654388637976825493300545562875464137725801198058718944242097177476438878816781645946278307101566373097317833706036523314351336902426385152706006643518005329215980123536293668144140566822010718916108317166116798763975876899722930439959530568241608643445802281703385046756631113200887965475894742354717149797060088330006995513298705809278550334230385830901120264615631053516979106347173567769294838318435498529787090823798890225443055866659031829322635675684985392346473400795154105934130885479720480100250357034312465103966227241841247651214350462070384114357656599296455033775444529954778887019413488311768998890106118231796607241900777004657668788679879260632115634141488885486366291679810177026184212859211427933339547426784067524653447055796354354317897440369139034366219089640886124349240238128849367355544994057564360955820537221281084864977271733947485056865472683350865651182211704423451804468607726178350056120831839491500469954582944060687316072718135286898372040824354603021274400039247195450193740052754200497066875523651225476849748415010972944995511077948622677534238000933793502848284612392868329101759655589760658961221130342200027508122952034489292243077721299632285526678822387172584228933767854719142843884260354272614135699383771972587501611058727671500814996596498975775155103567552661896962625292350404223976620685548749262060247955720984135350139450073888662600625231480909789120489625277490038780541400240740751121052522845856129856088625390772218124083478501081008199091374063964642217000787873982975756348509742838090544097014480926447554875406544718053070693662087173380402597939124007230633710835877077442434918899727499054054880280840979881247088069864639669020984000322838691826547299599697969063709708866471386029239346044049510876578250489977103120320742571710141314037363229020728933492623551968487946447376563349417083096484187150675684450390221731014120801254756011252571357805360049717343012101250496974872654247498359245308957544813632506971310392549850810224007648355427910167379758603699896716843582182808239563403743952241265796211655492552189735134464869352500283009398968267503609062626378860127470255988442317010467484362653909103400982583539607072870476443078833581637660054118034694431145371088132586297155803798909855867047430775922130615687260801697203863861703921918259497908203340091427299735273425326505796065664384940144397526505187340240818822474916164363559269090446616008298520037796632148020397077671953176902885403821389100495495962425613199963156360040546551910420018342216919421314890522835452096206869397253828780369709002404424926659536540803406837127182063378996634387251369061249933320326414656662192382922915893528284621453813988113287823946848069981270236885175561128064817606834043978347908316530180002464886573199698666660825880931892158140168582453611415795852459306230129536779505464824807116377461743238394029966465886834830187822252643622137479091019146394826853896692745622018670843643133368181553187226981309562803389672754287831872037071093128871665893264985073386194931720665900498193235316265963010515152020796226164312110120020848318232073774036049353812671530338672618974860855411212522670051023449501094220664993582152508065470696351599195306515511619371552224693711150687457129736051034658184133163717536245829912840888128650245963198646968548306049383034140365342430756785797467558736409456131496737312771654645068149267759165929115793036293024499185549646952383455070632946372174813115111829224165566437205262238121914043943157764065088970127852226275713616469256249368158430934866608464368721065342859922399962177247927732558898650896454349335487542645133323907022171422247178237146339564578531696117554599245634976450502120490787443249605924227425081854849880078885458735719042444000993987071362563842216277530885824007679948117419204743066208859718894762351586883959979655413748624057529198049815519481989128356544375801164183720060508956709261031958205273245609488417460659639128712722762152805294069778938075183688240975801260429850125929789257002492952678725304841328966297215236546499568377900880765574171739180566316739022204578368269639364945666260488453001747182676856386253942665459936453512404851882685026429512494808764651815280211026325774555043064497360446267977747190105396954135643045162360304614993312024098164014050667406743558313403578364970555943830865508085829450318230217614437871548981842003666443091838155891422307555031107702568993720771830663767082842068025305469787027486419504667329505544468986622919671246342143484922778128509721133751224826086964826758165520077715448285190644119805246849638803779002516988838306142273874384339202486235770139097735138016282716343623863649286206030247501485719604594146167754785919782214632345089964891350210162196499603833262392608478881158489450967620746978599005532216568881547149377854413274191724081386206309956363116608332593691127769900580573427878742246312489918546012923669683565278605218476832748398182551902812745003347818383790450785859455417222587429643272524851408818490424097842829803043648585186733398845439226342466019723350738455431271212895805576850968321583935107920401288993900567223099555560612092190652754080969167923788064100281122108043978238333600019330609240818305998401859007690982910655707980981354732612017432872368023774882402051757302101697183454757953521728257070945581004788568590554774015432420902375475297603258952922371510433687927262283988239435971621700831308595421625156086410519740931051989612580701821445396291296989084399508768405993584579154215315113605243135892350277904486678952854620209836550004902001427245223466805545505632919229249063599252530260767627996421519852962034046895647172876025598153461279804810191283063783561500708271333671307957761259508721162977849203356098594466797740555065614082141629467855551587025938775092414131501579361926484323956134220640388840929850793897567426382731266214362239392242041453396784386656361381453296639952247449193704770817829918440605134528308173470345538232336570629308895670846046256706531919571711164766164491085469473042107111294569747317546727007056358074962185874276291092558989778121883704363590197094644438473070696777783790733321804736603247380725192442323912205667131927664968858257557500611711337378014922504730994707422829465015034973418018244522701527235914311301524666490685066250217017954204914528119222686592772440766608567155656851521854049425523004572679103236706663729810533474298214388318580207525224110682275911586325562506919230327546643955776668964437594656286457751316469427517067271426329838760028083891274163888569059033348339628761777321308932414317144109109894630507154261618998216672610023379527641329115970409633729490928651554149803577716667380480044394010194934040814804043346711732824484157041662532871768670801940094036214968067069193494879450873944789454356984371244452971676215949624697446248785828604296904083208757952728966812966649487760069938125926904956603332093536427345729354987589246896097618149532327451898896206490382889288394339183101184076623861044697345974721614854694736347188639800932863778102071763129476821030662139074286899291535763174545898716855441354032873794284729010048606512449194932052658210470766346099870197966987544552866900891294861838705690241645652630752375370972331579136418939294073392413708351683470198299521697789496505660825420651589836641811871587598044808871339196958215368204676576638711144685559274059819155843300787932254432307205926014540426664281487280543669640578463057158743313875755611571540666326278783144467760614679595808280344391718993886913285018169796716683585660917380269792562307250074956756889119679580316082989442190788475957681184794611972349106769480880048573605092404557357198546461183669988937529384528499083177722440337116309948972253953795854629053575445046157741760899855173772963624669956226697323773193292897860091326351582664132975068066078441779107299749805857141672229459093021123751835345231314909760266245878328595332341033734019947186589927653654269411869920400668101129941745107720183905129390576473467646837977437176813886615336564322491388700909330802423957585866143533783261298833372151350416467743665209349779964619004339729199012655547279548558120704674149841115118986410497770380176862657611232301106012780329828738549637729817201411593675571747743810800537651737677551487200675950047340529219011230706806000308364453089606068991814782933200732563368846227438845790350192192609991962152152741898952232924244335193556911297952383692190202807414587934691400965503315272249838207199318027427687215455353091486885897160753876885500241755906251297684522050264444967733343212363203140637731256843824038640734791403945491195849996826050607007338236432422074464509715855356514133387509095593898859284647314106511225488192844342131435551578503433779080066589774603130564584128610711474865708167852513467207855659344038723558147055570994358652423653398129097901608608734547550678191640730282756730228217791020979420329835604278138307682178096557238600666504109352289627934708172063720576380307506380984730090108772300139256487105508972148820906853801881900994311145360532488738195479626311063158058503327888022240761757488558516613595171806103480705493250481276725560452791489756315939546468703148000639917309133873892428345501448343997000163985211743836313407750390927986817422982233800884477479081221203663706822074839111298425864237389223231522656213649456769344189384140728184995929968925803738317000225860403558603947781157644866965299537929351019066261744827016988637100507775783409344545228982191227814083173958499083918058919494243706354782664103098259905189359042497560530877960714626207579813571761996786734487990564962975179917445740346921689947000892956544630837680019409967159713498753490941836500141668387374853442050761759305801695117566185249162892596681231069568260418524666363733928367667004975678168998282549037059753392394023605231656262460470169957511112862890554583414211848224146120009417452040632984117711483232952858129561747589554457168644560286215965279423509368114665863371690110016213963621041722095904182553278051208557280186010300487054001572153061749548474859335956946677711479191501812783296439124335152137333094589854996556425256644953584753076609810649970612088646378862191596332759629378842044196865212772833765777674248467471480131896812027716262981742694240337573554627270525420862901660230986362367601100362444873929081457055627379217572920471165623695661826436348590729245124668277831595035540651498910987942637953434955869686429287784222166823310352846274318755434931057785373561582621372395944689650654124185356016238839805950192591982702896531397172844331234176904564698415604981765762024036459174529886894629656897574004701165253679696788996477102427154767448403753705027455129278118870438998539700527467566761746891278267498705323619324518078498236474488065661849449502194518369319969224000971764469721186984414217272966867522563955186610377373655756674043213765750816921435801357539480565319820276170268720279710964503612837909369433571774680807967247076709265123025409683391975084149488412580848647244854313700652805133459858312711659877261116978330179472132368466698520609803602431264557774345456600755464675204779927863477581743316400602257902652908376305739304815704907260798465934440098360581123145647386595988431685971459204045231991677913557045381933417225372135647324602649129342610034717848139680397352222491286043146082603599365728458189258916458651626795533050560347107474943071132615740643501287772352518740473495918475566155273378614672089412251411033575123575865380671021301872096098944009635763661882999844272498270947761272442877473955439415696051787289736419410053977327461675233752280208598729604882608476259161851616003186121718145542560711008373856377258229788060489900129067382281132674607488333787632276079167122995735792247802390148706043952901865101696981201898058989834983170703523560587831982137152812119146428949008530778068452904234666450204500269338937283831946477587292495580828153935755138747649554385689738589468597220392763326941239954560269052144999819626983847921344685363969449540696682205279995972253998430840331457234657382696799127446936773667974003282766192669433282749127510088263346645627642313667174403292041328006542689880976168652151774957808641965263006558663234305157951801039509126196368392023817910511793894156138608362203534889341503175997635832927351995379234246789438084044018657610833679236908810431428460559807482514433318448565454360156562550530687549499801121802705714834464948471766253312891315024223513747841325918013331183356252518237637723585724480668889342231247083000411524472647982004470388211018891199405386167380274021770135947524719756463197008906604384458417552755681392851032818719094909359727677283013661811176856967824139231529200371753298889121325088466944426290141488219484082443513810708510795440765223854618060103328093278453063564950802803914732523353579497319134384544996348287335783228958774694793927181049991886415673252318432657138323668198236171083031002297811889337260180949592560148407520292714019412089900700584247723521678639018036096312508386833943084519140269533364884731272392179127697763088617952265239516422987835554675524918320375795791630039209995043286295193695338959757003022435901716235381906767510038809329661595251094241479132130529611132350910630054253316572266118502754211336821013186872948543093167468435473923679092666091869416167927809494477826307971901473755751705647044528943033338488300650458398667423556807902167566863364097942736204482440248004125132886717925395100992662489955769382154479274781434874764388598038923047153639764216759098864107760011853595890903255571744732448561832078324817293709453941749238972330058282763086348598206750915948529729962022643574125194505169748008436696284614657919163725384866974431613426060378875758092133627745224292279278553720507183789272710896525972246639275126822031441143414479490617128924165107341353698665282138770908582591218564175347295872766002738518731003428475568256752159316534150078632588526972778893497764523205324526279133562896546048706715132693612046073301720902055066484551519136805305974010245590153854778836570694175006287165381730675531192649979831815620937694800445977164437393538747824529732979853999592734763584115351513461493300421083921344960031541998283068638020256366617524763566795807735833329406329342340778753904458237146986267719280759479261870326101456733874566683245607679272086993470430635518444908099330557762024630353058320071858492418635856242493369139820352486727391170477693610792977271664513761142139282358185382814655500113585599916948150078795982772824742742337026838765462569185995512404150286329929193809484939736566084347004144097352516600745865561129573752542360506314084413950707487791042154442864837416587904062657087661750412135201116935400751455060325884645881755330212137419674923370676421761868999393059661171794131437576071010464086031663445553684241857461154581508726093190887258346248598938847668128265254271402034827881171620938386212478050774190093784208337749450050573834615713533902377376307547041240012525930180042647632059143159697851212308402391042658189149215832235010617435229427312432505505421884700393874279796977442361479791010928521045524125154307899511236681178173255919035053773183768287612091462307177588285897791349466891776580557001403619817778867217393843656193711174832795471729337959092700858786485545299183977904559292939017581900475342586701347397752823251173905988377372102877826916213643795168440673238344391191865253346668683090263066646348127487358757559214956439205435719251762542389535088708602565919245464752737175683850671557544461315759622636456871578078466724311763190142402733915155093652765351969475896538527667477625580782039072117799996031508237802890299700947485203819954588481195783513953598717655738825697529880010484893035691343391344060817556569126897009404853814263723031500199082842617804311712519204634675419973298157589982352912857609158746287343003780584785635898897660095571423336666984590467852365739439690878554282911939523260102050106054830587263174092883651419040583040051967012683095030523904013601381521852713338121587238996314231271731633457272367264976876697236263301403741390277060474003545244989644645081342904943564725855720486230385405668517524026061800855869570310135607440059274538779921366178330153506681152896376668818949765474567625397692101761078066630777981083980764219832920328042457990040991187741384132287124645663058682757585721990131608680965473027902720207690888106453631921227204669204499737590304024613662291259581645942658135542806029099923738698517019913037220666504090714818839424496792027832651969142702658728274688822491034139496825588718088647504048527482847037484480204632256755820814137956458106235762230793656943773798868395094935934368933270290241135316067089082026619708887588410563076999020549472505431888104612198185220470560638470225823379125898630335283879529077763647158537660573581362436032609494195281724723117745201744932940710925559289768318156187021622420646445467736911279608054732462181721497364072025697101722606842996151288824512195646014823346511757154115322419686112036164957925373629200556117847075131944607896140564083844388961922512592084246853843945970866797660350794698096328272064356534209593672662142052868079489187835224275271521233359212519010973864434491916199182390021383704302753101369882818839571237786546307901715294106091741359453017166790762008245977158199273002432004880396916534658085518728930156386842361037989593584121210222296285105157253260180043489603908962422008989315104399244730101586606448594715353362829110764946457487304706721979528281680810061048073735905224835689761868078921747380138726974531239708084758920488135608726217825733288139764052654709429387509932823986406204118768992901108682643120362031084072334471555501591977320541748794868307785564153281146922576934189250029701695597600702883713035397773883653290741362456932241449723358119502172209346683213732884796917889482653305046365329989639797362477762254038504198271636937645824596462649061341343767629931558875050566101248485181256536472645643187323867211509658566543941534085780361460387266091085023982728438801040650430392685512132701854765017392934489792339137110141189740630266298265191346945697567775164218331337341364302841220182530183153217784111512957175564709690881546162215778349839173053673655145746491246764225720675685004960841762262718485628418680869163454341915664567688864176744612001851671806119589674941809934972384432622844734743020990410482317551939761617880365389927974029807814003191309679616570155120374603632651006130561752350454117576839024801910728391922726792514500840593394034739305319084354098084470888239077175345271715543398355050527245847148759319209739970848364076218291154088590311638502180220401345313668785841501667561219262382901614594874764682236225364074501786715122600816427675756536793708529717358526500716000958543762470233886284494038447961842972000090969774051620083487762616626594186166116763525482706258579341585402537344961903644261590694828274255456103296561701594862890157043155330438136615168881358484828186810690890999982816827422147281982572201530566250180755058907649715766671873136840556474164337823023088946660445747220701754803025324726211331336649574656342931217818816362505127387825863741506088934612178212666079282666759334065823468052998234993310210332321756409812387359446299107162037085749855884599527468369017896745811093676956777064609894431703804090904004449999965328146101172309828447119726931752641387508813687807199041400871072004890197774287193599426935645803436814670866522407690568142342836659644851282316886214142054576647338874757843590311500289078107034762508815650469808777317241447827732111405249523520735355359475675718260102918742241597179495949054350985461855129824168064421542182508924352524760599668920552152296697960446292053732041326722702800074424514945019483415058773143987710946232672770642851275936538376822291398168294644425075373913287322305987818411529067779885684713989030707836680960256608407277589363488292409711197914131957234520061972237212635322591096567694009850731253370583059830162433850299128418572766811940376608944614900378619411503154553928804772970420061338267571563832952737460754122857927352095513280356362371836131442755252563832679935001295264009178089161687248403761031831427498293464207510121668134191243396977477176982759812903280125894214552973433733556802894040551680350327179914173947055625297872527218549022607147187941421972344932514487928625594754809208438335440301686992333602846071294033048351955948415934155711756021859706133150079802743669071590129160224388826492906586009870904695459721983045651681120797136956808667426735179684990953810847660456856300226237504985076919942285263561870305781382612220188185956649962239745418583359831602510426635091004313875464163024155705819031332383053784006599619831423678734166673138593573432077332891406716004195604110879850294717690851865530858987600044472596021190784698310843002038378522560393643160683816459534379827384964450314412981775999139977159873146222566915072090617153665140103441074506196805343002560176990632146935921472819260259229687119926446792573448421227086423357318809246572689811162097724518394266048792552964740512401541771735775419670404049205419761166915844524084586370870575178967669551972561314424510672233327762084689421342154806764785252933036831543572100555894660733142021368358098697956492531244460400029236066428393816530087050140632528575378576448963800181967705755406752627216824516818249645420214132578673348406602855898098537877744677005603257474526082908756880663079453015151902317390549506993789935617525758395141405400149145659533863063388474213440934472430257291097704140755477532600268522439545661669250088146272251569696711083071629728741252289291856383177061508733384055254168408952528556606470309996382069481474182041800190283954990445262286285370583859454640331620466769916209240038089335411982047829528392979632252658372610958366083877335785314661836914872226403912857438597610009068884600483496163794209959913418933901554616285861737773609180016896265988499446414416145254295703708613801690546063683537517105543234714143812815729083454600976174001185054386995691768018276566725088169357599591802640978646521339062931990745470032333849892220148980608916655727685849972035776598077731341719091015523229675279847899677121448122733334250903359595119810202930118991567639028796016665944152043227024035088060227924984354045997841790948452802268253028014386939265677212748358615920174022340272681720576978566427607111521027263485248310040664895659309486231797255564560154596443088252132601918561431296725686644694015804902013191086109126595518962068432323549382972398419048539321449248386161463620018374473609292719709155779281183060723666537353445796525538236348845931463148517376526611105883970534349007258684730351150722066482583266187523924264511814223637554673126181585497220660799245417271373808754850471837020708313372177805921703118438214293640078294574324978435454311239608613486029492971047105891462397997158457014282438836988149213877022028811496758331005394818961366992902237949026427720191357542357174603128960884095774304034027588591453011720208127380067325410514975947582923051657009991404825845313892127010829874399754207890052868658133813278857175533760453478993975569614473142494362290930085471920288473441637534406232143827709046053691642604155711885074441780933852058241196092478520693581228512936498000643927302639773884203756394293777342492479766473861573641427662388739767975401659337287748467417950034968696553463848805973704457182633052335659973494961109814179565458712330346483772006793801303796048091198474518157717187884051410170650514881537048612384904093511722907084357988813836135983125416933456812075975580317076127068016459730895939549037047028530438245177173320587431288634910149957763950232536612421196181804552622021757467819942676658780626901222541272207938404318476669081231728344731841357843361798928900119082112889104732243816898472181511715222860029107315506534625202101735759908025458721431388921341166917668088959360149453777220784498798043796162018363828897890329942573101936168813715423413643070348668830537842039272634399417528522234853013374125433267056322891396335393702726869299848416679117838144064753898536127459350392834236935287980781054323198224700124437210675499000388837564880130381485409141613457473435606791496289937307726326366197964324443880647032210244838155340192152568333793949756263006268490457355281597744947036071831947750982466592103576751887018913160544317518543862876372673294901987909127785004169477505600345114254900251976443545102496062777509188001910666869353850417372655691060259430179172703942514279036037342162157521371921684711570799455743066537414668500846040744756325508021001053772720106051152034836520593322758986531205651617896995772502282011309703138001571669725283307112934509148517996641032532728475565452537064109991209560155287205352976000359695372403421648769285406988784155848886529157667175329769491142394097065664978001889425064875248864454034000644174223780084157232608541888076809280317705630315921988141117964778593469925010188593694428299192946084005013373424713705045096987511990697836148453506382525124494826609677703166927905830557991917186337453949885910665765014014509994682645510781806875401300796504518131685778401886164167216908355844172690476578151349921327616933514390391846816133471756368921573073294677174384603000268738579046054381217218360314005466967044764168881026233450182386140529092662446058859788655685340197959019327271281563078332097355184476152441541340517964989171045979114112906526124568090016140132917133380142015679274975916446475197394793877032607197337671063695181851023003147040509817229070997451177799173395297561980682780068632420451238283081278937511568077063015504021753454174505371371198280116417935000370363275571542785043550660133511436961015622403626684978152327510160773851794618961333407703182152803584989642826858158328796781710539591379409443686045215966853911842507613192325923688189568215261717182984060314813412962757386366473079010512509996380472980176168244036035869779231458436104158744335011709534172756231880225594854708238504456192270563793384684051279873219099009787120565858060921937669097113219555156510172314329431250986153876957693501338880810642360534270682446798367226820070931806308809012247377587171387196199892473553834856448596375837827289127167429640481908138988964627268257415011120515724046956275066135517754277834010105194623908101553561834174952627018496011592741806950348360743739309136690355783040815344598536370600395615807283216454452409007932070822092285174773958242885031819761262865192351104341961466694811541350902886596894692325076789250545615277333338112180792839435958219521459011916152207673791987761593828825286655436787797898576264949233358940734506156130598483627638102934097643483403680357048649476357033437031686032084892466255539392295472602632330273610214831090129486541251963841493550772023561170270298796497822417911556280079275868224175218577083777978499384170450506101337380480524125799656172145122736671103768820167156425284259403765203629743391876681202693591368821911893146154582646038904904873295239362032275515374769256719430144460605279803998751827404420072572677125989112892491355704576312192134751697224796130260036009793571591074211035337614573548692917936998474015980061511799385509148986317272978415655099188119685216818678740002909258394913610366432400018859412890613198967539194843675476205778780744955184691449376383356301469960686655938194669168594922983623447993811414067507492907712324153976140882828807990628412863311841700261383689141429768600813701751538975575272707012558765625356576934811026958523790810818470854603731500703839322158720671159449473645793471826923957034832161241871668587593340989218095107559811258582271809088206849704701145173356592513906191144849411467426352854094232573690855953329022594558641529780099587217570780374278727153981106105889531175519225678566222415980740163943552414764439819855226937005094791653988535403948318960713620626558355336210041417926849240863816417919212080423659391462418056758118633985671147603535207269726488790144385516842186079732199184899640798580459641149140767660396865740284763943495546507281059447559923140556171852922628851112150044646746389973920946596800487104979076763892655808750367442323894774562953722458347845958467955816349131897759585939519514246393565615136901136386587100222387286350721897640446427570350802585893771020908434587222180740741507150937157693729352155486516419550230542542630368808559350597130057218559254410650419514499979533125512671245772368981506496502829747413716767321462327690602896369242401080685656566834220693277069559633876788450189805174580709929970921136582954189413133300257983473242373544228039974369625107426195327938110163396768557994469566590193123073552434395504794554609601703685133708469151340771689106251883624355633562575837105302792623991764137184196438711153124709856826661962758731265927685044982199112896558127265704080667397896513811362604126643831583667028782473853442711270340805954489900370953296378271668128434075472563532883949744663604399609067675587486238434518027616869233195597130687981717965234251198317377481953650817381097556587163709466497688972323187812109526779298901429570442995339972997408399035296893422480462188974837710481566360040077346492017777847404340482729226634067889102952141398934680247506895867163921269555668176380844068573309531778970726023822554848639392071671756411566121390129862624772065073557317803493491740972370267621940614923502612768255716151606588260437802629772463389273074493697519462702065972201974242092010605737255562444088272745754893451241802672099726123256251048232064062354720126195257867852063451616273354371950578559159197898835116288960184893107862372901361009388921933561393855274114663501762249833137839962797374958450788720229605627878925184837478364796452490538389054903110576318423741589468027780945453278620818889863089425758592880449032052232985613412466688634536499583691771779726005231702008119119413244249912024885771794576465122029828967546160798243695107400863165340490856371206457133008682062054165993557316231041325136116751471096696227492946480743846180222292871434702928759265109589674997856266700226814458598123800656135550614791695856221004309966548014448464701185393156383497045988199733499130756617148614966749301952108998386077679930423501914346566268074574151658898068895733106601995013049532898609962614274640529521931803510167309037675174079186756640033004986912428098084977947081843028519144290570215303799798542258199917802440808014383453982591337970107283806549574030214945015391383409918425216710064510896576470440218932212687125679397231901995864990086290176975366571532405855959657785957962358750517707747469844700954114279383831970170879792802173263090319694686234200021696220713968886336735848047587456484474138292598365395669704470027939363764116805600178161728190362831700997230390416033205711116067014332073753229976877178764502494350414870940434846733828089667885655656599038277843220452179940224190392826411717569392280989551314610489207139869442539060672465959299407662369505016814090819528789284007888987691160020420767908694174626986337910870115235300216587571463046198414475250088426510907912348284938406650796194504772960185888757732982067674506718843989995342914218499022117284597082374442961281071116556056870300968314858368990167664409546111437342758797225958762854789302000159234065802950551986566567029136728529158574944549068147310862859117225336748125996319620621498284114757409641998801353845658762648225858615207824479719607989076612181319182865166364664926549667992896612490081179648743482301608177336576677707914425768453799585699908053191507910637355575847768487173533577193653739938796320446506428645607625302001900193447433225269402614967341366205773852675830426922246174085100308347499376679972725648723585911457401942941527963788451673605706306943421856661004040133264176430035096001268304778995830089152993113670387665506186815640193017280258667667486490977884486056947851071523239239175275557140808991985337999658105768446640475053472039554303753283462786118709221607055538006839260636642068996432682228837559819710246115753857495796979001642137341507444939324936684127802488655347842603285009484840884459042938001911991954292312488200524326564280303322458514410460495301290384918093570773403301256563140963730723643733238920352894103360434010145279349083298363736190962604439192868662969881899222521377597334633053361931801354798152667011281133324405288944112727641739808048858124244251782609430291309864015340582512316043242078585972315439387586396712863246611188476132425447035667376632032155894527934846175172725924336069201573644597451756037342002545063694561361593951969231619517510489852850207610633968200618102227549210861139542348734117890450887835174237816475098739807841720664158369457182231379766970229233557254746550548245962077369130446500567996417331833024671630526649737658994056987019362499483882191086034011475926016201462610543617994733619808735644079557492837769538552207184315691169304705976533007921967034604222307982146405790847145657298942986273468771078186235098730859019812522918602497780147414681191393625102018059817152052235226877828575259834479241691840919241389877993961537390480383289139372289748072987864753745274978451877156400742974332311794631582073513073976005627293745898347977158285675043104371847675232905436180069501595320213311439362564813929418385546756849231707518176228490803633400393466791812561061618664278249918004361475211503139665080311728537232038950699251307523029327784074957157188113554100512532553245309039152889521570092607155152136094571684754109142247648706392551565831504036092574042670669014972349573437656230543716457424006047846635282724610272204165406560362511901767166592304243272773216400900383765174298362764038796212099948126084793765503958284941653078986654781138147954466486063923818945996160886654594915099280384103095088873668147133837169774831130171638016556199346258762029646017170716283055818305266885653792871327709146803584442639560239284735182830128831512113058453325642295308452767341505610730621899749767979310023919260635639800526515997497437508534959795170009697227559324864131121637725173382649603566573700959586888808970023140827259610955621908950580553077916819086677467039438159088280031723185140915334225947584694963447676468310409451498025346304707073753571077714653417330130754529690372607873029062703416908815120281018675030847950853906708079132449788375402727999309326897710055498437333662478813326512873111214572270772966919043443990419721439979724707042045320945612169672014470079110388613451764709496036281218026444068867819892294316663391489122822134991559311028924342835816889088603487829321541330581574087982534862398300609061016305039540383847898362988156635823631612803620140253567972065161590497485602979645068553689596084093063268217268629986506234900595162129632599174508184414656552646175657219420817844014231039507778227995285204660068917680727892126438777290884640486663678139781203681830912630170010305734198448337843417468155231977503573391663046052941465000078860993821580984965689723721344167786847969977541973975563753822644565482724798974853973668345778122182617749580263624144689266342533228145012396016096415820716869649373431668913183429505872374338965106451981342133467311435906026630087578103098573561920906049774474288372598214317721943425057380968793175234977977864061171438482651463338927075874103433408518028284878882313787514024298714215772166610571299987049684981869558796556141494630752662474219554514027078951042302193311650972530380936266886179130393003499416849877093901732651113334083035747050682597703588488715661041965265946964182422368731718322305231696820288647185490869188194291688434426871863622472364565934400428092051020536997897863639491777173712626900431840157145629617599727452767521170312537579266730834595942097541806415660187475201792969016766111394383235051771523517782445612669116098613935091730196295737131684247208903072435617404302266979631263787122451001752696207263949430775842973614031504818898222848700833059290878984224951196013426621910667076807806998126831166865531543199806433041357482843637824534524187552597457887266964951905145547164881623322466489673927826219120010494325588935690143642509022164589301540759729089756496438385144755463454035263862950885102943392548442089840196227872791552781611472885466829656788882785749222379971273176895235835581040934870539626061231446812057680328669957785289105359441524462451070273730918910310929360724857317517179513807776492370861135491572758523376589695910689230531263429268355174430983172296863976901126000650216030912526831085797805212635205350560940787627242113948977458791639088013774159546986168889114474720504193545671337976732737932096781345053123141473889980702890927801907692820476929562479513684525652571808181228439149092773665349716581247310411702320052291946463477511723284227883685850379916475312629592293474491544018123827215953549621619977485980837207680100222974448728750125783127690240794021528806846179635367864049559147613304695038593815131876483159597580194477092312172366617827347881111263712035238497678622227497636435750769354455636969476274184270496717130367744712734482564772127372727567512878581064022197092192053537679858209068528488635969632147850993778317570870938733868703715006257218210311619485158138013862933754240184928564886043974684293994016661336283086964836141703419656536871905417729073114706022626603270616939221002199686736594344871159267472564395240626863196026830830347278130241319519496441612469260225520777796951324436744595382278484043919871676077828481935957532064395984116296560235618385005816188299742271777955779698417608698637238997443566648166135180861131600200153961930874161033387697431024144013439698086231580727891163930664455235164885913478522893095211233968389936236000191701040931318952611789727169995613387675365366842864727134481402997284151005115656237804687675719235981412390700798832870627510402761867081425666815654994467437221960575049933491802944615958974881161529190024996597133558471918676024318594006465793179415807131770715891919932870391490886777188397354210552983414077455772659127041703730904429069840103397693883774163709444428240715425258774359130678416008364556630570993405568532623372947039613002431371262887830801295608787849828243524814392388212495410725318844422977878521741174203204228073014081710451043671956128319993526804837509610208257374833968308975811578430898296635657389765729547705053559868802887372509642599081988795697734935388714208381767115800507040152833079088112507365201940080216621668130992195771606526782035200940869951691583169198933722003650000985356516914559886202219665194376379619952551199039219598918974108243531313960145240580526643490212646317951603953129255615238303861040389708240946468986662644343026872943689072972710329400421381078097874784847407808987677567844306124592625333161125002975678865938113504550238554217544136004968306893004570020792667531906262306056050274315323984970818729299592021089668128458841830779510325511396977940876980569838116526160514491749845095492775847859604173161021345042074341311589388530226284951945831466519461196700842247571335981693701576133300215214030643037232066250024612066643099531812389987805099419145768021415410992802526243015599229615183071851234792731907719643303186294499563472217069907876828421602440830325538109907638698711634542070861755037095883498995142681343687242682808953748831877142013864705250462025518043346633724403661570996450712609582292155005781607620468480884377621734892521469000890361008163824537611729908567821857295576216598700003193423313570108946553153801860832066274717007215012932295944360175684761148591923785731045380039572785404689251593241536206189953430261179970609389132629687955372218584516564212020893089419154725510773637879729954947727714190222397278978456458511879963042522254008261382893744286661957987042174888384269225474922098583552561241061355981832195543209676182486162989374966640997928662003951738275396846508597168790326531540580550419282232962573367180956933811839616030067674877305305193345221870856026583660104826371993941556670609698686188360028178013713619075155715184911609365591920953798731941779303478712707468735206249739862716033003693823328378580519915024916597194019883794947575023402908448250950039265128753411478892133168708422043871250072918809312326891179842518572384708855351507135737823641932199788845361270091118632231990766648134450089377478781528688099848892752276035991881594367348248882590961710112284563125030708731030920800159499883919327921411119497378672139329077445042881440383231256740499924966634870949601543529332119658044010936734007809289583010826289314710125186551387562942763313133426825459789502001371556122613758305476674961706115669454914938059408399146060387676560780737603000769895236572960104830177814525702281744283109966881777680335293837859975074054572028975542960394732081388707000695963466161593997279455143991330069154318057325644036121156262165611655035452684266217262666906895230489934391957670647545368472299514412646836644232858266238768567881771887110299536740350702211753078209214011193338943720022513186472778665772863333686316496219652537816827837344948887294010000090000183171757284107521188890335057172468212021528482252923812226318235308206788141138011990514576318018648487105779790266050739530936084385926126841297840673392422611597393649121963128400389166893057096204181536093563480787892382211294923120137029811323788566877141317655996429793062664140874302119131453908438480288132478558143327722257141950424623857885655766855398487681854432631543086667492575509031991422463211663859824211356368222982696210950520238609665692903479182125946777807987420358865511308891453799622229975141225734685110886448758170406514767402860951448932829865046739624933532009316393439922044735685113187948880476774871869120699241680300067611641928519341886008020018258832069514409383525694483315723482003895950364114383456253121936741534933867079938277593767671074336080443365756420950317949939084235912388983542363046462778051707035265983015001762930187744201589535584658392934106754718086721366733602253474661762345638504011313552221058672881447768036332209906566336826784013844128533329717930340860908880188078164798541164647279059187515276204228116801643489615699218976052707085036218561855748710909944251564186816812996644703675643875419238470957298335885138083892976736421898807692049754757827105700855223698294918281396294126328408569639227924796463640538808006679094245851404523290206904854473953799120894201452126279190756212679796327693003496472186399399254171930881804828845763470353584832805437255531633768954984752137080573580242554607369379143002048141153676015127235329389312865856361820508686603785519481489581113693583302848334481221397136180698120933796504859695540892117510094867112447174368342642973165605889218921006739913793311795707132192579460486648088794908727826048209863606804871495397233926055948978236432102751091011423370563341481486278951098820088946932143751007134610415567769454919827713873244830768644162752252081008205166024950959347636701113856128476906552120945175493497699838120296599013554330836697656103291918915159880131203909880010865378832881702500199347727908314353479181768085993407643400262396883602973105907784916027959150009767371002930060200670544119134305355752092234550613192650592415279540306023730210615759775142728828865360143761892509429327082683034309744258839589482764235418656520160328654376018329635668171323521407237447186082720973568333627124589194363949575999419601909017448668850001969948637175978100756887325455812329858791474187990574750919734523525774390501100246379946681330810704034353025138142871827167390982958047181207422686051604167241542592162710013507995847692428976749092491112110873581507871033390473116181189454806080454698033278348492424202719605134976561506350018398215191407952672155335351922605080563676670723417407515806203893611018536526578211054973673315671553659589425821067104642621584430530380101934472482220421600257975538159433885620408955784298803202872733227832005095784522229403362531395707274903336427069030882656930447656443821850841860856093804733272817600260415363172919691191028113759120788497881362347668897026817774984072224589799126828166343670379077107965345176783674261090375156748606232368990471850744994016291454969732142668672165220864357962611039080401532001239661347188685556802502962418634217171835207452915713362728303816129519703210833659612614373621241348107111942083182372572593900182181829177330155535265504792028574222103129063163993503700921919582874525017211736930120781003610723509847424653424026386815361696759597773027635159137129908897475232441974133494507560430058172371259149923870424903464071762012781395243847686616481381628740152186878436861825751343855557063547103940470274799449466363684336080663164644625342831100543799724049017628759570612244148819893282359047593457064821237140528719068552958844901231762724455144943510105760747391936471515923783942704904377480301031672294552279428825958333270997762243468454004035603192611548266425378599518562094802315818273151023879362699198304053324355152396917552135062337081909740642667952817536546721693879638340031529537671115977448259888818805773419175179799440482568192973951872705579631171216113480280269961930309123083563823040444553744520652245255669005034101888198342550677711509245950747948152342985098846249664266050445089088854199251002731744126696002870813208792934758250923502273074716495688223351205216953107659503972030481937519431856579035839223957694467972609080646274289885415118228982469655853235357600315763293986253399953094461123333156082713913689986035139450925896105551655159482256775321312133850017438271560823242166343310871869454569490010399199746620560552851785968926986969075578221499076324095362649224496433482798681353491372082939174381148300300426321515743130833747249898648407200214907392131487417073143796030658609146349048931683997681539715101251417031588349154134397267947595445777901310340786288920472739417360214133500267342468941203819023861698443455404461934064392892839810542048433193922558537508544084993050833300425769325177409563232216847834756170028824477199682001118767923584156219310952004624237515170153879791478256351908027081156474390571326938984559079037874325374616398481471326426793079555304460628036741762647163148485121100891738555588314993488218399321328539230839840560315254681258976156937224036959595221005107459928026943282408510480961502049021290173015973186856463877222406285204089467691628181065881098025307121248496462871991838776994582352379730465979848097999961536340813874278378438951533936038955281523702932478082527695826086981428183252161210491908809599502990389475726183491604332786426670714391041047831445790822197633231673950428329659554882000273818436391383788037770865513705195154957005474715693433238312779363682713249435594469931201591930551317169110775631454350031819469441151566714983898909690220750153719589546060784466751564381513101410648677527918245464988553412682329088010421095791915020122750016847502976325877044552602808452872776438860601345605010267077862771225989992919747418012860946688699382716725755716570872418976915440978653738456181635198499368584094358165874197064223741205061817226774140082179206309545187837325395625269677604887700441505620222245706333331670251908473959724041818129701521706387847771367002306158195499793128355301559739386396944455792387822819362108031226866448430556150393735704824766636173233274351722350759499572631049743792813617961731841527011976829401569941867820561811152702117702573820008062407425148158234743806631660083181458727307941069350739051341095684605703829958509314197273348605684484669068827696654249351688759983866271473498899938441611937446580072382913909170016920213577548358628774056022748892420615181203233829629035036764028008463245642211228728781949064846723063106955478818890211444307789664230208139863436351168123885806955321412297369554001456578459607078164999414291126251238147174194070735642545157796642743992231890227763178344863779018861713787706214251515289963958072410275271078906826372187917013450934705632347740912425973953593059108622143534567795403287164568584346681964734431627462007183270804472697916689637957877666011529678752518172549304911811019886497316528131161028620585014128721040379157922090417315358523851356815007472645884760986581154446002841442774483482218997710619663120369171456240057834700195012240353934545672636129265221554910899940527027556025352662960665877586546976054133749428017774765118656502509757621297835217341559016908735955962661758728644096610473716063261750211059355495801292494597034595789985305451985154341545969774140264481042729605259920773285697161594255934392457365945194620734312643659354408944300428935527801443971851364959372613254989307296642428053524586608483485964014975829719919242184659564484740056944164087251402928856547431173311635880290740888708237645518096242564128456967549216327689537692427670252747455333880538831450935222189203270707092713362045428846165674117995170780139155776759388629269362625583942679164524846524660047842942150450449544647357976654546973630641861908085830948905071546346264774285189961065098329618209276725380226042168600371809519761267454101563465185353231279560593531954114349129032446639891561930187685261866391459470277251661893193242101832520023768279066133315751944289853164414870430735940625692487617935868136622951696423192688548247723937257893440470086369371388304411024339776389658637210529316640232757559400890608601835115789760443413618320225355688349177529660494184233811827900672347773574624349676136749142932077529520801605137137420759541732044758070280099247833927239382695007291232613064144160686082721744723363775398389007645669192955603597879935970411779551977166060235714179069826529140740733382868870830893062496828162010997099932575887312266196633647171491930866427971083329019562494478911809047634539723176521145525793147609116906713792467542132432317866596728211878083624859883612416012441337559740740593464277776720396607051437677896158398525862638378278530601791637313460990403373186260546182062788414201042944438864973763455170469458725572639046027736575635878638138796428710834040756005725466183777409778337457737105548365392630908183220792295625657023976874667587928411414032283820884205382450508198632788970501872480127131286915400042205232060214091670894013447397910726257967305293825084874554143603122387467920127802362119455617053684263356453968304820168201520374501559568989616320089545828139807278535149556636758506379743235905757390556165641656936146306700720325658520116494309329360585773354301479605584398190107294359930965321690220181733228402445345464820232661362416005746494918114228967939051935950978209449043582036544778400305895354655732562948857362245798571257752218437164065680661360326674917264021293764860165899843911217523784680772897330751295904107984653015985562960004506443184153665358631920489782868052831706267927097275638286279938944806013747687335653486974797430849546938944695284959860786850771186184938707730489998898393101672691353987674744965604733369573652455564124977875400580970326726284130621461338835185395425333461685359166219667209107847699623159720153488870600591743697020613272890876376645784860304484833107195700960055500298499463915210495948227586996098042570750693880412261309045605706959144505659491523362508762370541949383740040385034541754740724242645686084994022795150434146899574979501625692637820283129149806589353234552819753987415219358281099054794110348181369136215957108862219001542831079099893072482914599132485088233361921951028310071159614801570495302439487604565745261064023546241003573701519580900489492588021042158587889255490630391493658864823527142387057070117946581110823274511725718504186866590386254024324534048181061229736024250561250066280325906693725627514804070033353267275396098692932432116290995371016706133812726209260445924949724522137053224201035915040512725281133097053709154338986329335784741177829034849492847415572725409852423433600537984823886790718376830680968276894997640492585079518845255312777238836987012029504451487606470312741108442834755285386888258841353584830600520855747418013071656796882611287653089853412578003253176537975217785580709723096803340182691517097816221670078641924079885417689200378335268071888901005946940543922768860169635393121537414285544868101910886896182137110462086078596358992184195703195933504376561873408207051900012492231305735329572192632990903444816856601600958610807166941242619927170430967918538454654623631716391947068294992237022152274845109645729036350166884437276353555882220088937579223853338787464861536754289519057226266685610807252533305117177624393496981814318747173383133392113617412762694478013173664126572977947393183798349366456994905942239586731125011762993761027534931314190336026610085553310871528538899189300881207154317885121010808786086388706145697110430025621478968843053560654636730402392085488379434723329210635642634647751749440734176960544835645881976982729876301668905293579746088380461765371745136847721449587392512198612164702066195394621498552924661479100714322612279090583144143616051320588220680035055860429120267169407014780765562438809481398451877034545819109425721227336184590104637506002963542463849461166641043813111872105188757423731304002202621386301426098082624550204189131561492193435284314104813763789319313013061914448922783488177373082068371936284860376314981107361979882021617053384673959426683212281266932299120055217538511817915563616575687465715817991084601674745667816303334865710650825580208866187377178291045731269803695582566010699576994898812810989022359527543702195848060240483583526754047499789732789117601059533394917407970258665252487928642045260609603567394432284690975105688180392753793483421029494855962674481917955522501000179705355993364982515163602138839518209340804770937962706214847921760759218531320267909132135990483302888230199254896793978294501898833307944133252460717899710595512416896908686090013803449323799579065222424451287132287762187812226021820993912162655929520498327571297498644767222973667155521305352686651399126182430014904766309400277359925262277883758069853943507164861998718451024429725228566436061708986822843937057565999872219529458864943306564345878976554058007474238464311798534191946232909985783846785482678338170809076626695403897570323889596777323550507578547111877984719626271129742931811910397599649900898892403430203824048240438084461962624106376112484719150166678628045297432302456524775930884208784443033819501182037115323035232550531328982944082661338676043815152975999945146658026141563133011514078051594443587857107395730521874485811255422691148835382440911763701274598467698456331704280977020198705863493588432476699162727707755933552926471336790994802351305066651669684692414451090155386523658677670484288324749765632264851000705146544512597444385314053305035535867130248863710332864374973080766948282872691980684450816448619863611129272241304693295792364645506895640753443313757362415893669263361735886537242156341424114379558434385200569546808217088355808264580987963053554286329900802213787019457574698435740930927926639699884274791581551696464176443924976877280301600424354536132505119929870919442016015487033368021408192049866080142695633650409079182034957534655650013666173366666518894067593704342678846346222096779266442978498179434832831359010495316817810999519923159300883224661772591419472789932529720096549706153898915662904622062845045598873040097834183652135998362204829793176708182083793446177247823538544092472368696079043565660959629670403953564356691855735938560040702005655530459460958237825254108753474767016558510035601895385152435856939931269190821150589752773268887260580800665389781328875784839035194449995110727418298815371710174722002050045798862099088332659275108547464551992400836153020088048000473671793213065355845743003659870113973800475700805880910452444709825584227945630711402143999148147085456560390709625989093128997962831406529790768080577137184090292391955439258599991725511289425994042388218123990619610888326330595500004596661272111423206857623145772677255997959966005954698224280957936919821225648432404314179363909010582400761242471688608347817240269460969791622295784284526997351165298160919864783156740166412784544722006827208917862992934835593199031730400099240546899106022143131377343191371784135378590235504448196335250241026737347575096777671424340976590302842146205815167258083633454471404982736126234728960466862607031740801364007428482859719776645063141705258403320130402410674235314492380542110801850112655639176012714419163450239293363985170482189406333375408516609641218781703081696994635139063294929829712128577205428414427132689261578930260995011538119972966732906586597280550308786307867356969960884709471606680824344574130867143758493291602063155446362326705413297143451392842258924096299875448591036313959518887559587656682945811803949707584611482718536941673021917443831262368718589187555577490936472913069790275802102732378463955808561531617313483630634442520233771387890490259715848545317645917673918797475836244175965264049071325251827032483447805974715065369016959841374447125432965106806266732173102794041059809158698580806324095044175011098122909843168670862085066909521840931578820274595584653426651803693405459937458996209955538788055617369312615566097300762717401997471410394346975180926645489109945129278487123930188014979870290760632726310714776747404288360891553636232943348650044930065568954587734393532396408999410288107541338319415953010385986762407830366698129965700464403305131441833972706944184834951371598476789749835934228955015015009672174258667714045372037329290887048237335151539057825270529978562795808898429389913227005923357444806665832386390701925680947743654584817269115073517619191119776311218773321333373984260393511773277416124189059968110154554692290130115925880368180930856628619933837109295950328815713622870116413442587605630936449242404822189263295089568468314626283009126762793077078481568743458480243574686743735559759316091574052181486438526578539259938233342448797076017175948854504723420035233363146333530182823924208290275341152149537696657409127340037365162608136275922334992910716119033607468829661161984327541908463476403102556829856097821541637143247774101931621939670791508709092189122385604414737843972110360567090993479582221613334016109668810798983753662549816727500289832133521225379259694927061610889525290173562008041360003940155779460930242757282185753675173741229618263374402403174878574080391250068309092493609042442366726835426768006878925542089479444941075241617248310119558675094747457179459165339411134960445839830919952584521747305152221339625455140504201436675044148434584478500887104581622756635372738038503105200360922137734648424961481105730752863191052187062205033743404833948990850990865428274378311824035678213420586718472802586113384506554454527871318594849401338918334692180333753101322581482773140765632438350091598807325591298768433809796492514025198546667921619407555839548123674092340457194517039087225447556071740002389539001992135895494003057610502357923608388443144665012182641276965755833655497278278404167343858527945724397055169319308241958232462024733555833495124319424427790696189825073378266975641485434434468769140645004023924789116473733100336779809516934456299210989372176893513956447036967902819471680938921425176597321915856429934184287247176202496433967028897025473111065146094709966627538747200726162807936949377452364569152214605244569348705196853294902907033910890207368770918274650783717388171865607300920384797723511108336292849262177368997657216834531806686205960428506180954373765369335881260570748244814223767728035830749321823628963945359359978219186247281194919386401408614343423074883707953785292801090580947757468152684280963791038503307100366568071969735480438418173554121740290324230215259077070303942515048305559947200293859515008603511920464615192764331489138747806712856563932952268121028495006889181949263563383650984592287792541397972943958564621726751507509963525492710896715355870021154863475097130513949300880283190289354976045080159116319336014230208090738166783063243640677524681096639694378970621774492998363929070580476908210772575743160241891108314841073737108225892757512002509511222040743047527319562316763124645611012812891622395639197316574217408440841113509362672786392171845361395127371309841734662065443834500771873726955957477691125512805248893273305903690460072251738549688049552595683482685780842220259845028644600907364663483398884080837199037236712312768845442237808462252140693659159312536027458994733942581453731472084076890279871979914339177845608876806960409200797302868263358176652657506251962895860655253087149338282896318875946089980287789556252718071562286317132463660134612342317383451209206261490208126764660025238973559141902706590221713114816068410203719050307497917081208257085002251511795348976354337862310111971591700837654957830160265619785034109396407266912545036734580835707873922287194633934957405532884140702117908429771089294111023242316055622641894337885741791348414174977660158527158845272396312627723587280947395180447252769928643084521747751443398915580630233181150599128538100076171272643779507224067928009278271401488651829391996580196828814337102858994755375287794762183947317518358550188869076009456742589353268928714953671857258177603018373520076257102646708968865118209581940519375341254891222664597159127922086835294725565750277538183406841171041618919893173040334742862160768680381266109753967860593450561174852140674681343961679960074042985513819822098486257515500097427080515367891053916517209385763811640969091680067952695584406481767016036889319979500804735435944036388374879842566104086836296037113728697475373193753324945155468617426771377535998772365008114045312128561654821383847140414638200733100066372345902734980295053216864504183788385846263864895236272817458540305021977708860095357189113774516740960067816995736490247609367536987377462405888843545365293325586075507023515389828611654794936774069702118255453880783258672552150339891503946355890223732966552516929814412990740035462138033157651044028948134572815804324584773014231773502621547597590426946560726016442774435626971425893371439260256521594288271689104439877356716482388243281394150476566145473441510794251199841318363511988246366160552768950956758680353153803406239702708395547486050546857307523310979567630648662637859287058978750595822441298356132764516027566075670093957244840596670856012021336782346320864067542545083814773636136242511178418666127590653232266269990744558243134121508336173823817768545309820163641726661401111375830536002531366928858929368820022694726540665919387728607941359915227346628827411058399216947567255404982450690422680845045250467525340233740606917782242187239385576157212273963771600446708460523640211728627981050475685772167684798735534646003486095253282959647280081750533173084889998584175414890829142235691183109963297323929863881717439390803041340589184984387326317498766670440387537089531146769508069953427052716832895098607965685785963549646237081743203763924298896451796548691777942232591205202819340104686478991012934223719919827338654752764502145973293999212455449395383440771512332873013790626794922477705288802226479971957780241802143734428355791821614600831539221122330230833092702288020858029938223375802261662419588142526146259041179583887249770293316344180459403357258041516808958357977091077057476407384525644364219768094002172529351170032057295347658063737516090841104815509130233972061188091563230430288726279679524406833865628037140416778745115069230410197949192072929579955155445720333896110922724059936351902112958245875984066846195762599441233310518441782594700553572590418674693601096625178512062886569880160375079392998760643679868693527274953361759895024773143920123839664076600676364914890526340646482241384149314789154646097710728294484285805341895815986797289405908495100388958866495121435113407827828748417904892011493296350665771892962053562572487017373901607148734849678860920966951622276757579403211555218222467534977584740372595271754114309039102940197648699726328906142794255450940431893336189284399392076080356947576403215155917209262217582603639098034006348551174295605966490993574826108780020417281721313414672636175898561389369088201937406527914730820739630902905988023654029095383859449231247321792526238380799180482520248434728989856315413890256209572864941365585889904586983652602954405556637875267775231033592672601594555913671137635928631461690543266663637280056131116448537131158603969837813283282677999230866423262512712539473649939680101049168445327353449493017704127923347314088069931909793420355613241493830066801405345836641353620765378994244962247211970931252111242167653582862483021214832424494958624575501188650053451211884262665225533126892035641917873447563409803730625077028028771239176428433397388972968633768969918499385663906155986574351730810085142590989689067399589129278663960106812902359680393461428940648141131741575766234356148648464064516706655795859291221304047135463830839427767112261140538903933442012741663505765418623393933517360893139786544137330972524190473305107325050231177101244856375393850911552633339660307183024625502483614007181380442908971946403623647509163435039770530806884818068646300299395734441729919731519849239784307208154035772712066248733356125908394177654449340775522532075560954004123792524119429256814165282243618707717505329045863682264540193076159632278738337722555657723370415109120859704904166119394110780057887291649619916617148605261970186608339424666662380785966321984091941538772701067895017296767694956794835050537197094441281112441773545599022960481336605605234923602505076337603662018330388382244862975597211806076612684025263050165529410391296752757225879754568283606868319357300840086930571586731367697029533653592040500599345038510438895597312824683926652647705629525961192155451740391652874595276862677905754575996247855169911797837501165086228186268981163318282059957481723439222786982439891048114912425133650982691028965050347300559380622160306366919701887385142668689948090194686949862571499853007914077786140675670466848003189295924130135742443757601131144959079640457045693632671560139057191458906928758459416658702841041466778252088524954748262731098735958265347435759666551414705232707674567057089984716439816991076632941216337254659025522270185965242651905445690034682094861948835793735974637207705368515313357096264135694572868153778047420214950213772019464586785425339162832236350201150489309512100286203236542412041973571838515517569812903150055789342259344442999473137205414468347792733965935231850354353726069939205053080386977267912320504960042931619395998535515844628963591046958037150808705665661673293544173180136359364409332489653079019311752933309329243877217114095247207459632861170287398759455262309453172855812377509456028198064777837554666743133060515099218345619715742806047239538038657429632555425066004240948075750000440431233106567320213222387365632735321297845998791021850078454516960769105231587523159406143461601803565369960532786822357204314304618128943845497912989301355100683527883451957857269973283559757256371721683794796722966144758392118692442604845835778244939927288769962936151628230277429944771117414650218709265460626051622417429741494489573411910202620813129580075870803192053633880569348397871692662346567066458039080068842839648590002135203605943867135230304315478322983182671157045359407546799784277684744777164204825596261504484840552760121892828838043031868771330800487721031197215927363605175321204800229950952055983701796904603248923030311933195674529702547354773589293724045388204298538651096745598622700168970770895832910214822022344070188919320308552531548635135828970212355809527732102434885402389322548370497748129151486072769844844884940981987560454511900349371331818829447975696250057169567924857943454019091406652273461131657355612045210870975234968391430179683064109562318299232019002962869588404884931862363685955194095499662121462117471830693385303395987585439870809892055365286663608506633043473973790344081973636791182720803097777324206597525114764041355758623747060626534634537025671700772409456325940164612661348195975563555776848756740923084436365350621925448405594016657966306865366183328615397993887295685884490262597892904519810580994197729247329621237613446484425739340658028166084852399120227251106351704874735446812557233360206412832493594592584496691474012483173885925723801832648102998419283861452864772527081508242829058302503938158414511203998652431271717174423042598268303808124265605862112875071989963474390271808657460643302466530583457866667806143078149934159038560055903558733903474744170464178468758604046049170367853582776996219955439738429656248705973166891635300770733975581278796625166684716285469726728870288596953429575287228408392609614393133107147560305077396482301119757919786134266375274078946656190407651499425421925459026126794168335874661726654099398618990511485746141295716993969871860527345069474889120684611788721316083083825903718845081401892747824042085008313585926477350562437478354012723769932113745221376736437198089249332743196098310527116046993792454737349920918227147589961270395537613143618400061836438012823754256338207082752425296916051768616940402533277246728943524669588792627884710862964657215699349396894901563617411802364248701084985863092582465106761126961808017081336326662942103323782339990084956191107282351403404919860547876736401896471326770614832343496288122454096237186353282396682844130381130557048300291251459187797113107813564328938553638229278648247092937610677278470922250641909723328741496427884028881945360621200745540790634810743470542911453245908841926198943973056234322046246549512273421436195036786106314521894764930473287613236061623178876613583447704599098238924175960136591782639157725233464735893149286542133554273140329131345510590982104997210264525951090385736434735572984773035890427510754957904872824746164527289662867070215198491045058909517568284847056788549223491900217342053512828865385900980740884332082207524207947683709941019585849587280554598742280420405180477748920366934226644359985980880575890850111689713086254461607909015062989872450462237526978171384066263778382500792545189301266627300625285146246029931919480025189252750519665148213101516736185118107879447534152560802014645962917760359431166621738521707857972494604204568770625377825996019069580137587592078434539095922228086916155432362069752705694747518756277083254617743047792053533567826744369143091741226672556271381096732356293846816149715905361633908457922669625651423378787728877687947205019210002968997506089368620968293233474688979048157096098477760831537539876180406378727704380895568862346523897118928981249234872585419206847412003197481877565639458452570896104839464427050289007783479126027910828417042506860011916510520008956705318431719481071421869397380846065214871387798419709355605994941708441484344853040136165597833920348071003534151711513956721645764868885000951207654157123545765775419483141882915047920852751510520345056860240831540826063258966979372873683586203213531123292599978513391595568022836096967507679973902608983580104163630492945485814166926126113541358373526848850958390238247544338478028805480344546016616224710962462657367572655791430837636431133101115753612368165181876337880495395713832906462464105674102698007890960195617947499083160864537577614018625782907239299392096167924223184214088421953038767602916534909208693997296302030242281539141708224032271626153418710067868418992521144097370834551489710297426519464114645117363669523363770104650430360752334934473628472465095958217423140468791715430846936962639877361664442781344769418535384519119225466232030382977055666218558423142488477294950317574884296779221272775991661236021972666943746528244758773982519580928908490420106450863589582911694636080818501640695044958504668817577076001000166071262610205113088994051248130686894462954180209702229666574143564365876871190941994476769290552305405684963098936420201294536617119444099961139655714242159695071079625263935252002973164431168169272452983938996106971705638253265547675387487378481131230455390953302331340771054115960891496460484543576870015215694865904472102205846418032777276817387474923323221610125205083853289682155780113448239510560423138662172181786526150636245409834950930666903466406349743100801190539570475769657640334484988597224771329045098412676508180216614061083253787160763672879346046729871498324180912032227972972341934513957806976740910114680465098603640979105749433464088963405989114729474901474225582735870332888670061984399203978292593743879804833345816971931506753710553433347495669684867274129775240468906638451096693147710166958583556383229363890737711044644374347577819543418850117801509435563233131874836492057193851304255464409955514635131970738014623673066405555446974513622659047907866422526310914857840064005608880577704844255790820923612134072354152590753413388178683174036692560964916122716762257745658385503256317681691534658489296409229416465928368259751043020997841143355647849680511670466359439071921340305947189521945573554445251748355655161959718803354921574193290478860509757035655679897553419027420757084558248914361892252950427231802218761652881092522297640024145243764528703179416503018686338975103268076153254555358444696632995274966600990096640850533303272724001422896150681309717631536194771229809083311455240385560716228914012851506880399406464405431138869126274068413413447240159850714778981627682967960397918772037590009065501706434373797339242403295597106095418736929705625954595924672383505121796135415363979302966644126222389134269868685623617709466133458433628081900275906523962062576375430069819279309200452320556408043733973045031754151957748609533502978205171234735495574044499978615028635037525035864554637513606335989097929641515637184295110750523586314639288415542046336902184097025370565975715649113109133183941259200740769789642079021049710257953541546558896625853438952151055991746577006236504041538667927008785414778950770717156938399973128259212405865789612931024562979774706860650354044485474549734541202251434971510819772590063192581083139745228360793863179122411532626767308276197719125823445332971622245441926942851658704251410053524685159256376377137335297880094426768673119122107172725838557633038855489892415774162708089758594692561397471409762773879358732329582284738285612695671270941123399828586745023859287434736362765191046890456971526392167595291301728751225936852777954755857400025174222762256996035459082095170792299420770143771745534375788492672183397788437925234233881249469701540673082293468981925417029315871407922941170751727437500736735962527317209958376801099463024518570132707681912396117980997193644391966650592413287663474832357710135159968629129948612218508027712549658085324312669299124222988658238877539761181541932364266802075410981289050182107841740922317039400229310792550377876068436801738247355550665142160859099688410010780432934097895948131200149846578390717006181650305356692994430486224231765918939930464702532858983637658893643444056562144289254929709990998710974883109042823064972039332151436324967262238067802790121439354496218985931794197058967970167016065065574371373484854493497817257690567283737487324276829891842349564034315887738387729950985595166990001935274902352326468072760353437052200618196761633430762650200729184954547734928352395185980784286239388098195460565645576201371320505448046714509853206699667712525880352830583315432172847559407803292844491747937433719661083021854416597732208466970208135313140842569889612308948012131584028224061869519978890257793527100187093261763300937385587204789048519154404419986068131404873323048021356564219695304961508243334127178130515298284700091479363279511180110141887677660304518433080783743144006101788045180934662439070647778560375723108320864180221326379938921074866275771324297164869729158134679969779766257006285538897392510691870058615058532286699712262916204916275091461570255550387627637452823639474530077140492267783829747044763525366022421290226473753220438318206486841577722602061717623882410012080894445420407856956797669342048553548558437599699443075235693770336947394761500359091430574450331750997460189402971500656748246950682645005108599164872354509405290049039898404881050580344205640833683154760612224152748856821489648014493198523534472239210146809735933783654991918118356277297145819182679374329593728085176000849804486305405914721789616149594953668505138242540280670485259455254258088753580903097381817925344776000718683356858549623537983789600569398385562868751662280187354751621632698914744976272987070147911692680239568179919200904861706337536115463576773999008013769637062217342013129942154843883881134370158686312049652888442770796651192786527978935290320904291068973638804515904957340702638347126310165680943293170990290699188064288217621197545891936112405923045605093899602967728801713537890108131649231480669743327401981694888759924611046740927316475617161327817895268902654182650686678110642822952684690554603123412511481466143271899414093170803298695957216368574348004380288584715712762028970215240326928091243167592609698818029031466125555989923005301562016066481791749543146442226653649115358210977574468468283574151118278659008664818093670495246554997928800847332337605488288520784648333324504007888621450807546331226188806034752500557990130588380934751385227395232914684325613325974299856698284434584720796229649650426342807931882180229984022102592779736786925886686039973309759655926760201665479684047870340323065564540692625878809247005409622667053073927149173081001641746211873064683101327695820944142158866518324832126868104973061504140758318696765301486231409999057459943552535745099400746830749488485694709007540910098177455161673330800803497448573837198036038933857080270116936132892046102590454265239322911427188718633895285819283361184489063361884852488941499200992282954486067632281672076621916460472781421153184038669772914934872964917543447849512311493325529114433346562100188201938176675493284122034429630540418239742149465232747755066398468895940566141320774690506311419772935904498208087999475141384484525765868529033760524811413869755747727357712178462190015484050273900882698136494307464900288680241544684643551956725372298815486629797080966380379122454358760432531703697827822336329535908280509019041600410027021116181938513814304061548528746348352675984202601395895132677044377529394864999733028502947088171625550012887732238399470515972610436282739170786888207012022260882020658817013427503407758897963925915140964696179930655430067910999927379334717520756605837819882756866594784854143589081072995894594909972464505466623929897059781057978722195492434992861134710424754986236682563296592217791566185461532340600492045678378073620375109038366337787141672040408950082156713681594671031928866305083755097616585712262335246820534015905505179643148547432975883732228680610098007920430961818682124820377529604871274390523918110762267360529347489103925566849951105759459138721190404677546600440662617962591910309063073365155110710054723098728321741201337022827977265729473856972536707951322040824336200145366536622299987464929827241173681660201772950416992170801207926437467980760320113450905282821178978693250221305427018434207289623674456852009934581496961716817492897554875496828149517107801302854323032991133444478110059892617493609499619113328219572782742010801023211584340252158601340207976479597893490735248103255189909984761077269194552507440015614439688472959162137594701819441309186639295785407596639712443172508201698318510054501658185032142839924266755163239940995368855266611422331650164316439830197884793847849796209751198163954759578369670007175858333117125020010370736933598642172158219029508767425962619227260881466293263221874631596377946860106193517114434257070406294987364337419641392718785875932565301967655124836948648397621903831369087698962487247373059935205782604169974614509247871139717925922519383652884982415482263302945874566665395958432009709905356895327921709475757248850899056527197460790525566471314185067491915001592899708928490524473653289784435856243234863675879033139375023544460163175409528181003004178592346197951724939147383933134746300940320091555834754505716819268664363296178998222779245558261913425394839453978608330400676058356413512001347737682649594630626354833191755465723128536467508631977434910526907552468082313169694097949372422609382983037233658741796335513937560695875931695315343894988177488944280028844561700107971207403731115239569635060555638650594990118820549300608816952425640073663565877608141500947002259316969841923959711922801924182006542332205306750829358356875715000421710897053237844069795727170041595079671442310463861128981005006885305451567011733623422073331830167793299250728727750264909607007081350155504562427531021364576260243965596499156036342326554756199767061516000254102513357991806286739400575872320698821734888082674425278155906794555003743772861584237691445044081522445853112539691333384086487881602190973856573767874499661430081820449826911230902927828294934177831783178500752301110017251779294048452357329351121734022087127143835452711047065670810494738228721102098495438020252477692465814734111510562495046605650337411503535484132566292540549755042390771513895627339463617532135639999661019823125768715172915013923685942396982256331344439137818154673945066170014542112462122902062301392922622875496466615376560143517683142146202857470449657426562259575413876803914755165252783793664857908995025640478654726153361625322488590906739312246819204148887765306843448500972075982586063667686205492930620076077979798097711977377224597472553061559512371517611966415929587785575099418610218065783630348925487344381606992880288174096313331697365079537363682521229051431864444357843872880956018001113132476116246369941963718657976409354727935923683976010848411098454264833822839804311768068040539379337972671834920796422463145550964764586729951325760491899482712585999738552335964961546642755828155168797811997107528403943874048472171363208265500054058762716636910023955357430591798487141649748033098242236618826713159498330225562787298122588050510316170974611672515434840569802698231208669712800873889313600426031501082770553974560752369664189814049095275582654899072487210217355273075479811048400674297163218924242640428220944454447800968691677134090903166192503245165084472025749891376796069376177400665575973561457792269865976022866008689320446925592191795822655727748796948034164689319454922325329462436278321508553793367980119319757583430229365206656246935940635864604781391011488827947827749266150020727706726285155536058536588646782147900823526238858658950955625842422268431497529683992872384625563248469162023725973562960138474535638613034351999355732730171147385096183878186505880074054752403416184604723730668575295834871408599131461727313490384285511994834581917750916042557204752734077309688280323336238675041656179919403035880852043779912715777461114556309911108078670526544232236902592608677012585350074517744502545633061648233631389310099655997974349088852901947545765238855154013310350499370267113503096301423699590607553222309466033708691124592625875088878722991448573571638898075899189886639280907244069839163846665567282080182478977264442452645020932143263235893902457320972116779631116628338616954846403925749313751047163205354289409920302960925113470629092403219703475701859116272323297145149875798838083318708491591784464330649741004782666351000743580721901150771967811982313271113291358761635015741471074514523426640628008778930706793639865266018829228445552765391660621187514376551917022454267926935953623642464893742229410134386770964946870146386205043722838518480447346218198825414939457199763249675023181886319923370891225387517639615758992196530061278471191315471178508688081155000777967041761522155071423108275203419914512581541234952983793040085733091368107963585126880657801887796748587461176897044651285593244093035371446318375283918645691399698770060608648116808643585392947304367154716214456629532249594399807948917763370114199997626402534337980643879044699978840168361550097252373585036495519357711961394593500370162520699242460895692940609781544918582498725450852301285610009691445358500415135453785705366888861609718921729733530907256058540427407920511613497570328623971630170948521089225325030923108975837383394683770070084096959185141514067987268644165279832623859580196947016460864333524695868172349671581472045305077612028678117560939186863719296467776726931304510099448937045825417901154466317010440482682699892361377412039125953704855911958341089013855426378596350984870600351380163575720249089011360688915886184279890497210531201667477091172443341926899389964784201774501146320692404414943779152079255377108681101132539298335546746742132338629681984266068231313348104741914428590614998197273266548983014852003178926408077651875475623564436263059200525195817683786874702951296532663028424538033520525574691106438027302498128324241458688408808005286669542927038365767579261026948263726771442992009713488877619125756958426117922116008567507535788867672930708609869857738565468769475953860350460460163654903678426876048001182017844611409612601593454910788863414275879019581112776616750108084833779839663901170265322200844676286489705193479284348514787359902830257482361042903199737818548217882546794379503694837058557203860739856235790513495763264567094157941949610678498600822580639039989787969274799584296717082450897994766702431044978750757905465147438384170376804889512166428047865698465811619081562861714964910642792370027624835353388394164488078379795820503756456287064779120776936893421544280971613015989143753658682900741679892420970990438656068139930013928221798448898175469667041102918431777306430177210672399378348502578984964835498191376565752888048487962727968248891653552061782763529385431372784951066441725702974324184278031465163672327139997676260047475865185433990167516741406803770988955190423950737745545178233562430810430967655955297614815717983639239700147442891312141611182688610752420625632611906437552312480606586077907892753304723512507531525981620666919088095470623336588393513835622349924645167960438809538428040008712337795470099082465068809264009559013573105902881439446462444270252061663519763693429187460436003656339513748592982048875427497939881276442741381174906820832690964412436132894531329003881826940724811436141526398413599030886441594562310159045363923461163123969668731331736178427843162584312947461261007914558598641131389798547221393767922054367988358784403191688477993907853191476545815395582765777141466049350725057318668907620494602351592990602502987759729418432770605630246426381096968351174067689675737454236978864719829676517344325246853089695417520092724401116537857975972152658033421796381633429832113246285509076552820251913400347887933863071366280531334759167257168900837342956596958021786631255127060142519192696360264625342230036069406289132728742177720799977331897449501902733823189436375876756629471804059011569319331700958628976151279639166485136770165763246834218108952273308997058502017970461168353453725877983267718587223089668954366862620823928368969508907810035637326511065211919630881413674955790731191661954890324752736696316574013436743903961147570557052996758842876625790916473901456309987628508914659858450040520547774686908272594939012068286446235507445298451601811776273897141978759285984546250199615063677851974660161601980756436973889742045548501700671169238733317626446193360164464926627078481013194542797752234107850161987672408152804158052908335170807321593695510109410755130003623168675126359925300484973972071485172261901032861968383490109175346502724614260213827699153131255221007864942340537201300267550942006911211568617153968807415362765032979036717244476583145224069085689576544885063966413657186723288028629536158139869223562158835692176421279292322706748062642985510993032205716839254248651405787950359224094535389153771561484713514224977812559145605838572538705695990486387859872247642226567971433112350700065108659740914887228114096811412767130511157300911682057079576054321606559348393467747877851721479399692469272502654554926329586065584224865015534823001587497803588407870923872563889910115762274062338021171959334737225967195965956695186085798749741007852872375679031769609411503143997430250630257938185477970330223816241980591535474832478132236340539525785056390693359779677918610470490832760286670738556533272682207589211145241535896915187270610188664469591791818247026853470471951500939238550133375635811609532026003319348250411934860372022755972306992568054194215044252069258226916604222132250156576974458910249859904679507239446552111793509762917496090356469488220186026841506490371720634849743522625492354812498348770930975162122912614547762390145136658260208206797545205034293541572646042629738586760497147966613897407797185954807373650947355913039672350775273822092005042305629266001688213756571009646163215986260715302648050894205121509990966019004088578784096291336224066234551150349997061922644559320845169738599992913141470825110409726881162813715629958082078379453746299134670946033378904094977440308537004232574353259961261205091298051663236490082454193440598323512166432576600937334589219047820760706686729182860094895311993983611775644816490551650726789777906725655113044020665736698204265318217084749096859072676554544176564338599879087859008124899088309695998008259954350920008408385686755603068535336557385028381201295810166765024911998352954814495959017993537230684325752183610028865944005542557210095428892226570325377063641046821739939981206407613134068231413473091071955841897521565049879676991277364381519519571955710948199602556940934279758567563531730481944143052386820888805426633359643050781680358883972738373520512597022258098868631961226647480512086803440729403212644630320449281990573310539825617192678315595227157027725512751936758817781854271736200001764600753854249412860769504953577817513693424270076889324709336986565679152707845880177699775607341933415181952824868199997771799762340719954665061552806766105820904885062251699270846798546132703611800623005657093216308278839640628704696735297610518447830742098473568234917862780903382163188196526185720299471553796562921586926489931624995365721427401760063959594030426942632663180170863163533786599440210654556262329041917573542811008422404110886905738727305912825202693963187180231087022668855725165860556711720753659355145100026972356822616968783460028910262239181951895286798164355584703983965208324564494110476895168443534615643549910032519375230589978851331670561099282115729796591104042371851721939676392778094768791524767587959390976867658003807290081564170514477671445001917209873752437763067244923980718802473244916202443510849428495404611941515288749469538330988604511572067828914007788907481325406797073723558170146091083907373463743022511145180375032185280791386230820918166572623459388120655987306149786008300389040243497962262916211705571291178027331809730436783014818344050633618261511679824436896564581035413165018849484414668816136876109218266662649666597473703186293923280421128342892159481619012580072738478115318467405175793966620473416666381380518242022351637765305691179385097197694436269494026180765752561203435075089347540793159999558701743382985574574814009526288758021258600744629653240544191229142028943917321994023239448680260658900907919363273038484246781778002960140665460527486442558013581525556258227287884084386419977818288265656714534449719397222313824307497446146474146319314896883971640248926761473279238783874328651315074504795073320973546814278415143364286656063498222157261094861004715514658168055499850103711478870076529527363397811679742535233237383973340479374193624708694602841041518896408693620854671674977631620022149414274943805371407376298033360166993537492235868125192437996167180274203276153139115928753662930637946720953099659233173517809849781549071658145723341432989235877840218743714252218069045180732334317487888834649986020137063773760993552795259739652332098082051348284509482534629436466137629926471101599720297926417116736805079611034206034501638877603978606843479326445736330798662917373790780589837514944823535066449419888810032081928468060784528990322731834289295849299776864640005595594973583580898559122832485069825987029410163678797124607201151362935533313895102802365852174898893099364092136740588702780844086437393987988502976934061077768860370926182105413787975510083508728258133407593966537451913017971734393305125537099967399267990496629182952792605459775857824003381205885175806066150028374372507090376817293660230341803415926360502639000111054808684261254495644200249910828261549330187823927135370184859685817988980166799617756397248287529210056831953299831006604594661224100201710270440580247479448149561060619580693012703964443178504859360247028521351067660227211429348386140502341495706379854988989792614115175547496741207628590166418587675808867737711641920621243279007876697047030894039141478176418890132156985787013915765127351839071643532815110235470663249387787172838515837771093937110287033524573156258164311930943783135998757025406239352326001019199075116191363182612737733427039117192698196542984805924014145809062074830878213265210053623457034262188002318718416340661407331350448976786867958503603437638848064496456631735119715291453052831316413747104959843748085119273813711889623578423435701424162939307406815778150785477422994932619436033171133602107171830303343302467207074143783459936936206535096306435054692922136015091796844317256681739480866912152288755963264993341902898916840456494260362888551750282766626648387910266992361197912111723164881518248311134134678544896496891174984467920572232153403949747364787225948074647609695605019703465385797836572818242636989823038521062258496019403151076175582564938295061117033458490216990242466449299910003395030593690775564128874652802700402105583543640468208687473897405914806907885552808819766186535858780786198151523142853642436393930591769955558765604914659591608406492665989201451923775994514856048077841322538031819336900071790861558601175848266890110276669072217944821830939190865889282464743328221306661253209456646255344547644495588080247446425523255704224323622668885591616705542471566346642127047787789983782565336689954231014713229303850679991576957078144365487850790651684900498988308022842763578824795696957687712612500206569948477658093744297951632293234014092167168354313498906365076096952839570016095220625811765857486498579830644396063108616084444944043208738349190516133269206019027083981873264832452029250814110936399059135448930990096805498907230396853320326553973531350409263191034652414623065673702305686359048967685500797441775443395605071885698757052091846968735862524301753727143423350649660939047864666824408296727168898341782469179567434736246253372603349354421072401056245899228220654323803629460402233040022280663288234677741817619978467799537393638619602286180526145184336593748985284739147159300723260993663871675675668805202635170398497814711957116516908989781981013277769469785733398054279073276537164973515747867241853270560917906620696122198832240230047998046319254497289018628443645486079702965080327869600463462415991436789486446780201211946661464057775672714685950574979667757971243075821945871196602699271962010040184777838455583600710269660954899471614799064244460115511714351967627091614582080397911009164294377552626219470746496916520550485472668291711002101283687346457385673607170554334417042683955922809508655326497285015506612976402659939038137173526805346298005589278509925967334267840165443374340018718758754877646845906165043145360933762379699538681760204720636353387941623387072386070192430292205722525436872837071803058818606969343941085956498735015089147689723229028564493567076322449225274708995013510530629115843337015712199188170179043502561239859914836800289279942390860742947103272556061201028094583521880856640930683709482362777470202540763621039702378045423644408026631458073999931149683613722069488986224315148389829498690156922237982575725707384893717980692234303496601449380123262313611529794096464949039251118555791122775695233537290598578715583741961203180523237334890851499355121376332477601464440896221843199259800016194728084750501406283268601836917076710090327085324722143471188481215905758994707787607820104423219539697584120696333611758211043362573957770111547323918994865068383745131722910225955074916808070328472851912412449593322455625927526933021351501198109977672553536411960025749144878470890407424689296457743527089611547995038661485915107341869924122134488298086100617052361712416012095945085137931297932480807369924614911103470309253921273849614689984272358815503553330805742624445061996048003836282456592129531930377141323017204230424277367646244329950879286143380381526380611734994595020207664218220047336929050977804173048654644836227065637029748634714231593313306141964713995319871902142991406900257181141040224856585710234873707293243992395787294683015766838354087237680308427242307075114437781836130506801308116267082901297182633566580288008840746668910413148854623175675670947843184857667503255049746034213195563612003559367973019225468821904784663248556701380713183748612967615077752664437822446801595188795532892879156670499557967208228960328056650088293285705646613398448792966146265331969535708341801045118315315905057190593922984385052128756444538329329080298736183811653811282911807464575476735264933407388818235831499461900650115155644137801139233994505035649606525106750216214671192283477697717939497623445830604822498171533900391845636266681135115171829068023636571064220870502112960982509679648174327441119440883712231213669896673431131982955653559743468025890896641790499811996393765551746323765435746731330954532153253033674337753264574739482408801394667891436078529417642584911489829122522218602568641363198362466862120331603802955028444415615406031455794569677206508902733429511107542563428746900898241312054293588586653225967034233031702528978402624175511562382933746535724870042853212746915274010145960641788669441813988686267221336310829671290746640923230012486430817074185556811968007970525337102567935870599595271625574940251616141638637857735354366363975138797392541811786075967537300093654948395243058285310982400245899052172239374060941604050885407317067215595460370188998835371069481548287201057389533310230764677281621881503251447139384816668752947705794372601235687459339798827235115038234226237140954441726535834267467174004366441756958033265212129325281052756866235326429063424546337675299587948674359143121006985976348087591392176116762249681150970022705473003071834123528220434181367767490331012426607798962781627464512960295646688193048958494311413208317019538184018718382852422247170808859500741046528924328106360669795764084470295174212975133932629056196201115911413497142396617694092174848760754095868423271423617893997280644863693795574027689677617894869082579695149049692411796736648378000770479318732459382993154260251056645748801819025888536110727356392902186812002077080741940439089621713483135688852195398170845661336754410061817853039138289534045936012426236990881627629658213795442528210595043941357922498911824815855859695065874416672311553817977331073425432054594501192122357264216835827602899456356050039944034465102048631784452961173710657632199757748282725848443533115071579915200317483811529229494213862896396694811318355762027769269356596661932470466247642606509363773674863233717248572285821731665023974010428072269187373241251971033326259422132573171655872794656760711188434858432731029252951054435102504544567839297034430076330796073491277251490754127484531496844767375714096630360256039784947467620295848144885917342974778942400822507652571617794698095019144709255423416706593171836321881976643493777138171535364519056958142853096368733120576265130492060288445923923549648989391353763144273610061197393862169465381772126848686852911709911839141923581053101310657308276874019641408419501014450460565934803170822614239386577279707212511564092033310019842917723757908179668479094139120677101860719563590162085427230057472670800380200664315181806724180263314950033162527111284667464598120634263668865364332523839571344224490920889212947482879255447930184729980671856194826573768890212758630990493160092704686342462949568517306424949106522241837691756945664452459405380806894453179877852654768887079303739008706259528674977870855656107348189741920997177965818685711793557242004380955703118765255542448393738933431170341461189161913437703693001093467776949313107347211293295823468153782736496408466355576826236308268397909804860428208729041438341418138045243801403390415670076113766135693471454130183769117350681259000592921355629409454019176766832456458540963582353704193557936065743271710259702261956644920043817050248001140345333826544002895276450909763752495205058998118647328732158292278400554155352717789923617893140262970626709574073958109907272735487475892435190654491541523063006275826573294694349384390580647730810409122969607120171001344373708147528595405807723714946321370653039993532038491926736997072354351298982518885979840011738236354756111451767997653968738140356201637541145462572528434551899408879839831639019909110586471766857917376884908841414644661127686514408569019843095904632812890330457713361679890838025749505693982911171013364347602154759831490775186780061164059058155752725528334093303248404423158188026934787845468165118985430553534943643165468574929024068562775552298729541034907928029958520486161868818654990899728867915905758194440069689972898695222639651547762733987322594064350732457621017403778119982343336869887444936717311202543049227263221785850891793253577242647163728288268896620388407252047209019529305394145646544237936947476776395580778381341085984558774264008381317278312569683422689118521322439363535204485882623154258429854404923581023615990748466382229495639313184195082920830875580525272118184176171139371833654323732029380620843165695157531641329383407734318065339435266016370131238033583570255622694267488553655454802768489920760187291968926343480108756518328498835552000411910591177064767833815099999235199297228395246414006048038279985163054888033238737932913071688922253198245075548892514417846861548833108092184906425663772968115189325421155054049921697645469562279643110111294768201253859689289954593559674486817233699263534874801015032628840083842406793075735562454686379770520236668632856879394910080404127269491615404663489115030761839821334073379942514543206711120438412158997072640561370300527729329762634810702700407941770047800694270790575241844808058459463148022868027648732719357786207424076878547975419665315547272498418058916077205706973273859301485546122983442823861987265800292271745398679951221337629872763136225665745128617845400769000330890316389127995951585190018407774340904185621487773815765633590237362590968493809384525418563554984631666056366400024532481361016779776623064653660661808978445959950025226352820895533119315721636625040340055557942153669030095714992218557862429655725769916943867768361560286096737200230474719332552726896488428169279730827562618980354831988661016093143154083494234083101081211175910647450963575644046570665072157559342960151963105328011016705125696125778968928821079250121145969143232529501070465256284093435638038027110408275899092670875674217147715762094017885490882954465220456437649590899061143777175398993998784185584772738706776180936556777295905358772895011725609027193796154247116366586429045552295106410279675063159469839867909056165590427885699404703519282883541342429978255659475732391793459150927811058174983714602328871507604964840398545953832134231264809558110535406185350826190396533540141558325037161509969128271566661123103057853511847471135101335493337830076230867937115915220196217184926965336717056327249134488529713200794320751670352584335488353045652355543878994066327493421215717897329683917689322496772558149609959962614039120052266165086277840995547794371682209516036030387722694097271331404034117377259114563829811205414673148183929858476792107355474572619221711187696165891862813375414114308193655950019838219554223964772534161289544412631663197890957382664814169967270175533625528862588333958446457288307552711813835643269634357461116240483529571715009747075572900121325602636450263008392550016348753354913703336865538235622731974762747119867220245281443176748769429232805366859457045813030745624719600606994371930187169623675360467393482215220265481127966205806809863299714229987668951743503019215329265189461204648329075908920407641145339420658902765868214603782128456948090163978112643177861531245548519053549517851800719065800231157183630072130324492069278263697892236425587706485015575979130149381842795816081131406204071323222683775928305302104934537421865040304464324930790875114366419098239396715845298717922225977168550463816045502658288447635906351476503284930226606223445792512945683836201378703566188360589567459482578513094389901635643867015701486552989166667579166570378077228642160396165853494605524762191273862572879163598500694731227952514846426642176843534523086841973531591305378942892500111839229979556593207535340461439214633242511658458140477412663280621476457178816332001907795280035543109311328906530070221875316481752108953157841088836246516430315020439209107081891914685138995678598938896712446105164051584397333268068660939752268314165530837380549499696505771591352551793644824470186090750335516660132874114059404880287214496446346619668949340646270266327297958854558162858128840690578361794216786202863746156066269564922484399666418414453257836471849630107581835455436889741365047246356389200658202107047203283020242547734909891091154105432544427989448091247855913784615808779979381258053766753223205250072328509500970941785013403313487722668063981635347470525456521655770423537296347568417246413267245038027356541635138553692794676131458197664898910479128004249974817732549022865580459631574513831662099472851328481939840165555085267101106293960107637310329562654042995822971848819210329829316894075122002155686198612774916070005291934910954856563615990646709793882122018131923950375185135647290806347764956479740458793408390854476882893045101139731447569390785576186351855208842056097798845340214069617682634827410481202097271841238061114657020214696037711931667746400302276206947170667820690306327373574775816134529454421016118979007625382877240844217745278269253893168957242800585193274083542850026888828111311434272984005869954261799744607637949319720247846234670549521118553631382125697530289383109807759799296657429203157284194397614392169158992037769789221866359951212356252160113006711149068499107140686942103511158892057353180188570148122039084000038604262497496667023013003050094243850361592958992155918172361676356756231852474507721596901231931739081081227097308107794633785770226247914952807392937402970553243481119786814757438181392942410157197036922756872412670480927879680529078662087088658960360595482786878971465950777224240060642113123822293641814466805716576838194520228073411750704143751462259540858236921622124624702404471631188065930885326348347470765895995898285314198624912545835188004315998514387258823016672363816809486210174015499322731461186648334656809217013512064498015500876618458342714661749684686559339730186608147795504229071215230900252563902469172276889507848493281981007380640149947785259857587790804220327675013113829171996829331507055765827151821866359956540657032299979161076531212900683221028518418625183606840405904700418395560058544468294238245402052112248498304971685612880774597354521582316598966075125658988399442084305461313599687238773406255192811245623976876227420035911161528331271055535249570391777902149954955669643651783631998504033881905602336113979079720704628593502934252509615591668873844340127685567631053779872265650828364098363345467855181770467899145583079543945810985263481869355477198623556007662013874018292754321155666028015854115270922263664565476923746601964643814205451557645985949989190583070455683716177105840811404321371192115978839032865762466031084731714313025127391674998517927199076733177804745793497708821202689303606571347034643376646033626115194399088117459730344611563071843789145535542171760289916511506961805179111792287778547084328861753683571704815205489898041868337384026052614882265108410519784685464163700755280486286248266047042416875590157974631440649515553002496192339233859378453035841508738920579829523735878429766215448435064532241793742651551174935623392146628753918366121269291194612121669517987888690821052395727428365782017700211050372693595450552894726037937226847496391628541388797886194755823004747103613366113050374951114406676453239747722570427466199768115823319882677585366136738366342121577431472935463626049805524782513334838578093159663055934333297388147284857491580368617357175646831363025368270345264715646621386924514618662189139475328138017927838945192404986434042873089382674671819977266327681059293631002419367373665952092744675418488603974639246339338039891409579340392993506644053960994617203368484930634480162602618240426699473906562264367169103715229770525516046250419618334229755153384990423249006305416355815397108681563604478632317653971281889512009549703502550287783733552208911394168819092697034675094948340494336996537723312001824793879797162110174434023880514853334468914803786034307014589606538021999253891001542441747475471395777807973358063425710704758240555781482732224282104478444215331066493495188581058119942312435766622026654096858793619793905111808058488443751550386196105211664315556982340256036067779012706048973747073776469744218942799626945465135565778026388232048142395302318576412935001108751877392274425513246218114690440206691064827536846659320519062830054634810951684876310198334660964740756066006638621505219907677949223274913090795664143366543256348689858111323423456121802010054011524502518736991676704694114679512212307573476278244459187232172862581738675373811693238051660153413718839218735908364193036982475124045112929105568366723744671492176938285211595956737152734815365353251789025960962910120712573941784312772161188094222966046457305944023377173234992108679795482511808414699304974942552263471534794558508806081200431237902215179008856407781947130318347737633488113365225816105701414642628525498847058913228042891080594721039459133326134282648270084912502547317974636191092114871989720716694532156123330297702020914177606076879982092068657099989432844295727537019492555586304190376671675105442522069462663660613408140534071677206430193611444086078346465601055853025304922213849842731013716425487191526788936020546689938167750245345599158215869826820055364473073255340920854403127081773054884743184615971212934610920254536073886574044704849329960477223077169419086973331198092274127623501580653379462922465260566915483804937026955289243310453372256748053433966462506096430969962313474312290143377559201148777053926824745823061065121846700039056655043900993672048731640539170284574896414324113878720584085146711593634304118522340112906415318983645441945056955730735593531341791402328726068636219903569265809568916383754168914684751504866218063196458403988038764410716551760812012739439232927832189169021692979551604322769466309710989999739145937556470766643366453597744862494156186017352500303024722168033740137588228113693473685060356147766736225893161547984360988589474708249652830899262991392071764099300621988915466115380394326738490171485952109901705914191420606354249528896844711394176376150595010116423532806623229353948557984790607402153065154817080638319269451544905490888133341399530130385019936573464232474701407697452717745567625261537947612993599276199450218845755363987581662681533208538150117644459474306036843123738008101075284821128265283272904967612672214653916648357260447389585258144129846864046263689106710710142082747054635245255854417271799216406133651686203361599587862834106580466416525956533246921931756712295407285568129677755738345268882327490680563797788243415790327508082106204229778255306183698929605474323683024536547539231852130009733895462848882275405974687551795535578849519673180478304982776933651298599735245596310423252473708187711082501509634134391798133964712041677525613875708658123418190342438793669209404192238905281198242745575552785205950527015776561068687605829205917994347079713031446336052885283097505811986106480447969422168748168986626579273055599532790686123207381799703411024495371541686603344912433649601794226270363962252501147834495136281499198698226569392601962992775500844394569627857071634043835317026884424999254717480186278323073901434289381659797781641420808543032523792302560602169015967968861595777292168351322160937682895758540104153632515667723588165789418410493848842905677741614129095851692089962687344241216823338870912067429302941109528202279339329167952577755119363352931889931701630586541336129427629969741784038908754697084064702489741063346810807884688541359598551075721190383382912990054190023234861924542838585967270208590767889004010295964967114701482705631878157883659909988540545090544783531615778626219894555553124591309055444609753467650869052435653281330991174134331749195469455380279325023143841077105073020733075236074568031589409365686814610402350589188775700951595972946240178244279484457390926632202942177712001080421526017506342149401370034167278478193287704815922835952442064298250340364711273893795579977654324625757928560024454977870987399109707798057956185794359730503188217258625625888028929081523769541526296633032224922778631856619546877782218140828921829186846106994552839745197516526842596044100405307953101284705571773473053515742636371305083624218859312352760988672106414196995120485395375063437369796145344409760171283829879842419769756143172738370924400494308004045071748560810007833158167155761399819202970200226548922778108951081066193733533361673699767550828536872928278416890842471478794546176754184600001475264583210148573604184228993243426593125308723092640824162942515694778368405884704629626395954179137679939365121331738147089462649739662811970840038884507100563854316175839309483795760745081010240656625351158041197604878097122815004331937405427927155808295719782070384212543146683152844644936268271599599705354109533796721190578482004341968590946136798123752190354312290120557428187573593468401375003368013000313038814309621575202321025216612861864716830804876966799701922197549618384768234145723208539832545478200483946914625553166224656952806275090191955118441056324323649924839762412147474807347342788168176415341691328485534318433151821106524725537005290055734282522120306324329635527443898328011977017819207810956458706937719008979395076005384789520587366987525607998222776053216665205054131996090394450152695873118301567426917354395277846667364431657397121099522604092753114159811562446023477810784660905979508886623394969259638081093096004725800478370476878569864421950441568971992678286449211043373219737074722255324587763058184289780937407588395478423742422443386179755427052681397923853417818167652698321313026023110442315701684036518763970753806764578762334860619859327213061791163098899291312558852666736983058450675525989297657204689112298245868774983669741851904254426106196296439842941699575242641664420710732368416979923443948332063728687526469908808315108729515341951432653494136204331339431759530799961425083622679411875288247895178820350240419098533185943802581008343967417499177207166236272393444769443753242092445999325824442536080312405141797490978024093701794496733404618014323114183070112494325800311037347205480078970401167916899388380734233495421079964689779211987337835558088905565014815120165436239210246811232456715707529476913847228892166985064169278551018742460883398685904075517737933221498345194357115150338937174760706531842018922601486558959249938675491869893985664594750174296695021576729140145431304932877733410438343195150719713051573770726481186426007077016385725190981198581711596483975795257562198476943182957165137463569651698496871785676956771608093824920912292503871624043780344994625146963704264386627437744578191497562359391182966878820028565839710584210835234762832166341054631058131162071743076727939761948728510549638918871846439439817426835240535002461317001759803738874788009147911508207437987398470269753059371964048334486024468909301345969196369624883577084708054845529690015704922514124110825738080963945429429631412314402777693774610257868499377405937685188725919860226895148445481403738174046928780044720486174430980549418969120261370655479319547535110613743375219739662777081558871105701039135726303538615194305747619790374413388723778268729066828979830760092284587447196980374071556109691091455238585403325448385172030006638958816365769604850938161161933127941296389532179707503039213224984138320383794363304727981580740971111860936513232966507171726411141203795287540385368363394784051364367476995295645762705482745978097510475428347698158088633575048064918392197972075015305716114518259921639140987540514957814571818993118218440067509952215357352624033305187034251959219155202376358743352401078114285889331144688158914715428504557086055237487588881365185445750782300810945457073203256779274421785245601751214459806275361975969074097374427334305764928506246930957320660993774600893230274708530667247973471611432438199579738097534681853925525133646002838403593370909391311190735253949110495146298271748463189766533370014300898457647691013143748924667274677277816843851923204460834563153566760824274247267991905860904447409451144765733319802857630672932688346525764087702988999420279668413724106619778670178208950995379458513876286489938857874393711030291959422808653885237526743084063477868256520684747234917025543560060496884672415459318658845716093668261107529550382450543794085556937805766162913177816166275858860453323493579383913180021400119413654994900077314836798166172931244223526628045224346896129468020250930545731022106477772743244563690347738784278528128115058535700372504424013984002310432962848513739820265349854537696839678210813182168603986736544503693765942325366711681313620244764503217082785384283457336239632415874659368583484322671679844131548580644312748534466014654575374646427572010836267432153652887556502766419624528558482611271751421795734716907723182740063236357825846724242547213414152800256912279685529569648522283342457649972883831577561155117084668595202392769836647870261551551312782486480521788197782771296558808294108757732858342668483258972482393334208442036155716135115623447824857660600078905309644959305133938021324476868691353933278056487938203333764759002180567723186077607802531963111576203897929461743244514071941722826913901406231973327457964075974054715172919784643622677156387623660433651422621236032268518363231573584575287339537084811941980668903348255505207354183475278542187992586084533710926670078970958131420755230090924984578651256619106488445296534994427799384120862110509142447201508357947349351247762469596660742689665823332623305282504208372007446707185450220429824346984891174324182885732957621965412602787761306702499021995962888692622020684821892471111981586230696292575814980066831653672064642536134559951632307280819069276399706709356117694953337769805896100534051940882159929687904191989460134738699039068504680542711854437000584332457589221417421861208216847053048658539465339627477185537478491599152333875228072349917951659579095591491522861167464972191579909293957406683111424624316715390153780135140100178992147519041842284673239170688150309080064693329974277021703207078074915051249175454371583779498239415748994114809260571808861237874138089073183148538920911881687722210864825570724522487396322745402468126678536809961361405643363116735057734625203778508929094095558683321684531285382092716445693778746146929931338345689160940607792914199274787171521380877804336943359149490882858241580891730635937721163204695098887269320705413121616246494898167426164130393903694198563787884666096874512491721239986054411551700421405084587511099318381944727641102942228676052122268385018341546429169111926408020251849167262299264148563571595932639296178328251143985207028044061659252828459280110403121527245716979135310789728196764005361346837396960974430528288064375199170550567676245991491603898770385386525143011729877335625693688615666179655786019262920379564372348640176379310584208209028833203350961413102533404758746596946111996161387252920448413655833172264983588132770849098265139811967303360023674717490801475738976189748829074685197370233654792593259593922643731994140207255551912260065068369675477899550790905729545908797148130681032254243749519643871420020932802237377312855634058003955655723623754867560519648716408961791655542795372255969148840782063740776037873445529569677291527722324848393922017837109593971220997961366110134429685165376827632168972300757944789311041304604922952526487695598474797613508332047046438437937606380865480118151518073369777396230344315928296851728859597787895124448194039665557280920667755599564397230495050880822121893496109179364440890928685418942674937385736199997563492752517273807046304253180245963518353846735319105930522406635648363099819058537868570877608376261375856064580044251597924887722792294183316321188865789253848545951823328695291276592448503829240172305635333024429948235936438270784829953257296768429501774675497204659648918132497371200357995647389096125582066187288426280920553815484750680209481906996458821210989109990882954734048809394558783902198008516905649874606234951988056997978907794061964270312222889313598905469712521418132224956045005456099272431030579715683340821860911922343710260671493176434688096670337179105703825388198561624611306777496588330930041856402681808599187324264123473593549657061026167115670734136768299656552766920283244290692906028432018607609412603561466211860688586232946433947470231700205744360269774846806972460936308938859804156667865976551627177331848934290044555523232654323516427749598901597260336878670479036394078591869400765513294023514139873642747217814142126150811326457967885190118091517067941844079438563541345240360010437564649348859120199154707662929062548585889582187235012834991917225169663013563951157420127981325947573206438640556178899314961610390887223875109726471902482883767601696075216683920365537625517994289868423191687870157711852171736832211737062267353310497940318898249789557570570354491401178593347467510340134574767170671266673137882001855858816409862376670673734938021978836059887599596277005701831487864424239133817487321482462505087044780093321367768350051169454810950108749499701598078736985611576523470314301935301101082820199569493082838031711403348174883541968307805754684489664266287894146947729285950254857328648084634808943359543283505932582056757683159867126072123125283714491692383982817383721815867909925895643263847142610204431881047560359501982154991575215888060147414614960660411141557086748841598018094773438592590405998817626444787432661807668121964505101184822850591062842529079772183380344113356143913101542677267203879332907608539678347974403347396864843346914352386294305977840159899610379664519076644418529391061773205145819001165024349578314168061370406022689652103276280538976416801116810568369382690549519204981490459269447393607820674490804790114126443428291141256551539666517311666171282728196344074439326618028107196201093006402478666311792525753880038341505035051076796865600629172560263030246590405092075365884583939362322421025493946968237081670821419748526899412007230694495440052720169325001368792501492197992111838936315280640016283220118189718454573541472645301802636792407732021575764637840663386426822221014436694320427163705756237534623056007936333655998940107909392651635117013680639588125871416485657716585337682279688916574943720363428055047299202893522138259830805993654102667787236179761584644786219490966570917277918216095280226704873187398100879500131734938269463804324414389906475038094372930380253080770648242026873123090707242276788417502950163676399665561903583299613531209948441783229596743186910752224479636613454212882740753312307118646060437766060817935603595838502691157669656097659703200582511949407592460523028911106940049922273188644894763178167497337875830425117110002434762204755746551680002207959238438926811353048825347552557636767333485855665359713130942985686754892353654016393048149640835571238346725841720155634272318418919047975731590920109993389773561410328007864666233753244693483179327657538211372727371381120840649795412808220809409530047403675622350205613577605395725338350611281774992463915555879727628656539547689243773971610773973497656473163181061061253975527778002921390186138616046806746250393631515105433713554582212457210595398865178410072130456571607613841170831571212498082195360196458725410381132677358061762497345289826779990504214601385086080780633349198532457275538631545773245070758905808255085761545023958869153727023263182140542513843616812662528221163351465777312644729346967730681080915361402078764157379499743489453414852680091805728831420877761477925180075347473551088819448071436427336984900960850933744882900295673987384694415294796965788179355917333291329901297949051429440339419228781782944953340545722105389053297664744463526624592206129615027230759277920309617045393939048465431871971955789398005498697611709210344866885765626965448266199570911054663371616038001928352061403199827993090091303556878481169575033153042287267258760086786869794211022263858520340126450496019667196670725943671671689176217770339870833217835873625997733702971904156598989936197072006276730946021129359817767023371738607326906244893572081955734095945369517800310352914888883215688609730249627137552297324839160124358147670718301980567529470437631392774004368697159421843458326177536113106544195939615645753421690952122929340188912011598139094803092523587495693262080506887680025528388747826441067424593007337231951926542385915390763171501676801993719257063789392768900841609799232726401005330864640168942472763571603599795468160379465939297068301413408949169550037650694243000681924602145156591749847919437623839636531568451924787833616397383054974734544768987871093023538780759202222146260117200950064516443086513713849897500791628761229007522275820470543085369775098222348892340360001328495667747544583954994758110541550734749700148854678718143626032594774174390897985029565668673732714353858828066055119269131719531331416798748697054759061473997783896473105486500378326534527141853225701522542886711573082003057946351552152248110617507039051116737302143659973157556840536118428084140811970065013036600125323869388139800391156557126135162773413903230961307093576645940104803471827565578792122038165629830118714575913534545095570039448262110296399454923234712820615771900029193761853384268679354060025898810652493740796766947270382605596375446536365986752210391407601263330621977969435486306931305586228230402969821320125122720728455007681575084703649706150343344004588398877467262182064532575503821291667768408237658650528128840635142860107178355196535784864993645673729701899182767808127886339602108439229110187882239153098796984396113218150323022893119103738085564706388922883902785926407843286691581946528939401317375271808637706280600760167402745276458548152220865749423220551636459696689602787821935247751845086090753248332336906098462222284767540593716587508788499213617526715196906442112733710946885561289927787417625296154849500981251136413815221390698297351545604247368039570032018625340645605457560087036784994478883245760212008714791321845841465373722944966355503853932563807353777463571133714310359100103158015782489166158795123523255649056602843259653499569496396491304440293362862515672120943152620745205403498903588431841572491520413430242729423526767976771814172069413805668900904578175481926386970248802973769322308780402975245720390777164384806589674539340691049486457582244361517534579856086225809265904605539999940322960387700688564127343485567920264021385294379217191089158243971112732403907152014584961849791037306332777652822220627065029077735683303585637069207123902369351387758021771273092641774249940419638835777292958820142187538947931039105324287566485159338605338080337077427541271305135306160806362888415607091877257257905473465476896440551557761966456580079677859116034953158973274917424663603337504369669047115080680540877664477004176451906157011329209125255833273750964295966654038319086195454113041546504167836311950500957257826538524106091048697031262785111845164995345508128457404510665269904246577837858935798980495592311416030114219161325195727454330530029298305847985309306472583142129399026561095569422082897471435182668972416769616815883340724859038084509432337664259055303765506200236720970871092863095376901280174964880742801701718887756454325856629109188660343398267047401514832336436643800878614186342250533186805045813012448801344092843577677167136456403906392976236250736938210845337953307232853409262936225477347082239075440998480785642897445230510510901574516487017434936289451147956234822538289863772250624847275268222894380893380193549088413315672131153903994582405586954974929591821034990252136174558575076933939304327045300136515919526310853560535014409749243260954196214188882779115078144422538144783998139930051174214218041156917432243952759277264638800264626412594494383833194815790977085045015849228366884657961163421188087848975839274085761791872027107609616985350017934524288336196030297676297368225655283292203867061191487980220912490622034301643724869518722671289446468284840321843306574085220042872301856711614822246231925413938374149415591741263981439611279231833147209912693367796830586905547921015877402873840307475962364555039488002377717421115196973503445164104556494180427479840757777842409198087941398073253954865985861270625971735051761299285780827580667158068379110720074561661269763137245113666908416392436188790776494291658842589017849200758943473154012671084629431047473294752010934527698153772598058970567550107570833224799733433673325844481852881492333627546549303819079644117755733606730996865229079718017588943716506330877032089428569616176576053204203670186761602039223094267261542221390655988746298128278189156552751955731709280496461322890113033317279278025354663753484354897528141902823167569025826249498931065011039913772764352356416484454584202517435286986907209162502436867630121736213014443806304766862921143529235101148113316338864482261591148383927520737883377027206392826881230904181336311154643660994933691153699219875820098757966953487965077802923440225499695823433152473395201138680320066124723723314485855450566676881925076887492265765732994343340393034779039038997375151359370570887011091739538746239878584906187000763479834011223192867015692002180717281633895786990744404503116757064208068831044815681249582691289669075470371116090499021640648746810184700909488836247228683267256185749267422222623605161213489843703206625529674103715522036099868956568121257411737663724400825663112157440909091411301103341176199376685101696025384344073790289512616866638957395105456970444708039328676814656170297667076334061065807655455989033613559429343674376378082905692813081250458908335995104217519171497931879562579875623900972466415565499846933853619615404481147289213870187823346620520346573771722218886213412349570821404335012238155404411944473446343199022676113986730829700386026674501662566672660082943126879697402458246891730626009985491122494429990926362967114554052738387186712618359375948305609357805753040456741751948916632783563742329813023726914070975786878334607634266663962969091440698156902911486275963973329122521926676590234054328502237882009223550962642083765289673303136392351658105056041865349806356136274875537504112943153513183592774082981891391462014888215028121906263377034760249792033899179107258532454874733788307096217170413346133820755886223782859657931529151404946952345977340236648881709427026917330769495561323035955130365785809490981844637903998919119354833279083196916491938626389189245745080182935239237392155245877295169564152290962994327238332909601494478602958246885459704451211065268597015045026214761394630120965977495530778034769316980609687717867605536470919407054625362738250351763644840016843767326084216260610278511148115262971503037868586141082971435962599405612168743457209493109915111779606114630048101567756949179273032938471734540582183346870145458032028558809030086076017241980905594332464621253465967869466590131345505756421221894510172812423911111414077774981474565664348419335585267095920415407813915370128933698960101120741042543077253275819980025545326085892880378559456220549563267472484600028255239985547384466153927638264285001015313375470318991505695726207254937231803745700713362877960689102857818786982381043334508456206234887617532514622579746494574589531237071246394234018692511996180242654613949883844268164679587488709747900587130853128331718474274827507942771947076695410867784118673060908757748159991931641332986148208207184737016786321104475461106961740834295158354379416394272756904565055570796065482032741185347892256178890143608846704529109955332268786283341721202666942922890894482518618244073467289866403239607024364069309804643360446682212915902855678488412215347613962062157062307206187485276983425512397941861702993382468387389749381514902664262745407964896715400581584010427605450699418967859794199432447142353394652798402321428584033371162199857351485361532135970407920610786452731170253827441901068577932865583259771712409945554035401503212859948187089026233145566257304698666759370209281641876208199543941447594305704688926582785130667843986441101277262960566254121374013089367113219820681910416059259021158797278536071115032824487714693014122502323588112538922946950868520932338278522738514637628838854093418934949180026044076636945180513167674425544225975936292502806924437995616280945667163506531221417793602502712928731860391114686476468694568067606209541899153876474146822752267543053420668703393635850178140898512500528310099308795873183422870171655999782522985076561627608818435757284491322281793522802970150091466560919818985667464403466285212085304514021048819256538776196608125460888530249678236659575304452452295265886561337861310726375449643870389835940402663840382624757508588828073079063397136493000157920582869699195516440255813443207502114948822544521874356030240316658947034963691409720142766553662393040110244971991955676905356879276922101009989223341233149139137101354360753971207416692030618665381287565821092928667785105108479834334200324716613871118164223051274771872230433956987811184104954358742396091205076041286030512819383939597718362335445244488209367243772910343559977085288792935487585238517008624680839268666665320378091801013351649437144931015774096060590572448966592560964151866003094279151113158853590181070993788742339453099657635825774885755443288003973777869896554352298926146320376440431932806623446992503803650953641181033749870860921325666620260461391743287758399069533900327688504594957591769260400074737109370748627292287696100119290965894115964968594566571182803719110374463022445309065089950791540141246706539682774480802027908578633701950317433184371672280985308443720825420416234799396184664326700387658698938242904429543394186355331497748757267831788454010357399788033038995209736019674796717804032821978253388133236686966367158406636656429142219938364489511793505192002475165608366483439768307743370821468662541522484047835495680376583351422451780463296379685550026140433084540588067015826122344437365872386149715953541171492266361720685845597948378152515218886329228699257029965250736569878655537978035149345352022727675627210680927684874002069083786264847268626072758062869330067722959707499642780241719877105825330702396648882562415929346948218126334218348593862837281314050794530160982401299000694362196453367621316956214353141444928185185271624202041398714218407138364570118219392906676917997991861157680748296284054464633315509527936235608578030634757679414325464588182565404108266473725481379410568033369996689986573277855720535053112443486128991576855312370207743213476992272077771014506388572452123591022301090133752781795232132545778398492979188414548914252925964822379060079190544978585943427101816802543634390318982811516180992431624007755230464227264331393212204950801087664690580800737108860975952115102567171073926424379178248822632194547786208779217310746008215250193018266186504615072148580688949336055585314026219331200518510748394101274579773835470524818416340562827873828787112011497388586551958539647992055335995085486063862758062709733025190285601011517963354939076673525455655510408376494559873469483093936262078460707851151315039369352424130141975282507102464139973511672908359459641008540455337629952117729869409885463550137125004196855976424758543277176609277517720075659098990864178255392090966362301421311700397305241593059416463049266357838845878251060296843877478136835242982195937556750345936630474685444815301577687631667935950569049500534944458517673351305894318261238061702741648412494080267152518671133320687436820127356287666911877835248058683678027800418252636226947015624751032244940916432653222256602289148489156652538774710256796103032374785481571668364187396044030344663552553901378395591034813473196647946603195624253777638034538116671747415554275690535313393711159708803217080640153030569812315409028386918947521105219911578026982512803934744013681758267120833378697054679456880534649728316966318188690980767968259590899947074712800872437697133495584196118143553831751477584216398266596550157077396679632431237377132515741344078241480679821077157420309591745104543735263436247202549254233528663965266466392993123397388987901621021275926723282425858409638798692611023619115869439570302957694124333203757652882974264813459701754904420530653621157448586661070224516509862609790745080174459229880322175908380495807035529104827962464369158965430628972760322262109098560495897992955828800291842339984829687693584466896123587381752472081381713833376375245858100031678506670951809723230084545333433966767444544176931206949918128983353780372193290815100193275781206469057186312389607813308248613882093149657027727380076097159870226476500358179507147027004024370252600457322400499196874598088543749390465274665177676205577582599353962430930590083227126955455744568876441308859923366285317818930127267785635609695402229262643094801086102954938983849843136264452783991180039025934576546884197752515902500151841873792074947705811212790032683235165912141531741936426951947287899716973590442719827922565119573832198869004575895014741864086399241349558388050525351611428476798151404672685559139237975253469648335304263579724707637429991869256373504828649668037660618080460053685117237814036779267519421070578527097827528945286172213906090494045072793157839965347336099331848510326456494898336565722935689551624896837365154213809093025006432204483553585664399091934733778699035624647204180376842934799284946697213238931475911613908635996237190792945282116607638698533077518704104553485448451037384940541695002734613259977219135139848802856497275845091552800584050408861731674450535468236182862552232547599160439971397206328569874122099244105105791258375546311474413170142661265325556938522695907597154543004196440771000284190400080248351488140060108121752082991550206814441223813836635394967099200066747068588310470534814319447141291357349721960745302156121383615197537818218155599618152993973976736288479450458204539321329889970254223170110444927187035665311381170521871354489487755701431449708289862107440749591951852490318182443403042640597632664054945925659486818982770009453907134289967947150307758189263561149065120753134044057311584027947971501871556496688524133713076349912727564724620157015509836825999952778360843790194739629626108774389498456199960258667834289259534561862558885852167308672675388666245010394761424919782346290369654886088624765430567542394110788859814161616239840382356010493686846474263887581889974539494358600755032322611732255622748129969370058709255171019719256723497177085836934497645268945899516608228830022052211990248263578266538879180865571273731895375504021475426706048225303613258126961693286456348522985706608450295001886428851174044121036035938465748937078290438634650011959495927011895860790848326582783022253452809578210019137144183699780944601944759730265033496465189255700857012444301722608295962196567450430751864417266443214462676778967514997382721138431269445559795273835737184907543545966185740462093604419913263364093521275008535144637392808339387100800533782697811923038358976362917939395340413776695665935661861488897969774588741126218398662236490073105078506754207757603348229940842162966212956460470429467038728795703018446468525881814672507524240519139642404952688713677161184562714160069765093189806425820289512904748143811637708570710463849155672874553844827508638232048261619478748370828745118909969279888996675399584302035174525228232555051458688194516897474335334676197489260487396458938752801874669304214346187908483657442488535040330635280355431980682742769399487816823383065722964866325845278567768026946603448740651810994869756634341820188226905743803400898902429524843503724915046262096588332842477508734083545113392525054471559964020824358911106165675616198747679903717744683889527348155648655341127122697183464166179684962529169929729806420982769284322349388900610548826616814216541291573676685066527210020472130162036115715610294061451237339035937489511082400233953847539344566427443630698738597335436886846864506488281735716897906233673023540349180912032461576806634169413305337933764491521217266063446634880388532360159248630784010947940847212770404569866076128094161505443401057085381607038400596885047853034193130026243108640200328349414449735986200845807802013696409023549702168033139610635285095743126046163476718043501731553001738785150141703328831128493993539903926053216443309814886491821093906216943192099686353221745811167047379410344498253874292745600698041981091436943557007640623999248199692237726399196318839615482162041399194650727013966743768744411539679141782560398044589391772001119183482318806271352010239890114940846901261348129172572686189005937692705528081615206908766834557134198098819961219728956833251057184440382840849657733248941746491998793011244873829394477869491666971838230464608625967839897525383319167297397575443992430011911735312260122316602398252793272792801986111795721160823562614701853116084999902009002000064371988104828797531711233289875588909178041208528841129560887555202612975796531340252667631941251773078444212396056500147255420891534013730452411424687374175380969580662202163393233464987750960847922612624844532787889995156956116259185139150970492042664629328022240236509669277975997841597235082938119391568555319899271167022143670403171710900381953263798425415268518626452168206044394348862412748250412851414920843359523117781425071925480388244378141959339277561883087106545366030915248162838517133770313059626204271538815083266092506857820802668518922252401168504788962801225358890641616082709174381611600850324895079415551217127606400443176842686453816590787092672555381429169107673884748695449377589278922140546200006589767900886653540205970194531355219152743791025311933168959558143153385237737420018465796366748560815415195341619091564630149274781234352004877815255403898515442983889697462783294028017624501380217977406121042936933763724711094184873207575078492774441723831103326793862567264877874167299861999650687957440627090054196890678059996112307035020946041841641380564728056069678412026063552774069468846149058019946731343359521977815882970347851059219887277206178933741336801327837527014705253688353155909500744823916807419972838574817802201227692071131018048213321989800170788891310587883987810300486346158488841636033311494027371228517451592875414803391049732375798447971676318724599909649970126207749564017515852003578015338396113608601622303337542798672222184757620403149206085273714044163926117702350884259993104170014184937294330068098902340807456031728363201688398465445981893511326514869090051458503990795420053054503898236288647146574935292262626388260318920376573354544735145423214535122769816540821228960780379848786652287151483891953281068378206601116879696719248376984874678784261428750172546175344741114637209704491551289211117553144180621007906004639208343334391385610478916818560071351686452573678933775198888139621133288510620919851123639235398082109297333769558874554670709451650246883686647724043448580808101084096318480486061723150846956076234679100351149981848270822943663010423262597192470385607362359957162791914089599997848819094718480949714587746306744194108353224427705438220566741052910796156026166820482806801648556587282722432097182208494959710094128779212024283958735647536727419434324312690865557836002011795927124481038834484641658952045087437583085704631085495543575648901179206814021036162268683282225541353877723386502050416682959386935495376507073228775288041826654200907031204515863042057906772803403737926550127395227279034024760217406095810066040663250542642535471010572163127213330207634364292907257619931214572396026419633739230089280163041991964450187013631440192574955363766885378933698382792058348329583898704813889276384299855783815071754554170368381663589085348330780406426987390294527385641562105780243196333037928927346991934331927912557341240937979040455410703261483381403013443895034051102968072652479512373577804027776067372695873474328187467909159373012137174091414846689932882744927977309701445160204042801301586391042607706607842409277039484938286986255667178803361781817879231691781077710234270013989065705166397881759794181651256661077347505320222663698510357171435892258406817087640570793821463957886081218878077149165439261466721840122277453545358947474053791887412429430476429119262465764107978960202488035121698579185329405961218431925363694271737172192720022730328323105092559823364250554151025823209401823545800818801505354334383704994962694511165642256688141061298540387965214093087919318724910715818298665545104581855197661369796969877680233797438036647889480609804435753078904344810806888863322560596911788839473903436520174308086461255286627895522506486695583370179458332859490779645917369882860722785388036685908342924496739486119594858874784629822931326516136813239251264041385053465317123722105553084249450204300819977209729061554149317334741550692944599937185312136296212703520585821911982924529721871355580018303736344354889033296922909466184970347339264011192738658052423319665284543857274269661942357023307973074367195754964239009899536058859447834675592212617058206095003561621445013419659715779509408177804206873162123102862410397856844321039525937026399952777439483223953001791199086697075434814293046037238142969572082571694313667673220584061743499823331889486088856836277109951500248804025309470991275441044144401097708242952417619922823630205764380125358630171808269238211000972024800248315913014703315635543461025813889244805612099484133567481199116074073780113072367816008763460751862278649025846031529358929386682061185499915344702675888592089502661026798500895816421831978052412635917854167116565115445996883065310779997688666788836199985265029529243234766928784978509369779953230071107740733283324301662369948611284947252262880403857659594216629174779489400200754187188704851932263230392185020095053196382660327749084919728351236291524211658378742787097262608504677460063998717519502886015639981490324508986375524304490665490884694869744523360074926898252376346946672135872431505185335645473959597068296481665826030882457593394951663219133525297644386450416632345329933397417051824178803785942090950587111370142124254462256155372036633851664468897828633758459938763212721697180656348181289752955887069749074572079583099267735685935478370549674595069009966137398319308496010600584127654418886572724148274130639608767445711901950657709295826619640464349759460582813345016756157221450288965369161326534817273641611940068845488806614930137903448383206473078570509335429260871346922203683710069008097747106018131395544241349491109762530903162871876424563041271065122614738965986790367035537677753748739646677657625977887334582464884743962650943700430706039685158448274685655766404957935422672374439380140081382983643531705425680211665990535500978332262503570146815997900787124519302609304119316355040232151164604550292696039557455503893156397636683493457166212744922672113265650667403756629002232428726042936505034782201057415850940850255023997020098845113152601353095219413421403572544566417803655153968941949226248877961003274728810140670700069352474554359497360888455059460834244583412986823601184970409897219511939860661451097105721249704139876499975889493888806667325371746638311641248212970831072084318441614707618011937603491301841385782754119199192182718081213406277960935391856314656455515318748228645272011790867314420198968014369886747390643510129378506744936502279597954030961462144987821847280443894277265634431177512044334897659983802917693943638296320555947337837007604312266272118175316308138992557186040356704611746403752022412263066124498654185320187601711699262862589105803930513745869214710611905213994115095457298769930101600069275068646448095405244005247802625036360728215285198443553679508948840887759750151386218950649989361357524415619289445969340258594316684157283617566889996168817451905352584372478160719851266876093056034622081314361364848128445726612067065483939014396291430991353143117663270659496962103508715867113526673375932253158580176499893970615705921504274432103117071752316529790731787651317662058402310554334720744020428840084723920984664200029144588974516842257577820761578891276155093900102531087805873949783147546190940241516651941679140711374348178921886491767460279344749483426252411292107897064214945101133109905582980696231802236537435595536654403666604818488621009992899523648153609787518538581203072691063471192455564695383234358136168920838915662550478750963097026071622805420057931964931499400829567251326197199562909090854376666407434248101610180687458204916797960515349002213161686254270359686828626677512062857727786068785978534324520684018556733647210126477734790256223870400174114435760197783083019217918992976311966016795313143628734178686127222751329776556325418318607326236031788890024912823746565510763812762018583280836683842511120565045237912898454624995580057083213439254905809751870201364786667798002772460857870921483930345453373566417035505928927047913126295078546147008268486621536969577299400723731077977268698979382050181354122195373420104695300174546484332386227357459950450534116122524273129276702938832862814142284169435782512562020323141816484690169431356328769539250576861377940026093444066712997994952432889681580401143807536334199049869527632087101291790740096747596673863246154020409700254089373064367965998597420434210415183539283424067831754691448020290108030891110174919080549773729128116437102026789191261253196136544660930019968937914071342361353798243224481272614928763757556552133700685006115499250190818593421654554342497543351005849479428140278632176008341966615938148238134989165499258681359628725796773234518917482757129443226014081756927715672608032980333148276047195529037050169056039516687674903868894178002286033761972091615701435638091583634973588337075890960816374329948918966091213810015737177509280180704510127793121618987662291583647089277071978064633332315022292514471493145530480697413651026213204327565171100190389660257915800966509352394639262968473183436835591355356459038448080210891555330716263738576085907712333766074509655819260765263119465252482842770206342137171292825517057602701815954560392063190083746715818427527035028224623789691638273486435088775097907135379961649573180005461026074817740967322309007288886931936570203391269580189849441063561872040009633450654110545440753012708675442576898427342253965002696908667823282971285299333752257365544522215824783032824206338210015011608828274694299898213953571941826542458176101153942874839954656224974446637678878362947026868329901991116629183838396068096372619121272244693974502777571974215237515372146796007151461851918924152654584236482934355504803379299198561180150067471805807196964134983464081553772578542263820894870668532988446819761453515916797513681615655423402870155237145328406768356038024783570468348261359754498775394286373908961441020638961173084214840716351770985644189924861805584672328766862360932954875075259544307121232289990255458783139840598187880026067980552360529355832519997571923963558233046432515489954812423211415861182144446748501056217507511889130765291319261823107931204798839715956241246125539530100348276235260608689522924118739012774329507315941580486158750356498516015167626545208751617987463556367878370426914599188013479347365332532643019538088283701706289298280720952272632181645462207669188959471622550492052817553524408787873218736259995849638201767117098017869573559373709501524570313775728833661123798498110577310000839125575713666885059218151218460864856471384587882786167389399939806436656783345271248217568293579227587450427001554345275240706821499608063153084386799998424754291091381576280351279757820039552859685563632739268161349857450870283838549651100718228079770892447930070435214440502552413862551306492204386982450225686982736963958799132509362303408676628110362687205179913567603004634899743486733019385980882593718326424878620742817300875195893739199559703766705650119903291290400554379313260968041420989684605144019078829162577403074237493856687599509346806100564745014535940224907136653530387115362603304439471560216752575120854943067815292078426791685846215240002542140863283364351517044997133805581983964038197664180865577780385090078392731905244779959904189912488025502158595889245017614650863051259949098458762717611121092394882759220519337009776073871656772434424136840578814580360684830660939970200651571034833594579196063658414912401898304481157588920195100693607211706732741791590737767212409816921080961726800925760075916566986529013911090328815748591568901718304565099976810866273558604200856518702245160508443213763756817697456851951303879652924044494860292154811405190621524617071729699292460865490268456864256822191426234717711919483147270269818671810322286998758761158781093286634981740472370931885936424280677261096662291638693465792396256954515472150701551191827840314958206408456331959340808668622784654244455860138042695506450576996335331092280683157476562423401457865541771439732256062670379044448774146487778042952366517803905844848099488498356693691569914893035334780511017410893397438979061117551256275581742371154815563849423784583766882800563878843128713031980322956214585596857085099493900599697343984240984846983599336575316704099061203918414450206701277213396804739099112873844406244920167887062977966830497917246467941588306252569492883982680615071285051389143035632503145231616938804910492134495070915334826092198693724461391401559222176236934987782586919303650601530134236740648147160922814965420684008732774938125874925824065211468888384234904222090853025480237499462470484582154739964011166399439063307157558375543466165789041088256078348225987575465699773350698738990538632025949182642536804984370935852453285329204699152372574716296746438696947373162918177510515635574809342983187259435007659662033309440751571244526218182784178014819075075398445349042930454043688220387786800857649135218391850203298901901222910230324909799188353262960079174795558762544562773181191425175344308636280646747531690020078769182818377471256889522793641936654632534580843688751312403934533138438597040941482831762464124762632273926637333622091994767013378532110418043376682326140149285843497032406704538626470077567955838306612154296776377702378592090199910057797540901487888868795928159399767780167066570225068342467857116970988116604827486687888357107712040945186902514647526129485910835039423593644863633617999561667431920142586210115946308887758419564666074499405714156893722347415850548884820828805689594845842927379237078777230396409945539280421393582245503562568423865248198869441565846015686895294054845150190449728174267021294391977398872253336558267705307088611941536803881428418851525387783188636737691197491834033350556045166504802874644932196101026657041086073680100356924188342972089812381973446359033768145805032521202690742258363575157031602082506417987053551518966736312955665475164861751311461207476475369518794485141195198623906058771096332111485770381422847421079311131438532465151123518908532277025751789181263069314735902204097470297034752088962476912761947816211022106558672701820173093534525219158149621734734399913159289607232950111344703775561562593063973582486358544202518209777297809275174880434000443919684484439621827373145500074296983622267386496596576033215631035702650700821195807672210895453669540086047785611386730105903846509258485926699064722019069480820345917957084745097628280570197303356254083529960364411447334472626544805503127285482272206999268121837368229648295291598473359340950525567327496767296802441618664022309696132721983836820180086762557143091258834429308133840710088527886133315983233468152682645769998323948829312612831249240410855033992143136757277671362611024139490205249305974660847250215657545695513888651135160932115165781639481960543662225084939738412533054079766363681157938406892079029640230981709921383260662525851623987995563663799379193855250672145118404593084727348309861516127125823430244086759197976553735552988878911226889079897040042748303309110928369726335816748555437467192841165840874778677401537286409346192188224769849272668663658532894080282243615981294561561620362057145314227620882394973286906653114643896213819209035493143211474916787798251820765470561993551363718745904637370779221844989262135176543241364282803288244446251352088386367271370813521138516102216960387207752769781345796219466468948191871369156756213895396338806493781179789176039861592899244855195130408701645934094986662494152281691565349551463226655702691528990273472294092675537743008137155649502488394210781939758410219201139509349778501181539788905062864991940189462664254447508408331986027691665145847088173172451836016784428592120704986344336465925044554198816750504613666232092330018787061829525553051546211325151510976218072574409866879138767100989653930682232051913161617071706466300709703418430679102197821255138447417589183285226720945470230123633282049297941433703597331783687886561332241306500253786060124986395013107404392728688058902222975816677555110414156611673074558819209456253054937958053437463603331460617883574214608028304238011703588619339641068000309562563748515343805073752317151456864238742930221380742128385287268021463307443353279357904590429498495828580974930553335575137558944700342020894273126439211623934296939992927695293538793853804245901857705623627233486400123938452028880482740242528842831218195773056951433563255696681383789329972105543216576882711908717851280125017720956348514438907174476206636737054727412966889249208011633034484185268767403683778579315064593473193618977241223205586960165154971863541166220101791544443170810997729524997748059807358820370658006462246110797898482195904020740597494325639719179793770405133059549290922841597387726935259824985006469081823915407041679329062533360387487890394339296979303445709320920532082690045456111127493799287941059578950548997521398156522165766107875655663008102217827435083909748106151773812881752745787638655525260698426627070269904130067358827266000166732423753783290564666448829024033309672107382472143935067555763475512933147013834177038973820731087360841531530303941794274932152823183969714213605279892811827667459721663650769115645547091163590867713087466838998585749630692393146126096614549084980294263480866037469752799729198900356282883369341378668838415121363136188800175039903020123097348810108274282124127888949658242752629778537769463398796869590382193283998826421224599564210640876375278895685190034793644213447120332896398451050579938878690127118105331435041756791183406799150205163134948614274749014750629328282369384189786047351796378083346626861620939653132812637332015127006808226983493263817899954558745922542047115820110339172360287425225780740231812941750783117845310827123704020192045069542507483919747160229090801579938069768392866800982505153164563557692687113896192471219490387715437246918960222383244527357675142208750033300863092484257115192196205877735696928803358245308997360223385770283464373867038028096468590161609954851650564252613554943111971790379408736741192322588753817163872305450024912351430332048479751867216145478469086294522244707103353590152916404551944084675369292088286712280974309830474860860704895963063350847830576457150590318941323606995938567425555458553754391993189674681241904337210523145211100680629855811622467073136291200124782909705682404497233335991790721865845463442175263915433846868780380149161628169512868226889901810396025859342005174729436184222929980132218170080830454889828804011788116276210907623937178530252283542125703211603471200402783064480907282146285323192795636421343440119308392501195192065855874799974420703672964411035624964122456747221678377826965906089678694819999736486076808424813045472197719030317322875448699296436180155338207124457155118032281734837763319629968078189406667780816937347805731099236179896810095998592489390279967905019214670779779103835881514978497902412073315586822119719931039132781105755162212074832793217252016855573629027191183673935892089233864099631634656487747809374059366949929276787450948157831298714194941377658391365388925717031293685622665951397600868154681046851927586926066127181899335478194516074812104045104730971755116250470508646316616208398515927935166662636133940748769412332567001444872597910209753368982067447994912550954428223619804105149145654526237482694341029370391709074944657820500933714390239844778401652640054997916571975770221314253198187643392400669456626008160880691467969823284224283956688596099680827419475939957105468171342992911153402998721875440930175904799587230978504490369017436672960920925863347533062767435485681623240928459395189645986116819916183926127799008850590752695473879735568550621466247844094511145552096765334741531450154674292368714519629637528142942196320472272515325444508589287405746174321745610479092316980905417588500928835236434983143864340483002572336125132720300929482146883689396095907768321024468551607575718299945964325195752968023538997367163982552484747486840480655508349418797930401561234867113994148463598053522579262305812761835685359013337523183107435888234180341979304394102523298600140104001793016942403415343170368533494035245457542262657420836137609827320825509394709633544053615142306877166172724146156951571864648618728710725732993716551959673238775826930184216624871164646548044478521194552054122887929132186208970199849890232564354655200517440558865467200505353871142634758408257248783483733525849929632362185712829379752473538700222378016286102831492618694281077372182857357610022099614531643458706958702019362592518721823095490812099605300590223917294128835967240036089936977961251918948357770682935586614118126314825092536164929057247454974833242846429549827277755695285474700772007364111692225839721203520186754120555044500761996804680803729186779755433347718690731154063049666337833909264505827517436296391249703961985115171475000165294677838590765483352259531785114518675195907746144803517783839464197606197456968558660213440652545182777544681086144682760281926806697067522414610823907085172711995663118523313564187521878340993432034994653213643720662103805635446819179775557433612874329918671907450153950673988486157665817028510879609120271084121890290699255363267412897641882362979201218450749248956208512271629131341192712338035662862394057491674076603145106282141908072381304351844157075412228508946941510134618188855064370732603311899769532534688055164838180315380339692235302453389656166815993859915312292725173542402550919299794886378277041907546992950653547980536470154957804712394879261935216579405328103465951509363756477322543120926467168337069262227307099953882393899174961713855830647955049632857962995544809827309670709127008590671562444904877204103212519746826645215488104175457094119846831542693685484390638635714939663769309316341304930221976466861101023964972006178514530322991508564493723438358541593254392476291536487356151402687142153483797796389924763316852623790755096910971468438637513918765612801298648185795158940390371746437435847696346275971585297593896823424135935719151981921465015141130226121508403613073685359333871712110875844870031590810015789744834294265438412428631314374250204654233063839510101765346593352615519392697450365621130225871325958368852809590305230922132578064484896246946359429414452372908529715820735446595438193943862610238019485968242498399443063901975642801505297503985820521595267831364192656251192062187830782414816378199440899928378666814831256419865628618749977386028389922020140439061628201827447328986265916119881176880560965070485936712559879065648793209236589960215511397521565136127580546936921825958888682736134109915893551928176747212435069707111930240621957136756864284363030809365713705222868891267405575578363260221490267815645904415406071393378468551929042846638725572107776847039269208144096980045229683182226947856850528404058240104005638350197383330089275201307518719286260873593248187428132822585129434755508588416239576238365680216596703890919598059133039958507302577162706607533644129461598743440858820401922732172802000009186125242610934509312848890372930612070679242088384631827689397826579228065254854082194596705436818727367740727569677605539123133083328199941651292534311502040841863110197706248960474936547772699852488428058245977508324227178739763988714959860618061196062820124999018204011541276641792138714166738722443362129019651482813022251903655000446963060847086349213947636935577401120278169300361144507428853274955299159540593019735271028285284528971744313364260708815886963681367554595462341110865512792902508112672082813261731614409832366437559888002888164127096812909359001260455982753495968661119174018911523328928090420862732004992511106246900016929269997553817897214765641181896292558914695662459688719467790627935907892746025025595137020722680601817198865856930624514099711579217666934427465471911524825147045098059135621388020091087807102494475135440229110643333449055085248374833432761955840953429900857330210854431192515559442928447592738753352978878077585743645985921729468278020325294467869931782451311462739844833629428231899228839799735196927315046034334342135926476021072736203271916447169337833986217565784097606382491495065288535648994812505505540252057441740899985005129186664464750711126627146831069290391421409618676372242327866057415520868593650121277481579862291744665547310422141786425263222432504730771338396378560364921273585333865421559761126857469406274586291601271179056687413174149758289640508215135891827267304875996416581724577475571640508090855276041799585780343880743554489204902777933981907978596665292512443998369167196077947181976281317494544129098798669445307792621802599250694206813435207197041209926901636299738394310515020793374015478558360431728280733890099491578986093255776675913665028065865518266918477431309524851189810444882364062378841464291267824683039759865503295873219367114826900343698092564376267908838161876506547370843682013060370875854473519967831704215542149441166282205341406139003899895433496622969305362436691400885469232058501892756366031301779036441909426441233004687298762953838677731701891506964486983945910429348892857911917728697072420680122728960569611603307272773237060466754604943490934435549879557967656130457751139167952077047894582117114464197949745202966411272957513555770514910742525018468178424016141931067108686577044305183533578475472024422399037382453711814159584705630504178030747548301289490467797643886040945360083357496560081505109627758224391890230397386069753424796337430828277580264954188061768161466030387539138604845488387148912327340177143822142631128785700996476306432783622870119317536455825305364800252511786406188495370536537103487411069948577152297060580892930162682906009617981561522889318952456605918962427018008061082924986462882481739699300683006238256879024938028332206058824909195058805546443579950171984579590004120664427197983968639803534738692415676686025612117613850548241609635604635808821481225876794145307124311216955545065437234353861004381935526525304613321769026774715980511148910229985220407890426910040371739743264591037474401686358309450822626081653327303011607544498211911921267611001762571512687779393463781915708396160968109426849397098098489283516233217410272613217840576466177248057769682178693979839947359112314915814263638020174357820872087009684930032521040699135444339554800804643714461551409673403525012065514252573362193863931930242562051440611489525619561147968458733705766606326228284368779170828582838743304583546070539217205495879312915437383268240762357274237067321132145640607954629761289143375115065288164712709313581872626990254759355854518125486969540771121659136145315505916247878800874250391295091254901707597181640838437429703784828111522180526530386477680443166451420990808814430473770439424018815675960868015814174739308148952067934023102208660170363133532712398011945319603759070243254760780900180551523357473973252274568396098362888460796871469075917313434417796038204490760273020348180899317950018072149135709994156870365056676999504844573846396981217223746833519403622589429772133913932839846021260229956420013505718340966201679074755547425896521018662620131410580660345859187541838195019145816089956545436198354465035554545923430259885055593053477521022266484109289544663746408959629490114894566136353452390852860792758096605847662676504385212819352181321802737910218466229735031340030278503232836189302069665705599811528146152043567139283868676483148432812467572337897635873751929404299291558385404082668812126596715343899662874145630383861627835423978526074651860472304350645114713885355356053039428864994079301189751034392282877874772986911793323300191451496521160013874184273807326670537833838050450688690144503740311832475432553968039357852920084064900045325845740768281395519529388155710751526372764779958694763951139228108956286468393719020887131186282527641700376855763001103370145593285060265400544333969916336318896088523405110425317874606322074021990031158876922143731649124007938296154277834984570185141987651771671213747733117397303736871339979048107310350650011134045503416804189654263006060401126580275789228498026791771613742601093124284336413590682072876076645363867060259052086943056096752943475468549967089286243025185169161080868425320137269140364707324293947681681756343073197696889622011368781777844402258794176350613573877263202821657868129239313509913858041584084317800928956633533029562499850327482333968918981392881002922575911735198823853987482825953007445007784217661620871886211957718070326873731729662803351205224187237401189714395523258134018485426656490840206319158323643992549857583635769147103579175087009342779297086251553535392171918858477553635714017547479215971595497464989597901765665186115508740609550877138315001051389035523940737175264777084039312987214775635230836008013178190889846441185833729873870648842696634704390505297866487349719529415114213629930467116713364587849763885695649632836045260668210358843337382171054752432938610019153349755137723479510313272048391629801874853073320124688248590445051642879407101958402028681800834255629093075628291121450653793893723472652558559721849316662903721188220263714894595854418745408260334213837680673180103624540215666657367878964583696612812861438950249410787829196609802066335030333451406846852561686140431681442879495734190383285636392715285714652734951450306561490960120348920102465951167287517179903356048781849735355501413316678502743609292556309195824498729972059054601256347176722203795880152812644083348725746137193763546689767559684057763642282859404336109137347114752789812054933976229347249248289711067833824662593923459385704890954440605208886929681236258739533775652278394991564707125694952596824257831096079429731551732878033938229862417130807380440477150015534429755889302161300677488377636065232866420711590288561034638350608375894772123616516081294080080287752123612591381940403819415044263527593614128300282651768600858658499537315133841023500139423467915556467691524665214973458430214376958399053495448148552900172546536857470242041444495639205121143844520646813402216138088551414008100481518725150326363526798654039623236272725298152024462920603657641789181495315200411032631963096797046212021365456349331887727884896314241782703740700585762309669699355121778717074931732136837592955934813735668873545604277353579894990594011457686529361979394193138657931203151597860521710597534945306629980207707028605107611241590537478784070305779446224475165801888033703278316041129979176366894607063325105721143221900812171146661101103245545757719072448595367817706263244650327369055543304156363113388065449246867922394480100088712568621441722225860368513415335225481768060092871825315884000542043284520668152306093187042055696638722834018997035470028331752637443332010740142650586337657832680841092112362873276756196838547953487853583873975661677492551912669476907971583786413277324043329783434117720060678098152262178495210404840650488480110052833767728546731468023740397979526151272746320605112739502949496352681099867820999619322711183156965462508110452914202056963788224996479728183802637710139656690775194171615455965779761085608951151171424654325881634095519170802366145488184917549903468814779425638164868865712422349085971068207201259638625835023969728577162825669820038459641958428598263729282748013687945581829780624306639263685554330337490569614512114861829647125278991429180304986852663362781549201814976496521204150857702283893012115156673295759778025282691523807954889381985776576148811925827729387496864368146012019977871120133765473662010802822611791132868026149710940733063357921532958969548721660937597319313713961289394113059939639737300133116259986349902027180195100495023484094111107255274450541206878363562014120047139356511375570969141714339015355856282933976240398423500133938687740874070888278449064097904760857153690805923088844152333100404441479281836423728382569138833463623433712863707667046274066301723806735520118158973241403329176981228307528115734825132450353509847614713586625993212737663134767253596089071213875391640587305014325685409782604119652385122565034652959329273853441447581728990507592645571626709520979332862655323285409662344529842707457185073813577761099336630759331242462076439617685640511264896931451337937299543693474172522684873854093356064584005037689604566826525574484140367403627201594971759369737590825607543641312627566557118495167341143209963057268604039734536071563483018539888596237138466335420117473333823090808202379867725612206373521954376464145568404254304654074620886549948313681486379732434709133794552674749879262779891627899027283947286724521844904309837503455015577470815142749873505258413373336446494875264563767083228174553849865253704775609708339224194293706426938356652071638514064673831410348412996044816468459868057831247520250494167460638132238483438207406490483444792784858464932026986176807535528255928306325600470039834024212459616221709767789697349811952850110280750245551293321381939874488906232663805463523603692281558499957965750809794826916585216191458893655737342194710181287321899502344819785531742891156502646222146599415971621345300769609282718755636789881209516935408877653971463230279973560737531827562871210415628410327180842807698390886699541570944898744720573010520865983800049116755602144686284231285145088075566812971478321323471041637138456241151681910491854321582995546807765629826667547142009738693058683748493889959395963893561523683353784884076668549841796511725444716403364710061723232017127193992494067347694455669223817765317333990456211782831777089909610363782665954654048482779961546179451879834592060466577461282189189520944868935853866381036880240047026383795172000916624045885400957657681736586648972432004642104234206598061228526913448459354851110076813392493822984626547723760392173815750923233341868896415081798465353963717939699729714186298937621297404955574384800281705654414778591225874854935510649889242353630933361160794434773106536142413116362229594265964395516208375621370523825522917983364239412203999137426781325431780977318897542451338654406132608860556513982616218082995936280017189480186759886577972796836043836992662879574491539617758522520943496490547653979254359230554980702969534915044159938711295967624808470823302176129384276092130277348694679058680400363176256207819666190307176879777777115984310277162465868923394112183223634787444688047601010729703363897942139576362382805797164004653349439026690597927304432355177685594504787530278118267850958776606744137224357644223336757229290213829975987233098353021694551340458233629049593918910114891339712751503481880370527478560321098171127051512317167325495102479577279954687481491486667453937633985591062074881830566734843666018292821350233953907391983611566789981709601793556361468465028956581572213178397717367047635245520956896195913360629006059419051948559858755111211706430750986634489301997728290141733869113360905589300043440113577093891579248724759911760306464783318450957411392320001784495105932617098449816082124904379859234819085126366611097007697243547635389393178250635704815734985495276760356337885078924460343722040885431916104572964208418465220367730537820412593809682686810465790167018101372812669899808832293071522006486893926551421277380373816488032722106307178585391978376635169524847141066016128651113712646738389278574640532820656841471200193516610773136261056451749270604941148822969640484177188381678741810198715428190025478276126364603940909778515066722619505029975036227199213782815306159434917993879038783619678622403541520953391433116916928558165645680306238071719145527401784665225441209684689525842584128169034954341428185925205572043145350337011437337884109919309963313269185311424255127106438138646136233828226807667995818006419919651153268425371715459325865823440168391201435442852890633607697278149252862594349060873164700556175874353324915759887940397307480954133534359098312286104443154679365042849545217346132480641433627698618132098448680158857041778172240490431638954417544809197908484915389185745321169833131771828840688230479040927153091881977219490220854098815062900249887856544646132053250531620885651361910105166650787242346523065986837353792877747818747939674237603584429709904463288168667995298624513656939013674652698460478233587136045023911438369594041581912887692170825856995534556176899826750585229311429908669963999185861891124353112689167164069140436068967479715334820808137464671601738594546939086029064408276603316443881198044419569277066014304379723095721769112507807621600175303251004156942648783572911505249255188380320552483388910012713083121679070777146631311824641054179214457673181807192047577003392531987390926179734561475273459970003082019821042598538130877395425886738999656449875181144627045401597310988410927866784752919490891651634908037958745910767956425992909678883870154167498583095811267281758632127792646956683787096550415556956784875510495814131213555372949702137458111919367667279018812944037830416003939300852100623205173894473892096849151674394724507512573123904369055070489118467467482450212700836050222261106056796384459493763329054162528165637884206689360983681007284577673751659468426940325448467296406056478960495752935152355445661076886823066745960767586316738439865827990568848233653851031273962811357491084071654676035205648982095976636655022395249439410636487827008834573929248646311357937083790020585924193404393018991072453296000093254255379184850291591181534097672716570244665739287236561724899772562256499314075378081105304098475591725229173421605872616345672919000473825550237088183503564910247234545272565395282090639529715263881856182013956120246271401272793695115477832736597058166404867877488886702303502318641035738583506049845012661130615814365655543416656494465716677721310858883239163010921778996152513609715288206688433044449694946238502083811405048553386008735183989528848789445558652160996110282729649555473805068211845964712358719004238711192582425405237648886019269415757837771357880285097797895010859323535303055386178798266298535156321599439804215643163440494175036389738696919576767423339600151488570131651708155277109275149467182466801469595338457785734883234183910511250661239383219415649200301465531602270535805889217001631435623909585843055511211921090344145135543916746777834470564861909118107737476421363894651172720062092914352584247230318550943305000894890878338550874136344016669523344208420290703629326817681365813271268771585701214966709852655596680324032106763389705756179676536218996082124143281275188319460113344877074580133729528398009542237899880303575308003944049607560170039597226588965025991650910699854307196489634957603488902288959331096788630757593490627970655441411279638217232727676607795099331943175882022358578298474952659741058281267708413314224585302899292879351619023783149071257316122221979228159376322502714586181501894326066237689744492962507998128954104152302442915917867326253179970658281694967377640562513327687371982789041435397725100891305901086762203934449996476359358473208367462967373606556900147095550968585281932070909603680641023011040667682409321927466401072499642670784615896938647989773398226019950428822397092376434410950401789519949495662955654245666546151822399503333959048982672793285754262169800744634688369086019685127250929114758380864883847683677137333966512184750786614530867262412734736790150936059283668343336503823957226303044416957379574463715408046762742182355270693003174984932671048473281038860963896377327618843573030577179741933871738128373645683825958587194631404326759998884696146006568206497138701299744907743912322806801720054229430376574198749201253900816988679455532661025692949552741589247020084706637469063200137671664216545605445968434198599098977335996271546706161892364969305000071270336930060937222723750612467065489583716279210269829304049252991632569075266513262101952883859248867044733795372208522724963992771228238595282178498352640645783298618008947319071022581455242812354735501324893780744602073199948062995152706363230784010487878501542467241667812794611034554604073693905542695938918793239506017322928798854448976319458108431153776090640539914017060301019616800219599814332357828927490127321573044170329958684155927717808242265246772475275406456673318216150066876018782562642616133771632929755257580237106444024137662658324335358187268479712149031531757962236485885620606869077796470170470604186274280797564885586955461221042546217153201140744188356775618761155253572625971501958603937197207548475541199405032596185323085749440395344130831199028624175979170960096320157645075123145432878637439885373280645848897874640645079889767138501193120081770023644119327534888970858121852949203280981295098535514965859805896678935996508467137734418635804527188067932291059031894407380965750546754312222073163205482506569565924462644920167272365389825480500065410915476064678578080948262935502697486885315746009706276305267408413215428189858536177199036662026697129397659615969858523213574123511937499434679150868817498639686160310470586905928680120186784858958930637587537803447467876676700398629327650783575985296401610898336429365469080794346898127215241818695472214788446208286937814050682986401345183760587740772072261032504458812967577799396133599659027001940704379178538015017255034595967034420147478484441884063392209276762454174768454945264888823865762401333141302914828380251636608998821924993296084288215678718708626571977636920135648380510262376064444677718780519959482133826956894265655026564403943041666657310865435539362720335134778133098750010568994961427426464862735763507050498704777789514363391225925562986760431961564984596115577303149674672485034517701830164650212835457474812171066778849986638945347813031025279054082613996275911915685699893006278314410860445054453889527425962802213346132219246426053816141080480854951798716931970545474857087099329673053685671322921587945563792994817532661244560623451539208569063756218889380566739136875120218996241475043125093063969463406086556032611005582018134520725065697783067892628557705721236483217668173711342193561393468154698959422460728643511402859871880696746191543554661041076072882519791219337631996117965630586546972139275375926090274255143176139530848937427480554498671270807494684842147834698557280908122137490500635995642482514591991910411657692220439291202878292474449837427208247695821836809710271059202653380823740934110202113198612695357110574757918271819447373732619260076786167397081058353403449800923057204514387173257843979234223476904365033044316943351405048445724436437250809539860697730252200573736099699677967572195253691088327725876991148629738861262208534960216841953340824256604552386390539472031416330477938453772462694063099798331268124903128150679126992101324830390595312942891529617317850683004470730510912137713439589034466713696123612991351939707983863242351048283850978822831314152286072577208852631795980275176853014060805775401159394913549874659494635867872922823706243057662203426855364379285400922331994585816692121572207959939872144518901841736205126265176128099579186547852417830973164703777682487680521157587305282200872388783560672909756864732776210305483920603969010168376302096523230848612058295286270310429538283549225115062293641679276926295769759374588398628542668121668702347046557167037001911089872774449604334672698001107574818814052882166007895569786165100660376112083349451189199403643369481372296410079587515917669054770301115960156956651172822615040344785088614374064826889530521593274015385860898935727570060190226241620970112553992257858387003458073548297428052103688065118877638138237977994800932329671407681250478927933402163225053336164174590294877840407205331403886979748301012848790365905526482632097085850569519864575874315337603908361179505766684774950376694147046658495077194921710266507097060692373542234583392088042853865863201792526185393770706342330120309175903729139285154063986021682833522050569494376874845690360787686505129111541250932338751844622704611747734019798307933196545345913755836470871296717025627138693694545172389675651848359740354969312647268473685571223177804910995248647845207313202412027885056468959388349061317144806015584516445907017469319112844592285631297264349922180280872260503536621873858364440581069999481810598775159238325852182616110239405009696603622672773738687197988323345369962654614004969865108316455600281594501530682418504822581371352028466509670096359073049241059935654351678189362141034641699748423904275398998888604158169244873420643999842508448984228996583405805372461215991536246656190631436784794593944964654201680863716445137693270729818951707263276486512022791764404637837148321199267060877420833366697943211650991886409799914183690377824800714662767450724218197370340145327243262566793769022137858866334310137823844230767010222436010088966331121903591125711041609604803014887785034082763396689926282126051045840751112311178450735682832495364373411714484240701551224999389370067580274741110666788923597746910842148852912416810084649553189631797409711936510064389671870571186217688825880940889896603196725095988077930409716953348114541265555274938358988098377293062005170015016279095784427961902361529610870417447605270877144318525219140475904101699420975332582428785367894971359639009330789428539647329424826196802243925460664672902291326877626448608546083508394220152244429220468827681662009770334106816095223389784942973229648619181633199495671914022180642549438970179070554039737364728531210162386950609093994235931092970527258553875646004577646259642944245351078701669154246709245712184220282771647765021599021305882434081939220678123536622128707503933151543231754181848370604566519882834630265069205218967668810275440674681954147706745959923605863197975951698443815742298392063299615471887222418235872178436498900167956479188814175781064947570716717517824994862429365644059915164132968002201229356990742476886800784051071189783898638879429198037270418814726445352137050980515331068067641006088510664423961772711810852350328969231232747591515087917772308206461079021720533773143893366716258432924352741442175721987513640066796810272242917702290434519387171049550781180998811107570993554882125020340689453360782108909370253502344443685747501288125075328081190270693069597800973215446805266097880006753054443541278327510817412358368977898483564763794761415449104279930611426253722748318224527035034354939089610041810673974016996196518432544427441494696301084511803790696362615781723911620533635470413414862295167164179323860957576384287075581122821569886515580880334687509995452498369442306419328126954727601522048379031330541127340492945785325232038717161743971802027557019643394148086334995309376243519492157166712080626868103578753468177571356116444788795744477780927407875281808311688411327931274835957209407141227539593291871405993823093651344179872634180113264096541293438937146552554358192041926573165950889267024774603271603617435313750714701120629207966603857708052583885763472669036344050736321005955135487409846776577364944866116102319010403051313400043028066292096291784146564153127250083916531077941570754770015504457615937483556176982256345650845233910612280921246930848911398783662324914052322738062326808592775917182628083264476380007568439290281355944371181701828268430221163662665050571616337225567174562813481645363541539233694611926975700392673642890393602954979966463345490345782913128635861213784488837592233984933919686911495618097593172445791407997928231651034124149055637972177178368294909951037775971909384333195606592390188682664344320867796627698493908567570817933813915387350559113803992489818635731877901254012358244901378974423072258095786911581266787012339755992208065354937214992210992795211279095094743819075970792143758895721959894915088488440269143370367489068147545927418329527492290399240110684163419163892760461846696934696884474804465678832981184513639930805268719289025414573716703099808626860986055883006394268368734906879522949287946233691536905079924801600691714801175869667850349042086203583319992167067268858215797666532776099700144980965906867714502529308580842714915371716320381106820319853263674699321243332012982698909111393433684296952396376893526761691554332090757868987996551697367171717621046948978938845971981459507092956422427745688346986132640307926022927799746345350488215375004545454569528298230492403495389906217328871662853289977500055798133292539577585460198020236369417515060462303873863061822970125510497706016396029821880600165479186709001958153099404085964699087493127189877985139710152830965170036813067933188851973011645341453371455461755875766741530228233377762306852544835954119705120774575852890104126390701195313199946311179611548933528317862634497321319569923683564524174540496633136512939589078764311120418667797461658613645419224976218427802178937114314160678413389066176996937035745384293250598542247074274049802626026083047491267876534410776837049533578285435679460741110772431236137512830585138325732720589831473643469995588017375546073915776019084060805325276104193730900268733646199373426283621119940744007787988504642176083133645289001175669187376757112610690211380176269818478236436155373438931631689832931459600539724463291232003021230104440660328887528309907929971136013009622064079599770158211815605402047548002560040925877992127543258390946811647212731754276805930030712173017785078115701638698257651583762373302100403465540135161807119299498891378303480755371008547511138520077439164727652310263642562241879419847448781272271145034510804246483821389134808752474356179646997255085419783895186189357229778827014105373207797797369302163173236626532007192845435544272797317695533265948255533816802052584209396683190032051455843777124783952383431023665094023073282279003564039557712638533407697656460132322857902678567311463815408639354778881872562068251680689778330860558417816208758181127927523400549266095305843300601204223861495424928184974324064586864112175196145549280405247894053913499243743672060046080411410825440589487340032462477027329138060473614751391279116676411665326632342174145433171473554243508842562429792812866936569829778253386508656420889912314403417166519322483346679734659226559264573635984494655183909942695401689450484742362683383043022926859421388652039587652611948582285264954528095320170519847769647528201807202285278882552735892863302414556140085392923726329749665039403687995497891034240795776986370967722095066380133517165476307928747158085857137481824626537855698938266181790940770810448865167016978368065979334383041809082083640172214862638984407976497235173227135991868057178946062818337460657083386949102548550015799809525701143195448174774428293973967213406562187391664104772670083263567362873994229092438565075822235968439020612202741064669452977308522099805093072518345627309282654045882529514692666131445005252082263050895874128150650919512912991378112501756873689646391477181861305125712888577279473965852796181566514473560934021499789376585965929962417528689625599559105852961106407131671899798841469595267177477145978229380664867342917696759479178046880615246992731425720846128816091315607931348701998188061477672921827533234921360364465223680215228874138097705542058414134652572814003222791882323609248928426994427233032299968092609369972485151128181032607183992852680001020575714447619028316351752852262498896080831199933631488224980897362549015949328942950376844196847019443753224705127924647215723020651648204836518834334025004286889859107202172693352783409037742532718488355216160855478083898531982825114199572863519304750843407051846538122238093651276459768603354725356193284480528180808488741607326441241267267809792812146023566621920301150867732120272139928243902989838904246604333078574553349942987571080456315223197661781065765238407836752684154073841011219247314430596223569890144632146384715637210410032086190544474969551228612148720785577499647900622831688023695004483634093455227222734422099075646121266425505599152557768937904819446988950276902589381971592501102291150495196165245419050360012627731594359757928067267665908725239174900533061870321791850384716094467490393574659188215556919701618785896584768472602831105818534208046813895440017223738003175455566224251224810907431648523066592010508630543336361769679859700953024616933743946008681823903176129906173490216218480564275088852671077603975666626570528284669403565594943507597073051396655047481026098647301323288745886337079182183014162848819203864376591961255564965309686162828206962706358735382752922946150021855092393991454673914661879485845691092530348592214500530764505364158806209304659971078817914995597495452341284600801713303377556358546883232354604995350986605227923903586681204931888830477772512758691334424196376946479330578555967755546222040991383604144119781570715443827159638304789144439716358627110385557798961410945149972206042654198844360173318647931211849595332155329339647925397058246266040885604243415464612929558489512261944303844434835008467734046415835042014754501227978993766782557020004407645840807313246710633968598477542683081958833446603370160670755855152839879907015375736011780661400456063898149338060733635276325244087262759790036792857129047828874301971776725663541878955792583467773867540353985243642560529563910838894931739943427767384133915802376209818096971167111093280692530796569441409683319872872076239366884446267443640879199452991340501938904995391714075094196953613194146248808994886690497640624573811652823259175418598735455454473402983096439800065994316906777950411927321655253250745350373030519584568595300892000525720523791882908312282699007966067719584209013661537996513002484229718805963845742448082868047287279286481053487418907817332502862065846510464675180303263838677061482708066199570441409758667526299139391252109606701869181116787581684672923976490762362465031641654657189215231995493670932024261718045952967888078051164533216637449644136656565680585409569674789040335902271794233250655879395339392498799256585221497880463918412135961169286377724353872775975029696239483885809352499455186229186022937503421289294049337349444533389459878960183571992026056635964498639091554522448184359607841476541203072735777082835003595855086963820205723746677872686423356461294630313192724167651093305556504207655084900313649554754482594841009208755323275055651267193230926380136764607056055894832412435827831311351380148501088911167188432728602283471932043595620286854515126167053080612089826354032460408045937731045348313452218436915373515349352787830892552416033479799287691962755654454754800956263083671660968232588810487683310274782179544786845112451539736545710392799826550410981845206111809291421923901683608306519809125955300094215354394279701076876530034921318915712559851220633695130111850973074819095081357277159923804709950145800336024348877017700089193006978041123880655833857495926230919390122724013452151013196423643183570418089800481076052419437759990146607283677440042756206269346432235211120972086541830710764819755293609023867685032813407186716600665077709586394161178370127431813832937558055617199884754210846582111286441330525041614188162449283132496929136209209090139962209247261108768424227143086031831407100750786822224970668276953369018046505672829127185028504193481642714627604812872118263438769263048753999182306654104710074148006636893746407198164533684422803232143150082716241137928363957431280820388079301570501281650674882493644734667109096612440669188164192448584467354941996543577864836593835273663427940453714869881744511118884361410314890867361138479891954594111536298449067109310391473764725512014519246224247319922363626920908697209125329566313908253898641829160703981148509998487856492176303301608571167561075255610815065045291383195928799804544696301587308283609937323551651910941603585308474169401016643790983047603453181944090662433132560859266730734395564514919594849710281551483667979796659127446272912288167371367246451579881275346838881473553012525984464636141060503561815487607746193943385849012933015259541070356634826561051822576023212310311025388021226877686083557765526961394361012203713316817882891160496162114362743349272071899337204499075875383420441352390512378170355871314629381879301432088277357436399483477915968963426825931419708666181279419605506550115004681158969156812424370379140198017434620401234355918294026260288748766846920390575935028856297995516224820620941644379237293245658104202200561072642167485407580659825118723299699668584982968181289300628788468014710781384840643692947183444863953614285964766756445494566394500231581659634418884035801808090598958901474532943616870571858817070175995784375801833543912769166759476607219245197186910407925770745888178469986135058115394027115900992893235837868352723011544187904230005118924086765236823801732474109568199166559289772040748409492657923510716552335189663670711122075949027430036952375133733927711970552274388457037396045594259514678121218262964946920309499965297179293939123001178095999884418498204589432743694050991868958694595695016035827230341438832208547214410508476243105506272272374088123248954655130400557385153009927605095826213871858707352664130865851244491235142502963872299814521388191530119602686301965268490285757986659012195076939662671401483413832201678673382789204390246986282722366695883416073119377694632527511508727681062115822373918218924363674480840504161468756343231208839523586610299017988446156975949595727692762045764219391398052486279636576737834245870778163292531162514721100652880480094220182987240027853523594502714760241937821630068735418615467147659091365413432038553499487714102969437704175243327477534268416904965022813531375749446712421726476328969114639891200657712364329355705363114742000745095374115870448451820020561205305539203253206711908429946437288637768045717529067831333632702911803476584434997664311943825002712717506562804924698944558908819719261283945701710506109650286925271799972436091345812962539846130688341210657327377915202297824987723732012326307087823300135464661510059624697484678629903195316399653690980884852987819735663007227474746809477613919818128999738274912944537717012661933812240779391096215119451421613888962581647147675057789332856490506268529193390145018030232310854940917694808067384161246296849502312984169049492741760328187648036568631939444854839380773794814127965618657594141564231524386458472054572760140082016650460435305698732539252593950565431002665602839610014549432541436649087087160664416628131519830672845782191876351730385341574163178936846799495833283869937302243968736079769757064433528444516284895172381485507954199771054008639809009733234015515811597644305532651748260845168225831448393660518065037900566589433847770972244056224598647387602320238527844053961793161505644830397761432101692681690237119985060167277707836922269677943452927200535966949303625755524789680954339328145584519720776971952440448217578426618889787639161263333273524697823117230467662702969057099365942083124157674285092076402060366415168661541767338922690941668944762635004013760632851518821802599012051997096087021632503838616833181815907953997104118016079922989650853521970291551410470039989614797165265620646463060453241880030947855920998541974348446571419234493584151052090443205168898079525197224429328172413006208467742578481842208459677618894554761783947742701305327922100477535666529719103775800069876429524372150884285705981798339089418081842610360035689991406936984230467649563238263078994149898827855055141154666458653154553948245885239181861565543236638482953668805636770944637435290777300432962282893266331120138898362122593285407844465272451230551285405783921569280448703492905727803514590265213629946420132759315234774408523624784645081337182737150960166916075457394933241936678433047673216671745039022602318659741149702445739873330593489762929982941329836520693333693862318740813968322442898624539865176912239153937729093165338045150912615354433166003253497770419355451453120232637581984634406859567352047883086844412852329603515758485531189337502134356091142278677675091574947902188416086397421169221025843485520179570970215842941921192748661004407156869737693873562788501218607518443879431205059855514166987281387168722286686508962949389079701027383980697692521249060690813749820023515121742791665755279407953998686018411004398059523004393619087813143428668653184348732374037266627891808580779244995034185979810725639916587162245956992194288312540851714734272165704838921798680154604990639991202382089766197346214690319648193118466515073369795714649671380791102291584325892135521984674377175739781913610706937081928666026348761402597695792313567472147052747067375651695475150877255303450228733134362905462899822701572816870951259397233403913115344660159327256852751868287717688513463274631391094760124752746126368692483287665400519885676937342355467693672346012199490408873818736807443895070859126204893124946932852959872067831178094880199756397323505446097038080827103001978870553471963255811108510436157573646167009897577463883612297432559101077196530765995228396781299344742825741652295463932814038479060744392489079497180394251457164511246928039767635235735225638654609080885540375894276243747853940154928060357091505441907268140094391962404857540776175003533495940522759900282469029701285811040572183589200366532666258718566904088688171140676913686226959520054854524101508565088095025597886717230474110718096546429019359968557441275474979727114173258081208970332578560475780005890175901343218960574309807511055659495308551297284979632473532129255094193706742783338111641681905224326909188209512595723161653518959137823555254276992935822138064588364796164585717933834131751765877384687087029231187894134175175024475260672961630694845632245685811239205307214907215948694903249622285130018644819156611724096380520708513076005655338976044710209982281602982060343243348477492252875948171558180560701080760720092906831915656684899485951145657665237922546247893307946280135099874664250070762086090358290171040785231268729049080957341267575056704365885556458834211119783346036180372823167211114751222833439706103403328029384491485975167140508594433564159709739075467959047909927121929421497672195449004868633478755361868116698004693650330787798860570141976334724085940812004118934565562421520904374265666789533593579291095624469176138727971138076361854621984229190676474486077902477009872510464165868859033989757339182149030836850019374538836641336309567030492535094810964511372195812376510057843477469810820982949726033377995790871306988815174123607407759409745456742051872240434275277825130050169735665313317432830258424491024114600678698442031589791473225788920534555696327337672289208928662795425598802826098935991561848978467557459202132278802131943087416958799352540958113618571465709868604510136420804392225418920738221726636400946177598769605900289351713304532468248959421072270641498467301444143494438674987284889335522801491810443952992084080168940926359504132552063259283633089690618964656341702087451325726646810045535730705267982758017591232340614365010626454195217790536649554097795053047415505923237167799013331976937647456363659980821025742452352311766501031173626270250653159808865055368392142897339888260353904950921949731466901393914077598554315488854697253711452590127881094554465019396593557697839558724066993038349976149374880023386881758765188700086496603442462475200066604727568204056625343477177620823305839993365218124274433332686954354540335680878317365346620261989855006181165795387970987786159954565523626843699922638741646817861912699990092451541040532490308624256894179448358659038954437483816898725921264351473486788265033510990888445860822245719755594946450971305161738202711698701546677974848877139880599783392379971466682431202596587505881792843907958066170379775616895294445467865065746417166360348921084734484016377418558451674703916587491120196756559813055293381628133431390396355566295358264086611511843708953111649003950282480259385796114215620246006350164406283273065188301515686580786832667442822642014783673255827953803452391276723175746616075614743467042419757905254486852063028191590251031434233511835498715521236056921370827300889247735146311651874970459935533056723029099705511425669991690937201882317567586355885146741003733870093629524321639830159041962843664348608286726680964269972447448161224153880937234014660675886796207231857398776561564337853105690594681795797675736712800891580619828034994697539817390822341282309674948691633559886009645057761380323356330279463042547513104793597692452619866569329130813205084987074418253563629291256102634801914139311956207009860389780709623458185729201108058230131590207821202457097331478123674672813726149129412314759871735442356436982596281023496301066276002246961568045603933784118026419153904159364931636726345916194244812215563731162963873280841591979399546746485376471137016325012847747800025574248131305972376497726961932301684463286481815817364191901169189177920391629575157605532014164824008599332457533048157888166325909219746526648585730397493903481322417574703249267212749085431321628206718053637286253586244250872080563834166188171717508564887546897739340012046992420117204186728359495133240185357787890262370123877471791225095152287272528987634133509321188884383471960242717080377977803791801388433117154394288117596664135763070498634020115778761930191654494695632152900774804984211325082011939361176217246642917875701441280790423278865809484561963819680237075893075711025429794175238378469378519844787454742617480465014958290527434594224355379653212922982548889543111551678009210019711914270411056302650841108240046556552665735686449974000783022124591592473808886425490081901310474299175147995926639598732109421196596232072453083459857629327939031413758914498575790418074508244642932736625478746458140523786340801023447860615106807710511292773109313531428101095838184764083245601441387726254332286587180305615536416409940600108776307174391428053589974330429870274834718792499590670845824853634147197552332819794523734119807665532255101403060085463261138574305426104988253121729158681417493650691059938011397057347018343013005900001418045995936915946379772198010555387964673551713589977756196881068728673209209677734899800177282199439035560628514092804707686355884958768667521278459710128887390589340286506241120918870208941469181621577616236613015077185005323394413211391037895362324203396574579239328379020013987598012195283731174816167323793845785013553451123580596563715390894471869152188221733744607148219545535186431396745617657275278906458275508343380897869531158164543051729608942938369777175106734140497837929079381199125725874163218676141884536875735761638433671713088209393386170520519230409366261048525304864479997871722619437081621474406309303926953025035541993932541882006432814326732344403523107330520447466003295044309886050815215228189888977083498991396848064963801703098767976207166601217599827071752653162530046415677315840230601747718202838176111436463693792941102501520052175327947454920488434915159945782631851239353029000849601751887335009271024588402760996147589571700958771346858725554708020636535989384796828709401739259791674615831326351693574480925878846840459686434650876701758054332631642745175298658005250662277351666287074089728892858682162541345118960665219734616466631129739646852446898784452561701736442816537057240619972319855576568453362916597197577032055421414755032296482016954711603618765715405085396996572826791542410150298110585885498438112669227552831687036722468409521973939629474010708686785191756601446330329068107416690099978583084581451534451908587602926342686963421595403673469230413380782593182426451880108027469372802406991013767721904162817334241758183490567527146106199398219502125343093418644340770986976472409822235977755959022307212723375564612615881454240039655906739702245882164675748689195435385855588421483172822424670641963398573433270926008356527786546728595275927580379821697276744209939535916492374086590548531013667754904036801885936500902559844006264152140573035023805661333210289518285150654225575935958092881365220799986594289721555054724846580091569832560106378291617434118764513435575221893729388487171244049278310625885272681309313062811059169706389683879333550884802742277044735923812220520915780619038477525007943362081893608817537273985950560741916064102961472380736611238796778343228155709777270296792708301633420306602437463042380727384065827591913405360256166274106771850658757089997759987046036281638555026340728259909636618723662376198361832808999930992267366603509341270303198567523536866139324994780020328516179265382704528550788723406126580865423463040608818236631680761680747435524181952945135451979465218578104660825519978806807153239465169970043359965204942683957533975351649668627706307239143745988432823589368130787152931869709555188308700558024317330683696338775710875464693073422284870096402471390954829487888303008817348902719423438394582988940801678905467357698696359415474876194555785701787159299713774477482351564913888351599028883761040643298582198680394596252350010458245813861037524933710760136855511831087868365223936617317045201024666551030982543747671752872223379932254042809062721615614054297772871510851561668431180847160888813001844016893542421753860002656229100510488723218294237839876901819062477082426492145539446031359984063914539640962026089606008279516839573033471588652741323287496151011222991730795253614929109505409868569282109759513425129190053318294825406544304393409612134037579893211865391821114458026896265691742908676003422326012319418756523999981420227049445520895302016595039234467418472076369440532588387710183378110396519085681642594935388113141880759908884285851165456388129121022288157826074776084995617669968567882139821428635449283583930004150042353049131770059731635557439894768336487912048780014204435880381288288311100114347678734304803957342339588621382431405013470007518465969714308766740480345040872136349744215244283567849348250147134530682625422376944876293689798586412991407781018807599625508268440653618281440273958237569407336684045411318419050088204555424747372498699619778526028108481283384167795215772327797731610748624406178521098561564758571771236040996307589898795344504522505767851976308086125319565233049037633322120757419250221869876216719152664724415793199945064075463771994909141446267760726920345932860183407310741001757716061860245011329411127509453140183277081361092543473018683448126243150325022130509699530150391305024411067446580406945742502192940457534909792209367838098656024414523424390280335190199904793238836505367764252398455462636855253981799121909442698485350420711688650880807514341938510751599920367837521849615773263927442667233465202999610688938720728490522141185961030064133804746951192129047924630371908996966851613610426844221424193026773001918435765420856955550520679172615846114440155371482844224944119192653090241142657469136018253053470703106435534124355952585870708685899566207378560534569698206068751232730817404969947081446319750398157020131605825392775319253569061244574512962863651154115405750747140563509662064842789991874292180293144188273759760329294951091507707832434377789556450787668878963660692322557627096345034516543979950097816884646036727390347425563914138400673775506652573644636134789739909906353200157366676124734767832015580343778040898697070082880508615385607623787114260882085330447092651583548881681205349742965984308711855417247189579562487034008287214651658709524474536208192804218600500419190158061466400367524219716825285130384929608210678492726113752697779860420116943112545278649959532691769354939040785392203941022361218431159848176286397828699078742035916836631120246414811338096844541985123629607402661091669947255269116905920215252704794518813420339537454605835609014737761298808928265108346938903340823487048984065597339656425654897459284953282938842384261123597374434762824711264727503525782864598814499341981631019274865554685485619596912371886669970589247754022910071408017077581671288855185393131928031216288737309686202771345098407342355763338829361498251269610491426778517897597007751555730942122600436254177693566150743741688403788056067268104358520057759775549558618107012133723938269496833962679791156935446306238836282529877039167715486637942828386116684772147093651133854031366663513383680985879307551052176623962689427621972910354775475914368114979075589907264744490067983711537293269387542480801973037127356768760406754559862363583865447687685506952832728516492625126721345226651213650794157473180018145367446290550915553573575354668487301204663448759216479936148989363671269278807144765550139543893415413502858145225083942071029475605853593558130894401642480076957456327545035522596930386972145432713354858674869287307234447445771455268601735324834261220509742649586376457324825847854661543392782814137033800055935880067286506930077219199803624680154737999373100040079349242434316914022880406256127053359177330293772697257944002868436473857963174719207559693786255163370713786496474986890064290198218075941236571067103231235669860460187327309090231379426239637586860988683796147216064610413944674766491140519184481111944022106777444100536006100762254306705564098621904469270630096638928985985198488514975065919196301376808654046909780884045505250945089022961311230580081608905805988553356077108476415045055851143603143852600148735473118553907193128750456592949726452069786150831554555531067586514549274463592437771664689494542373060857428001552290422793892248318019639015400401687464062721626720196404480043216524788629673208758728310116694638419066436542731912835243775200739055849119985142494406457222370284637243790442347429159039809880877903145121592359123116924870096211819027017270797315029898191463948789525994014037746031058354890084406462201017467573571709893102186979084446823939727916413504860486323468340387111439593014079624350189468101842601979243481800024800345805000299981635698474948360263020986918738308324660489564293554437315676074153876320753306295640546084186654587102526625561605854701750761865386274530223794506377521305743444561922785537050948882502660364042370042516510258110442705534144832645976868279808391690583255075933793833724267071056465336888658798829677366739161470934610214176307573941486018900794934403929576718398914194966428052158187402172646418870654726556525147235885375499484101255946951553896226572817487563060092619055030453453898468684137690330775361306225706984730672750018773607116503737430992720113090585036788028603608468462108980465757380516659985926490853740716172104869838109556206429435864890496762752073901189541146924228056617419900187825969920508910432921247907537312647237211438977120379742299904680056686621848016418657703382394604505577533844070344319148434727085358133865028853950046757840897054423268547925998729654746360218738142794824098990312122166756541307554403047843667185831818231506416965322024012621486341656081365781346084224722091395939034829230889626965114994088970953202321517545018845419976339853523908145468203674186080676768830756895241794512536585234285345498844578636772452302499265793111836162134364997806362841480023318847863542153595413319055210943349073794279245684659851047746569387235716323898310741515579484066223314090528096200013775672092367857851292534024847503508463776480726429865674415833992137235285085745881124783183473575577171353156525470513868281694509039570763612022119572740469206355788849021603601956765369943522046881342984174097265482780082682325846079255297718944748129639485141418839844194293567290418080070990527917515704033132170449441140050986292794656628140409026898891162462508547182383103597308891770161850482638467829678479273835566208393665088368364562450768812381100507935504929967211738171565155707013770699729564758950045341451225524894441197838123470150385048310464552264465788460842366657407267782120460632301196447557502103472642889415798833573633473237640637667079850876028182111372666696854173846303023542383444276164685963248731986020276572880231629938898786089962139233062078348288395980686192782482302706120325597474033144357707818334655732646040263367174536785031717480540113426834226512330666722977835345496789406388318822649775726524819399881167126989282716472042563732547105004767296823318820169647973999730456717620647520067603463990649286190083064382749286486627665433445082156107667260253439448407449399454779908332426193562893174243148953699391936066363252358615763287574528156082980126325399977781230694581074363949704846405566534564407940222057957817140573825338436443577649739905474177947580739413839349516385676386079664271165011227717986949575631357617363464735637979622937661613253819761023581678974224802325664084371371852487886807513153545340908076125393732711527957752729025880094439800662867445926043715708181686001224926349547783849557615446691347613857949728279133235156358434550379543375068044822389215714406556052596264062005339825426800355523932104498147658567713226470539172892080660404412462113380208496245463350053110135872173964800716346383066585614845032005973281981084982413448710860622647275980174811203143390098622435954206010181717704225057971251160922682782902904024749779166889805776226691325409798021650655875745437849436525191956087946866895227982725160247717436729571132974056346912759185529827103730194380182160150034602592930439449632283465272934777259358665964884334908074839287473750935739266554655155311252185166771985494134758969934312429777376249612591681515888637883260452928749857900464113596267629912704069698642436228623575283638078779897101538480819210428485197119649267354139613285106102495275536259253015850477290349664190394629399725173524197835610335522277982155581831592571524915893110890508254973977375217697620721612154557217134063237777584426596176564891409173751273109458819149859572731557196427578329632377322724864774986900928869602417865823717560037657803835685915809397065546586292956373469279173064314200681533021674207015633753942072465271416725374748618384737488425526850925798521344894427925264896497674437046573318798158061508551598405436242498091876404753398236926779136042719227393750459551754546406670839940358699125461647331257755041176194331337199759543602065723548302046441492079247655089834184309025743235558509876657202127316786090229464606280885583194676896744594006397343640686403948426570858029928695538387783713793082716352106376628485130334594344141505403944703867647645947071564467518169784785678585536535097237252764651759228781445006141325665584359861702096766735887248692769431419084369749545914232697870049923969086658267743882845368793543013196677786022513576869811895482885607035142248561123003364352845099830420541900055950771772022895722219686228086352221898858924665581963118693355056935762635676579382091427662653611201092418988395660683835599839618300931569424106065817062734595858644803720596879017761565449297773808534226039553734707619566962074568699957506948994873396488491441883756408587120339728591403268635917925215623513983829622696527084697389649780006579226288579661521850483691385458862229433060027666579798911331556749921466073394721686842320529297633153356971053702004937381656172688134341959684876435064562452405753960395322048340224800896312946150250593993107100622087277090048706952545103906922883755322785798857917860834821973024058745259750654579125419057492162357468087673966858191532969434326124867804669388992846047002255593144758406670079203210347478582077018916761713275161824436602882425513013045777812584077314132215729966150145122375394086047522258667498007612180475520347337191503252442701732180880519127709486930945794857748802828228775473601931869961749133333298372651485432895245024876236653164904331182468808337984461458029456736484520328662036148379598158550061260153259094280345507422723919051210216628762888877482061537626693180806442497219349842260250028907754190667955989714414462666043056427789707605085570494899217544831940346810404082963389170415580182905950304106735826940875088747377132720114463340122965033679318180647580634417564537964819545161246006167382056427996279006195134354767052106664851036364483376378692177284277262270665982244380424662915236395057549488629501123988113558768873056652692220104240940500926351207178109657885162135226217410737577810348304066473641694313877010070877164094583606418592730481830814644333738084957393660409932743076250474994708485288107299280295724351003983721359128252585240217847476948452282150844260534017154247538670923444004538998389617223783922392106993215037238298423206906632568525909036377294106459731035292646731623159846932067661072246150487857409812895068312885859602436863637424931390321338017031836456844990205504523946780039092565676036164825125119619757693043486155691479777540956642278022687682545153484240548132849801548277410854627160308167721785003691765025025317269620871982040213042794507634189690475435223355733724449478892291269347608939314643461401295726785062178520712951268128422556998263349042618135383385682546168112881755126074090047019127031067520678576722459428150515863097418280776810108982679108125365584274160293401057995359843774537833601970911181203088670846301057686743427602122170548459888729857898414587910954618041275511998066218916134879020367372043197522689795005290146210611133141043696310610435678157100331425854089440179219555249202732690262597460401530457512613533999291916745656530261865002085066707948322337086998571038462699617954644545974536850167336853120674856013933847554035227620589090282715715125600385773288888926174140595272038039093460752444875098432834470088818832182970078315066648789166528037871868016176710462720146768761827780176114879227620757092689918215945971894539335385853438412426896051201077747826630522130611989965478661291026497484936455891569771936944666775392735870399466814835391662605416513068175359740403752361544319788315006936299964367824860126924654877332525399672928012256098535501589806099997225852616454471824231366895448314450590676824092509775932178598498468583754398062250793221077987426728350266543510016430106055711207914900822991506101037439565325216517412103071249161691594174001861397258716404169630870248068494421615957646275222493636767733055621398449171639080540892340860267191533986810863815716317680410723651410550675994194390262732988644346981534438444770204681699000258045048879200784197361184440462700786422382586905525491237050462662478372978557143526147152143010147729137465523457419482421568189479815675501899303166711164746909520620212043050164598296142094943439904280265274340988345003130481488978355922085836349985226920748550735674627669842162858008503464007261751792175914354392157108745514624891374748452527303526795436915480304975077985268487114531991318320842975188659951950675469659232330743812029023127330201421835319946885101763195822943594228457492544641983381446392128656620909094844812631585292322750235280417139539319524101257404907330696577232868725256790969662655412205152114216155585818976801706480216420058289222975855977980408723559440124598326927996648006566284110470463937637135784595980291076466708321900637282153369057076518607172592538944369019123013983280843951394440897280305561557855675920298293464499106970735134585161617974864538008056812941616703892601821490715623429891846366579840028671925642719941758195252986104785003112260824364957033246102596023266071392641302643512690467490427450150721905097966215322040075002561223076204351609696758314793277845916560706379538661528760997137310819581070384163417609405368106981338460508809389856325765284642896307684143393806924436456777060268606727684570068798375324965114700802870933455273675658017640076919933186989349780395612240118769063233585730919917904084302598394818125483631340705498150114367697279672203318786234419260117904258995234502335755317582163672871822823702666096841425889312087904427355676798849488685554207097721819281123711794846466333255048977268398263962603507297104748005246155862558602904693347991680895781015505534862664260086537560443281653521677856390947397605949317634319930902706881959382643150833054868362732028934585889438170451168512791546970723496455977208366931382283014670598282106959805510237938571177011625212512584599289960865307500638884844852999103584532414808942855195808128132859535860920736667206197874233195038046555591544862279592504110343889544023530737851948279987962613663303211049512238086175053542082817176612601255285213224701634467732753439441912834410124557004763945621111358812403933195541629779354045528023451526175057609394268753514408245213924662000294560586430217642898431244690806588007302005516793866702376744024238969161640578437465763162939448233278635798575308639419469038422738740588763853543950550357972618037859315518906526264922032311616958903906485477879151011471914887696107591405661583708760245714096141595539655925866430357544076035974600632542174325249266231712122192749008445969439225036735195344175863642641423118510283165195223864921949404730508967487167724891062309586505538022818975257422447612435848663518721336005758367851759621007480259583190151565344976220072970524097201875119756344291558576216805228381037893156148775941744660794813128435625259044807014825115773590707942669347407833350184292389091593170724906940817103744805416063254335717465668430275571437491801606370161207993006628332028992678115661518697578601946000364869482550326736345252135094042083029980657137281063603695654072663481362125755120685013683629266738349257050412377868894807619185952474406776780060816069378585843534530536746313158486769164388343309091261551978971844857671187425255039507712201612327540572310666913487409004669903719251683487698065768112811079703853194681615115014905662042426801001982868866549107848335400465013388987627396397546728373674887402452322391305816827805734840953346665275564886203030470133739579685984470025918846668517398830820829118267104625199336978874630120937928785688364367806317811290767519073442631383704688216580294843801677860727931205439799318372233897999426895022183267982498772738101218097097980880860910986318085559871697613485930555388137088632257098581459725347202849159535150210875017603417983491276753664684526320630510356247500024866429527084525285416892178955724433931034042497119801855773586031179013459913978756986473106975054996931161683180082890292840874562075177617982080607196086381140735187190904792104170863086366865849262111414432559580439135967585043584844040312928368950279592534024136945913425643487829236209139627249917721050452711904486808711716168496178879431221855068988262685894933411248600649453849648741618391645423011007487449166598098354110617302073650871821523003284124176442230399585593989440581199185552578341687338730165076602998136164168670596979442465288848999283718140585779902122193876086793493424903274162120428978824811892844127334348577478294164573477528454656840863592155295130290350274997119055108574396192113000339138569065338075476227966929640399537909104971941712272815771113441069244428625686348230528546376302208092841297817938203791383996519255884223069312880696764486460668468251731912540075006149652313473793379036690929980417702533970045083565943609186255534682800280109909710079311379734609782782671430332873460091485310225706173941809326644776993206277737498913632361113790697178710216995779887413895219199800381622808509360097516168596839725702166406249695303031133447828320237549176803471723721681527394242758747374875292669819192076238391314200415008101868342039529607170381699482827310364696606903191939448179974345861029920203451331564909394903060926585122795708804120324530511575142854957165176819510101621500836853339240711903886575854554140222067285502726571163214591131520647043111021750030871206978221624502481642831670950402416098925729148054024287455522373766426300463088752679350664882674809962115419670577469347079358614336247970829622243634294521463875618081297776188957212973673673040850276232894400122733581214090365416993093893951299520721342416632201090959806548594978734185102495672780100248617056912323787546426399763491565499045954724054947923761183896985360515388694738938760346396537286583441044164676715285828771845155850822611123991728720807703734258928990448942735077877318110286547817223019558276133914874039596345567232159222503036992353654075317981753191880621206494708556530116694872958186863148416889991169748507336855709237551812638037238815536498970740162441405697539774123718137905029119177328671304203695767066894384794042529994649638821049746077574198752238259515701564726187255733381718318348233479661055020454942631631889232090597040134315873431546549509406712367853670349295059715921236739913398291624154422183134837946060408646563632057356090944292224376346863438727187071187599446751881839263302555314149464469450841394368003283174952989688569897189413802537091282544398410349386122116733632984364968404164587577498227228463081886369228005502347233632014958247415943135607993858630970861141861282998757188931508512196997451301248254945811891006100927315313345696802976835128539286418031462309209360167398223363297501179278872987676897882080681774172664011533997983179824428523473213326909760756532551039277500552591939827533976844586517685092363847389853175221868657263461920992451038358195400357793304444773893339181405814404501101730314950424725484391037644786017031915628086228846831063319285647992971710366307697295682731470182927503212414904840180845114227530232157306627691275605562890307427559967954841909019265116512100138821320469760509575490411926882579407529858149515398456739498098969038995790403777243768659516475290556691970899087099621295207551383526802368443597329847863400499133734246118341456123461707942609275407455794181823655103885218994989903294344555038254457477630845399393359779957001962758584284291542970709824271967277836073804420760313088229399191791535820625564036286472366722512074110989394989680906266770482387280398480554289710079359430305465368315075798558034832171839240641849342446830640736439060500764705962131920053322504255336375749020236673587645910762757401103300046099833057040689455294516594659944587762446176705139972004027922949323566922952809190126006854460081180055317440141715546862471492509274073887400773049766905720323138396590935730378176599678507337781007025346165775506703392554890861863212978276254211542549296785449119525941145179394237670091954164995571938755516243020285979421494313404442584279699529127225134676536893066014570511372240672269065352715455133765772784745567470015053391405923980271898078171679905171242871287246343607352401800217959589279923743150321142449142083032287341311766030535856646513014185264697704768174288851650155978374381431425846993955570978059320069899842318069758589701806417968412664879087611883439472751835029030566234490350009148958235149788664703464372669836543804228749707911593220608784896384062449699715888921167175028620559849903385863543703641598531580358970002049734366524331968482391359684004479899320278827916877160318137723203283044710402978928887456042157390302207088135235384911050523806353385645475153718166693331165584235171905538503078773688834450454355354401202372563473933331114467683811562103673204872205788888172316644387816163722958624766075969153503714335473526740079509945255877245537144955891354541405368010586021797166289793576359858223576318346544979338489799705362904472889911115097310317306085938670304344972329657796615873359379693302207221335751354794053409902345417123005013899616842020990804135584940697439226718724404544647453507817259775144106979738750125353179653098399922340310909486841490921461743131547466462523626260739215704927357130944274156657557033564680024655977634290808567483776905781048405890729100758417767227466187338903265546947867485275468028881726240382736506539221082442498926961324719522206408885404954350139673138953127383277528480197796356825218901915396437488057914199125311039870509467337571427993192704165098761484852210695577744943442551260096721610833841647242860362009571029076707054179592338518455634711798980927909277807753645855226363467486693493117891086343382024421683925426523247649262392643820597011150574458508281472202354795250398554766817151518886226327436503545785013575211271097578196298056927442051217289055759128650947740008745342361409631550390355300066587007165284804320780842826204308990541574889036919803009350991829922350144802785522053043195377066803284674935150096223434805369753044235489902156718510399292556196847368706851594773550687691026291290841841692239908421657527839347215677079222913903561819597075631787095075168821203201166810604133176692572130205311560081408126275368445179517657515953450616064477822519663100657104282345271071464042661130719890683079354849812581529180715580270434479917718137129345721227838679276892700180435472595684560697917098915121433763636597099673862912643477572913914493416112989664162231418340676715294847020330755214144187738194298588792238420465844144156223478977499557495464187679070396793820046426102779967220332557895759515890615917024933510448782345969656669850826061232559369104754353790652701369213828858975776611708056893929199674044819870563317299228255803268549104043226565311316674512506801668660607066563199640118021458636700657951608706207456071357863533019918168132294583802687520216982828352208258850132576913265253606207266967998904366354609759376919041033108709016741772396600360425914958498772973730543233278841999262421002342457763590731278983681987990124770719234755740916092566552971686594849979902743239536280141198814306944562603802953438581912104444459905338668959609079742092986586136531705917104913227337083581060477690300354389801539872139410932756392127956987712393180877272215525586397866762387446039768640912598868630612905599061368921056971848037376253913414726991849050701368213498076927261306162536768813900689486390224444767688028121316418061917060409810154893924166663851601848655036079473764104958791724170135690275379302733529994272959064497163135961895729910101196854985475679442524611581266169452790015591230242658253961014046385452118323173562273389396799755392438681931678233364324361328204564058998542761018098753231238739188248236061923283898737246778600613291736991941750025406956945404398494426707196820887160715888769133467804854306994248550536261790605294855603183711430557554615634319831188228760622456040551121603980289785502414052208718581489216289551669471856935268687269793795110896658379007476517621284069103060826000450964089800794525071123744976629609642614776872185868904795821235488419017179705251516723320949327033424746666184609758432304256004744614493887476921501258332648315851242057853899976303474459469513627743516829562338916481724553265483090958814061882978309992484831408333975413270656982551377990223293103463833787875562195807587060866419496136208777097265480865190437679944090827574702678844273335587985171165805109024055509245533341931243454561990050032961581063793997982439941078531947640836422157642770928431115850688842863723234297674988776955681682723530751272642621013970765037885382620887441085803584853458272476019791272376852469353616998190429301558713566951989632618611345941001698991197482053190583486113787299695155363632069340596543515573775040953312778234020241630639508688513996456231027518984672861669531829391458168652118248289348407981520816590785809185356235558089104447632424297555227030931963066999837093524099660048708156520112889976658900084749125678023620002898205827352508048285469090468747374406399883352291584015497337539236877333569439978043480241688262241845614187824901996383883435161758428997668622096827243127171993823733129119161157803645694486575002385735079640061792934343798828328809996952002630921071794533156545818818965429961784633385514199403442032074880340804456342542902037934363317769249516417146028271307367541682097559420984089688453842681253617499826051500554780024417682739518055262003172660741419383293117340333164594057040995139883592638680062057035226604708623451143574393584100344421752099316989035503731007457357996310174213011959001866449725978558453524779341768340910074117143745041785209792798890403197542503780148260658443553141427815914467979735613348931209755214480423717663625674589893400344271676761605813045509344463880800802591202088412989544128193438116359657514066125328652163881195275474456815793725553785269280266261433559720508566539144542437363368353492020125912176608575621308629468859499558089770301679435865277161357534663756450902600978339973451723150958490462945178742516173406575654885817333181853064935379629248015103013633012667335519466534654832339337150868119207439599466813112742618606176837976532813070935217636521529533612616640729395574429470049026010534520599325705922246647721076370355549958343980291320147074792784425556616320496750853028075874614124219624101011335154072003543843913318518415166029786114243805085901888786852781290392260068162803814738150742146589315431267339065440551387774710076529032742962924271266847317626241165622993310770016484424714645224868307155965458346832943187233069110480096042300812530244114301190933358958023354254823346431755595607709686819907217765730011362195065919718854120853413606931203766324560828707600967960161599455814411680415320139185939598183794189219946050637092609639768141944509201515904761237339575546838838902220037239515248251201197444232905861551039640740648991982997221295798929188142264216629627502461276347875458480588874669404975447984563509658536514970060620710698162461170242287745370277971870282999131414622217537214075254551432527222687008275873723806652415716411054674212887953973668719149787885201546150986726472480136644428530441125846622249377125224064974883246965822556091122685352586665195536864875633192781488458461348845737476257715888523509699848928741327194006065663942036607811012005658887028915496824387154995332732354689300364225237703659399011918373323947484955034163322296591246082128619281649599496500032447191887319490332104998162854760927850824655493339165377312574274131221580635571186439081741717591796331430677433470836177121587977864537884083633330948124777903412496676290099976701093498499695379906311664552181293395787244180539603558831296202172418562374831493079550448444212059849885718052001244698993974012786906409573872305262345978726189214334257122516824871643500273594436644617201479908712892293154895923345964910980167903511790614906430753928395484142699964843241320369167048859291948889046795208951340923355113584354365769542351509016527754022325176098531963681792654100955769296669256265541793905042070302270158673123920930704597003418053638713248230225819309674423435533337023255568465843484787650761600903693608171947753688890081508738885508412365332086620191234119341683744837621147319297579436286691270625470759785640660591038686882346472056479299706384645096424227279185665545431981727597798155545824429300377363678545919406810232044905774558501180897874943626177952807198543235827023036364174678410393868822072494985898310180457390287191058697944577402415684094173005704218412416000417440814580905901174445955241070576301403115984303121285426322299303394909714729274966582076621576071599454669941201505303585521695510032852838085206872590786124981060837577761850536653169346732176057984330713591617885535216778309280659784185958335386445410594820929551646269509057506998979413620682871860529706138747602917729450901089568085748277267839508107396868384336153750133590771096592426900268589015675112549000462299484907333688589228178984107941409450766601827258896694143613582037960059084858540742586534093918494841854898625249677614485011253326695865089264149105726961143205532139597988920494370611632792567939932804937470581960966878816876389849036149964594408223712909003992902186658889702310682245137209706073726797779120016164342786710946308605349673148590781454957463786089648782332921712052811310199442875823321193344077289640396260277062868720499946048572880177480586960097955259886161556234777975119553702052864082333645222209464605838757251430078457303228660705359914687319721230325654634979666316296810426057871198964906854173794540722964250776035841944244277309022911197416863340569987264483604862024620921884015390034823537267626588733692075601899145255244272112346507135291364502453979349030647145801113303833509137577324801273594991708377983915461731235046819650723672350619669302873321378572451163824532877878715510129456600746360636629377755980255718557532940471196069112268351279585840009150598622367534863308423232890004140571990626692625947221506966781508753013425032911747185174965552504472142840973443583432657062445777208168265698708442046205282658969076167184983776319979153690515011208618849688823692054399598400971210036349549625031811589909986150040353489706185290289056906687975923845395123858199266747275257902546491446813733975449883655329227035074796321391333470567688273381943175978363592945568636866259025876713200581058544768489666509156041551657275377429802442819852179368605453867648186953699440242412906572491809962147326594150018340873910843123024649491446850640283537138472972803740478289560173639561948049174084019542403860401216875102779413347308093546765749851358812497931572036362423411158795849624221348701496692460809551493009177279444340781524081307690390391666317144162590200120767978337169216722952539879432857338858547823538556681148353845005454839215139674082849412932698544766673312795210182296050673659385656138737974806737806317879645374397760688121155027315614880307246555827015245334818428579809500389617632800757733343265606652239141324696981011379507666601421441078951882730929136685911769506752133194048728419366315334313417321734205702191048666804991826639384048632060494315777901364106237222297420107610523187452711551482019569856546870126344470338050862380022987523309691549578410355813275612444644733870235068054456858347477406128622066191578266609121535647189092518983425760198009555273183078955242283649787750616097270760305060406939267141608908617851733087374041203126885105871582517497778863165045034052580499454617041835446483818347534530116639011591542344414041738172992526327600472385109947194310667476304059964790247370801891050873333786249300576999219724716689747894944954216245471823144085949977157642612363188720846630479474045074542550596506295632617352735049700353384216139018705078603663406422188088589110330871231104641113235859577129136153581236308109672015555325498317414453007377940374415542515260808018556632367381149144375343669341385546203248179335962774464387586408426010678786677818694521812770259408982947069474668999576261619877852474064281788077807128957676365004753706580063827546878327282839080762288258501047982067859963360398853409383315447481978461215040689248725307354294666910442024253677192575122292037537998991066485857792273556077434270072815723696068009487564119178457885547008189380291788359725599685104530098108164834053002703453366459891908701171506811598052549162861270356425566182070915021341640077109152859739252867510564570413394689199739594538252645485987292468187023897243771193318337265806127920919721013058793546762966550108712650767510175244921884094283480331209321673243366362353444387037929832987364875890293130002711153192308731306006421337282686053622475427137758614555836342505687948062391171580258464261221483697855687065103554507576526188734607711755029382545823809963212056035654111113531117875898873546111316726884790387975074444730979450715280253467019796739502664102017466770753424191864287352393913330976973789766429201114935613591412618547500922565004943875072473175105472861018015950532912484850695477944508488791243739993788020950724086255998980006116731093770403943773246122304514192255138599412108516433457597479344102596602600540479024760362139328511654547511849529428894060320968470162124485816144499400663760130706079850440034585129276952077168779979987874009680024522851332751001931219159915879213657939072652911901435591546234752566496910469959189208679719945680914104210461613912068421574830373036650726820788315070804365710130020786503666509744882765589951615097015492722787880551810107659696580525506910576321220398969200311135503788294475817480793251059478278417764023974555115188624786066290716649511302347425998785631532694336604521872065695146056326997959984180066218658576726454274026321324063574652127204672495995237700482400624597844015146818248280164756291660255648375711557350282308239995885796376566278155078411567211020326310486656651476242005986778225633669212357426226892869424126652226699364651658726805586602796150814905357174914472373367932711626857863495688759861791062718915272638300335372537966292275088977616190714581681400066903087513170591788346005963408077006276818338177262133529200577238928635276442474000501078088436590154698198556470001066459041072273934466981328260745200432320597782858585639999321692585785930785954081912278869431860635759801003006384028205671233762438695390567591864575639139417473501477313290135804576588987215177779049610998211273153815398151730466971643672015969682464428574825521185379892663431767270026314952165605900804061192481578240620083513401582565357771480074240963445093296367565767972148775508549912122812349665658222715410423662018769347854855389252579736510383700413699068815797545739957668909518277782774929014878896024281381512125667854304147460564835488957991174620471447313593706914162592699653008833104887223413369237720833765876461518103422293444998326395116737767878011024576216592023722106371634232133187323159159043543783333269001359417986581199666194315930896218978663350753203079655417023952817067082156471012997909231385090455237034280675833621966550058003412843065675674146737314607875823464520710521730060144202644037500705852540007007804704187852151033010567650184608313191087638024286037283875698509343358403521197668920337868641319165605668823517088734163140136199074292093157622567120269431804084734871830376697853898066354031686443161843535427187580893016980116260285960045733555026044622893941780283650668862726658185595222949496706706660298635602187573143891683496370784951574486108879351726755142549876061993447385814485196422669459555675654929080037869046780287113202647863637936190740597209657096143682031398014020388967496637611268774739197327497092201594061969450228170611826403924942607070726124381223097263405771161582156342607425645462609329855350016892137619903843933192762987089128222116274364181446321937096566670481326676633775349401071306963745622724586190592968495994316249408041741708323134868817887679711836104918010549944807465654751614241225184130919728560349033270308130048548769310309089744468258247935394551302791923690767414521485671523753241631297594312781550800719121558888182105039751260358722123190818804440938862967236818416964180210604694509124919421248350351898590386366215255927874888331729114734798104379829097335139303107881812600878475751066933553679508026807978797741427251351008568397300597207954208214750992534069691955376243298398139495641499080329597389239063031300916712494949471625249073182322395113962550671916459678910212944778276148235705196181866785264717874240011554684477114178766019741643153407155967674661754527271822328519220383499148943611157508335761167972801643241930336248614432883017204809730632572466736178113561602342893359372997696982154606830871569567542579494028315318160436017825911012176892982452270900402617999955773336258962928998554258947437269917090008688362226161548295243771325525633295994945256783922473579962442511729620088747975671119434814415609984363060225731903359446015869022630945698507643701278168428225582471554357241061722976433887228958182801386443396638460067943815252532903139874468118734730113214515184543765000825527369976208667722494013150848125536412926156945565581846509454520211019217530700876769214118121389095422178276993893137293215625803455429416065335272660453725444947451081091648400699139427612273778164157838836661783662913440448293702732492354139420185555823378119730701333062209358158023272357302918012619857954663036671475325717808829334740821036246984444798653749207788407277328671812635230786236778818880012241301764884650228814940686030350561596685722794906375414654824069541383494793633046556253216641331589651460524855166881435634554770629950801110768830487614354869424524959791769595259463096535338813218662559640000791171847274084323866461875804399724856890154770888469255877330239956190970549050542242089656077676107827781797889418807431459504868645538822156406181602113781900215734593128110775791736298178287395113439693041225784698705600056110957159422094596455325417210391714085873155453206759742670380241473867725471778201787373622006756712102629124304003646031069742981793163061830923364452403552498975287787380579881426638948769010602131560230160642715472904957531724798663859740532678701107045805777287805992335637703973687488341802427365961827179452903117978511468896680638996289769941900344695489473433565826899342969046659553413589609113126348350608317165788165605527225770920610743293878220132797105034276068508439066727947289358748326527420485705955194361715121264510769244758635740076134530976560790069731744324799827798016750889565065764358901367688700853731847404750253721345751338130580008454961940851488463331035230178700718143921074023113830340544545287307102791431095999101828382787254097540271901608808426148194293369052670327134991814649570048051181301424313092271246203833206898030613715982525157173872272493514048257218508114644396086433571385594396936535497443314903759744039872100544200583782447311367103752198177152775354241398501205378260020783126205095837967309154566988267354265721066628043945144191325317204459739944790733345639061102595533851197467704817283782087331879522671905666524455148855860244512338230042779504079939201525805542726798186983523230064810504403022973691933130776559302557367076998776280460539401592742307621645515043812371746454546425711608988503519991575988926492058747457858706624413866528783963887459350633535385419858419333882512125616071924518318707371084281759254538354112118282811459678601342932767486860016683129107782111348966037950483453188616397583036850290798476035043314935729029963618073606258496987944984007281091934596314253444042122543394771059855487851649929882207753373078869569226626029704293705211849738584265066965538393387348024467308658930547393777274337740195492441622187351974716344281650212742075922688171759881217357595588351236529289773422513635392837031869375238685840348337887557832177847080889068682981246106716760751383070195250276609784304646144994448628162565682166330233632950948679017192306156963992285983304162406442536887146723703926160825137454211562566753165039266083396544370091577647508503935534752080133001811963716335403713472099131249748395158256324579557845228070741503453254681656777928287663843567814141550601931965155285143340656530764867019143996589709000163268830033033091222520255584292841386219000040217435983148374240810514995923446035995678094745098717097914638029301332522203398020546433592763349950718220383522542429884956508006681637729250188979935795171824402043326938814424631547989493581912254287044524640486531320979916180820620830887669632926163921697776244763895324932291234083275092701464247652600129940405321102573937487187864820846007295700279119269056810687477972124175436842681851465017200435453702362748727204359187719980618137828745117056912371919159607347694530184153151542757230374133666811804881818492939103888463930252279165618804407194253023470174216817190581369024397102708808365753174827580678193549820511280044125331239054245644535450306514465049424329075834569148046740968836956483354554201405787843839872468496933538808525675024387170634056472307053096898524754291383304969571802054345570225472529886941774474791249151238364238323101136030445895058011884159088769070754465361744194105049517898627358251462634575683530772818694384785509314898822435373260768458674820068465491737620487798122589360898811493530278593311466002223178072514487171224887323693686324272845238749053667323993671418598949680918719953220205197966737839588677385012615407331012962759418817357848951312549735221287245974818994040382483759794880575612030749109345734100757178497891808619876616228593592159042588536068201587055524794397572086971810125396858329364809876563073598779200909265449790404683157152053785899410801747994793975880292225051224935008032351115892142101179394196523031437326881960603226493841117152078383221301939674860687326184068767388018782095481751030436937646526361392580986086968837329101489163884496128641412308825904918306873275604547509334096026733036608359982632580032893649487505815617955242842976244144934131915197503937498720775207323881491302096571571085866289512343564279898989033507067091217538847183585471569476269066105363379736620871204857661100917457981749147135450261205356245962833555661508053856024556758320791111868262216358242518709257171644078919012858473321168116752221606137037093573469494999856828249572970229371897041690444304074491768804052425623103427869002295962992707914962170435033551062312701909210095739448922129457974480529790239671664819365338489714377517884382444738779735376851024089660042884804084018538401160557638525409992332836935741960797530316688064171503447026758484134435297946584922792127412184391831168166468525014347312709349283940019134747542729854954743090577968154628388756887356579826302048548061668837746522579277459881023112352003525073048317548345357860754871333231384788369085951607897964532960877602053431930759907865383230107557548060824341120131470386216589491587977109229850549542685050824098009553330200834180668465352824843618635640921267325616048904399371059954854820807393426890040938949534464608661031625327886972656588812205503672702363361545639943554157563368394653279177406904838053041200162830027095203849409893193855211829455346455040638488098225467166972858630392639816049208188606285582151783906930414679933044267874096495692177089281009901849371952757364057760299430885884749677661505464333634835891916524514330124419475780539516725225710265237559047328753347238064248710431973884631911191398899218017708802140340982728477678693290850622064316305033001658942245405823375182467273836186977790671952734102476592852939604738507158543892502407270206262798875873934430971259126568347812035129197498931238629265603590077795214217414751936992191213564356875014999815502796685544811456514562773738653186046134858423935186747495089447359503541633760496982728749508666474763286975896314243660635866555326152400943004124954128255491317877968199974106384966094551125124667047632726204444676452910909897503080526129774530796663046661508267548668953644620221788963724083548481936845723949461667209548957944857508784694468504716537314473708554929062047891416419640018503455585345034545651823034100803334926184683559811003003789840056517485254302967564058595166229477838541598688440816522990754348910944627440837849141894457322165166119423172102100465309452493248534646681604684028557092193020395440046199969406980125037130599848681013200568401046704776583803432038224322953386901032852454030963040402089880745314159151009628553671907548553054454427002215013192804179231655070384508782748880058453303622959390144300102518170305862550002973740760917401920637882622702555259342122271047642186861634315024894331244304424923858621029800281872685738556793702273636823650941916331373218887245653368690665009485929899675924983571580630236953611760374610009553398158737751126764633098975543665494105862278547324205306058760695419291013502293610390080717916686876381690527768920977074146736395610677452122249784889437084093484755482222720584105136291354489933943412310458001456554665840748322126637027610428112744541952565413560822864872702726480683768442750865659892124947483665196990507586367852810878992829921948487615309091106059945796591809449300447524593620973853889228215354015453819693103770476260416780627442334479341951508174562236954286436322818543919887949321072607046826901413156896942556911176485387174112694876277660179003452578968623325855944689798349549104528976244637359175622898551466804585484643050517076396942844057315010471858706052739309991648858829142987047421628198890366689828125154781065186065647566169416964516763164890176619576524335361163714061955837034063623471954228354054025566205783250508360876768524186541132698299058496829653084257604596676313266833208565850928521583988652055711722369214745470484263874563253131652701526708581080580452186540754099621461768962603042541994355069661067527068054106879756985747967668622599878163588204382933984992407894483800106019955827536437379715143997657288793278691452601341485882636478857015726717495913648952814103677376430238743936921826626984744839300404764678048437219755155941764498334588046837550401971792171183383138792853514669264555576823980409453174216872911492507598589825394580670694521314566507675899034329183851714029614529326959735615268462043396457108798657119525533524351783019806167947130745189735517100697085709152850074663193519539187552900891675721890850475350977646418573950565691506460011605192718896206937064062530774603825271925941750072844923257514536223538477794141395561540519160668640313415128348903919280389828266488079155236281815797804234256840728451491743139601443848699722735561447401857649031439707035397493286963999059327542065922500674842907473981651997834826483852111873971732820992635177246263123918183660248507878692856131923916464599308689472781860902321306495407333885370731396184177782826502001204840468189080333123585382704480295335362753607053825776487616504794834830379923008158213938437298830000398621142934658715686594881425465064064218565381970739741036786658557128441515708823408030570070560721343755194530596054097746030376311546976012208153063260460554466604347386313417215277355716231437916456436793418594693379471520516904245133266299573972547194225260918794282170716512162796491744905472004827258723162435555626351143297922625693331049818637135193394889767443424054224587446135958547559826634224661066676172790376076663216042584384651153690863455795728061606851567978103735562008466768116100176019687784747744434783289481984224255752379605274819372411916741018900417795567655268588990985800962154724931075565846804702440849465418987080878637933799807971831857433173543995289774005274093080076478790808035139557958698200310823085578629697562123941632097827199725790011404404231422087420998411721429571576746643468456378833269576957955601494432900935890842723201841579948958452647769940544175417933179381480753556241877496858180238750790369711437880466407618748787632551848785624509103528275309091799278252880148299172099549169791142893466384379687265131289744367996813224088107322347421302078406460220913296769688469664339375036272346754366387060393784504286350874935048351682319421050546398579702342495005719934103955066770090932885336089014194977876190912346687607755835414391686742365378572872589469784751206589221578143707955831920753916753713968320933587544897966876198038293751805098866165764136387779674086853465327962643185850727932515269350312906179931762539424647622131069130450648895316833836941347259251349895910717936376421336416436150942750166475566810349948565103402613082264186322628352391487001155783835150296093655898324744207492559766576078809063165971611947668508647017340403356252365150791242231256584704558272322231970692030498110104685491157255466360878043930818925066604820789622572948685601818981671184648335119170539939716295716824542179464023875575721513316285719390416264170165653447845508016977775634047577279343184476787435446332333952585379764525645524318490699620789771032549900091389568897811981910459712094780729609608541575800065866497648967943946796673660322391226926547746924829125983338615291427838048000813908030591800433102863567434560071633833729033065516834573953235532762515639643120190743271289380570191711636876497136326102432543484591705913895933112740850334837226058611131420120657543550845467164615117777574445591551391586957341668656176620428813884129845816159964799461551385706938680341578625009399575937837992923818173303903597855035499065206928931321456367142447368337031774514599509643793315066056316075142168007189983735506193405926487078811773088016249841258380008775483788502830020827230364865789209518634521189317286250688863806134424936239701489094982104395876241276633137223019457270471480115532619525117630697259370368911277538505784343321710203789443166828746858888523479404271001730904553607440252873947392101739161279227491332894051828563767143322792526607281048834514434404558482075498563577770586724329232505154518865887214603628014086972446735866383538466603897562204227902983882198278674575675579740473758657745862499316104697228847151840959196282860696127173542723351550332525879760253683219654032611819021388089919238985694917973911238832179058510106192306095179899669865833185210185929128924316243172780330813592611763373275824661705934996867916334562380318295386930814457737641009404244128095194189282227962263990988651439343533748986756030202035030121284660035290946098536535707532018400070920846583450293380284744066466762891491524779415918158032466720772224041141800711571673597225235817645905585292746101055767714626104962577568052909399638683634058148030607548203272992823110798830193513939949989337445839142759932011924991163103365691425515362857041570669014303778943703966161938236502955051626539153287405657103100605759828720938651205096459748169219951881326205711749192117361374152233885186572880356874387401439335174570223673318657936027513575413940051765596096759643741109919065933063889095012447266850565023331590115531877633804965478537167492763599993563112904163860672916789026487382432994073461089246702991007625213470336548476340183735195035076280875931439508856618000987230922487144587758576068698516019229963436155832336616466353336716264407981840449653955252099661657713338268976615855395980376059567489609328897543279665718746481531946098587593242256369542260668766924331689633358736413318929163945531793249169535225490327069794979575539733198502564513073085670597083781568658717705565784462493435644917224956069720551818262870340730110433566479492248314276377318594717618509506094754421258130674138040739955101676146664119852866157625278255880225462705538193075107104409620938725413700832357310236574076628823150479039568762055483315530509623095125680718370061062323095255026361072044038760326767835525810413377621260173943596183381274380677599968502655114351162412047494434140961994674736114933844019162615017610791314591849152943307964196584565230385830462593034843245813608574062561008371777876164488901039343403591891269646398491751467880129935610839003150770983403915944431134072477774429229701215035902714302002700362167795147721223318651627044530050710626765901171406964316080110629070658431348967639047090142265363027422655817541866452960482283743610374686854364112045029143382368408553227685265133080379067022206406522769519384780670105844104272717962768422333006069412490903218383367731564014181253795075113377881637249435781075745344697750963710572002919007645199192521715093764902503446001474537678675313134740117345876896581812374616573164356018175558746427324513416892654560174882218901472144985742659872945225615069637935516636889553311715704080088230873272464931916037579173568905091023057011337448073503137018585272867246321820731203827884923800749028490476437679511089386001261840630622583598245234759082900821041322715223353333679173515107550787815205730181620549178843009827156945906090758410650391527394919867810091488178858376822026972333366086845720153146433271365757655239412645539413107422669027683768551532421000875407801733780415671282045777411612787926194442224106159852240641867205625700926959951762769107829582530879718547770946752857242416311170317094964515128957597509852123091022041947801123579231896317881743923849335446394243117252298079734522779072487244436733980720574808369146490338057632443525509829838132940456475851990934008980564892757288929655669487721816683330721628856020944789074578383205739892830247959326458069025924881610077910030830491233672488361429909442764902931866433131907663581233606720111281200473038986089491089526837077134117972641929456184930587326278205475530179546551457312729815192887518652285279611471592485254438669666253319689009432961214062219865157331496518078764464428241897061218634411698399729583433791376113702846423940654101518729957179542096807882580084659082944952217037961298549317177091185329472555905022122760519396087705505279302782828371815922874243373481826078784219581703106302264405165359846121497315546404657933130075022530351055497105925893850105811956493432050611710873193912083197067272280700450110137844917476244521036464120762104170272692101119345696007951777248435752452306987257713577938706212498496569278189108658471329863415557718473200702318828419607195809857807178565289372129912497483334708022447258328231926777805347975367897134280390323657170233115443153682430663116254707645799837141941271740323753089073125510649599169335943829094020107791915168343986470978572842955643430366522125202880614421192178872858558086256965292802087659599428136319165918629418179659816907416472314138796728912293534411448710843939482244494893173756201827297343550075697390425404154351551782342566333241910810102661820741919644644833733847193141926759564327318993631939082489286253627622420510243536409592157115684535570792501516447975186123293671833483451557876102620895720840245289054630131300222994373601908100365687260543627809081582059936825113438852971484233564084125009571609482514443927297227645949902341194570960239198234926151591583439748895705456943517443359076923844523473025773107006927508153787703420416466567369667497443740839197886250223735605202392584892244655353013035273393682157493380048446758770483724241796752006698072575870397423198684987448233948102056221413121667376104795207402920381085010478437250226847720711355994008596525636575412833457147329210932571679757368010138854405364277977251957661039833224113602887776209891018031048243847149924054989044679874581406953836191487828702621472401087868547873844998739416103857415362055164882287892185527058101484400336270118016094320960611132694689074940974703140794571482074012982386685198222094339193665978144531243230529507354925271822653954278857031887884515899220721926335698879065502519131436962585887725975979212359389702617377346483331978657140425863470569099674243533539461506913528674111879689532590298276814600012541849093990595653075706688861273713900551569208228341015966092661857484359822216284738940530414019568214268084937412857202396367191690007302314932888443801503043400987784866954836882930082434357050490882174248173945174996166533977965046583047728915653034902219539423771514497187096691649003604264430518013171901093744497661682050278976078335289235474414444656575074889495681688939498021985817167348059444845896613175155502967014483473518092487604741500858482746643963650818625231674736478357833931621306131025193385482349801403741505585232944446309738325730608025266255354632317367780018297213164498809605090767343483543935352899766118942190269313242595197293452755427221634545119158421542644068770441642175056168496351848956388261266867701638689989808415843742775754459615979857116170849076905324853745546689544851998238353807249884454017020392759089807586093973087028209880420457538362649750939315035953469499464410568232391568912834618630101276467214959613193131695847575571340759821281788977274522805277775154348363194167247111431457547141538294219220317141017390187709629287305675337673245918215127134989839586186219985983715285315847315199795419662625653074163960617926438342902905597928317658566491409889777109455541754375333017871766168227585567886452549485785082624719701661399115094303948080907095508637496956087815120794595982854761142632850985736208483493406771186834709000133612031527735949552592348450648980669927711424842318121533473926502318690415890649604299017482097088595133307573804222008506018954337644014156943600484704762636718612341133398487346134885786569068297143505726535156825781049345955896419366768720493319872095860234493630929550270612707251144287637536695950378820823697472667804787916126934869182696027965061147459343320249656561219427563164563276792016902883890719142780698803789295233490747820277010412978635578218023446530744139421272420360061300373014597213091923143745477271939548754075196134019882894190846265920973254578101932997081827677001619725671286930352607486870539956842387341940713091285151260917030971075145420064144835604914112778413782253500209051196143663754022637832107267377889197634381856775290270690227674440396814404104263576890757496684554205826383035533755540847114158059456649649809605875937632927787188580177758586290472732966291178078199277356929460342023995084065324204894774248902188645981017927114592159066722083314947190920952762506277155853909925992061430285727183342379111414814950937220205892589753543573726836897697950784807594700730870153273385736823231273471969204833965286972450581168773405906876196973743114602655055145664611700070538243112616077004370579501409565434539349682223490187132595285715369632896677779003147253961776276677532884124060081757433235275619490814244035540969006263871644331269241876582980566786753915410956851054516432348647413440242775619853408410540109313533684071511549879617275502960367530733379725780540834145123804427532693849782556169468811387292086475311882638245560001838016809300962230515692608276938148271078802033202432599960621290204433225717158788368728206102366084643764982827274378437121154087792370003509129947884579116097948697320511914839239918648558014718838701300795387192159578157766644511819384731408239164324439812700560640025825161251590073980296757433613326798296380746796801070301629066335817761159075646230085083872370021245606318685488280814580416062567984210792087018484635939049381376860584720683927196776380517704070892368020474253719696162610748549678307601860146484441594369026222445118080106725004818473070198280380620161543355438688274518340445464041263941357239169764491936657513834809535585533980344712519514287993836625569789273161234546882779593024349299058289391496153976865910541668237662097907919038760119074338958872284587167531854626581428695826760793358551479823070085543334629005754926982076986825884996781558689970678679075450561442216644390352432349621060332441294770954996390038605342983123104320047860613064103773373706200826482808586600594849350965821328275709708790625483219813196629645890970465345893575780662733076723568576678183526280547798419564652575860388450350373504858774724845000927173351118118638334823251142009633417228867170510015166918686598901130601493554644829789582504923570819137225232577245041406174758328143820172730480949246655093920571307196384120232769599045341526885313446562501033306312207101453807814005069467407147451281199273605108082546099452955793577278321136470184907246569135573859882126885438237012763936311311158956703835843657797225895031748526784655064620490386872120660826475566762813640199585311543461137721424233223660320298811914864813808392595569667697906640918785939990288853574646514313057063872962188437206119276841272464157877201430040229826752653915128456646010704422362877858104795671211365723327176630416391978521512947005403415023601131168604552997771283876624839408224031967345139578642746518298972025132383045923928161962729508416151982494086143914238291310499726447213645349750558889551687577088848726612260729526018711479428197142841311174079674707351263395403560537406112266042471296028563224267717714334882205761968198881998678207538044670423927357028737470745042320037359566361640383422026974657042424922130265385625358926916511255121721493417330786425274002175647040447085718286245330522247553521353460117845474107949632250009342394358456629669138392016407889716583376532374681597988007060078842992874142837512174258359513085830738829717198573270614209506954009565408217275942499208680040675673765997478547478056065340407535441429526854718358455775403094178199830433117757123392074999120084965762261534345624967565366308337532656888227795500266200124358929595598015239279944642302322402204042022377059214018617392517691710752461005887036189841478064588260561395387821565254791150354901158457308689236245875113643402297011928885768626379616736244808791257688446120361194523718943602724790227311587622200467658007608847837257973061471957866499720248587376829669657706022892666768932345261638985341472156344536962266105278130501577806454154260653308483543790331275203054686021761762499706553500627103872080923232354721682543039507567633593749901832194321904111019785098332701269606916049154301924475977877942095799466695934939566157897950995157417165792894388004293728201299629356596977065094772511305160372413111508799641519922392382428773977401381356902198007756808552333772677077646501418787112535151537903862482942162828800347831391823384760516151845823001884694189097272561871020181999903373430650826423358433118607543068037258146763002043534148995201218088315778032646614331128181164814841727075909747174174786366500826281261054108083876010969699887615777498424169676908900437277975317971382251077314508582225008020892917279174894241438258596023759102402132593389047033528204725990424927228768691586773085118538408103532018770562825579318125554258337358362828739280523036638113829867553897036279740926816550759591242891084252159250737133922018473010772546197603667411822413699161218567702952088495397881133658019034972163971140875825064454319919951299398927394650584300179456281868050169252024789025095464827583970583210580610724968585995879892327803707428338348930185855219492313736787091532207298803050699032397285472155170690921474344349089890118822847102466914750171080780047289633975655860144439145034840741646944394708691890389690079324706942943567181797722485350365560877338798098685290617686824876459893644278257476331289342123693003455297805477032761999814339385518263637378880538227094930414685960321681684286133059372032239833868997955958459400320135684582382161794944680852009245870770800559442930749337054564527846769329123776528834776544827054655978947610823803835579579399631361847236047150901964153193485605367155925440466358526126523960003235097608693787778791009938212396110473129194102439562153695639767151587155287090450603042441661142071457456600152123366210736665117639208512532378561245758380777742923598802922634024122423928935664878657735360953644603543402540919518288474682186964506877715483729486079222892546599947550906103836324664952074135846179102079861917956645896678604861352969562148475429215390585102114567274094158494118875410778238443031894733534280381188162278248449763557714610913298230616230463759787317040412842142764868100782945948357199788596889227921522128626057462176240703206332180277919823010144369113424869395703261774458267788769800251133571782945752312670131386247926294302638511642974546685704042780971262012025860196466836201237662121191852599461797402575828720570395348954557395925640429496596667424140138008311100211603441532488777905302800590311596608318879550886447412761483271775924012057788172688082845946458274768195219840444722352594060444320999024072468311170991189998109279546177086164105637045652357026046784615114511604436368024412025223911978156833623004816212936791968034417922565963287763851075206533817774651472948283792649899600978252992039679705416340285613091251334835034570705339379292676827000108484056874228679833595709096099565304282757340985880584794888300316346145383677541223061969934794873462516989111282181743114317989651989977699461275670164529506300967539688092432079863991799613601773023272838738493214645320577620670869528996541757344817286016370405306250782360167471897466005792628023039602824753287164036864105482242315493664293856688702420474405455544986418609442700904764224247843657997764135746763308208165923218956644107269821968215569003611833975623055527104668422983316454304377773340911996657402195916686288937035297252786808760014543731777569969046772641739165457401980401134342243215879181532488740472547945766754656251255378482026832507905244009454862809128896672225452164226379667973633086624583749966329800992278707321538227816747618282991216918791586318944688455611764184091318631921341761994019328404701782829266932275744094742112896368342459381351306847387847651548088017997854105836458050798399432745464012063680403359599704203150349308186358708880663789855816086930031454644554234551321381256365252554212355681222589967621215152641683338604694167188568931248171098874216567496901277088724692034697776469139744463234489869637005476606183111704624268693838996368433214981078376691482415251967483072933610935437169484409924173806950351782649463748218848042179103108716069450380003575312758342142166673372396643212576728202027854195139314622113626776632056325426312853398942538802579976080495767907879156011883846017115608362522027010444796729037427371737492645687558632789473830538325281693976393390063952829693165143632272545083529329431667477188911471034796533785005163481237736351643969659644358196858163895324260466715367599957262983578399414259060097863131345813959823276547411482513783683573013585780188841956739956506728014486521206446784448385231933246106241909871889578096285048097099424869487768860097597108355065478109122116400694861614128136216701613721914537557984186041096349713225169069424705054230237436110684586345836702099918032910683634261420780886568514175327841014822410965865020539860324233929442621643815068641109331211844428288531535552101851230166904224282545674880873180962519848869640026617827193187589261242288247218432142278677418397035464158167655882893916616902809851208415318559180825908117561187402441468275125256769698014340522106415162094539608771383329485434320603306210778595871637525791520849566324646571556472241444836348485251746244842319274694327923633087146955367405122470047907488361486229359705594940879179744392307230168960308986519056490696742203663739218330139877480176190460853177191803093771320697682721457309408611077146643309582382931356891860820787869640725745177986050408052926480310101302849765259423490258870457420488594465177338084725910887740060371483287199966608112011588271703697712407393575527871823370739399600502576267850093392934994618405526060026670982137783328273810127773469793736873156937003457264702780845721020700683999167450954569929188175384737895802890728486549524501003958516164812329858064675974102377780296671811733509182784426758904720031912878592213080323265598915338995649210296857011715002139401539788917204243342529064804232653977082099177374052068562242019013375821175079630347680967709627181770226542305408338137498371922190787093641359519897505334075268987732269839952276863681379719489313415022680001581962815208810038932328333682159374192501580691859747995299685733396434763140563442722443683339717990323126399483917946279571781539517672114787966418470265354179617303641181555576865086827814815992014237070793570634306906681953747900230742386098589328909699175962371804519367992962713818451412361446311537173638905736436685338018044570634019040052685420953099372460550360927699974276787217650917129452448023737925071790763090192074513771247962418492429190261869229416355280686401002275449024740261174803841764062318230801180146082237399934864922485507034472507101939485073548135498746688170306472331874799329620996706322161964704590514830559798687270677769667071044869743714279011018324303373700268591726985276938838376182171168375699261506243380014082468757587645891758944651800575145283247084018827593790765918641959659764421967558719683734421356358230808781344885277575614204619563979867127870838286722173994251348521541269139690626473959109647365886979085432689809394270309126240759374311018798758578668446279466326505154487210741746738012540567361020315176107815989722683490810084997962774752697919163412039342015654521960921997648424362094253047838043046006662412438721877278782393496928340917321825633197330558471642972318305561205265982127941860442224748773049431829593848219921291574651520974203564329683941861141379359316278678018045588861388155477356552777322499676586166109166560218535518702198964903534905976052779990049960898355272741847995500514026250046323440464327830570157842169962018299749702678161093563151979155061955905871629421886829998728650853079322582917244799603858591737064091672140803476459228277116442169109009394750871594811682760455337167606621775401492101853211178772105970521757753495793343889857884353196760106215408816707893771974933292752704378570487513232936366700324088015820917566789796689614516849135650561945557801143606153623503330416846230114705936862524975090201153468405660650907086329518891393144457345790157415320281298084847328305183020178533960018003537637088368399167186014725239566684621087725245976131250969355686459147566079715017541419162133833264700785395244616685270367389220540741638153180198117628154756455979274741479380573228088623039559863112526622849899769261918620518239435538904527075077375051252836317628084657067332034611044748060314255104564676430997394870469804132353873681213987911735908377885932083361770954395040206302540042223700773931463642103027934465218191736419300230066134398720360618199235910939435755911520284999131725736148224908880775877453198413243104652657285092352635299555716878770873318262909818767835968711893770262663760169284051361298978068835689314990926342958654648034050011426912636283813599270231961140207754289867303983372439189994875538419160289260189518943623171607243724081646140154033545300601500474110919607384095920389276657811413376690215043100673094193945426457134121360271405471603414004921483205632331737932216136012625133717961272300357215761172628729145263376035122901754831450438978630358875855834276828087670569363441282308586878529275507610008341452895938261589336490366627110008946479569620209408875840867268731127600642360378223670432986864515842076252865726385003230890008391587263341586210647947769284824981391541008736314607662207745468701309780037895819051336815132411149215515053653489107088536932822327459865103266846684349962809648624710716573369899914869604396892461032776423833914468677998826092909323101145745369947158211710793841791063159758567888139318216493161999344984476212819736542454317224430126994894542102735047632154689498984604330551065866937877367107989854833089750053154669816599825740073197820091103990079312498837267536781672699136924918003437594847575337576594902748793038649211222120294643596039246463767166002815292450483744763708920731168990122993590929349620199800156153167445708105951427121593042910535415370023356146913326150091702632913651928090766976013167176997035668037552025447698199867383046393626106826829494816743482939912938961569282683028209478492997243078931530002738161645659061460040733189061872720123192951391495895154155221061437899168805437536090683936053442960368650383486218947977473113995727055253073625913251502753280170538628251868680642055489085162322311926431221399959614355810482669966693249005728734399637977550505733107734609261479061051470917813616043343904719678237310875731482350706256970638733200261913832345233290878312199367313706129257216921194343021265839743727720083307194598452954031129799235034143977600737606793434983272162342514191179290784190951377817710466452526416317550976520544228717752609616875373262356258926107212298693847228940976784475506856978630897247756148864454151899609109688986812703345583659627546517800947530306260897974964280252141108495553896139787854036181260368817639776231427842414467943443611161748784272954874134323713619387130118652048800358379394529080571215212197562993032170505307451181225004118497328745851233099140226828176164680052546623347058777759267798892730282996504975879773937902148807988769860543555356219655146524611981647676098532112988046699858630472176946745916237289684020661603276394090284809149876070666146814394592615684763073630559488085063806048901351555953889966429322010276382146952109128060452278465087348281188764225482866426662919559670998707321893256397066597779742699926100371862870531315562402115276993570946179824350415401159846686932586333031188300663939560818994951303641783674404312106223609946223769313971149545210668282387528124632841908063139449232301607046474675498483730417929282830810502025947160894145007038917756812254337264325102552713069527002618387656922159432091633729635258275068259588084886395921678138207372981594398571989140593448859200549591823193788612732612138194345244886004517226465136328229559420265928633962820101568790885172227698876298660102035697884038900241967684786336736420691631278261408787861087471371780242636999445707660372045369410261070843524230283668993580320307909325619290835525011362704700932155846172911692584605560772654793128791879719036433320670750417563633738662083357740914973482062130933900339238049544408323750521548279294893033171983035250296490753160779176351947373609590678360945285016183586313057449547771376858292888916231112092396365534406476563946048447394339576398745296136129595847882781970178401400665404127853006897416847349628302985185566734732775597994932772840868421827152132561705226905806065625151699872068400921561517344433220508843422760335427922114181429737922809286818434377534872429215688472976277065443286681808954027210881197856333552442750299008293323493966094315117200241994775452162386781388900192714457264215761905967767636744017740472695735731511591295546881467696504340957545192173189895653335652444366762458984602290577544621452670590968779952381787670073131202915224070321393004730616911070207099288246097194822234236530836726158616080357516138508481673601313626300153237670100439945791907856323040305036475131973180167513139241332523706431260381399536246948920601112317497576441817168952324486466433658566275590451946584587014571877182697350940197975479526935007657100453511894034517247265959054451463451999192722297746484943352510199075201510921169307039383177679848141882580396569942229659148136481751239997055014171021437818903667583804574456127825770146731743652484959356668576336955163158265710396969655867544446573053821303525184914154245895121789219627838680588304236997313621115334491226878827940882181796452694628180167637067974299698597850984403337825787863984468123590207295912892828754418713362739272683390835483564844379391608167154292859750973530766923784898758544773190450998625174190207486381247683528270257478801702995930502286976023025944794608848081965458533031603079936146338282843312237048467565886347494929612726433257507662215928498609733102376272791202213011670157932301736884972195917800417217573645876615566510152896375338993612753624875559596394727749405208908111912435969857310262659827046710723509786788394015412662462195515461447679804624882310552115839079317800841060902963720584296491416857507726512457403186510720327177258286440931232323532840952113273402018082608606435936651857040606458293037056269403479373481966262996991396428976602391817488476846179987025258749606019149772734262526061099221027400735864792553759440353117632678139686584418876698038487823186308904131696243422529439372218324049012209262835222449350678698123203163045888880546831990157521959616850891530311330382880667601532775285070289070032385629756707044862049809020144938124941973726137028281942414663460263983084936649385513837137815172930051652628483926345114486531547180850535991710451500493938474619078272949486844681488807226940905401938695557259402950839347723510754718033816383556326405908362634932831082071423051022532089882267095991497115613517872380331274772332052584536731626185694049695902255339348113961387013481856259500170160091883410683055974899607886982004405927217592721463890616430409648461730515731529342591518387142961004764006284231734493844149628882143358640956581928620782324399569011730809905879853627085113877645196659187945035360898383787544784217204417970094523306217112970638667660160830014318098359598761555484578570153813827098780171873822028560697068722005581833792025869289782126113989768035113990913500104522658514079434692270681523602957026320717148583286153892869185532001084162711985709405248540352743954905999412483259623765874720679724874817703778676459376211968680750517113640327979931675556510317303516333284268660206099711733810518654154747259030593966907298559369039521952922173834663916220728907819825460999628584302834101473001233604157005180806771364859074805889476836651502933461945276671222044327459232999810541534840367946487751430627980242653122457909012766606469653275067278543077330188498159809523217598125150318966796164330398001538442974833322700650169954861537917887887451043450137276967037697686782079799691346785823976110790670204313323576021334311085616417638383450665679879649153000438910320187506732799980660422494672012322437391773092729048687899713127702593444980000568692773346174804721814389825079677282863416856843087103953879225949116820795869532554065775472586038974792423534904543157079955037170805103316135326922687803923917849974930777024778369498055406371804342148747394709983816207118982555902771022639219190513867008568136619944984435093963189037865533757230063817829046942759410097141400538790922164445347409506445143352959291584463187101972990895476004297738935190803526034177781638140532642785525165808249877906124417874072118038227074698908580867698880281881693779718448591871676335093816025942339705851470537505439595788105299542950219035293411497715882381618788434077966022146976563892060775473611724831465417243715944136657781406505437842625542174870087796426882034561625804799170715806195986181439181837233008840406619882789786125031047278209785512252959447820152341611690313908153310731966955385023703448961663474066704729751391933428662682649585351948776382646951126953862602495860044082390540001087291046084286394814809860230799721948571706105977106763915440391250995460697147522370458976110113160278355449890078450885696793076313850052357999388406977804442391579268373826199953406136048685325673717129939924761990380931224804659508885560973169353829174610108340828935554355890176964448956910951985425048377733973142134489222475010134733207097509175267748679856164465851214958612492883218945337753390126583649652923114874152543454979461438154283830591238861379340171632342898213489026438794805183539515307836830373483958223275776943935756244109781859590376757916365927172109742016227874109174489111866162772246338363107546691964361064568928000874833704470156061989355339937206834661178463529423233912120483342520764237261259980550395339742416583023014154650962552244166227823892213167354600723894739521180706958244992229987040671755474647442307277864167951364219854321111825928273291789786309825944522445527095086120520353853148958993122732854260150333193880527232805786442077540340342824247605030428700568435615917895355412877724408762556356238326166279214676967444686173509065196767939862699084659628397771703691510691885962785515626529112851383600534968563862644296095353357300344211419037189610249452602148672995933658227068072498360619396693392748408335634494986191756544951424103290809001454072992372052812203808342587284916098944181345522738348787791658169054824166376648022285262959649346175961384132153009167534240116630342923293698727512211204919073829418833910675412460854672573079106615065554999030633297129993576141586357016549552034261719129577673767853595240420964857576945084267215410165108281836103808459672286912838135182175785745100012909630811532152846097335456865131276947464839716119677472563602690884277032243754132267020515276794353154159689476202354571722933992038540061828093635518546361721754648357506326076178880313555942959897155485894910156040206327056062929505163102246537167335792474010556770133931084668818177909840040176146130752763633963923549306261865471042541138963875722740190680303034836874044909809556328779791612149237856544648659675713149557373459706840933643903792969389940341342962578559898487144360314117719576613925181177048236236146839430045849738789227828375487641683846899556595086928244793260302722187100614284871843495566975762089040807559210860264493704381741867204753693024480909182017092114485662591669290841003886328266916667108520004135346947827529789177029662741880617328546752396598075937926405121070474144180862554348990421055518411479527246152373373652483624870348618067833925114384706206231933621520356225335724952259938101815239380129474504746862114150096283402348210194369032974563968586337903168392485018397529642291490156297008504858286488981328726962891162287194653013824428528757538693460813136485692181294028439835500331822237397257989608740137945620777383226104329675157592453805450034628900619468411267598357837949368205731029533284331011451487526062389541766100351593036924416951443461281141627991929825767614263802676609024056935073282638037297695878737061865813234609174323631119603644377771476120990256821559781190734239508221337801351663463219228913685087575993675262713614777798921133966302995280059916001353179729840986557547419681518360125083941771492595161467148281871049032405718324490303407474669715128084870314486599414878627923523205293754200100046295192082568656619424038710603891271141377992491862736322262555232239398491139480015878075035226610191687713584449149478555906926714959551429596289428767845292417032133368217445910176846749698758060856957331230940535224013870902735452734899518098208697772759048466495993332464489459963652831107886354437803716768500065404956830245800608915004794752799128135545186355341588294609050926086976456755884550040846580807760054951328339883706464761342033052396779421052851074727222770367519959622619442497498423131397420364374956808438648018778944055763669450273038314964303482361152338701932173961928961470781790866807683473008815035885103639154380019840409808290225713477982287732487877201533954394836502256776224020746749060816578746436883713086586566249927506639342035421489231395955847212145133316842382258277973783025277126600416868497640292816810212671462053887276571991286828679257520660199973956298790009066181723097164864046504175252608558939662633310957733109176644635971256745899853717668087875507512081191202623221828779481784048617108860034019367018178268893084788388172071339793913230109664451700539546432790754314011559214917780595653977864587025598513009348326325137739992410654135523427379737166937647800558265223707953549199793438237807770888173660464951297416711812107962101073690458179944139652815626419912798149564970357483468185151728119792863446818736077092862584831840084289802527760918121137975666603021173391712760365657605802729042963923000718982552465383682932837593124308526413316896739959682432011662156376709042122814708957632761221278963754430795170116342928042872268421311185918233795005586688020071542652247851165352614651253271324671594246086482400599750794631302047349934891537685128835645588319796728435588027820211761901515241738603508634195440751644289699689299229153806968885917228236531179691600381170835154177847960814505277766030257413908034666538634686516486363992465235012517554294310437994969641424596987618103041442672607142544139075097366389381544664669054278921332012711293488936457761307027592362486641735202405308770396032711074796918181849684226345759863329136982964099407989493820737840712663272958342142390406050968945990710157402738683652423240088829103461126093369935368567301381397519653758056107984216095247236988511643116217813499512315365602439491022850198286719824460074020288185933757500001640034288697005083702157581752979087598776155686457490878294311387822448307934668333196076621903816446149847361628498042610615334460980679546113526610334361102601059258599160735386865154716073833397338496476963360385012596837344445112175575665663939462260297348499242635381953868319289442451367922854695990306178975220691624079009003585634990307870567589958644586035859522435386632738657724665959889102902387667311015316602430930758571370017196469326270472621430454018842044429708183059242078496490451959616744493640809818645311547263625911358148104248803257581412901237670859534792190880702347501428133711968993570291371946929750503866702789803545500287042425624351305829551215646263928152070045455612681763711501155542894153607392768176075617258445166309158357636055695744251684545817061614139567221666515731651266498121524093881575277900891584687471646613244488941601361123890230875638322908989223707148018313919309603499046256824185610550806134320482807983055786748721292862769101720234797946792280063184512260983885887137027587934007820075166321328867633292908756430893783168053415305358276614663252423615613141546366720658274525413595434659780017618930297632435881362198327793448186069938227257406679076537363479493233285693919717359366915878438419638728917941930378255453320845781780577890684531733978747618652566786633239515865821693856769540372730158650340294516685719387994367638035809695671997897947113188871626051659915984205557878408951061413291175024210557615918207108799420507868628247447775883082617245064956183649958786408112954339594587157156489548197035019440266282208426154282502696618937733884189276884531662163889340378015209809894186816231430073138630619847038024975479467770386052400692082297786587775293342943487968427259466886311680712573095096577199029825563807775263602708277275988795282079517198276645513622881158055876035661090042114203584192178318489951180390515864568437967819424161072691210329730753155533712067217968282678086494441662814342204302355269213189825391341152209414389679368682914338635763583114499237381642930793599187836320650525750362509557732740705068787061050888174027745325874213578043331042924973503998280341697461264110295696537389604176810823674515490195384655057961983135573769347800150302684041872488012461824379924238808155057463687402193009451586050826441570170526813768109930451106275893841955946347071048262259181931949092758095982347934736255283048516788439571869088855919757592650242043300713229441741307078849949536665349047836282442421157875100705244047817182027322885535058165549776560163310558754057113028347714590171127194631956463426623264762033605608483203866783084113994770490132868313111275317312868751950228220420870993703793825023642049769572656442669562267315333078383745153746017924419576355007002104662348660319926810970152037935237658258132008952626208991158553372586705529652625139386940630605398039417753855116100103055693748350373567037307408873529839737071972679581782567078431943054755482983734200506908127335961456054760605545634336386719123879620209539627640766380347360358063165675992114017583896553163417572933236373893318870230053088648146278329705180687883171698499441844438711148311809946651019022282267115686405008207305134306429206376185123475032488941970974750934073628141980950163830543717725782365254106181614483188677162092325674651684775829988472008467676511512687147042850992968180151405471078234251559770194813940749074068260281339254179807057182171909181747221984087564811040800400484080406595782056245655443485863505544617790588777877602065818804089430709628890423548846895402638487121095870185370885177366645644133385765287952501131907944210829532864120196030659250283209946637430899599201924530922397405744605361099469098563698841365707769988878469516464174596358630296029297799953028148230516541334758568349438326344477763780832922235550109502521594737225094710528300739905532797565659075678750190688650894970686851276682989632178723215845956547153460641013675118886592139631640456239943008290373077465179291981590926724587948713240480817497520218783026281382164254280848149343252213749760828528770553204492710216199958371120710496291899967363421977988272395692647775144377591142079419798940413281269764069695552308663958851778232166279457361764992596422393223665262220960196340522935271257420855718704169041956892230144120475850608150296183196240354675235586521656006930280668982438246480218334543058463993694957639954322184574414468343661312633356050237181086959217016165003351336029996865963851788603678593411479759041296709713852890197519811938630458009889637994731804467520062390674540322950657542035800662169219274767269534056381299415421845301365031087948678821421895012063828396169683990070488077996521229885906708008654711589003523235602414194302961917971884589127247357606665323879970808188003552569840335938272700826731288728230137322675225998038984941076997714992333319341113959475183254544239762503345735186928752270097629991272861574983771872846508214393944943264071324378142169395117266805072822066968693340706481740215400462988821368609274303445241095685261956743147837481146317512002870110278741815219066411629353350541390197025864684724024247808948739209154560912759481733664635345586742051106187822034882298709807887770788444559797184876056360664521627261670536095241968398431469965179551179699473658998230215192995429507925509740793698640774253182607256064371619782330470431570863901608233892885273950509718193808851959138614439121588964983171319511522808828244958008089392925533305347688761676613377726571636702138665850584095230940812845664680240838389816503652107866548998161082433028636202604394905063357255685579907144430906116455401328481978391669886363533580789892840750522155431970210797675502904217322140055285597565076920705856586295901404285816614220483170606111690327492268270373406576026735683006381321843460998080467849026157243912488387269863896464275731799681727493965309347483470004395560500835303488409742528634957755015097161643652509691759161902977834179823125118544124654193453232152353318382071005534694945405860605996051194621662933007079543680242793215558906727332542878821232696488037306463810363699807902877816562137472170323607438014930021726386690671866096756408851008879747133078923311561798539302078351334928290618092888132347747560056830689555391377882930236337776806665610983640100169361951636693864258857248426497299787495695601559815951665563980831673756778059157623388350282724802763643945545382034566211847941189512713387622828616421946024505439049826360016279957372853603749200428548936578907715488186144980003752765401013437491639644279930394063029862380400490032227490719653558114807548765105829937261508478369725464453089150346623295430886224733776707804387396150159646698547160231186647790463815601344076842409225601428009664454839991464515717390530658925397803475409140507570492027142585113291339413771139654412590424798754170946251783561991310374908586980469240005491234997102553123441951164586515856960846049709599502624856262560136159581591640230452123514538002937708032995312456335371509688848868694035218299235087268976039557621195621064087359126182299111761472589617656564557649120203484050970280827204346921460715859447798339915391464456636205338555527652200975167682356100395801878415164530062202991939244969159247246265433776114416310645073635111129245391256208587928567191133667507299615892188132101237028855282804857007870205168574317043819855296526707719424264301884685086250342785590250697481885513579352785309574137218789461361391202793269168758154352155943018213666539402551547799821924470994109550346179557363777912501705256002319441326823984111696938573492116604259816682853485935137973493425326500354667774935067857365243443651696272988556017675445997472803931723232669843418261011784343940808239544461354844525449760318149011448484822748948472376519591429813427603697533437483607369310707553659996177698753706785875360588755930110397618917049434044494887300568503863328421628631319098787523207644734425315278177139962729643171406097196396968977043759714266933310660606120440300062320550426816062774623020205455988440395947590101868689265547541007039063161466673851461428474991740437253938227492957090540416522010063135691044535834149044465397517569963527121088046710456542791470807934222309011283739006489909680926746452845569785265513263402403609078952855090193274177311305479385741604622036068254628405853778359199994406435034515052379207857225618445598978124910823792698209504288607950838221096612609034143867626274869380543273532806058708093706601798809328512052243672504903590940158868116432190446249533041126691072483801442559509973528714000379221915088946509627680581228755474040075122607390297501865075737000570952363883588680200403638820385211377249357909352117917927073450538008629440582296341634291211919716095525554292112878808046342312261489588405350816326110983156229357761097725148763672429198335994876049808430204498630013394497040003250442077376964094464080204304439753000053260313052946889624173086659122416656241762816372215148990157050752680247938018721556438538988663246528119497217081249975253672617201547476267379295913768254496339057710390590582756492793268399095899939356626824741744158065649521317475900130849188334609464286084043565735185524500944445647651006596104420042882245601454639860475031795447960230335663744343073962030614394492161726595382535792716143081713928378822578615727384409097137469267553745159190650901477114261925941111408357043343465712244541620679452726603468869354514473603357656804870234879617829191465103949171742725968196697469165276566187568917267269079963427947908813180409026861443444956243756027402814724862016816738348443526645086672086478835860597582410136809007271940490309186916420996827319868346797525422813410977591813148488839325563385524721952634526921370976945018809779615970215759587609783891511523552782965263870011447103183440963199303499307565224255147694064955787661812080092298155615518436126189187917998456287021810768631253187458077323536624105270691779431366038287020159215930355367671360442251983023577071405626912188088875136896290062418639216035627786860591562307410901444405906777290488335845360002344648629480246889158984200643271812407972939784875180696835033839766613380884029785688533463534558282520337748572366577615801129121978568078684440548765152370745418311333845722989758515032881484524454270418757599308367970524285799036581136422119329981004479260646370759674909577051564929622618245424852119551157023903765410990926571760037792708172240124114060015421166911750881959226867704136277187835870306706257115784313588850251246463798610457630433085530761673883437220637664739991928038643238888476634325292096239929047565800846986372738566331167107391505787339557297831449844933195716725477862876497426802815674731067952951109032401032547334344786166483451326795340667834432949894996701211722449599811506824690068326089323127861379879670544181926585722479276449483651311728455512561619403592084864674997857997323566198492273229934205284275148252629363611930977852682706186511429441968647362557389085698077529126230980690267931099811056544775811831414475796877078912844462998593031972005613407560587279674437745492419405617746469660696832688825678467360667737251105720083289333404219794946758264852175713633915854546738078504795360993970038897116737586681564531880940111727222482072702800400098522142161865924465644343054881782229941687633699325359553870362849061075101632056517129689214712743307015025565941077276679990485906946343698568954712491111383725559028165415551194897589465680058003874214093707213579852375664231265115829791784036243022191821204096075408437521049221755643879841765191398449353052912249820087230617960096511451309583714509572676470243481171536763380473696047010727157088866066489401851201490775002574241028326147189942695499177668634969620616876067982013412754436383543626325333985802576401718742715219171047415524719776560977695207066086950018402654253336111955462448524602208853454523540140381289668469495502684235990530180160366463180714983054955955964827685300521190191366582610730214143622132624556785494808920074805144273127725504081476047334987596756979798629044311748601506821067102596399183004339088506813228222475980311955574495006082150266926376551195628470825398563150309980273268011213069825869362605499731277198425030660585534484334395819551939560615329124157670418335912173656809598174757530055984821236725364732829431520633045780840709245682535468045212150227445109623891819355226345432382184074228393226873275031904579780011858182979544574655382281337422889988101507820215355816089558437997143667909615285991957121539901972868990829469138926112613088320526669186284133092883427426152404110582533793850306643043697545529812346240452627272987513593155555350796829473799895170752156436056498979632620686448249956953459443956841853239787271797580749029064961924626368580650950728245920429229806240676273357925863124971986358539960760368096324849081707735432157962500164721008725099758549946889762835380815400629843326677596260928241898384735837463186961590621876157730728051979933826758835273987291923369463318622701349855469489465953285407194051195230583817046843857337793316719463929592494962245019351929473162923461365047894259431358930436990194660412470065865802470842714053828130999682051781026622585209924885925747451693295554856602778326939286233335718325520014433284757428527511394404471860432949039180402013621275908338551206284422634261154578795784859041929186617655542707764899276142849894938501601441220739297064607037564345507969366137855875634682718844456956727934616107615139183777567941819875830159541366918557955088747120554748828247909799577915651010954767750370044302577156965484672028124980788762715590201819009516371261112453208577199255596397450514889513133066962975536473583843522249366610918001898254309095567555960961936833210983177924484268246735383692701572858920160694844642011886734515474356289370262994358622513445595677205485990881612312078980100026080978114871885267179575947037450879037741765572428105405648685889293784582161958394718526048226897152486880049848533991779866827200363942501014656508296277593433253721391269375994704317829318902962474090552663989362337652140039494044542707637437285154119550444493313255744859055836628659367911016111557932432775839043488179865215949433832409518687956474036213867188005381372657819788962873977379951961060760567031627884065721372924570830268730266220943535128303352802560322763335736940054415793692667139773593375715880327556419689342089253287112009231839264548052715557829049306240138050731836513083881323275865472738730926546512877636628126012966080458174377901393153937313775461351800249688664885320382630307761365449238570353080780490482119762915816134676976554794706132080206326219921734021114867231076103124874890014545335792290396512352188232562637733073356974403981967522174599941993538652672407769554341139348825233516490066068754660272908048377587369797836435195333462294053784058613545347869213414411135490125193408296930052381728233999829871683718308202954974608231078583637575672532348605904908398582422097811623506692099261451988980674621533430687785815130857176940313512792354223653150521941887763486006041387424677933360642692465903234020144987269541868273957194130345745648239582830808897839124039596913628501777951703104998845406161909725610645416987324842474597179995019347314231022100310637089467504986472686078432399592085668592847060897910853587837127343267389834343410658141963218241425693829766965041846360738955783040425553644749128049782913723133470514482087965281292356948912375761923185113242788064028659492302120807977661429274490408493981832959191638812754360601289309283730430288549553690068205772995749289421009242264805808006105124979253628818047787575989068316725558565563347908946456776097117347152913320069224623470200220908086997889980378872890772425318859545631868322162142771943965540307583442541347458745709779334556132276050948458976666684552854303430460741650345990353354983707643498840166222411794388286577104608675254479192667643527496370699728576967585720158292428418550815073846727579288394180498690228009440493122729609560919696889779330977218920984851962473476914546380394025429729405219758570661644475436679767332552053807029372530187746248447763485749141537311054872807814509992059958307024372566944966795835200323712265357929824685179455193759619159944791665238991122574643361519012353654336377930185125423222731316398013812525264819134893227487636633435332306644757396197678341208390957180909281054542536343701487623087909210106263983555313469814319302902821304439183555722736511804920122205629885691704071609892578839826952018017356045208186207263961224916853671283411627314414693218801724871862687597368294163914185266211636642751889259346299439880236679939586313849201843414345715751734709815929083204218274377730894864750789931226491180764338054994264409524531105174727656607921633900598626534535757669015164488667713665046499382202425411484925932678800303554879084675639901554189419254928711038282814324911144263887693446024084076225798133380634947499139497168698522166947447317752156739132566276628048725120349557747692325771252187796642340959989244145083514663962405505283696789055099149915868525012129064750998160536564040419319121963410821966565802204675028374787322901314200024948123247149338533286896196267837411904180049814200942275683897660477431786617327898630583591385017660890597195363545952017635051093934813917347655723410048391106666743609136287979235110507581280151870976766465115857989383243404124078576676797652002617780490653864845793740821754470795052343543123344085194315420325222302900849155006597039885868373172078745002974262700988159252240494635927921555990294065645863256240705294757096570750175572877808004948373037267038352839564329958102749871536411287767469968235581954569707516738816460206309808826779485330915030889223865267637968796592311576471521769324395007066537401050223047825620852037382421001914437294493213445761446204012637536079546421382256165287074313862899176268536766553732114630077153316923459002058847262791415554834704311469518068228160943089108061390693082698915458515714895127789505147427852312578743819270448006362601060364107413547449273515253995198344520405028122754788747603729757549845970832992263412783146459010495124672347037380703614213894828840614961383397284057348942424650900436256104444401881143765544717482052906531256293519869871570575091901336676043329812192810888944844697539660396422798745719676889799054901793126807636489931188443115446010003095789382661059629407349144810878649165881919786802115909449036664183319530455535470932311222453001794964139742320877184180751509466849831168532645759483749876122945386570132789393465728884562404727558676439562954770840287611960711119236635898000816601959568898921521457513542340677549391900649235363599443761526897723241066131913531874331693984828561744994983842827953676240417915627833532089922804263933946923297668791197480136696927104318038985303971131118825535130680423591876832109038100232707474886556552780704801989859840005664631430257548885065576027635223317905892365512991494249624678994526458231696540217371972439065165010309053462302152833675390962723950441706221781873229661615334895896952968018565601992329674267996234259390900402023059608912195734812006859494196593205035949843021385698483717007431424474445027030911674828508162655739327561433624251784171075945300422792581739447166998089639785748308343514756670421267587036104096946993766071710443495872722688427718158680397523996158216037648070457018901802592397865826720506057377771754052524862491371401277808950485961524205202701967313422224673778787231498524817289690026595727079829954322633287383126685381990424604367793242566464686970864759090800082157747378893841778160818429267764355340070536621480484275155942567283505457818822602523132499442675607717069312970593708260486126761605167374855058230904174881674321912543806323764768930453402417064337669647205181792267173202768698713949900853698707055361423807620395211981933178554954454514002207570488599996196753001462624171018071121586140459114505478535046387534266468699681854822188104933331561616433738163579954767762087807774769525952462216702363994279988604375278716863198893706114643957973128632471677729265053757776114657903576967919887371152516364177687138430523956271651782769240831714359166217817415963958643388827080752841120213231059602599083364318249696364285458773889273189137099793181647244351445905772044413855952526107616107405826562213152749776364825329181289034627034529146511612438191314112066469740747255871779505202924636848895334822389520976270381209470881656251014487376981518725506175284304801408581989537580864505547386862718649396412574371902323533360619498968202472636843382486003513338286480739848139223660513472287204612837054037160894176077533550601783897893013930334726306036379834241230221600843843404199985977279556340012574197209205246280458640069158614887659205624207543363794062542998745109144430946434587253883253042394549518501544817197348618351121620457919755178848578009810217814615844375309989686606062755464895510524060002347015944871045250185194311486859328132894943383341361574189836412189645864129302498702674139448341201432921390852192704571207300948734388631301156087087538411483679295562606860240762329668239440525651539974748558190060939636387914266526995355481944776189382374405744162749176166291352408673185343994435735356097142941652495258525002036253443550028900415042836057551272602591507124887136260546730673419632847319645161007197795248633968104628260342981993801265142816408305628581778514217554750277961148269162654122486197360859801030164422463087790358227648116500090549641930914396953976405847896987572234838537256423531353888327694952900072341489523749427476218886584902915051461928984074994794672525191905004045314942425248418112132830078832882134796494079728138637049481694084963853765794669826229447305704132257262603012709315229797626334033742189839548670361819386113047782186030713829435996531361399659338144592100318449122898916950006899086085587474621329134307302230402949524071177884308815124618345974397660862411621782037834541052575606394429006418803916632009068883279000755648600349040670849873616718490391574066136980776418234226487973976773447422211362346788335658022255252145324806148853620528171262505350772164149980095723569340331086469453825287198711500904838858690244630864886810637081346374374789645158545064970105427982588766154511193663919041730291365718724662439010687354517240851390728012569437650827108133747222497044837121435059123247184889529199230424860396644803326863877197336825506527712021073585011317632068311027106464785802431194193917381780567142233283774542022149781697843194981307892361001331439338639488773587907996191953800158244314645210568138575446533830696314544969678062781200910052366812894687897859226637114544033391802577876586654232819350434714230257949144125479181762483439437921505523738151828703435530212274745878944138936778063730745102988822626278935044953872940340756932378562922944997662009142517329666452316120859646514713339412596076239349005050344207304222896768290723464319552449265339481916843227898691347136105399862090514731876134723710542979621348983974029618188191584500902499915076542300984720404261037080649881461149169104996823644196768296995848843738926138255201483846082969920670858966481529356627352433154383879777498418338417285063016877189310922541322738655124784040104556872127151997672001974075188489117241906285683952117217853577880268518363908730903530786904405317515758639517831743554398776277878240700665745411993206629666167146400992908494412125841205302921135206933647574656912496165262796514160220332207723508828750513166423875277774671125787918408417855056535250927178296556175466126859319384556996564007707133688703784419787102713111512118565176389807955734722960858993388550444762335033696388163896657809784928247304394432369979137179559357315026497484773452156955133217093594875607851907040476610545820761852290427537711327930250351385991289378226129424144292147368821905668518155806562814441013098747575818640912825013902443369911544285273132460557853020734997509024653996726787765236675237329864208025705250190950290404355846969776241566547393475533262579466354352666709983709135266403731635632208182102107955273170556880344027893199326034874574509107776327977201470366121003912679315052262744750427714411376240791318022303177711422340789059955268225158295367872262989996632654124475858806506962279775514023462143742451623693218493903062460915283136139029537935597510792708961437364760894896561570153237369262540339800223205593373381461111692491433914412863056475696794567757701578475957028738983308607299048886030001760619833090308363212564443217170880037333389284894598404875506710658114967688220674120665859345451718062197201082362752633003998711031135753797195649976276148025705002979197604732461245639497222113957980560716563100588456651100900244919995550889362115189683706016085575124252655987187182657713026872009799618732781881700379263088694604019014899250621019449603197911919397183725561802141096789813026940254243312779545894823465833115172101493261210937457736063954752288871145075055081310570423446241398158440100978910506388984320906304476411928243923853024519271780035617594977454146630824199563357715042408094540727365602099734903150916490876628950536195058058993761497481171033440267294371864223119722509147807506864910331650756436243740313015421128776417724071787199751824805319185201505782461524224844233421046427623779462326168019092502185189449427338243900229289071673352241501140376301639274905451793004030863420143229489295386409921251405478091004554698597338377201385001250179889822655013339224169644190206494261665525670292145906753580847483097963823719756131007598277816717774886917188931350576067052025469446255471738327567341555714752641803640442499343281883740895272945651208677765842103329480875003160698743330719120770687494159187080373950049549648077710552528843309289108453680932020204288963078469901233467864215590114905624588467117915986253451332057091429231426279250367351065083470668567959865949162318838941522440120488055652622163869720909551442746800774284493599853465485302246788653822657113866323714604529258295513280589438286981066185751166900163639609346948277734751100866559394414359427904192745722328853264159999401897990054268912899707503513091655054202977885628399401061669289541610537132215475567078932742133016736671401191814434259854791086539914137261130722392267234339061029331445786866825150052898512098752649298443331760272390652693540300768560791362261099670158078724312055046866795062743634795770760796012244072049847882051667930500210119373862648661996836885163330820577113391666707845360719149193256854846786611884943292740346264019538269461054959673433470847055868364130683469368415849359503314485707000620304088173661545909277072448902423443511053016459459552986511462202707314934823996940204876689673549312520413705093617056300896482752319370507321223189197130909764470438457664681417171606544344931445191648351476098001571942720556839070128568696877304661062429401688263423544397452013148631260553535881237746924223422478874727712173043325402995447189729631859601981907390469934875953115506692060469398265596042351989387360168126650009506591745209874648937841825115590684021961862334384556968243448488365357888178887905858070514050681838130216971817234307910374121433230094099793755394261563703542762116239589284008805028174609933372461546707009105095726668977414555276472451073980857811340631423220689177317332721364468778836042170942171545212355457622043403697310828624029202264958978849166629080885730614562304375947948122418646630710331917130476283835982862719894657432616664555910757254895778047507340465496230105820986828681578987450349001026690579099795515679870767289782532718102504567885735178404348196721780758499252580485542542081751204555628004998421359922652711170138643797833196221436762063727275529633193145171138252403926288373456190822312319893420704176110824293383242302147582194461016382901035835318886522558034547029511459541659708410039532606146417000454937751075209006775363322435817977207942526432090676496541002544448862782711808388893707795740303882106544552776035327405890413131041753142129437430133589286313461903300511148091795003552453723557418149755961256293671766780742869677753343109410059543743630410922876557400691146459296180706292585692906415688768048854936322019656804129776253157659875302212493381268632240593002086572545703907182892910065178551270723555089348089430497964010661103232639112418170250494451416922507296406997963713986738885457439821524659434157053173504220107529762030808299597164872096099813186938825072424601404560893005123509821603405477529037179855754518906343896336673642759238865008738863995052934514196622114814961343609765324363899820783338602327901473975960865779681517011457973817953072799096144424665258540032449530654996142644285176340249248730914234244628223563918964026152723987120055049675858243623481413301203469485844225333552548504555637179808803751243804596759296928626359679245915007254305235105067971509114971849616290915224286305336254220401823731772682920268785036645146439622459502311667489019743297865063742446446737070418982966488914159285615545144769806080080948790147524686393245925079530625269815435130978937179396799564954171923919743401538408978808498888267922783421572041980622342017954456347302426224765940102201484473985236235378308764470247899419352944729157513034817079453392061231676245879612481655620265239136679243231105181242717193182316041597101844525259067687951088389324580619013377511303085371909989655484112232950756003943277498698069005224777198624800026554531934531268124922577227660317383454963034990072180661150435963584561167091767096780654291978787203889731499988919090966063046330412590443804513769552200971732404980568323135036856744578202505409474758887608454636188981478613239440901459363292000313753592375259199496437533423630195818268093082207061173601975082159595435048584764795505200180127886514319484774707581708122041200396608837794369285654963055324877690760872998873360554756587521531796493162347478106699255861156862928272596777740075982471633333558280418876658926889318841152359922101731389896708344091367511160628716820543508460202916373299451262610929558833826623588146258860015716053190631606336701421487447721340325599212325579074000977086926454999094392387861233910463664101533762986257318097689608765130938027897448306600661461338575411432290060272044372855075217683891715341967093483529175966972552887508968323082554706546422083113352923419369205205821032264979475087583447456508040676104929776454243394847722746641994600036482085329269145008620559432247010294628306258953584656234798874530150088597183913968713390694130240671635843817199457967963916697981051885242801378138981764254287989260097907269845970117849462182820751741918887830616763719099531784511925551659427481870359447663171871161898967885645586042236842526075805597299203175724501229966674589483169806242088019168697271443848957478029997625569583392939866590448082854276223348525411380880519044257437977510754206616214849707535593563168558284092508208242704831692970822205586440350285484199902022781251425992809901698157663255055387592362608666816558013737053755038631196335494076750611305132910714135095135489198617931382197474958637129931225049541993046243494559954436508969250398552019446412334014223190656868175512843997512599356849275513418255808084205469753639948119049286458710616367220339607349369249372915711944854437080094039105827840131633548025701661387154002696851390052780000664299344013056328094323462621104747134972059911543571823623829632568064455179595717560318838785748368018913594405312737946411535197925272849823814643335579569354980324888774912134599592199902142139585946939263755028927478361225862419987189991902505019753737823543162073988428847125795193473414261681704331266344867517578178054975807094825141015031210776475815168995737600381804621240451505530257963082089944447599888565609510043458087470927689852065948384243079757730427957427706714265236124654314633276127881676226499095492397098144997874250116566831433643560961056231893518298001429708315460625193249495685313850992329218566443571432647592555727200013278412821657719431284133758505850841699399867420394689402591133425514880497537197257500341386301711274921076958737809455070850490277101941547441961785465608082079052385359911705961553979446874479172590755369779753040337233537092798166967263801093621286072188035000267419298316289024822792302971845491322863484689509208021963704991117353194339095787625236420704070899217214149799030505427133251731457979370018446144182186359837682473210668364524914051566476847283399537144244570636634800644337145578319902195370650795916547260101569400879516977423157694149315526017482607779649148157869704854405481090995900025903285092215437395506372769283296469023318894626150183749073519977042880614140795331436404073688990298513151833973803713335607484533281933772683179071408641231144197206798879244298976661962963034248004431789147810327740583313615227734746633739665345610845783719824736117320132452089909153946908061923949042120199283708836540136453433428525870485594928763227118026781053580500299541570935974571580660552581663589413660414119404307965474671811420201606396530325181886991671625623387406279967030606962125175657670333945555513583069126933094836044204007377592680298171989877660019375294537525353074357497162015529691161566364558216178502080576243316670653316905086355406629950320025126469440827209418047813991962420842311376140359168094296989704235317383634474839968130049204387072951840141952256548453832187624841709825213803521263999788238567519282560196606785771939266567493933793221206941036080320793292193587009073624115822857425961877467773315947500765018552208635943948888893225690957324021440025321964989676400100031611798488825226052535136573116043735927693364091200141093181006727133603242253963791498986274129523411390717825220509538551448598228698902082391340472911322681362988395003328115838603237928148176672382395981976494385043614381616466684668209552462067444874549156774375697758820966367602397890227575484597669687278047934478069270693977600190323872655241010988276504307265597793892966259535662434506260166019964125870274780044181930425584107293058114115786015320810183211379927473122078570763165895430660975548821180817383113672138992860305378112664543564837174317405791533614732394780740532820157466264835577613962685016461319450007734537933112522320930412889669712479939572725782086748732260336419498405062790469568636095665982038817594869972234675532377833709479675911237904639276155007940543753175874490046212544670675299616403389575795322138101594398549301490114780900055789616824763411361529943353350640220040161596387882994089769945485212498480998768935435039683734388591605354386581027049093542417565234128940453782301620413433956904109770668938032390434576837811666914482939773054723287441225983510838104887501925352083293512898730952843599073458111395839751727087141212849034814160412202309955990994590205582299585414723127506306139698967255617562598612809857925609994984503996706183836217061373754487884295075775854879434804628874710394477110085346435959843234969416886808037025636742245648615755179541281425364512968269223642923516431459911640784889836947227966211361914645152056922106251153100174988563833404621151497881211215077004355888647021152654005589582462991224563703970077265031220838281260491759752180659059508543277807073966266283444065240083595086138188247044646001583098581870632841010554320503451323795283948342611792323838844016555209567658892605563468660886138584180354709793787847741077990407628680413336861576847560339691549425350021151615103686804900827807732251401930289373139629448408023487718102287564744747111763652624225871148275389766651986026873429610087173031349597630393066771329778763971662033628146312954256228647794978540648200842593113084510518864076223562304144831494605058332331670682775102955784687267693741389784729986515963413570475437435866235675497973464099128463035423795695031018073416511934969395271188548520420095248475705736083735076940460084441994420965685127269500592622592172689105521588334175838714241352935217608172516634010575358655618677659894240991235059839765206417340215628654439589902045191679169654366185302304785474487751467733709032808132521294519302265903625961746999205192879492673665401854425115230460283881491271674118859497882212218924419532965402577547385533969685026125825626150360334932726991902976172342252052880589619121685132121417594477335034504850201689479607026886771286382388746120674342370737510498680672130702524328774370440933526775191233043657439077862622546347306031456527290017170509226644460645963154861612118877998996343532029936175349952147462547347349584675203091066891517083924613431629318829734151393435399607751678617205315067514993528243114003769148153464407880244301921313070638350748280489172902444361530281467196095431602541728685414742309852846227056722116853242877152302790353362405490854909903698859526585982028047389611043374546638100626346114997951974647240272654804597073851809091306155696365115772662368207832087956092223645574766456177171991577031875453445350897398350429421376330302358412254909770971490286710475999068840928599128166609282050326986324116684712163837533797004158802068141507978336120640097856615378499351096706337705099910291348607653807141665324594719085678681819697822306949124433455425313897687219885435054263400710032420940711949677096526447302234648736488695822428213761445767665599793090137524888957915914867912840928070958183647157432714510305635518392817427707101678828319672388077596951841786631525644023031399306385678860003087276589500510290856979127466368628111580140448021735688791198251893359084679647688505141130332842752230010245188178636979646884597721417147117153510123566801203781849460800903634808292593364107773819580530795615118853287290090128001101114537388420031214218756356424018770449259925259407656238857084851870421651051419267654154494361277933269375397464773974159300854467264629468833647445947539770092266040787562748332042666792748282600750452207682933159267479922833970009490317508821460779440016667406459546954127698430461358841412748333847076746333282189811458897222941735453468547782318889354755736098017625124728753862036836046942421889487203341130382024725210693241062840496445193201760101758901287737478071389649294638127527396524373270977653754014745072073976855896774666525538982331993615391731699548817458250270639784969411825021016391601939120946962985398022952291504358356029396330727265057010529586321325200142480018395188761702225917032518271298112370371833910052840679178134300162577411003518785550525096397965811013463023933830038506512972509147437403255099475808244178323163830904616129590831965527695440758426437696405226342172880903103604260610893145919114018687590464868239573808436218391361885488844090430254229694406568963799571663334684341508526426754693807272006318161045372217797622401156673601364535443482422898230305835004495798122982644034042310633710496579970260894266896831044200186239129077114622279369525418684923422383949888310529524741133942601373362405614466739587424944375303632729784314605760683949964152643038310768642148085032797229700818850549681405257952049111528647452092369874695742351513658405831014550292537803012133775383328342114206270410561195079554654075229888114267861056131826254088312684956269711239365226995249973552904345146574446092575325056268761303161307726784279209611495503821473069218295449442145588764529627154241553537162880465134143491119066532520396760850368080229810659574977153895296937826043162211556109234281485257059083482743834767605940514040513192730226893708927908751455437323046424565095896598061005127683522214091188976456671007820698857657349839278349443661609488726549726309037403039074201293776780221026443448156687568560204663941461556620397172730891934253519126040083338364069860767815537739519445269807093691352746860767512058413761132935295595698325877617485336094688366182555087210437357081373875703675745624835650497049504515259320245223291166144834780482461244238319331635719288523444401996475462700823740999417833022137724539329943694102898847152878369333288378270988007870889676302126055513550164624948897811159445690929721858927996551069088385972463200334400388600551174971119141618019024445105334416932684835905924448832269175463196999361884934968309218446170653466998086028570076303222126925444961297675948904915895793727813550679609998866345819625744456026186754177368554415692731323968957403458277001019507218216500874897718072254164998643465666834442977492998062257951388731773907604197820467563787495603502295504166712713072115484729060661466664390272763505560004486830144907037980078499800824203269514437464418125285904598768336783579639877422807428407911335868752155941354180609314980385934901256699595581456582152317506093255188274897416849713466281205905808371357112875665751276197277059825156445995673511606886688707234638376335937138607079347282429637631556767244797768406893851553941328931309271290442652689382804457974510886988935070578154546013849710107692600914828572003124922660503160791996066274489067812039134613482713230117575055097381053680994856388268845345648534433280110892886569619504856363143838611363008280888262721055936187439514050318144963855743904317229504314344803753569797606260168205135205744179368489496219508739628107623342417335147938895205486065437676819908036132798611299220442977509150394786970548545140720506273184280260696557428572923601966877059871478963908007936857438505772436436539390812350952782322340166360148700361937081374095389062279319498372290896307591930627422974823536639959147852246917054684406707426409833213106181579915197617577807590105289689907015506985829373042418429484741382259386614686816238456603434243208419328738329259140164481223632393231508101858014813378829750591140570624501028320423485551332818689263737916870703159566676829817701259563245244630141517138684870300413678822483211361723912164982768944476179947698476978260313220879481743839865147995958977813078506750595889640177907288754492934955951555737852155832331322508548100436541587194737895214595349565212972932752482730362078870904914684996108259235950470719498109817057247620432126588046566614227092067691409779553771431104791174231444840955608158968654876827409401112816225805101816363942918917249817290541486430573844838045938595796792019996955941875999348923394222975653068013930636158014367683779199010510558689939975311710095331108794732471928547747469425091442119735703197731765811233769779197822892169949620712820566935170718064470261122485701720598026317116882894388879637093690548119672205898245600460162801832999962823999027748769754397228240851190577090074161820278795960184747327393775062307801393117082791005901881810076191561063958040374193485662490165554861607253652733657625196113530691841170906042740229021279602080604729910846067484621432933596501216256178310892086614424040704714200873328155455730290519428346450433999961517034355688026067666101108377931930448801702357500242903190360359915131948789680376900177547599606374156018157096599974180208376353025110447760448971379323845231219538207491296790959610208903879867649399765530046056565697576679625181904833362169528904462697967865014572423392279339606560350420906317973108038425624420308910550833646876192992108217600064580868680831853384692338548958077742961470378248695728083490203977502188918905300592586971564752389217701087989507771478696588052944164659237090263304531511123436214189059842428715489458741421896852474404053099186248148243026507590454157644278049985611602230008130600291713892280245306642546124649018091094957666018365867587325777181897932518987724145186678419870217814532708528435874336601072899575875749629710108158798921218579103067459232343384012913980851088852235222826147748131247740207066883439188118085792534478415547869237134318751550047293914364718111777158148793071398654088312252764940769491188107524846494248221882847339658375281540928929476750338616723931117328232150732280510652474406826344707718505141367799508357506247665897388823729491232288609353151807368232288922820421490416738974005289521953781822260601443131778740938865725091701075118687653748862227686302992569238578137241394697968525302751386631945892103836040813450954269732948379717907783505316745836461887788505180542967929495449221510933502116076953678215009245872948545344749156098582815698182275079167925907433277915970941365163984936694637979022878613338873643916438063835064497044511765827020197244360092984726275654161909854729641265428903158765910380967882635941665607396311392012043506711808411126206497605996679395609408140408434066189364404345603881329638100117133259896837957223732555740980711553138323992452070092805206820768721094619639431038691059418376379572952065050017704327583070312455150423622067267794561881970323805071118619861209333807562385360946211266660371761286033264030951047881015531213977938512484031229630778981869769294827094303406735228340703785989853364102254029393366969565685606566085164899903714069420139543158571325894760697054137858961234413972269327413836265182252594527209886444170600443252224257664549020976364549106629219984506561773539779975672780052270703102963163758832520084643540452920033551476992950887098275295519973646341920691666618552454801317176650702511764957815326596044587194732636451593892259878911248821003212342025568374709351887403572720682400663636101731254660123000135347039532873780739423050922809872796128852888098544822012782881174934867447507230069459679851348729285858070459312880160066537534864432783597994123907163836542173957920812642630847927173933097017314938052882756390070209843870703873424044580887377880415672876698659912172391449894710517910315927862822993338753018287328982730377374058689971421318618213569356846244793647544867875333585954686534401676819432351876627564482131908034143653951439605084272397499867238456862334991175708269835218175669685166260904439087461586154317272243319920323678870530800334133362352054276229782087233112556938437046626339019225985031355724651160155140420731618299491571779405022134549785407777466036001967354663122979849867301303325205071747665582185745316702631188643059349377846699027930294582245224802557294289637499311306997251562989451395633975694784271199540648863667684828985302591752190109390953950793712533090895037553849935434832207222809420216473246658837410844199985705189082468881766164413326563484820024863907607674448213387834673376327623136842561272042426401570475734495629886989261822080542654730910643867027980613947914936796390138991322462423215412605084848377417645327274335889959962716994322123929256001035582836035486956551768982410716356785613250939194565117138123702616937720223358172017943905375431102175150778873817915890221805074871012586950587582603401979826296965684554594793308921085182749352872258645842104904239339327758535481538815602394669366520671605897086950057406707173267536622379604728325996030566642634255528551151842395353055324317376819175547001222436680374132513530749774361296691655523855363437617949836887030351046734821397689107693785380090300011754850232517984975983970966270645247343820971518546518411589040484185717214410226662742525190198429646039661555669455579080532460451369247296468204497985937209003831996776003644555372898865101381413891983425640570281762402730798045993983247157842865271165632997078502901019359240686681846244393012509824659482224983931859641394576626543775562488596467261531447896100067238406918887195943412404784144465991145209639703929592861859777594823938275655361935091211889950661158286680282281080785551896567946595525772090840796470760736246847870367594505614767588794331874554508999881467342753874024153974656558872908149689624262536530764482417120095589500726552965103298559312828718286456918101671240722439733817352588922375462550294172585985455520172939958139374889627447072957286213222238369373654326545710495619504017986893628314097637837055436516177218724057886477539810804036255191893310316983822312910991078877321028276440474876875834944630947814553269826697443148405962001184443754796505168402974251384449751258665995443725341317432632627544272450425998759922989339554464257220697697477784842707085344759866736100343589003003682029806894986598864458431851012246145643507459429013733871568488971134350239709414032410061496496782022945989171549000948547572753371762874548444036724377237666001564913783288861911320274199805924096303309414918261494789106406466337499650171925054769434694569057400253055289791097165049348705405098391462871775074488935502646984875945524115634100489730855647240008795229962916241603350994276851483274050114303839851868385997410135377902646035288191495615363500053129760295481144743095574264576084192178134855930191572784312989377118912226308979245670016128933250082982038443534888319108100951125428562565874205609902852026420498603538475962328769652152298925185461487314351089092066229913223807095640390341034028270953223675815692299801621929956761449568549787530506678549350821007150608571551123292549874267623975096840349473546161954167109089025428684647455836608415217925688965346471491148271974737321399510989826242581461892085869012640524183084349456386751680684116799725527173930086874226194366996877274886749632762941766707024639646146394743485470578596814220779191797927720379886899913457949958927420932001179347615335917759815033804484693918042779724243497170905499670371664188437897983421123266185622248756965660894697495710102277679537463871022547173684678560576768684556030102285372279004122691195856244112981238167863111254992387863768149759722353765815222806159314115367253258974871978953683529573042166376938688350243473268233302775373481584778384294589224814498049315851995748945800631678853639768556038526922498021196865917810680614130658359588858040203103823653175626025726317959733828057543594905616416551796165641926578635402138413128136366199469830201790984684339729018182315746658918329135346426199151812092360095127014160771852924045514985194551790482810788199802324509072751207930961288710725052603842741699713353098567935502293972066092342961595839306784746027076940314883023825626143570054650147441565259673803391760738161214208712432357883379788645295706528019676667169627382393080543425760361838808261418125557637746210869219959126367429941567999215392279339196896584631616986806746288348714475262063640693411625019168001766670543595586599422141695518282844871343650814777743016329862449395464897846180651216764731468775647235537077477550120391270716533883035044163655557311318302163415876144654788488163564627138026767948774013633709889191166184258496621268151101427754286630856232151619184183282835939824292347660395804054050427976499132467263586896833539046272658999598830098456102845722392172814369659585746176834521485410034840533295461678893605627740599703613637865330686572444528626069466978711832876973763374651928511045627687129694715778696325496884421299398011109408367920037166923029719938264868012966387753608850825394305716637152512724014522083281528917173479075548085137037436529225402019061973216275877799649935267558085570889846086268312738435380976196011860813172891488388631226375986264372353090812581458492109706886852354708393904781490797174339425586277965562566241862640052905225156161947853292714688585251104781246734964976748867645360504229392265893023233094523988903411682841202624525934201030173197163495993207742187438686635714027543549031198692821106894855951314282739781971354528605063714538303908199302956135328424455264518730406286507966232888882124561263417254444904517967608807582664195178687408107437184073568981636079326226396901017937350075632668132435642365160787783809179641358764140671319546782947864761906220249822719438003063477372419441823816289261929785521082654018031290994846677093585004383406935929008914261883350458207831610566629088399618241138203372495726863531843134397267767579840531843618835367446958560467798040482829975922088788472245994118566330535980973315967681883660786080108005940013041018095279580564276174606464050902300913274145149207609293374297178654286606024187998477932287305318102189516664059037462518863446584390549728495472075621148645963879809965653449016184426605354802876260327699272895978304151959278720483183956120907011445499086919276961961924762435228581083007839399319951473377503019547604263636265307949290732756503172892884612063561150470689685779743213174817711954449149244590392529342057853167929680706569012954506112380152338376655351444375343475218777700040310638192975543638472241976378444788289927550036711298988506363871571870117852750524166627295953001856656776701756833785085147352762079736778320945115023470947533605940349739003326481569485690115699827392212267741617951314002427651754723668380167232981048969823299349933654677386180291789520875818235885404918060954655225036842932320283861543518920000747565884822185458543366754496006883923483523194195905735152223451973238212170139828256568664427490565400413095213010537261585059164580342912141555594356648506959216040901819354967696533209700265435890464230675002325862692288126105616551583854584525768198137009732383414537679695152617703348201197619613142546846632084372875259448881099361280634446700282486553229862260165725146174827914910300681671132244434256945069337711262332566813485071098139834755072020757014039347424701293744946704281741646339771963946398193742760906152081442943440806620089488158070985299628228442230552520475497423851206286721564840572835263810099825469076388336321103079285435236792258154156623723386615252999385078698711643564577814695387452925014502967314222747260322415941030199054440514294360886318445586350335984406137521217246210933573731254707708971391127147295047805517366023527020535913265459631882676368436164714132046859188384980424769508827784164161681338345894361480154901589179724474898160322713839424764459981660363545563925594688317306932254485712296783955575798339347770425506562001684976428693099374603360963187129119753843342696274018246985439666516987019470161587743872870449093533657992125103453718463283268005987312243609216200616963320415157545846251603018700834220371527089673349677892477001295433596897226804585628901030001649431988281138320048862224386117811460527560558649288080113524195627810450564021889889576946647145653469154757350024330194908446350897987301680498932338011013482810802688186076234369405655840854797748443789237469350570851823157031299309551310246283872893060087645535234811618839868880828158312073238601488336119360291763802733996647101866583378819027672617433450651703982128135866357708973227343617213968502995481862393268828007916790833448168664996233515686172957233437801373633029482050247118968749732951089048595104253063069821889430039831927697548952664767008399298007766317721169572484520789399867124499989003682117912938615691479590489300385428861170069821602877778772468571871692093693736298773602166554540899196126557549671136481909932626392096325222248069853474278300922122057833084014271591579188933856537222917055810542248740511291085830629525936225986302920927393903346037053928132079459374614423268667544838544839909699352852911979674615750701754630118437093923562440187696637634111021086808960770654030592581653571067507975929132878492542759902418902037543135239641980559517409871465498580134589012134109562279086939198522602088945924280414627788129905959116120970026696864389986917758473865872622741224808879599695603265636782193155716158198281573974960198844756206151413329154160439673334970861246949075233911226634133107715228145414378853416855478606952069201725216552366783694864931979707191695233477298975018486665060040824971136635736198130207206817801805124689359743450845692276830248909423490702541121926597920631270554388635068513762784827550347145549886995897518292658171228204201405625408690052024333413648727558636061635450842781204349714663569650440180619877002298798017789516982567819161073651949528777887352349545924433769397608502854634549040732815975922180670223551406329361595046029627205064816461493804890170491401974828287169205347835289311934585786958431307066054755932647215515007869915475664133769197233218440543045200081764646286894415420424983514225536827573463455336766511944784494613341045075125923017350263448279482617117765043415469060979929885849160529060651788260550613837318034123012515410415439625109517278393667102557251317814866475699760552609043361518492258322050177112200605739288413262734395304378435102516573495987893272619250434425732574490425332756525931064243488959480343114932006873461681105314846962988730045383090021061084952877153685243654041223194466405829932459261003319310168565976529256277335292590264128998469025696625019506215605032245800747980944759122514388685399249051035977774307105178392550926137083033563685442265141464626254083041467469758205351024987079871815543199610957023829669416847244916123114587385930912176908714145174337732425568030619327181698573087149597231270591167530955996193980081197993131463553306810259327967181397977569070570810766667205826964864166137379301571339428736169691646965455178844289232041362563633417307468318055631738524037454377868943764425918527592725398457468210270004956575221818521047523504141241023512042596871408947989786704821387495428480733422852125534848479555647381741372700475635497817451433932045387968680669354807374516182668705976349804794705446138039601437071046490099880193269153903893434795352359966878272225579841660467687331660351376738808549592750308908494004084679138131367235167428084875415385328501325433592301790110176106677645490064669079357280469896738344151627790889350482385216409014839413682669218224588342517862929625621922451240504708878561294427266960233855638684417233461580717507959979948436790183389600009714480903943693360418350451575422584205047018056838871783340832780348779249824613815258089739452586015925956789175058924422970916148756813721018167129139477676670598395513788812594352086270211154056136906470376993064881368727338331217394781955998383385176840014544735094576343931549150298787566993611212347208009472416830311802632473271072800182121512161145769165634522418382027523684705765006416196769708334425905654413342590139462384274322513509199911840481359031460129697218527309648579327660839502150689250116536504375046291082235059695534362015971001010484602720955145908109172241667302272191089732415216092471965780347666726154658430687525582011207936119190482426113292717135321379924459654587206673212072239325455509105567386703920890398901242235253773009103201758007680086701556118195554507929516701201326562378001471828535292486444076643868966652835249552049729716951356430013380053971061106114589401446139017907032897693304852830693709341914556953494003960976360923564688638179947051492641133954812597926128404565428338776310477262586409293774171865072772940322373437868632235268985848156915409632835293775610560468848419380175314716804847696808679735588362916744796418345842518396578761788354651834472255652799343660389719402966401247238199076874926504586451400513433494497497328317896071560133944097140410238909783727051949452499690415168477154899799195905609879763534376282681887369819412141025511364722188636020449903874713302307587042321196216440863690838585720984656344133145763727662526700339073374447186744926783404405795712457751174998325869288854785390362857668594756207080838427525162507186865747794337854674620204536031692021439415066788320595147026684569230861512768162214664937283526291745012033297168541737276858499064531877329976776867447702863167552219811908013649022556051183495460696887867656040011051593565983919771970203150915554896205810479373458438015116223386762905398302971758170535279155503673089062084027548410605726140415271806422407683380367403370444814431564795930199708690051719636662551786221103279167154369073320712901404821608625895261056354411121297150773318991137395417620808609689149915134063058059390736998004385078396847592767137118752153068048956895908413266180254900683921592089107661965255445771339884054272210692861788380750822935241056519598212627900069569810366984444540523376275697575731358430477675060192654956989271373458514070909694909514791668542268689127001940980249774997487410621836821172562678253062151108821535415582775485623492713354006963096492165819004950018610372736826375540548731655054410057752997365375888299797695292999672794551720530068037178337614491749059981021825181972893134183348799509249902662299405422910744626525739985459781541348062396702818523806788626392118934955459587505312596862338799985295302937702182645950039087515559082764094922223041000922222472508018196881905111821987866348080379739358578992478840558984683709492322604825655948883893107615887710348287184151275878889555197969912939734103106154743176544472161420265333492614098318151074578250969050132763722679417844702710318885861575167240519153339060116402690714933732006956629458101843764375733805044607665340791073773434815934964285524106045412486212281672225218991282491953724386316535447260413643246872657655440742625418247956024464497476117431232718153908318567941275866253092060093713124952655341299467184885022454287439014111040518921586165509949826681058285264660133456859386829199821064287154278727555711626135540322779579438396558797293947337511867575312065563424156680487768801998567930430948068072486896229792401741181265650493127134046460499489648098420534435894093984269610200894717608437696691941927363148862715258209702719296455427840257954017800691798473963564817888362032083679988039445895010627877895733772046931819689558740388222470391889303541749125757842051786059175703533558514210558388167955326149641613043016840492059045072860449987215482359102668244014854595698245568239109705296586374475060616954895277578903378397997857089904126134299112620396949961584386409082413024045049022131536314114358286882375249147384647505623601919303908336112912171601575178047657068893259833322354300994861503781287408433715328371799511350932812038281818350916255754391813920749236985263979193558766964043725312766004544070289247471988945857767766829837325146514540441820548449922266300955260316364799984866614747282952052969698864462099111962935078534664522789565299325767249856553599087315730662505299373866354038343672211708545923179528987391202137600218041831965900016152045180509272574226933722541245933173449372360264867601592599179651558661520675528222078730401893386721301572728747457804516081738492505255482304670767282998837919330907939009112566593230650361437303329277056808069699854002133457928910674332148664111962895990553325595301047115830286124500159377831777894572691473241884489182843705925704621757180365301097900834767985422703422003810948258939757603837185549170534226740661879875285430657621747229960284914851258657101314190732895403516292017641133755394607334341119629833015600829126819897855216538604580878922904096604870132684461590548302959004779020972380438659920541884396701737635845296069823208936308077290766892405165954184609657343993927467317901675253519919066818573719064769294960744020965409734449758790527658834274389652557046723951311225687316624860990110782307122445610698417639812365217689874187454634915542266240180217158921197702651781061728789366222586184679750913456876368309099718254617044405304997586860976953810719918477670510792077190264681893069572978225290367550690335507930666464401132584753443770230906072816374002394333523015122941022096658536012047623648540328585358887977769848828310818126678563627754920405861929340136540968575800845556585804970242197572636648276047146997955527332537658134767326125576057007066179440002840338838596657625741296425629238630366530063286798887879064380787282292150134370307899175200814702640933810814027022903962027849968676705704476085954469781754577426261752366199481016187694931478626254711763801381013280150557481265646892300544780124743597414077581502264339798315287825598350241927029581443610932327987062486147240399624604139308009664810816684144084389007393478232425439187868809270145880568258786235008303637352115574272112510283033788424360171393559610278395527391882892830715784234920003926196035958549695774196577747582059252160166189555059957649007997427884952755021470811951688527250867152353738018145842264866822614101497542785103951970670800280153682008676404977492937978311156092690594989422973453819183882780986521509422420069732702455761294833082175915108565762820911335103925266524803490980185974733609275260453829514989572921821634856935342797804121688917795247375162465364251158406242452091839863636064587996171993582278561149655135130064577780631148730073648566183593434475592118424982895346285906924796347676442469733751847771793533435798106091147950283249810642041408019161915058756073917706082262323044986769215457696724258069872569492406552670262297519670503274717870438072582324744490388130910366914387707421367676887081218907751036580951916811538957390922145586141506255729394313975129484181300692914321536552012470181544979252075136195076157554073646745749037727161472313344609197718777747194961794454211595354503440795959498399924778637567862356549209737746942805876225423312413536015979229973151696070750555797154522187855801807034553959966561260847617251071256111673411430528296510210132617583726750146587023532367430952067898989776234355633074300406957834412120754138305873137098695173284709657301923310146408565393977998044190591970346761362204921235719931398767000830606084915127170862372552499718208118804328202766733129322930289636798182702178340754321049654886104396112310231274735271457444126791648313714620134322410615044410154062487282920549321388525518384613882570015189454904167990975223535254223687847208734057590983400392292233850875914631835586782411245394447801823632950388987340016435223553683411180631651974727194366236173062546290695213906100406143578632775105378508339932053546855728004581593177804576600463915089567850030969763873855999248892701474828522462355153903053833348099593860473696118554878859027195685382973179126832803343079070935572600035470521694058263276474452747282151550959844694938489504621213781946933164526988444204701770143723992672756151718592304103546100101350136497882932362774149638452707811688013238292087786830259310995190539389923122583078817170664398874852440977225930119657480476678073055931800991547145263564516823144367334255885429999131555046383719542812902890167950285426559784593541043493602257600253255291315120222447975692018719804338686677551228458524477968458699146630042082394266135819829024911943123497369228038670459832818957502067250586809997493585647385570229452452114821951064199747400155702518309862190425935301661488339244356016486206424832185087592121180980394977581409800868753466120776119108304291632183759272163780095130233496687179490260359132575693353777262289103808099520954356374294962099917263287796761037329590402361692306017137998452081661023835714732359158884484496525255601962272764723391017251974547212277129795517370847850549295656079304276436821481211356240992663879964637908705858070881587987460964703771821150214559935724771827489774804475073044250745762995005198356884734979140923935715687037968004092504195116211023934161771337656720264534484866225186652222529083344145562078338238440850954744233165340802330795855042012688131993006443712436006288542569405626674888296299245738796884986992392919915506668884470259771218202624371214597536840018154764290268716182121733055380206440576588493737930497439526431330481490279237085596526046814529178238328186283286286271373817387654072596972328531973524776644992430624593128929916332326375279170652423724819438402732609036011732347658996630548811071556507345627270978886820251939229193822296718545925526498186444527229782989624836873611762654922422785805460997738305523945195998005037783057193798862918401781559745756989765842054360552736898231288744644823159629831317249894982054903651630487706102125826028957226161074769576345408698592280834703006733342555045661163591184101487724946016762038657122258904894351105262826932308453478361351152203524423986979401564686908072366396987204190674510306857043026713903946477950729095974543823388089075802076930534293106316162021666703705292281977817804438724089136173471232940829567772387727028782364152468309288126017765247377115830624736788142240841688341496313958072251627378667128175705930546506519409780993822061421433506395364035687824925740104118913784536213941082153206873050879993785716874398082963203885859567508364962370028532454643123973477582937965927237712069658575743976623296810990694198083728620004146330718087788719313138616513202177401254403065343346362381159835564560682673384397331022746106939152203130785521076753720352139241896530640902376242353893154711889775554661402238975150529461233215819478107855823040728529078152907006282973729519674867897224374349636850285197783502813245385068423272984330276013876245003679257698540260433215469345605675449871418732386099349412031352443371868061008167876691406730766034970961104974344850977081004346682248554449432408256531672774231269193579526773876685958826867683358671768841083349604009825345959981748966785621408592908241156497184961546159305039047190364416393618629733275288062019465750280429952998771409104643235581894080180907082605224340608712471480993638202481624114845190370792632455493089009239957075926815081510738433152733090433050177479307188895231474199033510070711139939891244483383560880883031503712709393573572033910773675487638519817894282548358336410113326132583128145537923916090767146683681199307064252353664721515723631216979598888058521004386432818560078626768847960815092463183921814261784330137102737099553363434504032917759010131265382962785457941291372877308799307874591215191539865601675867228369836212292464080797453633146110830376019141284482516077218119558673930549973945251655025412700065868572891707568356444976796567673105383747874820451169312612419922888002679267322110150085580150475160204259131011955830595467847119922213818389419420119787771370023740987753703406429922108037536853741703748717603752695922935730649335091476486276635821394463836854314353519596340817282350519808067417738703267389592322223435665771996432912484754330282470824920284499416123847389288143554816947745994791172376566579756358456159721556304978652079468048323399248500213619144119401514866500984433093950293387749879689025905892386833754224031806201036459318774085730850968256174203020781276108322424240647404359953790094575102808357270897950477910400582237268359290315996600489865771557406113347899795904503438440680811014025520415819677157451637439595100593668924522521438378932661538606453266255205069741351829521231132786829529268095750460255891867672343778403602374437909734569352329841412937316846829405772106408665955208904325167444553121245152647737484120819837405610206781744508944260191572680058571573528029452126966831729744397270444842926563944391865115266099075387932468256435817955695754612940518686791575199369596720815997292195087172910609612873139601867355241856717224414678553288056440928010500391840006474662049740738391977692632572317629824317589314594344563711138155951171595967826168907377272281185695166461471766787107332311495640824369816314935866311959409641494537097024238969128643680193362807410824117362251934186712802912492732543504456076406462999783844123358376114700958318617816802832971710599202515818688433903270428485543185314979847626006722771628926873622091416112227573201887726672314454462386304625734821671412461051613833179341543656401346457366104059530188482783711244295549409843075630412444805410168365174014314486131808619286668031330159026677448623312656357853717075961879703055945529972488958490299844908162367278789980931322143848725304086739732975807462378945217741204718163613327024181069130318600232557512112346154149102671578867888019239988127113913114495065077928718547863697847067450401687194840949549579354202314121061272756746058580939578961370742051018405466726646690343684974673716142442115743066648655498460544806120521039322360770210252084843144419839585738632420282577259376408596449458528166130380135932266550314480364110875153779505287535166761237134024894375261965383549073620779988520028930258889327675556690532148664759758437101626410142667418943492952275206084984306365994767178201098273114982066304945560214169887973917976859589853613649033970278507893640306242272127127828182004156998593678677287571694704494167221359008818616837939168445008799340479956312718795030530552999401774616973471491107918517483068712984207455320623261071862613482664104857753682150599312473836937056728533288483520743496755418783824766844723986339627007772026895437190617782967672158408752348338580303034088488837104936104665685732801331832598740514244675575275632315122291500557393565702332000213770753629816284212881707271027993350161701388331707626337410114748477441284800256480668343363014289080487025570761153267747069304311762835227418665352491263049777307268301343988619911099730805624099309540965996223154632457058532935231892459573980853237443149261525925325912423143762482923675346040712092738668662014101936903301157012416963038125835662157079321670503074656953298752467001128905797511695547098903324537873883033021814871799988314761180875041588961599094608627816941397073214928598394522492000985845632791924150741002461065658280243199546156911471961400200990485416619640277590298876374283260845652558500445979560727648837724529776966106131454106476901787858540227001146689265349162230088071725048365617142577902213720114698716363238044882334861372389505482663172437273440585034883348117045954245292377257459178762934510036969984069357679962306175161943412622082399288120800454263150282102967807673005180910025922633761081861355882489670454731916229543716949644433520906306264683904670688311095642178897856888364555097135299668649158772288774710019068842252108452013637129992259028151356313014562410620860216268558779757066908359229975742439825329684591809500194189584699633372054830684097335221248272260415477720006155862606043996295751029292914357805064079624645976277861408634448908213076590926429055996472656297602344446263341604875454896848612268639479947666804250075864541139973699741577657859102510115034890635053761545552740950876971632438741455763281432623592939181419388135352498309052357524139657108030504933983908041117096873176214642999959901478265446389877820964252830816460203724989296691897430458937599555121178964343671312896186028235442164291464366344777293472487797851682811205737795415852075881126810221557604519257535806338902788026934505677995042102943696919789059809634319690489227473482082045160666932460062474633697157299585464213946296973812588252066399853780710745950301948388942840812114626529607341818175456810600435535172051051048113762896078101992858243616263043833230351674190028239643751930391982795765590557087221559255353845062072848507045214318976582641672449270079316373484938626161388000128351919070915572605274254527350650272505776031217445819114308116880379849716049783432688231878045939600177299540541195875058087798997384467084398570664577662798492268686711072915108094075299631598280757439727436833063153509482151523036027929034574612915024464373990819216408078793364486324074932140700378892049794042674280312151131126590290331441835219092949884070701129497903507229839116199558049145797082305416573170038642379816749480412490562480894000072902131654724133734522376139510488064738602338299238578176928338170088502025365031407267990216004630844504224535510278081554189350679302383618995883247695439966144174468830125024161514926830272367244007225108012099667323960003115086269163038136812984417699847608967098803991780003253372768910670313674659538411137536856023440102528584163770683072228978527224105574739106450500584355303113841787232456870077631903009463733263789232754688314425469500796428564867321742602678138141872837381613302378647671625696155340608080391917037966617548952161769718486435189404999165905938739732582549094621465861821020841352529051328752492890410896500352195523881034283316290360089637521559350790371066841789877986188277561430615663254432629024580750335975904870744799614567696891258706002282813235992919535850933450452741500327470921912926936811082993139920762157780776647632529513020002189973500915331908483650807527358194223318150068860938949911340383555462511726086121821368991345491818862957845718347669554349067278624597466302650588975946779823735262593829751469063664165170139905454056080822854502047294107458316679613372378026060661606067484263151157948944704186438628512334820710363253670726798989859629265437032064009378589191164814489671526691748130963795170509580955520307735664195858190737406640804855525401041032881904114728258721109149624133903666886337536561802915285035759896510882423506483979349454013245835175278384039646438901728136105571195040908482502854551234199337453765977093843718797446394705422659755113144869506574576359973012595464936395356693996055794961076361825573525909303601513745739250255990409839421723705555870835269984159932005126875754143375312936272000855358262004888302244431091270434665966165863970160010517688439097932140902775576611783505174203093385382880704586651089755737940875854148133307027288709862568567750851233049597585607845720216403513924190700611597520711474999817200694009545738876895100639124983908710242084643500468559793556833090737901405445775543651245679654806289825218040647953889432807454078324637571030424391689252018537682593684245626236304803319515741555237538563125181824354800355568804118020971845170646989455662595075405302436449281832237995203860260856313283443509056070329630334479786327635513239908064180122084358173750079286893187632781487894990263799558311292625370475233596584270985870072316556175411943151027939857686398378869099807301020035211725238199849490838849486288691348986625565064975751183213923159468663491956176442227473316803957200645808409420332924920384090070068728753428623327900401237690576259888196818969011687843570339732171318571575938529267995784053163681348539116075498212945261032586930487582093238004657437850502398096178611299689708033508161010117261746356116523863987772916624483955033092656030369037307870347656838164809115393223118527383196511510891655033649068899746016557645913096357454627933589541975584023005640175535129473436925915835673366979934678718741132439100246174919046774136904409005255511680985049315902136614950798778984010323958320268430509588381907245050251943486099573899285894046704515465605067743100550963273694286334249637864431833084075920096402152864793203759009376648794677620735026507679706400478948692294803535461550994749850457716645258944021984755504067161350480091620956129797911424916413047630203791623497291835236706893842985682045681047881904258809115058867123873697041311069662025656126191775085120921203005399758086937847539201544802755125547741035701877358381951263571264038290529650342761601261335249322897323600911472494453825616799881835090901550311452642384397087395516326592202694290960574540736970030889626711371052409202625083990130348837466216524936580302617137972865533047873444046698740336663709734887336650082294902976102321055788508337571951331997261722893954682431962135243179416532668808472399457314076412011899382828933345735688127330228467430629316873232962299623875990175515437241552607815240337889081999105954450758290748957953469716012674021434643279303812904516399550657055649030113262774311331552018234474714173811449505123262362537584452079385279327366704029796295092981128473595885970349908310008993942093854638118912208782380816970252195909296916014187735272397706195411356360881320551966684334668007542259209538044170283483479591502919705479376528799112875645465675914259846755913671977109510879196676621731236912100195094113692514900019442293128775686266225606346818037350485820531317931595070646476474814787740629622108113512810251453707819866454504555872347498899740211361625273416185337591184282821507183736053509988457972740679670131550862353049267218104813119470115566791803712039571648603150144453714209686916237004921775313710477269519197747761940790899432865527950468798590604267215882011902235521324387129023872976548654431530342419436727684704892657366871566567941668980613716826215118377280751230183949231276920191966227824980183130484115440705135376821479903462942776532881888779596984185085659881106429683452406181122478730070752481844076425251895930896137591054267087832548062802774608536227848417586478952112332940388107550398044940602488878128236667658031002156755252305946163661800710718842771720767887497030703169707434517971650631916325457807056619496111876967564852567947917974211484925310026510805778279325399612249025473353664955546513481617016138321027884866622663363291918720532840027899248850963287912833918239307204393974403425479462040261271656893232644652955364929021585940664130965601748245295927245854307992290614325599409962760840023000956802735679653221740360496092415336641558718760860451885303378140662483611196842631493704269863024938769587707236288816136278409154771924506947001502673896796117077691712938281687260115542714337740438458468845894465447570130698632353105350377390957908654806831075169900353472360551467976941529027358574695618259838151693136266561866540249902469262726297890738359344317730198573769335743775143801251315466063638134393305552719708340719078618498710401498506300082202008013771267001241993235334811370324281452652429063898643898931159006997872031130286290255310600500469217388353732869879640576403581322027225414333680789758923909781034833424163342356958074581377327566181578826970531268539933620658861480960963415885750272465712916135814493213225339229364351474887083665821959258917661962630685469075362816029362641704119394026209844626493158643419509340836876784483008046741353983218505052648596443051263751558563951225292862118777659101827656571871726533443102730403735329147969681510318497255882495881303231273932334949943493528091427307217682764031536350986836705192718313867788371359194849861395561025801257981449562038264899638948396931822564761592401540818452988144367578800369839624284079495038855434855179682415583984037718015400355458539169073496040429698842445673548035426422576155159240077285378727647015097596324684650410649821161475458838730412703564758805053958641769079112735453859295039709246350151893419511613149941352276399455612846595918747795831548074713686217178430494996462777435530161675690337500568521343978980633554848931311113418360852839386529210227783375928217010840364943343498557964830011531076643027014727143642019393472494459759806952109872675606160739573425940388601027671701044495030223352293858128239439008622087229519252953320596407158588827199816842612961670167327854180163710197483470670199598556965178980072298508389848352106876377556097016518818445637937270310762036320037294405412317610717535276731663627263473140186087199852696603075307065294981459474452221718671942038027691215353207881298375695357865826872824242355291138832734137319057738432860696818885913329344216011294799677087109556888480949766514487979087453747165562401412888759832805817463963084118275528424008066610883782757488878952861137161620936029350460026648728628463593237097463895089693525321663520742613680692525149921078254906691727963710613123253651651325378850719167908915458844622299113863908106875985264404717561781460661690291541532703569222902146628893739593146260643603765838465856323685499590103609324395376914381268893342270680791436320415150482520209868570556817039832338207268703593189945137157580320621567846531984928074544640652216078323380471508285888316245479235915886421398314185221562702182605067984719155888423831652516836525256607924045714918384628913726173238752148545584830834048576806562250908410164536587169776722293178763140578807472632922177576863550426445971303441108018481965674513085568821053305643136452405218555655381130908743276399367135773854196155145379238683413720339440281866047330328983466626874645568061985924723916223575014088919677608501476553430691748914976155023748387690313599702823657233725768918289512571661365798457720943175878445874004509524873715156914625966755254903500254467676912943226657059042291970820096138311738627579742593312074089412740258715065761448599111385822739313825691651782594091396317123034361018553735381897938607384980115160236149606946467479240625225321533164949767997193984936558153394427264411940702588679083943725215736534166152033756625843223969668600814793346304386816548584953390488066851048684904449912704808915065270233027013374706943750212387197067660406276512717307852506188480926958750683234719491230362181496968840846083657715932433735429870877209737701602027345323217087910252798018883361623649257080627440364918410458791436826668108770030016783741946236745236265040550356568410963658733384099023498558349404290930039317477392627959462840752807854986142817163133755163355692059576935155300924109422519913807829948046676043716401957832907872895395222013122660540380587128091983412546613267866541344924052604578787859819285675400687996812743526441773846840839573433196198424233046926681970636771351766406397304061196603770053955059827588673295014271907249254578830667445329105006257829701701483724687143703276348946159268710402108029784430123609806454225866477428675967603906257759375703500929240385980244866021912274930425623723240012368100352900095114845312427274191007747715423322001789095406714368490766974663494016494254581514583415173888898984868235334917575159926230863148508338797633589644536805248339190946065098073114071210838962527436741698053944905902213686509050677174209695590383765717976393866551379144220896318750388633113760582016138800635799410390149491924237082674584553873677289564161848334339405747309575269871714278624699611166764277476303015731478315131183273358981908684416985830904494973694961879786418198540512252269559473535414717424111201741671061080851023787706419240339215990049405733744181510852747091352402561809825308809855410313134548291942351912092540842628650249961475206802934768668885431636451822984479793527152211347746928466781705618221058678414075245362850597634421882616584316066373360969055809635473315641096960830374016827371975065775243841578782917247659909173808393636598866985248289875630814114640088767332503933523833320924979691959223543394108568041440089402687816711103364165197139192314719650948619708022684715024432954156151772675056466645095707750151062255196643836516632285919808832106407473437710469234116993513755297180300968718490935860501317167627876797488761584132994402862370681739439781484848566612522541486418467328839244106854261719389747003061752569410085347494374831596274279217620883261970699642288569831341765909782060057981943921091980193754834011060191480979347641136547687083946621615231312656830458318249205908795038828027428320070329342004569533232572137453463469714186156667110823595096000162312094943395813351995530536644848288586268564862949369853946224697741550461214915344088693252730187163342812571141951424056393028362031751936258271658546606635397393254945246626622839268863994939660612311947552180943516378593374013323317309736740846392208882892793315919787646870038043015408212142563372370229591378105470144761392680402964909976678591138493986235582720822555162269114236684364694769792005912650885077838574445510313531025876098110265540779000759574557979381469754369718077590575659842978340924543404302189151916982728335969391177454330617277426835394948589719883724231320028981570745862918129763019362853812402058967586821997273873215581507001861688673147375563934756708472162142761875596887848460331660338503567146607883458209141139725250622883057815182520595307140211620795503478559693253041480194954029679824918214759356920944828876168954778895433991819402789286647371491054893314348096940521652934636698610660483136708235749904332218989076770885069114532900670918856253956787431415846022063285229969292075256520369603159171419993823813053952934728740674503467600588681601679080306038712136793635363945772040463804979801335128527298027194603005725404084871272318222179250239045670965373317721078119281192575504767320767074739141658294982554095667534843113578095831824451897110619208536063730953464551785028811877454449632915557011810170653544271212146174329242444426183479472163237566541549974070755897687168894455266863560085247900653006546132609116430329176762701932187217437628410916414011696988174990705421137341873927873331999514588887982501039216509728368135250487692047104908397453842184204437186786027657895147776979528247779687475965755622783584857448859488562371944151731065440674664197018296162841112047056924252642108305922018463390690172557531430982857452555892791010536046511470999803058484457303992982628423676595372079883563279568961679912208039837102647626809281461690371298564736361814889386055425684503119300398545357569360092017960779082718929349689040541506270930728879161315208469890820969684161477407512471504732563635699919953718000435663378999356178686914151764804838818157184153492104177989576920717070092364158652454280153235412146255357069376961413262687716046164860121717071680120559476161568719746116457675307623545037865843886678451896436624449415649125224519179084735320452289387149721611432606922823470706943761100572636450766998633671373798234577850769325669688412934877467490850484867139195271309571715625050899146427689722916170377316650540765934273372135746705504391211867885616313737398054727555377505103092626856486892578050703543139629390133209135226349780357399020852545646467423565045000942972785566781553611065190644515857706031288090857376310323416109344848340626379319523865231632312643845881046050866993824969882745207391136086867427332722845077696907328068145493209297907815840538272441782410522421508573922539202067966909194729109115878463447565267204734747661924371616899653479879163194968208566207071314443793651348441967324854745870366150527665107159113531073635176799507522342388579055887290888395436549710582979040341012211628920757391865255509432674877798342477988338738485729863140391057833032918753643783095423721121865456853736799779844410955098901636495154308421976049543275235010651238853418027536380120702310706562955161772806688332405731781525765805010019155149039918154743323337107029825142811610166278493843717874350862765863050666232125500069582063346835859665961247106073826025695040744293835835682846092629784978052720891188199886850376326304337881405400374939187644248835383485185807802430915744589197628859352952763558145630033878613651010296581848353629073096895974953701315592116553312306170045508879250345128617389371198006719194121682300427921027901206816969699869575579897329329061171324162773379612782472903839528002592544416779451227287695273823334293879177450041592197083328461446792950046462858307709590140511417153313103159474248697539172138168736625053673331199978022728705684883323396046578317658928744631343918136889307990613575840763600613766241533592234104006382617032987094107206542662836057448642206119035145695523277908695652367827630978717015927675455321668286333423103063129152656510446761224710337679190274195654787173310214504219359212779873272276234363310208335913535109569016057080962424039891171719625202779127237190803486107031000856161066196230509049656860088352087728436961278328150303261483086035680785003257297268775764364870691879413544242769143522820528031889696304173819766320805262954866944732541490399953266973948257906264084472011908533965145900168602488703434399447134308315174109789958229663158966703872545792529560044821077869402875297251014697201430586052348849450347192258374519730405231119816987133883185219064233731347175684843680409321766902356195169461850470422937017552365993553343952693513035586016157483321753668455487952128900227489407148280628262503947234904427566327607485051039150738642553685321906079932577958982144959226502372092175663891341263527440622719199463940179507816540361847053276290272029767499684840663815656952361157678769363275037178044099154257820501569668151359199744935996063910427228078925454617329339684207772711728378694255852706440249512106002809824813713058093735746774047305100898023229758392916089885975920549275946826892437740709091886776943867536124898108527389844217602081434291154088392436166777932219021473796106077993981325417858092111470239472041751957539741919083651282064571727340223558608792950560961012689953112102456930636046955573691218118709536057082794661697450256383430483961876909719994186284231608221866310653549277657065605575630079936551732268617456948579146137857945002147171455111529010354652415468622691266702853754495393183102821470347067538602675486039329416516010398196635854352584759492161358947966266894677585522350315384236093901416519612889832491066949668130239966928097085751199864016646812154188121461705016715674812430510724064685830358954146303098332132011508756320994847238178623346787734816362528089061396260863881488829270273320153611000103330066009080876613639711108206573973904397705541547967344453059323575763208101379821277540304765762472651799200490318520219814967910611186992426662857198503060197090639225012983547853566677664459841936887229739384758520344999758781058503211396913607877775973107009266850926883135256881108811153695793352964741232230045384923503431301930598692196811556062070565164415792638319447114020745669176815527811398225886452435673542859365700795375017179939295822149753442719175449828397079235434700363072390251547786459161270202400989205588460804273936290881031047316487457495917024855856926565441070722892879341349248627839749613515291371787389548276165801888082947170777097285204447001250567724196566005240852109592764738797730351908527711165314548626428087254926887258038006023784318586728885093693117088468560776234897535282650680926047123572814772567658792459909217915228251182382727696587891970882942569986079836871146612865088928671000329779630463975075201416282355000213299237843512475495753309890486027131498418458714074231344078290355480514047478872462530312343389444195680629468619433132455848315278134568361561449135157315444004454218313354334276839446058913580105214846772112640393377034697459531412184107002679408421907579901991806852871422635496802010896893801958045545113121015611648158252189122644169140004684889033120603151249560238990939250313713881139727032321032818209325341903917756420470470190884915983993774298290757325146206759417417205374586059663430483396167918997869192793329189759291595383969932242821244064933127952073165585154471009975502270207003228606334351213521565527840962727265079096067546720213338822856278855871165758200848614899327016981411227674239742932262976304091853031786006319745452658148747559471587269244791808730501443177953229984418334967961957162605266725979725983084255624254038808590467473096418169737175429931252321093269166306165223367594410627147646848095061173152535735544429941673458779554387722369519244306843156281145236289658147813330137800082674481228704207879907675033783949277619183890849034021007879247627310701474604824244737442054406537095451602397586132893029833793137765787693559070811655820325375657242459229612995053652435424671135706705905193077338916445095135426212527683329111155775410363799918263715266669042902050102101890198638341082782700004183803532063893016329493101373154189203500152378175561488697292863604173923173409517528857210350935766723899308782568483068708908333221867831554293196064566067152514916866819444203681929128189412864084547075034487959713024217943000279219524923228835393937396793267082527780381317708158494944520428803610794067165793235532594110905403311073480945594145465008477459575305215262385699623679887464877437281147593238869777605265984113790455636021900600083189416827601814980851123628678573952548728124009643008003082570990374564612894841072279328235712765689116501005354899955554863958233136163301544598527787583991007140139899062067408492872416691872202210153578737443846873865424401956291552154962400569817622440582108695828358657994787578644712950324002567349689846376671692804836124377505423183056797521038157275310532666362688070248026379661323181851237766740619215896177099917597023135805020963503574050244478119856494722392239603002953820171821972518319204843579591456325908159245703946716462308905900309807257159060718053516106034658855153994454478967156006899493956794070141634670186700009853878330847139818801768278705309849769247733505617683597441600576955219417186991847757077184612511987781870059801401385467861165629682530012874665588068766234598692829807942426878736990824945074616798883836006965501370212463808471019023635085032768146773307617813415437008262835685079873918924577015662032781469217173607985502226132880589957713430982537322534049545578235860379507476782768724786950318255525083318122714020773571485255715683081795740239321341629637179510507403136410688600044554991851112926153147553580576887104667781429722095563222294343416892053628340144208389519641110770159988858181077282889758895708851041549137267929656657121336511415132461719904569646738877425298963010883165349919393217198387511138937337538165972192351720473100512886349781038088242409490557325191311360874545114342688712477420749398507143350064904926478947887768606825316257945163254694972985223960831865621179514143994097774479675174833989184509894908030246260858994952777093207189856601038287939029155894204327193564826514334913794815852290261589484812530667769518458495221100244091151329793044551186306523285532975003094437513451097930769213439225064723751793861554196134158329221837640635530730065578698783539307566864407039292959477976432219145851862064079065180387754924281467353647246932303266220051115292710533914268554426703746120826384065551827391215546943921613086512956988964340104023715276981646248525063590551309253183071636434783724824191237220035250518753528081839690237067116917275234850802087128188031771184543820656946515856760374586313099845280413569686336949986722238635072382600994065590797105812631342215829416394737871834234718683863325719502363140423866805265550887125465937333417554283782311043103519541926147958921622671866701124317513645521943988113232398412848926409655223192267079765732658956851541311622901910308550399594941059470474097999593796694137529850521488601007497426101595183169814231986388602672346475964797345705514358997212979224002207616692416361634231871978005548716384304044941487061276805279640517028207667345504169612235873697142239524695728525079971117338808120589734323027713698986578046950908878304182028229260429042274082534994847393873430772147558084653879363253151213903301612640190443950757420204319524059433758977824280888380500009754836761245447302930390619825176453436051857429314550531456176114451954432190541056857898759039171105953603268661387759518766037522472690094630327375905696214976590801049372974387235148905527431915914869271024995192947905656730543649738331333125678783020915489674654920460328295749160902634444531836020098653548450793980195821732289532182703563037568454606632786669898110010011507291793794732911916864447239654427362522971844568460365865998976794257493041347044037868683155024345662697457753478220916731563535045391363721032505085937974406008924689407651653153331402387214739596911762095021765875280088174875785618346357210137107096059965549752600200256023329293277359132076896787770151930925939309124736894902382478053269340432797267211454393678061138933752242861716148670900878309447937743883193569935669557082493710725636938558857229138122832758210574747174279902695037454245613285232470909020803407979824461314744949692263900629862494608558489479279254192457894825065884087156405935376007135937264062526862628029885815601026894921240644942360470401016789971931395081912394040037123898688659067673596857106561950480426052280381544464473627308712293511033185939751167081574693180160015301784972316457891985957253865700909464637398431528412990187408847265847923835196530656252504545483403479153046308784778366520804881046841886950553173238057439125478626890252001184612445152177538480838373935020368200387400340082028912565509000747894848176382867453331526730998770297634419889535577647398591368750220442759418077838761882055718876575942186777038599583876862629285921412899487907045856925736944187259581805264768105731021418339914279445164123664110004549318038506441826874147124362207697616365438787160430840148261682467097746380221378031401530510766626261975146871073342860440428778785573543722761168009252460099714304468861782493798018187761724569428015540001157940770247637901549602831023882598099746173121949543840780996795071690128969024173308264646387872203697912781347916020353270033672198984807450673163773940804827276802447039215185202741310674130856437094018011286860119379268849635999226280410068234624353219094212796268643277951809515042182498729206242808297799478146285572201964349424171187873222818307072569148323004747514433196311403567143040480539641990563534667836927097309116066348149093913909952765553865716321966185506408289024296598983269379760297260601405648005074009758266043221929715848814331128767086833375053674368618764120709583013907007157125051237774334358565167218777005912392348461542811049723206576651225966766922983242118563026128559030671289107668111509969837248606896325983424562855365895654335847927054076620699628173874570072101692550993105843803817291776107316554087870936153607756856174190918063332337421345064556393033564515561233161395175250914061812471535632659243220617260079717082778678705409900739892162056506714355257618191433419600372797873186846339921351156200506862503705974307149906741183308409832031924398785240820282240524009466935774185940790562686349669464087796836080177623342051626500356653021654766982669491134504862878020662936601511978072603804250507346363383741947549446057601169237757820389814627780153935291800992674019171300783410335388441330643092182582928516454266096013892274620622095714134086669606101267552965884796919518477495970769467278128022028979962967179797818609228223280937353650746882405852503981407360856660317422564178185835401777448306908544856397170526019011165423071536582121954170094367245928536919257915812081363397478053737037477159240846160465384650137119897374812953730448189699118311505745282407680908981952395573924559064818169407086941426759323564120384625799985597738408137310344138574620651297660695988015529149969685802450431913146656472563754573147234159516023751346416626437158231606219503008579336269155450998237167359309364024006659751831784960150916753628784860312276783602140076652093881495468447754650585959396187491605489222617387386544077887866324269271558665905577657412923189837037096553554035362161759036337977490746412534799417493977208478509853959502364768143898579656787083348486597880390232229958470902605097340843562802769980140897163459261710082606125482525836246905176332685472034530509401620152494415963756933515782873282398943781659474540410312610088566280220800230353481690088680194545437355374695535065577859381667168566388852430673856088566254763257060828466059141996372775554598036308753757613688035866708435683938405139896233428608651453034856008375655250925235763420038370962865967970827612684825905832687124085322000837989419743979160835736514864978968896271720800759590000436164428791689153195661331704306159463706497403553043218467397163910510379202402269580189903961277032376464652992660108863394576126057372607739627817491015971596488393304219532326522478318195263485244253800412213723052387587237100386739461801037380004041675037958621667884835616133110290056559348448270608327383480174480394361841763506525986373260073704663749902508892383321438996683175546258850318456356299820759018624275824668638493916011469068053187046105281506968818015522361594120408906124412640474889552835097617796788522509983815396352892218934634743460129663530246143222260090243207952976839647927270871224006298697897888786766188525095768598021091495783676286676674095843222206249924971207953837429026095571459077848746844250000377960122905830743174479567999963318624517139717600697113178962656616835810824109867052900406727524013011170637916971659502229262616144861178362733688947871439223958396352888467391098217866329868431570475005659792510788831257601050294489967398951285539220573978168313328163024124642019786289160926285874524383488463297019497470357981996843672073126893911691433498023897343500804600024038878809242557916995350478483127735920876503096988164933386535192184999695901520986440375594337014584914142935531603393851994349342852565602483890182040909962423303090242189570898555613152823404835227012973537712305907568345763207264401156620389943073507755439880292062459454218445086492592227681246508418425207235248397537206762351420139744007469707757406776299813270190582435053095427832816535199172117841199302078416660511120208304591207294221756981604289549571545853498844911242939639659659359337137188388960989208192583218467247221629769264865088431489752206402400582836063208608903284834410197213588615935336452749427308794629257565521205431264048991088418554021962731282246762751562481852232035594754279894494515741734910251002168775627016168929087698446991095458334454434932459802198503345934253036602561192153490555344794370893241184789095236031266660694157264426221192867101583610606859093853572164266984254477821149299411649660564001866113012921751256761576303734139152888467887594579142040830147015523303815383561994874990483208372864463577898170522582200589792503937305466587023344233114639310737403232466929232212059970583891828150203257050962850908026935059264752478129582566855530269842687483029576766865080947965668172614613947317734291761665281143657157214484855097475241838230682652744902183818846086822941731549449828264956487927219947710760186321921268508444498957240185906271161119896973199429933652408604317071014499700182352749821883151195503140105236611086440764025815176747968276300281932577429126815971571739370852792931306491464355040006957404499697917048421466128367045133348606156463710288865619753571729827076930317761622471836289925950324132458734471130808288567657474030634006061840916928635049627411648945476075139339309384354042836946218199084465719998845413637142662050689250895192161140442901474538815344942079456367914791667235109301977890949439162776739112531255651158499116789807716381577691689528648734591690176863905021109599124168660415625643230595685304574313628396237469203312137883946788156960861444842759144406754739512425858318390433475720062918908479774429239227891997367899207763731420178417050680773592978874191270297994915499857748653974025828918049645382797183057060324597959502010143055697356271348895823934903919405758539381239010670714075429010139437536084519074990507770854099348128861322110495170749741607421782222824255140032679367798311056860920409464149469234021600881716560384741298297838380628163976993336338725657126519958489451005230796965532293378570749902877830824851240753103548919749702203171794672344174148673440955466054428072075951599106796948872050907024886552334559912826290314671792209478022894598138626972079555603133984455382319639096697551477383915493057005900254422509368301437319185805891320732122363844955365763764091343030489248957605853306442943892158340136585896463306738428604131410378160368611792034484500203383398241232590065423335224083450498255199402534261318177968999129926385515655108479610266854264543200512664179090136003547745848581919414513050952424650866892087302228650824747075077659049176962970165450493365650517421585449552222690800936248300481478642314025469402692375074395801179216299537622172219855828299888092857590163760840601207040466379468095557807131755759022579934743562779936500011045491471097725295403439569296753212164918451195075265486862049922352625692125690716255187235721881236571932119481083057771861644810972295704630497662353653054526458721546478590335388562168656705623336105717815567510249768995110626581063718762930663994426610035543280111892218439368374369524288264970830422120596554434391790875628101774369492577477432147989985214803395507264671019624827245034138058073320086589228839037872156471599552458960727386093900977793265645209618237600084826778622906233611416477930660693960687098096569453633475167191819056160636945799758603748897575161157746761838104361282000144176748114436060214776324278290057109948393522080467974023284611243906677537952541605797887703770217960775344736025777939130946548547883022432445265790779945052994809389908482906364458921037099407260443912617564528682708185452859714271671458104226411696841498392267149603437970544448494916985215899029145497996627620857446499659920490938433419010256312230907053700674050926038192274531266513136268319863069252399928728679428705471132523186796656364689388272504972904922977124326429505697578331529995333115946255743226644832655547902233056028871119838434066779366586095045648662482296291005268552059329728359136712571917024487726062099142195041101341507929863317390915709693644699652372311851552433823949086456489078422118878382074127535125071795448742613290462319956597512697401771536448982432798765985661750509163093166998387466968555475043504385031140484506106449677652969838868516694274608817585591555921161438658687118753549091370301494215718963089919328249509619806242994033318328716263889054258430074565772983364004526567845491879980194411325585975082679761865082389665463848274676866552743233488349794724423159055554135198224786792185182175956923451372493465468018482716153822731737185405054709523263950187019073218150143105491596876762676938135312691436825420008994630975777425070767765614862689143557732815293214960199665799031610539757775512084004445866019691735342962736127047457125346787546734913552330297064832076762547784193835358914804470205240372463766461275461593776099320392082256287117094654375475163523375176914574011953549573336275681280012549762362526951652423934888707770289582011181891122321389263710510510375791340944109886667922844357257657574559113970952734027672738062756532160574410454239424111146467636959590651104320525970004014426849145041268035048040999343877962111580346166310892131031452839401807273121599317465213183648807146477955832240089877798297791624513229948134953218328225773685630708067949529849199605033461179968164739940026894960185217703675843361794025912028393117162918104959821437962332115958751315124362615060090578589510153650312923387528070644062574562570822895888107828302143894947810633538282693036277656346496318469547840093082354926933387458412280403967082035407428651144602081246901941446843805475087695301548804602167497678729336537702095416322918780691836548990311959503142532641194341412247809232765479428918605362499394939446635292803117572543149224761321210185409954564115295296823510268542958679738378368281130984596689542059838882634603965689044254202759416188444634715184761216644193031355275865058192416535646291616493471786868111903096668293440240840733437191812073804377636238652025420338641902434550950365694645777935339258077957051482237543259780218509680188275363154323607791387097130851135907650468087325747238367017352683815348346131133474629073748303948889752892800075607161431489784232549388913323747365702940008698409498561992494978541680594603285978995335962870680594668528319136919214526710749911288605793257313664065883692135275390590191117471056837408192288050608958048433716186634855560921079177225149612642690637438554175160582644227954992685483102036374724107431610949262057900053622154967515860003791630467036064024103368379942577054175918056727004076545245646106169130596072663846442752803818221969491234133674784318731101280231138498316034214565795646213532838414788989577746068708723628751853934015267787883428919566021766815075882622733964075980379285714402456618329353661014235719589951335692134866227275214344616551656379904800948621737463545187915147284086100335296393619849849924495540153016322073273274257447768617478881327911012553822032357241719618443084570205850426482244432696558748071350683658204775944372905935952874930225603582971254703426581464636117327492238932303680854452639259657484675132803477935047506486401288203344784120477525220793816110377327955262779690672612469105995309425751647041032224523851345005541129185541530203395204785422534804281951739828054997743896014856906262119147357941058802016912357569253097595168670683117641661168976538257686971277887684043365605050013616132593778155572739538903275494167677784451730696596845978481487244861327841751696029506028429622571955265504337753519758950317652174055990078961143475643298880029937712573089076033204891515381009923972679042612787266414743132346934479752682553906018655910707702571189391047316109653012903946507353569083142455989972781760795419535581813447136673242579688847701533249662551541052289540725572054317276173978567453182231161571884838249431074165750646768921028032161142086579712558411660746537510846029926613699582073306755659765217988364756329907591639598184525860173358028305171596643679325808689603045031995091240198188622667836184643713939027245180998652445579971526481087367780093166717989508052080715962453922398229624468817410198665362530651932577487487138016340034952079798027808594918098145991680163574935445797623042486231324647120333758631279222074183431856127926553456808716276222669228110457775455186326408660899740685935937605170406803028347565271827483993648765452493260908667711821301663085398917673037900379469452357255357705345056896538174418925505051997019601718017967685588719775018372217275896495776718265910133562793678186976499746952031692747881008384104479587677619994269118113062917738694909028499253886345574595533467809966661133363705334255362437797920141500898507176919156951397529464605650318507979423756185430051906283595670819028401636553212182106099050497885730887229874981095893036393848555573880871669883940614751948982650984623892891685324917157985775136161242184271889246384868985981612278710805659889744926233797171771557202456157961451212828279106007331894751361361419036684589568368154890065747638679926403238417990189822534735254984887185520854926058146449704552245386423682716608890357715960487577882064479484657259467199766567677961656371384274134094058640290766837866495367260738747141606554408653845027810810805371687868448987815812935822388882047675873598444350524081448932807462451190174711974811712079285828251341387287030149844366684662628458076107490513691865010813314997132354477281428014893734899920839293862534108754681693269021519662382468559761905670301234244693438106647234199477797432853039390634465943110250641245254790669769009752244112687756881444258323158740784980256051679667886157902804666456637335104797956663549742719063035434785860821522630957573276728110281666570398422343414625302794603352553220916403325044553214072340584848883511274112793889574327014034686232099615329753975479728704974256049116268352826935925471358446012068581195899693279441691526695227029583201553698620592652815134020294661927764179216725665681224249030048043426674260056508369431246104127446679277680280079427127811324701928502474888917483195954792656554551205521464732912049168906470968906313933519557811226121058167466784605477566859589905406144651539460704905637960087900162504968842359424268768819825702973032811916582432330618109590984833649176401127885321207732200850856800742149297710301251329132235774180167723774207800766426253425479821825636850311611447685442098308974350757493468723963204394301292527854416493290108195841416095304349277284999810435711166633233682601313731962996165211593780574255946060307738207623193405798437713809356867440209665210765166662976708690508272568273068055006966781265858972506439943218193181886016261671892910149881780887222477547310331698356631860031854791385986677637116073826703863600885704969497171309005322751160006051303570221222928108218363809748961292136616085436563976132326126824371831902110036231619848511342454990970567281887680621380988479882496667053125665413878720475918136576416128953922551093024038096784432997132738907314652071817798363485600963578549564083932408557900516994893044091796029395421525614549572345270193543827148028129832015369044283376551534007749880035518688709282538503610979414112805044886281170479314839968707600614084797741316702119034763756957702344141746144696235448513497014966460217663883127857184946597179409136977263891308653074399644526916634991976510426483757193071572445521417611174230452672707763958240331229288722452002898457834215578771141108187211838950184362226023645901695887831095303589894601768625593712958236582179620167387165589134922244021897863442347940715726648948832770523283666624907913566698545821727629806143434225991562586988075441733702921044934989162961807108004940932748369549201167187684560828366911976774637164522066436193874667429994339212679719500721754408338366324822677311873328103205585280261204597991471374602811950556906977265353562711878814862728862699973164701358723894708995897056534757003885492187820244928727243798107608588185833923646795366320274188048634334072957431227884783462330276482872304736783696832092141990274314480890626179706582286858015949780510956745273703578920352561002977708842115930049259179367281255392233620993024135980307288232544327711380933867164871778612378143023436743169012236573103075973741860682900174347214612582262076349833485756238758255464653616713794434532710768791887022293127391627026235355062808230056599252294641759479564845450799690042640583814901862171244144678862591600083752973724418711534280218556128411061727301661219096583360153096345598992399038180981313821692234140960373328634829917720321693326977767422560405883615102301213705725845353885282193315521746618303246639825059026106206731940358316582986154005261893989885977695367028925940274362530712606257290059321033156060362045064928599447002751177690845607233722645655924544939855160339813794059668167934440628297184033930608734930275503422115060927916734811587202415347395280756020152276558942135014033276018644730441492565021829934357976922784625481784178573323585521796444240282969905067373705369592162002730615560410493556951705392279674466272205819174770158641805953499541990222699015550444694011291792586176267477315598627397545076141925162123214726188479356154571103942458610271489548582724381245598494235757868135862646009199941700270149134032075555740321447720093959766530919678995238185498963133182219287794645167112013763756434064167148403767171530376310022367992735089132248439377409291103461275368592083856182104570563860264632511880272778270173995743795836387168752667419495432247374457239134899828087279568983163876225319266983537985234974124710264449817041845190605465312034321170441648136398284789182260654908954794026965529369867932437986131286388729658507158953591093550323559374441806050558286562531359166065803467864205777718101770336307697500456410349180964556836201903965273250558457934930267301780509628928385340176224880233997299663972079353455604247875338918077774481190952728334558478288045102696743480803672554131336213103510503750402506715913955858595680765045511745125542873480560252866469026153401277330878337792980657854055921673802473574161831814721637797700857493793232030949906942434376358866398751713489298397843009039918002905149085849770941647786892484063546638600485447875032049905880175915596369167971687110941511268071321351713906708945047069851154474717902002035789333502847434562366175186770317694909678948153996217298924244174066349378761121762228094325190774088416077234662196047837464450369392014401529065058834150618153068642079922539278254611269062595380876921156246903686706164286937123563409499773998289949543319658277300881528683028413296832006687178519142992149709180630424345658003598788345269950940343421513910635696306016602882712600210360928021831673069682351538027143557884643113282247482651595283501271059695029673734241292165030315079921643578102369887146467094383076112862175275925021734103824334492825128809483003948013411909847400555452119607024116947530845596407700320280155612955623126368529475759692556379213695375699112043370208974183600581824587297548973211102770149704219793236052717470510075327443912617108511291160712510066186363731991722957749974474156241659108368714285290015663630432442333238872496682306454081138721136677382625810157271381504214543487307594971013147616599703612146260633324230501032688783006506066459460077068305136296926346139359571603584617900913178678320990625679782641413266087674761202533271654531069576519922979026191475835215621778285639344557913636413207702378430660369527352166457708574942999010144038967371283761429127052532731625884382768566943621220807868839023423321819550656675601348982205477517489724975916942783864165179415208503767444657700359366029409776985826024812891125713771929390045986442389785551408593871497598323746778885874687106576711710819596552123777032764332071135204825420967737157307776426625562643704977945407938309305758543564962003690059637884255656011853600654901507859618344258185446350711096238378796767886716840513617542109530479739501340632931234352228262380120134310814877192487724626523045510979575118748942681696790541238315188375873909839177022075733129196757353663890725449407219516345541792958548331149326657453482261956621187617688725076707308526217889146030702834235558740912748706071650567660460595587365906408689899317355004294670829616979106919833329275898536427234910915071947906985426014765692698064306350348158932821575272925640953254469850584865219511957040832660713461615418769400530063439718174978772389876433176039640196993309048041433154799026527536354565568503670207957957668541124561511490852342200988979593956337514385032847175153433901767261275212691071158733675927774644073096714532673462818639087084185213784244221321123670447823998783016858573047078476309169463799240938480650272574780829510488939418522241066257400931421283051996276218445290032664149461367578392549446891926748767661986942713559590689882961045632048883211659439372808423603126623423872634240621390020838285477158264546712677410123630334509613289917091256965817159378115327201709658376569184567742921047928172377840155822015652083945354312558420165372284847428081981775496664213589918173360942742730700892586334074588287623491343163033421576599903170559322145611733245142517966776599159009749719430027234253459438407070679738996443185323754061236294461154216813960498357270480431891101029689872938103641080383685764947775602778844343264751210607099450615491710340916505129023372349612857059564643353663594547529038139840181997170064511948260694471101873681211961623973552567902554488587647602300292182640955360877032887971478501858805078017346810108870588332126866055408666563918593168173856477348305549506522748346798952678365193956453109968962011600022187137644302441432349726664852812573443056409375708260088592809066273368155722315283050043166863903137124624877308074783394758592115871626944312019613563303398667252969368574636390339187328011236777850677844170281946238180823853833418163180306580850904305974690787363090907038683496838689567067770865498899181068434411555955937478308608070622834314731645409258784492921564811981840815522222635650539310835022567048317743759491137158318296886862323492890240074648528996404353319920370339180129338941715363966647976173406117483528637395265569226593216053960409081902876572271938256686307643790790334763201882800455809916601509705134000803484493999129887822017210963004189070969571726069190962521897962055251067239288882819811707989255555439789060115862005390506622448650831245763062716818817331493017109131455894198209576217549331402009926790076916890924812673578058822917613410028151232451348353137194442798072589193025886799361202174951233365304546391056016302821426191145731490867941565142387308204880381159944407410548902388455188521188416730600617183699542924970470009631717471745510780486428407899568981677633014197279839907899181569112114435297748187147873582470384760628959029392381282210182255357847478030596526197360008335320991870035951857460069282931383211130335185387309577129813578948802889248450406152016925599433261852488219731406092902696760629329545690670534450294691598694592084684332893819926509241329459437784754083180563894201385989842726200854548733535642262069152419293598423449704052769527040983948200891779498640003334283648982974067245088273879245688634020880173827372261961800861357497976616945503157656696352892234072312879613936207371742887434881449369077375473991488568233253305478375796003692701290376765331112185222758582948727634644977722558873522060956280465721164521908445396755185962950180484447306756816439418350952722791091805535993341348333128868327875399614612397838493766694686861340864775907284912988647896538296307868565824895872141578287934981757989713680951800271687555556338101166339669655322118055397441558252436517443245380839735958000172837058957762905323453791548434828005666201851441022747838321756619695279560203931792684509925062244194553661240860708258590808295240598777412718928871905655058960298043038239023834292791661693039241707735881033948484584812915433156798760697611799718449086695498627452924043864126731542096850661055866619285305772250628901803622941899479896707498321888852391251479443270038562770612075006479636679491059963496034512192586287231976046988360347740912294334785607782664003855955416531490210142312869611312134909355669548817213279843472785957041251919506497676073875268557480172593057075934149307918599032836594859346707661303060920183534231806120543369220360053840801389301814873929180498021091296611304736862542746893753832974124418653165679267590526199948012712990107407071547992503558514822539518422476488584670953988110374304592777367816590476969876073319353498971804613285952156378118408290662878606095848527674958426393149965778096680695202534344590294231690674649069719823308343245697145296107240971970240585880022168769072748160674956249621468357171788942614115600080268908622720077087181290765724198769305790426755202020827131551882763453751981160706077438666290394832446119561138877562832563688043160225871389029338230041586636426571673090486813377022603723871063001909050916453040590251425076153844710642021153242492764135789072041371563946015921383094124734152617851223792615688858651527919103903836926533168099233719100734235769057870229538699110983208864743460797080186346658719863471754682124402874184615836419775146565159875115157588727341543460212412015634241760423744551177106426029008494214052858221080672857186219647836412528927002903310280082421440183189125161000619407389171283921786292371839403088161961937418811356444265491711504878553776422611278487496419618073797200728140864217265646943387296819948079742240907437645822841010031780044146518034077649293637510458982370740483366111493894396940843240319126846168638952840258660014064583125844756709293784325188692193091153854265144137791193387372362818873564794471963643203873804571120173721866275444876578828702644272829009678291608986981850298356532021291165435115598756736516186623889397843667209985364096256191718152341640628859339221826760644797623109126523495474638134289779950134834951332998775896880821212927157546080834597998576129159018854580991721218383801098191510738860628149171221451609504681596266992300787202263125982944182217667807725941928471338838250862281828518564058029884051942858167199995734716191388737893389191147238242840057025581192322597752547750607359093867717032626831182257210069110451473283325872172812804933066483225895189475252271036578152671333341071867916173751213858869709343290404065443861850255428535113115036220240160658181880688117004501019009466999829016566467627191113603795489234456478839014519141201567439155635515736556423646954729480109466361212364057933717616265017406183603935393507788215531629578184847975639031546446913004338477531154231591289782404054811877535527515705220716860257283654121009986536208640093529178904382338833361109049525931071668770921522553894918543223343906895153577653603225960074849551716497067644854318387197002844372192756139823941821687281312511454064775635760403944354494526708593825150757996130589334561429113987834728596100054838262931879222684484887522764281333654401710735340677794927970820513674640905680658404397963410030223721832378513386102877036413525482567710376623642417320678513286190231622303849803297575078746960214768903665450175559843819543533354261273878526636396124648602405439892720028732600765492911586344479281545782513576617881090177367469075961261895890420672287778257214519929928245458881304549722725088217908939497637572676725632411122225034737088354996477067950659632121263054392676002118250500723284788201260411419122990121978772614609323338926162891410070888307792156835686374658458565577456022108265117341017929669838110141482823185604157112811019621347422790314751877699239286598959068014545057692511124249522493535504468236098042891322106012651718477369039903145042770807550606175721577455883429776980416266760290852951807049400958002294882928483456347529727730891002593152834028508128311448278507211741032524892029998708449422658512195094218948268222440159309518633176145507770301566691662281714754844107696666860549631019767137873664353920691411279450869093418403132619042983526549919464803933544933231158875865820466017155173005489813294056977863192747770108171347906315256695324571042956212123411312608583022724866003724240864638809123736912343142208884743043777189690361802325788890487188583232911735989537840442970278127973043137726742751285220254607988114631558611657575634248554436908219589976138226741161516712742158274475035624466398723342445183916447958688009665666316340804874987590592157164813503838801524307397816645604218631911815925779572316509222014626421759915444183522287573617423188734592979536248222841304556732106467864030392736883567008071989222144217411578855545876812988752463155336099211069588040692622759669977714016235221608579913456601786207896213986141671095613855071037256096417211234409456118603779622449328177948711713698794992277951031783505937540893563836914894775456931527720729630946373888735218573058813321326463245695166757838424037207098503854172413557749684209271950640562690018192245268666270221842970168406996571822613620733625220320811035930075332636261548860977339513516983286660448000726450633922955938382575430934802259902601667161456139658213827466036379620963066184348392894392907218941461682588961092260155587262590443099933711876224263032764002579099248861139642262115564138056681201465102096672009726914443581279015694699525014558853385221768570669221162159793499840981225043551261772576557289482654867574638988394311561600989115293082275452833575880009697835229731937409103538368338210925845533285222756925951075024563392534562192811255867027460260743550730869318591119423775850506603151137551885491878908470640097612610865532257986567509487507381425927153592334944008392150537958818005281694396427616953347016283053510230646877939402941650817440525546886625146561737852875487820074775195666111825323944922721672625236591361668736735121663852461846116391511019939480445279524980043825766042093067354669718739188078264465226538850576541198440745705021382638055708415822959706724490940796784104130796213922044023032501763401200986386644060468725194666614952737137579715218209288054222597930920701136089588278706245245030206014422461057352118273598360779168666655070656017689075773315977959727614065633035738680482801425070095171808050151538691446152083791429322428213294541347887055780006985122696051773925065783937386797915726143688860566249713573889158317098334772107879298656649510987616828669135542655153565805991887704712807310763075181247706178086655790282499825963417067668705013348309115038416237750278176060710659621839485836013330662875198444488534836000566594175834290370453868687339501542325747969641196631506397035232513297070320399906080583857471688239071809260101806373129587776111884930721912868927921353690388089560615717631479827871396661650379457513925346951795614949237198934881879978894823579573462969909445326054036960243482669818662119557806430328506463371991579850010748352946943135257494458207485423305312040847623460062141278233304969983406474522762858371704942641638093672592767372254271042996411333115730008174704638272698374139105660664113390372011917089470415747157545943472683931656624581121859087383462229117800423749548517232817945938482163347841352340412832899581866034454436475935065476115928617203390218819788578298284311464873192194243404238663576187735032717779815493773200217801766256771237740514740622796289612968521094970489396510164315889997907322044696738310282457615775066810011333468964826239367345922371796141584320764666984689147929231722090402078508556516373543213268114762261758677449242095924703267058864103144187198251954854401615195326328749672995810350572776674749117467705274444170030733208212092122542308090275888138868945955955925173607564332327967136103471547624711671862635190533405918619666156768936356855359009662251141269359842988782996628046146721823096332759060334870906963845199614337223792818690579057179510492175671885367425969060947280259752309447220720846551505187548151620316978622099330362993749724947700123429353414324802207264914089435579890716415107805757836854703775685185068284401228552487217336686148639756428516982474863804667162010846521752152997105111499251187134383533516432300921729048477327009981727709739547851210401527132857509563912012637268688193113545768318727231496629652544589323861497681732022921738827073510192067775583087842894850395653653259499136988382500229548772806244255836271524190972228288494352476887078653662633025680956245245897339345668362554082995913485956677991888994820817970751762598327131134033547355217951392346883945429667902859619380925454280028755405130519430649210665480044913356171632357092846837384393041731494227435827049881163911147692593219703464146175940661038170189722846728070180022777951388850627817102664408229688992801201115020240210827142757445705524383044849459265419672814480129125924494220994866726772897299584166087197055469853205065728070393089360075882419445104626458409308899871867482167266454661235256802394305667052687471415357843049281934568016951616509858192416535288159123942086063661626247787082615541901789805708258746962540601276792220055557756567096039864783306236693823855206210537544900431496454579688233603171957788877179828939214726755138246249154349439125911792292846205496771983287738149626109078686909938944711497271251282263875331464195813875216113205769259303068280674090357950356861251136133356140489064853204237867074328438772127533731612943637438512594299764447570103369966471493233439615064040789298403392313203900763484868901346634613282472920829532867283412428972175463653871369171846426414275601375164822842311287264474121300079755556190188239279846773160277160856800205301063130669515473579168419929000438470269936432168256057834568242846082127351306505778091452893265378166320691169668408596872869549220477356352579957561617125105212370214554977013319153842519328880890983373591605948302727443448785825627735828258722413451390466611156309921496718729814338702777232668658508497990301254261905952578669879120083396694525817986425664742961990180929999971050137755577771999461633956422724428212019553730365784028298093804147623395840111365423511405443284384430324780406027191079895370434334034095113076118025884036561134397138846769632036799535510448197426800318920329987310130530089997726114764261679091333754531945977087387000979151785417949240480903826431698118435253681252818395778061629594549331464098821325320270116432104138056836142938558914714295244824125012972859954119774998016370438402826454807084199511172107533456917859249547566024826497350233098814066027049996317787168364087049970578978912561395639673737662025113804457977105015544713611383953701620315867454227976540407891556587093332153208179857898301494939400739359116554858654097698051306005181316630922286252211919657475357571868740480308812845091010857338779627476700313862407113109275729063595756347747323871221736729188761198364681651981655406606311636431941149508381386366700737711629927162376045269133961239966221675815867244864135743322660800148018981691842276201825069794439524482920848866150081435041709296915372787034659116751969468258087355849963836982517480713279404157293385008421613071784896728122684518484426060887864246953433403502038944031870416207882678156967311049690355843618217924072381173965453529147843662265910994268227459208833083434531872702139124676687512827721832411743528868560972399740027579052194916636818093788984862042111414387246592028789696356339195255675662746965704448350695314264226044768546460305758228200688163646223769958792888356439141086057667656577247371430578047414287580848174579056568902602447575225941763821416591759516628773091573802625943632675842907594292773292309243221195055470827990065357485428918404390838015834996361389986319129056532619409707848710351967774401201293632378700152004101149263679757769139909083191058832684442524206425663000655982857109201678530274396233222282543496095170211784507232835864193365952467064772643073581179289513391547463223440111678467587722109166041326116176647343445254084076107507093274636600537179874138506571531051467171655470419093503457008608670204842134407226197919486949795446477429272227246750246020267777843368500472811818051523927033425164704610273337129019806257861365277319200637084478575380225266154464116256490275878426475283958863485244506557922700018822857333908257964667792150534520230278220598623241237509012852121839930798893579691290760190895678096615315991413683018434888805490044726912785702212343110307669613829929103868147956273617173378129546795536921163385301113024866631382129046853883713142201200810375851185833544277441114964626417103222990055113615391132517568822534313669169110732618891972304576011848121930627342797294196271245126325752848634256743547793804330407400988346240511150537421726446565095454464482271831059945799875083587679142058077767086377083629538038250128377416080732810133231824399903472950892742191224077473875680279357209721552651986030351523197143433822503556570350078560682664232426144355340910725142286530179894032428179153719800833923211249518187603690346535520779564362085143337121670213121079563351124495605985529416309413596628514285568764930507208264351754238013430117666201417674853987973208763526544442714470645438713508015709661559183262521526062506222210858411622535070572826662608991530378077658101856911312301699012477830053329798151512652870855925964205555367620893326420432226391546527048321057810361699048371322364558740306625539711460832712797418279046537190014038903748481413936834005494733402046459622438203329369398272081817807370368309313839281091937128306658838438952139226803281265948453658045716668900010291400660971788620474219042807685978463077162227595805696360157282919073444622720031108919057295014418732682654866708142744498108448994949482843160144464286082855643293913429415460498276432641675066858541301809500147809770512176949987560107710183409053464027128624117958355915879947735729649872021641835385223026558367336179163880255233854642399673974358231507950016577465458255152116797363400738359076366356107368456144551167287108054421526441119475687561894753482718736695081651466293824803997240480899526096002831294837103181010572101249126005496427899853463447358231693043155001281084122242993766966924410755412501441684229293720836713869400727155532735407241073125886771851949055699910802819821539105670945553833514350240793449088536009383778765546621297152291140361177851548191965732658581284020308956559595710828243855748036343495946979014170146540130264592720083443363189387940951046727536041258257006412064920562087397636499753567583503374495054944650880105556616938171777877706304089406745153283217661899329085690837037107501644253996644791336643204375098501679323833290216796321714443648754952344953116381845331349749797411744834229764676101723587590098470816065109611851264101033159765445053695673571250560364284693859720322171641302443995001719030675536993014605568415149059205396408054219617994444390360243085007233717163591725508605974009499045077701221539307720400589506302805667302525594578040199110648149631645847371056800046306902654992246785760210495594222364666829418553443854012428576264279795470051735934297200511243890702446708741308748546014849419890699923152551576118753534874780633951880648580049950752620633040405535412376500067409199556777607786090153707480888014025293609339374997171986424521829571001308167588899131873644271618222108245056672304948554627526724559890913510325937961806527970671710243685263009593326767025692095299633672920241323301093776584037177730369464438748780853861526257095114717917685357136939935214995196122453364594062550473032588578125381785509053939321868036978350069744009374862235287670655599743220141839981298161305159038619039070136680303768226539377399583884648161785423413848754111274553126201717260282978807220618610695115853234118177486821302196996882469638719185185162327372605016551905448444941568581658832780647810973973759185304651139714207743897190146267384711859897289510483118824891678951615000574500669454729843463991564571989507906298691225779233394738632904063746526273123350978208454061492591938286026000596813441162100643371107869866912069256672700823109023814447898860397501012840738359241195372298305657484092218174888775728116945164838007446389720061315693915877714621198946696174216027119659460629526913849610051236236821847090442580547989141117549949310602974203192836168774992479022613561657004177607315944883869845931066621182089977656476221980731419997275752915419637494809213873105550386500378921165863170642256653997201711543899226387811012970517063077581808401233022034747376742558506933873929832528422522740583194302760330112593304533771069441305589008167686989276764681243550671194426518635078537960459451544298204346141725361965147974986259455058470530848637139401077571346991875740824800975597903181283435875797570265337642563245330714389483047491772047097871849761618117676277162626263621163954838320813149502822324469193209288412594223177721152703049369915889358692166787110599433407789465683842702108242733812009639721788397254453455666559256467221590853300223980928072614608942085204098012036801915896106200060909964182604519712652093287900966333997912618496892584272131216807994187499549182854579888961143039941832173550652178585172563779324789858453295311275780607714023038240388736653783825493841054403247874501242638885147194130249602778317621803074282191507061669959879268497168747408138239386120646900375156982804815855248196277613888096032841401611581318171991064222160374019756677374759938356067623235448052789746789127143063363987983873701883716901996391905767117932422050153638375918507152326532765505234456793985553392023535012903590644461579027851778440898809600484379465599773182504244126917779696040527088386062993764672918765011215448699472614186007596155791820483674650291436105736775817368409848213835599256830333418741378974649364861725250536770110389145984225155301694047826076316925918661786309992434496432135923522334673416385101618621660709995037395670988293902656939162591709752398757210678073365954512433818653327449937847142395032561018331369306904002522340527085181387686801090320785682077456151803411988479118433978231720333027421553049632966452580936647055752529837873315583816195376011707990200440907232687016861459467495420394917011684144349324022451388379804053832864463915047115290758332873008347157971838569241383205919233393250881914006475248905338800934905468842896599491807424491365408905789183838439115184324641108233626645089943528236589550894122565237688607893079459190817362903076098399588778225724366520358564585254080877469185400157059043799739235584510566389739461336108945504430487223150855392031126841990866557564517480812628001752910858287221589901849728894845973066173235181768950794035499669692406583261518125220110882857866912950907949031491999762790353323141175693946390561664831960865087206893224230053862909357424525478183168844537053429643203877136476931981311580152340461168265878718716135138659022269725934057657686923256815114379112930795298678364188029156346193369184532022290340180208279260315821576023828679523749374131371151633124584358691741476636513487134752452395161210748436854237811019803412723252737892278178749530845233669151836371325220002693863603711885764239988647275076694313003151656176401481155984492131895763156514102216964526950049303082989291983893244194971652690231213808072311123844424811022810949269965209828791535497859875402559285934327678625271493046947384701690066335982084455488308569026890355548467956063501905824689516259873197461484775772696698840037879527598049181983890891103273505017560736329632462878808315118825940108575391802724465643247104032109243878855524290661926542521260947252978082923719708340354054597363189554320963849136079767762532523020510049092115338174197947248744732810744474888766086825942096643356493097726578982727910001425697104689315165359658142829856690881986553493283741438632473627547927234938406527922068336941533522088289260015435484054460515623220871226378557502278873934931962102716417759180323596355706622410269425748326957650436151288389235957677189015548247299408956297423450111675898330671988855040086908086720138085109868527738664553206382057363373721972651408018293450640290497145957544590581433356175435904972487317208111562700210072708820251206786987019052586764922536202752845313743819260105432069653853720596808799827528892173859729499858840876603018969045082304772519543648254274412104069648328749820445072210371520814394969986743896452417461276293941828868852489034253331542705041090112782201092940780188692996895412698136737214774277787869481389159158472183829848361964852111793115964075467066187656554667820296278535109321160656998214335609693848312663855693932635584224684039208497130696745812849956765846343312608134278442209398962511861933887373411664631120646180656807369654881801632217185414735645220221769305795194052537220035243603820569983372688739650056594190578257638179924597874777421039965802836739836312074259910763280790702707426159939001122843187234681153166393665022666062646706015611885185480635072037054635332687593506832620108411937940705527215770651571625828439645236929944859389795585567472069802276163379999310996010229647333645895276570373702091398249385943594216850802468268750067273011631087909049247146684133598965337066850159338859492088109908348922461869320746094100051448521213838064566777706302222020601523541142713903152656618206009091896098510113874486831566430618051557739456153101475051034960235399628417174013577513594342857038296172296851469174396207767990231219037245293417200841913789487402448116795350005613948589170147977316174160880641631461283150326745140107709423500219357375196866089077616296652398301208256100141016249528904421536958370334346071988505528306125370432165894506391487083704463769671544606606179761472360401644180104854058732331874397811072326145197244368808647562253264206413187511359245407810974928018382717499915533090299993634357246438062832092818103815374856007749851881423538260521737988225031692888323780167667163648372246394121735670147955279724765680556108300519494539223514147560927113719713373881235818389220821240192171121616296285771227616776243396198148605827374929219312329280128123135705151702023093934236657128258756516429410879566277015462374579159955595274693516775395029088245363612790683770077327531416390241163472254060724638756579679356621545402189811106044919925110124837678307926513335737673374753036040530176440572437152758036637801082538024432011162423409841603112281649330446306770085159203699371430200089184745910783020482896270320481744363332597239754386662972040423079130101614484217761233185002377852571287879125996966306385436706597878650042839629277773629379049278299130073928310191136862361933885702073741838408348346386748674964573492746412841078248224839341695519012457578569326102044203012815825482080886756813176357325627117530316334465659708986096308850186801337042538175546438568206412744073709641183266179488997046019065601213118928506941619739951655176409158231361455070676689312687448212620252943009592556181218660811729168231386426829745694755091583893023840281553433637843879277043044254179297533764477757661633691906779105637040886212081428414743057970810321526532390528753284799454923818406029365204363934543101834614504182090900135031134995619592869046374816944714191330333047691669826300733651946122710812128689067097135490379295592757194924582556939271010790321885846971766327412546356113619652716515670627259166233195654005982297096807657982213386905194421329899503852996867920982172841803412108319867569776806527212163018397132692422533723323117360142715032720182024778514109177535032562993995053536795093545809680445277770468078881193594501388228143719444679785308542436056020631759289161124070564680807013534145729370419429171946751221318711755180440610460605912462575940948730306626487537232574678937342424601766149350705196911434699210107015441549267747824802880486002560617822133490368780468524635391295071469036570884103385067337001049743722624635420980075689445759791321913767129021346172571810082846631322240250121321099407237356158663821966787267386366136530585321894958627469560918637696174098854735201907598860460995597173871893670086685883180509574248568975952568218392325064117684387554638980143360231424142921604495783231417099325866841701559034262981046118916817844476608431199296673081418020201322268738010694993255938192065623894231917029716464352931923371441631526637206391139469095498952935536333005624334729507657720775174248860837744308465001099082806067370554497829825830133609401274671594282161366954755676850261830585871992716301601343346703126323852908740851571554842338808798182002587844238190791524966231320263384020605544624602008258975031816987232920125436257957573915700538313448152955377912051724001626144061192520774017217221744682573261225191781814961697493152917056726469717894657222359974949467487496618124630705925221525179965101953221504910802295342058435149086914685707109817066062010244222114656837934787403564166014034121840165388998239652342449423700946353028442839103093840229698532044139294074052614835391094098416962271907548404157368351597238076321900851919234137057815406047868777826902568207911320870891634558977173088171933779600339635783289462306122033716478770140508406626459155683440223827149261420472789286567810573080412061669495781531623612756032840389384422323386946665377092867397201548830770196136607467436183905750881359087872598963083077315742528650161863616326353302377876513050055770233964200125233463526535922723192853247749289806874911253964792752863354473701001022189846266383765495591927080076579438371887826702170644523100676946712197519399121374773326783334903177264618831839938604277811256865531721404221301761073923150351344758233861410342093261245900868038974150474755031276970141106231350336551525663969996337521335064034883287961676217019815978875517325959746057513126088834671502741182695773241246835094178812267681166188126781260722157513205252764136040539508859740114424385098971458080470511289022650639909809688127091165549536322217656996037816858528842466344789360822127995197298949757947549823345893729815013528645539392190874001360720270937857288592948543265792939191021121484063607902430833469228644547415164241780649857960347870762690392228116123798024246093546429656451783670789871362800024532877332794887938377686730240097779709041798895621283231279963611865678256395838580027259306129336429671341867187148458168864952765810604283571164494590623131234701259933572108318249471647716196196440371571491701553348142727131742777845290087869265575820554489349763429409517272152271682729393087878941308281140773753743844524030441082706104353758668872046448679375670541718314429892253672939150857970138834591262301955396614532480821598072213277272489147257386560111665346319069463245207545819459269536284409303638148281083742597647854416742370867189737127016251166797252214633362194823714381358485894364191956780220821895193540536815470732018213064993227442244418950722484800591622411035549876890363740655113029505472215392537193013922897620686656082961345084075641207660384634478730369836032336249304916206239550863687600304178913782786284379600039837586839433358381065258704496898329823835863949825353165784189974175732710074217019692171803126988807565067537387837372535779026061059709776852892465457984061911602713763045907937529685216571776871817793313182480458275622542886012406170113109556476798092953673028570681235189107258396322625289743067583836082849009693587913159623051381016289185702457872804956098375498353618505067872664740085843076999934851134149331334524871935748301257324007440708448208142672701250791403890330399263542975516975426574201408310224891864533807582787256159322875357539370555075176635673824543504768372383654926077298230184755446734457656097043442012856120933225282482291331926917326306440390360572687914655682777839945212406373595640060021580102393630893148297695967661200153359187280094047068562316320988392204405299693389676602939732062459403453439612659623644089727691135422413885914024420312802835081715620301270585524933420309064209763779313649295389109859075656446869968128716638172041981138774952696273776993018804384903440311171506618011967878707371803458880356988150772377531051691661824193589400799739930788923391010793577904523849492532607677537631068806994167142505316063734769980526629786852868706144800534714489580991077178566189091744918220841695011307785497143179929924860380320335456429203788189828999112605740528902015294724960760651183782993577865558134861767486921580846784385271565936756155379989651786996011237704408965296149007156136915261250452861108056338168514503180723534893666311099637048910705949260452405801749211718942599441868396445404270209967835868985930701723237234817789653949156217097495409395554727438146630798366993941405789416626122959087204950819604704586076324565363814758858659691404325280023391845622761303802338955443071151234735938228908074532333209507929102317246372400992365663957403193697526639351414749766323576657578293053059787239701795221944196514992597978162796911171732572337811266805838322087830373071215691215396734049905235498966913656717646527925742057030533173003800605892076844057586882554121960204099662626425343833456564439152390072142011320893411791350129658699404738741725027944137822439588088793878305700135745713466738679327909780447795109309773909842029249121544297470267042828396763801280345699551835818189373005092597424456015643248450724384150060270623222335583577035065198733503963974273833199718470617451437914410972691521171129886533748170583333061083731139104262002414359314513364511078620197226293765381162209819494000997570637012541676381824784088883545319718828753112524286882048908829667374516717521098939131324949276699577039982299815534259465986637274984457930241110869771510700464298402599949868049073375787472023103720438943499863231583706293303585698882430976877335209676893689176662904014813550747469274406939212689818308499440091337377499985205159613813253488134275006348946666193737022039816659953636089301519535624829853035314589231242012189075636957588678795690094815371148320422880560908397457974537286498385374358089372742459190701442994373775066532911211299879562435564669313583091535725696033567573108084177772206868580860367759533794277837455955481476394399793304351587309360839665277389474303206519214516065917530132149677486355128169324668018050497371012756880279757788313523667990534071167055105899194297108252013298411967773177187055286390796360629790051497183472293417618108599487687081145444676427484433183286290546145662404042769937843125808613223506916508185917312093751247197351580033476084877575930711892467994996626571985646904295783187643054885089044903106835504795549015957866789437804123060755594583168843774300835131340196130791301663433524028422346507778170380446939895750180807071628241520290568348811850754689349801274891927944892289714956911063931691651823002667504543344385930752786532848469142236211482577141757137596919274476542580352698233040778835965997341182199888695919712676185596763855906551250411828812972828753352584637640083930396470462953806264987626522506390980502271174915959389148145784396096963712740188685201314734151490623500660868690670652813093366990135622645379308940724543383564795240971624938526008599577812610916245650273299048140311655172327468757995187776881464563153025534405656204473847942745687448013994165679287444231889369468341779464909544502576220521333617780992755614216783653259304092226425441723876879623282534361309157507622316766947235016349323266979364961454771722066992195576605136063828217800478964918386639865105446304623390504111693412170800400651412253570935181394994759471771249857410862167129025925775253355675728026761839424923142142725873041031969769186555605568361321304494917321891782279514515288547673768619326066453839694394385784089161897381347427512128358147484227689295362606481978010037472498256528718395594257231590447814801240773123929401812933000009925046437932204727752424332227826267637931593906307128443898268629139916142919334472467686402059666257151260526799685369850308639851425263365151600869236381970208206509774336958135285624856441538952707322182524294339691836412030687683434242878854682997519333561474410005051518006655339483671525047584213704410455900332135260544540032454540450496492774158362807831408759931427553570358691325673754315014859375003814972264737766979718458187500400672245479980420322662193852407840567249121501375187465687219715210991619500903695514306293681534151793044851223457277429044936302553494902004328308625666358788374394190305362846248011028895767218063812645882403348064722100903173766594862663271103141207405503574313027669443330616699334399275233661246802748532383150500733843952748094055560629882651544479452052168440659509824416474293858374606741551157372829537628817071735111001154510172947122401846004888224685466217673802966207387708232640230142860342701329193280213845265317308487954695597010407634291983768173768887739109772075999810424579444049754741028724899763091747183855910805344891301975243952476023861504096793967597679503128313074645894209120171354148488245780280404687787430455456269700197507390712591245619035487394027010972302646737923066020507725752006968746658402031407035183369020720122888785237311002265645733376080782852803773720745558163488307770138762117281430983567689585831685813792362492117774518624771831906358887199517252458331067493877527166029546050474823941877423783456878059593438011398767272510765903862567898292037034335699762393217292778504021246534847824271499793521403285336055147282164966895182375760526427626363541727059954964542483375073490238996872531154456910558771991577697446906162085418509227300150853625720397359490769537024652386257230590299758904675949231771243695283353077404264345479710283579925769173580852814775214775454907110874775973423883409223863230898535380369388293917557934109483023379396419286095341832320308877919585589480562135210481236700456190241642398320150099923281403996320430328064937023275381908686931065654691529347548481002758918095624765931723986810239539844014717428291024762723442614212613151562767705731936143343528769802628576544923953082201828555946337209979964516700306954473732081899398636671470506438154286476949141065268570609614342011077260289273624327440076553967928209160316267583902917922987565880792926797277920582312967619118725848688421889582343909328733236613155366773708955414972915357021980271227817323715272398989145651009144573316586229942189153912655151534316678709943009530354034096954734971480871138143408584540496365058339112005904659793949068987628185264425399168187703797408526240986887797294203815548998000002429055353835649749511056668497783053284744525824616103039163884552641638509578421787296623751544839751329452422877578448966974679043969397606255907921660666639461671573850022863191029322096330814954442196747198385053777397623943406327226034390638761679348847006804137341531683631646829336020455952492148389737374992773972173987280819536960185149983404470923325062896456055043936558491432094807586405233341662421949351696816213060594471288550406778993436881649664661456608354340901369277574884828930985166958279085078010408163316544979295073968857065807646744071923259083190145711813852333066053819720008483648816309534389302012613210056952462184066243662410481162825915421928139438524797922171180950068135301225921600142488598653578123886580207023198655774909245232251711117160925619154413362541520528251667981430171714169971831672118744825872135211175644709336432873032187849100567751487954164832500068535234628718281403020100040639074242074756580309556207724646545519538692760553760099624923003261018857342855778192650556915501146425272500340657764022550882303576225924184680137569779447752960681156429237614587655331118629081386726229354492752655657525421754516509851864320551196674730528165255973561385845449197799415290910418255136900094771016499839307625418985596451690845517696938944901202412817641031863426452388523123788802531024471614070027214264484347400307029774494335398962440137613064017877746439672987552736364417206145150247416326353725175413385146227068258717386509102028372605992712528243565540040239619826401351646605031008495915141186225870592944671860861332016850083469005293806083397481447770436500384664063615858208650255184470011837994724558822365491144470230069600324599583231292562152544708043457865817649021585156341160597857384919370833141505974593017862449950529300217590556175810689931252782930160850914363093578951441332068839243487243935649137047524371578605942369861963424013975037914459012391490992682578350783844717303374153187025048356325345529646985924269646198928483878625278279523531164555692908537435706190007969804976461739833349689097032430025840022167197874525426988027177846225834360741553605988292489105823487568873896745731190679217831174811980422477008580993381608917128607859236213039368001164227809840118089047526292737765251395830478140970963726126728989086447892702360720504617862606833416173986743320849774693198685755960376430816437020237201683674292237553324583278590743237356126815298288759089761892743851743608613740770925950998118854596104745004030307113591477286740580418136496252314059962062360262802184793287543770258019593069317902329981837977787958215062768669021940530215208145234087140003333496331032614896824939609848148057878090819449598871707587238029078903826768919234803442796113959568788931108609672693692662441603856297832669815124285332820639981989584069139930428584492780198511632552515761482484910693823639358255947939103849440099590607821551090640479214919520149673546285526314836423758879709102841880955971387367276809287579656882360230490228111942313901027378743153693155008265079166010048996325881045820898087131700277723981045831551667737394746325653952273647166694673623418837834340358554351779996422551977268322081425939122732475919280953720275455290897626814472296016626120126769120856137787164453692381427087234506206812251893993355995467096162453202905830139351714726152333439686737074516677083067757441166318700322042864073297545646041752174789104422143438248858072183699846347018501423560660360480889096115828585544050680875702658906939197533424198909194143701945571035665838418120102301750993166700616909267299023286598368310996357716991315482537677572375677379675053634241277366045374466788406228534010386328078329922821833080217265897651905272526225410197399200796282406058588714101187574942587682427588908462637803336399610558323628840475268573877923851826552445983416084462349721553442587650655402143233973991006445215773399475021320355604333547301691062343027817646549643118872751878411979744895549088855333835559608510639967214380882181986575573412074128923841510699110658210665463243398485889864927758327301312201000235963044122168042586261562539740813617073122475520287325276679477571093879239859769319143339158482361049210128589496405476113467269579851122749765957462116610809362748908420859201321667054555332866748973284726259832764005477376450583427554242545598852579675423758499571204137462794652638360068678963108596236218832185482897001607140353521861543837256141309694794609656702473261464981570143339492274616460171166018134991606331277586456375416232616811775287369218713116357960960584863951103743236063882797850764914165003601958179523860140463278193684149378525245012566833404246154796426749744946740434056116708148674133061076107568369616676861974631499042507240052767113368330000718055746813385599459817127297488922226361075414344657778746311076623520409651191544023517723879558574434499580428583986392780903634693156984182232533505459418314382471286198660049960498999914836430042053965461064216688997636929659771376185560845932278529648917693241123837497084949633910782530011473634026553837683757303553681779053467507496402923947249453369216438677657616473501658628833069726702420407236262347621479404029586988907207248045511478270949545748425530828993442717062052445366241074344925423880105286026602887066302149477469858291464682175701898957432145111719024284252209368130427054555256321091976052287295904164843714444892895444665146684912757964189026061058702466752910325098701693589880959908655743113528310641938280156412071302456374469748192197678301345664232500719465619146727505521371122410534593099462512165097490313161341621366564710558491958956724538978682079503330480130086727057535988328194939013720590038609036126760585267484369439560315391798908051366151245799090949048564954510185101196356981320946790368071741662771802031226272508630564218361877628477235277463237958390110816872867062619750695608157548779937658521391400745141785781537202465463718868306617556530079248272057568928034083233132694450693405137691180373153812724182211389799469186380578932100890699580958391986670256272076269700954675423574634420488977824140009416517405754190284367519596469273712557023717339554309053067789446299660763739404973330482695454742969888717038301665401672495807349384355903014646384918622603216419031687049645810877426494527440778487741061389261661569193590679189967080871098375950760127030210190025542568511028726445866664051193943312033389616405323191018247229723456610938099778674438536247781092274321769092679576517989202044640544553799988505895779402581903362091699383872426552895716732561631235009652540156587041032951058205511958071124142413256685034328125862171851752788842926876510917203539636029379586876570428083136743904205171408267539612328620106067194255403784331968790999641865859996439546742331578132566172397628806550036675122203227626011063982069027371423301610684215170572014252840634483287700497315369418550626108002319038665736661038260055272493507122097959005133786082128641262366406440437440687824815197405238217393336734572501566353299395286316612448052332574359333082370700751937174309703161667990055369413985894424958831114221630111929840135837466278358436887078398776227393176292799145885348420143798861729738606726916846003691786738065912221864582872539115122997313248348783980977819770933987371595790423611915688879860525105330787018355282238885511837723334451415175777768933549499931696584624999107601469617493608007762496779728532578988286403764415206243274237875952486499454336003211095969851894905605791402772730696103759900460067662872835029033405738139274914337943977739641689436162248014754478954573646833251143230545803681625375813901989336455329404970865137481327590033530883926270069670662472593489583982729734012604228745627852553631628368145404628722729326026404115123918459625968508337710861003467134283756025908805627988614176783432199639260050871802148693684528111709394518215734331300141337377994385060947626165924812105241259920840771632087146142503424414376297692468684528623204073387773254017179709880996178145843653541308033005637216636382134346908704097309188863724503147722591384070157849899889444301439942696114709429086703095413470706469255215959234667800878323207556485749369520736831708427661747374537426766938755926985706653158840171594404997305123053675107371691354339488025915883757003610870236874785997441703624319590377586178205629917857797741032154869754663347899712276134145639456035371097157555417155861737092584556767439213961678629896318442570579134917432337678546108869107079651489125252194940290432358884055798529963431189732861226899076637946457036936794763061249941011654950084848359159052332184038190365665730143746802567589346929025283580350685947018013335113521615510265487086009330911643248007685638815743693623428158829147407253759822797219834487955885033841312598679621515676101441074309890516550780955756486810300507592495149629726895760268138186288251099809559875109191931056389517169239121865859682564636857664440580749874239980983455427128839342979432794313778493313912703393423958200549281756217987635067495911108869534427851118134037144799639321994432297942212423273424951726688187032097282103821740386094119753591671194795254200831473697827704386948771631961788339295907305325705396732223656548965447440404234692075227745301762796685925380740300875451961011537118996459574270170268421367067107058275310304657814528200649140897664064887319784568971194857266234004598252341581548916772280839184140998163781558442567589691395493426912674587467182447593700673799876016280231391769900879284640336996708915003603105440999046712205198162729599576599545359588677952564090470163507906113964064325318002881094612350539773820904518238022565672568336332944007878684700767709159625249378740188654671779710667191860722316072150945427670866732125239180735269450595387548993586322998950905199956696007408675655706385415413654833503223612761294113120633021637239653548746137864859043439259555641371251055123824206237351902545706996314703574534127804797030619386919648076438956123489584041063866414241285128860237493980856808261490394098788569634757652199117930307478299519335333152165511687164409855688089527333359565807149420397532956719734149737360165006966914272882510746127491270776534803122082462258025624281743472112177559117187495337323278137606499352370992034059785458068496539882564829068469798309100377113432136812877998295882453265767263327552912121930761269087285711893338636029791407828470546992344172973375315025194321615772720935178504642210111474150002616812027855673175074418948751113293207784256923826408177965214468839693687928212376428912616120607841029296161096283983475254758161708587730282373351999773606447327634149110747513631685761515764841900643733389027727537751780096458673700106193461783684545202162987965588381882045715103169955992943020355262317154448289847903415933182341834398875715761038383348118146713358956966049126496828564154248618983966603479612076150490885156918300672630992940852865695909635305751474596160290142229918707232274616748287748598065002961430036081566027359513375671109448305848150872806358934784721140739984481223435619018154296610402883251703437536071907953680435182040462561140640644222822984824461704540897986969405008311268611118803288991442749122658963393370772416761872316162301743033188966083589086243549178990540048018886585709054847100771038509610930875670948512627951483550292944780272018536040255802832135357889146549993414687059510672366231373853488207324290905689747685126954374954407885875090966313242018000367074578344116694145205712618194402168365700294158295269568099614433147089998614425924258047971897955670109258261630009747455024686020501722875723766535410547332690366581250782383762915245549906490795859756382233484718889502813038196589799948215410111374963453013696509804307286301284292732480577612553933721284998430622765646368681987716083390075806274093872771651129296518462412918342910383689336173996681261484264287486063474100466131493306255434800082002158301271357198056001926572547385395293373006883190713171330511177949923377556125867760535342756033826374325510790859336463740577224685701521446938089386354934478127153856702769741847313997927840076009808513616896263982557335760729051148095103188719158778860050327541704406013285841274504039698666750636957069104983760945180583533265607691880382930773017948279695301615150209129679059283263074772146057509823372091734947892691140291761874907479274119575484305927783855456629966767642917919889012499090615239456088279773791901721092632674519641232349512374569580724131080712720515277258892336719417111199550798838238994390519636509695843479337113281630878347216001917727999387136538976821372011900086032560923283408125617350642339322759531790939137866043757854070020435207909447789472933109754998383387332314218928846750421342031144757488326637800676221888812215315929378063999407612481640339413190278289358735473584324136647357114705608550488989788392969703673126150858598129762458141605290863376935687536058173184621920380333709014089159483311517427081275155359691836680629519649672509231221750377899718392790685219957837149248645538813530207600808787340942113714332349566702639695034068254281169578232773408468777422328852274699751915540409937374309505997484190132685650698891304882509438677190999475569531071246223782605546425354247838282934911620529996264264741956840823318864829397044166755723778629401451136553189414285454685695940517881803354052206318703378968040153100494495807539154839876332495980559464072670381509385203157174339489187765361593865453175300494351242884559440911038154428592709141701879620408252943661656666444823612374174002381758404389741429710229914733815476532582922969571855541864603371125526927965482860902273106060249415567113330847357772764030969583530359375084927329820838810883390070002723333854076664596258990574147326375137773984357477799405511304615146009710848769576785488049838969767070310626074176476710639637477354886839640106591409488201030297892346971374418001594798281834211608784572079288667737891014968557223435132178319441163992728926791924629585287947209605778188538316985692361074554061791744150910244215991990992013636603377354614645718060896894008659540344895522036323344412366531843779765676658187777791112346590452477747986728898358826234822324283313080360716223627462010347986870758532081746703810470309862120586708608515385777619791788818461239021893782540776711111392180720679745182300943177429643151347611960846440444833531471347985325671620865931638429489987058552803988309455479558312017469366462783385050758037832153298942142352945944694771137700768270212936706328637686627698012882200007508604574916750613155171477349536552912843961681819196693673978109186635390580482958912267395685546796710379116038202365860376201078893223114883563856659296514599357379928194754585998552859244733068336019741308270956592416889021630581461482655997686798127560768184306260163143993859847025499379252847562691810437114565407905496317855407420902138686856541157964635966754426113619212682302473755723752608960839415224235576096252996683147408119133407522995018062801611158676032742992518690818675899894996628854940497087595782482791763985208404741443241408578966294298269989471806717292263349705319730294320240326013838247810158286254345043043221196019470238965157210620899152407373422935601978029443227122946325141308184708717964786575024739177716968394660366275372572990046789378641600797316396711402606052829072957647964316745866361752671699174708865974111835521945083266886178648704863111094559318758119344819201089563672506536956625918060506036384713884673371145031180901240844479162729733874239159963759059345853094194769357054666494019198400604606095095794729073383445328686464505695498688192759975773507984477548457441121262501699626847207007954560032311670665084424823793609043417592213194391074680955758925466084076734150324075419276631694623311751331886324463373447095658705531865954697608431894751116426546968322219964521595824733998574157320050496585533303881942465303757755318851179374634716509699514581481672247471983298451004269803290255279561916299232121349386520725883188076302503153659617889645975574386133963718901122558009821250188834964928361292653740061799761656949351599750834717687337328751839887940886137411421802443224303655559407677192737722250270056776355183586476939518762211683898550129092216644743265598200491097593623850066981651119384225136281877524925812553656872293632352880465311075758056989884967310238070223759986336102441233721291280420081608824666568780029911588034636174189637919546384042485333767662624347731735757935826161269464456392084836332400946381668674279189843001994765333573813908835412164212439997711395777055638075874900729438161026584304154349574976744622090515107754485050345299770209917725635923763498142560500369242994195969875274247853065160181004022650107036682138001132341341620836510035501075196687741866904543378089854900975145642299239858834430643457791910794228427495644506658275798993153288439408788605780349300457219036292984246899069507210320052758624764067585808763057597512801187207416069212318880621215333539276803370610840505805228183684136935462106321637140205849636040174209788653211906867322719728810222614576017444127845745685289940215165313927068876393832145259598792767805016215698452243656975152776090011620824118646081003409528547438394010490546994921613444501052642812449832614860436754490490043673912574569309736676185666554004928488991413618784284499215080640830587448228233626539930717077976972674061181138848450413762760999336136235902425570428423321087898201090056335749690271692230992340117139892628545928273610346857678454853513193558065073264082407978535178299099679447693245527889608769494676037495853716709363230041953895593390428547600247657709920829379132884766326973911135403639099231199726361139500195936951268229627471992847717796860189783680716014889601083429117071395404393843934136319487004566032442449053845572018398385847772114375858683570533073808744393029706799317548358767975264659900688660881363343018336473535135098015952205978407923177872477385091479165687071812159897721811841502222181717918591318982990865617434391962581132372368303687498864279542231414464264758232684718746081093189114632862560046752624123995774623032844846999360490724930221873265621581738100331686318287945593113929311443778057125085047928822142586850257352575792897441158432627972640164554414163018404818253920627567075419324538129998009421857988645494066948486165558129256534603428207128803872369599031108818833980610241432072025178460442305542691424872032485417876239146038875661924259541639538779082801877936189626303104140631067464901955866602419608461203487669150668779330048529056122334987595158043423370272576153881536660165646868695626556757982794450233218053096828345875904522572022107166578013771460736218127040969789135376347955669882129564243454194251001520193719209641949562537470732692268500158324568796191426206687184615163420393421032443465886723332616990218686066220351947505499301962758575024109422809190076048565099514061528515118709814273173373167930277261448856881888201851670331184789220916804735021591487411667237439548002558862669984716583579509153141516795535932789449187844791987256058423519842965510822962065027441948727070289031680219912948152590151844328280473868650101186176321535897679778346329014718235551703577399966658175545641792483655959787819974939888550408616692769245033521855070701896041439821981492692722448410494713926750302071828329771230149045746815518473628285025095414499049394397992518595875492253416885991466135066726139828794465937033265198285246216440997382122373599694098639456631081871232240669842207452487789962443154015230361121739807769683625227193259399209240168781627977008936706889116468341282960337281112741236597262304687797966880631301490847579022826291955109074149454069299144390478869980604707884859488157037701375655076787176105311341400225342356536979786123791111553542833198657675369871425898943854875298294793902525614689332256707084684671943362148440908223022126219680881334755171720719700270710229186109712153742271963397420864897118235019463370538904376146136021139969152252126679873072927638799836254890770346379095797719186935284454461830158295104557692970303313225212689988283771143435505453859200745001153217040419839869211824914494742274931498342206819502786057934514237282459365470904639372532089962965910795200857385558463283144095208923993573423706267789757267777871459440539412330589349393021501734637295866188001444523934316151459522938144643554901809678503332382128576983587044659503532977861242289402180507301419749807470002179294705089573287253126136721681309970749123501647601593945628443662154667865337832473638115051855797081616477729844648010577990658064096663648897077487492210746564690133761824220384156205260049401589440501861715278155919184231271077755603895878251134867952035108273581651200598741763332994714064916425060515044000781772596391751857777824272276093381511416739580066009614662889047865374813855287167798387661149702798767727950548132372969189432484678084922142316603983248254020170041262782277371729581306410191990515359938673310053964711788103932166680547012953222250968564643485307251925740972180114743450060102935702990431831033960924900961692969905672967735844397977724372529932364579831491497465813332012776107987392461562131508822251015201090160553834528833300639619544483289570584517736085729674116777941337095326504455824137507995471197893394633465544372447236904333145366401972025161907258150826388622588341285972272226846943821001675327143252758058285315698632632423376109776082549731716488942685869848096856778597436841193252137989816073788076604910729695917892057423286803203521498319911744872900420896195652375944351818776558913086861078488505491546302409370136841240288705549922258896563377630097787212726881424805724716040720653377658933084104964731277409004415080692751257746802397092227139581929198028278083418980741495610551893765093909034127118073332258045352368199163009008425310851032294656350592856164055144602895184793200502070842056743604340453533674723065810919916435969876851275712695323812192976245832843406693479616497043263286007628895460726974360166400295128932874718485326306934558637281399677675334851112300473185323041259029219593365332836868916010933311219571638230045587652822958885234106299175129916300264357529518124304407516423269668993526662793666647221194785824311081625694281790552633382446059522748800674847978520795854531958368914992162061385549166672390761393128280386678318962570086965444602231753597563809679190903647665863320685490792907839095854931407422548485393728798122160641889375679836353511104294595716018282102332446523112852127940413756982050425066909697288864679098194652537351493518608176990040986442875028999306649103940236851018765357275818633472343447842686181730420177133885953467881181491851010341498951291787038790012011969328361828819779337777871958521735187413171476185450383393420965970634520711722606144692054725133954962932969503251596455203851129682905819780846595335622306004456444219496649137041351582736043645646441339679784874316495148047397382796868816069304523724062072767703105748317970527612031374030741322892628381919329004154114169535575396358518705219840806674874730743512797136105538938028225677101494564815850077924150511089692153470601711902476715893978360296423364406452883025143666633232241513746568083159812622303375033001913306370316009986297144338685762128136582589997931202122197978736130963670659754350862894954884482100324969854781647460230160042625192871281193560295774190315388539984445497863450180675224432949232510975766755133485188378641480504515367307718031640542431423386809188941138379963663725715022093532782105240411089693554941029997350403823873115719553925107723032796960236022298545019921229442242464309975534320270678596081620952636655587913502727519588988342895808263529538266385403264695470508929345921404131317805094479611430150548655075529248843798269161454392615668160661053862547160742099044835212714986571603473483364734803412729374503776292944858257441160841136946158725440985861250979468563004357510205489451453290120002030207698188305280217174343653456377043872489812083865528552897348999734342808026111079840206538539844036379642950205112279489778075002517450409174518259071765900794853312118821208312410455714255256070595355523505656950789204395386289307606026287826203612426823695859805426122837280636509889604072357333859413125347247478290484143404086420710894296408101164251168222481604788016617021228794986982068555654907231315121489940898439684881466168497442177056326291617080075997840224039637133957371242936774873486318254268275426512495738551220427607915703615954968499483246590030986069683863512785925401798646609377109486741803122203162628287605038088925196595742935334735956641730048648019804938651046342410278639961681849447570713860584804695782379907521722907196439783449686982506141791825794879100993046240584369447161423348128257310940440975808518748603680126871186250490119522473128111666048825143122942495116866294452267565683569289506878941828741441636470474438232977979021828795970859796178306692302381720754316692577094997010608857139336966053855162458943401372669858172383720294407756511003656008244492107720997582174520538192035731763970279743991743033281626060319626556106973479716503350225272061138289307324971324687177056045670782439016995504903868766413231393648139818406940252480028824318777215030844881190448517702441143357837679077020592678703514013854981553864971403533572119489912939344748067682192517970152904422329561039672777023434145156860638302868247506751945483381032252615059400898311205760390952752780471232230525414520721100336600993309503163396388899789274647329700762070501740385367106681200613670644568962446392247607590869420466125064155909142127328239205070522432211898358734965148028669232009740396481741818703600220368510094878771145514674311784995729414410523176682298192072561297875508545953176756314614758631164414528910770409175073699654455102055789959932905556819898943244212153196755143332632706447918863937166058801965074551843375935831858393014144008352929321956863641569467628338947410081129746742837990626077799122205094371071238174336404125520580174078442132536030028354960673787928576895576877851910772337024090602125309981103815169448537021452808690622011070539282524273212773814097503831739306763870951731524732462751676246963685571776410251365925819060265655974788532161176294228539565453477822789418173785754190850394576033893453247496999000773874037358340930520485309242215981714984042828692378814984873362679723116782755441885590318409601509534560670183032501899761796378474597721026512408773372372242852910820568082807026679441258326172025269814978740961679408355855429496107864514056963100183839007288932249267251507032869814141174709252178987492876642308050573600216612286916691899242279401489871176858231404953679397116355523910656938173889034972853634434591682873731262345110002535821082697620838577759015176699758398560895769008695522981842217325449616184477099433338670602586291026367613399173556457086003466856664546099914694494586874439554677196454500733889582960982676107301843279807035244234460802813571683508264442323986247151689182252763739443482846697244878888572200314925428380477728942237663201705155121620272660027941554495551704237012447265430983266912300373688024233095374020231804488394031078202674184982807815895896736098149976958299826475139488676276842297514853557765101469948924676917355728465220590609233768321473037033006587237404041513151441915914227369938694627822216459290347591923105041545431541170623151867876710116442516832212614403002504712407655180972618653469701187626493228338080118776608448930541252812545086596953702400311749013391415300942491837865816842387460986418506784388471861119598292580161914329908295940312673311092029770902781137769789443126835362195622002883655451210387714638510998762993685190687022283943469020906073560526930358808746073607985937571686774742710682458410068327936018182811639821283165567752871425803516801063553750060045557389153002575056325806197271012409675723756555372722708524799741034238940010845625665762064168049688728254511182037130150597264794749930622578768236566560822736785700529229062713751219058910395912505799307819131088310701431726616400635837228452968247671902550948782655079706161687255845571047375963929211945073388527483489330519933620207295385274057535098210644107159344114756649779095675326610433152729803243684643238811665816048529910439431885870457046672654081879573333611470484947156776009622381423619837793189079967419384305583928293006474829254784160026534832782726215334590771055164049635098434497110130572542800605714608898150880740443566659532428609183958664033771541770044917395660126932280996381312253117295159051880746258869028787233812577398300041552758503409939288272760576489382662050802490049211177150766717270158627180389497216595407923616012399929808993135910492829414013330874098186195343714722288997205572354036203797915566823555145169791501178936216447614445755702299803425857479121346931751885193671195648886893608386180522294499981817260591582258091823408501964495898816158087296340193138674033232151527521039091556891114773474430642235579018846301892979884160400565397945409121137691865298933845949484710331615513037407855018820684259722577224349521137392034884630598726515518211990597497647639217892473551488421231915041094781657931033241724177020655932848324867342412049198635767745391939998598944725208535213697316600631844657546418265410637356217560769323407001025983143210270109853048049233398921024407235468592603562251028396326918543226530555543574073949231254767934395360511355994212343116845063012485670586126939415763600341926260119146830753397144029075793771736965696223393193749362063388946005469022857206088496752159148547763079519992331415171039322544541392968582170041293871406182402786354170046201322304255540524747445168636250836259376304091010411331854596883671217635308377338890359106147244949723608355837797455492513152890981786095503639827178492448835006822854606346761151673737121687121729597141590461632149509950768775164863873977376946740725289027825919558082932674746860180829528128281295124468222918051853413858467131932268607955478099114028474906497702743148777778928363302141447074259134009493147410113112320675618725619192955622843008342921971533114013578071021612138569597504166047402168140825015061717996675182535568496560508582097204475307737202199346650761032532359449681049041225115716470141320169386671699951823684154536731596241013723060919598198352678508455522721184236996530328857764706982019563154365100478673546146330653381254385525993454785877661313134252626400523354402759203129549345935510433241701709452584503979916990689555410713910165358068822124737325348923444375471561844472227782257257633813310234710270412988139399481631466079193316371795933965925176917086134877498587213740445837853172489509172923153856533318300880116472903933704258499827236142169938450897500645894232222301126671753270666947626817094934601460847823937984288384744913374733438113284099226121679402376500448554644619554130141292641127827168059404056990856555457332434359029601635904203929244248128327867878288848878840148293205345636946208214573023518868402649933131470077195897801004791817424008264587972735430574437498856165946278830168115095699525007652461764663182661785737345764358424659735694008263049669396784651943645798334548436922102016454549350099808715373606810985666761199752559981706271730969979345955529326920442254464575205812369835247996503548113514151971765991350053706718979397316914974958714671115452558803865364611573636736684494708400876265689346481111181078942426845777917558581041027589514397420954709043970193634423416435752591441771243076044737236662352969840139416172157594954663976012498682917289687462310827365951828163774791642580920352133683975759457297537124006726355362604325757677247560249073053183945189185901439176291049553800064357688270693488218568437171287768098034714527762567339527969730166543353888296403677387300305786960176658248862891362074212160197031224149104101706360043581299061429305628499940296970452766427314201513963204165054828198298849791596067723708131904798398578157092855050223433535701104227982691957859485849648935348076654664139098890283629409823339501535528576334043925087098462976480846041422738264792296226327991097782833758258842810356730058102925211187837329323892956798549729059086200379986077254275728112898103476172724206717916941338603953416004692767705313882508804883830794202181071646120280576905851874641865697030896995070098846513671219074907789297773530702197246767516443291717380404846914974802356870624428841867165917618596000797566932365374785254358468095267003355645677759730445913628021880139479906687582065149175320761642345847554700247486247654427517146384440360040420986124552369540502236167690643598178858392509292933656576167037127888128283887758729189502885520249766445442567382858218520702883763425226536628962744415757015987834060585744781240338784796114852679447387755543683345528958601216208033502994843588300937208988243607704030611796189561769657576524198745923664368482179752390624396887195598422081290472192327011884722608605915185880149089086048533887881841804305298762406960948804529907958508387851271317513966636723966260295705440841611896148423230186347365485568528666349403570794645468798158301925643272892478481618331495850042100190491226741252096350481388959654676716572077559628952691714211346995536028713803336402193300917885817922872633928217379064122592368940913482461919894457859409237219077367750919433831097900369768788349966772102354456179150959988245730560021540196504261429943549328505917737128198400601186836252441007426852865872437541642365392674816255955637222701173310456650206720882566842796364725267036470004662891856617980186401323792629038942187048744745238685292744966845580029130971009820538485983841784588181733877898226061350813804899730542013828813507091947731369685862689613566027719882495873562564377758271353891857415431632786092257610657036668886882382616495384020740112597591525597566366206524805446428122555938609049763732171720335089585477276121838556949466572470056820500958960077578037826404259755685022364004034020282880850089000834494848564214296890923509666163481482367442798257441212569946647956741446173184811039686455213960636575270331100561576568123761248158539977915617361761795214035940153469746481088751215030337732621486087419800251979825590442090254602603901596564660530749727181704306997643950513365697098032645496367411755941928512718146486923219578694941877201608004979253276176779322735506650855604183777388685785409193023230198438892903048049396346969596735020702538508403541948477278625768313590727563285354090064870546294112344893815446809488254259876836567077696002105982617778890654207096714264296362927206542877929369283327035619911587370810982813837995473214270496301842467016184580358750275007782917082932858033389164914765557524540636874714918909084673641319001754990103344313219022007240857943221728402586835092096368036648688862597850978650504842683753865324350599946190195108463605964926176400277944799988881080185777407347566605781459981130008879266531037217902906219084074655489659254497043379386599246277402939251867729753023497715650409117929955075083189158534015706470313116060174113346148325127267511689556201945007381510333576993885329743943134120253163704269391359511691150167328851697134319133481230969728145714921556649051188995441929331725709021499735896942810019290402660145113473504439185449927002979733746384287864639912805326937098555534277622050711824337317476258272985933308229106608144369040481186582343573272496962697314184504009666911467154496204533812471247689853931395207914422740350397560610349373684115237380339051077544357947579553189750316655633028692320598645437056104042880519773104201799289458646729943497670867594348830701182972546578437168917270805254151513381422088876928237543978248326453369509325326262426549740940924091833149566658145393955198584893057877803876782598527414338960386857331912078188293701177379245819595518684771733419484097006348419405233777512726292767124699355686807291236990512228791937743384150167979654834832326009850746927007851471308880345508618935243787718216189515755671973308226526136599790988691531308337585388601587437255165332896275798275417912411738449157660562070479603504101296904217330897717591093944325587449998335710326195046186414661933620953065962137955861985709463995265252536084317135255771652224448991110703270889706117367651080147843524910599433379245557402147062292400182365819893794160173865535203803453931576998978259802161449562488508724248994690484557482728948521197575796515241511987448231057288808253675516781125325585839766853338470533669573537833407529639810926330286326326629614904123823229733284074720217305267423603032043786099820643773080633862909179698363311906212864751923284730508365916854052922127790388570968324190307464971848020273046896666332213619137608884308048670269286781227000642348635949771947603737955908341314733763744475103406280830176281080132126468338182904604704754611745982527395484618689625736693214239862876138917148012388532374034000213436442709914070886015529228443668951090532154663885622493991772803233483892246130527455688135671137473476869942437145597207811911540176928874256727754454557446848764498021408619445127612837406184491600132812390252721194102960141977514346535603372187976212513075336476567128762720655571441913974119198022200686786195903623567766310201386649721179766246514646089386560757140593440127354421887441598862875864904685734733745234034796962335147306571866370491819284640704071748061632315190850331253183897545320950065692525389601573694910056608264576404563418733347296519958859304559867926363291359647510652070452584892554625212690596344134595542871566819755040837406804195251657704521983759563494556214437168861894998458672869584108791787328969707764047541866742053460873187024480508797143050274079455151654392490414563051636059172213356690209424695755340209545123354239168904825639809792606755988501721480038616382792372273535744092145472201598119611537036028404541174920362129922290151679776065617916484821777328534728036783146792979908364064871816101743347170939702685395604394952269644511934798708651102025041318025667311526605418141855904783350877944485234026660662548359496058782225201627561955796470992779506533921618568712235724228211852794754971850593969661008631827576647298056943448299485080021240522907295704332273063679510325814989786697760059935253770677655411937168871283556596808604337034439591318920120001816178682013886843288144915849887463782823659999835388213526250434600580934426439256866195497265469558348424559631322282838664408263320508868717609690697621417253274092899858504578606692580913021021449088589837470934477494428894123371195242324880677921984077712201890340758214349312140482909569637824173431393732258245336956733810606292356823293303709381246793214406352752280349019245069672585743432422206572166491994533268695834318384936960870888709618295749980341968029729635559494372310661370362477897264046795188329644949213724253578251478583419769969063133528462364474265920140219872119245036809043817263279078861640246088785286296319711199706770564409921598424028286828575429698695391696785845967289557427063174193301717514972514748952811137930450667999502529504057017948116814743056464602431127852577390706404399515452608797687053060859065597973671005802920717393515773473072504286468941331309755246159165413118542681072091039173630642324829589802434416353111269795904364615174349354567931707613683787814853818040605279366490986830765885852344585209741528820262892721843450987995384960090764585015904431346870233214253974553689488799227953436280800590501258961108488765476842023449919823801874097170466436523670359328258314082257005602618332819252622805520658617920038322558949505700937173918893769725807995496834949415176116690182446713096377438578311318723481294389191176814760255192478501670423206715632309104704585056959000746212492272278320026198052933844163139914275433068230740670919449369740667043753523801469521590354335292583396627723520154613588434236863117915440152152756736697769234018335788805077611358678087962876431360681567973348848641865586126554688396404293518502230235207779889277416378133994432594598006424880046991254280034064015748522888685026184214322927909789179465410896044518347272046279168855185480026763470879012981388960600396877555996558340138244830615320129544632191650830098443573123256367333462235353316622795712747907331634004160301646282885602851235325733568256704829222458044933469888870396620300828755578106687773833635181446682892645497697916397482198041978870319062395911225736098288417377158543884548171904475739887670206615258663678263610385888853586027502249269844239503411403811888524072566107729932374306789085509510512849115825838642530050066726898678893898967146506776973385276856841667613277517753163526798500392604333428804792541492748973512061103140460494465419430806434321719110254880881238971414523370547627793239309687478020487000745280575170298934495691185168786941890245971039112142872324966883078373407585071367177258079335770513863129220098468351278044823390019884820365661665242956760697243449803180006431996563880208364351751771581297215857484672227402022818041290174604430728379247978004682280874170398842418405357800754817767473499318169620298623919828742768857045680376869864791455517683594472032815461832000917590826690480872799025210459306108123831756018140361747185506056861116867594006228444915970184744000538354754230899792079416179634986338977200825209557850347968699978237467332896165434777600050814655884708929950248588786976591484815550290195608451276865483840096767561319228856724321538753578463877660491404341838602827297049786118436704341071541983911377284992569900743134537647684145244770486845457433021932137807991350922608914906071237115719815152613565598722445222243650566631114178402515510156969687163913700448238880600472114203760517906991966064013589900517288664183292558779592563589453853148431872931987148924932681452396722553499932701521453125616078007715734224746871622834650839435211548210943386015397382801957999362338832831241666144529494022142879558908955496905288473927880801491915447631904940954122476305469019634972534461348295192067954392691910164867314914281779016229576579075334480932082608836727318643059792245081140384524929601481644764773109404128166652710397939217695303729858483857445799542669655793587031116611333764628027697205754121456374485272211684815597410595505597097993373575679434963662747807656000437987558277745658357089543297030190817840945776963533697171341059487203460512464314932255974980650354294384395111682410813248476727286411020361285691278816082902203801163856207429073083252601162857685497360079912814178016034319812548934043583624378454747263020301218918239772344752232636557352896477287594386648847970442199892941796779565161581779497248084184471731540152952540530743016423464744611917082021591303692943039585492030198029321793774236857155199438347120983527410213064604949066441425639892806424478037028424402914193173573397622013462029025699091478389152749197837592869312293947618061467154827889102057092859774918449938184522144636771802026727862127258550128484281187042765593718049796146482814249824183115985708453153304750318965416097993168954719796542233140448772135087731023117634925907822043770970459721067523607973722507900779744031103453033675814323219367808954137939547152561056583922894659476358691956484562549533564097282919700435835748313929882912008674484536253302094547908742048000568188807205592419702017637650242629204381884297130660601555696635412029948474923786438661261123395356774806000945556290755361138881602255495535913539285293667536525370082722111303912097183913047777048314186066911305814663399155405208734584957306389806590598064855315742945063007700340514986473887683550808494848764020795508529078103964212149795371542830992129534716325535709158930237748250502617774795158566328685174460080987036663176883328100384922250945725911446139672568686817617740812924894747997076180997476114846493189400626638945138200917119746005898155633630546124174586666348883259944292420249574843907880027394037872461840609145870652151451689031001976884494799252162617597773509088213172391010659232531330142857617295505417144645167131445938606753306752938538951117294360154699396475645843249638018379408904929078634576555104372203993138642326545166406325781616998370403872312703696085567321165851421201474782876575508665756210128259347151800030340823957185045789261288878744472843731358147236585231106247627517407461732552958359958761422493544037479876048737261723063028427882506043029189647566457888560852855459836547017625557568223688809241648968367320904818029548025032549317860320827565639568339110685661206793265305212191328838607074432778070041922211409573944632282400104697509838617303078843782769972596318953373305322676555341741747484128266580726795066735013237572329039239070415925228354014141105213863328770084244363069934267586791982382913871505836604503409724611356118844523886608789430710433318068838654267709043743871266430889173264518205780677125848552000634785355902487604495713347107548940341877611074273492759665002359315223362054930451601887923529953853759886051159864308385445476870245339107232900380880713662210053840103686111117716786681652697017536645714988935634099105233268701863127266252079423454569225098535340299274665025056280727324585400645654271707266502177987064087881247770976665052130721265535556169845318152229711171212463384672275805405171969272753127577531557191948703988461578405576118818709150709774833326001910864230590965199780875151495469479024295041738660179804951461360975568673344538805530664306190169469510013829768938440466629874003923577190422846351575642506940573845055346838556466562641394439064759292766574712843768001369167305210913729980258035737929184424870797739117223228917605489124458226786902930618409401184059817470453245921930861572730418824379575207982917369042895188523545718316389574328997382384486420830440565016518338767439486441587712612920351800614152459838742046202465124926329075946238531511487492370641278374522003379957550759526899081404542181334938551226576237864773412202841527664821359632832889968027172084127863788983457913089396997178106152175390358769501252727403876072702051491781022721064330037465767663367325280374188357180313022793719633793005299376638346173052593303712813878447056998743249956114892767149080907180174295045895116566920916251154219328779007199552835771450685463339443379316071108179670055341219516199555145519268457504327998208403489081691655283211586658806987496986574420049504522817796491360476248851130066785141637605520947318894753965829212643275513558938009571227334776146761763880449202357950663438998531929453257831475235085703141012711765224298593896650128991319755251207039423386110882926455593380200340089874993939113546503247138278702419033039203021341086633956780770896365056068424832953192792642397770213602960662588793163806277107726105120378545037788430953388158168765312916563739988229199826708895859896975161138454286463609377905776434052378252837492579792784310866352226438008245822101399095155881071486030023796297072109910595325578282095525052673573732001562367753025696484212747598043767353735368631787268647249115380877012541312036910439225686607569261061541128369046694884552123845716187341418150228615441060293844102290411917178872475211579748795687019677439881586810311352044371694267030247257566871321467601026775582488742582914632887825536134111789769474868585400820135425084097079256962988929885192496231881467397393806242966876300668603341227772327608176397142770049646865673725808593391572852371625114374595417974155152945468765785124856471630627099845707727844512988356600260451148359135251576127350419306247945301300094778856836136091126959967549357344680887795160120157796414160744827287267521550721371149671530663289057377576514535829085803823155656330925567875181754154132367506041456235490047371844160884007429453408811363672776214220966940173390813793640427773708444825542187799666460548815966434407231820206591571157460734527334080828243495450443010643194408640429131783101451256005540320439881495822200886062455717463689541372110880724820485962326844369825683158645311488824685937134778283007617528350430740220700498387816926588108721634546235309377124202620144659877477740658719604475576103858473266309024302278330097520748080005117837214979489310167430981889213188124631376647541272192454387806290247596340000714570513338964389406699268169738617736154675252655935049971889001060619150666851953466669133569205988595503669398038503777994520770150544261524854612450740354391350257674845625327044500471241033591076810178833533465956543064699053779432956046535362737324946762418744535877384763522949191487059692433875309940680829558060825382066928631233173252028760561448159957191921407678135607505390939395283715595117331148771066111862390655785097328880449003070466496471105479149348240404104796166422793632769069126118386325893757163496135989366253642510773488887670572680727002969820172328748772358905534049442251018380631767258855350599087070817952515091721744384370744132779162162455021789272643541834602814787026111296346015115319323363830726277961726122281542519544763987064455683899451453060683678211492147400546508087437973065642491779796899790732989543900660029128630374811362197880872388511471577530477724281796737997972872083788460243085380138810315404311468619655317420273367585908902385248482946275276333177917797963062958831149884404802700372741610293400832199234098711172413902048789647812823012694657104625931222540192529506324666083859751825794612854166268907088140116033554151345147284888323539581984405852079858381353790488311016660768012294986937043480969822956175888952841963366812609862376226462551950405876455539081462095604471619436463271866651585471671050490554833732935930534991151125739941949699254156335793946536459965244547980539797089732251981708122485723355642170086783229275841358896166257505250022875728694124479405283238283754252982620003761673114489951517040803846176644470279297266079624353447771148880695047867656794192772075402812318410737317331733171359259726059581720942507271914990692481397989201346660880417587953362110077730306542990754127302780408988351073001151471214638366612157954580862720671241919525755474993642452506609722919678034654716954429270901621499197447754418380169396253247748223045543117017589815494524735066613795147466041758441421894630778818586019044513397170843433764946317005703216396162713021867978406308554058092505057563177431889562289047030342252495443900704015535038097355767984724787586314063612559703184038037926998858332624626720864641878125502950703386235290180214736738454992577438814137875731493527433577407857237029947272143537917252466986284398461433739319047602507598053263167342382188147195770733605338633048082311399929052599656925330003884577366201241469457118078725244146051814703416492227792135653850376312657095551614454020407738871448983242761365960004561463700432602481366693326036402221814129295292848397133797434166744201633668499996804323708572830909341419039379932756117697899987091932791223287213620048502339963432203632899321842619605362458034342584024240283641747727303836465226706383821964377697953274959522399931146170530408919019633101510523445544368692464686329900724699224095399106147417108709458591573331723745118036923268906291196823180641289339297616862878756763182110500067985463619193472521378888966186956052991328128134273964723119703021032528767992779692720097939130403738423216942465442291252524077952075701564838556943382758156713531126787541851145524988999300182214460294494047273457929156685976152928903997469551221536608159069272393370627114475354497793639298117934552680092325927014103167158116222579695248731445244975596018663071723205492894329128519787217992533802770963079384583276418406121947213122656939808487225034677634048281227561797445028806455926852341697447021473870535850885684274547430062313518101479181704072758671719114123203740289464339718504637499181576662518408637559838614908773909116285963176005514911470258517734145495245822907865217798611474504304312984065946290103947860015252173740230703771462156530530310285588795019577198428801327851124893824215692018606408952096337162492805105462818463348935406593620716026178994501336415970288949244822300261889065829282328843338015542647822328998782980478957665366814413384934545296829564204264007923470800939568421241329865895232241980062853683940600061364322042188158871031517106772426125506209185162662393031588884180983299360048773477635505314963406618789774857188294653762177710628050385681295711064432450501770106156421596912942141620497088134714215834252093589539688009767493425585483950066746955899493943548679435480829566594901614676114727336988866227480914341476574476390026765415023602048214862793686887902231861665000155729576192540108682842870793836107961335429002361980405085688711861359959018606837023736398677074880089452349899408739415580588189418080897055903861875685873360708905804479269238561440669666534646158061841242558398035793164532672048238140514718986479596070592592709632441291863042743586198597265604537438093040538544916142840679236028871117244657328197892058757347933835403517932132042679440810934450670059408711013237115836624008805137920366415029304588628308259731393298938750197421040145183587391659230399854297406696729003068984356102352218641522480240311385080324281894521293335817181683933963451155453371183244280963277402978599485136663872027210244777600199949090325576895838160842475506730321899789809290436660942437914973961865647135295687865555915530082874689472316684748614184198002811713327219210743012981585661860793414423953987289886889331328616157219529689781815401163464652412887755310239844026530464631520706163698954546593664323153380681754500439056358630455679919115638396342693303384473692952324871830135712389963738658646171654936803133579142218875050343669670413823874596209529776764520434052381311162672008656821536852555841886898062692210434047384539375814883815252431318204670749231313183130481653509927543614899776896726811188960143628426312282658683584468054109125101334699728898845005723635718446668282543277973383527789598254255985861335329843100375549821877111940565162664831698872610591591140801569941873848847952813624143507497094755419680949228559195253051769938140419029449573690586064643480943344044087882377454501063684180040091942446552194979445861421502390674524859610725358546051383713384957423318077319508032722651572674411619282299327739978978480555806602587592097587865499817864470450763083042660553706938442554997361804825153920408562579700708165087158100904527026526241843942078481915496747768528342058725469768711154134498463505556615889266071920530439352535741062261272446253981865575925199375314823830028243472094575364539040949640418117502191521020765570292673022922292997921944537800042387967252639840202351128617742800980665999998250146661152765932088335070398889302897452804143571170365301776564590593750865289886644409364736944301633286815598055897144094852680778054628651085954484980484282310881620323813628669689179676477321884292359913319802956520724239268506487282294967112195834282855259139741223208214312194279182046126315410639194921582285644753786769297417087254445224627302182957829462843998549604781004671715984051753726753129705095299463046953797674351759664807599312619874068536224117263798895904806366797410143285856040998607991557916477167708125040639164110444829894877080702403430071727654791525580214661452842199289491506238179347675125435128460732110829272106179188973277639503583156799058100561974165103382754923226210960561464174321203595074046964242327730124390108724327721029010783711080723732703164552651005536826804900504320963737217583425217281345955908046141074151720956358937969444150833417448806621886713304817860434135333260049538168083494750263638688866155830218005226835473297359724615755578876853705084153412764166047443143378078099071518517501130611400235454582187284633014840072037068966579145365095010038781600420882740249554733370694575137657067447683003719380334272081519220237643374293072978363326943652214342226193269930234022991115786993200751642693434965177098058695643205721553953261107138628279638442951034382792557602706707062836934055734350746996289849042329004800750935916209396396482885574278149922388564664245364253942264011735323415010869220677224622532359343630757378096068622417490873222752464557861067755107564604391358541318194435365009019842506551865896171672449622384272237748436842532190790471485468856598277205364338353890414239547414712144271902235516969437154992539383039678320870933625897267459115486469855243421310820052847326824027262800927485921730931345501794356948700238673648012429853674319604252195684519911843515237342562252348928090377525167294198633976915845970570512322487328228812455177532440252846613753085831739677927582894656089010180663198099699574975635279392225302665319994703126854527929519028731822900088383932895580667942580905882092931755707406689978325594128841531757954035961092392385712747784780141302544824790135244376119753336436919910046043868256054031276820562559372227515349860066122140773553525071791721129882720338992645037232892859189165035206081892780320164252453392932801981897794708056084676427804530389672850449318973440449941733208478942935070293423811469324985389625828537252071210221907295069740157217728886346683030314326916945900368750546197206170400315794024001651125832640915023202341246136063152226971797712246445393746808457656885148891411185062334083685548955488701195658333492404685657822254369864868396832240430974842457278983261461128759267926940912714638932055090646821957087942254062330834816553375608470557263758270018646630884140969229769570091753157543709486341577322467746314716713733296998454645190379907953712678821147232055620600621261830086972293846500906524834833009946831365003079913585808671848022958210388093917810599065934960258330062413925406641927238859655144649186677300460885559748886426562260056499616245046077175503070238008716755966745601545286612280448123167943671102729480264282034749718356056812346611921785474898053453245286090984082286264048537212109376404955059049364914201307572601538267317953188149355022679002309584964648315316423449332203509860268967685944268002073425244602639886451953351910809805887918119045919827945847730038214219624580082156800812066676757484872392463615895324674163641190865444795334232302014707921810289902561303580531513383958946241761590149590848153168126144169839704631777840728776594316215752362231351978949334045860227001938654460750108026911968879085363305551417952308588911022545689904132328109983533418565323008412384977636043297266500330033549663070629652459274639926928909359131351442713956356616667905567094233552178094452014459267752728638650304144077601538920692981452264232394353408795738883400960140673157765405076186740626764468762371940092863900998046192812735748087079940508807441394379690314349126010794936626038235109903026833374057436627997988365458218979910568783152866426459414692618969006607251994197661651018309537904308107068209089634349524023803806815601519149529975594638364191480548908639430176883644117740582557895260566283196141978220888259730129104823655746265943094476207801978346520669144460924645470595515944439709632649190369018487911872705616654706806098474381780765476715252077635212619517993838058334409592223741895062258066144203921564527284096525394096420942597537603830496750216795710450863863521499047610208470423451755534850116375799442929212760975421340948064632773565443912149807460322347382892483017832128555203633572916561003065301175239426301091542041302572422012720218704587219787341326448100542437032087889749569951280793439935868955847481777535133679233406098330483407111393670839538360553531177496166724831643585227200573541062918267555720292877018831987427277291241803475237094696807665961325779533555240542030685865698584065813939774162335402439644549084461766393987011088228875456791068189366580278689627275637841057743032439413293058078541407810411160578898853147590701061260187836359736870485116711525235704728616902727909787860636346704244466466455825113345130213103779254910201178573279708281769971810971431168573478941858695143797444093412570904568002756091603093446354292599048278125860352092981925439884376574635866398014244435879265656421008401609180198795879875660993305634521084732103545581679898159416498074991669403842374173002791095127203423199283842000253031439270418303509437863817200568643261680820826250358214599992715885561207788699677718624448108806793096045051948275775415256789038226430375810466560285716927912884235583225259616808648107442054486858381273199399961038543645410338811810815725721137845824966368790757144168716630023159924109195853292383287796576790708553314505966841791405609203086636844666306735597683751166674748848504093246437582425381833954628820790887087563846864180873442006610056859343452459013912719851864813178734174111072073450018761139679513581037318626802324669383174847721884472928013096747843624863099981277658668100945797416548601904112174753560544764596640116621165963124056647106942845125520062834141447081713389516189209852940392412811593418254224364067648791743058418984141260349406445755957497965139028783763848159732595902369751798372315603692356842292055374063291521450779028278898751518390218575628719640042082665224425908982930801282923573075212509150725974154025879489763247887073030478862897498345313829249625888686104528544955841853863985017457873160848545764357335075908557814873442288974425684592310580186698381952464679423531737643617997992538055264086457030415537616424108563080000924353374912294265669273725615508850910593521909326615757385933769617507121090280652051998234870615227199718869153971514239598843076294362874569736294534825251325230843571074839255376906801703645258267663704259935752981242366636543785760596331823597224676022002675074686572412610123388930621017935476015591161507659260024044106738123260342278382307823394630172104884072934515999066855573893715806224865374337153445049182060672694122629864324760955674221616470643294463120905485988282045488120905810135965780513129006599373269176854365276841989742232652030531953767815069225188221523710239581923721957714139176455307138777368618660691280142113566825458284413469708259740715298545615617623032164227415899813808134353730752868005918132535637289620337368797969697167020347086891282343065051468787084698910304242100172596632152203243570690299535729022952648627922954530885351390605034244155042897723169923177148642411390993068213151486547522012938324936578759453654108814752935599520473744931847760620205287367812612938521288034224178657194803815324770081806398940600053027515429779823595626292205757875498866504084243237026655117159498697426964702560633490786734301874018773631510317005233067266276950167115726507636070908588968950884104045457560839505883026525075499957120882359175933380872313624171898548444231727782558248520996470552622696849222422264838582457323106418123667119645974189758979548435565109438512835819105726942110217523565338594653008443401432277600494074687856095260821540565687320797999494011041979184608609529486682695023200682530414768872040104222822926204593464403639495813126491276002395937868241267966643311276730360653684177890762466303947403808259524534597677820700764693164379356771849626659421940369126967208887500597658732588987290422235436867285885097425660971966035395917309403097869492701801497246273662029900983155655828192026340846674135557861958701499215558134999953714027774351548598128366460192141805010884626532037340216102143629359584130998466688355676624143107074640532058166306086561590187465713899807627167498610688646748623788860746798718354489173138937317520428933247953344341842281530228174511035301643783119180028666449461641094303632000838984534918748690854704513199258177962946733244503822631610004831584072092442282036889777955749403946834696725761668334209901118624286456341009896953783427306741757354407436955161622874046759293350005480829691436967985230129479852965611156269932495213440153260278003673787445660448446392062427056767085916668527539858899218675555271655791688037355973583168633967407121923316132146066533426208407735321488147739743115249177067924558008049310605517906603850533234654883043391314496927352725253276774307389368546933793096584471319886427567980816479592129020583662389782513995684202868206673932098750978633425048503694359534656249042708645445491783543270762225962272197880201250600987150158537504500178499250316583218428533218738873472300701334294942917742785620497283930705030023068267963708736995348489040085087196438792759880047978888624095254450334752703519787904010958793375721992437257224135139969741322979601152897893949414074126654973332468948107964841077673617904770329563133313400724225894456803570030354650996323611879213438215357491897553582314170075475274051353202253461339109335090891150596788661179418781949954333069734517700668931266795455560285212244211334805671212425318024263644715998870109346458660917818300382339386799595615984080207572715523877716374130432570231315854596555435265813255927634507324196645463959319795009276506244818662644246576752344127524815792650588789218107024647166232112526004167319952842040743395587096654044507846044928663721656491587616595213192839535440072995061794727752682128532927168960610974599850249755406965679964389135075421953944577651536940208887515943853736246760646185568153322399765597813398276024583470362047180982956384216698881425492001702098909933542369992436639117427999264266893698511556008624594197186773591105814806787537894452088124521469978673288015389295769493440970309046523655466497420884494428844744648565990315079964484179144851004229953076742659907543477340831215939700500675352187414210292616855585613201240519692168075366639211489870463664837116102959928018894358738412722565999621845611503011521331045281845107849274413331207529019209891689293661223945859941974208739527322859575968095146752507950303391248560777701608318605726198776184044093691860782779774029131023638494245664998541994351790485401032502000936715947363747354459857264354053855281965259021686962976050816975523673880611640007282268718669023970206277963059770207504576158199040188897261898335509652243175328446455998034084287431245213020082797609871203674248495672450804585682666703394305333655173175617771245069255175072020851129744965479878235224302138181507693422166570596811591619530654683961320805435965174673424263112606071119383784481277451538649728529680210102780791543162187420804469011956016124500248866281252136692530439608632397496592041773725489284666947064648516597417824464216983781096594289575182406003276912731216049934495402936201601225052834665641788470069963481845543232970043786567543625634952996340290040472180390832046689649053682248087824381222548130597994296021653560396528579462031060623593586174487713121527824448750151287590004636840180239739783674937760360150399959718337801987238193288805571055846509801096131175541752931547473769088059226711224328005858040677142318109496677318112002433715499261203229671007519146921283505441694362946420180735588913243667656291914562926977017175344560391156690733491276211463426922035774847678720969802535674025817218141812391650523481045906784575906926191817267364913847643946413430643235272784855885419666156848170581858743094566439489430401589216525828002605958209182035603599055374064874352862590744219079715384816312077303998204997607160221114272216955379382169534942250929089630150790446606781238542959759680319777471660733510827319144672716959277386845258213491032713141930585450174849005034486645501535935598898877395299327964965798944897335523714164263724861733919960795599357234479598580311420454968564911086877621577989396129944229124896869985470195060754312463211529183580074905492379887053912091864937017031518568500753839268219411815385612623983125437696737554533403523778566281563156364663052132135938426876888508880441360764349318770089033331327163981375465937082886809167799487204838699967881245267213417560337162949675432534955814730429926663595135897750768477374179501763784157401869162668916021233305594084135912361947407062403323758273446777671338678490063621292691390955189146770915091553501862010846770071339281596990047455907014293941514912474158292653786893344697716124484301317001916369079959122924460137169861855637539201170415529495093915306143933252659481994621822144213398300623875182489619304426147948661254350348449334342066871456262334420430902397108512227140352444685547647379974300631098226000867705321233782031126335348442966700640278074709673103094130723960623728055053143224033166787783229611641863519467006888923291009577757519035499770719945255961269071103690413641768723088445899290281340956706236138657420356747842389308070343675166858181231735833118872434805443020007177003888610379749364113557658193323974149486262151552530357434433274632386784669443314755115691210600345562306286299012111167876813736851855159780379679470463173503750900561813298822874147413808252270691433656929401146530367164154676758554753437190923083374603239924051015073673805227677960587344090709407639631628044640529833514190268897921387377202989236542644863822049435100111429578652232061375309129736636165766246803098420138769720786407214637924170221614075247198644046942319480819205417093228606471109726305948512626673412826582076943935092583315654446204944642189897342768856647515508431951099888045012016189845133973164923355562610861530376543249597955676069362596850698281895831516632332603657241335014941443987597074157185881711693343687023813225093843285426775669791359422146484102146051152072923632910064078068294622968587422582862976227359668500225640139169424091618181789581041936824433824755298615939755092108528489394029729460194002539728631619872113079557864589510753413069609993344636326467580351521845575397957464186233107312740772166934989151339379435737193877271629433394255247320754792062571605993101283491992034994147561391384077954864173958983597080388230691537182573839008077459877101365826916692239387720294253190029557213730510112378862625145293023386431054200689560255868750333597155984784890155191894769894798226667889542575962712077925710733212017943920371742096312947837717892132126879091792784547512188648204248328848500606956465376323148854817029543913811631420511581168390353000421854161168626671506322513725691109074636815683689020935128544780590237389633296335167750369123596429683787798237150735525130242928093000632031098019496763474296973524726670923398549090555059445162180767108406606772359960218064385930142769193750449610420439367971583139881527901855223291368242609852610082495728015638023525537239183107785815610487726253401269703427303206419326403624983750119535978136414708615174388305237614296662864533176890863490794097237812109706657264292013898704801284797543737475734741720774892802322982714844852405065992621607153447456924074315339159435048737284229511775969922124858797609518730566658222456875395034269522669535689697649581960561857635220050897216825616590053835484558758038339194319306804428136500557593228163979186829569720840118223582305940449751019522029035554884732188423547965576189292807245587542415140598528837805332590123329854177099456624860334495360792505420878712167907245812488322636098878999006979293582627104705476134012489780091102479662281569545874387287097103264198743880942740939674414360220826800815634699706480280162965582139301755178673449203032969758644662904984604622077918087182197906762567174771991427069828133625449908428186329672101847582397792703384902325228005809829315402478622452940514865462091306500860583520518848708675775633540406407729212447817675132397629657752188504859077878950106176565368926421299906674310143137775886115032761858033222876744901780589002671997526343404496099843597976113746654091799960665795921911010821689932023047593842402111699965252920390675031222188428387500753785179495268897048440026487119092748683137212024375735449999466385068114898907802757951802839818958442637751076282029274389199773300667847194099778947370958678865484761824353953837245444642051634571624098737045740490320025009782214221636586749094517490826562302780276513810242615497315999468233219768787308270354993642403540087017675077851653632510824964481938628419262169412686969710252529264692656027563254631210164594945374034798992700792500562106445249703508570169296923627393963626350315458158736014283263312129937367058095936865150159098267726271981848449551692364535281139631334891363180589988380993350417171620404038258271043884919478778583017726298387482245728207318434966679270151868499040349634979669977274709053076925044799388860506326982078974075765696588273095885567468357684198687890984907731174672650170998481609211119399289864880682913480287520845373134628857366619306243584636863590314140273328089511676914635519393205314494169394157114239499454876699370624252256724183342043990330094185522382321673190501008858208051240953759921578250542335847663186342097798375975297067878852605764078932401072718228199307131091026320234216576362908026115014285286031394731876676999158716428461389503938808121987171821299272032370405629329263685649211762422022871841443373984108101168422279053900424926345807334751077360453125768200474592025355505435753625416245449878264055580235895425323703834595706655973040699133964381750471616803036024028694017673016112728698760489044564936583293533044711732926669099509770488186316115102424137321056149929091792420796983370483175369137255212993841461354629381173160491638304415768224497202164951605051221467836054643777222756917829422010398762967239329910944534590891951953772133242601014102252117983377139094930256195031527504047569462164261305808934943539231886159069587664613271851822898457097644538556209942077818570750979455995355846949780126828283980252109991584694916932666369441883346294262055929504252282053904572981520946565832998674200821680665988955005750876277823906391732125760341884477542126248610767820604885329233289691508795086612933122871585223372219388362998710147315888396893074873649028979526390824792674752395008265133929915732630725684805347090815288425408738014280846465577463383500555356626995948398133565512131100403339644080488029181362443389239471664382183873561287438348838247059788543657730684696133120918995761518102099794904168375186039808256692663783373602958061608546682550294315530364976142312010689623315718046150325471681885337611881990027990034084248326071362430179554766459172988547088313993455226751149750177100915187222317402509594876813113543498539393355983087008361203250547060110602479625782632852593991145634616591390192756784712971391932449997556142498626252942564242266004390285957111364774106238504967990129680195078761964819996970333066980150314903455714746918045354937695483248363599295914759272153300551573535436694898857344563095512921116398908042842210991703066568117103256423544009742925204337017018968392530283538656638343688934387295250942548614482015110962898814997417649301257817794994670007156924896152978404664194947516880552156433610304777933425554566467267652816115089397788682047118513132988657851671641355683343319765405947011074188405575789337529478219568841750570914770657638694497071890284227107654351858607905448839286252120802147596428222477973399976789010926784937205116828864054908864263442402844273102788798953137722976710488220375968850894093137528266125283599436459698074615903768210484733336673059455234260620897979095037727319192916561733161049554935482666758076152093492005889064445238899946803986834665670573272904336886240224039894847641017786547507506378202572585134811406505054169069702611388767540282325560178026398165966228777710869566707096907587095037179444541721918905579333634113588516544156358171262505382838414294628236499428765333626844771456405197122997068632084502684230731798284048685225809933071864756429880264308336411000413356902040864756535930689125478420436295483855854649548371236001919159996584904133539936869835994225437703230328938249107976745716401942163025926062955805435065574699985463657192361621447561913831554432071126604898219164988729623730834624123588244363627731619960787850076581708643095879105780883363964000267132646083307517046073813957725596800552719576078713485549825873616244397049668487489598081633614380754084791355254293132519642367397506292597503963581345934487176373521840031979046681422929878086600069109516213116725920293317490378169880415842586305379755362859501298773339608242074172242408668737832273249169004448409080277364007568475805465336778272560983596196457749626972918597646985401684667965793146674131162718344451108668039878602276949579398136792913292294316517153212453296570991317018707003908061690216235073236674370431073985351894001535769166889312515761295124687770347261384229394975485531037946983449252186566261781571823599688730982185826526715795467684358978507236618937475044907505098081283993026844447770505855441675384632979095053884376903502369501718726790923228876157297036511039440061229844664488262789215737437845205597358327515815785774436047228670733407528376527540617181692644404056993080314701750079713275184021342999103078043991793037262221220021340968174343101176938734567606258855760141242381292218695242145810219219405121320063399522863193828731883860502690572249780685242373539005116637096411591627513379481213571492530423029889281570424468928620458293368092336418965807296955960699961894817421377831791167672797378441745940725723331038262784916285053779802807357433526936035436640687574331547302119653199740867037991529707085341579132240850869555460071316018818762560952201858232041600442949176577886431998760954132601256189947640076024385049048145718447135266754393673948264975567157219243378304262051762595688674735803274192286413799167948330098253799110308715767405193498829491293977971128972681161128387103457445687240851118489784279468737346894943559630078252699155637200208560727443872291752503119279901193451444664570006238496393377847049929743469638901884609219178674000328218235502024902201202700203515660243109713174000671858568960183580657178818730344851255964153756683489086962787313386020053768766268884735541256937697700044358906612964070280540912069142560717636566562987997259921687080916575680790795149636904281477551358570579062227324907629076183260207261900594589648884923503892414715642787771504406641428727726182792259391560962210386792511021038603220794286692687735713824338172294313776782146762588707587195462181178893035709491848870264426579230606235012017825456388150130000461544661736727033439158352346266251204254714404523476402907065015763871948794234955278052946648173004666214544249958009595479874760037023038829726289311035796388029704472704402726649867089514114978109067150019246615190492948670210799146037472106915600700493406177265644877346392276208037535992739948440463341340148740148833933353030721034858413227843793267019829433179273289131510449390000998832105362749109456120184805036800176961115138760560058454357453827647676143769701531989297647730954461373351092707229782356362909419218670789300151199420277431780192750358158264617793459341242473088671771684187236347561869715067365296795002316399524326265256156536623869913322030889946660549116080308172074152670605942183434942904707485194545212603611738532870561837240448132019678572541029902590488313347877785061054328759919444946846594071212369552172325137673377377133128610717187923628941263853996180484875720197661034163642994867729335916914009954757030547046178717663916939166741815888458263307402687319389023877682077088662457250554851837038693638246679493665831088383404234662352185273650100733174608594557574668995500416306316698747016933893617708110900316802275164596295627780011388024741937300565097059122348437058407024721813932480587729183124879143137397028418965281520711737029801992906313874147082168157028990250460738576773592025673917327323612551130114145317786462521091104055390827358142740152966141953740752996818136047239803501244873922916501140997269678870442388626478322618005569481293534208812050567756843180871515366935469852863688274846406995452940991004163237211613329597667713259539344903246183386308800382671602920225203933427555605265216205304780696911833085425801727805346718645717098240556634367124739622100599028897423736152362672574533808740694174037507590221615895890804914354414951819980607492586336220128965372632727054236682854613300140038310809604527313156894181256251291247005133313659471000854407230680042991620232303755082615878304053227060356788550465678450646825668252467066383113037259932851974962886578548434733564027233309253323529005076817460456340676019386974019855044381314036140335135520129663102786847849775796802565022453426556154059938541763795480115909966727089510033054330601062454965991532011471253813075738932813843206158978358834751543305192094409192660785042254715708090315702915489216332522149314851588971759353226322262506540213621535484504497330964520572263405506564638097127002323650581847931928791066573284021116171531491614235567873290519320701005837180799757472513068882702630989264571325987714254438887336327089787762311302474592024778584087459809330449658316249404598422117896803473590646178847054635267758606373579636938421679732581033870740404889792901527897398584584227928947544613905416012401981843113868171420911524790905473234344901456793929938851455842375708234144229890904422748207001653232457284092965424662133974988689127211427701589375777373910261176441575185231024130217940240891290124152155169512713268633118346392088911874746228928983486318573175803419364444914279970957556682007260839680971020884137458953740062455547284966843149998893060417869107516686972823509449765608826067255021484460984100804918802081223616121946304134456509672757784238519754470355246597534862046082437547707454147341032238394585664826825197660297414016060344453628316206670893263136889022121878443628029611135931506944202558875822756622811398149256217768664950734108868384080755995990693719063771997783683555455776890684549673057809236974457886427994277660909536566511987856601238301590429186342258416681415596644071734477928533900392077206419491833097848551045280220807532959873017300742668855750546755939287344408560314061642710565876019645449936697544300930072570230641823453991200896733550102449435808086491634982447676370108407031513202881151058334543394735840149403496713753354753960448871445507011994328664806933813640554646473535699794655569319696888580307532218509022389690718860899064354764696794253450679805454485546143119722869534834619355361829541020151748890893031362584793339477720285441374091073802186761357659703295541302489482167880204652964920887471453062025244634773635963328468515674431384804177143913270584653325527966130214740586027508580465680538997306446310533129584719442995542336096783375600099632854570436961889074439993744404550500349627438530879565902631114510535305385655789176895316515221242045843006032761847350396832012142064384316970578742102288514114017613471164388283715034314182167857091528856781206053533023922148272198300322329496581400641400037321011895288746901302162029269445904063433857985675552587880516186160557516377276257329803744298878763913477739095374359177104002215891846409963657424106606558041011396275219206621103021628014171550635681081892533335260361892221114605415085329554288916393719484998635040313646099717079074896931790314187020660367711848897605806835084337688946033567815504098668949830659810790747176972512967520957824468082358564097680422069453638559534490474928151747835183201679422219675960035184077419613314410779673580225861983076094347730015045341593472000774542835472561137028662485785092051401672497153974354192641433699811196660507892532560967464772342649292236790736505661474064742550425276237782114409137303288008407678086027077239867582893653306779986721335441313926304238046355582649277510592884349272046187447672395472858554034227845254271683085453449200836526476150312633497204037943744279321915308047802662985958287750441323799948556290100563607159105791161714357533875607212210094822751441240394661201176831253839703173232089448758481671013966978924052832351098139036915253824146813115124516178543216066577668980152199573600796225503938745192503069840039591079162758948326055515931641661123919383632254904816806358075588914257961637589463740582168807988429695980572796581858025033901628395976253379325997257209894414479674621645104695364891487909634491087449117404533882105612859756131330229595882643556680532400937204306846420800229247780172216739987896960449775629529884319597371969182017936379616987286679117512396892965871049920309607356714678759072843030801074177859784927872675912286230946654027834041958601731470086506366681948066988178935010081242784654926882379485819367276056645926014215587568662492961354928813367086896453126985188382725771878806457256082835911011242401409581546139874066506672812789367366120932036169115052877785737028654757925913379430143467687309536742986709423326414255377444363142510223297381297148866342818102361508396183750330917876463697873882830321337855340970820090836041710295432820047784787019141663722531354313365340324130807690995070744182350189474811411241486835584820816036926866035397981927362492948689595965840240549757014039271651177178316818541890939299583324106190124686418848954170528086629274749166551310442546259200934275811074023058500871207128482760050900532589733021153236645695274879892644681097802550795643740069388562424362866284000919483494491182464793158569447746497885912763065453241385400746701647659771628227800705144172498279157315601590761944839974651038568410144878661310106937322207997292094155290498643152615959745116508121621415017558920116815783675303732815292658241248709035867415033827126531876594725922821231516032312986088643282117564704297577164124038203290686188982012829270247996423487415256395253795085253116495225256646058556666491802345855447196063096920271890580331680094348605455931061575331606588606734712576536204697166560731498241625592588559916196912937608834699593565757230845015597531813169992558103565969966712875437865432151367763276076011556461185984695956346507944937164081619060968176645720655884330908511523434045112139461413084079524025076942587220497330069575746270516533897104156262690139471984877540309889974687890162014335311460333775139259015513924557952042534160395426446561833454732109034516752107734773243006115184716353121468245704630079253044172794143621766128581198620946380231039499594795497708678202711444431230432623069180762872151555936648064889611053095798008718651462450254114780540508450914109514922364201107963877483098874132188978443006491339123773130346719345534558480300463788733848802758182761406021870468308617069570527208330395172692284082128627347166546352039644716329138260515575788812225984514425411900958585219386739454431456194603002342086256813411882341182441538754210708117748606374488888521712007944499246832806558595460991434283805866253291592629437234012174611739536056904977457419173806657099958594572337036391239891110969988565974405267843400965437761968988065480002748856347550941194991527794466695220856282589189089287837913590542956446183025196942186959772342158153836511782510124161647774737662545449704539828928764207166285248997957091501607505665673283847154774846238388499725326363122917678768816966795667246859923910071518314806139405438221988002350633448251195537086984203124439773853940439000189895861441178960211604111114943020993951966988213908690449766999285356436559184252025791981281904245858401677489830037270381458009052561139519430951138187735536396012584341987027125600738222720814865181823106654750660874328106917764221989769214511344107500452873381956289930390470786650686865947647789118790359423655661953130797202520924402997005431163061052668189550359512332722501943724451618831665347202380022072797703290623304210529731112558193726650676355307220679350677382003272709286752477331891040121961726003323135371879821824554184075547180553697125145235377815132257718372425716274762988397461742479954046856036570615500862821341356312357604927942025724658263176704691179421407269618977503663294742299339908172104586723577127047782816753362520493700084150733165182509769938336257685928685044650108725906589415902664262915794879271861219904729689617851603389447197472188215540176243392561783374186100720648942560306762479475645097653390726750615659260299952453815128036577813078716348158810296200310745425156432910131430267133963737443512504101458950557146862156816593726129026842253605947228953518378701743939647366857745350886663825794620927780636154706845695512198464999122210593676500291131941040383148592434507338710843025517730217207966891374882787954311454497803633411411565269919147927855564265401107392210432939746164352128756335093805115908665083056112555373482951124509266521155301665623859494207403807049663254558134772710958188454167080768907355182182741992087360325617793887739277540161039680989876678685464360130201326082194165179546211045290633425199823373337871137101699967300503421608211860420637026884250999460838121799964823780130464723335669241657128707578765288344495113667444057708987920338678752454803877173567891448228846909961541607541416785454258623739399237691356324894739125344039046326533785253090166207923210950415623479128681115213577637310974645851248228171206970242407275202547020733609545581333651519980534121746640902337126370568530973348374662276063189589181978921577738126691757267377330526352959092165835152074195606503292251426808060707463863927490706393189787900773338930488700825376685810109167138245596119779689985214832715548667012879438389881231733667896717870086854850321233903273730930576834060625288505397179876375580963636719418026624392962009279983049845589032191963738952537103563421680394602919045147077480470062627486277122829934220656235849263084494156873631764234583094867937426674250317880809445390707763070509390545452085191475343468040414077943692304965458858480002909820464859300740794176156501537035239864943681333186889531886987059740354745473386079650661735814646084263101399409292143900668911824445044730778378422886225146143151014580421900126649918033502008035698422401098199305982427150381524841565436902895954110002020399272927950614697832740120593361575660184828703307411604892622060319870800119484261627888938578029526571214202858716014769341635849934223314887583516873963169086959758946601879139946366335816775673228236457223228099187549298394791793582096434079250263241170608280150638833543848404846028468547088900255958921075237657213689125426635591585967505493570249610598102578846396277580015889818135316109618277094163150318270178379365360787844503343414492795263454820374996877561413677155109639177471048465352289412286343166761607624424420757943482453452020386878414470752132255024168851038411514738797106486883228946820329165794973578603356988879781670820383693443978583119496700858048524317658893316392756788562116174229809049105769320668351454046601242853199172320715300363986010639890505636686579333447986590251729070316455467449234172141354063184891822302275612067681240175770535798132904369902700578171462840952270631061709068444556491970972815326734615375621350594416355979967218101993646650636861050550779567048718746266571725669365842213804130001430506591580510191144220101024760032548659490266687387148461966560452933795920964733142052107613041383390874546988943481467022759291508090619301979066192358009294899760148238009136029669711065424638669774081699988698878969299511316264319049896221724872443380091148986061093645302875692912672459735775619136445858714235765023837050802922428166751984292213120982101605291231853157712503429933091818729295148470855481690749423322182037545716342918934460345778470136697641399569241090757050391645832657116907290719359413535870850318467428849645121912344986475852436703257325477110751238357007305684720406416594795124035234713403972181999211248868069420012696199325905122267680492273117272428485749358507586911402935838299982591517349561462562688524024693802918787802890336546734893514947698532520536306487095798316551623199355216833543272289508761287620897239442676983187935666142898418559620740616366905503087215734237099526071173828225884584333906528498882615781773588800710825742936405064791163457071191967334158868181208161609412262612158662815640350791299337158872859800123947987075711887398820035060604173395374956107801093595851804550342237196577428799069359488904697739123353899364760501325264348131279181966279157404304755965166707486748566531955656992062035446060280098333432854730005648038152267134891703995591341557804838190379216511289064636661974410605246973446454834722733648927213668208634170921999272143163510999298886360109142402159366322600301051190083391014724765452013922943635846159708794815634897400688718780989657743842155031918599520290075816838699129842099061767320098286066625378807335277039421525563465209512342695455211163156594466054589762942956646975831172037716228179547591926534929191500298737990563802718573462733230370536494669802903088856034111735948284631887313126559403685674899068642690227139803365450355141376553081612488092019500522126602031863040835972823823923092497549771633116051920973647214512489598687810161375244046671806710458967978098992702465881227353851263661202232266491197452304411045402346785213196785118302848958305593324693996071280388719817811508412787931205199741984630755792128448328820029475315492662627671232368550770093876458612083946498351541343124809585957034676079682744613787954517623349619788080423432980233471817183169994615579911705863804271367474807028982637629819642726936234858622192767582906442326198316271837563394855203019214586758276389968311320419589342535036088121039836803387833793698346845060257783124983619283693271804407057404143026694840589916310983101092055823572700857318958077667175104265867819531354562713775279855204783741288756402402485160310210015320401702065523313654784625893790047511443198054727871282631138064458302270196382554572636011647201378405227238543653477620583881743386378276364051757029550919177206564155249852105593967171598362358817449117659827221405206529456672897327324632946867085504827154780543396529504866711101101677038763096618463354051099997165435748430398777333178606665612062050182592152782105612382390530311697567193099546349111459652462141601544786509469091735065571320671991671319551734718632388224306860934840413378620017313237857131794667212027001239078810151792987009907537972728807918179393388608804422526965239934266882603686745741355199577934979710645208760135973871074188401958591390714361923024170697827286318612868042476795412285847931621364404894585921383031719091632566805582739722467684457349177594879828215824505051141801446352496599207536633297115421971084575299445479826465648052167093422569567773729322001949176284794680705691518775024878088917668266258588966006217249276960008561569092869580286687685139691014502008437686880077680959185732935118418622244224057275647554509059985624545142553494163742602137714677758508781392376704803394300862614370566383730272635636725497825024649344161312144018711218367609583037439206416094832677701671062900470455611375365546700978767224340002368312606501833198152439582607480709706726736517419228376373272521118955656198987327753609253139213155350273559541749923523530337657599767268010061081458631408314875394760696355174302285232777486546572744869070137883650792628562586404252177954618405770506352118309928995485155236702345588655704929563848429986493709456229848897188940391136100566447990528743832561910612894205520896899151982048973921600489842224748383684292842534827904490460017972141550491012481835144822114961145984424251131030780279973184541942083943515853485040579867055898834811312343973597267198810847461054460947400659112002104532637592511641648389247321460500625332760019755190509200662103205943797410042635680581107383871024824872577259590463222239901420651047337919813366138122788724502811447497317236587641241560059602197043334411843606075336725328369947116443519130236941182482794033016205959603386895153482319521550625788287390004978061179779917239939157466571051168347365343743874969992767787598667894304962203187309942189454689051426292566818336233320881071599073670407645017336670356768799218626832275433992228822507512365586692477054256915559373863017677724273326966702729822764223464943770788756227055329912797346055273113494234736604034541940302443350090486761335992046020065715145009525685213547017161148032951214371329014248436308877211417616916218900422362535487092432088841764241593554877067628349572071696615677213212361047694988043186377312417843904219249690629348160927729133949082490500631941696910188023524469834155199899262671059767690628312007724060350431558947484468480726162751682866282433458152262429036945589903461795194433709138720680814293671675103859278606034820315196956986463157506864308921919435831303710365677485578689187885117102486851786422662506183480156113171817429396198087103648381450532489314494998712416659083443592382906752076239454986015667794266529929021569960923389974391319153032164721995610198713801197680296107632110349370289458732637529758664479532795446462204726297226656647316478843032253353139018064778929107964818801394515588750021572324071641600398537253995834109458741148066222026784931773955443449617392760424975063366596316163094585002480960291211942465032097983059592332952418178603450465711100373795724472651324562340358163058245797041417144477880255610139392029053259177130286436918327536164145544220493120181241167546488599898274104620420903901423483231132022421093307911260128682369772554711663586201659169929949682743301538254927372823915653046342319180654971069096035229627822813959030379432127781305877519662260167867513399941031420205020004835673667397259607281460369134227669871547157788680756377828431427869597833292427261269071150787090905590662814764060033350277268927160822099352020046766639684320934580927719569919704413715808605168347397331130660991208118949782627721014076238536319829041802729354202040816124349804106012189216343965364492135245217268499227349968505654426505426304343567645130402953145680721712316422698143726180813303224764037754049663244098055189494781099125485244053428076077843410333055819133764930274744065196904216559528219843460091069564070041934057393889616817456700247268518590868391598788407530228746140513685199169969826259475278965997163933042829974139902801477956320178182347262122908780943385869553571472437969012219851386127632332926938908581739894799860862763346542409717440417306431651868768192891705732489671769942430568716148137146761769520814088535953401196393366929058589780604378544878785193169080205240016177373532068414950702075939852749408336484700489526740925262683041221436774499391435464543375888842146936228772522799671281079971333745893169985682737225870152004220771882219045425343279630529175022536332515429682091993960334939011088579991331922083811495948007307363818267228013617115788366959496436445207216510969852817957047272194754189207477680059282329549005180768301833347432796505197000271693362279319911053161041666256533749440813675633220020319947235917806981895350416495478348319656286959527425842852948626369865856885514412936717134120823347556444383912305318073861329384156841128132900191898309214372307284554133487760292765131776384118013764173756141137242955902374781018862753693603887194900736432629721571465446366530229428472567579082170468639990554668568626220535241967310058515915418535776621516225706429997311794872137327482402810702409288568604816202109614676748928657858401779403302463464183179142020138182173750322006021693026012518253693857198331275331481320539063743979747540254105530169257444376823633573929526876861993228413170037253221558322778157585860388264948500086453943968993032066656463008233376832595761795827539431343241230451959549485990478516168054408159091532388271450616108132489670581443839347543596234839426426643278320845584892599860984124771821150477330409064550146047408348852190662654431411645453691508519226032726634949532122770771003218004447372935438217595686520901590834503663728224657666365226005321329644993031290060058716727511440043220136687900620455787147613292194763139004530899052960770031373620278994612217798644630167885233015895105592267561546284038234288833704497146706568702885802490388613231865604739502225268840622029882369025556460458170806441714525130047043891939904463188609627262126095760500152956997000111667812506650874017240852507199949889160212000977372980170398458928074548379327210032794540471589944372216376301550766126821169089611716362811898201133626696909522349725752262303213951203188450689071136007646050800994102671690902204015308324603448029190680308788321918537568735016110959660629109631305170368784491390127689998379331254602355750826336009684153159322867189922136400311403203718816653270649253800886861666653019022475051714833598188831394556971312180403817441958179054713955685786694463194154903802509095728249015368469127861237719256761504696090038219539710933769133010352717277096182337997968475736184499475434967283373620698078513748691855784651090250720575651517994197617231596100153876207961688742125982027697345190369088772289029369808747129174104458075962895552467672776050700739037085161509664162516865685535574259965020362430871250826575751995312076441922322789767919511980016676184456035708131566993177112993331549993921857565843717022389453373466381944734532830960404567088466412215482543520974764855482437366156263022203689785126527946022133952427342504702858288126865893599026866223501904162376134506036540473013421706248477496907071169290710568419432501837939424456167711598102059099366600995590869270703835565916334534904526317767245800536446870761080242078400840094723699550980419009594882748921619747508419175498129751499508890373007101094411082451959913550906741775448240565479434506025982199173486092447391054272153301927320826204400517769370093950715522300219073432535393579321774308587577076167016042403687661982670634018999599273984274831209870190517294555482901292407378724610115816686101829928165391633237425760963895607592219520372032915941263945463695319995249236352322809811762929196753153114868019911508150809421387423030774554073194668857799524469716568479606644902485899225607250284205528425172077325247327839243668419694656105130628436169713819024160847913945421809850937120664707264427477727218800666564997836654968412659759945933651864257892662327410475315080939741195431828072678324553312736488981100262904427079029680574042282865073326771473123140470865346817330712650667334477525839625391214676521600924272965230109718290329684812158053648516354566923246168301542211763245754449214147495615727621028809166016202392150489040215726951995481072966915867951318537859316151918979268825185078036252449855136856441182146806777406168114529668055573160207640335310506885900754008965261268558988193314361024841360176523445272322989737524381039717773487805416032933147294451590638714625948524657518363473787778070779642548399176375920065403588448677846804334675620531456564380085450112143230790054207916158576681758441863130833087943941514457788200497566869488277386392015504177659710091699321801200018713591885247608696357166037974732574277640151733289586230352947374720472377897200133726616784006786438306062969439657691192164762706796665274320003940050442940464436926060733296269073159473892042724853983943677831689512867816190414524953679115414207049497120922876445543985642314956824562835704879018741653281018524122421117008564566582828746724422458038171906789669890741004251109742244381667761640632900347773869527575107969367822101612880633626420862861270331490756355161371087551665817501925388636917470646929117664468169068299048249074178424046448801264167878913602139327676038960759055030033035777929312922693810435499542005177677178729888084168503206339628003630020487488780993227279530628633554178866866787992706360773155933265266624294077386846487433402968662516755360718868033265106638672873744819274143096451669082129533344890108072379014883388875644799709515469635618619194284157645006949274999884669876406721446414668654830788887188778148078067354425141633769541818549835025678367742254914719372225928885247793374987930973990216314188772203012689398577695244705188903453146441441638695872088665670025104911098092084490023090413682439868500238996145384981308505485879428595792035833181505366265442990612965386393526242775861554642797233236998465981201876798293441185416973520886199508042987448631647735096951280571321644104923157380941248380954536596292175180959815737946843106391146931991172686209253708511562205062692632518069391031670546493710033837738564411699677330356642247351786424393530551150709450524665735008122886513325282363974359674648250040253197875172051910820912772328638967381870366074035863772775408847751670503520108761965768582776435737899910569481305540326751062467294265736243815309666719946184686264357623758798292360403334135969308805551394719293788443358758587018647724048209265976609940516264371643661763432756525691328013634450681726598419248192426016091045483499391935139204473064445792471215303143534884387507823851663081094602570555843544536870246845141291883519752679435480587723707970233498625167813550623032209473338791022417170355822454215013930583698616534998435016813756760155701226277978241254416685309054972947361655351028974225111597747154423768022799084883144327926773390457470833082825108317478222629656011232387068110718687851145249481123229677468733094972436795374432775504960757071948848793972278496827972729516681166575702041885088343191798539250060480326320074004501815571426887357608628581797869652789074868064504518708697087102105055699211973767248858748432465056204073134706891600425039788624393781020670450841811353001017007444257893314488294512780403024255138457048752789702899713037515020927597372466938575092494220081514710610895971243456602516692313031871074698131415600848005303023714085083691173315768962661095189200819348772456253329237398969514434176422956304248031538583916438480075204239834320550094932916197438503420214732761844691788170675659428360449655550982749235151157916124196517453069257657869313972467476546271558238638947902002692147612141287428531203504076243292360005700600023530566097970730053766502706418562648752294199922686019266851173823435796116373006390404750902223481698670138620130449866004321499874901847698780819198067003084655404582358035792669377435059478164275744521360014367686044910963085602356036657106571775302431395460966276809898214915808813109991608624484806692917661533841149174167174898146453813585742670169771466202458064140440388320347396597309593385552072837048383158681434679169309029420572485906367479611151734974011320915631510879526291208040031685198058236067404833982908170427342854243325496243815384703905300914232286748656959786623630774030924084860068236678085978745057407288989159310573052564515921832737395098678107759066406070077984427033937095721435437816151020536570117542855697910254612071457392801205142768457679513852873384204809264782864824010802458211928278535722355826194659090358290509731214994949660991705585291829895229249257245192944970337773786597837449140222625515050522270814466110126716598537235913701628376717993202979368163259851109147262693390373742049007747271557583858608168424146864247771052364641353301354062967355922097788129054792095958717174002894807727779712273127796298513951218136271873234312125304044372194549223098303391616529678453824414499394126024248393201799620673535894060722086004145119976683622641320496130642451770450434664354092916484099517580779519660861013522749391371862833275694305968533982175086991164556340489193663759670350022587979053881342413985468120866211386340780649221587437552957679224452131494086491049894222110992397052712420473682577035903513747310266503373366808044328631902054041703561483576968806230600740167329617073951835286460431227398200076598612980930225055398010371176992295155942759229575960195829948889411060929383977105626998456419995282272058027127075070204735846286378510298428846457687193173024038577783204559690737825870422011619712993549202141223529886670254886011558477499740173009797350516637358803385633474605485113601499784527568154614712079584551455265955502046664458927616729664724217170871764838757661635597063381299777137185863168323928792732252015622608905656794905037003957911044916587901362933570315638940154840835886122007986340619418794610872440981717747075200200950567919709136402893257535980215783689407747572635430320299953427084067408806432521425761239355525934616135582387900135332941941431305560034359111086581032899148400639251986432404437977811608663490705768388438901778341079575305978320787316232851521157474508858134328557281815591998799275787029086328862806827959061801011028945486601454438585660639360850480325077088524377943016718405740962068312110152548392065477519610090699310275305393623363955380174667214553034688838004255718713596000679318322420860507548612778599842204045458162632547974091160811549793391551332767738419515067129936061720393095436066268132284395845554317666261389945314310368264801899922735560139783833750834304275456674762062299154553040027540412509674624292673601445822068821755172470194207110294226099613212111351380024185311043216935244396472258989097842713236962057674783686160478183828360147683504856201314590072502970237247148297212067620635400284464799944697527282023600675281572390493184860659922818213244071131558961404443209409671767835896532562328786045437697542922498212370728655508825849906099837940622664594783469613434942921257973378224829133111344583288631407497212465615008749726003258738858180551449888611419927861596891608432521919105109551837375967400068993126834793286963839917642688939926194308101868044186211313974991384776500630439772777517394270350904289527513584295440810499128051212110855356273060300970707642145540195419706474226516289117120401700642965589295111324537985304055927815524812254990817183251494333708585910894641290642212954370914512731701327003041215420957993838752164760830059890410965133316931210226253018063479011370941519775298965508864006311602461475854312858353575083677896847106749557358201945673716993674381513122912549343641041418004421483006304698828241979268625471185755096006398790408746593801559442082269847445246663673447939637316999238313013686913040341195061266067519345351863038766803786715270776886933208024987409235321632876683899260203583662551977920573496827266610982578857064365119238805779140130720012101686662640273796999872231895061481025927098752481356092627440833325003225666183614902091004409270493599172822218541117075875071047038300640985498250353207114110643581516633688520376817680200362682093664002607548962012652395808940426313650673513762371694813544975448730227194044532615319326265338069367421865046081103089152115371166047180899571586462095213669880847056201610748013295591513908176837527666120555726549953732304037537138492214702549017178178445907591934186367970672289835388728981855958060764115024249045296117936682520129174486658294647483964009740835935681866245506245034431076933298677635247513951991132116813065201938001550782913299998929228763875520336061492613196483270453435603544996422726398187851897458552200196792581335490474917649337750327582131824648210034176899629844877216261298286088333278625221100559667143523159584261552826049991306473083407369514320880620666592967376512984314121004811593591198994668215425771365060163147418149845328319069174792024861897496479069629612795082903902491783349260205275041929568002956307760341361525209584800389414127375391265667600344410158175390953408316128597526083716793168865337891797831759674457131186974766024421116319607250227571263158649499704989143352368213371455709645421607058440279811452953599454278476279119824352253806690290262807686359541337822599281221914614096007388035390094421947034085431551318874485058213890564846724207923883551909410340274427453188399059905753605500544463915684291223612733680992784851928771570791387071513300053673237870136384479530349477936230043719786277135905883058318488732020357013428298966394407312988981920130463820860601918592883562107622975025477175323224306881116622342454389514695586014693170732453013089606338297047961797021327067171087356623206865037048988272205633761497283726706971290978895005125252157820045940332654931033340849509981792420319341924798129876944285807486994411863384254949823207557683860330281821373631427721020685483512982401183679830084286287121859128858283410870441969741522367163144729177199936286290797807203226436187398280338410089044473892542622696162986631227693173638504295492335344683200605432797512626225649316614522528212801368632649654354590098154197751440984660799892225173150727140905351726983926319078752654629140562889384597252032105158857094295984414464412844009644931392359716562286671156335763050758564843997457626902183176091228708651621994452617389275557767077816456419302965267128316078703103545215108488421698469521066495814618828210040210168317756599698745724776249963590932436387533446464075596216655398428773750071297475771520052634014850089725141504936813334410126211596614104624683759389205020117740173842981064431361355340382474763683350395047102518449150399241274752908738491482544344346170480510157040726832184439897890449853773563331767821682415558056493109968760964047885709073436679071549182430742824641391707251541720521877387158691559047252932878450773928789246199032629830557336023197732568375632586086602378765780718477931662697111506817733919168288292349851498842202205871280168974400995807423467011883650881914162249667575448700804566165292511540487452036596490033436723830802218272347280768452665370944872541038564039635375719987794676811034875455367081252790291815849830917294768082807578409611819584008166477043459783673908602420395110806056885500836908554489043872877914566089778024027454671113646919813460177132745860714186331305614968787859226672173678939396773787145152717615048124016764196890273385011150630029366448206761287286266508507786383665649722777506387074623054497514369824504144598367825270421593847299601516855207184476131548539613730432005244882067637253157552132291399793196376897567171360517327912601016313757558489452959596197394900938663403057993516653174997994125164328350834787374696943515339018477255699043043755707299479526860171841944680421126758670065817513170199067741335831003300713345656980058744949909628365728425170628217081131718349047547230048259939199921206715909540378874995962349077560318706181022489774826559522421844843914900881011582423493193791674213302417275344074071756674520310094417824117906917160820230647513304719853452316015004771046122729640387926518545453913742819601877086010562606147925626731601377478782548924087793400793676828580491618969748472971948571498637321529940486475496002762977891922704535298500461941474141604160271582862543522312262929492189715465882732557096662193631448594706989897160688955024248010879715580317441127589896425621497737003769771421488222647093569090903448472461606101025365108542249643836006695506732694595694681390531290235308640098199359352965454373950885738303078844956752005794557897259435497900299839466089080310227191266147339808596777875636904851810203671725657458193555804646064402564895743059101057646060595484716172893656870189348687127934931239700976208343379951570515889731900879714581062102476216262962851127238421977163327811093403190534219303187324480269723658003306286950833982334096980741227710553741447782172092912270624629899804968094832393768376361527246134041849892818024186342250334525865269952264984133899724929472758514243826827594744388799545095967732843429285000903011068421257884211410611266109501385160905723699238818353119664105782446130890166642089544111090133524001889844715922204867573704294767444975632284909446678870378328984535897726022676211948303061791738632930017401727605810075263017737074212140712996523308674721747743771620109104870342717530790104650354422112051996874147547349437073871732461472388161891894848950704994447251556860149618166376671695756539973256411398649404081987800330718033604409256819046391979618908860893840819721441810554219858563559632233679784084001122405293210597482442289911191098987169957203157661745446161776731198932229457851832369066471188913735580136220846228445564406228553366723159566686425889210933391637920585179067622560392872062375141843005552186041626809417613914143615745746445975381390824228367092421028450364233098583653846096351304491056319990552563224943018368557224430222530458307439762349434815465718731460387931891443845652780266399902657373569207963302475012635202129326356061824555611289663551604111127848625976523738710454503029809199143348647501704597840167675309065058880225732716244207109251063960665887039032132237451817048245899205525226180282131011278307189307404079259615755766044027631524766342343677088443672320531871596717807058269077542843308012291282134075703758951467701142191830503209996160226257065736485334712623405099690497762190781514648828590851667720882524007112729819203326560019297918108237531651790757669131365457949401124707456446492875924984627540681115990832459621673209895303053011669249353836786086605141522796942709607089493730507233228233401099802402228589767169919347819763858326030769589620376843412020410515853369358459821627592611151953145092524714280107914115463719378028730650076519640751398213371454029610950760400894036255541354642577888685191346969347625988332936613210084914975873229844470045944442101886720264093900070127484974051412648400105472922084635297203382332346660956396302875263719726279228097405853443067015925112811118262067139306470652065466686808178454707427456788351538109625832622172509101821096669307703075507175727204504928764567946509345887222732785043845835514569898246703774683993437211207646096442237565618920782664145410387606747324518168169885705081517266560822657727517378918990815800964071863197994024041316117506042301140041917443373431150134639366155068180484326839290475589932223611728739848236123035089602279752721582593862548731540625158098645891722193609333613050857046941801752747388448149034362918532866390448944175333929324012760822420436753394693307503536272378177019230464782271434688560832270087256917637681631500686838688327631848070234465879274066284303109834370244834472174291805581716359929519661597150649720266000708460057635348019495148666356932172198403256212489122828858575603907152229004639773430521241705816365947872574412951558173014063085195214788932821335256719781693213013982436452666019244336818722683962012670370780500965842827453171726924350463161227856129705718338380660675137597810505612562468329183394096063484583620317144862870425557710896000034895091017735402164928549117560951890364412005837393412865329152365228136237858819493807316647153107614619015089268256322933682667383464594920455890128260745148313205973118936332941431158557061710123555694054912047599762522188798879748229192789721206394009633864055337508851505388931063577188741843809525535877383153452746590561521138890613248858487522503699851520124687852648819244338686735025504995812302495948035039692148975145097734478810384221840842280847550208407747190297784974790397220716013768823514529191192762387597706846410906244435423400178088198903459025413680130249008817413012922970772531750522669605099600130886837356371583982488081796746155591830782040183050436109301071641831727048264401036970075611529371745631918243694062677451078621214630892209279145846553248268202452334119041541125726045137313671057228420366386462118853019615605673538020003482257586399867366319267045186473079581733168879198367945301781919560581241527121056919658002419605107899702227407045282556107834792883193507520249980288464166583200824421504302593155271994987736554269810502263828782758205624033325025856099760372153465126547502474057990585067605896357684541748941165372307303742325329942664278051976325279554802692910087443901185913010742688604306521391964237992191793417519553863552359334418793745097675480675153939137202758252447813217555249926202279494564059914340979428677253527407323813944862194544620279283155383392728019886061443535489024682193070100545998473914484220138240824283676407418617207476325514044089242942616966503152251338221701542347551738007853316338486031050479776482284935209015481371915794637002240681742872240959499957482158364396678869767515244260399002908047686414338871424551600043929058116511052427616058865512974201225678788750922870740141748891389786311033085938670463800041131532761643020147258658026655237843686953649923163482012693416772322959931123053974736821074890830200815277940499731936845444391412054455488370337255492597402397066840841300381392273847705965529771730871592625174342153863517433572882879723574929695841517864352496920552188604551802366764175228093981864796408868229720650739518159547276894995971368634488137815197762134764220349116889009016317471065203873017006634212877556297911352490389976646899791522135404162056086193049628849171525668187874976673982106300921860618114324018992388912512224280548114028061206571182907693400271058904053808148539787308369884592907099784362547811143393706911879349845468761859544768904788543847216902178520491129698535608542392344040257075734059168303937291915056455035399740241266904007102681094819315696847063290461678736714274672805859166014341505990034303865525650507387699520143529166224023477889857192474234497962757343104722478537025027681073609291124363970581858378329817457748621604373449080507073689787040569976449592520930657491283074200940943866160564586948656005851785178454785054366754326302981496757776833579927104313853837218694437203901603897376376809520760099529281458221251868707161031865632594844907483015497959006109313501400234663184081876428927632053415494042427621676816525381245765128063089616443058893222858153893348730236429684775922042193720289882252149687815869741051072203604119393061911071102439914903835702323444336260344662870937704029695072168293221638343720942457121392239049568897235832101559691085684124471073198445498956550606873855207741494901139484273129193748388945701115168108178117073353746987450721914588004078615425061219904639830686828098708220031858059550720586293952077973550209058027901670793716012495002286280434779758096879315910783087450929653830959619079272878154715634605075891616863166993570836954870692956603371076278581637769840825725912896840671238899265250380064449204543662098233000838642858165253207141567807589069453780014259747042992421971421019327659656930099068462576708370576653184388878390017351718412756860722797814137008904492573632101281345037650819787093578144638735154715046051219953536753674233582369273308749206496695225104497177684601598145026570860296909115693003630826123188657958670402295991832551170294772876397543298415221330216497928045483813078321513388370761962560948518362970246576058390574675943820141819490097697809972087991023309789038446059063412439103544446612277712825644238645252437079598712312555756161607008066670621651342902040047030344664743833021624557232864509078092467145611695161462106863133913207450829249556302476369302203234906191261465456619530817460830633016158635238398503517489687891797571275848542257551489588242972123004458303235930704643393346574240896821783272577521206770580493308482634610605196156918258499938827317021738238825831373525709136001553179608606375023466824910177142759381274204881756140798121866480808044026375999034000406356727137919264002318784394888343603067431221719148584080945151481047915471317725586469740561961382464692737860784017084522003567933800673779339298661371269531568238234362038693005670143079575406447836703657079066773967291955446064680757690809483649853103456535842544498527262949361250445249195215384471767776705995898344441569156877794536619656149140084266774226096483433861417496439183687827689488616319380284247370809537889570581942736953172420266439135752485984241662091382834535054629542787953022209612352349357920068678767288086041123384702701743002967405255972518811552587261685112638861303103350398196083697632067631649604811942178034505180964553357160368903896622212912535641528314750329927640217161090593139880161116907627068499399908284853147925188534179292442780848434580390066154452363413686780312583619523620374636639765755494632076866186137889584688311276511085374182305085675946728510724654489535265560780821623566961123472862592096591403193407485080978340344423279794780229233912029634938083224230448638423538256048059800222702584700867792399192375807329116890947309183549656243378380393426494628972400863657790002971490545982429525106851611535745471722435546190166920991493566776166760555808771715173584564189853850333389172829984459191362662578442603231594522275966929169712067453602559210697344537231708297217322695810191525906861593392292828743381857251860482418885341267182687610242006461591663274796228062080741334637887215023973165399001650178443353369639137115187587687087101726122851441203204644881279659186975271382730676898083311791786098454625458571866680637205624275316037254712022907270605060537977659372586968857577049751499983161723227877869980224638689885902873915159360279156299055309560253503398608812536958335592922665421881580402234637863006930634425006565802411553870425259401397627471537406141082990597730093359430380375984997758450075207360443006833054635858310043325128282047195547655223826813473252713211213575046740589241140144483355919476143226795141502051926410050915431364873457029748565048434907814873518217713283242346587212938904829269734781967782498350708786139786616024713221022097721706055391592848431549988141417698119081036770770616641974498220093315466006904165896271420887288174302856707964303272355380285697315138332970822626115305304527871610880533719208023897602314865078818915578916401674429655025626597365489561857439947150086829646489546324477514229501159013992543708740521423294816130115988326366242746856205763715873410409165549034160308970780888034552987829824163722480616676217007335269447257995701368258761991332145894243741461913673558370313463247182903644184136833958191775964289762732473290984669455987638370835238650794448717194887826536059203300521469132677893211977345122317194743187417713256487837036122426336746169431708273906117801596180426936627600936064268142206420920899339604139849872970073799117817335358200629077309747966017852917312867634082735427526643465054073956722570893231332002594446927544217886969136329948835326029742688233436843485974166360979163147812207919756803495497888229205348847993701241846660679537963318641192427464798023592601627925026391115140932257727891510974508654856941339553905600356570959448359090476445794565986194372847381606815194491184801028108589597824665991008156122539333209418683582257063799853509303837463478641230433639022541338633275650341782333880583539323763294286873094312054944827065934702144918186136045539003772575963865233878019036600627318254960875856508718818242503647876024667100236110865977447723993942518562231017712660863125284093869826346554329789734910316848261341712452903070308574950575513141862546871100873472855067335845313311209070152827692802129344131044134211909738489804953115727161828411659754684860741579326551768588782655842562986269854612036540698267636953100819608467861938099345028046415785081099154234362170010630314234401626688562169072033753912958664934313801024978284647842806906678245358843785061490621046929178550951791243315916726789136559778203199607948245544994370350125991908592492949401099985496690988255709212783661645339257746905137757411294620002351197343471472375957320326449259531224609362105731348478963245200696933420536575142559162409766310142167444478653207207264714573427702539459100029713956752476774936345077416734628099907238107886519291074970825340900582341872003987712050151567140788471596625670113926771187119568128680743377719442759012761542704661914660549730970591261376174499351710004823736004388518370730730250021012897973536364398050282988241102590936256146709969484110045278512082830572222957330350469882004058812016583460937022596209569466846085940622536185524363000335056375080404662816113802511068686346291837957968242864326142043219129765166901286559252274425205103837418861417072055005437655648331960617735254569530303800159610463709838111015825691899569887338339158781805439000313384973924138107109149545295434718540533131535772777080405551566842949093917360566367005746957167917865417207366177515790493085354664945853999313568338615775502953982574137176449770856905077431098595283952584244245748595630422224337491600887260106517379923827721070560477110660812155836236952625044794587158187905190265577518791464002990122482369615815152561076712257993475395543180719744023354354460109018289833351783057421585049752840742157553175744650152843544641530651892275449411434245204447979061938881462991608116326606833424394067446756565874770168980833574142484285401706896099301050981317964879429396202403036870560832025786389974860904935509318081059542999533512330455005661110740039749026362310750626806712719355881969453365882014200623643691640000093216281346168657898942182346197178546911668639017819349665685312930410508101044927079178417952079433116415101157524387030518659895185467004953638188031344817115586307348637995990018525116853022835603590357530892146342911787772912409829902568248665938786806579679013709228323574972182063904029469722966769573098725824454529062943570636614712246715101203260013217921335773795031546579661466330572788581561986207987145973586400795899701079209914063730903546039822128695789167349644126018823923040703148723348383229354066366592126711015542474744858126670385485524564761207574023102417438989637672900535309761542972998096427498615454430781613419693657281112564253333359393789462624807986196927400947256552881108408952256448124885378754011272629582164274246290559575397583485590983574687775032022015226164558810064134794493020655743357545448017802833558906106518252452754354353049343985477130734160505045447040619243034322115850432370309660715949968525038117147602580038351048073965253887124161228994759943486019158364743043308355410572414191866334235542975788583974636012778639768548075371308238228757459359787646630312071244571416996773612733662173039594388817783995369473467775350578452674960837866201073888531116142830647359401969849711942797885614624795134765174736842629681722837726079733003620360862118633724961457852282726954259918333386210478143392601945734316489537556500267452714622180597303117602004536016005124038896999425959627121263672067994386542287388007019597343286836809438521743506039313504744596473685569251537485903972249052521440655264771382185717411052218988266246646607115332669497756025356050023833367028931347496613570354515798151289413885553495945535725407308387148692531346592515145178605498625632128578312612157055065557699926328194824407465178027326503729847428355031959116989114590865029688050663963908930823369774719254298792646129860508910082204446983809748772102301464014607295069133376737032698196304312753140251668720855057273847812019738443191027347855525591220359710686180735261656609190310264356699641569507628001078512640254506740194167168233563888686012177929480346366543303426297809075360963131028092795591084034057782534483375933881620813555261980337369521530524049671202594189361031950149284225120440747821496855861615956090606788755614127599155474626235162096322818684444922995831079053728291770058709299349997843457330431534562353381105243602948145744052486491052453736252111895076749690959365676675786074636144664345738351765588273432367813799217909233538116933369514274629492399721238986220068264774038385109206612738493372548282424724946230319020381360710878267660693411695475511321057009082515591617905307179138031702776011843756840229335316844816419710508854854106739363122296416668089859243802131590460752670987857200907732221999761732687160542687039060779679295587851778695294009378646926518640834420619186496558450732146994150472981976070290548829904919431609492247830123322979304831978871095190742844355527119674555981350464013019570556243517684889596898509201199701778554839239865784343738702464113268725189510641950556183107021193852254275124222969432543990880459205405655831691475913864318343780949168638708738659107030781613963942607571617000195901765831463726317765733780411233684575051096948430975131182808850164397728997951162750399307147176096389789292588962109725195854047848394187907796373133766508553939263908883446492393861867545189736424097890969743770080827159829848174807944587618380656738907084463747107757264261218459930059671107264825658229661887807615146620293256064147376985409199759911325892228048758969013665820874061580515343307703581049951555847708354527490127167464037423516226684316325737352525771347270559184589434530010097149555192920054153022815860990718136037978742398833736737442838478371281216430541834721044127371186545356364637721816849735651095740542894737689080981014027152530366811414471330031156000487919563176373870658908385479938184337661364759512670468546604819141364255128608933970947338071175911720009177604040250557601934679062676923923669380837235904673454069120263668866767058390463310415640738873667058019673472234650274710316966856108842053303949365759236630676654349880956697522688727381186290861130793589938600453627450456223866634592025779755622425381324472272882985503185466159535111176319521086966843937352615784823978795129889864885064474355144478183023911477771154111089181663504637638553731521070343020519213358000553789541544648520509963315398134283488387640888525368555089850078453069131142307513710737649730668847270176563763793182104130205531085103371914324434928872169096064834827430112809637567678369107048291880140648497227672351316240225492970068036223522529278414239114376161412388036740926452773434433911086401501427358207179227615896403599747433416242002197191943274428208646299160580731774762029410588303274736845830491440839354077230382954934405736737086804425260560220954627918822625736622606245541239951740416323358837496957904408666214658195299019173188452252224754077217577639164074101108648549689658017932186421891445171988337749282212587555059488712375921707583609406580058913220515011403088843986738939861091016251775195972623943092410341134751522524057269646533421464498933542296560360357187365810420650514382492859656894719845250865361956155687549985690142012473412360283853559915179564006294675611332788523494439330257949563681803924598720207080745374772608769051961017521541141529737586190355461490439704371412069058953167968617117636874610211672413784329999216106571191169217147874652344232067958527203832280216699261296051885661142648259158744157897341844500331536355037064548238908343035067987736560601049911553422164643730091676863297783603874099874272659350497404085284480348278581765247015661463384152660275539053927911667185071375133607363682293077636478598677120915342065072302565508864943015326430893816248977691013203599986473560430089319255020107889102245240578545726509486518417097986140069253158819335412264592486930096165426500375796217723508870786886784851999905851727056921184392042097404089756716013832775552369230813889578106214815244252292215259047972292111424863197673478270815637797415185160537375796725502298156850065618224017556803422398393597599154141490108559447783046287838537041808636726603854171138471246805869663779990561993554238706526419555457584368266149026456444800527383261267842947870591641761550230468835711217365735051563730590616031626350200827034561390633364303499899998491211955657784706154415236402429389826845352073562627568831287801125430642404398823169339899818024032074800295903653200446308654851030944044045440160496583688720855870584068983788575387310326140225495445999060410168641021200124637455376241577267164362935654789588820004037488060947617166982772668786737898898042793929591388300010458708897946389429260653412164689845798251213020199191124722258503410576108749398231577841249986897697806693846055506302411297631594762773999568708853725819740586094111704360285211532002871123039163459609041057428340561921511458821083687225753455583267003906025531506464747628813368424549363577189844954314094567723140841346729207408703218885716012992429057332372048212380116182115365530553039142996002188456872611384353252677213838682756067918956463034071383931366911935230190622982823885851560185756967451849270673528336485237741343008707134069695151239575156457637310746240953495542585884898995478653660007602624462893194516032913939580088322629520045115221317858463266018228780139430183955205793026470309448825041467582459246974584516398557056882257710730944544821887183293313871101980692910282758582888969163281902193785216120237936175128471508661893914828198393529148498333293643911479391564264898481539329760570752640708479002443015875688464182503644552692951763835873332504578212514693526959837976089682528736664223482303346087132004172624447334852934392668616370579131627667917247224139891218963166608930012168862456183924942244470679543938249410203713030342599832749277332014708643717096305370813134129408496560720474013807372939817522516096483507713188642790908885252583693097484579499734242367832316478360344691154844280164782116864984127649066695059817361197823672586583452747522672393232676795728799680956440883705509658908542978521502872911940615901174816548230969338493606710932937354738529813654469687161285517778041869595886640422713294343721653482970559115025861642444372986467669474545975520749160266681566076238735113098629761784633827021414966879553322946410773052200029018460643641675804605360199802843787998557643485751837342635216943096583099761312928577380935152824709769367936233888453022665476696136142979088678615579242737763656686038751057666733169235640917626951129315640419580612590467348084070327241153987957256588098675964091156333603585770637519043797311055403580344806304834414548074971224753044037846126825907932951399820278716416126940842895783718471135526229297890272238732450327775291524015368755838769344933127594914427977117873666299116979422894878701107759051021724149041553702440626344983158833121929868173866006656047225681045789573536507813287945739775457574373459859751218063572770790838091009724217125138025549313503954177711198451574171838347065802198373982559490883020307701708867063398435564589887187225949709663659793988014542462133300444049450535941828004066037402293944431423717007722707247980196769344789726141008912430550885965255883081699788289899076643663228777060420310576172853496702368104037113536716748373253483104211301959704552595777939798390139852037719350152246110926924362586922035396196928386889745370539909411670693193702665491154927103646582875442915572986174412620671195055087622825754862273684197399055422031330307086381386322351651289253079784195498386086272476355930861379086311884712703077110316579588638049466504579099854316402380725204414933217237372539696436283946423212518702819045421900440895198600130028069372886769230918315815690153394883259091170178608595598299762897445482135782069023859975893775996552124488820344447749630001921674961745229854346054382264381212514539843598357943283369998888381539322784344296575978184845692360109991125495461763824223980414746412321228015496927043295100403135322231925517229820240651179443179088314579795860920473301289674918222783015574177580731507616739650277139962386310246154795674826678866979005831622550750795860675727813181319566122666133165893649565889701532619292971772357489716868198233117484200268833391914497318550205404607640255094856447622287577957281806097562742978052553055799704845320662275875396204094728916902832790351610047525767455856847338567021503117405951610981184242472144469602057726349431553106678639684742259502031896817459178935228833886646700355588947809334807782532846504716442065247641441992822049997139309540244528748809604175207417660917828248282079955389985763707959386657923619654486838481154358541083987986034418035314208244575877792568652242807864355755299253870821430904319177454198134022789743722646622976043874120380976070550472059391466896872971021499131030904931082873691243102255455835972065222974871858247444478495834265651916853515532208708752372836703264830181921058381290461808007293335248502367364852927066491514436498887758499658393983515691292229439833826719994130007098663323245947065517705097971103058257663548949915112525057519214114888755675624651268982320607539650201325291063542210030863813968244329682117173288424403268125448218655252209928865349144729459226739382641154656640176935019433089001879679025570557910685298597484916110972954105382980446936559682165302180484690965331069012284149515354679641769877851956633508809388891658916868829604597171699380210124202457274543575289263367813174758268227959034822205282226806319237070344054147357662271344262978509372845474545605501785059970216507011272337250092312508388905211613844921791281942042279322566040552203297454347110006883506209918830804553079260019887957731588553119239166313829082863449982752992600678333828489613702009297769042738450090968434924739079245780017673643267915306909255069665060294096320702840618472216022334847392112279769042128058299920477669445907457860902960629682597947041084224465231157524872620805368998927225415738385173456508373711414328450429701238819687234832752907071972151952581452899209763320820577926489609515352242357128866812126826279936784568165874236577272541280724826724212771517982268667181349911600662351312004683630384976937069413972230480190240948648799735247833120221226107572044469517023484366970606133374609508189075223485415360846137714122575146397744853388159403286860511903380896275692432144281492032265344308456907348998137654250657252729849528607830123872777614759768592288732431744721320525794971584856195136835230377190170135438921652233638047036194629364472623752904767134235191097255227777671806555252609806530043069897461824877089655281452380491178215388548225350425864131962518165787436879550196277237710340571060112835653595226029079070230597734234145026125037610995292199449635374367129945055184369234133797624211989055454045963073664526601262498137173945370980513108305066732438313894176326047929465048064478280052739905292057136801287156042219843775021654439453795968320481962962153676936644547965130939956371509862800809928624667123697048737694083156291738424953372342021236029651078398789311457649379954644309079927945961477334480355490432616445129404089591983935671727987468888474744299434914686042553113841708591841877473925848835862311268958693092164743536090852909563125291402966319938315047113368579046021925151119054379373924481237354034487543965449464692148078363959804134763548408491722410641911157192618756846675215553237876195915548718238046367673823820049002520606844985140189249244463374157231155250418659947741532521430068225612552778020158582526201194514083496352293349242052086077515241120758383370181442347605485595201624185289538873044580062405747222419951617063640569894141942369042799054434696186793869924237266837213490128775351456892581496027793922564325318070190372873468610706589386666043668904946808642085199394005009819936634702992467916944719261533621360807357900791230208444654083808186104769232422631489011804402599982749851749447107589752323926720797860254373737948892244236970904026629423818658290056232060681483294144265036190631948658729007499168817765401811016935499408286549116587968275024074858743206886388484442292444361114894697687283700075265773174458417136335623538446688051971885403414548766117087127199338911089952507580498134065046350399072231532731270561580738862149938300849669188368930588780221072668109548275410205632201115227326464865655033821031964923034151084755385977030145103848782774999613642193889259597010269780670295705202502060093309379061244441429981935662530177383350111230525565405402731445672773942990947458590206591279489409152071024920007774058565782684300054260530323812161531835349574153634264461548256966022977485355951056576452672368443566202446460539803266542959992206833340769137204752437005355058350525068426001106429843881682624177777705363749843371211480649507328723556315169176180706262366212149263303796706109713866522393286497790668523473801433819639634594985049127236288918615381456709203157571446105821131117533673729225953476088870961822305825964618025747163902697065762591964205053663140418312422174287634568251139753626782487707245568965354583486178636451476315536523439171551277646717441101047888507090616778453084740611644682936023829423643750819628117589879102792010630504426512682814053452209699242611651049700210077335005927371074572675441379547181971318506657732529342832106948303954449278223220158477671112591737364723799001443913384816727276044366814309323321259497563547436180925865859582675547647237658258033862979878228953404582183979504051882908649860357768711099034321479032606476567662349700728782064062514417522518100722601056721033223966344494657442552522880649865821581297436972423790100302719216361948978671398089895081134298415176217328268575999208810488246118576759340177598273076620333527244933748212923063480764512758049383981647047288360962426035178789129911350767629035788719455897432026805105623003704952880247357208100130214240057316479954408077142462470255068143046255377546885731486584368969513067130478597941632980056875775924456703786410704847865241871362197789806010380114534157779682253970117773529225066338795159132379441816255837891435459177017477928847459884873667918840756639978283544846670776805975657635916454379196500679028623309176437295278399884032821309433384466589797062453918074603103348575098137000687220906591374867047747501236420659917198468385999167458585891497007072907309043714845159986823924796331144098746102813564834046925479073314608377176199504109358006330253077453803605719520839450727817097336926185115035424650538583723031489696667041770120447664633097849838969055419764431462721816810564931180140575241073751068403519194262596765089038025265800148795302700337639122134507232433078620253333008708043514935636960798750546284768630990991649491910174658678528994450109590659203680350440937429898344773576583344418346003784202415569142411430050459251387367285690293276925498950114966134790978445697648160612375029724000933223981499582517221049663225646708655613156930730679938375047246920070482631973690709761812282469895479826090251895518245428729776559486700706744330478169551740360282534105390995212168299517192246838728593810217385287120943608198175115141227929774002112712783863234003015459653346996805543400949039483575441253977651678140519133516731202692659579533812971033941164898887987647607522676682362450401596856032604480514656515636466904500485945552905248208455764546474250745524493908634002528628856271009217003424445200749366566911327107292732420065088222366545133119033531416196019601613473632888725368715506568273148210730027314610623036591575246342953751722163885599809864789019040112088720226853961018046806726393770863460554637622007025533909925914353807485481093039671431701556409542565964141359718390837713084129883615063958587195333353686082175561909739661363495448908493430922887285962496585498833309916093651975367044422429572434096543553879526411923171193051688748769496703890690268927209022069726434873317996507528713137837199564734732457160897307064345139199476789865022724558459378375980570044867905182384939147515288669448803225370948215099734455869284493251637506079951446973334597356631277275846292755650492499828079627388137321042649605013323422077958937947795314602348307481397592869276120506673177860120995735596090392219702660846907307435974075760531216603074156661398921963244150403569689364771124667822006586846853050049379474637629147245540836885624844251033031024864655388949997675388494878213155306991340517515562115269338937281749309797243235104680545671064446220822668715731787930613921244993813406635809993123922260975154602823749134552167598554284363988864312960523658710879801376573254015187321820920912138805607752813655883990111112970115808486213837281535899482535760714667486418060324173723465964913239110511951550953373864401593937092061876342242879935968322273581332035536399205769639021348577001063975911482802753848898639806361456720852617214919168097864226943093570325762010072054460393400043850071706390167990909341545509114756257355639580467801458799226498333022700761166184961759852436475794549010699272341606726526103568011723840030670585912195922791745448863244439172910967917377555602372295509124345115814806860043219087639792791091626929336509404724327108915401317510040961943456749700902941388363308512784339549159148250517869042464169048049574149975211551406548725355555227367843207621805028731243328809680051109918751090833328533802203794856830129518325167706108482719365620619593840814375885031220971018527808064431524750653647827901428031663675480225734485842788198790512574313348048248187899232997951876888646866601267403477769002463176284084659482204809245844636343859378154152018785006405642709317971490078554188221979610672548356561883578961000433452734063500583663957644343227843201367906018408783416242244952767256138402593467806279400334636917715860584592646916401576523651866266539523689659115449526618339280635624527895075694354892742798534310619569137754669860440400472650808153329339497834979854803185874066125424122152647475646148597956233712900061874046453966145396180564797249525718126722116137569759649141034245688971942381462662673174918387725394763000637573979797037370101305050893321234679092172382467435789977759835109917888525016623490183116469872252366163065384440400048250954153367559733155551275055051205161383463955940775848157780298237345112331336305209400721562804846872543214123181951795529644342787059698961344975908397931523910632842303067143197237745328074500501657971915097433201078038381422139312288340744849982027842105237429161663741757696392538961821643854112070023256500875492536936281325466594051044842818442640955126952520111342063835389244456213187544320814220917920586523347097648500479112288569344915933114416069404719872015316221357882868445842719163456403613018362334652757473171801813518596016210655993687870220087356801690499785629658043486971192942509731391449616521357458922901717086933005813193533511194977280542875180547538063162442411051343003216853133352844557984495713903192591232377801169624450512036340488882462739361277931385051642711012334065183562234260833464832693071611263048476885509147565254018731125744653638506113955215567646020603422033607133599897199067452867815750985125946301760766277620631978085609873072515582401172115638168845979163079528894408292873494700264229216762860655244631026660264853939177784237331504978093189857861152824663486537750345735609032346144225441458921472977685886898624905381281038345790139770518834771396436151128584388746547200680337733294910116023532532868931182290141241502529644138889864273939117874840102435793547541676739409246063102225307509450403103165769147743363547058411666035141312947555484870969633337711199756718755206398348074129439171520765057650212840865939128926866076486200895508810667832026935505563526433334968504497025472191181058665079434957845822037871074162519017353192864004497660255611289057863504331367112629664838499643232003151085560547207164631996758690451293105674557111959060276765375610369090111218316273020828593547383152089213624239460796758426697939941960086388062237918638163403238128675511850099482859725356181572789337241070346357926311033260845868936220167528200333676843212575607588237692023606906076776565173997087926464623479519816639790243757042055631656164859652730242715756627208305172727228355874656057783044681921109881337963185323955949159229781874995560303761148098393974861699176529640296058007964802563159807382099105104774477678708901744169139709532514405274489532966778375099456063666321602364114037507492394269047090307110507430689731126096439309148448296075823662786884726675553665365589306766700084069149838743574873002540271656920798942392603851145368580344225277761106211165893004838477773560528307604440270392536718142313406878641053633735989409580154808830920831867629503843104242263247924281799781370902369879079750867217661288291869085384743001856324145870115283378556908776599881801199675198889763338519223384825406763586681986039179086427639253850929351798088101710926054214467423933517560329429249772005735107090071507346776360886801408247825571819783859870624362214590709347707282571438500542007240936473421398963208479810360690509706803160156721798430542093715378948905147096544369864294918491746977552650760954515040568439378320532965808921803878614950118750600251591621448505477648575820845940888682097660872168666433907546712502957808894113845480199560947044553546495659305221797240222692159380474801479811314543475591117560347271249384496464789842129883049340422435998063770154516683770690391762621592486450380739769658416834431869604237638522977232179174021106658851560253303498706398685188057147270666010474316429430373496964545984826677951192033640839278342956496244698648144606621409653857280559895731657853081505392450176770393965626996092494223147790424087466627067884770913033766497468634680801849771099165440527450314390482877747199971994277592541453180380879332155986623511729606289706047352690205455831355344443188251252707246496465488374903213199094359152580244221968432094116470366004818089022435249123328336861907165138727857200597307589314554859279371012201729460775196221061403671521190601801918631406728642989161830259803599753518536233441559546906647862968888655804623303385157083085452685814385344719878196392585172734627506152731184361357301841923211206032869941555529571743860060557483177408572109082263120169320925790415293383724876469251674046956144184370481075047169932877934609715831968605582373419760430179398895110492085527121408076107324524685174155574818600489097697252019104850085153348713876426677715344637500144577929453290152512523348029563374115555470912188194883218002456925269526181051361524162521511360258370162670274214270364681899171789849846087289296856977263165721807403776699890207994935748979957656427674387977004137616383154258027259309956877542610270040177957291575997352887956329640408340062846326685932889448970654813581317642873229161830191769362939073018344082164904653259415300834137595457926293224872279434750818697703226637451279654726424105364174472017994590874922822141147138665684820323815827773503502201106771348332343161832058024589418910717911547690402552692746499192867062257158826863293018954131278672101799958065517412702052534295768772435264207716919168429253194432884863428863969888248566279848284053814287195572458193970110664360199853171930208644985730815657176415241954917555070257311991077944181204201302846619701866333043325931167985045807363531516267938440509323943099988206094956292234808610238099342285937983919636431043372407207932840819404433190660812512849921105299784515397999471341861075557933763536817086043324846952483839429564144392628665869703887685513666812181088045394167418643525190503025928914422111123737664679874804643403789373758646230510672565602855358439544769134873390174758285316413658932738321096925155864281692325635122802028031367870231009696457885023145149160275636033004065507943594937187497050383127436570422091479349463073830439247549279039676294578358084073175116251585283960804631337240263496137648552389833927649361546611527489583562666105233167006751587703260342022755333614385260317970181948650553421867657128718337177826263340137967279629318639007421331018914802370772245386803889846905727941093690173259913239514698287893638303383824326898713965762525217016999409815417108631952229123751912360244208529479134013010300165550046194747942974445147574203601339445176124573177740642487122274830110154367765567958052734627106036098083278285449292525226131730415653232289860046515966130232883957342706354505149602522321819596435087079912097338210348719362298981616317149693758687376644621853782237853302580858963937641744567454679262429560921083891120634519193445145727887608756176741058156271936026995380124904141748309651179336892738242930479853527516629675805264581329192746059522377769458028232257799677541264067762018546848127101523673221141267024076329684166812548417070784033466921069245329272191880813895877003345187454687574326578831796076592629459723055122846918177203644827087325992042735276432366380267348742570213276177493111980548382561411140771672240021866076532723750696718732074227514416777917235411209274065423241756964740747093731537202622999753278702351298099210351515496267614000437902936890044636161568132324229608794869405314063870070741296388218321397386780974731544195896399782565149846769723798573104293254141150149858250989344674563594096655812213435952188347611352316592952785660623220329103315383148166617295838783428313657038979981860654798239985919525252411328992653917923925564450715645320434320544646581381412254152515274766219861126510308445984324374278245524740541052415648074826569283644142022919629683893850447446113895608190667380543273913453899935739461431640543572018052865084060689516694189989695570496951602554465224733769607709467425177586027410425004851430738210511722091699088709705234851670995356028691694274412743492217228140993738278630449123841662770730080066993872762898106155372255630278601353985947932884148146411516918024018999204922044262281458360055057455517620545601405930475600873655415108184014471544234296956336615701974804955466162522315401997825828778957323996325803382315468465439248616269740388115915103631375451389854651086836327877828298345477673623774731309011607219680433063692038003854887659541130219248323562820582269684891985402400905542235163207747431910145275794290184638064044852679499168709930153574880856932970836520199309991516341672844819409509825565843145787699144563781343674611363834621069349400825109253573055617670964564841419936676264981670062712784630931732396912720065789715067353316120323843042010270563722913722615642999320640500689451258664365652365534035017312377413782847496232512838466574350705076186521834487315111781870486095281017979134114921453903541378643377786501711586655888623878478222423951819494075040208726531264932099964446107939350890411378278536315977271645062542273220389980583838255586195952751119424359003382210265180335338167541247463806213562259811168821984034376591443919195346595156227556622457824966706887117516009262719533374725196032485157998985569905406557838735746608855421772430739426141554495057861900056224277299345917670203412969655971764421368499209058534073933324103459619261959883137687335715825937281872663924252780595836108117200628592829466215112315385489028825065362027851516847102401908490491897727237583537613928090932196069098485688944633678174796056198753352516322939717937503595880218413431112975866181342474872906553401077097748899517737214390003872600034576000503315294177020999924811639543222988443416070367592880546140050944057324651719395189125405311951619145338700516967986298904608558108918602745105585194821194818791044162565251497370530390879574869205600350582013108764114633386053961988286196425630394822690958793896522855755677814230983745872498309864947944796678032931374586628642722622474412675513316577180742923468663907236987128203624226981538558479708530918779707500577996620281899063502190604037833582444177633490320601415588330337110132148568073708865481741676021039984252909378027581429285204523532453265017602973793471607095632569958096518993359035206753018487573834501089020892869281093873421806290365557943739589997864203918458842274114866859373164098918969802668855579250805316552222599750195570960270032139453709398662764649670689544171114272386670576889238226205555056543012997600806473357838519723789626423690815772176220896740409992738450034349769886074428331723912097280828549092881432472722454659976049966107677727096057460183667167883497472348085187039404406241863825519191057608494616466984339614979386949890148107946090442642450775952131524944595417336516742288763415803313102630356866146765167818459418935681696761335303605271466956748585578341689091894453914293016045544467497598925788371361409618227615571096611951107231321233975160062153781388684742311264932706666774976568653908358675509669013968788490070531522811075250395099506149988198062825691481621793930850801617961425753372539077740159154495947914937061015605881144949543666080975685081207334690825829877850718211658853617434799864757605178734234888857193243537532766903090406608640906826170050737007480455519061256607333105755687004125612367721361949199013375755332197886493100457701080323601014594767448390446890273497489793261717458456894501354920306947571306121152851890996863026716847406638466117522722344108996685140129494612599136105400171987413170409112036382341241823899116853662673372520019334230464895303295171956627801641344733784388646927550270017199540392352235383366085447082994252672987181924776046536213235144549128425854523275623078085305085780835496146001281742354265471487954384872266266499225826364274144712622975095416521533693471203649669886411167374666465026261438406215840382026850645330597494073543391386793332660516025959645452445487463732178206268885717565470133101266573533828229851471080780285501537000729641362807035072123311597196291281139383860520427194287421194804104321977568841275774962717810995128390918069986775680349460282480308003843523999588097038177057043649308422317506033305398095383302001010093581682090311571162484097112298616533929231590123961982620189189916526311360747614648185293700364488826344095177023886557075483899135004812450570429227467467187125406799990486045967331770646012283270753820547006970430909272964719644665045708158028899850351071750180502782843115009255268970659767052444562246766125243670127371869990179492074230615263561840743099287919275590711446375582805720490375870435364562351859498356100410490600390550155531551638022564214554791628133519235770817966546265337011957254203592718770606357165915023091758751764739918887501476528531090563923788202137181987531264014300248068587496460010453976429857514778815559518384712890825681782114431438448094341971975803532222515928000220463621627932453866484048387888866239639504504092503743237519878658096481109029253689845723036746328613969510678261966729497499786980535796392186274407063482190269391614921758449879477278119799575166953132280022834648698121417760863684445700955491926225359899397856906013608004175640914868661491225460648710097559643182454111679250905675667483741125239809941968494472561281359108002495710338413688132342428560767376646417222174197876147246601027135403562988070984771020016557637432105418614195514013825051834407383880741834422671371093182332646036176910048273556547463306880380331607800285457242475559076527343945937578419146124433151441528487993782093480284421929502071487908815216184951767876682676063715389366872934473438571784639927953344518029382831259002882133933632871383398360204536171904927453362064440985491808805170205884140404953991025022615884516994681112646938648260902056121476152224607970034675158448666500430149582653052502154936744441692480963724307310350610069343544191185347188412208512310601719974349256571181520419840179503964808734723148255984244055334426004569672929349247954750963953187119729323616144818547749654589738739695350388969620919761659375407396788545361930573193193421278584726026762376690192399359958665101748494822655679837636146766036777576203592240735230274635220572782405248188827148447607542353101677983945476608203164775406195612767069424543732545541180310754086585910672776547264829850069515780663546574510577765037324003432315218052146597656106641917719174306570896990342336401259660525380067630931601533335344816250702291983142433153056064647347441325590148392984332969317261757800425522637761875065965614745683633995781594899646968698513193397972550664048667141018449403705228054215897561457418754098713092185260165380751972619435799637875614315591975144554254914694802713959977214994207743585902025999036797397075086037659636681045219938855744579421165116670265373468270290533333220379671941097832236973770974741152739644348633098556934355036653771011288406884422667493800242567140355466032151685099112476392155238190353433549890913287245809942884071409241252841412345549056752389379468607095793680453972515071088009594755472357570171345651882758595108991961006428188413664162140999368161739581666582593624396682515779009997778036982508535874872357272186764156844295863074589058132975165509501675684483031626229741354445305945784075472059279923838548014270484784354077458809868898454429806863187361568996142734756087736425222570643850593259000026839686544759578296619035294259582055960465597801304762195040759497165485048915483836012466926731499708157317359665982232946557180049723302617656891524361575397530954430665368687572774212281607026870495774535391208927079666545565993511098745962879654088138875462456838374300835490750779383923410903294529192814076490187417904878154253428741994255005749785067188618721576854065252200460907624581886500248066180447228509985418727377610365004081716940645418834776964140601001274797097849754117541368794316690745691322840543980089471932730347229057559578832738206036851089961883084147737862402879286625236613082395923497380882146964078548083777707319654139691806618594514994800671106172267978962304578115458459613815459025412677779454921062368889377008432504507388735593118102048232458343770384857807648138735849200589709491881045590655625071565344716163347940426028994794208537089725846259704763355009023657507098107009333501403509743687396157272601942139566214192658407684710362922152226710185604883336186077629520636790438115132022279510906609537247112924413122785025968170866873773228874803219143109831920761017990265975182476537471134903585993605735403014730088467110452163296692500877110343132964692381220448770126403678650896885873742193514085786209586422752529505475273195382495707097817494543995674448419763646168990294096388895977954018750355313457166428892416014344995358976721936487614634090917216823067917731227812112588178813880766509912010543088305594603504362954009358527059007285065563454629623726089145736659686713738082731601543606584624906658519357740703088530737233008106523016576360043795257805779597239739477306569989439453684237143461518282540545516934553748386374605031220090210773354060236327840031715225827334960460895561409075287585301403666079594185691654124009452629532221776778368019733546672892458643879158941280281381984131416901980293462514198381792174908146731513229530029334332885734258848940869314902817039701311724515107587492386712817615830214694973165235089538905166182538345908831658281773091235077157849316949572796580017087753635061981103127083259741039234664383851650410048170851903857520920599277863623485134265749740932339140276411873367217438733277250138729868410134133687856655725586620144672746618433636137481630546141644282655914965972578802808204128836752628699607821612176906266281961803593225264496039736896087886869109815556414897827361352038193555838677578961866777233791795462095726760068271008301414451911086834572002996226971520848915111683857861347587482927804150724483797524004971527624014590639932724209807190727033261994014838076840947305242010815941841674382672082653721952497983127495136526355411433834723832928920364058435239260071299382980122177213577266888850962599273801448915383508682458328587894273805592327060432491745828582767556180938483112420991823738704085441249544786173531277841697606362980868972022317350167485425991123675100691080039878684211924493350646395558220562053839937805840994425353162344752148655437033107764895284744554997604942255290028438230715086846310608675463975316929237199371447394589073977756202460721363624744720302655479372097568037253136212096709252307715467170659954022500511854536681332782067842908432660457544049600434372750304034746996503137492618601297757578935031777627536655921383117827747122642439679793899843097320904516210615192766152044090239169714102558302015510041396047877863907548171130920429457399382878300248275818496307786882794766847988074469734640328963397904172046043577560929123065982578145647612487442283626038155921579847788891981079451589529402243037803090850197926616585303701201092324042340968381511311630070478747009873790845487610770437561235712678407375904072507137053387454834184506867144939813427766680154437087433769970548788042995852533558775359059266916670830577972559428264547757866058569133762915853536748919787120686205328585207288256599720620339570566127958312396672271121175084162186350648863496014548076773233343162990528774135925055093721804074665667313352135531053222210103239659596908791727239991181112918723844864930726583800832335637328935353496706323423967993259224720412458451221268972549535808046195612011220008394640879020388569319186284817965951023683322022678014908743565345717814564965221866465158155771758309742593733466343279595936076664682639306484484746595989923550893650100124365113730913529219280158708351366429204758054430100272342046891174500760891687557473681616222497001920742534817543596062171779525163504325739934062772325622737847536759932610057829547794434346306220398080925051371743883760454754404072448504066048608040676442876357277050744160077288411637027893489220895438382472355221201117166537978440226863846370695059370634627693362326511408658106815858306931868643772960085223262917515784156982363035843490734055651566133072107916321130630981652622674868697732447685911572525503977307988201724723474638979784498840116315234840149295965680090821161324603874322939962878806682658108003686201603419450226138448932761974493596536941886064813224425360218854069842866499788170293983259124410013555436021185356873432419546228082196219044854622878393274007039554858285750685846769117266420370030997076503030431447086779088354831803000964349227030781225090137973018354137091315539334346752100862762413238509140604939767690097151054127966472544865809867552672205540426914617680037094187570030631977575370197473136138331830707619404935666452630706770818003624542495915799747901462013639247296612445770672168658824359957904610930246164812909905953069813286199845119102803577374299940718036805870311171861247655109096394150833183050813256398976403597103612366212681724124697831782329215656741580224850826572434218970697158705050874265740621273309254867436429833568689003623919987242868821657592222958801773324300428211370174207103471110349898963466151691621103633603922981570447749295218271742046144135539575230977151020528966470362651917427920322906094446157884756442391327746070931032611307379118335329626329868034909031476456389787646838103854396763299586344703887055901147128417284679677907926935754881633204061819885141461127184173127601549097737393446309798398309990929662520933631330245316157018270069196018709588606380015044061726991484806155894032380706194192140101640828980645001682148225459277456462549652216449132545584399208077575699494888759060117313223066203398256877721170287234354432509699167244704787260222528200813529756636686668039814131836988475913019341384002093572098537536321254746491428169843990958972369232493981043509044952921569014977628194943225138479762530135802749051619792140221471078114762873083933959149397222418892291879010607724770229391988477153902732022185743306723596866358626540598302249759484910283126339146414417822530816074211463618480228287819474059232151030394234694338168488480842971872423811890789950512408100716844822789117667266985295528587202367859706046706019120184991055287350517276828517332149014133662840642813810359942982270725088526052800483662427950473424578363527394381359591259244958989528194191845142581540925476621659419362055902011239326667600234055598936075560153369418282293730537947555110164350477476629477689005333276874483735891375334871762991911165493306762597644491856315596506205560825627292699697436355149474236398971843968707958469853940973708359335622764279783703870180932138004390648602953225632019107195947304180870984626530094892378103941901166949760977276051325543932103457399947514921721438271767176219871439707023206002238576444778415738797038413499776117142772659878420930070382789064658625197435082737346406803200337593281954460286659921638824941996705123661684272428261775233449763515122335246501796358933358424472196317570197397116155711407269730386567999684947534594549340881876777841213570992999911599307547626954082513473171428752747008370222773013659889580863573703032100470815688216051162953998384486344236679018749389595292833132851000516598478132697603107496681278222594582117010536976688952308195458774205905597889217414957456649491575695046281748585185247980705608806729077797338045767248051432254470787937106507166795654343009611965889380894373859229979509174882418608713294514003929517767340539435384854886922292887120213686833246753715627307712148460185339238072389837278827669051551507948922625456899578003640300496814369126894063348815035683157191344893176097334127919634458903467801636307351707218457833517397336648577340165581601894689507032708501908888629137711125576814858910737118327642382518421218033533230686869733150923820666443588118817014689333392222899959213718833814080804358228963306234683505912404416599194815544721056061459946369538144819032573735081133909288274177703133786591783126178483438020784874884493191006963501226181337762825956302543015013460071287897761233660532412742371693700980712913851965413361597515449708043299767753002334887219192702904591474509430861448484666218012118102329309253362435180813557502902791032828579591475788108353179965627461121185205028576408979471889819427325251650869015680479668235469555919355771230861405531005860837042989959441895098305963336201627678574716976198552197237969623525212977707565616692705136562313990150466393551920682367881159624124873840562860016593669849407928380205005133861529279512756338722950802609293311523234683963165800546883206326868603250675909858959764414569045320360899771235537297756256090489143213997180528580135324409534507085353160499103795868266249711236026951591828656632090886861917735945921355559254505932712058994140302916445453196778879087228603888573152538983150741345667627133641681986881382962499179553795077716697033975157648566728091853553280379352398984050343972627568537302666051785016538278493071007760225474168310937997926871609869754339225680645848942386642705071786908376800828748291466680556043331281861820165480027009366703640372748394123521171555198276995681779216468620058098626240081016410438893657224748471139917449591631512632576605485208977597094382749874213834890336804243884583682024581213458422712604806237713613250299556744439811727897941570298160332292605362160905039005156247972887557426950699668696256235591462069685156827717827280564650107818448461178237851035692334407161433346795750176408465998461365839741409320933992283740146530918568484081110930680818554775795903392835249862882880582220839114630941914461259127579327437249065556434647267331242227466214723569867289483561488552747795967068757221107208014243460126460185427518385955036938362375712694809634742818816292018478987408937580725432225731323309911807710032512507719636784110951292796548323266879151440506204401051699341098101397441512379687651331977364356641972239704338051458707905089159854753852954802640424426234662438627873902847470734953837509018368242366949030399663282591583218659862764343902678628889384126474666990656632823778404798763054403948558339509943908566282204526915293988295969223506561784001844455107167991751543176649341429084748338335539899884435722171418480857653912836816016864666609296437396588580522935060311421947167729698383865916090121577349744731795306527637788857484902249870495812908134187321938484227910397640849291416004681920129018675445129152773072338693289222831326627023577478965063279409317846382600317825700466446968438925131691574267977491018562477223817602714245619659621977639083051212574831773400858801827801800726329487294745528321904799035161807613957902701154605224166462427520391534658197291935448399996342431629691303691802639621450582027497064063533540447013752627792425403378367300587838284288320458313727095136744182858684592182006074591793185406637863522754882537877211060828295256231097427162892138035430332649666706272171985943162670810757192255539272157898237445540542441277535086572111437548294510003656630225932867556947684677704559673857635121718631744952981984493685916174640181399128804911413910239657138579475559131429259473569797303899560200970674888567390738221777078887388519129969759750363990395451828759391751144792328900888937302857459336149854936372656801818051291056583913340488101760486767622953492975806195871296450865811352902199931601084929480075125254201138778612832658626020169175631508877734690081957447167825295553359033010390444056546013991594329688920504478966299764579489582748296399681273494321934017811868373834058888367058772070876046241491023189194953612174047492178638902194170949152159983205797000812631964666360823083020306373414980054368481869259219007667180040675442466772722019655024182397039264905915691222257042315219833535376658095447283641320796725240565569561842614255678529657142001067701334990714815930866028756533076771777421901438557444166753995407850086453250739354567510968872671654314167268149153719796584868396847493059633915237360546552579303127697184964358470132321174666951024447455373304615417140405849963629350432464924954890731510647710695531282645117847368411506416455211923913684304283781391401754347024978678684841168546511667678659328401300930403058344636528538033596627537649475268496264184563778269969465397083890147601852387732132422821224091260962026445856210276828898053240953101043518641776796736661450362446342675114760697683434193496336048629084546422679882995646484195817118611124642646611897926712712134205486440609888451414655727656726808541542852497207748211053143450873626607245049792198838698621788802344023274510897270311567039215917859552094929604112858090425637331927345285686948146626346377973028368907779170615453872169247244958007463639593645202982182358936292261339421004476468660284631635400216856711229420385413011235532265543439137231229834904443184543559804882465354066076209979253587359430430499600926213858803925395485236644895153617206022746154066641129228918904125866508041860158773717661001268807741137866065735978718424156954849244854586168396976654860849367465726042113490876442650563229058448048148921422313254553658654369698402105841035693109244516258712987755102120253920657007156712876773617836123101929720650608621229065210497759582923244305638161737826635237544442024969116558592595874068958185885245588222791266579231308068607990827513901478301222695793972802107446366333581033246290965494358802951868121333838701709758275234053900136129290437793913147528586377631563492329878747152886477693123632402559733707378000987212366492572579246933224063903259707775032520422906624251327393586078459697355461609723203171287537680397814119475044167114948427932439003130844033558955075016428567927129384004926305900563446013087974422395933264951199454052197733127470361112575780758019743038633610160769896405653297530573769690702705750514192857950249133135215999702807742089379897379959359448214141393795366436374877142395792852978308292510738941885300129558481925720364755351312903717707399647539478587582125554633955596547856627202445584059686604765165980109448932723040781065696269335191175010053413413561490989078011004171796746389967312116696295196693237164168685194188424984900197093370977979023615049328838643824766577460458816738914348091670108668309798877135188289702570250708825670806161586916588393776705167601747601946254428750900610144497005009831238572453324010714906674332229644983608973635426248241747734016510596963825948682876303193564118614812299269162065209870115278893030457843030190306173978848218711875837833112248489394538294653509921215479253738304329598652978494511435594610442511164245043191911320385512780747908581512246425772095089742362566829344667230547446628277446900897231161147618774130693965886265672682870517014501466927375325225840381450400563720160819562548267673807355123269126138637089894986617888368692666790520405953893310826358335645994420710054109186847754983670148218716091528902681277286372289129962667378340900453489539142219661998285274074987106501630747169825071916984005258330445797016843126290528507366295287492392755200666394661844722299783030761829304467686528454981274844640474241815992627628120775062859781209485056852675482395331008520747155539525334939563858688628193356690266585374939137661640670664711855241854529585349903302539219242104925701052001355606578135217645498773061151785216135454346891123666252353549776867333963299658013283407762239206188922777552906760431345052032127423157350961093725576767567219148953675483984933510690339042279060551856422021935115483529536016736769659436862243537994635191953614205551402212061459179416108760184219318042908371800288571884083961613113689279339458427045845429602515227556701083064079091176041719555629362341141540788871095108708765603567955654118327926930988037652137996372878874450872123507091919743851785214901679735502332239269332026740505443175604358856677458592613015516838902731536846997775477678611642210428175414531412118844448487098179399101823213127959440035575996402149636534847582078712275253638047402677709784728095157708048280776442012552077319105386210237168681175643240722713035008574446089147370864898805112799744979079226791025796213573113011518317886778280711221348756972866486139627683628320789548201178780480777420251750719510750205193793269810285384896324093649799384391501128304208513043131632791603962451297619453614298470595901632991020654419267120957561199531424919823179186299013782030499089847310775288791140891743874869166180610923930969259827094427784645530092759081108622779387890950018304970441923785156125910659603538928157572248517140340016215811583430528605578952762882367666522537136492079227818955846566658435189825445974671772988020347550368622306917351911691519705171920490161555411782087486797683279376184826365620198983695872650459195126291114571319519853141988803692042968487754369016511222495344880650416537639687362012102080704998065182894362992032860405141949126804336014229794828546133537129320198143854846856636705879541437098664033896442166561169944408854041341707821151575474374942417790182331312727446797945019408058487729884738433382854539095889110997506963431426356755568641946342327889749403322810006620334905550548704406709806508759341018490967972427180880464164295847185954724474053029115488537067699368125678934559750295495080759728920838933742017621122211994770091897993212362529057764508339588638993869681180890690267743784345459344220594991999002206558646050448986193353289604620204373865167468074574054304687635416341756384686437614526764689687237175565579797988952218681139135070035031405268449202870629869791258773937416940957376021754392688936427976808741728156842907390683420828678489807700872487047500435382131994194289355017232665954056910113744560617635595348789333407586516665456138755321484912071420595141724502693487988234730917492669992530412677957966701043035653852374955849824156872394336748341456744215273220455818121402822662748964181891232781714550834331043264617982610426224841542192491755424779495189699555225378368555889072201477240207327338789134327908063936757592605004434472188559704220123040868124331953796536151202744966364809214179451542484576346132801237162051616248207035731953381762372582840844508581415692404904057835821844322552299043784684163970312707984657062178378104688014183159627730309301761848099417189258390279200827218730553780696658832608879942242942329724527870378361291331719505250303892671379524636552553156486172372291123095616091400825698808209844023568516515265957357407954030547582416161939817946733360685082268138975507214845679189590708512061293898637429224440033650924666327643448674945992245202832591017844444670301194164644647329095032650715086164519645718950921612677378387611448295479576690469058727868343689522429222082111211331579015671602334414423879453590515931496112394202959950850155463831206893505481846333597507960857643522048880773820860768922685894815654374950965959752272193303370192387829679366433383735643046252494281564024361284839858713665705571377008914677342415156375767300901005821234104015011503381604685539316146211542513628585591539572892613828613336818999485841039190707817932441388459755911898420983914783951822594055738788048861109829506974139739686721550892501623186994647803090163129268757023204310712127128490699655949102692764814684328941043950122536193448093103719348618484604763592504859353018486717326944970552542814967107731743410898308453840366649800098020252412961842991302028976363005029037090356902993577393256239960639333780697880062492618746489484331731297639961129549151828842980591847305193722211197317126884855377772357128052423408749412790421010448728184952073010266534901697565395115379998598566062324057999331497376894318669168742467730130977420182264439977972780401930278713728719225762148084733055347268910592042765509879353893644853066411650404617779001239170534725850885703844917534129473642868310475762178342000517435794713102805698607021298096228857919985644704348468103051509158586860206915975560393009117010142396644409399123157140433643713539258067346963143885234350750277457945866801234043594093749496706678416226813071737217492791380970497792412023380043920914791977204945299897374793405532340501763944291252945721164212200541845211093052946545086066856056897527972875036865629774555219128693671051418868681554979885276179551573963783812036940721402339222207348832539432129751551709875302251742076971189496928225888485885622696950478697534016411658824593200176359266692593530470580208357818428802660612659067250257019382545783502528297608906165941281252666522086455697722289898887458739984758387574336182578479864574130659033507039433411748290156379226374129180685028843724690585108002564922322628372601459894262324140134744951651103437855886822150952028073555141555989448100522894470495342181715530783381651811934981866341911300977835102527475082173440425971551644291858696665520755993040534514424453848152367658335729907216086475830002178114514756502054552807118090913376790683427270415093047798561953739645614618030244914660453098275588281371198107181114607558483017752615015089101208940400170052666530506512107467494158152546916193303840902873284478879104581473705319182008613270103786239499810506154428122663134329506783237572811281425061641222114030932301387384107981849073230733442351336497408526849636445682169927830876550742832933220924942186720012245600531952951914099935203160608852555573854861244097016144428368288134101238070785705603185240644595540167071287312791144751877702716461366785336842208655809013532748547970277808314164356354550022451310224499527315992714277681312882304479369865976086784766723018901444724303596852208146099247725863976010714409164019107224889444250432316550723961751636533838991940706312636002727401692544453057139735124061401441386192242740034811813068252649613084998092146241968133474375925806653621208831271368130101648680970019626992670971546707086039522309307023847249837250052161292562190385907486718585920216203769689452876281885136454109282728043917393878339786595312922713573193549529969104762801589373421521270691444898487984075160054167934943335288053407211009593289898469023883921208503053816188653541449549509002380730601104464669395447221307568796382269304927688083304284307792451283384361526280470964366253836335286008511917747467324794911640538793498749607832126336973376383698932957060227019304917987213709806751741914311781333065417337008697179810094290533933480054413469416284824899031513470862115120637128966961300331910595870792174259942091650284060748197812804181500001991693957718195066455667240262710920411497945224008023020675251713002950110043425858781793904750084652540859020493449270868818106231595623322853201804904559074300190025261950700554616412116473835132899550258067826481279620727536879456294220992140640793311816039406713702757191391387829545620430973283286425644246214458598620324386445917622184563502920255837401830474048145216407877129001851486849464044240752655512310789533679923907089385378145343655853178099993057094100909222921384443858240598519907163700844255956735578438917915669436717957769805015855091709672495157336135531380667013038879105898526388961575492472000961938717637507091216874933307521972042200397384471362017404843358568148813452182259074352458524941557586940434411424246399537167341351534122362997279636035767846592616566646761424361966842488734509197210281779661908110530777372068086600862346731605616923584984091619640402186076546606875544448724990912727744252364868237913094013105915323189996521836020481608063685587461673832268110627371105970165282840447336378038268065320743784758934166589012060189411515898055552746717118656247961396262550929614123546593763336571732162822065022567943300013350308544697877738478181371991496345108188656029678261805694047648014188070906604035037002740958523398196439895859344505841012799108069717138377839719523620411668418502147585963256068400624625922062274135358594307753672018102991191091453549202344771585307073243856107593772040489817475613302851939405283772751394612657726348835029707967278106986780822846171831692907662231475634471032758709031733741516834131131271226849789354404138994730502361007783047225452387901847543083501232422062803146385070273447151457459725547970529212540416503697690307110250737397970010071441782599083976750876158059241871340248941370962174333994218415715251964842087722724542173423029372010998765856940457741088206171782395413428510027275241826251395890341345835902692447762914537298507894663976153234426096832696088178817976252659143154916608765894512289637803365012061439849329642761109063324774858458674403235378774571836917841436325487361475135917168106760226796866453238839376446450707406435815274421852201156673051626192605656807092794304222130527250024180890940716478616201086599175228621437575786980103415363231281905229697312621322578209244927527428204660170427836306885796059295454949453101482297193827155931565404088266793905777935524849255960351946042766564194970369118233458654424714898413018589572995803592895541125258234168845808342492707122505704538444801517430504493307845407267580831209273835744233017160695504501712349381420416918134013898502717460442080886406876459114058483112912379746301180481571183264276975151964436536754756206343176606489635747831837569034225866255631856208829311561499916332712633296811663578055318126113409396356009946799084046548659169161236625601993592211417830669590184781746277549871916326050063393943310519937157721087713839908865154445797461625192444461018751343046167374018028632012467515752933193031940585861894582179347490648855810690241790903271404205381455943018627452161112178128483955828488804883319393704611820315523644201359357546584151784867003900221933129548326441217382200881981901499941664977533404759274282122189621092285763378128368869035086521700789752408684870287419029541252246918022035844041129537087789815991356914465380749929260149286763130697518369658368827087809414033664482349169973533039636167433266424811331496281935443462501125003647688784136351888247733647237473953843945695005164159894379734357791601211692859178838078900916083182874809933609768096186970325265989101024600663677892390752132110195390187169985514086989798997410993996057539636301933408008736741697069900034411470156905544922839825486242933999887951344247179431436694279770203093908867808715620085213754014087129537683759998331081405248295818039935543736172524476760220885662378132283379141798732050834362257780160598852385508989287130922822717297861353702345171623026043241045984105254801437387712145549257903665084390913577442002037738971365337548895098085141256411609790058422272441721686591098377254734608100092860175771416152405434703341215055407866489049964353385784898279263082530801327885556769014058731393506116175543413863347675721348694907512990683589398450508242468328561232537536969220288752441791930444198118509910167864326666879327806065819940207300063114911217609243957980403381253254618785284139259123716275925531018860559855651689174450386274109552190481254339755405270330360065216602823624975895298081956982121097383968690800001696103069107689467332983799834453291264305174712806671113714472717751818328113887810934243694166256533041486868499045394931977373330927433124824840494092495613955283893201825906222076016231269016957997497977477744352782993251784217108398361518818563149559054471496383085717258641860903633545289109103063265787497806215370530519082344362249367909798765253193109359002792730147421060178419685743824537260702682116001095952696395416805280317713859126068802277569242790432897342529123751225994023707137628134031770053748613595419844275638327347633999622006950544158561365048070654291753299074457673750096696828236893739453532630864720876621742269632578193504547746338073913397953340888800192359035189590744691871754502469761344755625716563341899056853928949572097285510213585403951943200984306814835829970765003815787557839186579586719656383031523737221004924193664628509660998711558309035919586232935059919534395509395813434248757393717252771593617867643716039704107874635225740015865254294811327354547173601198953720227657171766912032636879252339577213148974989099587209995526898983543436364813155118542367089005641189859923807248272079143442029916944300413081836890404140587596862312382130965392664468932356057805569086785341328348394290909731775277374186399749875909575288505997594710141660210059250867124559696477962415933714288419434659208074824219716431898619408448406528036733217537639574289490724028092940769991102957993374334258961197254828773128703790987511670608696748832295227306246489279589448186673964953628984356423863895144557358771601183487221194205436415624057656614481032970634217937098916535631937840868766468349733868107013616400706996274610535579903805309948308712462914285971134284730303378886122833932964880260991192962288576568519373025455125116442121995475779668413935529928533528726040858576892592202308228385576288457010843406435548400683556054430493047860206428699204852958570041526007427225284814140784346010636378576491966079267929132700733218462956204959275059389861753381562146058103562373433857139282385023276486053786331672414974184476935601073901864316455063914508803157946072803953379840517299646800235846586641430536563358315921469938468814684991312334860089949796963330324751495457002391405641713100204596462962309975411958847307229844437394554715060511083465890777043589345475862751579717039910591015387759507147785431300359075187890456300230461096437249408009121697296454948681958755036219193438947467975631358530513417279847614842350343620252349117661317373116280294884207969263677166849758542913175728269842205554632853171527364392756358573796629786465630617464395853441923882511334722351372299540302147643779671523064024535092508233215707355312373428495707863616543049417661380596345713073917317592760904240911480016177985505746711363261101222308889541057747017986269544234862815996058569465349696945469790407508008256523810199899960402678179030003267953068903423610641959630266741930811196539362173009736425618841411327253753101769252077887667136066764759329548641415521357195694918001211706862919351812665600757962441230801829019183815412123124761604469014944218124297364621636131000012491223273413699572482243709638321542885632847599097803567571187516730495117318324925672683306750898974031837194609418193257929089245227259545238256101772520099319734716432213084740563420025347695826473878924523756020979983933933242743252550646080964773666690237346669773462126590508102041708497835655657705279482366709420136512542593904396176115806801769735293464386693154099036197231350566396484540699133260370126467321044183882231211132793377022003118490027289025706297673977906219057831422267002467611983089377744990967396201484636036275584327658478391021837493692705815946764106754041415461597345247911254719720564316554208743432719638948608867079429524913595781182407435788662590871425794264204470426396199748052399751139725136596189845497176244633638365571309187128666869968988152455440939147107468214408878238836967076004572168357630253900881933103026724745062729637211113205097619762500863743352224984670729885059438481716473455521697966953970170931720518431079129103545454494614466839194024686971685567246322267922214074422389669141274636221160952400020136941398326151573342546731146912021272032249408582437067065175271852636592729991832512346227823656150679128029468534310634358602222710257695745619564407532906058772068555254499719695972662829307550172662449692203045231653132227860634068704723150744875026886511693916211819729160089088822668391235577318850289398245041034373763920441910357288255047711319291202364513410971553717923589569165143901572034643970584604918640555107388668190419638309469436384259862492719192234310554639252053710334790443934483250453235353475980019180067452900282012504965070209116271360438430514282236564655644693273285090673833110592584664871724424497481659312782746902536357917118105512149088962332763167443362810971906514904324034689332161517915614795288942913505884435732672868454368951094480982712809069115422126600823105538912971567041772601426212811938728424620527598918840980912398826456403979267953302543634360306814305301805888219339342208133272059585380932750287666934947047806210755873550441229778972875283840644772443196515865437343377951791110399696850836861574166973472150166119488912117379277113933746127967226774971519379729711269758046391529791251472933711762767332297357956726420104868148172504150581030248034842231364448254531116682552658683898043050559452581956070214781870120167424709478481244248839675219863494332411672282622474377357746750874139718551988431611034829943691660995316200054153926837479455948847627898461910545386417712749098760245815501738371179213484342179856600955602124585453879303487552171885343017729736986021831548423046481296524783572487658665734603004667609764670999147621121400097215227154151120342886260233047436740449951799101368301026886803574067455236288265935144210623962942865150900191218904386732620637967336155243393732638678784836949559237486931602614506505881980427521342398869720463162139741051203240856124161891537733627966481582483732044512870713895153656069502064969638242307382919049752089794167034511331873918948405390089072289517293404629881094447069716085441882933978950563473469200323482036286868092488314123948496025554767586263862610012095332748243736959650545663137394801241703421211165001842305375876809672957901195544647958003007477236710830641963422490584840469718870609940510463064197453697377986252693805760792967811914943016381376172248193254131635154330368583992640439782295853599604218591726186762192314608925570821292264701822271828845333742714542645234081127101056853303632102734063070608577084713668202676481969893124481646149168803305452673165337337095539806477867983590357951895301028874189711860306008443483683359061212907262509574823122309305927920505073322576125365628709125964386633950478878796975844244568628580035031596624779160136639420821086255122876894818565026602760923194073266610488319535763501093377068966768931613113821098404794921394948459810537694607195287529327568265959651400051662137317267619535357514744256999070331799916379277357246803352439451292170876765098804366287751187601377493835014024379055058624077882310429061420335017134340395860336833934216788812331151156637790529085280298657444836831973706094976014974245924519609250848486861819125434217938560752727058877872342543120116061284912632610664902952709649910345908903354529573050988522852997571733407941279604520175237484763793013622982815889633969547447146122224195018981974679435848966056770504112709817446330739207987877596641790961091815013983819659394336063488658883979606311966170373910185591356996977238895225073849001958344901517700927070707672026362764636752417161891347208646091682351989576062488807756651955839891657060774820525961537957854540237457510546053970357187773850840496034635771129866943948065910347401465164644540094352382357511666606570043394116090739639906369322385224530448294432832975676471980367514903651020901571771719574859173635029462523487209616169307717060844049038271109862894618067595889120167347163477423693232276838522317485957617083065592846691309577996126721204200941395751863860775444381413564186028448742863876320505098031486070129068838797862018132663129718799832041947898948315634568347991559093185036204006677067044017642574977320479228273358193949455328188666426644256287803941091256563875229165452895613891146850051089801158648630391263179990083980914139368677945834361127168900105368439457004566942849317385131258657295506291979162232519632170986432906989809357113843131147267978443494803787839613465102574985433726081170309065603941158619628131633914676481162346260933091503975989205370770127954410798545760876587114674067365498229792363143726681381583230629772578831129969634889939100449461657396663829242927192769674387133050172173693734523749470913006543313036826796698962775458625420701707193411546552716975797167857953706055943956996205596635404994442574026795494114358156875189513629060647349509684770147939082312052179269523763562008460365233162170892497541719823990686590490314151734874204418504881475629149733911937592977890840710928558158756445886720849168986442780967486741833306973647252268020327491031793807781854992905013549294979062245093329088441529101708423138916724324622125092478303096222439520688189989882160808623842574239553894504027513666207025517885351844195625874508636368919786952928252562741475082475157828707866117666950228178522924037153272775172341810975746115942387643567390077529572891841805113318703805745229741713564121806671945855459575381196386879123799462372645922262484635969564168651458539611071952443805380900036865897451877140402152782289208326171753842977435100862098432302112896477472612775251927604127372799966418130109510445647079442418178629900239076749097805104821573495759387577617607421714959190465446797315260969347674900887212852510291887034883150065621314190296487568600478344151792770510356658608824632752549003291949749374253020839356674523067771087850384245837497111602348473532262050624670283512987245123005076388577615763324007716676130065487573137129816600400450508599480726444463375884298343500505796751023236995911257277759286018340173165397588218293194080289685743871538305077437683601800143365028197437107166956813051518425150256361484723287486755787511804896127189103065118716411369662618937766428732082619390573287449905175175461917229037436857818836048165685202688899409336562633569737913937239517678491388482164824519866237432278570408952094132688574659342528652922892053233070507346455192205264130443894984400197044741097104264414712744249846016677313818955689438371813444070356819206913766349332801498650124676069261653530867480713960115735663671354112539313200794060502195633678156610679359684186662913841962408995883056184578758173089979935884349207310451801932914144767542328916521335236828606322966436363092322677057732548343205825709581446261962108105981647164652232738750309986478709079934162470530065262328187999866070797294100509519416149884192339257472409284213465905474712082237688351020691268198277638858416554639325949374572740490029956383308112515256088534423148142868320653723156647005551781290871525585955571856646269415873290143768551093445825609699998177837116959924493107987126939865196544243592101095681158370252501797526349361072839920564084404900165303962652422515229449694932519010467458800500538543553944090764355459102676279502848846201915293276782033255781737947817501926888348488137472074865305731417770555914661316733267463371773846769088595650403139481909703830196462299514561503829349758689241988969984896583882119860852704841376336186522934826805011491739135000422779113290040557237898811097215126873986101615578383388962879814202517489221225353425397214528027508515626079591662048421244456911531894751464287539119005876664505398416074219478579282834655749793536266718785653074926489964235494004369303899318395554971982389475236586045524493402562986057711019620304250585436323455400019306902003629914784049299460779306846371208337486007235066702076445842523085487370193814782749248808036445056755749805816657740137720413333426522355114821511657575458517205907941077173393897255557013782263803053404235841962740281597317448966114910705249339066173303168908789364955379447112556730296145244664731266573432600660502357752345436934882470966977113536193024703675689032014867323474772663410611687376261625639186466550004225909030591221177191978191470088232082804225016613623931968693788873956176640199932344451189070841546078430671311873798773335234826022342017882981782311453834097391857568866739662295894254900741358309695503148595424389074059045156350186187900917385072786835725622111830018815595683500145247043931149309870487273642837856997121621210561326227272364740782998314258011647609485843190721124307378089134818032857082011030856239723863687339564763435038650186818669985044021284645946869608630857065263648555924679558860278057286572785388614304941529465454959235814338448918116693370373493941820921149903058713682940400796022133718187007710853827240064518446467894472838014701879580513453087857502525891683185921930705413352899412003507123843823514079826975848608324995180958425730365562187988885922098658815279627287559777655224681472764030974684181427251030536898960653915246644240847531514432157054250072712198609038479185177751095995577916441906746331705315119812105571375058726381767969543252484378552900609341840358461883842497960728703766871657156715551946335497818631813381977593887737178454938410207440140586350227504494934649010601475857561262126829165395504337154068797539997375855160204624755506385477918538378181294349880678883640004496461474804430560315703483840666650470617626820280721703998743329450149539913784618929479681191715061284519518310007459980276000682029488357786348885018597550204235290479740302059759442005721033991906640297905085592714968333740538488460720438924675675810213766131191798286688005384452982913191723540913419159642736735396520069308832477733405001038984947198043986377532244217810759217975839904808265083151954942344150032966743598784410793277545819388693213541435152044481994279060665082342293001283718307784586145208685475695608838575133362601694759350464636820047044897339192119436755739639223245588496336062445822062609019169025373746707369287543672628326221010315979720144461942152453562478356976482324563440394500359866979951323664277800700532590017212043053953484618964446472653830677517784559564319038225705155752802476363893600787629439830959117534626150501024970228559029839800339409493579890540376611421014538131712038924969066664408825032549709958626312374884097186374295565696858244996325354760645008313995967446932549828529569209031066271362441062693069877556204193173010271528792891723105726576176199796194060284793795702221865027062473223566609805880012414544836721814199006581303442117871316093089067914633595771354621939995923212260234383345318385151517354490182591197451374730179299656943352675155370448579977011632093016036283377663372929179988490550868011291041809552988633234609437728977139281585003201355912623111839932005409963560566698511558342600852328376961435600599639135586418900514955805468373222727857964991020130258034818502730088609481271691550513705006305616342033019456483505992778107084385686991030825981827024757687782791888264652037787923939091307621750140135224453964540812450167994331588371539862044314479548721824686939665121378129247392984376043529588846942418745412818623017972432012604426586823054275984771103456393103871937054026727345751482799012966536056353772376473258456075775595179677645294230917947759722781478311815467845002966556554633242452250369324798219602133834938309496524507631268081124932928245647858867953602495475244452122374211781627366476434879489982956369259251210674262499255995429258702653649157418779620800305869047753260506013016093291508438753487198334813933649059523993937581036304402873258574508563345837944258562726369737251250768867618106263386332987667109535499923411401737633927420512908216888000965616473122939028589586025585816137093190475503706428035896981899145232352312656066535614395575347489317081054779869754009470928876700649580261172687814785084284735582597167907482820022575631460929371431775055673583778511843277591815653340771299690437457593940432725873962911368583682111664900522661142672095516363801471993958773566192285524761353504622159794348108593079391185665667837587528807420293702578555581215596411100102133771727784380286870597207549630691508069268483838177484163622471062654224030507199790018189874211670089075911472865494737338756914393282591940516125845109567936257645883536631184402275282914132209001434114183487200152164562404160218005783488861204396437560917406899057478739290086159266629997374519977506084973046070982985628082913971173408193133707147263228602225438106752753984858661114802991348616335642938932229345182699735826339463101123396091248174356500030379399862116074380807412096163473744700527262990402637936603523932559498796912445466366126658013589431780376533308279462374692210811733469147650498661175838742932044777097511093612995024267551839817400630157519701446884190127071673428681308221834287185649694929233003436082456665431064197585757639468979116671234557374754890947397132528256217213951844548507552271938534309216222098199251219029585158903097977548778998240242924366895587662825153067138844320134711409364967688025920112408769889711623008424275211053802187645278890401792045877018732204147075476034683374936231476582753109346541248804056310023665934983233450262261987524173452981934707820446764421825800944971378615558087317577461827041178319412097821385213048042572575138381851543545968778678390225502346114569030217786389260411913005842991454611183191402176253203682707785739604635580634969463042331030538035868355112526497995803717812145181637842702811647354874562221606327029183351586262415043178310556229323755362835178105133412626680239751880831343120060364973897885381672034535018817622784233138154047044693754671202479079856501749195046370624669184194524708739422220591441112560286741447413966456394337859117980091113241824112534089455732453685511207969011922506434876172548846548987305408170552154746091819642317253609394137900035046957078941681853049286067835964051144139767263566991084814189761826151886620853869502153195856747113635892679161215148603471572008924930222106027333860794069742931354004205311820434292255022037480869153222939440144795855302927557099336237509363746609582699557800520727279277899078041022304315065947076448388748914818800708084956417938262230206135638745082199053671001416871815141151461785478348756910325255317470404562984249824871326203099373483915801955441053993578278628656499078286218441095830636097548517672195046225046758100799706166737052660643749933619103841007780579131502159128489859393816918452473001055944683473705267114547610241790762254777556263753078967932275910065655693914612961670076382613787530506525312784783640781053480722139657987062156442875300728209553510889868503714300199439624738317590090269673664729363305977381298624273283979660718450757430120352520765733385972948955869294177935349664741584191546119947340955500972971891752284489767340879006794790412210916927890300728631617509877745401715425047833948881638235577024810368299609199612824828219027428167142319990826416127960759925702468662093577632044571823867947163365934104742995594251495815975241557070156256733604955758936618297466780905862979387702872283379945970988605990747484860668006720935121043575824623705087474753041419379344459471716355282878111955336827987403195681779360655239410892546778656261229011489500067437802953318277876128010944030718804940051938524599980568113967865308769256643135431796519165134703762359485080748120550765323114553633083362063337370650795959406595403697814797317454484070478875192282618392679254630261868114060797648799021664460036131818698695296461238773811730170759009158987108909152159097350730637696255670380478972773258776322255365405083050051637294193202699990208940744424220146480156452691955519191691928978934307705779635005011479779585844868550162982387219729155849801332065379927020967329758019870499708972565098930242617200092101526287180242042733180273302655688402426752922471695918521040132719988922871346151327289659422861233628866771208934842853610918374831948755960814112468693748571689590162879524624728427868557030582246018332752677653378675604713259308631274994558545131130332619295491276538427069843282448836424729780626038129132737653619344200271429529511485358778754265685071469249649574323398875744320458692362957694578985507450100526417973110689849281104460950965042623564500006985536839545342477748355381096161835778848786961599708106657938999454505614502779715840495183705402955740838377992977436357839882423411025953595984709437999786736378165795210119840845638881278233364308758558662599230631856462472710277687758538573227576495215878992368439408056892032723232751729511197576049181282540425923544075153285111608621458280977401498089411512875447630805752909056403776721708497023671180882902990460904508324692150861007729837561229754950418484301977692163999958516269277450578461301812054565056201080365969064718687324711567152995162161626487031288047609088212149327396662246448774122614195956073506023165759213302985537027844456747711530800014720104881435032758326891808688574006459413840080440992688443261377079420368666575669407097914279038336636158595448045675557940664338374443865993602866628756284592824310243033562038981962649980318422801917840475121457824982021374866677229272266573579499889702524318132831231814294705782630556413168360501344126724897693425295400218415825545134740456709275876200003607331797544371898587057736041547462993209253815098499741161021170964991458454657115577390708233561843452229795018301583280506620381923432898706829441849026896466290187172874068880289919459898291398588443340755651609100110565784110301652941399249055409892739575281025395148740681328574452770487381875402265756949989633260054240091285230450980971500180705540453894211600993847154668862380259953419140397007304943921470652493836034103708516192728802010613708040278490384163248888824807190574650922376271397149141531561317320278550768425680763313058165149178152643135889664033797162025389571473705278213209104423828608866246175558219843366224679241624057892179278750264779727593875413625572845394687100306848613365572438331489868846314325179903761288217487320085376682014842790690236440607587287759007132215518993302912316409941562477384119898927368284030064223762809760807035985581209526924374539126428950239841131432338661293887630864808293991448474618834438080503658910492165895440709988199853417887519113914719760554931610643362735861732881274684692337555520739718765817902303594031282575013405413393123235449935086368976484050352890067453897230709028121096951619048137450644515408377496079704565873216268422278370259668046671212377370603353751619403362614846721084906159166368235185122506090567538704418547162309039948015486511510350693832532538240945094119722499212974952013465181743294455974958233119192973209760351135631067655489331627125060457254328596336696467862807771847708368308798246632923777120329862798278727607771136369139881209871850000483413168210209767501230365600690800750321410029195575947161910700815482595534818093666886862800996785874895371694594414011560029217912534174020963202882783988110794797663430135287265423914795480461234374994356027544959644215335568102818829017918720001564230656659473434617912275294007713958457327968111938559230230020319464258496240320148580351586881504181235861186980066314400990821101595633679804161226235272326060755255980314204708077648962728331824647559868259738343655078577119220616652496837756478026876889665616185848997721173390826051764502776963367748271055351496109363776170493022561296427203584824607306089605501176164625762052764201090299728375659850285094851418734117058227608050010570126362646869884010819085254401043103887748656397531749519137296518575048598018977453727770738843271306060970264166048010193881169162458862520959810940132340100850540747142758943307742895614963340028995817787156256720362579883922298982717646343598072542543029217035757900882734958907250150482155479834661316888109212195027523357314108003163894429225845610567148716674805151510720778824069212110003316095004199111723143169276693960832007214830377477444212741588446591436122837737027676676783459054985445725902440217537954062622398026578874349054319382842469153152670309972797029099237682232173930347996361371654760834338552635206962287796985322983470752533851813460532485314187795282911271626842721106216179823793242013896054742604815110523250462098878496540762736191055438644824342146467907427208819314192048959145257545550918209695493041575149842667794220721116146547741390802220066919908389560638693008526736736788292195443195656183294192810433568876018848219531058651409560065034209171533206683305382327946456040075358638192254902683605510209364246110142794341341578349472850673585883836250502659355326587185325311559734339120491912863168101010917610068423511317737897283422580336139628746407795903100536073830929987503410352329504440200316390609044332817078075679820475530417756446225797502289871207023625375071954567219197925937165600465423522919481248799239784112638870323880567551250091389943500550998719610275682699744400786511904479116210264295641807713873582553681132094025419524542234310390353772424178697847864102424374206953353753185184374940705807140469890790289860371237501416358517233489127809446488078564281182944968445445054368154176201994120559094884581895787222994048118969721339212136815391129633719172941544403647148934329376916008181809937146016806341454479101428061863163832419437624237363238730700428562977650881658666612549264115671984706703480792434596149059963338391349755885110580760326446492513426937362060769645468286303389989288822035833603838223699368757874901258250182683046560571986123884692410865009695523192249788830331168317167555971098271230537963383142819473723111266265796749892213426278005986968844316374424016274076563825531850842544808478501520843358649134651032882262973338663719803496316854608011691480351203780810608565707371763285099489004383466449958804192916129134642465374021402761421472490968448824382127440353892217355108187709090026239108120876465604104452237535674885810284359278249591315521712947828178416847271302070946757382096306638560859450494930638537557703081261173480587393055156532508992610430917206433722843900007922606652149599131476342971979912597346858784647348966368310803367060886245857681485726727772300329837479742528906097023095498165714119430994735475995137437410348313103551109980054163966239151404743235754262774609581034575209104420681171835866041667914414259057618295533205561322109363880654619952996826100513465107362179915430136141963122077956458554534011586506289097500549607124289128628604679894212835433788719331352543260920803226467401599975132459058230911396783644044401292269172798757473616962790724151495772906258626003527560755365877304732558442992925185533075972726041638894119695554451099685495836714090662237653821556702270234170760988866508766510826221432300214339064253615268451537664267770924842160711039666904737069815504595238617371429453419167884077445527329366948414700787824091235792104272974597501330145599200574822753768786528773724170972806549086179672613310876186472972062157799663192424940833621408895520697730215201106838226095127715817245793395120403124416808050300017981011896626547637161814241756008612866393251586314140744904893498961587122651985919922465657944643301045862398419474197187040724692261784626722882872794974329547090089589197674412514536177225363408046479514839760169887591742479329573396791256720813176338804154983458120298220912290396733355657245982188860319586945863885918639823801789300494555032559773113621531901541495401351758887833428158224857812155030692634333172917808537499268054047541562179125755419561318326562605403172293107609438995775118257922662366819281496929330158999272389918509076682711840945361973156086342903710387699465633916155549386846592411400311428776978727957351324273483863392942069572798974048692554870409521291121556568706414103782141694665482936124523790129913902222859553840256596275522541911092653915833930303397154576523931312888192933432943686369394027833061440896569782652445206716447569876855649665609131950878548343585303539178949710314383402528360702958361371807155963264518136924053053759765558184531509492642618005172943454826873004148150935662267240758282544957329169715753244933703738229715255970893983999138462366346168261281320115996980640417106387517067684573347661558021826987544476414557292220163463699436930360968027549118739926934317179273827549304509353148148487879494382689464223917573301885310328694282671616195397839058327121635283519522563969855521437188526809046539506124383137799668455999480325262753944268462298084940460910978727423186805105332949349885464731034655050030433170624766538949801825722487019177813061285566675098858973596464043711812110691559964160308007933167638205221593560953688256797806748262217202717427346604871073239890103978372183947110376617893643151913035386026563535731655582831430764624220160724697386624109670368337228907702824254155648749510024175192572043146476144219533913121892051826863880220909147920149439319041904298511104825875368897341031585631820727090805964155118177003447066308569556687362250491664444092210033187727956258079494414858612223499388226091550683914648378391727027998869561589546141205814858048990618132047592283640110795311455148791278236172865216550931470686834450290389682057328595828287757921534240069122486839722192067209627570772769531630591031256917981098853662426440175841424545937385074715616809088817189486359718457132834083006098816939417148076622752314555157672925053944195585301723183758176703522070335951293420622671427252187701737778723524311465611193979134178081904935392306280365279210414657078981907411387432786004845350370807081067959284553885490449165444267960504430261892384821163839033610273578248140041270505898723251366399981601611186085945768603915198406581237943095573339554927010807634742671207338954509671530639906117504794165866708421416659806760680801556193833493963425770368397262229765068318734063832617131558347328165454141642931664298508615382219441723047626276039682575215613881374517254619782199678994418173291217520852928885523511761687569007806749944909492098704368096605160243986496845030511946456869320086843846781750077967063168552933719378745021981077600012429291351522619005631115622876043333389393688526856894526329898538798601311485903451674173956199790274359596989472021108427102442787191471931445091000493885610178145036807391537428739579510502180789261492290569045664435401606114685926003194025847684719092801236688335717081411518363667578265862659705732268892249095412708272399531182742217085230200589516657985451565497203051585442914364226141835687524380482288353215695044331527479238126712397104763905089811440216367112799981467093854400109828805973731652005242187707998159062319508484211485275100425511794163863361128849720995413144762768691841460324620044506515403507398042971728713437002094553221695007473292585701407607416751345818929618980372627049819948286331322548074770363000227148489847255005852982247848722145457639926111793118283884457848092989111193050163205772123466622568849419035881045528281537801562533634313472204320764223204030743792018507950195427695262485079870730798005043198430195722257855375270179018831295365243854867478563595627239353833342205474366707240044718867439781515926587614348487369342598344995122034511977515009546927682708854310320231255714448592916717948450540146882996727857954380251486984890807814777949031066283072376365661268272278571595086201306845904696988176290470106061748740569449179605711132568950521773932798609679623278349421395698085729302192626923512210848868874374184801547288731565811094340223464947543605525300848987721303544056570641075174700343395322968063150527135948538532683434598581183913476626356746188987035009095397381815865646727061012385585529470021500590350589373092569853864514324932880970780202241065626083785387444725515149758666661969351801382793302984538783398645626772847219306567610123185435619111820492747167487625482734050173882776984140885731508982562100011979880293745702898296267480124062117281790681712682833961078133121560917447968926242816144801048368568599040138610722686976873188854584636002648215748425125438564620088890268313779960923318575448362780109313006578963738009501816300101159365207775910878027992382678261394067453284462068937917687621550591517528768332342830342414569428484811924842024381971163624822367685745958674918224034341554313175298808898791583584962377111035524971605562325333880154891986632239126579017577932175468196129212433514865352684152562707945018952602084723406057729957525057000729545518283574036694389463812165476265563056147938993207989311523082920576837521323043904938647665726795671969606733939556717892922328206431926045093163791013880158059959557226734801792875988801342519030076631077052225976548910629082560664127018643702133488470675569267574362678907025631372835615504527304426794774467747538796261908566926069360449189756340068562992377496824180496977687051204868623831893132849820312510467011223825706515136667028331553359390202168364734649788176981956397084301591478307383900894953402916560896626932990377125059367865471583473328516042819083550315128598132839778688785508740579924670913923169688752563033877129343039169422035066719769575664659178991160083122107028015289219044265970110004630342843763382953591070962745955438081894816156591302117151161707064407221811838957596766844443704714019930108411767326630649937943050202712545578913719350271814996065664624992182585655872183275314291087743400816859850679085787914038192237083879904134896342525797769558884382780917143302348008676029509198836668826477541379564392950425847702624332083704293004786860012809884381150504567981046219089487689007187381462772278362185725634923216212466539446426717059486648815368410238238336479187553230542275103696926881392623544231899297674678509861397720755327092677620097505603909337018057192425937832823229842378728484439100060257166258666854626184977421762564666078409796883639841923773207860391140830037805939879866342903639288515434572712250952891635273103679332719101800235777592778445432759345346615652403693188067497842529364563625647066795279175597974545101388438967082948978129625347348859151760175342657621286277295344978187753258849604332735217128018770980522439160394271080126545215524880743722763631141325969533409761490463388924112281693986044338186857046974400895457376977656892552092164819140492749748720792284849348279248649012684501115270863477082754508682840395117371022495859029760247107353715893708252616292845194603556078668350773820913822523589057722845327960302804582401799747415807426556053648224705389239815549064968706324065100980166208616351764067879366107555221299432981091855743975493362808590108218387491952134581819310907971354225163632188414001049368892491130802688170966035123051367663034013581033159399593157116508719594704442590205610989672561938137194115429612684204073269450197750545192762743882633773376245743716177140093610832641622591678396246862463484368774483527114999610635209192498170039676757118755888119125403127146832302804272130416181074409779678963768460153928023514940463563984767601965811577080648227988505060193773863695464922245858716590760962905770371250904005831552542360737606681272577656076290006789131131849023614038502065845565302169995924697380526751943781593315763122430236838379314745896506372645007715467659888101590549008590304502309035148204867239826284341963441097698206906178366428557743693739419483568486449715958487971862201952918180232565119179141302487332523678826380470654409398199141507418131185900220998423106590487266330001451487440421811559188618710256585668126488869557402104400586276797284689189661720961887119510808132772036024473649066895083217811168390537462727303709244083449234164981840211952584705383973563015169328994885050229636449157770278220875763526293050513688425503823093404547146167163168913946372465560353911520936878284754703765294682079085343487991967756478315288892187917647120470741550578157018651389692459057778945479618152611511546679687997397603703624543345990678423835525150400648102629019756659702265478327334668652327173974076052693175062165693143326084718796621174116372034588874364102661157562572650590211193943460573708855870090404468618267914572399359576977018986858657115780493846117276715350574602561110355630515753200704118818410954680323462965626630371474708434444577589271395106724307488534815894088040950337721034742735063781797829666688732061016897036667540328110446855290910005405307031170552988180673843458817931503625589548512921175548952524635656401209768789148554205830778465293732925409140311448616397269038938916819372177988137771811981579314838573399798073464486372081418358811902371930482816305457771421737995885221157750854294648072008807079346476883578595258141785176045558535977828489201912771911231384449870866124278353222314743171852235505908630445645188854007645143008428993227241584081255463739606450910245884751986993161706455741345507964961800540536371554750508475432094627036733474456889256852989234888007630735341772170727773017545326925505284509500667836174580493071001891158534305254704567493364579230639570135187619169826401623107363969153129351316806011414274471229392362247808435828681887586681340860560366314690134911990302818579100927182003693047289201679283096524531755656656880336443626918242987243819662201938703876879665400077118750797893186173333533672522637890089923074664897617300001783307070159410694881659381337031946842923414626202366659209758756747144024762457928986545422989644077033648274893252887077047655637485074639672564972570702674780001453650810868009763902327885455636890565695551549681356445150821918826040950628928137860043373806086429707877984290127889790026490801368829598499651711288953008177800586218824044335175132123740575900254542438513537695300077992500665320699074587025150192702887455820536853212457225734271901375259962174753671696932849763733796397703134591058896233873470679926374316773219999541181330216903960138159709353834217829648388609291866600462535215215126293868965948794681967760908137373529172550324551805795985211139987374369945937820684140053046237087305465359627293422507378963843064615160993094384007130245183421816647512489240228231564030502221420411846873536710121163859249056924067438572652486036358836274562547481307657721588059322256053533139768996017308606273166910511361005583406053756189436907516867917390446214374566420137015117119060912990812763986461511391544360977524964758924695076735761281925511332730366352824747543450913339220356937023581909928562649903948698570433247530362476461908334135241201599249347579503255978320707603857855773440044043588550152281879681227569793498974871643547843619690935600744624825649522484794701821043885803291379973438751430715335713036657621277312861831056652099841970381381880511306744280520001670806622093542662895871653463785293760996383089628732982697729521630790040428322020627753729048099961452886499447779946514218075176086006443372750825004881145974517804365668052257583568865640468702972529088178783028946987900512039227366658899095820613583380963643854034426424188992631724004362593756105841891734185200494296060264233283668864272141672691218231226314810589932798673204923322588150388187247923509613370474757905067482122390455632230408654906927626587556126241195214081565164187568777448411661168547677234431828206894319875238611900980636270762022165549226464281453049015225112410857891138722432733959234563316045762215249776639015641978639002785001137669013667311524439659246988976524168649072044218107585341408509671071008934492005052247043819370420603793352853005609496315581220702439277599211158241357767938204660207092416317444224783448719874629521809092683449418333881619578543928680550531890973114316706806601383071869251580130409912830750796337846087024381722046512932762043148449853201526274442174935649112246747968682046600835038286409628321838008314343805636682591189815683969550089793240833104170499328942351626333977284137687489045229085673978956697378044440313998388385245700299501243516799457311390360447104538927826709543988658998932666402769591837541128368336999944467314266537152165393134238018247589337747411800237235897577589282245659812406365916650785820868001844410308702229513271748530391478528192938441864816413049961235503815029996118718893856903774656966681428007237523568386531100203381504158308394293756785200762724613865009842764107555242689492643071731444868293201964842916453856019747341550866930796853894705090810625545821678832922716202198009200073965279852602642454872166678303718981154588925324682300577407765336999006736759610024594190510020033868610936642962749292308866992002476060995909176088260268892026116046319145130287388286073162225743982896699889264770734644987224707389122293844525678050201391610908501890093952810123462720767168168256258688133161183327399890076912700925434566103579768372550117035973075606176272516936839164448027703205301245159477515957614620877280311118007305753802351330078497203012409201738406772527439088976508016751945247819291953703500758013005864768926159899610272320462030249226842683438319915185736773518820411225292100207818739101562665870178527021358260005927099460112809585308197030276049463072112401307418031769316176347443855058369807963271076653752570787279103926904071580036321963368386023786633760605462499050181099317951896257671634044903969071201429100791066692809750436355637248824154988647889330705306832789582760014429026819604058475635222701391668341562852703977684655652416237988194809204066660413239119290360843308524493410725882493763636815889444843220076603611749988250246821124605543560588415759733766780219865696183544566355830140561623741115600825209365113517026098505877782918556433508524554661141583909082478992722020968316028061404092954157754660969669948997608644258940521619547153229687827065674372866516234436143440652818001002491088128182839344182865825998551799737189554255172869211013857778185130531165404185520766268165433390187925639834836119432234509754836144487948769600886711130974561509736242732323043379812209837243950694355917714211466209031790669758864204000492456908703269445447855469999307251302855243762170828353673577281573461451675375434879875247720026689684157910213915179825463224466234979098373642348413179462675616478803876003211672016752721935105453231217414490352252279012174191146174211419067767286630796787153677358466631621453144343142913743070217048749344432427456405015227509709132118776602362314315942289337853445686144951360901106381652575415052794415113584724253357422047939592405158853168349285332254075688069812499421024985017901461948779494213846193779998570499469126777543904868351582903825002262864833311561927280615599280825635105718072384400793392611155876467614512086543605562737764910423978599390849550916952924262364136390505010568485714813768011291840710411228845272577691506171384863872627899593250774605451910063539877999774352921491536073689601990005617993124449667237436271115849258947116677162686617438464180566824057321490104073522354975714232764487511577997372986738943298553604223589090914787508129730588323375949890966747657876285122140788106093359461819440256114691378864123104469754177377658549877211175952979053572261519431051694917306801046987466777898588173076803585476941199068650860099320271660572261544158412059539752153356023972155084657926349127486133855934503288264703713862766864987040567289917795995013091362005052820111380713051894460186030476787227858419609033647621515487730080088296924483329785332041303161489739225750430636900413199789612195045933378150130414251157016700414075703955895231572726325548477332886524749486519689033877803122067203491395380881731544824229101913094101378352025392727369923419715774421489544399591347852892288313196409930914730413037759827089207329730152325121347102677805130427893982328227128104724233343013088180660305917092078012542846150559377280139505278914354493721089422764332127964025711132804436669938101183913452633696745920166229205134369480269815239090891713642411752339016580488869691661671144932710016900714677118737669169018642220944192057848558214627512851550732001097299042756084104220910305234065954595623666356141894490792531592787442286822182404166528415769840787309771052962551982283093988796684189043900612115453208686091825890731401091129473882307447868210847750199410847039018777585156074257584507388861429277697264497833653111997608018246438611349043337383189074092204506219544464434881089426029892829462892016400888798625317407771971603909643777359364651026838507126000146564381752577920823197924929921857515993553001730378027147983989381530280431672881702143086709925475221002927642663582879507218779542298442261317553542700665270608578873953072351242615317392753406625585383717897204298089983484036708041296825873194787954586916597465914040152009294931332946155888577372860476417055959681415617973022968829940110226649957676399395574076486060302559244766417502215586351126379537448548815879052922924266094788577050020379780952424455688097699530386933112785000092155416450047546597230420205180331729385209792670731222150937180581581380452061496899882005458323014054756808798865167880846712311158772876675772015626274179081369442633821119358689586417807247719930934376415207312260860914660906890991632761681730584674726101233394704266709732266282525821129810901869549245554597003477880814338679181224289531578298865713908861794827569343174791445102952680759748310239486634887003165716771129415775613435587287352140600997282810632137545439426611242278933380949057335966441463396623647340634355683775487013354637228112059283977851754515932308912343562418615749412796593809665234919645547792183924206320698787905088810474758274896105717054404207762272320379141655796006256022027546578504873492534689770407921098335616755628364071041250151543713385532465857341814597686663597103762646016887147380904780789418710538484672879966415080694379843721871447717031307000778013437856896357668789636075945804434640088681624590335682122082169979505291747353235667343691181725162623194071128954557570617538791815276585277359765728475169531543374265212634433001592304254218652504036280776403918893765656859284548254130995841555998835924682528906877732422257258582963974167213802639697081644355049848597436857203788037116491296358220540938594948205184036592098368373442970232302056083610484957713229919454766728742351251316963086774898065471407779501945609163112553488531415099066892706627514223717620474641537182581544873168815859921523477251123324479140265673762050435163710994869725745456422629836695738966786789088409212243274227776760475080235236573836853006517520291328767033896843649735859308715723310617476301913131906427540352650499278737943485658870713561376534058993218522797103512274473000449972440746154878779376250740763407831215294829798345543709344146559176544869156110122415435860227683999564324183274831281807399493878104381237512798623944026593540219215768691607355554912008988088363543768770046918097742686757342590852926956566679553427511044719153276404274268645630625625618132132884767690372118233272550104279046053957812049371435976447485028941947691673011356564087139944541010996816227804226208859417100839653604675425524385185339256488551504270103340745952827543141713346807772174923381974002129349228541086550255619956364101635137643206709396952400964389776995777250025302351241029954430102110625478078171034431758845666247276544312634773782232992231249944558139037375744083141140324310203168790375649498966773839843379212216072979646436321475274580367579549669848313397191041912357023775640489882646522472907611559795122172866602596828972338206652798385167149627597251003045314442173137296147585039399609238997346238167608960646773688193786016912411609340926994918350959529259480543598855530994187804284711390500916663293074885299653339015411979716544701748144463779207962852767802124486505236524590970565758129106938955639419913842710873945887983197083515380365951028595430081038565582448014437314345605991163468301145359757110673237693486675111811577996849552281865585661114862888086840730117173485468351278139028396629670691384437285635332788355133940405879119363755276760606337694109277244263372322169878556296787343996355916591557171564177684710776661165170661760033237842118273588543191788259968930521579130683273630253310980521574239219894399941739560474189401032871493577111647051386990846472360403773116733121524513075148115550949658517287343891238979935814123516497178188761494358089594590721519229770957461877763966300251403910650210167319725471692435924624309969931492824724066875659162157772585232701624312514752536528052428544193128890887003631948518040822871801986219397477773595166789220477382646090254442585366228869083203455785446525206765788001127107044441175456079335443025246946533733078213990721890134961254626849423873539905693445809907313493112097170303120284779886977895840754178335554433926590493502824838632988305160724897984159752496877610827923611605162548600917735607279641987671096367683709743578985934682463863588264309635957883753739873483788807745101868784406173807426796792950452587859352971909139949783877586574749560834563289434748923831920233259758443729610028587357368041419737529412832820189211624616337205792554716730594885584854885874415120853953653016755390572011146213442581016300051758199448844648097345393862972464605206762126848465850848438608550384747014837954181021378287132983652961886686437588225620070695853897457226135195408058363380078676447884829067248769930798585218997071960931501395323125009982475334007391013576802350179762888115861585072299494841596674928788607024460894139677802957069855502938681150196566875658193334443123384697318106225354563995686538489193500357265603976813206559454140398170150905405941443587938767219893605491971902658997332934121455402912755096245100101371528799836878655798257576196331858567326372623780033634646914286794260835126924376745593178531693034023723371310056046085245780342093233866997367689357280404425270360086522516869919586533720984699101962933667199099699027498918261592219190402572490038209408363916299256404133632172291555328337986830181235780318064128721659652274098960926693877147603760405469532255535290206156994603349723275508336990453084589591423748981818342912036436310399557285796183198961514895899823749547231960229746218319972473191816282471718509133780101490505597309995244961622822004821116855846316012199303109037074943054954758845321677789531168649804792501502528642444988687670118535386048460041802406603316745908331892079340815361831879372952928361106210908181223283045167386429984377569486794382781968454186610260603182679262865953634857962532410136149656815076982982258309858091041261179629240245530563635968682634124349588381145785731826254795069955175841646709983950626700708510585294864727296939039907529908287710051843341342040850795840870641655282294341111439068989043023379341383907257435954537256994938978096612512357363528385896165131869677770360594341283372679594206203498164411086753639919426527757161016819488487694260533002522962489818159345999882933870639324573813728036634411690543310351658491470192242490725519498761658282957073695659515854279376234056144577248838463012223588390964541600050102670198122706225186402049630688139077298148284781773862320974959947745390648349716969328615398088896810153114387342830710865792489893447379002586272029614483050664905850576333366169277827555678144169970230874072551218791985053516464505187789645185893834021766435134409062875016725880647617033428999235405150166498087086969215574711496290191932500226229657322940023952213663989626160507227275434042218077308860673544502681524544398001692205621155214203442747017091130841968309930902103609187257653276562725074705092208650391174586881189048102483744838851286198842534792488824416968205599223545390569820475368902379255706046597885951830819628793874105391602558535476132424756368618229681089741054664478015847053157621527403077149976711179675724611835091159989201121379482287809887217714084002575134587230249492440168606111136097599921649055013698939267963438078623097107043276702719144756108360854257958532736736952294798803289204707624763269947199371417216244361328077930455023661959301217017664948955867223247506831612591032558390766224229844057328589215824512453347000055738019211718895383696459632177071053859397714036514749463969670661618312041060695397025727188919703902172108443708601155572016351840469032342262333126465097986441606921456845825722623255978347994772460096161497703665030179085424164725249778594179803978711908401113106695971309276913045046524879938675957531535319581117773652758910872433185022373535504917796806182754178502113967430997482927865447934675456336241294217515262025935192874090666068737793397229328130281672442541736045596381351579527098875811053747762138435730568649164312990302902674563818184558936499570325529523321746419730331597214815145185110121643218067569619755398820668017969835419527298932804964113079369406236318032426821064301304276556828596549804631093531676877752474103190122540255088262130462208172095453280217366292349050884634304977773652399040764828247168270295909070215534118306144921469940196877872501615858647672497017116189610871643819691271056603054209054828805365517751103682428804390993085558507123965163406984519105233863914789187064709858510615307036964462813390509821880187402618367445330415419864755925341498625582328613117801695917289093219757631042910740934018623962547017217367055631504968724268783900437833924510093068325512356238284542267635646250949411788382476842617242486677811364533180936165610852059800687377754232692962019031581067966139148132012511314906563777049511809601358373842994350818288869281699742663913357999163359856075196279660548451213322686021918650939788041076669777363554174269409019825046533617765557051914502369878248815163749713222483293115865484137224200341833339140277146413813417735502881356242266161336484390172504030494796894904445474454388644736173606461509714673373351127188997313626223566338807869887509185734632592875014105197868599627782771801462510079259199675366277151561869014158113110614969126791988798566569981271884104714038248621170647974765114266105559952739639211338852733571227512994852493725902563527260957313645241592108504371056404305299933804383610607043527794699496675078334754089815493658553787164327327118935265165736526174327678198522915512585668941665965627124518345116986446712649763308516030230151299007080420968053525644010896357440425746855213895906162197859454782662496210414271966186683809949310605435090719637810825209350819313147946816577437381267538408429560272518863541571579075276721607940978648448686736131721907429855290710817425842928544894198943787772584515106388966956897427526697585538849689102206313684287546404089122972781324331783618486077693228175026600723826384395087514695216398936884173513300614673553643987443602846798043159290490442867761770178693654959810830590354380047175377328608776988030002393515609938305360252584500868208465734761689486780808326031412959997792208744796423555032756928473723048432334304323478775323881870055884858387561830906591190348389489539773775525770825300467728574199235696077267412417001087372489278915663485941709038500466967486145601598267679462258180921513143047060575136028073506592854415819984958490915800825833544201035592703366295931314765810978292314159313065111786948443187852098503242033785481474934241909735576850440100849235638521794575642948090361038353051790023839193126815352892421009062460644576938385766508394341359723200173770906674119191016419602006218792920631252976543873130938688630700851907729917912209145049142789835792016942810883409995469074428601899596330681233849358970223439551830741901649004859648606253685421464691966885209349982319966427031773589290682161526138957089387111201313216369183497431518484081976391035358173307759147047302919445001014031756328234741408138866699196405881349091182860297340260388966906593320767967967983665338959240669495324529887944861760676739228098832531817756956296438641139995591744054900009955607420027790911867043164946758337094346655865854223944700654761404463268579967707727342089123356670416093639185454643664953811654923522457109545747658053397769423251933886978547982088813104033505843181461958183184638412278771044166264929024945418140242648527890744377194548947743548188533922163740968197178014980435664214543233262707074020570374982377315463492857842835467158759134646979984534065833580777435223716266237574572579425934568461177927834282695787061841432551660253855214582949876633732441074093699678566693855087433236666543392145884227431090662819680166994368578537447509719946862525383108446301670748220473270721648377719338614779668377380134909046362460671668368393245537151317968791913200850393752659149329871458918354927190727679476292468291054091270807417814440647428809224417841101889976935612954680119094162564018552662072470278440320734617630262022478836889753484731377996232260306628921539019900992657501362015393985541801579415298700169947593796269796931211128418859712757038933059622287969538023821889877784907965977288910213335510885776350558809929589475107649521378750766281272628790137289672026117992205916431443745220403257904220273447183273315445450743182385645708547300304669608808283650627688303323580911316605866584752649595079349027895042014535761872716046525490891171070893961177104037778786505723404969396927206213115097492748825807075810243228802743157259402105716491321578415737744478943257763305785752679640497783356776945458777308705606807638871421296374464122116325146829100165876895015701701554613179177546226809025941091032935212044183815552400398339990643896788768117605545487547843303028740450274519050018692246973871701299801725421651816733112327277225060397231434428029669723500557685696590116042558088837357106246875361979210813159947967820904995574377854667665393865294195609586662507997593380211651087210797277420711170432625045261482774292001470459621193975077730459183987023787776398344755897493514176049928845097327568160758325056393603685861241981036798385686151057455615926315820615513718240841313522747355563023021709328743790029477390762771259577293569430972867608299256481151286304565692552900625026101933910128437902949349214769929217927848100551914991923653250176226484781968920599533595945207301318845898046343090123166411098406537875893622061366818075619901666019680501921169489023126442959852613846389018807340966355311513655166771538349836107934910039885800895734366618904934716760194688938371616773598976991603253579638352520037806090120959903341019686027254641524424000913099655552298718935542847260829196049749924663210182553300542714004549267764863248448048361593625462987738572125317799216670865313503797560504523593068204009926480998788711069248972338095000811289528591858767513471212632179478129109604078144326607378712250641472134037709729946307792832431888769338756386193219448894607808053927706490598596903679360074980067555143154052119162488583806065370126309584972883002961867978501056072551442604274374810908837573824665486497556232629898719188148978136233178920939504808464071580293037768987820282594119422656440003447881030986134068765513819092922484952169320646428348759288351189720580128045698388378826368548984794489726906591057119901213791571602652230126936501834398213892516186813576356419038771521459717903731793974740172399851280242460351222176950998874100173376491919679303413440189157843974624560028832844763651309074026155937400888329621570571428669733168633014986546024872913452683626475712243663589819731031438400199324953319041850516829118162206572470095361923426850212681630537579496673806835996720525501419826564193919938629447905695765333909146925550635625480824913243562523700034898411300168853851063727633474869689131643004715607537213154591656804019612794130363618136823353058254985020507187781843770889023142150189452870999572391986815341527945461410636800759765280052861080834215486243945729464145185713344020037574195859388849222177146915513836956029218645077623208288313827682425360238836851389907770007977015349655626107067909214506402991474785705332928221227555510756748970847786377595197708483961656145661353970403363554497099988191828039503020681684712554576035966210283888661766477015055537435760432684750850389985096059792033617077708262431603322574140836645741707117001648792644949212283944334840214261960409392927923399527020558558706063181201891597480768633673439770055249823318293908714730243853210754577089147425205211021557511365801391467355999755091841987143607535802821232765250923968915823060279509655125905763238117656045871727279235261178040636015017543006678739383509346330696654604416753361223738516455959729194106164262305355922886449538207823742476484579437850572587083482253615121064014932811474917533613164715996958076638817244437262016757893477697531406610598923164188745880927404145043818021376732949506554646127910697837356503827053845704187716516740597280463122795270281551862679189258817645270036601486452352970652326296255802610263874968712783147841853830501390756555897477266169421577467792420491345111913835394572330651096266056004658551101997742256226231830123108735543417865871193944699078091196985069866721280615297615967412616647636471824973935340339926173721073953514951487213630017448789770639566758612407819602201116214525323333714313089222628098013198035316753433973045907533655504460335353291637530533529813721582664410114671497687957710435625394693298125847955180256792516670803425406258469242311438891794941293743855868255304518894572929704454351228061697129460907359345649567259382080962037611975454341900787035163962993878079961305876647974380722746267842876396194585933588333623952024530838330808296602947356968029423208919664774324218563243622036265088321820058565653690553901824469019079856578793934514719234415780281218571198304695747484974531224708142421528322661386426849091112650338374286534204579890401900897647512132825614723747691812574494389134765476975777194139373448444971476377617013217347978332449863142141553640217994767984223948109431889031932330820560858770397103591860946007034839859406504618191006329398522827358229914388621979963899866387131864954911564078038928896999130651406535400958064550526681283507621899554115587949494405925056139430247099028292484799048431190340515474376276210348884673491514853780273362350130301294240892192612506339060604725271281477729439558256936434390324366734305135393109875429050977122224351146780443316460921293218091569326855957202982834599035542154913422700904868408328479800308863145730576457766185749863102410667477439826436492366821111661204429082272159673840875157336689166942528532645258516040408409997725263693350164274632766096617011051662908202104329632549471335074182309839226104706376543393533201761558128740996262495090724723869144496055995373487968519127180166536582831675388880293675609510488062501776542417654541713623909157188645424283459534117765165086192809553941868814687364546107868850090032069954494336191458226272408051084513332775451583939221000993715051353091519855103655826018874918686303273540088741637549457364969881797622119926330326691157176605798641590152457752324809397195343076387620482066842965186380964418804285052818146083113980815622571914019552130918764516502046964529927923011302562846775538395276934626324525507427960114378055180202485903241154087113472660100619207797502839466184092913890912365035528270338165596798400480699927332564084481746918531893144849815611271929614350962705755999343353168810714098811107821376713899363041485330234684148848580459808351990535136560536149933919506292224274027143212188621956938980481960327856324757882404498793796792716641290589808619634464915064172942176488924917402975321870388864460806100016389337097517935457141458593554925386938624141761290880109778776838506483666695355751216120706458624563033372072228559035522598497923577761720316854150670215384463366923953779045982864844137747371349730957912185956184488117396214037630458718461221886098105646140028325182794333512191562232748819835476286471970960261279688785148474304468453081255942048642448900502298591805532523825008474285416060823490463942285666521377950582185019325762186682934828546999433207192134621194787461213373139562141367388599368132601632426898836765147035926824197491767352101665375090392538124937473059946303639430066393954292506765441324110495899510967858521091366838645982075571055115427753380875593669938379699008186199188220806705410666964013236937066606516611805170248753938918801641177886880652019552317752486558244259085185710487523553168697383134095171939148159793079896117521530732174983100380908377400326578818942605255581651425897447853283062689262339334529172112672764373759570038981808319769752597038769111072973844368839374228907627200422784098978403840194808458199584725069201704015953428645340656704004973170142170395526664769583049530813345399173213741293069932163166321835853668483940357160591058227159142784750938107497180954951627156568517729092558231734574088910000304058051515761408826822154844400442161732228760587556913379743969706785660771800821039744072699971447443833526205862132253485717856458283003824261440761611409548953193107405910609510089003839060217292605964011093319040866858756455632278040693797570322681484063357928842031603451590470793635260342731233262897915315721065938446332933060625839614718125164373871068899279469701822946530065117524316465839032329406410987103531521005823594439972234031366944904292541384931757264296460200469203537283806112465205951816602199412413445922560281908919599678311157960922156618747643340432063060981936110346488515626378948079903396001443237842950344814641260615183484075423228467645453062096837969643250142737758657611344345948759399492583450256261839733673146777081290896324256332663138969866174909356056469239123382008618035129445330362019004061938307430656949651247158117974496530715969598853620663565832095365642813787017465595422359007799442613269100933105453065238601439710771813150770762458452819204704400460634376942661809340721494475256695051104883295721703404033795314505516457353036969289712817732787647718689948793214355237353698142708996536014489839912081854537309383554539206035223867624019911107313281698290039036556889832845713296644925288751395665595382745836990301883680599102824855820974946676525659819499992166518356056378065390610263968608742393341583970833945542701977916345709243319923507048794361230979202129916909008725691722026934399583494746795986702758603053040013380857319123054286041739647538733253578969688576199408111651377806433691902872704503129395237132726288349734589603342570751545129195264829176363345769313878445825879268658711089197172123485864316838476067019507644774264958870562831390800543024034554414951372541934049976207274118093327549405112210104594189615236299384593389998763719517779907526119600134744294907940703254457162678827816944925960030773422556979291403271817987993973410388967147498174574427284809681519296697594871773176311990246086976527353924288762519251533141677537819447673043205442040972503103532961095665433905718100562532163588776100842872845241924421060993160089606580605317901307097513905438036517680872129356463952521119981319993965042946524394700394764914297750213146322621567459839158803847743101784378724353657652234090973139214608594124117330995829746220456439318604189443939966515033669793888442650192737765072666695635498887082137958581098144333335723734220854838105907332093189090496130538576651922738085936328873231465201117531316712857440782018520974829992134792691195254804944363573964960863026440173524246686870922911880307785021101487273624273137981108825810380740585105618603761173421457374316841269225956286668349716482510080075117106358682011095352559427381080354461267951127516804325109769127737814762155886479374605583037929752749166539653401267508288104106780949430288729547106413443082284733440349702678649714267883166404917409501048520730184995880376820594575254846251403653758759702964524149516864391429137853613190029036468698756740327921744855724739525154987746125609998599298659878154188593526054721026634248030919377881932622121098090162366163771201211477156625404037051261552180132455112430093544533377211578364886882332670841499399264267471738138242224723465471352038007943252518606846390348713578678519653536992391521277153850103927199479611753267295270046505306581507528202056959760300859125353231382603542783609672733108764842249791857984664948600669741607736066097317349842566802903422177294745584099180354862902411114657527347343239701892299739463376917428375635832709963661910484763349314112988175072281913117721851749885723204408335330378472837614582530828184689328046745820430366188452251398911214931938154482115070613557757103864542752093889263605738510622953953209231332398875828824812976959975176837785756347193463314147628216404995240574923505796661852080332008483439216721869159223148285786355410276982498503515308349974477548468724278980430224540890912354953350009522308924766926495458798364251920688211807654630415683737768399048512159123842329541582862653783613870041146760006493732098551990073701396849770780726423034512433261454201237555642524429296788895103235660150964880613966565328879904326417224641900992522557996839070225222145504243832635649736293716463626026884478760959374470437323689801825386410717209747468063363037313025638125878209148212085271645635906315431166588921472948169913924918011873582920745582373429513329942313258698860566698482918244924239530350670086387178867202278873651135397222647592182857899414933395144670824665542835864344020848044246589698359550502228874757690118689147756284354114733906166384836075127922016909703287700770369853740441281824934518409805260812654025383778828641718717739610667814754482928559272050601899174249694337318726263131564931633449356823890512695569647705246706043123713122919652719386128074948343807256051171685466900493227480685339915837164085292973967697281854698713992964860014409333873543600651970918319137085650891560609794153185526069925897055985117586936969182806356909899260006670234799005884840215165544666371869044091117692751329717686211859631903680518278464788523416537807497862940419492899708179059523203571703872623063612432589323623299398926522137308400072757174886070316364382694645285690525226466088561681318568422425840339877445299185118902806306191390540726109498816606978051453034889979694683368747103506566382469138750259082729798021894299973200644656058757945416830875171726545073741463100985368353720799839095653923835758294966064292238131127579823394168351607694868536380218727315427704416263447869098777590190082028079948168617015796722817301461947486010605731103877292212279868441635034403680489566572104109524097763839442601874066110495488541009990662738801328214128068760469227403778218262604912468053004478936368735095482401125135453118418573766376479998391181242351026101935085482427415025596251568623083808885260238936317118957234229882976100864899629969246725381226984082224959710368497910960645716501097277049638326300623203694085637623972409743827295192191629493054261184604906899337531935392476987840262166683490100235961337976553397704565847943478310716343602245144897629197992350018206078235020657375175798165832516757967216200723852528663443548488914758585815562527264792038418823364893020280021013465653908736264324591165849078975623303648586172388287901702857103760679519990484416997983174207343044171403209928999981734263401838008386668172775981206920491746947228371512442597825983813046296994723416289695895169830201547251126295521597431351041572455026607112727127827363892697405405287962556725772338892260155399950586483337422593531110164761387674600059181668811844005486028653030676613592389197866602260907394115153193194201527955400441620047633753854709306105788877140028408146282561599025094348824133714219109691230272241861830907779167779168447057050525130673644454240534906882806500466642684268366052264021541068747676087504120670214003253351849966851269867770642341546305466224566892313796418855073625378017160499437468078962888069573699785837743210149150817850879825075202736507571871051870026159826539805464397418087070961624393215148972634119341048233608831326039609723863110823469673205085461918342207727048805513259324916073398861651810209693142365148004477122587422727413722792030658998522006387570774240548537733886753014409157979661701111989126626778875307962686223215726327238119380358696564733134421423871896014049032820111266158205927722024342585435394627196071135339584079353932215203442497416224296662194511875496981450790469630383807334040997811841156247073569307614444077711097665489922215078590413741439653559291595913873518992733270858337908674903108100944067706655182132443420919353198975570869611768680240131103505296338977661957079254519337836407846126452240823255397671873119448212134817871310114073867523951418591311426435541106960347500282382697722635380786924983185062826531441061604303702143687582308375842423769606370645121909862059382142847592701061744567145764848370871456286568705676184950726074844495037831049206644390235697582841444664757250181253216179022903499194105230264346758422205200778954363279933748866659391509887165503878606936316969317397102696579693176980647590671214376159238705262466282653269147748305274816859006727337507995480261066234540723675826174999925664498671800535530144359571763738039776543128519144136611348809574690863533343469868412663771279196415078025371041553758949416898600019262440177728482104875359966409608809914623034650644620375029057899402285636921617784837522347433666941852219878700865249782514876513988942241195748861233371257846984547396680450385259493679130901478717740241752637426030203580990895240353921306220052700331348908129024839086474206410480435280062371588716466441711220044513256863086233398409185952030314080851232962949794376969664984493345596328204760850504220724247836741860493455791832385193954506159837501529826326993406267616102146232067966512485903436439535849838300482931769358814375598673632124940218118899165185162719505024405647533927336945995156367182776322348383440633618272045267298391199824514810655356675617848687407380066622122881338712011066743367863600437829964837753788262907131396847668240868878434405314148237582626752158094612325188127807464489845749336518541159332391904004261036391905630599948615299941760923663140380500138149747849119356621955311106433324257410051559103943827728631924550588197235206766392766337743367767984682412366818975518135149918186616588781337711690806881084494863007408133669746729630278739173628181033857051623573533305247957436997285670974943797142322789426527946259088465712342913308333673952588474782986232425323499229504820556847391069935473721114036811833271846192814933469871051635696408745223638233040975126955406303990899392625209175215619573221000540975123644187880558351997247698796287219814734672210013384713660738986156311292761103957092847659557389539923367482090299111747314474730880184086606006448594819354979493833071037472951600118795479403491004596983770753296142358023463594949285675153552634497182789751782441717273935940704527243695311926670430683176173310236364875666728999054470420856905579977470639665205754151106135008647156711851246113539994876923131478887898120263534126902652552798213799712878004134585150697629953031914266517205877007522666354040795611943761962270897973653767070893143657412584291923986958387086243787778320169599137474726207988983806672732227365152022904981384561653152430077238154926300050552367904356882851077176484806382734504745324277572646837355645055228968407467960315015467804918257562873373316239235741996165186772680323727679320181875795837034818737434471513195239720759215436160324552038066461751355369908560155386969246107366189247889529709853180291601345215316894324108269808476796261099823222509399171916321078598384751467458033799538279299335295399732806921750288380547242308482543092853014321354142882710087532583486105853657513473368880707391009837965724599027523492033120216901619446076270008151330793185865431146948056017747304877480638451262089580519470760817685444207099058944929777139107624949914964370384146523667260634950513881800148176571181362734679958254067696319406834596926287464314289591673414661598898511079785123430685910008256627259339860345122514647636692207073403136805443344672313558825715112769809341960958651561107409840512890084983208129584337411337626878235950430187994212836208209150476241986463873470882628856915986278904092252689673621435519028295908773439402595179877938938083740331663452692036467415829614249683976509028616810676266429386999680240035753655229929480243035841533590660178104220325140841726848324813873724824629778259616757109833842182073579848357396726647251730544305672645678062771367281661394150505393191000291218482816628362228719728585531418169015200095660376916668349386129067703108293162026943997991494628489437522101558598135187457845091140688069660900348662410125791913989293081806262307987633949410812273096931311676404873963619386486768107117975564682857279449507882184029448075768389585519900940826594616102422984874928334706793356493808350205087197518591411670169480069053271708221292962999127454740188645711737064416713107461837377933499688168377390743381104180774200352337113460873440518404450048854138446853716146540264862825916085369750896753426437390303000858310927843104702497980160334426915241565297275275315383165972996088798928946746952050560043513825930169115154170039289018067416523231715570521881691822374201051726467827650366020710880731032395014965848588108919727946676669023466449136900015942784760210047102481050064042957309054899768263120084358438431000616643202660344248184074531173430543852712621806901218201094995429916444770043957160443160819357067582919615513781940039424822385726998458053024027990147234052940619687010132758217330196949244657501468598520286455993096790652904862044106643980308021305841941821239631467571763539586835704521729493324577054644486141978606911312235578928646671509022075669038885100155826242487571147149736241868720139117153726132507422889029780677198747125478186809672518384152856227509622791877918201979243992503164100266069975554026767498629715782276184819584783569874307425333972562853122210988495132311979746331314227348369267986898824941302252149417043411068134301738180993429047429059683644354019803555633065562382799294766531753727484357311216710134798975917062442013781533002255983749266374749957124018619762178702397651367808339833169441938360340540897397757210214579965248107694453596210191230683766346472633328564465603639827006322655175359061142613213475062986375610404718672629087030682907593466332195948855427233506441563196991995736741895327597346704063918417572098110506614149719513946691717829861510067939335956998988976263896601866474660096369242807441385540169503777826361096458550028687050014286879965553143610274261075072067369101665502394963356839396734764332934201246312994835261194696705113584637932547207672848742770999600252267032502077472516444296153586752493609580098547578753598160956151502587715048940892026153614265591816393680563004930952562833011719875694510844091730054979486959141617168044359766151016687121740731856852835261729441004793039282166915132259789991869336595958018825398577340669638669455639738812179240169045578966316574005225636575754999455574245747489072231788626656718850999886402024319635368218192103862591270602067511844953492150014297612430268529271098926048221274879449808730716495056790560439728076114070161339723370584637346028372984378254008696059226470842456267855160458550184962813465712334677186319606929853994253063655568885742063877626715445428854782500631038058050147602330544247807640011404667770745002187607138692149812468858670334847676220603977176418403597936229478902445527136255224337532603770279247645223605581714639601432979067563717553804980876080655505579357410581213125446341954160797908267915207735186734070538029898919381638098105790033408792688752062568460746719270583670972503096748892378757073986419343116967128459040043032166205920245175268370017038754352028860906420040275617235749082966428478760855906804324533102622873068031043501773777430000197759080375468302125630448164897153300353069171185735005531476535454622646304684195713986434622491088512761631527112858321475968233113388754439236661664271899630496072183192916260511116305928110182624105333133667211109295962041428021645744159694266000938370666754988445338205975057977437338051898794233026506687681715622327119574823137023646401246422148107977093680778323015581351031825951546325992660483093176654763999948402324421952481676481921141070495922041676381362569192841611627368568269951916926786249527992030142998635109512155482002862743854408477664570246359279096772140025957580503015477900534909320766389842678495061637601473540415606422750565299112077221689682651736162596391404987133746321009792080650193781085353376374648954306670291332761669935188227912970687504133548654158669341909824913917359211906110073115906263663507688475070231790799169145793050244044107381313910902552137708953714521380119907982788131242527137487073452912368653810833582111241950262212057106175482073968654496060211899598654013249521180228543861649222080365710125936015520457400106990091509808672559599654240268930691593888556587403273835723037590993109883538438700082013448821874659198340026017374355982945861568298634338835124933641288161883218888514992414494871724075492713885517899093675615332849514915971210020327488371109844485452010758242047685316963813120398218027882032458724036443713215644407740840410427032927923148452810297985222353631111814235131457552445120837146594584252199925682181180286227520600425495171038462308700185915602207950237791485796763148608210783060819364294139311546163451364778926490093092387434641031734399524095985696907089576331711703928072958465317628457287145078678059223229412881032943019432067757799358203491257891390333707143274009281741549083401971344635775132779594096629572867375423059678447567158066102211623301432841409425037615405075457229311526678403925015730908739642511702181976643962687211090353799489069396670519783662044202515952324954755575999784495818062266457380835297155859638221553286486957668480845845222090540550564170752037275069418162952542781188287133491544685516427112973265044248932580882857490307939837044580306076294988717299037317333594081397114377874180053316273640456319020260904118534948847655396272599271319059615860288737710423227501901041235876506306590234613228886403209727032390969579148504360775828136679552873958642156306951167090080626725021491438753279972806723871192944837660353691634406098424388557273674242840656251396137653002477378791799796558332866217517303310771999986463884328806794706528650197787787458020619457288974524342330510494879130604075355162678883115099063629023611494526264726443060246564087938726895280315910286711227674746796140435507338353941259148208186357452660106699918931034586029246187019232359498768326729621085754661858069257857666292892805183006234786778997863302344646439827621955159352191771222162967471768980216469826731862673195595812438917187014558646529105667543270073574372685876639889979514263644862452781807207686077645285548285098549311397257322887587825057140275842011893247725578968626298279340192542422161008222572076486215010460112000702666168488186367328945890210058762101800740952839023794099624199320513486034114702437701073150653022894293784173883264867888405594441240308597975651712255336703390671013694844766441730757105297882657937435500083792166499378014676535957617904014900764655173359115602056547482613019585588771779268081460412860925092868987914567716076252884310743302121106879356801045023199770096602154478581639449915451519479485526536914041375665847450954499275056226169887807812811611232233113111951047271858023020216254124937203309486155508768660560858299643520945703062894899790838345850973167686549538675397340188581984143653532765964510430013571636301489200330298225442684614356052379424968799006119167374930178106107972683659396988559501359661087692521408612326233233635785169825366227579422565344932716921184074344768499992307283786953176424368485052032857971223869142168108648489332725262443095648454665568994729242779607026072184619169713523235339353621391889357095344385447553025072221050738287920458457583102202067155769069353290432100108288379283775641938955205538729285425970853824409554138981958589081069804036717511477553550801740349502425775211835450172405695572457149375854476375119042063030273399124751709141053780793659090175316498297784224377598558112569674404747701552289957480012976510080351272111690977346679124308041047463940295686925644200171854182847152151390984043361078537063006309802363026808775900866248083800204597392729278481667392675565266977128050320392058525532174683165673091947389260553375905493234899874979873575432820440693255120818346332495664432438925437671877639747850580062624761874461393928066678754893345599496213466537943976190102747167106106050120558907689724975518689823177550928805582225632448563664645091159282503906521847786149336510993421501996534699992582828974604235211819410875766869229298479591005337730039958299457906162299871526588463406321021072562521702861549758924690850260940270123911720626880407464329188446664382500963070183550687562990755448656212042631725079778162555609598832251984056112958822480595291806644417676936598595835344967113541335951683859385159398983146710538163341224112391704089456897630190947119918288902037801378598266811301147526091364775546517399071442360209118979975300361682483492067693717521731271320024784160073585656198230193729992223599647564435236972549059966726575312398167997084806559576412177942278713151800231869002056973835234281724663557606106370700046402875573403109011587666017637353999921342990206359862493124941676832716000551122385429166483045501124434053750213108924364304670153746764984281075244562123733016803118930040693703707881385357962850822709598902850288194475838366806494247156312311181749274622554694620780320229757130867154666671306341927241454469702113933408565947319568637389451195674225085007563437422125454725960901605988255496779033440202603022855120654741521485216629038068695614752608119172043406372947363276049682332381739731258983062790740180912116583660443411345594984388498568968713647591525606546553320270417855555194654369247368631019179669957573433024655581597746660531646536115296437493902872058251316313996852170389659173193106042329480576428220924628410313693857450851082480269124005492559429841764559168635287928420303804320075661220977701679501185714915401864481338775446516961874037901070799645130037983315937573347636859046350391865089888771856244212031355051229497585111861594059396760893494660485334178137701863031565971217185718354598173386455065467067713933472520838144491309161783960988714339360212798182673813379562836175545982307615880082127360640382984041483110512677994229486898776364878680355660600696745968714734846890392214389503840750750868396065592852005450901675059307078512329056075209766262929857931142058594540760935619068845630526843941998325431729120332266621904504203961134684838692441290739355634515326616834178734223941572878501084688199324489808281187684349849637812780055764006502658716894363945556150260599493479022907568992856391326373415712941063075962518756314138024394536504144951199398032866175782177926296092061615778716900506383283498918192863802851253140910144531225233369823044586404987894812941147693637166248924110836222850757643367187762282294959134408412291369988761507319862068296823656390183593865057484159996312347198969537392383581920837325742974830223299015449086660942695815777351674962882271142417656226947914343513564155667432988630671272044946256913952441520097298802302996370955413715784292856398326703297807050227635438646846336794774847829668461918864226090185383273920997794831646982767537769332969780191456298312042418537752513808379686269852433025951436951020221226194379209810225429391796761239994541736799527934737204439761679610115270915783370277463955632878609892018995142245501289447264869790147093355474020872738960739156524822458142903920554679802751844715131684047562168129023042711471434355306346301718782170258031254306289674696703913813600334999737263152047038852637720498504532425249021303443790485420977977457122925563252278881082392486498637110912097135356952256846462353581090052740881631326461030167557895269095757593842640082525303676666560856624055353049580154602456207181743535661812718628969452662752945641608246024043235219656292602297975390453849363829503326238169441273645442225020965406290380702303785191289526678678332665275149189267505909735630406969494038957045787125080186798268120059379195805551175285003028211874418299888198744278054625558534507914526580668226370206859909906648429377229625110703433630491848053070009367970421120862494643464040809107127799334717180124906041762372113935008639136802917481317847573839557689520839301229924272685946835758673735239620500921305211156623468669196899557748008257232105975020558962537800824035606263976060638688601511743512265708489155449691069757739026948857597824101619384872944121883312414526391017446567472126432167176789851888018732963827799701353360723845971072404505686241348798083501798604126645264714027576917104307192977219217221308287562630038590339737393324243937523954238619545836200026486356589847074098942400809312376172572917436799307170053655001491747175101029746575857695023902194460349681628790070283718089387043902785106390781509459828929803406067684522661621719013098729385273273377533910940378324554113156360804969115539660535203770459040569370216532291826272566297083811215933063918162114057951697016440162352518819558211447622013525664519151962779300077266257497320040617613577696684449002774790131456628110861785217724892183095308868964591956228847486954159444399561875343292123138742426566455642720169218167047805658953562724058449141246323470695859578268637843581515520011929817451826488741599693139575431189410272440125139662028429002724055239723481794385057587569000545156593533653725523378542403298354993670532136132949906582583409689680927540873115271600129941272565636286139713652186172416811094877361797992365635942149426152827244448028614435785758992673823122753086419800747649826079085332505746860835404655811050341489505324788149609585616196738249166640882094796198939953162302661637807714277152872519139615640735753603074967759134786674400222153896518560319030279978041172701495320177709110621655936306877660121262996266054756053800771641127128176733299455863294946668206031058915498459873104222076160811415048740555045512039240289933617968259130000116080419930145079677083519401237396135350943006821440201569266620787957371385290335840209382775559013877564778866607852100689137906742991613504774728648193171812136343705972822215987554158802169071377210678784035996277905768422352385187069615960603369844972944423691825364485020637935257795037779456749344494167729792232734002012672528153085465337215897915766386965917363403138835571566205744517503357718143461611436063372254847595595304136591229243662341376743437808417050711614107377811202087823663104711285291347539193501790816131725950211429876502177906436770346198960456779363261331268533134613509937684533652047568645157477575901969147352887430199110606494676650810893265041838674484565413293375593992543676588847364619039352670524631734947478528139795391798146119821362338737198549000606466519021040604824464824163654939058420330635476373533728492176412245640675248491532675313122893351270383630582685738086668444500220122942912364539208881830550211549419244291205407056060032989607069652137711650816758495016893825547413120537345857629953857985503343790374800062097897791903552368230974990589690526422078386353331747576370093178888682896203812680924544017009550015883242849324790825300133408238640434693361221068650329140227004041369762741013117204355497626072099707780395365734122277006518780769219573054894930571649380647893247007565669837404302416593982023950922972259781756391466223388227014127230853408695383836647438701833081769177277135984418642413311703902973788247394251325399460486466617621908608536489411277456155830486214028036024568190479141055458010485188404823336844921569505725073525586078162133463706519537370395307219790433959360457846611357172169160358591330227246522912375224796068105328302877331756747209720612332704472391939617462006980326691339137229062982504144800498294305485617523881810901343748952202542456071730817472127214097050285852400497874228437167688092482926916618890260700688538107155553737910147013297466607849462085858189009101597394054844232956310571461204596284375556602080788396680651496446220137592459812961204279674158134652237506979451756471061211522813073751649068568631064105943750020340581661822177951980896289692517053151274474037357636533665993483561623999147994940381379438359343219574573058679552386928972637304765557703515400235669032692623446396772253751623770932496466384766628008887794937019127958863232681555723783820923425106644563855488877113804332855093927881722411662465065674396139787517548060169166166674688618131162663675306008133996124781378615891070189169951109108337744793853206866141951270891659404000564567690179423929375356299493727865026813159762799317134733739516787053678121313472269271367818986645255580763113739103295646412497094464137972258097432037547761437252885347924482189304051650014497558877025213297550549346926405609858613940504606569023401065264879287499071254573045119559185753407638952067174546575305512143111674444712110731046243867771587281394284611063172661786446086028214635109029622048581632523277621054289218372807820714511822117713984947443886693530917085745145740423404395213268328050539329711475943249685938676382107359118872208301281365994295104429850580566538646739122132191069683072827464880583182329608667488924393562125741667005575781378804561833464043734748804052420105978322437164812172579740337655404845081548496800847321473717140527798088961460017227898367647671869073681330731014991220775435521715463905616933634317412507413986275778565560001329234898914613373187842052067257409661016975346127941843985031466916499511875461432345372031489805926562281733814807425952144117743059333030442143638509624838823184936293400830433660757019563089673120109458624307303537418010544555963395527813143675872227683160222791712445286737304886401073953420788359542883197987017725242553836073039285570030196631607440435812601941079446834314138528597000936713111285638901194060158017787651419165142627907189913719663595823140274340760533609072277581520278700813438219854324718625297013413516389012940717655447315086379692019814537236581413304971906808505266224577858252478791260050113897995992967806949628491788698627452686830749179806711319332505822411022608580742778706293589806530964362882057694733007538593889356927018577961522960852365428098956845647145428105608349220619568430612247004702644194542073349716762363499713209139739471196789911367941072143714502953128464686744171740107401694158760313922099743121300834111722726682444605279337186767796952785688050403701976407157463486531915966606531562022538466665396156594893694713650602405537896847495205286207610391852006107897048528022569426863457100507106910901309765756679891955712384471266255606386521416998460668397775535720365658609643770894845735446317020038705017807410583226000609459170065423501296819606589648251154914207473070739214642350380513670337609240564131421324193235027617283897172673103859418156517969987036131751836974510102151442200524824405564281780848446004443795899657375707130584481751185104555848141822850302873162435571081501955889986331170988365979852348988393704978496396246075824479637201066121666421362690390341054927007932424946623705220543095753146005245697141917410351620812476227251716280547699412811951878727016369813546267049328407258770859235861245258544438409832011279671766247269961145842772525468487110098638297322145429861707480758618166251265011560755019693968859747041053152098805846497302923314856137386931235505079030234835826392680967265003155674752885885072116199431550563610518902178911402135814745457495654225697498233670211547311132488682737324549651577286600087894820386747603429632969575214960901866778189300254498145191079809854785524689429317407396363345777459211667080181165621142901808031923892829260159014804832232424779084479524934849499960393450492038014101390219524442896201488895775643167836810408698038624944190914221201676787855717798728943588265908671029117479056785944599816118685486447719172970007477122572836396067098247716701832997718714224182685359214472023013659140585457103143587691738526125493260663628436211562652713516440643369485714121366084635195894846660698146337795797277148958831783269219943334538233340394677531749280820259425596829111236358110665919112013420223649285122771796103572794913030440187841751676999997121794056705197746323903373655925580629563974300104489034245107549745399462804847470760528076926242938393396680566201279369868000396866317246596896221909395053819190141187319616099128701481226130741481654474579780477212797400159667244174371509245122941335146723694321739501383683610626374535451203666399487585795587621587920716497892082876479322789767797463223398112793534810242728693624278123518028142182940543200664243169792538340868940828159200376171514552093374166635238413755148227238335334807230460893039216188980348576139683416616396876520733351021331288990257990276518515119057477661040961825068007478013021915782688486243233234102560692811456441508079645690641304278840178505271312673342918445363559852852536250590311431093140346941864784475024222176506611193034704832565238626367533741255659415458283397791045027862650299014344925189262540049671578231105487384829956364095308618268178351301218333614411887380367814081451551882227359222849871964746523473599911693611381107903716041278267669420295909081273473524570398686309213778512393100063755433434843034985436019239250908786535695994823367859028738083981857714212194475639456429445362267786842323126985770848905999228724219848206541375696068792027462265000796874080276901260853483563643680569257310468780418373864947766428198615664429094782846708770828323900334814372470016783287193141402615539765647440707432094568546286836511556538045091505621830120643078628622422232337806619937513755794906776151338280617095996373884065097889194233983751466381020628146559207328010060829274397540211606540200656812534974213175622988453632097282404876367627211241024400662954712268674560843176124395642921751053239584888293638402759160099720024216096806942553864059876343290541877363811707852485837150748611375992013363659925404827165605425815744645072271532376109911811861284809886759099838707709922173488885034745224264062605502345020509347260043077690020184473129805915564457852889755165805701424476450511270158629591422574269243159863461432413809161630256143930920633381647541484164447587437050380850679496918329959457290446843276647605185788165095087758394631832017851901120926682355606500024653030263269093511211024833487836204440885073971816843501020971631683531692484868468029908348402016007709311961338629051415384289070384359470775799432451631215660511180377873939379795089450318046205069743545738682499225839971660053160634023638263462622761798587168848204283083091545619237860225578319146638929579907006884848048466545143181173064616648988738260482228476237669973327191336666386607132695780586549118261519509729814692530583665752845513220740909041632068769733413527630342117142561648137987266288223206149501638665960202092104890236195576031226064617080611611197105297325286718588211750042793544349766648317405981705728891009999647940668702928305204462154487947406091705987366569736808810390370578513374333537703726685448092924416897517107184359661593822860228009023512578929779365865749580256441359925295076602477133139646670441476118965476319343436292571293972429757901514584296330259937162131353271811775940163188354269144768760623266410947880248968869314937840703567679030364832280061523861144760662816243487154551782995072606447166269609108173592023477719704234743143575381749553117604381426670534537493713445742922582895290496300316689657802879589499940240722334293462157376922027407696097631411185790417949284991851887510347005515091167211537013346261383411455727674632755724933174294566079286656831390450205871416025970420633785279543574558486849973286389641037544011212733695956481679776208033293973497369057245767116574618452604411533770026152659054753995545527821590161429631136143509075558317266366746367864863795895754021520173722257969785954325357149219222768852100236237643847339837969244163013589778900272841100516067590330098362692105177317424911198286039270909072921087071119187318238040931181318892467669736359609805389175150223239223495818798603162837448567205014122035924386680707681505993646867121696984585085041824859670343427965926795865794608280728813756015027548310332340457656455592300440327774215956600307100422568168424064551337841983046590405707960643318406041247146777641803617906736919091706580740232694136039237295352776358546229944541903785118117557317948501801359199280555697340462394589388308147766459824838995799521903226149143497791334670105702638921284395557389720109907975387934537135155203779738443814327280801653500270663271322111090899848760927499281275308564251502627956103226151459437252137226274174972281970331194419443317795242341248579404154821764946243302061612078653199819488860904629355218684066488931139447557385008164564767791335051227129017142604876549335537760668174000720355168292117336885052872333794320639452058165125653149721883520107626579867061840152187569944042655912616265297961569222748322335391615666213769262522465458566858444490190924855534403631234760544546040296590301301202941697817113973958446057702407111848492324830631624892135543101495593191758045695351050980261921280297913451416850057876015123352804405448742187681840906731074906162647168426095431845891398079631697534966423198246379124590241437784225264833248742021754991790527966945780560677325015224825711737574748327161709856915138238890177198148805378348064464889295856016086302117344164067857639931217040304584785636991288512285751141150437426536057573039574994555706990457959120772331387022619125896942025586343662859625261073022667983858480650877918439770376440762121132094625219952376047224813694956341239090267551584119851995880763044225657306497955997657575710259361418975326563863175813140598139677976109677622794160137370627958582359227348508228978563308204177680452836646031908450848813359097287113098091137401860122837855798410548972907014957463110977630894833603007352713227014032578443479647077765070378346412818516024494956939960655650638313980173362365048428276746398543858748443205930067296203230232438578970827098163539607493419343874331931641597935901834033812699222295930870626270688883821730980155711180770937276363615608334993172743635009947559806614184487466227799887845652524100975781551008344842905626178837347256652689158189152979275863262388531133421155641050764543621117257993846840362162940504793992177752318770132121909566219855781985115440825485548610476495053715113217482408438706235775980336820359352472869200052663509509050302171320313746014690141854184231742163530199754642361437959086921291727017008978337060451575558362593701045393121417819274657487787538729199275156532284293180006702506770269571838378429067248777684984303609370262879883994377153443421195485836557186981316500076373666586598869002468072884143981433341685042182087647950256282372790769346557507399300640698330480109904915498446444614705252117753973333173144689623567515864277018474155574747650602097268785344406516706021850627039265745299865598936936419850359626046300969976889947471622129352670290086154565673043299198004845127048579633703129636429033127848408208031323996607460978503234455013835680725045827625409538717312526658960978352643475103807193755056447820249327337864360143309820478923558494292593399230317438059642994300138445520272741859691916483684731091754279500883424907109953055283319810140284187068806869902629421938909089265986565878155896173910623828338404889452488995522379989429075530634390362583632323568775437397651614225433017589414989140264240988047732013409139139536666200471715403758422852923742255310127243212091183315402976496088167227750763500493718761752014894986133756334145307709511368900651580780476990549315613078347807563316074032684988294650194391971448047049811652312227089257420020319010748143484457446755997144998765511787850719659395605284688210198619159383627294198150410685792490022562497356007114179051533306586295924525205752454549308199502738659768977959668551920519901309876214105892058552027086554285323490358772273737372354939292393754148901553425332098730398923947396287367358111267814325047794840099120824555969969016727356332014637747880552606158127341777651206614306464696724091012290187200979832777762950990829423485982196355504708612428254540513367610600707958718981292238752280697262459397777337487556117889409071483601551922003996403535260279287021397848709172119326427609854942512521781430492257024493945619257716916973718747988424283168390613214480322510019802666400415595757112485667809329788669996899997171941384546809604943384253696841045010182675767970183188317134034165636058230079011019095192087304995160147634597676576486651323598340200458025144981460093280844072093522435339114155425364759483336186083830733769143519975419516688116715247502140941570381284059442481398827176137140422703622109009666139493136544000511038353122106319652388341944173172492335118495441223473143986364338481476704725888479493388440888988348430275831097959786813110818169709856099056353239689017923860250988827464668835584702294714103900127889787737179521278241459789722493453758141500463483602488438620631061988784633039743526405305721296387674684798769436981464495884810561228670802462269999116661913232777855540173287439333862831563633817477318830351143800925951201696764926682280102216867276614785530105177347089801677048680970972678847495942248172052584346664116737021252020283998581832152305242292657316772141436266729172389089865166043174609583106257645776903186078146418987956841707870490119215689349110987420528925627700421557853695646406001805647869725091662501412517989504939745136278862680029043690212722319933393538845318936440732853218104945652756183671646851358205107001639095683794972257769464977334931515960403245764123437130877897430871182417706415093610363830875793821137141077675225124379872378927084493214628902171902405341039899177332835732106917632558040382761226175804308892383039428471356290283602734608267173498446331760110541428384727836197705234985231014819789810068749928818450807353863175788561454203241149764630817118757741250065703271610691746880849783327939807012377031191280282908098250012930869361377680652728720020307394368119466939423640679083957609309658420345262982223055302528684081706937326691999226487803128067803396129482093944718004573308415092369433696147101204170140382717311393662791343380403583397016398063221957452108713234159457912894914610352338869662422254267323670416327651335126185004137422267841307222069990330050819353959661572241676975705454168597350966517911529439463928109481347145203726847435825176997626212211984770171401459392336542082632519573937781402493961103235479784469751318278432627509218908228103902101966782446994435721119739576243992102709314387221723609905260759757831563236573174302112042205791960486990266395185211098916366291598111231749276733650426701449223576403061901519681923273802284205576096755884251302944740754040347754947994783366524291544545963279221152184277457932392775941504496232462338121819018505448253152860778786928317770784881747972129696319008019716887483847990415150418257576793079286103819395044284875083476395013280252552222627417839907816364727584027000256259062997760513892987131741311888637522458157635333230904810327045061708737519006115041998047054675522154629534694171570646053508399754571397653429719750544859326112393345117872346304276394000530659138080582606987280892460763520445651748532817135461526974769375995308928940141511953702800122959225138732597422808146004347041444918365790773970560174751146769597816267805339400199163292120477380207958849941193438167038934851568257030437825431324496515372875250335506380405801990492225384413906983652422492164237115650360386225484869031230203094635178477524480694351404717205243703055321629690110764658168371232815333831324450186432899118770975567726665123098290638183653577530756844513911521373672871367812005428588571789797916831004429166044621780220621045465629049795648708881917464983292508323658315865975711969420571815205061493149716714763848501277154241360215192254221249662916196462272205752388352260357701372467168446258836874712216031492241970712516311023203631569802486146636020831484865498852482209334884095012141243900139980163127259893704626870584810663742137313587797466862633219836024419161997512445007178983801618227319119684123339389230354067635587928918685504032411737176721286692659978911311442126620793059315445223616827894139754783103875683282366432824788222482778821759271346554637644924805358588312556995940539964994554928867718524583640109318581490451924396014032069604731328605974097048682905232547086615686849757722747080823329742583048259748490971876392324649059490121388942813793005011903795380422675393452205045796257376982379036548963784051456576111053969476749245639158335796143218971153189047610711562510371772414443810061541835966082308671378781583924895857614533564604974532661615380246942948780794133255428236878700839228128597069992575270940783697677340196620083376825159607312018034385562799769760121262477513077324937013654395574478382198152753851089193211372846309949416687221767751619964460684938155655503048502115656197218323483261489109440134877930609657058431853706202620947321298933351047622446186285915816920896267626931708615635992578988425082519737431038117893858525540433765388780396582626685753210170622470461630171718140199308261086504649422134607538907050426332233772307213286100913944238116936781173940215154343951008090261841708889999239755209957820727404703482147798501976464738417926578070859282752227006983092380261706406804210202078557415706114668923887700469454625183814702115396563129099061992494058171681673929086227378652352957786264468679107613736534639826434021996736579771927566784709707909633122665882986005901085464174987888110866143390431411544773487511168423578657341792899553513361764989533541042943620143001751290770829835226201491452532524080072649026366977058863325920943036523020260139774832011013999401843297189457306517300455914105355789357150432285751068450288648518180092253273066421775364024722352691351758579778187820539620625641515120954593924296383504033580870560331292618921619343349197756451037038905819924776625659175440107804077616187772755079295871799502468502012739703890401026547815191250166718894387380218973239941237326332378591057053950214970156892722463003528427223711529097251616197046402944330550590605950445706323187547325983864691758333849573981607887263902486975814502450407214944393219585679755824445549556894848848820387814350166404344557399768184316120359117347128086049381058414805636958653500932775514601204092909891717738877537997125517706783746251014068079832749164163208868547942645578863933823011663940259746255941640852731376741510171666770586138681666852469106150585594846397050051888992820762147833471105884854366439797858738263412935603525633455696350742245932765573050496005919257228568918532497649003335529277870159431754246093363822542404275839968660553426507947994296689258188109576817844652616903510002364868731792444026832696731407183422491639925977579365883485532839031120272849248646104044549832790720741869406605373082741550559478150412110104842794193908298111695654228941878830851896235401509684700541459563195446541253873681794950996875667023127786530335496080682966389217709010027942804882502984924832827916251292151073204474771840224951003016608940138626838321939605043281910814290865939965215132824714117281037342269376181563490671900310999001488611075080533502864782391326145410609725332976463881012146425878230887635640034652873413403918911117185327649348271331004834786006509995899531283170034099504671332129926966044403134115381204399260810495857739496346984924969331640550435901169944927648737494077921513287925647325388832283917411953688712171970932453250444094721602780034449728107318937935245023205599618156808380582502141741202631102878857730510302452884332203054554923036519989253378704792864418015686491290905626461031855902881479864768165638366102260943277720016409428398457521224295966531357420786188876179771777612841511796833788074183943670901239936137896465819186668419139726322890175553806402476661843687412932455497720377641363691034907220426390543956243075197194003939430959635778158955418447652782115063537335599757083913897573902640376960616733576941448898773325315119678762640674640349384429343083829184709776324287602161742346764444881184491004412369121340683505862938668015978634707416484714885538688232214924689722813961176320447302604641665155512680078683418077984276485770123163509833144002376085853976955410495533616324891116860718604116701287184350702300155326581470239888651145758981294132627393447268483232475684512760208752897542220702735945360198090187977463208802926339660795827581353379010254894337928772017292838519665709791469236830603763261063128678516797341341915953814740248238637426922471893308376900576842477199824069903660290509271630848170446822257892032719207187652256887539832092963560386350931390079539601991103010129394418308303713969903987154017412543344883627120794458181855559391216095607108651539065109062903264064990523633503376000883838866063228342994555502831095115803063653898397687035538753525022129814037007018207057642051763356089105443407664201283493679553242773390089376504128458841827042395648953648221715661757626397869787358269008391707207828187108640330408738576142092191544811110802975005873543201092930852494046836192958780033334102529154709249270435819699857616847933234558444327556820774378883311595407860408276553912048001652523134333443946479331070238297192878092349846789333282467739346378734957110609234696546197110982192210348587886272423489437994458762729341688487669234077154119608258040411433785884610878111004403585673937443161727994064950877911981283348611495169597911415206530337012949702504793222441972573780792360781065623021994535463666792896450424885818982034505687992818672235484810351466649543299530945149158867072569450358459442245946613326034063496138905882474690611092277780058681599733511222098837209603636065799577335482941077861823863940669718936433528657999671876698668982865034100479461477631577755578670494689203887010634570713741928885759777264605518862052258417804176022384936402547798199631008829419623030880407272766649366559973936260722586326142978651009421520074757818077925321268884579751201024979661990999866668320679919616406441742068966079844773689061149256100473537605661925426061608026582385100269451234370810245617797633622213413422268150289599416615284660173888535527210798295429554745493174113985515280983751730513909516638728778308228174971414193702618017032635898707835345119718114033515679029206719978614004088318996162860777390724998719000901838372919949384104762130125439392914389072449127202537744336638546993364407730434114421630937221179407846136323047392980828878579479810869681658468336848864184765838353145972344751962644775450532499774169683381955839612181235600483457445688725974728862530715856068846067538203159779322242970794015370557321035240328090356107493404074910059282968065740222883556323891020106686967383190729851593804838786000172029206514340466192166851904108634254402440563774076193954298865262083438141649728681167673776809555989353651832495167249710842643505829927297536586438713421885650002381678403681669550192252435128761076436701595293835874635477158545265455586762095656297567063704569976933366206022712204691302923587609142061408113349546575925513013841788353905351365333875466517540398715831071944227050472639994694168166033695519305581400984096836637303282384895047678580871336083588595189736550642071193011539373851799827978563300995024685363504354220560578757995862511986357304419618093353939729589772299543970906241058041957236906051568976539353268281946479106754276475610331642697342303213887224002355214677101740439010098422101223245642118235746648278640637556609181086623171299969402703515369183472783373100055452525546251548619364928746411667330815197141618933831899319537191136502151305234707562085383794431258459683249090393677736852867238963380538264563839867873173936320273704090324246510183216268233836179805653477093272246652019243960791311479012904633822067945992652813937882628840825521256993438291260329229081024569288002200416856320537154784327188040387656544647442460412987219867783284076130287845272501313157803227511281181689295829106246503505543694089465818242296420147206259267537366132506052200490828947566847543430496339334654108735385871061801210343224112391518454372824010305345470300485849488963406926389916841655578834660958731021550019512255656491373271169936539348240490086913913114609944798442179220445594727163521694819419803192795313661643577620227284490947466938715828877684753319155496627959394608013090294731440643884136997361202859608632500306957935337105191363614555255560249632917331561940577950456490971889160325238972958502301737899890167983518551634211931134126738296011118813971069508337336117152306913606841165968118619644234208763059628466241601928323766251201804174458162939653653241415693924180147251178140284877164893055583034599158091425745044685690482357748311674408270203047966623703419752632329702347666230167789065049528936721771288066356514236006166341100327694825168228038308804287442513253437070893116633356382562774574073220552632987749608218342755770296334892610175934975798511705445625151693194806438784948567815472157493296224531440857128870386172413727317121775909029623073372809533871231791519789782932739321497900319922809080880293461382677504951267376418178364748083349791916698598753835241261493537004461192604552037845857878369890368473854455234770072809992667084838797292477112874343297697996868575525875804637389061804864669120779453634785757027307828488311920918503569532880918059770038035045035920296812326712854031948518757911950486551414946384061102320807166111418833114784817874976241628390508785456280966144887078370507475894008276112798409834627393465041489210166076302727211257866249842697927196159308695636260034698919846239193454172512183487880945873154932324896302297989039684350714195847461666295536120874939023395495175550013419823936285026897553260783662165145207487094949093002652832776229986716258389061229826838751194815301928223998117254295917971556967338489246398412962761054642395307253885761050312533015628718619858475470906587132482974829785323326036608274994457068996706510166412324967180437374979337591896214832070129368201583168645995234870020454200078765718061896160684184538712324288487640001508943224824950260224034534177425582452117893393814271542135285486759485738914954134567381420197453813219473956027166642272953653285012657811592571113955172171992614988737415805925249960199827209477961446562474129385174123967901260521614740218733062592265681523640851569358312250956607528115078335458238079677070022809713748875073724351237375711191524455248719116619127453134376708721117155720841125761196343290479678644738383208046883835808129405993557846001372912414747434205238133858096816862178739918523040813376502527244351269575490385815732091885619140751124270193672458690784144389600241524374956208226432849658217913856871761650096836547527667657085068013645866434054463161053844938555372479785793322211563479038696795227982086607738225489779220767345992950265455475368487687181193432717632842996334158803737657958792920086491967613757665412965447410849648307282531079925259389130551210529948783070747518963694987810465787944959216039406729395103315915929146227746894949397417041122305037026030443575260187077765844389129258733747669452690068674846528605301676052368910539351130455672456757235639255762363644263516765439385511922908842484519411239616654851268460811832793079244414508062404973452721897668115953312896876910320442349821639759238108736106181499276698483716145933737264022247676435094882079360877557440374276297139160582683916427932261022789786409974650566375769906956252746291079890639842411855084832052949248381954707635490199176392648668995154431280838929496534998784158406322335351531434224475301265024868664633534191387280229727003396490128257350740824095793081491899634412047457878379936415687931214826732065860122736517139390463854245619637820443323440664972362534556093969907563311593555534609053193354875645895376036239689051126811472768122355495231289317013580192431841125488981873622653520228173612456960088114293582241128186102793144937220506130729484582114673154950441724673514031881967189911343553395869154983772061808369352335807363577721814119149357357534224675895948738617907374604720374643699588741583399130193188635019400376601031681299928537527753592106122017414503041864493889854928884989392614655776374708860402799596713441674621280173016216583953245395814187517793941155934646890265554174352733224765638377293034789059720026567814459313219463034283319710994971545594659136760401437698854736970996854088790194784856111200777459462469257414726548948783816807205705231806331866438866488895953615733608730420411125946551075307862570968269837908906028540960516471617776717719744177220434852705589101317725690636831950750867456369610172720168628293014777523456840751495752160828139249780533095830103277661139545377231207638702521057957931533018334165240715769806001281469181818451692963808258086159424338796739192035511632294720873350999750145534056314541923972029307626174037299368742666286684936259674744244157899716795487399485405407395925532260825007472584885628571510183166898123776812882664747243125119088582122192126391364155605535328137395796648085834184522301443161549791917785929744578862156666477474615917604679718532762570767698186169106386964274406348343762757858341939111040547133008751524515549547359933009939446562506538310632178610206175450542710131971130570798778875290046810870623974764569213404813157594999003447175541359592646390511158923926405613956869524946608513734038054758182196007999950037121935924384814862830803885054062647198123815517201319600783224768805304231908866620449693256225121063382081019607120561891296591471338727464998290933135750002780194929646589237160358633934777466520012937073627728862663058079128938152621646439962353548612874035727285051550570255903664968151340379212943819845092931613815031091441349952984047697101863902903071384657215486043581823272381647240337467213932516487107567918044958542336840594141399826027150057521702047199686154076785073908442523282589167315014620562056552195246103898206338578682076436542490503271892303234765717189005564014880841195150522025223150038073738284821326411767743677450257651525178120044933170733595038327585998478391162760504243382463635046694052410298983865099292116110367601732539340062037164737725458263338985205703107948772113489031375979449267560700706939674541325993319189276408532009393795150352841127449465851759971611080313511670911114051589722231308132367766329289147726490931549780891069277090692164830095091656018542097701747802959066992508997599838125292556130406635087683471815153989367795132923020135116356881418813735415843279074778994658718009246897854381556695936190413112664697674405069451868798493847244245280461415556513529634392411211849225510735748027399123534768464344018328131106598764383498126390127433857760162697727497861873520164222682386237070685317011021917377588391881265625647986962489203011728867929843419197390255367830738694586807303292172892088359795556606007632459110984150807840877885439857873888648383654472544647757260576934616216537477734743820778572555038762145697361709290641461967041530470213902559599934207865083995103575876403829425294598453401603571709959198127058239289634492729183554126803301550134930104440629898956479473436874743575780929759420694721929275099322395842450836939685007776677726419510020056922746832729701801927206751944184030169988090456393311861054601310692480569574420527560332016488594009797414730557283547045423056574535088395347994015465961173410278096788789597893573600739866910927012307551726702889742902482987112167424723538506942825328244133892833535573940693545485492325987981764383066735624248952810892618357186977299090571624927218554554721875169592186859930884308054858684268392352028449196160366701064475864442520170357073787452722098993612086390899672109196294037823799757442992903746824568102855551232365888648777288588915463780644369419117337518521541946063431843402901717250787908482627144046485329443125457211373028787739543072328009491230145463245749726791317651373142186802380232851605819339880828653886459458113728252510506290471064407323408564312023611627810088112824038875475087052436366336387833930709743201132759237510245174587439851163647943834184244403637614558436354006823142832775928307783763079507844903859985571520096051145564183443367805419580698857595908745036035314899192192537630130783663589045841304939344626468416496944405343208541519260431676264264656893972088393985115513320850946587781567915364243988424025278173823384113298937319812709894599327545706017230675800913622837672794234479648858118248498212575112733038855933820392973740334236115210176684005063632580146580165690329200589038444707440929426146655353019127950441832742019000586727057028323811848129459650163600075698714480736635889635853653187666485338359380837151790431405539029867994669509717781842733510594336734916525574834527272133483745896280417389982538238672979436216993865749449900289896608939830783538517251617791650694388924546231534993885906190094633628486089910700714840272746344455979763516170372656961423225987465355947279045125001100905246611899036364998180032259175823180208947917537915597196855679853198521543623800930939619921058464300236304765381338226227377550569688562896559987476312348841181287518276780210861533215018790232414509418090316121393762703745506475822857028037355012757186039203089556195740728442034376721499764540373203458878215177433599173711909030120893399543707278238725205312696694905292103853011905018542160026838577717188164600985808505804458383838138391734766198166613752618293685166067572216215525239059504752641684058819378466569815776361555073336673956442183041496054225377948718054274485976957422936146991664922589676488865841521403680334716921187323964490509664609798022220125138507678474497853206409812330596358027826441931107367181445018481379502189312169234415211283995638910765307775933167889994561272014306265106484418987681252469809671211485703377380068883725659663243093371676746800608099695327591268618138498541388726112816364717567388777661215497898709968482812216952182974464959143247980240728786980301754927872784540820658052808582985850857387447688477510283866399521647547768367779231025628607154931881036263624306367301099257383770608799255078716240062137927074994279447783528761192669433462925593951962893649368377839226110042395121276399150550225699086538599430607089611447933469479210648457351314942779809703468269527742021547807252551118494445277889494482542561244162014760329414384225300443781889346490663176136081872004900140997677962510431343319988043780075447409940430927260212925693656715881678348604483662250864169520858393068804741120401902113977805404001130927188460343374883375776406615634055648525532285173705873139321460498088947950300404985107965916129999077128732554823884330523432768114606958622806559724856203607583777925685993379964697304630941039788454777098859397834986281084469858217782974841484318734537372090720088109109296970463955201870630156272582501939246837544357877657879009872088452373404458953522100934998262608529279652932428695486521876667501069833866128660831693271291942827719838689682210538397273202438659835696065195455532646942249330933012604524587227987286284146762637844851413480443780813183919290032924866528535249486722784073792519701670567492185169746534843237111344117202948767640104355098215668584969342721120173065153269102158438222914804214586506234368619570915745346647200080161926927802265820770472599681222059588431361903470766161069345610396224763091430647393196265836569784790982476305287920705265507599057197430946342890513850578035699351147722051824638299384610074823414166528372202119603656350325059951870990013017531911473349296327323867822533499097252013824656012988481585185470531771786683775089524882713134525698139679965002675201484051667899910621628675366839223453372246122209275598989356249849146455027705377875395677681831662570117087962046068011296599530498392037448511718048857573275489651174574082946731629893238751550141007671605203448963351543465284564782408414287198886105045364321843331083649132514608660728779599787850664652847708779909854405719761039863829402352662262775082833402882556351566184040329534487248389288503875011676712510952282457750399084535040651256410075676260152262683317382002192525281387457108992994870018888230817585664938479719988832061489946555510884407719179444356005641677433237146388783118618940143171225224699342311143469060576782494331996386789421859884189316470631200054354331961206207591752212928744574371368467384923494328395370496197394135284347832742780089971197293390988539370804749446093580582770260386204749627043536717345843433296894297334966979838447706520399149352129382926362767111743073000514635527396465232255053769033915798419320405330085271963848351876008657177650251510545744831197632682037570482830744044802050389820287098154493778969967210744832077713121331237349675837289859811711782442044239155949993193822477798895379799578611365809055316499945189059892907218577880799109696751809126354688515852256496129152541224043206383298350752697893093504737239363613306026205778945140620817495425459149912367099788358281721564848951892888058816229643911943551914936331161533411029942774317013737822532176507720978748485080780790027667060270930652677446306435628439249306823546043156515390100242862124301345910482728674191284249590979330217259771619736401124653021408332248697308495672082872780212164231721707536104603247843684405117261911137916968169645885976869401199155726213188968200668666790772994981375620708372294583978185224143465226046164749217841648908911056284179157850163299733730290492195350219649231494737279961302296142454923243016227973055057141900212056965450466204332248555401493634743048367732247379655542316752230941347672224076287253043764487175268451487975592684607911696943860190706355053632931649699662484353374823722835327160687429788026047873858401892253272061722716216083392078424276995365439672646948269013832726159394739187592761805002086964205534551497221458309146392362878514997596346097586164509425834527658725869896711617673655269756519206669973103285450864363997748147914313607346967906070263412877211417890315232919217553626684836930433024501149629611956694660780740646846875510124149502608508343733939677754318778789337079519851906422433559331821814233462421601330056613171974437002863554667804119521206910740057825527048038396844736906485948009566836063479830083406689610320604996922988890341079515801829510242814781204905918178405462760330263378847828573394257192126356006278529688350165845918580119728743595618882895384824444508139981958361028398542497738271364035950224760224756358495346421772002694091302769033368867433887003033187819858458340146431525631692403119437639824948664346442310602852355131112875692633211027739703841442019254521328492771357817530877104500375979922805135426030376024992020859780462234513155225835345338876667418758632848813064055748457980920653905969307517078555279453835891001901963426296679317328724810858550053169082960138036635855208649961423988833853158381358059660447797660792487571792994136699876207832997282573766344991468244199239630406309596455195059552792254257909014215716463225832318826912639855540956775803150804487920940444406196962095440051040098353211250427247718962348126929805026330012340602095258243405367750947324126109374386333444498551915378302393857963280631876856588532554150115078751422463711679506533884674963203642267477772359856965837118651420118746044898782876018010158283199390973884160456160628642112594987530133064507276061606510431132470777034570913020629046981457556506569889726974102131224318359219396265176338614241052979846072739936173968696320632812586614309877280851009577713202437567721167086442030495780765323852463191305820237957133152403214406334098552240430805529787311296321729000755724219830399166515392804587862672344114080509588387451009011898226884010979566592583144746032290308716529219951783803021688828170676465974908211099440234747407383352559291320362168299446017186056708265450582412022432775929352232962122884530185006617608744992969752397137159601711909512279401026569739850328604681748861711909701559802050634706240224243189112291851654834949233465252057825529337877064219308622023703674306815345759395323999211512980759744724472358610775292744059652724740694355904751748410160928162583061927590287444151912282376601339247747312228974460516473855391205256019265403866201515599980869968371731034975505402760225525847895360123024654945712913342435243257485854379424600818954229492398333958042380497034257419804659613785594093373189308973113935298934264036988061105809314890431299899796245354053257921476570051656358012575863120992931029029849643360098936332760479632804875823270811308864370346956597931026972404121647812539117193570316944831583518713599600362329817102640387565657894453064960526245889271009682909159925814739473971071640660332494475757645876737573093834853039877028380446153484580525765763954835746836988158656851102419997392810570163327855481099473419428258242427706011204369991626794739306818584265234159456787172296303487121281992448443784711270468432927189290369786495496289005810328464634444980055093649549813890624785581588964863516429698617650221429842762985303375566771233804374357593277297694387305141885594827629578600819683694197257921708349253225417001377100529300276958713517450771004999599051293609842033604258348484534737601719311632326211073451143991235296767731304736915234071174970565918596990140379586479370300591943284574792821673772113350521001316782576816307698327640134825360930326114185748307125764373332284153570599961814770667737409945595366134849266127085990693639556114751804602866260357162008279741913787079167431208433356743562140086051917484995858631241140391018307328159063496418732180610303835625432246777555939797841550463499059430217593938218666305610257897844391946160997659290122662028834997120605982608529935517562761292328763652538468883000864472034666961683426112695641325533233038339338967452663647493161648273858389010169407783277108075360886700793599860633383777404940438268473501749416758305493498814537378812272584912804861033701191019079719896033583020351995342403626070738072939456356818235052240109570551430947411173559673855902112059818876693493410053799988861304237535122584106394493775761757956005303837084543249020608340231114844614083999076772187542215467790362622978636532284337802612680093626133358953944463299496902280027051575331946768557460054493086918349734138426613789292723103164375374475941435523378008696030205388314161801622349520015030690769336442541299478130199547864419762330016725326169659113230323896104440555709082646362480920651795831777053713004155672962804683922074487661990335112567302033317843997533160229294984133607338436278421347908667371993696933887201719658971657087748570020642955886860840600359203499135226282938615074122684504547927337411639320991848319355551304805317362264456243077945976591371915453248240971668624381303918409844650931380609910984652533828878307168461627389789291346288804704323560020654039515216352057937831904454776467655987693034528846977780073195045985947840577519641018428896531673604540989175368554027359342721062117466250106987592840369135144238511915411041086578818029495022675499430659523487863813492708718372998875658304044059059404792503525396558266393204240257375967042925806141481133955024209755565351400592401454636852661904003334805793926085757944287250963329718312944524087772678038259895678308225158899285820258470583728166462287351743199265067364642553951310294578820716775454642800952048471109018113281720233916206288360985401457290833580790291945977133659408028077736838157218349739009928738052705764508930306813445423759837279937800695105253282221951006352334895978417064062827789375316895580422588481874615261028001642451208183454956287074033785222578928354061494870676337804483668482536771346621566944173721247849518383424244775753008480186618158324314030195006282114537978102772454546963940179819471135205865123291141852530952413990781083929968832887361601707267776267250879613888081689828196347087153049067964162590814149030304851285173753052563562134806393836483223068168879296501635672475450687463590017371500111016115619932812940678245404246442521174612713572455638278158343426243901362849324679729749365853344154365360189410472766295441624236402811771318422233224866551526085155426934141942275763852013946820141098017057992966163987559760175193239426086796606601088103999149901708525437477797917634351867842538571008242861467732104707948911335303996499412634248233599826239819457152510969191000862756325572167787456899294180238765860616996152984420753500820140969251019575512127770264609600857911383362024040634961772191011657177989888893187941069511527410741891027464021363847917860663844142908499226785071268354288475991614672039837778976144905246476039713377803742776061063981584695558103714994203799375986279140915095738830910681095750442248233903324343288189721622227144674936492762314530120558154816661438609747465409989346269177236037256596914714427754379708094043664269066993305851899948221296856357999788566234335401967674352503305964331359071428675749541093379293190757119794488766558639945961942565290264203002285251429623168090623856212789216221075672823627889214695552059511066491234064316521381161956498870327319938227741402651930054507841717640189790218872869445653754209918473793963245803294639960190404618352002891308537936403930899797978974230974569002780424041532849374589890757422016482402557167014656061112925132905653121465248459517024424008081828464128927582542746674849593793599433236448279323541257053552593348359190725315548302968492327486882545652356828882897895364825867418888798894380502393976930342288369294471941771000730286659460955758924637799198850143870265608510864228339681409509775058453412257605896963876986439839021421028463823728384022602746736388434377060571852823316867102295758245396068178055705023694663211499192437150105301107632436367064918647686664963068416018559990218213850044016226370382916421802294244698169895485652420733183394184244062101484635242198643241855343931667070925376900689301236779927752041749176647031597703268217911159835949582098558663376132758963244699696413764349015852329264557475274897861350832733340586446049571760001455385082751171544556343301694031014612522070105059239179171560309715294233178556484934604712541741603112959857706153633467384890351359166154687528134724291103208258741229088453078677215140724426041068917265341081757829453883714461359795010795271616310990011472581155456998468562727706941093000125041551455669834148659178999928587205556981586103272506371802201143705144536014872460188881433073299927905915899643083173339661497500186093272749923027681587473344180354460622867017477420939690027769162142630361105779048501654601067899848692075605017252022368350903868524290806745346697673485415025904294037953829197349660626340184816696477168296812817180232956770744827187679822823147495350247427361082273526093704983041585764473748052032796298880292265591740434144381895681761589094411412567491136707288075974671132456217623794556996945898209744965945496351832758984407800362592591381527614926094350938805444855686180229481797302014012492207356157261120774227613318874949792310545742546832894809582709523647231984572362996744479945505453955268154192328842977002555307571190656405699281574933088621842928069124189567146589207900637187637223281932124580502782574905909184752921857605724478608790557146951804888321277450181787870730361337730693213726854520474373736075727991840986564801992088251803951992217245249759190352400236345956583183877981044725409800840353821356749901383435650933124475141159819180501079554292534525035478447270365003610946233110231409743018723391002807895866058705932357209727039896717508549864804861203867135786374550008709022743903898470346983097267454669349397563995665834054240296297589964009231667666917794056813064166750574527430516640507654523391840391860726752998172292151713342213115386702482470030388338547384387610627710807532309173771331858470078613650335145810594040495866360920632756071474810112875523201994847625151701927925901545395699269309567048709734312708385646737311605690010268355164118385508252371655922290253129302741750027538567333342886960103635148985982336979628593957216122784239484851286132781725955909609972479258778758975104918895654958058499885879012566034737551328817618883604286788960274109862428800998961932086249695042838130344408369498286509149010865637402810772445080837336720164956795230741730623646874967021693886805362691407221203977877901693848488634905573900591363156345650904975974699679133874137645925077650284201685256092502565836874439394273510692239385289624874948972491489612658612385462056967607836868111375387252961678303232232951912335120887881766527427326369952045536524347390480177671804673645312406163674564029438142484740214298919968902889728633216988571028671120005757534813043692495252190724306786824323059969118119164310617757194083277515893322021927846339432448535415492761291846781097423808991295916125411388526800879505051538225734572983088150576132098498190991778342541175589248225176508500992014226495150629121975129086650679268990783591581985635866099076570100444036270471531742511077335052793070132375158719179003762630987993551454199795300349767726532755900656889814840216764732154156768787434821561808762888602891750215144110122117853938585198047711055290760495958603599871391727993989895475957331408343437972059304181700902584362636896363139384192443061369545333781757082075034369932562430257407016038817309390703622009694949825904698916668382020215543923947367616042195568740993928304711697880206694770130934091508492260592291180297066075656790493437353007056255893402953141423385710516616338555741861474129855491846611667256615443671909371938477146394791482331720954649068868730821898768499868718293732900085261369908582919723442921722170750280455483886148638221510867592021442109392918562953359829835084020524828531054396832022052064169498434068514848363039911028921333933962816360933621111299501608044894125410482319733727234812093372536764814305519549242914737602934147479793403444716345192407744842058704755886201462390889459297808824854318148272940236605878596547550650231476617064315996769525031134260707448280093506477315654428408994922528875327654046671723904088300653975097953292454536642792211670509079542663134776574030378418005495946560562997926886206502716596931648355550369908165351261213464800022173746298851994898177417809206620908781560101334468610190137036227440480491195681390617479379519380902852867096366131293182925998699066417746410576138499284887442552483217808027925473584641552616000454853790391707916505944114747559386742797782403188830300634240766066912942631645044308872413772167787685748659052636238142856051099393133509888397107907296068156831685869704715288251649144481782319704525697894914842536729821990648629641903929646320043611561171117801525618935915836508088922745328240462777155293673775502732852528319731578544702611888199511300948714487954541177436531214446800513787966785155997917720529000161483952428870165788900937375539000314600291546333887761088826342132570426276159728039189812689164667444538955130332383065714021166168495618461462775103596856180778766544171658742974953707482756989256233589203925283951063585773884820784253573934981438003285331999013795418796887089065534655862345782407669263306427569074947914343871400872208898184284856135190166536281963527014123176331041365695718183783137057411978789243926321390240616680800242098165799457039571092648303585206976982977480256139840741313916759994329946259987601715827863007928295330010479351538931975586162169223357352853383988365339785744126340780165476197892212441357106842492129718726676569005549719648385435858384898986646016197348762984544564610849840392788868578559729750470107183936308859918162052022859184143012654371705842033423675163362268391544411365438781759242549762838483124532373683369085334895149116324008867540325943914016914796794388043436075512022874568435051397744687300105780605544406137190080670324585658369274524363372276513943878971012994665743874701213374578152999126024053706107666715658107494963741364343072526839873723507183002298357442217133781664685586123349002922521051071670620668808514914884282956983973373006910031590904756223648572351384893304131743935278361307431546561311379536129621119025148980424612845824882726004698597763547893474034650793544082900600345739645885309334623930577387794846991206793625586626311800443636810606388162677889454590085432267074006367340520307912366489933019851222633134558430417159379851139446226639584473064324926485673290126772845073413402369700987555539415777897998538826411347931309705663847766454367905148061042333744026716932837135367285559220155728501460686407675547766120988112025168234342403169689294351221262477713320412289369677634673737386766063276289976064798036559908314403459455633247110262067570934254597889026762069793633043412300006951989723864654297891878119210503377172670743667065234461832205315553659429240856303410077322864480175681906618341247140954976436919351534053319538638444102392472926732871065013346501955842603606569347591820735048719533976582277896515847892234355707770416103725676879832795729956320617496847725233385809982826066313295172539203909828816218753982244173039536757975865737212338605309893957984241401843162025907388160838323081862637991734130961373230645858085026037927194993013667984665001754281417485806500910510073137662455503213598261243324285473673392707566373672707063410459104465843015730602226688931378447806888892276455460801254371666198542177085985772481096992073582286853736733147096037124355002066421047532054504204773989420752333391025747115199442419572032854213152890062178748678105100957086204742595589360319118904870187072224460791623281611554966985871116029699648740242932675248641476115164838544421885019904963612900362859210548110625911015148830752390288334792921295017836442374768760248971576854741453494822417677219789029930680588234425740356687209554848556473104533227446708085956518761733054879242474159019528786662782517945683832024813361050306395405540023787265951527638881502383036470050734996386561129541196552880803554513768850119048962777018051382021539409022300108131724057032024833280531745270223834544715098816159230902867687847591836622393096210200713234312160069132083219028740163656929548735080675005039406588865130522149979683821619297176769287111405075782964825099259954813045424720717160593702739047506943134464202764110264258979600071734703895946198443678342859076519802536076172100283726814558125511580433463389679508958588358600674265025484522928263287768675421867469458571498483120806819393182166106275533880227772357512216370206415090087698690943915289372597406680294716834089563621318658721006358702709637801480743591080383819173649053997420653870187972569783736435574314859505570089325828444935768899648059963310781456992492554271539109614653204100913200573449449513056091617656632178370750736125085969966589318439945217185220037294274165841292169363323137624615925578048546878841376060941594202990485867049939271077577416882064721407863512706188230617441261633929580838786733420159578937399441035194376187575921530469761689159586406064390343321599801359003559069355967151851881010394022386942872321831397466845173903381106906747226565802152006862338341433326675253951483496034323377828578412835840338610727767386779429662743157089942919909685463725586217116158526990219474141598872719400626529863871451833334348256972910676694632863200523232796519790510858600942235220306929882209005470589217037045620255285752097727671703411779550536470823137514692899674778516275790303145388710317694894168684383713724415269338120440275715522485813447488773671808956179314292181141458325645950456447271478959504779437573339191211825864802098265934769105862105982329930850320534100665729431311628327018203429156988906449529558949708322646197689363133309054997286479724003631901125045265285195457720751841587898874464375770538629955916901075575373611467391656152236002508706149128199883653708274451542638380750328369271372158160204035654422599722200212074233931458248508133373454502665237031533851751291718924612760977083693033402052092462601045404643211856950696776613910111901371724794201639019114666865654934721261511479940620072110595762999934588707571292879042299278627729872971234635555012824925613141393963096745741326084521960157743971548912438295938855826658782231021135308404993008359473751541407381397548389175923412998205956175936083349879498610351765982094687039759171076926012522207193087891844604932992063525193040016575418681803919539597522000580645589204386783489660820301377089059026787733698125855840154899545504097165648678040638368561268442482987144730316711476065602985111518061432453232488931147528485614894998554090090867806513838853693023907182943217042925249543648607129588196739332645178828161179779659128549864929735976028087860163527576518979154768141410469790821367810850322683863433649459881565770205713919523292085094147448596239609624847754314069602608899635740300497852656298491482195566002309339167131004614425465584717760344818331961528296210825379947122831920345758287618339611612981661405457915657032702100573793351196951646737375949977654809058554494993932425611178236765759017803514742005677733663053373117718545300726803221656195568884783326446507585997552322155252489580255540206825674428112683072782122991439325532247229222441923669033348377228509584917023153671981007492016974817598346064631804997595778925623575945596006162107708226645579040633662917351664558363485559451991480957264882654062398574776595413630082423850271270818882825831171937420075082493165025603164422623273049189423201854069059183271369668100709918285173225928190406723529584930012958047641219688002628656892488381247458692971475292738088252626351112300630111293914235589363649566381244609468388641734090816345593877402871712350625655761085967176168965392697893921481555902166447132059411669761811828749389950122912088795930469293121435732440682352077225871860650235811271630898592181587886957603649976619594649836139793882642844815359903038743159135837393937342930768086842233078429262543044428283846478601195015226717477265213438119778980636121187482387002110656677278583704844007194237246944656361081905526093502998201884997017383354109272391030037686459263002142045566446896745816381171411159278670951136863675600371797549222003397849249478172778535440015169273827040919046606470276432025756058706983907932715448626972154111907258415388324040067971956771960410443826986255046021308105590906051508057840015368101661567139219489383161637944304980084218897287066020965310335757774148854988851275943423447053898642979342575342001574760354109039024136569232968039327548929788324194310902755267746283635052140694439876726713182011055031355651685128490023043890367566585950515306745319165295358148409816540666788478991151315398259023335375835620742350494623423035655870507265924749253263911685274861615419891184122442469280972431590780535557283874378166025029743853100624924212388296489417279276559570801366026000306526546840571438883029464412683904603746148806748712000933786542250557147743116139723046245173329116610064146275253289481887854660692568822754015426313672700714367724394548260655226195475644127803160063846236976467524877846643545305621920661226880856431735224828275532549430225420856173664894289317292638770120645440502789292009050813731010110696906579226607806818130960407639236786036371093088929388691125241962386523519020576499069374970588958872638708241619285003903506065166679185697873688221337808940399924507260114088754510676384238419438659958363873454004572564769684768612915850591911495003186625975846870866090419596079102033229202353066338202474961299788865698236277941115399736840410830389715282741918270709873418055429534353070572884251771095481657306532272970695241902225072864084623674164586600367351521426777828169543915802312718552307164417490338647038962075898716620859224351788070633702025904653016508455080014641121057907459056994684482379824576294704804357868859695316041922319744268043568508082511882497669930001843012639146609283303166231029484830602750435895499636084327948315160324781423428769019439379157131371776186652030258235659214194244577141861282142834335950535815488389886723650807225409389845470005093366015927594027890844849654792085143693721952910558868792450530246441022323584726655929946675326653983075383275733252499930826956201946498038473159674421469617003688082562306610349605903750233318743666047242535430803428584354359499878346913109436809239348969113904269754727434282724589332484789282006999311245192719590931070209748620595915951964820484186905142543578865422768214386274467641497953664598644512453261917670657525790687620102831949006420203112004939243121937172551644593223607660982229294996351361288944914336214507515848336821249989784220698145592065321934134101052009288068672371668360904614200869290945514164876523187010929879802260392448979507475445704596187214550625286569603736610836901385118293143213880176680735387085495223872163104550485687322421758926853915188552980895531789989781137389966404644347479567310670237740733140022035733511611777012506071514536382149474181877452682765985627259617641976735119627015701471365889199048226898143154080406403908281166212820902460144892841979313558711483211324053735594423342824223410525304419359167770384496382080938750525206205241804632060777461663652485139064813683824740456291185030078058164132820211096790753612767722191841695312162806089882301679039022414191689025489826917786986763973591489145978318395454424329186690986910285979855538592616156487394305718623252272452638536956027057842873083117259470944585185315078839316312699596526880209829231303128631061702777764588824917206425563675216553865882114138717088927545129400474040277727352907764826107520415072607729341525240468946318130786581836257791428976485405715179740338199140463441091578479673695581035447937387685192205713231312019899183039952473250629066083508916177344179852911451903550426354734530226468655414168516975401212134667661693771913686599527229066260329472888037932961046757281567334436114660909758611840000712791679929137026427014754063758025553399174431602067103405030128703164246852113988281930040540432471579031401961673053840079432598771126338720754831151898759503207434926011156831582266268099135194559274156385745832493281496195469760885741858475686828732289393014788466446572821985509629039918529073120894166789777208871138589145038967313167859477646733608374256867996106117275250254565652985092970241651029101102047226435614825407133785912437000039881940694265012482165064714297863261025434001031497821128336301115278977401974474346299890279402954776855106460840638479343720915189659019729711221238223472253837691679103412130273380181083370002395929400845550817873277528811723086085141823545019536464543766592009739693120860745363964231445021706956645825187091196070847190588574934970849217938906957083785007306993324341649673979019400595010353558669583499602597040647518622567790212197881017553199481885738913625063115974311996752659746520306659738095147284741111689086157331152735276104741774265190301566843063283204266786482347190105490200803297808174168621444333750124277938386101306307527875539341539434116144178771774697371757988927792894772999327359957438536825601637477194114887190835152112361463336479585460379467180788523045651011801638427971361614703918564203914881418967707162099161038506952959512999207982309442713289496902835447551331117081857126341827056012331632567939371937473544911668682289391172769564322714204972676869107431120877100686608683446397686076257428292546364526325867376063163441973147699355590472278105582965689338646211092334993052994147501733169822145907465558849106129913629577027458792823443385847835461140617892130204855742823524483568552027359542563988963923780710858571123063649627530523027182679002641313990906012510605911209440745107685362138138846646675742188573834144376300019724740902782271709306481384303679895591572597243399802066946309351036100975135767961088189342811844547904489144963586747737362711267305498299781490811046204623571436654828260429824683766724558885857414579584840099340324977684685724384928962383596400584648316255384066630446428021764092257946437403343938848631417800352535775610449390431078444642349933917594266704477919718118226255330624269220538533682324559542230683317684406576381479605066086578301695436134533643805254404940941338740192742769901995284752141747722603829325291669005237623996037478247258476290961345921038754283662807267077572864980498818897172862882974027131382258709588973139926722005182739363111370342718197140379181173731331998192928705924036973857994453688706355632529401486003760160406851109455261733732934587621180199194585939853384190826749578011153370228879805414021731421462877338048004123786744815290330444971784277497192288268177636904648344892928256386994276023667092528356503927456200696506222410381587122683546316991978366914510495188451676572511235281384411255204642273921184764463920315911453131917307572730048516193505438151747021843577526105058046443385021854923246082062210954792528547517916668018298450040457802577264113832161168700358776511399714895365059786947870974222545362848180652517831214045725768004914769939603291003984393324911388267341633382129167733453393389053979386295821200620555990979505236455794269695563117155979949316497029106473200640964282195044895559010923309071290825687330461705505765467227277441295329472238113387287777984421326281288828588448845778458365151152570629634890658494568780095211016124872230316810446913715782713343585833964461448528831310814285056306632073722601800969146601822896352135696050188292864657691200818845242422258456444436791983279823902929273105524041184477300517497378957119661818909004817121593241803019190073437013000366372803309553216160341972438892763534425607401591250762301717390107722875510056666998153112627811272024934307946184801020280016471996955388372550997518366247540555298558170735944166258424221428669161697519781428157116014161852810068583760361121229231089905618667763372155522084566121161339129825138103660754486160659728281155818764894216252298157679094429485891255700680510638380595499804912775007947899429961881976897720185227564612767899135553852891184970751305958304922427417333820888088107051728662287006176607795607906936607465259672424063485092311177849533193142605926129103644536988746846666625059097372953842271157021894874412611788945020069246695068202837230050254075070554302892464751065246110615502748357082597655309081551595359530790351754884712000011143421487652525603318873387271023254897278989571562348192414357639314457070835234184145166673520592874690335529085433757810094231747758918770413571872292867841309619617899397381864971873083045385801012848832659360587312775007648212432339352887174005394784054993702782736258211751428284562964198348047480564458159495938158171431987545247486601090679080895289999647207207325392642914813826325460186876017278603341098324119634170774803920181064016860593726021669879770017638768445593232574401709909894227683074036486219678246883617972336036614406417111750227535896416565570150776490797794357841611258433231313232226391528989474820402216254136731283712703041602720373325497375696837714425156193405477323458002390068644768327100216522287638149843949911408967581934467112566552673549436302276404803723043713402459214835224521418079604936038301371595313906186249444495295462918056348891775023054640426626423932928313041632526650940505917772777579211869675693401973451058605778293489617624595982956428576558074036216878596615273307559592619633491210902938827305104330931532610252913613760731694949681919813674314652818738001582910822089403033638573861948392300740771729159743746697075504811960408270968256616585415718245803194062312632402253371649467110168144512695511409352455618410260048319917465458397636363434687764618292213633951308769022418697148920878525689688615450751833378008880742267842133639708897712436137033851814123135889800152157551729364217528003709336288392007964852768862683646770385257401662726572844697958475106032504530208267757521729515889779465362642800120270906965388829432933478750167910625604070881163480306437379931893774212625175593831883918588205768233293999823622665520584530107730982561234948760688049930769039879079869946535973795455174958751250192801711659887412493140608029279814705406406728284446164186972047285182696487034005212885280698568056337036270827611489337208154115487492186761829300355810247933782078934336472477169464346360966262139795847359192251638432055251495003221895851981856675131574233077739361817680804025858400526196498322200940611553285246258178808276664358602566497412519381131594578433357275237292721668714507068844899267461818270388223228858503096957756548862240212771616018593633742642814296565135816939741188591108148261454812960970450910925966765046910262281470702778338609583481264230524632325355333125222051808592687233188430448342112178599838384132665198265150006425306249041084415520083473632264562135219494201241761367888569900166252842981476050897701086937503793170744617567825160890810716247569677693348928058173300190838603709049242418263467387861745300078961327818986365983780020671111808514895438245974432041117483376755080466193057132834719999800903370974809276844315983747389528132795846741649722184374099838908737626535737207749692745925888474237127620972728491874596391179374345854054495830102471132364987924092776867289213488546492691742008729398610017428621079232793924146989083724129658139667404471234832505386327995462506212465521686260074122765500483870922869242498612111368137831857217701186851938788157355682146658732285592803667789528303366765838756641884598494504661529555082529487946819392371549209561528624582792253053715851122830360686761966289703561419691014980551224928709380311346762008493877350306322766002481223660452555433032763161780280818421087721937415446074465051547488237457595958633768438001767196740280460334723521726696229381660582059985570878736091343413033632157993552316462992211627172117399760095620593488099877839818312892068919523632305551907609714158697161152239839499667552136794234235037505682558945192323722575065868644516581965087097655902821562929773064547277013049454691193956236049763604344207982149290375062438258408414747905919006186246738151061768329737394188969711450371760136189911314793843616895558886217399582779744855075909602122801138714364472598554880598196975161655597445108980284720413795895168929464933608319968613311800315635219382255458956949110220215076887390880249846469117060433961895827779218929827708987478449045862139179533894315298702086343317011699349729916499792354486981766909766366950170960094298496525334350120486324253729215451691053833891516631627265579986326123770258698666980508024041164395817210242803282085239102476622909160656284376163524734612081097357349348156575726693979325094297663444016508448724934639103435909388598438176843446976116910826134347521608553343198696112212598861258218956432099888866469723818419942905730957873555618231803981233932519074308396314626296771012600689396600472597566325283329709925365192468673923058897399729885642515866551932173487624098846182509758880172967834733189629802928976678333127330747299621230951029861468847463381177647668640889317895201078081122418491144988658935841909003248717622539556051433907879527710479520089304403457911345670822563134576881072201471967489916619274104339434104222778913246628182562706406233249104207572612757174127088803414752621177771101752078948966225280120889394044651289520245852332416899632765301777456981508633992353142276220817040789535070858401729049773823120791489826809255913538909718145811475306051199866132258888885631473963268797227298881915953708159777920699646650294298599791238127998645776574537418135685861440799242132858204109320369033621818667130170156717854394260540552352220437950204406174082655373093255941143097022184867598816673083779103760164148635471396715721011615408851145999987191553039569410877470145056916463318495671089302835133885495988644693655033113259982487427481300607841730686480683145176427350586397621846258218557408848232908657380293059553034053266950319494869779459511445287861853066528633034950738059277335321666032041416324609604162006228682304858739578139120105959864814954232620202953092762431916439377064387782425147098781394648980749780164071878777153090989766798791238742957949000098590031401706801377119084498877633192872101480110233989973674501682753244317904751106452413801380150439626769421146498850716884389143829661497941241792584441128565608995205178601849107594013232873437295936340335738905718070713001698839468690842215041249696492201317515378356527004068431162991672453650388819172745094816357865423555208922653117085604684307045125778744762448506019731639619252542378663048483070598654232727684616215882777586834721482863484079686814119896268577659322783501795267731980305488913266299835820585579213344370733730605398454529158189109035944327948221016661699703376202925186284739915115934045409331410564381665584782200676389935462510443878383541376957357572431401997951536006209388555906038614143557853833359568005264371747204042738919791148944900504485147833448145718775678575568175292009024983756428663320309201064678471190212628198071354382708186829404506161364662619643668837060145776239425324235735164659789365329951023936712948326128749651034640851402426317686797864933894875095140956393717550524604787242439708040471031726041346172903409595510244710136347675992016076404453859711823186837458520029095317862413326789079186887326791157387742776791115935906112700997879537376261378315778165457257133572822292735563049856453378647323115413333022751916114305882175010673237574319552365621910512840968323410355794621510678831786407163055607660557382271412448449439085568983136510386046170506064508018364285996901931474053456063022267510048067783904622260743474864322866640149299296368347156856506578726791845386466614831883248330392472043064569319998198602406121205057763469196383179052317773838393790652535709596899407454076832756935462832399100450565730689737057753406780042053059598102642408205602401901512566323655141568718208032361509340554349372243340343145495287434936062700737129860650341484402375689933783840119977382525572619802484954559723185735984690164094335166389644095075453874676429737334198747365021967052368668393222890698603945594360373065217386798949387209345137648621382709396713588648003793365210502331932655854542165567767949866089727094216341122845629231478418197944398716280697113018418057301952373795368767970761760239545090988787266934344869173709829689369962717610911670447715372963424776491779997957346952280656066614922304924331566746784564238976057356705918062246582015223193647761690546305390911173216894328369935248398907615496181530189284762830897580772821081319556018629878609880990796786228967203733815257416142242336991531995907396518148354775478768921547925304058995477110986435303973945055825917995067793374813624711788017267291000951521774852153442839438082293454191723855264669438361188721583611261777483628419013610047095838418583019297448200995992077504606795295947322734549527626452130083660594730467209286191619271273893648259228910988521867167594939451676705895116058884716128609819766759430715076182299148164047628471148700111441863751886886856091834084863681785942981546322193385571686156361168221938528953473656924743666892677354779112348552059480407104017643282419299052131669978003619697499673671962779933304591442726667829581962557421831285442701187848074299623897507937870472289308117221480212445418767859716088600551611588850735418115126976606727874185241926055136494944584658035160929577877007164126522625292831534751122489573695250355850721110593317881886347727713329752318946697795524438692734208975738794251536746695910409525838943615105531787722264232252411218131425433840607195375221119007739899883612390627362284680067485576214221831977941462436496975815694651971900009130800252308416948747342438591192765662933934859826808672690054505542036149248020065281409408555504418370469096993146522676880798865906308436785654522117817788540795328596835916114317406808098331891005606667634718023354329461848102698587330038166753367730354142202892109403179527464629795357128800435253084945667702658959281862387703260343194225311942249004825323187434525462063846901312791848217452840774539894710093426066283053505178594577793910813786465582001987991776937928080946401522594959233154922464098972378352626210008245619627147797229564604424198226609978936374776929627558086998426814456839991360907158974826259662947089844327141438170372612011767828090558353096974872406499062733355425151998945074123429320799009774795625109775842438355983145396933491251815173257754137242671928298229527001144011759345136152783010814303909829485038771959152712011997060364305948937548442538917031406933968542198435850558731002235290977480366553178531601809446010809319944180933031090701320417272460608838822470341825310434522366437102278611805601301922421116637927374020544802326566069196687625525641210232384830952142189150157204382444242640849204203802977820859716822436812497950057514298142347215750653385016267680697272486286966429327233153218603288347005576318771274874911257526940576886373477912453470491192875368341616858791941811592024698121547195968255904081767531568976886560772253777498823277616646820027168803369415577917627369355612578759617239410009452638704705647410467216907384392903794503739678080445521069993427849451046571067218982355053476789172164002413944663041060644410471522605287601278473687152071259618553351418808808465222658929145109999213881403338790616952930936524582436608432604088776458481911147057914303389600897748790862088317316030532847568344906312267405426177105144760451675388901530624741510785396877012414639077472694857690254843728922313203076729094201149809789778144181850826418780079052883400695452022058579200824106280253825265874050592365166946440986639847317331201871778852600399128028239311409994039081855980180401288105851529678617802801845788556480528365589756984421352228766129282472127304261307665459912743128048987090564638398388109070539259839980157920321117526320142670990372203726952415721666592701992622212239247970476856667546495312955643442718432646095544551681527225584562173636216912047949291711564124924673626422055862429462468903564584390435228620912384548687945253463747903046967662126866446405192977541215909773398402346624863065476556100159106418471757761206611601923478901020165295780009075112125256674080143468392733362367740419652806170272284795398860378545979353253526167891755467148723355002774212996709477481706216312183193834196010254863600055425059789793264868113845011015783109619723245537425331805381812380187581496198075280233205500577189786957653006310211288407432889592091655386465926330851326476360000664105221973722233455137856690148895337481655400566619507348053188076148112019526607004751464656017445005089774315890206689155575843249824205686501528678695336114764827012251818017754657186961150354947077087677573147566001790228329717712560597542653913366153099423849111059179977041017907366254954764892771831290121883952326310921771686654059274686460237316587163836524421892384337971558750073338083860450943903001909668699831070323517006604317764913282209485354637772405151610089897453699272843971375882591194636492357654797792174520491673260950452254453884630955583564818489186389838778857441410407544628361777338553207814859796716663258308207134538343978318437031446083540169656728076458863939533430383056469142315354499308356517379673876507174446718153952427439318231756182778750743010921801436815943001716765001844001029970779250523165748074283155636122001052034795037832723902648046240117058520673456895340821366051433188056354124365977008902825452881125573215434073823945966159453047378997707679287608380994821408291563956376838225320156786598248396828600393335294403221490073704499659358727862572849620922093795564600671628706242008890896924396494736485791134494344624761910940672758534546990686269562923451284262417542663862294766228471719711837472891885517170790445729921595512760887563128528581288848661205571791820405991784402643374753800500485324526399166993646172807375598646267867542274761112331457458207092360248883053392702092895384444770244344035863564192769501286075665718344385655995810864126126055490794841023675761833797481572168195027205560553236243804108197447082738875457177446350792116701266086953097151869577109282930209085390711406351183262991273905040222129866356543570825921938570366182328332246100825497755651491815202437035008926098202224502735895399186622644733977750387317542392314186685076864253625833484549109130059728828928540634337168716268572620458445596989901070231661225273930274193975398938439562933673128413825980171551634660208682811688479592480131061817648187172551069989927497224955540312609089471857338735265431572161261853951516423549737602899221084143001401337314794937025336056004677467024312791581978809466635081552675460971548408865676513437420958666519373438179963541617576538723167958295294374081938874732186293575409522109304879193372996211407332932329491974503131167392248317593935620529215052528855083708397414652092656259613382888992092045951683333918262342331269958505082973646281750016827920799252215976364357816209511518893808700286190939028315030281694507136891047216502975378984099902775976130130304336807559422631674307298829976394000059932780739207328658442849082766559871833537716282489687260396447295473799072281024547292945253177272403882664682800623553243719085982993182020062588452749111582546386233524638402871463064861378161551840765397993226728840041583560978191451807125148357383035515551525946726163797450358575576137259946171127524491292609781580229505960282872426141991885592218325540426112333759709961039003565917183335264818167354157386676851321200250387324462868022738497115661710274825403788316678759811628470179235621211174648548974659815606420864764512731650083119538301625261585162686831937068668451427880969959118943540451273582130399319260126037917281880173188307211661118836236654910304730731094788357834242274576855875395367321635079796041020442257854818450483533229697245773655300630516349724887934069897543443892368310348774523701516672422070975281781464900965203972154798123719225611576639530488972333312679532184186447424716061241695705513781091888557904225169887558060804846210406238273926946730401671313780586784213091672605130008826876770490529692374044377947914919292896318041033223498652539757400544829976653584561646112423597917138863874286961394550883039915501193392160813030251842221646814784680572256342073947230248610925893852433365524087545862497336281945156675119644865510851135080458440116968632202967432234037568179596635917232573845390131280700141715345081163895950778860416478719122760244145122332595192425104354391641936346851271443963778042490781816237047925935055186849929547582582064624972355177568962904323504855881324344250777180491873520481379706609442747057311273439790748452568247929359180683841435430407789491214158247213124452809516802863943645381223070943786320924625734710612685922038696563370235588516985757813520005743881089882013958938110590429539339258955761693244413361884158689377308249808575215853816955843471690863550878777742908405656246936962438696417492433423246600479078131212800092639547366220132063290592711865459294644163251312457060710976778333599139608088299679612976840110052698860906317414580764888267547221988235743507970682222080665729961930131143378902689461877703081026637690178103374306797900064852534646478569012776728278755190563317510888060353347889274553131754539246915408682869781381779179751871192535583273896357359224876687053716039253678480670844673818777625055409634491023733687833059799721666844889398045356420180354650721763065389214679532899866371637328161323034264322674449883715983900956581982120806971766321267062364350296026853831252450229687099686328260600479220873373941792100212104188950022469884854539328801155128433314951434521369868275259866084214383165866605105306815966489808546939951145115707355679303968893447441754137561649726407041068773963782719157112925984247997070091586123212761478006641127416430408914548867736849452104577350915658719373124168319443921185399494281906803762554353713608617529240138522354677770106462691092536380085640399321983352699708977419236085915387521500011723477355593010208943797998471831632208462205304803342104256758918237436406782782583500150052654773258640596343797553969264940299668799143071071169280271427944653641246129433152388926832868719599626073688410830003098745387787874309846658340757753531415840881147151079767915865567221360363550818770038878757051114796193709677805160787729713821416401241697725026845592769490889913754614440987141848433502061800924789279199864925441511907529386785023290612896632492526858561936582307601213389111519053165786317754190478663293676287399605234938007390302843194564242847485479226513162714118492764672569932484165917778538768421055011701639678089282172368586038621449107514006428306651459781067038625927196149086944082797800232813165284592688839223425787476870891492648286424405040794603399845369187338582406167003282872041689401863036285036906595092175520042573722243385831234621478052109961053791413190383081132422456857800229012561376706264572020038071412185470393950484252256608791028123862523648869415861801110588831689903023007884501361519515411532143665300867631883280720682919600893048688582166755618489893181750601944634564433818461641885067757781929243626293929069566723374305185839719402787092090056090971098505321336212535415506307349509079803098017561186516918711927020754546049214150757204453482984268382213672840924596027449330733871664344285774355582508486100575707178772538277314564569420383343137189420200417276799705230737630644095326911850205633811310957544832015746012153917972392365678804747263817642867709612747701224103250894637391782657005997049903707660554434255301489190957151370276594054926919263799273987959835583803059357650559808445732521225126527058818933085275579371742595399595057038884986755334534211117865825421245244088418546682016561078885099879197932030164718546068424942839561182839541735835116659259664987108317058117379702104740543674867710374750224139147713518529448860035219413762165814904118871957169339796664442870220953410870451200238832435837351688685825682673651945562502996958500839436581125598018176619235791081711853853574269961734088287934367354882606277556137573355148059436676665253300963999334574668544880556352133204021716126621833479015765631903824939757444404033250631142787537608355702576740735478343237313660811752611361873061374378920850938103811048800159287326114468741870169470199120751936298808076883693300694928136099992025980741755866259767489338942571107071540679222442780804859219068782333725595956714499950093094418528285653031343383881862122240381785135038463279076272124123465026016578630898417313371685735131842395892504391061683011891117530772603319427283739131307209390860868554081508386357267976862813030562879481070703432585308660637098882789543588369003064623312605293527997977062751716362118024109751019912317585457035666141433982579671955162875230537778587946506528659508335965708781628419559675735267957214341194285576574519487585871570649207973340072757986917276906260284833133862630774924595837996692151856693462492311668651790511053865319970096764598613961471468187571956091694628144196694326480700804191202138188845297312873677078945271501738089809205565746988836940532649396394549293706245437085934928840797283007189833712926383301925443042149694935004087518202072463736528557168997176168348302147006472882883863441059461995665515156349359096536635907961519466450404949875275753335919201248392731935808247121350627503656946196191914218370755169596615338939274213394271930026139890823644549454522724446679066686461717995193161397461070016873218112547071742983587909376681665207968961528037620948482436913589266394498908420496005943788015684176238946344424595229297797966913690666530065230059766358444042332694033862781612824239664444341082882151442952500187791894742624176765952763816823703378218435203267296147742179349286465968158221615426469585246425210201749455076841256084256107478559416399759568478565182410495066910497422601255767661737712051055562165073818929905122435574982356603957343871173079052679218011275759655850260960130763475572404555854594986870166620453065862964094186639204937962125747119825308683955010851731208978063119000913311621139469940022171948491827401297995383843072213739543329436117472707631213405324395848774760208952484238162986299923712916308548626123353840333619992221101926620253407850776184398093515569945908663208135404514799394230038115150376848869150999505845001539672656913986685615725369237780970453676276150904267298941918093636594278767848658187821017994452101467703213776370756815296602455440019293798161806548574964890166918140157618307071155321532119629210854756421632901845659961054183595095615993958513832598190707382463976560227097563052766974825606668612423963007171433763874939198227709074621340738322320154394218070476584018620548549153510945664189538842696349445887378268030222450985669354252339401104137155519984191577544370634074408960209937836453163397662817765925875558507325777246937050813324654262412180587221661786713300196741063348375073943483105398617357315913377283494293834842657167707059497470677301271950529850234633186882824953783413964652947689843193329950216304052316444684294266125853681980784526806268754127285304713312841888229826392986327239238582578701822038250908470986232066413735063911893936325025987998850162560395865772175739600668658294327272627075672210719013109081156409224524714640761441177923776912994344775018760775127654346376733800350725514012012222768742123815760268720563732586059610099483297168298848173437054100222357712939775155327511882239182930455611822880178732929899103860831149416179201346630411722420302276652268388727912478418327016255396751809833528767526716275676060462869709244350415226975711827894302057838083266798716498827365865180703380178202164609313754636771443063286410424469630240440786223622728441606537530918274155913999357160941661949989175558208881382340876316173596350919009098691903383336396149208908844660702945503740248237189237198001474410340706290662107859043908017899862583939876124573585142249977287555742118020092834514652063334912674842932364332680551365876326024005392177290004931309934460060643209998018514238053144515362369857821303133793139521155868010453403281736237767725072876681519611800349957549991713599951992186906098065835628884029185797974936465741051689058613212227631381148350968870957207357199820518884413304732901449550499920973160936191633070882637828080217366329243316241018738799809228413233301761371409604603545802573072349041964826946215281685718033859871441322839752141203964511676274245131208659333619193303388881428480970676240217489151266709702107310005844806968069029481977889904148291888081179553157294412976847886670767291406393395523736455826637585317871656646034950145134461055574067706796383159985074169856275937215140673839538984018970765113252417935477951575307976559179098523677174444079183689051732085798303773262525381735974554575309138568179150068161650945833120863349586311115579080833522144406286457173750056010126349969825111341635938376650776500881543278330897547612731834930104856451573043061235756666922334539512944762654395963421078166118435548981015428908132910791220886453108346529741240806483256330738664741936173985389687832671021984002607591127916710286708901618200463057783322455383657173304670898375619125145984902079489305342212127128928608955275551214655499609024165339551543199724908773913447552275226122185935709718204173064193559368246347177911496053068666304296404775790842692667978935065825659874363651975521234018210851864722103608826000768342737645037054945161306419358834911639548643801654364976093485417156013676318647619965162758309163215348997988141542610037888169551364993034612417790674457431083482509186377308294791209762644898649684712540461068226842325644631676576792444770820708195244741066904709116019551168326231215415923955447117343590571942107453523944988947593429556283883651991015923553060813579502853432015332734610114181466015067798503437693944632925327349348436425214074031140631155600215107168239504621565360617048540908369309256426765441185347528103675059236496120843102920027370289233295667702317538468227360629700486460792527715248530978604006665214754061194449579322951752021848914714584598349456203959548259314908201072723715653308361829695631401628571049046870952514613239942131690105186388694092282673128845273313333465392336878787613988803610384724797909955846496309014831157883549355236095417334265504708585635857199541053862494028376637666302749184766346613336195832528075415283839777002964060655831708919216321210217452652066310122042197423432394640146752914663075315965588992095424711729585471701697254692180111471304218442435171284958087075953059113627353194095724282362617033696854244642835655072732147289726410235516067848878923331454397330849737872217010316777951281347796439974924603450200111198856395954782135135369693345752004284932109862695622776262739287704686193498551393260789225824432529264493813178350209826451010280950053324358531952132089936860579972470179457110999767775969864726966175399156678567209911583756654487239565515489316364336287476715308674610975849966891629054683268529964116200777478532707370879496546807187843006134334853926272696114718702231072715333760391371118775419811077687030866898488789305601238808460526541567065859158701185439301021074708337191576259915105542902865828030029499161423266186159410724052569090745591435225134645259842107002956420181886458944086967982214847491223277518940445784587285316729594395593626941704884450271310855508366041822427311973082582545301264623825186427071674652130047910449194154642455654064191573459627635650329487444286553234519756397007274868109906712840697874225484260535939932324108851346980553651077067346946904454394268980460162330909630570733181329122900433743264455558316506754444562996714837524491098024612509688066552103596597275819331591676039221426209086798486879957101232180356926721065388702517307026777651564085509178425516203191125857582180008298565412893501320355611273750904514092014194746315559167345576546492273478659826273621442387171993549101777199638610101115675489384855482754546368792048919157832052093384131870030468859054214157979238924798696996607972952705300688833611125099597046725794269602710412599716895386592095942302587216712378459403042967026582249652101512929864270392982529515003782516773300456681384369139081045303395065742813729969997139760480852730585279072392145573713678175752500551919600965184896766799429989595376927264706057275899725837899699063028711034408893315854076450388267000450815237406007709110349966374369470450853092059774269188833188631149680868031857137757273917585903835653838034936690433390749705784037845739834246416022781616117979738287612517382217861073116989033684055351320355787865603134592403337279529788490723932485463237699532488335626793984185319560057105610306230982807035458046635692242010363562823930311932466148279952377557744888888887227823498315656786424303720799353094294733341535686171473479679718374338881998477733048205432767222525318637364353914016623300906309712661589257668633195261597549901345356523159267639642246969836699706509861700520518637633691610194755934104861964983626811601020999432904398648545352465288144084302341385060005869576553236073641548962901007785533842616702281273617771801730325094397699506694635165885238584279217409363179425537879265006633191453789748913361016831854085523138853641044837541455538704400423754462146484399082137526824740314066593985093385938657399268250325632095554210080784026817694813036953319594622895583084761495637374928190144064715146207501350125805885526818805760151812839427952507138271116008472456020222305770451596948789922105290267711967991578033015873660294072645448518612119522755932479169623637120022669856179859696623392006847331534483280804374512120346890628586818809560741525281377208861966079276699298996766077016381697192702517270776592531076337793457154621934744275570187611030734852295319481325485243185141010692629030320574202677490937800652318935376191702881236665733315626330814658763252225519523419295628173963577492772190826854243182612216443132504621510209694576675193590472983224562745051961728875981411394853946143539315654769418654440687351120664565612124137579950996460253245397260830244152701459733799773420908264443993741395776439823159371006419129437119886458076704035474848285182740201985997985690431981945489270682994805567693402680203635938309629067954166336228515011694432216566583605091394408049611671531841297613081746123875048326811626020622053565647548669508040262296863749532165853523811862038239995717088274621888797355448594557934788806030650700143773801975698175400196491480893753293396685850195272699735732929048920603726934440114376312027271047045970014654637394536512322353000143089004629473377330670425813099526037063057833943692100979888394008766521089764180954017159560415219107440296411092702732696148728955078500708460803963801064668167764585254914720973715047353481528875858420372846780371039001776182068803285513852098077244383836457458456920575095321739913773167441556885732281548905906027645941987991279237082338064317025871060002164827384663381264013145568496943027979327533728833403722562376337696462768430195678871547834619991573894480040041932804561681019894052153119133546085223150872485974828958925377933757991767138617239148864128795629939318387348200988269171859848338747390965320406316473433426856130229479598031292594026446812658325228929757930738919163635405850293103463477929575682146754660767324127861697684177804902550515090603954011221272719151600814176883091528190957432447819670841192936301714333936050466880147711097050699737207815448545003350735049183502863265237588663004276675009446102148133273594763194513768562638037379487282288821992952364725209825070528046656646574639042936344458002606741795706275768387041856998656592859455772396252164163301805978552830101324408824913300174938276145170083046680142807893950299130014756327964044968761721376204912859244083457041362104369190622879187487967121771440682974890959890140740086993176308255076946309758490350404366829324783004067079027627925711685567035293373287646039745554216435161557082557430071692089773305629469581603422370612703106050069276562123138821488691268832160562834283183501429158717904949786717178583318614358099969288345775849859503539518356187025409790273236828251760119312540772711132079817084507026887683505679693567254948171555790414982503831647449333634560722750633906630039266651218874016126892589847357810295575417964233521343412141261012017090489892411874774674889249767272262553952660617863399829272954855115954723212258254491597274481581020196940949448754446857322581980914365430038598714636142162085565532578381835661105946194348396765047046681043201643500966878399090359762087756623593865752510638153344953932950845200330771109951915499787703123866350867779216095315383853599896328854118850622411112105889752311567944056982795640521202424880902060849588308674411870699022275561813632102475979188684421423756774405704191845298502433067695608806444251666989223058623539856913579539070368701407696861662693467697491126869685696987579080124454057529178095871242303513285893166656708833909966017133921195348185850582277856192813283034819066839542731278936721591998700942275870173305310716612633607440084043131093113608363185173043789054426139886122830431068691384101198414722961600549550685459215749235608663832434909363782454460293745401336461596021637692318239995718487867181561157896595548273860457318237705917209333615271912169796274001565255757873980636625643273699169789382971106473406463727457072671105666026428082962276735191798952794384406924258930494505503090362277465765800042093429284250457266622191395816346273240771038046864916451024316143332692746495388748866018797106742626809221432249082275642567941160035488543097996193121612110544044039790696170437430461301900983116371449315377123161012899734226010410092438691657009935871614112088677710770565499924119705820002466378242660949762416356052192856805419478720399765596499024453827928408731748875409538165368874555622326752818545999006282949093741578763147922416869616734903086833323967702445886823985498739163383412760305957358133304159256744751685288493546888385618081530691730507179549918918443102836378714788269705810519991217194829140586690226686946526995856573448039950351034734232534951014737284208223757587330837211457067455074386118305758877073298606649297623138970792213547421595766090247114254029167383782644426230982529844200928840803026951709372488754305871470056384829226783527344673224065786705259581547814506642897751945962194307620366495312072389481196310997290584045770304377762445483183686383799624838324160305637595886790315622098098537902350842406175146990456160819623008990246127621046969749808037202367810615257996285192635405611148413314552198343871527348635584023964131843804657858598566073698109771643432006929216105763520917511942316645203937510453522831741363723964849387928335713688122411682378569778425541238187995535232036777032989788807451522808159307899827181102639118659960437451697284941242938087451367554497432284599155432095482425426779221784717075505709234790867989901926523707676131021290363783097790231209538530720618648800495030027157047911791365006802763327796804983303989119281703873493653178882781748787078999882394704932633334889802415054577174109206154859930795338353059770466273112929675377985381166971762822602944362382397985470621323200223632516757945699716089690157793018380802795799978185297272217012593478841097597088140693723788932570208115902568732232045054224934170485433712987383833918978780316948864118815224536503026055832989412180576274818634646623449763839858001977653905830942927182406541897540675608622174327163065689985020604044884647096224853630893172458264637872561139374696061866193804885230224716691997112233741656657376945394031551651730609072289538064524953454937080325098261370510410869587075376870070895067441647609303773559977100129634306614501506184738125212124065225737344640120240633829282383631702239973405123183515058607931641617153136030590085270324901561408424275261106952362104283350869791775927973744860595380287928125328755538722959475177992770741817668748103760906876257296368651406614032100769451427403941025319371791985313869777749461221176557948766700662866252801805889231184777519369965289622576488728114801627653794026804274948768499878885853324545984559151802965559427278306043267567819127727516515427547195563289328496282844796275584059796985969186639646060607430237356196617121023761516807597064153521076968320282477381894393774230964379117528704943781954300215498490067370639477952733968998294882624751532614127121900505915419513525467248284951041893270664927982600137337705713672728317653371678957592721192214125120924734489366596213028225104159486255172151385967235188768200841003677913471514392255529499996587856727690973912068383644417075949164799234090502652141642635881497771000406547685614100665477767285084177030164858641264405239546979924640651653165642029297137481323048600477633323723279632234747784458088511438154171384096307677143094049067471913828998636296235536858295113530142507583862799320900996683135445297861897852320260282601879535867277850079503713386474683762570353268141143104448642429847154600645712150735438753288516877407878348574765847905791596657362508006511451006244840413495224554693927301194433506061687598276810695401881659831733498380904661641675501755707283385401967868227963831904511779788869293346325522683168475142823594055630734866968763115261922910221432701205255825794232982267615505750744256423098582849690556411381792749464619602300093674166740580930745218945904903421800006475052927252197678502683420119080399900244889876285725956289463953103071265555121416578731803889928244046355647865510526706823924390424966161211940217182284538238194471999128703939229674146870064044920609767806586071264461812445588486269921965580899817544744317227663156343883989426726445154176690080073586873335906636562235047093473831551209207172781400880584284191676974341580040672453524515671986446608441838229034404769486174887628715596548508450994030710300841420771094964376292384535519720300937260409951899541894146444129701494565593442643919525211082745869143005961709997560970339701623236049631448030913495524925756984297027648211276269817490595673161786780307641649118221321688518128322262222927286328829211890016093392120514858095851325718228992403455845211188608189039838154049743624767094469264489641659077160443129358720460626866576009460060179427007003015072082417627022355554185969311167972625117054548284135724032690777196600248921501616825528234865618513660316288035383021973659106823409184490372699215299916513546343870906024074054239336731523216531797246298081932205558921642579491196450233644434149650959008899379398950523459212994382396138696799178165079491469763112937169577670445782142435487262923407658789049854484244432329422021912453955406710037696419869952386418138972846600918939175532546297312048544409258921216319460512555743794157688649145560105052642065187809702622497838045247521955161719564793482422612968666992577766966922685785492970656353251845374638018923255266408931711914022052900130653037507493117886467751240135344348768220323698288826559659451260371577398816926774044813971447124084466934815792347285163788998323369844826349950082561547962248725736853915898343937094656823201041638207752906505139662958513875124390147605641742412073739533896105873067641565206744773710842201184001052380802461982896462174255678280625825203408094198366919494288301729388248890783036739720399453054604952258186801261925570861930696350332140025536416366601050761518579256222293562541592699844727938123928522626618719935379485753253065948089164449153481046810925653615566918766262958285263346527713372285253846934630993919675847829906326544022591246276132046704412343358018946853576569502719271713793998864240363714491526594981342950461189071166659066730606332528114616790977558313503129160611826273068520904749862491381381506417020144427128567699390124395694984607372605435332600492971185245139148551667990262580912937210253908026535993022945640033609202514282556660087023397630123232107038985919217228638832120354653457927863122741672236522409942126346315944345836876253964796150113830553575987746089604480121019012182050622760732320977906018964702939730700038598749263300416231210544441985806488468682283865446091423645491909920769271264593805881515787287974960828752367040759555462917714057621941927232241206397632517428939213838498025354424966776705531239931536744716933618140761254835639246350826236626360105453302944520557821373592497124427675493974768482993339180450102741181926257714099487780760340460581638151864951493858115864070579000539926622116637196233394648112965060876830357153296251099498770792534275291450732092486177720750750357387062020885196467192086849488821815292991447825459876330263643045675261698075570639715773830814664208039207996641186301616298065184832242089672202299443437260373231521507276627331884515827021074058116685683678338469236248327620091631833191588334265192564420375524478635468061726736024351396361162459106509743331480517494513583773118802520570279232731802879115943022359450214091148935757902336266486401319967112665818600748670232551150590420902350820703467297501064433792693333699008790634705457736117356053606941156366555408576195311777106996471238872279347107433903538288197600068368860499495282662041236135796477871883066476523279762819114787076825358013286154538101513100222315305945253401217084982469757317923800228167294035728907985197676224793866888279605781530180581923766456098121927853986250141890922774648043007568255650408506565685013929592247304560247073280664289440335737639179575141389468445131836879269944467442384475322536400587914092302196547361023028397091549103564165795102965519332900082297179306788446029594711225411660481352594493568280428668210069283802741564568673890382917876677536200730629443677111441441447018181403149745711344489846670100433073142042854673140852585756241205743835464489860328394623718162988777010254171166798786266013875767879672392279475725736228240709906490043312150450715210691240883067537137565779762705742970222389298065234278407576588355511152364774386718149593923498404714358132908993235114947483520917431851193005444002018150783315587372198867283881337532954485400944337862710137418756083236678207337483962649412746826249915750674215197732234320647511032989612020167696579106279449624441359909494178616446333313630840831766336985279810740722868476097618649989097626077173799704566293588152333970517365622538656438425777984980783121756964835129009806037109709219302236719563463561519675699313228260391843758870327619409658015062597798028656998290575875190086182015766537157306994865372220956823878469395221456645619627600298972529540681829451113960858760706755041247928927780664410110926154991060597315709781019442316213012828843787388564305471975905433260870786684387793886940252756497393707378843876053388189446013235201213594925796847811604884972844204364622821006679142144166300510717014020822545258540730747650545855045842602595773833573920578806549954921136181773367666685308907030467290300051260196123556309634794079468203952324292186657504341813693400668226389701430485393338869328556678361412461273512177683590121401059980090090570861721183191242768387506474654242256187944193858921265392915279076074254585575609050565554531127846108545392609840803819770885867390624089924279650622384350529621686359012832739599841381010752838077725255027209725892821957647361434663188922990190467974018206667467516221942944581642826842672016661173837079357157528819872142664434651672965278557495238175269669259912829945544595011461482376428009254062532081638266195331735870030089200656744105511840535436347999600222403113112881765265856273644277059955145978278919547734914019953763882915252916149458473060694979565134735051304700609030410644370134837810259743809159189953055145004959328221515922956864581056858573685050468103013861956682447949735217115603671640713267319463026392132670064245661715792542584836491139043852329550198060653189440243762058604554222436810190929396425992301902276740138245067524558679057177285858140694127700415882311940060813857683748724898303792388810747625326426044716349288497046250511696733007432629821108063805820599137117993069453772206826096995888875701695124005404345577167325528984339830501490405465127133543982646538498533223094977035046310471220505526520683863099410389696193049615342146310961453817843690191534124900645438258311288113059038121691052732581157370970714739584407392339680103371328931315578176886288098182292604704230708715635520502560290984855470525460943646978159930826221337629335679921617426455669433580649694092828107574291670866425566171197720309212034247987690494941848621310923284743884166372664007895555645925065316648656373844931930317876801447479879126998865432818861969382343638180396455076951621738740811707887768201927480553777255682635210928298363941644521614453045276933721510033282579618660068234103674363302604096827871936653757558816759298461902012892914563540166790271041272239640155571381276035784270320174697129295133060582543356974756190545231111310678812181142107211278426965287994716350299826897401212072596661771500117169564844529025781537126121152445938149158991264724462295056551341261149626654119688320436553388150533969472458007791323349422119506230222464260840342039597043575172580599557148115644316069686392032899654828057001808222242375191543617990353701593227004462208469511802775724350269505191830023038335601630614892403061282032050383522224858823651668928430297306975490666602098647444208367759848779532932160489314659465258427330631628402412439620122497916083718122401121066531484782311632069225575687778660923870175042072935089103828829047170009869206674175791703837371709182454310079113685824478852566977888540118088964928414367541706661558964075864696125963008252309340118073382649753392232852256597659284707560579365717384533920801358378653678681960660161638002545860311764596640738555823959861938913000633704427091106307183620869077844056795865976360908063974258936217936069427209289611757854459847748457193701469861682208178425109307796613203034047524494372168946392756206072517447853056908919618354910987585148686424219186841679254477819966551063431157588318751220600141458811552908745516455323205077913841216281847155150036119293214461202325722258016765609269718783924846901875063777944612485388020552615338661203648172344828561508901793846046091263133803193116345066813260956095832866045640156367035224211409416244665457386754856130742181104801454403056799529127689934139073845789731586526343037042568179438546007051031184841111724354057899644154627567176609225272332869086605480139723547651869429217762170751123736101883308024247424749193646283958024567807773379835452272902992965969051459724409398204934125753476579799919552790821122006545451072238377606756057559561787976651716338530845839370562884948237078943418266859993714818625790247068272727793456837872101897933512513331677951387448950635118586607236385290941721501395882627644041816367916362503281921913337378523171457994017915282732117162657136967266692352349597269972837041595448405158499932769285608699789449513293146580653711592434574368158596730314409640454245908319432450367827194734848134076195131664264286996985518693890169933304209123311301941290317035289087374907155332868340484158564794016264028964282494573654611307291909977733520456578299495676793556409769992663547057073733895183372666065435718892588144275812253427772815988838720475055455295994925927750452589904121329321069482841401574406737986702342172538988873334572628615575191803611357012923224858944703356562879117668060297711651645615124949538414292763989917729569246286763027540781507509246424021911834984462670751782000262822885030722490502124875956482851350133290863025110258652501788764544506363920204372871001524821505459616136667444707856468503861483246566885699294261501644727690615311169332210788498658616137764499385811765397168663455859368872813426646234414447661336473872786813668302312200273036614599095419055326091201164937772946194906519659192917245807744022199474779119235360554525528015654183390751712463867559008524790789568336403443490378675634770577574657530989202509149358351300154500856492453157274478425660337462679925581152640814386966202964040331593080225472898833646058744015087055582165153538711459355520565413260552917074421989288231317941827957448463962618350148390169600697972450358367343822567371285600695903410807312588768967357545297806455332140680429953519669680700918627898312505609945016631575316396190468500389350867165518235189363459111732554932875908678536415128973135054435196650964613204372016580896746259352810006475074541751465249492161354080333678710216321219309886497184503440726092884864189443545518991871645323184456875138161740441991395635604258339800138625464647807933491426177857144222363651682226655364414380533663284714466304450874464827073611564569258688034330283321543938325705432080183740352763722548080731493240244567348955506585842664142689368527050920403571036685870823139477755569203619882989299787218543414303695843197163905516042284582005663932180487129037325028480777504893577960538766137844288290340244457412902019204262464021148003172724105855919806218991490267807303963714576008271476069879755500540810785268441943972106272241262983119545912036637380540867709320274212646877994798295793353727501356918639840008342169636860505013234066067981210746304450061701841454299919047314658413591942868004516030616498404345168085046485016574354942387493808689222346391591995575239318387071629933718495887914276637901772124104362071053560998070808891969307549737338973126250880650773463969156524346346858413972472789979122882038577990454032071614342723855471460689159889271512272852121788870600408208044611036864406777502221958945527047475009206738157015730113193745071213197853586555744598811072795678107987719495640521149020812450923321785964527052242627912292871029681271504594321750257167902202966931626692931484043390062797307548719031712455116602235270692908686703820486483381904659350169360002010879622258306598470553463049735249306199481456992763484767647545627039787225517817732816918377550496286295490435490374683884712102827935721537396368287594644109181109818886625526156643567827037457932743428916771171431743170980749497024405454931657207728733696671669338664788233048187713196261074329998410428287126458531602153684084825630325363295811482496774999063340444508350987669871464711376823930571002687275194992166096373561411626070929761724608183770617092861417969705955939228411798853151032144245211796936518573660272767108839811832061270392246520242675619332083791688709512891395226747629665608135668027353758807979052887452507367819326892058497449091342721632978148955671014239835442886755276495423686972903096103940293855180404928158282911323819362791749407733824193824463487911818748352826680013587821080944518705324021699535321272628051259231376089993770444784596248745683768548001904832573962680808791063149866521868193485953865048266124233376500311604590539623491931379826670876727341165461380842730846716153794816939955492790827502075074984738135093172057143918500564670611670008786490571037950604019195224706514537499620845869926668260027002988074080120472728500376215140576024575245359096176351086233532161930299113520278441395360143194739077634675833377134714407278604313998943901330166497549678014704112264327981561358798512385953844586790013808071085120613471027783001976969675235640661679607366796801677296881904459366292601246407040194428570317935702981834001264354857759435273535643328888410679700916475401351813684813451154321755557255409333648549503163829766335249351202275893225685551205597697156232620876716996537012637864390611112797500481084726878146138307024085140567089096194573692431681937349066639901633097092685214169423876795873179825142012977760088365479077334235975401277738913884050463361350318083330966679812463258997957245129550747646664158508364449608886427942340909210455909661017426635703250166973592130035757271454972516638545451497602345607207589493966166335760048265916646229246531811007704719349533103357578663927023965946006092913220523102857184903229273563448778047639748537141805120677599341313546756629342847571521586764342586473607174020531379392034683564216362004212157582059411047046777417192108388240945908586096164718729158228774656301726637084272411400660036648871936065876879006473291926212656566299948166775738324907774036875711175766531658553687247333950632935149520613081750418078799649934389780811851023247608549109938343838598573272600282010032109806575094722615947666141349258687350014075935821457876793421156037259867087767240144808787858254110025058573891152183801652603727172297266546128009310049804829083074738772733930784745961231700932608362701889579821109859315367337965723747303558375734049565510559013816650787928791735359744843180488887275392177871101889253288652261192961603672437827349017720761114764473635033965644405436552269440528242442891833280701583050437776080397655380288069443756273486745843349602372755629165418956087301326234286471707099895124652614725123812296334492706740660408607708576683774303974987588565790313147436435691935719405891666476829116454747811532884723424588999897849745521690895925966337385378680921923946491487457805196973753128184976714530875266742727314397649663717353955477002745194206409465550149267001533012286332657309609164147249507878707964805214428228158120548124217172539100971472784161716376489093318867394356318167388240992721448113326350330539234185794387105556906168031054083490701041748700897986888951263436442652371453831984495351282219228944887459547516192806295548251765378352335764247661519953791203296313550618034185759074317536036883458979718674217624347931898888380558146532136790153138677098906254498625359990443135636012164545736409139892968116415396892078478520581716161619832464497529415279510779853214796161756046405964814285345287567571395374550282319774208869607910319880691040874792526398656748881631348591045932467727162497080144451138808297401840575404326181071073929016198152541485985856223846119313653053436175942513609599304403484715877358233050394397668910805700499494469165262062285796059807539271605027984787842233290058870744482169831494078315093378418176062926091607502867310161275028741127652236735529887256409287808299431509162848223127449754752459989765858515974340181611004665537455096338311745616369276848252654657171548094977280218478984757795198766315404706793438852448566301259222802260034067639698668592136536643385131549902928350816764894133934633275144597508571974268223577265340294087543674646429365961315720306752019112062943856037181809501024871282908244962790222033757834536518920985485470247937716040211016286567805992996195605736038110156092686858640746441879978325582413386019398343865874021030936348514549658400262464368356366151707274948654516223628855591915598555501017700831176977705764083401435414545717920975066520676671237295745661083501011981345118939934848641493279562242809733807718566061136239299087516922260692354373537500097533459597525644485844595354574578861194844743677668156987081085616803782885202918113230127600170932709458190909495446917030655726345188556357031719583899594303458947155606663331331392118770657379150639061817946653662645911563596212992432426527277115362946657648744440193420611987048957611201095974425152168898951946140989186007954721257337362462168139962919001259172415786692042907591151353436728997660765435197601308881084628861538405335052669885699621470324388036822336421211131429559491871908802437083656789523439720039144542717628791191786740582306947721873893030659364909849145367394546098403054278348400281431308282941099180720948982656243789615908017822227532206210749184433882771537056737413941513141375259495532237620910087495415959337613228507137585100651757674953381209506689377539005985709601112968385175655575565234475872977202896991166254620333634062639319365547155585966481675105472405347862349784259176782016408201977391967842582184178267574508340143609354664769145542468651681025442548407364511189316196208399769356226266221050920340864006805583564136015724592447193760853620994234372972477844952121892993341349850183015126458488775527470701627464117819904509194049191324472642137626410945428868174094350345186214220324682963996328889236995769261504040041013556602129094973822360823514764578731606645598385342368105490372128769671579482257478344474886092323743037006981927304335816328377601410760860509514743383491292248383401926711332838030463712054872826612602865524712372804009033115384816003856015043383220732073684967339984150111098744862046504989669258031790573433402121411947096488747296106335280644248234117846319866482479539763417630942942026326090457344105653283297232031209002669216567463858748220594684961520335964453902723859372115084660235198105882446476309246009286479173870622676351849460617909028810546221598885051728292742289506811743517636578839749578434043612967683254621004895173244319424041074334706193120270547538316897853402777557514731002075012457672995605222658782173345091344255621475217354478159021419190608672613338791434692296609525148563116100974480653711204665824961984474256469779581546146404155747377277574778811915855273020565612023883116293776927138914577617833735132413416694925488021336236963191953709789600308570147962368662641533937641805309544111342652557811191931748304741106668826615318128759934020885684461361609199879702536882203163037956878334849545771495545606252618713052469458214805112949496839875084783053724500448319753977875794598541199190333611979095972511609590091800747191168392598193532678737295065804030698526277443730327925323269589591099052919388286358531395570627932869548958495288971592820805106800362643052341267733588778841679768258365045984466834412244718627874518451200496869806211876951964700277345087778392043940750122406993048633134471276083923397043382091705421338762785563374008554743947641671206161745503565212584330680406814480903331241501889998933695511282961925344637143778296356458416565947789432055856907886372912384296001410155733120459331814624677530563650621414385805825632757875155532970157552240862691355856120847301982608052185777833897540862409662321862954537040720056313777969462649290350707889353092338035552899484964848393332296174290342041323825044177581761187075442059399378712834708561603248820363040595882368991979562357737509904946513217238486104762327564161149658520432115298101597549616645683193606800012829487261940606628238354366739895324229825899082029613520024173638093135891199888977837835800591078145769506225357346383138010981079007185542707312945082878388155137610783310592814991076941563026728830077593117252001359678444626991173371325154900058219156238202986690101482409185540488777188704483747088600467865233698468338467889232954797297747678600388599935476748358218287657898684994649038431431459372307184742097327885672087316737415897896455297715208806096381810756183798815253853685323068951615553610983857938931742704680785137425395058876985865409665946160791371378673325543455857292312429625476476441254920953645379838367088766033097421881859217254766883365926083673242068054786748685685528988095402976982377871558370693705224574923535970786790965967100734673727298662519501620849464609945609322745559778544082982314883535171960051380346543678624655507842220252165384953116670865659911801294260032790718612677953014480381356538111586412159982207765628250769406014978464361228006518448554324676290342011346776101998509395998709886003488116045635202339768233472436388423389329242062688147674334650524119971254358042385679218910308342566690131109014699206650534185253824360900568026693955953498210894758464474454335849294033297917219345704271847020465684668291405662477856714887871286968755588824740394227918516600369018925365757942987534273026255241848657838360698656491791315721348342959705977464601362758662109314826673245321564939420586078446484932215915262102709062691125720941609033877979380519771116087793628868705409880549883942250276239286407987009718268044499909421035686526583391070205244015305114944074032796179820297886003922158771176129303031629239123505631904597164890539688100356230684609065359164241692658158265447766715557653528998525171701657802504931020824878011620750467414676999765361052456257833138302470361953951467090866044148442407295106024275514999470484093499492327015960819377326298137670131403529418921742838496654898018907278148306296667515727289152022304981794534571076147813521678606052524835689430082656036608197012123755468496959285591055545587874080975678566008415175462102679818429455518985617656602273277577164300844046621232743035604596236707178886983345064607030055786885651347206437044533961700223090504026459128228230310792225802425375849920272711950503956309594163056094251263595003401504561326397471876622616365782697517835480874102062870384152982556791995132481627615333867966878362175112086920305966849761876608533297066798218356966258176043992131959457685256086393073423776947866673586041045020715549877516242885869518617814286864597126292983391191506824188049538774629699453245943673802220501420898489732725801574876414027321474316547268483032813627018156891757000367713929957379054269234638461003304414194882972654965941141515561715679106953991444815359362213469077235833048103516665905573942339085545814396695992129222998562413108302010149422332929396532508549916958919785153227512287323895383042524538033585460999558566758543496219569022751900323581928741782335769298094246099475633746166627854753951656908209497168212107164393517330317339572748421565679181641847052555203168899708091701186236439676754742561885498791241033752616962444402200148226200999457630458967717191835903505390752780494014447077357946110564893386163859278417545560996379370529736899712273669978119910016189919730411513077250402077493441389915006269953488000793505727179657095341485848658616551589206716577434358445778616864804599563159781746163279601885727039744701605116140964568771302671403572969215360272864446664656171401774898995016259481882534838540577750348209218230143499921396634369571146019167668814451504954153357733954739745596409812082712142388479332735946821215494615879336962185425524625673286758820125506174353247946893530205156771802375843198183561515858250035884125698572971890831329991643372506486112903445692923264412333072218522495889489504273218212773142486845851725030546501459634355182123477585845248197850560181544461798141211422329944035663951863539401708902221046464168445533769970883862192531137502509302474888263123389606286350731151093937447052417343828552141321543531084985945802660462989742900456388607393396139458457024384744113529179170246020079242280807290293846343077633535429696347834011619974529125498917026250619750650578637388634706728544296828059094033334593071991738099206699770738630177192513064592570863179833855760474557166816745118797294630569073091813693260462083123810357242431551386472572631394023081656090936239515849509083733872976892293766356007691269571394618798672279133742031199484638095712660092490781336664683179657138982371689816860873473814240319230587337703388134667683943577542927559508036918658497848543151064568891081849952636526348847110506635464725707386423224244065034936009617629640683963666290492529510236775821051899158382134294017461457130785379842893331769024655587196793911311584279180502529224738333341728060614927388026590039469972307824609870658500747416089199622697610338267862511749999589196436555014417760512112602510157086901396827187128012289041958451394258054877482224664540841298711318250462390096451632038336379640815214152232420993745381863419599568216303356864412434565355775778099741834669018898384758721926271148523293172723114875709576525501063930624079540213093589978814727103432593489441534726932474650957838536690046161641787339048919981456458288113106686503615467281651186086318782522914819329930263312936797648935802098453734318853823591751937520032471331767139980786488183838891257726073946603915542018701952423939310298702984296044423894057893378136452274753718363009146666865306884031612247404757627159346869251180361592518988887472341763756130699165720422138849543900906913714238802025263816311827570162685197962767319616916540787085129150014902488260576184580509878021739279826048326214216862442503379880298693470086757782222384561949109129383345400845072030506469969142351007757913291050393864507189961206222556402294525088871415987721086515708087279780129527827009288430214668263416277648785308378511895547761697160473183661098214850016522021442267431538164128768314781441785345650084393747707957391496078194685861296926613831762284667657077465031365158286119819710576588644323987266066073356677900118594141731777900061953677804877913811774031407885282429086820816853439152766837507335031680425852899470641493384495468776268141397386418938934200135338535705600984620183737075079567364148644975136354988621576208335103388328547433015061904259621525499564949082626588817635023596799905795989368265405953598305076849690141749901622060115065251253955725505631673051371682095973803693594853944900234691098012346914451691242049896281282792173238298951519905711010625091104763308688129119590765182236765991147701775149294051307126997757385978309681664632487874449606006922763292561146490533474234587855594064225146410040974275737562239738998398205528299231359216164248758562472239939525145574289521832545251749391172582284879152952357569848757983531362940209319563643729723126934014100989877608127751843482247928486104350612975100326429336396260425564102639889519965933931263284833653722114061681750955646967959925106740142816145545425972050895903589979923789216614070059577186544260059780300170026296122992091962854459708295074195971768877886758639498490898207939392420238248287209899816459951652081242699389480248122176415299596832732650941906514394623441722397132751355142203431495420474838073530794937679931241497395656922670031178150621243486532356117522315426354736970750205418285103838893236103319568506810443547043098832473534682917115014182480881340862627538836533489951078242820882952308168799983233163886513525224321147853811443754315971779368814347625444202728987098627875563555550111296870187355836253539556038026660206728890039908186824896995120479569936908347293551929963074034486871480296349690577834681304322478632227030591409050692884414927167382957672981587412375082475326972872902014466820570198836801303153674608465093390903749431036620555322109728821517401964288847056466481444815604037162633846455177725016846806494618830169513230857623478035523270905820406651489857430634554825609881696198541129705456512887542579108263985851174252143313746717421023850371856080985480742033924729608999550084646051705399980690222012576272994808823100583510519383525221106178221713079871650733584216451720591176951042701455880261717331068782713632520850707532922825293740244852665738916693484702150739717268485814230940422697137981284318033117097090568219459955398864167557716974140293125309267975319520433410880872661679778828326137112866876030588768030571170994720786918291200480125496863929622936868687158826179415357422324130825499455549255054534743745703845055679168702342075392253144344310778437003245531779212052572690523341549145338670019199895132212455783665855475177107283795670192339996060383255875247367932308179645969743575407126093540670294449422466559950193321717629338218145903083719589485565703804658791561649309005107841868083166942633281619381446337077067602965037653954961467848029566874672166345024900833541903360310416636602294172164091068780621657309541571672127260880784383129416286972957778223888835349548423914596055706256960004852019857884987003659084746801748685547257164179470987164977357414681111656691316263343058045698668801731087706004472204273333067394302658090015479435692385349038055192232460953213209765761769345174293332840622916145210974925859353537097777635187969366586130235418459405373777825352964766081563735239544983500931601936740713507087631346384098687389124035845304153887262849641452612238592489195026495997334330894502290614318269039124008043787015577783644261374613328820045243438208531081828244821258409276162372846798105718413505182294386994784518501576484920234858601848728271825966986079533105707734742332138537821034886215303827349101583184546067556307903660326889734146296802852610690962824448261341318309959874440286362678042459029907518588055854361068236538388954917256392625990567789893379439018025499947006272438813092448176958759414323276929984504340290576928779572253460819998885906898380084757657045262636134338357345821936676192534598857186252754759322646881659648802224568995762872741865654708888696172518952064576562841606273971822430734646664002912096157701623470189948417938562714055170394262252637029550218219136114645746941673589266960100707828531489991040710382941640441364881751429776123636732306942535804767879679995649303056119273121837538361961546994082918696112296437557721492639738291324123585227725267034086641296976544201743625564512489103494497454285196599390634860099507957279860523253309117871141073384733231808259660261872434526999293775834145481754357296181459797891713922994574531790186037080074496806370425741380540083759921590565757736595623955547286410081306543665485894069917425272652273194318405086774752741413412944893150872333381050991107866271066453949364573584411275433688114411424470935615177257173469041080600539258772044321797744405078307228761865842078606323530800233032970357644474281541948224914734627642283588262555952090714535945860949673311939476696021592864623160060413471197970529412515999521668313239972280604939217299995143943906652848533097114991679590464558046769419980807182641267232658711360839237226404412590957661794680010858603411853582713517213491601166570483127441656169020451329603483562346345390931323412772175261177754092223905809623694011266462070464220435144091164541751838855619289158540566888664343497428861127416998661694443249539381026657075265626768601938947042044856368089092195204063450908249847063185724172757507573461913476531565227792799617366888935902220379909793812337611692003438506076207813637175020924587000758205539735411203808007538213499610776243489284693392329608608285698535658028159642079568634126973737435347144971993283082034335538933393296238630171444653501552250712596499360383348343398952159991118140658436740186712498570923492345041299710532458695387456709928541049987888747551524060871147827078245369940394000445504576812907898479632812372485637681023125084391034075829503278710710785458852142619524441885555374046965835514031740822862709164725535127021514825506576503800232233917430133985553181128926394750460939323020964357199533172446296742630500358760227268817521392642903019525982258572742212980284040468162901785619716277466236946282874320355072480730854993488461552075140806890323977753545016441282868103223145204715612716595029869922846356707836674156291703461671838308676976205726549687634875345850483326771163226893975217264838729682105852725239625060813895843354796736284730485878761579273020359399934444524443604073397311242610226325651209572005186758210105544289140675481551719790273408122950270607040347241756148136649457488251000694463358429909366005158994775286914376306867509435887101736635199550309429103577520326779589519797668743129629646788881055733906031774283572252915561515004319108295127595623297195968355441120237722528736027226371129495572664629854229125600411888851806623911132039945855337740296219801984275328760045774793059558147830307986313939991616561370069495594253831916242119192209494062432458747996489106459074717278473861058461739920172038553506777893445938408550773944081313246808242834871200312635472208019928033901992758108342584191137187702259422772649520710474572157853867681498660871553881556201339564128279617194624745344936554109931414071655433224502166853410987811606329581444781183411177055710942739750422708979505420012688876590733455697262225742519078129027996249710847788529262723055504827636968853953664396293385151817546636179441127287953284460511661906690941008757934571096733093812876843307711990385452428386865709150663375984436798919579228588510847373629393741928281377382590478961672502191587372280901428321040563929786496306518603716569159683538206049114400403455181941800101731572769920381506603731847279428297565665586809046719415093860796751999348947115479689575389532178176697999798986844759047556820084951211006346507792169250861601291907576892840008670176788346784105390638134102468639104010293303391803008915250257819307607904205922922845094114860830099299759479129651284702651084530794112223724823885681760135182061708922137496036399735643447229856654585716885507713072222995418591188862894642945754931168083850731064155103123022752454075590711749012442710461388375569300876101507136188195167551439654801153294522111739037263807658316309661768264432726677146383566681687648373741187797254068741644808441110295693814872433475072301446851125759542431091250332671573369923134758183350768945694935296703954920456626072738958238754257816926859796186217486883354765351628076056475976103254385584283113261308307992445073848530365535968536123633777238968309920632424322046177896057801709071383612075022022446392616365364560119153354003777132953327542356996783413121091782789243860738198551062564357939400938198401992591569899428841691725805137681131906793370940138789143051765429939814497903981736446667270035921750230339394447983064073736517780570403245303984438013657341887224802604639895822101483500434085155511362994583018441538443765550023619105248970448484658276444489620368275258280515923458399455873800464978620276578071573780663079814086013318040945588642032217685895000952292247094514053437686942920169520735131406854546338609683519956356708965687191814626355779308694343605490102245984875548332844474810766353835363149332527455862649415620088570471229124613061025343395493873056239786984993667412753107194557885271392059367831627586526108087647664679646849240588825396365678691785034057794480813953186016689948263983785147394521567143074608817380001141005731370611201043360073882469311683073777493804482745598302373718540670229215185834203840155946453428970471560874901166315656658733311036077754272437456866900626205802888939362751814051422102226724834438198316061591680739791586783175537978184523189162206171701084486660421625819796595686751068817987535149415766816678316198039202980442750785408840733277386962144929980806705709836604408537844611222097010099403798646930103016240516369463593505635802481524051761928444146300942916711112563381239300585127648283700947604738318410183630814670121385596840674113127937796443504173021685593989572737467339613150432158603033316985363718898738536184709848537981415041199545298434656907286765414792681808583184005972702232671785854701585789402682645263269611289175956573418340843238139527147003597228157461352496945252235659658040531970045866813017645493057869244747922852834727446210644613339317981039412846488750635186389597321338020860598427684310393435298586010699670791949420530302399500838122550435726658297796075673789724642446229021538292600674639215031329511469580966511692850702650465859092732051270345828107636806391429783355949807129694903099712425416428787049944203992856838438044076045029248540359552170114664704712878668638823359855287446272218436061832393844641913419993383340980516836329516204658467602770634723906148306341769602397286562659115478153072892700436810705078774019738501048311162047006851973686581629205329395887755612133503933459923642451738147215312453854904343850056761999296235534703220822170118897440613821353678582954695011202703895591384182821369747357336963815306491441709758272423462542848950287325353414225158257278422350524863189918583136967483295467783235230121213700952845860759249779719324300940280070880295365834154533464761044111282336060601072897431285787784115898636722017898739412913170230160781507451010778415517594508960591453829457590015465029752045126485096400819797967282721384513632474586887409190200821158036119269924919780649910316539309682451052878463301813128728079927636488279281102006650068941070563582361679746621962894768741735587378609639695355184121646591696984783778911453508282122986027762656321890829991547862459917720518434891359161178319307857082647696537733548895073803995656369570957172710967833674187417018893114233773850634273893954413722585276795209537755151051307026126266234743653220619408497286942894382039903954514069657514819212317919103672240501329505216999219328940605824578199593247798934567396792342910068707279335144447931819619553942235263319195846754092280988522232501388574852857362092872121028606686404253470366858812131779710545825305040202039755407839268230215779253984427524882796434666453840070447819283674327745217489689593034603716796272826900023732600862987456988150616952277072568829052517421801027118656819103719194175865675162921278631462296798389196811636112934738076030399791604606660771013260961059679889024118207367346847620895414141575381644159785191922825435649270162516636159423240052271015397210922516749607277598473476588752427761955470770383204337465847655855008318651518716238528376849321061475797742391058048462738456722901544014194124735079994252943670243143742903475316758042414970671280075766663938706489703463691089059875706186239722581416665521222962554328916266819520063129038888293629568325571903982415868370763936095710914982806070754995165969944005088497555374405606831805929672657600284519600319964388582839369271990249111249630570651362835948308524266125014704894665802300919203777259034832471545797473325626520105256116769349985588217610425663894559279437845421087891284093746990324198820029320480386311649644053312049934793808409890807481259511615406463559369830368118280639750087362852720796111380864521766871848398069516517119608402724698407752756929872124792389934918674084675950176039838027559887897449202272005946970926244132892756163269867020969639051362926830625663369216202384751655807082976666176296339434769116614751056246019256281221263941792526359266906445372433959760609459351984316522861873513890977976536356610718847631777173560978765014199126319609101076529656293366876086239434730999452112398973292284548548096682862788001095665816822835957777220341589406766283737943505433771172118217272853136735857629559771471143175211657251829107299367722614105024379422961953852416767318723218124858783395988007516690075919041138550246837326467518831392060032075868359184656631332184030687111237038159091096484888415284126437449641170644797936353002366835226095026223338149888768171891941492799322067822364434156420056630095998815410928753166909030804233813314247833029662737759700094097079106515755752114388187854040712695522405871590001977378300853845215961401362107792612340085370424713003627183644293122001487775240631095753947171877053888132578843662329373415311194517323990711894334450704083247198036500182628268325645552038631354695275236104213102319859409162840746861004761877380275669856195252041925818734770196551134178597806647968894964820697791413422157671252504331996371859497751104799657215860617664896231883143617682195897610549820938830096409185551011063794425126288019070550212552579231297546889738825390386055084441410867322514303518282688174832759332702566871779433365861782142908754991106575492052410071037867700397338815470848007819038472353912737319808649823715186423254696539879855746991333776832151786713578049487239677709627358534302210378858733727006474717455111191242223346647991993906440451589797100394074400130408272798969398440010293500890821821362222825361943298354072549956270616663124746135953474197886454860104850134657487369532269942492139609232891096074269350695588275673009428189456178684964985009000268538249297793098309482345112836701908344511846215898959434986990774529395772587846023681335708369008854392600525640985339390643598007244008522116692940969293175729881136878328523802221531053174933160234266716819225118063857697042855142203709802138777610507503301347434854547662090619397936454114126990910635902689839346536395508622444958286546600997211653277460393040465087948653598084448800514385546098279759171607889564610964805786895090373578187939934677735594068278411099243140483684778810842909804405679407752627044886132042304615926840008729704434818394560940391830797332919917090139085712091185728183805904000854677452193440309792688453726542297895638899450014692916376672654949708898581622167141830949880125214111222409735360431365774481743072468037620654935797622757603627702754477288148497405770499397813656677684638223965323415879382123607836127189561884436165281480512139538038650294269294024896513909707984026246560856172932731219411266559817093004011558576743396845069526969001420394157137949588395492859327517539500559211939176538128773707419905217252201393549090106157196035702146794388919404098731944369361129120630861827902073216189139211695750341276777436351953367031842872587989879599969292487565417222873959591361244714675254016124493680986833975404066821668565066747100853539465173535500240488306548234287518663083709205154098583838979564298212724230253724793503302898866484877819166906374135280848228201213277450005647915770825977764356616846119780038279498587789466242409387629257455256796100590768899279384015267046994606288804571504243517668078040566050181227311009199518241018995031380454333278867079495615352267038638283724503245788310027165338143807839187983400396645421794396210762173214673851820279289129218773934644469951763113386483830166197204739153758374193851733591811784490413917975676878463376720512247775141239126786074066597846812717403490312874294479701716771046195979707173835881207427364366533174144838633634072571273607112037479287149108027444641302879694333954380846007689558149612151571830082010629416210573449828807919194483408110312884581046877151291208187968778199364658453826399952972570709601390897813934550518772163178592339369957711926238063434887885432483414051881404881063864777737148908967681594080814111576729261909583146566800311251678338689341308418723573040932699796417980532363729519124164188241755041609438953949761995544045645774168700744501740264450308427397753743724578529474149552429539647691511110301008278226918412845877904988986475491396343597476687804944859163925177438098512036896872857486233497038118503888760873610286500463501968120436407591917132005748905834973069570055487902919270139009471806531375232340534346861427610028080576181856559547020409408754453952663205382625421502554699550915734046804793147176145945481569374449567803296554465663662774200091125456171478793229745463705132470777062864751197791207182066072094682662881933835560159956018253548531321150554004877902893498619725972270388989743042815162989149961484182010097721298352989709188177138420549914989100033859100450070179799180770313822786908324499173128078291863967513673849375568701214371726759459520295434534633038427494242916443439554989926377175192979429031979726473656075771029341488978885725326075273835304487524281104474429796986183835604975315818478542424910069726026805048759394276227657523628802382788260124962221685447836390562132806096969775008212417429456510502676125929466910963246395518436416776938335188141719712631513314747830509759594049280611584906893216311665566511194977361080740762511500178837562665137107490585837982570688150506122886673463539625279242917747383197313576955095887892670685546194138727317790131374873279061664689737559156933873638014673737077465670431097960223707751800928882501952023053627451947967587580830912779478843194428494541121744263892882688758216552341182229702512991956412319908545227149277383012604057513749973462040936550467476007272290228253261802011452530076769241905304407236906717169557824370232607733021032068119634631407799997822589672040206797857758020838811775558300907908919509810055725118020645372111563698258443110126632022573233487992981497581897137874219649854448083283645552924889772873301691157140318458920336961604220190689903375415412084700382463992614236031828249499804856071885271782932224005917767213535759062310850820866218336704608033547804804214643245101470227244664822371244115511925322186903114588141423845984692785976715739328970764117115193149114483904085641341738363417980519585941437433763974153965465144400078871320860182365547931068087529143945078487163820872891271228601151970403228603017749679664022077973264472815999678758822988402130810799002315276820087636058238649237049224104949556154104475380325038319706919450357037679063666280205995026351816620343332972154875004650455560546907912218794836345571579268320604869852077551569653334794690234469716945360316174627864951548025781793669867996296316463902418692502486813932854177079214488363454119283441970139731122366991244779267418318123109749542959826135403534196871395726477137399424236156542658827869074664365804571609195167886004669501039692533929949458919419678140524289747060041512892040530024547998390317704512413952269194472872028187915631015791711202610636695703913239372873301881202704210150991641148616574547358853337704348625572325637519190179064174422114174168073935907964272080073553637514003449077463262757910178289352558690569512689991397358607540818911121790303190969163159627516081089159718785239088850860418201045376876951963264875937509174752650027876252187847309246389710885039824201297878702472795508818264485302950020003406415452678777288547478954476078829416315039564389997149914151733500416140880660854792004554723662994551328147823773152913461383688400927769722341050954401112251362556577954861571406100458684435819589475506698200746174246994824138627918018478435063928914517685958349643683234272542788922045623022207681794286162148749195094245238034553906185338869315593369017606622817132876215380902786825771530874794946070956807451308564760900944907688841500204336463901274653229065063359914311268597530717117102256165981250956228401644856109366031255158320016691439876767990594837961020212543792218697142634234850213794665172607848775555131903263738532190060773382103166629524050169353554375314884892208892823156762827734944424050512837110898052867350145016449046625924939590120973895301907062467319233709097385268247678580765524112085613560679571288339966404710392845480574507446497538172862353243987320125256834986413336352497255665069066446058943300000882364229020072315103320823394262232341680210599495937279422142815913044289969346647908323421386307138320470716059874910384511522452884285678443843588756733202265611323143449110222066254251481589069388146014665599876705711753252886441154495648927441495587494760760667067008435638056701929959985423365044834284620215504508276863950388901886052204868079920482536320493958939437389017387538117249606782369497113896139671675261580847977165533482979375402570632135486350354277943526615910901131523392258723247431618082996094104081956277380404783245270934984602775134728803205243438837245847139556249577745644332355715030306453214558103056493383957762739873352041617911862926645402238910997730054003560437054041826716708474508196569561325635535939273890599778157284418722004198554424581572892714922938345837643551890255912790545252647836644638157121721377824963978185787831414267505513239933317314404056492224997356861045391695687566638439074931873484892074609050600210929485445666272072798428280485353816561743669279759388168253723606869870243544340440229868957248628510617783200623065509282372404290856394993377344262260773185266169537859936980858769743458937615866515678723784967603081774512135667829152925178629127284463761278721341435480370237086180146833198797658719446703171232511115146607139996223998187268607875241822057498977385260757651435731125270320948221218719565023335050713654444937596415700241182218575292031166831173142045598404328780455754080528289309963123556794092553148935687058803221852174954946027007667962266257339521419116865515098529464682863011983136740598270223397727518143055823850603424391427189222344516145765494237795956990017700182044951959425054605042864815691319901820722955191984293113767101946487201237452539013747497559090822925890384802130071719052022519059046252612665947907958854031141152904005439993118360336269140803504331360772063078834927917896155169605119034317432096363923488189049883311073290624441475807750988961904576250618748897795286192343602764169440962790625946874204689079042120961885573719139991257725966665785829737500598417764116419208089099285100454920261294610400178826949814796216577904762683548341658026175071568837349790784933395268517444097401753570189939829820716901049695561674639295756567437090424783182021613149391305257499581537430419277424455056969670628908318106223990991909826321366377789125046996404969621534129685104205089029745523499421819687295135470823459818133299087473564856523139536923828613599816929837213420567451205044346138098860704639344578270659027307060019695080305026390889514658836030956991554503193046651749012926986655847343229572981536079159730831669367606544529190865954137954887723547940443243183641415811208848409665272681586599960056488001422136430611958876858447282038503285678488448279235480768254207309886538139437194538946313098377579193978272849620489395994626965158980021845040432289588410679065588000625025191909305353844873491284057647541435322432813294389835556567930975698868409230656646672918302367507211912004609565881196432534370732903621614636367539543461062881759448771491002185467535477903020369533731161564957366193839118898554177591242157550220110378843252615639081761775986211891823038069113563103830571286347578061066313020692891881613619134205266291989017294058228715536995957026351689536875270667857202562822833873075733168750534282032350222164720381338369178965346154995469887450513411802450267833802610487129850135280368326850916449602839861147125430956994752065749332881666254650752080617317118113666816187397893375873325386777524168266380251173603119675957915984576812550015086636963700897360681508047367106758832704818023940396038989842698630390153853764405865865344285407266832213231020612927408587882280780452838864696344427666049834171210685428341285344178853017568679834785219546649146123749921550645783416810036496637869829522714222236763026994038087947013846230397834139560955642240071670415028905221711602822283873509803833478683230137843447644896847406775070830678221398804367599893858349810024118394629217931704994361771475659639520715536510009944836535927011501721433411310818635899528423558728398900043450030440931700879228621860418811220981461840653503590050954991849717004348408991769545532115644236385331814652357323844464286397685078784589174742765264865632826918318530367654649075252845397862730549701979563746129899603379434437639342421228635243259139399604717230112622400345121015513620373828604550393147264439851516608443151709891472408307753579594255429460056884033223123274392206746241967252104503475725220264257156746955588334865649416590291466001741868391717200827661005501225307979377322344114674910443600663059223652215092879124983401805354053908841727894238146483885375190977163802910018471373134622207844226064022263301111128270162470039527285328511084210517216990334563347017749655595159975920637897530683125782296954558415946280538024315079902865323592715917634983320395353042052914833481570016726167961844159286340695221468505183088679395497499846094402882503846510822763692863295322416816639894590090836163198921578219967187166471024134616368515034701687666801602869974099592285050780900659380105237260053424999531341086291230723801603017686622471927771908161187645036450233266065557222400202205280660225834502073191752333973625375188508666142249332964858067263982313773505551633808760821738617562477990245944877008300185997123262043057635191282741824513203699103963478500997255060421924654389027202934324392307656059599061834636820729534279098562994514230785967773420843065111456318628224395473840965168934369377127959007439050438186399175317682295770032285078892519017737832107892251073738817538676685677211527998549325143637916191553324420424540669307658677634250216552848002981065502153686455801258090074800179434636587364093803611854887039113886389225816770665802757466123635900215098705989107603614853371963882564053652458750434995731862948716472577940164585277399519397678730568616845926885399685404016038727204393106909961256016151051983415861958816264877769624822447703950307669827637150147897383381857172874157360537836750039736903730236646171025070453181134581052360169679033733972779354939413378068271430363686785305163036783421545192475590652810957389223536798064358665368724212628948086484311473509847492665660847931734113380866967268891069974108105234469840081093901196033326244414264906548648924497248162557716865795297959223877231275134876721826669406215336386604194471204928184155771530185449650122296762737512625623855669255435971766541839709996231095992231121048055965574071474679552553641117333410280046053938267523798982719819037520266330795178352789335222768382399198866282342137606656012586003448596017848909873444493476466750579692621910829491013855692023774931945964276078846435337246206895194767722344346765696832033912155013200471843714361400612164470927725439754074663797776923204332924373471217805751248858643574952657641135769507171643431877683167836235091556336947320944078267824902153727177606101115647986230144606775759160520466720180959830682542607130340814856365633670488966546252868686012679551292357948895608348243277779209582345196993294160877789344217241508350549319248233097676912042545768218504736363052501956041555820454203744480920313829809323327640253646607235897087585108090150591038258093086232755022722259775702129943700821919919495782107693094834117531457870147068097018014335965204343031312397854188991339641888035191213281599348856557087178587610422332372638122751987339855494839644257589687277746310502250483387997263562003570240581704882444603011344116871162892859343396429851604625179014166390700346558069151397162946367294699054522725797276076340820742345125910968122326982299742036116735180595077234636193214669726858321096555619152863676236939396123334381066817301530695422383103411136485717483598836913097603399759608625958283983715728731368955967431083277007870758366251100894522716641364746889590709635678319542710556956301025829732224812917843743267172030122501067377838061366713336373681491948387185214712294265442259059641053531672627286127306149926372860359533925598718307361126556929675255164662405277610415299607279017053702073173258124090069796730106699136970128600038651483856568386052601793722844161477466093299464159756220442858543175825487621885566208408477420880265387799251432877587228072072041242068067782854279959434278320870457126437710096973808639852432884895300538661318701033365776424556664741340182677103562149137318322756674432824699985636094199901343536828001167428949662928412926277069346023698816797858370908368977202335737691658441095699515476089137247558582762427691610143157754307908141943883403809914513543767140587756337774281984155044292149057575407499496417712568330278464613404715061311972361512701103152177482642428062180924033571651518643011502230649985151155148469684216098011071321842732675287084804107207899044365875066417363903013636338187341775438737616066017254038798307207248478813909447915711356418619209962928702291648966717272373954676425138198240736360811060377424136706192572495192711802366389275943954797341341325878495979017020329136199646974597385597948900919935720851693000074791989534614489714935870983561059787169763208857060674102933019795380400304739748173801049273655966574706556095054406721796117610346267108475713498878607652988343214539581762999507769462827064799887611279008925352549038650662719726926268688510214647974174616987456955831166533264796708750921886944304073078596590992792721341693836401509057529914843362713677596069508815068083176066590254496643807951642523216462539585777753980405402701787845624699285932529797483179656066635315578510467268579845738098911884149364697758280176764392599680004285118894887658112029869667002901013171681842458494592327484391950700825085388754879949363082179528245558610279047046576011404848772676454966052337742901580944950681210898962587835239774353266523758514059366822445061572346475790620572561796249843230111435625183564753931605674772590048069662164348535563731208500770616024943530839409842869074800437180242345905390802782954776659040059763569444940151533436255513110310332073628841152913335297004304901341435072747621962580725212055959925437519259205779561372697280359740508996481171768725502625435316247342884979416398368033737319875888416562889477202162995361367376699253550223644564260992757633761806019880570351062419332977004276129280683497197585792641389816565058048373322507037817663191487639534499460837424219840360739207690873686920129922598925933239040217425294191720269935853933623749704212105370377964672847329026173137523173074441273027727224815669535496245236292652304250949406297111663097102110773773403173562526188322837120252767333112067693972489167123236453189041655086837906586838201033483235807129532766327245702282783749154044201089265985432023775085231986154281768496630971820673021675712154887620655391457484638520877894524386425437944093315742644906898982651745339069098977570763193601876803738875124185553434505980358413675611243606504595056726712193014326017304482861264502021009645507916540071223014549507167832812403572143739202074286346131086518084398583777996844070493786681449239488069335494039794725284016551899382372893065179832095320276082374637282580398488543911138680025257186006050207658681975214136963660079290196578212213772448539908353922174776228425598211853968451299190357827486444591007290059517227009930535772141720366511489465093189228795283973286894763770978257950300103598163212219513312176814845017093989034520589262769112565763903378614765157978567897390969764211632860016521945161259900398900262939696701014993221125852505315127798879955723760049509341228980410605173892600723502273549905746192832804590374615652655767260190594185599744937238031358681093759810351869910693553734268921069125407640998081485052686977629717302250869519690478267317148600037567709014251077314590331078807158237287674685504574437091271857404009018870392212284368475485098569004898747785825804730445825013425003363050925284474144320770095717987251511618915065633949755733680303314621023105545987101886875455241000622020448535085118877168051756254367433523030180359334231213581958479635838927776543571007796635205999958739878848549535050965282101198135980468835473938633791566710251643349476872926961935529989571058141796127525904126357015739582306702000309555187810428200446948360715429286073718074429469529911831237473160227946389504585341908611037512638343463988911439787458743717470505935613745280384160512255745796235794917915997768128776018189619008006898656949935033261843602307790599974767878469276089592301633069874748024916205180916689406275719754013787432237987890296573166417466127450678859545718849295861417102556942673793971033216790144890139131670323256154526262841181645177361588951345237726154945329617446945717274312978537596620416340910324657853198874981119093311950215009912219744923849029346406679050329106351820054566718108862417567036121343958855424820551664387682037202672884555813212280904347443463260462743429856751808335349588534203163276557138126802659909238714438537015950174927912569686661745169693775336218626487153653730835082192666278649693956278625622700752202146929127632580838638096980714796193268723980659224875476598464692627174812529002375986621025717723929136397525872688745110269882729437046069032681371973304083313551106044860673898535125105961668742633877600946619508695046714098112712347209653376455714075636124253152696240048021923054365938685985883593938345251778460851197079244649470629972538276294673260262268867895859088724144651020638690212662159224336813993609882435997551629350236961214826238485514496427949912643135594170477849045368852550877789899969235686726883815739983351698598973212924754048488171209319554690571220996870397940219545037106454474705880798490240063591095223882064755454832600539202506019771008979788835359254105069958954152296782744653854485169587933348772730019565370543761166376986119206963040330410383490605361343850241595555729396095684368311356569121060602950159614099878795353087387908540706542432926775847470873856764541513936067318143946336563024726039884346211422463528605530549189619346472366596598732764363525676369067494266045202651365679899824935581677430511401099390986681935677256391258119785203203971006249379664845501555784701887421025258533016376290758183985744320634880181273729426264965713977393522243944070623873064836528396406545816903645363234855929893809661242489735466492209243062080003519791531238603427820816228948792017528814030847687159447599571694157325442407997051092467017956504188146171840689727006180841391585483628278268915270969976194759810700550836091607905774538831756586629806669783634420150242299230387348111969847298575514362214155824476770376025247623252271085851771265799589047577377526601592220938982257774496634466104512794946494167282538072443816421914929238742739263225281630208527794724778886997204503107900360168436127704365165258178003597769173635160452962399900177756551644637815849886127083960412313915318028138684949111471122479161895564593172840993022469751162285775962945887271192106342147890814369332291315452411061620303922769466617278848569547234736716337824186105930225847636017520766638230008570411758632955378130441650381248884470011713611781759966034447667289074962957613068810122119866864831113809943238975531643106672988678711858360431348844704342678307081382723059066738149466648814002478354041663244586123509527524059160687891545651938827806856388867704867578668117136404628510965828506001402418457840096885233579917368830490301942525474383486934347329889820463651025688131055271978248980451194470421740235209519920054691598158590960552532785234128516656343996603622020037334211563228987521947793198192534679571536622085826805694120286162618857412226677228381347729268313172893995776321279960109459364030063894897786492813611146693579349081581480108028926117546019933182674473651018310705935116622761135529930748353482866246022368785744981213284437154172313050863593755806418862641084980917661743026343655403745087544132618847530959637813874312494161930743778356937193617304578929471930340268363409400811528846305854171458946170264653975763259717925633920143036889116966843092550712111487493748436371619607163649815513197318557082744056909829044369473821657932987482739515702281853576420172258557445599556131920985005605424224650583329891526192302059430260302285782046985705418636214896522977632353879052289774958352809553859551556289067842946238583998842193002257297744141888490025242413771045621908422450900403603519733803840520659420113523154085792506283605076141733358630475761527921054560744903960441748093713512042806758897775132500983960834002863982391452793184970281224402041583755964388512894849174831974321854622560420380043815042546740129037707490818577386346874365309636344403679728832687540292300227642674650287658290646968203045708410353067944819186941508170392504234941873473101636235485408537164935897480349598357079089919641847794314913798018328211540238902093248112528723240912464130265165642886687168272948731994876753142186266101857048048116149592691494592711615888590384523585929376833645150644657293174403139939550581794908485782352659795102637293345680153730274208362392839196129785652991461906857188107700099753013377497805708827676782913750096983641200149452231039792680221408689581410443830698428089798265356909356154605338161581407601080642559260305824595751266661032834303796169898082954898675256732587841545836304079432906081190359866863722780509163393269830153873931789415346676211531615554509271500875031823640018100790000880474933096220188707603126567794197763210052390954512188027723395538749626737445553154568529457423079162551639431031890467674326756942037944078458777399729159275472834940807043029114890319571066968796813484282224533644536128246966462139755152925231985574816352855839888215771122231978606732885204159405438578072660648005986326330138407718131179054448922321726159997072626553310214328265009056121739421624099528558606377855996075877330420493900914054469541378063250055972887402534569670929061946386490216246988727734546652489379947112621772051500909346435475048599578578950758126584314187861592190006605680603951715819567123837360560743755041536243866261146676898046805592029179107546489229601456989954265935493239554255735017348274799502143865162964258067687119033785639069034253892130816208268599721064647479118529893620701770627121451253940633937818300077134747508887559036937591823052411984126462874217534028010368388249483155199727618931272801579444671461584325434153736846355586478788019227923471030353559629735361434092928132363925862295141283338796681987937254384941861147914770971718461150950709077449562745071232784236818652753535485444346478989454791782395463296888510105656869401425567187670400992764244407714233416900299413547111137116924196942287227353997498293330198175860545374607926252160496500280448040269601933606524114770876241636770829099124292014409012647473896675131937766292883840198531090075877379983770297991764933403332374223285358977622921628312706988016337580203692334350185412774956362694561452588540682476841153921309252865658646734977273893645039325808095094024919912940394052727573319100217006267847943326607729983404090051130962267780732927241070403102190380234842825850382940406391524200538879406044161543914634818332994071687150913027905933624793107312527290916827485209285942007660976884905546688802485526426496932165933360270627245514553283282873630581275134740787512300337945735308719359930614031734838077844717087221476459073428979082740680844318069831014520862467353434097846763636169785880562178791764735125642012582303019563103283451343083290868476970324528222014029066351956136643605243835123256686542086818480471984874727026957057213622740946446240500567600550917578732989361597915851170371031579966648223316824425576781200358558340419172384362681423663130149440792221281326071016582973557239352020352537128040190706253225129007185103194045249747935845995197842003401296892468295966331860948654705934884853721588374915396156065844299196512752971754357375722472355185954374119018105046104581316755161677826945657865451085421878479020218833642293882294405442990326879648521487170275662678438382552814622537301144089312820561379607441554805617911862693179004396161600777470297311870478017362758152205263268648623544381724824941723666240702847551808928864445024488111815251725508901903747242343033290790739983940111291868650769018237521077902651687490237923985967511900056894887858832679856629743111373711892546484833592971243549505313863490770187643684540719680625241505613699979308490124452329606150213912431606740088654443573746983677412076955359057465796769458413348900334208630609066581411176350638806310804625050531453270646007585176436474580895439988982021100933056956883760895937006363284470593899002727204377736073277315476454064720350491904918120762462240355515418107741364704290721840110318352818160606569570916611810687211512206842203111790908065979644714437756597967773690976370934765562802389101129802251552488677954428828835263854941919675637514696135560905370430442417401548180181297083839346498967047411089843122191075869360874350052837446370670056960889687441445253224148478266756256579134419931952406911234196756691810762555008493381722886266981957347726815092487826806290175313696895791823507961188472271546871092786525868550001329027624622829184452731877109924647651749944323701907582956327460708035186587913422937166261069094042045087194299065275617660616259795999811861575239569490166630163809273697112326758543189290294262027249940136912155584005152529130789824848116148578200754159789733161261809580420614979162373248010051627601637659570760730580935669559053678067881899105663210901421239243622218081559048723103361869743207039383017658123083936809666226851633009147357326116338230470283340415927440157978439551435231877406954309142879298453318911504581291324935810181056415015841506781864486705189643762543009728349406306802109772905350790137841821303626588692803235194517207261369132416866314571320975253370849734707506370032776640374742086414512825390932542385004279235986735037923224383704918587844244839457584162168131277752780344154423516316985174152542740091417087082843866972604573081036576226065222528717147399215144916651949843225626004561159753059621338466738041855487114614909914211157045610112966178202608985646856057938359135124192635352246247692638194480596466208205076215824645767237394957326111470322679781953585181043945473833687356649689262622684707118996171419899861299230232848235552385433155642136201042152204328360868811087331725211289846923264155558583364473800603644694982578970243048721433015147319339094056037468519448501684130541449214295970514944149377054484661527192098672782373690380816516320423660071218426517036222642819976611691236349011764630367664570399554577038895568177185119646092207247297022774933816039488581093163517175641840834992211113568110449569301740211784723648972134029524628444301831739031159518587519701183135405876315461586596646166620231206208772245961092553974730023292970367371766971328550989391482488571673495628162502763459710427455186866850973091324770103081343141325594146062082905243670432865205904583950308055006731660234182505456464575070465925418083118094725327397697982254031467172643647388517041417418003258452085476560951693749559059149955775143941495376658749684592667284647956917293439586593789780593927482269753496497878124590802457009692654669550052427496030617148684021062998101690228118192553643234286989697389113819802569792141331406500157448836828587860541748568751814757370586017422216466709317511708328959110540719996895359869332772119715904106718053462770877449006696049645937245963299528219813077519924840648814772838456721943640108092572250967778725940394713226862374040528356999372286476156142282738098322441628867707304749583036223870744972224204237748272470918512649431016569985082970443722848855099975050667524800226205352908429854798709253702361790459553803712349438854755714047520576496354843031882751527743535310441620846909542017667155278201393913606347595130286958800469041430522360350920912052750161684036682957331941436558533980213721348203287773228699355442976321370999232086108620641901416825013357827065484130515098427634490900002928132687327459750726299617425326423173923014210357210088927561342237552448174807698571062810357835360118596958959272736319606779996300922760458213088645707810739026413159172597424490938868519606646259201362542761151500135058120860617754109870684570401987552931650029588853995550746229255165471758760902413788151359540201641995214592698122238039426401467640476199829727601956684400377120780388565022964988329327929355260323792393594647972141897444180738258418891044455083176930664525263319092286211104180054537366358135869331013678599980025545640663051248597730076189819978427358853060380297013630960214487131653424575432613270856200347614019069854206928479932692791173333252877806821758502314099641558149607550101826245776070384530489633117280482153995788526243440280149483141621968651888595257297693128909163560686416605951824073180351868829840229354871511552120862509374439561408781086198236604303882479411781509092616973580440707550810945241304134353454472191283260541922661006989408660055591913654988626735590179289029402927720027858699554089963865879923314526052390117008694755915137163527082210577597919678631837640955629077758779921484388390902917289143343459812159948146687132124975098071109606329667341202633986509341502378269995682267457649843266616925907562437952089119198515827552360185410480252272967229401876780770166938747794248256337553755416199309953295128627852158808170000547078293466137944545332647202505199014342775638368336701969644817228914112347512929524209223022373521684779732910607523060748720670418542643545365221917962522012940090440474011074769005095242942655019547111062733529581653383842741024355694957892069167215443207782783967644577763295815389799052639139133961797328428574612599987528761673103159725503115060982808355684586909837615898807142158666666937999493712279649206632074129759345448371072883868227307868031327657812955212736818451062406290632708023979732211936369961806063154612225968075204719732426413802019713641771804143356854571398039622218358842812797687421036164150541085342377411404706014640621023308481481140185696857393968422026900902180185291914047533365089516682451772003927941918905398078910391417343673287906465653639690920779662523352838453710518706099825419680715167612373069595303164155886437821237465423666392279700008752194884319894965231895242338543792074410907097402476920891212095413153903821695550939931254301427708870931744793441303544060624252279025648162692824685012482322573625655055907335454301273445031099838309864136563025042510233769571525940198732358759798412308135850317414291015933798777773308196505818055018535111191255882085004585516280722850607013227266100802177970165242008614789863296331858448406736292590159584729641073107000141849306158514680171794088163758470895627311359969393886263997209432402475662485305193522488468881077647682261203085088705003866946580934664830443536563431810752934375989208231472827115127400970361870481712649608569951246469344504902299869632661011970753833749477861494126421325840723696376840729773228828541556791262863304353983875515206672262576148986968835035228460438955177582996634950661243846791876851574739031500594799712697456033109201745388742337691308068306819353883637854884228760778986152509418730603098393288135986641794840582069835204355254231365426766808355300069641104159912129140307942549870156073314509483404378742075782524360118593458087762445443874344463029803567856291895955425459945100884040259850643007381004314861469161287407412190974469747918413795586262165498280277186206970205453917307257262362002290681258971284476681719586105782143457357540454026502055649008686973634389861905727017854059114375116063023163037597860236295931099730133693818774155313615969425860292358674717048645695186318889537482485271002075099497319493413347027455974711420218875619246824462141254025161059466051043597769304361370666010962409595249896448153319501082026184958369287453279091444944453790215016750593011537142269881015045855646951870008637443442477590433353517624069679047121868683455972716151942138219138963019152692780689298566499406102368703428024772025027733723400080228997796752979801105556889157027269966086858962196524848231016888079264896922759957936962966327584685964668707499335066887537722316711462641041412630920722051260231667184638459994973196879868604689086646532516280738667667495893500114358004225978901752969609685779096719020297755000175648876978501006557594613610693845180406661462401667587858856367601934917521104197561054226869138427190582101925458459385158079461690002968644041744438048726495977522093472012207525127460686597513772682347789361615917607649563376004990126166479314846878165594300926374799518157562700942045874643570979853137664145175557948062090871473640711822486504035963677203524749160286690098312509524288091059287634577450512088215161012383091606247180030384904167650981422503410222010050898880281659047109711813229223811748898802217106656027109481021457082229810454997458717692367405403561931653475134264897338336420211068339097438294222160523349182159668968582187956323985980178162486588734657982821598876050815263800578201003680486103955671808581746061503670437690100834675155735945498427154282869824785036448966222803213048957946313915732503678324952725509744680142408614902590641433318219581735655470882619823428549299207235547776182881239875278033848643235317436155768256037068571215549306887003622200626897474285997944895024976905751904792172094982990945302800498568437914872612595663535218658356274554460195673526995075790297393073139642212770047090205167437099054722333921938379732149661003352838541064640048007302930224792950910359884826863076176483535993834655344809352710250364515576650208887370017407502501257437842306471655911453940311060431403154519855341172680280670059794934148377575366750147620442079269171211715010753721996440105100011977481660496403770010424060598184106284455185945959150006052628634582474506429703764683203589438646744545624735779850979221387827053191743110024664665791572202590995994287816208043752710369690113568925248179708893800855758944693269630235467092919879230600163352145172286065216978643641009945382210763154249493535160469698592541783469545093353805875932119710979210640586503837438607227333449288440034226971844983497436803225895370501096634661210694587222930838776745353098706699073474379925030150884049299564155158558186301566430246654331823241186873871935329242565608203701088190787467001009436172424643218014198044324781846688941410412284287497942387220904271245305279992745338680505783049536365837725102071734073287908709482616791789671252727449527488926168971510353864981675980091111147313801969288719459463971158451037086928468034069188536572288167527410505737226231149617905759344994519377767106818838966818524137306730269269537473960064327448310795794650838977961124849320310442325898957565871383245621280701012816470610946424408841394346420664483286016367890315341433943982027755101665897695993680824356807338457931943921159402688275830141451155871470728893492642121910151715370490747476616842288060537694293648223180745108837306168731926873160549501106747050110295057799915049331755845111886027982168116833935720070154626371306280134297485069796676610922348898034598865775083954129618652021912711456394974198809578391991643223068817194034460183126871136362791167864336045973956399906658709896441613971124987494354928090067123740926881914751659819490688899488500459386330366054531432668819448845860480081252583475402586622277178348391769100554574469361161353973348935384097872580159646203569385189755558714201952416300697254080087215718632874672737448083972310108540344651450993698070750008514349269567419597300900474782089252011056049827735876025985622345148141503872199885916390541047478565095772157127667197314441109840802089305347831335671253274798134874007951407342447656827540915005996595519136138127067214453517049945232702565457159261537939356286553011347370146088304223425180378072182736942054140541201649647369796740456116407986492509973391362525436418973713220170403650654319028232581610075649684497336323728788110468418609535972551921281128910697317022399875886487186677255211735843282752854974883440442269566840628901080648742750371263266454169337546310312420495564211729421798157260782956212605379505684620457400535367285434601884722033187977533307775601808936637900812328358482848755901577856715172889086191050739048510611076839627633630531973052121518643299702698079048518095505571815957473498259186393000170608016436581493136923887595520239925703163718737455573034402406921917973037887349930837997930128020869164117343289278317718603159986993436958967935230625583989484324151780993386049646003888224873518758824996868648100247498700977386115757078875168005964490507519270454085924005839441202837218590890448524697869718142307556297364815295310725283592563504516759549819270067944767661761982748841159716208263263887349478273072706807739872637191525542172166848594700679077895768747604610379201451833534728114841938931498498294567601706782076529175085308340968802524592754365311081324656052802994260079957986262763245241741690456451902937695896666291889023344470823514290207727564645985421330581978054844621142424962131704069601573639643138355544159498814383543972309302758720695414731046210670861667978574814056277131401398809002994257334562995647208508803293837015148518285260633072540586050592978932391731347723103419849284827420541543344483183000041776150438609739272854581071461817220415186841120038107574789145409409380646445652091465207782773432872867379253397085797259865598047720891550135052326213834685489467416326637816073312422884600423517048801719169549168997246060739569109616146067580779508800378985326776461883364049691782677138642685367619671301132185568708407362788533407141394663903907041362370564052161717155964725927768186904347271137637251955363456887066235434136498285434288597612239139915228286634461890189745747013956346017970860721106295481833809666260137506022647449992690439254978458854799865000653087218469918399177663253345250736991086827664049337398776059022069102911385108358473331417941341712769801536283331459696029223153011304064841503070963244865867315798295420532860047478024838090883199441876271644373660817483281423260255516764769817506578986718531647239471226490331562153919783165174103573337313003688605632804007511040745672799902307318005126338943957617654194427065781024322668132151255119473607761096080485173016531360515548050964791024052490453526349529128482651795373128939991029886003545373518122468286297523046975960358447538165195106024617645158067707856013633103701978654790140111765497132937816163550192060647028952450580785185439045138236883163343045347808241423335314173926042083282332527027221243328924553368112183108653441052291812881937570658804578397627798076485833249783058599989302744402552155503491748213341207818665447483866896163523271590292609020786760600056938105731351836458008416924284246112084199555865712300643055764424018431177956328890499586232092696483540861702617081287889615152987117889388790199981983597126664713611858595951391847739661713056321741510169588185010500987506026721157891333356311576950811082048097579034086744740070700636294561924094571508654569836595487704923984034923998915508636204905482854348169979028646857913832327292635195301413668204850467237532129537264400944534879331891544140561422901862364175669310060545694234851439010223994792490524942385720634754140262744876573778774944698271382389329687957466124664525436672905585199603241269488574282887207712969470199448461127752059811732727812026143057230956478407547422396633339929358050600829666873188746561975820116173441757429740453405006794258945217763616921074589750362856707237248799027912935907899794797911794201276429594151309136628375458240275071720713004825842962198861144294581507448309079754895020045337999433678588603706822550349833120249014041617318412171937154632895027239947426345922978344074656366971624090235899327851783364241926049942622126617096491310194703493616417784485485979414165848836900726255400438385684657794272154632264400598688858348605552603957765068181392557823669051088313639693023310740203558846911339318659902489296900049531212572470042213192058766518729759450149852647420720601341031057036659350567484945546604228338676213541250180304824532626183234465779369347104993676176024222009724454214469888137970453834324118704720422660206276992331003033640184875022258259868728842586664047547959847785908047013055969076949383108710481740290181090954711711406052627783806009380138732706818167310498584033982244416615830791639774659020583507566973579084653875134638321044752597165116894266014352084611146567684521866192535570206209957701104855639642913744654951398138308583998699249174469066423404430468276625880877357822240335871875412897688865994926718514178708706495266908456741569727379809637278981866053655454760142348472141613281941494622625133049616325636829714698527594270879868750746092386849312093243452487185721600868288798467875102523922193074872696941845936828378849733001366002996889750130454079327521210585611475925608239557841882991941196162553030522151188387812591401688608866479062506796587681712021505933267749718136785363058135234529775615340776840624339146678968195449329139651698954861270363148987627437484477691194905260020046185654880372894856955666347117428893964136194419882791247211924208976517552269748419306244326165683900992211857258245324536675061211131922325645752166250782538260819531782415078085650945243616555977756635802774890162050895110332238394418331171820098490709454799507243760933598309241654522441270803894933480155561593677543010719633210733877444679555197764955551790142107653619255180794534643343237591454636265697599164571290168070819115532077472928268578169816731680576399487824350527564622361607217314860871337179788040285208426065431278757512272995685159528060440721715981093833670664823759932886645552796780977875603765682556954108704681180603957954478017846888409969683921289243485517198183592031139877004084243046356207350888111310568374954091263188402871326610704063775924332204671123226269381720384146455993205881647007660285875039892638574321600436034780906572276528628100158891603999072967165371230052871058754203924774551406346477955018285311102532310063821129185947680933582080180631168334118191164259317693327056101505594332952574703572217492986990048182298982650778523732072467883078145366015186121230195056425357591185378547036848372127088844841382551408938645185945256767794599993051235037762817645254700812329613783635663110625524289767322549937799503140011415442015161482500272007862233936846782591944264189915771298497424072555448838890967872295337351142178576636023577734083279894314675978328854252313763639903367482563192856604664903446459872553742098244504246057558209234515824931781837022517770439031297614433423497158103940903798130546166172524755926442274280509971462506536144916300803832445634663725765320291850709207094923426610053286705173004721158288523453603730441095961259753809514862259531064757913226280391621882401438401344349030054323142922119217385026627903673434340446902122047534372572247870592392396593517316384202789806687697204138929382782801630927471438014662900389637805776412732083566435568876696966587736504701373170612360959646288148384544928318280838226866325703728233857727833079153407881473034260326028545398047959530295990561972512391570927374203123234566553829582970728598652533155580370155079822395118988071618266728490470223723574946746304043257625836845585196727040752026083443491309400810209589150230447774510570750155392740055036982763287940008561481890328757452659137679026608084547727113899198081543651248741992540030554542725133749503325908768607894120879410571256797337410790916776098161510013650283527494397571091431558158983305675461398858154333705513467307077531482983654465497291254591858839539021498166021598980763421317398423270283026944805448173841187001878804512311845737231627147383120097728374405953709195635502650224737978711089759032744912537324615655200054131909308977029283106002425740700325961128390975198856244662735423893027314181781801941117291122309871717799071294495662437678936461808962463705836118863459905684426529690785348623173266202742338297018193256644418504415107209008476297885850633864159882404281760440906376068849619487976309653593930708936892178192625809705645922695620025208093256511558309752396401526434649791357968390877303913345341296757595220682280100341345729722331686576702207143596839892963133619714804460160245882838602285794877514487881673757172670929649690048946105322158563752749581071992523597997071167467940807138143315878079061492784096396211178262393106731326307022419293064226562973310475842127125105862652861861853735751483817926695223496236954747133005458601930755423693493572962836225910538471147377632643352390573951641120004110370753785903028111396451984177206319369967444887188617165217195581908158200759946104492515046888177553960430610562725989478442097157885236411428889366641640701918791685932625966799363794534723532505435559686599635751643726729532711620843313590279283588900477490025623270980747178017741996392021730541602104684825239170128212752842111089736126435385341893669671528932839806903319241651590762326394307540604765089948372603033804456322847206545763012498786397917356632153892472275623655398733993608283426821078272336974997630054377223694894512292492177665683046283068935201806364230150229167509592345849460577491269171344398834860395946959085680015210193609436074497512400208130757087429546183451917131662203092110532672968027809096840723938276257200598233400906616511658254064132652081420379174501082840442174464014496616599823173462859911603011724245950424527664110138460301580370025735401341408686891466330526975534906579152854225134452557617654677844481610507738236690571632865621500753886365844747883489179380959021918085196973148595623910791665839487579593698423474367641268486790063848899245904709463870093774989879209525838113596208565449044174109483683799557413785168109621231174243326485237919515846857564831432373769851154417919231873508011110065592409272280354729930855350466762730646004161962440412117388086055608170582589816725626093494982088523770904136222311843607080155194712791832183156996548392736809353173237457055623477582925557069884347275121479388034112714950386477285799156807078821587563041590874876355047617533728851451354676652382977493540925020220263573784917080429092516827500843291523746994993583611815835708793532787675153107535226959629535517553176989021651172318988807452867719841344682439500725625766617835388375716480361952378642565056153173191965346978949341199021834553183118886416615042251226293993659733318691624812035893634331388830964988618276433242057296717070475258567132990265075590991793842437058028471651655405017740390714439620673654375235351877679119115483788362482585596117992200590248841200397426949300889713575870758888263748971545072633877085517541917471045090144684483897956936397709659019658343783046394608438626819326618241997253405657507573278375471415079962692221798319904056622187017713674466163065583288607647657238048100623456254183615597245710435516125843211187137230412587079276370353171605909684274410792655974655896017248531179786294313288187538567355364633629141950268540987987072298666792988696314406217070375371635877288116854882509012624256115272103101912475788181295219125141838985252920483904208013838272165594690728565981483390039705442445454312229026692604668707989660258505345993496229353779655576639746827326877903679745862793147700946987796298783951079063323238028606668237328290216092744009391539325290610448180342096766258498986270650002503373204168928478955234166538673478648243462538104867346469504889466854290086828193902047778318996292829330238101350848320939495128904985115842549632505870125864822758289210259900279228049733673978829814236497597601286061441078272395130347352125389846209971056400572992452922996871983067513168850089584327576299863390775109163321329925864078005532071721666014675062139859920605299132264560570758027303625356715314640284814912095926450442290965109575241772775382912780843888066783434792850707408362345061826189685657567618262740476381244061790003638913941255508399488246180814920922706598636648857934040119987960101770524406361102878651162047386705502253682329816336067292260423652106805811679794111967253842775540436845084817322905381415599592395404317044513522386220691212706887188971569435676467535375059222587477508495513908934292408280965324555363141902121635664497301842913783940527631036577919950129460335638474044175184350652812670614668757058766163060841285598847311068204069775203769961870057290455097140634917486961054375415767054157906871810379249374632056435751315101169089156723063572977224100180751958630144723065585280143649446905211076141996138370060137505712580912017713535493211171271263240650559157866979229148872664876455587662523403029346953421443012726894877243621113840336022105779867538856806987232104609798084828669017409750139318648972099296942585654789720002125645629508737553531775007262746158702829528546347935136995194752623330338956836719641119347816743065087622473591370281767206128297000704525693222621904991629070929009068923155952447476705362092467069665401417307852833798330275924390791617969701611478254659668770456166336286899617646802450767833523780561114605382007031428635653138899558841533444160349869237610644150043908207475681817791243139627938518369290424967343310666331896038323641492994948708727493236177572240410341976808672180755097158665033782662034712720265420180324069512124522219316182706819926066325150248972995157576019685380541280214975710696491631662311080008311331719916911834407746779036474420876210157581349387051079153663252266412269265860689283046215837014262824664361797811311513806127386783110735612916190807718891178125642210999146746246646393106649489901988781023008788698279771975474876152729553048788231357212145923262731481056435415144922118593941570887326905791975298857357279762690820793501988778315412209326968138906581836564117845435876032254268016869470242653578164680898585896551525726607912520157676199535224888385231727209964590704984816883877035060284034268487772380536720835153971691251868670609147862966929391991539761222747735742313286364009814339230337607866769555566422526343813030753826480433338032961875384124432367239389523121479863343975839923025809946356713731500616531242598586230834058322223396453045847264996666337932091668319128196965366590319351778227674016940626411694648035492683133809416352848790217046934443754538707541671050969398771325844465427102759407569911436822547161259745457360541540656288085363821171822187742971436944431567916679764795429687279001894497051898306040357987047230577607117011417888170043766973723428392253603060877276474914219284824762809274279162893736680477058953422692359111499138790980465289954847574900435141422005748639399912008078864016060869546621835077193952690304374727645331627813200854217486746289724145708090375791801390667324090607184579864624612813958954534396206718268505374370179997247216434064821937309583353709366937435895800386826692389696746482302221111830902657177146834990522735917504464558586264287787020343181920106055018032450722109232485656530705949497290299591099104094670992205527339452043876671503372914570459959365963139893489359713564837329207580227333774772006163430957481608395876271349470912578214885920427469720871557764247580337991230463001509727371731742406928070496899531739265099434384461796036200109701422549570064727440591134842422353539311369110475448666893374597971671490129455219549150764809257864539353305221281566276356740796038767701732046494635846591701032972140294219111620732194871243903967727334671179091598718627332071884103137106256710917320575967792253522188839763505000250440171507868517091740805330370541631275313245102707836890177758080730969826708495026989186258295259913172738753858644532541594242186709365141332815847895885059874625736168137898728160217481274547156563001945637366244218267145975446995012426707680727725658458207620820570404083438902427722642739973158773539627619256412253830315073959063427332237462459691062565596962726542431926858149779071054312460209028002476879916622337159892471388821756382098484594680852089212568246391071786920601744024591861354550966642651157782779550226340272495712018561215209707634543505493966118958935439961760150353785466298022595714833201371488050966826172164757226801994023807939449783141048977244510974331990561268095621353354865640364782987970961346242497284736388377012791990026369808800078621068742375087133858170155927311769336510597120921427491281707389881737419015388541936260861925228572414374238518780087176511248416928126269749429202309247601122378460646807381450605043530507892854755227809460195837163507096450030418014109218144285972422462253295217222639342563834407149788966199796218552852867413215821140540880633726180041871969626152359553722982097256670614205909802496509517008852379574397727497480546375824244614747668845048722679272102001178343721054437845244416547137760106482749209571122725679451610696031484256894396213185624318033769834932693846285425904949313051017658165958314214193471008502038046947839619119105732873508109634195562739748351498522769460506807663403099147515757847300503479483490415391460467598881889889210517167587439186522616455825540450836856121866925184299672441848360221427669168321896431566285603116540086822879308348692250966201221649673339826333501323122061674703135532230710785408045051425413191858748391098043136875374129586665093101843415728075658450018366717055204448778301226683511838263491632914041144690428604243215746020236162900629264160079311429372114054023238055544446467106539022592515240097086939073775720581154144564515736602266240055498848393099300470590763113135061153698247892301938569835750627109434494183902419017740407045177099466457924575663831839403475856098141211371546420515287659912591826015988549938695795130439390024499928946399833068686451805415465813055263650425438389735987456370862713234331874091383397821827622036858834907453633082895606912486967045909546322471660738105677240297422942798505395055267517504994481322033016334882381306405639095213710483920172661577276099570158570011650874829067522300889530712922702478028223107206885959304452985142589759367763250094723849821459779445195365519352314072387695997299628180907526435689005558828161029883043245446782487340619460900381930104263702039313785761562057096774448550568478096444841698178228105084488445504522451733261490613577162983598018389898130707882393922556229218200928613700640922622506235292164910210342609505017873456720860172757789446696303583183948668881413652346055305365045265875013671809642267613594950043405380404120971527816942599788603981738392262621792477711336549647341254439641018124030309625132600720029222038432318962521233493130150540659157573725771549012400863532572440606666823896329171307719786977317312103981793943848466036514951683735099667543502501607878259084480287515995474327554220332912460724978623273049484241402661988809753180137359558917574781835630492485566187870879952466091362456108174825253587657289452990173107004669150566715369403838241111172702019387043152354879739935842138096204092763054162312921816285834507557492499968833213537740674960754946310450662986697662253548106451735654938556658265185783089336530590221046833272615208358544233067629857213453842751506067274402082971289215071228644831405198552989772600638285164754413566135203578298263230412555374123294644001790093168480090451207476138760536253510093131794490981934265434090614887331382835920860394126147892289774881836498177984973540607040202871277658358696523460240263255604382106612643221277853314760853433178344332433038945742905077594987810191561633168953288187056141128718655348439965708348178112973305567470158822485704019068420585961949464070349289612141572211189136282492730742903725086360026306635917065110414519654416016034034998804771759556652540035332494776086329589207725801105162930573330168388015333062389622014596315255725480788843816273891594218555588962413809454520280799774826951309417118151518184140682510224222876112345753476194724929687022675837565030014296963189457918120312344948962067396051678931754294233846272277985952632225648505948312545238468099776815461377395242076739578048086934225148191962050102656141507794975015089856014170677297293744512840726237467063008864800775809179022723713974950612472047874457299144666238075073440869178208332421380602599511218284535715295296766613495710036696270293865069928030090755290602929717718920943576188450791763351673749791294271290149256667040881702005424223316452461399183519228243242437205828303704687733937953344827301677034663213772936547635263488427606955834095237815072400826192708633953741931985445855521846576495142739841323589743212928546535079720459212588276203385024017319531364637471060631037678573355104290777883859206705208457686930771243039634001942881818288270873908439823299434614714375733603073822231474102674387529769627504067904291350602867496541134830928246348128378111013780607401812040745454757165897158331387109907061426097396465717511262199248700871852843319236199556782474867879148756413179003220037891972708599631322972924914723746080021325480758177450477033475525299997827985299800770669549566340105289261271790369153741438979120241457389933118934281798777097503249871822909293857230013523662691892474656684172644180886442496543558028080535049081492369521651216609885376634669935613907858410686331135710842901412984844889573767843921768421412444769744122232321528815021498863837292520521705072580564393185156252964341998566705695467724694389248824661332414220856984820468869922824257002641245331778690577362470678574479408319731219306472827717656119529613947026810695999153981214462121846008880182084182464947195039346567430094150558215841908988793644143049138671882752272496561748918070320538948801069360837302805631296170616129417960093106473175275346488491064972864703549928388182034852926320050920413384195183990477377238649603749235275354728615345396151216205858911892472674085177385400505784318228677072715421514958933668718857081100034124849774228980100898310669082815126205987526706800338809763313558059620979524553098347732132909973546018909806197028428766349018628355812679888326971019650273433058117703513313901081725622982630262693409028335598322701622948583104816925099673728916131163907199474526094721186483071825747419241186865515925789184956903377628368036942118694635686426632923774976287351381128452462463864073451751738093680076189213842613772915085386171901826492509605756190805901842250403853766340921344736423405974392390996664068943023046267225850073950742825843607881830636064138497372979395238393071678341810664385512236458077797931788672847198976736015233815051609450374409518173081205160126956437382843470859358060314450544831596940885276896753089849753001627358062323062573633168539122036258728833867523803107474932311255787464571218618033872250982953090432397156214021817996309293540676456457872446679053024039634941048113244417949625304015553804159144771922445596485669141997163773397002855747999496058711175518368877304267663026580198761182975569953251780738062859220263433805482836639935651903963819155902706311455753669726048861022949001130435865700249098234574305232836413851191685537637682668720235425873920456859952221543327414444944791306106501362942469017712477564274608343062396914517098808965536873604500336893512111445540418069054374914610428163292418345974169355075795379243947407449589887733560487299200242707840099541726695103185279246217816530414806928828432862185277081780151185921534690244676469460251403071104028962637882797974293944399023938527554555970705100490974944410269282686289173781435849939667360001920540073186963646816530949499626215653953306770480355648080594021945403991740374539999591233831065224543287896518090565483663645143665249313348235564646671009903124338602439152569678292507929526628508854033469345505582386334702813336014905977857721117239760148432259622844808011317491406627275922489180452088449267225306056506606479806584997975332938834151220457196943226875294198177792193429740755439234161609671294780513285382064085522418789047833167378845686938742000561480285511666345138068721296673342071723669474707246455345884009384700430333546172124324850305684427535105461182819531121622280419845572552501829973039260945758460583123240292606813955392410198514181525236284441220140592640417213238177520055440622085418966685417946035315878697605812092672183848457863078408968088139322587392925859576647720852340965363913967820331827156377059227442541983551091381999516169655788955524565981062805756219806711771866501896879586162969417327285845133188088108263949174804106281358968553659954739852185747630674361838697255881336895815651330108924256884384465938564875589728581866212966062400334378994050510191696586260627204865165652357854636515562665503583412661443845698975893184561070968731990117188500773653522300173676559181795692239483877721041984677898899845505802161333881845574672520646069583167319638278177464142414367140675967324418708758904683000676002342116631163964853039099475612881243264206075572229091932845393229013425325691082035044845867206953468365486724657705901507253164236406673394694449061268693367574622444658509714915375411674928977101529033342052230841560016775324300896817128508074763720955928837808452108041951114847725034181851463298235095842425318792810914984477629436425657515509771511602673984116755848443447489862730174250035937557357891432446135193794054054979925555691652334308865634421572684941716998645466668268911315408148217884908565521182324139721906047701730297118424787988838667224500624311365201323247684804438454458795772754462210385498415883225171545332899034324690059174250397605677082589968546442327762936385745816297057056302061532462794112366224156315707410688243226289325721070081467441860888653832455298417754573373949863990166617147862335207958515839201887666645224509392552225957936314981879567240927881196877988738088621502530512770570950384920655750208528191705317728894109105401673578512376983998662023566810098525361926765089411983976334272110248817747844141212245861770382351118160785864579665553475153968942852925110061631615111483348952839034022232487522071062374267641157942255572637490881538914765723538396391363524889629464144277681614432648160789790300636504265559860650219850593013361330965601850201721794199194026706939917039958365917210182922085639321192798802501342564888580330254944280350097677762430430706990526298234316217280850993264469570750483724949036392841071009711093662397648627317190574129169720196083331691427964934680876376106280431119298886832493487599914053425251313389736176053598270768227065876583146882353401132187992430275876481860388122077613695381441391334343672644264610816695706700926769120748745232127345091343595550622539663363306820391149097124613063386439532855320090853846725442083870158739075533185559050612570819782061937559727860638634843829662450901886474059222416653123552741706972441039614167484408357202903779244106528939909887160185045596647953537063862565925722152633522644474350658105692908568355335155065367220258312911295222755709588708902377434893202331674528472077661499986310202952703333826971153738794807406778233302646185116268294833983756781443057839348074206192123505820315254769905457743699921830212858879483413671419068703690409924474053485716941957100097615794990135323121497724423672331309527572319871610418388227019386840573964411175917745929414431351212201503482461898973367216091458518972046048243276303720456772464718934157192705424050816269760842662570404727851989862866750904987626532140654408678696397806968639233975172208741470008525607256308578935794760222009828312689642563643047467979185394373059039352486268348586167666977573677348809452556825312846838244343149204259702055512308519958011847165738738471822842527235863568530361834266781879416977926642513847504527430576796481974021773596719985260335224244962905598480047980882680306089081488171064423040799440368629400699598245578358267326432040780903742117765542986216896883264981301857201941821749397655907385573715026358456977994811079421726058798499522943002535380243844516670645170363263892736232417391445504733989502851748387133845300295283133499347476091328988363811416699584266070050137942852905653479781800464594725291691551268734690353322603271948346777462068096680427677554822016520293271206501738066060809017859329237433704286383342949089220966380193726919590614080750752246630897896180346133133846835908008147833651401101699831242125918030601830012598424744655820539855819887573221141637534367209872401868571935859712868972006402318768403718035362065522315951324667361770215496062154112805680518898755817795147376594073641724336134775855777342630034537131372816167551097146084641729397419393177000318765584100213041095544690522656596949604198442047609536183659491056054466692742372143791561709343345514642093064322041805336030335047433167171928438793640544015832916084817401616867294583988438749790025078627435000942185291472005794979169384048010775613512402340636571714721420173006493420567985078551937989115091814901709316003633329737734908830468656942975818109573837941120603700554062353386542457027074843642593515787391355578515082685444313875904329542035818540394257743852174657107583563562114248502948633646580769980537059276987124380310219042509595915218578211155642719455308042355881671594299324020612873107110869624601793140817814963737517312745711981422499675190971664346245578816434323026221637270873237701809802478540710211490245376746265804740475889530491181761281487752381282786373934486319362246864302256906959488468220940242096672403965927268928802359487723705150432700189043308249112493172796658287669342045130126162311059179857474500291128004837809389566206597079017794307203518560997426098558067788176859106433122550655317253671137994568845346019798074558686667880758727076046637074574285218844666447252429689534438826562179272762675900668322606622044792097418956518021901699334631193514138498171648908715327159148909704161791553885874763734377724832997776570091350254634133316841711788451120033076502811172955297596016035198369038929391547281083551064110479305404925605193883639926300519173339719772655591217970259609457289975916349791180009732942490679730368642542244359368866775586618668274621597656446332221789941110743583154590396165265511406374441906099848726938334848814672533911790871660273634816659500739777152304462402301096979732334405750270667148216810538616861337128665377126541107131755987375134171655696043900945479501099462743263486232229903084710847226223027560619268413605614161028298887012740169632095533256650137477669038911827573746332166594665727306557522403227858087723643126778942629615211678847748125956437845784346996625655634369679723355271455923045343621090017297274807421634278927098355161244203669440731063701367633199887838032922101088199968604714125411022946197657697882662543484867699967350168513420192703971562894832191299050337872954646624115077646968083764605931454258226255364336128424453178326356090250091061744371437154886232775682742020390732868303772584464869441597775513512936492100229695844880829139543957076179612106529688293820088113336289621470503594282409572177208542394037186864974668486836285309178050888127814207040859274236914305637316740268909348101417317963923957613869380517076254252109848750843374459276336157636600217444583314108322126172003714796566778399366068106037080955325184645159159032519200836306377845415166458662937762612363642721849063468969494357896809536327012985074138611501995713200047594474626880646948390800175050325205770505838677520587084870455122755024021813567848227933796182906478841226082195360106838893208674032675936443248351261182235178220581211179628261798722658605639052549783035557705954173033885880955186567694121171311413481254312082517979542035740531079564813319337132497127943179664246715190418285229753115890317465847990348501582094247518131680524836257744502538147462231681753842509811481046748991451406122419339309462436957203109092496746720914007446769404885925058500695233105928515415434429649762511740167679409396870682504978830703980261019563541800872280088336684261677939831363591247241509337932700459245256085017779107414920942611336032087058194472943189313215081101359298223393966651816021026493700076967135542358668837072104626645834482618422194646387563639379561546647773307191917214736275670748236287190753040102112888108166443161148511920096474827073651962081618878665056211926629383425373187778357470347576885206775673478337512927261859838430278252773590772207635482628248832633329156874835566574946084992915681078516504042259460889286599673758499725853458994516187618754006599929524867042678036600377708144270146838758963002464454613042975692081572403734168596113407276279545718628400456016856597391214224704148533307651754480495372133875689914307650141857081238741293195256792923643527815728257222878956839101751428652447423920162322983889641885233582034197599434986707803026909724482411022004023731553183023461670498203062552647990972560519798122444131424962348644593859900579754031985535077876573369331480255803489395146310272679615857719116596980892118662499982708198731437057189292976002394612360718480941417746858324250341067027363229365925593970975826787864321720964455518506298753213434339869357279266993302037506995681190233282102235301547376212469112135404315662636244295109853896191085955422073165791201177093761149540210992158422629140360996901979783902732329942485754491014694247530653317425713472039814124075175799656624043299598091864732902277620127083010861719345434761616836503675675639316769913537196144797373215526793172451755537977354301303703646286775407708057395613138372098589828103188842053012954484829010550793719978679735223022733952390864160380388620162347329294072494911340271608663247235063300587203034840391146150689736705892361605029337136562340422424545575355701846727345185932085991324171686246550690578708790334901052664850138074666450415273481651707266151805503602517752300860574224938425742306190605164110481759755977258018527538345565351948806004062409242549266165968443788099670763685429006002716696201901464260119981949909502572857141940080277590206953084149208265986390579295915603522975106980912216461822515568498175383638145416926731104230435824189948102345935538888075563794558472748945427111374854847589383874110391759455162550561899833512456630612093465795534869687862626486325390407924362816503601236020345611319214357710642569851763429170543184535441227194274371529435259063198288878215348771248837020179810295303371614351358206135540845280373969647164599186996195727095818131388165497502820396314527938794401250421764193997536987330204226622792137825006236912424782732768974588091786857445989683557103836154260531184120057497021329492021290819303487227117445594873364503812569034271802460910803010419291324089222724238823304330159425108940326793246382402395250897570644980939958809497613255636615823036052099280533181044326013625398541820358695373961737547977126580608458986880220606909563182822621921682811044973540072046516036513439765044962579715712151146682832545505041219502672246519225233484898813058878188850535505710953063833300123361719931419899081273898508393395313334688812504034272044952179078046502226249024971628966186269148938270452507839885235389064051134227198999218053258437432462518612651165698528596641488040331831279610289943205589822366152333208572833410074676890388483994942042236036925398017652123266472743479015272239653557622676544909070485345536978844624490348001230676982432221456833504035015191842414082223054019014322408491589347345694866882758739584639708527972830740569276561513335579149876168714560875840895640713411473290457409615572809133588377070076542269886045669832018748291598591595742135568591868996697086695902867318524047189150642070734564381140051128091691812163406219679618829814962332005024760259629962451390150589202022883187033646957215143380445383288787605702706613506152897088230839262222238836072743517350927345427512558757572596838123179684588896889392183650948295712539156977710132557142083632787638503239948886546756972006325589653849145383118298305098680621718596207141266696148426408778622786750523856938780785057328073274884758653947397097709802837132195464969792673985347803577457450430109364229978218216085934439646160197125644345328551272508835554917786500557785086463190797649992090608222356435419221083320302666255252666813349799481641481931592759072053398342347342806361870594792381332550173128470366943712895043189848919517118467738906605362630082010764631206470335055517577339264432518266498770461473175866176737935581849962426355939569485313006698194489228858687311207295719564542542281810481851277042799760222747134691968692377175053731471749272597905815434578962593641090254262092066335709489144094000521015786782933232838036174313341829549700809205023829576889040764375229802800899603974489681552254111238999325948020016491862121118867967936118805804729924211379647162326402288747683462921684425480209123504565100893289670753378856588974394661096999629016802229013312955267351051660019507819278967670297826936543799030141670512730024115788215451001817225117558501836367895628076298225626247933098964320245828792650559882865454956142765397014756896155320280765619105000750433731958630785309188619277314923319686379157420194594893322617496511599608688413688675347481502384583965694750745168668808676398338910561576190674149658128633368389439945581148747740900354665758884487030601609216650421104871678535271056442598449113161669849541829178419325554259852218140884737256609928881665095632595285170601979578306547074590453179366829420239460334338569513813294206459439545316874280513304673357751688156608093684854983828266882735908144883423003165875625858387431780701646346020510299081363793103309434157744641374073440930645207918666671264177459323540461253911038402311607121647405441402045987733982758669261939284121882695882393696503010521086813822432759101003424982064957295260614803740638001090608125105144221900086084438071910426355976485638959547225480911922826710601548959161693064880375066769247814592238889703540127061786948114290591552130543317440226616246693597048323724553596156090758192574184640680707895583265726646479965710836163804468440315843888678960214025484475769028635270577854799931730920659427782933549878769075634705478097745956034598973814649815801999810431778810970784067742412717054214104170722100744810257998051150447874006994452340398016517403482343686794845686819205523759898659644075801547918071024428395269056758926983061360734643944504682106185241924940143720232489105929959032726279770579546744933362584000902076991246794588506001017072616047093396173521229685371239127478660109480104561922089293507449316365538979860197563717776134567164034388257641296700476583957160437612881942927222613541245782760876190651006504365625507792077996926841103797926196896690513603655334567022577777046242907802024313822404901807399787337300776577417851406127331896295908411753387508029383890378517148367685280340741350517280622667278413045427109758451402984933763157603670757893530832248109788738333026350513145703637094304213771793003292514024943903444827913337462439665183151350340014177956107160460161338637813806739259111208074386255227128251823356505628935370065543989760198785929471912701183848817714029885009993314435518436386675870191419851056736589840280228853948024498491527149104087260270240471203237689503485864837482395319416364224304628986945765929056890448777534253203015569270283569996700624199744713992887386529017287639150546144206758726761501310522766125255806421318813270964571257592480081212665004822223792161360093451046531462099593053756636825333122178313932340026677350284463830428599921312004316985160234301046320560712578089413090614975425129973659067338880556150024268974187335780790433324963797608480774726831042495265295066982055625287360257024201228652973531792919363910139777086041797150232098142880217405881284917624197464643672069358304523309226002949520082454193590005669033178130111456022707117796679606088562881595399847294714808532303817431522681142078678738177465159416129748337331779657943252304626887643359925047367992674907547054139840420713353955752629931958554979844090917273658394302951349453194507316211455581437381750479105229810973654209002582178977846844203091215813244480695777662337852459360699297405752685275954013503332071045236679543310029273654786597343820282395670160468086333582724994879853417062722821601185245660516478429198966134063002186443105920993719673904716584930906464468841630288463876441775984053392321164763617921296156366856911762544853615965600569177383236322597475516171817051361172538400288092038997388131905857889424897718435592630084791553509734708777037054433038026320545121587236968609737545817031422001137330812516873864284649308165404885585267459129319409606478908463024119819904753087531467496558771772661964207870370823790531191700660184461710156068456625186839394242481943968744745832888749471818713768733016991385131932879793107026443592439715314205074487966726693896539839978295686985286904101797613763480830668335285883841493176013017948868158229379632316222851422452857151551463713101877946972078660344634747988821213587787146480782705233479804862515799049836133449966418757863329251463562597916905152718007004477870507807664143130450611728314057045483633423048523278076684758578110812827464538665285104645892771700267052712618748009078692376324140203003826616354309333172506509245508578410102178931348222402864771743599263726522645038937846049639592677049444928827159256720177667790756757626629931287736986350728174695811397035600562778908740312145546000385575270861581490708168063136395078169479329330075557117514413376821947057489336461806069409292494620546464068555930439873575459605199033038655006296167977263076930822834373725775919463172996341237162334271520831458798467017746686039627611516577335305162748655543794804335335543879188830330310319602654198942691646263164233845150892788495892973892064816553638047298000015240390069686393155498391711445878454931518494141370646858963063076465703265288655568072033447517708764722746038239260011510935940359017893684555334569530599792752887160985708558217238184014083157554093902130205932109696016456500700917119535002344143641222673698461947372246053298239647438336323420525723005053020121991829149174878590752465381846585747518304594357254422992085030545748997986971392762905062756318178381882943871265004755415736998306024271570570369898552617948890092901577139247651366051386213445032984330528678238586203321297557003804377584420630633860362732447066372183689230932193292599366122077892272995889673827266779184946304833823556663399203636376476883923374752594745259655475851381961325546539190824944953879524424984755446515797193996439979063914057707038945358894089569545545957620269883483283774914753055630600861711936147439623253158290730639124299935887196559741009206412971407605849387820263252931572070663677677372095607068358792976876282396308819292438434986616667506980012877686825888916050966407669662882675180747994497563527358023391181732547978323659801517080521215103645297132396268828634562289799303656628946199730206660049827925748589414183177845095688400617386605135112653214103787448894980316783578078640877063656467515235563402874355663212772952441524645600556571936942789951958337344702953966467814050919929124747297706693122501648068893207853253926503096098848118442013529053860671617223267655309441740915497597035879147672014381206389084026470361189891738934745984892825177378595960078550179644787134377637802172772894547521970187176731717631946126272639434247338248635296218195479825277032994303608065540297205915656147535375975478451859192060043514638710176411342031334313777627362686946699680336802638090281930168817967551908116750937153276758999909856460619783213118189668139656186744478187402157760663980267667572282731430445309489991087451251942426220688149278635416412733400726609952533170586447680793290607407705300259094131744210320061119488725886237897995424134092543788688948224828745275418251890786235810936822792071211061662077848851602741381132367397729666723176614272398325828035325059082720146696432311522948947751158640123606025469859813878199660545362988471016250259809942357247253719027994604601204154928644343031053349781462782285160127336035492188011062485083949855576402985780989730178881595305297839600055192360065519387595132038921439750975666471331103587679920035041739687294824480562436101873264473564177344758461925682210686270957231038977097984083492996394091816819345627874174888969387248464889311051489781766049206575880862575683824610146804711034642605831882757082858552565618028726140832260099930837817922394005900813151472323966167491736146362450827518646220574873460922459134474999193875461134680572039675042995433794158292328341004545287551781107131109646826478664607472867578261635863856964443147159415930506432980554927045581219644748863339420166504132393088966532934660608684694699407680081546906708627714635112994854624104271691166761699568433263511955271285600811969055488327511982756546389083857123504165175715048678341722445451810598543030116191023464507319176355749141758704855270760208996340876989488397177201288304984207474906936751780617681657454332567264782834959310751732878440084104585080731942497477188156723664985987825841736676936833818137987011296879701260012774557081165946767123415382697668709424193397905184107338000019959813995625726890517240856987688466257086473597498469979573662352695642433973319598335244963282139066506625182825102867519413497808169975580788322242652020979899763514659061305743697611804646231539458959627542973265546391615293175278267353666349679777337829069891669064124501017367273383673098059714636989728968045278949508351826236545448670446990333532277912264196925475678953287300685123374475957670571096841663404777638172692902124787203025962405481978122715369036941195514519060383862132187533341001668478388165122898941216664442360060423223944671628536619416767718298168215715091153575955624194178704949124716410256976899860918462900623922868223753564834560197785641185706854605765483939902896058999432897198405821105437736030084555931235605578213103692093120782854329408800346805397924710347202869689767476806599797463880766547633055233439958661630430185380448222265578601747169575135701473314420208464302805062403039167470574376325603285454780272447287718804885663415877359301274971625250729157874296752719520893189862650024200016140726430197227996998314654081511081984762226491243277617624805453709119833056643479920995075786426536315382590763877293216101324401471989076514408335028712308914106634856755437938974299154119333588501637933807569947661157478821649399964398021825133390838943034271409224183579661121665863637102608103779591489941636157742982346732774804709721894566272280285650023245786369685930496367635756089291695535841367737907697849918996100830761841211968178475546462110238627297554440494425648812535979225247107800122390150077061029125771354711865525274788995659609093447372218622242902010085377095718771322773099627620601292839205607181659286841457052001308376047001225449695735052065506946588025941777398986242624961433641669591099189772854291480105916510239747581338440579179510710858508320748205900928241560061567454334745506273259363146676112790454843304795868468981774283035747314368018859575926021468040959151690152929556837705300418600340899093035501128253859837232975081122416940565253468566871965759815520301326293847838032808492792381391907973375143810728898142093722928900967412137034738164459200871929628090251141595909598415042489043458848757089137705967281634203702721988675530973026501728549614789465753426693318635229132217167838359409400985374285344335730593683341183219664836330452461393251179147341666523824874845700084521495991974680544013007522482218455160729944083589056243570545803785875397691400781368823180605671615633243945239925536195531993356645794026047053234160652560785013853192553802569644183908100309370945761226223911164181389008188017728341093188676087281345148025228628007463908092928718275100333570319014750246433597193371946181756558827126846767336156439304584326725394047296230375654157231124210527366600238652940293042393716975948355039276479143298269311328039356348972251089532134479910209344312606806669131442425967949530701859806530193913145604730005236521839294292662689045260506173722111706340618988332574546282201083403498349411093776067945282659678850282687342785742251139013158129043712825444468310598020331295740793015574472350017434116285736129984095192897345360113011437038055116718547829891744076323233939327040697067948139624355563035129927091328471743371652747403219079998692543392189250446940203622971439870674767837568310269312296433476807734895297428165190265096545785960476547345677963541783960234508563221007334794186072603426109982450431597580924478670772370984959403093570279953920613692087089563473770790616517342989476397243104453675564473538797945880976945134098715822328048585655767313427543020018054972734010873596624409986236582230777744993410701699337504984517836811101510392525780631649133383118683669325035790426224198593859051754927485638272543777066188018990822026897059497298035775325911224382182757062978514990493833956622248526796451927923101963289052416808395814752220170230563418924470280822613194611580635472266153738424080122938032778175387972795911975772982102721931099932633696131843585042902379180843307516846071161759422740584527329056930695126702134092351114329280829050937552773696317501964260438365245018980256777887352035497740095443309848141282889017349839514010430738817299538333191299148747425956165268508961596264870794614260175130533698936537828806203325054378314268415480874190542785719421973205791505103897242303485580505031567661854191234727476095190362448680896746523272031076456916913822345109596820573697635210447918516421635728818683125343812296643828308805370950612182003479111250536204088695653976275760927292363957908600951742321891007216010200529433586698126586145768417662724987378964148335755626411103445581306559882751607853853937569207951808218906708357609978522992482281405779700342800659028887960248598358106740807013260803458753693163110992493555891077511346298906254922309214006354813851162381705778907810317063873266274773453951284552280858917517212246220520771805015593562426597880359374230554223286509547815766322916554033052925035342751837412309997048951147164598613782861660037644155371272228262908578800077483794871528112926776793653561376380940888910845664949268052735470747137331593207461515526078119134664971646470191537225675307377924410224571442890484173251268011753149141797813809496318137421233726060412746224923502467530834903305866568366517619566888187306158256695880082794127977837912143775381059676295776899164792579231437190692788298977457732918203040957200068511965084338264076473521640423682960444931514027404558336140667924955951792879390060677763009860274180882157920508226649378313094926872844858152003486746932652767234394337502132332988186990525917447658577427780325614425542111366992903783584606783881031126542754197763850444602855029280348748009456845869170221404983743386350051065632259279667002028525320618742909465004290457677261079615943498449446357662856987657222547756099754938348297859277234475909082051445909379330844767551432548389570058086299775193612525845890397125808527221937683604211583409114746253769644030262180672723433090138905427455679533637524475428293141704604942293972501177669090644192557557541505480758558936053901174991897534119633701253005651693589834980141247722964585756306593318347092287393455770827069253994527834848642611551790060979820396412273537767525037726209396372380537054325378408569157058375504417663993430442540076052712428727256692802760051294319962369048184410064312653920139872136194949183614687727165119718834683184784659669901507585180022774616910898926889784771727228754262609436855876545430737598474250362137042949200353404213531440133227584313026373697708642491574539297478343573869985495275213664698176446138988797089261696540090673048295280056125083209254461867144224720151374645740443499063614618585912356738237264734901112112919435210826707281008700129938227852415893472324018816552723175737406383218735560707663980991058067570990001698063324605035010747543124328365453647243061967732292670942401768000438000893580821635982443590139545793879059168837232416354633763241874746402507113006950179721032680332970093989785728213591184280177298763105392794733643956388338648911841779158037705323642282753957889585375941013934787601988690229064779467000092458336559805672291155372013441000768557835925320075819535244015140821763619212795916940932943886821709179769847160506685516678560077140809017565225759782994073110269613539319851365597079433677481501152898635282518192237708827566354225298671862448711307158708451034174380117190212187979974671968519020574163698385607497646321331717034233403173212958179896186917624220373965439750922990270238468429746519744969155147203238487485762144523002080194898501631926818271780275815312646110977011780301228217482791054841110198509006848852399471237924613839471062937650857119924253468165399553379697067145789453599790289954242803200813754008571530688730132222044278883501530239959823200132677665521032790672507536108600572503660423116642207191484922565495611085094019274557314806370610687429605117530318311855342661727412839749989899404630544424892360543808458632843234627320305271375396129282253399660303321036448368890122966158832681443251408104105102683597496680757179757686337012346855877505249302936477218246230761361047630503997175485722916630828284344497860993266591822429388675148055270797338542094761626301147266458309467144865419294708417915884825710077200153087961873395257407452449808636787057128703091909022993587137501127725458777847080925458344619328084579507844801773579862497041094511539415565043050612509188627496447588526388322875501358770535711091280263859452795432790579038098520457501405538959354480781861400750522514984326191375627723664624169993745146466535932923116479041594335505110170999731615641691239721868708172343384211556869321185075378775533675672881979954588910169831405146543869104658828722173485285043912727901178446921701332429618335136748809927081438106714574692409833777509194959820328758286695626191498582477444047046643351605717099058631458113276138688205867071482257038707421154945052315592318279061387692597557637358268592010079925953581006095201945136852646616765489267406891016375283613496887791355839209741809411838033611703937032066889621468165313190957137570909113004645959077067802468134590155701483294428350110984923088895543106535836786963376348597593891653116257569709860132994291651368550556550252734130122069737486815970158270801524559328543255649081112077935506333148605666740058016629954967216076056264133089867800850394369670237156806574957837735701650804371564461805581307278440815668167769973375990866547930028394599001157866896958826077091820495956998209911900506973235913220238647309798601641205729291785780124330631067180327753680510892171008177270501084547345372465740946089079640384575967202361615079913621089092109219619245141168282703164112901232484842815092270090594547166518020045164019084098198484103472400239274103626344181280664274077370092280719061401054413401852351985307648039772688358722627023022398768193786558773573936615194688094592606589888704321870543564813854568561365804725818374155876174582753237916225146784117625822199148794549663300960534439212188436535847068639332334538780381061617567991797881592778483068649575518418901577602725004825749033691802402458312189574097359500257538548685590893274976602356586296692333237259443788666833544858616296802128850117834888228878001963384334214581544906786036133995715174901266661516717138135391977441227789014593937022547633411972573879615945707213604368785654096741156909227204319474107165646446795926162707906131868253276421229612319884579279981391278927188903010910480244153636261639563364818893310435625562466235867729788246131826479411582545069333340771756227437695297703996391656751238115932859830378517512836429473668244653529306143353611465966984285318475935922084908895755978674962110306542721768166052096848492522607132731521423345621394595458418274893750748701290403777097444442145777693146550268308623797613634547720328171660786884519344909925126186482843848275176163293825713872163417061225566000794790386754363610688959305166648146449098807457893944431898830175964461030957713545853299500318310809415867161829848388105922696024088588825507103547784412666825629484031927833244833744444788475503774781708132721773297812454979908932887517652435121941953554425170676064392633856710361395329697706406525777597227303442574345819369155192365292222135684668795129075195799641712374163470137327825733372252852380482384637484520043068568007005073291037837493049318695175040574911907831774069556690834199645527464773780911422947645722641051967365225294835137188588015025103358065113890091855877956954397582268080036215167265383333866107035505840903964236750274368184762359568255335636701574587250485866001810678851453309382361835529548883022704626785031229478994894845141065537748154080793094126164001798143936252381209357977471140409511681342629144444851188106921341850599614239176331453709152500055378775759871211473125788770742507846713566733976876134422053408479884818428485573235940153697258407707880593732316757486024535342351903625761242614894901305062385414377613279650379332476127361918727754657420995475685483336579104872102058675124810354043809371637185014402302351136194774590868788489128701247094816835888915328918747790539398128881270521788864208863278439731612702929964622101174731808241109242568692089165735044139417161526338490283574010971944509152163336194566958657572727331235886083990791978023948732572658070451726517347368124434247866538081267907709027657554034682880194114922188345510232349874960834417594186359498390508133374902197343926817335431151277124674404901539425587280876459323690190522426212500781143753201110600001762401883878030795113857595913552142605265787945490512068637824100630515034154616292391984391543496039893830289417647848059182675803143562166859861705191528931598847765186402049927756023853531777495539471606255465218212094228418087908088516310265121186881068337502349895525698970584289231045592033199190247714277809076872530508990489414006753660889179031877447362398866923244034839272133025338187387935641744589444561874714660495747770025689914471127844927094397354612824586152752933343523447334093905695286901218236521405355754398615911026189118478682399495920151656777300827899387857758835892489765310292510610636524359886894641616677100648413083343985242106655895551218440636964972918189723647473761032812871828819576725447357223436177353749435259659000524760396262538519453072684818997059742400306206428125823523339178534661206736657789940961718107184467865272622667847279497295961031113389168425545944285638100774485122760131266840626401965766698088502298291700490437655825894201148593102932387266776552026784261693460224693274315883391828925130942756014912429246217211021859507436303558139377420661708718985012241894517509077868552674065169471327283846504370313472755443596417644648523522398305473211901276321342092258615712403011876386084204970262436249872547524366864614903162260602516254349001790635444778573083550467705786997823692289315898782987570479149088521566809561243238567878507918300101500427682061923748929838891849325595409340523582499867680445183571621250277592738064674953366811314432661540128118725246154390391508832722140068008990036944961589495394239007206673395180376288986230527624157094404296579476006326044212806654608038695288970417447039113499369928128461177430481572191559765596164918140046762039213276505049241645816497062841658099916132329619483801444275701097649171571072265964699913018240931743136807497987758759487262302791812443277820013193212002082373284957766762513484952514371461434620998765108292685677585015919507344780653204248582584423424191645896792288860173070164124293886319637960583728650161556200532191861939724448374677090880681306277489423004776718991549493767287164378675179176110653951301165644383611474459732560902267623168908505212814493254889468760805380252240177938511224561799505249945125033767749579436875344082015582456545327818035288808761059974241916040206543523394674979348746236535573674352831084876917111688525158001274104767367100629835412949208147000754681267652084775806318529585006323305289143066598091436855598602626816228002520716921099814154250390903045823772530396186516293953483426357483465898769792011120633901530967656293998406232479850140749381272131465726622974224592977357679764954270599945320728900256350531062795878831591764139010097019955296346582332201927177249156441175600080206441626608834438360403218501315832711478359703296763884030510080373867592426570707643240486584999121337078020705588109432077450975507387243884445876259436949572924535353938203577656472663628302888077652522581380431081421126744116650849236275491822192781414420735902240851601011852415252113296053989155574506873672399455816781421987648641049961533770488872016051004138260727176553110912715993928724507787279063545796033252856886326558908359370266788260984351314493260874806185640599402218240327213952831804227396328834299355816064808887537935217093000453514485806881276790728455463388318001594249435763860799071042238582954684446812742129494717180838774677997069738261298780869626296393394902837215529111137483149889533980827801485095140664662854922187032575609838888585404152308533350445279446506403706054025013558429469740800298878584742372683187108687731401460071378836834888337822392712423353351063349568566665236033983328071678703290789376683097561618148396069860742996919702664457833942217268027556733596707695136883384687612742897949332004758342614159959160242239435474679992237858375331137016931094754441102432636061798621772704097220320831906357124046841853078745358184551745630921029204736948153910570828229649461523097615354029821373455473928024984469159190592752396475992512036921671943573812483689169851484044848000261831337460309828272549287754128564126381702320838232290558595505119672695228664233668768893068332336894375371078748737294831288630352740537873563479018720427234915504893175146894198660328096202384676866409128105975573293809555393282704307815711626958747904025244055023987037524659993708099814741151837050494947945251645604419654288306792670427597061278770187276902193417492880422217762362503365859211527118724107366986131157065062371066445721870855073675510728693190462500307699705662380350428104868636543257134808665199636241501736255353588722878444283582472330599449781202126732702184523426971870586457925027487859926891583772408886510719417060355031194105220594085697653508716540210688339513344096320255940624242241760416072876983473346382156856973538181916066542739859902929372288279331276283906432734186203661888440954921320742952791383599850844729647638409149975254385310787211006844715132203025865741430211449378700642710232653010738195137107921474383926991167078970298983111394579940174616210413598799672152096167247166963375728205719664956606853570503218310724648723373074088764940517076707646344485511383799637656200206968232555371262114389503430965237804626241469689887349118399694950975140304948212035544634427641326012622163241095173769520911480894734221521462951140804634937253470891622657728716380240177025350279040983074317271586662662461041055844753535559322944118072533510157058520077680811197597173840139923758980947688802754707025670633285691398042260022427781729309497962873726870037874159473382126259684156049091290147048943253722812738133395351457514609769744039874184658230274538636255400893009581796412479833746403185414106006507324614285959098220759132536529752364053388972265146820847326995543763378155850954729799191436133763686306405073964030201055141252550595469630472928150697904423046343151508860288920322494659537713383199633554940390244417862464701403585659327105601926549654609776483916223895814980212222114042078818856357242444513218677089023063652029946895635738396674085239175147400490748053695694338115991015514660690229333933782985008977103941866598500189785123152546478047472007282905038797498859055924422604055332373119670016440439388460580596846591826590469653288943839612040773726615180636907701137276508771907798697174011477710028260085471602032693298910970452278566046584848325187045334483695046147452764343862808653394086682192736437514907961997408157830104846615188072117209081480433118943052308691875290106953819527529395239951472395532437288092922457496521766666271912865124662123472560891003774438360615731279681338957077591956849602476729463265026028955149109022344543138394338051925666595335230347281256678523413785680336122181709872008839799646965209351419096183014223532619872122924686319644180314367420850833301887312507208359203105550862985268225730463364450446011491918839363390002084553333318131030460799006702821833567724925261334695139449844496894355123464111816135558351582615074622336421922678035065995705617207258037381638200321314386194465150433869914666689172478113425932588701835002899894240122304206824385748118123554791076088232205692625050042056351308320935102891119962022207812592765013940752684940369231617594299041913653133186936500686873827563749394578290893176443405914111837527024969297828802148457383296743693209966035353615663824420737587648213946807406273564542942323129187872722794418481045254879111106016733713816792632386063295707418507744719363926100999359241409450163401951780144152089286441958298543132049864251723902966144353972354496905601096647493326816949612852402675303569449961763252431217168651995636714654526324059678434773984333236403398281465529423744271115187814330555758033861215980391444579905152865273266806998368835759092146464062886907727244027859794522655221367948066510071050511907107999922010611465860644778100854598715957256762821952285775286759108412199032453413844757460966602157411229929069665305437623537611728817929462162812297585725283273339634344761653161165071838799947188908307143707564591629767888228058310447474571464419969268305621109676543440482767934367129335652805991048871928049419901859063450269511484717607385223682838779663961914425697023016025618436481868108601447552293896278306467661150528736467890243213036337157903891244612805796880165781089941563389171946752113513288875086684797282099922378994462054446728746950515899189266144262532525571863505742049397053380302431217095960809096578209777303312733984498565744488608468583787491951418609990490231852292075966909187653663792644363484466317752076125380351928803755859801518671611050527785898476404695745732334970444421820589060215982241285732500165156727458824187821584796753530584998641985966224723112965833905012126936831158681821158770194320424825189832598301707900946672107558493788120314641392155001341006216417696727018489785937056940038640151828740652853332525062483066809559879471985941884964693766074609329923953672261479870799365847759228591561776317818899692068965178053445496025376253364033976562483989564797519377457289551967139365581437227960249416112532724082779409396350420984120016401863349763733255602548455421823732631088961438916985477202965583259563874584108337040328778321770037734164778517869542588443555278318793499400948384726934963179567756777724731671633737784668693693444830632074781208235900444727971031211633352508140309766263658692830773600930679598715807804286683086252094392956192383053013990859562174915490271745473608836223598311530109908826777806104938026634952088584739276375620733929212983791867182418002755620925878916990615757748219456625609765968099230676556008201438115907508892062794122302222901183553963727301034106572733972480154203444827324749690763843649825580333638936915994715381466443317254595364828251810521003877455817422968019822425768124141558946199356041739500993899778773049785928128000301572247747380538944463879817800841661056418192711325461855726876886993775061445612854215153717970459597676582742570534744753897595158459410986793090433712607848836880052164238475904822129426171854991224045223805283413038791495392642046823400680482229142517333016685399011744540968852513323676590943545722004820808899408035777804907195050876040273869981621662446481084821185534445004174221646397757875332812442367510684263567012983253263456654383395533790289200006376281683041967962324732444499392211679893048271926480053865489325670041822020157491534127801297814335443556634037431903175217519845429632317760853933673206476061330257737251003835228836831071230121896543691040983089628598494867657036809227270655796662971692909978550695777196849971463245202951022768748531430657496911619257442095914717646305695798249319597018495303088989147572781210424156144684312785268512100599286366609219591326471765275889881690246174071001907669962857850244890790595652790921867783768649477054241867631809627333832557181574692636364820648433109745478866302400161028839968486706186007693904121608777591728667194088832751044282866469518070839815478531133075954927868784685497633459851054393512653523481795221861366321192236497413724818172924973056011494656417130440539050895211584493238903098210848931132507204757714714309376639241586409206498475429737934035119927012529613347055914024348331639057775326863203230248627939957295379532491085816587302301511786570638146002226147404020687132055938059469084960146485255174882767079909893782762320046742665546654252523222156211272401590691571483660593756878089186060104686534699858117506398499261248296616741119951512784424004924872977091232059418445480110766383304190183869571682013020482616715797401106211474568674811425201486811676515987139803894295774879258949228391400799893723362441640497103691680451882913313000045925686489445358802569477071131178418111806406243931579757814870734445196913366629442825393432524606691448800194568216269795465008565793508078885916311386624836032390365445005246817384432780092299351693371423292679168746857735830036682442558547765053118520407172713883856269757008781567204163618448003718117032160647255416805122135493125419319435982147141287480238647752484332337692005027288545701672623626106578145855436224293131252236740660175885602390564936901230066713087417114486047916959597272810284740666345234875577104220277423536472808314697689254372974804504067246487179194463105441871934786932863053873560556669896820431364513582289893063034527579762244866944813114158536542068887036928048586040652141699400024177970374012013349034432782355440258993698355018186148370852202969427723571398552099138857443443514753513385351451007991320810150667586866758536931372549226090142183388396184891928926834228319739940428310405520954258264075987314831426687305004562941074189549849109519115511346793781444965289197692480704091615570203065454493579894599219517276480325897901019403228570155343658770421700348685777422110591613750542441403751441352901194299792168179236242906481318483394963007794020657170501835464231988491092226804980119359668315143358359975064551907038355038535364031793030479408111608869668489439845221195605043590498074519464918920446750209938567895825940210622933486008742944671646172364374906611473932487146103764113132217528958931396811649754498524747753109069182031345976215597395250679666303963268893617487181494339503538569344181804972418121619605976059671948283747195472268186703820871149550484509920453678590140140784355230609165603362129144468844780927565369431034753041218987244330756866767903817580120767274403316251054903479118071019204769133848977629416101873782174251393447817524342397721334716482314554555510279901805693174414807206801111815647838913730293928570480374634641996078151758670312871192349660997401378099522503830305330730403220934874448617762148774058770074850076051527250644637818236118396863647117567376897604302479921514110726126164561581874618108627146942997987306785442438063253370060829092420936900050962762712769547430765867486486470634952552075947293248316643098179974234354174479665595322077330015806535940721543259167484632773936043211861587543175894285390449593699743354785012517325879195863663876204973934537527778108953250259860673954540624385099260182319490810719006717100914309893593069558356966064517679036698403551197011964432632007602383701084665461502906422977153432844287297662626667724909688091312374174712660886252608804315488327261585229839219071558726331971323917580604542175300588369519292731505838850470288464740265266189466768372037442843493973182964807987664337811992790768933320868244395832911874698647597579782424066871875623563574125743968942565814185832487855944670530922626371037057785847997934888263148975843815985997844126945648963360026114670913665019606932281750706802191244086087123121299982741233565175849030795196096462384502615936285934187316704411449855802525379504412117308761432038819158789256161203886922388555273950951308283882165182446346355664742306627091032546972996634098709456578882409821136012147795938224632123365704978119934720538722590527340943602737305833102000412078219559975771826999704027023685235139399428216191045436860858461716809634145539102319622994584847328574151489959560521051957510761060963671180541405130510275497827367433973484982064905331841308225691402964889757043456137899405198511917890033094112089618740678504238747955072184790083751698640051792270566311516197685617807522014903139948669901235856829600122407167253054547492091578569950566531398974585456460438154474209800775505485366989005032201859672501337502293608407643902640947963408573020591532235297926123628889489901105438466650366229342783944567739127259834077368562967868399019807311547215440929334883047282941877712675404050069827684742807594448379681033881802115779851251491907164065530421780047300998920145054862747116678741031273700225877138804899890732755830378431784562460716176832453607850350738077278787074653743263217250011247508272445975876258672228238369133342221740229961340393157993363909492061208783844554107380516147493476422963781649683116715877378902641382824249842657867408933240266912711652565263605149272429137036044831651138708319632151980471271034212044894001039469863173123725692724894414691513445821802496086348117083726343434580102000759105702437480659600952164255860449303159427472840710114054937389799778862770589320695274630121558603882182889854720501994150575919582912563029221926383578767353446125199033539584716001318873160039862793275053124509620962530411815238440924648616938820048643433952514980928684461898406472025837666076908638042031262256806900068447928353863836638682724661909392458554483313859784007175785990764963405019648486883806570555403859699318087451405432573590513395978276031668386922374509099933455201986719806454871131660453465068061442534651524383542339365053166318565568917695709246461814787490979612349126419849781337089994976225499450407618461803525170562080443910228137315773313146735706339404276532788344468364784022933036879135423335156906410445544984863105150861078283397490778533716073796579319774626064985431040087821505802206102811195758570890314428774458373494137245120973450315448177693174739637230268848206214133550851524223105805885126295283462264500050123554713723510333333959034043469906386064032998273944024610000492652089125929150177797735495577614427630240017991256407461983219534113188346981576905105738340896086320389094894231496007845470165204770975318355571302167751596627146707181178910430473469145480294497433105956260060101341703337835895598025399402808033672964750960676050832992298952940078447041635010914897538802494526641585673520061982438839959640271318431014328698235187345467604435281999290844588779402933657404720574196250820108787232765631290807790102162595729484894193157042793414237898596112653914566991719968076567705191846451805616829086080284627137736561587858547473058839163638185667118108303405520643365360997025299274320088995862227138085123897956136229131981356706326432255158362435947588646744970975883952256742632950254775329106893716019475426593116908763631042947842748633531680613409648381048109214408747309899922977462370620710366303830214167633616360651588111146882840226093694741957041899545944197802383851078630814982869495697461732961358583749378342108670050146959166829506999172291058136686468249267622531321037287112977213726491920333222389464135319989253563649972973478741545510575371037494243294239019674601201303414259951328041880200793920631157912899163533052598616132014593927943125426642167140564084299909869890356000269660801225752933444493274515456108768238640885832667253270196511229343772569620811657453687984518016501010252638282161503471054990783314763551591916151208660722792309917080710071263172270897962875653500586200352006778635293176987981585465830811918163265808345742313832053011301082462075518619049999100241058926461421963951068115212167016297931148461761849919068270726027542485281451700520126986915357191707034538277757239539583525035818220632831199392891646078944969118324264112750133053389331993318361794862432960830682789410941012301022647493711676686847834837034428741408724169577997060371991931648087681900107532612770029009008494624757841720719173823982131063823278986165603625255141314643540534579134946349813877030233693259327373547635979692229707144705986025201980002847384585153366600086407969745834888357882538875074159633711391695419074605839885550170806832185879018552584552174976512029104116560395613902436014454704733112648643877779219808773484676256848616391620398255500186238009323971514692779782106780394188764858397086238644564523809186909322205496315403330487901958984294740068381678077628885615167897960435777631810641027014936235778137324944950976121588872955645889463240664100527197765354467808180456222846909201046144565761064984003308998620649901096793866179972051143368554145742624266271772051059648487701654805421230409402472536398679779712501054523629192955322802999497264265208847488143716740146968019187821749640205092769342440791322681749050246653585085399936202311249611752916421544721039145545386080380220533654560129530921519933102661075868847401214851994541309724716782425177174071774805656603738263229117294513001960995012482237620035466747292604560449790713316859846971999553222845279816016398619890398674404899809450569401781981837709707440040231002388761144831060757231502487706088430526964823423437204715720363452959603270248402443193616186388942012674440129648337340921932108037004485504435475515521728022193280879246135112732104682930706080122175135469027211274695111411214658076840638686053949034829137293036362009959956515413781863132098592205329214434379171935750377459215939318398528385183462332471665974605474271457919811218836621585798319284422272368178563880741766077038726122524282654749325997193683219418502134042301907245899858872277831049086488148030572852655715141597725443553914959538666659093690996231967947907347840447181055783656615665591049130188033191759957759595120770140394407566733726988297306457254879210972698637345541057079348112210259676975686797423347959319015204948599036525759483529878316292929883402689331996572968958185869150165532285109968200785553419544457144666946714288850632543769024258134690434481912526395283708827087963055160829900383419337718683742967416423209559717925201230157690392794683382503039041457127537458553369439636350299433402356894530627641577551578529124491300645875956117427540130087770062483659657232907584764890070301027460247970232048174356143408968937453687541463365751284573097685541552817300539984125897216039238489057456346999194872842976882513125296528239142472591570730987015239936688654253501954914668075506090879901858953031491056430548222915102455051792899982859777727739930604500989058210666912476991674840758423095815083441054190057194647224456503099178650544530140315239145023176034677078731642159653751570346630160412556270271664276178692359046633996233211752134794372725439767042722974067261249867586697885811349950623919731807369890399122157947139940712979321180767796804503692019166367573709828737065219775681173935175809984324876747977371985786602399628158342709136904217750480012994253918779894435514554629710951433574614332430991198191367567732816085945404884735454628190249464835914305950687691711409121600943519253782275654939907043805221539035226593872265919464352946769847332924469983072223208972060723068885640774201392961989358418612878654401274643321496452154982454548353987002129439323375084105429144391360692195755989622053064096505895873444167213600711278206054447622491702302941736766427612139627270122699562325666127824723579289048991010837777972612368105501479068513098980647068842553936680038926465468322028767130980340684190629446852058632073315157716526816034630928544060551464555437517343051447720848851158922851804564023789664774225336614049598382659425606528164068379923611202698771306363390788837588660035968402067888820298357288394296496584867231733594439996874706815331042136852822007554019488607840047845411836653437341908938397360299069367632528442596084291438610550024670439408635216701160054479271716572063749462518154235003600123037492505923425650575570845596023304557889410236767170506797073732753461492817597141998649412525810188468670581803607247095451598856810758780445162764245589202573622427323044499910098113103473901756307979911103987674469325082821337511796150255023200220137249917949635233345043922417977921219459898097468163749526043156255802748016545142342987775535127587896254055206518646857046597275178222891332755227292788212877803676556147325023407798475240595257645740975353778532554331010682576073013170085193358673744420654463573143797785821041131081172826960316153431038602661179860218013946255713721250582018121834927661110387865196872206391303188695215015460113473093833858721199018386929747866520971329001648939225583114752923234566256803447244787136004862356400698049330137786906118631645735060795442693412459739331438627251291338287748305179192368026765180863532783340195859443401498865857001931506229835970168150497710504997084891917257883045805022417013426631952120929350675520040468320049092112741825844607436906793262228715160113302799969881473664814865394943639706439684977112561270010841105645193312360152615848150708373004268590968283444004339301772325648712223796137191935870948466546675594623007894543750440779321883991452285199305160332854659474673740438248404863660936711745550640746566368336933867118348744342924827607282531894620771275537084888269223671945130716214567200449045593830324479185890831002940952293383141728000793760092151917375957669627334273079430933045160260934911209071787722625169127959589433176421891396691967643723420247595789195214157087949505554287618511879439215299019976244881350806484045286110425665614323107778407381809017970411725207831991172250647603355734934484204085933601512985300072304875430006654866237455637679635088633495643968565005674630225649734566880218629035957454394627439574517349187015968965241024293087984854629185060816425306433032213136974646714510878992821038611940796695090720135321133156997737937970511806934152625367502761444025972504877908778045433281393924003570833750694224937858955503887102016907592897157408205650105569034734260685523156906287486065812664363690600652592828717388618609282556589994587016702858718616001756035648191957104608265535256114966949151926837673112846152031613176124380903147665776579153512310358561961803389025113773376123125819875354719417441418709358808770416080200069780292314665580611907098403747175272973758458290267493536563647382195972381694062952793317975687634805828951114954178810579477636112900150184440411500236679807930602433475002004414871398639735211146633859523170359103950556201229490983210854544651097086796578711934316038085524365417590304814089461091719825482183890087247634972461688504913917185446634724834689772048929215573712415181621962405487754384875814085560415808705635114246478798247767773812878270646523449582224553230422027518376535035108181128320738634897077311610572512185857747538260445415619922553222540744586728195389837400678728683604315257842063505139169375037515390519122611714614980768874541580748976691899028242716536768081919151003536925390849720422972449862383304843210980170075851368628856276331108019608662158582437417652907524062534865787327978493069369825485330291995246365802998427890346088511969018127053437757523584696576759777303021368096068031665012452348898944107526254245232432938311872497496141791045346953455682713250344746152689089749286822464760347281044051445486634198601475450460976556793580716435977580004760693614539972589857503017989673402466362018845222451883689276002009553928205812462249363494582810659002779211717001585221981831217977311258656046194929006924192477907311102166648215258251707537146293863141633840134509015462452555544564569689083391924567400856298494340317780411920567161743717240567303867974324391938664118306044614349343408917043457720963880688554716017781004187038155742110500061151052380837812982070229403911753640880950842357271350186625539001673494372927741755055383274862550313344875870594345073604552091698544222302241144929658151271629464252127901727041666441581930114445271112587456722225128382376482972149391829701955001966424322555972383642466650312765126102210536907113704007567469252933441151801903589517231342364927212861118731598662919076154640211700364737570616365340044320761035560993541247068434395096609858361617345163222692195564596841548181256283365613526690029545874217485995396200387363602091524200242085627668650448726951194949196562398893829649271812690060856171664998006144507041233350793637704371938200291015125427577924211342180205685816776128626964326085048444079964356028870273194013643609424813395590619731723999302501500536351768763063164277912941906027015625318573382335075717258618351540973562789603556393919183126551392920657377660275085069496689716748609410515688169314218548923073002161372141041510408214163405547809840490494578783535674426875904877190571627771260539408609982635284440051287409221787482735350980195430408252782265399426991245079357367082673332838186751493119689234606839911554820463049746248511357008838194703682124200962863894530619111756460898755754120210193839737157613439954965436632382843838109765017006829773011510569256632677759343478443412764449919857856849640058107002719101951629529625554207479289211857784721123032281672729697767735307719807232779321381544781416467866344464923636125871344669595226479539760453431436594219476278106089652247592829642988361671033116425941552685934639578793491238781664445853904963151497960691010732385405535706627216674295474044190608513334682607541995351390135052175327733196254075609685319288309983562531852285634715109795348584925125393729232530212103557150299339639029413995074531880411931447051389734673328592956704935880086119371935328459674565198255737704207443315992288234365429924070240838178786813686680628983466997469246405988803354694600272502307038698338896899735408988034984912486763159506324271985408632876344859269936426994277776687178218921491786636519557285448793615972438165472323989803256980803924040019188927970049970274226438335571418303930594895102855292830893896574678296013685425455037836616484903609847407121928496979667057298336657961980157322504211216593380700092995367623646005483971009514332601049122627960521452126815185094894939561212143257398908609576627315728192037944019766846456090587120095069826254240329274018914116413360893445947843103573360085212811552607186752417822633583372963150030722240336656241975857697084302460529835808188926572353757538411144892806969604446561751128176704801185449971211339543064513133943435743184256030843672768000536491846753809979942282676630007026556001328379246085032439075664675642979399074300594223795140439658061101289876987038987519764651345118979961294311323208395176213166829018995924389940410401572803467999750326983586178438412993339615973402171682459203292503611980447906478560902065568318472690405144712528900821787090138260141237517661649770273582911181014068279603563560344567262910884587080835407400547281098913971965779651561701642953527310277914501398799330675660673243148713072861184044078879411992890335456728763907129839638510211725606727567519640113787634075308125061849241932970380408493227780802777573742404076759543751631963732919644111403719973906616505563597417913368853472092298836837324244275153400693268876288755869584518132510125570274190657605790233305873695934103512620758109673046738450819301759283557139326826670750768122469298840907026917815899964980339292679590520581823808429429508931114529743182265852778991303873334784330094024488708348625593098469640073375514454232784433854602075655175185176331453395401634707318378351422546301660519028304980054084433232058509036628022291580253846521255480273326275868270895173340614109999138870336236746877055635753795226179408458129085372090425185118200064007952634323418381748092405106079924697962187033898113533914626552204526961897130814232507039793462021806844265080362410317419262926393900486541071798556323860642759557928768137636846122306754264814095361058110797919139572541946450421714398298229520684433316027915463824110881358572785846291630240199690848659919404458409826870198753803777615142454634400408247902886475196609425797718600118264875084137199414062674660669836592757794256977567751079103811461014251204726561522818270142786929604645997227592509248717052637028036213456755928071696575576027650300410360819919922899641279247673659695083475699706936711977091810735050571511701093761911294346040127347403387554992778309068753831641930210702945538613745828914687720796679450174962880800292648917536482360061498346835284581873736518523173530565224561430622136764341182463346501573928237911186499716294485476525317250895375425061930826628737740561084258999171282461156685795515624640607673258217306715794960902117406568059512207226931171723436744620234824999649146141782812400862522711473460905626730913307375956672522746220880962097691128879078248591635288649540772452959611554090897456667193767775703923060005593854650259814217359942781485659895394146802972741060794794560690139073729694041437764542104811062670289740082645036661203897597711074444882038792157166905712144772784507101481936476029841858627263942856447749577496161208443797073474524446177946410761919763353777822186967126076120412143404793386195821028520643005220208797642977312427393243427328112721218131050208267273425063792138951281256647369206388287096546576181311617710405929640155956597556876347962059264584086404323195119754750387180050325218519071198001849233029606600696642943630166803134645990177300836423571576788511000875324433846361308362123368301445718528016904586084962254281974330041982772817301830906098275676376090723264600694192027303383105662643176603916859079203820468115611747842936516173472468395065859915067834450400429527594100480903874301998413260798640109543362171618672931249056950951370587567633786459694440923741038505958598835253287202048965392925026527968680803135020717134322832664809696855201169920144411756021426314105304170770479708110239778555500963536269784004621664795318189630309600747847892456055711917859911242623885021450017959887797780882184446090004915717774930483204993654487128853469046088353080579968026665539413309063066592185160852681103929310357569787454142714396348444035478791044281910569844553887035447908230386722370005779946720299116146956477326103444678672562250980512224955431494863509332532716180101806160625954838632298523668964337302242721545065743934016263716743134879109187407401536987110204839128044119860028095294779732481599819143389490365290105502304510410686845831090480589028550874288275190191963067112388406710526731888091542795594219194497309427222005644692714207174923079600252588657094521197189510371453557621595156853118457736356255545968951843521857717304035775759321161170301917941979022998497642885913516810043639558286696232392339848955300479838988987547357532487527598001340458791390998678793450884391581933243553652229285417876657096189298518125006836518925386296392963231889943005681740779978843613621254088040577888456538444955955456359632037440926870594079475497327171023312213810741974101091062658139701073280766242184105628524367420030008318288547794140083939082561067967976824601458881131513425275208388317117434687635795781655108707498243831231365144897559280618172428784059399119225277255186681346834448473682805637298355338894801873454963157781198873129951572603832846057991034401307762489669733443310004973199376988135051331734686752096772185900817620401301949117771818853967398607175526094212726066130917625005163741639482784481322284011228484581795053001704039509244642800934312206560789131663467378420798707000016996302806060651107135955869875469691851175029699186734215953605372821306494092391797778904893092667847183586200341655942422544668032533907295480608729243641121503227377595924174252359420037039371624133353926739256910466330176871138528674958231875556546637070914696029548417734867026519963970774782779500187238607336899226599056908356039323556554723567368861501119850444698427199728843127485080364740075659439850303945178733108537615487174324665567046808724726065808262552541192589491230225685054164923326328058213427390758156587664485705862031131699626415889210454128319016846214954682850537723781290926766970099591473406058348419746886836086104116702074244916857843499677381696611440373459639430844087357012877617817410194868330389257967883578321474981015282450222029274811978656005553824464196496586255600027548079652919173360247757088359303315797558609451250852543378840751412945075224029089020966376524857219211282570975025385362840105822887823461002712922510435839799518264015986434897976348108631642571059979390249333051324364448367217841852474974280394568536159294902499420852402735365882074424913588066310690611133395098825343021902810860116609405934735999536137624749056200682010791542587421705319983091946897474927260109298184999089721677542498538022106759971600697599919825199093847919982432382053801032745028591601270114041347971563176530446164970529510819622453574317217891962420716390886505965257096114929927651659411961616533949480117077478918402763117267130921755588735209599282023902358040106778229342501439346740911422513029739532707940800224239504513876276150617758839214029474308158445834308563662847780848778785549934321060154249511592684919436175172574271412913620837757475766261181423889561102856186299210913817666907216673205736007922904902602799020608434913582511336963470492703974036405794675156106193055717724814757406992718711755292921208232198091921375267499832011540279015522121667887591951986204721823892834332316252372894179454871623002625643510387868492857812882205186771231908696168276605159899169668734867850333792541645880131783076244072942633278269081937686145831435897015201876816920102548399021333017784289385178002709875508192498352109151303757135275774528099245872135271296032330718409000791538726811418393287215902739792592413354758366170358259911660432841614562948339666716026516866613879160612141203350504492139630555857513421693234179255245227341606865582644054923966881008172492798191703248016230839539190454245524846013774334597930550213522835072114135250957270860959203612848735248856559726722448615947929707186285727342560962379054852378337951477183887052339128739009497383358851599727869608661068880239756969634831398373805871831744267092060760279388761572186087358195558288615906089437218568425154085084168612093172450886782016460845509180050029210174170462487636601154747301177810550296064557631003708549549248135010050069673140416618619325023772183244899861454584177112318918603667072460708839800744958958807011053488376609446141366243999333158615106071711524851488289441207436998811238983036665665922393124541547662979223787143685625318963377048115713974244164671031953998000856947464714230061517544146758043498061153311810224995827669915420175721001466124933576068868872280672363237948643959723509173507072204183399430217941892028682583923240834519345801700969962827529816634029877440955417238138345335522096754715450758133583907921419211850479453892240767407486777287544657197945148142300363085656652671323153303994834734632052001021074172130099587066106516531743269897294271340309036232706857517161544577762426447331286580104830437936172958214037638640044006877903839945580540119592617545664002509888706788685076501568984201490531862819071048986735170574608662988065849252162830629754151022458141525797583317262672480094015410109821269938160686935500291497005570080036607931344133508119762954127576909774036933040014817903191529177962530713299478843898644549678516762457437091347873438379894601901828712008847863253457623586759861936970321229046420144924445618273013262370360898358350954699427083087203704572838529791499861643292692287123228229555217535040624957176294509669078582689799433539317844488232339174777707705424849955170898769891063575007039433487604445637685056644754614843943655654230102199735488501363711031853375397328025602081370584728039786204587445252757316993936247050542051693661495834927950096503223929217408317444666652137647451659483653717486425408922369885790759645526245787444987270356391557323474288995431330085980143542406694755407954675060245065003698207325441816860508419526739666938840542385382250129279812417322208304884295475662825425613079680519775827976656840037311132782797675635752746921094168309420368756523400585931708247815681182766341944053364311471323833547927013383488333051145542086793005732578816432233179271130529701012189075581804148464936440931284826425175002825594814113490319055068575441964918260286451791041153868122395849603424597576488102020112538239996553400234478660899941865197742434869838486809246025007280916755180785346308630344188931976420014812314239790698355563643661706683217546780786688388537684933572580482583056413833791531449104119924647738519898013984443585046944890580381796951584538124722873208069964026097857371594867104645461902270665910251241770148569487006582463147245407875379391116965449936114234055128484374231182816879769015717364021818521456055402259907035224458273314057160154079616533575330363633378913417208968530294147815686116500414919059268949547026415889340756616269149206835966377884713562919359294767692990178816516259543727906525612262418238290010329805835636351845698068201919846682331481710424734669751847182081498756388837722809301426286680217447294642893210569445609330028553799599359016093601386743555301690803532520467584179035071142861683198796855750804659723344110730021383021937849618605215258167648964032355825198900603364188455658936344182066906717843010674118179488832605858653616401696792435375180149201004452693348304243434084648350580870136575036265513881026962030839934873915851435404977204358615628903185025490181036875268651113651715990913066022953793281659686126761553752608021893096329126609949602792389087560833677008340297819649395334095391589884460169831046726804086083198655732740315892994677549580960137998717193278073114548824212059730585732408022078111017286754751049476939548450934930275845553528883517741991345762163984701817251661181571956147451262355613526262287260190472654279735938195745197650860939053147858653713038016058715744316260010883176469994925895123953189289359364509801023636746740563170718667722779963685733735282556482281844990539029863731944203432150100467860747717199143035077391393556937393577973970838931881197179761226059407098222521166185592339432266752330906037855355639004809678367210707719978070186768415605685403405746434771043999660714276384163955576018333423276890041529700220985666585073804610691812343559148005147788980219229084345462298100373690291874803426844558193335027472814503851790448033400945396345513343614306092945172286929454711539951301032430931601798022348703865653157379030401132057780477816782598475107026678060479567675108477825446617555583581520277191477300331641170340888604835944490464082761500908108476028870839587193443482657298790833252318133305741515853058805963724522665858521644249809168989192217979286766655628344531436565525989688509741545296681409449247193087675049085321486659764857687600784756863913926288312726897719416487512602692214453750904792899381534546718068412007943855304208345442464284411929507517777642437097427265842519781050319490088855690120609238845278921188064841715072548067762113727854457999644079053640014107647591376806043425297819666073638289869486565754750173826287896084710374064804995691391909888286521610467566587431455141311267382883069242193534221546673142995227294720632081709320186849975561754938524060124936758889255494017881267984072041863191439221216283488487718888724334553505968863778464914405719672863116214774265406475255207410409749449749855333127933093955279067187547546677866319294432165384495487130235537995707598153008621778354907065014923441167304691080062766107440194831136779611371678742651515720102890384346500978761367460501357452688963107339185287724626628708220473528860182232538176246261146306261216919923014083958814568725766440938994092005161761069555905506599245273476831052910637807555722369025743214789370180645200867793537059635548270230113036035887194235353513461348710914634686430690756491516092258529638431771560144473976942112134316386858465754200843774908103360990858595136235649728321013397044833788810549693874062572834229736727863050822758988648695287726093970370074943814399209683511271933261877401388030474092797225466657796429482405340538104151554900223449944870768052281166046704081317458597208327141618960058824626337631793729878741242285249615334223284972243704194590958706460607671500970690163157704584742861766769879303957529532739490967400957462153108800853166281676763796999551376092301717501542244965450895288149256583375394840395318356604401710821176222707147359211611185508455387654858626948164984116094457496756751175421340162962057731233139479680490694448528374021165540538407717045059500429981255489656394231593702827898616541591118167261720940180732783558623633832898139063734917267695475925457553562240096841856441673441198529448860287539476919516144171495868734878589318529056337606224505133128703041851238234329391091138060950762243739701438548534864350648017390521911073392560904451860235885124629016984071846158161700234770001700997121745815107181203992261974805923015848647971794247054923445260037665625041536533489947036379283052353949758065580464647712608419115317477264024529857158670995897364268083084379241648413647381599369593897074567209385457847347610259926837423296986284908477720521858987606672285551442992400529989362206857777518215401849489564666019280203116986600950734654917980840313943735002918181713311029513910245230023733520785273162045571183296053496941407492337378070473018319725283650116617425819602107434743797466043767915134774651026544035171130942667864787374152462732750825533229979811676518777477368911765033994419038508692379869639079059736172385185480104951307792336788504990634223085570330877510223888041514081424947156725345370549781582927893300691750672345992874663813728463448890878276009966685958824323580781502678665545637650816905389289971874015529232046287157666332711398521490254616316141285924136965779484715757336535714811061440008702998546494549623728963335858104802955316882591813196913842924140479769672881729008569113791757180832404594248744070652639503673320239186804041299494239262752114544015928775369633702502379931073576454314130622219702648412977582020809783191858785700281928369314110815495213929524279935616725184316253326851531857191395870303486102467078266041530810102506514355168571404740121139269278797232066707460562845315111651881270836023794535277636212818749218294951620215448733611290537471234856780859597257816206813931784739872763758355004909355510858492662191304643959541432694810762877975719352675152079797452865400368825810001302981159591840979422730855235234043013383356164383591225295472671955525359644632714742159090495088314465909902423837208689953952724176089356390192047188326347431218312112618856665595739293359750132342948116117737389212534607172612662387404018789804059158824907543357524578034948126727134818550267869147298933200763061955550222169620082350940870067414314399804438278630401349304368229031093642870401574834301869629115273463496270627859613833499076216010819783213834859165860315982252538963179026837048751603189809618477816376418870654293133256005903154547496887976217062794630287290788584780744247123105867841631439356554631876837890686699630343921411490167381035113320260108294053165471411177085163964269506139498321183931623516927887174585711221096647633271000404175135011291841874172289478612127236945376796596958750510483630260538540451051153844747714628340000971211529874902058885835272900363987905228380834421409822629108572414887305709179826008393065606898032558458149328742642523454808361048852249886469435597181778205227002894449136223091057038777552129831206496232997631109537833871308701640591554097460699095353591975778870325971661364257492005650894482636239897586423508802111361849387182054445113219472002349796022028441280234147227740807601907277771147641621044187698500482950353328377063934607153059453341115155692775407191221651728586833432343391188727734202979331253361248224969620458751769013392601430148904748386010441393858420166976779843213857464996146458221271332215256806952103044840773724083381344132320275740130437993576665153636247693008435647151298327701168586822897803084547838686002163002505593422219003351893255347882343813698013490365277697362730197655009245602913780209858030851797003143165203917292246134769925011730411222849021648034056070759230204625451056949660629922100608526949533363046554934934793479937777511788462448964007655028039255629785803709183071776919474056304360662321643959805101929395710586583619363338657263688741866421729093783663004111428495758940851669667677004251256442094078962584600524367983331185895250039219657786676014918612086848106579154181135234398041494270961934362546564062552856357599823125903680571411418321764178993835387474819406615032640000911435091704554863642931919980119462452242192741602766055422548701713008743887889297573512745973029675001758125499478416304609672618553008984546410870067305814301166729435323875306722689875326135581887942721917947255441296316342729935265130725191975661274276089529116065395943554928579369300762166736356885835491871989270756334527545313587970299258975167916955433336428668157515288492733743990658752329233146570854291117087109165786866176498206524039692713647969151391990865540188002528246666859834138295573568724128725553228401943674514520259942590657277356710582961316518841332832815919671567087106432024995353110478162433606072087146394518087881441660885181142376318527289848836271539695666224074508683120664113526350599767994742478325212884844859162797734536670499376056774985699641430430219717396765596295591025332233925057296389144314864197774212953461723778766306446481015702980772555773708190909281450702043283912952554498135882660450356135290432519290875903744291809838287408814637833116058124559715550345112594190125088487667672164322591760043564585754397692903765629915007214272064020083547343126538114831425248362997851727907366276947291222484053618509492213339534657703436026456801510399075937104753057207466303822820721729774329401083043558461370807956354946246309571301729087020080096097197807647683170364036687465872087801957874770408534469165432937973040956533813360630587302301142364763510188560222470383753587852792826399039685152566611937581176761323004748675862515130135240942083008107672688127496803844755470641197153461419391702238975442780501725118672332505996562848729244688710233160609819825758996736550653564467044884216515762119934712428312760024559945860698967479872596815389854742588609979903632004612266946388524045321484331258871270436096130475775349352549918917003891588171460295434922460697803706654548150653599022270288261715032196492125905893721843890267252926551330104960446966236394375013646610169734516238398934601799787682500283847603975480195712097147906084613751681049458846346053195481825027142544266119017865697292073690146766347416890999795216053579636424163538492085253929891978429295133742800628203248998222386779776539278129407729364506899407341767843836929033396801698685441476504177171721070460479389237496047762583553666529708267499850145221437065305573576540914315421785320675304930999468550555216186911773366788998956729832570057741215406837898208735297712222475766680830611221939037960710873222211941246886715938987555605491929181765127363737388581023682371488051798635764820271029884329163292492084636514641259706282351038818470678418102979226104626782252759853145713956756318791238445285208223161651643774954133969890992321962250240766245978849495895448741532605940534105160105260201618117581957111421559145592240844663078184039846140041196579572075483190855768795033308695939611222490833754868888529821256112748422032096948194107635854964645400105228266615752801885865261426700877188025686417752679219662148323946205043022469453557433036637077822853106206954104127916856328653433058830064969062909187567729059929182869066647755899217104256170634131074137069134968790694198194477142218864378784470109138408479768127005368302595518832375773514595806844746762167772799517471052337444920187064107269549723674507872954079832056219148704179587195530359508202687792625348437909949155618897865253246993086237313995424497590753885841276763840025388212968836548047331678649322040700538441534684363724000977311371781123777108119454688294863673480351189695421328174075304998597813508249061962934244766327340870566339647420638015441797610857348626654420897594114845840711743074145493452271421321727679680567397649936112748756741127788815510988607815412680335354486780955218165468548245963476982446910072663501571897132805224963370151221660038680862553804989825056099169894693112186571123980728388646582697966391895543996729007160032423548473301130432527423381085858298993495040994598214167351494763718212166508895814446433380811769220104134139185743287748507652522955379305907678683770835514566354848794407932925180698039277834677911044115853327397705590279057904014677675528322603306033150966976914965763799517159886720660528491570697251053834885852121286667380541098553757934660799131055085363993698196111407533576872021868014311396890193945488001833504099294402661131268055733195173358984630738471330840927180431077464186553685243357711018383038148829710124616983841487877854901010524340190696964427008035861556272385388479266227688282448981469443770432665735993245999431299631121437439465152341252535000089017498888670737543215338206133863838475786717781029177243624323544639839858893663455460972912503714571099303885809084303279396523020897032920335378886618067630364242245904024876173725819343715944551021688176046744979255556432169540738261265202006448262026889287903410792842908291464952730927483992764622147585421730580658613268594671052331022732047661289926869237047051303105195847119322509469243183861603552724838745109620179477321728651876990398186997819924906713199840274282062652152866590377462256338332850617425356300139867413196807240557738307613942444091780100476900888612098507720331667053764782069882326323832136598404325928256037232820846354627971714348669523048178984012945495660315920132479418974059741084945623421460695067933350486263168481132817978685182106522163909130058158055378766429201050232759398997533024587117388706803666837323660589324949163608863685003950166619936913229638107140147982143821161221025800409216894572716894282292139405369178155659014971425679644653802236804283471538318058983485834088430251202748694231333568357502537802567364078238837516525325590160581505911076141124915454678276291699619921292239259829393861372322806975563902379120232581527418531043721919420114558069973411031753287753282405719567661998278026262536520030136034342490517885195010716985252496104463991579596477339724539211341181730923013607995808847731896978898201135402532516063934602261133588092347809485833769004636351421265985870963368124889351501669142741561365247683429146945144604368322739267896009351749067329977176240539873135337497328155607956597491883572214997580816045885565948007033535853593771630153008979953682408398965158264134388427798810200777808843638097388687651245743318331298523642425983550981459470071778771951276246064821906385331925528957706268780445582617953835706903038051108604237234687837406246109753649580710322047144062490584493975880516219648332153230848263056813895689819641260434588375801111322382812896175845109252934126663466106452307911695109119054466080489551543279356744765073902008909809003645144254767940685221821947002206168598931531694773483354364834631891546951028742559722988197548077146060688547527966120816716735224823486594677697222810699820422558760309038376251774458770049097197342541621670810201526159290295868002927455601923865333170105818609210903219427682018093932046447624307849874570210283508449812605514545371512336456332084531277481666397166176130432980722805547801681512307330985784563236730230724460762110443592843354500759928684604580779457250113139169540419212177331775968875425480091440951097730400983643020679542970327395553284250721815348500882536661649948191433736665865614311797393103648342932900985849075133601955972007074006348163466575530011285596611018822992563231519079914418916635294513554314560778753920798545377565563188491582948349711665994590690323828175242175248564853137542866412707281048182511929483157156201692945790419778186960778419337734475769945079618955152332094702167747542003410562932107230674233164750154476365477274477627546259235586338229664235638103193454006835421393430085758156154931434227389466878430425386945683608935814342545387641088819834416969479660055445194400339265988423211575732200235337868524425247564440398687563286033082876613831085978189117890018306919785108225122656208009251688176600878476128308654677877085145799889355681266686342649113584087721115593647715139575687224082354599681459503883736696080125996074037611301774107189828295146532029262216714085995108798552377472011568184946203997998769579986394070016236275190804114356856816627856106666974871647846463583601313701630581789934053358827470070296830681358523057370962921698423787808899934323044748693231196848329715243052215772031152265112343184158513463408217664212408316876935961457244728481806051498239878513352339064148667977768199448455962397169474434286999069437613485312253140477509297117279499421895696444377070315461422383385560270836483407253962493835271110128508329114762626869225349361061025126378681382942463893557347624309159846009235981887188447342284524110601998385794296152196630969331328233557315848713228352407649284445074237446541515060492754727207186634416764842165759468598096096927092989354809532707585524088604097324532960992928926953478288138654986391058529570451474256172615168684219085998674135650427895290219631380350599178596151079948124905779745853410278158831335767468565450332333464422608021285460116427368319972525967765894363125668747598491728973083095002861761604658384982946580912487505885249772922507234898663792053151312141502212254731855811037031705782653337130154994984602947431593524087643831212244141917346420628754063865494100243267579719281834787023634650863085470204298839245693538968151565853973452473920955854648305495622750506085530393834053397392826677080605389111414910882536281154706511208949609690888058265890637327837042733989822007217441032067258981992013211742473672203015823266915079004955499826085412119407314612610332111243132084815490874825792346584305121390300070805428909446840553687492880104794052567781758459393308465921213643550602149463785526737338530407707989903335320171342180988060526591873108990617354158435717481215910104095517219069255136856181761093090324471914534251098003229512730537999040185730885062483365443938023987298638724053934136699868222051175368894161820704654663840723840716344556396819955098825861594108982515676881512395840008450822380149885154451781584262106315111621680827601031777320289806132297457403296892856127353752342698320750071226362928996533129042493233274635877029517892034685482344082167090736346598912583095472131521780599566097418557031288608839533589505897160987552367002726128657863149836484176300453761877476488233542312154935072719906705693130204866234227467020802268992732755964308268719913310657842169405055110376762464918418793015160216596568541723811153962125221556787047315604926254142560740058568170699645077989095592230653980623902488853435970439067564785618221687255050850945361475140115826822426417425339718532155618631217863753691517193518315445634690949684320871566478763566417513417809949146414056371933756178652278045604703692756753403066363720103913439569123954245218801415731939306485134165856582312996904610180123534236359737028193753025417679128320901779883197724905408009974863363660406232794492162188683565206023655083748564490948061202608294576772069893958100325373027068304439948876150742842533438335534238744529082788289984830931787645099034816601016181742839711173175252711762553556974965387896672311040293472392163083910242432554005121493110033120674333799879964841814025995258251250037354370961185489708543357409091363446889613306716536127759061337907613264883642249759900056816743043341794548934837033422454249923049871301292125852069866844543753146806434176108744882892462171811266926618573316419727931346430657656656209123761434804234563269556318800565537262183417653554848238335351884654453878942468221531891021284720876177249387684629816599135785911641525093883997634991883799717009940712600754230732377935893201086838708478877691482693379319062350557571783933290481760292995402860152127967882588004362396016619635379894205655767290829927364080293830738514964824440705419108962214721522445343852541792550700302805728997903648093306910234049307378470551718715441254309505968263665265791806183312423459788590060235311670742141302886130321331472149690274789296730132975869725705478674942218296053932770155939659854147244626139187211818681794365358196961922427236400999925100576283747963118642435564764158248156380755813044553150753567290538177673592470404700120739118999877221754185782925054343831413702076141362806514280265405644425097368540294703984589419445758714951942653839141520871412843325791337820651350919159550526885552355438876107217158150203970885068412491949529076590209009746606012756081197135269755577895455534007043295630552094244220325994271418098831601644021549280686925827879624554950977226356818983377593531919621101394092014118645884942795736597326185856237946408267337460364147633294867053035476455160937610735015879398685189520965693969755563127889617538303730653501797337969901825603226570150810020097567874053308137947365811663054491549856691949385675480797065423147296388705842962930166512347511729653862856368248364116826341614091405361057455530375901795306261730200859105698933501283882015673726717878439479133247918695445649477290444331305744500990808563262497986717670752040873216968504317159716551638053926887904947217260993368695754357211593982054589623589175797978868568157887996321348466932259280478785778786247128978153942115306761153288143486845859200863504166916291218146681251032025178859356415342892244116708864820456994540417618128098877742653938473011048078638092147400450672897539026679688775435718162063826776687708596930306031400161666110352814038476075088545586958138633017553762145123618088898561815306612383792345808089567402711835437718828356337626484784630674881841010149855476672929012797902065352497984568961351040937150193749656583718347447948115418458357253546964200317228780045830911999079769311347268143241978273796614687590202759588977011309080455287444177006269587222973335454812234272099284225010505967567095576431255674197879871832074416425087033900869592352533388923549376440694485763201249936909996834153112159016925508807471913947626778110886816472835257801295206900509761828519593608208795031878831012006550327145378555561587043619420019894246632265338793963496827259064627040347584318522943151520956504851373802065232249764222648167489162363413054174665016633890892594330980399999009151485084392637493360198198469463711410237372199577502249605098858426448560967671130073604635619455133227973720018192939200741293182952582379049480939628690130183285366421886752661874793736125250973703414577245153083403155228631523754661743323494652627891239065577748089430601851109423332887056879042896374178828290493719985219034691051168356490759079079783573747694668260318453662931491744300017190620744102324119662966842280613628163055386865970243570902794531235402854782621853636608525020168772358197962901427948526225852827369829535568118638795910166623547917446554121088513964697899560309854476115201303234679848555798524331556324068222124542274717697004725489310454730718580991629481689059233532927183213882256289119812465014477278862710350268702659918464814799846299586331735834278939601976085136675828404908924476606073891077663080122133721081644770022586827396719359047824822875164658039977298418719926719128814531253148094715622506856114554172402308471864461530270308839220817362911697507232311554952184612439438924538645237802600262985890757688420882410097985743264876268263223949602370763777218958852488771713183165659940785295075672349379980144642659122453410055255310939673105289512982750559506090041851543838995212047301155307804056290107129911266191238553319158381647230368944351272849694224679490062003131288872466918736970657185389834882244703788357673951565160839734201899131604591816937541416067875939607663569997677321872418494313556055647427536874630403503507731216130573266551669109595882424066847530000460295590105441543404197424937257674832069693909754079178007623999059048486604812478653725088300051153935861736950816088705711840765152333098325579834966072345311123078866154004574947366916388267652357668562428075632217035706719780451805696667409783472458363407346385339809348266553171812155356862065771881839915659141372542229003041305873937212860642150892644080018464050919527676349882386804772732890686420690559633833948259295774554074484122248214550221184937831714496477524613538050206822674010485874916792878272198607550332503806473274117598117232242168591794501086485639450975910746527193417793760704008023481333648491056078390795656403681550390793452478225005806093467345639314605236817786874450610457913117296245108013365332594802898426906427001778461181646214549588445038835776483282055232850750922954599806120177994021375221306070810664920003157430643212653827212653111198234263094325668584238602522317678229643362645260334897812052480595065618126964479235934780995544566180172084876852620094413397169224024283572482407065627086171042673369546025692372585288050934677795353020862198791960474218645526540494723833837022869478581866771387831722293197326147495357074477149053449678797455475463287338052701842778794231796482935112498017191251783860172784783783089086379814028645520367391880886562736736793057216785131845783832646979836960548386385420984419171105810218179403600502734446127897613165918060391718537398784440047800189520947299482272331807687061072572456167429463722846791890041378333977878701279464934492464254222176197359299361616774830473462263707593003430803694405573180683915294649160133274066275267563944682817435138899866376145354432795415480726848895841716834271378374573941718907312215978332428551930089591067645925953459139791681582822087658499804587007558888189631311915328793643351443539902088401984074494052798040377520827686252067177273373756228382248473305820054530554108915456988068769104920078159882364463828995656167925258204076346782432049572067752719954903533250403707712915948192916605558489712836148018235490430581206207031796016936319920220556808853763274647628503820994008579339080672865716366962901036586098381033669329851025167642356566882810173433511827526061788236026961357296001930603691800596779928125412718900181587579328768070920799258063793532115951332111942583700191888322791179728861238518203242657326696503219283480541638434599235813214880337197609532150737587935398847582837007649669392873859933074588338716846279132851511724803106804983044153010751027620619309984330092766502922277015873189537859457786249463036238330406128864270723852463948270216804440079853797590683421584045897559745664341374424914781091451837248045861693708020612189402043639446071579509157730366874588588579849792295597472911516280072000876935974740593459742361633668741717404035717519873963644443855101889100401559292007060416505953613546667965864272732313948241954697156322124376542523042006518039608023052040943431497450469689389696228927989551749570865848450052014108675782148880319217640645697985044098486962118693679862601591366187861050968117537852162379892080230107477096729034720692133033845050607319193397588370321651147392658971414204583943636248607348573075482984697052000142902404738323810238790528950302249482035753509958128599013656974549987123714392457096802163463000172226807264640924576950917417877768738346624654144302582837894401281363335913325004201018467214853639977226595295497188381471141671709912070311192935327537858581860157596674612699178136991461775161327047810273518173389015187283433353695413407153677320548319613082190897487763347796277111315484617598687732185619284839515774107704855481820672340339108597663701359956165356604402374463959737694063832201569284474034187342718051348744564723320795965250163393916843887751752996989903607817743383729839838001768048140462615387317741509312295947248576849814333236943450139928737176889270811128582990847300570913021508844515017886497834211705666272938874596576147637737834896283247712917020204811891511888819350647659304914270937835225417320786961664368622333420962338114702233660584001966023108598042421806392720080918780274557607137886672890840265428931776290065561242675136903665065067345577979799957967832739173991378322342802223276095125042778365038866236674766027867857603541508637082762700389790352209226381296633770230201549465882684717949825493804077174576221505282915356705520369940207700467835115468374696460721884325099963659087888019550249379900079807176580924207983176652925674651304582956638095568094940912722872208530642287611171050636356325415247632642673744894398935937448229674554571354595798258973227209657268789113587913284211943373703206273351772884254097588268007146547201691924637102383130988282926501241993421654113562588661214571041982048685062346608950962709912507970913835846152349652900132843708648850175450303322601420797688352112086877473984284993219767017333962918633411169464624103197251674158595871335692607540430921856679798212065044426842396789818563421700411024151234957928809180885902104774994346686405531854506258046131442404436100067064678772712169600986894982306134944376487107717358047845344329272671123224350852430387663320412336947774068198159208501896898201320149363579301627517307423684914548337258130736578821307123530763785935941320190035346716816782968860814394074418733628525825388753298525582365770119757903646633048099683684949471403927414943447395815133667184176155935629625702000433115354084832899461920737937778893742427862583510900047429297523491002086780467068663436958884692834418535215026066872245379891218818228522348231135580823999751675968956106651455759823176382451501645522198974561963254942227592207818500127176166954534597166811075491069336828284104965985499890732212662091088509489995300375054844313557690940295406602956973175699479699106443909143781062456792965243096983395186296665661724492275863539277903153584203507871473921794164277514700947439219810522395226435941333646299038794101062135133279763956599498412441574453410513288099583465897817941401816989037504727427740339283662770099609052677679598277085444270206760665403108634437636101004475509340052129802905699427311517594304318754801567960917091925619963183218250076802900744189167993011850488814540918025618861848707508158400952721420647528641930016205007251257568139494825435170227254443582094713712323530410349852637440068417654337285042859360338983000027655463276031289735327201970056883030928053144081696348271214389736112375382869282846270283091394576236744000976853828344927048180725201669095012203807621761383616630025594602869061380762993462740505286788547736199567574749214607858240346896379430319774295817448187198685877262256851506700243637758468473291160622493751528062230894173062253444392879773513344803905308331297539330513439644312245697525140280354288776167758088432551297425014613153141022717718632552422005075591139774587575947374639306295650301319333263741300456982726656418761035332774693931632297775569889354459977412446994338900892314722092988495306505241202525141239847227172802218344493148304128410601599542588619211380353862575586397786936359606964297930663086158040113414379596557354770277753498975774858073493562289496003139223828837448822166990964255588756377829095951854948621565029014916706242823191845046588060643043077872825406358600956918419853431573791086532239331459128264516064676566158743464526697985130781748712390556835475908635119510265152223353500314658731585784463057897189758348943082810009965058511456089624878827254522066887615978145126244323253375259652803223618936386838241873018210470842328164811835355028291279640374092363593243917476450786694163171713371867712620281081720374795112199547227914678698523650623998000425114021484477046490851406126895502334895094225213909493535167816932949345715068716782552782890133958889079837053404696379575449141692217286685499123913446172091004702221566906149096616613030117581755495055134699168026454905475559276371962621471539591174881044764950493132040901345360198522988988546933457939393551997267538778451579333193106687222894094700711810280833890674610002173280834526067000391341495653870669332657707518599776029554099226786963442845787006890631119148314986044036022843337416031871207769382290553949271662644970168054674651949332085657359738506566969295928193545094086655035528616076270607077979643746037450675816118044431221586484829620996984914203970375296480823923304991395424672643086858045720175862050862882465271093862674968459496731140044130901447077196071176083935396669800018571030948015497527047045381114478422740480096955243403646504219556394135292830835298436973060114018675471185392813368591148635950081626328625343986381451371902107071041524204682800324716008756982035004564917334744822207327018100750550699804141773304619555124793103187649706993283550629347388392065741948479693666374449046499880582156245931367553340541296537490919256580256449629348010978465491201354639184852353581007898363799683514401533179779749223708444419931124845738058644322073997329305756091524255087893540365728925911579682717307015037947245999366752802644923620103521423453661934190753679144431092082836524755740632990714784479510192692563927867084120457480074250990562578145578238491564934599966608797254447096264437956797472893917033517315152294472327701105545739449639006404689020839427311961070684525237793482376781233701911255970179996743935605966601602244759555807937487599191192031816128216334828121438881828916756744087064250825020342005431116615491680718791209638556196250126998046371522753231712699704656699610082921993030629190580880304805826730072475974758052505544158340982995049712534106805032861563250218620210538851657568922773667125974257112441262685132722701736065463699365457660444308262714587576851706746823409997200352451808040990851711531675009136170920136049897920260112230165659791448832314090879878809835520156038013523950087642866719122696454236991315618737475991151658770913600134716014569584894510061042494568667186131548126075092865242951393780047247731760358724318360768361711157982643889896342109112309200673715287265800803565255993135032345734739823140747800760858637272129454308854007863277230763080514046730374381149300093968808977534130924050156531631540961226481227794173692669330386044449985311232502657205227180984010270139727032175673332250621772654279691374549095379778120438299996135587096065204702463868479697743065164690822250121746751221690506401799411636203673015296028180979282150177521162776035527549072350494517640963355134321392507642986793121874471932149850076200699003865508141464302974679801619327058611453538914933406551275560363433565796801010204710046962681741461599719991783047774879060834295133456392048266737971983011788044056066935789186894997490601359230682486673424005756751580584830635667452905049023131333695609828696357948943489376171011193605642014189561357764040275533050839304417218049594931798838939751959820206216222297214223002971998036073002847120693289166372005173159527899415394129661554375562641406955872202191413825674155300028299263848637741194730408837060620030923606457123077091373049924742367182309158755196604983272330846456904824486838305785610673228167306223186264094344645902822766964336704054598655743208297297435205918602776416165308564035366773588115165719392890732146603336534635029897052591283737722685776672515139569895469567700291285719574847077575926368336352631880310843431709888630842412635676226316593187194391945448229550321834020875479049174065733183367562655884139411444153882077078495981929180852956506034908559315758621457829073274979244966598087057483009305704817490340079672039110676153082037079645362246200858269340217320932813505674334241059525048824935290490931732891833781755233952671341006872184000171452323411328101272316352537253458705566579089871942961228629432929528925328970283957093342220137822910581851633529734641423159436845368021304198858834507749133510097096956751013039677508368664802122805899984631645266798310715516660132649325549728123981739435551381129010652601944390947665677296069405727001674359310792062434063527190641329951864836271325894389085286065461879559904865293860856878449337383650287519966540877085771627934165036729280391110462846871413902427589846748286204407586274949878864062480173890769435175772784214423549802481783362174507670554516652765896568374396856119280267797269049888507218825282965870720596598754477046188269813660472867974627911811838296938402218271923647265608466901006591057971456657196176698466755949436713622558911496251858594737409244315753994872212077307029327913325419506689576957882788905349408278656173670460724648476100991442401788900700404529904571119029578924064931064266259727775256715181118770025809580481190920083412829524595537585457677554360782487734651940018048584394051453814240174929591630389220756877081507318774678388888512855080855431741282353860338487015354458588496211834763875758960459269073710686840265435163621663993012446877001178592299664252839504624343044197077489808960820087734202991576737826569792713331449427902207168843880940412048829533180744186220424304310545307698217324213955946544887707022269151133525292163541325436180946640728382542186420847140054864698627672747268728744293325483523298213430444944960485617139178800933182193295791413734365220069287135253342041460146063160086342615522380081407073048155825241533523993472659131830885193207664124907661552963247084831718059169548001165446364347607328169781943822983697756606326806160647332770331209475647684755962517083028689944076578602636456507000765612523805653372601989413519267085055407835054501015453947742096467089720438636005475135001232891892218017057248658270892894728694627516636374122036959240962870737747890510947131377003241675321691416063964512056946333909576217003687594345084800320757816564876877689792114232745592969637164516582340688977539692082854209773504186877359228891680888774964979228518925661858745848633037814982243661168096309274110635856933934918195131273082152863805106723142844920975235830808199477071168585229186469324544452056555059759827621240208629906539146043817563643783974989235386147509928370335164012538567904909974139057197050905561089652240273581418692263647098607498028175693025415089279146888805788547527059561946580011116454230696238273019114580645729005020616807904726938078103638349926064288355295623487803658447248301938780841781624136316311254918543543405890405028813466835917916033600075099066784945411111840265219185224500084815287836186745445326940349314657660990102070442016266114927814014975317425052220523593093647375685257143486198164056318965473043138720380659981417448833675788673819840563867771040955482759763923244952769037862641742580459954026705010971386853386989799376340413262036088169465563935802976983564999436198890138871976037044283814521647963758740577305033309732302460269716395576914928846091649204890564327124976814555028938701327453754568263599160601700536518870745070844364061845701598108035367045605013408400201014433923868669958094118091841681233881924248864909269664992709413280926898349428262603544995021963226373440170099423173064845711032493768888102417868474114065430923721947441689027773654441586882208000806450476527055895387955816016939724480019279203050860705358915440010898409247832655342681794859313077110160505800588176691372843298693687169276568880851003585145883141010311019169767595871250588314819084089065688747194381510335516456119068870006385361891992649961387758285092896341172727528098217903506086878688412100586770935804458857416848884842220810989773806711376229563074304645978803563590297356978347528236007471334542259902286507109042524292528251721254968028450588009299117086627898050266963947641920108452009597098713730479740784923206353746328330712108161776803495432942159727900298064035478736091554745889174416119572234413062417306908893853985021553141052604657636691593221236658789447859147747651844818167340798808699790662872639678973894223679578251244475341738029108531455535292652706207080172187232232639038710034816015790965748225022332119071439132111936945645434123079991816450543211451374984884689861161188380585051141212122436778153062458004045948157433188512683611483789164304450639610124469269554666653575885971749391280455079195649062814233776601556078184931967349267678732156916895132522731289598738845961716207808546670224013524828277939840840309234925263894919464069372808804097174601104369284952634742657024160424921584736324084225395681033838883927719569521080734414087069637945144187023987489494359665161864544662386420532424437719779474892184669372060259132456126575242873675089159184165479901031013112832235681422225499313763599339618549312180232182274211024754861319610805586588727366072911148408312710143885787512171012895742835691656136823450739788370116898454628599816188061844188967031316125544359116169255242498576695039316827876698754965024558463240702547697159064567652238594651730109776979205144764062681171361769589777274319385456914323919615347000392050906335401373581975322313126215785302241229513508491531637654158102158691596468867428840949041728770400445192488319762093724613396688112282456653998825395447063812612342805272478686786897072177675177267960855936825015262676241880418011497091932312082288283793016930756719583482564410864245914899103454258081099426182844182634488551864086742895364065248683776101857398399309639254527645718245944702528350008356690365178137911332418840827101755961016362715671544995425277942091083354297703427762850899936260583084357600332035591562695842650246736922414155972744792281165337353509161098474378763298554663620553885228811319230207982259197253944362744509045921367222499475986155557957368797449885877994059886530888545521673748462967238752415587671614280892639368256664262543500550473726707036566204559039909670538329611050464471907718463789911857459479450453012873325011194387218425115211920387172508027284356054060621459053899853368043895434209970028402279917276524895466437803745604093776525573511998636091142286718303083340749977385336912586288211143718479600771641714558657411622152779073316996810635248459291219412137500944022970453960287591742820935876800504264766766339588146680802375098229835363555400717456702565624869239819209674012589073620708713937479752462560613796197567895422214141919717670067181620763420092545805828959979953007193652328792412968451103899937608250225121185880609318554043171999534817783596946516009697836504637380899644479648973118711550995461030014652347817174229818905956094316567509258704548691126873308098838462196897566023598630453916909632090807025237126834441865326682979391161172118622913217084671838871107666691723403483539737491315635308752972795525292832645716656529011779510021836721952481946504156851112573886704735811949173618053072993389891497189065622980679350666926784069821257726235371858989057120296169175005988298571065024295716777919984862244571814884047516750403728328502627992184627185258874420872000404212777053084783879527491914037129488519497989614474064685397652603603582117260918443142530883174285568896463258478100663344375553240551432476973858215839838199136672043951666875032244054008810717531851921333922319983505909200859442354706997868911339138680833353419641634605483448497421305579532453687635689733477280328950708558713123368031573164832667832450644904308043730500701967201676475060596655871887378781587325733542096092929147242925928814498298077765727014876568577327416937386882626519582859729775121346950540445082561523305163373448166740093628192761904675482561482521956979378875611322761664381432461523760755379984131163518597815989226296176891896122519827772099254932983241757544214909065596486550054582966675789319389787618513754476950772735342995742082944582405367976367097699205091838497858568345815113490868756558889778032294754662551232718243457802611698642545226559714405315639407493237099717109688847008591575671439191587844575509535173058083089463648696667488868850527972210946824602114082359988939447064744613370624712200571098116156291487584582355875190634722354148021825850559416536201095479583009210902985391382291526113876768006861208468792918647463657920201055677282093377546342270991164328673684656504519468601459765012125860741098896797952175308782999780950328116106963460761953998627641206609275418146610413019097340193319283494952653843338386204350994619866041476485406104558635349733600435446010397246611953474642255618033226937939564438073935792151994114507086283238005599663293133189889544111785284818050895344309898852615183781269096522247991952862694783491676481328668283132329899743674947528712018740520066134488384416632240870882334310983664164369569732399795701947433157067746385514028975668430960167801969146675538449639606332111879615535505738743919616294774179698440933327028890323785524506847013974254284982295657266239483732634728674104961166135987691597150055748057365446436858695659261132685953910470589984674259535305144024365846737152907715058809284506021491894856179975381401227834868324373726959474857332673738354905211775964616792866636443193696051417104539383230995182516726688141587737718365945477514619240231275901808351343013336995361282253396537874122975619526711912822582606674538429541222023577015443211241383731662753761746559140389251922183911123940753833271000924765077951469046489732701724497709854957164868425685250258844974008125190333369853115476002092785821257460139567836030579520739444545321616713329437194979353023646204215012411844407345294010194930796570659515416147718645713257103570615635445722849946133605544495559933620918577507221458018335051708233693220615105027363712381628860765477323533292281386400358224516868344373958271812100836485395777959555886368745524711694490207772128859704682993959491145935099868885896482754238793846978150331269434552158036240184213161170389091495766210493744040802550413302477483112474217689942812755546730510382859727994652378665863775537493675378673160886309278753802812437535997095803328471336653793875647306894389109816975311892690494902342220239041697138828460726803081406341123979957731243765259326871643221075153969059352603768831626001421530347682116609759646045973431597322386019897285047775334549261778963937584485158554036849992147333106915554089093812554625873312739968607296419587709051008877439943232380329350213266569956465645425504817975737347781432396306205010189933686070651530124824017441539522270902527532486685409095366129923722611448272429861277320088907635803031912624865638905208318691768980475326769022682744200060891499917689266975961218184175992666231942270464111993084874998695342773470571134706602102573262608411991014051364957744586290532513475306991376039535550057100994792526343419401070504875481400511833048686032106322246450364158967813161834383226663440287984570671661981664679245255567235631232531770498874882338936245616361557834841214628212527421428133486275532732097851873379768304897611993885892777299415508163963013855965241255050402284841515965883617213241636449387620888552874811273157537725882101093300199460872920136885210686997033509065460913947709802658955050923583264723724988843692111952673866728864567964836060364785890376631554772210919413251129737219622616219954057638970915527028853213872953933937072992982033866049056705928874226566308651931912483322379275898541977871531605198928743755074020410762366180972009453569521599299482607159777591256023429866881540754015122655938338428307755960202307897357945709197162518063684966504811291994466306223213520036901714535599423410377041975362270571196708433604700596518523182667422901927233583575871773588480045011974558088495799658008667769666184238114853994994235215072819317954547722865781079417263302597350406554521250933286946258488382628889835339050985202966986412651337324255900253401737474350278409525810026927921171521860641213767404082468547931070967470690041422583544578981280406072827204760120458047948930189321128808933068905506050702858470562138634476787327731206943148780922595822053056159532063811142749604674268930869776738356045629581952064149516279629283997238684600924262841056704764363218686022906888309962391519270138998524147570576098923927367041070822963986588794854208093808931143088088114247920676209243434539862679940614032389424671499636248038939890692083438250852318092734018593362089383896983357156612965528745705455039667283096654101577986520052936660166921778883737656763528204717375283716412174061994194760745983144123626020096284669739665949511212801006556735396319973463368657012128601861482886949959896174830081216133197433695857071550140760627117337411296929116723159217346746855930721813872006969277380233118891256428101914287251784879551082479150662881699366960051548322565840045873280814570011157930489627312087695057575485325278404520927425070034989792599695372596295384607729621528617583363263783104442822146847728330522424426889387000819580053320821866106095630545160855427672312878288160404648050077252853603372185570969315843656938795236870365747566086495229093296965980952490080786101215237728409263114835112185253633403751003926657301386879386982110338168981780381364431671750430715598498281487528179740783104062914076092691477614755108436792068500873368298675694587488169551263837058574701830750302614530193748816188923591233496793412787453810093658498854380660948347329419019025902388460410779052251241787331789571141488379379058592980254515990640240201718236668220451411414098597382653680596783058796102307204747558900416103241875822066175009252191403296526145625743913248738658251291964528755439249095739113251025661258731252371256532941894419911967884416598695414475472906642729726920299087218530598466789951890875049986390966128613169734200109264304972171198219555442311000510692330765513268472721839395040505085935542413322505140832442715825938980112806684440076390321394014682185294840203499974268827282376040462278101724832674640896710004211572410413368402047333208112544920733549271734339927160782355890370873783421716772452809725521470074194900804580929322969227453163622130623931941836156050273586866564500743285832903205845280996468890535144387385719672401364131416350264216345441589535389292741705386413007595072302671329027080935232301652075057442290249932076371590252676742247892261470651674812387303550718134529209824725262606005741721290191338357195375055852804197794759614662570784729440927107132594004403196057412860471732626241360712319324701236275898014702764183706738189994842955497325072745309802034758645280721080188921921859464238532944822393815087290698783390678740613558339119297053842980818790953118787561354589609533891389213247110418340420413184935498273521541337700635957255295994664188816696788981889962631833782042394756923599136408124473066589046944162297000897281181450470125758618221198477394896242786566798867095425935424008027384702695416967232861935256077133670429905595280932442722080793245496577646752297649885148040948192364035977926005616493161819742919016215343927122975715768882777590859094287294012482781073437846892234876811355158513819164116243087802377330330937729518498644286677029320470554696203583559007721268242873933738161328746905419559525500494938630730382736095382431538099367141817466556011101052873016333165499708581387966741494809631713077812057510042727441052718167933910122171926813385400022698590668420430202604015710285884851084646152867367438821531343590498876427925115824736492208363567613488015116732142930033799924941996276246401803484875136065787270743258488569297861489965074453210163112274277304614842083789470210568048354213383233112398068379533143854125154552907757996178721148404516370085692900934384707275895730523362287806207549197616999690552240372980471730226438364118922538935702773419013173293486475253948047773322717144407028999294627300085291978826978161349812047468450566237212882565930129182197370745631408767887587845902497478049353222257648107594681163776007168411290374906503996333374348113492300786973519339152099500121959148341185204415024500301728516472072665648841600271808134965135082448874700859525886450465957389047725520397024293528016266207725607379710260084595760366014107191337952483900674922145375610113702304938742762978573530136624755904353518182560679617263960527885805624783798162542841789204112228386372455339202828781112792162308584442221928299994527286621894031811276675843545429822397031292781070107942500166277670766309910652598627872106761913227174827303016662715790751734073945062615440730173220076647466935879192612477448127298477567283521498302494511506984326654419664073241698541911403587071834278594186557007669380788218473129161765646715885681599158634619502154727096897625954438852534064412066938242847957732033386537045652312391758356461734851041047331724250795079898263572315061107001084497350333049619085689519724053590710522681246255037190421334685098923982786557005014830636095190070763205995458437510879962732026178738906395216510547154674900566402560536866002327863732625327160106006658854044323082106100854600291495596919621341951284553763608197827402980249851289246883014877740320630785067582437654287679669830338680631092202945099543480280012714905269788388224673675805470307810811795806447579324939349341334154189098002358115168815177574891036869061729196292720884617141352093383866069628826638170232740441638350969562879906917506858313828155675657677334586183054922924072415049521932613004972702108713350531580043490190855791836996216349686223451758852669127054913617457934258070375149069517050157555954860496856191986499998076188291531418112294523114561249742439699039705655882273595777071690541674960278759183035325321926600577534707290882070967565827535672671746150277742049201414832964168059332552758474110277246649499916159189629222461817857761440216570263469131255780848133747023477171088683262913888861785729453308274485770684098286266310113119507925832694393717251021497578037681519021414548787709961828312670815350926988412985475484318647369371376288429948089925701164457144313952370302226693229477686836873402624328047909003585562017790588067123834031356081215680550213234749116738392030202783988077866991425038730372044048734029902238517476032948382799260982700222288702207811568024369147935603333816992809516996991073857546572684495968720431374295018717629055615006085312170237207351999831685749157236943543872349493606035959774224838802714759981929121735941310232562531727650162308591026684817698023032175293227283853472168661007116971495551129119670994848706724214335508651977063895216122042573783674802497111578842444585801421959712498764030545261413355465713386325814235130375315132573952918943347337024450433789304754599558360760459684223074488807245567931755031547271003126812888823927577686402455969912973544598438689651083516558306775644036193567396188076553133496991309849427300924485926464553021145085696190298439698444876221888691244107163879970415393028597538712584144032247512151127414230243556727959039994556224378909792994774239351736151376957401022447886210511500789867743689746167382990532999051424781226402339721352773762637147520468852818316520028641326756508452945894412694727968241402514507482175040870472209444077103331969012306038846483606325121544816595916177067100448210067268367401427417394465933088567559470425552191226370716636636254012102213953249965296416597819951959508432150332555853233988314950282695985357768567935860641256405928184063047550975872192570661104414466742391957190104698748928350779894270466131174755600302052397987769755042059614733089759861193105949498249216936646758838557861420572722008460261676237863360327142904462567822309908822652045451399808832688166584602366862904009753088631510786365298262203549331473100978563179790293374509044965026839590092287910757020737205345343087283594870262166235972964076450804780062611373666930388801943848353412583934497114925393126912191726841192668859576970558315359302064553677585607438851412686511129192212182461328717943121568059680312040164529015312952675393518549536649100200771208548678917950229908816186269799349369906440817329636750521831019006928468481522426977975124978535813402282485491558818968440847295421972895271440907056113518197000751575052290835940596469380196361218410959490420955487705367423206441433890901165107102347416771058186318665903581755636116023420922113601843296325022144871607549410397958488571405076839273554340639100185875140743144849714529676762162848912516788436521688543056815859141023487555754292730114146608554894541860281030095911663387934774179130185904264567180881194766844941571492736081668561389589962707598835681563263525619226420774000569155151764419184728769140097330938914898227907791743887826576591865974048881328815376884152177418105102828718720819407687470572332579349459690639850785558990487590988139501692281338617356054116581136573898105977135937218965894957624296684428112445762100656037610477577638192695860053384336012174777366009350207068087130561673052578237204626559940394465688447466330976407249556857358170372174844637909360192034771725007236096573429964485801529682708636023704564136984605239953128304272930586504434169476522036321417505335070605777363270702951662894759308480282035804733269385241487736631734852301442175679324500035312963921319511516966429109899377435984307521227801742189265633662510909431496690959535458447454469579094118760343426354667059566231571527821146515617729536332749969253146360075970974947631352110021485389418658321537536412870357094004326148794739616357253450678773263303259785016801794932817844420272866254918189000932978921071004452978527759535681680762582878914959565170109623429476817096721517245822485001066581130020653241252238662133363008950305595754286773662181764529908927403447553096219972411190966382672700498490607167048735592393658171395632560809669013960004264864894390498174268346206772685051089569774541798449880086558006892169898499000569257932013453163338050536248614829985437903027408826014654486773971185989467532873102586634350777217586749780004355966239162930138837725217287434619185893345297349359259997219982957557158625982926311290692281048884114232020315811367745468792241339681624836507070924556379147584687732488726790635106636636764132026283202656844503244952917204208782241349223563489031239736051235018437070225616665007340265849866054434905720171326208204042975752260478502935011599491631917720549184476098692276742599617386936420330788305829237515388546922406366685541634686863683390184499112109540711792360345988868172482221038549012951992323490602072458554442367640685696416454794782231060758733082182854060427073587767784020744701162665428062125673087743268843450815232677703835223230358767503924000431785598401985658107427691844991581336638987286322691441318394021733949476510216084334135267386679563697923505725242934553104540160801212460044057018913672283612230789682070192601608513925864282561059349248233096760645479631560946593493969110813164585580849215278838420540641920011121455534085726406626966029577847502918948424917668540175251299568978024059860817520677902795954778199440526159119708460789123297116175041560133544326448549574902926459248246548995449609780506961196003517520627962876498590939875949110032656287671634837771464261688193316391603775119413495754700403563107640899654339390170329398874587430585518721438988070575478429404376726917555193955717066367676184494514939391996473751462560499260904781735942227246855638594841103524883908200567892541528870761042781368469085739160664869099915828119704848141821563381325164897373354916476863098256059707083391001540374747526705076701572381339807441314463424810295609034956506636501980739755950437039708173104818341168075853329220817876919038928718540143486980887546387198503288069672992243693634981973666876105621510071220792232104184235244010565239353592793672357660768787710516488919660555281460389120127821750387423769717421415514413490819240057036900384022534197118682595467267232547837271383333056398775938965133423447855630634457506074325313652088180669721326210249368047640848656759284414109076067142161860531137807103716348561490194642814831934827443087210716851878889662920912448923422192990413579284682988366458060737047640709147068640110302851099417123094502878994481395000877147949344586893483840780432415964104191028530150254971372488203970847943709927015523723087904513735401309096664758409205765839567559247061976858858300448687921359342309085953308125266604953002889553768332725944792793716949410802235619188430003068936641225545713159915028683173109967336214896310827252675833366633620040742063228947328960377989484434997137840354428117403747652021900675309779661327048344180006209510855109038325863596277674142003603073092068001507323398493842477352339483985992468438287278187273043671923260899550468903535187494572726209642549736981261330174355132805264801020339970942568846979168061587597087919461077490733994973312417223811391315849130050827699385310504010744305746811771842026354793353351540302057445370582445784794696151888623514494417890127579504302039834559307137502304909707956604852390750619977341482740684996911275132548839958090564211990066967442777890391883633494853920510499030903686900117176407844077586707840662437679232930320930319039391820605961930019130872604927995998687332101446428186042242538018027648539413691426936849748205739720914907820218416813948354032304973430215975646369287508012229779273501660824058818144073108741015180301109458257096688747864739747602387953421269290566844445437862654696039489853019424475172068025435663813607239005561623990651937297758298730827629935810977576568097318238665257310844539681206639607239930764412880020883820382664272710665713194447008951286596517453191395981607903306165085424397646176820952304128397708804936963249394596281042701322490287566556985446528575242302015420441892472525797145140423593740464485957460262120502051305163281907590315261398787331331021782349451549391054445786732755772778556935320998945295854184085361653243976841283047243450646823756253870446848316674960221020693239089115398131684036524221947828011263918635917828076262549708277121474028604956413867974044693892814751724487742847121086226492860050702988574853254341637800262848916576021535488856520895212081127983906899227895483203273261373412861706837603539212012204075458977910920365227457794243762279398153567352327987817098248392401094741230348265650318736823996157386189052527891119689730931489218029102884026198899552824866499989950010257969333521353178652662900287207933177456530907441561661855230064013720650136920368854316971697467178103571382316287736519836109543093282879369653894072256794734200880675183493333633111195918123232561149475391167693313120855648491594437460008030791864005248965075702878252375421197171464729953887363377717778183285848329411106102830995855605935531690396252774176544659873043991017849279113730573534689941500674997894463055840811327963771765364058056252446901218451779233174361611741319270097814141975637116439961175304977674784011372148290458447786531191010409560954976660309755118817272707803382109147467295718973005018288654508080516286045268278158018036698147371272130080149962771047567978945295029189293773642848498368725742559293504287785447015961564995105150136367864414059456767603704312836985673520413522958688206653298483949535947854221732914255150809706365104130011405870267814785740286619984236812571922305071893206876019007235793082718242314417415430650878383642468998345437614518415481899053268307144502871930832601395542423919435095817808859495044749553479363470031177954377127642013174252894028327614997672149224778825572029772511912095354603620006397638612556143097044999379132287536860918399437573015590579587387835393626770510093896634116998249008225016463037939684592716546346628008380023153400020594920671333277208393387293030751866698467927954849231128792393160165598057591912178694692094955198986432089498672280938062691308632731125392534495670367218365314675304705997610528648447560163085426576706781275178431251866368038757556382486684092308036621491078409271822740746598885012602170065231679165491057770248118193293052264954435404962031064172132951649040325228275834926920031769381433630572048491981517299169604989279519524179951050954119227198514096754486347116903517318181653945848078349323387780920692974904387658829727960507105774668040610320835386023070393423701047388679822911928424890310466702393247779020232807416143159044251502289734891061796300395285009739643362445322327138944475376152363409446301402573192164013955878046668857041315866810753846677105255232728488806781485841348625867448949599708699015171942422464644461291502334727934025390502975172278364810282362831064990670932452643075704758870519186644643133662029701489624567324224971524103209348688580932146080074474912807324996139257895213785851126581652852228592069906824996461742134070423324394557704288199532732323824937832140049741212512895367782387852307086894981459399227741199079301488482113205204124099449118923063588116287863596002558568147084328864540879868453333593511490635688324643946263040219954837897438201812331342088802911395528321155922331966557475291985180206941120238535989393835441217539532587954457430379585278550948331194204293391865898100519550044009434396361627106390043661212734338473904005293267009096713089833817718252293640028278169722534974424697086398076679275066651193923088611421064379715514817021309646239019340401605923257074793593023489351224661751221335627999674625733037286146772951651229674779351048769717460369638270076393910742888992241573856190239168404783083593069714150794178411651513212321616357099586320394914469041913824106994962637567755246993693858726813037460949535700521345881028450540010346106439331594836979684591928157599658036040312147554383341384051130871816166663550461830424448391226568253061677991502043463178951895384474323230546955376716652819540851984023004669660143446331529833998506533700240299598403118195653181455722591009606514023246747529864506536203169204868710992606302093649667798013872177868937719970988883000405113887680522905725602858972286421660499484284945173786049587103051232001572309583420301008596186222755924967593319681105602651472252905486422369457471951773333202121795879300311917355461711183451156195721700589308414631156190881857544775112140366676056743028596523255533193836848332277077145702279971416010217848848452663371616762902920953090436182147125207276399714588969192385227247009032165400879534358871641246344064029072703944212082329517513557975499448344029940481507880413591782080842796987233497122170778421507906393045395903351546104551681250429374013999510086743921004810713497213646777764568610180397403258643260353349990247922594937054746728247313504254460208616993236636294240460857004824302682470781791068722589325037329340513349297607848057450801198451987752209749508523256097137303693037320260287862503977697828358429135105524854781040916525637041797144087079989117971423191006504460024730064898682556754535673363074488528880007215900145740535945753501480429349957378257405802825865521996901424367228585591236380863559337036652463907457018230526516601523055606241120160460623931574876714264377298512337542887866617056160328827496190310206536169541898864085681472960342235194126848033565954731318788285312472483051859811209232937018936094241619629415643950815422349747282359883202987740112007529841720003316175894639124081894727558597575315103796087810604782702155554845741063929298035481793802534466399726152329203615394582766516937070481963224718414987121680634226566460635466230311991990705271448203101981017890247037607314376334842955415757192938607391851045706570453870568621329624645393872630414036913862856325641669332323085766775799164635289460618309990376509434610453387770637374761172453306816326639367054602827604252124356288384723002171224659032143806119579465942699652264870859820742663829001864818688038465540962124489322939445110535807140163904368192563583499443706216929055132948459734099337926040583776692647730049661227207954992171416492832416115545736603302999765875268516514380932456049525365571596513127533383705172899820007060205091629437776182154317506035512276306186841123746364037990798680453132796637572115659506770226560143153507760551115746835874533064664965208399684860544101933218778756335056771805506264250851285526377087913966313934364716588291494247586350205994259393050608754601362308279485288195999264591091953185844927445281488759666835499557313171666050401817901577331414129849327153641731854330577657996174387122678626608222299120732191793658132131945844557930934199710136783926501097651815697339295041553531302530595705834765251548657536347746741347480615777910700737634533968236537942055622298864744010939781018379540217593569054185488649862504266039505326451024938249216154322188694463249613423725221747024485831794906188584833377870850905306351147226694697530679160645671882788161225970674176963822073583052881482665246210739883684623333429961009780326020277439370740448610641798178163281943269664709637601648572753612594688218298730241688456395061358261684526505552172401575412539317548089434781420786300100215827846300563946624086114354713736356506893484698390647819037572378648709816102745518688143330535782527625835342477876778610933386237453708950330461264117924740155868202141623302512789306977534986820205399887459018188420978608485070564473057689123808641185770285098733815291731798255690244409551510906555009760577772390193887849003223842043074467963675584310883308669551173169298178263504531893340918338040223628097102981411561243802540507266221261466227171785868768799608849789915355466845665680140750390928165202755487186142181733085089386507496713241447706651612507285665716735020356165173225389100698956224322414987403677804255636992204911207349565481092833775059083984470024769781543632782354505595888166292548635318908945003946863925729546584134059420700061900769824110501038509141891587652477876215794351374483017132945280028621831615760476476521489374261970127502846651486286894255740516075280515194056021930288188447732028091614229543779409574224501796972139747540475023520698648213537669431055420548050174791000728360373753729373405131757428516889972766780576092888288494312286094710161984071591299910611813692644115563669592311653761396115821486727688223782338060273801988946036298445762135248929788225552542282856431137557742995845767710815030276812483431862029457427396773865711107647912469256529189391476709970491009313379864958156069507714032052865591241847466927022938446102116489401544723026279850757113279584197382161847929819491138844389935578389828704654131894499920418015606382962052279439813934786506391778216113960902266196149622187597601564250184841442701713595059147158763204288444035530870612233314831165900570727543026421298484068612758566211131935601112668205669163633531038903862816977152031795587613389832267021743702913680327020733832436151318804498266192981660402575441928587643156123702034280526864116623550657309218206369342276056164145797113600592043874048028070059262410824457448010174266954635125710886405867411004832096560812374785277605504644313425137685329473316643535236602300848182340555275131343805560707589100463533700174144754561404347964626827549651842073471121388476502531463219623826015270312797613302853396605501245054905616989579726923515456038733541455289637730497864774807827273497308675084913875463639916700868177864794948502097137604157383831789723226476586060922466069653773820264257776694802857003160163896536606790175550702092462260925850590552560208670460796375180018797321669048641446441603492253631156632914566081820129206334923830515418858061436110013859268994677841956121463520698758434236808454946124088938409330750971970729280895398364098660214847026429439837469420121190476681150980919486738444661847408430415959336061127608748571601693766473886512331371030148716152511674213885711630434580721201615035598759732765633710729503306412477812571032743344053413658049113309568442109272704487534700239664395101721163143191478712082599504133603923533619834851492622929562698776191567402328726984810191698817146469114387534604576742846391911510026277236070003792773842048217538456252767468131131600081523452406132502660118604366894428468287360542646689599076027256815263736760811089974640537567504359261990684333036194498450223089113653853065411538555053899820740321972116576572739468357782151297960841326314625320041938977375767049205114322434367778092694544305615785558617660948835852775462738203408262428538784677358828638114883714312394781244571245558429636497686253040833649973101894127353267711619928648689700811032166499712859154192327548021487597120217019365676320321914947418707229198039519560898341159109846436278677657304778831191871390436522016466243144304183955940604979529776492282706134648042707289800829980032884846642278664374914500579396107298481396634490368887651683606928469744711652717350145582541916236905463853904665286571932519948589159721373628138121084834231138027978152383781885942820557769521366826860751345996596739488198430350633682176179031404448396571304817817436013553112082411278665453107866072537825001874679318279345266288284935665909786625377609660789599835259719664438859676254144876633623965543124982019967490523169138057130485016306133840728227846055546782831719175918380487546756778993278824283298619109709713618421660207825989621644649763901146359583484021074274892269086267518864668262676762558369686564636248306948157563270036658188411403997999123485402181025165876962230109873311321115579700898979958976038741952880508889525820639489549118655549616854509697398134448624905273539215030529657051249581752389452336669035305504690659371790591841842018721977753731844709376683816329805845861566796463430258376322242301758484368596481593336575340102164852639708104297749513054680294355640354456626778964954832135675867832185132276156232528528272196199520465805083331753751538606939220107211200627143853217068145786570140124176023910692168246599513684249261247915550070095928911206298268072497236168383219914694078796470089396409284731314593038601716920756632043720509147432502753184089934964351360868603079217850106258446298148450587224625895889539028953210713514414625128672584223900476978573922624653691579683103410851150990366830337504079272150342782322641051128249616824134646105887823714106191333146870659863228306343639585635299588350958910057575223796602591249454716668749595069975190690465164918770365063153966371895709306781337263583427123713100446411019054637364964682563053355614368428310575020511318545359075221759854406111657585463798733335251949668094887225365044016573976481825764766978064756988258260046619152862690017856974203613165075856303075061449609782345923755024120630389058688957867612039713142134758082507057330266862968772214885221229775134352775615424238653183936881333157964547499736937978779321283952797286586016786845901509505279644356711664608912359689878396505965483365900435571973588603352156003668854097204110979560590467638461389858473011451264044755774249673882420373723817181206902014128616737372279790676634591507518015829477841478542857975228451974349135095733611353955631203629811066466677537900707472894745149762639082065802037263992784345730620571507852964717895035149444799659229260160583684324392887225401969351630975050309856041992002015073103624399124882612133593369415465246788892539799686652226101144867427810479753277905697026132142297677889547115355665234495404236378692666325701300294620480365281843853612288742995441461272150479639057419482841500648750892356488604000959677225595173891898016446846338525962311449314024196153642070227399535467057594647454640677374246630294177815020685888239067752703849759409238988531128128452394814881542156878211816749787545356608741896242566961778927119012361791243017468799830029929015022196772758714151773748220201821137862972617565947512490740086873552194180166349423417510479422936791823891865381233723349730385749873617844026261404423157601919111185955914555699649960685693863301546290426700027301625697750616685720533498650855703832595020073493552659065433529791862721256522526249445581737374104827145350541777375281461893866339113677689721639024639508768359918802080549830199066913766529721221199739445622298539121218036707537827022846054235718355354418199456588923514539452104153021126189956238402664691520821055822267788791789125267567725869689645793858688308528804432251464500138457614338168772963755346738815474252822018369626909621645820579602843077646603974773748841631443558182779949801179911870039296574196956737881263083423630701962178688460273527740077246412755639292025711576912804021741750120433888631600282274734867960540766060695656058927845004475860618192594959583493545918395001001405175637500871883469442340141141091347667140680721886709548656199130906216297126258456738746175852811467402439119534030660563470477433477826637245313963885550276384463144215367478007471692120722981430306291095774324493942297256374131137425638125005308433837576247231632331454223705339512729560773421107805658474416684173603439137866745759954557165931432167366337861508904629110233908670686059173840638813502021558296074995947308752115160050636398289023776526803444717539859723140280175345218752582512114259224215143149044709473733600544312361307574589360585920183406244497661397287609842600960180961254177407872213532731670541436990283183047756072992696155661740477387652357450305911648379462370345441317218511052326390841989025314985618526652982824300880173156075096964127173611919275993395326138939193652038617170509235828120676853189388181879280540314129022150032041594574400372771336968197006707180493009003431869724585651221967474178422866142989677338945124623543409314630913261563286091696840090149608124130236529205741933109338094687341261895690698285464668785441071401227351103078258442420752974129252875346954096032777940279953046773199092711055655201993791605071615695576528869159078591416111539952368583677306589392059854154189395585540124575491634028471796136235224205752195786390921447408683554919374831411855928599347225058912522296071973224277976763695934430997646267998851129032685628035746418305189389974688546622132548062518468406231782561483543971942428841873176978763828063229696257026094368377483631096142876664103349467636474702177634964427958455182622104008768481841590956140884040334425331577848222356105197843428679996552075600140254345175769917087561695787285818947981737237506593384013709017966209227333484612479091584691502005492858108172056424452891909908680701206562877842337269714861310161256062241385439877087832691241843869250070504125620149750795066794933179371718036059933829505873090837649328739220130502064465969311237008543182851430802326165990620210716658885008682875539997976058059704181453351896635563029580969959749679819187816829928340527906259639861794155094547526510757951117028855178938023912841981702906906694808764291077498056777712244744392350317604785503397056487884616203447039240657276035188063390224118961813533718619987867786063711284886439562672032986123978406826020458367265842773397493710552297198956949027912822289427258129110136678220279580683567082943061869997295926501693624251949412065887552050546638973611404740114863558987567323867787208863212978054036314108402187382829576693459271741710280858864606580033851143900966678804773256278933830776351779242801600830270810467581231843575514385776589331434631216648554648869254496467220222231731977624808332524755945772869725215971583272929592085380737570512123048156781918751545289807651566056476188631575936845609644524525937768358789700636502731467524742214684152848061499973537087660980782923055660612718075508553284108584754290952421705476279379404202466904737436974484898601157344440761574011120100719959669996961788235706319927084237994481515788363259892999722040207867964588024419023548836318672325021340603117660207316178464640528612060520953128944764408011798534445991442646729948496888751112900669252429642092361714109240659661735816210797053970029042821546988899357052729310416722354219879288613759365326401334687338696670405595573600498951760213877971217478054381749633916378275607348562183103070303420167207487952392482180677912486612286885854926772645011616449979951545284707861062113486395604433338040662394800432033468743134213252386316020499465748035125277649214675997925262010992206322254592143969617109558056700676735394791233508118014009915674824076374385074196370198749649317590918098586777472965654925428229686934652044697714494146718172866460083992386816837164381876921601319981408292614705997252174416332473522620566693140465499817861427473257498843126673039558399021761302593920004087356657157608712833438324539613486223150100699121091658545640030145180774405259473489227429434504244735196006845285171536647370518993741697135784589289180563606979272966793325838246523758586506821903498527111286981589255877869456168325260478273334061725867733746922334187875301357360838299907395633424423955712152718503870475213046022380919395582912661371084077702903966425440953765371684092580150489191963083402703252119122607433532409122129979617183438784687448938928452181804868269895304584215438496087754433126355011882253521391228950586950762089972287067963053320933937720339159914571771904604280674536568573658367540772175585135090691526760191648361971675874930953815344475883814275120132633393041399562243985432050804729285682070232473112586777956346345177422937345523469677076250837216834457757567514017484567391072365121091686612692158045036120785613593290990192696770297477517519409080669237794109293569779519429506281399689863361724551914452451346572808259259106907694254519217966687488363451026146035827515883321954704660346805054759963113901364742904588668964445568322120324502386198697831729989772762739896477020864862613968019069379781894991068973443684700400008068146088164557766040259965230014757672455347212588808859076094126559176873988340935431638683629485756553810743873177279016823314742581560128062971272843088348177098241917438435443095703729282577137820821200745585498774085337670486131782448311394012831798206519991689748787432809500467751054977382679218144896724638009952495711957635187994032474326051642659586965326091394288762118458706777929699263026087754786922042949727350606660992688401415912134245637795382566946387408799176980496141106193356535681951467783453966737024894376213037755693286708563509516005390364366667670746827558833837340914714696278639257216760093245165172373768137887400416512923984040799788103397294840636292838713938994989043083368816575408674883889493210471078422237755045031793487380586060967168443897044091281710222471103947687036984935540930446105242577869067656810109039378073041589627254472643302920683106712135498381538820888953833863735934264480607606106034499821754842273919819992308589087218827328308147532766366254356441283892906554241235544578033987239812639361135018616566012285087002915898373878882643847896945555374116436902480823828297754426327634253727345893041229024899716332244707218053713959955712752386368981190836817988460101918847110928776535804834565214153644209795284969976189342795734081503913087593858337424945140590524259468059006098730863663115404440147040495603261155967218860445097647968749965458404516517756583825341681830320160258719899802533113789931896273104006674516702015511551953494659370149233812315262168127060491860073287535614863816189289916002176718161768935092079298795282936384023501241493575459295372593322671155920344567430621455572289985487914607883988551629796036459828452975228984963883494592576161126049354529697493531559313190822423647625005582334726967471434483287998404213490647238712927483760061013682675588872573265555216406536573929177545833476856905788371040293314264656107307276656337111374787251612791174286210148327646987068859541246554183495811698890641992709606564004438646994965905459902975158994621583807087288894868914921444530200891432569563089685170279173142100506806484516595609312057469014736061263237567910395404195564237215057727790210984396454695669985148705019407820556938678027017388617188238589558139692276719746635783070014634890329453327859510781197587313681912749775784597638569721623502381562072648894701578982695809348140982903209854837886359112971037514293909058337583001960150023008609838727239127421989323783221797942727653830928621514751910002568972695222646784504581883523532019834286603107712057490947107743329244839822176834235402106782009117184423058938200611815198111782616594465056489977744726493329784485210021293109854922462048044996457031478798667117422092668826897475418096357980418875061466346735845192132272442663825467185279824159539252272516197067389883329557266110800425970869342869372313603716118139614321791836897983805279825305931474023115574900091157747132398249259006878928302720434772212660877437018481926356178881754306692353647920827885554680562047706539901743856899072684342422509003064676893207893352522411706606329005921606706174243785069942975986342159798562505875228334228763135184008549784511626837083170852854317034087133269519153962217395560975006221447249756863189174365049244479052860351737327104196555199668411769001427749314341386743423456759495457847184901164954114010881013150346902446966108460764113097975141054220939008497009811698919277471713991992604545977924186746153815988602175407514667733914241036492378113249080466266078695153962195440211148903534995226745738319808870264194002273625535960231518315498198916514469955196836974864129024970059243389215379364448332718423837565703321297348399496387362281940088130890755869091535394675713591893949109583998854817771646596458617760206286069470689537134353869349001621862193258012837100025972389340428564218900801067260151176819627861741676748366786311310633587588118207053031816659108285540807730334721605591105053716213648900575774236424151688268441049481076895318944197108694527998873856617775295426376760466216163564570884861850396434447845407757294623147127525522997297295122634729877406198932502124756458741272845334251930013940698173716155270018758803161735519803248095118320399272730815060436395555806755810351623776119389357835808572812281372617602639125243933113575124169767729770236045922347134662099566925537667230566753604432129235459080366245002737719817675525909751023297984203993940457418350327506123062641615776508958932170090781249897338223164055665760972490793443490793138328413851604499057602235172789318389766048410555411733277712758548986867244289771138876614783597714420398504775966222071442985020729249665809458184594215812834528636446120694044129830595245983026650049405809778331055187965090609148473132981207585438449929324492081274139637928660674983025068014396410715682601897032285910653698125297698197491777469096360683540277910779821487964527028524155077164281871125476609527013955185003886880683926405629985163260170035087260436554636490599824656090678862091576486780173080001315675326164668405652868484622047213362959417732152549536139071301402105101733174357061628724811853661798246536346670321997865482896655341752434964071936836807721927358279976670912469475842517684202023086035239128779104539667930123880537583619859663804825355412731476236566159501475063040315812690279009493945521099471742420813298385500209064038842031006055145548425357099920726905865556095995671500340435798442996318254509808347161606296757771057836983158221432661049422825415466303619238721449742173463997995501783693919516565121500109824245440543245453011754377244113958875189023316527105049991609233367654667181476519294737583858593055739437630747660559570186128922034841517088670750539672128685290275396929774262499363743836539972673731844453095653601802239764383454730826846296726904746759272499481862965455643014686090523849217035262706677179978247458709622258018077726529892264758868241419131775294685098877394136037578181674102131130055734686117200824807916305108416606866244130286803277455881226148951860961314584667530245074357306869158079720583057231670980326521879205488176102116918902094193653926308811764866500969403648679432871986971620128908616592920582900343926412114652264732292871566951713611492293397561846740795269602354066937141438268614810576779955990702540256102051254686431852556840330448507133044340806372718647161511320615780781420609048770812646653402900773832468390087568726035718466236893622821302749092479663179496243776704277834275137995051915422673633514620036662358871626128742223208504468315470802791011103955444897027479972004964260300361287564694405751836961847856711108112635516022546369978483034185497802692444877138704505825975323485706182359075424116932561865746089921279709391866062498564148528070514263753743570536023303199456563215029755074655343535534672194550657665664563700855973910022533730557518031508128102926861855195826720085767114945574986782841292371164297282928674297324990032739270649225303884312501934085858852847288255908453446181550296229722341771135487383422236023558239922238814010093771601063227592987950033158421788863102143705455403502182830645883892383480069950979510988810604410744420124176905565605835471878842338201812351762986602199709160286322206043796525167880660627994300880582529989222733003864697978642447627826061530215807142620529411199787928205772706336434340676953264638507773722430885226122848546432950949539926642979482075734391752215678329507525646436698982630765354257979123687831895366739668679808230253338148788672562762522253294128947416503731549604662859829197568906952871537493208304488300701341300455424525911216038474934472322008874010930476882486403374194050708654430157198955507516734239536035506624784624518349220589417224053889356005750975400318637677911954315792409595329639406230669281608176989189148161345791532130713387902372193931792908515035663364244093382818327538192099884630025295886676378780721449678103078012706238180247888824347550866715069609619417454650685096000921521077014962662847779801222256487737650921718247932463640487158106288989574612514156068489109053000340191846234959993961449858776764790308106750383682027889117771415305346835299228497161064946789305682453630975148055558733470225126642312906363741505361026934445421897049072234923695633035122538093218692999155043947483757076813089717277964435975545826811503567611071438560063276279224475827620510252263522414821841863030628749202499484743476946456888094518249353151992713070550001904103223024724812754303234809551603656061277780094759122696048857384903712215846202254702632308075954740081533950221770609174272781972582925697387227737371404240962944028131982967164969816837671513244841641030148874994456323162794116363798154125651515164310153075907061365335411554617995856495019847475247228224660617256176943329598319089601271212638907614130288530631065856376520973393794415195597905195565124079284289658118766462312224345047865095691773795276578044733651025283771472643381853655680209927943331519226964738382326107347761292923081937876413835440847177856063318993039058681461988851446709332758707133470826236701141566550364026214016463143482096023682757642594869839139740247240837763845789646976093186059147679411180509129357670322070607964907919679736504017691803229995873413820087061016586160607569063287912140686764805367181448105029601730755982133469143384510976758906043943672814375525702078992643454315895107375032111627185511828978496006644719857273207736202143220934399332162176067827691632505644616542580564392252904525237633201496867249667426794098087767302538303801162424870145377541392263405593875017821350135471885813904130609721220407933693773027543897343502266613609401362392367321858987321066518538081817257566207499568458074401226082885151922319109217198195961187024379154705373828619148768364707180464488269243377508639856953260634412701763354715442493025353385067557944473682356286073872718478609817402404608937729731909980038566202861955286258452322141366913423631149495614100644769420819800646663905949868152058398250492051541885516407696932217842183514657301919856923857498896559658927935010555644271390171092200005799490063824098972821777441247968190515742072650899087155870819185664988447710702858924780358544560342545448797041181200247531785471682920103000610827665264622469959931200125342207370239863774858153638140890169102964076918220421232644215389756978196836989459623233256032751236024389132254769876755819768868825056696296022559684542150796744432333106115546034234267813587648599766981843694928316844589539239537617307365782293675637085700960616914502036729741992676795773113225459234440447378419173805654277293298277204774677433980837036411573104531556572713026926665129310635139388756706941532319462987531641222041843496316463164227480901314473856996399618819456014734667122150370698226940734893817404842889374497725725869368416525591779035580582422416496844584177225068518037310100277501875244385002579160229764081954768951089897552590113900640340428009508209584784080963721407489102459383535710046022529498235643636825197735110135612889120659311379558378989468532049906682334915496160413218962157773630862487174788195668859388902893695315156940354591791299393980809764185610019315824051628309080135450806298808044611737205162450317407287732331317802154326737556107799882033715666035205409116081201676091388159603631211880744280889791991864368089676965019932018660972443686474470952226173459093909931157765434215673008364527087575571320829402706092221038983363992983380089704200619838269173168777141806400971185669984700449099709499866309533172969496039980752900194189167876185355194124491320653488448414852621990472347502187292818029317741314457521049193920963848960707507532061507425920785848317283587906589458457539222839395752909075650892539293196926872380500262251237162312609722313190077284777073407946997214100516921494142481864383974853388731709675621718367694586360994874162491331545693759503463715249238593362306581721804423052105192577801334196734558702492925602857040542887056781914726955678528193246139025386102097993081335116422211178435065921240645825344352612267029254524678130729529533987711276827041264565353565213831939986269115348580927623551284898586621974309846887911762980957772561959505412720107606648301676837365899274483677939531002450335004183538735241681920707816666522735025402312684000786212790643800277045021495785198059859034487549517789048818743778705133955319141435622376714914774987919437439102193546424525281870033742141869290023460990615238441656304503198126788735189628723839144482150534080635416507666602208161332058618618223359082698930837199796686986101395890468587200540245756551273200134601262776615069622210514190451992338452689728211413702043909144180109515663046355302506926742484811493576180439357039595051156371256275810820952385580338854923075284066273005088171872030654707862034132436289759827629602027764717496697280189311888671115419025140572768033216978986482332830533461413657958212738773909352887606968423777869102092845979533088825570395502872099634000313302194318506318745143020668084294239346296343445833350587800294765220432845120042799221143090292500913856883797032046316270641256687378146352581130936920214582171511611964178243666360933132407460564501356153701896243658023870150761301944234085215916473648400481676816659763761686440657946659679369649819339953403779248511430347062938886319218540387934760893373407893253069256411782602583316265415744613328872273808242081367978060000484433736675472598415063804666047311865613256069891334351165655107823723498472243695033177699922185026362669841822660484187032465717840213048697405320305635482282893968577147472981469637778038868896623289648952216456099983825607455489523237283287982021708765410441114629674717249302589073875607833717837852517269775551787877076878851133733523949667093412045249260971554095311734648631740775810834974735422313062610835522598756781114362235900849857372113372489025867677106262910403116871646646604252439625392823258768600239054176151736720917041235140470150558698326129338641294719822348649059851658406214779000715203654168482266728230953712916942113172521888799805378448286746706564398473805133514666759929253762075534397720477078065727225717101285376273982689217413356536635651482119443571731779546055626692054765945251568356558172746745432652982154285530185785956204251944578524928069630157953623729745230332200836888460844163196589446365272567552456110139122644532730368479507792853054983293818051996855549625035445034435611829604182675356466989865863741386834560277663891094934407443365962162346744029089817999889220920595076745644860063872558563423926967681781948212353713743045971209318063881110105704492958004021149111108703532687066822220745539021851714099799420437271394462701406390305159899473765265050566223238950351422799854541638026033374135667608702906215577598805991113764745913231581213213146680968528247593000221344314330919681256772290152116615270363365036751862231355938961165396817024304955925211485923091318615877793315500048756022874929032744993967289255309171040070229364454480390037149046398430562854215189039415015447995929221007320735653020735621224060076536447091980715235580371575556232418963905958032071128544265203402697498899785539439553708724211843057158026471992601618465853753012969840488202628220543265591567368592357550167345836214354617981466594028897269774802915639121144933561479875258195299424400427131167075994229015658116266956310634498612154177430444395261988069567205386069139612179844555835412930180208563037631674370713911209302832929898195625034901771419874892123168593232352502496989348154469819444839028407093184538539115314622829613784545557927997633839970453632380877944317698044421604169129825497533702653596312881322552785716148336516867819904021236849979015554383336007895982194290892215551224324574742091968387049421445775801810254360730726091876948082380591724325441204377220674528754594752519211174937826500431629354257029776940798469793229220177331474528197232290389150613828027898742471258660987812121936819238840917253586185793357669575986611161015979663507480952772516397051713284761280152623509896311652922467755802335958975017451745631688461273335481555311534879352307661305999777994878375382884612638322503409596139505685586316548030216150346046256938550128321918553654865423354575113255974306766246532365521707035646417928343267511831555873156191558968504895480943777566469665503974039609311696563796714711902924287839501805087484513151110908538431561763629560838898850998807981592052407910238239412749774774244248451206022572327988294720591981094410848550034701509436149119721773659837121949850402516769885136293837270855801577926570879949250841761981180927984214658424700573707512314949639609658275840861628630410608640518578150050625721501848515653079120385354638514697526816621310748512437430071291761437596818257467604089080502723432016929070656219002421817298922838061738310353832158153856022938905277186026027683243820391870626801655251737684750071379717944951363126445579997796118838454161938188763650228264057394464496549378050911888407851471749613057138952807009101745017881481680533246129557225169255458462838739225155571407261381328664703636608109425092059769196466960191406625878802000847635674443125847053347392232838137615554987934704738405307540341750264129653117590279773405440880870880803933272724289870712433998268600456450007425331866043082685651843469753768153077571819465472435274763847379149300400362892391620881608569854113830397676063614982579062017942905989303414926694327412520371403624191649546407495944275351159092853230646085712189740247607746651231550840237837429657480158855840976348403032772053180831335316611610487135404683358116096882250190420024483092920175086714054611335710251846668378392911302197137063803461923087894991441834051991867734204030817363396578045334377669278220147205846356507883076348438187634762732551237793035356773283659155689990984592252252780729544870936198717712657332379723183570971262633747580307479013693900319984618148818034340053715060444440349383204736037009907761985157117120353168394904844274390242579279164751625250502548103866766467986825416120660174423990177375071372602062832790931601609393333743200349492854102898729808369244671082604001417553995639662577542936248112436364128679335873379847776514144535134129801263578268701089057892414604794710255697127721132698409867324311098610782521081911142001303748816258127597596566292760951510932191130119193292316230482351699212037837528688898303658771935257894458187881538480007491772158957252052237182535759642608429285937578121446474513578907721882547171905703453865547962768114913994642358219899288578755277524227585470314999370095976869092594008963491302298177762720954731390513623586221223258415158328280160605867986649707778513744353032411473940619638682073470954772960196706614238481330700234759184368901149684377158987897727595804967143362642897231814758827916858670830132529591562847072438390459449882220059160013897836079315665368212997769103582688366597739688123162428447656302630501905170703750534796168418283106884762330681075683321987587036665849056991515489144637584344819211204144238944989348942684877439479512953228452408289696656172519183053920461943358236884615575461640657270995686089754966604700718371312101374110523778166652145909129945458827339136384851877703402981590044709200071219584643651267653460453309880337391197037599539702415317149856236632872979063034136908892851621709617219556377922359552066526506547521661064272632370957522970049749398748827888503585918113166963114981401399613687647025011800247459780366534408981185114488062491727020007180420899658247792696479480380771492189423222605935303998785888229452719733968437828929965142149437333306911259288225074068569202466365470004564834351705764321765172853710695417732143618847085069704241788431894344669637696574510647025284569101049914135163378473242042709449903097044534574237079671689794153056651654686397639365140157532922437706820225981535786070769899922843488237279822723103043153591877890928016905677558433352435652553326334216074019217404763548553371294976668625055580981546770595487897204491312770178251077826076989658078953622750009282278073285993610767746777874154015304421262016767040511038013491451938811384932039935528394329793672666515725408641186111139969665020703176813108279274303578102035099056960005937970338222557990445049980751699296309058518706693751400287575719602466197726681964484608693068761236261615324239260235488238599272278244682596262027316339558477896898120310269454709922987048428163890021241932190531685243282552500013375838159856127239791335201099685825151545686087071159890822981334007788786598321679617671057022388695829784734925240298118215342376272963835179346960725589254317877014741743098644509546594260612715605932684061660059518351136643844998792845924874912387588908802557138535206546761828202494976941558819574547805797852799844957972735251010742109429665351743666142082889571423304105368684058155166276463030612659818145236533997005185713019037790012432247105381524463117806007523125992578382097221933111192939626852627593907482979905817826212588213647635023312667036437471155421543500066383807655826631113383449978619409674997753806149529655830894645144537814419120612066381469888868404469834223319692498972337299213977079534845403312084005654046663033411878455056912134221051716920484578009622301705819626949988359828659171118318481186352385258772071938488152496091569722782655378356035385006337676257213703695435261498847523285332762194693433761904353894961127877694315829774611543115111679644240671885175530075518924499502654040333904298842388761385831540212191648513742675715764052353292235022422456193576105346101957266231805683015977360098415528621482802001533268559913593648992554777485334341341192046702878987992978308864308247275699124299444592702529743940798938730534258963438517185879068172184604579802509605759010091035991524055529569383114917394999496904113571986058682255601090519125633400554795738040177957135458275417453195278347273085610541926754430423603923837259808263309134993157814364805278779472914377391708472637850822944672086806206266892119543085671772365243792824802624409537171056739323603510696991311753593889588625188243720835396906224761538151002041022683604234937083410578228401517041690368443633247535276171583752252419131105719193539796432669690213798837355489553455868091037516206504015899047066072222124247972812429119792316858347905333014390198675959012257590838818497311842137343436795937675923985436280690208890303433623109345162798512961518145578215937704758275385108012233308430184330717924645527662188488929056973740852463619401237390507980072057717182941794878475743927598798525992766934606296150017968306503129220682244009135635810080198020671055359689726830922683340187617207083721561158530383671283266054213926501875345574905633544731611534985968025313932894237374820329486751135565565104991093451653023216276829919203062524553168058028645440222205370577087690570176630391657846250307709847707126968499410144021567083607111346127644590427834551085368767817023552509323728542132742789670790538560596564896043347827504932282589683665574055066312687909426055638449697820817315019043819111651291791915264372495574819261500862848337116025042367265589207357810325368683688334356171861165967693684392526334935647533983078428914031729393715308930177884013270508016125083972378227573052836724075838711194536892048880112742368356688717421895974597251064595818818492070134000022787302213666837049070562232293625921956437298459672722749521525002923806193538149570818337021786072621978264637925328335166247109343048492292293626928227486321720982083536477181032103908583155955831444564774243943246006246505879867615577663542858428100581905110663647203545246117259258020288316834875489435973129085155280045849053723483209760460356675412391586647917729007064067105405003210585679852104051288114766574963713844189711131697885603204081549003401495214686159862496809865961347649375436726886983784361468888785509497962923672170075048292609219953277764622752656328956156411225567992384096710503850568334642803791544746280846189793492599286810469583912626238825881272177356930751430331377015317933056890226305324411077101221140718147617291908657399816009052462694411387995164518150768530658994573621152198656832706164060370006678017299309953327425937667699742790275961989564984253619209581476490269066588401874812756316810784448508296250934701207196275554004835852274852872627077236403126094193690288945511086397113604917468137269961675608549998206535886625071241614136997260817106567781738967364143469446340235546354597399392101287015912415488080138649070180221612135334083748386798832707958085644160179489547377736938189573908723614989828134904119281631521973432761392235356378967979844191971512590369084622832204231704391308253050168265323417587172606659252164730332907547215000585469113741736264459295586278075479851067079304328827098416068337662339315852872927866188224336935322372231674952362727614869309809826004225005177615023122455024357643022324696630413826420029101099253767935606094979606496942057420215443646895064282349638339717103982746806638461544988701216632295816760684238545220087428305353882778125656883351838964914710146773988185367394909580142684787986920757309834578224758463986582211195828174890724854151216228400301967366122314967846856616955465552873765274626218801981684774524164417501425297775667981730252582680840379137054673529486000204972783090593486420840691791704264329682793412135739845471937445456941995665438282697234180882676647268487174495891465006931303370315431827960319362158072874101609356092302388478515189028260975001815010096137541401690243764895852192551891316948408162748536764260398141358535094923129110662045372241217676537268124825055547045072650289827338162089456462168383029283177734152170617517158882924744171865116336196951199221175113418690621751484294397739505210786931330020896012374087163900520587270473249065140865772522754876309857616411706132156826975157110439249082607748592871464276314648679736831351219933381719781650913707833400502998672135699314398368070833068971429228138597146106841999694835357392988602498466249829387999149906902419191255721913840417419544243383494143210636703901825811720560395578405800897863195319879388171793929955271843788362581385681478475466769431861013750582271796925307075004819368836569602636724931708809791479940739120072062462943874244570083975332910327281545796116502669324478834093695313619789276075837031919002761544273094683014889770136573856914193414598049634003972438599765917545097090994478462025440497010588101600996867919769891755798943276887205919558888068671166348741367202256302367333848880065107073226798393376301374213109249500262296742321542763666365001534493274172357843164574948520089790491704711055906487263760927125932776938201947717796821089884012711997922682722908830025753106448795398250554524315500435212067414393196694949337211139087521839650126523153065123875891097124147519951901716202227379679467499567951932403016614249839381943858633241115424286713235347233373431502469052814445672543698211693766446277314349208309378625542551608927522260246888694007687897502995949779390103627844015516928894421389900420305637953820626433438972194486057695129680082131805659702604891401144718318884215226696992197533130061218920605680464178720057668799636704870505243727986940446683784160775064239934392248482209751453938500015144488437263323234137170249460035873511908903224173200358041726041626319603265028525516508829435982165613452022177329694200050948031466833744830406591416582514515021863123390089553603679708292472469493411269998295023927359455053416355716934497714463375879011965473585714409441744532661928222904668816270977168282598149364943781261546974902359166044659291865786634088427791446069496099230203504193710746291394176619139716053240352118661272228179256595619303409338058845149224311511435789595864156373457398821316763320014473555941747066309626247805985534166243924859286735022425171395167694540201980794483962107526143567266163852174861337923143437067016927645978061490388020513829053644440272828531530214914700414831288635980306493971025538011979802922622745515167595014466362148283920639532001087081741652675602462350565150205364650208124107481975749693592737595632851805156994029924330535872044783028865270153831094192010670092712801257997103272650939473213849589344326493311413104293291319701994943273987185204645398632272535357258195042572198264530452969244139425005776892020345447494809251888427505338008990835098868956652426969801729202814046807580181384062981383878470511383992254892595366071580329339475075599908445615748190957049039630179200486351518311603941798954559757796187102822732351643794206214843604003512194598172841809095272997134039878033497868834019151211827448791310032984558399518879117017362484662275034782125898614262248858203662818482949208164771004153588698123875324448674963074360468682507523960669493939065328837154988742231771517686373321385168031969676090309563732915594843967287591064771767730963586003650226620196515840364670250671272524397142636791140666781769899015523730521531830690121104736111581205335741995486937969612123083052600865676220995550843539950453838198504061834827001072196896710862961873580578904602803705332922103982832776733556184869417642279352518647207013324324133327172457935279665934505278241481179665387652685663308674666030824501028113126268331731747935896376327732548388349296105908089148059224422614504449096304373329721134723644995506213697150972209774182003008234042076065480031517652978521280546756541063525862057599087884753106009237615252181972717734972318432405364516690625784536337462603717925102447213657651352627573904874483156950038216732643732350376336943534896653558390591404260152791202600514904870615956462268126958562793137721289217226010059271915551551356565802513321743159665305630055919469866971961299987596682973319717442018346229994476790029458414664065947350598926734217799279523828207922001720575238380295991768719083157030778141160108065562702755344818802921911686591813402832857535860841392480477138985722080144440871810703349026039144779796374398586187681706986790054395719819498195636193477144288357403219840401485946749498854761582856216137429580620532399789170517983331365162336099480648280452150057332123076786244731695917118488760485560068542450878609447443067911286361567686623452255610404085981521614361945253753756982734062352577798983507732505757962034063318640153854176623979137619363456030488101509615490885808173351740686592857382893600933109241740751452499182203974049246882704742224755202980030022284902646970242565241365072336690934477714384913127273865824005283883309958756345772973409860027878709012197229346654927724500264820067172735871161642230783543152540481319262812757745016752004043658959084708656402066148837430736030664746332322291657697577645951288379940338770628573581543054743106535002514096298759186789776245916899827734338801198021112510228796977433539845747717642351376010113994221802553844802340178801134469682497160753842955730018462328660232480373229547641735116123585106274719385306765995748354513650879988546874758796953782250502579827717871766718972839114667021114455150127749627987174019358591515711194699758583451599552116365843879898559996886593398319407505862339636594179373376469461007052244223333521936840221603557331436339908731248776535965339428605365539370598150747175191839341688225288945260835813034574359156802079583067893197311538721074383249897540375969068148844616382061806964600439876485075138307259663853313656433639075682306975791237500507842180379457553310156172161125096379852103578388175718778342377307355842096155919558883156945992623831513543317171272776225147524336500015230151424413483484692080785135868721622368558581810536729643882419325021231673121313691338776917959197075177373063865596163110691652569836563342470000727038323223295982901509009928769465776020755319707524075504851714066562152976200081914860717196392052491594932195888193601341018723950056249850103299499379368744127559298438864629738133569926732725256228637958900284070286002694259560330989697665001660725676065452768135398944187692743809876169252345190505008446736200584712908637710796118292823307995264840390870701732548879245898400129541903229320766351324307214609322223134066901333394284364225376998568874712668576145316858977290907591387345374957803826445636292249798575216736993459664786553119039602071468656149554246614391089401413418811823531739930555521204269600393746787802059692898978213941236764053570646699168038837632441874430053047341275944097205851749134378537201544877555446148827595549121813884514414387481256140598291192660970731776738626867438516683754859766232683428877183676899675012833949749788194964450301035240038930430556653506074893179189832946332535685781550486718354207518499431444909106183751626899657135012715579584687999367161689390993975107271566928741917177408797293522422065961526847944453219537174083258725138307953267830273064213143297015755112467203316914957860432571440354544820283511495407050126375373575766563772264338698721121079477329494913625231894139136367710076120727485963695473597599176676870142164860615992563239171680572103932176744936721027441379022589924352334267231901249332774895337410002874333566586592270299125686499069742558670988644577613252302430867895082228042623004996034307191602815497665321921457831708461382375318285257118512149383366309074505018340920599600371754473099145055236636805449510941889834472944754920950679945121726957170691147539679252180165919645411674544342572743865790624488807935793370633355635374938962916999025063857275687010811113303558463654723954130930681444727794833378259382886831027696591018424501021627135661982851567303516668970891126326802904355393579048374942767906175877926498360505716242874155162927836740816744380463933660788294767380307334975502959133402044990699753951357216303706907318518416001984288117131651441889729801457775135325043080959012784744847867298611590602711515662483954288126186158225817345363114236661603344038036882822199425873727171804906172845451784287988415816853519679352511803948541707763294544203302628098899763057412600822179154844377282498523425597147118755674742136230701309671516118630640014298608441070132699064585383198124589259371883804933635411603571024623156190507585529754088594471388869133604920405089000405194649698389646418161565205485661378484378440937712240646599461513362325793617294562072726713981654530417618270025717729478779398187789996347105478520114001007984971622149528831269728054736353535034277653991623592184691858018615097910055108980878536982912980717249593892081745468923515364697982191783585781230984778049114928671949847688502623199929836953733955709778950862285219307084488954701036862601993257860991300369960227216796859254236159286118552372427916329488856862453094955409468951363501795060350342316589709860304234972217030356587768491284709346102507854018512981955606574888268760745911239883490424630567193105610268995690060798011276491928625661198082144899311082163304066431987604320935917448088189828110174531690414609706080373408423099923088803041078349463401494021457417984148807026969031944019428310021711348642362368753724875684475140880143283590186250000723656669278376210951949035490204812526459051970708078259678975942129094816499841109938214494447298872265657805940030824645119953255609111430073711605520187042703198417154039924482186415064871095365401232420838069879985920441530538081863364560615658894416730127075477215834801210249694423199958599872079239770261817407355590735446079993232953658676175189625713962721161854620449591240444302978932899540360390764314230195841343039279968720037523857536103904718851853044933566221435728307110785549163066856189719664522715498553457529539553810152838283349962431965103085001900815673563922632768112009141837855370407968991297937076749392532218699825347549813980105010750176735194186717971630453902725510116822538936668401446921444680832844139161874458903662965297461657247143012716669996599787071438427291993649251688662728443113673333107787973864521932540908036022132299595879143980150280652401042687942375256416042802969337474380845801252248064492919675560731839384889160479489767682011705949793399150060844239176112134446862249305711669944793181452575450589656601905805744115860392549777884969983657999889495412053500304560000094366150890028327347877652041148789728957980115020892810644005812619014712793387367678298296944982521714591047555710177230987179605487604797969312428167239301495674952311618414639003198307544656350476692400831951443359402522899545517786088043617625167331965248378481345111642131099472900240816284027191578126735037804059231971465928710891313093577145981943874177743615321887843549106903600235360960095276911620867266412663675823018527660636553922854819231055298311760113129996064266310908669090799675689184035968834046407334393083826314931115100191653807025217617017175348557216723685727515466783658616018340712685956906674215655100308687567963719688303603907685338768388118008246704006100182271169441183952658175768041104384570966726686160500818639306616506355204561711621491018345179631578345711394244274703512157677685018843150230523941812147870862036083482401757801607969470976573739227022181913169713993209456051127307611416558549185479488929558348005157742230806647245925067701472450999970454547151292901270102152782074771302388081317879732888354199142929825706564297082295979857318037771518465585436615732932833063520287879413865309133518359662775492946889061245330321173235693928403116268745175902012835651791914518972442134841039659606410412221983067083419311110349787370810194631551342674980143655514775282553342373508165770734880715744769172061375866065246173393418630122893157059894131534002492994185889633416635654683298382713888376399499844689886388880237061144700785284987292634183082240603064535779075324147576554300005913009231513380787931491362801125318211800353640301924105184176494641842542414775470466039435338052336728151264359735609669818675282329706096395070525434946469564456421093422514034463181849398723344958346342142267185501822384381006618747161263979062637609865637084066982109000379756204250750015705111673291655438167426181837930486579885282424045314506114941814329998337365778906654432161067541616403595373354730220116842023121531675391694897994460611989068764843178948195904172745661551730057827056464365511514695152429501805392571028054522242339980952838906388962566190738408312531192632420461118593632980573422896061678843664045725181098048045830386207753588050939860591844289181568424539984440742343138138551020185555102047022377588802478672642027643703875788051481413518189573224179385312481520172896820443130510937970066988038349600850905280713926022706122388129466963358734143484944672055952474016449861351972179230282636535632113569335996870380242654325856597367987913609626792591605579472100483205969611426845035314187812898611593261775489545751427250807549204432381418262015351700033750699817849922729217914382227863192320875973189408130982730942348892983369409822730333917691422031477099521008709730020722125981042894461165294998497864040363672801417317296066294053574017344178871723529918851252405444996539590208179450422657853434597658020741119061574365810258810106631516262114687594814492821125545607166481401025094763400963155545047914634184762788186274508604501993828873235190754837822490605469211164951994020856019165655946668058451285958752848405690162924672102389029733506464412268029204573230022979509405744275027594304213777090595802784917773808182856178842808130833605869746969960081955207784717108658265265244607461110082940948717784543947955601327585974471775964289792978315322650827410953448702663270093545478208474921390430357944637673884297861910269843506548202553092433799385684705829582500661470477021009422082935081749945808977295093235892125779481534668034446352629827274834928220779697425435537344888661640633330652058575825942242090796901973734908380905557091568908758776810685417139858989586226096049488994823933405014758692484565947537884218917318413381124341988231483751666813949699224741292570408449552934769078648654416013669825237134828854551017086548081943399649791224355176603229579637702045104912653844536043525753489438796866002472076168925625640536590373141182640788012437015966661811344739219275510993201579643923522545735996640660311459523474600392788527739749194245862428607472316181823449198442689142343146474145697615132510154259008906359939541001505624692786588610511977272700102357438576273749900788464545815122270486514071466105288873920358783015590478119549260440297696171730701377278980895020295045684906887755164689046547270241554653070975052746306962565294370863033861981898144145249878054731675198100997787601556234230569583417112513812387399355561300969530592574397066682418128401410039035527219755151140782487229428246062722966189121757603777134096564849525751471370720492872269968654953418764014605939841992422578231415295915276563879563766425827295741041124420147567118735613385364023896569193568731860795158428820195209241963052935821562072791455580933890310037288104172922109255443126129681997958474081579489823882774378811960375458635521258553201888516959003143683174674097203863003417417831996816360042287481482289131415503339979870352277610065018345946101226236473764526292598710078067885290349180660810935382307714777323225973652310532363406186908423563398671408981175977519043393534900522020842613780529976469625500091104818242375331007281141977168762294160745087966783214913133038946119169854471349929485319247703475598580084517012932555213136919163864976186689039743882219949894831474793917137099093547933423263599649901003528403414483394507546677066740495746678976737187879987025312659589872282122529511260245648663202517325931407344164439477395295917001511706759669607052969092545473224009974724190482677492526771436439015459916598084127420133837892499002004612180143640879178602183614927303932020288184248560810165153544250157536411189171372510989099035505886377571305455500766582640980438533611349338722515283740951992197147062223315476151041955289818039929881929382152155196929022450668599760485353638645334731916440819337481982089626711083132770372027254478501197897207374912747980389378808981160954776127237498464266818833755311099026864812236838306459860698741328919176939224380474284079368187524278578890602347555716825399690135300657351864890838644989285936073423907310638500230225174051113667896733539352996767133043121059870661746399308926098926901932004461763329715510973270152521394253794681697392166875432843714115622629259308297911273981314936605584373634371229065976475680417578562685569904236110007030004242842875671807157322538849711847223014689558645041720559204143580299268757444818479698016614818496978869282490718370409729157839352898700426659417022932451503706264689895734803808357685176089060546421348680004585399848145735623446381039536606278673007350528720814441861196465589771654017469981908054802705628150503266015247033003919753088419837938547662604424384003009706294183198811629117464789474087493950087832552361839057203736566672666259736896910807020826621425111465901519957192255766292592473022425746200087486851765624610733541883750203293433629232946311783389138207692680561145140714225403370656073214621273239915943760458322732115426914965233959510820453858660353990622653880594996202918650413415219748378809193976746984438556890431532441023977585569122591269600461601117682226078152265192082581860930204149385008142384016013407970271874276056628294258204734656001153408058174174485209665665234361498396431860950949808719367768625985881293811850473585180050748827378606255238102942239673583033198320239740372246373035150583402629402703674656622379303096792772034212613895936001726761768315971979201939027847995641153586473119982499038539835102858946420115003805964210761764104474690401928574113552599437877068366573293012859835069465363625767448407940450114365575622717642732174204505457843467631278393444785437772361747810652058966392842482604731900142808484119456903714717576607478838668759807518965634932182419751964094992217649980678079018927683731766307675648714722901224736600918112516154177131256990910059447770244965560072867932923447814703958645225539331889590375321262625307049686447792239496908560199644771745428553762658799565594625769147266864379812656576495610401396791297347918853612130642913251469720428456265846211153768358592195242083933080234149658540644977787942073722825489111607175611909385775926105444187962928769480916907482588879835665595808184250101820908162763585890528195093887669935809323447867110902120465994533935970115188232126335141056349563060815446286722923285473095177417686701972429403475585011076556306020442221997841756021087401211542828168490053422113599035532940928675278725930635182286875739951540349380848534481759676613803689473565564916469894843603903935501879234458920760331099190718165484758699778512315801565129062185267458538089793099479109412088127776207833646995492358421695469367325006898319803140373005666665099702514302268482505835259241398930859863572139791209773165631000845365498749384454793595605609509873502644527678060071416471443588741942985486677542551666358285610428842354704100024519327103112051643676401848054498779578011878022185751022919418527349881473881512993879162595915969447928389503122776147350403491092317857608087797159438128327183345413063010328641033679840484824956035210087016101608767681951030156846282360701332787534891433728487037983512227930892765935927840531729528605098201683844607007895519711937377676518251474290415873953241870238389291972384448325608910544011384638162285301220909854649584434448062790326127528700294021390083394693221447172577254470771781665135596069468529308877146500002644886455123482010216813559950540622071625742537579609056966153195114146545079277721120954008095219191182694754227045217507747437480113189787958253210312271743664551938894949574570892434666538881455969651222570743936433743097461977624230426890710251476404094976775002907887177719540802197849278487779876437451711405386673885611815714195151033365561466488402577792335774438160703600960104378273700356781106172521105024933224365415925802450693124151671881142129845959108116889875798806987806307945357691047877428188990806815920408207397272845649435757847667139372838114654783965769744405736641189414344796298229836067092318935801355041082750961280604989873710707172562413373112759116866513040085756073563078225690135060226087465492179473424553491899947499042520853788098673233668566523889054342498699537127086070303472098571439424536094593491262827167619450880704511067994637202639455396416693765698028385939782610330495232415358263231299914354942649180834515690518015735507929743789053174081032362476672895075620813803775506634670509429507089005517516026014545328532514499731946877775638569105727804302908888844385303357210770733854276922881611936738988540220353115518400366523151651689833856357752577564418337381214620329099628511574782550882962566734803711818611339613977223353539992321846722790391677483602463863958045955659800393260656820074475905624414714508856011072232207567367822409122589094166357902779467293159295139908674611141892830105102918376672921481478073014587670161072518128066911586919187974848962766996979842527410638998544165770214344070085878186776465292132074882010631558872236285744756073192821614393928042769223826099917125452002826767557294179935789211448594102712802281781218416520034501325678377820903257094157851978093309253985246340297111368757541536516266622599746697669057692231337508596090287306597559247824666371793622704231539191185369392691173781618573494474800932238539468177795980161889963108042535159789170857419249169844057512245378604806816983859908545103352406996252431791199861729301799107409295148529093325088307072332205630251706847559086811145009509035551577833513564089933949274448549624199933041460396782479774948462227489689581561155252622855658163854641748183870936635439534874638731717418515127647681580346756061400077827397011633141011236944420654798669030032553810749685876751320768055255491575989951975377103703531789841276340620703228723819930369553039284347967824208419910020840791270155882577325783070673302102599854987606341139529921632844128489159286835096457477871590126692064866455766965535510378684578351659656797430931672126795126684645027929737626428009906002933036242583740235252605910539566576929551395255263202185411374313889040006020678191650656696524493218198683190607203154810011757440715863796019333484401916152927924557454876483530397178950321977209530282650906718774548931830603446572314869489040003498408323284891693163912496350386019402794107639520663181843013609290848659626542601038217720714913362492393987313455639399721921044658382786419821658827733764041979266413399745162327235616496001913454398879468723332134851885040377473069513624934958392734496359507273007794867989000396635751133276016521190886267148673446798033744002807458656685813512108155271206242842872440411533126235766523271803427843271179662984338870851909123050026322501523595343830872077421415585429854461181417438239376338142520653466972824866313521241061415238204603054455129727936780542586676564837713437920299081337801270620832931404462363956807314858529890977738393740987885677379515680871412671474439324874048174873265306674104318034170986091473083029540867974214410974626765501463360250250168694960390438514165818664270797021405219700111761950141749768121051706731980930379866622705179108708179841590043496441979521934635807260002387176776879210375814833374323217465525615156963725700356906107028865953053976926370139241894543988492566915723481736523262370633266794583887440043527117853003435604701226392496076681406942562195208163304586077585814589804019565356318667457663627026627470935918102310211719850700857986677560224336047080427326014476573035459843611308834383424101133928500975281581929360808785479719128236643549069218003073542596574356374695184962935408395049017702823771756800710796223417712963354805130633181894435256854226351455344389598487417510248253340610775264507935731481840599299376018343773326471981434887685040443169349403879660220789820488648326877713534261365741141261792334977424122535493659976416912120557395638158087581507004970932750934189955139662958749256600699554152320509612905738794927980336695984782956360303848216384414735934666926783416346560998361904436666607660717654557012357214400073529554257574620934119286559586558915008459168621364027223551523994964282377765936689553326851148933136330893039853368883028038642808245422512485307811533230085676895440321231607542988731021504869354747360377558193747620837515916797848267497987386433246114174871473963953594176337045535263793849365726925773381122395058701796177925165386797589704422453780354315079234426047847400435449206323030598839090742739940767245831993781820478362526055219891967103992626654610562404235705372603309395831815218193324993625757869544940555114853537095349475966013817287784707493041406707151980911238103629199839071610001887910304796445735088559655271892538338726413280020330208393803696921657053291789956758377100128409905421278458459987778321528623556696909615919058648693647020692644046294619334111841257596968186273207592888340855689517405212516517960555553754054527176054867194338282562142099156652765737839035326026825237097482202962622611365109750173314688763048634669914720562176925067942784863962403462903813562016277275448169699050697236469613199926789841820715343915040041542497898188024193521010121311102777233578856011026086112930612854909394886664986915817661528703180405240913446003658108805736909169881134244566387522179118332928574079102955842012492513237389171989777793949709013971762002705114382373314865741113913602424866064962702281085920997793820051150125747999010472794802883924731033830838307425362605578485766449241419632967386262234890377195132258799796113236125723644654969027893989118843376937747400624195321852126695063034958857338091963631491742785611422781808508482530613647511076641570081046688790078899768587667174636139401457586742695121113667999083734008982273245345034519078936486937485054013828684034356366567448786952525582399174628349034283522797064263416357726620574165788850558111274877258806818873000902643634496457387038064321383875364595555256468937797293163152289322992066025161722444282672217074648942287633244664882855381319745175115834800837370020554897073662446435407778869897418301620644785568725741564059510517763730402989751583280505342763136725747886708419254144010516833253131947853575692220487081213160738690868807113429875641407349967023799668855011157807371371701247087983900145752801249568433116596137148657197706431689075510440655200802555621237761663764294779646031612551488209083284541720187484676990045422573269078404653560933996760406726931737483125990942244569927069002199004254637743860782250846997890841830751741714818532677037609492019430566308308825476398053322813026362749047700093370378236199414826731030223918061606350520053869177749874603620939418959439019313049948783254400927566121679801382387815000771174206054326519165790408372276066757823894461034838557681904521897946588973278675300059109033058301077636901175098452333382424496322666594923977238534345303426781943792927736963911256367681325991698670710389858041512844116760280973822165552916652184821416942615874820734363467519240316234093536027867558566543324864464583249088645764448586173794420653475580177343993329012417167124335592078504209274105312742693704342717138120627118045425991279473291616530723490278237940375488033281707628723086369149820473746268184287176991584768184020265726788975926691875272696829954351280228338019651936816693685477922220008987240603168009396582381370731537600502274617889262868699057626973420197233271583552240377760806815357591568305208640285165185377076072513375647824341571985866142650770585063898704153126358786716196455616328613233740496677162714681479807613262070073095306233004342407509930917892109531847561633916891548153442592134344993385702825053412616845089827911034684239889145706023181806528912872761555451355102834847069482929945506649927362150109523332062333636385783757753984366203729154134224912101231047197403061804547732271306904113880573367866466295285619575599676302799150977746323699493830364329114064574351379104974955098253857854687274020945660411839053516366728205977920447407010460514462124230186426724572176211459919391936348986706554801401494242039369256721791015029930013052352615326687946931458754229179206818199958536084122128908153126733743907603959229488035002400336374428094291982862260809567136703055988780939318203144933488875977991059300044772655970365192615497516566701520171002026237541696164931408877104933622458173477002596551739237990120004399046322224732893398634803543249641504627279413884614702262212547792276650005581374095932214229203492212033554581147654519276566733631802204240793714145704842085657252335289387207175738492820813963017870283442645210482585581059130651751869618106467884136230632143966892822960538068000139693222405737516822909479045373937301710691379897793636545906998071924327602776966031818469045531409037159457610090574822902037410001620925636563082692644200144007150972647032279250457170474530917916195400713274411449488080757918574514591156610327341107385107293103461887995464676694695463597790022008672326658968834010328294351944620518584357045880641651207587703411965971264875506006555768376441243060099067025368498134523374953299588557117157471170126350410716818946883607762656842806295564302177724731219406489077950437753922690570211213257968952110702718296815366853503046895100343486186339921818250525441105776409067376285378696464396298971314959299568016406975358157632551811662851236387146802597523772525122203351558681741239112284243608957176205207132520294987998093557510342347848814363584677781827863061366047300481869170826545593161865733109133285852049911603543660050420175257663063991472187847027028404015924657489943321103519954252530359290271076427253029623469029368547934715369832245372172253673358791280327714476724801955589933777755003933597801059760265050215330460095789347516596170974535246358357531530031350852598599525686296288843331006910923763706116667352498454031115272854811426510955663234108478668486101254055166503737598742854886598934478283731660210503882188112571249588895544246412565355223282013068847482851790596179609862748290371070044011282350071411774811970152038395359084291052455990706692443867837302821438564797392560194410027611007545701547226208711603122432896397086135544647222244394117348338032767125144596272219730618767288084787955539892099143873884164281574637119972013654672049703533560473647753776271081679983259110817890118096624105542109545759349726367686541817835894894626131259153104431414192008262235859507046793906556709937073391438523969570501328531599753048767099810173201956405717609658253974398493419499594958462190709172048562890668579661443026517639701240431482933388829952317426295051056239880383938999511285426388193273551872988064665147665887516271292913620691175062947254416891663530893893936450799925837588578881069557784217229964988461891845174469713230514186389325428149622370825168564687498202186044379190280140986007090248461484714840108246768246333061296690833597354277611618065619530189578576682991632828855149695734565726435741071374937551861199650528050446505185477838341506569187847446934108715524915812658862776794963649204417685348090214415614091038107726270341719956193850405320420875268536904771426544800352284387896770076932378010870254628467540096342958028383872646868653587848210711395126772689802162098609367081902496357111585704271344857425437938009222373529616575117282896112727853168985574537397568370233051142995648535857487436480928083452945627855337590553506005732409835486014923166305167392719809226076643052690606370011152009770322108564626769229625594623401216530346465812952544654920714137511415375593251076476266278946217279843123600509430200591382033584530977703246473996992706185213935945267280329590900423584315233580331869495016101757604496792008769734368834431593368467012571398798591888050624389708112690344996978715191229143647983138960446026307698876116191508103583631555491225939686560743694176798460203400794426482467525335841087312799957284547913363805757549509009803719380926166804398047723789708643209997894101652742213522970216100865509826178452544324301258900025453863313974895663444429927616576685039936067792525483831652516878199792563658585392637734839212645403470698889183289800729987640867871966529238794460364530563793931821775961620617698755463485213787097713275836139781311274458510985171692373908300448163934430311065554182891887046501224186582738127046236689344404095775082077192056218510219938477548858103050595191254439563407893063920563345458038120342257257800352419002083861363273451535253860945205893756971773527895148511255975099846504913342791135985556370085837105188888608521382794294623547083737844790454386658681515087693190194556648931037022712424582794367332349652515821730432216366377224512509027815247733254830331203120418121172646044441396631837757190115835738173200889639811806592761741700981677701012868796918024511549377947552266575253787692430182088880112136501801071289819308059985090879321163007338460022722841994690723971179688360908311753154908597179683781799727498308049605065339807179528800715349187883647969207016614475513475683090564419231961297075086652550069853869585220629588497775559686706553380917292912129100980271294444496700841848978364668309534044927975901612157164394310789370603017060706578958830013633941382858440278213135656569802559941453120675230212917904724361643575056986087422080119427022317769855727915667656561067288146968893769082148840217872959313711190746244279138136580203752565051087651595113743620932719905585364519331253479787589344092995652963777600511395637116219094397797541317306107906655175098101966074886220897267556359163329553763846131968420210559894645027738809576344614300535763970324564628992581935543809889205744216878981326095720337156828614489085799118982546268456260606548375696369076432817869769883957498075851285695420945202270957022541878127644690974611874718404190998930967695128975041413608233318886632999213630855416119861364929310461232309806397971364511151925142036039692683731215287869999232640709669938435426226721259821198755007277315166644361690183754851142805882298617343146609719428249482985862343542132856211693101306994085163329058214282100311903571387228543633496910757536659429153263708035168991865548543252189433609283600976840005754183862129253994107924838799533077355843286824768848947920476733556523706148861735873878155768840597807497772030393844735748451232037831024583414340290837428389548726882627713006114277124252169767342288077605372663683748063047328874710181354494530250406206495452773846048150926880708649046322064316839197441726479012914118565695170559184463016781225611144056398281824892131807220181041714226970556351095066951125548720582500873475381360886149109529937559565246357444981494594341369456938762930518686770979326775907010852061919526703536095402694398701995813873587989718715544545446203339631589605783695174243100919582691259228625294260659364245880093691560716698831755654972435483194767700371285397798054955491516689527655064928861097490389811707590396856739002330746009287198353664023372018267880382993124033101441025937474358480739299937603742278993694547244132278880741040540074145882512895458623746873434620216009311507746875222711827505558894968492003431046880788141004197060356037614661229208968455239611903807852192630156475363769937895696599586134228319960688842806144441088341518961917309588276682841473203951263251048752828803404465451119335432097666902111645421592725969143068832991941778138864327704777750977437303171963464731657119908171567516598965992787494582898002925469098889618539153933525501909792438863385900189736293989752870121917374595994962657306381825294129766610726160260767551859784894838747417207434477341690886501709818551536180519818673273483035917063392693117719627047704231849371321064909689261501477384579374622619685079544776594945365061698071722844461794307056556078733049045133658215731346021433022090278754129074900751522106172291752135681796577012198953153732735621531327198760603501740963113266029625970604890203392234492478654796115537191082201428082177245503796062212751357034490873848071608603382866801354384802864838097965201572229405653503245185319290252771337197973175914530408306314528329162617787674169534431635052374412361178428642351560728738732558432130161337267361505772012551049746246902907158772325450108915526229534108662371400633539488702455780077053934964154030524071017952380345906052940144790905525738108512380500381033506647639222449594772926164190679856941058169136257245880083907360790238601637384324987604908643286228346449657473457620595482865415298393884089498131760624474114351667684682275084311000498830448441637352350153260892234208977547319056370699956839804640338541158784760421964233393935343348748287905605716989216223471302667741839448353611340862251724197515973774269123422928630879269560823514545989927808365496793206861316837022756981923226641393967053027821573674469747478203052989441962575632333105625112406793248693409651419378646414916030621028398051820109479574925816989403927450821154832447339940323453974498749331114926163394690897498692978219482482479707196090462431627092917832964009605205810813715185490946935147247025227258278704359719447374151772810699608660497302256867397164701210642805958325625378951605021209012095890957056177974686838986116624821271056710230508545114262081727858290844978627951134474309799900990391195643623706064629337321931703092241444507867524019853282512144146642994565756487148884109574482485729544686047151677409210256984026158352682591164771732390425668785873993752275825624325708817072862570041084684312986109851191563022151625303291679178989148679547361258869908625210730347128061909201489131744227333336310964758030026850287554193347636645903923522968512989714449172944560729114787883434862095339892886432633952255461386803981046355893867590156066240311618864332161602335516277687848100397308049566023291432057020534230319923322933718537371393418017883042693359851553784985626849523156606101769415248481465686671272949770379388174792920208927856519692858878954965158986821655795065056869272152786437314817621709905516809942728351211533567131762032511093248163898183308909075244062796051897123544356068766034348321751371637050187797390386109814285268745024148482704728489122807073642992835714182757814672371209548981784201354030700990757100383983390891021387519760338307678202109324487701809797982244942799036988457731542549230583483424417438278083030912847573241327329330991199240610498647365022967018772757160583658827445244450084919895255976359940046402121360319978401762390727704154915478862050108210345853402203017678517405891934158321243934940260653433367856778234696019708765293132094938092861107667432098120162592095179485679840291782814401472056056425551784128523077427940912165259748160088206747265331143780876055244614415285098134532884978917702506760914363755069922968712588438075392178489349254942780166566373002827316710167588284767743658669834461939470932520618432430638984639325893281375711798416238008015297297543578172412168372102821881728231071080942547264902428551054521782631327426231594112051059415834551104555680134323630799041727805153439918291386425168930421758153984042301039012286407793748427708268947802877390369976274077552023074488008058523145039035707162138952816509215632412478991730905559996562728591729667382355213055114434722117142017251638577418315117771142971811966428891979744972301625776257209256383921555129980606043735856798226300392917377678107036914181899402977784020810161650169180556922125072579827281729734865772456711793534093997681587771705675884446220785568776926069057417029685860188698088403788576411562844710970643461035543991249947779297148808902838514012255459178155754545020517236422840811432625906719682016709469047827664815288381592503225182145304430660727784198424110666435337871675906047735071650994497254959660110420647729411429659142031152157323139800418967110224094680417804765829201143237300249101873785819597974391943451775455750825696967397564021606719443879399690081700837295618500811564895457884064540751571707998930100150325746558238912585116675432372076377083832325572543348950040679224620123920995485825188419741669443458079390208293671353109717004426855459191596946425540114737717071252939861988207270674061852147326884973297387388717083199505067656978806716383412888244133316432017504600700747418735950110855904062800643376739805811902734665383381829022054106049491799606299321137586167585932982042862461236118344025537213419606520227808233459973578879166731177997631191900224624053136755833059049456852858325448989086491100256987372081391517942776538010743253720068859399244270928253934988984041392390344516963509787868466309036930914524039452247600172628544147081540140879410468898350328353309502033553321948479358252774405287821627855580289394100618124274771505440843501033182089246950851894262196224924291359489416411730458196655049693846134454555100050456768127487261294902412594733472099617240182434079432006860217975670598339101043751385095139861516247834619358262137502440175233960983973007043881596326933040040825355710948920113923852802466572322692528924709005275783706762787549082583761198001652383243281746980125922785355775421407816912746200435442347733257719502556246793821672351037745250205569035082459195608302606348030348082513998374842587250501466844667756043612269704030053617422795157646378993456943203257949942689798639329605559157146027637723648351335664099320548180795769120992299959796908369307236248409653980510808869340746399948044334155736194768734491604985894885008636925931217147914426014660000870902917116331513920455802416541557205698770762227302856455365503212304611101193327588209049577728268934281639177622283642675669982709662964151308921392818983955943062569494962696691632514189423479086386403575102171771388768933662434139128561809318612446003198145080899765521273766027440619807424547990307191025767960478986056539138471444328061739437102635163956741583763697145563426160538439855729180617902785477829544456728386246751844188796139316188815352906590056684744612428490967648248793796348854630344220373426158848469691459883024976833904849828083487660016429606871465437058229152774071186829662820753317883870091744327184469218477495088364993547423117850834648731142511565388226133169899022069701529947887931389042493653646681409375103610179912874636629627439957767912884803658721214181060918355172368935099629462098190463677146976412173729795224604403255608452431430208063249383086672009930030936780138085033946006829282791787240938171035454162772030354909123729708229189979469430023475218837749146796983270676881079090238901183693462697660385148115939842245339122395767033348790697501798485574491867513676649117250388010709676631883067711506514287342464389590815046062482949283100131621016662953754876958695034600179395465091032312173596999860390257136411964068514964531234139750982281124640437214999893484655398574829427227929952395932944554004613001242287021893324723464651593363682176467789299969266642000565964274258252615969453592971281132187886895918941410792282645120121042042483161717801733561341818929244868990065110623497168927109766089838306000908525462461367603615467463620652406242752256880433201246276851713432689266530805083008830407051324448185817679458250035193915251680241562236285581562048594812240360777798694222278449274807669199229902262161083848941442287337070736960816519712167647385629156538849059287349889250200397729851937571976803734844442735039497544972431794006893714441427637524158641963072433234727769741111772360445043354587629594651952159351649805649139428524271983188262636848229371403759080174874897005606882085615176793097727865812592973532534922506091997656085667365872601516373515317630270558430344477384813158342456021170909754693806883969159396935512392922885601175483819598122283780022131533103456299250889662624970839850259058375222198063820343140356536245902785582289108439258297452320542643508535735037947837485559091963941608233435057817330780185719371604181266285563646525458740274428522985009506432545701770847887516350584437417860981225863166292472408739111298120751761810439030434848898562237156524913468819198434338942875567820854115023233019546047663678646752604735460484244433599327049935180711862063227861944248166089297400642424258776176582507705192070933419168279394888111842047072452451046025094738739578748688051673705401460213719931053313400464142494694418750373244095399318705167508321485220802340610032964438992801128105962482511372447995789029428716655397336005002442429565028472480027069891302172767937820822816720471895357393953000197530483350361963624785089653234819587285334096631827274464396504538214032300782140656902414120534804566303516694291269148490683441910019562690513125486213524788906125948056595596315824184932062040945581875729381455187274812200710815497867390972690268374094817112057651746640997932602088432644842856906460070599028899605184222901290147405910811805731832778385772372740265922546223395535191978732357995137416867560217914634641442713829220784961368951128340824948845161229142564157567268554070390046604243543635983060632471374678133880594435124579045174970653060776148406934361059050852880574983505365220349301350997613600606900421261437734780159885181909423711286138981849313079746423925759555810863339763597457972256849503543001104945332287040118335217139859191286090808219703568609343523352997291912932618783063772901925494021254949527906766541040529161791866154386316231021462776495794010711106354954552234991536044211893281330436745110210003178904473108519745200937907944922224181318527568171596930769313801998280888554194708170711171572629138050522710855753615277898875960956348357012258602274273371563376199302761206833656533591892642979245359313317532093760506172815665581626731617355570057672125698429877350294627227299870079725610392976499380933324479387885265224593996198232179154146894698479604738044523087455742688794480852526658754798208921068503642068383505228046543191139894239868828796372077469025684053497633668858318121225575114404993938194294271883641892120209407288461059966490552945462810152474176728839758274836916592044303188693827842766358702584545436013117821392406958018858531319410483874997258516587421348191762301208628658749128991281209824007904208530355213283147839649688389538908732134292264678227654922455451558523231196317695759241655965678878667413489245357985769069367752542287793574703399352762031147414733112065961648868990875844620551992009269835895200543162019061647627464800817357370751027443587183747270713391584077636239807253401954669845599551953185527533616430792814930711350375915919747034103654284161568878691289011368863340980449970722502302471066266371558334271369697053671115544826421631632085739853893989417835902348831199065513442651624531570255585169382150066946164112136929617443840731067421866159220896456526880037963767058386351841785209336428382741513035295831554002826370127265441203989052399410319804465468214792884901102905705230677649749622424672197986635268085510773426077476698280285627644124712702306978323349480113321177460774156334841790714349271144303059333227025555740690128746673263936739649484154743945616196373050582605508204968130643189821681885635161234698018972738726758169788408300467692354160355034065200295881644185742953647454417860714167362283801371072577742006491016487025501813064778196125355980166946834711677539025851692969983840274694709702897749202524377559128810214376811469328254245922416683908452696652804264146711906035606442338981258262351989802145768822149334055379022171061474433121468944425005273913499261258462220095084551002234641649443880064184485598979109037769477949276491694347182352478675137717441578841430665226311989404944391842436743037183036833055626160348814148670047974209031444790923639549864748410444734722189204667160139798505024933975475858612683250219297094139215716525380394736962042059275024662430699529272782409508309871420224893071746944315572749030581159291960880540189472444097006688437078103836421182885440934234765272651728402175024857106288224313066739735353297563728830817685887509682588511816891390600476322642101792061916414255192962044575311921708365063270014854329114218357486446226069093793789088840437383271499245486745265854627780965520266954687104981915656426014738997410045130295661549009915914146783920917402927050719568201264648949054600439962257478345197642298141735514148189466798266661431983740446980961056467734140053066209767394992739243410683854473031106082612591631191710692875890587680478070727620272504440846125819364455388933351826016583210037948762560230409048306672040686506096996290888734131218366749658884415057610822330298665466186564563812581437457196519174811981816150779275611948978937879976653453784796515743205464724661968250354632888008859356014807872930828231456448794326216456866046253660896965285008317504082882179920889472481964169569243827855249941636185558084748390427161110437682916703777771108456621684941757860185839229105311633639344814817850543783872600732800085605633624443854930489288988895922088055837708826475525495260159341885856451527122652561941939643106362598198227336895735754906975872032084049120505918739627142601676027860450933701561511078987962405803171024460012637892975334035646339775586992067650826127069102638406777668613608437465329321256376470960675789758743687814162428468753387638452712211462895399635465395197948586322691434793042119398546253252580996235513660087313616392602144096119090182957118829164070084668193934074898947900865363099538479937055438527825218645989255342728111666744875458537129210852258302169859995814536698929238837867773194593791110646542524147351382422580677939522581516033046528892032976606702267786677555757038985248796659962804233974762951841285695115562249188819904118912136964110620857871297784153765584270272392260900859395799313056295582524573252221023225017595604635887799764706746094332068686046739286001486806306756570624447006479306462343021867106467182177802193899287773933982488268872246602840461162320580245954554604371475670905164329616815817767784263533924886887869999749060606917123609453448865445461671046959969935033869192843394408796797230016018300594703746777909449752221124218376605169366562765221706036943647103103598078768351077317162895989206864990214913228717684434544628224221839192628564218557953485344849230878923261833994954707845080508785732676363791952876755138055809727209258422715661462085769490577823820250605726028487068191925543006362098132173347960690795498185020987599368025772142250597960406053950005005250152608377750831472893273747526300181849228187474789358841204595590590096827091941546107581213897025037181227215784407472681982242765873244302523752294917148629949582921018909924485081887257471532573385936216244608659558787595503452752029203265276751377410523555918161276986087486313406115122102060381884868769472350696567156874086645801878211570618134305268192330663148343366961402919852382038460962035743145984009921661231657249792481712434841133122118613557202906010660149879231164749421645369067448948584519556384804892830736515777267300570610678460733550427964760409297194003801443469741789639278414855158073176744851663495193491052561855972062930602542316360371828836743173861351964486257119725514655343369409234117627828168306450318045160982076836898267831707942951140036366833235423095577510057108367034865750896517329524367256690880642924963210904251644571227761866810810521428897366364492249626927875383015150373097095993098667248592871872007980414634512079570375301134754202709509851212467493481358578552851926775907489416896477568668421327460966293232164280959790702263530205881699483360820331781348502275971601480821921312177938357932308304327439993954926334022590436847411154848546833923242192928120837033639638621231491297367243435013245893159572804346350428583076791944263783407486147804395968486418888334202727907416541344262795824753415452774021782803853124935202212599543931548770212164503208206252369158047749652730721494841631361359394825494789886606025297415105719930319563184088604698863284922076165500310331366749790262177553182799734824535726311711065536946243461097172904371928505464367294451469801753024728950175473752534774665129316826317363051306969565472339219519067537601223967781856153193589471698007732737365656555429898952001119089589768330836534117986223246404444850450643139590436475877394997421999130890538518039503870714858663515654790523341327268415595615313769600175810642742312842367426366931129833830423704400755176034215813316137909415657302448735153673531180106443292208482990430914158536595550340002934981779012736311135381409865911604492442740758475378857498877939799159861410304530210022174285600478286613325684106010906627749328790045938305580424920580915122085227558397368892994983821014752857038173291772555032155412834544991132359940656318046663144446181537958589606699901611390047096374040371438848799341009803365751869340347010396885888152377879048025897735057292581816807504072573234308126595431489463248348684247226917941021323200547174376322801946202820463371454992754626438090095164278934194280341454203861813472652819957451169192484569721542289346308849066811311599764937479949903073150626272334769657895891105250921338023170621026571193689214272043185425285068420846675814671729675677162710601841366848392413238745492507018605615530056023631755948411911804746393306275449110905362214874777653894041472255052329381020866150783972633113621186473120970008536695131395400071619610839745824310422806774009214339347622180157861944223638108587198033902089848428834348592913080234682246386726602286205435698827736915877687864517481415058029280154835522734920602842432404311941754057342263684259961388571944659008171068256758554451949118187305732855247009630000282366710022615344313788045346078405725215007891306694418793171012561947785215653580519583952158280754458119900737769985780304662407691357532187193642754007940195012180138855394537939222357633430433725019860506277303352771297978056894530021091217725814628178549814821818729913641636830405646645179603745925011024471134494782383730055991029801727399311101847435839367835643674247550028242201727079094564351006644375351209801977959181814740286295923172970653469345500430585595631550613682177347135697780373681775737753077223719331019359386062119157303773699533395705688003540792454267962220170752406627445953195787726589679934144104806077910424984928811581490854911943986559117691003561414731057305830352006639744498830793143824416631928892066961417849419688328939211543871257316675496754053574697898165533191758052212758902864302372433586278581737285709455506063858330564806433421440607995408058169825719122340185725226681432853886721415625875879889696645620035953270161544881511674401855919430677002787906515608171573158918628853792349221177827935067730845986408340310122111547093827118219808883565147662258716531438902433778548268680320617158442270084284414081893852854412401664436397729113718725210869923083911338896018370290285230571663195364728630482067723093383438007285221012477498877328188642734020798817800721704475128562709560517449947844804525492958728313883327763856124993149789294065355357668859599150945911108192982389009390050619245455479531530533216957447622520082840857464039298216348323179528671640385983832729029533742165755992379905064311688255441959229064788708578543792524734218312191454983684962269343152485457088234008872337357025593320192703377453871092689176369579537632527873214419463620371382011036297283418601481441251399995395961552450906616114994591892893765071980039950420799141653447309142782914134079188286645173940747205702191343476900561823559710170231258168885976356052483100218860245858475817118903085339882890270039366270498507441744241260290531351467969884658795100807825306369615722792727395287130010902675530917077762487232382844504546680579632795029286028352182974515093752746697718764601442879578571808478009600416649336479979101648754411821642668915117118425251042569914109679876941940101325172723836680903837562309189290187392864637120855848414508120447429228840020494255241221012986046370454429342835861638134157218303559181889300210044821386466835210563236792871115476914309950163693674911009158300700103887925350983568410618801828876139530527812792794782677023426735276614454189358497780061460828113557114581011726708940462648121241849872614334092136658662663452131998760506138629842116564488408402301346765507115416399956307472779685446941740452582532484634582818143648806324328023681741026909493606533162598429492003285316304629915614711999046162752189185988776356778127333228373789370147827713850460211889622779065482398180776698209259004339972072006887287433140974794614495319628736768905940519718389553122194807514319159542482338983481558820280961075571750577218273124562647550694452518753136232182615310400621008997903734166273458057917997055131749768551308206969552256401807643930422106992064308556086989460543881500645404108435010786862738437336769699133611937583570599730401484918462053450620752020140718941141871740681534984715171747724445757197858540603041454946346076821709679268598111078718235012590168703689717792152138178607924895632497214751455636256394096621698385760757844224473563458504737343869094423192836741827719966158583014891665466421503364762929693208164738003600560361656009103360561482077229552880987573026054413898390290242299397998143547823781187947659324697740308571736624802316664557667587043420528155690115889395971626211735395516646758234116222322143186380403570642353650671428709887093388331218902146614794340593683814193332552031558054650166999697554424988626316948109768599487170551615798001190493830839780566752153054024915161907341782749978352119473405503121730303528721320341664691421708458472785347330155925284752941757825308227175987167458163857982112027245124641428344951543450625240381319375007367488603517348023111984023276867533319781610446444319424596462572489219608701220594766246646944413360516947161939505622511713222293952788473604989405471890331759256411988494350740692577843001036070656340556760297058559332768097917304805299981883874505329195016780069744649430560062864356933930012278286908297814722469067374236618908717475025243589576706676149718089632797164352351357381439781208755640950666729167328769130682719937678021014214902907304509717265706866732993610777162014877888826868680012031607414802905302112850587555402414072868946589836230860801497352782832784608294187388344927695358934968016652598193846100442497931118977388543712815525209689483665081697354815521991457015715983844279981790119576454176241656439031947825875855954372041747003529053441363091095369995137732258907968940046903523317073892651408028839446068923724960505965804166887473607407514266376975605952794900415720788412866640587224769215879091932334823363868628336613017322687950843935601484082468950293556556201315400298995061387866279595742361689617023574991452928661337757631809208051873483471434366396695192731492879261145133030023133626512063842718659314280287715658259281607368202503699851456483314612480766593142208221222398337606946129966599049292527587574163432184307413549447817949057405296693450501499409118272896621256166069806168659529647838730708436510152735776996686995180550156757813329022821439457711515994700957224559734588762893944043859405851192336435370838707495845995688005625454456603676788882486391907765011226845044376805215349711460927511201798214361642274345804858546724257787702603310632819287080703073334009487013945508989830871284608774619147116687958045893870791282790801573278607475105504837473019571112743879286780590906828846518278170890157296947254777031770101915989932262759420395270245937483917441058714774013790392666427105780946684712092485138080405315188979293162929280124619360463881964300037974047670738217248433544016128566464941871259222304957005985782740152955182345811238849420173150726996547537320142545774903280516995209239218358998878902601868624297240226433199667704601488630443759488196162674437612363129253676992699598100828779810187221732669668300681116680108695596689324382566711239459922234099783898367526226383564272157963010575382575215487907192384292044981245420926091220598354361023806347382399917876894292662463645607338860810278995016411728729270116888929024778830049071062841679856896257779623976834734403111829687028259306448084445197125563554466272973719700293416076411769939966505275421982383847708833198897607607761987564037966779605375047774232775510361741071749343453659168953985660308643085736192031936509168016965374683050961055788904319895434292068901760975714505511299460251246657599718074583926524876780904252011990397459434722528771203834896033299219197417716095649588989233094851366066762770974151676165554758154812541867338473316490033177109314249402996456507773968104589314862835274520366573873593495764935048926280554116324100464524082353774978351290379543656402819842997077436527782295103000778963452393500620192409727438520110318928702374217806000373973339785325996559534845107349286970689473091452090312544059857284814710102106957459735476044206165885186624416804481597134518702714459132671267517340781351375770188266712816034054738038948013252509723766625361839641595946866772194028547856991730741393686981749223813259162745042494284205722362282990610346414676148259958256371732578661236503803672183910823107033931577388425938324452930322242700749735744679125503176767063959333843366111504531836799183067959479083147863368897653149393813692083284031535910279892688787849924033588513178018352829831581974143252079531303722693678767046934018031355727364484988214833915601439777874869269392075219362804246346400033676081623434697090636234166477111241770934473108928366869508129073689011709207582976168534655438264172107067906786912238051260981461266504246307950611346247657942974888125043171215017108946433939606446553258699917561055500252838816628600495165328040770067396218337583205145489345587620634827160053045601132238945520289438418687916200762972462319947052807439656394794161798659328495358712523207150366709066143648765043183437649916468169383525314248027575181146062157668005774887913858753658779053031235229678300001732877337988441708038729647612639461726621675077933984963646449642173988854899297456637167073060789871129333763026201118007320965243924078852543464182464560662274271206747525580772055584253184184161101623018697720236243086422689334642026438897521187147218916939559782322280177854515954114206832510540828234479541777575956990476779022362095340092779521461588483505301927003126933482360575089119695721107998793244034976024386723302899904515270576126236984626001406618798317739370709282808778764019075436733138613572658088813721861279414992858515505221992338454188673093423590433514936870625692659914442441838673154995502366916968098898574592752860258698129740344171007397524855096171729741898789225510323879664888246203738740805013934115215843111030224554660733249270831505461413188694329223299090583532112551295808091502557234141703093931174748690174815413218307072626010032698762723711447887265896282611242461377376264692676281611315409124716550005660646704190785757415404360904250892443604873241602061518433146090714604867852475569818962948533060105746538677169060876938315800619078446855508306835885434922262033264187092403364971557037685238580237591710825924562247126383279652972222899239216481982916113303958131281133607128772594761119776818717927708933889314021187258442785217064041353670075478683550088847684802551983897945584186739681272949946559405060002240074576790569696777941127359697364575506749897501049372834065368528539340406864019429054143940221238734778167460009147947239210183754888969224688942421159947704942108471966592932211255356751351273444520713776259864487247101587029836366868145197150699862771490247070601533258078053316663995387369982943268895462651594353793933101457761360282604833966029103302854141834155218332917275118495867392963939514471969690855252500759917338939670540646051293927318428656463159537665190855843610881531617759379620933906946102915518004695366804060916232906929505522959753981986474615984876229112559364492464597057799033332809537326579471414932559702460099748978987900960589760420814551199595361433449875451806982093669499467875308778578273752345726846653336297407869134492939455410894924862486939855810366185776540632937125407604156614958503633334261401877214716281101292626379783323798095503361083791456294014011423845776236007288994430165844995580750353424130888518801042640150971407639307542329962406227991549925723876111129615331483722126636865365260562064213463238528209786482497508834151907393793674755767288352375274598022241526462813964700936579028984544473995973144747199519100197817868436561507373485310247557740939084806408854984083111850466854925118897151545512769118908946799089335421017380123136262861041060088295660647589920779146478912194236866966996989188024710341556391874767226963882040243236713489951707499436425693837168069044862990127775243693936447712612643969842650323472876432666542082259409818013833067425152615330574291504714531111955628680220732974381282932158689435904164546814989321651135190062269149899859456145310365670141282579663201199763623339793473129833574123263995817078275567077749065709682046922344836154798523496694310442155641991523716407044680843068964495407407755789031648637888212256108271048691214716110583369642912823933947407081421513386250969119034032149358037223858247755857029816961313007900004594367427426653127032369256369323733017841257412356151378245891621285421048083645660245125643218976454288695273749469148593085474797931895862498231794118616711266945715848884221881747854319710180194296522844109859532798968748287529820718478994068108173402779090483210512633150237942164132156490719824420135670995243386442637628384645483858946463234339165150785427128050458064955396519813124620560672447015276917046014942106502486140004375126258956866745247797713612554017296577917891667107310790774194835426967759363460460354208171698815521827299023469645472382027956284026462976441198069507046837003515315701766031590839707226991025365757360587696813072633034386499816686197478810878713820976626258010606888332121311731666355360469615287772210870631638116437775382694746745041606532092338665665601805459739678437838539065508874477180020202394427442858156112457194281062853751830688728794204110322403880559879999598843234817005424078329930007269747479028756094429487192417711512146848486473192174172139499645849367866369187358356761968338589471697854832643597998567339352935263706584612384582040657298941497703312031022187530183044958376265081375936813903989964471364390051684115454832621000299988933932391131614860514011605516890890921734186727036212324719069742215188618022329338134750067197519663930985767932305819476316439442319293529782795576255796901329521700249353039697239796652606324505380582836001084830322427266838260138599547972302938726205808997715336241187398568898452971658812889186547362450671967195870994306255044810850904475369913331846619626687004738493426693549875844950543162673366230867296444538223378477512513912042391339691921382177259395974529594531836650039213409883208809694234272034132567783906488234631600652502680729073011367192597492311758359119163671777600308255010898332622690800457190129496167896301591817602377280148843981992031464214182281232127227959109396812139427025254374232541710941627438860387324898733769251276416161261190767778419491797046150091072803713182939818036439804205919311397145278020526802315523759263692817829597725739136251071424154069173225315846065990111020279874839341184432859890618976033269315978621264675788129857546076673265181357706820810180364349523888186316988108234806673875989774792166235356689480228327343620520872065310263526162836729928349305697974607569171081402852960143086079062682612679602972872116442940860041171191246988838652197396143944681151302686734422973050092123189382344176618566161061597330347668162295013008493868116078826006658375532800648544682018359479462898678766084376764423846560484371267984598260325994890259087731581944969586699372783757154624095778114285395460051059463827519213069877525788274260657263346910808214786663107490555885638852859892132479171609087476743865674103974610090383921981447192896278154882547521657202394525234909454651382815573463477617016488577799586541092954257820441710318029822450415969696274570189883064514593376957987951287721049494136946569188203159755605278259720578807749640021667403276808258872653666825966338598068943305218907863461534446691259945486007545385264102891705615778052020300261466536719545060075676207998375961434692048726524106611992034099855997066307466561320160725721981270112671953484487337571127416725255343717933995917455334330892869243807573874443163433362149004152709010556199008408153133398049160689190105792755740546144427693961898777541524048744393654976512834319644224960473756202427433287279413191806924290607291531097831129668848557681395707701315385265091115359173809334007557072565550529283236393339390757250773177721330053255325094476775994434707250805696382010288003475639987616761961641433029604498494651009192663802454494170151351642295301986047496425529752724578450159782331671498577002282333807705461517481853246722786741504127317122189210511305475306223178879757791921722546278585341451520301635381916361296460588984987172956820804268885215800292856499451567497599368681270048980329696053303154214786999922094360502543104074534793825424078160464810030678080982080528720451071513855567374851540953344804024207951753809815813298294532172948198512914950394558610190552245348300135772114914465630680803185327426369605044228784971456185462350780648677517848730773956139567698091162679975301181847322921433454935979325386874057832376991711971688697340507488963391770926957551488095931072074430009306783351055495959958586414972785694261868523996911551336824416325942368784638853437651927073460883996716045199159461832334692303756034483499470593160607974179043851947131102859941156504465992599168140958028639850104906706169095435383473598047234793161115343280420059497318799781910413861675492335996528198264701129047824437535970883672251604100306285838337134433209683878783490101883089537733587835180516177155831632466420301326689415668273369167882269974123178859028864838664889778042926428824413875424865287888531143738716503347694060208681995369953876203437171230271232622198021907305488807960447525439862529212912057075282842430983459858929398485917177035240581209448379610980626780073371351462845427971310456083863556954623743774493400874615489176761688941631673663744153203172093855875631351306894743554412286209726072141717724432062307430689328628500173440076971644712753820637293922946393082445907057543808243185127172499667329034282401848006568128714912286554208697159868312511891485915965884658442206005034895375221339147585263841201114486782140202061139147283844367792484789042757058787527754930537781515808536329134875581282167933613100124423937705116235812232985582492172197108493289794819001399939675004220549250918736104170315703420364586205238085885182968445192971622730773421849455901591413535921887544156485260595905466685663326004641513081647274295398439438344135570990539382606431787368222158406817283432417492853876075760474908605408123916945364131133240909391814656226983517231091475507682619147563368611202350653664765647197461786518166613282123435383266400834368425173842063379775525483988382488917387540862787497689706692377155557960651929263973060696300551703969264689047597500293019541373166701538629745974663667761281750288349557297318680809604679614481704510262076448469191238727428990705963654430415528325614831298915152670376138219820175631543794743796986421895320090573187003367348343111423644038438370466737311009259611287338931811638288556894495962127089178738375301664175839853829447812026714787124189355126484097497257749605400770734082195966574030947123937502043701944637413988451568406619008090551584413534553759440978751409585149486918374317549219843352049715581662138969715954101703441906307241971295558194339354942067808346894795226110806866892845363594269120995555870728527243718524157260553471466001724251396124251737931865029826422890579674871357318955304579723592591952706290739424429623594270737564009592471800240568521049873978832363383095508104078160978158288270338761785012421484392391076109158501048068893978028300839180645049597531451909615724154837385046763812989046732094836853019612506606786982835708913240288843473344665964077036978208902495745331494913216826961488279725296321338064743806284756971985245541720566042865562567435251807591809593344184690636311915628215020794371044697641225570615068928575888565401214780770203828507927065647150524059270258850139127365844477014949340225134495489930133782514346689000318648268839066265258932775517776217949718851904924369372358397372514664388711801617895003905052240392766959898952732035219238302605137427156570066768245427159338939786734937933075976217626623608748737016657953241893046437904565399297846027825784803316140532869270780774293290851499540775274317149587597708345550990318893421365744551292159509710385105187332976990328688579141811694793095174649502443930989651682262252473119963969259798759791467235599825276753510508139993702282742076984748536499944431475388372716371614421014313100572246237956688196838902920427682321285144110936300320829559314221012715434667032058222951529587724715802704950540473457020921334033343909646002638502422864054203638709860400770647487752290768959649754810755335897927241212337526480515730133017022440218701489390036681845944269940598527682758825300117612331530404198977237080637296217026120238810188885582230648392413318359062978468922219563707334409127175735524315039093513213278753838417891064408466366349844989815680738873954359082172160152331900577677574096323847126756824345364568251694751917169663144763115877782811315054461112764019282552223773410287432188562767246957387525995465735597276593341612858099988918185993860327251735717996053395125814115374348510022681454487945323360889193547976677536385308150669549341095999582662339671866207882470766607206874335917223590619108659445904281011765228291862989980290019333989261625479579253413767366490396458833467394091272806248386546270941185489590555970550549060220418429107783946427022392273414672849811959894211888438464142883775599722964116064280102303644317344997239471453710182627654274400413084943587077430897430283710636954692798883255826158287019265129526118687949360167487243484736992626932462183734358687252004969023867306701877970136255198100342424639574713881586138697718973934194549332066816981109195218365210417529878620281757810376995301859504044903099017948903515330313212211736347489644040606058339074051342484891594190787907123180789687214980460908634854671697736202204008307415331647504010899423411232093158804531251440690957193151734640986670458285560552563914839111029637168369751265461231890630627224231670049998691665599714548828738745726048100566201004324973850279241664437481047479993753639781416092158872841532159803294051112645784281527393730545702006844360185195336383088437898890425809945833215738777183842909761090054012070653010108347477081671301749095458457653913088348703982375489713943210942492025633860834593824712308115250284450431602588576955143471327681975376994339969729744353766685880390638097001883715026823597688731847702450852912269595581842388308250341994768374405489302209408315578260949531181014241743528596267518981553454818426700965517524463009339960888949948652506259016173149826623580955055551282909734712381711035265218257634906506456506908403787558383910742261930317851606106540253345685609837335155846235411892410267593543999816833886841127341128159034846354993525399562286920146700701806240288795510720891555037477810788192129346768257393249354500258590947899406788132919258746687128478629354718049759507810166627181950426433702689917426562454727077334530338320282831570876617201419861541939967913604557551810743048405695691930240591649331236035399038648227334924725771702609448129301347512973707632942525139945610860950373948373547110389640328291463272558449971493840441265102941652887371655525125645547581850305927011850741434610233257864749595744968617609392078089233127935794981022132885456819628940884792219144524706917584428907408730406491578926669870988064387717935228625974479500839634350633855668900846922179022584900570200583679520720131917139637953016594387899582855418010513405771345692545086785229914394453808892283795595828377340002221100517834817131291488152297476865701018385250694566777620221019501251414654121040354752957616348634184790347939976188447343637573678490174818791256262230180743833262074416661357570754913052439013896289805834428034091841522118301129312388368089416848441827813817426480718223144943990454258555280810438395002130441193843856010930222930654465465190340261355460161347198198691043116639892143050696630090618755193301319574980240574501603011953989517260438865422630710947264906187424521740283310019312803974622503851554814526562498196049156927668835407122188691429169405676354260606643772516134772569808937063953714935823234263547117034183280033230439612117948379773029571778036583831998171110577588965966284104455129135022212206429440657688779898730964980784575905181406955649892761693164226797515107193402582977765146143962977479116661711724641519779203799829913481251190331341515483679583894111525689241105872474762191462161800872869136978324819201698643699607525947287621362211263578060836542698874315103073323805681628772633083947708155970893623396623150784692422633018722360701500104402822009542915661714552864504973630424354414765843435644306168484054974192957693580018557949328775788028911941615413161717512516173617869608853079897427926170917035941817503699864389318013450946467280145961812627861651045887496656175607620142053689773327186020232679174149636725404536453820605148426676129534656719056190949048968146914068228950736354400172765883961890257402413783477695256563359408606801083611987219342350708363424718296083244901624914708901657517907325309939108401848792522664025679642591609727781434226621423293804202807512358233477487668243445514324685393422963549063481076438727305705727822936100240799799255659367455472598280700302508517726292611859422883938787586400687981963598486847267802427396807846037001597539965800764609861000107319922179800021335969159121899072556622193577010409110104309522634319919843654959818839966696275146712996758007686635541271204065634960116507232252741223728042280184265063210190868523934151638626186774744353849316302277927727926210301286332877450514829186107140828361275070482276638191571546159189089140923007541670361757646415178043001744603373692269778699514760089508331950971889701616309595740401904709598243906590930476667201432071571865334899702717581848248558535200393816047759382096034082713145316848517065525446183660817154887697447055276277682770939892716125214303520470310031014580720168609953782401134038723570114736145626085020012886136574277104179615018625376040709021314016215171877260038173734562382773552737649145860237847810173634572912591198148179323553526087647476977676063239389174488062497990688028155217932787435877883631199437703782843926841443749329233161384034419982175419105079245811278899138218829198147640773633929344790431768084881723107505910194336971830915959090845577045845056027206716420976885815729031119873571042760805237183761554869036933091642817006105058311457917967875220844433768701405668333930969727720991706182794167945068438874029209900061089470545835553792108495465236112925152153745028862270906838293982300217463089981148498363267114510255638674135630506550105298288605522362829590103042079116742674145925904913727122330736857106922165226649561010696745038575425978371571078848349191103172327699246307121191257982732249887591159265086541661718218910081029246998821726804483749397391081542723545057642403710442412556440990020866148106046827469219623000287807505109643417835261728783948802714710230107075803727505642649346027828310973131041564182475953543171515129541790238442242512235451688937141850094720154769635996359818786992861261295429129271518911271646660874911451501098025542859172901511877834264730002060782297624397805957563696994200761596370896784621031048023923379153748718824217548563080057407590870134535884442519228537749021763779341718668263692217148357562158817620128488046640252096244731162025225616945926222319649224074269875664613885568753439997343413349212153605826382892493518875995588613796469221703139658368934440327555794686278247428031138284351550265535566713440005045279266745024184473536033761042086934025992525647272595920985387318910251591674432702478598963967013184118545117629056590806290062487655122031038426593150851645788266096283075529824518371521402880823329933819064018724032520993083166028156807821538190535290171954654550400626364146669848314708517050399349649662362918736825164849255199944838907374531000901473382912870949099848911784056116382826566393295999767619038539569245559282477540245108482360452030043298889513024670999408902052939900681873917114393910733888793542659519019330478729672608443364774570428639869433907363674629371074766383212974836277725115919223999407272466689036839834501828197413680311375667258860729777303780569933971442528671092338934508310446496511738469093273131277798976769144583942370063457030851892324538382373928566216051931331563990214812221751560404867436500322249122042270706273650972582532863344169267028684539166385835991001807978991439322446853988162481060239535505612479473665175151531764648930015706779543717495810737250837759452159889696166978337102749612769480360289531499353031514419714016122934591518651572104535364045262050698288454223171387078826611064314692842284530954923449140955329516481775507375961318332748051641744953759768640911767726087894359791733436785989970428889456069892232177724104688600385913972105537740675904422016473849778140096304446953961678746407005914018652756391430769224601371851421841822096098889655639628482212038601768712844463344052422346190314648844780509932003958964388442465124352461410171211848148581052989139613451800903945041257931728674210522665012533631000576539350262954004972406167523231705379961564658273855285007342760948866631295665882069072075801008028606242508193816957700988989638030661952159694297725255076027753195004461589910473336018683319919068789957103641375022292298989980830907584853360439726496880049287730510651030787556618838710781880137361967610315825979188527394184461468053975057321463827479036068275233331790752676502253453040488437011822332551260581504361035008256970175960923255406878118101469181437048907195209560165263390466211860109044840885965892252054686126912721796218913656667304298615498971390523517227876033697951024809967712773596310930669856115352258741755807495197186622873069057731552629785441195646755501188063953132795988680047754423297736446347587116147040630040165570054875829885384488128395393277051061808991649950389033748074358310919724957841206557014352171482355447360543764703536375517911971162417534067146967859297342705323237626459807621481045002373767965658186465510804785718695415785164910515796790432784703224078915731459594186223519337213555550943723496031069929097177758742220923545031808494553458001479743111796224332121386542582394360011861810787653987139525216225634946416902463094849156866874508124657912747121204469350503321514712459070804440468695599568267861708596295423194799477676466727391803545703545987571905163178912080563663465275079259036005598257997593543886500013099148447829576230129621813136918034694788837948414528081391732884132891682494202584887468579493384535761363571606738247144714159606354645548712061508368340176583681965879131384093160941142832153136176342436258829602004503052655131828035979666308537012138063162231077675756359164798421169363821494722217969743992155131475750658991089470174929345086720285447246960182642206931804485086443744116924332698359132954152197964168799160459362839071662149781223600797710444686859560758705542426772752182272574466908932019228139635386063248154498170307424721502588968399397607147164539549382824726403921540939292777167931319945244346868684667908304199057077941886788388942207564064044037985237170810473954926849604322899612551146468495208918729127172713804653150098935242078203454441208217568734233992338260990841762595351091287041209859370647957533750262933565903765210486096922743930471827651109400408664273659889461775364408436172941270381723347513246723600991666715648246552894781957730158284928441142866977908213996125504618659538108574480858779298164987690186677106544215430419577714783563831709816360721601795145862533664383283005623588222520184698765716761681445567324218209835471094794128782797557689398108789720382821302202343595468610778837445758118099736308159594447504069511616672577389522875485550553483334557226339757239327316903951348341785802260358765816837934582708414531616222512472824779247893071629955033198074199703496425079794462606498781158048715760386440713175458306827359643562168766419027602869357924964230992838263591774000760451625758790103952008174385553322997098139991937270801237003798175426052355327477915469225455256496983708021292223754949541088816956089003525821945552135331762147820051729355957870312030118083787901586981419588781675724934644722944319247615621312975455709407816114869714925679745027530516007408300438988716972172158940433506316986590520720503655293679108118466450414267334678830836187635001396995485604547122283428749734117854138098603620721542192613791434063160337902582599069313617056193233606484695657927778385346988296480465606980923624808644305552699372525878445935253234938740448163339418155641316455900709638138178401829172744596501545438718586971978336694380127121831345754103733715915327727316854694362073675235891959090166192395368193394020088873901119596464295280837352582273635334433215147889462045886996724086804343301230196308883523050414462003867887642452854157129469971073736677112428642307244522374393884781137028066348997684504602062038684103852300786671941882265734933174276172071854005224022398345849743431953608026974768813835670006882470772610745298256727409808083611395455406698143162288323703932525892268444337772379675062656417593804027669642845154983178672954826435379434685226370999990693966169524591727358918098190004233132611130582541909808227094149114875102426189954829925048927058366165517559204327304478646854804756587819112545726559931103923197557405287331566771589207017281961975557361461222023348801288874531635104993050561428396815697337095697868995099002564561224177831259925120388902727896955354470576793791900685531669667687261096856887314614513086083998484465079908101069564068885559025836428946844933289147762701922403382500163474747543948098006088395210289434597106886577136253149099911922624049552688014069829073224530102851924214353589095169028283532210760834926782375158738463481228382215261807957547987775201350308599355661489259015444040994244004606377973553118249018262868950649394808063525495281049353647644202920447952638501527827248046345485386105408486985796258761841793879758255232630214989901567872746190414198648426801802955009895347514889339689430132578057250428406235234527761203728603669437712806638669090900916615311375196240542413075861282324631185575220154193015460429940749687747956083103553726553405228777454261168419741465777926743511599149201499454648076347892961943975800493790264128881198963715027181998487314625630981406274192339818734455644926877824619614715507938771610382123107375698216376322194613109936969317985596995872821576615913480392286444676810580321683421263820887775310352055387186318986416187780880574400584252568009594474549556792102022169951148868319748514440097979052640731948442650241802652324586940105048020020533009865428094272046138067785856221740511450694700571917021923411087016869393264366028693229962054213496130390914162773160374171284035335663368514719161330465350501680677277804626461213555360341468317089866953648178577920253301506453949020735489985332850767389288197610733067077302349954594933996285973571988018764888343060673206517986539241048110288766279039981469906166009977951285521832239724970809425920600850828676116427888175463408952965328138027512471788465597470015398770594856024349107105549230411464024212736221823484081498545552107385046282368142899639415341970539318363017010680934429606854782307622809946313518307545352363028949460348897354323537982497134761051045534726834200356039565894153825614476353440582721145702335695061596308292428210448120979344760962186323182527132089621177936783469158369206540190741420773481025844666156444972798862294268502472436807755191617529602559490300780608665564226989310868264790987742149929743208354921155285994781793544576262826373502911091396160410842734219754415737578211687280629721098032953742068875233158523030327386894982475588386543913795978186706295022561574255465407091298169115880041110111507002505810167069967447593037121664440112121016970540633850731390212031980404665055935482163361523783047596465248940961716372851027468837459477464931961050716698320690709437681037639362819129723518432117838787039450775368441097725744953008083326309372315305451340512392049418571283629462981634230075349463013197246131669048468648203342570046591245023969832110282959975774564068651948433978785358968837525311503673750361678411606302682413715680213112364355135036989406174749574222206793236951867507428902676207890774744626838567598530745692760296266817712856045621517616827081188403719935240344227255293667428764104869974616803483088872566870218939333871282618568342965355216124292852751621018590172494287219098171388548807699439554838801748541394158768631737471177139782203701276770523295393048237257251703472091773196929132632328712668786080711046509270268963377577520964193854918823710981710175430584492164455012679519002473396995331902931235049600467391035877045073320159091118409826477419479569240992093631234820732186935727936741227482701985233406206012132222862308445754038775636763948311829646924370607749475649367735955026498965450423600335623217143852766564678394523599911332423285580172449529592653285611601834472622533944689612954277577227271628051470583713561759388684518143338871214229738249204366543806598704849183451159514846267656986144016246937920259559000824123818676295872837218490957707481067591371816994749150272451390567532750268173721849895138549306294653894305211230735363721794155155224287161580793748337795535883285667760772645640499577934798212139585733215853088951091007659097217993101385689294896937294941230905340430864703824382740280132703454265507316417235420712710010650121286978964566949351290803266727513273102978169967862288406292127043606098401368277982851607858986759905124651808379522951837075402785943874085633047057785593469452276170336865415634182260203032929734482530826808311266324191262210902305252659084780355841484519047905461351228515647039299554361462206817044225019714818850966866743079618160645792545692445154454265124771076928881639824512304965679061083325298575550736662397991833825919581393469466191954371846137672625724016119254572751586342441694915752503191270488344388295079334039921915740465238027679507581376102026300664508707161247356380455713892550542567958465703204885699474939122210689279518694877640943906969943466723444332285126158005343738083399050565627845972280608177711608853402155240720152027313822864424075641784706592657790877363211860795676809680568409489976867404865364179381445777744744287170394748771850301294124559552473857212057087819939016251211665977873492391746070181648706341329817913963451194488814740801914622268284965082721389534123077552140348767292766029832067574812718019365735568772892768376820302912710446220840643210939588193458984859603480532032645035560572264786194192835649667549392993641311368801168033071724252461154130370761829962992282799337602309286059793384328983362193832354997036939284706189741126313832965525992935411909220408971604436002515409985311221945839543476831656236337243921800413621544848545546194876409393756067185798292205233255611249491207923132826810256300655965886502131764583337739057600529124938502131988121151836058904685039034293127670585566581992189892058647431767843996937095725226898444047046617253298744093274246463025159362683584747736115978240269627221999064558361722099438386136907439431824757673464346462319740087658882810887357062869983708476486026838084512345038038984117604186072368006780943908947107957726358137788527979836575311699534609717107998510063975574897673518458512585516608925915080609441263107059297163416799715863944745154687725365906303305411096748122417452599917156719765874789644842986947318930432656559183341037852330616292243470860408728028209175199797888711701939236984959022250345346790869584220488644939392460371462037243760077516992094383017753980330595350201538888345893533310213963575799637274704140734659449088837384463504751812975608257791925161520212320927827443625233394593849821416500508110376869501231407524760461489539090334499654263837196414727222501878901547953783560140853224313782400862667779353767448645224267907153138485264258931134542657539009327557065258211311282432738946782967694361060677611985545853766840822904149593569382198540298577204751587781522204472646166823554792408071163751178202012624408426806445400924107282780615832512075762070241007798503364220262223560986789559271828132231178840298539774788098367411640717428951168754431088468795120361060888012559550034067544191889191790417634095119260859473252804779042462727932727233905169568994280479908984672020359367130309609973438169505066151889471838717589266541890747697057335050833445419545718565260057006103264415080423898314961511201229834978764168535586208177735362907598960824554343037769775733181596078001910663894260647510793290915643263867567425535882188269617377560077549862485913480623483364563468076683168391912939736026402588002442098262081904761418225544475799038025103642308514298454188623938918538460452914809935424892732228569262614472503653246582779665439433812449769119575002939217404757117797495319558586322846804819813012604564178297770999669882917731382574846915035419388448712394444261333180121084432824780219735002492142516761393070618301808314823464530712750714734790552786439791706178760777879723148614795265168385427053578091888241444389514167328005711473934128054572406317683322089131499672585211490299379441623953990104902029446825347798509817442460609728565985874420532907069734820904842620448528462566744245583920766985054861016126271553910173614910972522292340179007922273476508504353039100234209169130961937349486037123412079648194032267548376825020090320221962073561073047894810482826275709532641280119132425323680000404172696041583875019391206541172864765716261165830477301182477914549628209947815522210401281714324929707076374120750114200476089948239567701895914042817979527160207693340609984282219749494400348982208708691658951372722512001868937069571082566758081051112948147002757046029517940071654429142670689844378869190213203466849511542192837998029357485409027923643503016692514684170241198241829637003026739768310995555380562104120777808218011894932352570247266041753024284611086956465301670970049338918839479779782832820471601042203509785624711659356670077111316476288873288409728294180823632516673000327976850016485090371860096442062796823418101872082705630792557734763582082887673789122604857606811030989924480380963156634989439778621149014823650959190038050353485395068117245160210934543630192518686163756148433046805948075232856324700895168883544103928215702452446328624930181649437990260464442864304680542855947334260381402518057799442242442914014996138262721150435273530135874991819849173574540708757373658755302178055944498694168638659382602198773856506846383148815084602680553703178565498380921460201494656587934041284235114079231303438958710619076096988201203053729669705840686431708641439796734875919454472505004096160822065696551410092340616971307875621710303039705910395761644650281069849414499769158952409218205352088290861308586692133574476050703246569018029235726422585645191901115671368325391020315253532900893525146472601514427271211696189236227581293824395430323700506129572554286529749833628834198881033619723818645806063090500438847313128281316774970376475644334512324247922822547423490487623628891811042558129022316002692240417108690445881500782291018353602676985857267748903500350656114775901142257752514665434277533974784430068343488641306488697379633975420088606294251945538378760511648381910293170818837392084370377961556495898065269593347405988627976671571707031922928918189364484473429756979583948635281688809951456212790345981418001622552079758288216468093641192378000759394208158237588029600591087993898143749947598740151636104727542667141369119578313176434801379593878941605980001598700872297881401010855774019381472347986794830236681024693721033835015168029454313437101006383973878737580426968593943597735236037660425740620857156431210819110200533040738031618445222168235572153640986988322783909241708798847306180990754400272231768560984108706185571491205079928248854746395007772959366302093379631776760342959521314658556286832018556061484582817864430898233972431028871493358119222077361202026589499864702475122674327916637647375061117070571352724818667628594351883170608758034380823223774817541770382807794591393474546855047825735423552426902043546413289151123424913373729390454504167654204252878678120474888996875029355484258413818743973143138666670633416872991486703898989486634823053222729564949218921469143484943523664902516794475429031655127920641741962497901240599454387011967341091982320662645440180829691353163292930951944553938216099968721961514071170856112116100399762273082479053206794672908421436160744007777006041512906229710575427674253375990116084610189256528729156863921714578250049484591265505581064491536007302795698418926507217221401774010247473045409636915882837223398439890099109517951104096971013646829531419643907656564576660121211386801055818897464300984238423919429237899899668698551630316329694613940442192507669392233709217210818829549292649702055980227195055270796553393034452427421357903664667075338865184841677405131322429120536858011296806589583563996003712019199044559537058150979862271111016618083456451388467335318787359141885701991219298545312174781820077684117272774879995748204410444132739526869493404531984234063823571183796553856473176602303259308981137115462288738191627692348625030936563225292900265965329407109606247155390557854538159431653529204349974109262425209171135290505999761753496912566901949953986325698405562569444921683538237752874978446089838890752039584964315285917300258112440784911624723217425734342072820705028870054110151367540793868556274399560779150292904084010027582631931422382009398727812428395639934150485958002626426623123747637322898323387427515803698129773369795424123379137726104885891386420992317178176617202367614418581671006885290969999628297568402307313013470274483944194927467759248519986176791344248898232051376679561782984488743474831828583120419880410115410593944716344111105438914422276654560641444268558418156477014174945494175455657899319984934039190546214369401715774704246060117253229142690926480871508418695526481879640122822623947941559440223517466231998930698869791884529256317106815732941075093025842692058271314727993488676893798533556841487018032272059105453891167632331219817195984897810256463881998163087061994646016732870698311572443410773024762106910514371691354428816288998030679128801845330976564226328120181195055321471126692375131294602160210499529370715892102971793586598402337148571474472340826108961976290271322013628799226928992018163722694671659018546948952233931567036716846755919861105871775469205512364209252166206530193922352360388976216169693590803510675291691480009333900160561545479688196152970642806816199795551045880807634029831567289116924818792211659013770642103118707603066221191738975014769095241322978758965154046318404657932722424820946818043823195262845379179977659804226698800636225673234766156429638288360431343288349350034731694452120713697554520674679487249351385603488644309067364461677678463292955624812388451458789466942127634466226168961641574398774034576552852428216234602706413853248961815187101180305012452178856606065591278008976614460248451521793742365833066721433724303757777702296673685061474068679213702841432873623089759481281975892017086803021258823074282025081209348154958718754336996669651173716885753358872331332264483845661707158620051945947852924852568330697457727051626303250732619644329977364825093550988400423671779017216620166580867642580300100266481763711309044193431243006119195782698801979550185471331588591474828782478144437695438159580576180091736023252283441187848718932249257463678981196150911667560229946602081176377889653315429741609390905485580147090359846278638779466154766805408126182430835819867621074107301778808121488633275475916031146001302402935394487623451116795629388756542940918876504520540723087320885586630441259388039250950542677413562393875039970725124627878109134494366341254572575692738281693877761677088796694402392434445866649901157141622109940301242296045205947311835803977655145413384553228606562927928151430555800500216496040489913000609927551537650346204749846269787076813049526906197377504438846884167330415432199284049999270110508179755121113245325708808416025859591447534284911714702754786228629008688213529045450423817587543279282729851209386788928758464941515553699524327936680573564238240385594470437194125461155385099562187173520586495891704516341747873823185879993914955965290652337175183161062924339197290586143341396317674883848784612397398410168674313063684281009664884957949093636821738847695437474155281591361850129731684445080161805655058223759045100503393066523631151250937689648277883237200615287187042924182670033427137737069043122234575985843814805743747028679923122191283492038904581396974012000122761572202805839715195968360360199171714406194202020491533115972412162288402618405272218453304640254160470754815907739180124118189153253315796683821598763502892653516264783184533838146368392883667713388845716867530774396197072020142196487530188480841502784581359910925837987557150730125044508728840255059451935861416573661096656814754808039989033988898997444217628908674063265211544355170189530361026065477790975862212325724406168106347928280273846844232864960120677343323806942370983175918572082566508794486036419393683322224486101604172805763273821829378775343884332949598865234383398200188560856837748263545574717274025517550498947113252426756527749840397186480368057064506945246569678681168187683397617214634823499321151471472026831688983889891895680543401933528423471559744924119395902150436009641439320903109978785963493719570925712089597087025265827766092870892009019457336431913217323158553023708825934385736289045871146359295920092306975230816113151503717038157107220202354321314486990703703897982388292000764648526979125249917444767887960855548289962173125304785948516005672752990490722577283072621356724130939500551413114459872522178161366582924061157907919937171669777358339633610447364949331899901381071493551238236942866287665942976314062938496642401636338051707446123233598720265203398035806530749546982774365085690311613819982987092235208874752424727581999601348898914435082865229570211623392285918269641658336930603676225889435539689360701902431486718347778585799543121185378691557041367003537131428497213515705124001459228607954942245686853768891842760006188459590720260282369799060994884350154591359525650317399582736462004284731688265702182036499821368228107653162039875414016626809397535538547698958340383424975783783085827077985171052927972940335773052874707254857132476307914168422486252448285323047959143000516923251498809902183101463463193459442260386932143507466886673710924014593431470242195526742312652140442756370576258509088115114253106354058343672787241568339246317572596836836857480801648172502583048594245177187971862859621316475296638138457346426002483199959254870865496567279078444022909444060451419382591948701384886820838267750694308557699809503697679150269082326594802598374658870669520181341553922039085062153964973565330836316706388275670862766302779340198367737676507474900942119018141110887986147615077626239646490463722756552909526660996231165550673690382165632325682476627385959016238885349093085497706097633579961580468085580838850682952572330634516158994306888038803981562568956885977776041834250570997568107982765990564583266148058811068607448735931366122882313265174246134491764462249678760722525143699139834869504285705723840451112121353529142124173459325838549258688700088971030522981676199727664020484968324494927552952526265213100483013574599656704817190732405448734355767368806548740615466112361508605763153564357565805520824381755454431972876319946705956376737599154046997097546392842015460462587253352451911807575931332440924758951354880147124246643831975061581211935843007829645286643026910047054991446050579481834837786369410252825471049517359501558267651902016163469408371787202547681130220690950208451358160677120790072648564555937793773548058449477782835353704165619069597577302144799460474146673134238252133747603723927912257328075241652846317551219806830482065667137335723857042454541486168143910196819517982702012956250455598550615808726112022347740374608375078102509874918021748438415073000924378807271160561334195704682564831742011228579217563009617386137170995587595358702776869821207621775410406628585485842149765582709171015694052880810977039741851296446403014093394371539258737137070567912692394684407854215113151117884626623313557031663239558211800201392850359653374805592669681443781649875225403906518467493737634916889502755252502442623331583688309588178176242139325287400311393607874641122232198845720921028563423366751310606429827040264211635231351615251306584930704686922784794991342243219019661377168058925554884299070508901732071989945703726432410644617556334682492308930168766362561581360014035510955246499075400927752082409505565910204929872974281315886105010557321377997546490151795605939223505176478311806066224891793777315791055005928500599330378865564302317211873822592082453749856308464324768714798344924768298472423107657898290927746989839665155174421508853656024404380333015118594839607213690588935701109305992972494313804182968564879245112941241642600652922985806242846461848305100781579894645156605019670005975505421517624528527446103037725565458883607476582468466165498643061583899219666460448385465286097539634019242608119479084353636818497695765956370423064986576769453732677225941926177175086712483749374309234648215898544892975553093256577985863607040008834203005311530925795816755883652988073457254468013358661842752014740199523247834770428614578095418568447496186306509497799788122332122025589865320574557475965474394866214460119829859501960968788719981894924190881149581101910858066430928196217628234873566694932604783179080211158155235821002435282727239686410759494272932639522999331477005952379529830858611694913552804929544457589732176595786585543701387764536488043122351497211263572440519402517162199162242669371335202784688979172012998548525316222527553780944993651309747893263867959371491363187154392269222364706231330019461990911899499868383750079445278908922806396759231165590813251912996814595970550055106967093005497479841115743041354213431709540851391079660179125481487814762562779062443047593392268780640904311641864469141743998815842712491579414411093728768505203579517250033723903693839413628368134700575034311852549899154428976419833982607531893592519136759808576461996998834761232123419700418310458139381879964761624664713827003272563981595887258771857883784932356231388353837482061038598840568646826025753545049829050227709797960633433082292596596929454949771331962583368996052025708587953835187052103542363610711277017282908205089811737910008459801671861186820131652956019632305800317280371143395547308907427040039950114290999034358368384062515703643574051753155674395092262739824360193817650968542095702848770493165281335601991387242017558253480501987262522395572234118183996460607291724727564034468869764009977281009039230599397159547062642556165431142584222941146466634826192212561726540992179600320205045811231264795340841572807232658730261296697057335001392839485846673635014863016985782095450712169442055311810279823855778888942846715144128574885275690239041499449272335070841617851580287646981176584368195581206793489159270541002903736634063903126506204359228704814362521188065744684659338338653349753902591209986750386891808567880717230895074559087564603660095910242399050489401003328714448343581818305207042749546869613343512554337281076090427268005996181319001186197533094889695636672186296771269385148708968288664612827405246368063769919570544492443470797182612681375778837979411891033302212845874453220347901984318024382969523144788427475067150526471390538608708488116566544752063399535564628344863929311411122578525234237458718395669471238662607614841301794487732350931464119848877229766682924440607114504500554575480846596320087148116400276082375699637912184981620578489718826120837598965581782783039317334229760567938953231239847879334046055659765158851064774740931106155759012669574733595643692314153144548632746001357514964566589046572471921958599602836841610519345772027008378013044191833151837985328747293394655044249001669998134173864387279584152744663550339732059941929967823795112631765468490015602497503940346859959636332855377933772085440256907691979566064851514243372655121345797670705928537191112268856982104799864684189832922914424253323993479760711322919843616575872191857653299586040502623998868083712342928049104302529105544565910364877071430031957115761508696999134317759976966714314889087141982173349269985521759796207410362909923213353095335220206041306345054939594390322478965384575529004284875717009599451687124729666438656463751090661173172556239391003665219131102404331802920462985457962974393571629765479684737044164323720414252368049019579199491197898515891202023220686165424662416356859319261546824706762329042133198039986102065756611046461081124863573590052094287507816033234039544229270267742844105541234246153350288221589720035879451150840902746646789494679560231065551232089109164644123773910225568213321663570488174646418882994887798717848327364877123885832221374615071619580774881367982592814918499138111769258612781984194507741430935813456499464408060292642525617117981415959732797484609137755587324839315707926114864853238058215888651689050882627436417649308751890070317870795865320636261080580155194077401911868687589960164869189927750177182868399922195068998047920515026602403046911160366088261910318799927887775463514295557900559033928136822912993507729043769010528248850985109580613855367104246106201397820261888861806445143306140674894277377167473597205471978425388541080358384048349396123959388609540795425058530629797343747938280189980927501742283376557896720960804759474551167706779915139086974066980795823871532593578004200791739409823532345721286799927684560514881494993063915523943208416482132080762764140392391522384343890207128447353831151873196484101890267630157186874182920297776243064370814591816082020686856979195350249682806613735916958286986655173205267506491326479702554276821102581855962167699569858077906910226479816625393793978098774002179413707254541582572284040301545990963254666974657250136759124317571489219907728610114275324082142645273828795278542533213205838172083268657400872734479394263184077920805859604500945047211331943057490498904363788585698156426229063384851735088459111254063072702401801633761240457884987831477941555927542505806623999022273745263405845200273752610087172419699073571870250054960227404831166394335152676945862204400753826687440412242893592173443998124892504021081772306764736994277855243838008731792011516001190124189530709097954202654416362178421279628682289406740081983573071929091202587374112314840543917311240484268101483668181670296755331611459311046591936342011177293261397290081836432112881954485074060112284235001341297607826495802058690747462831510261258901149839543985038603416320261790149144425962657683664033913298508821926552138689475878555492992979866376907277614334432648200216890215704994021832966795249358395382139968979324598705199406929632708920516380638853854281228876417788403944449874634439718434801600129900985189162014255216227716813832973937076857944713192340516391558502305581236596247086112642983261709319018900571639610751557270327764079512346476476956453807472197354674895222326159360815589410801102251002015837299657363020188300181034205319600328761221133557296791425128687497158760072729763856462599816831695389143421822880616758007775397796868097680837335172897845233539644924394170815652910932056700514140559215764537991350095512428251728224804642325739955491408639114562299342337672837683744977592425110893260185382329081285888953710434066336457603059694073229489155457610798762709525099628853470067598403338187194531877704179347214699244904091316972966707593521461099814786992469162859349903064299342665756553882505083189376701139277297546754888288478896845685699613701935276883642014436832229688691350180861272992795728146511558694505119360421085836605309751581906138680490486517570017501815551470743524650022337935127074829903985345635946688037672787104368785248097740167758913675019177486965229743326414736258187654906302001838351129226074274374903232567899436148758557681685426217554760480115840481183867725163527566600261970456416922769793029623724907516809528745913874605885642147417508770434525039702796768497217357849833551414647334069055343745261313788089263755143047504470019645534623129719988979774936126100910075957168757826442403548625097140408033059383823351452736793038139362638745167295984003262411129074260847025606945199521861547877494287391295094540609679663049100206575418623950992605449989256076925718843330237923286123406662621720402224348200646175362322323295714352343090393649723503602250602344005288840656474307472039093438966384827488323606706583432221332569597476014950412558659567312437262417954289384706293563930006410162601960141131421185905595305273472006135706381728452543582150622081309612813956199540015816657144571917558987082999661192585256405937000180017349205098783910014289063750948046297587282203575009274560638745337906730490288099698993077472969992593787722980666613997730707140491027052928091373572657309603620902041812034444498277413619992673940519355900284842058503209337243463200527786462634711396765543433872145901292084942938679239237236370931370095969759335947979604719405830686275202977596233629558559901654511310498733286513323623034699700140110867844352100428712013227761412307428422310574814151455315390900786392865785236387801696755303279136964895454595926965665996092588420172272710377662088651343333393230228737298579505833402116315315854390551585685321110616810401279329679871058259161609156713846660238727692356678578769657454601522783882287521302394339304806189882795837644968008319852946869201421237881618519532206709046715205806281136040050460889539963940146312714882132153515948616268689878531097457766389867617365367197270842257762684511466003645707411131741091783445765389521162418835460768865009963410500034723734742820640648299814259685197657340951064029641047604606391896685317914421619395944576431674341329285358088593295505103587071424526411221634226631957274236293031531581711395166309362484904663070009261898340787993067732848314407272061104775523408550523419770547747588017581015568009968816005544959004378752902156443032151787179266659952872813432686727769095006617206836911658527815256937103331459818021662941342264989573514074792710252448407803921915166296601040526699336263635980953581306593718994632508077078228731096611166200999316443183505689360316001421085927429233360337785229521567158129371720818857285505662061132187482933450626447983546130488341171478622781679695219398241515900630166700777663679210877826972520401746178093542027625100041146531033415929750689457113069315900272152914292966349530071804534535223701922737080570496186566452295349743039223473072120247044088417842571758468858859459215939263694700398642329744813638225022841810558241401427509621807364394729230589121821737514182098237608712223776739524742659344660896447603230993925592835412239154065224559080781210684615425655860438664173096683808031891770883105685841265439759282397415333322776853645794744643226014484701150010066131465540845186077876502853563751589805019258451340483924481880069965280294826466483590593553039633842704565425154079129188831804341323008891162271439730054650452726470956873869228692941143134996822142274129288566318876404591828380947461175014866801238583522962098721572695506944697300650113592831830757365211559795127293731430335053881935936199156165640358773387805901898077781023756444392470880076496550997776370980043994147208920939824452312756599896070824994251753568447215872609856033268362183780901984152695270243014203342398533336837602538031641000822732875434898851500045933237156985110464860153771302474917451248660549813129241292390856692753300433549160083094785820027431291590153722522301640213765016359394430741176921519630611158663560443715876953000766159130381939926471496138133852127938018077913757627112437909412488693422795222971328690608504787425972874151588260190278448898331278772827643598032210058395952871717845608386842180234097442601030754721361816691357711653539786795213919918239417614689103200917138417540585857094833185126856236259916128760519101250359400450887343761686025285963924069783310068081634163780093555338172217272073869263234132006759821851556322757172925082385761545719471163641553167819847214338557000361091783776902770681948844587170802137199782588569411202504756959561337511058035822179203203382521803790496225928013883460842507284161735713694353303143899743886435609576741606064387012271658879504258216983310860818519476451021824445087500666832124152480942942430816621555800732033558519073888823028683995750884100041379886387243815386030940411730343116089693128577831465541678385429638551285898083200666070749934380670916436121338568986209790965806689723957242335888919550040080322130368795825095159688771348152851555381467641968002089926876288491972554427437036636892017381928372721028818196225608175024118758413639210889641381776884714389042961073493582066652992491558446057280011923678150480105348411432149842118725541425352127909075028280509029057729558487051054951720764028997063125235162851491596151477892548678395127536720096543035430529355699923091247284538342396885138671995607833123938734419815951578900903777050346425477518409979440491243996142350013815386240853260689654474671259705500727038840236301042932972376441169667847011661659503265439671835634520465427096065030749800401685482512678312819929186693502078905844831240032727852978012976832821400891614852765872581169758088135854936177699349290533135163189248233537416798994918813257825751646949943870208260495020428847575160198266911896911824117491928630195217459688026790987621873145056459399470446801789561248880826271482809657585618132219390128530092052917393085324285114416936845824580866850518990543942057706553265538651894406297689800862371494458617994250876623384845288513450394281060952338404935191138166111911390728939885242542687538014095451572329230078950220594225444143527362133673487191169509984454250646965644286194639173196043137283596076399371867806238075660116203886839254231329122011185899309071466452923946899034534323520457810912329105602294596076510387505651181435853261156072890581896083291259065265212222496876666497340339947546375306471226590185638593262481513004280463899276198979498159515592822395507239201192308660130360761893505657133916750732843447073021531627368526544427647396801143818921883958511255408409691739480091044938797497209714372684885533987609292055290010284713943057763364798193118906431676357447710994746167775308970220522771191838684016462645352450603055542528300019032315410205290509799668726135102887909080917777296200380090016583037509075043369760245819455657387459352890433559627468061917505525655430281844657462304200560712893952301331517085477128374498311166656616813130720908826165804642211896520023968934479448188291675255869259652189737385904864074030150566019985760073851094437129912513220506833832274726280278704554216430716738664786452928180012248318346956646237207792660638921951616743315503815439658025045901354690402978719558455468822682280928342462501020801265487341912833357418204317132974379093616983313701417064465174839810076598139863291800910335452334672840731222073515962024903588503637191020668102610501892833087664563289704498641137249490116102838883468797466445811128287623717859781170444673165743608930470014720112669789892290660834239013296798079784036434475628232272216577839926636948589689754530580100546057161264795247412108369354266596493666059009844027708550392714843614267507094672776830049323064137204263129946734655959973239520375555034798047014977122989869003993350319646313693927504581417819185600158354961983980338491474622054420396796702396150167275526857513206929568769465893883331173706693875165077260394640093440656922761365307430220902591811730582212788488164808128139206964959250913727055008988848901030840491413970317751728999463422838030424544499080704748408167761362891318107839640423928950497270010385933979741409744197126171276632507056403075635245366827903608830821441169109277742250870686617523404471948956327084801815615452338162852030737824772810799264350212031201042469283040917384397126500120743900686951994890294799308251479486638087606593722064931334386203068925277000405066750716986807565326423327922748402997685742901403073533896236446492171707694106120179252316916868045038451219784901305658076632858205422450376658233833355273239816511231445356944157579632752727127999940701662775504522444752269121755897897235021870681786153702219772629307066184092325978787397097114520476943918077753119277379456698566828896329854019682026745667794834599984712198181432366558828137548956098121862703790746714250530160937349854635415828782711119995662912056827791500556788860369293240656897968760008865244899817194873044697477959301147552466307968617208163857910936636032666035426858980487267862145889464296977794966018827066092047005935270900783810086577105344382683514888282868578397175600740001503817024476811404388884885433969962140112263941715165157660601011513807368841096281415485646764189385834178735160042947053741205848943323455982421102421630523069519821093153838539444962474215627300989355338522993827089973121788435443798616012297968782733011381331606818140240171753319741375907105124057571263949444583493214040628333846117380539829691837100097961857925374044579094521583685502420257908394416390547084205904702597055189656862114699054856211165881238153372777397943281830453284986668346731328576028931629482861757866359762281349645604976233660506658893688217017555130002443492687312520165161714022310344811162031111100184511082163852139394549665294421275457116885460810603788057682521809715305175905456390957082046326730473065065167329256747148917969152681119363948387252318138813047580929364400245686892621755039720693027975537547144816247114745065428242194799992462605764464709221365162303397174479840427040395521334368517863171279028181599548487393609274782030382673678313237509270248763175312813382041043140915386786852528722130529473376288140515911247374579129418685872727232949290194050049060881917881885845327591990379691285820520702544579383460773837261203138387522840900017889241083997335300197401046335816511235320018689443411676494284681768519278097338831509590017598180925009166944424202888374530129822222242884631762337684010762309240884142643214752903688017595708747921964319156877590251062812385540071291971269814049428518585535077198335715667059554180581293232539586075120849005705260378623787193483240374828476832919043575088833647328560543327368469276887715995370172414708620084896640082416721974592132623199325578377695292065515030605643829400148049597161275041891561302238443834729147631706747737066194050567346064310801166138174512423880845515695968550625590864862546261374773028170697440791464285987159598947140313033489685865133053948614672690573341680383732285329550280404644532126490796897985879427763864970404826712096161714758174784779066512378728123923110386671606783743743297413154600063559771915008271421293756525525837143100970579572407137590041248064727271352087378622473143578401386899218632978819618884947851326677564972094926990443392666270342197391855818073032804717140965987295365260440415416249035909327571767994892589481189188374462158441776197993410261440702712804700173541125704690626104587823880706994840127172197725511506935992493352805740064405268380657942034339355208293061763706075927102950462674615992519003703949132080837917376022333231347441051480937409550819937504954609293024831046919473425383163549052961150465093037538154556786531849026367777391948303671436623350695388274077171536271856277214620644375369234335172123753304567388351514490956047503013469921295634088628231305657146872223875139714743552061044283006751518421561821818414071186122740255145670401466416651799628797896582462162086092383181173124436678455880969420312451656425043008875077056987628042390943844718224883867470868567973279987306470212947126591663202514790344299454803945064444229832495339657902293268566034780784484091049091371345951192117611737319130339666718121620443864692897633050633180888637097856915518692022772472594975242404796086956373742811355415558669830887958959225049707024665841306722279891174870693210732025758990041221938289311865097876642582490055043704900070435912150942542746961803105467972359439238747009396276458836170795846778391948351116647678033721946816931514003708484319195640403621616372527651584434656148292760257066554610727977845687369055307467895426394831389186400752239225577490646900873308692169639449807369201875693318422263102845366353453772698393848485743205006235271969919635288526053878523849744693439373317324620209232753444981979435812916362238734759148651483040429492161800490694724190973422782289787787888346313601528380727495394704368310438846122971479634312779279199518787343914304442787255218549813187712518821655429989615550100470793847393584676559948733947641093665853311439266925866457139809410426273739951818296481779188083057776943303853679119690890840709659855393659235506626683446376137446405012776689919643073243867440811714466629707682065005808866978783504256486670670138129732325097319045462594168326850222415182057820143053087179409310791303456748741719964832501569968742477992047877423223026705210984000641125367566671318296203920269875025150714664308509944998993560485579245679673803696935313416460642792857562874581424283333406539213143786897464034559379628765235216308593134901935167317626111073110111944018089560152459222124943543617514082727612240232151979146447501604927261480723130971565777056050164773648297701664495655760235844470237122993601728765942544550381138046148703741947129432770032273980189208372008714484018600404004279123285516381716231041859129033480060045935228422756491261494944616485093591318948775559763265826937489550186838799964109758876057433715132799857078838431461819914916602802125525202453615520417109335758651371744475858815530172862596921971625845787045949135963337724413586362475398204702871284603701689947815780628866205841595459429200826446288702512749361288768240661181186686408288426851649288514114466022086062625566624775755271554353602700136700342064543493308420141523955470002815924485033513949130920127342402814952086477032591687519737858869146306926562437208197509806872285854023625460793671319240109140801836451027638762648997448895786952853331662634005946081312681771732265233306850826254748537980823874398484116014706693026536398236601780978244966074645742908790403601192873938556033958477714784245592382768180835109605218223668156279637369456020745079104010854933932871813264193134755277124129744293768933228892737998429990220013532515715354720930416270765671261151381722979913237553389597040142301440843928648158428361983627796743353798088192959382134045294819403531683343089256267810972211673289136845470628466104824967061007887183544693084751352415746434989417464722858698958346381725241605266855071968488429141287650645479340714268546859881722942322366071031670750394738483602806943779771822102812660138571639718604726073510668272610937910115278196455210007485027468026273378830824980896634129405911594689627807461488091044294343613230962375123384434911602667240654656935421140005685915902140298530608927364179456271238889309408565925234742348957259040744563561099854696217215318590986401580144284949222939847436602524577269720335261842325127743697134907019268602820637175558570099246156953348500885365161132857256659896182439228001204864652627908325446534802256364859001206960182237308317233548003824275032138097372704610484759408349080307460827431935788404163543130666586367523011178208703577130975664753879682306221583296552661605427057451799106829204650280811326404994346308274167206208680493555044491397743696756875296310155273063344389868840868284250567049935614947673266148706031867861611897816177557692192233718449720061359690047622013844834688177169455171738492820357232079786901699516564115351095763080091332587369780132037557223403678041789122922982106804969183293556668061937833307480574066990854860666868349378087496722404116975912262563915106762469652567773341518121659176407932463152446390926312497272778765446867469290986604108695519041677318213080069559343284960534534920554946916565234685343804827719098713044678056066908205756350506874102810156204438786886975491774132502672899242688475208081059819019025144160689963560562921553484901889018717039382826352942600352108441417206272152773222154140956243370347715815935396288608370218139869930672111517295265203519837309299713642605254529737593023031447777147651236825817667668520852318971703179803941035458231581285130755285757733101040586233308368137500051971830488147466919474745852293967318009811212985901523224125674130097559381316524973200563070460500807693564825989540806728520164597330904456235142732690508801532448944219341511176765215351372236009717422145150493494510342831159038128638569354971423896441033211992449541633841592020637749453444490156596932040283137537129811433318996228862396247097738249332988179646497519184823827046236841180857461115711617902274123699282073587355587462073897728436318215597770114297113017664432407593366560667646100570025382780606227333397943591193870615903569951598783408017432838018283602250548823658216716079846457386056185850350142352980027245140608073964521456538594269347701824327636259588624589725847599664847285436017558825360414153602379360073398732242396974765440230902426349933977037442523042042903392250439234133220852136768418613661629965208310111142736397828917876458681214496384431648160768672317706213557700558486047234755172099344074469990596562379570577786669240848745564326983204394380337673558311940264852524568190231259044774522911747534047183050321008085230004648287069862683644016047503020783972298605715319404559269697467719380933040820774335490816919211022002919181104727998678188496682119025206246011152612326762289684050986070044849706834896925242289461355640349582972636135038399818991904646740748286528387415385911765912257358763454179102954935610315447240059960834490347156481884226796744928114111545652303086049919384595925343124429009162487356791731921108615968528665302005712981583810243504788474304589415538535276682837928528264630280959990320720555004016833466009682009168764846572860511179256428781962126457856107122844151679982600420144340846704008763069076716426139348718611818473278077887042832374118700072464153108869644310978205739086359483339783372574453792942381747060175911074289975316345348476127570242301169112708085639515316836992226177590420564193253261037855455662622619510239184378259969845752777585263760931338161020251976161045034059198834201824923558487289939278676243555753922457250136314927517170329464916689315440276076960970968581414834233374245798285072755057254614343975508085783928458109613340310983023068741864914063473077554152143398851568192689760420664220427619815207467671115981578387783025615650209547994780374004183926986460618484129522547532666553576642803624854973315486307272224381537419707558983787432176280409627270490317013276708786770181058972627214751221933901170894812829564608494204781716594504313354738309513568396336410403847825612375448793536404583075706295602423050451847118764113780752078095987712158260961833375449236749614327772934525012671838021427832950554709352094649463386045386227134990381071526502911564164248313602212060100182048443475803978384642950556564151243183584925384860486519567603161266665788971419829376293795139037798775471740615497125545039971432503360623778483317758407108404092832359895225418131311519790592973784189575686801076498630028936628031799042292249013736726570510106883861312619636931666688080420341378609898048377979486998271957166746689999923443518668233644470592154412861399623293144947269796300917617682086389003008732199671175154122736335788595897238481025388733330599524463707875913506105335075997654200827429368288222798146165358623009798879457867628373657995329902550797205613564802424066307209677115756315870417059107706014319380779708836822516259011027389318229171343956017800873288544550843976742445388382691327431423781751708837422265962425827059209782664881368894215447187830121589999282322353554789875784282912924348655888128195925814623901473299021277957806235939495077146214149166499812898726135165563622360234363855610202043756976986520134755576979344641651758484461952861476309482998995748155270171136435642961526008024174112377372570428427253290176757364780010214258854310410707564259777787766059840475775905139869864402077555244804939957948882367224106706767274483072156303877349898045585026324204250466849544109845763892272836355384261100880831335522234556064665171103705505595225576204087668532508008928935362391997456985373687981146911461582653478581871837831301426628280463080981222889465560092515780194229355939792409599208729622851389526845309969000127252648788673715153655621665345554308401802358657659872698347435439005691565834541629659473137591301670723635074686557718109758160042024531215036114452391824122538520071483456032957734538935091511381419231262174231597899384484197648330121284456825110736104567443914281480962742462686979290226921941789949968195200079483232461696363159539175182651108136203605978307776194154787990323593135209660729239944758582694573600286498647963861227076161241341764015663377814776842930464516675827784856061210781283462929066116913408383981310860049898728556800396239880784578447667187695623650406938250340933311725494549794999785019516067264102678542433139946880086671631865612073733761465859557197272946353359462082471020228396000161963103570639409775109457570941293804987290346633810845976075443096206844190446690792395945244566465644721657912226943251816557416557779360294716591149493383270149514745870689798635333032768008537482104008466623707734976110913785792780769137751564042466177864382575929697648976659064836018212327160324946730798668257947500278939812098101066435225336355182068701361387821728164704577445511376881543008801224182823525985069049810396588635376058357549024100051374979237395564249033231262800916666360843466350795201308956569299610634207795484434877256989161478705569987970177154621419907173074984579268975222911036552394424152694896804836052252672498556773767561151347252814542634577410986249881672313656927175339618700924442044109172064089514912316582561559707039667752601795861273641464292347952379129798957870454931272445797673546712880219124740526067340419043394684496518020683747623967052488868651935568170818727251909648847118770346522441129488752103612412753523695991127787871407615620131133403149730565609116939226021355175797866410075333537490021261482880619516787792343272478940324012137784795975243343319857313568293050267908538447584804408806330732528691201896578715675379230371186728311261894619658244002525545413965268292715916494543499630404482774688566729808393293862652521890648725171950226306429977021152248478818183309042979932790101804909691813252998121167064984103575020642161632951937000804020178285792600101824990107778669019804436011872795738366600708204237244849310472170560634345391729331929167018269221006118337490807324941160197594799518421909877063094891800345001575919473729544764613684765580567231915143935588301933933125984585336098392652415340275827884425404085902385021090515037585305676640734813796407584849220757255815407263658333978393125156055653794637451846084747609788539137610076260494684139736530114137537829267717444490218381976595629745169088719276810178443716207872272093546285726529918806633053224654485873274903602135746447931407818590463407272128344961210955727635414698719097161789002777490459499352531249656229212924398321827363985099345210965947544790579146446218563572809014523653902194198225849794781634155258866815937230303150504499754154920576647984070710124134202342983365742083801697020658614858988664197253468237006142405861798653834003046632658351563123954719641698637577770231888019318704876153900615824364358639120844700157587718537006028578538819561703821964841818464409356267058206417540126004303275394339795223307900614689056415911559626088443009349789586471939766552377578056256646854672950288692293734182653713150575416110855988554113949550558205529015664109949146394575859324451809506225823280450134517697802219113442406762757124822347797767952304579573087840860941084607486740392677210912974197883569543026198995995899628973416795229583127476141260906571209593840010109137581070056146316372769378715935503402845664247035984451906439538605273341537140799774303124057418813436252296405124087146100060829594392813616246956855856512455210183895617636662178930366508718870145389767723720237751535582136896881473062005470432694351759924637044489716081209410288996977779384967781403702519214450298953194594183956051117301140252163217233205068784503518628762111453518372026617994394108200405826841118182699746139202181399529852059054696411680378620693172009659276078207203726796848081184567430268102774329853314250588179258287394778724229069515502771023541105942757899526819729035793733488167400403117776185881584128653337504180740529216214016992591964757768862920725943903182350387214840770391005428979954498203014083270432919868340439679482662082010408437702593388433940644236771397293896498499134939661617215757611099321450919931694991836479286119900102202008824411761657388263472787432494773331267382730469120623599015317322484692866540369357229595762220076922755049528280521646769435869522977932470418112797723457671675365529285406576529245329469750361265567233350833980525090032618545586787523566649839992811268197159357865378932807471967434899606673092061193415842838272628606221467674912082089505091948180749500269314861358981189428378407925524119418502352701393883521163078578682553674329571921226335505803801781937779763762082213467124165930908199410845269192318031872552565380827910217512601176400141164754988171258776662949766768460432570826558992731556672025315172151917966277861417552091252671127065578195006992884970889916786354135279733635307081371253972845925932621548361506494351170142120870040999779964922821699943618178817311182889433466069127989757021104995738895803021186912949977064319111577009519389320403286656147705720702294421498883361447520182498601220725275601487699245327986232076866539095027871268819257572887123286616637283851850059793306616582400178525720480909134683797805983275597180843177269327067139266699317596894103655266180288832102273705275462695540025231722175874514156123826578417635539381190648040287042045965916641090989801895134030683858617977142370476185645930084553327333548088344574072591403767119817705694185395491988355591894932138451881495497730384409368433713666651395417793718125290652245216105220975289518398656166353795557375892455162512623199460933923666267288381047340061701241608778633717832649087594287475029038902210370007968574462144131287832565227464673162892919786153331851956487356831987818364241112296524199502104112554023971285845687585181645868621795470422697426394168021049452975880159256583587872966471086103345665896675360648863127186481833487166258343276824719033268842380632705941187847822448710898932880711802869093253361629832056216419639659240507246193706525622969821357561690506340264395324849633585222180020546992421756560569690303562159317774743688490815159884899123742970969587605685416345508955525759898852217309291954732580460613711142422233707944720636255225627447414446363180481086963499884853870709138788572055108124709437959001514538068760428374459531775689001353133944587032668439506200959854612687029606246256380069794128821985728171922146216970304782306635829803887868458769199911324844798215902035954039945900387840286847733031516733950664702657360416285756810058540561848116547825922800680928185054690035782969149111057195871654688835276179355376057842075108162843930732012399587622214104938114266529189121450375904538996873346169842308193574778768343009693098503629023574174309251735437824666240741071654395926486659680867282990127922123123427466697724590445368299548942588652434543392609613862256965798188089136518078173645070471466138440730960748800475626222349703408424691555149268343856005271359174814358023135601048620684668249850830327811892180963102358063807162800102252497603530326263295402498287404387400719726797509297368547166407237387648236234858279313796367630802268063395577650002577912567261030075905752218861370931997166627088622369706373792581979116768329749567443570043105221548676070663737110549948476394507370459368786517771254457883238662238227741603977298543097842640737520973661060370910592762426780835483167840784236377343003049465595941487444402401025665837442522031609486927979804411962180895517475978149089122278368540896273079346397686381322240825858894550011728384627605412689185845591147647038024855858736693085750466062859599351659324756006690044026385556526360504650141819789045696742820549023570847541450992180419683375718905462422291652168891197000368241094190557052270666444116658496401062142100840588787231989621523224329881650837528581548136826476594649579543361535963362346205472786626630229654908086617661212910184073237491415691463806994708323742033941123482390379845098696137111468664257958335175730468022495292098738932405575011873698721885835944960960109351959095694804871794174904841072459368478526374499269860239715704343140985650827917506806351663470001440387415917493045651879950171290064954277014415733531916030989891409772195469071751089933899424863368322713524758962872712383093616539937938431101973323461122466836871680420035651556593732750261307374698540954043349265202336736631118669072055697081411918995569022184512931601829922461328331676196158484291444572543024808952454971653889871283814071944569512894381723427137238621582929226426935209381261051086240572792644654920227673978561190532108799511625638312651823839005175858982978897807163372485133159136505016702514465399019233688155504627510956969848018676511204850424399724520234588668881408788385050484054867496654762210740169892321715749968485544364853862435100282672307629660163288015362279778179404464083526072314559977127734633203408987207868705949316143702735352683568494296177945705810360117634715941465799473197516216063020137110821294027456469994060995262756503931005005711897008315938536246578461760205622192509729873208721760877952668709538750795542351692460392121864533280098761582858266679654351928383028946682869302615249224201372001107633849376375813670828318959707960029132681671810674762367852595357800063562574742039564584833847273530001876634489731254482952532599875790786141956586887467895198739684896432339509563407405448134941883321330449090187297921215650854753508367012747898388829597790342202157726153731680933180097090613128058093617900937323632144199875401147790612864830123454476282105364845845779300953389451605390046666609949067162081345460723577563637884381675310616557867048032255713281885435066366160499914308717586483412845244680784163284506868676502215085278200565709248995492964895206176255845481659053574327627531042721750457728082205750441884095984624134998142654475145751849130486266393855192951965873953225377405665853867469901511085024963639203979434496027624180484771985805298787003109929729927598621417670890938485610653950838539377690857688933817498578214107211406824441220334055083639923946705565238696139973010226723127935421775488524493954281308316020269103487793251901551520115103810795369879934031687604358803129102347192791072872633855741841022388263409870467663261038647620158696758525527446389078634155507196484327384985604613914664722048640834110387033920169057160662737502379341935950894014103179667776852774139525106575027424335675149227018080971482179118951883919164365946718634302720353450672778437472284178217958545565466160297712221599057451728713118174831307381990920511342573153500504171659799733308065389205267839366537391110928834082353223073919428898209770225695270035365152241506525100227865135778873168131127028645230990395918010751782304259276233010120148150922422744158372528792311513885436187119662939507959335792714151581161576398405313540245504725983174855142772747522900665821401807875057199090452591909541040581998322381996752542893284542573354085225452316992519886418524189491776237321902905668092080600013467316692246674703319559728900842739463037511214003596895810567393374172047474254024038408610636377449530049063486739974435691096656344370656822075081267138976576166322724339413202487299463104847150646198495018151505706696342412976503788264835202941358768288444616883305842834597105001395698550766300845302520293804507805870673493615594169181255529013273826763068402894101061658038419485862139653021963761909553844958390813644582836666371745802060025989410497312975264139940801516393875394441602658310764197806697806842711018904552697070258915073251065478120308037045845830918016337251899645626935864108011333963417767271644802337653511368260182092383775712545685388471544230365865127442708854508888906632176341861983475200832275903689940259109148984099666081147731760639772900482681201475703333269032321826986575980159355214943240972494207159886767866721250185418968810759072579177636574291830278355225861763247080891953228885820083937945814670637745864431865519361488015790300463058536152819051088479841946447952057779691656304735934529010877110417516367461401395432210998652722985096894484419126127637738935134050269070808189990462905592611991028501296627363539079965618514004924260671766199670561829838631240041606975913785425660392147049585466179119202761852499737736463327241847745447299559159811988560963848593873049965489825519169906522060651436161689630869428139112378238476299178267849250852197594737447003688810491959675848360496732760084063154892807804037425552147662988900877815845164814721820218789882371014904018437040818388721223563333419276421428171242580776987668110702883864440717483694172846708318823598864777970827756355921376735254265991712228741429941670949885086770623338295032877783321987937115382178587722875392549252927442297836770039294530239929271095535231885816779266272814410373265892115093273301813649521284327404530224324598106129289749261402131199077217337823993751136443408851227688205148624692931854587904449250922144165826134268733602710655153650170775223967254775952571799329982229358911864191213117127016801238923364358888585041680777140934884043938336631928075925589172631946725752340993259085667006721059527893049251162291154669846746578960557090036619329782884180747590436102091064986777299718844787983569896246578179123101460945119937572810974455904684030465040955702489196766362091327933960765445183449955501323774217209403460604057983210034525464565083191594944142542331087703570573539185786279311269832104516565444506922571199833939293339374779054832395817985433714158756783349450791750015543688696282742941052703310774898484130054030712015223552247832603520255679808296466689066252858446308203342378168178232096857848551670522664054905151820735967827382229233218823355733266301449275873505803386284420352167098553760926128711191738299100927708278938860088161530672012204601021004783111612537140728121072394811303959890504206228702414861549847944197431153838264526647804413851285487804126283150275094631095019107089828310180141333188465010876563940761358122058062503047058999055246319250867555597159205549921196697744982311628431282602798091614361745676673248495206061072266426373658463926625544166903543815069275073660430045043642134434852111926388662808258009143198834820175202912617562377333159082873950012484455446308279980289272266599826503276407827121650165226265543700658926701258880237090840150802382721263744667131981240592111236878597747305331578174180924645267721190441455040099531865513476377067656799269442197671331678388261904207201140325317636364321528222258567441141698187967256832607222774962089372852635182346198740934168821235759039706233366022220508729612381607409783310612249677664390449010917387640945418164402089105870612144629506636437687105822496731347920258861554532360450693345251349753726874532038672995802112224352446854499576281286212916424137597231996923093185331826871628577477977941099207490753253547765393581912684189822560382039655766325784365614419917662912453846849205550821716667066372808675531535432813596486057961953478956330985829264096895840774136455893977423513228895435481591357928385993348723374863180516719785291503898563385337508625383696508939038331162904686052064601482947609612236100105676681402953429224497287817573604063510475529953165553360245339803169281840041655816825834770371253007248152944499417402343127649457410324166145502533828388416213206308149317261343172144880361508295172319463287551917309034656574347565747431191921319821543725420349003374158265802191143210088305862360222846469536752346608045021099537237005723419069615885264317947664470208696675232981730814234416555228939039437479593262500478278286177412717761397383635267029507542390752865943378503745047280960440890932683343515843698910837813531279111980275011246263410716102699614342196255734411841960462290642050274365172144703948757596286710817296646494705127222832413057065573593026235517891181990699048699797770649505932651928522538747636332172355279433811946423215876842324558869895578559947469153509483470525929806312085793301980949549865031260100401405636188137152623900211032621823090943987981728272440751458023140241384571086071599059469970923474493840810302895002384091145428764040852766786142034452232688259691029394563511675937810295985979022224113785527678536849882554871355620291587531958011144450748906199204386706942906866888867829126473073756576961627144373791354200245770665032211615313138342154512049999996729422845490873683489640504601660911901806993569817765844301037964290262563950633714245854441668314470636118781373144870376755147319172375231911375153060706463265513218259534349256237685339743339842814582173663313084905455186679583107751432285950269989613968796699618090448447060381669519772978050903255435553961066865238297652810301101637245452235329795739435696496130193577109686318044401703173123706666506140855230912267312560479895386863530801012728462774464153812911839539079897780418199096350227720303922030438311794197461215807676385267015565326735146301228616287110372380235623806458457486246409044675591538507610546874439330508090335384687341967595905365933023051877835823157790092594126845110838471101106668839067343110018256960837005186255030221089668370511093940479053926020068489592187074427871324875953844879923156913121033697427070286619027191133341122487657744789299957478692698218772069270690353208376008709604803221611542988164170767651668560768562463185290122889130939320380970505658553884398209598698933204145364153192757638215186375288320002994790617170807572857911809553953213342596943801279843702327253593015809310144604601301893844502246376835688030498173305491441943095332615444483118547361488963584003223693402848109231812783046283762241359513723506375543433769366937585579956671048966169737876793699080246206439977980162092205009770570906799912622711962519442950672988598523226129470476340949369036372534570470645210637316167093786320493834448271085941049846404657814824229331176888832636959254450197286261706282816838279851393185974925294503839957579127696021207728662729657257937290041893214041192847527879913274838392567396169590368800052254603911238211761095476712338241479291553391661810491761014540662527132612832423240651693900540680637201142752853759751684233104929840626548699580261561408204124401108530472766888516240589075809307945225686166988307617816289976397985810629722773337075878353847262563647320924906367399624537960216200587405881812914695733441880414940346123516088800438038718028081264836337145787324738648629447695349174392775889100797095396333367504497364366637273360988532405205831218505056425785543678747347503164072316564893918815251153275741144030100484883050942501048748397608473032608211117268838516896775668188900817680172055477587750474731814115653797926334506621389493094504548740727648564690495123013885488325515578731596227675126662615330613942144035052488266582977079114996045737071176828561554966038089941257425791383651441914405228945680170062938887563901657227836564242962262929980128526203208165203710554010952903380443704398097228712013503615232031173526182705653467434603534664955911531425482838128522938978652660344505075747780869541149702685389792660367536359804240207259333471442405586453260285374874407109275206159704933386039597926182478518457080896959207312379124731948775939993386090038796657619575892290197027160046932357448854475948553795491109458816813843989002778846651857358164741288748035473490251958714878757724293284964596354501509498887944344878510063637763734563236066763902629598989216311880939891109505366223692269678213651558984496658157572639725802352420055632642949467235760155822535444545757497033926506768327067005160833917762865720190546477453061732083476718468480249641447235502792391113493146568228888167942168239152843428376596409239136408686194689765709966874698907648031306864816154420731023056436849533754904667062265088220262787732225835525282545880240236041872606382453937847909279137601611938669211543355091377682565127034080897573582923008323652947737875092855096239615657867328643764345128154371876498292573950934137391149783865663194837946263785299656127242157905926642185653753118637717566303413493936998084811635193556049420566142190938286277689899327386665126928325148045563965464128304486320651849224901573521679101871020869564971626224146143605455678436153092026823748038257107350469655988706633581945796913670806191117008378429817019161143997671807460729710587377103814576882690648337499068208076533592666915261943936410551491508907564268750606783416704119135106703197472847402059992875586748984447669333890987163621114439980290327621639354680967094016965800434273046756662863109459697560028068408647517534725037939944071351092557641360616889565266166100700932243462434126957859876735868614849361153480432893813536723060543680253751767036485548952300436040646264158465791213021352800009220368951908701175532339613542269218413931385757052482922346815543079840930282460779761890734184108906250038143062649274532320668225950139217862851925291003363221680765664253854118521204692336722106961779343251358773540158079036099311347130898936460806419574645273665696446869630844098852615428456063541727208536520899985736970235175814540134566766989119945565891272587702135511955402746700901348992129026238029349495142977141960580054179864542547133145512710847285208480154457654648898659065735074319011273045789653245664128625649345907227486510113034722788237586671958666807807449939871312718501160734293080627162877546469056889149872661825456284106260086368892753866470767291683273550599077303597976637907291883751631008973413158159274438632989178843842797481437201556513145247351345966797643680781441697554865014222503958247771987170377724165500589904549630586658324725554340556451237398854868934405287372023120316240366854751461889760321293511807815767437889397881732264693159153011945153256670901109991833779122142259647775466143336936555763476253614493766015336432927537266397110298529091676521334965481403929929087026327371696785062893897894950292872764799462527120576309812782100292673099251898964781051580398539755251642249118892732572365535774660028246933378693526726268379731739311003547280379680013049815044482406881898319059714510701717421059884793961864280822818388899307672949671116428346967400585919552047782091055974233198459782071794794243026361235121369607811519440896697250455431122656358192020147191797776274695833452486641934749045791735101827822549463463620328704158999598882529108983672052578138217396322829993270813869333670966171012382159987484491789131155705887374207809614118071768644009647736764610623759635030588939707595976983496282188581222776043874258962198382296173022647725918337579399275806297332504464329968428850817490288911088043969091891975490675339736975801265710291015885403541792593759961668536673689570098818934102770122847421799232525232012050504405754805414584606015942464452042579946163992843266480118123051454752292649885760501277640373461795912246024959785534037957055835382183357858713171589043419887941231752860610101836459787462098978860269175585648043728742063334957778258327353612858219579999080225362942272885476873676724002515630813026132911346555761220899851153216582688877775348165421130896796867243590654515622247839607195855626131516061724361557720444293640001534092393213991726243755782297669979512381760270187802172933308649806912498627193539243879744277919011166775318284063465586917579307422847555502002494594309554133530883209263477357131258078060259833588202656825914809726078739316144967490204539013439460550390793820427725221157043808031902797912318592359206542771542309068222903292006433810693563635502843189535230680356050136895133287859335608617705674853450357934938490946181980517103512393875246453007113960953123075774525241730141138816191595613694407605992700124710005932921913221795697813687922725133302722230865313125011887629195987420806690905634804792983430828807434837470476884027716776048070277712729995622476330952289818668616984041941081051628610743112368278127457993994635649739878108576996472355269070769119101166961105857589271588361057366768150602491299083069429451182638832385145833656509668156631479129182949774715872237490218032801848928556135999239126208085258505364191347976601842775510970045767156000438171083758170153769338059115139276128159777428895632069822212727418886288768509746331994990284665138421441739215400516628821477555832315063626198151551979046991836495470052812589236588509971466877072439988146993997920724529894169022670636986881282833647104516647425041868435600514381480472255152036983077991755249157981784427228127521972423904970743961295717593371815583445369188212171372321878319527449913064439069291787951761599701048291230335202285326062107662101661366519181297042941895283828268820046947960971634268108953369464521988189929774077297676899832025709405491738318833810432168398204854275938800781195468108874834146827947280728979464388149000204432906398494239360380418315377819284744828870871619932199383468030422754756395196779240955172059402108618407579156665838076025816160910947998768167377496579329344485399034475768651849824592122814782907672907241159510734781955932268385396063290837306941834137710439669585742997200976345508328719960830506222740886323825675635521428786480053170167052676299633102813748341597614995565316435334373504587309327331443348484588340545128870608615509597216709429850752527861746179755810705123501488723612012443959591021071840472248682183884216911491864024320998430820676070176772592100440496436783268661825161617179036009385995843033666953781593140474924573628837327077838602913802871222577544904523946399428577994170224666204349750008075462545580807756162583874815372852470953164714112276773553023783079753849250417242546972996039796307162626633406473474190624243561918204762215845952434769385517265801575307136731886814900104193786027046122515703020074355680682475465730437095465831093489890543291480331314499282554736778293410656135903762396194435693886943145228939457177209685652955470937628113306547798993541059186827612171334882068475966018218007603972237841979643768471240095622574970927910562812559402503363552301088686514521846693143281931341160435391410113846846688067006315557358415669330402220988315885956233955898899246900783520367131352320422799231779761121039071834745708969180109381650696927448844698963167276757219902075557923170798110078005847698093968455783694400688631401580749473626794963776434330583026991510144937275785360028299544708818232849821756661491654392099089604081630054063499945276613961635117811226383725011935758705096522423327579336088662236245627992403898744386623836418744170177271365275397732783182712978228393423342404593238253498705989275737143750175182029744556107230398656484011724019354663223847246167035961163154769292910376371507049514763339538489013149070570271162564368838401090674289475983917274218059243006230929949181193093709043012320816850702548212275718474322058450091785915892621449359100039476838832343950456892590698444337625922265529172616636803810155821517190916974645952582128604073823077502830873980603989991625488185612237312787444764558082300405634873891504348760112082899514806991775270407915828734610213334094296391147907424097574313874075054809869624774273306272891359838663071215970457056148077400565406197789326152068094857133495903907791236955931948057347529005547715074741350442466094462095365941894650392828606847973677007303164406090864661914358039071304915863804530726112344623178540252412845669101510287930543412887364641809426268490958913112472739808152356986337930628959829997873442447843998237368682246496533407810521945191468187949532227263891316941983539024984269539742385924618673273513746239579690640569327264841135276608895319421629392616562863260938251275112685996266143426128353454603489224342431621903883126114428387367469365680553633615544645527949680845796871963694242444025946990232757364904415233218326723889853268499288101371941407868470664296397750138944744896515487250073102033828421377732839661261598350697150860077765627206792510806981261479234088811330448463260320329151471251436507135532236572061684364034143448029922639300968445801941695751767877634821021535519277304238154067238829246369801258146290074222207101431487446882776238970228557161344208358403257289633602997297095125316924585051596758116325027447712097588406637014786851696973583144234075423465377159452107455864056016635359369160767498643133796460522441116200526943245164973912288048747948303619637305046009757588900515208530522417649382522003623883190131196401937863426575327571494869840854991269461992319633872940597674597780427730924473696507554188705212648776193152205993452689265646985186864708557853770995095333306964488233684200633291756393491592640193141766239790238405801169343503104869552127566337337627742266695298246012366062035372205063255716983713433604422648642315142399510714662089174635078059585840221490513216721689222199830878615073684598577153733768406281611376291996218825319850610136042508206278710982059902903516083888042850852781263951294613149275183539957315549605158854722349008198114713254036680376355677549847356414860064022202944374206561804897239784415703977859674430298970773135123508704382999384595851041829573424460890854422373376429723135053182854272967151966636703986730597216709188355597521925456848332957138772085159513634061285545378130132260902471376986292331853382068543165331599670228428182622495516793844651598362934614153566691461856413289542953473344150958973595030633754450347850768526602454308769150111951282383309733495312625883604877400746242301493351348889995881282577160619134717416430584275072756814260402389732361736248480781328869111523469725385606513408312004276716973905949238563505859331262464885713066887225163784180238727183827295235081954870235633964612364374830598693113702175113275027451803002137411784428600209591571433927993989775193878261658631293803948972547407693851046728619398881528125588358732719803856704772414622190699073547075699629193198833237583936200916015085450200570819483253836617314410697635447331593134952821130893330281169792793186707190592351557881443311633248244561842401726756905440317342242733009016386763431107195875022787984386912170784648956608349442589237902687384133291984263266421048340556192287312613080696520878854978255826001485273968964827495998690349090483650821966149896086668360758759127216404444562418845996554547074762051794779396822971842921973859476626098654680157007954516918076855513654594919275903724883051748780234454103217438088782337549810770220252787880563830495099950151389742899234852944394450702256920369460547283526813962167943333223487553081495846697915094771211987045782977297110410198683074602519787823212589203549240560539043075471046097940567811531428014425084253947571089582093197725409460768100613564032704663645893734910963623792378090785302369621394143427208612883727695526507625209616180001948052024909277891248868005838333916931290553844648825461812473518425131127628468268717892708027670119834482263225501956796899437924370108811823406958419233428692533836304405248602473792762211005613641857803123909620167065781081898376115338901105327955899731085430603653746978564607603516568525915452792800140078400351189353607979893534781609712099740415159457204545451838668481483563822363133751077641402927332775051369428478635095977471222281061479906659604365285941503161293539123515628789380981632123034194234698570313439210248027533024903406585808830222225801049642047324361746925372840637830768717060544494653774613131469863340138330004840892939392104796035284625787524385261967828411499122156769699802111087602570590634734512232094203795394734332958996648186790269686596223348942688411775613270682736438217362455854587562624010865187349078331566380022668422713856548540120917443329531233117801255576571640501578942145959129736391394550710439594310594210848656965297313005201936939811719618065378580587974311259326787006615085064996909791270163391546260217343695076708810649351015245831457345756812481855501745071433343668300893299389075245462924489305848070326744235072709622841977807261935819034973230896341953081761211038800879228872102157420705726498621227356411034796611071726786693782711385295771754452750348527816685366345053737145109377048132575480992280721536621944151252011289451626581725450315657167806195298391518501300757134075412383822697279134262798103877487427457099453152671814098998928529617782732380367556619352445701271540686821508085892683903922707843895345139204325667698211055685176256252848117967306796517162347187195404450541401200036370952492925284136433096576843935432083644659501262794753991135591317523220588422394671755673514040534112458215398766995818873488995808076310533445075394227525883487608402580839897323030735449504953962960694864278776208022369685244068241793868099406990388537765548343320807244529771538829749323403793135172058534554178392783942913372774440335866458556065580116185682049790458037705617897250401035548438448887799834929267310759065983816422299378559139714293642040686270161289563006782170370199279322111117715623310775838456168837087407338864932369121108075166902297771403174790998584264022468611199605533928943082545599887353685889338015003423237130745235081441765743833918277579703525470587343517765028527054634597899098875765480675192802213874435803815502633988687209231474185907131832665356096104903531995627051352463616738191899806820919725190006725570179082554252760045836225841174403242699051139734149756002191411957835681881833071403294151551699635772909448718259440545974716497127868916293182049187437777502281929028542118355669770927512249940151524891647382535670945766346743695506240903485439504721231815110840149666649980226024110630696588511223875928634098926624634329395552488530279909645502572256069721618078126368007101720341851191030219960768110950612582188994504280538252618389685551892327605527597021167030043230456546945694955261923066019178498073495541477172731436090747121271844196553756346452868133005336610546499460677334675890975787954085405693383896114820739637604204602257969663987062525239154756486457215739487046368761352309895592049020392648454182509063248370809309614039787255384517975893887715303524253901341563790195454966178269048096364106537756590256610964628719452542924168027172886561192974302636314916911541747744339464353920277114283368836125699607664717007283667761048224179035957961929748875157301682956363499272473328085114132255105082994830508297171328649398302464887969777178474855494963950258136871745281949595932433308915645206599030750025995181099394199364841697941905385630138230696512072619304039121007832343775876089905527414978612929797767592337959556371129351465893768605951021652107494188794877070662160762216261357760160465577869630351621762200082797843986139087038931645402380345892049928750121727275672239951911241086578204290621796057611042404038708457536846230141529699612231765237779427051077438499312705473376849578738816443110612029753061540043912703535780015386726959989256522697401796807928578268298921402621478150164589023171935381411832858493950421519441390190424050911629725714600033630588954307717149509595644228725230395478794894298707093579454109917701179451591539387596065125929582113604308660788198241605605669145369283380786391931890005511833950422029118913098732480012437603831635731558633969637019029169404035154178512537200731513170131961565919703081359770212241803847598831181315464157059695736270048663810094560281688322429870197177485921582016523011932530960841121060790749197016110834212291634341424553545658865554292445698356740931509252557076288910771581739429360915858796241375945349636494053064113936249490433742132620043791128789236013670438872024368820213640909814385742162684421147131360662686785638739971146848946154581617709071598546349193524953710585906670834092982025143967985525260452582193317439207973402601061099534100250369732244959721139269083221713114735189166902923551499124785870998035571227775911383247515858148020022556368658908478591090903699255643119823402118708333688628090436420932747792370035664549416453083150264700572454271047871923868736155744478950753359889729280837587260344675402494629528195656615500988551434846655068725652862562657916678823581693951006473872194060815931661789043441065077337935222457558398137814632267292396913503615693551454898866357088827171423393660278488022660203185326028797132783835804920857984367200839454661649591916098672954635745739310895623475230257093364926948142991184600976147097252239351398968355312737204045949676901587728950386514508921847209329573304110805254745601490626762344166588298123455268606630414591746721714435202848173420811523829649703605156718448706644992820575446884445023184271522476801878193039097549716246485985024399813065159757516689445513949375164795376869761127538523716800312851054295258640296441733103030449498197389294680242701155220355918991664011064258281473186334557175539382890893080954376137931667906395575462921607989921685617659271882291320322051644143572558215665943673057370237920001175823345679251235389908354184333500125607732041131901285201424561149158018364598371647425798149759537908574920467516248052841222410130678421957428185804190313479645162675832107076314104709857237816359647712993646026232899767626427917052892982752980905316802966227897433914405699885057360363972101032743306335082518882427128497872879479198895822757258954578753262545544963837630144170601765240196444594686185610988361494117396288938787304634765468957122915946842820463849983327538450914648285085835019949804185543918116456132891676061519817121131129325331676868608991737903801484702137932088306537970821225831165028909624161554161359758642075882902509335962243829939806520987785556433625800126521029778183969240622742655569133621514369995088132536168938666412698012672975234980613018503489957596849514264978829532245686820609685669250063802156803027106872109555433101219281884748194266592845535608284366343577761741608762842872941438820547869489774434481955160099219106278739505484758105799154299623353866507180465225668102970971584028181744480883635834237527147043489319930176531948552020906973259705763238557195771943568013639577141736494947277104753408472820395872885191353131174659605167326480436637760635303225474225414412123071759043708091862288018387947907613339241623154924451588885757436670414009980390015055221431707657687605904622653834444871702551588669554441165605137938426006581442240309826338553019600149882313992669583406490915502972844334318690845634419502088242331995942846664014364798546014859593159462903910889397874175436465149342374721271154417581884319700137872141979955717411348025853999499337415291762173466761527128791168728711339639660823158886400617133750927288335927745169095643802807880642221538808362412343042926082249498568584151445936444320675447615135333988776912640251697039846867508739457829250859596384089211253548756990933559627663964601202606530237564345152218289495634249487620232961617678821975817221322750872474836473906555584317624065475558695083996194203298284798525944613883754058548475249395863098686873532383349723135440330149636164857857536454183141365610687029763448174331497429998805290491050641476646584844912996192958615223519700010712557949743693929966533048229849150936170244795096400629062230882342391873308522915606170611088961224270049967208766683336933610945846394776166869365056734017627135461865516697648558942189351219683704139094598027481181978393833409491574610797154635228848805738994751578058929233650906138725155286256041815503695501003453370802393802983406727761977397279834772691133321950998122794676731542482441364236548051471651574985626459194773904925456006701534255925334648916763280125673541845300173352794391502110718722210692625836663175103501819657723197886683238091304297470511300032614853442158694085819539764913719827084569628666770666897135021024215581861364955718233836144439579207997612245354999908047190103964416057708583636922434292368743267059647838989751044373270418790553969085232031035207402759193124544170461836450918797820060086276073914186113282547924545222480285065409137397797505539843655899373214733685045052737046880008778229262673932248229513760274959833581485944051261232051043003296295022537298451239080938933772187727467113846460942481875493654887908792960119953354211450785583527539421012435258577657466292871714327633410429447773555114599012969693240786476223588824786725318980717651378766062004845131966364390375269944983285428117906048603483235752686958737488672747447050693682043996699507975768417601971711587943397144733802877774008131381259973402331437825824127282681954417302575040826965936572323178265817912921918905949067283847709227064075187423150682099000029950738045834762498755517981277453747876789742544261547559029938083315312053863826323072566094710859447869848655140163537558195169655544575740437403416829264698710485696327788271590209796539038596815893192827296422167095655144843720411578259684835789961387232714440047598147084124788847169966609882907914518816432689281855837927799481858326242415792289665056286689156924543058746105532726708981249256949582431966243482565653264620402623624136067119232784257722544916229035835451728281329604613735223620837518551211889820040535536108550303828945089393890882359490914110208709062984162776471553310358498357918224116371416604897839479056758581857537568131086072290769457333944010658689618189460340685548765171362321605802606407042116944019735852963783948009153291481920818062034583965942004760071417822271454071369056155275000138880602675849950018690514843601111501312769223475339652850461143945171326297409266202159010321426940261634372353127380238918176018499627180273121668957942405504895089578383937189038716279042276588387595097481605413577040970862426885607938977453449155605856802544435048424009246520799722233380186563042447625453351075638309397803148440468197145520618336682206671311376646748526625110573840940877390380311283941031906324724583953359412441251586752930560521653927872641873496850071225097744409519993831666339724698510915229281397399720506457307640030494503753025092291695196242208931651161580179697901378995834403328903864790999521579976348779109111192208697271197496883651693911275492408858704174904667398309732900114922795306847719704712650680953291386277725446190409065568355331850591352025140045806989347859798001103409764502098765021507628163309720146586885512146510010087417167007648282441611383707806696695566992691343869443068319082586617863412044611356628752836894319489307211251103781009578062966478832385947942337504181535766131506464414349726099470814541268353174901397563305422818353319413758356762912161027896801804284201172178784859827572952437424852648485036979203597876823518600985568220564140284945005506094623554954175288787120564868818386110711528279669753259742821894267415935115607362918222932931327456668892404156724520811551002475625362241902845214734403034946270262244283977492974260550696287053349058480117806537153935202536736964520915901064658323079183253301514560157775219991362768179686350096526234960280381993592549611195898688650323430237073352850237196299640724817870315149629906692284001377062139600391186095499791065694750016261745556217338923829186798710516485972130573621653332010934924369795590355013048911288876048703202095943276146060383058118483589292979575911467576249998305607496884681063508138513796657158925056109955836973538304605169881377999541805011322606601385035210651667738654209706355260636055807658271100280914424122904306375128632253296402467254393692438571352299785258559078325681393638478956540318591631686210722379507020657110650259894786987548195774259676695618380854918218958746647212916535624273908634772750786868740712993579760840148654748779829884360235559248485085293275639467916891645419227897805890203965944753986605670898666694259912711772859989294376306275071708162900879437548564636432555465574283443452613528244343938538688065016534008764717162037123926454902548101681226984451972556279530991992104981684407430869277334103847644650670628295697986114197629262355599878445536359575976111407443029273560658219565843202508090444305222213544300119509613913296366723335293712341974074707514606546558060762299346107084349693243686345274275308856468968059075726939856522050377664259857357052580958473226028847796888497781173964822483800397060970669498873638588827068667733793458804655912204483484015317377727717852257019790256277805967675716894782180560284724794035210746673979878720979891921238142270610359034832107792127892834841170376159945820100517878611966296106073782712910304926159307554143974744743978531774538233862970576502373970941899657281455221907614914404576937239982349643947774548695578158040123966913222776903131655166554779487707538206954749590135519888516032788476903242207929612396454133973481941484723398562323564365722623201847642035479078584933167096369366663554923046909333299054813774249218919928477426195349385136747742893065000089810038413271872486827742361254532865773565585259415227722005796593141408544967404927352441735616926970437783610852481550408738210117562185486506437969992428826509618774779008709323941654142300704513178070960348685570907552560623073600163840200011163569778281708541839291388053081461859955465267243971735220295245843508287339036993768562209976034884355450600716212318628810901447231917987168137639517472391360612037368732903123411845141344802585029375939847237099537347954628889771773970605609629918781167521890497971190041615827848161516243565842913584364252780522397386573744607788005924273238908169865670989245578680415321384960051713609803360959500266034971377452860749316067153054367142023140956362323490667037355538395238892758521366101584547261661763033189979553302514473571939346809662602340577819599164802234442466135356593293964750728207328245731273559129244586251500317089346744612460638522107209824663271936225675258126081317292303745760061366911922227461619022876712404281071158033656756262671355870681274124213815967112541686488500328354818667261020391280678268417355456335780702133820261941708059069593497305165397002815622580843100035681070845412682931718893090221059431766215568956988236035465450345825799719379306766812774612877793674667959893937347597355340591732883714364687204880073329637030505666142766764763399340256547861133009630913386981984713733715964793922334720057034249531480784553621672033962529279156753871613776887573330744265223693548712158174062376331048736528281271564178941213921498699489196999307508512296746116621655191415472677249017265487559545146566123722593374460435890137749242695287385851032278547610389142602942873560045594765466887525004798703294777437523205401887636096441338488662474835066583896934706470737676350344669144167535596559155080265444951931835040986560386723227972504177405647285579940274528526747434979124815185576797145886353637958726796139154606987717488263391789396322195252608823736158352790345158179319919444200386466236195041703621152840965315447529636415914189582694415125698947790605905797590509761227151118964546881102734275955093193527123861962571417000857790646263567990318233667023461748717146743617586054043385431867978049512544791138947466081065521892923283134137081434231034061470531538902087001463870311174824078089438263367155727108672320349367782459657995305986860224187336583629184843858619398118827376479975084427353291828672631528602515157612559235765790577062200381080662107902404685855817518669485720505108815602049787175683751018230687165360113411470857622136337296923934358724144271732503753917681269559248298950442725494835123051334982557176746161367436893205892984721062397880865688356100461663015293319517925452009179413925702711251287543366229524963638130220482555938400162690704275954479075467456876040041699355946027859038269672244589588730002940099205613126443917799105490058546188156492970471359146015786489522589736171589318320201911188242028649445605187402816970522019017748895072124132469048109461348650359038411124780915041957634234226284154266053324408232067284121078906044773552569781994025302764319003673628599056621553158882219869501732480202654877964681702305589545016962495308967275422493428935106983976066226139849056029795288066546617592815558466949233558699854272809332964054587530352928150549065448450580766828388716840808781454108669089132730513936926584679640007926606587958140012061243745815597035304910819227885039252758315394393610427320948135134490478364168341447827682262282897935991936440966438160368589287628887423574887885874923031449931705653375795279446875663780455419634591998412470538870062620136132506437603552908049784859707462015541692928959164879841885497341838836239071979992786210108971832526793377322203584293346425087030356226700031334179637375461686801345679191801945757547169226192047574758319900927458842507176357421040442942289276735629976876953558470592897420177907566714867111300894436876473498452494850633580744965222997185269432335051899051472581780355430821665855412109970695715502642192674403672867037884654735799631024870527245049249825225991650224971987113407016914969947879378899092612102697107861402454500387501768522891182540898032844256524383693106143282899215679762178124252715297209409888109521466742118440884190043816979801477864671386894268173086139118484263645481499421948729112893439856228397099669611470152850333929576165667567919027768460136358510330030377270808114573388920037542220325069587496623157156285696196264253075199040980602495577208203539345269145211365584088728018303718983668107801302729591444013463359285501617631432804457072673441215471480596454968422819132146330396331902366280198623888652412164514111757223549590590159613953400452504897638227019444306080914875604031741875984405756659548249748233245818802198245614326066160173482074763579759112742630859579774927242413155817667260326531525695903345537663782733528524459894763967249293980203738672177411592135460696031908503677194134826989935848864357804422525765218643750464669940522094858482283658269134904768357165949865569292179766528701473467174236016595069997842954416097142871174208106537593127350057868981825003565473639218064698734388733704791967097951497646000087863660195696512943418403047976542281192831000168106251256257991869484929557490668970879475357149575642136626922920525843886460389105196709851307847241700917964829259972687205311894374222992970509189873019190320675364593525935427669736852940679838467013560454555657038951762463362513766304095031595193938557946423224766701635304418631711527394072218468593166419760920148973871094878974527127355325039189536085772362959617907046788014827333408773115044805424533718358534755559333509927731804228253361320925152464895845135705983021546521007099047012483283251752154729289589951943083936540612468256988418908236198229820418135646834930908914593774154307592789208508230211922401292591735627591661707253907543068750877990414708333537297938076814519739067477819235543637509818840415400457670092939081090171793665741401743423358665922292212964991619706224013427113030392937665604440778398917642140616842637774913867112477692982726690989909785050720259029407214345880706270432156668573508451814879982047335919180154720687414779333288368001786816075745789569295300885979905928873570072988311058176844040571435045401829587563179104054364876636779611662992789258162937616583074071797217278221213965764388466074575985947749592815057257277652601843427531890215764356394127336313461564857927362479378130968241974758876216581513103321745327187675558588587865390437271353500787468899084931386386415290882232455663667896940095290172816855575101135943332797144146408226132459753654035108409389517872887692726518852590517856704557659692620186835745063769080871067450825937464833422574872329447359420157317225023660329209970251746601596791808061997451081616489985492970291340874293182980633616532274835300760889820486497377445960836486001658079049958672593772108934590541189755592780072737877009187814157119732732625241334395010382795731580951609417261643818989124518511820451414743836348933634467160963964123047711751211019956041960862281129191461443790753608800664596397268961376029863018670606706794768773848293930681293952338236858235087126974897841008353447226858429980689220379727871968110301910564901195481987347624378887956722321280678611505215017232465197325693573939668244926255128594744040856226052951981559652037345859927115810514166465792827739494339337808504681467013103531881468706564249657795412453567181176554934876355723208896943439555765051481901720472259611466015029872560662187053723258570727784819921727907119158893439138725366021362323662492253879551989452056102903835978584628790077624712157333038732411321166130742094658838054958751340758690648806349218540584300153191733391064103532761703384181487910961296255709364384234435848464578908382974430323368003605210874751053806440401862940177777635584629462054443299943453559561674916526253653781153640410885527076197046351771675758366428474655037848653014558862865403996557972330386036501533935926118570093859267144827652634461371654632051154630267484449973177373424261559541157536925872415535353129217504061809247449199509172377836227759308843307827284109341296020622889870674029076389872885686575055677794371960210196020413675314474069996880989989539233170963105913133937980630708373413180218510710761159523792424302151816906902706037992608978215174010349639078041036745344516803913782540271318957803901204354972011041955639510811678613303175782244574208395320166723794296609573087875512818543125637193911789277837028386705747679004067468917836973716628061091651980897241475838792469561774838989504065912461343448997732733921349874937009746749730102431406074127632198396821343966494575202090623822409715304050463957315822430535482731429540780468507259032580078111396968882532185082409048049693231349680469527150417683183180867777738579078879617510138764372387383441415420337643446233114824747946768785009659994044758993728288118618953260041513390917084702017393844237032065790583505555823296934855898390185276528051643548959236073905496728617596288656943068474659170155190566292090920783642230848521282193731749533025525564793496233313855436807675146802527421989666724017088448783431228967805304891387156263445712749646433642907528112487208613628652847703906894564991439099647659611148662853826550122503601999701259942096515713882160723127116673538321157394600048107487697642391801354038264015896673304088728979651152930016700579248639628897822176210949620375545687793237340345952450166954899440463730900019889593949690088987881551716960545310260838209062277606608189223649921295918380139687193907311448322886637593700337110455918258331072067537402862883518274968958196897219984602331524467606872380699777782408915222052600207583129817251089344249924013145687386286036595490984945538110723646859431327278481173287305426427545254770186517147910894279156240866701508958654327472466486703767141750660619378402548887974276943325438865459905864935320526315753779532119333797495016645667244869642304262357377200726763396756691661096961792285049849244458679342105568446086742977780508994991586011301043838613548072623798451492161390193193816883641853595911651603703041669097504418787915547656972263643186848342631673492400252326689964837339432932987092765947278875008125142631644970642673392152865394692246525091943299873996831732131364997737657604529551345872825286291136829177505041654170465118218623666223741771509876346095615387225551481684564681304461134620340559791081126790538370872703099518864264882551168964306020997423217686051020135153055393537219541734912625922990504598342514003835299496517921106475478297811594812790009442051158139332443486882679054305917994560198788074409318225197776974345381470619485104765208204124084129056911679614182019159465505760044214737879052391622532782132767107756286309236478345383487350825912988520944608998651953920788884018639302596893640489559019226787319752773516466662730331624234473315776000661256194848586255792769712330037868008419538777440912920428710267214822589211919207359641934037493787658092093873663584290041358481630452992821799740065834799618567886211457377705275131055522159112467261011162309061527504893063163655534583447458548852649223047736109233622304386029765701879761433518451914227020894206726357447969524843812653047366609580765726468062098330008829532929630295833996573820268388563246790852265528901662067103503242704489786791521175153066400322617275959101427244503667091272318595309593411433521940518529800981800100066179530914845249500175689912356146497775209006014399010031439398461998141479065299720806101878668634861725501155484238557072276711370827707250792714558170025321026227348901155622557914205919229693744937586346559122847077627904650065045031637915447809694873574855067494076514350959310262271589035371851487675588909293228941970254835989029697120937771348084660227849450920502167321691668673588492878990832807838666580699473146168635985507724547420391939680773256747756916628432916290534751573486496458685308750018524001095697629525283053630881903013522748900171613770950151196631072441119699791072644058936331647018445943646934427776211632017997980020954073214256198510581359893002713832171246727028572675830459994276774809807895390972890260307798591621345500581946205114229416561821340245782118468304321452176197458428989302165742142060788610006998462328248810902679454412885671707869455081390626989202176917851202733193924296983737926153442423119856990506493470728638936907289497186067669663625766653653975237343193145072441884854986094588004753109084763229701187146231326354761537099428172587338068806025224970702770039376332756753760602240698544782665632414391643284717559459485451200985564960350880196787736904157617140030989638337419599729792560141489276176154354103305119395981674321267603477684217809047687776546355856548433098057794402847207693651043316053645243165021537810069064008850114565270385643959558697439147970784903003160946217519712792963655068531611093972364310780076028936440329441834005152222458650283277205338319117542073475162109174341431652938094404486281334519401165657213941963889408433677149427327918885638157454529553266893832449381123715496161035359537956702589941820576652238488934243171679891149483033256829275770839119818018100159898761626691670688664692755040085841296650417312910070874736974604881323016472401708763412515853366245379070815279387083060182574567530339504063743354256606304811157379922934801256213679966693121055782201823512463622522187143003792937422808821579909195729796505488217052855054203945230418465023718672012610167877978738437225692212799358775929860507578918470276456522728044691259648756716264767116313090909667252689068860436892536380445576675483624275288947214824874339507087009165577830718563380003148115242886504177065168549429567591718487827931076159940818362501911296783117920947979377203764515049628157513650308804308032431391249998357372303288565261422007390419820962506780893422030354714490395892655989461698989015821755989025608412049457311149286764299634498720953348132339762132983309419090887898070585301851447617303320216948607021571041909506387468081898696304964018076673614762110867526520127352419470542109012215553744474198254165384270860007557501441246296331621495594340022064150306908105666143733127746413301741052738274639672988413008396477782298499762582169280590038035800687452507521271768053597522199548955075405413863126284978472563963318967423576885689387961173253646360795170576352133835099073692242471811357272229209618014629955307125600058337181980637440336508925487090594411643233080165050286601932647204998703392330162334069738566102045391161082361875298117934166376709204254435767313250707009295853303237203870910953667368596330490806542962782802291891481486637036571846447501166853547857224846327090047253117338869068269864138708916666887638856366145376146629995376148674602940190386236738057148856536031214491077733413728492459016812642513176228903915612377965541602529164369529020997293467849913209936395877324379513102643500856006344304502280989222390478255439895388382744830330539392256014377354603256898751851549219940765768032967254531038228761555377410718741993485424145091491436340098486715738827427279432546625821304163508982876822044737363140351724961450635120654576340975478988078867630542395985313645736996816312841860692711896563658488115200659254036618622624831752123358986565721817802868371452181573383751536943560280236556188466274810089078314704749580158795746190935515137982092893791012722650361744103528306857147282401973209583764093907325703369617584380791822169973450652784083256430980150520127958790671466622973813260266515327390546154532858575323934200499323410196786915910593275768524975448298858918940257228229594399494745645267524573553263219078019885245098571228147769809687360878947095480267659918831004706585817390523484868878262174625536003504216240626816202233490994596692951280882374706464205157384603512451413166570741947085695490962082795574461462871447083987340745648922388667200493593173513923888688265665299003694764831655065878737002444091893523530031271555109509272423538813708426438637954452947165502550206844986517947963293182051049270033752502870197520968168208561158435632315432996359912833114181464292373920314168818516129802612467016231716906855590274185510215217773907700056029207361454484039585147560542225301438809877552847338575309597110315767821105488192500737333395912937179437694508555010594161548767418921365216793842375945170650483375732261899927784164881988617197820650733964721168229622302628611586059707469537455386276382928258348599753093288626608989264260641623762664956758204697317391680269518094561411476249935799860059542215728760713644486764150802146645411794905209911322871700495326050251996594533100428567028655877284047377226452887808237558303893264910504363909538706925456466969949985865398833456324504612148453219369378826989366468649425092902230953563786934467912671501062082350374720168699505978187605740457334256212418677378601772322528294706343296140745860016367935131176828708379797920879424809068926478219531851596811501255410951263175458607147691598660350531746333684998480207418750112943619356334056020893799929200263843076988781005058100905814841545467123791976090836522491712625403285681045664510526473860928117900625517449558425700971554484985663067055122318434135859280429588342668531990350632729047314229614900339799935378832289645307825106172739830577157153392483271146604901334209597952798033507391116157412408666944149643286903031180760089925670235529140667107017256106646278233427707134434648776439817743958166252393319372441783126491612372747044494462444041718586165852496306048975817051927329345153830474162981631489037203848414792450672854379385361232401969321350936794460501708307552479708281224056815519158209745154333680985289937522419039076613713976996092161624023242988842579526947689722603649346891272839904892213234860160896710131227637745544180492462515546070023259594257578601412631160701519234983845227258213828615344124111241273061264663593534661837372751816266143140070149987846582643459883870047792065912916210291995840741178302560724514178568229207152307377342382428169612279079726463970278978857529059992583418145801957643847518102103088644151774125223842264680766185310699424002264928238680457161915340789160455707283560788229866238067654369161689146816478542256707927303931261510945675776263419278220931408686692041224320148545734764895535364055320498774999559679874940764069078401206149787963311233622903318341142938768386805313243963919591548160735149793910443844969845355575990693018214849956663625210878688238738888520285699353049995871053599397554794235059016826531178659557037733251776933420947413787532855188308977593993447747000444476340835121306264377241568231083081448146936840553622687817904874849054091143372477837826782370281796364219582857032344084108666743115388149827182850352147405582169696199215444710507214551131998172409777711165510608841985211522328298318926804136448624839312152998827739553562111212732090746328657692277423073908481630199197826165722092310434808851776485776989656346687685535613740111610344862957505971708755407931052593152592070297210255013801155445235400867303456440307753329006452021577719719530501993522810709704417165622352416598523588369584320654834422398904661675234133891764931386815963766033498310935312040638226184861870416255744991377487992624213960473293027092402352735039713179729567110825615816100850237306480247001390872842349159351547668906598258711130738713016848716694324864595442371323476524973223504335389491638907060801221692436862156099657631318111846666260106752225582493394178498959499369962606805947525728118327000991192955445768245253947682273188466552260332998682311533994903435100031401281167529390126406376579917747498360689223060154503279393265869075228534071106999388713775495800744499170750620491298347815077518949059038975087301323943206394431493294858181465847367079581487801398598694687093075519442678636565723013788271832456049236903631251669048427628004064527130651833054296968050623976348350045397701934437618524927614359612429203323774532146428189179489397207468907872143247224105237457537702892679395095159065897297765475326784649874506745143133462466215944866933968306079716235518067626675253270791212150960982034485709562151490576085959064689302545565090067740082792799998816529110249178720605269163806846000146431874719878567369567617254945093117536443364618543952314044826869033033549021555817552654151377354895785749960655178592710657778256120351448657317454754630138530666590922949353681929121020743924300580432889159875844814081895753889687584577395911534162279281419148686496308640317886885345087594567824654856659909425614593914210265315176138699699875154910674216609948528181994895109914396077181663080537068007016367574497384750423484649295157095225135539868848140991614875617258894471338477318046245933198201289782777908380885206155447755515345882735536616798180952591656731533617452198826411958545950459577284077405571142447780815747161802153694750213363540401733851472272325261694332021965678643098765951942515659978169886427867776569155188277864951690622096305494142593511955004367690886139581631959593952930377369662687215966678464215858193641765526931515626600565417094034389058411362219261040054099079783878658635610184273128774347110062127576444616933794544313006719268285418821638160026338116317617059035234352901214969160973368914897923182471279415853110573824651587486530501807463001347478400882981703177504854074939144097917572111968338946052771004893025821600154167412187355739832612323851088404325118118848809447402723031915987623569528049218634283487551115201569008962577417720084849554813221622135244476862208738176362274184176642711471252996395115642549272373805122054751857871931893782310501491120021586289044438281460019717408926313698515235505646469967717013030530030631869500090760822254647330432906917598881496399636870351166882816273740376668681693055903411747692459529954516166243364100410281831194263933545412984503031177123714230287081682194933346182552721099450765947802178245877688119490825059876527792199053989378383190148592534430534795005431972950519503794823622169517073173278012089573158500891519804021197703933653022697922435017732134090893523995592927986355848273252847635053360532160405012192832973244237159319192946805366589710238254097817915189523884871917736771090252228532141431232444368118359356423047418154187508757116859601028745726373631122660524868288781353036274411609514700498933249685520995090933156295421192331301968675845842471741748418172404390873284407910524919734876528840090062168446029056013754161092902266886227545825769835639071563185828115438720292732386393730919386824517637264720551647493895119889690823872338888290551800565835945998672920787761269589075037720413301386502448346608397676928897214873973674638302762446236924436285412898365436785937675796583199462269390834909405765291195951366653891298263407253998921832458949308152732172370616041351132650535467510306971971772171892685518579514136812889841617464791309558033035618715473720994602386423874161502699283885800695059163913351750946906104608849638989135739344704882826097232439834646174764972638302209021919529341309156066765575490450351474670384927094317230540821172379916818206879979296788610127113374910520599831785319919373052864041409073460601714901556174936922784537007888421516804892327921713982605826896198810789994432764545217749133964562072453553378640902762381208935642891083816425476838931968219505110478779706659218108983178770166956535776650446221739518870089446929127416423854768722771864188042022957655955543473211778410586684408126671496496681715586646372496834018430816541069498739024461824285932544296347444937432524118289381619450042240392047331231116606738683111196045677593833861305111781577676460269982406597554263465977762538842660032712912623243919807895638222255714560493058527477695505496782225983903784592573870501016659120975601138658060198852453517349133526455300802391248650675148596279793757301339202041047988677641279380287972515684094956012008388506645403838913429947643265508684135199684394824570222295567109600505548653964492895872059969947593449778464642242927465927694879887815205901890173103332442646697431658001652815041831602582913026392465717606701447561142773914979196141863705739995764380834792527146036944195455184540177776494457172782339121674019157892682162200757272654740244979695277875250104801991774928026343881930367118405502861620415866577848376068097320411309062003156929565981949394931078010388562624687967010624560844286011423937679838645978802341332163231296657610360285001717188672541822206598924759266997979482628711560720666017964333038382892937339826830024397156240130078667186456777629093707851141123318886653571884917425081227897051428051708591115540493804288013977497477444887658602842502976200532898897120834206181002575766537181198473818717010406006414202891828035793614789669494038711092037495042746651043348585570831373279291773559615130421688423797714930018971319690298154689445063152235082757649552284820886881041430157652094375357246329282222478073976914359854944745790868939178569695035574487749035914679651259775313511866783216224297840048298332984362613096900529801552437629688458341672013153216418666840421933400469643966110777449481475158088771151333734613162098291872643742814378361897450631811203380908699811133048930331277007223010964193115043628057276844911907756195963897576987346853964563779473117106895566865044865615289782485458430897589472475697566295296458296522117709350778257339039360795620548549109355963057038725078074532206773437560458595112441656712115852781492504903339543046774565257172016435399763761346686100356837551983311123450517179486654446293878430685683689764005877168435008214872633983607909229148437931848698123235771956310125149905489803666232869176087758837172053799119705513972324102723928599197740386592400346403480329004694944007930902319819677658051865624715893245651555870342240157022021158743665533092343348535297057272875535363717555929801266045911587578615072101179666730297549027838277870524819423360219484348679306777406104189369043555762517131219896567254757438162126798088032698671272727896894137344743824484983454922132844239600336633055839245387381052354513984384139192930504089754352185257125499083092323663777648362850307893195579975833160236857728373591405376840294344576215603473283714321917903026739802570194929570983015549714016143208167590273316943096040709825856341927671829790339879052169905686707430291255076991955899005765686112443247791429044187277416027435753918962735451528654975520216898682066424519518794199765716755848574788510862599015357990293782309251911821502870051462534473122701825304055653151588099656611724064872932027888864212363531350184682639485620539309578913363498670212789701095121918088974483042576054126658472325584744968323709341531894598020799915361583917582222279502796896960444103480079554106883283514232002285626044250264629358540528064308431975393240298132258808193758032242360939331323303264821452360975573376660948509274754499340523794840900048350965624541193542700883182145129853945504032507832829455576971383118113003753475709596284799472162687821561141641381706428279500492111033137285396507501210477215687255605331538399605243668399921335719619207123404078619879514643436842725054887016343750236304617265160315683778754760014312477731977611909353350480414703190588116240964497419344794104793827323829653751717747704957246862643163513687449190127490669553830971874116563338634709573205414337067238967455892907213756495556040558433905528062695736463343787574143522788850699390157616579329608260736455167062006487049762446849913277680679988129973630078196288012266325495307502992038613939064731829631459666583192040534541148360738032687895394331682496073472556130343968813521663715386474866213852832641504164140959933806408299157119898776596480269609459940035691052991194508931197037783557928507220274174474000815453615488212145567385703748172383962075931361838306330157110189866381134344487443414174262294956176309568980918133930491984046891897338432455487914238654734033066202496161642254666051950338494059094432700242327590335297425911857877177048454244272258009444771467980647377172401223618573737367283103326101970171027994344917821537364087935608953979749090276979064671777369015221980228022144882920725443287072167673265527878512454024078961724753892077021013243608167130757283306435849787218939172017451149437453008721031785084075881905092825730720036176082070430075642300061326674856779472716212579923833019468582704606037010012869508903013663307062627236552883882194432578999376735893464255250845666855166450422474152966444255136449968206127229896466384398989807125972242739367706041178101461544569402181000335798021766091420511980749678597030530694107053643343918581545348762065282042632793982856832546237274411979900594916291784126295269034629116564559659618744550411115751180235936894857040599507549675646238615672619836134505600140114189734331705575892396808415458901728589120175885621458513954885166581530939133419554521999730621348877603801803413053752223436281787248294827601841239577433923377923995281274227056598386826308140012692911508915023101477768703861966121345389536171701808928301412163186689677651763567583410582216632928894270833236566483077873731902030325789607617974168927173961524384570309486462046420831377668339554525204974712181566639909132351753491835889052130620735828708036165637851385054829613699856086547126417586233859212581171117274160023501071318466909121803820688565376851535237271444893211159948656319139544909598521611389532655687771297791726375069538507421766078595478952074726888060265507400233711064724182825967912831332347393178518392340958455231570147173290912379752871965909120632646407170594915459878941852838486684204775017607144055318482188130184507675210995874984704208605162917666320256548095088519570401459160950336783023186699082564701143786786077707159867171607003564673140708060798103392528096690674473701983340891061516946037072818008881881719448305484790986044467871996673608288265938653156699420182364933349746023784510017604716863105220119313746053758951074005424502876040432092659487628590784730984850188870028788928304929708052833966021386179625236787121525187229455043342431426988699862857294387929001678144099684901343126556311306060023243648930656341916661602729328332166736418477789887593550805370124181242051118482521138847384625728180515455856468824263084370250782758275753701073660230600580977380896896762133202966034385216784488045644163259321063600158909836849822856592407770857409651814934064025881788386514557917548078906006501363048031202488643174469746584188289821933034418229610172060525230204617684980933263063307342956590155689503239173617616185989766000528741251583321083900820777196424007371780463149531792414307190894460894782330111117787651088719003471304944099498972420503204861125454216292855677375264813497298542596232038789245000540720912313543578086290839097240603322105926897585481714312245367482345951065630420602009425617943524132065622825634720331438912413537559981118296831675152688706215797365359224978600934250367598762014226931334210778590576038493018428783776966797027665828983584548357648670345074334350314990313271532330983721525236917188299407543408996185412860719449147155124334755168409024656291812295314199835088743581164333028934591170021504394235691971934786920630665689670227615584832367091756757774258979774437694897964849222868604245841634711414959743415250446677964614474633024361169190313345195768550964357940055693541238961619751844436014593237145112337323888048889907228782915081835871234261427477768105572907366128803402056382053688676720483293842641465038442029401364653194134260773962588810147242073179056802052152998265614050271252567221535010149406745175801301138283345636356932078302980422970177990504540693707029106625685796432823339245431744613292687639050782602353112123083838522520233597230197416296793908612021324371523983294453043561038610277011922695689782936826960120617428404020534802397437757692822407344077761478720658101008892284928110160665346412817912659852334616265094976424181968503201562817273997781099907972888772955914797695238940453729362488741189285166255741538030395779247499248896985022814466432622544234340352893952202095765461976531333378619540353533835544629091817946962263720078913463528513442750346135510462586284019598824181682114477614841433441656239320805443332315937182049386476269172098567480907918804606656500578451536232411098769020293274481140771983682588784827955831571911704584655889336943544581084289178558218883884112492485260273774057976188559069767415803620974363965472002143034304641843679280011259797338473661609586254180086705512222144072966495151193889384678962592751345346400332446355996236488460359038088536613921464853276299731181982474903967760900170904162697841436697291765735704938098170310385157717267752402168534989747141733976216682137203821953376500230380107022548571892767762140127665262852759931308880216627408768844631888561577965555107962889834835533384465791834642431427291560249513047810825519573740814761830509650916202252276313946992313205607168025104830802501597366211497719140646653389467318013965720533114911936043351317993563367224613400029314602150990840972074498087032904220961445486368207299095944539254532817207403322061778972901357968449916330095819969715356888227637123611280312861779345087878713579819211002765512925028304244317715561535856891491099413859533273120067584505499278767879914425229738653522424687130475445388645670527616039377193280984568658658308203345462596391220916714388649923826243180006279765901397674188876060123635415339043115985459729263215715044902969295425229180638951698109531520632249732976958880610156554837445159051414620752890711728734776180767054234742383659185886140082255796725671539957413422474764351029475715355605098900837526304647606919080478723482180525875111578135283582002617103393083267036135524927657368322451222394319468363221365942157075734849434682740240698537027864180367265165802998517083656570649429561617762519090966171928194676572910490426900794252361794926601582498659639681974919407252296655450596714920253759447728663341161956954553571006381879385106941349154229896783284695032004346130537270233678104969558289813839420915836044378956615357895985419664008528880669804062385477067527522549400709229687310125970059452508532070208345918675149826390685650449989811357319809485898886060418035639078279947017711306300978745892265966772727337696296254969898714026763830363648225051638670721284535487931616299921866754976183035965488227637503475571625180412306181180007155363605442595094669130627312013457068097397090224598129264652141056139383294008904708123573700021060441180382174388022532695427503510703206078305394691617085627212751774048855115490330771046968235626524321068545883051114820891820250722907335043602530811649790836659012688315259023293655681461504058150361042746040721009948133258438639303492595077516156440335848179184772911672092187592108151396106368954818755058785731896402785222344668794941643529453959358702328582764940676350086068370540210181607659677429608304357820384016982594942120389266035412787650725795814991853562678899622528793314224632934053197729683665538368678050342849580716613815239642160269844309304911807913784652807682397510094795795744495821732719073599810799161669807845340601526235927345325827161302103515153435471467259248092107800644849994990032588861892726046350441142463929354722293524445883414917580686199303862951377316969929597953258307243356935793604783580729736672864541817345454952880030443438971335636685416149284419198057838884920527399460733086658288557989090005503347529266599639954336718971259300873019181518498215371072471113728841358393967362740360461043732592483655869616501761863472974500905460299584781698881423737954901882881752674827439355519915380256759635005823699206588799310799339693920228728055696098342909453925164099028184213534042287383112291406518000136283758272472789960009150498582293894988591260277836803049094538408915523875067254780692776740202290892409388397547064461118415837468572266195679558653244850422081726234536040429222719487227088831897322990801186181287658148778288375011818532614006937145539103927073362464047073358106877199975847359802121311384097502573074222248169057354065485269056888031453456985029045679397026144258456750395045527277982403439771924691937608841247238480500588354783361917281423533689781906626694624229641697748625831272786985018114467422731389556060843589960996090945693081166169124193035367406481031783792613321910363013540686614292431914206430375876628795885016843341997082794142712663632748431624301869007350211708698975474118538519426371509300264295032937354602048134403189073064342913496796075860812029829360204521925234524302664185510272334035749905070657728479651340742360949507721844842158927851481503409588007738409365447020328753241123263376993155284459080180309713175277837199118059361368881344993642627951788201262113055086228213961068908599774220882107555039947232514739523919544070113411300041299210557200290887742363435846031785217733464243529045838494573498033030631292972630877079717079058192614815837415396568678089722639141978992413338500107320905321982538629294749581323401079834679869228543376419522377519090168955337117417068450581523594895843187044730013066088682653298094593679187498914178982116956916936887166095340606571365924540591889428938400142529498015641999676203495760623099740166058679158503874359894387641204310223785085842005622104826573012409399004130650854933060270868641401921058999963411604343544665173055286399920058191951468581007962075771565507488460104501534010926343749442810438341682221179261194285619081547444633910401863552217456680344088909774635603807959436196398383821800182316094744895960574938545642696430020294562756227175619194183817434608193252558176976906845767977526064178909408428857015070454494602366672635063481955129448513435705388176585019637678931589361985910270556707550416351973022744236780904142301744337625016226895645114619304160927603778543492196561680077830574464302027733341638107284142119566199173872818499606709987355499118358375822853705122836830017071524116769553166531113571128771607847609587777988723457640211412634298678052467272387582962052836724087633003126594916827652980605235441441056419103222082436923316063228059310260327120837699165038425843256675511276973729880121207500721353767671741464866930792558029791791646165831165123052214151608438818534326960970735486652696251318695667696529683366404195595248385744420443408443276665692303507414295262633777772323423513683857985674658174595937785605861034252353593866709046262917974212232065036692268044515772023177009118526034143463295989193003662561138200864743031445033772983718554609086387633323052725329152280200997581758547270083966016756078943693031177788890540189715558182482996794152144427904232191191240725401944139469536441825575583385188023213352456528306671514036465133214649236870861449051108891692259599017770152213340203988081252699736420939894085304714262519343173867604610361550343621727989104551046409883107595476776678853283820206462069448459910210110920469287839159430398630246174060712363838425181586406891871742043635864583864068654806100151184860166456345956761446914168681488949840488650038454960316417770031937899693268405763765902017424598853313621149017157777051519304360031067242680932791181791859941026734301277562267781464477567961619216669443439275485739417178126557340532348251861109589742740576571462252842413049462029844119653806059525908074923827175872494166038786388227767978525381235164347202912833424788139567182807018985340738542058100761057743481178905925454608535084649137339697134990935914673131297388167710459743046034813227196694840674282309136153369952604801240979744342172814003946389347369923764941839798485649758120046249407762548842126378888714066213563583272826985338635482878683683038182004877953398525635554813498522199722267314200691607341271835954091825744925204588160763780999452698623845919851978601865692881364733178136813648228512152970172691991220308234136259218139446721602305365781782235062970033399096849706267861839768921879454609481476566243589483000690470522120533680901192701586592836343410047151059624927719968075457097980876124267372953843020707783498540764182550446562347565060018871141366387057616514520503601577587218317693093489479571357501697596480414174317688651232868595778528175054877843158190094096581428499675140787663456119321566575186963103053660691666610947280550234728731111160425328960000691208243997632330724853946272809974191868765593407826008328184278963462147712645940630084607091293975617018018037372348087695384396229122282053238294256051706012262522827242432395541255941780969780475182530313695992808353437454453732842439771321475477653065117693015543200556443008756954140311615962072293377398974432231927174928435614077169527381899197517391752551567674473038636386773745965693885205398828355232815268883600835055821077288871560912507228826740875757668368251548293820808530499698707346885931873780969683558663251596890592549034409103258566916385461728723029425762848186883730095616973598816124758422006260411120148769057139969730363096494411510809803935011036836508628664656526413296508932920266276882015256564118395032015505200431317996495499523219606988726570716305772636375583111438784955729247210373984851021523386004331950410315301615219072961907987245733106520755362875596010819780544786249854463821243099094181229794113772259030958184203545567989482004089859167817184986086379504333344500400517657636245699704048486497894180171706714224459318421353410584596643073238452871357664776825820732475163400403845587917877130567243975474985569141967467859501095860516898489236981605831671005997254902111850342498571809844073073450552781644455960823261280196901286432564016300114711579289970334970841655708489453227289501628156428210820845177679507642404987179824998352707425304169125673648967784775326947305180147774489351321796727073602599910980026463122047708232700906734376360775415887975832005764862917909386719427609454131662465685768750082978043992389631412153650392534989057459509625679720016255057598244481125793033560511156034839800306838731811389694254266845462188160622154124978290403656512002996430692795170721006605068664210886379998396551983919597482571349762185529961606379785083226459732989556254305890462733629231408768090428160428322090816223146318808273853328888746285747720959458813873873467705091332446836735531227106054608322289257337148347117102556105625206659583866281634688637110382759020447056135666470963930146410630416327283289023494198509612207975003586917509536073543465606464783664563512597649603413562669944057728609061730474420696649351272732024896032771566387206670508954435610654208123539411567375347396842134559899840347510960544289370339368412694433139635094227834497152000757580686470263838120609445346269499464019916155820231947168969534239824273253595816324218116931330123495726471546745663120890453055668430940035490646402195062978766851168162324695845618986836568950904606077066323582850285448280799549152254692444892954770325086190219056573567100649942611228781605680970227617428808558119020177405514517271805096112165896706033753013752260609112706676043919912204527015235757257351432325508647467828352953936628574039514958644308242757213217245409166816927970243097597296737099176717302829221925435532509626072838029224240341129147368974390588907568144689309258207017675386118301502715845088042645624049995668164739601300478281499761077633063010614614959518080131093883837869345440325040321523036042496469825562835940776191118526366498199680193052905188963904161428370605303450977727074670676044508545742340081975020171275593861106225728522809418766195312419528275605511746084775581620746150638064202190196201391454402065012659293299460056956330234800534550191952443625909855206419357645129798315807130581409338120303794995009307723082227066438539836681794074221470537913402137338149144415533369157456649247901583167191903515695542521118933373867817441636151515096846265808503859520925221909770454509265100136382138951496758924847883167801935148719842438832304313727765713912172493322022514013094377883994392876349505594833751981710015771956007371340758896653880365880175936024349445981911823204271375909357974422100564406410415456915126755184608088777277158048518067800974055584333905495404639901678025335402879119973930341762878642705120932723865633923938184306209275904685161811865316768693445841719524372584977180646410503336186306975921150921381439252354177111958641079574447890037036818674695297385894794964739508994030362600270114330253561992002619826657006802922195918634145401896666409901632602752189620861615412691766972021505194856540146411560824403763546633221290181486420370177163709861649433098028683286406427468343389190135863869433762682291116592599761913321717782676334737655762465320445297246986763126432201444415506633245781394850462546078148955046263151757182303814268623398618109304206269504541817179644569254827841255535516942988992782830575131655787964161868771958292530003994396227495428521073199895648592041071074563097594499752543616620091682320513350019815162659749755202571813843329463593254320460500855275798248476961359894947093655822428313782270051655434092206004307160933814798492751810712759593578899142023454429779291826092051324058139269585755054394450029744646621567657718404829256291384278180769765568200041262495121871767048403303770671365663618234373420639247144560493598622146151079215294123820501928800911755931063592319836623721190560242158366950278497508986908178831482750323356103286624282066955432296627670201118603633330392731049223981762381098079978855441017510936379918867288006296169547842423611257520726133106699434827857198759414977319792802873582484016052416841592236956959957276525257760802849439230028398365455823897943560471898566186662005446981704024806558489221927027949584284195772933216092187505756626494472555889812232875043383806472423381879223365024042980705553455949080469378867496276903847905274643377297661818076962348993516638864880512633578760233109819085535522745404434177158234285207338291048506941506885543741861441975959404849583472968645539325186372492045483033752412778051115362929641937115417638398587764865187756018474810378969145736505114629300525357618949990823627760913579864372848099093289425659920623592270295883763175223890510643677673279676786444390546315132269790337123965188762357416370103570306498156442553103341866314530474567302385304678155069801327659468002805564619822911963995412058366674050770518679548487402910067547737274504662106139068535926166337344566809888973343151553187918825001552706059707464310787533920357711481282145811585461630946034210763391349067540376741154988525547620675537918852713833798096744813541198943197357171441230409077718875881813711831185017561576190720232336197281673088613403557402237016127934890715588767833116003464370011736317192487469078468071243383778304070998273425519930592369266115003899349692619549344904243196571344900295584970516869252221167409350760574581288803171889714814120781883052980754328557759423390333104960240046283089646158108267958023554113026170445443048064997996467818880595995291916803644002882167064533665418577699977726253475985047019244736661822214812019946813087796588628248691118777335287254581693034262950351334788135295465388088231141373946674716447243798446309015208479633419737349308222130141854672317345646901983702443494411075836193241944643111884348570291144700534074155779684000470279603560681830915215487290094081264068644343861827868573531712624876635779318306308719476635331933872895302567537235778275397698867965923407841883177559094231517632051072427712772244990709411190782133286350670828904184028987859580493421434482935093846727791887491277478066459184816620091173548587370868076713390945513840256823981528127909776395815044439993325268697730049627016357639842315079600436230565762895424298155752036481112291207359358009771655181718894081493818189579878117480989994833056251984156796092327272542736693684366087935113889089793803687159362998294202603152994970363474179284011563696688236192060020372902441685097442917738952679541423844152106848602398144836236004909508028325957547619835028981004603544584930352144974883457504431887428516171074582534615827503157638315159900406455887949519380703010107584777237574456258547821893507001736047707548047062028158615723411119016514745143490711377702133880498524983635407603170884557758261791551499754945455555075997057409124650204717769998382776370561024573546632950990629363994468522654317290999395968455712936164630425956863087501843316148324612774486721954107422918366021762707090009472010418588252744191401810343291429836457094985832703667785909610809152595015353163025206967960546950923523408409286205335163957555886366202910891078499988340090262585312794896379615639565462428716192562298227252849734843596454890540423905860726239539824807130409415749804585077672736035053952845363342024524290327863501142420952540650580490604826032528199866664018880724560795552120471292322121085833573470409454473634256196688495081763086129767714140050166802199100353628164136495404906138785774723726575170109893664938037979339334340698562504322558264776113255926171628163126781018190476786343436448980702659728848080927663075198811681084802502783528693325876741668813345781484977922942231099172381649148964533089293697071224529660506769677469928255691676671298578287406690653766469126431494309345289005859534123644426075018260633056308094738545272959315031559909805027118017925898538687270152212530956025726966106063060237113111986765151381090536594725399436594292885568666933513274749615686127058493578029506230760962324797323650750907096021322699309516517285208619338510346403721688737924626264315581560352047214998676670365526560740564167449754833030460879600942989185315178843797675604795894501724856462777568781486100227487564732383150185547669258465614042938649937195713020725291465610705313990575675353381959272144604782124810070871389397338144295384400450422638904699680864173144656801047709681754351356143961087505235248772339694755702469500641265348929566457405550328760116943273870153230281481057036837331705228389583947968643272294637590630215651877520830984680781292880880630630750110290166867045444954651105740698178141640639861837087605972914078644882677269936870680672870117771139703910142144484219761054338671341931830687046658100109404990830710764197863455105870904691541928031112327458627585414965730792022200778880480284935932750574980252308890413221583330451672640622310945056742678780735765871899510619395472601968349071142730367302878386966593383952912976376629964618989762622656295866257168615335069311345867495875084581343967129083114963988425163451825961319826616315642520031458595563245388881536995844622716724100660911278759579158586424030061239834541992786000400472806330795222435680276102328681593300608490326656408780833147714778127592576440905247862919488332508272892694647203124257941242916998580486646782124849893581562508875620313834121828185184915411656058312407635503757787108704831125723569083706330914823610860543832456216793855288331177807634104752459694973175851452094064207400162626406084917900321660312670949102310133743296529828766424392688285854870140701459291399520579562250875035301773276036161743458482843959408202453011460548297432043558529039369231649738821080920692424857275804847172363223754510493976798170144995738990051206121884591515652901638157548670219524080955994013438936302630416360463329433660188514501389047022401307756986642196254822234371790194318706094848661649802993278908064170775461538751153352202029852442292299975927696178957091987652405620096145524720583844936142468714842654943795510424102491493317877715006890953485846826119687871672681529832821419721741850967654698867872036233219220433057006020937513659245545847610796708109706383031029102430394313207124833815404956800747390423828776696096361465245767547974583525904017001432307015464373780671432951979263611982464228855986235154930422739990141834997127342630536368856251244761842440228306639734893634163130264714442549461956529894576169666503733940266932221816477949434259704959761611355823158582453297037593715963362216153607797952243213448272989946941830234315411161407407537613946998352484026950903601100004589171795576109552518755101948291691493922193273956557609828112625060420553881321314936736883559186451380653918054392265896142638441781092895543575924990170843200892522341601164400410362613138692788778109717052171481903815759251668628139672257762847045965219836482215981872370409751015643086893367050402086796008879243575495268655031113232870076899504713056166605651584804732412435628635365028459812816430640450273172630854941988431960414507699113371690630963552576378182616868181856907508150602807495380037330199265661040279045468381549081419600540022603701447258094962132709606245239530325570410621390189269730239200065891381655560843616025338356158303978534718830406217331246899139050612246894280515002791757855472872482703584341018100294580523965320788331760245016900442219074876683774063307381631629421455884339844579592260452607004795255661637935417545112714612996951511875085597058991252727153718630491734155479959157164553078720252775843256224182906589802712468952349313044773637209212991424393654832286510956986126476296463181280327057183191658614501402387792591767758763154022910307234097118372361704614884887330797647973874787410944771066474360687323518514139936371908962108414954118780195100696711582673875891862111186886924399414280996812473079650938394125283444504908046693953032546228566386965128672791912853209373434851384733582097701351581887279843293037266736514600805417149946536554535750913073601759786688557175230967251594508740144437134891005845829014021408579564688605149110744027529876773300769729193570772192450398628702999812003934544160791684004641873827710367505239566844215291391320457898844147247846627950239215120135266256173225293404110713793356902782226168381770285944280577468742942388299839952282731956726741307782288065382595985986959651849065553601961530334663154081314032112830004763045378116161858460947964139913647322185727062562347367405917694623578031540551992387107151213457438958911620590568808431245518559130471308606385936209455704693785097721733179932829485258245569023539399081489390558854127144542143222899379733890602421359836151003534281518473415520149189884671288352814025714743410875888548128134263496794744012345362472448149375610678895070529354414219595783102281137464062363516774671257191355102882162227741057095911851514385959940612124274833088402435638420859733076883022792896150750449169130350081672271377468230170416771259972483584023639120198742383975463242278302502661006884296778791805844296402962112198902161533742012248633889104039455213960570301829581512427190538882379243335764443091043161598106028976189621956374523643585630300514002875718823679746987658870867627243804320573913000915037320558823907432850188033919181999035358247454642524536868250752850180583859575112691906029164850387200724321365734776197188267537345117474543665440669893727753582249643246739105597678577825057636113605543644948215158893338677062463993668977242228851801052816577419020764576337355342788445659177832973452387319322537459034225490738073930600200500459407503310559045754510336459583856945125608648089554548321794835817407976515256708540326318426587362484116050788325618158166340034352283932396566464740925692451187370929620751797949653108993038423315616125767771613829565729075778084382226333163572812245387308670120287162783387594638611931996720987504433420898569381632516933571377087849651445768869671849818216575887404481451251250269514773488552884982761184785229791332068129157913553308434275809848109537590342015162142377679157470705938748507558842051390323250700988686457307190125527475880746783116309971263437919884899555818425060672864741175592054343768682232828981614821321102288021253581550803849724035142048070266828615082890313050827270766788398955250894048304765280363301166960968198074287185204036596771637468076513169718689564264518927537081964023972896812812944669537010149815957073321369890391834883584662704026069534711105903614326858049026668453539368028311943313058782499994420927480837085064611753473082536150311689451282457101248552091929486218164574420444773962383099184188386034594847622040858664249526018671293402637004338229566859822420657959518783368274176404779329748955901269458328510107433815261636036642540372420629290060076103651888904153929531454995753324442297883155956512074247699763358917781008830199507511462951212816603454596960491418642095385659680433076062112710822719436424653152204624074029969410776182151251893520154407188318322335652782146494738951756562047650633838479883490032526563476573916780819456573183871012176943675116161230993284565800652893775484848932897467360416757489714553751625600054824537931459659240796112955565311856621685902404698368048137662800140853572136687973025921437743321844879220685020406832620285780504012126324703446673249145866920902990968799830023350774487811252142030391109791143453753214664256136298268577060588018960301097157359458095341303134391999589123920734374794171252212881273869289749762718033427106899364766808181226075759762265820501300034966060112360847890596164839474012396960220110232856722744737294954349067407153505275462981478268565772175286973922023593046284914656392473192437497344811696519350589448426351965635028376967742954317373889496937739781826567316662657640985914156053010213239621761001409664613528160836299147099376496573317856898509810475008400163664134424081437730178516653227448211883235974291797240381174853541635303075144253320894733996481598913901820657196978811621580308982962911946921066743741537698810986276000599938911620635257783187295099544577358799737786291049692615885575195856288979805192085280449868075776966679987497932905082487118261328852663212554354099365587891740648405762966634980313745131188271320464936358796925190547529085435320233778245526736248319980713310536028571705214466416232357890747990446253966180716369867174630026451885471222299397963139138963519164342914805627242704660754342709184094201342577250512252289712518461131413917251016458928131856988576009034178009524562262045492453038497522998520779040185843866351156032815116240512996201119535162833830340520334063962666065869591586544506697451202998307106542570218999785935793061607081637938184723425715992916898328166782138290639011930818435106943008452940097435986640302405955394492453353501143879037770960368726725034233832971102205739976956493088778822207635821188986870877157581694891560216275614467504661024110250807510292487518620601998727346394359687966745180006519445944590340700991480647555866906232788006034658341782407104409113285386699358331673853038304875368871691217404303866477428638907570993117117965364849419938985410667188768977926112249189331767100344787002174890503539350262208546498877135287529127671542496841373185217948389495389512846601616567256406317978817118497241073843994466335677453971759900059526865693720262625944973886177722019386194899287586559444820987640215342206948121259772267521678563361857252045679185947302733407200313236411103459506793065793758842861770549827120803905514474267013899394103917461052052653306353410200220805096974968487310763621439942455825100497774001468179259797049624090816463491852820506678469903039420753311735578059732357389529772012217510856755593738550074276238520868071768537112173246382629650342020649642102798929291971525787353565424810726990063728456891372381360839604807821601154082615341994103663614610562170090654059176455083276975430564452854074267981615574037971761541367080139857154563742654278336922549197831776647090421234190106898771915624767900121907446521529088391668827373884241582274076027641503545274310610488632114814594848664511403085731125059129220888397936291728414190303934881761969696868465544384915258089976344455556886082018037453433821576981914464693195021231359561562638663167532861879517820227113189802256607048470367742614499812845812558886209821840647912663137653040125561766904053807522262742131002302675432059773340605013123990352411954241323772861984727686344117331242860053798514137295540637457013139358636795170230157732649937185387556540664678918030046966374714561917430979864825458747044325281781146027264882220269746973561426071352514568377707737275333378730228539521412461843039874053137732242203473097802774717667068222832208336247011647513074268372447951454695682561135407890272299872905450696163213264197409642447381195952655505316636865313864845593860513334352231658236530621725612881011979375106402995466410824392484537348532387705207998339905692358471586405845682436890060624107016789115922925432112143424709321301650376393899970538405777160200210425404342992874528841905112389808419263614098278908427125001299460125553669785904832447333679686286822899415630711085940853045521801710652557057180671572551058057154037241911195029348178674541960432269559691129700589813363303006486630538181050387567592573333626619277598465881778150335799849550546151414209825390832187271777435533100651500613692955430652164011028775846914138846750713864424839729201390565729767539770190961805142410307183671991430873262953351637405947634730996335279832808359098832649435511538172231462163044490658173454542789471818398444636530345587256787603247362994349210885081181246762500569583741528856000280469196166149472032061712710186817776222564593689022780656518329159021804697614453775548427359699924224380595910198289176564543842998371132348096365648017093948956076710915728316222527119809875257626314280464035498076444454899399382499465602743723062974959547987637554967576647746424267504707020595993327356678080609940792763274399336131401601445470654888630788302453254312526939470623984788529035935124585113591025149956945723346842834335099660145419952354108082021728204356626175954527290470775405463978803616335426129730507451127112377967729153380121475906693454562959742932482893995015602939173587430029338034225636614281592903739836842491294865496859447615408984272724720655441342754459112076918605429221980112584090016151229252179162288236219001378335277137789308961769032202446955805839939407378371340431570746562159557363306547197730052734721128731389833921249020377907250508934264947088170191974541100368765602335932604480532619893943775967021928759005651333912474545559212546693164539969864606590788350745271788060597348774935572398138016116467171541293098613951460282164379911496392949746394902946829177863723494982696453996053788399409161034155137643008255424761206037598288027015569938554466971687523201649008215501049976361378082804543789091357570628793619447850973290241169210114082569939758690677337059306453973583259032623044978293189549358449372691925442121062837909101461209595365219894939920032540467497452062375849120594274411913159473562482996866477414372230070681809814384662189024097204216680454087113339063724632955120020267062203352527497345283898735580372533138706263502253001953025189914908898889743466656964041128119921168136467857294739614564463726390708858279257766802723455760391097091807852022557130217957093391608036815556854613288778993328623142871764911638104876945740211317376483163846708715009307923378343533241292470979149110162892368462788513999428663998974983438424115119514261314556597646564320388991668965416312678531138597006333028449654867630875987131855164856890079317791010309678386042868742380795341257844071763132042433613031746002410744375149451698256660133337793959400519372041424545253880952686001770605305093966003352024140513792538282027020309516878166629334889712664895666076237393488841171285792576890182497763299962252967975356562984350325922088016759285364126345469487689808052346502302981994584426765680960369621485298461847514200042442919444384565655742916033791683041217833898020279180377544181655720858834287347676698592679709592034812857910917070933584185397702182248685607616796092544392972475970690727824498788992843314236089189060943490269530954365348473765598122443965045788541922041535958794678714093811754946967157810806751115858975506177868581903467334813049377413988435625071494437668658352843685426614018996138873708347923493550606086324633258436742190635786199092709656001068820717007979764124404889741461253853734841583866991102326252859884280165387259030440438812494209703508048302919617223186508353731808330375854805133129596814974500090837669646371970469192224621033883872243173662392615181983758551194630324239050247014481867317176083664194115801238330208450953816545470431398880695036744894520820026419366243155510789159904790851042400099609074269135290463071417446245674502517063624687992861571267347361511874211782449637302919173087805212404328654218066684469322745844894617459169995464034820960946331672700292620623698201303899832303979932383815190365690252116427107235458652165538013758905319892162343089896990628773339095861105616202827413629909007945055909660379449173182504109568343549379465531185485109361770603569928971809696494994292282258609068415544038179914716737623119153693269644483244270132198452655412550430168628166235149097545719910394892863093407475955939001222913597910650480994236674258874889161117451944797501509049839900176721171471913096672676447709774769704711066247056942407843750658886499969288367872015232830295455061695087997968582064615725721621229324258630987796524685849890249399625771382044599697688566737034985355071221531345628262181633872472140900154118650518553570211419709380767160896359232277671306636461764072604235996949893896936346894333565498601007482276111084663088466416215012166559873052426751305569716840566796385525530198223615009382812924280526451414948518865591615646292942607420120152974875302301288570344258904896712142285729967865355801995061433745040241370268431084217600428776196687145278402918584052710065698054333825461152181868396474642877629718617857889895767809379476879574864674548237547321608566842702812509972009707573773539344655312190317658560132773622429281842643645635741592759550815135556127127576660648837447578995732907949587514566741419803472960133225227739456830491722453349585447543335131952892923245463050676350812461871326782148393013605424389124682142941270403050073070978985081999573945807490078090773651528227712094484949478196216440760942574766872551097119033343735080251038858621398726368173772095371469607628936708964502356328612981045495162600023752531482493290445138344364932136324895206615303243886548926668493128355206950680515396979606169039915569369978844084474826946308322218891423445643966811525599964718911531315509672112534897828361214431875052029255990922247871378910586459786597437998468123381849166208088311021361696498667208353112180416119537068112144376598186062297709441363618962955126460475063219782465401473704230511347819473988817437069327151689507788576471261605900293233705016879376874494984146145608805082032717373961083847408430000867498776902928970829257787754616027947796107829265091202160938050772135400593861876167238048359757712232796251041590333099621342228350815194740805965328091958934505618959798046999222710989887182925751440921519853698593957336709801198626254829757047556588047293607550569857172397180890657967950738732524309881681877375104334409213849380816017316580303540112624733924680608814231607068665114649163373695148355184828160201766092411898738620627084665783478196333369238196370599722204948098679358546258349750850578073162396240256763176719317929578184415317707594417338596067642420462413349013121696587339589471520212699818046040689267271812991020068110191746395709346088281584084204767125835650752225417314850275034385337968866520191357829451461626095313629895278031007192258320752385980596517365715981410750985410064729880090815063872115765361349519024844276625467808708199254949929069044223977235380893584479076537524720933260914494911292585013070165670948946320027729398277162663294048217864341584464057365400844935428537617164006055711262303311420066887812989175595178266715921874462607851458201076840104806090404122220959056411608282339113142797786557047135507006313326454065558893863354060380334295530572650619044605091746270358320650895175997332535889859012772259202416196201266623665886477934933696300490132644067058473900674180664371380254845630373870875702351887045373227291803609641975155923593677519740544725997920744273691501638310027726340244084766468018844500755113340853023750146056002739279972376427492951141276085772946701211799058576742282299325133238117841801095256162592437626005675327348989393040632567185312272385978216431889577829334732466325223545277810377907840041855545332242488670276774396551678156305691118885827285280492809086346979511036848786898272546546069944606736671354530850649956321581698330099114876511389385462705408070789693651112538809737562539728225278899813548357945556356146669158674986545013554262202377998861301191881359023451108277224908303902423619923122303745535429645763462815580167356417277874075052869278765682310416270386129120300741830499428242035801821199089975884464920068288097139207902402504414941145545790049073111751633782594457308856905319638990064070724806841837038288928317575019578125298113554855843896277900452545796962180151210069693641211467881908037431133461205691359119322403329153691676798582581819069911200570070892457549614721869890375287216854107387377767587255333300695421913487864027305841803477389544499139148251615065206162269662417182696785567554055115501846038468605519687523037525414219185370957313625860713611542227934173440189512221503667035255915895009491676754752327423962025551807224504590519444204484321113620656472122384727941312900388980478925701286015572840080218921969788774673867754691025975052826995788934367928515752385055420883287828638162482008097866903082273860026005754588022909436630285105945261186218264544712582666152302846251023269706685332050708020431540659541856487701359724874728569249729772272329572432035981370917582203471950597174311140046307466521148897978127917105277237027861318614141387330954421490197994316034044639673413032751236467905570635235497291124291028055265448456715161819419378058026210739059858473201574120680603160863051199506176661947382735988640968265858865483307262342669389312357327418712852512728784350046297997332891578135465735646981197003854145165009651693722659767304150427708552846518258593792789093238515767057428636804233281186641462397869658236495431007719520712500961071547591081041289689586700084397636870231284057001737676342941497290503740376607793714921492396458251201851575877441941337225556303955705564169481597989763766964440237342310216261767959379230470571811384374123426424788144353528311352078545243737016692936099392915189439590156253981041526461295778256168226581912862217532797117945967186165656483595092976959965642985312527195242781913579711317702378734697392125582119400462524244744360826892079527496041356065987598989260070838556872660100287944852963501290080708579250029587401306248674529482897170612423726425315710781149831867177198421757662189912382216791177706940794426617809733650925834643457373274907191322788251784450089428525218219297551805451058591502808570128369402235348245992208322055837310598270032656585840868175271302010375303582636584157168409891004858554647412411988171438901695620507234607442158469238557288485775606986267288705441975991942752943234410711736925039775747455990521924978198329292874086830258483649128972543312368038693334830795361879672224386174431259429399599460060377289202577310856553693581273828327342865011888958488922420082119135958783036115594205676793970535906416110466250333827334070998257855136350830261392696893896215733696256181958836108684343399132845306627929104567353086702841573095153560303533973280527826300226237257627317292456831157019367189897905059238356842884623310970628425987372892252950678770097785615913028409687416787802397627072558711016044865925896041017135065822459831929112377957476318769982245157610528722673747738472676562532114571865018254842788183484073158060256532794435002981212605639327203655731981664678505680089042871564987843583987126204229031280740987010643978833644041904802740362244194634808389403427451397133758008244179183196060239248702949199960453598537594022086629424129855026409427762835338666589191034284835567703382369550688419854056896265199404284817160861671185562139126880595423614372925213007731534911308859928217639824329025360650879157127350408619403484084988126833094605212370789915383850131710827070346784895323547521090720303822104972436401128726438893609096774386839776649934076198688392989302537568432389410386003062510695546376925336948964239370229989560395199669404976493988475928510152590619888937265916012797228335415440628571961894740419335381040251617553670171414929665198495891079369446042026666594145568761520883867879879949423310726858444086618927713945908432573040699279901638780602814944180150905071183094250870139981205925392683740559029039393634537524542506062721886163922542263277317866687663638145502644312911504541685753841245062402250982245469736636165530805061636781740907048335477708688556741740020185072937921687534840942058295360241616602002643760447095324198640563437360801442222115078523655674445372208323481496881060400457311943563362815077847831039731216770878350248006562423944964122231578557408202719171744618782886545675517613342637709745706344374027744142602383800002823485781479757182893770718750288295796895791024390897813009283457776422795237035821494044553382639914981204626066724767207891767916322517966818003984787164003451036487632874289628269451693053064781332760017291887641489339156258052613224293718962582514696157130209990995241424809215029512331806525196825058028122746656751289223959134736122442569306363677349026161049386573437938560028610583727816290784147419113780794146759048676730710712605366539437057538831082528540806240296118302425432755015077110495945205603887833918310393427179106970537609762162895733011771074164544293159238722286408446419111721859319189360507644174006623628336765810195024971580972576388769600603011256745218747535422077931777548065175977434082981692785535671406265635162398677586891533697360168338409663842019023648474620922985854370265338458648454543151696972884802286297375276539563067495816439824724148625334529534540579275923531271209911546436644757713899820426591883065883772956441755034003148620504788767450935124877980936034704050550369871107050774998088152675710275480668473237497554249313279860496829179796534875329978147546096239246159107612828229802561758178874459572197024211508242956025652293590441181666774712934467343409622489247520984689031883431951418884311348117441435538812596922671325226102226561150208323117830887213255183406619127705300523926491868413100379644771932128655110091317726231356328098219750659691332163807823942275893148475174332842403159093074915891623614595465369018298024739944751675001064145510033667312692503003261278218166060271256552793641294661973018652385585873518545007634062929954094808571132128009997971835787981724926379458602481894421284607365689406685881126960786026405119930481078568230384183861295890117488959730469868469314762941605995793773042391596308517424516005260783451559789089679175400724124652938697151631118394395379001613607516449061011720387464126577433741835705979756366085550016257997681295240426744577506893491927796440023504307989631852401096092003352673023003705803989953318221238909327551578072623990557372245625177554858659655812274644679053933786954850775605641004643028252675386571422015550669937909329670397880368903103950329789463346377993588043663792556868694690212187702384022220843806987505450347186496860030378165831003977130427790126538681420870510158669958472037586412480911473962830522489844325665674861357963842638152249435841070212216271802854969135751344267238555883477153733393011459286022669573948688114709525265336572555240601449147725056161330099017915556911618063785733577930588717627902025053137272408362127826673867943752856724681600946215376177135552545959577140727362217142075325757934609578726799227284523440256473946830601032478584781104651681336330595501219585564872190107325105943716933521497408272624254340236485679950143154006826737862850223270852193305337947299202313095668771052195745330274630653122231065745438321752934279939965250124065423708536705024549688486418954756626499760036111342803412154651545403074377465545187391135018199212700800942835488893761675197452134371046002706561379451606903007474028150227962403209369822380079650079975627604068333009245403738159218763162875767994663796229925788898937770711325988878909628703939322612617978064631006335407520224624137148653528582014323665896042022253495677586358275636066522483689797197729186215107287502563454612289961606470273420291643023609569195243948396809746688388443872382685883470655638271082673388771696565482088771812485519881873183822702115828471232839420876810909148630484807862978815175740501064239653630063021975920749861884572989180787457292162133316819336832216538617484082824084088022939736201922298432170048060666174268451462184724483018649196734548573091940914264668517283755174066952913178733284124626792249942784796338121300967083987606487470314262498142904177163903786787941634935695569032790718546297700357045649123861011060054211632488598529746229511094889518004402190291020294846862285813513568309067617363508297868768782657347460806348683962754175383198413825672949768658653756289025160746993138350064301094743566137699277480774534473689413385555438933414765286203382830366630839367318237306464476411686524178160029123455332702521148969447242037437186113501654321362718578835549307434699968200831860628760383029686589603191383727123520495243398964433323846517197051837203273380000629057320718094655642673291172907798298053537812514054700836290714006043542321893436911406805945381277647876806722656909115170523905485785769568969017748775014256832044235489653141813593051915664648574169895842378024151754278590076260590046697279138465258090961698479418872296421029973732813265846134462310857038867263341241788452363227978837859840438304946402819335019400942167054786490812674617413506249010296887235771121048176795308256583016117095984011512949626174072613352121202729492688202326551777351605995778746878439661126877207376478531381982972910564841787478548468605114869907478373350529051191211945700962144447956771587495097465245574342762573754507239994639873577412391251458273362094829346748795576047992046556151095090804872310201366247201089763991361459817812085458088991376008177789215621343025597456340159997009959098700333146483581207451889592389843045196526985167813712029344575242230218794062694085669604859031827133247739774551505141300137145394742574101135504331962274344383654816694370498218955808773060925783972744946304404098380789507909472329753118262487123856470119409099618899190430021640974856309317804549848034055750485835383729640573780149928906702551001921774272406940760101908074436584713963972341350963444869508862895645827460340455826972137951208890327345659045412016379761212524156274772084894766765172134800825692450423807782736721996137100477052881190445167173071638707007696612925617021432246185356514708719749143278558919299240417317323619571963509143445415079811613617211714041700981263701106560736602656931386289355653790592421116750450693072458770810215973245563220915169943566236467762683939896473487284912900259385113972873242725950783770260890590679451521015372751457797748567931535579457238909062994873600885087696997360618630455325410623071645459573425445157887129076851748763856477553754733727166403547970152893073018528723582910930758017785892792866827818471023812516950974191073687758230432296867842964411653441995931626224030376555377258458897541106844196673742214205611629954815592943443226573230162990272626863158718835277522454335920943136351641326924774981806416640962672161333352145085103711367742708482784685733442073824435342301129411926557674663651097727162482806920565495598762621970788092453207450793736938599126883622096172572926795358121307938832615722969439692261113005080274480558259737187263135832495827601140295240372248534535609435349523643260669675725410510706146293525830210386058076963640381038657524685157742357658247177751114210266696888958753539785592180160724045858443787851407848526659145101432789784848331548049571559840785654519637080032982034739803907961862936641007246796158852387138309330510174264342201727946026749463983830417616211761751093561412061131028543543044749248206641747584994778441346965331003499362430119696852497465750687085850129385459304105270093984296813956527227632923852388647607726220420770215264276604605608633645345692691818080801731346194865151947902732727802372019899203482009348499514368818277784423807868988817241123582984352418163320298064917203057817551651726400452744900153969888442115667980188446981120325857767574617037851737246805086996969454354189272294395983189931629549900232087050159695427500058407934662119951395039157550395548319879054694831754651868696163888374576143376669788402401471503750333430796084395661639992393634513333786037864969821991625734120548239603129865457888961952908367620403789920611216450020135974604957207874583829363260565222694750772644040315975721421483616911958220411259416284167418066172593900862592192133282499560416429065008503180282087778415727829240422221199875831488359383296060965886509063754591462700544704838867417398824678115467290307531741711558692450478262801515392485286131515746535953552576870935110418153925965482080346507619490541178218794560225671628242252999622901050603354828903262436800610600051137297819958334548898693242087439839815723024809557072702835071990316378110580220276915474485300290050853980178718023612923094005981884377375863580748609146574864336968780791158791856113946398389338428681065228946082758485474492078663581238449824483646462238034651758197769749123974410242062084749640611716514330762793280291321649907488430715715850879705753635847623837086245572990520141452510141931648428478640720130008896200383080066336431396287384972061220354717262361058173620850593996192830279642467872308143677121299013910001379220552464622079840416903890470088970778737621116637809470241456897625496199874030393036940709684677966605576492502027822427763796696486558712222043244917625813684147622266841524138477115173315531161427975101254091021345337143251805015024077756851732113662571051103302318279919728112802844087850075679744025231529744850897166394395596361190880253313680738019737430328341426272767235667088373332205094374489526956035908569240297474475482068727896072714419272140460783286678451294124102972600655895130051212723866076299249467373689151532311016003851660287059075737532306126877965145475959292989545623684049077369679200969691546791352013692536771213611812173928710164105349401834229449503371976704718955710687330292711071293418612254247260354873709659604864479413926597890907043975400717732688008047261148221419462851008274673711694869909709366910397786021070113743757163730040484306662022564479771231949667237607537751231713116932065684013853164855845175297037513746819996978376920659365233350357999239482039604232799714950424567976374607915472775329920598140543695641884539893746111805121882759016651627728490066664824511967686025483961877726699626418662887548821900701357546433724571637482272325318107954189220291548828118287299799852372368112018696374693361611658657216535957170570057192362415344485740197082816437777732892736057405216586089043022173418824656094808892345143393078111551849199138504907684677909737711012898950046476043042365511003354929689330507081684599597136085375633773755176305427181825444850717380558372744175525758115070223522702123805727711579466964945002893394865368401210169372850308909374984304408947089040358065623720310469505441627746351082257705414258790901625688374471197007484640696685840196432192576068569856556507299047529480310710513670137029382054011065327682200017792098588139716407417490556387192398467589077795081128011888671374686915673418519893475122783774051484318485133446236739026691240059028273454866539810208156893740772581543973284589868011770666757117833352344394590235512420016768064384809522168468052549735553225447587740899385958275821467542653115815999798657241505573010511469356627893097225451691130305660608517625314422889205829970775476700916634043306508307304405617510077114851860100686205033493804911255616561982017661010086490906855826870322300304441228132926344147072181426631702652051113123633016482024681001443549310782483346748395512756018389349283003518303402827657398585636778152869114240548872691725564301220638996131177736525965634097073591524849773542705652214024543935123814649164365078880136167220616515479258938299628960657585524092098152584814469268511717018771847644655427758472609815892203531217372263038445957673776828928570651464500596963737843894080595647123613961088695144007353897981571248913929409887843328406242017525055435802436287604593443190808623332057204912743592641115822080023770684831025437429373383268891192326185070351675229202520927288635828520884222191714216725722071023584154255994011270105436705669022730566211799406595825736116602875349470850954189158638134565823394064464673734007297605749487262531011576842648994625808486914810255722635270445731425896489655719482903801047144112284841914804391765708090204775578993954503825238011229367777612324901768025240463673813239492895928873219702571236189899960926061931330354845350697816164766650849746727357168721896031368775820080279318286093227565448684045784996421255727608797257934378319112826869986451786332602132434709478748302702392512340168360474178321192563589742675399225061466977164885446799218776648872865632110176071190094512791615475998886501299621849733457812355646497267253475564418771873710482695021017865149152607610007535934104081407542965776330409972547425063606188048079033069594988189598081110712844355505845605585757300513781325595664877239319953472586185287819343833980210996721851427360356678659225617405915678209862127886812391067011977560896597561049778123283675376102079404491281920771201391893403416129262978245275316017244450711607930100068875883600617135912243598314246838975600771567148649658370546361968013539310964923188503377443223459843439118048241791386870855595793603644770358024467339297485610669223646115367988317823180301942926847017568096680337465195394971801814711049016627660124913067351890093657466765739112349740230940240814914401792073641465721975091891586695525476625919051620875394950280602178631511490678467069434500957712036598216424062636233155307043126262343513720267409254116997232384948308504243415751585016030235116344291542555866722667053351065954102445637272540592406435497586674664819257262786596949636712568722650590698798880467434086407280790673982461807186365281716531246195984063125889585650739657603186371349767916746801041473645877149285552563906250097314737880808985508357589790643153801934734868437973841413876766526815558988791574837034973357910650558839605389746801433942708094115681885929128577063087125817787604954381417847854772546311467007574590616986054594630855485815898965639167157422975330972135125422559782222664508212268378855840779253159977879481287145751305609137308411008096015957193450778975394788843139953371527454636700387181606229581603986605774283075426435687378652585831849556411798009317899987108715681078729403624030279942791179723615348727553217690381804196637880042437339431531000279777480652816783903430145558581309654746163862521512707499126678858365153157025001618736286887557260695639604906648816662910763314505676198513527154748365827872704032343804965031449134239863147269760776254574957694740199553415779815029823804448964074786025553868788565814871779758889850422198510737255370933284065355778175420557352039125236734812572046320737458494672930149377353388279206793617238980474729589851305912711723590600563549227360947064012257756830209317246605129633386306234923674436183375632990076940757204905516893163158967081913962040295180195650452770409695561486132413047912836488361956193598921514205158230891161270968540925255498051153907682112248793758475269029335090674269018060966888880955681981756038442658836269656463275733779837727034450893886649040385415744644124596987403501121825484706370179433156743512858531725569988179519870143785265496865457042477608005623010282801210609212725952465999262961958135793785067377591667705558630565090028597826705805633639360960994031538104730742885708561281862120466237452596910309400324422824388552399686419615457640113530605133066297875035978230147002797346515565539500327546061944225065704425724726905294133241018721329825487450371095549371423238417823023709458460490839324955821082053886027070264445307999819771669098626776704772557636889747190067295659115642662977825275196000739960826849977424622352667733087659264291376876959621774414757249276838677181737593157240147042646285830236830249995934146614750820051082699334187614431261812341755932069336631528614526599109362685692735733247587028301059104237215238371743671323501659843166888200597254420427824544795238627517452561523157891894739513779856825869555657615818247841238026224885917331333732922566804620751715699726742530183480535967659218017395284040813176173247303421927055874305536108730154687687171085495960788295281216149212503511558101431972861758797604816078799306436472060506099303256877141292357886940638467016178560731465994687254368737504940749368910538536458120536970412443369330646281218494226663797981970413873175825149181210898565529795739864920966722872530704206508819643055194762179585525656087114106735809384916424806852080727754957654507574259907221901082012120024306391809748267614878198216147531268587670670795091203299722157344045807168178409953950071523697245646441517443003315954797690199343779568927082579795304259221108948141582876018983049724851192486015441458600526669632895512628911644899836813554531050205960188766044489104586908252310122586645945439779478868972982736006132016405611538780755878649368751059579391246430157781339926179409372103271692040975033526798328024344556888586835745060525697777233105567903857104985899461984574635451763723375678553346592684449128830829028406434690806893541020168460499800042399909384392728692754513917852645357391198931613445900916917242926163772361802906786790960147087128847404285579964019442466467011875485639280416964057224707308389075175503990501011681089993259579669566336410294462164109042937192336533044723027428008330053900556710094073583474183425329762423616889191002500052355073181062821880235484904992198219256431754313259679185703707460697498210455651246427897732058965977147828758270310909277648834661826393729144218213710017141290902611208174619071030955018534680379314833496936168884339255311942047491089374728476661956817895450870706532376474823874625061405838152928976248242280515735226080282702917532550868129888348242562135513053145697843441117357170551205047272325244875195762484886601019303975174432190586839248695438910514374975591482420160919089524157810501711519498330857227429456834470774743714565828784341165986596241738447166415211219769671876016668061475496026630291822499559852221648482488493553985435914562589731537777037400592510849999949549213997251486184535947934488142478687475300885701332544837713821498698801028356072038856646145301955684776979588043477964996116065147881041341361929092227820618372153236390066900216248137514155606019486702378821522935574413464928036042869527359959838804767522849504632052076621221103284247928369062480049775893181720246606305592563189215512844083865058389267993019500798696081539515908426769513895505064391321427129796843004109440109244257835632897561336939663229218820258064246540011386436648992031172119220202026001373959052826277310961676292552900447702543283719721783261672623057319222424031331616900753424288515690438293009107301158051023185038619333745771755855149748348578524410531611378731219487137693306729856513539178742360429738680961993958483733826934571988725985912050653223450314813038089307418620136584642650288177353280682741804421746256803236119802568896799207288158819934811976413042067026054595270166596306673926392370376847906085373127030437621659375241464861609301490842561786378133662385894727836268862072036932135091896611370788549134151774745170591004560759976233780157190887464169563499021906473165341215499417578097485582169845444663859043957356183863363108900527404820009008847711267062740229137449716357755604677033584371414774133831097010683805743323625080908391008025596410298121479484216721039940592715809277141505449523515605179704345733761455039669211908349093313827308828499775737592221448545993683985028940020376336372968384004243371704649376922304917610413214848003135584695157366356358215923086748197436985583869542745997352315559509625636146421784427414496662579092613958852778900823300799398773374565803331614229227980121953858503479231371688300029764053385287472907967510527358487520344191793338001685472359581384212171182549687040118761121041848511912268963765573301262657107456172807605877448642430501406661103965858371868043249952967140612901575702144311761932825050607166775307012434946216848064193767022831652705255941879170443882257555849523831863266823303797424141518233839025218866725809687817010881554492596950028649108842457983542950513103208149588057473716487959623819089308177140490123891241729981017562840017309536406040134972175416931177344795083782935259776249583615766662005941375333828000175083237444950097568298851196972080926853736475914897281499542857008872810927855834439190744835612977144271335544997202972432804261641023021177950212696444638048185404141814150058086839073768383832994062234171483177618455874833508375332173334053448821864645365401351923111373742255093557566255879264543282212572976050472854715356074662520086929112432411890490132635660702516019582159855351204242999651962038607936694140840108331835054678101307982221094232134080209291116043853091643645542292734039768468088513749705071818889166474471293110814944596798117642693647306611852530598099164512042997345827767940900644570242600694221317272215430708405176295428615520051211820265670800987504376540736669365215695033112359945880414222930056647291267874352037783350763598980929694125569680070670110225917255520835437944008880159195990402608840137728754845123466533187767462732725535984512014787955014922825464703509528709047987132375806191106895772482704433756489418663394658423551993822720794853427418270194408893074644871550858114956738410708018380059855620846182895365124995633399286590068704259232526439015292029474300309542402370503140200004378253980868215991718459382594278418734097965791727108966629588388226313731889490064024129320781846205459656694784201442511655142201134800815665346660679723779066077231693807616506669601093845547085081386072050902549915030330103644480665412249237822807397293664450820406136047766000046991949448913505021912559678453637589982676242863188846976741967302304070289244120188370852317636316892306522707321022000448265510094215051474529806795362548036028707638003970858955750618719172715724416596923741116571649910679263589778561926098832080532834029044195941139882035583146665871980361531764070969834677887973283990879462298547685190064128158435499113825772575155843630463016307079634280462011395338111465953194668761260223606170306640578279480938643548516970647586931088047986686300967818224475983194812138052782341929844557415247167145450137049547646934487875088263506693970833030881638594399791503757615713098950360100913189734283292826773565612635036549930498556499621350066584621936701157746304169363802542115824494363253698050389945419709704364064162073656231935326778710202663002459483728294836273808780349200962593124387874590443929323459257116347355553889549978787401291098878834227998882380378663365463336714852323954609579874573139949712563609403083773332379732984322478529295718033286902440268469357087658666019356257470500241533120917044134461226533987985154978753686447607794848675625066159379047323169370404992987800907218219210054775057803832505415841710348384035121295245328268720996671124936317306124685632602856024977164583397661790627203317727982244978422627838254151859893347172838184546364602657077345610556259057148937790162475686893739640068397273615072021285106988188148933709321778320392597032674701351951583547545633210874819098741606604749886601803088241930981279429204350239070542256807839524572783739898454381325617535856267830273497827897070809827139099615738984778609473024770430781864272348613977374743073302516321061607580686307520247380730011105919556844930304521628758129773868818702772179594745709371179166722225225081471672142992844276446409067487639135391268642518465029261412363670100248739282184170659305084493805615270656077188953277931771026202515594141567496138729464633760373851618897791224138281109900954261000316004233394022047914684370226775301206546656548064346552650416479148884955868621627080740195112769852879455005434937425373227539713164593900413962522715469288999129078294712024421452916368848798925186051174160449198193989933466848670641185832576079212076268407790932425576718138206207097248176355452501597512021193938373298121215323746358562509522397185228377792373100588852567009624255860518316968736755061469780597821407949987050335335593894190440035155086336890444348350602856435099150340872310417851043527663802887012047882458576364366498780597546566262663311802471179997281811467728487165495024023523310362732008927079263804036447890021949519012198941642643658664267854527524378076329896203825598360772465978902714887338359462236109303750603812764549980901401458873777196968732299572083211756337696860141788982076466577630239810361369127975669965762705128135696747537327401512571533727772157456156450244137870755792986716810880011221384221026431276826737404496213521160315310544468928140794646157128345700065521349911038085267875355191045221727342478132286111814818797045396667157545824535176865094931573749541073785365624597351740246366494479095482397862688044005963046159606550401620046306416278522402615312237604174892844579253662384302377421847641271862230456507724586561530113248126377623282825331106862276040837916511735075836630334723451681219197646953257226460736994341828972264342103109175608524208368893654186642456785418581816350560004463757981976093051689783023058794506914498341420610041843766290305192343106733605653063731026461655468054008984935494200362030299505560423269727685162433196108175964243689275807539855124693767041444423501933526024660161660625465806701586851148524592380582495444600195609791428192103505359332569431143356046388116640857997639185569424579906080463542789165705779030929444676278597520156384614527584710975639489971537689463272572170162191105664192283488643383926391531001471864751534143115559579501235689356168922587374108499260654739814183451973976969971332682224352616051600656511085533285890093909064239614131217424982180895764772116757181961024784568404467595498970696039756730849310092492502553953203025680916336974605568128698653139581798899788561901499695768039232653965139851957685501651755278172746620629885585453122511674297152277123016256907530719711425101976043691164335313366914466045274444588777709926061581841790287353721693275236819000883663802230504379276495757718342511052295232156104176988387818554094937508630888173702688749149667234512143497528061460002099767420876973302486624041052271648301118301311613922325292647142294388525545947944486505408254065312431184635041329551612362558914352356179838544076523320786348233404643817869921058747173834569040629035819084958961264613162968953257636905810862066997659367163224909002134770326243526084285487700552926478270434846054650358377656479863589233394141509690777122567428962701888578051204697795931404559635478360466901625127434978216767759603104272380702554455590495734969016659332174216990901586519740640145915309004387497193161065133537611898020673683399245991810165209618583133933651667083855699876957294801898171697024246252608063402440681657418889467802053709511917258231089832817888079328193258746675462346532806675649516853046037007350781004109219848412887599994019024439055805207108541464188169475884255344427704930639390663200335649118172065431978160052144252471845505595313086470794695849610870615245444966702912024070107870407321739377202484406204367352793228003769508997295216665240093000149709959131422087651396051452264888174700798898391908121296670503212757176995520611461742010623262340557643214943391559184486088570215577928239323507856602088804515130218509595405512106994836714811913872853905682695748466674788039206790438585192820683819621905367925557941207211912112982739004489811458610309598356005847828376868857602704509423367124595948004736778169084278173175996721830260061925243293037099668237897223749954408535884043906976981333604262931733343191559677271231649008877610539964192090057329570286036366734997622070906140935985848496483969127580739167129714004638895391953508509822059710496483781285665968409350285665138505457857714578937089586612042190788695715527671027912071047036996705464404560628977753699120323784197839969143771191250664204508189007983174202549282128641706482550941949629081006144686358867980902087418395141949087217581348228571794592284599857203903416931899137484504682573288389122132389690857648559301904248859487718243999722419676619406784687632741953930836072022936405264174221154441130421385982003309045438810314945180355702156221009552415135809895133028346336812422374976662081628324288374664243191786923168882512208248121712917721370832925731238991619482322428992076690091518827497048880116960172762155376857009897217987736559151392511827059067078157579452395175771691422531656258076096856257470126005791173109030399913854557423460674256507116262523516297949117375126305099611183934409604033870579234373282307592792711025097438407500398911872568002986167328445818041052823161493294962433675362913848961011501497070610993238324736780336409695499535352580086051704703277266341794808629666716829008292570273912651141761899159769655832599689811107823159676658522674123492621090001077946695562407729249543529250399563708747066435623113821019367423518398123176823936656912014395133240212741572785312809780372485099048327085220025429746714394394010401209296785001770918981006817608008991612352874088944990640603459172542463255206071735802404996706842960940515288472453743738015160922753385256206331157239587220112575897174135144012513193744378871825564620142119704688898138433763451328292881573634061871740877025863020516691250420356310650167314200985347896559119979113315052037884662703174330997169035649358609241971104402611436287103260019773919496279997349563108961048927335804869608446930316793463033782392261235338298377281462252220309035694883712114025270302435846168843598026976467616161243857336590277063911133963355493023468257197250615567472552479445167364168890759841719390352375578759900635799604778374375007546829906308600433019015380176026942689801932508018723305901689039698720571627778000062251676473239486537181332721058003570326605296537406738902017983544153365046436507069636111810966801837281914864157041959838689367113196698466121126308248519000817102165774218356816481841747456139012828725565278463471777581452450864486183741949737482480092172144209530891415603154968449902327964178129534897564585660873862784688606759158428170711050681697302603648988796944536239343423503475641151861892412473106694283876637906174345021811025967608415641373853830260092846572474758470428422201916279425502858220138660818092169978908764994047706295833902066556918188531307799696477546054260148899614190930609941268269571562045797601179913618719737117795715694646720524118812750690053127688259602418853745358364703172954115976033694220255751683878499536942344049232376781772041603792720230137525868704729680054989564927796514139163375035290765862368736714814369610130191788659072666143929448537333073994740242246326577640676849654472258363707398999194974819188779951902827640124371346620072896343785097594628866983756811479470751356025656507003360049237269637389481901915531572813042131875238954469340188058746903744016083076119630950871743580012251701363117274069891161487053117083198277218697883828308244735898893009739327150499549070137642364994701311816947912720666887499579412913069440941708322376995919905700325533605358277374359587564413037649495659532291772152904865202230367515205153862546445559440687250612222735786592888768117796630834259737188455409019542447281012482086381277670927775574266816968862411644737439071991750143566455270893566567671090225534243603861660436166345744586044363494938096035796566410671539698210088395934567068135302014292650977448270728218046002815203750932324332501504818880478449515652700926928784728417567954436872327692802250742382354902304926477679377539317189805278385431536081713217222645638145472689988400918977362107021043319898951775482316860608652025672572420091453840575257317928799954904642219878212576264796692672174795067298780609448480196293966404526127982565131718417669749663902458637373492371003016830156522875542704443805728134505896476526157750133667168717637316577452192331938499075991856844927494949876057168720369360746306621580898865484306631004529339500211632159168155333730970045477728848403390996537900124624772996420279942999103256517457540272970760089647165193806811498978315409502172778825025438065345089208515551068713972069069152719571933696838939059329257729592394475044682306017817345487204289327040241761391827856211610047387203209175101559191412741947344650210813628573057752208327421466860206252709612764332734722300087893463583342649134053739136614924162151034169835653091436201417284971002605355164510475997982481621894463075284725248291573585691794071647913345129520453199314284147590877750685427484723744385222076936275103730293333115010719160728336480361238363047298706439732622401048573186354229739981635484222361562751718579930294167546903421973823491893749416220758569745408065481839413125066829824786597129038573104783123540487977716815582591576116952334295560455296592099902286621855587726262418965080973190062750415275407452724252290125107835040067309534721287934884951969150794758242077632697178976498753712318641483549213975088682517551097322746652170530693917329782237319736230117385076138711777403501094845340934808041507478552878503026106964349006486474436858141947586667600430858982799957327149355071640837599146532343545319076455297653038659612471233341141176427010504552138955461013475771389714936242777104561839708674321674194135091307616376222925582155347574926644342509071416451562390397512227343400875571810837360588640880253043445974858664514984912806147940606462629785081741503323575214678613427867724892699655038973897646769520804758743473395702975468887502069116148861418301290890088427889889687254027297621003824056172291343426842913839922553254082212425906131412619532346791087067305594542466107545318562562017779215223637911293846474886046105841370754917433143564821529187873274529146250775139335272972194451845170809065341066242941569535568923483404416581133969876641137014254513758138411011692012829315553561672071739757547234987606055667898326670210209358377302175780785665598617752611393774763262224458435183848444736488679617010795485007483798689606274769053573290019380540754784859171307177259576492152352430780732011568763120256431506138202262906030932655571179958499775636967843591056934936043012189486505408954941627730724342203892471276522440082027290507833713849346390108305862197693575906209492466725705963953265211913626840781278348725836910394471591002002626723523593719531341064444450947124352034362458914872678519953240000510331386621336271257750043710892153374229983112570519013350567977274811317265393951895089581093011519811460571060103717782184001188813941091047766147780908660587924168367339796630273898504583378725501837034133492684251984168700141889125692750133761426315749945065677009282598633328585577694113678605275493049472543481587450090491505051771781666857616697915380626345307680872631984773701419094996577035141972558303901416119320166970358121825314005638900074226767896674391190352773424373506200037420530315918238475593754085396667866779744733660861327269688249865062381506100994999921539425389450151728114601747174153757915784535184139666395621742659748027311394655813556790675324049691249013622565183138258154645154107395604357222503192729943975057659868749632998868004200838270749416249575639273676064152953089823593589840496852922756440441013419052993126059765524362213745029432626141393738013336113038525740904646746984784209211223333983195400014626125926067165781950632999971497707722047917744962262912172986751711336373002936661550538371503614037319888482937672349442904165551371544297391903993267029504176906220430967014558119129081812160193539850779809428668232539932175746202690418072932988931369417717966171002656655757321338290892134425327048056447487638773267163825642794755992470521067820199596973456573014667540432038099764422617386666406854127026554126869900708764529764014092997832824299375801716067109467087576473372369698494191076343238503028960170310082912246915697815912847591645104949272175503130590432809208377935935834148251646702342684427365491729954693182731292607580064397095246573316467976405484967331889680243765346831610106245088228877484073964558588539679278067752918597579088804827155606323527709908149114678823815471218823492709065659790257377026314362336514755687954340843511826248629552495715164482976198786143375162575372497200324837335195879995208372905171847626952974990535356181871344066044052307115796271649335246398572694451392407001638027448875770549876765986609384265692158986771634677610253095119920151739541982573555203700345544605117175446449562885209524430698856367041901055229531983117048565437443625620140025352283115056949120407153106894028196270429602251198418338127164826999591483668252953757717974311270916456767626888018604257412496722870478586836280261344797552103713357170987061530356595113630183333459687284019628843131242200970183707067210512603270569952952939082361125493002598503105360516569021626413986018773489350454252319452417227895102937108356157093799264983382870912317524760107263580987273152090484002882983962559981743994449056793560539074960554432373530292121650695198300320313142743730948178873781361527060535365032081930009240486266222111920357652936075929928152440156423684292030987875795596601140036604100470549811520634665180161565601774199642589099572869744797923510216524785720906016968110621339048822451763715080512674704260744525616763826413617578115377183070693127657531551114718409573249358592416303478014145205601747759827437037415388535722424943058560520511250114742262958578485356370684703411382593184658723137942555157170924847431575847888021053472185817772803873415316598343457060924578176163850054152094265697635809607860122272949066902364555242575758603181168190891112666954235383718458176705549174933488353804286239182978384407716113628844277226621096996057886439767645040923790575426629299050093290325421175100048146637276735062621487192015653625649666575505195351134358373437587016989003663022654779676174735315888204639364694023745639339542375685254942749912558555718029659637572472745372418061025581572416031539070967462719002953849066262478014376291239410773905547962562328525014443060420618654104272768362074202227816921804843369385338722915276144631432016495424189147368650648439259212943424481375259528153668790343891340479804171230144851586246856479252397973730033248685341011661768660054212106864563787600653348840709004153834488145147265479521263318240606411524906208578392250402695148988247994447024813129921680739849735625060305120415787625386869241038333921922228636286323109680509259987673425753033285915023748821973430983816704596344657649042680450981809562853779019296474363260767218209119115444201102169697945264165596970074441078677976998060008851307813351686127315236245281353095473161042594427632444892773698236476727732494112455200216067895584314751618645508892869825246809799814515086190842337905598846858557926492549814460503558908279921903200984167471206398451045060432420803622550246182151066292821874467396020576088218133553491053907202104505562385502203026363221383702323966478179145510186933038522617208523524191633409208693672773052841814477405530110988377793621452281086612557144579265809816530910355779041973059938653521406016915651593262018677483699200463959302631462022732570424235831774793586574471567060917314254234137397805624567361490633162493718391317105812104981641863431557830248279739117663776370041008296474119020116291619234743388651616267835731112834706205062922207848845008180008816931239696446345382451141257723526301317074891543633432317342724146391093389253494753682561321508469031106564597297246351348425956797781811189635096020094631771016892606357427680397332448753027293315862674452341052617097576187886320952099468316914485395196292861800945638612402986949299170556833551076606256795488748638360080038969664204975328531105059960182756459207470371100945954346352677612257148044702679143120464812285808441166856317060245254601467044091492279401268535451153829166587072212783610018792359739529784346987983129835824142704486573496218885515878025217629601442561766573631122994840091455089210088335775415260729206108674009965747979700837802960115232696431236157855529219857823922864037773080562524978372755510602141447831914918818086727981294479567930779973215849529180333594120280389932386570433729286321760963443562935082336718881644841358611424022376921137566934409953441256804185984159075105430999161193621444884017463922675739455177829275733040010238852788849870552649036664384772339031282522565033188349772964390654853792495341336518628876637844479975519402500477908559575956877405183527288332911084958172681868961998143997566959108463977725917418064922453120465140694091124193705059647418849371776113457680809677254455649866941315084213589551436554651540127276298314116814180840610441981488245644387335815486471636428790016142158630001381935235065592410384119920572149486643858629896345182868689287740611759835364664417785211542671077514420926233934432476875966688672174662171105404153091964955512197475769787891000906615142405336455954133808328907826641917746467047503016549074267288046539872574747260957160571662124684864494538192355183580962066953175973228668519589750202407208269257473662811779773664486924735190414648817620040840360158523162365723473745765244245369847839730836152747150853575832592002740808499108058525642538127152708982431124038370895021410452628664560245572851687172323732303662525114106671843639005273821382780577355871070229362467651044598227997272069679940523585426584256179362161057525843716589796491461325646217831152200124238554659299971269243278088473398923748466808482351043946844155506253440561902370893308180657677624131470300210618709381033311169218282314035891177334157226257225449917570295903319812064128866704264577741900365560865788392371101477197397908724636982627883994765069590120237785044873451194648841243134015579654056307550940629030683050478614846901252514636824459971757655360783456179066050985347656381377466107511723848334729002451907792973319651857189203089912816000524105648514013326276918393024698948001244891389544499269626128870123950526666422774122957989460342182555818471178637742991072368050735767287114676736564606976474997075504831178739016944837393468364812420429611215035199886592392403742877896350309457567416267382240523485357944785656875661339199604208632224057245314576300140376591135597339355600245603518890229073285151942308473963698241673539034424956678112830077460004091910803094676951449436246847446694084502636275879532377461539985411824316766702077456693861954495172767797666994511760810824670352516181020106531639438250403065015658331625836927107034314485550132540305202498344984046537605518438012726423329147215462731584310573493667312449996085153207006437539080973591764671803096741976061009328409524517883435863825623414826906632341428883219371616266485469078195373868917224177009724508802703330936738633661034484963401689431829941916465579895143870542372731753105731549113794658113204384048620603477695608680143299770839815298789302347888264521111673132734630037048997090125853241505949966395026715934149291231149374982401036034109162774149974104481627328270074823978469818140626612362198319990019578398001153397981820662908933859356897736575761306131672742243888590799772878818167637568189438506899287681219106580244980975314579601786423499983227272924248307695990269612551494503533800765151076320373222731074897502069295002903317849993760920496482301684722581736184007078273135738091443818647422241233896442749810416639480334631981841851294685341113891800479039905603584960906057745916111992868198743733355033280722419222100121030398023679848709600174710281673019311058314553242065618521563062586056413774968689217734863290909983922770600696748933896720179459675272958000640695262780989741453313419380930435106868848304942836081079838112541221245772089272752363460719979752350458585609396868102006699434056210498437252699483212354424222205846627776011326889006050410505191755422601800030631119362454027367933431979902963610505009490284832526451569454495036779798372655637315328398584730075014218082882576969980775426900779204747558400621060387778909096833685195923248334488880961450849878216506073019976613042020937610708529308104127490650859439225260018089500806133756016641576240533199956777359705064553605145715910644378022274406646923505534864169240474884070749344066365109225597734194827176590881053954475878984571843034137781766346473110991675449685447147670520608497665748630757400829369176022629584503788022270359311102141974373593304151820970195700130755874391340036132540000631030100455903868125480597296268707817310713809238648529077928365975003213767991271209517606686838840634498687055268493779033582090771910998387967462219474593881175928192157178253286422879352490132141669093407518501194209593223493667610021538005152706988636680797048367535278143542668592634648897532697337594882354698935575865792888077143431375998190420821818941168008237990356088959657229816978979631763655674194362372672465345867706912990103547446276869747045200947979443497082060587588799857878190820936952695625566696245971499495805571886177365800887565166016778725551748996233748281614832741759791837336047466928383856515791061705928483324520390186169166148599313519305161356537625923001486170270278008736156141362964575598615792759536459241019433796414081816671955271890272592950184416261776448868349215227903178191396745536618400379467684897671706867689778109903601681172527161994838706210798173560937705082116023155997797066007868676189614138707069776842375262818492906969544213928659984272277646528169568668055602227499351644733563663833880806946689311743164938691665240552828589826805415529686991909993339190481881842133298330828767894875645447976552353306764085463627700403501654958839772426535304617151616901335061811134508836332821142818619569862387961011776507765300958804696985093041511920445281056621720472812690525872249419227580986135176048847627911512968717956543486599513510271034234472469283681324120058040755755683009648360947615280844995199887968795121043730066370939235345058744830467040953015606834732348935980139330571266175882735646859187660413324130204826891104039092687135779085060405630889214541215396038256596253582009992575741847042151687510548064668677155344079876736961959488804041837554549516361423614302304238043973731015184587343059637399008815774751993897817412161364252430583180945842524724614690816446356850863095378254541682289603086882045277249388431258981946935237212410406690705789567559457613298873732088733843417373468945235308982252304255056471517159710607519175997153791125572714346685093054606325723699391965296458158887608292823630628647317453180933054109282654248078290427027220879224095944029994215128887470869287305907267442917053156268251089766317757879723919756728952734937483238229540843678787262081907005619878998609832634874259985807952822894000363845675599082170691002974112586630953961761393464481999750424529947487823051796354720208729786781977103912631901377478834085055883777102832343582300082429914749252918991595619564057651667727404411649597112499892715790664405614805535555658507841654384564908199603047136450837671073258913181354828154774438596978005260136303318630200726482338696050346537401336866878509169821230436479609891929033793883931448008409735874879380587822974432343907845700842344261430787002923570772812584902411189668098219587985011928751127654142124589390173353086771158371277374546816716390453033600373706024150064841936403483821175556624318988895191571821718199827651239374718735259244447000674564553331732203692209291789991580597537270183242410515190907504517254745733483459934765658974032818024445968568253682046137512286638576050404735935061102151797860520161976039373277727249539403060525009915796340732930217666859682076944062995384869871649712741888659132696326403011273298909820504434067323878078690261447102891975731672423481290996710936072961686439510873986910250058528806137377004608492493559584146790485829444475192212953503415836510161667583559721353002990601861106435974076556668755352100711037061335985777367026406883541370175150888784900591626192579765853876890391253086336444706041510154611242884698996935996340427548078625028089777199013077102332372210268102353195455698342743028399368317993344833446755290463731143799154120295450536237605343641553699339891573652561603582531591769937630406596682560358453619174435573618465169202240271614497055906714268652048355944324678650121611088306343819236119140475912560579133309950419125283643357741710143700228217123754653291530915711050822851697589547226000928081105503072769618147302102695472699728742806180494550868858379745080757018327523920629126767788934514826082697131119913251400450274233034683207840411565559660007607337523556040125688918524739329612022395404255553471818629223435166130048729904543638937265094652630012381687553365949792843224001503896168704288168455384628796834643947964419942184423055901000665966403954654614570544497669278342840345098097657261715196877110179802429620348296886364551733190877963202237330115028097447753253210999068487380645224533406875010396201189334274992864518530614653714115283275378173529813511666331431973783973768779512758538164596550568865407445697650664373717246329083872919539614248424043686926766749775922714925546173384033598499465362011847955421999732272879192566255235495433367152373003392008459334695549731121298919386470117382507906684004769105535555632564662500245813942554211347114522667836247463501298140960766620777451084248396135386807840783633884826317278654716160713369009720837655546870282761074901690175676097888805929033830634572883031421311206805268521813001763959294957879993361831198599481423335300371443047813765592584998875772377044994006406712651233459322511910447535744096785997119539417069148277185629986313794928348918981718618965460153406336102065896895275690198186376715374144281689578435124591109435777037316911061734783312508574589273612717239931386139755270315096163589852854908393802045436868297603912843177497678311288527471143781581303245786446880277735420625190881642143931304148605260154517165158736882341872359124188193402909006057413535764245208108696671402963384192064423754478683346531286849254519605698859649913772094856556119566753609795154053186513791436800038695094912016756161746610881941985268323715106610408244516715826547744541418885857678609914177521380559021385928476128755646987894183653803746536163072774426465558748065776494381331163795645819554606714782476563505112134979598551372118114461148095968396017340025581619190555290367543657922924894570585110629539193614358610710136689985871152520501158570532097348115609940845868453375432099532193802554679282656992840243125367124385025985636053844853184913428589318164103503954186685861382280162312599131287538114355013076334770735813330954362398971318233534542542551913975137677710765371266410179368248462448321471980239561974457448436474272856125231967338942528853150563746191042667467908280710318221660208888764751886594515214433246599821754788642602288028210489414066447652434031649559010866902194081179706031121510789989784642150630474798752217386081679564008898709738754583071091358502552860832200455202483595548088755157066974481034459476477809709819035750771623899542397693160655325842405042437750077652455774636890459111329503773018571765285978900963866097452576778074051837301168530587011930738524313751858873354065650473826609064536185480622588916654376336584115868921786196215287825910015538555527000472706138412105856548580921652965860033029759223954021189427001731213741258757520676456162318265883288887686116532748589641156824617916950272443577127689077421188643885430695076842630134506595139797001056727983142862831078341146684899903841327539339222066382099445767476267811317239833666819484190805888907909957057168844928825521672540991744036969782717916445765237707507370364291667310850937552906514820583984060471129355111411232976663680305166903737047813358540902092064567106697217232309632308206692016439928197680230134308644541287845239774065149151101674867829325811865850474635975679404166150506108756502425462496094575775760580399053744536290414546400677879293230475825152022029776905636048227070882773814557717440385872358060377378460500276111427809551343962248481929813402074912485692205576726486112467761927145509916776440283726568262247891690651607623230526857335261232389144955535654678883820740338587876979841557038697022993763586328115256330411352756174665904015966348606082462725304806469525898909029177725479982399142788050716358853191850775054682834475873232004570795551711036492037639295494475955889426677018631387897947035425790984391688984470205999029751340237344379274377301405994504585749599939358115956658737320248799345524903538572122835642517007424891961877558764715144248868169136958427948936827217355468754258082921780304180243684095114223116642310234626477915160750780070574968063006530859140839829971029548688217535228599712912259031045194296798843348943503155474046363054167855148453258131776550497321134212436767411988026157844082314432659637064819924210982214704479655012491517928853683984994399845931264693519835447095932684789213549412669535221565081412057000232980203523224378680871397860150786084853818234458736826862684567592206820674382740932045892898354927275667598754026765726240184555140583165097163799929918694614376917025848442310097141784188172751120708664651334112612142322907413752962784121033675296246036196522167947586910156173617123037821738005810055421703835591024143745127674142178649030852520959328731588919065431603021083530930067165350022804420179899092358846158729267008330078102192379385969194702803585737572238528613696324779827747863787151172565273925108254897861193447504712000931709154023444666745474080141888228969603359758077953133687977036425910208772933529774996777757722488847793454540251404479352480079841847769182091706269779978373367289874531471749795238891331262378679012291335560237214093243268706322629487708491708893726289778366009661209063735557919111937273235106681453301652805713224774829410853577793366507424188562425718305773652679896115096978850397684383849884675281101956237640065077044220285124126257821604885474733339943675257415329436227667145502969823786229465202948410876830109950625483459189489271014934726433150207936315009190106543278944374649662939541987361904378760681368316009120426830698209947921797553771838331517849227224302971809802593211308218665814310722076095816037811930466660866947031181490505091182272321930009275192658184309932733933261430812843350618669999033232446761034024219388495154664812521762204395999016692004793377404098838179132757875896652457758164398646166747206488512956622383052378813354690418667448365481396343340547507690486461422706105200912817590056644738153083924881136789899460289227423094513609100802379526497476163375142199213823781810683789941894438184748818234623131234732139323121515954950763113617973833106542082188467865295840106155200609997469919031592955551961063167097247417133415259919535526743388677779732030743893202123178307312381463723892887177544041863572395336449428893162575663579662427387992552753206033780332159751264199647347275986569848037214764742911802939726914949209184229922566907228644864388928924972273057862654173633931074413718711563007306732668732664502999621181212589141352604282830158599318309702963972629511184858019722783815742685128337475792563078413225876727150094159889381455122595273869784732146283143497116503047865553475156461653109606522909768697186432752194479020804153007750746155059335750148253553123713582346391825467363319452901125328577726903434430895918580214480795143330188168961794553389778761767960786803447640911210790702999743468754180642441155188693208345927078986781172665111615247586761925087602586527604047010901578141031854844306546551156277352757532955878516396648906487624145310162591529862493548543386220251380115407768805728146924282097039409406861865873702715685043380346317773505295999432833632323147404163858144588142382954781394433819731811137657767093548010858556134482751595223956769502131468998442197586609617943605862748590093036216413426511220391420990805412058853834236288541946542020715325643640210547986673198101884641552651253791764363516244376394671789436169106163613580341014412477000842259206477967465937843623398325001074477543990030705081637490634559299370034848622761922791030537019795853784567289005697099396798873153477912062624677040399803429137816573941501778621049596472465796505131246483804333082942687099146596147042582964812588342565337409059566207686749226132543946316504515762225924294944498755737326917047411836474545095361417546455511233121424565173751751056636496238318013162978246623602721898340023630355045589941931996252186792572532915556561262695862778951811763486408449624445090057994342905391009861348103692324925027803107560366533203538992939364045534727198271343386703906559468613536368721739570125734041267124365867377294935281224515358430444534877601234800752074817615796099675947823337629210595955428263596144613446878698434908100506336335789340508853767800471970341182297172474645147515466780258445796172929109747259935050888146665339826316090735154539100551643779862729770943348090921070952823446930225383281620770481767792973741718812453981127598374720481088461676957799078476840694303721724968982147638344795369776983729211665351848906019625475527948983473518840895580244314391604958790260048520613507223883778165207291552457855863792043749213422111163071596417381259541480401533792060520512803314200851856924072646336752951480199234222671308539137218735837230481807651450564201486172053234270655012698816414445105680996283675103573435564291978219431148822422374161178356332998899705513872954483317682945363055086919908952526221187852084936724396375034356636172882270529786171521588150525138079695957418635577718279606066863237176844536302813591871197890709913178863044116210876957560122785474430342332538169669235147937857958714376179804962531963944931119815399357151362841192645268395701153659555145301177218501204272837763394272928808643064523130431988151497857327465281767011282929910165728377411698160280678599754417356294876627115139681688974715832431385329042515378898205360167761477657211839822765968175415449527550171499065948074161875084447801142882533909399815599209733364551797044217908155375561697525404830013659627695729604351256786567515288443960668443788561192911854618079354528270444049062595198097840588239408375695144054196885743032974942711750505891299340418415564653859817397411188806031140411587066546499431902218801677491721460098540892264393781198320774537154967777971642881071413960080196748523647372124632406917785769730723840638947160100300678984347870617156394648980098062231646424782986927288153256045862915902557552058093161978725466655960229305122251705402532838247475928297805942568737483555806294874262254215116128434266628695866360496757345343874642073191347956202881285450721404136355630197707802153667584908226962475431679499456379143919479274923609119851015328400088290915443474201245821546544872805662207856378886357451680892654063744815539109871717146977266673730033631603505293567670400364661094256666817915291847878719733233965303203797069867013189912068060436347151085746863069640365272809744427132505207822565231802913499154008848583032706088467672912445428545087938650435038104547847478151621441284340126768431227880964799767620035350325020377187561473960998342553784296522943341620789693678134635986953100209823818795270485131418977510770736848908135759830773541448152933975746848832083870788555713782825708338552522157556339031119713174690347430369905629843516664973332703449489135939731268813114935878613232197764188691679512764204111575293806555796504436345518669374010710931491932396148579064379154520547692596607539351395430348918905031580615937276454985097041886007611075104221315221842110027909621773454184724029332710033476376528974464856007993635952065938643085816541007566925772256969292573194170764121559278253513758551565035991456264483795336755230482208871921915149406456347683745471529028308670556245192432361285766154610604300943682081531479568170194441915975148361412272596544907760065640939976796428107487928112583108038633131304573271796497753622316216144029509758314488934281799884950953768957915690265599322815107125285578952653644683911364735597429162443978956906857185654461907722161806175782197976380057765404259803865015578358189382938639887684033652224060796551230389763389755594575391185166060606503956100137370531749169916326775651335579577196438888034509141618673815690489238782195932707247179383218350159541747893042161950991593681408262149058162554990907098352120900906260615909512247450310621239200479993186070148719848198288877478939157075144092003402840329695058791839037764107776096408420822609703847860177213900825806101807073960015864089726194675081498442387751664313608366648189697420135178481068219759529647354103534223376414610612267306479411385940884429926257299039037350189383822549143312962348826533302384153799572132621718760695002918134189573099288942890536702042185452568301301622456716242952851697327971950007213839392662857766225260824944765910550401235412454359528755614500047947429138111787116679994050510706357626414133829792944196112961804936104238706079087867697555407396997541089728482020471772885719000574387578850178405490645582080771653730726663191451871903495220318666267819051728270252641282810448410060791478412438568508754745366763490507398383276912114372386268411607218740181040507547026943283360121488686774694362709791125039350078904140982315912777981520884055150277576185436287380613496424423644790568560188607682525139412471818125967345612236473946672787531976115963738950537535677812394006303063138224320205561843363853672104746981254872372774116283543077104428258456988286800898248502387531527172639798210683939068254776747268823262198564802272384104628615844663399804718143984891596564897645861162491512950517922159632636957701197526445020495419658366497435502237435427650080143722109629146335748401639058019240826890111723132045607250894509381989603386664219565112107334222832689397330430237878909494974741100340447368634080762348167551168990527778981039656491089474206013983845025232009404409953058565737679013937576493423489955855425867775635810152747016902078036880995195287418096639339487579523813916773576209623314096950644587276785285829914500708611109479924910322418549226962179406896920612761351864265264703934904304276581244861852812358241088972709188662616574192303775332725995413607585365231510137534036650184138497470741587450644312993455336818104239567372175207995411288251819057089682996117875466603157564680737306624567303330887998445394388087484668620969313493423100398201716340766260917794607142368813170140753033944614596534638575926393055097366451551870161399204495997201182268970889211725395830959790453002670755812415518866867513015053917530924244725979030661410668721762700089124526904625623195050374783341154676209390865720210769160623333353783433075156964999162994281135533331719636810411880315426195335068784555347181620213816898769644157018697621451258641715631851156484849022908674636575792681494747826356102040826891154821986318687229326922211124353123870012673823147511426757327238697796401358739448475734185915444835400215612650895907791870389055544620918196528468669666627259091602584341811962338704255075170986018387659834385981368288427196293439706722841787857974627227948486241649718183403765374824051852023002074780767792357320596086683031740115860822014354669350533704306792524573424988352817621987032620278374888533807131982653921760529107566800135926619570555662594129547914713671006067752243692810680321804571819092499729223640608766602223187530592902815115282992182011511501920306126420526535033304350053821551665673306342752170436772613002577173148934067309566338989437910533188533323169773367759119041984766866650727282401837399340605022107442794016459003546307004804359827016516908996060447267735323611929547207769086729535318060782678790617810189908250850851776002208563455769405046362839306655607109210509576424840980516673697135712283806245723316779973452137832311991369420659795438598202738895667487653216504847146548284667504392025237007307504783223033456328704536656217002995127170969782221205920370439190981512309618745345489529632345750326058660923777619686727909655308658902756914793345952337626131112358352386745941171500823995694595358398997008736642266127913632123386219228412833933459964614572883200837325356107228655551976803026470818199870792020067347063103559500681858812375010710213458042504293303974669353945278176998444988435821958781977977791906662994936806729461902461430057554673170445942833653507700558776896601611238557027214458468378470554144732989357534675911801846105890592237669335034539929988424060310424134362494522502740256390324526485287204471079399723226961034959338764364857088998502351236033334152329494565775025738960217691840677804265922723556164833912731203382290973698470028113789362528359379137592575396420254995220960225263273826930107028907924051956631854586408656098594717064062237102735661539698446694355573526552984943314141115032732453045244028805136770332567124614405769617370167944828503305369599636440516439578823732430335300927011167118400269958418158295363756442634817607363539905018371945607014952691191145309516859234410343655847035260112984483160705466126255089845853954907682967026821333172119510415280805829342975230212071080556170032137536603162271576123658373692609610382541363761922752715653757770686334554113895965509321821571603308050793550737870262129306452225495365231840775476266094700793802364345528758562844604953478219732772340049198828923466155454028371746015306342983626224129392313543378463780796524382287000185841897751051857429461761892494013498717476865456502119598151739775439958473759950088163611174728284599713216625689892753971206585412628909448390568639892035667520912592435634612633089829969553562953663817951176156855462236316119242462645971303927277822660229755168715940686299514772617037259391541607962707524225930595501873786474598057026192670910518735488178091746963452779941663901162290166642590722713766083799458758757941501972551200821761820650567806275219211197321078613207094651668355236487633771304763074800514840624968623500933156947327239174191299701637301528500828098523242125026154078372916938132312640827253258216359929327114185209198961093026198142820907396245466757218662130496612663974849409201614355068347063304059585395425479264712753592629420794025138007201676751110029989349694107406283040176806427283973900180689342336403656503017202722344118228856936433668715049486041664737791863987411771080535885378010910951378778266863773872843617048103229929738864076988067689206118478282433833726877281923655332409156899901913952262923988649850403130762363997615631632222805735527314997407312502133795133006579857367813597212751012734752179789790040225380728078918727877246856655719252900565569730266034520161166002978481811927351692748723337830140001311295700849147917417614817986651927874748813220190327275915847130933837004391850626067018660324476769455401305970252864862456562226993800627582608859532342956725452399156676321505202249210317570824245985980092467717240072242992613124435469272882592054180011794314732518772812192787968754201899349611581013014013805002759938847080790675894606993051777434202602307217139172368833102218029225717230207653341073982398292513496059833161241490899187433381422116060319238818369139656978474310938925944012291309078826029239705656657689787820226645136358405063379253301967302476624993207514081134426624070731225793436563332040819420452982427094204586648250763360979200059286296056931737720099122027200612140501695658272683263781379440532192176132374470867439796290656274916098294570918898597957753998112241102018358849209927139831982608540807667753716730671321614526412859235047289434887833620489617694527402733712750640318996358362090405237746188319516855407267820152151759725924290006859204265858681474249159201331634203613239805564398472408663555202306805262944661229952548020639016138934210325865030052983125172451652482736192329476775112401533716988498575983947976971855930013226215391939217078834883504040594988349374082641250590875822519654461255969913527827179434549164702601386254595385245055418619424503344162948347671244828019139754690862704257392084827259322025104839709672805792651277368550558108726838028655289789232641832390882619055176323186040009866666252493231533951794839009719269833410742654112541422586588079683360421930189116142791061970051162222193376447521604221019683240727134076315537305080763512705261522097918921851807385270200430953262871553120124986557183456982680138068147803431138109166712970373435697079783565128208993782388917051158121918218248507510726672964705639740736724899363414193116755278914729205563722647120492386240085666106505978157560875070664078496221430981270248944588242051519393971281242845275223050248311903170848999650763832988243464817236777525496118233831809860148609405022047694337976767057728052794873966120971662981535606578829057051474869363731706987039593182990888559630646166119472130299552446515215104722667017572344628892284559025667938265149988428396944251278249932201210276330567761598205283114928877328647016833478002206381168524800841247899006015098371363840181438010010522655978968764645350170259734370997042142101043992031380950102064707411553272963555224306736687789458139714698123358086519691050775202295014746961522766181857002059488828842280845927337919452205286714532336711869729951846574340852109257020357529040145916952984687413096257137007720330961315136566655226335222204120921665561479364057113281053082749192420072179275851341578605220088706449904783481029693143160195508769861729473655165680450767155141741316575195184718277162670165150339865442192542575067289951333215185991815402371345983653733351338761319762853021736779133293105891106375954595702494273499073899316739707491369220328932848773697661635415710434084997284082717201017069306482722397727503301798482382832069105693149501890204869054155522349766840524696461402978203328765120623843073054717562157392100604175923456066692334829400692752647185185940574646074439759325837168253184398007931514376235035291875394047817174494554445865845814250662760416090171525726367568859886097097048369078802539983847785499241922675624142849351486224704721640873227317865209968516172047747349380681180567530812211403087754059132874444925249271067656047851979924646878372994408030258905693151973414703255911481362082193360150035287518527865828890813339013094041461783485920990242422687173331128930479767049746749350060933524259342682167417928023862203846013323301709519508186633394517376986583768973477191304631097387661910900071854449947835320941966430217775024444424780098422365709560670688870587611372338818229254805603607089814176545347620857700296160908794229449053541554560388262301068801220726860156945534242177664145116443220862875587100149343469825672632413307282984310410726308833404714097851109234147471813533050104047584180195911600289157376222877224860942196407984309896642789454540705315912795423332603813881723794045550712684026780055759070300746203154006726281796366167386214549580642128693136704375662996824583950896163635885236739084125369809077207813962394018145159312935225905140289969476995115319071730947144410864397625787739615733509898380885250452551762786562756098902480180230365183077253753882825502026080641203953187965654634094390147644210726044393551248189015327848035597614404822459315949214341235187533515814573429840824044256814104414621726938694127845262180692117562116131752635474261788200962150670613799639820151213768619627008606769125391804130755647454654474072111077305474692399275843791428996031025366051855675246256651489708336167539526986617296311052266281499424874732971198923569271476305212765023295745412436028381104785890555935026427168174707928599005592870451995866857359914469424826011965098926595288188666022292747723148652518646713360132184935113850896283808137506316017995813603605989334272818438147730764292068360602713757590774623647603110817999719069901284324684415246620250421580298935693804154601872292380532698967810168361393782601521792491912782709278119907232877937734039143765863908172602091060636298468792968794231713509828056086746948611567255098294787037408933212635164063809848468187520234775872065380295771567141522398719635369260527416334955062204935520482709107709777431553382986878584681743954911831792429110358336324682857480265171855718588435249700417450736678176300378680277137871660860488874699795007928622713096440765853783700454917967134814784884257788591754467559482527197255565264485321640778682680923968751316243214097938643158779969299507231491382824730489227236184117161162858133276270081199134943218987030645715417113077710613489984272131151517255089166866400578128687604629979585390706021998445225030577189099653410331809059064810161238960526080910466696470821530392704214174153813741955987719235977525081949507368208854017335878328188640229015656803418577833177976933690458768631863775351793835582366470570572508394423250642339676353412364838129203253745927386732361929752304854330672091801036060329587526250921532306091807250913559065115128485145083206476302179711465262775711348415250481018393878666569447309751307098356596208176172775119526079653138887886054087426162648058489246054783383486459098202000410216878386976700965908904894141066275870086883527340601013575666492887338679634310892352853120740535332455807236301016127873713860736169594963723037011303067744746814034430491214817857872429770173819913357489825365118297301083925431434508766474375149547435367875651505362617044166340427994895485127725756797547391186463162619590028006741240126176135226120640834328696977367145590332342766555387184291036498658419915798805302158980300203882311273745223233244517783260177322661474937896881492739970465525840562403634581883917917772782816407031266876150886211351260774852833244614617973239133306286244256320391515367609204399201698458632071551761658294116550136313019614075610169930992747704830607203582682123104852159269001280654172023226273409849643049354332980774919528586287070967452675842383209237505786358909081300774428051516428730741473355770710518087449616567527032509113224306986566447443467117015029353271942279790067323817809241460536930791334370717588961300042331497062849502420631878423014238294391617883945624021544652110810969128831087027137904148194174335417530521340992546317582082770665735558384399302785214233744480964274598056889608258145288306526388781622562851098572052333627573261103407235660033021725465668542580283759837799538079238975228299990237243295105946959353813464544959032857341012107277480336109274805207202974980096386506067697555556493971562969780680794830395450844805684878859892407281716076629162109048296469210139037471300472143032617262949273642322215334166290392486867911885287459276612672563489104267649671753689720245363415980187944645523714597462738451570439095422359533048994042725893280614296552947371279681233675758447034525528554498780853095810996796079612376451906064004407400285590143355487407814110472314255587701304763479528574548900238035824105148908029870456862989844582824194191120294331633617002440871891579742178057658591514576266241515754746346297959129517651857846882631903829244326807766302697963852739901300935758543194343014168495588802457986322793386234427099765660154363131872980313167304010545951325970558605044117991143072235903560706866855245539543146224366315467675490773245189645009615130446919293576925751374454485833433366485380466314374414956552083087678506419898878580386484508363298351683699665340224940783947001310032701382964158226306656840092619714862219086756692760229004946434796784943852349128777565480455680682254255565522934772050010414463299883310664241972285437327906579002701589612846726901180565958948416854142165368477436149501831119068924330537562920776795365368269484031435336040772541569852274550066205270442861082738574317901700124745993105115043951728009514401735048181109260596036322564167223282308712534944651020512990551494363378937178381662442837361595723758495661217288131493181570975831186992893868293010788264661040219611942404782125877740105803533368343891362113877074200701896037780249676335102134942339742286288526792963212144772096133649020721310997524058709615982497296502279530579756506051277217549400767591168923194501205998192577554550293357292214080340590533470372813060437289962880299053395984076309603510558635627753593821548997063046398622144056668732232764247018864758848822457659675510375361835558552743621515842868051552246530319694877938781054251209523864097620835326813963997927451410466565951773525839728558900039033005097625549882890374708961432889447557484133980091742354641696087393652172398679669516602293867955708305806489348954018536382014588097259668321462895723385886863870299994546001639694997729926757777052516287128851812127789849176208915476024669581173471114602511070581766591971644530712015535768301636326801499331187028287532483094261565035851527176748304751458710114792245912036182284666646537764233143442760597190400590362419196733324871944282353639575179859325424542166914333120035759496925230419019185792739714018311151811718562125130620367436640203794886367042063521552079524828109565966341071034393671426217575834213321908484948833355350927526133400759986210339980776333735583005573183237915239059975563572642388550523326040818110168036505200546056895383564177182118040558828972471424832950635166418178649441477178109629319871126932811947871527342140308329319449987398033028349675937049102609263830998164918585561146628620523160614032751626286041520814184613996717849704737161546446223965957817736956506104021601839810503687254754345419668349885378495385025464641660644682130281784260606527351164772120361348364089157362976446794843917742964080920545872711511671276652767704763258589204445174253448062611264019147442872774610038053068651646704700031484417184945725314671226082601165633203395246310040891520935792166705433534145055297803968093367722372248268267382756192479495122846221510365237562864133880977433748828683315369556512105373163112861180389457079851372803030594763940371455477501779294804982715130800540077120061827285417649794602419419875273973323277748233184801604060777969237280604666209525215421661709269998279587271030005530395198312016468664794657191949632618609965611435288429027572368814489054009549548893068492124096344250148320126116905229267878805020818521289580028687913659213281416690856460367079020332436060941644680264062310583894585267028330179608580369501269628985347722498863362517763151367121209225825274583022623622713125064837042970373096408313123625357285499173166240647025792896782140471141189998674395264371446310710377654066505261628443993173140827776253766099270826366046648519702486574690169384678675480768379659138864663800759310586137141644884797785114451165800804972476085049710770184451069278691636020808253711585279154227936034212222186395686459894805086553270507214719857478697518672131077317069925962735579369898336131476045615676102825363239859154632046791837148148359961489458658350170582969803673891933520714040341047687910595052749836380030607925216995888646859727054607861540408474006108147003442790994000726331245766851787103216494630453673804160231298788764135988276622114493833716547684453348292981827458552246065152149578708611571716728843133804357260327297186002868996412831311676830585230569672224559787257685273451287863762679025130882195844183432606295387971377211038961336993923985581178489762294362425941132155723605817977436063430446742260546898666829421862413023065871155958807178599841653493469674871342026583944596555055661712258772775378384719738427939132555674761226773901320651376763911603279322768195608609805275684092018729137374768026050723437394084141544456051738788621488532347796569848435731268247512081566625874703785365823278989840389485709254954113681534443837031526714011450831392463873118796196812814723407147646269100020654475366252518110653990934148452066963067797959947453774692325757116859576439171760651451508910880617582680965565961879081240654961007126819727222625807179794222778806985591106805665977848574699084791616032472293383402133843195686929766730438987502276928304894523387089991476397251091340001539797005984761087202555659239310454727277594221736009390507418499509786211419963888003050112364506654497554964143018180393252484417626450093357344899507396384051183001306710086017954416140067184200281734259633070368854366202310867173590381582860988030680821882288640051471853973349533131811055693419427740198624854891136843935381395526496362228943479176886597348500996703373661204339920094888338717731447310160986176701207103349015789758736769827286606835959919575081641721897147089645985932120750024845320150000290567196050762653425510076506904628657596650427651536365988008569633640731190889190022171357350780036777804653776461879824396093770691139955795247594671697242518039283187638020048368976660895533963789158112497369436816211371867123753339223747077026510521874336817358281944361336383082375406718192384732456471650663154593027813264179405287390395746986194800176631524520312390041512950918359095293221851751080197576457403195954216811706181932171722669630649254394444374513424718591791562340444614769544082753359635424416705296415286304276042649239136747566416671606793520136598301865745667748254417361956614485409706503990556440963998895704994530833287109277685603959285944473434850420826255811092738168903128181508511534960434830083994363926740882304436581364126456903498873040787753476413933498325995323673286380899298373110421678555067751918280366637556464896532001879566392225078644911331596540356481985973901013650772639385490686489656745282233923244615897865446041557844962817773185213056909004400603970792127963741661365478745184595118694119256853158764545513818874048144191342333892209083529115069674455973334962816045059438103167184117263884400723554846721354061703012747296718895086199929257347641984406299526734155105830224205957308831686779883144182553205273058814665283850780430459902875974087920322904845574340668676572806476951479227751736737035229480868329507977392068159146620649750742655735286645182791131877103896968357269232375930862106585077102610790494612406682240026788403942514399610205281139530829551426118827467964431580302463320876143362765297292178663276777009795722839030761121460382242553539983041264236754119376591259128066451459123262151933360972899964452113767661018119041603159246121728823424051298920148780621510284001096737398942286253859658087806304105790852176656332573355892071585092137616792763666902703109235284550922116531579600292064852592206182485887266162692891383204842713192539659509370311397352505523193457550267345863659542636745512115606356055416299265305674637649618182558721611655493618505593535608412898558290686303377339943878622465960115231355098916815082350200478586731188278554737523962612249758653781969640878663137787030047838764169660597422332207938608737844869364801850704433102424441058593316584775112881118468294299538621061894548873865542125427807368016512645781517808837930967129271855648766839972482724326654841470795017816265698146879930434598038274843380518351807235085026720959764914092436943647413332794282923266234877392613446626667368109587007078654511096035889192643621497724958421893200878146540870928243541932750544023680673778105173790921503713397916761452715720237254803304461756262022096162756728928158970793388197397875197503505407846188451699787933062667488805750420698934937254058115252996482191073933377628074261113767395179116275778469568610651972752450902792100840988595693104305255452644598178716408230695380954170059940549341300995722775655546254848196965676975271796471848247986993071454914323171353234430979782408526236249283686095688793920160715657795255622558102451585058600861834252118826795019968455333465255497350657271958106055997640653366098682853682936432299614290487817018465079401516929606623887784159720295167039928641727763946582233593895231621022328404509262160631981412591417868939635028476530752864207060463771571479712110389981973250464105964803806133022255400133330304519249226810088297208062794638601870302123823143619823203845308364176512144960612124015109956897349472630337649017626019249395056381074094208011074290469959574752648280249383554720214039142073292386288615038770909452012814903292188870082522032455137799390518549658861264679498101779007364298822788449305832653735800308208469670885780838412990200984957771387807800997128439585456913777933657887100678759316284560675594933058365512732806413347922872482781462720756691706583377320214571820273426349496968807090262520008575872373192673950233894694093323766259503394612756972492011383686518194336276143826404119926646136399814477675969160748128495902831621675896014227774400516625923715207459717304875717842330641998646763544362608283149866443366268315982224989648629972793990876943774111032896270388467356768337920710140129421685467699028151512650326860393933438626507641531566091066943272890986057851616013362091459129312408623988070570750707402779903628043646270781472390606913260469964696189646505979968960045079460483083152498615469146778527329729864933829764541678236367973083112829197775091312457225741233344151122648699052735420646732921532653755140115055016818378715543311687345350846811323194074141134267966323518780838455406693440905532459679056566482276210904271948952945541072267735733236273714092173413739938489278520469656097387778688512685496322984330304001280830041200884486074448610604263676199951196408398903535482321488308658847686399177060108539886726259031857602400278140006528903782353112608860089524504740962353340366119958246854946014309416891508371183417997689094997343874999179183356290558963234013238952861753859410757002984089459536424054287106189533857850500973981642388144597860115617016762543977247768202051670499767242147789940548227381463727698782086942266691786310344626245424389879942652458885960096418589137871570448903949063316717725298896214585477997438153517656509921801331456443784742702383588479037770547259807381501572022874559052883048693445467680385676373906760013096965291292579040264983852432421277365320703262381157546303354751656807735764130550875918912385066916526878391991917349859549430315095998340315255455998145976271147452616425131421366703232685724628890855921890355159410305845624233659448489000064291127860206538488521714810973998408464517531787269659492890059209051460093964407267597517224701794530583584145475783286382599736777870085559334637041377286868009826462727658242715264199310309623599718034685884080647592353213176040938653084385836967241953889290045019337274401085070305597022707650735590598954204694983079354283855214612261726855475122255687733378204885683967376916416833141530488965650256820413992805702378015574881248710977748635369517417465436881317081855659601275133701794230301988330742012190402283794184261530809182517381301355232470562749760264267019107459257709290334598213029102982656862507682855988470564287857218122019842129619248997342791439123243625311364905808744061713429687355341606756863956006486080346003985953248751656196984396079861435244682552877616194686592924443314929911450803325382278449448470126029990475725378969801682390661550377887179306198605882349298769091149915272573738240313756154502200479225272028150212839673428337282832503520526649206297497081662408072351710035987826894744425558654884169365436314842349908340557841273535267028087551897003161869743694781095528951235842966139477561447366952686915481059817497364970764815440800041150293637732945401324174835444158318093521761737022037641239004052061518937833869286984409777174177876202072826386992500793868458958414985019845226864895973887790408320537741070018076617804288448003949768911862087198257013992837829827473805778010750170849723851039863531064330149378368692712629906069608686641559864611156718729433553359807447278265696125038290875642617232301460602671814079009652982210425220182319444512269595888056629038398566786640129638147669003530680551689127179479169769255746262643517307850909898159276833296346614732116950922896736731055987364681158582922505538404554942425854020053432549073185620413892158088185877238653762421259989510100823471738309632863946386849810102468096771827813559051886244218048913604984219930658564113396701215000053692080083921091549520469104805303402454356166094565669972896421595484386107677201923288810882708404749796193686778976767501749777610200981776272667899342304408898613439120395846614433599875377742091390906381365352802765334752883664353659511854298220513227838729253548916502806052770919338014759405628131512927432432678035060396708492500562682239803904894021045013573202948293602588447303135263336966998853569659123377685274040424919920951653290857972669007805117447299798346044880143271126794123428324966944971083049693211449073274332352785078142736140394398106333196360145389902636901713477402992206547441542793292299033361818692063168330080129090842903130116570553887005972174440087753601691538421566859271713758379522008385903993891464591359683656037924238244564051963755912495589438706154544643146259200690246275035932236764372449414010187455142402100724542128350595867351957840452885740580555023634552332643674185563818055938222947914412107717857343941864826309342955819297342962493479156405902349596864293793820711117851256904477056548798091037055840299606232732004798476321630486135106934485148737458122022310974826412812550176877814100366073914816262281814532024864784327470511989889700039517113644095969710846922794397455525814937017947364595646741940845715891286075325784684908768363361823056165353922136185432454913476589339359733859677675584446629914917265700532362188453303444365084253231488248544007508305229242644804075321126783118392524333553150082871942829733830556385968472786636781764090756296890414674346356932302840300516517952452413837414673886024748300483017813603049250482559749452093453336709661817469726140820259406894536374788940004255849773447784162538652058015200011175948249241105321313051610042494251487415145848118330698598310478694803756878576143572432340976013843691824619562264359005368342916620080361786899906856127108564790942591753719694040251874243109870891764077392385132614150654412910039534030533146413501419878756295427365513456312281380558015748905900842628313751857249318503921922473543017336942188726337549649988541275491635949514986053110981044296078190059090698590028910120376504371037485089144677626695032157898354998352945001395973674079871737962497976044111359872494866625192868804011345100493596484505378092362171982094744201115095377779458968818789676132660728513528099567720696596971681912733534985215754276242739491206866661949211502723758272457563624521939235746507276915982204828680716618681410089903279385342023168756179013046229635252551832163538882515092532794539925634251560951899996446721826134950525613516272824298814181936722703588110663496096553267363254075619815103027491525900518232699149000311669252332981813272714721048837901534761539465982255487110343740733060985831140984821510736134341116456437336606945025772784479452945100301216379396397746046675689272317972685032580163935762090719109483907888634719934321819263585121987849553913688826312508982493092125060594892040471488053575775769829619673366560216783077034073999181339469634781073882808432230205799252775202892923991816629103332231078899534116379973350786860781657620061199227786762670633936540859052752864821985710827109859165221172290357565745281044919154728053782218020200096874643732715182917295485011576401430789981924727107166931950414560501893864570713789347728223543842986389694859144329150516053972560809458645022051235657530392908721492496132858934617786046250107595250823518983500592005921314738013083461750526345822700348687715566972914920599596346326298291630172762020046460983531257091248459975615055274495863918493433741685301180690201650827874350651919597101870417994680679310111646959578549559213820072844427893388390020157982077906366183869343585525183809869188929556544209873999133092007108191164889174635608135425750976908001764261992317007095799313520177002419062769165894798689092275415095365162050730258487916500172912260235258326948229881339573686278707829117106775583902227793957168133280952516368971527114475990545322735913605238211535764611253466959900158666087743930759949633286312047893571645086695738497766777632718871854236533637588361088023420454544943745952038063725361146325459803301512756622600825956588107592417661844799830527693781242186448759866224153990243743460935849635128828554458450205006129874834489405210052660855690281736135047544901793602437491627821273329790508594543026874214441688285249040203517193090831746340562290519213184942012162962978048065932241392631228033739452386303292812783733174457024231772421214039713751687830205428256824649226645748722877399974247735309469987029230516425081517419730322301150080970804868177115411971562236479345175369310369618212273597724106255631605120467239857591509181155847237062378257205797923927533595920618254120931202514608589544817367360803316381545165772289276922923800420844375882239654364857506159483929413056610678235390715225549200563393648625712747000359464487946911751021197699923210566571183464341283813717027185262519193037357724391381592853108709438355997107317920802148511938966523446958691857505369636927910024167237202881814244134068387796928543861221685252262629001443035541442528763026954281878252072360126187824129503266513670045148246584029861590604386486387161981291083954210566443641988765255849762635525712985750747225209446007223122307182617799138726058995099096378687288914694107814192691574491233052458379174968111215267296396736528004840569040269535009154060952700259125956913555044872119461208206520021351423838977770110100959998785380404341878528259160741832671444479764327900373586795872795320599080044944448640314363223256697231586922706672680710469135260118389901938738701064418320386990674376516249513563002594713498136306891726995889779268801322023655550289250758624022835190889405195051196074285384581583174682706918280835290086618474842244662479510152833560292892981327583336662951067527984416757713349008930182792600363774935236968407908044947169311418650194051395272318437210262026458945730085288293967303821815860430543157027728633548995373205023909282525763621094334279535833277537934311088369973917632902749599580394343727688836692002058760457554613654530703021081403405194940337050795223393707574897688606608114472170354503819477773377643734560250005920175563544199922812302790329009329926169088385866516482253333338746444635562900931547690711313292438561366823571228723545602914830180255975086520704876549205542342922167501361162600430318148402707796377603133504868005021431337853628246112952118333849607313482100999139402804196137253965933853335792843705636210431266589742746774188725038509912161642028378863577066902157497614700244969855609614162168485560749391824995817693425620502851363847608445211540980300761139493301368457733525761212966405936335342087836853180714667900083351860737127173939603464059857179368061530419361529804533024003280342661734834715617309903113618129779573912154273001712217786390260692335483017448026318028470625753178407272105936904950076338142142027527832718758349772235506114138623669935304103802849056964783804037361321033169341483590647301140435212453375458741484702105804512342910629113373237264594238870565894701071775309979861736851996007254241695823156915571257812079563038668886236313045182955346117216199589596847457140128401848029006436732974409408795401306697826802846695758425794942727509626129652026708434147622021299203411976650193888355823217006895054323188542904826802335100258157354265239955699529275229312470159975210625657457773334900118483248007886869962210805524583596454193620744568703638985198402200393663302800546515877264434908361635430117990451336027314924372128734489869551776780917337947887435695047257284793461310393379695767532356041636773905976278041497691882179735452870655664488598623860775180092106733215764881649568447091867709101690942202035333135556618942816684715336399611602184685492010003545328047138568698720528250476293502003569325344036918736723156564362293111531581014835176986184750886500239006955934714351848877798180986890621963346414848114447364960880101649753644608498922679161095982743942469569241725740732468800378803696310773818514419037192577858777311764099350688690048866037856041342400842329904995108904588105530532511335972226248381464270482427008214374800193375699756069482106863223463859146639874956457596280094228394953803097856931495467849023195262962158421894752097943198065098420204863598452082685836653930503323748504439940288828397102710604949890874092547314393546468099664799459486235679323361860739325555847539074115432946203823146967246632965064782377485871713714981667980646951594056930671458878577515453527209689217832599666255229985618527805577887421033870634384300865444719005951249583830238828777504804742373595083650495079771813735427217731232161902097136438769949242066160157989531253511523565698277925105433091975188339536735946418375062212774417632291936618805932344426856820324964645013396095572860602708778656294076194678922630709826419164266755766539240787840806185586383695832785906497610185359228135115367859451723305182602554920269752470391549784469266558854620138662646048876110575622158557484760696867065066415726507289345363976062240031798795619258233721519165434793364216397482654995554066851318688628987190314419580900166674026802930503845228466251527051303270487300033612140098469217959655171121783713936698996382731434619254874954693138493633212867737112153609922768345744960448105814484499545666267067876413160827558737897531581178761841055273565737167774577149505359573344569350283468565125953306123898700508175917284143473299950869545439532977193986634075561147091509420779013850670330224878977990398335265555646599121821724444934176420560190513845435789632886956748164107916740706112324204913272441988882942137711758301797190850818759312204281902890921988629722346963759039027122899180487809621663170209719537741318499460985822891902926063543583847956669391733399729699131318304878340641881179277938206489821922432926699482286026843764135283785673487673392464842947680909293523173557976040764385637305593057254095401248125785462458128543202669671095884529226683124195694478195108808758552248400377044558161952867883795420428224231099628536972791148828291409033618821453050121281192274677332412453514284809535500639088545955391966067767026384877634537393588276751781513589123260919028922197926685572127516972377334891764894061262239799412204522660822405992998539817451285183329085805421342706260406783737435437678962409417239895154601840910226557181377667255212400203384630717582381186068325756087728586920490669061140562032695820991759579404453009905290335155744603781944898315664035319663483711853433350851032359731649814977218842477304524021396376487936207166873812834148362197199458523922627325645188694543870819493181279738722749480921023915540313395484023083529541456314918928989242994037793976168208709117809295723652333881924519744271137614234804945263520551213697832677916144425873227573688838636326197251464811485543043359738255307406740673896912684815065017321370256825057180382304833438971619603650231336952977064747774742677460593251099005430801304318818925525229733157543210478190309117189828553999140420591479426763873425878377337931226345216710922983389124574087831667662848526973252249568517106065708228009337870685763476051232238864070527626271118783291736381546892248995449554267218301260366730954645068007761175695418324176599375772465577450419842397620454998543851683058034096210946351685484758827019382044689724966881126788741989590326760220713187174396220913410552648059069900091484120190411593170028240262650288541489254754461683342473534686965696373939739211931591007055312317214444692502308734130665423633554468569973624490757835932400372087521990756404282363569657265908980481504824074831846158273943798070408549478530282618768446155571104206282320916270059453579676761871065047526906827043916821651039180660271369257206391813308229459638268998773378161323242302466832306821895715709856190523030949191104975059503298806994217042759261322246400665711062381230731308560293622234188657690847499442245103652025967729117884288205937019076541805625856686904077463163816856976773931160005356939729230341391630834622050763707214709289891481459497123639051873860217567463242413425914077234328245183425678806796731354565361000368452536603511444525021776909031037675547677166573418250098942366873442831908402520165079193558337057097053575567559178727981215099051428654330088733699322710288577035631447809808907650276740839364921237563823065710716376974142779879580737478745647630848450037926771170556875349028971240352125583967582607584730489457212167551835789168514454630030361107492915398007164168694055889397359883669577369440786486447735399763115793800272184367448438818584543212857361312972689528575879503843677560046337249755937251569490580028170536416172818706759110555309695320032837307667163797712350980138369723441739272466605849819371047103469077749615372472357828877765955162357277883426188324122592576178391345499747552154718876582936858898710101346558825156249076075268163765110425314090376701377594477945536133912615957605814255949134767896072556064693798509068699871698429517650361262739001326383202365426562563667604692340379973321203661965089037374213544857679396270080854744166976243757145545412677119953522942910099839927166870066917403794238962285541640664332334002811440658760122708326257751906017886715523497926165395808902946901334172111587226978335319475332362665652825799692204307052809827653629811550375802333170924694649391680908981517608614999455558119522018348385113200921019540883655614618420214090860261556711796172636189113232478454413286237319527180400900806249212083309535377109462287652001698059440562026240159006890621460853342291244293458573133106886964632691752779952147135522460924914511076850188025986074593118979575776900662419939106166841694378333237463266874790566749668495247737306974838208844302722386339922632221803983735376712962612481919528985215079401299701392718249269333462590316372022160900693204132892523457417530997364021858716339232240252792673692317072890649897909138535793176601103158036359361092031640582062055253955185034923655409940447133179684232237678918029741331730101469279374670013131494130294467686173634125429184547031463140373634803807755657723617119553387234882390636863951145340672578665658204964699452649303779250209918825062787086873555577425135242231792675983864835635504969254482811813400693755791356466379316304851791446217504519622114132629020263775635023661145201873977447925659746375243281630853633576295336281379499244194008781114633936219098922960614524294068951113049413552515103886947685706290404145873229964436476679079954373829564034725904157532809098238970520986925663074643437233017451755217892696575729608391464753401075008542281637884713619942480176994102376409340674582876011524622187105434432899948554099744808135372520476381669726288430255983632346186953031223709541041374022149518534835563198781586750611593844811735231547853282042666115701532129893737440607447725711126485955034728301241062222760750084340723333999587541441031307244628065234033661997106455771273387745965124597131770379995379571005753801585551647267103276461893961887070383516381449150481807882132627017864315633576747477429023165793114452158703578395401215668471334755978930292202183760197720372499879335300428285796171369007548525827736587341051614799111840539084473196687496624922002815392516462387454641492041168495276035850929354190506722697956550543654619260828714691014367099026822084028708008689571737348460214173522447071392117556348788795981934608663388140524088505973091699719254672977401602076115225318352802815766838903037709265218850060045473006083653646555261496774626187904783915821452355796243955522759489972575813247646038296760529350682132140432541617879399054085721415925717680993846306640914470555604694964795129379538127458742082764300672808587230594807000907542259656525633471930383020726520386619921822181369030399000184570353266749096569595352227270502425492542565381943586550096904599018237170912683971975988518215817463617108545462851381376737990205235170976548305614951305128671367090620243886709630669988614153633444544854896015266443967784836501168008846438611017174265332637629790395773179378939088738896261389050079055171321474530895618208930568092514388418450391698846066956607473549574165460069954571361508491238213294527726652731896509481291456328790260247932846619100185742018271438257558747616799743962332204873464752495340263545033839666873911364995601649123259372888756220197249366741017806897777903809090939266550666786286848743756440858901815023199943287402935955955020565858449848312834662568231155490674688017085865191059916997395858470285715694129770387523405622661674027236559053956291577024351661155567566449131135125852412231873601502013140249738841755434483482851397217795980509598536108222764066375230391523972353750524255238833521637376258586089037258798749122989482429950939039146157327900119114773469159601423581408173134830891742307578786488786396346056548829521233912158955649309281680124525146955967248154131270860259069785546725380692597733786082353335928116317782431991800442769046544247870807402276527597963073635291412804361368095680153221572934612826015752392421596960989097519150947958862484272680362766087019701452974793744461913658947257241154003192861007356885576406407598788338378795331637135299063944238391000525289544728237117200428401698998069175068316526904906297590720104574316097234218544061215121085894079186512699399457615605317939883183505597171595798473788539199978372721842553653575114182520618405506696634476330745317556871879564331201552202990316075880580650473628783298547320449289689123353643340946131242701446655692289535957073773145586878231568203843178234558245350276729917076449261796510642674786138794320549039923467192044776454054722740243731786291956495636193965522002404697681015903487071741808522659703919255199747807415820454082524472807923177912235385482378757671332903341272771309299611630863384213797822975425734311068646286848769300067829409651979382304500847052209085125485069882872287549561901865632714046174027490648308187729444662860563821270082021891923974508982509810178776968876650139857725928673651281253905410365885744029197460292066167685627817316467923759094996238251125321395946961542056125216731035310447301192089618117777584137723617105056337617529247551559001766642122964628226331109920176292480213279941204422714606399782129018902680372518056363111169428268472746019168178999400188894254727310556173200618167496591583176570013483082765019473282722183604521169522002201447923421825959445690821445925477728808245621889065544388563129667112998609276427909227662406876494984499271657485826463472109567081841591752332045776594360599122674613586089037303055174485988824422442746397400127241081729504570341704661659009096493580607195658287941458144769739625954397681015409317950804734178375901106737312824194706321250154577202528259421311958469474280578164714487254432413967958357440222122110052647423192207198338434346537929561084452037024743921793209265901192523886456525568477104461078628698041230021503837139035777725207813255027245503394019794792100120721924120740016192595589204037109700114700566329095049442853708056078286874810190447143609527116432815585490757552170741186510192171012300589966896008019702897119166745895174172115314612382725290771537036333523590046270655245306227588014653393336566500435468758008363032994119309310962045287192414322943480777522302345259331720134551259020228690910716966133431182321383510449364230775491529846059601727430919803426469398075648207668559889353101009591669588836762068759941133274776253707112810637683443921163420310788212755704009247982304347631836408953334838673177249981506149308619369666036131159457532841451453545691875879682433262573040727249372882255721783476729210984890294142776108491208216058894774557374881558530404998415103143513803820108212235879612045339403935140456060696434712181249060552380063341258227102512229904489680689844775930791864004560340360458541665808216120391829984449377224645877545919990928952655462277323287740622962561658498134664552897148384820344282508528705045984176541824651169936487662422443786502831142764285077288212596095033168599992362155161472550979502708121400355009882854317118355265515199566276145965483688165281287446347473374295816707654674005322290099350866238380631514310760925011703855233651100142826177409791665441570184712467615859900399105243365304718247592478040175467622767456700540177090996323143767374791649703473025889640474713158571448481970110344667632125356683681192060021482426648439292701830763941304936628886920754861476880173874572588931728134103315771153523639011873575973539354702990685899309967983586215866537722297362668272561465790834224825730470032497831770642698501803075460281761771374040544908596149632315941764321197725342117906303842020159561694052806082032406218378045098424901645892472981987843149901800677951239217888349201241110294504012402170794264817390831848061194411657555193949594456022461416891633404681488887878836709664306325945818751988013588032520667317300274274544585070739074030120091164862352965851357677265612860738383985183321066757881491500678380229463770069002466745922794558761974939431309006462918213102860463135047430157266660294031168374386928252844755803099939650416858338449447958465027684268581877726426880007461376953972290186920296286077611406488024021782921469675871738369754332956865839019945697614870776286232174303273689480793824270385034398821429904429948095645664016204122188733092752929810294967933533616314819363815218354357207978611639631860529474769933283005593753607421800593963972111247110676600672891273308262145267553073236599902140425524304880866268699358693803508374754343111753335144266766938853017805508388417915453233432607454881701322305707068219737364876043188894245925613217096236003449139961025486850260690374048987029403618888734539591881709786839836720561036114099373310031065945756107403538623324995950141603978374221104118765819794206140437545138145710575608868714202290423409745657460824396514438842919502061988704636632419438530221424011791891076878076053689618453936053158860984935501405878147715229336597425861206499905998869488959462882402399670935920444294755429398741774979067045959988850935317834919905153340812157175400095056686439040190134051901560365565432985997974457150249253507723999608011254323861761654052561550963997527422076401884517737780618174972047851775876935386827922305286579288463149152632653370993462023689151049946218216716491750837650199359462816750977348936956406250784375247507121570812369719426051944732699170159967318228330453108878334204393521563809023590150897593993645469595675348275195930316062570236667177411777870725091695793395047773874707494904688079438545937618841629925699622184150573230647208587461881816285832091687268989345804000947447006034196690937550482237929543407966606778225290266712654134646386406110281404747927698990846969272498702094138405173283773584242242659672616297684109042933345653757577625097598290327434154624871933830429201465813089698604722665002891948190683155222391870402350223139126723096933789083528391684540472273141124955923493758266712909535112556226414926951236009260338003478476000348397718043028239251359920751226554621051433918821239847601431753113022991030040504783404086139968852561791761472047722545784952047591952781127297396386625637008814565086470452913355843373780571062988504197380667019029815288793389291666520874158582714269468017764036832374903259694376366613120708042994940036842114242032466588587778684073230515321172972664407194381430871994826549334563860068350759530376386063081400349502521088563656461769385959719604543023023546102300887244235273711625882809844210608369962383373280125468226909668650976562125786982068220167286837700902137929751117794583722407044209528060701763387592208066256351918286314408607915752778997247190262057294117325265963920721168819441859832160980732385042892545978314927591703157156788799670178865877136637698315634610178269133752264690339112419815472039596098572709633496012158762472967807600077053301255939175638703202888356232964291414110799801836687211762220885086999155627600310505369103538832009174645045101876381803390381875758572782036816023905656113669177117675585950722323988620809772054614854425712497171869428153520776437470823038271675201616754577433370580300544003703077871906045225144508135616407464931510962048407354331547270549519005349672127287531452391593301136860097840978940956851515318330974794607820267483686036783362047855962743041546452968497896211686645156735455422500855615189699938455347780727351005885600727502104202830430701619174922279851116589537241334971911865194568949808940182916033093570095536717464076369200354910685533297957408644804027182518833276344567216324953389617990128320662073508729157333792431275243728706930057976084162208625253683339063934660639273462304361508247814774454114933522543243033087598697466963161986365257041731775519616936117287561627114223925663381612837710509643287102334490012563075614202430085258777356140508198247012310709003492346632435008327368730536070864021309232444924738344294848670061527767753654921828664417469742687424518119553661648115126796624515109942664195733682488730553322593814907286909370900820680780948968882794252447402337137959674892244735641759560315186940761044805176277676112475333374841862536718420159402927493579252848568827953558573007909309001669147276590354778081342967589871927894908292251046147224982047846863681707635417898061937599549785721035232352582535689139940813037331397863164488902658637656951805659484200981211831498800371265635335850455964440758480146818625513789043315233873565665940915322125077724863794643528692295763810668268286394981226817005491317649026820053831954235754743588001186094818697824986241533533996488465322645292414480406913390118133152533551842571498421713820265128710138452965956569026428364729026261310780522652092308770819299095842756195003486142792263493875890104476825350083934638616143119187804912910189426227821201012292536237452541205980039169893330255685124634333228466994527152388101897958117378447175962543759398580292905566287207939916540160825191015662375801996292305370863105297990198971545748853473186211600083532699182908677361437527770514901353650873784132406220575223350302542920010263399194038018712564301713096615073333928405398582980687293820604341167985877034997333103446162502256421152126132811815104213098296436238799561927194493118136194468919417058372020727667968010154372338503358804654220980769150625426311675326248846402992862686293242502484030904924490638339136178113670089081700669438441222097008567766671893644802352863202490235805182854736326788666143030967446164387143888049117814027415664271045080204774628913709187879930613533492368839459073672541277300491746322710320331217185912186586628861791483741877430969766674673601696360798733757437369645807989506023187822836296581356224407071235566209443462669786412462039366511783981295628182701370921508409126328401307722574360315446707190033447194987447153004352554812946118517098211329638978674533713630230048396329514995760552604179028401259806140636076861867630778411002099558954728208289565485616816757266104447362662289377706909958165280500153980852783062601323315261380285693381961329318742586536625102149516828527282462790312514241721279550242116783824626261345620375197079648091154179674433440477064468059555299770322466822610996382875035875225135241343433934747841489360866935515310407614890595843025360437336201405292655849528931207475095567204736181955035428674044459577694676716173554851575003610881435558722307199721087954108239541534490995925468974941012337649742923717232010908699616369158250677901965143414063501656976103747152101332695090927889544788164910936296522255553470485687947038018808694694260575523293057510374930856042049389668731271044958219593932959041430863534390544985599188147332568595134522416504181795913021635579486954857922668966892600814078553090974001482931802284356598160899890998079422221970982116192322568495656399536058754109273039148381772200916724573816171013518267397460408292495796563567711981854587948344481606040120026034457384844201803213982999551881162628385426349386316192260262122188699919681058224984980149226567092867487685996028374601894878197281761751906408100609891125136584210577487029163833763482738736405695839010443498034990945752167679865029768572293214138155521569552838039747302852962378411762937338790336846165876289571066358746551845454323576975813282967631456553913529061170864395630432671901615471389260832614038149496747574808979976185487387749551001594894720226535610359172432371564798845715469196539655538748414673532178718609598027288163048219715163240372903444620327457072234614090919588987993095012697987891984120322214314181992819131376971398395172585500894839696146163840380630408342943655470603974623331658969045205805363977111572212813236070009295258010466095713344693025234839038412792256398532994358183374744100911349147635985178440611972396952005334056037054611527557319163022006715551016091481435935639782002816229970220659502807197356139641923332968464772118999837982916691601508074403108426912830027822432939993394409024180198816583821813752216520907843084033879280792124342679438270570217028727825416522695827513617049816313112177067618717137264629119803206658179648885782229207130506832653864426688440948034424398250183970160659419219979707342037494580369041647837709753983684657924336834300749318099965598168031120400102994437192258153863680705577779954840485196215307968862226818058736760385722788927161648029710017270771648114613511231427976202835528349716391848694746180941649314353648273712296147495759885675880104340499756228375837401140585945520374777837769119711794479023019245091130528958154626453048886349367700934175366378990497787095870892981868065374912816359350091159797021099780748602194178807896203912922468996819201589948021177323762048881291805662495286948960613147581232791339880677701169534979510986282771954424221880911503477703231571640153284673941939710147420902660400795719752902402068246617635598630197032251618281035541432132659810026812873790863036423649896511648771505722076044000245841913517568793837684063365038661815232397226424101779864451846205972167717649148472194825262869443579600505050575402612780470163058287030365293589552335311429134617122334288799849852820807068824825377829342930221516825146755448774911847005128427575050396098935975747469389191249773331403236782383255297133719041962562571867623680954136680641589394902658262122072739174940270120128503704578859738490955799187779126007548245931899459386097500193548606862510922081528429781070960370351486728767064355808884341322934296281134350161553452234416563500779462111551513930149352744836903132686344272057629160754166527735021341288650356721991384848553673314386413591524160103298798234777106629349343234121521124745646637068747700734875552186532519372596054887798000241408738433106706089890264547631258136785606568120629769922409609332379216160233955722715292397379299748287206295208437919717161621053523366981532590732373110215155023744006941965339379818262968433031806222579214606177921394241675918886144939002980592306453207486543459435356092606707156905146202345581590848278163180882286796071358420000784490818715790073520536688784088841963227354714298252776866431995127286320177826789736558475165200642831428305685590889388426912615049258829019842016746076613334580722915897864172834203809177532091650103503192425848610376084478181116030729759817030151499614812870938554897907038931667035899953122295304531854595972313040142808474832016633648442467021145939139427314100613827234977913532888411517177624427051155284521491875821566136159811718815579809677857663307640512582813816973780929364162739060045698936701246954838998749553623522548489580681042048183912521712383236451030516216707777633836160895399714283311761650549565357956807989785545694906317793544216692426478624702708108048312600152275745879640830166408083644798614578272882113258614918258509732813747683524272012505567018637517612240644605041949660915476423998992284812878418227081334848032944885870551195554682971426957747707453775272769989448425161036285881723267947828488992452889907745424554598712044375347674964187343516266814611163774127835928373032912269823040578950469506966858483140034018073921927366795198984611707586472503403719743856166114609894308695498415765567176945648426285352362795368809335546489969814173867549183310642043577427940722854811799344060689523538653799739674388765208747027590497390635248596795572692960489919818338688680130329899421327447613453163485216540739159106299344773547779344185515734540068026289350308042865965396684745588773510470205819595716278959155878922451363030814482279161425840737852463364720895944355697429837810697509740078421407005990456305612419992498885582493927153602032515084074878397595001571589134659786851346362659411782002431982956799050644571801297183149104155366311028805690474516282904668193900485625495455670086809385810159597969577905136973316645258448334692360472523420067126580245568418851639371039784178118851350905529157781327667782636344461877436069284351439719281628858740785296725293314958051399639599141751597846021737700189432084602868447633885205164570309235529523383539521094733372695624907061600892662458347813216987451359928545028991666206280454477340397391226000326338764215961988085275306189959122327304348356169556793738925830540153448186996355546083101721904944549355114218617345671843620624909984658467608207749860082867762418567437964432099677575048180768495506219558300745979046703626905937304808003695056882838142748101543910851006696482525749432525536598605495846620389721100856162595296586980311768605331994646706412452265542711243116311689660087722745414436939695233404304992536271809391398383764761780086236657104335606657078087589151773698950399497101169087940149802639554904264465121273753098834671090978143005885056662970338186289097935961891918699792485190968840227883028801049095318420585048813705412810115478778167490194877545161474822559936693544411320204971515252935588707523651629325499306830965365238920060374662377071497681739000365269286039954829389205972504639301201718786182942989435362143030748689364370293454239800136260982504136196014173114354039044533571729895393540074036698009726866892972982706005950420115588227865199759951163261031374181417093455211866074512456812995701854493236958978042236513201472252588635164966363297393973114269469945543055814525926389770222127350835928657614050827486941129871901417167689181170483259418251377517772607592181492830911422025244093840596506032234694736426795227122389087730225197872790568619056551192100460992163579717224243715198209560552219933560465057486213954039627440889991807909776306026052921124345375716435008852702299568137899784593892542227282381882695703642824461619088328010606992428679188876946057878825557910495508746198519351733517344381710192531937696456692773547270607280566601782903034876674128382913060428358161031918936400484884687293964705480420412423847978820224460325987774352875254849319034239131753289677425313734747362594586098791574867887468432466516004462280739567846824243149097130177321499264739144830139558084801383041341964656349654050642272901043611765061513268532067487574477467437999193429839560871542932359137255044471470234980989391763863648013644788442343994623592013865541699892916061634612961292174407528138900033106679077006044103520674237184445663181749535531648924203517694829964658025190858884183009357916386554995495613686527968290686282078358787024368916046058240143348413495686332951023134479244393686498739262170881299697552874445212439448406410068337739297820941153682065198696802760611500557843013383432660211143712852028943744219306797786101928199576081960868559056551455088985749007917132546832199935223198145582024612260350438089973122588766746060543319360296244366488632404725628338240449804462962218238355081447533588203308165548573148537127447039938424862341865023662566136644838516126879890765585921267372174681610790365105659170111944402463373163250435298088852040010428875484399127306648517562342445042130701690920841678832926478330728744942430268232308301365730584910708775205089156785674526018235050793865988811841725560561317208497471864725343619422466961453007447700232116134041716538166157741830137992905290414153618064445822267217466475595820792638808924222912210911777696392229881137860747895002747056308746518504520582081169962061870300709158194136489132231903895853780685975279423799732205762650691190159258313062562393484675750874569423675061772451552918691148542964639345865670499329358431722485325717221386785341699448332773215488979387072235719597068141352855906372663846139729951423043809900320039897202083969997338048345474447930921555216296891525749631973673253658204026154794902592774578946279621866024716412670532875937596050766990438829696719866454385122615264969665089914614080852303998789102941372401943457901403510080232056129626700366720363575900268496034756581986880701916990056643632832409475304249912638945871794320076324107485827697673532850102408416632814728474943870615763490187928899093443340507062219511733921991673561501473295618655302646367786799652801245309718835365716309714523713005295737709812882647988643003783435795517314399167938799485084309582461911333626419842439190925528756516394293631345734786301486493900199039014890251088604920840907007599591655593746319368906707942052484774671062160464157905917603431817154182100844572989708401270513894505067035017111469139761488971857215044247001785263179557404483035261771148842009547966866160848440271948723958252216142260647856972228138715861139641529794596967929790470810728728561561194420809167310434757130962962657598085281942851409685041415669364588186153297297698634319867557647496860554481167012769337291640892723505392087351189302371068599725114754621667049667107586584616664598889759332863941792347304469285319501135050873867163633605651973060017545622545743027786751476232307638672140933905898847055928848310773140257102950726690717502299453910521256357363862200869102117919422662855920920943782572953113545421461178270480074594619740363571226715783009141886334468992577214976479774922271109470883308911317941240762990800744585666725897631430205633452025347356355978693282279133974247002957400800748635098705769478995734722875615987194121301482530358549232504721068186796092491663703963141123748484079240766955480229515201119809862630209951344874970643131254728989101827793300817593644226127288130029173727050117739070407177534467661383274679899110113141802547930623872064556673086902207909070869980990074064861324263956096969409664964245628058606614492704161233114882407174912887785609349695667586179909412784088424011498171231259353324718786829204023382541422092698163898315497127897595748017891400268819605015909064417894523216834747936965438069308412856193147755521709913068623266805187931964183662851710421779061736298923834595074373447410101605743555090680472266709054187834759086571256365561173873468338177328606369720570784554442684902901998814082473256382657162940988936380086771744990402684816350436874069092682135658598735916757174249851260082566048740093755933824412450462340422699683757069104563527896396630547177319903604259213226725001481180477130381678909213176614036562475201445649334799184531902969957178975653524913803975430427340346036531026047541871325178747361146368890462439937342367454273856584553125686579313074616866664809649512001001012870053740468409882449561859781398310798559745314343315061262962244716169976986329255104668844595046236071706856838968308560484322745353126210606011391405381598578335316040355668440218454848749653012616389315782281577440837851210795701503481607936234940424841178974929414061043434494396572515063771018546533009458616701600978610685956203620487945771862187194809301561831403773288903172266916415949548848104840030901216406469588001905276648000247343012198618975859325568678214345992703150828806675154053544442300827099984885690493995704756155457527479323502668848702734649429028718464526586157394018845313963218083376470061327642038194816221417845926842852151098984706598706769121468837125215911384163358096329138462564840904851458551191852687249814834731068695908112412648026736495436021618712940615938912430003740911888480511405407890791165301670135965440841502610996686943050444456674218695866297488730919890683061528321419371692460930061598580296756097963618117532596083932130039911208390175875113339392081201936508136017178015073116295545581592747622503648883574063529363935562802926853128862702124621185085389835641963132705666656036550362760353753772196859942535202580231411460285510232991286112600948828553159456460711523591123888384124383531470341031966780475099469966058714132078423071154517220120717498418314154993768485494591019132201807804622999166447432136968646350475505769558026266313478637489184543426308374006236051671828935130943309345150864479644610673336991082358553987535467677007733520878573995005214843870824651921856876073509099165678896882249489597656457026730962899655420457027971091646132462960353380080325984569532718065704559696154817892635089148421576498507122042266839748587389616526714927554625581213593671129419137270640839894245388461127173994822601005741975011002965931530917386799662447329741321680802719685716920032746856516782336716272596581071341964845175730476191701688188060896121812647227853632529393956315889757366782930148999449650609687809934415310900515304150942656832670015998628492562773346380680854566531426162170250794568361888195561493706124861183246847410639108946307091866590662283160373564852996089144760435417202684291254405979397799629483281679659452958439580588129070222103997006976161621173791815682686640737874000231203514779466057707874410372721066461023327795988283499038482296347082577329912331103198644611740294666761136227252234185355446231367618075710163514925125917189270045654844397160657808434555806688765657659082970167539792515988361388014565750911618673658369245954402897270368070917980673079051772296348727795589529166041643985880475891757691682517196855997236982419474378883900731707565519065275852016624773994457421805008706337102199283942931651089466642627115075981806228527957639240759305942940132268451429620497145381021730233708570484433327526326941329751264718560064929474660142394917035484958028737649065584508850676860848141872905326302593483068808416084813106656706670953976794328873749750905470588628509045801738678907855319819716631305202721966082149928308846925109782561469154079990005652867178462580923323322620841036180349646344940502265099034356751831305200993650302709500406883854130781677509172816448299794476983333714629712760573588522101476946582778053123547792826104113077941285301666252419935605870260494971447330005193379242034499771762656988560929511426085638173533621152952571096599239957734940586369231184413835103207098123335295324270635538495475196039559760211792508825594738062566900094478970024021018541300224163438887522570442878588322499460330514100923913328367265326586890226413320839068393956696407345230656827417446002672087555894070389515421351377959953455840363008474526846137334373671538595014113862856126324965233405532295204359333015927036129951759815405224194864437292617042914292008400169724479434612887955237166507086549102519707980569235477875411350939710236393942346876523189924662200930973658390426327237934682381702228190113765893792254325592724781767320685183607279125824436245740932804352273319268656574979185335818727719083060510471376286400002211024451517099211902874409488929110486358181172153289806031355303391603669198549471882557081162188560687023158394319615928844658943289340799526439601475810344366814632689931665485336836475056768458184264498293191314759392405387626824196253047832607791733838133792813404268629504164967123114124378351602776347158165556168814073166117936437205015372459979179318645128646134968262565985618087440410567248103224918066504020160380666854016481370024204349228975888751974018495659468798195294953280458378046862093032043792985427514392829961570291593638043134198448482201913096117189862908725320443253080785821463429690596463743315411343046821566004083246283208849331960578755278026208840846792076880239884166809919399979614414588244935357652254172458206561093877620751559698948124947028924867759600384156277201774061255299546802060139412616023267923171153768093032395629751798261676107889066830811020767629490979038037183132539194261750509063598171722435843011645413860217539623444974518250480606614473488641278267826549240470814282495937438996936860597091479603089537952329128996319113297984741781293782704365871757395297394489065508534994248236523487108097024545521444652146919424571502879447662974367777344073065437928325838136524646354017978577805986295435956782189788897049285215309787784873908391774606885306410371054919385249498912835642816170082766534519246311470185894064687101696007178264690929853590410043228610327159557069286361029604490217767808936611532424305742762622610221116727387238258596309663384644079325624862695561221474857500235197472084141787611790544275980990381296235078349574958654137328890857455589994902032439179858134490864699005397084304538105298192012768712170439909126257713225155018451814193073851181233139370958500398352884887206922534729014126971678208864740361789333526087585223619975039727919321494602314740720587389693175667089479835076331503773243033905766416009102203048734995482522369238418569359557930067681436918089458229167060172993965495304482571170205941719879665501628342808784602933875951755968076197488204187148865945253439748467295446571369444936019096951475175753089195875759698622817900410190929559034321129235614326993207353856645907893794122153394783388706203750500199959647025477532250166908726397129079054067260667309672226650323456109386658995226652566384561506873585506556694524361157071172942213240092301063589440226926399393510416259425131874861231017217957819712598210380426755187208410089322596401601362241231203608556753618790342254068648577506009532203323688299308926596290529439684929773516746125173824181093359554876085533889834464508869101768509730208496395835009795927298545148045654702781404369265259483604481032854664136002821001351281562213710457356483380600558234113003910347349355670898377136613128248754661995018825822026087624537517850441488134728298156928013404108282939992281410767052793759449926336954617327755552008022986001529877247658631244901862022779259675601897541579287460717271955730689019165116990064981974982016680308977262296910980157385535821533488052406482234865215469967594484434817145613071878578948102378352014573176215797194640946517154157452753242556161098035404311631782004642793689174070773778845185917471046937722802731471698438864787419527165134037014678699659355831954228924124138533910914578443327751819327868901392684229534459822628151945723394001574901464333396681162020050668211804773841318427551355664954620008824233583833747566541388343995443760776320747839356094886169552199086016779718763609702280253868512016907499899583576124642039587089113183321354055229319936781953860236219330090242071498307105371305187555638429723926047531572343208906259666594449164361477965078793238012434858911412177083151622671951920840606145668511171084783146134033069119941634169509587832773536565352264584862287741628385352203881674981012429777745067950300790817399498712037006302720117793426371551169289918450361729185187390785843767739479356595388987321641375088254758793426678231632013676446712739751967097410535190039354083183341223943741291995938359846910138878041968948987732623025397815437258041864599785335892709201714932653646256338779018486552673124422719096674755329137731970449458414925674693732797824276503627269272393715241379745586153236007113662429975888287494033408231194687459178523847933076654431286575455855567306618194681095037574373104374578327993934558941066038600522642894555832958592618059958904027441284907242677882394109905126300510147736804107455484088725230335861998356712115157825391094215834381168679009689991588305634556074879712657173836676741111115903081636899796784093022268061803746492650876339112330609684126281785353687872621645816404200350131057318496946826537271948996115638303026705046637986661168344900170205134276158991591443812491695633130093610198487194312570048480240311906019334094577172540555192863331953710370498561057957311399354484742148999629018686711397236774429456032679464774947220919612351699325792530652740035493902684147769565011474249960835886280330121871487927312807667672906343677522354539127507783486029619111124626151146593551834362457566398227646522918465079576306181483080538243972833170541190802574821780075758840059045853516559271672413999874438578851797275657895843980371956192780523981391979064016306937822259153947266209402254053668786943707618450402377934550460030767623702005226061357200362169907974383470583418125302924995216013846903649709438940940795041968564136676551410845053977957333445657594845857635844979474592233782454111924792773031587131817657776119960898633959614046700915196540301836126095829430312175247706037532545908196403347948470715460036694220974261694062121218015974271202887587237565545230483804227305591905067923353346530878336170252411853290617146254432039404480482570966768857507321747715616880205457862850450688042835830095235301579408721061655098399918743283848986306471241387541730922081036746611653804710796300418151332569526958631345315187292003595770483940894761018007348158769971998175578900164685882483022199374403346369781745564301208032607211859045718842091345167107292608322539099118252495385477226921759026310337955697539343273605200261355655715018609482217821071431310464390753198637430092951761781069702387403348505648214011052552249121154172247105600694068883339699812236483256631879177172347768638260093687078943984421687047591244771895164491105463462903327623230617460924712590643408438432467059900993520473765129803234376570311966526061132851778597514006591915675129728655647270974806721632611495229285746497275646814875604869515518536154884185254673819267702670770279856144098948614425663099809615374480761184665624529652131983700836165523965933990660759401881840676533500916470842478758172264849807840683520973647800879701792758781754350420347876485698523145925205039240324674638213323464353743349832125887528411695759959813707924605801336262925044719310444797270789492787698419879620981735768345315567911210683409515078764351623016560085577820899129989692739394598971464485530722875715345822671471594811794791528699384428210499199938180105152303183505411529011261165127439748374700645188107975594669673589568940717380158661606521155578363931120662107653764102068872491946089374118647163108809012434047371937090526594559822184327183350132964666109744678400767900651378720471518875528078982425097536407137807027923350727317899195680768773496536724784142836245047879649793755098628940997101896044916882629540278372123175695123639999195553741875073846682218268967015396232569189169471170401639152745922823713878287902827467314939606552120285988015086968392892314858120817037626262500654208431441805076009274213535532630366109407595260531623692567826947366046213292657528666715368761637846394228306348484632044682926054192420714667441974493535188335182271843769083876844093257650001069001596938671840161945718834228339776420863510314730749402102149980538785151876965369950782552776331275046537850746552715028929192175385265177301695341365956615392999836423148873393777882426810578110158566282667501339483431967720059159653495392560517763896358390212287986304651176067214996131752712240884402573217134390046493323363394089368588072824944806321794900192013730807644062274073494893125354064324448595322000647370649845343178529922125192990040269458599149493503291067209976179229174829198970504526122998395524615963281356734491353299019813609239083032621859159560766539338591407554973635183871122132355417669691623199719741322465956251337640242945502611094526355343661608444626383263814755394841051311990161120405740352446241737476344184864367116382817790821857678342473102117591295507632713281817093820858935392080216854123419690746539187246889916011823166168210786135686284400268887825079897996419107168352559163290015199836825248949967449419039486033674982775398257624046473562619084671637388902805303196135773835766184069165504915981728928532243719021525131477793854478003709070281895524106095020864740928301621968756825488602825992604219271498592129399729861738251524677430106373240596163684928199497179916618957647636143170799440748095906825145484312483138809571011711255646275082760752785405986056317164123337708952188714590852508334773154534226578653998555568713865492521171863432767298584429899850931130098050729320663632281149565141193082336770336150653321112691615916251522385773590160447594295950827315209860123599181860051787193364425445256381920043046670318742471671903559662271766683019041025869994824263844875782548173589307731779623505424343857737716083163702151908928014847257239038624710964883552482514012740068534680299599804774819984328918342649100271166881072957403786825247977007721937970087557634708788604774245495193156682692910959217178305061217583976024375540368885402016352269024862373396575413942502884580451353754941637108522087552999347855090768822015990756543751287798111945980888994357795075432200171837656701027411237121616351204105020913985247624413626189106038023645908283043925086681263017166096950257365853248042776357477478181408340490696826489213671712729071734993547415941842880208588682624164531369697721564066254695359990318691731997250235721485915371978424693860060666766369926770519186346942604636537654633575798439358023358451250494173718819828102680615933845622437708045728925495658119012109962943867858789657716478311287453479763882755180065166418153448512167044252201236180529563185929016734030079216405110069090906606249301448242374925761329522181358894600083872913116879540347023562467869010083743107454569326551048434780445520923788049138278626030811961718760285891434993020657068655275614897444156607714202391115502923695818578785541679696887211512879469130951944759579335151970777464831196448322889944318045131390569235717411013683719143856798718173776815533914171702820057256663639459399496207751704621940255839354221470863347547344955457738908491785821860368430350050453037004900309996217222176868394921241672697221437111147573202072641182833533401503936064007936504348456285975238936189622799697583621061585232688341882478579306000456927661746400003037524502557269330867657858287810389263640418314232000510019741506826039579682215915646343071327490300057063197413338685972386091085338246117585736931487905672647676170005027866127823682387129178534660952617046597065408695276620883940985890263590409077083238619401408790676441654799890063100422591912273376615124939010786408906610262373159208055334229576619522168469739864664187442144613595755458107750789504775826674103070434472003546419550423825422915098519019168092237451111701659385523558593087276122303453048839145402562455638804197283562919772760010261993458945209827715509872905759995442645263071529208507699009845808494484855422464003469928342626994490618667019230297958122073464913070509670605099154613084448430146178930547836220093418452941371401724218706183329263111440923025930373471770873266842012651351390662628528595083616283846315957488133856599236968021938383999366749596028109318337633402350035080149948162839154224011651324928338233764554329955431524779952983594205063257554790407465274649815358863331202531671765263736295375559503598931706002420268451659707350391048479158482391980261150304709929338350560250731204800208529296551587107028918408253715997498163187740892162577425879347198961500289497610932057886063537057590187353245468529875092763134570448316949798507266717880814170216572280638590160160591549340166647500783597274078816884965826844870379513542518246599503597662622163183649433733838884864648516277354637910188268886194918446834331011002251563913864464466995735175128300224643210114413567309279715646657761901609277040275311844746742206398062004005667876468318954198206124783417928323681793018601085615522580570658550908931720860241066578615615728809071422379165440923121382242161689758268320291930484811554948077945162807247581984681197689081198672034338834569105109478400726154688752895839556743561679657389044233769554996539074774163590347569632722224996667103343905529188886928293235734278689232130270867042786523389937314020399092380711649323653624678713355825089889552386514309055892396147201515403679305069929376211921560386609597376018556652390804705593247008051580538138451477195640733177950554979159871327331979099411925767884718422927726179398205409884891825735886401418121756347560075319731514455822406707393036828623811499635492459977633029731130186718636185026144642066110388730560054693906950760912987142866624740144414402011779976548313612131089494993283530394225143168243822028845983504801425217760276948252021135290425044021934882292894911333442773452377363523486580286733580589061802511641159554055482915962581384258371115833837071239146131423927604217862276564248092032114492884624410580726613001275518005576926029213860503116054989894292246410104989814282542313906466190134622271953062669858449804878949347970973849985262400747268461788186655083796157176357577317555494827764773009176892829577674963299458528975470807314215474956440195752241598088006761734628569853779553996873091969622032204858227759586076226517661948973474392382059886756688857156792147176436034773380534024612106548721974807747700881456638018877072124609413226359310331379379844047077731689836830335392083666651416205553059991238556161405475289958875871566244214938447036736143379079112939507582763728266290684553490074054373341463285650119642869616992228237504444113697355467619317487306416033560210351706194731292964654902225561480593030078743389314709583220190122471393838385756284710367896872606547797207643555262520347132221664775709814175673890565100405252821781631656645947198592606668936152359099074531379723140641195394042805694944528088182666598104369706395855660120716877474138544126116546519929690149586368542195759035263812814837335841967659325464185851610928946771519427938771490843831550942238740725699949842178647755856540443939898932521337981727539610635583457002800020132534645409839685331583474872746403462703455480801351162795506699737939532681084046611974474367538297082624845382661358180542627654691857311849639738754578384488811377278176326371696092463665502629421694404151845223764634242444313738441411981069336808435225565328869114859536850022550692056350806121938082811447450337815281861288317062639970351967471532683137081409965866247194886093020504146530073645971698709251901357740974539898745832877176942786126606979138134649574944966023198457268556064368878045956790767628705738305764894073181420684528362628746868407642684878595568096280056779813342092270650323397991140981804549775957367481458199066935774202112987504255948796187923272489692016271062697179158784827457188617471980659892903145928982993590647170859392104623518892104603733417485605624972841683193940598639755213263458898846934244405727450007426443928885567956271028430134633227750796898079483986340975839307368539164659793435146931252509147379704470505881298426245127219049234399464850449648786452386417566761267521081152864609723543590728468413487695282169970128333811124687869445172879657547684386973220651497785736420337610073310718687161168845775649363075441755366842180891880079990421391395179730702005105835601785869901243098624818408482848686656112564543107359533987458185703393679694565890346896427182289683376137951118309986166900247762469214681001669623328386502880432920696147253364693748231738362239360033990343516420444003652306228341989225803292499065959938066871875320641970828472442058521912880596094188725124299857691085175463674909510393634517967815864364942033979800449267283263652392713660071407915042346043390615654139020455017109848471697156810654994287686530152178862133722190775566996033824924931312260835947405955332611366277023164543605098540024179445139006399516423692385642310931667772159894244928255125519809575776251769786810780784118642741524913719512636617691328016730860600714585235406847587359739846157949055214862691146333576397989375658248693572717048782793930609146664070462073592635260469824729525788996127837706246863884993570122272757971934501330885166925178797662127938896416904096987013200980779387194428566982156841176309959129936115340072081874844894966342367881980331905715310520390588632686820732922135564536258960205694654372424745785726229453613769533455843939558775036015815730164961053843327321151289557030822111368207237494496845869628905191872996207204141825440671542675715403044476549741360608448732199955219552892476573257891815262891883796317896523452586955479295297647000037606508388234240229682698963147509949311079943710376466158337047985282063627039048483370786825973270563542730688337122763788469433742176006338822320623407767320159099727203011903498536891801206245009471673794471314130371868015517107233747319398873226886675345512727242876691414441353652420157017553286519033847801469631252783311219608314481438641535095432633561288384480495122476370008143683452178528273870863557262212709918985293884482545715172646793279800311746726898462764579509810920428616381440251789368712310282177921112907963194614049626854678751986066131277407508950126700526803503394952534070429274523717800286592139437926136198306657417610346760334267133328862150565047186754439086238498155533828713558458049695155801552793119603335022963373696648971560992249384335901590572574441311890420729126111930919546501513279969171007175857021861581831819076513560983302312288694304105317663539456021153374286533516672900427790278988446874619659420802285690147864595329593393210509563862946076629635848478148860567184364925234380615897579313705053859130457027684054871071207970204700500338672990771154503017149995466989340528521585709465875310185652505319060505823820424766337978832986264014116302001033645994272082968580657215540695442852379267761648342334862242743266998560217944688105725305353257242552175359109487772977175795719352473531603100486226894847158565645515199996108173489747964130200448148125434721165628299908706135349866797595623462467133981746063650813778755030293419356194684594745117689965845764713544407334923581788665809418603775570505576409104282209858916250490385595564265453498629352502492647080516847863048187518883658929767866672383164330835110896076200364446885138471284878894730087633153673631367901166806199899602924133329153969835430504516260342457411633962285397108097645514229073532462432597227915980482831191572506771206791391379454196555857106936342187399746178462507164179525090938792171852597720560178669701203519925467744224069409401656615772142295440903862188910841067016920965461942805244053518403119759589723953799849825631148918025512972151069288055835097822501672267940071374303715862889890259602810832186830064321422809091354194533425188184675716930455085971599584656552284878369367944318347582329201813069199655364565738097230301165699825344686890468377178772015203846244382884789064033055239219483969916398277174627599155934005899096639402930070664691180058360387448662689723484132674369740528209068025107090076271756239136457436592950550106306489589260007074842673850293144605277365000601683964700302390492170231836589863437362923677118332824550081008785898059803581344415873150202037843479689453101067561580372054579708261106875389775336253549659024944439716751977006617149095153546319398253632158310492565887355771165731128606481241138872023798793449549208826406796035812886363661076622749735556718494635682038555361398876025206682876737847567981884925385809273586063434895098739561226534464027616752763900533738389830980182185350727727557309270957327309149576860175987844487463721079101682411885059831233916581759727072759307338911743917357187166881668530182720985852800626018110340544411848412572907037794435631675062595066458432582701482638713605033939660719040918455733674528702724397921770104575407617431584597026649602136084827215545657448433619830433092732729324332175968189730906718251508959335968200987320836412673147686596309540366382668469799874319263910078197346928662159630152721161064067198719706596166910264220131292262985467838058454549813269235748407146144228647393638122294420271555875068906679040794265767647757859267271677369233694411514639426740102990633235995612339072044859992107960961267332804528457701698881442231356497643369036071453782120562971968143872087830767135266364486823612700882810789863734638585841080048587726703209844438391388031695660406080484196285737507879221384708979848647598207083417759646252322245516012146787273313265444599980889374999467199884348924316912486886896270005930601186391616918118900934608505724936380098302622974799379880181085214452986716654043022743714561218328861660635953134448693816793116511068016906267259179326931621114341929251955463991416854623267941722083261808320055807943225156059271162502217355479356355241476390795995444543095546893140896779842667123880724951601823676851216537627830229679667321609159879708386272809219078431406757949682041468818925066254891767392120673412232367035358071576954448035176098650447575340617103153014265015829855952863032548243190717118698302815681251966358420779172834632663958633788560593092263415250954907203839947857626119996740991636592854231940489676982067706523252273073403317466321272733110086103541591875788527961175806773457230174649248283898856295819053511042634980901425098217569496139313597614345172211685757556751920467570474833662556101927677465989515740189973923124844895582527449871443811989314807915201484786934336602945453344883695004605683161906606214990171096337820664973415504895003850000136626556401751376181512440916589213976073318191823254968867050622594580190546313230852899363770416178886160767799784315191619421516995453695665541610440606448646122984303450162166188864709489440879419537883046955223775164873035647637140158237796095356201667941255111335574014757383331342067777551828758878157509815986318693507970436528684495632164900331132197336752558556911813726587996320504161196713573108749260557002847757188161708646361108255584016174463638824868649812139019451080699334350684121236885146625414921454723701891369327985742889877874493623341976038331264534816488465675045259779543005662691441963020707188779341070911958448653712217656300080616979083191684902722314148462273255332352691183877249286352367758280048728802305195465221755786843003528720466667583552244943621737312287759091954435301651276915245631851621028300709201286654927401413574676764822673274563389042687390332878739934229902621423061017474532933263314142963667886696008269147025797101586858560419863332935227148662154735671414635527661781698570745430149384967570807487971363466869390564311326500895863268261734640530582194286284247332471309585325807104981141124549818351775614790218149315898235176865264093338188183284455135672276048924812222197515879635642496527070855563129087691629814887669457091001741939627872094758824324040438135726064738726065717678843514105617358389616002688702820379459965551363682277641361166189107356969019811541069303597355357382299081361349937576063264365294630985642045829978840185668867822828889474658407934017887421298820702328685791667964581781571795957571505278681787310524001495210523644104708346776984382741685855538955609731056391474421570270775169535254533894277176026276380793408766311584625248379107607328206202523506319554137869267453456020801281750653438212890443451520033095360913412436405712320075705472528089001950389793039724105422926408745136890723474360832737326167461736344416412648252790610382548524836955325260886136068834076715936925604332751997844422922149091745563812078742794590210235148884546129359792736380186131324152525177814928159124294678700333769280857013104883585753844066945431920189254195290264547534143442552614256138932648669702020064213730393218468691657988452533170799607618602423260184972852855548911783498773892495764909774361091743184448492228984533554053549793561444534916889117683953445959250660895447373851522775861276823467235340131983422975572018014604038013950726485866540631457847598330782677066258611876998218388120816717850290808166864908406210371029637278480891630517870564819126495508360249984916997111508497276653539473869663207645771068577790502246944497727646812244239813494807863640583568562092659146554409445963521450770289863743110265464296358341638301995087879006096195547005728561214898033426116024088879596683301160556461761138950393241135844280603654286942328737964852906138088037569882995960458917221414377565229972229517886289535014304014110332069012198074271452946326651163389057688178754383995835440161164451155249457460724959658105261430538621219340687627157659901770271647919855339539562709309370354112395286645580680466248919122936813906733221113230158616280219053798413099267355106679002612152948975476611988410251578987683890308634619751535802671501739433865651192094937230705228802361597602769196001356587657578664507533269611678533737620820168758961303431962213611212933699117098929603858722381690489977968705607970878283894502472384863061141330591770639604204907386355105147113026084046122704041507602672770044356752583400481941246384734818650366648538554940872681233059548712547960228170681669541639432038758716412852172090819008637628883251906580062140228673646188355661210606237424246577695695620247760628863606938750118590323614556626190465811471006311408998163574112864446063077773825505346402725646682496119517112039230995300370990598059037319260256955240981070433075563480208662253068647978583789672185718485122592801541352765830651879527338675256078954945201950885229345877479589707537712589764977835311011814241109469679747023704220819131725285064840285828664452388299498897068483287588860497055210204054870764122720313126522192750829633711619228113133150993089279115446710870370525711423531697751714856417040224494647000198371706740398176331269814712252531419009514689545592611918891767439381125444210231990655219819801328433316595182022031439303145420607241313103138011698503730597901672099003438786869301792760212820468753813814595817117723074610207148819234976222297746632888103266313781942201971107285862485060332262670970019213576241613484519705872932815651041036637292980540723924270254090340244953279954268405001861854587752107192927508512007839057417802065819286728915632489582008468234980927433229793121524053645003143122024342050411642947873358818774915621482145619917983065571297709131472707207357371140626369652728395662705353160043428903585376356664615257402354087580663062833654748017532308374937774761831367626435778096857391714255118419618924246982713407005888893495659816307061049390710505331822854408030693432679263007923407095965955084805041604158185504714991066276459556571329019555757230750811541506508644947564004160214204105225855230777144867516527393431244859034698735736989863247716185184606751390569191184338402406305064257099009863491667572832252581201509766848129459196171301537591943464224259141234309323157126605679113822154340957551471562045199305330214004218204951521634589664114420621427141526546494498483463026419879925331380930994328545266817937135163747593335196672455409019565668884394860613556963826710022315391370456016631994365875915474371555231813740582118138392003470254423077964808524258870349195602272269474959115318167794957146112073369158195926613165389683693224742230181644858061173943604776049557262195816657534647126038040887709223381312313028418467085879325969446020477768345695865498092796380630069066536361691268884060837842248978358170996830969904706339515970478652489395180299001838554325507057666261530595584190184359972529542903538588905825532887864120617822783847835402870985539279757347704167088245569603532068166165689369761675106875147011791339166333806786069354183333731066804899671172385770003408977577794145247556284139569364810982825174911509704814098394920050382924585977772962982140103244273493681709260270206669305430954979828900519428690988443586864920439546939368680410453949348488591330438014165071742327277029160430951077091933665386036311999783428614642125735015765004331213994037821816753583281321423409885393010409824654860709500669980860671616171760206476406822238606167043046210922376187490530845073761304419678760773866461110543734901077073128094190233374358016142409881740797898347377070897048480295022661390480988735776626433721434776291130926036321535292213646179752761982178349754361177230667098259077464411101199760106514548869549595862309113893106243253827428190524966767021628053950369069909060724693777923718260498753860863989487556740006460272967610158943296482842824048234190450330552228442299434515639972892406274945889445521396779776907291816555739784144695158252010040559180408593670382406586071424092273568355049511392072374498427379062889846470956006249447765488400543296952923600463378548360279609566666325784839014928685858346315939516363718794372538548971085696973332112756113228016782478343722063912620272068670967553068145718188373987986813430756697525257112196255849031662221407314808466330564566366870981162139907170217128418385102658998614092135063957511519373470557485101520372918632153350244196956330404641406591880083277188449408524375819738667353050017588173837496146240815189744392755151291003365603846651345733816521692532622498748573266590051754086002381039201017646703739350090482933537811732895006428286918299751624237043190490638167116594370855497506364478350859742681870030780049339661649269052642388887559110050688581398871471185129807321194326704464879588809337538215017247984265515131038250009774213674089194790268242896806454547788978897721360145643792851203455268487809585010379154730218144786041945716586187955674586372836489184539590233747275443620309380609037943558163197325784546564060766174747944782106885071709473775130377971562862266705908128461839306903043248054428880767684875111841910262456261199825179615248188722591205668288380377022027493624614881356553659870546678202434957380091746552978637268262127778555900870642977043726512622705028214208208150191444429449556090389980132516589998371641607097502335927032721219726926849672276752969926177804364860222844825084043400542368823500338154227278533370218040390676255060399328400545426013748374722074816840079156377313557297865967249575435938418817059097267158173944212565390761492149117272534488724656049358310759279960805601351272499609893648551277046936264957040977054111807626965712264238738667709390009040239505212822994825975356536250229906036293946808328265691140911669628178425769829407627629856224091320379202005229999614017260904127722144508554185300985071917118273400555897022997334968055545153517197126439590215501989648656489965479316456071702316464250536696967117256724929848589914162931281586849781369906252693987190472125375871254172887015671728679082951806156749850006904555870970457641907917893455276086085830370119617176602758704586143525802332136946801023651379657864237829795532734712164842437416399861029850780354975842080186929159058073020931459383912038519048643286055959624616472959131857016672112779325988544542584695362731070351397689701420498026854398673116887795259337555331384983475191937044674615052805306009537006233331727722109211688335318874692886501106887559741766300658369360636726611257529642526842120053049258177186416977407906621351016957339501191698644119457703680044140153900673997109687217019925136686789657661371033490377661208439365935398275890029866072024402894719058993147951775665171756450985566561068317841616725567957805402158221261648313365368267617479599739022194588954563435952191504076568406406726871357294545571774464310916317984983194818744558085850956014562424005450119441273839153962456061409806785017497056323509297335321360864569350347546271134966894946537857736885968787282296809896921425540205214297788620260976275320677121250214902137564815919782554432256035794349086787194855871166442591375542527641790350423762795175322562584696818546090545072123175654864668805481546838277573196200739567297218535649919477897489493070018100925273991664256426190822532712990979871700264321456220840490530960004754173047949682572103800592013026091657800358898395722276284773939818066520208008092043800744516167161398324529809582625390280988526410921407341154274368032555074401675498941847117936749296238323320677554781497404259016350851581833165984007683298822986412280550931824512404819681806317650602659712195043883159094719231990747622163397790984632378868192824115772964209650918567091547333496500692301155235439998788970925250602735458130810225197291608007548076349870260312357398273190148102520761215371032540382643957332699109511433659699753924217820775750551608101020542237013050689170168644156616093684907712781992323745797031689224839026684954644609107908386987365145812560021397731971823683053437425991118320806808888637934762941834591017459031767483295845958470532319661024633354524961284684427997388381492097713501151700922025407224776281095840015566843710146053288047079015242408588668223176559473465223171735080445858439929956233243390658690739971642443421565574720784189965773801758873590246561339255474744666872228724449210650813864436397815400789816157364699377640366648765786202161596903825540129828666975858564357507064452766210677841207950599834325634616265871803028301426092073147656668879377113815399762743905035409687810696500573266111505130690059842231404773305449178544604031048454451018852871809579249776075745108788315975188417142175857824258314714341811724097358326097292162899546880199275129933863671334812192610515421617834767253226997736721464311845272321704190987533777502589089534730017821094252636797404736238130712097248465660274546037422731195461003029953252810248871217531191354658688025148620071825555206783375857475419020332043512841865233644731259017646808982455500422362112742670688531189578331161689643874367461958308466925802859790892797350995621579981218390851979064862493707336954275542814411555607094822390791594661641256796869861339735002296056775136037908427341498660231526598220345195857325660297505115239127989592102871482258119211926166642312966146588440791997704561662420487811268195891803133500718002768333795685403287465200979186340548133643840082046623564653142128754965505249352934523560812616465556491297743228985328618981482567170685845213992018155162975982566005911776323341772477987521419151489035754609207017765113268709976413602007754359999822855151727160699319235234532131123905032184153015724621552913606418330264006137299187780127603438492833198604358153494431828011372639538558309102198878142939019867835141835379675248292572031345534113398753169831147989474388420742250201132717842502081302577911334911165729281526867963795942997621349274142226657025675149122266380374169626582948188424204204838014321982536307864625276791549619735975788709504036983629957704582072140603754433815926132778039300141110095397370277269429155844586340678115375933160973869134746590002732573887111692691306287567148501888625809700432359194860110039450596454107226575319411276712679770823421839866868179654812516454760991003455534825143357004758651790662427643033776393980225163899739277559197826365232743241342928557177738423600082344124930247271616492845957824516982813893838109631503845612914556026372778878433791778564481755796570603467163419465908941015421025731449564475178112873113360685226190637006025438992904022652298083765154616328951883224314365033142163706167797905162134868132890109394840151965459732234398671572144724578153272063725904170730530917992676629014732634898548646035527540365942216491193596926072910477968948006729418282711032878479879148508305488907003840189163262403008018291543027277305695307288428964364795073650681671959022813595311652611985827490448251020460394729074653334183792294967962835576844478020400809505736436076474033071175401654480286945832661383882054248019701667417426431614738737488631147368309499211644281199908412975575002557075514653982465195201680067743556496482933288091760136798741515099198695356871435167698876218204635612805158624867030428039460557445048220864654762162268174350147663776425494430899023118299668519874285575106549129392159621250676459561512505098200751524926128434078018630175395857108025861423657027536952597333728097659086156401876075358520258695484576290833758407726974459134283187519041934703675209025175162463011690659528608533262514261907726879990437032412066313395264223353159051147097804506092592090074225266441004965345019396729937036527222484982937721254960462312633482968157523834901811773615759187762928316492807382794461196892250851676764950649069101488801455906308461822442001652920794382605208806055314875736339785013325512397173481052044301990478445119005464213175814003925175736113453684312179481215561811878642647128466855950393258841721670521129547536592847739842281832692233924517669958407834883546132115381436618913230058157753369740568883654752667611204002293986619729693453122141377613115522200259337848250086133589263878283365106901186909238555561135434005711761544776391983381103476263575609843038534385075656066419267021721336073466056252978334782510821996917617749094937260672145186340052366937087773652522324036394168837733706417100638076274967768432239794389454406523731264318071050113078206201244717902212475344027128483805914538635166951264775480448576138411554596269612370473336248185498263812396694333399119226218913627408495310074296859256057233487914764694413855059272695692331441100057721751441020748680568559848955146004564433080169439833306546260447406727046888087947515942705585629059118474289060163557905975169331221037432811746923117998728923517762822928011633683438296098955996083979227082646024621168096842893598920938811908294490537285661683300372304074132467141562360308384470764933719833976609816707396608467883580179163646953156942362780535798790833894424777004557063671048465837201072857311104028343140882991753487539476763576750735950507308704301511307730564144199313290100850626457275158158306412174653279040614765150847729008831194604950072811922037310621880346980559115084171432992833156485739675614767780599141870929429261110563290383959156696078616049689959904597854159142916520887132905770048045631772609556329908660271288803143223397264907465221369208275279797582586984135334127458744372737408681968304925218258370292507452969058726523676216157336240707200039911922867585000541239125650371424921061496928229167861196302562695571155131676316355897344065358457584909276336490133838151351381495203990456414257762470694809621299111791996878361554607913411822431153603991018651968506010365836099667316220497982561592324425590817938204374545503709105947189559185940731738073376657028859880201608742180602453972209135981868888808329350338938718719303761187186280230998927403284856942221135394443916261002157796349413743821535780415803658105279564890176953475053925351548654394460997586608925259765882829976163614402073818371255061202540163512647350160977434044575106540387337967146872848188643609559452547424433091891969594692065445402749537290951773936469865969437104502764074293936396568090982623309614878957469336704949224729419708354293084229259732464400003164363761862036252020243022135461448359169935262074784008638609561929448764052287837941308821300151040481730259630240996418882392770822907533910283619938756948344917327622516053893168106843694338882305003278742336120590765850056189443270780741560447366125785968757454184179249075217542985654315825066498246472082878165132342679316476946512452873150133450621623315982381733738529763919394711775198459894282174174519144776208392945488344787604210188285064236630340836902347989644798796600279468879216995048706295777381983907859512064279460619711682682512533768367919494490030870142128779195600513897550692358072815845268517887724225810070694651302244812084466976201809770228566867662326491147830392249226554969237158206398018750002708266253501661734694782717695635325628848034733658323266753800788607053594578569767705824993999591854975642328131785734347026679248062321828505970652973356735554091584538040369269253304186750184234141647349383147942453315580823673621737988962337580792688736651115430335918318034283565212064377831642239206775365070390005923044644486380736157205191730349600761543496107277201609825490481203928388946921822682576764586406347912947780843807376547719821429696206064715438830136696319157281604898004484019520686017238115658794024126941352150507028306998153231802453805913229444728558500992749099713310182146203903788071391997806824609485978449610207008712413205282016922528457094328871067535854195828343834172126900128448718324478955427159821423900225266601511115058997402676190476493077557302201414636503713218928920812151715680172660899904471917311573221618931281346908880621424156998269065829966208178384387101410051626801814881568478828085018147957997849138545857275359389443019238596876575043743918029144541228573659569746769704387128496593451602025066681693040231246194607693418523728772932415887335944438508811922808744954533623788687954219353433598200149397617936098360273348972979340647697957014677067888433561157212318641406452459187112357477042869652012368021027538343568744830649656603835778977101399524252661824475753250273087419130000249772994184798261507856608876034424627729297636210085631149852764447012443934888138769729624389293798275720595022843881544419308426901944733046318250218012654224498110013833030019496532759303887360287712763235927474412278403199849427052770741089345157268011637625685717049347069235477367530943069060475136476654750339225263843820023894475832607047851353950566079584228337574549730812784592025036560777990039550151201172618267510903580542608310783643702587760845298548182322828447450965851804688445814504228416126478622427287588501137116077964276817704735063493059179822158643661894202107405286766219109709012069513582101818133313520101414468963537242716422195333872670016934151894457938755276330146637483741899408493866722368833216952755710655505943069491597983818892776164358304044148336108059240327607225322090961720465257038032230526085092956222975456593570084069405116822717129054625641047866077564028288845147960999894044992516166291644449463104192612662582441139031811409894984737996421306044867321814536888687411840358714319497908194760660738125562094125493630645866022797705522749198561153124214998866996932795577463353954498212926773246692714663741587837805389401633280431101516381586443325402835419640170488075543400535151742641182548217060997367206960768964872103684259952997603327389248371595031762400353617305831046711665900686649525734008077152762900319959322991086999024959742981985122366391736407651596992942431292792545674882186425229665253781831948708892419079369412525975591371662835324484757791705739678509623917027133643256616952343993689016447590883838991228638707453465068785284453586618704883874253905423232855190079066282078647703462881540630241962676338569956870660809039325971020631176520610046793195022550928177243421123365734078121471682774046701807661740217536514940216091671198442649790374384745440497774666685928609076192771891628019590292274671894817951550874972282054096809725785758839816540423668287896529774756320711256749686079754644583118590983262336980261632732457053745573610633803492526658028838087046845562624918173893789651517048865885077537461278795767780391300415468883140262033959640634549118927542720486761028182018659889515421502492787171678733276738706970308181537271995394519230788930952913763731090210510094537832863738169565302549447517210587867393644255121296640278908064545665572205233161948993843702857452569609761100209783241590295076998351947982617347529758228580882105737031542692689306676871699616585687928918448282664578490857994394671968709977576315066259563925463542889208488383774641365313656270829894948255564861538967738753412317486065764294491642061371460602271794280857540161495598407512173291117811536661426656350470120192742017584222965189844322322029213872299374138184849035553641390269564032159478060152922409149189018180533049192650821329687181110906646004877896759409838101254178812147479702889810243364547028117433830415874439464618380477054540688370197837480274559334940942950182277765718919875065157346513100336694837998394608195795589803991751444493266149613766010349009822919100016142916728264514769808882458750630324955863881577312832723324352302735933594186051024738821887020128505851461774697718674578230552878701069576009600862947357709791930873284518677299179014285495357069485656073874747439022204554121196730032418210596830043565598602974453450181249654915301725192749783303001247994559378226442778902496781395481782504398954735330828763724599834822999788379929484139086346436725673214359183711650167243086756975607725005783750234971563539367909201704297179236681768077751050488371036936689834716539791872261773626323921004761388643116262071228721322750517052009170155684236113516721537045710102150412197903344937458313304240040695070024862414684108746230665504503110009016381804452101712488651005270067333348413432535963734897640493998540586275851435272670680736907298918909015012845980867761253262940304487049423403012818874796778237191780397664573821533841294251597630339234323064371526344098363006266118934228150154823561015187361491765321175511437686330225117997137809073752560898909238500801283537078140070624638771126137249667837256027076802157990168922678662395755276898573131361153148908489503597608406115297147098879047407617705070004347633777337271882050729680447560346767741574824955673348520797012940875576035734813010330757136516355621297425671971185831749526458985523938824393760883966980868486160475657857218682475618914122433395667416532432129460573693761678184391689803294866303449738641191255691912206751919527916212551877700789495571197687333679029373520330317566144072967300102553701757582003240300782294094648378429728950876641168697663223380339762199276451449101532746559922746060247886146090098473761603250765450586913521542415824564689547782376021597347350645421208970695281989874151868103561814672120855388794931686941123790015860519035400857721600437763864343903817625196606705913048152890430807851735237252378094683196261784039463283795260812819271274363359288966455989819955032475810428370625827522861526349875960939809674850984329284630918436397825045882861650529611717547939462533168355467981444126218435659112710255335644860799599405817386063610135796823896542954419975547625624704328910884410490714373001574461649420075338311634920802253207877551149591651889171169587593300017825860581569082754732791889225438269106776366393262023519117426622374573175482026159018425403436471613999797921419679518717285953747120622524151552054626894315614407108920045237809896331321506304614340566085858109208977613021633818821706222815205928592010336534139525356619581669867080350124756365251854964885406026706767682838444745549144843582370273247194958035998202442672548228378945194902253475722191170082746362429205780371156037509472267450624393022647465467492001927039815050312325869025128122790501199022158312958431156083140442109291966312270756041262040188674788687587540522321544422134156288465333558580314654067193580807905622509519855616475029385489779647565398518510807308519268558463492214985524308243367051725365697447549794214356954864746181340397173461418938251253622763360422890358910061353846099707317668156459772953071595172811520609099917507825796321657231248728710601431466605927169290529310870733552686019921067862161691376106661915256807876511435217675013993700815474122763709618944463087288279736508875255195835429288126280082234631216617317778124612617887518954438331652543375964991379214684812991082290046031416791744109768611785575640128349953810523268877867451765712664987879869583257343492186559925192324699937994960623138465647737564835087510143788968973967250934824860601811691978596215724558505153117313824206925866818523031124797577208427607079759096428946267815193692699062204742762291779630563778107695868000210530568397114272275782676724881636260083695946171803164955072906041447262979038155745322574452430549418010193645291269594683146424037376500392785447660112952476732044049798403370007588393896582959657480815222342777776526564456346481572102023137195736371974436304593969875565227670076296770744849660678685952275371570654834173539007870082862426426219709049255333422520788743188314015001837861461447781509299211689033699621025138726390614290561217160726742655572955010524879184423375230947980763465403750591091093667034927091516326810475154658160931306585660146901997757136304690598768281831845601014051424988094568035699134567379149786390968697348178647155439778556031808045625513291075612069779137509844914117827086458959307427506321921301952784135841563285019675246952278429739240484181592043412935528387628900385881992499936082566786909781508017406150866370222521828201985105514236189937998067420788977725006747868337710352578301357561859214093488643131989716515356782856878995830542198264575088772247128611909076420634946573314866891004113973702812233134253720626928488446294749001329018409591739880072773380752102161540319410299257201672204219678002658824238287589180321571695711099735640184876566127434136708729986141641671157610908173821605769297700724196533975892530049293137181334120686162990060133224669385675527334497797648401820362530377796226818388067997597028525281487722932447440751645870684994061571628608094438898227062282666013636621713375898810696038067511003268662621522695818267209161906403296669303575801561169533617622524851905589280577227399246897201786400769973906152554596313180463743249701392059229008909535004382946553708968341670066510754711114266190903025354589556539349738983569175603671543470772674716369095661908316327928050102399075538568821810932069131869507699830989730535738863476817266171744456188277485150177600463661383281238138711216252052862805943619610613617613207388281496640798749621978638325548423086873874937267329862380726768876235357637442959300294044721271259456685023135624586925027242062401687717901761074550594399472689386888557596579441987875859997136477638646578489635092885469765362235821791825946565511831291905876555037423867448194017638474593601207556200986325178705087251530578452964716689695970036369626365128411200524048223408832259022571848171348103479540345045555729634468358154391400306640243286881184277146028669032487206371425151019854828242353942265573164166015978406053335981728962501326136187990394883833224616650220690065188575220888212856757335201569878281678098544806512365241382168053538163580245663647198114122724568406881799308160371363700000649991887188815097672625734431722758952767236837956865840183761879683879305637522954164865178487575721480555796453724476520420869880896392486707461056691582480165210973250397346200369235528565379341529197412282739501137713455635273932576485655555308705696476437542749113486125424990612796967487762207717897996965436089299025775977357439321550533955014505228996995519482501132505227801175620049849428938518294935828472901980851541535610945258331234699713576175095268173384956440206145905003966964562137385521283476653447059911135409831336269967601503253014745526257201637363832435892009328231290661439174427839289448987991290031552856015461149687275719800798431399945794293556313243567865580172101705814673175886302142269470784873740469004532754369541966108949802829402019370417802639706134990321843159730198681926290894373281229710487323196827408627801124208875946717801342562701399736011416486723664207449310223312592423990337776258870566059229324047662665352080159367539907968804318218056631310045605960516874343155270655825705317013844252080608211798798616349477101659906214997094210352250787871759593448328313926215527070664930926122154995526131140028700174593162525613744884593168462447368090597388245398986868289581750771775734723351078784423016997787603927404564444005820937030678436532388411692866786952960897146133985951773167648418599672297119080344678788485396269546021546607519943405105710281312900855407962406663133560287877974691859645617464959646895240592616501395861565802211199440157815419927351478599534729706296842829053865372608025708468136792501165654529623526853968787950401387788909692362414598397694717242049386430538638467140565535901239576143647875939617243337307646193411038361179573364189536744732922305118571834072539680880723052253628523848199729787225224436616186778750585922698768436425422638159348420100097333909078083907127373974121200395199734256492746370015875990315364551223279893878585088245900174385455192629343656622737410647898437332038082646373018610448373036690567548393659472331957480325512218034794826056560596459013357840041174279590196686173649261714198476372310047297871315961873350698242500756400080892931642967990984563345877572436142316274242475359704265243722441184979087283668587164742665000156500389139823713791179714639619995300597589327497402894517792070024673780654137942118784676204992924414559153145273073968492550865031486759299592141689460047791972103363509611037097127515133437528819606246541082647781424511095115809253780374517981039642256857349458074521262325324282254066353677978845380176383129759843984291112246789284554883533209482188738429801741751526198959994393161746251712795396616563492699682993346926119227725686371414969019758775373539442249156720440143428246270894304056585281708722778971625157090054446951094684429341001587306308641099580349658741783791079271114999955380536165809853219176739521447012617497812920424983370681321592549787012099473878806667002256308645919257357469926075856994532046889068391888606901789241117548752680080494050725179181324999783528500210876787890545015232645140962250014173876874210643261665113858473938597195481343890580011897689952354705244407561544922121340133992492199514676670147629128297193430283510859706688274024650448295482385070464233753070588362976726878346068384912426241043103490350987558368290401950561595100071853313426039992457114985679330673489897548425100040762492827472981184996953772976045232341652669760163856670030195192168708302175775239825302321881088392124374684085193673652570672765594681506419726554338937685594584453424971724175011057416088828300128368743252245604111111162380602117155748133202252327520977518208171156863616967123237887240636358072981552562092509134069620580545693869022074594014275322768330254788412397507368520028137730054315683233401327760128500713538825375236476461732065840389217408156932406183337628497006441974954773354919173010960017332800447950866130556944146527329271489576273776681468682584187570660571515153252763317154898667689998020627759400859330858369651556705024446980073885657107869771182683975765471995322398780547804118194300210386348409388139775991543199168965137488848690579891545469460606711463629138042541968105328734781954522035549587631581825190415632028937466905639226963048714719581852408953472464710866167255140112322169445274881271115426457237572111705930479057099965184166867574418910384633248129057640852725761992945287148716795502822238120092034607168684293449326210903735942740036185542349309817235597159174096920714376289996955422773920198157213102688688331756609873004127439625867930498212250645157929692341627983200985925907756615511926477581956886399052217775475521786033208258562454810856719479754570317178738840913424507451592472935465187335865589045454474083512237395989811251763048580595180531198437399696975315404887419140202201779473522848969148078795872442046570060811201312305351977613143227171893813019830730676269152670777914087025571682734648134790798113806306126539865599120871847337655419765393906223709423479730267743545539921672717664280008913456486541896962955688320078135276033555633341238604104118706443719778981608976584560731349816765828288961851749597567009333692852695928591321385615978935792425517056272995580661856183154112794691643192315132106483322323737426777088210810094153363671703518261983818413424946046069702327213570336339591717533010943275626636813766203626266500115356952910292836351719538868584188216886580934882692883863771194270296275112392598331314903734821844958938335687359762674287281973805048188969085860105290622904362785455911300587670846492626243112888426535865497502895580363935190969534240424606329092931035404606140937845112831398372619817232114502471655754573340768665429238076748265486739990309200742760110109932669973816740425031695082026687319590425967048503661982029268795059345564106699813886975217374175103267855566274974254951686314305740961197093490100558276247729498262305761543176035241839888537825143628985815774192772577460309143594717871478062787074820501646893327864337323453722826866459539216626865516478880578780941386912935433230586171700017686180784091123171353690992406436966736832197572086472959958443224878870488561579125252252649944189493735476783223838840561963233147034885616846275951816846443058525924600786218299006907754861397689873631516099689541235277745769891361932292287225735690044762851614774191959104121794609538869252663686791793221370945552500533684363380678893112649442629017582717690496787665558841604062194632596624950935471975221960586521423297441919645226974946524965966504505031583997975983119529810506418189039724464508700239185334055604165512053237255869016963165154843229611100639524806636129564237669851918992359482977417907336226361677271165384236905250343480083070055195209820711186187679127493472139328040804370394703561565132722202605877714807610673146876888726296600055627766300843863854250287381771057870545770026998374437506089356840833076580415944875614275445603656945652104905029698068371488624834146628259921707659514703998678030495725118824320375432177307063753803750742090310569970015087020329399233633896250794130055385350869045554689338672121512477120623996519164497426587277724733260290272381331407892968042243938893014992999086427400532534914020897676946663579692273900715970033675666856406515441524755779305406394710907346996596602350901871925157719188317950595613919199416163145581152304269064742382520879446100214530884737248113253314245292561228344745466199422089570604288206662134248363797508124350515858270469575297185105924144372013608891693260262674800116855897248583556994505732722711123057981098593994939469455202925228695302463970405058847162949052626027739907237851256590567546105766173764941100238877387866275398617112182378794193366444644517361762552178354700151232563587197786886953409429176571036463938315798714508741228588382592812412498514710664796664937041487692013027582173765407179206104876987655950280050623602140375916276394187860276298305001258249474463243962781975173728502101343236026812152110982672223171202894774269261163445721224538448093078231845535353166599530735600973709025562792623084281168546832607868163640869303531742810439023657011617677262830955056987021153918594317253272732465237182205424166299075575021817320351228863838953120760666721423411177866298445096201851144020124098985325087217760232308377636145260244544642631575614767254765678451130369043791093597598657138997088551136552708701145951422286184912233053043762534201562647158968460390369864594967015817288719563781811965952901768503143403936666190940632434058155159049012740375089885169959187352466122748686278456261847094828713579301065569940412783576649073711047015940256321966296220709568686344521621143813980948729542455650554853759281222249084615223254093676684863182651507954596596611638236635810600137715098304220177699132760555863267922100028451361639875717471889796919637140345173171823237974850973355032723520268589994867233852940057236919488117019627830260115801472396378427251025428556610721127307135990953243704994787914854186551743538722434537563202510318652985072195230192563485917362557744225857417748550010295538810504416854736073771193289505407926248149703538845749554604036366268545370069583984729331458643924583560749263831320881882567567080759107939922709656161134077737578119578837098425852792493216001643031193235778719518327468520232116366587846914149301921822684224721965870253503152935905759238961431465457230889199290487132574424103646983608572145995479976385992996822920373165866521859448859165676406485579884342986432876046440427808084018597917650196822849279167289738956257648730306744148045228244061311476697126717225440478429809814504283186659575995695394230448510781635724468204795935505852114354590508288747177421674436256498512429092500234179635224409408445130836585565141154408301232782410079205382309075905552881575540845116259759042864436234173532693847014779628377942261135380689065504642523875148714508094574432306729054889309250673749464807429184442414211375424791896004978525483069291099432213215711075675191559507158397168840494434029320051503225333666416467432636559212084268568377238153004268818768738439251533424704383218527067390218431086058204569696028630654687422453185793219065040247173536731475346036939740336312775305771801622421086554214730622839353250877169356675707209875970370765925112266045191720975324415967082273075465194729318851207283762752645878069116458060845438349858372967224530942848164961777659575074157420179386623565657741628517195599961319360576028113763064397181601872528330412308725053645699604234049509714539392517678090921133297482101846526722642712233068558227726457964703880769340387806876409408702796269718796722463951141198117344876261194995535898796676911784681657673091445498979244106940716961219769070066934251612396140574829380662626371916949541314728016415488548722745064366538787401031994960155117316624900938921478996582219548211873418760142242249346616965847647170416346683069210659388382434933641404768088357271424067776477931394644064352289846890972529037488387700670133907952022115325741506524651935927652770681970274033974002376408223591551312243784326803662320240837198288812499731897398697164271882206609240817669035087363663139738979729875958919409718659360027296529633788415611147161397596473216227353259279658159295501619325523576107493010165149294839753527329258394590881033202604549750284292038884309708977027924383219418411613929219426933733136558709169259673750283409244775870564344426849965239570644932912482818614322038749241148642214671479191403677165010641487913851614405198096899409488876330831807886902043990616337011159523185463683801061564131683684716042176538688262242045667730458805624681055098983558779978791766636564920413852875889959268278919277714756131770583560375105411436875059819458329213404734703962730807891753638722269539121289928548402170853894660967034493381103026740452237173064783613529513847670414879236013084441025532413006468191981007795297201576826864631151419012138229829956563619541884964776218651172254749973994850630922215374300374525221700958734036206626862739289294917643562971646321800964721782716132307414969008174301407175573455601419365367386729206309624853555328476915671204937436624307338715749997639784674382581622000843426269262659582897329603129421274293158747923232058292570883250754754376313263298463299922457806244460477639971169979177946147209787277540061602671885071605625655237929129495303938548846475238901063407155218912472988761845525538180267256690967907561849016036607783153598790457968727262326959045089930796030542457611366530929478054716348188406003415930599172655500881812019838214817926201762671321107178588425535277086040721965648462198342992684611164270675360919363209893207313512699750966007607734886876568652226889789073211175463914570649912370676802974594564181429323964531831384442744965218020580791881133480621614678427467417044704030303338709984281618315664632446202006104895511093232090974538726225754178227147173225613251834681894818183069982525400038560647319641517615793612317551763027105784593343202290696118829061799745872168185329147730799965924153383965640103398117698561687682857826294530872772399440611763782874883096594492475039153539125317556923267345496029785475194114462483309855227203992384895577736390963347222162715082358111861775161265284184618877330352059583098652865780903142838109982651659329736304621890905241739383032160325199020561662148798530110752946524234856968649041579976642699538595284925577847362248226467818619987286647167764590729792393339795173130419549303657582041089296855224392931793487140336951258295984814697824345867908423610173026741487145349158693431627787980979255394903238802594475022515425896457436981073156687569527888881232004501519474155984191005910100350372435473196794434326028488632218279890450624901925244301085059199129588864060093124045740216490218393244945489019662326597388325837681776805250129979484242581508264121896387340545565563996774205808129114972663829023273594905596446747759273470306153070634948062797219785581688605460203277229083151453761437215010650602951039083194141403669801908805652320616515536354987020943444448991371884465739770449335608469423446158901547218690942253571001544168263043991357454966917008714343711538796476248000452205194996580608771229384045924543995440909002368838789756169432783832066600113732080882973765078795394256627216018593179143038897892509406070501132454890951410219348591475598090722084377053082039737136082946107926794724022734297107994887206208661735656283450445710463240941109789901114141662396441159741759424348797453988319025749624355369385453513374162899910845489216466842802741269786718032481496321869953653503242455338795274520391700920338110365168871039998536512856082543598148551809870701247262216613553574617621932127165021079067220973646165365828140813102847603391079714552604481675736440365872997375988222934228930732806085653204338895621886800541332347191495610023942655136964588474561602370205600851761269572176081823304853375287590928384203764949773688052494791834767119541540392569572234574131889084416674504732358838286992369883698010015702390955500483467731476044422786272978901177537625483102294473071588766782337129025591218064291600152785385057113647605852257262345152228587214103318061541205121800443867643169457884664444255769928718216690671764877163731635651695896995206866689501497390853159129532386669053294729090669909242799324815613084581545903978119933886630920115274941317276862835670102380020406064477948629166383688570292306630753679314979673607964415917189576079584543374561815219539910231123989996196296725581544503390823918339911704113965109920579668008347211091916142209582134258330182502516735202895469722684506513235864736993973238832078604512112281394729002158367848058820375639730534777244144552472750350634585387698004158416166631205103289940616131043231469601308953203944825046738827925899394693353089588517774533509639164671018931925415366765915148116378260272078027458285398486582360831013190859639104286030678307147930531460748589709450101716526872208682614455029169478980139219115166584260765336946357702112090595545193461513130900708637010123133209780406106082634552692352130905284044698907630461699725267399116214055767750700277388199768279451187284086784206745430581230097709811346715345424374089931437258315541273251440327091148014000267401388919805289646546312789682957352635018221546421268997382638868818063623704857363010387365608520051555588707584193666971822061739332736692584191042065527807308032234586594814060989132020312748520225922885876624113664745471410107823755242583854557647887526307721080224564691279825745899245396253739269951625487378567787535657443753220694689516104028485417208717219375083811900295110815260989339187925238808002271680762121777128699284456420831521137324699917535575900264213290497617714923327938838641908149197595907805995677852069711573765151311297582720931734439527464163579801575438980082266750227278478775544778421792399690153187761912048612570009283230176282496891278655859182123805009820488567060730158997551226081026416170549942569900038001013589693774217112341966026178169741049628779449039004866123163323172745136109774945104386288481892434984853360497500271735937331872145922980330638226736250879136354244677707094513773613456296549408416608768063935983465500554886353856108820024421665074441317540895132657155876970677674943873318079453750336040517237023549778007467195358360873473375865432702136745672321188009003614522783749233079876984225627102423757579348387925163121207012064876290312483281649785273965698208584025196110816929182229016425783326194986954340465889520286468952813895695596893159255107872403640548397403819322269916828436907440910983026808201114472453029514957766353712838595047174726816727821007156077082827926592309410949451258845138135734471995410736260126197404633197654653918817029406580041291547262456372079267802404425226412330651974982302425849127741681608353532064822974263509248661688564653129405339001236990001361667004525838667025634636922465360669728642175363047281089325263257778263053174243727890365404226232042872938344578568293853967917311768551731612963485895030791031860463690010017555678200770614314534033500261899620259886672773733288107409974446796344130977372662398398028005033730419587218141498860475903381837791083423858471213286079207061311923375602360811720183358472687269477839627204516443996136618562393726732005157684270939897587283016633500378589139685550795498629149053125447583043405174875294254852147679488196819684769566131470569923703619927368012997203829660706354764761241245972284393085130613221430396557242831058765600022047519484651288866581192758832625079392564707441980477187084246154242602818266600239102279681927490571728698557662564848819079673331020750132913373647626349329540805031598721259856710264908723308898612108639649762005607740916211241241010914690813780076763602356419296094863103131078993671651362029485247904475482880099233354663810655416814765547855602044662326005690390502550394906193621413604167168466410096606289355176692969443537787748995693935574651748474207016516245124237618015417225560422178674659333531198424405833031249268054513198049892270843571635283545165637385769341873473283838009643764554041609591851098563647425371391712616840081181231730795377277893079038482806473513415050841017970878223544217799715698183848066424395814306359600917439081716880644119369441917578196002330682902240839893449888490757071254344993184021629719199058699586835178612024634020178012187911301965046100140720663766301056827693146018932849526857812343725095116551267096879599286974678876199129067667360091387812744894969892769689859096898516920538205956396855459439498610070532399018450214670716637662141124177776182942987521954437324155950191831982237660558580354108196063033919348813482367675751916353918209577889625974622258193619160860230739102562595707017132219725437268271877764409234467498588456443846908829071721807808040647985003905436445926625258246114920745084184998388360601537282835742585830090072009959623817924947888686405868620117954041405575773640487447724603962335479107458155036880834041785002810753091838338076245888659476597366433804362129725705630326123280062972488871724961030880168278793357842089964718387631713620267142564641087595265828117343119905375473290461912367459679873436998885962700393271863422373183810754792225178666819044092269335310285123196253273494087615971013041371661814575025487164997790122269224426909065789000161124637253898613191379557751939176308807560853085785357700595929728386617333564191593096579619939689172918909631492950674329555453551891827061201868428411469284212978847537890568417910821660362436898308761264834296161612947139865628362319359217523467811286230165195167280935131223376053588454731821431208653722506911988888187228058847864781485362479021981843381613486112869691691864947249371075068454567797687613208233070883372933431464554434545205769207417293468023887018702211242835138756795320234691653162030379330653241386376324243943485954976860404137132284966638379574820677541325401614743123821086174947173415594539494937544071248126258790877512324925843155239798247921592143907882937397188530905402334873604889009879549768427237991663258198777822778899516162326933182926879427030394515344793825659906252160979739497114353965192305662629426319273908891173982638895426825167807802127878615023652344161115790736069158504795089689354606541110462503926414899935243260307117374597470406107596675265659107679535765181041685237948231812333635139146544266921441902364791064741267779387775474969914820825522470272048661268959267666944978731369453472141549161429801511029565194724250651919092586676993396694405237167258712506848294759189052973910017178107831315770684275291745413362236938523680470535488867022796011453453408031033413394381390225726570397197785940816171636013294479141666825894806747567030292085330296019113790447327356987797444150468134835850380381595844155345734854840117877154743395891962684840990437744237927991947791670327176328524506885632244159691727160184224766264859984670703568752029106196725925086605190346850838962274632754417910366626815723224226992387525968713837881156701696444844202355776895271969148264774060858751936942251210954171951249318663765019578526709526600436751156877633809780104859409497292017476855907074665344122260034518061012414780748343284021989687530090215237389243925041229392433598197064586405908803243185113645671455590606926219823687688749939432726426741735480969588037480558613385475746360441878070039774472145872073871871701415834906173841129010918130269071661686206134956152798222117682257124568765304820155828721864550774460574528932640062421225013793723153788173700579917153651421240783902482926711563848945298588907070722850467586820929012660203908880907239412108263822891989502032525879049526676395449988085189298176663497233274115127673621966435294768473272713432048728845717463403687733841101568221155315753132001489900609191387895047099314471440966327274133947425643171871228144244350976303639496645928114687260644861865811440105002875934753196084505123489570943968329243880573223532250090638485126632631918382396490040824158594058647407763379274574993263072975691335264448556058331419042286111864638743799400191190480559468490829041572302850832999562305336405034774109682713697116540656635790190524396453055052478382479939349013426367501372762174384214827456835034374535182326470614146602478474829614621220818868710917335506617722626690150186778976223359064185796047459552980372107998311327204145799441228461178483676951244522335665556753031724606471330639798883348231660500184483823202796479937632557938516337386173251345862565223908006189887756327533904434447169998198306129205233135067771575667159630708553078582363579195469258558086758111007719359220905774571380141376565963094469030055060346401085729382884820375525179892844674264493803810375220348736776505987461823614580252223871533616152066069636343748683618799128901103203665055615489391929787337509535974934607233743956939798177981963017669801892576231648913411361379954016147536967283501240812465409650366995270975003400228030971061148589791146336393585843435270356510943297942680072632633277176386674169469200124259299561468142643087102227369099945331954722567680598300225353250094166998038402448308931789740437305275279495856557887743923021484329524388257353122767139683703476961814124375597083729016453138200122628126976938060061379283240871995028654474772543230818279959916440038502662108567528126237951682654806008199499056669281441874204158682163194369938134717241437696160034724713529137298612375292686214628247670148208311783788997781100325747131961424715312235402803052627832156144568318201983777254679837325537554090654514418260849373133107814972761924803972843038737886681096990961159153907508026655163278317301055005058631555573669320812226098965891607341865032647327872759175803831522524853118917948089904986616377861552837754176487256568575219237954320963139020681260537629397694479407811787842442664434166255947260298041903777083935551401815871911810431435554838451165697202070973830324175704327747430481900777614968886823449554465213372850027420653580060656804898431364152262572034752834143201738917839799470254554459068664950224692952743380424918144221359178765962365840725204148695120972718723328665875249975899606472953432094546518894227258212437253168285190525198077061028815865752974336638170198238228741860112133546273941912526935249192788975884679678680005917873449892550803470215185772895785005486908081838395325289990095973953298564622552754124783229791363022873030535604848218971793151612638514717686780488303900995182780297925641980915858024945318140062890843990634413424874608370332756284358800282806837161960921267130281706897447774027002240292795786698699238423256520533908265786446537375150197816655999117684603187452209831519027997633338560556613940514305842552597716044915978384956127361176059268975175314897109410651105021428976275610465377699713446707189815357999311703348610836935764138818719606606550442442736794695052015339741694759663037332844143489267649364918798519058157245022193473095519940194737044646250569060736156381274060115983193375721434508786243257823040636250998376499816791890693713960006262426728522096925377853669050514503129329186261773978644022737762426115781898737738066076852646597372719561044150260257176883367254718995866280875271345198828544492009259554635712232343706694914589904541257502532826204694785992902845004631882424484831097413237635908430835483974041518026320041572383825917904481091008796933625396050768873860060329718161910112724427587179188120556359590212340754758338026308950751895469060724622584438036859229125854901488387248085779670577743731059468495766503935148296314088964462331876844220963123146602131363949457644880701704967755698267433502127039575265495236145111819588005671538530704221908777917212270331302056616861392749493921410891335199184401998271889155731297628417205985647740621753775058104717922702652539436841460238288059741178396068627195990382847526846508709992177785342646727602945290150893382697360670598142183759844528214371957708522434990624307361635398977824918516767216169319155757149481750494362123813714635344059933505703220007609128359102484623068908449477509511292882507756419318540197107680329094946806039535250524033764162569589990382722456702104443506483382262314537494047564433994503757522901297365443875077409500815268451187613478177644890332886268339897753916800908530002215149393638254763725654656407265769941952354015087080467738912606821011168325564246028601889017868774203001367453622919769777367771025948864858986375665344943872150611760181865825158141233264382270300935055020411931698161192288993763123994467893369560536222137701470733691183492058935993966770918450850568622466567943539341843160472053639153966545333033983664519726234289453123515775231964366124875756770955087064564190340985749274483366081644027880078696857513386557114527522799654675109774632295945494051630995596660330941507545365542298690876315551094781045539486901565008079140314954098365133778217543073937599384594998538161707150736105665777569152855606222889150606359397836333352670094042084602302634303914437894718414360886713420753165563035829474588553992542826329677855625821238724468130780381225768425589228714074771612437043703750305113775533856142123370660971845808439908170289114347499352365576066006119592346237145303974581041425066411340556830118631788419447037489728993753076098877083974611274617608096692339170765557557152265370222082138879814099582264364544058287195689118208039143740571155923560345619395014826108085795399389054544781870185523092675333544476230304086433480120038731431971837269182721888532919982881457954998108429316055574165386577785612032900486526126219161110610905062321077863917700307538346506056745773733625606655156963162654330135685920456237740665235967911042163242708080185310966194369213464190642587357587966168886308359020771078066338815242565749187345331726681271020221854073436053102395761763008328555521305953111431577054024913472907068925406502821759366417834181682515182867976046201167253092987877711028314600659681285765135457561527111005386232378337962316357870998279866915467737965748255897296654148683530280568673297046774256979207163758774216381827971352820984993886021175256814740954539856384640792780468831721999879668514080251558910334373914716825462040636235494996252496099249031622962056005379206680823751337233542437835815164835942145772382216930804202737780312187280473456335099491631511409310915991557445252943153583476420333975230245682643034640821182612379355619510981405221205210235955772180565089292965524143140452372666794047015776670091126904175945861913151198427626120982679207534981101033107625870370170435919717275622939666740449160150511420650200114674347844503663265348048233382722369797536692180644267609280031844137876184825863517399584314371138658232586781578195678520542263386322083487668146421535140204913628543737356670243883480443930102653192472450538124559543225666279688641206306496340847249748213891446253147739286066720042268767087816701448916642181524517986234913055401954394216294070155184540740143312934534080555680052433477237907046355305222076913104356279237265340981913217100460606494038169726773368735440268140921174654234159430105061347758250466544536397131282250987934639890221580182813216337886944520612529699973722429208777790779253339237803418327853092379168702066909139350182524298765685417288946969707252469241259936900745736089161498718375454270837875265668816623294326323926671367718277497410232580065909404751102737544240679180169882774274253371490470794595287611011302449281803546455911717135644478232793584766902273618688969108451903583587876553656340626463593062777177778571542253641939733049342253878275599650524398355382420579331145858165695397016365394830426893080452899035746318194884136126237740471931765435213749579023067235584427012291135961078233063273264809405563272606227746188041805101622673545840049739808961130312958897977222086504270264403086173917317427514112702885702108960223404325612492572471472250238434370212776382811559096477034813231329893450644461655077246012471734961378447405480734280017657525565209040485350598998549885720116144451938765520012119927702856784519562741556529652061947828508220853285356694834040209840371879086049564819120221179534148981571569241733944278330240078212486795502489392676451016297220817653624712700248073565467918425957304284599991941809116275073861928038258420855316166533720414729335971526975262514744943032278387506245952383908947103407204368186116384492689064323194348394909600562768554800917699094707602254449855305702147975764314823638851347777303894287704458160547190809596357386643635658749886624227628506994453706555521766674491048476201511147381569859368680752156711316545055408842595275164470772758771949797150544997341825072130277506462392407938972460498652440567371509251560447063969247974435995675101579941301006127606877901892930452579461672194908207386079446163827277175999332742847485046097464970505193129078567052829164525957501033271966525146451854151038949579749154647007239675569575766805718956707878886142776826756514341031894854167016736221421249597002186278301116425806603239081221250918249921422918303325591888179075749729779173779388864778814647005679074587106914625885455305691968683884770824942394780191275510213152685550121028536035669739477069857322085406523105435322104352020176247989693109231894371847962237912233562885366766217305765286622176748867839550177547657428590073160701971572355191899090211193454588733572104885251311821096477218745790872982708285903717875873901451487665290800555169475164207492000718216368400037878104845431116512564045256271735638146095987903343557353651116809767879323527522000735363868549314762868243886634070830406920988514823038709952839902111061257744515210827823194806057574346968697984270267297813020706960201297760045879946933547958614879187415756906062246189184981667885070248228094929897914899612384347162494230937033640536944302854680700629028344611246473491846557980743020448683469139514328280973201519650217683652443335415182730462933636912255962146140518035026963750075480941969205348514883719662450071488448018643018603268026397900925785005435166985370082392299448851816052610115861729788459432222652560690380410716386819116535573782032718322564087975149305430556807073301697745600451533490523039919971651873942596077686638223221172199428061864866406827356183019394938355009817013243493515572522558883827711507976160034219591096234356076204328721654899117714923318816888551582459678307580673935156412973189039910150248611093478912313801542106186267195820522531070455471039772748611288170090172686614970345601617174803048849856602453097768115590472844536130493940271578167736290147159746056277394294429076931603052147093833207607758337018758642280704618858041964145857449963016151276594506239891921071561374030384680197009009423183617927869366210802811783254893021123589904230161061556396475224651754776307803828166477785103803999805496154615684597551110953583260659751998853436373370953390458046340580777834766269717039830162440701961371320243657452877377323815285607782226594896668109306709278095923456586984407928091553314524648980352232434120462820763360245410498889011330806459896657866718012676222923109386870019151088513675175264737262800230819755222024525560731617293452204559877066638020768200562399079798576377763245370703214478168364471334363602078569529397045052286113305669655525567348059978831442252340247989615440330224634670539724294365428906688242884840479143465919484871411290185800363973805531006714147487820684253859586451739167530024459045441962661731516267044707041049406568524531710356442966261408173370116895762963085978386958605819126845973263173143392577363050359784309262042505415582140397447705361741712968646677934565212563006028714494257473329565030774948766182214743410863908920524607484183831298207790481312641153346187686094016362224676628352822233759022718292533623562109027872340655968249126543962224763761637816065991691348770101661432827680728115228223196803232158983388409417022149707452991132725073110796636209655046091196726152715974417367906581079488697337822306823843995716130070836683934512495155849884255097028457569494907489284576010419778995718802796737801960541367207562005895629463385420911999469915789264077612639450256166031380370130825578500418951121998680280339545632547244518404163094360356796219137030582060040711381075082254251011791694504724537443536074366733574828587556759789188262969274844142020602936238158606917642241628405344971020666242131481570832044020424893213165778209112508878841983049187284709014316771339457607961870160732995912397506720750629194801787165656915927014078126475427212531925934190955565893514593357913857582171970534608499222553233490278650668965420016757249313386071519386920345047485019616023403991795325022347928480276500093416038270259370706957808314149222335809974509117347034006043337127755783662791975593544556739738267786876692201315222873548298882668524381586288743737443007215695245120107025064351874340388193832181309341613794770313769112458172775979943806862709629053845091335394395650147368603743797460275506808104092958817888364937822822031562393998583174782728950473390584396726912553100367402966477415297068654793454967784473577911043469421362409557101031113393150452617332173343074217302675779628710605761899901164710357484788632465248909212162000970362517365814521008117946892142046315182718542611367723633451588140635157841210525632038671946975210984251775870843773961982290465868963472753970927929664781235088340342433372684886948725602263389153532622053316049483064633574411056452560336266842569756967528218760857350843374016146971249048078496550957624692092951015858072508091186153226239138813174173380591728318457519318521815474096770166924281004686243643230153279697832502927370078227351893711511237716033069354839893479505526062197566852843762674938371755267341126558405219048295264249226135763313710923128313365719945667250595184786150355066727821697105789601713203645056575047975877481786531250120771129023779936473227146065455290990456885489945126898178865359171021899493346936118090773362403461768265867191354966499716884540680663496558614525149212291482638284628037343077650769017553812993670407793894629477345774512757645632515763971859406585173126963656880085359249409979946068810812473058826066929801756509471351648730083703163421040299044654093855859245081361800155325573915208305439394402135699259715729636081276819231884342063254267911680065441366876359280544189276916266407641720186522098114877089091649302273906376501122714914191142255193885351715445527544851532810983722413422852525572133961847667094837151661923044884244632680469184023942546991853666942169547026523219385287775338862102882521898534702049806277233698143969454816366781504236208464483074417487587366835146564178521153859083364678985621251660726496054948140854642482592910920190812688817324139261428331082151018558172702887163347560944990386259722523084446201098768510225999231486606771453251232735662355977649401597724420935655726555330599141886830703906583372576954247734620166321658657044186477632529339403165526160871845293759690968677737473871203846228376779309099239235897107329988097328819974145894341509633836166154844245268821913022283066792095933373060337617617992078700466982359471147502781910944602334099165806497121075623860745591221641483303472126240753036677987878296213572129785911623264533830335611655901228867174055723377918829779747457421724839981354465101153658726939502419218127724186946578719184646011065225719182967192414949948051732112091003854535757286594779914781922949830724711081664440308751099895820503821212437034977626002417851431812491293689783622238227326731083390537518714770491603105929408164490320256638966657646814471449332202655017300411084904935318567489380136157665186180903153269754463279308949244444819281101592784218959600639959965695252804247210613856299756037617089533512447394691442532123215917700891186386391463946506955978876616303294787957668769522340111673702778623731159783197455303888362645655750067820729310604511357480361905149643229001472950941152080714901670497785116791616137769899847787578700369695935318620939154316061640184780390305895026329654365465043773835580681127100757436277958481623415839590921912120115758341553650446554868785316224549524499907955015863820626307250165267237250776749711028082416458505821636857160108052407587705701397765509973029766740208276512682332922312238535075671367371162971072850001992801712090804104173106846657557735398455381426925743816355793893238007144233103629731121887641256012574468466598341364297525554947038071491796923521898721571909840601303818338914209905598328298641285217088724109434526493822487684310992091819005804800140155468847586724262981815278917972087280153473548869330254242851184841778462699613439108313760360731730745514584753640188896190372751581394410397520687248139298701713490617247471499565184626526042666725472347519937887434487852057053973545506749504171218189186623572840471499773843492362064988827004905446198036582126360973530196990901747691477649027567565589433834304407734530930184042274799833409468023008478009807179044039337940620765773002377934630065291952077848469478207307281389094792068198341912105930278498381534293208449645611997914308388092995493685384081519805356997152865128878138170853230294618329350607838439598677649986366980620721458429291770604863233894159995682393969704720843207747581457254292630790857067978526937112079185218552628605672339397679753261323848955090042149410536876078078734599967968371450437820740790316444462965984711143562063806849769900867260492012249999245612777662184774812477550779475967514087202000732025066075262492151518620167836189259124927759286040791198464883299795284590524797357666867604592875386267262100921825787955489370716335077949615514734945860553148644167139622878804812808781394797853988577379664405977695702923396680910462272128994966129404571098050510432066851292655615716940091167976710710591147252889142869616962436752654377300782347401523466229462015108583343817781388406972196815511929155364505077249477203405830887454007420902307068403095052241011892607174031376701813635450287519780269335740236155396061185118022027865649606903127462764990181765333669015373692154258565147344484036078365525483756623913164962635851649356147609746957334363593600940254733373435232484355869141926699357658161046179851772032021856932884359166832176654060854678413258886760979518324704616174316528305017008864861174251968195496882447015998537596621829982639410617106856359690265036993795681677474166712590314695317313537268449106678061783970756283206923806839091110285910238968719582514617243257350412010949503514030108074979513363601441493180577699237711479488835962017466564473605460368622090511276525970691081163495895657793885446639368638497378754781797726361126958514477013803056566859463260620524947968774195427005198456708833941864635327598824713683665744112702216689226371595253440980001808559902463805739653716399929961600360383479265660569190576587706296400903786810476986592933835975347721682609141648459363865881966694793642181197127185560715422058896703908510285768298427398436724864088656551045462244139413750097169322851569510661281328109756440806389363477079787234148655574231797093896974182705311688106447491134881073057830013138533796113196798847255348722163723865385419006097438207396386167972909938452231209622858705035545010798932182397322594651623289880750651828676408623678488310511215359449685418380640391714248558465391302167596591546766725694195731147798299172757126755882974861582879720153237146361848766569132928046151814975727360395245930812784049630331536542616558314505953466627310362980507910353639078329068817089004597351166325363604292402637081991072624914134014488353281658727296001417889349334671686189016996067639267510136042079465136302565334387465187048799269724780979429002881540310501108481714131824671330071203578726145757476816285609745972741887123913669641322966648178019976293941854379620223505243282933914348120249568974831719791506115878950891803510660834542850376386164442082591197351046539862985059090744424038479945183183312120073196198241841536501878240631851021190903300389146352031186916424779855809406155709617691685190725163150674305742666996828581285705788029356710408880393424160329917363980577860793000783866632896538946091303313393877554909019811504340667450655854247978454676501318409181193607984030159551901458471754117166954960569656085660608233978215111706527539958852477013191173652504747065282910522388827380999906584465338500295102782198078394185424763367002085238417405208413204814203459948084514674138438128877814908089182876785127467821961498629862302743404719984880270757074735375149046286128708950314882435437896592497197654547354041412137519950434967919846211628105432170764692156947114756871852458668034687096366765518727679234964513791953714043033284367775913386110313232324532620427004150337552518468993796470834392311876480485443424374357820773143565316583241418988257515747294431693305409849394832228881323921620752237079590400164285534372834223918188734066615839868459941294748535063349192877163043484870203902726429260610608724276430457251850766879684169917259645569732954432418206295062317243472645252051935898844787541028040051146792030233870518488901719652753039238697879490140614282728201196421065681474771810068164698512493614221723686755805525975519743806057994324330815898611612374700572604894235703591300652749910894047384614507802685431717587223937965380295281082511227966445912652422749716257381894515905843522235656057564109623428326122742284932298019443981236786172333058819999184291864974621699116249073251288757269541591495336108954965924324466895131432707667529469238191691548730126488538697439363599870506129882683187943482852814847904714826836968189230375040565786126309818852377693383012532637162942482264559050705835784723758575989660558087119757921903441293853720450709139572753743444444380573738636159493477873677049212475410304837712775939445410881209187623647794100476095081226466118273700845456582717377676618941611754663201454828262442788592749122265208396189182299830919060020712544589689435317144940350292697178672608260239373229348072226738453467686648000662318979068656619023309882710727416547778818798109326791170753270327372754006528363943230514472166284063679431293886329817296510560997507524950649269052269906789244293558185860173794283395678844027132409593206498277769404757937656862056798516680759044587247046808993151178616211091194887292483165352249209330219058177405757502162652969576181551010194414371386975431082939062103423731025611579877322136927850375736104039196435594242079752965850023727813396034756111084627373673546242758440359325299066466653447211632578706463387419175045840495139581172492203461389111944664067301152295662869880303375138305337511480247185580498785409930346413826826181857379654659173016065459227521571832629132569407735049525226658202385430147587863474185964997830550096130352058623360078722300012277356402693534093367897228626418470895181442935963037733492045933397815042859319322241582690057976870616122602185979349606991928180288799079767129190135488453263809535752097295837359601572829944746798318844001550686640609755942519684940023475812044872476530239018573268900315837165689618636233959632179447154090391433259970426324921311516643048699318933192752133033560806038537403960485355971454963414712482404766209530812322011722146255954944820413459848528292927620016436311234600281373648886115522336885823287326544958876239657135581962901745472057966391137496368842000361558993277862642771057638648440390900078267152588478904131590427817918434367890628040669143376946415717520638495275750640555953365383508350721999414292823469544806758155439148976855769364499984599379123118369415808879580015549571652813018533124958000225660789092363874803175365040091000520091455610065275187323218174859523193251451213022208346156601922800863047504911642053879587776614078062766335122104738666472837976191650542680968754314859904348481409940565836915488462933887073194125809573017156139021177159810334003958098112115672101682164743839306573311182665896917520687636991186288287561295005288784048918389431695121589317909864629690743647342526040962842184894296356579079038383771321190899740196333266211139956649435765978297690795844773727963802871245362896809247412833233657985759104441195210165660860518461270856094973254054677991638288823086168446500714814488619500365392971400537144699393409314190299592969825468277150638345680126864344132559925244845606075205122803188429119723698208424116532620950930611508430211766700486327177312542773432583449140384904009564324311132264650248755513671602181201594517212767618902509937891739542199690910260854562057626281942659990045634410920456007435238070630438183394338259782871629168078663403394674622833669762380169914727354970468134330959823942664239626883682931680383921228376294908569800713979527711799736904854934005794356398761889701439193398418831294322109467580467520489124037175687289671792679344556411460369527464266140498215175007554166178257900558116372400555683599456498992160439745548995220128037521337211423120589580462257255428191113894538955019332689671749317612640561162013763891582986851914764019436910266692475308478795655907562668536186130006880204915279400197517767331691750805632806471809020376942666677230372342683041522331530577119182457999558307056546778395502842391912292318003880863403074023597856071632629564172208600217200113747664742747599044029681609991418833773130225301519593515959037425427083716752093099352621052881182162865711465983284998351489247441540092367350982952660675709450729455309424844064122063713975673495346463911654715321629653559142074003518196073952401246261984918006460923579458035658084093392304523485813621582385819606302147579964359277231401190819816955469545878714179372369387361020910491881730824695828176042617444948911849099067212002068309788687019606931997552945223169258824985467649592925474574253193744416517711982529681309268930853191893714759050034344079828347847830102707034426843519637445978914128791399290559806905117396939380791159163355033349985762659028696754963438921628747999578182845802041091521088129101989809960797317608468772226380884526270362975267189705268386506014393937088769892509840373768805138699102346422196724750710652011997110236156698905085675064705689812544048159834111266159620012223535903239977246614408070594724168620192136198169175355906790579369546432688358238556554007068223758923983078863487194759476939150567949867903303137796138428422688502158382568316669856540004144491969175930476833222400848789771053517944098312321208199316874688258130824548209269755870164733929459389225937852834245008698221659361949082159369084115817043805442731958060149400321073058289021261933468013915400104156350944047162054735373702404207590487117328579563147520230289691472276765616050338024622626045565525420702997721376903755191271609300005924148430589884199741119596289166727349551076582653285214223411535277307621722705194154884243414455219917952244267213413247137978226007801423324482562723273076654085620031599604814871991234699330653022877576013704714085542844667911957978086478935825382033874741766971578498643288348874102764594601094245122567966180688395452976996444418215868898659033780257953010495572658674565621089309988289495543335481757454291800199795420209727614409566691684814392910954150808962985690054963287278684840705473534730755643158986958845595923286620553464149208197697782432767033587535443777757014933926498939437473087229517505763695523091259941630648021896404377366102628619797530897304581133084372135646711525141046389850478095078994665835700291548064581313251961297705459434754875987398050115024827257003748286023604189453506679180907405715543875824556698770936426577200593005953479035614318277106213936552119836534544193787370727083756242036041856644178592844365984593033001639441858639829781920459171907601726699582534182504487742786461451734926118352361869931092919882378480879142351925744009138797228108195032549532083046664566750388654622908351758489835192803087156757251651879158343351060226962134285488651136879516153424701274972218144835375118562430383583465231864764158604814958007693592542989922033288333869897036807256049528848075750271969769491460834539132667793295206115436413372555455915294907823070854599425617351142919671118829905378086344733588300550596293980064500119045382456719805159788286471113648556618177578381586545452416988439367869619790491569438410670212211918357754439647422585727052389826915593319554471805715903714325401474978152899483122561552489176542626540504560125437718066733869670732065473544619951401847708519775409780654477461558891315700031341744681763717367061088973830861763457594111204123488727011088919835129968998114895391879704066674102650758270438835300460041209582702276269007749801627666395214231596417752582384506696447985615608711365598196736994604906746939731104367786663671768903206439764869266201404082242336285753465937239781721910782441139106974973922982166209903714864601497947826355441971768529128430745481555670846369175360568758389159031985799769455367219323833735045460388314905499043298969745770113071045566986731329543004242212829852814336702197996825747308864331621814822208271857666867650856621790209766463808391816752392276424022776565342823787033036613498964935914224048867858671392937076648782440790500090748931817238320925386027760420619487772094531370795977366654467798978002957323384539894018939056814411341855121204811600429354006308092489179567349064711755130943618552424877348021291264725952810099357355900969081390850868706847739231069840254380545294777305104062352444965550415614907605167413931945794703944640242925129660825967212981186222907297614077357903937146321186299919824443962882867341640477021132443508981649926603655112924440894178653065579993143016799890277621728463194178337202712687233188701827600010461152608145993214268319223757704757837929891397010287455029142953953918240759235752088798910897471555855165055556841455283725318972553615138950217641506000752962363440999700407600891077710652371784955955517886736919098336539629686328355326565646939239822839334904562893092796435518927892573051714778348005634427496035150114255928176178117595319048266274060226383963656893919981527334143194065656759967519838357323466103750540356411046391682709498268241586650791518856861356343647779046345149823574726438460066516291548501884168812868029628064550644694995442756840461362520722269259009391868911851946277790884961301089666147022738886631722299455049301376738844732177187417368240982905060134542838113913474060221754058841501988119672547836158006865437489250940482751159866427036626138679597752980172539976397148979356102441677696522655747975415357819360010584002443413731465817957894288166508866963067022989813209676002587799109521160202529262727809606316794593687632893021294013434637728907321723780722533910796715733141308323410114229082850871272267721626050079447780462627526685030660691276789669981620903747523602128920099928846317857277244950306912019216732360482063592404377410873813232684714264080500649280064467255530256517839279850782352445215998084198328573748703860415582790253609760182882345451332529501386955584187008194485764796797343908099474922326112409556065356498287538739651035614461627886377974503552297145532291568035575638975296564195091357948727096365991383639372913558844843234829140793773227218616644391288789799777621675245560729446625491983739109224685524599406062247558442328202671420853614639353276570335345074252519730146099873803639335578807125491791937865585556792567176837917361567169163035279038655041162288311365742284630397272812305274036018173799233294208892320713560016375890009028686854756270505943129851489941236742599423624459217160573001872674878685155027055287585325667974348078308315845964233611692434121500775541229431128385456533695419242655944923579867858301062257777593667289343035297915653240615274451862406914053436842750327479358665760398210506641686689681424315600055704182404469080943917087099439346542218202769481191625787123145028698370945956284116612883535747566867690027162443195867715841633033762252055160775999715031877709101584775214492841230084128573916525432506124497982118196057576812503159818685931531507163574228950779640914360145910067027222875612114375665222093990558844027355982643934768529470321564936728830552916571259257172494277861015313557657206931314967599622051996991674792683785252262500198210620563114755759977292260380513248986538155259878966358907697858314978786376983309367350775269445896119733122302851323559580206546440891464546908685347802376319500830894170223893534299116498912540893540575603774064161587740072191480827854727256732367461966478812899572421266385452014517010203327727939767155922075207653491992127176101249346786240941360424267883299506571841764079510149605780708434633723240697484638670461945610548600830846882662509746159095460871471582223280912204961770830950370407737825100399914674163320154765428328584680222799232591431403488036845025165011028788171008506334668301238367405435201633132157579955533261171050409819785417072119206684986204223425114619980635644533881484624781331484441881668293401022326914403777383493729900709190916611720708064327982763689898435590737023953640054019748000910882233084306815440999125337931877675273254518764746846571554307197370033012524836786630786945539989496344507846923929945491786649092786019100869801282936052092318239087681898236516085928262372877939086834879955571377188938839844449440738152838103230789625654477440993299945486143566564693320563893369494003055956884712967733459801349463606249467101430114298477262158924214459052972549175719463114460336321221900540212782532682276176867984075940456014828052378678407799558717766869614878565000016081826071723198020257450895768576247114274814236448909064899578570305103649357306707686300832536164210339084726760727274086177459323661837842922247429525374925128781754319498923061872957698674778980315084876856748368573259752457804545099111516645814838881306767647541209339087190652581077103513637420236452343013510452721407852314711518784100078201820150001055249000162292717425688070931142701525706307653085449979650579368461450394341669869083449132575648842805023202303754580364978423420910587711649707215505431109273989856677854802055167081316300376810137652265071736471873126152791494152405442880344178925995366103815614863713897951908137784161628667384779897801909695450879420342440888143526626109714417450963883652338653622217854536339505521899256207229657246180774345528005456482852986323026649013292269006059349579894913180604569411690549734202788910930605107113992457443898027864864169086222508175536563639557758422947243232325416565347054664317059862231375330802546687842151913994466210060708155339201491237387182297678491930958991364037571305464282548338903812476242991805415406936257372723019557039507878956719620900094269814452761814660539686449582615892735954332000912993648992544818845272249791719355312447490759254982540084022844468324723396645471258907625498366657884675615493824382191815529698948402134721609796718610369579637367266316588840177250277789346969669367438878991866458645816871174027454280644915806167860251209693167954378782571020335431745053603977490663997446103420334368873484305218728502343358795099801816689852542694987755545261742849794491089059703413054489168739780618314816363564257425716522017477010727598675952165289439559163734753835421511039661747313203195650737546305650699277701320885869306561195060023662709648181660678427568497078929020990034972401079747668179933782455929986868341141366056341344367796164727187547914772726648164951944440207326451539245552608331666951855395704441112763360322920502563021246750370817569793243837495238602287913728417875507395602861176529881935838303620434173030373418096085102895273858226604037553775008480028214252401003972464592926041395254853256659183245103545376013531522535956445540154252324538700586367577828932048691354739184660477947367399278316847211245989057595561751431387532741943711987333645056517987918662632040299828225257290885097749778417223904299883161062276288822322453488583497291205612555861691556037107115887341606662159475660955472670558881366511720111313223156751989582150876268001194730254378239080723003161057209139781111133017571292080715349618993380285180573147909551292855455154678779366805158863025939326109540356690993857065446991161192517703304078501535295555942997551569788862040803911708209399023698089691943680934972291264671603464614053628591663202253667516717012702993853504292188227809027805439614784753019171649537040091035403532649586793688400860278336827500593022863415195680487352739981976375000181777804553205990867048613138761926685287677466852522301811542287811895356694132265869398100843278634571156665478043806511665658417474949532504751626242413844515030754581159876394952986221642928306134651057829238890132285791878122399269377720924219593770382469515734874166639774269656172967775485220428153496974385732880133566349976882558933546716329362620686783986675125178178111199622836425103119160526101941584477522871043742830678013675492096620838179387138633546642634121898321344970273840582728338184363953682196625836068827558026498643904433402999111103842091254953153985244300251078161071831453421629554914610436596288584293503975282386628779222899475317294875414065098567753089988247347040394509658830658983646062180483179876750967330427333013799969302830957209433012886812771704919963174010348708604971664613124762467138627452802587864244264179018396737202517323274328374634848661267514718316498708169847557339601076494937604932459352185401884240917867713914929940494554379473566219084126134951508345249329775785706003423860756673038525447186626321899455080192778100633819218691327426716020347124968385237906855860877626206749225003601987889277001072900042056153586520680727848905317664292538134056619287695371778037632130704851868890344218707716894212014592865114030298662000100431576721285849364486734308584922594404053622504813003179672265176622300870600167577604610455751984705405860578612956145454524631222252474268234487070313628109397244151571114353361246442634837395100867153750907019346802077299340978584437908549690653860372131771545587096426289353995054910705739826618813773495426342918376789976654105872939139730765006079787704296303830692457805857132239283960928061764922498002810257405801951710775818609331522323724510863598489034475719635382358464530220631990548819666239115696890400948420686015848443661592289054420821047696958376007631851967616714107311616978791207804046187805614279319963491541170510264361495069878279120852973837613672188513747216350006043578859499077851141582952569092939211271265984538422772522685483443001368300647464830122184453987149259208350202765112892983341320977521029231730668883884667003620060416465105873844109541767705784229595023115366072182505553635460210659735247998037257693251996327915487996128571174787842407179622841702900025534775520635646805586215608726439324637063658935058150688738495484669781893636987781214941967729077476787950696863440995217683063840945811349589123352035825182020146202149545052467241321920442150604295710158498848940953657656085144498918462318952695380471856886253612655962344163511973602702126914312312470714244767690482514004983971399357475376817141020585926010230518465719870380760695690093418948167297670256092092159359445142197755673171683459197957928869659849224968956183975352763775588758985350169677062940180923307771347253689147783138033936202810621740297422787010547737825741162214218945401145374724823868739208860027108713180262963318338649255380022458732546832886211281330044916702176508884901899863551139667984040940513763536403978533807920149596453729194967730494370932630669978375242998853511207409655285275278692560412861450998563756374694713074671302896702837876898559539298918724662202418969741438693521722015279885765055999182096928711837005725999365776030367676776876714333805329899724074946572713573354412716728834170361254411276500566738322599841738305282897046599282560117160688850001709978586005652859072259833708049887633754072370776095607453284631296441016483642520373780689566449489378334973395027073538139347621199727969874579933533370051102012224557466807716664974062835034822622999641666266346218696616952041609463075316341425471302692234898020745050654212338385695882586496089105632685005528579313859856154355775535804938739782213725680410571099549571686359008703285532823840306366606989818094537571053087376669586131409309786469711227678698810200819408742667572888481303055275345413011978537398465115014470391207498953515685915303394624309298150209482838680351868452526368709871903695650061159055474053199307224605082108354040311855258692495747933200043982324141254042178913159184413385597794395893550027337781279973076999029307553328940925235641423380031792721929044829418758406931038407845316957890832017856836748486061710949326097082026900672665209178836446230245764208689758348953125728148949843219081916904525537109948029011660133396290379379271003510344012729582344276249258870467227283228855928121109124192596819015708734324523338195237616317072115275625600409760275184397813957389106580729000357406867709356108659826318495208095943704781309898401482570481051864488794658331129931869508836544896958671980237510741519353465141252159658874752150084563971586711268809952581339529228679333450658163994804575769591594472082567609419752185720012832713679418398883604223051401215193169018591466570009437705786171580856085750937305979471746919116469838480228705186996330251613688691911183597249319699129783027720710768454427616356772375467892728262878710258698309080172601324256769987749349015025473146672510632699189134556676909737698213362197608580408425910578102961145391751314595623092433230335058139811153983225764464025699899596476892384040757687793801495676814759222607245933975519718503474793714169287339607122689056520907068881626803901417003979689766449557209845824002323656965118214120416166832189755645017828945742418633751024914781997190116403772312259682862069876727913662958665741005381273084709127830529355335085462002126047231669893893121414754307747164929750681592028617915544648269498618495205627294219645311114926647319593173278778241168052542860216452103038531617552291024731110695891036048464309534174173512737140675160732833174834008730566681278205482838453355183183423703911500013242839863134949444707150703757591338559847408283296474041109869146120298175101932407374206029205035927642580163146896183999096057169204659923621151595415248158267491513023804471826278212840898495297049482669798437569952833059575932016945388069952808200365537183623040286749173610862396759857596658610040177229864927722129472009627946515138457705466456678282617880320987412764355009792343987408828525596878502369730689111306351553873659339204789572325014254804791532147176953084250386543525289200654157906836570000366434056426400452203345749018819433476650467316595808490331906539164926917379159621359586268595128842483876385005153547656116614075282308872760495818987886588292909573966713476719299599607323512616951511009763275757339403722197521357904412993368362820908222176655403447801547300208006296150128702552082016268049820660108890583865325199668717337358268557100472298731618562753806439342552273113288165259137183758082572800300320005064155394121903840967669345211628418062224086841349798357681764373877356743297589791527818059952085660156729384419676584373268958588884181451189407272221524210357923060773244182678879335125774205896384865497256918280929222176986261859569506936079928469745836347489341087275475265056627825136610783491462374376082883169464375817862772696686034525674500963783753311870205168017535903197986976302905945011287891186805078259457968096612839429227999897584636930827688900235166886552505513065980631540733504222951431807760908619285426146038379794319092430434924373668496326281454259335776319550453622200285721428865023569857481434625641437197317722525189816228799490484516740891466624326710528480650468803855374600677984639870626755425139691112337954001768812838286765505626225279961278666188680808615839192344190796950049175195052892318853180964568593155649278210572095281704586839917093337142921303030332911038877591701945053141052449672241764575231656782169031747627993024604514225741097545225664986695915122635131029644380895165112546355525920579222041842561407919997947063708220585221824191223708605278687223495360574568809137490142989415587339922162893001278003385185691585846365374021715641228535729733942675814860606095567352900330921651203232893120275582957026722206099234743291802041314128595605092143664581713848462311955543084417715816147257628641143743566947949790897773136826823660306749647099815905142327559150721176557853597650495715713810647085082963448802299574954472520496563543627005683031724044539276230271750233631970225897320367110429788655245607026954168216842150001454895895428000640331828347301680859627592373751621366420613189676964806410391173635933585282639456592706134542426069307945535137435876187705042205296897292179588682416184313283976370409954080891831210667855949401202025109822189982742003109761347778627170905663873753274166268680511108961228792910155988136604463625446816472519998471178765602378456270042229841383843957182224120852856922255657438458150819423689537639690343364064250019956080570535758800350975130880583492219435842776536656803038783701458906700367823087021149392649801085010855793168736696661112632998313374202457898575013943597999433944234866184968453623941320190183669078025519708304036860958634792663989889295883750115196635975156919210998770554235245659983787242647899447892654399230346151068506723569120915940126718199676736307245713037177915305889179669383003897148254452812854029437624670643625648289097371233891697134446153314791816853518740108481493294959818925922658868216396719912061359407269920861001916769674059417329871044393952201414653886813419023943045446418943999351824127447363451410911773262327255775195579040464153524887288809173233609873297717384038952633480608901766186435728879382871362881495068778410674697943563339203889529165062996379737200177078733893951090193814524542387336297942015592110870683483644194316239416381791613127240291922896548394087938072696512324648684809684539331341241443264789579962361939924904780529419528143042298185472658449803207756357143046544624480848956256592894198673413513346921038080135196293856754997528715137890902320972170475027949442476157890466897473155852416481367408448532017639941396812509144008612537516097324163289294187248173646534991482863765290781753960305095615288579136114221973035630334340288663524659923556810334398776960350881210476200512339090933066524416536451099443201102307952293865506216279993991555848822385945020525610496719928468481572931473519341213397657972020011463120179247352429720603978249553093453740767127854755275941015616668401143527943545353565806393805803285096549633571967594218690840268183172104658689462063458450087997420195694940321397023526838659826079429775815766806019881274629206209443411131368431777965586214513237535590599495763572091112798618309009295009628525177097411084584815307104700106242271534852599991648921018349872092806905332106577041698318888005871109420098773810135435166744767403930529859301502528122658985993328329226646989513753598176545400646703780130462178231743578205241646438699045255717606312061782503344833631791311593557590391161379459387349743204191651353072096654063433002454195130146403903623382808269691492295457221067086508397032928748039129634482230451562737138163365378478375665751459339047272798083027771644518280522516466526307146482350616238666273437010942960934499984357978160440924536220399803308146122833542807546435235146768114705274030761550463454148817897917385658971715590268077737817762433935621360981411410034963509168171792381448792288202550163787415298669319320983471950327761826487000679859305462072135023710090999999907111042662040766595733504110391224748129956823432085846536369427707844131812102135668491087329343154041993385604115354766794631952164840858384170643314136714000867048150628778493890395635199121489178685044361199719033454285720370699719839977943733396724102937168920092785808308812980275677854538587146385981225608474705944446887620283607262659107741681947622232039754839774416240807088506482886241037019161901271772216614179037972981333381622087226835696984056656190872332447576668931830424663132393746522117270507867195048263559392731951073491768796657072186466502897715198023932649494073847697090453056105619451161191958083030389965045617193499122585209949719827713542597093546861935916888575406333857476977479743490553941797573898833432623893383239278262327509421987283763956744688101017010187903398756754206757742591444025679088757031173258831490106791772148626628897671112491462764511271291627577547634726594760169773562985928589995074427354446888904555166952724720451192736289654877691761354786308843920740504131598712116299095449012737944640376615432561914041327117760974921373129063976695174082172927256472706078466794905227663211366927970552846887929979324645507177946148791605919633217306943315278920152639253497643666840064292763633879200404803189006630732957486614575389242690302501573254975994968542845123170962523505653960490318424276803313363128959334027477253558259458767611288874638655938874636026329347033596733198939841509465155991930440221593921377285352689999830239951908864487258748840694216419345064950174944659257667114512352537281325295756748538915726612416518432760179864350793457267115299197220303547321300844722498317051312396031572883633674545446482724494425275966485748171186084594197844225388696353031707637306837745146712117686103800651196508130894440770155663720268595432675410406269274508633517247925956827445729946021358218356420521791787829260878542993369224423952643527388163019864086741501270883765380933802944139318613440328856468313157957505215097152510135866049538827286083210643160365884393150189114943019060135301277367637882312828422847586675237006017027781357474493365859752789840604072413041428814593661437038365678958250879869794497698451693349345111020543296093882229621586854930073353396479955170347157654163102723282699033074104794241001497489811211704746455446240155837875856511907775622036064118454949774850066955069980331629709780874277731204820556285327620315800873529649859300839915746339659983493638763650321777916578684141439750332782009197349587026326260415896231337328629640349038388802648815313012906964854430357748792135640870997253038373806180738482340285232800124308928476477115794280443145606006285716363966405216770658124874396374306313821617154173145941886878565293375139477644709335398586454712195046770035911217519704758563373288129454930910983239483862988432670263079906852256360745874145377746267900211910352876729954870777343558417970476838347229946503412917501189620324651274366448149666273695896863030062976843911881342564369500845161184230341241964950050830970269110948950741913406002031278823920513399983868776538912978217714036679292352135423979643481090470812627152696176990024661554430244619330253429592196433468025746604678928480002531070561891787346527016858071971153256734147049332498862704858197206472498586350329664353789474383542635443778521819649091255555210387684595124709070758145043266788543016734092437726580110838575127216793525896493936541932704428742772051984992819803764982920719786840265358534803361435656985280729937731724303075628262179524348570936516779123122899067661267138505316748783631936414631356800977112863868319510060054507021272493615129210447771077654187008173681751292094113845144651608016312936630450269327102349895396954633330941507816375575582912016878536605710804208963574156562720703511677991311548158947846936640357137408148320801323674628156265250926463536677879752763782410251401968034090861117623373734057278186426329172363453292934760570513876265753228632187349615494823905819645864637986644649692037388228607632842348270576109264543253113921850220128613224653399764357575496581518909636504176486745837593247398090261295102686732314096000917055455484557894076934246963468890558060687856176844640507854935635700537195694002400115225525647935491046705910101277165728711602593192978808646191213851003368495667047013997432914568036606283955548337614246082491999166370891587843214182955955574161543773661514767727207079689929653666955737330607912761633946116551407782808756834364725162480389563392297918221154813149966736073642865891255280437375683054045098272380747959051721708289884178901160288708916929847554659582394973069506478383316722617843210306848603427331582320268657599227612922115422171810164978028756508398402118941602723107382976710550324084560375491767326462435823144386201453262674439930597477862847649833596764586414214457478391607901427016487490609093900463420421952419341935944931862637885425322251141819628095381404408452950104063688654322863633178984165290143140354183405771080723938205619654543657656254095473643315974895724167161860519739262102967098218695899642324349157905871444446412079001173858744171777704984729011316319889474440300637230173552245377383425784564051312726783933025363294811341300968933450851622857261357037338672947202731335751943416223101983365890015749720096857468792214833210874395496893095545439487739426969449467103115769335657117749572912615476641915307184650391499004538077305707536897651558831543658378134064077108388953248443889029889340920022885872250222351699718027560235257570638852466545273624912466738835412258859783640691375148257214288432561214673300300130692808865548182266263093948088538979099056254950933825286664899679145571128992942671380037733066803297790163212718870654776027766952394936385400259644193975791507290863792487371728630271788635881458449917841419071231227979656312021031784480165588390206213105650976103034602344071879245650045875359176274502223109131405200254350263904658849468154533663318322190906534350819164530947050424794894526260655924471083097323653781138020778679839471317069674553374980753115501017799278407683395823969692008768728782658272723367530886960068997145573381627519600533616215466257772651889079726476058678448405311595150130113325179512390791062998732102790107898112867501959105032753766061546193277959495277299961338479003129537260615037811829314477162458079533264586106478180094240050100352064432128838977579548874741665009484932509764088165272696315886526430956644935598359580342002206817995759855163402140471091601827032856511094068128086926824183596057712326675370804977949302269229965149942774726669916021974389189776228975937604704355246459284713176502388271732153383755224105653100556570261796194695505293064130357594096078227880835161436932555115248196593204658834215596069465085576134212072244141575590220338512962803311864800825623057410206989711813928758908143672306276555867865057967942247365984699443450377096527393816334355548655706364051243314696753758717292249594384440217187245414364398761296599019926055083290632027164299889422874495860704538492338300793303061710364282644558937253043908744607380574717130166296285357900138786691317093662852454413331023408373950203847838572373696170571263883388787156818166879485878455743216945981534648328410634140775056676729719864238223481730106745838601593073502408975126786671810083849424008706350199079440973555031309058244920204584779990296206656478111625329055791154835093671428804505928643342289138735535310926704747705483827099215035603390881425685804403063653325535957762327648181330259392755079787811081308017797046811844598886164674603167518348836538238097339385019023449125648773256183922303534244422735524103748369158307400456055589666845064663104206153467192244547609673443652628218850258858210373228630520463876280988832853740486673194576855765210834109056728840623850163348589514886748899979251937220863572107154189363301801958042392103967670958075392897680482497211399914431624757991302272862547496403364679614191535270774980062750492575991491127758740816277094799213502663760028365060500198979978595467603482885531019892276037469693663903463814895753700877213023247632158643959608439253909372499334759579682945972175540726493839762175550132157306992834413358245561079869991511864025993192045366018832506847215529378378034311834982432252310777431985080942760127605777603507043596754002485831411797830757045211816211623841552374787286555954088387767652826411827225632791236135280356399761460730402629022672160498980750103899779219202895133867351405596732103250652796529188019205858321793576680026012276305648664154800478729835797312137625789995764563132443685287797978606877471719081318725281792666459020438216076538018558800512800250535749503345685271523760928980960340806900121497614014528209292609419674971503598626055123194437884383579274979294548836781752360554244928467937598220622997632775641429410400992208004696308295466018602399363309857151348636796601335324401934616703610609788969151037753061697159304653894675254282412847694363911017467232980080209365417793365438517596208265158565954574079362823543995433769420767845364890089948676019745949537028409179118111921750463633858769217877334507619494464387489913916924902477129637379570960934808584410865545111602042242273095097213858542637956194251559789159593460099024627023221378390271387523846091177315050457259149539790724754656103571007317354043802048413745304242636455452619586753989469872922038294549507182696346280622026582134163277826578286065074853829755266744579746859623396045413945793131548340885067000205256613089280516174618579338626133491667309757756584247584960162175016539286494942382716461426862314872709946505597139400748579722341559679346849009451957840358549205110189200364812482459734132693591435574536111497344510318857033080725348854523196273134438021682522891051310223675487635523168544965075628053562526752321241417320873925015593145464588680562173980717508545677075801353018962605021421906070752062168063534557932594438742352371348621936467869528620650295492077221048496150017948206524320262546781421901157393563690942067733353713005129301383068386786642770600867998223959547972481280213604482361189445675479430601954698124607283186172650605640379022445649711198209852064605923756383770584042383885605543059141065741448538053702421555357415099550803832503787139317062045905345356087247350713400901443456183314893061672080940799440932929257670574866118927901224838873415078971313347183917185497503547405680958131147048345937710723441132562186527946446437735362539400153094814386311227361486005962123267185250827881789993424631156271427516405076615391796453161679585772845682021920010733109431683185362372848391356159091458783206291546282842959321561605504505143569830296129613705749600697564209650913760375901065567443204970222407407738494034817964570841851156396203751588206400726596314073963945179658851994191370644069440707879881402149427874292912416762710152970579478170941687269689444615857052115519804946089125038215942602165109904410666411632455970230395885768772197816334914133038553093958067307171268565094189870356374739924116756443759268354708615524593945331853313029155683044738255679436607395091838303515099171378612351705849250160170814970903519423156783631257305509640449457622249671913948893045384171764579240996982525841632945393446167601451098661233180180736215845567737001962037287550144108820794310725325794680776396995394521055510288564262076403370515274916628096539417751627802072153132301132402651294217450808415692866711085439728987427399520457253348934271043083023931741743848450175926416659007960983657775670077843986607604181259905125147395421625149916007930207386020213379542440836661875318505100236900216052356387606883612665510365746145411081620921105499121708389865194064862127744639599195894294880100705311079219384444348213777319353092921841868783089212527449515244734864097131300400023588899072280914656867024266483650483128049179333479825247664949947104785410116644931596075476153539750535093318788148241921678854189632602302708247281649206215995744536296787998032004383233370147348267140494895052609663503912691615717229732833063094984360767989135907458967202175884371411741965660702630585931749513598389608178757980455481310761080942993648404770089188940087223291442039656609970294625577071298499675615570050973191794097062680373335732680929471492669546355380731790664724618557136115944035234820518738501847663361748604216841630142982239065298794876910834751149572588887200480696019475094814196382856338879244608003536841979723410640497139983804956647894055061989228689383115766408311581622385328459043830085030390514801390959471079535119218429949308289347264129688822863702724593068320639345091560802548759758324118925615590773036628593753074434239227156092610860039515534676556142774934482773421332796253765746530527543419050343647784325043042166243373427409236906497459436609329153058557707480927174914604374908901702092141379242900545310209673584984664417337409493655965551088308862393244866717064670630908321783812131705854367561269760582292035915846932416244057768972742787799463196139838921686898703227512170869922397483983828062044616257888395322808919753937910645468920338527535786545483595884663066336006713685965238901174762872372094720833031661760583608939514405060485397796664010888393350491671907535275126047403633238701477754289923488443180897899050959688695382887062559452462527188951063174364135226727985847710021138489699799357011309128878898395051674681536263877385745114415003771926901669761743490020487827690128009028576129020931509818183210982422950091591669308662556841901235880351395003508764482978159415181845737891318087871832075566810963321150292324070828622232055184988598890566217341151412193544493877987883191780012584959297535506168892856615539533643129131891250320026059024072386990324677792944551394313041911102035933282273591592142750895242859895568684138288739917481892583881984591947552494941297198017583721964295776007128991896047997597575637652208580523291012692152757522329705160372111404174365082318322804416501649887865677955601347775236484162859367841314931550511796136429935580394439632474858410933754435184659529829013511075444820040932764398407428330148859171325125829912523756427609104163050285012195004826966091962013753430259005713320287830383451316468544953885806302299525518778809468136493849315020189241871889631019410194172232557454355782661235402656253867895748732024374552738629400418216842568487695867045047762046343022678793952904408071888295089032822093744153863212192961067457636941640102021671242178353543870599287852643511968930726546364270717758485569728079151557523935212519397360249978800600124442029186830577403428913941627744293833606194782874885947330327134366933071263000191819112017194857672548930645653564858329572949817311246604809550319602655241023445626377472435184659927158053553625691762106728980576518488767257572811314946126829001495865001778543714530785465005135963008385547497739621004212945219995838934275386031492296933609261736414027396470212358750498826542983665073723430016774591101185137918914831383941908096808192802511981409290211418455826868097223872045834634057040035826174324219356262329451798795760929168692545480392646362844269385325554237433678418591586213502326985008002971475497328798198797901099764626643823685365938172284379683975398205735915327529183042252662988446401764979436384402867922559104731688904289877345741357837217878478761028810417637649595563841537491066905741645314408968153572097248412626387679609481653908835264602630868744313602260457984158576614122262776951757961667035950068014335567021565926438535765663945229066268885262589440948260474140456954517309465029505098024490632983704159260059305908762647396151657417158552923225825275859955209915064859535845534716645746836619408456737486372763353350597189635244927503821388934253002810063119886414793628354035095623980540653612085309472343120914407829771869976200889019604572492950317204983847900717922510887043251806962276617344269946190439111523549097596725857163915513277551915281638007492765169546741961417614505275948318209425116785655227408478710986784728975152990013787844880192409486199434048349309531099637488967463661531181038649258217411071117160797254137223830047658419764124508153594717250355407824510574651923410415500050181079603449431779750095765072175572668112461641293975156990667743552210807905441310862887716012123200390047760259982756829266368508424098639520601238433132659029924531987980647842500903170928363506013262113562955681267243867633402236194630900276501594712173327073710180049366398585349906741375101858134877977848630676990814922373719703623535414256688661227283529348314985710294487269932464988482055545512788849457071496819964793844243756004786373861052851596856942442639852718145264919760995419231658693162760981460448341927100283877769748866374362567314443845719281817751158911417782675973090057634308128464514479280373897032116756570754956521855866897936453791381088202163013491487806162023135653034140540209622259725745764700460244457967296014697557613410939210684828616802708796131193548888527634084975972574847200334680060716117476537224409908681255216998089319364185936683523034772388407338889581584765818264047813253337107539607776866051672004114357559188580193479400059128010872050275460492380406129416266313851032877598941711572765592429617913612129633934132027069042529247298939517891463723739157626538864821411051316017262365492252894529716147769946227694681289813115568713987519014315309866401807484487689809560458896128580088804807438445377415088291897867464586365753791330962470919893549876618156051551599884741271062550526798590577594372882164310061909184153416327305066798126208239468958144729090250355944131052126000954735680172874725271428822920213420349337150287938922816452386604880247316863791358147418136975207125429111179173655494026976550888979573858194897218665546612042342656853706985810895838756164976559174613701833056150473765453649473967566318851970734599304306332366104911265054213460585121499295317692310826335247890144078731417289713755239170974483441780449182538932450606989034730225166187620404930817934310440290496471540318283319845418542674169913395258673475058903894184827664875263144878481655692036175726534787498436310612497970825320165227307051257823694775504763097239271107502069119350396306707070146578940546842559740670865362640410277702072363319315700517985719989126541231444245984610593697266575810619861083441062022102845884967979220600973775713649272603752898701646320680403691883113449114797476927817724486262005420804298141052952063183629194421640448287066116427560890985623539444761182718860045315040263083687044199577695258497447975156850643964276041460679794610955961030947708452137062665954469626436577692359247679336615337544195837883043318677785954790946144360231590799794989443396871770684930049991586657999827500995135290346828230836323058972009352683844870602979326554986604592284176838520813986269127513404570044045446422846140666045359601340581159003945168980442074043688951639986317212175054311785056466471610275609822856225476879291166788875510840527982152740382296130491602594324164833361602489389134829814122090622781092791746401566911290229028847469598244355433303822501325006520042774002560392895494409556332047854087413146503634196538580962746371668276403413804653075625580365327645399359903967535057642217083007369331489279653240276378110241752098379770052072514241886131519757721605354571153659748735714695741561970365886682569927297472104101862467004472497594295678129504961026878153122590256569472086707798746623009609454504322322638425418059566721899450894274169672820936182896458218886750621843274668588555588605928064503408842451585341358579755904562039048436137938493839702724215397485263265591398726046298296795094734041671296005532837161021873450218878069482275652115037812973465759166346313268506811824013732615059355114719618780226357991555416013491128001916039924018397703650067891162279540818442773413341214077267760147875943733728809726558322291816420337967337441360564898543043457995677977101189284965389075722993167597171963368480422239930062490407795183093647581232813856187775386995699867321934432111915707788564185309684771654631623268491101272574613758733912251255474906918982055832759380804200830406077809977957126483835674307536179113077456934647564187749401042126466486655501203973318403752586793058211472818982199819851910345237066899449335576899950230093888012420869703685388746141702391055643084161855642399135106663548639869296941609731418283842205228944915974513316262122868746950364052197359080049251571044354225012119846267280360038261189677718100503120422854993971950345395037352627931158911129389672122789488371899990909807317403888278794701103110359775160348134939356765963700169246988980596222935235031037949016112758849779339983820617792297481413312105755039589948485572835135977313130030310794087724708173927555797453981635562377919748500629284304475832319667774982530150573393503722649379932070954546745096622703089120228537065660260663335853570080674430522792128322446936296062835823716681113820109535337496607313122179728287091515819019707117593456762830630435609191296134723243815825702069031795970232141944950350431395374361070000501423234337790791204843040554870522113245780052817929376601296256575404313156113039221417552272413831829376191444124323471631508075832950751839367653406506301719470488875664179849622514927893228013209134020090522658117343626366385131052652818568633250536986425961045028249839965646380160918491788137122594683940472538391484164296245422338171721556087732549587353684520833393471390293959823398749727582462455193514374095432598520458421509140056007988841949953333822949688644039572571881055899644938303871714950180140056655039482118547537665810243517475215887566140719831079465635948865659128780380325356122856590297374584417936143272197126930554893780952483612315331957004892136388459607365019849310874325915275671245084271044545687374046650335287917024007446181138020635155030369451731068941181214715602385834426533904434747809947299458950485181117414934618068271508241293233322842852082906282793103807336919187776958956996929150863798159802571031939613614248733990066730344393309836043460213312476103799656842527965872098993065391678110661572556066960317472044300278965698989265880484259520091705725256450504288844235603082367995445218495608671979499192125821146440911830648076432547106003263098998879684510903462364097194778501103330801844757020666271820738795000292523855048694731067082261769148477014813995442707593006321446351052085710204168809469123967730577876353690960920653201879920659619474168466563203498963860771716642213630408307179879588276033322335266882724018002545393805359667171791649686491336190156918021499397163518263287494268245990693850853970581286053302838593473019016628330411993205454592453408183871350291922546566237589469666441167853816191524035004791963550048935474543262545583208350548635748080775198903650237101869145100201266293587219928773335672351976699156200218537327874854429582698168428787876833395003745382701790729533637989971876757003734569892448407575394010242330609850063372025361850968085273504274776970467311364449950402547790664087564801201931637188331321103514613639618967832903559982034707554103740407406170831828645729280046044085214491307197601891151050117488494603365320962420026283330744254551111694905460637611513530980655448506797976929963159151445197025007070875942128046154321041803585560513504350827999300894237958981307762544852093299063289054246761393261136743465798048373665161644032339379495698077082255610645214047978549984807953883491885867612287259049190053746281385392357133090095796149383558586055333511537054345111423141760894669498722794921888905441222359507871138072793796936596658510917214845314626415029388676983035354082514278768498184831319941767101048746419116822279368043177846618441963825040143282465238127951391475246965483937448332124225500694899630910417276366519791614728003400582150794221815240244751799949560806172187727095062126735714322572780878820795191209793153322257280143474997538790669845979577194440125445480567201929901347693392447302897748899155684212337035369791507341938070235112041509103926734854528069797818250679862864357139565180790651792656541437114368101960734145998806176179145969034582075527755812225163217407243347866312709359980509549072269516546920845549363177960336979938972542860045296020796637953025628798429632252468522575597295101384311779327923174398951333653814355614345830516644025595350483201852067364020506342963614101267102550150752393655479493064986674894347096710763963032426379061318043241851197328817333530556341725285850204228107724680308195639254323503153329209562717327171290819302448087363603588901460040591897460558003664110274679066489533530081959831242742544828832420073922150888009244844047006022358468615077783128292500668276080785420455307412036985546088854848230969405742700347513143410613444273261657990323118549861507169125219474838478148193602770336945404388990633013447181039844758588022600054965483603864477878749916376019270794637843013853226539323035530983697454681807151098626648196612998843379699021154272695811029467729707873375652431554450380938070932861890236125064246662611573642803090478720350143500287385540322214509264237146135644475136183780370215216365279553004158682415162795653235480919311923234122408744094372361085836304335770094180671419603136143160082887190662804108620303264648534089581078465100989104910462863379098196691434267734377410625328084428393443799001287242070570709578400260442874211105853953605621019847737345259987546390193414904633763901933323880681086100698305305394662438558084521569512962493541134553647491553726826952564839037139191289765490174289718498742223003778073578462025825845407562463116212237160743277958826378255424506703358503018036041597613699722044313178896578115097553686955526630848536733477755783185954676858370853669990345874743906429494749675946687068272467261884771035941917476774235506137034340134042516710609370361414091840860492671416776887706753394115993245472043535632956457689118624742667353305490090399326937509729760885811809440172832599197373913910986091813040745328898193050832389503575132525725425114693223127750966872946078404543766744868419072295547305119407726486941207790155467114952999332180195444328117609943059983804729652712994910879072407433272035752583785740435550555625940619665600659976778872399888765415933815345513357659033400738853584913295813057137646795616494305377708073281645720858966417187267495998270694179359240002563519187338502410425486411084195458065885474560311271110824255521772440385720711675037623253729405450636168566904600450801554011421776023273831458004408473410321797711126930596739907460725568134867575190328908249250375352960036318664944532381896165123050831645794836135159065593156913319776958719703096586595490140119295443078538385671405646088125099407837298591620738732248121872221325863774072125838264938927767694595431560454634972110720703018261963238161516886307236705058545166068744827656512422782268368435058612987122693788040386004544232865891285954237608802263674610961983672519807214377906075954678374880605694135548700518685326142715371463393793748201782802181432180077018944369195138968611267093871109639326332454605960543264153343727633393588820090486618889563439632848509300139318634530308517295367478661318276093055191246689258475697862179305439408980392459066317993398675915370968019534227161335234684708815533000462917438537521782844733916082469784450167318909618146421063278170227800168919077269613435920330595646038216526227733522656971367978579597777769388421769374893319252032126961357137830015066192889356128939449730582835350009972696349865325038701191766681992239719989616417099273662358634281178000294856900967222896496421859922346541967872351913124499292169818180101877220216314421060205149381524951232532044719767285374907389151707721044931605053967463804433985921147882788184075432308178362417363358436485223765748708503484921081200853879516979234757424901682543437800075075570893399879824287540029840295394739128743933394594349682533946951610215807140185132927221545043776858114730278898552627284073026239847015472606021984805224503726437614695859115565377184912964422557622191368251204996805008546583407028116906766620671037092443859361951899072915448320534351010172245901119445721152065313752382819074272074153328262887227857942805349970758343787532889562732139193219095109664818992036207655865108084504358505302722652238353515225472308875460109533906701785267387137659095958640795783122572700495518532488519589518908526820369864056908880908077240709185491538008851094834441441120718944802790727118627254734681701972965528946242018850578482136579773892338877723633769821813657753815536797971591011674358428929435512668868238699998885405395018822527558765113657996282683701525514700192241726425860373155338784056388161472826711811363413488768733357172346023028263447904617105142135668900207514735049792682774557012462525886221882479978988387898988092315322325178210492454232086178402682350704669062488061877024676684107246843973408599752988086624193089947130373944022828779148729006462583412147516203156587779921003076662733721272590265367607322447362002630162148338544792408544776588402173277523103783104083326323993994405778151466889599586013739182716350603975559330912909430407943463234939300460728924974055915176111349895128982900255341832284375638093703062387891246173771423835810477788776707763238386181773588257178055542355415619064582663457155057065407812059419956072424851243924574433301461809780649766629912689910637736078540726845613109225486689327977567589141411920385471090882201283756835316006326475476748001033427636962551412254326445798275949919959172831984672153765957035604594718543981632220687753414895554101565350677931264381953650257113951232962523489134755843557923955425029674356324740113571265369392435943173377497083406760636143391828583420254678656391998560140842451177811667657496790510007172704744763363335118980079820308294753577597254124466471880550503505824210293817245554006793049321911122230588376930559255594043349436671412123891172247295853707782566205435632565938678594277284605281823696060718262014175256883449039850161564920987548809734861827784557210452129105341808606546260492199526632018136244993894925796545175328712219482121283228979235850570873434796024574940503507497565573420005090624187245245917214683088561441056251745421153407081548512718549977832244686405024719406874042725587029511257305933430147634674226068197901484592086884137188402542157264043996347620070179312475302653450638926394258658920158281417986543551652174345799696272276340192144424734099439907408299462505050911394898688782048253362642273648020226941620720769057691744441425245132630377977407894651569998845555929401851919552864456509048742836933960386796031860941489878683892332455149407655887808922894987659667657148484279376966767153880867712779099046776039872548964386873215456616838458314573942493387440118449325611797663625195797968924901120113641454860082500428852177179822937927469523891946082224229415031137041811041294129064134514044700900797317615259032715986938231885120580775976923073968791049421088447012796690479782845625919414240891961838846801712534587094640512259689174962798412336914686093193396064743839595278893247702538649391387990061837713539261693505191892519606270091104660237330950194907632805633618984856605786763156851122408130863935994067485138142276239192655342821671590148321822697460050722164615862406466032510691981928215187790053110948713544183060416807441449037141761220360747534544846669629296243069091157301206676192413285001318042995581580760552775607819682029786343694676541459443885653429866493090701870365127556169808874160188462302861409467065438494080760856064224649535562298465358016919835201446910480017771591486343091383446264080080869650995563541991662055011048757204980256372882636352380697278424698202472948784454631432092283923997727362168818518055005829402724902033622051675367301100782664261186609883113435972047345478436121519490782374869788764998400020874307744753756760346406244151743700187177386969602546253574306717651752673627720062974217916137584571291796603279877442510101774352875106220321763518826257035148967548791329760317147414182903011145450318446007629076484361426296845591882783469852839245415045076587194875218464855766831281531506930553800558165309255376970732252006678792726339914101892907714448932543840260487474351865751746377007292443215540825052276576689754079326628811167216087728643381309392664293853613422810364984187982808823765875461815154122181658580396726363107697127558511332954786063675925633634818863170336660074534001096481401018836548978667863082043408834565671208256312327245916012207170932471778263128364301697762357636604061268956829932630979677546896983993620218701718692422370664398535380783705520389204190627796767537411445230294388097283283255946765252952348302245555139544173275421553242442034306780598705841420890654917884624520368301619805532332041764299046897050018190868965472796527018799173100925104076403369369823954430723400084646032767838216219249209470006329557575002336895175327948374991569855216945104494124737060727911781790486503584324896620552979894768695172353993173475231352919025639394923682133308935990024371726355557843294026526978074368703518223917242121645201262224728496338974112054087472989157059746319789915710766019625868449217521479896680440960280869461426580826597068320783290766397382591413141984542290380175223541598283719132051820614587780414798354345009917697308554365655348477552505935864811680522811875235362561203867000643405048348868992364787457069230897964910873379372712380021163980976122999573240846807251399024580892585406416886818290339851073507501937571197962101539250910298135453543161854809285953951988424947275447650805740175118498874976958903878714930604452004568213122065775706947968824446632983380310569497409204167298547394717179440166417081378664831197223745377902573400413283835058537924495862966428048897841074052400607606452413494885027661670458447070591698841095606789571998086684744436102032058425581130068541953128535184675949908347316625642112683184826690865525389309918682434386139858577824539764416087996224227170171226467184600717540131639506210234035645698515792858800547875361259026385969051373328091584828490070968753024886433917207591304969926373968292670493651833489680065951618844907490239657159340152163555180673715496455697613734460670742037973920585981229328561632221416682087511509866489377754110432120830811425963421170566101911306831206736386356688165081387915409303515010210281202272310751804811059958127981341452512521661392976304295041897980930595867094234065926761478307189656464032984128017700311750459565126280820208218279110877695139268929355375314359785401181930863927449102641042134579430332877372067011178405575339077563999301564988084298969136737990352057577281132321056788369047239030518954336681711741194255622139119530667194325749085192854081227292429068897695471623998426098387559128131269090439930258896328725092440551622441466925084709268358558723499199206760038717941869908472461327747853954647418878696559899032308203789758880978917253251348001645313442096608871416372644524586288752755363521401308818526748146462755689822525202522098787886380780687676691404662166188751329742320473276134067145210198441051438811515241767528537248106113229230498943964768670517865747900553074017687740123387908183619186734239673137576934609566975529716743502512399959088198822244653877683207819139919650352561967926134812629350335067026397722620944626557866414187072104901180849089053830460193098380426484898357446625393513021186647395886338027350850909604274489137774694092981048110837113209006106309668923929246826106338707672966892461542622299330779043474343632254542340083998107187029095969287744018303224829832760034803478071676030505702736745240807527793502867483962706087007940920069986606471397059063918287072743731902563836174033660084574799938730014052627128472248519177203182773265636690873763731984096351103149554613786684054311886831879408770055466727787405070886061203097192235815626284407616822016749360876768531041433956005771382189474847671963193668830195597631256287355416612984965878540005059330549922476607016009502196895474244401981200807404548426776672203498822592262503062583570377695607823303658764789400935152314533819984127984604456113290984988755241734943682591811309687495040639983366200606084102478342392389371661874230402038881663675133506986802233245259402275013058137020620971695940317342456921916169510004865673732769171235404359073817699606930768793118523301880994374510709620162694152075791324258098990054902776736659409856022466762572641727444489631950647017535184625804327635211100646520679639661659133803498552778766480407747527385363640678746569381141057143050903647758984398580371590169108054426140409086507317673215438195785598922571831274195321329259021750081580210440268892183320448871952165041435111443225471924947362977511568473625533704913201798065379686708601508991012079352950495384139534888580574980669622143356500596424400028011238456138549255944904215189125503836415760227871175479008078687157054378778637909262127208154824756550576020867444227898821199247367232978355922671653710805040465339018161009037394242970578226062750943797464513668476587290075167281534191839419517088269062467701698944087894912993083377674183242510062112788413646440990371428481674618672651278246913240910046873429917337672733260073583635273693542684751083351912732581350821442251727612888977341506613130972540785162898431639768839461241249274341688075990770501931488423654743136197672383356021476394427933089768816285155916118267615051686574693270579681803235908512448095370199605787931407861009294025093229878121668712776851114490540447821353414167573910751121211303845626732883948281877096540175200085383965080423280790546737541820565741381923771978893981555535650452463138779999862943516407645615241097301750978350707148497233076114052598759418770450233977981444136893720723302497052548986429128050632597749502045422032324887967258116353806822728148796683878726056019062895422237950135195750590500704111260573961125343132815343209123834730364388557047396499519652292463801472717768047060989504311600111326561975437226523540438783205781975248926949245872577948556202835516647659684175819407526186969756027212745365577960899309860479994448667656510464928059649034401164035104147911560052084428686828087619013409498989383130439786194939819379884007756244756818533593947793831073745234922037080167986160494773625144492308720948333417633549142976542480537039748754621782374631407509189571090071892339259051335023100898192893645821499462561646006609336467450591360221886214117322201310598593308107783360247555409838169983563932046712607521719328891766140041624780696051013779467158756460368207729476756360068486969671691281542169242661662299032929935994707883347374439280228788303416395776257222094631593338745007053584258943785545165675846606430734765523909135172453787193586741620759388200797675740751485599180469565430490439001183107928683248648428791362782682350600789182704983980262607631047224866208749927113457092036864410798433114357389815738447181847020387191464341270213913644040674811752983882661185309771150605354805981487693109665738624232356967821833276472255162250313542905460956922026843641050809111858281201789378452982172537104886710696192900600530896355736073380121015912770567126626690152160385045230349519934253275855249995898968494382588259611144818449024533309336211609050452175987912624750549703922614589100275127681634728378831021916398931460073277723284787407045391313286000629422008377514571549891991054810919561699721941375636344289349205798003370052458115967840630332473395145353645264377765407978858688538858286687871895325992699985297939202691663980139250466532486915117222749754374771683310856094496867448282273802030813180195836081412308080531846502089251813995108570748329623264958064720624915136983141223064083389965799726986461990293946588624824049106529551418920822055072971630123549691674259689765433350240068024383396411679669102414404072007511080436401120458959691990192542522843257689639155011933623073351658001354844744191595950948083332007643743392923433749543063244885511796956966643818148606226130234593637891072504993420151098835252963805149175100891534600327626009382675274739687191185142620031103072802983827599255112902388604961461180040834933628787026373557679929934463259614738674947767763186747876768752411566649979319990548383062389033964188151280061279910735073589958736723699381964489533054270702511902121220033315249151571541935639542610606331982685159290659860375302213206527076964101777126770831353376464406876326652672484371637969645351493830906383857869671520087955228296217920211883500286152679949678278171154602059681135788070379615623004480395889942485959504690054245964481459335117933773278864439221096659734751322462567258615035448454515356511091684025463486326839026036671397834379995570842052600315462130405559765980726453507589986958320707775854516295140011397812193758770626153141791930811026080490075553871719476185626686253367091774620597600798407502259779828636755554841263540947369986680138372415994897181563450618890041048216966363849465294060267898841325281634840887028936825689776323736487121461536174340062177879567217182621890460582472418549409583340225821078692448491162128790991839508917271869543657154907176237854516996119798615972725619784186625858141215661404216251515832106301226329263780385915514668561562934882583411539869582725505020165114125838258465343911805452582911314173665237453319679210842358969559043869714145704522165744682284001156576558511988192772531258732790294639309929020286585366312857835701084848014746864828615825494138396818106615049976841061357317440297875581382484812744495980096546307620598007245540854616036104834909641333670670368276307776281962120959402339881238468679086623183885095537337736297955398300432089829160262741407502919297081040133814703433214569029848849448359165509901360042623819249197659896905177760138332058228090653951801118553166630570393775522839229962178691529619610140235132750049435984323497977418636053325151529571799564889627489648509864638059430348216299695710889692794815209616525300352879362048385321506081756618679532764036975465358213233784753867333239173797471867217774943251770428039382583073719742576090507108899711805771761949288089380687607068311320392006146808027548845534621129222857787512132015109902841533898514621741409190796564717390295086943060577537940479490639058085700606938302245301776594993895792952836204985328110709258184617925563988296098910246458342018154069314280748910500544299359810258219691497999666507491742393225265965378252531160963475073843534588531774172839066667450329925147045243545418950948506118624867479496194769522173776519526304420532298213119008281954452697730955375179434425218347090141998676074611275208479475319295320834501472202976149292175641245756874614705905184942758713727286204504872488927006963118662775970336269969285201606122929151594503339628688323618875820338292854886990314206999893842000279078247658758795376608173461633465306916626194095757820371600772477872691818550815240965128599366774203100589965667989050153295685446889971629482169296409773276138319365297169712896873995687296381099263973739182733369016774020903815039860504062902525736689553455415337393375110905257906106630081798164243986855463451295618200101790034479571936222326836086047131304824110958023735564546896108360530591678907707137310315698616891393285246554455246673727126942902406284490768458826502388794026602936653225372313858406562357186028337875396835249104173698272833456456479677127141519507426614564264506692630003140180955602246049975327860016738160677720347093793993108368374793483444070195324698479745699414973060624103701133624687701460941004875170458410077757784653502671865341148685093730068901586670081570090606893846175980488061558541359457892859650306815719771098333064461233729236704473472903414484430508415849298324943888447874732643016722459437490092167956772023217631434327248285805126610929094586672875529781138554401203373520089838685867655031336495179239829666374101167535519127378645534104396571335035490123693404519243378587486929840132667333454630216046819954838158540183242758973433315054370415040843147333437468164232952931487981372924348488684270877206348845888970800463955628567584161098911541995333903713278640161231397824376166576612837514522073484193712114984920303807162383578316536472129284699043704424170349638603574238259351920855806525997412615174347585121337131075540406881040194104355270236537544905855216434669541933176018716597547378397751934481684794385680468959112070977427518129012586538854753652864101214252869620356258445859319316349769714014825133223944881074761350371921524764670992609711642524111807652103415103658302989127918955375727766404393382567732734362385990100355051602886739961119063956244376863800119608446063692202187134977204554153980316054132280588891818203227692075124204403369600910120017495338503964361446693999141704413243969188552350577946428334370893463168991932619506299273158272261055364000725432974892869169924042326680072524573318426616293482248466637116057996316712314262852061711676626300951374918535853493365528834085805078828265441712381059941655899970262755231993641135934265917037125988079524052647201589762818115103075162863053068464184216933572290807098220688208981939558027892155241500634366426125698685064079806068626824188992757982797639823670443099909374586400993108182941362874561538528735808493622271317667481468824295963103456816838023683667626638738176823612431850196847769027082293606664748244510621701604768931919445859929590844269923345718919253156325546180744457259895749669680286884246782686740065441269853621590501520171499748384387339731334672647510354835897312770625249144514182539473157212578449849130505621931410220448064760876992648622685850059669959272376386252582141530525614339577199045185591709221929448993226255105184377175519437914520277661469442452948293379705918150107045896361096466014150792525323249301797680811471129269431029522259064452749723295501195982677925522595925444665385194222274447315301685440648676192147948982859806578088573810360016035685316970851128411087359188947061252058227069184836695998036694724797395376795313027247318573039728455350046396572479801695537780675246942753999029828201937819548672638435712555894331299672592239207666878549661340851023151616071271061585502934296892287573084321319590861805176777821613508309409698934074035044962856250645815613063036870876354035119089281147083296716714893274451964836506218083679546649194130139714075820034292480755536721509887342870755401923361506323557075741222966081107601730860267521884947914540572980768221780939582475970897077867074190476351109994108057448930269715508352278851704949668885768554393265831102134416732167195922930518044583138287604504777997026209629441316778423411745828273544572957000050409617226290880052964289703405895698257059282699703557678969273800295397055392880610979095893644529651919204230756202190686319845822750433093261518386279945878865468800408028639366291944551981395647967056686145947551363510590123814363635426651701143099149212210136194051127925720283785551865951432065815282619123368416194673175434117259983954381285818697863271039993653356065269566060169979155569188086347866835178182495243195652573056917608340696243234214772696764747332579174489203278829734420931342173921055221765183482797459020743934432607179004367814876874513329556869555582520656716667666195681859295197359594859278725613971132259943362066513231635079017102951929831418299774243834218849521613460468174497262247162404578840225764267028429468789568080374948279045733005193543863551691865057984179090421637809421681076023956473241360395352333665981032212476291942922212042078511419179069883668301384147728667701638741860904819937234144110150024933084863632261651694305183524741840975667282015754233691898382663834863290894187074861619339166158308131822820813110601203169020716879083555218043123629815663331505548999803121013446861087773895812871886232279882772298584754224449920594486548789476497919029564473550484728153383858489826089165932194712127887086772147485468315154544032854797779316767099082282077084515117682722550322656418942327751278726920628138233836519745317923137889857184987020306471667125825264394076475683262543203637168577875559494126237852535511926741950419763496774009140930194743725585468519689492393036144379599205477409291667050977400843851338899535427876949427108215428357136227229112620845264063305679768678830475422487082886697007460017160938474424126800994085002401854501217934906298944048903061619050424568911218295472754494297809864667544144505294395500843870536554894291842638470136993563635558038823122670057141225827239424300735603502014459798540916846337010357250990370405920962753934510277249484255309246701075680782459970514622149574627482696563877432644879596064769639332174014819774919296287869622278607744678789533084996271899236018098559636101149596436762339747990735162477587755541189224281393594650884788198608842618373691778702816948469790717867143734550845401565988020922290844543581472187440419654131352292791517292316825678258767660113246623120220760040168599758948523727158989435350906708095758456935470701376368865876863103851128908161125917770460583754842583109708244906698563928726741551706428528197081795526563131989738423045791268867637201599551842927698491853779740353985954292499781261715995769784215114201781399618502489831400685133257913167225329221058098954995830983991094212905971175864175436381485402448456705223254477480797111743261058534212228692399844969180083321586269761868362176089664858832517200914462039839010380299774513855401517704697516710689081216042528509383379478425615334758124455203149633385131335840922585779463818938615589144706526754634472146152840841953329991182848153678889304858004518940755114407320853251008734434683633958004987152418399219294202537147740209475280009799894934586070227953672133095375136663024793435899834743497721336217696693850794153042156972492649799612274450605493669683732822242524284831170775827243925787373187677740456797652700780141801631139547301036699432544505244195318288239610615603276109640680877372117418046189624351940166110888888730496830034162670941499378125028823673872964494402663234160908220584279864674484023907074985790581424855063172169320129905656725191529350611162061147107435165645516250590563888546575107915524582513118051483764196822334067330228522260136859057653280318101490893516964409501707898203231740674733505630507551526185782841878248444118251421218283984403829785583624432948629237904511181932954994064927443936942727769905916307631128538282528459389020162624387637353302149368258687295160826377704076230891855375703288958104566365861909274038670161649344180342637417712788426806730446914402278623662620399340032392132496163216924397707068501436082100649686347148591411791370020796371690417248604701707641462825664478004538082601264733165625317958864624874560666607358439058653292161631623576790398206576586814586431762110604768729427659522633827593085362730422563598271601020176926922776648255309303765305687772821567324219503592331386855474233355230821829697212448736713083209370929249233697690049195817632139161326436675863616699898021003706378112939338172711872614451890490154477628269002295343314965513450299047801183033657216982752687520841580937750572792356341615486303458655366465675538181917403909089459664036467024085039527432204468499995731513736255286517437416802870720901248802235483893038807188454126763149265872424936145972242125572872531116858758318619533728084394539440882474186600459450854568691431986079903793556994855989347688322359926697514507680052103686211022659935626071496782003706116976751599128409684633760386485904538016812341933395653651891803990316065419188700886441163079993247869155134520842745058557059104308902216431432357004235018719085295523372953163260359979938419121903462500963154388274388849787227725595751048112986100096896432082908845569411667457320746579824450254343461700839599036306157866868913108356748460586552927799106125219151058672524279117725924092350902794966970769507706988390689648404370218630331596394368429084193026928030545880801829194614206851850177870085224285121396824322864236664958875716714561355093190223746340983054037276120279133999120128222487020003983121244469501237142036728112101251055316789219303828035679655192715672491256976436522562873821007356092414259576736852104425368196283263563611433296791058118890465555177250927749859885153344367379314314618003778757117387518056610637344978558927543203280712486862508818424949834917403148004916959422346187504866855599373850628613385925325609710453395143934038299317533581176263824934998663961515222883049550424735443193401310778162774718103736963168408453170813380317824524948416801829945382346237953881610049156766115716295405617473955917177511328106887779402933454987741884602325306302339067458493475491022039265727039106656373394275213709442339621773322336791968767710867553151277758535572480868130677130213559048555346128407857547799561521433273765898381017802282782633179318031388923118993001884960704265435948782643928466258018787354563072174264369739469950577467439183277890010926504940881058829359540401824328632783309805815639430196458336100740278955070702778203932620612652870880336026018447764737624686908207908794439434428717468408333513623021436631001371244414059309054817576708485144449974316764002880060098530593441114716862703366960294384647410517561429847124829451338418557509022342959625737232080663911428276672164424682027077653306482808005999880560599079807150302187442622032512730409518115417255931118181747094487138806698721746298707675720108117152895727822636581481773227069518741014309027674972824737975254646018864974225323796858073346360938767587628826909592965994104055454215355597196605908936805019059718403323204494095010835621724687575663344076171218807026561915303371557244802612839829224553869299108149785766169751067423750017564073712990835263463466001916773963366203183205220958466378479992649508381586831023495438741061271707104081854208223301749611866218986199384328981093095981445995003232358320359142832420577870858941706426544324209835914259282223616714990729255496020317932552506032545988049039387749210734017666856861673691136086265736190766483712167149372343341871119670867053622936488388589023550036102537390113564922481791584265927907297690398401216981955847054105331708145564674125531994701223099660469480643561180049830370196820510224658362625568146196431563217379844494623946611937089424535840466430559895985387213172359498090583217343886329468976619917720526580326944874415371616968677098514202365301338860498355955032618398636135577509238544482525287661041749983463482037112274821683044101248157355127661336802850469312991160174395211516804729289041918610998066844889728737799856387823495669489221433377492536987464289200121499431928435342447398295340795058686403322133188935933615794545363832910660629752761554605412219273460537746267901949631733640947724319540569916322335499445357207145462671940296270559915333325889708979858622157588956492123189825046178813277694539694911108173755679904347511126434823184050764026526206346251487219519071289819155282784347176872754143418209950363690461591195950834099255910843120930362183166621490475452043285401078729020755788473990749578826765163988844795546856298707113112114889534156155010177699584531615685184353232281761604653544559747703770305689418225238288372554483719556707420367302683444729385255643951504915377119167928936788978031361920164494877447181257718626412333325892726527569533513380906112795473194331153747809081995810608323958734791735530084362833951056223895078497785495694974377025198045407998152996405574045953129736865962593579582399803151488055831169255121111731503813197111748222724782508681340862216424598394397773805461885913719881726833743875313252584419997799711189628329850352671988604005960194225590138631389198449520081825432554212866750947677522051703581563090192845898905675931287444249379151300700328487288947381785062500832598497637594343089759124303444540421424517908937983052545358470484356174698450874185044763388263096080286822237639592174533992852399950167360185583629552240466100294398151954832450804634184306270081631240425282118361233758326458460330794678725073238553894445858340359942445143576243663847115964903915034218760561573818868684868040545992178968924562778984627083522244193348311422915323180051122741470925810649191493548214221500001409171188630552541527629023696263020248178271297608901453148506755702943813171822321894201400544346866232952187714508714518204858650033932794128590914479183764877474445238762314009124090033128081676099769497589892085277903785411641566586188916906478762292164362465008989571406831117596071271096458932320480214834118043160409960036118259531845211821850312384110113382625437936872386996525735919748195011353976756805316713553699622832022029088016422063585718028774591296409612427605904260082998499428518115912817252557614240295699494516801746927280955560614047488018109663949915269223516255113444239352598106491554903912680967934961720893485411092464329190374531123926659207612753791997848934872806955826746213550916992061472312193171777455949889338036786101914112666529037667703227481406428007368899759121458293351084408025727743076445645802989007143995412733936747514389814344215652663868589042835285216160174074311868913289044483718941285895395811360901285178257631698358242307022778686087450583671036407507768534322128006947296354946889320349114870559121100664112956693983019615379622986242452812904260492580354489770118616136243265137898488536143938228085924018279768815153586093355592473466797555528537924739044001181854971592821902678097377135378187452818280032847793874922227439869882237464210268513625986886531092912700638378484487840628470333939039678277157027263847342056784542027434064744279299843268492964921116257751049109892899076080579170900712155409652580375338771305818522207808425035603695913290243401089280792835507404619764020770322228060281892076354206655050489995425018788082355659405985850018763775170402832584900270288372245471850506441334723837561883091756758345239784582088954709755700086716850470277932512727947659602221904304963890129513133967333253148108058314356198813790514430579928771371345621811687399876732706799742884908991305344743835259862714143586140445595150506526674513293961303888928798418990640531136236198649332829729272072761314130481106162441275514101192960575776566865503430161243129596819672086478300192849052910050203929367720449103744223379857253032289937809634817396220083455372301707361459793028526683707330627154387456926231465412652502510811957382597615317055070850910021601539460006467999720935442743318430424268820168693775842323613144266877961396013502929802336935789799546320890433699225205552132114635500357878253397720191501859244891119504102190552757873839021315994667326308614061912726763097279650136169602382180312700065899138032014079319565678354359660317270600725044035597475029344817860599225624081827554761636664135422980930751437023904714170593593375241718199566764661365727857694180058764208073162098537164911516057077713369880595676902460104367125218250188669229253617144828412676028247928529425942786854171915709103093734243869050064269749993705451287875425615110185742419177599832744885230827146821186061144120795273027615934875684700049763868522186784873885013812947978028208714888278944337058881468921823498570914700032197491259688267806961576154687056994186427579145546884450137677531506036749890205967386992094717658493480005445136126570460207189886272526789752946776703345371310430695726597739139740482643613276604464139504380293621638958998331804707225741548369947773242434289087184468836160584345676838871711270832367002925422642140080261655242811750481661302839940165554195184371575472299989391927045080493938328081198957676182664946870008295646244435390794908152300953701618534580043369043636113565536857299176438446500000116258153332264861945865350955683654310753921367131393417273839750623006545126864887100833762312305383269479351956261351182712617236134897490113769821356388857106374145184207463959967281177620813073675466168663509470195560736283809316136579231373699812445636524472137398203561507022065089307077107038261964026660787529131931349611824103994311166659830642707397360671885335409978386797645872457674871369380802284876128556650877630534338273878781075568830384889743014769322714503749040945867987301996205093184485113325305551134879473956332412631162638830714415590584452135415230805049858218093376604310533844902893967083727781543902925335766748567481201474775283300731446288177378853315779555044533820104975482848524187460537392910482858932048443144227538563986750029768428736735606299874616230029837650615861894037432789203015624509606641122032298609138443143778256296450550460646722449007580815689485740414818110237936825826696066568067566173741008757352306722716519341409399234731655964640559820902642179261596983514536293086945918620087294577911176359941529160432777977435632065858024556896366721830926203642770533408573666415597380861217035147406548659264904834218493973672179025042974386669674794874773038624418453172021757735697342390462482640592117460829410097125987461074188604477737402063106471726398433568882056356937317851155715317047364056993672122342324111908378784285514412502810680312845236408084481764823249333376419499645757526546429500307807489894665287649777785275903763965651897172264061690612233115504505706458721404456999020426533427039021729282888324620826260115962521824715796417726768938213032950397893511430688720711349556244680516541883948831207542089318434971125388082826904938338643301890896034792810766810026648801867092018786456429884958629945842130150084416014231184734322681033260016467654422956694197939599233285969942174802194446218008269054733299699909269064856091833880918203444489039466878106093605876066636915685397947400404281814722542289196086455653603528420561278826897178305535539961063409159172600892870582806784934780870894349578127594578668997501109267177066803984961643888573911709896417768636656920740593670943307107757437516200162665775013624922040786341900868216742900873946140147157483022151608828940898228856681121822133922316202048017441970694403731296570516456745974132701340753442389980526168933882507220982581404566276199244056171890390917288241798892425650109976266375526753449562362239644418561795205217120314904715594597114382199444623985189614842652693155351670790213744332086446901725227359730867243947986052334422841462574947669138231457530849224669595862286772447509439087335498803319582975809600235493933979294938766085534069876104359653183619909154559962360523867715679607609851327050784747150051519971714920548238459847866902966304194161732221207643822799795924525003812083180990883945191962968704342172125227691818706593748968868174684088923203249167127847856178791610702511630321399119094825672428428434601185624906861706582916698121444613692292875367780855163845626106056432566842124599288258990151909108943605810660256626523321361763302744377132182300189098197498108194279482784369417241064206452450410747560203160095979162629924633143901993043330666928365580007761839965680734391152917568744347084740364594225087557677175325220081764550929216180316167159898495216419906344504025103994208537394962858809010414460417564337845393588512144720817687757052768305443840687831144614752989018594994244356184821450929353601774291916648224885138167099098329613622337929717450820370054072109325800563387752747421232552553490649257202231116136746379571238341758742842287334663664097234504970485429111587629027983150923679910140575220764201426726049375720828990302529853146965222958212871980235568543244240266804313714055308032880448868998669771099281623993581139363465875034945727015442276312303345915639507811774126243786824229818407147286175011925029682389803862034606719037413189923370588272483708323977370504505490367500022609573220509095332192528558611983966568296809132510690478639333998299427670415566979902654987256368068864946381513743250467500954910991121091625118996541444328889105764547620675644726713763175033879235279503274838467946338195855614507412971998573537721629915184484292675587779213855659617388719548342500259605732488651997315211015699755237250958315377304198735065237348084458759909417214688137740542339791501437662521687646661242912361988739945077137207304053880721209091070725712628370304671709290793822756757593720242061230554277701945467824215718867030028920130533713297454267339276057432297540043941360365421811663573874997952509891006562089750829815639162930988975301974439938108338477667394928182434603816011866446660968052342557147180952528523761151184007283696118047888680724353620625029930516873013918617600574037472768486466504841959321871127746975039393914102173430969015786140240041850422190320994238794061636770131042240377654454918150771173420457169612430883693090574815347525834536662297648469677808620533258677264020267229558337457643741749240986754513369737089468041103257644987041218533732772913430255255248459248519995984600290715089086820484797824494160716514502468360649323161960162435855041074423958906702683068548961967522901679189446917083388421024129478912515206151233988442965938850759292438526161718120170999425414621863482569744014236049515913950402580091674903783696872773927267106090648109369337497970420304493413457455112886132992188429267332888826077252411033662487004257023558945523452245952915927522925348309952997680795474818090316557662240136920591529186575842869047366649783379054503045327201143740671511690510509952625030666278676677649144297042323047963451434130568127400384030534240493419962677370433795843177262019661782804440883933707304188806948042467359719758478945116238563901621280493407848067443541135287320100463501398260926917823986256818141059398940424403887853834750209614553391179143055957154950885105427457483530013334105605483022096172063183102165463063382867831608511392004809042509858706726124197873103669087955967714606843436171835239840147988015162710164284417726487658269411966054544340934212734158859733731825934768181816498769554838726378498821269593962553333898893240276974618980904324989006921136619958192131727330617334915168399539183396179601491716610845020687978628722514988155745799662543735027621490342502952650382918600199635589645770008273123532837290775226574099290395322075084339895086670196370607868530779920823374709709169843929896776156545513917590763495056726450678102532878082344890871234924063911718352597819047729712728395092031151638771196709157419137867481016938116725325660531530822837669938407480423566743918567208461541928127112142342164373168321229102338439014557593781918728690184991425913811742972807373523845211408104005682179612636391665855358383919703259639872358992861031495548559475703386045662548076500113542442528960736598228273205329361700335569376201582469603042034221777138388724056017859963121259089753423122778147377987450652829025882485755051671460618110703721795793745053217344368843444803099480652434473912778728420973087252316648179516134747388006987162639016880260049912825716955015362864666415902231530670588370876199568261788846776531320356360489139283726882382547960268677196857631284729217284668438824748059192181563684689796072345569288485382179824221256240367543001201668831478538599259463301833871381271262095501169156657000366252965155159306051425779941328095511590065306212471198160441753136685361094144156543621699854156535342186095184750232873013433052037099169426701422130233389044253135822760582732650825826750279422253763798764573484537489580374496371922492821446847343374933465258121686785212976660725972101961233328994922041142077779436564168841025908012540491340527257304822790269849328160273371935551833231764916773590538524284646668049518662499357213256217578713814240863107669132216613494409582484410752903961888429746546627852774448692663416447216289029199567255776003608180839998735387242590068227254329527918051501266717961887917015511680558976750516952358053335722816884654575265284497438321436935224025677377206744151582507229908510814592918916450543128888038005362696124114592084547537399419758247324337040920033439733002088845051760399168585669942456662070337848782514380705843990252361599435624986886338497763845151060849497565651648997581470376996423446157138670510258878710776261681865251742924628173052054401546875963483983066352697142232961504434389645732123213291025847143236628894427718975232807376884517477926320964105327810792186661652919729081375433576925787924677441369516993448290154997314900039125226721445271340304765541932263233740405863452288169374656569769612969450217782633046171144856482438463980662785014041918104358693859738202681399502353349990373503764561387521631634612963021001185895297766657110356970569731520737043971957899031675817710471178832878160745599098936687709505364472857737519597319125617124140085306857221486852590320881542905994882343845452893098055069897067228247891000764785272764121235084708601515592864175396637841652806772499643508976706031938184684072741843283198438507859403531948449771955638639364908910142029061115317424298735761402769244992905134944170042790126912383514496439729798570623970584732948413396682375669315847196318089676442719504425218159463279245400178918526997121610388129158242650247300746776135908093528258229255328289930331393240928324270703314423514062724406155711378818313755910454274324611308271326402735191256218080329924605388112945443493236673675675517438807476252355016621573192073891347167504561097613380082285271475726033659828062640438159419144192714651509583404237871221111759716482056158632670978072300292503728834041383562933875111690553112540649404411763199883547848861393203413212312401104112914009614256849714061603174718192087820440758922967938175844569718696430685564951736338218544746203845370924990226412218537737460206941731268955452955948304729620825962113869750148799781390338720250986707683349486541700309306479266463927991999906650635798454123197535402205719115979135370219436398629064342538293655663790349565567660684967051777774305577122239324070311967062935337315351652804383907210953613984736025847745617055241923790488288788273456803507300634994868653202129873374701098072777911972206231057274170590802613828825188432937407491466864020934530665107354530693265432691183522779234546594892689773437797015206488330616611287041694172677631078747916579988964933783571473431012738373921830129407473627189676020050537049349687294706607465716682460195149184376897926491634388078679605827613415148250274433755790005614856349465739969610301210173839136177681542270930931765848924014398528817018728328073362310376222384949575370546602434935950211284847048595293771308289565857559559889088467121217520107117557012099841970445398763679375559428421398606370120045825407407544366426544251424273470730470763999541952109955053071465115409082125580151064058187723008280882106243952530050782036402143353163391757658133733721028635309023236983649403291817564193038206116178983427841949764978792626947014419078568365945333744282223651342165660546889698456008539576555260549740416003381459172475144742274104064936553419660172807808418762638912233397293440551882371277185707023307113335678298066650349300258323274752581268268975822170749365354857127391248890104883177359989702918818595271566498952588426333664622408973409892245775099849570818877868299491943209004271308233073472999413979934692691325933326106788034516329009030451105398472537169245090818594172929884741438000942953381074240995772394031098499542082894407954588217930078335771882775326841491158252313732459166406829128921208619906729603513424059156527753368783717518026414986240817441470630313891150414038905000899767059629670774199281431104518020388223239573046451600095519031157348387059554409206000659750285890612813412167674113841880819283569297074807893378841403575444928752796666954864243407635874302434890453839022201040212826323759242932638797808292814968371169106396444376119827470063704744954455275541098379743493820040945093850051596238018336836001421868284919395852930254706612074667303045614309232663109566992928536524918751450303784580633740036278972251238368113411717679455949289844238228181363189322271868826057306216978313078014111227251285161341047910975295023186216057266112758004303448948683632663442901064504659734887369381649522059187104662061456989611574579760053580739823147117046349187786944292693107778298792329743273377030172839201484185456326767719364376254354966167951842128092321053772060643100626909567456632600678937951919078427869986881146876910334050832382487064677790063233230366598069531391726251961148127131411541867437067512287893936622506694742267678822748987916071283758831255648568873224057918680606910483512673393895844066313606858174388292327420721928502834123574303861099049187878957526834349267198596549063270254255984927913693502275074849063253149568152678150949591588186015754952620319526559216866852279455487791623706424292375314862827057509283264985477422831333031047062111108115546313501379992314637623064313438199877103445446788651579252077438824521882060882737450389247986335578877706803783857310532924101620292036508346393106721823937808068258980665796375143093427044110464093687059215753013251244132892818293556188607069663261224448245061624185998747955893933448804941933132396891621623240203450272063766699600077996557308150947388458535980836162795111271552192568714608860586453150633297819961907145797663758260306765563556335393353282708816443485581854193042692127004232237696779248370079519302096168015456501563564622835813570274401636276709186859191347175685174273779145949147977804008764111554570806168869795262918104685074406772696076064381147121629955869614416474454501238303768662367189169625966897047165602618166195026213484732931123051575797279595370970821791173537197100525341660994331763548260819544975956947021146478860020871826949777361922751641874066233481568103131940097654681271168642924240438587150891801562618878973427793963407836718100021008790222026574296366891422156951361429221364968914671007481442536334532423051083055279084024189140503285799998599044658596122818059996434181341096885047089320363981737194053493711436249388446814513341355651592771723139617291442377553198389499840260991969406475133680958979933645262940052415236428651317681933204940680627944281646270120502095018780622990959111705290576379694125604434284254070529190616459203277957226784221266048834334176780013376148607898632921114191668562940182266073479802598335437540064644671353998257872858411461431491659395910780896695856288268602219915208270684666952256945019833948549901871992970315067634441229106225849437128658723391645547018567956318791071064067880462521017548907656163071860351745000908963926791859103837372867169895311835464109036635196092878653054456421106452185670606178017101820401061749644015657250051190564199407829561040346738614927167325705083830144752655613859683193703688567769275756624725822447889106979333263600181627515580287200089263418963794535259794139386174523402994371908942468123190485393976600448455832039318735608105329293085580405057425703324514414684859475146771926532150261846658348225786524075593522886605822595753476290450480382322326785570226481309051972800689449772484542536676498598270724507307365069782739634344606074386693015485119463126010936500959324655283698807881565390432832368842834124434323973904250666440832572930784113413348291602401192428525561710562739206758699936275140335624956466449530605733939271618166551376098388626687388328139749947716338292409379100874669463514914019528103873843352128453164315816414692025231159788350310378199227372149523683942308843292030231275229140674144475593381805714773873827213927292857938875429910960594316339684298099742594751919601203499162463374895474258504906279114346019952742647049164718110951918927736533966793100517250573974845438667652092463452822761913876929536072347183336665506938049090080436644697992966330611022074079835022482439603195362747638298830452614598602612567920134386840614306744741381443580438028555251423219387379687012273967711478887258971416570151674070527806899467885317520962327477569058227112451776662036503677078092037358379215863934672188570925027159440958107527674194464184579393786133935008151860324537091387201740103155420900336051619627104338825441775423972093711018852871392909570350180701307449456840619502653853332679097519251647340700723336381272366185617491651961125364164806072177148588896270096924873716608031750032230752919019792140165056143624886987551918085419850207092514034627705291838582215064476514828511002152648812959452696490930096274184401651358066014272036675500515724761471185730903519108646327956465894533098408273443533506006242703044961665846900982042274452922492924042380238562599127478115510210042714014311333114579198747850504464456375065932064795994609889329508682711576323891022962963598811549945767572740191983394561099953493338967211256458032199340023103822847131867840628026597813923912921732718589036985840371619574857342795134984976243282593439745245575150330625847796268964165470810218163411365381863255627797261316458521415368043128216188423727186282986123587100836751582755604981077161691555160031667795934749538497025982424126310787048826699937200947256760435416072030862143854968868880347767443750647991697967049148070690519378280990214409014764768477361198697742528275038057686583686616387696355828468290200111842683302735944405261514252211256585504889785431490810521610233608112092990011820278837586303803241389948558603750113469976491669752524180382007351559564950122624947788996146346627928034963616349011913086207188121079312193658908860101469290674675400797104862699008921268600994431757549486877185330244987957198452696996936879100152105526573063515321641288793057620250478586312924529782593660233906388903881070236223160314617549199400528010262973426674726900670226215907589871528902371838922426059595891472625677878363249172140178377246847752956311043625138778109672312258623982860300955399239369063299644694711543686675531644480284308918585307819836324373580308106558163121002375272688929070353963922806450552799303561132045895889189027989551126596571743557748909918368048167817021696639530623888751638748239843499705208973910725984268012786029857879912304251115895132839727450566044098678982609668437022300963200894778678631032226008834388952746716624198024398554196305482926101972127860175385507995461406131283917308013630907695444398254898924644059145716319766457336992227104865981900898261259595898443271848723419216060556791624558585282637050424882158033858776158186328082372296781041435758062544380857877592713882364893521799363976705490164350933179875769046566122805234672625377674550365667133229664272381964835819715378334758470039975246084170415811660546083591612765355596067661025815967561545767317848480826628783344654783761657334168674211412335384625730677287142373889412405574543461779038021992439705563382409263752750277025102315042036742245539854601448970002996676651980811872696522471535224516166225956938559102936254724339890145027732397157531432756219149450868042598601310922804169076285968137329574960424307606205818378054735746285150472089262190410531106894408993588770947833335353177630842106623720264086790621742875858722705014095092693468757033219162208013423465044531055604037692706745990952049335591403263802841752741147813112827227977268747251874331530975909520622289004657068096654768072129186431396872192578061296316331955225008867706821213701214555315869555371213082335942454339807685688645428024355732752467549084268432963899339518851060034982061664424214791066348509853518015628146329896140167270809417769140915863341095937205017842972057959371130235328528152826701573517306327951838081860937626546382154732884115723264082074596066417545270651227697092870784177537492315088492299043959712672035231774141945210369232394765920080942864233831743073265269015985442377109414474968267774031391309698541686645347238665972948776441319644346979274613550641860738238384264806728402602414952630404359042756870413950474944672057630150932919638361197606485901934768776801027912963661448524262511683098265268654441062483118374292761215606288431171845533687329280384192772422094154366310751959883992193828005013797897769951062477036052254794328381923411261290532949588946349035912615703152717520023516336572478464466331620056592969031891633457936455995570965402105618434594353094838692263836870943858797031644110802131903509239720594893714606843102523687989043034962266573277392940435798904208389152968553053075745399617378323447280040196521777219024188338575453974949675409728039247218575998331496651313417061732928444024735036788639253305371136832726352212563598970118539280005792108997870320750281248734714668925946387753335394321722118005201117115111469235469857853807761794952700250612324548123178660899637895576725247840657314387001489899060390377135944775955124854735508634932379832065541042143021426989713849533377899395891756629835958606881033730594220590703574272187793726742730794034663189996510614767915433211576758544039053809276826354475057149459357675346175839465834492881421759082887171704244112941866425683243481550241705662852589882048349959760889903523794229797964232938846465944225660915691766219597768217346733419897562233575353910193726183274141137948574929733822715037971391197117380705865098135065519086328316802169910132588876066704708554737741735679223857241588203931773674352414657052658819024626116478626241793984588774609683105379738286418713395427060644965750832252991194537827506376478872598922316747634541768027362845410719558039623396514907044721795584015169130257371236281817751039540605442728954533341023851634890258329919604160499297077902707900089776737499540717495502947259799165509374456179287710622926930229971245039574780964003141301477879682148302834601328442415296446928668674846221714074670169031105254842426561226350758195068131995536628648310529401685591121846914556615067282569617128522983169541292680820845638741573056619209342499787419530735990790264327185466789249192129176549793158529493511639352558585127170460623746512184257404973350792591900391419681472384510506304266963001768464458492394377503241908477717231026224201861593697948201892959870317433829598478923190263588135008147434170408685440868067902672600070263076203513590054519054599781977185013633602943514368598743361303719442580051289654298895810010259329977220514631006327885391170626075414114778127665876167991418316283237655067216986709437502154377377743404604138338243779816760170836881860972777423949079911576527766579857082686039089693039914109503535870808001936704339172328879208413579479280227377027700966822093580576462077329387461741536916134467423088078430629203913944361639815731442903811501410913010970599369093986546991184392401793870649721498223032888662212195235071027260406604773042467701279223114439099596068146430731025816743169528175105950448738122748882710094464634603874822441018375290935783886870103560272357963395621537462144172114896006227735140209548497529977555827679038429296214588442244522373307635391726209987665391286367757403668309296178767381444444377210390125570092988761500075672664571208520485471990176497492626721996532948756638396139023927484172945420805759164748071512103470079775340320039837550683185617851241728651411657753230328106937165905927744017449021950202087504320202106198514285586276294425030293321697910655540061556210555352334588005491518288614771429607197974119500601510966374586523519608809616493618481036134843246633870914152082685742645256021232341289807728354452572739195950782584890377556272795712580890990925451636732118776188644313825924505050899402940458254323108731322084291655431933534472255800750533300202071102131342623954597219622549664970690647573102330811943394012104163310299633824771651163006431148306514932268284440453312304458144123586386025155965883426990396828978838616720995624660756023615245234718087091814904391934800752933695465554040424544872930755290419458816670424514468063776401149386031839306102170491255542145857156505458905382716898535629079116740208531660297377644166380217543091613079892719317163253922969003094107745809504485785352676174842728107343315647274966066404081177458771587466888477006494136176669363937956191091588294849280866369098464967878977712555249226847963212281718059077595857196386839042118155394290921270244883070368624385128192301089372072977652870306466067414729420425078837807819221356923064310004527165671156270744968828991885860931947846644729739256758433183664456272734191748018673293974761149412997631873042402549797881202075052506672276438067225075588494594345696517099804228634561035945351890270826610896000455813532943510124553577624358620127032677282324096732040265707524773829874062451748781329184228238125376744955861958310873997020576436722428164941092922937874196420461646952940040617652028765461416766306180868910310359526370209984802528376950299633256919957653037892554659784578481988423247151386744931364620114936593658887120103214931931018291583474971875082712400373746580431428725184280417989350974890054418654228053086783632344360067705535328020963958317984954318928581012016755837530076528894055253496535358140030858599893712753434613735258311514136558912435958873422446462249125343675701554259098383368471292541493675707394693486929917754582229672507639213145565539882475005749574617440933939011793754147487621960855023756652068684209412543597806579715179810114833060443546409651863327344416079744778005941439925105093008679710089872182780182293847259516364495054242215473421747542638443243363403462845995520948026858376378132710211801968377420919431873740733793365386685680600716355647651623749941567078331175908118093925815626747330507497556824437006308002480050773514888465568632723258907827733383986266889030355180418049107748952197119687162583138585834235329082407854656813788707605327732068547377912565824909732218337296453286777756928666506671419876305299855757941371280860802695347523698693715215241097469747879629154458095837309213969014102889760991379258562913248674728833156356670807432650340876563289753300029370511416997627690482334572123209236596027316663696086595186288303575823884404728913573055483670330262919521726574563049217746045661225819120684763431218824264216944259965444624980334130479445106591882875113449245492737093282155197562981571253299746951774272048472823601442786440421107409048489220878590404640478379993583426927869162117563905873756896257975526185652177412763512450456158236394406471297850971899510762345804518805053819379532246165208674100931296575853196529694333639292875213013246205366218142620723391314484056354160971798859640038962263606972773051808602025257603702473762776939962362882762994709858673520678000845932407811568145691803918884436169278504447930733887119826495970991042054884128055369408442171379200280358121814405433441672869065172178466193150270470615690312431710350244365665568996095063797986170355487524810470823492858634488739092187680071742813449468815647751886497223514762151217315204099369999578624154410725371051019209164065877545219988411803923453155579019645453267344281363047726227615672695239008586739030294472401601438981474402221196980079593437801312332091366986627131860996008494533136082965416357062201646948180641939884581826334176929756520517502354575132997858344901513444482751312793311853598454333554997889595179587430322846757538456145377334911585574125879969875118523294086977708813020622208374719659456472932604804145761435565312849166388270662083339078099551303304058784639600482475977764686308016653174942705689980387128923973784590896231602473473348315510448212129748446509427350135699279976246962116199736022041636041359135759539778102872041412587313357825022413055035310236622561092899635120496940118391996435591380749774963570961001693326657430073513013390160128665447301211489260546462564019879649566834918381118695538607961361316398893851315448161117176312499972843966406384311286876053259805630544600168541975992865429339261212826545420874017037871181452815968638022624982087803994208895783964412363299475272747857784607200644038430061192088090374663682955232536603956045370649240918336241984178032584945011784909992192429543808248254844880943657676787596358857662895988606302970056356854450100143548981084974196746112965863127467994510074135621909873939073140634160428903742028565884160973410706216995358302853036755464429219508146763340029942018756093361299448935895523397900240803690694385944840907703163623144163867648804930167186310628954865019348476575415817782792278703510807529037689858349013192819793014771399193466747010092541693173717996680316412684412076109372306173255749005510791663835094058051687950817825027559511181580033117150310529718781254251027382990498540201246997714391255954380090069480166810507469495972952656691434158492001642766338536521768803169417301008262758344050666032984853527571212133682731897261689953388739076131367669740868373836831408210909824714733809027217950791023443251568695056577043586068972848408101603204202329966535569929579929441462797384066368108580712661099616314707940563178902707453221952637321461335721967843989530050603668046738644667486160539420769966463139183035204737547831021732485520290446186785702335275709306082682063585116306758162449078115994024194990021212167535541393810570973238138522825433284043298625686514466932828819935671905838590181004682082703789359600461393706470702571410424132879260845363010316573656588339050299548309085017134387196859627704944334137957643765704984166567340142218149186335269593438079152473793206689186449328831584747862304664867173878055600971667031252263974657680563798626566396747166963364697983040361284339781011519816993487028621234290433666247043542595680738539272811535257561084823300577518994167709300792609471021382528495818301448112046528996471422440941097739702475249708423952056322368171982811158801233335765948807662770467514451216882828364650870784154970550522831754050791467809542302757878132429055089469916648731908381365518820675434026309661424539006035962178100549660572954801127355194953721800487266490432001909562936633817855032761261975732413932970248647426787773970704129979330568669731579731244963785093049269169068096241940766910055025961433973649807642280926397964453026296748658052516132051303312820564107878428727128111710591202892382662322411744519543300403137125566628760556238608019379005412473517780449390500696089159617959688169009313111104147194775885100335345873698786240581692505987234663316493339049772798917566464534760441486112929300764601909378026422531580101736193852510368555809332384375977616624610815398181024298892029514354899220288314654453222258688998978296927394136354814959839550289073634115388390678782727464367261387854581817979008610311172700805973433496250718724439089480036963152160931558634997683853505839607020870574895360162776914656724756669995173871363965171296221399719910527861271513432373541798928537669797356884866596595932654601929679927754109147556694164624284481283302056511829268007295730310556057037949347355079013474451248113359195260875019404774176861864108894680585067551282928975299670946059428320079821184368382636815704749878765514365802052711401629353502695731783898777652033854288159073711399194664993613703592738560919708837131674152582409518789497140389613568762613276243331782619524617059977881879938395040893719453705422841863830405538405265866655753483707784913598717055748414091643955819199780606772195551028650099432705534119927839366185500683069080142704724571857495654593116144504350551070881077619612421067573322351280468866479602597071040684087024610460508380333446217405485898982892667645287483619659453656890503717855611943621763593895214093707118917643714903708041334583164273291795015943594663130116577169976741715811158564494784311936301344870564535511482365257612184110378055827867054882017383887505074424632291530995930180762048880927415936479826387361800113573662036886994849190160625674532904824443114165730237724788466105836677212220019189987865631330576664301505050023093952751045096811072836900410898194383187542960008826087638142550141561105325610309936364184630639513264624407896585950125273213154924206068295041059648082057178963930883874298860628986760953776316527021475453139280408977851640894248801421238893725789253959419476542485548430839136038792204423376351777098948701764094263036914450421538539102777604039689670178489931624676827274675322092390594006074002623113672579303690039132859872099803206217987853923324769897794811470283220660941948292724447948922448948497895815720306417799996668470693493418293279492749394830902906630045274946877753383983316018952021507172130113315903427517057578033176073885467560001383897748270859928093663738259594303719705914992357048519326278653208979720187909771621784679726327491061896465663004406344701812245122836179879107715429032901026632587594240710235028322275827145960878914362559541515797267616461644611281072850168324050978235425944760097051277405971805149155762389271881779297111790906430383341531097865467669085011704923067164412623107895085534670283349587308846198819518568268418508504768392455691095016938505907696800314496600477059693206040639594831472719664043245259598728317151067256142544454890850010321762310150269211708750753976866880013317755387674447140381512765552129074466244860058457827453993929447310175362764463195349359947987686994469123020764649335117803543255446068044058169443146925963732837208521583102155485001953302317617261879133835618081976399858747142324160514909894048285837291371318679535940880147936879824654837024355057691532989397312081536175105568150685842931629496777702455650183976962666224295842762284040347489402866645287283001909995731994040754158146631640461837382733000649919031688083253670296130625908579151784143847395531469075789890370397442895687598793203731685973035107392619443400237805659859829112040693259409360831854300597762673651363152061592575510094478755880203821624783967197606924854421409355932233871088651328119763117866526977339549788852003125614477898598752972455234815663456766386419648508842189487676864703410062200601301048156286020123583231771214170567644616661302494690230088749219491598430913368859282233531735064038463227846334604806423546913163806304052676029758478773750231641745618133294929897682673277314442427506842376159600326541875196653611711044119052682711035113140087590202610367197608461245787503958393496520175628941491905834662534777694179041408349267836945552923654644394733707803045294658643081962773871127919982214944599737497495671061416296091546277219740100541033954765287741127716502403365102981757497744391972058881592337683370368668636502744475705484427882872746589154535588401780139745088084879510743868074175176223165151873968842255825749030587288432282968618393271527195752429858578818791932021762091003397686230817661479288878058388715652004118653273772327102560958800867377161527708373348048559221368662757187858405478821059316285231049763787104023928835616164348566150883987378833983816827945881174796392389435432329097480224270150983224721330300990227258409664560467272856624629474276010826832571130403374086286713819034536441063242956767559540701306446849820412695468401730182768826378418669566621954502906620008818905307640776516196244889161681962940789566001313065352318607178522297909923742056964905782648022507948573151461304724511587707908523361288343577574216616655432975396838520707807007868807649823064803092914494426149112776375911066124907990289270634403666456748945361063545244099912781877367559391012724031690762002856617435903078113405319245434959221344298143214023404042176578983376896408009159530837029553618959589816298113835562533001000256755329299899489719122656619155041121488651490252471689895017210235355811313439273484914906831346373090980287451740235697618794765849551941749494580597600654246697393932146523803421508281677105799668658707534820765970888039481177105737817417750774915641470809428496648636496305034805465133335423013629056267581746259731925887400568271152982200926936356902683296226403961138858571589019829241758743812874748570012112132156337369021086451143447386061559020753089214859782413210682716956821355540423072348170891598747378227476459160725124725717021588594699778918761591824154614602710905386945509135374055234509721948656794237564838190046670232616633925445038609992876091521709745179356248015944571847150716217372935576078012596705806210594197738664211828344486685145148419500855067247238490157133221687453492720760407304607489039669837076895067757589949403494053969172777701061178593513891272967071843222188783760279167866323017856635726115369029250182148970563882942749197489090897464048041068468074158171897515015176084841630807070194183257249814408024659659594952020602485646735311993105867994713639018917507659107424855855344545172172080918583824085955986564140091186609579177907523285136166687722285786788107036210302949175644689728659435586237044887843618883529993632864701990951510385042789783279452430716731201642239224700795800966859619427455894041384261270858510708873898579400286163018460782092674222337671488328368433598306075808466489224732427704968984987208938600885431953194815931285228200452038777004405420756218480765323881167360721520485833559016708106190813920634715985260978410025425002587082290708880075871851848801231196037771672948999248716805650200358649896364141696829341827954244570301923940552878948051713425389970413326977343715383322398828597525299769348394405904525309519536911096647757659630520104321367593034939092909982753970060743808411686162518448668715209866602164867172050020053798213536289099020975097908050331879770790724458187584430681730319156718163044642488358839871596836853708198422631859172860477253073274262425258978296669533299553934040787423043481810716438396873547360618525809766615731871111279463139403573425092452821642523663193473425355563488333512678908108132403424320318427536428889618103502712096185983742754999363272736563617660995077752660541560217775213437340336636389797893624730107077791012231144047359352110039052105195253542760785573577933111012058120123008018526731881525880172074519232102574546046109782230844859224473639149511746886566132570933140419305777752640109595729619293038351785809694803781464472481205307376271646801593375689781115920550944672019340143839008314165116817048102391484530075866560798165267524100477544854931872301402922502600403556008587230436034365222602487590183849220772620624965432967557661776791743784595810500412760791831789868943518415051807091006345816826910307195799305322837491374948255668031676240040363787365205981801257671385318877253436763082769574942496516776479498496030879514205409606858867513030046966654692157648913254828672664002372148177133492612461825640997659380919640421604506641724734432032606936332621517494270194328939762757916528601558618320685457920401987046696943471625781905589099779432187815157714210036189325786072480143063931519722441959476770983318094693673123396078824372154605146254934781617618345764877509541204506828596556698451550846814369347477381668307700496294022524586062132195896888306290551866634461517760600786706679059552705807670655673614343101305084877676906588894168834977923877126658878768439101486512818546794488494276735192309790749076028594699474615705297889043877201608703622151935448329488807189963762132807937784527499179968588438261776040292887989498800238992792423455367961031048953762803273562065631128017016099426277446900838109016084717052939689353904796956225108967166358538312379048358006208150406766215195336752842378340844638235071212059449390374839196576583742760627909880110204109163976595095270241877873055656355428966745132526209327463637889764205028834925305062161425226030060539960810695277937207313846261067792320519843659690118975170385158204460737921500293702989762747237512421836656628246695633022370090760682712631567827086743348363713642434913334442001998059018588639269430706024286129456870337144499455729755852936198135945308040653471233358046044842024049671274499019238372907891809600600987170741640455467881005155666077983956362960689170399774890273846393153248584452878033447559910957345591032377144931048891784697968459201227577885082065516043187068297561075663646823086070092023434735661859458169890099892550732524986823549350345254769460161772419319804252044007384454502244873867205259198951745801048984722283578180505406318782481068071417921978195072579041887091144743977149027019261603690196114085658922995545542597978078668186256321676905426718760465090586470262412213188720062305366058128537872312894483525563544524649052152302827607580992550655519346435073647364763922846363118418812098109980289015903116695958142123895156821883932710939431905509590223880722348376763620542656610170525781003189109614004063926458718061501490539284831877127708218096075807421858321722230871430986786862672549751515480404576056659741674492650689120031362591098588894790599564141281956447947528851201090773565693751750210018059398734872180288447837103799985105402723803531587265617302947835629561917582740904843705547373665659352643212373432329981187683020654708697388582007884836835095921260521650758711453764111916304094896478112063136724871555519852890681493676558455702060538368668781240571893341356299367608258534830646403090968453783523630828681339622421031326501646625717205144732711354299332873706498932306468044264503208740027139391312444223110107828888824479330134966757486574665017533009816203755387310046703753931462119259968876421346327449699646145042926499608599697777321750771556041171631028246221916526939700798987016088902772682715925756383577303483852727454749867830014214211297599782597940945558289633651762057690486854088748578760993490479687857346752420698739872553006969403963104440437752582140660890424992732397247651064687330343447798745432080069528740909055455241534170585238415493884170424232438725063676410383147080302583921114465189668164952275193573575193636108296454088592019490463868739701652929638102545326913184761728940448766256763575351530844279264685810658531900800541935620560186027539355271938002875116287462693102994109159236445308716107217210663069637208838634834062706931210598442729818451419974343953642400830815049888626585785251215171016306162308152762618999830093585281408586786560021713446051823221485460569381391451645448120916210523240687642825833391144784367057043507118619971588432550737658780959219351027024830025573371080376640142371616714563916901955922420613920550155568528001890185518141228519082006203439052179661537801243041015609434330979558500363230482311357648331350548718233231145174076096029023468323657861673995123387806429862796897056029761454595002508748906528208788228788184896076239346087307824644203977235580276797635108579975227569342299022503559647173223901786237392254731241540965198317303571223712908387809579997371660816165159697086713315022544679916119176286607243834242700670953261936654685340345703260747979528642130616510998142287357906407866073384380567197451292632020068481389689350239766383508240616354813635148926620821099824790085888556416347258538039293305343121792956208073780756872371974873072468467446828726368032962762333969244728123846248826834614912614300748539478999363290783696358725171423681969484284584557862439683340038245787673739734326336477341840718554215620339056437677561888520057738584629273883659891316109668550164115389570686390997662082340187384797317512004436283099327909513294514183556291342431928507685163791784916292096908411037419693889952314824822724364252844490984130711844513230392148601222253014199918919380763929586465308515483041927050015347680565529030120599304733816983087874414627138984218707524298501834014480708748375691893424698157400971610936916941674166206598785974064872299537657459819514321189997858217518138873411253747398007479817320607289043457250496925346667070616513488278499003522251418186753702189982831454641850026463696614708682239583822472670837575692557839348603197567148699374634523004521748906726710179084465405243346297051806496600382739291939216505232750688014460706643550041965080568856853046557454309887840751672525506305447250887701595138718619645420137532545142008593229827396484054968789605563080375377601516338276977436981205016807810998888139139187580904991980159512509539270711472019349936619093502470426430054561711397477817893737768287334561391181366925254719984605846889357025905865840465079144165968204038202182068660639385432465448134993182566424276391767179929648209160879310575416152523636660225099747548373284450300788898043990329581850052692115246281844654245588852692352923067511966284332635742558578808746746392561224543361048093597722365622324914154420235928634857211526819546200065639599951506965719681164355320522090122849602228216403511805911460520552129665932965396380442967467093087087743807020612425321187932985323451864397053915112254053296577928271804788141708912812254178379193825991273109944796093141624671642179249234846948618283971166626520600491399451609520477309868874676329564366638531327099608510686590871296966778318613908610569454909402206140199032545614700056669489617295032680980881538038035162738296329610203134876355759432931891038528457923875428748685848807501139056017492108609046215269987773481194714297920202928917786813148521531572564044007178144583242254094336304440483558252881885847017752803765604429235303597328123925539389467070692732374863076023520808463428968841833930696693395999368587976275579916910431421281714744574109191420633182909741595131323155084912068778540479042920763419911157907482891253346418458646595709033448836741729647722784681512757443814431283749948417092846930115152209743671264538017938545286123977027516160473974524478619471896140036870264643416318173736506645971090838200424026489188593325488847849612846878254028767548763664682925596717612234044478524246795820147059677002204857913107486650002157231907055812472015741475437351181137924414333377541334210339435172789772721680515954526803865488910110289087216286065193930160922253348998781377581901240726344912165337163703144613110931099498272353522981205077831332809619177156158053502774494126398735559673522944639410438596289996502454431798538527856535405798433849326643960735052146388610396574001868299787877334454369677992594138311232000940487630885466075193004785048373992213953376261954003043338730825601074060712255356727418419591950530711462015012103691655730963313030416768626963247796053204954413343570532426046544145762823994700172603911128713299142741357219847441027899565909686414741700597126590493174558838230645181042832558917010980276360405978515941500437052114146660584010702289564256293742114451571336011075811501601128617146102038138488614370433470184301471768400302626576278436775344296318243765513486965727984979373986025887639530021460768460652722547646542989766284997163126636617394059173856057439489875649215258396338308487160562470033358519854150960066577598251715575714776806475794495505066172967763601005673482457425713207243588739197763545317607675756532057471640557947976931125296201275392683366685155808586102442300482610397812135502929092025164133635013096197253915721894385444702067579615605096662168642997623729951388392860454072181403772596880086625177910208432329130703100272770675649936517565990310466081584649066779391354877774876377474119940686599567168181877401392080410253313063762897888106979225646119729786763193312066051553541725255512507883745742993801568020819729837550709324814674153476759708873650991854054237287026693039798966430119537332820968001119657092896256952413556687746999382145255592677190682555726041262690533292345878704256750152704328686055544264595498425016688649805769597057662313971621973566226611704111861169457774486813329347553577950774726399644339518910133995093895253568867781648657910964709470920886440365684401034098736817456941743857953652264565927081272998697442900669817049777863920270402499103117758920450236781620281801173913459897691734832454824388074838338375101699291239011967592226635187347482366835167477076087565539417778766093257787540398380359622336656963318658621459572992030306104944719233047613381775245281196692051923943307668210313905680360877062438010009626221712653336598376528980692295094686596247997524745589286248859410552186561573387087700837688010143934234933356160325779554483203422192524272937394376616776339451834119248081846616461522235356683866329764053816851772896225077174434859017618589026615205625719051288543876225425591515434029649183501289586657845372863565847030871793474403249297527514230261115015533543419904715286460457331580711670690086412501612241184890439778957915717611579251818350258010728460182496649746302348859913801383866875427614073418380607665663232827147994301682603042878800327035751461249390451126380738306769188554176671926845240733793891566732685736083476985673907219067714593602999406442215591520872608640366524504575277034967069878906132163126850463352506873431637599356352520800185575006026009798073996337131570808104166825051599150746875297417753609620513338452986920936356032041161146529675237948621587691421906820085798445405380414924972355321345033821149311474576886290605128195957286616656991722674068850424430924798754037485369259587608759895344732600939331112848281564170786885653821922647445046921176074683487793194014546431196478234493642347077094722501115511429210414294722549509249900832913113928309029858241978306267761713932981309045936347827191050144613566390810263869454002980051679221032220075859189683956451622837214622713905215689348132829363359477688865771045830546915344051624225629011570564093072305842427103144577050132294971681589084795131436818475101184034611500117821747173108937062385259811341680571111394520326998670804176857750139978868938277845134094928964532979130942434321149565527787398033615300411798329301242178493969755269918511647504041802181679024423241751879042921170353025549072460309248365204714843617922218409880900988060995450403326762122122254813491082336066301450118299382841304430622649270196911110059741485314287065357265780499896905070805548469246461769500222266362135634912537462747695054689092810574612302708217505500148110749451427176774783161315325142389741750096253821835613957319532034804112289870733434209761563350148985469394742933157213678177525863056198712616350020809456912789048638692936905059800478816741690167645880050824179608443053227049895369281251400146894467499731699157423302513921295685934487465104046971357274294114974562466523395131579734680425525927721757666081899679373369371385294238852278876978181771175693741979734901060471141160198461254113501673573854093640377249075565128504098006683863807539968295712492694157551615635983672157914131895527760318088224132685314015832895697078597642487242283059490595818624809547573043357904945035423078874983863782337939771315745606079670595336154173021035982743405401605369775968180563332294279618683815210020512144432587674874605466250298226889059898059006492482328525048178863249372858238146501978664865778032623006891657827573643240332135199506030449628564400277754094643126090591753240741606633362530241786935371286475756020558730397947577323238579862209345229648016690536623937428666707236627974679551887428130155536100933614514817134309035420891636162983839904377829963758967272062785144015761888007516435321842469625426135372803149352202441791588927874756914635332168164077705176243860966739958800031447648593555394613765199905957344933083389720577781654637709383979865064288680661569897482489532995875530887376803642703873000441760575158198079112373688646410219926498457362358353240735695371590763416459247018567881061264868381019571597614794313126361898206547558640195563104715019892010949869295215225352972446279386618675545560833733498908746948973048574652226460188124804063176076895756464758915920007885096433079619083361184044040678824828518551828157923040551057845347314290661470527404853233806458819868598285451151251522123894117933253737676060184057801281010463839170489345568681175460847105646383531536699313846413083034955464262044565521112997633250536237023892798052060239125627109087726195477645613566083869562574836288664655485594875973755301088409223617031134665787094618769833440491838987502330696921286480241759005015728688324732653372420852987001687750037064355239615738205844992046510549475417267170403647271430231142823218036304613691853877530092942685002456013308464997417092988557987775565146463615079069815305705827503714703492520553532792410953547993825576631747176307109164678894825492387793967114078124785315340357855400266734784410730603929971406727163408312757127054977685141634774348518354332412784578390058818340022792460923803477354552419364900098583541211559026655959523792195735840585945889905124391466979143981122477243553399549651665556807166102159510459128100693023975826855224128550112246418730056029312623089811234401129684017866740895204272205737227653820999064161746003281420955991668722002520491836938543081777450925984523252532733536839055548724281288706931886398851212199302276405423087648590854799993583676609772200330554497175641935922732142450827440452196760177509715549709284929024200733749954065068846050813054296150266442937253407088943795579564965741060618025986030704048532065657158910650978392698093788671403682434611079394239005707382224889713532603354007149527870418355555219736602140251760584279397257901379690502784018404899457867774227104658092081580173887698086269308540362448357433859516230389447690150665677244532763502547626010700609128298716594376910965148643208585417586192456533157370742475243796817587980048500034528928163962442148530508712197771673433190901464787129781580048356674110504589524167615537290499378243134353973163916888680929080459700993289653639056203696753003107890483592780023167520644703115339037290899096137275894316018781520668145637780585341295556791635464739772541768484319539000406020454917786583483432879392272648285820035412109483620035852634218410801421868584598974520830723485014973419602222287302262776466789804714312986065339885612261988148714309105515694750703696420052106642690341630130087048900732472580669202094557457868817292129522172721544658309866497228927668474084267207888760037215422533882141259014439654148651571166536707880281014317925742159052345336539830036561488589038828265449018502554170255065235501926505663627973502736184228869461941780935971229191543748030058475506197174960481722450813299996020152594098058022541295904283947740292382546072488947307906983866437403104442783473234678325516119805972133785091455033936206931238665373151218577364115175479620661899449411683720516352636541536624132882461577089290638527342680728813433655966216750726249932551592634770936474317557069018252403190487814578492402466253470643405061397177323033561383329239997588099123103320702009691982958608002575196296890980429248643907835524449026421000200766460624241545317399751679291826184627313342148056317733821230574940292194687740119306960903781339107097449846013739842359210207463320688288390375150527164650833602149641841558327290205491865466947766245854517488996490574390128056229658261236870737262063698338113960407879481103915217085696668427533275081554264111160893675448032953008900699338280552404877161041192837823718729800939468841511970152027276713406651981643365948422032728202269873660085770415221197465047412829232508051108509745967539517972661789218386319675552542889438355298192935930216999374833012802403160836104228156083838220218963984415587752856742187361897263518799954932184461780003538620702528328063930418222990285320137796518293119930687496365942472826781145221448488628934051179142993980965124607029354444900291684668807194961607547099894269343216924564305928695581116805547714153627005727669742493406424245171937352391332541265017592587340646838579966096835100936145866489741979036741804221873114871671988781637807923301283225605834174465635903635311119192744465824648657029816755743579700733145544038041727624001256269214830318059700954944787587299442520193271154437004909095544725694155720315241480491980668929839944063446505574548891112202765100492078034858009279948970862589185603499035342005810321244576479454686906315719892543127281681921741508079266117429690654885060672255133441672854007123255805942546439727532115288733044750808454059336831670313351201915293874170168503465496240636499628317457631925515817579303775064514685072650321617017767140956160273661330843818360857894480700855849443153255908936710895704358623638419743705114121727202403272453088810824610636769161083594102055786026901219057495738361945975174835161608070348181899415065284835773582286287221587345400055233767611419296841711290606444945969773642170358073852859393119000532534490921930852533071462510769902748926339569975025155924334735941493416067825096439823753257640876313966447581290384445839853551457372002392561483177690031385145700167480537689396657640038077812695855508213483648041133839026560433182463323503490541806976775923539540181052610582507751047120919472478132592201410913809395811586319123456763124772400347446188756435390583930531296623165507715251689163990509191491737725513928336900324170430929142743681206055668381233045734680996143761785759359174531327731061506404359353552480836080817818090697290025012532584517221682130583273317946064453885745524543293049626786317788075820085350471510059434384101522976383604344905764492182221514080430334584372347195958107379673968837578593890211250742249064444025047270267564308451172674109234245762901113141182451921239230043868217568073955231157488438481573821343543060876128754565188801844611999038592186372634665984779130384524018244882616595850972034244100673195635179742526810945517371821199681080906198948441347443804253043378495644777037972543078697188034187296624740462012206309261769864389068737048808788263795713336114627120966610785400348976081991879230572809324251468730334900911746323410580846835236941703334659836304736011440388582227547603431720630388476307645574472739491723526782046028038062743603492472095745427427684372838109865526297986791271819663998044605676609309061314777473241902108837411355281834224557834633900359017314351793067925578412512109177146404256246423409434374686569099572429847280528423943748182899169193597022992373716771917525844894002482464742738321878923560182881916906386352333153554657664740210462193017493209262117103397183329252034819536369751822565713917790664562777635075957454196187962609155630353048650359217401614787353543995687431949925504082366734545766551399177675848240948941445441215801901926664018270171362261116414447096960814562485854525437221707894109507283358734172487504693499297640394710235528312754387798171142582557040911097092746118706511074492951285497665021941766789669995201074941913624250282605642537196830356540629203656293392865250960845273152547273843562849347584017422255366974228460994901687786568297057826845277214843290337986272157254718443459659457378624716855937010559311556805010403274403421298923082375318138652188544769497665325501437341139575413405247054748613735536373972576389560770478319222680353078420245219470476374037380754833241950596521330489246634664375327754970112520476811616101109906495378784253217292065313145386057715939289293182864759720131177797150364365209044091758231157816945652078189401143031589460154483398759593842781474358140252351581435580031320031024083947368986333385542419736030879477434917704035587851345849496894094021098154112716298636793141364844740839306681928541260740993248483891839345023993963668028265696547118451091100247859800398747656590349876812910668888061394176332786374456454619993546290444800875029575005919433139163257751332311049937663981049449977069117747354336118323558904597952116528670000800577284923641680274579181987409762433589843877927312761298681711620856125224208695521416742743619490567071773606071414597368181098542021063821480746680216641867806675761929254703076455014761512207956285143852768187432561334944313919996921208416216590616190747693957205535173082493289951354440966212588533112301019772637920460136291455462374303894524016552266204332872099060648585911186705448445879508786902353795566247031582249017127890291191674644421304454284560291591348936818187260831263382815711056844054798614086369833297000304413750768509992546434315667154148200281468796406444902240960491487190833439303381945990649376696056630545320716573201854786914943939607152274729085409109008983647720142327902696260161646206268714058442102241814485944426887621210843091119353587289238817217203836082255812355877518452319571531957748307503818826757037613915210690264045373169457745313198151846456802725152698642219780127072536642993915802836774480703096009337111101951960293937111722716054451545237080105127433989784161075663599466949799548930361637520399798034318731971525043062152128152653191787055338305058672735294492386151601079590361942019126374290981532814771047565700118268872035137540319156975053382329905000917834035517274538845884268902930730194180766559965949597015149953498090335620121373710129847103942439421301974768483295464463136818641087786704667524693781695098260799082272323924028417763031156790872482618774021447624192828780379338761275751387130911698342794245933177529462784699489654865392736128267668826344612838592000123346296928559780036397057469979571487860175618726994095868835487526022732802540503283407658377747548067120007879546627133194673286961117671257163976491060270441605747792042827857168890784990654215369356319244831167266361482606208114955761031735343123865003122807795304586673860407579038359853839346289425798209950065570458215397173257086346553422925868436507358572569482384395340831929702883249774302713191778202218933207032160618589791231799339520355812480189532904163351936376173898995064039891570261925641621789590420728510035279845302826116149027017676540430125787774593758212462511436245040257932588003554478067735355603190468047786496988281938187307318817500549785335322473764380475188824865274856550212876193368946531908132023199125717564495285760039794131715312442949304241328824624684951027577714352713604910502756832699522832186381287506684234927082037417405370863508611005517220228216174965298217783340318884505226199702822707088400238639420313418236689715090888107057803896947979245011937970779179451776706123310934937737779633526087220184345291844632689637109454229276170570615354310485939262061913467461112847483102623417970908549097003579974249239868709202144186070072959999178576203010632381963351566182278078785714677707690763261811090606198978167879945018450181780998049856803427214928280413133989120012709533973137098916530743859229498088940962256615950339933175266094978900919653141460181735398438766402616685608405049752692072628746414870415643374035966037529406793897679124280458982177265969972291405455838258579326709286716982404062149221878458442021375220475357679404533020945648693824698784427676850446694576698446886737796733474845478431569726960959265711348714559361026907930730029481720891198348361459437813984286554524785685788617381264666927391327884592689430988770801959333806898734225008885813302863532496865787499425826364754798856477022733164753624334693407046189305722053529482181277145766598049528182954155090307988084386677688814758652302032360771361458097263751503474712268047022543948179284964505143135999968863479208418790982919115522369518596576781254000068981973221777949196914330220219838559360472931487465395487673870982354643303302470183424627290535843382192777262481555313063389965161938431969740836351639401978682504737767225460627575104143282723311901162887241221225772511600804488795757325856707290206014983270870532324212099317795637878543587355591138599353851329026894547887824784093863756767797227851593146165236059338470546779739256054885284150635048939600798501131242700827470072709298069160826351620821436027334282473466215348409450283347902051571805686497300835592865712842287618390136690083875323876212933539771651382158441604027907542083754835885747438348177878050670190710542308563663870737809241971791267173054058652478256588303686874781880245141094799977215365838916357282829632413110380567027432118503027354459421715758169951172154903504190695218643502431425690619825947955213675557425602521528417335046805178327419850134558116996466156611264859560017497865766541954912913249932994029579435751426052485279958095992869719659464633892376950492092381354748606167214943824045647535998578497399303100047001215830175711800608224384315369325928811962862126136749701458197229127538073863431942435560494217565674737220867369367936679635849755805073421550602681793011545914290100885014645304635176634094278456437990910108368541724076026174181239394894729870588587296573272274488208665973632933495067969075100159375954783487818742332907940588881832212682449298865662281611646637191098129255820758211687089525970138376702230244182026852575546718690966523407399053523153665428933315476113920303031645943305205827609580179050717515405113268053457578414704163092123219364532133816328637783714391870848661699135890752929149147973422444388828875726550985802892793436902776629281728339661999062390299247420715273988394424995840860969319978997261681741672253451070046637586395719759486524781943018820353597957518241996761561531935527726577264479363472697048022783191162367689377336394084544176461801484452802752318910725066245226746923814848655749792238929018641273983563696027647599016987667706337778503160293552234318854297932371127656125071373285560293338181118438052456501551287084135218818349479893618165658698855652209085387006355281923886666565714610877090119091003381131711377908332354943885272119826203245114169635243554714146021933809180752912512889193326821577933804763856038143072403828018360554349686240924022168455501411411246139556798816772226576832666136612055613863767726856499645538443660604668973243506678660273404856330633353320884709334389203688050359111878739133273841468585591825100896374604976212870022580699259733057864587664140675839193555282847572602536195621683892413572452703907160697522286808078510395531798614856367441028425392667428514573711607020716096674776615119101986973709827085633113401680009123468255169349915563459715047924912661686344668710697679558991459682684490600325516437427720377481730007987617756719871474465778295447692711351059280684930881900104199395816119630708897488631046963113737213320237760498847018758657707014432203392098844838884904883567860317252689339350467520172009909491222057204232524959162082037939680797523706055333120275361788246211544022032152722657329214315414335660913686920173829401633793923397973602542343541987256069794659982948084741582256818490454012426096358008626770626048819485643287230918983995664180710892666236984135334315760220183292415627410607760857881684509377210381081336672056132436900116703510196393616567423682989442756488633891349875812964077769014271071505027605474815347910550743362416972774101966485998637503752806648027069852062806329029788170300242113444395439131781506955648043528230101909352823578286906114721109321933661278275982948702404885124503814575212717190731815585673701248538129431437223128708196174757306067310145262058188077916660477501900518487920652544223379372162345814918571228649949464570670700145727011116850376563179815416686822951469528337647590206643500004838574273259905526194451714485804677924369410978669370357599430845329000418298785823341936033828500894909050289077529100823533892022684628792724672172182003133952124213930896375972274592625616073629256450514005588284585411182897525774217045949291787607227146115985905377480184784909015391911156705502679566873415140186687553187779130132624032985102683912610726931486984346508380840358151055370451981860627620516473431130465723168511220573290999866353784880474320872418231967238358174108745331495664678525621210887547167843808869424056229286313595186405882610883138399783854612133701947776989038559746772434140280241749159844449810665958147846217061221072398745605603144686839771283134849311936282478616707159733026926049927549568583178906138781551445543551033921633183403217552462918804846042948453801912570415384501004291019774762194420763214360538434607067331556137116925724104655459475081898516020751011083760794786515725053282665693821979056116329694169727609451783304926247783392664264513734344582578452407354206126618555089365269097689377288024970457654281165757479206814578538933261406143934999278531398992130555053980868741080944435714453154919814748684310682197317112688937519755065866642101387522523349422916256146105687780030826129160966439429482577692769248381278574046607392465695779494843737441531549174908002489049616711462130154984244499023886155467835511638517379021359870896381560928282149901257138167024146283202743933258154786288686329379575964813209339171604776148417099756077291268550983874923927787004998484960224672995426314225784424024377227145560224349411299078975675907091101881713415129038492193834515325084354490940553865663946691737581324164510293688992442612591895921778419754357760737035140108383699561739546104270704295552704558477309457297686620036326567679769169109230531867241773393661531359172254115765082084665606018389797150179445423462462001157322462745193099190806796016401202464368881924410720361547346988358549575165752994210858701951438002266306568404135009671538708250475979163589822306856254616416184607026238471856503546302712760482460951420467781104812358232438185983394149060199582813978232921732288171964603387212817514412807149081968079211855241931966780247493786345889267646900867725429029198621105744608025723890207316600606011813566532015983092426180970686583724434761248505320543017653257500700821092121387386976056136134109627428615530659851295849414285315377340951668335616840866749420252104442015081714146929558081034922527255822096432503317601888335206112230614343253425159445271040264281703330489926152415604084403113639097878435463422266198142343365167743502564007543675366190067131596680395054546045607810087698353783485135031205156566257667060930029081904557793097310802222023197588947757324349116471302831214502804416338765447429955513370131346273827186038371315847837641751745510700306572570020934356967662363506695655818916601796712365417638721193801835804002461105329813002742743877165216043724641900628605530808986587456820318436401980970633398380556676828405002109058496682154914613155955980778870314417287992816386804947891077328286660395515988240310256338197576414828811070491630107941803750807363362130950089863453564824307988241246689263917117671550277787992941194770408975385454720440091525771524785379157388878718661701973118986748039615728208086105088880182079483077436904626649016665165135751538364295452526203079400682741953902871926962783061735802280998540284316249881822729148464908235933227419726751474549145290297906024386946524896659372026456376719684540920697799055758648157225970542898429863447596835946609771820263100255059645082076369431328149306610096656663094515310324228337168949864559644319592069423679019841588146641212553896902393616533239291407168250563597368750444705101042599113217255523172009675422570830614129825722919546902737418551755183033548791563141157041169876198739737727607203789299430312616536790622506608069783084764020030045024880426671685978174949394002954652081892260549830010068182394708898945464109023476804498203123385877101838625202537580264091037808127819393220960075107440796434630753161795367588798003044880275955999872209335249557144407879311669714959000052585523299276568595097003356910944557723159655881981779453802348263898500841147173495942961686210529110681968682884196271242703232179744974018658105524696668070750021623010529739505878597704207386788659077200618128735370447248629925475199248201324041764980954040841812297318693102897363624243951424224434113665194403035416517193323216275086225948063033931612799630009846821904540866407202197867856058609076215399223537026744128522239442680501432842911638159588215070066721775276749531409541320742868515920867019285573738317342458122807830412116548147897224102807894182029475788573773106577451507941461626630007261212837274721862659249807255077884585728847677759532466884166322932255780676649755901729807553118760709181219252525855809589472751486675026109881092580226068202068929714079602518986780499051555688209184860616972925650449910155746575381782696251891773173842936126912640725570695143973130461269662156994657636676474025908918408221712746333958198889045704914754494112569107073433419786328152880772916129825457435848872254889512950072805535755824083158736676828801267199319431381175962785881915113459220677244383617433337056732694000646718540180229205322395010551194354373313988849608091966032321273208719687745088074524721024788448272278793471464793943536703248533083078934889909233917978981823378638084343052480225041148156803989886724996794481275354888135142851115843457091522215020214892190581509503156875087033423600058450993951534160783824345513778144474097321165844579830444634388976993894567830816363216331977648329270354344402772641504767751191304987919556664290408916633678792722971649943945061013949577175127680755621728513629878455343583187970055902168306826228642216907375379311704754703133256944121365628121964853615540429716381672367992378624071324140776207103417333065527060685699999248000291197330213782141135090899479379479622318880794819744174985554586398161960401406024348742982402616891087114513265828597527093659865533124726122625325751447027356489909006144065451366872103542639169710251910338801270545949409686899731972972928830116510972541926675743174739277814238602124848487558546287805965945112783256427173159838223083375230538692014147498119860890199817024926309471399072033324966862022302136195468539561825702093997169417050223507653956141069850047421098869072207429193599145021835965026275143256461962503828516662506910141750476389520219676197183652182259720938332973537425339554404713606913367770373699967636138101333307527073076564777798455242087620477343592903515079094663036711835972808753393970748553522150349221155738785183486997262376553065467507835710217322643899333837928893797817473547360898860065133857381193552760838006350816980939190004664939444713649900799696712881454630283400162062183985856996959616215554555497432208472090190379314919832562297877423224391057447004334031564634092363316449828090014814327852418756206254095857634641943388001117723365867849782338620080736990529403121124756634897361701017937919935301140736299412377659593485247997265913437707857529979935726635070087346629825215330235474653903759883067499687764905710114726865346017101467267868343887094999000198078540161987836340114695476845451176060336311095802992236676931077300690654914320161330769324766168912365258076773210993589772693637832349256971431929681428088138767634038920729506953434269636129698580394709071665975579396204190977707077043290598438486460831141188467235772297711235785185797367847841086163898393364241999342584284117283288432414989469914401302081305853467824653835395348960333443854112383644707832798206953782836247854963924146666644325815270212378401037541137218747765808228856289784176424399939207504141991894011817761570431330928223231485079741558462769390772576304341599007180232003087329231982378782371295024021566573640009255043171671151392320770356500436096221581132749591222671480517568863873963660496298570381899139658627356551744307734930777855788511877851210169775265023577249520245968595766691753796779227750253135122314547392679182446983853477569241627229379065356812928641340795475810914381034414276956060137623259287358941255397277992166837300956998828140681196721289478579216961589990787580007867500814387236982062426192051392371777998248427840413620100550504546589760514622962348644307552608813186660394438903507147868468391826673612890562066536330994516103616445424755550762382785333027208017592150836077515237043056870751050192604473587156630324197024044137661604194805992615949490462520249355181614717683724564068698521457676937974110092193319656665431331498456097517003107228202769074596559312053502910610325317067987703160899789287218441826118152838172379010354897642197615144559006213474503753806949243527897394742467720018892615823705294225772161965121048452578550233064735334597710449821441812492617468287665939298478883477834984402875098272719327078754283221685866188481283016106970298618961715683302635570252505949727290642200819000456424321853335722571044975351721111805174236065756327169434946354363921193869913222733882852923149217537542369695117549038864237711839496505273065057008077530059809618685401207318314913369154015733293389275925911406235226015214512894551892599346859548663641764864288459608459116314699962522786661147104008516552709292875566391839394455631391408681852387956012485170658793115341837957608054208324470916965208249290725049490354068487669298288366249520635304947623556979021565169746579460738355934768827819369869926860794640676082488380968991310882832604803649286904814690901857309347301891962602835906757553070552418744080391532928588028934657444952083641405955736522540517406116449111522790371008285635612143803777691239115394132396562515389613088938097883599376342068532220622686141388412731379390676462318901873312002852427507080932714679688165357654131549320878039719196944564262128929320340678601920496337769902296293861989270643736453032591502428859457563006266688463689737802664910243373965362910129475512604719038623403323735316198763805414618336226440139604003961071654967681064583928165214648604949215570206087388841185151839562279612281884209082540954155596187522048765702656657835402724866286393008667645773001542718087518336005223849180586962096729695863993402176745726173069068595345998668332810506652877664558879582822415783191632761570286792379255703764585905259726716703041437282067463424026190911837276521306840803307822155155370318478164933444377415814667057211810277477919362015158062309824260446452951924210756412094089029669587762263786801444986512247046220867422921171684453716914704526990051118868431457782332156965174288016779089145724470933286349434900040825483894765459638543477853768221712549842322936891686755562265218730863106071816106183692863822908988429387069789328868235289661949193279395759551906194871875357617088016889581459960882382234558043853911909394606362859877146409915679816436410657987998884229904900403734392645143436345005454292255262108033402166516741318065770105430604135877095173016385226137920702574545960215746469441267245582267466631579788719527072527898258486187467590107698578956337082519257791763862007456094309309425837066004666439680362407612977675016722807635445013155918240852389010268738500429982620666592110115845566614997559196002053215001560948454345866634973836228015236818523000628355182868375455368241699677098122245126897172251065266196652078437186532597185856431793200161252549191369580433370425668416861001485443564701825626429883904176325877451815436176968266196655260579608045760504661137158579877359384538565871188665954983859756727319735452055887865062842946305311764092822060069690102857268853641739171047565782479715191660006334495554229556988951639684442741619231298390680605602431985957069762170136378626589197297233632771267212734145902689574636443570822583835480934352983413041427889073903104392119900165647369264467894977619138402122168481646001659873804440127445134793223134036780540378418374381557708821613297760182068677500089768930438474461983446399548720609714401206926547425639218890854991261789260397958596818384205748744824899903375167899944643712507933595549689035389674883973431511530116357205981900777451246410066122340689582787613674940098228798276424009230581116403268242560495785323980501825244637976263339928935934293150076748104393639951566371939009981045634382305891062932601306333788745936850557250672141800736286601743046237269348164160484255634648964166592052335942400451962664937914298383581857451768811055597973628736506095631725735367126319557415007666971561369454133056486538700232604779088340093346833926606326593101710117621358878150006494559523678239637793715496645849873779602693500076912299528873148760296039020057285533802804532432946973937805929555806066920359128002590288733551830970036503361890211278773071171225179362260305207026060375499695829979460037592556410623978459990060050734795938188260590629336247780542440578447967573245003632706896028054365238280934507238082240827247958396063656699724243484675306436126753154768852762833786960012545541208091435766894665090138610053769950310336366139232129584296907725827023843461278748892739162855077959310671372311598139087260384911122501127284953451553412392355415405323153655687584546382474471571069802502329383163254259031426065460238864117588968807995548495534991952284656933344280964442939168445313011475195784141511543850215937711888976839804621108504660807443370977014143675957995203318308348064437006076621824787342271258430550483423432065119109980700440821850917087669859719538035156308196573495921704143414873607458832197505866800605701063726690549807552782020426479992170742046909922368354150245839301837679333583212077202871083138440202058556794281244980152843676691661467859718920259525962277054531241793084459735627881989526114962711577535440594994656601156249288966897090898582207254419250032235764541330543688486504669546855440727037290513219068194086967197107425563379032820136038132870538806311417750785147961256872637047799223415551215301322089856416722066604917141081469025238089462380881008580114301101868053028016218494954824962194287601191206796425022674252492616217180787376655678639162206025301393159429358521794767476382903686161917212879829723861517392280219508572621489224738467115025109206564436717250142879300428307412517602458418901661866908504323003576958725435614838422715336922929062188223435884090528381708237436745496572218740554987736787286734992664382756610945700883261447724213037616608691400417903677040402535118968168891561590007331819687993781265018248262646244581231082428657674442917087165554540470647830157444755003882171159953610461356582308741909445771063245773465042134889691535828210137534667489960151987619800718389948448073987956419641917095252266021829993189336429993056807422100958926402836047782886090442131343763838926735108647595450616149966965432552599472240061983108941439520294998340665035529499215199478807559130261972220314478154952236685004934952306161429207706598919247189356536932542134899854457123620754090033961450054746890142066800435400222558103714590030044409918580385148186883829546869257545927795608146599606485166380952386762910489686273510547123457520360649051529784065553625049545650892723580905442142433406928475181214341860473139784151975205823824193818884893904062720152699977663729473776122884920342421587677162523517934840391308183171640936138141942009977597462716745356219038604382813818880494989515445638033059043839926981103788649134945201995192749858108316669534484234393500122426868070378118933654742737054612731642761356054825467121345843770210190054420712623929893192292900549862824103316057411158156431892313303018652032815639461620319135220795665030475093520480242500030892903241950875455704549903191525818138633293739008923554716729217849972098665815809445876723850706186187159650489267582404821383726520670251228701459806974973331808922582336628410412778319516318968569404107123160861280964624324979779376699047229987706361113141980265956174018058152568243484239093617526700748591546869657860892386768607082811185063351716382280070658181642780330876801256156102941345217742424349765886607374063820755123783070339590607868068375848126200768709040439747458559859550368901126877227879957297338380030747249231277761266865082746379887385061540745142686719621565081117772277748751352116046857152941502887422700100424907744273866700997278025682545079309379709704074148911598331123535666174060949823438290999466688569402900756056770666326207122977824875545265309476839323816048117293301031954727404579846061180791014469092539899168512866753943797877480675607067363579646159148095244912674466453486718101751399804220376107979790191888612711596766746740077288760755256206015898102114715261286047723906614753374513886466826649547163761715265335495550281836550448039962775660847884387094839660963780367587071448423008994839113922478932980734991293808185438145833299066535461443440865133955893703096205568712000092906937520526473269550897551880844875187283076830529640671749263313837817979761918934779488718466501214408589782963876395627309541973459673615841409835494360294378380861716644730187433533386708892195330467792844624145470688124521716111932503215925578116294357425588682885604335600384548342643009980943513253293440970953054217076839451515954812331469599915328799270818190980315880580700774050698032018125303482471545641508014396573649537172441115215966988435561872845730777323626343882602697697256770335332810749523161643580929084561207534830609483474427998878437644584164070750227461463742604345757199363194464660473657322760009725876433349980081149380214513219246796308429168678391468214355146553441602537244776771645840356613633160419035171446320355751108281424434247633128782377641959570812584450542554281695739295779762691454613427816476427361704408064134683936029580605280423964208306753334851032950667117030127262636437956527139081654505998844404898600179037532696420954176523059842508706495712592203656365857835214099593877450545288911058631327618935461978647797039287160446629851577359950840184422462290872410651070232965403690662487464692445889884759142792741095490240769563345861815277651514641236238072755041403123239249014834845803490754946557037231173896746050330026181694280478818560050201601514566725273478448665228750498074619923437663828734835035807226329004321662899612059805948756762568968625053693502154923969127142312147071033282381517484713752239469757306498795079464306121168566673694041145324528395357940520277622290197112594501131102739411551089359210575088753011497285978341562986437853537018921689026548374141500497490696601265673558785376789633854901894053067882359466089032090010745229161378745625364633863499455348815193726737508329400594970419213576005856126182511917796965031169206679480368781659490651871929589741012616767133550379741009863085591995285740343461767999811117465813831380558177716351891806629639729453290907717677014780011051433383646404338415581466908930353985018194695729783050568171359072934307509682123762300624196059047707102149691135843940206033344088804906337337277944393471151763393032860168242930345448303072371467958800359024401173915233870729794774711697928107114866088126748288740470204650453951109411189515458343064570393625533659455561264708267570562264184155919691151998506451124861628651446282428730424322381106927397995836282180381731909736210248882469616141200317491021577920546033944930795041403053294873899925681566673001040777580999283075684639210660162601593994068775569077562574163916826073972029352365076369428200379610342555718290378033976244070447333643164445417100461825954401172305998733223180036306268980343668102343633076144851257409316089022503022190739945664543791553103199826200544811564022690358650741509872747762211079677907561343402326312838000431205389908506720006909895922022549041790139219823447910726067261320590198215673364027702118204629570608707506390298714583579588064671781165802357555912322857050315598620571558229283478558070913480836838209112493922539625683811525742611010894966728165220371212425465576638286701869857302542587663746003378546013658394994769072068542566961750843163412442173622059343543980190439241901873961743422530149560723703845207202575130461846320894362770283590501586859718331684074330500279349455642597264689062661467103851023873678418185937850329814466193454510396875690859954661516942540678373215239094312078077879692058817825124382709638946226511576334775809026280337449757606394756588147122770338755060174006751615161553763375602797984859949421005529026858503503736515808006278551329690065296427798058334939376383720915934692606560591936771982314421857485673180631103882399893359807407002418242607708981925615899836339290656160441675734563196288857315724376327295848640468798185283587466442234532835368232191886860799039890617402277362981887494050858378836048319790135049231248342335366099652621503175463935756673292690491500132887030877339844031326564131200317996299573408277732730587906459652799854937841172567652149818511489864106038073837293593758881646411779998306146936606134886484457369845384058471326441562367612714975977178233382416861066216556234046766609702046127090044519846934089943431016167949700836129248426688232530063594646828031303047944517833834782543563291406581173144916533642851262202884859755261886549548346461543480314006407660749208630257089787328558259339462653132954927677777322240497055910799452094572742308724811571646024678751009717722337212510451361244501977015456681811131401311021555143342117247196585387481497868863925134522919981804251968104454615294694166231008532024616182221885343841764831759601643062612317290887524890454966367514216391325437833810498623398862472320849822832502675656999372423470036094640281438256903933178772379043724029429241390065489797164094023792874724667655737166427657151147965796640090262929939989643421209341955925114438192055242799181368698926912390848780537308821055953310620497797942703035724834041454233486018006029070096843968408583422060016632452788464602825893738300904869909515460143428201020580331374822823357866459272283702396669407523136642991009053686699473263452100521046342259970909145410701657929240595399594096025100262223239159658627319256220398029243193879319763130606712938185586268816592827861188546634482710163355918008093664316278953995570079454058582126455686781217008923662534776014743866972629834753189450598419552520119439678746087665184493974764024799044631576616735593961751440139727593678783165457289310392096968094037231507297065654207912283127584180273444581693665564796242784512924996513733143912950924948060128303601072128251603274053140270869215410269093583073156314495332584737152215994765893723132705950601091138258568240554289059587000637582686950702583188863878029710211263186097958951751010361209258205827747668585998685004288312616193728105701538847345098705360057717856535336719517272945780183424203804773331852271816469226237045021917901184709264981285028774375251097283992634572967295261055858310076777189814383283327244412232716561565306763732542807959893720627594429930059387556474982814909168258644464113423219903280990821841747884426781958193601625866728652430851868500288515133410589346620781604585644773784766272966487768973484546827316469203865097114790016138470378504761728658849993876774219124213012896184868925525423665033373277149700724899054075886149316571679221691048649530841225401658011237861307918871872984707228816504865147844744416592521037335029639671613906002241863268870961035149475878315498632993572000779068462512601486920047772064274623162539537578070738531584214717802015309195403793190190994473795555368572268079918260717144553519861809643311382941058260884465504333281888430900604586131896880779164608673841452799797746169930910845879085303357497100266345652476126382486242331039545254149526606383853061288590612672446398387053802522035691882491450602547854082076469427457048216840694525551363703700851744311019456319734435254474277585795652474698380441065114755294045235628502474551722599479809763233823161193012361380870883091729670906164564878906152075270380699767934119024686725273628710447878590767197230742688569441192605640068152049433773761024421566649355282227950694433158821684727802162071143306394486416705135941092998930016289182464881698078419807849265485193124096340232360399610297481523236685845972559643429504365335670490968128361539234759711306264773545209368888718102326938635914172077032764393968600771119680811659009228695009690655042388714485098198107318371798285832542672486182033605152383107235390963386767574612114596643283287711799676593614283308859432837525547167715626673222772912317700968904675029899579245338091102922900591237659968798232499861589523912845941208048440387698298520985378530552125093016188813857529816185364478992550341830150799060361481664956605797649274175681089843824470506221487826386886096750889815720022747673926392453454418953701570638317013399850403519093100958199155351107201144068599798850096931106464708535986833767470890594434016657261068006878881248940879088741236776102345091399229127114601192478066354175205273521035949118601093988627690030467817335022068304459286408167245902183930937407889759814333480313353832285160106405085319700543256112445425851626610282079519800064797376352725505601691215060118998586790806921438814424426490117298341088199499874363766398354031010336892102722237331417591024656481774022185352355794650794897424099329930582660934720928272833368036886175036461298611419520066022312748255754557140884445086290587784487556766555344131794971944355404031284732788660629790279668091039954127054345424389479259503425572687127426135173100985406068488595710208797220646317701286183669698119246999270113466178817567496889107194042936451655806377312859235107222129517611104969218563173955809648295143945386984716191612636040432547713169513749489904885462682797131439131295197498009586188590049136568767096701772635344930621927601284904308584673831494232561869659150656342789225377516481012784160217588320291167912771719837756368492322220694816676429957055975761641569112204594904730470557309670528546382971102512079919086834172541859941510966062524094190394547608818244351745562256532034686977362825832304056618026917993011031617025971726684462766347544460326623417215571992438273196313779607910170608876117720356588606637806013709622760680727423503278358869184460439178756893284250613494193506164123790013529113030045655835171478818223500696655468450935724236782982134189259601463695770340204837605550360071967356824727977001297666850810254629573105942911698601681787424319898450073139925660887430792588316115549765522195888362870494144332847790346197225512494341005863733210615539036145497486145668954229183481157508206196891666635469875311691210582649524839012221036220268992990192858615893326591111599952653353159769341013874412375415576154997562516652190295074730511866380988765616675080185030173499013052499095775715053685527049891890187985754387917456160794822217581655345850087174944159591950638692287200194299600133913898677797549514094213958517543310267177634923084936568532339512006679513610547233648613238026555096961980353447625458034283802519370570092004302372022977116728770238645803904364269395287697720925359066199085221769548903990592853572921553241871501207676506990966440676887476880617054779479574629797833824725042579222823484396037750313541468515981788166298710505614966078110602219867934866057386986554149109159051319411014549060491021820121443429332152264890063916627786529581979154191767081693470323100552597824048052102150965916990732743860028426903412722173920771284237389316093676100391930488388750983471934155117544465769182310133289783377565942610020581296501310085291674964369260866356875030157547211185499545158138218649132268040227365620346987341128828015230616360462282918685151981757783272117031564425150514550911345110331268832649060328252379958684923675723963768698280020447152104333484942972135399852442894959357762136286525630046125272447233094779657333540498757724614427962827492948483028310274816580778509886627238327589584650581654446002193877629774537462843645410213700045015029594355674200390819429997095314944959218498311867715754259292159506994621613127856908551695915389609186426191333353762367860757854714989784895730855072110112526937777211677959672953757974871054576622615612186053366373785559942322606887749654028374766480101660462605929665485081285543626365100063344999167232912552910228120520010026502050584665940095938728928977313341843510067727862532056134187392264069576012394346470020046929251488308888665532227934013414522511100601600154863910212377154293454695977952390992437958951597348121047383797490417023612102751159404225450846956134533097419568521785030885085879509509572514030444314495034400400744176366402301251827474402874478255670063350055013642531265885432815772253793908431427890086896555982438385281682913905809304682743692520021372816726708517932498502083845737243601125638604732529315055021372064162848064796571194182119791844508428929473139843558219965216338139508506309303299438492606143727715360426779564828527421652953939488038300174041252053427294383608932337865262281028569867551056409987840875972835833531365264257846733710442581477901175259435795599619674131570006918089048007652736043969592072329978336800511133772330329037072879663337661013933011631699253617937128248442038898261506849931598967209350814327784862888565675961326328125312252130583049216881806938037368074052149962767332359862318809253257703895161270503044991105598783204979149098011255516707626914474244044840958429671624302901053677601318995092450653324014661500321528518457218438741695461992556433377012859939139098799286070902067724733124994725967743080958327593394690174069943811626571129613764254641337308216653675819345772821347234208391489663234099264978265338463675254327180723039358605133048868680423521044910384248086941069484396386386215114576044696614331529320819920164303405290386270803479009811285200588801407609179607675465073784531450806796652441362610062297019827913912768981917554750842762343736794766284585498462342346007095144657899124605879303570622657431067683851951448147669129972113933156099893325765634279509437452496432188385147596110540812766948514189422451785246126801276641463905157931112778279301226797873380059785835845340310113682734001097809364025562183857304800075654775925589311979497544586514832936466614718520021593054325584671186067082673157922357723014263524320499673172024713247914510021399383753556954565086433160902962650485140567127286495600445814961443875136487493475610304727109214596579479167780610773661302138761182345929778507158068286735530618895852308619326112174633470045319081240905381570990975371240917410529595252050366359220807159129871311076243150762087010089218898900593126693934016154979164812242310281372220819055096902647247213091834871404327227559555706480804938950580138275363940589356474373776033763502912260064550652836601720813694079086124170991872337985611278601929881073249232927003134927505986148894825734797071668609753223234487658664421338481696097269177703119289175212787001958336851886350220197812072404196114856330006838640616810747573406249555686766896983716972115316643179741259650765797740582519361406081937853115523924262390003622559688247830915900285826047404544987158985199149233796076145836800804324119226653441453274961981050194230258116586729997385712390718318013945485728773608857347583586945694091230204683704624039992431146066272687771205060835123260632870593366728339650133798863419380001792976793182760539080369089362038056833385007492712253036307532305224750390661729102213303580175367679633689584473365411691316834836928402238480511896181026567165780069216574551553051569123076388647249188147652623521625643932020006255625225372158259685749109472907393194923276818593056313232334191952878956702958947617526556923612040902311994581259448398324838592320042422988154482274096262325541841509252907063703553045434438308193050277451410960938682228061834232704145654235134389364099113768558318591233289906600054954527873958162959438378166379097382376593074537329066934079440940422700493849254318090350569947254013580627352071936876763248936610872615795778336098934886461872799606782950906443480456764552717017801319153914993949282496866329434893530367219094283621400279714268389473041797589251651510515771751602211804392474191411332039108081774937506772626200419395874660140944910582734782800360360568415258104354177825147399148425555364182182250606996396404782767121740351735383240110969702697524596567714380702805123864704797962984876278414977596493007688978374708078044080403833510674576710172500444332819532508386453654386300648603272796883352923208678150459173651868479648413623937416681792885601124080859375514567485900636174519506024558875317091702917370147312088710468889004774223678265779273291059936701590740553950164447304961064413711696889389991715503940941559316700166104607782250657057433088573388703018634489842106374073606829205648991694437677516642609219469379199668738441309434744144522381858655701388117602416716355631623310192933611984366096694952754949401602661718956627011770232977623619081767853311829384385685386263345138690168007732772265412910266381074908679452957657556954360023470813997547593179833274762986130481430281943597372923333122256069632439338502348714845847029116784157519290387925546484778069695798017122945055029241261032586216108740604960544732690380667103021327437603526233405737304129091436536542407291390600757641018973876240844797033442128125064197163620951532688220710319716972991418018823639927424483308803235871477408278908005441047285498285171489719922763167666404467783461010445118284156423055361999906897523240487505744765348824121556852874326409361720624404401477441211012839247957292226958110293844680499980210497294962238743478847462459908067161600287432796731532756050846628456870983848059348123830554948608290957826843213424151387754841984186962113912816986529326240032579652696024109439266327083037622282058674658242047403579340849876461613334403772485278098485878250289967630480043423009500981879153953083063068523991985359875852244786806199835621747122311582253168768554332499431585063635350703098713283343361092625726025471365389806278028484123615269601504101297372567650176148868562099441797378493874785465950322217825070132838150354598567314996636476808784706485624964374045406546931288950085643360754698289432705700743126471239516436527818684715860778063750084155739965785272268843574367064348887454429569045877473284264844402714700125425087093463462440126275048361584502150531837513754447557462793180784984171257430800148497817532204742250887206911298047532316444236727639155222549647426945642713159626849411945717144821357582608198911963471281846832366345107527819028523978904927846888082793046833529556366909081372618195621363124970579617299940463892988876476424790646083304158706127574103081655941868616276769148761737715355009514286910031575102513345064149661164764236892191841130287001846205605855323173886173473302225946410297450595980927187219752425723038694867076779405710890414489062125511433177222903121071968656746852036371903653300482434015946960249610362199907818184816784597933309173293783713374503714910600102605436515397305195191247884555280298010956727308216078547171212905973719770411381702678851058876962731177391236177747460935993583446191137355346922381569384715767752966744673814313560174259956098868565845761944537146180609068958519207744471713074324847426897224223006834219820570811206904637106447894377550250013869841987917390083099692672894479173746585387923757147893354737086368187461293620722219058054655074520492425245267998773211976766621468313467165892877796152306762536505067895599416887166158251493852328290353193736548077531843572349696737027424174969894362560652367898454177490267770651155152454610473392229087291307673176018898649567022629705415012660605689766948963482042049936101882300580246846156162543859725815105667851346387040579492223579905332344117782949604216746833038328843465727550391164692419654427551105342407253121300264341107247078792602946468104913534249237846334692845041689350359933130382959152170085343061581338080162296076280818645777889842452368764765165754647810055910129087376609779923379362297281280790097629871458630029527513560960407527368048229850815955568340084373417938094067482500919854251382589497007734675162765114579089564831572269923615251855200794999994971508503253082604073516072942537106390139875135762546629188654395796545439992063223440419039097677487981953375708774353436789509131811972195105083497035944871461413286133628662182031720279802359620481649743454708638049880431629503403177570733620002196719532631796151530591149689663491687799785699589648310174098154960392736254606502608317402745007271752770619541101119762299891598736454869742920286668740506433207234376299440709936443431739794978505520657276070541283485146562652057894058379634869262666910865739756629761500777866576326544911834644156010450631021501910171984183249823145880852211634649814008575053369288679524404908740133255162761002977294188376850784482046816891049116193068227592488534679780324947257797948706621730862741725670181227591611732889487076363637315196765714905523662117416383865791079421089758246616166144299622560961642479276834493141951493415141851869980173682123417766984920319136935135232225228518552631808007054050042640616267688854584850537641238231541435250119005559966526939654065877531088895820335443843776130363265607000104344683202966622313835486671572837988609770661050592090985666208809495249176827085093177412677537320599806797518184790869876371774996109100868384949951686503795416930840067805678556123540640665213695529724863577962234054659416628439992489450513665769697805907028633406263971353380450515569754424790273020844504254901191561280897922022710959652287882661750082781681541920915357361786369467132205244219953897243744941068109443380990697482034474244688179406151973732902487749606014953634813637660603636454022061320297552631407796923209148311842307350340885855043759644396211245265490731458423129183526272600476623389778936610891474189320620926754453381325742925427771493739242330069571136404833825864402840175076593820180834430056445811582385947316697759932235138021935965623546707587829456592837064578232440430758745356362586971426544743251076434587538658443011055891321462754287081629319104974384145454855701073868905605277945035400746983772208443543261356630432621004724032969786587358848104987004780773576776101308704330613293132257045806810546323273314100837982472888971409533317296354656329775000904765640021719092635979594631496563075337273904581042980065496409202832768079849933712156096441802508525106867979902239635659540670850961650657032797189221628705233520157245328440802962370952581190207680939799773585370507041281922289429402024308203373654973736176457155399178079058081915852689605212549329977574514980249742690064287859582925672031071602000628141812348324905747803494492901926326202783136155797564686995549528162188834312635476377629195781594485892495041824547268036436115104472989320026028469026854265758809649358596535030945043952511953020955475839539198857332284594765022687125167086503481123440815248449641588514361788422107161054705638266305858239941572657759212307244109040604359416172788184355408426455681145067655673130899590375896736712564450593010063540605426031143000607445802298843035156075860853903347072099940904139773399870599480663179966241989141632888263063219023743186169448868781014862711761865578241605863225960497966998865825735206944625249771442417312804311651099493203965415143740371634082329620012004929117759339402536714761316124965063211794227982050205006813941267521044850037965443055885350511548422557909998691230683847215070004427892327052622202563029417383819330223919932617366736031210788801695777552155599031636380749482953294172009026144335736539517198302522894793089790951674388638311768343707524159833492868650579780969858214116293615351323166974216986981982650063923846669299497014742511520726738355610261520776198362778705606683412374440369640922195938895020967126942225518360475774665079857851185610245248921693418160845876967340636486364711128108462032291575390816808667383300967929696788650671772023105730488658144288150794132096332030213401583213309104784285812970477764813936843134064628315824134324011332573094135952813202193214085005292108787840795395265630136048475467701410370061471423771463766717763029159290410817829572766288063739416150011310041225001480645121437812560968240798880903610093148455293742677990929119617401999885569527659010127622047041690691407409471733354278375568745560982226908820706150153606149694299246583203787276330785506073637329211918456978717469250240782595295669756093720283534068153132510488668618515787125496096628408882630419734359964084894833825299775752467645504340801655871752114557295725399321864228077184462808715233116302737370707738719048372505825532152580787663384818043420481138751030267206722240073017661369362010701477344295734168397764789513006452624215523857908503673348531297201341872035520616296808606147352442197649465216213507797243894615275652220700061400702644752419701506713563918591230473042669240389196272024919903977535213952167888015085009033365270778930399755211353460919566268961862747126806382556885429142682694762620408575100811913022492449520383705641840734249881050714226424765141357457440743547132874246897678208510910251095383062545695744776230450739520068012286209694491728285024238740522813406369434517316872216249191066367111194857945007497981571642747910266809705803214055385241088315025723850546614384472433682733789035429865803558576997379522467444947434395643308862760056495525082871285046230014211256313484314182392397905478671585761420779377502534416446882159196120539178355660597681920522228002462544291099603005340754391084329323771416358070875829643932437075470126585999438335510356276311041337173985964197988322947830664437973817693476441254015133625844661138542554046015219136322022511184810730537890258981231867255239774614024523720566203744099196309736240690128509386278445492022767230543161021495498835699975416764919072010517523010114340475395680859087114897652918233061718867767507330858603026170786221563607846495891817140709733011272232402789980116236323753532308505916730060414089484336493472827271892908841052396946732580516948353307364847308132840787193406797895242139342734212757904937730445641268062277296076640559519239578837906444649616615156726615131174708452312105444195482428241822546408434154926746641076203015574466430507823963827215393659363794294468216701014566331131232165663775227763620578091832772150220752151334602142907223475033061496347237440505003500052185013914649589317116813575192143700370455500235947469692513537826058485456338259754225160664785242967398323586948663424625754202514322464733519358637383473295121288829044758165737410268023959536869944231435658889133693934772426812371145496612716787990762576840599953667883849540394049374700580918373546105592149097962704429165760476123437194868984871493959678757051526351103742334626827147017315252099639023119316197866198482299804593762110116999534707640681691537901669892553355766294722223831159641233150803472210202369086523029067928449544626201134149077562205176073708250568833597284114475491654636816989658361673430317333580560446835965897520367957569369853695821623316281077704848340715818384214119125749759071969784028599334107860467966802994683555657081512155422533630477664640329203989319757076887903798084101473198177660117253305382218616276107217118071258925516696158288702434192595298674222789667939485369032395028578209169425915376592713534817121553843206544364876429516314801351821516874631071664016642066957429345960758407978091075572769540566278069862883731917598067781072378877663042130430826730870747168877645801788849608517424153925251636909764063596678099956653175677603875922991804476658527711316113210745609493479397106137716079116224874287164388067740949971874278444611829110098496638847320577457629406286506351055922718240748118441664918172281927535232511483500027826451137498768102739671373957978282698343090491818376574762870181068452396999650164100844672991978276991994365875142637814785361139563775678281416919205437926070364693421645707153184156675562804212481722503808597735543724831352898612041717840547980665526041934218162990836565925673943360517714459206032024011345756623389760812140276720506067928694543643394394343232635634482796105981096010144346882407628924867865806836908976938319381972123105989136412519298739733588385890833184504053730209986838385280894999114011316253458903862717805814447380682465574308573361455559051739792097389434234064651196763184876391170361815868820370347963382897822357074731043425600553143345721379325137623622834532037294369095309052825537104779951916774020754069050857569418574923834926742221540193494507741164329916784251869142010214653339789545597240453006668618558399709302699353046056276153230351696172732517863218110814477848735930734579204074243994820419806833247354285524972110037672388217074108515004836133437599158141605469217256140558878358304745544552538294794695646776732240345166308027572557074109526666195289472988347035278295187396503437915978543218127709026264029775861787888329116027713366434910282065758719461745947981338834060880511215998651108101429692570773508909150945164765020388280315618406147856907076610643830359661570430020029131889903072224861566976102431051396702711937581679019818137554213195952357946187656836028374385386785135740015205607029572276012803345324643488851305395634315614048811811904571584221100725808102024305240611678659219784539523293243782546050102800012266871077322184965807702677030540966858598501585551871583487560818905468292767436202808499749805182935262152997380775888196345797725420399749625654799720180474384671312008293552220840469412229308938312698580137478676556932808229806786805613404474272092245809364538806280994160750282020474114160567763277625038208926153010845653286274377231371729900507775559625017522013340213809688041881561826718976659809678577597215564870167410848946507157993571657539058309702743856915480351877419965620964822746594283551216729325182401602617531887538110634817665310234460003336963068860648355686299805149189414721151018089486140425869388172366012586637305505533180493520907176111295270625077547380454292711451946029633501415163256014427768717196890240945346563925542719656557932580235053397741865155778836901491948213228801623060259645493661583678662574428067300070551157620631154967252137898239806258729741024012877703107259626561750866775634234486512945571525659830544900874966355069978717034005704504815977712337248505724275999338827480401855571386544412401683000445767412468686520343671525934979927175740675325877455040086789938334875286135258974359654843507545689173761096510870998805688035881007955395527049344659177325937541253605690739421516073961757625106682664872649814701764416472684696778323264600546039473050103875271496682562605345876103870528670215985029900882253510574072738941338161992783211801799433689336044398265510078578042592194571978825211409310285902172950480783534532836794086958538316000716866471936673678589919451905458745617089065427222524229059177203176571601610385531173834938647384195526480332956429529740215341443774860718374994739447441505929096326670183273978547257272909055430663735369992383873529118554912296190244816672402827657470849147815093584442855732296306919861709772550074059642606894467516618818621323663938553075726710808488927372641187415846603258762893725628749767667440942447581882538366135997878368643492407886697780945147946548461762302154404077074906029057552157432592311615746065659971730459411477212807316728813309858063689035504603275021097373780173857113237540449508560875285836506633461155090999694003985003855374719095777170940512081671500371488630445705212100631532099371201029941830193630899789891009025130615075163010046334400550720289838833030746084744564491671362518697499042751007321849100385442965113593713826428882387534032451489320124818117856791683240778293308022441859073494934585468581767946276803422509716607745474113181201272732405200869571066226754635735668544456872531927532611935252808142469681501274458332877007263924095541688473333213433033599142587392356125473635802937051717389204879761308412497281034266194335804583822468227661824947316051857811180958585877732564482175294355650338292953326843328778056835914135505664375695997992950428564217955122369982891985934588117113301582860739357320695162234135371751809119175031623839588021931810594561864342057200191902550422178548958473519306741918239295442006725495958998913337423169765638240931894406511332098393414270693265582319596907343725569931293367710729515404867117697506751892420949991913294557614156319210231371168237549860311367884165270790607225053512763597382624507037194845904540408170077615752692899295981654259422810868060160109807083927121538729988535199792175260989167139817842528043679457956736653421458681826626933355360544710385778810796431617885834163279620625303905709833272412119024606174031989849476289114199451779633397230344425295086561700026596931556900703253838266994825695096863936852169365522185594440872790902387496939361294470815327574055023972275988197705673921599275475037746402182570361100959510743259032082434812866874269027959738145761965475884692545341744634066725406579330898828071733996143053294677875568158958687989068346551473139067962886130683724011089217982638389083787914637298597702947293435709887515560261449030308414151309203224144221924968136003406719198359837576074578810647405915800018649577037020772677227746823633922731783547166913930654993877481975753749255850149696119499564196681566213919908194517217724001742647226200305247183966223267726389283470491233213545231450882435383437877706510519252423414711530966059641685736572083003893521291412984148356704679676361818668262339169586685291053664280755225415944612726767870557970998829040432380882386835584530499164356423538557975195555676606232526164517651907829262920269758363006335038213112981293165830284436920446004799072371010501771835334026717851258921518038704694522924813453398972572383945626979792488910630857405263594036464349443514892321373003455092358433744414637986212163301068285214011915658154517200422605043343602549562340971986441389395306291265259155940326271307266186653291545674510952682491112677869015054024705063018600584953303766992230883421951876488323045062102084369743955829086306989172593585689337293475045645530063935102933661282452093292486336216424127040909591529045492268758045859465694299794514605085258453638802492371191644235670682733222908952602798320122609885954967801954978613472204062361940306437984945874911824201127743725843239290669503611684502838776610888593951184881413999365728332100837422265839439832564717291826445235983829057464209259301201637979596910136642667222831358922072150265021631999959036298752822122812318571819495899853053459929458313153309673538543620519338818139348705414384582849710839152624957400068476885953161646904952979435153695334199412515537661701504457323211878072636952175958411635210103731086003624402531745507106087563828873208464070985018808237883213513583348683404092421002293765783339852051331630203444539845358082624978492627077451279691310368724728006526260030057031063495066133689383823644229388275657274482152534696988794595105806162851068738582147251879391647169509987988576409395432932670988388072378310911028264688500735416407006412791054346223191476350061737171569909450780357553595007930554090669027994671860115350881492652127806059463798757931944036045253692536687284397471186310489609823393317518917477152176274321007983701874518019232822129139892528101141359855273052417496602426536188994825680381673221011852010915950050183235883070745491696304619410264160038153433199826984871393551241602670724411893297218494089633316267682293842498774076530355486383563965873730541695410434564304620546079197724183681459641032233373589733734261689477340685141453050942730803069672930211053094410029386971384845292121268417407767250269909280530519045767374489121689432032614586373868217730061380715709954030012620558929647567814519876035117676958146706919692796205415566248498406629348358312467060994500354522937819717303561012936242115095118741554562016784964731102631129466080212437754438582958005202867691081303082194284985871131772247312215606156552533393330343260898378867331554512631028759710491242318751953879181564716883767839353635412678224246232693406494157803930660324562433833423124019050869366830929410843547082785648521439829928811341571370979562520846304484659152844081301917998332226530300849623238780698644723822776203760095365025632658725604496639393846110433920596885850451221072844376709202936277992554537642073229510823739420391191005139192917175995804247852811439385851903235807459727784268803448531425408344118286455553094138193499891881422656197533405728629646059483577766064691255690184213408797900326554770782577724158754895356857450275245693848493462541924433676739231914222912685345753055553199841527935756132353161022096393874474994634184548703844406741524191855291701228611403298091107798037039024025241176174097261309115447613277734665588302734161178566787342841545484392849168954970530682575010560782437824549337078071693777483710793868661886707954304040221071627412078187646974758336338051519286520975326965369860410371151268696670284294621520704927202345630966385926729891873086591057867409652963479622804171030380015890759728615906239152386705651310158739319991499030380079894628651474458738314320290489925581993118522753070862053120007020535020779553169833319604761552325209942866971081681232448772536384658643330385533371829477820567615948242550522037019801454977770849529703819471784970676982307441433292114876152062036073795084685857198930536805064969854653184754002539956182830291690324102711289947430928883987104692909470389933997206914558846297642504991342338681628927289576814178460449497318866448557678138296898062617459572779694678671151416699431919477757223237747865056594257997856118792975509750230796303120499170285499179609032773586575156969275056147020474975238934807894262277683476723894451549603846330821479854573620836827565596542423806588306354900246774579459059563265943849462939553157172410685101115422328180113517101250301164022640026947183252991022622527502623624996742906725021299045952519561825460899272020288687248739735566715805467641188994019428527877071044832429372552614848140205208067184064438878651150770688335226244230051449543966958446876899814814785896887121060007640867192951858099481288482467266519882409397349820303386366328693068827306702262314288483844721432946144151085831593840608263557738999053014700670924412810584046736967184050073169849534548589428529806871968392765558212424142276474914810554639560256297384371927128123501013248820760800192210855175264182761432413309287555529841908800361497986540510237341962356814378369952464599389151107078623676495846403429664447603157093667184130998631639618647793371825519561859571197853459111467226659206203313369372195392994312528232455238769369129653822490320925919441219277588877592045125397285043484383104272690978549806876163684232116225130307215612087736416024865056216029215946188942261724390908254585187639272775576890845165072628332674323081604071829447361278343939130518013517706836912564333203738016036618108870416536539558212291982553985065942600604076754212300444513827315097774459120921140146859835719522217279190179448767934521991092654314495071248638383674837195879860762122866967900054607092204765539718413563902413305837330881081717326709094184046163246076823406401560362922072842120183914762647572814698543388420505258714858673847604434387367302697175735034851817866927938710913396450358128799126689622323885131196547096559407813989261410809663132676618234672222668919712230183852036409644628771228344625917502409644746979086968194772530883912412753827214743319204708284679567299274933750500421710297818329726648119997424256282719142907587181328863322500988096702688333017072979689770419005838253982311693257880507582013078070673692050855547762464354899221228299445276202068584676462905673817212118225539825181868121803544170733156799681860715158453586975134265663885056929010909360669156074661760504274722241210812000913265311664448116839057723425383279217798510168966556939414425760727178620727232192339328925824119688996363647608424906465851732733973471120526003228142518000452580455344648199435975940021717499384698050702633551735500815326646934296438525692690048099669829605503936774774866384704642111571042513574400156169412095963329906430206754072329075249029377511816693055830689808125013261540414233837680278100892238783115159422861118544290584472365883626072879131560150338470733245587542468943929394255975068136296228568625429684289927154642334480116879360742343940238628345506211591297218205743296584752096516809806203417633825830645997744026967174709987292242533310638153434858217323661066220764083812095640339648015976243244932283801807947081692016657071741393341796993280686580266173626876824056707059570976967241748732336079531986153843332495176375154446125969918254150027945819907409801490060103345032956184749769006508474136046214457631051755878454015061855624432758853139567571446139139581007042080765614413713592411073687683658663163706565883304317283031698544835745893973234674189340796961100285568520713810327289680062219715984720994986956607114347997363927725401824471846976900195090565104719470457131787259436347653243593800237152083400371091610934845047959295239365053192559248423576202589992571937943501385777588678080490944743421727895968840726396640430831707810241027213589474601224877228318404913794721469121923946463121343597599979463507558356644490387694686182577225919884170385772644519775863294858303299245759033239504492274548973372292191506509111072699433481939767935974671135631035497744839806863421420327734383095812316353871440261647241964108181238751201892440426769334024503244779408184640502712608207400429192467350175073444122557649290817076454037381436181048920337129961497305096660425499982270647068232665419526263698035719707884464219916204027172973737854395747605607316066039911837232317559695688865870720660530093616104644521464120776647872450357700157287016135335784700553875841179229871439123776973185866860316861229791180815887812864038899267525710185940262838077384983489175542114299614120262786348696126441861544021123725706384352541136998401321303902614284146533783496831720903847267642476701400700416670268467785238436493213222691762552970627405531891906904431439024458202823629725045789094117409225465020487182888565127453969093147564377448709137957596490212340431700382154806088904605457050849510487171473960528993960207686181374351139308962081034260824850215622711515093108634595208902613851490765021988716557219275092907465126938627004438807141089913065913777537436261096680900532614565543057823424781268770252243716202581427962343774649558428829771618344656189660626995005513840945403959206285083872848229795456109724518397445860905296095731187024675699124553019687007534165303982390260649998423752221763517972123268328413853786261850737715448496218070291610096415189963836388179131689348638582377765737653971140389754933100358219120031145978719726837889507565278348402352359853409493070036916276527761937141866237093019689271557966667439351066100809579077875555951297929263105238551545482751700384140542870288672028578000028887450101772226064830111828704932019988339316921242185639108588383055936142705920400407503501279314290309855081835395807033602068163407812773836297405214611256192546040089794806573125091282350465752769325455377696762193418577117498225117932179392605624553077999973076487007836834571811371465127388651061910146112952902006597669908602951300837164613922792746303103294700516408145055176515977611209314885469585478880471819795893159268821987918652611301088591408597379528986588851410729251481672196971481654020043779969826500586333261620321048907227594861210527992447149498548370910551849640448930526986781777289204572522408474533096033848042121746565689604818270182450026274946369989061466020134500644652719348669780750166756693964917381413934361325275371923723278245655254583751471881596936996966273792314630415583722596259213402442347185007029087813476046642670307457740014071664254304648761476743944768493856537835893586108827897478567928807102694545463276799775071380080952916677895939962362750790921367923819394345507066858284608393982746858314217059939658378479253872422652958238609077381921888618695140202537755832527774616913485980266497128984210897098680107272543873502858638549124900426991287240683389227435710029699364839754034417137687070950747922816842213282328147474699891950207124935653465713829677669542547673002518064812306505734738236582597442198245340937070657867233619561415931129821806707260585541753377819039358854570270653079503296747721968503178325509931824122606842657209426054825790048730621965215782633002048963061193006007691656629197972895838170064781371450608575323065284725601449794261177967279070945712643550571089252379772490973812496573916169125563027659784250828614454285757663880279382593558237329136708567322988302947099177473560916114340612794549866111848871750775086815237078426808618900854928228939758642668186368165171787848366361009188357982405485127414430993626302325815350649786605959246658447503839220777551917051504121834728947025344090112474092618455606511889333095483501472705243545952214643013753956399958367985061809059489052996837067871170222159498953915664721472963461349839612238645348457250701575537171331707394724186841307691604143397946331083637176104525197794148763535383761151113870424886410747875372903230188835098397718080924492296456326882690503952283564586243318469904746278830507751715338461614701187539334783412649830489431988816379056625329685302772965356557802292185420473384566541465499480845917474155368163694631441062286294089642853363741653673344433267270687510999606285171949528961777629990948802085957276208644109125783949921211157093718355936447889634545559375181274756839294391168863343022660482195399507246962282393218271818444586262234141851968529969532831280771707301736863938139597108182824299753759886322144905717218709844378122228602601678890893422754866705251274119229371283153188985339527484507544591657142476793225678033921355286972220367489512294145516973287603327943858384253144933779204749916324547926183060287709551350767276103213981952503015395224613258547459708783913471390978317885476906731088343605056795355268818783878916839344604692295177597553062135766146136016088756476898160195396857665199830979169937884108764583101652471508648008808118225782973684004939966247435849505390497303647297316689993110763142875202305338347127237119019879333859503010811364841573990763788697046528050179718163078143292865524284347359299667760381706134725997501634063531441500460490402176700047409869581778866111901973405843566640740055709776994765112495569687790521236990933078777762134054397498893587981534992009827589122554915918587076077697872213710884401544726975264125576788484144114559183714196570859269300372563846041138248409061294184881219687969162777503688048219388527943031805200938736276538021688711202257047600330471045301509602103975136373138146926382949064421827200622836655166776114487438697609805247059742248053532318115242466065172147872605215645344399110986796966852573725220795404563120707188474808826106287695155505669925018686761471725239445913218491734702989594898507620689983825425229146184811585561044145667855169472032263331240081767901775838414825947284689375004501744342032938427874050506665161126908603498832384983361628818338065699535242115567009634727712899206062935319729565719565784507656333919845261999423088244268018973988646228673043992391194575967790709573845276591710980446610644326968950809022107522405070671472447553862674978858396569740883444249474506291245576864453820342411358864131231353312655814087093487498473637924666232205776271263468325642592580729308142661315033166479452632830439854127629147293286253995702079250679433869182123311257640508586523237939595948795724950894862272729248064713238307064318365189179495905150116467530913005249581597331229530334559783323534523436704961409160437584872025943060527512352492253951908440341845496044240527926168827363418886203177737118397650557558483241492140218603292620531158057084315369323221384359882528100375354937860200043405354479019385718601753582157028159166101163575013802426431296722895704515459893079404625703941150430064091076617119002691657541259034030476145711682270769464083237227545659865355056228843768593826762718719027067832888356385893663795831867977156878093836021850613448089489090203789328598308808535209014391717894008804588303367136000990503587356534370299601263147379555366294822412701632475286072498845364769937548527645282913614552169360173918207465589242026281153487052333290266400397080790020933057980819356422021935119664539428086128680232457753379445757375297126591700902032028927496268953430928983755391186261855128759125951199337572074710226868966666317590434095789068622515474732975270725898717018455378798542415382066387214285902788694040436714221551153390497447865265740942164151653923584046981380525106310288643778502648687351763147059344853152378224812799388644977991165015140522316520630223615026168962321150341274433653650458839403139339195521927599878499084704482317127811958183026814029700098774922278993551687607935398843452918992352738720763969176622294449827417964395157168351882801999416843848702873556980133880416553301694126719780798855371081288383031935923944124824635480845023697505655456279314888827106071487772405014908190480129257692521093185260626197267574976652240169853467961571849482367861912771940584323963180669600974078382951960775306390795713825387511433895380354893816753115171191569035820440188626071938831427464584191751651147489323621363641852230970100902903657536487833276319036013609078872031663235562580676366999508627626785296879554031522449400465461398915338394853924295929847186402550907983548574949820539168041826956164419112224244500620917914433043532957779202825719650746939442272194843521357239273218694519550571871496898051674214581467191258843881290542582457695853912210715313795019739907872463540564645708424089743758091255407109159511278815307127400524785694604031261299845953595949570587419475664165559120852525883329069419357915085476020812343023085361548348508931710511450864074690418766910954834724050227689870445753119561114068829751430842209796323948096974935484996515645213443609362365331751502031793872397961625254272430150666955167184095895972793169385922620934259211330106176513396965269324226906490936790259570934416910351545604719599911080981513644529875980370125894941624554924244193366085594481111871885314185023808928320938816277270330680825467438166149700791596519564100033555944075283011276873386350070927440139348677334915168645369796942234059056042683044853948205723027976839477059500589042738426484275339238569618007244339144868483900887869245196498816510015463438774795264028561471667702216340152944898880162376221003721417799705867780913144989407425707362934052586927868620111555868909451068897212414669038380344620259977352535181168151250451931376041236410932115597158688258887943218142528236644414701220995566212131782556278474311689124620633057321486871564961495774799386730377131700631326322913699274823274623131698198645843224872977114223847021307648945761032123332449921695662183433386589801030428340834703412289467821429922298981628540629669919134468645847740816882219346940677299496078873122793860473703706513940937795934219119550905941175801141149382147823120385130979287729546996445738749329054838598392463566758441175662238666570892715223073746016498512535072345476332041366592062909183970295443034335690524907373902811571906939561886945707127901146063266143394749664825336579780846435890268216651299754689647267407207238611504694205424589004605943745620714572504041068197062745874886870950483234979322848480258717291891437851772131643814651146531462273877835394641203423086902045649772390328704222572961787599664422847776963870077129436876434149678202353781674247342470359079041766777118225087210482496393894215654910002317881859109681245013017126910618084804959697112948776172523788360720232476083721394086470974074216029549446809860469049458195557487508290334524815176600410139611013913870157257866423779443705498777622572269521869724429408594780432341516553803892496954530853836883731496121464076565349677370253063091905632178835857358615498068590140595606508377443619737661180042570959829875289968082249800778461391496129752835239177245412063383520739751797537321828884235325095635148962532030781786442749982023262258306127331606719648104176961933385614742931982359704382253979164704442127220280166249955290712246287139333561991372514701200907648629159074764458657386819409143009312511504708148753735681821999890794395637799329342821952017035173436373326105093434849130138961586459316930719539514966816281800017498670272415950783960117752246839046906011662729817499870547386345822600415807653799746803703606078467664552265528807999321750658463288777610808093931203499074480240665136470602505122348579346271397852876943866475937375052303730143569754435332519283297530932643454224952318925398513770428703317724401513371577964056311367517688573992572919330395822067027653756521287997624022447047796666497805763994941707820072155539860886922560991254122528440198644232906306403628609648603757319178845888996862308171328068331009537042024598030857634467186253774642818766182086767159709236826755111186567055647194555648329854226465164074491269784310051675044848759776035666368348688297405436714616913672517471135770027012734341255779338937224240412315383418359964864565777010709498178372503139651247842032716500508955759471721239630348700841329244974289695638101323309442619627400101961607470135360913019046849535166495290225259838504678485036443488971401912250056157398055055055244977548681745177303000515286293228501773070678092421964853911505965316685188657825314496627931518139244159841835336888367782167179547246031028224571180119222130838243588079863276004628132179092014541980015095453070058304580611815587493785161680873374311251449961445271320172662824986759711634860944135095101832544873077899954779974508778566545556006559858268844639230415987570715068446391194704733762486515927319609492450705850144042805923112963789824945907795814931607141265946431967289494348000393225392970558192681706890153114035433368702938134413220585558194554656274193360021792540262219698461881467446520444704949257627449817522100974362883965318768778141416580283078925298257199533009152732215757122354602158946582510969747593081853717710368352222539954302599528198457298812609103470444294488948145632965957040601018819896085234753906353334911371608918645134894778986895575035957579158218287199550781622692064457615390740067299670913729795178816635707680616340614078868172293645242626664426394745675357188580006442220497270097206243468894084126728078226084243148058234969406095627462423838006185240491054804792470764952628283244234269246244180187308889692703425255004430881770326648854477700390186707402365065114613914927917866863234763530255794208798360160196682644816501273825174168868461913765377740464438982997971883079799049509739915101175849013393116377368443703318248335207475584681984997927989326608096260094043520682841245182988364730624409155676726000094212129390010947257670569366619002423296566977147779144006234230281563356385199067593242649461947485296739004867681969106501233916755713919780997148518578197869896967464438599935104227227364822606660446789463513652993473254771112242635085863539592275207380687735989801857858809428464920195372874628476576588685569596907880171398703193649332013170073016809182468764200789696198913128825657090624200279434429350813587718754470364622184399355844520706046568377919352099432047566060489731946624640987142002914522843131617081569880322588084584832514378445217535081557285677849616630852066683472061654590891340773717745532426586698117498650957472191641020883385260411704454496437059808713789602060810115523291975076216499341784711752752145945243081045066611730346422705126511730551096859055591849282207826213259352030683520573998999296688199236169884095297836961005197591298333584803335668440499171752144410202194163520998341586222567725863906289002244057684498103199457529328025536880641473106625319669771278112851311957780126108863438243248894407809043869567301647449015861952601589733128545769631986425663571438965415888600616963959826280987404286617935785959129349457562674618186145588381232579148189043327244316997239140532910388705638242074795517801317987987835270456240520548486778900899311788489704717364622590759751349408287875316746854189941885265358653028619155791015743758154437206565356932052090805033871434229442922921739713840007821972281838348677091885797732495287893719436982277503731639821059021627821803001300241944176559178784700199058803926020272039753411027950307355033067276034328735275256506869347758708374076962607314165764368411132730044427554783676133290245370958504991011611242499537582411694155343349264338846214648189552210343955315753998913350505469131130677545609160301423322929039407018749153414831528254137198016425646306850764177935124781178720622778726355810355786618404921869945577756765009152922242057788077838202220769277307687476985705307335751713473610826135419652864100979764713992149355471880410244390829651383126924734231487564808821868723082899010960086380718991213292634503795656295046253278568517140062910646170562946415542883111309132184833529702279241856106329907775060546803919466190750301166448294380974198189888727795600980200992286822752905881967434531397962615535676343537139382960384514151372658675333603369932878626731845742630506259224704027470370226954495432378212164108295069188552302639875083788384325475285700090072206090666246822269517607015317309838668740207901836319545429049608280543542508513380177807271842530611271371907757485332968787391877025723468318277730700233178484617263248674738159890410731504832443404822713344355116226114358219007012435434424529204874969617660530491987425890175868668362365202466694985012875567700866178675869990460874777270358543624333650741895743957463818295895001194240475107242109162378357522563556851425093275956607747123071685358270331850311947504753123604195455532677652728382055293670871671837926951908775761917219813064527345490401883227861487100936363770246384349722476817157037060157070071112254152905115143799703053515534376453935449955186906706072184161773058974297721418554021132718216297254502820297131767071849417433283931550436564032482333263836674216620744187871553969336116901774070238656745558072670980391107379775837659996937685498191502777783665619426407669849100054118951143566796640175699835613629323676667726528246935920842182118530520356440784915149430023464492354989785763720485916240764649337463996314786379585619592629510281019036380143101010390145814705508505312494245352674997893300003331438071567965974981437018673953538689080922213191937873787220288791748978998493238630616629723064755382644150559259359486371355173499149973400800056925482530913456346906490118291907492651054614341387976101905681817120558514482041614463972765865352540474916848238496300767281039701918022627936336346856394749341085237003482931740184256634593930160344317925407714941567847386875900960052570865583412911400164560457317451260859125154104408974787179914268480721583059890038978090387883980585582459922782189929632146097387720378369388869979964122033264927893191765093521498981204947635935133548020441711966215982515860501681333490239236230414021466290393341091670955059347973362377603323809245821234382830112984761849213575995162349848636456124920852119894913453697059191568488826001669532785551467968111887456877149573830250101761508824472739631706445641859425020501640132809000967936309872931198919977066483465638269403414229588813389314416346002517176086282853357197975378477727150185317702351184483647770836582636177144694449250492626931337539898423447310101774812315276446621502860257442441816668203151381407299213134670350414926971412478174949531134969418124360765299676581403277220134734594120423994337465502629377496612201003326348316683355505034851118340576383456236122302250951755694168572926117350579015299432887279303768817167468198634004647806881581434146530854352877865149337636251244835076911631718456011481293531926367561887695946746289313920126366887153450671265545540809591779666514908350815871918074055070751742457642313669059125442085787127424076475077463459563169043480214403469054729909444788259799081557732484192287349509309331756728136894002959657200345700024816331656066294385533966512369009498914612760777333900669759260450441155031239775174660058888489656405967341317455226585930977331330212855762490214961372028655593247085820342290663728334808250404940684588099979866583471233318258755995187764157585208900089246163042202709167935808141214724610928609904207134341938194725403723964890692137532307540876307010061904561353748619759832668750908562644300211048403639162403132748239138215198809387486911455167445810262484650792330226656335546621801458376325451335799621592665998931552729308632778121579270086474557977129872944546140222281532349424743315819377158577552008336069850315110425614714048672793450468611527638377272482639480550120049171753658692042534128428954704853269637270056639495111749930620251289904962243684782160573091988894377962081542249539507236416938992390530376143146896126667999131826841294819349087346476499311579853257889679931353789515441316439628732686975929896263223418338775008598472215998378310944399163264673354575051044327281554939561242691185120831942641182264315464272856115452999812347945228614121253283233615449877553325134553489257252661371651263268698662209974070817134889588081986552638745738615854759421861258954218926711393743380146663910257906805132847255440523929737447298698981912288542818805339778719420488727920221901345111188563717512496023785179315980987883632002326952670223804260559537000243428924636652280109225828658336320330220010897543377538350948037011973542985360798936268575926660184757258765058039248095198614257829311733225574173651165148257383626970264473472068746546963616672973836520456356012751966138010799746892309367151372288561809855143791840399190195992830739036320544456198855631412597474644736769536388427446493239460194055925402632296900683207211885846956404202354186286197546027079162718821376095323140821857375342143532033641453738855163697936933014499805679617592689446003067035953149364938438392308232446446231818679134206859618331187847584657348296107408468953404690888528563506120309379848816000451723966329314975410526763030019146086140964275032315211727727736329559237495060288646620126770675359090179641899056141671451030093214674869193161818765388400168670015390059026726217586708142490067943535210132768658384103699059732675617057265400567869932406478956238625880165137158350237600875783568983437044208801881570336480624786740217104780594791734418956598673826783564340412517666617233712843392576485051893145333015449047239338211606303515972734238142844592263527258698895045356685306954591158244898035411582265212272907716627896926261197508495186079949623867951967133609275843613408150139962838096084430582546579473601709103087456926922625519904357426713593887546925237741964088093174937064159647782235846413762017238995395045143701012010201213084100035086382507629405693303093901766422970655383419089374522934548129698893965596574236721637506574004860221173631700823657577984114366712232937038185170526677257827980122297968386958002382759461270893857092209311274227372733325073142449772989569302536826626202081096802195044889043172973223021805275784866843930663623031655478628549514027422296014926432958804503821757770349873435791735549472942182959357038266520008183017310205512187647610851658442701129380897396478222367975686943112951377608757746399929234954286371131481041310170739164198780322407673234350520566035590379324111618869025470397567520016320493423086978320044540226908078007825651467639910397837213058589241400725494248994310890235420983066576049537345369148122257611650664406271222298051671098814609951095095711022117782314124358363772499441903645409759326604665466091681590482085996619527596700494740104871744862109562094805383090148417010677941315411384187749216092046385211457718277114446906008169787889856281483504850994582655901364099138656482239384158568507873826609541531375067682818926005021359671991202253096530406587268011773176379486267066124049701774181371856246563281602307288313702603873512515051898415844509629158227185547187763694732102027927319510640098948572190857734267768335742089472058221010402016969819311392947068626650855833865971759880813758748366862762678086357164792398730584431324219875453984079696669213850108140667454606203591659661336600894790046890344108686305377419391235271848931490605104185470893859201265917854448656245531273211327418311538362894544421309389690732602794429089499615764571376079457738153269213029476116737020746594805647389267443128651369934773569432034083810822390337136690503406733713972029378119960288208692934783292176786893707489051813598319399589554798161238389467223036123322103252563968055127745967982695935118996068769863729117226993975942560258248659358958742105616695188884029695548551667523721678299997719993199771368620240459651175119479977440040114134998507864892536771673941037974696687328514278986610283944943565235552963629565773136421499949760432791797814204275127800934321033027174511023040712056939328584714337111917319245651304081585334094866434430146520677370097807082306344049902119381934108764035660883997857596372776808154281029500912233353453904642533874973627659699650128045353523932002838621538836376549053661961299516326921399835065185202444637727234871327528963383295505645734836193246525913056118201821948736541017648831735035598218363619753282591434196311674782790023013242957866673175307003580611483330691562321537502320428712666185457100989715460316618830672312167419362113588058171351288777207569451843468397544461783982252661712051365292094543271625233577760258742627421269011491484660066771150118087070615855160078072259619011320795643979299400522138042250663421714561489917314792335848226832689419893017220027842411597901142015545089114492945282435004331438701858251342151848045232158756530927246582756014913791681067170501102845272728335990233865409244467332629758288256608840027171838446011996912808478270447450534727874788007143527261911788362567428731838408380609863150460705478538750326761223702530059925681735040166864225764927150890646413531000576102748938775114376350034226447057278134005740541496360163134742810133585076080329888513200144984954260612074646593346965846526759089766258700765917484779078297552463210102180684905340585281042261422900004126293241390597027995094564592428336105967032641281905800578470980273365861441802415971722380495096637665989596292863577794891166013529454177475414682324470598507228966193214509124030270975936303790247498391162230709055313900402261791849147357116996435458061789876696836366045623491053172796479896128897724108013048263987432136345945473472848162841084663369122694921021983691097622504923193903965084002542002387018023129316023828543460687290676330012228324982169825624107979555961940887674315771637276438753800506703295306052710272929996594282183284021101465271723645862853122237488479559632458221309471775420875947065597966974513331971221268017286826222928416762002741439038884940989582444368008660764134398991728568130879780876543518470606274692452493965085506250362075071324130265963691513423875833999077123016117881017052678480964034092993068406151780366357044484927248332042806096725739817615549787379705238148754024839238929908927233899725548576956632198478076067989986343679986101012486429994640715428249413594668577226223686987158002639411001082132524945520479753532939045668997191384038701140345240946851300265508872162167347344026578394690078368960322833377184293173829233192841458087938781692436106045576687211557378787342750842949989891480077553780306504101304083313055710059092295193081948722844205922017673465096931916823165438388609098440202436109682052827219158621853093376756512492713617648414785862129167958181526679116777099756815866603708547721019853650281685313399465754054614297392173105521555153555991610640094243180025871330064673141565727258467589597857893783923369257699761713132541683341867008522685797158782271573921295312886986808123734705531599993354163268637221352349919537117160313748044340836792124509891704233142585377513023022295318830424350414116644492072238196011187417560422078631928382369442003997732464443899175992058919731841822543547841189580861266498900839961372597445703730066040268381826479557062469545668426721231173192155792781246576536451948179553671991779321215610461605149722750799713605506234739260634003449222992124934179113688677176524426080708538440141384699557395123192373094106305189461933053416128578526900860581169129865152569089880992205043956630789962380879531240369290147267395655372263675948149431552246141753815434969634650400478484377279342213516121943146351718211688578173334184263993274159805045258414373928570012873607701633804796531172839444643660718175499196661733295227065332475774600082811662174659552761607470492672798556154255133919100979987914274501567150193284364538234178105094698048408887846193152983550078014539706717077733964748714532649862357050295613594621807503546552909246579024373112905347643780770947403435672440073359495310449398487017980543628080070233109952705381128240310493767097041375142519999292187196353077761112582409389692035383215498392843965678958393029071353256651999819731178901406804537710442821355312452724699918961060130300772945991708411192067660301917255106050154509256229405577659521768711449632009281782034642272008602482190812849514173420891855934114895147498408472723218211575426782459095442663876681270466728866148349617702784341196433216876927052104946666251979917342599285507846827166653290667906006696444585557356691017518717712859390159346014914090541672451099374234504453034388285514483061138864157144649989404260087245194735214691253047109503058244835839825203047844403124756264432100293041746831304273614449648995481491679773965574434399564540347171939375355788970280370887555737999401242864901279764488332955608158491988402029356141161794145095750236433270630153017972291390944579739906809191845294665890520649895868144695248004486218459830392349306794156195807960419594920570625419320534824482869338821414560392292247180136371404396328184904173449318178223282336473020058399567098666628070490379373438113505554453497884380736739155172636292571264397525751622028286355981362522692716544979852537812640662866018267179175032571239575095343288243410847177182031122084883893962182530526980167112649847694693325714022160138584411184575775170057948941687092613680076074361688201735868936192909427631422572618635210712119145405597314834142230347667665153375128355118246171461601382948462083501667637460527317753288400791852915691916708371518941115258383332237227915930398224277536415229540464260095207085444360542245877835331403155288615692707480338130921303902761156040752003678913202351219776166631628754773404473902075938186136132316040223972665828807033343611501934406624355589981041080790286348706715249758161692486397621655093469586262041010422103886267189557253371099593043655866937061783073545618605571233744204584792561896335502853102037091580249681163088210662123272539618580666306385127973668484093851271269233672135150729523339853062518720414825833126688201248580581837036636966790893003557411254346111903350038962107196777164854055136676358568572049748958508064875832855544466982175871576689936073832284455204399071711386857033189598429728373263132068069257012806103362384621044973926587627511237155498684018016613454129665926979429185907010448953679518855396000202931936710512209214430072468130009551741093198565289890374257895373567546654027430092238623695291789388553814604091956841376378000520827100296280186044122515398349711038078159156272902598328711814350225141755522644658709986519198836479196566665581010349237936994934942332478376152290531577697174291505976556215660828883147712888316006473003686022582945257264108973729042588893924774214077382451436199324627620533912494475811949551079231082026280592759612940368885031729156543672411070872156248953780788078529284979970226356196781288096729712589853434450741263000670675531611915832605366526751258733310605968259280591413727574199499932861524878581792513246009209638909069165019228402012014757308432164697367030567144167851329018448706425982772782003670319602044879386082678571356697115178110525801882550529569337693507155922041051783429836389104452751492033048992922681315619176618800949724108283725994857109545545908236618640527526572566106468475426879623728314058649133283809328035484564973695835009876607924054676855456053491645826922353083518167676021331269996239687308390782536393867719661315402788363789404719576718419452895728851356851764896874949854083998650070300730449117932961720716286987958202778687710364357697288740692184609751326334867054072016728217794675588108246013379367772410164661447515477261202847178380132792546951304566548050920315861603528526450467959974907210281506969909480689800084145588974636090621390690430281163075635873211007249587764504507116118390145513561576711371191464288601053365211100337589412778033862477407777230230857882671231445930841358659326199474096809446171084473213928129405950834760951969300136091111768840143367709893667897294130363017734515228087980126014566220461956431088231512869329969402319174575390190677946047455408656237880972550312685556805868960109482995280978371308586754873955318106275237327045745414082668175588683153997921840533733587178533139358869999730699240938189080802989809398552366923080755837639510213568785667534720703114074862521375759844144520976806099821486689150156466660690969160122023463675404438110017727423467926897643621706591810457618482541452588022022852835851680591976201174593519846769169392084303870841092247079199094901212047229540920240682877585453133418070503580331867394320425057420699502729185026413174094272637131806140630827768409179575108603600021803907090989100603027177506362466250006161824805416701488883660745249921201961881485452208069940881987133401222036042992696790902780827139619467389851008153647717702436939773519697847585712826323683636048636506311307263884986921016640551248017635046184339218684174735267821225669807929169411935660134226227580111067951995508508072910133969467114517663860827983289811853984576821420128231066594900055715996045280269379623944004251394763011732385714362627786016781134983492045369256943260262191268105601050999720959505549271705897974889467306750633804549376073723597162370401346493693737870349483723237127125567793894196900135913305282528517389931950440641297579282931058628278672570751769901799024574676592298321851979731469553586698842094042158400026398241678598675298984805715000259849340995031325035344925014195992149147125809257758159161737663960027539385958252023230678115724838290847357205049636826887538998071187604680066481110769720807434409185894396381783144212794815801846443818311078671091538560464274576326645214751114620979819465715592974266513151818411855012153340216915258953975737069843089211218627403041412348249070529412728848334945819779290288816607050247725308237947105442422101782215231868946075860716561151561719812118604785791540570121988595304270019846499601238629110011157862761409600004357446638670613322439204084681381585802480189009551736281235857008425250117610026677343237453097406147605463703526260861971032884814555205603246627324278240435081230172355102120801395950324514004470235779345122626429144088623229130516270067396191054646088280844529642609221319481618945398723996356745881467136244101118700485104276823970526246613604635437339469708019835543003457425409930979730307106285623284997057806971615987974123911040780205312007351243930293666506192340733365280705800160347731604007952870558332481965072583535137529337911314821513510954194701776325084371271642415394988132312315958396983720176008434073630333113568798380972474825237405295716703714812415021240970729299001888261864623040820304730240808356804320826430451702055065298115738750700408105397357929867643725631590759856382570865916933092618634181486513563703528843334792424087203651434257211973792614527324816736835939423173313681051849979285764744878503659678729163846385170163727434382856929048844971667239081361230168199922979265626829957530737535978926227136750885055677900182056322062412637465504143256506126855728009323431969466046390848274158817980397747102754986476622433583234943363215013463146846252665867286592710478021238808408303863456144425615613864210669190839453268657557111603680785069038449611150772140590878093356105735771038432428845333563838790805230158474864496591217428816426503549764562158850441282399972319929323109182291938223812417678079259865590340087270829397659518851656908803391488689976319711830809074126335973116746106669511080197815401213337795477289466955582137427623133904002347937546608617116009512165240898820593736024133928595044123092310688061903216213837335923247577676204260552439191055386588456666403217667119752712931598234838952615117041419778421165244494412631592175056455740749291541229186727541596165053028760144252970834622580344919329015810067614995662960259380165864380998000169760668114581656282380261234364219069047098303096173768598019472321374248612744352775894448004860752940205256151381444047332319674390851630382585525011679757910425371487730026027331428028762213251159723162721876627872293897707898772838996314219323453620290540372950440748696734515932716372138990997197263601453403480562762234220126909604140445463726866550360428926268722443741498040154146813873246322213654983927689502147564233683740231357594580980542220491756057761446766533658939140294096380225299173195769657362097201504580057876991840567613746932594885914311024024432946870938033313473610372363024986369404540445032999558628572005626997841870862546450672392058701836940922897535915905166902975392011202231218053620902126465222808263370368073978784683840849005941263097347050049035956162602167250334377740158623072830520883258621403101917075550136014745864323879521142328641557166034882178844880167054322107200857623167226291449733941930990273139915557200977964905161066074146084711477416186821375112930292055203036916102317789064756089585128169623501148859729045754482733793945124106572310498204704005571939566871516083853032522701597077903844772892574146224008869057458206622859517849142427269938869721899217991853300384330304061007290416458101610895443517103169521910068434304497923025484043827582847704543241298787905214877843075989942401165299001959639011002241978626397805911527811087283602453192960022642692104456996042894769253831128988912193602563140864033526849862698308830776564717135102088424024758906617432964512191821430938873242912344729124068969446541264685816322249466020084310579103932186659460004020020813064625963123406199676966663895826765981773876743792296494491133286837328168482642966571905957214854141632644588309616838187186841088602677315307168775635368113894803712224892680231845304661626401254892737247043907859627270039895350223963999712911141608799319200436422497559211492434108819774811854482208717195375581084123551942783887137252292376042805126380660412354557863002235753146521712579433621812089804534525332301879141979792063370738812521680928580631751882733199152968121426246574567466246957712111708140696707257410598968648727718195984075999789948620651717821009782419681692613394685357611137886331246145241298505375399818767876066372635204396802250279750274224212414626629594893096329323920217332322016383731488417251396769387104711557417226203243736643557479337044746692753129165528489070112636738175228078545059318197090704279804237819463805852034116550742152831187545087650376391820613851889630421090253012032620714421465457648113214094349435113363306462384596195879952267596442445936592261037422631221411692602558313890908778164867774767652588301758049725286957912412425885718210073285817134050511406278964916883484613496665500730054213287098315114381200565422675337747159172866915168933029356630129439678409515128395750240315558343655145301651401367246424754190600490198867027080407507424193108186406443167710999491187070735738974763141911422424323221953137733552952601695422924043885081634879430297518009478426726244287596929493942067846529091202851846720843464692398922448277006919204723325361187491842002926109137297833561913823285483404857234286075178831977225735304991137461829783771071453227370465565243258678590956887286537702797188568671613559357917720154198284921293667860902095475645660548356033820998496234664845683957269782091422749356767925118171428234282154225422791575888984210055604606465902378692624612013215739328197616291771425184716823004760230539912421899332472326435116313894518239703118959210192548656242404353543583370564807865196559383805741550424211010250652027729153029350152500055611529949998904010344755427609856200748257159770126137266920917165079391363439009562038125830103437843421628527018614627843733089604066765617993598412665831200556689320827026413551300490791857088448306754711921935097128298652940303903936810056364021918190352806834684946983905309764123836668810633306306909314034532189189799186197075057069695284459817922359930160788289103550501125476903466496091859600497869527306873011228137578812089413065222365719052036098990896716220104390693201853211402637504686643566932347635123526554413433781821317724900676056078848467456623950511243450412410694575630773581166465954214239331939398915231717662007905898915538252223548235047011513510845956699656881453252126327829007312538480645217437145136744375314827691857603143794007458467392001306916458181462743199014895103762198913337594623182787534092777533638763312704814910587573870571616119802880320212920288596994401742699415267060913605774978597950002494393925629845226742048193442933065398167238994856017728429478326120826836994284472206173514206635788788454016765715849179048326729016254000732865734884489549711178084574080783532318639696102574955892685924230360386950668557759545991748215345769968224841837878951891266586971302516037022269422506602493818073728175781704997396434828712205098693537912936915624956756995770488935336926533640637862704096643646612755835649424162524498338679797788668359412965004074331197202184491545411352525595423986877681144823017531101660830671245012603065305888547089164684472138002356190413953407312552951310098691485996710646858627677962163946740911466226822417920843977533110290293831979775569883858932017300748572589696998895179330139648699502472711017430290016547625619959600324101114368650284873156553500130105340298633968123885671871200069740084136533412540910317937458156468412266367626198656033153802411621363643210816936890184672019938914197511030199987939302784452777473987746748196609332362912638487438827805434487642210548472039182923390477291213293356784473694195183645358019632043132100064530199252572777787006024393456009412319131602506301347344960255563085640479852590601195280276478911101813112017155400314180726484536288746980703581584190012770955734451824874775387130924738033900197480855536877102100851612169372120307561365642103432746262285059066890510672218897875406176740434315486065328571090934906285086604476822906673555803598272729717817442909682152328404816872183740123523268622807908593700010835512829109965550460821140565631048397144103627635792046844280492124544792447989419599025339356501452714087731588954037445217268972416135225854470772904144939684387057937451647297812305696906907861895442842080427620406380274816396574743353078473899432187449028208289605596948981415718651783322202910527814042214797247404849585747565322394429114412346881800563909993334649015145859205192501955982459055384552561370147190109422736599150767948709146979037656993950670429820156983105243022769589484452121075188438617075000964401089699919153013311189986372944474311091878291234198439760075185891430142972135299363188449747268657653511767075398597053139881211527708776251069354447021467593654918454219904101007005127346638471785408066621335796134706726161512138044262606379446054815627526498547037536820823816760853235767734414886250494663711005048823768044461590067054565166904678593976360739458120214267722200924171174845507607602056033973501354479327340860563210136363311726138089862357874071412850756653006186007190774165724081091012878744368930760145878092395338296191487145630172389365806132093360988194129167188488458115831932560310530610150335162701078649746324332439236328002298118713647826484232354489014572973015926780926630050531617460600254302624092415921898352304505657848066444454531884102464365080995517171496474019201636304676472070178116240782728102020690707451466496132439471028190643078956209437716075743567756092576431499352294503255456876153898080615700476263142943233521877020494196319983544250962358139112595665601724808929889839238589392952965906069970136060310539846768080809894413800454023474436195873209649655988899394466760496653553225473708569048545989365069239356047566007360914217265898849199850135927763959238572211043933032167947281438757616519303341901671950349170716048690763177565167612799162632927743852552456307566533810143933488361495636276223819571235499827083982822291684643000384899227706067856885635176481426771852282391104603046182062179826242859341958294652603510059339032733851404872891295070199465917812497475947819333034364220579431827819406222496597465258679324784569485294796012321449229608053768122433567133113536919039424317502607987869451503066155695320316472872796763938244278407665766336177290375902701747363059266491879953227697184708360049710752515382386107361104502214323855859529008781542709710120302790981327385796377664049974463358910035464611681579511866070325801399532726175330943006689375120377400430448907016062528976843644417815301428308186447156817992736065560536187878411104016943692980198991602037573111816650951241763639276878976081797156583447613587361244530583125484876557276710572115642059488065849923196900029842718025716404871432925598439774563835212347796778039251643034805918349493965782680008947957588113006548437126385726642040420055158502913156142073810993407212828288727302115226754742780983106487601013938628532327035779633725658637866710195970816248142694802616790312075134953444612901850591136124254029036030419657520853273886507289061557902073363413379643991257431436639975413578409248175685455679137668988896697970243803712332355637732854657340000019634034429580926314104093896667229822825098200322774006962324831168960279604151333335779347544386770844027486070899149358249569400963777197061718368448266942338027935577296144096654892179409837271362600185910037651958368691963906853992414155970550413359810979223734853938651867626730952795929449613688680772988723747844228766992355079070191111555672226202888359895923519205343570048416779090931701802356955314927107829795944260308644804992141038575456499633349650033437702462581437102291383582708553478622436579869449397183697597236142749704754857869346391337981100228359781225672149972321308754343362506343865639667205398707884221175658496456649249561319134364371491094138001117852625548307529875852739240259483405136911818749016674186013151971820031196263042689621818102539921836921534600302245851256577689635925135993964744451914411772291461571828026457573631646787787556658488488719234251145943260706371727219790409258081434871675122258235991473265270892117291228744986207627324391349800391272982193927518269439891016771991557473810295086340442213721044121412110514211648937871101588347362469421773904685886776140344241605730922422907326953440982203101047782879461802075843180704810653724684649555564576779873532116562486984387576415786671062928676434873953552322468870118527090345338623218988301594242590320324149144641192627701125205364166814665836914827100875330108075848370182319718970659016974830936773106154982836293629771096561749407409015624522213970239685938129589737980643433419033811764842566727981543157257812383571738582545364510888015064747705279935280072508321684027564131103238643473439255077507593611962875913576730846515720745994442503497246928832197957164291643027907095302168919417899286255813490658923910504648017699836374881971100602198804518074325677581756637369316675495680120971253181591079340280391014370138815304688003500240013023366731779381268385460205199197385583847012116568669944778410887653642984286566497789585815049432839620923081172122109823960806794399920897148676755957850341085574050565019852885291738289617413982907658573823535036903940922535661142964373124743703592716482881696172084558911179012862325746653907556645558544422752633396246087542195160362621605378198356417356185001273771802730677618084701376275272794890891271726160649111958587379459278899255570540616005337026511911831382353633449144648695924142571499787565709744546931702812688157761381997439869762511333253506443269033003606250597732070304779707939566574102001560061909004321271536865521289420437042741123067737162543494704388084788762383479572811092482488031715845792025062725917389698270930179947492792478705208003662672629567071487263879051598677947422406023808178482337520096713575275480298371478566012632740669720176567989295293876676965982163007191730979057648364110051740785650196802993002555169201702360646381446631038055327582684314701125567972157822660171223002617040900797902299335430519557396576844831024508890006058681202836622822569884341852455053332093588494274073734030654862188283346800162438585013443255941029421009594189581509222660150349000217076340215784538524105094111110190349531226982820056950242370541356448576530308177930881456931130531686174701794006031890814737049454120141100804801614403366733066197908057709105796702557020428744584080791986564430261960834527143138257148225065559153521341798247335216586138029322367303777184439519341733020908230747004240232011853496048997316476561396433894021904899633733305650396487897406947341108448456847903051145830417094222066772507037223243268746139773802691049817676190220813653347913595665946036757877886205550171271376792177874378046640589227771008659008184886135583257834961610555926358235306372062901372112702652705689188308314001755587645165133046202253031648088507838662172166073545200538489145873421791752629271531390260760868712977336006043867648678429591083092294143712225884164361851083507327154414255121369818498083091015884013695332335021895469501345022495642039741115596546787063906699023157375838994482487095018885440661321717864438504799037699972682279459632134960038268591421847803230174828338894120496391792079610098183987539575598604072296169836819484861101396737008365138103470406483803874584551832378871891125874030875818235791778966354734717403508964268560359470453577004571088597810835477856307584897265258283301451503177632916464881289848957190695863699548118262062552599911925823648035527016105061321995249563136690070188817215715423858916559523495073027246359066002762330646992293655564068842578251535338134752414198088945292679390120450994958086331073400366229528490004743889217760309680736318325539058982702050819327201102728781975592625025668349306261254634876902306864403117102559222102768485418534676000929565000393097582352199199621321758101904572142090186282312036432096425976276399027237849759584909210422423779895623508347040266794479209907504326458232193146727764901123341978157203656582065337391634734509196748056251676212201944329176044572180562540011816713914900028710695356370665611920453896697382604113630137666726529493559296534750791366771160711224338751952299686536923026808905391836514363118792792637208827009238390657478023325981994776877979786114434364114083633016009298590002019597961414230228829068375543580352646411067021559015589322728395117782470582293400358130296045569245284988592521391174273096593297509447691238986211434125331139216763328407184100697427333281773583049715978415825613624138596554752391998328239821072816414258836360889110017767219218269058888368923528204818514854298933211769105282792420207647630570002697038017328088060158987715562599904942761598413974147956243361890641845000140116764829149639129339994741015749149280428482995469467071116688211528268426037411611361539020275792302246295366428190487430424959583801769661063751835386031550587585804752377717085711603824595674838880187569275854954056809587955675221201675973344169481526244039047541237225039352816671270502208716398445971612701495680671632976865685378140408128494287131898992774470012668178885360025673020474357919888574340927109726049384972959846651937222578239620783155261446136112267774784670094267184783112603112314537017609541647570029025005621943393610684136752828662927801607602698766830526663784111470874258584348245199827740296614093610720366967530176470375916794792129851673913138152540062998969591234870311772311564601407219837601197065623156479574947318120191983525997069307891544270035063936802186249061123464751555886833328150824057455799503223780867287444907645867984349952231907419146242678550101416983249242114311775731356209856217612404858733160754534230370571779792324596936243932585497181718892062671371849614831588737646469649317497226482701308723245548175434774384785534094866807755046507188116641479981667641273574061004268588331332873204488172251547788524516270950381592905530918826609022185875601215514730967172056083517722134009586722045274100328281193918837231902264724432211064302822719802203023363935700566090175210235666057607234609247738026622034693364477810979157188316289259363818873072139766724546677965545635839441691753947011429635791146748130173637896323172337334081386721673667049284653089289339184239067889211783498052467867335650504315804601955591691688624404286541984568875552133403824030128134500058733126542411575484282757253733169150931249031253360647534041678768761573004369973886030433670287160092556287866515224120582164646830293042639106332375537171681816002709713473547585291737557285897089105256543064145036992363939717451545178866708883181267035546994642789572697639008007741313637044937499122684813458313624169670925472733413732329780349204158591280240868945626341892139229638233867647958680520889666390411224759819391076885865293821663811652931215048207750784638458305558033859515142285957839914157525664893679599029600216426666639122366233619329790766429939705859410933727917941163297688602158692015208990426173778955213004166798980881240789304839457430427566195945187265185146348518315294863531020933466203375069478045256558837757465341343985203042330489065823365446902026795344663099753988560553049750171195173148253198119895958373743823998092303267996930450578379123305879725659924588625130317265144628908162865164706766090978301122931525679040557092803278391358842518907710828456121518658307046154357491804484853669944146556532870662938619940925641511188641037900158817675079087937762985051122234827776452923056598705255748369846170949816076900012338651340303632611087266976163298471262404169223737149287211653713150372161297796798577062330941719206393653383445392344399408364461925206598161506037478154658542809186445865072307155604267787644145039521143381961192376520574122131774247803553562158045519676632379821534891792310011924391858661483773745677792442635745490380431309386211691449905842169196008404864882729595669764188658073233934904995210707325841144022160563781564751364446579400389201997546377997901090801954839686019635332960433933746311128818495986620772526703735321442959715443256787161326707628798080626326576557522655838476927048097810410314192075710174559881700818862022590195993790816631074248096629917014742927559472239872441723740880993728379524546624264322674814471895156437799209338745664596937110523823313802205148425765946211581518329793932781971811407665941776056288644167517548265050013986182179583792620432376001048143540785544876170640491428585216625378683102671453644496645554806426351566293760517774474581226260352297497821680078018726743634390607058765884922825316067087476490609223879406809967092118728164848734340353207033630619396801134181056744434713690295270500195957534494947922597204501534057385272008918960841889194315682252100138926473641486459270017375482343544469433839459270465301747887685655993861435882164305503022969956867575345646225226995875606250176022743572751940737314023198220463255963329345342060873089100692880054500798023882525690609022796152699854366072225336862796871560101108939431367828838859317667301173480986102087171538712421921472636390097817258026220595861027292539380765746790925174825693679990537051934396051353641116272353668338806597281786319026832724879587510501368392365828802835345846299910419530912982175073984681617483066589191006925892596507443613217483619451017940181226168482686308898234432082635244398922974978037365344273280305225616260060626509273506284421495710460102979513368676637533749170012971047528818437976793074416827434250885861101423509250690702985830651522303265153486046914617657388981792328239149357341765085880924502245061767993618574722700082994645108470314877954023546329718185648521703522555477959694443029047700461047816250615558509215146479031362981141724875899503394943177434885070216736122022812305042729021748006100657668458183558989040070868344809605650848728141778728665237892528611550004252486151055639777709323018263927525252272049898984889016604487691439323332612462735690741668956322462077749231263920118935178226787888617261132608092625238190914388661478769399490582589763291850624035938940229210733795219716569502241284250282197773103951321116476855211817118657541309959713919507632409634282520471485827627188835941457833243880918397557038955453020598694682533087146072738131613338827946451077635929993604573391420003488512794210896053596815158118182718811800374724357696338245288531830425961042487564144248338904902060008762079587735094666173812041850581760775826939736289061845949098249364880103121333662911161600858467117170239170958101782984181529092859919711074402539207351912878050772816784595309441915568805731457704483005394093397308897056897543336511302232004853937129239813593217911163706659100707103813255863105856505055285639661561945437036844839232485846675657544321783721436700962845499202264530785711814830662389760065520668705321878444463095197427609387424963184784245821317509018971725614718364914786928458836653977916634676466865225048549256003624754750229706720784435207894582008748510646629302717957682633051491836613791473798155462879213755776014381339847649953075721633731810219552134034260177629649150750739400774975817463326004815068776463483246790122178062513289258116761306071671205151035148572162198853950653115403976559508402856471410683387422263394798597941114737520461185396695112691232086179359944147419486742087842497179545513795335524347166663028391971646228441133259188570938285073026230126216324135167212571761589331183354341913593455769894969487232003980433129360949370134694826287571928758998281413641190328118794190353748593511184348756029217881064851242135688472815797456816542062415704800804158854383465537409302151854330892487115243187722212733004449689567938690883349920926053437273815245984934046938059046273697820255738349197658450570368539406224087416046955066912627314132005929562853033480549493459108477874968748604507021000375895132882906657313111897974787127502032133404308515312959156832798832491938870823154915031881047613313109690956820512996031433624536646893740970327278634131893622295295838152678527765343449084685959991659153882455837566198839567436168291173097039016614641952546217598943598951009895803284564614031138061529463469805127252882190661103155455963645409708220599172439241356564637036034003275226756426910871323516946195169174361900548713339592897857716723224107985636921980216537743775197661819076333143611145876922722860777788962168065845342887178893892504106665641276971777206381188520949953982344235822502622889820427085534767094222359483318185577214196876823674427667305005593051864462549873461511563213224170678870658634807639471351600132910170449854811796056621609768951792994667751502039366181421651727930233304834638527387608080364909482518134361322613684910345057518801402052199466179411069029787037315872569360079590146534782858048254540410732870089348287444760738871810177059593367739130913721725867703526962709385288136005206556363316869890654657386489777586224278965227585193816479744567183965987743167206120180578584185811889490320090180307385980370839458656601154966547205858189288905130183219090223140733015443537356530090576276879472982345776293320838653972172783219088143597060285659139443253544294425931591423643570235306687375000545399137535754575215095005346675482926145659280274299364254575385371453218022508509588962407408555511128464228629335488224562477275843224926630969528196573337880921120329794587989316645127652530252612658272634224298992501256509409588918040167337772586578237697294442472267192553123781221381513927048639898534401468354034003023880887112219826228384856094447933286292016142473172386717252327555289558157906213897423901442596018373250635490674263636969825883106235540350592301974063623970788493169271028350582449208456672234012236812013632997555897771695307405887650176898513718370379845646720857842845214319950919543789159128729478640211349865027790600682653849835308657868429333953266704310005334879388013100804537976011085973953008501778980197812854046564777010986250990419944329576529118748428246896838184705424096231856409765460781720235134923336809155595516436284406194783713598346309084404163162901012264009953200019191020342221615379363340719590239599276904432043891510663179633697593963828088548317009018955301212300552793370036335287977534245615269975732692809073824309622124561831999325412497242536532841763650025572061207244597052113306573357409828132426805875341571593964183023452995901170263066126582610349942828694263451851498911105681532242623921934204768602090916481450106853321334663748622041708437120022564647666423036377409990000546141833849578632168602256214856271848377720883289528468350086820500131333793938726486698845416069035280044096873034546592333706163202612951265360709459301446480257944801123763580453533082340291351452539051720507444032828834933232303141387127825371876828512670128040778692932967184308163271564577719473343291458661506350168982107865797726419558570682516550571630582413015308324974123228445009328070481639477347378821159923564158962588229174689167989850857130717253349300279372362250040317588571158548504218464623021614744371209600885890550858403055476029299092556867709968049302427728310654273901152882618131441684046752893481070420126359646171558730430503837211487219795392477454756753648059440103963978088719003415297966233194937686840651984016337561566244736462504057919220116960943352121346518596036552402685530755708819107394039163910607628111706982450530645707115370099628632259825262821212370181380035340695630642989290632360944931452555161472888155329803328275419807054648365072858523817107276725238747111380150313569132612871420849721836379028716793514764362092119828808278318303857182781470268578709888563025027254879167639898420022403529614229672641922299345948680934496810760779644907578507089200912933125284277791330341447349083236414109588954751732937751807435281361962254501593684360062805540271425700229134074800212462241810482488762954118509616788052941690742252152665194972504057174620048491046698946754109630728374152586340534549215423778688139540273282480913426374476780581803086186866869676502712285524441604143220272935295637882504462728997481163547248880905027681966214365677593051876705575590901849742107900959844263622551837987198958481789794056113540598376577547858149229469921088776437206127992707534122926760046656625842786805709747179651332718768574894670060794287766676001171016459635971894729989486662127764120230798871921355383796837075478823665090528621412560530551186461093006859820016542484399751313985654693010058182424165939350781919665634400462778881992104745741824975475821785324939786710499167954909971734613566310718398930511443080018929750659256631329192891611322400688978730454960143616429732060690002701893080665670340790581817753142812915881507507942955972916603584255279215281685622473277373482310559298758950327259923295363953401067626853498111855265249427966189146920703694269102004885732841106546006997349595385803778662605394265165820470299413393052412412846674729838227393349820182302677618125579002607820888946390651259378348585885401382876493154525322814257727960537560176533656018208452605765720842860143607884904115901697098823870841945169062837911656572078525540367212332338054035823204850680274620456219630179742427740343929943269456369051417675328839653941069276531897037637383004991704481321085444416446468661742814558786949324708527250176777067758193768419208923052226478470088395422443805737533857208548757432687305585471736518038640757696538286170355419037766286614251316052063309328724918319363813711950141449859446270853477902560545770034482622701954062569107308621613911822908995073427605260870289992403389227226956775997335916596506939456910434761117441650944931661810554655347549434860697636524953829168841021314352645694790974422476798821928132904284125529499830475459264188758448773082148711034582174247676858013216464484647073922692344890236222576992936888509221545991040034063182005937261311743754896798550955293203891926964246813921873578432012183902810384881529637323321670299709527477359081565921149385157633505373523230769975562752541272255067244144991540708985919921559327583799432407399030143123381875924385500127265519900148602947421300638474404540765806666637034289358296633529275513704863100012332696089062866737278597237554752342109925292565927082891992056586503400059448570073349745546352343404534337088186590236677524602257683199448871222441411431255802906755406289857419467787831379041452934719983997626974894692052652844162996669403510951515922879041432193278913553206344593546428711188664706128561158214042289992375463001168846905742646836760179387986631781683096008632091586159867069449378960347802223253264728416742050413818884572679077625866552125609051519684320425081646863447350093247546691880845749649705716959055130305384705654984644826943914803309886844328405948501212529597059090275918203420476712348507254165248935022477326817309425201730602123261357840926917789091346464728246670164239591832098591339223843044119088813816004538452319933534113730071463035322977428558654900465406549607339484701391456087859000044230455484630103473626935869217337811688823992821434239758567792885669882423102611139108699995250472941990664908425340770675860341876467724361968453216566677135450497481043621352421240240501941966365383478770027773868202674211787532793662414856618518435547711605316864591232310257725182800941405726822596785258091677703487791002839211048628909089084876444783673734751208534714876510355620124595250866776767387059297020631271590773556442587416051808532147960474488925524269580400586624830199872131624370870602608540051304871867153680159615737407275014380008625633886204629729622288475421987779639103862919981262867297790173692053022304485959095727267939735309770450873593623917235600404949104214054443439753636285017525312015246898080959070208634500783616472471846305615285124581806057087772009970290926317897983996347928274400663244919940348648255917637695861936995775359236409313731392351196678178891534420024238799283829506005788023563052113508887607047494283634661539751740880932991841385111731607517008365152072918388498969518734382935549771198676600665585823816312921876708226751258416808917115963888086661184860906592746325564850377924372918977509093940476510161527084075304102559484088166062258457936411721405954321132991970908204494521041305110032833977111633730859079796991398247969731024625844731009915400872388388223197367174174600384494930721232794924876849074122861325292405592263059139069494323402715058150923869817644051098882194582571909504485266012098335788613552068176613731477032581611309457756569969835121361751091197403323322291848521196059583350119076834427729770761021273264972123856979274445586229685118219512810235334104834964062386866339626438883721984983638413384358726587505931440690374629455804220332616664051133819640410337236047206034186155997590723501659037222192761209532044926588716892841784090970788781121356435236094744859437572932990581539152375584928982935407548494070205032399246696077588188594019248244652721928833406916890537974145347610960335851535414561592265985708632563208716169900074590304392576995251822985911392384377068554966680041005724978122597701206144961480095554230339550273558351392641167758523384766729971522286191633473221922122169658798948458803551725403230024964645071901561580703926450587436644189789908003073975586881338410646011433198072204021179260564716642519175300463369879731905346800164872580633531387900197599426808000050160758978226628115219274721940359789532973501831752174329573906450285858138873002480051157464000408795128443592529941680501345077159523651904891284960823492598538383463050745455303145839431922012705056007932181910017369368168360421353999030181239702041893503632710035139205614728864771252105674475192472542183263331685032371055282770681506044761030207547959835713807295695277041972019489289972960465977606402244181743403704822121092235003816515698669303137695752248495482078020558541966702388806020544688193334073325322412673556445560794105513260987459495826545810648868058114439035611619523238776788989850160634344467575294633965385075577476197348910871072399734882846569254526099777808988325754888385902144354793892455802571680764258725526557975591372078336155766091071467841645822384027890080831928826180867734889451275199486706660398327707095575100921460766917939647183189584340285248380659838018689943651328248439851278193211036067128051808054509375697165548741460787197617865619010838896288684397376476871512642101382881945265623171912107032017576171545307733382174265402618042683553921506679968006889025155943840054560111088489035114297827891286055629800572512865493441142726745175461063947452922301380880585171071359954924571069667044983331458882666662170576653924038051218444707957114899164259505099627269848730159040890752474560951595710131906965084958659544275881870004606116836862417625799451500110834822518121772285668471551029579880406930240732223119517882131969793629063904156096892252032207839280427182848654810619582745369089495967977965958403852076641256438910136717691714948768478788378282542011825047994968227357708309285227320019503623145455875421783704614487067364730580014603164553842701877426184024149794865981550553388475189419020241943458502209987448662405162821487120438568105483135172740420839328478526246082475736592510279276346663480757260636903741488203194276295166655255793570319669437443318087010557216734617090000502766393692156418669733499237144602421974822345820784719512463158271388711632579466278780014832614764290039330117458110905588143991272495620670492898074511867997670009991199453097047650791579988962997619260284864802342780524551953381441421372574427579238116843621781004213439998248579422249569746746868359182653235899450159454910071589181693806256818287671182993967717954678243038221594042835961537825273830584323836872117140786859295571529209350812057678312227078441664417365130653291348272854136812424080845070191007446790831835055308251200604106229189501643081305983106486942191618581967437918389916130395282798643957886639121988008694499835767447522246610703655061781954125911510718773749582502663466135991206596287795977499879695497488038661556481488118415550168808491757218062128028229709142783936047296339392195878656057848581274327538395518568184012666711894854233256775025332927959724961189610705367598210937951363368409226319381759988915812534228848490644868934971453307079538756073374539301168287768025530995419122801319457960550202127031828972859386160755863188448814255428714935829142419049750139686192034090326168422636283756646210661657784666503361415059596932524331737328867078246557991443292435590363300632566936018693719089729058874177727315441821152225716816536647248465375116325248405144277234834235364975174181023293756946949395953288931947076587598595749514661888370347105932460968790616469325199366764137632766560797912724311083984713495379916514431672370331507790979014724014082491780303909983884067582251245236714408815585375207134254168939139368689378937577056757718157072669114859881825462502947694996757362274440563902528297426039465611114252481926502267911170767222251054746335349003597886872808905513543870489619723672358872381213172330291507638827660826237282412003722895592772823567311375285448948206747687542770690540800370888919278174844139224137692965231858078751810432815545395846128283354053367870595798871000351097512927124756724236433901017776694121524808982006288354252672838479311746770411580414368800167263163686365122212339928163152356995034221038618972381160385473454279240262264357325993461636966313931596754157269756387767619003633556659447590967923668826782704344609693375215334143422131427536944275707062636658094867555341744262576585263505260744387020021843500980076936614032968688521577379283818617519431458133878558666101340075167536003226550348709823003376997836494580090853314417588288046938417409794304043509886435623955988746432302143872425029619754552306672629320067863198089574549496622068962524067449027424553551430384591895040224389570694616259200236647682690842162774503754729661799241988210456156754627233685110539478477114172707959898084667003742479555370278618809232499367986516455762244115343518641335328150369540393070433415070007882589214680831723249341146696731489890494195657310310804290814445374637747954630239641150134283141116298312640557425290554343701298211686211850021426550977677619893333523131440091480309418333700313100715874432080257609103121411398695643968959604311090582423670251369861904793166635901920203721535423324049114329404865571128052984430279864955983559295861517495449969879524851789339493984444597567093801682934051790267126579946358030023307822298182311324233423841765363570157486458017613466994601644928688650416678521715542952425845366074034284110600438735747911801018596887507513660291340267409187901727658792551936281506302547089553081242640865858613270822397290288926569808829734194915767200725871383601007312068820104601835225319708365124051951112662066994693337534131460767871833073711834322900224808868907250295003910132960175282129604885324009158771229002580872038826039953629013243724859757396252967834954452745988959136505503104783102093989025021866259295195707567812534383949075301996377960600441797693900800092891190694821193652529711723024603503804902251301590011135613247316584283228222658191702549972239606159727373870771931288411673598205409836954727822934853526674041548478706717815708365316354825685111257191328192109933041500030416488553136325606634072939579837477623700356226549943302027241057299325244391227139658595501342191812643555105384227511095667034000909455092326434877733991578027939740687826610058774324575938573812351835810279070148095496031059387317915018053240411702291553121445880168641231243872097235470155925808376830148908293387892769825195825466925835037617135005650796332847067428877021609726705434011974530522694453241176553144455851874320827211553647853744289750394590745950447498270766736652139329891711943551977004385982146675096846695314616389787872021257619006211017901143635540362496700828449824081895212478311539399942763757494207642178005146667544355890490296157363171794678591177739038970182797851290095384700838123449405630166798558557331748344504982707850898328386407000820466111962713376805114217943867955055466314091385958027613898183483477766234348383810003577863325206284049649091607651004923988043114747980201051908981895486285202139105677946427063150011224294646752233767863613868279150885168816262425222964167980669941676324908083662819905712356040808159812509590657164237160387947599745676410393411272267489467012509862742194507372770319801912975996637985235118056845440926000697840184732252043054932875816236100044646035830500056741855470362414603378517748851931834785421419130119971130961072160602740129462474185806250269519313308505120162385999165714904735571082313805167810542980825904949240921334052383113606303913895563017124408715232604086871128865660572040482979986062591956799586824813376680241375662697956181137730036889463159191542815377351318381577159184762683806457933135364268048598505665984075847055910027794784946770201287545677698792208882161665377139673689070288934155549070395591444980331482376677045631658180305898668166182914661150351185996364388332777352624414790507526149687036124940557037869136686654244115965826240034657521713920885949326431713018749489855098696026356727972321739877597288664651906339414640690946524248552663467028525725428347553503778656353656392496314260629276013114179732231416766642687165951514823822241238363561906843339392748876715997525699915011610954641844615425142661015220674191164742982965424445899921102468068888778431187455057225494025958681937273230882543545219038692046149173443542145216672427264166965980778052786449340234881764670981254512996496980729403569581311093650034489663490979458545287951173737378905257048418972304926553932588593633068493868992164806035191267571034575307296840706418915122827246982673300453911887640993019908035970120510977293935224907821683375117611844293777798700323662743473092531900629029305997018483213208501348799761056865041974326949934564836404788261259228919214713543635019386663766968485098896723636735820652457515390519601741661672946505305886678648595242210105123741246735362136415356126601716490815737486190248814487454521290272955598067912131898059584759125602317737954681021730013263344226117129531405926902075920594442974543788507209299173400703696538724669298822932409394467816297216666565728452910292373182695305908542411214152725672754044766119952152132495148632524682058059327700052270040535772444323844264800281361677128798067833866419832968243050070392447306720449237361324636296111877640434193775537951049170939683349050458457592692113067901431595191613877477313868746368199991569200690699759960203656759544735323043466293164973700147314032356326364268930693899348067920266830760833355763703403875786218588863994681177339096138183166759635065599841578538034801667716097099777433055415978167603757992633198461413469433738327097189976888557613726029982126228633641676718037200264800134652343164160144879697618292223412314602420091458107084801666654147220336985807956001308130104207130794379997634680227811365996648762860687944702465591609650142373369755654009752252507716257023921337189936707403128480337526191787144036610671276136029814166924929037748455007040411192678283563369444006908210183541619046284415046626746857364664053859421330000081186351303540674568238097000335854465029271544240189657637364479463223252451421386010337087855376111289107071230976788325033291314757375180252191346499452368628721947543402606262667232761533096646769908787992214550991363579198333231239723903403261434504542257448448455125687610585255540638930330009603419822267817143582572097482245177374297387101106130955698018654786852346688104716312808928879119527654486309463549069810097802414003074950967542966125857917236010193603439282408780422983867665358859474464395066937055604566381280412275395129597222204686515165395155455418817556483043275472317708093600211509102538665496394971250224104940932402992459019425446324432418482261383828439086570116461116060003802620225727886065501152618005395344772573462481787984509535656544242298460884230446169378280241788121203434187569110216170929137958983689913638756915441177816559814372391163143151121574668161057695951621604561005671223716679113607286397214181577635900521534468052713675375357547158813458494780075100282114142493464875960478294821316165092041291896016580266208425283290213990141616010973936641646137286346468043141423211941018389880376350000796429697510499672593497265476183136043636370484647207090451984772196557175994992245907538940150940658223775718044356543455318184100663346671379691018348106476027307033116819522262968394401537366706638035256507350045394865674916174218715610560897743370656533959456637797772576232996223258479254785899874711323449561171757656258610064796050053206645873520621806457057805753057187225417852004986518196225609420805921658235283695842264794137196569744788651974209272137956422112127132329481520021664222358184656882542460614884986289800762530655067561186176659217373393716155670460149308749695081368183169244405907169717390866912135492246659182725401075208387212789427962119870242570721040436674354533886461386208917342664117183621516499651751417949343783318487686696049867303144625869383883035358855118901062852025183888683405388679636573857912796183628214872645837738179163156622942381419123652286909579935185615923968360357550981219514982557887353951763457664267014887551147716213716998730607215522893206620051715167072947163098458079186622686206883833220098202938697781823822264359655621665061464260613875490381332887509138308604880350031414165403651322245972310675653433461907408246569374602910464210047519272820431926344528394677127534438729270420194615166909110414871451900802109897898241123047811787090349193153787152443648319214700303485644849730195234217278214830807010963697548700621145317139664954966557158731615439410095661810962925316311954806387674899231852143083187697133619517097098374515340718318103638433371349460332715740256480003575094198129924528503394534547679576596861176132757941964970624775142380725015806060252615617892918356448637939193029958277689800167748116342294818263059322832116400620249943560750880496274263523174690551757727001878083916999845889618190078121848081734831581751422459231967530633111011000238081688713174996531797074815631420199803733336188905795668752590561109922317318852807501677099559757090309473067666890072323333318905693246040925921290595551017783933165423320354658825395384542677134441045470480567817755947925166223894341915720331276199187790261531058150053793487271232609196808255251415307327112126685477591386568607362881937166393598521136105324824296172676677886432906905194938953083664281727155731450927194277841634893235337333173899601524386535610945898932867977719034071763023972221334435637550495583537616309310654370277426601080395852839538334497652155335616246653777694720769052942678937084038187925820600847949709266746053582776482268823911965335327163879073843643307632337884036132275611775768947150792052474100106164795347793736065070216434836189795672541453231960715936655521880388973036502073039414297969266974330068001276434924596911408069506790173444529955770883517371089037904434036280604866532632216652856671920840059938510891374911895569469502455229655544862929649270015108765771671599042193495586525653369937330920499073677514188122151343610360777660440751293205267834533076000153034892538613476527008461746786741723379441622262083229045388704664096511139232671521817477512718414054585188016269021654228915710735308822147268493919244154534345106103423156200074019086787435669379754735905602431010983287006952223980928047982539319832187216456604327456090601664961668072648345441977246150510605591766398496854237211840775604519091281213136677037515097922221655046311981566969598005524797716654356137131222534033751780036661753638337210258184867830324563859701203273873372080908041633036488773318681277760451566178716973099323094148933946266759689597603468192485208108807913682063884291977389032526772327323168665716341601877059275125585719964639078923260296269728300370684072617873419992797391887101935519223870270866427557726303418120576894973290431778030746065113684459438544692257560070496834578019443501737810362205427969067951017261478270327543921191796926048592235825897004607842206139359106471632442816331678368068735406944623614542534712418692550671499795032555738658617065124216021282588246477263147052578648409676655598360812301191000754309572889017148561976174351134688682154591732055660995493803039040871256297443355602592841349061360305351559637169900664451043344286557785584553067850492671005219087988793867550106430780585761237312595662666024998120436736383413943895975391573478186752376083200962953328877014102787805669480596860230265458367957112412827796591730661802234269059236285123019350672541028869652334285110157319911666966100991004267180526601924434735635486740398807639099384341977250851486913902946036314724352301319027443488636234345251332335264885869438159187874202053370106607134696072484031880819663269256564900568644399013019475021078599040222498904987384271193887979834992426579138642074623187432492981626676715035634657769819822683843579389647485381845622319684535580796998105583280598379623121428602121653671158337712868754026194954748134246817217937051891062485663730002505175280332625840128491195039406576778866087315068598206770667234365069898230643343392415344785716160820526140157004644028206008794686632025747992254065281925399824027230417776808419415033134872925602987522948302373793263352885897974319050104590027755295041152596291430482691835988219389746622895832998445803491895279956888513008651032257983362872873343498393210971841857791258353246412501550118606622485063688926554839385724726116520415226833390735978383207511319541103962332481031981168597198890147658083355615748249707718333011881945144413904583365057610019545855469996777754629599057983695557390974327669345088032316541793983270646889694645435275672294022557061785270486633805404967092232682751363216627308654354671939925673454348710130130814047587716827226249374925723891693820100757641781354936962014651494703257112249194075431440753386018886320747885308392207916775061356527447596486292731135727402536741541142551807430869403481670592467325071803033083564189288339289562632200643762339839184717078186432586833351227807805460212638275911152833091977542971638560672269372848977202122031631894891978212561674100629611191410366753640549043628415143349413340314992047040704714046597842463446485458618458511395220136600638060122532396838117220257437011161970943611007425824811816776852169598009351324368515566839621052546392329440066917842926721378931565207769127757201471139779162597067858595818731745378307512630768874640010365252454397297093683911449367504688825240007095177547806350643154505664657838068646438673227763341896697523704452031739213639026599252988042446065048516841416515436703378542618022755618512925647168468020702926353356428357466722339629601550413015136673077518971814673777719563534556502320452707002512399468044569164404588864557006433357360555232956543363989190785052125605334277098263979772327660179395529155328083061056631621132849092303404251483773044643467885328112358865788138373864482018361421129714039288850522339455864074401713417598134620664590388977015288556504588589191327988483083916065172472269700817703490450430836946614222067003843089314661441195416535716808434382396276143600674190772998136258384312295377822868217467874802602926330272213321796648472553887181102376840568411619927570326221707658561988393512205239049173131393444308808552420437052308876220507472281638382149971174955727137018120867671953346531778661244764254087531173377074634301987968305896180629522966534428903461787233173292840212398548053236360350115506589026430798497288931754765376641443257953981893804389183490726119862159960980722234756309982471758633384030779874057192763278615258048806435482468826907911935047351661489719844188100108667841679979223349782173671942922017540495980676906412628232619696892429146562732446411534143731133733882782447183188617741944732727281272552050250946148394595673189472830066498040535392320357614734689108323832333947207941953001241718558043424594408678603982475269641819212943515760294623742086880588109716290688538840042442842158722422338819125131501723046725849998450183132532998609239124009109623740153820361605093528856138193643516404061089286657455988871893746065929304232665974345050266136157190219448943085108687984096416521294091727300731911905527062132273429100413933884406761549351967801111665557244641897960618854127772766789102719210139375630471335093190178642232938460265254135280395216442723763924773920678097299034503302471311940444413578822184873847387748282449314662773021073141328694291866809687013282292485504659020380402319333273614667577325601003051827770191319988657942156624617658751787494709969389462229738325564243135549152427339277357294253034540442687281021753285113899120766563543321871607351024626846661640212178518936868952790563548208989278207453502869562010692665422253402421665574897863251322581453785507497584134381508858402235489290020904946812184437940940442225415381769861781420354604279373616747086049401787233742263136334736677732639345312794679289792376750628788630784684642751348148055592563322343943721171396000446147967148787842410598672602078743635011821943192874663658506407509465172239925004933707798625443635573181523882789224539546660179525279552568104819479013124262809531703063805745280889079054001168467104909473364875310875476559691344107806646211355052710848781311645598607925768006381252129918104895688298410312218621589427841673483834351615927408378102754462864208144186107006634200728793106001805619657246085561885413717055831591635144264559335944551239242235184461186513485035635244970697596475883121086945348811528488555068441118574267344343804014783108284547312590971309028722447433152733160950125884137516288704780558415899674010100540295395466501119059715912027224424525722376661032883424083934480763686712364016732793173627399037757348568084327122158464990632022134534898509936067909557398121109537406356174352628696200314999597595438200894300970656057385014107055445356399520779877417420245560153782926777306249704176166154503711699600116006553541293281843158378347396822500223826507310338239843595377392438998889297313131078046721134484165780667271141472308185770063571145452779922397166511578564787994339153707400708452459579631406496102074210777460556937453123979877989295815749062342266885811793954698929914058224586062438356225612118382609557905025795131056759142835024687481301555629863838393157691170368700287258368633052490557438531800331976536041925562806021707963754758185615156349426285549290115346276676684761186070477870660539733542237296429749086304693681757216353154368880669830596809253188729679287261989620463159837008994916685393485844991433424011510296595261594351698600111841898855000458141167595207839786370845567344391705336347906558323476881799572826815566704883059308896448663310440559704913194562221782497515446081455567826760009184626592422224763614218522833730206079072070970622007342014866440033943391582012248213892582392802776439419063180172498200696724843321569503792966268714499525136748424476776581383106219454878035798704289136688462110937642722141365995709949146456516871447068612070126874606300632025600797330083065721504939721841750890679624251588313428006309618093735971867457511043620754112494728241941601744841097358564326460930834301639514335802627594765408611015297191795953551131909649235767547659036338820773463217628432508349301501118044553946456178867995620890750916758204124794849089803243451630147892437822766182041148019048732361302588493224731190291039707184619342726949565158284122976993382841302285018895411241325523786371171603134025157712730992463145347585501609106202787463149874129719720169669963016225996093519991427011578650330586757444604729413394535514311200282473496407601364448700365518797355072163626471328312909949807868454616368250485904822411725849425129812630033930946066244628470743170362563000641673212115805652814576296417979124230159401469883704345092124678256321650225967862509803431892453239393223523563706075915431025679913214124318856237221803550640671578856269532469228379782673303139849297186867872201823863946440691175926160828158022871348052899978496891126404176655633818809111376663740762359989874556597072384479616230113540350903683781546988191605503795695459152030536223454974694014333494139981815939634328521414276756435332501062309679213265354568074132240500105142693112809102301440170076843506268971393008415063153601781970144314440177948656974136944938004883576298348760991138011386580841682979616717738031602948360975293516549514304184118880145192585145219888784271007752162018843348108971782106271799167817389704613132620991014630634561593967430948861099887874013388858465743705636721155916194312335646322754189197254529153850964615340469515018249461278201590810282533102124069140927735321669701497890800449489652263048620129064742571514696688048384698984289094183188929694700458383275826897716726423050323317309640893449327811336038017395019707439734834822811727602596969110332932683119600125522639299709506120783977656316285704043910092033656547362055176043626108891708343766689487781168030892166405042810599035534915762512064374620428666409782384935097553554471398057412454354389839434901610716725464638238245847049937104600974269116107589548543879245075821086890062085661050294150388758318415808413294538607347853710887873154991847101915455802755050192382488977891800840336739797815937320809240612994114044623363608541388136570197959965875374325012981645524455888658488967310091274376826974527716990219106467059530051304180619251515041431473155145402819682512802801777447440826334167153169801897657940727755440419297971414563224197840600411807284064867792045538767464079200068811196961068711183206402773026138536735642538965036830110190554477800413195325426488307343849894076272981319887350709869826636880076416290953915195592025556090560746142071949220698010293759705181514769507055332808551310568108855522044225268306881285323310512049154177079187465094264779830288371291252011679152990957950347637553942432509669757777209753267753574615908776324999506021626789458110954164482337357129588792884324058938131389301548295602772583279619634695025708717233980568056577794954155618500937600941686566492691010228765860364844086068614004158912711491802833910958607095748674158276717173306550107601141125868521611644889416416095347764064631544318128401218958810211385628521745973129022403781302035988098496356976425066177027207900087241752529231514053854511205531317037506605648422184359129920214581671275054412239379931254187740447887067097091920921860782903974703879273506969832965004296067898759605537801635779329562376224840193178935158580838921894387910865250504192100653889004924525587427117719955618786346556415985488415689265607072529703483204841666155873609328263623301571544975864605669461067862946171111396252217358572333569177884074826166040897733589454165763690163865354995582037047726817384620203404253224282716847468292189876526388464512243263356947658020869213814445193695492803677797260234264652467949828588383348566537082000474500356934503902024239536334803690729065977303460898579719857349894311452067835753707546862577349323673645525083321107537289750092530058614274913207332952171464789055805595692172455339997641034702885929840433733791439834075343093600227911725030545345136980449615607693744000280884251191067213946526216115333725513758585703452674324159667330548239632666838893102442555938163335782112873911174873346581538849483593396127771690528861422982735969051056857418760675947371145385623785797654404323479087696969907005605107643306597470783225324271079742044537502859768167364356513439440419645462253575163612450072625566429452902557989107258318641723212508166789012540796203898460207418199376985688235417457503838849661915342813330267362987118991241496757336492083352206593418699037023187245108139703096821650761318180905699645894549885793876339613356190653912662784133248035765899187535239422540000409892804940276993387800756532703932653714027621265771978639078703466287729412419166060120067334665607196060387812467855637890748714790899923234279740187037682759628048549139161150716555678622529666237121173750968533866467160557728504657644698863465893525059020511786742905093270778305887191526898363152238826124435202524230267138679186545743377195101094775032148788792179496852021459683395309492051523120548047658593123701172398122133250574146055634031381066709713332894323005930547104681484531089759390545613850112842136896478158371570865368221833398518859828466225928695134229011459171949275985502666019558684826905267769379467756390215310731939142602760735209944182050644724079463454914978964637143594123192191241847376930784948978041817530464301024406760593890706451203479758747339286403484953297762263274321910748894304226026424818572512503287432507536029776324378289981928414835616958149421676492214223579770954891753166358315568869562120638714207958612757449917391594185623104568081275620346138267396583486355759924015684740384552295544721395429119255963593794408766840301824459554339173049014357614731421183890860750944431943783198897683762713153182779307171464852953000888569674620672732580977042460450478524149889195377247675939381974032310844791991380857504179398264096642093377995801104383204542333299467822612382052057094876967436539520122055350770396957066024263590117118362662078771205592808997345673120957751195464580118019140712785824967787186904150078121246192479851312750593859137697377336264414876276621099647426758072784228844402710731197858553060718827942978348134053109013059788623453109919658871516649790704079983780954097199705629258870118753016089473300183838600575169257745429483542987141041027645002290362538901614503290364929877425810777949155316333930917481064292874671950703174275584776819794201681188480093938727411830694734633267640224424543222238480445273759378436720678035988560042712590057271469805274357403927892876581070920714333793388474888545787753812136801070906060807300974934788330094380082964165601899266996936866124604886264471768056000956177896096346479969161265898921787842869456066148540290408900213827354588321803960698935945643790615665172074790155787178723955105028154510520715797211297558235171649571336184920066806687819585885869121896107007821209834613193453906251853334172187118489057603970220608777019235346115712296624752804312993581477317119907864325291723451103412565724809716050099628343057203361634668908695338196689921891953615998419239581723666772943304984029584225129580120905401200294763241710533771685585804999667439825657006203669661442621730938570391928642645392761440621882287763777724844020696231016917521017992411239264815351482536910718984830892864601194775750025358399404471591852811104100377168745778259829854995682444830189518616622476472972481871837380022147616417403150333657921209052392104427750251957263155471691335884028241645525590811852161113747154957506888565749587307961200764289674998038075385901436101768495678410428192617163872679336364810176450486721268063403903963708232545790663337319325811819127495847954305935726793530377234129545480617668129314066237244319449751842662120649777180425642942480149934146620611112867544035545520135213267649296265278252822876272467144039445003388746916199234176409574373095758814895433954325268489229434383873830195894533600676725002421786061589691968644661445819059041371627612409120299842206199264666147306693160224505472528093695958567947161199453434543541529793587717935790754363246511407759041826154077523549342029326746494433663830285116083939091798863015634457689100054181446337242512339908957626177724206959253685391821074011467687408794143204896709439592688498932856337134442004358484933699922495362029866241931855376305212119964805492503764173016158872292982193634480717839674165481329226675632628897900665981036545692675307304004438986908769893591339173809687351416094061059473345585286643946958958920926210440268909475004519890461209064254572821560241727363981396433958804195369511750885120503180070645484767124746890833847923298420805367246923018877412076670881801745170413162756374444755093347610815008367153414202982741025253286971266102922579356615928673385990909381516786892290948670846893570841312750419786615570251276239059738621314382236573191719075999781617270138231434034109130583750419903467284867472086034277623735979490109776486603052211747216170275215999633138447832433028480633149583295244452322260135189351538918496885825158130786705026488918052518708510648428330737733240980100690211328173673291365918660843790414077538547372963209858993198851141673955887660846237360192169845982731751127194578702705861820111924876692624981523044307508044476058896707194633676398548311550467119430036198949921114632354112490987357939277839554317034605266412027846842732644050368775021368395557179136324584133058055434928314077255412560359386139500116825691707942511777612271431058920779507699967834895589717709889543139237088775519128057756311655704284856430594519583057794649352883417741939599050928232653970503487852474674829951372321160120607036245651801261628476662110891605718948301567053503400052024203814159511017197438631646643008911389838744553773064840931122635167354060148713421003530768462020619607905799634961517475535136560668797830096986806576111336425967009726184149639559517360129239001618185098114622288457127345240588554146489500603824511622352145709730228788461364059641846607447745409926289660746031705112599794915295365011727240915915584746273356011054481878144169998495121548746693640115420387568600924721606795343011660272377710031229365315929964777295039893973629063023213222892852444714414804762373192570183468111882997921210517327806776585621886801618068998199932062204900259534933553885053176025589941217200221641619156946107696797827262875453907028817149174595842543508049170674782145881703953449380234442201448635321070340157659067356803945431608950580023961128503078975418285133118309966584637927312330362641280641998793653267869267246245259190581929032285767586536102187747213807363030447430541041440036740355513056912872234429276936442603201374316456971584027450904645688452593895446371115352218031003886500088835690502024775306085623981577268027991442815495857446377815893656218132208640872956875899753841790392876683940161193681716048231487724887642112976472565159376653893778538940393877808830863818054253757018308635238033045001914674182100369854493531114364459850512197038270711082365628939416137792097332165428719994326403516656310397956214875789216263883044076870628553037574908407625090453904863533627495904251129132122615390311706899588293744644179866130597166356505535769525552865067035556354239979678261855803621003993464106216091369197341778503860506625639856652242845353435912220983648817845237179429084675230261099185731275887259352739478314883895212029497680870757043729473198851711267498927829488461663127637511274015292869139702978895986397537218333836041214140925831126809580552911771673281125870544333072945224649601225042398047168885921287867176356971601845939308755432217639793244592199473165493349666739753023981207865701114901637565690867454123643784421722252986116063188449453673871010859750719537034878190509906827377295878538084472353095741796405387685210104447782953292904488895095870756339631608384038663516014290966635414342845931529165834513024046751635916847316307285959482192176011713002614858178892077205621978141789372596651700549507422723332949228323532509918116029706497346489528534667526420278570829763172990955444809416127739918517977265155541448916152831447669107606674673283508174608068251168364307520120175016698289492560019788603097281312063056262199422477577158306592999713591400072066838273513139103874343974106489747301021661331741895649464239694677957234095693006662749870515701239413512363231569250152212735422693002348436840781926260383537402910772456214607889679268482317068320810031034918940253309468137793065547193208548232380072403929028224118168727049839952613073901700424610010864236953285546323493810260530037631022559280146424572827346492018410309532137614986329027087162480288777611767029729311074690909747023384422356218908122109344173447376401776023787477066276320208494473814049165700826121715394542405785348720293987671997716467817016587231794719247638356979561923438825295632154537181608412633295340843215481419651680315181336077590644730269294079385029906097118625107385894262898117069399142478696251600165338815447488272699089606578990228853223130413390959467944941287315760238152222428082698062266390216561545891139729668985193147675933977511686832317684787551668475358112595743632851979366463756358038558252127001522688944553304048252985773034957331936958382985314098829273814819059426627371673373109652795762862796902754709583067271084760210299290861006520619406430083427877184589173041826314426352774608011440948592773326656914078231857544275102875519791591731653985600817696403710347392298558282355665233361612318405766803250223364116766063791399955531266850921163711496133017735800751477781645163469865212825833037419526564786322035768566345890014846924644905163615436652194518556596540043221806072771759594347629756899885926653316150197735380780104685080868999252604060663947505757054126798751477062557233152329709989683099843136693661981446396347480998186487078711338621942898639714518757317354493209703713609420582598949212905468439784614526071516944841561665687361532785104129565824054494898334002776421041204396875852045315650325529700277534613393047221345422152202330705409811238908108454317269307453793362370852075229459540036201308323891660285348499465292170103616430775686222462963562076478473686403471054661620101503123146443170928500017922958950963550961922847645007929464223535441327233337063335443938605429443845909547037487439466767330784781896022175553945339817737885775838136057043314578499092095828414487877206014565887604704991457726305102561865387089471161105322520528253791987126565078041470118019728540002735200031374005569620205544373787575820092875124238498559392913183226805380361806070298529361981423297203782160185001508119918362668532741908592263838792930547902959477133119058514175640407130760798669825760233178881696058641879513815529401895703608600315293412240691445114502682404838948649080096625776899724194608463689936340673179902507742670864561742544036232289742966173285251124630161702994212238071803050806778208862914842946729861261127869461455083362861986861191061167658402493718734999885860186524812278482678905620454254856739031979326573119513595806404294163142675611621183191092977295398371644727038605223622952168020358167216106891545312640219610440512785250611851852152434887729409263777170054620878454093962629211211691521088788891294405048463736436339827770444437637013709025252704618494840452602698665716284085943996223044602048876791913747152084461592162836238775997455909943266861556597736723315396270760981160482799441732867519029843683873474322665489952857916588625745788471077232549466181417481673145481298795286115513100607608235616002332804273418776408705886179915243642647850233947702444237784419031973692804879269754046217500260958737996655443026506542646882919615091235480678900498692836028558537348944891207117853048966642358023193622015194131674497506523420572248895478393116697107893433542479997926729885994659319643960426882612599345434594180435010801832842620992564002577151277940361159587187257697479249142339970368622783267782995521691383086736491769993216664068701193980087820459405224834096023908944210061918402066812134746099486812723359945836945142672619746570004267401463296395892240832500388649968770025334189067783083394730253046267883354165527706778929259648189269253054209757931824056943276523687325796589556146686419861207217584245494712095895236213007370155328756568146336751313413188757972238862258290663199654766038688074324575826089140133160582123660412687568186349830268115630028048742664748123373905755575401271564281048616404444943774689188144115804882096685825839852992864657291282979457882467066497261909538539778477306123303540375922576268071459729903202377190780170395600051050018880452971166996453038471514952222223310150689044210450317953529559403420779888900189167317049470491317353109526806682275528267039701446700881612342094549001325007743157171425980914004191109913009959208128634128222309804107684137896097798012193538411479184209455608859155322206476366601364506011718759861591915015563843384888656708972114675590408050358944504356423702195931826815899766205069239918540417626668354763771251013833475192116403132459779723031091546505396435501385709150627776355893080452287985650818270080107590285749756533550138810319103469957569698439631268285864915133826418597544113404549930470128308472228007162079259927765203479083716383253982180204114811312780120253096524712624264007427427642808383795434948551553328664582481012425849529962544348873573221685018686155090018750142638440729599326285166674108708503851745902286758888342209209890701622296030175945367962503415680352993345944365606436962399913145965082782040774454425337784222063881110905004422914483545408094711544826367179500042262833214801248459334119538377586006093028878981061206399255162529260761690135380914325311053167555682681564579339221324601233186365199015040783306508723154308929296585320629728582936929001307470789048520577608385306428881387743301230098935746015992086343021086467146080317220442938299847102441865677847304704305171004362375581996815054104846318636884372125730782784657414432610774171364044225978743706537760988907806795740594135208409347815577999599360197831672876659865406271225932029387506942335782419047481838615366647206099827826177609796913370383103772812430995278992834216407478588261137421458747960658229710597555801264052846048946777807934001572437617742095769518734047293500711320171047894541266861560491914745958996698918827626376659953691668951732098105948864999864379393180449655589469991209886410193706747679627084956541773526801046346718411505748421659425860447809634214354821155440963571720785152166350666896553479216761580855858156591029138858344936178408878262769101252530685928865909547595861331886362143178102349572946644924526376862925973609559291389857743279756641766988075144198635691839273773404938945773475661381540192761879373351618254447093473493822326700229189251704798152306665277744578694671674470712484870855598266495639902423720754103783009478415588079823826905203744550681259747242456282590137003811313438311751157505192549844318065678952128757232835624981240500874051887307320186820753719821125575822189144396363817642663325383831418489441426926557164801703800770078092631429858226422221460595409410210099417482797539031943009207121822973001105184219025007307294607050043537433338872307229948989162853200912978326689172220551247884533230970529284609122142377779763789930418997407163425694456202631976329935573753174245577774623007938715793921219341566392273170958491760391435896713903828443389027127345063339938208048263717165573349584311806045072764597948445723495120729780815592815681853267041321700341925615912580265313870419867506867266762549225152092304291575191597406266599320450273576126496258532551137689838507885623431716061025303271418178193190878326428828661624402854848592173500534630080777342834645203401944635283227651750594743184080740083340473561152325866097328327471789295723873819745501324278581832269637616338499589023087227507763229526575523761084198725739984061449171013476031200653420041056125662495281248237308630440132283753391654516390607700382810221859077317428531759092578079610357367234359245340389440304383829578812420648087337821451629181442302782503490033211450000626673830031281937326196941125473259578623319716913189056449569669258843448573810593806413861397316434486552957726265376874521570273650593425718413978940214873236362876278840996736662198778896850185273420701141574039076284971874942719710966279669003354060450502520141376901269430546860868187813454477602028737937746461104916543936447034852797311995196620267067450770997504895658863578253325128798682317860506599728790576551022773375205744172328423142051809405633131107263727894300946799558345732606232372808804964956901193684382027774248523006976740255259285761603346386188990648629163251836660262235866880263989211927440226340706862513663945305626196632392217897777299178117104490130572350327477146122739945697490348459868537251798219711422144838829963394126111967506313313626915025539937239022239819075090913994086843792711993252455215217899101456081270061976398830783653741735290034970887860342529846068366907573809507659512534474284248853422344741387752014487830900207093856450908287825245704476526482713884264255519356917670321823210443640781764526193543620858994252124657166332269717863727253479908738149777769615484484742985722689259532018276068967025415585590368646423153544269557113965760588506355350665650122290215187232629514398468680992918111850381853931186322853154612777184494519424743717153571747660037622025142882255907646825909974821835234479098995076953736206260008140557085232787184985317929702957811682150793763015686682477150124700154975596267835816278710059930205891897361356552169119146823707289200474334048616329175015381073550797790878317717512863988897794951516190553954544433355419120411748815128781651453510305461081313994794388566501814263644462802073840529409543145255074944829687073086768143306589082392922831378884380705756422802792635628733398131886799192493071898160946657495102895944082811654716826892704670065324228558124193391803354220012902538381481591646852269474076396197646258068004688828112659275550288762085523089060918246578757229067601556810156172153244296031429905952798007278522119981832062904262422765215322479316345358035054241504145257587969858545709680985834422973553779609078567447954063456591538739112299870549893032309664012217332326165875947062197482960831910198445146835913606415788617027221156700880831873428484159789020628672146131007045761895365373081092608223755510311623603452059535492068155822836119092548614466563425264112606188579998210526903076172217259216064675409985958864696711207949416685791657556205965177780558540995137082060494289998908853276615148651768983307322330381503942356652607197262492158065173411202756650339066100451148391008461831920164775888189917397104188030784523509669274539587566797909572503097421300436046731921682695876997926730093871035317451813883325645358481158692151986140482533118356356757718735273664615154811184592496451520880038683377149952285443831101457502654054964788661281269034045644506933736404053120871463414111736239064677838392937384514821872343466537049490732775099250763583824159210423813641130681208322582934113872779646047600791999179921440056571537270222766938810303643614110634504212555690347400851638305848062528308059245042604800783113620755052028381081991067216298409113836340411110374192452808355897312893024809703641861445034868594553523582161735720254663580472046850895338391293588220405116581624730756072276842986370526274247167262901202426442932389686847387804691092960427585815437094485638053659026946212620289197024287771757706964710490984743733275532739164055708067305778649114018701795426461783892821578827469849002518193769277695583690573772248620898649494855548697597785181524514841614142092189442814507561538896711279075207161906394714114327241625509479235577174309301811181982985519368722120712800086936284930671799713622494148711530515015901740766748986358257890493397091697224968205959889989593638502001115414935087394125391110750420365867950722399534610958344344424825394346598736798034906377433426484750319399530026922866129848594200274708336828192193498252444071213131912746001118985184174269189563662151432509761222780395495665201674303342841661739592457346432842252637639793275171478383925054061491182626945367867264560181551092500447529705979261502328971085966166597795239398531732490583553004959622779613892707223548057047643715765439757903069369823309052287457143309457245532488122570377877083939100947420025275322162220795804857928203438347613298075338801480993793269921058320086819908483836424013566713369095352584961352706421842658978522958496961022878504711435517578331561117873540176512619173014268582058235421133535865123050913815218413286436864564925604477590244719011978764749729451208158435702556023289425536639823426521515630259053416495449376056514909381958157435326515838351905094388140531159939790461554912161235285996197207867930906129865224862391127800516618702399042875986440630209313141780546847119084882303724571478555723497962273547897761610175742626993157559213906453993396134026595232571324684179989915418975431113259616963505783339633227123793139745319001283563613568321146510024402402115041010944910453981425579530121150525140299192974738938294179523628124194486799793202422508886066098096670804024905701670082273473383011216668046030554940859987628637193408461515502912871105280095705314256915003824245169865936780871841599083450869106431533555135015810996345334911166705632547877819885603413344738082268231183926289321112228929127192200060908925352880469191937071448743963159411978509085271219473828855717479451323490435311816988000999314655745640644119623686376813505128968821194072049796327732777245683825615770742677035595352096896704188028813351659529416941206960875195935323330234213513080331893974719834902724535821496503436642499037347124996003649375523270431742362878150559149798245807709183492968455104958551251461842047594342740871875375226047151979248875101444443836359056088545805289216108654507774559100314725192158514375681355084917627061505782385661188991063097456125622995344711181327008916348815610248795766423766666603031421299187259920333838693271893628657281411182878628760294760120923241764093468863267694406707841911898040323273049155563640903026932463269718379148796423608523935778890340512418675758994343033166406288821143529332802167314916639666951966907983492077626299810134512300299270219291356240937589056199923504177555658854447985083452397430617723924357136645377316687803727585425607977098975278419763672606569593544029547210614374431415168250907216206924722798126138180001685056919951606955941129644353221004818247663227946438260269281262495999010107529192306886459256093345073308803561191105301980996396286097788608026474102131172948190074787431942818570371994170417901429177324235295815761135122497124752377446777449819677442914854528530841857355755519897543648793761562033524430352112044730268612137517395580065487632192076961879429339390270452848872052885482328672417821516504990687405771478477903679493721887835906551069404892246495589496656725347465329599249393039855747503756984516288053571112883751735804020104960634268394296720838793142617822789798278829501003614931371426160282604968078007334099909458818619612976232624276955609019407266371587150869807888161109648069403099315862118937424177219997006321520238748124988037384996029212225961342740375399275077176806740760923925652951792136278882533875454347263071062474928601156071536167297497876892504173867183728639457103613980204335184092113278344303126688213234764861558543057130486508906891148384403535960370451302436642876814959625630981256050146933012149999039574368002743473949368650807216134146024560653532715943483344707966199740488421552480857673007510261826922924367738839013704862649895257216617710359480208294395320440217946703695854140224669945164005022812081088766197584642094500713978251321610468166509388699124589931630410604093119220329518365800610920043501017845897629651782104333888557323678508951267858414491514650010717585793380422356595365159850614996160263561299318416616528197535242094550898726790545251541342942535045114020807737235874876200742100554180177157803391805020078976880755455720282066147912268791405234759064246942171550444026757174942975826073304101485787370281188451019919978163165120926481104843569287652921571542466767269171939129750127319597322181964745785011443132636744917350232796886978367770618653758292609028430438300025181028281625464032406427172445576404810930699603989156166872654201383434201753975293831593687632710254566007871465261777210436933412024922068000181687475324529154602180480295206592196817303077626424128128101290329033520817358661047950491786787957956742368033363364369482206023065997815180618136109091132630131541543715296627628328550260508043712323011181915350249516806835674139223192027606435997309139145022013568888502304517544902624815082619621514771611661534994808939751579173288988791153220923971964970179692391541339295785162172200772252680182459913394935342244068521508639796644276510790014020259240720741119924151639157134528873310768860506662348964177873146776010784167065334294320990356678853303835019606879146211215605867302308253528411781498343519633828980625942208708611949942129865987899138496541695203665838405503413182417300478908593815332673760773040529299225989811824119422376432514671984822747097604332039054989342677044881648962574199946971088522590196800027436412216532669768861291348098886436970482757910225657328979101973831774237171992795354358534067256691866757367316576809762794888576636629982060474254074274544989108870275125249859418951624960702130099679525758089127180688606209623970568360175159878153444653126969060463452680928668272918495833184023420313381792614989669156786482823841952439558287342023399385835896642279408830446893766308013278751031148596384344391317774741934087612534069487599983527061796556768599613174192228291988859974041600127389528534508726470668069319628328151341400756276269855055861650657686195406460572782938778590153081576703776127411017910899085848525496274039688579065983561778735982812647706544203702083517649301967132618939468253374752458424576196511614789353620771463004294213128868315707531092149093407862371785954472010815289302699262613287790063563841282981261872898834798217948679637014766651746473720900265797811697763756287257177992116907330670317147630515336097665614387439386224548213136269532048210018215449214906597114643583116577636896759397866878081027077999581064210644272515121753425132497591805324762835730052126466179324434491608925159301146218407110058275344964246556339303846134068358090828585896540745200057461095120005453720395183515615552802386357416408585663471580996955085004055082614243471386614120470651849759316583487923237857410001260191626187672853012936408877645367511197681629191280476269393358235697869330903937680117794357912318016692282527643232796863366831769565610458043882641854193748561964358540958316159690973436357193544023656769604093697894889718008673252984371219622013897289909425801831717615753089366492489625894927122915420444632717961901178080630490556253170813012024073121236693929758771094717364560277583011245681118482936158421552000442171256328627009660480780322825411218617623790418090549334287379811728439053567994289319358838067300973523381338632103319762543194640435952225036909319141615141828287102769574821219646559455906589274191474517125033135115862009855136977449228944052274927184574492544568780486421517865465685960351093602001707196597327677236051461831215505346713948894763889246586729809726990499097886554195756010699674888315122171136822248949952042326129260022187036654588291542025228426376520505760767468457885964288273336488681416497324868842590097665626912156593610417906543712210653144616908352051928642829819678795157288091444463816759199714496761827145772215593609346037605428146085330504127471586331500751255720413442219114708518147875830117802660228607107510541700508130720145344848297833754973642492129696212882649480122385354987269960932230525922252241800623330534883202727407208023784836422783102169077784756690588789682497342893935528680870942506011912683266177566896084725145871312169863598531636713665705234251880204738146855993742531045471188879982751434395071678271477881577324257091209112169887264963833322477169129057071204242467006834754352518789418144177204431682648421056570220238607184985343888478828722198940332738963378877501771010810094223287181164707791209790722337719302406793095359616743890522061453949669747416550523811974426456588521719548236630863040457089352330363141535351724232498448978145095626631921370133868617156517388547936151928120038217838650920178409325504648341572094211458935340144785721023558415368874597757804509168485217809303392710164206349094558800555314705245357564743890110719986051452198766740905625543189092107134106287118970638049189561501911023394317242086251381381238767249197386953786593300515428249168971470975460360221550214984050443209253288849518706966710906519362333906164598019516152373906723483517676549996625484985661819231373519041848798043312832238854539922363534611106782500181213903576042660709765023084036212002720860230442490532478330053639965719288909188542248455996355303421224252497654287208753014666780930543737486657260235729669255866683836111918327881712921054626646829892993683555687578622447463918232809549516496922017396203911431161079841334445160389258379117208221428418400387885202718336930527139721828168274940356345660037686574362507733488273596614857341739048753465288031880397159374300400775073612360219992218861012310577621017316941016122915588919885471096852215359078177713024273837677100922191911053984889123162954439709959670345145681096178005406711688941877619949690992868068229618479418629319274799864369887824437792319293703208105776349202383273467715005013295636220698234381633018687747394162876059623072165124402326921205763964603371805947793914582007375154749924294271988989586701767264321421234342362832696328723137618974366190989377060847064307362940922097851997372327863839501402352800974357003166893933897564847559998935743168747038478569497102903450794215339343123008935403064804155058236233701696964013138281186889754527349212219313501463038131103968871375694672747379973463123868038331997925346679837476932015189610060461820133201178208491459566989277845483470584297062540249665785459506050511367602323433758896622269296326662483634530610119740594811477018402481523575322940375436372702808296679170131720945189965692907472025921474476344545737645887170549081807701467814847196765641816258130491901734118904740610014867067669382516818392226612345657237089885390296832749238898123537768671609823150016198828419528015782858632145711350918528995784260612165237669913757708120213420821135282841829935020928259868163090571414745739380354644362498458617176569704243424598731391851127551181935366599317717284482072164940280126691173358078566683535760948344876955603145185040234202268083820903948327095460919900550165065995191055794814066388258906977115727366193543593641734993068951085527337937697224319362238904841502155651846867601200735646130775338553847886889807784470690887475928171150320458831660261808562142443867738777125226797873965274814658519832304379578199467147623467198594481811453059769400663119727333162720380210670968965312808971710799691566084028359803251912083838529655671771613950659970257807386476506180197328154312824825572831127292916417410835292429519620909128850844316249276117444053086333252286921182906041651533378381001748794969232466000254717062423616363348040807644563669116145591195299598734173615550874646594027149484913584959823964407849753086488147694599604980870996439316612574212745749083381849068722471413359062918096236840851931119009307552191356719999167655250440995362869759465946300958712043451023209228144471855228890602773200276566742254914682368303577168947252692616386224143330310934262226513479085373733538135615313788355325478423695121258338506945334927410540928512314400586309229411692077537162718968698688826176616745008906168829960426424316890857723232397566903680817899770640247303067271105459990481396909623658310091310555965005761217522158477978323566925700288473356154536244835250699735700786869390246788255392289063875608850934245986071563717353836851357817077335166392876595247393561195871318344190064545800126221234175194546513031500697910938365511283187952975370309405097588310177288099976871747229703914051710489332549194366605395026573302800537705879437547529445501791179185123585168680605048663332613946461002378904489315146882441561140917326963128353117581255442860941634634155277461247340701922795798905360540287507378082319858710434021330631004749856249094025930338183617542193764665542562046000822079096620886185750130072018750040402436363042421126454044609697560780678216827477940141302511332666530355186643385740805235039371402608621325845085039899357742863955906797583752496044918820307643378396566320311026990642502255114576401414207920752466452263672664297673199165174863252033079823837908426789397697212110158623287570619516796907417053573325468026390308208154733457034082203366091001748768809593232161869930461689038554771242755894673796264679083693764034454235576111998924957576859258081308929648443060637020586602306376505219714367679319115647998349276939861481625699994519391511758867017469018831793716844134195179394923255817446300566867024092229076852947122997688176006845221164737783086763903801003808973561776806881718969792978956956866491306013244521251705165023993509809788303968122698422149747962631009213191843547632426688276451254248259584299316668415201086595003872657053670797478889755636930304870581619057794481502171147249790574480118770438654663960230688634596798464565067179402665656568544686362949217901097630060885161677249912831933222243525559376239418789331921119706372791790677125380044630544720139213573910737737873687947410733218451198612391624161303123737159516503852618000126100741446182965712178494052003880593905101186101071340479700942843741594370344436749626076436446030870534635619346027707314773301043695116894232793788095156803508786149522486928663910711266566707414876462379484955372063680976198802112881120194152142064472221263428658240851487465116412157389914092344245304556318837154109037221037690635880408638105493987278443976409695098120795975338378820934696913537563704179894584229424434214658944487310515379312696586311020230915142831086342132397472608121425054206372481640236891984258577227514787457168587891778801337953120179156873709237905539891950503628282232763783707093792967848553682845678766948270692187799127159681485033934434523329956264875151590172032068654930777329683468509851407699974543092041487915405970661106680994517808640134468779707097703439718571159529390636414855249440275443494821357852550023811115688751871002601737928411437548522518772005496433014205287340163015391358043649326186430825623227073756448579203785346990595446794925476430756832906284820254018761414472711419073386835316906880021164518775945923229335826347352418501929330648004521638802109718396631394715164008359282877355737094791424958906128232095282716852598563199976863149663454531005095142654648856741973413992745128230452210858513037607702753615293512470837019021396937032900630683295855875156964154941968055167838148236884681425040568673939417707407644365996782282629188628255874717549903541372555328868865569362048182277550637205405208895560530800400722337842387708440551859804632693895510255561646862124969213657889653902963110936920107361178393613486745315708927222016671559457397399175858831647979744516100442560563061415949057581702067455367082763456737853941789357917074612789302289242632321275216308323948739375282889790900014955887335268336345015964270230052333292247718169877586244796627581462761956249138015074591307406808212680152592468918802700867629864390968646862276903542552315881099012231715819630680314738428424046936743587851514334321596953915269885892269522700834465110793242898158401798650737823904167549657696632624728233265655624300976845067220364917982520529325038392642474515103941524002651857729383211634186542124169424345429615971495272088297889962546289052842377832317660533501699003786325002226294909273102678172052725555388120071811184335853033926193812216949297048599439852501991127457124941360669047715479526980585031350170516359738886901191440546778680559993027490980019699421313495738775995473378858902965310550633073190145647653848134670631071721046197568413522916101339817812676681725109089200120253077691951851115299764024610468863101864620754009028200351586357915249979004367172981015034608451438911634623203662568733229362106477528267347544907381815832446647933976717227869772809583010863860413872305428534349455376793574179557065640638324598769310835579006178408034080682401487392834255753971345358532723027973762515221914373576768395589863391100735068413147130135103206469709635474901025928988860013183691427243905553495980314837840860008579807604254297517576370824596901701044403162461786230985004696851671400934833514111361416829690212810528829510820462484590259559848387747571847609936866831148815811063526529837996874522608761068883071237129748279894237761781114540494547456528050410726707121837122906266768943776712059930768016915908734019833642160363758864891394153733079864770445086641910366546335752512877943574367689121282550774881591086877033977848018789741017426417746062319885069708688518653378454619999075060450292741868676372739039637559729786968909088898920972594350192596273266781234215745783870450985337699774216038087057969420006585660918486179391638296921349261038940990015212575420528185327919988186318259829844401623949435789678096153703580445520093760596337856866766286818120386632538208557442638140749916413100149714359976060816028945231110841769405386532980551896829311388845905934558628164774851799345606768220540935494454345859415462891559866923231670087165696602612586603065819937536138232447111513029997666104665865745950916305551277860854592351931483651411528873513061884050622424262546162855758814131668427303071568695978670163842683926579243309139232224778508663651516796302684113555454562120934605293259503414645721010301786496959060331799808667358040003557368042743345826347534085634537663059152462920423740626670522035806549604816972479074937845090288016461087371167104308192720829706276798843081031597247089182427585953389024868105394829075796485396871982849629043490471113439078547874765110233170221646430286414795572480030388972571851297753597731367196602806054152221871920181148992043489642097798615978797901732918631556604641477610942496675508126156831691167608438995255056767410025292746218467496655201220508825568949175672340448164702568481216348170618931319961715374979210222651728977263044796767835634062588496191657148869432873689631195180208192244925223447116546193789602155728026293250155479393812225467656402247255179995431594088020675663535260472763836599681193393451521193888307133564576648397849560790271415644403971310296271783944427431450156670883126617530599364710218230584283031347202180787292208281532097752004379880294544969969353508418361377788551603080026966891048151726031466104380057932045843262375721275432873119128504823580541278012484848556991264066895098860905470641250845386126314885511303589162605949548550525274911128346909325560184510928648990733171247117582270719282435724675028930252254419320659121125589843343091070001397868185006677057417362533965244559791281255284293741377660834291044812502732280076452554532138104349772711187102606985419583813351316976176527943276533088950450057662300269524024286990606452014464506870385247415580459552070292097842337034500360237050853711711096450727787336905032658714683000982500782898470728590312018904673695327164167900132892607904005881632435013737718617970838999131387424482511942397261714780962186434972894854877600431290654803200990989190318036286399134371091929284756306242191148477730988435617306243427514331045531440996676021468012227326305533203762024201458409243420384893191990659889432186760537982737767129181503752175878456581086340052709879307514273277289321688146179700306081875038722182140286545112852401301973053198204840551675170544178440953849856901388337424493049285447886744523112766160392520817597221411891962653749639750903675326996630918044677376259227388140640759300142123812333192829111048545287564773777470180743390356187083576481837696976380603568040981874780213135340529385982923545753616343294308004749388788479447240448212201437354684486624454384135426007480737397187088931449136331405186134501518332308592202385599956182832766481737406828024203969129291755958786804060778962466749635971066624937704804224986609167202780452739102002504007254615031113055814056360292671030734898862728855494852239430264337014168023931608053034263082203259794318391913297779269790870740947446792737577565208040835337114146774928654912436788452463133116504923020806831586124357044019051761697826148577244770693383062532579658785582015847172194820357724829842672769457561176043906243854351320092169595167637381009649785041182892765333756143094953766031099957741898341842461033228834132982379792884628468113254355740057852807503726428562870881826524746744573366994306375596134874783455709997447496836187098883810283728746433365871253461595207735833589471754862898568252847311514988703520291686905857960491380952991727664469467345543492108246240954467465291548329946166467443933599495618873613142445086367410046948302105346964663998865898430891267123541799113475858171123036398346179276042017865877157506402266068687157704425171095740951340311111404604342485537491419330615382073688376984546171244981908590439525789138711128105501942085308681244291054919324330385785851087598573323572496681940708194912446315365045267445914988823395253693965643772995199765616785689883780525496216890338426498026132952063128205564498467628521987004346326910886361079767533996108005715138332097288935664516132533368773528397931169083299400133960141800597796550913809603956056928273504394181374266401121750650414164503226465770708741684518838676794968946103458174542230705477812915611740284306632006204444036553279222265220593558896566063031267989259096340798538804277877704880326964900384444977403988099196975845351781175883303180943580520426996127200536342528686393265845075948540640723438373381530675573268671977593835683237510650768648916251396214066831622904987307419407149253145062395060277844884896215822885712039783605973430489389957510606423607356434040984048379769022219827868697505588794566767685721033976111228714131626544742417520646834987038293330294386854331047770271622259546567191043112032067949370530383614611239979021251890896301202767471783100221016632433580278963866852287600298917743436331237906815862285172138568952969224013990992424412741036292703238050899255698851836321170049221560572934584333943245847530086899396132480503221174089247468756283072895985740008830340452767414276889240992123242999195450146342921106765922749883615871809679095321203846706878796825866087922631484579567761852338301498381204623814022191541256548568334862439302326050868131240523677596919111003860282022966855613861151781448317715875254640068632605109505828377462619052795980391806527460170304064453013036850498686800828583850234040460949811179110623048308986806441250176743826814355315535934412958207463065679127637275525322870148700102012160943390195613451532673922665333397018788462126130566355556571037446980521959378643700671977280222286640717593526904506254648742053603698410434688862280668866072273190535757157859105441296187757431795435061993186142403122435294947970865382838554701750178590869224967155684805308040530164355905407544913002731513449288173044422386353295021897023433474958532639965346643112561218370035264126495831967186126825274534655566560415884307176451596932277925838759883575387113952775599716686975242379013351351240151380494329798381265831765672048252015878005146122521260352546632476142245066333431970797791508016449982550093053413938566127197747722872769032573004735036855402064792476270606799011040521537476327449780949440676193885763202241629709971664102277423922804226380896876465562628079591470901269438702145074726271779539903516376976044856616932693069637518395414034592868284643232300703763196993475464913981753299131801752201826843442004407422446384120512786374950874679353300448698359326566276296182394058258048795140855351409867228545744609530842453106294854674585181887080162208303488330053035108696321635303199177137119896548683549052206451164168939279509825411930443958808410594606132816818023557721239555408487241291664560597674283784592062184631855900118368145782445157128278232251037642311588049358556243210396287053593717040056387216047895078523808891626263441407444587502316295136142302748120028522290773058320212453917902843129595918807936085816210372041875246595943521157026006228134443939661891252136674503605507250332465319566466159477448116672204273597982006646871634472080695590794685358434771583210242072442169821609124254666805673073340195422940628114999782960020125874996307004569236460297665531127372314323729346921536706887982157730820117883109422027678887268748594285180397141401205147942347470567474268310830665541286684195714306575928866709365813175557806187634527634332634467383309014969240035358674711955087914518853236844302573498707048777440652246466631052621426158921309045680327404509631405053853579208547956896962497840302319018182618729498174787138765527629945148034215958695165612767560587993021780026691285673979011365300714376043167723542461349402325036628298681979470670521518657263904785956982309924398811025336812874823860088847603918072154137058495688036843151203173968730898025364484130297917383709159503911549663777232311147218512466871376876317664830197171917680784180031433068106887162920728805887406490038356887771583337465168069373327384723101606551828280471871715405715152960189568787955292150630045823706286603827572071164300501825391643839977711965688973765016537419486858875878436834240562093667775976832059277586296911153690746653287802027466420163901094674382132258931759534199465851696852687869676770638847337702111596697180651999263468817004319210461365077657945238984240007960084105868350910557511812324559530291389045722219679761020344606651449336997979585960268913429071628318412860865669121102286616153319048551119407124213528073342611390390969856658058638803776270611314894567901243674090146980400639178161127576107434712596966282827337671219246062596117906952119467293354306572018218441828101781400958890145810744802171898869512977628424246569025308802236112254262895043990853551830558986598741075901623290644582807767295891575904768057955371304907488932818728123293789993400467738340385344586853200902661876796323131945871038643111231711783564733018375440098516414159597875537675776698617966327619066051594763650505948411382591669863096056536695638618458158338910327859232411241311968297537411272911300810543853491688830171567620136475742158098023350977177084723717620229801716571573983420421587246428254195967019338157790257094581864055986193081586190693874516981481584358255129102795769478531410608550588870939106245003844693444371122624824587180016200293519841788869196416048733585802360748763830207517593369929328736907818893124823007746340009081186519182612359112633116879953417439100783842203575172529708898084650812774496432697003289063289156914933332305807092250920713590737981442207519351109405568179691218412540338312722265246194043029734915056892827036023616613447261616450526267731577045855102819601117428206456122695405479937132210559249953311670205331755710460279926128432172108597136656585769123781693562128813102977504754313650816572390474546511671212199668969330543699771278568294379733929235559179803658580827244378181101315352531487831896270546295053689141722398732599691524217959295722507615152481010292763774375447806926124350279669803559764061696899904224603776962938452621221348474826415382865015545311642227702872275714107201330980908226042309763113476552501612618666477676095017294107768085153578749397842250134193632196039461764897890510475904496860880582567274541721837292675734914605052137757127002344356389847600902905146443785241639730811072632212352483675178238682794316314152624661107476692859986801989471758321175055053361753867003826802403826649937508116329949345179137945392583790696175967688554132717217995760703819951505675382067911856996948293500293396318662387679921517363208461422623878071721856437745093731905040648267669626795481854612423817608560878171531948695251541459015924374417481185217366494374820006683494330460311438097776873344576424066039315199573783593785792148090028534784467174090999514785228828141434503456291098703235940675894846587398133174644824827761471221595643788781642373365026696777638330644499006228780137595601185750442415881750110708239366302380917292017625446852077416401117298090323609030431620310911889033472440867540203289647892243905257912158620937485555148938576643483789144851478002037061833613321405073335648707935498888892337626796207780559019448097446963217016169676946281914543804452119042559166717469641573141504945253215135485650810087659214516989187703580141651814243001905770703712112540230470029113280787638226284978769748410479190233516145526098007812248623061974101698671075511208034217662710668469985965803783853093287189580479692692867515345423251140313243819130229499898014395863960516489444730566054461825657839009553030941129337716365292036346420024976815796550937351206176574246974354037911349945209127861461386410165985750389734293479590973813140603400620505638769382504100621795214885837013472018156380743811425072105103032181072967036496516380911258564211368034182008767575980498682820144813844316410036616741289564030098999934333749014185128998254953220734375586054531135189386536941784284340636431083067544646457718703176865997135871276575617141326750182903494555212782834186644898080106415232025249179288899256808940962197130174257373279847810584628929735131936452444213411372931268267967650982000001501389049273966850289419135521385276204534781736214358100840430451053952970776620897919252970432439516250488314170642595916863068420331017982251361565746330028519216018537610510383534106918811563435040463114370216160225463151515440956073196369845047229096487430798821250124948417885307425135821116846498636684185961598709987100557903677205635242220276565022074638610861568240964955315551495008903212296882891438835463421212004270231120787351154436852253521744324193654633575104341870926679781079030752860403016640480846838698533128549748371609178800675493135156520192538862945454639867274815209680714294978943414518476425958208802460032932225440722595238129955144902587517817433003149481856678386596205558015906644319356609554657730264796153320369446359291088011619995275901790170558760873811379784319808147544918773057017480732130345785820733565354442985527049573000815650256891898547986059977208289240848673702958068602887210923833004859825433139146361949066461473381950918980734094833186550676350221345374466917624683056831717239254818843988229324152524560662178162143851561150339792090443467119737822890522351145589296073914762764842185470005699369042966451650433853703395090134191401921308157017569588273811289442600700345162886922885843270992420187511746198760052600153374585507971358713436232028507450055789142179741484779545095569223291851001749256097197364127815868704395599507611252033705115661385286329922175934579831355845125552426620243539673968924255644743914938204269578473187429368314411622358045609107201294803585192920964664936041473266019583147540255596375832271746503792953899387213081226199533610138278206206867788847197806618901957240711956752807569740441873321949355360169981184661340644974307349358797385444919141399577544162603088847300323939714405516057901352540621140403208771023658343618101157258443424537048585709493279132569859838735297971214994504642158757622187228511588558071200884173993600521506881799603335763362109859198386695717076824737389708069420822487213898035432472297915893176564639488593589405709849843249877892889606065622652464296912638694593696762632176783754830865348958632922817863742870980094779107067085002006503984148653249241268328672523609881589622405107770013862733979265607329930375298904010539035886428984856558121792454046116589208752386910158115074928719842779276913685795632210225627287410618137649327720532310864463340626932947240094309106447222951677880676180524900797805650832402829711826152160421957076422663932250858327393119230788517530777617932908221562312348826819531753145438419289854811624190056837109847635201814223039216096373686055934183916219570374285638383750421703166527148304105357231255699213018938260209268738062307483068483679703892400850023765160860186427520502292807501254086961453500342009487775437829848642866825734637235802722164869046099833675040578241893186738578102010041394023511465828852761608497400084788275607567762800009081255659796621868776156466952286832103738854881497344037981731267967023581318376012677460751185858640761509516343210751215183033902218390628229208552514386202232424156766916853220919475618327859593500243116785788664997410992596362119951905585626720263197181848960811237669286228035209369980744871308867134566619735245576092942677864504588109014780151380504792956974532109622368719671690177878854646269641689837199118598134173119913209170416438456557944439125682644995264743494504639333827414981878814074540073085337149493200901410177626294038958002351371246291283222881583044940684764279934927861473059072523632023376582789372431291475584137128962357725553155462793186330225940894664689512650203733728460292657429363610469472992507040864706092818002506434024299663561064050981961776556021723316917872876946616096853291970390168559048975359362888215084784899129732343115284191500874409727192224929480740229220645580297425342400714614090170660729688198735268198426446069816803777103228455460019000230467630309288783139976617380377697959920311639989237631279953125383762122440902469747455255047224465025424017154142172045930357606631959057691224391356836926585683063288160208330044040575523127598291813537236120530375017510465217385620273426363585631595987311557808641354648616413117220976825480424270046972494725934189763534749101696661646574712006410265613188069290101873446053437425097219480815410428072064408473558235487982362383752316760684149702995597620165333464346087849850944513277286594351010905746355770035155965236989531584063372872524850233490381661704592571676277870025142174918020774340746207488520462450628823384491961982580677748404646679128289187562417225389530993012909318497208779901853855576806181375801450382052645097911687297736424145040843499366940863989638774148803082737262478051735828209335785291462746254267883010899238935003656877461847134392881997779219206844106754913805432278081847078015242398914813174927649891696545232423512603365854582050459040590702831990595014236448586331867261708838813000488435751510285233179135560257877925571875570862320941905606093000134343123429988642742584270852191950384136752465710830805934695782271032457474170628647610390492400878854500343581331680283382685415060374852614250354519416483858838228642711509346861810584130372525201022371148136211355475273629863090225255738215886915928617553365577864226790902768445866375516437412247479216059272211039628389613915995641370193845632832669727138930597552698335911756549998563072029124424499974227336145289919947940212506873238780485226407478531039799981850605699061353326737251328844042208417118943420134632694816064254196977730596515666855598123800124659862453778086573358267291834980693786664986855657328516203894222794435203698146105782746165779500660099725969086589469553935986749826751495309940698112788505025460752444878647238836442327357734553200236311266462868169915609434278535379103956012746800378874411783392778215688618525920862859830923869930112537824920463131657039677784718354254532409436013753566763550040195352926798981776551352693043904719788623895917105854956347214536931196244861826866453433770954737514460365605809334592431563011440331543938259126162669990483388408601509746427598808475109902216634416361044227851935925685845456272802363409165905792674368251726543072807768102654394484728363919416250892023253126499401239476062671427937476282412646891938451128114185700231309597415274356286458553291053925816481947407872678996710117711550376484493121397579827649259206705583190087270968609366656623972149504833047549249587939713179091013959245789604085669031864386750493511045399411702290158911140880357447855651894172314165834800886667339858223082676393539021069310504422688478685005667112897591120719258820404259557619760744530850193540613524413708050205683121546912692690103741014704547786504794073898065014352123310502934516602558845190893532593387614881515332313404575689431525627143119205633040455174717045899772572745704064761000683232867895384004499908091295435711505941534504917170814207792784171939926958660406565432171365505558302109003263091891160131302657447547211015930711567967960607124642810559334832279314560611925090326718021703426710452990553765956804775150339314233905659689458137222859521113525245416638170332924992116245338058076373559909382568661653210449227619392931581398121835364270170487671374034825149680937813126871713360256113227834844387609610350790109453822700928622493999178680244336835573755738046458572339475638696119838172894632968236151859246346841858624345794773202637873905360425969783959579493245608112032789491486579809040463697253336299237057300149617189658861723372238492706003138386256272735251246267038250670303209829649101051823928843245893141338914643043058621707981160646230443764723690099164676291831029829438113875660948636867826630416008644360835732888234073374999414446013624119906169573350752661823937154102147640174676811810164817075148958632874962240358881572860405999692831969117048767559141601258283463485561928782284881038028616098250849945240976467688890961917040742848785974329620228156546768338314573343980522388628212295863917708105576086212362680040282991723928700259609400865985578357946483152560952012919030622399029191114248989862360563431623088061837787885389389981199169324752901498069428680588025927548480568800719468405131433983179847775076369136583525038875372717265109237197201427745295901044795088414594583855289853740413262360412508603867073360058354196798819746837348244457719550020674889876857893846978942556100710930422170118379262479769686568764197653065663023253253813249670887640271327791740291629049134907322676027631004414013112633294039669927601393148987841892163316464174814215608412846753217647279345326202523959360639872502600491921401054801189401874840631866207710376481204595105228818081509954393286197383962916399281841591886651838760836262764434132668615075297892447953159268503286664070014019165744131201892376883265492131517035482577333612003148747183607260508776065217784227463945538945171717797584978533720456808547500138356950405445850303864565054664002529621129002940257634875369989348174278177532135593401320866552757505562486391890901840917279594777481459472253365866860326458293321767779591249246045501029026810248111675069744813754114252169948247192871881695668574310132869189698506090624852022864383431587266861059670324528714760224997024789717746511743141585708111699321929704667480711218415325168878339754733855685843035359158337005509114347857552701821398710809762419919709129355785899853654924643208667787746870734790030780217895985898960081201920592272552776736180367501449905189355930894848915867835065578793294111850555697873117361648482470386289654343747630729744504239144767372761471332319892238747353649234240217628412566286309361096534968698376504573222768839199538140029347075057827668440708944361779899806997395814466625049141901467309349785451078158703554101134027570088628465836723220590928714125178609334403377645975075549332230952830223343048406928694952063554378175371153198758124294739601734905972002239301951121135364281995306778902181199923481078779230517031734594400107469171570618768534419946154982622421288925609971347765915843270773138539169301487866855807563880162692957769124915533967192263134378832394980917796270662819843119993608176604428988235183034074709997165491175252891927371018525290938164272647765686168919123156447086147695096830548840608298438169909527700568405620240341694359273785599414109791318905822569998191144691819434712053439061651121103609249083358878305370289264476848130964240535622829531889144044782780373999774506287859346767602492768112052622722714280613004643926724106066312651086052765281237132380065733940336584027718148963487630991720633007216183729908788516073241028925885183545675124877378265145131903083271695419485957899511913547247152510844883401789171211343542870155993045946446250642274925701846073412581508306915064241649365268867966243820053948186624218952974481938079374532858448281297960911230932795308523417650019088933601771025825542497889775340213360130683616498374510338149691110123634492557990905746530451220169928460649249977324048252376670323874450372630564171139071321613715564233702064281001936223109795862597052788065429766027439621751586795679598701474762946329297031344191344835534785387012500933581191785559668937639728500655115116443933703898326870069816149169177728593233460739024340547251186783717256260204099601630927957809873000529057560302574867912593721312325428103768730575204552557574540730271690839849991456758049305498790934253044053273765954246504139160358078548370493775139989810415003043791669555445156835603360195319571533205772577761334311861498560405089087216272778537624112885349755622525636490364494852486202481078881173161964770292995692523557125377916512652596571348789628132037333735974667957830550088919578143809619047732009278677280415764352252585291437207048931372356795660926763270598278879220119103480125796821839562452895712534432469828511325921200353496757732163677270171813264900325658901786788490728531616398595420148333264833464221896159424207263806656485790741021448788951822076626137700795978128336048386228255665536848530029514744697480878181180073070539885993722961128082642062834078440290730095980413367425414842377375601578646954368493976397568374424594153650334419200543915483642907194862243599288792391767134663717439599371189146900898919231031110101911940891520198450587348810349233874774419535852958740617814062106773431826286828889002064263316461995912105847545470608370939740553264558853733390975872965339922954201346339172179489653459509139526565741779644504168127360289934924617804633250715287836363330384564463847538138313841503433951237873238555204012007040473990484365977116366550175673988312532796832269974663018737031183599732123470145313069679107956195687955900662528608679566431563584885572404397291143313765479130782503236678265266727423345973650154673623247567302244131386383911356594695148747739061492093153991656587672833230365500036569845577315075334454454703984763906276580735247777664039693835058745318739264769049425268545712220518057063280144534073756761040897554066507215890573785024725428079034888513101676508416865938015337833373659938917749461202301616641583646945319712343919803121867019338603575227989500918042895715917136381556365256721949537802823023005556459339127989894175948695492387087246519550389208387650114007569944294069539738460817231503013285626463487324220136928595637722133566671807380862019539444294124700369501665890867355506192905114097327611197140253825681387966925062857296703773207393088762471680805508894529047917369300465390503485295225682985398841250652718708854337069572956702744323664434672391262810476219285546531646561460532411890566838453008888343051476556930005484976114884382417396832944052495643689431801581189815682357618047302920633286497749306383196097503190335560572750902145836204084002613401738908656142244483034985468871604840496368847339594440714600974479391674435948783228208721434198277704422831841699487134638274415201381085680930951648730421580379216388781675541233641998729748281069306576363832289530871599625863090711078847080235726238400602368074706215501997466313484208768732754235286623777681011323582667536312229042456879707934720352670470284854074615984658469528411446577165388941332941746122742237217396626787426964432423926945020655633241485592110147084502075170683929304944300128753945764280061464238870805581276753527693894122672350922213081154036223549823234991796613022523160478530700423955836766592928316181862639170390239224862804527465874892162908602297845628708911577039960516215230094845886929122389939482872200049600049052081599662805338062087003542505773343073447064691072342343663833092431607321330557761697444647528496580230527924283112045347212721779556349322201641317400287611053653453804611040771313303566408759788656927887297451945122779615644693896927918164062827221482033511800151458691010031714094910301153597472762014459535051128973979657473342360020915973609077022798082640122736151294529751867177614677206031809502917510767856718180906910251046960340402554365926518557024647442683689676662826972209974222574843062873442830300036963274440988397251722194916255381075458526249128048703693725292822793475857427217658591318060225872304079696334748617757754874588413109413548199435008440766034023077390753499173309425018666909357157498463291561526686315533535462841376469197372414228320833356861682486392573229790781344388379427022682525465599117855561252075069220186261866038277403125182931628788962795338958855928133444888516365973165997052681372789078023043553765865619678823489468697291699609391517189206234926282866563678964811101117653994906580599961306442353113742411700170759498732884728556521456342296046019665345070746102662385147720397027017100601529477045479942521725783319423513908838524574169594467643866979021489473102857641533196811985806080987834150172639588584047193416022196701985314040390629914946472939113245903537693922685250895708682614124056040276638194834852615017741865693495450062846691712192865570704072488487587714469668028315337980866319508921202083294242729233057658782508614217151816571864973035136130496972673383096388318714874670752840195216367007143369163103890224804423165852824852554330942449102277217954951629537140727090419378390336184059000238180283715393946159496335361032138694518330337025027544187652487371904112943333820266982148233370113237282792421555213094610909254189955778799508172874922640036713102126469983298293957486488979680451420647867464645677048798596989505925419703756296363143476063181729762662940404472141881831378476998773756756442623466885368964698947671059824756037268439827784506641705212333446657590211170604492639877628146626893052691609565242284566856762349357352496125844573176022476759648618514187133087154517532164713192865495755849672914272084398492504134407024800923710226641284853242493642694231423403044390856411121064346193102218818186194469715111420991126317395934402738886241873928794202271987192996251882856733932920872626241454853720358151281584386012222665900015442557188425769671301719039605416589625259324007620974344054817907304976586383159335071278400715576518034651273534571282130311719412935695900738762682773269395431387290401743102018839379304037814530318475709643972507802183520461621806089139246431698054164177214054241972911460885425255388916654776679151280984715220195455696498128503150965433268333571921236437758496783452548855206009494041704591380608336222117874647606270908940628754634653271842213008574433854653010875129905239782211650333380676716489333803595482963860453136554908529078147828686039107053636488975583609692035425526354743807018216248557048299075550677344083905694095439183711975672579817566509567170467085235628944216964317041341337919848835990131090003393959556746794579974316344837677536114093325285508663557533551132542333460953475391825875694107851073526225420026133509329516624780551347498077949949482224796107990222896048044836282490124119590976370103902333094122540413564944881194119257549658236699893495441788094353790176914566183410495335395906704075624030682707520696756151970894386025970081525988329044671921470479479262753021591512698432703540943134092724203852157516503465113887193525813118306657239301849019259337498534074457128933564009071364345714201587195561479014854752298463567534685146682705974312579881476540967342574192869988853560870296548176215398301730639694347280014654475856565956369896700344262906129388579530448221876712450657906608647197214857079662609097483432977074614114823824781649685663893691269406251440545305711790016762283614540176980664702630297713831760731500056773677300072048317739411688481175637937337612756315711078067368917769852421456734973511894499168211452040929288180088861342723659311350221318083148779172942258250268036866024742379530082309471307781970049410485297896694245772151983301951701053860424983854062582620407087153842757719730657367278183602063471268261880817844958043240431052813545399320349921524578604747573737540998647534003827896204910056575026945413290275587729498953299399878381653439886840818675788004218096241645065396222253905371208156048260082509848503911523674430459578861937996763551311908395477659350066655461194752762481850630030407094447663213326717202354801462263841638951534351076179709583486913049178646072019548823716945481919040719806392729195614561267138301300792882487449337175523806092314498751183386206001052348209181498275862014986205769602148381347496881255781162559027477565803865743919804469566921704933895290225050653263645160633369489594611864134578456815027023125194816200095399378368437445713500567513741577454063541266868706900132909976382271611403874854802384962960335286752751701455672677039631592247831297964373101877852447488026783463517559993270587768794817620800803156492186539902465541490064521821987571809522554150434971534628960631386930510726192118303446172723441130163839651007076568801833901077556189984814639748698176873382143704034871765243818948479020010563193454415412891955741503918269537150912921973365215409445932821250493370463625062280422249449141593798565638087274632072994010333841436799074254783354251541727289897606327453839343973121560796231659902038015600239900741363108548023600337484142424974982251379651045103295569397135054826674047218381407031994498070584271323236038359242949584506343289783028171468088602296355485989572432462257275420180900345211873331263980927547623033378300237775785916449114092772718870608180862640323158361150116275351982100240417637907986641147739024964766779655196253955667231128686797639749438971310356258083113155698719406390669108219832497100157842073241776888753610944822235535224477349530172258223976301167592570279889411468202673686870145874248821729897752228422555756759439300111780646604764450899268583877529483992342972946233889664722024391612769693830777767424769714794024284486611898010732178362100972443326917693269564789145039885828659753477871123195194918288515174872467668192020058070603070012160381105807696158107715362878616599841972875300974404316247367071515186017505633240138059507507928028515147436854237977119220835421035133219485949027132274843485929136926574026471731100260709540251134436012058310215342910585667932614278597566540709663463123583514978034340177810106048445673547132075479678386132429608084100425405983877894301809560202230689963395662696323640026553298200359797070668081810630559033412508241769285525457400496132235595568332187192263931484695967782582584329065988489264741866197947347916034061694656570620582092055273463743927297353714224700099736688385205264981969997591781933537779554145261993976983412087886263783046642857924108650210202580088023607082207285336931110270141400029378109303879898111538997854609083834994225309583511014499122413247463199774240700205050143574801032955721094290352052629622233838265185154861773778937158918268063845310024478415089762142147883532358330568040490804845087836012054642949485638044382734236266128206554486394355801588386424925415410794335057087132330899977212815524424357893388843250633815166793546985082288819465656688608611201416551158069664089670281019336508192408248529226178937971821650033523061463405224069812396092830376544933280406764914714547414354652832156377007194358723964106483181382106540281801576284218158646631580423449953435268612695118931371760977261653059634264482116917715086121957931341293262011153273181065661289073876111057120474587617212292613253935250386739435093678515653771307439614566848145578343748823797338587273670104747999820544017758616920085436538493908833484261519686956165520091526827819907371170545958683383618405798865425734592258758499083390894474560307530382978434613559443895608811736325256945967664357898317258901168294934982205385197983547169930506828106564200340316227357093537921919179314073752953668596912317881115097606956246395473577407971341126476552877333698256191340543749489655016205802578858028438340502074277761539819847382569069026341558621236332813576578857700688908991391086953704198506570417011759326864502738013387016128973160660400724020907868446409449382017172263143781055361183799819122660723503754546898026205119438262047570997967982408728574246459569794784946532576138736624480148535316372152313561468387668754915606822761619949215960622109473855672346133030585040401445511570019162841701071977626632030027769413933479695991923206421750749318888966763226048561614102769011666803306062463000984774828339870256991051769009185646229999389682424753180757724146103516986782649492681120823334364931133418211354743833987004570047442391166826376900208505065493714998856421144103242126193722065129341058541359005908404717540356570703767496146936393336935191438369541312208421994879860511484112514319389205245820770014427440938485031547025553818271976384760106750381813051327099660875392590982209956513239232595286219001483069409244253064353973006810555415756347336262664998746191904629259278234222127573098350286854483090696623466194098357970781382535823294962931681072034662367110648288472028733459148799501823600597093275756256486984611116602175437849454618315238381719171458109341809896689098669721182874230037710448568474060703915166290261875353145218036720351096362663986275097687176631666843249656393989288771467941293416795719116356911655723245197894015128407307571670428743455534035378245553797926244044516434361774127271949980927567757713939197130049951991552339252251619226811142421884107925560350265659673310918843023803665947511649629116103323936422820231541432955630468767723481736220195268799594951360255235473156284822524290513151825457363442882383664279899835257733802136520369218288833467135637145561633465753659073646376909099136554043874406847374817310938539345192687493144177750401043417652624988734629484533862899829384284145006146007527047276297732560892133655186590948465050850944705886658023442714810559058253960752044741013865889699154735037333091652754707748932811502387431694672137158807258110594143040078394922498225806648140980230930391764562877664299671962925714563633165678400797426247492406160580578096440922555518655832550464523188597828836973723560285458890533853033617684474334595858855334552403516467221279444793508520810095832673673197735154010022187847511467997861227504650915292328988023587510284726332987371676276547135844796133176377382352346761491690279102040602154083557497676869402578329210022678735844769893182559537096015255859194468713223294995494907628384273830994470782957551315850886370325883179067134091229638601575359844747881889482503857490188752477657310204216741274663997293997291603311471096680709124517706524605455623354018221714274733341656147702227225391130021374120579209238567988414257429494979853176925372206143818745423603986318739547802899452463739513542772784328166740702376400951885296617590948133937106644592735067861313195769609627780646025960182744047115038168856771732904866359851477350176253971189389714234070024414232454710596970988922372811488095720266435543865855580498968822118204102609584302209045229640377358401296533466328292369375873744270629305652767033363428455301761798211159633081070146966201723563258603885508769470569933761831705179756729666099291459027024324812383303736948055213056111943301873804896442412070006186051729872954501599218236695026836154707098761382958949397617720807554134397366831064383651623308103351094073425998413091169069038434974089661089694196278151256666258711462808020201077924527617388597328117998988648290774404439480493732578757101027788527151284195124377952043169997017207186660860613287490818971901577688424265240689471872257998807560678060594242671787271752395502026764465769064958629753184715682731191183689520275816147708260961324804474674736920992363197361095098347739754736823309867624821821527877430595708453798245572287134878691570516719235679094900217953954965600737207868327738176610861773994941091769023047575501274694926593613068162522186485422782429249248216110268300363744575587794683078506663021541939673936848413368739858829531486266397290402998549493995637566385476057382674631515123594371968561837347449396772916902624119602436161427311434125478645854344904740142171085488005181904612478156433562266437935327414265649330936513320914059758815273831821142641524265042158106176643984823795104612268665380050107127775972084803316039343641608824959753595801866826517299507227513456409003073800471159186966074013280283667995604169868706450696811970558454933366214454893754270899995821083995718381200574377088164894257117585422507681465559326402556159822045028476762344279483706874018275569543387342410948591193122466007256533599188679342227190410794654449750812733509289346847093130999065498849176068749950638972150016691562477701928632107592826159857481637515656398371310429775188571656042283422048532331054838262678107716231335113209520098765310839384558286374502681506538748760702412633376939337223716496148771043081081210530048939923664713166173101531855553146209436031197323653896755057237600621791592760689968592609824933437256325400869290248181024988752228400825926919688228912080298114718717671407263300638346891460874177381814601963090797514897697733140107849726019396106572508985307649178988126323623983900909424932240329578926272434807625179507550105564430307145053646525193929745429235356192643023555758159480413194036114708657298018635721530134602922396056851232034081425204926796961259033786032728652350628828964430772404461150523221649656502910018478562162778913133802921803960603340881044566334594458781429449532599260668708832682255073874165444420080965697599808864557833599713230828358044098638281079710259170615709548004479334768815073464186206890435855854279327307214534056007681884623783524088458857662410022342676174221540023089516860023262246300073701421760177860807831267635103649975456689325358639217067205315279493930576831046242156620125975983303377861806092529795549516513548637783977836859899601105896522166960856935322166663359146657376333592354567842288347035060634695655797837936497744931367148138250188871346716081757338148739722461597965410016405534498984669152716808955123301818445392098737291970552908787062831732579174466826922122298194396753396582102671894227548912730209081141792439035828010823692042709889325196373600179621723121053684775738889106543304909137268593443878644890290306757619958604180569378850594783130371737156973375446895544296951307607555837753482791587922662788380783729029169934173719701441154347721409884150625339048111886713797730839892682279982534536403418367197664397455452040526687831388342849383389275029911716682366651869996311425554060837949321546508841885548162558107692278543126259005111309885435311028821151205168748642383685668127276845884388387406915972049599296810395688659810009999469872937401853425842165769754030044366162668963491789919674147209818041209691600706222181493395352518421372046109352806258971917503655409529694536016005539694951122911934672723709854992525934154958697058790149278082866582498239026381419826251604827253673272353765307586540405822608896941891027517625677617904987054888557922436658265039399682257262806496454726701397608469111274678531082934545285698422799876787358805118949636379442065281151259556848792893141330651519487487957378557135541080436993615741487565891736785094189584627505244062753904115259666483784078252524320617601489670342155588566654483045000599483466935586570260810224200583403415377163194303502741040896766084642803829721715283696060417575264835551563754388448382315433491762963787305882732892879453900308974752165029479537206216878253559928418490866020515094710060093959491010564419198143330385991789737535766516145459666331000451577967743698427308736559501886378758642480435377984304126754870724187062562326948414446069632832354961107039525738392403718908369855022594841911666822452415709620728304301794940518255300271646992692956535289851306093625717201649213263936029392027988444534406945451991300687812125354633328582851148435016192350871303420753627429613818908319452010194243131157082471253130882345024003867712897653982423921048609573612206546649686867409798193842252003836067311549802664414870318514543068044143986343021533865759081173510138751216164692412366149247240360620255277931812507403265832630333881363732408279566913728809743191119081192966605543965206870992049567467483133031599463283039283471322766715282929569251648409062171647510043866969641064324415644487703683465597019723039824421324717872921423711256480547131568843084358363297588494409917159331902935642827919549661164333644635995783567631203652375070473602297243726926087521330287619841782063529699990915495781591504704093616837219883412141911510496905222922503541366792541658240673273616750847333859628785897664576862809384686872592774851830628997210981359396926310219048459559602385249532416443669645070888227329432710717323222748331823043179006325850170015719378430380208051698351842658904642830368626797655749611097905760782623634131149733016496484605448815024652570650450812037541334267796139732643759878867398754017801033358368256759217602681189406062246618556809954875985982409115238388976697289484636132614440519613397252852022734403016730230222614514456976469185323729142357569010700974823807270899768960910452597483004715965126540511760048554162747611332548268251379366429919665362960609044205856677105539899091210833324051585532218287138482192141673353701862744829693748593184965167544131830324026598284513305138778401543192160445233419918849593819072830593525174596533420149382903286822261481488403585006867187931647564534279928830048780583633644557820873036954325282951683142838627495960992138190108802079242571431881962686967979988408258962425658910910578736022289635481267780424603608525780497069779918491881070025738597722766750831857487676943291850120934109252910381986058703122974487095229121366388474682051280525347221488763320967805412699303554699384074243955302286410794976829516598225809491811593566638329135357912982822216035241402132004060122264123613817739080118116709726396091599433715505050105149985738030471995610100336735948023842016939683613813958325293386993532083044730486474009028815755692836236930731347820917358383411864434897435181873396730374072517987307477277605696761516901295472771741569747026069488443422168192941817823522023380295143852442571600737421531131971942261335858035714345103231460394284233175528953130282482045864724365718106149151221099362381244909973270291255464077085109219791941239832972006206300826061640201178632250109885420562192559044468734672418685397633480122493526502448654919459431128833248612315258983942260503300678726906267741748458378571869640131742442734519613087868829196706861944550366858869896294931957363514623262091464332690040053829670817936776071448707438313737243038418804475236554884722531444878618432737179823664486645091428342608742874284383979106026177000251324154632671983347739513775016843347225053696037487003462743270813662224005857112216623396286680845973228861428183196027385954741850459855282205524185086796651143849780844323708323437885026458467820967468137518351628077477012468756647864860348055354938037325694017031471936760364504577334897128077485294774517008726594179894974982489621125430450024911312242768181214721673908120713264417624701271356144545572323709098244293136746912158747628438244805156157632913986879001463544351360913169782269201413361153933502562636643976643417948834808580055740882886857601331685264967429966277587590037583970435379607606112691941970301784096156027679453743931816681367783403055253941876320317584836823655297802721748201410581461452173578224885503892297202721518521577896725374179582245425606673897877106133437862863864824309212215861616620297272030407091264893140611401765817983495575154563401240886475257140838047086660227701792695026154406733232239880315334235930000540658807228281328669603177253524017366849280342656080954605317090447548011064888915348084450644036132357065016069603071459402351341535949824627700223460750189792618479342214749864784619070698850621261587562143041325590474875628551682296932407211690150883625917891415622639416160209888785214634827571853762177488345647452875750722898435204382415740156276627293353635880219565126738252209295205115040610133788693946153240620832364443365834224017583079815354862602417937121497905704128219232633035826482199941830656420943326242931444841069946226851452872209507548061088132268448955089022026363322612095976889983553299712375849185028874216914660575466412073902899922908940634295416078350067870762362872660240290946226499057835626616476998425208071589641911760412446766500748118610555440187037836615362709993703103072853848407739249984958333398077690955984227723231808093945133538919269783042884343351972029560658833974485903286685590966415909283263713253257545946421341145758768432250671390643546049555317339566877824699586564664346735271416336917690730312940993322874205598802541355227031725074068169700932193331073109004729416099390097918460282146079624408778379080762460302229673205325111247301798918862404129575161030748952977711864958676918087306936544824524433644311476058467025075438158751680998520375955577893045155456305498099747934812771806638757875848809782004096446649153465121377659341152346418151113869562254549080415456064464072742956900175005276192663590608208435198383647472035666061762929585994795087524762261646234554205197125631956489201441288267835788287666347558818741138031750341871796785569496642616082777214350197587256185028184116009081678889475648579239444985318026065465196109999734511198262166965901784581528997007434989488737269391500606770914449894445350576653324295121616817140656620676783560591872200125171034605198977316243441603309742196568552682241685666964962767878726657617258537302950696150434851726732767222421349390051232961437774053779860979849345338112652232983991978359349477007378838261841554556482723459917149639574482095926920615790431570779614744135552161302282385663032048945631782678680509727274185874286893247916285977157848304070383820903448888782277547810266477616031245489900437607726111130398081795948074268131361046854182515579719026967855860790579045293769509216859564422694266720252458738664944404523022008399329643848911206612186336323528224857250526499616625461759482235041298147369842786877719514049473380641777098996302053046865578639218102470177523378210470855359473804016393353709900148901442992754683192503011944595170683303898936179250484970871213388667737081692506441924974249623266861660709907409253869884192956673766553165023185063072104667696561100708386017053730382517473734195921563756046250337748247522285718334248208558976727079266939939383997991916149610106090572455211683243473127607553195366367461404357060940712539198791745632848901039302093200725517624191662052689427849253638002300426879793960525731262969205453728110660150406877997250607651678743161265991026926947950825917426969343225237796285535845825872472545139535470654352991876005337812210452471299336043114259680995507694418286006973227167528165549767540254004106361024224216518064051354568226572563369109684770130297563255634793018761574400815696199060805421569137937330210102062735207019508092776873544203429575341163180999164298398289093374096453349597637318386138083896629138810003817421435949798299916010227011245503733644570580728809221919142814302943029054940891077985906713746648566917653699115968841440321212994988194913596268257767823956434687983404705113375758889097902755189240460827515781322484104921344336709196783281425626340660812756714918210164831103530416758826647791227307581974831625825225373949664729226213866488798184787886937776090002237132555661259818435026161580649759303794987290925818914998985930716256274096138736578175305182237061207668997328807845389006603146557860108676394550627571641250382713117936739106443367021683812353468818708173028960258806121253233491126091685275578778353666101168289844312551462626556173528192053852110147459851219122015092181189232989230991020014089876716915406404434495829602635255668607213835076548747353323780062372709646810950238398745927600963248798017225834919098751952024800270311097807813151542293939054654992998971686261364903125057057178978671638193351064799094616918584387247817294955901636321652792111706714657835954379351389282028754297146162544981508409631396858413564168021039357157336718029756103868580965443809010866689406847667733063279747203002535001032244163052099724701576943955716923133414143279893550115741078446668825342801469098411268791613479186104387891724831760641189995910270711385774191913766557576779413633856279341734117023145183857440127417881034378579518799373267755790680538838243520943534311669111836271034232945127543512670654865173093408290921879355334322464769546428510950080622023105679327289669007901925827569826198984778451825598097146753258359341809623026492197719105519462997803443767305626620117637322089818942385848571602922042107541853049658199793728046282622074119650447466984403463408386865355702733848758113022016889874239603991172838980524448224550911925130681488591785954064115020888251549963469730731823697527921463493505582250557728896414360290696841314093714692497866105626550342704245711160798726855141288644719782397193727188857667380018942876248663872620147405767537413644932396937762038136401411799170043615670254389698252905878832548704952305795314465841661071174021952637681638793859694712843290509790811396836248726314299846351579020078737780262553496834423840233994396879182296558217307873228119967534871465683479440031433942545622842568965904373135447769327793596886353250238605962755695464540423855461983946548785582733021104359171696275959085619987981655630325448006114154325174659394172928404731334270673718992616835691586844987493057663125394523653630335297455276864039653594715642555769282706459068412377882408833084898353918627496281280752209895373913582954209409773402329602742493852931321031388118946094797451561199286419146742613985153214775444446685006205879549266036720839332183272939472255729574223195088797413311355885457887804725500047919730399612036332862260167185107618574688130703465832974438198297086617967402564354289516585420294758873800180220818967019709360990313168542334468352836555306805850797841283865949220496526366812267648190867327034311731262369220919129340008353287787369990301872190875253734381591558771454175741656665167281527921440877935904925722863837654010817934282570424633748352919918916036830233668235356378097526928345583678971125457855571942902396764516060260587973397151530976897255835497636270263951809801356750054578911624227551373245242572128278459467158176611498367051152614788321732509443282726335752172523844040409078896278776738745582423320781159190302638223641871808356132362265953736309425378411567504038929685648932799023038770208011613729486962744405238475802480849462286005760862485367623273438384807152451633859485555145723277450532338894297956344561492187035939666945188377593528804154284326805570680133955899821578988554402178139924524026359062489467709477177584064887158942280433068773431387177681162016816924457847120476427604934920071164260489457047329204526077639033961491182995265781568937133917424041065131389760326127388481085591398729364327378243676696452590230610280675221506910343695051302025583163366510585096440807648314345669741012228696886034089157641714162653251039155850721168598957409208470914347726916536066745120614243729152949300265582118316371864554631482471406613307369318796806676627314347578075704111123337071180069717007348825660424688895146772507679965175802565268417764988363986853767274578622657678276205153807706219980665275087660849466902256699107764164928252699870517907978459538996020370445389882635760592815717462536712572596448192766946275354141972274576734640278438112974741450522158452165856054101436975973221746015784054075706796260464446493433281445143804517993506480017658356578736731134531515941099469688032787167101684609628376770018813938085321096641835900989397726244375424242269413084302123627109001024791195225709549410311965539758103593953427386266972843173777669224636352821868474155478282541562621808622260272977610881644223899541336807576318139153206076821609390358958069609755287795297232448498470015951404054872075989529356097514349765826398445492800554535559369366591000148120260334177382176074756622140202818836092211459832155442072182117699943875804200870393237766013705979657409437216506322739579640428846993653100014969600332203918080625932441817138388975996514947706471132537100022779569804784665610906035277234110399373938710651933635500830364928545790469732598177095604915681546961048685669309687432938388600708620984864596133250065707488354595081664366209285667189275099671592937381136776295461513241908335858274694178965619468035856611026048435507330924693299572880805001159877454165673741038238446373272748785596125567912132218372036094286177315008450488162985264791601653147303736146924418547897165626707236705103947173649873877989108809859310445608105290184315271231894301369498510667462450812307183085028237926762060094823170650207644958168823544718304999677840917044603368818892965907398096279453912088702389283099066771639402679112794891141319597103472601815551912902748804376350342558184036335515425284124174013315352124452838773055489149242314926156284090470664472184898693595740127252518736572055761313123807120595048031725849923662825523931499639679743213985268627096003798044351010765268630236796712775451569869116978411475765880297156764826315363018212013506295306198344829026424160895808759166988265406600853237244022019456824797509667713696976780389632513947943495896780753822946736348718535722265710808816275196994140922197378064553296725435832812487296972465246481626967549009351398957559212898770949853273568496092193277188938314328805641645121248390321030228417149434285696703491900243465181088654165704467297298293873662742921479947072091718943789531005764856029882528118998730296347978434258926417369181075906159155711295027854629195897742913190718617446858630344072635482725821817595288848801344337244378767604934744767670293529191642889867159630581846072350593731267901107361034597464204029013435169291165082278733923571307866048275026005423095488051896063641616736492626804768986904711450196987273255971929656686674356350041756245665928998413211533660728586334096025932798300151727241233337513086481264073612691551219027125868870253531636478329593946465753379495579029852604572622435695165099929716118843098587187011843652811200670349742721742889600971340519567409053748624238867436320044016168767822831542612145192954827231188824606181900620848263246258540275989995528441255882987176340317271344470362924020545279010035391799730771191780929666300371394241276135049818931503870195278334199598729278506302647189822497433163804337061898153719920244904371331413220657115440927730389193244239245838530756291079431100831362630301117130426031489217323680120425385564928442500543089279833326864939570029881333179233447591453952284119487211411758857697313532681731523332699146944909642866609336017743372955311307490001386799246355476899558189656927439743829103180375534002471158546250237701590655422726491355141406058265126217368083061104619154327260893082232493178013366422430655841897763088559721218289480406636718450713181557076375109166298187161086725876082893854669612186947989325026930089549059140200013155050771678167711133660486670761688308735014280368444782635858220917406177770252973420712749632632044752725965425461520016437899606976213261193489924630939386670004585048655886596329820717495641008743628348675889883304982160350311582530400906879176010348297343880598691599846761449724441758731204208389487141252135816253199595518571952228921995384071954710025339189003386441079769833308194531798574842253179370228258741785963613297104971860551927417369989260958456350731369337711773201828165725903828444826412635452697179084445869068448773272587209350750825991479363748427290723346790931003815714332836844248873918184790511977336526229912242469912393727551685876888483729849692581802817332986773775403655783295985024192550049897207103024150338140715734832663774512330866825254105078990584653831036497896420138507244541317677885331392437383818205333028532638529241606853785732282101003075654697207453114125544284878222528044463393976146807730690285012218292774389354847886322818130862071277657858246251326036440702105484865807849517542720983774241044600281900851098532097172899102806460556720389242591208311208473514894615746283417818887958204683304781121389363614028288581583159663882027304684530456909382688727959064864777442332092891656772520474257888618615578972610560437843615483157355167342545996686977370827892961250164308268919181177113699083144691021694210619037906589247426956381164807342789248610499878061230782596963319471196495087876455221025263666356824528069025022611520865676728786009848338603282840745690860211947974444256834664193943029430590679076306695273836904334936898423849752753094172446977608630740451355519663059538794568829798443143441762602807106325336646046441594706668802323515840709880232511592326048748822103794513080379823209920993415655291215044071910547830364540106832437195150085942325070270140446186598965924282069861823250096221990676416309894270245241428676546039578999959095013169938762806845108231112444924103568929801971063399669067434668693226861989226134061499677059018773163870090915046555068106454845568064508347432552658782193895696969910757918265489609856312761225421473992229927298600184579154618001675373507621403966383989135176786631062679823509395266206474344915313601666707148359678473799609464810575673749337322619536722717438387306188137337315753359297664350700368811427879471127219226250770888522607058715029930473274842284869296528544561479516929556657079511814229841859042617573959569855593846068016182474654745625445605522005827848982642879869208250503656506806399557965319028393548925701112380424706053380115159151495291404148051355088344666149178997484336914342690614268715637368398528335309027821086734751248199153359275519363227476292041248919874263680089426826698077700583373868830607149332552470322506412880374486627010986707005638653042208040578640048052062432597651019130765456540674051270323088550327570555537877742485751740773700962193710057291718306077041133955954169548479896653777036554825715073392659614943182102463978481458928915297743006096469458947390003714740320569869881452129516481968181227920889331420752849795828346234386227272304134649927636267401013836306294498361093314960083789413717007455345299621539435947813058275788028959151131518091646957260049762195997515691887416532563607650071615801970111753923612158139348426312369748238066654248043113374458587866118558252878811576845008968708285643767793634096816985037805442605916752863215420128195615792724495687588681099717436732958669452862686857190409608920626537503059853703792098215546264030415634559683736394487553867273365696987484704445844711668690100636212605356362059164251423213299500668671641151922223172511871448183418055777611274328645551244545114376635301467710061006302930979507107470373144591018246921571907618311041194822685364099034590714013427913006625279758453910466128279397980678567451289045329374835111564209600663612820088436133274433787611705451565139033236830862274681767010879282333979441295023265607632353612130432152227539813710765104182250542895519556762150023754560839016543203924908407660442702593969531455051314286221277226659766011618163619463887444806043935546764498271862611242840116247684681576980209722613853157319708358522484217720429804584294833197184325474979446972729600662402280253596753893576815470517089742059863240680799425598428449733469773928350700376814548654963116010894609492561460568985816983706559867403868991244063934127765181426642634336940686495020538837579347813599345196622979824315267663561545005091723248324128663829418059728959286094185367466011788640870757728233446957008674242369310438343675436802272195854709501661211670292063289165962713040142455541325255849237554878585569403045991882501518535585006776449671930463049629948625604476341132552928597368933003180220724162152283545618980083205702545112633164573571848387699161968992126846000493264119945026032191354269728155979640339044789325715189895159757379605500663234224918518709626003018791774668094868630024202823316912742209394838818981341774857026885684014721166638199704828592051470554131183093778490200228048779796072464386778573062702193713595674689152835158000493189470597946374848630339978398302491917068301973055747023877295791600572917376699934785128238654172870717737803432756013451341857130012925199371184548954470561385541847315111962217003538153011917602551429488282995961543849679690940950340889107365851104662218761850889959632170428406060912792963555373753218870097294177284675708070932148406118972586609793821609637337285107049912590692557465199379199446555728246476502933335107424413221828368961668984638236906145901046932460408754767296766217690784951985023082659030183226982018901648570554715239391444450240976965522212396028819720744537958243424101603431391846736138205507787882665688627974547843393235051788008520825920942769818780665143186644288802836578019620043246389609247027778772189956609617363498451717458064844876354245198842814341670874595392044837151255495139606576773543648112101118621737226921745932692705712475823026178190744209406779620575849335147688921630559039365391148746061880228199789444634313402574228972257863495820676418581188479342618736331672579027375816689900032507309993631679832887686595864289802508074571643871047885974993492153096590393575630119093813856043706856876330644072466328536750341206481811619594946702668985787585220160348043949674577096257512501303584411916929331902646444343690227808493453666027928105791975098332380051595601957857052328958263857281926976106971685030157508352399111216876401786709012424950195294933537216368894967518858850134133133900356107306068744592618632718893594567500869694152415826572580240210684579019500051782163125093076318722592691251532667642314537242810823261260757302169138222330480396902061035554602041216308519809962594308710087281010228875542091319940458379976783529716999263235043600332887113125667984492498390062561982073104605457122020962555358911226875679487269444410856618354409485091681619492897853659573772563670220490969308513383539725998662332406990541424925129596259088492645727058923306534810825424861073647273042253983219401100074936133154623362804680457073605456217906307055990225927429369737342078782097088261268798491557522810099345466787211576294796413619914783918302906705761836385606080818333906231557298949129246703304303220162457464202354710357993509941193995699294877893056050932541456591861757214979190168860341301285115054178342237884267381742625060310942739579771249377951860296893696362177881713907845859534717146575992823118218973952381775637074639645986042796329619755159732433242337801033910233520415989915508163376072957889096276343624905593313296344429470304181998273698342820703636200557246914921225071117500208147436540010035508934293335624518620870010002324390390312990225031523939052508607759243250188287097750588914367521053959345668055186832332787045662963078397504018807715392960601335976357883811180112341698293371201049632869977249302236622621699234119493749073916008678750786666819997176697038376196118804116716975373282870656258704957682278423644588902936679369154044196249207214601822064262435373695873825817575599238101248441408209650556189201067301514998273587816476142178705661273043447192820356573773913786306131606023357515423791484209269626206878508755607858919242425289286095119422547187835861060432583030847769022194806519722212447758347346791178912408505733952772306628017382550534678898257815874728673317372284375303053323408468167254611026437551801231541912793790913422108488732757120010684514012533238560309533019987186705588835445504859888151036911954055215773201375946529891189812690870085483497088017712122552666058455059936853633706566900750540774307902309164738988806100446196714311053193066951220102333983821759223929922013678007779738786418494987806612545698856107389938456810424244204873388615673547566616866244454169605628014412291611451765068958232619289272686486945516547539090280496580182288836436505044187868118389003916522421322643586542525535803224788180347387902759407060160623920462782837365816529996136978572309761001279895070985610081586384208815084656100626409175317902884156249248526679559180968881008508164339790209860858431119397346185325254895349851882006212625857624042752893405562103174030823667548861693661859819611656774686679715935529682857737308531808601750913692283974960203706056929350007493209048112243345730549473501374364537471698730356115130855517757354602908528434287869599262638611262769358483332802657244624776117162013407544599601450603094061095172720789846305445104678197570585435583737049413125247736552713639294132640977908309820400638168234079254638750793166556387093094743218025998902385905708677068648938238992585315302912084195472594224131023800637251007595298911878008544604873064906948177016094573573777728040953504649869461033961008297078258466692987587913832536771998272889951034875467229988994889776100568681851888048003719645433189575714412481670846566358014708990974955225290246431142147414693055139527214364667419629670875959779748609753322156339803928542471534455978846796349987962768303499866353660914900152119074363766433193087641134701709478550278335438532273054021198048776198949447536149604664999909765498116306121811536666873338047658764565562640972695831638638199753280657501699481208238506130137934158800060011491420493312688962060049682290111585396201167610114740229031163917247652052229009013626786244990601420542303084472493898547291089170362326062737445942446864543459104296452551245121397810317477055424349652972866645994919659354199437378997906754193497224618678616737264501532046476874904030717387612623681145164754846597081253127904697801206580251359105073748042829769589776847009577041503254064203751541838800579722968536909708088891181616971313239525179752928192609300095145697667234785818035773056545801456864593507973517738777466001189246136414183455593421822682889059132592781193482474869489835271586449369035444965057373573390721751871072566906612485250101658343497175981787879737304324179824714682814242855408886098694325740079246732362452312813136503928601007632605080868025728805383874434561606856908041292646794274786360574693108024708497811563927532133357504781605490174295478729879842663964281697608520355994476860958930801570924087047898715048808025506370947612861096443376564076411508577348943480835733086197898652698798803460752392913302698690090069089526326798618737853790334967463666436893788733442736100322152857887632375592257909311169234919942781940841150019807688214226402816888822762495704801304215947368346127244422757007009899005725673400787091539032824466261270510162368739538555642892697525691058402189116808110037754811446950650446601604695494538759716363782880777749137782251984361071674394377502635609799206194889729925980953897084301903247452859059103828163073607365230043404209119530540490112837724802363429338841002929832809801196767148518642387148083350340526540597028936470866747999289726057655782206120497437603525865075299202435211678297565423432410415058074491070228725286203668034048721848217579715396193963971040952155756682383546492782074513143751152515627751898013245820913639448038672646715801874931348385030042367241775408657773993823319634162294280034573152855274860161918725084507169320195859301853325906193514926066905163466932451845581962122715158040951192854180101190197692458142876869428199150844782820138452522921701058988727882184961678762571512358716697583996074306066753650648196541298835195202372267842004859043701255431405279952804970866349466829607218970152746418565595648756217286146044240038514725728703815247403817168945401617853074463916610544347617423561874408883461546220909279149263970278042530897877672049218647888423625189820078492127621447126228827242939871697840857861845865319409351916647729964416840953448088622055353315820952365478567881034786803278974250720765072882914821430056234179006291714035417435594430793645682481560375764520602753974752001127264415420468726178833809296087576199166466041507564018468749768717172875583259457179226315115385291181559534920506536698132439080956873092469850129753904310506691193979525101055590545470678813039018558981766347843872595440736253679232757500777282998079081804157557381412813288563890701178403409352132780256236392738365528197100074772037581047995461917315128913467871353242778476349937293927076458533574006739688968325028998803516226054595142493030805852667546253884542525185970073727389418110531988000148572299375147940628566987189878506313965165925945500480484958094847402414411081413737268645801868519121004341201086226062893232667975106943748208046136745766954389050454369172095403644194565047122450878376269819509513509348722296809829363966965525540078896454999834667269061325634621782312231518624189624426147950908233267829799107740340811974361405476721952763397736575998517891251756928272931196564995787830355189484028834831981213261244131537830402566170047041761713283083810133425119935513667351835671003051854365515796968151069394793364244610018340273734518101904634065499539994913985400266039519037481486977479233321639404878054445007356393289298189856373530075941300991877746463506047687593204425281837657673791497675001729275449037165175297818598496641837953400055609022980320028720513551596183366483199256364842471792122299329829314086289997870293485344372428645776413210333842012854043808501105407167002202189132691065604873395139099601629742775559024707962223585412241047549230530440276927147699006286425951283428272755104940013816855859474277368508714044639395858678421770356043707224622583184269828093278030658443799461882092691580787078981034927334602496802892961553420126031427072969975100286283749903515856344134572242406430867899106888850076207471153757076250889854885808401410033233159170817697497471860726868618394730656165878613443664673787601753538942637246676019807526199825717882023213064944087967943698318908949405222446445428991430786737859768260868666773933180760529152492841663390939852145383727357536775457054117308877060667548680584928581525478022970053797420853698211810602155906499649411420539569488206290226740195360910559541016765992015944636962832129235515918487345235366316657964290465530061837403637193538051255600552223724988512972185452210090782307579644449761788545293791032660510450573494286431707721294057659112851781149486693701663534436491265335358549422646665896119885098265365579233958045083533415565635993173764486708541862392858979119407311130814693619419404205271584668520609750709871438804430418040997143102212489226018238413283617404913532464208475656251909999724734393755651854957368650077257991020856080036618446955393520534516371393884950294725172141672325776216558760276372828395942126125564850141480297076258550908274568550650185703557822458018019792338463276827644750555212208817279538770439961331502193717401905094656738950148139699275010276283664987964002592564571662737264063431795888712367948289810024732091043150681078932027331217501596705538398536469570568899354481394964913879435118306094651834122425889416553967919361167920781484506875900324366348716337035895825779185562496271614953535657796167512876725100488298881075421489915663163024812480407455590803058951966792180830225661868189731357368395775066937705906580612962142580200570225748756655856019252912261580724391391630625620086107414981666222230026839632785279986876147852694358351831799026089195614875204498852671321891868979569870918431408160968933289274500437543041302445102229957399147955573916129580117568514470359957011957631865866376135267693886750395603211863002579304300395990788798981400229542915471731789392147731693970961434981458469332863991013783867212333346291100302438578233920947190823107482553512347283864909278243759731235697624635176115209463127567236098900160187466611582892329197547749021756413749184370200319189649954284825192816689016250481325990753423751628289819832031158019849349736243257300149919697440575602469471759997080224383001573531746346044755345427494973948113648660678104697401719677071183726388601567382568607310671364774149903178360351267042568842602222305062530408768449923790300203154264718288830993023927778563676340414712299914659778714752736318177523758008559518596536635425969357291113816470536503548040725997892233743755163946458219067369458929568615935005187833363747273182930968322639441317288492096203951091202322074007004136774009202171353874602488845027694057111543533829978362427697200248387405146692062454413748691231970573566155994839509755250696051684736299353960192722053436602507298303027141142602911061232230467209041876020155271547733051814797317006898968677554299341884268311039835762504799445074624359410076618323023408807864960436259888200605361704959605962813665141031633187260812437610768581828610921473322286734265619104644529260977151322162895405873513703784975146789955100172285156620127055279837605250256135070037129249582976887714030830487093343913406142914031129290513411440849462929904819773302118153746657688521598727251540065245173852204822610266493352760903510008087085787562797697157535953050552676723854949452321001376339162504417640120999028173664083766547386388655469311780369295450296314515478503708437384729566315026850588017999524099100429834107215130069694057702867987645021944007998299445384321012925505563514193242268973734539871836641005213057512627456784780645137730353271159013518418963085973981951950211468533917624004905651071388019347788832831038855093913252223749121207276972755965109118464113975217758791279732726731484748826304054234203935031673989291830508950323815402421389316409040702421795934878014305251368572199008294942405438179853293953716717560657679993877895913136656097729765141778770988583694222975949439473194325660094190586046724079009189574001245606384119020712839304279585141917875782750476773320034666679733910028337879778748693397488077867923541800350237945498878179712922653467034945363890343671752673932745648238602485044925010770953244614363171691186820335404732364948698617356790097726226587560678441911752905351400765375053797092561285526356259268187695838597578627014568798109374366123149607182413319237118926667746726770970637509895384909502586537374405831445935799224610457875597018308924159397410378782407723299265652145496481572238150601373523555521228742834942595598309243411416374234642342249800793165647260670983281151903563773598147103719248134438800402890821790693762606275282132079239179530722688881933820343356747643459042606214397185846280482459604830979069406377993690561565420335267254180775405083170031534865195807736006506863954452584897653139962292225816063815402509216572897170893269604121481295755457279431835043764955627079182454064021031676673964695491286687411403665155994800587629031286924995808282117899902782133257835940154143496036500463366082031083728866185963355482727493743278336394670037732982974531202385274105700762944333070976300796651241136656908990372629600662684045536583005783091658138829821014417254580587656647606764388159134029436179797224087353870913737117293027063496288678742355297064515697099265966691383741426219582990756098898251157075563150494026393647975662397927755389766585466190509342076666213487579824578665614955165587037756296278100308289033162940043004242924388364871269820137304749774328160749279067774972952027776614544723680021176481362562518866054840165000561013325942286720578958085858478021733148072853537480614417835849092857616036705711921593825290932632633934017859828405335633537563301510969828688519492088618132124986171000260128065353588879061132804033631899270376626795452364196823559999860922953521215049473559114454382612874771058918501453329432363071184150013627686237324871690013888388381524122365232238375102864876864704647327375761894554698717139985739252378831414759024230185019330070765698618319797912353514759948318218999781890759495838261900706403653204785579948740097177569864410760647474759784185826568295579550371940208907292214063860191530492063455196641609762504461356536895510073491974201636082596097207120262325336240658379625801391857772447759123698429176757020520758320028650531035050497884385672777692600120039898913837794438852149065517676631442200518380531354222839142066435837484185811029555587746109873134012655553339129768972882736668885933964490121979291083290105491081985785708227393582306609113841952956741072513908586083931174157272036278981897473762480779665566627158292407076658839149126777378523214220938794532694117900050960222144495203590789602166240391821495610022045446689739827372854889919753860139691728348370067369753773366611194836728844083910024809791252164009091256274995126839183071819936986657990535821422491610671429571709736980561724617062983562304936376752943467848987879981693479780890664630297710386210812368656109592828597362627473652536192588920588160910395580383314926878340021791316746726808143284834276878192329405414873737783826813229463520262934224357954950879466669598014862814396331927816887337108772388311070325420812404947221715402169855159085190752848335215888064324036048342609400952411566854344500158335967972823988864630252919767428956620688368401937339448961535105354532670271211489142122899005618548953072196851484212040848659869101613976852055153322059993007491948902581158868898980829587911137046324691719635230956687622949081951261127222829791798820109234448667019322758134984394930982443648034379190951075378348650405772476790363260215309012696359279010182607018958225284268215583285428410250951575158057850042510243054041219041993223244677236607074230328422116843127893350871715067877945690414980146056045444418878512274757886036350090248070549018986732120622993181023328367318196771318847572089631917153078136869280239502305936378294494309309757239136993150626972906487492343658600592762723237178262702428675635391183229235989669712196154444488102500832030413620428389168489481833328704799397558095192287206946686768636467929302955640845163951211076206846369971402848538573216536171017824663347583282807465803820334370895291797168645974916676356426977950606720028624500402259354292878257368780572260365088197587038953875412250893811683447499890704045598139395644267311914803333090795510056881931094750635974895574873816909779031713572791815899335014132666527054935356311795806475872826135168875233429748811494865849044112959214209013656180507435711129262707066043979280126119518030928970786323167036845822083225084594957197680193346524008219128590648198040048306594070459283294260860904179437935391459982898569783279812253612977308006705507765910421724566228367850735669158032763679129146856441498575765163541301051954720066015179624024483356775239707104503938458164151343926004245686631814886725992860452180118883705015817140693080413130193509028150383113270884911217453927129128180070422254379798084642288564926519551848804897250680396768429976546945088340115323432668482402050367669760059882001359373049512064295027856669375667120075801008309613691992363695227468465177120720874462888316375404121411539546545549213548852158832948561429948458411021520053369337649867679074449768111065633966704139793504195059696037201790600180177064271456388663310574446563891690854319193922988603361169902756254910677501526952477631977571921267857676367417996270263804293030093548386782105009302167197384727307368441791664084761399240049380352840067464860415515305222452814061661084642100027870978381043750119200195968234690607400507868478148929312421523280854636857008701897439659732825642130875860778849334891675436686562126064884673600951871322401194469136528148987114480347286668912279075370718030121967188258480425587239763229378438333389396181057601002874565848912507539807589197809713931417694459112349844913002065999003640120627672393340779176631567130184100724252062648433019199807760380139291583359644856402695186007011008290681722212101555129600664154811072993977244511367607293110154064975624238441774141250416314025609902031479971669378496208497677492237280354279026741831364985050228354302497638883895869683049503536395153227264324233378700419784868237752649492978061889039397456332624967152192770296392259629143325345201094396735302186477556191157234582636871836294726026114213662596679710473091130079664221740982169567824015416212522712002271603724702211273410166676622806293571330864350134676083289794634876911542037733703957693885805153103090083821185346828519814111820761909249226895185540987721391537636344410009054823045548112739625669672823317508630238280617513382475155326625048708440499837626115671423875093525153865099796674410841082638402769514706697573665926630667055821257869572680575312967588490776121041873314198757373446799202033973117203775588265436566688713965388207052470402584895002637749361033097739321596600705577907635117512331811876453149723748076737463802318608576508462238201146746752362220395883972175300797875136642141940059014853143147949891324477529627587154017469206444243845775617831031235586553679360357429009225228795771924662407142179737959576649083862185283892822138777426181655374451490636299683113802500418640999314321886888633676140944391003171763015527019088155563768514121152381707520211786600052000069448355825037592436445468273515356593933998394596034719083676873011415837656940082553420116777844878911745174331542717981971584214524964524055949413028655548985050782743295098935733261175007357474259626184821019090363364377128940346881681477190266906719098793023250707546250300781682785168468038787570057432157822820031514889989617752950984048336690054469782737235879095004057881180847112088896285695196154923775901919134931015789208192073054320768284101263188108403331141589977161969657485894223843121131517279841906728854695151141581814880834659638874160120090567490961114595421070173769795981170310417801288151207470647994693021808248472884327944973236105075740336948184970841049991084444688558555628992747700757503633398654737985107875152309662592443312234541173047142515870022871095795493890343576598758691481597886959893749092225723418824873658387591454213396480608539809601870100596388663896755668704043859419576333588844364343463425607043816831785714134322157450166115195622468294478663342850132064071317584913969983383661121058984977812515017439546599616921543927173436718346953237912521543690254617949423307811815158503757757199162772379019129890409896240240908862344330394191059068735535721268906368397231777167021766250283042919502745693868136682347188448387788626076602199175917049963311142503568004654028988876492127164640141495276340736210370439671400208477640693411690325918038547807889873358729892107430852941143882909155050187938558873475833854881114519361657913033131484402931470855865139238170365740849433694172720065987740004588212928587057578035312610540443332182693104962164354710578044715312322326937523407066875834739890175668340320359742149942477927143088586535854000907723750912451613719905693765598332148096862723926441858738467619066067059572604773617426351618962786814784238312817822906008866176017785970323323407882225274641622429955262459433935818886845563747666519188114924744842092665707667465770125437517048156826311829475249869842763260817958871058093299015084718430894187089261466469537131345908181166405074671963646295456093760660854305827243911377083284777790283364329799625773390098799550029983910565533327790309042517696124739216880101165104393830438566988053990364695001124269751540385658742297094569557682513574264667909884076690156736970374774539814227143743327516432923513256030874248729723910210184260166161197379861271745134389467400272746508442962878938808874627895171715740877087493540112255240253327754327764122270633341471307750602475089842760272241886932722937527132317634590624471758232474043816646544352925494841695291303457016177562829525269274939867931412323148748193511042563242584577178111221784485640905239423838530055311382699749984888241935767598733489764280090920095300238138526580607513461531504004622922338682941972429621223415618571006048181713159484325288972928005933929504514653741231955796110336972662009053459476376990253496533330082834887734006962396595446141273641179735490824921187380759470204194442842982852612654388693881295754942606396719810534118950363639862584778761291867057590080429667650878683565610627382337845966729445963185264696080177817240929638979584960401157054846210521456821339266332864800712329064004716616239449210010819073264236377201389618472155773629854500922630166398441236103428048065181609679729223920203876902573550976957524984129297402206518313928303647763428078233532367288008168653233770178925833592963270134846254574421867586889179308739536158306896064331526578360161693458021363064977195552780806083048317080129480204486281783407335370860637095752622687212096844608233609845368655806499943089344136186797302889154192542842929965624032386571867525998763675687474816369995750146565624098499736057834780278799076360852694777271119780065659923582605431770736863686088718306466980368912920606068345163926319180531316037458311629908709808602375085769399717664604620087608375542776752568753150338554269467216730295564287373921080399361284620199698842454360943921190320723412388092819354370152651770264659846430818272238995791515680563250069268440668631651726123033396696050998457532065701979795751717276146074898012439976583582828321789661563770686926702563260530323957675575481084491571638294274920022830662629339598538895729094911946743898224791087608652186501962421507079776177853569491247975443969202324140838084480101536624745280766900796239357817898397149070740453420162119811051147207504601951603385966286273255724815591209016285632782477456914708926437556843544180077247328272741720599426108181101676738943651568898472081510742194445236775073652548271221962967604604484756069581301539361045462947823252453991814951020033057117583475753659533300277165187985810179565255842871152561905131990848293778058168540534249370721782905027925371759093372574363067759960261783356083091518489781350119547859816842574319985279530690197434783814743756122556894406987013902166419848040793405814220549994627872623151047906036021968411891906136274288864026589998292182061879827158746334220220014365435766298162253527346182150898913990271211607036135510481832046269726055802658163940215211404788612981713270325417347535488675191315000935010123661314694892652848212516223039954170696578827094907873987276213869789490091462546485387156140404090007373465889408681572061809784179561335897968864372498432396860238422668949243200964654723143700546998333668553042284578850596684472836052349931611854673726149732620134942625114843365224706813389860473168001785024954145447186370613361477768318723865500053125608858386492494650585514626884577040077038634154210159379574600992434860994009008954264005412931790558485513006705656525523054806520139884758667128255627782903364757176218617406776105977751137890101772399700543290408725319567918037915393293381469521684019967199529362832071262523330115310939491623913222054396835310402701130908827679641932628222435127481578012172689603300236216729179389000748142606343475622544096160703111517104331945252125779788316114128584866019863250433528123186508195621919926889329014617189475378287520265777155524831154489940302788050905550763050288503096478760251570201166726760613700331867777283839990105024211198369754936769243786935552007111805172763733866986288936269842892367906261052122170646778123071320437490973946000157014906171731526057799699202758983172330038402086454798889327877628551366276741263467406568497291015443888735421013176114034221751671201017290768216734204746584111570571151778963726766253492671428579223153047997367576790216457047443962150892274096846587535064605609279269630079004908586826704168493512649553088413064471324111987346495530763770522971223577158283721575439877672866440438041181689937006240952351603454997975008234686262331459511633549727404590352532829976081833545070966609001323511934911549302258209058657494623918089536798966596440610519912094323648922808234918819816301654304367346406597147366976654283925832752278303050244974330167028040635615427656945725380160350053915115819356476139196659165335216993833512304169760499967989698082676540301016701309317663212928947947945263980928122061485728100268330114821118838892182153247923382053393627671174636205005193527458174307150238017098474073323861698085638023020913301420777499072147794981467385173092436209022167815230360823903110853873946706115178159763774324753099973742112703334691778637533719297282905312909492710717129903369196556771992138234454225516942593106520821125776439990433961088692057752444386106332081843144492884271057642277777632034163611361534673566844210596984879728390134957800903145961355633035865669921221513636262891800923322701182029249563173816129192369310979437941180727541370687856375211433895136828671903583171750806114735792140785963352716570605409632711352196212192481600349943029396903076813416831289373675063164057752386935042476386284816756334323010868589217033149536186169239284344348678734204344248871513559761624959619962452684888158614655565613518031574279137645068687273575498304677136299050063491172834262811468078386839983360090577112831503149604066076697187137027539823467774523248248664476341752115111113206781853672701473276899653803332903942981359316681887399675767282712078808465870909407060304191046265462927333982506261526001554854529850693385968422681746470159977755555973857407786829897937524120594369815695663313582405046499470810545799680811077751570562099269055894259939012177831945745161207940173747911996495465859920603999053419623297938421845598491017959440234536675137175503791796945299078187521817208859510357836152172297846433518715580993438273805584699448216925802993349587578333903667663550201336835868418739057899872403823841688866099678300716931495823514104576316391018140610533381355402835647811622392050036589472889816920266823801045605322178112465015714464790546126380150439630357511836505460351263381363605169514534834976434654364713045981909689053895219069687524908736810607266422048253126910510655627741787954704815438764435531829207630349383300794286352600846832444632277018238276150128118716769476907473106064040179152060829651922490524520144930869417126671422473564636687808502185721446138151644706489855612995177372707028859150586390331397000785774752797526690958999904374308339873349948674919661442724596478604266321184492399848505779612298765714465827417467520781171886109559321703136554297257413560413849636609868872506671051273617947654725800290018473045042497980810785315924440369889575372099255727335917345078933887588145769566973074643456765916781973312592345515725117790641776725861392960923178394241803664111826648667545600461322459403461956763006782871287244420440483485341857239851826082055383973878897326822962843295536441142241557390759312588341571000440737332329737873236839508179546311587368763294167819063460387094214571058631287016774768347354286679429565074437121503134169795069401177628593071572649296548836802281806418581948931482243440516362284564867959184904271273247215716789931884780065168508768541750044196263866435488469809625873825785578331403622370546223481533241935093593744222800829324133737725726123584624479866683028939347722610326518072396920551741283293187226137844563642869398997476328438602019733025992644670663725042673723752474412154510181100837759639995724422154900744015016065423607478814932267893186005946264448937952098388595680978752751223593319191368528747561232427793722869231795125369872181420224989654165646737271436462957704638215507236195210755000402453975397834112224247783834949344172576701320916719676087702747252635387301874030995176105570886061354645291218002512035909999217664283109720284105746526440494713635676059014497376597261867404260380525175965207676472498053420562680590383633225578194084726746842626508252372653381004640397002655444748944584549036896254087647814490712565312763286161262746245996445460556375641855094573618458427631297400212640687275094256420475199797218924072110954911922955523341853178475749719373758422119156219508907774699713595554897091531804597577517844043717249476416294367169775218248877994439841357221265495365275136041966801065942954100206792125860941563036906542828387612101885994452913431301363342899800933702099472815468099790630291734081830593714010133566378101378517875626177671130592516516704124064082048558875775522049912393594746727558501726745126412728653981692245548666005136159265414623724986236464919365521308742086906558960091380225507070467834588350698643808410367321690958445472658981304136968221120344328681440304361929140078813980333594123112320605056643364293450510803838699501117996947706899245081677085934955809721974632066109384073065501480343263180608818673393548688342552873371298672146819060165925810114562684265351122846337605914570357871267502075697013182974487213790403927411057014348486098284600477830271438612524914035707531112270342408450179459483219395788720062179105327746817448527539563945663575039153360663830156999805025846103915639511803832101759242046105764448473187575377581075634750579837497117542323522085450326610272141011446754398989054617826744166643333868716678037908813265626945778264895814775440822987045821331544917905222850567095153502043452018217933884701264452601439386081130086633985533714652317121254359841696604907346723107613941693780928711158043938380508724286343489447867466385363864641780280431483284500710890387025990979976570530180557193036965980847007753724110892044124703803081276742471204352443804540984382458107725871447104832222415287988741963228817271198610385477722385383838384248879958885510533549576266412551741762201661803087318350226481704251576544673463991582023312573538976399517033772236374217891684387068269202004483170096931781588083808003135891878287089033835682227346402039768828485960950941091473116586606505071208210306743997181408145633528918402395389134310333949677075273448776336328736533698966366673787123875280651871427415722938461195479187380068698234430939968284306992740000415585002047098608662750067785812096356719076192971683717496998250757798761612293424864862134710028830058357349439629132065364477415276720727769739105290623009101604774333438094741448317993619347006156843959943509063617506975049202110812450576127715234860374389700742493118782904269456108767234886194810942330011986088264360648098046541713299914250024448123171354332950289007240454206380186620500759392053310318747510683305480273134009011253738940414357678650911626044016596266254493810327200189538155712950315257777653514352743241244253072536822794518538190477689520738432874516776373245321281850936040705727358158320980402956831461515467186400959724201216946988204693939684595290547767020307003551126324854750590976976042637643604516994241210797322172624120130837179808382888193186780298376840268782072272427277466237933797316185762128086361505730914301859074938248625756246734786768977326911281730476860725507248540118443244420663188583033862413769512765626618176274227644313446958438160206768620530629472541377005113756050568061632688717486335299200433594546777636892754192170981233333528893456978167084026825518241145847359508287481149567092854203018056265307404823407722725835519311436876992290633717790881487836597242021511266940510729568766789749250310945333648305820396908615126928272212243586707900833744331557864886750102719165497754431279319443793386603087371598978312370597361863727041178140531769675184421901194171876785984403335942809109110572755254727391671793578526350544939228650097001735693431006441688652926899820216412303322824035783368862794105133572401231458933454722326708334827046745880486013912206423921070548644622223822172433287712158751734980401748992137517318205296362328417546772510984155488561002970997725050898595154474436701394672082003197470966479457840744279576350495986893455112879903411502200071502837099635988363438947980626566881433720826265799764138610172394623040812374544303313090338064513028011677520011596587031362838612466218753432370497311576951451435683817919666357491404266736063149285456073380410250079695721984788174316962130625565548323728602503353805640479673558745347467290156749557552515181478734512130700253214537908546879467002717707988859849860850647278978064467175128251396810448739493684515596338364662426164380634217115985580261892269633644701362879552605400263163360672469984223346102157938080256372861028858169464118801731313136263812526060973720177518759901652972197797898254303357059258228560744655191443347173641052588303091805911272035373117110687014284556341473393237928940952062648405759339999837764987317417150479257885801243520780723801678529363191213986603642209438133521464009955078727662363137878174921506735012510903038762914208213700814590921011067373936180133013824999494896753668496853778720612124773183509737068461855194024868804518570595830172903805574150053218177292849392851846043098016951685423038910487845386534283318587944991449480704902663347601256812653883391368501285944783364660342942589192727431825029813154103155104427280541147292035917194892515680281466039319667678694597576495755774584274179158288313702385354979370562104572361884284780853769489655923034183741763558653295349448259480458680350470174677398264110418976238242071773390069092320540732367668018319279478475160719535912430710825314925040373028248878080859215954915138136028323375716960272695461107666326390209493861853555487878681586978182773442273768357236530312613187057871971573172213355955865475760097934088182974016418318507418403252910707805843693738385968479123472840499281463865179747255098527265601551029799188690723076797434473496639252049547433158923697361321584931050768389863384467565468783232703036341354208867843889967983788136953664190014515849660797799098572808732753204558129723160317614276999375731200638958682922361098926032669096050396091144619111600430205223434834592786582686415836498372154943223018699441470997693896223909482684966857061264747454256483845849059698513664573028455822300102841892833194966209136908897385062663770224564591679177916568019885853048172418632727682472641053159864988817690241620478872908370465036521045211688629167366110712604734951553685439743848115923942640770620069912823405045218932116251462973517788905969119681255952293705295471444672528463240838519130348255997923272159634696708871937123647252513101761539185970914938947701875919176960806148386006522161544299537532853921062030146841008645547336837639410759602997202000528532185325019889550699856288878590569654015941195811206282911756645868405158851094008006980001211431792978567328520431256283368349838996169098693084601376730974620751611749657831070497812435591923796514121266093575050657650557372105229479201948813661132256746941639140505879087945873926019742552877578715244430430112313377586236426039297930706458070710594595219991258205180422054079172637328554517998142524036089803358790169453933261233059143601968227178778185974978636204768285609297899978858212549573690939828787098460159426280479831637473410780380485835971723345375755236051053266598919661598459827558258864168555518854750155652704026726845608064688577535195314453207402798713540181584806087908118722565742670022538663690038225327442084442120079774701615333127140357984701544248564908476662529219200336944339668423432432964649142888615842670710475504510650908590201827085596133440876772325224088508059823290642074739708907557413565266648064614513086850785420906688885905945428375031250082141346707051022870524202941348343489051398447287990999731440610872645140941692817242708104566743178819500508299754090235390855948048991884717827848100861064149395810972674503092832107077803895887773964676513064306808594299734080028389937328116249753790416053736386862885871060248279014798984101006176872405021140834297533840402367726627208688818786287539940138714916873824683920808883800515573065402107123782378600192296696082176668285240225741636476794216860168380790538985039505491809839126080986615032167170987931046359749619266210881105194939059674407536745721606292440650682096826065690215931088497048922013937187642086173788142100454014362720932380162098866915603175889128851985373196583108080738350442377220270061608508158504378843175846476592718785175998040068901076885295325502255913162434245435483039395407800643565214713530884532832682238363071441434699971386563219710350993634207813022932853057471235902551777964783674422356685006798589009664370521772701392114856925042083771336241212748987007425085182662570000901563038584877210401590648682479759040528524292983421732563296968345002578406307929646058867055832341146717927893919002943960950585587652893397767200422857136888375960333338798985876919401115752316092252980323239110119373195477026061496618402209344280086406676009989527210709646670396737987705551176595258804859290639795472947228069475075628115419105392507676794236313152584519087032386327930869029803459642265032495274159709342948404468786942557169472371975705161586969022613693590029109596224659228410559919173478133601373501862726036736329236201796471501002978193846183243043988006869567261501074063417706540537130217825809313743623061128367598621952522596046737154169244723685639639153119642350512651129437832030625870859921001155306710260580364511136192051071821401872085179419915323401060739043183286715167558975261333375676016743179096091338081074806542464964596540746385100099019339936830090039894951859244121022842877576770666956185350248875893169287637742443273994000096197093545796463909578362584126737444458095195376419313985210465387135913255237875139027758328086591500162519518095783855612864117609144135289734957850619760906228571362497469944985149269689306780727927744252513411211257144352689149727880915272237284887450679714163892538304630356827844748653955270297653412851244487180412991402530850182309948883404094952674164805587890398556368067141846012192085171290732886313545154994514744402578574719283944393040076492626687848638394692975361589378744273834372575271830984264275364962709336733564858028533080440921992397433865461265758397186727122400722519619019558732309046904672491522911146078220693885664412166557875911277351371173006095629523075133493720417477286591054718372778778612537989306387745370670555337415973380880505152129526534606446654238663090561334878157662667848828195540004555310929934438979814694584645236252981950643037453752700218589775076887220782600496650590372441382193443667098954920171615246236439615235537732102264713532193797465358178512482222344256757101892660515969309901521762146405269561113894999882559505096893580347076793330664791868604900729128811673738107485475053082332906192271545955707409468843230998508663868183362824439086389898454157018754982611408254245782741445457461243425990173877698160613735288264358145420685392868108938933470297310744157720857487884305117620528488321488213824534462587682130893099099454164566257123503304899878920383488173048480665885282300253590071945587644106313298407596562655868382331968649096835499192372517708396934853274258634050666355786835971332545667837007864779648468327716044957916087696428885535743262593817816607745328878892654062156018473314308974114857363289119282863140248691274112862387284744623013629336041365320214704216606565957559509338297432254007827980406462823183344004612519172252277110847977659434428620498837583670404839392355738776357339739021681018011737891747276404771037714660625514845742306067603847088607418159349655033954165355224800558194718411491294087138509655887105635849639526781156564140433635092344938760593495292533521630388779725581685245743084411218150902618714043392824187991442460622071441921404001204283524092432695775226433974048738197036276746769227582180161895950037207492995477446502328476152747970896016803997545437611576088087949469351837580382355251067442246474819404046474114330836999230321911846069086734942910282320265804991255020023512941670638257425809749837136811843552698283658893662050398332528717100938514420424167034933149926771647735924970470451275468216343943516716479901188410699755467998241026994205442781153944086925249804936081380471059264216612483388360493018100828597860710102796899206317695579685552844831822727333385704532985815952196597642422344491286363053728375358777319098914838083856109228834831963924675723166902185829637315068690652300195053418837839078327124043365632118948979397340004596776600328039246000654611223747054255211977482656263397050961372685012991732111957230288009431693978219649263212783782425262968487497358562797520874643937548105181010853663188769647947053611641065752908817891559687953391306109076045825554206156543697731657483922769074778792068699235757294161528934935970888999232967550264258833084661674252742220409415113438179840305075446900649109265703958484778643221745894398161766384852438359366015487977361154839213884844826442356380237898470311154726981516949729337804803859933773631328803715571999435837308603756831342224807828054647625699553760194458801406593442027196234857401328219809064738805327004732205368847110987555363099697241717997891475071475678087117707817811589367855717084508924524021060206430213193006514364669917026663870583221462685608399508858233270221689344257732298156470134474897982438990383273250255322902442945154428334333718483948612070423039384745877027747835125288735896135049855906532155377102482533332256634825010262178634046969673697772435288382498198249169921506271924990627373063112292211774265641180434853302551632560879138404852906488811001183520515843930232766798740306756272077837035585574339886927139999961261256270091663906175992358892645532468677164297777738106218059612995560710631924231035018396933755459223440681729928524335080494676337994098517541916707895094762174480117159124483666116979190757634995926495856628270249295110313046276321141301735452216406775592528359048974282538503874074040954173810089403857767961953231746607466905762083169966199565493323172369434962011351633888152498219125925843543369388522696689839174412596398493406367867192345372072659468856433940277546657781735399857611701965272162579536660241032509158255077608870039284526512529080827082737961070404897194516182851688255280909698943249446519623780013816307843722405526623560150496272058444721117439901502761532402471726296713930518399046218301261163957997804439456049504322874657306626914275322636467557735647956793787279731238265335564190641890518171778823143038787144722015688958136127558991270420738572111787953704404543898194405666366013815260974833215866086856462700757637150787133527669090445268907165242400745584441544469145839706795210162209141168423290297219742615390101332723777785081934245201489090456185083718709650032312738624731570942837726165799580537997049045900021537723989569151725293071782376605984952673236499092834372827556661263510721501888791703923600080143531233862404574381387190930375397104049350392187515759560293328837164614849272508466492193588695754713567897314830618884149380168356246751076499995888080766752503021709632321071801557327870200348504384347026367527306096994539964785319412828695733342467769188951664712090745744272538308217532122253789970531929633446098885356422542400515639469710422332503917631506296382294511125529741038732313082989087407652456617022958138007641489622744283797975081119953032739075591956762483641998223307607343742742866313057871250221094952298222688538679696637131079421260871073988181574415186885190192164100290833538733364340975476387483241685867385624840076335738820641241862991597782540261663253027636072878205435205466323957267916563676810371289103586089291214461003508529310901048491234561228572302126230959768937345002232656578852103459184432789092654032428193834037834570222971356994388095623604427848996337341000210976206057492556767078931454513715961595009802876946066564598798688182638809481338730594989908039631693177990886251361381979651024683737863037228975911677133215463131229941342689275694357325370769020185764459803639813082427245462454891509383935275927642812507964107658002299715507892951281016217691227788072480692636645347066121959773900192950793153836861197864477306257243635852762474834480836065952427115337664641978581588281311788871615035659874582751150258136299649798323579605638150487937664535933768609673968460330623928013755731510581076569371930569378632696139272806352525172461656203495400596355994613638883641948178073477566008933571983732389002497416454043671853340561439722471367509481105902224440774571355884039261065916636238690050874396228309607994385601258559057058975607022149607097807117458054582170248412055256512307901691823507138501815795648607465102551897991845065519311564942633804356702751731109483577146144762674573832653256150260064366207690122085729129504296146688702764296794734098234346427022907589731801033934264416408570442436482490467013814200942530922156615298837034301903257667319543315848595852417226768021765910618492841001392082076919184014271104292416564777316557760907489080842153098569877179744184140202785794970335128656243645336963570116659263943702179185505235800650552495159830187768694029059922798613031000575644070826413580170582697052959920199586159803327349599400227997940278015803555150096111744481745438102412144534638083038741406708846903674269948285604852621216188298359134683891968123758888737890772778390565062023438450146481321613109460778136050608474843850550207640453514861810621386652614824454895855656254424673099802839747702127118407105301446547681891401317278719160469938920852640993626768393131660686151776936263478863051670248282539556551819809469542796995677059770615148969415541076135075503649000721884590017800106607327885162097813154089527119689153721170595097597392138600262266498033528553290597331296511989672637467469995723636070340526131472574117894376258005470609906337962469064747167545753962931583276400313796463088950424933595884467229730746375401087658812353623589929835253215927585314281880372368058376087858971309416498331717157923092405505423877250493631643162519853612917526071902599076899280326230174626510444065505268124018345422545541653055874322667279424483510739572708485886884816957188888194006921491646630009181297828260086992723194456126627262644094989858160468737923205310470694881948251621348504247668559125505179987469866945826481246522778528179382513226643296775394064073777635821659778095597728714290298155828181248478515502060898849003225966498855930678818341163040592840831363362572782707528239125926778905127750011595325547140834603636433754399453801704326585044616816403370592148823611820057715442129497065378949563305427827407312566185032120199436098728785711457196298690234410082434766594293908172923027134243715701165741730646995760004809641667795224476085406244482095852235458688863423811549172650179970278495646387419970283441668790788873451701384960114322205981652438397423725701978099804144729685431411411478649869744404500474968117891711265281135854235266189764577533398325585765658241409126666538447942135315398923895634888525536002666538329735192041281077909401143590864533768052704691225977039378517772641094817308793250841826959696250465656066529097998537796984405813824183105016399527854314603053742993966300351181597328759069937755095452985548347919988992541301129389902726349699758726994222749281428968969561714915911879104084290981206556244014152461078470435018269236520582898900152030621694023538422793256849469279343658152812310325928615204728019060179823904655062812722005986462423246212042062412576507089114847310281271270626851193898817776463473353274407128005971908083491970665149653596483466753917711939480862609153012383351727941995527381645908113421385800121301594105206759541087958753862120790891181402826321142972251372271074837505124915049109295820379926175528900609403335688554773564815773445278289444759962113002085694805553431262414935488639610122300794918494875693618400982397933595963933774456727504805804585760690500878383238040034660848498551398703321913432490544674750553297775088365979981480396188010186413235652403176590877412938118532027480061427886000204063646099727751446088388236712126814293333146904188030158833189647525438144620138285955160733321518229749540981148349621161784506211385984852343838257834172927024124359982600531168666159904451732338994831713620614170031779322862204986961198238115737469037826875423803474831524151611291067936298859359133377741893536124307913317418738893321904842238942034107820798777777175265955590901305514338591395115579575739903479658758462129251860906829857826422519475078039102776097983049964980407447391032726172618355802127239197299503576386261331712168140564914335030321560830366533275789498529659764130296808861421260645808294798613919434192982431816515956945737184809291164456310198334322335297182828685986342411394407121350494991705004760841404324292221891650956456593308550766338958627608272459158786922603468814274884508189833314080849875561369967363186281908888065999999852467055018185784125799106973372039886667706453932487494986956888687093126822826436666514962560083387725348017128249577405606221015835568148688379379709351681764794664049784534631386656702118686133442212018868792644380834872244648244764489226554503493562737967756830654516767971012359882658196460841314471022228634656753398344412770145661920500471433872788666515293167171292554333020554381508141528752609947638900167344117966835145416634454726237807902223934456411549672759182902545738041588665578940298558706456134904840931999844114303326029401578491252183156405472101576137416026791788381238670971703266888495125858641940124458602331258127896470588248103060844955956785345858427566939476289062564491194908885754846072481311109420075905641480333760673087730207084937384620886911002269235612405100096868941316514428466241729905784727551124092698966764414257931951942690808809588101940360589160271596420857380714412648621478152601471740062730686703832654848409907191313944411412762857957236760321574891676767982530216280920157924679375003598197052261792870696572749002087687436723999672208650463365188096679525657301903359891678626158981491944587314485530150768845224299666733378031875670941763361801122616070869067290622660692248024427120781004623022746852767460307061654685557291610832200503044977559475481260901616458602046761078426873402452620812984709926387298653432828501567513468161761911452287945818799382471341655600127173124275128994634033378738314169832819516840058211798481014487130351051341673716948307867306638929023454862912983413280506845764864184404205812366396190724639679147934846860490143152447390455347966960225799328175217268787442041873829376700441839448445050380906958438036916926771526275061510425967726415536344722214885177724436166923384699374533030310112739683000007091118927370344377073845919701128624013748381016665827002390779690827158314454405218156609056412378464187155458127121768228540284300674034430668109075549556579620866087924498043074133719223304102014130336719218949339215873734603338156989074381709412939067572084003308157681912529236503824112430127146490745306390240864774343533257140790868927240726751722507854157489082802634948899890472864808980932961415437550517805703797646759156859432899810032618712340275840136601427959410536269533508834693415537622970875749800945016027736124183544581886197844830115597908047869484959256166961410530377314855637301658016917005801982867687349077796245134877053951513371187053133980315574620812819611007573867697763972891989932530234106222288755501656402574710035650144515090666164408849013213103653878788147463735235651835355333187824738033201251473308173855511536952550997602215571427978540105347728597190600032944516863804383317975876282969876403498150745007196474202236548966796738795316953350352671652020141429153891857448576140224358069497750850722023659528263488191551617732222930792364280886464870104435700135271424815143023788018865791403043936805908148113372200399540103162943768845629589896184320598486741707676952467106274403863901288948154118063530271556651438363145590594790866175621375342933439656808530029652783015198349016047804286347381545371960380853481088534100319430404323462527322104286676456176662007633913262870818782153027179463187140268374714631991032007822861039754331245636626537271152721623558754874321413560279219639558389305102059782896149194967540431323084300614618748987477393317723508478550236528893237714798060877771152084587844438165995323378154330598887096097389681907043880256959152716593936978246526509886657809649391557896642492153639322866478679633077341519765254452465780250822029371768564723936914625130851079660632360168906546086714077971531546872532372445954174761533556792563633641164857428887313057872207913472916587217472830287296131819366716291675506341395815172459973745528117273842122446397227700395839430993574653196777413071104161683405562015330537741003329638248100786654182677583168814409295681746536160732422207217126987769358659515988824547949212378218492808483858978769092302968160419148153197387598534781772180941229889670762369464064131060307346020099806662504584419282791534818093009072710749254977557576509198572881847704866922007354325025464786663689024593461666644880825060580241691176040984598302093266323874075937938099914846740020823235189930323644906637768072997598205427091154220755485872213091036121708817233899476965931336449888082810851890304369633387192258985265422492580941021040355264273861680934929636302024625953954812511041313926503303940596461328949321835216324437674580045528685947730957866655901052195729179744475503881217958903298243318286057402544056894797772200669540996632336421935743755345251259994135587880017713988673099204681751380568935671776295520067311754926756682588921711031934194696898269328124883003654685954622861370480259416986744692466099197369491657552771145044551469603674727966442574463094146488021867664804826186699779829144051340065009711422740185828345333002723649481748577195853343404680020788254695832904541079181109651731335057271044578784228907810546291150060397317766663406761214007203371084316770409885669094872316698165618739869480281687737960942795909391458177304248215044510525415988431608588205313244284774913094319854133634643234566646904726767589442024338395124424994801025913034590048077630993458742019787267879412755566760756343901665342637798805605589335649961485171322611783381167537086586238286036922283826625159094421154810314073817950281457610782553313232745816888668395746094054853457595034210418821517472942489348007704186990077531607201079176647912174770558675933029791169641660376313803642975465125144433008443282342833694410958811726486553263666550132388332278043649935502307343589763732628192379804224147497900681195486392031065816795626889064610603744390791293659496234957881636324739446830776670726545793347473619881276194225965202697707867547987995906652538690871813371117023724732080193762871462618160022113053786864470304091745820980689465384757138520343329289457210591932654894712041429649483849180153313744967911735470369589931725513790152653698641651228939316577834537428127902224327599018659721080529464198482056950424619058649627915489535514454865839967387558444672741373530484014439975240577908371454414828661164684065146140034404062371724504529129928226615990780864407701167290249550581496947330899188058299884102564014815351332615577260762032145636169091481788060280297937636477388228033222681272547582787894140873926358814489488098566604158784042403017652492230916589498548864765620768889746512168840574038254120848976096256645497976634335168840277663842893617692920895672889533004034113547104258605383509664800598617103454103600819868342173136209323050126216199104650086866753989586326372251955079348911397174583127708520783212139978496328664409962485306310819697149565148323065598844682770176387015120266253812380759201527644510209150410906105830173196403399893640071209101656799075722832133763541795011030301811061154193428048344297291685241799968026695956618032771930384326001261536996869230346750495530899808721250059473349568793358059156883727201713901085885711091782997821006137487785875836981085656642206833043230431006086250535091538806049781650881520915733603938204990818460080663203338175677196727175354265728869357135106712523500279872066581743712429083135764132605505821891632003066947365903334765113900677219533277138200024617109126207267346463916948242730759804669173669179044818336067746341279699929929647075102078561081470831162308164544918067591003928544786124533305208727305992164632462102458616684718732410515617674540339677664660914373125353289657415631068441511792631147575033536482270917911133146700880189998722735299693150015088215273513439732718368435249942374678777362771833542463245356274128225288372402482016973301664269713555871017294489061769215706200283913945769862238922646441036911226033494762809436742088039705794675899599542813412732938429383526164196254782056396483328965726891431103997573253622385450758800266458072393917994714671129112844009953903277699576590551751447104468712842876134888764985880117488532121370708506773182313987461891200183892904209903550357071202367742593997051057238433785391669954962757276320090083203977660767220363865367059507632415863942937415752951518919631973240008979568227490919867603458493003138382132121484934026074163016130250321071097020497029565434564303867701911609431125731027115472401404814609883763888570948384050300211239641445561265430788080494218228653731336241577166988887852217526942312734280654270785073533182052170931765618094138007487651509149497989659761087764381610631525067777238303776106646826737228890863360887522846833875551846819236504844125197483913859020257682742526369788037342630523490566359765382828673850942294866151056676474224884950705971855576175835890788917600454270575836981387871243044691941322046766470572098816286704955485478195847012424076737206502763938631235362844596844386065676053245254293431983464608922894318825641841927120597108322910283320297652053533777657850305781916436706897195263907354689348798703321668243407686619537847329645545437131607301086980064925260482458029595983741761803378690308576406673754456233839648326513600896005342760950612830103309365674507932299066262357070748569526461899416852483945752298225577499620334065787838940212539532628244415817570216446380243322137736293203600484933241778093898733683108462810010034421194019124728510468340487829769878517671586327725959680234349665145042821536366674497765106440935313511890372611799946744668660270061901923838020013668900172769921619396943685090977351214884578868627339640575997653990474356736824811292413903913617782430872296245250880086373153079404760961598691740059795531382877381391812476362688655730216890492058555827717371473962197783756557575057356297913384411002625541879387381362132139168899925624160299755865145383136411007077799558495304723798234675010560756738023897197743113824279526132294195060329987257503442878862766246856671235921741846327752939280944668832299465250765966947760162839216094387998498541875671290549585151068114709251273157964940905057787780914924352019436913495987227919008390622579973749556878236498382787872949160037764004229526080637401179492467840217226318721146440882453929238127199787053120517887635309997437899488813098223412731115343280075977822735964495923218493059480383254100667445647753623786613037951288529233978320052566582822168195806032439753702261473076390858627570501485456631774015854234943192708206652272960523955280961576868646393164848796468018749587997272817650554418155849389483769467788557651066420500678814601796972572158106372018631870861088452043286811795381460200420054751041707757239401812101586216902556771098858257388952509589514803054251526337213967196338525811715783785014308344389543464664098042965435729484412970069581620816823196671948247254639008118647336216221383441437668875788251936264858767990230213586939232000473378638690009886364368510883756820161986240637784608851960591802480473374739886068568287889201699224464485058556975365447988992341320735144837470800231403347384699249647625814124355186316929943733892980294620634859132475437019690443107713293642425143359101071910157840849583145922595632141940774925051660686197520369719862186177386895028688114577146712596416441457090516107014916516187333381734589223269189975964362537707819249823181308507696831445823058016977811135530157102780070562949270749354500651693806931440581700602706378783732429096345368922098997303014712106676987346320426255185217062249713573113067868096526625348440271522435969352104342403619189275835771020697478410146362760044867215531881989597782234345578503530460905632808726702658776772750668768239573764591685112552620400189832677895772364229208021880227935504073250201026043472221667924582061014425733547339679195009519416662904277216011486127072719320243012518697976589910141783685467156285180005466112355856251140033988707153517001995149370815332059842479938869420044398739484647599063262911568833311686636179239371009886588319154420891411183368631899494040536047213404001587932230380909111796624727590533824192793296982539395917509977416824467511630940310406417019379757216005000132849843357335000331543507575334673800815960736279333843520068478657557873206161996247258029546643010696631136589518808503528040999094913109075264318435911017075397233214335943574496310455946901441105222964345966127248194573312293600075906251438724992647476190609019074533152798975781642516058814341041782891644472465840030526739806738031690174113240662403619859645713943674152283358901954483765400602120442453847236231921052038490617202036025562698970878576977005739411076213504064387459202089330393254149976964116783177234928767306967519013971445244293110961436752069591114535007405089143951644807442881794076595631060572884128683296901231835659084240831298660747643209973618412538470781353016492400235008626632050828137831533975680753612995250066697356815147166678426906783179456704999501151260208654974658787696675939815246777750779002767085993539166163644880129623831582604360705576095906300196534811598622355556749445413198026534321991123777060097167058611666177398131986731428137602976581973349140900093842629708111980491052488753860768971730731602898682885909769639090493376552379540791031569602106997324559082318766654486669191384561456875153087980126209711024350237880065961994757886592143525261050106262092898733511635637610748403516066703341603245656217254283286090992354109257816351746226467467036656884418744283434206751087886207604827542714261682615449855441498169231729617227544390754682171837062258819910019128690565363966211374878854508909742399135850234623604204185080440016918988552718770256726270957237487115865022231854153275585333628589811297052380133229003545645482974631002944090799960916108560584397153282323939309567608779257341155699281569788204037638504307802094038361191129439337230066355041097688019882320509646487080209677532832915934054673086979886004330942891626966971365358179381842665765266583833464968675665164649666391409861767670972147731495110567027454949589305192528418445529504096804634600934603889446732550749443453462048187331123565400938145834799222206948659881625145221471373879654802747957452536834043603300667416511634137505599966808763404723133496963843410887283618059209238620864730587213000844511011273374380163010394244520039877654097055193513935776440698081882310589730445004747946166175788790927970792732589449590352525708706870606559116992903352650103564006148535039780971002810848386010738485338824770838052507393921678342239224292405487593892617216549244719122485877677854417225029447989664127697125851635030443737858118180165076054933615948304199020353039920854230455082717464204068655933875132405404881881014984652114227821294709402386982141777991747129163956273337377377564378736291343959491407644054117105316778124230709668825888405246186054797336159466624656148207124199996194765844238939144447370342330050540556693042290666212427739617449375793694812287911973297406437187326968044577448981593035478495009029623281918105729974175350967468444877561029838407843080508901077407753086436808218191609903791472807415943912011417493096918029647817324909976709699160908903424465352875051080177311292724246171744260032846941414161745069938738724854997580858621385411644664888194396868238293730747891200368043439821577530114239714633377788504648841633559771355422480995602312871880024321941009025030620013375453194162136231364279552300389428133531710026029577208488475610978669155249964500424761539013746165386208077562656926447971824361270786755982188744438348837318493997061262288787161464496565972418597359872887134868181443332640094615111762356286858092025883435747367590686586456654076539537551929393729284302527236207759161251468395089482920501608517458256047076483983169537441649356355636137085970841955958985355623388037173846884619295604505178961361358218170309772935239584939432938170551085098579972606987542041257079067172306054678007395764430070059434744006576434307170840805777921673221956311074203428235551353681360238632865976606367484154068719038068062142756221623410091137804837161738508123151807833971446081027917582652779963662387521631077271728167911222229961273279744258000820101321403867942099568189721087206176422429524469393137819672871055034186394015876309516549846516857170878268882807682123465421877579703295956099874273797390232644998958338821386195955997170104889288884802760036545174917544365259745202050695718094002678114843924201350192987276048437565813344174408255140832525221368697348049744728899803255609984981248606929712207291961516219009583017418726489930727295660880787554182386741319853272513569019687535845951838122676678160186247973859284853502612077715962205204292556929659294862955440282365424494936387823739341207447224156377602071924774722654407929395731168373903836543920136993649913575631676449603211234380079503355297498538603455516579630510539352900577354103192054684328867836311275540484912304655052801477780987501588615902940450059091142262399103964413298483635481585082300370265244347874556608942054253702953816852663677303074401388506756966741758047781133430298677372358144895323965059097945740180578802974562437430030070638740584779725756898108901544312398710446403426275108028528774545196212339140568765116659933258039890528687739490350714495150361528695429452020673645528913096598209544417054037187086850866827946369824791151036731924850694875802074667288274871287262440470380293823670967837445788940246692475651201929643857038363596370550322330775257192241998509409238829811410416526743304827229853282065265803165266329279845817112323104000587825493114661930702033063969658667490053126130535207409857281605885715983561641901060656185683681464983301803401119871879786914565320529396411630470812052291665585547937814546193908877401484427325528116043836731888071310808314504790172637358336811771140386261949026501267634603260820936098483214511678436922924698960386853510289616742626080289301104266687736194546950858859872040348650782789300388607007527101717323681568332078466223983457489826103643974555057996259389495422295780041667096526037481010792285513213229883078980656976866280456245909569247224890925712290553115520516046199933945658774213543111224808920197897507332156738264211080408012822261857505142931486369768403458489378031868488438156306512221515797737909307720018042335873007088674858215989053489149204494022838318369866246954327916624094375469689367351000270279113339181895457173800216359218326552818244744015041598680672958872430083052097892906755770814864966264635669763834348117018433741817148251221863638226977707070510594361733928392494496139543378879800690886481326678903501355545956513575140303881727937464517230483736480390726339612852956356070241153908374527361563451727624777383575368493645814179127298543409066843154912995052183397884836931497431502895260061543608897784504930970450883185530324925568740725817857028809973643916898781709188342834693017298881821287029501619347836357771271059058626085763843386359240441686001382939699904797057554090157250350258920162356654256941599026429094267757194418985348500480922622881620518230397725122912477373948048933795176106703086580494813577365681924514848053574108054011103495575234711077889011391680368547674486038332266003849591777980838624076589274577537735660374789341185379409943636065329567531562857915222241832879436772796402854575982761846261318573231801088780690191779557458367718423138507711935956799149391192904790200837488303371986448874865196111318762716147908683730543826990567084133460586557463193788944512132006438407253451878820317934087832824527993498363175051259424000318563039159011269168608731860945111464824863856975469391881794071613449826045728809939367313297070716556110472924561100128990583469305282676533365809333292103509703248527110853494110321103785138234553201104287785397703524352532052910516752548401196013497939251827645883389191282586378683797924704462794386971811803678089538614103427662931991956834133901877766395779842676002959523691883032749470981838556294444008635273554679396092387019609039235961455712977182559762437156630113269812100763452783920171642301927012360554423179458506342349968104722864348989274130517890028322783424518431625499318902878058862578477825854322844629044408644053569025680301583788422045171385331623110712240691396698813823378035172651395774083699074398859167304093629407911680212047058979750593717197616226273494537771854167112233092526631669515682037895085528901884829343151605190355870754973402466913336608798818499295342757824662419967447135074785179575281098725701919707699635003867568816315604666698477441195033933106411527011922107655123810806474116766790866039107839726976499876894258510868609169881702839465420255985432844654509665335769053797136314503045077536196727750017573464071314807000255253084646712878488004797571884251761266909820543171704143698506484718529668482041173224769272161949858459642032914497134908758001786222802496715221107278838554703956946555032416716195154547637476485704649231651823092373259841769232989694155810253860157869410626111569640368984857905331740257614618684290695241340402760740926329546204644163546455692424084190129129042398254658315299688017680254678149503971117746281005075875248559148963525019995274087150795629711168013998136699475388056739801881935008697629427720098119230108808516979261516685967636004865231787042287346346240870922404054863631126943535616891979282460466584517463027087407664321365007313343934146669693154247836826846958746510411749869357388851507596431677630923929011231274804693376380201630461654440085534347091407708272836470337475107121483189472716035971976039367865131872935778589738518943479720205677950570442143783236903843758970180551421591160229770660419461277040773993266079267669668556057916809065068375817428703072467759789969697844296823884740106223952396948849133731200003971403711419313794510458880931534698707484211808630243838759108298747647488665875751138771505357481560760937882695415010334676143262040441201272433846452306390802236214658911416059673025321214521362070486670036276509387993177215840975003603960248405763893728772837987626424953127325540486063065128976351405964391216972567572834232867968440912646007892011958817287759451128368642829575415782105696111757185512934175919748990652257585464762606509492169070674013507233439119654372616317285244968385427234528136358926978796744866735012652371662111151169596501961349692149111587018163887446899784720100452179035800143458556457102916935305267252163161076887727960103363536682649957693229935953910896184562512925061958424238980153746568560395063818005012479396452114771011992396917507565219174853856409495570780402300655092430114279785543307442622864200127964751752555974887983733868859864360905512825521338153160423458565135918209135811827996043974396374083930351186861824561768911218100660219362963477022520081442963217763755364529794279580576415715462225102625468160335885647743607437060820045989294942645773295162459632321858149143281208363493975002368590951951223503097933064186426086785181180408426104370170079423133495091522922993116478840567309654857301238274008836332707128080484538478902290790765119974413766278694934119132427895990629221303540795029488062221763463666593557247054906649976810919561234180048606557519415277684888398821657407160805363350280452638309816426062961693889828634433075097144663031912510625230713210642614712546229703905369978493794021709482915642810778410687872831759151566203386391165895898139274839535044232587252836705717425120363596402700607439701384744149388493364666407164484147141025245244567272259295766591980666088052529226963841698439294372202977562587294250348502526588337004598971913938934393576013856834222569292457109068594430949370194841127432709049126868246435807317694477622118557892652629835488004640840410214536612538586980287727717117099783596314312540822270559236960976922039988589056658855020226563016528370542779706777740154833813473476833357519058936981281425905868426544037837082820419373181552409012178292103451120484234579343547178136049838250861583253810784543358118900393144392693170936358948994447218168472217118503735685664614685607383790728350612601839234926704320449787786650019757606276765399075195318248349475058819325016457192622005555746313808089905306755566182899841375405312770249029910977105528790844285836300571955147939003536281902640773064206442063847385034748860997341624313543137444596742428885957651072264130306631554925386786902078690820919926038400795536967384822224651545293378430529683899025959560283054045598168739660274037170865097872941849619797381515098685399053212973333428959278983188891103124541773535457129784510113714504554673277573933745208269330828359256842144510284290320563380495995929074799585255666531045590082303204566557436676678415479451933086075559418902799204512879791790122472832076416299475774249748984699792240007188841749275728962774117054047147661798318650265763545575546944727477985323895927146798964869480792664173941325250394898839766717945462218330924130830422215432298822160015635661525573392606518486328389181830502869300576539264385425527737379288025727761730034119277492858866787575059128311627190246484092170374996630570663099103485254323925984744822985041388859746604829090154041887450525858053834633630858100823748297513273213692567853271439609092785673142540582782753561034602106067882611965583971113901307021192716374475571889584914770318781757053696345966747572532921809115166595672675545364401307172598849702399968926750791711289014999838069443105327654328956992172425009414649059579550954267344502960937103881374015973827642413801955588532721497929919903106298756700777472141747360601769885287829919924510244800695490266253250912364687212619275275826944120958247332895629913753524381460349918273128106830800737401971003690690297781214466818586850323351315596749193201724169085747050252615432706444912511582153011655764258109376416925458049320723146140024357168397642330994359412454006957984602699471655159880644657479826304105702507323775954551612981418161804128458979893534063087450163250312411890130925081647956272675682893785132699986944744278033567163827355699116442425965324912307159449338939251834983355236507899884330493820988982845142660904556412501219333168742387593756729338718479232689295732695317300069625418293950282846053592827456893681663717083968160685651279299297363165942960947217182105772546121478613353010525666851646875222984460954850139381476403085087689996177874749062299903379844910367011225974629993652005165255133316509506147199888759461752750510284056852950826389009940679239023176592087273835439568165599871755918696761699635191627310877560525739861059360002057573658745570515149014797061213039056387114615457006798383957875299055815764870968698197512918759303409144424589480604210943434738506568726754213737104289216787297512348696406466122375270482955831751254264725893299635957221789228730565390220721479810369378023948643819930418881194132015762560179972738213776520895057109812280047409004608522086203173837162682836045394540550383640419351757676790093396823836353439338397630687986903033767741993301870977663563724821731869779117200829722741705771021538153914468971964594380866708869650745791679633818053378506685415744455466082747759817759793379167883795822701021908187132903620864993153871863310873571399446962713663338378271130642936299544268948285639716642287583031053358171397909497167822132403832831207866445287285451996569610387348017875030205991195775378950074303050572530821232233503742212887350214689036703774888468547589345375599878054891169443126978155349035451439084895832368427539229962419677516094256395100269242333516675872554645475729896540198524767995775968683382397267420392701572557956695790383925977801236653045277223183811974902139909977958597857031273308169679792507857209871297415945412613152147072016353296963727474080419434314148158454980124341600625523469140032471422011456045342633682358141660087156696779073771179023213796402498310170015179222761514371195490538422834340718688587827364361151843863156295691698849608025467514175394878123894345880419956003245978418802146548438359203906360944485232273117394537709110375020103326541956450032638430903202099713269525798299942016622219377727406153830605177340809832304001822902591706352654048242814291016734231011262068292072844938260238429212354049618382377456224329138826581866910829346183493677047250196195839189359877628369031838094345412034191913769581966827425402651442446526835414778273909936843742987878783831931274363637770126606888698154527368251889273347273108571382473525633540037697750881905475336062293779611690015050455889214244887688467666944599629227288250968230779894194615302592980713187190826797993455471654270476588468804311773915765826942803377182335312153136376493770806171472772431190930551123198452079507921976873342729308256865662709022349485523994767558108347700465448544711763915696120651034064238954258393739241923968885050564557811202333473638940527070731741848651023684536613798842079601574985505343356604276489530319303497270700963477043513487198608134248016599402450318717593658694196986009218009526227920768470400308806383600943849960350567526286605158291727388742383586964094998149556830410649510633597519825832532466715099609544378554017810645833689354882430799011539781440611843680835830599242967722434353141873008637630530926612716524966695874957641824029480217116174536558718209739341216773595189720859541344311209140019820591188780346435909838034618757359601098416766633655554781248866173854330610066267732482466847598070721412717939828235334547376352354301067283454907775900782314225971697125669233911102418739242151510207720730514121224279588023979619341329564046412650129214406775913874715124990871248983257561049723906937404191302360438525530987342343435534478297636491960222828788818574420075826339338743738066726996457289469735253508762020086228831416858826395703804551216043859395786395543309158828680489327845947691042938865837999478394814911622671956026984756742037715448200181679201166684378672769939141788081046289766142774680937501501648336118017915707418157055818877258094331275158757844118717587522400814302340799579909099878457022966004998983057832669872919690311961758385237149184376458413031685785061630568395818140065398196562189280582533475619383145445300767920853835366813794614935721136815401102119010072394274750539959144280730003429466361484159629897321932103231663749553341323752808606418331801979592944922506451830464297745174275426561862330991678885696698166632581262938927885374161585735354587191130611914530859694014841263173213857942195727902938910114993526425957139624947426288031698622457846793417291269228980546559704478266634594885622651171134184416748368667417614344336473854369973482519645672847710985119288403302143063163932793132711609144891550491794079818462845999948186266133569405109646339985253702289926399927712385474175758313017624034549193611039831966947679984348767028150085570702525598209341059211940813936625610402308697081737503041539381091934693180545002143089863537564228228117585876871569868522058980170634379540369525205602908976814766672869383877554141545912835058501748264226722493126490149447691398502829839158668555838546891331757900724252018465617794176560641202951588993346674282947203641112274014628277749094707835274421595646165022145275028619421505617808644733624563722914286798928799711756718612348027369605274071033337087447922086801350042874305638531862670724386446639484566461014665895906638548406118711627859600944590762224457307839674516615984165999769566110635431114620875304705612094228723075876183246580594399921888021491501484702762743130037312089224373677207680064049386603860077337288548203825901117919213257590869450619859133468846514915772520953541340293386197472042951016725672845777761679316477287386931271066700687755841310742455322670900420067059380801256770759401331555313850845276727285418499408302259975746252299160928544417665195411142405011478335930548328440736449685362675276423520912073801329521431221735536583662368192220912220857946581447848335616226174647942182577988269129555067075422567061440305528628009581719783841109717128545669984820117426766997920644163791179539136501327476993025375086949539007709091485770986205218538880497737909097461716844244919502486619687040272958803004402804555225610925976903513095185739219030380181765284966433530269026923944018706858913084585170262851615848669398183133328088441535422132608112819579342789704030899104485256741612459910020246887816879535793746018396223337140877770308487059184964773492290522294776914921009787802465520587750096002769004504458732571821275185316819589600263935607206766862842266111850031344213788510801554901382874845051340870660228692163675752358334966579219243518979208493901952161254872285061490058086578713542399536474998442424007999269289008001012162633499896432376189610259089291065379587359254510774511603084546316530973478722141012610437502229928341517556269336016525557230272762141060767948705717810685700923579214437024662002019330546545074455992736200796157990356906774868604012356399945144606640499004269645972262875708666469751904612125710895645969576559652029254337396849649023856777949324867182253337419656351450265808571980108947395356255825791656607561820477553014854323568949112118993523307886928585981439073062671279288684755404420463271264097518383545180467311988209829642182526703405717457245055224889512848035509872320934789828685985519887319573612615830222317795561762317947335169376796273162222939938098845546307276480207518847389396253851440403959775552701784869221837373947931450530070323113927276096300699071526087895234459952322187146270564611134967625878740550170367362163084573809508032542866623576658952712967691653633844892665778850639773921093341806626154822271116124049300419968852568485888313375472852649551826733254427685867148825940542381142613792097071414081539938908096084185342854495857490982278116233697624181153985651140284294276243493135947658750332109220424760513399629483563206385458770110253048866960315313044522670955723111486896749993066068093228264342956221413616718967077021407643448182215557373174227659290506411765879032352401204681402301522067084631264287240092091747558999982654903973263928515674846273366495128611961665301136398735469947469222182900010772321313900682527161027851860283368832470868151230201510599446060739436886704932629382652931334448882958236410540363193423687638857622073312815452796541799428954108936073353511158404187535746343008606210299964463106047618827716173968253764019100302240634230734044869102334550461037934055099387280192560739689420221267150358760345183764231879557388345237959133584450544810248198909275888680591771822184245744540557097371406957680755596974603900701582605070045093523368354442014533074238789275651325293119104762756856260616708042152071787623424038505398650865115147919495326915571035056419625398674746890188298525848801438108121549995848001844018604805040929923084099936648514944049829306407062667863178598397337385391260570813270608134537079509597945293706317798002487931091092365953231905664069309953765950150758829305899020408144509051698074515372549130489014282385567270140514482583446695136565485245020430611676887181900297752700978966690239274870763508790781350878771439048974086785265076792206459336009181123116585528386339199547872131766768311355058924104625649844347299834533660707965938458857361118535675007207493512519112470903155171788193924742673307480442445483742735317801775661047217981758324099659905512060521787815830635075578784572881224356535269664924622053552634204361364915012649073109895497326053630579868656344868154992911352008527450748459864013112682548666535125006339467056973136528111967047795987163651698290109045488937330610632246193564634424657618962384127792882641774684424245771849245076124582119544070237515910383493492815151765153746276182265518659436902501214461387243335393705429923453874536903806086927946619208478449448644109858821553295404740853125435894702290036480049650689876944953038192717704936943583412417178838377398233183584298610546981891711836245666681538440497511067515362150020427370968925308208641104829676999411604582737689514990735869107385409489189240991669261446125224847173895195210853075894432918786900957492806032400448601451182062751083000523591801923483256752554773021950418176872807036612826450650503859198996797176951686159183974231497632806624231924318160495013861040337871330835988277919428380421270154822954236196661256233955912857003960510435765352268430510491463766379111232424167546846169167872282336798308556783041823298564603860937201203561031032470111978792147892379047480366319902426148276007446935771974603190179513491230357161939906840435382147221363406008429458683841285249915404944895490913301929923846681719751002254139212265175608166712615335764639397984822675454747719743444733894915279517205371137218682746191338669952433171798818466394399573307487705695519070636356477547405785692379501379342809628779781892398918888029409815249846795356248914984319896897840419756837279585912903516762390047111156209180581770476260944401703179987513346632487650019961596625098370314112633312003401167177778575583173768927610481878391430997661862180587332824076287496658509458312574167765607742583463954814280535427776457119939822494192038022565654042186408550593781522060442467646112034517149136664463891830034911164200641694439727222923144164189077518526892778500610605719842022397527481493434968671785620676929819942915444769537595572009640635936398749041531917458695965222176810593234219032544143602640163996271769981844123929528154244442233200517804933510638985507401510031090654560059256927690204300726866053809059497397146044090920695203576407222257824271779974344209075735843687123474541729641430145041520622138683032140035023458887465989165208700922965855951322336069328162996802571143530926964838285136095740501381449517748014013280812251606103499245434799051170069197073381686862300352741440183975359507668983331510949343121679237795060941768797093461900711160738983420187661504378849370983666986116291754445531592288176607510340310382284897124831473748523954038751279249574734210295953154745893381110725051968978715494172755170216670537770968267344236356092768824482328176857451933678243100463079728256705789237710924137958544117098053807886027196242182096615264146345875251668993811718068947425513593477552044581387547985604458593763000613133764734408126141715609123196024183926152858201749742123998375577335677678192046028046750044091350165127303805251129880687356851654096919553801363966877390994256152874087477035913562226421052757698622836043851936484475708402525076149967032399865833155593624005666614653716021224434772726118072240616244046468748198279891464426754526203259614362352125277009526890779302657765605801036720882271399236825107428398761387882777559386670101606548671581629122279000534722058492791339927655556487768119151435331662085237876271580285614659799823448191325935724135333125448296859288628944767074789467214976871740282152155430915142017451647046260657360719187717868584929686528457299852483521968556622775163646441439333833530912150646956221137995070442912150738191840457097051416437891559726786662643645118012509351773832691748064218479913256579840477300514210253807724300507190184475969135915190945841360262980940358473338772863249474255651202479951765648813091497069401909993642660149366486980067179264680275111713436683384490998715719946189516674960680208835548030185982184831241870943923456487263621395082916907770103348520411512396105863724044224002958549460197463245993666159757198656832746712277775978224788164020520887432143473684026038874410120363086163146239556989085710928601940626200444612863297933227424640315577920302865737193729936786708558979204204316664867644356129732793457450696059477249564714754033257876136610679908781240004578531962775524249362442977952982836821099814338234638702399682225786186559865528811305522419168208124712357918063906881974471414028008931793047715766156973941007319455513133614212903791254803007194748797282890406289672032228279270508988413845364316284382936138790865573046052228928793404076968334104339862062672264143861805873813779680859966541650864189951101964702611515412867223670585684929260466464466783756552127259736947104806415026564439847443258296555735498597531038082932116646847894515299645867169771422772826803527018232712402922258995559597198994015193552246616421220497586260896360009120485393331416844957899670626862591269565923963613312347370822578853830416236363614266474840930453447674672356925683003045166455375916525891151421574412840183521202691269656093092090072644409418476135492433994548146702747355277992060947109492212440541839804702240057034505235301136108582632490071784669795748629332060569883221340635508276764030978490969804577096905264007781646792242672455823090580468203778953064729972392928257905041607070390507865868311109660100623290482699054987144771833064740651328421523119233879364719573014327258060492423116312161665311057167468766806391894909341630187152704060413395382404928986420562801846298856033536784810819935811117637916169747489426014666039482346480306921119467587920207819371568798959937522764444877777255276236022252942809999094493821504738945677753273009453965917627463568491053606369771188177888907029410009301781112518971747815923029293563674337899164184932147823890872271181984658850480114950253245767885570412808657297362630809345868261655368242785059065794336805010836157951662898803812965309493360469789226874213588839019120105433930968000869936683611595556729794372824802553606278103603731938983031409476777937631579995818408525800993431711993973747168682188615145715072498007248025496183737760682404344232016840751764021358151303134086097043897103452245415548649963606845901791251051622995814370816861132401452591428052667229597850836489040391699636129392961251957758588530308007519811305824535460889497561832891195453035070388648741062829435817489738599586981581607346260723618039824434515244330316361358888023605993744209929888029046292216627059526173846900598417953882958134922781371024342116596614214839365376818667270796931932378476947240658213358024159216024263479946314713814534824398088081836540034306496797254287880304244261577030331690229895951787568052061175543252824283504347689125509334879439316288767489472891713093408976297034176132724442076693451090746943762751329990716469635725406556054267349037420222310030301613932300926008461824131066102243997999388117480036165174597099753131764567689149594898726389488876448191740163542546557758622531219829636368458917906260034753232215557506601039640327418681614431768015612792252677609132059111311088652513785703227453390440048989154249258127104604548016370311192907472153253256174482539013516722465767802153439425206545701856254219123007574056221262283407183397388816146442361048467476880266214761242955457731565873049999731248649484903215488307807703231640465565974301309951623558865803622764746012878614132105458812413412511722427816548860868202194918402512689321545934649578565703718339431377457313918956281750920941193199205530438096585146225409972477392152169376700739744821968767507129684052789025787672311737918373862005146789910034942714983480950494195359584727841852147127106243851466112732223342355324220391685619035799569838573948800618824279626169157887585562366822914701160110252379995383804834256802303036618027443005740815381458906737466634695393365613187462747013254075526007370729888938397973025529578826888293215579074917008891933825152814955383430035728037302072727777957648962676758288431966813642028602178733038424521156687421311909307547733386824436906444687625965421268117530604945077384046317955371333902035923746016496040646255060613007139971024134831942379357610922437090836756831493321073692253974278860745441766968746573965293384732071170824725868681271216413783971391351598859329870608574754257185052960567713186431533522949414751790501955852719835077241854741074456061876257818729956521323079612667387305747646531861647929235477845910837731516621122711258479143172806737274301850405652772858103861545867611424084888775934781588825352835965510079644860917344692471714491781033296486644036448299720269250398278562249581986618475777690261041086573033183891358846678120045630177783208696952950821349013345494677186615487829387063044676314473772733255257677530402532691322298381072635862037089315627894397324324509484446439522438635018189142567195161207010972878103390276687976861727092419744014510918206401796640273129270038337681792489704547775175222889872124152061051528599831436653254902702146256080470525738398960868539831624921931170363065644271118151031127823104018275892828999002347776024563781150189339875325179447828333351938179531416751310135244403597564732858527620014259571034187015314999942714822046335591501235173326819209661907358475912974008162927117763529942189469583169157262814935807858184414778171508260496518763524548325949986309479387493820578708195246938289509592019646694117114295982871683671514930694090904633781269266102680451018072160991941463943691629255185053671312943334208826711494029109335133576643536363595421314333993652963767798350713711442280748203454823129532603035984135105799869928883808110519448864152146334489413115431128736298899495722039644192695202225611784819970764782178685484807434380507941367616338266524372588018649305486456181219915697118613801647672441652268212976791402228014740957350004647479112589747873483969567070774043484439441699588070632013280517499466869730841859558198558630859982843009785371957367434145981545447181065245417935390398614941111366350173654085300695122273163482520731432941782938311532545052451999849980316202142898967926737591331522407894336294895569180413907459526412762822880251714613709071985696343778913032608112191094233646829184964681863412560018776632494298852654381156566231607157632583807556541782112926451853449569418776536315652193946095135154339365503698210696106604115159741598192450181997805250438142256523936281109221185398751832827932222156974071442736119951239847427465455042111647108897470327120576630028916300379211932536398100568557796292074226960818431816841829349896113204229820393751006234628801994009153932938019607019191918094878116995971891114310477992676955431380363811949174550329384832327932047550124649099057945967683034877806429337753146084945511500927343978701932340112332541572509627274746481181276352899785655073542274347625551353679937737584185774457440671740416684077485381323513849461470814797959758399947689963901363846830379880112129585469762560967201513445387229991982705452932883908464268215953159692661648595809908330664000530925842234300658431851141206438286484841694655843365103377929901245940808844206522209055108108115689346416414358111126795467820285619400461038607327105818678185335765802272402476769376883754981236750920548033540633121983615764619499996255583447110604755850523742922594557208701303992174756854044284381882737710362393316111043397233569854134792994293853086421195211106076054543642878705068880411232407504286907146897028879350529856839389772561584353034175777842997543657665669460020891998356539612487629156825079737254757250658536590491295301187089525340356452321361694682188458602303954758000106817370135973118329575319580136874011784381353786604327647628660269255017582675700820747240568734444019696327500105762761465608065904769996355393304247040514595202080191974292401944063237636053445420393445500704637032808976103879459126499467559479960490057252782642046179191812700143064435691356769011112932283478527692230444992310442264049076045147514363309807415740107312869561199826650265709878379072228589928434529514699579947308419212436268760256577786312160882196576889070555063935123921824459881171863251399084634643577026011130751251188978566553958380410761150736272514874000578876833313991312005530951406466148202473475365682149260270244408995035401995671786855672120810726947834644558080111579201030505047312241805221241038101147841841147490465608198550253180036836680888907454188250962264800158296154103633431374866929950264436322887675247566881997529341286562309390897773593348971053291236433600922704138514249166120908418335306342689060923058200395660072000848351435732939634271607258025680136847803300449088995817856480564033488183112265247317944750979485712229896674255360666735115244823709917918714462700515752418312872592493995599816251785357425895523905361014718716209321355291610291867525386607473869930620005987831557869507779629331600164396166937889095866492613600922417579318505980523078754112306861726059317483111504187384542311149575590371014184992619548345854999862984033968588109115412024385892537435912131421210997679400285668014084912506764187978967353752484522405714626417557058460980200712770018896589590883034628436005543653769597485066411283678052943738793052909697828606961275075739422364394692742583120637339546193438750529920454745595487089778226962155035797600628888131851505836355049152749474806825821280292705170216825474496407268348500082006714519652878743067871344931145156776294614364368413904204771929294657238253106605935812564668296505057452808620985859192067246701165069966764474352064591377641941635240745172055331846912238947302366420613053901027000244100992770805374281385775385053826996593409253199348960756755352071786272645959864299449435521203179809325373274848233974981171762826344906218940799832145539665725763243402949422367456540710326736170843411295688242026880827998576568076392213526139954044808685493017359930473847095506984675288598279119536640651029427337480139440471208666563794466301532472132396120151466824618668168081546739427049394940801099517649247547325609541499577099496658623759844118802850500058028693730273975670855341301042366922704126773488179565881450319926792485065392107151740879638591996383593267840604201027385071537282694147858952625990559961816505786894914101497474308751240633993081550456190337426777935950370233193183395694353538085993072894568660580499457657669607622929715732832384315830204323079589391992926274929743807315654362092660134684294488008709813243517300233831427905754229416595516200291164165179519520635987749395221187489520733249407234626997950235443798875041177070149012569197211282832736216310208401621693044268408079098364817892531683953873926697005553882383000729743235362994127749086177553117041933006930021148230160521721572270515358606666934930089540862051776903740982569691740622280984905588605667733605273036904054026874179855554927528847529079626770911909751607620484534615292771442522453196923682487484254063160123244920234622614724501295254531624317976274424970828542732403456265744227965072645303578831540955523976129058845899129543113268082079965904084785846634885783336319798038527436125732002125891364142709845411516365190579398842394641958004208776989526101177579228996412209194404016673862611901845355629058348878984515616593693591965185051976036047591574301200494301729581940632500686537566205078758379212254666103992605723132003003462009114293046802228024787845946372731216229291317412489255697282392770587516217652636773496515304257221478909407194817267545724051357125230296136204375306942916493662057059030933015445178323848259616179897856101947138511243959522889820595181941704542810457750192275288656048663250535870138895642178460990177435783845683470579979138146114713964132501722734392597085445578791640969557218329048173740499728792528130122486530550544518259909546992023114389848731224858699605330097091071498215545560883420441105362561314041034534211647940211363026195307530492074972076801994860258549433032373362334095180572432190532598211670530902569550576603897981829817541102665856748293742189539827314068704466153988754950823481756783037364585942232423112435478814209257993187878263322769067391074076926736002515486005322014725438234643655356843386422204265363592808645075365393144158688876362529892520907032457515758303227424882366117039808372430072047649528712960497125377359080267621453449532649958926909180081612708531068454383859144581759545283104468899747732259204645135843948256703900210987652373956636440635179466416108485197853882093621061028850525975525753345949445595108732672182894779176449238928838955648254345870328963724117510018260969414140747943369818487892485764397089158609894899873453979979355241701924850984650160588521230306948332674502149441592321367736671336500146229197719052206586314962732994550219108090284699286187330023488782913904220484655052613633643440669709516463158319786693606684747316202075312941226135296138848395056153590687751607765175678863967318839691695448500888565319765328407732414466138038041199857631115780392629721558632844984189334435197507118417543082102692115001086134062514268116300590668345167554000614379005787758824545587545559556109048006240838805427739996692981246337429093560950125145647110172616563020030289034873545217971507881364607834935513336971388566996822208338815789441412884060535919665572912645787006822702094543244587375822217154688931424780733954312711161617165703730446903709744218297758233197932791019839654659901954772451317151555379036858175761902759577554717581454163641407018916110489661870864292669995938227600709510298790742994870160435208245366969222891723735799207044859881506701769621802790591207422228526266882967140585961241062449715967368877821840198571919532301853408328447439033409700597994013651029038093618230332900483510717106657922886554970927827376565443041646560203013456987304519942324408192014772009547475638619671218971563272798475867669129815414635748248139523818026983756434613859612373455203661245484457818697589212702905768417776391485001832517880503154847322320820356733957374112938586091222003998692242135900480820437877995206538450172597107415226109272139142325946449369427292405084850903337764502186579705208731506446595664152694209884457702176030948542884110204666332633964599257744548049141009016918043896613539273250083324898290320510962378920329348290969853728738036687169787571019086999685989512359527464525964670556189637630721821380650889912925015785957224903534574778394203633986437286043703817421230615410923153493504495439859763106484916568576582434364084489772801897549927861724118367129650755294242303764724208712493757777607158071242537801105109559274423675576818720388086439432758678031199420614049425482879940977508209026764334061527219547905541923682690483711890185613806878195088538229418652658183099039365914947936294927392393040587692141926459228400214324629768863855652964485071460626851027861825330867246715857599964380535548741363958674379126558900840348734067643884110547440101955955250250835748398911364613274770180432659749915056263479580827270981569602164258063456631999174646150529209115382089429777505606615479084028246949016389215393443689996454148337540786524263053955845457753401779524937427879400429368421719597170336854257303157132311610615928203250637154581874256125318957316921369084451108037069684532506069681089705313539630661764059246721667443419771673038543036637243833111714054012102162555378489987132379915606405593822081044775891331354318515683331266429079100817870935847372543338931814246804288544496703573313225080895892675858455533131123680841976428846252376677594895060335123633792959848664384684399215483433865624396077104757796185456768237991333972957742684688009101348395477918353287052014439132206826328760819799140519183148856689122476385797258821037688616935348607680710391102195245850541487723401104788324933322231676889316160598679533459177595660926342357918663691755255446125789838475200767182378504827019869469408257618639053920267524408397552606583026375443882824623737894174969621905201672092281839156456828777822998955989711362629586451016162777454147153581638104190042956587209598909754923561661201673148104028730054529979763704203052867148018601886600814377143834581885176325303454669200519713457858388311815067251292586321993911927910409120532269306597408465885536951366269883111029269281419849791075793797920348397901194252968739738330742664478774763521527053045561014614967332813688531631704059202552885550347449880207105838947441813375237083322227418696124767136767089274651513401929159252119583148125503122764784168687851221066789597430563550687679513137107824518487398911284965221074694964155437752337934559677957958457194023626981697556300174046153418312840454785484811959950826356118994465407807172933660443260717607057695126773801351082131295110991123005780047472346238314395263135159322591817206211708882849790386490004530387940182225683247266256419409248736031554039971957152943852526899168204977992514578798149490503340799930243576658270488429496807152614573288536699653842243227751924473203839355113468602551397947476658474112897311348233491774835447291009356775559153414845552258999778947745757573235980449191732671003909308852129921812941992772163303088388373861395354783120789019939624516424656883530999301920870061729489932169082848128118218847760251199608325458666300359325467949061728379969876519005344327796066682676087210212246546770455814712545538815280237381558269819856337754817242267913094460707094661699121425136243143746600228783551413371917669397808470203642006120600402289700733754459209313622112601363481052414494669876212154515329612190204531963903162967279345713997171739788309302541323003091583347157229619922633777047160049887474173929429915044327155636106125970580782415685620294827025424459106976970405200694704548306894616890792341781858223667545147723829278752157988194113075990820098629562331190959227636146747981645506528921312266039512147006062937869655474392043641766813960807261419184334052629074296064677275800720940018926338552281396750591399014214748380733653021216572826192876842037398118616188907658827738885626089358772105517324417497643017823316183646504691715426532142995833458591242705771163949117378159607391216697252944652667525104519696416416052998260038424171755548258211513674947678370806714144755071034522592593575270917786438618764310054218480293938061358913907966848798664636588278777948712983070590064948761895383349996404462839346158900070255400111909758722849966701715210372695102846817172104245400788942965334163366324016721844389209480486055337177496018283936688992925789501312779184694206681853727679424622200865785941279539651616381465397308789106219909557394735990569113871981087997595667688264545374056536254167950234315144117247182851380453853961618864478743823231420394848265498614693295519014998258262629216099393298360304457882899108668484828118402495991243547794531870486153911883597401199209026249566150832232600282204144380176940715315571937422659982151508952212438665903542089422333021155522189947859725670132372880397806766387507765968921685314359466805140210386320852784976674259332626552708194112092180721279870650769177234086072802650595678352045290715883134692893262658489770032739866730028633569649321351587342676203436049972942634035245666287407273521516390700422567566057525801732633273481304717063970235077131636049447779884879031000496669365159562650050544192155715046167256604285439198705281367619152972288027865641763450036324253539467150207573231685309915854596772932630923770205425246145580181341486602261714353669322999786556576123428587883440944296341533696434352375323566713510515125523332331528384823843680200169785368439135940063197376649002144724439092765871794193744681569413560228952230725632494081809014193673312978299070076716497166774151164206039053474331602779630656010977345604425002602211438306838008914113281925977872957177713623118548077100287776005075362936154376949488463596684256127835243002201124567105920956907675233712535335169902327948760918173422012811504121202589712029793960393704329161390989434679586148843749530783689745772420448829518608104204049576784306361082455106239550172945644390686918987660586579894675814969672602142208445564176957604851050071000158970353349886442129311298359069999150834177362498356332372190898644161375142310020373097760064536814944632400257754468891499411352871454418904790445028620819160027285999646679356406014970406339742866839355367668470679611653249701711916791916870901368523792988942680812152085349925880284697161096465414265319507464503289664579769028773546114296132094987074092201947236208468225172287815879015878958895742390542152918242534885359296889512775200013345775748987733296383059638948914290662988551195209729788991295157820991785599103226250952102137981790023265160172430353532347524663196864645420198344722453733002418726347272191396352777841514256503026023259432205700671926172417705910381426497128126448120439868836554202370738305084668664983220847287318807910623989227752246023040761171673418266394833325690609220938383454499802756089767252194412074919646085122794772491885051090499429805938193513760058280713772057544909078520976715165409271316344130743838916165021961110031984894139677458619061281757370464311133121674530262577580525670856962090916980457519096913138956831697770548168242403027700277824040841702937409099299584356423035636518464583241756432681005481023404871728620587969429940242795092660112122114956094808216967626846650166994914658049205967667051375704231249072448599674674504884976058613902820828416836785922248483935138425510754284428481569550518269779170252284262952709980873719059084954629864545040376909070175604263814707168164348329290536804960874568940741926378224905470147795772307815271132675516439266351174646867239733403467602866324089747730462166615958563713167002603244946292654986226875453791381369622871185075355985703081690466424636613068219470363893941571665764788440837678770174270465320226860146104304538302159014962709646446568519922782831302679888507417391686877259232903451187441636453456840563696915819426015399471061992043065149484562684250298782606707621800001892662846835108143170260751783100432111926350256316069839214335891863412700083821977199790432763327650986802540788297716920364988125818671267339618196680968875982621564270842362296338580589713566009487429411290914986128209323414943616075635720416069735951673122636384046773587657429481856475241302033930291831080150827706807132232033762588526451156914263310178078659360050499251641182510761332230525642606876189743904145741943933100822839265571794893102758664104425623552409522998004965937924699750522036127881268883419644199975494630272139430052376544907054294455861781488727925148539485007679934392235178269641651273718720816741412122221848471584473832307232783759340146219356416928905905388474684785827839932563861823915488786345668991893894368451405415407747720492781819568217384338783357972065455922186033119648441639276981129579860496571441083368864947969953793614251896221590433064807876665517802483857703485838814228836225184983279786960298232502879552653733581859864892901772300448914775433417085003488100729157125946654252971702431904574753925259217733498474372767383779317249085387650550672436895461057635579945347669635701559359108796395864418443957271815740640635812732706321248856198663214556773677480388711006400000135339505908514726596728550409094396566716660375007959517776672917851531112092910630116709395431587059036105821658398565052008124395719969929038700247551157012397602312577769938544111705408732502265026603027265294204629745184368713733388593591321181062495371625967484494275804050617830518496165473833804383598566962216803584455665327590381711635682005409436308865278380335932058258981663337145566543109428533340626818770053454342531411394483721875694735293641072471135596518393611550063488190509796325280942174878799596374902373398218889511227296027830959036595049303384327648537791898394068762599170537360193827483741729645931869420894683262641126675754083610403761618585446966354816548039421393614266710686543798147014140169648889872676878638707060637982533485163985319852648276079349008678147929895530031560811572725585191381516340061693055736880403006412888592387813248777536604160082338557542810282433047059568756607954185764475858794138165916003163657593574120424301438122778216766044117055200651244139877596250631503359114656814305990752392681880829864578145519195606338697866677329900169409382580059732380525219445527819028539596824860447343904014639972800173957355686932260811513429070398798989066683603818169008803603152649772577205442379277423692499053681065554295983669123932156027093368809422252230101408979661946556915667272356905210218911081132179192150155549154734847616136401572790815459053357741056370904103145924787869557368255135204255861278021375206387655373148613342445924281988642667775285654058962484583578622832972727749803996183405071445024876016662929165300036295923585694366288538870692372752099515734382016493996223460030437269966056653155751964856634316060102561367728400687536871065983857962418161213809869924809778101705624057443083950233548811720042383542581964500543448199209629641708609178289649303277359672036249505156539777231782069501011564946739537862320820683605177665462404587015569382931318434444325903944677601958459575162039568989763638688842358944150121168189817223764038639195522366765466835365163174430915077365540284731830097496662842227896590046601354155767720712812490747798601453069528166218910647994257159868798016006039951438387150271576517200313212897340552717084224862610064940406270215961898445338223981035144395206035534984961983046739462647013491897768288764311871957895411331806129081565693566219539878207080761995711801021984148313692730605369546114716806855211348019444046049406976844584681282058185441658079240111016719670061961176903524366167819526592005227835710175006230409170356577421829600722910234683683687636005311206142694693745630517107646372129296169760409044507860455301573642652049741171669847748009887240249888839965213574863351549270883656150624991845902907977923364478864631651671936992598945796655686862724525330273183439158896734275416828625469827240847078109882330077793968715432141274599545560598776142355355890131953680710154238811645041643001468046395609873877516625793714877999654769284633203908454939412584507491771156669228038604258171957106129036423826238432304106121699430148630455292889695597009505121657009394847687556626519136853068629638602153751494622043933097120738370866557898967101945604838610730522521102831265516954453625421267861652956529597516992001766324811521036392505497254325085134620845901809024145563156922921305532055593051723753006767958503663891330254060043359237494981331470632904558828289590800510344430693613188457413487194193563667463696893711429022304821339085382564031935930562747104853728049831946959906480668370462926925074056495980544067692372345980432400149874299464949145069103982544149359330562911186152696679222525183517913100878697605079933243803057959474918217540368441638824780973022221077645960291021961134344056194674590207016655512449892518881397196733994283150205497664440644164783456977912391023489532786488945247425282655548970003652246487824062697137210881692363594876563522250285485095359815900049202559301366937090419685464106797197839724558002350279769691526334383056583237425354185628573543516686706472969718057844748118178223386242442905664463225981379490538255522774391577216499465481558503930975407277305780385524014563629907082750656439533875041747418682146324566836815471856813173751649326308698397046121026860874498468354786489179566441821916258525434025727907570659753878735835526956313426142570810009932752586819922738520077618919649205619956352278606109912797543512845615677192162832158905878865525559297287364508439839492590003134679490699737727973594671847890073409723423435568588003514174733357484908723264335676632079051928910802155042435282113486701688815143628882224287159375053730288059295479907683606738447608448183381317284426895114353326490678011745771186862411476407841075601664654417772818059134332857567040990363264971401618065977478937838202568710320765066744333962032420772284626244590243276724697622441703340723622616866212667994940679290225045755554859663262343624388466125646712482914607517207839527605730223759283092933256215938812859589686032450636405650390078733962745030602962663275321564996547946879871062278202540439997769314142255794179726555660009055119527013381522743195013839220308974133043829048328472753834289320902531538975902449997741746096189319517452548623043741428970762180940632633208058431803137884107423592450496188768514457853930359379122363953335154270401727531248057302513165907666673767642933887991808370687166808764233954451700492695507813476176141894918977110929864591866879366804936112732035094110631371835718730260208656410259103151424428074566452764960419133740805963152670204344176937691838782654266017044725993463506109524714857472899474479187591433974379552116898960553275590966400725505009022344821346480432178233893485015051298773431496170408108747709314149959384324836864537668126505607348817073639634092253130795531908358235670513391044625771235314508038473964976597702896972521077589573834991036869482764656616596982086175962210881079887164771903284050498118639159582393680063527514212549547892512122638296021729560367032684755777976835938428528884558984485822674784632412998508054300803193226101119404123462853778488863047432467880029077025291933082514363025368169097740875170487152937586832430974264605860010195801064679890084997686278587104059280470967040221603181186927354076503912755111892660700580521863005444643354779593964192483357889043960569751097348008366202441418263099880833824378294813040404426049176549262338566797547240694445985094251099137979785585084433334647340626673880765970819441087459663684203608561863264396975946087416917584023415416165997256178854947955541229826040362386097314131121087277014651074956320346982877537405683360169467084190088941843959963379386107926420271342404854696164991456771525502677128834084597878972274397807147262529956118050020146421974487899072618707474031718946682901396954920756016578178411232610339381110612597485421676019147623026260256632303866437965014717093304977218817701698827568208610622651259759726973399548467416047717675628868021664317118507405848336078872498643907617596420006290763396005741824860506222287121185542325461827600739187832749508654993997608571021395090030936630812975605086669393799939711478164567962930193390936418352311232964068334653616935813661580079016778058199307427672647464156776054701661577741508747431387258224641506927052224064165079046534843668137142811075758158787785877508363829633271388677879785109817628840683700558307576697222817595248942354945684601255450842038567468841038791216062977911600017938016375149112977115848395106262312980862955321220454694132877641345300577875068497164800811174735347396897641216577022637779631577787067097514208599367042156070820071698806856745161994733760014293575064305482640535059890062243307598045648869015940304659884997434928918702184955313512539266093079204680706729625929218672560013801753038751162273324006222691297578400065441941993904151127278449170157761959539184376787594238773888685801340398973774105566992243521482634618760471412444266742371817935606743019941733246785712491884483054252656090491839852635473353801132616760843604915662166297800181503214951647767305275797251388759622099288975806492850981351676008459202419611280586825032642884356946215999540715166053637409631301208526785231829948362966937243988626931110887474428161161643222066909490183920603925968514113701352675163915649123760587587725449970011273795464848503399996694480150836269742323924498351608093982211535519088403939929426033603192338703325822360016781659574246826214501008343553628128577087333206839312000294046063164036735140190468741507745220838623393340042483922691764270952567626543936477469610900283330825594176862766724381989776727539950261199517651804412234211304454420271091850142152053063449522220454451912472817160965178210588783628768418359292837017912982421581679947246516417816438863885920617390446401335013324349922845880305443628819656287475261903003022061615114291447924178166175786634929317351516935095412630086970515325027354132340304021120027464031472549876644928968486084427466659609931693656296468024817706189569135095302208921661149859574726838914011721213455143050247992845964900202187939936631690606200552319201488436630215507700920718520952330196677190328891509330769576985829161323136174685615522217451644120643228773175781193894760897328512899157551555268550810940710809947755497931056942020000079600669940029343167709960409335045703895411808697992843244107288476422072822216711086132049790285168016964043014341547687420463035248398636924919321143622419165661015363499080725952386253800439055898711499838822771070260783465772025384666518825268724553533698199962672865283343080609383116025551927271491128992274561272855004063852391586835997163316080316179285455309391542958989972863088023414556460967737189353688066857372090017780885770591298589563081513346369449258242480346129436625024692227254230323395347568850619692154315233939446544321629435224678429812377841525404245628058210233477484284306409763110846382469796919515044346651787633058318482175206731033155690535796674116913518791893130762775156521376198932542692276664912599453102001728885670342348000349726068163766818016894473125160458103072178395372869874479336580954658923017515177645962437189880786497107062681761728973558130830370417129630876811776055756756560971958365489694898922118856882258100651680697928906547048223002094516180586297592677809980243256809271635907008842696058262420382221586009487109631833382055706955923536726032647440779797064434372775535101234174415449929046689534829307283263954974886320746111234937225282913929752664668820745490750915856125747329983134586300814339110278562770855544731124965537196742425795303103120732728044535051047449260789329335678610566025112648486255177121536502764251699738879734113550251099660456681351163458770157891856691110966684051608593584669432733450425017699689503536336132123592350293737451139399574235687397301022773430123427762362177085692424133424696326740682527460910866315801529254371280253202787799198217025799313857242642354719631182742807528930654204289217205747983985803664763425360665573936974168554195137520151361469760115559097201387126512219060390023267640484497103091157129706890005176597533298051086724497032631214528162353587080221086675400756206383056504084701053047004215572268126425034401867422241472004529396547100675784514821819037507672520528427618428071554166001355580913855549219984131024969271974195476537038084050070567543123271819052164153413405764447086133118265718503275334194877966244348195117833898198736044639792041559452794068590909571627146591726004267809851890918929763265035007802892598378062052058284342543840769919028688539206980081679380297071682062006722809757435449868739309751688994156483801680552898406545923033386618313263513392751160234639137928469687111657092756849324601291080982989535593815118951309879080837992898872156738286052143063552894911075346660411812442788039447502909055855755384700087618196347839129393234012697497194465414541131795896888774999957747448264087768389425580525151381482527320476055938236420782888713223955833852615863240215768501612408374898554097384171932921704296784688697631183211627596505762924938227561785294038838013270837349796941558164165461993055277306008104759201008414754028767141102341098241740395240792689201582661884099112736522512511246377185921636067363779205867536371335540472144620004138582854623324115643569853607824296171683238179649660088615425157890685347653611966234558547612748764035167148437564860671011179499187637673360918496239646866898680541134480127964054729135862411250707096608316631400553469464701633012260172074243093092466005798197298159570337265187665955460678333263463983581628270257838314591859409333334992984898481082768948136124148414645737599005604896151610226434290391200245770174390652256980803091096812213949126311844302408226623955960701698593627619094546441261633361407213764065218547138213923014671345809351324205439210664199822769261541122945018188310864872530792152613882715898052023431389002686033850388327303689550246957235121148364778368576305228752210677280202100701100541561747244393528968088146734991706539103870438350505537126730589175237742420696864304390177717835316955229175204156290081851524117865010222795260931449294172289615925908464230968064774642053138094408185914631392702061453968455449056675292014894720387261536017656654175758202003543345096477347480974549973268266572570461062237506925344237712679024361153620020541303161163747099569042118767343368691728585120730768787713577965204035696464919318885293694783829444748841392293213831758770171924324574440502236585423238068980212706795403003186346635781097732332333808477091728919592635576588899173792488325525862449724831172790478569998950178983952888899633915040858582759911955022138264859060816133439406890889169387710456031310138384693864202432213147167319868527240129881691682603610613484275161006046715757648871139954874280448257645661059275734369778468563651424502056617178581286291093472580422590907597235071827543510676005860079968811186409710172347816339179938843367779341288004701553591111520719600600132328750526393403108756508962099155311536663317130403212379516447574522163563439940467724659697866707876308979919559021794043611707830959212772724026370601079925447261952636311076485116111771685604233137998433165352498365747802517834343855440748754674628248206307848390639121937428073399261076548343343028203720611296647102073845481790202142981623407367991069301606495035079556675787149215486573097114051213407191343347364211824364910564464734067587732583800862332229161219591801902516460094523486809874664928365344045069718897285583309189375017288834378644245519527586534560365008801352200493061980425096954769698912974039634008259551491374191248306901389680629225876103500507868799250312254087113598302343962663249078426758039083109457085399244607677366863477894442044417479094685659202184408791664348903090971102822209842468789969068046661377161603433005249134393624760065817058791296456401707321916722961610104167669954062613094468982990810713184057191555147053513198441792963169889158793097772179774453195239233107528505418335506698464446202813377007093328601970756875805903403136536645091079860314653518884408842937110420581913156186865168083791561360302057117814888153600057838138559675024771874806054754250429423011943546188100704855153662974075432098252606033371105189811836352561661550891881856137631512895207633025674185922952769724896441190186652668096500448752797219785967274479046208665877200715078077066612666625481418909181538316362931606985786152555817689134340868036074439102751044666242852150799664519957391638720847004215823361589645591741389292476491151605580398758600894772527590086234968123670899034901719616166137009788510570265748865129685047774672263838177080105472280541588373400034964847798962305482821385720198317772757235534962411641609427912625682214932025434219088030831132553240471127255226064128234644231163575416930314376802059631814559708620588831770932450613336812593235209556405548171935475833189097894158057356636328841753781357139166310139071246718759117788902800523906489826809612354013381637365057464645102342371761515929630773561271545309144781242110941085186040187347899855119996366531530307318358612012150250620546785013247543568151279297790023755312981330875649034567950613048067504163665672254993123781010241786710799735739736385409538728496624585387274205434324476975704106500815288991986762795650518898994598544226068592469367290099670779446718276170322080962425942758520258371620411411331379935077752171574654741646871136403360000380531577079192630527762244183331570315205096224788379447374808250010335339116522801595610412702021134085013354229809991064038700287942212581879986577231286116789789667299183232082774148524893466104375977364189874852000473307348622655203967964046645082482692186034196405088075037165506951281211559013375039118846815860920247617564818044318986591182730002487306877761060717216554807696318588899833299295152747039305691231947957866880409865090812008371427685004184924653611667046888281140863967066508118422918867141166842713640265884170852074344957504490000792341452377112888976398268244717418096252931846870341965265088016709945567059576516126607896393155751544292698761993446258097188989606105081555603089727132807411970353570149540439789030093379779392254874576404884868345606005355712207832431455225587357979615015183716297406527647190151563907377814632711921881467672054879848569928410746384537448534235396317461535888118232341949084928877483712628353229969595046278767690137633801391722632043294279083076745564051408893092575081745551008655907970723941564452748517283208142176422773955628697743810571013716848076317713587963797001542966019771467854478017869448985378131045148829875833769408424839779802326402444285378808423951179053618661921158476557514041866985988840944616094103844022757662836698155098097366947108928440436425743000487077757099166258702413176176753139932914394200556300904004073928789748689213237726433625945683318287870878275239541640620861603451235897464999410303411131414017624318924455238643442467170467193100363176831123893270010684362646731042304462072193206469760801403657047605970173149272681147178456725992375363927029231462446196713502951592597794412945528603925926444476363060035345807056648832607411171999126335546542761830667764428425077913688289983058503222816123442159644180489711962776963812113608663280839202391565294130360261395619658573512423740356297097651414906125649270542529424099406820956967773678516445914683325121376247729966432657947775667078605788937717966826088938180858156538798867116290430684058255649469330070530493434016749372362638594712471442932169535773195013263793247730695031467996141003015841612819758607207065077015747387768961497277658460479467123067605365144546907118117099907349821524403034907013003588738475874362081745124875306172039810948884768830889186514611469365782858301966361376931986448208469650966190844323489973896639514584199797439424883338096919321548589825531551702973175184018654270473927559851258173101620362200722690291043612371473365650020340853321549710151019031274199909494921935263095523542672550745773986175714437189274343930069529862524791322289818635409072851444017716594654239955599955684340985435583093152184253124629038333709780455124234143654092108754569986552687412573736801496437160309681801823571828804971281186220306615567482959210850684653374053538313622613914705933602204605827108717676906298151008745235840824802958533846911168310811202669555235955764876946292581223584996374404452925064849282447698546188427893397759121217947916826711744798197346542838524292507650995637480380404188730940730157107030971299989484238481345572506126606178960337831701832365601310300232703849207476966522026250920822773014163604371461593973122797229030412508723651380142073711868348882187155606765284493966323693732053308757920167338646601335679073547457518048597577000693626774778423440591712252733938349039502121210513495141217686582738574541386462843286936589627338924163713718606888007731943525127026481192305179317407583368000343319411382657266617206962283881803702218371523630293972013310743772341940605932970040857220332499358009261027337578658362039047801573499900573224169238515144322049023169021877829281026478159402413805332451114127229248880512436950234349148922385628058646489990694421503517312181808203059154818796382496334060558293054451807256719893164108670434343660963391367462990723383945806421168930322796271144923333325047412790220302719368721168588069002847346214177198875696545121837896269214615469491898233560557184344140660859001688691384742349310335971200415402740101660538163334888226180963284526602108995931875095942078655997813736460950296313901646432313677307674551274623415564249530154713349630162921155521037253553284483068572872259181690377143808235267739896059896566814111288742521586991142552460167715236177849423843445367132412899794534929275020129236331728619877562876683042721931518014230102551455434145416550551401532813601899644453000488123695655759566658242769307681849669437683829833999683047744703436989235109725678768348165864322674358006623179088929816483287164828520424014033029098015320786718361049028348542088026363146653319440153242716747486668342057427904964850070648690338116703141006105423906084966301390931133388056534868643111850695058577964940974268003988426073036149727215136403122070828904180776567098212679197001968703897599857864932425610382695141922805913069126726680475988537774554499265544118414424743485668872801356862478623798872912721932129648846263705938755170391144296278307513593591624810862525949214177520373284407000081164231317282671591932510157058051906304188947158382893210241546608922692196923489689485953719581025674746977019470919383385989896651831766608506192428654724864468026553257528922610469432167930769934367370023864201249085612766914234714590710263423493414044031059122515356787434396078603021553236201068027546283314264011880759552182842913874105708044916454986614004427038053224588768541282650879851004721234196965049110108376269161311312206658271119399444604065669191676050234992096602585545015859528810601513556677093972662739314127289244125409104887418428615536743205371288278774722742935419654963006461554186090128798403937393874906725321773392969037487979918326590398057827210534734566462424029496652966138310092984188135425469016014880686994589699409187511153954673451740530198794673342677432126620176896905311975900858790022793031639711983645303570766353531404667801449370746574859694593041748196552791145582312609934142027241909690066829559228297934740080976884455438878852734942838911944145038486605605030276918156008669182067005983277096344507303786134289874557488375811492599238017796064004658467255818032503043587084831893196184401125402109489239146995847458433030783642606625374497246374109102621314505690853778418933979259357173629098359879387250988294420681328923480534595310715365094391641539491472257542912801098374849238657430047615835648003245891082828638086754623116952446269174749548347040566545843575946049047495477912740518670150979549876857755773082630860393930682286420607187103314262637238597394821414554110379687825698188544440393300980407010149298942893576187010996372092998946578153308385529007905583850125646345801519863636521549121237212039478049503994814835653451693774659154287404566479970429372927688003237560438997794615519079956895604666026999032067224973754184011957037233721692629384744921443059532401542283218608638031690349784828560728263874364841512408066528184847438850779697315229822014163347175712460086392606121389388884209790008748861503473961470021908388689630043285769902981096951834665920034099296485015205726951258284809092263059284917603626236125013184990687768981441439287301558768104013297643991479324673620925966714113960602908811317095140342634381835567509033039651769549906972941470031165168101239909618896784593491099200207379212101535086539699082065040852656332053138663822195143488860538568340287216189491049770934221967453986187920217310972217575236941721660285053486488059965844538710121627520420731535118609880788924310170654722762286110260037023042976978156707140382917908999377941802361377598871173485853334908054419611917840127513420316416817009304303325533324631391851767051133026081304093626286250287504497285588561323260391699845530630092173925052379232199908493312165260886550398572409948974374672359600707760374336704027829368128023855220239389677794032133491576770162754611006832719788417125783277791548802562713679410654862806323226431877714071874903121521113617520247132502203929326360687485980382802005784960919514931856348182659910794944815107167399481052614586246849575346345044128003553029286373269497416443227201138000641200465198015408685226581434636948754984307092250295163697233026998570915699481870079966561943973063903152683971835648734449395402436940409959566329504038399254471283022784312006856092349093863282444714495463938931925925569664744265400917762967135680963173903918755863125056361025258626073864685928865544186769048039429460280714606518344482199469374326365338991303157249655103969944804393393848637826360546200345635595782130809342126172373193596216971908551951286366750427103788722834412270148498563844223013749189976564758413335590452938336417591152740523385562997229997897317930254877903995481625774747444059039927910156578596063015451378963784275270391500697315392132912852024150397782579843063977385615637674653208461785270847640130114705171048360036693288709073903898406128637586958131654409146573399951094970846039497866554956024103395152380686556427898277005350195424765496978066588983586151561413768123898843328790370109036829076402027211904194662000755021130022752476499755364880911125772288237221263436800955532487178660736966823699732239258391454093623604912553176300921280512079367606097319341270201849459559923795821981350644038570289264827675390436376345532834985799904076808672982555974722267041861761283049174086194678704405653286478971935595068172771755601916601802129851666872508480009578447510707559204886229002119711768829032022353553660557219542387898843100646355642259999686589407997293076707206570027365784939643760778691822805828357603096393318859428238153302758207135062413530118662880922107707702780669573719852218958167000516588679037856767701925045259082375058998228600720999995669568142032679854783324317294194368006736820425705735635385462247026723454637631434422445007807998019327118345035353077647494433822453851286354162099722290972897638215702826371456696710915598828284442597190758354767136437965415240863463463342003954276148215453600496771345131281499546670689399662169401320756649588933706081239710124091200270426646547063300042608067153173249491520486488712063949748361534070566345987074787516836823925561758603584605566003661836416235784856689626432086216983119981066717915365593460072534459483184356164443658148130211368755771640374009291654340321115870491363509075820315464472005001385238467340830857126664761996157360043090202534179801014517252123792244748391046003243452170993749509621587046044173920184350962021908511002241210342542500196267679521717963843564838825127924552368509667187390928293058525150695579209466882270550337644025929174052206847706054760290123329593818385367244742435860585375989213821771162775395281480144713234729507709115076358392065698393463139835963071227626595247302672864848648599160517847361348411107635513039243405057875045283393261528212395889836634245284314759608957165453666917189431582908171617244806256305285272684364506434797402973911172796536411782222443225113131084430620648012490475928183688457166878250098075492976032313612380600189309731611316161311261103903590246653385470108314769335700802450475737793529071882590144514987555976638464049096279097169138078754701493307364277911651156008744923567266069307195594193522355590243298979998584491872501818791540014837084786346356597562794718687889652497177621084624315119984675371381890915726012084189061116731018588744700784186813918320513187894387354852943734985927431624313952017724212961444872453281918656369513823746080236949520484844923230135109063625350494844383509918989171864513848214558869937330438241564542040601983692053790036324378775296403769827622346983070755377120586767375417201823942651101747414724693742240808048977890177957380705324785039477997562303113324707707264262819839135971506548908211070300046989791023801569629377803378339165406708307373229297887397626654655263816651380508766200372110430856182867792593427280199790401879926855738300160758155319560274967935442482804253043570640772454792841836428458542606607534835177624012486002962696022794214749955536058942939568719284010464896310970842088946919724491064766956805418073320839552193833039929683377112346958403115027088438985715515529848293976188310751626225532092465886142331576618305142213001971602725585624078711787508833670983113694657695034756020973740249216300512173103142174837345525810381302126051691666140562967073553068332786728805970991577186937662749872469332940002337877124961974035959723459345779530161490846377908567873677411295375220360981372561291116586083006427390147690183476704561547722971920158285206835877231712889377509463855246662949569012974547602674206215824516908580196642538411598895477083002319452451594431060877320998846190890140775647335645998552845736553562345225691650675763847042929879045823753478066836434605637619453786288663474028226273469093611233928986282020048711050621139267940060839083856605503029684843538467894563616795851245857082072960234402980535127795578240301071050717466721358012445981503210288657098061809105734643956971751995408262110160165893371372229581847689749397211639506682016761610215402945973428968090860814225747676581402712260955146617821634427226516171476409290670331772571389003915427242819257499821711429581010849704734653064973229711281766899603249653045646902828293713287651291164673312582455253901633586611106286770388675085121072996102846109326885353058778236158925522293943822489478224695578568273210986092626403141702109416894109561221742854534981364721817679817056018786072288221676149120294550745154800971762273846616073434132759548319296163238764072106751853486698078271145070185718618144325480868168132299223122401801044372750328188590136864947280600312685051402645530728631653768368056176425599428882757872937453032808811366523686888338611453702141839405216399787660403355638482610377960785889050986213598645079271306819957334708985452772689241085821447070855944967723854198950060867490005423523308222227840119880496503341215327168556962504100644630063068252450353636105602613189384038591737689002563731554942468694033170352035249213312564427645717944336022079741604323229793507527939933352629727671482553373420445690603323463938502853689510153722616080869832731391216946734449810777457126678163503178490823313415324576115522234381690390541992309289993482182721569115265887067692000987563548700856793016319964094888870137463938196084348032068834539502201686186249108281364700897008775980457366568242777906486594423797418187657923455670069943166460969340054519902293556722195224076983218365460696067762083670202426829597434186041167358877639404644135945325041816431957412051021775605481475542659714891884870841382142709180309002754794162243462180445507838781734841782492273834140986820736077806279931510240097209626319550794535668322726893353696425083389936601332149667427653979368298880482553296845195605476048598439512102729436213954618813999736503682376186237209568807440810034903600657359948233108498135283245017613414299923170861283011298977851700570978166045946155609946313987794882372170573397626075638101909972517045781992493916021599159357508391570741757876551411294518801570025338395257279434597786935495178925636642233406818167211618543432641319847984024138917864196371884251901277531834308551496141084483159242597883476681736928123199252935519140629517597181052491463831081908832920630785108214515488325922209835687208404024359278419979826467671466767804099097983204828711829786623287961972336147833096783258678283838486028911798394853331541256403948986753814465241350345220100764169778421441657530584717710797550711869780413382531406851157083578337539972870170540226748769875095745445458822853667106290785722631930955876357438625935211546475844943587981018820310782671300107451888482920083904066825717377048208326028947358406799075443733436797182178641762265132759138573451342609973205702844998907415238345705476773076892263459295526334160307692429738798866354851625435985713602483644027911862588478140078682207991584229828062346782237005277427022231935025554547428403672109989547083472167230770732945742677644253979888569370788067037858090274249303682698254130289397975308590532261778622588903471931044687414442496106741138815938499125634941751848080950193118855872249516222523407353170821941456377577319724101454899108730309317042491428595254057184186556216870646019236895416960627961196956453599212677269565227918124604021346655533868621103861403294536527940867673125601723616492931828439887766981818108610677910656668664799549441953036793325913618813159135204859412560262655937349440937222587446656334442194826140573341128385770560415315786369938900615773603145592658268272973857630750686024949641897510442095503927065270951875511037490684835241349503178604152280648792637781637635216822334435039663350876442529142349197144295222388096541263409380312630351931222515296609791038173019356164108341670888204646089102769919699211730244589742874022433035595550140020239218352922601948065819051377238623508269750566583427570562258961117795748471547192338944922219864150020016821317888875653155479239226861705478516038909602535489537831856762916449181458524056856115181113060728605810040910078282506747312981632025202739843792857238454397133121152292753312264173554762333076674447565483124022118922076905417822744180975948883380460560355971790032414776927357310299860859806616806835828441511682169156616322958683081791081729813561736906083775158865398112420717688562157629216117918508421104958751902105686088321161916562649384250038556781550699215536463102482446792567324459606655700489806637161116298887734411363693180282065546082050755931617953527643783951030735771163589664818178518541850834498753600767873001769223924044530315117760101012381232231742946173857476370831579436414177169954830120209809553813537543211977441009123966396452864277266078488390435577972170570002052491945773319499034613351033285953688540617546460523742882111969549837435334684841954433110410784057527209819115762456989024030469021874709811678363797510144112704235527165008886390631236960363706554451153415214433337281210725454095474628672475264922966910417247674230629066007991850174548335609405226922369086353086204842614913789607096735151780405892365228395631343778021842099054563244697431257612361414003529950491226073885639047068464305974328367955944359911255143638530860757066200149286542402042653145163730945254869777636465253680705579673911080070599665258773536525098500343493473696675102020558888763528142789471887005559341232820628980034602033512122560436142954758425646228763329952981939872442140514583312836625477969499001939703751359365632035548405134088105821347381551059219446138746907637907176243972375526112465295579566300608194955369387521417319878167849841056712916678824855220772029502683626245689817311865115573399900232599898765474740911863495362029919687346320629473945268120190507107419649840500000426862653273842599837330994874590646563707208403378349935471976272109469800002453903959877926143109564739606469686679479515132109840284690354472761980999628662074471284620662312183543506045437373884310936920202553493232366469906716340201590261250769396786788646645836773089050100826919635252517910585807674269746712809356780460579773219472235513443424030093154270113311353308500046017961747858856536687093933249047825520130637173231436845885480517972010863666858600263466125996815715455899852336728210972747299060153957476631559063129702138016083078893198684451525659201238447841807074061295561641131515534305759804406803879510036952366049647604914639789685967309571804346735104406493587922464518591728957897094913561823390403560129051663959153023059532425367640657436227262698924370445706657606922639606507310052828600367474524607873389920474168626169945627633153037748992465462498159012746814903919785278725481462207131928023544310397870258480671955845791776177219926633195226024720251344715003189104805062025460043245428329309859128477350195972784534220710827786817913852404135002124458650500953723936805566188232819294793088533620776381031280318808891816177269608607943801933718789237485863691846956184394551304354715649772019224861929407647805864172909165724148888988677342975948008509471387626006560488235232487614469292142631881507903926503095296476228906263632236030844282905994708462567359809789735232739995364926563984487350627563866445680174552660737330064283510552641006895366422942957834564985641188968971969803485855213354320985891940577363902615223883054207771218153035566920523991134404286212183879496349847123919952245028170662805738139101098008490342356236469700297879613817682752729685095496828642402838592534723880182962251458657623592508269030518669014012842389600191733809453068333742082873915558364188289516409752844597377595424923437642610854690776692105357762621548566175224865523243914790725083961151368198381563559319199820707847064342734989540355680741954122675380543483036381388319812155070798111650031356637592135018590089130536254526713756820811117965704540538889745530967204605413452766163201219347676033836370197936304103564139194367749968050953666342832719935849864367660808827669574810676202471251977871557389678610813941114863339468544523503818521169764885078434939883238696146138313593315807648353492173979274763901520132400131558189027711638475733926520985666383873760686187128399449060163670072034793581384277547475496883157274267628088144219108495515033798660890575803001210501152986434571460563027391296367210263563730873081632771284641214253590203131281519988536935733745793475056610656948928342535158437886001501914059020978962622346062561890943381124027250846479922247480703526658282459822630451151744748378454781625219567386978458140785188768557393494737074987376543400696275621944377242360527130253698367023813496430582086065803814501710367452627409177834172419997406726489416951419305585617198471627279241215778642641664626994806193476276207423359508900489527748741129434397669216952182024252103196507645337127373786745341881948307773553302370865597797224511637511248303050660688667940543871107217073634844883213946503674860399383346352344277388938415557448149809132748239400452101873958437946523105141321988709447025769318417598433961824068695722834678866101431282312439167186336647890834484329405811086420395447880830648060338741446332596742420798671279384432352259313152387233398942292973094451217515230539164069581647506099994749918919581694500676207442740303775373650874730940468094197887033849725066820786539107332647198935454083605912063435424625015478704126487641429695103929462713573665696431025962349128970579517554468536538540271660344460206551498603694711775032599098904552261762629974127388005497561698208418941344586476493089991854396043423046114361924315225033524726034012587222620418830480765866074308292816231545830391357995638148924923915793582317801872422559109886143006042814892718857569626908517840810560710907838175485702982655003398350969540155104685960200694790120593510758752008325754519505598293307233070893213317343466952973546129794369729719408181415793311053519083183835489105059494861338434898780643607701515417959566079788600466398732639128431663119174175445146344182417597932564405207120267852471904448308993186610720628585045068826316364120811407862301502163062295667298347343601823931702651282037807137570336029591198727535243914332660658562974635937171908852474696141917397364083974876447613289143239657239704396114211214007918971581276552882677997158936631640625391529628070986052189171282837101775187292575211983088320072785887053658677693255442121405261377089076362793771675397585133618063691333828175653829153436866945071009235084586582879911315825783481883072798952211044708374901453154128632094391125271024831143176449013962336875713311592963689145533658522999089720807977351644884085362775838564634908465692133286606350351028618508850222244340618160453578042674247586770192495352008348162613746480770572041268728044855536907861722135421563026977315395475744900462388135343477743878330912893453183030636905544206762080243662347314781126559058253892256439728428375809487972709920252358460051249002082414066618134911514589110255088217946415795350711001510276943174666233939756817631154048171812710322148854655528370191815335568836655403567788932900551037846978003455181868677034593096961123951131482900416790820962326788515271854071210788761956289591343347116687145350821779666131947199690718977030642677269175140544369494588702372423950385474661856521281498339343091216127540134404208202518535419761314574505875896220806953893680923231470048716624311573576908111879512792823849449820537637429635749476902909508577103481386157348179135032438626656522752432403837058384468869570037399902326410953533417983119982055771971996249779815875069500352838737183800921141576961506777530251903541035814728417583513404744703927869238691489954812003725910164331570791176689245803629527389394030084391347171385672929489104520444262709176583150052779516340939126109300728647378208058346076604800497647480719309541823262507584656088059102897628507551075743472111271277598402798640825754241925439511156128046213862251342869192889885399879526082677118804213149121865468721218201335288082433433496744866078742601545127687546974547008630034764696028519239936018451213058680749888592262146366494130419102345915788140363673378003197119951241591841001481531170255850744896022674732242018902453167333560539680711805247602302065915654922106358579856687795459958942827768120806272606048510261882013257876162822088093916859604887991171840441493934639661585497656428817685700695466219702544100413490393612181555687946435375570041611275530703250242980946157741125032421616915871151241663017492657020788031818105389985066674784742006729269711514377044765070607765127158554665573776577958119340397236030255012202174144802175150161206567090221424566626258258055847639899103768341303597085621992175883543945582332113991358682717100211712772493150086865814708136278490178364264176180548676851229460103004504383167184779280372529026847022907513006996486504854964162887731839365005333581498525256192393785460643821347228156133755278752466010303736583079090316347350790039923341963427423908039834692679247280517107078284660963808412347995229726899596799107787201401417823876832646943618526908034204510347180186008585609854615160200482178123402515611726767946475431736158186662860555268780291282551441246698083052899443011180584361404803605252008329682784958667805947639104276061399105591578233027360777941914475986162640952790975059730354393427758136821306064376561365589059475957713055300455184966475652403471337763177723863948717837179450329451965020230592420528675230953657551622708176402612329336133801024759490743325707461495572171660451436871574750340123539961814472701230911737556972257626615123122644060955449575359167024568602808124318459030867266114664566092704694321778405221022751027438189152394126638330727108659071298386815318057605658919227484474913312819779587625464319155961099750181022735784666144039865247875892580778079262785363970599710737033265151750378110356729522309505367250951004844466709486861439425936464752861785006734347970984365228742569564964424267258308672720588604329974767867103478256713173282062468143626851174184036790158252787096015074439941709626540069050463252243337041005750615401795438151771240542032716240091430575705154245986060443208286609099053921231720154039985155597914841592942265760118796833562939144968178936325234483371512362131651560965740719517092523241021877020096671335032685936493878653708392955441872652134503503165247535179408854399159333855556788766609669145284348661045986338180365569833173273633114384143489846043705525277375008633932522074896795762204190951001718406532593240206092664657014420332355899012486428396493051085803391259313250211456037177814232691874044551366478131583119865580008839131349300055770169453769608105834845607901567361931613450169090562717367163216071888835024227175400400599698210621511527497518571401075575901225417897162459640344063958589983377804171700656683424810296592929509041549522181313392382382982896189557170498079825070698224979132600275567832744549355397437650871001586109547125813817827630477541224787094174548290199515594730017938609242993503247637015846141804987619505841995503346502303707119588332360509956163646653820459452368797900849021274827666413854552584374151383384462600740168302984434819514783101510080203792347603252710387436633020964270414295924426841699468113113917452489404982209790366390050124854935740921417873161013553473529314240146754089980337283787174345802110613094146672530042768417510138992520951393459983422881585424047814424531345275946933856402837443349827934359450498995975875874709402256261441976337663371386447519831403244028849510684343122884646580927938479634074521174755627103593791341725339502046452829487448477698991362562981193842584463308089837537878495074009019800382952692282995367347632756613816552160839161114509678157682366841891453974210504290351445081880259622287371233938361143035700216848908776403491178755652703574724632315384241861173781134440735679603695454365903045876669713762954510100893683124916178722758579560421976262030346022901176317353237076907204872061023428934586295075883349597728272978079815677292265523310763886852808891472485414689368819359989256998341454476370158808453433352547255082321881857688951793260687490182947888517764145967487238053940508901263641424425788456667281237925959872222370816996215718672079159050768190244776666948273193028500609349191738987791694691264697526961255641385811157517176509284712502154538790625533211797541198542940876609681810931920067371479128754523057627448613927129425638137524414999392899769939320749889677916369825867487355862116290592053458132251352767884777649756543010083769324196158894752548124060638349648066882974901827583649081632059929214871261657047836056652461287001019234253390307569878482691851119150365913107834612454510248301732198121750010174604650564210024205290362442751562401733328258190924971518016383825980481995453212865730773086216269265819664103618067820065517629393576052552170198408361235855557041112239680296950848754713040447225444305656987870102493047629223100451096411464388876363843112667547565706502941527746102696927746864311265625010826144680106446387407665791520381112816848581145116724236960680108261901112983480231704695256098931080410784731536579655958069673000015389886068191361179250780861022012709090498657080541019093222068333288358942187446671666993210544489622396000864381404901119991395467724768476709003808644146478917601426273871952216433695212127266111369610472994072730146554734576330691260104873655505884692068758579015370059505799559851049468121180933945079105751854556634436390490878214675524019581547940434663766691638911568709999718932298958530817903308024517313305791383416119408800934590633744835340060174434069029644545220795053692516817637856786309898057698419454258059970833991893452763326633015135888215896171985310323282703019727492472622286361957874212631119390599308075124061081886440376341581225798083617829394686707167796645596152847254080645443181543653682007883923596254610837861405960147434397018476151742789095282313698067968807437584315870269575970238071957987971867299279595758674602625393072823824447069550260369864833038961896014859888125190073844791562247922145320533089140135122996277471952444429157000283726145513302427768155257756942528236655467386496272411612531078929483307480431931491780146565566944421991686932436516663130185158194060714033983858582103825730170762738646011209619825306586869705554214305081588184951286504590637016771759234843206342132068599618891035635833671409444778872878440192738952181093037711206146110870770824787245375438444746629515038609045707938191762319552134194821500323660240411407863215731459414714768109197903693963636839704852220043410873544771378281038722221990120527374703852153104688784202675659491492968165772490743788165137795454223032084342057851320162164796168776479471943434850882632109206549853394473088750802193396093735696963714234767675683040811257544233978609077986920724029360414879393085981942235514990626517410525216439927620601264482817776463502235601840389953147376867253138992981398798638659911733279465027390062265227715795085226068144588640110842109801094902464019295258281426607304931624495506812830376705935716174052160226225689736963939476141064370011812548968165954071705233864311636419933312002978405002983927456191984788999636054696856962752668476749441939227335686507161613404647726082797308800194053175780885205696244314101369179750227246108323393720814195235397604220133890769466656316707791973198391895386424208715721871805175952851091043658935029471145629115854278555339320852314025396851496604297365970907753171020342461081716657445712088726006585954610942312501596869509946635018385186924259229404945232542361155147538362949820258113516438432976736478809071488030126520659234086625212610983617255174135270797771217629840013614914868984857593501662921401160597320599025508966972864302172758786256136053688075073732491902935584466479784466712482316038836961241582580003954206114578225102317327046343333013995498766381997120099551687534762459900952845368025287846908288970063888754749080771138690406146540279323610425213935192123806137664672055995435161462378336975026794867046369574929120112444501926989900144690363933270694108013867903805146052459955995088815646711379862586014762975890789643466114047184344296428439380810847480761827378870086370923044159059097293433085954755218457689847518348250854348041218932491371540055012058119107681981876454697030367981170266931876440219008436799247606718905161684797482992119709346227474665231011770363520239908020135633534103265812630451719996160898163702260743576306227576049451350632018048040999754039564092740662541084487400894783437673852619612439874947372071526854630769016016707156060375911106405463847927285573336598466617508461549003978335473944475377325256729331871503374277464190512065053392880445169156695891834230929467578983862097700340629843985575140705255959856733881459381635970620463180091828964970823034293755743699011699502814237288891196933163161348454312198769244588494410958213572221083468090009420485808061364022791360898536250132204155497520856963233416464017434593121890939513404271662727885705848541036677491105063808510370317934471091841701941782113007057093534617528983862648544541618404838171648627050949160547689210758172231235459388175257940153699216057229966737440161971308182176694176624247565339203923844097347553855979536865309829191477766193450601618673533088415698127106782090243908007294016826464798384514152376130673655677185146137410156994449593433091235732400950888432284394798153641310933590200790319385022794400128078525486006586507803099278114530533422808144387137894942947138051729278490897828197705031617693739716244458368474915335768585143092976211703338542267058485706099889125112623399256214877967359158501247218872331599725770400719140060176060029818221228317700874366483301095516783820835941993413885719608845556050719711483151040615549528406724550852922341132818654444338854705258638156876563582643253234687330737980724325917008826358048596353679128521241249029512769999584875286480004918800027142742768081029410599062875878145672436495127671650251244482568042667154851702983584097341552714927174761392282129527520808303922481142083694166884770826780428095755072046786995460007948478019286070801028166990670413866528580647960198408583662155769931487794226326908188060221588680658078123369649421450574804443384580734984101377173061073576739526244903236961664981280848575052698860478153924568619791646238496748295638898687028456449557315683680337707483748477668982687431922112272296407486734029623949625040800185927601434924705469414415780587815348438267834831952694518903226015252766929496949051034092119512638639567384179193950018202852590902104770282713697339531312147601700713850613881268067556599412345862853858891136943266356021373701006645871783273458585644931874116374283270873906409616467881389436664204289926920117594543904843642118873327960286489077751746027048832307685952339447558465959706850795841619587940537179348687984892412667879771749888255202061666530706780810442058034877832960018311793469960026364602437368281884065951386071064454624198533704538710996000144836791569080474426818006531801700490645159124839330591707979969952251012404715527030673787944172279327258432176259597875805920514374401746095375593793406743921342068671444904322942796553893871692540306469665676341639575602873446029091994643199126788796163960838432647481016762841362992736611559012848936740497880019550567759295165487681954868863905157420934558444045732368126288040311596393937685699137863645548545951435520731446442335033971840602543416671989228740526327011539512696516105289294265574472414498799663648991394199926712868634474460957038746207771868712412260025503033482905567992700445857555545517532829762922888908638630730078247853649788163718609034909954727836059603306046798587237482525432587525722823329616783108758830091356308993298892339682545137244988914545034103227777435693335473601595171393509175651039433508734602290256557327124030694182795378373389688356282214425923427788862082705904993635015146024009863630558416909615381577965066379620769812831135215967708098719884893210045138090922360861456013703124455651322896867510853710612442512971402147295270213480606631951965684791038834420996140359010445526152989616874823176570769101240174165359352951690934427530268884146354569959896732267970678445757705389631354604103895854079083962551196443041853395206507374017321223843735511903124707701263865761855903806518911622898650716542775231401489062668533858590160323340167543813861581546589617907044687998307411744156544951580854163790646878783329285391869822695942700648484426026370454111052229913015778762403879896611205434905226771950906213237230995600754879234298762411238772560805188602656165298256638566550146884856707927201464303978494715061627483623129227488228436377150928643578893719190029235165098343566429584061877245758143176911124400234188568151699861404684202001522792757377120240523785495273023727242358730010217552421987025286338153736560978956819886959685888231242608326829115014490075831092754101288079367757098081584739771605853195299331007507916957105589898645385110454938685578898212186165889005125438545723070305549109489731068803768633903089954959267252698099368907614049943593331770377886252829094360016922672440460721733701921996599645441154917216502345638225100052375095042804310139675856974705418082176144752490636117997594380344764696432107529335481660108199605035869574883163646722854989604898336781955786816115410068336776611894747432164313311178926701011605577187236250116152578351601732463182106736951899613897651249456274247414451499446806762658326438576775382948840599949881728743022556537871165307493398473751078051517460606600423641925413377985399691989094690196256114125725006699442767122573393491960625794706024208255768069544114976788840465893105158061246406895765946249306627081833970733414743340464022260954842279034146551207695925232183761022108855101193725861390314695061603451118248102531291637587033536616199712526307467298196377070550376597179417884121294830029599004390501945242818015766966010188557023922585477522376506677251646688318272930543218100115674254699674031525109989650486165706075601295951175555378527654635015167944207828092810039020294933965535626828213326586335568891265529330089584635601067120228115388198196719733384778965750532401594211066191666914334617186610847543047706713434556843172150481770363578441052273745733121676677645625290018586240310304796827263950886695300959268691873487841489912943728300763611221149944071799761013459881862973373767288335029949261500639105643708593746033262502221894157550003426566943425787436142064084790173107399776228685155451394234991052128893263338007637781481697956730898959751407899469987291169870146405354540358481546690546974948403467210706148523368345520269453986950263154175898209347520351338943511315714528352479678067076650703772616405474972890899767482992695059177943877390781378902471705450040049862963423811680730905004980589280892430702283171982637955199790070574024620446730156417555794192665408526212920796908900378030081271081580780285276090820847097610972565545074484354904431965810253291936390119526422002580131202200388427194243023910638153504649692105065761335525478328116685704723905197872287268045273067039695706977132542337595022862213394636308399090815688771467203390947111953150348732129970789218373977881934838839975318103656619187988708051132856495405542026036086365207293177026783245809701910628687587507161013524271347818401842803595195805837008856927242095670277339089233867232736097062797657230362913157118420970872959864717690502805313622132116774201574143166071870700874859822433763661308143854131382766213389085711223050939492267977066208563075543085546016584258813355652221562071154621685485945994998550266277761152425248715499897345768025212857409356871715680170903347364693139215243506080857724123751323679580366471534643561211884107801965868175395986026429012888575036105958130464140218196071567454019096498353143186937547718439672608040485562409638073627690241789878323649528694918831351497740208921456483987737605637634132547052676237662134769539990872862523124537985291740661088254864456287108704514242257079274137453728790039410712118150745501796003415556015460366165960527317536472844508597654179493746298281563893872073726047654665868847409130593002128025480193295097619371331248910711292862402928906047182778046357575896081017432073260656050046115428123727602292701525397466373643608204087660748341875943672274589037814560279451193544584845918834370596760394885146331131523815764427368046646289366227157551457916271448010044157720308901081610000562698291664101395987781409330349228595500247719964548614733117120485626081582900313735519843164524737438408198299790902622966269650833278435978333313711077752049498662617090119162705267585933729868151046487609902978030420130658962830869219552524755311735448068501912844814204951088910636522896463025790868973703787216900147137078830536618419964961274610130694116950796760735963755759067728952286184450100627546852832584023256907513953374335635905426404288904616108130045241807583407004880516199729389845235267936332054835489183464507598323591998561321080494764166336943644106768330258775068028311448565575174438546622220071929589473675327181701288978792117997681717291380798896371593523786110480650995525644102316731310628083836902475576851392057049454991542576744418677218637020115669155133384410185749468030361023247824465283225274518282536138651144146891834450461700850197535229984393984429112874803580804728103134003096372772683209921968835230928118410232611451541520372759384063916221686458196279738514712721526859869934319320034412146709714830116523910475986283054759266741551035427476306216156029125415832250805731638761280828937040017151971391261611942080129449558118343827316041709962702636766384828324082266324655390859908772589965106307920218769516625097639447296300222885450599312722066387738874922802040200866895826202134959288947801377675973877338014753360051764047983697042984432931287509874867262313930474924646772650411267063347329893531115700617612672097583808589524622968324005760726447054532686268769158261037904731213085631757175541735778724849529814391636323934678814158386542795359211482430303469421611353648411576333598310917532368689555125538392638446087159594391431971670825370740491982879655380154265097155270336875319463541645087616165794975662795563651380126892567619865855356515191032062663627379563676874400588524668811711983517581489862908921160613127383519969037486769727333965207112881242635788697979490409378010182646167920383893563409031066986602060637543894752984675058043960120592954916997986959075321419225070294177109436201720414654145294346511491647905589437252222806165362833755798055862168713809494456311054961357652549143719581950602337942238517841786194682069631198185387571581021316634846384035582499194395541635739388356765346189834533652990378458744820201689850734518287021766967216104381797056612575436573961701130354273903442683687868035149645211067788543308602456350138129577087789312801128327670938199691225893565804484500296828549576835506943977032667401783352233111317734119325249291513128697842791791443594198463216415113175669903165563074686611184321462314370841559829664629763240539246596575662131040234228029515302033660518770669185318633665371852273981989375640452333140828919160717843357983535971209615304019271386324228842803562892198862703333149644498579722707014014980848264333585300421788236657696686589850125631413358212489453038782433084013650524481973630114770361100261783177561622102337433246507845648903521415208051775210288736241523524105008921178267597035834733682328203332479999255301103598197588185971479738569125544867693624641276044552698975457432558182987515270642784066554635891227899879277451073412578056979546660120255786829886551521766961114117682946864634494866352217480859321733611272173650098696577368687063504102056365610626949959197978516506160841148945880597065083870565229299011486223081783618109889603163798814943077053483008796981207827982198807454343432067399594348758411531034955832587130588903152452382904972738155467398464095103760070441017587092236154586674781255725567581646660026840144859041178723045164887703970755763914616974590431394748013480926394188326369553740304545984104947823053269194720256167688610253148039968123157404168481923218455752617497060014449702062083022599550052420196930899849757727940403264523253989122389766008854204597405228278205514132729108757888034327591151095449749558357425718399869259933075934833637772767639201664386977702382655565579111576680637307075110348393315954476743158985976555790215052049041977385943846869055510552151750149246677815113862546758255797127887358189605589010331830700239142177603408479872551375228444834106955855610986621220262160182882057503620386213529789756483618566299924821032373648736765833834080947176815909961793544669524695677003255699101214618837362502067029180822555126085046863715976384137352578873776825265424784295039267074113988464078313454042487235570166816747263338634713811735772964818400578972867608502562944826136360931668564732121471779429445440418083372247811635253300477226684070716121699451686821249877500050115308450428514209800658581466012907338970926261684808160195792691345529828047026180720505852298612560195086691598391809552638448662703596917132467785704194067883891067392126663462150948207824828261954889262174577326388687417156872122589120236780805079917679658200267343018246184303249867013976979529418632268778329909621785924017663338650293089850943958582084618531615962462842831522684047597260031497422793255398877478419163966082499894743063306534912642604567643506960168893831263542217855586984964023494677034651235014703577955484827037446036405554567000052323904647371126077968712434169092953944865663094670950792587017774087093439979611235269923736057950409020019053346063338903372108913612571870882733342121273821383085645428264984343856874586707851449827218336344137226419361793208390026955012206625738979734499421095361249294056220355643997060677270290981933709816656396872224319600628723694473726844850545058369620663977715150182327116856114751963413297278289326358568097262954984138837964862116585816377217699000677108616241091260314251032406915831115955956522261326204845513198637614897709405336547520404607412694510336561260350434830887907933088155577601941433245543850817240043619322974231804361278392983947971953448293435132551553471768569736687707949979743466784038494841413522234343695181888876648871946872815748569173561319440079734933708020440474824337650067163589229457900425214616919233423327839132035654378037018194359675447444881273993915137895640962211407040441774701363065691510525624968771198948048113841443685562261615814090130093763911098824761464499864185260642220160221692257918929712547223699241000851406776563132321602585275687268118359321734362464826385136386491710028549488129306260757766725737188184414214544255062072903477342090879610281596494561211572850358888111235800455096777223786230321765160996474705245072792293534006903194102232544438901509422967774037736884245594078308075224878462980875961242106605942135150398952699092196694949355171296918205448308617464576253135160093921599986922818198468592888804159554251109099357694162700279208636550718254521153401056094512078390831956426902536693144172585079384305722690841996766348408406506125581994812049069304617196148787984409044066172547291832752161667682324020363377245689794168129829320516079623058416697271976254680723135230503091518410903930068554551673040750008838063555648818236871454873972811782018988107094656524406450123188933613730769015821183162497796589028419663509631054310531592924861020425245836299588229911275794085114100768867435669289940882326119303816996449587645079151422906050362516999689972980635874041577652844799165434875175672509540166343825127646251243987069550296938928947937195868130784471909929621376972656067355508984801343167005930645540353599316339760208469000796617803354894761600844825164547325632650341150024410558710198299298129312505073984077705020438495791377338589337919269143534949148661031351970825557577230635059821299929957377671467084581211691188346347284802259527316407298347466300924266133354223176043219858695627444736498428250118635745609919050610982052577272042486338653796236748655172570360796219570395191945747935121897303660952589903739568730977226266165068532353489075206777770702200015629624258626494086859355018831673451856868361044064348695098138718921113470023306610910355100638103985170568910837033017793956360222900687224450831756387049226253053275950691352298442154007675350195937987369144853759395474543522635351024957804428274830488673723348524196300693381472378849903695770775266428614877416523426738938781295015136035422787342975432844527461772601209146341492520045654239635766833642036205661858506994537943188408596189016998196290003226881300435158120361351424558196605085492243347349273715023234245883577484147990827845672623126045178553866644880359785102090125506331824739937109857226642342978237001312681512631225264998272285356825751140014812181031952636287192709820561578787967012839096720497088547448830467893949008552919505105825897059825078370883872100206055548124590104207802638751044711921066532292925226601737411916005940012443210997706138938899120192709302736374424694342463335564486178838300883865168467369210361044703329045320969478667919714257358008256647447624745896634033358981416657379600363486035023393185661903166013737465039553558201131525832659524553837638131268750693906754362888439494092682343142022274056535883331301343567095452855580639309890387272593336751028998459878752800933273275208437279321071741626827231769710796581769840020976574871331441630615395882378757808202119490860396498130032780399595591474639080235924339749154131385820671137121056645416825692511913049363638115581498222854675879936509769957820630844411858829421370770138357620241046115693097838871491541545431426728929774685190105601384300753152277401478203274003632847065055382246879123287219968790224163154409797723650019747282937477204561077176716805331350797905451412184777120507650227723513494364710911403818205551032115969542632624346006218079830419223558799901214355506756619123488025049284038420925920584604690223891435863161018364058567321504972323622701297523755788432738972967841077774372899687633719970492482198735709834082244242320362563753997522066883351477976211165320431987642213825106821768123960428917779957533448453540708442941167386117430730575898963995276761814515902884383603791187224902382758854824068130541765306668245273001407214776514042671595950984248522479754043775595189085692042703916532026522698278126911942778854388125574704735228452822090790180582442665554415537409277058375827461962590658738621827201435352909353631871481592113995037326837319194728372783765830293430515371652937998959495043069358715002462329545870901764776071018116234946027613969496336118770381003705301590723928065258130320344259814023392412649832418245782558249705916643994546131360096912174633216363411052873795306360394042492875971438145923860463675493771692858560120912713524387282214937315545756907988774189185385909950082340233679849223611709386212550841117572414544652761194041047762138113614995404360963825517177899349298397379110103152335712287086742491124621184807488049284938939110175893700754533094695846127419843099061139447738099392942718930739701592527561800150584119294715168237768218255699931190768283242706588394980413870686904464027737462181508261741410285370091757875513233836074092205579058248390008530586814717891114900192531958732294843990004868890730882889880258924481850735534562356476095725950907719691194603106377396344586649399897636880494859564594489125865237976149380657371323182059681068726837322386767064575647037714555720593933253526192835020554010954587443862073208686919000455311528592976245607598332700853180739593437649039008639768883354594520161573157570851045947860424096341724579931908881490306491345672029774052681409014572116209762124374267064736586904447756588939509254430014998404752747534675215073388870283262903887991176982271502026514012701526694373790125550158073860570364069627374666770559056808064412263337658063924324904246691731125806288741301997960757060625409774138476113599488332511286001897516468383069497044493716214045368897358458941101628375066461830366599237589698441815893432169989868643975527811362312587805060000870867061792124250435807000224773234779319310329965653083791042042055789470597185919682320978855551771195244910365178487436165779155406159751509848643301432273051667964036233978924611944732618329834019934767486844743720752614209500072245092168314310251169542011403748753198622925584823784682579608876832374911958595285454911060282596022988917415751405775662050534925412452174392728719244895271419770514297188676206655308968126673196718205895967353191670271824968618153623330097909923204982537066625635980773727581572683131342453239027846067690231980861797093301899947443791140922109661112086957652181651093351514593898687237950245753161725357397016667428479212284863415780163185867014013503472942780255545690612207441214065909658634394168868408529610755394976820805105345232718075497996710496941204118104684762166562153501725210906630389064703294342538042269379443700481733540993800270813738319551870985012016752425121634335176676813646144628029658856172134447157983097018321540658229287108105318417835534899877041208190566533024620768190069600324795981110178295915621546466878877016103562007700029798057170495443905334087789833855342236750729335833590044404465330348369405254418095907145921249364686426152189020942021307263914563594533207374666766001465026183207288814919970975917617751525666466371308826045878589396743426751819463572750621812303600314166025234641316475420577916763556791625109432676074137607538873089632214262194173064131714768424181658820866040971260559004968482948237620750107569671176885824517932540038733488128939687448586948195084312510731163410911860893162769513312865741793358822702385935751774001306545252435578311184290875628076890650970055950062781292924713867058462625708580813070288218142183178976006824880828506148307651136873613228160216010778905453954733958204242310184793431282691189880053395842693958704168566931740149635310046638732364023403193367600468794083126563986229038250517491106021208753404741010076416862319016044905343072530597783655339948156303430340366995265416622484124199586963110152646530717092878494257577298056423738104461818621371454781824404080762157774187330497320548725133040527714861822196843536671218501554772829880164037501448679917561258585515444989853540090256549774733976010378597766585959540681617023857786704090098644094989740966028434934134250899052947075962922266542760412433065764476071117586097644210803541350867248575864805210756463969649132672087069470509299365946763354474913224480188056609462986045022019010430781794815540291021581995921138496032686258624436866949078739993195199747312017893396073549701060991724423975205864299786359523855713188829910558966877075679423797706458383371784001916465296408019334629881340923596166764353907631149599586610239074591882253352234549350764207921294277054498341957421630425587912675655729238057532640148622192696209816686199950361722445833139287827320801445632968169112972673369951945360186271221203663766605053663497817104096197026080101213946062789726705370658458716648442444106576034001676293642206635523873349871303780736673819952295829528716028346846343730036815587346248223343884509005424707081617936993024094010325169202639787542034604914607344665301173105800423907230524136150242475848953522851537159366644096723801190493284686551440899283601750323511676748338800713767536194828456280014909588522829725641912477825271796701148370208490835086545509354040181647636002822879427686535369294730360090421448479404898075963949608417560626092851484267409907840848287358011950101055672135662213218264822231561725066142866215581518118139027182550490061665771469975352686836721924012935583790247594593866309290048781531751176690405796142432348297530475667922732982638238059158437097151853811234310445889814808846721327559049774020404564484004744188890928873467504333064047827942989947181978835456984918875979215311506417260333763959839622720548616750939812028915894394478939050047313863323340175452804916247650982133014188904371887855454304823395723389098394638888906554684775890359824334932238930792567641197486903285761901820404535620409308007203147489517403350937788521766410559612740537399948045572404721872615550699885092753842675573558726447959020939663078761253773492261163499909527709422099814338666093662922327333624810840854140196513190918651822403830464685981223535506685214192758855712791883331099882526349471389966560327829326853315510784584921304044975689284659826226459129441896085207896026580648128251542386811516825418737832823577683671461009741082111299673391926227106761278315087990794978158168984877817200297546026689423588243511540197733773099090095379234008290926910957074675371908234469759712044193370669030128053037978212178786511500005102573480568279483828059073517669808819490624645841540026046180613842373664476655739230564253513415696674158160124528753182103351906660722116265713433894507496594952950063973314707199032887806867895603402383367129489327740732598222517148509494612429626361701857694567135510967911183879114126328781269626971173780313199248870762541685072849216851440181451449352210604277702135105771338906574399767373690564075636217326859235616637713474673566554655806568750601631187979245710461319971506234080625365580522257961182267712842142316715896807161216842945750285884610895675001147584442971895996687621619814657633502348985776045955550726785719032116806731984015890724620527134897674535890611586460804633706464519341048750083542634228679177372367964333414749828821108020538357045369809774769799731261045372781515719085121781403832262566050666181384773315711082203458827633237143259641253177800402257347290388500058237108654371651908088469287478787481541773453086712381411452714586627362329734901910555314267652461930970901916138469329255925577902779483425567239319538534300555216731960748481615545352919144642743275581425796119337024222811841183361222546455551115048989482451752675503190409280694623108992014472048003038619022019329549676872672328944422683030082883752799395567947453633907614252913905651065546282337673748533764404274714325236486554061685932193660478786325502173409270745076305622325593826562009800651647999986814944681719040673148398614746971723375268815973862036224424284330148740156241095063134461355958970187541099615923449217125087288411357057469745934964568220739217447211718823617006443309806933085726068428711819738637807421271272879090085602347111123668241422283804928665538498020825606614793419454380496823850994022121846766747698615097891735069011867223880007333549583793473919455177467301705064591723445640712050470886733990545136470725826965736699153660212746708108011397930275076377563968053866267035858365048446851842693128233952701115135710426559620939574601063412921825092154420029864358662896662504543121418106662323214336089641466383808490744106689626227080687274816808373019903082668562074839467434745535995617420256612121647099111215920752200059623425818716944255438370908125555326183523399824562774224996632482212829039828566861095012415400159375771887111231821232233231348970914404193714177163396490071862759852770225510080364272156766956214251688659010829509157722659372363139696784370311419618323985296182294032961359237941988910204016565970076776403217872778498923051360163420633990578039414868113698577550526674250432505192224674081810053757384776716198334037431250064367796097732580088321638634672500937015013431518549269644713812494895574643431900188723657863297713279841067769681022834283789567656645143154152907873373148402456237028960096225397469559160659802617073737844389361392278654660658102804150382872193363698466682049905337794795203751743477804974375294252942183017627978893592407976172607635885633641621354133909368516330111738200901060807446357864897129920028991102805895526513798657239131459974835039123587630368148784253428961133442482169996283908231069534503123253799927526688079285242749248071919603481866169550688542015684145612988548231420893828735599038465928351877170473699358067292175381028695441667971331727292981648487273520510099660126062615512310180039240917100139988837652764489232814660318695000828896575128583141622583142677345359167329478901807087956604479078076657504975131801301786840232455623469752414296065242205818991753511728331603686601922652956762876514175461258238816263899258534721717723480198403381619016801337012083587634108193176644758165159245689734545548352374003094631609935787819078940155342836449691311363463834628096001151914723914394026215945029854505679278315761574421833071077963151604168563408880346240817671306905454009648921776874936106042094243743231081781373641059850516496730517802096893911079413744363039842417533432290663204076809039445161141666240338290611383278582238733789872038873874235506189342823696770389517798915567792310045356607037565097955253576620245241541950286997189269843858923450951983014114823379678098692702780358632778207300911211468634466279976816781215573991926812268472969039791747629193678333627545356496376532886937510490346561106562326443826839532028204485323722363564918132707585614593659985653463267780858243333805840118389370952691002770931405215052396069424887696377064956784900265639468452161860881453282720299994836178872954236286654776000100945976579361678926621036933213040522380977268416779721091678482637426255190221497205746221527639947309620341020137459155698328283015828936441766676243529480112350369851768814448926033038708807470020815844412408519827734391130305396756656058890582318718392626226806715163117385332308536872863618304899593916817015497178775016913069185156199241256098238877501419863166690424916050740120753896038676318680893969970287857509982682464856106686565949263374806791488670814334111588481798707827248535063054233334278473451211126233638388142972002571798833229369225281018986631037324585431756261415732438252558566983978044909630823474840838156974376367432635994602935837124965652812028633603124175192513661307675590455422334317830920140045399368802098691569418897210119926891012557778325582835992122833861037573460353504337721235626545746796625761074577220162036504210529453951007616624021429954866997776028054469049843867217228917799801727506518058102685692997549692831136707570449585798724088871033961859831275687234929368688332122600426752299208687435185386031372583387157934958362289125029013503349731353229057471992995500108516334581112462214667789902502760127850136777855287207273317029054476367077944153921873197123859695236302848163312120825395121511965402547492790585867981825646404103373525291837559528002617871382974419316454892278511825760419028969788462911596423071017742297014962119372697070703657195983855369923185592770776533420598835966796679636174514737603131973441262048228213135333225376375636094001405317497140543245141638308879501692360979048769971498634713523343255612691161809630322928053100809055829770708637638989427409187772658660816403054903868216589896821124020001861512622670664074685194571919980537677411316156469137743104813325923346637307963035486148703352507136927253410977467689664180740302124368417559355375332527624787133009005929938758645315867463283183002805139838770202198015193322260931190034748060904618560219056451388843224430885664993597213261192483780817938251733206375368114104709298539085762746696167806462329179708417251210604292837728428932446609157630863502568704893238905409208381311699932816717300910293562156470453922226794498540703438181769856634199705651267454387736439015502435125304742153745677956946887121209556534624897203968789200291508626541656110192885555847462670197892910729085260091791383485149531024139112276323845708415152178824969510570119565312100750824630559238225471711937561645490550368274974153645276086126261367393086169199096855525903832518655771159845111155619732742411420564052586618983087755627866802432068478169184282616746442907888698415525323154118344298887282731355931937299566077830251354997549482557675684991104091586637214637736477341832977410033679455334905229745307866520899371726234328822834215929439202387786431343994597112181702513536740662609080902860630780840043173946314011330305804601007528529183270170207289915357192135038823590712450641930029459255710147810731836989061647500944630600273782364954339424890007576841615773222877573613109232998000218143985055428457613385420382259291851018196933447944391208336060242347976409620324743171912644697827629994645596020855981015688207963492136543872758307463984614949678050146741072454697939781108194608798741000212543149483760664418583311903517449417542982938568084203354865227820576291234671481010438620635626175708332794780102512867574640865679882644844167364414160044230707111851320030151772953679576610283612260897936213599826546383775688606132933788985276066913800584602966262026802369847308686853224184441873139910821600496303877538775022179208943730050311224493152811561248107364832482719812316040252258904369476541082341467825182701009138705600191210798120368201559324686657334006988983458633877679993351284380045540983733399656666538515192877299162882537526110591848941872374536080802255367593493146327917329993172242095210116088031672978444273861168539372097521987746317803970002988325685397397295715451866064210555579081103900914217341698813807063337538445769574170950590926844276216792120687982666334814304186345572787247179317927471268958255802878407084305925496814410944001023593840308590150240147294455978700492171544299890866117619492210308156856794414807858187556844330012918896812048784683420565840344141322141201841378020730905358637928959569303743352194768402417572661013623669344201919784645605936440829816558075878666565930718265585301069518617057889912265386860925115695425906458000418606420825455019084163299125907934566395647240104425052579138666601894961048234777917316924491373114716060928017009424951635591473505830421704877376739818613696907379982861976062892692627255842761993041441489727909291499613378920602813966503110541233218760168959548221040841581692514008610322671533214094690144575260755371137025035990844648187936555174799391003633132791395094966974814067411647988535833947810197945227408679815869092999130995763215551958458227505818906730229970494953472020666720324678044194195886573599196737503872456292428982467546289049210276325399509706139420284678181529235589161596535245769057757966417631141152451411740805076177644769032650041244149991889489651755183999534257565661315898014727854527222902343221944094981112237687753152408885204954046584325794632133637958889607143799173461297408567726499758920511034290620200958525958439792688970888887447370719626669522924367073261815984364832253201433960031621888688239284382845894179998898464064807062076980812084659492691428362517360753999733984949878728471259682955586416928520787572368783263671720020838261398383174008208515722084570871535646836429134091872981013158086872788937954416289796620764290036552472490449130827118366643488761262338800972846884204407573479068619238310771833299765383944621812216082733469437922245651862196012428610219052405551072464952519896945740959142673580176752713895823853734087324259704839242926027174671042955942285405284387384979989434898571260752511804240511435278769459892803782000977817181022543216945396313306132437665251296527812288209926681441137342411971413028935785797053954564443316685287661393121268238231750850216312306629166523611261728372946337954867643695609659611545599980960216024497190259584940729950448559273187879888550762937168015674453793980890420062644960946917298309638161387911047128953402832063317644258191956002799887063691475758879013541501245654310534706779744523610921926502061864366649099665463318007309291103423571981431327669289100263740321639768726939346322416495458493905283177397251241736497782586495398482473748355746137010012010326166181891646313968416622849771548260785855126725208494216686627799923717786140976741593668469088512855224071752653928639840068674979291865314691783673618966821763858792373457169178678550422593521040341224009913032807085493011055601181693804190284092755718596259359586506371771398285501812469192870358380150643818097436154120758067740757018917198107414403382223704280219060022943799649575899434634234031181180480413763264693527278149709253190641238347666999174503097902994616234370310654656707404709033012847263358011212480810157808269342178398041695479247480390327648519806782285665570971924765498053828451879170689534020764058061491728641403708625397149739273727637004740529589319509903263061416584042307015234119169626116501792305957858952630075507246842889654371568440952922923765468894720707809465893275389891908756079335800275902873509363408995307081659340096619068601362273747983510910884192832989507494007461461292996100083040702568120190985372574054499768501821450757119342007542264405685803451341945210599673690532356075272244365311010508028095537554833306563301825684485605793779206574189834395198643513938472533085885556716870144908685562936548720554654921320604704696030732508332049204481245979146116216566318858284307859637963524702367521238852484203526230860186183201922384486336899618313143472757262420937394163055633531695250313105745274653104983533413350053897095524491558143881082995049357850946947308700050815863610314703894526527866656309455290034344653271536057374636251723365009387844974323898421688556014592214959405326234895636916756227817222027556744977508629325456023240137041196630530802482588858578493011450881353501860756824205678962031942826986124026124408745707156435240283657988234428809275492919655604972888522541333151303312988107397156827102864745842625308491315723492756023030526720086346145321963054452271615151724712654158551772842336176104857401497809388656132347433866938916548933294463307683324480292344283428288043354596346540340388547720564120556002605911591856595991182899794871342641636280289916713123741454840009166925888333798136228213910833890682983408735726905101909532585310232088625351648058275940028779297677523268623382176906686897229153121253179667230832157359192729043989471746118954830062651697398956103240806063211779391013047914717562796525162737825719587874871186979962525895986274634608066399825904802799770289218215560497851162426394127982598650335164968890302845272556019974411457534175153458917393782465976236839222411309496934719870257995926426782334914086160426368802434870532429213533724375629508463704476815516314968657348415715603757896532569847413224835970960252762341058421763232726313882474615811995716182361022450505133377212007283158740901391584762319216353680984288681472844363539905165587107897503612742961317523118205565060022875931170727511760965184871415934365723092756991280585504657069019327051884923762268374295530471003175789691218473844470644528969007562437617237711526525965323578867570777905042726570373451228120035709380891828326120325685835615131895070071047750933922802644262963783638306421121093782788867724762091791682519583562174945237732397677489308808494197829688872179145617847744142084409303388047081715537716902246817178160824909362161317392958190659498919835821156462427920097140108160873933975671327884138525176573063780335193393392448021275076653607577065789704206906740791676956024854818725359529732929420787364051656350811272629194093995984197098550432447914398103714173967865154440115643731093182720990173897833492130119266608065005517636342840053126576915466452547634513768280092423748077280551893771710928868372015980862712880056416801912159519186548880230799750456053243790925494768304480282103008334455379792068281829161272938945405357957582526004255493859142912937921972595282625520643424735028822172349121205348339485711900213411706535972974173128979747961869321920051428991109630698594495969807472126162624897749890417172959307331956963281596338651230518064450752938583839783498811074073075845719032826358102278257467981099905239495147293339735003379213041589457050226526833724805975843666666658019426595839043582363731553442581267489124636915683552539441576163588702743571068101915060170393162722330291963585774380760260022114888535025384785977246257870368213998622188239773629055359745389536931127806911458719342818408666083919083566794018025272127745569606494804920176039585389335055655868575358140238474809260685509879403759885208581935172258968192803722818189935552496153825269017017356175828436137802396557454419769133706927722244879230803508675787057691378513102452739753102357477255451220953915158294991987387727212078227205628785017869519523484343197391073940334165707774710450330043331930806538098100427501241497580659254664835335679866145516445282915392929161181057825912914358749605276107174576860986465911118122474134718783186823477404158914905530326119363314704114034183108819029217828740796187848963889789925306335938902860021730830140493526088216481756533175158464015415603347494273293640821104018036873239505599801167981556977352710380906463199133197574737265470549823079247642868979997877490022298577841285396286974341913859504436308364751852481425409855761079839571564029099912746611663347973736915198177177537864575290202184813335172894571212148943146391567060446139874048987422637156277480039991716547181831501599159192672035774529257410933462075745411757359947953282551709466843123953260579541577536248833534444197559769463057498551264819200906789811384336467327353469600992307796271282918072182742659212127605457619084566897165423040284900786592592164410191931095677595585458040765112668832770810478973419135770337363654824231823736377466602607186770258315692378514298859655004107385009863292218262747657358635657504638391881017326964599690493114066800051277039207848184215438126381448358171240849734913526113929206621649107933063561026446049564110647918868447728943675605922928105601142874832388827239800614139165856742723818496499162746034051970405206948793984728326502987471627955314681465112256742162971741011995003549163575200970312253800080809546166075480855427873230288969681625920107813485656119864097244143055538949275008445924644021968404218635882609144310675705519281677436934015337532086353880400057076738622778336688565526546857981058831507604367016558538694068384396975533316701783933398205211127189417744340889663101507287389242042465791038883178216181752167539101403678465883714663421459385321074467086149362224692012440934717538747796396944962704627297682340478993072035175587883202201047789453669279239234928915553113225301909698932904797792597767250628081283744453097687780280756601219136543223771168070573544716985607884462977401272322946705518343310787055175693518442143497184807458432747552298768895000067563501606019992095632226442617556401623174827919143261004889315452097639822909574896797745828094268288176726280782825645511100587873818944873280996887865688256320794680285582771761449857593323738870548715536739619048835746300308609051574060143598139216934715100450910809052508426957002475993895231032355255272161647256848141100422867785382427065582420439060227652137191235518897622371012860950109953013425627233367038327235650554560325254718755115300325421778075172102714402018200521057840879744401106328273412069148028524721517110384178503843346371036750594980254282383955180069309203996329595996065505806340240893879259350907889130710105492284558342128548495637152642338713806696072712297792930217509517295617319012110764133471137527554552327930559287660657593209477664038343736528369279130619918078518020547800432556630493609053079277629901394554957238619321644316754797410381087140106786489418724731786744239984258168065971167921678997557174011435974812309806197885254719331346862146130798833083411248301543966445783605167323155726470053790545087819336745948653404267230975120779910110252387506991483579520546236395604710580998612064576648496383460347742861281461901362000375057459443095902520373991721122131834731331597419158359261538920332224888107420467652879290259469048677302264725700924328779963940264698630269335068452966762457437209530821711151241328434058213729698187257446388582919775516153943685058433582270586187585052971428467626648493794224327281319087198335334717733782902011219927379954581087487844899007327205434821386357409878720435352128062915721875687579744147056734621536523778922790128737504546797622120723022245431660757792186553413402791304158963632619456690476214570454555650931959705430068043436934950677022032919737682558990883096106409446168069483493698866851285721958001061334515088003484697231962571047541674230673824945379985788289743070462879942374162016843081153562373063424535193485650906952852203734460336055936033829986208810007095026268348301995256562949202516563861520565366051178389558643633690493397309994327189494088403238899671065455071350511023192408763331263933325791910925303552236170037260600251246615733181439759218259733148899243224023907597992314550941979706883744719530636993742077194340580286708765180371593943343743654238633458249752954710585803679621619233625476755359241441634103110816635821569491405185897131951066831267676542918021088174835626613985066292066355035664174795008640469090383795240005812365232506104083102555473852378754326053851692551376545321368996732340274584981575447206823707906116534826852860738650160771488216126733665592686528621166423931223690220477149696227741037908111924770076160080596141119170199593140523039733215165072841248397033346400277798853489100299577748414788502855143248735605792145535686048837697762738298638211552496321112917520178013086946694448438836629654978629707025061742090459170276004073617994153267888040389875682264845355316217223410491596867621579079563860081566397220552569032122629677780790274827673280987110732052489831343896049275993706800294705855171386543855198371368721396340892069727948278797415221944878709001095702628285397698379069866521923134987424196210766830404656476394119794413094849609312306824447066094429517410263581447056937417701284266369340323971909630447926085720694721386271055258294362206786855812367011089636182103506846618657232957241349299225364178700053033644092179940415883717699345964466384714195233352353718013753638426399293505403157754617861524125283094098461265791320460477342596044248116987071044426742463340751249938266644537895613167893473520344488668460357857929517102318507525333035369881801184345784064466061208530629917768373600700231718410346098396635399430231949202856051747418344442917700514579729348456010201416348685651049381361686502081233443144359206963036256755159606730429889531336759204137938255320412615450425850198003903260621210115386592764893502693546838268119132202738827848788491886715820233390628856846715643282469604093499712383267443910473563960172682168464664414624582343553006345596329793619560883037639864206626797674905820079239388338650135393833386640650084907913127030695464677524769361226442313435688988846890709364501012708472508025435551922972504822926776799076946326847504351516572782704813378752122404742849593054435491133796522612015232077809543363801125079695259459251621454681154345091569188511853707398075519681071543675416486874977250024986281232109882791026917019218371503117900960452854293594201397996530314698412208792178275401463191709331328369960483432290577141113216391242795494697377503919758400481420560405597724422933386261585781665742637220080688556514492121565563210948262055482554907901468886359504727704569032934578383195293977905381873231967511796393794824594785964698544629692995789560305345087883370612424302486941671306472967771547716865878051819939214585928562556771584796488629232059786282285165349080639174081957633166344445869538418099636858310355752597261900218754877498414337738454904078022380249308700296797457242437477883474559964487550597233558002947771790056227813071010070783640008171550079171274665310650412077753578480469117164049313000773155454215129593477545744842806589998641212082933580949141158664100714292581653356123364293546738093087325288121344837096022313906842133493652605085972553510608359182224022844651008544090236083783654346483691320505652879746386694718954621352522336207834529378362513858558032886240698746115286041698803690181133110476806268209783871060672606999123734705175964809742561613816150084119669866736156151525434965569106959836763817846317750693830605595821570189916031463203752754105771973506443070334928300198438710644430730456355402227483519524698495026678335408370922667127136474296239800097599476292346750666863184387333444194292955294099175914607230933086613232486776485159794706766831670295812265401139288213221491709463933423315505225851538258273282006081011398037949672823896609958106170471515813408765480200625700218117184436182466690173472492633059086541890335316397048356612619486251522144382884099611242834462824615876732463785026018080653035982220366485364720033495830557412252404556603169633612046733210654975207534700594987502472427443579590681529277176486352914728572685290957231205786257504578051745069715319096984492189668625673899532877242669076619286382386768556505852217715075884510924119842082953591441960206955182043297859418646258863566656510923460523326075456773509995663124135653147102638066745775562765374566623278593453644215375635557425137037874083944280895781466689463764196635370086148210842821955008216814989505586564784704924429912225877744274972023228090233491549055275352305068569749788416899054206080207781824962209245194221139735699201830984782611483911456765930730099295849496664603025475290113138144682320667125145309426238823219519915885096697540149142240538861267579615130521634069999241827005208591035436492138582891576435283142546987136804527730047516593650312536735784807478824381710592823172597395016994628847704204645350931557384207744373893662577223156322626886511290714875813114110227963206641833400313974022175459209322620044907328598424942260731231609582194856709157623977333251985064192667315604339509523226229700739543448110104328735235018013466356555268852408495060550671205720009622854615030407772710009173225948379537354187874333916150792764542672583309122886302757277094290643825869849648600139839597585069758091561017749300422124400625043016318234301692303723391275523493577643773856355283935987594995311759490461212217670575269992678800847894510046061990133628210636944364501289955913431164629137530556559178409069382351087763078479305909159440944488154974671344444996095389475482687706561427885839310034888781041294676556877044581539881712188790421237207616687794732853109958319509382140109724882963477458088767828292627125193755748504779628040803486016969998126460343336050755313027016549381715475360435287862484085656754306105704957754482036108209953805234369741328334996700649935750652430204270885673596010389210382804774560652815890461358489159408678234550214612832126473969852177961834440109959249525835479384247335057480261766866930369505033184246960016015251252816819803443663662576585433272921550348198534149268072232926642482247398922766035277387901265572162552046053244904251187425423688199054230381051193575526205915308904154721214345693018333454237780527462654487242228825014403195395678809065190316288931529919157097108742669515003705206935682082832449765816925382493923810005734442162070594698015285855996329713538704913921155870207302307921469458743312636756295443659023305151706402535023261441567373718215765723992802624651287028821698964614266795780452077814780764186262035127253270016544209176672222579236988147359372961525438290132725429614445627859066674251014231557356376079160844146355826105848377905884509751547280412497501378803758865015921764348335812028786400787141543395620486814406950166728874515942027121329659418479399885578451911880756988665632983028793885642631979088429341139685672473515736834938392553369880674154102452289581336398569212259111737486188924332382519125063203607724396797026647287623627056204563977002228442832015513258649787657257475292389043822523745288623527853559866919922111711333101436901894642907732019025717039230249493790784913247533745314825458419340768418261612288852744970469069120334550448320711647126557766655720291077650454512430711035140048776526428458516200148423115324032367468272210549108911992749569236217472858528538673303886027440527559999351823296639409289331033312078382105370011728219262043023189293671094662421542575549548995063480576969609003085589915623847733517288859149215650921956762090912316214838594430393526231088061998956494089414448248678563229051284317649091652694900343229066522004173121852069160475157809283434809204751475141948191139915637558351793042636879587546462903874884507888094895130576121017440702580055705227274945926562846923368848470532199287995254044692236684104496671295909513306066771899359058438985328396344390147474676844012658283456517365355136691102637240091331086399010630189793758779910272880025414197243160285672384464855898443328418554113394192636744120539118320265564755194566515367297202814273992720350596399688787816580405844358650317772501428476041009089084182441475211562035452571503100359507854161300869684697274514628090858954936049320078516035765710033450884127626446950430348702597799789746759260165169551630833315277635381324880480177734149925748554941603051058151363133968237932197752729779142871846777370029947086848925417747276022046109856736295788194098399202709648250846776807195324157442252428425111069950572224533970014772325021494863088296658111844666589516684807585988036742922277905862674802029353368890520383459373272388248302259816980663210689563421788241887061641674008789726200412254919344886545750812606254150600792315734794071172907753269431291348026800953447917187485540769561822511157139006703026295557052799836168637643687051465337493998710569904882667416928966777343752619539391453115130168068968963408139523441687173138956972844909651262330579113164951535181503032745316384480427748424149325090568108482838987775432276485438336210336700815795753072047324699756008958502937730102600060392008749542833498370626328850723877645125024036022181961565950089131533448182643814670250024920096415586316170457174146907970579069535265613778717147215586842294115400621531067604104363555870310359563837034139905071804708945027679462800973233086652908100057569882489392224326420345989965379621460252508018136786336242771617477735788740014746533131191590165161102869460165696780115204260039933414513166290495151849322357365504953663562203402005363091903749378221223967424060477148245263416286038974891601045599150869231298289839145883194576131875454637759488686484507216147206241503081583471930911316037107183987375269178539643174766690904310755987653000003674146083247310073824795129139610489053883661750817040575718158086409045640264534027873274975483298016360451994936353116386305227463085751909856345339396959657452906441673286211089015951341121649632845767417891603553386080007015650975831532869856477227025089410837469512197462246933783512735966625435992365312371052562114688861332994856172341818823640383448769195096343454346642196040336829845534184736370691204713557702114521238807579972776731712249637985918230741251357751473134464270787341716454096589835029066222500367793160410986630011102681828997858269622110533543953117413226965010368590452108068252834830163978205846754970386225402265222914212767284807961087000503721763971257143888999495074311897894219184835399527956301296336976314928924850130676213942599670967551168376316174945525183295724035359828441241047706800086964208808549471055641043291995143589949985931114563097036127277198209471238781491800115838324298410664616284871434660093067978716414701255286823361979569686210454874065763424528759445143239440304665762911381277684739462099780298349156520102645638814195907841496998560255740014759193964804460382183226339675997561203542169385331151661133858891866144234986348879457596808533223050035058183597059165641521209734223370254602520289128818985840400796665081213335282570275016509490055750572529726235983215470023966227053957737797948604436235527578555143639271784611561263565152784989541323040812321284070850897153371193982735152599249080483436408677765632388725279254493776099358905288241201455500714495040694727886640139370531426125062256611918042759060054029555918268262815413510602739347548098869212896023870801500321851474453188678491140162619383940803697248184526565285932609057506241304140934747785041302202503425476917571806086979942248993249563418148473301588334773404320325540902055491711407577225135573117390044364275004305988627669268619571818441767144936478875366992198257073314431384949340804559586054571706764358152450861598714991733698310606157022557010547296937372755138204010274886154865433315778347386084320459747350501744783196364802798316897856895265894550974927221609860103748887947368020403728744701762739971717447215680215304023900890971004084722471465770867227152321301058212724791880137764840445269797405454786091795555391382597722268253306859891021597390126982232486550250650988160270414396551169832368175359051596986781657181461472272631211960789194736675021805096237871873784215637680766471942091849946638624418281581749168713187951062951537447543286115553909222229489623660717198495035187794822793067718539263615247003145064756388990616387142539762787340542177841196237936624830544686920077597423696721076742934120154686702549488838123957605593450943627677995900041508849213014756056428610207436885602013951446082432031576653576308839229674473913062661215481144262568958481297023486331724361885570799767072295519070453159682878468810847075500011226460950952291666953420627920953947009501525565107034417374137739969978283498772682742692087035847986907128664544595132301606349667984929177265058560685096652653371173412729219897250390584668402609155542314862616091936015024680312199244828190091768425588801418141808894209638262521461453662707756610514762379769394302497845459952577340744661974709569965087514225426526481491117160086566693441275952720583126435365709683007352106292380333623307982354997227423731695300649455730069750303065580327354722599855323250065649760155507679907711787008972395074004817601799913422526412611061224512084831135292445586431679380455438305234174454843965765139568642389138624582752560598305795463697621786967452485835456802595262211438496235138499327251499053216906691352825490935793675613433606457355736828556125557422692854141344092976414510175089743034606918804053606855313227225852961394448202584095922543923960375249389424933717258785340799927805747161339328066147048231216525631340521624343866517023431816453060541515873803112320525892732640664093243131850677136961276584326177331752194387651814317838460593103512929678679920944860447113468686123431630967410230133912001171938971758797206797176216339683013290543033453592149211547161993866961371543851422853199570369665140886933380473454499917378763686654198851266467157675718570101791472898671886876329822599251539816067284311946341854468109742186873539138664319773338857383589013910466706782084885222293179128595504384351546976328409785294961651006505405376667872674261137700713903670005303351600173350140833970451671973118169625862399692336838682545287362630199196025676720733092641004647705550694161137457001900313111831898616277756285925361142268974343523517784770757267123275827321151837354662445152425030708072499737654939389107974996180976827989078556034876045974941355920118577911757660291771301765565346391910699124349186096486327119335591583761179682763000322815854283636161819823497759110574069535505609589792040518212245582480019794548221116537052235324540306579865720361408993116794954772947065641077310500834561579506438295649117044629176622927348357379435607397807038000898471505693420973178797703433925393491567841974906834359252886137516829007186746910974482317904487254901911706121636438898982273639785671580178748383195529827371581547717687842071183386981300405463978749161503603346648192476113765880172289489689582905500420002213396179348912621077534438367303825055038944130587644429781146148528749200701921434235748332209879828006620839508430542594956305997066137719278486562179370717071628532564486031615386940515841077333778893595441211553265554473511572386644698871311359294343062385651249232735389676344162729742802945210188799352072958070388052286168339632225654099653262800713407978491497632961759995867468846226499443797032134599592205962263431146485650525525125191778281430871246242683070823156843244407896989315470939441280634885492478792345110743859772951685615483589611387136668144619642540524158771624471177415896698065381768511852318965718260278568040460592765431465915790793543600097882353119435287261997583467741671940128484004652528494481696926941376654531066952335579698645070609522737422217119998360482506580254990660736496673663234183842322299465571879521422758942298602533133043498084617417911361529315302196496904052622901646628016687656092082661287864775808046176413518859029122167679912341646988122382266124626299779678745903219425897412769567979429342829637605010661125468468206411553559236127891502943665229087991634474859966612469018987891251292834550060772673570263280196263478634735939304557170400741033940282700275481863094521000846900949710506163361944740994251415251611363708450344045543779887336030185623903797858866584512522533345560161074065671699179181753677442605378368508141255023000532337190067391554039090673010643779630363925962095876754690347687328712647768867417704918124432138279344661355404343960485358552584086436918215860456209552652854178397704016550020211758704202815873274277355295299664884599935106257863451463117347164099793682673371196926184961177659865817819128221690964755811391636766730769696804600018252683219179260180479205911474061590266445709217096013704911063493742526419114623717828380978248288997770907687139723914589194756340428988606987685659400340255676443435418239762169174632018549679798864202468620423419267264002616776329017881086770046306470398811564481442030434988961846806693578877684017479278817461030114120558110483774370389267917089829991998764726553665829782887308724860770004867439739424157468818624634802392475075052710461038804282743107447161070293941342175806611303644764992873290872845610638407526108080245504793854719278140534665432831760149957136433719813529968387507917144063250978415805587866037427532684945229199629014547275991223162279404117286287601347914632037421304984320406365011053631241357810495082274742832396460729069579541550542562204341683000518641025595668234967797366618485685280810644396279039170471528795526965746290473577418323907626277288849106965324869680126844731836299522262211342431987961039738120976019132837825749533243625180592568436654563567072812784309775328901501793901990173451196258673203258581515060113828286773479762076345240077803382094013464831242660796503569390763315395990002768261505775234428427977959944508159814801327050253847616584652116785063765783315920183355654813262568375412043846917114932377248281700838981161980787732235385655080889321181094147425662677448748312450578674217911621483286269352256312919925941426351568300236619398629304681239143205901780424251316853379405197948453625376086254092378292354504527820322691168506575888763480371950566472181434285877249355317068261924422007105251468819489218568638785406141693980047994239465488706790052232653674422400848172877371944586159174866890424759298925243891026658319898227335429069684150150103093167452389317036566442704714126118011103281036544526226645698541772611929897495317185675829791016003301472443686171141889378945332428110329594352067956323471713754767485165011990878332401578479660618810475267948507286912227260990016611673008345678738909808822895579886823202455657432130657606920747167177765797037006293999054608004427222381028479954847072592994870406466859355280586833156027858375268515686097740719907446748407975800537886892864479978331256686590631640322689120291376137816237487395064511865943882948364296915259376728232074668988389164301995851850427152365859701291277378285011373197399324801491962387802178044596730700562779152829013751947303385573653992454450720625409691950303473876756071064220672973197435587012509771600559300405928843299665764266188214850611559572963239999674028065292560906460891877593609994955179649225740259926648753585961723679730909914222354983412337806740637250698505102691107856254893383924272172491580050832548053903277491424411811558557632550286723596575429681654345052713946031434241284651857848514822975923232584922487856631706789733959036682405669013760254013956929591585739084630171051121938656393752481200101984618920639099568718189146818583968861582258645997230840385996015682836530968032093169979409903969438092599757451279414277802142126032045497443046115950162249014780822793630016857902061770377346180423916950935670666424302523065821088469391958598019134773602048889235787478030833465628791781970675799996234843819357360744026092665035916235037040112445103171652711805203550855889956900087328526491721283884031298091552359244054207616829677705044805976458280816248410558210010516995884534440238701442768410551834915651747683130133528103466982613489771039131741407812653488805704850536836875184548332251388431132001736724257676508528728636187941269783520890351734293320826951595898629813949449134726723314537447058772720841979232828135135002692342192852534563262314569942490643734991087569341421122960731101909317204445759296722583256881306628547640805898224309384271351023656108119526446019993767730503167985547660478198004449445636234042116721504080272893570244651263602721488049797341442634946904239493777430783448942532077244410710074439241009249899547406442409657917312586718729821844325792259011296290878867319658675858439137454961624740968410362161936936897129837263586239346927724823290361754687656262589342338384111946439261304534182601108088673229678296058327017377892446659965697058123111480806418704892432517374835162428455122567015444480143342682397053881756865934834172417603798864202675764208927758197173989347933969516695255458768541306959021556285531888129451969675640355251775151518969787532619515875931279895484650960230758658006616334873538638401748801457239197494477330229812888401078334902050578200673147838466788239653386415602389278683084894920423059855543933458374966962772596738576935439984537840539423848992952988862192633965872545975414124798695610169666128488988706189324201717009707680623348681790961533431846549933377077359997104458674568053123256413855898140084860831925204096692746789302823102632610049028618393850079308419031756019889324915830359886461893717756168743589721674943487907036257347908880264294388046645306962827838183326227265496988501291366191555684532092549683278674764482581847233688180209071927980559529015828896338967917266420477799386243757228964885157765642261507857019585113744211957617982785861972630188517508151970382776008073173865797883719277105733056511957501772796581007782876264645354419469140100454928675920037878913434675273326320211187717568234484408735413723256102989183341738121729905369702572880007618112092282403731878957066804571513880386184970778011176087845901786477316342594430905558613332142301945927612089020110770365776170021282996121732807149473389466447986204718662789422429325954196207403756921297430303317440224687891847988360178566326904097440289322319492353359366715554865817806715313369089146609595528348369150373525360129851066759420981404111100999836616915771676745885281385789798270210561458239195882763179574633050404197375844176483220012482008374914230536698000310856453312158182989247643275537536101192859567658050385564689051677069540388296947425578124890816183380319964771998679905940122414820167385553281548928016614864371890625544110555617343499292247199432981731796396128525332646054911010596397585177618383442434088840771989174115170333112435545341415252801672829694559376359079207646490886648902475823020901438689119724844054696922489013775449052405589912759391710600953612132791779803728858255917032786685713541112872957970585852528096571564494964745356520986052963424610351606406376084066109418728151816193921369408955198144934748977729599817956667759110513947226219193471198757760938743214097964895202018076053399021507794188724752370527422971290020547505856699025523998200641579787742344992490477959978190519922608101596466469502174606534522954289206121591130902279065256579824870958312048382850361375712465661752778819122673604783008621848959081595421579334396994210530962396463313655761042842272743513350694360738055666176123812074057582281048792724977190616746931555434342928120556788614817707251190358852327443601508911798196963293886283297935303008177194070792277997167172336052950080372729974752307345263142464696779124941872515817715842122841053574163526275625770786328104810537501024833584414136456551922204992239876974144455316543002744996770572429216976972890365866329436017796822326299797015162203399574548355646013150966171448116133920556511745988195370181230859249582560697019384640211139802436041338832249190193139061448225425824522704008297518489344162533263276673400561787362211849551789588613486682010436879243200988785416031224515701563219510094038837039730041500608964014315910668379825650064360328016649521886233768297059471748940600127820897431792344683069468540341661377959822845515006783945240151024733188717088254022877753208475840959226725980619201567884381241956507200742527282874950031526587421410207594105238287912010432119684744774113215161949966711658719529815995554436531241943368186934968003156415638866688362158219754646113124860779140243752639973029502132745486981254750244431842528097322693066128282181946846910056320287211963449713507927100010159665623549348152969964834303744241986247829882588807072053450594548941220274982960792568250302451266556009492913911721284122746916262751403429025682652336907272946215837275381361451753185642668623342324002620948408248431304566137283385514998765761190032196969692902520682714831103663688336332794524299207639502252782775598254953407175994140792298335441686525172762978325991843897175589370409073028781058620460589268629676887549644641480661287302164751143397475658536380663860702459472320179477706688284857775309788939572092104352224142665736566556017553976139187807141727281700049155955640753880660940763174764380622830165126851971756546649543116289899015399356705879089204227116662541488540866798720294829058929456251125065999819502377982939612132447539936833580322964059014065399114877336180737359161200720455540932587003291736588450042121167430197451229396325187736412335088340948403856101813564139025825985878791092678623206205252673953289788908044358716938251540663743066557886017898281018245935105162770291595055450526036991805893474947231913102479236020839458471016024150534445516973068343696422597864205745877725958223130290190440748562183202242232910180910555529670202097951610242134081300221530793411146049118244128429466228658066710039006201639059895368859757962493266295271080649883295112002411987661395930247023054430574762124198952346143978901263585936021711300859654279312695601120000072786095018908585942286721846070642456002601524941057955322510818108608333026652972654681175240977248017211896202315112113132385151019506982639819030290963999832325269933025214483232848682202183850379617942204052631131429117894791252699866304402341774322552448692191983535624839544612588044502617618353740264122974724263991719568643526798248423157352662111954161454849361729778982079262398578190365786345216225165399442492849105864230467774029033693062458532634435507248109820963783471762368410191051175459308719048946770742193923075684505383699092186798623355382798895277301496428246805997140599069087869483097558674538504174122588228853089485710643964146216422712334155136264393679280405379452505143544190048165641786930654543257473109624361685952186524794463790650363686244120464427313724904846171384832541433639457185307408509120178729236308414655152969463560530011608971254358685418479797716075357750182295559818896379976624912238944325860001015064388558045522063569641632112271270198800767016528605648992128369681802794156258541693760831938525144279385596046197277168848692635220697093969346505421384464417086987641545210488490723344016088415752452532047310920846221888719040560174119257558614479034188289534802221229825458055747168606202499663803365200780599396944832629881402869138484340926206413206458072064996056856496348060067440472093065239074980053842459576932975985460413435251444875977713286288223998964870636319541922756496356181855798636076713058137930077059783800390713386157909762964266305513014435770281259830194792435777418939833932822342099559942801569559572937500727078861765236207013048545348453371933867854718763957343459714751432432860525823687693276935134146106109278178041026737118591751614050740466191630173837216836429868804147118027084060133839072170668843597921589751893674658470546239584817782004224052062439197028264382343091824905296860333035176123842972310583038601722630462891138683771982300505590980998784690881368383743966759040489933945690649216694722689806146812149274018619104716909707137115582858429790623677955403784771582693799919755862430968178113607187168682582139491259791382164261126357312731899644570133344124732537061172469915733501355385347986258473362350974890376197796815440932589109382049723364152794552714485384796324709697587245300137110639811880734974303135992413840025107354616669416872628560510711370545813050214238009066384428761369276677726859514799883034334473205453964419648839727085583400054466829508686095140484047024604385681424471756882441587216831577318470410119086370905562792752736980211932259549028471555485961585884568594126590279780271188967224051234745905905303241522932546585006397818429406342764203938753344633961706706627395425290552271302240565917656867010533796180049174213952563534889052460551217683907268371696463904504363271954663809743845849426879920291233970394055259485669530086327783853330983714761162486502441008059263819962350346658391703677348555821252820159869639685874312847888304893298893103330866444639137648585520221136890348305223714096208910982626759854042753734077119602480816887177002014938418994558345880138360999348421024359293771950734145318683283301248700557037138799407706493674888754642038657326180905148522612033427963131095018534273428008471819112803833541058799225388199535313485501174998139609170349084781625016613919088513103186521423257354010431992190238583725493717157670989227654486064124544939418974024646369753282597425584140455077177451576017208900302843769217211027982317605478654675262065863526115509060576212165445133915883817120584600429549587825436911829270803996069829400779051401273934984304889736543880302522950914754938601346204618579038688814861485088797769631647290371351750300154973777360661977864175636992780528285659154618432078817312297243175988231111678934932694837557562693329393636091421145141750066125172030973354773879147209870571249866021999020321221026852138673675467903969336146341148136772757726088827449050611246694328474665580329452125030848886903868175630376535336672118597482136966426064501571251776081475718241873871687297057743871826069507023491896060875427946313751805848064191150277197114239190425572412783483031826727563266095572421611929423130936133448470437900459811880709666968776926272546399198012420583405166036461143826306034922361558641412868876411821745438906755188658468198337313472072350834878841697059993027977008904905431168904283817825042520034827621064907337277653614477760968279924843540751645003831668974849713813013837718261533289720261715984907823805214307239619272249786278048674595512623158898864740665841650527553939341154882854367685925404060645112774814592263197291439928038674028379245625771779397437561871836482913128376010771707295889401155637584043283601651891236368666533598004776768696007533065447249096782170562556753754309781569001746092465717474521303247731395562584364932336946116012500903069084326565057005171851435455895892303323694139100044114868050107432883391716146752307096922755143006287892458621694219927673449255109014631622283968058288789192196260556153448761404016256935600037166928130676012728814336855787927272032830035789076939248603393706600228386821083534858391823361676049987234231374449671641016638044006825865197762305142804006534741727912857368312137446097315861838172004708421737774178966012365535486236417797498404661927906580097638655195223767292976237399510077656750568036356513984014745841409635673673357935701608048566407959363852983135338568490583998204538893419151292581396530463634663042172655521211236674140842738837292164254377872167642323886650259156297232323499513293074923609884322114263613775460826323781675266746997146086286563391430562312877537931444112378008613509381222102614683222475413670722223532466234892451790699416985973466754911451382568046251459003752749811893668064840105278912839664606024002564867835024134917055406770167593140569937780655662781885985126158269146023887646793976126610752459974886494778681695316932255559726640861775194566094014219690387764266795711895913344040766730165585298720560386674283019353875082772920156845376843643052756948814384019454938014923630602085211908380209703505112368311345937720798611291357312857606693220556307575121078424828487683272203652724326023724206099438638418797426339728706926811550635998024818281489738257701185627502564308353808785870436743453655158039250854780333142291648057384828106053823945064825341941892904916113362870147633989176431771614626682355047571582728231726912044408100172747933252096604384355230491402461067593775789876128547140427417599683872753075364081654469885298193875159092726045171139874408258392876054112818250762070404785090329978484470026134457840032127235088877925026363680257069937840669885583077613901979023786652125167651536282236082736316405805568535467022733426527797827343871132146783041389720531831874621124497655472599411942211919352637977032113970172349432731721979453240124702112435801163829010757449972377848272162202370406843653891186686988592803040354810263453630940468618340846688315970500669431129938915067376441832322582554617856427564030258212801623314666345426414804014674534192044016186079800195728360166623024894790699309300614902854477441927060668790690073369945255874094794745746310947916881680485907926221434498739142770166209182849462804582539550539311456655612288452620921690536460499132306312080421185770414854249784982472736332078336898075337739749725993770153307577025550863753549744488244202767049093462020137171001644159231243602309677022678520737211378373716128324312636646058669357459069513582351775486151304837940205127499988345755872298783266301966216405780064412919091072133648698870448813639370681667533422542529631282450323126497091857700139571471796537161339261109398497428337178639498209729674711351757319288180443450624769396007350865521915560822087961413282380433209475149273706085264083164609490619040391040973860664589464754881019533782908746264694303733910235248076093880633096778891273171191296852107463227139909639733807735128828596752973472268862460322738635710799894646401437259227208650807726910561759495930013641458861110545055788994697078082522127586817543505150761482575605942328588858076558318545169169554847923556999773755212547732844229143855039163729922064913172276443917628406836664307896254775925196690159112502682656410977281419134039748921834919682120905092126313817787866405063376415390867084463880413989269677576460984597325907183659724484486134128720174283336149571329328168956673626136331904387991667853518303393960171372235057762505362370282349699028794556763562622200938911106437651084358537686464253736485628789474144412524894895559374453161580399885516150566937861604543832845853139065725865991399061476821466947173141544023515511386512379829323576232533089176983230450734441095082921916833757287284891753937095816829477565528774638419231104574217558422889692255570838671363931863869614111478924020314922456622904504527148550526998821025382730184104999595197119559753758529505161734395841955078351769156228737448368573107969250837340018851359058013973036383914306061546189573766281443104880341958549512306122141887601624684177588938183821927736607879019431334262845496559853587496415294071614628809382733162682639079557756968230427401691240120741817789616503876574506194437899305527049814187131862621019588716662780982090802413611654059946221051740002960948972068642432247975252954519490437952815415951817345332470024985449190260067904455085230066948146099463682935662229230879575362938033244610115778080214019940286737417040030599822459895951142029717725134784434939274968042470289371683840820573086077538489073173460833155704594129110228078377768682601407389596957070894007493897460801989874749414506346884689745575658303262226545445537973020012509959244763312334446906128006008356556719243392460035366759798771717771998175829184455230296462122522076216907148826546499411519490738737828146873591377751880786694273796357618955457768745420165305949434820706558173957157003146614619377136380586496667860977509291398863357274970718948620131917637645957155541156314857632098410106099707223496629104602888344218224249523942070839315016484523099124924726700238602456508674166765022025842698571724201546783553429458361070858747713022440257299957895102764094868673034555786736004437457843288049649341968360792850812447441174916852432948165499002054707880275184266936650845858953596470709142094521851604316529158614981991153893855990789953398966909997126807482262020505757282270299888691657537883714298555203967653904008605475041842554306394234688931364090887095858819466182837361852930480598169222617305728690032484742169741125594908026330256796079286519027345621336363540732111543854533047676241853040978871591927029947230762191685214598000905681921028129453015585255028393488389580537280905629157781547762169229407932790852511755375612433314555994561044996203189366814666565427141371510289571061104682155634264927731558066211523699266769309588327876371419098817990124609628386969180327193041821092295109227630001228502529529730868853551518102498468322094524234443032983620927762008465410595954342990476432382975342847676492728950005464009323310234373454888102994155393747719867433796889000856899644693491197406700554485832443562820464587039287219701601070729568528755447656199027881160279657439419450629161459056433402532079370084490445924573573662674515432666070383570367374858843792804077245791236779675432826569384031554222821123454370712158946086045387693201733920336739505313356342212389754194316598922348621697920646935186342548599534792976328503534406152209858265898953091744253300810919184985298901610356326796392157431102985827217791085494158474296771488886396267786364071043610634222201715925238728317929213934722586765501173129610766480525926662117861308877141489937488620871419957979421031338986167321497306603000453131855439375487031875210564353071294923204381852920725422963022860931428689780431900347809282728686686958180242671615973107022612749295505853261888469101110052581446192026923966131174038246709919500518067980763457421345629083050841857670658234903041488671033823047889597062096138188203986442704306547751731876062224812167851100214897600540354847748614763475941112017720231929667081620183350005005052651696995313970000304053221159692614893208188327438530118484424539882115929606099187655844910920798428843255728334795497524369016912759732293162270006050713381032784656148337214757282371383288955226018635829033288931063226870637975564899089252838022303953046806491559994506030961941866310966900942141322943519445755420435487485394609511555023821837893299969552787169756504446382124031800795569889666009734179054828228835311904946890864447796272682356600522731908352717764136216723042428000149738075374366161033382270263550666176457239418108957085635630890455956228022113088830835500992765238399105435941299277738832939726752743776393237364428873717457631333927666482804391821495367113407747292104211865815212474874240792924952777560299298043577556652095640868257804157820771412158135215860260116752448959619601218812783735753319310783136277978561740421365490391788825265170865744402664635118107956837051024188482457099777681893527376297680186016303237529414531730781532607395398642484738950207575152638271238341618477227107562944438850135980486292293553581018610335393241237603329802869818628779658075407709573998840406040457455213667029611097334864032100060570946674657966539454784980791474884378231196920493590677655921165680989010439424413202133587251415637102389117885088662836456668491252784681427452807318723056102566991163767130640504466038714257725705771243974118168916664719294187390502798350168911758820652440864470992595549415985223167135885605235666413850445444188285049916289451632339298265616995071392754254737183560889337186292618752619836470269266497180028339931194699915123390977491304752513163995676795560694388695963411788684500830176014446544271047866048150304013656302724155491230918279093684217434371536942634098807136625252817182102127950232360167785841865877383683269273747943232923918777213773173971491440716773577173886360153150833620442337201431327876600196881077458174236438121820830862811687196570245584305700338388037867606064153158376756897439401672309525387094412251786416813714055495080328713365079362386671231553624832407408078128529367319665491853631833818070147797646221759501491598278987813807263662766180200638448659602565615053418809965288782418985626765439214307652019993350687598374234218410719984995313453939408887949735701162887663977813562238860813733581992663029685563370750883398241695084062738775341717182965102611231339924339228428655913936638630972059852877455589586228210192573282524365675245061736991395149180865863830313239935435691744624838666357894714238003025528287240038562135658100327558570302339397267884194824959005391555229663539484818901437706543896603318291270108228369259397338561372915793434833214505210126388511133515308505441175454537768317242029719343068836911747600065978190321952813628012736895450803692943582893962140896283836868306966375393436389954486081920739714313491096873304046061479721441936596456362730055392076832690175519800764481222192971625589623616533514805651396938724138016672871106090248188384085077556523468950135974084502494910577394317897237102956183204658428893775988425808685867840374653485435066432338025811131028320441621538519743273909510770492904865478230511848458954552135176344931030964026397564660398935793729757400279374157308573800946964033888963340036829928168141211082471555329750649588129698306303600655387708093439072365615646029569884900470840206046529536891555581762583887746647129918081031368859541758888756351667629051822790979715010312805545678063670922291011203149203037645753002563672632554603199354162769051257890533994863415802188591442717848949934393544852784357006449703875311983538938877000400979023574856705926044678811175416085929721785000531320755366870871107743172608513361321639946178910523794733620999858105656099392566906825067728059810176993463961559197452493413916318794324108436660049116424972024739970944763738286422615303333713694025246854922756077259816688456669389048786617281716981302960109153347292762726569232380061919658846310525302771686934580541026240573780764446415477361886666215631541367052908983446747811467108096069846605654835926046877236894492848059234367192244345065809114289957697296982248510357664304066318356392236227478429573944162571615336596039502566757024909410854352958292767384711922912122526605336912456386569100293436464161890086850023278372544858574249631588000309347239450000434371093445735227230124671409464892145820829234087202547044271589209352840123768646378488396285459407184314978407226184922454574828076720015311872296401538709754103119069102378233000546169582160122798281493396468053860885585756794844402529514762147554300123636264476604251069528404371860900351259358567503004624880178928669818431351027728716288308963501018788523179607195257417627191503464828717352382480859280717907773269771582918687924889776714440880778230850722969023701153511598362099428912839756633556281652222706984352041416826610848815901396571740639014173269036472969911340609934428308154819128433022892618869917016082209327638090042404139491980856475925384871501937039707588147019712442143005393336210342351327638649263974596705080667024822275901514392099396090641301887738397467400803683793429832962223443409828959838284904178100972614158283678790079732182209145109365677395189971751003286474385324704841985904169965269860302282632402095471538383069495703938156208592188357580072232522630081923148292337282240330350337088793940854269476531036221009357807666448208314356277903569682797235714190921491747218935044675177259716164079766211556900321475635956118999957839794442227565331391469298443807735859792903285404632339383775442861053920449720585501582087349590413441420974836856138363459911220205855754530078323751146150371264400897898916318968869031861138550555846231732885953929191806772946900076631525975248242488027893144539169316591014262839051688289262089065864445771934544447495461713559341677863677093970794893827814972933341015728400954024247409914646984052238499210429603167796023665971668131673053186840696311455554009649989116006954409845937644676302303551646850220896165724888826681048621473033606810059137070218748203868998722376426832581413159909310088945266858098748234198099334230352289373735711286277632826286248126627963056671548957038517339441710718052136090749687781434750869813312001285920395174326981892046472130857054004130490238308487191664288973305096763189890690442525774608856816275759171222819491732918280253646053928631217975496208432274047023088739673626415377961043059234755655571804265905840543845977150019881756425086818471908162857187460774835605407278358134524728805136592916004537251898202036996607979775345034872549389676799966976775311636074649181858209890476358234551307933494195650832111786119760074564354783779461019787452023943628511829770652255768168760268532616403165857203390362114908735956747207956743465878133756991078524808245316693094578698869618968927334642246256290892756998024176654696294250319127288295475912918341338756932348871247968988160381344280852595223706015865146509498775750901733930660855475991885628307546775623333341945073544412467730901935805768833872278938852958057591526931250580587111869179847669744703220854158033241154015352199462426567887033590837067345687115011516159454692755025370133190894122911369792576818528540190837066983498397443070112246749531603047505094126667463880057190654614308065077372538000760905924760478037533836552409061104478803549730169608595788601598096418098675765390248600760188626113056424281919581517078853853405261513010622757616186906201190676844013136544431467655834665020745586131247490844818431967368690062354914601542022044894667639855566352616156179489757787766127359160409791226923174278735526800859023607315067186371179349968146814358757206522812923835129822547461300581863573337333555293207801020038387952251437061111589366939877477124406745344462158690159092761612222098715613906417440922175262298246544060821274639496198080095199729695880493924723513687318067806077037738026562451200880868681024371832634159718208015775349014463450315184994423947095226146727241369020853502492695955971195449737261331782346093206386039697686866803824901029857356679124537543017728348397149423044053479317218109153295058295701128262652034088916946166269069187776137290205738048208224887844052135992823995624033353857225225830282086435524903096718193474464180274393678960571927217623312521167316989110656449393051349368153769635561412589580950970972953449765382634304275886132736356258924692843731732507854450032702679329951570952487258036963053874641814281713111095125835642812036109023546384609688926145242375608563170246939743231669390908980214823328156497413922556530945174486532691281549417578366607036217963366730924299916697116597381798236582741641410386222293201647660594687214477433093957176474375323641968216809534229132339493687931487853504085546835157645773631814376857350486221075612925240280575329956776436487422959525284541007277618060890469399656440988277775826310310545846198923295850197270161309067201181884594120303604418477593017631626162565663292694863264913051251412014197709474157440079609562135367844144825994335636533240805919967552070540062340971694723926510383716222130182834230066445665527315658820073850502901956607459794576504828527171316073837414160742686455030829072576959438811013028615511741126992848493980429168592889640898664389429563052509753718241146437931640400646033497321310492767560896444656800755971698915340460955977629370612608190891652721203176816735408783045778237070170919327847908670191120741204784669109284703428178905836590086272360049014128596913547592360463113845526923621303780392142693862097774722932037791570940561701272240233941833454856473443970445629322829820799270650734844111569280262419753576205142186936878855740506367468763553318912342748560894869806843274442913945064112638807348511764262869579688509503432186894205822461022884215874085706190837707277721573306547444264234222456013241506874301434385774443647406561169908100005899858715160253984532283776239713671691194616337892864621010761988476890072423527699390167771876765120644627277570607996249877696048826049565734091345364220616149643833480675166099652055275887291238797161749268462266221234147883869610011594007661487497042040044192809112430317406375548177425083262241376512809227468845114399260860265824087918515521278677911477495942878755279078361880916813304487771243684763516083120635488615705371306116967613347372839636505880026830044537592339514619071992426720721099796006675303219561832214465154128224178140819117510742473508035769214772542376775083244759909649906804947623751444245105281402045318953454632624222316647460316227470403166360539672570152534467494925191442579393485479614517369351704725676837160190971608557196014594963997164413209158640194612446712756038746274784705994067074451591527598212116939295067143080925683550173108934443640307705029651756565088249259016065162502997742568913686944577412791854889932317777082963429489542246521081336503148654322480796459850098117201040570467337675982521823047765293953391692888984075778802958123744065730560418858191695914603314698150819710169575324125681688190598661422951360836474906510493416592536348309641750317138297000191567158152761086837275210450422774179329564534460076106102022278299068989871805715057292880821184558859130743993248645332593616021121925900039872032890712685316060039937290274496205189123714743764375249298297540094278055053620000840453230370469944840557166025876215226687057968370259494496571163483112656132806462113297717594606502516311494438488116310913463698608154338217642028527046442149177377790986237419125828747940247402226678276045485668488343929862513599000628365792622232740271648026369001003045241928756172739665950348602735332914299354144693810944345697046689487155288276411901812059366106113683078035253364910233118070832589800786799097816390148114412482446992683718265964111548465802420845255823867603575663390387701361291414662355965439350837654531605637867221557511309911865261770390839150905336371538664783602558783927510660950759842431022693426406070371854555993348980231230662951460398107362037353896802547661859643593895954660794766541780929976895718260135241727607778398667134476926819847472941187867490147584108186478978366336797056014794372154643940621430724500223045365003907888089041369422740826635555351205654643574611931784039011943416519291096065274675381414159506520288460926017898826561508785708274834848288035436769166185496915065938967740147356333520942814249266277409606476256452356696794518008789501091979902481255502732956681922809852885967478696844327117159448760176411909667554236569526443944002891641664890944363341935137079917962497837163495665045331821287251945586701280533603068218856412723929462905959328126183561213347256983958577251974564379762886845339198562833331602438067190257436268300049493526179877797309443038917413146637284166218758390674673141364495524118583138107333195043641116451663109496072545351054485838929136353614046415807266004300511228473334474011063156723842984139661122066140752366616818615274249182680281925155065307330426017865092304583812931782854604614535523129230413098118658302254788962774987348483402563598509042839072407196789970652343497435487767381823710721493168452504083085269988690696586169758857470254975239336457418347868484422877428972937978662788153113898838744826509442132046291241050521366762105031775183075643298215188269862254424151184521123082408220551528486419459813886103060570473022120974368981437003896793177720304914334378302490729209054296359181914249118348909551409299545449430194230622405696899528255511408208373026284317420532805842297042346220203898295653498517420543215128160259414252134556214227557841467004170772780017432684948829930799895639855194863223980429719369822993071341404397391590508979966483668179898264203520669165159692634204253716856980215364403015065925129661944136039522937778798085190422318277006889955227663296466764501666913310401678381307406792819266060006548111298789557223643076277227771297238925240117079764067142958392145085503920553078704707003706098974347537976906865463587779482265418842052866502411854596299481796023115404569140461178017742779017155046889103644115338801748190810658278994130523104009667906238817982128714243251675327772041940443452455949525405979502794803124701228087891270775815802020561452297815004594497203633866516698846223071721911959314829204090227357827553161395451054435085020141731707657598427315640570673800608866807784980229297069866850257472039848892548653656484908610903848480755103422212263060273357156985468831023685468420931354478218052926123412533576459133216814060137871854804869815887286955043379208483592322982049203609882885173736407950695941318264112464856080392490900847472967144885267313301491635622101174172954258879602363328781270196971246622480950801831940563947772865813656794665513998498690320730785806909782879558793910740812698557496691859820499498156253176929380014309621390725906816538389861416112051319336063010207428692549325925208652716170626174735419899752281518311370158513754639245802622815453284613259080284708730200237369053612013657313861392558648815929194466285857454917475067078772905637986391052195512478242730438449347764014486769542203102883066720362915528802848109385452033382309481354993288765965984425764245605660703906510101126695430660818442643164178401919771302025172612491362579663068049095311174119795123851008091775426992038784208149182001494944366334316091920807726125383920197332443502399000217950190783402611985138695217456178589664849333897752624226860846678375743256674748941848306291864357857701638758507298275749395932452890241208623774133713644760672032328248867681232445627830212322825098028128665082408145530716698829018948085373004688675892232108730694445054171160407898849043566193160968209478000579859110193315121617601385026399342993965850321478043989321515280943656749163958958011710170464881322922958052480313887712113047323732087228109204629663825116664645296576426115838260252831900733687639146937684879229077774550753872916172708035510660051162858502584359936978559849752195421339154090766368357445453541753835686605961872358284243810238131499730916512208622225460692664527973185175929216355654789671161990997496547801969527173934254424854317605999693187135775569497560662994842106687080200258266107283188871691174235071453137916825743152712468277401241040002148654830686310737957394734353215867013661884839253830929364804906705943258390045536681867824058416444847776525299645187155838659850936842732110194748690886072928107446432486486697852963965945957269629534069768235839473181220068017258660020466113418052285055701066939667164016198591519137449392633693542680661752553653551034950788293543549498069293917013796564933699418213291573356946976577447429654937267280424831199182222602188709414339763010276407232729132047597462463589229737575034098530480488390662549533621870235681034052438038926365064642420618309568008839327937131396692908857394775440299920475062493485411996673873717930638301507496558042925945193845918764411354361623607866701322480690126428002375507069466977985210886415558295663826673291409006752446889248958238735367569472304359350102328008384262450804332141353268839953290115257371997849031773269516834496527230394640884375613669366547720384912584534733098967013663140821134102845503376474517055814126718901238316809844726763741322937920402220236168192252229199593911082080223428777975856953813403554587668379828166382041887157318380018199408447680604695715459493410235184062661285955559369363865738323801546017566777031856924991953123643941234844403109719385928395740225988661516405816048065186009640893785975219633492352754451420755830993553183872665618466364126838721331472897369892761488749568262637582546755341220781221725348902809236993549061966829739208316697664697070185709348325845347605072832236649408616895233427062518740112106923922944549648437520285092672964473704076378698923557064558206250762975055810241442513178358930551498639536961470552196309090973560395863071544956699091438744303503769883152187977051125642356201091001527103520557250665709479428169097419984053503550922236291003418133960706113717742562113522571617324078294990325594200447808012735443791480227330427754284915347390696882878004020613315007368794540542025479335228060097012221503039818889047030066445824665094751315390333471017485692960827392217696418038396528480112577007289547375603359524229024574730089013170214044014744159222936291206615714218635678986606394569124638080684662704748816891566465847551603532444015504392021871746078585880284843464685742441811065119823146640008009019086704556075679928970620414104438105667149639748289802313101665275076157747060854513502691465930848729131204656864964508300666701327007794810633973391573469196079256214711717502780036285431704603221280956050857974880744959167989002926865430382340556084994723034807167358102559441966574023970553209443760405510473956233010074432550985379252187256580173089171896805175085737839148898990375020612124004499080138356477337804156138190617139858704346872957282165492507188996694067929438130371013814814473725291762931864305391129067182918352001989998019961355863715496029018132904385408513070583405056364772149339395497345890462422182274210206585206025640973646902701510325096431021934734135320830068316714803251109291582496454683683180920520101907892862716436897136650783264873479879032126604323180339947595086843342424142138451085040521796500450903438823209532695708194004066136811534170207250562853538183108752061904112272827587615062725785911054209928427685846379803734275197742259259525969835340270883524857958988630313531725952356998433973704172859804718726589419551755632408752662934038528539206896480468616586627525702789623700371091602760407306754923984287993283250905161409106849017040763653923135141180960621891285034765909823400009496431182033825041550193216788757270485708702316060342672069124530911522167644826059467982381873525267074922337394067333139591176691011856083491343054469635786494331873648362153617607703488539997843783778977529541766687768187433295615647374958316822480830739322249318473863800684139698416063351005576382876715272552343243111558525526891431517439093015749262267195316423087388493956724295641090826801203838983723487655363596371736464964214036384673099774068176574037802265112064136002536216568544457239918288892242345006205271727342868230702285356397386679945349479637138011170318260675990072491836358620099520211063005173059114921503132379251601323327123561818367014901268236384632426707340289448002248946029422975150476054188327297822779327046265293497309255173101318817887702423778374256510855046332873914225710048910472030160038603205992259235762326655922407659262801920738209397272694146563875670851558557722409227209189960051722188552276704659036347408106451103523614311235969517789665905107388989640397379676730296122477069352488476177709559624102149613484331206903599495890360256624242015547507001492001702626691004047343163681904464546014773912661415986578900628704366054871428483655847627760611290302849667348617018563820583982539597012963743740010428755962101343412477724449969546008686213710478101940201916457198346465329512450194618276214516534892533350108101290594649990065874597786220539095583423021357862827800799127627057935418476568516688204125682868388911387884179258213043612914486852258909024675305413413618740519287616947606094387281045615391202511704751759286935280621539144845846231342034550590872530694080625424764269475253654889444134103895414113026039482734046471047715023782324661339700528851285020017665567806792744240284031600742564738771579145816298560853263955753125653401052095627508761205904978110285145043563255909446271991838605816117770039092802832042882245957716637422385857984222510650839226207227788302066769617647443475987331952205878932323245345075034711207268371545880094205036604103643476422645067259076596883082142526559902445685414919147414348834514877424407820778183916488250883554423373738474460012420535896744882658464628777003054584716569104914642370207018908257075504654257661180700587535067207968467390075695067711046711582504791408801124042547306730146779269516732944306754138731863364128154959043755240971079083331564758300567511001856067157452270246358127980455519583834553121148182558190655566899221586626857533078007278007606220119573181882155200986715107029082023621243479197405073795715459947029454931646113289707709709756964212712575855444168506692250043627709280282148878262861229263532519934872616699692618593629228426507096219398323330118657478956028372913745640383858848737710503050537368200038911479942864784483980561253378358224986563196737780122871058054971257704405690479267593312421274907850732458128461333641352335973779051048817785086875150416182634213441821364246895184906625446765915103363864325947402812568430616274579316750835161109976486512871588167814051923822453301552030868564409509588640290687327635272634902695152672187915320800941233578038898346506350242023826987846977100713889010774938142051030451299876009086946987834967128017030505833547956723697794177676322641427235025196175487068449905433552291329764834252374915971230159575391123882948084518512866880504476616122060972644846432608217202698184143810673468738887325407301990899045634239124806848783608612208899603044261676287953949442197646478636781222503423998245485817290521838459708833005733531031220348197117357567003278888716359885808078780487898088898623672163387590168557600710185365575353659099328478164723256893778659891281557905035354094856201384447563276655939821805164642491558775266619653546311582538187354009608623251089595310578222855140385404572498391546684099500593139731927359844481255877082957555776318056451993804071508671650617304809997570202295656851086703778980386048863955007532744657917369111906392186889709951751740583726780719356111504677383348224300739706626809271080921110986249772814331522821873184599709872529134650111745596562452152125288096358839083817327734332986057616628438850041822018160486858717087074203951200411680740712540641250739028324499778924362080748570855801791559765277709164292787139134216849355171224556252929209504131024308383736290871068890470000796531603844209562697026374897019436155563608202956401151049404701756296204022854228643583547683174985042611101408640747473537234760962782420362595539806217424220089452814577242822991063713993197792306215120154905260095620635161658589290808068231686038414931271680634979704413801871939795514959194776773787701199336006890969822457353885605788546424448730049814661622478025137500352293457893800238064981490566600047834014625424550777193475226919884109398668121119978502502823808778051167660268057091676411386518444374961842157446967967698582169881900582179174565443779107521486347658900186452871238301821901351021921423604138750643527748349615929417202310021783445122968099748212314015457935513748754751921196721469272685078868373182803921769857281000453500409829093768888714093461479482021896884498064427315375927899210877654039959557267600281568034259509045889399026845622437537041825518322429826682221813986752194604722781538573983241830132612775756669528195715386939851447206867757099476308900073678346353361911356820213188433537670663920351798407712150354679438137981778222199821535789137727962442709608268420146250285388694088957555184016620282452012262003240589954788231215702467215319132697929532623437629134737350055695492932679883445581580260751242297698099918313730996252287935966414502692457574737445809147559071334537185614800634754528537511011833381261519888625213639194814644158520678344385996706820104457766120048809600767187611964799373685699031964580695087734524974283441090057083544686507911119942091537536438419938490165052961855734873896803801133522357845496713186547632480380286007911277045382529609707896109717518247226619586858209047085091364425493981312215271807454435634017087032423845207830970499714691534690896994969089826735441196342042764111813791536705638649512902631687409803327828226039584337411762907993622299262789225287579634228412124004632585232628905374786839817214873870056132601665079997343284618883168586592250280758849241930507860888774557214058643389822068637041862507970327358055056583023460354992152695095609010757756835308865878230858915227969579539840648783151504603874603247474206295574102887418019965536597348738102161349651805369598105158260088046827183434040379241954108851375249766107030074196824168498813662607831200581729074527485292028755279792068655291884617555845898577178287227748893282302628515202930045130199523135807062276514214200247894034897484951958003092921327915376906856877823153865551611353348165906058792358611459361649591261216865939911162293815503654141288044655460454207462138874369280138426148894618829917409063946791603709198998037385136948363874314435060919988885826909204489666226046602981172896959851956352418366523029387339721907643744883629140693762751704255075896756043994269415832131478676073922329428772172853806009993103683837431418775639333980071065942851662693509078827020927956309256343906224349681527811172460605528189971229520344641889928583845666541903494734446504339033279537925650215712203855956039396452960889392002175165901113152343892757991765684110255747498380416532210216582583457794217614319580674835015704638310085931088370660353443989301484893860335415304101841179968145184211195605594574525224459415025200813799401088365206313029136746026772531463236827993476906567991963655769339822553646811329567166794054503076482384100241032505818347532047075763581018686786819517564506048654209015174327290774400610660900871034414210306332097251013299907370267761277859373267085655200736460356329196835937317100995415545025809245251274539571523867748949125177403928661683925468575170443526005426294657031631480989406490064481153436729737408737305203060961686624862309081638836909500584871951595548645697773551103121727488420181775400343210798689242181712239336619945931518752116017891438205996709179322289694839363958700450143698303402675403084206650221788518792335246738205412076837447205007269099610897477337265737116178292258572699590197835121625098711788054324682512739005218130453547773860549383440140513548864151505990927134205512433791511424386274991152844593417396242353706212387300990274386156250774936411851050694903170485806714887395533737338746582653756263859629139964741416709752775776217750207742658161036171916646062877195194269120475522868920511338868089491497193260805723868310190857246362636954630106926800180861373819064568299770525778557935276551272545625603695540971653768022664426042106398275603299993414578796304863810525536696493761955313684808553769950490909553851410914742339815696227638263896215799855922539659430899901944362225809275143631466617556711828108681247542530352668440058611805548514946073785502630006400953949394823160321476003101234431715502207962670710587985549069664997705110328771605613549899389725188760321157023647318474852155572348816154013651403183373121985615864069135578061313489878830207281268159017469967980197250436057164354943512239488423278781288639704377409199822269364371375839714172042189785635029552340772628518325000422002089631827629395501493289394720865559709961113859360945012151630152985477279130259972047184945577657022285794708643783748632029443462771192051431004165575159895279350403221223463680039727853564675585735774378301975947300878712856187687971368365772079452068780500239439863003267498145400045854915821647333377006839285326674932104607317362188104183208660443733546634456600942009595434965930979304924034775846006277535152733370367449751584097580053989508554326743902687256888852351558295894983294504065412185368802023026868451278227777137682468334113170908072167453322016024567988100289687769769092058055729020537990080234634345163746839892205881622288845683393652219801496893578129518668082737435634250403533571184450453896334696361441036921536482711214127365958080157089977594053115409051089031694301729538155230977387806649561487338888517109716712052921265188265072363726456855706616547384065772039583204773599995628322366082367655481522283464488739691136699643791257587587489340245516285702657085995609174573239419007792552554057705291141213836891119367889883443504249052213741526856702672619864589878345967725134336884326262910097234974601516408244523852559180003209350859544663624041287233771675383712297385462964879460899948284008676195735732310078173577579850815351736967873569251096575981046802693701382606234058292111873061455083783883568655179067426801460293268824468708915750971479622936799919118695837573710034286125789743750172641815446755325555470015887147828050410835365791859442137697882504843248519173508257647458748240817753399622341348273926279323207497771348877700333005690200950069282256661084535843758870229427101370464676971315106593680272644286763649737930549720346680406033617561799807801947058152791253888271610268913465559225906793995140832911681890392719083037297949497454793868606204569648207922631485920340381013417501218374958481108225809760223884028620291805264129582879381953659522916416969471916857743608440609188614908726642757843849496951308191597661425806026630049167479405339087617588981414375551821466548979723136124972833913309127638977704765366620880335344162269584851847378727520734242682368080748486949383257448008488290441669458935274374373616353331579035906389424826380577859658112005424310443361171330832120188959353036111133815511521281611462241452292244161178897394163581260693729399865401139779566879208746814443579473567966753176566614713870206815991619116044749128455407780033195685087955885344121810042120649529095763099228445015373423119965547613208458172240588675994498303456114258499243086645014433348015612282154517774739921467807334003955544688388591826882092228568262439348609318946358796983627873645334728938450915325254055035841043098857260579685339750159931040126602604089999894932220149135767163299559535582209827569585542720455486204723911018469298904815709780704335731996330656369504382243384076398160582529374863322558694937834527983305239675217924321281250115828692047964649976830530036487083288676968619702810052784647588243224876538073386570325804857327543741020297893678089329986341626431989636987137089434588503667209659085802547084161018379919725909996728135400341815042177762487019334208178689249186845524352909401736845977626422834332948115004296249087083793512136070697971595108178718147913543587908920555450185133369189401884670921318634002955424565991114111459087798209772772026052123493721075085620505490004633613499321056777120058277357831014529551533714061538047599451655257102760203867825294956082135666735383534408150684062118841441313293179509798347811486875684698642967451743388552243148859672333335355272872923417964281591949080200398079435598724944007892888037158186937183855938148921421567627735170777662596151402356461631868950107088200349261326878332979220923274507171307398049675812525595472440005399722551178650149435692556258055970890142145766098351895805619517982945039744604532213178291042807173508929717262653716892294685420796060868583350179160952595483635933898714481823764982369073642739750934563444747272276635685762341702883709478260047780702135848379835259895664454456666971807019970797981414667017973849257395867139545700290914741757537355958019789916018741254653528493473790570635236156678205017277222995454138985689778414142978442392197730166422636800512176685530497037762618453060695477385856114583216576859694166391944777441688121935720178746395361301364269368905483690202395189324494449638898653519179191725138386758991022676110716359434340837133305796158541116045948313106687681016182234204138867218282087744519118439302317188461502069258955529062282317119711871969619291972475578791814048921221419267536044396783808899948020165442891373759915829306137114204998781625031876204005089764306465597019814512235551575853795163624609182308145615043225897796136488043144448922648108919544406843442404538902019146660568595499048176628443160137508153833984929919979411548371318780189134665378360987265447634647038253425362719759068582119344464025355453962986896710519278910372013771686793678222896954087518482506496265024672065614359869505359247712912898876778425672965495707895305814448199176902755657883131917785913848926386203019754579851437085353423524986327169986360854288264271013640759619166241729765514227898368712497601911936469002860454776164823215833779239609399723522847854728397211086463006015002396807195702575084136879816575722705609626515056046723096809630027758868953424535084265233607276477513628289152290321954278472108902673024172321586790822887825061283448730127513198331047348123941804365110471232040402294531692718237441173805108635931711381522121575945795023364289355659897545667068679352315130735935165703739236584385823794200102600488815501363895855820182149030486478614581619094648124767111213848515196515303661977938215312843789860563387875358510273075240447181685566691381953261981248981289008758872522451393074435941468962475341366598656225569030411415718412327009678925916679158715698089581164550361740511819894063525377493690399924274265525561340473579529277138521655902700235202590287224288760333239562028449692686901293000045073099052921191999166856209794519169398578007636123281836114336505349643300605203266852571725926466595248962326183760985661520498900728824765176759508456629067688462040267408930769140999609679273895908567460383652286776527184612815323006895082829568995352803395111303269273807297093471581567178911657846224847223461632884665012201890689812440049127968029364081302966071524155432178657923326284235230541711590886529197341160294947881409311437354653576016598574798433381688610803231684087617578607728146884832552785315513577783280612954494638942700257362950692221354979462747239393210890609654234474377451998103207745178226936521479588999743027390953437677014058113170975077301082263521873100489277363848613370468539342220569956131854930776324039404294357578667861748187817454846014672355828690874491418600645262705930352745909966634223128256259677229629844977237788675441452939117556861323757814938561120907691917485638946066826916814815619569584962818431640232395918864931909285564456051314239803346418847696260198842025610403995253302653549978297201846155530329963842247757864994908755392616583659597894205133073915594842140375212726251889082409317300716714928833053068207692695682372109087800987262800445250951685487238585730978466156917143749030544472078284418307152124645828918049663608842514165911951903037168300105054807533663743519566545274373245592197379740463769252606196895033077410437251566035866528809378882514957118083040683175717385618147487825995882249577810150092934593531518453270158935711789668388431956292498998620438733179807584480578811042024979898161308285639389956542035586460254293013262199422604806701357901024751864838834225011616108870313549196514116845807742828757703950708083728318841748737883052946215178734366438755673592499596685308034754243095853388442888546132519332199083380777692574698200512365721695732747803938721877681658416912712549649621346767204654311835782654356352972629202897246668096126635998495551756129268071930397359350570387671519024019432384357159380094729886986813737971654919497275606892315659434336287040694568115001372509857763256046645715886062242927833618459786724828907875351750845754732611018009047560088982373758849848553993273657494073424765043050900935880825886859263909042525387827638544558804958802026365067141088260455335340500747143089608018636189173404924915948854438128890033190096333144306428846640940189638963898932143671559003446538153951986558641560751826863041098678809177144731206127937738070112022430642547446962192206598618713743501395664725292856953099485861111766568311447772256061954200272784194461982462231472539606359684603228917362773272617968562115538468468988490852608478666319704757493636215525288448695489323669300086380083168480125347507834362213144783083650493769203609007512639711660581726991800766818333537052759447660735473572374648196601758771202961227129584031023994855479061493914938507762861565269992343116554683277792131998100927413171299454062989377644381545680030984123008385144946289309472521610563172921147625614182880923831527895653037952720157609430672600997681346530136568438396734931413821538698779437564298948785049440819207021695982456985753109063704320055539993836652539501295880105787742093854043836052661891186483273351130723686892975018937213980683348953942914134207584169882768075344644355375993123075589875839286510409842698065685954884592384070759872850622194026293761352082732753940234805807783352980271425147064032517980808807916703810863346696747082996134421528719634006661358452156854939465989601215122790901052900032419016142122206276139854487143095262751447918527156844016886553632362353166125351482733652611656706108083255191636647709856584232260807899224551558130379900437596080122279006407860105745795772666294265457997652150946435976663653631056192390699523483868324642193599362253053258894847407532962363420843667651361503095822587383234837356957229613461249567791062624498084733587626570439029123707156229824474026720357406198154747663447906483294542838796647256155527472201377430786714313839389321722310552782364122248703900567325544384695611183957449852097132561690978167345485790189181803862733974525775351902358644267553845216780878201896805098017693007917286113552566125597746850494872714833067152588142483990619611541425511023874100743056726795828349617391307397989925091726725588890615651592797263456980384245183531221908826246437605685329218355280484397739965610342184072789341827609268577423093645425784565269672301356737941839754230932665632835217316722017673417871767715837774147595607874789058761527381737752823661526998427334948413595902360028603409392613865263740609394020812415640607833641555123213867860884837628315177531649065854871536131087643606314248750425502578194600433455599172968301465628683728463688052845074838923777192772365604484792682924519227613611285607056261496043513645888958470746140562028061183690575204114104002088571562775918003187270309505496859905513738165751602988117164975979096444694671421717853829221113984260406420190821120630934767528948313100753138236761735625318187392628406322382790466747020163462454657561694047495173447037842520543402119934357353988031853500773743407804668495437114077813019841363077077845049208092660887691607809156350671442231868679168961397737917803663808592196468211840348296475260033027062336823034792385133179243323148253142040990740913963228175276160663970366648476538408870363606728737907630656260223662992905983327116868615531344368705644279106562675337146739354162119456623316030828066749793011156426377825673829156940733535161656734449347598388628802060770195024176137624582905447740871060906837646467363159807923267239266929734468832098564524173268764954369811647117430885287086204485987988728138266884243062726943416144943695305919452023876633719541330797647749225899166713855636283170073998260075809450815142956828140151938787453555969919005559389693379420898135143707429283526281733974107974926686761896396990709218869880486309584928608235564560477670995205629539351610872388564302784890228038815373090560502673445322780571135518628888197502931675256445779180889769941842354975971832424110350868744823565905424766460878037161233539706679954077565056843416514862179169256879516851763028735612082333604825991611870733322233325968526357530174916872708235568916243866335232222172543507304387949732988698010083977104454563859846624206075761731599248656029930686599598345807076557828916735404715028819507829675183832210807205955114171727112626563679552020448792650395129203399254641815586726434650410552809447859533037107807546800460054186044311524461406147623086023564139818477620782926657897895555563970191758384658582555408858933533385273322558890387329807033099382634065509430198660754007393960062947010348498343081635939016789568693145994593487269441656904719010953978001993728740812486872759555334143387372851640976311014591673572564852397481739904020175757641246729445427837086507679761354999387933029940055247374884108314861565008686507524671199791441632740699684573810478310809052707524454340490314340331750140949445352101258941438675458540828481385066477939563381712727976362710025219638539391824156733710634858269505398086779387513387105201400638527181062221840959659999961956793710600876472843752885549670066610226793176309010773623159245643020361144842760767533676738492643316593829618769083068844392187714806043232404686780322344981574073104939973236751655771987321394402100713317963012843235231514915323308859767310724716551549262613953145865818413417924397819436710355468106780843616630733588105331428845613457710206653314234377601227922446367027814321838234501478797120260435521014151832994260705006199081987894649661136017484004427680728477057922479727175882999663767372407308637602702655794910517003044295178470186135929994995187323335743568619388740495999101623212055322680601280818165228223070164826176579570016767040119836723680866407810406781494957631951687635737236054134665555977419689527214337764486656120450055086412492922164413332496618055493409542067461070949794914879089881095715358822544105989985862929574511441939351374420027908764860070480975086966375622574468172872045629096757924762219809451717705883953991439265141637189697549346027912043180194843045134935731377760228791696342753595341952565471783613828312776012130693306522141329718839854007677463171884047903572825374570761150899364515892775336560140092823127490238959994445428501631018775579256279869439661234289422112942656285804626123572119155567923000459472015338820611929572029311334854777160004258623875247619396326822264806164236731037134282624649103808242725560489866594049785865059276365013298993124051406871616346623891982862544724002492240876013621274811877610568082704155448267023083374612078857460233223882033732162111543353201047721210082755780264924453664651058591708431986104451911005950745038437299594774025207596480326316686911249403648208857669486253161535642623461950444571839880934557427203563331354084312650168239158088834937864658326981915407837700166258994450604748509623971103413293884138757647344786654384712463427427866021228934591819178224381911473183956153488558870275206707123846234359830044085140187070186064775976945097575191493322771856198196876235913725391894366145343629135672370034019968593430406970971902935502183967946581552682999935988532828213963108279019333316698464652754726015397048174015512366352341921224414350198758145485996325012485296592729214870705085459576223725921086277383177027320020315479760561478710808948210531821991742355040975400931241799359883309525022224778282537594050660664475920972154331122363195288871360485615776692718566162100703999821376388980594568226446279028876674030084599214971948223805246762435776642634854022660411775781021871650104789388836192820907339223774723366165091350211310134447715355644479321813697807300666331142409491461049347203059623953121889638591061234440180968158745578484037090106035006000088654673675873963154212129339143286329308770892174454608160190193075345347332270825616260878883852901683252228331797190123749979515171661850076621305320627978744905230396056267210087780864770041088313282900410446466157950412502860581826458190999702389888977578336246248579956340592019794743267874378561970387140945058505963785091604130217290962215143690698783687797241929400830525640430980699106367126567859374819082579379921573125249745640995804250180285337866529733718011506660954271326730105340393517828262634488005352496903782198687827588901480613838853565134809480537381171432377857053973781697540952334044837315823572204932684618360854558021260955351947280235909459142818536340805939164776816246520306511491201910026937754522828393954391351147674359599809365112055684998397340566327888289823335087446273858885943213418379359540781210709521258186241028028140457854969812604599977403833032851929687892915748601824980319112431800523759197663642557834996849929569529655386615546445738602483343442863314908241851196918996396142583695753092403752987044613857228256761751057755576240946129516705958313077457304554055378837899019633966262119014486742583310272549178415830298266380211119136509674413743237834802447570227351193121981541925311176219249709528895732829944953289400766888078909544641559180778941546790125092117383690272488160803021318527155623992984939457744339198585226412874377195264485153772689567892692660705113917745928556602012775376271749378825597493030426257363859000641482599739222867614336083769715034301761252029285730569622021023299718775939730093047257851830633984376723451673886427118054610847231846568384831050941874318506299540451542912163646247539780402749191689575839696739036992172401996053105914775376993837275152019067516939309878254078611851540386756926012170275597583132457062199209617785007546521865897091597222619921073589012052302268427032265858084221778930935407708944164473498028748393826408460134892351179971173706560431713048715570343675331846233360996917181080878034804070623047566054173277434558855764280556825753016492261271021218591425528406492296690080738334647817812262808725954910166044019890073999169351231300422458068428414385481010463575240240906951010297141727717650103013109259526415743497894866479827703257571718292903480618710611403207449761129260309625215551828685911116237281965442087997823464950944477091378313941243180232260323042634705518339198330575632673003318778524765273797757036805158492093917810482809775004544997934233962976376816846200801622208968465159405065045170837576381776081231461638963908724028203691472222949302433907380728696232221257437344014181068502714014974062584328131988392488670687428767086773854262912924010200962231379594806720437098983340058089865546201287001115394192154188842043401731398344504086716428984001885259110956089358700845120763361706769944644854126840108707112712086260391880443839906185727860306292292360356183664351520431429851190362346055711494795201359473066107102945543212244956150155964005843127393758464018172591161981322637569513225128877527703359889352055314613209406062436189418488130096925580018653980903675129384376443545113508090873076082184444385199478222771099623590404022372071890305787327384540973672513935788859160890999546467412243755289560290778343087038763036942176350599197455445290971137373486061305837519358735984677570577170381236053013267632569695361358197646295241739571448802562630974084146180195953096311841456418566381188630959555841703050044892741758035291017241116530473026267102033450183440658719086350914184267353227416159285363810009629315846284000580191867698437864679392341115763137838708678519894274279584793935670763234572124735565463981949870275379416307763848111836459538712027188265725715387974637559390292530277780807455276132429965131787249955240889459484395658401038333213190129784913303927803966220912896685872321556037346850506639568867487039146475866639431409811508968975975182995937453730186024661410057343015730748852037915472880480091082493343706533705564179479504183279759414510579371308295807490572564720345906368805421502457245851861323262881906655861208661701297348319910577386223911685247698136463525643229048478134544308513108413675920959748428627544280639499471032239996129376618838918859583541648080311191810757633783793034523083913523630292609586958266866263463027177108340390390688401597033717152231300847718684989153476575511033065280687303232147861782420872193714195504092883265112005443373931209167998656951102164883710409120166891282013888147526924206395429534298183414803247587575117844471477006572998823361871838324945989274922087360533273416338681158431122832583292988262329481231911475295768519712946319435208997577504069770787164757282087800332095515948299239605988775481392156308131771791626478530067644600553097040537732069950010840311952418163941950739587807170284503441828263151547191609840827451778102301975298614877307875986269039690864233606382763920469977773928244073543373310932861621636158744363310244010758241566046651906498262197006903240783664380773245829796387240189477240160082326630093917669748167139762964675718304657707557791871685169453597047566656920704063112335124112605095584142748357261376970971702814822139984868259063401741512130538313487028182918819064858568552366742467054517535783539091541212970641756015830525833859007720858997082762840789518627036119580714306850983342667218792046724574453431634040549056930072505335103078888494956394361909252857538398406619702515362047874605705325000791560220982022485554893868450855666683245721173494671278955177348154924812442221283080120131120143254321690462620499163013269742590344808337715779044965942550119661590279730514577448824253617107595828838964760595844975621995239823931072400973484014342585389370796597793143632322382092061446638042174670918560216099056867950318432987993899798890965571006144558066407210375971585806710773404332098759973108778255015147586517819026269481840362225694421473600806728428923089013177649569229327655448398352775663407300519651061957579891720381690228128247236779545908629124031819743174240092826474498108603372196737546688030559439203583098049130632613978296673577793993522479514331318991794737340169019961863899259085719110080921151043768938950616021188186292265821587990972923389265617659214514654288033739392052231082475507384426184415331296550635805619456875543742063561582589927177510999923042591263809634774543428974899454685372250253813465739222323719919205008628885546430856665497156988515496314078102706432202440016948531520050005055012640739219157293285425144734405500367671329583222774718814775373571498960404998269138806387666837685358035757357741409361681709787197950198696355200749683990055260936548476848695758740441364635378398739689713496194498282625953551690189206908032475383409640516594875849903009272009258888924050261134489860464364738263519647171590066325276101432919984487188098153757815403763177749347695002418929817795961378505232440718719178543848361929876919387074559907325555451082177953081695021296759938664848215053890117026280835165186659475534293352615001028094204128894487833052175053766872196950191333170327472087882298683130962337923181237786195765485292478825826552950457326379666193102595361197536194160401176173846276983526839939566772349258969736110072175232577165092365017836424561706236631746985424373235125991961520420382623706716633553776166607760390513217229890332131019736406350161460832387759116641542457274857500612849977286269978162707555188252420965248453139054807708552395273902581176304313067140739210238126968948429420206428759242253863852660358843417364629010843205013703535470749886410129714107241980982919919436283874152373767494356294757983434789075681150094005807535618192345339924146802774265319151839200968740591989447730542306074502301102574276075234812521146674109192424318889650285896688585354903537560181479256291820471039315787221932412431944575377463341289093792909985335694543088492066761342368567669722941636670615824831444731066327714134168706063570999940496969929908637970581566548719923690461560396108463322270775067216691696963725600432247057137214489057134672210360795192375908233337846071787916941429179101592814723636640815449372002212737659689528223106240733418880390973111861434559674111139129128634726539442367604559433946912172217036107984592651606979380052859185920573342592538655410532537631546050755046176752313088331429585901782444654287529069508084449241723179935600098900721330670411371166032462133862755928349603477334471868879588135568253252135845144185853632877096115154575477823921490782282845321482347685590105102847768906178162855638176532020065824636094113710752044935031614133935004041266661591612145121123026457639044228222038758355770473284167568897854102356917583742229299617679141751454015061348345472448505406335481875736639244826072150268230128655810946668391701467504858336053210456178339774581539210996747203278217133338021136615373144910792177139157366179080593832061964851917814736765765536416324810342361003150154494890122719777525376178892337161203431703471829015788159865864526184688241980024736070658812910560076354929473789242258257450522661890442214478211346300002267299791512983829152779907783950319065741302045785706484651987009434889559361737630922795599791936860657724498492528786953470761652292119570601285681382751938935335867402809710742787399159901474145504838590394868098732992296532504481150508583608803504463138974903384910190246760375030476649523432699610053819185339403697002807107740171882135555030989123513327351694510350788096897471893823771710773149193726706048001655671635430823632897393958616102204527470335192661646515674603648267190051790432981751623625326611431349744027527916582300344168211579832464315667100390439578961176475181421340615080850505780791714698772127442288676451273008083152973136745022612473090585377197927617424125558606502831301549323537874548486551224505812069058293651253602079579942036980849794038227194237900674685044700033303810689551208772547872633362381663582460910032910155164168757863436047462157818855246345638000002040503427737323267558169403707772127512273020006363961043430186636686630023785884047290258099548033539169811476061143087590585207822787267665067192203182762405899301553751669667829345462032333985672818688911410265411329796627130851948119817576509893980545133061358924394394720201408899777595602044111110092472351133735756763228328384578268242663667198871299262278670252182659865178917990786668061283701444825787196362106255230213259422324533947078581248189681352036221136345443290410209483918297136292069979026133722858796952484480497524631205153885130152533792496716081964199264691646696282586936586312412699537134912587509542168184518472020720548985188393136237178916853766214717702979813082300865515780283428446683291493011428153346610108351165678899257711272891866710493531893969508393999847513978802280977669184775427229113698921709192481905486380970551436565336174736597476116008631362665691821077272495667688892840006813512929305271459956921540410242763847087351102618332772529966123239127678718072549062455795458769461918521700282325840476253096267699749023088340157824636885461616454333969224417715134716965093157743560539104070006367145224674432447319549430986733610846856366213749686643601711047994374298923475168824757044539103808250865621882573465131605725644961789028612305074684067764146579813864502196001801251693437545748539824518727296635218454725236925913420190590372953104797859210672219943336329262680857157273144030266378230484852358803323593571717274921843124353149118741431545935205855994211702561961239469458855522297246701138494456736266666200475147700450429040480807821668439134106412229381531636077518854357646285478940291518950793854054428064355742402238666143259718414460738556654369504759150445840921091133228699144298288608440907826845750507896925007124793757212748190138578579728595977145101299583671029424074626136852590414778097779944141193710179024112281140354653500934909928076106951873395614355536505610956734763680545533601564427571996039787707315498356456084715747275734216261749458204905994086669757007365409276596477959854526656279768421112068142384138697495360611090973750927257806638608763814448473136021000811885721607373334502156341102458203532809187430653354123766149631014799891228963220173574597986305760149304157288780416902471540373498134589926655941475890704118535998560740721139819986709699288586875671465913306680270097705399463065734895604594338123731635567964260248291320991864953452950278722300782444871499111422263473340867569645133268932214882918040142697700432705136180751292366971273276375577686034607960866487304915047324079028592780550597523889959156131960510505307649749644789730325490551254996269116252431713755078725049053082866092048015433303208679718918928328026258921175654654340997457756906459549006080553796962953357915526385847091085513390369385628127459655784561131078652289016604503511403026540230700704186179368714512070500473998296085431075329224760724840609771300039272023331354573664151492698500740832304866245106392548072008141660982280935669752122181887198966705996074345375875202897507910729106459313206576965250832567927065772422462428914139154740526603366800733895390606254027091876838581782533420593826053836676044916346724787675488903944148448020056635900599118050620590829387139721557017532014709241750003950432228686384801410534413391475483494128759692076587520511458784272655131077233168272896403596135570675545185317034723702245181062095892905688314014295386885428237177623285719250172371996602987690368253769636429293160370846383672936762881010218091204101021046891517791272779737948136665747666407305036040937064946447037551023350295720423066147916387969669777848800648738329584086300733080513824251541007966115686445613146427388958478704562998262240652371876003079141547006580763896101503516294288685587004556555932465659217654061831671041656023077911367791500523988743331074069531588297391543224819539735854816681535689475951918586664362172624451366889013381928757090113501518348953288536241173884375204360012917307550797446335438182652774525314858643915839374856320481627285413035785721287287470369105677712453317515912124837189503437090014224334366793591074257123100527868590822682565179282963109435340087431830376604047439694917571358083057953731932983722478954565969264135734445226597878162453031806168658751965936635336469921627263857053915632544558356990510565662939070275640354008329082359821307686111599495210296033194841364074102847706654441427357826042023660711931458185580461641713869313240638931639403725388915377754410351755207836320683051893200606023600165830493184991694653143727861826524902841498116667495279888728157210803927836772352126803107191322173170512280750260756074672058934282006962152261403174784222160767917395658388131244381791575066111177079752684520620205406120525207403043150804882525266827070125420871926479629041178134116021471759219154381554763072843816142392597703863729561124880036631995313230284197892398473942327942736160881934215701252323664303251031887137305632208589898368562323098883262181948912755220434166798091237623849037584999539656564865207516566721561874843946323925520301244228004339018475323247739688162696815075350003084610663043392860735379967457364241531711974023127604778187759011494085323722772130220508299856229788650193861602642236723940569262123306744650371432360176198551993384367201590571335554599875627413081334373995431177712346647311481990444843301076632616676415172968168064139787601586717865491590785992890582362505340728550703228599673565683296324216051501888700078703030444617898610572957547413952803973588031226813621578136039920263510758927070987696177358394103224120545948020727261313473529288608389521539729870104690159007588617543857108755390244328971804048182399523407471711035008458855680307891234561740146733957419500232269740112320965042984787271717113192175721195713943709305275069787971144941745483958481131959504221207337184132289805836072096374793948116750652522873710929457384017896819772398260554531440169965376499001118431084268447159707620933076154629668994829016417761735592406931349065353741052616173635091491325968840355920280728112648519070732747816726318684347217852142830054764183121036327186071694198813460688262457881481467250692055356896521220521806838278917665675946861368651818546887117576009158381992667475100373394019823307011837306656050102854038748248571400906171524679838787159442210294887705938873048340311803144959614481719156085759203723716150640953158443913356883046687685583812151990213408908538447176888865400548027648019053851176595859577943918966719669052998267341728803353335177872430986946622875383328830471879512305700146574954201965810600636935405503926442341891379968080712008882593460347838173577152894150394710680291708481416677305907531201784771379735666970218578684852135171416026121400195878827652707256606567803792413263054680893196870089943607002234167717974815140533862962837133643175282113390276075205294299384339446280897769684765471188068493200189962097097713165939315264399279619514905171026238554776364740395635399294877207123262305320712518629414344662946545512548718722805794263127909670040354206540966885076516501385944539812893996464311488300225607297545720832951240476368215194974086623933637509977502621224912657797072938881470552445972381148366389413135793235243522840557039259861688391019210770973314695778346812023488524458229809869674164717762917020441106027122828193453075864989133068145610247873779967665959153797114681940217892217570943460839911187704526490670309302405802485823591485662851794121609680015701258857833257651087581088744863753602284888312944321192537611164556676782612486876766584387743978469834579818305039234917084264147001836125141922726467230355206921197618607138204643595299343275015863913821729639593261286113153039711204195822316002540615436359318871690990408160634127675114360508659776409196139455150214613360412455844469924178269353052233071824097476957327951225258039951443628499592883884614542442066237788264893093270439332570257778098640138632248554804772085350580585483686846712247446760676167377623966612382724055877205907025669310645368816691554674109434268385987879212555549749227797322636866731600417848733224430821315968564681260605400125786991028240961939275142222205283426018387779692078499940784381985907042434552244850376189088831090638954316422576160727047078123280022039580737003880071136991938575717988305821008426838827270078674290780776676117526569974661275398882440752795055887175158086294394442750316407267437831393405061257867764095884947010240072862908100083849669569153921586168446038039860652779241641184950543680666310523430767195155890845647452397708346462120174519278701911828359394053871533476311417152522623992566760743584049310694440707255033503498178699279840035895351890128875386359860326908004846813862534845833135485708910049798958841156446019613581759638403086423780468629517945949122159096570067623484546852699098083113479940645814798342554640488950869079622616502833360388686527576591872124343055920293085255758614485161181395778622120909263870407379425126551432047882545173524538950212420421682411532129299852409730157814778031726048496970340592172150841930438866292756386287313257890699633451488793289253313288255313041475598987164254905231648492108236315308074701614039073210946719890257224104793936676352887808728691960236907766924250683276529134892871124786687055271948506566685044000984180504241021914795922079067985988619314734572400408494809469349921948586453014258923418571353409307964640506323108057955431811529057267330579371884172910749950798958732769676599274842720303310675773181678933070059633401108685948367797138811535636892712641883275464843704895849068322775793343050216053332360275190591146701615911390788471112892716663771505825873226422973887060461341575771729603138147167126870009119414516238049020828581909852394471232412736426820888457417646369280141025580947555398070003948353513785358702284951119495280797276063492237701046178569843774971698112488277653587438776269395747130840863731325348225298588809055248713012875096443933980166125695680632035451545106922844350454673847160526465158286694162242218946687151025848931763623981630431244497393109325024231455808653914279186734196276647721182422849838289300152413610301943155388886942992197348253219140326527641363072320240872237962072383839298985608136724769785781652883584915514995202037768094344704995304319564310547571922279240339787589324821912294089981725009695225642343252738549827849064535109622900053956147016672612499197127670069969421276623961042257352879919072538966402414288345706940365919830265116447154558467106726238057489407995693484987060710390628007264273116976242712348181424097783776607606643277725942998415434846780130704013473337613106292338496235282475232966476466918146429729104577955634552519984281239367621611785476763754787325930387127519515396154586052137984171008959640051183601098419159054092329605210584345331987936927469499246602968012096194091260765239809687725635388449373803531287249581706807419214804403476631518538564616293462040378413880813291327240442860975010248772237434963149137767731356815895699968999399329151139147773729811932959382736778284497470763298485937247209517498302379764861344439034808350571886684994295101308374569614345866472828937041187895011049713819265574655725586909458779932789666182990894367246272136563973724498876075426828640700144043823726761389653552648507104567239884694093657590041779093050581474300525317897653215858815383274491933102823316696159019244759252186644448935879634290406334125189113811320241997073334980463349092219975535402099242817619408518703909373138900713180994105137688588352537718235249274483216933516427139904775288265345506003952452004780568575714968250997609961118250098266431196646254166920473645086341470949717905297269548226821361984408805447654381133423081870854942825730960265043917417020952590643202166388070391596962307324372514623519350182880773741125184012602784341672347498325841826163061390341349432036518511206590289059041303076088383521647171766045393344079232440405160854288411793155618798522643399774661189335338960569020715110082207871532889270197174719802312574619855701016993485311333097136580799052750231265065112770017366037081457798928906555331101465913608222848967479961053180573255432771234313122828540877657807492402443964217340943362164840038128248280744258930753467546268614437150192537316342128373279047702165555196093670115210129309395660557204453605388062737854064014124965321330941242194665498554960027763529237750685382059265293879472395413592846553605906362690093082272076156474227698949756420269759042737910948239391325079688250616065330281051966116409439992500224870656342827174922332566055103195638791006886182063793178927963266556786317597404968155991959041280536343005231239083435383490528979543552330849078357235710487217786456126841793766489753934850586045934752432533394187237959057887721484620642206558866331558630046182138302586925106068928931674512490481893052915187845602376454437109945230258446131138886359281621632747042116499097625526987995800370776728183542517435014663976634985870741125854316037724923146604936908685210189625537752517310427513528286139597427062707107272725137565127005526281274957949320736225786832610284207988116853507191862551278480216378700656199463845100730300222900536479308306249737414906723008863350962340625299882052577878163721550245021887711651223776360022468354509297599194783694190156909287525007283976026794815386956929743461759847072202840951636958735373572403173915017282145846923113211558848904958384345732463157671292334822063935145237085920562480284359133312450428156323884012588728035800945148120788875213519139728939138152153448065208515885418888760942585167049582464563647608949948782606162907005299645626759168376952657707380184858375151546365254079134395547344038091428309070412811810696124190846117992514850734402999369335066790804863529220854545243466418411411169084115123072816757452664192704376186889018198306236697043168611215811491094466148962230719754270293966414182895813990319017336440599492094756217781309277765370180051087999867208862960493104133612470868409238147452418418771486800244145533628730218169145252846910461759859734698498025991547232313763692560002906878305110011688537009090167339528822698447642568344630078258553606316661237501775756409578485392236413281642809543111534812178747881814028511889607141457203044969818087857962650761004430052202627382414636232307686893213591243088322871345818999809441847705128297424959485525104561654924295809033849091651350541000476928651541050167733185182132122433985801257972289757042402798477574987035603357758193646413472103647612658337372534208119426479261129268365705627751102371158401382336246430737891897929236655453474393982789227661120026460401144009941642509524019228802139273786852509226558263753600166396726701675561500203111859713542959233323924073715466406632322895871632373949497986241273038421234035621142100607164485329856136210856093987930041434662969121760198386922955604342417966458787581488626911482787722196567416148848946907519955875916100952149301949910107281249790197856441405149496537014458105338856678947551401861139552559585670148664823437027910127757116081339124239082540626149015565613215268713765210449306129278841133454893608553756867249731537240125592679215957664097458743748613443058150976588911826163210564672783839247381730518708090702462937527188127833095305338333997890049593800907681287892974133128765303882863877396072926263309152681072706791047696961840958585666904650133179067409260716251860456505706312491641557708850098737649876276637281968904802261764865023036552962053629683195523507234222433968170496122924322451952336254851512414455136426568137949180146342434440593309153818647928745910014202963821764844116214732641030739142164090474257172488361711027805788892634943771864607589528197518747109424978104850016366501394754069312530445249113932498546459809517699570577512419187272008760311274267896683145090555561087691322417459766461822609561229854123786561694398522373318370413705430071372920248503793494967876120954145318526981110859591942369664890832550165298650001175346419706238800678597063779396852717858096582111938688415418813338916804440040603826925919935887959195678687352538555810581086742183644776439466983456461783691116240389750294687382922037664342624823147688087150895169524410830684600492552185449275676915760176647632279845414171486149572406902180072028931759179999624055140125187683364599381789498534541424043892566823381269031572027827259265261247287858161646001398383335820505558777953039722589132607970105876349044265071458560137609328245101432140410428550279336291526052396822696600284236293396226241435112434384360509079151002533648382702708457155912965587947341483125039850034861160235723788125518229939275780276710289062307629389835248013844696868926337964111603123227667966251375806373815398003572766148847017282440817937786850038563724161128320739030807747478094168506064550341143677981180823989767517424193753342903368208833204103522610612112179708393421429530196470665122925774754754911223711045705031883277469574663410708211751470828493146791583057928613580643090595650685956419615045004586132209318934948278124837256540149892650403801763478806570940312422130023317689068894882014723837804380473330081859664057207517316752106336068917247095673711491291873034885738004751766119919061728700699440869877986842852868066062520080864072735425093004103777843924833698082107109619388054967099946585758573971797773322191005444880088567391113230841004624134584033760490657763057227083592447606552373328133766576914772772001276940317969090217894981912783661692152075514606289055594314533589686718031255201083973787104498154111723008882138121601960722622974778828760707440766021226697573330050777181422142867403707539791001711385321056269917568806825878196796665442255510926103037468308652243532336550582222570738074424795828995097841213809652847974620673566496913827909791556278563102027951067834284297469696643553144955274680544443215040637258628841789004021067838348834575858850667293106084850809050833788512046673856787658315771675379739821441569807067197787203138556393807725452930954082590941466707593055975138665836504709788564002933298547019336061251219983209709735602433426861784772862457222577978922694550214415078824121270503793316275472459531928429325907827942184292191209389516862021240971427328241407047496525496707495715655467097676161806767101533287320602546918821957722591649034737204041936991020481566568938558854447916811617202055819255666568333914780545334017229903020050993835810789856512407521714010409164141557439667964312038389513339051386319686170746195052592471224354536371096691788916073503098419831403110811051201541231416791767289015361216394578769167575291057529656148390688096304619390923846070081046822241984751765819344072254611100623360361881949381667111236419120057116270186325090568559357734101611870953455871622564411561940127833938850707548129350349581286900839588091113330530058973229191419753075915915249224524681003076192308607932454848395950994790059538254768709995793832655616902899289390630845868772301844106413004326167445247070353940942264080604446522012347158658396049970322826552099717523606058196861764172288966527571866491582489683686892601548941563254857750539006299238943219256044585028152369675690325163784841582453336986337632106798444238135896058211835069668626923004363669206573203027741081428995076353918590613454927917257518387217402559941379977351992733446409024266117279673235716258751618176849486974853493401750212072247946191229128386265353758378069185282862739664572589227418081842514720222139516725754585674354880886725735762676804971581349780276413107137650149970772306802183629728139717148559294174270499891370645418255330640804224235649698281759770208019594182314704880378752722947108797196776482825427326959496011713033574252502741175979789768185901962451874009020868019828660676630170964433352498845506410331195324399922473479371642228468834166158706253392990882687006258939481119439623009932779649770436509154158136572220606053689445804222020672282480577495447400823506911750639451203562493361037818177380822574469967130238970297444226694487912538582725723994009519649327763480834551921642041037841438339350124348516844949540822934986916607602293105625971990215478653503839970637606483788458785338397735695411420946298003329785618290790083266355427924995774593310442236826806439698986848054647434137285824035123781351097242084139967629870395530821273419025282932095000946269280493108403525598608054869967724898522814987265181343740882525765314197033359593210584706188738925588437284700587189686852671672532044786662148686985868807415301286188144781831285015892577297083112655667225071122150435111644121534550654101794672836049697630044182761135808533484837503101125135580025891911146311359359736231235079445062154172104223988068632762713146858499520048150008880186429096257478696250857853050242572289311667264796152777234993598370596439809714639772790768835480568386294421885353890097692180945440155661910282427737084213299377589502483774577396564438066703632691620772005055042098154741639912883321713269814387399407956345485587060862201161856367922473661227890332004778280759517453011174571670347236148853162484882316967803083489470278102722068231040532186859873466518199192063200988658062467365943123861019323638718354935709809044944684425205080806052331851634933162379300878424719993887446844152538166013146561301630945236241408573863668229991063369309179107130467770550121549694853370270831432239555172724164593798731493634136732784470629618408632111481994679824842564909293909709484013670412189450887000016303459689768305568585948679114585121921077342978539991038451525441494348184027173951214404056568782667467529010796075460360562754305137790454196290888902408662582321190747026480508094439521850340786935562079395927558956943883028091573613861993173219488719435325232602730311610212597459642815423571434791881091523042886560252825927862167891483913444889074285525866152910217520576149889805218159947842721018178628357335892405629998888185309678980615501739875215864623262530720824332791335408182410057330655770592750541685920495915425942664040216632957261905285741085825258331619519780533558970597936229475614252290777586329378984582222769208265745078053818243218422991027096220912537740062968912364544987801161539693496964814373449051267985870257318390401903310747773760312851984632296802888770524364382070142177940321331317052878755266191438676188758699170807070340730137718324901939882574766091358009476132435434487070981232925649198937515668381124073897640432952401071041522992067172556890013833921119168413683822228057589286199533580990786827000818434605234344504057192078902972033302827124907440340599808860556433582451352155919914787797128529405530419701663999264871968636470149716914835924880383984982740492727988570695044616611038671139443518059583625820830270745105848522413645354963926751547467206973113703731938677368849915533274902627702121321394414928227621489357270594933540090890193744553508396816986084664940956515808616375805901091339647199688882837776141296755847607196780041161174510003020829424746715903736679382863491369440382310179478995006306478946976063706198300311638648901155190182665580869173341668245553741542051646822164119881448368524988113097186591318346667046726200800287625703884267329254473840547538383903756709031095522771147832339325716093578186590644136766228903208509399723132886707508032630861707624891442761677143493905059304939955462998386567192759951427468859325582468235441880561532434512927442785706386438358283344517040149593317314377363241092625592661021826919265199935096822846079643191884449945139788066597378390701628203486503508584330071459444952977433602395505900120557010281929968220223497249205781082495284204163093618792314318237827785147816229312702308739583538521940733326241453372014304066458779053633740765524971675770814270612663922022261178805971130377161638327404613377292193547344260444141637159035146177465585499923843482740444787181637934373890756824428127639684217369860110536532427861234025096437520825742490822802164477814074670048833822820418053385274611446356451408200054927802614636797448224153757424268174063450348946887729886448040442052366488748955949306704237579495721457419375851006516555153616567660263415974607661697540535550711949181054373994618924442992558985996456882458036947249984436984581498009354757502407038949503421009476817317257776693039024494609871042697174427657102551656353157678942247100796981691019457834623196127733676101920636621030277584332723428002920817809118221586508080724335221737663106440543186998991722747839326655139664925943001857979105417864820599737460194929658696104704380946444895807887678502903564049191020760004854576546430632943036015918998866874767799532759313222903889448636079847988861715629548165817731169613587115316640532630546896631231795193549942792091307756723895553022605424540959677139454667846640456205451948270397129674520663517283916943931048940480288394025510992647423953763182903624331214313022492762556808876457828052425292352246526264970828699340252511487374484823959941924966821802882380568247712959311451750061978156431109238217523680043136055828472894734510068085825143695932068531327227976726235279706846847991761460314978272861259590293898753086765504389129209569382672612763440544374524075636435261244414496767982132991350428649626543572853342295149249787374011416878045882638195368866109247852953621700166491146801789625980473626681141229522422212362052689340757557662000392406072171969422618618547835104086435970535135789244367436371749483968183923448194464228265575825929289730469456744412596599154076089006464217140293511169277935658291736127530918138792222002336625454129921202068248154781233199966843651990806631940435665190651851017155259485624819323736706734120840793576447931328021048056304081005978599071392187747149143685862479081614434088650141959833996301032386158152279083641983312594593898153790252001388905719640730303984758596324018495914751148983292365031148430898855292815678014129258818191477078626147529275041966919168257722380396268908363343228008631124916819795464374292775809672906553039432336174036410021351036491318307195144659444086639509963279110783744309130287140673253121538144806732813676801699194909245860991986015352215134872700300106196163770680211110993794399464727806978619568234329420398711552504174871215411588065907851813281519071286672365768700306124558980711446361003418886200773522050551570741607119104638901962815204865785288540055625963702210624134786184750849501395846586884081989207170114938055464759641155394813632882275074523967345441934737747066158906416917655177519901667671992209362415473212372832404545568293543167708976094174506256991710017144276074129522022871135475854540934356681560310688890296793244672527976004289046030906927159203302408907614769856280449265598264513329263212178002791800777524794536258419239544533105222577314544737207461419984049891746043069930847452511245106407816725708399243833116610344798714175816098529401021670062587265819721628574476410138431336978314699648515716717687373294192011091054557293699662136487482264695218464661583901088930294841647899977458988852382815255911636034630962941359715773694317750180050523677956872997602179960019230540200905463586893141059495338089320705291602668196830130307531167284688824815954867796494205159971016914570537247988074309197385419264279011708066309241790631075309768540819276145737082045265774973042992142132747364752715930182198712607853180231553500144767943471394822538179300239592544815657702729067454422459649551139546470300499832244364411303914381422700241740008705063816472909667304765800021646406807713115212951275753308581382816923200320183280771969527245947569697271417633859098578055475012959038060052785193947253373334192346243685324295988812651025879138480294579552480999410596554405327476395520327564647684595992527139353815026167793382289340561653799264578514305723816528928161902459183480775048403597999568909158301595941694522769127228929774368974692735306948224598215787235002523397944048052653593680899996018930815326121995037522944983755330768630031860783944365526358910005390507242201186259754186260971133511421872142610390440585160196428030076124964972525040099137249622457292692761000675036415721767112144173162435107274500294302716704290169997778392109842014939316548952925125830975771904362965614768352331068348216556642680741492475857476539961578070275446514330310196286776125281615714249675765532011475205273837041676225630634643000440462147077239229384328212695688354421880334876040312518326856468773801688675466178220088385693940668168683028521599358006196596423398292835779916176379521289297937563440467276557774114185995606633891212065357881928338761871171812513533473416304223284421690500311287276783069659182751504477942019431715355831808261968676259236302610626149263467457464506774742128453903353155844553765180720420518137398826055065407097034451016320412460752550621307621620234629858387721586775411478642028144383786727847048770116106655076612929391546019984259192030425870884315885118676988560200437138959110212567775052038199649321306430621894769545932083051578043004726224369215545644152365003445145191151722852526779844864299858747388304539920243748614034924419928647087992463630393694409614529532686924943276554409272700909728361640755933900106770477025891728710997537250611289080743989953638215155731375442518221940773506862702443028139984289651034293257138714854983490828074268765415495535446602323638876248568937400165619717025362574482727557844363650649288432382021314220762216571946559170655266914131873571543879849339960612256017111902583465525649605433137962275453655818270558749146460225634750138516442107201835998642280261125872523111104274690131337599672699081017610377972975006624718702644600333028348992199239656179872610058373110691819740760195453191504794845635834467120923346060418330976600584635742111976980023103283869359777315497516786276890162138088630000884639539355239412503058515548109243192633993662434383783260629233643732597107695614816136000944509409145224388677939794372488449116463313707978872243951083190010147380266053296268441617823347259665095672366228053760811668561963143194334171081683148318234753528142674551187822425822348413162218159441031393573337712134964381848494407989715733226028872898664532855015572305597529203540920365714197208284132524558430496527504654682986918209449843777819415634704606310808182011468277381261248263320854345114872864209116431318302574333758538163981407838959906678090508990020593085544593592926085269657579343160161151214460057615494130118200569578760690462747028820320766721179565067250502986138945733810872923424024855283007029219173054197892773397091639255884718135317092557387573214336389506202899194337800021877956101871168241698627929725907250108632652170272412048937791948498979412124579519889938128055101457321011415755559419180570476043255450865410898260917470556244467699684253399390932195595457513357642275510814051176202574768474020646446150220693528872886216852528944500210338858890435188359887246425154668278126099729848724899487072169889419313526703562422153764506171656249059323546284225989403229759093965220669498152682845572478984677784644569073219284149153338745329588580590051413299957681241534943704230010948144526049006919350363364560172712679460080563186041141832510779997253587663829127259979379135323045672860385003119120310850650071180435658921181975054617024685307051690246781479742622317136399250991059253263094062142428100871494748895858370372059718753868133462038241756682462383999201978156144068217057570100632972502649172531182691253067736181269327443911039897383440856455971960559301321027787896594047994931283315778310307904681043803487734563870785514919174677635044167890509551513879355946373227878434832542564838528070600682323911654812067514179311046254779659867672615831265872497408719846013359260824045913887056898783568870941627455843276512689116786740884796144880923855330908514014379039112060432219744653329979227572066255668622783520588345195950236840720140249936011992428641291187731993050991576619440020739219787933646186705612383936965773043358414445381789702577329561723272997556955562107946733569880504148000043450942314741530570706479838644696188635268014981844506221412148365999950202817987523620274186837227600296386489369251117093522912699710509978957413444188118778556464528071043616619308058534150875217862240214165188812891708340328816601638019859387929818929230053061255892100690019902990723948227368011972618018875657471855560952919182713811255634273345563167751545988562497138777521879672467173799752535343924841217656453096437064667416378852038563562394479731791788743449820492263687629703716472090874246039024473203962993287217677281014862923310343869293063939592870928606681644515478893058244686598828081201027040423924542670744451463549389912888380822444721607228382900737315342951600144981101555617045771680320762885939347413103516421264486807234192045720530275640328024698813986631145238206810715758014207973638256725826171972876386678933620919466131614056701221697803046694951910297359654321468153442959546473717276806120191742790274550099799043577502660439494708130268546255479281350621271780753058422429298875661729466235731861536425808320604072431247315889749325466551017547343238789877634825548291157069429153284224615070935635170399599423771692602040162865699057842820125767038225556929520634882752971797323642158637830498000279588867760938243685375971452310654485325765158595324660395508253158559861609139109765983719096649535194532742010865165288677219110049869682368287936573921100682399854573562087279761945198803975304403376230408717319088498743233034162114548728578896843334023148283440997113440948287549047682872419039438132865001748834021128561445157856116326779179881385418898401658561134471712243509580415499908724318399701565217235330441579679464316031212642201870337022297499729472257319175634618686333212515750531136138805217525688453971986499724523456424067838150869867089551450951441423811020300537886496956414601761618191099307405010609123477044595411564895886978277089442688040539426213912484568514194182201380539655611765593790955499678411319635906310744470064778804818840450732451180897860215223047223222516609505601671891695972913298527362125984498024499821256608479491452572643375590421514046403661910630311884516565647623031037510652117625405930115001563814726856370688437416691092867683502172630093865576631787688487448017762376050397475655620476248308464375785668402583309204383854702534243188748151184650203366964227587046889309292236522051064546679422824048139169716561448502806779165611988908721905360865333611696403073115513336279806849339114679030086101979824243336362908439916918540201359005017902295527758662977544898767350490148293083270606003587556445358682725207559732004339693029942789118075007162737125785185796020284740684007047307227208100365252591226906310317931150504545210338482702954177782268438367301703487639574696902538185056145685148608210080025635887849820575563505983363079577251661718882097720861675209605036584239720174598831766037642255411595117462087187056605930709413250010893771633429497546607343581008978047609368820155778019863651047754028530165486541875816549723522641041913935825911201969493528328534403175804147597614261253870964349807273132783275382863017201959545031509970871995537737118854313572060749250595015770069585788167837289571686542357228085984825651689069946988745259179683386832270549896870985135442866304196828511605521445633521231439219889885092600736604834912947030441846548166238974097892885501884944029043964503814710082831666794117803448571386531394608261950560285205302525409547975898036397408061002519720173286768687627356466932280302726235175545132999003635923695318777547019773953473190684244320483574365775838144785787928347341789729074989771525228838151540678154979386758326263743930797616088519371343686960086682496617129191149876509177284293708050450737605711207160795978658356746709940618124811026034914375825430114141170721979714052503894013079373444723307822375746990152670126509610554468597157396837552004340575454353380172551107447974960282201570471399337853841300617723822344420591651217019674215622243863603051093004920950059818854223622306631249313571778733976865642603909321476831975954943385645757469786894246802556059404303075606239147022976973026488365881045833389613227821434754068426034793404633248426667574388473835412976132715344058449499057126603827890086307708982612505815022578126019469397045695828489808569755229239435776425299621420802874076836270154415522500743099630838893734140956296259116361509252241585097037772187470538946240766937097469406993908528734753935036827481159594224001413647032795183391506860582245850213229771719189062570498053243369949448149715646764785253591564589994213319094787939989125638155953061309129105546415497048254294749577412445726853905998443938715788447814521500771184299153427794810935249174801606474234084431280528013089974172263297548708502980922136404032496355728395138371564158622436117091850877904930550883120506773666024200304326054190758059430500997852190498651832493753901014333076271358775862546962971056394576358237079243674324058101843530365394549566717255189104169942114175360951927666336868464925569501552063016619497919047006755607596963350893612580590782048655712740548126512283904662524068923756667838246817801955479836189428298887538550900831635685295783020978678699834684948443847899527074079276157004786688592337184754351460895657027609581507297408047920844594862386628868660621099147627524463837004986609366843691042069463070830174109345472130001718041222287294021928983211752483195209412554892751682193001863626646717023773029467993192495309075576650357960890630734039877393473085967324685578284991775118370030934591328351514233207546951097404350450429823729638439586204786247040671357322129661697385263885543946965077372813802672569897962796259116186554387807405402016857056086498724661154496906548473006050773325140139523500176557633393121590668266868451012299835788595752287757138646039931995598677238828009239941962284868047510790105483023346457765614649559049315655168968977329833915174073570510187543282930880490009429696428632686915058056442770229364270521770790731149343261259139466811039201062817015892499628400209313331146000829135417469808828574715657765925873302052172141792826824142123440924372498279560468950752328440735329181734245110992229517880624750810168685253336485550334267454389285270958255582492520790872380029239109232599995577478640511934931744160833689410144965768244366943462313981080052626812438365233013732162516747500833163552839831822972244653091492514612353659877814497786160732433010834854107988495155376466561261590894518982102270737846431856853030653243610513603005636245267926575943047975076030866123109666147872152095769183485186101682792559085771427685975380016924736131715966507023811287951538756951517072444371569471996358161785904868719185400654157715234108586828756835443861174776456665037841826949783837609494729034773983549490718587416751312637684685721743105322665361630237092708653905084757210910297066098859198845933191874475420630494643402686156140440551942554964581134769665934895239242753266264921130996545931434141233579790292744475227561338126492212723557599281445895901595577907014333254390462167207434075329060917994737441606399449155336722896745013592836559058594106906422746930056905696054693426734810356346818281764918562883364800375159857507467984624461193580072354995210808600795751846539774404503739522647573537564388899484461434941667424085323607295569562425431967450985698365361616567506538939573912781108491910885655947851460577239610301784571178228764788251278468335934427961798551888768349234409506865224527477105335899723772484592268086501286193277829216212235632945375268777649718402639092881838913460449625437163266266419279717403777529882062038113218544517280862612248299267252158629526626552553799581196466878626101469684063901407397132905046959884075444553080886366723085056092598588814868362192138952758339576648295662565876424683568699725056121686720881946338772072321799394039074795733978061501850663468128339434534387851742129853881620104863150783866288921649305936735121690721161611515199521287724461584503932522677220655167895605678287906883185270559549169457899366552883091196643072830940029172331100241648146272710064579226032276853959511960492357683085688473329417393120099246581098177119471958632157208961301164475802544396473863983582184522332052114471742139437261996187133024315070084617442106720045595755968698467125613977011145679758627850961428712205479034925168594958771603986183884538437561004430002168057525211320377219122404540906122843525129182727350824612853134973625458501043700684539818747774858533577163073634974681552897306679570094987269650734174337120101812570009466407791778371055240906079978638844137028855409117430197366450807541625662288943454586453323086281310287434300701586521996371791813939733741019484859054383469317090466982873431970042291197243197315878390791654582901768864298028161220558675192240881141540232257216786626624398254717029655415427798195958737214995969383555884386383008152566915327691251841105493898559522548669684668865520469886312822846191298999518161668422771154036131784742198096135965177941338844688952439559944862254416774222621590265158147995297552844090282151450352434038068529186439865143499212246600882300199413899124164262737762519156088445025727310212524677690637825203015969961702344525914674162736209261927874114210825646093735327691686117782238997884958002254934673743674177500919113254566996702175187728084524016127960403640698482841685076055536991621325435529407725628825861357616970804145729141913778273883984760027518933642851005887427548306661060122580012921536133191877448938187509484644443359462184798775435276577746440618698613853391658058400936621291058479250666340270389851983038963053463977061069624627850484201509537119104466458076572303883562090467950400825569735711422638648496769222048534092628958526351533866182581030463740271274044791636983313827227888687007207708875402245313785652664339363181744963430495403643255453721690385613353280077792969175140236309176981266684742148353065467613184264007505342713662557489914474063970064175588188196950349412579810835603043833058466854744305424417684033818635236249905032520287528932814318692899794917915895356619974951675597520923896668505729714926961132272859683703339658800768171923510466135316748139060977379979569768952407623373525977671813918456870814568626468888110301552520278209381084057636423698922522295009477235806904856772673585249162877506770016615446884401443616977520301536574033704637354745765690716271835633483782995259928842481513952149440589851831688979232367423618120333503257840707191841250990388206310098229037106602570513482582428300861890870471145609775942149904438252526202904856639486651348628189119674412942301332149787107998145392216767522895133357363140880217806617132055450485121694974431340359406748391432584409520454216676553074385305005275723170620314563960603023446505224480326520722879209634607440563486533044639408961175127951854804155169988142534748903668699914145987978336726147028446740091373162497217407056228509247227622247670693699588557020902326039637411594887444196547584755289465923579613303777781642975469098663912211795159596428360560385618363270185392345100184573744767217139545185765441914802563625909953954042578344795256399191745140327406522427920762475499125794526386631781946661133933551141724630069580625570429835272236198527878844254744490761335667547771002096280908078038445289661684385484342010619198590751929973452866098923159867169598839009703971508978661774447254775398943903391026499250299760749986866162415030075621078301564389233392412694523686556822194242476784746368988695834139009209308621174991911589780599339090197905581550759605063037253153859916231754592559651164081925594771951881339064387349492389933289703995346741911028352431216161524664840361688454574182769560063138030975328441717068829476882537221758403770466937266157269626911767893164348131741615133126307147550389139234462659163895625045115342263597554853143605469476451460333930899868233575428719621991173293465379454386078535628746590541477934356724000864633911123534628456133702346075608532037173042335086427985165590597401651129236251766896319464062222006471886053856638692571298146128538822658854879400933358103762226941838296402480667063535973110241484352525983968360410295587249688025902865753890237852481084019487237339774333011412240873962089559894252075839367157182687051233333804983936189557885677694579471279537961422377284155718542489370737642421693120829379573107127531502509204968310500468495248546847705303456673810351441520035717747855240619789308728685237498919641004691087029036805132471629263698262434741513353276257737063703343026120626628509503811719893020832653335476426462718227771237219775805926992230162816325206412078484510435968929309010798164990690157385653816303930956688137402650285341064769094193277384083280596212040670738121860022402982938243826231723598694924298634568838276651498549348559426292713777512836766060231527873952728667769057045538036450087163238844647128127005572381300313565176001423635907678014042241219302491246882798473833497135889561551264176198954024371718297877474907634466051164964456235941203612704173340222075445591933714279172877279697611931508040283412845981929430711987380424348925419979083595058782595297605928440230951137750717899585121137210840422241721629803189331901051071425262133879865036703796195004187703657440477172046263640699223561878741283760938045936083778222491640620473967409474327124845542930026697179366923808786144750898888176946960605336438668282522170971504806355436686208856128623973694275005050037870673970752061094412215494139863063168612445227689834771939955084243110638403038027593426948239790355334552359851063352974522337997743179964074326813042072927809116868951216932640877825338786375410009290850732530572100464133447984902220859175929338034598887554789470827674221567044863901001770112124441324103945484835908904056119900136000772815221865053514091536452018300675920563998710491066771434095058318457793933639994780063532117116154736325828580023503706348710582723304080236064338652974126866901297664458756726615357409860155970347671123384158270888460560076127991623669155935180469781081266698010797702633999635018122908369842612104451631862704047611940786888217819263959161418157945754485720054353034366629165107756568171232243719016994272725462165592080136352548310997060126611772515353994775936605073339412193193638323765114146825328365731108235685885836040225901658864237228772323554267032004302666322828887044314970918706218738332650201374946934754692179528091597621609926347902836979444367247407893783762881620289504283728612827320814845905587263418148905728989147755314085602967387863499224912668385500097817386141240959251938204986354545780650391577076337160184886186660205004228173753140874042124602115277465674195317579932598899493599847250755009214113031908749516965880023534588508552128183843324111178522794648546813117914502238240737313975614222998042694464438162256654096473102619498496554671023104966137592036094404618621935389251142487891771361994364158716770381485059948905518656081184992885001515796707801677861089156079317211660176229887276042605404441078897550228331374471221052865540976221391610132019915768805906832041398949854739047911229074472564074962049630025386771025809088543613990148393504245814096340055428548708956333171185848328004493716685890642892673808391479604156220722904625305701691776853008779292956819117248768545577166910685324337053805575670371408288882601170900142519764498569446313882079823860112116989110135093938954293041668044838417713588522477007682296322483215719816305781789473902162898669675844868258061674228339237100544029587362022750337800971315168624991440874289093929538364357415762928905078541421495083228253209392509776139587441950962098825987191606131695558502827205959888142460307275045419454259742215249548636561117596301488708814965674300252662901243099381383789974977359992853342822563263895400873367221349311319075069549503225851784228945717857348109067968271228839839105978791376937744175734115024687998653724562177970801285667432309774007841765852096907754451231495006593745115004940773080104427971004083924056467614637487668815990561971426966554663152818178672622635569672209865409318729510778684208134015683072044442041010559206791764991370200545633330737240743426673220319491594580376643919416954340644111683568899895434820619832070283566361102874868306986390149263440000972443809467024064713832320413708287811601463642846800281124692367341141005364977062605561598444371057537969341174984670228178520870921461710909727570565540385984949210745089180132269639761386206289171167500825381195958980138496766466834210385840547264867746516601756991182889416279767072940223141238663687050063058839432715144311083814937781440651090774713395981994408143316375391453307532200595902024555328209003973741637228700830412538551190362277463310130213612986263173169503933865330717988881213352330185689070710116739332633483777385124712491207713296745864942212197179736550777315206078754015299215894271374917996812261448909080080293455523987069806624098704084218754002244072950055068826759847102868334701581901227876073636412912089091878837405066692035480878596725512975486398705804260772898028324374150801277270878068247066478238994664213552939396559710380817564071037401723398934993555568059616584746473485865472724408861977452646388799139428651634191371600584442901405163855822106361493587631049863598396908394837379512318867068756474963321146962385225616176982053512590342651157012257171850685142955986515065309040564009440654734131216196026435828984253821145416155229577893206997803329140166325416983558681242670556047519673381260035279264419345372939048130051455672703143636557168148892319998636731416564438842996420185192648144398066430270354306578112727185393764508517966933019364965197321468701226409208497116088869848886278784869395948030620569620556234826356256934697301840637056073922521410255595887506926343448986406930305128088439716028632740995296651752645929600242693066613337938311696291685678955518525421430612135428027462549749977029466234399302674277342101154424356007416280464382204830627622696752010187304015325852537674525375434272169947983510302695481746917759520504155744805226745945140421962656076926948046379533856026740839410359510960108358806412531864305456288791664729303596759987162369992778125441182958361845946836238825235207735807977657907729439749913498795433411657304241581226049613547170039366979687186973817761119574324447322827847821187937096133323286349798257051743244938299599607748012027574837904261708374797193495774142426056867634583682937305880296267269009920577750014929262422554692427149300637488193056143101172500874582135198392651945652043677104532038913684042559858546189518745917456379512761229688054803916644266071285952954042286558395345769541383933593063845343362345766708469457618937681548434505803288557371789057494931589992762585734452443970716515068942798523571000215458505979351792600209007568837169390513796111567279558267435760303837359915620835148074544697499374530723982191906537522098187953172648491996454478660809568488608907352344908058553734719436150349155211361267291403947469359267928846930363351678903082208998876277462811334737545624576352940962054281596324499326219344291233665017073266465303096896153851966658559334760355681862608199645714980171053649092844726069462666921451561012636509389778877302576948041882395841960780356603281865304479397280727962586611124721752937233264774896356766070739753845089678984810671266571820732804979874818299884949488847276622804961756895836298633066759259281080758074759835494065133881051973252891642378580668534691995017019079967663228069983792869572112277725668835282147000857956802865700030243339390590467838727070396022097667085483033278822937466294377245899070916133845973148994680492696477348363274861544219150050669252514302652080516146346074703370456979865925608152121647023288488659811150733618009372936866328989959875588174625411718755089388906438072075267325373465422186865504566793166819966144621600266883970205642860115268911805297066413550728561966698628693187927412872508292605438737752594731718503623277827772810479517756525816237475790159615963314789586968594775443022511185154572864012690496063671014183004577842371177861480026525396865660956604807842920346331350329876602173681515016356913718849541380815015472657635563934541749982290290730603559297836288717423615292773553734107935609899566772269630996362169263112967511452118842061427812825027418009064945715412657762580580372196241260519345660795112792729136933525631988726906541798163798115712041875885043376906737003335115176739852186446309801051590115109505915544964119016851862225415674682813375653640625571365938594929274728173120495738560025397148442599774780750394893005739931752689285080395532661611613826292788367425378950729071803749798696169419176781314358208160070584707669432831748122986819897873105051580905189000043531765322305513389882579808395645959836628643095305240845790201954596512394673705457224388670986532780897532181868130073318300852920386675751114718660258835660136454133457554204360785891156073824554397176231175072440862504166395718175067920244576286501148872677947936360025881330420475780283107280999010291946602912965671372859392719349857216554518148620522375811932980669992462229966928490612282442677982961088384611650902505553052856953145105319130986795158421755212129576936947406278239519744394983890054724579111292813630082053155522281156065167914353643342458539524763455985706973603169152855069583632464773298082977009081392903193515790792303821762070421929088534512987220358327313810970068204982190864161007486228841322936401626422798493964770788410433700781297742157885765707906005711934228235611241609504021403138117982075932038684207919950022904045183584113255217890248591706072995177266003055113943960740634645452050256510986192897502491884058819210447539105472476071945052557625679370931105687766349084680004202070955491754265687366139757945901150974546746204433045928333628839741549812186442030381821959923117268863568164675381106735667479895027782207686967657664196934234614913033854290118603983998960233944417922309422642478036625890096279542049842180844811873584542853033608732208872411617628874947928196603764688178112974996687490567742827065536744358882535139408131728092069096510135968097850956996787176196980365379109161541385681874381455124924639593624584063718211016665241815645693946863639605672546047364371063958368107103775433018034841187784812154747031896574790797737437075062677275805521969724508679007351441673624262298617081749693022999473555799082773229945774889135427253207827886266586997988761548725762455813724030411558892200328691244058233265576447199160802839221185186173408372738313247121193997967547955955474719176198164390123388510884293508806169545904830477857361228597002385000846630062416757293824949868831086921039250371791254149677242674744950058800384893363249054345939922018099855529515745260180317469093988842682361696547274001235280473397073590881161673943037914966573352402395825438366507384717996537092192610921234271150035192158141213498022531419881886858650951679261579933571618058619606279698328907491405623944489983074863971008988611025300542673277785957497389077391300402531496088636409887661745734899041909453103159395466202787457732758688032953307508367113270463200471459341251518759865174670337512416769131093211947919133230301649389382354172578083414269626877842243432940661480734569192778317065166637730383983271697592611465393929641941816443368235886710278282466945534164555468953045900670190421286771100219128434225638673747784407920363581094135755546584553991757766784150432075578448954339681601427987665453489653098301145398918970382590798334743418608591245633940841118480133711127512463982062620122528163541380185280901285006683461877018600276310814332334994353080392433285668555736293909740944313172038991292288661376219131723682921309549416725990097793456217572132472438648310199929242546867432674618344929749786782136620170828431475146231790967437714329412356635761646752470420012444554903605057744934872109660696596278156338911308995030632611516088371157687219376607605100932599548101322281015103189315343500406877502020187797891744234015331915299346325485892909222643560163119063458566695791740730690917350656966371699292364957010091530214177726153594305015730983961422940183624287437173683694799743169701613085539082403911007486749181966939204238653965143691037139348361043813981119491368498441984084160236587214595150992152917492917840838138453418200308965853786765471239206700154975397850030480905490103256818567783935856667833933350235189479300176348553846430519104663088540271309110649220892133563845589547715899998766870035862844532921399492234022273837769916775764883010359249039620058637114082338287104145838361577705472835638400805564348104076835250766891932626137063991540248891456116763397694563873137092664430894309231792119422752932004020475078741488538261998063550320864288360511807830123152083983171924778512732973521655453426351343777646365986963071075943563426400010370214295928222809381606576569848130145881331407772651985668337744285983664037602153181580985949458393188907854680822380083898971731421265272107333651355801559827006473982678622259883161107485714587766425249245285505046835206542680090633839517636638779979990790131866413930328424428639229447674551205877698993006588317175828245521654332251781552778751622952397950352179072025260426773654219898016535033962222054142094941674418664551456770670085650047242508225647060183844252296397285400186880998467928527228215030261747198334961428156078714583547314191320652818727575980452437006947037584710749795478978098355040836401485562981980979693768849247168281823530840328247901321262334437942574602706341964274172842076254880882920803952895336754497777685631263503821938005382601571128566751689913322594134425300687396399315408565155112284815877176925094673000800304396469454207850031045818462155462853295587605267047535353991160597566282780775160867257940432902221121507097540236728568780360862709570596820156956156373676556579446474187204814193168962841928996409578410814344837051765399313969113445264471146442630561404845897695417967880127726348251033865786424304273794015581676995746297020519401862666711033835801518060319028721083908896378036736017907513140886461334009068052363935297991958144016990512806297849271763950385657275339646039581814482977961202350936764309659217251684280901276900426046410044096019282923054833417586007796047344210902506890047846142081195776777473118189216084290552562302926956386423490150733516878525586974222198139162032992944913801848497064149525267638867682101666150759272447025690126158927654165869121695812404189583414483717707760443466912913891415108315157998955239986966732514349766274239340729232456837112842565968390596622119200173832388757184321754078624880486240039447515760431403360757639509006187190695180178478324553789734885805066601585263234743235584762250554403945273024742196032984952684572596261936286409255033630790419764393110362713630168507708374808312129991135699053442412175863269360115408882152933890636236375482771921084799741330195576796215176884353449602295188571918444810228085959883532453515871426605598677345938508929169739500470105385070373951810919061927016298899063075894884425978725685981487845712685883960048406582865499632788082397167552324033561553046312434950339974273125897251956257816131373652762352343380440273761353498377112664756191837690019957418076940858133338578477598675618139282510259747787768181914726724244558873751169836022389674896672338385248132771479771668332349410607273652202802169763578526739775897416679625105205697946589505188559170074826738723432126213723881222268122669300894990920743270917039468757636563457779660237969599164643013767490285879042366462005545836838974508624454554615011745802895780391877560477686167308350999930956312091350989145687303616329083856954547142089444345002890917966325904784954335146478678827387648773301086498172317277230406048926102499972016311039027213905145024590775630726608548428647206676570683825971473306788612045662665904909160950358720517226567254928813886836842611826138664693379006163169712483134760141389416287803974676712123975720417848490922658857486766312727207148312241850485173241815507427496051745279039360749462446490484895742319206733311826335969799722519658567492436685213640538608747609906684113466895124483578019547828780354063721401290409004449862707601464763034824474034058076855909237426131521596252242181884900357341275073115813588716676182021047610948183129523749974009969336287457552610852012522771762516157420774486127192408747999626674736082236858768238601187100913709387272463613412260882942505157936983491445993146489285610008661901959006035050167873315530483398436121176142543971615746434423444434171143577751938576863715479838589362087588163676628336812019050363097443471467109736961009596793509245805055604584231462587619080006037690777052389533951816745625212834606681055800088074584496670214553662617723987536308250495177580600992801865698965023748859988828159505151343695919678390383325847666371903367837833397210614406503095654466220513422811419247960044836188031098404324328509544037676221221605561862152621136963341457418337960402897517807469445589396830303433153613588583668337897630189615357379044190748151116577726762855607618322033656161560998700642425715362370194447821254043279049578169901966469688960716531593459907857664425180656830166589192872597712611763349703658403564425708627081118156698878442123881858349872633277548488856118312851155824617973987413064084519622532989735612056008624238245205893897250882987844255280067094247728383940178347448264431158546374669807915759696791376222506870745051219661500591643694925908586708204402133922594435786256350261973558103633126688865584593884610881728778458706298134151123605157844108082143306697086164238323988138799956603521085326648506870393819388742768694174714237196460998010428475278101760952588177159784589655189476040822550797521298434983863514130494241169245701854865228038566969411154704658881020718796773991295908129627567849071969503101689888372153539700409010820954879614489818344750292940940160385150132357511666288296975456713838341601819956191281388502636349657160916538826408197251948056611655187473019454944349236582700418207715562789950089438956519225471623339119999048249719470082734269450434801079250750092815030332839293805576748235985657155541513569043583657003544153811731472579082041604233257909819491756284270909515844831165840003083576798335126637633920586393592226032995218401618065531363680407211556569131066457126676266774136023957856276904327216502308472583823663991257392108991678409337606050403647157580027398092023021684206903167295279285268292456104640737095303445957694013347888570713548026020257013751731241484533569428053069183701569338042829828418993354424084397811334225801755810787039813781872028735125281511981236369336295956835187140845089332404493848861632339309564408700902161293589335934843892909060899402496803415379187917028920419166001176085695948927813033316067769742021209087443450964106888395491115597675523292233110961337897572023391823589797406532863295731247432889369889727364510741772703153189544353381157705449956680405721965170130451451564330872156165977601070835593945718969516264217952202225440641039426489227108342995329248658507787330817033112691060233554793718314047384514429714894482918237006349969755366187306521075217663286551351943959304846264092489857098140311355808670133038840657501856319480032030909494903367305358089270428150399962373768869486393726660485339098264318238250890780995132431287837086467969581684137373989100954395308786519781081359942559033820919926031280590136741533754998666767397913841354076409629794836186541142053047166743334946584806344193228873699030506643669443894698557783336596516438434442051658207335843033447837284910509585515845981867434012657071060834121776773883974505052175210075851228934557451059837361289405624436956800512799966621591214536058745088779038354246987045787128772167512536859466212672765959228737095627238440870882936373885450107769447158211765830800024519014507914679101854748387113652104527307555855520488584182472697705743861017026016132359042838256419399663874047413005719479994314165035247191001988471956808014692554873264347449123310310782621261363104695851609198998963521474341516788378537656978606461856782944501941502263762562760010503622080217825351114172784995390098851960634787376030973628201921783881879953661506721627065092961219863286288508367000633940579595290489090358935919705924890075432912157622193790248426951881081311712524203620998654574812834488697689833529667178923379086251756644267469214917046481930375271999240580893332243830446375685278493588460071727051400343191940003378165106942872290833229311685859839372985117740065204907562082896285909632052378298515234537203455457536663657191251970814921947671228895459570210482758450026539833234227650622929787770563584109246805182129044251137605452404442608511979906216843392946693485732692770532726393100520499910603348507088279894892740477697109872589474488227463107136121146264845323232312266466177346739091262832543628063220299140626953154800196913110152660315316615116897507569709327081955747002187319970964235836729685477645749774801262882880073062871919930085180150804205411931267968188295211679940870461104708888802138141792097725370301911492783617482994825300086010221142136282727742793559000867555668586596187806794785245349313151274778437468215863795671368031923823153238494280952384232555075999847959378207072858243937069255049941134857666253536334071219858820466230183343943354056861854170927943717775961993284111236058655717793676837664762045057000721454265779867262189236459671758780299057163187832171317960734747121691613789123119934335334530395010489992589372881966413794249095338928840185714638649397072513442546958669636024468516510460941938271704060134593318954676024989976912197187893622239776734827473639113529879459509078405610553456184668487348661298398347966822878090177766595154389693353182529859698701355945510566958538668573353578648292211757974428960978050858869931337291547444760459994727573657061986294525113669209346891730706916585366894673879529691258045424367704519098269392658988503303708078236267689342026568606531713268551497912035357341729778939116314814082975764168402148005231934718945048279620114386050145320042440243276773116211950073065492710641765443529648403430313673969254057030934310459011412342349913488664196179758374950618712082218696005206291216271854383377895248145311290857789708633398481695352829312364032234088939168338433968425442570304281418529835901002410828553768813301126090252024871600074410152104322538275890339788488276284076117876174327151517912612815147404590427518076976036717120378990984273250620724376751338120023796930921506020910391819202326114373432062377824351238322402263077377155512563106394215738504389213627794965251410361283363054098815227475593822314891833029818335630341301554012251365112098289859419152586380958233032265238702411305748424216802712635265009567618775028572844055216466667463519008044339477884602861395533550268558786289367788314971539922532937539660419012833853393560151485641731077479418117137763213804332707706231981680852567036391214831432222077911787433126653148293187408223533264694092374095912088687886785055094016568691128061910947919121077726119720568451990107953251031948671732104588573704399324051585110340180939124476344247203306007625011067269642134838592999231478700025154812926818710852505148474664607055366484516824616749862172015292962986189534947949675628783824032196488720140199446411074273293401967405021007347328935475344509053895288294120682913273490552180896583244151743158997293075347098617556379102637116829071192222964284491274332148757553592167975428242835901400801579998690965737127675455391247917517249379103756248183058780178605536993135186459899610487879574473923700460521379273697906860348206448255886278498504353707961437294691715079073492225736633368776450989719506947316333776012866094267621414829170824238561561385081871070555470687715716366796257562359468203245353699857152359232653684616426894889062335901295307248704741585840915965834258975529942458373762017784042511768816624409310386172268268237905783895462649747854727842111740762820821321975812995454553514338869438203118643918369444318090346910040165544305350923740485913923218886942843397611652993358508165970310508205911087666550215404274859925902999120620466861827932606750903738987340118876854353992581947513795272557578914438953789139376283462707465192651500893707465783577979979958441225613602009551258823796233141637840505046443730971809533158204946145692838495112761728883421282569273021001729593734938703424019131614235231476058425039813990106576949016004046907482015198572632604389149463798010261131926225597099575561203901777089797448740104609133214150881337480275784566940295125268388631138925419000698790419592311109991976904936752053457738895401486154355657188982176648258855633142095798008139002916656435303915209063773376421564713979491530743476544379453832431831940520627228944957187267357865883404953414971344729523734667543506721889662991105542084961161250681169501856514188769022938833936597443608845084585916624321699161313773171846590387806590208469566141389561602453833816699332218142485486177973465552614692185131797930015511153287927966012871035708492256350914213608572631740396041398734221328139206122829163461762036190926226816858758304600807763231027803339676811841696929975802319538158138475535830089577679571355589628242705952123979058981422363302549530409104857836405571370650485793747766681658306476334902519840758337682015074371557514993265719663417497698066338079059071031123092751594325902979642034321759604659595112762106217719436498425798787649572051540050226571668710354268346365285528506559790480214085867610622632389966297620277323436895663790943933306854011435951328291211855781351588554462490949698277932712403452641629006143884232848750976568461682622195328102391367110060249943766384386579488365023278022255308553523354227118511719921888749052767984507646555002265034175692095328058648220147866366639276179739190047451236001292550749714091450546450972223779747537078551375710458555430416541883534660363999257051575534949302245586953423624116571325493632274113952755422305579354181412563864216143452495571761801740693088841069304545279370171322577215153588795821051132346548532792032436314804870008774544978575029101587707885018702393953902119072434243646098197574456298152232681700479418582355327450243571061915993600326887487426312722028831445622904796124613731645662490959810373721252962549226367852032503411062246215729840092209585078485425650828680184761673934160049720181513641223501633899014213348830944677718875161969897386747373466721217000620428083007619073337822699575363088756748124374275433185912473676728240284263960323259759015034350956088488312585236086825643071984113846455909573982433370382970352014209865872664296917529508345462068126720595793995155914423205865799546329670041283818002731081473871557538059393427152541928980502453293201191595497565791409770479873000312875775656255672025704971612653581331960169806182372174145036017982458833801591962020221315713526978648881016030782447766391660569733337021175564739098187590111864279022722073482072351804428495729443869261689015897221737927893195661333150575359214109506252152854300275877723129103563861429770935882489237486314324729854860544317569174704640912426773915952726472247521190806539121539041112994270814352709845336001647521955540726026021315322908574624766439236200406038323315269390161899070685713672008605466598016694376589879569206385588506196514781744029169386457090782423410511446506566922709294248476902614980346848425856529904951697004329084961196002728079142037323644352725235089655678974025793176872374993271032871531605553493985284009080410927672221899744812055323764008017129389304259248672489017044956358940054242059856062681990960489454769188583508132209690449003214815509739998695940720611770499413653644929519710381127682806904342645365936415182132283734624379897006121657079197569223357907845686125571434965585440505910181696293831144250410699498662198800270903155183604638777956262278858850062569619983820827532595575507174463087268946220485025910144636707630466025229255089587366262897445150251008233227862607705450920481511782893024346838311277223296880358709278809149912971630126445870121907874440026083165529578458441261112343799116218402430924488485979452945894638985717694272513227731966793963220571936061988466136827619209970133451299405932102527468775902056866484643315221346552662186615770203886008005807326804448766795017556986482379864464979575482514382036287123845100173376194979746349000827256432498497325158234796173568178656560008659333544637239595249132133761244480028835242290605418124166888236614586391405460160479552837140871398174556549768420358978176683796104407018625674993012877293468943419325807084397599989960700480169835805115505838810289432217924143086932749361128098259625300208933425047483111956606877924889050370873079195292562081304157336847618906301665644463882772802285890833812206523412866017626996388994912558344623027293183030774305425713528301380353140826613513684878674212069212006921828132099868835835351620668136377910299855487584183079467866062116502701329340839333474426762610544023742099984929892888345643493919778060920522438939780513540342266828951262927596787667294031833441246066021727390536268624540096106474256467836160695703845286850211353919889665535687097659797088898950525793959193624399594288276946260845639340546525337906295372835369112035561700783809880155401598168794476295238070988635751902641558235862893539768050613288752298882404767241479344811524733928399143246615450221048201056809227948304807928644658047767311013337935460613515104377714051964312438948283207683634236589953262265956264848002671227211440493568150549392697938267641306248569322644644216982501524136393350555231560866639338772519202494962569445276934442844101593310417979889506061650530561791281768946149614308698898821525516327560459039799043545036401952235661737390865159185590782720417196395324268854061501053795295778168464622661950104559075164740188163110112762274749599166652409382083797412357017541010715553242646770221019647928170947786603834811802945608044625482789855345051050846627940460592934981348974695375040684524038684760450029290918029749624357473800798381074847356228329092648873228993852147831357083756910938187313873346255731725248717641391967378276876127487448988350457319861126105766321070537280166023628904925457703451394187738506094919430345203828224199879525783251413921025239200615271419242506524577768332115921456560733990823127945829451408187981264188530291122194037940178346739402449696220262111926287505976020596488842176738692891731132657274045801794979057474691847057136975275553218523210227352227470254170918014805379934877803663806845207074518052351514819700982424131507480771946344987314897207018585569855633431823331618334548617210810331900368111429782993452571909787461783771193563116268997276322497244410064280440975282743071539790573077573919333209984703386402841585538132862495225826483876155501490225168189977253989629703863091311510617077886471796593115668496483197727718898238944530335418116187000277091055125033310431374155283689133469563233998151969512077099654234029460683585882156221254728627840682305083819739461860953820175618521125530954371941350114203078950248050980633149118025035563686985384127009493814065718221387895696095515492421495155585399216796472100837239370631792174553672881964791913347300239493322960656645320346369763962383349556397276852655551045332955720793216152348665189692445686802349203581219551027993712407859484124931267546590986256024045754508185296545404311337250360340222225952191297970823516874832793743378536632377342241023296789753507557513044259594207786937621575047141064766556228921101004034221153389993650217253062436585094496526007948709510796966515857441532108970456541688045229716810467362721046666952576129970169286150099711663026503226058783290096343422653542078792127578254594365595857419499967808843905254317348433128286790323727037725981849549098764767646286352688261691687528261004594258588877400696050542606867029917824072648864217129847381236961654731652441865039228663376848978950991084930292811939593258008437334486683730892863425743844852578202712381396458521286932120469229140569859982507285676900771003770309187877109858762359696369500182534078414889632639044665058781813620021584769092378041329459275519012019759529234988789240295953047682079777793740536904133189214843134878924396761493953111599198352555005173398074607947510510938827838439618586148182239073828629250274440473527362936900599037384915693489067114720216928716021677734447765922314769646452110532102059536069355581860030068258434879271140675697024232525885748144495839697810155439906932301272980470330514711125355050820238758084562631041083636859538958687276662129152839938567058391252770446321777490814192624403109490992023982336870519472591138300577056484907034949562802973610647594330167575916346787157730985074194765449640076183669395313926349231565214450971400892106210815967159588965887371993206707250458346784752002935332027285684398143802476811957388406870271653491353424380298771960020111216894252352512782616356939552960767907063713801150674156081936777939526935182764453592830356304367277779169357264998632402038858994841727168744489302104803286206870607503966820932479082121952848993141921902555787337660292798496167795399683681866745990508636530066362118080521102632170586608483616510420006809391273082982548248833030363626391232957753846337360115011399462422695844531407075967969411525675562125016521683720936282632031455338812337529584208473924955146379369143958402762922876123265120376637661364008789951733512141324257830421675732970545122577042812831847228254671643326799136419705280476605592754317220763139260828194056306264119480723640653245253517274843621675998714363368685427010995309490380345132086818252503340375602978747205713326595266402054569411487989927027601465897984856408018721675133237266057921680405592764885976723275992962822645656140629895220831380269966543341909971657270903235033980805713294765573743320902140950452861872557376657491389757568019996371009525290096237050953243771519612998719819356719061612941025311312617881600848569581650434942569974268980290166339065277151104111157191178896965670402320268713941696196233258518032214442391332736678061040512420134058753431350182252237757170945481508558759059766627155537798510577221569553460624361862884142154221885712140500369613136275576111221152108023781337472320757331808327051771494986437628922951004043956940986550991134966199270556068215662041644266454058064433959278322794946730161048834942011326987899426452630147687193366534290724481126438376268116397608620350176184555032064857448008448994420084468122012109678521549200708615806025548605570861508719613921823367049092671872086087914957187316701671232139715553473279975951371279524165078361684142300635818891548685156998094880891699787446058372711937630979485225797869262690823860976531725824412895627024934375842926293965084571169267219660533343418879400188551960253333544235273304187932630685626236757992272829123837664221859962313426827538272906188948170906619784181912521424457765400127768088365094007219307641690804965457358597215455940943278893395037028335957675433920014387033398136468155566593113703517467237384769686520695495566404226828504378254649085647535296161571568168184151817653799041631838573588601854582478594503229226449024011910225064064835725566013059734059718483461583699677008088504344900393965620316524902103829026205204943151361387305349449049004054276132317539673493783519752244462986535179964509028384103030067835001658975915768054274553931770516415380792357348848121509165358079624340771731453935034862361561384631732252545224738749724714366263234475567733101184114843396953403025209692587933016057249552883232560110030722264667514555949532953956392586510905712947879684288476208165795865149531201374957283703357776934586671076536459605518468541047344274921711835033001089279165231046733731173494517515531420703952060454768051344542298667854892683934498057809194404551443962179016090396648919352335176300991687617641137336467304144784297484026786683718014172962539273957299586359471832002288871317356242290384798687808405891526630201946058573921358994797774743747550341441909753054822037511597689295459926085900129568335053314313498400846264764117568783602507650924591128487476479869088409909401698995443804613460511287088917762047918632551359439630743580451373987237747755476614030715611164749327007878253936797284123152663709831863875158103620853685652936067735953717939980007263692631080456055992727710233251344388903392425999264063473846244543683812078873765821107971452881924032655219602049801617053985852289040039285955286431930285727734604427831724174855227146566676996777648059254356186997299342061186111633409729192173120627197518954583263349118967748748000686725609750298048099019040762185220978351325742282268563078213155210708973575638568451648268087783353838119666635665150193160367972836540361362011187717680611517787552542388397039750312210250611487059329327929794436730953818833767107331324364489287424037107261240799006395292515633639981942217996217021620092505206815446154365475992774083468135206280096006643129129216811862103384096700106927342117705524217110298363340946357045764955118145188535663187618768892817449440194062552877777537225659871707965513451174728926335491140257300096721734258801586352809121342330512705205647759185118901129761068265618231094099904360585049297571379691844569336643353323762104667286771381596034221405890589010807459113960962272063706745565478958468712537609761097352904884982095497796077370065693979178389239771512566108336544183554497434308627099323453840874310543807091541863146454742553862235247047253233970477556676099402266291178444558270374637418648872675020153134597832167905249997895038467383052027413479872177359224363983270777257361462505896370355366928252113117975419457038646676966234631656019125411419914760899208087344879048765198490225393221430123583061420350370684337609608223955433956380009865233727666750769143237324633753384613416182297367712210600207499724729489331864978893112104387260819115327192060887595496968970451841245847091662309863711005551755786946253850967765597994808337387879420650536737473846824610967340177844833513022168585994681461638357697785820825539254137677911021474194685954229067698748503949792049545706550753571288133079952582312525145968969082536772118759512796211665453170668629740870071420579135618911258110989099623351690650816360529440210097767161379212637777586220380431339723965789722854800097663011638118857473698948697017130426828776181416797008670564394935548925025278696657326664471393765111509288283320642860518166880162147350598639158598301834283884876796931107185354345085557045595714672788793016184696679983520944537028980359634410240996210124101610524445877991551942864045852479148736242878675314480667375163193018504726280795816281230158842669018053576036901754316730955991379738233107916895275410001302578779028907977754479657213148677349546981856139298488181354158523391895385387098532167206801012165729557903306097716812727590096409808416129917931553061655954124890289252985293277637863551882339965771546422909993481880831902678090402916668634018098105105761457264334990749932467504356155379066510743656207708928698357972013068862205815081604507095472953236198385929509561060758090087594927448874065670589143078374419793212655011443100698910646046372737010982546268423942037309580451059479984506437738251505884380340635111062750503925670144851774950487424502925188236059834529723774726470105922360800088582636751405862389178615657608905761753198607525967523091660168852909682455160562987333730873712005393961825789607862127955454759791070563054923757946843503096858800522711718909930075597032367086663072801541564464893659861680086070750857398043131441162954423043963957303786940854437600887237996689732217092591080431161996661949032693498747237148519165516509585457139693684537773693978856561917493146260235701227957895972230218812887435938182209280554670878426328456260112133874894465756574570344998575875656052882901053000389064917968706040403383887271684985416600181066615303817962743183859738718169252669029132822925812334172839618050108516127457537271207512661613733496189657939534471313856553508438234199657024747877528557314659084191647858985864027324967787897639636921370346591094306290505989333125410476361196340872511105665438740398232576839287213603113728637645706239532838544567575941766946980800810949933682575525467337540036210454896731580567442020469524101981099249006307806218178415708899128375030165652407505949444693340992680140535359919075393265631181966287535372772447087942583499454698112558895022701515328623647659352491452567655244235938324550136268206794555536282070032808881378609574577428013156007096586669046201424003311899191673472910099377249371592290441814812051214712721928270610051766563133727999913424195400639193265360375479643044677323051131069141359068827502446598713375975441485244552523595861849969172660341179581352300960338863735236961582042403257982580344619010763307804928938946335211160837931503998834226123352704290820226325826703579481473561781167130281113094618014765284355060950977671194196367259841156429140597154015286183063506037352125351585821312524090759530269601181636147270610165206996534770491601655513549560257156441065106266815836952783815066655071130391776019749348868402392016932698045175056568645127553544845892839100044030619480942732744920522649490523420807985695329560754519571702067097410431643826699989970818877877440625067179715937359277744454523406658835606586589626424010694447951811926412913317516166292250550847839241028953939951961638790034896665304602503563058404259228929072314559325109611471322031517285905017904460720045291131080733029020020146301990741271658101626852866115243648657624151615620118900038577857695399984866522649327265153040041316183421561122601038498807439063464638453312780508293856662742065151537724935644388891877370268963363540419732929791129353096732894270914263376335070539753407798358079695535090724906966632636468862639277001838997143908164748835337319824132178897184826345038449424660394484320619219301775263031341189726262627778359150894335498969951213950648574333990497884103591154169746301264898609889748801062298532660507249344904679273562114266399912826962653777309316863765062403712876446818218379752152536552190897244895645179821899174223630099167427236973121558016629468636833618109600662565961662432916764848603099798643481198005594298819016164433739242882039644049235902671308223793546075136371633018704774407277291362500620918456544041118532936940705591607934025367962952776932023084568990748032238898400785600754025389630678736107985688768672171866161542236460792516614478925981223863397064933242847909933995281472805797911110505527055415749426612095840507112997226429050927183749396211630253430654349189610138979201131300723701863819233245823955538151455785383875032880563290896771947893857654586443835826400923749072384900558117766183981666348006078564517052294983829728200837334664747007443365896013647264259117084057688852890269371643622117403217547368401102870328205033353183754484869419755087583266130301587489069469541900391156017741599484714810257422904186254945143717767121130153140301734763870324560920657179769451554123325424460822139140862396004410264904077652993227060286987084729043115968358688341261917850381501210697003015353400981502157494132140923652566039854707136367384961107108508333740213187385760404953435014395549670840171134876135149189010234410273113217633303680278818365893697832078677417733307726077628637868179119857835508698983707231914438537084877919798969331260491322043216295174376699167275074865291274593878529555133501704097421167990342790297940471155933953677500571255055638588252937559159924795749235789020188505301396646117709689535389889538387169159934256855697835756491798540805961343045562687242564006046914307210564765451378218466450930561160358072485475196557232294917547537904098953717584382172919636883057020637325952618442365481969599363092855098716220573913625229834543175635958743356689155428785516665146676005203097118289435801819824606089265090947359535280252889704870059304351026932948220497668199971994006281697018166170556864631172425825430279512854715115658611614410632188311858192579317968714595637310006662566370552339968017599002431909279875721288973450669551978701914475761544878662149719196251532327936250293545987451929298140144729677980399279428964675684253625169741425563713427298732395461026842308208079019284858993652558505167107323863896772690203939828067860256389637474486643995027071659576810544178705031891254552799434944661378880933363596624328265451768339810632095178124709503193991618734872204402663967108573986475643907276893535376624570888801023441073619937743027550221029984025965624516357852021537927613707997232857749593061026438680684255113493168362124614514243578054997880832868812552883515512751922748138687082838999560747555664178257163692173813475122514746611298088746638354707418449611363983136738388168548756740126612569625302281093785369903602091382911855537713824030182495387336870203448409292164683530899556208325431135244764885759597904374764137583561758501058739237627429744824953920170710915007873653505598583319646879713230698860467851512052543486911059536772384825193928303803930072169310011083229264208880261014452098650653615805906940266541954549155303577043506735207546456378290424433714497833282197980627277714934263314466080178292030959090837482534017520793657366598027362902622862812335512585833086923990090210910558390598747622994176137115143906403076901818636425265459075425972567198646510045584178542618658994914541461791424987376057148241915897575491463181347880769834915280027507549397226221104993414485826530280776511481713401860027292991581401749412661776801431218234913807952406884731915585845988044047694742353455809243256625204739820619074984375351562560162396397046284706058301830024073016003972104952570663181175408364450308646888503335345585986636821230637682906701005937895826328514263699419026594332940287524436370906512390250758873279422838716909699813518843158655751716632648579777018548633152932351438913202531857185262656146800774465697456407535846952739277624339883008879681997285425142476288504314582836382360148251704483378398129408594286746843400855559684800236438206445949239117362737597286018548198425808161119388793406071191731272648017041145921259206241747039820730344676503690604783585515018490617583697135099322674549475539051229173456231069822280536127963298513232180793394608257740094985466328648792435454571057162825900934099052740944690972223910879729450218973460159298675504770255615597633426458015852815979751274864287825820481762940723293213096622825706959080517622001098593632075494711245434107487786175981652779601350768500593033149908748124395153215550748973794750091489504199016057684305678585614639402407720418548615486377769394326953596847910880119981110666408523630666025859014111120919024901897513092704641439114102613430171332577199731404388371468358273677225969444056762301701784913394640829328865677828186919270437738212050658189380056476966088006681678435603371610743128201049298682953061516564790302160068094247232483109423855268278407540158497741244611342235491569721890641892485310183173644080917445391664757022021979371602201366781853852121086153047834392954263077804737160713302153793346853520309767260101026564241476648506370200367312498605836573667700100380492085781872620386797242791344209212812804886851062228328640797958608685672486201681800442068846435547675392764379271886260167026163272033506372516903046372848382830387120857719030151593043848322213300962777311188678051654014154721014671517803860094821162308136433982364996779058518124320243814491042411772639002259837814087786961833508224256652399621091950524488773352657136256929667557693930352212465922137737899697796961998530733523203532328757744893416762214646516379861070660181399109224995287515061712386142208238295849384219335530346580581629318928832040365240572330580754272471957848696201437928769582663648641734708791446915626569722802973439659999036554126205988294549954621675414848030094301013894785633848371389049317944346795444303159675979712044062701707980221994632942118885769268781898081504436191124818413119476964988132513043149563248707610718325596987217532259520300341755938157892118689045845013551704330808584674165272661814028221170112523736496659582828388633472025015636523096252397732214188885662232984665704717072547787913918702741893564209986621825691445148065699459597417300935311603670260404507683370514486128949641974836377788441540332333520870834806000906714962499588415294245825997327373359938886993720624547229467427342959971484157320957713601068266908427170143176425202316264236773713300552329791420094996318961637967890264762695842290718138294898915882059401398089886420619576588756476650681311283638183895412618447873497093751581321910438454462417472943945472588601483426071382101011508805560527199792373995050108674118772659407495796488112438909201846779441594533594932851039304633911619155283941628785633520254721626024233260161497396227055203074879065293755798372971210663737486987188225251588086114201036351423446549680891994861633461049482494200546304892142209909048891812773117240526519332971063460242000299152758144590593301191145522823599984282702472377847873561054654429438315398420342617544798438992385839812723204413339401698555825322019981731933347233783386940288531482255549179930954840643730932584343429348598248500360476505682964275549860591599796275697896186518644228772515161823169173545666932130105959930166584966820079174589911098686468613469053508273528801870987651149298741780823519901029769428662935873586987988716225603984193327319841963939945754165957918064516446091422400203452647389778877596130595032427016074198095874709292799101799925630370746949118191796826459605610975220669354475076817114336163222063958680920146610157464129875481007504086903852571624478079176312794284428204018676683412430417412009624776831596923031045639060296151228006581269488207688194381898895727027927696873549203967444765741095587854205648539004975646044382776760981371433866038991590459419867936548090456131912008409293763046528386797974481993760722591700634034918584932765697103333703899298345813080729221966065034517228456704598871095828208404807764034931291007650486632094161617023553830561920668263660624942517417844985068100677484337525248545950604024105782686663810946343072694887563528121364523006114072366793739217394514915590563321345541274274147430201216124783578292907057538489389924748119863065934677796061071556284303649342343116520816912526438207811211785705396577940333005351344141265354551422695575515556563807381461551281310742817946709837549334989577672114502545840376335095473192253434522406164142369678471406530089100031387759494476697752149490637982109969537469856617316030871306987432500481198709411570590241745398410176162432950153437533377375316991347242238227203777200300356389483857884419093549983571087561979467781512970077600875847866875779420667724193595885213279050298725056383896528765467791593390272143348521689675215305141963642344413179995070965705260874363696941853426714180969587170748459107120080775120661363001132380657900689989703903502623896304124881713503150541560712960440987118085792413412150509725480678818013067254674119889383624526675725175413908870962469867676468748871321997031942802163259546452703042169762822893168011085339867062994455033705618257399107089712062887728910910678926218777038540034311227105139983330236267479457239490145230202604063658416818460241147029699647288570617301364547288988022505025562300746771309739280712473208031506751551722639548292577395809918164100924970562637600077884261081958163796541204787621506645855291869427563491823775890064693866682906931433057489790859486609138550446243612272652164454521527322948218503196232472193072818727936355694311699225909540709259204894205740857671543597468671128679088318642096827233270302111347831120488130778311383273458317082383641837683365730443624323252711963927810399761071036481086338001012057012929653793779850517670112343092878813105997475673268694988224267669621831890150025186058548044110159613266791997542741594616984104236265277978020654608275412937362441929265243759143651273149536080953013807684341210587092040295032810320061936020274644713013714014201640363194281950515989263005947459954672109259245689120226673828664523077127680832231406579794037701540708717127177081812963940262756651474087488489669290472830842510250379815693830866549164917491574431294382408983367793790365309947515971147593851429600776735532019413244341031676656362268374899592864576958212458340518820602827708287676400695671447801210798268024785513818695978803302183121249409101449118570730411482816976176303997532194218532215639556523739934259804348208999802713263792510624677089045461850512810752626745781354487210565986955846508719072188136411423628461519318193332819484890027129003054580619356176141561767914659441003353499853528901697071259541243440509570426878395986171210655256841562149018712508995298812626953504264432986255412034341100981955239779875575315365960315251782550395284058685950534005976748454128891163308010675701048506673485243085104949384449778322032358966316596765060196332567204369004673303886276788337791586148714606925283733080060972108387434869707632429439373385364081368024636901496602455902782627995396071039346353789027535442630864240438862670830720493075803022283440762766866538920809728331225704480868186523514562557440314096615140242298875851550001022246401139606568089197790170161983709405708760516951059459511500468925040932407125766274975580072652867986068815759772082360117301997589433323002982681494159917714724850970749837697380136295877914085978805349333962103862539248711602668634597922263457520860049129655354809266685480925301643118805482882604833052412321063135566916617215742287222257257393372001400949706670284833321987569713528789544655350395389843218769277682381228245393277060607909946054939817501316485642406094787715865791069961028278559047097323682970702120571501284067005631487018286999807559029049738184373901490996312068490588304209976786977821115193742689690475128203128542431247008850089325531745621214243423525816217095508274500707633973339668694491554868087252936859332010468135215861168872782909681318090066074648966909356538398833148552170276610915323078663077070044263666300412885244544452187928141550880107896239539202078973432251888087703754123486174403065616084893043180619570204278578159858171920605080217602137463901863271758077740865577931455251050122590067978823596944073495824739530146815772181610285402056424773355065207080885614630405195370763348363770204999094549651595104321785889550626541314673407220822531827793078858091599334154394390981889499021688691147431016044327224615826619350488013997618784115293220596018997989767933593967391968026080504732577568736400115661776188388077980290774680150771355634639014431930706399183931553718248083936347786613366446152329653911975965243789906117748756154207940787785326180469167402203748210115737097102883783493448628941003200469316910584531778514168506895693853507209066797241071556159940882873854617343044848116381152452363427945453418109706870469774751662224323472774573846974378338020154379628553758340059004975348932286157147521583850846552443489972736347610516649682283153137623206517873794814570611714316428694433261344913729355899769505711657950680596124492957705125308223962442404954307826098892727106031712553709219832024192500581731237632860681583789726444359881683624573744966774402470405815558017638608225876247470794265998525890550422996578492736286965848103742673304320521631971916364792352282165396071479233158472797544544105512502232189474942285242005302504656267783609319895669039126833354278543972653073085225764947177223617038276136243298675280746072548043092966146989153568558298184554425625390040200947908094817569672709286479824039359870578411833394759600981872852433722352947627287329466731042048772648941059866044444008493396597480508875785843750646403106313837850609932502058811927228065804888498148437843671266582358536180263488914852821966705910780717236141798121254702026799816231388925729524232008053545099272694734788549763681188383019312591716013011244003844437181033672966373777887087006196123569417353880231406712442861203740730433475518663092441982392813089163440606101954659683550232593084821379973390841264427593343088973527950639919697414500117013808211337230980206541971596018253110305116867035712044322963775756933773524122736916097075067104664371160242060237712089319855788246955273168678265679176312996122463337388704596969200829433054027317116104761420979150158446640709922209711743432773282568963785519254301578373964390496795174348156158904640753955356342617930716418265262831475930014061891767610300330906280086541367649815531649293330484340824100841350421975111694890382469201858244741754681157137783728728454219432184596517029832670285564741490061122735352598128686306469662799761426009121396737106758115404102816659854183910290419307261229481557354447960489400609743738178285368572932017310399123627488294567390543603524642791233976266534628714738428763671818668090244548250250580605782079396147260876204802149047747993422357492944742526858576622358425466756731271496371343306953075918873275059326942847549158018611376339299409267500272169135495355710149757350763384606647286459229723432310640804679284306165331776391219817520428742107114294858049298821165208137595133972303050043403760690802767434036992548816580666193633565467413420699884255902202588305072163653293521774876670875387212570172260827474345482719083061713147081669485120973412005758974756986618579455913373578615380220813324697572482771050515312676494588284495568123438406016732945211809010652397866757975128398519601316102142398206395402274890887104227310128104878088771048427454082049517889225377346738709893400551819987463640065527377754241935311486448234527033690994359629925487917384825944186932349806044992430800709217363007550026290553872804557248372083717802693402006498754604391109731150855196143187377179622483752045951216499685366720862294662045885047426663310340772609796880077345218749804851212704606720470435201137834901643672447303757582507305320766128223085201108239729654681624621090513387971766311743392599034350481342870879739143577712444167195951655333250897807642832253671617438158005907563129178320114528898034478659735975320087785840949682782609914627166154228346640471727075519193375413515536703551323114524657945882846274488488829090387487437474208367078657208824312591273920908787574257741610308261919624897693009181726023516618624573301345970500741815488712746062141098306526409873889771774492219563988571765372245385937725439694214912285548417655216642009564844778649486726467384975000707400123234125503878068369394101533615040181510063259432609463248340837371024830395294113708659939933007434321171533009601065242314004181951654833309614946654616686729198395865268105097887080219090746533268771216262524044105808249964503642964849729483569077041045816029821325905206984393810070238666329525653148098753283627727389067664077984658065618367036034519259645873271859765727352235802898390275422794221282369858401403649302418289822711573042445780570614045842729208518104777640769501133691158801835350706540506140773020076584772621567224515775077910799891917107960366797468551237149999512464552860370843447429655339780429289844006663408736420728797291556142339584047316230558214995710061912133246106449754236790419221030644962052658197821722823193248292867609589287763152033126500176139955349910704556321425635556379080298353908027761260791697007298422963421602465299203455245777868566643359317561575064826132963234669949333620701490843610230870966323440208613222958917271372943117024227642488707703563700221196657699601162003291346254512399894788580603680148719146322056788872007171976070981223918458338510823071029434980695058081199955106107894402142244131986825534748370933422367611113156442619600146210580175075293257209887492960961792088458621844989039775084187997866148649516753073747276267867882714299052561812827991672984222413258205169726028711060000086938159495162715671579322823096620536645954232075761136099190023154829667935467782627595304317027274227914188408822910339387672385633754897943588014133952278522168163346586840814954402753320639751391775470624820307771230159522562519528689968561866031326911092297712673585946289213730711519828464913695146781144712734758472692466910612036046018478261924152067110017151651815274062123215026120023128626378840455582432495633216023596620936272300746052063603692943574015547635800442687824565502891870408854204403123230147133131096171968672072788747222589974606000998888163115510185444110495689480739211050220603824449759842774586742204026256185242948799962545267314652136505882149840605397753154454877541194707557404715703635916119886092401122351565760524119497029352002589777922317286082693683053949423611378915906355257078562705759415952291129600630817127177156201040929336115083302792061059214850452948250618171295699596794160074105414142471778298393723300303323513989631551903791641731488928913258395987868543466469276292633310879567013347485605726415780289780058834995583372710521931651042828720866114950986246396002660825876862860149794716296737577447548512679051996326918998610902164855465276192966618787714438937015919384696500194638268991018717424661691673052245082635054485015710458028857683852950085703327847784936403102729173965820610517095261419073010547919618648889466617424619551740661708898814987992204589637357656697796821997316407841893029013631089005695800913595127335033332344063041973932278196578654982790786415506119772117646398913827610706849133122024743423905045385764685195693615203208251433293366122587494983416206837036285095480058091571962479128255187830172262842571611049152497547566612446640453078980170592873784289760216762384311104257125684543242658353427031651607833288819885964893523397771839865317070368419788549769405849077662262542333352707207551543034343325255583388222020867996498539627177985518967424264216588793726046887480900197269656479976790676743206804568879803848369421317743276384871562249149570429071794051764661814125750611312957341490038671719018981644088638807448214119771669866731867093628989025171024621047914411787903585921423708998122560052111123371786168804318692686599695216008960247980065640638148126292038082511901059213021064258322282432074488651679075497313731912882141867343911467089129861323925930146574935926208480822797301859040428867749966114033381375364379875391566417446937899985698019007744098867694429398567574718607752016083092322468558918428219343153735254741726913399698727204546312269244679926932622707556959799472262848894340864876619473969990832928848002551931776673863682287412341013943014151213088441508300754277799052568697620317374991602224327835949824343634417749792680205952844798644317518187224076391309637802572836744507420655208888903508595917657599600064214079847319082690113416035904302729654506296640225993752086568672392926244423610789494374706900303276531654483676032665543243373016653383522617492916782130340113100909426866197810961198144991319441674214486579467481550434562937960496747170169883670027936964723525078301022413725591699586884434650693554212893562585620072330662626493418414451817940063950072226845210788900484140099786285498423544347655697328400270839731211814506547409532447609731962819320314414272150151745344872260385275586919464464285391708231054982148690514284255638730140417823291475408327470519269072423295044318885943291862953459658547196336316204478009773823857413061481897786993774216473936594800145596828405027565372165287231871690693841094207120180836159531761715140439929679023654436518246235722643921938840337489509584072886468168928343312604945966942786738297989258399757863570146346824719662997281731132043300219712317541541547249466582770602701231998834550225200487662970461075125338956840785578780533453065498129710464871560194441396515609693068058675154955435434269722983589829073742518083693237639552568641070110466163313434388723763307166592805636741503803293713612729342480852405691524667095370071838117392266176726226590080724326892973380158719323679081538946522041075028635100111913540155395864760504571493604419849543563424712375920190309661427032520096820920346973953975394887971179382081412697281616691248537361188144878772341429894232893225291234522319160169961289032773528881169083587165798130144966874910276407263339370469588628881195145748074762629649407643680493711117365124273726243428587371049435853211108118973085904662407947840743380582966710870904834968985092236680064909002513977085165006368246290362623578880835013571349449893489843191902809149264231495942127872843659714324747926500231694100176825237201251060681489152575845251133204415701736166347076952933248143709688066018886681901845052141552870595129194429182922452035445151487079990230463802133581094738090655144351662583798457251862004826508183174408046712712144036045032915353823714425267473644380246708512697605144681212507462751367420469950284756113759839433333590442076561392989444171143752148195041107138388224867032697734825525978892607622575948427605565439302104326709136724870739992143002084948531504784381948094777823634925815362247310896688366818213009257076498115484520595677402730282277385052295392358245580952479048141904044614248618854427793858962188964117285673581365472189992461479483496790063689187984809055214749036248935784658136891547955944348626320313667429327802389007606921149676374220841827949908060531972475646014412308086735693814163552856016452691540826033285376915294327027199454558991901899519990958330876852412931857655215286658191208746179389170529183611101192385644003269670990994370226776368402943194029443651100378246620875052414802045082810103851465271640904479493511862284015801086713730729234900748047384042658150283363030900955886463980870807025171151221680627161541498220925453646780566000299281613082379261764585893549065895511831111407609032220487602087230556313228187013328474374044347158762833020142026690524788230819852581221468111418936943377193578891388972559474194329519268032512502488747097576075023242850325381289935782166244353706207191596395695326060954576001805423755528898879874716797065821076194140115044934025703380541846716768490548992931427670393491951230731455108149370874104519521638355338337320547713759114228358757266228031133921967254385872858688911941658275141256853175839732755505644080579206268791031325934566050272920782034883250840760804408645976809330355397331746059687685896408250618997425956483343312920584700042525502010963239473138059041208277671959726554354498308999210645977698069922722630136214964796373713268630268218704949419310996769224164451229492654098711082245050572872541682397202432504627304242213053002935190682424351538436325385776409128522980653543610621308872868277503201695803385442286185220376626359316870617490044792177846755832342151250959060672475491698328538458913423277444170043068441606235472040994089126631363849145335637202494344084824440075936242109407689866949080926210972971265756008144697475009583101227344481104044019160431863440698010640151570082614561864477939651791147269310027732426455076748168825080450710783812260592334708464366090053904806154449235362646047309055675311301361432788452176132886812757476340778252585185900602514188716611126421836821026711700228616650068822017209676365648475734836320878529238458415752978025261509470855950771712245183677825647182824463967136121586381518071140040443750228747930878244517472425836313615408469341716050066189135805471292252192580316464383198233909817125216721763154225189666245334949055612605838263177868718307875451359809255760652693574702774742230165104684024877277090579476370581265997201357625861992119346406518894474185476659863554231082286652289514469057544748402200036312085572058176981945771290324257670382165912814479207975534915060573928571995360794241317455803207466243452527081461090412664163370427343221765257997197147456298031689920655004181306906604229620966084573303213277604351880776221703251751547836511742706310499710820808675030507879813366133547848053842351778327009178284058535603822757575518143962524353723617435553535990816887827188554305423954308914070377937125194402787888841750659003596597343904004090653801169576581437836997061389762018959674066977758116262677588142228589446824958215508241435747564179459986513658398965844016693457244100639313981841164672734691285225289890204665376453881743110399954620876098814580522678903220851412903962359075698286684255399334131027167520411312841385197634729543211521258227138617412103081356276880767127845494673262353870419686252808230021427840926692791731945333521413343439770224312094266347552966302682596945487049562210093653475351742264061362954922905742863731099661412722452093327851625699250480201127052096876832609156227120629473023034396667909620307693065479893145964291989230248922620212725517488120785411194584257018643137200840778953937699130804120650416004167469690967731269112597780062145828806183653809628075203368830469921118198912794604362896076677395231954270921395247400174864812903142878760540889277714310284395203168661019134962968130989337795324017565412743691135823348516278955723223989959115355276185345843659664504385827464493155853438471272133178014845722014830935736254817238111899846956008987499397521748723870014285894089785157051525356003272214331579798957833798550691149601572399011932959648308636374097801012909389358418781116388038791466719760519183074369114184577801610353716056917136730788782045011037059171912177847072508886644488950422706829307014809293356755443702225060069458675259740732661748179442193174375343071867018994419136079959222848894668451296319943695057013004914410659701357622338056567347217937995854981314899900035465203772307976472515416742695428381206591297117183737887766071803010480135932348385221981251022718264330277716599978952839386962535922967611541164923343179407465632652875387680923111955251535904494641228510464541642949963007192964991965852001914341186512908278466920618221071809743063971061427582208234763078080348739514474837434183134055639869938363055477141353082528966952955110193014707598423102973146855459212290266687263187378296605654196154993704915091779881654267847963242563472879044911474851354762914019222264993239280624399563624534682586003142107872540621099920754250031398170183757633365723105630856197668797254533635254504257783563099259694186482833243850965867867044114694632029824019234917348052693421601711356093920680106696213935701029367880677015013075401287517096180577642706823864327151903144914733505449077557389736958830269187163839350002733862560635423109407124856224276611899194520129963640010321516883437443460459371772712100272362438333662882180584824185316675601197210695887575937897064025018811996317813586675605058561339158455372421642996760222273741393837769616465164976555458579665395404643342180873487419650614667874862263339408510482506608251066770999067916740226674749522080641306994283161567041699809741267128616650800198934902596204782474831211225607439795476820322333223475720492596781016998520203739375636078247349265170119228675622121518295665749136605651216912206031157057809751490104983133197453931909462987656278761613458057189731986683265640817322869659222287482821465228339565466101218942759301252558354078947266993913161563412392376640202268978270475273083208569437200828314824057847703275869905013792562453144811646617116735488461795727031382850349650955719964451452989210009198148634094206622105213509558969976826372596684921573161193671846628970285283987165273108968210445403946095762880113583732471860915288209133352325302904168353684632793159793170129001264552440953421514742409130707431998038648517039579222156426772030937050004966923652877699924656200993956354880534960865057932476881448488822091748006222165311483167129029944671810029927964636941001749588016891209601197596276963119290322844553183429072421306484748835404319538988743143608206284209880643527154368321378312980704391210836117194887668395984555893345272390327782470154889442473969020070685419029170337956300306496812449227025687601680842683421639255329780302313652812878982257934695440225842495614567978856696999697407604786568755567538237962558563196594943432866027770055326949075699580562030015630342846638895608556230280974206178074540779046306477791191622549224006765176098229906210281541282042361054744502404596213350493228569495741932173586451830910874714643475969321053709863959551051897873971329425426284284405999646830619877865339983267390848248881516260789153930589061308504544674133006590908169155816154746901580250559382328086702145414732276837840942281903049721485146085435475850315030605070048153146740050865261002898659146794990955816554087895441188734468901630234166732648052054512173396675939907829965010842230403121433887447809099152569528566618498239816442264668750922985037782021274735789868064247988158598184534484638006603651167384610206475365076083019520956780044658356775680984078850634459130518486198880616589495224421367842587854274233690521510346818680219916399301113983603370503858254925209695612908238223273944927189855967570971971448635897986627187718594851295237554926660561286160074656442536695900568284162728170362852706429038487124965280365358094438497274977408081410178488343193508439355922895816862214246747450779160971921941673099744974965737481801687991794592997636708567837095162175339308115649452872549736499916306180854588468324656872417704382548386023565353992963627694554085182233761821140325723416103622262437236734416130106715247174592613596356640616964028917416775741412464259903207170313138724019127291178385764050222518359773354346401831444947547341330228940799859191651761419525014329973786190880587322352384714401788831969229317894075612677429605855811665573468497021383999965222700046493831892189812413549003166972883131423953608738592543143044937048066541090011851952093993902950997446408539982306688362882945283081598470714932892824669161615485973680750724063246082428878488527156824340202293974508621715298569735643784197256378428571470306187899154208050002263802941075037879082002266388990448206127369263614790852371941860067495090051894760289052239525983236420387647736948994843546084396250120460212993206007758402079515223559886652903184816687713912317125630428171187735756408414616893179025484131399602359389179500221435391609443532527932612203570789330687640572548606673298125587587449849412252509081202357908317119330641500289324442194806296075416898291893600330598367188789259191695104849907485775111056504374867523854780092162244551304520542823817591186429927790907070564307760875434670380542508968339658100940640126129151078002728173059806114826828690973267054439746481185873334853485770551334255547749760902249569838322470962659061311581767255963049205655864539296451891071024687799718017596231984896284375003881110411160745849091468872596039100132533225529310851618092569061210952075586105026623617729365641131294745844684700220638636748369321301997334600301262097900327117043590024525944472086372175398869708589988800061250549300735898652844139504270122772181449211846088647431453681897848211160148207650650930201625539011853086319962252010213337903621319007169993289522304814044267779687990951119362778367499945388162920877760584981677520328064555842089366468368960578271706223777358618187585204327843546273043015021203561143566567239542006132116621581114611705331785471082197790588932185779534817532307976499323031343682448502015819126166173224443195958082057992320386147147008692380244753053811043074953080171653682998036103042177525116038988503471722141115080511598879301557250313547019345525750988746474895329771035113164098825032984462932086358563690635047934934165003343490532933458430415092265931629974462607212674917284121437118462377103073771984774306323041081609020310576623054920544490419084265232402630016109120064827213406397675325589791239789199828691498823827053750476444980487062556554298340080466765285615980809794085409964810877539821079784359430752952830331159876114285174568372931262172747571275633649068227064091790327413917465623687907220254705664517863094891897175114533355858627790715507469810356486151662052841947960232587535104810484690542016433569489691187310568780325838648216015367454082965949907870596776216772747567278413693774577308877232754373066519594139053520035785976202876151173075216080194782864204530036662835373562016957893811560241790211794525425847452191820286045077770568365339444173260833484902818762600970730290092235626569117814425369016622013316150084537535144936754184115024379676451150900901093607272850524111680218345667664230294630005735380987431873801318701109565555793125860830600317306180159084423277967391656605561133411541989007911194943732341106456523085984550691923884702649747015512853003477901211629625864489639560961465162755336271197688365261696044299009820562620106253092253974922453971349626418822806173611940395006195289039402880559494924161381520932976987650907747051237907350315995892662569410536481160700501159660385458426674568263216852649563146805824616209217771157821435074182517993180091360070107441360497075653402024598599983379818425620690428090617567406098950357546980199345289191345491105340986053952920065822688637604672231594183272899769475637293734532594876054695187970289420364542855307479165900130158381794162519554615417610680558076336107335523511452734170625172706724012152293180653041533418178227942603623989334166549485930054743654227667940751670026216480602127205219140530260148421432073161713631708153013721530404325408983942643632789973522491762740802673321159076586618708926335695729224879922455286108408715217702417150119994443824589814427083016791617822812126990116365424335521266754893846999080022011634338777708558253002788587756310136963906539753061045375775567525434507396713774483476515283601481796774271838489958253048754093816455481309171609996797745307064518004172686383678790357303913870941007911425975724508309618327294266238573465955207822593292099375149900328073326703690486852034534565532417415837029147594367043463116231489853856287114258417944791688865512191884227088993812474952782392093382505396456623546881956472437042351856015801435021653031359705672420158184668047922476236325027730394106076407783652363916393250062699848970614571686272308042287990318359545622017954301533615489866226084024808648624803859432838648781286170083084250052166581945320559317221155100573140724224458901091423716504018681559287366502483477609726932610558904857240650649037937765007482952845648629269916868861956341385262568042600034337011543966193840291030915166917474330861925683478092061413442175241050523070552268537938499429264414483255760491549893876104678390087433193237807471454087133318144319272664123180260797184152628081094607371776629717229411029023614246177719627734561367906896061419403481697937606709270493080304642256302409133784791042188496121782933040366936263496038249776908039442795347571074478642716974604634927726911858803612489502850775984944233649201431720490121858711133056836285591893919887602487409892993813118249827294740385247378322253060983223630845560209793290341457310021803458322738816421024723089600716212938278135039518628660699159847171750477808596501640508605629146673632223218860756704072235377553090625835529371540173779987736612616980466767336000424307078410704927077663755357417587542205062786024436868351628862530084069701926422895309010793855099656898811153429781468088048896788019240287115245568010012406931025787283089197886715718895064651908912731931507171425745249201975232109228332618907450076031304809054173195936754204256977967935411337882219878745540025645122049595913377023540106891055358046406336145230783292264310339996305768537355486925157227851270158515012383811271827306748053556016213795456630980393345305679161226302128657514755687807159654516063525485194436176777132782453949166918504786368246222331595888747333287828231386866894336369664548547677311453912615020540943345660097436370359277232181517058525825865127200450173581241193754789527802971635970373620400522167578415227205368162189249437489001604770639358751250473643052348123544127354081719621536364616452798414800495884621942891681715298789866910458708420955914097176596782436982576575273967209510468907149381922477333119307069399344592414404602647471861523255520531472974984346154016562236833012124435094639653498649882703107410640715060843461642453154149600645263555166093718937830424985668581510616001857863869197079299409376485163632731518191237261633519078309448902734292493988337756445920652780066241138646870043334996690805449186647016252263105026764302579184862016863489922527115639705512221559329389586915579363231522523345783424612491299260495379221823123204413200819549649644549239036420343293056214814295533851893533725332448825681875666472290024665245617293966526774209780927532394369284070762369561552048765058089126043941475402864977031605523511647680595856731707043316859602255724821493604445828625659011437029983018524638959789564793279854284819748798493996421413695793176034382830510585308015630711074968433923123247160463352157191597849901837487067549300845073927348981429007311850840376778682830282498201175762741046372237771176651044969008330218505141091429167187803492799997159500760941629884083537111869610483490294783883273753467517566140819502958900866488265972454389135324525368722417674503131785991944359906881347837804685539215155976061536759843674875086769287780025287277098054491395507169805451471514650885288007788311671519628610302041773062886330295774622913196116242445956732481444151890485983545199699686310173850275624859478554047766199532011363192081827428530140441756596842617705291374900999517863176024616471647690884895893031540644018255743314203791694607409074196037463887775543084597796340621139261226860287766591198680196039140003684729769594175140442665967756352358251536083501184019428901341847965061102878956844562086847187023139032122539017868618052846652175552597237987140116156658402282001492770795100428478488922295794599936875432352592620663108442740580420447906335831850643460378634170799045664462749226915298850830299883938488629646341069480150571959584410782005430288614981408223882283662398617775882807578641090931802005328975353275826968285263397497866395851673125011384923307322169832118401032668219550842085114140150079726385849708757916870371029117220941643917871020568263180687587756013775801246545343007018712784434564148478073384261231418554041515767276523059677600768485576052899111806128937959504933102140793474991412449591755699264921385796714928948942215195095375466073704744708455966913534821543175993194701535045115296233927697453312007349788330798364339952121566804494478751402850502621684301738887132655045536512669222368475027677419817438258098041171327785503978113652094029667157433816358052347152364586905175631271468817340481867602760525574000278647589160670776577748782325787242361860538726930270189395690198224359795233269858248355235579819964691303541109900526569131565566276691938119484455421650248336744774286544935122889028758798288467545757416439119511570175662273319818711223159160462908783662945579927246654909281444105373354999531191145653049022069826776104794441470206565980819083661341897852641282452017053976106440979698023230249037480520668055215414527392522352452109916334462923936667120161017324625993965809986857960222734047059408410721995110304879465901032506123820218548831565798176452219465372726103425349166578704343501839233843676747148729546896649539957852598562163741683623806324206405802726972532436746463899327627895207673153212021374683048095440181264983036903845089855717076059828446454924777844895609051435245339662011725519570427772230620539588948971737929949168357544392126002370662988127288811223604241347437491959106589835720691593729995712730293223053408441282312953109134152861134673067762694999439147663266364513600012141240106914506829545934028953929693970500340088958682750407387550110669702109330987263247432094524480375432554750332119564490871714735123466950726220396215220882869244801660097971768016557018148798195171327545068457121151611960885075778748981872793817372600509108013269191029134860935090026913929985824085757433320303707258563308011054996345039102954469203316507235421641077820534734083606284556594644893608526046446932213944172427757746837869722813408409760443674383870049291204119550303858768596605466095659974705049630093123988009597211114314434371347171370437114628301763675291592186411244697208751920847229596025213039881993611386142214166525395773513920187726101520269482870740348708996791569266796647119937653139711091136181233870674679892340733577012605633600755249878907383708731300947950725285022363941918153321742332054729416410325452980093186318164103273862303196105360044465679282674272667242795358458695764768335724371718750583427938249644882013008848584119302058110749919913264669153896307065661586664160026754901208145511160429144975780491114533891867613020552706950092841675183631407466195302381257457852984951404746777857367501380250340182070731500483316808087512111957149602493256152717317440241224366142432948833600223293925192810598432280463825013645471944776686014152437141372719097215009836362189133986518496767802699293937523668911393243461240689111115736485889978494141058698421283729969406222578223932996427966225311236684505692621219167991851122128119081903282879120651673285589364460132097070555776915924338864916371831133569402317722548852678890416035684666547147839934569133409445328670299238229570133520232801720533581730167864162053122688934746956652945337806161357546340564868026340456496641113522386551043433844900087707892895158162561717533169481745798524865883610049661288983658364038901858389862197265761335165337201280867489351724537688244385160870589303075843081850632839587162630776247424197196215115504139597605920032280640830821968376575560961386280399538889311556045591553859502051894290559817385665491388284556710601976026537562839134708462943891843508425596465492363715624255899647387550144151277288208211577340224544034219762084312082286537171861967193425013050186014399583478311753133460967589623199266611815685318779334340011181864525954150417776115269304070916774865311496067274202261573348888337971384408263666787586026713293046662287513794790511451702931883555688451834416440540884756994595673731740917867300902950827003814904952889219116158810905847755795169232661812071870624378106811014716358446738414267645056489039841120968196292730485758827014381091107508526400559404465866059489280405624238537386965799239239196796363311798135465157503701519238570051882589232535134995639577108436004911886085170004632188532776119842463744067722647610019208468782470126301583834880980711678642539151690273276032809908438962987732042022173996690700934996463727244885281463285532135121118562600416814497757039288110524859811649860785243708314085978686021264071304546847536814125479803743171420583845096276826907863316475968273823425532351458898430507522249862541597631058878967075100945383413072844377185714492096798243916273770366428016048521685115169979786315120162725292554511873492540091033135561577756248953314150195110398890208126107792081545107175757569519517324368563784687655232393621644070448561173431687780970667522375269941176060451683918815888969960624214152047688570200628869955756359714842915783949326173080007654502517096917461888639255954438116668473393731385381275496904097757535461227736356713790487689299598487067184402099632817934795052626660168453225194915866600293396620893394888543128777370632476074931561577640493557702411998604710112994007106286197465164753101950173018608385014315133150494334462838367105659405824103593385579652468649981206352332053944401006655088520482250204551681379137130298019302328569674198058656758331267167716726343976714578382945087486727974779336098545891289786968279185534098622609229992926707996679065234213143495117004337309190095337586643777419441319310451160686708056430499249126347060877323095649973313300027845481528890888499007844487930431144165127450867271249984397821754655848676893009935808046076911094743874004569459699170131538594392874043856311451368678912742435019140613656323739436724340350429027548257911666228972508945735893715972263391029925563997261065165459168323112458543102871258417749560704045788482605481153053496511664840902370308756949033683000849931490358584085088200681875543405283771894823882086390954095814102442959297036990087719027231603529757835186882517461756190756556424551559861734064192950583995895645434597910001108580717168448495100032594769594458058069600510693400338656210756268272491259506526893408434258437820381323385992595317657319560386938520741477513278637710870520336242653532650878961198298718497509866283261642799879449808365742593004084777630835176322468874929061337615279022289981011674659527475182942122826515718611486998194949687250755633197501891921961876370706382131106834092683662141984077828288714215072044590006103805506094444695261791344309512008092490642656178472525707185081803241619772144910350792782936228463574640729811806545234003339395054861254131736404813848760118599072563538808271490201891222326058098352951511086167277627722286880047500897799526380723884507651327029722112601433865472748136878875385355955024939372775538854514796455719765575549134516188569235209232414961115581205187779041418226730985296623307326956738259209809460962241736017494950952402157929055626367141547534846685878354769391160709703014047655418998290767978874125449763667807886824029534544969547376542358567144589681516007884774694061788147847860406754806896712693596294768666347889552765851853074564171149350638162929995075467746572738556074315122046081907450933859736245368878867460910485329960389593063332011473877089742152573476696272841723178822223958674098302796475427675377276807123894974441337638876232685258723578770612524183119120186637825325254562389183873312254730097324151933898588152178930879077476082638024203793699608670646010026800499164149787197224638877622436901018122293027390673143955190146750727608618502478826230431448955659886276316412595708019432360579603959847826993261898587926599007237800125005906383334786912348772627605599578554067294177761038715740105134504305864575010266234141439489698433645434116449439405534212020938703059839478522850471514432288610268637630315628566389587940828612771744598456429364960973742915438359927821801655950840505732815329927542226195299501243800087836713301091091921567228567275528567135759431867211084231167971059309737520943699175217607917336765686206533319174675785139673918161904758521101483389477603238721037138284347075579553767949522280867947864357581564751216775318877278009972412749836516784334215242519978145458020748651128131733193879823053003368495886204762640414447002013444834483012676525063582195868827213849447760956684494158578449935878273166493757697573127818102760565976072893642018325291233654012072145793612653915323311809092334836206411095896180269511577790492267595056106118013200565690436006220255985850780383531538852459822662699351980628654631530974147386552799217876011983373831548052315393230887432166907014085911151385204575262631136910501470256211980827778717738792814273603876164438154448260946099613953147035245980089465482198620625061002293679904305935988635530904716093662325512622965190489617361333440542396644619347605960864738423621713931548620383459796034033090421521855282923731531515594788901810868637810901658384581434749595816056285760219922885878127605847782813837012588741652047748363213769152844984459896441544974950943175872026599747401052930621442024219737734802120109243394024930169636472000207408559713255082171224087732827951077462681069037507362786724669989041086664051624732815185976814680265128075479364947165426846319335979918236149861609673138110078266550305427010434031636313310266582473286128106360691589964004067892085781940308858791071024658432812802617618307580007519281362604119485868195320722518113951739321621078376235042305149789699087890323053933705866281724907591470443051750079574741450976034603830112045372596549084443025856563834985519397307608120983940537631232609559982854276618581617654504649757302497944724911695643527060899664497605044927967993965535618042904254080085848643597364063677938914670562647911078440626533944260561340050393007178469836977959812073747357041556610199551046347922116347322020429877933721334361696064763695321384593180182232436326554162201405027282193266117580720533559556554217278727118087348031710844521266676369869996639837292892957439500512808394984188851766356320033135580943748524872481975428945213567231806994932676643217089759604507963269338894050530443081669348988391727011194482578910541153046584829883584833865272877236134502767527993259267698075836240376190461976619415221447018534100372368362741331667101752729198738753404844019723814861906900485186382671602027428226063038396706586302300037489898498660744113732871138679123320590163078938891906191274630990993346523742497039416330645202542070528602002966678142066662924645502515696771805918770226996220787707621532060170402099101633247509041477488203454355603100207396370501901522089952853816153304372276326781198316248184101812952102973855747673226979564417298563285005914311739754975773861078478538218516590465753373358870353549489253248080587186607937293561961954582863515888112182385071278635037489237962997382535382907029501129027226900342605284650528580702584586943879101166409509149506138721433407990551811642953543944399145043616560937526222055914752228002880916098501334543025450004260574034968141153116864207109122832924595478344194042475978447955131434351370653280159212191162825261993913547511403034764954431191599213400267828106333770104522724903263859735914156133450872506408410193758615871376681769983616939502085388429329765539162486162918412286262819172232463794380029651358565536797790286528199254061611386850385678197275111660658504943328237794355335856728409572216078807953663172217661338598038520589971104655473493291388188622994850922126474615461515405808946866283176258294643299518833117567008557869860917377889579629067376665541075844169862973266652502311963848405843904900555152692456783516617957222544456954128385144632590567334673799986459134027814386274173265207299828147984823562380186869315431948414612911928093743712815638695981880604943036211064361615579094696967561748552282186229316820095591683980777600272145081717976711759089380197363160162375544169220118995122501904589932606840607109156723511548259397864677704176030417469833979512070737192161084970800791040834363832914872698274646677323214885617926819393049234790954675659031758906223612253783013949334553852297610213637730931056446148496845527239666178685235060764251405299117736285021879517146152668831245234346353283905422759033206344570431859108876715273987466788066375103319733688651946078045422121218187902673833181708332993402372308382935080488745488445203970732141961029187453262152086087056706180369035480017167972226489702515314056626545124250898410973342768285570077924349238751124540746265327166260739028127268119328532548908710505790484946063576800157674454098346956974166317519574355201747209591192981915592771554658680162296217817548435497101799199758538273374783055570729485979720221669453378002366087724102446821979912662353774427916035361574832751887840336437198767252728296705843701373317439490963396824064388589602017053134902425993940178762010349863988869602237491493088015131379132236564595327634877490210655146489856428878417542033101082865644333468017874285822868479967804538463545812917444330777077609651253837784660389354628633564852978313004046150055707492937230127362043027731519067027584355579255994911481533917590749424309502255132549285255013416654522054987623031103227621686862574568741198615308691730052613069706206942043226995226788814901293093985872650522864170227032549733436599191361550154411473815565003385047683031049286966029154648812857521904644051094038235796101220310549716193444970903996032039295286783084158916886048239270752259473439732786478820623282792562214476161379885460565548185762574698879325577877087278476476579607188304646367271810719900494073963732569310433358740535258698511155387687644204563350221641010729535659119961546260861946934413836459803837154757462275545618528025901531845301184133174525792037520817630592981091744473288376974120987339177716291046288931704916226981187954642268142740641477348515168486772036876347010134318893407950335453116553948789584262239291195394245310784705064154821496963731338482204231741998415595343517152111021017766227418731968211513433253648285928147423281847217502629323558010953139175602823451593021300528650575057604986921693728355821800834383508345113948020038019129635704608810338079704240313761454151203214226025356500404162520997205854551885660199391382962434686800593201652473239316792749741512138944050676324462417150670376900405776002420107142918819881039879449035669059817415936071341961499659737270859892137199399541063069545610226636494239823056095173819071756302412397300556218322125598863041213002512302848762561759977846879504580380466892416823579285422112068690661221205012012963503266612715060568032831011980227688734346035084208913425093004375126076036675511639162513556390084620737287389850281813695093937525275402437010560921732751601870184024478906439067868367573935173283153645431035072361338370765628673170431335499414217096799731998442801381207039920761436242936455322993360192482307760428961612565154446585482130166808452353649326988957793776402631568630303188632562385351782029817865966852982639707769171873962816753752571404729466480032681880287514454940684622597177237736164251754278099370169368228052969906242314001222495813025498952203417511905143344765853401942357359049578460368374170211384677279437892621641063614487475418733024723853585227791165469117920185756433274544237692378785269313927789925186808295189155458438950921942312256686344854303921544665593738463321257288331459667328406477798574601593417451897163320757078295342150602103299155051762003841402339423517607931176011344870898629979055757483614595648863078025376148499801285388362279866201951279562738313658081183817550993518794076387544660477663110946416218643184639557293290889398806117978033171248283369328868626312935376161261050164135513627040916830429451300322497941993253272089309033470682444561623347321639704034547741074460793522802205423124322137314179134258475441498224453340115275132746679798241328022843797382637345955389407840089913923857404491392341444602312153020887922011045303259316073247116591148714806882221316119857370638876068918762527247494165993520665363665421609077529505561656331072908709666264908860758715902796895428394634144873894940324434261644101407976767938721539705675949903632429648531175243929108889744637946520955785486995472526301859084758617905225748647366903309541214836580873919763244770816897309713729800702824182670418427646041896313864889134961705931160158876586205037921713883545969169725808452572895071909714751978995415763953030190319851725366115265293578633224060753735020942079100285780200947875716855956794754530400147769974893985817151102720102071751485898947502380807131315639256711238770555425405984845481522257344163750405057015690613573391464675196368815746158926962180107065581297481232990106211934416875898038523661911866146504151326957398003115015346092998604330189581693150513174690012363538196190808653040999319690390702344222374234555206461849024823387889540742702374608408356539251383088375215475821865302863373296470199816451552792150147335715295510888421560056125352818700958943867514559650709403654851600419835400085765167892633226898319961419204656165462205554239312356347204907874419272693645817057020346131252412305460248912022657245970571338554187827384478064065719516393521075630904486488204273717582887930447566681337738910284851690607881653174831513038122608948253825423033408496279806084962739905662648045568574203721169218063675923764171947939228017727865594702250348408663907899343957880696187137718538425285357795808351292100312855317489867753980263213971525672021906237163151783096813151577388666033003635145184312883638261108040056822335602819088639769877880059838262024531397180608849114649766590349742514684771425287045434108980157712854343511705368087062899271143396380822261060350562664776457057990004812012378109672298750516206481414441801449822837189081502955419124575992553294295490386121662404900191805140826941632105786038160008166244372382359922515437533674043339941025334213294941159686481662054668312436560397704356388327471455030917322247899428717417891932644106289730247018383213578767037482898380427833625009916342378749453744588595196057719260859975584912500589316219986824129270349862423269168888953549636641435978838877495684213264488812170002612996450778126042973485302226289572635248008881396198095958582972649683037153940136252857441194034458067172670750777897313854343368624356600232091202778024839733241343477289048145388004869353921356893222947506555546674979489867877629514232320364487885919879269495867785142995947735502752537655314476326562120160455877503594295176971889008866852817444900747672481615488895211125365430523106063455841857504578615434144590873080539704974558256379226200974431195986276372938117506617353088597227375180610440169755810552858554745192480775128962487021581253396497608410244482717436275522554080095533147395394857554609828764873417465386279527269887972392495557387341954185264928933617862395462866482115336527289112184340773205408004084570849277152240127879306075521241430259494186605562636230861091345129490681894674466213953284809723540303068741629794044275974229352617383578541079774279740099950558776683875259898881390593055165137829397453144757615082276044812426576139131779967580525901459966252563951051461311143369425405383915796752754426284866261215237793606034917203244570032447263908243067449977272604469235553150879715253858963138696236054823297807629771943633786190447267460240936944048982366599306269823978954651227500480473044143291497603711099821953753930648811710838115371543656546171010828955446580447641549741264970085190037345839696432657106035721728079376682068825136744346759222376025931664668689867681424431108872682863575913779931887214531910548203897432205718327791456345173670734916621610922795163304108688282366930177345491513257531060664129383576498363367769490371371754404738576082960162452521259137857290206559200584402692351465231515580240119499846578798767165975927371664403467479107820621370203980920906255100833334439658045170121418302349522959812670997842385806926556336330364361788855527404270264424633780760437989095806605515903890806169033127238056672858491862735423692506598689901557963489176322180036689449729797645223415939321684629203937334492274604527580329919978067546341659733683009517550061991182270368174271723624019993045687625073831826790249305512745477480871588768031210011963258374456486440535922902907336540087894391381782964017866431389379643839017987106338082986667854838371595012927628199709613431651730862232958853003048902678046960986433050627268194104501016974612368957337188191850645236702503595421987631743698041936914023618666969921092884055832064991565478416425975125912718445775179419153858636270908890667466959579779746329944974517579763618520408929610005381216393383575025996151561411463856949717604759309902316703328025817826763500604991405068486137269647120382738121445846545356794649219758530850078344769937421265288451044209843850982843736661154239125848825817988791289117079393670229788077009022524977174736729632507135726877787744330387565601248664552274853850974309615687484373556253420471624073567967508355907605402728661587585219819737523338828032128715964951367247166603551266151099059307557829088064648238963485326180992391342701547947100850096653140818152274539574595440076346641982257608416410722016787834091958741439498213586263434560636076863076066101179356114609673220733898205146695182332997777146501487525006766707311657472778892452831078865249355692904120604196349233557450395310675958213779182460996571119555851456568440826738239641729663855636175153863340824863150208913584439317323293061112336180168935202989495559729560740460901595516200314199857042444594652707422458229181330693956171258993132122095148893297554355103492212606419762593929580941681458328333826353958541702323171043855194542547061853536127346203957772039643453574514681103357019180803411047133116598204202997607467074355278096071500772870960113850883920172425521039966479934272284490428625713104087714299075622359736517056597207409734843499652222544027501446577216481055833852074943325969792270996984729235271424350639278804671623358622505578605310001653575784054370342666598188081351855134739291277728938405407427243051992581836514682750411870022715454819092598260227433959573894694228137154689494968306466173911340876465471315923862635145814727764106956671721744265580639087420069708535412576594489473422276444796541352702751560441572462243200025137127979479425275036480734521395559588676865797007861984891125462500294418280487017971664262341256109006603318348743668295002972411199971836714343384090824128468470324085680830039935395658416034273003963079345694671092602221746292398567518922319726006608220475383815373331809051714559693744054949100703477447395606775514904954012362618613077479962471180460186563783172248561872952944574989245508587232870040010458835014690183363027868558926440182251552755084713303100533041421308716536811737978338807642721687070841188673196749860750607272560732932738295271860233598665051494431880686540853633310017898404080473977162011407967009686244116255567882633937993315970528693448635390871620622413044941000953685087599948295099882659953719370226582004392636965135971589391577185200337078359646121336955029173004089115123589990969365760434873024803218684631388945720908766408221296002426382158505572329915042162690711326432846423498533127350313338024320666444152948430617889764857883942460296377432624344576762074364890649544141206974507768872386463731230440278944881045855318616611785133070677737018296033055394726038528367466921540358791710310178936439348650273939598744194976224735952843310569701813256133153990097377026760371297558959794226861505850658337674084901662727136203133817053901274872954287457942038098444700856680031344808186433848104624275562145483243819882295072807498013304300824299903852876033328956579431354013028465801888209126255153703429971311463966428460310841820984104339180533699611976683836658099184394081186298104200751341873711117383749521697133747608887030840281393117539072538544040357442267092206245828544683951908571013050637842580667499535661000350666271025913264429234233937629866864983548053870837033609940671828664488055477138325833694360739788120535789383052976069401106628327799323309241350554288479176241272171209989347211305042820249941428110146443872399274441515258516390246718372359790460327660762792275573282774870582076722567510091383833117869332984420846387149865329530476160912853417378463410178538403286006753572093367247886493993713120802797757557290549990336898044742565531429799236864830295519982948607474508615671067167651707823029671067683022740656152888062866085196163408961747497531958541567634022871218441873486970830558342794425247664952809490723352379014610123964257675445426460962177178873496373796872037066916511283879719957015620351222534450356339667781681596808690379255227383399347441371409936807823140937394070412572581070050422193039034263899416815366187934799740726174072868115864906284837735825986621814940486338049590159727706780486327880269125087979450674663816670960887104664571289009301635568163831426889616490064086784828041806945674025347641022149323669613947699524265635551643319134447207133694356464409308998100345063683537167078780484185022639041673357690147453877704629763883631202086169006693258999054351260011160398122468256282789658607226293777716806862679037313159480953588139661555004918187930345378807333098687228907956552586720624696719315286375634997376268756920670285100105384556515076570861541431467309176054099480332956937106448028109854297623935802929167637759750239681758816765619543139503952895971296696288568805175769617830617349342607811597247928900939394970496463072142683317370555145274271767282449401919769894621525422701320276506539744737894884489773331876828355997951635852569287727778486581172038674299338882378014380789601682501032988122241723646223190923823767042540203253247120067466101132040157005017870419814301946082781772174080841373111808333184083364909358271465965034440225136641974899400276443256144861680057344977858102993100061349996302751398592533344965480522212013714975169960502567094663751866305659349766199160295742136444734168548946083299250060600448012671066840622498154639687203453753309316109012062884443162502653385920791284347826166741949942677130934023676785504254048798941428661281681504539384511000842045711716978799616600075307525547299998396302375491699161595650834816830175798919164798521812637905637060803172095431689941847781516096590744992316662651198925938120238236007215629796122461824785465095761707886196526201961280447284047989842230672885484174089601175604603151030814688744277227359169796604920975688960689730155590050356116830900603604865764922215899303542530512902508073138610197584126484817688393760138510755745833680586474145058519392514357291202212662872537523786991727948851310470586535861239533933386596631650861415330856359475205167522606287291635374397356508662917581858529241091655493281673485826915868713004841611667753488598109631634263555448835602505414232563195286190653267787494343051829306676111126483844173546557105901155351219430534118312112478195914568319174954052868976161372098380476490932654328865198574594099286455285388456832969007626857923067194569530090826749696297904242561187469493787026673478786899723009748657514979625477443059618170447931367349888166991901481219026429965513827055245978956596867550470666362989153988261250035529530130371981990897778198815649254386688389105710727694797643351102083027921585518396725294833016713592512459329079705833139210512200062959017098068753282156059713691639170066996039307328402173440272292635625239856596576535509947979729269500919991349946533506289237692843972894417173315252542628020704043687491675188769257224066276780844363302367538237412544704922556297421740014874327598579806396552395457287818719020866250895384612600321264780845607038381855023920938251778487312038735209243292793908121246578253683138054929439875142411317042802510032307869610509513144169026245221142247672190648619729371488297120735375738481004537637863024992116979664009670319691806782529072051047060403214668569479027928680271015178176318821796356552813530541987460667919580658094111413044294568042322262340213627636645353499518663031185084479290761325186422341779875086685742194364827022267519039762582690652028538191122079679300936449664793359687341439045337924239525458946724092743781482482372352090908938671983037119614397642744675747601865704008576325879030671360304062382334145510791366935733817512410174102392208299610937066530153385472865482605329199399894488360704543496081470904548491885649698138225747213021752144030275491573552416302950143699003254718181507725476471968310873777604436701773862880997446520582053292975242044162414588140179079955817274260447863162089703879015759861037201700762855633365163048710558607510247550327630006419563464895546534341008074833097345376973993713532757100907747067973335602247868355840199925189495464774364110362035408894086851340409034431104368085680207712326038503599659618619531362835273681101467894355377135696636625572003218489905400014733380212947140468061399226048833969870736720896882861872919288002070688017444889463317028738452945889974178028089221998060077574915508594192754161482872385282299200811064789488579152904593423905241208277215689299937351099648891818134743595355994025514626676141906846613251125781954096542079730161866634343495061988106208501593236442659534927708822189159518224564634983526919044367867804404292051457486638077470383230363307751821249257326159629194771338466335400461476440396517407768333467259073322096564551342303442562893413925835614990897068876289219448172974597537547223022595628873834978958404954764744333186038145718109774358752629806638193894602389090241692708477248915425322454375503881153706398551765601382610408351755193142406669106006254972870279092740606968567150691676550955941947757502180412555639258501236798274081131850348289211797501361746004389181616203670878383978645853443160599920937458369216868148211197463020565830175611111135359895226237903782130525341450410881391313954241324106447530993622332248351112488482969736784585996134113479250741563879164668004185859018240166118447319144634063156362756719778289213881069666786830676010647698705404267702408672906744352545890754260563911779701640567851199447639282155011394362034573657867678474584763797818419810178874436863153979528666092228620562294811485215423059845463003909647102791207395659462219957691601042710296053214788853729790759018909711539453332885698562047736326055443874058639418556153731260524658549046022495561409772733780279291764587431564257388063170996608645378209735552478942947901352763530465013251324330817533267222040726350096052226525874399244518817551045055051654206812853104277946058398204589893997594600037950004659541647095143913680266169947220514056490794172800711915744931960636394281224697112734473305505912260912528249215688417075496905755141859791929627380849148329051013243153477545341436620930732918130932659416403166044230484398079173750727422897199963166630067073324188468883744193298591636009532786464986675637750814662701332742396192554122994326833667464902155062396976112142090796561964682600275226523181441605488557365694023242442623347483274668064824675601008482806528826497808873610505107042742238071949974085556132265805479451955262990316205140763056040328220360508321637866644982208391707306769508934412702462776875119763765557112883386024476647690019020659705192068063447543165777852974887956004573039184862061329227206395127981550689356051260620631765071107244065035570887268816120406034931454142355266803682162783135405643308891939554419981842008018221250637487187991766455903256262018349850214779393375148234168451494917603416751395750366580423984802511309925395682332282890388722192678518071148014856960791985715621873208003427516304472669315821575127707832127064726504439841155055408135294148182210060906701794448428950789018477671171179130781858064376697130165600877994395185470544455960759058427183437662530146644915443970042343337258041750414084445577446012059159859946438135318391525776348434381748627116830359974237096397732121180352163394525041003591661682448166803554505870625005668830105850766673408891803646188872175416347375395158782064603807655058683937266506276720655782321322515473988546203347966480408362431718827532242297277373924633454842492613660488761858823148317157280242215205354531832190650426902989873178152570200831872526978825312096119616506024853077381644589033242721592103529058968996627429574545533053926870260126068779854223777267251178918756827030194041832560232048036113050363304724586562240114141268563542370761030791567265212330041280666099844576542651003681212371613298688954118292057107879098167740985545922352996498065604208108283465380235023619067915397827650247292408562389947299639150503024823471781073022980564354879457774346237545016038169687995704588298380385865728166560937512656432307985949357350039190879991365533508623907281196333448942819811696191588753078360100035594430495816257246388825290075318127851273135402492592475230861813202331677803450820813338350299505454775089468053322770242719573288255947252278954037738312573215629626252191870626262350163458528045224879705588537743534910361208924220869318297364070375033880455853680377002087299669604843058836488598238933161179045967809644771412985837383776016323807775617875960755299846482171189204267270063694385449857731813154044631639023552294214102876494568000775972431851139405739456745067292761502371500931361092018242589384974532900495044395041304282099293692819110569717747178282154950634502631971402684566079927296898336498598319570459006023586832546706275043571095852518231514298139883807968008071224173596744908927616196019722993395825138386349088291825450753941607279837738892168906010873581580950430887621719664008381981129372564338693502727285691467362766291624963550166169229594948061300524699270525064466534702095595661296508886722575774055771838580507356401313850330255500578968266211996206266523932523740345618660828378386617335003757974408671160409527179844639466277820801220141434547141205406883896244436246128564109385966679535823798577868031888840726876633017840434641363610510430819525933585082339433905539560153204326865595456630146502774970438758991827843161257164231367920600279048594018710106401008016725239968468769835768982345704919125948186897883925819235447509027612896687672230253239371426430280076939742053665004380197545791153493358592207940128541552121662593348824240091094672677190105048739304405362345480076207969929034790902206601950862135697028890699952078838685778799803878320370146260777661350745736953327439970484945448714922109288828887884794761043247649835034195307861754770930195034421258272673853893468148300870513830545818474494252315274787531160107803947790142496797281007543645509690721537538996666591115386162544053005026486144925073719665425362113873905499586986252801910427202244990120987196939287901028548970179137006420027838271164809938837526830222162438756948097455700055366642358338625018581620883588126407299369913419787742578854925566285784688004031762160477915051724431023406677220548746069673248438514875734436991688718357750423041979617985224455736562560983545165493422204863396815426823200686417943361664087681941521486887430239039169166098950357367720739853967605880789662714271299499948222987817250627704806253629716953467130368866869517486865849116771372453680825585155078567196273845884426460739609981104400789276163278692618391712367109614790824143094426360268607446341942661369573680605076857900628073160801478012459651412979300710424068206402290861823634735520063652498592019225271564758331648730116092446575205462788369025087939484633036901082192365980166050314362281445539619005121049705813233910287575128866296664354571459001863724680131646404077431550572284053936035143414417819175084615375076070415961863726315653267391140611039478276292930228994192171583513265544013016655816655021186149427278396556014203762232884908109601883002459315825013543420507498686529105037408474211002001025921542671847583227038925223844390275720061991442399786550550118269447796701140323794421014019124561324355053381446241468383139119677793557022662705543694641243694806051477147683938874305409495904068430627952951952600506770434426612584744091555233351215507598809279408900717725309942252625130759253081495390765278069015704030209622136677344996369438353802684445798100268072864021549303369256833409752502932401358121738923193300467109206504543582065757719853299873681658724095640576610600300869283155853418907647788596259223193138155163044781886813862372404382363420856627222082083033693778910168468484961102778485933494085586108377058645077835073571517095141104656870169350611873650417699813804649668123479646308837144116855982778182459813726184573474853819360312746356593004751723813528694719954721397447094106639967799888605500037060780502728776112913522087406053794731013171451595987312578022954321508715791941103877921978259945616557036359668568075394900466392713752009736049070870864774088603710766792293086983616137201454501766394972067551110297351255267027958079439420004322969129832837887055976529971950050200893486010381526032770201809200799727579029321333530518433525558847180010519713790416693158911970487180619100826872190800374801357548512013687433417541477945289896201817032927197493143193665117839911081578462662915102844064945694342199832632719896237887363620971336947965966073970746458263626662111791249208276800791525560176503899306583810454086076454747458548650270347411754855678802387327109382120787838561455940873272172160337835020041499951279788539484498037390089108633551048804560820959319137250287574461758376472762056820079111363939219818091413348045916599006156543305039746348007928762132516712326098472704321184869559687021249843135359525177285422773314188597267666972494963177141826193313237654365241599435825420492715342663046435248480623225942649565291114101264164955897421821719784614081737108430800850178949176569735773361514489708767879402236335100248897577859029734005087270556852660484201219728307825023132772002920639352262501294080122472595549947395443989941979971629403690441844502253535260942970041941212826581527475898603870405910084054798878886046382598830500344996804325715191729519346539988814714786629620741038286517873145701642173512259401920365861845475616227552426938141159530979458143679871746353898767721816477788833531385780373648396645677624308732304429723645168166527837284735657856586004753279236411390002605809135764964605627864956177233138896656352859202986241681793342175805166979709281870842293382014802637655420309961769829970059662016330910284245811148833122709486873209485592125022265471585488934566970073822948793496967951935890552906614267287415724733951085029980105954117370746135832508206535518937269362438180932858971673215880700404527400564523185816424599429933662997150969521555834059683744913259203837861280155657386901105843865111470744104000086719083480281293029920687224338866156503798099626152432049384152865756077615601725724722692946956071656298103296190767420904369399871735922770956560131342078744660639441608562362638121229799240136646605318518348465940209072090739020038071193958413958827803628598120673471313612146483399753324157081279147265616304844090552213080505242649232933477969934360155540351216296465975140535491526510285585848884574602990244770109918566763448843300703514207428601958436878642707749193325289179058073490979233032157744042550417229286694533599903716172173043118585254753875520709894524159889732337769395181158056346183020892611549923074308248663625375665019828208819579975578442988861906062241035106864059278996282051960596683431572437211917907821749841911892063810310242885868334117685428098401040479736131968365791766496059692369072369022983970640376941849705467687295245556736230963847845519989307346431559310536866820270285148925998671831804116244217902341475340112694763787597315505873934116783352786689570551908120558211068489199612738998852417870323680101747780587207712624510041335622297113121215238786090495940440397908729929592196112790190261206174644664564413113743320537992654384813221354604965359504596059330545859912703998192527779117707694281422417541028364632195009140652839204872657965458720699089612256231422367932942456203322506162745131869864365803947030355608284884432236123213173020882867885024264053408839364096023619262253305909041988583135741661702111562188610373811981422271661538454676727116396887076561213415281801561307732267961426198320120964283852637226066818263673951469007653243203527800935945383204731255971577210612861460219157242689007499163051758738220378317591353550793671919905618564798109886983717164915249886100040563268751994335156188342343749315636471713771000055758842301023947488661858352650731237354874953847452399149290013519307223957294275796456014484987056672795247157573976624806699600358891959861399581489168580583913665457421558935780383602881798236861146816294482465713311988155621322771309602729538422760926823621729190178611295122788019153222704290863164375779445453706041816170434480330463211238848273924879492556470623671686128481730408753292449030759240188121527270671595580826227285486072107108903561029532192787839858892095936790759914933034720077924128306197806236179395616598535456142311536426086973274579822575501898207771191032724195917804081702388727416009903490961053745142277604085211794191073674631531468535590881629312909867749877092561041185091036538791213924722236687376471318335609882155400240691730044325795462263879248198324046648247767238371406214511948971812434072637058529830383861133920317301973297288652247821352723142750784849479396708115359079785502301996576393037135565181613342281242990309463472579875939002535510027855068666951359313810996252262853648596881202298934605803509142911732800105090330311147198915447251255931831381243189362427812506716308589832827987936967530778261254411180261427684818736156670868962546207945033895326716956244999929500457135345965503347593328091843237480645982980722727216821694650546563200068955741780124892203950560312907856536835795453126010897258306500545488802771539897638199181997902367047977248316019805974905007801841944407399897132940973002797522390017072329634059222964600896325547526120887640483736226157214125586664138334279760615379788060954721468083756721502196954260424852568876762646609256293458992802222241915222758024500609392638161435530636598745722489088891019349087245345624360967038979018065687582623107451840014615330103826477643307787119705611792891752536546773525108804585680217273371236634094162603891615527401351758199004487658555253633512046462318043325161553601069513772209180596550419977995421987054055767296618867571016666024199671938427544210989100576125050272157997276305008335798572480093971603029955389429857163234610621691095821464959772223542316099555979381049631249846746410900221003106525640342419842410209904066803853985012963975066303455499750478965327456463340671192544316213828404702650505793853766283627188123841370083892899551712217752750653977730441499643250025221943261548980499520178550938195646486219630121042198148787044291022134923070033626513547319955083680926613775308274290916701835179665976234973266949566959042572556318623141001043638817433832348139287858494728691400110768283569834750504912616805533547584594533729313011429425412838505473192181485172111476313863488814654400578742828875364926057549251978286549060665621448562302304511748129695082117149482747883949558883333517021374470414011558670269763408188352969755115936857554609842547747896356380931139366793946845111027589674131813844239442377044642903635347480919691421097136850155232777238752621268148354540733764623911798012836627069850895787888342920999787144793818627231244039052838091876215123594121435976474967538888403141370280542608013351886417033674489628506126091494965208605119116878522143028751916138500410872694794058501872010224089178769117261011735869289564961567391360489196747510886295286832144714859195412386463595939713489022216797338599113553306094994416715561824462346211830992089240344546318374377768512872250855059753630671399480210065762128896813364461721435130557434141242238380063289289348059481715907343003327359612585318801137898777140088424507845582784130212741358963680709667980896061957668288449871622355340829343947026736336726103888888653992819580342651728161917207079390737544447085793625474103224624464403114780057905094737015176567921939361062990907738572215525249753926807392399779138260159701392126302527340925936736781035187152890242424120236071398347445708380282980837112545949198789570435606716296261811383255565517548507763384181184691137707647463068230105784966459531396865337046333220822591045135890447209354242639717802089668806642189881944844024784929582894793019484073498190923747411349079152749810134576370883336076264544765914239666167109367700221734088740064419190012073270688316920386367256393243209324891692581309106950778780078084262434462646561267394683933737519153110830710866758340913224157401388356274288229076208354635965170171303462260540842085100183734349180452904843645430362364992105662991888312565545020207565129009930793078118077672173403127584465968483009672212285933853224146935227102942103633007854042205743839598722539104426078674132340133356557155168931491608140853052037747632264853469641023490396399836554061481844688116841275372337754853792954077422507349960543123199561779503207197404722071427805170831737146156202245981618400924999993402064803163597362361322717184258570729313994513002646462673316693978324263701061535287493916554480362301620361021586327162870908799697970651797396997983585145071447238034146711825885998526356693917876847942282699630342710738899129606460073066551968499514693142306664468529613486132182555079888205254216695240910777593797682581546247987760566668281601098596782647137271621182960028933351263858999735633359943703903551195150000438713696216813705691663085416721899858389705827231592823190742190530081223442246893520453139243661018885846174236134397167900841802803160305398389338577932184979568172228225741465971901298142097667632055086523556358839958979050082756056377408460181496009704620399521910507166606904069962844816835909814635279281571102741161673943251832887601239155310254414847548950090957227629788511212649078826459374025195637586512393207930347206982944843730824069367774580219154640402801954431038503882905866550180618105144343841280658362868056399377240840572003837683055407996183417707160784380172574856675403692979836093745552911130534971957004770741801098555515760275267025633245234459815873548789430644275539401195065562858462111642683304350710238993730077545120551502817622923897613668109192535449068194784298376277643183802709628756374032874284301262503235881105844927406077899173644988757042120270210290861430397188217858502073791219184734271210189515456067611725268991726964556597546289593804116551030104006806227511140618190102904568756118015181151857989361077443988513344646669888949763077739569408249920761550173859605794546605278674722433198293468648508415676519405322648484484614161526066749160749122966181090738314788975520006404434202856880164992622069079444575116843306364335778115600727204711285227708035287280546090102105113442396805968421472253742438335305452914229579516179026431568202856757530117227556690797868015749682563574836692380158964498729130449486596172051827977301823259665910751993834572607717821968105856400182561664557151284211270195306315719977111906461875012061245287673200868656125042504970435642158273003611726108626589412324123406549853293557649955154638781754242068855478818246012854824529132030170807376647542749303003254764655608699461775838276401945885364148589202527642459185426736471092888808721474550519420831546833568729416244047017570256343547746852400638569920564041378349288137113056582446263279150039538417707067848914203373554265489990640079698832267661494056641132296920101054861658373349147048969406927415863181672329944209511020790190154463063547938945493218683496972552298554569635454342287538389685224716538837034896018712144197773976075819112220870526333753538553437804907466269292674749179951821953995033432789633031944743093753390548604234983348730191127871242280559431227204407558094177706520394628180064538186258193062959791288825839878812911546043430651695608728732551918988508619716169196229246316684718186426515779859329481262776916214594836937460378791704416797056651185625107810227466943808320766578798464291383253691111727392776465870181323088998194393511070966898529471051620185435124951098722942966344588018165769005680475779947089200663436114610318228626032704507183368665412083619644935219446555075345982054342401130378211400172647324927180634112965831216237550792186712842384260153890592697912136093731613066930042747840326346924589696593434912694640424338134115324298032763221158482020345099630929407679124632025987135431762738575215830605775130290243485868565602520757176535671007958246448155940122844519457542843186175392775935944501079575122582323200415059142251328004376323756414464593235461949549251862364290092172751074730804358061284616276372582431496054548122778018617709329077298302444392238376003335470590088135371543364453847501027296201378144592857683900770887350272188387311334365642562761876561054108984969641173005996027822416214558539296979002682098066374803343096034298118995322274744340003203853765011810932484854677753730136466323734158807831824929325347579559506900519402377519598561289155972808796208589786173538194223050440508963923475931818455184569424564184475417257460769449944982827310108706031949448464853471656418314941484635298390060805596177702195782923577914832519043481057462598910862526908327709798017396872572962068196273739443087331068683030386672809150825894973959540361353626372954512742385179750863589909281693926390635632977678408792808692499557149437046112697786209587952358147033907453175865838902268389206550597857724415276481770227782789333006132028382011019780387521040713302192111462360603741652799487766035869865377183011840362007155960148989336030175748507545188742624476932675880285342386976817892168557997700704572655451039762372526568726349497574940391362817799028280735140876806852986876456104880679889342680964188515473740764888815725166643512907045858737784358137695150216752007740942916193995588378702883005673896581108706723159277487230243659121026918622888163173179770775668529249514306394989093283444340009273222078340648754862184863715234803138920089739920438491169206820709438107635404780886876993795536926815650882629263916592342684310017962971663996496890082833014459718116167680540572864863822869288115509075221987031938887029819467032836057343627349455235428909168209472992726394565302588852320996761074099632164966866658610080544842966332872502973172717357751985130536829703551411951518869536697043133761031167033595977440031425010944026497961638882163449954750103587607068580210609636130324839590722968260484577636498410430344576382293983741058213549736406170798966395002747933288915675621069021830655808709580148378735377604621729110165844498411549031271299822578050255247584738639478450473435819695789591816664257621867351911461169587202641596610273661653983614929033611619136689433267672993020182980257757093684089583822178400544259071090227953033357325310946759174257404713354989321855908751784003722734024929889182017928706307769608600668924349877384319258585932255058840016088569543922951831636343243912172353912980099570775226760960727122948129974626171573698131478052453994959844008744866207415988641932025700857607950834308278547111034878634366810874606547565239586363912022413310793347102521419319102996346232440840631096935669609535879507850656332724250563071868454290248400564518433302360681149433535275731852523542441831671018467126868435994699432294121796549670820079500711442814991205158015754872679480466410162893043105136413702530043552857468492046540570405615498125805439647402884094081476512871114551009246867154507286461841881856491479306172540016385984047230656581985499102769398997800889759263272193769983365106707490098011401953772568911837712765284648598094369450582190051318485334023664349918595740298837909294274497141491554972830929262578327471070468993046931350055294440749120246818429177638272365313809067788054460485509301971242430798939830054262258035755495113861614056259412858354367370532373027098310463586830787413019799897479581847225058945151491767470081501034356791398264707533519766401393174506629370633683342209473022091983016804046067325551433894740866479282684637400537790182679877715871958504697192058170472546467465582553286564496705100362885690560082742020298938034518892903024378498136623739975700707467076578988611060824666613945943447323244628824159233125648280050631785421023233881637639802796714541896248682766939481418099934535140471779750702050125788201672550544735089933963129051286439272038656675020673065823582793817550076457660601422746397874349428031965550164961110560746625572471917509159956187435885143898835455505801990318048921334794876632911694026348022089447141735603918046131089951317129759024634744456447855841296799919249195549479894174155070308791250840118883833905659932475066595149443213267939305491527220331778027385044788348781357007109627878858781012624259957354576547073239436841635543303641796194597803772450644965751371889837944672611774823249185459687691352573136031950300373910066699342502178424504048859418637600515847217015761208749053370034983480702669043308124189989928535288683612925419513127139747745087075800013642372384165732988692010834578624976183112760150952197166620563958745059458802151486001303129476271420215457621131565093851316493770040524839397528913235235213795896927174115045897332903381266253841141157666368964893101244327477326791420069411459875513228201548935425860741726556137209016181403664905191307565486272160120103829895639475432776889397144696371002850101625810045575007306003925506341016013074060596944198476385959515208543925686829933365842163348351481115823182697527727897984678269046258745469166318014034733041547523094157941652491554042086172320936348621050643250640921527927229189331866294430360355484077872462399087701616347696804345797866104111596751758710344114222617686575516459978106118629745353865681692568676086559205532809243239614993002306650064131617302982871152667719898972229231129247521872866101752356310705854386588772711455739348868437012975958320431679846696438674368777046525690150759337309063917148137642336863031885798124633551547083265428418523711362227528815536033352498037559386678459818220188383196243335931487791131763229200533045063022405230470436247606521171677450195936767090396144559732444002791668037386136209215832905515530292437166825008169287514169878079288209399967567083495356608003928623904339322804168181411001292617787879146980753931138355858662726008810394013916881665480437494091683792055783123786581760570686281823596396772122440280274736828883343427592452759269207649292509497870543764376822676479525015148610111267820700412352671072502493951569568073292550861792727591560887703221083222660018768156261861023530896097425711374723014948721886024305473451408465991793620626444410994251765906911805692784228574702609528570339864812612206336917616039524983563586748564079371304271210900441438521475516960259397182912413889605282700179810939365419527050808927003830322939844330127466357920641919506622833331922613306264179064814939873508709457939386093932145368935279476909493781524054202071916225048469316755366921319301395074013219964257886613941282316783852070489619015105984442615610406411398150688796500015656039725134447000907570179541960545852213743430392559727691561199789482630282134750870950761956226022340830765465305686967984240558488850069329109596726163305909366731873955413956339839750983804937400055606052102836295369256819204741277817469653234248134811600082070964614999583320868559215210085994683929467075146962550675667289311699565544200143065676646782269700571323586380911216166782283310543147438646296005908201229504354202603868213147106355496627447314345817521303732425532219719267131685230563563908498783999181671986149679848725931074855038216118299454320635277062872001535306222342488773349335879592717357529978737135893245152214048696955244966070473699699276992455339144438395815689553459252492374448081099653091008175466069958392843788458633194661907691616753328540270099997854809391097884537867022956682566964018669959083059810091262714381495338194579195889043159582249038196559497612959232041356607546096588294736229249130422832109545121394729054123833626412769456607530721177662597639103157000888809862781248308853162440394799569193739283665222538816006754077533430519960596740207582172966914226660575213730506081914923193082127454268198866008633239095510587447375698298717338691191706056623359379173953382448239603565547653059888271454364723961432579189926248397577968443752170492981137913659552521039261236276944835489207201526951353096035950009947791206143343782799621138915393251641250042856985143416357019009633048469718591458651888384678099550343613821579838157802655825370675919722154212082226950407188677496946794791543100926318485778984006243181899238304297527615081565293551064189532650016786812158067587995159559751922346228487644311680344588895241647506354555490944932824346165626822285103367939848229089225288885486161525243867612443574014301741115875800477995478748726885393896467987761347363367648221055627999060938370320601119460574754129565752054881871853211607947741589015169997404701940051377329014215085267932296001035755415128731698291990894913843108133922403279619684495477080389649286318862861793868582576586564555736124672318921827381806888135584063996077101204198190693550623507791623788547647089808356447418115829774647421683730900000013728860369682618781886594323322629613316621882370925852632816790281805530241686925740651899063385768404037848624092638772508496475388802411413530837917419045743916655628440954645961442998179980527030111295987372081724356668062057285110477469094293053648416001374666022351643423401464139109774126829877079022213715025189350406352430306173611883719152210515388579843362224704567783641124633827067687394621201740578377513047120018859969320887537692795868753589050097300873346293917940762283587531614736263123434022297300340451489750862134283520456806160859253807837338426639472966138419102941239238922263895871158197223268413070786457002150821893972127512575389226936292358046047641226664708830687792323633408611666547033224781658699719616890699351995704663320390346357909490390446897201677159674023853858210705994076548599576980601320834566237314028297566796467359975862536815355851742045548834102182551251621031756907260770903045463388907558027361421557229402833704058832609959294185801274737653053768244992080136991606350131985258267856305794910865980774912970584730362217921801894498300380444425431309406716723567019080820561703516541278067067650196535153809949383131225786952887119125048992908793294098948935683590211715837226688860122480158445697954648238056724310222401534261786155017869495417420731262507720851078325138418226224944517072264758261489626493016773070155814420612244588364399004462754856796809639188076984990308958082383471710009510587795063746386426614590807414454781826317749306299133303616137547067483315440169682142039332876197185999554474647006151775512117790632226746532399669394094106585806567247504272969457972639515474070893887821515418573545923046518071589247542415431349071504159272214579452014786442054238605808132382342858781169097823829999437493841104322353145631329939035634435151068704160781765866009931076769672595982654361844847441166166268566403790874405192744655181591896812585290565905619657381447064818227782653484030100164583170824149147801214814726628798515827996815101413750076679906076643971301070802101242235380867703691126419918021804160272684020156987167886179142557108376576955126703917860512853080235843581579393962274030688060732774920687175446434646439273788712502181282916287180783320451928426973163389193512732276906034970146978375624540412934824984081263931426324936982562063401206481107926429466477502763774452043190987126586909168548821647889331790852093690050824790036557297573945124049994905259258859867244668829024473812387912774013173710743687966154736055241983743349593128905222049369132463645866682823678458473391855693509787050769465335467955930505353527788104780235226266766533308972104955963388781802136825667220692819585647370162295305024166371825292079521835666573274640411895113953607624677588480119981673113623997202910970300281278667601469059835847357652913142515409528028908512829174076809304227226133905264041170642467564373776236042171928144582792500749363549482228471668259663214182381638875612144972881183494327912732906225681139926163468451891503383144433956556383566067298815299005252028904465327150184608831253640673293643907013691650705757213919802120633828766561533113226863122573828491614561610573044287343119437326037749238732595531555647706873714540357757773030763062545119170748244793942238333779469641844614820443030103617041220253918709258645569024793591472582542221536750173890922606835801585179890560269995276952637273767035501629055092898710772899416620546806452363517424929096633781978928125381078074626444810894806058983317779127428729196544990146214594343346684447513580478840604684756215324678869257008326959696423484449640500522250456831738891106297470015971680528677480192557177586607773399708893488181526690154299516283792621796395789485701935191390585231331981637082388356224982160958119522983211986625892733310119465430192607341751325958207743856862491719326202072543308451174420634347405951220206571295911480136002949698009798985981233009045383000876351124456330835006482811994843922075898361886577964924224992950355258402253174614903975615598208955460357463380886891951906823140457463401821774208245270591878262618627881733362612076094986934424565533558430035406800861535106083861872603080662707395314502870337897322551669037447890230185903657919258892648793835271729530628033533407412327717003904874473428031622648977875134719072344173429718092061494032851619919120736886812772098584769811004106185857942366670019920959443264822410151585595306590944618150023126335170830105268336074848818766450883463276034157866634475691869349495010528122240628449109404956414510808532937193885081274484120412631144604809306834477320832649446224581915604287903684922408093058731322740379720892837882337401083790176154467617577966563789446659164804330498959711350627601426267888478066169566434715558472463162145318267276336365040053787818816345500970698787018720563351133322702359400068292238707861701401199485276688362667383093655568883383748911458609872798572780739247500737571618141990741676727729674004707876305599917482427770215235166591366114585590202742469858928282081931252143681397282625490108539272658427254258745339649600911870972102909843565681463259311634100147629679624312812645278945928364263932410953679971491889739127740641531060973112134369249065848832045836406769060249108924964573552986808745719772007307168443803956830420791701976199070516867644052369386570541011223709663987716591777387481038924849183246852586413708392580039899084271710502266753072230484227288830151705760808139316292989402052485303141627501992373213652678082154983263573751956796310145906471243772766943919663129341642492512255889588612836011547008480205270331234088688377735487073649356471580361889979304484496804281933097732583722951702481263815919275651286108189748454579094256052388746853938123001671469720297703820940358849888460938659738643135606356174106315022840642807040806303325517242113161294428598673617768511029486212940217530486652889848719295358177996266500252580625169859249255255975010087793740101634761428981056318626655581217431396003867939567817371268049764979056807493255963413334806074307838639374616218476811825397371289375126713380644350662322793294805804037575058450558166772372831004489277775117744637760845192746066881509400001132321368150095644686280141948769104144656224048097267496168911206901622136039833187738494909354020937715354419097650480216543539245388955753541204561758180240091931352123964017809335185516546504780622601287785431782663801369492416410999985533488259261866414662111298805719903509784436529658145742050406765913404494655239509072050013518346169422263101992616978735701343442216783445369235159083042573380501739970160837951180695067561552845511509024355241676127342235640563125016624584309242842782185603314505615101708802095998661615197846765006119391449153854224695685429712576674741401746896233092431334118041396893282329460380320098294977398292686957668763142495957684067687296322114469719745186919796070276250739373651335971864043557502928425062940233436880165540991244152592214048134337278729587886849968404487209398322309510467980821621536280437838242318519357003163879315125228689631394033302900817215664289539818020157134823868414319688217052753835100148522249067492177502328628615984347461763054045512278107118422823535200099068431806868652216327097326867465775357603801356612216611413491741523524872579402163429666185176772828043621582727513964718132831820705122815897135337310102063593562715870574246229671990813033988764220838627724802075753364837854898237820500669125784671645495398436910039495903013353977662939923820856967322106015869633910661083735965355879664971648717216735723025031390608978757110678496775795525056794285876787192814805279082959039333262806784547525982823068658179763604389416366454800971734977390924591155516900381267831259938182109415388011497577960605435594504663446946717249736432294592581324682449339566696321180661598375678822049789878015264989232085464897406373166268079152650107247975315119225743976709316730878945456880087311079111218292575105666536812551164125418581344822427705908585690737512141953344942122624053052409521171370623508617881536295610939223972163556204794984383770474171451526300195638408134167394047651188937025962447826208567498464241080484746097938579776001646443695844083281748821088362511591888737453845958391009235990806183686870367115984973064538305199312819926005415285361445056306531744113799771547333885994769052375597725694273142941355945016452748704271024346347631220180809626691110250672474986270968353936934617573857946269017951561749986560507587845903195563691623562175431368401886794765017662987223357297390838923544410893936787127306417113525972785954670116266425610859006500110513734427776299997114718784372878718575336409475367028590798493451723824022351607885424124584658895934044354293232814128684740277798516387538904013105714543114239966054899908169916236573053263375947285638985010290866179206103997220728072282041703991137194497309340223894197474021497768085009167013592129536308540095090577958113036056353714442340227514053248105501090910976072717983421246309118672074214312618304648426850319206594526534834366135071466632604726845619555239587957998876049939734210416245549974746599725862574522281958072362819051406493037943302679141869439916966211116597844218833649166291333321827257728173106567487242969357715856364602634303229270658766137898909830938342472377261396175964411149167135270172294330326811178840038869872723420060723848968619043429948747453312465598259430168823942840810786567434715966930780499358469104824034061304492057032715168188678703745227697971958049267375596062638817848235849836482144987207013796164804988102615630249088933981005040949792614696287324113749392455415459917958756351153704959465984373846989088959615376415183820396957030642721751414090661901270220728983957996600657944562764000374145962531888326611570943399155090913025173919912366823836748862333513636360289693802652997211302423657129706935214197560209230745677387726672516585747294327100549518072031875246710913657594163067933777984156905925783700156055983018629516904746842311811975434234761443369600659172427794695702436995885734226812320873791764582259633760874500278377979771445130676083675099588274332028475596217545147791527361217068753822588710096192872254408367040724154415105919183201340323382210801126754582228601698453806988142155195003881598647196477264730773647976876273164126556049385875431557529147650653371679686134288347815820483161936486352626983381046301244894193326751746862078793828683951126502082074556313212230200850544473634929188210684336901536408540036570866778293129209291559201983166943774641390519126081500176523680531652198726256119973950689392249199595868261989226205245808635583815207732769796447344015774768211531856608916538445700861765900632889640824050573690580558372480406401973484374853086631465366633944093452045793815377207104107289796143996908297138133363729009480714626412414735978690795349260350880502215866584021388600764880232305201503521639594344822444273886620298287108597637306248477704511542840127835654102886442065035316051267667073524771387919224007754793976228138215986928367069418520636339907725603544181518265541868161305110354213021221380546279043266682511621776934992486374363544407187115065466104268646003672601857244523286040485645243818760829433318219889194000728720812806497500051937852779336418416616767934126488142714168446508230608090219784703087558180893991867149032111802049472933019926319739178595556094787599903873576711202085888235226386412723103706038498723596877512495249260787065466872644098236924510897869443639304067337985269381757540727831457788823785586234638349302025875001072334226916840617030132898226070842207306461555702152390659838422631671228629946886659027256007001564604451182530136775071692337629578680839945672408522204649777905618648547477182896314569111736942236610089318756931725234152838862721305952444125810542349599576266613125650472041711653410085777631399316969001891994961057872536716413872056799614646417909223630721920611080423447511339233887573568468870194639649259089916391488819395294402807073749003749879773318007563264992526819569562397232919712067317555449535577401604163117349279476639264173685513301493080492449806016595782115485414567496724543202771716214549157981101519695570177673028146000167779607610171005617646433429968791769857092177495225402846264646417118032195300895138131837810112734337594878460237678402285874705410503486175067165967375302054508583056832257085683425335324974309858570468525153821735694321569140240283417311564623956101265919128536477863761943909184223543815755330321832722233712327930859484583551157195193826005130637814342626903750954950985531976797102991523291779724098869180019903248446375626140128913864088135405211312458395532537706139761103137143868992103467070378349816149761010425672215874166819344922185618257020166671255911147296594390234637552450168579537405724133301729353891059845089193986226852317893187639048735211517469823266246605231482340122309383653180711094468434866301812678666540482391388785367632634037908046347411635373880548736314826530444165165787550145876806292153858202840992761037656685974484144500595476333834557493503200493824767658656802844377266534557787309101045203062708136899753359865754425285036325665663028308340439592719845377676736333029490134112393747420893720150526230892678692791958897544475219956263978900259566906960375678783142998961707408083835869185541152763679298775113634688533195218827036814499692920228423579247825807769888710869646613591676892997992903870310618917302945226172610570629001687821046719561894998197535649421931095424783740460156323137168501302538645533415281096946984626821814210828766390948830812150814226578625720777766675022215638523198126509122267493613327313015216581521183303966250464244256562946824610165969007054834424147308202421480993734225317641977829384467834449031683801802558290014056264208770960704515252253083355920777739014390067261647462259483840527587706085726818018832408696887061041862547456151133620766331856833233664142317606737858027410028667794011082482381096737887388158927822112534412594370054713874825400410027311368804965954816513623098295214399970527410270987672703136989369458774403685004558294653630761052520102310642781808504249064509526141196842927107358704093663427689190777063927114051427347891151892761444424139013010311339680893575615581686640624920193973333742271640575415875541717943196853015053516802338142939335936068179320486697218770183064950288310287906486151803394605848555282906206044874170711791304662561363695402002620660557030516290209055555882140110767225343340593864268783116836193686297868308856498022010625241162940824510519252593332112857729117458047751983323986573322412487318824826506905432029794542950856229565015717533643955046019736979749485182138002514663325481342307637890352042596131223875516587196622623902220512853731959356471343147892713191954635926040087149568074057670796881715559625585601885246922306647411970994535301665349646431641467815371530550658203843983835299526522776201363923479807340970818946952053048536284983268013158321366464739903951734573447758506884059534575629160120176072248528441025623325252819638241071013933236300960704309790842521110800985470938360554020406253796401232218871266107107965969112124018627074867558432761203468466140192537553766093411478316740623893327482077043822893528250704273948792882926284299929512461742793801179675226774003443843030596106430449907645148414955754552723835933408980460024860333361323719731407384135110772783870909114139542758779738002170060567978989989446140788624196858482555017694613548794369681327645014585625658742321414933244664271162899119882124102405579882808441299271280923580181559562510593183659245784168763359130930644484523573176850253111143865814610177834938420848141421245681767481703388036911826621829361473724312221430083863848466638255882739246522704845132700524345382752970096067832732047177847300659328503020458984844439757457309304207193300924661610575485179561946236109520858964313484521708230993175689958907464128101918276161652321954292462445697315046798426550680205094289700717691396474793740865091400347548799195522875285000651108249613336423223334102905166778131322340067472778709870180752820846063811992235564363305359080581818020579211049204256366846323021446382447594147069335916532340568936681193100767556039393949732322783300497481798226523577473729228073569374567038881349513696370850062248870691230921532584558847152683487315084470246658181235322999162138529729251451364474815183399923592129348005880704914210241337004391896295808834193580513629551323688783867239019026181034326089030943630559046762786420838302925365597694423225368274688007621266365648004339805623316956753561620596516384852092411188520782139453426354281322185553485102394363125497532666004548908142147396656047641441360858170503082098881203777946616220168059035226615158807533983791528096609360793702517101855366481147048431338751979278759663723174833663454400865593700586314400304009785217280979654937852778511164082251275173195117371921761846057705805748044011623932097925224383710051554404548209558931343033073269194948082352687841016105754622531210044248098897434547389079134270314439537999926447595249870319340509234911859438782173471089620672618741462628534512303432977831378868871249759351011365384239470983074396538756093932722129595083432098286261557651242871122982516914282848911861390477800759013739791590619486442289999260923278420029492221085970988722278796055657243951260584159710125709645044639200407734244869207476717587089577636357658931135661469885109493924631011617458800466176077055468836321877112501390279945945038433131625706835308839504688147783120631779357852689269824042678635900505615030341750814545262671297034060589591899341221231413194765572089179249107195537810760164309063506447244154075216055244219259034172909861894420895719541703130655887581519209969775072915244820402386516505590456423724301133855691148760251627808893366590623937552859940694930695020940929554133009313523261851110579033391442017804667754957959488789678616141526468355062285325229956812162930081273546175087340646427333937249688101859150479702238921904789845010334276331809976521057431631424865295019527209259822246458344772849694890169596668922325048154788511916758112630078690436420757590290460698620535100779753791922788137471751775572377272015409198044775078111863840991749962550911632840666933603354862422607400238052123764127014979969530468038107012382476844111790407283603306142999152132688143976831804062120363157031396187592264429332998899506130886678654996048755251591149585447290481440506272219433908745381698181831882887897808274595333498190371138785156062747861831564409248598178360453556185959053039162217484901671669578460215812494400405561257184762541307337586389120215019778559637865579066118281162364599461269959242840346724002590263559478909181946407417899795189353406954483090587410749896007247112627862010219185424937249338539076156724089359462601873339908576088226259688990972122556411486270853693210891200109397261554198178785212714197354870024280977111521017927438749859613489740225009229055594631164760512373924290785557220552710458304732128337489942201092661986144431319025388860611310149513609542568919209136849189343178523116456993712671250010435925681556046161675520783326609638284082608240015228947318332760261997056371111261357202960892888086925311290648503609218256997501248824015959788444082880829501697125813249474018688841457104019508412504697658693931127350639966526665281553690824121562626776406202329926100247820061580624338326710810845302622859709750230808304741229635882832950481461837328950141863485473716837406069321954741019367933934808350935619648658503410368070218211793708422385124716527572837259327778292869849388398959737331233778007196547030765536335582078263888112551268491645724522437321599887252620543839840517666956722745087775468250766887983724539594844281160296470615523885683879472629271677196279867813815333704799199187938984829972220373019014210251420045867996205750049970411198952093833148134425363890733075230787694688638415272830839708201693192821243392738043898459011639432297721162422791510146501183993131068076508074146101090041364089984397656313453418787839986771372030395732662356021314109249843827741591648773892928883014592521505076934424171974553666690484869708330395464576030210353506194699930572942589827209842157934615784158410918776841679121494111084933941672395688398016299505137833714487908673283598477068984582473083793978934936834579951127917085395834544492586960439456490363130712761650308399765129951279272006755502886614723500823235904663122302388189248379405808198149836821130849031792824385265843872121501152141569634714380180741146208104481323788977102194075494595768361142012149832960581132358844374983728417590684907148691786666207037621297923681358447559944753810821984590083116046741252514307169293658633351872219004042100522576512806277856290059582624724184413188755861442439895870907420879214505156208226614198344309670532407920041746214863589060159547940738189201741943707400143226695200154436356987370506693830204397380767462562331561172635226018088748592595777633683124825536296113424248314807612734257637953747887903560574911630989763732991163555623706327941086149324225412054962498058501911829335171531072934120409742258063085233451418737448649200809356357275377349552995849289391870789560646405943827414597355322677311978445346131376275091714274579780342108629486341345319040549123643393325426016156541042982611008187524344763995593022907247991412938006946277972738668839544027632934585480016922112462081934095895839004176700806409981357066115086257671199705426242401306904905016746737097520736769127624619147494119458412576027991590978819048663463571361716229527555979106342307344879313967830044373113709902382157781631309240785542453436253895755829875376536461345332196388488045522953752984941949577048110502385599398560054630779986899314610970164542107790429411907787419876108700299336818636914298323289294158590193295478979756180819538773286731196486583315759692627657557195420917316887673899257467603817280366994787131607396725687058792429558470413075896485995964857828519097291242242452978822181302259830060892024747759258082207206834012017884213920360062385510766004059224640340573144377558566517117447234971046345519890232919157702977082076104900535580301588302367330432134348259041484041360701479476124254297829620640372005043327976887500603455748555536538260441047350010481599325598017800083364434791533687274857529414024504311447875270635772688634822481084007386007978393758217231385563320993387051620339864092190940239748130119110888784526601540548912466125169945758790399497747444583837263377325713767567644668792324425150930806131352624783219761248151190676022429504202732073475431804634105598391309333639265125668929541809897528451793411649609904187729383882311321280275340542525182398378343920245092570645421541929554849650007043194155173304074929572837180656014662758498270330098471147815963435198808382267857859841337707384609990233089931350641693427610654950901838022062004525342687076566555254261310956668045360860959603571498594197051374509842683618944050572297725330468634710539413586370272605732262970165978978271528391465638568506379535937887340687627115092289831766308774206226512257993757005247006614372768869875581877595198158196160460900161098871869050521411856166818583843520034434811148162528055501057570489656344483476355065291431773174247360414528861334396601253069175950708109242894754590358902142538107581513041650737357127339696588640564170031567622722719786626548814488562069532123594102733835119904308268445501165649675490587721355547188220359913117510065260204489719429053267661514954579480565636972558475482081618138770546130466828073749765489185692784376652185812555786319876885441906604368560495264950150304094672786571177308064099894496704196342629035127254957595098079083541321446869962997667650898847500572909122436902819575371203606803762659597019255714786953591179155113244314028325072706421921838630416031910415284055058020146124057110251023757446246141721479642605521594854250388290060734055710304937566130617654941731216144680045013878685965876649274951386054793811848841975229365284576428996240677649294301444923083283262757176714512043071616533373153087935362572295124603035211862917112420737888194769206835553771548799974381594765094406487862471265395566854631639025914009691187074649026433973726193466953150533820239994956843612743304154058033176382139552864724725445069243273368346205977162867550702751852515324289376689953592818630743742028191651917154132994482234802796349321336108161869386177225423937397853663514799441540813017596395210732390311557750753735567593496980084623725137324153115843865447174654311391482664418132562742550873601671755425914482806108906509860312499583204279829383380544428374540860879716186259287425077479096927653542303029437274965516917267453339033302863809428289323073508463159008465629308301749099725731863404102125099149226804017026047862715654644772746852294303886521822642467241458111361063460551897447513833035735054102734241856315432315803099857684442947236661160543877526764454324723102173412961776867569599235692782361828174843532669599712734547256622934942992633734499631875069668046964282187199568285539124738952300189320146095651185853475878956046531102780435305238005670514778399360782381461516887218716758927169178179883491368538058432095308306177189739583401133285051845517787487944655412698268148095710472652690682373812323172195095256325898914439827420050841846572509650807048967404071645696416975843937169855683292734262549870975548453935140979764921771441958758510031541051397707625603157294798244197724757212503786067952663313336293864354296315996449977869209256200017714112668124344043160944717345206534478363814381308265402648459125982055860142414713975333587424523090419270844622265760500591757920576880396330052897125175394011679848078310849999808582386909899555360806204500926401834728651641282781283025731303606044808464018465303571648145345566296036000153938432753468397772862168610972042116281576580787942992972392261102238151471934424731288801045885016197179098379474525123897992257182400195404459669053960265345184707974914015138617577159972069259354396063230985904308507724972295428939800418774337493660138183191784489644123088465713579467578492067593621411169206857814658321346945121057925663481277883880557765513171917709987651179265987301818497159094930594408670989687038705881168208236315381524221591439126977031734751588290408628207990443787671268601169748228247575941643107734180184267853734435767153011538689454916323303898381540342852443505626612334548483607638126224096800754848155292325198393868653925329822851514978901676712764487743695626405614763801941048818760453359669711368913528825905374033262442244038228601136269126618641839511264527110128144111568207574217973945492375472357252794165097718995389017506181802158510640423937111164270464395111080682920675497186339444945676699854307048873078370951094000641336034176873895844345574032746355161944986164047972818068367421216176132873157400237273301800037758012656343415195065079176543575268332310891576955815901220058526974179782805542040021923758395851754385619045968322428397380487747501743076321904961531273085049921915594636786163192492414318074660779327064663436072921282428262802202805634907372195094389658880415071343171896652085669183130908482817533290616850193066394229816783727007921435514493439542724386688513088027500418019217963929753510443076315623837989156652169454781411384088783783728991654940200716383399208528139987464506094838785952426606806187375884997260947113283769651466142666458099328667741525597614603390450159239993372160364286086864288294150379021265781940066955018198883360331152473782414994768161739723977332802954378260329047729586585642626275138731295818337496160684624890171123854042766168647149774521868610303605755693662032984463059444125621312062884419989184327453523371925714283870806106291322690036366450926596168859250581523074440473521098677883494361327934947237889360550569971251413982640292673268056083887967935356196693110473659583616660265636735627589794061538475705549845710352017807367660222957105749789371902749675618809402739775469126636816037542035271731787507131801774021411841430095626937696674653993405298875929638875229410081051597895029165627051345290658878139929893083884693231987717261601592118504760567938340391223734261813760862004927583053107160481161558888858475764334939156892599506170546518178375030397560556837224182537447325676382434048701684536842694428261055909857333474234301277929770680987677624464419261707130665458213231147105740693426266114551159173069666451792622493533619684829140025633665537168695188057830245976399290036466004751344086265911643599977153569035811295023187974261118528758950175420938935123227637830668660029860945426201314317104060525791667966399104470717124333240600882590700136993516177680726946354270101032757138044478112252033349537056060763323151169623022927670871944145351158134818030636441853516205349115316476823599220950680532171806414903095004968232420687496247153119233192669470805741142261355252584123466853929059354987706870586779049584749701521824036135969824206999263076703831617951883526281551245781368990978464885907095242662600410637190770720049779138781906722615918870096370227557218795637726570863833669958010291983146826714054212301820829513137405651055174121986759996176255476084970787398018184785565843923690266936582253177630223866675837641392003396657499018131326876580087601717505277919358473906947214133070642134086155648591640289052511851609494202234431319668414512791983629196240247494070667271396415253564400645317398006697335388080610785608679341317978016976455132586082962782156716370339830095016789025786033764086110162686396722178272478859231870967744677674332168640415619192718577304868025708143021149186362821713396404268927795108109586436228179963494696662492579275214212682354736000495056680234780809935464977622795196495673504198036100225450830878908810550801153392130406134124019997682326137663140593482770524921424659199954849934950656928649671096359531768502684596010453834951870674558466296317702522557125829787173685742794642953015854800540854297901738236511052590422684756571186597905390299261418924584078334385058032095668503410551294361756889573457660551107584079974164090311677844952868661230541808267862731224503063218722983352839054661977357589507460976091066006637451270152990343562434206557640996548461788333004471778053965906835462125974883056158665589396163135932453205288464669285142923135186154750908771069276861824931460914501649077566373242074404924941857871520221345447835164852894728494226115182231877950466488436126753670910647987662451460241600147354289469374054709155796615992496976995106552950285308036375293313775918744824957193138814254587589969688844794655564890131410092935820818756017653397064022595548141386964255416598136787535422052602640554097390432919369129736628252663639584076827621323384671908760149482810934370388490650550100225414306501212725782292558825813619011277035373071666895691535403992785495826763359048313568425645774917289428743147280636449943901439970325138274457785689733722228891277945404704174001782283665509985096330461686898059802252725727794097493157064756196126155066652319331084788894116682686692650738598782619815408488708300506801131050228786247507279493547080903219074602370777267823473888732033917935540180741572610767146582177748819669553874880903168589532887088335939902480328384832777044372603592271877602957651000939150226872713009931878602528409567131146408405663569709081200885127145525485379504335803220186039832044853697156621827620892362609759116503966535494126162288630085344580447529677426986888473845694333779105205919461109218637738765259655991025061518188377402584670771230633794359264318398282853536642386961356475542480391380486156673571102617104270498316391423508036934295968603090437772712236967253901748337934339514554824822799949518884149941903798172907216877824424274913106208640389727477112262170782281562552256691491890511922227708077925950218459835213278244535628598470820391611926194235803639280607685730351914739576633308790227947841236288111589903958353119946646769493478257785008847609926665046073156437099007917113760043163157055985747360792286191949970398601352218035804568564862733581405486912559760740249968170917834479869683584436960648738903595907710023685664571393028359246838153540276990106656769792488623107447988384323464861185427935929704166226057724447369694023324164023703739672848308408927860467910130444023863742853627380115610679739192602488824860878949172185725793122819420744164695861598099752594085702286715569338233259927656230799634916826327259076921369183138437618845182318328796811379495576274827699273950227467953073734654974662200491312047252608901231164288499744550841028514295017131014261215011312480970765213234297186465060495531418726868054425138581397358107541998886316200112220195318320615124081980727515310008789426110893735106424012343286012037709198272812746417819401043880122725359338144883582318432427293738355456419286573968391343546294287422412665386838188679001197561841211735168937260358282755903506917525550895587860914346379884086880393768501425998289974118365237844215085896074498734975470092358820729945950190380705179291482824393916803526983807337176865176849769180051067331634263944576718005619253993402004804169690798793487936596413378966155136172213868742640138411244859715700165806212323297545762323230957992156519346739164288606797750566881423003851743388884837289545840924081422517604520013790892254923877444076225889573013194272337890872513819673729944206229828618434111525494649362220018026419287671090268221242532528887640144633326414825615663350732593178932536411164102693144716144864259145333962256368603112025266052104925107316607596653017588006027991014248212078983032394732232332334328736553499788592450991406267463077642480937830546732020922556446781673113602467132963224510025784025947026002456108088645969824978378810132291211371485047139440863258223416169421207685396952222576655566940699999005776386409357223255365672172321727186684674020709486193968354796021484723932244959577074270408378124488392143815758205963587655561880249276091302515386107532404068175680829743588249670754991941531140758157294577699598538627039450800950636268341531492373487776892033139420626688609857464142330869616109669310921939214806355435155260394440014992903772393716143699803464890651224142334863826388847022920059139020777478167154320392104640334273332086543670703450969954002383961694157585554649188103750930231094403273430643433796576790861575364830375352165051827241197439293674657235177955363039541574635862654022866997324883798754395059128917923044695852438425096823960921711272728078949458245023533143603572923881577970861743995566412894725237398591731983367737668774590806772716260372042180673047583526418939146972852166436125093341155333519286425497425451297665588060961297034447808361215265607005487631402333152962453677762878919515265096588645557433907995642041738534742158323444065839912399866154869366486719335369121555774614303605228057442626652607434613440039586255168256114529199216728572905151577110879667997812106078486783870787317731611043189944417238194308013027146306244724082652502257809425680256505280934283063797455521741542605101746443530365896747898301074407796693242337801664774646247510727964566310263682334068825604675885604136039033419358855358763982475219391950496690023640090884737419983412149558441162249168425555850442039146983338657909573234606122897269085836364589672612812482879605029112376891744663108707133383450089743734913821061771430988545265459352090953441268382506666337279782177018974119663281637670460421649253198474788970375802990921736404447603533298764404925088397887460617074928724227090899248285955148997674165988806965416134025331132633983932341981024450869120153151197369292417707829181468009473575732016579827711596044824688538719019988931017040238990223372057704115428731075405004370041168941816197506811902430151913277200455943906621583084716981517106732458617510549085076981750532331988853991209640147492945336857147365921644728299618757282018027927235149043907751913003791203134601529734068537688059029889648804845447913702375820129180322642946239353535404449691390163097017046521696601282229411167124020575742599702772232990734381221663719638710705620608609465371056404314309557519030560020094506721191608184109695245087669351407536089713832939653847251137970370781995074652450640602727287181670163585931567916974164371442136947601874455026821315334970958740211918680323248468277564870061149438337015833883818594004607429117412505777000158734820732062916079453343825894209300800555840768692449134272980200017189992597720651078771689234892596164213076767104523608612085720454553951910946986436217670217968479176258591604487955308876737130629349351855658696689499115572580940409558485001670831900989063370846264156617539222841345759264104633100121810591456500112235949243035874653611532294100748591725685404343590425935618519611741675108513719734384576610767514836265058617938368209038947158674365409011089198525304989499780630956664695750186708150175027482373902155760613603349062707271407147890982065010212310183232181100069343286289853388982271207736448013103948929110179746894580442227353159413683333407610175030311722430435841495114935332130310055480038805883944059256212461849465346388109639546751458521887467247142968773592195163002939005239592663528977032907116858432954703752680700917401053426036328216093029373564458593814208216207212643635351738880794178693412502532828047251448699350705220701002666453523573126781808666100640247238901743966704203596195184957084836989053269376585777286760263920849305605055359732083136942139530247949009805444128411792534311187707612310611341097023057818853207110373554109777225268739314663201062438186666739315666878929223309864376645844141144737272344937815972831909844663736314365238336625766432836011853087134449323463884910609348515876530047384697851490316860944079147038867008262359757960527067910460397586148507023270262134707609841585258556338737617326447585922257285656259235324122367350531282353693438520166937341470829696386082899434521719254990676826992364251743903401568286771447252758589914040415987480439017433731166408823550863384187801246729769664733780271916972062176138609212344235911176705322103452426856048228524271393653620242693161765760780800100010254565430302255053431987391443142331967921818721892555442612948910215389948302610138904175612436934185030667406529248739220161318324564275167193416602768703010292535547438579244140303484859144921556181345633643329326343301303590854703417071220554733409494126008695254634521390596297344583590599081333021828525824121909864182673892615556800485164351091043088360141492765564066800110684919121425316804594874202357993865010484747371733693306708501376221784394745147780087108679968743888882521241108825801169480255320737047268439506506619061581212293801525843339927823551145522980014595641185301473549256216089045256740412756733250466940645650468395018605881998835297325256439175247896321599018655520827269737613467657010631564542534605173515723363693721994519877428604031741725408253958851535029731943778782561756285098610982601621588307662306295539954676638247118688724370998379269223821989969881100732088812459150191377594685317039251849715559962364404455067396815820098777554863675682576961586821440730789114472368822465909627633936441286775019280438153988008366588546903452252281787083340399343781315750543547964661930673075031257492747116069686700895132655825064198373414236676528225164373947118222877939344950752619132332853376764239753300725007093048179191866287288675089696136589758695088720568895917036615545584809188924871967620971224839027472767095752748229505801602321851798524218387006592005753860296040733566703933480770657935446288721205209845534778313363145479142929453743873851106644475197129829685036451174908188826226076412253319086366185087050081831743475658036811320047305538852889112671925792180089159951212663793442800972215537519470330217515094263698809439073310908125830843078944099432434369036875971230611499317050778149525374873933554009729369920237517334730468890489737871628018499057703518828536568821868519330276537608751703025177447228231229119696253379456814673704755283271471530154701571242997206400882554481543499403905839617918795514792597317984845595522221493161412920059821958147792402475464656038095545101166585300236891356269324924387678547749873042208724167487309014620052843291839455512142381045170340645339228693017933735502187599684512243776665862637846405962396913777511771402837536370095292797066686368849198488789403239433585716148281778520608088221632406259995071199671109242438172074771980041183947088482921196423246177869294821099601042517717410460272699046566896626101705705847672099389199886369414603988356877696339057550179049880188377938674492591983201181185638278188679642447014968785472208217383206058890949450359690028764510502963480747514020072003101817862334736438029476218551750560910575453510826484465587195227465741761907255877616501499322549544543095219493303166432418005821413965010206165822817398623728846638305324261082884034530932203655843579380669804775258532270482008866603865863102860897616105192501058878707070154837455423500289740841045495527551003026590436480035357560758191457540962000594400965556528014494676018897738651223248735210534257746974142709694053822082184366318233187453035350989820200036310281791708133233860722694317263875954442370756179907705979604729206297044818077997469712204350340585594661856553115482201479364867552683167116567677863908990094995977273143708101701303801513560100371794651981732636098715237059220563531227632116943260258186414653158712906020713691886456583291812865201266163361506075667270473488586948831042695719792972052827297560659995100086408560920893829048455499183469979785068999188442130347812908444114378815423981237198820990190375266936899814245746697094935829597202399534433607994951329752109781149229947860803123372793566671052515402709053613665002240203503248583456810109167405645189443554356537863962823363320736699227021075194269708769314631077355770275620500767975054433949533942309456805915313653565224490113731690306148139148097818398883719044165556446585117310551240332720145343005872962054823420923849949391573977879798969471154925270149591043409272197191792662562626699320728153009310606027975447278254528394880512668264560077075784388372623864476747348536271812458656897503420808770361376506303806969974698706189440270047566188123310356065734512982608450243007846304688182357394750868258881680800390492256907358477569774653384266141463661122970572141256238662454947347496672343810371626603137696103473228334173900254688532748940970657075985595800447434346520038481948704479585642422098217930041210155795285167972903234012730814383037454443468519316131154842670068182829190822405489598800828507363499523420205518771850628908685161770417521104365777752954734858394159750755844726908631522067864811127592993352830533066965402330182088764390987089021884214256286739966029956413872168844558145083584441161008690962705442200974085279097846310842822921584152956301014782723301417962179740321085662037834242866482879794883175469589102609778094979752667743077341191334056452210322806953468119854869716733756761242172533872460133542270330802516596971999442126132118650577327877987375918802790506580066979092716387421776975969242878462455626661856948938802692607385473224408834750234254784751808095317024990579338286377670630134898616392171163947286607337681848550288968484119549426837089749443395775248273214352369649897193863805347738341156671753228650270921328941144562788488785548560823758063922408225654080740530019974082019061643638808941425393271973271911631774874506865931036297042710341200237824682394294311222041654249836583658030645261499456009631993668682698260904120506013473442165730357301954596718408250674066319786441844565898813423267855865510414853965094334098057188437188306167485565417998141036243363962023611035583106481459191966058045829143124169337884195659606078704744161871660924527468830295838075723302036992962701193138212691669633854019737752258150943824355811090846623057661370320825118953275739542070895879333822004232246326982426603964317704956055457410643782679946732370149654252898431568272103668690983602563106160719897393584414861717607940164147517916680330431434159587281239080658106479123479855088005171345880711053459541770875813999446612504001090664643101779885243612942766755554733067134335313508438535954740364788454430013996705736740783883736516930555873065894695551932686159042674286413276203243767248608244684371222095080037245394498027156463163707808024958989286866019047055766041011953180350072668301273011681750785140176457132384600569037842688437662739546240904401241339776100301966620935734535361648662598501947650839778901089662475639772756586045303070622652962545243185515130935997994503623814670982015082205919210185107330055099922983551596430883975239897880942470290022846795462370706318714494977260048791777735774469304710121302916266634612943930566289614506301816825527007465724626437101547073686592382934951105839369239758384934999789906069882228477941500210666006565007525052031672115996120962314430865500107921424100564875052307517962738559113612523283756885335189197165016390663027867014957163782294302848461840255908217356914478576682331037296193795395055302779994451348091149261558267139556952297942709413769121655983600710853165908302117916136402278562249593723117219567103095385387055539813449352007195833400545807716352610766383490666850894118355649168197048896731344218871682740403390758491426542737059720011198831159977190116158716160304385509708556682775455222783289725648887180154460861956881387694354763013473775784424068010172413044928335068523319779516836167947980834121522740371400899313042496777508121515874484540849341499091038125661070617512016603458193785015052236718589931110286694516919167215882401762044204127622074334235850269329777581808970796486200752103183660198004612595332615703700462716815689845218743566949936510361177172226411383422111085074364341280940271372743378461211035295038811600200601112171421620636289519145749335734214582752653889622259778609592087675653120980677847184817136392915921190464634662565885208331433328701288756594273919688881037758964335657505900310275158343894847231820270494519592043236116158632772414404700685139269776077464106291736706729897843958074351115674534241391431225506467392320769955861085610179278052419150355886756905544499687221290445725061657527861700680261054127445587726161131622422701730611989434837750649161954118362395349750968508626799212179063298776294421960672492326544960839187133452795996974099895917863311290132953474434985241270233403477698957900057759320879166570821411145321140599273530186500154931863995373835227799283321380650884693344113110759346611432261559030389535651956743768702819504148667969526067308291236874975999394723826618770502647791690672794157024179119812565027790716981240198172878162447947530204849814911406461252122800867178021637946627657578980263589852249669639607307275253437542549681056364815765846450975873465759606929100233469112808153343288130878268611280615062783876374220250834628905045238951286750886825957561191231542184116876952632308610056379269447402417016456555136205273601375864424096650193910276736019112056714621889721217665447627581980827314364994765388120009203227041611667236569418497214098691302852656540263667589337062118025475032915185613155477384797377177293380658281767110942958689538447410215728049568325724774199315244063480028689562790144990060530733424438510720452109260879813455635072037818321619295337505169055028433902082507918505719979125497164624757915479519235932736512625704320061935265741828789095352012009751746749035190335237540553184773996261990229348920946428101229423306623079518764190667380614634568050410388065178691450119666455198431596618986981879620441114269016982010979718124528160659738435639418889425332434686606416676461321074375263429627988784910299111080167474425818560548785918968434245055808431197846051178991333190247827713866357411461541058001656368565261111776869246635243105813122121324387561135124495078415844947428241240939816549467268859657026198582663926116480760511504261924730396138856996656273132283962087537201798104931226919424348725630798621598485229929083356609611610973074079167013661343994472626719519985109033649542168965470377399144561549947092529832264684489370080120860352845603387430331619012940283383512005900588349087308454157845228482494668903638031651494679314171783691714327841475699555360538855886659377784532706954827968936501651227425600258804452001527102344046351637130441457391161787804939937513144453128423340363789511307892995887671301724134091141811876853380326328666161181283588238217436433729401246370704989129364814427471863798210266803148366666576663525116896220317845366609185721341892558772479496888137444585206277510136740774696639267520935915705431995304409080222231567883425315173770301470917067986558539493020403114977992774287469247799332577006534129805756964010754633982252335718841375072522158756559030977488715949863414675490930527287556414262574235680950637915294917318649424465231917993738135257177526966752838544901673936527102552250393580210968582061047893543427332053309133281833624943370099590585925304580469431792946062933987716449789749767358418489063077180447661832248121472929962961037782473505848100056726199285272697200218636905256791268445000716434261096198511105815403798136276022386883390290606590456962214774622051066477591644858858687703045777483751824310353560422080288799636995180695748304186201140346027054196941929198589249655459082707036666248339619834940609896135573676223276493176418808518951014448571387558059791029934688579620510055420712656593022055573442923388568136984986339723052613413269535000946948563432510614543765584519813924685118054920630795142416372347876444657295834049904546308948567800294982628035795947276787822203263650257940204506500571065845830953889338869056981912894777690087651853142352907659613079838727997501507333388300625614047650975134760006347666010282919576262722191262925462331114073010105729304526465974037615129360376894077707723606208989402515944582603729192232504620129864724953405729789529036679502531591103675299158625404955097118167887329396622267322257176726453751319791215003107319778377592767893432496609873871814798221540659650191684296080319640610257442230217295502478659745472962080131078015624228710933862478249598071487194947543172218136804613608767832814390956652822818624438276281499739196285716819921818482443098916619440726717076237701456340994645843380498301757203730401305820070392339301375729519364191596284218209250387883394241124277895994302961234941931734475355067522510957678924477698532690391629380140894947761664185169593614016930172654125655152353626475075842264792299290941066040511716381606182878670365499946426103853798960033228065788600788561041719062446465009202114945909128802704041924643523785627649901683053845777062813056000870082958374816991456511419696264422499164890488054284755930200402968543225306995236184158251958303593315121197217130617695281884901690856088835192040113314611376620580082335750717436703296990792369319536010767719156040666512758910632210478992446572473548504266318042660665175710352497329357196249360073803517350483380425111095086292089388020793898361479599627383698952539303543140565481276215533527282309780850937708208069520932026250600407701629974504985110496494665743563833959460029974169900873106662366840429756765038469936697007794083016224092051264141429464902310627932359160900049760476113021622565412818486271234744227029130851400923631535478282868259353072531500135941247590361737526038135907404611916099974207835774092667014063891312436858764445508568720255755662279735035170588928710942048141300034826487384189793085688021228036888921192393806868028065444141275228085904803652742395870851805139548764655446414874022614985649201015938851368288813742425967894014345923110768850723672915226689005703684928972583842051806129936003549091242986786221698676483345929386532016969491724026912930252323774881844142436963600035977636446400086009010600545355268950025194354497424073528987570340887872362547100949442169113863779556478239497715595925740619863893713412926872360238436226986465544950787731587008235093650506077524421665853408380638866989306168699089242403447315575254325399004037235244850043628872763495233000297519029327325413308390124300171520339743605619734687715812757914173775853257377276264808633100410927287474411571408585845990047155638666745560195135985242706441351975678639191891423405428660379896630987733194580091360126000345692251911599583860365549862398320917782920576756677038625010161066730980416579925410226071842817225022735227693959380244281366517576153925129166177060016255005721420430396446828310364509260625263012760701561075766730874032262764659301601427162174524981372878856181993421745186232006591092872085696309364450728581404296156895749240942438882210466206919322713482818671208054292062659925124324685184275395990799820339249324310302804185151794161847339766202444919032719023041591478007553333603538737543206516392840059805107725718381701196737144085928787413900764964654848162355432130485638576323662635069643313199491175948163048536347191126780701149698466316047595042208115388930624947873383244457571033724569934253906025617779390244531836072705839134563103268358611505419853247504502800890561129668524802025949321273954530484020558898752579124646581573592764707238869980265056986401895551020504738297855650471165449165070802102533697636317317850260756407683902839020094928204056241127572372501471114009773071771324350583167944740889399030508982496413827746970097539179927500585676471453277722279977338151478390653121681207261090895314018418867108505096350424596995323516817733701155292746282678918278273060452816353499655464379540921277003275232445214233634874570886439995194101810428083682298912545534687375927096943097998437846716858861609647158450726453840837555619702867692341140754856536038034108656246227918562941633796656391542329925880101604557370366152144181942204182967776876907613636299243309357328017605743126771054226574955944995249906307489112475805803529799537721839171940628834669938213306421130708828018314095565004942016212055472161523590772907023500232871408781572432735603995933476794422897260637434039276854580611289607410590669932136533687042078356186698953481918422022121248707862877099051665514401665309974713991005675251939067462942940448637980188774041137418525525791773497498776405072967961186006465063885300034548558510594821679989488499881348239545960731125892691733008575612741046678451653748047914441957887995804290700249263246632326681499017163758602394321101925072260897582560434354500481514231008998919218529082431365527393929207208094031338066794816285956013245309554207352436685702052586037162273828440428999607354174149997144486683091417071462604872346539476167307054858767009812141837800958051290774509047854312413636733303930803821801549446059303444305851268475114063962785916563930627674743999592053838216880859280029272295408715366093347634600679034639426198852038046575163654998442805443126307981647349886355455700889947015488918833584616850228251317162919762405898551659213385055481013221540247477189300731145009438085633770026977164210231513938854590487761245542436618639524607025522144025008678145555677531395337286048462231093905271245888895364569256156924775595027556850488293260343827879929615981339191192901872348880566718825219135396145412299852732170856414520188284184321895839518632585465324665298019104131520794262931490151158559812167792940975422135892032764875144917208644209081044494282209723710991333690134329973757761640145072411951582402005506936862520321244872603934814656451873159250120614218817845856037218353617774773855769566225575150866571840811513148929622381160064561130571834294260865395035693051823584874737479538877563217962923200797775058145758053107586544056972140197151592415880860746421227639492154033795203742591447304554301884575845197501652426416297571392055546278908874264739995235639482253898803041428405865732099925927099447032543291180657130929113543319198128618527183270522448823033582876272228440251157475199605697212751260322304526175711780592617127187542204549955336543381490333556218928792360733008601037805297512923729518669543366409472876787201963993237270309492830064805812306748347989618609620806166364486626589538807497494081676120357697391345367890436568965531507850820143906075913282429684490394613912902169212428755542689191076963218246042150352209807855518458638833658295257222745212723190888404629441216257010908699952705620259740784342185060318491651525045236441437807954106875613492686533894393238269279590671977926602122833391593603521321023031757089048031978809003524212081201001640326158968306015343921281621787331844973996840878622133890796963086297467782503823978863896670303738454306292491329280051151563038257225925191262015055081334466830083555331389635696901862546007162110697116543889775912598041843509915870756628817288297292673468696005996005886322142761279041315452648535699464549335852711147763848746707544177362954099574333572857444029687532924712596958873376442022121460821415302934139158640743890554299867345012792371900336626095655596250567300137719230890055194048634972257684243853291242452196769575227135380793440576015320134352625765542417250497435236361901757098368910262967344544765013332463713158720564199073375389338918952383224274729449911026843813791628530745283541705675971699071125850327721185071540597289235599246695334087620550225782188228918763803599580391855957171666801930072122113427834160061070720066229261471223164505956731798012316255191428956327531130391453922468948819315574114080954059708060491176353044456811726401990276906735572392040615103153928015477461054031530134610712561827643767517109584566926148347983078603547296880909228570235014689137023257707868295637040636300365029557337526660883798923444589075648953375841627422090251622772323096276561552231225597965783719268246637808534408701430690906027693165024841210765910675682514469765594090563346799715284276036358259212410935174830331375724488073281566347481028333416546204997433105737799983530238090852630801735155710215626225048807530711692879254275029068054837841709169247426111531427243526793991599561701496893988516874684226001252458108250582292182291806772668341146528370320612699968361321873202320852524142397894485385792252065730178309658119975196069684401642583296786006240998888548543950119220053549726443999094039227348239694010392640630261568858562405718714903361076254485541092223581398408085166789066163670017873050671707344301090039917489818379136716548257128831302731782349139415597462643874054851600278355814392208722626483770286612189729728004365447552476677615192898485989759319102006718150320328759217091794701041785155113333271689701188081142203872897867914144916691079830192817295516739456161732998429706621256834729356231138082040308442770810529685695454070547909665581067300084552875521536036020351754460233602139245977638939135164308869145877616909138550612943316031154690454019746363908278600396169185954944382005566657845337566035138307485367908758890683952868267181994100938763529655421246366962132141897095874815060639546616691465792407727893071265872915079540658082891806057897518485814229275710383476742751532494928677625434505047618227355193289849086671230061560735172515288177899748245867977943085687539066499881257691046754373684787809221879915487521580727136230642087546078210991387968018264705412679874081700988847947090059425606592134440033161009679168389910777904301029116722276985803440780990704330674156349935299641635868849121054034720520002723901514503686732196922024211414580871851070010544678424526858649339258907317066333485408264330238592987995233515386014583431753804283052813256081477527252670226222625669296432934990496608788488157780199485328446476234431206267330175713860809181556589368504628296656798695820109204232791306901869681897456704996317481425891317327220278034706828975691732711618351624158229760251364842312853014687280791766109027441020668967892045685758252756558926885094155172674255633197049656835341712391876724047181603579668444547343434314252567240306840877023833587989664363066952651190955253234474253912214166532537746749522689286823863291834615268155412908411449749250869057737935278632262039432535801857995749133198695211220284767328993912326803630896073859572936663280002398032398124086062257745116632701566435582770687952518293351922976899140466172021462767252614374541288093018500327925883366081339764808045927423213469986932599486727237945313395170234540122024750545216783136973634594554618278491265107825336016691485888900235717796946684757996300198839514045889612463669104707082584133942932625830542565860729900927169865435670420057944839444281261512317992473662003545588927919478815260869518598554107562636941974234561262667962614260827128975664459230998859786270672514900328153416215628422750787119070906754291151055833300331813065534390201960231823368086325796508663895660654868074199849743779789845422013725856059743747070869336592437835914347005785933124688302184457601002268151185630405457320140687370144474293650636982680389632804583922341998100550140400670152189501634511701123132860804473974427064516640956547570123623956377246085779433139124958509626575132537571109143408516821925192827208219168623974915458312674984595607670814358806944982550895550173590795673005307782570302489784770307831830789175778294916065934591246486572259253166184359634036297889880328146058579355669734407273883965028918722923101041804093131942699583899653027066030232575946050802785865500992119721362360729366959673677004867027762839218186609033702398056210395287720344063365005797002221787767023864891091371227022172870050516239877289859564114149818478039425209766591991958098635027145522356277670325625355765519471726278647234602310308473654047533687291825893915773991516607914752162017836018604891611368309916273983656279070446901768696339130795510385743691354576297763187852663364971266919761807087386318974509028566698622862502965117935192204438215933930704454291411131284446279265918763882877883783361511426524245635269809226205542642457372524554112305784975417552833873260107546984418624852508193616095094649331911313854075155170729929934116188347459846379780526261081043441773104835935218686638054308178826057885969209567420608422741134174630541429974233752192843415616866485492581935688455706478200259349716884251917164292872879632823082701438925526453076394371979279567696379436119523362648569105637330901481176917807024664767979561806809287387734834466645091273328400339344827613010873272264285168401539001997351607889892711325509362555487332017905372948554076060312087428585680134754851513918013224810590390329643399223149611282103084140590261330140792155109181055143285939380670550367496570214163320983190821725058023912055964019493385751719853371362413702737292354253940595090000118243685317994747782199223964184380774254668490029939643591870926597170594506993620973222163306576777421643889128747306871285774757185653532421474772907969491971773399258685638340640655821543904872271232898207286399996108549441332716158403135797532417390249983981610454660495738359388485652707286229572623051383560000156585466998432923478429868097764328439414947075572334796125770118036431613077251662025542817622532723833701170156833449886835898932863510693142624462777682380448830263135152318489596050193636305657637685156415431258932871997857647182051980804852841479103688176059006518721666917131586018797866897330363806872528382429542387442290118838452423913356431947327677653617953294624486510630622756473475460639772832245594911820040843710650231442279884105369654926320891804711904611855632262679363333642935579416975739399699771564578943145906325662290430453591295467341574517130364044471717275695148285899211214025035064130324074079627856559468793502223318605817794806800328319610797257421993488552562061671476088972379002529856548337233718328417506713741290853737815123851609410441391489332809094159968826735048672040545573166384313602651863785831489501538943238139808365883804476002854489538908361753807349639094075278670248398713467094864885822260258046302831000134420708124124860102554743472675213924735173231365472865426715658307460145063180459193912185307027064167711219913309971773696445984398375526476008731976350588305182258827531323410912811560771361931338657670485633694130151498302242454650465046040471728615413260807717645842775596130564714957034734986776169858981862707467097153088208977339575540534199745345815793770762866303205633513048548642962575629031290198122921156129007498583025023376393257323791665809026568879153469026357705649246662398859211667506247689976954876224334983734629741686071072116449616655044655608920963005529389980054924805411249822099128618410852180836406787227995241181294397603913125087272746886170218868881446696615947203970083371196940341245048362750575349437568194572121156446085523900278393058860156989686734350367994912552532621500751466767463251297350394517660048333053922905249117897096462644585255018413543324662102302962053664027075186651381286230456678925271587217200659517751119615025272577088105516522009454672161476587123987503505532688033099185686843280053862275483668770933898598008127580245568559129646381930129301326642348969519510117519300207600238511121418435654571941918630371919254705507527402275015537703159157948371806957694102287831004752683921335723313204045136084667597278615917514858795415916690413926698797615162723620246788606774476424662795947607039403127599012356542063320611628790666072446301190974169658610099234432674255797098892191935221985739808852542855496055447049124448188817771628200880692278237411483857151396545201670744614553412362538408426428500962967160013325645831980292480945316342228906295560231365503763952288156945031871376933412470855911798836489848137633818917121473162222543427995926778461317828352042779823691801586503638385357434295242924734735389058765602840576595393590098407050679883167730333539739717006784155522343775911433242870421636628746252724029326570627458237980410150360497876105711064117217412607893474071631543605394560955833643497759174990572989933453041752348924828999893672555455377059376419166547449518554905538324517080602886515230022427821760512477934079379471222336838672407420466762319658650025775552978069711015046668994388828734543660947558213322762665316834953443249073707523362949775941903475326051291245147181120621649847255769949291078977474145035811567941580797390858461543707511104656185256518357188433923452592904770062065033174712254219382474127228224099561518488890580968220436461537832960337448027824610034418284237814682941732398305103867865210056996582259299498912442819831354612638120104857484083343812539109944083856060589598293810778807952810639392249901283429041158869458161698123587376352874600613627250041597387502158061106854426833226296891689627335528136759990164724841171455576140298957017448949282974790902687089989777267833707740109036118311549458597147887270389936467664375201799012552170013379979837791269070246411343776870628672968360439625784642889018859170657820025711686321876831601733801168746137399423657805822056378579330260586199782818670076769905212831895033666022647717207030980437826253276817777682691675319717564211129409033091004712686369098368838123949485865302630452164645405043299331466004102227861480794415278162556053571238562584718334543954801182982118082991736996513372047768116618722861521567262168812048423993876986345133306812358852825606269360499114028518766115483104910999104495943953160265620973944577475576708610768839060177127230164993732136068317478520406949220158828381127803742816873887874635987530279444003366213512943723017815761252966613416062526658793176743958382690491003811427187318400885906493359713342392744591438431171174786789028260650888422916282400907517814573399670735374837934723791266046668407630938860980233408319476356702483789522042108720278992593053029241298175040847934727162807160696764512421144866768054929598531808643676179881552209349911887494848838434241165124854199547015534519218722457886886924570282317011475526782015498546806801592048303730523132980941573754271507672444252211289869568659925703481120405931501609971223605912084720431668037698390134291228916740850652746548209972144849218637511122535970273979601392933067131495877048365481884503631399723411831557481494440420930696326595410966068535840623677857417654662911295096397051909169966789797899231345054038058035033219316252314139391573927681453168835027756285656214143970581237017857440062420704568102477181011282146749567831415352842535196345321044858126449331634751040300525088568625796710794003423317134188356384099530148524860514089117214595773690092735976501713721553247211935903574567230543530430652278426941780382030967244670806464720717601416053544291588727697478445911501451561804575315802904896356697391205178996603149532858186570502641391422158017744404778831287176287219644492492903630025247826072039195882609126173786314770066151025424089934884925328882642826917836697555866194666690956544384594809290334273655387049296040225428899067716944575829061127990197953960029134383815578580820763134008306140515102749956989607988258531678760147034358483823512333010537579195410241432018553975718382686800376436571581439836471349167078449040433629256742337740856510214213113986073450139569624061434704561304427127050447295167267841180067207781443893981265410096985601652446655261314138985979683494156987928468184894287039903358712707029120781634305896796862096207523478408542571488847044759409188477163382725501519954477892680181481409119188237741608007139629273209074003552112955602100561981530975361547442732825650964035094488315206504796315752879696193506777794608327201960381362771345112327510882092385675490024009208219134099357426339363708926439904749108683187123666621564060090485759477420069120796594621414590528917616133559142620800983684480175199267846269315792409740968183415308133019217647209617817247557186130355827237936489188127765690649410746722635180623950269437978036961643268737749048035327224130159382435723638627484351539943833430051488917957137499782077503924072334035882951869378100940405068631785056039437611165845848643911635221592103579504943514844649409156628157909739974549406798406239935498411871428896980961689509801232666178675936773427955452189375909168157844596649354453684159968749257882305403247359259503958090165739500858669423837329267591463611172543001303074957104291258969225355180136494835683102641392916982806529127192506887408702695528228518591809080549143267392564721178057850286270584667133550484030139575375299569121572800821469391854627290151566923407738609958262779332043885801793079249555875957532695044558752703218874643614433665715110936048199078940389744069035504742216596357967063340979433790515566866641305099482819011691328280233126340035015936896786208850292009532845466213305384306655297885070653312854290192680384527610303525668155891598914287492571859936540810064736938624219706603956676368658655337242494658336118571192796650052679497720444446308834825278456728884404708846743801202505727901958672016924942051353094528253221862708996655816813240647291454670885373392955070579021220148324644417353343982575472961420295332781956251094537264421506421702301471999629133479296375140379404857491415514728560905461704521935411954613088374483555240871983112802163656131226696820780832724454655037631884337807747048585014440928490932501233020593575268685362606638754063900085186739795531682965990485990894570723092479751989802404912650418266238102575624524666929784171971516619367992674433577539634407803709479166069753269200758872814601911198399934373881213756283889291018543961967475555249626279082703910979656998625439072615190425158786144413144113831755126761998963386007867859853690927412656163077157522208422031186383187707427336267979866883988195821673446949547699757942098427693555596169136168058648518243071045956303076659973749840094267317334076463174527336266277834292057033398762494487726590532031429397364091967571251568113969394978856528841304514922804010523753923281760821790124603605519887232574366527659465321361256453463128499636765083015469752563441207489823247159684097333026772385609263413346632380889401285620561664582335419709099167203896147371523187290384690893147476518062275612114406656945086921944926149714405286800719572103283913829842148378483231425519964716341617907681133957742870030718050550567852714184898084553197606229237385116235344473687260297763413248049325537077184095595185815050397447186762639040866281218357014747359434247956903072427085839237239331522527519602249628403975845825247279552652933674370650973501121843705493947389593742769325651573911966601269867578925275489858360703575866573184455845823736209483638841509606522276180346242914023008227824887713259783610313742220687499201896759710636558195379791862401753297604309363889037608448969760544225240120106904327869012455640452010753158660885331191878600738098194548265935026762549378034345154377604640590461458867780881940067282169539704307653886117042992388203578868448473839187308648230155238827162609042285346279146760899724131672241704383507751357974268511879831887438803902521977909858107312366333590741307084782564863304853452351372899224566651212875749900947991920733767646820840510258561282639199501323611292576591905202269726319619972155379444457203658025809318183999951338625905120248304021080651540966682379687247084127034093953634896545390296895800037341942553572291394958206351392498178628011138563290305361465746969291421879597352693836292468809311637993810060547652153831386989412985101121095338541350544636741786689342044674497384814315061664844018614801491352050622499701462128673238723410026086045799910877980875709796264969904940650223226542577468895503357280862751803588279031654525016148845177590988433562043919053423183501924882586745658881349796804956091592200243616867611637438244764857420083833110982284045928373305788614291292225567648357694420474853330180266372597417452818965971300458537849105154626038663540818882599944405458195772477276802459090243866333631367804651810295187184673759255076097149009894013041514268720130430487960443334540919467366365154811636842575579896523601151510471785738773938577427734862448702222770254869783529956392787730033513363076669723147128223798397119244047773401913112356542618152058545189236793982909493575626146490360437457173435219045261130726983585378178437444141337635574689044848601235199582942293681608719952004637498905155056352880233845444394920612548397908568084181997264030792472964249125766490033578775190085099952574770240008795716749069641028457556378226075297502150709000656932951599255956303844343347878237694162020714035913964092219687038997416250236873434470366799999419171217156722920501000975384507319442058524162065256088391447950833365031471371338876166029983047438390894380235898870456892706271495265671137632088906372944673974721481165214733146101058477994131659055025579436894572045301835052261449279765277459686577726128313143171303802516603044553772769461793469193201365793887025958535113260539340454656548634290876902681711651354917191797272402467647138510126200248444178627153357644201400958388037584273320487332145742958534223679643393106621784899147965474449970881137474298079149036382687758826647383087921823877970670378289646279803575097733241888666729989045434785361244018584254601328087294056830971750954892022219105113646982848210494707781738478445279548946921527134632468086049064700805678417957429973998400776542223575272192962988799986228182143895118051418671677159541576038478539876936321826874836510319436337617915325243613304739347999950571853501316300706101725728063091833792950173154821846631808973783496153692801657824919947361222070262495357446025730113599294049527122810905953891115478875861111281625105918888022243382734673366622108575938901044196617456612842891272654135264208775316549107945898204191763990770891580203351347396953369655669391439348703430042459507115864270533101787606388222428013069858161920040941728449516709468556402511041118298736582420187353479542386973628220995176384064648446752920942558722138973830495266243966981421878104365872858501889443640647022542310427396394798774672236853038991712215996596619638896760713936029529002197251810960203719842793207354010143364027925292352092021528166945805770496320394327248146106523767537583871593099878119006135886580505382010213685961347084936160269598354437593628593703795156756314288831496222558753922311468840369840811747251896478013997635983645369463668230731634373371915136466122624258234733611451690592145055005135576350633553680715781909631757681110642608459051454001597763149722611379027198914643114202270729611148436077767090478483379055866951872358209992140212052395418000792617352121186382763741018211424268095681588435709461076110978997298095041345470594058003547309784151492910261925991614882805750674440851284474445036529658127763633767954767770282321103677172533024653196519161089147200686600779207260294916350020053654736840668715499638453883383779064314657001722753349846238744477281816295285425092780080488610578783620280443605684540174882238881280809056974291670881331322860668582676162342520426666473820311344449164561746399926255880922047074908605874311714274532164025274171788750741598072701865681515595588926582467647298981093145772310394432869013510081554867177040544388046121758382013435332799240694439220343454983067900805453425609260418350769052766668318187757596708817833051236065480557665623228216570098323501034083855928871773647570687069965743371689790921976510400865660218659224181414202867616487381843285855126872901965340384826323675161120009511909325135315164405900368153821206772720366848483585404453311493353198558996602678542745072289798781283224946528140106928305246589744051643459224888087847931862446520596665691388208641218542876498696978988267556737771744513430025917819046073480182045741774459744897900180761567787240357816793184906311109008325642614553326413817769448141724076010195762343131393320215707342739274132090922336199329284337674434968863597185591546818818795539929280209418646105121190830031067166634854965343978282740468584295133331129431377626236996419002653962868521578034090774580716324569770730435531784051226458793515999209850124855177956356653997079771021959968577112848237421571685890022822203868917501350359435462503217673467650781922802013301863315409130563570886641324518001015825814765334219173784378237342240573228495389689553915638473880275982456521721043670530282250310485078136447079572101393986836980478527876771970128626449749201422117341009290549417214836289455972228188925702439579942049903329137673149134568781261983756129627768347259340342467985309342111246544609972071594748405537006288509865129294263906839818346051401181637548484588362218691895564568753958054216192580445914862318676466378435762830418271869217724658109689689901362428222778085380079921040205118906450161981742189138428936886937906013008494506961525196044056454791749959607938214612109440280662070567795396694271817695059284932986379554099908618614325098712887565121713858432420418896185108733824252619798676944798257846739990122767624283837434239262022744411899891250208041669335362392751741620952123535763507695210647137999737146983384168786869127446936786436069561912662241604246278974567562436660265338385204092821179527714589853689829058199589257585798747002457827742841196667085960786417630141104104538942368111264527276797586869681996878460751669324786155182232444863676315606514579943364453781002400247333089650370442933957824292174953265118725797995461507320600335617184586787909100766652408161886168928973756083969840960751519706161412162521107633012875916717932135827816712552901564565496570484663398449229425354188120838283451469422035029795718608258296023369513706322314525435481964367436362526528227278223485532127307505680761184197842759589242048235354065339616844732906149546271441882668351533218129161697591892755445719012124527192508055188037326387439598354962164101608869216086239781437112303179015371220176605407818702954968908224315609646114143422717203728873139911110960483946867777591405785545693070099004734334808841762671071009370792684836577146535188195827793396823024750885811963156693669208778809602145766525093622733449984872413282484592660515311197922999137445300345907188616982809624687834406258076918715665721799766401460423543287551403759387657426494735275716812893594658736196038352956023001165284306380129959584957033394896928216377489654448673064509186469669464702518785395407606010741670559105422207496344464222647752909715845753442535483710150994685443005098717027468451680313610715562210740512789983972739221487580121572747346493160724116600614510088219644337695817602678129342200922651907590925747725204674189574480920142685437175703260326798675071449476134657701808126749822161887961124873788114199779506941100872602318217515757059313851013043123605218833244801670395299728016077384303086605998234767154703639448778550659546349778383640726897616868320016147511700865480136508649239429754537616404354940240448645373482494213293195406308559547509897956940955728234224701025563398169584464318879656350113969161522157731058547610154886039302464468151576025931252807318167742797467978109238293397343781374482901035577930143435769440666612125321248890857242868977668812791014180834030378091837416153414714828152590994730332051336913405246009074901575017513575808843774896985062450415396989827532917989401462927217079138072240382499122287416444290291217299597172394363552337933033361745045507125242269583219465569748468504186759262609813690482161323973640515962837766475437852728774686584689911510006482793635448688575145993757846033405564026397911149283142185789019963674031286911551808854669128603099674682836810102857016268637580871373708107230989585047487535561192653497670268004818104506203198596764006447795584044931346216892847780230555940701606192640262078258700091779621746530840760499093005360650020343900436465243902570372295079382335193640673839054257879724128033767910680605768209475267202245992406179421844028046255855967416697673144234284680910183498311825169928286788980486376891088692567108574796071519381271233923545057190331890586965758540162146160476655953207732246019327727530175159349365688520713405086927782667931425175003221488313223704713110416270435707919311235488202399919490250031795914831994696840545199476198258807161737917392270306624979637327282537445668201218267161771301371449573988068663457086362925330739026729601418824832439903707083736098709486996771700923192820523812120312856538436960607562951727336204696703030249051487167277826194112821278433546054532508859341081170044979565659465767186078953373855987183783924146185314208890406015623416608071716233031035351331103173928635944419422392669268116436432340379106448497106992685418398081752592731602211111167403991956098644153846739956375809056694237957432190467114072962101948780042776675428497822578129006907255487737688611836363528285717115238901503071604553501701604941496344768685988932235670294818825785324557298203565310927132034336446684396766193039676865939151055054821392483959704990055181643898966983038444255293983176300777928148477234936748606294467843131962837295373454763049938413475893814151568064573738079700624712480955161476190887991324548794131154981127597710938603290596416486073231519023105744117627940573598957742494366939867361904536000268325803101417483802293199615886055412621893386122502975492975579499476558594192749805598983693220932055136928650764535996097285403768719827383460480164466598416485292248256603613840456175735936013713159733065669598821776058599948345594733254557542393791376483239601634574624421661557140274844384404356651648871806350062278382667781786776078335808905335457705607138577021785216715085688144687466590392786664736083128755580654297613176695246357801348209722598889325205906721335435368928171299670459190550372485329628013689704980138835125410577834180327699477283482693009674275469362033743529890567596830588370941747676988579788464225576737790612927815515100513769245358285461854812092698217212421159596462708300203487724371909511166897204182155767487142061901505060017348847244023125723821371750556130970120663369631658859679090578549657433652503103960912309936059577459487123420407523828525886128892166002958793320205346291976435255574812626129921369039961130009911873064345859582569920559573939721059925101874807072236714709247430931626271345445711734650183106153093438393661194160667662691777009291805647972548525519561973621765165126691423089202685346337084306426372130496736254141788380068321982471094951156823947132261006898012212619099586686284959079625225739636155237565358419181687754715562792526083540937338667315810485010373952139918822979261552591402493390738711531809305295469972627529743760577634988972892218665270599999541334211571324633096500089001898507124702237866923474769757699307202303621052114612646315138492405247248943941224846554839672432745418233749727352199175842305200478832789000512036392013005096829907289074723139648402146461621118321597389680518836667516196271904524526518919631925240931556951041982372574373220915712245895193902640525173707414649573943602464466075314157584403154494470628734876472267934985714264205937719608835798547068609681985773510013292791603005368204934330426136479528846752975456058663471529724624318420763130542955699625221835199838160560170326398879485311095837514678965742035226438023858334583692969814025720475198135320436589042843672337222590759014061397877302578851606211262955777342286203183700004407910713882690638851564275540590357388155056128603362577270632978945145435265970827608252852917123921087727580167090445654438657290835515456410052591091512648051366940055509643405509007726019190632022932529032066542393913539964721121254284257864207584465026080903595256171280499479817852845954304416855408448067951596358347428814393810726898706545925856511449224969390864035408620356788301661282139968524878635689156920162902539988014538781606908217569631329050545186294484843700179625610864653175965010311248330667148376056679127726716685996815192357268819992051087375507426192117837059348451449918250583620305742075023960643211329444894943590238413485516621544597402566705354962361273907726134930208302053556324300448375017838488119448433925445195099338647483812105804877053240694721020694752805758974259208666608981343343866029958727485271262093690998497750057197170884326405771916479587994054156867497811287967280346676725609228417532469375205144682494355675349424251316680799615798210019772972907807945596154653377568338904826758277875837798170618999850623027183226267227322947586726935696835487766803942727914082762805866875958529409450633916150964582190823187740998294913662622023855702278363330539611781133144833026125910215538676926445555883008153540359265490051489189808449913909843887588855355062277499136264900378292142532407920028170644314308647558492439836313826317334620977675336240524985048060875177760335457671004010826956057628957601632254527683317239295215892386794918215998500685291770215345293343755918754375718789964868327940447939478014128622149409096947408256600938606120551472948867750437652852202406230121307531388757462078551950689100267015129181402820785755321913298780831577655487233978002724025775644771766675577834513646147850321579235928081084301937898346631895318244898471920520321834418960346323529169996243266394917875897697350161825662991847806296047117202701586949822452375317280866226645080932206808419442718456078098892537539979332646517178335410590736904294581673456274598023234032924173740380407469018889408772064811097532561387423368174543590831676321476262922911818834739013482417851821022792639753013305258651030657143643933166189172945493016504946554586128916864829758423433287516114939830201571067127252412045362183237949331495760332239374685788948704611955287495420545985129248315981685380909619670587450379065451761723777785573293312535492251235201312326512156576227030696223591390955484742478305218710627771310552681678304442030037472221764848491770820951464506924580872603013330945535712468334510989333487024952062506544221018472228127795052850054733663736635748100599242825110496493638804192611384330367372986677889372419130604008283478077787290706651368025565088253941715279866054919190026507623600853977174884017351506447964055820695649529169962345701168785274428285842488185659758639044901001253220847014715095672324522580752450157284241525221210976401635648030173633778681901435813143168624483336820760973849381484790192675257276482856325902809465622199315443764354965018381689017314353704386452932555437340006756127476854037136187289676211739798867520047716898165614587836440105685371931998679719888215570712183221650236665587148193025210913008705585259082661442034193222112249147892817112963290584469692158143388330405556690162165423178058739583227554303463608742746959673465097331430452913290584825723290632270744881592696996364317114362940653397288423791393179084245273421816156590151510274115925800928076565281884401727107047526364415624497881440303418844544688687110675609143783092578801562754110248729203564028118712529975933930670533601051441930128847131830913115602858015192367706597667713667746146666913335122971594517682089357848197171765999365300924607118766016143442452761906708896238181925642685703844482627924372356594785232680141327491448886526326267859174808585549506624633754906838194433844736693347691867855185726452833652109170948340383828666941015875153172889782243442754234083641989893168188280670585568058718061237160124224005869448995625301703281182550689015224672040297172269509633043623186360794781751874865040245274126783296707182014675789877311286479784354731479571015869635832426313931212733052046104824773705135165609580889952435309315459043111118588711350383472065352319709475183457083292629704510187441025582709553128753851064840847836283710966708911881237107350921978102790355770421166234356482906705831099840290617706911586052038890741850138200661504755305410008929057942313365702223565124835068690627412563782718759265600373120763850523454871126622646036082954421236003157548066056900962625040890124426138678259147128760673705854630187461212889089277919874864528365142700178449571808503889912983626891311841413485350787564307901573970708977644834746711581570276502790973196097483413039862836554013027421955378569773832936717677581660540552823921007982805347397206050837488046491937456216774545391664664047274092857484027746156829759382349919725295986834682920544985597356742994876252737707599615912548510301010294213921504973798633845390966951630871397598163005811095598907156704639265943803620953067690471066626794344086132689281118117370836490815266126830637012750930566042134907600351752489646016896303306588720979592639295051430699162485480943486526743209458834825010235030153490981359032228223944271739200153380538352566230719623948301891506508493580980061829257036176197181085432967323577268078877524008929534221095265709069126615390498822663655884310480030543596550357949435157021884075735262897234351130987224021447318550693697588177480177990360709737641461110782392245894325282451952725687955057709052316594883817399530580606600899290497778562155492787668635134688824269442341030176191563040719611500845497359148429658383270623326038103790508010907054337351844685290604807143152848750797507809850219068415578938111041107711866520422169163905843553962574029999430440018208288545605925638936495189716380610875919642417237489499070650314522954209309876903079941869801265324938685170486090578047880361478673221319586460249404568325830462599272210355602780563878390470382802791734601157378204352444573848214812390247837363881580555274346232617129312535831282436409382971111619059699484547357266309723074321339680078396851474432197421958038347992790933643429269061812252934072576931059454231543070739070164573091083130171512467860317673423051985238067338209381913419015176396734925896391383085786822831123959794396157091512544162345351778028464039966987108715087592848141995395827717221768511910142143956795426311038841625553363286430783266669702409102777178573024248987817753177306788529057917735779163869882672280823667037940826047903905542867167845635177530800210185739753917406262017236252387843332711602859548812969124128914547780231569183125267267356079829063761671404321611867265459881607929660909752344502411922714070589109517778372756573697277576902299232381189165797575464946865186893689431237920057248401193927716305590478056150250440953050332868956382830918287340224769395032076468307750095477913528814064065782449396944707253963855108627403160507435968478651812796908408131949633794969598496420478200654074986673242941579407663190953612139436812601630060144154683258368723656060536781913799975468362522860701438205265476820768570309895584936239400932901187695507632653867884767849712683134665056228691539025526144718758224902193518526003142555083901732966561255100970140770118695787854171492829864505155427992851355638456691585674818524784860493825590409678287855606010630682294252714392193130282440516103884800911332153993625789016376585764383042808961208490547361888993409152499733568707471255482932318985551381120259300898044757652765168326721752989825355655099021817178267829514484858625379587286696887707517082949099304099595298415306079153801267443908743372291640727628998418092258868732967050269547321805536765285069126288142209346868391438446674839345475023755337684149636996959003567295799517484981757217844297592718353220531507079260162419401259921815693712775076076012322008203692241161834087581650524545761926201474397508630891626842361974337796294989825195549423561446754404567656880815163846145177528754506751907314170303939459239755458934192035969334258456695075166793686889726882076966463653827355979910606051338530422101298072239750320506910623417516726553903407587167260791408951242909822865350786763524402865130388715395560725596035450386199023090144643696829235951244547991124274431924572241645918415287201563280441420207771559525563569825894289653065631807340906731234990257332574464558568115749054352596933233993051305307932970788052560353883011504924329222793372595156674546760073805209450356587905438933006603794164807667026216093534378700685510084264211479507960663396766549275024675723664983978123857801539936768096129887248252603772146268798246599239932690768146815751881250365086438433924544694473590806651239431687028009970063280563612532947771738233979027277715411905346296130118056597581662932433638359352801657170877345729375302680357445674783697492567811239006541449500420737124700589060281990350798440330546776863700367210889960888174731988032954624706038042955302807029657100749898904012394708299402038778366040511434951634407406612199576980551638162779441563863604288828684528488529675205657435918279324900985127953035346898429208089191649258094728214307171922676781030438760070424023417383558919890838742560070628467669650385673140168024520580703625471321843981392793260741341829545851806489383898468678614606686217330127180616633493852994507151133126238112010952010897320546267905004767053137434934594279445488439759865436216410295497257310755670435720542832615277248973569552985670320858420703108034308499907845394255753026294934893715829791372424819382324715224955149287588089574746236948808647102819352756275057048870139116905949728733452455860714407229724242871037766928971046016490066949854895775553466348077330132985655268144892885633846842414015786632313133256120356321766850236381049929256211094967096186923048586326457254404220662613256156441005789257275339191566861472387756595685013790770762524818631294067437696276347548007127993092401889460821365086375357551546178150095402367342831190716434157355544279571509490840223515758394620468280077519840590466864410034912250619987042609896416249828881761484624666557104784848833887919121771887858516802346309877125849435007510455020705965687154884755900746872562173656708521856618328084394721392405654801084387693538864218424459633688590564008152877142632965390926240988622173373972031202337276914466486591017061150507954861238922350403595816511346623442060539251146345487615546232037798172918392416046781477385770805576044486373248488705505987704396583543048799481184374534168308445936552920561116848490271440082425243733951211910973070014252879040393820701013090380468435700162490294667980578295735706030876642807370734546983860939860230677336150207914018520475506017413418528501149945620273912715047822060558885415661268243683161307617049476300200167871499211946725764502276084403480846278356487494064157892916794550690527811112691221096771793953798806457221664004091411338647782867142311307832892540190297065605507571828753519115257885415576388555997092896758933022839755350912855040555021438083164330180657103252966741730810539530512367638506021865444679094114717794871228223393025746776187947697796893853613001520639969016570420910787214261754417261076515386963903647015182853043804406787574591062582321991683546736472120709941827433633905589893835120188304842303590105028535286408348396936954308686731992786131206981250826843866668173281822890522098939906271936131254421638344058876790237299367128918236615622915693126465412234742595266991144842907173710722322535694010279068016776811288541001296058214482480731123015543926265437402475133030378559996863282804224742367748364600716057102183689913678266056193142635751847918742063965238008221147241556117641437487196610548049472865260179453397494647164025948410042060321180206092066801251546123579076378132980381622343756846181053286417425420468364638626564482097252806768862162902791219375692718235750126589394444790610903047530682106727689910875686386645132516841805620756621739476833886230050136931126145682580234187880269315541458893515632435440589427072141656034014136328911378807986384868994426715776660945081080974316649931433790062684917480889728163543831840019601656638585716045797138937810085619470106461236755873158812020622976455463080346487449784696262441189968987784815168298949138864769791212316561075853487459086575738765781940528827910824832497266138714920816010577687274220218095350877685761764007990759113269349191777078006151117948270987408240267476123602170348543348979394773375965672917259307881237594309184949129829332651287071615423438391400060326954738839139208320045041359422075232686997364111883294971778316585207694377639897091136474817441990292956947690870970573264656425867013705243934664642219479953420933750822572413075007048820642380030795967231889313075168067295806093378184593478456066415676446831064114937017659497500312767641992480474848330820915348092604612933581610560107218821696139844093732056626811611923836925139598981147543842034423878750682839452165104124079896435773822008306136040967962133364986123146654072360626996711787259321910591659546576069638238228491561254856822924078381935253930448835986278034771368302929338862278977907834093311303491279655372106625014533267908445106507525029588108547001306561284526724336197304533460565667915599576568514317651511332474240434086376335991478151263229379471169070853358688525296948590812647339784206917240098173704530531292341695048806055724344823748759695959460803720085990295660911889620998033742238348603234176929475765992434500048610084028955935148776380801584754595791313637548781847652661588971402892711875618776219997620071109211991414566799636726199496132556479527294235715538554474511569920469037784720443937640723960184238200759762634929703105583072556149534064600978799487294682820829743964722517105701553032005812304068485651790623903299968598662423298777207873851334369986529648358239964285781101514157517922388781988225732003192986209641555818427677103504683774379392926601315868772867248817040183733164826348058890068976797408041413049696576054899683798388671098977448960401537331188367095080363791572691975532172263491271236802460646994277733496242907111778058559055126626697604797031703500675259765003249971455534164701294708766955885549113783927857201221798372336389891125789034380150016653692703525667589961385113359909427371284466482901501002474492617426305764131999048512902865467382568510082653899626794630079155738962396602896388532620510013884852506521953464045186219992050239941841599372563461867017615421790108299988266490940925707929716606385458166210251986271784522978691270779124161596850596224229884978909494613037979546977006933220135189946063852132995938457172510932281410148866745636359104680835879484726219092357473899254965868142732790866800837158733459213794473930790623825190517153657592183071886985744459553171757765350519459334657549960836233190872421743319558431409367200174540822824987610676747130689582999636811781107643260518309210043418943505119243971810030781447389455590722662060842752854416801660352987167049139726440198002805819777016911462616926380918295508430653623985878379107665675390658503710536983959575825278950620347460557509888218521829560671342934495013857920206393426778413373719690845382506441568358521202871772634960497384693510307966172753439074512125676496425584617367986611905171250408393774255198261038185962708518765225799863731899065927723018176202322363409327275900679428691512779843740158774184868887087225709900827296821705438941989019283492232988960277965489854624411717590537037435661776514204099140842185483046267502416135630010917005390605415534464846160944280160246537679266465911040002361033589834485450510652222382105351619120826564525650393205813908598817175639317814488944835245159730224588677506258761676886553599718436345243554883691581452570219132660463289026401711758052005159953928879981758684560749154360020125204854954124914749546107442565084615639552377784759456575728919084377563486643581390877053162675291401051403513205371055941561879613553475658801889168987022204557471177444216607561212278552563001805156221865635858293794674624379464655708759907177573135803140075945876743421209535289651988335118589592704711347238886411779020571894983145762947379386749690214957917629905686854283939332607340283286649322368004293460581785785946439482164136511685232508040559873667805593377655012023804302755405146698643704279668633218669040603811115197133513664787854170055331364213330446008565457555074261087651512470242997777060028094353357953842028507473987869870501477663971090840404655176123130217136246376643956524510636866303321551156989124406448605176209069643756709754382837163113370147356274368875238670146559178581404381018976406927132995199306386644992150025341036626863586069594243937328933941336097555192722725924001909082150535223895291466503788850496293131639713573492724214309052811404878041113527080571671769145132612306178629040167081994671925959976699173637302633540916177423113820362046024875628855200710296546354847611764310095806952852401164003933123351699799058796273957339402749181750692899186248843151817750923813828215727329754534528722816602193704399722451963711847533255889279076967627400333951752481740205299709266775320413397503838641678382803755994419525570576079379732756296210837972950704605940003922088628624074690031729282464384895259788879056997611020485372669470114335996175118461156988243480462600780521618570658483720601048111471372622837469436824945497913912188870091312927358268504879995280890525509059402350408392832419905783323336846058177848398836363410691550996987479392441474803233649985716344508925506257048073517965918586634550369589753011248711600091106410712407928654211075029770330992840960703771247892996407665286499881916780167087386934078988966841847155028199043695436108048371311285784318699127528480095405091497847511450574507126026135180467294781746636659360838323036859563182302555784432695474607067187752271050572573067278423961633267435604118198598830425288096252533495802828300665383712560104971979943075063598696140337614175822813746058836886903526189925618713099914152542065391828004761640034137991038883210012193460336921200895621665022610314540332587198894867136279297361891758535617989255780099529345924435225840540610606954052340473536194291499398049382264916132421651845920615465123620874318595370737837527869566680199767674472272214174751907232453711954137758170060802579815289074902540014180753615408741502669741521691173261622402702268881664617072633898366275279498486787864453154029811506859317268864732777383239042769184303897311047367078774214154422419963771952017383304704891211154961771630104698479870141066851906709385541999474960652508716835683422418501483209478654124892110311906368772696991055722204199312009070748567650559254884476085328821341852995414599344991003730951816862383411793350857461767631025008916589606849840146709014646621743047451222364558740072934324917851878556920112875004771405812858219061984197365320347808985215288703995945673012873989266849529943960880952037254972463197941886839332988627794592917930053321065748309941629412105120292346900111030853023370180227294296558640979838902971838507719420228874655069377486948849567957903568887880045301315660153498482653117037508605017164713765917772931582720260632007893868750007797995491833406651136894369295233082685116250575855187772240675773280347137587310279806417330455150742070575262882035553361271914243648774122766981142525288546411416383730333144079986258331162226232889290220911615730138161474572432723575416367603949635459794785635345865034931189494729952490119357896048206288649916690018857282666870255169866472793259044925755437937305803781023130584902167153211425534829806836225542165169857284485549038351897538491819654522636020392941465238253461986864962104947108813998565889189660387853989872425744332700522075373019437705432867227513623706132516270129161023276009592226354641877972764155221701031676534841137551018106940932477104172719083327395397786762753012645075309825468058905425233032614890655832837869986410478288341141112326171662109148854431720269641112191075509663571622994639857303155485194698811859983170026052879895109929007978349763214946319738707036264672737681855910802152998359177459876061972255325264714558694254101146361000009260464696568755854652618858169486232921404408292975881269665861718589917625265434011365495869430962280828039641264643541369489183365615883538759695626473401172162226510572207581685607293789360608310007265488021528775132867244138013373238193896128381271770855644446405161383396228028468004672740623352199903419677552858226256008690505127810599619069599946533867811711395892253694737133077355291720986354618979320632119683267386171481082210665984095201065476621524289688723180351963801575326639486726907350864640807353943015416333365103503818449188268181364463378233590361156435001380432296845985225929828812776962813260041510598582464473192527403775699769085422935423004040545740801508658498534486964582384472847825877261526611120772433431592452395879605301130996055493738609437455517318258586714891895442861543994893878763602340944947222651317796423698805206777935231620115015819550738779533199109949218962947831052493390903733351854944287561689153129027913493356800627602112425735186587496232302864994416337949638612672428098864260307019984373430454437594731816064867164958974638575562928436069339355397492245778958043301769705368062892271080354858722809654855256808746007742560351800945004976849439976570200136861636124056460569051569402974760010716080658407223793392306930651213701809254655929065555776369513988852925068181944216026821346259583394842348427525440074631753134261074320585516735492826083254250435400070671843597753420524628767645309476357851057757397571386048197824099392646320222220683450782115595278424725940462400476828397366747586013526336694886909819740011681627783501348207811302926643200043957324481177616484781816413718869424940250429417539697050320995777384218944438726273034494118514059096370528051924114323541533742900618672388885563959292595697136536912850719481454969003304612651297243597204924295129595546639667826225590453942500495668914933662515957389138042966354701081115916190495422457836782003660487901361539622171509881200935993217277660018957037324734021389164868043114635027974940292648566242860174268817834174317583637129307444982944956963286073253183128697107076380169498342471978733125289778424517089297064323066087273988100816114072326676772378892503071054537627405700144409669849027463237654442272185725540843269607652436947568013014524218771940154495582028554289734764306245884026202680094572229905646964890611419131857409913270738124584398042254132994276074730011281233000349237059498849174516509194990404747856132757284469075803061375080183573509944732387763111608872885780469125182850667577002101659525690650248419321721072485345332443577564182084061814115503266169421134677795108224098134430751230475796685067360367430218922391119688707234956684405367619098273508210382012887863487830531910041768980498119831367830162197395252535981071736964560758695252506058494692000525608985953645099031047891037954757149774288701489582330809540860168458577363836192755530411548780530091070020047398413378929957939789495863896534214353582735925111317976597534797675439322462892007254483405871678887591428931526155862688622807950496270937236482047509329979797262760588740072093948985809085160577611601190276599137419322708058445481560850184643399136689966016944962530983117884658023910468512191028602513252171622151575715224344946681217621273604754069411644407314194206493441959917325439606058718789225253756263028400462478792905233942572172067481656067944613836008397525423687679256713368715437528949885195601129302819266875241101462674787619085099253540019680681363771516596647152310974248448212864027392503973237437281638888738336097753308381039567897559178806797453230753179836654391552550836509318011803980119286140209287840518196852273518577268994526486396863965012491591316863679584498030650445649648196247861797716123404476795413957938128560548404327932771842351822848256019076853543991885240861017069462794438842119519766413319504907644358625751303736380647474403285286957951891882174887657344922597846938173707934869613902464262478036616281513096685139225160082784891034002171401388981315593206596169270652399820126692915893655285398404795771996284619291202476412579458493312207074928098799822940265684683787417403928143996129321021465598361640518104754909629550487660650037148945969631035208305235976037295115304136832105930942165605089430586121793514513661800544445808673001203816497196022437960746161775151398646665997554324586487155311946757151128452368135570823351305167774594367078104900659473510272427841004750643362699395309608756228678641254701184597992951738032192043352052737007653979432348804131829631556638900454098921396578659919545502757645310589408308690435010999924921140854084431955103462919467735973658504564466904290551113929948880137056026902711075697208273450641635491675322775749453573315729980097252773867900719465316969034214241646252104917558090017224960719905410737979389866283666448146208120784090793041000451551653918136130179866358350569648752240837216095364148999024177459759593026208941970748404716604576167102095345122557075748952420253512452743334372761015098535077474660029453832383885204753467210137938524682902511766533496431338404854486408914168855469257524841351337762018403928154024123607754152788773906077150363265857571238149466723747732767290574060389751453750711754114357353561459387184211617473389622822009535603252317243807135124117529941193190492886908500439352242209127775418383259404753729797069784184788073133837212363325958105734682239537139612914681423637197994772127367963366291052336084449096759446137651052081459485023678508880862762509994847925262126058076511537172503371371285852198120098830109221105171931713964596874080219979642019183692744454313544224583610537753806503146997274557058030407216420697963755992952463832097205939345417187468524023830321591469733068101089163693471713001119721149916462837492601391554001996422253118005401168913041164309340240655160356024501841054679892548177715558318520278590242323198064361092027952167244121327600147241796889071410801367886178650989183183511065839845467901201969228621880073823528825434842743989661586887523834506740176413141375738305129300668979324330863031408546563970785890588636888856923050729254512757649547494680248774528326895311100622679980138325474555911489013515617785378106026475968821350117736962908767092442263680958263930889519646504707613564998808485238735973963313456521931591943138672998649396600100259131141506445731886343707200572168153114432441185337740471166562625418989608246856210757269206512692333728088937659028245837187039286678417358289849528954043197250433563951547569506725279907112393967551480408880049887308193936985179145255956064916034213269389222534104956654502006475373336004175458806831910038357763114970522673158599634955487616849966865712958469597080832586142925117021910228601690926210140754117317954704609237705238450527043261754720352808682779804080615264370725850826792198790159013216547134436990459400348516933089170936336566484318394058478343517658093100851968569850911480012566585208680652550409077674896400550550967521653814749399968251850190642244310015935418251578036868534707402011906770405305946053278470615426462002211321550065962041202732586975004404834910409169493578468202274760730176835045597650810172351161183349017991978056294863987288550372776191566407382665686813818974842756944961200802733763063193029069014279348729240329377831546234516109945304721921346546530802851955895324662434411791802038106495725070425472042331230819129074439371032674779277357248081655201422157716634381083588545043289730354732551310000555943203403727826982388446496891003181800929856507415993060828709261843476394195440448132744649157037022689047736245800341872119751805941518727528580092415544462731850694083159935164568960466880815738989349099378153428567899975036673288397625165664317418610921099598775595827141781975562303515081443119270766118207677587007057474364418846007351216054779609919381400244481395331307203439193069222982607461954545162816186066834287446941377020203274475645737280226718810952367416922872326401827619345852041414387421133832903225521573454621987548595439614834008705809966659898551702703007233227202522333342798335762145646950232319122811793613734161642057569050583515664612421908190031200535100943420296385879643653054264265194244084523105961536802468288776730062469274698812221673510574341788475217787211346668158101499020413398352808550877199248880253950320012409527013002413018080970958020622381573828645520516709052790992014798932330310636857013628658793649186102671606089930293028066374807856521954510187629999163631157176400036603383809625255785037858591134753283673947903126351385287871035232898852961680174051353274359857913613407099769362006883565146276502422246575094830813113602589835703737207851376451059807868348208850378858766312669972204761982635814710251875853429635740841890465471817808903967239719955155370020257315708469431283873328966667193036982340323145270228744140838903416414916209271629708060388168572454845433901053686306291411554552630902434113805540504109686928398621054344353701981722175247598064532384240246386063846434601955366523208452947864170665244472535936324317822019658207950972466381142318634283369546836917621426576167833593554495333361155700723046152019373398672242459858085927334402266950646811643137187087180306519007393860029954158578932059458367213520936908114976577121982936550211467863588966716408711949197934725143305636194857557952320369785938301296081261835074116604055817493882887395716259957489629955125842973319720111394658888988615373197718604226684340514903742921331036294980379825552183593029424187172080152229152870558783476010416891667348232235263976143269865209258072111989532923563914627704498645223072617181228660870949620108669323419007277096505038467033533206057125419560756631160202345956516066702162010486164739179454069952073310270479421238959648700431854102703181651901343714803101040329306869466896724757012259361511108533667230087239368794809297731818064541736233862705805048973249798945188780065258411930619946611575911603716583516172337209656987519427676889619749176857611549381811641674066078830456529957091448997857158570205025091015977211689346689107506417628025583719024619702911354283818848638404808466512139118207493206933135958392592598382293579778434475719396059255573303081765598703971049686246519849508743944846247561724062952704342646040221863403001438606886620729521607468100191995769872366802491677382245060455502870253506233602003098473751737648119673936415582949145123520721089861333081576035756274595315688528442851210330947888099346071485092718275808240921215686299143596447609695154236221337922362050858021970978992645570944595914798067292473892940341233715584841222229255324769649781975482873972325485413365413082640298799059910261812470989721017743006380638474100126087597810480631918530009703846021029946844566452646627956446948574056096341085691895625732300212401480484098112560792937898756222583701996178245868278999867623792366231785293791697326847885533216566573762947387921466995180284405762714875843545928334135951326601688748546256509685446144519149905992489031095072414442989486298882716745310187132108956618177668076699612725445780716804052070215860632190663227624867087475458369546463273249913011301254997202873417818549537635671120975357672061706135830165304539702296446540445010568701636269211797912441625772482777747906375222908277379338742757878931799816509186268586813946317862441215732299318210599757303714720006051133215300762285920242657796660031873070551612552726190651970660115919273412697038163851646931326151106995989875794036487632821836494635897805584467877296073778430888134876848178081693737006087243405371864368845725277337431814522050988396919253491240033634777066069678952309320338012071796722919417007449801427262130177945751602313318639695131397888197736856960588253722801940410852982120390392830099861965093381676066447931336964189757655606853187693610355096936600036680730049006858846906877441106471421165729936582085429933892096798666731968525625947541614742482197920201460133453798675896480738613662426072088844475896071902519193359630264244984030255327995570929581481125829643693175218923380540090177216724043529504429033549947817390618866862530662449631768104906749682494135236133507719119472818139572347930935853068159164003366621480215008822889271903028630935698197167677502376458621013851956406528004256952720853856579986768911696412023595988976713583731931912194918076585762672384917858463665761882126541895152087568344292123208327940871845207597287595801461354873951470427434790941691620786623333328939879829590001374985204537588936638530473552136999554818482997076202052236291976348572271522029091504596651073891358823027403477019165583301326263602485099748834441969655792921134003793662589667145583025260726396347139984652491791600713804411040163470043328530501083139108784886516510001154742360611804143611878907801411071550941763819524498752310524593410304411567569018578074692188353410875899979467471642536269930777889956310191695934688078422950545638730105274201409339978851325486164275388130049870643942250140650507187495704498825811949987045925472361107963599578649620891122790806997464336125794973445923686040406021159555747337913848309407915430292687365012404227287427649486874842277630307015731280584932470500978342944353024452723962360729020381145955642447798266933263569308749404712850027818091454789915679254198326885019640670411265358478299635354301613566634001052910784526460181129817232071409172541113825270553478460494539412822658372110804367825741326146102788755723263178711069192259836410804707975837793765913060285508354770316104973448854393631760880157301427327614630393973470155074431302909236724338678585109297885254004060165963231459208122686716978589721058477793709571729927320887097290395020579484573507396837211521251062612691096481961426321010343215535450325035737406674773246618513127408837312187456355280841197435078140070791150226341169251396373050234373308575452224442409918910219060222301363292353767537643125401407776853618721820975435440671055556940695843381813030009802830905758936859096403308521721817152647221434374911117128487403240807690929052629447220596962408371632443363538029872143890570549453514527334655697665854825153403681494895629774603285945896794403531584238410607078912438992551245418837759701382521394168405869028621437103499496934835418036150605913421518222460208081371643025700320181008415510407767698602633950996040585503041471210252067486099284887189104519003812971101569429551662605696023963412887759890211789398534726733782446665457533689050057845785277623082748891533152461630121075064284863211273632449146071448671202045296884303005575662680598270329827397503444222098891259540471639873057653159209844515478333691611392153073737941235335825186680870727989684170536504861772406964955337682833798576991035116878062044310208123771175977561981587228789535060525476113772077653298965141393482422960652478213656288087788031111508136672704585743599666328755421695119412302468576024017650381510009081729977011483367949924306110736904571815605261196912550013817214678540426510415767243855176282956903979933257286095672415336538526503190847157056201398320065932331181676745219851167283869845986987563867737841751617825080731581606485725550563165659207730069580531468306141680115302958377772993537543295817324562995614914437091426949039962132381774109556448834805953738347202497639664463991141940930291266570781887662369541320846039723318928301564663501155929450443448091420222113365396470563055544326703238188957344971591693848896421716037420554878818165560869730371954161078972137365220736223856033353196822186193321216162661149007912528637229704324339231775165430092826864478444443416827611524818608108035001442335963958730825467703837854049804573837343420667930343323597992350632542722007154314288815872372533813101286674967503329659335237011043979947741453346312721520908100766419644468827622522039547166793480497697409178559635894755517181143547766536290785537457554947158558450187120722227568488204849532031184219715997162488616966985504226188407889448466909582916421793603527261148498682680393049812458061373483487871481831542859815389390018850161988961219760692250507701195454005531814238348110261081346143494499513516130596459662159639344024129812834560793590393022432710501030656975935874294450314009862489705899451109637143844686002690449386138805198707393979637950297334849447608792950488438195385974335303154762065561798843231572361282046893370491363245777612625037237937354877895629318726396038558999380744298029948066828279405560963284745632291317211120854552973425297494562767625638562832599094224851086458855604731775868838333681741651343326199821770347555579294305663506031723946479938240308379732997968635020151193057972748319370682285496037349101391508097582838336079392559542787984524910128284481512552897883697428461032256137314689137809526864007798293620216130696329058023306167605079832920399907721355347780185760779053270380938715634050132988642718639974752250166091239074097484269186990497911062593791119332325466258267946407660887010998301286440700348548569123211251148209438928935033802545175433792319156107726512709712737333839834870070169244989692780765894754643828285056702540845125939416256036607634957170088658593566854342476546170299733355038189491579196855881242268177962964687518077864537384494372838111686443483620942814043059623605224494497293803773542448569981225789261655162827389193849576331755391375632920091684315454217346869520200330681504849955662347191398960585129165388816865552561510194369317166627938611808574836013786191619529552137039943633390472003225192314304537315518236837596779441933507115536856902635488389360893811714328329878908628946033384850247693515907988806561686057404001008630866345749369447308819847944257825722841854224164415329129570256686336683193005968624637299769155973286616832815425315932756060156970708818007777535721980698632172151215393970370161903161780964399538440463820836864782124175186088868952013054574680373684950235738417175028641696780258145083304878822514674691645309933388733855633112806262621767882406151048013659389182112583662513950477998173557218193944312925975533927242223685059558982950640595502292046160405043515129883098778665894518094598124871467651848920542468260780145556749120077796123022452992784326475912091085604071447570556235037402064488099914203423932882172956385141783395198886659603987972488312237700883725263526077901836764166075914427379412719790038765249365100122860656745213749898117152272761500059160862491554817263755105701822222332504738804623745810426660695315951745699819283176984970040225859478394200048030214087188556705066068194341198358487196477384902370685953771750732507115731765634157651494560058081731499938029725194430430047034658080042897620176046459641335811644022404550162037782803463757518953064521460026550834482686634016341380951404911570258958083190739855231396156834299387610564918172790961657138284938334329769272192293382827033190362836828636393055435018295940506508643427536278995028458311614127115701691689407827318733649702984182218269138237712037868321261065424727737783387182328946526870264564946914415579876850858542394604213164094015066018707909347561726306562372172436838405583741187025428889501150277897239886537438345723309352808695777289820033814292178094862978760833245166490623338255970615918170969561354463022866202178178632565204749523537891763092152088224651181183155808894036871551355413383197572932404151853399333505132327374021911780604870537701649667746636152938702202515342105099386950951998255288726816862844614524390869364432543793682186455187666106704729066627129544001637947035769682056670598096030634951976462050387286025846459662323588902189299998232243180726821508348344429103622483921143096853226176500301796690810305536645084790281321046390563653728884317399659159333206395506912692734207519054831432777205543452135152693321666059235490395781153016779310791601767516569665016607384358766456572558074664411905779396869927910952316051623371004448752447215187858295434632086206961276541962170931836221862475595033313652904420000112571165607819253780961050638904198045405158497644539288903515664769591048313194723873347322273740137746883419238952452188668651336125483225079110468283682227855054932050577061733311950998160746923772501959646710962011652946693180888850448174562735106429702847531689667121648197371040692795185009034871387278239891526718546988046184795005436747555495850384882782339746554628439984501589739869457648805733204797801669436125937419198450011896207021103687003802944735075220472168144956234688134212133843866947049904038185546837165801755341975212353772842582592347845650143201198701480669216475942335314822918446275299127713870287166515222499983628468230081620129851028150305458302313829298021171876451432983481799645488425708245176448044094326521285245162514070741248829633046557289281638016107366487354837693466762434553469320659001388099935314316947545321552499011666087055084948890837391754226164858224401632927524063670903285920256445636956329276464133686712383296453431117634445885590941354949090075170119105742520096106695541211223760154286601165262508926549426832360190911759112907279323263882778909826421785592584338747786842567818139824959864716523433822656596491836374816234816829257462678702618316150758799035826327014667820655784597842246889486631486231763467400396834341602471151716121957964267441999673679856880146751731621840865585397748510263045671282801800789400969107402227840063592532531818245957309417386821741965032926922753805954734158575371247872434299111732037770875237253185876776417205600920660294447772413706043299503135545476228673853179712148708329756669140166818145614302680975735928095442994176174692587454443700154107598291937989521682811193826353123036808506923765395195544210635625390467407310473056252186006874921869270498215643009544682889428057648216124047327885017611518535165636738319681786108757545452579452434947817436451566707688225541380801491617624141379113889292456958295737793656077189046012896696458827285783901995159279218148700649430932329420874373112157344669352928366479449089145017317889519533400821949941459504426250296688336228965894977976641593023002394403538361995661133196634032384831356895148769403455065660026828559699088463693794244672768403290860002798169761161867197985565481992202106810311705336891653993097174540666628859528511221331326510209264069819873130124448512948808370706169199850989179048772645174660998484988983943265917156857687836345322050575614704001358495858625588318111409805458545185474840955862756929016720917306895872013670704340633871197699948286991952784301043101519985586752075657575432275458154409176069230123908676349861651717811960523367515601611313635784610203991094906576367479806407899309920574155005819097861334958667038247870643569810499559951027195617097161475453953506936810453807713122047244167850426904839569258286929069847122212530761545088285967813969233201522364016894788694418298915779524864093141922344409761473727218305351292070263041121803765356559368453607369281368294513642556567559506647852820884432573050260978192118635392262304176621474232216164171332221367737372746180683619719168915709772521731895495353920772268345721017736163931012887624017584295318523734147424287561967657900736081937324798860135482260548740568693469877383477144104362585117864281862804034110330800039867769307039883615512484054057174727480611961037636257921091792411940777453319529728098812481646958701385957861539985686576893250999031472390329130994600331664750568311811622670568085597775814902790094978421087775212379142752465334024687453481127236931760831684809967264478774207246931764587107860815158375535169660320270546135853477103779562703663505342591558165094159306039916031347906751345864193467933662606130928221244703095494074475475912147030666280651126707721877121855224955438946568876731485310246497892607826221118775793724292240044650038223179290175982975926655414659321324809208645086529068101141122962792379571233679580368841081204842209550112583851818329132278984342955842097930211318516998455824043646368657165805133570801202439809928687044774956914325253771531498945506278579843288859715160643037525886637368436554906741272331586948519063549148286319759743360066438252398533563019350271201150613567897611043163629779604801975030164966885492536818139368690001521914031668740774624960259001296608764390185315723599122595365491707958698208881493180601382384279762571332733257642753503414120291089020794162454097448765383999743207104575221679158841661690362220830756018867998933752452455363534840999437204625932040929572223195036236759254343495771037894937249077071731208554926896979113073396273437578827617107536708412640586073797062149297261272072113405157991871226957333720164673405666631634430942659871770631643198378793708792301141520643476883259010249709631435456115443775591023127683012644626955355285997139209545849419557382805142082730929796754097080172119743937920993834495213216001387768620743943688329436373887439467636586503734301419319787015745303600357520605695656042750985078810157507627204766299734395988784066111942324137623287152088228843952227723847475057708354762323346796664730489606733765847674258137959622056314487725732043948023866217912278428713996623262245545010764614113092875709238316387307796344277496077783522911233126307599394000517787282863280867940456008279858103051227307014665386755176518012131261824307553535751668774197839171326730279126954124945042675899316537077571284297048214617486304131502943923478103960637935358625601757759910231982814408787109962487647264457124551886954123439757728326902057260884162044080461920337361181941254813687146661369994083859798467836711430926665840751771743541992216951021985903149562226184401891838649589869898716077449665596971494403322361013900353040688895668933511622942510763909215878838968329690501851174893057447141453693431143356813163638649516732891192908204433137899795658789215639360173774791802748381785980388034277241457101781445626419007669170346623843907219347394580059782752731747322571230013942039441879150114737795844967686645434536140345396353396586327586653448720498897684116457638086420932923339686137127336212311460938562240141109118581110072129258204145629859839183228639633716303598537527972889603165266490943436444372828125518459712259791672252661766803797449491755004371185368578543946877855296165119680369561121283201638017134041324984302612733997984415210658442454454489473040019694119182819681821745089008311014263711929080583422542624624882366722545454757030704017970085311166061596311467646640877569906236216449284457070523212188638944117821263147848353137400082887266019502111810442769029067036095742300122286470432057099626414461815457419611182434072190125357507403195940386941930461243100488954569895580291266220623590000297611112132677907239554634537302965170642578982663697381743661364898959420331612923194857967921741867700528841908679666205983144395912636341867918487992869234130437609462500179313375290313374437651374902161542659446486302065729261018774181831126150000258117561822968175644776524991974978870091464734233096961632899587312942481040538833916935204226460317162221483694563226362278088874615502855947121942563512832942000124988729426367500588031894693110211571760351427305165541608231543333255858091103626369631555309120354210176581989475045673173014995574884041832435677981432395238049746702885645978533436209363343709780085823467069987735360328387228529739441764872844951072345218794851543372700011705001487804574648469513844797865518086069137435378992578536129434335138729263336607834369081309636129938049775959599986495635647161819737551243539732138101200991839845547639460485440111789467595847973181741589205654435257541971927678423873364804141982724839017769132106603458552265043443019248491451724367048114266992351393776262530717053527286018467576752863827107939692089079171428258017036176451357725470940860418938951253805857166191604544720804575085992311575662657442121559973292048526277113602867567684203359695293294955050503872123490719802500794726214543718605101215873826828776955044069270365331923694558368805901749185461993989186119415225677881181766005755144874286856169616765093291106842699275683158437047405161706992488554735919478926298181916984479792324703830383911949433699545157530563272786645596582502512562240687122642498885740925569694550026721397665673436656762409248004336823594695904798601177201785653031225657433696178466536299108036995103062714445326073718100954767174130387446544662442590448583731399780105200563115156441357522046828361782493844949848144593073525663668820819184977483271244553225048179579091005462193038569457543224639872448525584346709855617023813338623316594434306402919679487307124299754213612878816844905355248455209764021462603553717557242212250411821390336885693400595085518923915117309952142698971714502354957605049919802417609554122351872859271543457567194916738678049795048925844030390869822823946011225231147765379609668546278366259662223767518262171606793292976740659117962937094705342562828446627203474190305356296677333744907449053422642600952638514225447659909119263344345698929944447968617850188996061923843087991727920008579188651425200771616066549020290576199268020321075135067280581854734877359201384019591039026195228114116797522450340992677618759612827759869687356748856011010725434985320862525390259387815384863914061887982498700885590417049702779719685138500241701529923219456650775829970321208843905672411855584424165338864515381062255539651940368675428102725101042215119160812841654411051040468895976645642585495506162434393347917324038343370585387004102007785425965590469443655378418105923333778098177907396572506532594782813125650549821743774777869499673076774194056838638114132991849211608140088808381547577470095973373452758012874923263582973978916793931907887109860137509584733084714919689762859084911640430734502116609215308439405750474098210746826245930836811377553565463835932098442596522284046721863646764454905282582584754444360683644435834153277637066384936669604662736684261046860826907346332702936935201746360891074549930375566641732575303811877941537939556573932969999185551134844071747374347232909344161398152206414501033224008181854313295461282818292558629734735173112890341278696538803438258675623496257070190059936714275597416943939670934940426226006889749504945763736974050542874304635580101640663996173240259471473351704256459627316911141167282285352473925487970170338845374878344375776311234427433143408837997704057352972325407170521926242206658833709758571821030311988827667861820456890796188674649674956538260409251131242682017625579578690136664500347224287777716301090490438755992169972157061307014919319179037113746100409015516714645175165209424114023100988695632989876636503648748673924468281615490449043355275971188915714701306154290418906483064507693306511848849502410714862854279395647547582985953659538526061195650870630373951013925339719631746478177871864006106578601848730006849205204908670297613555598015336157556195638379535451192411198298425188470833059505996187328310933294223798094414898160639571510415666513618437763819153998400090625937365328854830918800183111190042649387481850447500944721712677854168060667941794497001026509668008864329653471470247026464070366316867985617622375211802596140856564136772177297026745910475613473328439229436484617840961769221446233142625596977165908110433113239723191781600256041699728978839177084706145353667993200382984708133603522114151450485872660654916224556168894366486588458189857175166953868739603278831283639614221528889632700404512074600772726716670474434992630581050490871820006487476039595353609621189681986151167239970365139787798629519568041027395787489025668784343878274779997145460557954314559049661588609172215325311257516130127628749356991252582082557139878438849921730182235292900811631734911485838270752849046661332585316955444549879529429659188552946426467813217796902997589220594332278954607129300145513278869889118341754388959482259605296410027138862428188463860193279699980362482615899901447756524244914521117947798823186059398917635351426401205215081911681592344445652552959014239228401415874505251637315426673368736868779112839647535480454152177680633369133721488979772207857790192868333130378229566513025213678089105822550463070864441850369544299731469935311243538100034514137671784723071831294941284843380083509185344423750842592850238516664325828898912966269871255910050558063166255257908208070676969257765770643301307944167314485457505905851197917842306500312734543641702823835364513295586913331274281826718573224657275366343704057414644929674832284028300550089651657784760033922354083622388781617624442770587536243823370353040980237361698265445238686095303305720832788700465242705747566756233595872427790548811586248388445109096957567309483485450912747342621827048304207078141923084561430918591360438954136714890250368604491659592187048403869339208794942671847603976835137389436176788150997071728289952717797579229309233393733196830203852987678004128167426909216713851313122269437527586062121027462076782552033892375513144990678242580382499993521719345994908932896727078803740095251374002705974458977477085310168952771031174088040635102220954275301520238695495536747479393305121777030766895990674240397719289489744959935257459657994586272731303598074250992178575454232032076201580664663545676524231444222169732718497204279814828894274079022506981674222130503346760943812387861435241244710803491530092348831836470414942333339041253220874972036718229305672441247558071158608480145217511743850940335825561922728604245643674851174690904267554181749721754976071223796288774716618940130511237429888658245123809959471475036794031474259119233491437821542393601207457455531362430090207461919184826470790575283970455491742309633112512840454328440952501489841101686915187812115718793698421831387067723300596088715494672056451963271836158464626687968936192648718714690623511703278427522824069258008766727333074204920214998503651897210100174454772352921776421138854592151327803528525632616708575709299506012837582299064748996354338508448519201386145640596557721357952391799347056367629790603797630951598879584194646640538370825770668365481331864075363963517746885426243030896370751980416703531128562499878516098437572358155767895048718482951224420834772462101321085147963482411089232625350289330989451923302468793038186419456043444822647091346876759733051670491893589105915208880969044401959727881184094982255558262592047964326224573942077630639739183207082342006844594181623180023384599390074065875398734970709045530482485997675889215632314934664996263888624172146499547161989480195256411868204147583727211883995356880574270053806878900797722181624734405937328273617584907804182030590755514316241131638892041683120471436386962444709571476055503768571393430340694235617312060081898331748353137501803081701050841827021147716056627835366155121286135227565790010842109324754840967543783776012589651895849959947184182935977481523396951271923847689662761242301228371694092071010876953899343966745964947991481999996891259713279921035969238993008116030691641193001187958920362641416127999521853549263563502847649268441755590224997665540407656986969625965618937807585439463099317173103602601951027206407338614479510338470168891625507846061757054879428946828556785919753557461509138779769340402747654865933810869367460861611371548863131250576912313560589893779834637119724653667394548139142958618203493565841098950293255827810775403161974521738526188751341937613554235374104171118241456050762310071522237853603825173391732880040451307652171799877526005534862659564804312220944590133241372018688176962828914343146053564488490334337143518990391495685496849088158375864821472006322740037117540565788065029181118044404300163368051051722393906171254646963485947311009833642938030026562361467204887903405735836576496797495622619005398933857328618317873967883577532096458115633125149114690083528229414930787397649748568479734124449112158543558216722737797991849859502376043023727517404387224057770060872034366353166438781919748684800235666081036834338771128134276326236302701428726074854804800836587315673822012535028927729601672545367989532065696527576083903026732353188250246025217090290968245217326200336128180217709364066553674517437317572566017775273413452048509788284571507198128622901949044289435415440066124704774960737146195721781670285243482321620099234981411546252313113357351380436005068023415593956639530620157348701678022602315668527595457221462275876163375687911263368663125980943480734073615363422238822528579058971506261919580401938420774100246500975717390245307361401683234620893874797330493205088806187420249413358239999026639131286193069649944275177727631628233125903879286446673345993003199677481906940642811327165098924640501425014786973736115013746415014380431681479731814165666095687353262219771572471667584164191614194485112692896643613075257533825229209115601712482910745252286793516614934386566970710261847811194702095990458204920180539879698661867095483821009744055781607210784514866436112234625058128610076436174421011157903650371434891659455425009082538965304477379690213524782938332306837677618987784411800553311113429431549788689449129945113710198357767519584407000011856481965692171076551409086087498712085674043501802742021720577227116986090750697610313488957645050675050765479271669600424541045162763568911056406020777017247167424821619056166573337338931664619531043572712245257013677178104676291464198669534169411068342202397378494001273557732606635287083747344032281267719204175569600681997907167618998929418138315556748445025775556237778272464816302267224104683407498682172708836020432408223685949590226859375419963369826597499329520308494607304523402195949362344003129268916535454059866253154132873224687335224295418205639134842362987676027095849586869571246791559138234914073770097894005307455041194623435935513818916795026088601135828743663411400415398459083345080877723285386859435423549059925551851952024706343965524805007357308915579062806129880049385812555073781277066289113644636103189915036566471151779678578760197403092999613162025360739676648511663825052619947561661656488168916404947092543532021561949220501543937677719169802548223217667329797252946990293135085285432162834317629008076873652703425753421788382835150680228856549653760172838787677547041229318121394904318042897958953205537492353230355129292977632321241214004804534681570666759602636407777772939016832534246132581335707290652054407628406394397586910387624601168842551721493819127532806178280039969542082336375505001309633630711089381090629717022074273714254153268832131871702603465075375685774976703874387403803247681272296933155823118745611502718134867691046709048910572851413957538534141217815007281423081152847231389368302425870020779755752086220149412175908858918021932572005334588744835652433086755326196073472815223818936100814931174488226850307794019049574476854075550587204094730298466231737178617544015799460300536255161527967156373510468280080712033320470750638463654052746839854931938058456404548287219923162839257222281730887462176685454813249598081881394411953611193801788453224368675542028059070887951156567081206193660914839971550525187799583393324549604483041669698287637214805894123534270687607703193344707127678786471621169537565279478528397232260377078180184920450901499282327956749574829633568371334293609385790726441912828372331224788913064506696117652735318754440331688963558391554031059318543101006115836735522335088969686123690044188737851094964232050001854400442429104991046116165666411756630364536112398916744590013944594075051826908734066119167929121719658480952103156892063347925212603286063146321476330714686073497070985867263837602537506409269629257549590936250510640510825866144451927171218221953453333596033509335301189935633476880089151857065427447810401841893390355252379978950944562546662259786093263356983662094484318572306775703845939165221294654139738453706832565000472001542576610567616186387173924131155136629972307913302380439897578878962493709750068310788980777379769325447185750332105598034364041336786555549544073672728400535832428428860272811772772653817395859522230378119984818206202686132284247059017268877328536546701243799316147446914451489091935153979344920899192959999211981075689719849604039466877026373177694845061588737640616164644097545431478766583215842365998960286379194303750324143320583358879895103649368953065713019371534498328052454147569678041376368492471999863755705954583813509715095275755927746771158168049902104611417366785191626521388061838194764315684345800671301403362248661947869876775474361234662731288337710348911147562286612005486529290849206213052931022508915771199630504681277435022302043912103092795150231319138153161047807664814791201085320924464125576514440254739498682973732865705351100230288380305553517272794501809304762336850029545619180089417973470559352165303522378737048322965071427533816008712760774235058596881725035408084057063961357067707435636007388999693087303347551172437893821797628580659382958491628861390626046203193845828072994492486635682440540315343406981018109771781515429544582923797452216831825548172519723286205921064165502082663709600921968842658815534074285188649778977007741481680325011840441680018131535228322771834383262550954829972892769976958120493117877861070178362924261228537713024402343752337637207692323396598862410820484809722295785398840780421249054027656238035728134929404445908732888440294337749598811819794717832566369788636268864218236725539033704702782882995352496746614592767273867399959167792394175278440158871030133945596599793714049431108232703027124938018068248514000622304127018037021600210154167583186853217472179813032921849995031658147172523750573694329840733026030485507855083527703150460667246157398687495706619512576515076496862523493539492577043060168421016469208636503600473880081175519775916543630370905478323548654831458402396208743556499169658450384586331184812318248083239924437581471599524858399242647917860596056412005331306296490137649522441701745465232427606648656309398170090106604159551912370890734050328797274241884266218205650711963384935592749501461852828579757707932266536293830734492083891461010740630594742541417922311197756989956559424907932218665477106138114688431751427527584211633180751787185509734370451612988430282778746954036981457662074492954244708110117325759016610267471340845608624683674573545168123609144436316498208084939339651155252445693809626225472998251232879696052999725962678934548091150272544968843475885994059912952849281558251057549821555522103275194851636299341177023752200156330013732278891057312492436242596523819301425502935725077589935878109511989388907199929543754955596830575153666054296801276830665086804468464017617364683218919406966008065338299630090334317315299248641015569030718321887531360073168495572476651952133051540058188585947650779910277145383886770778651671636527287116350435996675288039292314587370210080329762926743412173243972357470997081064363771671165974418726178940860617515276166385318163668332351712716240425180082779382804754876965351669855611159781019656772654767798591596753806920112979674232742944807470813321968707127634561269744614466056351220021446364372967090550852391926010971226999351396337473801064262714284796296658016834646611868907322250795050931301238453247300412141638073781154601785023633320284425384137972867915104778723350313613283140822548597997182624117745851276980280831623385123274952342246158664094759385436150839011946268845818646199446765369283415749193688496672392410415051654390453311238699675887912317546382627304388205537500784471972385144347415517846792017301434552548832567687716806941542087076482997928826854280081178951227005792386586253173222014658132939781314564625765188075340413913026592305045706458322136334487886379021137342354534449656731833445060382285195349838843687579054185797883170598817099280302945052902449127772044941893838980951331079869527401136365095874274792174341791321940682376053114858894363805292078883142350560398692788111515956038424542517564216645796497375891367495068737449420323413077295611908418686138975070573969190663973385598368478147110319472458690772232638047214560206761861023829850426826277894606559688381054803985585714281816933700671387129622042559274848925766966058439735311716780185598379037111101757454670523278295347026681981294961437385561650440673759125369512716060906435538853188525295966977837190842400630290557769128745321517466818784094047414563755075643952438355586868936885683873741952797200501841692415760608759219609127560541296888544859043190106413073909207332305221156709111500569556545390001837925969199664001760705286914136401003445115141381195042477521985169240525039249157697808227171342484267160566217809475989815940754777369743854454845000270096904297089118044795933089361865779231871472595021641493080629571818188918156554763011016108698447480793488115231589312324621461116375917610745450522927464209921753026257550368212333669778510793956853623785720901312360820557463054861246736053738133876062822897409853901626785682979611086135883840262869415366377941331621699000973963615511833807075366798398064082318887411011338823958716435766132192084283351791040215608317986111432345194089209529997614899079960230095584487143889739805757001777344286632063109252069679073322603810454710731701751992259372513764769114676016209631291872825067691205851159578043716099549566497101620379157852466698840927236977338504961947602987503593767093673138236967219486703522777327477847073502343129142601084461316608399326143932089991708849150820631270845099404653034552521608796367116679561462580799778828639037438708723147864034698856103418523768528214594606802759189901249919730901468369977192575886270397109501789920109736736672401247624222749449619915863263892844436296677068340327039565940942182100590031813847040688814304471621187723628986835287447641458655374213654384222209151569951064050151317249745632059664084455872761419089731151990688968462537439970018857261258397538660922698362496008495263014230124129485534238476496598572952544590388700788935897505360864599130406342088912923027592564591673135400325542421662189215640863541991706720855467029248109373409171798447994019671023075978221224164988823616130505351245512366592759920246994639302139334264082334106635120624249268326621809250685531222349574296296406220706487294006908954204823398201782772780504406611954149889477470115295555194005099325963677200562681594694091160379313461862423172345389397610713969533173195892416971551873556636729108264718005675036625258128401025178406149357250159097601292912473551068932355116802197525897372011231362624271304740919600916797487691523122995419604831998374149432784006792599162564727768148516388014185015809955236147535185168254588194135214060703290357804753505180817507818756919297584706478566197375053695243441178853395074164128435281025505814581395667994172971022374874327679014916519904956981175537650245022280493222723983387205075655412651309576373630830152581485975848990425393600777704539273094450351504016511669895581738851640275081696745492030200188419312058063027796021959108054845901976425695240587900207863346791424322962879575362002017396308217140163208966773343172262029078741054162489770294750224366423031389058528261762552609422674012625984290963049836575055440183062201353904386837694043746557290501107618092817410952683622315626821366587130561510889088113981771979012503253755066523734791873326458819167375766552861929186414433720210180703580314179693940880628851398476534577619620974557604071267429166603915942634115500151345285498964172292284424142655766774244449796544621546880180206226236209132046796652947425410395221899548271337202107517999887952670456993441558617819194754935689401117883682723983040006661059518820555644559574456292765306087035146621665428056057382647338418685042405951744300011512250772765030263293566250832786041231823470345949876202574687983489622782121467461280523459057830246130850224652430184078064475122381719152948195587055775806426244680627314718325300375767450568635557080037512352161728589465200337344973326734244258726560523339955640176735075767397062635909284969256461876758548486592653897946508397562917169802301859555434066411656719310079691926698436203739099290955765954174545569317121797339655013379915189176283270990146545464179710090438325770772301916361478509354306365475398317415591151953824461162660259023416354071783194148688949401577481347444639234410153663833701949738938276647396471909350685678975794105543181632827194708921415252082328364584262415225536857164492627457105878616024181551552252371517705016489026050478897237390713117715437834854910212991335865855311866973236583574730447951514752999206101082046088398496705813498191591360869135020719469706564869017226669686939134258367986492029489831297684883039511554350501618543358742554637456504441609241475822169322877634273490768766759976177354317549902507516846997100629474630065649651904803222901099637708297085604836335565886359941689754896133171859200386512596434388668786390223035240284205604644976703910781380416178750959189884591918919251159278112637638384909292807930913331099398040125730366429584995127247569462054304574356356660451378228244675073594024571059706010892013267781079960881718596301833294886119890699666542508759393029519640782885102263418418139250965407313466280289740662207725610926584582852143728539303848101698174540251481819415331916111697340956047603118247667973664110513120101847134943537188120706963674809998513206605798269085294303758461348425293233282692440768307826389977881172223990772622778083823799553093675215865930094022970434223541709521670421806903353793487238820415243853925081727697636610018417965473505207603832293443358127465556504323557094257844746338739668946954235646515256971900217451420068992985333486890541250984312268456140729716526790059313679462626546078291535661011517436418249219830505924789123646446251858472108444446025041259757309103871354352422175235570956345117445226644208735341702582839091251528669286519231273189907394276551197371767031665492300110121842242274864167364311020962522122018066934283935700552957884700632106360584472243724046610725809245574052462138966804675304768946634748064186067757479728405081601937559076460229959460809300844476688469863332281977828054349537257787405912542805917414110444390415182468443912387823276299589292119901457201490131274970224886246236785200775614978619223983684454631448865123716004609149997454502268022535932632362266661300599185036418673778824318948960678224780917560707691439509107958206620691688021150625318939711215991261062319590602138730467013108587668292004000047960313733357481483565276290272790716247396326983711379829734728264047882653446313674577003091002992866098627664919452314490824060759993627325367665964440472452869561999587066995660784541944356630519166025510692823104929337373305301855626498581607911935993629499936455026737918964410458848629063188138420465391833121937001790683527993568919538923279135983683521037330279888793095269576621057496189696490208972797929483491187192256722102519669463301459667960321522743708304151727658084747893022837107271511083937926541728944272953839399523887946553642775114801368481731315343051930918584729923029429724481395473930313873356147042343593824242082549411197762712911779888387169934819992548873663160122034954266383968286791735170186795096274465854289619214564093531652720470345498961070284643683415771182104761440699443711588417676961693513644261937724785424525087657646791620642315251237903829734557484318554957265344394438802111721687511678794488702986522284415209502440208008290899313753994605283780424581127908035295371067876423823848442885087517657301521317458891605889696711259474193498777066862797687578180879304637481906566972252403418597603329558324266627129627935034576808339006256047463217413653265981034361121172280322369570689667476567011292148976401616346427013271076969466918650684972498697411790484451241585367776786972183805465557854518830011544024213732553906693780327335802655572115077711771888987362009884209787887339890855333633363035736848762930023037628100290223081481551532568937566236454656103392228810937230174242755086909959950010178943687293130545824228220578013199307599356915098594352305151904527259638093427015948004323466151286917349197957171998491222524652290880751490596278219313972807752878424171369005653996594182062914798878578857758223508180977993892814010604720368484174853307816801542134594282036139190705578280179269280491925395410059519506210266540395371403328864869594914305008086936476740412245817139870829142625496756304401109311594303317122206402560485499516594459325303312424294434741025428665879932275118475756306308706692066660017121338655019547468185109343135460850964169702938143311048624496758463983258172291487288158456252676292435384163351769114472905657227174955322823774889730923103950806387556137590630996595555185822556152049068029411848288942640816330903669404336069238549452536968829076014855550064645246167585195769695112863152800278759085371616110337036336443865500910439558662550549789916495941803720777301920171058129776104617436719757501762684665842968704435768971930387035793751712198962823519237263194507081355136349899050640533843565978805049012459079154970787302138141942276216255024928500921671101504863226239762068546615999120019516488846431368103853524317836846149851798133221955390553185609577007449560905446410308220854786331997399608713058621668397976070382846032772653182377750554666817573732955831715132431166411690679485100274266959263982715784461990164239708363399232009988886332457695975258833988341489827329837524180396907796322323253514378005672460792195430008774952458560276824757922908225714252444213800476299010658092118031027899631323576267931259325235207504515135986890106928341943869293280318328592043039975389060720029179541341088419522806526288856423296542993284909780191362225873906010156583363162759847089405342112724012148537481410664731689071270239087517893823890824652199780741807443520618577865707171442207896449973112310639029065853758570103162910436823827374327687569468210533864893207339895281008073971184320513347261090392211186130302395523041762334814528159164876350126696476176328063403188161769620325495543010198868412394474729746005665073279425834146558867837323579503840096859247558037905274161475145062561320673394612010455555680509494749227065203995191709450865413288950145039919594573601495517564668687582906778869663791870392278129163820873308648681683801729510890484084417460295110735849000877904706027201477825930984399354433614028616783130623645664221860086296405825815414432805887158141211380619539880376348968455888159025175618973375374917937555293066418102580599931364313143838816896374002612802765108383139376626457884400785101383412931226105826873611889158728920227067988747892857683480989600296333469436405850906528357121339443501367474471812127178007700216053346422608916396194705131000320074991993977473764819599095873215024994852281384242231034536453916990974257408988775009600296517704742091281418290902559446153682944988981629672553041391300140192168000891485677248815322073460731506010976605825784216912343460628455045616345686043632566180000716965702242156171628974020547421464624875984867964724005862858613734144190363678238431364297436245612016385854303258297135100353020831288577846735900627877993301880436467557051273884316888785162992071941606058711455070863138113810946133644550278315303425149755940225630366020956425401813156422147110621473956443176658264042115147426041622222522387211037044536415937739895689731353223635476010818464911650500296634442007610161751016983030420764056484749393470956324970814523672537758031904077405461721154404321179686954872459937941127231230463023434223774083940166136184838031269108852263669235182499628735560845885213553196241822215853393963276008733806319425307505182391056007077702382262392176232784754005448573324214338942197484079504523142985754671559698482833819866668131755374544021197323368777739928505974477804693369037512336435956012101403821457770797161578798212062735046005405313432119176732024354073221129461369665043710831545693023623484145739806730848816225030537641453858344863390532140886088827874150226154075249766911036959753822283575643145606599906697212816520269267306318212729313460256613106206947127151932567743945459152433715369149618226174290032994732970149181529486884958206124045076642349590003864603255098720673262751171347225322276686717366316624884164613328734949382203383389265912207558439279739157198373313114861496905385128954254059658672165943549569181821404278742015924044319106844579601386925512514757392793075044042344925708523899126980573289677548210802611583867395048183740765957247859602489986003340198807894727358709536343109588880228695629182439194444604831954465649932339144522242090970892941827280912677346297607771666874835526176569688810947446665405449848794514049030182586722910629316841037492071314836413190287383895529479048160157634685672582058311080732203786721151259070961767570485492473584122236116034245536148824036762377009536794573362777768825403772266219971887884230362166643354711630175385329713730058744026335064372049042867589117964418967060407213237220237774703181318846667596408003273481838707959143481501312191584170630624020819775251981778120282190968184948422324092789602476163830806747662434474930471657310772632548298377259063965387473969661013870698841019277508673842005333960219066375674278831964720720589672812558581147581669884185086616875541411858481848131098411571593806773628064920600923643413333599943212050005442072001974625194024950666203183992916034436805866881053592470005515164484286520950928581449129389772963523140683007719215415544588234820722643399233887491475432084086420300552805427283471311292178514465284743778340410827536527011693005517244920858063681474058716924863912574825720623178827499089402052957177306635413004867098690651833435318797891275177113703899222443037569920533765957370300282924067510598282886980260875840407931662906370020677676188285518005945806300209244899012383642938153990461754873480566906190993195717354961381049194448970206870158791499416864328862552730364911176543166269766450875486057422863484267434858901082836438758570404192734424171756478238307865628119282711361229794770914256794591625061525324236228718150012408954163638517673254229027026537916674761491603280503888810255764312115200595547942440368955230653702205023406167361817821235605043118889923199976687731758394790469061158121785036257132323258050011878406753334413958807112675343463546367225094186414584316871143314615617656300062163314408767370371652198151308061176765281393750257588566393570265155965183126002550749214219158134756100077734472684332916120968565628432868550229748959971216086920678559817361589074464942162531832940553593313289514503051070966092799016153510635041819988206050875309987115944087266831173572592765360291102763827549292974417450604932856692587330936930387020688694594193365319268188331051335252615583641872601703107021203169174905946597717171858961500751571092200461529022540485299122501865517265666551055323198575708904545712746236013015134512308169271382095255365546005646654146311098851025278253078437731564584068337222986032378230576670445199430911499861143600578540391246348320059221850491543337509724194138429035189426501732671300997327469697198257690668649352140574973918833995721842650555300066866435433014930059356785211523527746916981562405489902675384437158680854420839856357780723629261604699152845995023624353501513704202653200742888558776990600175100148843310715326383535762380046890109040030379268100733645057258383809786760528981933481939190010857093088046908136461213655626317452405521456648486088589040979353475335626540018955375923725159103146747765686686547717921751986116101648440733273509430256230896452734188207113741883536385221006830561413147553937398407465233581071764641240084096088105594929427292213223081106864614037116797224832009154091773446475237421352531361761973576093656666990241675061589888614695728986648126730930160914066595737053181503881674524054445183833299700513993989278985614016526210623067956861531593046460898191224211425652801418657858277391245358206937780457653560886994596648874491200648667959274638086501765827916856466200772805678693369555051561534885691593840198442460602125087735697265738209298277768997165555256010017799418008758969419358746942676816171127561215971667871778352903517311821674647633403297560543615211849474749614303272333479214956420020054825938895730626939844211979332974406231973198832960518173143966247599051099561782327854972331969086444062072080972008361033307257261658798883076080186766620192571662677267928434633412361884086611647171997449984791240150712588113753078687160934625404333219609928676566401015803399398218840512036821317801202886825320356185614938446882258752036020846315774972910155104856535912945710399129720279270355065423018294489320823494353554076329716866666988654038704930408919368993670274880945355660346363728387880432165693907594529679149697304805000642718760665200071177565993591579185638183555688359810148835306026751951645141112481648419959953080536627936365702327770763019859370651044528818526800591612647971873139181252998576615275633357020079839211756336674655507013720663790228457771458138596184039603739419579862083105466133200087098457826927311764319539442208267926835231426802189249917342853982637174153603134760361444423438041035573680352334160978414654216478821215121571536259599861321048966715951569441967109839224672987718124340516790207262203233676124018191250367618719122746752881761106605553525297972064968995647337211280124435176587150619556470705799029108074038583298607121699956313226915893057667741188699249260125880644884253211242657288423877506884139049823632375284315776843818629420281176530359930950277560847042051963110220970194146502553299648959636273401541657946471951918463398640680497471575287809843436245996284826210852901698676622602817706162354371834295278921983633328766538407574791081680208556028767490344914311846990414448747790348160147564324311292353800744781333223470843001349672466785208922414532060564476036573870162076204364720718151862961164074245899051204197996220549488096517698281406567653069624164313114941627649945982994616533546545757231945557140020868588580284768030075850277236529321763417951060090733413199963062335009233920204032298855615727987630303145218165952079580383736258452484043772837079906038922200461242750003912564489709335751867260067831913058460143277106796723090470813078188977236506004894792456550726161526324940158061298367458630698134876480004991339561627915434809240773899679438566475883621977557174986605683314534803029768299065802731002995808042960704952331032825403065840346256529054650162134772568124045774152649244837687363561440770108915526822582534143579053082193814985086091797205242522384127524088437225128860746874113892451094059881534928905710094910638662765215494522671893124660100437813122535833426876571441349190426536442644440765094016787584505256772861503959883494315287213690015858661766707817266241268365148793847614433400915968947083178855823407322593525171232157979711700175394577471113156400355518366177146360592227280352557864727650083748192569449665652966300643630164332062807683227628027913250589501332089779654379880207867060515940475764033088724638371382079675817367744863998638018992446864759010469474675339767759762572076369392307154543278962716690674014990645604105384080166144455195529369280705736791247370962750834200046281451002618314040738544998546854960208330034255300204145885208132619225035282489341829598886762686538288932832034855544751165467777798984851753659165052455486929390241974264396793829541760676734236516415425420976102252779247870583670512486145747081350905931074586509816535078210174122342807983261007567676389388266892521297497770743479243029965525912175537899008861506772120774728213086541599121183329285854319994946895750689825832031323597251357617498155648008112479376945394800351986080748876588401485026672262164743951874022982705827317243539979537335494264283397216258579471723659464173921631354716087827430972596074424218079451880402053610494914695435299484026331894090784404875558185426292601402463114971696095896482835968451547588950144149048726183352228547660473456917238953737310449345431780543039252085376243342169082681908085142344309284691205575570643137538470242034480484885032889588910210963890392947594697817633690900111564639629768046704652512242171708863694098225364162649393239328878428335079831313306266074481687683754350824269018333603140146202882880334669387600258001831147316813384522448874119957601791528882921044384291543225791427552911937976108638891286840622920359873423892101828521720256842333395306776757378096861146624335084575652939975381865181374823864591166100477053452223461951315318241090598226713918555449402042560220473878097758139672856624227052287812285281301351929819834374808497450757736825762208400136902874940318180200591346967153890515990259039103001363712542548928305208714169704068617139105521180767202487616623234237558958286270582914739925579467550388654305714987959743627759578766138444540595179098124540866023509909825484485846862771877152328806752827567742062470460356254231203767330849979421365502030727232966416392518324216988935779629346563159446489243749085187408419492893672196772830835255363446716272748114735073708655307706048927592169747985539443837546289956699027104732384430068207399757557876750254536241920796761863015155940259470082547191454000338756867748239281976182774349592345375518130332164239285183172082514045728602971292069517463012921120703393717304409116042961084915443239322113288769194817315526040967371575348928222432254619242283684574689213353380649204733797109592098312498488658018257076749160812693660242169920717477748666732811473509417410319264515270174268564842705960480812069306346394046592894001012240510203287157788626664686492525969032010323991665182594852336682284325048459765176117763966219477681760268641261602887957723160523191225719912162150930347953394044983663439537926138553184123696068928503175143036249742442577255947569128195173636893666098979683071291003390128964859151374480275683566989015776528203578118203288671784874647817513678339270713168438292235032628724084887524772459455958330824210073375860796200395835388944119472952160979747623364498884930385208408763356248983701878434083097679405325598268069207880204397227223206558909955733991309325807527050307436410774921400824099285619657562158525501966313891846607038792828787774178188283640267451391179584531619900566525557301199184705760459472870323568224735368049847122531549587357024407309839414450996973861152644767009610665519012418976567373732048759670104436285901250322084392367511605671583957094913619044170159987002025018029346392199138238174844092159856014561086640088319713101534926258677068302365868192792038089577818703220272007390040488334546992963274809586992317401899237272127059081771853506339062913394328377622995155751939001802953440245713902293667383862727007015144883871172101333857617519705460220270294732409128915541935739891134668908219073868527603532867993934378992682647417759475695011121644055275106819957628434192241779126546638348022554529043292483592298329042724724007160954820331524076296454596207903625287060616229714514351409840437166450025682346871901592272591890383088255342128212779630672001240784990372153743424477441143446303928298396743529751622615322060973495116714563480883409042646387114435435698824023496209887793763545824117251063294527249850039532035201455226099732499807968547573909340267099676263169486796263570079054138034547239775647646409045724220602918703676120715948535608856868737738443692752369063192071040774754964189459365828266207271374241138104579460268428676992528773509286630553457892376264008762148501852516109899008558217664633699430899730483658801094702862475354264552870477164091028055802437027940787312159894878028773547521755357209203216075816705343562414493292042355322509930873544985260308112464982898172177488487305041444095322044126420190533615709832169236443556836243832995206021263633294711007084769022594904864220938147167225893406787372564469782801537771602174727228524482351734438816061928140354261806418938808336876833557550148680160076070889463157230236154824176531065177454556505448242215577747138284543883285280602991277846184308811205806832604890012438715599602278792907057504063569267270217031957274837320235095114553707334005476603775843556017273693772729601145664107585089615178470329945618709545212288683209686893621197590090033807331430254482938111045088147934083713534886057536042382910091841283436093732286541360660512918234220881436579910401046889487559701784744837490777491393703209050830894440903430233627471781268443151380791046769407251552003185475650533720461500500815633418057332789260851150453059699247075625617011850167085147620147811316742397963886884508246250361161697501126965641158923322349056028027959636415920692998838500914534727969988931431041933084906033865786911422696394831643820773554553105194967564389931866268733382415205798834112115722890068956924498866569383294617106635842953689880548970723887600612394810106620732497023943985770852512305859984030153240056570861813214148568066537961715252174796161522230528020458950689591438915432221928444397130238759634719864190266553973596146525278125484010745053221156107573700819155048654968482995968440029718915658634885462194489750069302821742877620361475841219010691604968805904830548437878173895732013450263027946035416111882489200298360057855246734097538221429470233125860860781614328934657729870076933575660948923405073137896093228692664269742499621230599098766423742807614115788848394826008719448972001200918810581099085542514995908758715902248377310578578565661004406637604942581867420328776104985048999688724562217466675159348427002098447630079710913357948162579685077623175625856221427937879293269710571552141381211933469067239482445928141861499782862831293374131577258721595817011149579562483019504755825269310365478929806551598970202357282763993511427980500636304785521522516527912235904194402999679333014887979105458762056305658588071579447994744817984699316865307797804053961744979051289551928760365136685361472565362583033605125738149627062988295196666273018296126910831138649760882236914361397885342226792645319874966770625989176344395729713886376897906055768484949728732400267414574227267361226871557615018334265470188885420564375835543685236712771259453461538653898847175398642338151455138092578814378768152293964050771244811137107399457000823345149742748507483519401882350912744812443461148532861725878829520364831123361725467608852104705278295250931423695951878870143828915592953508858389117571019361634570474648140583365227472875070041458532431660775308760152694294536004067290300989829296598497506497233555710316628169643106241675470776043187745893486190945861076491541815597432849335692913911020472355294688265865453085747458194437657811692120367078588294014238458836981330324223233263734574155788874107934328457780938897947312307517614654213725610065054723440473621045937945116238847045110690864302508452183596676716861227139441394786625040843161829152562223460232168998987172049277764306177132374089157810342776807809928001064287138450939873857608418104902675731249740307604632969443078837512450118688861597491973774780773988758917160799452143635672560942205337265936907487334768177654114753206111500815641496861848419064859738547557297954586319286546374480982817756105233894578953531306914511573178546647678293168554271024559663545366371748321870452213787200476728434408484325766130430430248788234748466791892299556204770334988714940192143131662629004649294631358103755358638216070652250549508291752698742957404816230447556696866265274186165759957308471490310691393209722879058678821026679172360183795273403569820418695111250378967226054262430487111775356553407780147397285238850976396686482644767168257905318336348367579901434974870639659071472357827624641203064487295065565416632489973344766266196002544422163643537024664552553413636570223013771833346928603973799166284000140048563093030081671925846251752993151707600327452007511566685343722008338632812283113600241090784869782114381170546470108210424825889291156208369061090373376454652578440819006160258444945830494109180322974115321997282939797467364264216227278772230236835911866081541864787073365839334576443835790203763717539218847118280618409829091928729780515218190633757471844910016291888576510531330256456802356902908247786118117959824971032488982101811195236019036109951641297347427159177009073499372297808939576876747153770830877611780548861730599360486253944620585258290156360203261416281496470611780379551912305160271929178468878117019764269568771603843304613225560567522342819130348074778931567130362041351653446375949079081294727202524611525961070750083210875663301949872774145758834430005502503191971693784275136354641990984633373776099864001254613829676938305439206154177382619686607491210097059328206617184474413253973678890971448593041920705801596664261830559347387286436926990745725264655469132877412398611501502764757619729576925541235356318269474108294219754623137832985660652849580855706327773944084922993435759977342644392752044376083404287340599307044425064311078901695057962931107028009425080538088576119511328325239507377895190160959452121709592271199286926973638888448565809174654187314497590179506275245796856889628959867018914944362525050990820360216237472672556132405952661290610470967732040955317337723494716198159010578292823046105812876478993769802937834088728625656692370170162528599294932948624384298766066900036722535539579302990259806548942270389035592515998391956336409128172530230171664719217105230146335756413326867548889530603443691209285433855984715898992137020638931599135872403323773521889752377377963432152839871321756054739178028002393486417307107201863747291395253783605008366603974357860160169305249636061055986669569252687190258026921681009914756981136973724860379697828225150025938836451753906724260702628295753850714158124372580505615108676643571594545241754336801268050910708559463970687534077355224607408312716307330228052693995689698257287221097667533567667245751134078139434093368408230039534175068182303481267290580225836776657843716741181606828911491334970722056645716385150966485239017342217022970882026658852246362820537344784261350561978013265178562998320382015409580218952095665112397106644357778170752836112889458542088344942287783251931859667033663862753420981971507787681214678073602028681527315803749050813061834859506873700529966175566243473751725980884873478552916006947924489120197250356486004436762910689416896676194801032897973682938993470931680042681500189608879900238791053879150867227429256607937188342258354982729187180341371521703611038110043130814351997374734287015284758299818907352319522814845721920635898628053386291690168314489858005519986485103474600417206811451431476166714588210056248386921284840456538461044736654757253787481495559921488697238311400082620763966216624423512281744817626580005066225658997691646780982877134080657425219917234390670110725731949562601664741224680344432836727820503352110246796393139741301346371907348400952752952759915708205569349795076912699266771540377505561186394361831823187844859358389055865694664056363122960519270527990739316007926814434143781264699611294283824987930832546537593922199194338342582705369660653016168538933346856432663610228633900249573012461140453731797090635455380194394072810370080118418319133244273915439609977909724102112657813213834760052232349896437108857494678964979435851027652337040016563956385436577590536068689404264138084699827885916415982539529564179882328972479007643100278857494386635431160266037887825730878131569531764906902063470510026910851472629376864607029840148379176885905261185663869682268357075812034979220079895060990968783575296307208349686065637334192293295182050975416202036024417375587817743290317377677607562729450183714222876945860518644861582787540334325985080550488382628061402462452665079219659245879910324023289361203607578304172281261737381731417997744769710140670843139819015926420654550387164967517057691683229217152507593274937659601779043764315422690960824685994384373789772073415090239383296637923873154484344344222425110798565977343423606570725954131935093282696184405191576649285934916744854008636904850541876739386246186646608964636975306969642834428586604444776380495678588336263886769498953889706453293469420330392705867088687613970316520435540225420455906147535392854643319277094089272317009642718690258632732424647680980180464356001251498450041094433412215095932539027612039357899557422184752652878655073821738529732387557996201788731953297420554764778271423510510359264504132366942656098410801380867005527690900018963472230738447696023061252594861577181530520321341384851595429505433759935051437175717982331199873977486657686844865720262761472229945213019269581144752380387009395200955383250860194569711264934413052358973002621450307976607391808513484584544399391902927708457748027089692273714294358319674765002454225298009848981190632322628968728101454479475148802362962888985088848498818352464509358516030426910451764480051695637731156727406185503088103632513173667109503829469933506390621762217667176365574102110224776738126081117956156516714159741892770352609431976493175092850695840483563959895400072933289319520832827384847173745567989132415996472243548806412279779381698999097857266454933126417386976287823292158132354241889307482179578900906897625471950118694513084578342168660940226161335661776657508566597372639537830913745189945475530721870025345659159003136069020820889117849168091437105870786328014722291859763959834863068160245989537110574970330024776087154400446956059827779976159294162796220683996121249037530293259561612711489872192336715482575366107256267989798663123143933804748804742481699371693016830744730366085443841650691729280089229953356719279892693397824564778224904538445766437690952555728686842420655257240220776977619977645028006436273492131953694064854977934178252133510565634388763082823892304822986502038084705064354454429351820459267883778377140596983187171671962482031132887806362933123762362610638538649400950877485644770568584076100101101165810198190045877115231094535204383355361834769088938001961622853472645269849098067904890327648172145767669276303442097906805917678216164525142564801431317625843583192044974391393166957979475515561436968162491910588908389905875178352276989254918121119270006592794169901167020032986366508753936984266436097022580394277344908906729414379530858462320213044238595511694935799298138199386550186689231563471261148147210972936346307544994765707114366423201456784878112127140655323646223261361739371877966151697577529559260655116809191252789030624103758305328931228198719390354620001704045502427963579635363722423595442653553727651553068937650608584968521042595233707495348398638441681917994076937503634795101720064200208698361693716806364368373318312164073269080214097688481811254266397504828462034941818986940507061233251802712358460696664422603649070577773763719524003266193682105750341964468879381392955783503366070151902230991064311283751112466096542128012081600278301967391839933844374967030035158768357393983490583012781296971727909510430211816711071718542945543182631417720531571090772570009912286988568587012400968558930704788550358937047707078442259204655399884064026511562442425500007924496477148419285963197113222222565528804820971582376998453797955690621004766078953449942470656513450870702976392256047339850999600506429963968141969500920177178596751452910323578965936232764012386756811775612241143629137253989464451774955970292349713892709745534716297603704954679522919230618995270504107930999405829071240172340400230708030542026581776226895008979612608350950842239972509772266067097057730156378192686392259164620844943036801885820550463999533524496698097504048425363484130464821268718751499256724489376290034028448930490642902727495271442829770051904973420678893791466225660523484195352167711454263997440940143564153048002450527159162277556897500801415730124730560750353813892340078151243491168802688244987802902614083100399906346943666215237937859862478977942938792711395210459319692856915477090190664156293061189441087189856651539964376916314035232489950320529080198761511136106440731629167798369982812545490084791372106840309465862946937744266205527185799395878380961488026584079880609884117976271755214761260022463806964951438106597448737602686737410966754459148188852115949493737300757534626890343397504120083787642472774699844942635018524306447492403086112076167091421165282289188249971461166930712663534918628529575246343485522366064523952795814541438007814470233824418319710156432841774890735812266691591821815402109882063745776886556995374310335648200556220821037609637926822853394847145282483717857347305844659665952117550132607812061767362862196054857304543162780913187932135201802595418553061227686787647138724709288273346552662890705579990822851284473644209830107995977866266671639738781182608138863475127541747518293067479071411535986241419231340176399530289200705117556260002177992653870871192288754429834929761639756416876561050781310350295918708887158469309190180547103014087295076925314933482363942981988930772182456170776184255619158995234387128268793379820149923609522844613224332029525630170241837398832288751720984456517513092336678284132765894797254962609964587155739518636776037378462640086644531019313871659397960787114562829214217463623217351278413917093709706642424931004382103859435183837526064290045000141783042650931771523915531855351402153855385320729515407959774012359779036443111254913249673621376666594271755143680758035617789354901765190991368594608841989166584587258114501833512810730955224237568743928867535009732359352954594896335084774110839871173494898334389738751781861165208229533854211365100445373577636304819471177893883411267128116831926220018208265022240060738538807877866763375129555809077386399859861116451016288281596485523885158906160337417900491349297671847773487374542053887576891099182740320596195071783568827043468608382312085812365331134229592592424175733692248280284316319083472454438887369477032568142714020550974528608284187003614564862661125532710423699284055808624742725515621988319729474182347897784770910489899110561511063751795978056485388330001364062640324797205509171197248809965542719393017168183198683220469350981641158270332221233919901683202113550130795925749782984230161343918235781095137917675619309030093681033288688412926343345249348905229352807328252682317028125034058452664896861432273750018924271472384312454941034529163448517972816802911606123782840203146322257728659342732004106496317105071542248987601737952900933382428614050041777581318041494708994043269926596005338199340544999235883250643252954492219170393190259185239678694265552214025264183955654153374845918978624266852827551702759595406975746524725968880537208542925789197051110206739306279088497538070226349451004269771638038827175363151568539677076406109199870783799367290320743875926090337905638766691886290496991601233062216966571933033021474591178751524359456658184383712508976061940574277879060478131322629266162372240157367706065236067730884955149848223931062966437325887608452107444176897760853000793279375276308237495781073520360397371844888361688434459184774277265383437722922458772234308226795130858779321139181498946942360315205004985414395979814244921916509752007765765566354747807412708021218592362081670427512061430522543846083689771669623959173274898112358799729046116951167920659636082137886709047773687451892884732596915233535182954605807182145567107484451686132048757686486552589904920015848813024494389233937536423980324820627881531784150496356654128874899175441421394765629787265744600921865028547302683203908926627969667151792476488007940131898238601538262463131017909859951106219148232070308291869664041588785914479765841586004718782675605447398082523265894495924459017828002436120933573438036147996615102582648975973695775000238549555140423058443667127117989294935733693638935453457104487938084797560514377049248870853487781292634067272664870497563542336393149111315671496079510525215980823632209936522682357089704197905920990257406972114218996356842834841733574266493368159607398920971893628879517638594162689204803064222766031655680308883565153066992823144648865293427288742035086464673770062179407167077298151654238808417115247136564227354017743958357621025631926543217022478971982450349793497345535369694081515871929788160906259474387901998163345166974750113153841482227942696307314972432044939502316197168302196485968634948218997270922928660812002878730444362010086530478361512222378171627684656064199001522159264938910040119150645920865566437260241893474670577210301797640978688647323453730207460716415015503694646555454621534981727013225073596800953135678897841973421022802611036323463281519768261977085986782527524611298139595403734158065899955331536870304608201589430437510113287630729432315123173870218481508327521893896037762213879255337745852501147082054652676932658757523267091816960406221557131766394883074504766807034028686282633871036466166645890873054895693645275644752588884794052023108456292245228562339360384477014028978275847853948557852919435392823056201609624344959610793674717224954401075367826890736224338858927227526639740587882943083183680990444985798887429651257553369122610336859713464322732701649260620523029167030012829157369054617211270409208386206215498855674077489937442967224154282838427192497879498189558960628617915880640599761302939725924662044697045059247305956669888594809778489093564366820840151281783113649489145460942000779076049113505621964833253723085540528198466406685242906573750755109213956284054317578342925779104370462041773429772002406534545993282489122276609754595252791478583129637021040220855415135157957942350401460406599129821843720146964629321071185934058026250596594138737014054610651218626090566501572704980688150578990546863759172820058243685727425300670914305781148397651143626551107844507632851454952567471274400497947072404213766623312801159007707258085798558484028197072041001861868592301464604795163035562438032645672936982763281963189392461739795978998984385027893075603104462573137863775279730599443885747480737709308059104147372707022726369834494244757227990209187525141835987526062452599208465952187154705885732508370241601055844894889294153121972120517102953412342535389103671617491823209372701462002749062601000818106585248621760039940822013101349346956238132471419829517997262601204604782573000421690762829911533883687799828605441219246908232009466688246891614991158548266584466554491813800242939738506103473111505546638738405718849344640982181849083802655349264399253624989070575415140753435297842077950372157814829587740432170317814012001924932989602681630012508058765581222097238723400583226197135808041978816620140466655679116910559222735152693109008503066215464390868343478898298963030230363078890817030271208434092584048606656326619644182871077723249688199800766306640150590642166258279077059709567119882381277229239043383975281589755057809952559841071739772959445703566099886353350790550900189069834146022945944442773554918850526546241463270882506633110934520009192887884495022839566703726588861109732306234465013690704123551213964056864895926867032699962394828695856136037580886102125474178257066878676875324232723534288953987150981050596998338902879447866779697260227527873657794893284053916732226418090810891227067630922229732271953811663150622319267923665822623932941802820249211339544192833633202889973713318714996828279329447348156352190848767271558015647142057171471872888380806245633682473219307948073305352688975310536872721945564849552128361922588278809789708780972794091797665001790008520904215010258176102033993777346844131270627641295797876993256691114360280723429101144203846290102295480632740545927335840688131759695986088290203847404582083552836197332853922088504152230507403463606941968906161256673212365222848100533708552196870840616540984451357951409258187631873692078184142225778619128504091674557340015999337091451915180120991082311198565580060698156759658222576396600370812149119329883397470534761977305589424198590859139632031466602105624628529721806209171375335216940162885589432312957240559324336060962105491332434083764103166837113186863866210803594246326291052028241163138945668451889142859900651284643251571874523435598183915390098942563411507637329881902992994509438233472920087750848802109876647018146915613620762270766846518415050077415226765314935841199795903771607587503404486712695102803581473774140375500968176652015025554444283097552652887466595837493228101233002817616373941979837557794923832747719176334816064877683406929268472047176755975090970676445967945794310567611045201073761434652116922931546548250506876353672663990227836636702898201294964830400478352557069712735954969661400901943820229098000149223455268125183185709435923053833580649602778298636159195822514423362702920285453756718680508163730305461914396836945967944833319180576727007884475901961735481599884623000719510293540932712887666947995682944725760819370555454930948131599161813080812247842134975249383420509224756491355756484634139603829013903889904414906101692304553295583817862516923922659249623492395010656368005283426942149679825284467090808687427501946415364546627793086186213059638805527139953909798458129073572698888290819797506052443138431285697742754751107194947736634153651452252363009823809867009025455128778589716284876190928939129565372677752193975630121922788195169398353605307468761485445906670389074288338996873432028136635617997190249722293996617900486250133983661635896542714203891202206553109291390768856680401403406113627061167651336949351374638187081455894245641423086938576420520477143543962314188982974404082784089778452153736180139875311597404165162793307141351946357297928022127971424721830633489210561420799588238158985814426738665158873763173581919433099349831600943922783765770026603310557971630824431986401125258378523290603807061509977838128002793784460809676447691463011545584210403016960579840404378230790215578591544439233700273392648401395403547224922951931650997441187785336429492072568704276560674246690757940485828363607194785883047479060470902203308209665207868893905316172648747313199904169330645454439341750448528647925026768338018181730534743208937004228564022117384972643487946075325106930585098897066162278706837733426957037876377757938629753960269330123803789866652463935033054472371012904862467237284451225229598467550600936161679625855302746451771897708836393862104235591515040706695757836209108517065904820079443818170380583746413399983434419708352579936800467538061125265815238089841529946388577596002268546166600048900425132142959849174296212240006100519320864897313287146200866513600853958234806447076727575239307454507499452168054872765490173098260944750303671358616938707110144454340303654873314364405803668635510887583144819639464228605298450042071825768927709373119029555176599794783825559031687773323853386356892926305921039989563407529655464914762196193221891860721477131388650909772692466939558389841164926584570197306546487502324577782055947348254116356070414594760377506278233990266868489291173343813081245769764605474080730863581717090402801664562296913747677048973438404584359871654420757369053107317338654096590394057852492131164889364806053553337591333789048488772434174605284685894310610305191577116410400479757792167277369407570922717159074349635802634121257755969968626891668706709334059956920184688012676878532770623832497837289518410772292897849088559677658415347478597121996651348836790442729265493592454163919779114491068215549554217596473779807188544149005905667211903885058740532169288653739883083480640178306222662229462682813667441967859733552029548008945885556292003433672218745468156750265071376111209468351580977536417882915752792123646023727084778497760650311685033356445668275193225709749829081663552406264712519356234612746289338593256285251386802423765843100738537757746902377227615141104070948854123330081815186573706793399174154029853915385937486507604595976543112118062612751350040833345030132282896379590717152450674742459148429141808665383270497672374426077436396457175640574093941026025080904336053748982294417172814019463354996935705576710165676643412378993484088473562709263054957814106038282618089637270113768974508434666941387089172865729130936365636214452102274175298697041800843762200597762179666582737049476579149383072014480515670614034082099947605540505072309127025080709579165804638126052398348906190839137317775743035748978016792815809902497008475042109507617566737424094208751938836271569687259139809334342658042830323978745715047329074894948998608373202954756706800223749610991814963647242135163817909863265809027829574586074269807053281380048206175206704109394918793095713986218780489733813909720373853286633211878340395273989428267060150873986947539727934399310365438132257413764173158112052373721732565824963166963401154393004930496513762178208670819057977653207523241429786051627809895719101057155072844893462670766824461354419353767962763548152446179121838840916818209312762626569953921087602523860068547607975073276333117804706832170437308269314676755160806847017160566105275944774501652831616424766031996538132350355649500582327721740905358209536234313320506868198887912607603785828273591683667712138476704936824622355167352078131123303995676794021867746017339340497031656226991466511517688089610166950773753621524445879338219581925391608709596402407327415509753328790284208713297833747428835563304602510088377502903358571296724424744839032181384846414014013203105600586012530826062877002333222383702425853818687309254896732218863254584555908461865490976179593844497577867491628768289271803038207714346036797233317999709098366305839222632767977535667040404337425946755259341163118275840100716586900317348884799198172479077225412721091764289623501896212179776607480066251478888036444320933387753476910379049290582289877610315564906211468724890356873318431422351164700688407132634926804815405930376796123679599808019638871937132532370049602840243396587272554706393341456790042705284365380827844257050881700635675522563205253750715958604464303014514795365948448254632861109584443965420263603492135311001463572096559036269705241343570359082812119975573444876243685708033810661245355507934705277681573531932685292381094395751153008938128317456024317613702568493501842204896644282723918157675870745933237355208611224983742312657861709501765339113379710850797432219719901619799145999710689600751002868485135968943547329880088966567542739463433258586833223125098975945095542290438898631535797594520629291789813162467495974261640686462794147433166303195239039013846865530086446603120882160734757771041692441854090596671281004383642218179940816648424866470067041507399660300927511644251669410725997988673153278783810269590004288675463588759204713377803711927016023706819646290324910275017567844652965187993892170402813112311991183095023622260818858691701678862294260271586286625773817025903426494340655285135142327344145124122594993563538389050885406788249355766154559921737135609499362851350810697081532226762448322554686803312759880826248487329826570206748440603401334186616600786475105175766158280854158056819361110266816036319312751054441646576192009876358063999102245689872342059101096149846917092478283466188947353293694306722411578818421583389816586346851400144564360981437029589166781936173097703460060584711406721620005359727999210413955044082779446069064335402597547846079604186253048317078803281597202705142087701250106333788335530506500200638612789860439001556973228041010003446214578938320841857144397819593173692650385713618166840075067675416181103047699938497373056681113130177062654415547514814699685927523366321975243845970264361501194370529433275463648086936882269154738206232147001350615491641108616800830565165018427747077535917100717944537886777752942771411055596277710152569352152032035591912193836899092902354022701972433597987203642112187824216673586999497378535103249725528953284785415102689520703235653340589736831642247783825509786908930080608834258143360916832391342770583535773450090975097569957966830051148978037733708712547827441956660924814498526671972604089942207509594011761337245156480151303932610803350418492581541910889112166746323404638945989164168343688404103447123639811996829738547029080017080976578903064173138394743763133105458604750482761747610331329927221215884864507132384643824309427051971407170877293069565103645207564783837325216971545873911230924762752355005150150053011005131563495747656951621133002166500067651243446832147421264990744519083500856802489816230010650713332430596603782480551782122340165164166325972359267297431565733520607924774120267247919198902228428269865270084876363627353070467151341844167490296576557840077361904491170089852295619686459430385543165435946252651779876928860057594525886750171496536515107689458798705855010729751484916806473132549292890878843077485280785114910365310260917905198617738801691342304331410393045476125777133549272491991528200381187332091941055905915141743624886459301261856675840988492789484533368260258628857890437377988693447713839974721939933775354378453326389627724252044128726556948015691588084798984977316964284871284320381628485795209428115267606303299118695265576233750732112208167808767165904563305815898098958329494975147477699863063544076682605025396726905252190078903892413135623262089533828538241879479892259351626174162603039612779627471820567376856916122992786954486028199812118232252263173903663628580739323341359468950033173643313776705149835442046777896790428372249070922240160027276516711370836659697755729468202639087269600797148916463934040643418683800938051571532455286174788727340542385814023640002675599913587399829611442042844971456282364816155901496334326804764586343447954250022175435046331008169472398278357432091946786361432900930671683176693500443387158056952729554075837806309302352526684285980464456862192909481133199538670453497790190058883345423467556467689166616194185118638709320172892734634737563111713230204117732443518750552825920117016658689173603284844947077662628269647437682608594940178750205269903916321394599285289015225149015017939712663274672805799250340203259163443679197692175982378871086157078838621484577904331847457744784339889338384811642560756247986095929940976283837909961200904234351566367824094006517351968862772062795510532900965335408109139889669987573398622710798988045801859683887597046557438971003382602948222855909955327412702037511197809865678575917886130057373832499009930105532494091492065324407505580438578953858102238382875704399737328005058734072821067559641461986930051939431328356777286544839920177213701832742846851846598589515246753716666426047663774866723352080964877116315704294398459090690041119939777890406408572372919327555296174958703317595800805348142902461435330660008634895311023311554966941893961869841736690369072091935224892837293573044847068940113992269688719598022707403601798340029085409675630782363714979947110102288201449833303863646390594204149726034551103984427853408648245948372403022327227566265253285488182774660943778344603133844310492124312736797002222010129455341897108413633038481596391463070461343589153061306035396905709416510186093865418374555545198091118965900621964202432658166890195823276814499620595643604162873301810280943309437504665607485070708392622697888379606548484761960059686639237587074420336010313556920189379300621450038868903518299777200711313057876706411608533906223746044007618666223104388521468162873409454545650078505585333172289974338029786615788229621670666862327741456284730744684914898722180191102528801925841259674232951958030757393181071482019935024910910251511083930257090436919507144422592329795246490232945368746223090035429354560018333422056456870997977008895841666835323239938677325203981944205133891886269530143894270071636546886708472091822516161557578704521890695330516839130429059428827007708996381831731490553766205437567743455588016851067637281634307406390043341525544896195958362735125490076091405116605217220999649256899874470823035671007887511340825708972268232696875224895195301703342635083436672388515573346649427323189562375477902117118830086426561188075758539517445533995594568857412058103634835038824371687187110096770125928577996605727971380647819870712855081296720243268643284386364561634893859263709104712084685794338053943675962442019410806249993077872029299829530456710989905300092976814397557424605300374447834134680203680467040510257611376560567309914160565523774423269400328046761716319086031289579297165128871339652335596811675670543154798717989724893090943013837425473574310082859168093323196998676575796483723370630938118575599978349778773259861475328486449298291355842302668516106250593048241222718373664979616015176777889758608993477043164937610121428702242222890162223509363980421673735879818997229231105740614969469180304109086560690200518711426882077918708828361575442459786819827631008999203118010136127223685565504355939634253644566487715086082243347954141628548945151857466465122470547660400736635073982227985293095950275248124774657001071603815451455867387632756801872001448498459055411625738127544491328860379955577807338822571711018343884083919558480319321752718511366656933267933525296450745807451253002095125179446628889570273830532918407733991204281357734202906942203397316231787853638879391119174927215290945202795975965402177932104473701090490850856712354970205277619335744961801978564458234485147885249102085619208376367406716183901108922255956367076121425347781548907012776349748930607433929170540826863078105191729664442644025577783744912960547871376989435942158372951004668597425544677575856661756604529583183684336001150926512254462860126414442550332223494832731799661080786265307514136130230390518272970114446493454566505098771568169427477131552094398067488354518863714770729695172813490569668290827703332516174195449636206160705647168238822714813600716808716524563981260832621033049455521814236246588974017348129488351225172363709892734971139241941835542042063425284446889662988003342230690832715999097507511087719463291977862176318368608500939856656553140951986501467195016420187311773616971700749558727769128495103473413379258077862430066641791204657683585218322208063308045087578914662792688301998158813136038195485520617435157261742810655147703735077475053122486215018801643204808556760031570083951174424113589251520553344683182312248001789933805090586796928544630189075147561545421876614409226352913874291650565981614901632127372196059162153728118390520711044648364187192390699515805399527079561233170535817335547881226604391449620876035703507675447971085924865812014959521891715549554118955112563170654922138305697879867862309551180127320095082122871334078591857809051318659955289013257256086916042510730198438383745820830433418458849370320127443889325771941820380550889422378114340869717052933291392730739370164373253587488623313531332965512699952862044170396083245279426696931751844920376551177225354297275257177433615522084821162752386182999508282304849694954764000487074906611781609448625749213463408285916781632692985004173691249366262469370202793992844834480842602083678286787499799518193526773685702189623125133570721045212358327422763542444126433638750133141624046390268265017670559272004076250506657029851927271606171999741933802813855025682372550606192020771497643906394740544457378343924983068456299758606201173224565283483678442252183099318261383417484870880962588602470760799549366432000489502042550839315032792042937708119627262035833632763300740525532826006520725692810369758974193324024128126994028381696338898650082670451549963966974199033773155977235684361961079420414063837275770750003480097381502278182688723376693678765446753465185737833957634056425197520880442573859130044831208350424628050359932589372654944928858183244464900074178099295852760288507885981718808965217880632505702986446107959247416369000565631707013893981471252583831295214234526496154364163709060967027738506499262963709371831119500058357352392641659170550947247948486591419764359643710501880040845760328484880762894958531556559377138501908182019388257966564304519488800623424708275725301838097010909322591464004335041789677843779217464127304004410162343700142652929978497405763124285310783813678374613671955246267975302166281032596234129489690531529168747413416247148491118126728821918507309644531999326199669520660342862593574997911195001598791545679020508529671058764641756774791963658971207078989792137187060102757493534195376408793076552377749395805374937540873895359591184917083289397619378619803943656878709892476301043209281847544288079429937823617956280872252072315782570275812595147197557505831058708399745239579517366945023612184484758559669755922552169743237948025949401888050294123866326028783456370911679433548928416764523552318385690697199485487061021687931064149533741942228530255949703043538841431789055896636869098536356055770497914316691995840852279155829386995446202347145378141616294888162520514398842492171701693999724219437902487166536164608221235399153923262356768742158065372167815920044457072298508463492729458450516522964574563211046801780458756388651168008986078863292515854616765050659838964015355682458097029220539590518219802884268306317169363525874552190663346764465608456998246991584197134279247337154350956270251429739588362019294844637959505022044181321334245742168813387216185123483046558304772081678310095554208705092993710106634170247539815783427775562521570443272546492676304377001310612063097183190851365885780139017055742190006308457636322322162300988447550854491362242056422692038645157861487663326780352120913363196866706812926098965214371562766126664221091374581878194361978342808817322219741013048232725113114517700219273535555330204221972346391384276901751055314156789915538127838924170121236437345830231437127134967172177910775633490390106457938053295752577487727521304265616917378215233544899715522606912774792183437399881017822942493493703027869851557745048216833925360896845345841769255670460947493293308472992020360653074033892532482789407523191672528753861449644906182422178751491468169939117057191288625617399704658286482005413987744255509926437586268277534703650191513398473278226782514753601962988043147906344409471537606405844522785098937588947133063939621597770851883494583476934802906661164210161982323976918266585586524147963848746713680424264747291967962463523564429521924047909263020117168646213112364916536457035631624834394271097577847515474449921874844653714127630567635956721818076176726052008415990934456584264385303128939130037913371275070921222267639617749742637330746173428423164338783261162849471090090174536190527343489499598150642310536498934975850762711761534024200406748580905503112304866298404324577211190008167838649481666721094030738169531045851981993986386473167413307158282217246465094571325498697414897919118678228473214645484968762524228438548048203376467513617614866920947486113043235955690085612018905171048223081658919165957499899650232163920751850275307549018195985066228391924664387475737034130321979192730894834765533526773174319337679251982043969329833773822690088643212697839309125612386034868374946425763685655387347387883140546758447125113195114019760423819284639638152426240339993417833930531831817899788137760250315973424982916394629307846803635211742828897510654106310610122486297323101121756320927297609308303883301506822983965483814219884423727052284271874622732749318627380719410581939591876232109491320194132768796535955424952829708467158565268074136124036428478743202595553137275315475129326813159742484808803415858232632573421400368671001319474671851403950507488431272819945677539893303490035379825108892966805406332675305679424252056073570948254178410285002128412496423946684193128231358128118252792073399110834758045842091988099861726195130932335326896707220725667147659882754926285409914457510528278757085813519802483089868776580145694097684225554675154145269695573125308414733487257955434045261633534633079351457087785771342099686013607126791357045272912078367743524897255457806756801871556480385625639290556923975551243128409934175243605618992416057779532354586398504656129515074940647226654877058930732270298591846240583803457080975526727007332970640013746657364333043647500609774898700409648583895821156033666879942123435254510433178941451462963724406584422502944524689752734289225618719296348489444899281843393252096507528497641770837421817957839696267381247687383892346241324100755923767389531597145328463227909494485210290241464938559475216635079655040012820026182272316231304696615314700023938386533496631907501682010664809767377265521323484133519838489627939658831681162228254394627916958957776854297866850409690562011485651492691762031077529073769564806779727478812336815541354676388476609400336525526821780392385106447714511657490628698979441443153316216564383600626807050534775560707490877964296056478982396321103354646295250173993681940789073894831594895497846769953777083645495886437568025111375562418135117808448138164661079245484100990484567779732812612846600333969761482085915895066410389108592115015949364876696517155880235634871468842764949790653969546203091457202858855741848597596329019150502684058384787245250028262682159850000597233427414793635032393775834119805967869974548655267789473109676022758437076153192721738547370070388324916169506830527083646736771650011622331224079280924176875941429495543790679326527826122649457139650668010735786279856869866689463659375389562995815927272423318310752248973864706925693145532698431318786781461959921323601099619972832348129469436503097566277930050607050879223177837140976379931780990125528119310838431312207558046320157849806091243042407616198727694371854624044733823848837484753678125752039887799628901506786799704765472357357887355149870661033569500164590152842569167031823741765770388253554347872276095113042968600738685674883756354511881233350351903343025207092377188791851634290630017404229892215296604483982197006040032430287887842555651545199941697917230790582053006446268319973761844554479977907016069090492002116772793880267529036677799631089737154010325861898884072267761313270909525737048214880402421813789117821394277237407211951959204167892603478847555743254770289545800608540194599217229021394568333149567676184338618252004109198015961239172385344058594174292383176634694564448113767487159988793348848545334177593830875096991415018401678943602380379054243009756782273878755095934606807736173322322435981867621850546406254718384583482870715612238946588203124155213611443977024483691274832874076856262549769862064088219997380092134259959241419043714198455851279897581275551899647085587665753628257855574309754438964028457495764821993815879506161555215403483385461957044577061518203079396521168210705030254464320205682701630464940569647845433368225632677136230851632419978698582135548238410950921660295212294489776829501021519194399708565835999692776779669088514670811539479732449688222188605569585319409699343805526613159984596511218371875320655777390039766057913340750417521367793790045081484954681592231928679603221653996576511597825005176094432814797086852813790794753912684536483178530441450317694263638670743534911276732879802720506970606105100924793549740781819139156771402511614941434494921791243268948833420651880515324615130522256727960738114568841845744353953804122532945250121978245314360339555588152701114035784506066297978001892325929141121591816641413956380747873415168083754713500231061081717616061210156962789853396333648356748161647851064407105967041195150876021150742785155860974124626586107170771782174229334621743260592780365051793269863194183103274748448005275682198554057956263174237408756786161420809911530499127084919424603648148825370743782020590655680396834941354811736277439514518091849875543780337890716312999231848784525172511757195826396489838736272970445253638202296065479131447644919245212737056437275923094554333875078282890214336148230805259937172088861861724229449651812850528267301112975541670332488779971643603627098368045744784491125959675774107106395166763154714881467522463852919201025599732692727548241801307152701177951789687117427262297351749451140710025170220667912690007796133451033236255966993057073869941427603423209238770912171610259546327619187326357804256372638764931926083948058741534944058330401300654896439746652891262130410847050928586244537340916418974024363602945826122753620315784695320039500562507422922511991879457813120451214577838954239224641805092481518337634781833330280609145093505942213284725524964638761825593345537235290530339961815096353094991742395523329717062691304420425359704901733904599191625929416255088752543316907285999723074193188636380244746380492800655869134553200973810962720867967296039929179748652857223387922928633034806343834756710641443410056701700190317810292581195596351091830113433619681557960615452219770869612961434151687972058062356314999913495711651579581573233563319447023966756185543264650499025618794027480420043576851145399976179543628456821250414305902747016061941488724185956268023284467038227926466327409656225889894808458525923894344480528077217669727416499602523704193281120066237078978227882258473202414500397490267771084225576745088439981080719281030485091886149907667719646929884766422199811067630819600190431460020589446317254441985157216247555525489778112053144484751534146978492019810775267441535455713399573595618166874065213277956021280465028326968152964847364594118828321203351771790021231599091115563780320998421056819510401459703458733267670628961132002285652418481668013286468757117538892937667529979645346220323692114877684685336842839493927812521992174968979983006409263889717741994213809138767922782243484990218341866039002635732630845124065963855123219692723811078855308687630060699226064092083706622408118034832747186228012746687481541930989136076372997895863274107419391567375455633070400804111795846380853257514219723405007752503613402660065599654323430291990552291289691907475503800190572823473023640201632615306260908132286897350298854981085604716143024760088059749267296401466241390443166588027275206615295210216453638141998733308572214463372700763696803876611795341572716329426524855614877346906150826822620308569269291006995851464971367760555990776397166635206834288367572460926030095239699276238063627285386973302436436728451335780188676172364123314090192509717408464200622087534869156938803454635028487943471208330285452699087606465186414224193101365103473205085867481050783356318828112584678386413825363854699569226021645992015007786578581570158477175597288013246416904973165537220531301595022968362509654563499656651491306289618417939560891551845554172388237780589277192611234419932333043219948043645103407505270400860901656269518964035479099725588511345668200406293344997909116034867750548619426513578671723932160739329786441980930028383573370979588084190428426797026966720006778195160910250076319897367221407963482906177788272039841143686972378047992716188371025776990155217073472606968721336678715159563703692174921502544579945077340494798303734981099172120762703385453466493019746557770485702611960360688100708333849654882356842054630127704885870220787814225075667410025107855209109453790046097374469218537808307713193615451045190776333954889315845957728550684595376772370013090907013285269191907377588285279591742530318022367592655539418148636414101721410689134900937377498331681285159226075817789243075909066198176221957559110485334150101252375858795330432874252754142774184702454831764191074004729332605972143853440583308277781280373222811001237703653769941080776044855595535580560786266940262903691043647159589601317672923070177477297885081230955354647050005734419546027859730422357197523763320142085539466481539169804846935420154717802483138724009016791545554568877045931077185536922876119299266669210487895221417642688978794222652943604633000247035968977771362696920305121717181144076088760366641918547024962848843675071924440171895370035686443894304606931521616342532810334466388853223032364089589435694588872203809445422701535352938568141257715765413690501856052204442588190454385497715337239001282793016375126168216709914155746991491543640874355724794342357320834856524473034335478758083831623288025104168927443850172981896594666609048021987737679496262599858312410362593987248744479937797811542569633968305410117870570254153568080732957881126270570485966699397586657026834384237123282374131994771401508159305457407458417056031360928803249046942799167933598397256874140045544537325837993987156167814789770528312259329198397703620410300343046143460633030877668195557702478187176039541068187719055114792050877614895732406494634195275492187791865196306039239495969653176731341618449507588541185001534715389042182712053690276153007812853625811161479560814129576307465804286754210539850163701358665565936149273992093357674392286002534430695983027311142829160369878503956580680938153312299094757831371455137081734695277993370981109647143342437407205947912677049265437786537560741889045760505375520670870794016452582999121382299605971282075850794128148990499720523406830246832071994609341841367644483239295906102509205537173010320405084471083763241821353069409113357881768046148638061698936040933169599621740591899097438572937006185374423009893028384563505570280307004134113681238427519145286537343690407167663540105598536098930683179826346867007065753596156070606008410948295613756775524672224762013970014763405280702896192497242991163951447910898324953778489907735851524030546851407023962151584051576503919513914638339410071312674460304259815390598397079486302505999430535186907016730381778612252617213176969059999277765810454772731891456644876155217099768281294254705844144584767508140484210317454070716710083800617256174653197730201408911576137223391942781470657134257022883438835980314953699278092962999186761881351657782397039351081164507438475546614259419851364443439897311637026885543035296553093041660330230032432734582306693167782752563419999366323831798062339818092776472385533034279433095426781652450397136907724461525605722997017446952782534479351151387481160130902452925652776905588966274785023335177489288831730899914978624887064440394310474731943896609527462899752431781092819791846933980041271150486926971563409981877566177356575905060527404249498559236018000681486999405285637018606780544424988891356082126832756936032343986312376103386860049456254778620422102463908253258456112270395135311665432173597007434440341416321291876990330085152739196298648954888508209134631432800231267530759935440362861791408743044009851858492208724797135953190138394570407733690136997281173920246925571374419998028549635397246913796714459074219657467754625124601769488780746670456628046353043782993330062367017045060661152173335953386723740787868560295333151916601262181755455678477270700570069506624308039457430318893318012390335088423533675040452382548325191066577887320137569809078474457390359141302847522550769309482155013248659261017260161671596839649189860709476943322791815630640892276012533239151765858927548862819377126540534388380698503499697985805633339577194585231956065956192211326040408183966570006887930502364092119997269690840200731188722663788078485422317299122277543449032172337363759445765095460377727560968269983329862026473706888419262346475009976330024421638140353988683353493409106382421173593461273989906245856915298680717983837917561915270359742279001807968940700836884267844389265390155155522460424344309710546210260513980908779221059040866035847894166345891225180135344776025734225919521559204446050232067222908642529273218754289757406513068041531881320741556227713707693488932488138425759862328937221165805510674182330173500373153021994265135321588691633192070215959044160380712558309839177062145945331540394329583082629922991213348590247334226570284407652933185264595419320473068973988918779950665376604100396493656622290178190231434187063598468108187003905227266913781269094174166023988498622105576225474643542952475829629679949301053364467322223070332186293536930561031219181980725668947837285042731056240855412149873658126669517094933465156169113087862138839896690033499257129614212700727364412097366615237000399383399849105651735351179609071133893505401979911967583880459156761559840947694404913904128210560367106304265533196600841675075490798257413831027256743800464861801488260438103185034902242071363122454707482002506693750917643920716069985804703783449846493710081840425856596888177440501139601758320995034889086813507487143269798137831561084968833506583557557368234608980389007374925436330612221483978208235557901396786490192427469740282411240657800448193568732642894692647480192926756152812064078271046750736304663313675832163460948896635313932134029323803211511566329600456039487456329446768760164321317654396951829194351088192007473616486246747463944848145398234391559936665310592378993181100375085354610958322771751190613802049072821316331875681047409548902007879710141667623080626882711942967466362309823516521206084592185985306129008600997386698870377773539241897911870301429775289546179056617503954461068068620762674095492812311418496260669835178147151236356654118589783812776842229074600479634855285675414829493964305204747281914045724221031262452131956532473742898062532303386992640124198448601120573746886469237841006372127498366306217691986633288808273339161253301815036521369710248449589753530299938226881045903677699965156957598704010490917837491814781487987203993173902419423956426154158530071310583912199635074835881917616692913614383669437499475697970383164515337836651285280796472211634434369491874925348924011236360221518106047924774350181252885767967944988318568450321216856654654565619875024430874696728788630660196702658253630383348256367386078978258841961214480304456582088434330999965013204597478766605737137816457847609169259547404769721668420099542185682135647476623815930951722633545692519129187312601544386907006643570502169942647336327351748981291101511168149287877212528236935788984886422380961753656264206051665981357504697094852892996699203926678343206740052196850005822588931493889272322959746148686784572869698762949996780723981217355896528533671828248720778321785722945878542025791358820107590460246135552195752356291417706620353714390354307773734234621688532278134873458708065658982239359598242523231232340034255459866851263275946924960689029110429459267724735357724200475199436777263267694471792313811071444845873936469624639765456851835756314183767803147749224365909110566658192840313113190028639270512499300492718537266913751512333750377154713780579937914048636332529266161436300214708525033614595158888704988843928307644280203835571300818004112288911114880630068487187930371977595236284504118891593040249194812350945544377034617469196917925839393058485714194828570226861738499540959132048108885108484479258184767450480190813923191696913041640140969834304138293298481605445803743840889782950375568868255501312778065730934691731502854726588419748947869325277184720693535435111830933758937990207431768638928133835211456387805072500210454324265851010668257550783816586443047439648423619145059797663768356249947402678235992241576516912589099375813349369762693957620735064253104446981603789717751612225666340001738382128356160166500979420406719791046749904277143243310932198838424196840879714366682514313481608231191373393945880733212356268772155424434771214025137293371254860551828827405400469500752069998487897014951381995844953598452975666554042062085414706901538742655795273200668491815975351428780995912173373632034005052732453816920138615895500687731677985029799606448281949226129721237780025235016240780711469848842074436524294368193577317264992151942574045103930807317591799838385813560925792907775086731793247783792803849824415561809916722652248706085018644018540409282730608871475925970445989776330855620501404691592097740280128151909320469473921293721137319046068209383349589261247475745349972148558462120413190473338881148198887481388199275445548563158078948677848693228100817387407498596222018905639472870680439406488311638992948822365126796872948672620285130581939656432987889728591492235312574034119536837385829975150830748864433430584678031170635925740683402783464126594773974781801289478427294626227916041934596780047244761059450231113727224405497126516076605430116616102178496616540959812712398375212543898222609179835758998746939756598939917940244741827667585349849775435304309112206239438297155451005904965313003301748196931805660073676023848077798692119577421263616443356062052373196159866401200782530883360745375208467135900991931411022095689256006634524063360460756171947897830440343966864256945504166159934931978350157767731138003366585088937231622521849717435614584386847593291732089495564192289589224451053103006930046261456272609632799717418160009847334508127191852146000145802467965600062148433574467491034201207655153938908868597573465774047609666724750859466595788297552972244032938029285094618585669543865635947384356600326370939568636912539795491521738775283168904500253688248401993776155443301461303800543224277727316117966331642615365179926440765673250267476988217496189044041303703917358978175632587876572543556814961022861729902924903686068134896159002431766207619315991114324120165850566764611981458779307795067033780154859598485138123558063168104210567568411631666229007686329528148783033592919098747166362239418310397567344283728299063734523017708869374476740484028826802905500914123946967723479783063736536100504456817090573369164810787080752208793491025704474913853040610828886325788988406857853390012088488679836778037728714111674617833539790804613609595494003005839475211645776214225680161021598809762109301736294080187858382337844672123539739425476110232203004333797738585728511261754805452682189862127985903217371576174150155147221832638968905128458195751682650744076732970426776479030769527800647287235065395741581113841981282411601099289676068783129059134928224624087621052851732628191225978672364917113215491266132595078246741036740842229659545365666294059725761014068915758363388149103876550474025744805830287519789700996224861550887582366251594144150278518942588024207414394178586908333693834460620534966232740088022631991850315950732803140979664111646464088376556717792409785907353110257926051309829079458741076737107711660710594504218582350762132309895842709725314170432337887124310650290335413149762106866112515110580948045139273076429893517623188998101680697450780746587598868279247029862690554960109427263315546605072310535745141268865207632741252241529571343192808559277810489661556571490061443285980378165607346337991079524351377800214710380539801801374271710657170527635323280930006367631090422762261158122673511851893914868504534043761771914221092872774036297694696303045000757244762344474824179774653496651437353122286496841656335235063164399353847035897238112296376341596103675276187041939485363526214170500114756724748084760316353147107476574321784571657782929459023233224530980741396714022371628561310067093632966924686478972564159611410917309948026023301842317383244198951930388028919219281826948512163168015637245172730627288464443187057991024758476639925742438464508961816308942779872725338402285741302168141819690126441688617468108786062351884320491161222859991532410584514721822030643616668123787888305706114731021931630366579147598560394700812954483316915749496786409196780482904221643667136601261123954517278386147784221301411697352453291809008882657881135704726273547024062763004153207358066681249074869577192031469928587451484574037863474993302206079479613760995533075905370830393822091054032979279466023267734294521928342373320958638931736003701907811993982300199182535044043167753310751273439701082893042739748196022076814164926849516290348375481338550595058539470798238342304438673005776504595222283249125304491033979097143298213037039889449723018324821594917648101666468117683696842626149332181989406815894518389501848109624538603905047894847015345158743406859551516054886706911740842285828896935321617559908811330532539004379681004087423840458479210514210072922044139901299390155037738005269105756364052183467798915920702713612238114951863905517619680172216021071961944809027635091239964695369158127900350101553820389795729290668654374916279713844444490352669449863810761432190662636126201141323491382493857327380370490535973436306337567511799339225679735135375834627684713372848472771752984018551960186955362609651550465793764545306206058638137255425644104524486954627359602153175358499122692860395103166568357431478020090218889518150835399703928444509192625339615601797678185913681661951446615839080797012100506975496277609865659267824319615902087465610249449987535343604902160633210729029299992092751370749572214425503693076648596845491840752479855729125570518619097299216224711498554467805336287981920437685460897045687125310111664858637511521405840236817625133289551176670871740512514325296882415905537514984660151422160804322694656521016179861978491964910591621142083285311603593525338830455618464852665241700018475677998959564486137089830535354287386543860376807212746826710866074604784521859246949995217969350581439152574011291880955780679215977183910747159354185750081641510825912608222171647181233465613387228141200466070741643498559484705926456282173638343229292194343752518698484823121845529200685733258035153860302699589547944817658610155785255533272052824996667192088249689306391486928810229559461620638630994551347735838612840151814117601746094621594629156464506862465059300689641213596240567211810671872550317592768709288856929100123498862715177152614872656091850898759735282020412409447432485722194271238215103859839665459010748495638272612087723266208593329623098213231002259755550311814541126814459110607668815967738681969088879708836133414846051923497914937036724871958231020830721589671739670261630756815467026306626301094025158930831051111550343712217513437662391122092097848970285844898998040224413406595126019459533469120543603670839987763533507109160706633513535007477464760830824311028202721048195593103804469977323988258447413830667039278442117699278058794204093694541306789127750135832493672979172708548641550751422257306883904756494542991780404370220847135044338765038127679713791414069072386582015769775263258223787911321158068490087648306561610094788944554714027844399708018777022060849245800120601754234389236208325562386357440399638504312609640278690242276605515895810830413080683456656169143181883140728166317468228243028207026387533591200973083228721016404520801974075061739957222440453827296183095813203231644670089334280692026839240410491552131781605863144153791096776724116663992411409046026337221323840964078482718885890897707159016606430123991182432457812960339756324068524201522851319245197087878538146338182791104556333337180649385439766621360678605161137783710497117027461955156687888303607470377131857150873910307052762767637036624734121864845250544800020721149600329162330677826701614450366741506807517783556253924314794687205860404164469650007307377052067093535287681063606171142652489309670232382670326847219839423177857712348220821703602732818302958411804172744336702024077295446461446820598344221729568098595906871232585902098290397607429483813859331792976058777686731746055007777015004600256270074242699196394774608213273141977860019955735418526399936534629922913605823237673536453861127933058942329260251955777363330798042932408267138368231053724535173310754961563452587124116670853203324011303697611117446880082088233578750572312805149881778421806769644648692759424923238689164502678853430020913293168554754186630738610317946730723156222771142681426791936221594408501561495632645588087137662346215665766610506196848764704429809803806742604592671564223666045677080044510097385063027470641956823104539940368625343259991834710484753885070520409299104533052197799497049312736898446454303522010137707732827486720032944631547619047496968127153781832159002722705280414809642299541266696322240858299254744898489283916135704187217669381679016402436929709245846547797341156708068572704972150064687197231011536607282849414177684363802096044488076038335189504756068539603161422504384882817876837059893468064370530273196250921657333752329993250134013127390933530199817535080359355344877050503860967348896226984957534433970386745669037066111593750305320685945441453950639000085757101327571164359549141631520661512723456534729660428798644848700907786210533747715183701976012984242946545931833680768415560476478624386130139414899750358839533500412043703994194755313324302919725892803738232110979847537239192532611544848334393660558895459898397793965491881784745000537378845192237841608030002343338658570597987066288743635619158120641470670231121967043898542309292855080506991724715378105231186470706490043139030526723847159935926680711828216360541443172231086331234928045783726819918266449911554553292585784451928815141516076794603237540681809654909543334947575633030521873583762523849512573968040774555906150962313134894874466079906550248486730282598655261836435094606146509938429000442002543418500250514198839988390916939505230789446765043475411921779249962934431791713178236958431517631434619240985336891668666705473039545712611137157510635511539086143682410337392614536693244291356801444033577514636831284507586106715749993148246834542788890019709211400687921988103731322952872716779518027910099602283008609556881024551480983135864951969366300915742798738690385397972616886583877081064454513080694731163811900662024936395114688785283620644567361959247901204698418723340445730435191745441800422479757770019445785919969064440925472937143011705720802261349344902146816064188216049658343624550636625732660139243415223277537200730583242436257902941670345290102434118090534793902703738164818739016549010690783430350320382627432999549584459785565684005509844967797015936945418488072631537029459693964806658392147421940013306345767903768646753469054804151553286676929913941535973037508201477208801722649938715123424176093685821531707746868903661153199868318724484202246977578002443337439678276529661590079198976125266609677395688069817001265477818166139301107645658120064791011488068351528032424460797500411572305365764951788981707474811386251113552504491540528632940080483679576069015678387908718590513467622748630051814806303941258215031118936804434521985266415665577313362859635846302401473605593284498456282452305614764740036300342095716946382510800262833540245866270498455221812331584371531645198591524717222940594390038246813478610573091569760194450355912434895273730427538201434770953475565958258470834010709988241948789731507484697970806669922881335218472133178229082299278260839021846286222790174405717718904753660681359079810531822757389452897253707699322700037505264185890575007174878769526010864879488027400148461222291601388093489044545982458909736502408104845839967947500170636076020972889223498527235543540755399832612894383360732531271455803353809999141068538207154607683813324443175351435460712759593274952988995865612440899023783373731685008335309342457354953229163891652712691823004859492172239494653596741719710003019865752451519871652562473338514550324164523758260068182418713694812336069763776089809732638102431376308670521575147216202146736929432014028594624389835030999279353771029573173829265993575655564375715306404742422592406017214554619047010552969466304939870088215503256449415240666970869496062573805319904320343642785544129396782358425449653929539857745225185462773470792731309140773508226041720235675230056417366519774434965113012377286299163391372614292462600607234480594926911047008252360522252782742111453314345268546951502008209830121257749509447000051816875630570973097189252342140984282999043571307496991831736618187836139394206649557171978221739541079487111440758106683316256660378321804409502369843969607357211852063958837567675637325919771207301671981381734915117940254690773328293815873697866774930784379790751818944394867916404186211206860188511317603127920141272125002722558712112936094424196942024661480612209255919753193765522607012544396365924747712006233202521194767320119642979243970354465588688045954357177325676328673708988388024134636520262641401514317789446665775025343702895932598628322827419925475712970151229560147835785833775060683519967602240329089099507965474268946902169855776653735616980723443129854969663811657936030076321110308426905495552505087914619536764803860002557013033915349607900266875848182758238197150873801142069746846523343341729789015760101125070307223822657503053043833828905650790325034756909187943340499123268471090579833943599538804689283469056872119097053749104617912191915358397023112237267250103077681800010102044909019197253955708851235930847099975733785931112640339521378506117140385170322250256583044679828996314071057362597191388301745791695219890118507566759269029917705799387965309075039455901992889565357918028174478925479656301701074516524297392812604281017831824491446368894728130489636736302369470261635399823143138018106465564356245132823206269762055735971708956073171865333239068770577941086518584892053030487871045970655763854784331199294285287037130113525814598758326850802188167612035102290648356998065372775718359058383874903184651285447868239912823530093319673552309904008032249842486213743861375949568788651637357071243443801071233112332967903785953685295202379636192969690901269632964486415403443235233715098570056198197223217151965758028249744027894214829604004498292501492382079990074717330371327097790105497626348141269007796535653816071414076356226157840976080865463782721557790944215527883144966685783328045897713635455286134579071397627791765651625602458293190824298181140792337401595757023194341333546427361074744014005652922472151087028022823851780983752893689416636630275481254522190999987576209230480173632895074495486266292697329859163361677168844102767877683254103275054551344480033146172679121920388939131942181975596530689625605392028826220534578971257046747071659431923625927545049306347756162253965646422193671840590562623102079180321784365482884704553649054336217752025218021537140744188192256586442058885562110154477974519684119729679313986831643474476234767856812781280748561725585536610046635756758183606505085990937065870542237524097782803332396727415950077891021907280893666563870074074213792816780696095967333675344936445568142784633254584051248214255395475758557089592023743376060796306988337856013780262627271047142438991402518725099530035271258847096807551354284988701258227595345333152764889628852990908148027812588649683784740671666796290810766015619322491719631847444885415996487437358356334960696317463553429477050638119823602395862666012797610841630432059532869276839511694787756916022944772397371775227567902232960702110458000769923788042497886468790980471895795325316302640518917036764831988872081079766394074012410062805841078554899186941445436225417846492261193572999418177044867394008548989015180116688408891602566630860656046667873864372778699543100229709908495696998925632111104404422753104865749244986273722448311165022536007723350428755655711805485450551343240956920501945833858350550936962191693081998539658820936598305061325772841097462927367980984702252326140653899511813271556653625470378166594900323426854469319807858968899880198880044033051050217054978871010023682891937063720029633074058283494385316672238233997824794574012190786263508524748293906270947592642408076326103566867539240125669327810037128917617764889579048741910069803511005853047526540353350135280223391072264458073517627796774428457206226861810850847816731536162320156984925557931393804506725935253530633513158257302950753102814773127916447335145456458312748187040809582614426904274357489222504286717188509409654016557013795260529159659501907181452365920952405758861828585497039806314249136102096049614541009213519266563023056149281278954410341816922414362078510069431020946613707527876639805928045429032113959561302407836841566919785409922977879019104773597576290601262482037094779558983401160310404962757220653103403496493867681610936511044222552185601189474868512703192319115802798166742266912127723576679311170210064914146239044759815179420124616451395695094100664769980955848982383683441066112469108256843597842117821117268404002415408120337561091070672903407070074778423128181682014388310560181303838962474142893312913585494499323225055315278940335054891345562087901831090846531800338727407889457403019695688151334041414014193472085072413562471545433002218061771558812909054983519370288677973400240105670447090775630369994329445710378792508218084798648279335285115248547061807550126746802182790376744772449641662320088796097239928536638057138475268220544033255890824175015638728120148671605111889937922305105133632091744583133937242192411628956460520985751755130405945635405134253989603110577586757120593774803339452709508133689539233387519884892939402824991362143031124392181158257765255703777521036708532318247096432972569009762028795000303386683318367924988315961043549268385255164176151748889110109973180083867752617901476739966434719773079931568107351970326764274393528276875890243745709878000727975887572965938946732405412991888601824555871350354809256408504360925047035805230912687555464453825194411336616250269525327763387140087310975900529255638105206394537115472485688973471017273320001911731217736882121956775482381262034550725521147344358732851875131884189619600528963033246147160454268113756685001796883459538580020954364811379475883462111623338853164224362108557174805433437025037965458114903822740213125342555228652346731176313124101819674773427365468213741351636049802060566484028508623961084084665502864860960305414969644583964845129958756168188259477858858446039845483135683399827251725645760118961476888618435964382966613452696328445250726580786488731975067452750114454466411494233780508960649006763296023751831573973337402176064243263877202020174586068050027543662680653258098714676916715037330128710725292955433147091687776113703179368161414063897848133322712165783734809368700329660719054889756604647754578656227550722724120849290441121565802578731012474996763514128397584483110891219998670582911929872973773725473996894866993027375498123613038008006809845525692618675175340806612022135540676048328043051773552174934969992030926817062936930554937909742816579574422741931554148738823965629810283598304543722801646727618117665067368788384156836673376311459009750499677681198295354031066115945572123613304962439825029169289054087300680548810339123336252536996491351299213948952381035834755775299643657003211765014727710402413147599492195972042560753469048479303239294545289900947709785984142312425937260446684139179321195384218888027880448316000415125855573791791182125101867904256169921937351391598924556149593523110232410479750059701742878549124556409308899350688917704282783254516182307482845946854639663772504825645878423658730571043730093091177299040712354414111964018543850823732705889685097619292665159647190534483504099844630439707144253962303739431026393161146922846920923071374138098679921109897459997556002208869139219556706064529648831781133826279602214859372953636171699537547424810163807272254233949312476648597213926825772740157476116595253043617041883438196459038019218249594333401352082158161432798617980070152173543072343936653493620408978388036959328136453278293894561806603024441241941200172547361738983512296952002463082361454303680022305147069366960816264280078824374223644231026049143478753362841892102508522502158927210192902391187253822498662458562204407379767359097580574665256726114429155564719733205159112831503032504766732239528836468524623076448097420041466193654579353076673499665773243705041849505847708423323668547517496401307883894593853195414626473327901369000292091815817704088786042748022010599766498575699962697412445322161320797755970635809673292214019237343381572441131917969620958440543320388506977796603831697142061189491359105149230008883086672352542031509026123347154936115552495517025391162263332485625275435866147585187190523414137912493921358114383676489228744834951056735145966721466743066798800267663752264067329483583921152788828932347800323823248410505909362402640248183084021063231241684526932871737224156611812750973637202127182968379614175597524486144819206184054315648213436973439208698068857750698126476903336834671292052234699920669166511955997541744850995277619010869303381772225929383433731856132324261946889373463717703539203103052082927444889537217387503487370736926424516588291161181609727718136330076293039425051865589760297762898869105882254599919518164092438351971700214097524867018633567140899676170047945067139318157682542382419694341579144167456803500446811266853613302345287886179416234387259169130035384358438059612779583199286592394132135145203300988663109081907678390945941296239909607148027789012845885383244584671289651204434529410195594994247867515790754521645425410072769904806702003761029215932359939417405139188705901986237756358580871627020406607335394600828949329588381011073102898006819605514761372618838299508986097934559243420097994759967376266570323622275852481973199835371772477130809154834154879717565862820080256773760377706903983936598996899838412468114298344424309861630709859908332553925970327541202040188788942273450594312853416863135753270204893246162778091689862295959912268587893378606694776806710490153434995560433455601101901329730150116494747936106278731521099792786152400908960145052877010607660340874099586854266735898915534821779404317453727744660036466323401878211098610021859651452606142499727706146323726895937573809682566330982656190670255018264073624926533744702822562777097204503272330863790049999921510157239091444869115688306785252852063058820202076480407227418095155216962022270678750189941495888061731701207524215134412241502694994028693471419031508251473357440116090266763699067267357968799030887414482805444493780130238150540671851033225628282292637811685107351687631934963222706513813523070125512100820679014506024685309529595085540467658425614986724698411475434816564307941744049476005848681080413396117769482719145581885129513324035055057564359727870043885396288988515626544658683707183665665888219765960667207126234744105158055812101829117136638940632189469817067798301013998631332439399626536963871481198432706987885585767892051934680072421745319040481367878591294346735934428980370711290434819332341880051447332577229466458142601640464002543982517143259251061860287000105145701413785056078459917988518719557983695028246811426406231676096322174030172407765136966906382905699857573457470157855202032966798577279879418284279000274386533990808201285234094417500265101379195133262390822725111381581704352515659372212604217542644258712226058354569947528710781907255111486951032029804221752533612371837682919342561171289656453579543342041160265502046032784058210911783508677737317065909054579129606963287970623046524834881841172226566834848674731186658476982948626119272399710051069361882547749368176567060648115937674402523141413106617911715769777196088789244009059771247245275384303173033110231452297969743512410896742644997687440932089648410465922639325355562845253477167018019736227743854840104245203600206266503686744876707219488491943852829840928205859349274326650013174069409982612643653992259421993245278749662244765809233113401503723115018169389895660871687604669975306756597427911178327782299383317134658081971139737772817711965791638031405640876485720747159044498691961881852510018127689264434051925715834769917478844774732683767228090457536087777225374275413349817728705894881261995850325895491464714068509297048505327108766385467985937034747006667050926233396796946698511996276273594654342892219015786286127622319777637952902944245626358549904000968134042704287562257336532246487751469201067157187949402243751883702220333634821860180930011300369403198763447549071725484052342395193028071122014383777317627649920898827807374104276370108546950224194951279858448105957653713834227823409269246928447639436636165607843979068982757212242051919353171708638722640903014071366649645858693038538004527769651708526079534983392491619932266758475624820702418261064458110295705681150776366885977396673107780171507889192022972916663116506773872256988875396126765720738436221133758619823706717853666321752544291787858154488817341114436058378961765667599846718093754219186437775692637748312437738312797281361392325384306642189817188357234294440389609051552480593558467732592976285373494101183525714906156742367342073495174791975145274763533099265965093638553815637957246363201639210356814947094275026380792238848209421424625977061901381093018207444698707962361697604960153378275744319482788168441501854169386447250747129647608313979400643696872154100559755590447240355317566904482958979763163547867141731657603844838142093534031502625213685684825677171160368013927104691347370904934821517517243130128964518363064213334942014435646396327989574863556355337886943235135259073325759660365692527768762676929337996774710213957743690682167590749672427271206907961955063227728505590852920260060627789907040712701846651438112759315529160084865583746850536706197355708909528527053507129230288435152300361693296791227540735533999824256943544039722589889961652394463984240123570946008058462507984684179174639832371630058819984626355965547591079583940058254664317544939441615172665490832834746137962167865751280522040520593888546616674710265685882452958291369285234313975670324024628179387980132102681775134802263599605410630912428576977408880713877765990331073821560046907761960547371678057034159681830459916124906062025139074468401960603875046345990116872821496101079515566552307720686566590667068896236710047085949859257138261852999115617501789031776237555262555756192119893212378389771986838919768022809581208970127607107005730996142055797577761677163037643071551447895945368539026790019523416487758086502305903746536844937795817349652434455561823323133288535542291644630485284172268231662880924716793262525721554894658382929148074673817192919695799163534851485934436628783045152013706244100916695339709555228214214872297106798995425590147672542302737248106417061030567968712061251767852231345775751272428731264610625609173189636158806529732432601825880499622221091640221964918243119781913914502473550483323319875774577868852550916463872299532005746074722464475845366065827127775257963666478712726871023333205127658077671089536053936384308877244055253318541415929488091400441267867968272028698076331644137009967166336317164298698432018800067809660217195662878072988251637601300596534434073704605500269236418260546206130289498780499857781792350131882853462532931530078397026817536206590533872008708900327410535408249335994784028551665548918580391205420822830198476850653734409078994365218566329129067107336694736563658539045665736064971829448323133818015177954113817082863800730933278161572342032458430322622455901786585425329884252574536773643676534104928195660470414671626537539583053040825204480881653703651859934927623000182298359312512874770482778519386480343276868839221687292171887281132307201131389988482271443089120083461989475158518761379860804871932795219502711691819992496182782627952298316491914806672536513659102733721339305520739196490093229555513985111492611428119642071819189568248899697867973618693843614103165581581374404006770005010454543243813729263604529697176580489501167636499969233389257031013508463304600356260934006943263570073416074498766445907012575385012970309718567703631012082429535394426279012420586944675036663284480885025907995107853819452070720902088476663707049051244449176286543279223621520848757726918371291671388047396515373670002888004898936428487720436960778791258864504838417397642098749891750609844122460353161441530279540746212959691798241191892905655226862107514447569019183919103896298410896448928096892889066378841097690673269302003832257564259929297376689108005283915235090202777338242116821336641891912740019732225113224170636693209852462506421025081766014970244111723180796520498582934857883207837645785763043194470498436282859399246963379189545922451629551294214460843771877314658711665491463287794608850603358274941536197942280287932585319492933888453814300011931900935841854617749949529134843489474685046188683047378845823670128744637722761671177719891798622043652902058493983812240179744356743531239399160588844243343006986145256772771156907481961228068291754578642025886049484683255611544578279595198054740838725193556894803231763521540631369515292626562228566519530487735650691914376521268963536191693973037240513499382029868410670005895631430576118809361587053341305879120678204978357071547160327314824134186510798643187002429856343538265780471341553242480660374646486312085286078527008848912266069151115376846112602854470615127881917564326709052037923158540642977937347584993667650184023755986022054258597853018981976210169358580966234283833114509862118363642058444162524043920094965412007381936071379394738695099514907515094459096705101868657564816454464642554122322377295509042299296122578784497657183888015577798029726340193220214434173317949986748603606469040736197269733048756093952150051316209799711400661377817634194713842841483514003216139865667850276626248345820534054943334109153834173964572976439748825913714116664651382600937999704253490112296853953952176669039659922153421801265812760319176210181185742163526200508409604906610177242033661981753182964470724245210465575305887079924278112855125193088368700449500991217133926804523319624669948166395781670101424378209098710412346230823214535249185767351668138137583697217655729490201519770708011777010156121769331964047440527915570903459872896285745037185269656593203264813162441059543965258855827146389000355144416463022049008537846731212550272229185753841116474538396612166373483114962808690082917083664963868593894492329428198502353355672893517270302160073963047227450117778284509321274521004202277956761895702547572690473431710030508033160480105327933783918966677656992270859258049875286620049641003717132555493675798631089951803881734195733642703369785710357109189774452841121216527319015051559938429072421714661881851019418469747545102357997278956759437582175492515361395630911812064631604947151388773974226047871717632324775730442347676668574041431091034251953070713945748296939143986541029718689924068042159050401112583223918093152720384090311832315909385612204477606937695927044333460152596770352999968708923481981953665555345531901309906675774616266039178385607569066522022375074350341027058983198724049694254452720981781472077387386495878551939233101513136566661889978047855929318042297934682214207278485021332661588414394056240619200423337191855360860802347723638698031236954680056826916102858789203779623557395541937983544961526271211846539840816652656402090756030885301782176100060161790782878666239036763992011562273378290458550439122119923768577029955995194178484833946291585779304179174083904752305476190200954465255421576189008484254574260109256244436582441892213893514438865011383889521609040626792583053319043657655569385341028434917863195305280243777480105025197975800658398609703992664645077957218693413189645893475089108442355162192282736725019431306845301829283942195518160089265501503131170162087790529142837716326494827827784302606918239770326819736442370242198899775629679406486214317958512368977741052324601375962413183905653943433532993252952865162322693524922422583526639486297001120850935837330905793289889335092299627769567322152884325431512814801705721779556458557479411010805784893862190508256419314261281094856999774082505532793920428406273308803318116866555375768011216914603316526064086769628980751040667052528914914201980133738534459428894409086036366766416591093439269833955487929741967517485848050049390246625934360208621535992953455843797239187781180067324461106899390543842088938275402881541944489538975205817064688880527639546724092398917931846256085665746452888088459617626149371484665631900483037008907809207098351027867653210443114766837951618427179133600364079885721404445111220138653978866580280163712351977146906911878744569695826605568333587246955081653686936403128789795539526491285634670698011892390597968208281534723753263949740453709814110325198825434724364675480000302465242856009380999053220949529838556033547057824903047938326750037927255206967501381183762586133090716205328129152950088462938451823247456906214008495041715632086197844338192769072370804266778222916888344266238379283728806724223585860899688877901499064704634572447088503981099343830451986537156401740055737428422980528427712156808448447914350078632646331480173160856147181590982426089019710303175647289643017899376598355491549343777859499833907248637694728948972507240201466618656910895149579896646131638981355921345541669505892019815512683041434464383879195045567799565843464624149172927577589674440233514718902309491737623461388499435492664830445097658238378710942176770883019576941547559458270527112832798382279589519486892256204817803493624084289554283133076837822265365638706190086816405140749659285627687995440386891473427359231479998242734092527811369830675708558533943145618088752866378760373268833422512479328244319827171783083138387162514301151334596679109582246840701665416157211026446363336507176610302025267799472097433936223674805426603499755094287163281419384802104958874711601093722089030793243632720943750510940134523753740790232123350272746775807669060421618809750325818275388408139739917289471800479414075218123717274264659652557978322036561091961534805778293469829159458189681420158424756680605576076527428462567467526600721172326425435599405557314741747750712654905511767813759607608171025429407732126952679114074386658862214766994369757233629297646805015356328547272051036218207394217918423971848892741627142904482032311855161591679662768003362715738072132672320427558786234578466933472038996172036606896763700189826322665096415243754748300371966209822000855059679712541584425046496917337277056433017216052090533703911728987864409747879899809566147618785430870102546158624491459511618668099475589921409076306247857081644993417561270767033880762407324268912365110641278408635138599784374562870980063602744281698623622333092218122701791415771187666476410900069831863136398871121122254143903448836937120752967076769928699247726515862910995609757747244707823713945461182892915445961469956417182662137191777348564928405282793427303167496499551865748734325252587378357081995441973947406151479666933128066241454924277866236262459034000282346904323860684192038183996478895541010005159492819700103507961251911529712863334555129349868857022042333262221771192196059874158517096496548319095732281454803577984571211926463838828586098292666270581635734284711762049297933795788184600047540600804800810534792740718953903695527806958455166785916833452251886482661970364279715681217438339510062036907209600915529577917039645807413724699265339602862220091616325970077806222152740348816447132388635472736289242728472415575557955198737856282404836302212556138614303170271258726036003587197856768950357794065276901652241499661432172450559826819448814125578575687808378929173283813251458119890422885998476585123020218506503060560054581521711258942677298487641764063941353083899009858109660163590596586362568966256597919639887573561581845304596015729704702529955444220176697924880015439243005590430538597711267297210898906648634165373986918520781395860610508642209705447961619990290388301510601744971658630562290230318095887382218973269123077152473782126544144674087756583314574202266142711033972586440449816064433765619655396255768361683072333355373608631323295106758488945994229541724353682788713456574523514557045473053531224270809837558529313332107498326094081815639746337572579055708433552990566403299042524011083047849065676832729156805924743297794547200775348993332133842522153076410097667947249788471196391914780433433692339549091998723946779629786303839060885278946621631498827551054876970141776725832483826036705938710834355062759445720820615506189613013613174743642342931081180335695546854111823899130404036458685088666899969773874737945993743953569680907449897357864891589121424268832792745824824296395037983055051248097327102718321133301871214740148475049005311971064444858288205236793205887128224906940565045990414327056046489117425492075414526248317278931926313189087203363406974472501361140244652513786932303443672967637770983421321136777020043734853422871129906781870806651217779093179898179969429825929686918514514081540878567925562653311856852790235979752475823934499240539498900221689260244569294294076809093502305822107706334694959117114278610678391533450725544197088563373345623384115828960324117415208573074308060162766795058460177431258929631392991182161708686016542763541778017977865595729981988890470661843482306394533704146033447141230894282609066685927996553965987495931029290035231973883725337499554725053103209317674081267629317235627283402933281220125503883778487736747386764414367303254077903613747380264017319304888888271641982644905025817454398789809173446585416186576020008687994603908564340006447383673273161012846637187458027676724636218611188059280044168316813199887441340400292241564976049296867948011538718280966422102433439039034552804193829068729240605217390613309250648684833210767248078409132600565685252494433364933090834404730081652295991366721240356534702123124448337054639803708652366994631478999289515797664818818993032785734469170920716230351538607738458824020518887109049226256743726076876906911241261943316476819415301977883344417126395776518553865385330864981015052154364213965438451031988408429266655498403149958723904518654108719763632981306865235501809682563308456272703980149945524633881939625274006684787620474619968083477195954118950916778030941966195066299104954427443161973696027823896226519658282862202958776859430145958842142402470481274963800258800948868411342742927724410146633382082791361980225928586193381667078744519173220659698554357291871663214408685256282158663191843852249565562276055910784496499709779222451819800429911203719139578749353662549688258222177703037198873128374302852604231030542789860611722034690633443746687572020095423311030066403895282593546653790876709037684634104298488549711043804659004705069778259147802444311645155639535056299271867743270924096958873168671925639740863085567214051038515369136675836944256927905029710631066482227984915425020260027977276846590850242364227196828596860425118646653679254888470038243098552352512222776019725761295074735616686713217922493086272564896384742723188447184802383433186930979445067452549976058918456204123090866230173112537277425627694044881227232008613583484302344785107942521966148226677153962997383160728601068323838305042347810621503564149490127973675626070961136061819911720876122844166132519607813665534011360326026882617631945244466316781750192103599408369389665082902018685290321897837842267542892139387858270477951520176640734563745894638075672256830574661107253378418685323603406449147425728991617135907566585566206555455531529017651161172435919520396815717367488163634940052745846940273952927404609322416040218562676395382186387644253661939244126669191390544018714615656824595279588224620065370724205395793668165816814174855045078612687468355196870273082224787863374335769432895425779660337422687030929688341857969431960544336851110393411482670053944611290609712918144049118581838726748908624993261590189029283042181134954970468127989333241857375365926933648345336139675048674172752603019265682230234098148122863171581093509589735794615170342854760906866517041562592863056229149379212083636778472398304736492996188758377226769793003495103271543782616187181632330306873642993574080262276005030868965290043081836559159218869763853390544497241964002751203129298595199475595516781181185271202330508693799926433355679207079233184045948671475912567559988333967427122787505447046876631248910260300853117013301321552440816963949314813931701807931788884512071820063075641695315641717630661204331573703428312451546394233255009643414281769384172455133787876551306176840819946566277660569765552275048638199417215059607600850213003822179240185686427426666894361708304945807120014725762325438497053377247881807608400367086015441459347774280126096920042981887077970159578096815064802903821742481602919300379542328209477792374738759067599765687850986359961442063226507057088835596689866216657325854596869976891901643717848448480517351528424747516611443885855806250813969399608867022031578926420824457249535435418190811539665837768191858300330678363662857290481506315828102597799205647295459474200682607185393179745225927531499900675946177662844861645827121668302874958072857727495767435268482369002298070543107322724148318550796341752729632522355428510714090165965602668022835054546849202701765643863274066391077453767891614443931571269337459278910357019204499332627887660059517474182795843962045635173348832566587130002132086239187741872870877404911495968006787610274746344398364835346646347020786703352676610876487363887170760691461101098457893220851257231260650896012023257908580347475336384546937915871870490671232698597072499633954077189679441087874048938134229795808600737924794460825126925032458277493117458966790042122667936521420604144913095884432998930797488345891558315668791729597231399761349018871077039331359542194436570726331390625997897037407434403410541472508897073262446175884718209403276792597381230222959354503717311554098788702455781876781802015245142445525842403084456985851633551503632525977269801043105550866861670347017289266116469697359953722293704481127843939770164477590701916706443999059858578883366335217391611027489916934491067254671828099092960548279053040147594642528932133126892269019385702643840876259296040291664659351697262388830620105434043777131551536618513787770435184807746279154839007063741769165167774367730118996635790055439104832548170727562835111417166121061639083630983421760501328891006017579711261938468396734188536374181349521958514704549807122366027127587232578708889832675912460861056876991530307080291910061883417247513581015093107999723604446859489010721751576641872333076450626507079653042073025600012342789038806540012727540581306565083473462935937923298643220365998649798433190870003501512322990603615035321302855644648504067955749135510082713729331448832142969859005008935768210655479611846917126788664007300595327009987244221333939037703857330782459500062712619355789614816653357778572839296336130324875601953387219788325494434769206301865263841553017491568511492560260075066046242843364786214745404900040982329621685468179988168478532910732033124795723956293845705392822247868302938077356676355362053929424818739574448877067774581537832685601128225797562721880055123724811307719693743957617463466451504742996736598907219958350962729447868494049909989668225511859710269154305653273204361582803913111524663424234529966189711825260738920900170566520739802319779305225044884020951107495838679210989633242028435423260162451397505178576522842054256143204115056785068536987070083923795127533949320627226735222607289748558303271270462931906003911265112590894422628271763849575045558919847604850724098853253049346468389965728323246395331815155706309583529321086743050248572229659298045665287973814187799881107237962578129888923193132433460146846880185750035773182461546805666527651036947688965505907459779026307061186095723423677862482335898555653380104477106297848628880176512989897697913528084979838426132348099185785219981948509633189795928341987614880935886581659618634189200963393814254286514560413553961122292695367559098945546571246798887679217423914148791099035950335478303703708546260213946963128580291056000368587976030215029012507520217244141793647890457347051970156373881825365470836374575733004612677107403410120791311797390614129489157235661181587313447012685541524828417022155515602899747140112360039851361514528882107577456835372422690216914711603127492314940319887899556127813797981947087237674165936550619792173147577877618724151408180297547936451742797550162706511332433574366012491535097330614887141255144223008803310517924810957634519112138898486081299229339807494231352452535347397908529906435923052589422508560387195667101784971458456521290114421905596752502775219225918733147610084915745688214953259606905082699386688848025917181322132428946518193310799430651041882043352131480926708480564904260432553349561428945095962414812039691516148475644130441975566482171324858639749458590137616225316719083714293548009573988735261917400041505098694494610014034486846239970096349013117580076940691849707241194176227257205450047271700322762483844234999122108351422134617298757958964638917182279915299185359055369746941146512239880213023701324495312027025314809819076529347630793849075265891020297076740458721708131148233732605817383536560532784353699072151046440052863400701506952644692231633462962317839747126244991065279963477533673562151067394808724918891169188552299640138677240689754441214563592754775997037108657684057407224929573423599817131449492835504684962635496641420903752723767086977290622417606865011097853376318798400615253365042353563084080163602624979767111517303712441162768371189232881633331628790405099115070325750205466006674368338777685883370819221669157111413813091951997412850623652744917416006922400268862204774859709244601960746270222933746960080478534153531370044457786922536153879029332261873362781801648463022836819708402743691315866517355943625675878955440820855698003971566490077268795045161182116190515516513680336801518168053734166950953720784827150519575437189680485591034707825385107216315367359375478319397553601575794724945155401604037462070816417706257517734539925341013174494045395770490439293989401812576905823429033527326745225341531837576426393168070785139661196277711283756875958794719066629608006457708157567524235163637107061925381896276384103518561667400802395793200966087720205355587517418435556141326373887339204541180881225433953953864576669349245395206701960755214510518281917595588241319200709717963503987187693794301215499027191031489935120289587148958563163154236697327640953872380424033987599298979991219654093327066557821353947152239099779054056539491025497211112686951315614591197564080597248600832008156201530053018145923782673092653428845154186772615277943311657899255597661873711464124020046017157636518799986001701926429003556748486607697552856923756337810459734024783956614098959686279728006227411938572622602672620028236752945405928121675830720103486506791554249868905943892960880636452933432281996081344299025299234852556951298435455409169497321235900525269817996109846800449761434521496790322727819315644558841508741006178568769279148001372559399363017015628222213176860909301401638232643714377735387244117989676425055727672030310903595827307439512946282632933979245718578946038827166213137006360466042936432242536113364119166119569847556916187256478958289367319037086928090234366325788322410823130154017209072632519616743270873231875377401658465456147456066662510173719096576549410743691924755133667022872198914537135565439519014788090667460930217506523653963295130182533540507989788731171146304269888919900155471460926079393282474817247163561119457999839057089266109943073241008177125876153675957675132778289894027894418803282641055625108522399681185534318656258152643861989021696434574020479035040384702856445754714226929460606733967051082994779005666725563832109613012705893935983213130291520405815927716957176631729863490057201712566992379148938349199865795697838693534854609110699047007411428422897349907050670638981711739380234406733329930027375262106409230208713033140114817735217000137415365583721301189512273677869971733650836580437456859429862676001805127982949515028600349456823088608153460478840607504600950454030059743819654615337164923225027591109613424157238362105801416489330850298802922305862356017164226163886465255713850757986752601939637043926886493997086248006832479132974232608600407437866868964857664396443058237741638510747725831469444615729182064044531280306121755598089317820251989238802382714208482935597527948933587867600753571323504504748583795601117687160161665816308522994459949789811727787805132432385568389326041042816822188791237483850464244824172838794905592539448302525477131472714024202793935365895207073373894590355913261002618877392922564456606075552315135778856850743691645063401947516719985744232681608593868846679676584018262100837876419580423424255271693816661898786386938888005422533482937607914645797655660204146829185275999634865706543246981587583441801648794098808521319106907972326155561165455529223953399242651718494445187968838960182972396573325555682666408105163791677648498974653718419461173817943509458559788164113048161186103460814378401558653865024579409470878413893261751125416055132016403961558507624368933082860874666991395573209096111871059546456990499885558579295767076909258970146492388527963639436415694499585427846697689588547416582427894044876095614871217595561095421004631587534170496615130593725877695090265350896917042388313567374852829441549539250995100250645422050899457098960988433290571586961921870800708088746885612009393747425000678536597361966970428313312862171856041589495071290013771416185607729959741821554764404304027970858784400987475195547246435324894902188907586987189433951114458661896146930458327711712113793372499766618872657322245888420741589832258872778214316361738706858514682968592900837538940804776628638625998785801915506306917347233296447810251323647461669473837974643331385208565703605606299458071657780957263684515301588627380345986202488753254400865785300432954296145551772404622434945435422985905164106644674083410753705060984278778626999739482401998112551795830834487120739918833616632832824593152628571569254172928257683377968598161217864043417662550676909785750812549313886969446772184405235858603658411654528878937670104420638074913958775269487463550446443624800212929326543818326333556534960976250031318147222645882310993353203780182398774568476457353346239495232057511779121775410845309234311785685330309271903302197580603380641337781142366212070366769821772750035529477644501030996707738184108894326425894907428024683400979003818277915403379898462814532641312595329182319118740805130185158742096360933915199485618482871809888722738302388201324986928105743301781055499045251349114467824024880775303430861085553749123613529206221774244560523658104817815563922705008844871154597382514483842756338451062359176468241166437892493776832894713797610821919239337356543780062529165126818796226046993928203979654503385998839147986870505852290489051690346254527259637714797262965270602555532295623949364076950057165399364697871557161969587470683559844349811978026758211633921905749072184433391735490431980929097141529817065006217711510932263029127897120258896537103827847147429861838290707402142525375291890420154879954602694278018247024650101492120505846559872871545600419238175662045334383796440844815636316742421297183170500588603267932572319318677027253854273457740576129778832172712132124749453781086254015041715598923049309916042274262254685439137666375402999576211452438292749146206693011391034243910711410886321006000042792064350618024080818764797828249948109900929121497773365308762512980976287679641706508227600560689991161141811136392091804540308946447732353895736223467146497554949547114576823577620265948271807330422408934638583823792253579967274871723931451790410292845844845745452455895250634108724598652318849628838339704593464516044261434261143147963124840860380048700388318089142769158870068117141635482852962225384554261467589852962379184030868053436688701834249947851513178425375323492560304993337521175830628508283483172854392140629356230327402400131392168208457415679455458080561825317969700886802542997009643153217099693177752764098637344844464290068573967334072312629519987312433138503705015130825959024290392633143767319195459802191531585172005125706720584625109987065867772207522303922064212162520428164795587336021981233402274746360101471567116855871231119139189459637155795389400011855711887635462173912852395811797286982102407431741447250446286050647820789818224314394250204832840441324621706630695087983849595236296483912000142710640092091585621041854153456220486606905143005027874596399455504706063527851668073707767973005147982451990238811573643810780240250655367751686951574622756073470834958752436129864204280080120415277965611659473427175776011785019976548762548776552015059504573867027220141990488144401210897276263926086710078505562809063284414326285468973169924067309992308264666081496278913206282760938657799379924421505916367820965032906263757251038820335529483305395678182600406382280599879608373798271649350159535265274266560584747927963746722398905477646453314697663546049562790677914148681998979765211603411980309909249314506681612661861554749980202925472244201844284064403106300858354064096729641814063062893563207497727024169382818629142335882955557104843531516325662033328441965173214641286408020387120487223170030421069162451160921787860504540502156621657698821999306487729063261432030857682246590674008568277946127386451169764130478099868878657023667738593049221658952099154404777398890709852090876307351151154402882461147755392980221694534442890764572867360050943565782697490490909676355003938204471658988803925866702098482692914899699569574098717844328774063441096934472348741937865802875438112732430246357909822347932346994816465359145862315881716111077567315535162389371136343626610268749157539801031562957838848365079587822468489257813210109358318825507664741399611522531394462938983186597415971736431441699908647792594233870710198350553872084650393556697373083141803366275790160309670392604538834198286453990414104013908335690875090287245509892012810120835164854124933044535972005536830583269427783549686531480764487021118971498344942787068020403600366428009233240780050420893524125734121324239527575994356339785089630273009571724979611397170211802254438043702111977956245636342924706536214613178347956230202630900798137049570800639086211879979600323721305758682861337714430373143360637742764496638180607978493977240684107059083455522741230500570943074823912539043428782803799076172036531224334433085373799186736015851218179508611317760244046004171283642719763832687279148078348457103793640251534032039523810104361696817385094942880640151270792615720324338865366194717524904267637964993065146175456028178974648553474722073068826841014528971633421743574995897953474901527908815044682104212355528046104734975330737755817847877724758966817403468693873505416868851368078322815344176798543053666100335911408410276676434712705491107504077321754328322844730128441800956654595528287032632435995966461917388445373958305706090354644862347491602383281835195286102629854538136435124856069660115171081853243233355526377300578419619742928334250552025568025881049575603908870651298643708152532112121118040298972019225761063940765547200919724820413812332452602710102536753808566256854488619762804218832700004914425644920380951986045726470836200577681010210770051835882705456629207392304081008888075074604753743899471459675094105261728427349406228476440081969962775483923366983655052579381687738791533716692577175757373176698603325866917020711000346367738404857210629600284375420425363519434620327997574719924685393071492276653241705514968064109652760891741243253216274557171028788013521926903621953158413689927473301161068017910212301201355152740510479435549394554349216242280338229643982149632893546390564740387754369059364904184581266433796628683733016532850758616515245793841781201050331735037627193154225169510683938598274748453683371090160889624041630321272707198414665002685273079970027397406631581081543750958960841175118221675323940723601461711070692495527749364101744186298763377656497009731905021867358620277477367501923516293134246172825497387717263352026540691441088297764960275948453514217910551864083983928616240422799360496227453098003502422596022204340906528300843059504961821684758955620873250656982149553002654134273052160690866918414096891151262833731848743715212143195060303386422879990506353176025359982520477176158116655559763821180217588808509808951804812465838000770466916917589234017713443266355093971010242903866926637050937704475922781454926052416607828614677228208460781772447665654836509360130989237791488081227838110182969711794026932015178324516698708139197968987648354275571226149420813252163335697908856792605495639602475585362457342084747555882172110288269232475145891329910232472410905584111725100286181017469539572226992727915922719802611162475133444795927409501417106618753426934614790259201018139024442836489968259753267067101747245479797401204086688426677087923099438104793416757755673204323984068035331147935644232926523888960107799946646937802231075706380071963567446075233607033189331548162042543616765759841900073881937362152235459400116147677620446806959895205422830838159276282897375150873886269470376330199928448558226296495416371407820829257904337870557835825116102123261623144308970212842336402238432236021068753467887426775795468088690011628957097995503505596143473572804778106351726958983474975074035958724930628847746038190662089217932060817373945529938390124851943648908871844586699493338436815001531677735484031535301993336004355179918885508109991609215208891136360688730376381928428233027023043694456526633732756433033245876621271997961701854381023095490807334599602078775014879479541533854167585065266110018299285143497737942388125352701021502197708433734007387116696533688006177578723557060424150065418993814336144906719613930120494958307633094314812196747725977472568574336472028818021425300886849141316996085406541026310860192241219153889699266186038094739163328163032920240262804420471587700523599272761189877713208005757654259228095398528712625771331610829813193341454392798508833462681337368951581900109536822421185974679365510733354511734784136794012138052410856719931842307766120562843081560023880073308572407614010305178327297736637936975419689086974968039095854775243314346308498123477137188824773433861432224711453671011731000992640945588060573061447481310516191178642218350360443056815455028068906976007439925258534768296464685325642037648524387018137348085998965700191872446965738070062997052382585818976679353506998865743221570636678858627021109609365773202202793486483319074964826157871021788915839309992150659790514229228157690957356025789087752770526099114209806003332145976435003979423019483492027360928009151749469130410473434928348800557880031016218296771982371591074972601120995072823663425318485768625606832581066417325841218101223518336892570533552765615649523210299227674874074599042301461852934141356734147640473514898880960356901575742050970385088057505005212477469995836682482121552973896906285524824906046739709237000176284984421109804405355836022423424148833377756140576576416023246501887117201954010650642292927537502137991509140996097095800181877092845324136263865019100172696810740265661013514979707993818719251473107929267415064237230911866486624440635603381745762670870344349511347073069672026340919002863728282315795504312731160387216169171215756217316018266854910806916009263730216975867601152850775812462013644482524897826749180327152572744284446167796823398971057062046291851336977604063309224405480204615750371170997726061290149438069624094205588224306709378445545889699141726921681005278893117578477475169498410388132535449580931396377032773700967673916998924116942594287850279333655564459531063513816255943093197523851390529313131909773151562118883073489764997724332352122148666972376163917817418795532413884550851569314740381010710486977943827101750870562462638045639465986242894635320265462178535572844190864512822060759099636817644906006466391410453043907316279402760588492376719336243116999632476866478791791557839210886847008015492843368824956644229126418799057427342895704687635067644254239459164574476503597397155772600549280140191261258838380352002462735604914262230232049475666132622041374439208110285326237178693807995328525011165515566208862399086279435317855022733399927763334261130971308633240084106910386376202178241171715194264787432174296469273207623149788724427914953058246221671877943595390708239413815928481190655672644411929845060785766643857508130298062721232366828184911365877019341410852953517182008549015369285179046563856591546363924325028798756441412955652100287278520554660105262203469079693373441525375488231217369653950834811764927472225480095773150725070470267005552721935310563270136923688742302469574462988152429459544114923919134827924949963975422762174872802090524884034805916027661076073126585978123368408762466185803878534955121993780535905876657520674133920378413672724230712454690193110548601330823559595183730225179280548681385195012149861889720260267407052555626826513778651514608936824877958316046978443165238264717837361024703649914386175609083486301341738483818952991804168733011274820980779298091212576331545988199175352406311453568419317291374310905384911047132681894147217776169618563318092597268091522570395769281330780428094154428076029084431932833587119857192330699913316603359545218346328770559510179582093967246378216170557313517621723882995399749617602543183999282853687707293127010452787487150862064405372555546501125619043336757101490455176111708592758570054176832956159742660066312669567080175885984897870760508543688397929588118543060966308542288076165906117685630287018550560981678037205612268343506984550593485070509945810358317399435883647967245063426087564837569923101588922112962771884056395900815902868490986545438347205231776934565300878858007409896953477314856985764413570150060817778603581212684464771052318755295548068879580873526839865666275895092657053524157428591205055107189175860222612888912445015875909440679104095947241029909170564326991204421292004012600299892978203600209717040358083073255488447848016796988731188106370140277543897161172824969139255462622447195391440739873531381042285665859649335210589063259898976450198240413940746127946128665232169813513676427649339309750539528584282255645095088210302406263320341151460436659901761612381927614737886787660172102098644290419221297357616259397147038786451732981704919583055239163039144587297811836859362037345030305474345303269930464745211208816793630574424769415959830040156043091559758014685369570670794635134099643415296488446954914669181927876108481664769840168304341672468235008816009848773022477226892780027356670291286523543335939214898745021371160601039758156531810875849750562852838922429090270352981430881594684833607956866992699414915204545460357162942569869999280325714271873332865716467362376324739490970675321195711784333771489680278327146999838195871801506902600173699752892851869003335820856712499850638334243709036256364780006126412411114597078818277788169546683331532151309301390346227137122564423820847550361933257942740804851240061643451970510652217544620198595223184419443133099766732320874457419020768521754497022799926523410109996194203961084772658377147556839450176759842770838351005903660613433004444485859407517859448020794143061677672671594261940073938118370793858783593661796525292024178944544829363808275897837768367877066067530096174400406495283618168675560443589909225990023840491859236951406006256973620908028723215390679903398932035265077479785760423523974532512140292513907328730642016172316994615313615309378885151955985156222774357405949506803412671463430633885870579822616825736302742664641614446069683953913446565263932047689101875260602743725760912429021090015254818656280514888036223478544789027914615407133197525974338846929285371759620848846436073365727933251286897031971145002515314223355907051486396237734521869262669608240529192252933022040301308264739244490284339722037150801951467291039338905566120730831688445728402076048773986024877451250173176445657256769480674503230776915986281090623843504549197273294360428297888773958611046081708135273579106931163662088584449044230750614508350662886156264603041836265518535666326132252076272648509482288807554003442698874623570401354587086463082478419060224111523952738474796487418611165079908953217541058140640752075230952365067272104829276221970289160117476644134263622188202394000909965563830735586902097646188862454954719333574014043333575099251579406461466187888664138006167669512878029315316668839056446379610052273139182763112348893876171825017308323317950390076860509025477611286859214610325031799005794300849168781617678772173321320261502159436945768289894159173240434046872011236944059679606554269763542929612553434957724480501435176061817898270041941613255721536861333088981506848033285715606852920150023084936350552111346989106183739507966566455080970968791836137205304784439402531998022917321843835160764371557603200978737315755464374282040011431886765120757702554575160283841647824242297832422091157749453798518854030455761968727207303821221228266665158877132562682654440171800153083384112341450417283751166939586865233464509615204766972699588401228910268656617081220502451366224345204672319056632430081417424805805148742809026322737925094186422072731081677774825164673567511778844684406758976015298977958632340787512148242175144985308650791543404199150662522424426025268953757639639320124757020827138184195878351644467210260745575729877800766150697293012402868946986848223845291799895717810714828491094392601695244850950839354421542419035622417546200477328386243147948407163118558491882473174388245983363466651899680288589783985871054155394268320881779356269712212136282805256105169578258653513436015339332842609410796697776854678789981413030784710274310641259893013483597032585508436076261113923399854909506987313665847262250870513659236505082729765722121637219713171532347629802943411898365587945076862505784170438816825437324831397553317704241689358612557348120373161525675503523332732077745175957610094585792845394884446729517142129946010912555791403744462736239187122459494394031428367042717914377589092740661690098816711583469898898595343831999276405901399235985702981204357069225653044750590998201171051553955988806252201976543126088262233662870671905728868739323453646204820610708257430433528837381104811508341244448727265843632054523632592298563439829182085120080121013258526343258941483765599494013586230757180541888407223938610689244285847074657988630624310219919118756538040704405469767898908262841432301077796946491669503312168862561286370619045494265055717247977410373705170732785511859819630537052224265759959138815866378229647806397172245050015585098157735577844013821483862836176356259476228426634549625330499238391488157102842222905820131445970777093306645709556964798155114507324893663783692663632720231813167159972133678754033384819271553237292756982536784561391432685920495552610446813334491715174879092871017331833651259800682213097170975100314564629476678940862240074974066425262438446963262605508475889427839272862625327304915868318885404935099312697591740192659449769291297970217637837554333229052417193744877405381231201985161964944525036145331631933072654289553595971476274690900899149011724188781615503882824868971891925191881496613551461070757888027063779667778206893636961177713037259912392999255231064214433260689196530662563630254571490740563271063227163258958618169655651596700163153458419425165385449695667336148384566041126933745735687485421965017725759505790707006697266296052824933977926110176732621927146133219346660240899394082610755122512596617874105755094946476120942882064732945723029923724608786375538956384491594053214462327311131235224344134640806606882562262923406248742813215137952291019947490435357819976956604858783723031365117101402079704879341677877341323860540607418298449652662372198021870422754226735220603885149920344776233419123705071325992384330488943805040861752641514973154778546711474110265509109073530083858066906984345619774611525712444698091863068451141437199084583963294151952512864691999515810251673240992204913358142467851079165133011619059600914105558094836532824009604833814452398125274607828249954201665828259365830359504162455839577820116555492351914300913015913629645444922078742958717060487661411811077574956708021954407623573925799147561190307917855554376756449545805967190287446699692490292735008000299829998230448162621123517252996195066273709752655128274788458885216855582057302559325299170420244737221810245802820254064997663335293542170693804602047084970281882534715482179309164415530204745894802905104307601842400381350334394217047741353388781615583202307731560158484933503687076827457096273485602840062224280971637270857744455746770682570382606219709179184118866032005014512835118046512060521970741707712575950378599260843924879126900831311032499574156002694020758883577662245526782484577538358023911833717588918183494328636637193571242403575557975914662442950864129463925601524076567946590863822096562392151645001449058850699856321042506876070303463785703542818906654088939797713259718489680325280045215675427050773301285557413030297597109085368836951340708195900017701193376358553218793621148716840247580784113552330472174697177274995462283109155165377586577910206991362633059949817092668465377225801719387497737331546910055600254923457181495449840564004811455810901092965583152714842799029939290711579952802912839910521886606510287122839603474808589563159316698692128361952106108096128946205102795560351888814935909915487176673959086858900964462208418648886346953401671677690159534163446944971699202001177877569998445735990563275836002389582794421801428941741518655130863174689841148535700475866446872425209756757635275570507798408016642599287407195231860426623196071514694568434408420551797506735158083292684180212047809875354810477092586896972512922891004959346367755033667281742195703114579760818700435914547392144290084818701253800508947561881198683925116936665377968977957329720961782241395057951098920604842234488860475363374395981747472000253571872296235596689688974149727979029341594968281656848591495985134645072085151273452887813254775842421191622470022072700640781292978052001384340445701224288486295248733384902581189390123752278412109388653261012539472851218908660049408832574336132475347998386255598803918173099735617093094708797751313721128576436829855281696607589632727958519129583125746223301045807388716644611528424136368332891065360947251283548339862171908011154850367319549943699816608025458640939925807529647748276804698765074162708846448123303027838617816327007923765098403786359448220444486230873521769749013524178746448222772152966473088112466740078775404565257372510780965725393782577352665412302519741907043929996791330225306939933598188003394391582149117711157143365246783467323043125365325164282153037650180749818862312795044281370993692572485453916073020860892394974346863264061585238619697434145973978691305276447796555194371036652319228131601248805095420137123750576490322168131927931660073061976996075002227361484811793754388408168472166636114927047002824482918264368490527403934030143393392312637306997743340926388317072106297160137592420839233742660179562480233452288869909990659439073793319060058836009254448310795541201452705280999033992877317413757870478391204823695126297278056296947448420486323308393308994253396319919174677399428400647189214438541458079505817633894856190023164277051638716772841940633508163552197321418707691419842965059790191515912697737836532250683590212017163421674700509208806377088829133739889142816804340366881964179852010529679453266102363759239954954422805885971967628005674440604487264951337102211646867173948463254747071792698285278520265287147504021125432599050627954816134156785457187907402888985357684448300134578602654810051087099679468688367133981300849485165711679975892368684430819370623975125452743556513430695269208033673353985157837761840661822187029195908249180426376117182084614550383783129738571241015753489053708195825556726183919506877921404046516935670056020108514168536191264166367935715266512841056943440157475494278006784925633781368498308778275663314139524022410692152868370353140110246478628213679669797039562363689310358428035422300542013118488504794266766292218698749979809387090534272992496571012424751137213845120309143307261342984859926811862998507813453512134358068153808987568844188703662785365942623731430027287680140471873410777114558821681189502680945116058319176334113310539713544865109253120063182472451064770203289245407602530565611982679142594935622976618446615621054640579945561343921866620463632880128663135300907071771754548358484018249541060619390358832299925105821966873171723799971433072163274709775517569782174612293297994595547077401445220358430767272142756030629005388589437240353701298937812696167945304242926075930258333927182397878596118484613827623744596167626453851181985924169228855106552662922150304815174273602916717792579743590358303563132677725660333339516783861851364125883314712915733758007386881902153238145424906569396784704650953912615297970164702382580287594951276078789279103459643974508853790635656287747395228369319829760959705365840228017814406114619002367453322847130386723274601517569315949430603187217779780490811907653523991946826880593428886982882129231186846238329950488162383576823028403067726960018545176708515249366679175977807330638222088015919017997360133219919036990803288344585359084850204140711624629877903668610120279157394036180654107468532315268662771342974307024518742892363694947746392305343303185951828871848797878225953119420369054136296881079607578697204736660063619838333547592894794364432185113287395794352684436257884948677138875236479643660799773664904885915504569765393903692487867898726648408793860983245668709900792725257651585165307063683738191312736778618444871529650431866925449072092364970678608103622391151758304585375702875229918007417813105604800863071281210221607364222697466186092327572572625628879440985526220200242818416472436873616845563460755609393181437831302917619523108120076008998625783080425513105621382905177739427496599647373675627151769433264044112759911713797434856903854932835514162120510175559698335263831850382462076437564795728070431981699388828801233153686858259524069466049486849974549837672191830680235309106459152992364448992796283373387247194700472830233423745515890538596203048923736809668953944009035785978300563643585178422581156771561081195050661097273140682821241678094820395238528858102784726548517035310487279546883322744426673389080600620323077154734274945632584827107558715378504766406167254304458767003740495862619598100469787628182552852693031434566770383015346598477896469540961894596066450133090129846615907177471134950400404523091117394948317420891808930857578617828013272320205048609564214694590338561865590972700591548126276003805433749481273546711059684093023358311623982206923326201611944963250479743255804414188286960692604687557059287509752344834893536854319787918901674852050313067133864078116613938397932334309163178209247274786877831824036452758337823712658837818836130718381534967932460206760353701273424067161665260977534541901716189726864768877403445013570218202239617142247924360950969390174614289498972896370042693367080110300808118804185881693896503187465176784887642578873217376017239823906329431979136646864164460688141893446727629849059943578648459152711225719931464369070937993056919123618781602511500784224730100785231790086800011967657529751466488466296794755780290076430141434139890695919842625615431698330590138351300674866714010905734626791820796713189605597065247878567249904152159226331171559861174260866696075860520832981076599014019955104794232859923565189772069295816460831538598802622147386425389871159978803863204060341110659449131905162533529338376423243140164712774806921080368388505205559905540035679260925987243251339526986818017985894095033806179800572818111246060150543389626129582484828299231018652722887754251121178118639235814875441265064657268963290203444578638263300402612606117595936036400467645321096295742878651236398757856742110507303826657033622940928338182783761085947942179845500297464422600662448492019474202180813821092048333946515816548689780852414651868362006479965266407290654213552563578844458149988233783052230470860100710357619412031419567550553925867787005299560523684649346995361420608969451068413138196934123266555219395930016670163700795849441467320415044197416226451498584284604809583048201332671865536206563485765738919952360249954516726149257849231348852197868713834153421342283134453484911549111779342839191463973633179948036621156189423592830677121305160091968602636933882318579469270395236054502652211541645210454433715451248116840458470319649704469445006276900791946567568458592380488518449861676809055950092818174995245431514340545248537604196214200481358292685727732717837314464785491823142746377626504738311807273374082017564867419143872754326188760824505423219332064873341561909732809565194121851088641050473800944725964198994646441517846123177689034115740104048930682489332970608653911596277680055810887103371331910373682518422952783295360501375435582510937113831729458304589495001438660662675527280112518334119625851543411906239083278969658779094245141315696200827500103684001600410468578739012528481423842492621969646750248049606305126980059397050892330429839582269064212634135292097977489862186009067094040796563405226064464008161923108530286024721524954342144585286184850929835105586080495826668125968118433867915010932066210415724214673232939239240917439934834894904704749463577450784565630213501607931827659107039058128729521646857724920074326196184741530264302415237754676081417788943711644510777470904695135015788998595660100479449780778584381146000337669451691491544890877773010302817999715546079115504972204967386825703305904838538742912860615485208860764802754122720526146376159034201118932872086742782645652057419919320550837663643679211365912639166766389918419855899903575429470781864154267197125509134886124815064819431932105226908506412256491821695563907539059619371119933627735187996656544527856113537052862194647237249142745413774592498059057747687612487537547525317507455688038406028172852172477630602805984691529540616705228406247231031060348021827597699869712141951633089320100041953415356295334868790501780396740035333466944604587378521383908051956393694625654297129867617028227806827897030565851548715792172727372710780730114907782271416432308302138783812298899744961756374436734973852206019307593578076546078033297361501039831371567928431745258541718477820088250833231220187543359350580670057143806007712850390083049636178632325160474708573432502837980686008144971064430063078517257462729753813411053891698164089267827531873871791960392374903602720817925658314500822764370396397158072534725104783375136970409400640541763610676648650904475134993609740339207393423863271916295199550846036225988135099420956433872434579905551916941832019454239284545338849650867698055297949722886703132126100908910338669815827994876982028952208595467543698751856212855305473689824769623161018724078479822708820179821269469944755651053594187351163098099620576730962115382418649739176912884966673899729848622579896194315921945367177773928590811284755942628263296293901998692746404974524091556811760501048178041753884930252662261855515536056198258930939527383490585669063856760350978238988550806669179814065299751764610032519205692626269827336646207814346139581318428647062939787437267740231947162636360430128310402002660619311022255208641800563051096207758776557160161811768134296995756412895263537445609383617848706864724213653729261813882007196941622578521904251413158082104545148886865328570897958878010841271837805904732249717923038899453950243892842577609025106752737597742301828185147401907443233315032587294646754573597759844190744713976428388396710175541246410337835426266938556736925587955127708314015063815479107767960571550062437138486056920706754992930588297896426312733097370326918968570839786160241517023029872887622635072479188112180836386728301486419472505164935162301190511697950060413076355795225275928747107667012747397956543507038843788291260768738105646278689620491559776631981701000146029040063294242788602972745270575791417155610545891431101927322016358319431450869139120669301233368844394880290975048615347889934075605435942359810935302765312877877386984960999097014256259327079569590998547516987829419697870703357155218661539406367734115650668512526954910164749590864864434245461098192546383067070077949974265774232393290534518678742077900436640078335508577734630668417389789732072652054158304618168428224073843417706623351110350362375851644916683028172175420909622461729045552153525068187624601576455166959713887568852695189393998255197166922581324012203184434681939288665661935896366140430437726593199203566119776763313207973370498966815164228705844180654751336452148532791659833451327469797906738057853794362699778073166101974854787717469494392146035008554238036124955577246745985001754412969411363766262235434144857450634776039360209525821924426736943284255757776085387052526727910890839030152165451884062854095865167846261626791942208437880861917078849386531748824029806356102753812183915585590188583193336207422411299764963127422189222700456770417998051251553622967838207438383283878160024142539107438855513384802439386679846160558739142231491206240406548314352761554159215676987561486671685964826112275540537854242340756177485256112921066391885573264277852401683112074610581023171411873030264396413840538548428405956818732020156898218702910711761841013367298912806345828955895414594625804265041749716206814081436677949177675323282192398351479570377542365157312137615147526193730218579561367708498456410052315332352845443265531742369077437839554060514809054443339754491824195711099226413643408102663482838185188008756169709343255514679331600516695010632617661288173354336898507226948905020135400083874191849571597193103185684595676474714218312962788942772024399568975074614436069841342450744833978754866275432836589000978795457303751212983664445110596087191054314908528556590743101336291694468301373020730082927345605995563627365489781469194739676744517752971597607095975736467282324921323211420170543365519679278949308860721514616972738948241304266823418159890553357109644465818326917473904564889925923980035750152437875903612251340179461717971841889704211821647093856364805790112227982868325234311297941299951468335563103057519232412378434628867383469313406937196842109395440185883477527491081497122622020824617120181001895316322992910898879333615039456138618043466455408786440263415722724771471289530415684136464778189288874096123013773712646344095392459636214311786116172303377221074054746306119659662066109330553996469306780937584307278835116735669204074505580030012529140481112977948896165467166534725219434183657292101620935861307435009414438246828009851809106405835207143311491646778400627236185678821870045533326452303710681561289486909338930289529525254206125536719749547124128828978368512170178084908852036680875485165318535136153805902931151157694190446448656822267334402069542602034730059818098974449788994497145221404416659883938070952429294571111615523494023407861845078458129522030885482035011006454847463019050465220015368018531088143067069148883297581167230085249790266886286245682867021852861255649821659118611652842645373417726411148509178983714015218032465938587741742302098330296092687551212535314241230350044111705065662288054370802441373561654734701989178695473486268813213224499255092080269159138177136481053282291362715083877603064710610472218553703840224254654735774394675772390488128428511391436098531044216267551677308786726006638981232918643136562080336411289242577078710969368050250328068910282530593074425678950777806132198370646484780626784269066705616716463947166616217748687360185516444458901151953948615630352112878507068814772936863369899984326493368556644942444003020024501060105078698643420092750673481837402986733845472541817339593007529433992300763456734447746037178329711562150572879609146367590347309269957905603759055744699411696013875113315402111102572551693398346108779068846617366602374146825919721786305905833781864779012333206159306026858997982666325842782624024342849649958121648079860229571883489466484772679685423514194248035179054558307722677956202743014207669702110732454935475046078777949923800667804026252692080017059990383316523563549202825409845453701118686241087481966155559322209416072723451518283751387271768321910191350965453091944522587401290185483805757493005760142378569282188117343716357181774058155048746054208028176620853548173039190410963272325492062076993594079392799659461489673067645623956299992557008227725070434260968434443808139721221561400329481824109400870555230715225868798134601169095984713215072618574449882124463441482128662272066818621001340277923162336636774201403033879660359454670131710239484849464765356829426754705673381002109235234388779869343966784086035468322337985004050497436576292081463386650109591238406152874485391880317636475037371090486213980403592898083341622011153252730899341680053816767933270190137011380983815353847327063366406788462055029386342548062204282413732127958897772569871870300592912792701926470904273849439514659858042512393798757891189518980238113385996876601156968258475993765776121040101902752119599074091489973918147659139036460781800700049593031296437449024912939503101635671310434547771901844167388361786780192097879746984044614576800876500321011574814919529017743999235918527126550482071599656057046325778578693374422966699530875029158942582795820663543456002057063291700144183673653870063733826774319021777125716652007748925444713187896910887352599448148148189260590668652749449505506604337797100282796982757707986276260855933183897073122383622057085897094426893573834200143949946595848777614940214751922255761692609272117608544799489572200196115555100460455527338510178066369922066359729951260958527395634376328236307968160074291254834289315544480950805295461252606224566627228553428035455589696991082891035443726523936362753254593536598504681359267916602672277290332711053111333604518981928548651095968486095732762092027984037613780854077521820282235539084868382420320710050388171815215365827043088759525882844033437167574207146674229340356684719800087608930857100908076963524570385529510362729177185777095974258305018994488888222557919593724014453175860583191591315351040775992616545985137935046648369620933265467846223129224755546491412125342171008141705327239254762160495641790551085325098520127138333954639512774033137167971005822563530062519065566724796004809808398518651264104675217964321404113197886194213221665361302305049380562942820837579497483977480509177952854576295438025245357205140758096808472319410880351540638710746248202773800373444363281632771104841348299041942474790197319412668396542582259316953822889738506317900497570217059960543206672714093079802807904735891136452576921798083184967177336385732725914793381207699396099459849224127626133262643192288215833153558624960721540975923122512724579233107170231918746378288220120125434826762388322261349682758788516191798053800889203343643498481237232107355240337179529858197583925354073258754340040369831741797727489101849818386603817766762730660279098196990304677686563134755227394334140820152123006820444407647541208908334186634557212816440579352725309070204139994599774017817149294268490984194354018312487215316854143750656676656340968730547319561004805611675398774417211077782579936390440507454327106610499306066473913792032336340891065428019435175880445234787348270736230911394456126279908169152439933836973780213043855809645757908128907810073275077968480314282941288749078589633478464103966575254907205008307186410841987797579435304225703404936269807779050790077159409667436959847935843316950354816706746089891434033978889866775986433132812695927299649637505709089240414085037564793469358000505450326045908295995213479002406349408345338266871343415052178669585465889045477690685854900444658116560599012596587292287081772648778111149617021327442471721225578437460406344594213715775171019315029023013361306195235178061937380517955972507203271873937718564780257433556692934501231809400225202232554600464227633179373085038471224320839878363919936005030539434438966103676358768715467534177504852784165726871947068582543623352740921930597561098309919846195797560453889097307901791442059765373336231396257355481050469629648004380141182536440269133969796497193178726173921442011853564475422997234632792475408663086845018735233609384794144037892800509594048185553469471762681527010366188172119163154626037701954487765573177938827355425400074533035491821991702147814859455534579280018064116523414980534615105249437944781647353942776603630450831573005997805973170201992222278502397091277670493194045553157428785328324710360630495769301420575780544635200076706616510223323124464580970150338719632191461071977008741458754090559364587930167369055773197203591319439756279454446767882877726754146753009638052064804584975561420608543161390170845472404870154594782341082627777716997081476777307412168959045235251631014635690906826530419425715397489290883621188740525677954631853741613817398170428710108354098458993335465796288775937663741508706247575252106042568131353561888485827461298960488583332863937854332279338513112039710769840717960718501909110980598371179339884112348817604868305433060202116375125888419435060937654795052187801828079495228063938861714216164171795317270649998615351303793736521570693765097807563898801527567472745922194973164386503141995907745924471182239219228954563215511885900043779489834444905185602672682111178839582838847925288288119264090617781007332755146387045285564125129715093430379118328847032391595309284696946773432663009682381589319085767681190318446977097679495081618230367151469090832123185537716764302528848918187627854302666290109275175418173585722551756129921898825656376486276445904937407070489811627620783787134259855277266499169712949718517315915205235083875449338851197372601967587284747505696278646981075426558022113316259653712349485068662062707320377286462728409067990217020851280246324066661934116974895410510500831690253383740356075987234411835997674690886565019351531360479289325316463848855424712692013538043384853098519591229418649058842924942973946342263227920674942950057777686322709949216343644895576873329459518840407723561308791236955972882926622623930321518825652249204421014824878756562072642942818425382478834726885216626489768396737951913055034069861767184956324103087818797841269498810535060957249998925411003763756302283751718384580306334271574123934576288163192421070104516071969898091853292848464273696254183824659031168226188445531164730287394412624690561081889992326403623427056614512607870659299976345498254664570630905235425743380092152209756760230613023315854571725540427763023593779283080879156063599734092390976839230576047927975084249054018968414628139599211797057198637040781593745270198329106291051128011562237427021959726983305873688626804514710317935613687073609908416953863228486738631330430272288636523090930929838113738108804335867328283631825342454693251377072727050195404897990102504731695930282005779546345012699455420545240740065666113436316218577793007718135961864671437918957737638726725729315978042409183586228424141693986650513208013072980557624226029611388707647703927031703906179353354413119773790326838449228165544590327557141412526704023131094107284400628879750922607618893664599109247749986012691847366577604747117899308083167227876585977749603274980066935485629346151114610571929684640101246725427575251596571234626008772230969300783205520654939235732622811729033051378629369906602365433301753339946568689582778845685105727098403156660307940639677948986520288345720082867669746565014273163059574695401074342784965208203941345782570646413601472455655365138793506222003544810391612438460209757886530751576001967807108397797940663273166870319681624478014803292203181785653457010739654792099383829654983306089096581250103575152399555427133275348354619016195528368914289188617914806647169248992726744099209013661676683547860066408924366110943758693720592076469423718568549585844084913172970002109966161186938472948501947248588197852191745085641555477173450016681098936926126846865528894876158425174088138334161572620851449633441657442568782351417506693058915139918309815814933504529561733156188801727742676707932581729955686750542832571197617635673712597064831899041922090976035233688525940284309546168055517759164999547010536080715537254642192025164853074491373972323737348264740395311575031125306383730911904301691746031574192621484067869540076924198663020837444000288139566972717977016430764812097248629443964242821730129693947724006547160577964951468596196125754582263943627257812419081827843574432798183478842344262360416551329993215468591383441048739856411097342419323772054588949528775718914509337354864591270732831184028118235197278821747866509199172317180385495105920741884480591677152140168114410569615235052585404615222044268253053440970890928170037575233953134569994225869240651544957848580611751935363639480522671936876322326483976810589598286847615388638908572193772423982409310139325066798672800744544782406324070175812963797677453150258623301364585599937150118624210688478283737866408819637923620754507314848215873032346329334280130689968803467653406827844358162799018901964693010110851666473893086933665608879835203971157836247503783644036963694724388356462500474825715817451561875033830120971339284048647503565634086786354724231295338031029191930485099099477862447451370001680889181035650991500952091865039438839792261549000049451805668767442693840301310948139055811389064073641410105777788647442149928899410990868374139412726702999648570883611422407599162885129113222074400161151045216333129849055325676339724096493431091237794064744174622962975598987090541180457137846772677590282340560552907350117308942485134873542140292327329508962232287597002596184902030020498958040125726218455377097059043441685803502943814366885574639313233432623063598549755824677532930622281568822315678416015548569180015433008690986140508741347042513743015396227039962666274394872847905201332617924543379571302234689665108995407230606770934151117608337020678618894942420096157702981325393198800076391786428865016382622503933841645854679806623703836810226979542695362502950957887933113550560011268938835266069520007269480167122665992565501372145864602503755943502768994915305893788873798479197298488402440394282332212738189638078392959486506366380817245568620535967461560055912708109607998632936216156187278416481480596550068886527810615403968512848800503540034223902423085455954327808167475423378658897426499685021287297733909991623286389329817430860384188419519892743162351146194398341610849032102048105706491564194124045647840786306165113236056369024158618807952338231806418625023574259031571652426302103572870532579902872374295132428802822902418731821842013245002551305654603509715401673183357062377000932529444001826936642203269039975652147195930730320697142984120522591609670221420791966039124520403438928837144594886408153804508267944604503680537472276712801698460299604031232580671603309998158933832099772027304379461201616942407537433810155224627917149140874102766023138027555285800834352943432558689280054323407444652182726763810630752427155022040433254654114943007106586696642545434714911150134586924493391853800482517472824280712089718736018773016461224643012359154443405160142277678950982460787180182543995274662885333340557900485362098285798135843237411266070174055647784733410181375727935607420431359296100470569115402765047439676696243781173745541829108774531806672594995187987913695015638308866343196802762795418644289461118493754133908944526268369062159946329474136043925889808606414439826918316872904915918618975057071227204614182556555106417047517919336917140689771636458459140527978478311493899933840048496516521745593741810550813079311442116530818350143155128494806431827887111399200921709994740210665046816855615043109001958484036242575418214531961971087590134400620776885926985172665530241436229402414709308119086454662969661919216922453201297625909417466896471029354985503730645906455013533197303138359477691055826909770977217261139449431420539341700869576393812291422989356377919430891345650113788223432157509745632060962650466165438462224210275519682727621242243615346229434096944968751594064723483731523690346000455449107153038909928760452430905849536900196333301468151928988138079965144635750603209396019738444732012251333064495568663048884736762123003549596234948577734954693127085541347598996970327429582302200841248880336315764626331694845172007696082830531942417007622624640999598050697782608120031156812185385521228701556052637881655729836487348600025328299711756250010377019922267270312969474983398279945847653008062711405035190721935807006176356853761901476960209932256510153553089354194407142966286768134627246813072855513483900272859159496304945710835019398991854571496144762190552813654399919287451533647559190244137717197000545249546164853122280592051458212515183069805106792859610632246288714808749708457959298849290929589244681689336781541554359268544199149154779997055800423221430635696415124455920003787854770660696581465104789726246816856754959955113980949445786156588956550826219475450064751932630095049971030978220300008396185840167662616730894881715736888282366635541145427265568389158826796361956625567593326929232262749998501259441966827950031078579365487769361400192877642294692425975597488688255282714262360907145423831309774028124096421917735025006585516951755909262765838761500020587989487170242099792921090777139152365203844748675833673980432428838363148773091531749310497681688557816787827972346222682990635042017339594588896615940802990083464619027664999607429200351752348155392058917259039644163059214647153536647498129319263452281010760163521432257917352280467791531157128729190343117225904848486608984679927081450891330744966158607412361560250525786357122063581441238093076642721378426000354217590929848872744283941495724274437497239039017794335260233925418698026202449437469362394302653831818129342678867303542831327856188399035370878212669338171050023594025655171402266120973825017824153392172851621143904895884543087547403747611934306303281056927442060628228033828231750055927464732186789792109058851440024661910527602166210500835626187342150086942273334823121178105776381669462228482332513674035282283996848317975124825902436181071486510199834529196919202168772769289168068493596809856304437268317692026202533951971179816968763321098584460897645710919917233978932818195421569579928607569696005011916360189756647329841160085945079317309685661893584441654771955843724068820926208287510710592493001242082810691683623872520825397783495786757622220262639931938397166167686595772562583871762107670007672160358631836428849891484027107405550006879813569445954974862504608981403312013716393591010054452388323706956736535447208239309391093502047543272733901771689016385873947587542764339005822053508053116771157876751461645663274376700786755813060273392393432009411693328998923100236503472420461946631965654410596636460916302844104476904753634815127288879168130874379110690120144087881284811367219002042157190715055391806261824713823783797486413127511777976614203745955461487448009782947582707952350691544212438164143074560208174421055426137059263567426881828439118949629826018326970774098388917776513946428619339853057122133987628953680908691298273134291835242575394998307565665550460267317355172733348244685854012659421178814122762161883684437903073863819918848174056912285038023255964078309317436457432927893859265203887428036580725237810829723477827527674607958640953989924377189141290839103413609872528529980689926108493178250624881109386757439941458239703024630838094095146430714211470908150495492845722321455685120008152459708804077557723087437100287259833054159810166188754408300434452177738186877632949348188751475965763666933778300923918188181444775623911756116553323481245795179838690797895834094609438995915235761085943410952681125043081109167236045991948717408037224332577091296128418729090308805177443269613999188015240008725997719706270624401427309291664442289913764384370529730255920068879954439436882347880680846255043762286068727008337856546803782979993747364813494210677676944925630349201824218237139805650995414164323566389016912870140940167636580263289609553760995380242311871479090864061077819163632835131883037320264771148971075045412045112336929792595675135260923484895208734250321676457251716028357572830857271879321761454671879131029709261388735219643829916276610472422981382399148087990559432476927147011383222256155269461128029329235283694674743421186742959554485684499026253327882116159035263824907893172999801415822576841761468186819799473189294197776703998555560507963407727843911542004996508335960802884760818602764969831675104707273226015575021229424712664774321828591985527304741181758862177478886382704236657520576348739622304711120394865912933992494884019819453352329734646483100839068418654164568647144133436352955437032313583739049649218665340311537048232566018884711511757766672049755528087796457023825528944923296729150272872762672576641054553911137444908275667884045577683345398369844792460606265568753882976561429675955696205254401866127669682369801347510424603855541273995646402462940035950542873918491543436536337009738667547648173166370592285112983376576451422497486187751109106587194730912114074954168540528161880115716318358480407302689702012433391193109879708940039801595817357878070939884057418236680463917984023409237175322029355516410342673217542162046118647871630207175103930512221056462337245671313917646580208546654689236681499852323650118518330504372201090876545916720909984320499014638092964312201378835353384338301912164473193080041293170783579256296158269905156551556324321291567295735519799385973442898311078966970477839880828188601412532386816905672042984216348876631388008514655500005848812426951061846009652392966657535940430438840503181062640204981073368847993088441244530632911452709892049116730857145062506566921074164794986789063423568636684632263496916594730721699890306199831923494233381113278219960393224892225077310771292482429218483475761051362570132648083902395006068381242509449836128402929056315588575060528214793720410837893451969889757978637736439544402733396689163534927337400226470291883572127029469554946876888282816533090023877621341325603653607759974782394332835485393976539754516926795006519847800941580773180039893437702248893261379385987531964599831406318131432822680163804687034928181862660812229666079756469897199255001130510034068787266940594148531213301502774233375748816371201846700088964079598324504824667287363750298937786236630711058791781584303914711397655940050503339476987422397234105971651604643349730008240107911627465466555402058899164044927786331770511186046633090888641003229949682346690301801722738600358822379933568698386802857579481774447742347606168376519847996682727860988741231251239064228705102760848876008728422250569559211241756875783765899902374076992808989381127717012014522514559690541045515084066327729820666040222827150986715582088941796637904082536210970376910339031596613359567807419055342160367398867719114824904382356680862303905528803327099758210359345323979303153888789095378905656662162621283962147195144694755262876898715941412736833783612301414127473792412339789579769873285841696110920034435815435142983642428370653504289153975879258430035167872690937597555011561900424649025747673215690490477654494443287611419108714323065873112364642351604734766068481159200204748948678350694649551639880714153674278657987931481347888215341828461140753825357518646029017237570680028728336187395934802616554405848208568611374425300583110269756174829433662497043140403736391455824651321891896977317923276578700948284833997427793215820742877867450353255179667542511900637270770079635200292041308440712995723610892070863729509548410348703687146980827522046089967237666712598141953681170775373656144902031572489397335784669234362406894998414449038126835537220580023723142177333977903903798258412190819191507800663403562755673494362812478295912567456711524092982879936025865945322642574306668068944258709772621779029106400961550039553983631297232831377647708438951015783559726657442855184175489825465744943488576027250751143701338737813730475042724779483285139476243037279599933463642008586191260607067809152849803989159903675542250072520900543712521381976754020879176430230555779996864310682598425811173405615116085422218110810269449368931429472138864704980649620421767038232390389749915678457487601399589242778826675852539446379480399763828957586873980126337131328168702393148467837475472619157412167746533244311814860651877866264498242173421465450555529099493935772638912437187249014071166308674164443906575507209255539384294616173671802423182791108048743512661448742176566520527332125393828940812494251011538640956888393776901111910963595847731791928792352387515257973677069423448203922735647794734231036128366522823333375187590592029283508215303117822276782921407008787952005475888796236533121618584044806062323583649200148437711133837441725679199998284934995514170280261793932171108755891694021647458809855686574492406507426874194973624903821690854101939265675468434564870759688914450328804856477038869630569643141921584013736308666580425420656672295039169348000799546503952519743605096463732506554613499285455229958985816525414482487845248131554860389689670553855852314080801135040464093818690813719578124197955835812850310694051478781247202853780881353592531112532308218345070840803970166566269407316222062100937157692286228868888265334726118051303464455400225304902559426929495107816910956208680399513391472281978900464495719631834646102632649767068176962162637295922190647860784470188420672701209893515405756152267061900481242033642250046603119236700036097265252261502777257244762262051584987744755962666150788643761434675474146431079274131821715996982241742921742002966024450444969516618385310461094345343388377795423812967046072583919256654811533840038400049489408494090903796929613535049875866175665302206943180619997512210920569110729278057175009206316375615576542163833147620395794414268192530852798781471800087996909804308178414805062305307618259258964805009867923549938818051925927785343637561700703447820215427800952373780301159888546588254262676951069164975946885790837801608576632006469332105787530061953582673125990058116646297862656892249898721491513370426510004876623762389222486853245362387651025789977865907033039302003626485565157255076922929787312390693318742212518716506926542936430763609535711876278373119920291682306443183738445427367770851905351790622869240941470590762521486708092593773108957030993056827220920286019961868561878409457710610187759171902523175947072880451386321438916484703615210593275460972958388154540024840911941032249052270092962410190367762494313897424305659106891976057417092157014381710743825870435290558332055056025926378201869149033222977084706360500911058574148502873575996169927432924033103844349324744334164684276421662246231019667110325350849686424128973959263364222022812518922304547135727153322951793222590078230068044545590444353367149450354019545324308534300653609233955714270489379715253045187766601272970514570406793402813237079222575306314813867626362336546338616436441359519370176207475434687133941265117529899374121396565785967309680460440280015415947598130472958378736346490545260401650358674147800811028457926862452000915787716311309321429822967425622998245546697123380085122548503056934546462902137166616092523478665075186403882801172638521990279571560863898517291751176145921687425733779383677984128419967046161263095825110912079258401443411620908047259404814863907809302326593274483554772345924936481991666711101731213152430517133425286852475689255396228821538287185567032435742428786758749364654087985657494476055732552477459636644302302871030403029585087833468165527553887030037243817333580597827458634090826324245706378074128566801636844380884957659191598247450243082544823479215976699927323964874924625112727886252200526090377937246449556381540504451631706992662218952586830546473956522379690608892889602964395103649167148338287897449225698859478744160223172729601321584559674092555919821697584162180112340240948341553178313811068960579086006273539850379525035722747618093480290108195404213682056612216333717415065935685927231600213437606459358974050862369938925979177129193207792184080727179574814218511101512851957804788103892618909073989703062503127913838034496287496174583807512637334005544807752166106890312556800129962865940342511193448166177276138221073714367934589571086303719811474502224445460352843752617648288846960062883960832041501488692701738180501663388355896011037466208869721605978200326219387816472109463409711671620128976098052730023583869083524551599822473214604190488003130423583167686895237831180553000265871720281224805075718865760903251030286927769117407063522804822246185631663106550880452913557238120354403695343129408150117573971950453495100577695043744340261072339370519298634537181644465276054632073683000471950135213907365053557186330063042487606602216443448591661335175177736603259768041217433185987874660957235531299949294259266224298246318781280900216706297109093060129857573281056570474013956359011251294716012539382226890866442107909083416624960440453203895958350268402812988837779112757540807043236132554421860999329995404597868528366265541060508020901375323438560503687264333928189229637732832454285003463017618816823277983110474343847128145064601370803681082683548998852978688304632022338060805519356423080869309408615797531139806602750706693323848731382546481653614407519778964278732318404070296475809492586878726805091466233479138256743005621146335048236017126539535736372570814982462110486025213982350646500619088842177475347308072792805509279726544255697368684850715578038351428861418711283259135869020412367690517509093971824782846932101394734823416109663417116915311212096586390979146736465957975381016244020591830044139750878745476843476672063737890039725498586587155831015672837692478926400340279198689556090561460280506883345504911752341242033022066991560011326442058284972036207462728744934653287206656098563801318085632193733877677505501379992693164606842932270104528364956593388265514881233875653100816491275705745860932054133405519406841578613508888376226408361690584432262514364165392412451971542750550103535561438307221464683878787006608149700985020181520682998180275680155606669907666347645942987604047788419761452088960021688730222717261513594613651663385834391597988491024167102679746354736801312680752183709962405333340099726025697524490394785849642642126951422811685928215206332324280628497853926703274891315694441804098967529153565782792567915104103310573364702504361597133111866828466177484900958788050190203391513445575930752765808191879933971623684280704816800438303943355624985601841858053632253970890673578863833243559275483277973668173249002298094663210517220306018089670273136998889524179487386139273332290402967541244161876057714873530610817853063352612023918938202317507021118411208126687817312887561140272541796049949425194922944592268486338952252745258530986598338750000883096655361855772309315723333100640209605266121951603494020716490212517574324498984596572340483398245192951903391418103029873552354745591234871941413692472662087056075598486711478432178290262823231470821349057528790324833435194041397047499776662338690687662894884413478661674614162525843858554329752636135965620037649581895346922725297041212535776720294964713738214648316408648257694917716423175763388198558106300481909524956314817297692767358140572029868882955928765417573800653584840308030374117589488790653044621007563643154531070236820180297697230246703701888267161007781647964778810867053047683940466680566900920997520258759274041450573530509357705486897365670183499817649602573203948089087467715523803420130064252043103624393942230608113754625978676853884895983069851953864553367765845036096664483776365950089322226560463181994482052478215278289783153793967401917641540605058533166135097841658701398008472027557063008754353560151846116318604039317442898022556329805465848239281698379927269987937033206525860403869625956058949607667315941856821448308318347972478338635852199349774621961559074698377095720283263826967386522844442111052065153228285014355618797001205366380564601172385832251022421623219597797495586602953785337447114053232469941427666548547923942647675976827171866808163217578086767189437874260180462003783549968822724967544529811218146501422255982907741389524922251132139678487673099768374283852977694453677440425501981552711327943241645112460099401962677674209906128803064536286156500855020455518082710005082102534251364483328722252224220226002151042325170895373254578085705679119868501695639166005560990131499637749010564678280291859471660277958343954789780699932676829885688460534697191632735906127419461156746734404912010382262329435499606774446039912937035225096281130912367979949167218004708082466364233908216392823084130138983196398047073363495453201336755290904953534219754912021224627505785924744316550674841880668418791999368038225263639178799837217129489341922029997626764589111720481733847875875517811061314273525771331414678410745446902314230208431820541734782280700282923010330207427232557806535434957452960081367188658607835406753380574151822242871762583301584457719211717959388611933927456064023744814842219471381191347928636629504936676023182539625502741917488603597475536590547049435346441080411385370285629858073511141125535605848164865840649750291077888535761745032548783322967466017980305683453614338029386446553777106036474842445457475575073431893703419802656753728890557583275431314650010301315097340671369531148807188474101020459398056972885266085240093840067984748030575689728909134110728233026150611171588616236194043314866096829529651376250730348719615061203275964374765105636689200780358607472932628353629512764805027154133546568112187452295389711208127476582618059561701677363617806410116768419909893556179483942140363959363503292722102984584648764643642972424710136394981836856488579448015972830690114349491510064449506513392551625477413052950939902918991190695943824868762276224648813912955889686770663337087660116944227854940170236377821086521589829647453039036439560296843243912074241531599222593393306535911254864429084890574653875756602239799327046745793010155139636717144205621833345381860222938260198359506599824699149459913122975384727995618407468759688972797949985208795784584315349980110396159908954673478257920607434797448159157423645977897824669065743112979719780830642979300790933247907043787051359035657199600612505469915036338278865255769631639918675741899894059663485711154819489679498841292963634263050439857974351502410650403714372705314139556002596774264086563932731852235640366369078185303434699612038195805430180526382305345141625230687480276069361859730669356251106077848796758798364374053929305499224960824587327921461299466816911527910415420650536392424881151341648611969957740971235063316988475333985361090159847478755495891616472249069923206410527736274376029682121898443081247445073193961940120243834627001392375143985221278765759703923192284283957219684558452927754857404899273083637057831799784106254733019987217181436225715778882655596583056868840756713441422849294981685322021447320911640367763832243356082818062474101276287581326242518148808034097664241490818511599419234080688284056857631842370964853279013881039760159396719537088510066775497305391461569912439934136287360374791241120144879446566500820905407208111167446760485114923100388451064217703056860026822832211850095373796609648918853400499991792064725066498294027513693457568056030288424491340053573415110293367318907449522313308391659614300097657633876657096699243992402141016446041990372980752445805262889164594911424677269804035975023619556793575477545473257070218853232957589515296491653995105649861306497721278693850906813297942138563421328017601528053323862476211577960197197277122889387800311931595347026998803197322243227615079634261415915149653981415280983495905637877305437284518448550719984147856849969299383745670402212513150539350020772831430303134544308168635233054330050690206034476585297278042920325414717603132379742023403042024086607659523814302804574202986384255205656629656222627226122147508856049932132943701693003319385263574422121214104161797618635382840808946846098061358809237480857132653124702400790803282829630681231577341389376762072234141696359964794532680794042567933095502045341882334940908807660715910450836172016757459406703559331917002943327142884977741079877122176829888429703362036578409577241559929908426697788903317420068121902342414405979485510842579083230778438669699630417216187452007879436695432868711831984160839348512833122357802150393704694540866392995603349197368228299090141933151594975994090388658639579010721746855368398223955211854188259478385630194850365533634962377277321083401295241181081444642484088920738758901955231035211452108665648231050744956232781238385203475837813521046682854004138279158744952004872879733067978538051982336265851260710578272689502199364211949817276969817333900227196281048379800153888585841036108615647658081541125935112934375757163226309688257140522503424524977447956623533420411565242828867374851033744054792729263760082804656531486501023281235939661588042964745879384989928746801126219204408963783887168254127981903820392972259942181825310072926243663212114305963934558086467373758520396535095818027242604927266187151635460165514843193376513854502951410396235424679620209940506672185521107938330799792398286380763211401929090205997100179634706823750686965608204966994329099960243830683901193089433999313287361987269725116589316032178970181630704256125998682288890460880150498990771005008670424628581359908518189579370019428834542284663826844160271585003242831658367278581791965818786098933149422750955792171797780207400462962568149464603629011592354860374232986904304237276473370841090452940785600761487548131668951273092586724694096524450687544652978984374422741883852098795062918541394926978274657277317456129182279770102906125341421263864017636122610665366535822932338507221535986091970333450758827888620741178542105735427292301125346313474327404816755747992588706612038254892227649569200532720025452011241898195710765603478532565524853818327454958457489808274873709743391347072051314277779043623123057836337961681848033741260022318297934889257838382182608672471951847784191596160553231641434366946380122596646748625528388163746802398911759071523802355160989410831144111864072313320218343748184817894554843797166992674003781441741378449965644358500373863147764601113840968348980161492203762979098142588458646825541590815237759227750644697624932763038469816006961424465595163271338334210173465176755985579930087532577367125348713993832836421139168866793652791436559213168125267202548366732494767755823431638407810281581532174627725106138644024567549667469464403504344064068881005662012175065940324148583338478945401114157487778864427281065957762192301137924264419036288068505278232907150586801840683854420418764883971393966324390684086177974091093170411250136379403254069071376348240298549990753803569540615406756095852358144078869689849353628187973381260625200345837527710003337896280207132392820805029601341413029961724786676664676261223424502739482828344878680165431566880749837035582228169402353730298083806747836185109154917322660739836784707700373208951547914259841495974807200514526712861306891708045073846590099645160894029384454009294658845227420744797601305137112486659694055820288460176978107715629652817060882191869757225344711285961081335126546688396177382198545465287820548534871863943395477187072035917785495598032957827362257974936453935299346091068773475884515584899364482076859516422521844267663029151612191181127517381487157576339485920121530537940443835111851982773957160033111261546949759860082213854267262575692584734572107513848533739157776073529687554585824216306363459606861073117217949480862101412671358655326440230151000278745993435582668001078228137793408776481416246017162741459031840521455067147391173777115986110690074402531977952145117360755843221668036783761698823808696220811600752111343518284604403829348528810604894564578857815849716042023424302869465083417656917384913661139284606524684313250741689216892286161133817914565642415376949523482558850036635981936497210449597853103300916712059525068469433892449076102595473786017721539145134380244339795688682391303224009994763495766898495613600438001360070568287027927671842230270348718646095980349059697128660315256586834076405567384815141895158236887730094233694387604257540964830924098800696583455174050857067520008409114305408148692008055782408470526550620271916931467217097798606986138028381759751091417918097874429457970184215487734647592313375551350641360096129627797276671876314088053810226509783494023280238559352997494895013641018390705334571744484352941061221029862787717951763304351232021450862661321280409483785753140082626917137822077775424935995548921167874146470943844939581622409733769447645082616685057062186496570659480239818913993049385899913649426493789406267905243847949091427198669790748991482526765211784683957736031142205817043110098902275879270194999522351933735932726628180351850471207873074316002074577677038147730918363043050796872985025717745659618819343031488679391253435430359248197425113162249366327055478520628888234126612130590049638682043732975204756720751839092677679233423041882434418789743539013057209547030441461528681403413935693947860811439881336126788422527612945612650472845205549552196374953059732565753369573346851142862271889728161241614560644548586342852934950229919900456206065561336926030544464424564657997524500615497117380027038403000961753551133905452740963969042509579295739490740013682456190062307884512998715866330705325828104829228852574166330491984987072419482243660938031185081390392227300350688130384500685745665769632198650724549454932790683574765777803582942409414155415687536062510942910228146220400726932257075982581607378044628855394658040851986351784439494581771776177362902341662415615313362270111328484382265485953338339758876857027556875436632928948703331587730642420512614712904832678315217182858467799808011490883734650211467553992144377599838739920096534196789965496211609677378464036530454793266127983406193142743735653212729550963054648969557547735752805525461666733343484630236513554748192889895708879080648795173385605723615555411238670618032425945427022495852083923261983113418218307389083183981497261072134840601281071650261603081245511871273839349052697994844572239976550171052207084219747161751874276914218163317464268892142068292976243977203308743990367542202237074778864956258986800156507715996286653321771538061481558779418509403710995231141011613364882288026212687261262625357669780616757942026781581936551955741954376665290221276157439433840838213024120786349964451061065274492882861847498304213605050498116630252106817079331541885608882606486501408842587277977346829609379819038742592261576503636604120201029691620216789827904146531226214892820798365395574572582822926169781590015024719001846502704210289531359706054803831176990180079479377479804432017645462823124260886152068456951118246894153842510385293477347923264522126507040753854565594424517708301043776489184614596900647305974238818839771520460311868243090084772021872067731234948046890849673603392255637798197155030318824149621090949767048387676855183148153240509252653470753131770481118208554359104076077216199292745572688036712720637958750676099813249488844990572217320799698151795636512639465351277368091006713262314007948568572693119295807524505752824878764121552823925161406016461146421360809015491600333017068367844266316922145419480663184635921315771712520189653917499116679573094700196275027542673410057958599112776045762330265963058161872499262514654816842950303630533330781594602404191194271021594718166140551866484686871388153937753607524802020359965343568144371108506143201148636642430144969414843713243788963327523289392273108557515880324004304568285018095560365243062702718128007928145678970024365309198359270704540165968053683703718668298156303069633395905052458702200573292707556526604995187781200338082500285620573467757909602733788062336637655022654321839139693385127854953100277073476802668667706442464862353514550737726382735413730576773605904914393706232647785209682395031963445022134581877422716650671230780327971873118396720057318955934369820374708724065437545924954879941461123408966627907644771170036621267735227682451734053090718145568813314006428928165128797728822099878956089917360916633625667426178760597189974389025942527472421741165804012072281850306131099796892348751763389625931435417786909141294897469292643887877504460505666754091695421138562946994900949909463022226462317022115594163998950982012619797029129132703540269857056002483278228036625595275164178592372413475699394885270603301511730253737070870237907038690172809966227249160202396837640669995075508295687916057057944770053327230663092759259386721128214365666265740881489143876836779588566670982005686705691377990686111420511299970691412014833064862711025557296524974522126528289916664482654981636975866352025591443243287006178566476066958931138217964436696064967724051939406753459751848920239558569174712491250122485404800167195589527558663679988478144703974182590181863800067054768448584681245179596739276434149138409503302705973963759757255396216381133864311790165311555943430810876870339915011775048333155768747419959164993608101835113322246152077558493901741690627485309915030120561901600671390290474804936067715087596307955317051996487264305828362351332413970479982081436586388793182832179748569967785817421714659352694063711319595965551792790174706493791258086034884182836229733986970622184163962594976349995885098453349912415983525559595860929406062896983041543001520163914964531921416926737282381195751388577720223545454016195075926311800260858077880998714958426625912077011955389936360168434288600807307062787867462098340244438748099265342206174690065639586896127066821667087266789951191907227232616092360727006250311611436028134291536670035883998951886497538553610485063742651735702483122385593035291371424484361789064745177534728443925757107782752886097566685178224543626270699976979464117287447060027163498345575407589986196998331311962118916647081125820578369692737430700891385449357295684028011423916222785278103515743497202441803548813753430220361202266432179651629318565744829585525406986141022424447045391086341845217798667077343644492266202828750483034493453365878457956958300429774149769721724145788573708945884399460388674417976555207070137855794068234542994992802772886034347077577128424641335187516297128029233102776337208663482831554715606556702175457741109560358202060016617949213923081324659544455623625513532878977816247000641870981439237398668094034813349170072225567280785823226794009566260845286098141398286472801173385602564424692397808990430251138027162121428651860611954839956520303657709851507301472412472423852133491416841515355095314968049985879013362750523239613509624109620040973127019817431982976806285339045186567488615263374063790280934184564010583729390749004372975440103425390812932104164597208663579919089465518434582365630047313222123539111271282782872578041830486940768040179011023568211871108054216665156539069696352904803964710008193292232391096340579391759004667221485149742110171962728558632414741276555943277471521075272550097919896407360559682051529622954555082893549363972055572056172822790653232054640840601793931467735023840718522737503530567019088570724986070810264326793761834552525915485418464836679681392540335950128242238575289863835118456286626423927575985267699395320591082069944392091380426096157219995450579493303766294213574858767498075013207431305590971077047700598516934983530047474176088865462705448444915911350767896398639903939433939102408158854502211091600511616549416248812095422590384399229947926980867606774795671427321706224032433743404334545563829010146699456302276946770865354335959049793145052425017614738645308022251775607559279675068511591401365228657099407170135604081368393435379287117916471800286067246344304967498980244334847948067534049550607578953873390274944625739012644709937862760607230472920843156526634400839580311327555463533833126088134275816371314562483500800361864261561022537819289095720107949905223901743159996027673057784227842934692129669216787491753521643905253705700548447353299319951273836733537031721522752528075997617191211045188316514171886432227507567842840589187887452951650809891004892343166480667216264040794716684218935048560735226137126200627481915997760747516207457668193697527004689907388339762903105649581979620542295557041172850547464585866727479061408380072341472502392851666167635421584198588172919656278395492064180481612144261879656176820153528039943678931759722587505666781854728949436534620546617093114695768591897479129069934267553144533696660216208485302623707981052486765280623459976026161613632083186714703247170619740107244981679443111678258388330175296772033313278157189008028667896406048325917396690025635088404710431257302642651258596416870624810437190949285607970604003160005318108303796905384666061888570322326888730154974864584188713787655849181076108276944730464901965555671385543655545108648465511915236129522336189951890831527853369328135645791536714365104209955146824749473730247476237289637175553272692413077255965227713995922825039817270503900765904872435393235246643018326016651373184647076609863465821615501046532859842375220474968495827466400887677134966731205792904688780976955068432516585925457995266386752356785885146002836133497731552188958166641863225247075991127636821890433234860962829638242751747898340827523791854443696252000300556789675757913720583424220681509509762757111562916197857270731337329346963825135140210227698807620329299732569931565043473786301343414105379670664339519607362345980924521240123346332279280540929003580375932173454917296697133948059595065802199274913452709252108004840977283361507910590937335741722933301233152093800939715322837437383299171663175159089323906668872013428772815331521480912854391117185169249025342841130313259102544748237391329882987183151275042714802771609610808866825711064150434677756004171610101608829397536826494277161199588537851030815957757953394474673082164674336799646136635966497401345646024728461818517798645566701229886954840239268131594784278559348654465230320328819928841665817771133871861092223169288699554534611560916537975444719217520960324369780395959219588415560364648099807392081091581580089526169193793285850652829176718630242307968024193621784968520398408670819642753559682488919203145140850224801983409328019005698661815044346425322900901588889013781194688953705339720651841481729926106460089866641969641582529836296341985997538329332817079828718282382811948066027549709019559327991389055446930111961507740718710054507146337923370171469577276781564728283110981395947976904345744660934885906506104756514934367256652774378145532919483606552160608320638450105348591114986034781947952203640220304946216873369426503959964338199961953987797185869599788136797053009900577318418651843983731698883001812046315761838444258478475223348315670276079852413213431479672828843094203004606346759279915691152593583430655783561707790819143113819062933498441693000341180559188712073544873128421028547489504525214017612456757614226941390179250036080207461977415542185099886635144879712948131842392442077423318123641654932081042785688246933491353175910397263770769498489387825145810754522351707463025043768845991247674253671868978288266585597195351151801226599604012897898412683917639843537493915817555469911266275814413999288180222159217631822162077055231073747369685437256426796490130140214299734968601270412735700355768252536458247860742938365273852655183583803616527888414313150740936825064015305425802606018556336445410315461435005297782066710348674501307149449633791620451113450646711519399175794713419794246026873585703272724489140256801842864444953365522062057584357837163488399606576529474305303528532179225021900547151204227304586404836843033055176723825396661973895996622863932242094656273178587301958960088940960499731965495087064759551148120824880272404665887406842484843521585501459788889971284270399357008567476860722909405735670918568724392977818713765489899954089473694524818934661411673301433342383384372110244202188468361159116534936654110851991782848714016037021897518396662653860657256208915255283623542759564347385551315133469751027962741498719914755679253347562400902123843614088163771926047125924873615860229129450067397507374540382204649576638225866857705218869808498005141061432078801958622959324947181069031622722365609565456331674349102453826063060279466498669258858073908146546327776470013265671980194102027194949060044141115559320822386311496486332100557797522724416714540006526851298767585027707562409339208949218763332065578830789469199487044168946755612861166383772383688390616073659176932543110839819687938927726454856524769103455196687271099527097247391776498421114926106221114306048044163072522693951850976835242387781384590073036078361238508955675916602286849278858868555808183609639132124013876644153011601547005490034789010960912819483281361317017254350157785420725464274229098096605841176158629320345840151170332316224916421556945740479065678320432262029806797830571541111622484601283974409644366711493389755888914906942752660751164295518724869323433777355934219984273811066155708318571254707312094201683862393564616771629853975064831501407020200878352749545620088594634707981468943336011618803218698426373769814120443791002772401347893574797536523943394833522654907139402257143371975733964759578813990308153229779361827666712508080641541244726869639484559386653660765632540969538486832605589345198259262088320295170929403243511244178877074220117501274375199882477490835045054654637008865720126087331583513871790138191519430196457677485960509524847067882006446914051004966638235914171945166338260865706271770159845393033480265919334195922767213462109218139005216567982302600833932233422875216472095905862880196808097894391286621842746707297568623993810009087288273399668936443281446499893866715862716567829689552776844128405886678765158583237594613530097100380531562374645019257245316708443289645339994029343563163059753902892355544834960628785717210182063918339597984342289790836322839416542856409364583353853158194612723429378817955200648164239616597964177990345895320678140315893868175876654110981371817535624210918427710297088268025384744812335746242555556535589236324523917932774882540124201034572732525808792301073646826968939801029609137138263732655832875201499151144068105230386139605116055915957217704346613582206662317770608295561846126112023373311307769607704025051445016027843619273804278844886713022509122720806210901142254827127884012813745334192496442488833008323024383779044068651698265154078672682248785794520545600631167837247117228174415557837679651230342548716730512557437655972475565011928564663554628273611921682201041594271374016958888897809754829336747758983546646682048857612697822024092894535321726718692870485346696623261167047604619445785018254480114224917003129282601793689026556171319175804304990085202272291045059404961420503100628406191203179691732817451749341087740358226424773699135898161343830530975642783617741950863407506584791076556509785760557631936258151715030439363102861915980550746597565516522066958955530551698469428069711185532256063397769030687118945734680055450522436257077047629207153857661674794135238015458443142373463746365401370766956183705628974882089249630528244888926577429654573216396848512541632555299219261365227097907254835914238625419131817102123076742518111845705084852901921613067135701397055621138019544642646832818673023810452611827697812762083117917189597914724846236281748647544561924889044400733272261212050419039183696047428813874085696255233361784545455219617811616979380292224090937401616013774595167562588797760082538097168775331117891570987635010043072131201838040430488433607872976859984508048597277938492562727562225539441416514659316114014178600823714693493770243972233485602871662549375152054266146020079635594071557597155692442755971760218321870551072624662882101119666578515064261396113562296572938925122037849604461438004969779017468526439565165924152227343951733222977976822913136225157225781410020407176404993843040115907690431724692172574383308655619484791553163003234321638314532322778227120465299799055901020268172469975572333955297129990196905529704406709539535957850864785697967087902735444181923974519745293527206363615367258104914467628378238470996866885322174557277055910452927905094185720655862981280269302061793509759778037152000737845401330345730883660623315434511214469328994919776512996488722713459013386446084687641176151753098121315827089266983051270631028512678821015896338052349441823279870688745973816608175681761577483085032407591684356144314636245814712348204178071054837007331901608761671780284095261588015307083839921800356722873200280195578361617248568916466380002919399487211768590012753381822286802620665944178196485115666638501099124134340023053002078390810419913386879345040071766816673628889649081091822973260755484524055947800357892449985304917956393446437114068582587173104499598736121369906303078238888371660881044596132327233461107422998160644452955646773696690384135933597276265296029430086400089091802925704467451386134714240157938375802537021734751911622435516494784314971564649532561570176669681565435582928381707702988738268744756438693567464210600913824093862486669906177318294650639424191412594901231349442261927441777651866424157970249825505962206608246831103725413347355640717060223486405831940632408189637546344603550931563234721886736334563211753905101348327041743612106632062922268160584703367823969777565955560846142141754975322200738665007827342045606698423603438856736986462525966772367644812460357108507350675144852310352499672045886161579448509313326913642474862076927119264941050952364626549278384556960638572158321333366710891074360224512853428643807855220255775027316152363204504997737994862823837006675431320595951517423521237492336500740359644668372007512810204010613899909331347888307181301407337510157918136076280689141212338076110940509990853764875852364755292807760660434226948612824927805270440584328982628155941861138794559323357246040796822385901037381255445014171696848516431896454417950241259166024308302868898987639420398069355872730829453220958262264494141371892540308692307024502872899952009952310968419282496610841305664624402078769439244778166004083312329656064649115520802956611221142602426479013271425375105266556626631722150870946518481296713138048202375724976696214144397489466333279248176920758673710352575316142122917792856193012533884032128667314554404663821944277439373411562132373086355885676261627493043724200721914327012617688108650861296720611028200066124883309847174967668988685265068576835060758625875740566931915028661087923378354929281203362949284706557596236195411404810435165491300143981878797426839356879092385687007927051233392886425544917019008737765885873069285154105942762495029224827560353643080257641489300989672554702214586459658126112492717364935462068935066952417331520477103212771740452654966303271229297480660947131845859149863154467393791953925738680316840410809886988520551066282026332217621683194611640277630746258181335109163448758861960235655047282431108714522638758241721327945681109887400561281747176202322980839322199954930446848909330965245138724965986932349158874352773022791669502510458751406855629738609476240787061519464580684536192751105628944217257376591320008517893478606032164426355585853324353834604368335024239911002933617726688026333387902293050718883050266435553055311937990276637659598371788027672376482181963514361550980294893439430769248732151001222711809555761435803400215154784135466033064893331194087560539290472631221293715072953803375947075138832720075244323048562226630085739835746365619965122413019889989388041843811099494789478016915193765225503662260304158038341250880428228087781448617201343350622747441914658493385885585962854479671645751861421058900881783761857720785705953715469158584610124315012291531478721079897723730996818717556134957829889747583508220029092737964188000345691481335281735914860101838940600235147009949112318755326054408591702646713916991796389750983491573297815057092540151686784290197852827159051789457535724404446781012305398679297809026286398699193472748235847137193371781100650456575484273776970783426703505627731633744534525166740690612889298219448532202383047699487173290342740411348502201589599655482822815273069284132194605522355504005206225324821687645725408529976107600130000479157981125370918859281243530406962909854429604120905410256467631301375558620375427350746925959560353663139281633974504349609846185805611850260797793956107255384041848739767340499841447589579456870062348470380128548475706656845498575495497555082311015566931747299298216221458486674503591688438875579301420637227921227238104498578705690430959917331048135645646771871007351449883173937375445389602977987668287078712815130793313867190273173061540010084367297992856025806278926747820035848553997640350145405392281843706553802811629325688804077939656533341131904119464191057195978649784799270113335284252078669987170585553173462092176639017608311956043130862028560389450052762299798814754054348947917757139369278992044833302791640123007702070607549648557521632787216018362096362793447313819329238323475302682177191703065672143181374688245457431358301859478509155080501073337830322833472982959460511118860747132980997554314099628498559100559729268389514021259273567104839296148730618501788857018960591005032691310048521018327795842114387685811807003381423157972274800149025112749358856909760748712116492522064840871655346098548850012371441906578091878546083691269872643410065047434278105447273269805344551464456571323761265292413423186335422137708171500579260241311708192521227862522985409515270554321871869600078651456878879223379950737455872984676639468886869534011869462571656671832494083975612334536842366012039881066115081202095737676767369044072873359920192277117233734610941121910623478615048488160325490735398543028791414215042414550935304249402243369001797658760262762973952757842292954309486254231892407620901439215428281542981057033504228717261787228689992819063031383129554666476372380539585651048589181506760691737494289348790092746546127976706110032410573478283677564785121498151699534328440381491862378947197921232203594442924538925019492204578091986360892678779441291560099137074457228398976348315187668196539486907649329705739462103989971201735854391449869023433234005952400313817730395943447779823830470441027487315116027219209572703971978583067422660512029576875785767003615463968642668002460096415430066361136101688482873564401769585217898903315234956747572712574658324834644056908620953743425470822995371258651216015710178246328119717995916615448302802915388919793310176366806196281663357094484447833709702574237695123984659151351030112743429243313654534062158429770030520965011098461723033792552571801584833600873053321409737404978647357371310218610305732313486013045724459388602294067192862803394016625452878219632991544828256012323953388395898685866190707855599282571088952673583372911730192644763323654725874703958386100808912272966643533552404984181431380637343318178353350522345042431987902549738797134023307780891870243358731289845564047877283700383462110491455539055391833075922165248719374288415043733143680158105008492473944176798614202609234697103186204970683007683282625590470683452237958161490219803466502399205347753188094753508975054483818072316084015828557669692244882503962676589296301073638403157401451961593976520516611969424845748230796838037453035330595556517271164763501031911224225333275821568230345322549797352961023637052417294988161936069430903024963397826659171111563866520694166490003991096912162928555598328615638037777160591502085730890808751356175806857556723093343176594790725043830161200985198428821014752517991137977762514720644972054906264759042793867489426944135766975456406883257203274842169786816425442794676679104589509806675817669638277782551248664613859767939171286280321279995361495849851072668522684281970712525387092489915311513928564989224623165192472246557957276464412097439944470107073818347727136815566929317003677551671245891134260064896322810069853436038959679693058296463043402529033220703235836536097010253853392512409670608220996916524130298205445068074886950843411099176621017219870334628735712636010762103137503187447318372339177300895817791713243542212907687122404225108641831528173721283346597651654318379509017369416167059117551482471719050226061814459175750052501695244607422961229762719120239681318231691623115930769974857210807712955355909310171697167668401576518544758682170521661331188180856796711576784688409039407127208496527353631883789021120609661893814999993787813109768503958863961187014019501673738409444781456203258848984306347482949473020649059673811223248170417808187143425456711459332321577889185416688873427737242928549179436359286855405473833622313473289501459087651611009760993451466364955631360069763170132995496302434481233875451244334980468240941001739402569517055061180464578932785620002279342877240238085346853771143871082749845890094894377135857048217163820125533113607477172785153677335332307473267195204783886425421488852682621910782599588130663191359560913375654808992273679937757495443080819513949283519631633876973201983962032516570523263014054486423241822029701314851182289411750618891745929199901143277554541666266744929410584210321724116946221786338631712270993933226490521733135629549969353264375857998704758660381612260122156146383474575057521247745846919886559152243700120984872171532575300422894905637145682316201871337615006554890528697144580087294790660651557835512877956225342904897874168601077450330284487473443248512489792355170547621260561119221130042669639261032056236424767741018449652859418673883799312737150250107263490701005852772813417771229244721122706533396892702195595476529114480343474715482189390621705518792485838012570540268820809881741925293710935668219844775159837494106123739478206218654199117197356998278739006752485453191953444868134940763385931620449166801419961106024395802317341979621109472087145025011411590902813064268065695171311174029342387907676148231400018395135193187073757779663660707283126845205477494032593199243774743313755372147520496082920037866849770024847319852243643031298371760295771311331454145783697627070015185127698694110436805752440613245665694051907077470394590028061731412735331698118740538735342819608711333031419473646806450751554138269817084099548872914550883151780553433828263955025028073768240896642012633353075557053650859483434246127667546887027496369439187209268393215611717371007770937605023176911751543724359709465698177083981925471915440736657009692749866391500744230990388402107068087066631562399720949002910734943262230234167003939279991407576050609449721880963664061470583626088181130985694102310404234707466911365255533696724967349732076654190986959337233007387726716394655465843267377585200179959574291711872937329983532239955666980148697523661296205741511791317170744327939102712621587637460112479040286256826648429178068652531239725249662567066921436327920803822938433019430927254753325045830411543357913504653427912792400233887298836946674035686841075859391058834505076504940831825759051408099872182741941328764707489198271749415009143337618494409169039828027633262207968038433364556629460493058190538841815138017612276980954162798728289364644901479616364877020325973852274288921247515655835598785658111456592610187004071766179492906461966688165136051199506201182830071305890498196419125126492640643540345963412246797699762298732317774430875255156558552766023296423197599879188156466815033966716094673030068677051603681637795468137669999427779681635163160728716393933450432224184602524697155456318153932911101945081636133169303126919393102337287795271739549299762173764364456531483199119035693376122904984684569228077004847225690994014910964608612381781044155399363747210716288243043886834420221751510969568659888632283171922828144004626614753762024074833584551637435303648962014158957370878034922892811770167802494935976051303952082714059706300956286977652350203361933400052752376357484400977618726080133684769678967303877451632644289793918059308329975003410625496776154289554372260002129136200155387145567246835714712650661141603951815268098374219295124175825909886610797374543686524495917882862978681819585081066821077251050091798679099239023577770597264830386450487226196291550986681614777680889603492703921476431786039981541066286728686229688519952343089240553046661491962243201859808348983699355028325119290703416452338251605021013265143112792887924815274358968532141373504673043154347544948169318393827991278385189171776203670889606834550085879416854823464912803739105815870415834011292881362746081796910025802657652122975146165968572125894643401572915510603722210094131726085313309244422384500975101438022334730969706093443073271669348484646066085856976878174652343582701650313725623157683296004601904203601194751877715063993342677057801158014751075888852188125862449364547057761613795713447240344290754255192037560769067910275067929176941825897037327445508985145622805889428427497212242602302689879126615923506228441319253719956413529013415546057127637641228087060212892610898834001507566858229802562570118679466484014527215579876871489331004318987579006495675276986785181269098814034891544258135640438894708998541956021272158620247732135678391353489416554457069245501959787024067766063628442750840501767950300509049097140790713516991013148700376468055133963133239924351939594021022791830047173108736458328962414164824577550875702585747306391791391051523454428196056452895748316037942934442149498365752893256397016587197007625603362153627304231308976748883626491506884762068717641687522720470422244755497731999437036507154429433150035900058382481539170699360943350488825345410096111095920198925995228254017899660585633351959644867363261442623559178550221933819510516482840615760518324545038541494618067588780512700496699525162692626845329795133685057949158425423944737655009348331368002987034751682943510381215387547209656316156853780843382323910175291207331379032664911548067379110564839277748970771403930630658191505184174004819107288722944330564015448911561324509653402788285291000455404362745004320464513388632127590542197453711670660691325594112883257862387113135639332463770873996939838604424107082643708229211784124980578028757056623957291227681459404243002998114105261325934041244971327923333024222659354514696401464653155201870408369241154683906152831823766626815289093707565013370895750077959653168145815061663521572754815720386288896928395354446427976795704744715695208289818658728579491624189628982113692328676595955718531700363293975141430568429968856503664967856570922313013218901825905285207440956526498589528460700698794596620935231144732052270862590161420230415855991974893325087847589649169752914986419553844784845909196915268208136987971902019678083424744875022304695307183795668589268597312883306057155955940610825785704199012539233501433013110723795212404729860563367692495257577708377725490122863083454031288966573809649196130003823784907396952292386171416541456981029767673107669000149014839540228987193951612320401551781637090953208543853469572539817736152027932727988350974566335469310946456018365131309455761189166877306313930353270601870457714526296504168836750418544976426488853992762522560635117202768327129030595901773656130822100705244435675027952605884411668783130994387777466052628144742373379299027369950662841019643787718060342835200804931265728485863700867669404772224775260823189753582195473159014984155169133118475120477871905124106771663139378043143484518986837707934845601091277229494761997847981683784821150409608670848515824374833375596256704533479828653260273982825285727805847380242915329575364946447222452844531232985612484912327316989445670306248714214311857764373694018466322349402379377017636496580360936719518008919532654060287762746907598429685147563527623490004214247347899571947498316530072951549458403039146708953645795866168470360168618745353945954641594628055286387157994916201680317924828545358312950160192587240140919391435622767675679612518965072604264898035972629686301369030151021839142132949372378320011533000787660968554867163400732584595016344207735162512890770838961633897004287119773907193794210498188764780557696199837615373853110629972260181582264971841453848765399480104473020345583006730431484370105300331379724414334525873695136229736345409604281843374768561492796803477419562338133904520813607434899419622142872214900740820933156088695709570551745828174171643072344330383460674240352972384481380482389007394972075865718789871604820966561090762337576649808616162792368155700261505223316810859960314141061669357926263710060218888683860510709665333096359448686827042826072889043984043640505097162964615137043186016327738808187769257285381986810230576394538905460924394776281369346906337648454289254384219287632057533659312895765937909552273872799220029732207124272741501769161841052480623775758713719237578925057036489840062525195543089101003255606840595417698265439541047813881860822198625220481224569020955067986401793397374212994487411741878386796338724525947860349455944824028600037217936122579233827520844825873545923322287732641873268241609054060412038823412145946997137624480096017756519265647325877995518401329905163515530176982517956087765338439818304318093770217779327579826182534784687587025847949648740482009416927107979658470275813340880576470864366301987417765864714641129322465952088294584372669612152307018608932796944217117394897502409736028116474859585214559564748047106329049251966025231175163965989752431189069028899733489871437791125102584851577598316260231150325219313067763056057042492536244211815744329142016026225182157326144773820158757075414705450262598507257500903102608925499012183204216407454292674306884090760550186934419702178949837652886240135073798962819574780444075451822443137115108423247689126253821592459187936489281102548219731855407160844700564414306222973391587875338612418040149105313422162553974291088161026158475680580818283692354568984427548280957681634109932920792791334967300348860061820550582054054184335258688268959902116166736632962782744074014385281798072731427020764056309544193193228749554473044166738169760239670767458906598279424908131092234311405030847230799296208585771317585936060688427337619166330187534857275460620301847128144937537312994383125135600138091804778427742405595624573528740873020142645139248494307045753232390610886342703154779702070439735183356902415433431714356859679580083304956963374883217257115922170479527053449792208137704659735438319177523649601706776548967909070333777151501047144631949800796437344234542612682768106181524512748113741819499942634446821929326810710461191033621590648873523547070118177203301226079717640927005674839517530525058062223414709603005416688314554352977474443412602601893222046325589310111046539239402435734452969517431901970205685349607303655652206500493794658008593421105880817820694096890835629248167991957333720296480026380663127610814777265068731796049602171489205359440191641819041692135594794862331323779333231095250544218282584865380103285072675972390255537797840499024641856275662869900996572684461476074302142422532678327765076524462219249121617156545649741466193958253109656680630776455408854860227915464339890190419037582339621065013827917153344425783025699019405539345660847893152316611606215140995315519679518149233700473336723959601884740919261557394244541829394590470643791008522114320098285107258626391298181193751036986099475321427359267911422537670338915320714093828095562245230943384599648021422208933032864944580159456121349506380740977578645619338655434790612278869863373862019484478103685088206606300066758776881742841113540306579229171372483496456949626834029608662122924158667161687709070552569021109559121057591837374191246884527634892053223589977759377120282319685882458669681166857173824237584067650244593917392201430609746268549221671511147722206426496869673808113444202008219146448987499423929892834687028306334935574722168017528190872065466942777118016969727020226404281357051509036384552178105049783699762469369129822471117556674668739419464615023693888706551424476105781321462131947207905495478596945416216976410776508040192499885090162831533521430417050480143996639582288536710369296643891561548496592024013314172502217152089579004729975576276346055988957788314939136480268488415737521286963268176089287149886491035547254597555923291376857523560738924912284704550043743010031185815523586696243003005514886602476537448936707541488568548465574367992290551032808205970878095229735733200236536249784465025088111963263759510178700747677293538901307304757681638115740040551081325682262690337225132930387333812959312090769493527436426574300660401001217165940270902262461382691632219126678531457607300939658491397902590388333797100670850648535258097811966308831165573009022466956108416591566943429237994952913839427100432294254531540743235361960935063990198730051010122210432953365929367850312393380087196662849764996328426646565890240298326730225039429607156084999769273171445811444323755676250177611064931227420159517290289410006460015484874576479460365975008555321051687583949885572110099930852700713438631863220085349561487279080835644824989650760217813764528888188005054384421555885281709972519813339596147674860863053153732253355488036058546791370262225605365637531615903262210022533101274643422808214929928004504146370284367452899093604818608855432199276157794310713567167352296354591032251185264483179122564827892342174686287055380440154770196462630519017020354702365948955064838719506204902224095069702866933801315783433203822589067507154878958580891740936654612525115723914205188578938561567777499662338015574825814425680896046313869712019533138655927515824696165368284912493773081405902305359402448862365493275236814107424122137985372665365442935164857934418725704502241239405322225722000533669602128172178045280781309303084192051373451335963028597163500355997069933217791772409334568523717917879002005954819664665925050196489385151893772487045936297356843711887621404697376356581097682403254038024423378447190569124778592012358306889660048544738633716152562954634772998263920527189501652665082388193082845281854621145067340699977157916309553557633625872866895832662898212788172301557117679434863198070480624882716083816855172982810043574706991282996693689915142543731921950301416388441320351600466174062216021983948728240459876076015370204324506084268908934348101325454015223759060470467733520636536910352943038937864102277439334054563705115088286478443909498062449019793280101794423704794226685592095562966077472630420086202898293632456717820433152326036612377210371883556727748459465965734895981986628139942252973030933308542044853008370230060164786449111521132509987217462157138447287825527552820100243059200012775750247498108036643483972316598224668851852596128334876241668412406610169567188422738816003196651139756817033330753175622172767360070333264785519545805994567362338687543670166407872443863260970866860673994211550737724038380025283221969903503010012104116976548956666706809898508250126565927584133370348028866781203351325088204169142558565984232493625879771419048743721194762457369874077847895990941850289385198198321204334774899419274464049664681368077286626490840224266494458538813191821822570088709899163173761365236114804505783100336319316158093577775004675532660562085432358927655979153946620012862425628783861066003572394353930920458396335588343389876095274079102652807199101943177044063989514831809251437841637558520284792048278554242632087100178369168608403430948305254442358109235309466916029171611781780472701256145483946671208576639727378506509177617495585532873249231653947498727212188419789260240100903810846679081631473056756706027326070560544178242200801466535066915012889389276033819528055896054099511727036959261098298735406098416530084120639604956852521543042894361989626875466217051007532117290317161889964018280501925397486714213051642987788314176170118152615435522798047302329947786620092017065161449249168955192660532448920417944159344290467655198758243577330383864691615304690771259610839919360115112917292982764800598922711751977407003425412860384388526490831248624276701581103156213113798390248548852420912121059190313348374586763508026956314826691535816648114890317095654599265325309807855514476061981160132714139444460032887760048254331996383725433531211768540004046677988312606859919390205528114028818438544774907710891700596158439900544567629058003083920146218210035379277516901244191043733007651021420241980240948346224301351999141344598894844125238290054602713238032636338001573988353274520393377299522014770705037321741086515397801072955100787847389496095497091886206031248745997502671212346451122642518455802656997910204463920494881267037853145230589588616085357273665293431698370933280148111019234857014120728738686004357559306624495297682486161354824848401876879026134875939713837638470097422547440846797139716802116905516179880769499333695960072463297925324096265512755434056012307053026095576459023540777090367417701440250780530211530716630453490833653035057953515668566193553751249397160509388906937112630884347172179467501434716258987841940262483700942739784796973494448981491922958267584983717931299093009144473034452826873819839375274162989814803575316682010366660706550497436063549533202948226749915749203357765903239490885825726653051792944809730877952940251209518625784020808086932254248677169214746747625810383756654099415673189452387284217227077994008956314512423899975887361123415548256691293047112707419218777898497338550587593046469655590546428560519925264774867358113994155410055904082406509188996853496488995563229039973835749843656673154344834819744946813175641090583429880863081917940570586788726111177467225415373057736518042224958384287331862476456360503582670894624478494350446216807826160428362679938571397551851764892527824025934449696756838120616871208938611545918196326375351059799271694076314960709823626734310785586796073112978605396642917139945075483627890433668733981395028299201855573346534265833836835953497261628545408080071665447173533870777668823968865662935878414930193090633369882802827684688211411602981620200093012088661030838365231295776123212361063361863174226579356865325639143690069984286051056369130929974609440230051736266829166478656793966719279783586706460533173949820474652980428124467218596263320265401475884873949058431694861420049511430357779871155855030857777541213927376342500076652532164892389472315016158971804188881131599678785692264837345981604360142155641433741013894163360872598622200318948269734442809467652126771466044668367489660271539188708185855550177670822317529335887500910863546018366178189134620454602384413340129145818012878857717730671779908724625684706174816881728466198360523708291116472054479733595603138231840311069063649407109055069997357495882606373710582892516633760934130435874766209929660817507663516166992205005698566934982406758761174254713341538872345521673606959268984557657183788781905828229939109070037239713413572939871800164864680966712571727461271529211491481675873048839022732366034955499747614945291242932198174585153300053980727236952851329368182567091820127350117341892486542954480814148956327417257042326757727973474597025143754666075805414118608767635557639962146260948780865235734387961864776600506906831021405777316464297192362995809352662714486336651182262733888451476972681011869486579706360716890621157154618763627804177741322374536528782506692955763710222537896549302205439491182894698105234783802131057583858008830909712767077147867100560300196437476129259865557401315073963417101330054948498256763667994634443678186844062238017941122307257962452791552462769419167373294448036693463767387470613280420901846118467527132561997587000480113665191351202127415109184535313600177963486584805271983219080705824135014141819008627789875068496514558990985722185466057440307655349403957189411694400170291689609043390269966302204439783226522298133486772911271444074726187208512033684244388741797911661914851581513380762048654420199113902798897254315080484367922707529698456337951974132715933667763753128099418872395692870605275987820486109210232927978700559742102169585934643456446192179865074730229466135737817861141854097452590915784337617647047108518593499362613207825877417825354164758411350821527883034638750236702541998377946696673167003959912979547897736089874437514870387630425334025753229293022943473544739603046312588537850896290947515533333799024705029572958077715969352311364517180292306880297612169840046927945533895880095745583469384685336684333587443770253025803546655722792554832006296965715033557516329937034469696317500742806012511068274077144665045447697325705358250480698449458092317398191381901954854010283437504100504375910961977586941390472668950713872307722554387084083369748943520457398609609769891051691801686025135712658357132199689267577365413508601112017793135641912006833605305158722589700974993347694636878471523367788475706809367341413435267774605152042951810363510159779893928631185672915858504178670470548546664073077183269330943898703967087539305890132204809031780158380166659912378733984483281702317018114711823825364536426523809740423612735585426226914569247369161616980934929906533258758532771216083443572229864762060956388929130334987284966041800781623124454181497521064894715572960000326916811342567281288426639795268448663391869223364758272478873646006470064570669710873405013423698177701752376359374224608215698070065259670925976753666064728524712743769900318582846487354660566417787954461152034847741294043986615421870736863201049053244213158237588801759620633416225802137220560540099565304697884187912944444485960252339725218883138241573532843929950845682214814380731494310446815002716391417525197836212171964637918521149878331712766596927288824645710462127656010014008670660526170982246694399650281824673420358544118150725518521898540999448657069534293210831462569194020785038262264834373741194418018898055869871919729113300218102706690253334443064737564584103160330546497862160720907179294692256488581555566386321027229924804214833153591812828306892096030209876885125451374106435467012762422778190191879762657953164150730199524722963240839963380257813104571050822078741805921484732631132193359104916507787129613339443096909035667620748979941757370690866553464354995003930998923286677999753581196275982054680772544956115475893345269805917190716891299773698080562357959384443789212085586073424163389962663034750467744518738491700833542507016705744599335019468719003890662270028687065810354484335930647769451666658698247355265241090026775329592832134432373089620943101998397716840862767269133424471518792223269921222269500099252712155307341826258201853318508157825319380137957055670000021562022763162652670994004110482632054386317564896481320449277278534550629900148856755550238263562511056001923124815915474245577636359018436587788136718149832794051955077218054527575622903251071439953091440189874251668327846609429728619073146783717733893841336858494534887454476605975851990190753124075054345866708207798522147215522382186752689370700876964907074663464445776682427216926420852707729248368092707452182647162263212023905335051916568502461473026981688380021178930933066463996007656103282360506515055876589337589571522920408901222448772580272918341957137155059841454406464658379726552074454921559479956831189929276388261821812899127090515759192443681997241687887936139756912556992829088052443600375734518116207432598458992743822040903266963036005562604823305022603140720603976704256091655471185947440936826770710365010059854470439552720283949262832814398018235693035568512878408813423014871255620573883573070765510355097407358901317261271283479449281094737014641269142612774334004320510387772545640200325837937626743967396315707305245097005115358794948282683044630769003779501894253746925308217910307507893283218881379327039938247589177906605361888869287940181195307289369669968521237750911369356533395063045502106595992608975208206002432653081664665337339576580699704813264917387031164740053341723994761320378578617326792474843820589479975126851521176897481234984878578438677862374789878238512649417807727990850183885583875224144789510506956939655802828771132426457369532982042283115739249402467214898473365467807784076351197885181906178630157295163810758198688990358090681880952512423873355807026679699759132333093627794731190271053998122235166064967351220343804501774556070604859195883465430938200892265593517824362368865927476576806109204336541280180502941073544712346605030530810015836750294745992891754865037957278874857161419289976048007074164356282419368870843687436103871789208859735935748954976061322891195805075059964275417904293241220004296978664511069137208509259171094261046488802204578681564632308024200569896218781831335170052729475674504179102503904084491713538134221176118883007584992150286950700456015680914340423567253468939732057245131016623242643843081234161199615546902703246168124698839484802247423267637374707812938845284559272424943974077566474131314320751555426418312584366995380915713912034262190554103587890155451763530770474627708926453604750129452696230469100881287016008693503580756895398126210645371552633462118359025738583831984835946472025923543725835181987010752264609585647456115063322924208425011561901604936651826299134394509656164117376868053809492624782964151526226887970706228816003150743312548317218397979097033296280991142178097397496782598006529111683836428911328711825907080063890796231934286142842997331824177930643813360406622131781715175613128530957562922185126642453016221555840096329236554360598374531092171843915221212925308880129894583518865959667057775643356081854658016881575728501430897252225670098833203076093204614652245131432360213675290788195234205297565376300727941804377238926373506475797722771952639078208485458262648402543680519031610991059659605201021999523231209971973227728281642985718190664352121442607041840554650894730665732616118568772014854145026992258996821755476816533892637026600026993051659022431118823084583447876947551073185248653215471197032895362886137280350950061130410532613030185548434728451949150252262977052887469311158361382851516015909813193974478967927947255348407020415496460645072126407855753531431315336650205390845787162171019244187890426837134054377126745044911531465395048334735615808924414507408904466685089306181141866606496200133172295924543713633980939222861646628989950663088906183159302627018465925895906687443057787805654324509467171978662414523955291386486350983622539016411463268211691471094491099819056006723008082187419323754809904730374867004940670461987239782789199660778935711419149459697256100130900439211171488539961417986609361756010407579586890663437596634758200508648588001364020280855469685533857044085260636434842915859481103249490729284118727091437876660652129933954790835605509179146309965116149642991672164684888922614544728402090805176702475561756268425155199200631182803900976027230878363583007425272198706017124943640341911539514106116438816005933598235529923193286934532783712423456551982984900257307587807746170752429084635191784649186991823190750209934079295668498477981689756991285275320127815303408804139674927039705173040501420968902916637069658536605972220346549636641778895862132085205395506805662126340466027143818594172195806715318099808933981784096832038471097638793413235063717116308890157328824318318250741369253417292507274399707365256155783395253975760117657110753420465415421722427840599496984405580233313445583866368793184026831027625164740425370473505878419445554328986074697891816163087713038184830819586049693161460773566609713133359239646210765586322640873803582923123777994897434803117670940358061489514087696089131705783491796353165137544496752386942550324762065479658310497291539803639609777599487722331837653595454832978223140720409423575342236716561965079510078319671564173009270975011072046179181799542831108497924159912386754787344223332074199417944156690936084450067290937117239076474125930886718787690137851554628284879803613673821058499024315135542827660682238724636641630614867791317352034487518853809384029400760272817902805266751365407452920337133440967001148114527256353010350632877768344929099060629740748314655748255161039895324271278446860161403090071637427531059645942048794227011891952758122090909580587800191892389118281348924502441202421005919765014005186439253745451193767295344065178640798626948399131704914558969262798368769019687523108987178081014799064823187248797653594519365345973208556107571747026606223601114879345767244177749110122692698286962696917032733378254775107212446542694718845303696646825516228270091207281454725565194050558234605244247396300077012707891857017517132171965003741652630935869004337809615917918593033048883921703755203813327217284549982049719915689923436231248780022499154924534024183244997342373467385353698721150886878945690674292992600885837534090664292150201319763238010448460101663205620091752311016187192901221181086220394940140648831783905103420149204904972144348946732633287384830811882646613080037324370372317945566975806840610475464949444430855950571197954144222051244157001044518927994051335649786697235693589482859685641058963568623648732840209467206487004487792389714799279872722208303145173156735386040449794305665344546607121578414599864475821137797918898064679563744937800392072747122076222837452220938479348910098899590138203510232808482027212745711398773940845547507566898919268223407662462565165838996782645527939218108060770730389830334485163685896560253844162011479303641091684034197555585869331022621929773271220143783994364671088488775915488392019697625486759041781895176679921154909255988303853940660998289156545188197210645940785403038445423492651436949715731849248186887539261820290685422593013397309678859475873908821571784134227828055243427942007598493167403633008954458717424488722923176732334483286554891480534609398661957550362360494963159300102939978787132315691868956267383860755649992669794957568154728098151959071637702064488525982405211363736804027453218956545303663186224592105965490536801494438499997273333336361998244396633824837067703625781637768396123387235810046846265511056720406573408023552865475262804247158920427140204593844924559055922924477657358981035022357444795147837230306557833718110986824325696805830748807184536061286725366422116546770982607976226413420997999322851090138869281126507032524764183052586361149500704992290813280108939761500160879837193262701089332852186302633205720013960568572864726185634987326538845140447871102432391430110307934657071258741149325818189765035351854232897691798506827475390005449001483541352146775663885050339666536819574490816290295147311502981117979535110763969180817460525659744310443855422338811910660382224360530151765507931884762337964393812013407117035872083910997246655093783676741309756491818742004016445827966830059598097346952657927015195485393607550296213389861801816016084579635130445085091523183481076418307854604037961201869494646618724010162427140460541230303916579533393088437114050686426209010432301244968767015744513638457554758324298717138690623069562625222033758055202475975346379085696334382018379330252821075001668534320831163545127443325917543974359762896059434213196793458441522212789722163494587376665690425378961143345188444628769804924012018662191231404851621643610167195020088919171538564971193132464671709259989085560293498398199075660723502069935584388853000346101662509707552380560706557598550424746500197540225538805675986901201271403090037752478564501020947151103855091212524614839837449060850157971430419529665929142538034786774216951159647797037355182825622492622801558282500885805423858446323677541609011323678674985355771840764362660276651302917555343792795246207415477953906922675854750202096983397868695156207217901986604948986476941823884451186831060762900974020810131341833684959512249120352456718732360844889280965465653268681779260212429363558499730210080038230947134641990705342405754478783192293787528780135636847534687197600090323806605276845693291037668290273417425869023768790677255033489002084243962616570127030183193923553822328720413130262473183139361874372267651087934462806794568554453535299095050341430170082620060018254673767869842049861643286432387211068128536466886400159157083612907409330627521058892932720371514540803675115330478063991592429098943011959232370416856173304586080555414705612617355746689682845510274038454238571226370170693367797708551008464784985052490489578912521019853014781383567089817958764541570041241939090230882683673584580051747241636319382560316905864746865881746120310707886851233778486293873685893590019052531987359942751411900717548211912160075004045894452302562073717234986633455859948336474923077359859232512871284434155911017597509279802464232996061027047819558098967338618672296352765251069263913107729018944926997520473785499364182430317776995478013695514056385875136713328336531743230336143725014474150531353026288288247050027480625962722006775681444503249207133959466645562270805825542511456602756131460415396387344160654770501730762117540815198687210098477305708502089686797412945518523288513880755582995571654725368507602640129112869041855611895503772770037406415598969758501973858569488874768928273205469234390255443570061306037083031077574304035812168378345637561730446828105495856553373629169019040631252411153147845046657003297964132440981331518267237075971118628739662230145756226731354812525363275871168532925200056032502157788923829085973573152658107932765395233951648326637806350325244088775150239709145962965651888262169772358939102032678058219989877397961761283676299955654508169564353823969053478382735945325737263952681631089813339630014873664276870598712400526191140306481733294466238570419944417119971041649726132760896737109813047900860437560595664650023119101123308458495081624575996243492958566795667740261581274615921770112364259100971311186879972653402341610035256476817006583790208091421572589687020516490661572607986996464161645334609355604095475069033795627392158758184939083969351098066151825607825255445595955081367669709888879947922035974684338179002485131591159953569567431328577313517875516114100471978902623717515317655746143269597928383721966026988634414296798870892399459525553305481218844850420656055623286728819324878661197851329875898339834375128509892561947049707250885828893445984403749586163239296389296291011099511147764913547044713817905820572235709210815762833429516185194900931855054168930326134427607894964604229917654515971398571466015051761067596259523582408251803620236230759259875257694874020616090604573378147865871702778975543055107949207103907359408831860296256993691960763248918179847389192553770384777222761045480955467309911833448936149844357157974811028319061403157946353060564658257340400859213799572756763948596182875203172747476627143917025741878033604331370329556428659425763261101446139209825299104423646126712933441522189588022119061043221894449364341366525446442141377091769276683775276087433270059719630059364282168490898388377386266624822042604180121836770400128285730794051259349159680192619831870916897636411558569746133871256597055078032814551883222943889484721376780255128108066672774987071467654370605107774682987692607094163786833155500660369975278490328967350451834347771750002932748933555731969554138281944119593137688376618520328753554280298331325650719057116673170584129987634721615402430079670253203382890682437557847048805370116515102454248447751460226719813837072399385203281857976422964356196023086314750428265804469582382003715827329434912198408167058128478420608180914231232061988615805699023198476795934962262091170198001149786956489262949306634435713210888344420125644607607602968764806478128711758257334453784314008320571971433307534001859360575892306599826196924247043866205627490884011717169425970162143128651663881122654013373409844397563623846175200383863589180338169095961351702161683140671060050093635823605190571693612971913710537994592541856583034465873234403759481240280558403963211327355754000465043200394110129821968989135955360301119132747014177698930313771068384025182500587175016378369218429640905315654064423735285002510693136752124978049468501005530426230303953333875981202363205339828267361934239603232055476197479471103440958592870154335154422497405834476465640050467900822177236455586794925926415813384525924706061660185128920349629220088674028528301884083047916748405750252976911010484076290921665377937920934046472390336486236953337112612430639023656700307254058405875801647678577377504595303959153057808199824574546386163359592187825324332599711764060805688397776088345731785605103914075548395506056871443515935863024339114262509503348380912229384890133800434620692164995921996773819495315145959270986530367439437661992022222010554682738452613593049100467007371956983360556542602123065553296222628004013039175680970663886447229955636915077712576282760866502051335223685544826703967914991489348092922598972848403712984573215952526381472135411701463887061227661320500735003094654190035246214496904234414437530358466324442251716369883261742493337577468411045645561112118083549152984405661502215328644501701008630387764882695811123428718199625248354822346235904881862837842525792160658907333440859198647229982574362141890764661502007556611202524683688256292362206071160802558959672041328501216225562013888508329777125393699850391570444526420963745573738987142220557775872099444778610526016851551793301809875756468833782244870088426684115131083746313691668204100319743154637252784376106003449314925341259536597399127578554136055607757689659146348968403575909472903074012258087789037374901793499578442050362942957393792596005127815261522221917474303275258152455239726191340872455712247607645532519848253620189873534094480169514871489411936136069748264519577342128453742287024826325644538468539646815274677621353386693042312394880021026021195143671735036973448511215927606096386045103297716688840825354245135599873315096242718191713629860857775322894726635169533026186126058090440494091936293708153826623571155464257978336551578968493429224193654804474880473523890903328713626434245699622053591940444526932458836109461294377171738041407235416554022991049349473053509557154121986900088360969752469637816183298933717782972848545132752524072976259414172616702946501826040697998257544463981975100261911488292639632742621437755594498071850221934652174487893536279139338633318898247995846892187591951917360483926628945140170415720956858159063738214259104517061832724116276735058653806721061913793844797984347170630781446271972383915197864942771284473277994791452630741348618542713685695609852448269585832326919224019297962926832404308564223005411347790982619284548640203741686807884121892695205074893454531209013726972002691835382661494543744446817685177034463979347944523284809883891356682622967443072174754968201661878730876363292483947551735978616412830321588968572554427265932678417064805420289819858091989391800671921405000503163908228249089925926989437446565650294508207575378457161416289399637118816178678212608095214107193421027719307009635358291332600471089745516493956707912927213776162446417138913407294286808514245751992322617705658542374014831272036388813481012830059617516179953334479226654657247248402352061984123711497386197251661759591666857995919306515212508539375664261653071678833397531207485989619533422210398687411426799066579652013499288517199386285684239059454147165175843876954749490531821555874562426128259042686331631100974801007392322406855785463575875093859774387753729352610922876878843838893511875793411750960988176569437071170795612896815127071356465909008679416212702142003883868843388796215454020731312043684201568324987521623603249926634673122386831109508115410384652383474803116904541669861999699909606900564752001389904328802342601013221782558243765673627566848806399486603605367600995623046071409455587835236908699774000345595404048615402195880774851696724531363756564581205142150790083248649354775068933392212117654125906506570767611897020626759206225899869743926253632574945868693198457573543292472672328750878441628517957789549654505084188638193839864693500664630400012949796584188138096798753134618096098815724593697863585455731888979862000150837382214731935280474966895971103171819602700397585999131248583850198089301867328796923561821457450502609145466635400668407659413840311394713033034802185028073020944175341512028386226552212363987095462741334484323008450269097071800409445025669520311216456700326407077611923890888146700580847130595484670361323206034468878559696405431615696382551091660673695764421985936794999795790119437116468857114198982917364729092188031475637800117294529676044961567982554104368634856101980118053725031885802070358964757654786909217484579298454576885683606536981834750098377679642883256549192977983587886986050676685773848878932164819528640994346820041033917170272017781039458856043974243230845515995708296328414665626364089369490501556927086145032273432325114580232221826167583147774655507073071612987800108047472137646819535950102524477221122847988062762398910403459535996255919453253759832355154820795488485336738061615427725976694820505144034024095299733981767731676982159715319978989568673054580170990780054380928081521889073366099308681905572775202694058950815836347638493971357745957922116949609719007681712104632377482702724135575020567233959956106535341645486626189203366340481209833275051886036211913123096926972501087386876610206064001426572455422583849730342994658471069877590451254494310070475600752994872643182706169628651869240409081401762842787663439196931821903396200599161080351807277508830551905425517689696967120277197397469465599708974196640974024649203211369562394216957341700909767512098072383089654771243548130327897278428399711776572555192020158019241324645238548950063039072251628967380363017678216043045759538982458238897706161245555258459687157515515202139553590443984687246062338914564482249870982322742221109311751290799869480450568540528885167568370635300847231676602376834015845842304707157729206732264896672778465388441429884559304788251797499321652723731031744703772777536139806698705433623080630434762151054638976194954631925955548135311107040937579959405388618172148716290504173682620554386445809763981878896829598978726541505983497343212547191291272722620153734051950179923450967273167978511784657656879207511413909475335218550367722689659321956060839554969796067053415672768386906138229467083767664781401090709270508090002484143069616085851605939333848816849349226543270565340765798561219928896488396313258035427282877193143543740465438616661075937075428834368985175287831585036845307383048318192738041935452729369325252545177869822245805742856193075594931400944451064653204273026274705356561526921302607915051274153772131248307943960639170910423140040406023495740970552117128715776929638551730756414425023554208499747455393262688352264084324277824380203838901666510917368889794399694299769442712767256780709528962806497680375176916269085875135229302573977043347201465608698167599775293167137972698581604525249286505075948179670370509626003489992588699162428142961071248568776405412241797028327340174114842331929646222989478555085095948409854580855033123768075386020690365768023299900534011112650334730335442000251852358849589251651344017848155978485556066273269367495900997199458973226779407097192191601048340495874178222505288406099314348456063614034294385544899063340141235523228341674355990197445329571603428535818694055578571125471891574650137513487961293657783327039211620606905988030938597806806634480679629548805999622788343026838975930397297581002681585134173364599525017575268323027911679903742101067046832007059588238239292245357300910344321562118166171936985791458797543449678660594586261404753535453724910288526606504334481310073817916948316988789599304247463853384727280343589138306258810166742620142409517727840916994373388990817597897954863322277911527764908624055242040305262245419686400627964965343494794494417156232355516067322189072008622836220847815499093686831352973991145676699832554861416958051499474955057903709281941232118410290253373890833861713313177800579406967644113256120748536798248042909577776705413843554475623299157907501342653781382624275050245062716851220372631755986277223304454386375366236570815888172320311706677995285787257604383118283270543336439456368441444369160090618030970067393191753263381418650183534154385841437760032312270143678614378461269025123830493237437862715873620974611382328513334540124687143556315142938609330539434666807600856892993029470004028834567985362602945960121240643429812589613915117819350563434457680661596722035447572272115163448416349389739303815853041795377054679699156428525037194817577284117148435537617295392344227732053735624462318511234901238581272564025907965699202102876353796969179562415115667147337408215924281742046398628915908802420882391468181552012933155686261391412764305685376043917733850237321465414566457758607034865529663130109114206365979837801266301889244882052771174157596225102392341602493342776764512270185954299391448155771754822950905884641889358787801408742529389769590809286014586332079088365394099319920984657857522242180703527998769893104734665745720463570836209634014522767613889418840981348210199367097792403289835726169810917160348922666834917170881284479391280608896968620462513647338909329831548506848220838166405290262297613149037403930351075191557901250152863124150677531081722958077322552809901942410211389622588909352907926006252119067479059976916673285309806933695222982446242466351047405677642429442963604129263759739455277642589882025107759858362477970328554101593095124696436478854075839752870696222130606318884786618890544427471652295176570901094000891208896591164535519054570800586417646522521839868353130979697743847995149285640381035414518228697787369158223637994270271755223457697061289891234685818378799822612904761960609400915135052538639698113389599322900169374574190386794038737354046290545956374131211835212993504225252472867765971040436555920393688320500245638025200181624443225614328066507687987962393290861162822254576893315140599688970907773377130894539532888403268942860686892791643543996719550788071625385126742929421555843095528417381927382777529171594820863995175090129552264781897721067917408046346764550078780372811777888517472222460378545648384418172288923089877471226108826183331667300697706612096298398976700047206512898793115009728942891660244176811490220471884210199935026921526809825150907907374982888028264452827712183229709416202388275239419356951481080948993336955964761569350609113293700931353081597048099399061301682557403019493940903194447690909899058016979683726509600031336051357178161197952482525619146022306002731950947742559702996892053764924075985939027494889940147778171829533996353541456088428453396539765560879441874662730928781593397857223164200787568989595901435809874908589992360230003102420071537334080649337991702804671559919450042242233815395772951562955678382525138909803402602290486329686090856907939517420391519932550795057243410009112089745022904122798732355920456631644710820514607752164066374517495818909535518742736447539687539358015894636147944269228155189517465779210617244050325071490011105291482278566449891930763159525592700382408297846856062070872064905015175738428308394737696063191070494767465451779747060667181185074160691802493431648225753668320040244182010771902161876803504149860761352406994339838131044105597745026380925690027822579811719545742583188239164642888064042289476957071873790656587837673526945162385808656571706977234576984815601166061086303505396158624501786521150611892843810494754587047463806185812408592472224934379903908272690848411415470047994624692526833551080980331247638386684505737288845024651037023069332463088603080683213332889225343617845774633039987546824902925594908700557723586325820905375642306039097077026264336247880880761383764068373626774137686642259199632815379919455610321656176590686432577872217523227771250978122176938077503342978877701961067797788897723664186686494181268183491956465220086487676611605238279479312120216284457688260531843503398272077035662107621393325157393503079113311886448379130223194113442370976721416332023311478361357629209154694606068861557862513902277283531149260717124425816382038849807900166237846029182801446454091580535933411764142050600713780425331602483767263033212305150707538375265786329136679263136403085306274758665282993069633769792037131073994760372894137909351160966558879021903936729354955533658970068184289658017127501205457227301644699934011124970310224662145556194559050820863409106990777918622352639058925446640956673890732761598045839175272765695306876276938132731902266356406719954282533685698746670033461212369661186436708596441741222567930572477308972144361645969720383395711119135516367656629701862183091731126647976062225773489980384877343830990729377561503211823926996271514372955679530112118000066250449649222670223477264384294133668226337323353336271188301779470497537053094516590566944206853727838721559671093340852091449471856210218857038325756434161852016299602180784788507680075840556836315901360345679179621977418447356087338933643936630671216784305862848366011519158119837179356573850561398746241844735169466672176263369947137974917428813700462439010264552999097966018321719800493280890909049662563215741284338744304037062559148930208198087397769478086713945317256575183206753013878582331862239245988312031890867313189093729893671445587116402954990606184570218594520315947719574933265243712200644220773056864700703867219608029015023435858732398968938995916271812309340247813227424689172962450397509720787166920918293557821370924083043124521196410081704598360799472801282516388792103841028904089240956014749128327111318844038360878533702461572063869712359086915005966173106165995138390462789558972965576751955224501560538680813481691788764224298047821538578121190977107023603592596094823791639525831726870864453648202424317661283535967891668574240512758145623155734361714874930476344933796399602525581333304536727681845147561774141841110487468293347866550998196935064943431939360095699612803419564214413294083682739956929462177619374768019804562652448402086126979903202796664476733514648227698601124214380264165405510230445831306679275039139186323618472107909908988822281075483799993037230548255157145196160486455227604038538995545091674598797383057229509679719832550309016656339120985068068928172474827145026355829137810107145076814007156552637864214564065326612783363738947344467849982275348097732953820302215711814301965209380544806215680415642322739028523780673500314901154354932566692176340783847825256797266259918208804414970077189034204358700749206845673823130795580164053764460565759043070989222435088537202428491532695492078109662035813942075552190939517890544366340196164730237899946745781846860178402365097326861233437493667653402083557488360759860469985364831209011529333905862127871723681759641611862542423171860058162012681986466112935651744320492468205607838211219405360484577126825495465155632068591498398445681573465175343876407166624210475507409128142678190683336889283316730821190524630553923928766526508464581645020570809146637379929763605587013674109118919919834896661364217911012620729110562182431512365640815481165881023421440343616018558150222248499917468296536980480513945773216283038157808326470122350753991267575202475496453726752600812297017065605464297311495344440191543861492033685897630502728122689543414467918841884433100594734448324160638644486727661588834129539653168280141892850767584298874883036453168002758949834887118229192911795799819124059913275798153567140415764124740520612601198790059474468672129886503872111921050873162582721934832752457772972805408273390158846494134367109382526173919200887192504155047305511300980827241814991917746778021534466262052848474834719201444171219688300679800814252696616455640757209389936828500108548797693034816578558047925649403807402160829865997236451794353821185681609551166946173092181316624468969042307540598451209987793158926399693200814251391031781508839971171797485359743261399766774552625428598223470883224480985556819707590292707112579280800516151577450598610537587316862434248283102893973957508202283365374748704157920514471546118117762217895636954677167480349617553741236177018525311091457980534964702800951256532268328417419261708442252721462675864507515057800733237098321346085564355502599076661871518227162875305319520230508322305575475259216969546891535401632688211028776208755956496249074531177935802984171850692327714190610693110373918144733620783668000485481288710969203203114981031452629833114105752397859799775529116464484441184492392993553369920584305679353097679782652626418589291211755475983752608630209855288937940063743640047086594603832548752600498719977955388657495392710671146045171285244909883245920852945802230921536942657184228517573710168561393357093977765087311962561507502699364610247157855362887000552903363979879885731957023368742215943674867151201164372937871265606441962780790702602576237010119890097910968078211893119164191658277347608334946919309613306079751008709943161576380594862047535860688681053207924443864309669530366547389045885571562282080048145399254814359603233704621860682843505709022433479766912295141485849917364957588636437229536964375109081734271265077076073973499972973249114192341080773947960735576286878843805415311830337307143320428955405474174637525780499299121751832060364125687792185432115572078502399791001250703793063564974097537208875955342367289727686050655525865822075359479975763549190691580912560987759274536451920719348412423846171130763543632546337091918872386359752287245324552598076980370763162523181994413467222267231705650751737254444998036828700934297415160309193070681766999986782362748568166803820924199531251283188325752308595454096524447721446616807361103489355401721331726403273558629480269226795414472250366827390186323489790785076904496831419875083076067723648715190555552055221469645967791506201099089567822808573069038097218282440529234987044309502993954057871219072948640836725875834536800609980704873957603513944883698877452737139409713789128395194826112185007645990734644786626474298133761361686608444599103346432434602660683866170713066214100572973836843269767377226357163280173397162820152488921710633169567398365515809106452890356088981464256899517757668710859427951907904681898105270500552346806888950854725936963589281863425783498203764739888234609709016360207610858863100634145474680256313274227200359606104431330690948737783824263508431704246272372104931974824291282158094653432539899163982935326249379222195060350922530891050015337231357296043150535454245292190155571251763359292290543593810591125703127358064761369669908227457011660421379612983320809319481870161152534235724901990413278607458975392841070206567409544149854176183490157075017119761811549898348382052868151455147966467801966948935088444201629462284052870987179829992190564987094957131219122110727309314614929332733678679654213014349033074691739472709760165939328033269663172932755892508531961888935998317108381162597458539779441441269477870170506457862320487466211612857797908664218042843889809885155137223051463872420027635300832645293834272927890539496569499913670242798953433026151325204732283605399914763140458342107577201330311723661952189386856535016841161669721763311086566576211623903067927730933831563200857380228527496585174412141916687364096204005265821832903293882579513687500455400822188584598431702900923417918844667417970182588255164646490581854301107856036263492374909128616277847593443583279635689535705891244805184018354394282473238798089050208408549684683174338371576464074549106695811813288248445663128079840601201603461584246482716056666749949490755678095633284918132387548770972721681858507420568713297236615680117093577218651412427784563282174269091216271262058522123021079618944905468118163432190845518947044931203752583439266163500322650898533073209685331503084402195193149911767127718119194775495572583141321059410803955558789134480744606838277710715764460176162487963985463505857039524939237187266520515760595371709531621981600919219690000172138848720891129514606151006404974954350957297873783869593755615314368066779953925481456353253756059030924189547627614647738829483128950694878110794457589428831695140567547228267988429669414925376556878664014667550248006868976540493786791269090205589324393826687362217178290852336827274153021853793994194087389259363425801669173014307097778577334702820109333658284596927406361997622483033294077322110584491494210519988744788736216889823071897785777531655421912102103149093776125379247013866121516488016014340984615507202752899638325374328864405023646842008817083911552799031162571451891904237419150967403038050626235084442180141611226147213959106109777318391864898895959853482261574902534848548032830630781259986976697547189181322139657432361005060195436609776335002989852076106954092670712868823119140988444532573500906146338119969721504694850957473229734455354163945730556765346737949505499918708863034782029487217816882852618199566816490145712115923159506353766168325002361250203964427227016973214684280519320010702699081578504181589302134982488412575678894385175984665084600372814513196046666983869342412556550867156731752734047982632581920804962770582698381556552122979885808138919438652798549097065966630800255678420631939648273563225190984033098589980688461060317763116849022733318899224117076871352072573805165459015875866339165777765304760383515406281483031825020584876161318898914558407841172099822274478696909834468996501461557733233273902807895073774510999273080288694042288523062895463827350758373073757726739753385830643254305381104630199203040930230884983890424130015059991890540038075620621895355180837862201069673208346941464447629779493535156952600507639074153335312157450414734520190538614861328539758538536827657906269234036767940994283742204871006142315019595582083590276423431274217739917005731573911391802638547251176487642166404655115279933029175944331699227979412469403579356699721931486177757995682060462551401407671430341538458074164792043456863913004336983664738119640110635016500298148945854452351295181366733591870343358452546893585328550050700071335069804492072257825742648200738202841850614861826446298362027133874385957843355824711117289591629710791362786204018390027791763359205421165686317816551319626944491937247329502748704727057183949894181902824578052554727466647159532978462952214006931183264836632563807972129174901589705285774472074662584375757164008386482623346644899011893782822903105414670677285632958865842265099095815998319161430612131536149756710946289822839331572539714603185583609629755808555211514455852174737591225686453926042267882698404109502692206212933666976205781706406321609694766110650499737897887567220107579747351245312601627628398585810059438415479100379448036169037847548053154032215271186734467384441574691851202158407078830896767364165114972257208413991690374801647316637719817391966319547959347448096648892196376641951963919847372678362327682956499795204679847376428001512617531716269405833486364682633822035842048893184748398654834413115034034943193795807279327633742789653045433198867444780105086919273819971546249582585707654939761546576982429022331263793028747779747371447935303477600729492397100931915219186825582321841248526833701092443742356347673962301165514878878586039127923107606661359573557841832358917816309139670064398654095991626252400533335934861337981928757942250842915882577216231349811068928034260552993472613952710267096679093055235083336349201520570899897428272100827980314894748876895203671127393206982226885069204427606037849092943877268454069854306394872742277997160939385029503595925270388030536454653373892306341631047720801307507535233702010318303164046008938652713407708632639331842923501271218152238356706768582935437389705004503211360209939011064931109438615649354665791203331165107687618080818391850634120560956869463293616044402657278610348382786046207090207955382721678814032727459080007873944862243762838613850217015760190727037420719547788283475612088051789189297966337115266821901371030849269259940981664354087616874024886060551150225552241878787185027009464877672017809232469145797886834838887823430236679013657079974485539995629250989821228307568050018266037548671779840185697809470228361329877986635333591453307481134757898687964313029694267085405816883818594057832146727773874672246736044860993247630220091155730140688484191410543512334769305495862102068049819662293638617130242306742116927560508964719366291495605998118231184955020146058103702204880392248999822075347585066538373209636384912609867206610807316944902826158680742649601552275655287707708387826073810880459631311806672994447775896261313347717132505643111623396333242204506271916170633783729509257087297742126318019825026523849079636064613953261388428617384851937201314348441782562153303388576549946581005607736182099378083057309493206440787640812629055556925504752670537774866989876345185249253415035385891344171482308638723359277954818466240038594369851906906948542863315107885089728842638154838160720117135574511614964911538001815217726792989364660530379526588641285482391715739895469232986477766174082450457065496736679777985228642231195015562990381269904156302699174735525869212908848814916753744505295867815450946474423194437088735993015794017221343236712678688623470454211933640365077717961147154765495906180861537502356286392492174931997071810103898197386688219150754251637317440857849749855196972744277737336900459053583516312734301630933351363288012192402776805909735306773186422698812895518116752507972161331079031228271891333739405832030413067975014329906731471527391852858812115298352844114046680822266349974762876469774975442548779908761098452166402360231735961349263968563652310334929674613044914098878623070921207508114377946619689282259744697679449423072628862771128197671292052426817836108354109695484571668838290473532881367772356379681740688503494352896812727480511028089766693204745479692722043843791873812369876651433278314283199231738865963075968619605636414019721144602621013102492415606174540163033953060456968245154689236040146491298438855164004226821929652510611150011002371034239037525803559502250080131203803185665619553081508890503838990959556852079398231458513762723274329931333888873399266278663909693503975536515948471112657089957679605253294491190431330479707095370263734251700072952186108751879933258419672005548694562626231718146833985881584292935299184372797986155667799359150488829663710855922781194825070387088117600131793682213190490180351489285479869550398634668721803236057553863215317968649866927303409080368350917891056549880930631032722565892956575168246546675773143404234147226467375849195572753025256544458080326464796602693959307588160173654200191168946901486774084616829786811213267427991476087010838365748949957304550946501939306705505354340428589414963095561803722202920653111679783487108594926828558314370794406516508646787148410612597409763049671898665451743981065111352660045134930478496345608667595169139017925167514707304763048525570980734543300449573403594979633645756095687135657955687762471167769601377449902017621035768002460697880842781086450964340445066060446365120574707341576280398712693874333825862947750736626841928091635032821651451325211468760250645808087403547548762365111692020302127221653711246477156019466941419593999721362633554374379324648033410946687804450383020710274185404780798344452917347507667041838160286631373317898955995591047492514827871723492989550054376640671540220942223017522061595126897178497009877733511094870298420891755265201307207819660913831233201082368432724744368553118296882954971438996176875763219007293146783542919724941705230096989421622873379249300182991133363605943903161383721518872921594236261825820529850632883500201909966194168821653837698289232894816877361125711173512874227936885021681129596038325924553748946456052562894566154414585139788198869532928289526578163741539150395791159264764365518244249101398374447291131441326823341726191412826634573035204046936903980028942780724241096080247184799166824676628749766557706868650972116426585443903094312929926839528114934281738913903209420338852369669380259434562780871550405083107450812516346501655218792505369165525403423092960429070186918110160389931339290816497442255518579877996804660308476152427833486813601747347460163738733868688706189712349911590903627537781830993601139102324126847496457246596652493966618906481856606195336273442023926648832239693798994105940564658432172462131169175809641905901317347716551747874927061380321025250746626198518150453481160831717937091054215396365548618299074231104505887194904864725385830381025282588530927952657893096951019033542284219310632623724752697236187879987914964441149046521624645377781998628456081862686968069089176189133511770305603911354187539858930150747943060781046156444184629225271383437395812577007990639043111717769149312346138898282527286008936930166053619212512903794676253822662851673333604402351557919179144636749134995148114793966760524074546237151732450902926109917944551599615206774154045710970735900011406425223886548502814040542939952513996264289660196643352308263811027937402638259852403108026786951797246601143643457264515080389793440035090797795445913317988181070061264957449078574304670231246223580644399240300671978269639505950809202004074479569426233369902899136973729443597423444509627480106027911374603635521648182072513397186619280627028535787865166842030029539790394578336972016243664103222985184840784328030155288169708960131053974376920286570568068418019465138844863633654944350256260660761463369010849477802326218137675547626642950328504471420726550638829650707905616577699627697372711607108280408823380063051419612110493247974447891387120324088727537937344631942894839240700693844568993046870237317005188615881403854072794326194219016956706842947522680248479247464243738206094645349643309600909064119579264763570480950467529414161594649026922252821041343350459512993193614131207232194800681876587701584041080342697499574236407107367144911437400126379246625584222602832254790937557792485914052892780816463228902341221141183132291429234446827158567031925350599547109305237859009198658911959890437020744539674320769194658529779463495199247421109325655288831026428619030884759163540399010475672383652474898485842696547568843788162517535713840465087455839110089078955297701301349604549228792771050394944241550388581483344822168422734671791085102625470948514025374528899880655707126772224262103265260407214930642816535975473090306145978209455753050937358528362621817851415613268590756981997061846497516160884237601651639999350734628601886380633364443483312045744522680146841015003609230251469822348246852494282120657897817139456538296021583164557272253597908316579997159571444608817245404232551335996259281831298974078891745863329656627819535477645687013662035854162391943003089096167367646673306060651438095077801068465049248771208237610669909837361046429273664399967123349586945809064235097054074389563047217486517620485642994985154185017377948945841908024659708433092557543616845011849439272301507393675449784244042440618760514243591887335597422321365172369979352733237301654043673722361390306684103315817970016298338371359202844323818392417045660233935473404682323169211476118409351562089680279138317484043453228845263530905058256097398600940641573036528302043730628917611769812159182939881527843717294380353359707774988538479580218371663396895781725292673966116456440098277378708178783371240252458093960817331351251913488375409255829034699171274206182315179780895874498939372614584591214229526745649338084439751965235529066839524687894996961868829588694945577338866590343466602982349105828927115618708667752739855186808568391754190791343417044135982216958611838798961441201297406715997404394408983390835076347125958356782807964521454713660885158229125373342846878017425058511604339391269201432636394114901369069370087030712591682356551397096296252946015585467741469320866638113803931462406712555784536123511391050094956129377643916930113851066482163409588311543545979694746130211193110459303355405525066107096803495439204177990445899589060634821921346287742217246813220398016368294882958988093571631055857166506039290619509022241696201261977838111367244995223839368370138525387371785794674514847472870007274099221471354530348756439245075158919114782640870143262269404608011958955633791960850294706221408090960782059119950140055150300506830920444864118444269104715718464096900315173517617538040619255004316453699361389925619125766051978646393144394960622139114007878275312775787317985053247784124231432404995070917188784480347420265691786682500402849616080533768126758543909596359509349650747225022210402449734112327380221034455622259420423988814793438678748287316540133031722588857451427819447518628114888967346445323643204142808928286935429780138200323451244371758543981467060404225371108423153475709491724604361071510917454111224857133892131411751140992525301543546314396766303827143248696719467939258602813612573180277320756272201870046969809531282060558715569241200168820636619271598198068962934286433037476257852663080647459640431361826275437489646403434420830813562879835841375034584292974643285165448398625731578082951022540573591039657375037332894812166602972286193679254693447397142589216721345220176542913893599570209898872984322647402932783080144833324143753685676267993186738418759525508080176888819670146555258411854966756086389349320440124108171747553836074112923757897541737559097920031388835345271075322439716839913860217961516957577464754056705280396713741195362545411925540939240373087997425880277630957818208181049252756376084467181753435486969739709104910587526791092288756785827531177218344294967381234320539406403534880095292353859376284313763038915454104162490818206277052631799738125700281749828940744938130603208506815831459001315670886843443025376227546458272679157548009043778851084323687962048705279682409282648874970319981052554027621217786013890114299218157303512452841449427058526185686075838073456486042505407985432915104019194340803606639297035830336808602211148788060254999504249905348730962292091378657662133989108581505783108922943869985519042571561830087000051201362297183195080888661569508009099286966778291365061623746115316465466674273046312021322351249043350238931437899785082495680569972378247596137222932803325394818808771581503495105948774544102143654456548702141088853160194018161996599080925722610376926380685573155823525520074351576111326442401664029092671925175443822345329496783385735139537779320607758205282172397802130430939798592723574240364573036263517547520986137245823004684387293248267227760483361083353881523316530422224976963464968979170516218774693750850380375544903795363122918873034378254512981465367185737026784230290848816004458708953823913906722834408130442027203256001670889926014380220868033738528674030410649696503255735029032486347779763187133146173811928066920722602216942092624942213757198133216485464898008809397207445298590088417186977587927833092592727908824464869464371262921784533005320837560316470271440536247920763145864507716039905763082209606139793364077180523386042950053598476018237341696980741878963769656290135337336003825662106843672503459213111640137511012719892693880358043219475281026887957799095638743816584989505640348432153581033042763692048431544714670137181639269201061161050177280940191836327937349701331099385933670966924706448267129693834865194068283191578963637106704868303028071901373046358102113970545272855772272512323840042252022599431320850725505201633171360348140387335223416707422021122558349771289677492537279077701995521570032147980202556879357488588295600985050559083555287614487968558720919388714896120497383685932225407103770753956201492833297390272016406289434497683941849634452434637954069784495493925208679021603275984011066277383849306803061201272568533192009935355771761461491368536136985806805598864374680333741501870763653901855950822214930761529992730670892534321312963686453249174960070109518030824394904577317662143320559513521721405965212262673395611416066286062201065603084510288581163971911917500299777038897845456068230043843915788458683732462684696485535581737745334372154781389335359469947342101849907146375857469999347909500886552070840704596456091847945540758422008588320201809377978701511201870086144577506217449483798227996627061893936333568894514815575797641579844222362653071857026503108940917051688302656099072029037132542593142767181075246965015196739656056863959928119716976620227029704466746121351564835033110360235379040548206838253292765689075684265047255645872994298062267483941752050366444880489600554023977404129254201059388573508405072927409199745334245195613704445803207313701236764001991760165372946291924179655536534804303515044340031717418639370878373290094174019771354740769836738138314509169945588093233606781459013071594599950269172820168397119754879195556804596818514024797720060093334493647270188373382242346987709056940381619537752873099807395281812392185212026526726495945989497143858058232371768306538857229551398731802711862202123023219226093741841181570331504634074998939949611659649939591435596431485436718077625222633987371967511827406649326822409924149719979773637547153504764786729889268715594389034172778211913259283144137938104127025482627141151303589282842068585642670241028702475471679333492542480304882943938584420127499871774670092080539226013217602740793463622485176529300238064527466282662012138386733459508066474929391561183125404990318061474851208131049601368508323969445019635717874135653729673790871192787548312310921819026362413795382704255212780603802512365447154777492292887883767787160474759259348414902744059618195613794524208532838623673454570797166816568698354804015628051761413688957031097691469980454660233087332769821261850238535209733045362354610082816400806904685126767676082517417748366871909173078883575209544589716275261247667217754047803492829202249004017205575639482755151935208386538060646711264823865715685303921685667721240618336958067880266984683659096396421576873732099338320448155463543983844668715400205612498912898436651805250336515197709202067648728374077889523124893758943800569419093704014612717000208278125757129905525140869448390528652768430206851897101308293830167246182554947245048622703942373982614284596582698752404561174352309177888968069856562272161508202063322405941460416688947416649723860164127328172570419324877144553224700364083781132866066316558798017289937857507738863857782685786928465434115504867463088480865218666335940528286467856019930395164480082227422412221388301793579790649606139309219831441690217239403892607897440425407984491284270484806643324049797747567191100257948951275616752822796483302366010565396898545121877754115583783684492090522127215201857768303019052858470290043514928943556373747907429348041947008294255568132987002232574751212228175110553616082969995308193086126744716195617551937502718903667653478222188935647024300484314641386659419869481502571026097495777003139355300229543196339859246183156305410115256885846142020670505148138580768688692839234578979287532094157353224185831166212374790172360073542737688403707621093404112556619266402715239983557788022839593075566528872709073080167122658413164937259757853528731929647582003900659627798290408333342839267959725743931128287219112189055304888587857750883558006647657820339940313057575912885356527706104126600912734538768031313152832476288993045280930203818605754431493468325595321599768047899051531614999634480212972696369878267870060203968523639612605045062411004832748773145153932363566398605082240231078323756768118551744456640801870385799987720224077528418049861559881826098526623691118691858674816386771314249828339697795116552175853737619617775127614105096595160926136349816495318019312608075252523216532250384999023273633649529482750941757702248807587981484462321533276248059898171926011034921010468941180234363815925000231709510716369992561586281359116231253683541207825501552629007543812722891884738348116993852717280230462566223925585610852855172674115713242724730589386368396547160575110068602575978578156023894129753433461067165462154289268408985725480319377422704046829135071362481354433777424345980164977044697972136535208742873867369129536521358358003063761825736227570229246447423296805092350399870270017295093024813522286832706139993401721992617569164131321165809189996149646435492397758545379937845803082655023952563733305302116622308236871873674784142771312620437947886416893260057953893155645086416341207868751493788187957473502992563510236203400044720150882198447839219109421005145503435288065504782080382458799710745356618618904724831171328172104622922324522098261392122443941162257003831854422371097717468763295080180763976849229558792529408391384136914951441887464831794098816506782570887367603188723449041462171159422723270763141045063094280902505903214849394437657238374106478460438001020526427048054495704471104728515679488095314968125454790987530329881920881392249507354819475357473100379348882015531911367458720667867414836136547471904234087936477259590466134498772614778064333791319253404769091197666046593983985708154594721386568518216146306188556883203705832688115074453399861672759462962848688069435449308486596486205629500508093433281271466823650320550839719482140732748959064857797909687659841219418066853069618314372604251674471733922654898486679220666391129018140689550400336239782873791584663629362038568383217288288350424847825231350854804369480272985997680983372244060859798052546860907693678687408528100994972755695211310213770356671490276191891987064973027225482152204899352775081674320523409408465567408554192054766554215458338646429962625878174780543197934141107959842827279728211347818212356745845144459824151329357942336617360813099664257844692945717858185309080325267529699282543445371053505535091690689818796996571729433184763228494420119721089154199163563744093910886392668629164907396091966798999435283400040304329739887734777840807183394935445168939140563055996399354892054326936213853514364583048008577076687830942054049667572285117310506454892254590175093317676416486907860513850697265944513792173913779022619789287563082129148226371876139444963602638917767285405444588600488008281286834891310548115827738624274555646489972412779314373763441913280371565481282653318636172426223139229224333379121983826340098048675055333400137839233337109090559589449145907683411323560250592400537324924606616704001560475677488780359517505434425820494629313727092680484336476841025821225172181150830660491097225676218352793906501285556313222988876461419413198676007198751361710084081632872604142446728197645247162085370060803528739608276064641989873774048858334422138822947682588122781741297223030510701592172628575619122706246095375953574848822010761328994018708125990600226081140467377051273523397694751556025160972329836670327020610818085269861356755298026472302829053670895191425295673444023952624868926588208152572908193703747161630401077011191836334628548451945500375470919088125709713219329640083466287091037863909527813963739115942099435652872859425357908493892039473529491426424913988871279403912697930490497412412862002924103160110997499504764273324746367254584709920880925271700060844730153858252218007380717814333976838453293607100780904327017264818415092006668690807301527220852550947255141815385308447527873491852992743810183095645102377823423357858751044363506074297186036458275658577217348883301653276962216967596438504951128040355389129864853999680776653108714885185595141192414630209986989257669665767741146469450172516090169274042276670667536529614446003440092275995447446378750758081870218788270369043307893071662397109215914422246032500448116078064278597650346593126191278139545702139046859967518650752341837159100592910592395846513550995140089655725637576918638312807823324472411764086813929121022138257795637414422769903850920589475226363476261458946167021689563575639120122086484239224592202670346065575926780305035071797429001866048785778552491621122859338469491492968888349992410916558669219967549589509575306639268477026993487738453182075066349063753825481783572614676102297039912718001885211921443090484445209747454556890110965715450584626261454725160668395361147781622024862135051522160834478805326967090679236900560121166846424107965725606685946304960339874937224438791948903288779580514755305137050264080441123346814375452160530811171191022173900191601819815451258955160576971503301936325295702042409880065234005594448488259455927594666156096199454248272219383016033182093859658792090467019044172664829059746538517194586958643898530971504340161116831915529448307237281781372527430365390760359063685682626740329549013773125285409495753958212780879807851219803277355710319702318207078778982555057594172250128239758478289639605252708271645311949889244096892721289824052711228982832088156794210786656604507997973087292371814747029355517057344071706034194964123504314683522605606638371888671717527660054535965805724926010734524696224477742733942207617599661597153704872109825689211529377693240801161033579958169543805156261432405667668159443725469070420018747492619173403724645144599999822896146660514032273863494432325142426066078942622779808170504822828114759776987818279220740142849780789778104640996603991561603385681231517575097611836650088098620399814475748830717363142480463830964918338060455635823786936664474184652771822067846132808142725022966744511275764646113001167379525183453226943909382749316976188282625103727413756003191815016127074795672284670427580183324807904372824033056834249753815169947184809283000502146432746776658730310900316075743762340893744206316391385501561675836971508452850575866878411229426772472649164784081122478492393767761857452955772690436152690733475916094984969403901938478250243986543250813846156584147135833646237239214342403809985845565352817954556185824132514336813728775172650338357920695643322992647918245203513121411039655435871674517669557780003849325103750154270095122566753370693125421067618096445708283783478466001444648189151499269034081177506677549457434336028963427924713626565496158182639133028587977762306856814247377969263674689725361715921975053178606682351413943311662305173051820534006343800414790476546813682868796640970511180178994783999440986965063657141205051330780525655455791580017749060141069999621904254273291365135612075259402647952087896259504921135067145566358354971683521903993418375142644353694613105251448331672734728213434107694176752452172067779144351880836117585327216782507503649045882580153588176956412294514750561122637730595492969298860195649098889953378034126093060557888466179142652187369753625431143563719681223710798858642530687385030288719267914945976386252828025004111214822668571927973644352329523132472723777285188980718064659662273736280011413545794178387839891807045064164416827281508465590243078231140535856484186211549589387402183318348552148908433206430220076787500973925141575633262257384127598902351847872735756216281342796015713752442184175197308564256406420567963801369475816040609334437371072000095040338607342211023625259172466462662160491979915321622818676486303049802315650117887300478247708043435763575068855275629422802744137631376852944626758973235617577113966659764689728521723280376104678340206853055596649740400590042279912005591184082511923546428395655049873454087470935067594562295578962866614017110548790976389960078312186441667528451794618279399991137655510326332138702696220635412776817665758839478152674196976696548288128265547525187185454395959159521391148682743981279180946439433189635961902222222501133360157843344720190858009191019704587855549793755967446908364960463824575131826484208377674001351551335089089970855998308057309283418845520899712515471893304986239452385418065898998360752505759884431756707851706651347966032340316325779797065585807098347154187390206857271819150210342756140762553204156934281931972071723275489774904953454139167380154727257484303714673027555038909905880474709408925548927640866561242228594483130285745551742167405774236525218166527069104913430419090704661908807755018126897345449138425473301914684324703133051942580041190266654084636393345503720239852529168460559038166373469805824331861974135336456809422650595858649641758883149531867482286276637472754647615217263343165488121015569387036992570948675402432401858406707110986279791704190460143846882912181609847184977256202526832343066327188303382955093356454901892723926501980477779172338521231911310484695677606995415373321256910085569390540695613140829898659745541776899375584952024048296188243105823512133469890917563052789059190504566769995138374023577579364677069113975730759250839063957808545211891192143647388111784470044389527136221423186859487712443811952093580285840259941912141618268769657896591092312285207198188101387965809437185351855046776201611731403848616356686077186048684194661773417212748481757054103784969638564347406571577452720841545822051313217661442486408465170340014364768739873730196436000053532569958766943370234182717460204133072969679357593695711236890917745694942916814994558365366140825799557959172912080119405069726438664181520196941289069095966643837982699440384447274146572067877576563295893562871417471978211481666284645960591284355794564097512844538968142268482377953969792072461244488791188959060078963486437816292947921928694177509018769165765408706251488560479813179427000211438686253577218640601677644971029473337087474622397125609892123481959705466384698575943653294578744115843602007884551726443945625032562683186771563576372308301439875777594019492343476425190395152137081372023920870432372859170080260817505869607559059610634629705979391972462313507703953878188616405474131034979445088648378846639247345828793860786770362056114685126857124998329712467993171265431642788806703378203985807238735813678405154923478382610701199175271904895677899437890775780707050127709891441948382002760006911842669118597367995838948436285140173612295842678838591608637053811657218317003401378735084374887592467195166362089617155357640394331142946993159230350622044350430183144457088793369754058287789581058864631710987590905096988305787863016297777941685948426181030804389200587446175909913485369439875745146596078098516141151175706624471494655823454624529415428159842802025686273172689150278925983518732923818400261248162023032282418904494184172263198018604390668819030926438209313379920421640725450682806836650445884478826299481458949605926167374838030348165129910069688287003721410919039499510598352738328925634846892785641163651602491259868454815165845530194580227793822222027117274105546752623909722968468516509283735790292446251986919990371967347246595998062230698200171056414953837014394844914426744200931880882244196545240597574657594395956399939809571961323091430202359127554115240219250807468089719229507324706968928747267174058116743159827797506840742068602697731294283445329021204069317972752693069904201512336938044683059525342796270884169919301032188692456717022489254758295023529697520297087142840328348892122339942267212058695775887145002495672423161671202418479309197657554820452712487333703034862890971255553381603820452222235824216097910820681457670787775456224574788249243975036459672211711440528426358910843475073688544420452721022390676276187082382387877464892715696528974230924892815348630891791460160857285766088192401783639774639057114450642993946685033394276138276581931822707127032834081776440237572311627368952082342500133954239592921981214989744131996125134357157263633330287669539924579364217514572990743798846953361010884377204269113128653813949686045172815111559790351531313642435316182638361287543098118730552755969362085360851587272310882160147761192445012463144948996148479763737865707129182011051450774859200738851227919618167586596467655945667162705687680176147092214143493029248731708191289098005254438220070390045091351336930149065694569715915952464093241641274292142022809402170891991322770991103638437217286919863278806246158877495441572875803222837258145154615357056788925115986585638474002728443080695998396577255016696015800028752541683051625287197765568251073011788610253319839867425490017929221535700463788305118662712015680181168317977438352849298685874545124096348404813411231370246088665831203543211214280141508101429298554295794965216703870108450399362958661333306964122275125773535165867591604495922948015411239880095348005336626083631246484716680146462982905855481027958695256295255016678606927691944564101912769661425710264595428243125128179182285852895113021069610922659014664800443023762181640713213567758938676494362569169808396232871794322536485613552262006010129179476891595309861915101262900394096704147952459315763007563740609764234472614970110326770549175153948083893258561785267174145881100944128034299586396493009066497907390562550328012250554827142626887726915347457083877277518131483127170430161611211797612318685649059715117163640981196537306620491548148227585997981093690224735697371436108569623666082894096660545293932961783493460129325903738188648928262605434732503875336941329401740911121745011087702501722678481004711231327246108039206691907615057760330723906753004460682298180852233477613672633966559531673877680004446200700379502138459746979376860926102872761823389506158015778431325962018367080569780307469093304557800944135135821729484207175838661418194387997209513712234226634250676874939737872486730019073161096106810303057672415379129644118707147698950606319151880924879134671031929552855624939986847834558437926500027730861169571545462676736663745064663228013169045623318806539870514061315750411540529194029457862852526433549984097447054486399469337158960825333443072011799471586672203511682746151846529164864770661533971012968450794031587783787212042963952538087214326324159615815610152538909878931524304168078385471672955587794220460766911196458716233460015658648333546147566501229718554353829892950874120389711126701680225374985276889210719014238986844123103622393720754385959180621239744744210798167482641158976883476859085144770208234610182136260530813010098759180744187281310238200805711127958216510910953082439675732726616098083793865280174285689175902266264832946230343537578766589009492410485784176743210606181751011068037022061467117699984679843490884992115996812167627737636672691636329196479064897061906059081939368244642352484782467340208668793266185127331321021243233441080658860527332469894172581892814497702676332470071019344522004455704476683005346279253562532654936038532859922931601422324087154055560759391639754207521665733634497331708883038306497857970334448655681793446000863827924295100991840756851945749936191539407768383809194059580162658364184234088445519497653531262768184287257278304391764539154899565245627904321791488617160179618491561084163148040450899227630802816476948163194864749134516714550305035527820958802593025055875911972548177423716701531261763431116632997559762378469068608257243588193284155798252387156054312213168970926055580700285505373746537707110992051953921234029707045040843989910524758174195492486534376995186285500677956692816448194068233317601384667880479971488143300871398586742086846752173932935283622453965712445774914477221430238802231946206851234864709292923076617364995702682631123728411515537375239908894003350915089609215340124460241632132404202945348338935729805106133365200487928078044379935108546003227551309520365463829194974294131249042995392639627939929312034457123065231224370398791784902044742048748750637161183213190584813255064870492490430099623083912296435675946423850913626619505375388183525769344635672973604587293777783270936502795606278164840005942714558726898791076323266497732422343539045177582814991996183676907519307050865221888287174326409111067220980604510380528401246667273059284858263626235818852000759611851299415386341190360965436837895810574607559838110462949063345019527103234741230650307366214662346548964538578990879493491246878152611921479024077494721652746096672663574409113767848304000474428012001886216346397651814673824713536213283175508652019132653221726489823921142530749987105768024004437522925270809923095508334008385548791352240481966464500369112791313093979413314624665460307120003601302982090125391935766317370918454516177982508777856365035451216615467920955676440282991877555956986016028890474953455907128184575383022659146780945641700648159351828881107921427411306673920964589780304913943280154572218197883967133576920380718176283106021982475610998299396689779755917875473514922244979368146698335325538594028597591626997843835129954098593752848154842851210567825606010597097157945354492446893608752175007025906418388329867300967170100229994531866513271394429066824344277039858822047831024203893116645768418577610536698869104370805992350025070995779332332262789017297384393948290410655626644134169238706384603699245134822902718308239046431258143345101174411138480353961530038337114545425134682835570357405632037532887980525610269683176577618154134910735289287291957346048360495011532422336262367691981401939486505539372264746226668513131638623276657445770387315614954870936889841858724320873236127624064211939036531878618746373096645819215995145057649581318313499624634582258402168537072620257142454133988588155214347893936333763563173455875878788044725072190768437705677869619740061656574757659753663692891938023440330615039258672990878605479818160857970837192908557803080774273824958164607116830091892438464557455235315640962359087990799998221322185833891313158725448607309974636606272086665956174298270290559770848642259828177890379138720219884376175580481647759336533994363283413874809626270266702182976164017178412741202677443330615860585749065834780305697640224754350592553591811623663599305806269617969715133829301534509655620020574544723121663992465787106364724031359069476793520263723832865330085049543152779028754418495039575384266665124178253493664061614432702833398907439291827320733021045752756031670520754262153240054635803273557211983710250453676754736404819405401849361241299165082907679464138501742617266214146044614138512181626615176896935740082290375372747772080947716464808045536217882887219273728711997753987379643333475855271354768557237645370140008048138678783670810211617455243031399727574746598638973389096997814557854650463989279283957025602513915717908160285003931140129389214124673444708447630365710058028685492560089039058231982987484069421656641872693247839129914661654684718709828413316384588079262424740311714052655570244137897456671392109416873619269357197408060573321975240458981920664095194820800689647936084777418563310897460247171216204708342827987691402816305749411537354510750713568180000900416139270856734963466548828728790821788888484589237852599538003889408946645848658369087736113528718614630318927561684383449047413281742675568258565088173600099098629595391863191937623410167525511644315296185670652943133661561713502468836468252942166815494731947910867308106513576126195836980882244670716790519574843208184618229123793934076355103485284860811297999140650113205290346348185843711919179239163146846135897131293340260808373538942556738851141437072203842637969477549640867401786586103800971791657337004503589141623730035781036380088001142310991056117627047636988007364952274343733075097809385018179814568864907572128844925852232621722600542007298337323464838991520661492750209933130313335957748005848674069359662849993503103349900439103148102624118101884658383129556534911823427938967163017157685073547795127393855163969642600976983194744433873850485244839886254174706255058746836929765843912627150927475580444625977567349213857195501719014414824125395526811393142368221808702085545796641462759932126943381130340063102643967081476522297229686182727272969971174400506488329657901075858549697454034563669007084125035933216937189369440498582260240393006422780005450540046225897818590406058053935257558953594991338080844906691105926029624073454232053665151087951779911877773389147469856704018804805868565827894415974369216023686465435016652462381805641659491178970368420891653073813628867838245728555832288727993222897065228632681351275004588420514210635215731131210822282203234107739021301162615158705130128579031947349070259194614212174039271353762751521823215814217983839539820347271919832011646043170487923781071337147854798996625496460720529319929766741170297126229159704293383238450433599916741442183304226843414523252942873689704151526411809064572514675743770667871176421850299944032225345787867286132486936657593106257165558964681119941225173492705007526694370285965229193285192143664948102229115969119812372382509305633026541716797134555476559804481634049188587562388965854657745482100409149643071567552585476304996318437504399348542256837286388553195202456272853757774343505911124934850013276591607577067830706111861395767997408045646638174344411518283571940813221592662122825901298654328908309141000528887279304756169795109078347909259818947171321841244678476846666462232597839111065060721840758580603755509830069047905239176822328885882416208682334372924420621041665300535608680162906543632455941789375106657603143326899485987621921267538256564774850125307030904785069515992583841455076489449662479070554453284927812311373283624168276260473411530294795276413445676060989445073967010181691988941870926042111519184594117534888676549091885786512171560892872745445015174735150840311773146014243907418669636411697314962361987142849901604624686257844399161681165257955323245869492087137240574463104702916280465576370778724131615409315750821378108340356302992187930538895107782041214284193858312480223666421300529003100118386734052953251581664324540629093037012110779325972658361620678195442694639351883589549378683770934999107408942187391431719373315297534582701276123822529295424415367939981807442268773670473239019986390740764509554129312450301785408220361331503182470927368738166848789956556936132487265632792986080718476150385211469818897616212207404084014542440483806567188701599398079167435631070192047646543166297115152875413733662858283478864875442961189475582248283279558484345084701273910956510622546001324559158944539795215967258160560055793068248876587555353771908997248126532952528840116879326804037083744336961947867457493023304290237955333793132469266148737432926545234862289748185024076518860534556221747868505799465533093989561525937534745706369928427435474918199843435415532559514695945594423187864174949860780575369418450495045893762515886475858787087707966627944290462272684239786542993835682171195992778559348129137922187711827693731884950001641988954657927936712370712486888619271065483617273543278207094956688667358745810533053909126470638106772762940867091699257989503907683067033430196551369686870186081267201751806197361213233923683794377437540293023178529359878918029219068376929364885444885682294990569110153550878781584547476275576283708340979341567082038448980830607229004087060354414260956841190860255126977059977340945148048299529996992138092698740762991742782235129176970744117942294967583066079423362137306486475490991904476787002347156049072610694407423966167083477136125035365218837263625549952389696635730827820365650141929897997125231121553376023965756506427870691617450647015869232986014102159373005175247968927687767896550509958420453934266631790651500335743257286964135996788844318256684741205949556333109478791529977249110974881784405349543321151827583885387773953503806330654705333374902265730374367079390466778182568504056327069817725505056509960291362371510143389782320257896007240516712048199082306138884485202167103536186263669503966575199372974405289036386217280995592945148847754206950196029444653001015738522257413714086119043635641403074071963895178604893491248657957396787858435257992284042105586332333667864567707179589868951741289235080696670005558331753195219060117931353798935051817860752696299737948087373665307577176303835155500986167045182768117817310448735010240303423610839678217424150192518705888453478348654776692891988909155067644387102644295631207967601981849194239836344516512006497184668787095888284162530778073935137626490571600713736622946382182947008211254898213520470819970164570922165408892688795076754340802083532654047188701777133034608059434330493994861694144137104805380676125394251595286269985777319131472326593241484717395276260318607127062436089735653415003719306570696153184461421856757769589185354612850475172817508830298505243405919131706980281540760036048417105850869631049212963008715165857978342700447688168872359148533663733804361154383598823464259612449228098993209578430653633729303204920785646272056143163708487667503616609772595694992733089435868863678816234953261894504988185912412397336708667842212148847669232847801048948668034731322807578741487897745683027698300250464625119546321993994975500197430415430814096031530132956122681669279043009768662320381938113811414132301592574690082392907080312137697576838342813753091346331540976628225482564403574781912323829269802709634779583077877929182273867231783133530529817145420889001305476495551852852859818507498078389340159419061149775777265674989458389568497092150024804860187712368262497865711097775899519294593162740161103979030056176854104144892469664608980076572676222506277552668402624522316497766349429166184234735436057622982026206994099483937801263511635483252359207763687798520889901476139583778266277881970636932459662694529296107968457142196674618815083610639258016886982937560942753054352333121660306190969140954682339222199228985281442880220415068499343299864083799790015024983352970798276644610501198471199094112543579737362656561879494555150146355592234377067371595610021043590762967003756675991077708193466676013067423380553587253865723787020345504772079841250051928759561902850805975776377905008630771616999934670784193379123003450482460225821423544489819605731668562013249647128053856518749495837954623504090757208455502246327109025542018748144627889612925685329251430754120368866275062896283644131304715805527988729712725682188545890654818883481744496373047507059983806223737748726920852941310611573238602583679691082511090562924607198700500198876773821293811401020341405874745864092349105240284693855888404941649647848762178545425015439385970953431594177079516710365567169430012065144897880685386297944003765041778426672668714436107338881556677747510892584354940868638123933696316956380100543482202168532125925242053290302931606898545180847110750457771146271524154823470363911020053725061842935568668691671834434465940651446749334576647868351730449798349901110032060237530898812992287412176000340491562756658017876989036734197896614141115657046522024940182580273656275694849243645772464924837006139334842804356747431703880014769863554795941439014241203784616133678362543109300388384299147428190449473729188039946874614566078271211974613311679076717052631064970564872251607193348601758213691601304085967292844431861202545153008140085664421972430699262386050704276313049953417664918407419434118848513658623313461434153647429351008356528168453999782586108535571460673217293578030327840457149542453456102239025681844897862709061977297832588877158222992369872200142052822780215282579643677100942519025176376590476383766291514401751340533320668593890749709173290085372800970347493146805189386691274039203212116098050486383385254338073193271309255862008398577104330198438891497587691136122718817388421846186618024579187962353693722752694599593360013862230147807508609079146860809529723864996458062032474672080446638390082381386833608725982650075026507979756396817953386666549413352600116010103617125418266143305896367690134081908293287195060204216850323953649164317758742686778993524285295570660643263230321121926356557414103507181326114981787984857376862512689390441709146976646344760800102765131285004158090682188284042264825515214079318120391343364239095653950039843417984749926778485002628874966619217153228060288130601101958324643239521973816823564661880927060551345839891558102888851743898236381402537655312274136121013202988451283861784323901323837860701025536194633874431933525570622667075863710889348243450603961740074012851067846011002805930379901785858035324634657138767418444842014843083233495067439564822110851884196092362651179454018519486949303459597275583443117468817364768696827802825367210114005210738731102180700634951422629859472844333529784841930902725458482006955739645214307141654662670055422126253529007030757867965216298472602955337265429143247380946631690553860375674581657978512737293835355953272561971818693780095356476538674968749208006929808432771507039500783415043448770448377340568161051926416946607508109103240708563921457926002054627062561491374772212830895523995965218891462994630389801348382035880471548170320243981230284658825051313958123845888660202366936590560292062565846541999500004307460217152291588609633639362710620744799124294563881493017372212125504164625026546831086809461115018169543396798878071460330499208712590024179045712700751013309567533930872905574077455180367140093889974301000503830054638376153855220593994312124146025139784761526251020599896073215762748969896401680444142894155215601714531623253813924485880765670162475211643637750964387074968492047777930887396928789835632565810069631274361526974429459904779545235960033236540216382352383377871797918902003770171543685678530062429383262064677919215972906580325713301872636803710967481639346968000258630323266618106218102091285951145612693424472679055668655208145414671567811945413462023148467261659288949408830069288446845097650513606699087185732249319698357658411287099065308400791487174180248455234425928773386377382417253562989892032039529616371456076789498381281953134336934234044352214330571255970654582302590370351135335346571640042519074002918674138291267527192508572596989235709727704749189723821485105750777673307940751272623621671258197064646366903601393231689975629120757011521596433332850270799149883761001284381444841689431073128226692285969986125321142914928035052310810183523715530615839318946876848527783421107884943045870613086607561156762166394464525202944170021072233453621855374861423474962380104407767513184052258057805236043313517434286915729197823197297238164304641918463831301522778376416920686231963982830501733931032274881573016487611866686490527064500647737475782198918794793745548158814976073995811357820896905939896446826248415381343504725807769736720142845820245222596716837621888104902420240556627461584255706473575971445512702900239586141274268332673006639383440706937973545132888456632257869131496430169768450462309309963977049636982187792064632236756880242904515054271693953138574140564685182881278036293395020164577667110410571678752630122061056758266487557494522632741066507685043324513967604961356572322877158236513851593499084488599989113209010902804330477151797702067336440197272974576321390509030528970269508265653552879449459110062758880621536662877825797534630158046641453056115923452991097646693453254477355896591886246291143487387576347207835178898613694853234447897831146724163685937160468977324125547205593824785198767406665633786991810638503269498671963848056332656038852789111617756925369698294104140151451690999697203404260497482439090713544014060313870248163876067183890092947446902327703201606657569686242930212704872962863269693777418555928812434501497385758801322130559252633127661678332291369207008004752226747186704512246704713982025648176526266210697836059574624887094298760445628362661720922060295762030159582441223023684840756605028051531600815780356400887011924162946331949014933380420907524387272896270854386409989387548302474745149722832147264539518289122748994250883660212904515679077428742151924743028383585778006441518547099976985849923460565191900293497935119011441283160400632640779957165251338170987365638964900486849021686750529440930698380855609618846022979654515646090807613212935367109589629710328285628439502207398742497374017512561228296735126889364348741150004608160940948154995599734810379201709114130143438047732313976922321918419018896597327658064032411219931925883882266735657272477578931486293109784369219486370456771777224583553467844112307242994370959442456968234312241789378864724585444266189014768090856139495677391487912739788746339280283535885835128167896388518465042623393179315206254637015441421350071160488552743715252493200851551111970245483630158670219870716819389080110205898777923105076207892204076325041421259641502350645516107357924568610882270909571833921490627372650343116061145023463125337135080758369366951620181331915233451524046405879799172584607878920557612571165232280775138982254950588522532372083871152924463556903576417398513426303199159591699638901564707989861841884829393050792689557152742436551583213357173792891302217317644394055074300225069551371962100543757860365098785692989724931908518679214192823547908828388877478262985326560887792406229279246445625072718931970134178772344347812886586404078515239122728731033013900971794790124652680893137819475390766373576339459889511871559274944749775403062658403158441480023085629168542458120873875184511163001203150975489871781591837834964260767782500931314894217748850732677082624413309025285044314855592415374333083857141468721786972721962066588118685821335253188177422362449839214388751960270784228530022140706323892995808690112199650640482493602672847854285019369088020515684486913974572196359710068926730925393651633686844118689646287592194412671829286629192591792785320811600762772816965181836917328859300415881501835243586911663810228406299712486999929247993099873941030729226211014464395306400756627190336347843368850552498994011218297023929707143790229061383601261583206184306020739180843331379032604399398454596832309608719167638594001487565358829169780555197600664493432363264132252074600992511889530794053335364664291032404418102407494783140688407162697019231991514728957280671023026999853885042777079747479739087687041751491293821767999918665190579394479378613906011146115855098906029846667142178225842827178150445575894431329173279940921887299254950015099805102127623445614976207937133410073303498670660136155891621901900609044702953249611453551302301711617598404163541857635541131677046268850630471700812218055896782881208744102130312177413435988577841915648281027148640158805258673851149718643080921026460218146436151993246433538191822493169305897701766887444493885348111043275119934793241487083330072574898179613239582305702068686955636806852801993170921383118858892339074032064732860828814115886937214550912855228090043208474827835007255480931853680426457905877900589407614378427366409808275300631999202786851587975884003601512780311618904302341997092395347664525715037080103869501802070133677045501339329050183139105691146850537199508690253694026627970160872906732832570556087520169877505209593031007419689420148339227068999609807660417873367237044198783195338531903889377106969572492874884580791163376243359815333752663175497163532709113902595561672912255369438010245182833797597618691711852967858014876495350085710813507617615006345289626644639618911538630742989003216399521375266850161839777813669887021474951554601656503170191783111742475769686751158660430391605331124560814152274498206874002913189615715773997611107277491081451065949990765695402978135592420920051921518804234743435977157407854627706825100679387315271409667329611536534785694449614129624219828735775594930627564609138142645789445219321366337418712773847411492402000534403700630855428442100951780398337144830531030686822373725833780613221807212707009987163887955345001741373370508245719697229544447163781981946945169804279466609239760691398141956180027103183337751610159555135057926142632493257143278392198379710478329944687043389865033925881757355110254760098451894210378068950823956805403929170704835871605364063969996273898217709554479497434647168675366637765772878270132059307890591918174997351047509221318753192151677577920412372969070715170556605747448807347885172320702773859779615141508846211962629440083659754213482966728171164021381911333495961464063569149026670126756613000253868922625756508356874624411315810508440547603303421575466282180657163948910231919160286747369533647131615994636539762305365341645213060175261492009163943554739425518031354287397420983161800027791393188140094060255504334941117960351326133316754060818019977557443383518367138026664475553015490245897573022096137613987531977501646800853273002935802349646306983759108134230094536921239305150069971499603613536060197319117976162725490770598359297958195906171603883584573881120887553245862660612335329103476743515001843292805591827860473265904113239642869572793513725822047351485359785689581895765814988250891168658173312687370601834081287776304815157281626671589853488441078796174403753317435618768540568457730792068105638892662532709317680153772092615219037023651820417151559900667829703196108346345547747388119874409255439764411841180497795165921695105093621676813792387685288012778538779773567738791265021703300941650041761219901439930997720538248250065109083499619718286480383595508518233498462638202596535623764803531877432641575808044804157267410648340859184248795330544912953193016173161487374501575725165680679977836922742014068514766842680131890788704797962195855461440525506027109674583318589764860630766221568985081128385363749517955942180689424024071080699247440862008157955562430550221162616661705846593120699293408953369061870727991443014496095590043680344677830035393766479568305869816463437976043956488755630704715672144161657362951431669380139103110281287091890573644527885937883204729565235098170320288825325259030255154457365760736039508788756237270396597454595241704029721222415644853767053098500033314828767622509431717752074884302973378915215874141342470119440173096888892315098723850676760204110698323259171130070888729042825462204704037541958507570502134432872211008170581125306897432763585569740874968701557410098363841720326240352729815161984035072892106143826531293962046176338328103310042552755865413711057305399150639835913906268153101812437930917749478658250022343841616079963222291859774037520055387717747563777209590944513440025984461003978823714793022358286383585637763474941305983489065364527828610111559122301927659186633195654283313848961801005805082077414994966928896486878177827937557575848437295042554802910488089824710578009557481194938695707396398356942015047087178163370886445644703866043345336202829936062819059884051060519785459643776708560000321508263869744218193274163588060766350715299715249191186675507089913833484393954990733657693692270442990369197766310211070644384316840466389514976927703402374259866425838816400452503749215744764889831181083812537456147084405926118025408788716643601897708536814398528172329449909628227654790737650983265839112469398370922648834963810247313474701428267965504857982553773416174392140757497338706382280300534443476198555593352628866881582488215366170512415644369037278761884237222514883570834472931086972999532713599078607934477556896446814348926693409860785711868477210941517602163852209018051680299362355374711558684831145461617112892758438071485359853409361804094815819084809532874035645176035875713200715199435854862288575688525012954942602607230162838482124586843888837700637920827628868023194433644317645342311925945279864300731262336100406427746306256186535255011265905416533250008210329183771694427924331458036483565688985783522224355999384717407798021218969359631525430404291940275922564262497388577891421902253692184129091604215984259949985528695203341434584410301178710864058466827171890145257489495512722850746872633360741485588273629503501366832853049939345779735528192047645354553546581126930980468025327212681305679588452797085327474300814136118970056434992004126784773134410643318984414816364906248146052094439224541357286964889844554349403884404794782803753123480796145288797230307155955103783059941117113364555799620850896362153510682753511388287185892616956233540127558044950428730643778681495535180037200037056845469597239184476874031605483232108710664294733630268597330034589430824798440654829690075054987725694447752125722852629874132424925060260111992853661969442643118122434030916915731175034575509503727154648664085119931615209614545099197913500063820923216559683405647999082619466655980760074380393770922643152744845436735651575621974082587114758453851184283693727908049442436457723961422074759877888024880184699099234331720115309610340529669876954684641955724513302351146656848209962668285315305847142155093734055067491271495999669136313488706337700199412142965917046856551758581029343721983125059065074329333349444037235187629077699491059350478899181699909341266773692805068919403283561850512838124253180315564790228951500304864758262028228333513439289668474661194622919979326687695203341835374866735892385398446325387032176216596046745350045237639918378379262555936492334500473495343507490728093340290964812194978022530373127210894416541419720218834118336657852323004667278911349927569545495267898282709125992793580016422944045328913727804474066314772208328600243029840658100192976547224218779220390607930754543458675584728732605460583845003891323217209911880273748818191401473124135174129937183834111821271966062779413422465517131570867444169382927474054677135438568732527628772581349957910131847116849642280488155837533491667969002134544471996565618380625158666761757705801956342816620648614608904262765798024553054205029706183048945197366574650611716533902125508556189254603868118853547926020029957847770616405981293129598631137564366723962797325705646266205915260952884117223987464316161746294418404688450606178955763119103138153186162262717895705101970623649076748446459231234109940678873955790011918864001408308880331129742893645074440475997669842219920293146134450504847594720092342254305040380048976677200544020813275159150566402309184640859785219136240382106262591113618611910378523964457395960594519418350438875950253092832081080320323502638677776609417230057336791613331755531316719376142135417984781268847506566448806851421892245898516564423097927182888207501169773944868337803456040730850883598609380928467368772996089250817330454518830263353840873190268736994285298261795266840037457325374416955163042882289190151503622321332298823728651194728154647785670507702053983547640171040139799868108471227669480301973486455730472280106762069766537855969824806375184904851468492896550585706507136167051294367299824189331290757406752339827445750028393118491594906838695647524346672971993968222831541273457232609964998985373637936363510110880733922529070122066191807610602496391787964774641544061111481741475810562047404460761400037651510965934834946726056083331796221622787058497812808414503732556427387348911640593221296950493772519730335700262744787088367373298737220418753759837776555349615287522728300920646614532119220796225764674585216702912250156876074993515067355668426896656580313241581588299748580067048897513999452203484052510094391946840962279332180214496404251642183687939019379277838525250252046170155570638714675965198900643796477334121377284270903864207389045381420248041169430123558325907135725076812395668032943042495187303744146101219585244143856365958175641908657465177457150325460063590835943562094834432642607074912153072690160133544164323406370520187255311789796783739747673476875412635506088266174002490502335129470988164524930307157772125022627610180777374020713311015806113123897779113730151035753716642730897338904143793712627737829468237934300839239522927950332603194591001396742902281422215718193366866682792898970504800050258592734391893208487164148057747585524176837704283994106890286398375819924305756182291070730278014214195616353392899523747303206636252369377531968444513074415281242864663229536845232705238705297695156345789876408351805409034015826884256448548257783408695721425595210327421502612121511253960671263226171279001244794367432347823582610284430407546832792158936812589600435127009434933779456989497883084321551843826941603342855637968599344977712586857062416669247225272891867969528029671714417849604918893952704266785775335993725108825735580818400777865240036142919314715617530363970595030929898254357581364582643517395599319169114966114211402997276214068054856017997591390894901112424553357156535717647623635468130213196884020912284344913772142992018081472932819548819849644682131469441971926947408309778480881325832034552229709048439538908080144339723152650117537931934503186738641530417731358314496438968301636614049014125070310745001699093740960241493879325617848029685868982211553151243921988486224574843722201253482480844286865881555564629212996895514166733992712237577205368945754858070881466199726169543677964695577454202001652967522526110895984748455684944887261788549243045176615797260128164682005013380166507028842010094473458897155709506702336920995290495135374436766526455357473973138056959055705010647934946427689218970153094310832628686103353470807781457543059981670376867708069431136511226023684960022872054341948545580354543177795206979101328455146266474996026934831042935549443846020366715086750319395503370513746959800315702810636197769335770801950099692580294850159508393858268623972969346621039127072901909059303791109662306505231669084120659784209945975169298218310577207170162676550596172267859330494184102532760006799153004953043182391896493980549770077211956400594574133312798434703375619020485632497599978969360012738775881421527469455792312446768031170878170283406396979107777235984449376064004616044693836946102505634327610502760122187917012549834933892498682157221456749181830698921130908958461074293939041414668237070853889008271563495464804422901655781043082477802553803317994856909255431449053297654703245717193668247454913969243485180988190512720201275261868250785603501201541294693095835586246736999607063606427857870114992264835943004771486768694196462611062053223438277697446247140401476404813431690077867695028537885646984418066502866548570252099562124586489990298229784744880032123702018254585356169092301800242577729270521411459931223845452485667177544748767591717680155473769319735665170000235988107656897939576367224800339848469650106703780974215080519031998210665253148174278206090041550612965750139038469232767502713014547542665979019691546810310427343567766590749043850306429899158942376411439563062398547603871744606760419941750699524662461038648669931387631135144905417087565473273996747828751620235904397300794768326007309054764315853242942480100740286715310075208425043682551568177930949484061748482528578166042850154598426804752356657753806491365483095437549597484215241019485133283975339218624750383123738254420608112837923476751600152638442187506510989406488405545528778200030113139770207891812268606366866386308828764860668366342972063524660105504475732586438054339880319083752158729527248018295120873545029610222305325363374366885250886555316759465186815323419051064302988918375962529313453470675374853385315013562827450237254581291451548485009843231118697596909009608497404848067258240218048164411405644065407930609989425516287149352514788928277265520432276988777805244135560192847191446359038090516604822423968291074256354543521386287520356201617928030824873943963596805285206602005636367695631320625315904850726851087905239417762488709566303036005653803899527519465092250953524937034130374407036382443851861366310490579889943723888809205865561481579589756767665306995749357750421248798070311815187619680671172060168991732092995843864807748554781585020305572845033323919861636300073697040203093154253297204814867332226192217602607906835632356024824239222330498656038975053902089685443426534054117243377577156210695969618785995265177780622153426810261970506394513975163580636067971868185248358976825702384363579891530829271612091610890979119039292363758073134002678300681316193398678573826325430383604106658165492279643783130491515020519356121724866047208981814334608344554993892639191183037090780608228018850217965341471535058483572577038209287626798248184472332672425021950930298871564054390371854700566384022015604529344413351767031761407258385272086046853906642419289376466357155800063647834974665790954724758926784304669533315603745352251833357296115407215647227640329040404667706620834394063863563901122770262288712859758111779176832409096803498193264030069008886740814031308686516157354374237214839593807843512173157474944027793871135567686988100192597997965032993025902906374922757171722909664034342499413668960942604003545248026768761241826175563317097420695798140253766657649955312122497500061382885152767709741771209977954182364737087341757995977652743569994632410168039575871542887866982599888009410911181598813033151613629329874550138424955785748385846504390099139667660597129970912208434596063444729486459627419226596636406200310478146245082477875757010969189630873667155555995242661609872698384452856513252212029442116754449687091038522905056855688048258508894213587848223376956875646506033030968264482645420327513667249132651800249444829792394400707531004940386143917806461252509807055483932529809239663843232680112330016294929106622679249238078239946135738104834344519578601168146985960434145660224064120359558901662827638793891127739817164641731326822830316501335056178763153091895532578452579608032567969885857138856730507961551600060314688206903635225673214246965936156343519619791127515837403839605470329487255418849934694387995788335211720291117488806285749788291131980134734348170549940249304585999312642330853756268384902273238909682263339995940886465656322676619796130955099199851129104707373737965700393987306447803380661335348591351280081998287084437193557812609808213724328539307003098508613665398896038396397431317117995275860327409285882511047398486152720824926305851588253374987919250464797022104507416796433311977248175999237229235567843819969003565934531788011814667771842275866562769415733131707495419912223615507150035300254952066955396618666513599589406013296361748333757176104993540702017576834787810626501577441184607601683301607604162444990047761278167282992975155249611904327220486122677326609208657126741274118436518171571799871955090284649220718771845878457904419413016163825516483899674907139848367546983326324186250167982039402053024881850600933692626780392526424750249137128756845276367946135492103547436726328307132368740642027032627789530640865209347943981620488030141114774812153720958234430907436921693107299716263894228203056824865204983415606786357578177676388621315769819937191363035897946701622948836378889668409583470466801842451580521570021079667959701086234719356621345578324182749360456365934611408128473564249837579658677966895783920601283757516204740654184474263470093877872084027011635797325598823966881093281411131280786732600694362779716820555030502236572449725938734354601325348746737107438342901603163596332407425087362210844769380316289759715669728518681039566779719637366552250487803022018804804778217817922389851034282532528961496013454570353144989831287180027011614946862198313174388243760290772510084118041535374732260918411281013879592547664758743496206486292154338425777033588713940858081748720917112766669034739369745774162983470771947149788075679418480475001395057172791863826489965878436884604705341588449348457239208177025067712221202225307918343170303479919667935190470562236041965406867633171819372867593679468527640819116387722859361821538354513505913079478356815629869299043224768153220595217376268176460072307865800010157343257134579875742804588373125122948353698646132149793096804673248503615591459134560855350216813006378346254938871491649517212635141846667651573841032252858279182001032802486340424479488370506490891260674452601538799942770537550060417411913414642483721971663438280425779855651501761644568692751884343666819370500508640069770170166208745345155454613653898195244911490659294261342407071447934264293821125587761704903766543091768777138441793836380405062676907063919728335936343749122293475308753990497481499653356428627848367065975149460899574771513567064249571314473859273500323264464007893951438689809734772885839616412572268369462498536009287711938865794968243004116856776801234610548725631140832864146499701404553138501272728695164648845626266192918051604072189702991430262923716961160161045496297005966310121881717169486824249107944074109125480266380688153143797580978502226047421456068111585329143420174395522350020929362343892293174894488445033374504111831862780323209733713639281531871311122700587631954425838751177219650202300471833157555661316258558866519607976065626452065992114091936571717554870485884295914996108544157484259176536040177630998001808413790228399038892871694840683901846447199834134709717610472959330128474723012061879827131096134293977605792744248487335329374514071886224772169381851667976016697816768026170636077444570728611965749151509379687030953915644158441365466782344210555507132541460201844803441964360148850244156567176987508623991323601815219365253892554627002260622819110931317778599384773826772361776957472225752219677252788948538193240757199900600408057250477716440630033208772442518863555020493653105362605738097434257177751710116210869277700204585826027126521474603777931298866940343903507989847952574074508844168732923453151972559829738852164936788568758864434377935743396271292321277187737803413755181171873749388248455028665776586514085517788774472708887788371468331497137442762441103631746884888745262306222535613273258239869674078832887798788985895520756900692923190647655019679203451013156327158835533901055494990958387609461922720013353091348840111978707505760239785149233840838982772895404192603717748171709353750656734346703471348958149514955107109970782495902629800667129882420793135087950702433985832193773346443189713827461564740798363836478774702908958987171648610515562577954347008084043193491524416730744754153931798162460118115537642153074433545097808675848198481470316909108795121014788375355610460698483202003296510744856482442324693992423968654701297799176238226041174340090477008216354588381896799796550749195074882996811965862017962226435653666915165166903675395377978031909654818700534926716874022502165105762580292766531375243822428064487233392842204122550272922594584265160839913852684756972548335442792803724897028053732481541035629208258711791743275110705573460627002520485930406319456593726260960709210477690669232554375444449051840382859803673871121894966837338216118312782366771416358420351141292186921072476594433302641480078350107128881771982041636002206660822609503293141353197377438455764919088040929997920686202386594717329232007217965318203097902459255479816220492040348678849675133267920532355507114923083728473367737858133514280179426539436261560789877877279166822247360435968821118517068505441369281447001216268596471135207026880754015775676887227361911161844794615469378544456119209644037401926393883654720185617746750957123486179472580688859137744515020459136048887621821578036670603362866530323042359240753780833872088471349985021521234085753326307727364006734629075831760050211846708368699863708815242458725176211842867173806299409463813408665029074376464671127982322168156936623653015071243730199011020216102415922621812357672812723517390153818000584629981497123463587963576419062497680089161245530344648796764982834510422862806827640665468305723967351015273594740924807815825667035352300259353590979389220979869200990548775528730245633957375189001879517189158938783466773142224606459044562588194309558220238480074067899968402924890915073097817329733781352264140182307537884271029862196530119866596200897930921635596085073883905661957149596675709857951757684108538701896341722528385452090558091026266718775661325399256656026653261954953904943302886112276929913417052496225649481144463854071644808901070141523094547336843989478564194468360844857176248396171079105500980258527853645145538002480403858389167035087457151320476575123020560122848023781991416360051856299664070308006440528817214471783563928475451152494840549305943142665886891635203466338579140532845363518567923073793157915773801052794277968005954558384541354704663516420080842146969180230933640583596653410447572515054645276544138263403504568617544163144051854365682937397445960158197567554406236793012373468087851472503987376565955484856196499886030371908852780317003877869240252377560281669338574795724632961691113231015345171867949483558418085037471910898715240112134937737492982950543948327135038311317667596767816647893489713079676671676003453070824241356583145237152469873231962747911786752841369513090008448028370349338993297603570093834350139784394164682068289208503065791988054097406318848094273479816302578115587632517544052427910602742063703994883473668718631736752498753613856731074878976600836790112877322592435608695357402137372202216606229270008243063486963398071491522383710243470406341085171454260703372124737707680022425585084354348874507492189378575012910180262575498865288307623398344960362699242178806702248610142404254553212438869923225683360096962138612467728695143536299591625255525884446268872344373852424798095967362184628361843408401146569170559695718245396080566507048705479043613753173139231768748604240681406837192244595881364543191220617490616821094771471423157076658304974780119968449636294252021867841825868176991252873791504756678168361709714395321328737959302490689975294972122320031314234763928632303001411773279009780992925452733752873662827257395834171089462645877405849580431946631400609582380610794406695220683989266606740439748122208555782096158182092434660786369013700970426104794962481732621544336779980943005742785425275526387588594152727826410786426196031050131792826509112189958687342357245851082817901704445068454876179757573388517979962079773725452525581638342066341818693941567173076735691567982584088641484608958042307642316387875110231832114541623420914774314673956474968156425785309872160430912993597116447622878463441807593366809957515989289019483463948178505721463962396467205571892265699179109171053702235236808396891061479192041504223956107618850846719693786961373013694517918458058416953351236334620690923318344224596590428272522471191524691403985601288696429661671070148581517120438271705346954172036092889667420974984817278657406955593026595749801863438878609068950843706730454787767530266612017021822279721802525940290957056039480893511711026724511826079460474545388732390014426478660205436721457654582490127800075977004198512543509406375496855776544605889421683950964635530934620698849863032988031971600369583901409823586073570556181638197106710169262898642462091743879219041982277269975618887123501657345430987676549106180431844875985491975962612150117418599187487189647155302711573312354133875679124858864445352389318184587323497929633334381303280801395954186641841959333982469752416223780547037181498012090667512062479558989002672536563702468569128520844889878694388886832648714764510797093725785468926738270833754410351787100114592883084179324125397363756133399559786224938807905397896573567350370357100618324749305186717456883016569507421718233358009586940710538748891050300763532940757128996235683165812351423475681258311744773701306733038466359717347737448811530292303441418652294483926531386314878066944588564277986375084998094319597933688822574296589728597312465314865574034454894239203176760826112859558617256021995479813640069866785249850384304103907542116732320830351080169093501650068289649626408963814540982447568816769275016048895896440955803431918981746950666169302532310519058317515269779919557216939178110731006735927792043402561711625394509358401355282721181832979426638915025073335662199611387359477305387950066797568524726729297972241131786282630202231344875105381575922615837307356856961023467665188636376438314386627030431310033081809450453983106536790842550597875282075383817777689385743686090587706325449493525273087600146262136573458885142819390300599740846562187505253753899525233536312290837196436207363782930259929718926909105448381184564771074216918664532989465840747496806126424861035083895185157652059489805706588864392136425971513437686400829928993545613698067161450388471505307164042161006053520456087217363791042837076146583478597888799760017426720874447308723766695329957080191765732552774411013335355229252844035706954293227309023483377548812063592783025304638701060860065261322754254098206470400672233236908229881068817051618914847278818516126606615650756827070200879044322008225074543675337535816457804127678772480867386046099423973149620554609990683485180840358737844896565994911595727077070790748547398961895499283448409185440818596217050030622400501217530545648363971056807958958474956925149277905261579395259562786049790062560660440503194219960521912638514627335763496299697983565359938093010193641377213145609547856245127742011591954034310359284960016298879542435134206984259320942013078070457382240805961094757125010684565024895260147439126824232803251496645259355975971572116012595312574389231238959518760311045291004093030237899004034548534678881574299421727013850391173818351491185465246031475911631242713029598341871638146003638158450087520758154299878261558043457728187138814868739184040710798461067319877603333970923784003348032218244409587826758161116175560506845689886898763086026539198970216825555690856118934492046719830312642033678830605837199152440443521056240691574790643956594015916692361909409783437541052185520893212724824289920323450522524740382246763448663837061734088160748759654088679134541528554546947385994620302123197149846167322627851109637605651361588931529106754091847706413312351073534941977604667458958733355694125177299173022192410046116813927322269963248173874352068077734935859075247930908264894755134040686355016557357646181743427925191168798775452773496734327357072907666489773890534181216024102167916794252387008740533727469918848503474615110420920405492666424365345087542605304058316751295859535357701858770839956679579969747764763459539138495941573649429245173815564318226120727414933511247506064411202435865058944975709424616352276690188435095045966582605770407094395548081035142084825924923769506439767465097625936172594271111234842756781266232886512533254897810189096625065960325029171090216810314620175647173693223957076698701462337083024954412571732333183413572870514124712477605157989230088013222725783466880022996915590191520089917158322731381276748739917138720174176036525233878044407652987084819995568740616323232962626251291976262419619905824303999786735711393754662284741077930438164804741447244504508683162344234810107903947385712320173637385070899356509279778755829328060529233255428509988893247489585457944999217855382060639504187407804807994530126824688032856619564420521474579651390238115968343722161432271992320714847554994431510048164695345433032732982985287543155926054778262536441006900785266499806052237869129768095391405059759437828488647998713329132014066259329592369427087713764079106687664712851094876390101464688289438229013703671557187365448460530034801058108189956074910641071710641047631665493708924991989234068830953394527256253755340674883038126420409939663708267002074154434572787537748460407574763493446983461502449280775698109973275917427908724980078211474748935691231721058444051677092553154321248969672008308506024538563231507910303306290439329825241993950845587448966070505536792262444347084729628732845683725949968310078432757854200430575203494282834809149599127952717213231681704168682899284774931769409751801169119209589464391047672321545585227002921208735732853336904819542916195870579369231136788224735541798833571629313804927755551780655260494534123810058138044452380729860341112117196417873262290807243439303479289955253830173982603878337980335635180340122453566090455564078103412200254978493545510973033180825628492413755437246232495209602681793215749777229295294126858755722402632546039207948130351305031487822878529033289379410236785955074034458740728946590257476641333678621193496771305373947968639083991842621464264153396568075191600215948648806743587398513461657909774228699447892118372632589789665010632007124858971396790983236622506436119308661285920924647797241376329864737671523514011736246368904924376845466937888278268197049021007319828768862710760380177013440246252497657254982827417316879114626933221701217337479958142864940043065340173599866070832413672712127994107576046856367396551553125337047501074413401542341605585266784953990695853323917033028383537413602136712374987288717919611590212464993059433122250007426852251663126618205201946250447907634341564455318825149127977420526478757763647089353344648350358863054147573746794459393203069748227891612614620001134247964730449137302802727457594635066254947810991365764572626920168928779698677355367872147922910857379506711855425935918610179472215076026515829604942714650414677956934155749620819912513336016222301094725807632639034801059059059625144322430477871961165252224656496582504388696964120230731699501840115309506436139240111699966355501088596965078397599634333509296755503519422871209840718240352488807043652794751342996978547546071242087039414271687047288781890969360643134944939306001358045481268509878084059310182415547641466424595520627997128157992057793041447117928859923119099056532665410624656018644244713028155282574773740453803732174461713904190745275746829174992072894412026484327862936126061319612961079348550332607942392682754846421274700468591144074792492997182604267047732792138773301897052045987607480152178674913778309834578352468797495352349216155548194563043968182875095996194205276068118957120817411225349971973759584484631043022246625093999259225541365406716825863097386025995838856302836738044692251067108135066925166329989771793071298634303870344619797272884719061348343119045891992934786336241633896047605426799987221169044480985316941613961157459169302382975573888608023617004040214608548896004686951656622537932508452028319714454386411241501397310150694506492055521815538032258488251384969114574974167133981733464162751079565559326867079455827572426382312528054819672459714755030175966251898028761904385178095404093254409335781543386719681191880921803361692488267403856795329289689200410993721717057392695372390129627046626862227451687552762287285710020388311710249518743269849674923733449536921071208829899959283518180558988579515778660399577892312775377642433029340956853531127322151154770687245088147912885707913926695614734394264042839720969265180860715307661712651488197065614551989876285217901500063003415599210313893379688590617990639956868948752553038049289422286859496946813541779294208716501973966055869470359371557694939246504952437607292976031372564551018841239734084223646473680053368284502293047475632837732086290231681147524602831659472971527951663799920371896088897879895430788414355167710710128360236328456923008111441745143026382999054048630719005096824665558264347589134329568713757586520008247127037260913297579959620427060900538224727204686147002960230118065885692221097819088557849850514812623329476196115784912490656284039042512538771691765814636731702931701710244372356903266772486206508937001392256840886651944607102355829857213956414179335564011582680000470350151826056145813095417598149713888983924200439399234068733324524409730957773563498982733152654147211952365879061594763508016785817668152544472399368444141202404282615732003403422965038642541760028342808507057216863863451441392893043361720483511417548057283494749731171481960044022771443874646153514576883664896798109787843437950430794765756158487436415149432365866861300049886587995810462589880785112656478303029174776172288517286318677872915464609151180554727728619161486488361201693410144681496948315468315299074084502131015297518165757663043776769446253780014456412023044620331912227599329340688145927825305805910532569662448866928211582142947644276497271617681280579317244107550272644311985460521462223245979860071349792138977431534884222584426536436496334862917152082079267148016569965286657218028636133622900693219358365377651544400034150944465446867602544828862370320777921605792764190495368450488932413397291098498725347187434267525567773659597032207347798414453535910005484418135212654316392345486576146409156738452704788820652476681534512412844239549967999840376677522165702207864781383308858401805305539132677476110778901626234537290421922020395016081238968313418043585779951944216774034110581233186474381930031790080376822818898102422740205055136108759396217201457627366652744401391774002669165545549455905122802500416774482344755171967841423316655671832950884784660988610786452912388818624159772168290111247125844265188186643993686444623701289397365278064038323293549361187899453769601595047484556275443645051462620767584834769078841289264936045775730649796647267025324747964886570011914579514839453264226528350369981955681140706951150246254769413339063672738190397896409326949971044006199198487610646392250683388102049124673755747954026389084058466659934184551271671071223284884109421758026017795602127826260422605074520898038017780198341933468606470344453261855618234794447650279880417165626215361484382528998417471852256061054257023145873543278417707206085819541620965338818172778899686510041754166131100614308540249171338161297880353783694730045688655649976358111749429045302184779395025658401987396638910890383224232688945620086652395863379019497527368688867173958540128794227141871875013954659918730323623740932288005451532029242769022015704001574114646584954290776642620177872701904028049776186788035914923720705625069562665247884106478312965376469171083827370869757829346838477583881379635515362772382072466566130288121271106929307945359033833858736422104034441486338906627559858137465779624479095148448952322900325625504975793978552160896102825824976589065729661500659263413963692715659627673224704593462355019055118021534666578267270945647149523902675375347121004229178871267100736887858245711838621267161214977110153978818456307132430364165881051906257681047019401686827568074795805511762350130784048012736658703187716064350255347874453273343047846204913535335679329172725881884196752076204099983691149555314205830652815509955240109805028800405671067919600616838737860357846618606817425670176934045780534511098080317736570786999055527372192585320627236501074880064898919104697817960010001873475109510917903749873688334669715709670616593564518818564890097678982821571448372315497052447281937327301203725055846375282556498813437702504570296123557693719778176762395343197362105142130547118549051218775018439185279112023983279729382059284378180992151473753610236959783148592524353597337067147160975477716931649632367364149235557618882845117411105179826076432409263863005167035767685276742399347892732797323891967611948222576862915508074162319635777360066595971357741805445709112158489737791770409444406849140790010115707463624373613070952585861617330185500299433096007201835962930216041010680394300241069616472587310390505609265646748708040242735228733134592499290244084561447880288982962638524709756277330230037996295422045392395573402435661862048883513815130370004020198599779368122966517126700206892972483649239120093848437148203118798389999108567169996801283638583805251472651880333393351147850401081100676848285312125889675591985552903679979485331107079319726842877780717269856823660657848844382263232733589277533191950414677229426519868889875013264389168168249015515049261346335627620707061211783873682687235302624177740903970752331755274513799551143838271979627792895143142667137217399444513501582362840937279530479839586964453512804212620962284734960728435203932200656563911119080707843258545252537503667220775061537430737465698540018039112982496829395727256348172311218251786903094711026264873051664001955852440633400407572016904548704078957619627650607844119824824276003588409888606462729967398500330231184099420290364407545998916180115966795797930472778899926785429231091478593883620652264912702906062173083942517056052334806677935523047364484309207308817882609154318035003308788865441057746874964360471631516160274606563277088211095259285586643207802390706776084660905127427381222347277795026790179290433469470023777713716366213528141135288720315630564104778700406393582937219954409284719068927514103173737708036004318015906165289225858576807959307125350711177876058833510712806965913196787178319291671449934031393415022240564813360596127943287273955521041964531829411799236475721784138762916492854301948688622534203441171302905465177322233047678036175686499412618800813976001659359278742873796189066332855678988853889255952510679502861488902651069582638220865412799387687463765917385036810137977358543262054566954066423685532486670970773572645863690238532619233047317179487957845736010347492390875687415754107827182657810534162114474427465910588479255704669007534369128822085872398681927006419361363257402905436726553644258606107249398272985435519323124865087662328626569941963621455571342227831548094991442235355369870556801803115786316200053450858305914841085782847162407321917905784618657965343603516015077288406427161610783296392212218378492094360010627730542073974641250990840649969912732955237904640759657271299595897862684379202186130361801002605301979210165125274586936403664323893251359137852787757568981062842025369188360343306769156729359004007629804519253089986142719283640080431367957258667741745467097156540534795424474979663194183101005748675580531453591559678504441715302725481661204297553228675388251123010861459066505384570808195738855133391648791794896405377697234674006169990760208254044483481593303579708174808717180901421193064334219894500584739750304205648068696189091448967314845563711092923121572353608829010960564900317435233549789758903215037755176341047206930049575532873499162874782815184289940062280455489023053935540648816960733094113252022599598793806071697150159328911958520559947916608180846510768910975071065368066324741016422842432639573820282568490785401654590504753874436075716822799176626496026775298343683863121929567350564732235406753676430512413660262707162330771034225932365353732762323132230109564215100215710730494988794849770250375035112179685616358676962357370899974146536769334350817139424584507083739895012629777945622879882086678928511536935626390114228848890568460242184727758667501694676578046174754733450396147758081133852556988677106801306741072412476385437047639208289569842573051519903984866629128691225685636179784892633527745618556437886379874759557360265675043108130067755644330375350271491149658645593354264682737633807715802408138804562099925759043757076019791397700270939684115429258398550006224269689841838562874914959364753661678157474519907870370234017097193826248318913854722924322534104536531885991008409278216776667441882993001495773968496020076005014902260121473811656371348723599825507837991783491280149061212736336196280762434019884021622319645842351252939377967196591276596272716591719555444633856595178302897628650963487183889594465528539004185249914138194399994007203269179192166301329549821204434187229595096902101722457251900446378105829575326827757976629845424429862551365309295732781873688897418850798861637206845142918040911310006054072941709070283932440054997767518905154851765193225652045004796260218845155067139095928341112279229000715197285588293619976967922958122394747578036699232823649873331221926519115738334170962150448258874420366076617817757819551593818599091634042107431728371060002197461113291561004168834643396253578625726677493581315325071029317800068593803015845838284967511836059655660717670592490021684793885105153480642273374848594541026925957140287765774941861366681998530674234501865566055686811037215776764594145984812518667559616440405785217013278929450146527022929187835845876924574345358655141306155353717871088035434837676624369366782933895496049379017046757751010990040081048922722798688384014998964457287248618357383717989136634211537126122475411947368825879844227514113678903380068364791887904981610741192967181667449295000062307451700891494198418226125972104575415217015188331275567711401999000017811724116354733344166794182799248130281392447255711798959397086668256474288522743123945971312779313599704596170969317006999978528096486683145804100649236680026032958334212324775621893783129220825936294171246344520196330145547951860653173410925884981031448741542519574218368901394441130283208028588039312960045229701848348750861078853716689118879923654771156400945875057796754941213656679284767690306346771826793598531886057013559972249578985440865033701432615459889230890692654628090601536959619622666580572035903233372900611275287543871795691485402679564872276939563449960897121799826799768421480940428127514663845687414972658524666733946118034709456575908421358861695172800378648419512794321570590349563783259483282673919445142137183925823020703480299881957785536262696209511412259135016791158134611064571556759708487477301976482112924632787749242576214543414255599412373613979749548146769116804584828083560991815342607173686911798869411744402163763973923582456568841303785057558438096829217417724825319239204485068165139096489553160540523860747829169529038267830344342879057297666196842555595516913078550093601195755027313601123113329498306775002822448995364772854760433638058167477034501499119449256139414191514014711625922301824667533858661431242922451847030603827359033691918617374528076785166378516085476587988147979002073590396047340424060807413842445607744796856997286725201382811361536825475858794090425574294104382255732835223236767505249793807633858228102371614841937722682711185521162123472746620366318231242640137043404290955825381561252967431396660682424426801611789686352484998558119961227299589993682576661557509833630145068837569484768837865976961498900384094090866897677018981484361126383983925134905816314299728140197461457660476811993186338661025675366046259048254086484131696167204391637895307715744892111019608664070830207380636414823162198536035380582081312758276814620941683853785171158585371920313934750710336618475915675784310286802669504228447753622051444422191689037588078089379161525514372320094986019506085491030853344082834706152820633398370993601712119560311318993816464249974684267645806953487419776131879845448393539431366561410125613463338482194421303979900383817421082664731475830506723052691396167350532250299302994504587560894961235406886322632227854622180682675473786222874824237291941553122543702213680890084631291393054579067323183251862302320360904360631318441526221304255283823532318126822931766918014407645953119978620466646326945590422221447582073038482127680438861030607157795821791554610179252018666138715623082674464308618987764229708109067860327039846249834303568555537424302785092473357014816304446448394157683772530473198311100469816056313301648656538931724148983505584709950750174507199694008490949775115004964740679773303097037862612642692256285074744806684031926447183537581930012356539914323406371960290327838073006700405632644709887072589564052463724471117798151208336035931764041111205173588724706137115103252750921910687382164345788877657648592396759803701479905932758102325614736531505791581493647370693277245488172001175981849475733898322250280584181670000918064070915921720798443620363815503847700209758353428230797176836211967572191296088945538338954732454426690528905157799840631624066558812299677315989366224803555466526433527968178422010124937708580762063420541099377992853282833627847330182510869622836107901090211151796338344332460443980109350183608065200462610492021067901129307219002497908198437528275148141147868321216092692521513624990952993852813404265829205190750327485237030609709504260951533579803295842742763194707402344862132165911493518605394339633761896354927803019169465003453982943506326220993966848175006772739274762121535216839476005801374822238095412804531156958831278468870080272893766821274186894300572720375135955927779096304970109860413336905919010753575633854998718246781609666138693703518281650684554255248421626275408872031552950243060702561398108696784744140262690630297519165269336947016558376154701001079260201322657433750435300253747674584745395865576787730433384378072082225902332758218122004551305926791542522952990816723021762405736917067940095404802163240288177666175020815763902262789006377724342940572167270196552975262017211698422374785208395000773099654988582969537315317864217809333684583753322457650707314638440540160410839912715220718061701974259192826583850826510575016006431050233641181769248485421208713002962047739303753199229544512232813035095246857033045627234043762170500979439422441550708557162875807052560799337140726253439340563485971149910693331418181932397056644536128007834634889946907962680393784863003878254109506321281755646838382816888215202422711958495261924912344324729578227877554888993111472129442747260075034705631222129041847741773924574998673517874998502614197910423768607845852776450477942218027780693339085320806810647167817808601526179925388471950372953637050341524027292982969797405491869816450191774202741397482519541606508404686790139327183788602660777662712956930888186104823191669677060792791276089688730253929482989482800971447603771816273552591218216839039899430945044106302739711205398373121954565835376730937223329524476646704260167002828257529253160679692545347121929355689622174114992835773107587852264666049661947989620100030235830093049492147569535638941031828569202981946213645540447256074010323510230640596910200730172565537982973397178759499373499906839416884006048796319862157195408273367784315602323545084949984055306255215807430533664300422153415071697425776707933615966898551784859871024892369530881316408746272941192977987052084507756049243846643490681661126317984262190693314136636084853793986404018817678358730758188677799866036622317884067312489926353749645058973638728275773661185669445689835668402969227520445501042908831854412978719296198813675505819026580280219876910153202512122790449451708103483763022030080189038911426909383588071123136913003687355612138422768098122043686063164651880234559957037321910547451109378340820986576599601904129163804751151909749385215376215847771976658764245387805831891810196138596919738875208652721289123948667381533956413576245289140622746253249969695088249231396038709003480112714501556245496060207922057543490519902720711022705974605853546200175117491074474432378377892603780268771495720293064524866990950233299724514530520582418218781901038016806569079594285329821945456972733807035765133258069273133980450586693787473937776009366071216483423657460548739388758641707956741132008479899825373709930946463985543604578868992818416940952049219913750273524868621866706596313739181042530066396151103629999267271439086384763394686368728015667036887904583251308131674576141718909466166689392272098482044342755384512856092116228000590757593979280733615771304465370606725855600538536300364058221029297441860595974443923735228780737615607463979277546733564686685696945422064891764871938878005347960846844576204606205727595665501890616409950004772237947187792409288277752029732718227868090688808010978306582095852055563825393524330355267613624030253923193926237769286343941831651724021289506360224069620526412067185751297435395053667410530173013523444178542893839867421845741305020723715322848403042456473035158014665208477179016932112705137225756166285740429662102034973999091229797286925714372872357343600903637597485101992770512461573452132380103112355973906689014814046317359172405383660170874944853571403408131522192737456483590730069160638676758425351549959185736781786108886115555470469198112541452126876706150088989933963464415293304560667091722612736349510157786156432184159644806380138839964432598647719624185855798368351771059151109261614198974140894639922511904998093361697926559863843641797751429345504258547401724806639148447954897523162693792302502611542497715905178909977704167060795031508104814324200441862201229293265803187842646470647057199062123730252474954028099811520698622327402994304546028473361214321516677974852030226995307771783798979700298856019104189647219359587504048458285813254548690600041023852451872712473116602962864151691861446918408397398003239132260153869897248002346798991749723727344830147197145049164161863729260569648967129476319821583409129911983936767679990994296739493017140305521291591673314985557798531567698451644928246048623682726654250515151451533795111741544956013226300390890314118810036340174626348891348775668207410134576678312882234330647900577817405346482171536961896341614615557184111505087368372756172989923188278034162695937701426191667084408076202828198091534603273568831567387332299450615985733767306980773508188099227302078502341742890080762339097939422897907130283671450348840032400255833442454667665177561330542460127231387724520199031746817039959538554151565125929867149168949804790999291945295285927245096191467731617633711600742265681269903795268818385042923201190426868030065872154751643307852741511783322759535023802624983310339295094231599873979629757053512561606808378399641262131114793020490035291243499699810582389939160317264265161574607688440847152348811691354551755908763006118413401243175679987447180360157439664741813861259711146667569045079283139097828303493368526126287934592242842199384492384972546733922884520286758279502811485885846458670585273487669935197135169270254537136204761559785230343828831869327889532660697120761111120938274287170152623818381986092739111679549813031147866226141927278592458545336726405730373157659055386921163790373192236259160813033663471237745528601364562797639618653379220848406996955977348855897437810838069109749068941863913827021216015647497697160773478024863728044806485271251734882896956225930560515587793992787372699088410694147713925330035218321052511158442003535461446219228492681136974867203732541185455841175105849532281914968703580834879445268250448229694670276302873077740008226453487202829242983163912380731710588608673621513371174958922897122859221251639303364580384341806112440997383852916581852836002374147200274409564009358381955825756911825872049676096485997842140082056596355133759062177305401771197396191431881305447327791397737114144926604324690208795244994134734561276225735953068022105342409708829180504846435534708807871164184327529039532323692899189249039375448318386540866329593945003519881641020317753981455199800248808173903889432249343882610420501998489184991570267791299891303064818058484403938764935916749764827255036780048833422864662011027434134571445472767393546630611587901237126884684795606754874954349044002982515989487148624828664725753655625754497409072170237180976081123904129345129068684045282735865438602010961145097303914328100762002830465867586270920246427101918482407092857614819519074439090512310162886737629874914405681465366466309776391013043561411294648494807976235698376393981198183871258740279879222243924458340429349146549134555631207312032113616491091837054008149884980013496625948684890937450774365180162375572885069580111949833558627743147717517346791123157407776515676516491620962779579249096011305173434731343498775557886376779713358873469723499304363026577849315671938570515737056751638688492228693845979176636703086081659668826871725994881655083067073386181002201264297247807817964767537337920770823554588381822242949337598016059408233636690233150484260341880852541790514308300252037385065436580749605024395940434930708026920599143948433709401599971532193576454367677676625603041138411673351126869116373049362182972333049848874674390347656562168719495617087396249435721594355851003383147743701875623831698384510242014686547663931904942670422635863038024026990662057835593577247664479809755787425276483742435455028073436814107813689751449725985741655188939765107479393345079455233641783352076013017289477311385867253284452452724817987447549176249683755129164489031576905235978054534708681679973989624878441327156373849860933411018760121150134136869522512018308804990217639623668423253656365544310969482454026843499206362667927368125903829915013169629039307749351062343196518306174084402031016884829128834246619879680800655002325101114560246527214668060952286097911386972217307946470803018924959096270264917267273638897336970949604667577499288057857254375568744815701775330014467842338944202849316415669492377393756293306354782177843272409139507880126984872561207005803827166270447461665716506588922329384521582924287903066441869071192394990468771871263144833511274070970482823530639891576689088194935430145129601818072687564989079119568071157483443724522163395075446315999172207196467153645850477807056664843909543169942656844197608420289197021764920572439839105145084237498149745019718204255782035491026925392768190313162346932024455913362624695539558359146490975473117626803040654025572541039171990075278712570828947452754760825815533500432566498429894795403635225205361103499273996044768764079162735371479076048711601048199248148273373462866120716900585301319484221762292311197356891183885822046360705771543914269012080076459476073561211751988957960996575378928448455249987581254515624323996164047832538355058938694964091133927220388017037788537323394372509124663548238239342848564751994100687781856426277435851552164218522695453629879734830351083448699402237629735997479670840900419437896363753769439479239400847152555526533391299172107355560538612359510188817609922868081536032533970823905729047305892407013606932411940452073713686432372478922006945184138416914153328119410924501900391117744382910706999948663318109814377903725328629043305353174933759619192454903679582805628778876805793872236770576632101298706015577004532328929563497798029453590454591625171203336902062567471793028713554545318274358428776397947772077885676863380585854318599297126271631278119886407516381163250008618320357170801066797843419109806229102647248963299995343963070899650085922919916386742761321145372767373479918446504744728510176822899141176744562082171428331905123260651264589381244814273696161151047777972872410887891786667085132560084877266577074107531095390058346407933258080893707087579824119858187990517481269654403309571273535421505695532703599156922139365953685864314746269480677127493967941888619575374959772389259706318759511129249169994200366119839927896195075025803686117917323314975280438348536268975646439873068404108525293394718678482322295864581068534346819747915498233092460377957287428806713740720674116601789901839012679158443401311049635805573428227346178667391237052812852465481347255950339995821768350724094220311804236806228272113500212692389480094674810156350220975477329592276698996324034653378416538027056883617272361374548639962154422527902922189043598621834911701061651105669127924023469933388834287225805125922674874418147164010898086613041030810465246667043259772681278543709660428310456434533845746725373558189965479198275148092637261715717694297664184017860198446925492204018317610327945736705257930181789388348505479230375373018797742185697582776174326499835436969692797092159609489565556244407145853341314032514866807625453194595141868337212940418261738749092402455348779993188363699799377421879494122688721809432629230295817556050799099068216584957841036026946347181915379202522824685636259255774032208657266090975336318936155989306019574842242563169371090921636033170033199729358671672797591375619291832561976534155745351152394659656800004087251303069149860667912877203383522908286698002075075453863178294649617339970757673296698866789598902916060172260812525446381468375859447037046213603411556524398344812700069618487252019479104998636093936428695981498846055356562253384708684010366250594494737009297489428321353730139193015015260540948864819017559832847113298959516889308415807858718124116423165548351466148929203891747213643720018260729852909683427222687972689280914077174683214671658370376340286092366354248612405978023466788719387736580910702296499498358497653206912819620157807575542494629665728613591308591900967924826288903240720366052506918117810847224301703292512261823347071283265256303765495712805757098920602031113019890312139243015509562862201249714847810599432255623262892165330566781704087895414406524240657629417439220262049526483286350821276039385422931051409310306247870922698780941912897877830206312306466256400978599421095698807636930754243612987782075018170692347620739379541245673750640853278469434173190632975180268383799595183618545790255369846042966375687593881356867385834606524257797157329732685360594234369583010591859925173731489176982873564904372904081358882291610753993382768955331800677188452167419040637390336434684631494621332903715575717453316989381744783623219814239143205607239134704321983058418589713451362865060029303433312788968543092843337410743955003491968899895727598273002847072515586040553208791878120278318302633220695660515902770065428141728230540741543909361313140234708265697712336155196120363038574993524434018293273348302588171881958945796058506811430405812721878991572324498453483268226375041013298716971110281086234192102345791815183520693930700093513630280739383234576934021580534187757598512542857812926463474182143443222824889623900859020927195019342464757092006046835060557230226231584394346005556469713484364968915531569745746372741900610974262817075707239995078146350260767250022785222075343097861160316345447006292944371474761210397542774452185892348224663543070641409803913580094255611152825346191260421861638732334103451609745457004744218098699916791336166083149105516705301886140171063446247492844398267017117718715558561030433434557438386843375295778640009805872044647186723354858118626958798053465623447066309631891993884278002620128031359856160265591068264810051369737700160368378397938428862841916902624375315470384238019832352889981846974816995519986712384789837537237009437611333139743522922351368105455325581687583702290484280449828301487057433988965199433819178602896675440763121852936680058436847289670001238863012220335705887328722471581425699578020264227929468468772689598490433021582201488161152684292580288525414004553857408189451966479423620838702859315791552919637745476584500361371016576350891573462981583333094596208493997008239786031474651358243183737916094248242688992788345939530107205774106797123322791807920778606932501913122280015798391324592219995454326212641821656198871352208172671219504283729766222669908781287027709770925091344565347596694347418863056205735555963989646862827106681933444493756575807692700737854527661082461263496190350047281833345528363081542821969649856973016849994051968168109765249696538097445111204022514404052406996445679348539438260777102051249168293551572573138005969776988381233515648333788681753688471446840775083546339646742930825731609377367497474412950714713938449175689430769540591175082509021867069351903676838073415810274694360215363399840731809474558345063953750776723121264328162096663685679885614995748251923659458978859938174429425405538555269473951195473739088912388171504133352426905098039684623707838152131774714002439554080432745832163889924270267201619926544413410737950633389883132466306017508995126268595727922620963687283204946750798925645374769064742338494509571842585858452097124987966058670686334527664705681980232586756040252625668113624260972701431165133929699395090366494230828553049169368232912747882052722497738019852370976361109283888275301993536181528795173246512835308874253369924477626632401756707730031331173611440613523637691206745063435625417912291993922656817744943646537412144446980162756409832599038159488107060050166294908201551940957778809995590218207757995653923413170423907820727474030131403851317749984300263044370314403470553410128675362627581912086788360036580183864274625986119645096670233277909988190168580269611780886725346348302360799533030652857909071870864518893845223562119965462867705848447901589071088737877526875463517465108280511604577998965943711323364738051716450056695749360430847474820720915186543442118537579756575128409380574206383460079282354063039594530246626245101721544876179786979556532963099994649478708265862205456960822540828268401457142198896062404443935907197220727126092284406208687000010431204562441566764700425050397132749499820776207788608754843897163824093220627899904558976183443358802795141379331380172187899502456720349063176092816243441406655778433583429800693790518781504138214455908180042853473025223266497345479869483257680806391089634063754057472819535842334981782296753821498086312800030859179441518164202815573805787635197238595864099592938982608920903175017166043232795863111691019821676482077333262692685343515589439540402967711928936892780348591402573988964548517812851604333831037213493313881696553405868518798749707952073054822049581143060602924069318919512995383761047998227269089924463218741737748799776788576869510339194126332248886784255840416409518138287592459524819242499903582794677631443883159503531216052663043342941530709259232852565285951626874616753223411712787575417302375339186735854873701474651468741178208918065582868669859334890215619590077320114049729404120555967482981229536670854640764329768243473221682214015736485633228722513981445593132832972010477907318116606467096697611492018365829067767013547813023705905103173854264282224291648204998331718179708161527784683340322066070935523429700264086911268288529223089075559799078830329298751597695552717810422825310013715984802602244486609863840762774125366871411791508655869512330341623481225840083711934066041844856219441625416235867154594872410566297015309775509891235625622550201211142986570148141751480022101585788080990578905906782590852665807766218830925486893432270112944097702211399961816439638689372679439768879471645938594726762869894977662211260890176396942110140216138606734522593941813903676351874586051448254680284070152868292631767127921795312801055880412591108938395360225606962538798180878335739852697115237772243604737877057101539455069654460330054112943983640190684958848505388312237100217563357749470613169487943550297350030706407339492462911126180483884363390041633310770282055115310796369832039847647095186227746287021582473071872504924174694204647133495452078058026637809274325150348700112074823782520562568848345894444203943038971085548091442509140820935369354375172955556941391313631575924287335984107636619264582026566040605224139662422222540025754161983482456201039782681482301411141787542874288382186822591935366788981789449730216124660804782031090260701871827312123683564438716739612588894306846152267887609429070228009364993126512775434647161738708412815308711647983357989900621747915733528487709447791808974281303401401220033867205067426137491633715665120158855549752315141595970689048700424996293241920142780095374915463232966863392594333224643345173211375302219511573968781713336565754486400002482365929842977444767469642145952640842980013107342371192618995433979951402702879340576650125500235378574437761117826953865072476211728078103987893110160746029106427538729903054638942250782723972481393028772288685550356729785337341715364070039898883597904789978832069566734644902672335473498795647860196942748069030987148027770765013148959448840437720138699611734167004670313987059535713477430911957560320579262391673186227308964896678676671255492354598834889511106710145640706234538779091243242067379827665294576933607730251608634197946977699506323511126457776567649405374049048092629320869673113667244294736044961891074272467429559688053717151970396194497966808561925766032675416259054840462285543748564639278997590965575634619927632333370248986351595150995924670921434125093307830174921581891646880434719356748274459939714191830582228573988479065587445104750831055998500073335461999984043045224714163011659899832687944879656682503309898039145381334842670583125842395283245622744500799161035850586834737822632521893628338749735010531838137868425962956856611366860412598800273924290288228261213786728467202425410067825282891715323369828164663221286890864600227591108411009131032020309699757078042954171842455328471565190174447321422663920573118087288226651949877782782214500925491595454115518230367401128218554065163273091111264302326951520563710905196328568085413238123827504974351818746504219162982711394942148620744220825874513488140886751477718413980195956651827435135392430352177017590358699121809428784907704866233488688503151102155568796393713364569999830405520581203240531002949778770334201900863134620274872773260356282506650302463946735277245617332626618015100905277267580934018480185071515286703422594177813381950031298934998707938813499905330265561492014151889696968015125578236818121473777084582808910403135065643180312783661106384428269916159675017496323926916842827165677524961565111472921372949155391592241370320058577175828499937450333065368657081147401523044891320576954789775260730167567327789532395234963435985448122736513286216038472380802452391567790409337422399559580337288972721879695254918414676707626468719790686998589761173621973155189242823642956408678472140377429048987306761243440737635492898879806945909939344886735996669973191457816138825051715245089438446788169542793134934726556218431055231799732234132856168148251487408873656307262667493851804158756695809388743211093715808043018356890660842892690197487723210039985114478926960018820676732903215839985203303417920956163299586835526610324949178306185913959428444572061642198036932891941867361657396597931238243874961017412551321152774029264974805786424102141070136159718134017850573915205855635418270339350852359553359679806612948040622624079055440621137732662263491244844701458954804171086175115715518254736295230975282764890292552187832349208891759197335425828557638818889640611425514113896016855546854431492218170764016242119100481337060944761194380837588419116423323192097726102915529896559865449915528689349262196259993211128346966674981138907250319484480497043194782868719581233688360047858624682961259733514432425302172007780638798330757305161559166161011262538346471075934892112879050073202164974392337367318440790035071949247843248879451774316308233409703885935897848764532912518347847399068149158142314633640993931442964114994189577156116960532731686726445841570398939086384356195708535014326833221866745676626410453733399045666898507248295617523621673493405897568237010169288921100052853065501656800110086820747371590602771565100777983825963195232837093770407028040495630499173252555992965988861308430349360954960641863271460315058424969649901021461383766399404010671133743964504311487251534203378656946951089637047253057646398574856413905505865812760826867381951293146506616740791386435481475239503124014315422746534888814113674124198953702147489020379739078317250415257753958209594369370492201418204927596193796289954840083879191842594011055013848276233949671623035280741677425334993697580323161750789054673163537576346708846008832021136840785473234339467566737694164506518692355315231964126891957029776755442353157815275918181657127343158629795853144048407055893710500097675811853200342922130617929288365636471861602880281662448448650965190158177892523402918191636664975280867587367616763207187421862081838284213797765976378125214544520938968275756303949215088328331493666961368422022463099192316433315494167162828611250425654664994754998044764035034413004637904650011023229522750810535874669287295179285676470343276811177863693312562443169068389975829258671023487512680133159523098618571078628073382041845815885946234052192186537989366098652707251740377651317182837432529941165616084236851393984679841205637544806814338841739429732591908700079719969678451004713327326812457231089865025833859856022655062144212333540478803461710836042779887889063359503117143149889032759286121830427809029254984405424118742186473659105747065505611693378459132259024169264402726000824672960501331976851137288493952719301594817095529618668373966961001853730886897688407492519739608637028750818986371277045938257440561699666894768975018572162497565402822137329448044035048898918626293753093156346910631293778356839414154333105664346638192350171217985117420990259338697598366807790368457632838445483464209631597973209354378641511915724069725345223479526167815504312973146169085468007246105093481390158398346764846052506914515699206975549523537793559877961788951145139657348860781765725382319557238200836417896154101474546920094868347023384668201961128780449019709339536852285632651641543220594156860869070443112564354977556553050339415725828749751386571605845386573289161051775204149439040240746528293493218079563175956106235696614496000399077390260082010204648971029057931456827993447853815961200292761062817494816312851457704992332095331697425248247974016225740681208711246775441738777384546271642187265584810897186057912489350791791131176986480181145607308888477957364656406137347832702355133031377233777054371611168048191299241709882756051615317079828931069579231070647201975558575150739738975892778175659881914857720001324988267612505844299852393476791018525334760685884846512202445329376995952333847030834560774327475031244734421512169013893869727337108843048900903441710697207271752004445218689946678662054140764052065044666372767098062592228690776758546037664471996368717472344845765126366961513539531583912307883372157095446964855199456665937678769590466994029711598975544945040816133643877283819935093684847373266286458088561056299846150060569786914263878254712653477979217002753654909889658813002542031174417778801483053412522563224030774099407737956261230627547069094952246536299256506517887198021578833807405399360937845207296573873984373742099014957300175328159058251637575490138008861959126348515380910927141459771641528410410733591863023053389926969878884812168838122374613134826790334278029858089361405804350324061775570327225845932970898714979833305362414937160710864582399451810915992820089306175785845792273683965072958359679888173033194185640321172935659459715941340742558187500202782989853490029629564290463562416003568339475370317340707465603502719333087171964090933272430531965849959395903078512361593049594518312173264436759552502194263579740388549754260565136763434046477250345593325641814330257442952045956952417016715211066775002074601950739632183590112447400372531379866767205375545612187449768277177620469866232663325975530462319496243440619169844047776881312949516641284228087926485718083953171556827856102339259618690905428503635318727184015544843444600257345459209354097726347566726441998744366186379288536831140195504894108331479864728037753774331709728192125141835983970161235207695269708274185766225921849403424926236294548106122009918321458676374517957932518513881925705269641333440290814319767555181856413588636396137343533868034152063509271438067189980896457491417941245935098612045763349337210049280029007541227570529381375447616735309613182927174642091542719913517105300008160199291548778127068697604659779791306073605196495961528336143694511892481320019180536800740276399657760110012687581842138170941395689035154915192471097875341904731933135025987813545757520843749841178754525567340654553443570508044721809004138089004732860371216454889509904484461291963296721222755353681444105212326905394269726143485988164584159273367474060720336851460294730338306084343136798797573843941798593533038046481345652456802952155614637537334530240379362609308921881628696523190143961707265794794976820379563589308751748609942438419614915364593518930675974728880671984633651985861248703300543059681641850835957984878702507598718439567671548150931059837551864186725694064963227568626638127851919999373116044477120253394680093371365185371262380725608026762577234455087321192779374726318092735323005315413438743370846648807208966000633775626282534365368634401584325683957033695401908091249320344061849370877138970612188700522018815181887453241753886178630451506513416054994650467407937071683437978591300887846004194388003264283697242260379401308512632332654695467010412245076020732771533111673271298205758632075606261015911967324762762706793688570753266098299534857165800436361434759257187145347923648445291212153543389446126926215110294977079439436471301456357435676888401849604861393183653400590845404100196941616013839686420106390694456639066669529240556015345681986549061073161092654816009514159215428513449780365661046791626604839461187371887517133579304431185753733906558823124843399821946686544675909069565864011899028806509167394103322141656184505809872592892182884937326481162189108882661628853315441356097996749861979286330786340007737095514775384259826799175219230583400808733140135561829173071657315412589431207692553132149436404997483274056299328461064273538791521427445253460108931054585379661495081548736582124731493673952618062109320978361657995001362336321907478799202686110946404572499109365774353391441553553253037125478589960717993458273399258615665092703488202378264192252800863319692845392287596741356617661233021231489630462476522708277888253260938464221097543328263830050074271168100682037414483369681704838028132761571572927189822463927936474349618274476161183982532372294568192495859438876131801624168135306578014640762850644274147185389961313533438744468271171216307087035495638993557002423472291171376077930973658026643975161467842938706330637855111762950004656903839700989497192123433541131181276910872907410224102182407461201808256157858148718761101585616342094110888148334234864914077821870794553436215124177201686270092230552874289977909606627521055217732574958226872042181999021165870135043210501182207599080231935480457411198819841148421439410773929998371113794319925493543183219318336899941380586179601224077339845889910661056822165025478664793640560904199488936868684599902903282031487184090447313852795950023668955701162246235024731279573806675444518931547416563966058266189999155733609991090755972314986599244068501500749862012313871627263040367360618068811127908890558643890207420914541406930038183280641867620115477490128514080966606054408574092298742927991676513779001253997067245750732497977756594222220170783669859171204947422084932747245337633867196561728624959850275539249615869130511283018087169169233014878834377773228669133375692963431970280316058066174712438372080820693080387565657594405741599935953811459203152589126699602326331990248221813365155424440654700584701108094848437885098152530152998762905023740834186985026749397569188084186755928217386243365437932800512356774565817911811982403884372894087888911229221684833711018047039699652009112035676040028132344642614927792082068075681153351221955273237131716641538790696580951515389447310414626037151752852316417372176157494296772669454975625977827927293692941937398094857131250111144631116861016532656439322911472525241207802806077946523498087525298883102428527297692222004456501001358011955868343344424786208388457234309555168452835483670988844101493716609738685843998212492793771138460065789231616281364859258164353216955161427835539255060378075715029175515319465031232310912198410328053570718125682072614991833334345127291338023940294122435426070825329608477334164133716360258582756305240614451311365323568597051769307221904402290737204715325224779339388723922557265765587636205213809097567960357645384411288263461674348800670954811837757730960183787271721462077313318823904480274015346845700953664543551228766960601643454749789993629750730060568422946778412258671732523052003489031829168293873373796964807774124265012162864981741083595561071575012872087607162015516107822197337150915773402172204903641381134817676393938850294706581939725680540181857568943631335698483049820717398757456668724469532152086297470420439546761735906571666934062961631213558095991199851301457215377845504154094303931408984951481190600982614594071780541852652940427487873661426683597866799878481627008515913652185247443609193974630741861544172811662732648529111208669233262574338543555298805971007368727021989310279478314013865947800934174942086027230170284600265701065731406245755115532171465841679679625039622587754727993125002906997173322563444711481759714584426184137748409915794978418709741864106931322541262852472757718050606342310667480648461820342712193509224896932322142601866992143464608058752445139583071936491851678868123918790734994093923443263746502637653720233960796228461826848517338560746176034144794689701805265470808369829765505942833049574617982842082126809490652549683669279582716260823625851786434154739004521518373237722001543032734914144905973407030752624195346068763103136538137665732839658145220717487826959647185798405895707205631485270818323873313273479586642807078376521548005775603838300316430362270415896897957086008935495832878274131767900769201762444898662802590144629391232065612958226287515308917917038710048075921327070170683128300151325963568515845145035654949243355364561383155803099525187896314362233615057848667160943959664534722697714345679835922329996072336243500385645198032181579529446214897294147448125698811243063262718038490121842295679300934804512613410855855104069691774720862498829517954757922247515034969517102271912284771392088286395643284447209303304801416395108617148355765834264182059510888935600863251435726775486486987570888787629556469152383320193994370160243102456393239419034006265901509428015014152449228094157865863871066768771690954544305174604004432341719373500736168068822887060613153707976836402644589739159151456940507033547283691803540675544757604842144343025338201794120575737030020441880239334150135820521001602357591584909393305360034657024892995771192537819043421012012438988015049731710723683763027191657888157667522046046358122767336260187890992958920214639006430818596377342302970489344983339521998680736896201169734274371933843457134106147815824487964907482566762476985992156450031214752360392716012838181055183005121397936224645150240748052785727385214710227483784572324586472225733368852139729695218456536444534604567262756185214100802861278830166035840511914086416672622367041284441810233109434358523683124555999281769066891582395451131904811699277130649603793964429726960892591158115608082049833009705496397597222790549360870688668701998494052848907353459403267618800345110169761464920374446981239795559469148959347856787620912978257953632177234842235236752048750088031736125312100741155810641839564293886093086487923435825539912071873942704252677458924009580463792161134909415074712181554752846256249454187115077288076537564895985181537396478796882150231429212820243661114559438205460047721543750988907097993002659113343469129929250307140506717290341328675057825886720586561112856552095520394789773014715049418342349982727245184683266603683038920952274758507298073004117824121624447193720646614273725748752340507544148304337964352875178953154564955716986657454464853941136203737225690998967891562642397836667321678963153072202008156564759746127090360198541831982260467626193552752504116119017852848405199962989348800409581150080140636307212672349299965649449205983151592061040406395933736621288142381058264015276514816347618497714305866968568069905415830453537083340015917812826154165508037417443333059264939997751941172138245853986712800912846557022965176967518040365201586813329123500426071602536644237020219788549672326508143234729921601244528813924608376440557922818147607784878145912978890364320790958379040628842689971387034354258533440113151007378777641688110430877367382469573411901914268436724173152048499573433434588993527076495032564327713636498944547651155351489526702499825551576490794332098805805178789310587586934380342532534152404723548044299159628665366544018410323473030236048144190270865847013224383485077319422367411818334381138110880030291510589777657165062885324632686216498766179991947511312239793907720257361286499594960309143499187581496322959807656818517655187186961961729638263542998839555070696153766251300044617974559740097518045074775851226224552293458835218362768543135977126121954475983306638760868860359128413430176280222761854546411734229997515596922757514603735036170810356704111539252868157458838400930262750789108077969046745945657382476746522242963315310170135037667938323030356778786150904805788554882443757810349404164039635206280765597649030435166361812921645042866482351087271743173263582326678980004889969547402502562792875854969792980788852299559037659318588079693516113566518096014733517323559640991711916312069210379778708307578400081786250963851300660095645552913463618533247469619519543768126390603514337739992606924438959520666680079649639065870412512692680128268065562784172213661144962338590013785099729618649187827852263938355325425629861665740548214057508849658895046635739413666203983404729980338046672714770760496390650814472110618738171778311367093010161229977461071863155576990156118366462771007577739165003943014387935174482544425282466130129394278666053311753542203717259838544995152706195071795874617592444650420515520082448786744049025171449497784739564313665328615020972776787513052110765426800738310440537971648319004640481505738150994604040774129829458040510273659100282342487730358884061254825542611287351263955351889181680258539518008527268788253533942260254047838527020147393840643343483702909403679536467535756814179193330162776860518577311560625760074878438130133482455873527480790333937745387738639625165858828036375253022759027364108059051110704140743226644045569378257751869426817096398365508052176957619348570912915805142772289999727929716937208578813769834557459672754123098564271482158197842621555082473519840062767423128450888760372734911649629046031049476710699458692787223415040093031898614307256884369404293857012163094115268587142480564979247991301465107454293014443508536613484559325124289963785231274185607750998935337811576533903159512526001148262017146697780511903262320509949564549644832784960050395771336497439728683193254381085853069691171385160492287108055932607071017912417147954058174577035818715291530315326821035346068236790894613463730792024805283402752291882932899800161459615197227049543706588387658611321121915832075931687196132316069510069835556987850686842944673703286047403544671973976974150663946341999799508266960183191377296808050099679124199209754631594485420774683445247358873203828383489068327671800363664061380740936670217354391330411834396893725095334923619148098691456772422089730572400385157785311301699266488246723491370203052171508468405014889451577124158034784105353419873963782992866777737081578428677284647620113582220743944566671319174933907729931671644378863114366209838318164062611895783218837660797820074186773518766019110116231058368746252950144727488993581349860752329785508644493929450927196404049646005804041778618985199307022644149216136639191842232317549961119149871731634287431481197167423412659455664604108974092968565174769221699993656152409924227903852161783375983816707960864755577310230919934742865343042912413119199820249327031278090296977087073087385279370005961091588779427557944933186885228589063602783462957582062434108787315853241496734229330594270935203200227078194410242738933870944220088771554402052362991256120701808077188446353307753029311444626195803856000224425558668587765160467601590971243164448398303533269579645366149248744821019678502681549309149092208229283383193095213752622209741223142905094331738274249347319652773064815617162458025703115327637951390637599161331182568183524233334794098283400304769009262737186877040769043053352352641146604164533160293178258110647946360005940764256464726582989811303983124786795932296010971739224825691044076922235143730259287211148937062278732682289510892557055082472240755872177571303000291833916277529507969576496739963499717973110585636005620405840462397742361407689716651753846386756217799230357793842854129184702444600636233450565676147589371565531340907987559407612795741316697838121371426961166488212098037218708802367941219186148134232866866826902305800118732684087066436153552329732074210297341166652322094266235024435939379557723822642524477991093965157958833735715439289186300902117613816399593795795733974074416166686200878380459428321626791274627152834255026618352475493555941641112342463537469711516639918654534339740649760842027770219047901293086707657855739110450171188793277331576025395448259403084218772881742786982911979311329057635003482559682678903762476373026521802402319499622066356215383415931214869269007065991936587493922165397953409779315228399545497223014304474573834079413351958567981999613815809523903268582737291619717768233695490794090070187092784288020580226881996006950934595455832616537727703803570723495193445960231204485588886772052389270335382410198749220102919023718033124699136558553687214822355543411389065122035114802963559915499272523789728762629661345664704150490632254731465828017864656960196014431249454520114553995811238746766818123018441752080063927263896438476857759885762325122283257682496861113585678668712655516516753715523050531525663030999790918567398529749195746716960401805531187498634719515894968200260432238817900602660577347457277950550058800993077981655536750788400810694943746016320381383719210129449248120853024846493705329346030704987646375330720173139870149180067406568967744903226122308594927203783674195358753986643027057680888872160454693890844612923250035070449511121378841103857066952660814546864474107953028156036370102524020863873588832740602639846008466998430956079172255718417095886393206784890075741354727975789558167435274540257555107536084405705169146845434892372158752224461025050976853390430167277625582124703264300810471878097829335516628365356808939719188557982812355864036571640460173303970810673758794671756013869734039392546383970226048245702227800398188701310234312938384818357775928146683084788585739443681503614331222383515402826612414745422170783174258103571464290145040908889215551329889275622142605829698539459863465167153148504811635640605805569088331881738035584963838065495989244936075039575480109273497637904845698124337285494010413760558194419114302748501406234430414674691978889964897432303404412530189181209732877308686903612466618550427876071723745910875396375222629984201326190306121250695503442978986446280116880373799692044593430497673309282485260804586856392317339781578049190562565327331416667237811118573636893659981499553504917282586398592677444700772382868019787537711564967135490784053993107919437632194086964937198328811891171725959806799276595510093805718125545259383054675884952335423105352467765857850693978190242258276556859920235940796160261771540003469551417279424557953751145845181673234821719324406045492816498327871105533020569266952669542853775788375873273950193240353267814557892611040106510106169287668372627258611823428740277716596726563947602817130305242477775288617268850049052827871555468913856051559777825771808335798774170500380662631251994432660268335994783828439939496905146207340637245406582456510651864505323413299096046621619492468455157037056129467261048529058083677253306552423773246795288993411184596018303200689322518938066237061102788367466052365572957700823608016117203223070538023535594236806961611964685991618466132840881535502817933933583170667621973512784923421003023502228060853134308295531208351832580690822596102601736949488840563232903782354272581197298841536869397507581314732141547989421641191345217373674567700050894703262769738950518246465512073980927642834174103577661339219705077214480174373375473311322359400137804722797789195088766633050935808733289175924872422168468887944640092873781592239294549851303996787938371521913263857007599672967931597850103087951836426307138989555805433225005219646654341718085002372009044249564395948181376702665137000616674233821619398785728242554561122396271994673832072092865846344983782747341508611293437267459969275164150414177798098282241078132583394384136739607412898915561791148519869798233627088588414145326066515935122987383240976492805682551116174913032698328493774347766205120791643549758575565109990520824611694948835347259635952143918759302729663110614019662356407346913011213666344174960109638423500217200659921319116823791940729227336802388384823053838487323692683166354406589516984473240311785688999627651297944233556213403111601250257637014056282409673020897996035155644651019831366883611170165274563178661780526335215893338027188641205203380322786548437160661481434671091101236608843621921229747648803048044627088812102290419516207238385445147263798224596000246651229015500341354626795786816248791273451176765933206505978178178856942701538082749056634577161951262476567355854243733155991439749223131482912028711761245463169642188414785136693197441917250891053378385239588477184967794117999883792447273393294005444344449400579474243984947111008426864089190158671816146663736908403468556297206785174512031177213491258383777819059041110946265987996907107632836903867594236738664889637480984365949310689374094072757024540364080804647129511263989981666220655466920188100951106893769510189121118873899101456587655739441551477175808167183608525126673186335708030478407893545110215911759464425620088677357908878831209742539762577782289659972105165703989797635291875598954681209812720241609801771909079837021333578415536175182151069904426576705740285840477267847441653948955117939010277411502689226521477822477101073456447844468957801370711062830184947422050155771217193973417935725423803948694605224902353676374059556186075793857917956477820737306699906232893647580284758163365553847064022406233867396369482973485718872055137316230420511735960822970689534010565907800484538311072246120844559471645656278469292085254441207715208215619267784303281219351227023451899499640519353481256746673402605383262336950851287528915614841834902975198152728399039873853495115182660703790841270163868727881633135899934326264092900381265269189835040088980918448479465721661055275982970104329267154144198863925544307375007374262821323794412492974952406687505469422422362461169864875261777111920698239809811561201298676446161908664680096742708918901249739417017070732468980054299601941399770923842692957821810717237166148377474040067849248649783405860139559254613857829363896280481410385074484280569368979251641946421891101110001636262692013110771872649633547570094496652947521087321786273588485737510908694300500409142189480458966960063849972859930378367841820070727043388761617720287512800501807701951420079556330713981625580153451600034979396186056271983446776491030998822345605981933852669486188719847941692854877493766142809510022778199530903334411131344559604469452506537487473912292343584533340673064927046733209135937191820943527384140085771795597274205595133868155276063596136343544214096704184739507750207667757777448107092977849949275665971258630601801923863172005380246923708365947716056629373589645646821751622270944987668268430648838783647467513641586413710596678007298636341529990774938426167198346401147509898879307800495987473067925196501212426901101191743191550308863367584450323452056533276833537062161882795319370720308853144698264551870014659964762113288884503053468888685722498220946827662964135948769024479622160929156435411143623142034227875162792839148785768126815173144286435023729910508119806511376373499258199313046227788477415326011850156263581421762890487440646759021801838420123988558946360028256705166454347535473237517551996561488840231370344495084870366176622375702081300308973582348625726298240816388677234204508293358865981124773439527977707905046443281270213170925408214130001080109106077724263704177334434729759216143028840255808119238189376409289372391095283995191960137777175776525312117050792505022657937049655783649110413302343454608632043168418546094581810516549966599690533964251624580656617439544179612677250700480496688643640556419653486406547820590140962364214154024909419097416835739683196196160419683593638229161713621197961335428221440874881117781486699971658268991597748632255422133563625940286645543507920840636145549685460254957495130361130330534374530429465811408297687348334482135349139501319719768592028938799128367603155824342787755290198620362685062860332971593722340174132196196439672789493032106214592743259981424257908201325558401183420184140121166245936350570421001574545667866366618208701259683331173526293754665850731233588127991783663611027831090452037324985033734582247800608656689035549054556749276288157839734950358455093430763314274773358926383442295217674195370474356296320678244104427595982941980180983891648348053214098413792010966143125560551221032979206082745435635700187525539969929158359644664741441873756003718323149522708042624411843774175342037114098652587283508270042135415196149083979904484423231016358066563633063983114364136631906879005198166719647782597265096987817555488187128757554930443751356541712184292587641990736766854967751184632953770746518442447329343284508434109060136959831092163846666309986454940553960886148240025976088970053448879957379555364312074320892965167215042712052833513637751568837186260127514963382815466624752153560316927452790657267098554681726099003850939354490474174414593637314543365630043012545932657400586653456708300773729208753922621586021426262442064018031159083711308997018327570710859271739566257138371500476419171318706871942036161564841093487302685378707871551242634866053617265858599269275692814620691725234456276540608368559367178033863136159502344807940619861317216646142045759049373898033798501593488783032113210885325527890939263425986650568529972361014093490357302067744081303896193985858229830238552955625713132192898273006169063353560754964059196227816388161645736334010430383979741506761878875522822164252878247099500424071026636503339101952690959285673295596187651670952376690944041798400988492918395458058975671718614273417965257253140202431905971558957545094975486768347049162076775910436753463079229984542201741799990799436318532185965687925623003601662406425444845290205146492543022236862180914803456605555555211092633975404467640936590695715661043594294717408045126150989143577350270939071641560460032544923588190510266522440786957224955681291858801204558356301242800326243348495402299935360954648253929156203344518548382273763365585045966028479060548441923407154176942954371027340236690142000508853570902806872044509984874319848373945500187874085691961062492027060591071730573500670438856248791496097738128614692328707033565355733335462655276854482847662637958962961092972496235944373718153589132839343247883199293067204258706467443290479583308210528450095743048858882046374029331416061060146163394585569720800737407239995939842734563302579963088040226430041527204692767629577000473676516825840210788313497576349831365056036785763843278900810976025821945046988562891634764798217785858793277705459398241656034791211334672495489172490900484861082132998597182303457314361309068446403852124250648239054317551923488408669452009444036751414033448217988292202261683159300513132838161446090119124626026676253850508687252278860950500428825728423645814841558148656378570996094811352611574087520995964132290944022470974093965354392489232425815222914896492223331935994595934803851654385754902853740636891392990937728436411638762882421840425676693200931694478257430148320142426000710725625496150972485160681395341285226414138964411902445420701259783404680374572822855191384620404572981202343530355513309181966247124451724263927237137422650460008876789486283099620712726873327113536301622831508167211624521178779439259838493188406346419790121559500164824335423058821133041780604300758710275538043816874118699100931578876104317913712214731241586848531648802736315903780875277481161578104728374797048712508353933453853597924198520029855010843594112527464270154553765596264059384988138584678122036558324013004782373248672136060657850420129001320254940035421065088900712540431869137979767048834323115527426290824408301602118765860947308947403295877502405647437837415108624292039026169145115836204323425181350968599458076634046214452695028966127740980861714627460837345098693517418622447686177013654201314018415320819626018547913091609463559712985734158291067094569457859815191523209749257875136755304704894794821986851099587920672021481100728704068447440967031750969204359351480574690144544482187985108673045642126143886131047001418450045471704335975409077268163026825904747938301073630459724208988339549128724564008703864092192807990472630933411023173600024139093126684971039373218552452448575520726342015015930428308906495295946161143726480085283314241626492101003396201381808594984921327057575029121079122716268644723318935425306062286650877489702447125726177000693751487932802214995397046813900363620646440483669556109334800458771256770784857082483761178269086126352116591344317273749799090934345415385808263969487782410695797761400659981007444225455874142141414286806672761132034295689129031202209555748008288289293409138987702688989108605000537095133504876675119567020032084609997598321527356214047473253354323745215302456779693260836984366984030357210495707960714149871569571713475046934231595619396723279647372394694308540336788467515236794388541151579808070491631299437716114388077650682378816309658533252617959399751145626024479607833628906749651720156730765448493207483580674922437392764731532667922807687455136558379265117015162439328044678326987911469962113831028512890348642521077918805229949123340569114940673226226524572788936072826171227231772600919169735998019802604214056833967922186750368069933588200464729315616869233176863735841197548677266039716655621181299250410625351866595054719912937305293919148010202796819011253481648788082285390201445466384907359687942736478098002206383013598056022689453889190975183497232471771727923142404012486376942797980794994613498274562883670377731585783464401842349049447930205374124108917195628364341519602514026267410130126084972714498523444953592139952615587600556223507003275714567977681842964890157945949583520149225320034728355186012785699839190134751669214390998596267589442221869513986297775954844536298271270333175022300452546568262573916415249461433396476841572211560707526246695358708131178640303547061348474250988595133506403523059086868975808322007861793228590360930150854862994913618309583560971235873947889994369725831128252094036196372201258713434952609572399144106423118069671252897153194024876358345332522788330662240880765196998782023487677620939088071159558942949876023646427575633006661405327048510196351228961882013417631947896313041380182822469803318576080447172929116099106432080576262492699338339544165804252669533328705239805885925091135106313075841984680914626743002446380543201657632200595309081026555676692964837626387985804907243474407199066140617052872477559131722341345353343003490009449953461786739099387017835038098070158405801738125975120069914144047250478570381856947257828370311939420743726425939754543684234139053844750383104497468373835801451697407106950029757061268547253916752855549214468306337994202780243948340392991267738945986946858615828245180201181602726699741351954776065283273287463255414954422091981095856632212308379507052985273330159862422665188910253149501246725162092908322005808376933133121493526637528589334298477615748774534113719378926578293603071042669929853873021756536646384148257129680129673980005666757594872311504894024318142272273159084826872812597480703011951162429294660069637851734046906512104075796890496465006908061409640531357847931445888904500053391320304586906153824721559854645455941269647877615826758233622301285524395809054032948742021674871866438920740226793173956033036710127022125857032604937949258967324873847371389875975994263009863021176459408926217961586550428956321910434701408517375368552398338551429794118344859151180936704319389369003929705006429091123516578723470162773600815132055666574447579587943930849225028273205639396048989482176647247939862552227309683458730341027350501213070372341700841297513579947555432535426906684327064627735022020605415713541865925476314306840725557381411957272704885528388707668415695673391391950263587127742139527857614661486745744397720912841798723940681301703561917269842830997680034679014740155951028926173081796485021099327327331182231408155900883271430417775660134961167980483119559520945301893191382796163277852820566138968372224297786495467656250054607028189531297874750269712630441751610082477026178211679462381973718448939308389764638040383139668854665022252641878981420718020738526966363770512765126396536220242359969520430035304757706885341142216947021700823650503390075938739108500813269541079108663610655607206890921715033785219958452033046899416794343227742116936364523862714616669824153920524672747043908204025242300153607560744963001954853471508501610435624910882445480655651118745443202275245971438523113644280547990953903970574860622962021730867116994567518689972385891003530723594010473812451448868462657769189833614490864313230352244510979738780600600264921549714701397760265605553255166081739367536581246020378497812740432627657208519864740948378564369000701393564278698865655625676810747303868108580164392448340741595015950527364855016470026930198544386100124515870410274738994420709311654476892406927022298873783216291421429522302168131322913666702992473523185503228843688583965277098236060844314418972914345804178809936094715491870905899484884691602664629632529561627490755149397395060756520433194477866863516549975598191497395316077403300200668831513954514050364886719726447381340009044058756251604826328907578843154509366513003970279989933609200715303060785640798840524407082834702363647401844833231955319530765949559151744887991062380719598083310341051051509994582030778060799061698417375226431215521611178137945264844194010789281358702904079924248020395108638237279956981604200885153823271375439368905951909929609052265675334827409678584409050488979956022216628309899982892798627346625920523952336639460285547563405614708798420205464547814918599434997277713534200167747631978844602891501901164500223875006486350711882845356393676497562576105430240366879175585281453649419722455018254067539676990205167290987014491237497311192958270591115717488205305806913390167816764602985570830553801211490184970962283665898974786079109990485968454945799330325267875538554478275364386744012220779751347977267657664115905793450870693144378376586447662330303688514515924505465065791513378958730765929094013439580055025114873471341861919410192738635205117834649614983609140582577496939056297384378369231991041841189553819456120203521544269292635806489702113595486845900385812552776952172028699437712902974721484594232792684112615497674968721836233084313781200273018358149375068415206128973785120063186583450968955803959694671524982436613453038715062756176181382153277251979719948078808322224555273742862446511014478069161338412554557935246116654046378193275097590921503588948754824236585722200591163110442674098547195211708307266394299229076872892300370786397944366600976656776988531256331759549794475989465302477995619468729439890240497072289192689794789151352378136890853561085196544472119940055768548616701267361298572790414284127884151297499373602731452054580539974972000963165849753234414122863690702036288274691979908531883147779683815584764467977092099838513088287096460067682846421526159934496611301673157893020036126865507173354381589968157503968267592463280096314579614749329361175853745229750143401708091189988182615183335300264636616672429592430982041854694045870242664593309866345466607079415284864883240370608630687058275934970295395181003186593129928083196599358276163303492697462612231576104349084807454767291022987924303385071504903961631292729104295030111199657651906193334041421815384620729538950001090421395042304012391793909779220783686811789321929034019324260757098048308902366902319975342041815606789525444066732799545124916103297588339955081050666997421670620908216717334449612226626389414896722012509818857252044983955821693113065165465055526711417421243553392329388541984474818663364676489123826428440057308725212396706666095705325551380847910113863917284872821267816456802423443833364622474284759955336891046170459102997918259997493562323433671562828784664602322237948054691149751027338952680218377395718045885668841085992651463215219527530168139028739187215711176991813313226387040229018347768931520365674798719187127936955975520743176522014427955150356521356408537478200596966649008687204186573483667907733310879536992531186324516928549923674874648448023590599765887674478873362867866852344502885358652731350266308586173013168599070027392124648193324946367608459344576023483998195409868182485712899752436475320062946516396432936337111885641417474441891766123769157792446775258750760199816439906664566318551276518411659222865202355814350427279095038565315490922028151129032263393003259392123372049298125176759648942264289744680769882198822494566587812895922174535614944046435975984894078029833848719002960239182592086671149502387763092615664065408044207317191769955148752322957674967398700185097848576979819803937943430499940830553285555209968264326636936467281841823889854338063551017756748739208331418561049201704203759225860538642026363015685467391935414450457440821501248535276999878074654291431161382108831450400505651288411522377393161057455502097648349492260154887272967491051778550452114122227176748475837281444797228058364041357836841679874956452470679017208144145854597341966076798853675806456351149173062375276773052268560633309633447644191344066098335940165815253431016672348686498340042715187527070053294348677140920747973722026569862118121870601266321465377643893918900315095786007928839428888768687809389520383076456084683356684688268225038202496542569559477691986799816904886026924831424818439557170452706865338818184810460418336537382301267974227365415056013452794252578825473958291636974945499914500491522376603453099579057174823879890395577613204048659581749166433961991778258759748469765841727522099019604416965572283798099608233591311509028754435919310202260070717170765978414614904127126807044064590456795929116414950429829503061907976433424962278922355738349584593679417550558040096593133368423596899409875461408003847796173114896059975971435462083717274541537606264304813890353252663565072107475822538904975006991074024451160050133224413713736031942852416603537172336395062514175238469442434182525492162092953529915050533590650615754852300171178026946191040921086253051615865988454825124286523618316815995877045523606683729083193390068046253597160535429865907161295265478128213776036834301183180420153523032570441575189061573774021014454788211293777829094768400218189538601980574537748122467081225019916344527680328067016242144090380856890244513406571656461681688138207010388803545814669346926583308343325182833271756036987943425088292459405649012178097734212412110643033389963326458314540569152330327357356243599664074406516391261791732732119909642265104686110334210183877904573023536187118737050411453329644961421304480051195979352571418592297815399101796375957276166557058183293307290626592099074370126283742341236011225236113376999839960171227662097621739538359979907339035116198603389041586016064278252913133568941015383598144969446671560365534079955567558855041783576156666409414436814335669273899012334579668435634098129942166021163341268160441827937330801416902127658222357575061614868336495275449479680350694627600742113640848178489034714681308745630420714969183145378671130776823995535119070997004020903561724586920849723670397543211244758390832859903874991497379889062916809923863404879414727523162000668260825478725914289012765352250412808357222506011510133406756383219903119363781673285623709129939678216330941538959444313480836289096278043234241790577022017245085210565853139470355379618952146987175041621378661270151844290276053012152187209478257398526668799228179457742270562800207867076323407031059379710848883440683956556531545865105652037649224116118324594326009841987118536928121438950546573769723777317632332011056431770887610198658219165235742895141881008573120995843187415410715013228222052111605025878604873714298742663888019334758376211068787428182656841107733736351205298414403280887335397473472108366488009542133083614487100560269028017796585610660612770003008562733144876382600886063292968143313095841558159774199703762980938271145018386513992599283587113866383762445319392260449812056210487516226155425273908666051841760168024513365902585929871156073873036453934461271593871765470399047935773479615728605663766784806849395984134764532335468990763075708087221857529961656938361574597211938857026723599179808219798350812200466556121111788259414430327854529090642385652542909796883610321627958138481444269861015986540276134810540996953431941310389843542120276568488979476751565283819159640295286378517507599627069865228348596165413264684861149636627793325713047272612327162356330388947499272053119590941347455729026238717339308401631253573812855877429025751654835926408093815664834487261161191541553385896793560180565965179766321675627219690758569113104971694283217602962922524373601831027806275315872256293189813533960813393889569118175161820385702900659992040224667884922540358585175744010687250464233713422052047610323220194384001306411199332817819628801660418747989769343876054733905341784156019750932342574601400552965920582167548964248401831144863980186502408694126035450917008591366917052071236205763092477268505820193637045330926903146379263809680886238389917495720185269904865470961563471716147574029935237280592701377911451041071264608181031516779109713576778816164114671032875793719184709817217704619347237280211794877684564762671903857077728256444194388304893365389673163429718169838371735989383645216276348447795891444562988329126413809892889506160275997296772833555599340803055388637519235785964218560560262215706231760631722241476820752124909791321241881308317601627794718024016461225890423362931726709451626840168298229082283749740658082498319649739254868654132195720627063774872575104314638736877599789387104882135231744365207162411784790981701719952421322724371001729040645325917857092519264002687786210269585163347496109862993248911413798877380816635748394097371705097772058732058325246651096559258785471503934174945939317936031414840662086221552859883973195476323003078563925859944652589719413962157277545439483591308526871298049072765172945940975463997806041684925317467372057024451551866901734792675311992784152037025291725364115022919427343169343683632324138541981946852534260574228443689411948859352538147750946375018711871209397043505127822729661100052801515899129490452972956290224048287742330824449930151153280037786090146206652475532250591459092025924219507511552592704172809522994514365245852909246293087228351957588627934240566357486710366606368385174434011576458206850069988739444459536327915939465006239879359938535226019266763237160612533586346404992898692496280629214523225598927613264973068611211570456866179231152926253492957023270552253898428489319514853878053578017234455907983898632634554812631271053672514659212932789108359426879420037835132193317731013310299163935176027979132665596646852153884468004380678514201649407536630892033828185172410969593992597044712727108403037519622376085160734561619632005824062614889462488817534503280136876313944814914522911032111886484251373499338751898774094609387985776069714399846160881268911407627158804963695995638394596790467946406363301162991851632869274020450152460658568003109378075893220680147886769723359453025269453605579051123957079289634919698141973589478705356638077052869448821889242933770244306597695955315486783443855873536701645885049448053851690224721167733515069045600648595356060219705758892131687373898658231532200330595454604450343814418940607260569488062345582446309590387193007482835132476399768875727413378137451070332474729939869898532132355850418538385106555870647133040238042776895008357117913070216782329076246269346692536453061042082694988626802903222159872120667196765427728602553140173698489754482844893800428475930496626267958212334861921270660738997568702454453596562794042693060590376990359099967771739227806589150035130121973756978000264344189372589355274885833523443431976337578671608746680497471720178743320043511096075799776565795200082355334119264911949856685162154598236998731828768771940170186871066698596081634128940284203739087871567892299333439088051849518879484964316343649164680200269838359146041487301228726848990442597449405822738067853608867213081950550969693622134424218892203754059176538638092046440132060246048624924664609923402510017676723262510715571685414987939902577197537153503229302196206157240865412971916536327080471159274425376759041429448102861423232125588107163707297771439858995904743595719840729836527605284073753248747304672278849066478540794438334020933659964132232921921935193115971338871068289315291095076338304734422573111604428050546050669597664075589057276377341659893753893974392933458805782493420335016175165377302830362627131582692180580399699292877084515399961097022183620567217702301181643760907741822944248677342779971390787372137550885289607617396575413962144327754796007675389373033653817276156132473214491495136623308434950591173357906576074157028932081838377215069449295404369335678113410219010672644919059140832197893081133516356876880170046702947334933253238624377926364559794227490515285150043306328082649415728395453130630987242219638073341056588107173637705843005801489317799668625405881291758383912698604007675285994285195964150456418687364268860379578242779324579820721833216792506936779951900731338363032172347386850498974472846973742716335842402757932968596970367469142725600121218030239311178311410249391750605979471970013693437560977445670866025659943398759564054061476330397912137392807587762640614017566245180446909550239203564428939813830953862983722447129162790169126227067713846163371074192496356459389257869788592412395898598054455819098348291868376058323473727995649076088262198850234725592581429576837532950373703173244939027706282164614824188668030609191400400347797536929278871543480389505125850890271759572885238473700579020073785733573018679059265934889187357507296822816743689899940128510545526497471846412381788144896395385119138966338613693354564455971295218898379360021181749250146063135333241329954064004494305525587147544408982669054950588000843377081677379332326170941696477232469552793975223328988701166055905359266358415058433004491317254084355811001140460378352639359792132285011400325103655006086056881781176369545614435244981648432736278754653093862151983196942427433495993515785037562869813952494678537887416400782767609988301867986976310014760656689731735279736053807800158599961523944815826420324589826530966767741606518303345908993646450462670523909823325619126221937615891621519634804906986207558339354977548156403834806464555759402579031756659260110201204545219728085265827374168315305676306082485494467176555770984773539388372015265369613219727541370148998084190380409057325474456827283745922056285550386285517415601678414158700631992194971730069215418122688475317320494613800574160585870617500282589785476924307453971182516500480469946499227542434010019610290608257282450494744194706128262685988059165683539957151339735868078248599239965793293350424911374808956742873342915691125859649408679217408589523328457806774307536457747532584951545931808697149058839058145112232020410888789299342096667291540264520807837764674786259985927647772181166324052418164022061865643594009470507707050644691392681549638952553105638195610327469094750231899343529228175262441748076344397074691393051097366007645221435868214585565138491090195509069708739150295160395735315585954750425695174991475100710947508231195507278504008134260092872663237701636352787265276066559102998222174697225066607121779359252083979283609901459175909981888263052556672546623575037893429267163921043007119684987874890613313396037727990853342608254801667250526496965483611427079304773319295743394045923072676579365768956406372200067458660829838458276236140602040954592296223632751211239500355167068797831820110333803496686724159122363584163335268762296255883626426199279950123018988995285627021599121798624183823861399169230149277932471421078341801471127606433725844028985342567882468863738167608335959605212145042107628074450838720111660912500443028093296495527143864645473088689106866621165539223640764075548861944641004160437837757404432118005884075967602246537550948830483096319200535169985331185422613012082642544806373385651091695222825683294213716477060608935226282090264905929564170712840686882903808864495225759787233338101174982730944737531461461180195496352883802359495504520550899218768710197762122987873123406120100509624196686443302070326100698793643840013803615120151330203104150791528708173454761199678944648864490300366662396760205563122169389567823784831405006595528797316033156872029887319158006563267989089530040788664243878104591318293877514723913056449506626159543548711665317423833515805167469029919705153377891723503912567437521187928414082728664248968415189007872367749527781614403060125218657792616781852704687944153117088149359335042095832371943511226863011025851041406616157203207771834839093423354998163894141503377614518526948243762283871065484595719417383057490737466840341128147377587680825481161638020554063481037604275120215928567081901715437644547042339019683697002681365729580901043046951300794424893816059523718076389923554311648391310689257147868544625027838697764241358242801346982686595343100716064837288433320347444133482043081563298190595755103477486964437258905420465310386185259018331616273577249365472221001395641966041690731893197338715194157157631331394077638986797022996421223843004191951601381131273438683182482090281830451030336823801262111898611007618399978255010829754700312861216881229571363922207489085542413360616306800309348734338511522771470403379891081290183369955020892855196822312628519460980990930454610872127832316976564693353517335531806541630223309936714608386209110518217140464246576075300877012595207808725004474028193158748484487015735371822432222032695753121480533224178580895921182090238471598093512250462219866724800760883580847495328560470180770342928318926178313409819286140215327577487569579579771552012915312765861221454923881927829941691657403398132710340127005053524903587798065563011373348526432673792078078089493094716526638966156616598393274291267830113503663109146254688664866782270732030672501415673922149762192327258332889927638979585077027012419251971730079174062412334390995755414885205530391195784266286116150731550217456918317265848275469560760407084603157641494164438456037327287308313328098722135668230441353014945207467389360664386471051598591885273774555873395799166277798967876260162669137570857393388906662416194850285370966746106061917124933177518279132199126298118486477944023370686993227559374447634786528342465477279226312885608644781055658395352597273753863903349539485553416321320442435660341425351780156377102229378951162465607686738835506965737404166771162261321622953269774977732907752823644704334979958662228729951817127639064486016552520237950460601096897117773335911249318019452387030117120728327674689310717029703386820751878275985657735148650230223874255790560122582815732129127444915101668462307398051520802437361024639358501933316910498442906785712128173919507672580423003971211814072156977232295210525012657221229765030706018784583541270617310673606857292527674018363096229306235433161116312330927925447237586784320023120644363756807416198471615798051568971720850121136216399750219364095666250592559094792496006772230823415878517642368523284301585793297389786860422873539258125905350504430204020993861739014484638035764633815599001700269236727860546140649197534424320496371543749374573179128437051458211088725023467340622264119329094048763450617562127861690428228299039728371938652685284648325845832336987167409648606777714234203373880873632042618859331236261120805084083131510765079424663919253123005591864548770918949554614413169895283541794689638242259262674296810728458137341835627205507831940990238190919609012204930292801846545572581442309818269897709561486349303232625347811922757043132355944592186972047951543623867202465119201114290650033574859135377598937964363869290618931196612803820805284267271127993663449900022120739465632493677445909427254988703823030120004902646117501795030919245439253497925959412942020816583178230401292913828524060488301189526504793604692513393281630867328107183543983385607627926657927521226075693174457900370103762769150918272684271369074983892844280666735920337994838211636331207747368839949251870799577050788214774822944071461296565805511025309981505197236548224414064179421059235367377877543298351518118128934194982243084001404001835625635291761660877179700183682847894080562604649830229756475701591736364643079345928685182361385315499110607666709815410071038637069240615352979121579289052491162312030142386668604871688316746976790571622881965112311164807540399362531403371364902730043750476813437959416988907447542080115747624071941423082017278079804037011095068675089770941895896621129567469880430465621378834618326994861447406751564071476253821338234414299958369757421569630806593468470758811700875050169226642643234339167743923246864706732941430771789506701262322477862863263178228019528384269962303296334856022295630196640339164848802513853127779610956002745490799336190917884381780106017410365274799702102721916032574045056183246942585563789570813005408565181480115026082275562274954892066288683586463206578746422868536478420362965248086710283710504400898971025772456731589217006712540820153870464100440079577465116314808406525868998742484302103212603600078840159509990059479018436621177386246385981683980340631697621361060174787968978079379458319463107884883284870836045716815345890742198728086133916929197831069678030546326486402629389771079022480518796661226247196988590027234144997995101909633396825760212874447828146088266535292960299774304017748092292503217561396434284873905854698155643607226479478325828932125864188746178105612210669673712754235978079194438170736864640776194180510330339770611640702962037495967381944413386454740576707942607067966978241203732262927750724872977491589103320569950442121583519466383821891662543498799909138399765700198030383079945447141251187902987309582289396087846855685263556216519331739606894455886340849319057992399851330656712987289974849861340473470767221633564293020214037160299649452281285683837910316762270508865100719827444877260801507973177999706612245711059521663364004366097702607288229841103417817175611261713928384914405897045782409004461836147133576430586359295551426901817063626223120922428303605677962879261189914017455326988074838034116304531159093936823464124509064135959634274049789055277411923912542250475562815769344094296169163455447652944819179290175535830189546006190312940226929383352031223802459284496670991177775326295066857969016221970578777632886945710306019310784359815997481158768919944338900919409731146189920891405169059316250139158537211807419976679529556046978032616356581183356462338364708398122967597492289449832435405858284927208076152167470730979873593811755841902900499049704778822633325526930150433744278358927362293513615010288801442535021801287416760202280777060027508570878233622500393349211295362751170858053115014685977416647495952604908504988062993235123149366494834984243320228588355515965435824430878202889018289783407358230334113589029830636694431693845619651592089240363740548331078751705990637431048146515705692659171072725351037928282803756074819799154589447211208145339096541161574718952027256512271674847374870239328964532102109825456060760786079004299147861347640419927417974388591248683269632494624109148756909446412255264412354505891464457829371251526032650995432381826272216403174946555293966590768320547158565041646651158825220609419019313907596114659944835191423103581531802172822774083352606778238400853906059228739684144893241509970550779769865967493096800646957489315019957088569889913234075728029258806615399613944245301768572724145958797725534686677723667518168380284465276423644167683787298708196645040365995415333273547441741831247997490078220737415147071975553022717318036516847447781647046186767373758419640469128267044370286183039468520014901338859978399209450448851816167608406174948942926358763340250049382146004257624083861535928424708202804231330259233268004516104635513646605178574721171791712294252451152694716183159616501406680476063808719682688053729940052240568532938096275124403238549962038523789234606308278407610325941863699636981409561590132463705563359804256224388697001592924895717952456269315721515477573277883800281081919757462968676775633508084561029746110932674385360810169333811358024221869713897665008477844106139505207617734251400412344387910962882767645480415297484543974989791864867232716128955897301080102595944738060856633985018112756216212696827489285204747038793809334506861978069203637874368477181481795206110976976588214024125254847280386665236096626839564347493879124103526416122535125845010715267813455727922171750695148356586272073071010497336676820936066568463205962440062927444630845209286281004382491412239750875857671153610499793671507383166361530932301576803436254057517935780084325611405379376537121678753963385696715432778544916555076843737734011826271193606680411832096624981328706215632659837151416285560758138670310968438722646540241200311114760042788897504546444060135453797464815109001153850771992373539623788106855180855675933544486375178523087614100789646512468253908091933004489152092343383515529310657164339519441498089842078309637415838983235687742205876370706159075225284460432056818619599646113040496335198435958885715553998943823441558513256181296798095851770409379505642767118770403774935801930277913024240110221493210159029931903085725704681945748608098994555016842627814796194055138704262954799764028731365894940953902804238414657672325129590325541823104704324133191532300999200704628567554157533475798761519517017766144419136067945045526822891517918344025928976731533628876976974691612843853137309368776693238620458292215395141573113914717351717667640084625763957001666996480493977150920816174185451222531045511747547479009611006812874660424067886713722628519009603763298279641830097900784291251728757547000391443138026221901731623285219567269088405688933817215530975483821431276222197243574453855226983329840254197600073134430975110893260994977999588891812656081863757386075038267807680248467773308890487109650100784471797297069587310797766347099126208487084160535624535357448197169607814874457025118355668675813884340576823992268593730949863128703940634307825469261153559536309596843155782473852372186610545976023959400303899176160602253811658926231916737600885377871611099616808339833689401902731210596896986724477796864261846782495739900859728848876756241684826310757522124198938427784733186072504335829903404771131833137857983635437265577550882910097904494911283130714116875414767672065982373775110897287598508121368572958439147807845622064189653032572756214129681910095556554629749978874130669923181406619783850560324538385744417440416001905306324153576074951390092946473106960048712584687000477557124385141882418679557084365273152614009966607618006015174696597089431378697574627261597483853911812227035517484488613826901247123663688766336820141488295474992254142625428987156598424098802675602281926975080073627586983886931471679160029434587646333075227534003493125752028474583674249378434435726411932632510845896850067924109483809111399800498895445382675110409576439103418519822960024443591418897242791177782273982752657328469684620040965969568953649949513166957960367468954506776766472329797367955651646014231488097588227860989052976205604513389245501062102867351012852628381679682211404909087642778437559704189772097859297724217173993271380166994920766993576922348469470489117825974070246924970757204747611981959594360225675565196049493006971672456182812937532900117914817674023019439174502385885870916227472924099731198589249306418189430273646095168523772396854055611468729898610238115734424753154487772889022674400139662454060110855807145265039747766156355748868991317945659855462397344666698227935425346199776567253197764748682130230889939638886162631366502381000437183108584717713517524862033309250250718995789684504483619245439545015415087064760666028722930981675846453350453870091394771607282595384877438779145143209044461803456817565807669893976843105891952861169532571066935353231834794508280242331568555066261066457971656768202618503769722052255596149416287044828448657489270803700223377376028406080164251187179559887185307246512681525449958651928088971226498920350212197776670220397423792516050908342385700187111167155521059739989889263449596630593946028886010920366955534510701258429450252872000719115452963914199524641685064667929904641528795221021278603617006276630783361597564708441598871981196457197771622830228062656752157334010976637201496397591907492029230999599634034130732019337510445582878815054548502891083742142352125742043129476904853954755402572119217980068421779262075356624300790907291606776490720720147095928233672441945082549898528455317614789009270897006697101160989660799494258562921138873785867099702146028066769274627953274856709188902098939453333757576097698451890455491294920614874227200424804719128024682479127117599771636609884036306795048687548204957230374664473148638402699036741874778094494277540430336204871017715432982255426924019641042010885045813530334820105534943696415871037210741743736670188615035928829877872276457103238725411513571758402251035436285370996968377091292716196838435949934069397527255741726713021160885778414749678012467054640623348830452034888015649275335041369371327475310276782808671110775570474323449650326117692115790365721716859517503156935752160159661722837690322366327233362167204560977951539425205376871791854926600544695062567934054026130205082223532950514836969674920031731827034477369045616785421272899547394832791184645269919141464009999203430887049846036937700906464978783159231997355960651729905280628508392558667760621824412284960338401322809629750039346661840305299080863275235517524613356284269069559487793370071345582622873949322296343595603882117617116153353305139095108729043371627055653968661636412273059877068685261602217100845227081541005868957414812535837793142584536378073610695406000475113783351925113639017160051568865265318632596358543455111313043850965526447890395758122536670120677057422372256605408698494053071548541183176901231233047000702902407911122616173007736086661755365048130174923450798542863380173069265001609200699922190901286526451836993680377439918376000525786303162862959435588505675457545208719973666767431744769249427265176652585243773140885016965079572887590695003241884621108673240224708386774183030183281081749984981756734577056080166299459413831801936143097485124067213222944788399014077789124357551509444432458760832736214199021317575682746712682529618247358290947177526198920693670278526024680999445275930378529702297010428955285357610544842183518503601617915645538462489318526631012518949205756904930374305894385840962301228774737827239375128615331353386735663299712807663530540918752302055678740288313668180975475285037051112510123331567718902178404334784729384291494126245157866914835889535577228895907390626614496201762117122049433277211830310079201273437945141656782952988381447592425735633194415745194767011630093023480498866832126811878627251388257497405180753542698386654730060849503675294292201709859591864089542312737244638073272751151856004941637011669661478740610442483193378173342480767935610594971442444561452062745251112992704076171563733395114805632701684668173653343289587177508272331820905025378657436157379156757656253244788135514438942936454457396796172318314637209084960971343036660592985542441417138338860450157003971039603347113623185306501591305102214468331017134292866745005441499115817614714944674063751205004301277241064654467379267670228579871616530010387379904999856671699954721590991770938645105703109345194135144361994882912370206889462364655743555437407654345198937537182875067290902467542412522185441383111959791328906727107751836956680944649698021334689017879533049802607795888231151951842548755017538308737282413291257369180357966547421506716178056977707169318048414773296924886608813478983521915279047557830096622315607464664350869473519382305427745087910318698924312811198240752351997580954349698610751376368709036394147492732014932566369188053858939537558305290732536285156930605932907771406709483624025257682951353105139715223981367848576979590990317263652426823046723962248881021599146100913739190116267901979868347878007234888323789932131265233330473046840490351068562691011976640901146394400342112127500384517889859762194660447777788026925480457819623190644597636982173322520304774142338028022281830497619515980904341165585797018964663298102192776782665627045607813444814079279117581589174213599456472641519973119286699215777035932822400118349341460038331224306757094588956942428582501930404225333366364276818475501268514353590711829651662884125029060089459929698026616578790890769090145792117881442685220663409997718255490897579725546648461600455815432061283456948719372644318642582803949924371633114363341395407339777587407497453039845972340933300607497683789643897009952146995617201744823912274649706072528434213120096304932387216269607583037525217092315096272012701237443287887436002085750451992715699941716530579775913758289800740235997489831967844435143459599507313353863496831355838973080496369726759994403487010622883807501036225769813972408837023619436701186077677483661429639035304039577469770849503047897795230412701061481088075300359261177853343665650475804726738518713641916743827653457602393575605310534629890307910868118443589852923029289598197441749880832984501772364629030264391611879151638983978163824680190568870281474480067709008023643943045965830795988147178056963301290168245721985472620869547172817309393361689188157034198372467290337296439883407262742705371502563084422605568232808826392664053829020152607204410664392388018673766997487279692460744897681661998151715482680588624279155714127640561791744320690648960888345799255812314455757989708802767457286219475461922457740395099692449914566449746713786997902422556297844869236557433356610186487024679946265097033438836878955933918044628081716390692079994201070621745003795515983950370981439299724822784662629497816427522056715220351197026125482134002995849382345321309963520204046504386387278981149783415298056867108101744691120047184418061564097122032424263656759679506278833944034105568799864403945209712304892586947013609078633252624748621867285601577982709114587074209499450546764315430844815169986280712286935556993567772400103130512693099176839029294090702021375447076815672433582194398365076189858183505912632483680291891520001012694563072148367461606132875032097082084686323092989502119908044381732205004515407810548943578840905738425321415171853194792431445905444910576897515619171358518620472314904943055192893295513748763146899852915424165035548615936112197971834785344514659956744098477840783081984883031906301719743464741882782742909136322409930931838746080176832959140582583187711576725284374797265403501079297317915220326866438029017615599932657397439282424772323518398139648949225777411461232474593483509711390043273413439862738603584374411600490763373941937706811511268311602669509663603868346103453075172305926807323443562629484731712613368041541553615533369843209083756701783011499560775635586817547960614516597828456938119138874127065483567687011334311678223728191523116864574631888190033620539505723898496670398464662392879794320669241212805041969891787314488122343609352368956262922232712574679553804140065918166791445674705205409459315839985863707697846244883656584735143280049430415991261510684469821653713802514450176267426237798389633365034459633719611382347161772298366724754376437875981342801170748656460767288899076598479369287556428605654824628504486818819065557874530082320806890266746455287279645121831068004105062243947567471223067865518242814961992373928768043860403049349825392488033064226493614235603509682714687985296456925532415876043718026441483004033401327113782357011127024487744923780713199541552524715139334872156407106545957320453426110109571463643697404601033889019166946611526110359944218901528906405660868393430869513967739185932595379101131439349186672621449736772738568109632024303622419570860903093020306980097633438602752048960404215889145115255584272149446017979938919027171767929360341777019875819179101335026849041480279061121205581783812262292638087118939743023437322340072999916920730993749912507904486870962326876228175623276599820249305326226576258307135506213721901968642538566707864109483169672108309702226128121156128884038891935672347068289841215904496841977996274967845348382660115610483357057789083239655473258381678587136546706146899038765101387512874238281086011081675043063492139824980380206986984078177695709806145936172900180972678168625494930910571425948389230930559288465898614247832442552004628143186345529970775135533686025759034492943388631285052538623494230092859042785649173618009097510316281683330202226066085090895047616886138344024283046143641161159406840534433914004657589788916997569989143633226125893136761262708596153054130240852471080839513071289158427405301547169064838157759882406474594710808058037083915599488340634756638442751302348279054093480405821450890317232083264562602105125083924541222374948261104215265741211505499767622939876323925728956045328234791522529127444520780400240384342705014661169538067584967990750800635342727905927323631240254452436445941620649515224686803942427141965363172318232630093443614486082498208235701014468289300779433546677422064245757328482742239794172671596491024834835071538532589814768578450501852195759302021609625438359028950370479587766690685672014643026563170747250268665666274346988933227276828729187770744689915686938456408949942085654104987961258855513320602402891881618498759012534315627793335848281624567224791227819453734954171936520854226942868952270475128188329151927633764313025181180088272697994648432463869936220565899396182827357421051823626414319751224077142308741716129697011258974889385230137798696942888939161896130111977773451660326156900170046485631003938824686416645204158066806334362799759112123211757240893725781278755315983966335335843821047207185451636757352892061776681282609080766082407412504322073507476050089229501066199094703177756059253933578429353954217557940200445660155388742097596847013779625529728331608076066332875598905053854642426893956361528699265015996749236338784052135838900067592456377138847329602499793331169642633405067362871577512547593838728257033517886992125514430976557987358184549523872051401709284421228520771743624105136709821431117710655334216926136974950246053378920078208188330699050979704588438856602741581839065024740213298273393908179892948040248184312170264304691582625616316052390962553395359316167990951946837362563962108830879168884852956915132327438178435236219263931227787591677365695413333824041502856597974800452663517780810530276206596082878348669338249071613379640093642869672339798908654608189788305692206356272846812003441909342455038872439101305831863397882767967971053203720539768551800414589261348810428813051424365659546527857724177239311331716406921296915359944411326129341297957368400571581808193457558056288661584086705419754035652979261166733500553897400714649566269404551883911131660375223541863092763081524674219980358773133873153858840304457865536751873040192118620786296004735362753628962864246008794317844012444446197193138429757505772770548821898557424145550355893530449025456500104269262347770528781985118746854523555096669900229714432553976976468683181610671754379568651610166089424248655701246790624888648619592263115837096431048141385220511262437307311507305919117678992025202275412028181598991193934250691774186463404221035610239828285420747889213867660490291114336488092611228784903256567478244330665971889706046205434643329796572382356505887999688794491081128710972373769187527570148477429927766113977626913194974326421613514547187742645002672789642636622112450966825424690431839772926088219175426562433228106966238815873681620411344469072838810216667429327757228836851837019153739227134745621020452158527555305736186046911507845179289866299288305941541391045727692132176682331416109156998713296340966111212727516143912010056985946369332494181669229777024798331212131324792166120523843851195593789290802895322029431286619464035719301474223217812752604671587000055259974428634716029059256763454798985196072781533903521785061468035661559510489922256076808223709173205372850130339770121300293340050243554713116795164131156610811091557994668387599734536217354720531813773513981569919976290204776259877990688772934713226894180002833437602425953373851046950411580481050314385454026921109163574393195789578074776577102121994660117827778745590670245320496814850493707058176410092656418330673533421720953964141490085626586124816329406895483813822746736826357890214443239970870951647225606284691384253607817034996529941781792057066431580453346107789146974953545044417003166930858002611028266099134604712202151099836912254730128360570114121222079039821445040082010921244731979179347646141968776451385699898210898546645425829772470244553691003184054755759230482248084544577797495757571033656941362390290421980902060885868529167602481850017233930208170039102038861389667844258938798679588550989348695775596616781069235336066459563888544240912634294930704060029990208609473445514942318075707943239257927194282713875194376388189388251308117553660189404120201412740606692023422013731778481837294051150565201092176208891852202359522536286641786768118518848450422991675417542369200584507847545829707816152494938032097558193290468505408536389716342129263382541601090860809836031623119966344418311032566025133149787199419098680628122010077121028584415165800164998558773066081408326664155419348867968868939905150716492421885053615075668861195440934321130510593335395609146322155478872386500511005152141218239448227271467064924463900491602029645793924813709350169233700125938200581961999733705188511562455218394683356860044354772848816985257226761984795208452321124820714714849267106162846898236315652840088134149634193537506679031704869903039912619966290834470644776700037212136690776273824709298328779217576950711812666577849637944314492073041153501363564260590995506484511004418795494978716801781556394143354304279523832484965208597218726885706331902039875358648570421784540254282276183135929503235753951118742857639876609918096510075277945572200511757423909107177578701162077715116003205901253679045671613741803297175003258819893766368314093298978738451366425758466464626341808354447367807960860689023446478450013780731033304669015076200744820550552423045570796153729181398833861730296771020653688897459088863034876512909081569252296390226082600795500630324899700735738723669049088578183269227625902635588060673393963932063023010638371051322923790274564252026246137372007678011858861950933615172637816411515757262373372771439690161853927477723621773054733475377205163825237652296210210347362767784606546939195021656289179363820531831838438698372237662789827561253869854913248748189934247693985751067781189651550142266010306767721843739293409362557749379620425219344321587386159642387759537708177247908616013803746274147570996250270354231146908334002806346905978101399812784924348516466861037853925297940153403249039703482114423495086844215513788579990246894914710012917548484139163134678969351784605085255191077052190620715729557372176456355316119318251515446627392701443021668675607937888190448776607836195125255150729672567694880069866535214325443323032898398640149466083294082185295093337632644720973544191247851101318497730383985347848506531129438042639880518695945031815227899129260254802353620065345277994851791010212836731513815241233200309472158932484358088936916972582520920605078038856753221604910757021198668054052826121901284341062747550171996332971173656002812727610362492972470887203027364547071626402941615445158941049574726271321300677993568700116556475131078121938354806459506926677332735532539484387982544439651588093042911390812478626966953501717150092388173650949905310886926115191913708796398013810606561442791183732920799996757597847891045827659847137567916461034891269122322978509133327380817498407752044715244064472529596010894080222945687212246174627141336098967428628193649955097881470280824335422339144198119476344870203255430208808535594009075657921375525134331309434933650155275429286070068055156699841996497009325027699127854225064997003185245540409133720794752667295938385926936432221456376988145566239308159918463656142162145097424900632116213452466341761223931420938515606573808991200881282590206208659010567429343300450656215934295274740134060996664010527129840589862649744373895528587212170924530969920690626622304244362456415187409947820031936819773756624351922586927429014539059266926392383179980460846742085702285246284886426706862386138615946431233854763673840455274939860500947989566507422646841858005021647570230636398041739288784706306188601500792904391400123906037473473890344204779844586760897881140028931172610730426546605677687500025576298770357438069087533150128875931192797649031766082050933643212437086598034164066875840759541622582664692695390713778896931387458369421726636940387037786131292203565724328668564250538488039921499911366725299971435689395042381966380355653461336910996603954151360127236144744939692968760021054811797017851414805912150445412976834763710364076732987634788998818216037265330766105912993858127305648253787997457476262718246222940075302605005750305851990392121756579785566436820107636235424403774244197414006578420230243418927821062735180702102614127834179947500760582460880760996756324443872357830211366016104984562579925252616329657776174856034768892067230346332110335918877678930892531941017058173411874530302456263972330009820613432030364187774039220671633356417469573644285090837463850836892149834976573097331592563080555550778573985242497512461514908280330739750267735255617468080310466174921177779813719798794073216816347282659973924680189565720231492595785377389802094648280247353001697886661758050884613834920752601624419584691729526268732966779453303616862548032619281248042140902420918955971417466078340566700951682134216571532197130506101249938567603359300640712540339567445396639954069960492623830080526295541224857199802572967905746771032848827727114666220314129430480575527971020038845360553141452216198405431670785102672984891643147765373901726629669697394505276390026023704360696186318786307065004260398636817480211662916558233353575627098880241424740766610394423271032900475223527801185240117780010836042906566783189808994438793885123913883923093807091285417365956675661183395682841049386850408810753050774274299605986883079694300481337076456232513872226565496784919522713813011673750867815103517705926199660536317784795099887642342587643202762668290732216604878251422153219552937708042443481004818684868228262068081356028772390440469582259703292666538525639974720035179368230603210184659118489082836606504989282767532285418581416437885059097096737516804244995194038846884945881392230188715363296472997665059248729006826442431072738214393884954057578812431005469140073601980072263185653484558357477744555728099858902230668669905561294716474462774619508420579772878002931251236632298427686591660305062074005647043477718214703421403820370239751992818262552879257139967507966332502761710241187698203224017100574351098460395607282400110675742009822194311565883714188641959217031432151270335989467200887860538985041130354452257039161168069130675419824495398392240794007812125695924844337014874826853957140781813250064826552646845888436424141154718193461788728252156398529885675240676427870196670061903884468115774768718673899480850806156601407314936648390231625227630441766117895089176179750309570757881917419892630922188164700419489769977230255824437840439166938875702888619469868364060532879365009613730687494714119103303506381776317245409305442210396141836893318308769246250367763678101218538015936840666640460250506416457222378915563839853812691430552566126360047890804463679378249176218287532494923881937898751974324686053665739466511765280239740166111618216419018612820569559965273808954913238904561688466473777896315390207628853344836079312714274733999500961795123147138740760737720273608120807985966053166417362350174490393184789205664471845167354123449587258713539095025367751044310442886523618319685306073592935505413607206568214126735001789104432837633941463606266091364881759138733369000719853858101203578450984778621170726101465557936674720960122308898557738845673293317810536765529186905706469873076170415312587241076778368832968637302763310395115343835697335352394778699778762179638081400842216765058957866110300446645715813250603514079814291323607103753498491624444006634509329033145901058254889494373331083048205358222726863363291163055885792428212089473891962644333732751600108199926342170036461530424404887491877116881352740522381571709635666775908773814328472173961968462915531046736751139800452064555756299432630290580787296718919822270817648909871966613694807113993644798905138293569078410868285752950008029965891554073064036008240825637312784146909396722843859013416463719021726144362051946928280315432480699173043609064108753607041629604846049144280146444794537221831649799237371473690150249674754429308537438893358448799398186327989314030365388959395851868939673968326113145583105895615832674891103728991949924135097571233006326870783565351253323648508314608377597222231014644333651277329240356670340472813707618461507693739471606232113363381714960178481678985165783001279935347252459512667428589963532202411926769220208070230010031078032658341439799233469913520263171050699557791319493787303866468403998845140617581925126536097456640705477894953967488292003616618080620699582861297410101056524170143396681301217591642260854092395279017154180186656869419606180761261400007668258411481385080847268738154636210233324226881334641156999854112090716000396222260555622798434978372520313485855221046037097626929412414166941614381621274602668235894655767302046777167283485981153164234123534673077146686804270305226030248866847497217832485736908011282017249577933096832048062984807534891574939231632383932801868653153031554248141271532998284155217876054211858173754303200881783289920337573701127080911283769470571173058279930958218618495485166323952548655308915817560376120299440988553118744382754129148897135858298446545694429427720671459931700256290257363623346482295268676752420601388434051147815777779692230978872804041079882388616037379668464159201195251908143734883699806208191337053064254231199584209738697926842641237966109650007242215467485550094698394555388876965108258386407774820625537144261497441935175541038694857474054183662822152726356677572393161560107934465272460946495678651726200260350299572431752838016545718105370844886375277770928072819818970604550785141043146031785186012703155386583168067763942327048830220701343115666710336414505863195781883525936761792532792372521342111814125668038165039123549566675151650449788466266273429013048865942474178933599471050831583727038719534746562508914764204531583030337854569282926437297998829916979767552091783732933606684942013677561012079909454579122002238679648599242724126476947557819676414407053308099062567899145046408221234788659319512392119326933200150045314206570701808616216190504124495079044893520747997987833257625907787357973871251757305903025980839975706080932700365975452306383058565170046247411952212453465955147080260355279294038360525578444186062573461239853494388669379239157129984846634010433628260018674289782020436860048389048349889596433421349826629213047654072059143695377041467757164640695580217276973145912724413591634844000738767058886877362282204065175738689820842849184980733627141873652189735525132315662562076760948714754271954683796385765263848628300286408497279985917715198965222278769635927622976198572807741917838989562134672553578734353419912495715260104863145072321427987794813481663554105639362291093927614818057741772534156770697030267064249640550457377807682236174163534252961402136629022230436371993183912237713276892378945314360986068271075405560545388312891641993049130306736407919885850674826298248285616353932266899956598232288246642724978822813993365794018317700426476666323549432743714881742468951741199471014897535468144164237270895660311117624060223507217263268910421764756711398343028267037495076906159944805750278908650099011033719497078223106537244902368148485511811994966422653557321562686669318256005815796389555309521173957649227505147219433587251771397325921121045255286451621083117757609194610708864392560152833898868036948882651685444305225704350455975857345979577345869007481263876854092365029820033116496668212944049735417905289675651146138597926358751972777461717002239554036960278401597028486240827522006534178213417354453389862127309253496455374402449787292052767293535252549391828461931014724073150722832889216655828922298149635741871516493233632270255217880259204181994007072224979819706956819886024418151044534405426372617290277124276135660976136393236381462393875704464354142237656314546693965608511824279462129147172019662457739729139451852410565796861968303489347785954049060189599230505168309168932916368205881835341959429721208189988602556434700144363427110994217487029333856912440912267214361849367547939090175142108855019961640199257840865061006601151488221363678586442899122831747148045746881660991111323837437753805747105379131955000373804640550985614660079433339561864012398593548129398187312705868931594293284131320477725626682517824844528142763288148732843460948422928710028537685286284560767454166258276850671786514449350329258800820543622285189548539882609030879125812703122127489442957266977106028446266687135614421940494634558842383722684006612869467711964197781961214506709988828646198620175977115886315623072024347053752971688980948246147774628138591935563461377094372044813962112432534336712622900805061418237841911986107799289231457555468913432383957832463852545941872535026944420856125985799702479434372387342780789191528963618535872311870137166030799240541423814798175691480299391834123588844040248829028070767961054220908850008064716737529092574337942783182530185532170001407501629938410988712749742714234896050630830784218932600586973274685793986206277321250357621919154958135048662100028687319867235802645719062078293100936695210253321731544640012036200648517473896271186367400076571900622337382605252410671446394956933594681321597360367768425372454297985672179298385131349280522030171683547030753716627981438903454399832758734615938173508626953281518692530479688543170194492539311258014345447414852046638427236058994618110985719880133749398313939270064439249928901544922632275359515500946536507555367032743384108655914686240831193368050685801144903670816406600068633629598741897783948866017340579429596474839376000785125491818990237547897590200270337751011900994895362191524033405526820965260571220715881039116634030565808352951103545913476819305669287516851993074849889934671046998204894258614953244865921984158569323871764919662822092653222787058651048782394264646834564128583878034374629251063921131144681196665453408261188353259710466496219999570285452066445033156258235795548434999497234345530577093039992315238230927473774987142813251333616551343652639280146311998796666080699082971589379974820488224566264412631770217202121633684797545805383360352210408013216446154235668104372541104739814811379575957504237679000973830780489216012779400775384058783749676252429701033405900261608871289954739482989700878151187793996088782863130448056833929104904739497418545500197135804625346800261474156053817400039429692759758509589618528115615737384434466356496196187771671663912803230071398986140727093014401490521894683513234060888941199183857551463699476920798207498007626835468273945642719082981440214583466432221194030931119220799759403656733786401929324634603111409102279132345937063534136208655517807144370014782798610336007181589264106073809270974417241730482929857154541942087505668110276093881996984217303548065234643148121782674975005047398043998224047222061435267971228952782734379708953133208218250937732850092277691268284714085984939327509349226289407753196215073270972043684008184122119891362481780387850780813317037348174822262968396740981419375507004903410664113245024960878531070139633546839886481153053099207623145490303392348476624213014074715686284067316681165557190303618444582130855385617237435338694552235636658401005147630227399114931046431632356029762028618522338803604799220344097322648281630595680789960429793927921201538266961996703577974237834186997443735127318505125346358713199921604438244101306493123074993828572936900267157930459866815613117565226476637036922686210911618775568979937740746995970955252397709444431756779470721097809053880142489274093673103651046327243773256411123297856614504501253204299778362195275315757272815667431254428775071957938961635307457940051177094584495926334080678447370038182204232229100731332363009964095046694651069751211944748794956308976163391863504184721753922636200175220386161146245394878889027878585715622897099222551417277894894007280860049588369004273048221996653126785339239085829261530559337206133195989190570595364751322158694543038723076185185291810704234542308508570548233136293225081243305921057750713919505924884980240323255683343864591473607306014963943217574733512613373797545372992299211813016155465113070917534014359433000648891418331664040240021238158579852916386845802941623654610070182327484473829570710625438578688973312042444001786190520408127059076270859610658794980110383835613728091100333949798648028454536347031833368562715993832337872027058127161927537795009735778878821759540054261530512186131963677963761282514165635623123028786253710189002720741960474417684539092242930725318616564930427666633395838234988747671461317379891541014173098054921909266639367517058121547000558627449317590160356016816545646311219646901126399893767128231753784345767076829972473742152058916177738832063008833033612489004316977612194574590437455150496138281673809108851481802094128728126314065459220297156216616732347043178425003560153705980079104204184495546989943759909144458554088069973022907151308644164954504038376180764037207583419564054688447098199061043267632492019855431348807019756183444888116928901545818125404861783589183278692023009536612190951230484945644258907588032249318413601869807882463455933181167655670819032139508370408512019770957624598562878929089348790102042315308710579017392778459599147499293289354638137345370770711846378831059033472739812835063461873647684135236523401388548132120730640150928330288979520336528085979854037964303090064008033932029160073032418207604948189080025444442162559881689299893302729984101745042883640391345720836934200250119231699706348568109988244371031357416152016029073439201313173685352899373081821107856804052282799034501651148139160767284847757792120981399253427196946189499056171981918990359782239210595456359460329490264993920427927064225937601473300088595137104998138166144556798460620642590715350531392118864635704497428835342352756586532908247510224064740260140328483076456066476928882314140361065033441701394244934814849608024764439190771434214998903185049965630952647241449447111679760535230528599817612386299807399113549192511794537668878736976463943849352380521871453955367041606389986667668680074967929934829562191897988766997816694534934604730603916685289239939232134214941679524858770715245833442679831229373900397896437163571485605554014030147987182508523364603627831345988650633287056379482102325447968657584952982360321584247128907597331399894986878585188285027483604811790412595844814508984813454042895825332977724997614167487093499117327629398493269121995149760897636353181294479988558984096110938345937630825395168324651462258165450956642327739373061478161961837199247489988301116282630203371027742756801127108900698911123317925611725291018075970296628601692456937921543058160137781424863619467025410319248047800860836936505111496642356670230871613090722247602569971616353954607792330405228614202547784542320473523958085034704081873229594053067865670856766526511092449479614886714709919412246081071504873664451214109017473638556742528234144515447387607751081878054879103862506585906804602470783157073900969637860876040412679203334160574518648155239796522861487735114618259164141891664143622202812488776572156887898245445989890935076772801450971931408009824706711244876806859081538087467359107822063948518105026736822456275004053210159582254752024083039197729176235696481957656600060893179452259008023199329772406371854488724161306057701821513494970668611229519107617357996958656008222032345844148493283406587301514304491185977039528086641433759273552604971020178979683192751238087247213682339435948401721368939632344265870642176263381230155741743703138389855778442917371647039941520847574699146527280562472769717470682872312965832213455117598750198811528876225676970640169485646644945011820597948632293533570485407594037801726497753348061909527718368427238340001505293258372289817324851986471734898651289568231600175562486804021542840006922022690121021716286851617613300747969534875591071423295954703829414361941853856098594559045293443830130229871270395738844507444054500919323003586248086388218020423399656146213617956429643368040495808535387976811497097187961223299143786429003625029230126360442192678863193515825200617438880807056036396317571030720356972724702186464037801358904010351616390663033678397086372378522228416462612980777363179227609131209355209891094234068507887408567220130157714487506649856747778371620941358350963317197574506805395759146861447291084258379007372075547655546317158381548796741534127272740066755095918196128057048733521552870855735849268516666658393883690233453925805863026739101659758664955043470320855751600545684272890745378902754683863742107279259418223551328200797133756197768114647787646430846088097419489772576240838668212119018002077097738022789015315365811803916882621027327749129993948864119030563525002205764433330324932430813835183708833611489847965686687328032395878062642377751446099139170559239923244754140971821292788857365678283214202857059421211265566654718785711596005647588632764674598370318376680934437816808937024168630951949101690089541164783250090968479132826985594975096617357548896657494344147671211716832365800211215543245423415044276283704563256834379070933554664092401085967207483074414579794690933664133891589071032810441892470960896879091694298976092650055959990132301449164623719362987318516865736459623829861777372841977916758140034340418988471147120636288229316686324751851203796425718755939810212937526620827983270455155948262090440297475633517747393152605037676180089200316751593445116996511376919260287373934417737386030388468241627657236816140363329909841212909831855494334358028802913706515325578786275733196695117452214202962096396814359930558257468422504117411458866915440962659425278371916623314703540940443979502989167664670725466009373436948995565113013838607191053878849640484323794426098822323072229731468057979180676430215136755457221090848025205722788477223249466808632671907853187531775771328892749181001078354598647791603450391770055891278947770242300396689754260530666510171664465490509523993893585537765478565572351632545540697154006737920276394127469270408790123237743837949068686610110139649648954085770721254075111445700396893424189792209929769565100116917691709884299738323676014894154657978452342348892164775215349682478262392060945209357928697186489854998664680342004709460117278031393694733095372195442740505426134786940950602734992266070766484270678029433934556804652497952941727129928042990981849559184305942888564572234313678824383527438370180588446021859732616103637248368211555951593144447593211815563871068160941340965136784777153424338500014458165174069486168502547529469722705247493910557307224983802960904280326177725446824306640237048349968889121796205991769518656910830854548813833073502752864748570849617454076552532200479936045291635827432804667206070124466014506471729368312954248193232193248198480468994136674470758936561013025154056130860230244124264331165816934718450235366167339231967002129368025711839364700549437592586033787901545500372754239715127749067695095257020566199878635967322384848979018514672245861271184913447363015889916735177491311299705176303730190842664579811550222782218812928226443441189239365649691358939954774786381409085896744185988409300224017195676876996280757451779827436842892511514581558132980336090350592514924953120537477902490831868235086234509410746367618340005109146430225747071759991276689753629092560253811935742922021965644678179095853030262486444799277843657895985360312419532879150608266818786799542955906125967624996058435351241511430626405704598836850060145071443028706099333097968403599073032802110244917135603421812596324442012482851239201356982971739078977273238373462956720011527314232807931682017673904049790966751438746121592825618971500184832654232667005031900430562380086627792732720545115670437227988453731898273713126879560242668430489290995100644344887261926084806637630060216935736383754646408787825767767704664746529461258328981658575965937357614504620157225202494309818169784385096073573013608917611146069398144849967978725352218974487690667702075426718183670459387521465550104465403244805657580420899427226867694150842454489932560337785748956790766122725228335752253733957325077005940833625310729776774690926423505097344305097348677621811297734608665782404106348711331816246335876134868710290974427287172113130345732555882278236953998796080302264922786896353658351914281444615138896577795256684773760517634181993123283488861934075094362259431552067712238151364866257571286316872546342523409400644170026849143494148334268792721334858153006458307966178114228710087222244617389080848822241211450651114423629928514628381303383724231326238080530722983136841591976808784334374261722519359891312064522047863831023347143654289892334006338501942897768533527177583867072621637955290251468432457077853462783320445230706576244865076870653758412487708605482548192492901315694773933559527263379614962377085770339789020574448678597150111899976954433731521687759238850785685899833090279864381844440125576543088997294872876866172253061383876992317535388646939865524097662173923948599395259338241065784597254188003520366571471700419210695723220846611247703214973469570284558813266322897644663603496936711362895784102397459535396399255934763358928026373445340215446226444686681204834652570688379147518745992955786418245954859322773063131549457231775839442187967925149656570760453945965758534603480917290600741646697627337956191308863114470437229261956941205579116442883502331076555119963478750978776761729733529708851945007308903846020831572344008967432100415966755528532964422736624213505305981069340876379120264669163503819757240401796711463070980504809221032559273724137008570070130240641944751167167523137433160859812075859730694778269784839900524512471829654093754128595391510275866397212298267115738495602201078289285631995608204261523002705135133064299640649174185710559558027744797034175926553424385778924714910405012842343757431666660111550777055268698446898617036365645461724470980276022281761026438193833079145928722022108702885281659488226497444440869705342081147739536735098685060983101605206686036034698481530465101204194687143707552557447517077217169838220828792162941265522478299849489339301706706768234295609239220992393830349969326977622602973654124299150898176717802741890119967891371379471423822150589237664044186715789242466058688300773993911294281692380915538624202997008655556537843996249160468557528344519428369781798415996259844571564023871053389792019635170839982780105435503935473345827734052302231374264923738540254108674574060910080086311470326321007960794805169519134060635499516942038685593960629066050230360171792414050901729786594240314575964413415492014042393392988443615158527166167388885279732559758470686139158203425619409217466816297215523835590609677939173594365471723420206525357037238174409195476840992341955099600511848672917653477710340751190512066432849157417276158839392951360381657588085262855732332193568150535562227617547287265030121993706503051466496170779031648640696512590387159973217978141171366314525971773611760641846207937769749164942427057456873243004466899316440209826056584926413285169502504436968119322473827528966539717143045565812034020489847730076760500521702085160635115200400512748578375854913643138277622543686713350404769546781386167808000749769772372876407293367590343383887761874939608728596601949939969824139615038707707000901052643102864136559700581650027198508935958421533935823894832538726660623739847692895917664507957747346162417845721914512585849957441034765703381841678373855530706914250197649257077020693276092227796500454691791158569861448011742854484601024758303339549991060435539421973634716331096683319530834709944080746947589019725223158967103513807153081889162511398922036883556633664552073238941373246320234017066323135714420123953946398404982288197114567495441531494455870339814106920934981205800963977403014645635898058041985527266515176697620704719813339085749894854965806759106286122477865918578316435774069847026486124414274174652265214035527643741285444961984103540730352120396623172206099092067551523468581861892151480992771658403281585881654959264419610041178162913698008796443611711237189464466374227440801694874351404641424763266301971827941438500102471318407972095264196931362159629846050402276614380244887193940449629344221340012756210009196297528865670341778201134733502754703685754257162729115646515869638956796273516573916172356799212766117591237141679630473886645931647521651622263406414028348549833995502130916320030405629554678514800605047531277959317985970090681090511521721192037818710470495124128672026884887029972915836752211325152136649161678775063156026718277207911629609711526057388449893522032385997530019257870350994789305546037416151891967633960735005311977672719139046312201039557036660142630144079286737153041172614579804356434497268158935389131299827282873573690432745957518744778786162399492777907439082355663577163182149993920225154602617509100243796585395365670971671285262407832610369903786682562185195376648369022264581633507676110844618078878025612728168937490517723592295058546360069695210655914723491392108254933752518931162729259225064001985794427277295222215859950952707098240597878940378940015993258995250424653224720948309324593568783215791894784472389407302721195592634009947759284637970883188639880070715107383679312079233563239271210452271781908973723708886270059781857577308219622049717979817776324050043858697639992512445159543715373061736431522100739159957116219993220570621490413759777031075094865681755087434757025726319544456277544484327708806120800019767395307883857429516182375523585545155023250469572328545386062725410125979814435246751761931611435784868077129124505583070668055020765426135496799931304774893509495969557299107311627667342967758665495695954463261412170865763894224044810028372054075888261305451922004151943122965979141253322014416010582415362600565761431169417049788268632357994679935236926203431489063621591105338350371827459437993709447305646615804538689210072561130248748492620794952774975294298276317427349002149966866667060080256788537978651074408760234249129995423288896793562525876018778270399134951478756580038745879577077399063348441223882555605471545509002019198926861068405229872379171553790552996034260399957464881962708440745671163836313320744621602225272640529669959204348758528297664670206273390990867890374671480905740527244623249129690046771408945149079935929992541528951138742617399146624162173822012139942110498782975496332839219053808456046083260383420490788016227626345528290988976648902574513153332989704105761809044782843909702845232053711202459032944391953066709891778385995596083134240999537793530843002210842712263902267138142042497855312311503053556943652600295030276684955815961237665142920478874824367232121940463524397928535713870325932434331675434156311300387932964440338425456378902276320226708465171024371147934656634910141537679215385790941032883369272948788757661715877024513702336356015931337372707769038055467740583251143827765667769440351827943880138038427965416995518467440476169321384307508315314846564201545170590498814387607086881729415652564495266215602883586240855193261748948958403679788141636721442549862643956183930967576652204212420079173241995227042312893790542437830538064970987583049038133482957579492987036814259259605943055757941375147505976404689777994389149463215211952398556289566921091262759637220780463254695447489268564953632327521383637563869997029541198477095178578818899588075885209598562765300934056726793280928251533086757080485494701701435789421338445517542576213050606655441182505980915001803840886013045671569155770421788535824504343081810808566047649500527622385764321527776566739707714842977732638469439341997257857189002706225614414402699376842389083958370007857197119312532321365897452256919087981746011781798708536966429271779085684481401507032914254904157317275549032331340555891383220883724651022735181349630887796028771894065559841465751431355692217522108312044406468092668182160097924467832190832542657389266296167701451807948031882465833660901090375341908157237184064027226715675189476959055127246132205239673329308818465147194932793728119963525085454203700595261098319131239639932057816691067041563725443644188507370829549258059816020970247113494283135607769053312093597526128959363358849739719113121062850750210157628483584330370417786189104814154244586145902225351325774399407561068783062919614116694148524462619154086798126486512408848400193733424577644520515893366846190302942736693499113626607348769363581929903389732930484241755517302209164284275719139685089716014472134375836076988419592586552632255061483905604492963461499190237598306725816053330484136547132224399934957776726403358992884632885342071196189672054100103624901134059587682056246181132693767225734221785460871914657650230330639147212877842923918734965879168985825240214473962460650396354618308244898263987391064203275109415856405468176133582367248858526267664019871347321099034734374319364876751380452729566495423336756994909014821906491143511289963951553565826696243843355397628781933240333188670892841797912279055862523773983997297645932815993333867146340818037632588750048012998456871060099385582679089104126854403200576324169389236334442657633256654458781414727398139344306827298891949218974058329921778924719298150627037495971992466259092669367753423708568801940446180082821863052754416690048984777419608549840998779298794241808433624939475013581268216887336573511553968998078665155397095742274791412315416984075184448892551641686173033738302418964648171954613922812569234398305731008487690225252185173434144883179457658825767200211798340643890626993154579279816551080079406366311751069849960451715265044464823111842762779836765655804435763265157062799925438476658716262797465698993313468487732996297224113233481857026504481426428150624911740821690428443392203016433076931519687226132202594020890710783097873711475082123173469558993428593047798140096247345448684949038950163082575285663254074783941607472677053639344976404331211956668424922423864498572731668573843999544334285947426825323159215431696292792603568731315505915787370568403438628766303950365622675057130619919377192753654855247327945460756281977896125500377086782928399465791605791807805881857022018068021552160529234013704365684289805757947894828817092547410765591122187380353224983793779402172117554795439575764427010989488774015735266116663659149454603767254834722117598139151846024615282837296035524627293824709793807006513386930985166102513827085241699471763170209847339970773945983867215660643482580191586591108861112768260764150369542191163247937143047457287939291026086677757225836052325002694146147645178220087815929497653766171706652622346391620780886669720979834255807290660392461019979167807926758442428042902166327600400990166125136300714227704026285057877535381171026978613011987724023145520255803725654366054712434749360008911977851754238072253471310619699253481400267764896325163824577614896831423828831477426840928387505780966385662281370935675290399915286854006224417071593604589914729130471249086946594837684803406820862159713119628686169132432110080185228859214340427771046602973321918862928379305012771346713653585308578442398156010133000253907888167979028844605361855100731057001411208718842580351449950283151783929354762887387518780071575182935017814734767074116751763551874718280922884037657728624932327782158936316347402082906405153559303466131720433353940799512418043589163560444372188146263638516367817447199652381436584529065428247413256330236163992707242877590633825124082912402136747131908480781496845874948340455202254678986327860734536934185413081390390508394064906456696819049052138722224165838145494954766540586082064180583391725553750993668592689546305078475739042754184542077118908890059718588681194875056371651308861404565274132338728224743195567765017031169743276880161179698351531287467447016643293600696229041491973108381972346734612001939981580963423433891006385503434717756840882484704487478753605716239511276413496994816271965620511752127614987774178980845489676813828920886486212413939336379882733013464550093550490107073138782124967244027182160211986924869889188379717494650074708776633944222559675920162434385141098280560858287438037577074032615211651660535010582651637494954423412599900928858898701716247290841441187618464407925989719600384756270020173079291986039421088930828491073401550901322709374986406945558199884666425116554251175865484106073313698994104161845698963199406232343075607781541792177746911660439489635906934191787316155026357636359891421780489774123104232410989507701241414918780715876805788709663362409868871365983833559856818342948716033921231091647663103233846563142644179802541991199919629163097200974675582611613356950826221525144555714553330740089182105460341519042420314889603936791448865170162811356131053948436789509384539724163084414477414579015623583209511299192466210177888664721287173246211259204355100926905042879047936765383881148515479435817591068527992606840003583622627072047954553572163198738446146232526889736951680299905807781275359511582141450208806412006032607603594761189631550075418554795933375021651230057288937180590364657367564430557440438071854203741788830445696034637508220559048237056756442779873444657954356070332151577662737752825337126049225049037025253702850627642515995282222154103976641365039024624801600078082187610351201365235189035011343989448520997963092859445771821405104094014706688404455898727944425364974981228054931775416618317635104134533274476476041484787442121830259644725555869517325443589453414426037188050698234117866284696681214331417503586342674636533084957131794127904078165302663664082488390179445997305776242156613374801734208126139124071742995450624752211923940405486041919569756483619507723154570350590167582853267491463746377225285097560815898545031801887084002215639002378463179526336091088854583573108156471402475799994950848862680533148771682071789676551275607426553013241370300894675062802392991998901823362424775033968388324868188846864013188778921616637971623629845296070001147851748839734547421415057442814107351906102138550845744412048945313926804069076100991380995093015228924343559595453704829839683741547662414013557406474522453896280255415519277145601675246454652990592415773257460229608361396494293603429485558074686345290369205291413573387435401746333062231808781788179164150069845172919172702774559954410631784097839588879840453054983203317721404435262431741754830392600395348292027471916178884194709773268994022824093656296448431122827199339381441895388256961288038367714443741594372309884393229334223220442534708774180368034213030398296696402984541593865045403411536616513733997860876750541877659490615835343245584049634852168964993919995294385855835933657281647545150300570997833067830231809548711138916334408586047420378741024335957160572624502845116379591610566005461178414680161883850277333705929921678018662007910740266769852948957324831631353942690732791578630891036753749692610168851030022733742488210570812477691080913578915915084290196650804211634344684608108720662746041844791856221513090509639784772874751348839378265611367104204801617126073659345676140790922445177295017023762239570535511411532765181573629504031947418889775726287802297713913510848477438333285026870999285859127477947405793344657588213273352958936493634095659934676617799270027659608773416070176331314456284763947501740491290053766142480587729062245232350599296325388340575943495280687259689198466348867170234745334125189932746416596884060793424805087222167612599242097290715051634803888969881310524238853438469277274526768687691757626951620190526350255016136093946585194318399830312357987300274244917052770431428493683911526363855056861862682135724058356622116623130016391621754142386950491625320460624364738005751415914677925850705166638126924209926318722171407302188396559641434199734864988454440984889328410883566440271797680363599629882431203654020797116712980882303131117841265639376318333147961694285172656675495612716174993399991832489040546658132342630346882814009955766914754210238716758692032974227774394517421658920555013527398434158342794727508272506984208954883262233713923944876060265814168158095166344922234744041107166156358800103510381563322768217262109820742643894985506534851363676742684200403134253299987436242196851455629604538795466444749504317173599842589582781005492262443797428077951669333804247703283929202977709919062588957486658745835264506125626119730131046127216662907004226803424988140872629269426626802356437620712074164157475905452608321583671588805978082684474937452911201363410412959789615314032284568966509657342434588760934179289142165123312513947799807601005945962718754905515619166686902177681561379252888475007072299819619654690021795592610892068792309377780810067059300314056852653776971677176234520600449514443772300882015902719567742758829259258461815703800023699163952954738071767427843884761696034260149127140648815105697622493039946168017650762675423737374630317614120475470806483668983944843213004511689904770884128112179005905179562590350380739269968548878662920346314550083801074405251836361765330399872381309630431423584894325763451047427263694875077668063591129130412205857942026421300649268063713921741935789058733162125626636850002085351819133377572619982723866868662120496172665163430889260514297694292431130310290228947776385227600016023783686824873940693550182968690933626757129697143690255128657870760317718466031602758009320847261105014114763032329526945532159832242273401793672740092531018482905160619508097133215343642319038119827668195630376415862159875528095376165799744065772912896307078793507503456958219959285844676090715876539895618723257630982019429370695888153250690465053679112870151162178516173254486349452852317938224243103607704745891130228068808105065781629110532307590570949225081212464827861951745502367724162683263565780516966139365622654807162546891729553180479994968301131602146965104429803285458861821242208529268174570791539508352920560181284297095193070968935460584609804925118040346607366090555741133039684708212297132642838137905974466821167337752688265785896658017728072012150750948711763162877123295462054690058532767583219341034659334024230026973767524461844462228782998639204851232494361098635689454191017970957899334908188440684261532887940858047898131432199760808685365158169448289684411296447340649209369618431192229751289075398136898947253573319033678859829910220372548478796950334453465638123780120547899126200867657916021398269622991177571101784383980406574871400381560846501420960605452857001435209795101315590589066993204524241129404685534137525542283263237202007466960118421035474183496944761034445502216230554579544449414049505685361761802766653691332817228997868204211025848743279152190994921986452525885443428333827756739800425475907611209037407734588359905249428365513864932049224655311847826579475370071238020952072282164899231284209480214896805880129005698115744206351173894592100120722934913498771367470546208471037270215266741464487117797408045065996788829842906041636437013611074329679436230997862990019140051399746753763344073622698169928710421622239410934262663829067744766268215481554397811621112899533941316850920836006710835560193517796701849296016088761751784050579764198423778630988202304058783696232450926687274196903054882836863668677359590243403102553301464899970367492790759221581528944782314681695616601961418195859329656649288825910664260935043002497703573072829341015575854058935889540069911992082979071491751506980938029460158101506092631472316331754160037850658933662409777007807052583120359852661889397112039966349571639436833912717700771650450356453138062405190885651439450962129933295621056762690512959101606047482085004004079983678001149534833696800978693909785717253313392135921303328842807791448708496616569932206759277939059446222136893509923344895324750864436471846916114725685746684181379066611679432051486730334455455223433794711389331203732632112808019048024789649223022055432405174027176947093877967016523369404305902327820014800890447922679737544790889674243292294007450354133294148470537431446060458666634557303687886077282663124553262578321957186120363483766581178893628618170526175724661946000321055459285272916633895579942581596166925134976751106458020545253786930243925453371164136409767582553810092601668926419665395342464777627395062146308078880116435266447362805283150272938203811121449024698129361277687845700690869349203949622886243248850793205117763858157588100870506412453602414294486066132322738307430580440294448310915674776446019638912754054581837954394062497544601538485042060586655582582537782624837859929628036867976499519757984111745675608350733324559965002130464741701191545796379582765211730589491220030595748542041782494572137211161080985699242730094302133733627947404918722943539049463512679502694952637871274480115665405339808290341219870068419446321027934733912209919357558901093534919914328206789477508825696654935190520265142939748078394710481413486273464927307124864789509074467641019739736718849442596872180274785230275946172695957598811439848461129794775834823702836093380554168704958621031476257929279848109114694698205093643248540648503621358125664029260862232702186934273661566147907776320359221981675388444805888138021422062587552384269698977229701025634834124083922736840833897785162391493095211462134613856859568411536155725748062115596442743511792436757617720748241920554259239879086784712321747672249065304533637957022897924318535507475633812792090558662396816411079737945173321045949552231718259485735867901045869931516903422354107504429926371195899877846034685457225078956846691746611515540277844384103436047070978042154025074208676709646906911781483352286814505429860299987900386525126751154173168118237004540483704462712042913152645996638674345907898687962369513433886312415347820264594187687210001605806706371187177725101788440293934639134935189570874926324486399863944703723634135578858791994849508424600111625836846027030700162046108433860473914872835128998356297260043735547827722892383012251757434353658182724725200820050033803749875508106903955968935913804631679258013681096389316061056274452365459666732978960531503770931200809927484034683663282976042592947555914727474585659804331521971083973542252170843512419911836620269743004457888812953103659885258165964142735156982388016379477311154367644595504025726057009129922684111082811543451054459003847347579589339535640105933855066104810075981318896405424326445982193501025716903422391670547893698256589688923965879395426511936802143823770741488592731553347487677009300099853301303762414942634348513083692081628784936407525080705605696933946759509616978678429058770960995513379685744053554047504500715050053388437693980873320650418574025207475424675919960635102914819002904754892852225287890881040516673157626012783560981210397411449640531521284606927377438514190409064957294256658917956374161169455907195240523057442692853401600307186097321290686390363836389134588465104394798658353081156921590216733304825678803640103162657371413618796756174115708421184607168337372218466570652740188393913795909026529539622278716674894888908417110240741268625534775965014334260729383286418128371040265905941029030151187871320872281850275566104939496931380504917159236321274944594473247619362032452232632817771989210349458703589049346162141558320379160392668673230405728028986074639526684381476891007497548979231426622153454206580379074108931655875006403907761361272176545705448531529624962430432394255994149680218120779412959693154168721054450090189775372333678300090406910808945674444219786485618325387891052373562288389925032157748193106615669865809487332904786687639458649641422509349335552629874569326614341777195758940356837771646006821896251659512987430487278780018267252339798054727853311070178754006078717391928248015213880956044857924192250320285534298872223565060971687921230510050578099819218473077666517495654362594128714719897215507710548726057325187720099875037897195468148827403249371780036526084583890698334979942150493992809336074137360982899357420268766994885607929970857431660944419464538304783252128951855796719117863415451097072951692235973237812525922191460119815566640152765058240901620872424132758813740645711342513178136060368050920115123977677094339230684018348891292081324177666024786572645134312354812988963205262069143299599155038053545563955356580210406076473769676565011808657619008958742671533541752710369863655850147884319639317085759361979071269094004234392499444781339778322241826381785584547767299725948344755267778792233215870560288734840900795998717629075391497731331840900723305115244732537651790758528560630909276168978503199967477259690018772064911937581815782978902159150703955745515017742791765835018374163393049015172478272674697417859562766152285283566367458229654458077467127986200539261650756397409676738429728555843132114263561080089672216487794923782807527547935404207552003460484891027418363336170049483401718627933537490216096864810717800458268597835663208565805919443144692994913225889767447523487828464991810502377051885989653911270011327673388361462246775109271757453171257545892419200521872915598579612086255953383690845171992514296772296045830131352299656463469675420143861171656034014992059792561235808431014817491474906248231974647298339458495358773334480571977649445497479665009391728256080832113376134350160162986279278142983926770032758213765948073842041530848161163659113462468726251163095052198893530087612962069387776897151713698381489493564001486096446513025958932567200805556545656741500498123377442762321543519251456564850287101889331854312227877274433981227144779624207053411940273379318670161521031224039071380125391030136008810585158732015069994128171654350728276268754165090573579433233411695569850172071829899820433337772358252198909501850648748602879585394354059525574079023985425246663143834530671468442098612279203724956340743508114101406041470656160806690063269572980768015997295315971573494198220618290465676262511305645132952312252414953656838220816229091390332911835808748347923906998544522686272458979890439058714606245503159885102122112496086664597469278834739787914768856137346925391820840488794029752537648827303093272044719097741295349410186025912552975783034950767579741759672159134248872119444473041106823198804213616747242925166426947642062936628199856052498951107520893502265026663463610456322604268307393409929888788984564752755971027996619724342837657934904167718332323725989096850438011704238752049879357483705158986718494768934141639746633209578222816336065942683461743038174511955234738634986642479583618892264603566273575230044786151447194081800866294761217518902042328410178422517336955963613089250475152484831626327241658736267290808509656483145299126163450558395404650414861361434510573464498585171658271936549137507288171112539271156276214242372772435947390554821885254745826513796408426640068781601538882906183187866991414356594835926416282792737615456813285673263538710875846872964509790847503809022448965259715241564242749611781155818548814983543998274265437187725277724532726869564564282640142508032734958013453048441655215599491488396674778054152355043688121154267068918015438617190080402956005743758685560663947024692000398547509290972377638040035853605330881613398629381325648531576216547714729695421736820047241515428782696583434531967017017021931742931683587045233314650264440873971987705924833517770409334452784903774466625976437589583256135672673663641055392522825656934984220721675820746517855136608085905540817555825973525315287420727767333086842092988825497374887516480725564858929153695476628685565248887835637308838716259938073280331943719677315432963949298426795612495554512926750089006544108216812028799987399210354037084178312955651974333095910866384549516904662034234383188453300920764447126195390756176363976857027143139277503131300454385623952996838998320120734743721726007919175593079892846161479716993100491776020844086735099876208841200286927093761464256290225987913132286668587855912562893469715232366407432848995450977428155901829403376322236332180926957837123736670673270816680106896154781583710457124318471349225024890277562316077737253127803657863538523455287191579152453670063840090746486854341055435279517970696777352066926899832827765859124268169007984142263239094150218718195706987389333287680120803984246252364654362502030021947891242795022363648012107903682943017938625125937421240209209884652709120451649359723856838535983460382973341977705174258947605395218558344064242676124683228718090451563550842735271002882887667997640225444782823699881218290634623444092024786795368533869906810964124834584475739745114318454672915793759000278887520900414357077056280366590629016394610140495705649092807057199903061417284784489802162772437209714328060628445072078396550231786114076972283422982542556747902895648989727560889918987863724641823471407222538063814165092299191152614170416721543371500975726916990879890584154355778345081914580500004231287508241234291934484722509498229984553086499644887980330728536549945585399659295432153246771772030672952964124867560618385077170680716257956894878822363073030527750771527728916874495885325517301100072597236442842212952733615456080733768795707294563738094396364922963817342379385732658402328207307866417181730222898798037772611043944062582972633229356076840017608973763880508668640144070737458534566246370723204192821137172385089409047849608273588823323831484445833780295919784331573111042709023720077849168805577918346879394260375664152044558800623475373317971034580289881433558745828049497183962952357118439325479208607052191362645105331051795917868210096496062423443180748752713966302412515704211637695414278041706995442110425425010511506488029161564342725545402036204619881222512584032505023317792279928772480876562480748830615114990637429887576587165730698912701236832647891121429064314134300429232196883118251884450643222681494710368016484602984551475608974065778133195918064104777990579395743966844478099450555261018316900561933594505511675313241595553463919194590482943551673368392793209241863281770025246982447312050155356616426873319983414775030300589389327330100736054979972126621969882060625560545419266186270260389053202257177372816069737733626750305708357952652090073372853668587198009359617571868461455601038745726738359710579457614510746645926858444842536314435045385374599424701224565014135976385612202126331653047293602185996426539928938211110691487634959742050985701068953080231619963442503279003769780378653718690306957444622398864653520965903269364969641288159560150715629949932848894266498973052811755263352462660233761258120053678526974903081168631613123329637493254533175273023749491559893257465956338004097053336833573472059935523756998111604020674062010175911227349835416395263557940923186434946923794372096712043285901671254446837034436570954297207734664250387756189284817131883258656972396448292255690912810139450830731333280256270565686577770204867560273975714434942933591987885018159297715237034627424891956762746496286910021947929504715592403317485696869750400761778876867442703153469718211045536254276380314820991671775163803877659501936710761907041842700469507064313258667790786834450273642949916464757723973049909821262206134066482328254386620472369789483667306682111280800666562413104038598731626065076350887178923536712350063257055749807020092244955908240995185263668864402275210054376769881843768166948692375025898409029232380182876012617411233964803032961180235600365563902903997819037407536065969257641582885640769513958362708901186348292463799808908000518811992135210741750061513139258622528930489128445381949596870356370827491558560502503210433525753450080051435471159447500009226016447703279441560526444067821214920390341295176464041167600835849610282615427597550756805310815704294365731008259715172268529010202826450529750161633177376106651075003769995413953128460729242791661284718020101146637020016691327977547223062787998186360430489223786772316498121062927981867708294529356746061968946470920097537253398200487400763309219902305122640457819182213728883246058928945052112210914746894310056833611349995378677110104614208478243726255781887079758098254561173606513401460494823477625563270804300829436269060538034518443237092095995334759834541702269964430955088537691235531366893235623683942672545808506148863636345717394726872754918092779825623876634257769501601389456292578783061379875144676599799200453864657584946431802863216266556295898237724832991020604823520740062468291218994600783376448221921547043754939248554075991816294201977934800552427247125829789940677096969406180638558187009505478395575011217065809916236678829820483051411325045327192306580025893958707437709579333524221365832028715153062450710870460195885031461790513617341881806899108430293337696149158584346800569373147307616308502123359872518339121497208091915281239817567009327865553960089755062114787640755873788875239098303451318386294495673298108205445332626225921507211862382305254375745097933930007002889549121592137648885672397229247066091055323900776638345001807572496345703006169783127683696947404103216029899144750505716428588016204769417727293995465009951864619039284744097386709763005467576148599918632497679678375919138543658527617875063580128169635180976814247791248665669017778205456959101258567680877158632716579713015890520067145240175080862606189628698421093346330518237451826213779256016554526460189060460030107239718973053741216227499235143667610759146413948346955918961988967286391326146548940076367600942889652173992185908669086611100294298451940737355142020764539528939914810691627871438163157501252282147536562996645470381151690891110383294102953359647163326300098854222318837979496897082896116413277234734065319718992400231602298504213130049181419378065905833034950395763713391585645410974354328249808724528563396822026876448916067712071554911797356318534359905879864320216484967758942251190095603151827080923441899721107668972587427538533313181418264297588260922873424223456303546095794235725113272733514016387114636180220471248729793497204576776228529724111661392935036243824247274068394440986335579534686436178779930750145314133854340028062069517605631085214508047707935553184620117477482899073685413046672096033788802016391599074738078175468885403672168124486112073992414297422827161483015147433048744602606858356022151715219490281020841247784010831727885782998805309700615994090345436055783172495022248737696461391358948988310784618186221997273934851961342094311298656043199915487862002720837926565965900634622236533050617474708919737075852971828461918876855106795588810526232686913931617515872424721813743906954744786375069472880656467454165444903752845026320579932978718210254899220037477570127442998399992631383168679908424952612613337257152669403548416544199073885050091369833811890691632185502171339528174891279936785029689892732870844436734935917962058565138162552667647496906125692842960879703581449506720219749618194058055369653662759671149199402333588509099155457042301900108431272899193077072135608965908426939597805639069679800200095584780046355175343053818274847971506101083219264256434542218858774637892780134109309711154663220052900773333883655208042246081082327073734930208007151059563113017002485304491519959451389845981870203694685909437124567342455233244116557390159391703324765269644381459661350520587973258034134795079045827256830159437665693180776113755737608706095120261389243639963924545329774309389783824852996117396110591433540546004614335640684086201322129222560206771567303964416674152529064471129864543026511368333553287914706308821489874397136012660761317382733372887252268853959497509198782647492727315848231304073453499874505172889461376114344104238496186868896169995085675270749287006787527288650436206309383656824604032970663687415636931136845009951365907091027867565309009478135247974305071756405841293746757146108406955825648965039017581223886671129690494672568568153358035856011187719729838033019946494780890434857138171528397107440698446145747126200232099171347342766955113102281167134886531806914861927207976942108543448667083353566785551142339205638090774662412283211324737604517516522015461918523621492658559556040541517442506435129471769067625810354184781531329047689116530404715089101569245274827741825511085081793737506244472467946955081998577815532172074411881184944817544019696911632704116605735356590905110132701242128362192517032465028292324370057442153049508945000044364010758063330840334901951528575212930419086318503603606889041657841716598639024275824662678559933169925675489838600047327501311575027883208200941846784578247655269250863018038817710963771511082160699725945852433215355405409030511584072983183148732190638427167592733385382278138270432522759697550147859078230427056116811973654813791612964514443955048934773649108991209091193430113164839338168855701488356413747479419474530049656848579978327074238785463772846159440376887058479835521042686445318509157389780747010236491204299043191653260401693569707289956216102599335971069848987767921278823833224487590622100709600289281740094400187504403455278761559550374970896692257992504435984713325370711754714988736236782326154607481621100009740984342741351808910271589911252337784073476095142817290274876615598166122272161880614486372325984368272707659088725510911343094609541729755256641981409033193411516233468042374888147751221912721516782427594678108382984056167986991283072172227742750928172879658285434981703616616809393933615934995757584250384486032759935272375280844386330683640457867833469294861985400574692963050088862081990949038245229666062926274063253046833105507612121226322084266131933454693342758522185888512548623400420097332011232497113834477856282791299682168309289175982345891775111382913260921395365629476920942451400337498306904258003594865787960609557525190813433338196390011217615686612668629429224410562586614462902348915221919394879065010383912819513307023937219475691443574395288648563237195322388204253440646441533297637131024788326913934239775931349765806726259398173374731909808776567786189425983002732695749656386515287574552527846969584441991296626102315212983129481723188090823666895194805683440570192740632331829617403465511685518907198852552861532823561806901575324902359995016819416763772021249618459751530684840787169154822230550724961606745684098894499850130449322128231145896512590587964012700363042697830137819334109962438251437795176304688921719693328200131562800022694772661142386540999907366458438600601770480374853999154974837750404945930445867082633696261421438352211772994741335067993107174591221148787289980978233564371410883044825069183914538044089134437804259409954980817775198865763699469788466924442803211884322946853354322672643571075091450163731449289503862191392855893047626215192829510836764480676150561849476381181135403978990337999423909715935935165324177695131142864491689970026501584833098043003651036281448839249508841742937336762002518165886136607368757394401010565409975802238587509327957566537678282576326867995831472429384023292992228995013639228509393146344466690670895678922793699886906534795152043527437014128344855370894492669674258783109355987532412623452226452774957032238447628449490864122774298912693836579922411345327899258561824487181330605768980123909382588813769386639825075994614121346472263662409372115122860801857603212005990022288909761612312284037379943033375386076169563013663717254023847029023703718552260220192382706805286759550618382629074391069706703212268636859662962018773581398250474953730659986920582824832696259537065080801717886029237774151011327035170528650802531719589695234157455568585832468295502692838073103773414837431927327325905281928615572728490448147968915280465800125799859586187377621884386883137250667934664438170774335583038051752129721236313689017260432160648477620128372695857946186788550130999243775601263069042325974582077481560426058641799693617784973442951211571228891312992313881965573550992398819123566014219231116646557748628670273424647952095167696756036089864806148931349539552664912983382991521533788245979532728547674821194916255280981718917986848987330577604684589303978143426751965263737890603685852098154880514621172102473277726921644507598256847163796130466550954263081789258021275745414161544209136579400196647044801233230285617179282931192526748814895390818752938547967956777521659067747139337557244895874820047620791296903489525456822714681697335671739738710557764270545282929365576426858397961640514051567301787929945271145137043838871063804042292654733119359910610752621326814433123713718633813686947881981284355547731859960533011241631971337720569263151196857463166426228215865500231784536943102270736820018956701279854886355847954864068879640864558224398947047536938005637543390161535423852706155825446614244138564484872939849461567905897135405672132631300484984016550590368477168998662025126709345996329502055860400656299309964644551383142992497227623574737400047290312061925605041634375337055447973407850196631877702786320805274552888275538803824844218645847961255927429822243007588075655715470213963218574936362590616127952736617824411585971071542695938736185059159869480831664381829699499847901616354800440677025858848484488592653139212185949749293820381027671882600337224457758133330662068244594707944670418377083257060355000234402171321672673670688799655306260055562212760609664987808882279626935317654403261780960318932550417765816081192603667599775934999429395046422125603625201546602189582504911879792766151963753680957066901167986994916119278635155936942124527365685449751365446313049277464982093796091278672739748213234849188452461134582259753412684661292952348289378785168490502454337487954591607736512972744613640856771579201304495781147375565824933413879268537580101784676189731737370410205532487007138793094398072897918072359659650126923340931296999320614205362261303780956019135740126884143059015122847549012010012625147659245709509278868355230667297091216057288843789279203406685876172364209530404622753857388230047236457907177017847660381232086786918021437287918104082829761016922464967569107371546327876914698116951814510272919861425634529814039837210260304545864936445151803045097001423695519517563046694574770953514365364596502430434996563574440569416967528130098365575022903014434166394721264734426915114268586798247003868070000388237073003260815400486762169934483044420272426838841150342512662188009459045733340674026183262951288664028962634707135823202680053883254888298742225494607619574396753280572666230562312847238669952774781054079808421426885471396431961671364520701052627406735729662181992821960385878646211878949292099503891658507622654595300918460081069341477478307408957158507710849146758632758994850818704578454644857592229186767233299697353246502399383143214587126912864636945949658584989029218535840353051192805832144674854337600235564845449882115480814986855937293064334454898426369504786498015226982269266852398212296142602850110117868497470504082901417101467258539396449502939336518884928040499884991128528038139716212415834082814683439197476959588144961060020135365369808957580155992914570853384852833950988368142707325110633848543570798055349806610315293828687157077902657918832466197952246565736507278903576848784391222233256735832695766504486046417760476659047796920822120884692126652096724804849810613962839497563488738906974255654686810761254722933992974182662758289052851524314447691145867581097139976223606031346758761974575118270203442271052577864122188174583727203109532253268477733621099605385668048453217140176174142671726157191753039719358720601687672024429056475209754699098467584155146676072946033839810559408363983785849845458244402989323458969571441090663146688911402707794564066817253558575692608744657076025506399131445758441759023251343493787199154894037324100809449680837072659244899335200450556763602227846411425954168316048024167774768162347712974839241479852210156227520979257592765537990171480373511895005225637559568993853265836230935537186614519744733972590911079732471547951286515452976982994359286378700990217987948189213874336306554628152603236914972501021009161396026712609690113587603735234209235028943567219284236653879728415215989205017716554013469112032233881137389751927538468874637312895835274938989285396744062032582399226256826260013434583563796225027178183126398130156778515533421572065180713282724517477681295784009101017825251766054611627501600905663809857504558533212667568236163162874598849482477509368602209122892922381891454564416108214047620382531712077505772905915065193769911402661417644324815349120141468455364380907285337371728131564250733193991760244186029683531254298680919059071035939826188031403839338746296443540426492575029131603637928295112635186992710994465729879650624513111442987245247262172284486218624833135042724786305599391999259942841861990498623777727009811698803544227935743468416406463238368133772681851340323456919462481789203007510418014095816961261656118814997188191572616187728959857192026240056015565765828754926355133589837871348659414258371961116209191135375138634400533869897063663726382731270754561607073048599935349328394522286866946835895679348206866477805935810827787481556538821956785339086212118380821637915477187753714031417045300325108255267667207057831344204229177510073472275769529964282926147294822570276318559401276438603974782725637996137958170326901547887827531913990051231821003571489752492285460158119132057295776396847496397532793517715680355355635234817672062118716022875845575125361274509626658824499794054192100996208890402552707703434013292114677334792129737851587479891751405469413165270443368737311306308733505903930561873621149915669525088091949803835132807179602886873569690895597599907017833043116317129369552025837653400127239635774955072707378402777244887273272384707968332914882685452883173914483340624258033494489848388650706376366236347413846396592015449202991527370938740546035065390629996448230688056112903345707367392192962656349203634550542194467686079972359867460576291986624555566535746370683694829758831769902078655726937149760820369206551271319420236923589517179203064899087180622285175255611631095395315193788936479461382333860941772188739907781365050585179914398244025549720784270392457256295152627254708634005336382423287384532714529347859988338616343212303601923414928945069702470977819301329752964611625392670351473847066923177475820708444785178622690833692311801994611563330636774588126094051984981103312034387262448995938099358351183968332810318049922079562670442718322818683104737941161142507387526370212254709010732848184590218483453718378288423715348301644320743945982166606064600130999543905400811681912941303423224485104567164344253145158798020987133478784922969483894292909867827858077778388597591483277904077006090123351919553082110105890535633751157070982000479539823245244574510089222698427622076111837000288885884396045079450310883768022230818359329891220940317732895552109547688978077755688267330428089588607951162445766238172486774330135281016404172780617995718676606622538766404839785825223610278824209706018827633360617244445575591146883223822420149277474561902355195018813158805490667848227515561300758116586256770289930692539062514916379838897681424912344649804774609637453648762160678327399134781702199772587852334197050800513768664830839510519276122111874964248674965939564755455439907098863672413959998002759306855400152543593257554870785986896972001360629273471215630099965153334204450360498889838993864579329814368895579221418436798812321359439525807234956176189518917009751350735200895782560716566292225039486237906249056832583094456982312255365437080907285223213083123696206300469599061056961104654478323339548650946919913355275411781059027717452100014881056783148653918303979015249317433790806289494932007433737712597905396137758086536303857320716884743029337293343081994795057388448882231052022768333542995636542258838202812030269362885319641196984554968071143678858268884589345579241107123425727850084362236645358259353803202482139603627986998475219986797849015551670256205054015865781200834392459870492080462524119712872057998066522273058699337063706974309700941430558669574865432317006723631188058166557200164706730696067432751190038272464114489699619026584147455976106366107586855478731083321888372279715172455267093445505994254455268410166426243699285735792295791878851635935409802349852777123374398214109521017785579207126747291446606640375675749737699944468429026226822412377574078968692329140588010568315813943830962271042032601460963561261220313909076773412000804286568993480803970393491862836471349443140351958990088367331850748231335915948260660882455722436776704935326304819882694792585923830920220789129378446649062170558862813332393765527320489510231341956217770785827321210961217466572823591299829674425577620953633155842939957463511656707168792623377553509469958660259924855047331253484644890439582225632665732865319487586118472878047610797876124577026840572914813500205665102892769645122607956991038147341678861478251884213084220560197018580635205827485660240877549999275408914678154244664202113860606119227123356611638879495069493229260980624917935161855905900866156744709863779958985860415459926597553160285206827478051905759150803882785927152526935188719437506729712703322461408706106984489057898533716163081917222932850865792344038912102399632386780341727121913386544356494772638437091672738632484373524654856836144590040077884275269430302694394321030313120133087730541998745524614858745412062779604287881665309793189662678070528496553366122864747591877403997527317299178246230681937667468558473575013112626375520193768311615113869033905880952681572449739100662910383210132973182281579498606495623604957675122090359142710905194050995761670619788279882931292631153107222132953723618368010130235273633316681108849655377290952079260631676693240284689873912381592019216863761014202617964686047586104706537822552682600723438575955704517834416938349503836414653116209148931748593689539432125571274454650542133963711155332814963637980471457926779783289046030765926281292802124481707056204378752557058224405551019463215628081728417868413011407893994452397821627402279693544912351763893603850961770122095136295134895500149994269012063401781446552076555005564385306345550735979305306048367999565288900574303016249314856425921504326005436057273642007039040861603840630591106445861209017828784550805795165187811301287730906833767433585477979420084502463570093486847094983495814442009829604617115782955372168786801134281736729455189479265555511248203849249134153832029243674168141318296774746868333574207750050889987482055193436353181976345891114245963640723918735336602226757450400370109764083330505982059662132362981980361024656865345652854185477391586782671179568004054550999226082066083151170331700014947493891363984148974697743789707049061604202186829782101140484280990288559325009145776379265553992821203610143424283904435756916101429491719704081798357258247613640992357881812994130481266358200600226203508602920855664648277314417368091177140387721392187191102098764400506658307798063081761709392447652482281340833108545348169517170534929384752875204550252089542150628293831824778742420843185454457025288133245794881505989190762477004266169796791980998460611835290258489014109754988379551527096415510514665262594466199101425370774024539249183928514625880436322024733992837548437938009513680670262479164432620969307947479376933400304602934884322778448924728225472232106466011762378843929105699247549362765563284257185089255840134489255484016009978725969618906692383059157576810583726540511073072247049458414343527307545832712804756568264473547560784249581102973911985392313688796606276775556274422532870970500926315174177648300468167951813033642261140489297854331132805157846379344272989076262650044814945345739271752831488889685852639822289464365098713501033287900867709788685613533609556815228641607034002507112668619767410175351905001950875756449023866142043109577508954993035881578520474199029817144453471034549703539216543450097092771483590726669315427983616922337832655388944437285116087468476500249339579169542737615578418115624830004674314713854850713289594993754512103225594422015975588019073906890889412862718087131263701425288696075951689394749705779794157728077157857868943366529312841242745040254507676323633692037389205585634083951469852024609106461256208013032496446901013130991707030138626542408293699101297559496255567748444720417632915951131347310090918289185083612717516700115722116413468173244399244191819445020533925281481181095593084387029142414842952645160358213841714719842894539792926425193524264883979503491995557293524864551306876171759425895399011597298661848560242383308213235485032452572604754872158016883102737247137345377739437918891233804261178755772736441167037711121723758598295476925266750509221281897355002397917180454570232797824222949563887750307416116928753091525681316068101736811266128672946320534873555977016405710133376333882201085588941215153241188250250685582895319218370538464791741886024643379033854768490731746686078240922717027270146213849315054643255916924247265176630739069028979325201709789575228363176291327262618732930056696392300611159254671600044053358905647858943449344772197292789948424332199237757617781152953952953000687068964099817997258796403181317146857232056085071395639728902947588433294279227237318166004272105616846548308670415677253839349385653546233340657860693156637061579343906926680931687239324133859581004228555379822217810852940679619367655273143505728834882321212745125913988369307527707451099026658922070123852830969448028608159591357693884556949980059466882860667894159798604807371665199162431969300526812268336570248219617988532806234839714249394048287586882029856827405417868722649690924971403486182910072020894291680644867445001393252064575241968139157243384287264118725530371979784603881034312850993483297788261703758775141099146482314398286710663458051892555682117087460302627232898951752340688780238164051648965121980585490083022948863679555330433887132862096287075430946902506391021652058166504309041458893977133378724296678356482649337372637599147008044601290447391286479325749348073349539470251692400645933819214866847926236783073878944539366658622550831825971209440799809698482795231224827204078087925158000847443771749088093152957715547012446458189410964974735538859519648423483282852095260523348596437109965695124679356570716972520151131074464012040543553612649119137091576133429637139948194867320981780273158028786622027958654295238713610716092976109378699683884887748720222298567125358590476078825154608276370183488119695623744459876762549948530603842044713950450393923065479273005007951790249442363840197962083283013238584193488719626116635720601962139549319786586855548640299235353057639013745737013018616836802148235494725270392371920372588638483188045801634210497711317734040920913835988267174307684968080957958428371747724808257038567616565178268243104881202093214006250224920256308718864807114352021523053021878737253358316988094345827653477906907760315119472111470291865492120328905708062190302477034987907193708682211807488404717449649870987928375305266040610532084557827614935078346449293183926711574419361238856104819562574166424937771691195218931336146920276224224677680138198697184590982977728364883305369442438426263293575075238654070242146489485561855687501696666507099386553847569494157229470159638711412801371114714988421209799522908289626891673374047269066774980098520151746250035619597696466098505215373658206164241587556594739138067465094354684771829164664350454311370543056191189549876998033989348306840759382372534696156511077485508721387091693654054849703987533978332695439490798342294734688265749655969683093441726621375150123225905882906410450267952087751530530082936793095608937945886456045564893664342081826028300739833119088781831714223179072879356353770898268849311873608662827701374240091820585889526964802816938638297039503480803329202912950163015804002283088336634801149734812447395574247326322646512731063716936383619695708382020010219742855225889622454950127546562387360307012129246543869308167208051311199348743408841397962652195421957546729080682706786730884264282809461785812906764725156581649857045468834957477829549540776664503217646942564414116387579271751483270792259445134421844555236311911147366117412993859221257828433458161952849939201518814447901281653066459348451525364918325345653025625192487227625357741233616548641877830539747866148822702203664782639823171514121542174238683647181762162794898166112829391314397106501711264714602017639104704374357024397659770007857652303479316907694100629627407565575625062179414411868622336334901636200252546252600395710145155271564100886123902143106749888809773390191767170762913135261512247453279635622529803029597578493105426819993821353988908450536757549581522690648498294093635745279344519032677825836445162119848588332095362235517648771408869824326453461884762963185583295645970385880606958401588882005996169898347968104873193834128718479852535885687480604425206144161383413728048606480161522342860483501601556821744030215498869486496007979178243092675372387080279716003031211712233066478737298181449023452153489472280999272472653552974534647595551321219645674426378312921774473990517826502588664464676728608880911083360882264595691787240699166740798590085646071398035926747890032871252982074857542363003216627255933369236804213622653747441756258523426295099048391494751081121523713698305068252083782189776062309437715756018486352602874606233118714791207323464565731660932066265515503480637850041746335599383981804729473616767551919894234049656367445806336110092796385725986698657529090378822430162363984843498032248518799721746588027481846209942103900952088810386829088602802578726854741274609025687913075339498485900182883630556204390147877384825675904924387789874069505045383213471371879444122890790284315450449611964785239702092022555792697462476548914112109137492063443879440302437875216704702192285177618275498816589972254585192731157780047139051001144604362140122164157424386061428160366953690762263816298822168643737677703390580786181715472661036151329529362808875655662078176963750532907919707354999269365347599864718916433028607737451560182576246640595483904981232075509065447760783918761565765387948810385931183137330891056458817673398951325339538005726752286853775830710009786113642455943409298777543928726813017298326781672467139898382814462691748411553919830792656611557833200286433602058955517829542402585847279663632027516800815225414330113828496672344079089060250447266364772418819019950052785579916760209379742688398056796260762634993645015177742178550968261312145207794238735296346653257988884423718430157295871118784043730158071469229783869004021537988412747991166035093529741307689714146025623011527040612248154434821084151928185190211441670885064537092847886320132529204052302694845073023622749057831896154592578614916449992530448847952369710973475607146404176687932454299186885304069588515546217656878454634837586206946518543164991043414817558689162412783047650531665952209303556551480726630675486420941490234885134543582109100106650241635041638471781419317851892023359458112310283929218159926885758130184264549687870446228606597649243227052243059882205864299197792401337786961246433314284810031777513464677608814972827448993782563081756367130351143106683463316415320124110887298424048086300390135055731235580658165550762213623778152244277616770816432041767875433719293061450376428649012307679543619917042863426449935640339545496728561383743825397425713137714148802375355374377920056257939119310484649977778999961510800783884121489187438544223137864069035126532383901824727471231569645599952402238779602401886611841504422813245709835607091083126005956031403457695708788261250965264812330265664614609168826141313150348242457572169115075545385094282285904079185436550342033841029346717572685109962552061074283830886800602091973407842388364174735692790876929101820796716252287791266948704903872595885431142186944889758162909955951568623946932196463411106290858971386844856369146711200295018330904223841578117739237019870545481867191699074714872728529544521239630118814338022880761468261615546858683539478515203039396091452471735179719356137080886829518237423249866410168005211613343366704027626865777002660221013178962084663580706739480844732595160439138759703677017155385185378037764006703553208109585081460769676846977837028273753927737606220965793420333547302381079620364304745544686293650690974941126516883461193460159666328509526254279205225164132589176176887642339449354391984647392942206298887746535801259070935985622152598638958303150538252122028698827535796192044722388040098602412800898795980430079957062801486206774381261834294756591163846265244965645397115659944093530631133488954635111856584855687407885851134413084628405159452436125198417267014203790170863232945507624394784456489922645477852673078936358649679474115413054571046313874804683923673135961876488604328000460861117427695169028249029206465722452916278963589436431708693349500769626454532467738709990293247660067803526518991036776034835318370104038976612713636815941346781546730575563682714327669516577788565084555148179878301177520047649485152492936272509421862286429046861647761181701682689734128421788729062161391437324240369227380076918364555794606338866096879673786523980115010139794845759834078014359291850679698364096531343019846476475410925342740436252864047332979890924386209586585129912535197505409482409491816844636674250888247923633129792811595840350530803333454680136360844303308879976152137359281474916396648937995202617091129201096706536787333865441401995604614518028618597336720265626865822974244804599698130015471297577326838118690771688576572059034584950313595539287329175801851862763526471658294760963475499611132140869140115274054399345814173908168699494171876509655852138775067544078593393210744060849572498476112548424647248677200958774780564151244576810541619995913907377782500305824470197365107373952332270191630999559690394110704025801779414600317308326472164573475646372684787484998931720773785772253396042269994595819377661504745308804000125950050967215659893662295130458703589548552290139537007552278069222428922866491430664395757744418854012074281368073283960750397412295324708199426650513699359861087412254800757710027836900287554961531479557238266005529251351434265225172611236207547138338495854586708814511585892078183055755386618989723105337408215110373434031836690585347246098793436103816363229021779362595641886068636312284846929203538281474385062396361676125639245629943350222315738878699598615935940113089054770072562951512276656649767321212169989578427583232394481276708788886966175532277723195027600180178654175560011463622618744521383460593640162408107944074304265347917280399077480737736658505611110058108904183255606956096492442443365143267420277453993355533039455832003326830398408569184487093224547678303343927217405201455130321945826491385672573837759665807481434736267441792345613125170584021260854317121330028571727214445193933738554206704444368068400701164853125503688039021479148277080977919962945616062892562737835674953519819851344565585001687439557378932077031982512124103719025664256655468313806342719195559876125845027609195606563439668931989062708937621256140727972149204990280053134566869569196154048127729197610451512812614082210763322017351136503222019037932970671567848807768566098779995470041981858664668145744685515006946066460615004514020043760535620261257502252466538367314917618680675357868831646651045226933602142076500763389148714625073396669340730454067940146591086581090048992037508366348003761020738858540584964440084228227922336611305269408803905795606399763999403010943410240962229514412384823090339989323180689212686023798843975956663025514270234303042399819245671739743873227408611741144241905545068005472993208798345404518089083519797300125800909182486820236824477877350684110775025128239023896685800046494259075834819884004039922400207322773353924423946510355384838196039414704549386435746511023278368902040847595177259251683995953877594358116781474046014489178303169340036401456400996859946229954168447770871336582278516162207125667340081227240767179435429298319358912932530213525969533535103217468529076384541415188166697249547989348772230525463543598995919750146640444220953239094432186433459112481417438549102932130916275566826870644655727843737568759356267197968570454318829326540878643209082562365586997226620380068304747946958828476337322218969338833882463061685683817544674783378514731131124862716287332157557803650442244892719602792466279720052423582184829479584178339434703804879818450494211201814792025935619717824328964993189256552127824990731177456599482127789430439670516437568354853716083177911406907617280516497412373706411526147165702092011292509178988190455884015860470023937111096637638728961824800683209742021954894655475124198013064760120644351756701309014502081994761572002110941135370714381544223409534411743848027779189755354765613634538662692333309658695063800892906017875379123051074189066300245927103026892779220486155944425717713321602998559516182830281497939061869440613598104080784050911042224603614875636073722156769501389196118186892808021485966052281777084900872145386183859451659517525516525507116174299600865423879008923547898344855617316775384266706836066605583487367509355456354118541727147449846544871354451296815809584584828618594839716542772451225471675708877647960635861407517771388229837029483204494912374588794033467488505659732757475902479378783782213020432478513192205411533956770137171679856099199410411069676640470870957521761644669514557520842556282024661665718733828727371379276217050980281687880455760046933619659241802869719184813211884553891025423522950632060123906167943811564745578456803140994234865146552129258997419956820213665794552584993682350523514645872389480811331603359166183944808713598394468599778610826234746578610065753838033282549585650288393940958489410646462606724618038026182199647703792462062996805619590148216577617540380782165930318523927172672434242140664532301938284146117311169940364976780119600438035130068226681883303651414269207674327784434921673579502431162086877176760713600195090010169435599026474093636733960776628656078810757326909756312746133336381406831958075120767291539587060612053075797821584308685369565149383658822485329737516353602884905144544253906088906483203579800117867784867832213527414969778219953464695670859739709927366313270587744077496985688518238272475973167423418880631093739919015454762509478828717065253823140025770075777079478089019655382908770248357118588330611620431781617814290853732804684959941075459634298683471871033865005977355392065719877785828068875102385507035256479422831731268310050758940255281396154368893573390264286543010924276977219024964559748663517310273684523217386114455954940193834527028492830057653220206109528360939484016450543755403981685611465725086546384232976579385772962667270620888609013842288129446586962838662262411366308600240680743112722300651385807351722285584748698585816232890522496511593736334552066247322781423593906322372056751648677281158189121824637715307894441943944298680813495019060930613251838255466680084139451739297059340722879931725094797638141842456716998618531113590414174513925267285081798371884054693052990079225771289978774968958465827334198359579782890806753570052757609259403139822199083587356620785783945146420921453080522515361171494929178261022738887685067645885685217223828587585955718707403499185698587607775718901885950211498158108168540571725952829947177593321730206124658477391310335448251748155234386700958024388090001821877082918339110365663562657257275698666082142990859250370269108897404756209628221091894786157284233031218424547492516855238853988570867175597544927880450435007881679994023121892951449568692043217913457326499767588657426866738049355821425045309716657976811650933947923031409502619817716525182759205255998014897363740712626921827235252303982044703414506568537779746197436382451562554560095475544364758819262788135301325340739755017738693262055762257416891337790538667395996705566797844642381000459249194386203703538321350038257976767334174966650006601797955407683494301922708847186823210074779275249896699087326236835770498674585294031898771684722498199131543133237501564734759114152850238291171113323340005320970661693119119339495765956111733880159884902575072120746859934401254023268574434438055403712964734708707545167570458210693092499867732928627884591433401591445991858446145989204908450354547148844468861203853338402366857031387576925525063790042175013725103916417357118876626865020332057795341944390463595400305775760869099160285234311319026645448288371893015770469304673311036097045639210593662351958518668154499253988656842901266444621457856510982336609868818198393894695342610031766081529806979595824824274608502263920037242825924817569213354445671341813212806083637456302251836577148106745402344352599657395529945994943838231945109623516625682603538207608416878319123511744283200688180075166766079354913068399066861890873929859946275330888172846701128172021842402870941299975252304669066694026737832158270291174466761940370392701522383104460252311111261239486003585018336666085611744935254676727118264316315830995096452238202903179002909018534223545567236635056348884506308192894094162233464009133677522400818167967458668243748086240673104871083441107546318260417012861544324663883944868557906563002932150145968766722136840588563804753000584632352749510262679442992954060749816211752503080031351920525378646063889588371230399526134510285877382290107572409588438131794961032631384272970121614601825343969780924258461187947749421056322321508896080391696616279002796071491025616017372121071413741990374001685489438705112483677674599618958274967359605389899237006114669129073609148010841172688658048339685660288918755986351152969083250418666615714735547967696943652242193635541346017554586015560418492623150134452063017549054644783639884372457354501987089427545019300084120621024688226306988931078379509954009814462813003768705775365995373561227314587341076325738863747669279951835625788883705815095117583146039107399248671767551971950027942518779115330138189362940419046740298633471311772868966086535817798838244691833109393371715370125800413242979560315167621577905486407322043588212060831752719266092172294617825413508011461379562885191576656921162700757873801393540601928182767251232003548810016510124225945345827453768635399242296210319437537164480348003836870367603392585103139745091537037451891988032372565623400665598130499550226886539028002825071291560005472487176081996374106158784924780014204274531331302392676850325727351240536060904484208948173465074964979047152941767340638207876965159144343401226299229235952524156953632734022016443088903764557263741312071428722486783092918629047635352702651841864637270376619455797844049799595109297834431562837120089144632750489674624128918002366013169893196050683260646653679694384755042424212467752509568385259936566760354553095338365028624734921116764835622200854911624975472684547315291370000760416409818220462468754394299867155211262203560227451474203267102385083361626328080861402858920514802658774652444001551554077059040365645875718236414555021722021053843946093422752832364942149932191048478521270798693051000448815572145047738263842545876676806046435974533254570607965750782984478147780552548553576597797654881270151265117436353300896227695091051408252572190352994976582398182591567024546632729438180837119008460120749122035515361355992141510517198769256286061590843776171711468447137651629373019226669457469572901091827270548906702626577152617267310979972747845225408104125412847176074138700097906715327250378935782049685199809796893283141674403151927577806180671360533014379265594788106778025629154878705542049583672049313284850205722706784478589200202141255571679491267254466163992322925231247395699054690363103383475304260982514621956285808670389965767527018462866882373982166746637506932055071423551065934860374087847583049222050242474305161712043060631117819962629956268857235334392421726852249997811890790903710557874369198350653595785209049841710728420718571442934547825604978800338530459837930411115460995661184240526394870667368523350026476917942210401118940175657699972457695358811227397303337189210905986097623377745498182162066673367568752371125451259211687797941271428818174224770358167489132256470591815757468716545450630231605683123735726397089510061572451303343870329501620820511228778625199229080114492226156396047571280522828290405520302851320589295120699594341501918230480935770962256108561259751729495145182028495265982444636821079406368336514843717214633371349931004296847437663859312640017177644518382945745591729401768308095794217982117551621812920711574207761125364752763329978113607606636509036573973888307748092081679768928899830269409593423361689389626621287791390725225580014097908679390499389624937940555959858372964990812345678048772972050288632287012442192321363302097516472628250874421292110135409055163311100361326496230564937349210208569784569187659855396185869038113394360544868363050851447630765996172713171134491860421468156565416756264475935992363398199772175144930837193125344956833073253048074225904048552837443557089846997570268224162941526473454314836705329363106866087956742338882907835505179374008345824899745969829270076957023804207577199650362366685458020946379802927709483098024593183318269479838455395416745580455590846340853189373137509048542518655321520750469275002701161171147326978362991437656623552099569969017946542008426287254904999854570996296199713296389604065499502395257909096444238369567265478897869637662479715177986661950891183454919203610119267492410483834532172281498660570918902174558338023089151343078883450286695000466100967481629904112393593505465697878454251576385483967325538127562322116257641767159371148777195924230120534672911080323744670692141803373116419717951348460403826025813916582075654439158684226365157988486802917675434000410408444376651043626922839883537045276116266389218024713635366476930431980521051096324907603412666835008062150653837424642066130847326709662236742741586657691834575451560254726398193584761373591315771440042080645154719953396097118463398358740092214065268336062721078428991143609019875237612996392715009252443288576195493912462496946508379898654366428091747498422869667368500043912394242060612657905295352531965855596415393674945942286490571859385750963260308222883472083241999866623204979621758558077363516603638163491406819781670077852994591366648236782177253608786240849851203138516307168863353225471830191915924646898798218066161721198929943427931832124042357106503179142935280772122264465998356505034582517531718930612188492601536543390948284166189385375602277304479454607323517300324305462886245008972914907452490144867539740844238604153397823285357856893176513971742816085364325581592740185414657946298043238901061483367423637868584962205367345802811807438083615954663287544263254580685247752386739897268293203061783831598871730251620301165929367331548680016093271790050501676128975112958808256070827742657826498296323953957628235920471938422083021698239088393052393168467987791393035052135038941317437923889097862845763183927578449315908408473008151269604472219688670251135266778769066783885427846554316073691050428245695218108752920514606728641443388827503404478972600718131155485608771582720890750756783317909401230101334026160572671450342584015625504815963106578244411422510625030537222727451547700680929356290233819439824004071833351870737206808120117638392914779057745652742903684257091147173352808202253363395844512496900924302873810950294682919747407197882266196979348017383427712927558422837310755369638876977800014854282677644085989402563762160983970752238457312217279219996760427864276079506192180347493725482691245379734393962074568283620297894059716768425476802124804007134456189406828075529277418388840313878258682451114235719980855105411253912647712894579728714964437704575809926127255999008958080600058283603488098824875543333156160256669912686603851473220676750125945050714927555106466821905608266363563508309795438256504406093796862446027419092698322603051174796654341180867916711195743362959451769937047915421466112945179613101704211858126169462816785779489497042667649518384044590020097149361154051687138464991031841423870445478301799816051646927493112276989105826790236310542977730171762298669350252807585489901736331043679957588387234656898423843121099539411634452151329949086302970516884535497637754900118525279756785928175059725969048434001912844515395350513888748677001747162543744165567282003631463365088576953838838758321688466923840575483784462076434827632333579800014090075211840540109094670289333893577960697031136047716916976084167166563522584715803032655128870710273727102958885008295778777533203178367574430301431849120920511820673846269552371052428543710115711633073081227507373663616076203733802381111923362461707677483124883136713527865686452087520041095114589504731508821374736867169752593909503081034278905713499597691149204411984013578014848044552849917549089306008766522655162776888295957976808298933548731862184131324991183881194210949587677591245539220479759819255227907747411656482133716255521471730860297191379721527591436200579651823671228330465123188395006340364542773565787442913424338892128898152111977045781313383949703243834888051939930391933461109669727739409752777352808732084828287524251083789540092601197342027557235976654255268374993174969832594345821544105849911230217553137027549288359585357916178624430199010007676746473455724558321809472606504848665308492607263294166466250692476822305330094130238667682094326180225551913497160131050317650383461733316795158198562943002927088779645550169176586347163113187771556616099789066948209240703203714453594588434867908484204791087340723020807853776132642216092361774104338085335696464393366673009061091748596886430285007121407291414057604256785674516595971387208077442234560267585859285658566937397468837087825477011441647109660201562921266969099447724944530567989044498670806514006503249721093658293195869950200581212481607977720103991282341494370115465621161494933897009338018617706439237404624394875882833721139514487732548764387524349214033356913418189480344396502555307463718980340322606921184628062001119183348541867269393456278020269542282086318801363824971129082075877471929431406800691019874673516089649750895182711500319052862855657710000142152309571671771179860963996735644391567026108333858206656788901904217666133085892507084399195373006056366598866045169645600025225453249468567505680008914354317348116923533558291069924217932216185132546391403238012408837226731459270864948538006939531749658411574953402955246684389511043227591995553615970059166791595363200376610294723222651165280249267055280975306697664327518155539783888914426516529552063115317095904247137864868270773143163195397431051188041186035994333421360462878823353877344915174355567748422207372011503294849254621232455021004222880384048511921038393572578088900762850314847507968795462441711095587554354741454699273310530217715699655296936363546924743299697497372828581088758190353562934477752835605471728331001786650533325242303283854854019755450697039515557108523357357365441806697152079280315437387566565357001107166075768551589406195461671031289780205861374772529689167587943693107062144637223445771220691631881782419305642222864289139654444754176140971609041306367620101905020307447083759224639562851988450945236675336087190013507302637719751637512721100903799966947001857952537963314018510582862343051311786111987463215624497421755763443225753199150477702119065710196816299200935560138990180789581275006046547722293301680116828135976379567940114782966415206128794300891478213956901897426057015919800331539526833270868793116037560078121294444988379798233372046119928614521168715879875189959889298497576793504282598713199532768920274948395328021836696959492570967893168693486934765725103991957396149901348810064699414173393645586251386945309991000239126496698871799402594078989785833295508131752314717891423557731212404109970524248088673960488850576568947496403422477862043849915513478606160266299917168204015859822105680973307720858739301707792580197828913629992872529565315683176903744074065958837661145612874160996454822135329389542560080479347358133441812632367623579242090356185994458225441074804698653567012760523267895019417580893235206759347298976243601003580851672099970512441746255343652673965003877085606469605465076743484797012989942804418049831763981361986935203675057498977679416885383109913447097940509012591541019102016179459705270278395701774357737074550116494001512360423330384487589184457495608143328642880060755614148140423074832500589292627104731764399469469027000242440602981237369110960294772934374765244986444619880669985929085446886553120268729946538172836189689867696708435651533590508719536566984782989447842813539562881843202802741004149231886421596767236669597432835738750192968991881331910329553818995515893005624496012446789448184066414901832443918477639610584920953951256219724978614197538604276618447239686498051599805405165580065880392508133220388185569885202833299556045512985090501954517742343242160575271804610839998929092207013103884894270516597890595968489572291779759843889667631579799801969072295381531704600374253907966205323667780875689125436146704007021930324834764552414788777218766016460406320239347827905103582340189609997839059554951548855595319860442395986555634136078616124041836360010866291062485829778256444062808384301416337232986634863739686714677758786483262783272519672003906244819621041824903478580712033409568080561513656907162438126222850969473214349808953040770805110836794155581048002904447100010763473437970087665265449226567953783256921702020257850959338222577431536684994604726742543062503755219138931192608883333185422942761167545228246764036575237376089329063504632435213114303854997751752809619652378068222717859045933680724505036616856803657958984295796060552329475968248743971205894110886813612906287932944060084849414922373039204896929549209804626382175633568380637918725508212795204427593208555777182663038019374503733307358413010272947827834108821824511988702406009564913388046002478590058192853241683013292876511561648704116209523423425544091222217444996638728837832210012062132550111296873145985017974936404272346979381473313399082032483238616948236836455919119961792934293704417213079140100812131921765678769880505620158540046153266646390728614355367166207217963532117889881920823065777454756150223477894605020578426322836579693441987942576881618401011517078543570329540781508081476095811441938808367450445750021121517668747145971553842860027731343875168836786990947077380189883016553381505049976298335475107984474152761198881406744035627094779486859160693447822726026436485255755325546466400569717257450291145336444894215028384282658236948357313362069766417640865875799056782082137167258984387639864195764451832414523010111275634163145630644105411323785366873680037172871915440388426920965851795477293060197621167667974495607030456310421660364528879092163437328650171235781618616887566684514104893410271029080805969610507401561945355510477516860747597634590270696215585557699661099249274998892533970088902110108727709617918708431067156946218479862157635227538105317782206834486608660060163693127487437025239212256798061378248238241323545044858526296504884094449322744803805913929880383737618133452079851589130029374569333669755431915378016891154196130627948042002592813305837170887190470520840974505083069287262379743305475831277436300151829519008821568608026975089364254380899673212507162650823348460063459999159139693555113226049606197168782298379165823815664351308320517362591437634586800714455763691204248240371208598990368138168527764467184598439194957290734881895243918382247971668271655027724678955018786450209618336733614517491013326496855744978849345337013658096541164842485591164899763493990511317247205921313475160460227765877206320714120861618441802618985751465861070414608290611983592075144014747658571632549969997451673672283570749675575016614963993057730827826917624961831291847642154630271988948578217047823028597713436704179717936931338051928826160071536509510126037735583344925509033092330013051250148745831584749792520295503054571588209787503866059289642618882493126187342301525120445850724132027462207295372072406261966811724873419962312106644454744091402574035990939974366534988389828118148978010476496301356536781885834569212798591690659650675120229398078529471149219102629947239151031369423614716804043646539109023462273553452971478428023682358424690616328604833503312063786754310352308401526029056272418719410794889588133066332805874639470804770422232597743136104693211389524525557724446346706638676476783052721541232503497969723608665172025505856279868127613125483405182973856308017144761200355276223040201726050814390150707336334818849530709960689077420718990042445519779501706237022269477361070276461203713591296762575272741755235224313091467950473131439599993070619302942199768442715347730000092765242732644225151061112982824644221305694638152767404677576266345494253522255404938345792469452022084604119016038099283568449581856447554735555376416794859085688884014417632819190497089109721441308025111726387920260207609904144819862650437805000340411591795685412637286683080681652500467798976092159373557010504017309783050004378113364603098485843811622901743302672241865575262150861244879166135515604584745887137172331856785346245410281681710932207966940026756133926320086659598026330250395079119415364422882633561828733949766862153220562893893673155372967180407002849127912358148103184581956543077740203002449186832449658860923314888058343704144256311833527839025307033833449173243014261578780728063590157387318705034222445237240929503235541314400146009585382509570132457160056724699590363956845337221662198662863562756005951199290961636499461538114105417746237025053362332023511929568870158190783159565696193578543665569386398773743994899199616003928240091074434759527318051506617956076625393241309510191534452066966555681059559392082349300804883258742632154696531795687270623459510295358738993912246919594962941517318337221567478739216488809265379892903946401694242175032324820193133658328361482730610929038645888980438123316752535718274399914256141452462181471784316346300986468243130923777506162526993491789336525619721561604184381574157452723523851271585319161601863655680579517129011730306879644994966484394867904367130779077181251006015509732266502821216595793666835352380757340124027873461597995525642383361242879652002295980533339622422593606779987806075422248280874834396873917360829369667398504945193324636606802604742537675675228052268554487143886837396853100857807244106384644272032658651932126744860082701453454122787741938404586602956589118357800554800398360086487701398447604117162923970543222474177738857646860238171065758913394075625293490234258539998880278235526176197162852199712232267726142145535665643245025785069911237159733605588092210657732949948428056871293586834666846304784899710419829387777115530036000529832509523546629844426492935289932352428036947276354854566502567091136703839120649996669522782065478701263150785131898733493703117931220166100047094854495412998634867305186938440857940973251632018087211571521161440396198668318730691176022021739009829947760424267654779010183360778356897752587009816643040277937799153545867984912663701079139548370911806346131240808534518089159868656146592097350248240905030081590767053341528170005159004211149523128144137522596187182645125562778006311612900361562637053993295793899171249875917732478688518987758043948116886213155186172919759844551546115925299888321210547873503126219083085719257314233919911046925821004822683538312510753464678908500041707922670419406717164553831508456225811572457167751078189525173168495163383645080127021715125887631278673477566524776313840211250336118095718258205748211834838481166981754254883336693771372085192630009342637022279622870188321562206841389532109872584888365177299243102799218628503624060020307542882610168638809999825004168670156118812672672553391022467479679451311334143607470714942172885996574813702330151313243445348669118779433778103428901349873384052343309728370055664178020502946483253711940531339658060151100900083317693412524203459744206594928912494720051530537849720267097291163991173844253982858952289526618367251621088981303352590676990578603003778480551243031075922954493721039552692854356125183397972980653181102140352015163339672076772739065962121427158359644609743448630791136314946238147510208262561130277715860447149052085935666321576191042780026903178704199625917198697998724044840184951485054434876461491165049226719417934969653417497605190024709869181996244801378049123665776229999596704372519918095473832231455244115457125301383902659729832805651322750950462047652511862956397710188108484629105993339635193453980999569609556459596673934311771425421904209942480009042293887022393764843921139908432789805692322640842528909483633600665468834645593967742250083328976599491586221497713571320693378277546077757811867527366270807667772599747848764998873213568365909460853809234748640809303443163194808032135391729703137979631016942453948128136338825864595664023435493912973997603062176038631046013762479695894573721466718001599204280106496584616001625310143449322427536265660898081245004583493864259244802336198286550141449133461359771197222373679312501317443922547934041196901720212252706260995814738877789124052597880681065709530013673978683436727307884950498812524117870637038524891332986086866801021796879533304120045220176509615498550711794281357225123640143247787370818220048420698746686793058274933228362449002998920908210013158031050293383458784586956875382214449642013565577128181617237953486079756830836108570076678928571197537711346702792837032973004571098449997440660725939681185326681034499213103356202548589803452179869537025947095183609248645502613860816458781368031363989566649576603747987631335237158899932341724633074963782432290487182409245726749384622095171357060313767641223892875344874266059141991395341760156117984317080879379333619900224707369688396295512158286935323914659485858445875779429935871863899545713595500822910858814778805072046715816888553185840514532897530859437323931559589876948509856676907951838810404633111803295511653575593859479905400360202727557290574329870331774443557699056654954583725662089004067386735053701102459511524368765602701930659355223809057608704804582654317209265071559945036063641797055342660610074840851512012601078415582433922224785166704373533197926003703012885199484050631081518369658975647285419973015957190882195715518768056743741222737292275993039957630993696858110742780681167971803497735423792975463831947701491320320305162967894271661025722901166091652794252427137481512422886722768285632251311062430235448463275447447811636376059087496720689274767585883311190254593230376450484333366369632020613586569924673833934408318893887667684711660755793179636068925469980178635780020292537849937500322759908868978626887898508021014395352497504820713241676942894656841273521708543615314522776028415638937097341753135355469328534674541366902110559265729100862550199707826999851932791414373292449828478575227218977657326573241739307101338057769531587458171232963084176636534155667434860096771833928093962169529453150806023012886765301212033164125933817905829669850941537813824295544807927576202704191667276551623483254858991616656892601868715063399826019115994195585229236555899672013206228901739542675086336117765120668392658728745524172011794888294210184808123498580110425721014253540145138172836038990863430037107210932662487380062909737830235244965774493498714657962831093056780383299501300832610277097795015160773361529484537319189925657223411071460618564359159999545759817930467139707551860782822093400726282463099924895324434981734358106318635922061342432677799176712839384463120411744661969287886032294378991849292798604862005407701436850042316772818003386367983845192055176249077523914678152629427722450506521517297009682188812700785616290543918298306747539052560296154016299361155708121914360309407017426799692583443659710292324397869262958161609236743887310308221808042702669746702136529730004609468498299085652386063980655197547785048477440010193888161672533404348091473397248284499049313677657391360930055131538715952677900185540056178597472054230640912046486049800406059533454436488566057381974080723214616303345603826227197804110882565049953552672770523045625296820198728375946713640282223272012616322662135212919121482376383827888130283465126651159026362186431056639016913343500590536472051072385544141221020246765935995440704611191916260076874297735958452002688735311130815963837443719967391147871275110847393533773538070743455831574200340660978727468165752930797321957687166413571329543504927381008037202696643838173675157561040151241350819962507260687506248551160765418706334900460014553500422826730337080888962237264158437215304345451793991407325999713629005353068091085086491189547055068210934265190922603427179882590728276135919708040651070393864947390393232217469723580471819058311561920119636850079178508166278676871762153205210563279460869823674272809441473722302781208462844266687845405774043769748259738681027060095616101035494602595525447691199267054153954612143132339346531733580536216603269168817574457057877928782010345047423219728310218527810749077808481054460369456076178623674468527923597754538335795863329492594480573565967140873873927484450388200489939279579281614810879765967724775965579773408416414492756064154937900043289784434358796845675380953097512976074143981084368976583020216475120075793277022004981703152541334495310580053362878223469130115797277522676592151701377561497413351586374214243060974027085446208396791548466986829991675561698927018697549141308728948671416213610247425807980842895817489290728542660345330755271557829792366749978021740820340496427866095298857401675539318308505432446503410965063561931748597054385827183259718986006109356736626618916295778929174124067803463606839841612967860842847250046856925849896609423438330469965384175286770242997042707297993398703906532691334062077044320575467836833519543131909823446240442548409536104334101279138471592650079299661286841590584677929235074256891741120712615717515059083802315418755449852846328473967224739925576833030209873578981380106627554071184765362258354477554958577675151551968542488367055252042870201661853419200500203795303443292617047706835602278409002557941471701551710761044405307750566603023029778696961509761417512067624989567873468801466953963253588816029474533407869967930766153305451392358466743511542458827038597031331827478516432484534027906046046396905451255699978666645362403665664821193918214802311750496837993074760965058467412230045642805583483147471245114070259917226696160184674304577971265131507029203811390187129950853043472886364884071180630667686946441540558677130250115890363216306851077864457043872498990778787156960201073943304652608802776110319065972682331037907447564391644566104140879532797460360193478449251967715882831278738559679214190960542665217033490591074788600003989687182657197125770328618526993466476768419948548904138251752301346144215657351763467633279917992950276685441311863964571752764744124452208112840717690356613239831878887329305925267285516537966874379713528068088419715594320853640646840933668708157020880717847816516900387304852092616612534335595686057455007171761402171886911633187908428636689183814975372855831625739278931980240201513602977587620966718650993958713351453372397151558257341073537207021027347239463442421196858094177711836501889932944259360574590582885389139700391277980362659670638030075675774897836073113004863885200516474535309977057642143192489673423939672649559418222201252160272931284026983345274933689033295323758378699143733167520494943567772461282025785201915720771168671411570726136575772817143793217955042244608035892636134505243140026687371859856575600102723534337449575940149258290227001057479069411512704993846567556162477736521059439426210295496730656137696823483009624009528854531310593495243565286968951876035637907478279936558786997057623046586085713014114644493435679094253864640008024330400082388219709593657704392855096091401125086867804863847088656498003427044605065697100940523870005344795304598004828506840004661740012713783471388993316160289231158454191631122153231845055854709030646251184527114593393065649794416177573037213094547776745126783737515714886611035253041658227402048574138402468458306064162641599353862405442766629795429993195719995408785015937737313341733942931859513858191893847600448053946146323915006655256973316882454847060448907760232017647280078313289553993219818284389387243836735306213679678628020013964968072090175367721840285294146587254820757399532824483424532772097838424156075855884720773861683460599107219298697270936954743762293089488849710098491487796486463645799777706734249274047418514188401622727180099442347444387319797706561494107466619086246930070838621880425441301477186356986078961567646395718315515008852119895453290213366075062654111392485512742102242641428446089475075038397852419540349642788994153920161524509708099477565688204734640548357712578665038446501163107957501727344928606119786291362399239647193529371126874719244771836858197404817842525357923922157038333455225415130178960753666581885559188796740884945227146033238603115210148549366127780404295596645411724255903863215666792048134007928815613314302499943857702234384015399736821165623659169514502422224368315212110476157965131717936643862781228378964222971244279713378157503122326117913443040849308441713127616386761752640854515003883061439563785596620885540647765318847852459848484781208645076956414196783389805891976663024250578591588365380839679518756163492804695310851317516981523906872751553105410137819584255881812602913875989741744925340448806247534510727172960451894615151785619482399487339412589488783997930841174043499092722543394316482702229544149674981452013522376827872785345819507345091647966046021599501908196546125334258704588374136181201176617235405804005780609019900935951219609860179412087062916230532505939335314781330963919253157814713154937676385799285189007886752044618727294230150961386152297752893844315665844523165164206861395502854463364225784920873502886233006752866838367711729679288468616184890954431079807949019364115103132791032768476605702470940844039820705282001138194133432792609527439023296328141916056469578154832027219329202237309359420666646374190704968701537427924674833888177005408964914298850942768714048282033482479195098150637292147304780923467907187603181820017012924290714012815367571979408640496339529530870833805394544586928256339971383563576231140477664919894842188251224110033845995292642142238849109129218559293326291213909002930532993247075955657872517006409978353530268199189176810134897514408802877297689607080383190070661092303115329424346686015084896764378890929312217632978345677576241742377215068618510660884830896670264299564247630882294259854674606861754504627194551023266493726792091140917281420877412677019144104649802032216134436927635580989659929748629132016829987361419654996077317731833618718700797892238580867698127199230676628131589365648992159083199170982978476824329007277817506113397670750942105331936249097402613146997924515754421711119701475778588408504906525987743591086388261078753516065870824057371305747902972085594747106899657687268497951736053812262681100467382182838172304416541508490314719337945129431547720474141842339438709680867462252142181068445488097143755656800204990734364558171616862947281919310329357047868114267083883399287835392649735625641343006394829482202514929571947722653915906978710401307944951697891480553786036886218325803087114660475793784148344155151801116126894852327201958280792603562902122457465950419827441619309026976547088996051301915678323673362374923418524643129770561976475194578519188485821582986526044720753684136506235772399176510513836067086413616102880080728507256942140880266357694627988523331964812264353772887931356227903010266285599350480101253481172649591541642455101641772779060213101204664288456959782173126185222617866174874850663982150766128484728665027824358687449759782870846633775036411694840243321124538863130248792458196690169976970470182806909074955828544542886511394905617290880872992506609764038690003055947406001405271532431033302150802575982180984871211933090994917595819189147648947413688006232968784445156989241234329912384647089242039616660000913960375774875990121214261143841969935868532402606894714777852309369366936657129396058790907176306408563168674163883695243776676210649527557988507923232106280375065580090181754611309516147382689517149322645365123989419358425171585663083933985114090598461171111595564697578740891525069631300873136153840031917202544474390403416088011265461690813900266404313816418691058360350871759030969795383251262016930886716723893639035009983094539718000914926702173590687620616958769630042050925657583458510792477533698714901135136684098008821574998994965024961965333706568147708423406644392157803599239987423620880969502913808625184006860290636302269513881840604564275697340633832960459199409467867406936361449536514071647588322040550143179138627692641966479766793543534822730907673968306022617827508535577296034940849542457285365587969555954588947563369155014282985681694882755457471799850145232090572684765025609953285954484046395967939175375810209673111961985857497067943619963116962919009581840091747057682083661111362459029180916450998754992951043117432002579596328853406129113826792221388293909851923065151075422869512811506801011164068934063396398610122798498181181305451578500118479461838160104001766757606708713939774962462902396486729664121545916686247292093876400993456587904526006389376754197585042183320746720579220798133544865318577272921234272208769063805701865447199807211718733031795002851723238225467226501511752020538269245354539796757538211194266981392722567789096694740922018512913022859681319569560670517901652459756701376439501681274283804252809316183390567554787425924790524968917914657338727954564487432644256127167253582861433543203897438224782286855732577083409912531929602713479070007707993806267983133129049695450613082782816162453199617393454388239175339246029308938458880645709884064925453822101970691850238817041194266470989717129482294930038957695227052748636596767669404583847149056974029852837195751671316197942477767402945066221819475143420121075588471931349833745037399880117042021798426272718698605741656516716219520421874978014400400560151039993786460400503811299883364602460135240675631413518887363740605105852844957129189458028969767417335735748231343249775470400340890876193197896151313918471755578330599063405205824747620990575466175057296297289927296122979120467647252146616998578876404741719089886570261104863508504881968332754203915635151229827642476706002392567906376033933885650868978293321827323801324979922941150885323831822245317572811944515948986817113154998540646864797159802006550311544333647812547846935682756858683298842118431946928526797792636608369020906463605775615452212455689276942085567629582828025022498509537924788757826976334883864026780507474574905501260670219333846020786038186233248807863208319903261417351619864253404975078499761697771173175564638627107823252815304362209669252586639137814969389062106213322807515639749956299947125033894735899805086953071669491714504603019076708340229261686069811019568943799382633283697642036405865522327889685508912706884663887033324802717610601651309372072465742825629168197546198633075922455961169941647863082157428395073272311029286177991913474695364117979862234636143278592223464950396959897581312271062816729295138667927297198026132412958241244844942824921200618686780871304041711546341549452013800985083876691962749134033502559802478508542603478640186799647161845313926084715948958934024663654675625790500697609070251749721331313062580601921415364507575361950532480644786938182318508468926351022787416319041382485480208414320341172449406129306358380363507577280537132830840131509531616176745927395913744276893149692415782477454009781282745290816146417919057676065028752398348962617010130843635489343274226372436947749952325397707912280482103516395224689372814414143060934856439810908302687129482860357143089289955275379485277502715489185313425803566720833147865388879717294154537310760933591001429263426785311758511968856721278481593024963758863765610584685460126203224256907948497125525943814295219162730140403681535635395358808144174328228394803493369361144027338984963481622191186834914541607870645578268501674422775500044600977963267809018405645974019229262082217219911054438782710516134495067433107393993784400549144702641872141643411548065673600498808866887021489086054938076666418314714430777262629440229193720342548039257815207821989906452617363203102612001292214963180519616476030863580082615826193965393551193251173716009212660316105450117757259080088433991642991522425482221007543210531145568107756314794122249301127823504994790805945055536749465187588208325368215960375617751377480831087637383707276690089873448311384514921951339197776317573424196555045842674354745540731033099550031421944983964135338132261909361291361360540508973270887330524205778557683284420414432314754712549440128818982317752621328768557378260680091164555848303091246377986052044924465923393207461751453704229932000757272448590792750171656775661739836479144225510411316164038733134117400236862718946009650486236475683075336974343073632477293678694534355444355790578001418989967837442926766943741012063760859392800474854974164568586782326302142675420862108574368542782064388936213921356332348292771119928069469635468119717905776407939104644314279322552315643927999611733324988313196534893378941185653459124939140299294592040883956416969309774219374007189980302276781517883310387064286057249981010363718755626532254178663286828577105958451811448126733031039465280903946053106674543487774837518968483645108834953002193067039266871227181820439113370025588041666869979268741759796017871529183033678190571991638233515569979538589441285351555669099354789932514025982206314114852423238540324192740265349000822624671758379113400355392409598964460990426919325945949184359264384830086373201993546148869091218135081625923930367206015751253620038008136289016469360441404757677483945377978712153786103203817741474536810282974494945284187407395997650037983942107945276495148697978747891420354064143840919663871770994880381215175856936152814317537138159860526864786422596464071417986949415994193135782115076192100027612939647023918637934127270844225861341391629384571752675026072012215747590329588431861506166786649953556945693221346622765953438878015760287041921095348543237631957601140127089213978381095293584947000529522398994739333630253934564729180276394174160840938474699219562614716313222350211930071414336551626602236188823725975678910765081023213391013016930247408009559050502555441871801860561983268787305922651144200400775342313028602295253842199442152427360499018919959430983438314317022748911115138816200757586678950879034320160570258130938707799388697105422494473483394730014643191551418113703250089462182980453282196367610384752401591010433301629312001194588112660082018608360765116633480684459262648924558980614270926347184916603663280104481083014260377386929561118462438635844215757743966209535117923994021446647335261647212914474067399048545292166034052096281360393505460308314092161005296658999416120531586359990517733181816647994071311357886742649345665944257509959165892661074828655036727778648040494080886884204295787927683723793586680166358000239321303208869954907326522149002691871263682837104524676519912197282749572844061105924131858876816153035817160361527003744757263609618235840950003510581065916141972470899546673526919863196683411802065451162963231420632015438189020828059775582688219807940058290671386507271639721783913786837473032332790062115696995475521175086177190223666524523012479954694377248516094060227938793151032952923170188263948320003669995210189242697414740806924327543022501184189692012486882321054031508923743775787443014043742008975771929192932002139742305118051436754667723448888046347710979574020534473127987645429531309779814279812633683123513015292765252403690876086097564224479512840594773787849459526261257905220632224000950278330436552574524770021850928424194307961689368328830745318937819314268217951316251534625463829726590931349175324133632058828890541942961915938527802933795108912372529123651933321006889744388396337828154591512140206857302654576854049050434111142383672540899251210878960348834856483519602007224759790096796878559863507876621586143508130150814970842171338486856868948559392727960706453847055399889003850934692166984789776937916943826876365496224214203679062280894542394844592368944475029718172267566979906569274032800144411066533176805254904927948661344983332569658343694104252997780949395397937307869810767638270512947642612600953725943073756656720053768417768687634916687004144333725230002334058863750813169399577604219656153449109873346484200280152130671666451173415881832523511423838899959940398278779073856990299657819814399265437186683356899125620305017336726881345893566193205216763087288617992352035475983874517495311720600359703684833801278194996359857241442204174588377396721727431839732753265065689988122136952520809305783091433833116231363367774863771703728182913604157318667126569123976096947874596173728794614628505575421729052069159964695986725598633035512257001733786577821199561451834438439819568194102865746761938942444460605384159519191500327188149508540124222511270293353410122041530465931938502219185427032057786859620569744476998614949348199911180302715796618657687124720343460032397056897951859856764866848530669212738852405423263098852410385740279272590122696484765578918913323326827666113883961423822803578089292045757529920093341431041709974778731096055068951275288439421482056014753383594789504745270611799511456460910243554487049976526932753588888911933548924821351463794700092063577341732910185094320188060781100274796082540260717902892409180010963172545746761682456739135077967490366927377003169316384978691456736395803110353484394504811442308885463735816430545847258330853918468563430560781524292449447773883897250127959129601635546599924579421536962312047652347048830420364978433110958615902305523459600310164796086134422228936598614302033886724914761652489052800879711260300525980096462187584267325133959098188841049095034720261314280054884513023666057093123408632978638860973196283731271399295727997467515376962962367981023283199880160849346027601021648073852486668824752352564090940583052239464618090883038641111070236300747270255151100307826578737647437458409727395448260325170029049290633922923428702290898821653473253722108699896161337463728720453450411601907703536145236869157824685589413509461701129752759479423986693509930202797981621939657906771014896931843721984561334838886030595884334014724345114352851311645575383314721082259190109638019489660826669352720155059732368901484210763343104504173364158143711474734040302233727674883535871372573536965630940043614578335363992277730918702598078418100244726928048718004377514764732887901863017322015149835085593340305597444561666755190069675712803779355226511553038464852746276908468706464589982563716512115838069816304561889459945300106096451630521223453609455213943284723293393655164967623609548325086704575908015226510697495555765786037173004873656723389826917956795310711392594260532044454383706060495902963080506061432335081699417443595302769980365925847087266641851295537214083259118285228520528146778422973023559333079834893906524503663463242738753795652413324102704647374000474111099924796131481873965900201813682231638892807048412999139876347667375417344664212046354922690890803317527907455925903736456661814084954636737322156553023503719741976569456232808895158309555440463884899521034696614855954748053190689325034019280062764160612091278426228239613563587079713238379333099829576753195232062827420011967622703601889529149589289605133650702275714574084261299650260000346983618329187870125103664376134410640037898511719258383871035518723971944891011031602622583100275917382716679154521499328849319345510500086286171505428868581919531421474422576928220381160409108275892181441131358369339059243641626850985194510877298963682239536707193764962761947876038079618436136317910250378417944344359527228706438912984632109440040542977114611947268069195306169582794235163064152715282387052281193360014672238203202977689089998739737209794817857551639957776939547286002210599934818469336571700793755989876292806513949365298307330675682261586906186970300791863380828715364714715669349958160994817285559075872536734579552121228561779859615113357867805941030443843339292373102229777010383522217074492387554618590719811702160711041621804559479624082571221665253879584511405706777935587508979184193163942667659652366036157212526067684769482281468224093528714010062414310309741724979824666969599955752763931258198632359222669500675586553135628257284435265151276383921376252003180896631409246713874277212438633407470655024177926101530564828452323449640625150666786789772027482814630930862133483671715953821931162491111447423842930508510377478894649158324592339280478265202092263405988601046807834732121869402021719963691288697766551090543804529149508481250317721653564032683990719675125098585378634407748060370648135775941862007240585490485072668497960638229082618107714836840967578119011156010511307002422519223607034782988856824392951458743836605361352900426194444975804137103159728599236701252442409945979968350041146007041789385576837542494234596772674136664915316877871206585724672101374093197561273667317106845195438054791052484589949469575178222618131862595858116450823523662118912210148963995438836219783475819986017681749128188904799315145719332610192126496220153972661603929823302682839154539696249788622190282567757591552990020861800237042127401244012770255076141908778736045725213760154297511116604597947734809371694625551578357428317585615355527777916111511650906743298623149914046548566400238475976915807645594745026009468729516321213481624945989663183048759231384974357193144421765410896864515145694259846982663763899043597339613506133822776157551231815019739320924855354926798159618913274157927498743285551745044942804079347621806325754483414683833495354133051030403580696570534527886621967106114028856508429670928223295645555516928291533272351448761474320893957518240908477895122041158931946996502227012465343947110278457249887190930923513790657983924608311588354920920500416905511887205150145974210037690351647372111742936410106383897122379497209512283130996733705089304245415707504938912743985505061543885121010895577853725491708924717913546152623751264688186325857867012912937449673142456522252056395620690847625629668515905024419810868738413965707595795233649880012826349427202944995063119394424937030209291367560673803080283175733771407343023538707822660144635988097701604813127249597911017147548968918442304017616565227935844908735684600130073286098685125462529335848778217802347685123009844468770142638804877920555226977582698675258907033944674503407253358278587673376444617616875452305949395075885603332181790848249077286670965370894334096478839601613959304980727033292506983829081221552579255790712025089280327536983593245449667111565033172656724646771325987531191523852297621937232989160051726250985727276511945588403099307569868118696040311278238096199345230082154590617992617907691856504810931703068463018214627729683282061162550515663748019588245989323795923329482168527940323054247099290208070821428209051686254994995750759995155245576816180044568679001133271457860310032266085315187270509115424452752790632721702386678838701825095041688469193531263245428407139479281430103081653031286562707891589741767616328902106780984407659583277849018911311836372185119968144613247682314675575109618644435461743915464505011223317593203342918609606300956427439124595161997537427493332884882639893101423769598495660131563262816193151505680178575831056791597676299014105334962700514141680364525325888345248394259295981888749631734644891099301733623262994263782225120540638661009442121413951736299916253772023491729360137588997167717049066032388709457322666337184341030933287866858512783506599914630254032169457341827930001058493219795660071866723978408669689705204224791786201848640803224436947893384879813007815713504044851359101550938505652303788038890203751916021956438490062332257660396982585259459759493219633718732125796309079339548688016879770317469954738378593341974220115633438269440929338989914693184249178956350989118651902900504838237498957166086148212186990786937212485445946974123354301739712266376331919418855410357055620921643542085146182081506370668257972936562971424951467028532288735597068639323974373375042932685852131496744039963452018596817995379161456190942076773360838827771785448650730776062314546160678263348638553174610950681206834379559067963918472287699460055565281406827348565940856379166007154790755516833550672543221423416504781086589389550478476498529398138066580058593559011048916882525092588388815286227062391493328741342038007561109311878248158976001003938899545844024439678372092772475166180771619177113934846477757651843650083815544150759411888865185830148876085542558778164012883944180861408349017525464175180759276088534033831153596283163319480118726962670658984302737331801458213650752138383743059180422549582089596171945009308844237387797529743261130546831859004767975863356763456957971851839588837225151677585958138430830509321396988372048502031722186801410688346689886039545863182531465115332166512170068032616059187493895340093804362028563583888865631173831887768680336233729065870171689932661325819710994711343342941777554502283465756311607069673548426811478555795483053486811400523691507683484610796457416194745553476124803651978108755704604869425297807918027535289946563314109708294029305060954481981723107391032753107727241563006846496413975979146591427269300090267199505335050163487502168576212898838661531008246610081784872529247136687574005648095142087057168793378980702894038370329485406065303201156184854960468508946403153983467866674956178545838477189236883208484535570815871206469772818807703713589560079618814392118883635488080279205421934027249514511132712875453821238644184473440978198428787532627893053048822069946028616988764859693553705786031269995555100724161712884198254600478563334843366544993144824837273795897085370770626205951152406723139424141221357614420977853741590422655949484778082075845733239089907666307853431617782847475322018327404276366248609950057830957367244180322081064222960974985150006686928763368314473882950378741952741171769197596817883999371474744253033798784681498187018664038741420924120921904314847851382395223572769931916249644960794615296252608803915259118556484700498656230027704246247597331562596917543451874785968438116796817921109154790810958459770504925953415159527859097041079478947325336702294347458987562027688455860008965555445752539761281455068940451264116256053736501668333373427281897077816218501771820874010666923507862430535850389376452561923482508982349634934247666857730085230332191253824185094649483169127304127436620001020488624187519195275176375409466245371713830690868640923700419974201840021269824018490127223557280713660540674486807857319616884301458011122390011772860420869645230519210318799438012421029377028491400536969698699148540762123219307976281822199069851178683479733560245233148632014922739811333431874391139543597990081507922931574025785384044329708602975583873417735763313543454440805088038724248906757201645550339687895190807569687453052251212284139834805580808976770203747141889047302188283011588111926011551905910079928070616388148569905269089503191790425225224384207984955785110928459206460132771041865638821673480099602060254893704680724598158998745123842366227193864282298339910772856365828055831196463521348832278995104658258414309725675257234798610983505488285491433324082523838462386314744737625749137452005325477186452688166764222125178923957209635271478864808060962311765503905390057931256447247650772823153394145367545995355405911340069462084139733683567705227938652143060065089091557399081523773164267448976428561227153122214195484744404338194477216508656748507673225549536135673834382920331031390359436577158376544300001200785050635765273707829995260521283266221919644323216372619090129655853357394089346054845220521635356884751711664918674205394626008374385000321165494383916137517998428585421687670060908200594791816398928223565210216403020230926733596366044433564887350774078980138841685751695788296205156206939840810104983830427695624199433234678276993903575434572072175460815032330273779572958615515883085356482776140054780320335260686765367457625958473419274014664128337139220556199935160212122369103255265725006705237133589891281006146148340254242940645389298256626903304871028698095791125559412460016922532943438005787595344201232605848288684504709571966363052026406303624163704565584535973460161748817782116235636654572755485502643034268225498768462099571717915617129265605359962007285583713395924377575177286562283733785495815686022333843881550076304646287262053864128563973851629003988148306153889821171677055599521426280020552149656840941899309309827672409539398523800827976569704036433434444705877955970590657494244691602211689173079303627636902485077689125979448936996864466541505946538174819074827935394339218734656657362710849761740197699718662394841089001657176842263169742424680606715398047057990157061463693114517984075216502166851133133800020159314540599041841882393367891895869296537591292110296809697082976220856523340323901110516648582685788787469374266514966206986247142406183473238637751852824566737818646673174676453513988395096181275041329753639671521481690080700442880128715356864580552011204808180927623404252087814650642379936626457349626738665986832159613806189393642102882169314815148821301591961352339174190623494676173112480623763309630164633021272655638201546730516653878835275217767524281337975193284677276081147016871720615629645051437437160424461036472801992445183596858033030202997900827481311237793081528972252336577225471888526687351389361103685343330080838671632739300370845123536067472800591615036691344063682123889222737362908900798065464130714457579487859453831115005319801518597038906522608331595800486888453108613009902476366759721526849819041649330528496194872168313993452376109168470562341739682273993418749846699923609844685895178083294781335300278948823891433446014649682968218320196937004057694183230044396523490848487650291569967104330934742353959678217636811018331636251025025690949068446659415767041193136269820599440263752601063630376537901250245311732567669352189382011869821186097103268863516278648820197926843516053952921622682929913013079552535613132181118440816883340934546603786942177657483211814293152904366436711883628733701617673903155017665499867256940965838722490534133148739841529290483405769346494465849865874578047225798410232202201522945084649983176445795967158682672173289968006996646370455165616290854488802059160235727985894660939745097947758096445565046582026144916177027763678825636334578168712838280147476720192378703319929164199480963475527732638271187262599707810959237735316052972127275917137682837992997455771492168564557496705013895312963143509818230231329350631576033142309690959444901615905116609473899054395540255218173104210488584271528226054466774252824811223198988804151250663866039224885340593989050246694202270863361295729310765145819090828690706759669552520752255047445995198450588555901391790663359582076870551346116681721392273200689994942009295488815994267802679576303626899419783743466438552411085104588461789365807287427448049090509611826244481177499953484280595904888252720975011282069138792808352448467823871402962623961299214967782491386034541640672359419607571648523363065117614740873570283246465841480713341885467090425832286787518332290308675696751821468998402111423641223325555881415435762845854281769688455504768359253837131656016840937631104519784473264040301923047370934932654932560640808643860923243834994466708858560744877954532594643294577635428156751129424473033172160702981748591832379914827019445172262864602997137956631955883882552216017893018177558177566150181035330109423459645964963791292093787653088737422451225415634837243229591669610883026152449913138853899825237940235125298772231927528644265276142541735615772026945271141658336569967361919252308660032942299453074765862236249149730277185001113444665689945492423895366682028469473839513616533302632336785642953907919051733732319848303178031027447071131149255319597967931764652486972929234965847301711149069539865109089183362337721166406784490595505504927593238832658840975676614343345438286466423273907705202812806766305914722674123193192376194041005418070929898072051627235913530070432626116256013677081484964439982041617899146525625037278838181945540554992861715428314332236780070555066361871847309574173947571380764039331226950428308255262297566905498180880532943026020461728512402979164961407634890194775559189754060731951003983193267786424187484715517370799791692564433415229599435322154894169850703675948739718499913274468248545776812983997454383171364303352599771723803422259705836019298508464795372944576196738965146664862462399916065531577065575358609008797232961223211535986662980303737088520102626742207128310075299580977426044071468653180080615676421625455720356380191682333724949890694508997005413557306768335170668218616066814656763731066191690767122555428431036865747290897801562291071388956180770787692633702933611797954378592144160938799756952887315327180956896298188012713080545106664882946325378680526107601709628274881107751582600677211162940709218052407826011172285364762038078604569938825920998834153204006850710083106956747386990385397793412315753689807598947921432800861171773676641194176862021770281624295274258466270943603330394089649778869290140215206409700747610699058192038660802928415158289154119832722857205148538076801012888857804342981196522500088632140190881795471000144010805620896486598006547111531245439556164453539712542298941059094543518194165841715305937664556568228085630390856975364072856992072231359450269530223577818891412624253459096475500776672575850998911256421767510155199184480695313171710477700517847739796562230718010413061263957125292745606123145213665724588922298266112734350212520792232235412951771614092745486646891573294522637223985027548331004563762358156398372562149861123113037038953044670268572483327406356393028538313262475236557407131129000977968023223499509878545675498010804048617364872237358135434116829076568447541167658387443116371293451679955169134119289928956377415865735077103472892061795281587006901358495276992763497578865760711125346312592249785652509743759331509263374837642113527584754323363706629305572417357205981176679455508656483087616950106311498151337034413052311354168420363356736241068109806264543366372747767746244825849565710444761249270179010308388058717650800957144953092537956196794862260239149178818483449018402212942746328147214343560174194946065804791220476127201958457469905074256543119159661402870032852921633712503551134936024172739803800286789456396469905094718272916486572942843559430460623388715473492932589535660813493023246254926750330654923689862807283324212190733426931133307817149274011371231523020466797574314075533854787003980622677232996692562597736654951060774291329018399438991872506584011111765706289644700502095825410310120701579163751757739190603510354089808164765705452618928819886829782978344922177789193943069203971031517949472857632555480058120474252488063143117253541818141923003551514595965785848009802964189040577785573953606362527656133801301735385715041034504161659528115189436540716576470071528607929262469765547490382096887675527999460603281234575184174776853199468144077803504591538224181862729807255256329567677252206656076851352260858396825790181366029917555613540539996119678525319799146803629655415261603257050131398477965305775498153046130806598332742121913354827436124425185707279487570620766214658961868550876535690040395030197974538644759167129850520131858150850158165225548757450087457745010847222257587474921841586906009838732390537125331822688743364094667491706435600295677516882051494776999666027979719540964374653284188368338661581426745028734065480199662642116585661535375812304850198708386658429013507252925636051544360199016654847402847716839648493281837561903195263708473978005625832002022127127522088999286275101916079769111784289251472796155682568968046240071176790173670164429335977317650953524274807875181848873847647223291906829300429036796179837330045249084680258831664366017869372929083379168711053117734751569466711076292532697535303649536884212363932273821472545122938143103564145506903381746449549485366322365457219539991750031912459296810269551410304035378526034331907378102692399023370625119408654616219823082540614575743541586724727034501228035235429426118035046876992946539983183173995113843697054996321021959265471879372015699534225733575960863578073598226016229250635114101412515565686220681117985645791034704355417519077170023145968384067967761563756201114750207941649038049228607255849528992605992079876923976700133561364242596738423000614852488876215625152263988532970723399088734306076676088239773769913856973426966095095345963152514259669168986366028341400991599897441277356413099009372565412105301305141369957269017510955981367778272946817792914283019874624437420694490450544800766049463406348900772123667090111487544798411366978504534355868106940427198254839847206984180125059754517047736082705045503319820851438718213201719516291699349184278371843029826002203430893941574925025997851709262584743804969080857785301357406718156124640714133778266885169400650275960056904978820392750122688303785701484165699529773943612522015846285464969725934968981170269339933947617777339264676581223392963144529304250716628325142051839779241576610800450759568448852671452187359721979153811200733416021094783291247438945040671983834929035588018518229254930466141008630415893365667171746193055468585497619984412794828094855505870217158209568144413700898693342238075987600383481020945098565827507067303907230277669288421942124408727306855356967288080076699730026576941104230071565822535050917017405335554909731359356351722925089272759628999111926927301137825516049096680101630886594371829527769460517846389888049307622250831978680645090835214582569123604895041658768590887860953229722194013255983460369077123131341801264786210939199788141725071281592728699266638920445951049719231950252323039397220432975044846195867748287532593522654128129243370380057428151079805453521333453226622017845147236210393805439831357170584024728934593304120666721815034500099486693994692397932492356518859503181622302803819498822380895533854936539475524860867560849507277613688503627984568925637131007721933910479091632205528757260668424193278545785021858008972455361257232163811209829330709174241933686906115747482067992834501471516571420714554617429719150388645958887661982098517252941679177695344539755081609604142541954140738779364802647856943716445202555442631557867608240549714978903029157550789235561782169991694044817612300323757728680284776088612217196111047506751068347389256640643192007966717008223344295121119650366895147131356064125698823308823547087056721898629722771686832090006738231306442602176980570693334935147475251327297312700537601679286099923763268410217664544421140361571958689868129010077344188131103635011391495875774572367058502127780261642283045387919400249037048241460570891143894660190835510013597172509640385467949891381180014249865937528008884998166654907314756476388479770864226579905916074569115465639619918604522373964868865491484961548096066169550786416032219147039731726777840200579150416687042598970203189262687631425830606986823545548131771272786451458091725215650310002846591626263223660415362418415141394009633704006668218539690137899187142336512936748207263935783047191473096119762924047850777781683185542211483367434178535950813578681938600613947689144572570269303374770584770449186414229159359554418154155616322673545354308606909393974722615690163195806198265151709839952976899256206224067566219627503187711905719994637145147302944996840807940829915126864832147288850364890051241604696283463536878436783971637978226192753097880872625637928945829619713947059860362420273295702847464353831728950234528034810315551028639412450447480902293006375171652531414398868933809161552096261964485493432626640679288088220826129892096037575197508472590976591102148144133996243443879312412421442994976395766626213702264728105974131041478891146473293274502673428858104285973961502551875535690905580591438485730317304952223719404950949295035900463855018774520979988326216479630044239481813388953536466878360511813857124302740974188687368138635005640438035911532516281783768278331241472229195391620795872047959457696820455942614526817949429519435653222678660497706339061497207996687548078448035077158145873647753943087928977089451782499039819813121867301298837526991873994889411887609302659132772338287357322789101276484656638386448570869438070641688753264829150924589362577739847473661971741871714632448730806248783108576471248592338074365361111086487649750300630564854595828331716373586847499314154779383330751602134001081283964604655660629714847873313660254367810165328175438979079302752240004246540594360787717793830824284159657730072940949904139525491779510928609232979906717063801718429928581020521627048067446755907748095288010156530098410647850648035861934291655564245818216823912044723187165036233541439441707170455636444724956702813720167399463033994377052438658003672652580142759064051421639945591949103086898123471556034180250386857688028717455614906758660539862006792682961223417127810429741206790348235733821471178283685665780309994144741280168555729832923925633011687439724356690994882433459151839109329283196153576115810625966637501582630297593837014775083162630804238310985725003475290972253055033465974657575164188226338145253441734692838683325785098499434733791135645782956249274490792432289344561062968210482946115672928216753431429583234975273686190859339419268577311555107555214108110337028120867072326369687364262382537360556641017885052991583157057754488336105115675205586215082527682670232030333474335734565746556334586833567087438916541919035630906484501979847705608098461141647619283988421014117351724174773368690421550158110919812171327586198453917173670334090838805243158510594443609841911686125750896139876780606100418113125363274936235255229040752143676881303496192235479630270552409689345704055438994756469594858507667893248952248755084887623342108401863472680585957203996027661377022101341548202853153214737152361296912899218935871632363267959384865012000517230554548763294624374743269964546556746718679022015824859166477874939444161587473091380075446467937340528508987062025460233086006835034308985221322787180840516892625625403357907654092014177711336070269123086218640480771304652541384989613725384027047107734429610634622367749726526539745381554992872049326070881540801153547721143319301386393479816363968319992119425620521261425734848325792497483173192142218977440857576929297490575982906715015873845064778588342845397284061275523560826564521301426438726193285934932466494436674414809361910379723438189221216265222010617619227194313652334052391033886324799639899208233778097440701923823778396424331491475385653712804990529546952975697127080307926911706558675790157464223806497004731232693454449387747739444831543593440614134149540777558381043510129005129302972113637647683556305617418386720507542549442688946949955778237743421087138016050230957101771251378760711029253171316611834213023226755964482981988267113109257006147042635867941774557806550185419641806947997003865879397387034053151436345466326599596803583744208700187225649586689159808286902630173488743076077025842261997871891197706259374794709499295135627560944255322668715445560965077759144121858274565264258111497892608503005385093077793409569137296108363532183276306198238178612674954036882550540009578705969102894744268180279168660819143990215575343712061947955002964055385388216608115742316514442305849371336019747770515914951709127462062692575644243770277846927525426610465868304392779851135188099638889065499840732297954225501512829418200005915111850890461245395770084809411225424526140411162151640552931354099673701661754043374375410785799349226257957049603118311905842248501277035935647876140173997432818336712028865852944454365653815744998150018400954580925297749303743186850284131206389195567123970175023240948174517135309595463671140483686685451463999324878843474226067763552071582685828194444019900130063173008413934976440511334038375670268662634423647566237013541511711047782304464588295240740035824161162182598857204924665726191479754249610231303610631206682605913411841377234784242540190821148476012091388532130948038754491724475464810600793154077270807461156703276908729718214065078916738624155670847192180875302174345510213270563103187089022263542777225083012899658230092732206852726906926103681418053781053699722780377164777040668296120317077090765001384433143275970670935517748184311430880645316835680489917414968019949465306136146017253727610742551221038085731630006024476925767706237602936626074732428457954086694582399445907694565784823777832425894223684034178762747309762575610426766339009443259076554790836337749052297630210442810291408216827961897903076990360037129902461888898120555589298020395003611898103667199991158646138044724999235837502555905038407449530381230885758635648881070505573957705326332578154898636513355133088512214734472110981213525731629026290378858949895598508249981886565309603306595483417672453023200287455975182402455441580375351121385836655569356472352857748468725932218867945930737165785655246312015323545791976771710959558777339665701786469720580800640733097905508101262659974692061454894144364800140009023365263507377333081444286090333595471253937505145643152618772733083190927445112486017879625323594371627591170975063669789496431215785309732626353751615525656049789125383576014417895772247179122422695886000247699550947343735880469644134619908537531939722771248120966395480203243280217607674387313828115904305721516944900141140455619113395686224585078611624316790057042406462047205114045848678762545941859360875910367767106230556935121825011942218012565909977864298396447440768494622027052387125543528618383119888454915361855073691526508515822191070308840805881568120220959124251996356777144247403687776374135677545784426388027767373563749322293448671013833434655188615415634808724478197177235832922279392912483999052092245643190822750913459505905453084208202704409612763444866292265841622344387688975610772150157674845401777011914802632672710116545815152298625891075196125375471274005179271761750380610263003081446836793454834244617988697596766247615559065130615929103785759130713522827579193850844790155382092445262287615735279298474504360275249529863949574401919599944837162044423272297500469271286575451924610933201911724799429408531605579134778318187789145682897192246836890670302866211907888424934616897939062181907213385697460279331002268559862542092101808871472290917346019245918258483075696582332791221992816524711336185260691469809806156185233516292765850188535598438358033896503895385593220629499184677703450142797456997113658457547281820157830318095803403128225877135950827692215663968287665478882664541174405019462947593626089482008118057389243688546940169324070767625374183574142176115279742068560658273747921803676501277123775033227128148837301758611352849881918926077060198514485425034021223690706714423580105758936014720583760113990186362123467264316519304747876946671976446580309765712935063892275695336400691990348659022311338313790245351495482571417309617973609160671453963239825797674342228342124202006579434359019401583274501159959823169966719454296765216358150112037092148680966744214695136539178342680039824111694302816044065374219452890901480074160456472128820856707827188715606978590632199067928517969110007373317494849258121419055902172551965360323902379409197985803982080572767392279814025084947036948242275865781738428804826420054052111737969883701310800360164839275348984782830725026965487744914444064679245249285697346707950253026001450551291717127834978492367539165884546006584558177644232976262683116296058790799363700844460558287008091812803648471200235881684717299149400651588885377591103619787259780244294271829116100099283443227074106625137176955659675449034391930094183282648405985155984899947015958879702829345027332709808124268616716956005206277791905498601506455760137624482677286866270487073316915827741725535413647741818652186089108112459039871221097589622166182800984206928106996461779388676089304748634512265613568705034078090234101625252338695665596783906790936303353867901816635892014516207076385655528984385775864651196856623755363654825460251581639076308782735847841451782019979892041668606327242009150128987765250303735346281075047440791532705367491673417156646591544888860421452154714988658208042900289465367313565649939773839140822589024781525608400640605650376538442324325505691473605302934864852718294844843566401346520574138972288843587100045385659892133480668755525725297372207034772561169343652612959392472427376794928464041078816758157782181312876556400228119507126893849262802717096017683896008008030369209389865189212306783653362799075311376214018668714697636580512639684565735990287237452329087497739504571801121254836645262996835064064690720941592642637270853797799845119393978188995645954553932337400007593277462077152694308413132479334778379328468203008077285317869762913376564587797881798470990177213495642196771683671202718684178727059798407014162251287407124456308315807328522264098503725848548224129837855763078041418233721462891354887123385226004435813385350209601415511485578555659079224172720688339235190768819192654246994658771633995475031053542510703037385400928830038532964006030736760022672439311523278803295449829547624990026737720625938646383209889980103518411036078946792281028326116880820275473874540901194970192625195043462418085958059525799068688875118066436005543757002812119767120873120094281915947996294557491242103383748903562073007752377848925854969841590236421558735289841227480085495163747010693899346938345275043266093993954627840482728420650760085696416848333682654788051438614326695684426086328088235994952923402742036363048125097511901585407496466755264314652733523200962378123431076454818517518976764594257147591934183726352964335735381823858317612181512633667816365756306349396352001224240470737545243237450473398577339230392526083051564285245645422137095141047640115816383766699840863800978980256547446678081997115655906744718589595794487688230535367516877347224622051806508737372808598407515669515443769313632714414214714975464571875830911330749838277866056597772007081560352650291200328132096951654720886089297309464984504580802591975302012993675551514255550933670860105789761480876384100103573567871952088595007038534157015493101445489062793779164710231281363082123009743660388757712785616557894662320334739526439236922411644458718924838218700469050890636517530138987793655505826696188495686839247647168795930865323334540732829791516950360982859496022188806075402056516435169732494436602887536114536914311650443667060656877365133065037667983277822734107107003476878312564950193252179028498616585680217516031999102375755572129940170055538378069592005132294022567805720424804255694673210312206089385348619734143546570262843567527421090749436299634729199130096488459973475559680607923803201360016442054676485628040682353398497816089869854584251884503799488542812667298938368834905807346203674820531073791043761138268834415935058844095050952309594857549389427982307760162320137120106455076149517248642051009229211099211969787400791408975485995855921063812389467925860664170726461933361878893449512678705965346065279153896685361553477498418782470421138738761758612342190540232212711031157792070064760848689149823497243158725112384887327782921268641733847074798628869896633696110598483284027136773033768822626817832871432495976960025190184357140856712929883908302224978435863825913511816438861421289936553589319731803229692860160259417336077529440392608321772405982696603800136850977894104326343302537628856916365765259212807602434852686333215080466658784514616279780758351424232207216391757539999342273979928347744230976093239904807620580036280334727964511114423997507369021744276346067704481518187321000346893330581007259059395215582889323905559753719335476474896083021740286830392592396104990467965055132482142025734220064591206169884813504280060974420611462714335059166364382964957487980640295855012632285012182636394577606624252158021925781959101111892202578091587067982792277830314116002365528033211773687802520585245715260656019323201404123020081660608623506755821675544577322139361146775878553464606065703677429655802773078892304562229675486363699895646412779792012497472965769713820723572192713631443028339273160242087417139674224774776135383705136828204855748022153742571842704976394891148707069233089423012117772415041861864993681500648478870373625591732996847376916952730768114827690419649939821846046848009244331132808657929719089665376682624894204841780592121090001440026668543630232226424878997102963961672280314028492155308385606400230927685612150662316064786610550413531484689159013075361782242221122563359802520695523401477941361389908657807320530067701301462344119769582507920878312931803592660249091244626604665516753983238083243876426748022548639404586540815518641906434000958594631939012399091451058395689701543609024298560995548555565251973761859388503108409312630102323763437395659657738721386243974719931295229061420583278125976949429087748925190535544309600724925177413140565613028080986912136051301548574633814240501894307129371411798164929725553657948533981221237896901704179860587889013713285538587446876497448476509182283237008636727452861716363090139550967378034868992966128820874778720232727465744289094016153284150354620580687806497876321721051905631327108589740230546822042848532255598495468025701039500014763896625441939340504755942453275662677466391094518429370570870318957650115600767349798534088924494029186116354841221519586212680719727392376283994552370020463340480474715465597894868315118381453989380821247674514168212219607062363652077048217459672797630828991766955848068498485583813865178281061138572970390659456442493771097278720746948728666756686371694169387690358303558925630280296587776458674178355424740403566367907243169231681428013044460487375490936767222021575505426746575147358709316517143837960393027215780461297087909700705285033155763783567797023345623603884511474905960128050611125039145297172356300792021402511467815617719127265754961596527172478184359960761443655451117641909560834672194637030165843348065417519286100526629094909137689586507083342570672591141141178566909086129148471006720643513704806353106697313687767459669155560153238967061091379971118544472162115775835350735730636965278034585444685147283398425703024895124184455773591784697902517215409194939173298940504525343647082343116881558488150633850395349695766038037687107246933489856465467681488378386348797949573985119514453947657258295582368561724840082894889123134214770655555681995093112430851400408624533242876753725501051842615180422822718688815934243806400326542313644826029278193048837318078638066924634709822476756124135949813337126068667452283269495203108458496063555040182121156322161490931203389835558212458826620970092081688803459788255719562849332341025009553313666517974466643131641590162973696181309208046579900990910504901374124100476879181071837280790178189988004040982773304723685025380527358040017126027018372857326126344983178251866017102044036988707630345901933946693660342877561382704303636166203689498305286309492504891165219589474539875892040940092302910859666994013108350917202294393339611249379093169639317222056701041900335377891287500945797523851801500566011886740631970097992790863868812482651922847452467784208828017895364381175791408622973646789694916639709602388505907852025704297477027390791412734289807239297830939194990701451535516121452723099715952424174774008763547514322577952970285271025531860789310640919338691988627687402998952155836847223729998161840191206031133185350121304409983146353631043057637364618929014419677015695382704644516953590652397036753634337772524430209240351522719296963348258386810773787912681590416628859832307957439033011513905778222509958030959828725472129971677549207608604334842504419755970134777614658357275132097267640021410060292419367492599079966883425241868473264606649736434150992803361366361384222418147446219269034844631644662656811765708853565519017573618902949940152479499014663431216946641018910444619956997353574218116495902103067728545271485275106868515107157949190873465901020904443456373296972049068928932046978342041983806163493555130759157823921656595727354356889603591794418412394404253709990264765189220115916907215954888797700994581451227120012233768189446085049609526208464992024719765269406450791798972803309363708694317936520232981097980638198073294593782868272393446435406102681790332494452949754002063390853264032042372862574769960671236607870836540952327687549323977228427106665120471572110448926001567667311823969927931261006558828949147631681915856047756306976913730228972683676201367814231530001072992955123462127567912541166305591404613010140366542015775851481492402920610979134900261121428726995834553145274103542704319050287895978938025982096549581525019054875420390250572035691618580025085447133212918737364311009954163084508934323673152278308791818010661103973382133449132350481318485530451135936522191072085779606756252333060438003199833772353988673420026660639040738453349608798208200779215761380155306133440735552807711425776066250769437075955337391678736279701282903576415910275916120394478742944007061857055303362682177407552444458948378008507625939879567546925011310603143702509403402558430402888523163759279953011676540067234441224078592505386388346314966216100320051412183705681537470174768087838163612187364510362101266771508712906604074634566047831988728531771194022249374951672966577805011167577438546694760769675228422161377613479444829624776789749483086697567837085014075057719384341556876464052955712989360312636470120604775947796620758828961591171690106138992665435641514558607794842226283695798663316572074328111326338532523935712573342861393410758468983836705089232439970100208634591425640925421036293235320026713267388164690018586575784444273495498569725028454883086381923851927362566829606399412881922619037913773858804505864736905053146348755147371560878011836711568170508141855598918051132661385728819981732737522439170273092582069009510448391624432705573960874285874632712783056353533965670129689441874848853823063840442191376479767449082840373567348643257867012734769611790831483384852550840833833300909524502296416040753937865259809523135700927523355197679026470993272552687741972359415573813086242779777957366067824898916609964140566477930146354299178764826935922321905824152894654627170344363989416704217111494993668363719988325285818035385365834273470909170116315221675790318730368346862170429348663911916530924206453120778719842195862576688105743784306432769207361348516922006921965473454991662027356960442939974546202754689213493404954157258793138675488334678877911146273495434393385674275394480772524432497896857692058627878691647569510601512906759300299041721904544594154531677716232345474786741481092666751011529863525631196320579531121238047190010817090837294935645528889415598668820810553349938708926968439955341458411557995268228311125651659314044884949713943683459513619939871606869592490717279490164945305399325511383636590897253784146652864391299941093156779099698747767055105144372997423883958919366370791460962238917022731614872540996932235149756864888347821929293508289269189596598968551177264213856487362728460789525967790095039223009710292012159618817655913293338975754452815539367738301438347906221359878620034456292746243591587600179996612012467409866907122169790310630647166860658049719828873437743152876429046168633520141341150132510645976966932796981522900258067594157913295127038412704279145943305705181221416333499714006408036584138485429411919344807088610484106179131626502403542507792710540902190045654222701366261697656899704929998748973841485681228340659157035882495979223618204615272562464886056684460844029822918415479923738127884567236910359882548742267666215155084018232626868806886846421277664215973083617373102426027288033993496135448820760962768323472098439649354974492281049934514553397637067247639369173873317739299726428036784338094915346891692395753398713623506442897733271157828545596716158133320301776986394033731728932649135054832919139442878257652376754306433279414076867372147254604035706606103816856918343495476867377037566660768819255990192200898271582759101115001844341881780850250915077743416041021700379559630304514526372649708504402262404316137802953590869924478993665478947739546926484497858047069698976473113116907654343686189908824688472954919679920821761616557118012332718378424747719679754727460409891782103437565922580728370311301143872368649715620431767756755704674398498509387566539574613718983404047776630989459706468818913909238746496124279941047430783632536041956822908274779248461253100046498388640577643455998350867883359248379138272359985245349209295767981994354712289325387637019182740182526315089333509849338326213276373944500374082088184936547580997064917892494398240590620150934553630099287996449938267755444514867548053580725424066282850602671305167223510504951008982663825585051417499494442988467484454763155082009196270742436684746492402483768101135660558730321393098207562521345083977895550919011345506487089672034029985646466589659462786036701994822056131513565624179309545807514937751307356695737693520138737592453675673649182582334514665776766703243202967643603834375408366227386298815921079648398783273423274869839106641813540788041977737449751967332645290894672819077165865360286296902443145394047263319324902903364459951505028870181229065373779239039107149268514084321418772409949942823909944553016191456361033080199336323709333645887269210636359517272856968736625806564301873425666598904838292768110499109528417454559749714975670194964506816911085020917042998445704469060173971189804600083026095183656371953107510292426617186004967771201504410187527999609834600202428833349753894399186247062129962654326566328382236758393858877737224247913301419873689485595598170537667113989285445334293492641254807457602403669161700906069110945014389703388752700046083215449211098595925990345329371984909712220254160572721685293037682863798784432277718728849605313866167406357123065964097562255779951738484004205425362317688493535075363421436834790629808916768749036098795423967769043438154059514698113478505511458311341277333258491052461291991361508799783590905008648849492661505894884982532629514315614802255515378398759782797054164421865860269453629015732290731738902056960667825262080202226737574654805075159711582346319225137442582346630126444362794340711834890469060939839586088698198731214613836179695364296560724782269121755835012715783568537372215697530815619255037829366593646081140234515917696216366065259267061383609752278221911921631449878998543905405300554133461103823894013766901619923102801541031290954912954068739013464816610602892331539302246956900444006509815143053776573655051194920079630255740151163746941332647654425445454278780122336258516932820845170414566888694722688343147397776360842003555424590652889020575538561399680935916757250268326477637384866883947566140437234734787200250192522205232064092302608078392074878487755512175989999783661470486510781209157280730410370189835765928264976461363476214395549345152923497307289594980050438515980015612282486862212351749191814155194508983629690712980021535367226696935108053696171568600467245391061176703032547894482328633227059372808460588709643171990446850127854724553636239287621391064310304135611600506612248911893870715096744172637255061052461680146376870989591715347329303292965494114544378119430956613081293360363959701758438430899889126424307524367192161748645073483012418939117831313571648827567087446891689439862582772384474813287917546519703578726902712434581492501075705991971935718863955915780238712793420173059129969017172592315350156536820038064784428936589492992138012899452893588665613347280688568013002811845027523022504053612761753754032453273718219303129403467904266437678939228742118410767953999506658656105087054848676878847265077496728061632514768778469766893350120843377163003937006937745345017414574215408487743614332583042379282756522069980086229339221219021868941034350811184521675467398193284490207005864976494661709071102978639648149108375066403483898323033350699462058883761160057572038894694948767292320419569821557044626285806108550893750405930011284781549398912470291823420761619340336921758942182638663962392636848819685213305720097035025332306122788450178271673066770760630839032715732625797755119637871213231029764848844649981016735751421035539134433115415603400034241781824391997539379772006687141928896816144397641012389591394598228216653845869681869590187702898604311818856889215652398216783592808764314314344758022977644641725876412931806161770707716090634104677097916014803994163944594117706000195886933832737051865191255422372102095126432684864044566300180196550436341415854366712413838293443289599200567956809894054033752081007956622676371551603023666057862215010093760435924710145156340331969413603487721842776441346203447519376228920444762492057954704264868353539565369638141784090414809766659250543985975663140741039133192403088094732161899131786688726371372845226957875451109679580436652183589069468522327951131818059183085471405642708059550586635197805970595514143036532523891668036799544616434654445433200145633231964678420868322813415716258014641497752108397755362739326315200995436452757117252236330493673481195389665386391323225560287039028620115051555061178450087038751905754266256534746677704400862911580660853416347700339985921458154406982399389730780323991715327054348295289370146958158331635052190809475593728676353149092605291911844502008996055143310262986623123663704141548398205240951637264366417130147554227427479162895973283656704083979917071341139800138084908212716031081882218867811754404447371088472272136919430389224885161137758006856042961064166667465549970348247245391392907377976304471871627279242507647452383072248836663015346126978921583812433898539784764196471829729892738024233295859134780572059249405932660147854478462411875419586056914622175720118739859240248108881407553715738250832563688997346648947388910567355551302776482517030243106639223616185244078034729920423415717521198399114876283913090073353612281356282568810834788638388601032087261262216690406475331368257508079021788220657620701476014054769193557146515214293567682332090501588937962239341559041154895150714817647524301061929781871868857365723949626301501329454358566973435240602180032510944813352316763597345659301320174879519522571356409270625377564389799784674216351618599075247478867267535856780494050342635977006599891277559518748758803782054428755410448211119066219093650098436749162274999513043202027069624013778745699870179394064100997904501744363475271864787209555420460234161386474781347242351346113741133109752386456007897476483565720092110340036692393878034101906746206686903606564570343640283727084202638155512819394525794659510566055094481566267262128516699843732435142674087959817343709366388771149570801139665527481144237304714531728796861738519104925407896722735668392170622504735514350267583820599274341462164633250057163458123863039966234386942643416869096068787268154741295359312150415354718010068005122956959818749553647063527377573105061807082714276590654370919766232473569801213662915020434570366396870234590880292669762886764318624990290476035543932703694229588642046573985987009079164187353855745880037667806010291929505324630214277218481499150415675879288055082404706421920796472676293429548956814398466819670802698653570060489726718436016198189188072948493857083546253466997043588817903086636045892753383364712951302169395260670773320342411733994259937494036970207045612343551976180022198902308956330375850306547499352360118977000001203565827064811769240994349514341533684770008399558931207886653319178739016834539644819040031650100793637476808634648164614098508149504085734271989801256614437061522747539740713602150086241974807630270972698430846463380163734327096529248051488517885547707155789343887030313993990372719915885474822535616621069614290320321003783421777875826538615755907226332431264303007895753406883141560937581501514405778724270440356803098903732891616354256091922925362305391449675893802222858733897144601463479900097364972243258648221033650788970007043633990299803582647297661488041632477620063449207582987988120020807270725915942324371676557284236722729305161611947364377617338288304235133874939338091053699966896834731625685530171629083728550781407099506977676343844280616762926307922479215580393222530256136462205486316378676607203704898791211079273453367086604995911104111163918346722168486138996452023669968952075316543632767668165281896629771579487470739737482399916420831072686606074568757612340165047118318395157515345131327010985812416559248955988008276143750371781267293963265147747712030937000686454668803031485971341810558982642232361396958908365306308846380535604153309552940472391497879049854673109712529854245524683337433394628414775335691914609744118539032069377168944881446974860154300963616480567923170392191548967706559374020747244155708975768062771925988323311231646243944496368928333818260753692535438041554583636431522533238067332240788365656009962689536169784238847806586962010878347444414060739800577708128990236752237236628198085063342071173227407417003636656529173782609997134571209440044982728725145322768890959549987750539335133161684198005794633927771997635962173976041330846278051960394259675169131310702083115787541863937133906045706092091198838428432028054692530424241610450142954610485476301653632138269401000093557242893621468254546771337556323755088587512366158036586223379095531633357900737465734641012791057566084820323055316906033585343970118552149406369084908075830744615349075705462607158164389746375335100492408352085002602016408274234524510016957109000436362053950613309055413036027281552731527870326473509866426175902913275233794811472516314015554871664567927372400879031805603363895440032835509296113012322215994093843875675103716329383885650016495112742488738482215401175385236314491335207783179210588251454991713290751352423854460221498541943185994147040046361229299278846164954000851833408168019969713522990337781368271542921627756512852474201652665607946317694468728060454586628023157803441640174340865753517108898612674832457494023856200435218243635201813576092664313647686477178459504110505791009036506135069444589029279235151835369608038622618178463684339175244018052257155650883523326173772696524620825511890192463161388427725888919001391927316537197362808352030051800497223233472420709502462906980441732585578544944223541979722727705927656290748409245573279711751388188343058862198958554474492412828062238916077667733904458222583784620175368869315028729048873760855965147492486586178874960403738064396888558462328410448551069686083090269643323610769708950689075058720992878018156031525116662247462993244806428680902090770739182738447749855347542506710563070186364804911502315423208671658914198225399620065087560950108307849221652878877293707784011021358380957846050863810100652212462573937160052783646659283395986818883068531524876141643766821099205810622988877135994581669312959073804045758376684857189570289836936985153548249135815678709258569862679413099149635468344773456872964415798194991769277531333793377795921735568701073114193133104567230897179260138668337132820317586236777310100656753409744524742300654647553170791885661144943038854191488612673458549082311200943108749264350856419405551582266231626713243536316049259061447621719487841196132978246258477778881722353963031251709514495918815278103453922184975703886883938139664794956947792184708622250286607960861599092504538374479785832363583438762402593936248523921310794674380621183497343158094834228162452786383408891005450086897029372112301474199324881800574778303704479636449529779098859507036071275371304023204906919138350609617475620490993560989113524653203093956394111885020393815544312483776621713879119421932927812912894963708328479571490424702890282258790401689094214067037113999658921122284671796569342797812564727602447483692144828062799902008215123466253486782058666637531277852469429434388075512946454551732139603962038596034690613197227544232182909311014113803567423159660926213837770376198984564666955425030545324106192794459564562024034108855411999445444802136632971613358037563344753259329249194526409442958637258270186479281074421402568413652606063726828046470141508738043258174288103684302569781344705450567044432973064210682238024036539871613554067559524306288372655744903444392652150101823569620734443974461044931516943094581418960637813278730286083361639508648165411122468462530324870932101967057438459553358952894378100070792272537551711355135765432782710563024011179633719075660219054029551558306033254608931825008744215526560307282080010489126268580974954036701881694802417398545748929257364295596516934579969833278360243912663814676816519156019713287371509207677891151379958670540246884540192962044115947366745030582300480387820899891233462240697900550497524441075324472501338862284258163719196121602792439498998899515538216651318331198666337781172158806141271661728365022745605867826782368209206154466176865530212972598144212602067790432702392024983043310593083887511386254593290291470899839065745959370623654569127635796891747726530644353179207443845245340499068036249361031919654282032291877706855126655350043863941968150282268570004788381676964795021542247443422515030308835198795990937793952347172673634036930906542297008377101612652931352353645448581743408750909102923576860594246997904568796902767928605572797069728429418310290504809020047922844206133065830468903403404313259074670657115669195341522488378058864435200674385990670542638362724019282492564448074216327938947127631222195692917347011859558746826191265356539021251295823577203150736600928980013844712419807246454769599240651449025334479169264613621233178504451306274972894420211335931206366391121336276875836517232935104384242053949523136767319034324907834453713824739627515915410411288311663863608899380901776213304942181470513234281235412269775736535947043857151011457807817939463213870911755786330169690819216106326652897660999187967562045754240997518019190566338662052427167720307987053800420302989845889735885286827265762999962602778158158633839575622825737668783334694171416938354123372971134352436299943735627241282216541427649676764442583508810491302231510198090113094232545867227591941092665012314442151865246318592181671764410553431626443236816439872898566996583394987685643023559144221130479837443996298035606827753712894387751778666458363785844809356550877774803711861987925544941126878879446214414682120462980355542925061287965280208123154697332202581492485586699559501887867818334138932071453650038809235037570727522165788236685527886804845923149450850633013837585594502514526059540894203510377082192745958697923354360382793896333981753818091922472636454702735685408545378369925365255334312836590103847639686251150043112091671520833364399855321684194242781909076930644980607174189819695584998658697331850663910831652248962499616135016072221616303176703493710790276749922259754132238133486952051237272143557445949305008290101364708751297323052998669999193119856264032654913607342318810511471442363858727075515766067677963663619651636958137388237680239819940510872526741010216997104523497165757602473369297743337571853455359710297352461828161482990092964745696952642954349204687730969845855625190879587598706267781144010875521232017526267202523462577648716750424959874927493139490913688251232920390880520402072118665320498111945925549654275172251149154609893373383663527936611075077382024872083399132609639261381660861171230762720135886135195335888754019974674719353274270229881021174599151076038474928577997831292127455438586481071144837436642914406339092170546603623772011284939355181641869209157728601780564329725541890354938961264609482515711444124587788458623931639968328724299011156860608459999497549602670432347058288839019514803785803522290467729821551034794536334921753192758707004180144025905971810861143241660290132275682319482997052464314998834785878560865158718747136438259525286608155458644994500343475109336927214315049695689514304195378212759930042876068191214476815983053218188621664409229839654619296071752341656251014360518273807023472993165947676582774074973729421732288677321696174116515862962066651825137525117095282572162808362671916503956619667857775131787711571595584937051754318481056318565046880143208682904045896329398227551529043937592229450842455235975012638982713582540239792098076723711550435279566144607760743545554324442502138182302543264796993112312236746081001259278955890622009226900598653808458713411959381816186571349224399638335652116705394704055477491107107464341316218628076799682836262372331600305029375054024156553630694331388366959880602081615831258561393689847724898004255991504698962101951255681779724953550749840693691600922501071934991242682258216311158082480809492342536579659021714889100713409061019650238881032548208148734563174132541344680341011049008409566183122303510069164242660306978061482530294569610583306278109711816013037688034481478403269064872993976119528090348418312770120468107448287583428626791077600273505426875301284134231700531791213504534448425239814887629150563000704025711349404614578715184007897683038051866468575670439647288507455801215051508047292464136106178283760872007110705723717257816516765352545209392718512556477843873563628804718443062176858913062408935247300139623489056326585532099664808842253019986451422345353978338086522912028113560081952658983671876184362093957741044937274311958777825560841252116012287379322340830843237223617493013871289675015449285520240860554052812874747475137717016192277939345799741034530135252448068668923123507047334167510460357594680435306255470021189002494395910408123032831295148053506469479331118857938027450438011427755926885075240969243818504161977248439439614425216247537095664280049585769671033035764464276840598173796870767286323751178513108415213718654750145595655171877922208152467432349604714656749664549138524244402243746024217517005297842330477832685868111268628770532907931763086882530186162292301446411453925600682530440903577111756179009417544724628436803902471356057662257097054682763263696330530842269100990941352485318720282250905536437417555516756810623896937451409254578720516782744290025262780863631374635593534062608039991011438799214937041531733360235841775934276575044372511373007897550256135834831994917659345554413120383341247401528172223763466263109384663241847640363497068962995923479180258757519224846806100104014764604474241616405443766902576270585744903826922056063236709039881055561923155828489371348097110649945323480390175292172449121114471029990501926436058522806881402362574366374620271140319392815395124998848783452114009114432549808863108080593903077833832710160048177930959376912540282778457362820805169922769664232476021608716933641132213125635240919904687560823369897610105361737469277757058535398427612880724005235256988402391132367681226696412915302723402482081744903334596147476236652750236079392549064278537709471619281345627471132859141745590396622186214363632704481508861204020902342169674174957395404536169992796523996421733482008917188931704554748399544098992033593897442336676812507900751586694795431837569537975009919252053036544939143019043009576101184390975872756984801226016194730519460278560405204391065900059090297717211973387942555442236843481458163403034532499712349200818173591207142878934005359075830019929030286744874504102653712291621162919630679691709972088327570191114827055082906103866359042072776196460860297953239009806241304227577098960326377621989741861492782524135767207347895726796187168080464208710115275727375766631386840263217661215697800264704149545539365617809937389990992642673455372684342060712043188967997327780389281306982135654660535699443775414346187034378092746584667449937173632490038717614316656386284417477192876538039936378850105660304405350177313459141068263756971565730493306238915280932198711312351340159096013310872062606163215672431845204360120478650189858411064853752449852068763791096190584719381134701709213969920169737244253056646999246120063655387314893374973793277645011936988127015666805288634096516193091302799426478363426559563612420233103576586647093231953709734961200879631314162338625116573985007226154521663714421242217100592083002902819378499741260773963299972003494082321183207966995532309164662956991138321775059904676941895598608761876585990813831566101673772875325323869428715947803183861339458774552502238568624329495188850623282126893163897658619289871095160078472052180588586344483547966345170021840249288282810616784495587344334309045081067909661572192750719273057052220241792926520444583349829213552227603901499182209589357027662704596696692943600422942738727213679773924369260454702348222263053890964058150514215929423220502803801258895763150683556198984760117903960607625876755685711387488097197021911358426975929847364694774043293373505489222148967891811557467176727091038283446569157307836631852097446873394072755144498814261419127684293969858764826809999365709895393803283944290564968956693044375902283145670960488061211380482579623140556379053316565086067027130305758143044914545226812095281521795819684876683519214469329450002611368777776085975385764323717062868839990248182201995785682967327896344541162182018888470893125017080426791182941683048885921155669367748015303943218328636017384453242895824471912953360688837367663754660271060993390445847443624769393718260123645309636548106572659524320852876780299091862624401548604750567767380896682493621718532947126339917881487187066105539529022704726592702085982998481744447211142603103430168366817688135712396297605891644199930511723497208105742302818022539248125463471724363388989183053310246231753664867837405926244441515449737720831475035081457255323724754807219067719420286567649191212694024579880756930941199002123395265073296525798715677467440646952416688530881636925999455680227939337966221506685491576603744280393185890828787215781661159345431463035347711802639239730450448619761073716567003322910627744074772135310693469707926939147441324975328314924049603804943410159665233950956954782754136453221329428829600990749818903592180564595633203306198483925452548196460150051804825892327915786516005677032147809440040565250643408017770150295515025679411638872445304212041910099122755008267359905274343808327349919824490493858098626802026177048242917123842176177195498938198672986121098547089120049298434667164701889713197274128575801721248473007777027066267915922529502064560042896186375120449758301529373978369362929070528373921223293340473338905005622079292473332582434056361037597256760738178301191217003592374255535331623607488207924692850062347590692987418386498185961442504189872656528679522917769297913026366706543268185947433868004532858068182512693090256240982991696977544616545934140792496760227001567778494117657080675293502744833829472036609620383601081082331916273949975875212685651848409382096402758182055977351566265256240062152528183724658485649296724314523109243937214222883990456710656484809183344348129878141143769611365662263018968819990976765907304290265118080108047906365354102626845665087156255537586646266512870716914888186203666587813771722777229868704640443890969809644306174659458965910027817361969978845756819504786111633648418174675835094553178990705427040082269068871541935977371941087087578266180965472681641868395427443743953010433116915020117650920314271961708560563492348774685958709679652716556912414248481371750862233426311685752394961468499296266802471167392760019110245425444123046042803894528544975964118118417063630461332996643092054123485500995562491745900165766107022879124987264097698786361487502503737487698836838033305622998162180887415006156277682256587276172618656501290365034598118755545149103333673067933899507320162492156599644829368037853941659269760345161953065140157570002989709981170904499828962313303279301664737534321883855350169082168766464902517622331203555591869929541135737116197510190105596913781141107940413767141885521842620546726245004337924422409560240998388920402630777247671188260838992114614808661619531030557930339397241536835581703166808498551390813436700053390354744603144318663759004957961362633182259164981147908392213543026147899767156699366101570187558497695026338528550366061877747339939384208183407884235925258291594974423086073510832648080133084989547921494339629462445077247867361326340285969059759738107934487353241823641438454269122694238801107521638060885084084921090007519427804991835677982592727614447510533968306254194931602143690558634964139071957828514468903142390475984796821794282238516123688725267750380196970699285686589950100614790302837267114486507178446451732520478629545558096885326378771480392100657694387028060584533601842968580615273156274023249948997544208031240076465114563740541137132365745572225192196574065933091118353994808401534173661522765499359660411619690728332675917199418210688220837965305937593616806397164859940116453172159030468068381415079795766993849725942150015403754061704187542586135793050436096009324171972274877525529988321452047144028646220121090563879013713951184043116836429517798725729181894745393998406959772951966695166001064193317604432143952415782255505580746853019550588120049166997770737458654541591869918512359594898444384680336362408024417663039448064328202328876355647294886562992879926986018492210785632204103559890336574136283204863222523244612295425069671000631627930332088812211314543432126585578392354571199689708195276561839356130600735708592414693946375559216000953296167610403750936823860536681975797516832421578558726118901900913631956854971603535526879671063910826624313504911083284232638701764167823107975106517724953429805657876454622035495035294363665435437685370967345306064496914852970242108668621005158382506766134591235000694824956103921683942983356290766362689520225889607857317841886608446676505823489451239900287897306240404524920829656025713718545875996035098530673233002376451655247082213618751768710609518526881840052003072027025304925120586524375709263770599230172568427046981125074869514445651482340981961226661098417205427564579313391948112633366366126732256194368145440677164252102868126536399018937904933358353257863563352936967308807121805107872463293862888856950752886760092884395737372321258217263549337773991709207478041985250160466938169247632820065664766899137289006659155834058527020852814495606030666769024775239147909306428193253060553790962650727850096948886318284419422633503134671768200829134639591951638038536144137724554312560394005409817597949952433191722187274763645581696440128705039101358093826618350115332310518575576184825949010295562332832062850022139215190508650683849281561450636725548194923985179770339753179706505257394099632532202496412021043465904040708486635706369188870037339215788568278916208214253499301060802177844618753737761641848671257212271938818772530913872801474169934383734510482297025320216610068661470818830778811071089073494736993661168178733785803769224364473517808455799234532689262400984623199666634566676127559727339883458722743983076170109977945743758388272863428121122891094287507808846796325212952594607452948538985599138188486343739695632038246237316719835683160910496318931054782744219455606032480138439626430269237780937628430268146863789724062407917853352564080725772969067853481083765511060849052873243307264488097426910682339175543648945933414466601910802238554061422788713882321472933573660571673862959566227024345295812141833456003422924950768629913558399459259175823260320792599234347985805790504717500476148793887023624347436075901679189491350642611194455544660582023625749098989094569010836295215097248272504217908397330825994759493512751472869452261753529269643987956339555843877760922037813691377183832916387194149806152879482537229110822756997881820970560156607108128283152976292127786082507815846548823116511847518263112792888946745383344452001198022217877179745409235465092380169270210587533769454184035071695182591736218251975628743041246609969721320740637533842420474959555628481645703941533349001865614474328200828316585397308458774739559029858770800877121027407249143630737309117629381298351309503533348448230172162300103425027057822941854797043191297600775536684254226580425627334425208437154532775295022413120179567361173351485236542805912032088240600164511209617181866173043498046676874269354141503594043262753431012713361229842455492446955283552011491609582854822097005932588219342962922811253307592324484567903732876700801109273389486431827738032006973556878586670325966439072380103346219489984717497731462117703205307023396644077423327538059545180148521735456874372752096199629883729095378853474306522268366308119764466798532606274893160000042255852886312076413163981764798617745404660786146654776822744182099662103515463129292057653839585254296295112193369584445503489657950575518473996764772138049485078100522649336379636657598717892745774649553231235681625443885633793634694122904771987337816510116661821355298422359110987217543852349621697275071549842269412336941726207104480231671047273270539209961158061554531911318551387427097573539140694175384573228458988803744897178787197508298137182333727501166202344779955235335691009256856514511817723740509063061602803311709123741894382738416049715327027072669121870820950608415073718938821024446358973715997600406933618481448152484811650974996897217929612364164006261236503706770654252438879192936291668166263334764135324317506266315348438526286736442473833368341327023005595267925311406776436736442572293109496489973240156702522828711368481357737956080211595345838890692006914422813133073038724630503480846265966916724911283015982143813586355064040122839624933783725912135873519813950656481504124859043483167137367309967000404187911000145205174418039857183737417121844152232300278574271715468805619276142046177195200101150958661927082915441448677427771067735569767546829223628227259929013844641880838208699899593198291497910179055145233940548215332255414575035747973472475585503309463568025925404469652066718638172881835927890343321217978342771400835992011060862293525826541161343572833383375316022807864538399605902198876578919908285799061237425313307134689935924001307962596475385072725492281673212145603970592010054133389684545181285236197894042824251836591952840179596137046631634591730446335250978466804798400658555282125680130337857842871608488710705653990959386439533937659107665970595848894378878030580833034758963706005223192081971034377567221200667267836518733799286387942140287433878101379949960843709719906658145686099324773508587114482189187158885525695534834004670891128882070270989523284259910986561613634513222888851221304488759757899404993377525613213153737568925992658959526226587574322894532938125382914624831053291173878504714832111889906433332671521271392302157786887754754894369320236031945108766025309116487525160725052914894911490372501574384231765474473045392946912025694174487529666949375654380596372660640984477746256241389985717926109745293868859141785229834757217451811899195711631345877528128231051594857302154025590086996788354609134599289455814479428080934442457109323862525287189259215808079415569823627521087982346468226297687679202476786102959293652160711297591628377932306823338693967464773491479889753493858377720632732909953190898063964684160144446652810335528809907105945573906562330358645441591196636170600036314991721566703911131167333059325093415264142966358612454063348904489596399625067424814983733935357969295801946064800935086843968845099537702557462003319653750177282804450095552264905160829803554891904138036284594523319073795261267589477258943359636537860203124404497489669179102328627709139365073535901619990523916907805490956885901721656667149358134308840627609411818061551082586495931573753454485163782774580107435553950321419357559852241860686468558973197371809360151548898902233537663659464915858618511109924796865188082498909887546319636662584484326780351414270025967370989761061438198395229652504583611917889610580218839580619137811332255244927931222371879422698573567471852141668540451611878013723856818798446368817446576794069904605256088679491789026542690576085976847211704274974887081240415297998828652023258976994818535980367208106209236843919620330138275011468557721001651275976413157641237945145860260927062911645877871026182415332694563589917869350300190039988025190075537921346198724501710713106052643797435639476132784458367177226005936858518023257187792280110044919093512787005689079764927645150740424459974454339663902311581693717133081055647869926078514011298272356320623446489006944226885866226910479458087028808790204982904904881836623473644767600796372478383723936870569869600582171154466171915835032772558763356298801345046423230627746582323171301108392664556254434682360002807577421715728449327918351330879638625355076574224599915156141855308573388725601684545004050567616164905362419280945070321755648304814740568181700019002361306432999627098219046445877893397524340836391188798523294079907511338877437646501977342208999422186806463283647224795849272538454393903743252808027288160539770647654849503305125924769540906807212545014959586175872820675286508823066908308506192161438028633121885953949168736808117929030526830213192718492920069204817800447584202987131281042756391418888132811697132856841964509397191556012852870472094658032930370339227586614804026687970221309012253066478747374537841497231829604568785624534284026643068467144837000868176003948736422482630437383337540049511071366058569624299167900500360203270484169475428672244771553707986092301019579794585356599113025405992407105411727833018807999932894059916913350641747993533095238433687867482033684217228481230189365545493719757080898566244301234472652815159835981233132828938173583323180561243408485556291496795036470701727958262228251530330684291365297149863869476611636466667722043422705396528027811897815755370697000920966275402085028108619774855621857547531915097839573268183087069082208931739596176579424753352174564371210464172586820638421826056966729616344883384974134259348301405716620013855056935584605699436275804136963460995457909235868876472695065513862020371507465626997194167807040896127635350026042970935066417544700929343520670961139166873462334661927098750518531037430000470930490823865590377808806927183847909026110352097910040192621931515142796306913665169707595393532826717972981846027988010994760217060486223178843873505427187220867241752539471768532354675892312712243817541561627068185353799665762776220085188675312160063814223920002338095864963979192890671403566751055604994952670905056554855102434071084809203637067883594834271854378022225763544782821652869400799872932265119558694355821555875204843730366836098323728989372645165971696978613759116237340784159582788895814212983866090166214967832366307432004927071814027094891416291877161040751168451362341622305629159886123147166456811319053408909066646935366209945755076921698828540807999468134190508750542773066048966711137070531933447740148785091435447901470404139515088425811816685351534246085071436545770285195721653334590035056698737582490467482988369295719472227194381141180147092732389390055763087647689900058997911838405870944352655604628617651481895811388592304122699946644224477403857518316891851014662383145104279169344236137833152078791705868034217385388555500296130672719904064585880169129450548144320756677185295818364837509353600539779187188779031225637029076920414139040409759009520391222693206666210494526685969286459026725473167586739722744677969073523703423366640214312129284251246197113545507273373263953501850790434785573777670994692641335045272288424965130463755740486236568006691268403663874696223675735334646186154442404019021143751134863314068873975512948272804914697647984109733860338015949289440630011841783921141585348861526658510773093094495699186151623694176387079653263224189792505585604964192380932395459017189450719071172728167683735555651061224677749530115347878679416358597830889242293445773897952482485586732328591148644060436529040487229324528349469414384716662716219064546214569680850809054062902949407460640601706523530118149855954916390613454668154489537652809372362471289939767863102270634959227507351872117137087658456055819182596644399376438889406942144982266214209649129960951882102419954239166846296910335458621790909736070366943078192813556831185901594279137109507916560790041343783434481360854281254907305137330235907997245541681632751596283439041411578313609701510994655824277021342853732091162031564903072051568233689121166956132138026329649187242138338287476971121375225159203209099610143677243541685545251489313602186482910565930344062929703348008597643086299489920584496656583986900471678616213834504528916849853034916249780024227794792340582543303949483675471489730232825269517206481697310015755519308446089486716737936330911899224033988988531192738149790101237713083383902512383840464556950511973017539865096229543146505558762475025781823465624778985724116705125156602221643530214038338261773416284547816919190084056119808451452740336101453743667151197734120575778009466777763403594880767323552081242427302379814340006515155498004425201409559124362095067265838916630742881679817284787409019967439751369328966673084442009645758127869271616713693261615967383382109156604241723471809743353838001107238179674033481299350689694506623766269206918373676501656475242691410706651078567155487620067761838461584451620421924858200691513078451894078063267716850294171374185272810651094294031636139756611514569676843607348704093026070570744510234426898177044031037730918980939220851751874486581564910624977382450820932895680918274065959126045455839945735636232103690646650527658622195852964186114428060476626454012078617713810056176507210152545063568713432322560540700182475561098606437457049799073980842526033173564166717375845048211291233844077772928210351503375318164104815690720980770606809764091283789139933394701110491826886859445463698014147044963218503692373499054704761779989669430841863706230177628570305457148861448619954657462264078262762087228008616047592867703562160013580585704425369814434021209172441681095014338401713537109049412376501409308457929674668146384527930695284806654866660150744862427510911049977028068945690215541336018744050591882225554863736513474766928051051141329163540346692280185279429877807375080036059067853842178401534639957239968185756998316296371862834050691777952987424376214836082262940224782352819631902601577312547255203453772997475539617385445362824996619451260362366295546715782257101102932054184565132784432292893260626834797124548648209487921258342009961825952231040212278728076159372524108319590687389207752771785565873434874618616196668894302286285725068936716847088543262693585409914240489358010099503958138892525261699741104487112655802464936905808967750825128230125817439758147679193125811018791178750468342155740044964268292715383842832739394648805321781801232483696929884314884106967431218423320064002196519396461055037257311526342778531809611422064683413319805716723097518598210541958325537753283183877471256982790958202890253630991686289844468197125202928782511452103035000553550399119039626321347488133546226171273630918486644388843390075520049763183554117133436405871774933252528749894589812529949959627718435575042113332723932808706218601470456153916601306716889352267399360401325490535771671929470325403838094342398516113592086616898439926890144828945018748582852991734599951795620203785053679206807398384983520934202240321265653388321323877656560669876162673968613623149018789873194263860049872516175892580457217245963906258221034460201668086100028023594625500252678427849069577130570920111502232661929248298308999503184580920418384643303655250842198800645122961294311198112326653993531379862126954045403892045151391105660814081399831554684667442893129930851192158011860715409219531057862604776166375264772578852818619969195841415012305939300658427845778211177353117326934753117822184908677294857044895759625030438340782218720155253424916070057189659076778579950817885310765675810126064287459746747380418317224509426742291167825027404048360388681520313932986437789980147083206240155056473337135819478042811588931138226702725950353644318492154014431592920063516229447400906189201192991033114102427739580415261799498078635916536783876340116777400053236215952060138020795626225459881933897367196470049796149268290727839551443880192588120900036348236977624868819935466916502693962818109627178535452608685289236653364865825413120626903737886769825115381643484959520993536466826761131836509702858091400414414372289656626683359952165951841645351107782253020232870646838653999012480566711953489305663290304059839978549545450326669494368086695944516912117002539916856230619492956425332250581283687930817275219178181995857905531257458863824074623520737396884154043473082352888584981216736830692512164599357222462500958587761566711096300911971462988441660854799735731770825000284788479110893246793751409064865755413892065097610791623612099959871970031042727742661580379596054928333398050426981780056437527889860546977382287470870048215267374968396184700556343317110891525912738529583231154242473213111779438394056330710446354245086082594858990185027741438642067393587730809783553530442540831956927678260016145466507445816137731413296228384631008276322417388649474019918364230817671878317333742262388995095574994182281063850849913704490404044998032545670718780354614368311438555423475221675039831887346000372564910711422501341335575208221829657235958293920628505090544028855487738515446980413639552099336334790661979758423406354962522929717276665473583131027312955653660049822069763445753581769589929807930217613153391558424821009553007612834962808499829347927427176785097290207203966840906172133094878603118775447708578744185538013422423427138095198804590597303095462237457033663383390261390558358794848339286734847343427663617554254858173900704923264593257769416712793649635662084504384054973620836637233518280989158568462213841326979322930602080614315585287214332431624616626315399386104838127525673082357025015596906609064631431321410650090628271296772130761008078656860605577402930921026165409953189920871384430503914017678990421870547797408076010717661989596791059904907738831160987993631455907611362015041883957243339250698900242742877084645814388038630554139691729730668220341084989567519037999816576079631126332399054008124530557733170089145230910739448086919356611522241179735705303322400042511565282212265159864096497523354065054322383195638270556038477581806506217221088755317841001722457727822490845088613382963611138534892322537000667627699667129846391135989062625761343291503809272023278137133501754877023551478160105071982458355010195268405832225291934207221063932904453575265365001756679757764930589331089847487251908572260241048582837821919308515610763416445958234148437843422777145535935342384358291808036718279880814538531462405241249834661433338888705961271583156639628922279473252534457784704045408267066073192888451523669945974948645687432216588893036345204049181146537935071516283954470056646768742805847923896468506249524181239674726285561604981028893830039651713072494021156553758995574366327993320693736537581240130963917753297868647862589170742787751447404074188952183676958061706074122822621455714430321691731851893898046834029935811475074472253872735791996053794990774110144771653496979979505684098721482140827939990409489202913440181798379982750653411621559184472007900830854683402694936381901171308420866902945087562604219521735627972495768958306725952298357774816243875585189237803605152183219390296649313033146356633807105623296338773668403838905419022074772325094964824730050089927854397170508684254582909125810383506478674615165044797795006302879655642575951650845802329053714780210900730691291395008040714449516180581322877368085484119757885999539101460671561754805365885147979024550768042999469105952968728043779951345108238869273211148556713604170804322969612735802870780355845088249059995927190826162833886992117165711702181609464572518757371578216429084069300061222741602369731043876048200183756403347957184999906002460359913233633510428101903890435553663171107899653282543137156311566077270984678499865221027937474313484598685507028860677689450379735787171514191275078596416757507968866734230716560550169458303362402985041160164589029029947705624608244918579995402981692125061543333303420581863154693618340854605588654636327223561807957597452137111882062756224026415821437726309370644993849076087609498872510490730035575750040391449257501575256626048813451264441442171980907267782578680620582637555243516979138398772997730060901330750472599522677323200315689468210077062021841565455818043227230840129682753368326623562955942229699046584695532773598296624357582819507544151095895491615939086746664251639634113636072351431569195020494013178887527105876370560643390397488791770300202957025446135642744452267865952740798934071893779721521978638314604633907869440202951103155782787799187973467533148358482045214127268893260988486050336265481650488809052636785266395343178480424993482114157205048415021155213299835886610409962438940586645518713929698981476133724249059640640921910570303530553479163373572428202676912021996673869995894387352391193469600362938979069823698973805311623767627096712880086935717088090176098464368261014045177352628964483111691740923215269770203539792910438116958449204047571714339237644216617208455072314445661628157874970829009642035690815837101023306045899123348909605189724545725743723164850916604556442997607416700268613393795083097809291082168433356499115452492431258072870459226159702930255984658299408749413041268289064457673162334881015870344506908292285307198710865839778207769516658254265041858241220217893823763379645030875859737314693761603683447501792678362685506037709411069435935996404822258266599029354112643290891020321997590479369534848157838409137016564182311368385347277359220037070763545427169880805502048011542949617986809699025712561732694624279189739307504799685269313134302298605419625236337421864801056557873276231352929536815613341701563201332763048396935715862904990985859304205047137109905006494673655575646091747774423604070954428766276111055048147794225249266288688975307667378611064585788479373936744090454528345130437559348118363388872962354961915765777765701762906043768068511072616662629697821722529959240184437540828038409454589236124970923430881770696749006239811224604342862687837170823451167528795783719254091374148981434811103460142596692614853804962943334712771658584861898289629222519286716964363146730370118405345145376416511627557860023850245462379263837716013641859758512195200368004469495519675553230789375227700256410255218499928831997322849350078430614866088532081552038662814629863871996473760610872543499443148136325453662746250653923764856654402287981833888130072668010005339506922036498076796363821825867422470832940436297518670284332478174709916778460423066111619301693686119787130333690731203795907901557154806468816329065560508013246299730060586205293379120179856644356463808812089543406337376416743133975363033776596899488832855820740673691928875107759944054370481469076892909238245813018285049177789104815612202937870578860728694810776469801327333183824726437689765784215608981034376318216574983566659837305157088036695480208450364274624813515932454254583314153584137213351236890979972691903580863593571318380798162593577540990058096216522820725176188663832545326861313202417937247682377998934401689817053744533328212150935312480783532530611599250692760197695147852014779660323730367876312471334884656468104474425913337781139859418252701219688142813125622715375759138410544903164473543166420354084815225437160376524325626974676506709676807617844145438844953024806223714624224174618814888063487904906682727003953590071778838665746631331098064268810288477207571277675698922130620015342319033655000885693686453964501885006474841783715796085879939693797897100262293744249806790070622848198873728568307247664098573665586547185613228248402861414506552361935356464335947565846698754675771153272639586202910874690654362006616804615218888877869952351909027763321750553072464229010864669902397088583113550368394403449375162602259648209104576042819851107299406464834286992142918440612935687658974086457658619760947843830898978543147301523791189384085696986916321413353607627224303338979997886456188241984817599702195894024526352175435529240615811712941362431347491400555493441480802840375133785204236684478734882715566391864827800764615537876005699729347023182071029103919318101538997057342710012775557592105306611198129026295429726398062801657522691775906600852703708952133958727103592639835847430889749141624432670728331104534405886558990796749173001675943614356517182312035317713471799284006164113450632253325716789989043790599593196865197762824271316148762452363807350506698608295405183556415633695235078147638362878641776511511599672833179295115338917028989303813379386054723978475298756678411231470710918436959928450873014818982461717434062832746094684760132497607391663928929709707354326076061371031354531136219581161922390876591435491333300407270027731406629062926181674935817042370502323509766681210782149772432735808319554502248009693863560490012304078978383078092567231102859205706365006907185321484772259252312538899769746729873643872098904228586896280518438584537627878501419945362722283123009325057156999631995421057971802324094695214405458540846574424054398540906455006299863314983347424367155327675601195589722062399397982504270008881993195327534384289207418268588656334099946320319061283834366599000572250132171658499276454928488390484230850131241823942273782040817391313356650114755068051967338378128448471125227550295947268296187461759934638388182260286165807080735161941687178527741190312874410925520878390969524360448057701304395144659654191797461587997254391643902759102623659603235924810661322058068810704514023558744357357206247301539818245704239461564910654754167247487400390992480977897564169944571593243506290549519888716370429401940514353962207949361430102289989707092847128487744803005915966016143677259051326571391618331471108501146901011737483622241057240040311425979356646003706865825712535433387037748894207038701774189008483646781324608357721551119242508573273270101992867867886264828314408683718451110257133389396770759517748762625338077493548259964176617841882856060582236096551595462916623171652741540301125143557376624991362193962282778793076809079144239833411020295473022112846446379628487035341077618116642551464034998064330241102563391007253362253650922445251790527195427958710250325235831421773734795022881377222064056592905142722701393457104584268933866945150350569384167927977566371337795903111255037068200548949358773321242022821229104398878798037840595263141279710074478169344056897421921331803419870416429581840743881983982523634894340055519738614880864812870341688486745164186387887631277713112459401293854892567807049846434146753721825266363888567213099550645325117683868363341469657799950385317855676358113923952744880798795412977066738515499344281795324624208134492749492527407818047588540199841216543721199887760079719561924322136855845206413996269704330401919350789126411444340968376489609262714014605403235181679681690302481054096587565589674814308450417219620708007942239164706561720798081399347843164017483075280687092286372629073991069678795528165380988169775334874519109000029500567377721519004236032334531094763554357749652364211134253165017980274386839115946684121354031339989310973349300951318402407972696956430531219702660052619978400890627575434175642555602435508369164654989186045138497276526079966393110012903057105589536229280825811601403088616766162681507808056329183568862723872648861951569544622486255792741470785275175731662006876976852514060862979469067834047608143108235421726133454233293977598279758379332941294388179372005404657739248394451520221606733171235716535940648732468586564764745226120413514596064393463040453710242249273568559855723129599347457069257854016598016153145248400538852829373464856181257894605464149586638987726982658031146051281472575960436444714297471803937377956475940364431271089075993230221320953370138763740494684112556247036446858494589256292550497805527570632855156361358192483567083260581624052917217614617492012489361741697696447432332123959058387350409938721928704236140601374228588848229341755570140967139911590406355318243538457066417749752782922397256148092274656647096714425908593638053625121002396202800702306429241960202289911913193266499889934424560689705179402070717269704391177991281121947185844005266194339587234523769089866825489507843987236692759075892889904373555760447756507485091153867114210154797259656216953702971267428517625583012576518338374459754200292359187554951131023008664038843465129195952542201803121704215651997617749494004943310862674326249697295862210212676685909033247393340339007106663602424844205203959568940268871629715952989049474452424142130527166800587967896753815444062895942274509830428632109693071580708115797417676290155832464181593126135701276699581072747921430443058108494639497641630580714791511439921411915709587319374511803980944626487241762946595484285477080829743904780382671931585810906965353410845038245057440761283386861191864681308065805587960815675341248503346450251652911279640774714547585467302919647321075588690239371143256542858134655471453528756146198394165759346429971304731242430169092699920807039335337288777900030055887058521301406869182273674529057060360670515704004342153805348619857021329208302204614621729016541931667197228506402167247934213901617295782884951331692042147812355261514010259015624684151385536930363355634410501050634134981402622021151002662968620658726447267665160788602508150825052355103498208923815728949857428839979452574213798466487437921016730471772779587481655536243050389050927789802868786770087242363701224456352562195765522161795560358236839375144607362368235066542720158021350725264283666168507067540384781096713133920539550387337695820054679198009017703385285376883029330140895410743702247020237007110338073814433702418305962321106851551063097280046984620537439537046188311224066063774422606401265990457396992708541232688976620596760933725399986969247775843083867130349686998515888907569390850501166619685404076804587688710292922175321546564552369318838310531931694873708544836546711690445192728282148429002385315863754490428107654329718375084646882319145887450056932099710329691544655148459016762307813149264471051772500359741805284882839891610518399760577288684254024590225212022228725755210511332912244600939454453972492329643924792749496983009462422913671699449308405218584809749133138289039386411594433234196578705026740300697283262326509615875180159403424546768996815592253046652808878961089909725063268658509814811760950997423989978384928868147200947792435017698309488634014348362415036860983909621846547620535885106831974373597569017141514008246497702349885643393042444172648379256031439486135707017862371843240741398081841813483804830250521553756378697546551940521140885750552220894095776131677631048958545756252300623125980961381533601754055931437009234761040526321278487700396786281394004222115677696066766176917185020434189661111293207096335862924067374614254185553989856566035287354363386802749490864961746736084001869182026099737949260137907925115808766132060294849558467910684465366145882697924846249757146172281675419888699285576166154312925025463655044934666745171518112090189181695530694799272281744237216919358203845772054673584234739980678856765664635724260834518727888935841367958705279040223354321710230645248698536906885820736640093296446159744518561014534122321427088550505063192065093842773414447930607548728858408142191230302031232288657100261254146792927284258747620559071781290065154906799888795851957000165537141389626392870806686060895526974595187105662696389279188797877880474492896891125101904808408008662203486341993998034692579678289731681088019275589056779337060328674522605996467196599327484982561465260894802563629706812633332652888275366258081228625669257149676063646438199520256466833203699166743764942290169952526603624908748068142599643868468425082291179599402830501876178026333162086847909923289969216334704654143903797426828351050838704408709916162332366314150586635663919816560932758785104361289604151905091689259776371136080035777829067527280860882607046458659651343832127598756868756160628191548573100942360287326996995575944465270660111812559956566242097420916884249106385857836828876210604175266247491640632170553795575992921235976712427135543065981722855517586335281918190580234945383118533967061830109794164037625328568636293800123121500870164621006102899751731160917520466946810528528352646843744787213409478780984972932914068071493339395904004820711757967937077929514736741190657263790505490700174328714128612472829281985519829440604194334295504130099194025535346020114353640339106929148343846905643697857585478502687257019524659491704315584621957467685379524930246335092427208085086504631714369047791155183996385036307020296734420096099478930806254490550835834085972283891340210382083202494732436618716859814935270624083650688274190573690843695833281148348402272057966523344539884329054238493003486588687413271966471745507534979067376005537925196831951890020094519132544670205237444182694963964900818607214815592894875875649647982272944519639786637239569534129196234642704718161777212606680666222439714648493466454963954229108546733577854662510454794719996103820669607334731529305651629779498773296803896484078757291883461994334764960959944375599569942801261963526392542431306291881238379321893809369217340299045190606856372256599849769182652280350829099794124885376311131944047151703289868566814052124579473013881978035522183221180526553848909751048509071061148201446454855158951274640093989661237692999913372340004664327117026055081636919533088306440916692352301802242409550669867456962197782517473014507530047674282788920277014024608830542416491478033712421771988865363541654142440635441391262523034522536083398818580899462253604084374391701583467126449052766739257358554304608010741667762544384661038813308958413800236980517576802336384444220240749301497480757410189022720859254843499819235409295238699281445375330824903562415712338906153727348424951691417213741827562635748312039049513519018809440277194136830083052239396698248658427703631941239086298358792732937968157756239782346307953151273619488897035818876831543818517143816942996614556262543977663363500060269671221599709556075184153735319204161583474352431162520168769330356338290254545117143949032675609557817414305352194135154418798925479603732306737734945041834701377059242660617928740259623915820853416203023714454303114347502531973138267478504223850931791083770674060116186150113779054287246211715740246306880170118702931280055663652184021185760872910209710034729517948300097312251868869003823149948133283198682660117622891986880777024441917466599774411312010123098003672156607965549261511145304902950333575520528577224906893649606152326397509111195392787500401638478049387570575178962106902608413597597888873371888651872061891888523758339708676820286301300750264594997124494900531739482794648956705045040697697977368608082696728577366664288190244862411691192632620700867977733471903639350256367845065061345145254091091215006626000664122104594021730380606696722006718984279054986192633500864575153766586638076419569518019305943019825596143662774325017544272443457574970553309242930140798844757387463843474258184117654985172891850060196708261643630850637825601934358959874856397262572233998435844157693834802793984775867840495143484565442424199931814409983308626496706717170541855402989354185382636101788224674446981941377279338996416438904801381950870063648308080154791803003997145506419453982819321457523891581141514391528189568398449568779421882090445463392740805852653079516295812367747102517189941341717693958310680594500256721586157981112982984894576105687049542799151314618017058507331300986933908612681151860107694297235089144313592574988557407346603449747648610041310265567456165006261022617899227926985175809959098024990621258609397966018187191814947296226894708094198534785364817719376950278698889875286924090758594521705127737872820949325675639571375946415367332215331983720587398684880019009755597155719645999054986647256675192211635319958297340960194648477010424017907386029531386364165117899131643665249145384427933962249992626995995020174884016456469916843067978245871135298643137777141521131766292173017760004218706563768574556841791399662850903540556393677480855200515772516922590882496462673570062951924302780756845057691741406779054809949669625540050438297961238438546209716480326673099815965459844542542613518119530464424005183382633012724757668850551618974156428299711514470325531890714135419889337594981022962608805158984412324835791811415386527385799877311633303783330457870921455798983939662898608084134543308444441733960255187944318279825243686448628419310320115732424348046409214903524934273478830631664235850411903374559573758501628226267618531518856075414768888645928273806802773715822326173237781263694428034749088442850207179280191422646024406647702617294657232732381546853863744821365595012104907560920888412369371196330062152137889505807994484710968869644175037588449239586085647609676276328508949547292351123984139658556597475537896554942547815246902873989117201556635788743675647307724002315312153629501490511830831130681196535310132969720340157269423578544380003095547937772990374763212833531855501811568358884403548199570824457778241311437596297464841924472528810306577609198185109767649410459156020341970255655262905712548130098273605750512919241541301790064417509935421923957175115658013109923579167958644460262667746790159915908397119410948102248300715457463934881464679455186347158271329402346061059746877949501462915192442606017297347382969645676306164268865700263325145622709394501623052234940531827885450358138983348166182076018577159449589224738726760889607428845066433675086199698307274783420296658257289263215447568501253404948306674897591627163938537119122083523558801586502728820841932346289809766212111555300267970479082968118431310310360659107752452048305214686893839853672753765466053041051342303850500685891374209475514090945924477994472621526726666556424777765251371258488985573782977115070161819017513481652357531594664764419120131039707910072960436860120520852812391632621380441163892183326055962835631879354594855478988985002759220686127287338878707430768984273756844590968580917685948423249801825059937484835722602837149149998106138589266371830990111072853073462557722960293022815130081054966265731163820282152134910919519843842881530043899918986514705404997158199048517123106700594849295233956567449141268602748927309145305744564297313895979392716239316498735080859943537800317020163345573577269539012581996590132377649722893457328625494627150742161260127666566846145766352533801427289024161859887687530501094221362972841488424370531951571713558465101883926860916197138359227885368053606807002955702469393958946821263225527676160683839280837523890850759462102177985747997473215572234214813467128091870007068804938843284141342200514946762671281475134810371818910764917912425031673102672398900670254255367922869248228381651748585122665259151856885951255687130006426847375905235584172782042780865294676518310366761927489155741382468032485119611041882934421543597818758487860509124969414532709321699778931376640638245640680354948945039514360861082486402631964406415776773366816059494780343616649166971569212455529135338712467526257317546646918146420628753520617733838731555521602748125578820854156814437228831889314269956154485192685802485693552860927755635590644019248953168387090770340862599794285793153326338436373203526617225526816342129497597057844442994286136533965409255326145508531715981626413166957256330538786988906615249502489380402800943777405126620721851592351003078756759788142258163066666334453095802964473864756343259252565233386154208582800968923423769689446947836178788828059047375620110597510622468806406672566595570279658677082303142008944147382393137684294152331604158373396533975529957939121800381836633434962640030956842858338720750068024852236412983304525778945224887171391735886974212257279620407864435150240499672780131631114362422665449613568973036967155811569180073008011672403286747961354680943980870855691296567318385200687052423089172272939945799234301585679541661410916081723042544910836787500155750371161373247542688021181870234575620095249628573007107906163490262605427152390540891476790228229690416496858515520351745770603898121328238889095767264963718610091214842502392050108556823005744700190253739611493547242758058447772276702817355908534872861032357031939294582358597097656109070398941398364843513672046180537764265147839528150497360244540486475921715231125597812596913224601957451070444655480991859457982619634541251609130796647849948726595164600224114594710484056272053608098288822442361377078627440246924041478028196067907488278045401080025560162528051112582374763250155103836439952513576572439676265690881391078209120403462822893864436508120007909020402654817630627443393017607645060475236358819134379106662637883907904127513824332857392670238502963554952942290860322599198322554077822121019697145654712718340065409612498699226826034335715552781812006074383423341795476498011689213118683806601607606814686161876913012468013097082648266181573912305174192786727798043259386954237662949383289104416953631154788564428755125069032161528280152433041676909573029350139511037415225277143801282051748181568912732642999024648016101134952165452774142939779187682240674012581129310024870792140573889675029101540168785407941067517358901139384960526106076665216896867342972219712820289598567648522376384726974363446190661847735958493444109189788312032675506844140957794685904778677009776265614933171636694214955627522200281748772159173806448601460380258003326159954719409705955488728372990290788957210975292791027071527996580489260991463179171077448062718458467311969038963624121696348229248011166346139955597560551961128164403613526866705530573745717958272893733658562131236634142300665260407848349834502901743873815196058487880548045223134322038616308957358972935335546108568870728722815650501219780308508153238168695027650580180013486895297069199914331645501936956964681616922343515316493486682141644615971114663046156343287598100789762388142943509136102220177075413307899965828985867257940390973008423275141645220830829371733281698806632841196557036040465094566928617840723087305519882402814043393984967816507059915418440959161489600464086011955706756261991898482977994032037528957180041006691654179228646584332561623393386960625243008536199519841052634282448339128792175440890034057918438072239155780165230870195156544712479130896167689679836054277900699971867540895700856676640676048722668891247820187074895942855870898158278916993606567106530137791651859237297060703287169842117779210216733654602432246643655548813233276792843362198076696367597104774513610471029881649496864686774381375771931418564875625509189104325475822061632083409354246836071010558375332376487559296865160344220567017890298746966375257259507064114196494115844979712347195246725508558380677708506478782047860797302805794851096843003724581737468620126717477419980947359541956811755145495927586485101142247811943566255022362231665103411217336053554479623932977495666453586180758798809315128126460135291906832279609932659692790451824181516665711708029329080850997319405954306283286614879171154369147422146412962286496361099357890575821599847736736450176390310468887788961932876134490725503778309158897861582115369922033847948787913772425258137708748980500071407387819785990476466747610751475396920556216226209574121539788549109766085797750740004439201966024186715640261959107578748060761921902322000159720718796359579763006181827271234692298582631610521266142908178453294966295611498012671962302026597167642093230796887898779177002327854574006654367182365837794884882221882537839770525561956145293494315277259350004359294068040950223263281874034155804318022733162416786387719589379087148308034304245986544306069225574012186415118458477843155083075711682383012584022179906831920099630786235602258353992238550788060933182242804049778707332892032468392542309319413302380011647649376143473283695526193449185566011264919030670325453264325357460311168494078801195199532868637788026910032588082351534281193438149882838244796251150253604802892241282999163043447815705878615550934245710612876497181655465074435518348390166426549669795176794414213293677173842438703803109555337319713230789474620006972942684486604522986686220588541163668346768443127836525504072073980314865265649920990617774304929671783444562401134240362776990941135305079980082203506962306517602343305519591931689649559226044627196036383216239168373399303544095008465437337878353900677355600192845646187720553382425686229445316069134805309705302480583698780584834906278649249579910738761460164001515309044001637025306342942796360773235728434770603192921194012127472886812975988967185433096301738463485599907100152612689558553673674479336055427623234354786591698585178421011012690512034967259915747278732439015921259025776610763965869144049090455879189803378326833910636433679889553688781150183415278444127307300029957762375637874278819548507791156210961920729909940252721300244433145574309708261599608904131406329177209508316060683621603384649339446524410313997079671736155817190097161744255593994654850033670191876376652346154947334405340524719989800311860970451268042494040431736311414643094872297855624364725918234471582432779496991195430940032231419162427716065796376819348662343133479059388866260278638841478417199781642517147453253469661558894708038141639028232240036788817438972678354484511850136611820687405717864337571718874617242689012629343631926980912785223334923033196802624617223997060813851129879833395618793905915942219558645328113097697832320324254263290001731084899395605940382855241137078541867627769517078913740144022847773627218455245868851502427017838446913094204857942106564834294605748746512671139397468555369052885264975812694833781466697140224611976909936584030704941643435592769931032876858800414405436646568172167869394109240326055654532834295217808976142043002633807669805035897484415472352692486685586697443079365821118208520104289346826891781967312150660585437206289097525451667589980291896165058426925672438647269129294840279647845986934430166322926569141569018491633021270200421732989117575044148890620884217754034803877131747417836468383536714394006593869739286027383905109179444653217162719707115018700046891818872329812853222549011541206786327068552269033724366453302424419781123978386528520114865681189474164439215662591803051294523127847783740559390204144850804843661857504897986613437851199586787576737009174316745575867765924892876019419155666421644449047162860419761401400721780805265648600453198269545964825117396231808286155661190699860311860947719810570022335447967813692203505643944800684281018536214760576518516526671816105648754892632606229957042036550467971841156180804189611873119010258461364587803806513148896666416562317806560613047071116725335555756115810093631242395120202839510880951919986622578484494397921815974876148564007687611116972245625436332742731932355087076325095529511951644356032837247266240925265736833347245309921979683931794071893664531700960439947947890067662684683071705849996300664666679246068354710813830780306029279164793947890905037300850657887625838626377906571882335107289322088278187959359545297016667967960624380300219656991575878320165886287889323888273574914924516343286787379645946793066664149429556670918256810764749496800687197714937696879759761971596916853244427316569830470523076777523092499027889656425704282539315178425375437966179753619186294745480172448761974856950120456703632550203830755244339560204025325027812856466292562320858651495582708517422938377151202749260924212354007180937568240736539670861899581523609528100960088269231561986709845644936037258713868044844603228680388882191764168292636969157997917009788791037079233356630429936609751858649512627042289643779245772814955670298323844506640116922049891201546325729477014639980980151031092517491319968538002396752063491722976271373048021892250532388198163482101013227824165163359991809601330382514919785008815508637036527238916949271952112058363471388455145458355008088260600330683585341469218310926961741627335259730103048628407655932575505764144761910341932345075515767737713617037832790080762931234555659563504665880140635501700224702584689876248752450145297775257617151632938267544626883494383791368441489615061075754800403754224107157078086035301770052685179502921980768116022317468679803945152614340596100603862902045064570529783330464011294291037810557194624442179883051325301221710333337119334482695203986855021537122559456732323479867733601492148315252751677354026195791198308709255606663008623881105863694821107160725732907103838138942196684558781029803941111205393964634382788683495235227840712927942911994506234860929593699441851379127021160293630311714968391793296273006083822892823316065302377443796437244003553518408632049163253420621766634913591418354798993760371299050537903318718010746303926288197476930891045953223274040611791579995463469664313407617274396322269483200918577906073598650994056004303333037531614582332003868103117261506499431759258252133319553099257047274412351708301819935343559765805194676666671362227944708424813250410446815138130832419912803930081753465888524046488585379562348409262533790127933033483693533806396569070713651700184191778909966766474825082947218359193303334816226533896057308219508982311386056971304808470798019141387449071660635808182854334322599254748788986040036546115680080655273468974497660908323919526887111232070248636208126079406470539221894029119187197980904563577764303498839639787533716654629030691346408409584375708923433142567203458967636901755542695182626941081096887158350713203586501170358930229729587469566389385276258784106615736479689955321027210362069743888019763743412113446245584597295530539942177134824535297347290243511317064465884309724371817389567319586369001328416826028784709399000493135161878491520633439262762270042436877284469717998086348921447834777430285460630686192596364419286951652710476812231476901798620104103718557160324244239979276616014902309611226707891303846786005647162460175372680975847135409361542048541357042614670037326169003636322414332945996189802729000646339018221251655635870623186604980280638057154919657564957433317805456253973748901096566468934942397167649764429755681235079741275050604124144014982228778770640033117897526664792630499780526236463916661174379603079841159927990704082148732096576428166186353908350749790064936290490843710319039415205598972275105791344359854242615765140719770134940752887315316170821720181215873692879222942424293979547806096470131236240674209381675498842592244287439130816804429095420035959340951526883917914866323421596946662490487218932944468206043201408615625064536717229344069996834698487946054836230798125583686408914458099543417184769175195669035910521332726991918717159653940766055476691673719112559849161237180709159058257081360403582269897876778542523753504619827988635801626573384725604475302127905706466175731328277795317620835614073060991474672269259467857112235247888408727278674918437166440041945473176742529446786381501267202644804968908731524111434877263298387307766598757786453721660265575609972662927864571917006925079028269166328506517910443195085614171195022881773361502516673553706067671428769127023757751412503733347499760382636346202430072971097183101371196052144553659801368145138281068789287926611038633050975732473012982594926528478060862566017554941030801479163615297747344715107719972600932417545742315294928847705780994071255602141118522795696421665474127074623700691442557294826727345923527920541960353555456574762994726872366908476078597522238658703706390011385395948061646425740959875395499260506143343112562274076299129188309597798273810720075254808611711873249455604600340346567957176746285328165722382181775445886496101609043254096456913205011672687040134584458278719298501678764120730919610954767425264697996591847879114688882597448415165417697005523355556189162186157317366583913304928540850045061513574881600318101259355560821259156803194100901529386981593614826810857796628883559509970936664698934869132359867942961495228638422923538989277550944846791856653353384014768164308098341587792520246032784800129431661715023188594520956915341484840987682864854852334070892714987657338471291737669605198574996120042722635827648366105913174513240608912688168298052865009473249377699913333237101448568685255561394946760852702747978092572171248872637688853049236698459469535464797609014262611941693755988119309224802303607245657460935460237554616987942804752136202450839032919239260051725874731253878835254157977800900233167833070294919487484488700447130684219277286411654619817202827414920517584194460173928727629357276401510348065897459018364549005763325212163832799540109816155381299228770779286501435309918118306527353161920486452297355318814645147042343560221230661467248472809372852878666088618086676498354642954876363292211011390535214418949588925056029547418959467031311015576117768779967261360988680999834175301715962052985478698749809243047291320312313046623678055059209604360893855333155383770411620882897651717501325724113912593093687739108398290605470735799693806974931762154614557966189000102247149065134456220636336803957728543024291796476850471021795506728844934595779053206646020368089409116689405188780591516280385108276922025366866730776397058039274417270999026194148607686462731274860761823193800084863099786255828862171126033058531670765637595478642502698604084095576095567549791292482198182722199928122508567891533142422093656604938168810049277031570728009589603704493174811248415115613773860071672150853076734040750806524369237761030509185896420738060218623262786591779512053502596024883955251446985951477116852409239937446314228639239467357670856181901897918794564583494132709449160218722347672114023896050236821471239120715886561721123872892025531902040205460936457102276372993913964123782552964739443884331880649325270923161372975880298634908477970371247485983841676837474615766423785422393828589528752812926342696861756672230459749005816190086938118939597315922891395593939429922400495671360669922334855902454409908384697310168984021410875508788252438679546475300905049134427256598086113045026842507786422483354878650651193835499551496831666051636046546096500525766700487529629016157724754275788972553325387573634137158736314582922213714919863973609687991515887994269453668887256804998734100628039055983668147309394394570184257271458755353780800719810575244202927057731774848820437392866964422258065815377759040132766350449222503344526284808599608654811150959987494983395398774557925980479261136753528802730360228093107397397782079278311200029015241240836365133000851719851633224470563737787436591703382071190150848138598928745124244904353853972693098279833685004694038166681806240974858211146312346722255044203312703184240062143234006020280862775571395730813038796544464904117219646250605805654640421697668655072274666180476417115653684051958797429475619112759401513856003294104510418735000179315494959026024095248251726407408774726597650902296641470774032718864073638445229257400628815192725083134316771036229134533236076007086780449430544888300743591223367726831146827136447545243315958615954116824645245348927522389887869526515093764890155952007283914948229812924975237018295197262473757480881889690083082752720312830268503011880981042078387700726022956456085567975905700020286579668231757870109272325250866524994168240337595829201611161785095853931710085623881835211118123684897209827516530582649659385129736735149926275488352558642097288686502210367750680419836646685300173700674742489824779303704015042270153697342832348997475524381779304641015768011882850430769335950072736892131144792942004605528566921964340647982101419433211414659279562637009219543822355692677687478718057442957147540388522109840287686073701052828648077198695363077751840637365546006826782663306070885263647590677815672365175152829554756700033891960813679966175647527939588966250192947764462873234856490616774975019259541703144537985854594730162765623450708376279247532946836894180155169326315136403486431074280396046113588165264087859354425297981281511269199557197971399266497623624073889346207954769757506063789985165868227787327446056825229258732356124370977504368789081823258976630613159627275329638160554418535756417891170130069671275007657098644288738049946946768792373942631017833111430764717202985836942429248813483305888183964263850609377132107785536800748108244297514879447451961988359805876604585601213488143016759845848591440582886268354355115241025617991217858799670047486314963649518150941794916010539363867551784735919412427296947128372477262522461935731221359896113550707951275523641582779730889193625466392667425212825727100748309583434337394475662102976400278650180661176610074346625681443271176316048134864190299639799528025998652985774475536941973118709220661764312367025726382727172875928001723390205504943719416289433080437523737005596645154219243341338331770961182178251371782145234091939209037540147006707415209786269868168694425739386919824365216279792968621287115182392715828784543522792398259363772670888508438553962409591949328131070167857496497234833250355679033097146756582763892970771669843510520918717825387561296671309594629955712961154592309497007707467822431311199151941855229876801836306794414607568977846044206284266292674192975044354530728407727207580109921114191412371323927250564367485039894643801930568809053226620240669478081926701811916720652893610026362537554770925042567750011524443154303406440512833469389805083552142222870857366311695315985369282425579349204750897112233279077297873962752302767214668849792689128632910191270647029420705001024525994968138349345141112777944768079561537215540439162675726975890596411525192289188708125220828115042408665626928402025745942523832140015127638783564229210214414949997954616387301859912930041005706498512030601298977434762591933214436903627790114376750125207321877356579989497465924339523367705827116834456946935565179563089236430109241171646443903394996242464401618603207078224998099662860030281036597071562277600308227176260632973359183196623730828237340694121576928543279275297947623284720495585653466449557235230264636294511689776266822901954858990454610767658175001565258039684276806639126374815332977940897280714253591564817700481346825621810702263199346305683178640581049228041005045530723474069808076954121557138797310766402826827256888648724658142280028037376140956655189928588130301210103828056656322265397884977563032612635084984984431928412792771754676960965896704953143781855264921611786493898091425348793493141115336754828678921790037489297625191055721640726261026320746024805844470982140011864971172627095048677279961603107065096116666640953277040055248493803814023272806789213152816113918235919874111717891432330868084194830790924173322276784150059826535088190861452265278821826041373054394235382342525953151248990027739290630188504386559201386531273480674347896735496595528106211111772324951125546717350073116176492646517150663987513180748429712049273562551056071047679340614979180892883537230553679175059732442452624588234809465110686553542111553955989137267498960868588634097549800057677810524264339928336360041122605370612224571918826062300581450676799909028986276493203395467033213164184270321098480171203490673202099131541814778982840406691161542902400040261794912704372964109314900211444026228904988738554651223907120048031498200224527924234017500113156002492447037467646962520110280388578640689863334681002279269223464915449375130011835231103074659679450944739574504869823631728339116490678567144706216218418806451701706540020363654636635290364876758339701153955667401135310209330334507984610424437229453215008834506922242587701756752429584042411765558882544409341621707367607340797935618243858033439981969060567119507531812068389088608741819564052724712475054576756271565337146243445899224981509257821129598553078289158336575782445199644413278777100548572329242311687611501796639253687889278823052387568226582919328787252773871862738925150632132941611958364124675724453365950313122272343229901513128046631145871279395606462563001875478740672113396375888646719119749502106408941672173170658141122590560728539706816903104831148736462834335284566003085617792398367009634803169889079018846120145972780049338140102115789337936907688966488230074873791930346698359838975740220381968916640469680180308292875983060120380149855927331364358429977439808543834410509440086627386476319116347117980571027275942338483792402610962842962271835204276429859678350203464455998019682614033126059291654887538137178355415746285530980463523778797018827953210232516727056847085773563133365367609850010786824684014956403566261827198293590945089895812603299772717376976088885232852763656939615683927709743012806205766855584652301380279931574198251496373090228608318804021295208285835210434023706783317404169345336311133455329143302707940373384255362729006886080787789335480215146692289772830407494719941524507008991953282256196392289008822771486538672548346938927839164424372207574550852199214869114845439806686299572034937468221801516129605383411361485235417994593057797649945714103528710302289721556035977651122524598304888744110431142499895385843462413355452551922234771211582880553783787616764668223902607035765223913209818340916252589561633502270737225154284011245340604385963217262268477364612200558242075827444744449972526288094489246234274067925465214774742083395037572906961499239737342346705669466210543576085900380804415283514374740505850971283023610220748529539419535504689493658553590407067229006792475296088077189865860464687746903343599820578745310662103042647645601277178691003875090398018898261894372846989997088683240006458553208326301610899084116002701569154973967086034976464723653134078511774412325210577202810654290201191946951623543100699529610941310170336831517953886845310937486967465704502506524317628197535022190986843042945870891461009144008567759926214540933785252975412625013932779762389791673864405429027519336079239844340465573383089304036255613730851930975413075490091945063740873759027097951856181081639305261825591461357282416932445141375181640921102064994061675632101715526996634012685119227635003668041040817717333254437439513769306919278535186669468245719909060935346768283516413681570910380532152867452875171549919517619896267732823517390667171867967691530882938551167718645867912350574613087975401283147636868854421588766096558080626927140257263197621844417980190454238272387359724619050341898658551734875228681408213298202454525801948680840507153670367418239822601559420737906145316474661196020859567891665358683697162798363258400645736952736242521248096776067301855842695251751222629346827764369857671616120754264706260291500892973514194539281782765785382179155472054147088155530271740966839769264958600470905720388303232821138237926384371378793261321190251718324073195404438908544789205642538894883820754168684620526987198439398495321014356392619899990960216205026537076825828125878155642823944494528494962363577234580554970534355970771356766274645219623622869444817733323983033959128119795755434635583585183427189535361102601568993603500991429472920551665200824055528099462282466194088840875221681163596102957905699793168662357434186002508825189063717672604295303112003729866572556638548632958734704309497263198714789990157752527217631841802360027847527825055731700127902546483725518834126686430835668671882929437554433435708949105515833737560773466249385723872194762706656738097868678466112238059190221031343710712728389400830742766590727866424478482184016635698580701138355923520953890736771481238550589213417182903702241279000814473478533262244294326940495020510043149374605941326208751892223172304633949000286829702656047424415929790548156139542589456477256264737326720860817221593187029728845672920105464274907490570397462184157135555009937698377962551662299381278559933237311580941996737080538642636395797530544333857163025123004861671276388287637363384834843546813923309529478711010366335693852417108186051919021084526474579827470335380742791914781485840065286966820369388450453335053763133875806070730585991965890787590162038299210460629330934312014986091318189621059447414178046287294365975803379907900633911274678300796847971146634820215537899026684090035503461194413302887579642964259854629765576104531410642178091908350731253728070001717768080697069690829833205059397485560299508696048280072866833638958673595987791656168265522832709400024486274148539058464523914290659638473659062991076535982617351687767996840302751618812230489421287908782874827010763116982803209693938780113170353199874204927789706584491030189393249601192422938706152938809199733019834976436018136117934148350752792137968126599900256256852994868138229850109410920224616518806720728363581571865879850755485980153771511463861513767288733462783187534143003953631989552180911576932078705809697448942656091177453573287077313959578867369533241487185832714131123929807316154140293010116015793210097097805500020931862900672284697018670922429906303450576381886156080313397062424627128838622464232291458485005568899920162113070701598892166428631948164607543280462620017505423220368442750332826175762753488765676878307914375678230408776491351382202243391471820025576767039036572007351906203719774092885956759512422642227237673004350213356902190309968053513990720400531551215080711784562681315636666921466273669438014113484027271592569734528979888873547842245107528470454991890774134463938959012886238082395367440963940975277964773740967015773925119582277390232891799921254578373178214169051748008888275609746283655894644731834954189949412189056409900896697157655664910159273831402833360127123216040366155347027701839191553568538040322061727649474629644437605161283950041191070812639480618287882708126582117097371300272920503224146543982131298969771486461691394068592699527694785298104830397536214516598355839398075172111259347975837929013082650385906350660909477052355413583878860347833664286600476789511617087329212154222474576671632364200212577813599896319014567386512838920133012226520263054608855373580217158783519870276250667615938988053447080908959371569689981978300859264159158345335776824722602048326161066222669106773530068752374332683063517556912147100032377357013755469405834437401232845011543968763399996711250765058615218878189003662390346463553794115744615526644313062900607640337145802184399115721471887349740416968703147692650595818014502775376393663544212265103461589005855430635670791688848313597905569865929911548951618670381599414637589996991687351647036476924236893374534146107613546528948314529343356809676945901140919395427620450840464641617361519720608301506564061123206712211909411157038323613846581367615746977301957267778951561038801113284077403165459702362478992929384303131061231219344591209662779755285760051495282822993024929797201171548171987811513958058443493817168687987621524583418018284096330725414407856027932017255058492984003498815849327518187228768764368057625039594185981325341016530053499636907864272604091816216927484495759814861154864657809561003073564375859946488754057820426426514372959501346417432054631874459381490525756386776557125178363083505424257369228345835655029787385292197544124264323700818496083097847058366533533841989934808858272827596262533565205784611916612205311927743170520445951684185522398280757951314246939528874457450071123525945069432828194074299368675345838001407741492678581153275784037083261691400097595559387343987139465037264758877094290395593827821655254087956089065039333152104573799771961313871147325165008030160892699954791004346146996796855761023796102822856826422866295652756670125970675177488543478952294502208967424612530455549562487321164083109401230571056301193860733894860661010892259922673951441387559353092020363444711910477803780948301774065840760701314652015871190625149106350599144943028887294244835568184418976047195542723413255676389458878118122029266637018354548331138291721427638725677703132554584589688616822355016771090111274330045885423844085951040923859123374850971199803337152406215062074323784993111555183240571262172163111500467503298287705635488702867261398322134649120590657319306330281776685076744598321752110519844877049360423632358522979617949792515959733315898720034040589244174047350939522854024547278906014472137142988444315181382179355600488232707415981327696679536339986016967896087994135819956365064006118090810838649218297167530987208617930990047356412707460293232473621020640543742414536817167414605158851545898123450604302500578054067019927401837619369071658837104619789818853845166009562897126295272973935726625580163697315686280473779406392791152233239934548804434233460103749913298161663715023596446550225259410147376936703253785968820844147727393934909974902394803870622474484463576896478477982455748309346472934537488605866140952944423339886691149707091471262549587207499809792469523377012010181434571623322215550465356677525852359447690231185822731019591846789654337988133130683326747533144467307561433387490385811783572255624387843418490813455879048780389835266841515172777881047200629864627338761222455747204179114186870625929034607874523961243763954212247477380563914926154765606840829782171281070166316682959337740473661676801035782452759036952033163505761894304342241347825465073817360541490112504931962812443642147503248169574015575667706657026933255955678519153886288593388987632730091773880669076298618501283462135758511716618223139733748648866690882201677118158300128547326316657108880342654730763810022552980662936614008000038488218803692691442536111686830435025874233246988304647937939984508494817473976345219993934635921559495988971506198265257397333947723889731027192640549788220225228187952302545859671475162752090363830203112199986244136078787353719374899289056557650691314191861548194180608838351866785176459053190256477392824998154436596041845313597126042233462094699396457255750770537977668273387729705758649363472482760245693385272669364233821082523549316718543344305899027134634756495262708287593874930922778501869559756918445782504444092847181918812650264526264228225907792345816848978699282866282931608910931070469941564851309528618273388396854976397738461642999665495715783983499450050444437412880142291462064610543009446516613510531789961217239216781492936533639328158309100961581348235877468080837985314759929195656112296474870135556684979611210271907176631573713614862425727722308387995561412736329513063993479612923022778624560201091274845567102582675504110295498760477997769090243405222196011724161923450279120170701316244701759506477643568588489973408524102510678048863436048167082141775561742572074653393757540270632481202440988712067344745365920596711544842947794685737317339445976084907618377795988906478638098738954757670888082956940357647697521406272285825162483402740385369590117095912865171779792903189238711877145043666776699819665435615463556393046123006860781054719575128097581304467680598690505309659412395627615577700753533339977041830265076404127390853085241314632770038099574645925378156972148996258394671926181016525425545892845774265805435563488552758732518905489609807128330830362877282572863624473469155536570375286234905762924521962472960424582135276088116754866182427327104543867618474679127040608043306117236128904594835691503996326384130389136146029768583603350524368706230004492523689081991550207616441251745667389223922160667683675004564246105697379165446691523907384849387183334747993335641798455514832734795858691482724868592998497063437791174744304422619024072264997248623260110711390804162023577805359560242581367320221203645342443267092388734943972931348511654004490342740797964357053371981726737384167400348482115424175004208336609807500905151296573723602135664567525122340834205476490425381659013717753755896051299731364407288153130593277200865332471707136398190934232846956328832413623856708813130851114044113203711696767549704189820992733762361236757477384277714539987981465521697119445998323427035775674523583640525457225421153547216093649969657727454692850598719213059097549459476780443404022148831658437818222473017112097362896123459232318612771032847584955738292839970869890433951775595139058563424245510308322206963585335446437857356238430000007255452410724180031770606390763644914312734667561777641543075409472195295419227157843741075804352212528563188307812788190444171275575390667768657897811441335739330324396076364684944557918523723559602392630811218754985713991003398636886846580759527050492904873139505158867451937258200192692238748079661072303260760649856697484222651368631884396927399423441370779330015425905552148459437415968383504747210433130410410543726839439782462857600292706169445559217590193534655297697109724344462205969627093800493076729156483522838479218452877823344953731016124151100481260880193845768932265805273954443111862945849570717414480490105889632959323193531484575140615013947748693721468259172997476374214059427534617827036202365637065214865942198778520019692576973297538343590013665700269055787067983361867234865947977256603111793751655333500110769006527397193269246286307424961226534817644725600672790678903546749702940983489680957302810927164923129900967886519508689775915642694355845180912982724323323119924199093292066323921292000461623690001121460212128051322419070188137853886233552590282932803471224848197851834367406145027445704751344569358034197254929433703935299090177314358408350465913708604998506786288590288760811157659549667891816756135626714133274893583305033430678792901975974125363909985545935123902957472202817877435579482672586469407597854972954329310809730450993333810728810119100235205136305278431707218017649716924274408857120040914615330595550591917860312918337366894974012396390580770207861592251030276275895202434927904838872345945174805126064892168459759602043260855883632766051210870265317693604302649139393895400606544074758980516994125900606076990402966415622215154431675008196589221846290697379033312394437520946207351566090401295581571809528960905598063269611976583046385815437426377503502457625733456051554703727712879430920088198477890017548044835616906739200953313945097150585674346588722307837235787748532139148140148893118559398244826848886085071679375248337900544373039750818610435002578051530409268037810712593519998935420301498336852734270448857068640330727160131261518183648320051560829883285431280094691974432398129578352754855316840630282756232779558356603647655313255470491976081711071008714518845619631635706371947168020292645302025101207189427853105206858580944596928324421418520705480807827108123891805478789226759934490894115322386610651311476286382132987536257084989253556261917190182380880950147337059383648166260836318769073545521939798161182265278100947851479139408911848231623441151499637461814849912689762438263633724897761242195521960922452395333586262068191979770467280607605799433803298115211516313476826096604968746181258383884805389457581803555313024307421962622508821721290750315203395398819673877523511687736674947535200071549573680103028313247312093022370238989363045705529810968813759910578898144586427940139479273318906496239134206295651198359961641032077573724501195202484733146820873474659516137369128073455622352016670773501467257656629830330150829278881164206778234231831406949726567496619967426636846659874734031627449053840084876217112065325694267098596540984181500343276385676924376378499504216573309148036668618537577579226894627379614008595367833023407237488207290975847833753849024667524409153948914252020125710353626676063935041725055480140335031240667350978337680475090325516041988320853073178609483261449166465136217330907093075668719404294737195402939550846499802914068788467579541236936678081131590672447468638419777390422278629443044289560095277495825396033609492845080469587996852080830012862973543375768668256616977645857554018666473745647583290218476760390757982723499312524662588585302829369463360258092567712355828011940174282945579480690669227402644373542870918173957371855945130454090944228773928375803251184129848572205901706187185909195560971001783095505978477069041106985061168527439787787151549629005180680237658519881110075190142203504205950117506915397997499153854104013148479106728130554471237197177082889231681233984908143493460084722791775463584093055025760086411704153936842595235096978750747112606430124563642645950215102273754153554365752142755403699286299317306995964570446705619159547348367416911979900005865601752658666382298823508929109214907597481841054623517240587969710125741240502720722444844312979872130043678471190173671873050338953569806125891185853689821642322876492785660305234612149727698907783841026367142628779663382314906383695124276558266751349684257082081329037651038617527181784944662109976595114935425391004222402098631272897473881900132071336305104910079956777304826831749203437584301758328897637402409243951598859399244211348616185305200464240373735098040909157665713905723903157980316325951902594195849042016102928508446030169038038767544748096950147639615829719218387276381407281652677851814545990706763954987752294342834264441386449872089049587013365453882753117158321338379262708544125839747690101560360335652266045870677409053283508727945207962460177310126535695154535722417604051165400837223719301363396548581500339125809560579029582184533662779960971722400639489394102448759529912016353241965869211148782299160351583990622082206549171558162158929599453748077633473117609981823915975511749509742587939665898698853551139491398390470932524169602348815106381820995307240802454792594642853825061879101092062893224330131592335807852029575169673725208385104510419425098690146685620134035840782256660455219797081698846478005308579101228260947031065678643163548017286500716912578472150702392550703611510511911309342876884279707060534947831393693003856792541648264514690576241533836335383043839706133036251656619051605989181126601985886966111530907069125227391662463489364040580443821506001694387525950769559692674128333020605822105882980041944100724603630092465921823750591478638099072698741813192493448647950392046072578657233581039254041919425917108234485654586480724713247358020403799913321653573364983647136548968041625258957482278530732690970941903234625357852019788476709743571057531251865787598033419437831711215484148210236786308444610187215174765324110411431541604368231707926874494964015140102404223729703367567578047730605458347558517683871367414084029605212069120257416012694246990100903753167177817217928333663415376459445874673051496092024016034720371238507255048247734442254805280621058886490461710796463862306926419735654818338487099865547790477751456674909757278126431277033659712207270830013511699418938487517363459077509998018320977734292178885348792211149917314550598006525144556159365185989204348452708724552204571979136686906043294970244710557685538262311966485425933685902036174889740105191265959076234246428315162741546063598651086921508061063035596673370442820202763552964509449469551908267652581837333373369041747720833474361923786889612879572045949626961215091338341434616162373113915061447144253104148485639360528658695686792123676157669175211062790209955570506711354664085256595324371785339431322541692444120735033373510975929891475931656509848345163844343868629844945809656554394119838081050668884859039181523325262642604962495097225277237124943535873653463193339884087239448016354273059554143412699110899858469508426791945879580095827521481466071616298937341938192371517790579233915656258662464212798892434360471661177078385335787558662717672912001765518292622745177456550454863702552459224388815245111245698178019248014745074282373485632460344473100600588804493425854198906751464791149631084187047532927248853202236530496097995351830089141595488988627101850526705409331775501705313118731519958211944749537082809710946406369408280949854517635008637328459716023410653523402146995659681525804669857744404912089432696985422622975813754385036045881717253987619533139452270594112801223016409711252171735733548121775527938874315937029202435475331498232210043821583441623453179383309862418127909977081794444691510474378092930832454945390471596182471144422497758840961464183793975259600018321593165235979401661147616569877361831612861142311506994617489692824346257826227874810411389924659399509482218367467114376160887074102091813246088882456632087860024259060415012960600149629234496489906660771206619926709313003128155747826944779607793084536116612323460133417137746369721878651274827397732867469526880514836347040538551333897869510678035170119962866518341520290412900750083918573325226891181074862608178624927437751258497366557270376032429893724071312213564331652416097422007971634433951117560061031257160110751188115815012386526885449130829739452930441272742172229617332323181729011884059823607959989284045760808549626792924391404113111746499837301687659258291155689422847264943297406488450987824882445121413415865386689820638358735319607296929211829807067206036153270274189155214777799137912317020569730733478398832433269295645969304884669678516262300260888219774564877326567796745021144572330749934838299194229980510203522720539606619539611400308184409788009918938820704060435602740524477769450229534493585566601597297560219306586939668973474394532687243490847270726499827304731577357304465877439244632465607324413749113586315461748688945373578043699956358678668234922615326734579358379616216462379131170609171344387469548006331479831231591058227919552742401724161603159818888340885308058306726256160826092145986568613532548474392388591223719984338516773849877687627199836989372713316749626731506041517542961180082982537035756207307467601964353707606766526273373851035358960608145989888248400362870821382906180739969867181074806949989799995761828597501502104183124044407974378070993073437601531319396012924651209842590661068898987930628938172806092943252233577968521526832150986468384328779671344277724019613886917579521812367979059958126436998470382822238506520322322755114334254338258365297399026210705191511513240822788724954614337821249219289877661385585196652392667271134001405956411903227729520061680883392242544411561422088946663513981221900246001882188631617077794033781349553433875455802803734727161918475117406888257127360990116326537194757095049332712117838588094962865565868597245029676093145227997867051102573631598235109129668210999014196154724575131128451003810889190350045502734660183531355348874568775872457881614835343598568686355886232188031104512327131738346350195305179121751313777190785827384438263254458713314973339085529977805030156542322789378252579783108492269081319364938508867211057088268988428537826704024025640033573916211259765460386872243477354847784842236025479658142269283033678417503209362836528249971665809184730572369134990670972207641241396719848663626989058264521834115874380462612431190469697310340335436906589397174794079108275332701473270249238324998065436676528790498969633277124584348658262147264802206317801084680137982730741460688327355318501582156106960944547316748577469537900563298321893729002257642350605024194702985136684713266204902228138474855440535618929857932498760338195101933591469166984538408590738743861488416574845906657444385478260813233445338472024799680395937023408830977980721163924343581617409823759227769822267661207653182794602428551791393836974916680386606088006094076792990499780194367851099449320194122012221831230332144826118440222911276821790107578716318050124080385552721289947511840679742357986923275785651505273342250318442642844037439886020756043515008618143124516453985148400085953438507289787098428784493687928518640844584762626718984167739326211143900162175388696744929941514253171900110284680296674116750224787096655985752354725370629074531087894079406156082352775285091000974737917979667924592357947859451768841265932966065716044061590363930345648027215189351138063489905063744542524527133150275236296196134748139874292168239818939881110462142901381409051777301179307719675163790635093971131642288318732114113756358957002472513660667237336272040551651127801805623459316523423957743379737038963629474305280303071865038025395365521875259552500317857844089292064490951853038226279160985667140647205875620306382528397216425086559588454946596757515313677550081403898908833441412549241211548490507520494125766749824944904231882920661256935737631576517580758297682406052814648928614981127034307685109201649060281891327786236787771477711702076525671966292074003348778262726471624915217487577624347027600693439521710827423953088705910485131773668283163411429925086213979864486618641725783406775596782878347128874677564509678019842470782879633877890384496332148351354630890259482785851424721997528521931936675493121016270682203931345764351362569850542964659918413159453739466845098707510177331259197198833366900925597723222121249535794296775294540686189167511423052752649472667363057215375633949936934276080628828169476426445343671141109062580313884707709397441300997274182505734910757401992295219521220277705739760655046793176718685628808156592674160867247577326521640656744151231301585505715030848817960512689652598864538911482301937574729604438079017693996864847180847124387491652495992227721219801451030870826150233826529757418743725026959155386249075164482927933907833906135733310303763410601730553223764813604268234287528929461415257537037355570035698051142659026784800592777160864515420794422409474454469562803037969616911154580861484654902246542118378271889787384606597785994858438551396881873429589784034116560743718381739226466703662908964479696284827624122260647049930903701940622947150602942034439190829650864828754881180997954961877890393143136648606531907730640363102770154183260952998081275446547885383638064443270491520292362417857036537720283283883024499651089746857167920586807567204566529663799711578679935687232204896447353292682344569695001261276037994024517049894706291029438664660705572388890105085111621588681419308494449533547899706962560028917155574825034926578479631621181749075024727682381844967306723987812515068150628572886106621908301687340098918457644377042587720530639464370467106243835237048809360930985665669966172087201907125406059805184691317389777560121590430210750370329768361075629549365322004056795938718441672267648718448472047114547894111805642053380644709099759994874606042106591786671810224916463416698010133994559865975054278225529095250095236183025105822705982898692954949580805115375872496391057068784301461019675286202185073427417575269807363120167920746548966592554139272170816345066132537942150762298176119284419079407738164907964108212437301569049912736591308768483869666074581947706004521851778181697603022225902659230315915242973561607825640727809613575005924501142084716645371173590855895574042406081696529377442776262464566372466351824254172060742175550613684654080296969522839796064170128342289598399789065931289760211228243750688750395116768100576322682797219486006985497002051426944782408525219018516164001169356022189364235787948789727587394210318944456389526509338043441913150056082544483636862431992497495217368686798764916324387611921127486620696752164976031549930639067534339983102964351947340717765005208645276099398008648506270701750036946016456604872289765098235117945141649663334897426482435559088562517281414917788294424228726491325265605957816219955906653283737350197700110495689398739079107348064418989380194721619726136802369468370670491455798746669716302076800966415703681539806106145167370915603962557928548780924505696891083999240703153901242043117649424214009582259209536424977924910965688074052556605802005706563187921121743450963316320944545765123299099274774700684012219161318987358838022906220108130648370885127725894306359120587663265444022926903351713090785839094941777850496998346873226138318560911135942551869601228662397785732076882469669245911550563832197211872164024789921218777466031919961192968851997295195121200619040462875724076573172048561963242963325984908807430654917005816831997323814862103391188146418632813281305972320788638975827373234869055121249128675335541469740082825108126683370378341161210974209831274479899835621251406453826504972708021494525174109418426007743508280809237077982763605348880538491250483462149119856004209874077680382666683599952552241105266551925818659565804247285443495991717503274957458508417898737423631194684450707287695490587190736941139054074440497402869300388632692038816736193200115088647072723824166249842804599778931482226889545223093407484830129465081793940054881281395021350797934254597578944349668838698574384057684924557444513690747469986313207948093284282726091710661044011153247417180236532454541326870189059629626387950585222791571580395865866848950830630727910388993315554842863253323595323206941570724465628544056819954461533850107094593000102455873834447450913867157819983750331521541078995665873163654370612795873849236030403831883927573477658378194646523093131339397201524095666761697951491538640775001415043154358077298925223607364458946330772958269743371014358835052402548804646440160353975812160205479330027779260649704728621310468624818396373124725687583773264053230823284893533713824888994672546195584618023756535181197320020122446546858282157812271485076204227236678075044895944711311256205731637369000602675255500825868033047509595748821261060605423010457538392498822776831890060486862127453181247204217446315603198896714266562567605472690681393833300617758116771713683623390597053508727910681937312795872366891341391997498731308082090329669623950453974288936906229737688231257144014622725051996277862065672027300610607947937316165624307430164941583818242457142819185097674449183664781073124452578450997894121415050307912404432896929064398435954266164935940146829336158203764831682542386647388865450311172427707105672341717929811705093106462000622088709448316919371302947904122083310481106302104971590018720941521901979474965838451164144121213242197152937390209074553091257331305497530974587567274409530709434451449455967476261227112278583914407182518910960397764962996810203500127249392346637709400883953224099920830626012205314221853843944969719123616416378644826294501200252240281000572692704915930388042439587870872634409557429278680136793090491394559061712246471190612617767809345998864893198416222547505278364431327499598144769032890730999846650905476360216790449844514521174810170269223404398353663731917527344056593844962492626692804892019512137960866436724137567890338744162529787732314949118613839430057163800037888934983873204623615302491420098173613201274718411043023620164849114586479045386738108048208169391623785050244983755056061913841094293279592377229572720448315019026776503458676375659419218845861975035193231086261017684377854588139455235483734347040727821106876527813624306295969886068858800710727430514623845597405210116656416738782101932941548361562297570146206167630733725292280018572908351585602900043715517017987224999415177615024994859699488710351971430746689206831987690294675930326819207218682333465442984633905637825322304149068000787568274426780298348190036565517668210475478509331237479800644795622811205032401552853414231734943037778444597388405960729823465770633048583453366200948175256756541373717817376741668740541309598030501528960562942168053317123293704397351145492385026411009906973495321686852982067682062396299366353758459540833328353638996277713617934242840161421938235057806207527769010309272630276190438030078660954960147426360362642299577102111660146551831911151941191072819947475311459711991567125280496826279956128393188260617090913698866814922421306659397173056327206066667144430450064670020440982899175943096216805327803440451389315661610071961941136520335980534255251399185745021100884230276606292081269719853725024479147037819583183342698664551830434301911208252033676190779419195034962468353677391314227985656536738376487147593638943125496208473497304893882764451040617315279096032121866734262678280772972155827480188985888641364791606564128690596989420327012304955207339674675408231450223382265019243428110643587704871142420941353585533575557582469887626928164306507800852185529006499793869170703850158951257718349109124095748777220825755078705702613728394094150341432836875449022914298419825820994783621450419593206268306001511029572682502664509039640355787041815230733671499065376437498494492055067306677225476615547911916099906075459300742043180580832840649586893234162669679306631999243658282557184153828176528031358214580289033175964607523655772688030726894191041916655515869177345270551969553844640704098742811587815796152313038505071959545288616038683653724338351349695229665393353055600347683054184427937542610611958903883723141561799512437930481752380958724384506568302925309219099340375247881353596027010262065070367288874643569376713636788555009597515124177838223644778967402505054727647453278118069015462056247330750424349225803969083830743237501488853846042051885293211657948066119834159811693177643215122994140889895786234413432988969246192992094179974341459620402710141531853350291148792939623766951030770390303931491232030349903312972752326207275263613878006423418564760319258480228040416548578426939642407660636872743937998767496453664931119192736343723036955967598579034551226135532763056046708312208636024454219643226509626111851617304306534277734217394512932765336400148948599980280000039326214096743914466348487493832642664035327202149032348521720531282315704563393546361497053285253398382916641222123007308390969814614979840233000615578289804693527468372904947410435835453916010687378957538783755450606602872113963445369823366354799929753492190586873395660742143452049203194478134252941761499839584229350218935486572853749467334897472533248983342435793844853831457378275283548599220708906263802155999155586428090414461636479655979430996756204104989350205768491201787037445321777966961729367211022358505594210525526539944000532986117393482244562232763244050014906017646114400645381915869420315509233157399726066339343154505522542256781954605168026352982084020850520212441699215712480359124383319370237155180798208720839738450048160291328909073048547439025622214176652471211985835490064994688599685085856996025767930552991195990492379232284591485422939275438922215806846457291180020444266895495319962705320579918366795803572944351405032100058939578929713544826366927361294302766522121726166117007408191331457130570392891767367626352715251581453139277942549347843843708736122663343377812847975111769356220879717773688979991926702848569011670863408617428904140734110075923955381002155522229125626518950478425328053395697234576318074166586649880435016115602162728706877045855878678365914351669513198505718048589827689808548686224593554933843312994390414429989817793861784598521557565894062524467444659412397529278621549118353358298824539045745050329964190587888401420472492485488021918745656233458773094344266553668724531673377302846619925138706811154482569696169258963952514884278399031356674488038377955305094106118783206750093849940834536681440691395368689499838802374585401029447510629520938009190199004389434898560084064326383210845245005682734692611196748224004759304399355730914655623593930761307594198582358633082162221600822199743306733368923131072609909279352004803292409776491169110685028473060502378023313667511424308132312259160959979785366345135323567972742600505812040831376004405458732087153778362963526746760687730173086444406134745725567003920946351019194245081266584500784653836074908030262216376969553657850473347135120055157912850392776984307804863030743317781680089312629154578024301122847447280750703420158129777673026271368814343519245629566583129408818327085027990641625426229144962538381029251699020087185334162151633639129670937328916290108930480539568993728487626693537900098465975163266892339925400024772490139040540748728796766578866798180250774633788911105998959591104832931050670600184408480538437970206287456028345484277301779346868313523037874097202296174791815342561966955536376135772544289465111525930661646885648348626101379078544566560410727107409502671558582144344467262093221930298320443322259128575700162506257697138406506615934576032202960408963961541180196976739796808525779524747440150813850892946557459082769002779660183566732880355191471452938193769902931397723974067688351011809914264043068288525816515480633740061943143997943819304767549243962480205072441628803503332192456195283111585228971037838945349733295986319801500656273353902390764017319723863577680637133203444780373909386087894219679600421101482858755400007114723411230695716386217400746768299385437299247776283174669298656938586772536376156965037305424846690325737588516646246106986284661617746930264929501073724058876527375595824378710391139897303489086946744301766627310399699145928686617110271382476043722119575850141019128087371610638256144861398504914265460274731645137156685771204378566212316122622171965386279540844349019234710840257366426499204627477547537760465487637580385166218961032072542638980563871000788017387895889200918344801572300981991897998175578949218002266278975292554162818792334246247137423051032564788609912878185292378030615980087246465257514983642571568367422979332065991223826442961927748159253702231474491221914735242375881591792952380137075423674480203105938916415067065075689987414858160901301191876521453723067298040105489784441732463854786022114112055473457661447333711619752752207254027185402937190015420873533288004761125503232521787471573484613758424262353211062176187313805219938645532107598092911349189643086226651138256442697053996483680510434148204871981623776050838791400767656530009069908371935882268894116392875327647417423216440034043694099582164273875339802986995979641986622991209117591878857507574551580014924964975268486672672336471404153193130018611629584976825064789949245757241294757036867507246804444105481024104192785019695318963500922436704444136048198587208996988430788612760780235659943148290731134183870578682313680890444351516828813581802339561590989171024508324882438510553623571764374076919831287565761142655981984385328303796069986717399409914241154107035188593016992623137570476545762830407089737513853718667444949269340518080918140750623493428419424036335079193350030162066538423731158267453843235587610596993391841064544342988848012697265184131215866493437561903289019214600144852007675571732160206664472049860289820531605198621451420035648066634068830987287741323124113256524912769758546374579243747088251013969775620557517586193419595585442533568714375082201030929512035187371843948356409805945020585114214334614342320689175725458207408908185436043133705229666733645849228440132727088724485382800868806462134267736639127483517156803853703597967383178410834932053767549943879835444010728209727212522720538542876979221331193881252412864042234721044709096577637770205857676096944407085145064173160254122402165294631040132680042386876556734137525460588810262368005852747739590065583126637080535159294997478335995604944417934616852042171216313124543192272855122043408151299361830854484454687281266526057392535960387336780227923012549089961396510036269024830528365500430460678529663722731138811969712666332399343884074697126521971331123461335204678135858284701955423616119995667066367924438429620549005865389018359873084295900647652003334611692385658722050700874409620923605286707417814457457771091083535217806344547761242130910397876968583903854458545135104760816384127774220929837821960151997049642338195231456208980434674694231266669989785461332001140454942989553252972149104537651078448118327482806120651495581396450444971039669602537253314401141699711540688841063209374346213235940996832281385823156265047153557537452907747031603432246749363705149051944441457055617276297920777523883498739480750166285988322348459661490772585375901484115543879763111080789242526236917970411040168762195370987606737255529436801188115526093827717930481876777500508517172582253434201522397001579841336572240097744628145767431286810082888257313606107602907927110550637564352016009135890455891136839944421961685428876331174710095069482778050673816728551969463492432460424607861399155477615915551195444845689553369449429614747121612930364212497765944163241681092994955802383820189722142300693123394099429716551792005466532022844821800931797038177402472555186000782861657822552116661867499664842439121941252191617267592329327895864968433022944125075449073488316304373371634177933267892842797557584592188930376114873004531543419577668372093687068046819560398426508403200322712765563872551411196654507616456554453311713754140618059778518874770765433400150654072911598691036588978140496953323782715380726543149377445415225983674026805488274349690914476315872719677915046629252883318067331125187348344910074320259517728819177281228848387964441985417112580513194829342456506773843126030775999968902801075289224419281236888177188969724738665198494922798345630718762116621701181674933263851688238731304258230398232158740819098507338879329832636424732271444617720317209796534639580034484061983548235343163020844550724950038099235042768452918412082737801687862165493733058049256035971236971175409743989424293883978229651650934628395548232966087716798304605635980791260211459244364449034965911094713671918011453571048439339504288094085929631365594364989410422015963633410852406647733904185017724214738992482781012989594622958612595836840495841827417375185144478140877563468501007950027568625946005899187405928330222283011865389682370406613232082521025391090871045322718376620955541953080593087970197884403495644001743376933769726444554719355534392555135370785875199290893506273020784872674213140226906907728390494925112087236015351043258226574272056241245609319184986209206927812238904853725414262677866667853789838612396080374200961829854983691204280583720137044342380183956267929211879854723352108408820634059573964316108753605199172757702287138465920394267821837496675670907912147765371400809912663473103689236455734109804435765636912807367564597478946378026112069783374678221522564165558769383338083505505133099970188151472890099082990176881068918561237246307941816739777185837277965962214163518370885902827215836880448913891375393769205253768305599201627819110838534813465207767416888043775750847457742935907001132193177736651177039993078954507097875002180591460807913200102361743251078786340157195687760462964379150935698382691980213076648357861945744991944243890621704962642966086606241361605037333458629052650451018676237832268588826770163015534585304797924245068571628559127081573564367341322431532449970409925136635585953674980816488394843002714707637461524855252271045124736600310041463798887845704324718403481596903912650900185588369402034255507794814045997225190835024041355317999847083426589069969967459069848373037053384499148347642534138817066202181926702377967637097573771378629562959791617932198771127546083179013035787376040223500060683599026396673332421094848502200811666495130155801554837073750207488361140406126096950572313292217380581240329398875845408934475518852355592024780617364007076096390249254962973998771415694844036653199621878893138817436409470005614125707103949009407935075531427962383187225635807871603891238608445251466774643970566709158121027120446330782247967163957188763396821498106374855119957957291303498274909408805903383380023720622036272703990830660778956672742835713938088875912689716353492375767188748460371295055405799211657893312068792878290101348767600155249479026322933231173136912155191716396954196889962467994691757518792229770216363574717476257849873965438251674773918579459037531061784788625159351094643644883151034518844793934969112500307882853472797463386311827864442926244122400904922148578812532439192606273770574257344044256826130273692924434202312489077729240390399901028004150915131249370048620130612325077092740500073345086980022377588931672981249746656097140158796044769946745293506254898895196938441948825411887184330805147997002095241183013549395365242045049001130221130476053498644206368919631133572339554844171894529214703309547189042783092575187248810451587061269790345441770107055607874756044738535652688448298527940728031867256712888315877218024897812074362701140030966614538116589735688027394191400612534676349834882605953412492548753962470728128315295473880855461195761405568609194155174897773691097471330325856812435041465019092825204342653961758592832892993626738775730582619416241449303324728310368311854550310486596338310090267252119835355398773164596145611524355319942810291101357471803330252519978927266260033292772546843717729473732544588989399763333606893489608374627525480955622242695809194645118424577940943938748904406897382014645462609937249462247065105443013217649965239863933435085118084696669871607816026938918274959903205947770910684239541592300623451875596967890690915164868940864004449502373699848867240825713003008192114653786727392035173959428653909746539184266888508261546794608901237027882612826106940360132723411172149700256219225970535301092004477615753691485824263466798652790135392859287967488242834080040779192332691549028867244662015180101338996706966192821285088684858837904398976242760212112117861196744521166935109191780907091800689326194493550357034461073736756754599090339233190376685967922708129390952879807709476404307568822013727609709896718257913314527017503214268721545055103811608163625981985327942475465017089528450902326547095419416484604783884760965091757285886863966033354936829153873829814340323330933301477761873030584499810881713209895871509531697090383104435906448778091498479373914856528295754558391758917618499753452592487267014061856004141134110765088400823674109399371408289977754869281877736209295688173118019456243878227106958921845129855808802803895363954827509127614184965918840131174517736435330958900462578476279237365089749848477969658946373780468658241157412098693801034687790922360718192290764321737357190182349970766126920360070798873235231651472269379412891579386742935826864742038985319147075150186169186709267221037225455307533033351262605374039324973248094402518588335760081047062596774424302140148405817144155949614505930408844853989525724709894521019402380557584273175578585562180529850490517699828209348368591037744757681557120915566383583162982341587684257867984935763116684968231511935741623846886597765218442920930102963081555569163501391212663356859546549865908110552672231272005011335970360711069291458006109844000665224196802356226320163854936799808657917881969137318694317182801284918301076699726241055515245502222947629340727735049739100436684257724644606684650809328257244170629676645738549900180461723433428021442702492416648442294257905672907481295644102402311232290291390392057356105334025937575877490040226000203446983500346284659531841100635247166781628767779941259582585512932930161723431553225906303330408805375056185967943681739431004838720352346649256715319383365393956707564663992465121674607982322476915540099319926889015040377313007583851181520627476011327231055169321843725239538968049030589961510040439766192390130789205807507573233895181540793231394524282645610151369535341335546351961790650513311584834741862779911539549644312049591249927297554354579703264016495184641897074673868247278561595434649570502296647277292752104301217403673447723628311949141196369412178391128815925979949683114640827066026559775016114210452271703392331056443774724091462128255412862864767553711989818187507296618953688794212762423354298217228481424543771898082178335072355747255902111438562541834673628647435775759544590783690665920882796426868834437669211845239668232485564556667544729937430053344859613248515459870551302168706689297963624407781619779218064500521299715746289364424870938022667676864268958346009018722534368613453851670559441700006995639628489056689227659130683240719834053525124143697940961192089106124585402361025953654182623716477234946362241262229211170583097400449752377964268891070205800541506550254120368645134747945591223313918594546061070547460854748488781727320022591105726647166605501157579889430292981316504432265848194688304461144142772480549206897302237215480082136436002552994952525447361712356499721287879439282129531810000580723838776770569147634787410069847838353100255669661479536913496094336175133195473801800162331888762651633839521237808972823540266538394337488940566948269211046956137126748736494416993170518188379735151855651060516085641201843136137841793080457621340040744567503408881961851427721502622690302168849709823209275544414170025258420489780697268112419069283018222928840334991378429525653502303036031501586836077831579577372679427745442965062555466063555524517600489809333934348000139623031889058135617817030653104047354349459569274996811069516095622164010283727582660482683525491779070847338195865580171196108565032453701984073045969167946529852988619987795212816918295836790583890090150110239128530461142517416886536124076878986018039735018346203868949303297026231828638022568143024326154743926540637834613451889090192927756245362574701607071010271267354196299606192674015766329496830228410987747858565265748440495327841702089338397310033389269350079997792173650892654002262130495133240555583477393522000414511170884168281964952906024833282323360689524352907928268463023303860605957120517981856942549551574204434719702579412164026295825030630534399499021039618405337379422639213452811987757352451760895883904588103359148961861723548965015378945473146288952695819095525294718355781704771198074133721155485062813523584357905481699465843362578118797898044106045453724157500941327411915376426767852110651395032822576428554616502370259604412658123324407445209260179344716562601578180232763954014449215734424122871940226352761564962979722116864488703102458008609517714844066709681989104344322012284542312309266673249443007229614130303202400277900782596132611082739067455744500222193951963535762327426583280392777724727240534795953639361018806397067422515437995817301485200388002514861073830978299390808883423361844216257978097260919297456667165815384155684683322847533284818303536747833597791294028810039960985620856204590796280191353581619533575234965495658507101437749693694334757169473682034251370187887719821562552614855546645405030165301542114567748669958204658554569770295821702017924981992971337250887641500946402276513350701154796726644521348823392984373309516977139156938901436396165718346834998470549847968879782196657470952496457929687062051754943694129441607128251618146096767479769766729148921795969552812432991748885564269248129455448294847240364596322203927639930035446686288110557632680064140570827336669356336944495322143101937135422329249318058499062905049447929523908831137046439426601288338228967729237423300189869779627867111019516813736611498983301610369589793048080825539372208410525463374423675559943627446511301045810249324720985679106193520981540597436822777814039084748616129558529674484804846736874054533980451105545348716431387997695325655521477115445343943794988900272399060262449644810406200214627432682138380518416626935569900896969934295987291103338511753953626155781136294220283751584116680003889602686926748050980425729994993749205128303114510817495369234466379538611630137244123961380797506147824719433372273759030875171659127519041328276884321568537438218971329124864556088580951843660652416444871575606157389647378818532380081605787300284509901243933090389356775420520644331190326867099407937018079352309399098498743625774462969796459929725726353666498958240514011130965157075958706412449935172373101859893856841690003317025575497677053690006502578262243043960739709083191499292799455750909773801708159740978322416387017264065770549819239441454325644704978886575070547066514831914633617165131935904397753614381823717276908061046248128047133451816591450072617551114361839620803448924246717293398258762532101090301663900644536011949088148220184581910668793013584912455196665961185418851276991408019466446401142932062362187176363614409389279053505970590574677999415747722582651471875005042761774134850318519141209415755683018258090191976768281581523561802457968831588925775959308623231946846813069534776226530140240118302958024329435112071871613074223932040574394718253012538354742321502282615734411690453003978333646440327487817695687082794648852634022634073702960970515349833662655488750685401526266893765710612063550179570838280707330109128613182449210287173888433567102953609690381406810599418106067262010549739733672121201606146044427994344262861270565528703395659936245748427624849160857654489143930218430182743371409178637883198083422739182583451215372288696693731330223726751641781610628395898445545953701900537090059399774572813390754557537226197966949071873718461282053411278660510658054743298995068222814493234311606034548447874982697176309984165040353869119685926667050772881897085658338269888667972432436453274618178013225087164278368185091501384869161962400201443582290690098566210647714698675001426117320858619709466941076658197592589901770880501797871531454690072450708980154269360219768687138735254137941138048201976174241417682264228541559907589963566410776881327137657848624521630611367766298322536016422950539754010050143690351382238255239868385778459869333823328918151283104955003937713626522207795747276964897690330798525822924728179043307360706489003033839557867492603024171014606396834515069476169715653166010764693180876345919926859091973991924266636690620526187942662741712703723372579710963531086052262824178566950411452220564508868976471514624967301722896194589939624115776852809818461611770573298174741135430378278485844689381699537272232791893520379041963897537463106853459462187547216684729490695787451627820180614352110138208208713975103023315447356083594891925539913271994754593890586614690041580859023461592966153414039148892461094481615032853644299535543596037224543304638983431511041308873633461171983006741018132412601940589313446391617861005851794395449519266930907059664368523476533262634050466753204492342153436278073951557909573581499062164441002020263751575863419921633547659153947711946038897707305450562901622618366484964869489802761031398290134211106739890670194495734673831130511473435018242914286501737749990693258338305383484541730032043490751612486132283142560337915988722951100413221101967771425265342993485860888382735179711743784898280291526513297521616723103469731718134114430958965561690067808395741376379451506791745069005543641208359011727438189635057515004419918521221977803085742931238736763734131206860569070432315772357284844110744346206195533525231968620299287105268501238294065051598266038078470693221786110245800773553247534836944772200749872732702257134116413443350534674774893330278675986782486059479419992923480482421213014791075436717913041589729177483953259684113634050414129620523315338330128543272715666809936940271451754676535740745529659513669298542635637093733051972243644230987663286060175214226410183814993783527228024313628181150586711317512810093627205623940629022011532629676580303522339587360580163078201113614808935671279988153455718850223866425318038344642059500429609772457352866257802855999732681734102128751931839585523125542865682023751213014217871118992409855105644135520690978893036840601215581616720045924047592630365169444751497042790235746954038563230467690616310153830795497107053777288223894678569793562119191847323839184327574390978657857798086619844953870386669887299202272484325962135454881582747614652467031692247920918687782115584499781921642665295132998786327864174763043462116457583781176227269155622337500684576996048206396618139670579241531275379991292652743384072738120129512127705166635751188896857721747197391447933877979226589165311553171550491746637493460636217127990610133166600442706742176964215987738578897335450974361081418780867179659637771320944291333181834740251480764826156269255201229434002822055490563868152235709716059043264170169663445817243503276427422705452727785976462464734446919890159962719436724973255925697485458395917926668619928381454507852765577059911954289563486787471764102976712879691346073790728929632845595639630193923714287185631830707106159109068209467056668503030366572116975834223779955798290746936951856853094159109155069725695010590664903150336020549453002935118861794074119382226734191139151972636391171501721728664711843494137718983630610161035996636389823486400584071775831765091608219948438320368077372599498000777429424051484355309164993951137646838513847957412419873557966036405960284379671388253542467598386822992268744576345002618473870779575950459823815069177601446770735527431411387258317932394318729154377726122628843531111819395079216339267197495401292439054060533304732831179757117537317068455374575955284170269492341564173786868982551667012834426176973228810735919896233115722614689666911375712273534172301778154225247998112986748494495790893619474267079436925574407661027283189832292878680282161317111113992413104467171291102312932827771623900253615771092516489676032200811080934675642618754061173358728091334635693252670150339573802508159818193096910078405921531614396092205634444540752051481424554724133826089038786964557326442836682258112371368892677004804021508592268066264032008202644609681134429270540801182896521743104761172937669090623808140325975997984372616731745059402380061366765926416982116467155159275486830587531686775107346001457928092558661559855434338262061465826362770772675631369701816911688901408693495623935272409588302651554421770037498836773778330980070377900263403120658950518900895264570066066848163915010209379949918985005673753426760637501739113099394044531450344635722473072015713937318324164600985875850146580487060307114451335270316747495274815817594251116637721325900549767528020586725188051971792570239362817932427176134075737872403153658552592123503497351467734853584218506921622107116047686427123090056841048283331334246787594328633197764237694774956004215651527302686592539280193931672062067879754806339342160738462607255100227261676026443927483886246954584288319040416297674081640740531621092985033385476989989213003095265902251114613594681253916018944012230807956617069507665736036102357680484134632186817131887017581865879592730551815367229188770066403193173524111095073489527967070758201478536711301193950534057687364346038336705491461226611266763966992014255332119710659258762976245105757019607610807388599053110280355286223961796059847679187260990070291729383110671894232184035610869746498406785589910963864982363183596459238964726204401643626559964720533527282010433135178598065711456019852127676802788900429148397849158872378070174801637325679088940751565267008326120731998071286724995210527975828780136254332134733657958640645950607664966458387754755334605805586415760823386547733372602111291712974213033206779937457388786377129395829467672491378924352734857258128577851019468191639939290347852709900974212862351776257141599507292142819699106573745994765522503229245755202752867788231052017067059210326479901449843719843953277323326177020774610471884595807934531890841008292319039675668242626838599977805958356752015546895609152008442107897649256618877885697064763709874110407913763120492926560058567776531176749585347968471194981618734211473993021338213471847373941740605663408941091894181706748688482771558134430352817614329901268464646400442060183298486135713137360532704454363238036207776334398075524589884557181935720296584210335242948050427277995398924965437504297820776268677806782980737149608832958606618241159370218316552507477726356793716010645063911672592574576842726842992853473183356699732807182825941577806100781548442025114934685738886709956758194876448843116290814644541088927913418104126979063639418502569742226712702541849068211290754915615969052142575544975805155793802507494554182247765446420106679291079149601690519559530634166451987884723497773639716677219271589183219714166469921816450258358561787007313732308175965261733136061752442066229883867577369584667533025050065342881174644961604727175739421754134945010926689019073103634521904210901718579069018707668384879273538165863106565341544608641082754078400058349865951930704006604590595451245170486081345174228701762467310948827176380336527308973144791121316530678608296028569625314497817987608468547109715653591464073736096436992671780482821347059014778305223721679315859431509065670249448277456079933433141123923804057640546387217365914642417924488903224461418162904254193571339296450824887126258755657641395527298463275855233514994245588305502773772851456122531344674092433004636138444979854021720580505993739255894219027355104613525106566571347540730263368102151180668787762202984381503830614840002502008052814913233697897179960139089801374182189707388517629539440697991989379638511024502387317260701809944530213060792989369683526096122706063812410201143956145125300470913894225077645098985651277532746346246434198614395688788932465621482316596083140626085263577837655652990216639334934831153804722452637148792093868135313577028792405020025964132335180734478724328870053076711320068585530629796108750228274526891407624961093577374684913783052699862090468815174547217943707258855186992300346945697724777208089584864755020855140422836383096370151708846952831002191380418982441935799715337973378708474341775130835719687737277383355891571980151310814759433077744630793119784170507275570816962429594063473974440051296895677428310052518474405967768887188194440574710785075382130865252798775074798171404432360136445964701672832109715278263370565272816030226930803129155130271188204147406066368765195166879341458273767096451744972198325475164288638223466911948170730274146569549299904486042897525484549820733652334387638180417675549786015999828884539599098774687688800136134989992932975125167886947287313875265164151201972379842626041444778323310815044962201745888273672458808226919530332189359565978458664866000226682915077972566047670440675643902044844062371105249030131496797471475277416704033089203038698630338890152664249607350984909492435334676303435473807452393803020137378129622936458450690183913500579633171827002516159133585424697895637571487412995050091119309963870405532960552901565439043683281787652057793210186209898773021386732833142872177161801367605248192224279047288913548410626121317746112296142099010026811665339627084011015298021992457498728520012053065935385210918572881376464413757417316048854114760264951270676258586418296800894354724671788780602596313253792360366650937833610809616438724077436023426658172426900307243893046115911928971131613237699048894217546029536501494243709708969034313433907535749805255955629186827483607231452016905443545192947950296380507573355607168962198780516807137359414370750830042003388418244557183185622454123250207662022934236558568242866002883264979013216650539281764758771836765276027376645509454427465579387064843470483974501816981603374790785287959504808393376391337802467299117890870600278383347066810742224702761465218146171237315888483092579184038185198239353668088892633936540302794641247844186845475192520574769591448105178686647886174570766557947835319810491157175179893159803028289105494062878097374858402162383996091356105160674825364788000871381341224296757998688137028418580897091620116518255901567125613724865197015486242939560383468607384817621080894507686521574749192880339031098502468419789722698135467801979110959082339355039739195198799759141492558083456512953810735702482097011647277758961670201279630561864386192249220745507147984456430617499516280736216390819508663307359592620157437714813148904714049469142689152091516664728983729566622051205809617564105656720768314426839587532959464271596569588280785271251135516370870675636598065637386028818524011732397930362348389458283606773233806482486388602762898217975831903837295034847030585285624832155425279097827684993799272627230020112973926246718503315079381671611510741466241455171952457773832784157706622795741611185214447270663321810482580840270278528808109632214408492967455834247864851463982253850093696741274003431890306414369121498626652361939019629384814620834860547863003888189417510467311628242607228552638973825820950496573192261325986140341374742046693720454813898799194704020547267732788006810755759062542931585165323940052708334187319819864306574859095577544740761451420722737304726855094651824208748324369676805508266712276350815830025416499435329028512951173306885128763213991574736985430461753469123281572870635078592887889890197370343843970497463405572516034051058784078866163613812331849915408042819641226647976151335825203004930493719098058653875041228403404907028373835482805093147223204083863628409419110516597320923792215827675848213576279935684290078871853061939185447605180348385982641315938907415095126399543874158949338352173559180615484209816747168597694458746366920698516271144193478549130116046627481726450315541965533583575699917358718230886476629391015445964279628630056054265719885434364066827598218108624609111506940461004679029642570588441546158285991800149828985175344251402578392441783787674861188744245386052204574838832104243836205216448572939642497813482493591548529990757351570585129068695726925895553991577865682782610355512406348535183640441861723136290459755930398970057503122399492897995232696265197085381888021150224211051272289799056577468893795460372995150091800813818267966613554314378245416346496376914084450787968189992802478351870944730195128310511291956040605334346644703635303975178574947288594759649541164732672999382223074275226299505073928090905341059958859896615349028194877410696530610224714958008163921952807171439510685262072343794419361904957731683803842718434888373307117739057941871885137211238035678179554968746579337493525365453680507037804150533742986057950642467864056246618585328079455260966949956488759698093995786290179550959022646674166083499354387362766420837315939860508902469043649738267333192314728683951125054012894957354930902360854779765104769917209926916681671719507102860867889202409840922611555724450789297611918937144554575794240529208696057724099234761762292812927726628167807971811705398593786953248333266696843696408086052222021939402739634884214609739451185686063687681469610765637884932057791551592256944302602273375286557854185291590191213706115018555981068098221620431248558115749223710503790566090048467180873796319247247604164369113494585693787801390381953088146814052775274086834336712993152644632033728001000787464750201916063158852781359598200345265449860044814729855323235751968046536948433596132119228445869963072532217166579088630465958518798263117697525180823825239456470899804583654807808166486736708535531573492523024134022201912226309730422322980345502665734645484949893263690552546343743190941794508541913172419473787178499890599948347822103112580645944140649534648510333448238815345885286979130777676873591867578171454110263711751884624192728445610676099278729599378409086119481487432743528973325335802810531541537953891130687926147624530684513551081275973142795888312608150206652601268880666090483152805643304781419034240758770356152167066752237716597460824333917938998426502035797010055678628876567838396338955650757680610978529132072941694708663690441255343499372760743915575186018049574898781963402879553871002653510679954721476641813681424917794980904989448018037096595958070498700706933996855024405744876794503287299386364071025407700909214257207653097458194744306343460536099305412661263503650475710588823095417590667103202349726768311001667745914427830084948532008370471483705005583587468749500699794013091654649549027424578359147545461379602434674151499648098199494609977888643814323579853704032009243677240307294345009784344424846308418073515007637610286801562800010431002171034152725418342335616240124048380126896509326720008817487623833456407079855902753663011536011589216801018615769151142810848102513967851906921536263610492629851980449092821502787210001696666775278471073180486104927726486279572572860754026513734558623233533373988364941840696646673914704246914214751838038966894584552836162835404234973780322425294492650373849949368146721741984911167318544931466349195507253833712949370637513381299327642620542195468067788441855681765373198173486687640093741402378328021789565414274523718468561610469275563281349545408260127043167044567180173996940719694208479691769316875312022602418922891725348746007697651167881020535790922959423249596259678765581659138724907575351746969204891182037435126005368197415434326225821180949641520157572256883185301003622380744617155081970382469944997189736181317306477208332254721221462926158135556229584872206856656158701367280435971626284931904533170992062923327845546101635775790775938544812424530057732322756738026699187649713685726090776270553954807560879199202147371035722004343164385211470421135031469373198004508373981737990077178819239598171757579505457363091849205785020143078012895071258591065720972759117877090313506680096183257220975752919854343736144888073706345634170698285363303389561738013768058451019272109935731628970233807078310402005626450332300849719047597724027758389179060011612057196208000109674628943439957651382896602290195196648867090509482238461868359498597210963746920465407203680354896332256939241286316709066789311600004609441307426022164352499463212016450465484964973463011305854929110452358360030842513910647929655702529953307735161855795243277225374197450229176818764444822319639793399099419542707058883467074447204386040644162382107163963453069570654545802708876866782582668815945089577775906393916412599870843927685113626245481300880274413750229409726599525921198992491591189255798010337914019172390634813101192939128863945362683787667762743293615287306018502738240021659044292657591783569466110937184902751887451506994167556469088600818570381189457669217630775620133584279957140024888594936847232656892224290364979448027055898777369518488133551521173659511928126026173587790371376056091346640234185653182447089489746502990423788739423372972062770840187461755533973838993445438031648922220304458038662119556016546159168943551571485967003882142085159551739585491330701202644028119155115790593422370718992392861083068988681917172986425017040439432057174661563960142008450249567918542757107664443895536234062400178481550963496606581867647996715212405445794291572085375794505452789286982624020447956526514192414303600788833380703856016382325201132333964233423433224982773098987748130616642546611475227223624455961762452139013721422277293876615115336486478266826043433748325120798255321920309225500268797167464251990808945126016982356645695041787997129506331206047380633537064023603099751830350020930707428344324229351452971150077409912033067617219169220742017102878860652227303833293533723332211019462882740387363607950411195569000915123465419617069236502906173650408219558402752842119989357672685127131024546427089983704872251174346220681783104288657967309819931315201599603149276851238516208792668482652215149781711371391747664034617467260800567402757426570470711430126817959565664900984038103010408806994550085529757225610026642455523109126059901066678397311497261013609253995344556292777515218620124366592450137841914456733220293751738813255604436569343390902206879771491867574956563764597220998675332705992280870071518941840183186071887906229881313523420712741465620300403686998493487357332415936769358073788849616326526807184520550328212477423936627701725155688554035383619783184601342355082940859965571544537169610418469355422706766899463996226808717379665187108486295617485598262597127448260909010151109882845922519869317265357139794559074474780680958856326313706775671956285498285184613585604859561058972687590784870957265601116427172105209947052714925879022443201631288717040277941379429048395749849131978504831750185831829515308240858021471447234861343935553613522015079532075709316564798430941389113255425202275294522530093666249355187076395383478907130610588304431687619606340451443130813961891377034342321769442111890468157652519702525825402743445130900605889476340816361132170966908138055858578777931080295289204246583784365034408813653858684594738677245398183861405729632645366924928214451809135246494004286308417823666605207801171948140762809025113553247438303213575710424578396313107289865862468765037234864985782108853980895571368005397298015417801388770517496597470847841294943292192605963551264808507078530268812338238636820118838882396609420878328251232147509704787348086613160821814882624746724751418406009856189502080912527568491479695135842294328351171007155467428023594919382765694644539892286680403867872553703658372529177841937721250450940255414277259220034168139529078627027857770831426841352745915282285532828136235601493700356502947730098629579784785958013262960831473555713262942423024721034765953033772501252419725766433782942917694100158808614135061043506220178971711884792923915634360707377546781495080289261051049535292227749349817993024641825775759577851073132846558502388530591567087775646516547845157174235832419613008815405997922504655636998101006080136172154383464718436274823003658646536202416621947237534392130024609173567128005750721744510014493650730020850372479428058851063576566160052006580537831919332614513977302127299418781247846776104578769183757621801973093902946199416139278024680321835722313678411627413530139413038948278011387145144395038383851386438772668965638769989741503026800269784674495917372155317965017484545876343675335201805934900228593615736162883916743772596989935587426199707911847163787931745355933816704686855368898844702602035991435824189566475842083680505966934535737924032303348882635217300507244802401951202581803276160848938637720250824473504555109125912359439027784317970833844095162295320434247640026498830440980877705398972083913307610485673645452300536356668925057054720745601565663981091307960536872062922415134379537036636915162901116433873277649596222449783501873250478632822037821130295904635572185054852578556103130609614900583530597557708823773742371966211462774751543636772907577793182442177612980007347224204327170388809202936145691292763149016506190623013098265136063546291655607801366588575622063893185271070166526260906300891102131447483282036304617311336376102682356847723097904592434124817863258752498750541646413350970070697582731496808491390456655959241678507797516861811726821925776214010077249237764111102473735233960782863895931857987655051386674877015892374515984351450464421507065921881903657125598735982861691364962559770507466203593497635797769567231448502066958913910171478470497981107820892612891890274689914919731016605802903508945938953701583320895700386503338542356437708835893589581190186989921203422006511409913301385576564761509937292124943457146687646151128362171118534853920199817790422009569541279485304815360073480061169031079517692247399074449238130340607270642840254877193160488548186448787223082331384683437739711588583337213896545375352071067055067422953026947310358374733301763465719546750734201177707532215972430253089247957817105289231759136389177967182022677422972851542532493613380385183706182277911391293185177448389161785548989187783684158876467429313402004352596195787847989869606381228398644825187677452209927504234730352964042847180464352877985793998637586805297353133862071095253383691564702703361252662878750519436945156747675391919602735488488657487362154106597894210575123549258209772709258994670455775738710462747587548223172670716393370535463202405495427674825322514190833759173675462195464600786588879178717801870478213730388545225432772829168655594486077890717743399249168286265401434498833351464609107764223219513031764086581175788695207286447659311003190094347913319284311821031480275757140044674304921494508466880315805903499656268921336803190240407979117093504314925769127635643340332790143489158049294247767666340807945180994066763779514086272029201314123891911687106683603261016356496886252186584050414571253579023536040934130635394549814220789786351995954274849964746320679423234651564061832267136506479058423864208455257672761474103473942735412099237302624246888196499215743519764566666683700950449834762449174085209780625345951893727256942978429301310958775025946236273940171174565508817580614464168482553977915666957367481111311659775739610316262890942276880051788536400954149741091521660264081615817347699028887108037400294378779213298090903430223835454690850014676004814224557587076648999832797257558649646822180477578446132353331305780693069672218529716098190966061436575205282172923558510793205518535960024272169881546025027317480595752222574047161598462229264768223507252216059723219049328162967309907560301331657705091530866749472519976838145412674213192622016301029957456545359837308097098374766520823334005844192096648238902522251234553649523354474255040990315683512975019539743310492751829876042203033330354710939062120343225570020469810282482852706629148738165234152590104867418923349165566668375754730533834347313761534208253458245634953382004842622879356898552560127542345976776645547831961899576112852590200508214155772357211835237215861731729989236015280583949675886451764843898473321779722615495013026605838604408837587003824896642803125567188529096549050882232578950130138185139788057995907899604829536605056739375731642649654327012132742160265544309983937375995829961241676696432848949765426472869245991188256645222764155980607093205577039295782121337996664746400457106310519601647096891126922035620009581459050448057767493331672184013377890874934977749449055203655449620752624318505594340043690897510078387823190521319462972091997641289366610769554771891736167232579920440112918896175493001976448918894066224510745195416586473491326502496840797941151095874443991719278507819354705457452059598484938407434645720952532688572443021531667046686093018206021538217970670369069982632805622431343625590947284030748906131305335663060785502197620126192230309122657990765871597850513958797695527459875338615157814117240698948553196738789806333058465005562214221289826652520322981187544780411020739498203998230111122312735854109475546056988603244216573812394042201359947332015295235531764895437871349691250567680179106953580681663834867803576348562427194822878749324807112043104044770220314115891151920672607982780818735514795032672433345914537993732822873692307017439754040549761051313469517960019674300132941114763864484915477678669200969307302147000034971391995294816250535367468468322679856504764115588759567258684266682233831303488079460554070938579849467438288541410596343003919707135226915555315215960108877065924884313506339175802672498606435168193086434471077068631943613648862642557293616190655751423775354598390371193693986699314714335886066134691092589367093052648246499131911245385303309006149700167724627182135706648208325642246027593386353785877217952985940439447456672121614455986144297930733234947701183600126200454549182839225296654526485973597001191192645428216064028662987804882238434417321294191308324524409390354150337440039755048640566376539054441343907536459895375958676512619109778020824090574468136093998419261577108882252898410440984335715442026636881369416321219953536903529029599554212859399479412037939918773625993600308441847856311690507449312088368721160934861623311267333164347997431301644197970620961501966562577138870756090946707498294265086553908544227365275926526826662127374579396558954767323830628129365663394807903808513726954936738387370808816076668469553332771369952032168012963903830633743254816196166355762434859225183484877907954091268802033772119028833291477783545221296763070841210337442865706816509972994751759288016347980683124682436996463469824942053729578091589691825033047192207103552409760598899907236470079304665692363022753311214282464809384128905923051385912301654104377859117455927669200095519049041078658739188128722328268514663897809798385508600014249384042588871911648178441900256248619114536059837920084936887662665770381726708915074503764094597885486144967592283130858836237799318699626087862745814304764384910105238967004035526126325450317554376906334650537557538022701520887459708197178132694439986606572420980719096821629995463354591935161388901351394596684939041693476014348842323230921732747010091251611517954748405837725084121489723206588679002404027870671752248619183965409250478344623985509010617482523904796290950295591231634296672834290311791232299678878962761142004496457290034471712262772112912304223632294049047240358396701340662380792162107322593509874173936867774774867116601765187456420227442480804107265701666214834103038908615890193648120545516547902741137979881395698250756244859044876884052381683384396172790101461519338611883757555659972819151926907374846966052209906698371706030533761212688924868608605706627116499153260135436126773482250068584169137418003056673963064802504886038280448971391282560172263230214703817354273084953311641608817530574806579426303524053666039897072995859580682590144768377062975367890263573023427171234779554854641653257361719890683062603370406657547057824028385415630869909331605807314423411561396247187866511788689476838780375783266090578938799680177375138982154446991825429932892778422602290068807108592503810140437315094917782194373956606221308275407293611256523456052956885697174565091797337036020447167231174652709604935876463432959693927611626572179812513460880861761329366418327089655314760759355406354992220810650641524833257268539219511237590486343489642466952439663456130738459259782515437856454977048872909415358105265840146494804214709541489414166476224671251163849020795010299598709131474117307864024245172445996892479367282832409526300986649671964563959425523891681895127746262692483529133277828074478825811153829785438511319086493401955869010705020290555188625696079787499593837968118676227059403545610225501140535338681809119794815366342957789033454942519008207163600473640358463087873777471959245344774772087953396691002770982772455280957650636766958494919380698782446555777632206676385592736164362369008322595381735601182545152401768907882861456024351678839789408128279119161306267041685507731865508260612402717655214997282561991817363885305930961616024453686488024693799807445476934471147648745869433893657329840081081392117139478280317946166087802591549856499289789474009459007595363790656430922525792782669905061237641890699976828890939958935711171589803078568480474624651420023014290381202303803057946789245527818901895017170657884494566961727974148770770201077408368782512243119294159476333919677689851333246980061333025820671459420602192707216263637368644312218994829581454977096303974478498641560726775260862412362650762649339999396676352038128971774890423567726153699808016778763039181707600754263852044053071876894207904737025209830299634587913564295368406301000223315136059238737690991137412859746432461429525277300027396403781861441856341743246075876511156475875426388403577551933228419565729629602603840804850217398220571412055513614177856554070659840299284601454466694707699593230009282330998971823343349704706491956216251660992622332435517385806022016431032308739415675794224805651245950244578304899464862776335594093886692998840105961397383390919073513026542360258687018483080672699746618177995317946813732754214985454623923035795256769352457302518625052588124656529777736833637539291554758131078547554952884037369285970825729279250268850558677629429096554603274834553425947575534535157519841248655620071339074045499252017034768099913453539009939243983171758555919987635484287098183515756618718576569463582287820288824266720068586884642261407735052321663637435074846033684048233990412490056874857610014783514109216011571860584445088146760467527135870263785688920349267267705807508381588492758286209832701641808579129501575941715248908553891553243526517578760044021456656383505144090468000526261834925314932564123031452719129139315194176406946355317626020538318581652913607960284094123820472209492122614998937672305600004206722904866877812613495242939539720858255718018805376586969557402268876745924691582841308163183778763368091033225398740298334459698733044672231217453686100217912544420211381668685438349676698835829475417997757654415114026891338783806914457602606863075728297985318144768744709616946376674476854000918196750322264016605749651357756959019222924201953688317797849253768988793670728312515050027111924711769191981498936714051759853355612579210445504850346411495031357696747711949418655689188912601904110761646578870297194662271393087258278894525211580219427510422681616838190544835663118129546905433006307939171395258797362861775964344366779962852884654977183878091084450946018437935982393338449014170336163287274934571638949498931683391616555665227157166820044357074860295734454708913690290078412763913044416344009405190084063007368859211179570829669235003192835257820795125670157316000730182502557482426337694446621094802859913822002366575555121197146418665300865977357270042926237393908069118011646058705396186187031511798953896340357695356377667282068689444512408913402168749016726471981642468919885743545539909272572572931573136880713528751985164269645598158539609223054073474724363788380766354931886032975998174631563102604625314737872099678353913682558177415695546947483154680258089999687107833640451447917862172100046126257581527737779346858676869847684735015626258744305127857168025675746336611326413304984061915602539131446759946528378561607292053220073637081352426417633999529270903897540466021064156987799445431347251398523505610484470526479719050069388932014745431897345092490835598753341548717168487040582208186101148633869201639549794955917936280664250086873206350110941342999823754652007104442255916951339696593797094545509401586350418995332148100521580039941073675683658522277944344524702074304737370550276138945076519563966884158801665043170501606196656807244331280194145196974668128814335185496644938850942639117159941705160548057248250943465284618525761493414647588206530483280170812627154942062685735744836411824571494030522150146682458544956503743403759335788938295430393588872426633994564855933545493699576998619785927751305059027239929072157691163290266720669072982938400529549235798191614423824623077527990079497325597018600330170596953164176198524952298929925746598138267539964286312442656402795498779791890740989807684202973725936873026430834093403964477273664848952947635198880367750463022149309406071073050360768041771142344532341897925034919125672092828885455496894894389274110116824940679258995800200742221823156431185923221881426660020107777025255977524896192279171600981313059386406752810179162658650573527490306524795637542736761970775102649285870502637463570893104892683639461780175691725719117124285765664865921390916803878583752458106779109873613384361121076796626926914387692044636959621728234144135699665853685954898382966185267544401117468605700634184638596430981486608163440887705537802150493109209600537645416426886838754675040276441652040161514090942744355006667048648342897549749744301363438526904972907925222239120179341794308887454629635439041630302876869859315949530011194570096040037843552871445136017737172713357343917168672226760467816133305496283382722833995507533467591194636858402467478342827521328218313869497345199108229214517066183365607448342327011745453326626189948920659282648868343243680655337695263781133857449059664366752919095192145001608193789986626821242912567257039639761759651638273563853999560834029846514947998063810947008937850714528211271288418729275854628141005176210661533675410552323852791564914467445802437809260954751016980714876940620378482710381701304879941177881198621385917490771057285330650736522945664281906112059674545183721902619109692731324716652925156618512655013401852154175513428744809297465568706762048352601274749107675093824665353605107169550227040891983457400902932503085544835859825528621835749912545139256093999327860135317391350914174505344372394126322311558019994252688563308210392534111350525573895803289097553837159942063497309053609757253166712304060395833036909696815740832952179469375088136150071836335832316134881853960436070469501876036842006543047304314616029338265446370592257064279382524434714548060283972506745584047508201114492032248652204657790296864192556438480621133598458413805848081266602225230196921640145198989365407937275330831413178213257353418233850523251907493583984005473684544972733701541680978656936384522686320111240682764584440817136131140524870184479693764495589531786288693449934235692828699493145941108711993292851749239754235961734296841262526107929443890401652036828059651836517925507586668416425819876564651254853009023305335540322210842272387195804084095635119291106488181887895010944443422974605912082719266467145012047608150324783962937935392301208140080246211903235656020340684977791087920451848609265701267138550866957452516234171617249251529488773876616419827088923276298120181493589455049463710415316482387903484165665240776529700473719386317769731876518391924623235644373609268263727819938442106417799878298650478593277017299925632433063707391106588889238191717432495358020611597841911477912599555403868620634797613616945125373485550098009256730054772993366667604905110659109438957387444228579835580922136240383772421873245692765892441325282243639596410472042582022632890489333426277551772528829140523602774449951036756148812368556386636239330131764256723916007244651475054535763238865157650609511124674181269073611884264173717157256474853806918849526232491467826244904105802573731951150705878181945548627890335075482810749821504016565017643998297943705629956390101161235007188219977321725319973334413264066113136203514966886140130187374966393030762322105814312831348673321254939560095266151171152987330624804027392791832971686689136537309948053472797463208930856268467188188637730430081685555437345919486522670480569697178663648088755105794229524408589604264528680125864243894967635111005420378590794881405879244470408126465914577392595140467899008072636156541460273925359003347258709917692085676524355500874955076594169832184761806259012979452538027885484941900756342382042959951365996465318810081893711229027051313175820608838116469945110007310784572057006707299560157835482916293649052123457586487957594022324286132218122003139979974412417859843295607720038281471054868793447416266612754676520714248757808778306327980342493920706597828101813029614200032306239928833905433607401033090579508782527511712339490972160753530297304448036870315727064478377249168247802194009881893984906514841994912636643640327036791294946131390594230545915754506591867535007945821553419900181912082251904163762557072886894676712909393046385387361556450205690267292578353174502558596893779106132890127541568943609135374330732165037136556044574825969989378965447195849561137182596733930647546726329727252272762321075199369519644578321924516868888388217460183634154967708456048154911865449234862915185514922836988256638434192947288278449589543523515240038686570930800450111257403519348002575905747854893653335140327464840168355353966062985285814384437263602448274547511565674920478247662593717493593574228003205663415822540906362154280109542845840973944375019233548504987220513364967693353131952808506435478941977103118357586279462780186049396306699643008415077736420760174720848373881951866515365768192370129876032161779080315163437494803077302694296331483565511432328560580348256216497180637717743018470705279266977355346827332801112763255485667089388450898935887869740691265206525621803088933342898555154810095505981698302469735396997440365154927741011869835079701090727892349183541019791854837702700854651830020655960072477137874282901473402819407826457358093053486881890133993001989212265737506869092608652745561809882789813927574070912340323716107553089586061889152508589486249216149868853087577070322239878055165192826639168526042026290702544917203516342807523736469751757885359825981218615976580033889917266821783896936374710733272321415511448334735641465124432259448657085287317170981242479876126767643894318119334017517658299659294160388410035879561734144419967907947275926064465013258127665811076957311166459566597989705407310589415032398876072826544224857141161726534690002341491987734126155282322171618681132813630746716884729082825316459082766152077950873044494923248079508532944272368186340460382924524283020902679542629274588751170482066838688157704044291967864370733993299927436005856239567019850533590516277116236917890700599507271699512100641554185704348972835315933424748876233229723020316737736604290652579687152023924070196621017960111146146188263983725874525276924885468378236197984009559670640379414014405929203753202079886239409889810694281943493446541624672076049569912172490676907859032921882576754024189885228580683898852745071838041980448762322356612798285823082974293405159854984179989193333812885731280994085155113516011360727399875775997905598546148207331850297728750041031567957792267993663241356298974149151266530691626239135244245872049130233562992579641637958548784478293979681956431790525350609831549816357371415078955195755153369614059621678297614816076597010553153236786902925745692121946565004405865947890995606460077739802234400978754685210449445234894614976860209830474965719124245703324265988466619107739746851470819801459877865657059617383384856309948599627471622380396454516284196576249095141356643785727736372849317360387163682223076535153083259759580267855810239942974055905918654680797495633384110447467133597595120401226778889769464641472290266669380711355690253912467498342556611614020469106076439753738690318101614466837569191535290973338473188187701745572500311919069826889290083461982665527890050091821769234167084500519175333586142464250219597605911744107614383904903901870658784883288320628490221998385025822394546153468610740536541342358788734406148263908723351532653419449102196821473367793842014997316098310324159388897627609953233874853327196947555735523169293925741641280530847444619605273457617517738483493397965053844145682101095559463791941027835716576680611302276090507516640196104647013335668376813134598014956308679225784993236691225889157711667274226638409966037263510167330015682416218066754466023679810954914619675429976390190688011522578085044527387514950680063583876170173224508300245389605516005464903271244299686804769282888493982294139119617764957591300384830313307077336120773870186170643050500642006166450773479777102466693152194471088548382739588656792824703113702524376548974019923928421520915773581807539342069715403286518276045846473466614646335011915865926941993955477388750777429085125225515315008009556433892635510885010398653573169505106427979649418966311610826056362361913910794938193004223583314038524297342662983632010398606007837269052860687864122987863524842475221822339067475211518500099804401762527247800798087841054098455983247519003501913689994222556363363206397066273143205876481242949612322854581028221838121073454304060376671443333710901906410140144440503774173337411016872384364899144048642305796032947376737504584555236680824436994777260825632729588600352127962854602633093716887991489822780656113299629465176182151156379636608004029492140246769956306519980914959331151789028939727816033011064516890089999497968849979276609148470030868461250477684491728710375535471786871471979676374405809466347273106228777273659878770112478816187942728176125571187894308030432561999450133359837689325978369150388202392940961434424398402987170440278632636226632012521959996007443288472985923687906245350035042536371508792803776263589146459883382216570530692719710170914216530138536147542987247451173066744409319807222101009479054997168178510441316345174349581682311601930525932023059257188273559435178394717302999486662087338328827007586026661403075410869393429053405376440808026431141813457069602888196594894345268078921784457106511868301950580380463016382869808262415641370638109686145230345304118663194722717616386623076773825198120588940293127572047712757219422464877759860902687190322885396987467852499166206076273719311027679025731107166781733006212216280666277138045260439897078577775696808865632234446608950964132128018649672373676487306979705740043084941557553991170282120020030624351392896654107107151023824285157395652612011264162023494923562614367776510499772566645030934560770433687545044777024795815484051433563226435638230030469832878717671304130579560334852078551451665410341741547173853806217669743985545144441013181886255684079679997595943253294363770968115294689572890139747085103427262873284135508410360941778222635186150582455556386898639763575640627926047810901466842684500397595871741309667950428346100220763569265278698363999387235085581016934838210894775083641488911734154785150970591934884187088655413659023441909927487174764873683665710915721023625132271822312474597508143757774500272367245962909478992358880584841181915771710706927789388866103790234885859541176753878824519683768357202951947142814805303196836660281824066478321465126841434372199385918426894917493077344601401163441358073154362686198057706322294301001803374350430335859330594985193498295187610820861652712574360170972810510987675770170496616327830862393610299419900315400904680752243158196016953091738569450591961699253834902196085341426322037648553225992405633347220295802726469298107970813444897319813982449509818052686454198544823383210714428222403964242977551656193178670761500165167375204794468879244800770478922229456616696155974025253013330435022522440214091252957325315927708189571878425859401966418299222903638198476933873375952873222768114421007090146559732787573745504941406466976458566765077175641452023065694629723292377166035944252384940066024215937270949859667145717414175334956402226666952220159939970291562596188975311108641554170940034332732198816239819581657947509014523237681726467829915481316845356752444534031298148928644807643155449267906762508104240318552948653114026399980035665780812655434100797651001622747727475722511408041512060299546742279494971072762271851064137049572285735158161151643430796530169421447157979284444952042479118340953667634656219875706074361437692413271467935723984567498663494373941928186379986306804163751268192172755219707330146946300380192608675379717445286353740728826205928591046909232113216999679151467047428493283218343642465904351525218945126627196185466088910912197922005070236582306604336367191836119554767438850057073261276718714032500948474516469662099165008332272335407035979532528242380734639546944776755833974519860635724311704142235355597286968006465643827594711673139214465779779706518992403950499998305793313677560285824713331376652500289982909842178182750272393887424010026705533318313169162501755856601612890909646222989089783307052622409738269219218595238141841736592921312322372094446364909604038709672539329588075100975388578434972557646589863797577443765104436129659415892373548234789202796009096502028546348429278426355381818054898183704782426259293256864708399838732131007825914422924398889398240586399223039921477278416467957773893798148380136055434339952083738609090695555254944117324056157336772331604554844879392604400350998868743632018122964395697924473250621233860896824891285951772916671907918114065809386994130180037137324521808454123313414575779751874491924875230451601482866810399710022389959202447234610467092493846642496864101538778484367546041103624609418927983332936262566067065877035313751231361932854366710190749742667544891071084513110455732334598677221007540585671290967599657783290858070560992463622140239695176351827915977659090952654015502771871925571268804914937805230700876797428216057790428670478307931253991927252220716831700893818066067449800177560847182051520531487798237547537097612626119661440970958945577769282790945895974133286842892332628442208922270822970263237466526562446999584524750948157862992945608620092898032963320308136175485614904062588838636844645548729147402300260014109867852238051263086159390430787034417000553386826797367988518658689593997777562380120243463378650723839490717042102255059083925749161980483029962395101779875562608537416743578403651863239016122393137936271868528182329409543906545835004080773350989031568672981455438442687801482645886291796156047821320943015865634612399234301853927821416739740019606872326088415624105365304053083305638899172256242788570702219679383617248879355147831707717612622145510647839381887878170863490260210451162938559168907288284400324237127763202131651694989473858245991109117905304534213170691548963351116774627492000395553621250791638215544110660665151011749029762877739566131771286690030434208858938134205900569802534048411693912889734541141504393992387614677487392999658983782894573980827903679807809614288044487780520652209190911479783467002463735118892419855750228509896356235136185706914873715862283981578089745454167329618997841862870127483168829780952981523819895389944182038232132137843221070104082106185222735614342045297999827477858962387647019160708379786642320967474265528511900238837859205122142631954792245804885517142562670967994743716589565241594998876260017576604052998504401427242822170516095374922626284160944346250592855848552897157945729792683550467789949358869134733074402672105323150825488303356068630227339748821137507852126524878793277442693899943125894936280488414881126460543640404365159541889395154972653092120712148694779817917153220189714967619455485364361151979719568653162959790840551600245216748515049989080523797006520825941815990200768114843976278731915323726074992712524691528751284976142554215005678040982140040906487027611497212940271218768052364592271385962451309390974357730592844379399634685994600900633819360214930593940907195577736472739785888226997118543766786676035680223131939996256474737840308647924629905696940101316743012673192162357193274503121238022009032219323082925304616527068687544832343895395202191509095183811599993548347218961332749142427810580581066863725189653559852899214382536151258321074056534091673557806265816910123352751830137736519369506766869176848335622874586945558684806145753063585041798443510018847902857825358591167224320033677640183152748272077730446446605615993996425837428987602457319216135279030956860313522775613404552465282075670942298515348511172479367948713767336829785944650680739923739893329270921030320946291200985657536511753110106897201628636420588163129517129150706627227550295015262505906431292670720278647959366464678462848374573599316919309243480683510269505187556482813905917067538349909271014076754853435369747939217056184865593849263679088632862594578586313040345797669054934224720040430301322982189888579967347702457273650341379842756015861269537651131361480169075928293407941174751502507316896007608620734875025624365625387656347414294084696504062452790836152986390156240612886942769136487535476943438155148642340347377283056256314204566892826279287930813497007085801107671773044189630151949345559311689588196234697730297900853555235551527461851760888220712792960915626023070398512022705644951155696337587632767937076840827934750366988146138902170728001410331984879123257573550322783385107958380475429547142543186120078549641791996908526939353987573813859902673947473213055932398315026859120161104064363218668571222672601925114240609089453196241033532896319844004742624102937884170299479486497150147953899999214938134788373166803342963558006275016272762540239079527233760795244961680410374489370993284948524270848250895291597547130261184555835170584573362387989946520287340109371781782256143323499713189540625816579722577103419840743000693662208678694041719322471698279164860655292788397193021830040129849947784762427703150273439580864899995515963979827279835721544013572505795025391001077614668701772240758276406727884355304898995958394893104609147431176840815495311660298003410375640029980211185967032296353998305019715582280841435794317672017548387940449338811920658217713166647799566603955409351943448101196229634358128820052699505471335023226946122280724625375370541422378401902429776726017582931583431901680384585722666072903908230195369423390028275836402944140500110728964037579978565735414542602753750431871940462492000868343476596109367743220698606611242108202916618741248550644367011493042735242513397382919389689574287956949680392518490647025091635140472881821166427248093036332848028904388900468223384596065134339495993623710600594500091216631637918360279834365728571535031456634344553346268422839733760541611763363891701523070242550852098341881845155906053039672979618580324373921464865135036268561330044489537808424107496991198461206017551761945934947424630617564523967229848756202560087661718499278293078922534286346720306401588710740951489356493580922098292176239042345993665858416301225037317505601721298617056379273539898046402103791448821247195904757507436130883627950991842907177699201269098143926947369426042778380127863328845514977276751401793424130470754559343281257544140850459611712376530367289925475861157015471859893333071394345608888452303737202779954899255579374540833673790950742025319440587522856359204179816015925979252220836956642993667743667867842796287425528625639547803459787130391532858473989574790663566586571658911365211514723113107120910541594931191840552317881784774797805338069230128968809358288842915026734774008051563077254620772492666542491224125918004019430160788425944597963645113497900085288572331479626484236008986457919732851746086021846281652048064943963844215298611084839360903799570456725615170398409106283460595538792230887490120814722468055505994096951363456782377694991895439706880656656456248217974537822060301703351384134247676806188336056469400953423010352172512182781772293304074921245783786748196447745634891098046114115268149037852658436686522726138809108727798461174950630840141196697170957401528349632688351335124043250440766857116315645950730659095290506160886437511065740389590951202059429811216971755182520191805342090310029812591696802085837747013686725706493770734228759543925636404105421661328051762073716310013511940961367416496588903748192120345892759010338871665094263700699647422702364365059070589044716703754380830126381010956556432089914592991078757022916029890604416413739424547142888093873853190241949228834738342599642565749982944550940136932892575252891299814822987983151964143804677879364207270552037644195978213073581858185403417751913102986856225539975763196602810513898280903742005971679980470337243529951714872892641660494474253968863556096002216319933124775289231584733767203332522588016027909496165422030575922840517370277513288018945451352111029864977397050773588892099788906824513463204188604562700191067147894715696047165049471510819837847231090829931579534904439986254909091008922745647498401236676545286584944022723521827595543226356704590358978911781023448445860512702555452533769466234659111626892375484381018794274838864187584709693515090644013169325970889719673347025757561832785233493232809561198758636730426902330043932550846403851213052183423945777200779826339235081786637142416937800308232065032536175827573281100103972338339367823068472423187901103204515118470554434126837123356768770367143427530844181832930485349334144182370585316368472890150264344988566052574008713051905039210777232651558596797895216761743768963135061108468495144439379293882472458004242163080436531318121370974935251061316134416250287377953209268932162909228275124491296195677772194191418389841775477804999742944713750217463880382555211377600138648626526358761920745377535861021104581005733293351763294059429988746169957806070674647134657382679078643865484878881255367060173044424793609837105014451524140410753040532391525634337847349068274990736670569326821759057840904742485331427783696009233333944463260234348503084293092360726185962930953276911594716990385495675508073399706731307796290358652908021735479120157050447802760880105822363999019401377812533209031070992140104422283580040390170436471154586633922351619810814633537828016761932907700395955732175083294665615402972683115839815321649866760756210850862297478383721307538463383560057993103697928912194414833008059329902819524798628095086304515904788939097284742884329174312457184018540736464875893261329728710230123398301275428552121901666066619427109332183069443923042602290520892284901991376484989717525356431647178440732332657656169967372001200235226825906470678550455102986779496312710478707186389938988590892340310567885070860244949293027575872688486616815700165724631796286654765070780001868796341260458169847021492914619661091320317669345915646703721629595050168396895970696256539242033791616152996032583437140639660398091320470447978695541306699482499681312285561588349953678750111754682542489745578199759103350460932365941501351170479879841323320058391449756867285674936581434574011859963033489199742061251859049420304862908189322046103653206922668503033023358441345656990288768552999776802456334083858907639281730748835266380403063755377963115048828047961973605582482590466132188179272260264033525547613716671139655111792131266316413412080624492624011676179466349360273258618975338573627167196581157600629475918674577411423409671251561595079340616823783316759665200517204206816944633771277553537544192187368960100416970242388760018957473721391448487726340699771934854504840986308300200020777106544778539398050092119204221746520684877477789531878762277831187480701030852208267056419716871575903542995715167584550280350678980469908913743941806365708579906998565585882632653113984282391090385539411401348610118533772482653608085553566915525919080776282112753481625806491786891704987395949577420331250172622273535050272180424528410290963142378973991490001810176045152115337876323708795187235430706821757860972275714311180389265515493982104178783343421737765546093016143019546211183328312804509445338255522536596299389714383013801107757300796453095838547337541922927866376442798493997752299376223307221652909970898482565614800361469918031136975819008889995216834428056525396744367560417900152353787119678890566893046949006198883170899971708785147809774333160725492071195160355943468422510782179485008065386666325914960808408847698823914478537965613270738922934615397866270385255708262850576723839487094575448027613937864920464184379454605169883442789213816366766398616252315296315541988464694839705986399253971151772235292697754863177847002351627654777922233637148681657733914190338871935471210979932815728791595025029793572680850265043472882853949114948432098207781868915389504122126977070260753558833770342422632451297229005553287579067656659891810377348672336689523665923227011476278771842503608040656168584758312926837634456561171345391282572639982947855069290949346697293464589885837801919592509039686962463026629437021363243724454800086225922571743246423907486700615555970578444618486924188953038358385348365724748627011012832376774707609811617577416209876681949566639122440696919280554744638073543818208629283240405762357220686923221399567577501347231815036091926821827157559674120179021083592713983831039384786332451145666073469892048376246679647451597201156385769943107751683047539520708805414125473432828766399325772612517343557479060357698151204515700983880573270407519540695786537039006650993178762245173677383789149527125482352427265506170585103664294101623593386686193034598268063480666536125926748294423801931896787843741385942299519228822441529920342284387553761357802228387484603768159946458617991021747465562906526413305946080434368172507143210801841768514989948241750796144051331308939938857597005035802812613949807239094666954253987586281347615381211658221131507533563911697503727123906602114772217651792125642065315546467777734538268213395986503490792190342947115142053470011292826000947098752170562204055135120635046889293064510640264407034569276806946040460978074595446625470115305290368587378938206934920712007145944812722782606272040955591267274911588095925124184383197017725330018239223632303971685202096533988629632198575837676016914425713063225109066679489285448848939055716053143759966047945269294304198152047252884699293725167823986825071962363677742236068225877247595969044108156231952781633828030926762025149536873579052188231853141013249393838913395605117408716046440558211642064949670489613775776254799333277361158096338089985349551487139969733543000344555808767301885150432868435465516041211425298814668761184834620517150027268411847420242061963938839059872091796147494870435987223499991600303738652876982543205941421433715924024759893268025441964254259577097577346170536155107916325811230131755626947149864463211755519284802407503860632797190975598512107710604617893589005783409692195093986308741701874363838042219437417260107377678407860143188697645054706172184892310435244925818542682510710961860508118067589792079108969394173498820278918145429424505387035195381146322072211968273588638585837127661297177990750913527453966583019134815377577662281595519966875086224419102893225312950355416704480699165994644521991605177811037564078510068307444846526604315747579766961960355284427740672091014494065804787493190422940312889270787312472371690125977004157474393947525854314463241251992685518445463824399241064891265794430157645111840772932560126995471377787349322126731702330987777211109730882061371755096931155958132567581699452001697781134687900951458593573083269163240419292034414983926690989277643858793271159065035706393617872339825114374560842232834492946769661100936511121342747581464036592462054187502389647993413114767163417739453205909085306357211218827545398536071766599898403328405867152828507556438664643664525445445546470127074820048646153741313350805593231009582302690859670336022861787189173748619929361027223559498464903739727598904499844325091193050086443482015235520617378202703397239846757821346840255762218060671577905008478991792679577042522424657465147910630354278552493311453844626705348194684837570299811398612556609011986650264914726942151922231495168614994909517149100978075505337197475828182465529305753584522625188011886917072889950372546071274617106100799782049328577571976825698154289089091344534769113511606944879153493812325385013215750282775531032013867254844158047338890715920814209446100067616623032354093911088982063796552525672830876979742096844579785057829560581320588161791419362157690888679053025879157978904337571751135172615357422639870455071193446887031749454879648982662012055483842112328235788290047176127020268139781885469028434350386655629089995039721441743474614412326704181444948984462302661029903979079252993209233276065519298707896442523714644605284674833992508934677500955088422086287739033843472733447839847116379509940644442410706552349838951893059210515169667032074429941402365706396842161559916600000895495374961765317428792517370241154027368204792907924350993440488768607200654589294892399194282389837278281606284870492605865069296601610265388180513546412439748748353975484894948811352355485451245713358677494660417260140852519039548105214925205720916286813218296125631425362218084586402175541641933997515008177394223927220561608859547327801390450349130085964678092321273605636280904451430885112223106717806555478790522328203526237417614868658946261565898588305750282129953222153508588328176730683748108881510409197874997963200863890687709224559644053933938451619492573394670507500508099125881592565954322239451750095166061895161524293855432779254390153008754530184056087042766883009520446992584346591405499988324821232057454818659654242550711685437019537768665685225066394979388202615929256747914080214541659357778922665339627190658914640067612807419965298377197040379306172899098739227358774247509870028052345036268169025635558769417384127545240984971335827468869103585976355098206470808506245718180198499772000646126329271544337317068439749612299322545583763242899683494936726621551105338206054401425434903003135335321043390895656647073609021456351437114064407143932286396612475813426144805065926704569065726291301448452440111812781005514618791720835969815022141620959139896170543798137587055390667731328518741856487042524366600712116765470073899509078319318992856788714860838862765295622844497770158360834767805308957715991015870190851391963950886370848269723130553636569477547468490004460077887761592890193972828981909651415000591946771807174117948781849348579177890055726098324379227242347206967222214864928825154034981001350590690043980343478682321753381512631781118580047370272544870314324748753617028664849085143963616095745961992271639535242247141228163831896898089261504750036409220765033369711417811882057481708210028416176833586853405319248097456633442353053121708951861644416023722538106482899393098396152788904635016601233717925260471483207904622386868739225865747018956606986750821157636161867311323237226212389958348975692729409737596389410398760379851708756545804279415172063029731589661924531003663854942950378983519224287998963457106859634422017329670708074211994825513925667938933389746375525587814461957611397233628962898586063063679457520863145765580392576386237128108044226543609878626758920870352074075292988128564157693887736252317781496416046214264482917089494769219254605832738685341919251834190558026211637856026265936942780026658496391266282584596553197016903496490955429197132214095276941826771140602048026849742187121500358854122618292246339739691150762633743316860277221011814849957909047847024151973491675592646261203455529052347910200770113454885048503774702620900041791714013562853022271496922275524620614244843642311429986825543017138354235266491006882377971632484675748584845222073196782531002993070577721023236706809434394547741001472088080780831433809014746721394251078055980879808040632157172707784504971932374643977991386426430061510454295643289251494327855637031559614084014323245404190569453575022273149157667630509331280613354192571621787259059030695934877146448900469269241560223617898563419235109494398655251567591641716342462658830897020153582928410549158075335330251691556823523637665386819871783440729952104461085068058304920569582398297911417919569171332786574265354516439206695011577181231281523204374810341665566478712597643056172584709720678171951162096003928869048431139069517426817036511855791007442936937185444024544460224482596119652010895829800840635296857553078610300554214539449320054893713656987202119082435050691097631130101210890487961147672509038821691401872862832526992523698354271535048368851170851758974186352917253052843213273047465414275371681431517166735084927614506906424113146053870011125943158868351401718065318390956858659603385383177104426914950260367521157097729310683489031911930512743146377420797649459624870442874345924773762353469740320346642431417172048596616800106873305658385185676468663708272081721245932829357992124755130548867051508789575282434993891606936406904443897844771283588909353970463063782710327838334671543074791453799314177179012581268730244473014810735877208489749356641943863644674882596134948318629212029255389089741402852065994724326144837726104805707714850282367257296545666459929674048832467738448390048844658894226706099978920027411702592153265648781713399394465683784849066457209010437791113313028304686560856148373059104848345295931533272593523604251222869864262814146628200692002221369137407723467508050228113717382207214974680478256965524800189422059495297197396486958398149732077030551344760481083900578818385782299629701422779447521481072269163775614132675142254276998750890862746352684159778103760197772383541690019572603634161852432309659448615847688340836202573921962028382421084819793557403767516071785821411718062982260554160570307245038959162253090760524924335737464709551901050785738933547058381667550098390301269914785560970508884796524235068929511616899609179842887839650930003428511522001747958404814682376383813393417413092452438775243209178127325914723643358395961166018676431423966676266741951849692445531672540326416190524261505966448456249620068797412995140268029328885965592072656006618131973034372270193926779502346591085704930234943746988736701778370003770802601415913115661798236783672489778433833205335430812726520569669949044400530432760065123406873087739186992023425903389793947273987381745942164102777671557731880686184339972953922206834903954925872092976710600853212220127749139724469344939528704145354916498929468392256244421002025853325357669320018722353426875930602357585883894696018316590728373920506237223632300936957442628990017763753295847583781310169799319523274344767116610153441221635016022725887542557377328040680265576843561502002044535063039729846806284793094118315180233091175675002199967066563396379744821623105179067359934085306697996107034022840177148234667418376927316324885304497085035424435932633164340069920044097271007303348896038810087195842581666733072417247065001156863836266530004878642979016791339451829502852540043019146783242249769924666307006995681703274492391080259782374005733032802422387115401921962086114373048036290133603355831427475849514859958962352274707014031261538112878553597669781041142332017098799372126361326659163420708969133542494775844855785843539023324746372632641496904536079874968646338682292617210273998619876094957498659822134424244046651785667238961847937341538072574664096953030679074787375347726055286668413869818226584122203195906114682970647582150869061721383518797266080089504752113285916552842301197321585916650588724949276584977331770403739603048100672676787548263956505206800296455419298433867087781777326957535156718194550208293237901980845221918738736578547270855324856180054202450115545723606128590683781643840699328371194120499361702631692686921373787009336441585785312259576542766105124681933669510508427139147585768166127586412571041129801828330985840046886879531505429074611262908044121251996965538908382043094801906900424935680693519208467792748303950191357048036978616469811959217127420699827943483364441873377102593958083052024803458006936650191585858907800729250398376414427198169455016500870661086734030561243137359024982905781366200190774742845910353982200584554448282204333774847678463313986445172747543709298005073687161067622161988002192002943449128638001044448429807636857871107327314798719537865068574296971374659434543656707559153170454859771249050357440045994465332998159416026524563361014367085466889409653106705027067021400335206816412190072614122102747677446342428260690030705733003568558847387741462373028721767128053753829160281829829359418664872513892870812138562125667648479083427683774933929849704605637390000819581419990548357225221388776422609978028246127046401251783822439622550008087223131737784841732781678423611591111496923871726657649293367533994556834783321613753707531331865957705516651999368849215348418734538425084310568854373858447305984552347018079551555839105668630786851318231915315603299989459329217674098318294776931974250350200723918991510629375668669858891070452760127178889331759489619172057844463419694435998055595664605444463066873506455882171367592351144546106522164119045546247060651551485512627377244096233062746727385538209267795142243905068180913931096732783236366660112708682381102463579786419556098748581510759816797212123228186133927738148222899406050737736383899969368384497178888939369127859608676361720513466493359823741466829004540509336624860021225048462281555459531169740731408604168279291327329263691752342317604571902003954387826159988202270870656366566802694037869406918692131005137548616956197851523903871733532871480743853380556041814183591841142127764242087308421131372990399365802398191350378531814007794786847429512266532407446746908979783277862260759437849746922667034899796096291198733727018880797374061963996059902364703319964685924992651520711371263190775213853339054522540964023825790740493572203658011649718430560816999516453500743861593477481788806077147529925417998994925943414011112445374619116981473215592429716267040381561525397435824086069343282858168722339052149977831109673458639672600759172067475501435846737484829850695101864421146541668197062941406514884071759866109202848763893420755277509551720679067109895356867921151985229885032371466963548068264573107113654210402853772776333964921782614089467551022372477516824399376873667242424146431582510546464098344630774643069016004039113099949394617429630694926619562630955596534423401048410564366003413730556129723301330939448058371021015838244568789730352371277032369216657352316505510232675414848375965742818524663053779669585643493430880203651424597761687000776995300022640135209961349342866832864932506534373000741839351214019659760950777426668234010609637123728725377042767216574809430915405280526584306207455092346793481542368949213133326375465924017853771222045841942705720482802224346976998035544573753664163264694137466718203982049802437331077629256334796145554777349362753440522937416614257065017509835317707305158709444134554739485046153048908943182377919516075783472143647593744915009586827458600552883714512532552488651397736561992616222948955960017202836723806362957252306647814303287883350467598598738169586641040299606016068169819919986679667075352328747100666520406196061646583017574967449820534046752578610553337271326976642493752912310560503238444204058016455922218936096001265597030632375023304461460233658655090636109341189147720843145652308204803341944985498581801106318036921923402705078257519757037702774047420547482629770328712384703383136666780812090265170237343027275872011269376787714468413216503739620112781659306069982653166058894013637739921441452376358972356893427913857750570564698367725163783771315406557122296918945291094270195144971520377970679471170585259993063258942098365122546128661731681174795504993029140824797815740080636511342450831371229216834494060471033124141285627446397094239076389055523840968209542895378883139807101232801361193777906473426528366138838361493765419681808394172732594877417449066615741520854758532917863404135925218995207333385571197756118089538171992283262475811018817047036074449439078911933634321230790981742601341971963347826742491322692655964120494753635300541226263894807254733665896225626766233025439993852705943849443883323441371225157938592036492197984972945465111771641427626682187744195524065798607952233753078141255606093963921882863411764630539238750228549518470953285350756802482839003608868462920440963799256711106787363843536693624023742125665004893582476071660458262714093268386115665640684866785489737479611192970461350935352729143346798101192691444868093903047244600619680395130306776781681871798568449190929650143636790987675075322331134208836946370112048822152134529948907629868434840433547075643037439916719503399825697840690616013867548890273702341255037871212291102736504275661683305597354290465587660097818955395570534519046674885031510217867026776229039194210508949621118196941394288789025340186683457166389398471862063977974532693960304509626836491460672315466454984544141476635249863158241900188685737690575400003270200991533537681156634337365342520012158369560272323590453995340261153987411182816711680980852255396208781835173940119904940265051986301683518855095245188219357284674728003924590242477973823804199671232056341779335259409967829575408392767958522481054141406086890417116605934773160733938979697458765347193852253448952431880408804168022328316248221002739337115237094606038331216156555638295709131904545089309242678518521665330186047506290709338183177075752391043254080717561551081915891142222914865375180912133828170735201561893567078992147465601955993913971253085836605193151179736889351725062082124029342332328745377057113623798826714205663826193837606842897806146889119516602300361533513710697041255844538774000067254314860622590206178168366165543133201735786564610807508224690493001169220690621192071998617318635038770683436450240061055029131060429573752686370558006686592073510764960967919476204001211440533977541830453551774633531227649155353791490503420581604545096061735336053578996088973009112552350971816883005601009892652484477731087984920663462412798086872024789016806334245896828131506244040806837122696911788461283942778223499130663668279239433294939824726003670206176704082938567136669838616529978496243412070545515927056261169471705004560083814614482741539482177795179284874094916552543045358301334438731950027775060727624309038509597923677759502036880457179926249500601172635752323693101953219814591152982222497114531053653051147602571801381938877208021615525170523276216306240579395240992381277925365310460148711298869572134646336397733524661846727163501694740185576487859890646645122178491270708907340587115346091931898835418291850382068371999074673252321030860476052124925368281164143412834623794972310650785444390527806721146194035626964499860123466716049149950065950243470071828266114485300005620637026448049238138722471332469031585996464013076626061892552325534131884431065366322973315543503686361455629835368159539628332869796631770535465895365525862302992105492359629554437460524106362128221258254202644393083096560592389272217300087738342783251391333790498663498972568814373865578587169140533716653260042874659461916151274603591925849614806927670886612259973008981396530236560443627924021252458638972999483346933668057398450892411877003637978576848656662561510699393349204883291137809375540788514044661383191207743172164301937790726625931537626028258983105348122498943747885023763486106729950369121607452884475258435972059260110855653355456279508517271240933748610846254351381561757335990859566211764422494526054810482740893606922583463280655309736671570380497860416730242578074405784941873134566000805296217980567423151704484101157261026450820410493139320786400776203515570292624293468332754647016201213486629525432875264917785127886098249338479696624125875552331971406792780850016573153546880615113231019041617022822839153180852810847823676850128536616634642005114892175754734784122861407601254332790328725626654682796255325479644397627594919324159836896837218936947568258601741468337592569042655337693032894904136251983095521577462420550865930989791022309689175497819215146373377706105692902814765057156559919567314923657111039067922133437734797978815967931937095979715893793496142155846164262005354144823533753320204307700833622005472334890548340705938301618915397528543772846176600671935338522817027200738550941011023626851592372167794233837769859347260543187134195798400888354606069034874385950896165736175882393719341765950770213546391186673061305144021855693931920227451968673664160042051769335431967839095095057581126877442049506310474507807207624231676439508284306133762932115875053293512125302490777313962750475744500281640213457423698716722759061358493186274286351989095627228162923431404218608403601397485189926089662489113746036163874274232406963374227894667692856618027331833992135018323513825998468715202922595823978218901489740758344055622933497254656940963157313851035501799377751776827360177295796601060538038749734448427002664337200021447517543940123702868722598744770276588475848615513678209240984427593955301379900746658366195108533970478921228318954205793244756025968612971250900820918323420379063890307250495859162132355015666326517638543555515379483122292989037982233944821174118135414985152043795789913303412865865673929752610923400650524541327313425254678214399568090648809808498995178239365449892360873969592424944439285879525156554943544469206609333984796963772093344955477269907344155950205012270752129221396069333595163282952617188125475296776077867215896997695988061271804333941868099761708011229973688345860277082305599473729944497613828237984810704127378964695920263493854802805074847356572556922270045709567589361097825088851586503368425887469663700905879553080265830757720279512456397626284339712214222619909537704627765202940768648314449183976459010772129667419124748399044780820360374284294840126618625694913727532333068386096738083060817624590683546277445660715718295339072519902420135349949263466469186669803851691073761023325564169174614074940709836010163726229534422553166963604929169064370719240839600517024586444447742805380959484690674979169640442592914327194982164713145785380266752911216257013101122333013992868444268340807646029742241595694900952501293645077685312510088788957968047789138112379463908888515458366789232432776224408134961570029046987786438344736185057504175554235164531131219340673109260128774262506926443527102673660286421843185157953454440367766585336921682784027006185231865381307788298528427656605260867946047837787260391491761449139200539485650920612688843344383821119460030129026498018691338629751123982846030946444355817133302196573698601676317944586218213149235560378914614720150446414346576753723328372845315848802217557188962211555671320964891411584455734635890295598844152936494499185090581919129008999880860140319759099118932450608303657157515690549634972185016317730954791782192401649181873163036769061197023838656074742235423367507523591953470308355300040037442705687654490185841230319785646957121892684803141308887405530801433593923035624503407017811432170718991369997655470779757590623395398540588340028698312992455438130794697596727045793257794900567800217982109087747504701833970719058977625277472649647926372844158744035511315237108599203711849451189723334136998911158109036080331136074869871397503416180903810602874022453932959842421781128839918397928041615260844957732226003888550605379296733559906057480760326267445487496114947965952273461892857700680331985514991781179351831947909510630323281707525467853984183030239863394156236866554377650686494295660349222959623338779777277308156196267349780457289083182017719337543668139872557898529410641112903825933312852845264154136026193556027719439232154066037584497150144952050077838848431708609931830475744666897500544041283291075227360005729177118603169703215445104051805951222310555287002038639069304112898566770592025667518957728407640120597481110089308399129923742305267572736549326603246147188751321997923895437769314957271131954912866973806471218424747294056429710427619345929463095474701049798549027244428142878395694064051536539765365813652231655197073689724187039736836039804965337876754796230681497285400220413197986697500102195375871994584386128542402824867092613578842037999933755867753025073003599808061316270543322301437118147715652648943131735550419662113308790671843376665579194466539776168102155809993638221203616874810372965357097390386367631215904684535522920119761340244880280504016359120526688566951820065468101620185892416704987914386048331031828458436085920709584264251187006106027340759034401558094093955434734293336097418680469417447586278912362164347416604286765422694152216920572761106003916927131663462567867538326199404464328407411656263876089905408274144075515534128784228903068061869809485194211744425359264212390273482679128139085667865737759872728032714078720306809022096822546732924198954310747591227608436448934340977389096675812483466759692230443800872610414664409090736436942139111850860491277006594494056378788718997853259697970039652062150783402377167605431173786988932339960354673307155007631902246167504636499258229329839141624200549743591571735240578019470320695419025769362289214993861550530620647177720526862120463546712778643326410141605077303930887271691405447436205520520462077947030958047558900358987100526351073271417804957075277155794958611837463113819006422030461116055248075182713037010343575681466711788484956075251672384659210593950588879965651056414854104130791035819234700433360708040662101691798015441357980168639453419128195507022779091326922674199859005248619030216768477523369799137299503523587215300960585005937184166641790023686744046634557515962579452633971885069895581056580679553242394778013589982083986541998408916240776595752875453510868630791500447508315053650239944931936037846750352659902754655217889116003734557708053098889108959111429049133400088306622942742115081059144237660032226494870409431618455660991935816482464107975204912665549179043624242288520444961147308649390847240944738412668843494620558764628287671626233490413418410298492275574055798301693140000038174608124096258052242503697619316828943342971261056536185266727511013900085889340514017501616500261031683077007962107895238029928398250959909952253182867763545970926714906418387633705323991177513299440690261558375961365403917275995862965562381652246553541152405171848650699470581023219773927648813848107985090457547386349318483431574530956699879386487773570230739190594026067264958066714361684730321143920410798402638271699837273103583898498002112090701931092988395446045219799287651629363312020232483303208103618670913518121241846605198874805452256505274097499521332630935942687805856732117493367944341148299567775265039165807763179444212831786008482467571825359795263528408561962276312137761190557403219680732667987165930672047356876922653441167855575612560450719669568403795575963070386479316127467325514058572993819332535727083444066237909650304277723165744614096133449860910092514542503764200723085440480715104952422531017350237961903567365361285352152736859062558119870464931178686670015971146384768280402632735036066705905069384679807395940853286888306605744015338528408626843012997481503126591482764380417995679928014105201009006335202689434819300489668658246306469406918617725602795626859558102928278546415698684184713753930059945007755721574178913493459246426819342624176225317217266475179572560135678153887222857101569671399128165203176969025743640905799408122479044280240268330457925528388397310563653934994075867265962447681018172522722661068394621775231423663131333973593620112271310621202013681962919781996290958637052500232731608685079634111555199948962300191516772429714193115630069620054750149300616478973796572329451215449245778659647278431939401858719906914474394821854867351478881924196021797313623232064229884162303773579201462639382408339479070384754808402528475091619373542280177584744619250741152532937675124043632639742686732870290111299244012459867900623913498383052377698400609746317329363449316795563758399343759267181400306483435899142155679552895522864088701317095870370655866369394747622630603596098963549748911792448425169229868588465258145933169697472375716149872020803560162252848152082178624369593323222203958270375380322591197712294903286184197963218046340943571666747042882293510332854697607874004523720875076579008356813301065974730937488449960394159117472414638638846518026200336129353620759917681010309754672152622280568569518457176471865371407215663407295940235732318288822141840606143169087313248611639586736005123201239147644462095579070998487860000098532377407174256968446784782346093578023572281349302215640444047415555833414770023811442063244412640007840081229077045216707412768719770898372808586648124948390625047909190479423254757113795020786221034022655287197891482212281811695807787156483843361276566483157323236168239851286439601203778096147987692307584227677420927179079415451202881720440293453258871727824776809358808778735743737208308805764139257786795325901319530561197402282233626591523010457300515872481245632762807095429973243863428971910201436378757711974462944125817090464038522179556870852805216563409055880911901204677737963160637015132498703131703923120262304448273981742921406472257053928392270654510100932222093015556913716312440295680017905561007655151715778786843234228036706556243444540757319063215358288498364738827534457226512059320813734116067868256489646659015348357292057062402851327416988839683728268608178502984429656760858581675435336176915043877756956669316522112555057189537062483512625541777360027033970003524497177698086775065761939572016781583172539050235461030406760078196141358404015168646034301016243741242501088523163618447963005473070811957435951729753851677400290296903704433756715087564603318664835935131333656593820309411596529646314105984638123284393772679634224907788523340143265455382024152134682160485965031299361127887678867941324299317164552196573011086731985299423113794971791890156441759903989794247031587168219922977341998386717409657332416913653239898413181199988034378713399028603561420659164379847258842938379041971289483841176036440657505340050666084817238695031413861319083253031378752135230037930256040143919402427629256081685753252669432879585063011719599096973228608040163433849452462331440417782737247864340570796966232607483520745356776564458091284985587563206768366478450013078068866507014040806624934323457543243310477512464169747972591708083893369816449763411491935574397373290444736346509141716605260383002331367428288788031235529542712184511866310554522092874825888656427709436720130987951618074845400368868506247615411857808065123269780588160371167798028439577573911638352991209623038593921705965998870222575929103171457557527273924702684939934166084214335425360723232589680423185241505793434163712077717886289733443543157442742482724218190560520566829130997725194321033269953456340493622393258668203463212737970708520934932877605048329579184397128994051896089313183816047654179672570094881316915169265096215341275964381055644482987574664956324367007248512550801775499647840490898739436108798976768024357580009886277992191762196880799895811755555307961938194919384496921036756599383546696813318208038657122190433924862682602898216514524960988565064217654688082912276241476687738274958058791870412050835268223064170230670577392763227110865280515273734876788193154376883386260069619617431129835518445382437767355611496158340591298920341058552435084194577064417758457444912468086099988890400795361564791341924444706261817164054769352298158367420806114042152157259650856649735453406163118268012120117486106710310774706464403003382979996565538505752661962833421194243758972791853347887292206860766961525732838741873763722108900340879413542532309700372333282355597195355353608197277258016602246137807188090391910079879539530906166136417192625519009300905561458918967461173854541441999611251490063731222916150687183616449647071482340645470951246358476432390848681375598615986726704228899564323810900418656225378342516283346159021369533790664920967349460816128223656418479236645376683115890698677798166964483877495329877756608070891093212493941957892433938130662389195856486365058146713670936244585685937669096745470152807812391934950577344350738942776644319075284129203412528457987841112595457448069780065133394143452687002261405802953833775816483928708491297386006325624659173181721819280024766307610472174092504206193984013192172744537016017246001366095511044186589226506143945394424730544318358058809836071697885416280293961699501989790607977118158094642492364079931119326057004003516230167613263170745971859508111399124574264063547220952787542793938101068858404681222055281180344703888138842157330910353378667663767263927784087740546531184296665852097651030408253491806886440820928964228963048092417808369499549559063962822911760450415976749994741874517906837444800365257336112370347084434000991773932413667607301200494371663526297690637900362908430841026844192013554313109810357095265632301357549192116463569521568302364621129916453207542217056831125943220795201528927671222679449929473340505369312565114219031659930241076166629298518205088871596700547430954393412305193669244789993931850526799852973425050615832872302050986818205185159202402380129364817947461199168119705543170805835651469565954192522963201298089888392085181507148557030413109039141049104287464993904041912908348788922991273139536976723397840452144041373909766787336861117577970938086054613015340948446640892699174528943087451480615570682228317496650105110679109619869813977379354344119139395508360649471210686808281404285009276578827253389228626343768009966651023065875796631640252272668933136406002085233785920044576109229335249469900407301928514444587976422435716016429354477678572991893388298536073928263880762715266280086813216299963646464403860557576294204079073288749416514195765152759189135617325533684016792851876730038897170165578424829591994382718884901298527621933221760416815401240946169195615594445858498260985586311981870772010011577907228625448784553180503018619338020394499173088377228281033287889425587853499152435047046449734440865787172912639583912702485402205098121857511406214121974276881865305184020302196639717043370491262601696395681043613129299173809640274292225221396525699263766684657912160240154587200116495784805049962130140054397624610529239101746249174653782543228910734336447412478256833440866105754267274973222317466717809744565209017806780787280944102152354354856639915396605685282141517938797485144273338077698032682705276157773835893028697181956423029949684176866562677240451243638697064686228584623467478202304615099131626269235743301887116819941992209098751048632152172057776423027597853047518450078665057617912447588788355386665739356029184189549127804991052567622329815006687301101102329000290608210605371920524762925778063482633375840441316994810461790204829658875946503757319416731706486800343186101839247393370985668157486709409423504387575603733300712763455815856533131649775674639019912746557748793246680683374283702633496947568961330350894182472102426347394571989503825373676067837495615785620169470039951945623236828299149142155887191140820234522917178807653270360643255746945078103929231318504364748832475384369479986424222893841433009671413439125516512211778341374694140625938803658234031686468659612463665304777505084768969834572866973652619865176218007704894245615934120400407235569754463049699166019653329977398171592046912026943028371006228089956456695158898452841734609955996334488390240802757385998970552208922645828708338644168406677282609985629323166542540743237335198775928158182814139897613328283679842576299197317352195643088562874181445676857058587015917891221751898003557354091136857615596779570041756646447209117874090781897256617409829597931289178705390551261197506503189005573078794731486713906260149338524655757066843194275972247683406433897278059044585720031063315612963359719794615108291329600272369664402213849123457430083564973014102212824542940751985190214050691979321934998540423315384079825544664998678122122779486047492093121069291121649612471302235733690465649045628599118754270050296831522354939716864230886531306734108943069152650248835481700780000709199897638289714442341026833790855109962181273168250828003920198870579671323102812243608527521234192872055605709171569364100461505098400536138057439054556468515941201550753349056566667171867531244446018363459743267669272334480092424237488970050117464828055453466834370176507026819507062012515623747462903017690509330643611007738005340555105574336928289474558060571794136182599341338330916259779895657972330300046349496431813947549449822495415943836264875116667824284550460883611028876997155966412942780255390346325502332310053174630004839613809284045378094185422661362453490115018381172855553958037058549789818273046037793665869731671633048571954761570019638447459609007396562280637815608421245546984314185252765969717364283362251527305097809690777682299827064134816179567577590991206863252188693525617649259172085052480782938777930967902246293225464405361491921586902956305833923534506319764547413197929843426160684838145878387568262590517610141282281804622476905679464988119133405383143594881344539865377053991756995165111641257756608061785916686773965834591129281833553007680497572721217480644205498664897696456522299161598985672996963981087880612204597189458267019184780117807786395266788321387895489220556068202696885109808225810459258701193954411519906263700255045528189679469879146873917002630177064204314014606393933677026941258188687292752112416535543155937754065344795588568663516617224157948438177009655459642746624055247900421276289971697159279700153832761813067672002831925868524580749718467353171910213444815107096029808435859414369312077980235836967404418761290065864647312791630998383065369610566262284623694373526245201292047336912864108251696729555156605060842417364905125643185788285495850041029324673493865751594622501391993273393598251367628540788753236316699319374022461880185653875714035571994653270533620770017824072287793396834982276914654740290648948554876221737589178745151214087897540695227778777525711411081213760026884920009885301258680778405807618571133647775235982362788367647445749873736660133579070107366316004105413668460998352377431489384959225660839061713352789477617796790449922619751524190503063021149844714818376734533234681108649481663501038007776172627670062211384113901509550856788132947137786924308657520899529854417188019591173852617417572096971225592927745840994869436534573910320929458507547736590734660289556236366222265088905579789970682295101631740886498533746065935439191041142649880134325867829891228725615341881234928024077185497992805732274307406657802434181591258462895696564843922364558935795997043333524907142514535909461060488767514227365712166281052227363559205689239147037098457745623853003665459321190998061730019985220660223651746128941582753488733506414023401131674206401006768471147918588464575663334702803746807575341419045127620442133447891444561479588488987811236319681883005873780465358419171957213350567294888339258522249471735276226851968264559038181121179433882609461256456381643597283119872868526076052757408411724685924815553854539007170278431017106928904828870887394613386259033729671300862159528090593588672788376917907130512926572067349528891346584780748566532193795293611901348130424164694772043086488623818870605225878134512704999564073656407885012170072241115622593722126608327970357366752969140868714216936344810904168114509783471618608384127623618214242711725621210124648708969484536193680291248541163751955416835619952819012617086730855403804046225789752110724703923485799397739194840567146432722999721101434507992297392066426685509577814022605080729561473776521680777170358986556639465522916644015621012125552466622012848368566835647483639107958322735655712080376946547676803555890303488591207888748134660478445154692735527585656435175064128264820423575478860210501887756474757353591037188658741362803214330933151784313353692529639511448799590613548011084357045657691026029910211682433979424540710910279946532962276798637269503228779349451141223677925883437823354069478482888721847944688508712961068378787098776903462318440048093296407605997509690492080189635101530933775020937193864390360296954361453168299724382395577425968941476864049155556901539685025944631985649263283215621926914625369291999642227827344449481344333819282753319484931236345376860970961374001649300115480365067092991052005177220636669867047723341391105967769571918038525477086030812741661648341779526021857300594151849569850392957495064343078913725072672786275420979144256534761887991022486724203922277836693637774523141196152608869082544084644442128838812200349538954163824151199648450194775312985952193305840463974026538391674825157500513680748003921499322525441453519952765717481972537066376487253361329722054684390999807856705484842600472953356373060576453679821093694555601176354224742321683413767183965691476154182917322476191706563870996319297903016003353105843347076586454980152578249061602077057713412200588982907982789306100644454655177647581238849130902915141073493324742572596920805576653653702902893244641290403151809707121468726401661280302912882367416743982900722202588567858552186577120648104540627401699916725539066427331866529563318654484632106038452097893676828985058072314983201516963410914521520971836387771646385183014383493549681480883219627214530545104868767742072748433918012843827310164561667998894210666316839566847573074692841634875506423803397367775928916391052097507818998287138335973188025011280984602630782281685115368408150118728432518435906917687887521492231163945883565605617621373233943055635668847057756801577523651538978122551914132266453572010926166580702265161469571133978840087405522660655608320919626117769132629267395722818022581977990144663620047920691694601045616778622337161740199191337219619439517181904138341818542319720040883984246391620205777430650434000482488995449636717372931527988292245290595743668161815949620323529235576288382242915010142761051579424796320048887350994316845911766112165696713748417294745474693504739565089734131712984565421723539529766086178758185907714984500385179698939885692541102729105302174830274035902767696064923309703121500141802998188272654470319282612581106896002507604652503704510736039375616522536802556445850015802661319597028518355039370448162027506415601865429552404608519501997200446215553253271031578223513796495770629979311671840025005563982870832913139960634053635647328967680602474052121039891815679996673932035999386428883474155133604651729798977757496753038230397504731128693372840694563599166738783061740900420795618141192711189476150757826850408006352959405930812044858823029579501044327046409238849299080835733442271554555161117055161707306530951187329027639253174516282999826845024234277128658813232976855101109713314580304320552066418471808505195861487774919088888999195857919867749960009743189249911008684632324752497772080020378320628116769587060526255834788836824848024204924721714980539421416591703529643500002157478660623762823181290528867552496952204401258096602500063318153207016180291225241982305995506365754966373706552942926020501472419408395040522760404517693495790930559619813099258469103727305694549896361253190730037513006935051079270009799350811347538979629624325704515018818264493218301962982196607056608766403494441315678149551294278288197291203065509349963537896204100567442242210932682593674902852372206781314604724714210595061118705524157505124064887131865472256722784062017409664404678589554091533417280155081572365417383242843017802869554381544262398180418524011901178320379662084922026463085198724862747264426064746045142338441369071446412032581722320560568308061700078423550462529148224025712271092610625411068725135126157517330302157199891440094557577525005181968151293710779992017714493038730110143129412240132380089768350938993351919381184190526821189503749712578204106908917340053518556505450356049103267615313308627114056955183735006625345306562990285513007621161522786251384302814482413228089990769605536159356498981135965296028677492355698934145563337081572024278677419195910779931406167012380462343039331760161644462507939732033503192217416351918847848108343743277363652653489652382306640251372425860930097803855614013354566075383257328178818049254286220223025346744342463763092540942915372700468192367950977545095045069960938875331195911999344938926190791173691221961585721192668948506829040396492998025628157946401283026022500294482431219373473421338855199242677077533929940405764306618638888194014189758116421592168496401438915201224980582653469386028788938686720312404157644384149738698041990026499917986807994189596363170210394029356635937381178448956377299627137343233667424780433925340860603943004263800749105699737874389151624342305430945257604201493955106002250183212955734085897195753776284702533176151192236011318118014746461004852216543400243759030844714269026336208135566304268431450658526579920099104945972954358688284925570807301901537028413086017791467439557823605232115419915463455189999633478841974560606304935231962464171767726495740192735679985019632366477187218637710531347502707782007050120258323458212533114969887105858323495778426427394756305806060860091348096993390172042309661357475650895590452268070979040937742082535648637105337818152509194836346217240472955029549731911432438880946184238036450081260879577094430160469989622046760628264871413273615617771462063722631973120608349772894786864262831785014621901477696300338822237920582741567910475825862613041953750215968245437394059099326405346713871240352112312349004422812445824580834508966673120891925096424917951569457219038405104221749418263087062013373133669951782567330290074633566238022021210647277372028990692966223020487649237578818563731388364844304505174245426192061131822081141713169543602866621584439018881829368961003682580932266656906769647628000240667178433805499667290018773019514063382493346112369559965739214824369989472580019999137108244753218690213154916065183793194723329734689257963323126172444679658896962595036219882372040104013075027972163003739660783668365000866974215910827836337432179433582421168897546097421744678700959577349403425138590690581400689226610267330385852366774643350267904225434217511569598418077749678374068408515078657528107895705979718222887960506523376853093781506072275630594102773191305395449834387801458575829058967783842876831143638954493786899835637216649750128675442955142205599976821675406883017870503942480226022930808429612801716898690547134308409380907632769562103104301009977796571337918529122143714127755758505732744391809454472385175690628430323393747636959048405015267189774383448413081748511267852399076818034510778568976875328385980604814142702294315245975147391736555042420220636835974861897911012869771845339706342365402899501719257208354093386897593479141172977502801729139184432482965183706305994007177869417146598583455638774318405340381665168455651937530786489923715582111208317039626468908812191413868235501878000015014181641950646662041260626022465701727065304014239666378118166896232180541162587079890225013884735623780243557173077795898293721782970413440990326449560768705067970222097306822253870090760159046440143361454742505848905382185408603562400253331308024532725878234795425290003809794877131107480059586444121622634675090791297240349268528438922273675804632392992211999855857563144672936947785966597633025130817961266524630935121929963948578843261234687979731605569000544072919043585904693138559856222220200616680280170938190117812481536177758789849308117774466117863369486688378370427312015179142257798438787852317652218586498086705351364931546338359047012204765564903854089935121466951182151966522413965640505323544786506437506907652565918708857306471243120306168122410807468515332829821346089999787481877560735647775416499214796880231938627593414804794112481295918703335129923069156341481461963750540248542578465763319016769665321098199939578515560599931225314821043515181405213171398505830324041191904783298149063266934347361198617685245146783097030211625115314155094774810265903462560899034188391605145659347206354228918337531803321437137786257572248546896830181854668572509984983711759828894473261308268950865706425903759745307067427954480361488456448253325244178250552412145647061734792211256263096565760277912777654417633916963425585500300650830615266507601561224675892160071152056266736565466705100206813202038138732280630481037635184312495216634583521718331230129705173543557957360233626310293011373124631921278653625423321942776700720298877633156494830023185434916318575764036248748226963764289882369475261895778829442616075993911603974472568546610195332565803621276913962566070409599326756634138704633498687985996159971588774616131088473903979543967322700210049368713864392044148918491524035241479551610953577970274340188500436251404694978841245879982676415797101466230062446262688064650067619178022558224458732673727160843971580146866866287945511771973431557491748904172131444405342437587883742582300926461300469066243340997279551311084560046864896866277310257135599935312441342229249733265283097045015369570378518676574689809144084094522037416983711058309987686481452981040680320358603141799533339022251239336838445725875864982821758469412843111429888705160055755789334011208146992893557476771054992620147264836291018354993285109995523945548114869402254311989309054463108799856298646406443765577202397351225628483723165662919261167739970127819856439801103069323327132731121707328894865079735801766737145000349174302387060375582481753184144687825510245905855014162790496436919857262825252776539782279641881496971395375302766618170791786032116072891555088217602819159101708933998387918858004602417449334814360697540154834010156068218269409595406104926927119953218527936536354052717442514072780304290652763787439693719359361673268981877859307500664117685879690953990715571703048246704671266905567079483157745261577251916222783148970653136735639195042856381029853986342932043197500976032460785959090571762250245218558435667934819817406395380314504461879017826489450780479218271232900328370030243125983504194240601106615475671382683482553634967435690303922763564666518421644716529958957147770355227193368681103491292913069210292308499660706892324814413685108810950996758207972674596705592169719967005769670091170533249989431711128650197933365164408389209297111272946657624468033255386565836667106009161040346998833940301579238615837601723124135356650584153279832355142513632234633348053450594570314086496981736831180493440670149022937682355596835576395564008712658233535425914560862708968596026798717017029979755221241890050930773816442951420234481578108033049282488365968734543730164033356262372478418359383025953403597365898770036507707544720368721401873659168201559319358459828099249130753325040834676311704618394748330892425438838615502600905693137370513457493512599546738632916257829239226908181471469159620084296817126287566623135577526854799208917569940714644691882182538385099892913287731090532154414830564613389121743930901044798711858510266170277090726970219376866227837365883497379117046820844536371498493531672924605812298532081187561381241960672575819281968005656858852500331374863061841521362226008494337741529055242542570282724348087965420718374133384239770383597284847274613808274275855804643503189048951993351598178158624920429657785544214574640497719597979797726360777004748725016283500386937462052171331268685128921501159876722074710795250953082241342049162328915760927013392475631432734975237543037674146118662350712016806810632683431271716975486965186738116332117735013527261241666845840396465515573287602191547301183774593975228472345706427618153646172900712011032655739962249192163613612804536369122280031379440063433757190585761111314116572822327284978324580943690129565114401171673531477163270146811367095310830909102357374067785267726302658144432297680213383183119096702106104881917187661572592722195849840042052869495051240108037462698708415678452990387261640688431410762787426491976497028999498505574373833535033887442349811065369021288731020249562376285257959050477047557815111762101866985537403626989058958483404936476163920169739407534251875727005616803330372255532933704236480964885735414232558114915177552968442065162897909883803145144313099018267454090766447760131071538813570177731626148254951119775005484116267139045270560165335524563079462645785690130442856021546555965440049430054854464110514501384929263686258498187398796844032364756005264733444007865618971930569958321961950601372576899928101080082796427489272232164225327698546618002631707163913917201428417909818631041649843668790642939321741998798916862214652143790870779013619857876579252628194247313516345173913888038772461970953166812688585851562584982201057826711375948686238272915742861426608633369131345775639058410351642747533944400423070129228396165821934694543109017668297549630590463583663868658013755798757216677889881187383029723932210368721922499991349388384432310660163597354339334986684442912945265811102467639451798798613451708997491059491003914991055020074234153319448771816936857241307765243053098984056460790097724511219748779813600646825796261326902408652100601672792404811141127947195721814234320850306132179642466571691540429691117171057026875113278250722162072444141322363253902691837115680433185248495397188554736905931981007282267662242956892520822275756781905402717137737270725534648987566977536922417517724158816136980992089499403955554362799877090433072910376506309984659503842552224833369990547827626213303810673897338432927181185617487151010612990287099370816518404901194444931309668242911524105599807264629616461863873995005054124154064999071389247523158599491472888983768303142741337971179265067974257554242451831083809711331706389054950977858603373785091265415826585299075325479499687581262312989023251740336121468487653816596680210704755144740838123983848319445418632629037913361954874426151795631455522837290423940768471227861119893447804747821714631033057154034813360602418917975449397275757000335993639359764477908905422855007079131902303710956025405279952659097835961068481228454411410790424700647779661870118938907366298150159959371206276321930271689216937324942277891851064137961944371001154719401230545491098762082342472666111566959427346691010604197357376978661057233636253024502274296198107197662421804083476183696972278815586064002573210358535736053085014644289635808710089122072157610912582476630987300238486367538282152040166459108773221382743903792744803483927418229069307521668637565489550154179542235036079505919611267184918039314880106601140911994671614347957614686428994201933464535952849451597966466560912221882271625632529927946797491664940654609076274695552130327008198218842298672384867974174128142985966611894165715656553847926969142871841217185820905988462277295684800305878860209822088837000064135025640599897988734453986019418304353450378673214676946453840978629802208405731200113590236820521643840248241707657913820432500860407626710363393700186938122236293829635676995475091281910023538418324661124651679904471035708022731644748015691692083857823769796198852543962520445994732574049296177435651229253935541414927488596905023566985175360604598626364294656993346513898701943366707313469648239260538411731803120565214929129685697116459179583297876354377511491497656033749286795829555336155453615528961246918479783702823551265116168301089647701911525734272624415861026964784381417910131281326294721076012504584290640741446306987798447637440074567603233374988511145664573038847064673605061915119279056648747185651264829860882248255699800663226152842969461983415042971355575717891218793043568536439997177017732784843918305154836674355453940561628161439683671738331295846309396438583689762971161022644169222720013776961242082880732488998439764384374735269933647398956343280584711436783978867087209963776014399775101858741236456003330003830647153835718497211457068082790073265560619834647033987732333204226569895622448112260525464382223053880910935846761712637509163939524849636097281383614139059264373787854547350466613445374743134773576505922259362609120277349914301320464692303287547542786363122425349123740853527113077752736880982112176784711812803514517310077880109726938646520002883532886214800508554335817027495481112524681531621781588071887185765862546171128463415856177288955442548094091903691558369908320285618000503887327515228798612961426691526847257358304236874834900952979432644699286416028652970831265538403370845699767700532430846219804767189551347543289811412181105223282656697082179815973552033772574758609668917246913850344375035047921261767548487376190833909015623406030833092222032687513690258187435307930503150405902409352536309346781445697613558608609054397330175139355188791213107352871615989199652528999263799742442866522674414543889562408415490085585611208527166756234273555627233325164937861173477896473973540965760860843433989005138432433631558354052336964889194046395051509596178003033903344768392057267511246177293285896925454778465750751589925782727358637463943265633341422404759159590333377290447800988256343293423792108518904648059679433755006208669217584247800813418529010468233021385833669840383849603562119283498906031654301305826337938499896037668468616001381386646086996274502341152748058647870792110965397171284900422580229745105949053104348229605991773905423778869074389094850305290222454580594143025999157530851771980431138376144785433332447929955807741217641170305732727270494245809225879972809103892918753767055440403591621735501190466760644135605394117475420152826684623882782632552483295653356590388313405908803218005081700593332389046724349753823157474849073577105819407424017048962499423894150098057603240718547668641548666191487601056342103507341173369241101410300102388674822483331824338589489129275463654807762375567901121274734106165612195374156401781585232878936135439555184699493491933767080494729234428712065574401326331358942965904689095289332643977387531711748226272090344637003502103149909473109793385422381041461005477905915271696577087863395720505431164584749248768189300355933430817301069956309121964745615797424227486397955184266420610691497676899308666589276246299590277047508874379240334741587987877885146201660086523551736761247269305005521541454707750633670533890065946017074166687196170478274116698266506583217687390040576476676678255397390637146949746914243373909430887471912955723929819769317196770376447366783969370448263220302656881302565598506921072711708388440232550628653160009143064422419031340785598153287662674792221721592152853726462946109772570209693981954671733334396938922259713460161306673433866645843424684963748017245538201282655714807461440443232262522940777682881970190206792009989698935069442167959091841176560267561228332013874450792902744039075094759286269614178580246039924747611944546639963521196647170208231836040631180511972533608617328699665982696483149778365143555087408667833844560812054512416666230107149779868549622520067453505718737668463775888838576667450164553194669931579548257567107619895029206198638296132909250829840032549544929067662230040576147109941990840655540813742504884964719299493524952491899928196687106713950098004572614802970167709699774911537217671600934187848925657409044107190931196370638671739365276341109076434055178032225014874010921919746523577563155766706894272822791578982668643063542597598298899510501008047407951993215163728974580142945827266668719460439503456317151342712698959152616806781818602434782259458611084804123747506463572158346690980111205792480530163605409908262068514812172092600541216021280920663009051801911470159923514483600493572733362982689810688265328129031175597634691071188938054631226721077395028991554329484766926477240899200617176790394303898906037908350945009636514680885136919373995906810001208874526770176370290371177219260549818124745668223794391691454327513604557879207491016916363840061140759198878005272329836381292316283863368853718087487167667101953891567760250553524003655749087416024923679604305387930802703837079653479874565095605920848961326106441216019700187283229546629352731392756864076281453261594336230297738108325845566039346654405927305297724697977813112238087862734443826733997215489940336552849321681511353789086516650968497948555317831580517588466628838858063337771800021450008792648985693727249477555361395355716455719114800339690318668413622361364690881723226161914196183953865235066767017544910717115385794436515821658568359463203166523908001495886783725886837698090229051109966352686775939607009484989992424728745777910053577283242981233678108293693268442268735746832105152428992473227897392625209070321491328419429894304958853281854224416303869290383150964460547728460745519523165886417778377101494491257352111553055039626090596322136590413477730841310501897584349966178745099701031518827737977609795264297188244161984109974471912842125896894501418013839528746238018257596370241833933770482877236112184500138763523723737508053702082821875407783516039137908585432025792229594722520082330862894196145245544414485917873307384885339660035489071753461467594383285792341878781643582756991780025609543794140236686850543171507642474816538351483936514833887804775621227653527657402932390910540179760078690230145929591419107020927781132316265713619521758363171930464581569020892174143690709585320582115765069392954349105317787547833028182109882535480593811158174600569587566460788287821165149425730667201386308657026033057402370805720410231361214414066769651054818431830939387784753408914056934864497025389974997363702189356551105391365578985299836159874964656016696459458127749077461040102816936443762545245267511200907139107359404909842217354409430337560443090339294218618838972943258293404946181603894869382684901503371316804925185478001802071698809175897769641034989980441737632294541081920621536823869416709017459856514033954962798086586074506425051816649739940693747597466800164463632866566763077494098448578503995649222897976610740890413856906853356579268812601565214816944273161424760996301663163696445981972070068799662513609877134371823344122066836139966887028702275312645277734810093418371296683151854570278116478221021065176719898625523223392954096877525211145880700243917852653950302989716173705383734146221096876605498312061667155212623597152604025453201267582098971247636944333219126988121731325380417523791117860738070632416865089710628925860044552188408996236179542832212222720605800487389596425678145474994258147863671369177548049876449828227314973738984349765457218442683872254291288749654617679733027154027968434265758359918669461542175662965527930271860498681997890528810893812473427923256510622493335019657334081237409973486862741544652854804695010765697525939208407357168770204376665787620060194362322640571915037742327152312221910971379284218491296198863129142444531491804592191106469257997785933538594272633374883458014389973163702226228758482407641093619763657119984764559782362087534794761646048828030518081848748839198805158278397511831687905131915364644663174526738764688262297608219819852015149443063626525455789557452848336977666347755119912204963939520233664966855140364031077103274333888859009469229876873123604268134067383020802369465196097183320584664037204277928769352472076483457000839623760941053429069158841646682482284886015079226571451442427655874713997465295105872981343962043943691081771017584702978729158561541752739982399973627489932430144057892504303622827199615969020950215346438301530318036040749440199194117628996148808002714114394273229909685621769275676096555889260928560252434592097358001884997202361311283578473061718807225548786134437125217826573771339835741569958253027293956780864781575131555336502073575620786355137194755346137186756122978226086667103022420220575956125892889867401933311104948708434966481287582847782857414060397008861196061008976328782193148874650987517953444757168909430951126026516131896826997105291072035373456727289438216932693627050212694550376383569050970669798047412315571277255046435335993011354649061322623192337328414224469554558397706108838293573747706920530065889988696244453026845945516880008143604508493408866852560447521638006666092670982525852888556247884080399499794084807033867981054710344756213085726519183605229622296831119666661176823861692694836859787053120202819358280534172377193058520520943480781290280136276153037841940770878879297810114075497691235050326074202981788276909386733401675948259018662870424239856471772657937229174247942912550748148939506796169395218365510399125924220204110724473574959990277931773587134413885584349359230308001621189534666051353091988265868047542039452872210102880557497761790735233141620618305117118877414537313139790340450637197224807403980524818571271273557768502586655349214518353596798030948666056980794223139024771935920026886763529380573408864394501057685804624652870510493779158267808744892066043187343209045664444973410204801085147915218092585991690820961055128598429318123507635053072563933846628838497219058609366732794587864049048850287520383155605585095205269532335152530672976728611342675931395187213546722330519027801605939514587138761310291153735576921689111642400199438709506835645960057220694710401653510771638135870312418781428463059187249165321491391734945426031074834578874534914011584804843595871793350442282702910494977884772162876385403285273759308552935716213921506938766542839882415917955353925191836173450983015968028406211679046518602966297538475755244089679796387459622474424308636463077244632364369354277564383238110574701081589153488471565176238838928530292367235396250793879501997534347645761783327952226850079388951126317608043490301516142054673908326879455574700856361793905860355265512407664462950004381435583151818055011978510302573860268470724279321611206583443560977779112097883758442894583272652129818998719965566115249221120493580662626774509469379097085314386472857555269590355298534960210538048218682569824436516784014113810494444680754944702666053166200574065045420562228172406932397791998517572016780276394297949779794534074678352695202098909830747087463039708868057353820255552057597027359180336500758044919406025430298132570279719087860676115895308175752103337594621935460840751986019892490839370542969952663362681266729559291009247446004093784670081380036503620800802327438766156826545132614206634152394960257988387696328112457351575926696963171523564362510989171498313283565332977039910818208781021408677315365642026471601460902443388539738928792163392452807626138170951830099405271377123548214278581789277865276483795186595337693008849567692178649481770848505106013463101844733822890340540862262265102732375327222955580359157955787114823035269450157133269844220406669988346536925886537593652197191036774918720207711665609950961092688658417947423424770662848246639403452022467176594350981138319966619387446453081541852991150092009524749757568041658265191340179493833548850888480811132367690928563713307631417186154182691225627685194313632940849489295046407254791825479207144829969787865699997960535733140500293194506316874631658629155271661591423889163334160361953675940156301924033979251969659095560462482975717604332724731625030482451235234825568608655338159392932635750302504209178726592133935833686368394719805390167991759736859260659581670632081021521161554277869471318456076088318702715239485000818894480368102267512275603643487631721757200337356061033660448016632744712989989885186197731056013712891472420014608762221473983289296028193947756035091742781844496499936797346870946886100068132334235017389552878810946695583049465335097380643281197876085380917957039847887629721949245910625363303496798030528844951448767146115913736880820203369955810098524560918607628560725819397640665713525807967403019665095623731832785405353329864676304289504408158638904342583882234692561683647227288460562502307332293905983430682762124492048536836436645372131287606353296643826612467430794445429300853676239574456146072901475568909561984317622711436313526895637612760028712772849206528588833814457524362072598314345949469799635197748053869386885111347332701268406833973486525136131919607466826788196800264437978935253144429534892924171943267455968304083109462791884238036651038573146845867780484809300409276926893794699762657489854147496648395648835998131527813079644223900174296285059675199511905685851429169782328007517346117004220600589415652387816770904809168878423656176018757401828735315578787738998326831639132178931163528812703821673678762436749095916050336197883104660860092383727311519111133057279648985970663939888665065046003985511378534712413239914097899222288300794124628884321474353457590939706016252947489702916232614401190592927453552066921351024126874516897944045863038009438647228627864817868076380605543046106803966914948686200020345458389415554936583225913556573134169028996646110133548495150797422528435765169574934937327365580454720952197411598535456581383086237295310452778179826435228669241934415890838083356110114219215700724361592801540148006689920727811323292789677936621821305354377987529446346272616089512813949253729702080072979487289365606586115264327512703719755663859275053703872838719620685661514203457308185551991187774505028953632020263356684625754555585586458065070738546053507637219328140300436220676511214610408557874518296623651135160477128579108757542099391277497534702053670355538604639490884159496186925226896723563758843667657255312137626554108935194316508481947116694882930383677452848277917538986633597503133705217611534530402325135962605890948491735588367163161932043691309666947649947589239843663530169321267857433004122184597564229110692161510311513916009098074966667327797796668395859130202767114591985263655993695349225567901441332807290994574884404787667775174244799592559650366158113313120264097857209425614823022236342775429661013727217435917181591779028494402241027164434719536965758270422796572919090547131983005887600513733730349674791859612394049737982343533888899630613494722872873746983793010864063847023858872057926653386422562766877328635887106311939017498763978333693649280826543847444590974207501692262668468762940602063743004030012043819817023095397554698555211819847005731693826903593889794432233171947895921804379458590961633857188412582679632315733331764503454683983030035789814661086051033333984201142363412136104985357245534256861885703911557077152023558048391684332837204947597252829166141648001307540458081716189728780469291493227286685563642664771336681788666456338275848375504803232867572402971318620346414392484725311460038764014810013767245591121853861260347269114330641892069793329496887393781457668013224717983899338703572329370497701266186755641937230716408190710390843507127038515317180947229795137726360706061950739631450074751100649536909350953232890724088778386242351417538298322632052790292987569759837776065261495823309100193859711960005733769336460304962209335653017511386998425538078732644024274869730776195349343602504194035684876189100915329152214987337804084690228486002084201759438472327930786121460489382753691286650575017937223882266060556619414308928027039338444009634088845139523280906709215389059523060074012370856941250394370629818778969089730700473835516396273775251878656531856208179098912041818636025118358847434421703133481188155627336294263405231257896755593221164211076991612633314017082254616098804038292686665378120047179610113715565191152243877104724238298004447987128091974165528640085907082342052665593752740607720474726830127034178858701756887658643830091846695725313866522438699385257411390036917769681982535548867887298241601965326553680830442471491820337655788929829038511665014212375430078425215726242439173050524823430504688416177836461117467193331601899221816025962078370054347878634305463739509509241559714731189751089521484689128012625115125582388244271645265164043207632883882933698454257409728878403899072657209427874046746899513430870390202133346347965735448165962822256293351045268200414211893864648299355072095493361922444225789799251168099227036474509267227041072798696282122250129532927439461123457495273408806818898548443793672765178545609896379108381017218207123205598260696349916112287758952669213408871110315992740018391160582190644207877244907522273515515373075710237377241744732295038539369886565950394455205092685454335445796021196775145395277538789614081967691711326298417961870961975332039394198056020515999403881788231907309978131773047502119057436039389230245512185428169334525336756937569875096437969340477482366613754211960141581083550147667384576868690544344657088367844764684824578875144951748655844334048561148025869371712259616078917949175019182965334588410509612801791388295910873020224563514154266360534960498785173617832730586410537931307489971508950243002202806383158032617274126859995896170891652015635815538647577549666732508309824706478587293224659274321328426831081687663236543121483961415339300319985016363139061594405642275963466503896823157633208233766543765721721365212491119149707833888313043175110026126352412239523329843097626833901007580865043905246423700823634108444544590629012806496230731861199944808984740618937499981205151466673401926115158219794082334377666322437836642672197109373874356807240360024543603542680974766790731323186427068676246289771422536446985575136054677852045017970622299880633596675190655196730385892787862176708161211269090074826102361778924204541798277505040832630698663814762175727231141456675914891547701228579019438366710819613989317678232617034043148255124227222381468054586440275525883235585337551382092919978017637129083464531580305809015139544788855794080053003843337989140423011507968725685899334268734671776666103970083162739999339622734839207443037712161764766431118471695100905360305218722111298383400340417927993839886254725307005485872361714073165785982801259642728046054237889408961103041903250654423744807833841549615552911530670835816352118232966971303438466496392866133650954820090535250021232754356755744907514103532562655057892555147553038692391972663494262013115049178579226760546441678555813438229196899999966880536714155553210768499601406654269783714336973698227937898175205381797398349142234191096667149264985570501417201077376450328733454248219218086196376655158493310065049882408486025193599623906272907204848004444149829961307342819849657082440679896606063225368269463310567580970029886805487118987690933544201351576615884149406865003750836934834297222303913498287888319376111670731850252169848860825396328520397072801260294378147256079542758092508482294587871829080244566503443111536216118197316096669642705370375879056420730763263591139588590107414584504157589264993101717393064419716275540972906782555330804352285951028856071414691874514425546187476965515262152362414151612063276571568087341349086626793106232052085343473425406129931556913756289280328392385112376825254678092819203250514708074713022909620926687780557519977981099518331837560338907302531760413800652887428766824660096224069081742422569337296600824948412480523687438878480010159247317075567005036495684989289833827928908311475217482838939832652596240297680891568030766091932730437876363005743766387432749993498314398933849962326154735789941128866044138036467413854982296800749952972402701400490301676639123421586759570021613152078830649779865008285702315392496861768549708222092401508231442058962590045696927756267444733637980464066485398257635803542086483496812602339976913024910535991894378025386784875847610801420167606980715735383076660511181162260189427769449906402280388555472117804695740940536241044578337979657769462067377120192328616061610058050898835155562305296052356792286355789780294888198100888487291401667925454139918236630983281267676558130429656068774076535131550614730816888904278136306588348187143283078274534153466870615165077402525237265116851095255674900140100865734687669552138620569726658439043876122604722681942644277216935100564828809765891266498703774109302556180415532549295355512237655800614089346080318150431586445989261044568760866742937904924019659668773242303499835760708036956433586791607927970488120570370521661545759650995150647055460038089585143276118067624002980998720205812477408498879514404386569183272505290979509387810144488544261144527769374051887634790649038583706557166503574368421254990134779015060990205246991184904275067935811158722436696835956267620183741911018832790161352144251146414197563293545996775088930902770781148903266494408753468549463683795280055593297472681547069933509973947081991164899905833247600393780777735202153864781261339159659407718125794551185941019768310588053331652952698963008875124310283343839755557351952827272558422268735910518764546656839481519329842262042971481166725959748117083913812731627592320707895535849585620387806823992714745433037493686674083053787316050079728801473254256269962475344450897446386955008717901737240112310463145371280721967656388401393204544411543262095043813631192979272053868852506290157005405052831712316641331037198033084613170921479465908823389991164253585025494491624961265133790958100080413411353639941330010424458258899601933805497050331593319980379378882195862991329844732968600064412064911846841026564985129884532995901802996987280397397951348279677131709521198700974608178610834485237517861555280345203546205685212685367554855905670972612261228356370646397640689027946873980262044626237671965542162262294892271504379149830054811691699340124744830933190127973120759849036634632219962917454955158498738606000653937680749236441033538359811027159572467389274938556487480684612615982940406571131520946556703949556544654024166782846070507441206712475744383280156820206223064014954246534513061884716315772487019501676594235558064868124378266491007636761352033216943013831982799293351978953460890214967633572545455589070438239567088879460883951717783100893587415151363222854576060869439031814299245779689043664828676835255425375231784939176797930465716591990330526189765256103696530135471594135372420406017613315781052132127760505406535773584833446614232655290633734368191420421819966721239490178843659795933155375857424698932495946407711807711706207955685324070381898888319846452712666303796574954836473558053281918587685642962468557550959285745775461867994337766160942601598676446571224807460553574956336968512176920851929774594180416561467672711916174144228273585754553317967211580001258745864405813891779578950106365123095612856248493691895460252792360544419369538168500121530638034834971221448310044801981952865661641740281791732798795837543770351737002742063506304565910484431694663197827601673774851294601039404561449460579949044467554570780197453564612375322955330730348453624878738451162824457980546954967112431510003943630460935413282654240853257257429748446869722050338176775122811134789000964365121109016621606566213975272512549140103397280910532024138594760860090712773258874220997561969469065406739342370874561948291503507759610415283760978936372600488505069968214764452656567216064956075134988490037444124171126883329436307142615577299661928717584582121072843645773519587198237038152675167191272372754536695238015941645402579957953349872986683115359058831246486220192587838159664121641949302173659126067009490836882465704305341476611967918677404509637850989157713222779677555414913675211200753854520500440654979152486547044516345203999835173624922837997837747038829920120909035680424875876290138951180585499512568629647117558455882009355049633300227583437943107691884719465813129570669889466348457754977725228403530002762616650307576999359663396186817991167937341351319417086714461628406147175175912343144482428614106033823084983028543691124939238037418840133322668168697427044035660408267152287126372204507560357457786891881662910328943302329542990211475987263465420579745934915865607734400936555628472196416085198119964014363897501575200036401036479399671330624827901845795462985594645290748596572995505256285552514483702048885312418549087823014763422197608057776501498151327308394785421738221162433506399079481321078455023881329475676675378627753908310883994781649869279043426686275037708518501622328226380075540522713863123247802220972258400056208049304089688930391915726608481214541455060586977654674627888366049414935847965105570682673239509936980375154148939199135946178025784731214609766816999997039216083650722822178914221157262051861476483329899362857736414461539503565963026294228197374731478781678549488308315381135569466807090505017989869603823751206129194050527899997546235703257099674235822955396725430429258936054201793143680281792161493869236244805639514465894283252837719979745305968215020586981574736257277454813493399872110538164699237142669666871837737393746603009965515724504584000247668235079186161835359363402620296027864457822041206091585947276549043504217589155146864997640859399989881639943561405000342687139997437568419352070232888090917776592511544271218293801572071728585219217372677935342874885838957493570347262711818171525415753718653653655260386379974924543749158772436462001016274550244490117462112025222628140386172951916086968825336054342083690524384681816100724193636099119621996428071978159920948673869609873574428998298355672123444639601980524800973444094098801609899902989900835434805554235284029079183971647287936079463187230808093145757079010762300270525794093918056528835488966834296999166413459306238162205039050973042762428365548829740705800264310736638379827721588740628880848847482151371961317317003672216072835006142448131359974703464922809556015829765226883726801052685291891560252768681197645571117739672672427024394244099791470619098088658155722635703884971403717825568777299929687263226419991396290006143654045111763845066078271239469927006970227471886786631050405993303514628919875005943700825116276256268921842145290141504454373526868958375877239382446653139783833706716832729138753344551941760992135228293566439088078682902992094980815517265907734908448107015447398388115822354607920926305430267691148048531324634944320971182743083404291160931945877423650879450266957398214059211794744400098422686490202167552455295875200228464948376797095683481884249266133844076330757992665612488059670526131848979081453832727389863022308091024870576086923457098476803119798356472233272404630128584709674621970746887412842482099981390076318104346600886424968338684754025857969864831079469197804084626110672536376193231580938699615577357004954223132286938701325928250467379314719763917027521644252094603930401086455518618196243278198420510511487397162336505433232916938988190763805687132520719061990402041061879828524971187255966567427760512089730281799425673277844815893828901724858033109516833141143290786434148334846080372301731206406698101416481515664866118503230569531440822528573231036446794953744454845106710222134901376069835938370201997780595442357679310293397035413232205964116878335792309482084296571999908253506887945847316726372113547660495096182987474352099250513030575779521207624671994379698661908453680026547381450957353655178104033580293060692721818867903846163957878202016015771180309798340120673674454580990595948771479617708171920385572574304401215303955273573915034357379926431869489266932263088077759703823819207416352300793667474655157629802043062386787481456548708821303657162437021617114296064405087161600059878987854383336294941320695989362624549287363450773448577610815601413235085483070859215490479239317434687887910038584704190631457146257689283276486163011304767657022705920547321143066939892826516737804903368403519051486942626875475206752384265802838569557579701275423099654043441350750086964615504338004506251932974154893634268853531021508588739091858014032174802427509711915742457079395357917372607215998229752962073481583343982275841367002487081336508517930280471277795485223083838347940593197135884611809402072784462900041098374998635546883131737788542706678159035550184656594287044197146545319641996573085065053893527427495371681143535718767299406269766148649930188825690141961002562188301009944493700350213854258771168615663372921567064029100541010222585350932650727512248561055306393580966049940455535935340869663558418497878176217647886205976619923717742943358091704121554645622703911281482980762808341018980210977848801477536045617569286166379299916934132112980683142736642441760852781377125394878576864437512762002203551145127939819600209433839650296777209682878654792023059965583691813933877068476519558266938948267475647712179890040575528349982424867052566015041063939014127986978726597896944198955857479400282979118672741889920043436926732633634837694290018278474939329467123977894022480330923461980761825530904523668198034414795982106366903137167244349671048584448903000363435889679370665156754915305644270805549392427211390493205374841491982224624849678585155438485950449076873376903017760886977585583457288326531594365173138555989111072156884602781405317044841131633073514304044684217100823544015654611597325183686992060758338054407274803944207726199595248347864747577620187311920095522431431040395689738809061457728212125484252882445323815752184832613966422294138459532048909637714837796052622233188029463528789470536909922949182123721967238324160020378505545274877699118825995314095111097937057282402319715950128240032028480062796534206119275934278264043906778891677321857516236766565359977796187736539537650134518156275994294284749465290526359241964245427512262801948241171134897291008913015065790600889803532657334909836884333066128451135734866363587344421205177411606163723634782577879658379503206772142465128276007104854286725507774145734453876520776592961608954275145952357357569401187690719259220068612843411902225295450706184588390489039742169983767971575392923036580353232564035649640237199901149879584203037866900761997951801905933106383060876972477661678889187238050588012754375464088568832591938745056710923170721360160699277786139650906573148769867896089369159296959223813517254707074559196467175230207512825579981870693816298047744774530702453614570606158607674994295537654895432046898827655437292954832762410232715445015925396036475965310083809841854704557475386701111150732657881170340362144561745733007704872615489419827576490181029472481736190273385562986562669565509274885818330057565421822261469539630703896383738372444234054668955057344350528571871150973003755480599254837151487330653363297987127906058631715118993929803731920125211802302130873733053103509725395723829614495846592733381440516069756121511120620817914631358347018842895713938107050856460782539672143463673289908679242122727230880315646155464328156158248894380663714504521473996914478657503714428940699186468605357141816893042727909413486950875532514056479065616862214368362628997911865220509868316361566755190871001342871213061975345942506639749627440439109012443878503861832291187342525076677959318565973740642222015853025967682220120030294693964375125822785815825317558804653999003200182589241923137573567116942868636659976964521912375374108337917162101730204052617959280871842679789520537399917911146050237381699850558109055226830567888247908317219172414110289071109838985553060800373011013532837596703464417555758739477594100346936765680545225978604550789025108091633306824336262665096296596338066578583822823926094910749922724260419997192794689042658747066123446454864915750066843685346784010009394443049217559497317179071170405207997036613205503425407620540303978816978697332967512170628505783558431067392690103500282021051951082744378181257258744533975734179767993412483153552901348000927264046393566058196725414083960652893348622757822578362914881247304080417452786891040257166515819971720325814172394337975900105324850637518164521042604609091799393849220040118093637120095965533429320854963032941815853701098803709470434513472104774716060705808455086754889542363939189000999309182535815978385690717752900050615393325484729855179856509623818386994321785356888965141880848008007441685444074324823825726261787601933461064349327936407450680737010936137043094480283671677234929570982768095979320744434363169730117993944945812008202168532644542868689967114708734954258674816194486486243023152879115613095183148555274375092795856489012679909835291729860433169722641797346320383840361262470504525609257947208675913975479910576149923211930687169426662006205193731553677955097495908684786067712507404157705346204525854527739943091147747742020345188802234938180790466984229827973864205565574077560551693423884991327807983792670040039538928789025588910041369131654718097716127168685167566594642971780063402119345105651097676140969191882833373129251852071930917097575706247030769079651380170666269117804825654089438711504021704807187508142628560853000186861690835768096815885632246965160721886252358823379804959890589078689105806282405612277077415993422507114222293380481668629131736592656012401053225660569582650037643781144231835489693127756805857176566783579250677371266539475561214811000390761083805162199078748585507790881219537600237670995819472094451975991864414927619724481211753088812943077599537522132176765356931334271089310684852720071558399343886329819755043621810207556945038519214880971118710221830165704662603750168284827639962924382756396305368841736725317708227444172347769211067097869696436349913218869848010117897557558654507040251974945363440482295322157417855103530744192942121641247768639763817918614639473521137231213802102218884929286091717240302785211946356351574179604307502132756137246950008826991050235467982887498811995308695181333763518589099897122572139209294821513257973819781360567023066904311362045834061960780291870381097747008377627606753885972898601365134138346481097385254918576107701666987880820951636602052461426273611024032342821628415468835417828034169286022577339806800750679595439162402554207986643284906646832379366633361510642270495377241982686401650954291624751123286846798670930600977342941623787081807502532827523875371041424825331189110293259009243945439568587398319496824244046780617276292457333476140624628405152379382155231090727708846863922603707257342805329250748465363749721904982211917196695213862406864180497354303167234945751762238679171128641869364871042560970569433852384771179517709280956973111278355072723943393745594923754608461150839389014523815501879612546112521903509400616489391003078284281236452708739124857346337004544727780231138448964718188551725896213301585964663691162561050127010432903077437908347072604271284876993936054816521131208390244764013972718208123645733987039899146166740454013519538318735150767280022686941164455721878490109148604374837243826136779918275697551437457769880729731258795734769553291741360672023325145766547472387065523122279284664977873356303152791125132601263179499728645519183520965203845089766226786187156574016952387815477660578104362476479520177804854973022768302701020864879924097637655259324714393931718584248400824372293567875796260448153707290529203587092349811946250721491686901350692104557493845981853142631677665982448869627877362896759439343417633274546571690610913433773795828131198077338827491169717602064346304695206601517456088704032610019558123002690419079889426389835032590249912586411351825388867016872927846509723649144211846156403316997267993717959478070954277187494024094386230195472400529791754293745197836208229479578520788333069523085605482421299580374464334798550190600315565452457946744251453704166532514723724184364044375365741288206806717590267647169260734736422589071979605397736597741906477356785029508385800620285192229565718910104819412605833831817181797692582566907438838878660830198395358735252536658185235570488318966005413637410133161803104452307322950567244708956363984649279415420746436713299428955001574210495317072019680008221026498001507776376989747494084952814544122367651050460493681498490895106119339429201374900552575441423397901674960273954678773402413661240808585305996373765235341570974881191022174254404305362988405509501639250189726310071835492170622790473036603900720608034960995659035373555058052653436614399080608025535964353520736226015407106914414871784194557581425384546378211152762408102926949813964757188048882723905108305211047979430853573972850302414731602179077841092179634964404946033440169240840265713683876768090518069234568827040001293413972628540598400060969923579365354680245009514655371415600970290406284477873501881110020915204421495289096611560096857382744279905179553517205809081009790022176105867966065271364885865479437092864373248562710304888702071958032302953048177968202382718871492774498962396364752075939600999984559374328298028027384530975307860370538186001229831495842524502871011379949571068386331268044708015838235786239635685095088966510605357204053879079624044861652793729755059973608506142129267998145191673510555767472827473467918770363163944745205620495440505520454161216554357840630620467495052253909029343688000229947329406548317224867183414072676409519441390319483504495413123082652973126398969853953435656487262239611935188882274484408113128897982359011972024397663563346680041905943719863757168044052770201760880020389359291012553793350800239256624780428219514420993731557882200871352519681735571578741605117470635915949445385929888093380333081883487280138360315360648832114772743331719615425499020080756854849546398962708155722491324217593637634789051056509854386224897620925848422603085199146691644666941026829246352474410605343876621540031374038599510489108550616528516964040219009328571468789313896534117774594593110483888066407231122717982888371040628945980429074184950415977225755668904153831851583154249983695363511720249250238674994833072704534066444661055400325049529606074712846557756134877343124618556946581406843735122342153617066705417463550119046693194257521279779540374187601545054474734067029815926674974877383715871969904713607802748046949240722577511568538040396656430771891981696678759268180331174660122125125360678266535285054608136686553268556005967655461460319118378866300272083822556723858233763782441334754663777091738956176581997962183577336916006308549877039793012902918156499503188636171915917918967122743979548763007112692329529516508313558492801758525643111930931116156590927251101704583366856476083670174735094450186442691598279120619241300017174562722451289350733547223075265413403756904563795893722052546518204281498611716859456162187268589139000309022872982639572355344271237414410673200077727881008403034556401801789583887297546214949696276817560271091838113954551967976053911557921495815180816193412819645119922613476796008778079558366242412258724350062110572853663883493783632743438518923625355418364364153354076007525334850470867083748251628406200643194773165411865953103894826057769553740998082585722638896609916361043342656847607115825479231203666622139520616319709943600380408801323843283948934029337141265717756230485021858251545019237501857014801843989154774646139445807219543401605120048782908818125371781668773151122315176935390604153271950823682720108036394823700453471009810505611805792568458146053886265603793619651415254365652490954243816627796989123789458193860681758661817106506247653750711370934943131738233269615320333784996249654452987365888077068325357981601524596565610382685951643205914494757508487138183246998509071344046481087872906587249423312552143027031593352020775207345087141469533369785128685677376138279531788555929637903944334993614771305862252074927711816719416144924356882026282313537837124549756729365630922224414904185075001702725446237056256408259222762939845525778141450933527784414256100355735816303654654717719132572988292845709679475173088651160978905324196885828756989265787617738088308784076730032614435515433884406377751572360456425853287035536944066236650883426924464528963789910484772112882199784172653068983606649342443707154678378446147481419635374455301209441675487402277277410438714433994437532864951004119482177876842400940132422210863574622979082676293773670729837941540014164154861940515854027817782493556807112385509200290553219150380654036371044456441585306668914651254444812247210610846492365289449467883951444921660388222823711918628250355865067779606006919933734254096032838106694963899057510709163390826169678236227887441460227984452404285346685226727496593798096065019846403502689775900036279903921269810903994863508948491368490101366749400450165932658589853497721775143892110905485954651392360637008045910280052256570399446103539713204378996394319793961841746023054863770864543977380539583984688438367888037861909682908756611313691391589048094625699295826193516384228688521757331335291266900395525901579725130190127769632905633071729439698189988261203772991012846134535227875881768447735879057354000507173511480856958471892782243322328641548101956699046494327864787432165222207398173414154897816845949174274238687169420529151198777098372702048094040479018875553359393454343539662668666110919544947701937354321823035035958978531867969104171629330605488857070556571377807587240108404640076598346081395029297328733703120811167942000266556122982341344742123027629697755963956057550353133053914163398917236167730968665186446708169663440982880785490961416692953383561175762211843095393138328001805781675959853970478506686134163124504530079106089784003520519461860240574552540302170353354236785284502064423394371621434980921179761811762207326232878189705637692234472843163469038760948708466626088642122042773839562809330457621293269597854006922909888545405390482869979766078012403795046568612597692063979086445164503634667084401764015122286073995359493152358003083542194647073362838910003043745340663606840804034127867812603709684566237809602055774298826485414372648086626389398901227450616686079325990436669612991519867051603498352916188507619142699348689550252905379002162452460009491513899403870958518543370754132201636756412454428700482139772066314444767211171587824311783861676867501431676350952115130345925576523537494615916258688042303307423804710432304226107185527264582703737926756282453694282326979479510870768629493016954657055097981142063995757513655463098805005506613931199037782632173251744889118284851368415483401809570579293579664393123917829199343149429355855062768808565681800194978395578152120900179424372676096659275738294470161819218304894738615103703862680324499005246359201283648164706295119209951431274905251370844873200372097429825581426716676692584735444735856404682156372082223266758876488265945924444503719889661851386507627161825415876804093011124395591062163228698229985037571234761899963792303273528748882848412615819771167176299062620573776960871288350387271511642218661596147596937819774367078279572991404520778480451326391333483448228983326994424276723870276482118690835284567169347325846214029879459433172636318156272698522083332359443614588682454840002337737196624878779366809262421778324054318037054274324054246975436592938271894132180171386888557157151525835804182277944069737814970982545003166627927094837236523967492615166771979649611190017976082047097735485377369734888423457235094676827841084031953819670193159761409213403902623587571262723161083686583243167195857237089974412877699826456414053092149279064591804945338603924314948681706118530802084626067954502147327889640706173165516009723472636908494343179112060806841741170325967909379706542283786012175042684925991170772416547094299511640732174484192192644166644878647293420756815998358034688373893659193942120224518252192478491597750439214994915368990273124742879995026222448186669867831562393968126166025739536087845283027847111552607761266718488984082365736964243826942529784818036566831000797269388186408557483779783411407932541141227893371212254646196911036520628251872762051999021336110347994092750178031219922306906345796325314970110890109627727327927743588273070343223785698072511291913245986046665745692395837419062983019682003909155136505275067657131332503340885045736321808741859246857206982016599763264666545463532036109292829608651045714817281427716255080518090703875230217316514950240183420226736200284791253890028871629941266611077083237811818202867884826440275911062696810815640365212713463259042153199304557099059021841503170188841763593987306897387948387229772166596351778653098682440092909303306688680118174866637106086662336172334728168008000491875689676318524224825545676607928239773438548797125142914775511611274449063129931471862053808017349658298893944273272688418494282170993878985578323325040880184937510560757621459290082821382573955306874651464064975398586995910177421303172644245743932236377205631831919167714836347918449876451628421815170312550645089579638058816607856299719061447816879591608926561326652370735039225483327654047100372691051017111833677755763066182448646993117239753320321308202915212024963093383939434949715297483398228424583607761586174690473669856877563605841871914563382767089481724793600937963907226162524533845919330166514128688412761469105762945950051495494915858860539062262847187352861262153726388164749074107858019967791336529083320641183988962412197305268617128889674177097683848524380795079903431231416104812197170698310250194337904632923670508471735704551698315894142377699144669583271029267694472801174052510262465542028678096032684757931579439073835439959968364878317399366867567938323617528388514218754488545394391295357439325738104674362956177751837766684430478687079280098185295702404424538940572088465823705154627801830028466138036425205287053110436519066194021219266213761073431764545929559785684962816868234957093686249674171381344296977145008426741154589726953623979259545696948606756482179924711728282575128153874028048445341384193424504923826992438236001790238849766788214331223739257087615391324190493718093010042700683473796787672489268305324824663885645646797918643005690105205081167626648508131170685355817842790833638745147674131572451606203871430629780382853970648862224646035295825451648117698689829106776069401777340113733298962374732287085655060261956096900630961740705767806525353302776176802405540147624825718469380182569918063164507989011770448920532018830887002075160240794814933792183321035095624537834502447085101140669284314421846260223799358789082683723955090367027297932818902817863415750254721891962116070662069621141515140591561000140561117496294118803642195314761491363418389082314592996851778116074172649224828867204955799628422572712743498210639622182603613467088296798764551847180210149310812336665481079924112238981020159953072276242856438181735691385793847968985467033161214708802189141521507576685872413246544844013046875005467987564689488186202189976909414288187498090260756094828896603486994142315323670695018815541622547824189272920780808926384678608187165396373434809292429119381462788233293780581701144370401676831569683495257469220228198420951289505154021012143197876366866770947856066123953641909924971928122460156905100525097516238147641241307956587809881981904072051481912245621450022424884564481780237549902383139425615034607838887109728832634134936748290555444238271367680954995552609609381687243445251090894303190076112490059471712662002028430414586513376113561983019811316882008033618181636484952737946075938992008611648353345174455382063446181080764135655352501241443294203394986660555446565763813456335352604306123997591785694115314993526463642270656656366638349390896094571572250454883202137294570960617498833830508384109782662435575626279572913322381763910043222060856996043043015967099985694042144752776955089638791850641731559569588333699677773317119157472930541763812586661212859865030090684684884069196894127798966450753145982136984032870013227101527823116448477800506511772095741390605767846769614151023191261209348739934311206164974183348076308621503505735124675502764726892099162645149981175582367928386081141022609477954141768829984768095095986570359139950426717230986780778253194217164438962610868346507671841763103927132423520207915536114318783061202692849969290383123919955321378851770885007446188754923445288551102552163493931939544491331944209041541627022919189044432187886533216976733199538646300630306053392682327501604523605037315518468345118351572130669650924437155890652021874072663662547869154330822541999876946122976458363228239625435372901544454615869275636360844516888402393270109606445676324637558801829512552950394666177391773890177374570827363502014045759011231267696893253512547724385721177203754299479930928668857310273708780600660226402374265195219912747822536028179429837530124854115398388151297885319209403026355655895939398320019822930427731334451177509011095151300316103066704822263158012301220011128800133868030608875646149278412864496472935209913089523511505156067041691732342824154831215162599163465356870972926394121991028179522780324044229607640114789354746200865798562694526849184075216346901931228617972213715514382971368852418120069288298927427761704448530278117403663652341285807671154237501193946947868986725256250607616830407302751744088362187292860745203680646951257771523862432860215982667534266314688852396866701847728423287059838380094000192313028987383285783645120517164952941783435703141086323985233892495006499188732513187110502413557574595083682539663870420466518634282096547983686514864743052672751580085592187312053541505433161069822992905355352645809511725814029523496324057081812595729075708708900124342354984897720143553687217397561742774196440047585710045418842221725304403514644421898331703084802168991165705802097581332339539210990764057473422593441002843508048888684511852356328826681919085331255933591768405090626158365629167705920393930686991975062886182844996764599904353812462849827907059750469764347492125580873774883977447657038646333444570191177656074426698252220016824703013608672220771236211341843936839269232319550119557818517579276408822609200081188793662839560658916608983882126301581756884951860831416943191609236403835510242067095444503749071571547893349539989508828784245601047898059234065097346077116366231835203898234906897851687298992970992620386839742001184560229386020708841809121281154386815164520997468384302738783987116409987710377613335196380203149107845962142700745039454570447030372067139126287702697243118331693365625332077936245662047164621582085995834889459072731003185746458163700275975992028315007450626790316242445863612244532303585482047822853745942541783358102644189555655116338213311973962598649596366995212742233243714283118126762262954084334112031631669127312507312581673070253510009665227465008851265806383484845018060769829286646406935399524744189855284556465254382632576437903713776038278373990535152145934654349899788942548469440566558915466294052067656672834667962663219926802285487696948386140930039527962058958317534418780687330035156653223126548752109783427451271452149770606994839395864409689040677073135682542746272204743816381410516113520690599280517635841093132259894873982950585822139825739362699204483336498505759435216707510007279085612946025577625380730464739851991302229659677299301325613003500137797435941314890659875433562134614925855886690518440245094443392328632180971786028883845928487260582658696935599820879466001110221145872355112260437741182783816068618030364555969406837509674938270823380552195067058145187782051389735042222023517126382946517667877760656403080415120128474087457799704973844245337678918275915877928567113744533548987449184585197285494598034048414160718121050205081141297234118369149037691192734929870326175295411460783495824651039712087381006596205838866873910386605858912122749911040563660520928030303736258806638738820769350469239481866596028445833637376005767165420031715089196928938237898109783866448063752147893143829578197404184618032533087136559743380286106129340120805233023824340124228150087464684055266419982273360387532043770810857961786729977433525771565716223877311568558751066656488557519132184092584627824224886749712787235488188038293089083882338916354421472258801404987741546985462383910150903418932303553223350702810248652773340032399227694311735653466341983128031551664351517166405834038903681190493044508170980125397708464543195895251632505791699189866430763774345251164764234827844774079848499838245885460101558347628777828212323478999824019281039931173081960330563149794558851429302341924608453694173234610271371223539556783217262939614194011073659093335408378485735079067865588434786130227818317932996582273335139599552409362180841728905656332657639719098276982723169112049292135044765659679571976496590659895436264591497636215221935113456855979694065315802188490846889870873788764385245253213662227286567941620672417655348551506489014679025703469554185264452114892915985906422953146403513791617698824667151439512448141477935669662607303326624868526233667885946045625331477802989122663595583158762882771743628442072623194581094908770042811679437038241919852333324825658719982335655571632992761000319975621370126558329271260644286612801664760057087024939744520471269858961733575632601954433494276968805270313321873921459353824461102406698982241357986574101172481049305022892429692802664859520710023156622721512994543638204386056986556847010162151584943515043601229144027683212217087972672727271167453041081686123580269977378804545861721146478886872089790230295987754755877491265698903955317233398668340144289749357346250168180872186898373671381047312665605773350524601678972200294311508375577693987557934114745507277735487396693927219532226498900676337597927358688413745916888190673497431720190239355274008170285460089800117484810950141994873547373575645483560061295000857586178454605290227005310553399650665303297872165679403705899393428599184059003672923100964727143440261758550934925838942133794355841540731692484467905829469637047441192339809856271130805247016480197743801288108561324119831826778257835644153506300676677271193394276880553538807758904023050863892366218857844926811119741045963513255117597377077655199589825188539105956567168736671666669536632837663398997091409021120932588355715396777400718601043432611612252376597661214866573464688047509015310964675906328772256081014786784696776381571092081111701822695600274856629077855068579457524693089251936821722939083615124481189365165598161957399073897682529729845149041498984280746989020403784518081256416056255554271491963598113083215036431538524431403449028829211479278974685308126174648891162620734177926999245138436396949794729464209074689721474615176875619647194410444503185801184509365254324712110970857415747838385833318607115596545160553739840143093706227692203788623529448960776091427381821590118710317892514209166933580566575703903673196488797990291267465987642616205942082263814248174990061926993686791531016733002927649501280455005273744354071605188932702335540220481380535398712675726990123402198762880395651846506775614439960475125904375558042164105363996849940292450281767216322753969401793869865662345785498545952046762058201902840882802454511860665058228671753145046292348167648594197371327000777896718563883460963490151213670340039411702177175822044946505688952770452470201616702612256185356872015255926979150581024187319011352663502277846575093216940871800834171966277889918603916776156797682334360172258949303407882753873154239891046438327500933565307874632366264815789517146451387104909484265656922611506056342813390343003033419793030575715403671379246322435855645496636437292396131119887495777347419498540565920470514477919499551575690851857397149473118510969701734964842967376277448864617029241655971077014184997039731943799642056698573241469545994618778399883700713569934960304375075286055975666494886027725282388652789553429800444812588974120260557940050449725225977350778852143544042560643321377563532686579989183039732001858160274799527153917978734319932352732097475715844782509328287229146052819746128498423736036729464034703052837068900174946931243771869135365959437153344233911524464358705532820147676625214395988706109886222871747556690469092648340912275798882580237405807593892090798745044687771689718021341637717678432515548944469737845052355156873065374664993627824264945820079375672685171619155983061938130004719451004195992038744602105941904768341969019124712208401803724360501182588505909173958928402549841949080400637693923295369960531962833045183216179879431364661244531056741182573662267595604946351944459032615753500705952461081352732536977310536788991106502951251486998546004575562034679743267881491448411710775792665541044650374349199417604847952374750614374464058626186592574422657803548480023621451207950781711673922359893278671733517209697915047884885737933420683947974865566484204319065525457985639379569525662724370205718014550576347377901337755202040840018018165407387652392490453566676537149208451621533267706104924661088346273570908205805032575217509668992151263687528887080837682831420235621591554330268186251930189211486276188831145220515079117574524369009972872003586625445234310997796644981052844023957765852640667709704536828439544956215048185095023148769754550773608604223495963817083143534783291669035311953614509997071280833891221656175535651298494248111431581221480397693793211174467983277141381957632518589892446250408464543242530327380841048234786130722145093656795733609977724268175667780668329302522264877715341800183003993505961977922780142241458771683462392308836403893666531544755223902419992948717726506645846697772101001211053416945714854379904133938074318832127757529848244589999090556688200167951912830340421303311533408895870264183034671555213748735121157253316354038942153087337173231946628534363500766484972832065040996294851685417886266901990685329337216121444124173832161255601482148769424879790778604642285499159288699027654063552958059129050119488753764679493694708092031434892614679686132330357235979499048967536003244253839229541200239416397162973179356997909192812928792275068018632309589517318337119733200668469149851217010303179474366353068025581363925237326213027300099877358994762951083323845098719397759060591010523386787097262528484174179588994548746054407918680805059406283265660414241950204545787567138332251626520955220693315143640864705752358229263020179049384367726365547698026813213727558885297966249409764868266257775667082043542775163271962542106954870967601616707655690343847836476923595680415082694174535153211477160310807888387690756773424929150134597397910201158626009057869684586404037646774180881430285613129508997216246192540733630474958464835244878619085868323857795024202397089682095409753905319802763933471900898421457432222017527042194990351456120784633386277194252225944100076779370313819043487297862726466324377339751447974523891053654068666368125755748146096102182321668826576495573925983127460206383074116349778710736387037171482636508426287175970588896483332230247725976044180224936240794579023600497906726469494121610335212703561626285971678149696728639309245736629558333520538442550395107722385989351591719034756948838084835668328193718401888606741191080216172311005334456065076971963220027909835059476225336899900940505771033565111983476014812748365201348012507296259945064813194794780861861045985415540781229636205074876492529554658760539897118839955776305056823592701914395223928876062563428423610724705055847179045229915776313793971137573722419435453200449682191415271364689409373283770376203660921751732917819149156855121199414460839057584733828228949387101783629948627499482926822583210601020545199347753575809683192613439420639851097185090642386562970351145857850841212338234802489041302903254829198179824703516641391306221731311801230726617506640762150246644856258392544466487047920232417130716654528338086141067249085575118196171770189335164830027716789632396359352047517469787855976342965528518998154641115310429614701791345996519074684815173626859707908017810608885040726938423855649224927192075396970477313996446064183781455980082469795007694958635546777452490409826305493824851528931942750745681630442471532205063785718525394200343727086120448411920659549926757757646415250174552590207893346190799532311685812229923876216350112240287872496612450460623959907746511728352270167860072403493421348163921516633738672501871195087886201636242488936196437509627223775203001834261456881600414632699114822344713058125549907458493904632169136325199068246810442795192936399741927750905909494523358335847739269864038639031396294300849608493585085770901384461897846928209127740888901019106600791303560298623178532483560353542275419164947286349399197764713684652358400557812287820570022061281566782443715414690810742331754804205256745252032302653545637396041042803517711824084878221833407946774784327207048989203239873664198911504895917974040901073154672473057825938433713910891688736500571646914140112782610713834620043365071666698119077312470362992151153176563914478083930082294819093413439104496135580017668813152936784037168734320740988732312693330484103203278080966970539089640280806492311361056985069340333525824667716589360764666364335428602080692839570322466108781389778014034140745138312532466019528105372373593400651082283826359568701593334454036012809670757632506299447220120014453982341466918967457956342038252861744645613583991030350178515677975386307303644847761674670454824500699834282567439298544504246700072575203500639416976887303509737820668466178455772790776784763582745366711892089132923906399695549657657003135710569168623345090624618585382369900802246899416020396800540204223491269895007549553671020800564845267426705383263588543157052589787410081667737512476622049603200631882454961476540586423120665753247523557372405953490078198202536529779761538487687302419421655332241915556810110028151241144685132349619978523117663127724938502361264589199611990300094160339858050992028440039811008247225822012958829632390067476183172415677458249138382901317941317605802630491711493199423606808901267412462454456395920870273223375314595497136948278197107318683982117949848927216397382952449046011549247776499390453973087722156592882977034345741829815693437087602656869273539532248203002383177800588168137720318927983865401253589383346411815405952797117255584796378680858091271549341359325659313525393546059076440900885689245603181489440802124575494580502172347479915229387511720321111512304327725893705211303034077392457811434748815489101398001227682163300804849241492644280546244544463716247160641288375395390003497052729289698897257033430744213188568047244965949511746866192451731626059497233043840544531024620575341000840821413632498913482238808508749557210223277097526571937767662856343948789354866804015374591594935555370481643673804511148523615507701872126387612248706190894960201487822132486152533530456155223457074519802294085756216731863437129435097255793429608078732481293300476114382946269495123078353418571731830480437346340401285991773237891034335548076833392224960014213291204881422291007628154478616779103210915278411657291834516482706598506089405566018999264507376927639844654025975777244297744658272254425137896972639927303465049449727165672302614161247062389558849304621401639048164898055727351809582359485661640192046574267869281602125496023505153608213285263493207990169165679630218706640910395098722083906785216804495002683502973080148617851018929001372966298192848209870908342229380585095754962220309275808523401203809866017838212715408736808034035681482553020166537608917663267217875686975552783044925883902014937925404851258873104477649559280302316245303577252495006045195248580018590068138466388343464660543715209813117806379839576060761248850756350161120632315819016262739542359277764442512036721054357235351849498669356539875714405080016101157093920151548001553793479193724025380646686973633899443725984558381457645901013809979365126903102308652142705167368818729111358498687578217368081226182692066122367544796425348663241321568933089576628584929351382015033309235249983554618076481060628192403864785189434279280553428613656952038471091765421863780399610610559004997186948263736475908933888504038711706936812011368166756403161116152762520757001081329093506920424590757445112551008998331558678402879067216663581328997412277764276578686624884504010513735865155660115081384344265291875762061629354093493114034181113468855560530177179899311799178425770635279158703655817040591239915639754138342881460332274209095827970202979569408968771378914644501597009317149544003046360859184830819522135131662391202949525592059927920009980158820071327700561565633234070539329334000545588849217537473609623851055365230148516575582683085343591097492906543485095369193743140163168684601403409991207426841099888844451087892346100350958913611760619184230481915241925789842042148959801312772075599731705891329061634595990405308207557992165259022085435229861002882706907755978421884021204551516185535177237016404647186008471402967713444352793742798171447506787690409003457780736220985104703063801128860917238672333207380108604036690289536822669532618900999510836323861239368303990781218319249381516319438500640022799122802441045129143415611158252462243485682267799037689526375825554809925386294600908291394098318986815328955760644447254919746085511365047125815578503701060182348991944662468745044887318536875561297608836352000876984811734092816615415487567882932104106427829757333945126488870114114239434896134940916764208371998225143856182888486539228147369881324137325467331467141169237970605199912823783028173743030893445722044111194928139581819835292420919301420701987044486431915665942988116947898717989304031200830316251205433767107044603119924519067291660190953805641223648585053092902468110038217131234474859103725096990808968140092068039174379470775113877423763051324070462968800811268504620305166024405874072907053091359254040494135138809654358479159408577722019550252747078772183370760965164595056864956765468932544851901594742565451032197189572007959105302631531430041764766610337607381526035550706030393173650351831335231794233062727366992043855754851544513992901510176540314643110065347935061560735890011695589522094712350394636780579351290976238766456332138987659594781649197197872158533844650911933301816704361219560716211489684390251436036751138310372695060655527292130015372836196504836588311052970011173873302283810690061732868627568445828431258912305495388250208793333880529415440085728931661865238644632552549347951744291533334942991511358630836080247446600222025285334777310787987158073676039563488381502630491795201592743364426741476557167681852495307149459708894573414829374103364315668745826018557629167988494452094397795724994387330253870624329004700557385878590243522497332930102132492469771198078856535381032051373198273548013695241999341374586273035218459979454303644014088451440815454368252636801656060996744905439096272262464667777767212154356191610147606417993252801918874829953015497043137609454116446798241433197721477127020543610718843743844955294270409598844077691508850671890524951688473733773600272095882713449441330259022285887337852585034424050326151438214320674133600723838767860953968131338096619149795313469176161626999976329981877651265700177832872964606656542556381704150170899443374089829104744402822506359260506582623313593268008080743337319840802032131298425103516010714480687948274083889065361673214766283312269624322456591448416386314542064843655845290361495259174105256635171649009149485795584397754624179632103940516525190063633264448192290181488906246175836937734154684326990333780477294094426841748507487707900194691032812545228938472834427965575039844600371885787574943551255898128424265349915901262801485201700690515619723407434223307677090697718904449966412983085869750517772601553889553151176576431546216420349614855019424953505808511016094242783990124081748013445025948881735244799556058091561619749154826339684417166117714086033810695218080613799146752427910414950159810486745160364271013793259968330479928895732724167926096812886437290272590378747265146156974029988786303103041389155641786080798624352759693173616557146822440775981898033647730975312107871121221714451628123942907522356550491515983291495980502291193193539244302850488335227793357549914937226006739415671165280211493848107943149032020779780444163054062184719755632490745094069338079695618346507580520912778721177028461740338914949185361027499958083854211273637239142061494381858266864621530880573697946892429044930800589207020151122547987516674100680972124441967924586578456384533203672316333301385722240242486773610834754750508087510474748105741673301976707207082584824009778076305765538294359200760969362658494339820638003909181656231416090823070333654836145630439179339352982900346918580118850018686631161759308155248699713679139089345557530823709227213383182030836548618600804171760349316378393195891380786688282006618367052716233727024009554607700695492330116741664437114876573641742280723019416072776377621319331379336533827519804095589507381207784954202777946745902709215944793394856966756760859016508713226446498888695860953896235366663288465900894357724001523249701619438579395930163850585163427230035791106476967882195720350560978381502268218893152992594710513333880825637583268559722604597049955151253821439979893724364574305992603561330522595709767621273206087732995447587732288495113764152295600186061138827907806793739230215045680364405517061233078463879663054896380865505766852202385236314008147094776240553851341158526519788914297052830950410355661945889076280108727263616710902170124575044970118290619765885342197710650318398483714067492270790924998548822073376807327708854332291573151223926926542907203819828614276006397424895352308761254963883125062128897441540630560141081463793070411767115636295216414539365187117765440506448600179552305554396644661690424932499827868253259538782658991035064819258879926833866231395804745329830840458987670542840598459526940458768094947753963485257278305534457435628082208602540434520712899965284502649014431330800264322471447863584626977997766724517729618968981531426146139443809891351161140793120974613450840219476123337611669516372625683610393335832766995300159293438047505102073079625036098101894584392097834151250054789341971498621987212881548512270203597943579327538027400943647435611599190101120272157660771050046866080663130588845512453136309061522635686269683491441722645411537881163125716096772524540385456445571621704103668410572879998236702709657034228142270019949088617982594002005927038343532929098360130035313539337664712398108883865982360019395015560336830865174050416013447693607227371658532354421854809552254386734672643560513028180989209669977736141011212560261391940420496726277350191555830337954421466275492223423982458461221259175679725959228039455647673407735711151826181276824880212332466871923051063365143917190579710921102981472668135707190886909918543319872804535244599931993029313713654573456621653105317272213634608974423869274011676094814419292493483109822800059143760937436511714953317427197456745390633006747754867563872244836073653145398969552839451092605968478578024702695508772448079653971965241559166646096254417720873179806688118199749243278811703796572258962613035061620894601062783427708865696244435253581750645679977578481491677590286118147023702940230503255968777089893480760902757343231739236000875622602032398815684063639873421192688235907054013708644653878601845437322595596144332799486147235804989416693752193513453156590659254475215819664042405991002689514529466394948720568333988467090286384399817275846325417317081784841288216491072394853745652765205457984717196213065753361443223145797035236297931225901408393990794700666496854486083929647943311601712583032829223373106634591862826688347179127793001022873788829749308914263148662627875976567272229905343247433640792950025163690091540448110161705195088976173299834761717129443744899309693571536699632132691874656697106403385970245618627750572035805752639896899828797955751964445537900472666235982899795084396473902228139766127430095258211465974988276075002532507266106884938382259555271411498737300494596453897036542639100283921123724703759380690188672573505085972812938929520681604312043304164313555918989786226165559395343575858104938112318362719085689794382756144690101669186596657682873999132824000379736578034372556030604303638126932646686064451986237640740457372031827919409001853283335581595581148879301899929702075070998946409293947857131538464231670507917887903071048288006935794595840899946055621034928467146616429412771605737181129448321153564871075785238790284585409210890466805778078187274307170037481987105048491848864063503246050441521219416152470668792176370191531098983641410010065448477996732375130880850691622457399805581162994795673990239008115039846716523963570702621188351608723214493373841917624899653526682314812647508873239670648341769433406326249932850001345115834637854187096115784791357320693127123224446282130211151708239541028540346469048240825326341448940078062270501130391849708154917311226291329255482863091070528512302992945069262583404459912383073018457187918057318367146449390491585756363206038013446878792501216789429877054136717429342650753917278273511902756604541313783322189661441117931570546761923426428085890867633453809856777611269275492614664087008550107846783889027642049209465658283555049320394034452175890038155833098297371733667274331626598248435469564959530051991796817517612566300682613971340053036825331854231710962581384538602434004917989494374467560266571236847987521525447049730636782755167343704368336141803396710568530091636052824770900763541544702999642078955019058014966130947134327884805639157661888479835243460819441548016935816098130874254546428770879524553989719651718326887441829730019525591013827367549604365320076147469051832599307742041665099893940093357710978578161814019473262771004382868591683553283053091511048445663179484685867628774103561194555860578732099673290930514898377355500835252485332852904900021053478700090180700815397101048582838472384518491494269405151607620227109050401591864650930861792170387878017786178655373354431659636108204329431871541619910750103496219693320560987842671166302511901907900236086792076039781016872158300534150515356735271090511587584574923997291199865397216006729454849882522671143182693716026887594617749047414253583747317646357595765090886972271472174843320672750907495627490288283834398347730646903638065786415492002316439343978222717985780272354112712763920774250257515406818219423628609178165001939083160017537235426277306982162548735021081786568245184842536075501910739878020702685564415025453223172454512913635810455946616423915343860774362270784369422638007930469862234512556431540928673915956720376261357327392057581739320328681449653767509312671886325209740215414953805423402030382345904434468299159473492565886788428195452464975649146508396443103272485000956112940920292538720097833880609632324262483609297484888783569416976198430878025757886513822737637200012473532852259029100880645897620937180983372801916490420964946709267662982154644229705145647802319923788471164242509524087185092302792204020751697594404517983571164592033026740881292606670258496786928507418280609342129179165399166731714773677921633598217773533274043124131257907884488889307504223895203043726757935419962977839226837785613472530213431758073678917332146627134172051279202881554445035328839011182970932588344042738414713159938577928750484980255862986549000012964421770363300466878182522856487424933048913202329659477518648492062294364513647346738712699365224546457486193794169757036944794937720262037636202064243122314194656569523827393768798557249002993226302088346985325579011320823858257741178139903012060400967279219741471783770823664907185289629565362462048868453051545151673899187370766363466718202376897467896043224731982146326106444651956503892945677368923107612132627666958332288950475414871573454849656530662960481681818003193315816957955002715070073144366192234815246437566263286577141973560285860478639298703123751700858997825217773430775943553832095072926051761505421606460862728342414190325547451578530986183732949478165088780977758079778434544070939200378783063699516199103955885701660114264889448854092391733544101718837768194063501066081655360964941594657450073286864311233448736461616861117670284539553560891754042816195231664092321871794171642133349776606959713411623333970522434240057499376960964864767069893114248671643718380783550954593233705373584724538648865119404812485164440335417793506526274041609844383126427067008671367652301531777966451604707565880253590563548307747933646562745904098703300581796226824387146091421274150477447162596079253203649714312064973727090193101654835366802228271297522971389368707470908823728175379055255648429621690388922705723725662549155373013413890246960905181314128275147244051204086322344295057225230849031454595394758022430738572945343295044864597543290640156874480369113210637254883844589308706466650393886212843529607703196313160167954672975584780408607992414861457978413208227416816258214493671536945756022560636550438502149928121653095501591284812324972996421594657408420291975447588921125251793814727587017742944569983495668118449428055754057334156469588511014935251196867990308587895107643158558030059693296726285340298648302106869549476480480693328869967796024406105669207740780096368788615998557379954415474015806186688509324699182987407195759086720190778787071820883048040756892514976093210281366567960499542783289795283866287114208299985596822472617957692154571829667296527109656127504694402264247924165205783115361494115018423180727785085749111979552497643503665728461777375729322136997945813465422598096318340719621310284677228064417460873245457029554673677331499257365097130292516906144851256171411254319253159988133331739195112482230406673132137373287678021954780504404713810746562556029726408601969445930904673311937863681003799597308609469063192131024301275232254292312495855312248793708094427955009078979900171406917002153007636251419228909775518890130518225481496176580315887783996402142273586884038983250843647190084191098223242263626032878568351063796273315121290571687314114372222697454447635618866067616104698334813642912153974246537956159776036191279873787030206230403592219248004976016979468597204563901080155757361242265522967760044549328220888234935598533365719325065086972283173100050503696519336753099550001457798812754324926713653811973960805868991485621389231498289502577273186163441187172600758767276301844889057183331712804633947213744897332645180039354992295996875095448452800646558925875112412217813679955718932495366702704145769667757884510813573336641589947920290179380047566327730374716266814736126575444552321139438439721088931757608266008300319288720777014862522373242732142861444325116142369213403137128541429502985936577437541061580439862163328534440396893844828128897139008500813247533436537890197340037504329585806117057611759976739574730469238427425289008851015933799561818154748538515302049163536249388888697180344744593276935386138459141913852095280619769630035186992990919007450153997796732067206445261960155689262497237465347803900984771477802253815960620640993534740393157889555453117340895908115207523635879266273671150995470950091550102207265139451574040874904127456202774680673276773782175122507328685160181235000532510787499208748941196281210750007000262255008301508293039600041119376517282467346044444863174090119078004327228817489875715899453508399118360591517453689869513428821661289428678608172082698434029136512505590575616643810299673196917298148610819229961395250563446886957867761855589517711481402416789903426135644858214210158382557177218580194547013683685744164266623533346873438675480257253071715116115037462746793142568865467874421405024614355147782805411630732727298453782734905726347706801852605611052019171082955225272681576673325652824750917256144968763902525922387465557759478449277243363843006607910021964352479755118339329386378602562531952840771672034541947641278661318346557226719166437824576972446938063688714075384334951392598682683390536395164677788973354198849350279915542512467634638569270815852412439696343713667284517496159704712100135956097516807638594394613828561199134340873827975157964461317838516327059245209089358951775381623577547855545405024589285538554433506319486640720732160164395917429613035088822051360662917981673176187399178918948870864255157712234120421100268368115081523147608595746891114472241449323126162686959972611950787104694294832201699054807938289203011489126895836608547653703974985387271165343526452982612260497984318647900543513175289975930691890388284865658090292485453151478392297397232183588371129689940484549513256285787365905940231314826558136959067027520214191210715029000175982313497000469281974359016196620339669282260612883864777201523856098713560622380681981725571309061334754556062952010702557099860580764515401475820814823749378769431138272015614391224223711328211154095191705380127035319512835706325094849538353673536946270596559612934771889056415258866021783007706601718746089586217126991349998923073025830873264685179948751901865947585055151628810393334313586529297620790895659413106363379081285504423823151057824053165046959146106053760823656180466633366161442945179069724092750619105181479414480276788112504875443410385893129593520944735187122973644118460392133813857881917818533842823210472256593636976642313101812442424432769409825709613992200779989813489389355395879434671816467547085367807589591156728843885254621941088383862338778810712881929322239718567353043788966018700763376564697149548118637812866064296316843093504889889054538980793344232371315939784668434234626591918209254984215219126027507366175752643294428354340321650328815621331756734341839958209503061436131540822383335435061333753984244663842005254124005907703526621707772409091710890769875395572750163709226834808147357282364365388607861903033594420901936867957457925215815928501409168644868543545368207674837952494613476955319206331468015521260046272866593140857751051288555589207193142466657698706605233897845055020733168384148791402156938608172914905277772470081326248988213635055600952927969051650253782347944873393284824448782167817372632458206556222869628041237829691247944622683972694511183343279456044881444763271421035717333493387385674266350011304396616993540872763510242430121651873173611804923682455021940171051521564646292852330726374783221052407756768465395105888140488190425418618487659810036980110683206372229536914548676794034846019580881099014234873950176216016943473207360126921126562211399200671104316200632172738634985242900113488126122944985509292883669770131504669741957368507379941271448787803493113262745913217330462164748720888707721064861176103399603537352518202640637552565157239113923550839944290464662178454681520367572278238883328221363340632508344318535328365778609615052065014857603229077878990930224238263778479001055413176866405541260154320859960161906491192129804683148275173404270005478868080526190802418730300372334638714233430017375091231296686520341159527812812263906115180845051389488102200409620829163167303577478639161437954022178396532080713875086653692530921020499924554574008942433406261346643672351673841701230944496337846487734571815511802481795433799876496360752248866291470513901145765900031125907786198611660668361016468463270735857892087041406964478159553319682238557050842729646989640233028175016763809934508419597092942911918399015816487767513783223723277226927393092084856990113391018019189429658296244771060910535953640511826933597496187990636085430698278519489808900016305398388603083399177514970017485820648392468576859665549881563213355136247707621834262769545716309829221919979035239138620557425011030542269535820908760554746655951872684044341127746649902905433694799600322438000711547497821416882593934122089847898753475360916162143692531541136182919731324923344996281667391669054099578800102002653999089592003743396777566516873977718821200808486976507935565844392063509925088873227795070313441368038504381472451750499677088048712090525749143840442360407017622462117558789914098984908836111137226639254769829737156943850776124139232596106644988235125078278826471022021024492722035924327925903896095162804227785649296327754344270783375667775085373849761308913960929395755425795980927487744472191308943903212318168274969732754026985916329711194514655168487822917355183507374286751604559482456461451952333817147813936297767222040887930454504018796300287589646853386697089204100314512109959039460292768705851490652185373465708342055362510796137975935000752543562675589732237837239100420732011769470687087249852908493544059762336008510290128340017909096121459628262006015842687762569335575630937882026622339355987858100112070273415487120241841503241301243823886247902218950079605426104864835437326970976937761182418944147140885098768271461546999575855523542291603235507940426449925517219380458141910867185802005586519272736964274764529745642916745778741980961701950032250667598187319723635456248778458511451057825121434117865070004080831951436040128082575810437266137383510498474669222445135012179212950698790952845845629344274749888456347439254691545978728307722377967617567570783753967891127523333481267528442561429906474564479024940912197588247024171935246652364634514605499252507564267605982175948201128690302021297570660214322889709824851151688476994876444664251901858612544663563247247128365107730346684244772719264445578332821694711211254725090816755421003035156335845432438505126972717445028272960897106097348950091891155313760629257601564930075518224686352461272094036517417026364793877916488990589198374622661751828707243122696610550325116653251010878294777103398255530417945915721811752837654431303999366939465003598657775454274216540985949508017027682432061239203382737537541100626037010214622375314516269592897382046260967783959559942211767000069903784505900982609670453653393850733158039728869839556144550070615175796139675177363319590299600101778981720035658328924367797968472997701911149149336395584408134000852501422526868173055609318062751310280596166962197005699528498466214427259935529181227718701920878041402349699709031374781626661748887267294432776964487834906335754871230694971952133001133312683913402098346635067603013353689902866567245627511420702043640295053454611102476307346782880257682789555571965540268328453481130971083514575616845299070224790642997320970243094096773216884416785988314051640773530307881303997309962135159047825608866002795794256328834915147687060917546340117854884810085742019226964070763765126614326998771443489955152400988111770189767197531000788667137907086195836214017533196862900553423287044778212247625622210005277803747466885355724855717872751191079576049086350247260088153445418329965744994255659889576303419842033456790128580383104057183669318092219969267713243211849742890569810840375554216490011811599916718030234718548379918711503674260926597171956063368993703189866825712867598420693469065973199498506489956836459360601608646184193689557876376534591043469514312620619742215676511515799136248138333781688782662993875592614280894049265746442386529063944363239031069880824210758122540953291655872486531012520620912882774942433992738945595761177196181199125279324658792248814511573222985902120846543760175227692216372726439716798602457686626594534363359752163726874835024973283178345240864623823232584262802160295370134861221302329337086320373984798830975980074223221465738702971320861553059271792496268443198063948056812019682266368339176814262531623637034306933044270066056560966051769416123759993716114395079843238844443201320708403840849244354170562367998572585119677562736966610004881424769107390885835655074573990883058079329183182395611024488401828030233033030300168070959230987608640640949939951629628970383948810340411845050931392727012551955679185987037215040308617816003842665829231826453712539361125697941109099965285145791955321042063425996869330339571591905048940369622853577180486659663395789449018899782298149557709681414403633388816114122302856650377390257776500291434080768167610833252482946663816698538907079245633506948812875593849907699969264896561717742332872288433944678634643145797664646922784627627104667325848722079404771631390136994139626449354943694314226156907999459500917770747429582714191939983118919634044911248902996543480966773544273150540874874188244583364483192035545354245892005805457724946459837897699127703511410199184605485500744243017058457321882789498410943690586113040533223414328059903666329696662457788947520709793042354998337528947329794632573267283908254333733625888048565349781359911440960889748528301262361211336839837712126871508576411679776238597327919952575226588003769251379212105733067038510695431182307967781394875307371174652719693217264411199751815669528884872171369170820190906830537249215216140050621262327053193820833134770544753854155155111421869432260186015848646954227077111290578080214193122416479054600326127164772716439031896275439172432340765878248162448887210566677042666258530259161052525434994078826068031195665367598317606117519053519736246810849463898626662054155214632599929787756577010847105341122455168898677786730764872132554378822080717756525056939029251542546228360822254730120923981479883408736672513886427429152803540791355834089339055221045495794872224426944570592224426255894172805231205852726576341084520708589740909855269283413445859266011302176814849644412143274734656944992516894954147424634488255330414654895283051962182102914009020214710530551381570052360261202606135524469109856778952933475039779241819176309276060647787379855184610513603582251897294044695201927219167719349887205183398480981702380282390860879595374613775437649666366210171398636434330853091194875234190165468466991507441005319256885838566040390842093699035497889228623266447566657844717704869039994005683251282662905196258500638726393867040337850405426793601263667400468800483408115760534516792550280435271791971347763601493476704577228006986521821689080922907423065994347545897832214638870435235988406232009014570696604658339397983318996301073993093541114798115847684355394381653367780432421093859827953532353333966843045122733851187326726067600608358778379814233859175705542637697414893814040599791354925616993337860701204064035808914222556740702497235370950216076903014026194885801621973118535419494162889066632138115299267877147166382635651471587025299799985403563714492910270519616127753059253079466112043256992715796327440738626783862635609742085368518324087673713322342802863302579655187877309015105300113716385821722113731326655196258273912041755144787357757786523362702091044129677588081458924325016256790958789664900578908637900011668083166887352406509037990536314699046723991565362393263112145695963346271718422105205629456431026999684998090375858140555151436518270594365425956734093889307743940716922319250084197025142870287874756467496639538542112074676199575798016806632737208488210303603195438569291141733563445089977894457995516644938587816877008770713809092342159925914875935398524549054081578743270661593304851954388498826614517959556400208688449595542519522278727105064982688130308171964934153459218434924987931535857472124147209481088077491652447261504607789793789621016000091074224494300155941674930652385495093570709252965181261265744248239594434759149691489075914625684560175114503849551027104921401241989203473360143606738988960399166210937214628190414681621671018234855111750911895003695211605261345101278123312702094912491103871980127760718959666734566355764442377530181906764054700179785292239088453139882763310976151273517162001099417744365980524885743006394623757281848500039578330118194678269214814706330787497874674074249408308714734966242505974216015957702668758959295848021930862091217936200990944642301364151942451732796867965909330481709583789335643553995519778494525725443832214820720259947681825398995639358364551601958698782292194911993558155822691285090895941440027309779509507298385660841626154571531442324429506802705478858062491511244603596301113835359492107017539262666253744112356075331592291732523990966374756361941868989486959748567016138531214465894570176201262345849931802588460269551392707689270581407314087392962811589562643736921947580665720419010647894620621088851913937778588646383147538472229113714681478798030681085506783040917877679793618644637151458857858006328097976717187701950047112354278249916959719436864445844235579090646403319849161311295984903148868320342713071107733126143872995367257709384846036769116369679664919625316248553037200965622046110994400500200331789944417941756993391234343011519571663592687163899495869631270412369782496918130172158618508626780866732277857347139335258678091236949205915700168776898179592772106748034683884556318532515015808769959327420354686429634267650247251139665045757657561813462862817837010369071539687694138205553471022870350240365211850663626072583444262295722386164691358308459313165063780452613236291637852384736521921828834912597164824193254677151568040923025820024473050422105971835969850691231344683743746272386668082751643018890843487568802425729464820286372984077938466587573232011916447976322846500611621196087914506247781412881078941325460129843772820356894027450743958725098056308783012136620941231585313650500369881080937598311891199823615879228117829810549515956707418051318411895685760973153412923729476360792919112546215305703391079372493419116820274341612129219996498322440901745722140119510831259899862895315882429376633582070697276133944781904902582911380202135307321371612850359071106473402093088334527509663016193970678076819128562710925217122137737947691341354010993936289999228593222383525234918047752674585996121357713931741611708245559482184957878392749779851684249696617026693476047407872356296978547424010018525410768563044425945343502245723555522026544340955314809502507066511416505268472757512848096166586518349647999184488984239338088670840984232657399093753716839502421966929371651555561110262213698990465591680676670668075432648854912648968826556143458441912142953291145318425480840529547162489293366261519868097183502121819650052146163022835533557872538452647469797605320928831276174023275274755852181737273726058682783273193283542857904099018862086657475038605061571363855766864288277828078482136596196728983981929040387225246673588600494110254915238605408201200469921670463458888957621224371479014663067570216956870051568418891130235170087065236755217987917200908653442097343205981953029274953716461827752968192795521597000591672913420831584764353804785380501112940682044034617754505230986989367516570089983134999734719845414389423224964170650552477362828748284802765022922273641886739905911279233026769609063803369556684156026538199219231923211510887131849419496099240212756164902855165838250831617217670843672769292893865209058519773125650008899570425434639808850105655334710051461930760992007552758509864012674845196859030347826174188473796127736069638899805256928815722851014669951376915815820045638184063923370454708554567436417780203097778678685509691264599099343004621715274918708113434553504720583028529972480298008705174654165693875788209100733492242736216247193569006801809065427360682102741635000356413335774503049804000635276829829805988029467140932492023430903083193387330056186390076611342739077567821549495228871859837633443396735076638876648341534392495306488424929464122611550159365291552408887963786668822790563832520574160752015467864434348557487678519682490126129729577143755297947677085242418391926736692865193117786883709364821384343185722633569411405137415815465380462267575077622622043514537047882930695076754100832538876032171396793846148358913912239545346527342619760597171075271612975219163213210904128393900992578583757578207826474228643399770168077371415143615105452886997361367019897212069989771545805467149134685079842858060780856973406974700656547431168937101288947227569315050533667661178127431643796909492578879610010074487805193522498616900209723221022777066886891795898418457140015242782670558053586914193994781147897199460403061983005641248840934288104146045000395372818714539229723493864246774464022397664505912891676336137862862832361176258966233770328203945119519212654504206255695654467042993391298537922437764917341715547416972199429932110857651340333570660555988933025046614877403823517161870939075031715691937063838801631525294665824569479056820082067467585141709215403934284200693304406304778367097623188842522721199194077015068937397544596425991808179049818540588686231808186938327903076710125207193509128044397215720786103599481513247230166015731018540838877662661581602600741224255183787324220059474400615180244493598408650701859661755910026207438394831686155895184829045352280384025792685713799172262817372540373770990587749414482183494321663499644989459406534032331351127699828275959032991055683480591041489991990523041614448556400240679097016536051201668525647439650021856901524554259010899314264796177399308173821213353930922410322160011548975214892198333374668628762494531927915078585202408168398095020951458800699982537511405673508840369630260276583574842303467363161250595165153953996867303659052996000320919130832313640088813140567024907197147626470729999859582755919614474143476736403598459688521756689262079424536824941759892994567587688911813810556655249978882820344746309449215988529987469972139398195417042753820186554885846816290896305687048372154846796941637375351158992234363826936664431919086023814211224504964273043215761073491529719412294714358642563158891314873137133473467935077933060538957737614317824557370564255398018662330007264912256322345094750497110689328647099986084893115714493241576827579625825592804588713747067435055727733841197889774099921513179159251894158966464808207236983396811751195264285389813768005411228163246857533047790441617476429232030664128826817337019597643388846151146518459776764950531715261910199602084606301268854057754614354901257279004401394314365666368472432798320124406726581439859935142997530715865916566913650889418474653652643445139352086274720362510563601502973924418237278334797220189590657127481905862972906231821780889217148141553507014698027306607029871845534914896502458498060449876304271216687871207692326857548636951132756267994323561393748419194139313043179797181477745993191387785876731817630757105681853893774139313966188702949469257295521869492492042165693858904207696371575341586340319955327602344518299693706729679577014230272049277316038308085073230305109929974822130857125513548015340962761685766726152451062566072976351093865716794599169436742614170948163526814893805747182518919875288375657184902396554912544023156043779957181241082544003943149438042841895359139009431759797848714659168910787872466083302356676704260050055721371857414348786152225689280286449564791040908816083448473321630845282546637840855739445229202462974248376492239952309384360163019958236104372106977362264300076269608570882403556087545308588122226943815031904955690699933852685331555774270551930674703309605768949353906664891737815539366626595601694337706016829726365013776816325268833814901115043449145283626490577017904714970931518428646914420920204151282911823066428672429489033107795717883474610721123540069721071633663191112445930625872467888017104200758174384084525633194829953885735726045698000558660386869288226229760336253851048067567340449120970289806577551914115954978127470035163672517214107780990052337767323542579403316175906545319621473608939485488869133219265573241953424026791178385032465634692838885347863600292663702265046230831317593855793849151527022950948642736411021989197733320738510815347179053569298384881678270567611765407245558417212809903009224265032844868922978568811666524231183772916262414452165247128479130358454113306056763241484632166353616911604775660989759185140156012007414270113682357991651065740097486506191998744954947745348218732985545284757721503899402354303811497280458733124079804107754239112177451978682470390680878038771845774485379655464272974014588178104799574327937786890157496189694620313208706660694564793748368788348822392549476758299684844252119389960443970609429856621030140492912891342855360358304287202345424175657698884130677126083686093541767221529519823863720844162413111649559375545063672721743164458604961355330853625275759131353746358517881891292074058850417812182461713019856666650273424083042214599808013734385209416625213445388305842378354777336135364780613213515270196672149511465384838861727914098644375790599850657109114692179405037368603775360889002045395891006052094479715733918650020789761036936425927374240232028236359376587727100184056080037589162844084659713861322423025333959088393388893587395533957685126413907815608993949680160944444544514806268905321406439174992656460008162736040356796814176805801326301618620532761240168668495312660934111212195765695727890174047245544380820225704695962432267709955336274433023229246427359181430627632222155221801363130317505526259227791367647768433507075260476715141413427536389031907271861750012022627769354286978301571613793236117813473028929037725898954137063084726771845292963686361529158304530844128014882152515371197733263872642210016252918380417326443769812951369084415513960664708796167912733037056678564157087390740970790383070727950402230108805758467677888499896481436367214276703052530536179369294333433630653883410240232941826151218627248525762996586450273295083457705014045504170581699630802796716260745519463043003115721170048552340207391148287915473414882964421684314706022853831247470411305958069643852235813985977881966243611591194296718250816065203087016232804117233135753141499689278421134416110036460282974679215004739520771468682536366713314586437267219978726355176340262713395213830589815310742211178707980351514664484799525728488526170243553014690246497738432139746192916852643307079285556189668415661024024322887767797638781299572134237744934349469249883190203990024818418913209489075788130117177453049532045272150196420062899690468438462122884830736501070038398717228600423976260902554504089806912626621960277595547274344147152694284840821916212982976218600852604100734283083589635168805444696676245187144668936584431671577134387842025189560822109070463592109696563907841849558120122897593096209833359046235421151357740949048712174649451435942233118150139243921677566646640429414430810821388652487289456188734465717139861866950052134886222586664813170052137257215031241415442714804593008307392570906104057764078768918464498275032811181309022555437603752885142389910158854889376640358259323135974064780645967546478464296085790390954868800349049703979662993229680914422928732082221185132102509324763634545059519369512765872371492917824960950702541937504221769630353927767461121235260116422731968143079207900900108512093070536918316318880705046642098239061157966249268235031275865632999938050022928349825087891729275470298163424421742734211314914832627992183831931024335667876142427985919341086083559876432453735620445778490562351806254708522455213646419011399324619446770305085428653482003914617892981132401801530056701824547569672093723834693870807685375991531800642754589795694178486504810209843385937627145735586251750120830962397043526482613343554834860031097408172572924869468076218334668707923681347545147414733001930936471322706929483856165390546360885437206075992566662682209895007046311955249014993968573815311789402430624181588560955318628615450294121867539650745215822885154284916303828801244065523081621395994195503550673850527556026905951292195929981363535387938888261421776869831404581035330975281199656781300170369698272488766316727955768742610695145102760753398035827064269571970122094680522854928477740910880425205159956330742175727907425210252477218032933679174562994259622094319924458233750992214318346298579672837397697257780970750779159780377914171138854384956661385160607593099491666670020728949989798433851473862189643613902365188056419789064129313912403450822805884153796293430664683042931023367236432523921426182114046244380395933760298997363410318369764094870122775178521847923874029595898789900300822876158491626544796131597772324191743915398121974062296849629555607776215987805679269083985527748799710576090526887014263313287092641391046803561906006450577215072081118228299639548511124884421620413494685809812105434705857105801250170813145005715192977726593052120736369401290306358487061487412382967509355749023791169801213966509547373539750578686099733617265771628817096058171501057612641293434569350998909827547854527573456746977546852015631141279063425278347883542641728936429420102278996526417026360370650984512647837355476325954202558525411650118275912115427235976359475106047983071813000412603523236739308580532892545825727172596308286151949923239324804455819058020594322057077652308723911349583425153689320135641427533059977725699078085937723513121001983451926802854854782104970621073757355921711806811846343630630193848704331133841639515937245586689733756250484126681666209634947312504654963139762213951380396580279535963569779984950298256407447555536265492189136617586576244163798371118176450910518473357007117548231315569798706141414937370859054091017913485266980228846896388965785568626093329154129245715246688110586213016614320373220646007126971050849488678351842451554853850400829513773666489202600861384339421867908606727745086295111479917690666263415939240010508684155781993635540025154724636036989343176666498076690145258854836680637752192297534453772944693149695393398117137619218175149499790945557805239687768372581089864664503714024604576362739424248246755293445877432183871331363266730751955794922857167477251929506536529869718668569421825944078171428669652720991622193241534939979922483775772362364943971205947374688901336385925386606229999667029532483725672424386707759305583441118587287470082233609030139093502174505087307279942698737554655711783898433352280415513665625492827949215793574968791115595963661539790155392668353915424320132756300415820056371697227427468130922601423577961237684734856409048582162774048771379069715342181120207669370789825487300883448136703800089546327775746878199582732401025074936145120093905757224104481062407661784374985553773032474718373290782364140725025286557827274437098330099454075897940160716271635739968653843160588575714116895118264178599549327727665417596099065365091410085036523300026891041443727857584618392017411706772245726002625159326697847520058333747058174173718791577552309727096829279693304639694454143956785503025458271255643084286324186043625324471776606028719427614731769237049936065984362449389818775325890086661295430703870043584802918117371370703849218685148570681126333650730961262776613607045424396741379725064372815752832344603245490124882084553317204558843427610946510019837594876444804284831301308866323408860096066333839845279487727012424179793970558053899025699395097051367932715916457101569318641770549152113808974572410585961376270973509519565735122197407037579797376018628457453929062737991136206632641749128657431169337101275059443275093063411079591383151628951112684303237005246434901120720662747245576553034263812376775179792233385778420342802538291516583023001582696861929311569704859439864281325762925524829229192349399564805259057983762851032574115801748215340601160804380731702123950412532937420351667528154812503247727998083662109732853588005556559613451766967495164724402579895870095734159138623562670039569303083981666432465984005362159818756597899044893976263613074029404061005640264680023976475593467711380081233822007006104143420422925403632505744676598434487333151205837074436223850866819903163007857539484410540770021188050457683693370941743530883712546278994459620847571817092423936796798611810731393513244962164854959530028429383812964148951623482931988991746711283812596347322803598851711689726948461084476823718715057717285073070384227000855102380750234907202086149132652577323473177572178774753834864276250446712119608224948158648669562833270871695078136885678461113112277505387733398360584149470327187606858409820280846333087374945567314744408116513647304673462322086272226358693544458616398371164064851473324953923297211576195820553229787136563289425602197423572406504811915130164864967881181097165019672544038602212832051620801008146981736176313732623790544826668177086551220585198227145846500165185123686555493142905074726928125045173857675601406875196817243996105817072729619326691926830567637499859874412081467222180492755471346136166056327319588695090778724222990639018416836993821889533351308917280606018787405521787126063172306423856723386744746245897432585153403913527485432017270832090766623024316636038703148367827286672068569483876206921316069426461659419515393002351296245255611651083575040975334586755251722460794296988440441918576629224967036218209308786056283980966600740101648405131961810560038488804575965203351846112887455171471942436539149970103135113036965777426211785492453382624748648911707864665388097723332160657487304091302197044137427343038054391661000574975997193964830512832740705397101220832595966715131360657878386035678436676971368804855347541621675074444657320974833814570370173245392549420771996241910332061820410307216789954067263519782769281108495373715748321080338491166027462516119816500769019849057851298316005477926002999948311110338325469573476399633696022225241536557036439846046017412570803209978207872948116267606546199258626290132209609720153247925197416548127951800507755971542773587215106962389496862714829110940114185458810836272389942338187794546576229607961991092155282442685035975621224249686687129147394323123218043567889455832884880215042903851534254896657043988701517754995833218232719887711631563145991180389590150395446376590205591381711125979180213361565679950761853508766323410931929076955816715278059581047367640639894103005761991948720215353760396937612250025889480914677390988237653279117041829875093077666017169180342622069628363641527575601928832816819752201623585628205536798597290121059411890378171773493894490978086575163239386126423292642616364702350187630889772330656340599338402139000281441258114833935358421539790186158245710655456328254594217353549773427016769277352547112698488562907543000092203358173023356200497995335554601222895404401858226566903588741703995694910148100659146435604482631614474021462294258879824149008003025933811076948315688119507387181205719263566743339618188157243710761731922234203702600794707753658448356731533051992085904679502963315537738332928174588864707712393141167165625722295697235755623025167140478988514043432013010874838952572395211061316662467773657668877316374619749941801002451556678729687515998739778494024110284563838589456832900533718152041994012656354452235074825915465786020125568355674528447981294576723856025143739313084033265161878957194135745361028046376882732195884682947974562201820983830841612057026110357974808603489375763597935452171175805294511935369303210709847734251380537927373746976434732935820529324942365763965349811409765279158722770172359697846652985053820777687781858669164943571007848786608654576006123571732173636355766951359054957762958279167837689917310458366223176951911191670751857165595232872551839489443493336069097088189177651378903637880833735572701356014495641179124761330125876091650122253194262220649586752831952845126849491811963883325765838198013275195980533419066415034117489476578304711829069150369799807454554638724898135372748851719397003344328491264109173342163665307775185290736373339561075138567748739127443519727899817812290000184560489473414092911719420638604972877337671619706344062032985258096067273835541805491976143027620295514488122222536304477094580382887429803898095100648879570831504259277889175811584656573224957274806467741137399587059560813164271489360465894309424295414258921712636370681092647111567258859721770261663992124076079326767345722305359082599140264345104363416255956634490188239127653330317441902246033012406564475116704658407349735156341959515784122099243762310431605899716555723774324652231903991286221584636663156895190681187443707553794924780700650520919376018834999040504191221144201521410122708136524922881033147156600507277426079077030112989994564330126355128282802238326958810315170464050511836773260715410768253779800093300444652757460374597356213564200037319057741581502100812931871485108224469749162982273542350917386616190455198275157125429327744351438324271974114678573557342033417154907089932780216329467957559875094890892936535577205830840855609198856949067816415782312493083094954622419419068982925007864103235606208335030195923385084007768396572809702134813915657043971008945550395794756372719905261854136823945652064706374468281087200968568159843795117965750557284048674856726342942717883781910428485425295421235738350368622123292540550730105658598499510988384864259522750481871366308948564598782863971907574983678255324919660732612277951084039529944728832476210774245959874880695228266912957230270221012566716127840999213707829921674987984357785137347786048160648964224400355381961467987117659741279001280183516205857942758102908728793413641550958597841820314228813770372712740199203418659333940342258256544351196885382020315579868935210286966600226708716375596522322109791506510159167264689238348571971586546345056315348261122177167481083718941680676042636656910079122604974419614239372805192131680342269201247934855274810505101364762632317186071142535150539593728105814115291590694688455561150993213075424315660178013211089695664601514105235795221865133624875059696341867992934546965908398133787432265954970123100867833261149836334314357805960465438001947457977029975609999586524125311006297142081308609543598921283311759178576157924749548222952500941637901965320099597380091975606608999840976822782104645827015923941806958279961761536865975593270084602744659946294540754490798999230351623766436666881382217004912568917367259689140161024566379781695901752390597957698786716908553077774105729556241017486801021513404952283118023420362324937067014701068321025531128078021646398119014154818635501916186430950752802805850652339511024728552652145655619389328344945988501039263273503176971689323052827559016692007129789525606403723159200195726443414750522628634034444688979314133614880237021262024832263836390239553495523952770198777504313803900019138157590945242483845421370114898436246021765305138974297380439986667334784397281054758977821686309484182149273690216419340350859681513685787011161997133893159006636068164316937593084031474921224398375230626065401707600965298430614774793322431985221967640111816044579540857154113479069500555309335535805247178720604164997423092516140177243329853165321787876448221275180027128561841631113356347733740390164878404549870762001476608631646629598190131389581901567354582292572338207697235645360570247336389110013113584510526182101850229439023673425513522036012084302526789480366379365995709959993145914992486315557750488631874369573279472123020084550117239328019114111113782350280596505814682306940797950092878336334413965534221549580413924551712410172890837451693828339268655311913137117445281839784026835373353829540567072168487110214655319944733943247167300376093860307834741318962142687346124779488891033723345660978889899836347161726098754533230949017022731494753739444128080502425220196941347583523016694540874848855256448062893965397344267287625894508891926899576643069957400944286536951649188263681007384205531667856535981387680339482162639790833528924298742041922176749149749665608040045659132935263525287596465306928133291846395200110754873467243353659916243879136828160847440897646777384680482045188350086644869915020791402720235860529767552524044245627003458099316795041729626063822475968301225523909332819860186228343165177404575801063779261714372727433272995055613301405042164142277279184289809396197033301179314248485192911636184596745189952887264975206477989623364071296627152515197142676715739474136117017851336488821267983464371967681843518264266424678947154177421462321357331081411369389317924450504679812135086618770467244550017232829891735375110068540621662189597357593463896995318299842263725754082269848392711825196183596599237990834002611016744358985925216940595195235968946137601554738517369877678588997467809940345544669480657562219474373197749000285797010973366587635377403603114951443005618490953016819038015348202855626780177052736164405944155863242343137612515787542707043208667043203295551205398479489035116078296535035578768750421824950684885782347152889887723356278905689768377436056230544517879875619443192845571712914706144870142841413902607547755869121471996592376831162247672425249861098545225965691091386948189030414211320108719826516009682390873527519743763379202335023073224912421419393209399840072700001293691686683320194425118863688794143413727985969817809764009522250779697628801381046732020067668850965310467122690576959658864583832334471535731356974807057460276822664292117285455163601949307652434306596873492211422588409278462150496651370487470952011175375609077571654598978091227104876846510590037661302528731521516572077396245350405639289119066611381717869204027202060514235355152730647744263160174546645446269161428422784663822274369968680481369776252034993084350878764621149540095270241230928856271024244983787306097975704157018593129689424754647630343169802144023410685248363787927002787899013838827202521976451182433216343226077013015381959677282101436554334858564290529023766410922215205675090574722708452334733734023285749239391780701480727589627239957173002808607542819042646023194720626603093177148332888421761891207229010333460141939586162839229716450342621781648104594886170246584663022543901157172930062816953228258134059033082978425161691235431803200126235619922955061210572884971352291321888897418820745687466253038351491753998158651026081134646474802424534104318331044843840653943242306737785021797804696119136393808508110246023417541652440661360378630339590346111475261106027979207603572803507114998122935722485831321456117263034638862368123857145161762098967956530436367753981841877386307640655258829548950652592131032178295057713219418185294063155939548126168381987993701965391680696852690264552969828892479323978483172689468917549055198127861826147905856164700002656730342974955763572548212266009274642533671646420470674653061459301217624041507952499574790668244754575756253049210739979683941071163432545515141095054777958794113774357027734315570715032492585548557515164141230306191078414773452387446755162002854303282751396162288818164816850320374227956162516317099837784899883938663095382950871515705777260826588589305000286408781090217703545999694697528089595585247565284144521879926064749012411555366743932953394925573262223815300890840124361398488301465412625981386812363599581199774668555056459090149404230396292994652857158234277304879569460849398290899321632380759195021352274044678890575412962735401092853582174611401434690295913713606211105590416314307519410976043992595967303549062495868067667107026325132577112821662486697195419921287765978820260688525616331582263643350492725431566036410504620385760426336089836046129571029227906558582702150402042619996740795492475970807943729018068415935923047689683785244894415073483843529594017090938844849255508636593112561145708143414104968942330630204733323324685288471486004836766745215232125441902272333800385986630841424870246435942546366571668418067948770573639977492471549684241599946438952562461953744765323493259961906967330069874843236854508339133952478505572499685010094024502041698415662476658108597502777630909200296962906750959731032676586042382841099349189625173806226156664337535897774258827249174119283743776337409465954990168698564610213932565070383194967980226183649454590443306163182904842044063293008510423060941639331203379581874665479410917249487382420976739593460831716418501604114381733168189962713454601523139633946074630481659941749721169378864615843288713510974449947578372224793218318552321324368306748613512010053710762141677771988132203781605053173064001830162220046513944822333857495304922998749242357167113283213927315749212748900128621005425108956747090108029317967810016360069390423145401119898310648024479341002018507955402754276275489157756337150011878132617234726510202980728385758657915739087796665531927924074778888057819712848566194029015767260967592499309810338349380176806000161659717550603107660324144884368124607362698287257004151997837979985206618936757005749928977526141708609486344572743509135328634437174344117848863494138622865746237141883112758230896712574374028027787280251099034238013655065347466916533911556881318147398672212234647747037770257947076540438567285714665208767368220350465842296041454876393544262852166232304678273311285956711121132223698416979748804271726673448439938862968612613606162294093449490002177998805170121746791611767350203122261844173813012709220450742352679781487699308039739217844723179645109231965166818145564408815445194724743775263969090702695477136764171992663703095062822524712118488943589518196120753794380291348769823392267215793362557288424115883566646269385102956452297054277790927903482619126561516262594749427133406238198656161130976019911195045489253686904352899325314519964550882448086176207015118344725026718027396210324595458755234476588767305839940343409376193230534610286670931845065924998624476579432991410805359178161036267234508536987737052151751487323198334267954113366439475680842148449673712416898926985795476881444843821958909222775692420549953972007860553317885693377367276912524838181426715710122898716174373958048951018977384402949096860682582117082740531403592718791222098963257770561699339754564750480416049953011323617585718365192996303225804752409520271013100569022044648547081223222216127430489262430390458205569899857160234468548523995903547038199057470647273292531753583616818296486854771319281333606584343092896612982803584124077760303001540064610783443616239601639028370397932609502037777242077670050077885897324352895826212087494857385696218089369449104406160585818295374317300681302440755185323405838768924958458508092743581655623417869607217322343274350095958196042590317218951975432734119075027325222554034634036110445963377247926924101516521652900224660641597611947546758124464088237815959043004135704231015843093072670444460268693867393765095080814235304659309423690753343458573898400741830184838470464085941972881759318487893232812599984112623311982316581008526200953620866598455936064098015280552173157805203996635192382144751651879527746647312412427075941258014204264362861614172743657205652883920357688721409279281964384145138759921841993737891680407482255791353953289122299514141820496315683454819226788531240285965354519996267671228433229000696006769231451054657086636985405141108924478273726171934546149878290617379652551510870082660282413454014464317689451554198940642575820609948272336158416882270055409295137697961703817414935661956057313630303331506578444656365796373779192089069716322995017722647623065246568941427157069622736749054069174215482121441303121226361809198190746418979285991637734543288593763005255064593854719690083799959990425050191128100212736652407362468680194368874637330314758837619043339144751971329033853504442707408069120756622954631893525846584408151697020916396899762262094046958081576475263999779406523023010923627185147505497601030749835287296039976401692987989527415706673822084998489055349719830708977802599926665601387777260219577187779109728062009665640764110094867325103053965869507805107708768152669579126724391823524737393697326745513009843808351804627688758088841848951787575694099551739753880325473544765677570937306283052122664245980128856149981705863127953056403447487783963833418658748888452082071107749215157372878069417127410889677518919336848907073945994141446024529187619998221948065901211516440074967302477505844946659514379482410991528262518455642040492285425204107614603012234959936128065239828741084420824167590987306925498277480309984237392084984631905672207402823144279967825530139263986950520794787957831988364835741711375148138523217924597026755439026291429640349925163366107127618125721780218366994713240996229712265083956799117378922292312581565980625720205755292111860327134411988861388608659548924184337382837297379052450135169084316571957681242095041816593608167568600802836873015897440237031731709964782048805696638484833358913019070156321240511778576003855796361114274376276960026443492541556174431519393461243728105371712014775444669810487850866977452932848608731017476707729652304700211370412406023181833821589663652874536674516579414425876526533923554290696731193417250824146770144709470541963473702663625682941195515152147463269228073743474483964250583550834294266332837726302996544841505757683016514513985509460821867595595841618872588809597637383325548688679666415666670035051228369308964803229197272987608121898295939796035274377188913319290472149544293737389805132153535726546229320112144288466532513270872329845251629736459165646218234414946515139947384844904958088331487473740682472152717993139981786973411097634005965901055207090751156020614254020536485137868443637448526077527214356651710120538243387256380111219384879067928042978436105049539810719692986097480653816554977355790595145695174075043357878428600749824691053773293886006627371733119616616787822374138953625403126172637772304369439777189854861642375902553647686856092027166755253198706472808783409262446343662886440469274786074959913829118680847773136156326884184913707285059710757019079683317034483518325623175337858058817920656478649173678799157681206664983851016612209469990523545687914116864499131142187680228902095508473577304815757893362162597926612790017110420633397175220450067808930277810476832673445433952386259394042065251833058681541924201720321201891568526834904250531820486548072740420208174932761373204341438452141600039452502748927010960302781634753672589046807893064187051535063346999792206557201389530105988375597858403294631458611347741761518894188330904985139355221910614515043783539968430604443378145498810298408303849184921795360246270318593302626849759287653226372616293770688871617913962020876938729032246215909455399931004621434166535489431591632265102584040616976335812588042167463224319084570224360163371200543313072226509748619877930969968587161161046066509855702031405240436906467297363179949553248742399951587295862709118625023481050507635547708575714988108621852732501658811479920311414391113259231315071940602603170379662884532445125109850524175657866408332835405298164906243156419617634039384637640388693306874995915729499458036132605457365170228205461906537489510468959794480492274153827856256262004899594304879922454889957459175939215710761207307699866496844569898245167620960815569178320720178348858488300688527568342329063500816583608840600279552369471268644713158574662423895549595070321247748509571154995549424732079905310959596391739372848802713307506495878735330104937425996777390012185513852787617506704995262351526610387919983203696136247283524608226210934621813281829401672123421025595490988272504664487328777151862788826716786500358346039651762824391363379063338211021401007526742316019989955830403524916979796055336203601045686514896698983952087376319304435379217989399002848932762812987845217822090478804135742464021931059890995133395608622747795714388597025794934934174953870858978469820946657217570882675258634409177832453039218801490504614149013612020553888765627805608605632059408379800979403113503283314186562240243865464980850601044890696464784911086052609010157837642905867357262734878043625247137225433507146926658879852983455143451953211619678371302598617506319520660782654925667355126775833664952969135222671345451948833165895989394042137691462135594950008533286173988035345184695675764767109218583851055855439754960398865840274616262959043576352676045502168579404813279339637136789101421588340252341632327777279995441022775182606002410922580294386215756025339652158214328252268226937625913792246197602259927125801138640655162186527441777408408577199116424565187813871053129672571794085707843788540729292405566370759365178460827676999147349256636767298611390738316434273398848572402016332236925607458079964347345893193747976561133369743214141328346302377993917650410734581391014132612121215079681822347076410928625869272630606583052646823253337554634665028494246748325581406666714248243541044242724180404131236571196473845739307268851262187708481339239036630346997648876107209366431108541267407418037590992468710587415829754854498372338092200838690951219416978733569125121985862673838109040819218806606410766189929645245933851298606076893494586739567408343132290641059240843848738942724055254571476025470509260933688658833407522777149294220305136721947316074123978423179554770836659525943997567845375436985668450515207603683746074143733282750987189802014887355602809978713058766749136212534854599583927167225575591177641337137027132184390845251255641555972834293768457798441966673234827128887535099070722135585487995571767759133594167183148325497712252756570855357211089955807109059960840871716418161473094879990572247131368428817344287028931216106082120661818083603482151299083799598334076079983522135113382250927733163474689698636720533067726969797473806818344235728790760415826738569431199479892273263919930411895889032368050859742706586168092579710346194775587266958057792624406991494519030656984165760115621674688913457149122402220103881940241549136751434793180862980405901604432811833172197304843754789763541308172521906629159086763241139574951068294175328809243141847566743908996808596204761555659918743997129042035369467904761552985344320656308398127506964023954216880856001321303936494680412332407334210763043395537013947158433548681239422070050035019585782613418308933071274624151254204912374546503506953746414161110235390505952284497369517294962070808457498771611275553671700227849153537316077203395993743739497495931808312142517865806347936221429401388363394720372084729523786785855788260989414837597155180348224596612000095610944964884703168374154891290707235326225399559697156170230031893451660377758108181156040091780965951665740013106923164890415770783980235002885559908988418130325248163363411644687331722054606633959598497701995975993126056869568823451748743400139430254133577503287032467815607994731960965893761339266759995715862217886907784323422622353021286165349086430463613723022965432757960163660129536723282344323155628473859522095342769403294105281359817763780357219039072537844454085166067953572828865949731272199484815292606374398034782859585728595054041453427401735944219387676896457730009020583860092346177182364792107922138044760723018553883923340005459455112818832249978787738860928162313740801768516439974967505462445766191376322598569657860672970723643215474935711769563714760665584754109805190532121892012507375072053470920268414039574581867227545482794053966714659045239367913250627773874416917873999116010680905144884501816005421753272803696498066976602348052270790926109965415363031210930666590017583983148377817833878389821094979775098847829391394599779230116752406537930822965350693636617009078875653819960611275982730741958579943420314887173626265863632018169512818926271008499621935418647862456103474574897516064296363872444493853384262012087734554848814470325494513448170121033899800338779740087899223197791882256488804971811642929846832149853771937664491500940910429202964250016186738396012568193793219728925744181768989736814564354991531004202732158351288031063792951027481165059396785276336220862165325364804605548933073850027378024251431279704367136280677621583180275007541150028097187680849435844245812485686771957343431476223249122767484969304627575669094393665869207990418831113058554792587389668986653477814248806658519652944233042562646344628280078642506949561326394205209052927273997690162596919979576184511823156285330277563114029945710824740999400767814031672483785398724342027375301746250470974033725262184156465673871726055985072537981845102558259676579894976194369556059911758025842328697207325744448723830412874676893940342419189157565258492275159641824845390541744698611171311164719345545587585059199610846104488031415691515653136289793684421671412901220614239715424013598544048376252607593574108600356518681273528920837641263729009607795239761349168418601138509316641419552015484129419512437281884631951623132138111944005032821759879559027404791122666068293972349421595385504986566507873292733391465955297164555728848596510993875260037896812037559971940987951471188776342974179288693703982407557278585588985974923848381299666904973656325604496249215175724039401805627465901619518524602489126197679291745324742672703182808771709737458034095008318271347841349455994761613318970153488296691353256665650984344988791996719078073145405960829481893200875882084878335845038963111910928111795317047289063802837343323486064056075455527525062573377734189268306731288725495532858750253597843046270700819637373834428615983882183328372757989230941948816834335124221032521110639668091055630223820620596568789710273245118586886017952458902387912543519131967607913954410907564021811707058973056387305790451205386730841910685443790963274688458252104725084059304164570506290148214689471288297112915531806348704681063588850623531131128687596502367716886799540570813577418564973985173157268642046212993521485267799449121477916369402373082074495376102657428482876291116764043098137960591287889288779211594706066226679939133130968189460243195113623322901366519097044728909362374360343467507741785216889106745695023873249641096659174167556271234968829311390136396491842445254883203168591943982006331572768272572079698168539226476909149427491808910001889596550557265128347317118717007955039975348630332625227914541230560711010224174130640219523864074731630539678097995671262651155944657908825205568446892555195678560520781098572113570138604067858433864421497325879287014247936174458683042625935303067447724550498130160026229744629952224100866421527095474697413341377737827839200658528402695264862686262529842967813778259064664120988677887185835719336489679118329108488824368224884362881994517684163793618801599253972922106293892394821306387069989585470914669632294122678600479249632887859471137876032256915167179539438528824718185664627397561590721108778736229075172451918455062735770500031349421107951339794975938631792275453885131730133812180782823844933655320142204668243229555950633606237177540540322600490493761823459424279822048265200722108699564074282899524383748821430052325098756690724328414120456366670718350084722402027218707772355489359064878017534078541477220934971800030857684713218019401303192848107571742828158867187684644670065761693471058839528890912010906111153863562182542371656350098118287521390602014327853899874641580259465082496150411048767167882058361305796915150713014287870884212148405200677302749304904850309554381113256380241236867790620855372822357086185750580891581555645043183183890567223228699637988315804449645511543061015137648806041971662018638532409526026764621875748471927864029192277131416633204612341977855867998220143462315811388875783358246804720739407141998463231912461561795695676890592308787488253164021470328247109512116095036405735318234416299947371042444707299963366815856840573715533037211259492764667813433373816296966268302901142007928641204617624056407267306842315089017024615581280734971506704863999406327506915843986852156219348279545782507496293746746819690344458627106225655069464191348303904428481758252872152729626366117934890542635435998853193168054334138673234677221462408001066255003777578334448765675705286848893458939582722553716716564855753305339319365659535201151733897808839394687058993841416351501396128225276740822032294287125621428885224506432819605244843176620048815386759195783767467642979165123568216961585050497333272065852174479025518663757092193801091206819978421792238709135566896756837927654422049850410734216386162278981544648357197614360010109441287543219919243539689281195704970039809405580372961859188943463835678046610831257291886523064390746689263907542831399835693851075498162091457585650929965679975210076919053220394183607426005809067207622218258798830675697794274652810122193353075683227630739966705490180040553567010873610218062270247036882203395980024072251929841022582916621748864425388729127113348888722711239330935813853404964942858697187542153607418410983655754331344096953768465337901404678971667920597459841895558912515961707796145418400233829733120291482823870828217517229672813012066067201337387948139467616756524732043889031763089508991471906311733411062614858643633617983903856560565144505484004392298160915923180003021112740124057366764729427500322817366476688607933598333433519543059515994697854658040259022811967365129255696468039923754373370662242772801169891058095801189718735508315230034173695014947440095783816423130842581666428478656404427344395019705713908137507205199919171021134143636029090824164622791817250430661902807511982340640982556358716667709456278666385539618758347611905209738451783191297889251247712065092890269489961900516297543269486502314579007263959635907514934386316269864692310800016061397709441507182296688827323528006367332976141439800629619426955234921082352957239736321465113946137235626486700141965250809243800452103304079607964438890465693751739091661594888307171882076238745085250176691167583943305874481869977624623465545890252319089665443233896890509001550507938354197202529373420181764597492165232743033718066971574074647473629791941163951382588804293471877461878535583554665294159737922373781813053176632894819181114188938559513649753896843227117551104456490312324241735804178365325530673564203412321290852718709365091809087870859883271462152196084247364381008063931064530480526933384155062839579441135441783960129807811305798357235772565227328839448400298573282753806259215922036212879604712216482041451643169112244466507477788140981125632385113075948689338840343373278359736141009950206035393097711214184565875961073708150571480380473877243592257251735230437293972964697709011059186419877521751946483425474433488643812966703336310636519115145877855190856068064979097642802216104685004511164818541192545822805427569187089710389379519513675390966502963479303754706318659225225813973229195411261664228561569940276794451109198538069223768876285592172080683094353182769002593630374435254679833754849953662858864371023112234116908012707843865898490811445349481499346810659220357397354742183138426587075838010941541033941703094363347206109925172982267375204912832551943904074275530546550413048525297263371617966227811786553048318262655059450532073608271843003395346364410266028046394431008367172876572794490078199854125115898090323517771776660893883432461661907996724886869343492760820220026270339521965497916468218611852317645231956646049474679958353151391859133267785357794005600902225633025821674697079069946668049932146682065646441321453089936053519340365085159665288316805203516374315894799726279104431345274144227411738023615836171336000715618704376738078800869490508550004106330198246214325326775537781726215509815314135544220011716480644824994534844974542403506958373772720242282424734516796979444984929095354022213393303711753837770670798004805079945735254858853860292393887099923262677835190436503669241358796668193709399983184844659851111028721871360311477535261630169991657172202676923075685195973135866912413387127582946532392043433674543832774888125680552349083711082446283955237703022350670122659210296511960488799247458884174539951095048535692995305879228153916956291291807843373683591473099883662396188418618932727537445869549471469581121915168840051950230997474659931175243609265963857087431772917221999365107352656231295619574385912025495853285410478886376443133885507604137814547265968462245483410106363799244760639612678737404195600999362541089126495222239515024523211424786143944556106924703488889144269777030838828329692240071688003410532771944793806815425278524430473146667984755166457676717640193830240186262804203644061222512847372316399467577271739097050043294221961591325431998158001457019929181252432873337279072836575947137349347461973287383979379230876928343584330097282948331931331959029191307913401277381976421254050211501226015239936221318062525086164496628255770745504348617551963496971421351570570585319691938003604151894629621112912274870927666609101665930036080613578787470756630944828263063735809793035767011622084412501332787522972597567024961937985187306076605453847369157398557304048238290787742838766859626355526675493726136537495900215793334997157985442274626945917350003845336446270070090496296693877224140091730387516703756151171791363824071385519735397919607599302480115923194999947354791299898103641185241187919601876933621444532685280517104005648808128865108305599492929602086916618246425998182928747072333816018862291366098052208363941842444396588928998301502809516567794744483360913359386594472108426830533937913986329593219402588489252765670403783639306828733983998200515943625740050552494738816008735545294696604365619769235255809955269174039108732752551475938797652508783854242614297623015130366279919928961636854755726880699853518025195063331234657766213834383725123485878145519897518595331712375166205025144231623253096548650157785714148232491644671884582835529095944699507969859399692116461516105431863479805009392751263030641957863369984932900461043492833772746062137956163716913235147494952958864950688828646079311763061166273082838523117897256961274633401086510258463119949072212121718769041437339224714743704712518151959682551822298376994403785958402775550774804767316566936055128027722837381864600804976907859947660881968233899159387427058503967381071631337136061788174423503636328809138122134400588972084959495274426600838804978932147978322017630984509721799054622136580420693093092639291971352649877747232292858118232570669847626107357285489337264057823723318013715123601496879522851492108284146067243431201552412368323619627817328534027777175462568558998774116249091267510425523131625770924445998322204989154553109072079129140173686668016918458540111349495478465347192990418452052154344208882220335823178468284009705404551259000403110728830701290601628683388685092964918507677932456101945680742544857226441541877308712766120218255939932805432002581389934958268422447066953089819622201808522117090768065763745282241421165285660192756123403294024561132602648529821875669862939590072016455274065316125060144189607030338636319457749130821503831689015184388492418299820379443511549879725509915214780138467833706879221723630335704169684459609925224860122592657764354700077400840156281517775580982031617569160698048632280260282843556133065743552033549827424400435817460460822669415036630005923076710383449686808843089210945882002886596448433489008993647519370543924918431977039620432255363239899272406203521449853581248107771499295812716742628825190078912470552376481283798462187114940326548957217371627720917465415405370716477479672887133078805533705482494718409353902950645978958552593983985017221324371167024150533519188468100148100465060379214976982299313516346800597838183009460052960462510131845844425500184550165691502867486917464097805310093243071136040235603872548822257364085865608807999673494713913128072755362871349740062246808304648675539789301830135781888270116323189154633170558700305942783202279237571473131013112794781902905463199738239697883751916446157383012373245031472963997395353009268024610097503446961071280409289494006183670490380955928294652992168160747629063710384469790869285380097815145627590702219292541175175053948048960603975982490111420959875288442520058518633540300725572281823151327890831828568475043205402371082804972825662558505005317938704783828520186202772898654826066600434035137584983016485293050987906063349157232655750371698211598581053531901821879333302273057548664097979019847970487860630359160833997920003692191097089138095104070738587699330060949988403678354200885961261756765590504210965202568077905332906164131671105634504814533231835317312399205003271576962040099974290079169046785818099857911010972576337593712826400754029120153044177045249608995376368093636207593688372602171413656630237917926864077805311326709805639954745212402730493421752622419565389447540332595528058310769496479616734824625393532539529340131796697111902703598632030561019477204050972284917215560267580746046135343297680364444680271432920165713804290682803823662069749023241113393543816839523270561064837987165480304994971875593590117584484424626157373268523567195897769910766872496696189593944053075703662621335152323085621185285215436876891428787846100069546517633260840482664650316618810084430690650591991454286671790901253301695700843415239913928483832481902834835479297644644347737665001366415210396469991075409405898750572422577939270220609012918031385036412873220312712187563542106125350059206992951310992614681242349767714392277807902892103233437706304899223972281964417654462995404612861060843077520936882216186143302811510365544010164918943010834680276861279452934173149015689114776042665657075516883899786185253504264283648140846613456102989299382365877309609537605209575356364117717323883416369204616687914574106143923003164550508292500460434920124302702999957644623379102318026380710549411462160985174708656771346432320948703333460718663602509588500831863080127313669102326918496663047303958868131470073753109690295487030239233654170097929400515786007984560686303320325546487547027123955198125708744586287916790061363151673453471648537856010162091243483091198521707808478434783571262745557037218191702559852824246950473999260737034393516518180860204578964111876265121778142997274524423008468277904471253054921597330476238525395775844508768135753264954725186679803103939184040481836864621911357544848344037592871907352144587876349463273629809035693030789467221560472808071663478779960480398700571477460415764946487938786986810733040583925753286906604126812966748858677996677074862170843961971780477870742071540392876421936375834732766420463420515719549917533018991150382839469700561786475799237462822553074188754821712423656667528544998630085907979748537315774592573885462124076383611572697003532430901417698882531404039577260817641090445546375534276101298920966007188080186404881758283399278392526744080262663948347902029692769827346094544318014591928415471166407142495566874915413261077752073439530816667231867744408649031922140858633757402550487930457048159511863331200030053242836341859251256647333230887344956500871338487783006223318496779926307036299991900470861535967532505658214361822985668811986906794484049787714877271282572901161037335767937172192215703351603816234122689272973294000405243439998800709011397170456994932156945332402052088398517007584341453968866940292674872042499323346614388419689842387974002032779237401279385089491900226935796232220748879236789081530110735338964594665837813308063701932881181809517955663569964924611330247375896414034656425131114392941718312216858375805372477358868773967724591347310991090995592441229227001462570913729683542487011969305079819960006143070645119257973627173117747081240677719661088355439668190528363811043768567556851351162602516056091820371947164982537368046285897866033372231848832262010993523783193800221445862359106750592165599877397706592600270664244924197607018072617085716152725129657444066342405826279870891193712188103510215547532727609287125438475528061156054163323052336873794095183890551398148708803618607423816200772253241025277266838873583707470275183086404695104853745461925129749004389165988868376949442842451871645962895087811608031124918062720566763338004493692106918700045268471390174362090824482471655022300099998310366145323307724188877935468248690067821850864056041441694723902019265464777149270486924789025062244608150167410744794603837273006082635789115648624401120031593281101493217529474735738286792847920804581682736176143712318740160095847158710741800142952554138470269568350576411248807445196287603851493932474331305537364793272994316475730251038643059956012982416521519555233411806077810386303815632977975277993595418214010515553535876693278238410563294751162887507713192793439953330586243112174175100498190265111669548172422501605003113409355700697156015603912842951166447246621204298842412113344493127030098716595560603009015236476934318066114696294190482466793170012401514577853114013073495477415240091593015573863512944635620062811089039466324001805856597643246996967691554820095066277538734307999335816733341434321699576857092793163699278151489002138037199257819514730894383197276695424203557035280667973083237994679881857427716537124218299847966910167688309026838105422887986094445040058791539270794308971100740941027344213353504379495996734156963177369113222349281301214109188797115625436773320404598819351077925902124308544176115605358505092795532924926491193625236459624471656020735556800442138154202783294879073340840397682916914046258664240112200129294484018753480097730699200126383157988815265446091080931566787522684745579972040478489243415455846066321787265233596095749457194755880853097068052392922182340808405128529920562093137698261519861819150341323282772031582251852089444342231013829803113121037524997083920736935733314143033805164833303838273055521170893846321543677773749159099101048758435967888521078033964510375003829848762569764505037640011974466068193846322568070783066269932914086014626787717914050882477766585478240807393067694631912594983475209890730670208093411418371458330476882390705823385224198634673889490558339233112264449250156754850133255152409350933828769055276072282060068779872895166516329081827143791540667224930791391750698021736864813695228552687984461852296859455285548190736834897107595197858310170562061315034575464202900144862734287930748609801767794344735030419260651402689861389359232185121826234018654303363247269494324040317389300381332189991583758111505813680379975611001951726324858600544287282937954229916145454975373659745752984661668846754315856733047031896301967495818746553998518197769135483596473522515861956968035099624069754872069647203515045529547903461378637358703267958555652818421952385169928042767939518958054972907161306452817719139345373406636289252555478373827709766946169815534211706859506679776127273015575080160394828310688896806324831987852867480337116920662916847174013917459972250249842467449489525265244516737384509253594174018279851385336747311921004040146075319488319557041347194425645094514727095404782458393707251954368866170914274652734626760879931347802473513693320909871627867873537530424096094047476149418881222724043146354970750603648231848593876312688778423132160709751177157380926822637342940045485628709185974093557033629679994941739354674605743738794180819511349691762274170022191059456729712955783262792535963263700630128877485840649765032806949887256085068680432221700384369054708577573926843914404031946619571853477105503661850329245703775818881806322739595218000767879970869288562850402151754054788765134476591225700046984254947161024995445867081016468605140097573754735533131562941498394933311838302652563830378067239770618221004738481171358131070957401352630574912793878490895901455190931667166699087902317883793440403920520784355786396487286075966358551784055334299319943626896541707260156403875343090649202487496965131024525436547246107587317697445986247675384454845125412119683623822327514517009210654568496912722079815251139108246745227513011174492162325861200046931951323338332902567099630614542589874299066030714509411996732999596734002841897963300284627390197502781319866773378487428806843911833140958033065937919715107760722086144018672809228988911902218109047620931251907709095019362434165610821930864141722274163187820493914015353194436452506556586897409999515880190912100378425788398976738794995956065864925191909112065168279374004814289074483174582212299695430116092017308320735004249497165379085881129491345897229924527985772945619825270055634277124912682372382020426325431909856455889871291474042764263645329338523848172046619485141916532256241819711494118857468098143090882101155390587540051101910370635245136080559912017329758554998693886475140852787145140033083298559619992582149055834152897492622770570200821300384916986920867797356260681930957780926583032755435565497439937042890132938015574756403846632900457811748005766228419018951026478383914943986749414806366703343037189610280130062637889403478015463473498734510641969483027409054163686726898770554443510499538825713308565865823220000114385646507263226731386219019191707225034248857040190104326225142070541113371116995425066535985669955122526604486301808209288913596843963554442952145465826772742251705202180104336583001292277475028655744732346930960119067394041004529156124255339174208716416974838533226759462343476099601483779997833951646262277075533044395652889140650875356304921893847400362679449219923060584166059666419738210517930817543502050181961252170335937339837334478804401339500779005943362836012972031656806359207156458175460626276764400017049908994626948063825865557956932584870967220601523601246193886862062068757760318288898998305082002023446555028201589524219327376234591282967856318969881168620979530219702130402881382761102948159637600932451308844186535059221718340616437636432529707218087082472852641867737170779119717204191608759121970397189609513412003399068982643645119953103441671924029456686472799950126231939097671518167595509472279472623796957649084090200128274965975508991960476856256090282805470233330980869974065273728466466316135143105707978638606577145402039366694037950241687497798298074592596056270904149106942317202621761495664160481596705429050172924075662000179106474963088828475897183325553005174991889336560235040953093320364573221556511834280526985690422825378234989372954566166635929043477048869462140112763822241714321155249758327123696856288015705863737740659727031298373345816534468909597512334665691050347356828708359312380254475426904734060596112909683374622169604957985056378591556153270787809573241972806231231013030423861925713046174538458322257073313339263192520923270265647320064310747776411374043633998330183218356468867920699832201800179611848298285639803410384865269944647763568636108160037075010897052470198408504277548863440209393086842270731635513391793739288364040362362005215262139603310213113120496474105375337055735767087521584449960805307523633963247279103274578273488238887247103935868075948975152883694199048636595246880946140573429789480259933777649610122841005389713566066242356043603138717259750125308647908793545386334945517553680358704764172963958004017892617215553944655439359482690134572188890310180534275924518696835483991853054219796264614674565489223265254799869956823028270051042739919066366525565825877737894341484600343912768280179194486036416972208346722818150950397879392257561840820108084066274194208226723792394334942792787480589925856387683653788603496623464387008141766923782432980038089179430109565969414422572011988251489372105839703431328590800099272063796034158617272509357550273043804359502504874047813192812963431643840290461573865807725996276046970843560536826498166006140532301665095599203741303301617949478733354861863408575755308415655566021196253616327782281019653904474169704427489088815171694173071218211218505020490777449721365558786123702440336973838502908192309081834368283500678305271565597421679641659030115731565025720840419037114557348528681443077195545286427130817212925377980832747144763187541127918836496665366023513110518616983290745005741312676541167293108868312624603746067778627694275530543540217591265732030594797448276333660194229509052131279323380896454658193532502303151811286664470736996830390379020785487643525768307651417629778420269104815784925780151202218881576799619702165312178324099705215348581178603785539216901864128159332699533250455417878247195107697823291004547827124346984816306633334881716601141642031667730720964173753509610533548343215277887224403495754820285335328370040516434057287478382683264381690698659900659350148643226668930562168954228461438007903760696130804063818833737689165765071943052838383309086949269274219455103531377154169914190758757306256031324658615172327465004029463537204844427883568823102097034977891508810853234887926906450196429221301703689994973028114831411264168523816938828336332235843657961934845609232345842172680643131434633727294544731848580485171526148569409097766161438035419077208086901949545213464693138873977799921715180096012119234051936168154690153025351553856426818355034090206434629799825528943701674676239853124337070178531919526281026522803585425846699622892147981944114644147554768580003247802511556991817845231187162258875602430067411751938886707258527407989440780076993687990982841253978946604345231754756016944582305360132137452713823210304012246018573990214986774350787239238168251114149539433117583932551812386700658972176642974148435955240611267192851278172343352105269087522591255718158846847950755332460063868738900221067251300746954157213937198469938132387586823608676838773730765877055617599434112959909372884184993323923749006037705443282576551474797593417657825535070351022643326694249516925793281159029527795469121142083651486708705840332789057262768647224310243136958193714713326872155484564876304788741142546255402266370219539998413102611005962984381742485882259290946834989868984502661456667857980522374273713064409103536192527113172712113577204335557022600096081075749064178182355559433296377775939200920872457065239339660599274032232762782405965641360480615301257551221158083160922277783755532637382982739188222089821723581740726803717081728959433496921839496998439029507755714857186975611828048887670040945508909559065062630011027220784110267158397380693365330683714675555556294251600577677865850963639684011083292280065543669895030695474242806933306732688764740910468726973693020059683389680762139527370617274396425442870260948314145881143053034783739229424034830799219459022294737525383065397528236789636643310789249707435919928729677903879128930956348945810566338273124752201351587958693146943038203755654059510646783436523067044369542978756376711733478117556453609529180637136187166021447226647659928217304553873184662377589228128047889743835576482548182089009827249796461163468695092644197518919048746678898505313552186919586748225587919794453456687557053093051917486360482154631542683069249721803028993160390783729718808369157485737677281875914948494823105508767139725490538057311651238175459382736333911364183588203453360985092776887772388795250917501114595460509165494872018739960885050169447147497741842076698086369237967923378513202752267743319210641179875271537067345106934314720825848638069870710940844522350924898283570206119687266126770060674284831358507979152174506693030053089903242057931578500827618413166657812953268386909409687259061844743877849604490696048468319776719883353429293009035865952884471914320820751977210918161300511473649213097739520486534058371413613302048819285119926132126083128031405061914060891911518706256995912609412631756906046559484663932329025735011791342710182326543261940627748014107028159221029586578809868714339303823481495356841347939143909826815385561346602836058275216449447495155570014820237426644846967158726500041727008093284421634967455719755071776903558013429410122332052877069912570387892214484654421831853075448999784909590319915198677898396722827622734012246412693902842695872632052002750431379347377567978001178591775306108232465866664932284006098830214868812492412969819284915842022014468243230382163511196745220734041727204945307340604899040432789700062871396708443624157570947426165020740129646960467442303409453691525442966450278310811653330791091377280836684997620959839119915089792573955059604425238701753226823727789587693153757102762183266906837862537271356671315412770414305825223408032386414377799884741126960019881529894313458752377582467385205776093602642533880011094254620053971541819621758883565332272752167032119661726434790166343571004641502646312804337564664257703764678177118692768699866442386271264054537876678707144970720415983745307934809674757886282132890494007368652283741901819810569194381698661692902031074936244982033869073055601087442278594048280927653565594729656955868646718626457489391390064077076186560860365592738092496091920122894196237120583897584237438843565612712739313441448252145095205623857774193519417221659269040540089964700777478629612388953453163098576820363225726778228293773624109398900484116481780838796075296316773872364164316133168255175378076062295303347979956916207604059430434490313103256168237252411511536829334462489584905866087191120652038034424448673734363690600448163559434470114447205916429371691189048902413750710866539449264185711757564163148316094765574232046345377233942214305188712575469128145697419527591129620958920582147066026809241546095918052819022539336841343868700062465122010308232023784699570727435427927711816954461982153523304143306914990354718037457698243942746027355140290164133629846129812521401249506159572857628431505736019065772165697220141372750043590083544232170804510540407561189399612497175603129521764108112548761859338174482313471313380338185938935281995060892038691238381269068311432309392743998710330901807188538115557200775428592655291252432505385794809359989584475257416579809128603737523103522562806814334106919771731623535176130806020687122739658644642708135242316615274079880070977682893386099721242715133249936311432152234170482388404822699565693200870654193118879527355540685226624703848029729762887382909342587030359526296644882563799715185469183654639976809848346734112791524353643728546546950974663893200742476264180870682427864088919463194855212269057719848633072825236288792921004123876122634468191933457924723172883628649043085469938059276888199793145511234792652870411388080192648065899449307781832896493159085030354561340039386403822081511303091650207661625488902934021794536545796727169944094941341269232464180245733425630214512169524731660327577726234538818459841145103226589079671938721216616872109935948005436535266039538250447792167918437524536848089154494151617032074723596183959424014518914087115896021796819816103448624970877120230735709286914723136769952086023990605743717543992860063103645935136518287703905498069048088823321338160325632825827166862722881632758861326841243955145143380313861528680480270699771936780486435909355114649396610956346896992138851965286382173269065896416657982703075997126137530955136087766779247075978142786568766736537202657120123770201305496522989935717895056562530484422230188033693649389350005117007532948709070875240879683318019360122005517476645944998869990880344964826004201400906063672770987748982502042608170779725134521127977060582273647190659321444193828525351034463139343703742087475647501453091410365119531689140786866081779114139067019281468525177204358124097079841656358696133939355718774811913323451036055087843416980697850254093714921598914682388130259850463684976333036544447173667764301394069710393302486436018410632546379872317011650209233407829732770897949252454278281510175349664457186160874173018198996946488668131971820818566782493448248811906307356970359356618015372814729437799402210025767081396685617801577818066479080052216891534734414085608761373385537363189113844894799004896657605828792974800997299255988208633356558748066013901552259880242157993985770020020092867354790072512784693096209809992140406904146631621048825560269874068672235265506169362488400754631352251388472887443022882371071640670786179977602607724446308531297217536812034403127898953988746009071140337492887473076065802703571632528582459946876962222344872450892058567379281016945341084049065492381958601556697877075426517921335650792543161953095333400523759505052133787895831281672781675886068706513927606125605875779487478903724392219373975754641804848086350900581395513022630411250245630626458069605085364856991916071596146274734356663095785397173949317982862321955173538780824709545946509146839912401643599929322772791432710249616924784669128713535256029160379251246066598613234830493601910136217429293309122647702561689971909746822685276550083850570746221622231639932356725144722606112885435398839448759415004455193423961280422743074911717544867283594984851068986646432783190268616384117031972017177943539755265639632330616395932172846775418239289388793861995629288452456451817124652847364479558838429609142611555770076715696267698447275801315718343166755202003501411665937568467196786498179613544861660281043309174602611071056139142791635323552704274722331073531000128564727769048537136188776615642803443993141486231876017321886183376850455751210604757210311833611437524831843943119390581622207734693211604082499249611342887114812130408569927301249544946262945235044543629265165536736141722327829077713231577777814421928812020141611355648159492494906894266356875073275758538547604990640523147502656936485957023439389938514185956523874546906388817635937121030677826885945885934585009884607285180973791460724983797592217186511053002533452557782190632724400235122396578619307347587911797878011781578030329493487050892922445197720253438643297853355787074802493668891087360805931612299053549244145364342796099369741310464605980882486223575485311857174003451980077190050591327058603088355821052855560894200351358879300019127238968045972496188739727593879503225935777405517169723610551463653510242707337633413135317776694337335950420309260875159527903826405557117171421145841323922906148810692895366297702583522048012584932495285514729561747456491457517603127317408865199221557899035839418145176523734760128837972596211139788358990585687427227344005105469052660275964776598568413224013508408430155361492970716047857812736566025027189401650724440738582317652822942318200047649152372096488148831022703718047631560518042540740213390825784100390160287756310474233153944756466793734119744696559184743699698208827164777227479487817946660406960777346205390339764828123458715822221413765652084937391034048494763180958582206195055003626972376414639160335051928697745128008860987376679923037219247388277636331042525504339878263166747886777149952117237799418467128140249890161809331914329413800902635864536249166635963816684847250485791531884804191929122854004423949489129436093977192875230611240367529766924908998948659214496129930951587050202690105513697369366961889051096633973134157741441030272477779798205150060691651634870842746900858181233028413595796436148005300914872225099946698959736508240046908337710286974931851093262743165453612473636922127692777117149954078459124631380156064494446296494880482929450929898617299379997098988005128516748848222118331999277771038719796262716530040964488413921716122915987139305789029285901874110440241069431921240293696214593533038358678535740185198541017350378062414731128552852881765973192385187640894601029779539136161728570245122403803920474563878116319140668201875707666617793362570099220200829366411242323979733767609730943878777526974869242870606974578963671983826490213781266096472205999560028888662355627246318354203110628234792408050622822421047814511551899424758728434850783905422246646093697111748420908797109872319557572759818216718113617856714844191827267325821744653957963596759069990005733258194562876261020048674706930195176847441045745228868360387531804726800956259165278264515111887606029183923504772518120394533313955718203037793276755034161346035673649241269892390316265185906910961343566725342106514686177472597802040220720027952225844974743955024797280262469906494346202447663436014484100970757316784625464377820060386626638907151872829312097474002922523026192065760137656813684737812455567657167182894067170779685686165339390204570069654651702333265919584608786187859528401252268530134978042886677770683329313864251640728975229203848387905645522244337394975137240592106968459398611131688987163218737466028133616708299193725199288770979730958269493463500517151417622805533551782945102654234309681997745130636570255433898441662281310343431245224898254763321814447463403325626885753969131980412628689266643778781011534798995470357199189509315803132159858124818414717357018621105550421968220111010711304889986909154785216412962012004716422826975832512132763602432610879502001038065747398914944605655621344957397040260438061945809404178205942733645192648096972898417595307940835034690422002807728607183331875531898102511993819714272290197992754240690117857007279940204873330068974748868244343029081730096004291198141329681022409317611982575934359272524996030852854734105215527402559801101580092216896759635043907419083475234679286174530974919649148923101166083231811909502023515556976356015140340121037648643173523688118372296091160533930469186129413035793371390210887148626386079574939331375540395074767077306796625363969290173386853438558224391365690483109485649503595454480899127567842301976352695089771656529037776366726234287636837512759176644790805394553327540605457843849186213029119444066135441169405621711295663229105123895705786417488161593855427336015450766778445364406057684000434685062924414119518272071414711488694324751313539917100911840368794656432245273455674262355808117549891681472773220202146159489939508505881643838708646555858568116491401774597593953810976052539210803391383346720936222484697336204833109832211088399831999917841064392482281787035312119433690491900643025454770339527167530578948366983784833364073306997844003014680203920593214222079759507919887074971347436567825695132496425701076321829192746589710678657620451345020051278325576977421363509708063053045569406013835947602364612047737190915499952819341542655758895631569194359587931019409845166400940642485014827585377058715141604845529883063086808350462769556871127818785414081358205233585000767670451698504221522045741999704033137043283259055301655310754777598985832954927716022179844303242520612343519155183871310324443354918502291850861503909526108765475843567646654634309312040825461679425900389792929050965837699186817552388603051720622109991608046346969976191431519658598853081682173588122687456395926793653828397367620023531220669627247243480387030939688601688432791822701763341934964659134660734069357528399646347623721038699007825194600698607423453536791117942648747831903582993835982202665256933158058910733035207154588871203554110577167824809793219882830000337564242692871000290711000950472831032962502063733143442591300864591801048229317515811505906509285642260496309455522446809709133852821488447865284683963161596863496661994511744831002105184161508892622620999748420241879207754304407836355387755224588713456613102623187209417870024806153378036070847122197332435031765353807434102587216273934312279878542549296992303229693771603169294283205301157589754000185437988382340883564090055546937286924878835812685713090621466072782849882545876098261354824741633291291014987165224284496213448962137160933041557689578630074554285120586225936531648835473215440444821129353063067527579212268672908416908515237128299709346774770070415117138428681254388259060282207864376393735069172789050007347379633013056674955484381011992263981316381247435721065713681133746039657535566687824762948233173621074499456924705608399043137496367878275545621830379908851710342690966685897509035650163696252356343949525691545520314621640973427239474931049634110167210039337879365822968234244128507061407972396365263266467004049862155694969305441383091732711725740723117023901284376240721659855329432616597001253499182129163064822577582444914821668248737769855341122640184016547517044371958902197970299106142926161682655334462610507045023262627345387628379630462256541114777750695097248552651350968583389045668910271824988048284946697820269289163017656036003049644992752492470018410036518986930594772749248277745132456822064420243653221303042672821833661323582088997779115394397861836091609982822364619678506446653575666645601034578499359682200914993102361112439509087304300483788302107807413232409126970379808427696349532980302347733098495132831781129117375618499123844375171767007988814937463510391747160203886257470558562420906221814780101064893472146343576681985473235357351691912286780716787796820001273756484687636276251166043327420469583220742429295601212763175674085973529690922212603675631961169335271498356536081520095054341519088323981985399121970185204386457105652127771489278473315719648417630068346055403862552362246754306792655913068533086689984263846764239202561708985938610067790318131749690764513779488191962356325399496809333274411314197451489991462773936113337894082191158552136620471298872580885268036449536063046758283162878123440793015917486459725089229942218080882150156084296078292744387001245420782924513126927351645456322371061998385953060114928049468926020355759184621550980621915700185833829657857797883538741350203645953091407534529511317502191007948295700280479146406005713638112145060097511960692137742146102447969585020184489570030079896592390721144328437611186452979916687606547514163406790605604376593331080548350095836321278221451885116222743922275942689303234762930403239186607604785361755222495148925735355826462345762524597332343330943103328755069793967581341982856584822980892140754075702609903885289901806157603956173484624974019088787020311596910937442455442874403505156542241529395318806264004033103042024017276073395267428065548155781945030669353893481444315928807630111561280579034743557987457802342928698129122228457230891589328435882732231154974029696036751552984259814017517856830981135373285437696778026443225287288312897431799948244984089851222230953428856541295447766965882529894589077689589203516623577146476637954009575280092107341806354437180363632742598265638041451559630354163947110459006506561583928802724618614165594924892983870148408388636348631536911749404414980044335562821007161269936353727935076692986792201313122039495671270203738695259731503596100785708770550829800606535894108635542674322695192377479283404526254332360463569855104089813005054093362149295647582369567780222432411789437579745318193110118789026897676014048053273616110068101374529611029608946388522084910933936696624969960142290696401007141821458075462404540097003092975446777724638798217689311855569556643113103180308725920471740006636227665479135633217300938232583166985113655886149577320324536165566224415038583015128876494180185210612014200285540018485354392990860929988175939383907076393024282865620692503449386024069883833917731788019572778989526921820896572654990803936514818983539079680582151474626692886752206118140376480616208774778545729744346885032267421360364891516419438842901379556246077249236295326075816166653951110929886405973100386094181444525553154062529875066104216359354209448321148335789776141978948932033734599826774929129702383355389391035018257943138040751564882581898617294877052159323382895148691302667918061670997811507493761255323246492785545204100063486199536864670997734788858480439014904078058692658181785072198382307081827202839175027517098145000612313130780099085886965814549236298580781007761837569941456448253529891942432894261883816006210498176002789304270982585149840458193857915406658099073714611305069117079370524218592864971267937273751848529086727718440056553504401828534840799750472826418115361950294773011793718992740940416508835658582254383486093768503029964751629816258015586983765867092673370356174738547688204048775988371744251502699876065414777930461002039579192245859470045667662946455770562574880912077435481727289780432917094949713710028521354908848099394203375389520976472561190671580552845925765675851801573126344441840887627762584275643596041418554681582485776580045398128739698444438541310664894398106615835017993107534109217664656902303117033528427611055325768016957090488829516221383721741837721345951706672409907344827108585269380890611441948203927876387763533453054909005469353789336416550226604782625933672330910903825839646257751973633569815259536363106441034894561593199780492030174252212882478508929603472644999750644011928548051685357933979156269345646743755946586960541830981924631455532027362885675490338767046545214974917373050879326113732563329682771170246441259525600246462946133801479548260275362858653384120326698332266274105550613679964130380325099797591872677061253366308411239414858260878642802168094757248824620516533774440452005591934814338401870694247789741648488640447534109774311880389624987723380107852182309988631925441455015864308824146785198743086468239813713886880944863100897052636648834292494728939692802852770479594602170809316413624712067037088704760419818075180908208212666860829254657191778765636802400010146120905293212554888686617766564607815603605255395429743975811532499507508605723841060954832124706053195912297462216105135604707272754114605876802328097220120401683262192447587841062058650802629430872097304139142912226920774499897047523763068985453025495589235935962783191585572394939138460891550191244558927805296660949202210112838619866291507054373221195146150144816899242676658040592462520839925591338337314217987903336262332147177821665065263395029135557093503940143189188028250964532283196419972329523319383227035760374317383622130305214342930609309640967119342979909467801158820550821122405848747742163054070852264095708942890512704811308577787271630096957712706979821949901929691081771739156124808348731948619169055010952851651304618523524610675029957197882724449562951346274741223707855407381358495227681410146704370461502451785752239918242855970835709695189386218966870195381215363936091715245324268577985710657180834602516022525057532265675244620644259306865582531652584827740710649292046256674148948323723049459267943900452764793826159412926677018091321121811544473493119248060760958311914978894655927840584330913499772043109576523069427357993383214572715214281408903591875326771635825958868341877312834354738035958530435125812260260790012790912433764064996460640724331877495999513763475123487961485128413816431060592899572182918521022274423572665715816149267006209395743854113516313154405324947373448743028345149147877942731814171047039981843618597238015727116228971259169539714600724533029423370153515978312620952252273233666243805928404346900820024926608278780900590959414068527129511832605539130283984393820513911549940806896928163268434288106209408266119297298737548024261544030694411583961052518153635257178107796028720251981607394527394609407551863407765236794164159911467055126349143204330521746457514063112933051841358602589683977076405895717145811552202078949860774451640718764714701588531530408955039879136764196268325870154186557174289562353159831056349386140824496224102566851366206149359951188255330802201004909610273360599786625844248413038886684208154447021816566079171883572451346004897656660936084222722539363297574821149755924704310337689128628163938725473636243358858318412933608394331353564487057475760434936443839829146761314078950790088967752218643015388785041123786440185741589244518161329573686094812808953017484194226515190143837318044377543219444171332047885297774706429840595468260998829412374143057261060563333415401236062019763826849606961295301821449528799877782784301352706103896674251268274055118184357047302688549447649829299246972178842912785016545097299342850838731722206299755119656701472215158152530877138137329913784391409722174940716335691612983654141763880825778404065114990038049411729640547074602485183804983719741190194602378486065731332828067859109783962656746512509101489552877767222757912051037631198008625707420233891593354099548151135054476117253194439909693374506714048129165062803064673400767201823703224321982590978481293043100130307187671583056257715342885086522491502836193061804120828161987820883710985611807821961015254092791310760262622865438035033584510953876149841803099150393608293695513593011571200506823867313445112594718140802375587312013705986446698028954603884326772791875627781008166015530170292427408441979902698154568918516505676209721619156164586297433537253475886113420618857558566125264760551314974932810254259531321751389345931754203044841676367342457014644363957440474296202223952543300596228848510037356233245191435373685075868109997256860643290164964096263909914130469547602374761443561340447698972990294667288098378265490111478936011381290591510457679927617874334716718322170925942903418415198400445194094160359723615966453213237887920397750436836585383440643062731787154647082786309559570676155139413602305359503515316189907393405948557451175447604963782526420429748584873923427480942157936729141593266556633221728278902651396729399844019603754217852610024317571986448612245346493330947241869627223880667144350177074813566851614769118282697467025737646040478495608599651033225070832973178504277259589517203652995516337124085458773979742451442629065019749253747431915040062859170693060385083858702116093298356684603592853819133323877302025482860783430505906873465409553226191108646003138670208952722381602064203634992444510272992712514788562211329190499732930142551600552687319123894215805462099799868665072895650991255343702082583296068457236578138876441520626775581234134974116665060699704728110244933903795247272161779585524769042284913731770333267969397936247026134356351349639219599111446511123072246544493155689207591415992633154511474968197495954149520347944552489458342561404496046002261244034367850245282123049734541995303061721113392042591361089759896937427557000938906295621132605019632433412106425900154635168280346148257356448093362993074731854679638875426758694739557128991181636908989059172337865986460182432146387730467464382533916155011825631022436007850257862788643127112882718395489134959145087808703288218906078984054988197522341831663895743136679268980979268593864633871880570690299221885815044371354512681844006681747106882383764732343325716934183661872000485464978761560034109565679647506201487587378534386425650031643220946206986929503016050846825890613080541361118990122307695656857325139187090151779119960803095647194384435067073268129055465712382092222862104396841930225405363709843421746730236792111066654888653498968885829348853731762196378282472534022994144546492711625827533809957392963886476213665317811132889441890605942211376275760921537896227619684585615488202789011665391232458468049377732584258753634413470461034741715330469869198924285432550672610071610363545313805544999345737232491633840796527785397140950211326256070016239475324837998676547622697588886740159418223947168573151356871446044208149414281275013870388998196031353989745499450879014312846353097003070458248970248994818298434311193811058210655276418258082566142876512363864173968309913877849765750242543646994297786264457728893994593626603986281462283601009291686468641218594335487126660323443412829716293549070612111684549603807228466250419260828631678722530021426984001968340697305889034006764700740273812523148368586691547540335966810287938216672347525518139943294241850246351853423113462135337405994417772025299543985660555525833362790288994013554388169579256512210508325673814677209653866323401537780951957153658751756268276429811734113004775766576487683261723676411285416857674088093746908311390051756602595226171321917554721039510026625394869214947979913279704252504424215777666846687263558698522149512348451544835065121448102285053724960694852996143006545209796309446608907529561880667692106148257083882471687949665138515466588416593666141776911288344573096939709237198130364954038033720779213761516409688420539591871816360060679440234502053398176209446389914450786756739336873090575676935471388767611257858900922223291364464564873817395981070664846611909505561539972759801582775590239856114249253592855269225532718395743342034032741078498580869712234333772276601169549158605913184144426646553870429599126406324857139872006676742456266856691209402156503808093323670029377364657935195436118479028399331285264371819170979513672878064472786706062625831454642323816916164999053197020852532077268021692599719666122962658729809304461707464838839289716949857771873734624827590449944516444905807010950644085741348777668826570649460994277444338213972465092323727557298650398165830691348662838797885161572074999013746728727322718587880565210652323540980595683987855429891619467664816963501270469489612271184185896313282729076350740161194693965271653456952935895599808965662098797621490309060551659083489619400322592452361786732316208807024190851765562222281279750162310850108250506765527386144332191875388360661028278591476585684911883889219081324768797571427678665467302844517614005161703344755975426812505263916211973176458744700850847586117526782367854655020702083773766394905907247736011246460064198990088803185044975752670569148260125327091148587892237202919481666892393192670316371276642290016026273740538186660433224344801744162733101671068210684795579767163677049178503183028877631830279829170470845442428979965117225691374666982119547718756042794849333187625216638065441350523888776781297172631599917427113653062798476665579531916973272857203102553173728892456028744654708527019402707212964479126522716477127802035630001509671241810683705983622172204026579650682829758798655730710256252420348140760544495288538386030105152592927804772879589126701379639438633546585579818580553635520132008115876322050238581335344920358295339891272465693671117197637075696768172479803993619727585346240783587537423815029056964206102348226005647691452614650000752060938986797885091654327857071332956572985738286267005327403269766920604793046049467329636709456712359681859662891560412271970161734821222361055660755015657200366361799789985096366897172355544343504972888297066180880693757057032470440110916790330280569564360037463690918435209786218573790338996282938485040189429475765191671671757953556164527411106460226107194377895268024816478306940864173294092001801898972649663505562263656158811103173113046696980262845231909766895925521213273850566459804113468502893575802249488224961132867991264121330085504467315838486357899071073584737220022642871140696666660924882709407979395623476249513294740598236890387825500546418854449470143548922015541282930184580530896571255114088302049491312554951765297952156370478680306706285156042517620122764475613217197032366784212335647995007593792366022011488926971385999575780412110837741927050340717814400809784379074039779441319251014211546461498462794969174779503057856184966462094987412130839098380679266295911755478506426819155549155040108690035621892358750068205903482011823763698728354835925751048960039071483899314681292490723867981554917261580033045593903703337563229664435437099239060630025513394989919600997001952170014698102415061765046038146900365399534217368002996344137889810033562672680354702228000338013465975849290406665063903953168561845180827819251357735897952690034764995799366713091964602205605565441320722678741715448743792446348799613663021420022425438275168935717490703939052448402441031134480304230799119974540110294534429728870252371045702809446855450188494732746844786494955685852892065083250001178019010727462937830463157666187838119605328646911461925572652926547555262118438916796945429302657511771535700008800430543603252104713243438782185190180778572869601550957780813894149895548313490608309548607688566227184873050950203954810564351522734281008114545402199742494278086722027956497033495375553858430305962878530829896567588495414118646254699908589088842131025316664151945198538822604800859531779904928397569319424732802357126824280165994230075362513240611686974821894104907999013040012502862554127422725192580925952105455708062683686024775046524414648869134158792525439350208059714118892098964054578356554868779082110190440007048279426292210695903436594821967095250813889268773892311184908477179751045572281845883571065935592631983809901148754694625007496836963376272197871474837620572361242029972964471972590922867781249149375947089511153154645095548099416834960619593930121112163182845037549962817442863015628256820167648701166635704614539397036902481292284471403068481927684149166986169084123943835477870375073527877411272753592086899124096559404637799248215507648686064695486642275928034327621368248332466623597069340174576217487768109747925768415802474017162657736681991173794479054463137726253316812700857366753496911669067731631608068068764881906867368587875863114913885288298345334925075871687483848599584746396537618246945826025900435517407268795859812622535520632241800662194245964250748321620759472278695641138298808200535386055493031991288381733419155939956910534586500132844946073770882040771883346965634843910414566283480662141838263638482820320156970542405896978449899916914940724345570834258109101401834155373874443044760710783587780272172618428601563153101536132363160351317899506252611713972470735637189925636694141683876611769140162938814318164779991370708959989837600815422515373653288773995158070282431021114965571690325994905168858038548457087949778204784241639942229732919996688950640655312657244706959354692278672632898729567459104935559799552331041543546062337283095247442081450435944972887203369708616565435565764198023374265506102610543436464509955531683142086485248023962634074733511309037139339010581034298081967964715570960731426685924314175417365464047939577462200330559642074492739716512249381817535889374992996725716303661766183856545829880960581261823592861077370745868185877477227230538526361168226036943712086107116486031607779963833673586041879687230414975672762190216947576688773832320469109916920479167939091938069592944465066424679611503720532792146611572694700457830913232252806796080045161087592797326598984434558663293679870157701872154689386681650597942742352482599987202826591603234683069601422820166017714400643716130166218206058415254921817965351977750380599252692111524718782254894832604699073755273642094234992647833819703736428086972460315598957427244207241452068880660349115604932545951593381921935801658019635903339054314140661039856469463672020967272567774292037821933705696298361371738596212102850445384495587382704611178322675427632039762824266232799416274569370232734697208169555953446018867282513340100150973106185019672898259952834236547492356859644948012609359174907788512329118262779864725091815762327575052771140216935496093929155346032360220037242891574076025725420536174854663202944934760672847803919399629995598183386000563333895972025756876402478814529996908804860592631496234590066825058058514473325805641273888845908433410082231451033914322916646093471222522353335717589490498388683309741564429393015554265732912787636464972783373038696480061349101992169999165395997723568767980629649251663720901519792505456244893769435264454665277998947921855264554432148044748121465436046290925803154604931450283570362273317839825651034909129359568387481800779372047374963994116554533383388065836172158620000071374344738240528446892315831338457548712051024502960207340180935245625082120380207438207095001069731055897517185673649812173397736827617881793628333653365687481607515652948884734059627208784661610887338557728897296759731530857820225258334660394410378888207437995529526041211209045003944318513125705304446454701246845742326329533255918779369042611463458963449022635459608478695593086260201683603106411828538482997695834984294952813930208679102089943375202792643955021298290831339821034359661380823562400352623053045982899973818756186331096056584430211631804204623466769730358463807241932061655466996512489785490190207266361453653533322082319620473691663246186506587477478847344205413458635714163352801141599950930902334632860118480310195165683502574667088305332685114561481305567404419651988501360875092955011932063914543734126036401763761041752902503058086455160281425903378758011709905985600500245168745414487117566946584171116555206083002375749511344243447287637222824861275595468155083146663325917128852265180384083529928626532037044779971888743193819614236496988754133168245450105055522180533333632481386700819386774189414002094791007051028420303321977493138419286158984155798840670682742814814857035792432463287601590997035982831888866075810677689116511848325955074327496571394482856849826002873597984742808037266278583639060735353862083829289794489274845942103014134763023225218221910208214080460011813774856588021552133850562747412349240959868983046765448494625163580420899612592082365194033554071089958063780700277405011611677658387433583407304734391399869251728885780603355677561880312824641222741317620721331419328954780258623811221876389953614824453780767699467134317340042822049245654102475097780678858975656083348575338790722612152399356055734866580708156742546257584455932188548528063500769535652965482665320045688480414138697907599309925128794160406859645970532754448203630795306806651878091737462158262657120443656275994501212642818996007982816811426432126860135446086867921271774957276989544224775381514127707768107718618875101485719826767556407393769725864482892684198022406134173833986163082981180393815771172307379694721767707167661346581094047098648236296592997606971113624731093837745530675211351452717371151798647144159788078112549567568550260301536659708259480473261417837566088260004493713797245052286970329517079198131794914689565801661040631200671485967056155976086091570789039029967592605556549614881724048646389836817653873723642947548604866433955431809596266093284822990587437855841350166034495675573823310555795241951127286935911461973848316555669514028061291377034949647451785305971124400296487276767079048617260286863503573819718729924432289364124900486119802033576371876897404500813583668457467764853115368998496595466168117551045341221073977250236558106744370981843604130282323698019341052483026500590898856117844991134328033959510367080458166597617763435668891052485438263302117778433791097781295119172634698594513156187914137030061629171118011983543857172877696512904836324481919525940853855733253252373645387930231114023491110665105210687510843097565776892384230780632561551160876278152831694940939830277808305830800948711024334623694761884909668592842448070179764480664868234480348524006307988191424350634428020189727645572050621892224667479695304200114681577136005712218857871875850079144636655592370142080814672354148590455687828804949503695321939963782751949580117887378095717835688645553129720486107605708983273221545972544084950912989689120722228211311154440844180528986518915616123361486200880894691310273436506803575345487397666952228244381515249488041684505558720671532098815443465033242854058917349001784204925596992403866826368182669997761212733602296470106079420044137044671658368906934105970329890201192159159942479889001629717336966336283646839238196598050957738612172655854830189186710671869151675883701311081508508115945594617769666540060329978926315288851439672354187737559675008591290008023293507309298683627152869575742184410367741971356601188137725059368141037955540571800200646798121763838983611810982134833497412232518338014205013818752346706517668210603559135091678832534720481005729698074517342621025116437574292059851298285462343578739331383224429350418603405842485932182234771119192616019885852176342101608427930249127392528207543670640718827030410420238484403759141757731575898313626123224047488503764984325386499548330267513981865581901049980311393601686475666877182377823170597843131995079438920267289287963385920378772228488657473195331321339626786868074240640735920776890964662364390105157265872998006848791893444859359810715270578013463219063169291967337342597245261004032842946172799970220784174722529195643484048961803412206748721699972677103213983041241440931754336838649943181036529583082366305396920881247672281797717079107007497557210205159844795363607525776449500054229721532182484119129518661042158566205013307421678285123502347055358519954362886846992177082103588075346081973549054404730791608195761401037630188264109125864077171892817162222291873999056595719824640761665771817548238016943686083341796000449985231388018066358460061549383943805731762471048073162441691724950677061620010715237955076910949727350062949866491267190235576275162020346025843509341223999640981368903804907465741634452058083666266833536259560744474383037857636679262520241643221709983357371081292043297192177304893302776648625425151299236304660021254215810953639901402847178426621711931568421598324461276841299732383037646085139320498386668712867503502545962849170503023410639862989723766750973734046304917703185376246993231081083471403387222073716700187748969855437144693039212944721599389783668175062038990973385730937650400514545561397796063525626933198126076080836111392764560556884761660838783702316740896493673899645570990962757519402588266535653472836260262015127055086486600381415343860184700248630066845750177511971085342083345857908240279256756454980426073684928395812767192743546155647331785342058122009920842061390260840165167440633353653341072499505692432060946937873265265064114867962594493542598828161840204882096833512168324551707286034938669745283138534218055254206054147945029303725610495904047989607897907699476136797444559516520321392084965512626624355156637157161917564587669382538502422955187790218735428790179389464405307660685228409231123453828876137369916785184362810068127949500089400859061569106942152020128656238496871299886429471303589869810106764268778556338151400873354959449752942467448709898649577834418743664504731465028707932172797436153929798152806730211210281674397292141946961165039040464302466001451147224496283711124426045417741065101053227295340743752617554190387981770823897195051799354702542207786750903489790977522802270460207641830938942169564293963481351362754327845624308669063405517737168706194008490752583009462839061389481995440950833289637189490839836561072507947790883290368183566863709581040927669381282669794000916959215254608263231631120888315067338680493820082419617135229948850370877276240479619833796616875720027614227782381463428142529199438353487295970626607386764794887358440035677644472099936618833622415221815123517842487785476725870353702489745563774198873558702494442304937203324492946075449098129709157133174109711572638918837836031891620985700916028162793553959277712333397274908044745111244771816301045015496722055871763739446054856788666844290243612367898276785546753865180581350789884393366139401069839703485947745009917138592724448747455615026424619962711972035254332781333958604758290721815778159027581458384732718249110635029067558436501985053821122854250737495362397712947293914127810817508572447163889487051467614895715243228351373635974534039361697923444984469618107128537190848393461993245989234187504673640499402057295168114784810730394872849653466081715461588584647844475025928391435077049625498156329375798948076862389057403525142307314655343689637526464643640970727097633895977957349348748500303834275528778807427781492645750354770707328700383460780122441726676191159610495510824128306526920106638153348000349533331626999189099385762514035150943247451327583718269912534828322662544210993722156556076670665725323465249657942537521533049384639307590214490553971688625280143909079852402090501764159824865503741153741160274034077617198821986647886423063458807123865950163057855765601724009915576310207277851711985845568812727920447649166714654336613289777788729804615477098962945635321477422955969094247073084632005647580754287601700567084330015099431651901854271582544470811406677850012878809327842293467265611329540543293481620822782647868951753927107515977319166202958385116477698250873258230181164918912792607900283455516479747200884078224142158187469470607759897034854580189638111196341369867270998611473360463264547796315794816097720837596014321521763069790384019726743363217350886569054635211116914593184156859996241671398556842863289826085698983569799087755836366855260070135713667722627193596684660786560592020839308168052264726193292756183107107108360358498259733624614427062400437440452338568416781836591949393350093358601156035242823760070683353841152262201715183153585536056378781661555438275952028811453237436338800325840867352397996833068550985549337727786970061276512111062242255705799849321599110903018398254499359825938712833211766707039106799600582874818980795409435836793395328359557775915815643605908366566012691733823310835641816445611123817423922918037563726732391469569358750141341076380453196112900309008946900308945469652922851594472490430573046118288472419628684686584168190493604306564873712002316568098715949799021239010143324911946141908151459454836890960490911731848930068155653968106233306731215647853116336944406118701632112297352807277998371524204772980102764318057905095307390820111380870115570587756863470668973912318547896353513477049576997922636332696475344254840962803894673913416022209050674383162683556215036708940568650811177028531030625595610646263301954856322591764515522388667688120906580870215522338126219422521589343410830692103146776463965393619353354247373406597751055169390667907058615106457726594266085472508055878593265819389260257567019306663708780200163227557103848645187510391972508582004850671199143416934555523142887688515614322055685337171307489270574658109632554815974257476228881250826306632703691002788254613209139382630824632016197686181592747924504672942291736498914095232482982828381055430954268003098408439422464459943614554525537635489192493630057094762028594407573387456070013988214019185692350165178676441759329468851515129127956862903985384391738254604238627913739015835299133581804688867971626347946120303475128982254455484024946598795061209078116000633761355777802762634592602742092742316578233855122637867349561764565297809004619525320428094974013886379080630217658111095689175838666311540587190107442172882055333099894246066744470235683535250301405362302106087480335192757724011032427502568348720954552896440320146088819308302380032903426916973567860013107412365932313342439487938521299431530599308082559850544262811460533394351432941735251084363578415129272177337436547586346846690492388951312802379302378691953381080842738768073486104258002895219623562824940166073582478715568337707635835660488359631081933585740657881915202823309976348520179735101172605985849298080501964077487109486286185310985790970627149782772191853334643353275735635361966221634834058618602730349302702648607308640517918974695634907572665243168627529874132389469285095362513157656649973153791020333747037772764008076248778671881714153021343917347000205650877129554067612261581041338679934557686082777759693743095489569574999133431286946318820737587828583134619851617422514939295507286818557731074006722284526259573931988355147874788475588965295889658456572958630811664920331472301067411980910529130626515712598173155255878115324029589357170324604065185595203614773918217979798884919975209796996379766715284409024861757594656009924719417981335769791782911816455246795547711303387289607816980955350380657010504182476357143524118657589341363001650873640547955391978146140602296778121104957949173501722802961948949290013506361618262412194223028875621531164595020136506086489667646533566402730392682486719776746081479249037533170030160943558163605803618130366590694161038082811109839024543114787637677685243753347188727031328460193679505426565871424087011152179790916681206163304789736544096822273970566020940959021810642814807693984813655559893237106422648667732984028657463208161142070140282450790409529076777203243628657710398849882004383858860240346158674157489765562057123437347535743655276413104435327714827512589657447148508345063330634808306936926342421343332093256929205047229491695608527893202193038412874507174675761809855389322709774765761723151934501652280731392114707272969140491536595160702774097737693375044970573557900494768244457273908312933843556544513833682569518488056897592303995492313344090264213809043393597009842664469834532363427000966216828173034784208271953820320611612111411680758840572419730943150402869700260204958732050416438700986306736666335197609926329353196560046438881165257088190443247269392418717952600758151290129210331371739524570476588962162906695434534905915583334245432977546348211682826101408667542439828329489176062828060716539572688266325658574342857186894431640441714819333099691783441999608818001840978672171095531283034657681781059041791728522582601735115154129530198592705670060132246079556405430411504370281926152462866357015989412264251558957408904724069607178094734424681525952949090520782802540780426638933456569879867159995533389013028425551628286551236382300380919369488410019528144068425356415482432988702061266407387018938224986359265061946918032124844827395235600157561458716432606000767364529147325114683959811731974175411756616406650587043381973268540928685365829952922286700764663058064608863816920446653403757677294750050598511707230605307648407311766681184786936831721032461888533423321666462930567664797650498090888841361437408534099840646835623399742615030044315763656823047587572169984117203288509580229944682542542879216008543747450223613760837365829651888351949670764006099707316871338135087219427196306083390339688027551920855250064940699598769254880446952389534549275082983851376240586505819047537144791257872903386152117526885245556518268775179502411121295063195691328435273159607532361418535673135361235719838692605048510175246696182163700751454028733731861387673495713764148837802656593179294922518776009855465208549140272138116182129455419420243811680073974208894937346966816082589231482742443628159657797055502992706387076410402058341002243199350121013563666779744254316016351289753288136502009711926634224563005239290511284937651513701726066928937121972342923047240254462305065251326636125386887203836658706593021031904142369138819206790247229465634232329674714241966275092686473731365005440627469626127339550571180329631460810915239101373302297073552051328178592094680337975919121870443936627451232094486660492316324369354375169245508605952657751544510950820755414652407016062020860222662979665271934239778514272041633132966666077813466943510531467010128682336341442388877441352846819209140420228575260353986683146098149926980164318830698752195498222200805899955914218384906698310536555775820599055454143723541939577615270895405905167542700100850227352831724495795116795949715943411383156388390569580926662434585328606031365168247527712233481745789881663967800392617036509435710766310023928462936942743770612748396927869368659781453799684347708508284471663212832383708852760016608407212567243992384221938939617812914797379631686375751124581442276999844266202428690203446118498470531095723061494802365977486626938599499559585559634616577355965951320943287883123925577926125511509030799404644981360700746177146978113540375225763098262835443740333695861150021375100119265585214004101649293181730871674923098456456787016330289892726821647473739939909731434243716786442300019169657331174516292904380487586864464413793930579355282066691246521087803098764354084604105647485945521609944989944815146782533973123850203319332789025750091054886724373483203997144343485975872046795146154233528435585491598164616125808100153856741734478205133394518255907684686305803594026514665353651402983704584992161622379519230524449993881903651790898211866446162532594713083834889271218372183331549799242017379013152393210124341194992467506194365075692551906272291529669886310408410252047252572020846903475813465170446626227142908569191818358394611602925579531939819012797455281512265208133649268400110396512395030936718654913413392498379035141199391406689058870898231430425483501414827165762451769610592165903660910773186656283083933291813988483038960097059940982303053020962724414061970624976448906774022075818168354388239500607056720958680709648112299267704454014502418615377368709760705387455513599314680027982184503951888716382139296461838664801971206881166145754156527255489728792410941290044161867090285211109657471881984473247738004839698827770402329254670530847800285135187745739320491394965660658621806373520746214741886159259287418790778344603509607172720518055980199601613567790210542884183891926654693285565178224612788645531360483118269735080560956632917918016580039373759632572257885751907022561798295097372434778207095208080248168139575541738622112807382291220380440521015845422443260393200157604353628763224438732938800369301322903100706100000286596258515628128906104645078213599602383910751778680664429583371315923946932294538930220426136797606897647922660418501549505048600113433178101517038257793388736997095135517726383183388802540817479437415113943460689053858708069187850289862311573240459292055319580755395848895631730152061891281032091964475715567599160444968018031749685044658821064195005306649988233532857148929155359887862128761716882974337940549991210052809914841032969672879209697130471017681317277524411548205090720135030682990291931395235566875832761282515821799959491879546657129075566536232565030136327182138415098074735553989053122724895958210522576749474389594690924041607587927788166543799963442009629551764210166709714165282221523762969365563147665548179971724256151582993701983384445477896312032256686358733307628901392007773522680238308466111302704846551069021396953785318566253084958984664548940079663244015141805790886138744304282479907893167234872848860236846284311271805350712696099799284075469041122657889597603481586932508356813923451620390400237049866469686652688180585343746118295856507554250127406718744409687333586310204343784829934293441351339801581842935190584376009083605097260216942546340483240390400374560797656985989377223185325623458367409458145433396175712715669698887761001720757647697384859684687925759149953323111628488271082028304343552279172419730365893350905834072511967237637600591221439445814740395034217675047693368984926689251927619001771165705483364836266652855347843119887779683962209540311564941238269636616229857763714450814089507037021418997502761861430884299998009003292849554201572773803085073020501588344321209553417248127412638573575367397916117042715749805332638465258780161412047901775928612550691820656484782817667240207337207627892514033023043112666748342845284857587007766792033873920271390439439391492124766214370948861454196748274694932897423798330335630870026271311475381365472731391504660019755653909237207021377029270564315376170901421501091584720801763237767077646046071610736869171400995264787104543419742272199050773590669939232743637137618061399800232903167310117791622662666925102616792738711595240266063761345761667425138490775168951626427536072730560086778596762992298984604915951677287575931981925690754287729556656650793776009625449038485100310970006155179103672446812610308911975853276028991181015559567505865317126007151267276816195731687852069072117426373467028684421815236844568138035649825295497445534906490701913748961550921785152790584099390592918414298534558430730340683215947524178934173310866099546901955980680877287343873246570242480627102815509884714328420699550373841345137492248778108458300288857898230380609462750925263186250338971661506507030144876872457501599964956669914193968428898250133322468641284971883514489641618025017713728778721247760963456737237842710887095728963145531808198193042505084066068314784917429344344312788811768714564624316673986297732412792727593151500194922525538409303770744884018853886907974987414136140940772991086761860479492374123847559558087313186271828415601728940306535053283106781514806988712345986336913655130569816144603679409995760580557772606197077726985009891865860062374105398551913411674926382428077705950636806167022736136542578802498629225570075378778285036682976916708603800860547567214387227613718237109526031790942980106887393509315879121513064760219148513827910484977840200126008933593643546175390007590537148159918214804984484354570778761295634913472824427290641476674625224370149511429785300273715886204060176673471401095620869852497561503258652079577963951794716034423678232988946323676933973348869238021368591817835090626764203011401896294021534569678533137546737429734583979143305766443737980719838129154968077364723258078695492212078424784694090731645724454303633654645050290597344066621576980292457724115162671100611375394857507974930756461531893729689704530779742026996137823411330521400679029499079050599645808823744130086296973632024197607119880658887128257470841343714872038422921622528495286801571647880205073723672282724870060939172186898988526236310828082827592912949955553011700548253202642997412333255538336898649497998300752005437429629040108379701153758420323562020921612247237115258059603057150278513242218638334454155979555453599666809629999937498002518435923821002205132406140644061472059641545335346209600229786128530695360245395964284831565098980697829313640421057781495970378360169343454929183994968151294608989739757412609557275279944432914882337722866154835996941179313615050877611452110868992897503817280775528258894349892422782752616566612242892737457791607039029458572039967212861555225141483974101929592432433905275172721145699373726042314057830028615861915708555897846274781299111616771198108883650786658195931626644072522257986908862782273506075994050460864369393038803042034696162378691450003050958795379790789692880278579814197620279969781037547000372815211860879730635906348616925825517161426224744069138554946810139827578800352605947858510617391146291428631470925819071923894221727592047050858123481771777725520950179640364182425852733860524619339975796724005994235331036485128757047170292247446070745671838828841443907900084746079309531909233889524988737680151944136611354457335962548930869959383029731722735007735110983370020506476030133603515563695295344290548048832433615432729888091914032078639134339498227868300095529362632757035220556252707863897459939197674985722231721038875961236104641440766728764862275350022043890354365028956016248656619039618267038382890402637994349490470226233999133305286157352455817561971812692131747590032351563968840196477962048470875110278336271699417794961458329337745846684396182167060601926604627042514976699990752762589934378090142980980987389985759087070923607584815758091773796280499074497552392761756212110112660893148656824210504691058355641477133724532205462137321397794465789133627135162010776146262436210254944734843371775120224576324198580629094741244994058185247790934949523884291918060361359235228449923614411509427422912661538421734381148199728328037159288596408628034796417511766494713329119490610371426974686864822066619135964877072777618941085651612959429133020875212697443874088599304383052952964030556634448600419866668003497223295854033693825166790734840327573524763282080598596548482497895590886462860590898584926529613254958780135831015064599128552670990746837453301948541676509703345301611348388530115391453405585422537348237763080307126087531511078538290484225107433178827367610809774395162716367119412565762728659500551789155446504116624003225032691703745770874840088628799169249540096717098766549635524897562057824914936991587665021197527781411725743470792011117602977055590943091925836379661195743983805587008183048476071439563232408862620946059436179123882926169860048368000187214076881992521089362738356245276717278581742373288752171265084817231663828728208422976746924058075771339724428914656416015716737285473029032627916283889435903641443532069191015234712805825119540641815207413514620931712789581499585996765882640337594669657509697075178363297723939899565758873281046674987092942488999530782615510014350675294571268296156118636701851049697581269440643392084352958004350818273097619573203582706501598748426114876974567055484756372468855830919568238758736740632688479948013320086631217919286956130809237792633933186951323620671233648160549970413061517565674796360737861023347873840551994710338100756441085579810477710154880016770691704856375049945973293175292637376808500321651075014822148558695209774159787284267320196031976479129837487178532484033145377763241504201973940229142958765141488219495898534600427660795104228254457610257371029429377434125757856550593447547829760485858323394356301149328361579391059557841730643929214021422143711293147821349553629015046423616023933574731000276486834698343862707476973786188599766066477991684953692172957546161308202950820796441146977098040387476048420121059667556667583744140658609835801774106955014606763498848161420314942779159716409620313254967254566674911823036654945059431344140271612986731423599094281851838765855261304610620488562614545697057265129046699578491022035719840459075205709182949402277258148276500909114762418010187914000041343195131605606957606292550728328874354218834532208985629681525725262490032355337555812685550681284817229162373719468460191848735054927427460679443314939700270560733514833460380892503924660804022687068953706304069267519094673012864722447515875220476684612548633908305605429908128398052916714073096690277583558187493785913195917206792663000767999661598986728496823043687378385203444007532705042459997913146223323963525016417070595216645195827113497266725493247678700304209401738556083773529823420337404635844313873515473781903463381043714314794584793685949421553620507667292043101910731713192062705101959657261824440216382485578002080763557305455352405987898020099069076773203064792027957273993703510619200821506910573281587875875955682141535072788722243334799049333664620172531402509549883044018087018793918255029398334205831860210479740316898944206457285208960886888305881835710068011284898941934943967140595208215538916191196954033190646293069691140882103618461605004138630068642923034071551358256830068602926103061362229887841568409169852814846223448023203113521299512429202075107341080428799926268505852463941023990734767676088700116645705418753355892624867622370767873057518939037932347588635229335835706364813331269432077659928954073824218606414901540820573146208460806644551629951758248107690400053079433911254183916157007247083261809393815076401482672909052668621365400421543988424595626368207227303956734764616567687189366330751971257234754940795211902646668037194465640805203151348271573509220494780418984225394123308527351160698022290141135470051189426840619618232888162846371161624276232339370316003821421442788802685285831178509851494135321936887904091332800421215625795745489009544795409385109854849787768249412781510684035643324289469158833238923592933566441579683565273255663729810261450349850268490257517920677664935130576322775135226607675314723553379519242945050567239183354869411316188162697916760629228451332222733829577614422454446915828337115165292933073949357033945332985196989848778074122402831670847780607994864412380352167133814008754789138517338497909227716510257685418021116159109414435185405696442281848054007362204878935626418621943183947556619734119888104350113952260607298637611911264243833654329189365555699589869927337510077640462838880623184126419639848267751540677811965170163085565485005672116587424134754478459640561444918690321985423632506831697673540605324568715510051918642287160775370172563588506403175567023524615169167629084298965916816008910364014009489092912894081217916990846167844817543243114111654982869130788544536267563216844422353814114262199551187497569117747882143983310588204842205483397003565867568739235038304295079269873785242270869079243254490583317455339575479384200675992770152513327385038766399962487903003315367697511729980036367996583350153536362582999100794144855324956701136784949894986846156340610722556850461268462273355658061862832615330765288004440152019705757281931543440849166716739804867420751496283568283075842845671085691445601965485795193725970296833005127467180840237160079526741687494617701634726064402648142448632089399033290934996052562205429296380576529724608933395958745418325688876277045195032144533872851472544714942801203062391546003100628550723111813664529273072206918574904269088412251419738253685471643037719871218289752368506310381830762442568522463113801191855328918053811125222792809366573190860435948066380152257156883388998351028971889185124718860052003528054934563558679446090121529900196772832144842626438885077182029530823868937461138845366372325940115924691035974116400638668171839940607088068771709271970066020992252132176453825617866923375406081174076379322513289107343517321140055648189675001849245161640649824536521611590543318648926742382340062696534084930223331911921346991639793420125210626808030633176824786588036181836989074897089670705502429478419439154400968770403596005785328179830204623749712861206260461265744734650086425827648938326649933697323211930663506854515767558577437743992402279132444254172274302040089747760961885215045353334012143848157791973418336049542235745073096585983745257686678234695254375242403456601865316886334546375098475536386685768070369019457154451616979163334824531112562404862311761116807150905732911589567904447606353760394588865126020511643832078817377743837392439471889360047963544731093625287415769309247257688001257209041298359215291440016699360397386576072639910298180070824320577165915449025693094590377266157884040000262913573865390358323659669050959988491522242111980816993413638315972681537452530564054258966492665359373950271973464874860310193329184600031930663011540023726503464687436693032689752344892785272107321905078015942421491497747386557897482394590672798135403947628961648385204676377284858693476536162984682062526607206096927730709217778671641243164064304180469685583543863952632472723276574412633810551803840272615236062151196129539030595477449450414081870944032050520655682428092068834084436415690799077526597357126237110954305188227700967119811433862688912031085321021687209011711779926562886793169753638008878481279218760400291281465840807443776176922001006014407346354222810067093064887904327210782301415886721350529979262629864229240165151130219761586593025047459253821077827651431566916557258006440333923958798999513503174094636061074675548245668893647613757155694536126065400709565778079451978452472482806954020710588902439248555132714279312129315009468998175262425980955805964912682694848551602069010027759672023043715696865596767144709821184502108799387682157837050179437978472885260835300021990346162795924288984840538076443755235766481780606170650035792543019521337876225831427580893415918890727396762364207018487584407925601752477046729862525750473100458113430047312743133689946230363242117177438431483304910328144205881322139020429263282436899818744395246299973294193552380038173424715327715171287943904075006028381084095688509236661550617197966943434502488704399863921537156469214389342765159893945984485845759164127074291453954055255523840598940797038380448377541434423152767381793927415470617347797629901012825688969387085942590945471267344607667377277123713946751616345190232309568309067577615382999140948184050609706294134234045178536038236057523904528440647243944599731169525248698892082995699048919884836843797734198013955474487132876283742788999309939444311105690925215570184133926873348066267674017993804516191272106716431650561672128632671587113654281607082668807169458293833212062293082127922191955506891871418331599168115123512834538049733788806130281707458237825362282999462816292258886346720889892429348917464168631095011265520767507916722453476342899723210455318147932842753204103367820920938069799144007615847648388760260782048156369718124317755171481356594825096674809914635724741826649244071343012870189238434445116534858333508627778038240123232126972495280041117130428733401554828639804365616351211257052919288142941144736654780313441252475085593242469349752743072632848102280153653509395162025358555106865780023676408160779445856232796315358836501050083355202447986746942758536075876609597715305888656584297217738651691750089891520371878330370714792374443898496537619395957667799523070561334976807656211793513109304481379896741786080280431790403683540903711040517374889362134195316379795451636908705559480989990442509696992413156343565996466088567378312036677661587381698927207261681720778929241105261528647175964155092205562436372990585779359068291143870453057351505721379060766754798886279522838181949438905594816014429716425547366669703978840001317145396962980750807134308528414734043266073412994500920885785532180826632531735557336678495858932155005410817576484438903484461252794259374403211619637964645905898994584871537260800463258041895594240622204277623885615468146329001252932622338369207292709492915396303801097977695310541368771028837994909598496239596883827202990667913255251302621408036344780333989042968044034108000070569955729365886540251832012231141106439579853102679122421248331394292409141775638362645355973772652373140415864379464375906324623910832927740449661041481703034540913162989481397213107452208907998403745177545023103168369561910664582730439783067751351371702852923221279701424892172097199412671710120579171360413426824078918908569127535090734842030113105595433125665712241393998817680493308108348991344375804876324987137996457313791690609480702348406873941281712865453127302917010666541521389484178615549285359088319566876648190140113018955960306041215286231833157803438265045223197775303997858207380621747134471987278799582465670719490379127871586749287916441049157230630223686472987032535489878800120417211941038315463971595519906801059944918768827628849205193640523211095491226964053271272858458639643179927661280243689539317597544880617852819773227274827714262424731330898549160006832320514528126788632967860691223636352865280044401080810551045134067470321460555780463258735315008782877812855677751955672878448334842914481952087119096876671217750067131105089442281929411908539123233930731301681968599839900016352173638722857103001415341299814548546075073043691035009491529228278639515598368900169873480384460634270692305739422201917417043491159162936240504928682065592473003990571697177101898631467256570115351889181125774843708402142430093202720811695381652492599245231333760744980633872559758643160531450396913399882064747725636269544099908415195784158660761781235145239540020437509997379982290943640889615363584966450568839231379282446370388837612702919397423384536764193311955727318360334126696144466506697605167231167242392666404450418625245610060321239957620802120669793715899147270452501843370395430928320847564035448849291392629791066459472732528633202962509501311847931817992265559592157138990504694253997772975716906831151119512530667826221583947056662051514639686299379389136483040206667283498130338036616925344085238039817487063042464748827498221819188650315164159504728644509789607174332622450797090720915136315862456726020115070453705974682317614323646678428648213556048513764107588043341789041088582424076417297360581914871336567400110606532781542446335730514048648349841003820521671870090447820304867365764636667580207762222202121111797124163690079589316126912734070473826354905808843450189430136701219589970541527394086805437405978596538248805745675459042898420037045999995737145930484967351698362869089087362813442442090994312163595603811251706463080682909669342696121831204068911471021806918223937598854207545792430648840004088717153535827399313822131845791555455331225222021963775256668532411804942738426684263016325497877523777076385975650643306716399931923364911065018534755104234258169429678158357482671925932709618770710418444795722271578895858090067141601264129528056608570737913903627841710326649724920360786105847377144229957068093345026298196390319814514796692240778452960525707269299490655865923511904867663289971228341591842234233617773290854922973279195626440046078182294287360594841437778206881486384634474685711342804457339768480282244576604376686077884072205469729796831863310469015070829590531832281131073511220615641840701571621810768136284096583081106854066726626145214637079780888921097007573700242712642413781969834907883152394685274883945595628814014423545416180948921646291030113731864380965640827197416311515807934655922252348338229779814642367820219505348151206512494482273453078367224681205870151459783610409745381466069077687276428845300236751013527076730574107018447538936685624870956303161625440734171979495651846404770461861597610111388926786051659808597518499637777074236262938063506008187734917022501407518681614494590184970237647401439973489381835878959538062096143255206720227424438891350817463648176446330193494032587614216513234752252623439936320569019469801267372151960183632457661330966494363201535085194930267099539960203173442794273325557388597123864797422959939871638371771519371483630615094791118551800849081707189510548577138107604204065753929440186067935235778865672222073745314390015508309820793606027453852449564978048920650030377062575742935697987174660714471903262287937642562999162551024460166700580289116114948554012736605639485701347164954497941082587665464217673472937780722761032427418114704415859527282861429536440123725760942700238696900261581225234694284469108355240414165985538284239532285553185168000085549356879883817672757484774660731815734239367508155397564626285546747339538422132999989140058076866082614464536864575184418571285527678408070583576603122931935947294392973059226313381155172722603477011909696686175079197960736359524020202673595867150476166512986296490520034589017761898589816041725145715066674987024036887981907987250080459028533876918190224254284551874130464581853679864376871034887489936032002582053770607567181390839603815301132927391176120548693490925748220567680360325374783795117631922397970231673852431115534088033863676064410672327920395178433171630331875160540029367494222469045477198310386894117991834045436550446194002427213513933611246006008079300014016024803175623948825964168482327400529361450992906177138211390245256455722965952043829075377454124283809862527400866007736329707099324400075066374671031904497649952047687028778355761626322844544718367030510780266204887499642665223201238710580526024071757149130502868823756285473255685410176206813212749375667240443029569517342906605803531630206305655490560398225744103671969818306282327492705206732367150408371806010088607855557109360095373845023447013075993266385214983624040545113013225291082508664415313400508075549502265550657384592285722854292002863543499432971616186158051998404051491362885792737429589429180061378383365586058109734954765939090909468148693251700794235749733857547311279266254700403625043686298924793087207062262687908343395978389487692512742907870210846118785704643535748785731551390772704398109814884106019634135233896278969338482524048173162724657025003245508806095312517680627151633482750959295746454692501483360932926854467184254583548127406009987232735169336108945096700698069160849044235828197687896774291647858877098760646141782911348588358908334829198696943621122385329359674655203628762638916695423358058930669985968882159727753983500920745638782704081949151442195690832066637653347052945708259663213269872591982606329645213762024415835924987686987629362729356140468200688699227929307875515199134310070649809226532374025989206536732772877193757441670970491818377372051715065419999265606466578085354652182105406416320472518076542718513161614129829910213493391874402173032159764186721629390366391964986446358421665808209703646268961968347447795015790841456198658702607952957791256304095498927136979635764916383456496489188427830055163524205991249521325982740622029675924395592252275718675177660164518702044319844673808390446419096628536890552114140244074192902761671514306919714031583351803283947717015551509490843454430472835174989443443185396491688217168878608824205301477192563067337724738023777636295959312486874681458030450344563720725848639232427606705448157269478355956705585070450979187764264049497034827738783423254632949126553047811395787539626707828278540357172554941246825400099016839198079202221667020608484186689719803707249516203241621752314479932130383040724060863417243193742491164143806792985256960089151749564365615639222157963597841477165353410861895174949723579628421562372351451931974976404884153173915308547934144412450606903810322533497673584049552937638593333269777462724512635929371731458590205838465544926286194909139233910710364482012837512475482552048171786293788865553527454362885495365942408762124641750433109571680852618145953267752263136042083041190491088197585349784183892530250704353063732437314363880659852832463989828854767606087002914135606142408836492475703111182240824422145217887966445649620862493344237460746434523958823198020132966151739042063227180655078722786774771058778928838678987686266825740901785643420127595797901481940724882055764673824893167069392587797356805845544867249657959264765265871655223170203465011765906998291385218315105605514244081657258598886667331771070084004856015727024004262158172924162275879854347397571920050298054348310536592034592127491405155816063932463974907371325884485396244872400262326763406698889545500134131536312422916375443985396408553251697626663255415609964875695132891055140053878187073955208661463270375144440095086941547947041653610118416231587755210816391634119371690334649868198553986757993279474144364013854785652598380756329501699434440421400079473839108922416309317347508848436581692831426506107613866125552610333869607952193525314908874563560423248004443841476749399783178495555851478679015726447565367214978941499787503078790986532999534705190011906788199554982423699434496232636964621489398155570057306245692621663642101956571469881044281330994649035108655707661253907751060253420919205173869732993195581461611198747594239517011559896365823379933651094624931579515753540737501011248327593065257890899349731101396371092057720051410068567381406155507091980890301252382435913136465782458250141866468743017257351192534494524086188312658746333141637561749962245606964661457835928358136948746413969511622531053563819091401374194152561878114011964030501724999675003266456666502001874867018423214383167542395626659431065066545607348888525872155150274504905399868224363015569780540498460429331513743370799654117204244025455067394992081108789715938951483886474258453195153255741174476624390978997523514537816107078335372524161245405626097819898531429505995304165801812597284965926066594203742431978577672611256472613307073193687734855332993002992966097772882408963531220841851635509584770807143093318841137235282422833387724812922952580677836058294103527225551177999861822140362885039400892407216572454718673878290164465127899607353873804389208851963371510629787149020606222839862459356596559145568838551224544423892409650194661617601323055722808057911838056681059138298519573350937719859188527426128908869123534044200857087959673278415688913895341383301326234166174850670632598121590832555312256107289115824090195643171994037028521093310271917485707301156519637208245736290119395220060374035366898297161814795977380170904285761386658088669521534344887744187960562256667259050115593623633703974983597347129497994176492852832514768288343657167555058730470034539050722897812577374644223767422750834945512197419680741151417285812728752041796264395355314721658907116270909840736327066543922369018599017135468681961238650085659883522305335236596270603999696161806128078560796169629582048114571692849409130973163162377884804008862535811590830169437103569358377463954827518278035596748821732305033727073075644971042991626773642218795194291271424710632928073868348072668002073800579899794295556477373061188498369889086674912408261866841385456319980685684085938655370126963801737123878517216586851723194945761907443368413673171686551607779500082610143591476425048270855347299957153174855353761646418622586176530257157508819319648511108517983232627759536031013052818888540110186512555312340324287198619459811590850358558483793319199170709348497981082362737076590751460516294194354198377751202434360745533754613387674688799398434782322145165705143359468606582425103380466352343805321450783830632859696487589328779553345562091322451065061877303680247595909840504641228712130534819874796204666420398860694661781158372216374782685790258491357278106152071193128525764496103938680857082258569030847075492581400160787471801794193419122242832051146972336504302957035008572126922263123654040886838039293344381053680024930574990004161699439755648878311237887524654398582593447312315514042007712362572109721651128883211891369826247107743196928164044394110513554277700896777966162334156185562569867623403760895734447181455642590679875075863862108381125745531033717729198899472822337856457711835117763589260234332026314374032167542246758646829072345494364398490181672846104969975971332508843446973797795742011518408979370652226879694435837753351334516348300454838218200503540473981719417022140477430793801928967241142797233228079379767405975412612815478354369538101133349596681106100133622206888291953577536167846352040901304033025394221732794749448375129559591873916492602799267381385662092823552582782434432379978799593839030649889182721905333949087592106913459769703055355700047483367538879167510728695394079382754924587961880428313897005579523039006779693376826622908226174972799909156546033728640089025222829668073153451831381121179573178065607366895907954340169584709548187697148768537788286209823347960823188555816156401520854463236253851401843508019548731335322233377487138072156033483142555220159507016452652943527597600527392993692560149296098869660854576111399202261673931971326649588421010907328001372342665830766106187833739470657807348095030581543315269635147022505648656478872006958621276660101881145607501224177005122088266434324733662704923382236840232041194048320511333405179166611010772268411636110843148921928425125002346639331817709431308141400969498632091592413718738838801899031891623927248056515178935729379732703698821317655120294444975138418044885719013376641357794299383806514952691881775986286565831589975282844787859736205593443107784358987396377130675993805760601125300501772693750557925015207778314458063923589329800496480597756697039642338660679301728479010861126414365174586667005192875690436237444029568988038071157044890062125019074731079485989013589341325530827357326628530988546813053529744073910658144772867581567852283593805907200204612366165344257251837492548243129691498741444414474578157283537320449508356575426361661125654781713225613418859858981082227537853072814307911670045449669383701007328200258391605169714967461312033741193225223999334834473969392806717107267302311361397758414467599415929511130277340171999417394324280358536578551483981100578685746719728198718370159369172567852802800613625761703800688874078135667885306781666316442001812209441742179728666571563002683193676228881495034421539249560689184990257897699995003138335396519079978301177842743940615167311167532401889901369182822917227685608012875219655171847629461091553990612695655710993452296977205562796503170108873882398231025776392180248553867617758763049468376453953969216714382711486909361123575308721235187900012497571526561318967699706138839180121479128264789818404977463014518611930805771505200420839944451211780642865902808570047895192031156882370021270184334214484311969328825357207794564749383429936629000995191363654945036211255805616812983562107978824774925441272010455265361404887767865421268380894534734044742826233899445957622915403098131381546990215372443251240420620690444462709718620136436693858316774956675149080910788363760148857376269140320091820449548757553753906751821075967040664067483250889903058854268133823675714433481274058883392086854167192850802543740083353835500221474153087558985817767478342645828443914798536409037896639541664039497575102684389999904905701038440112913271271842339547320500573015198789483233142790027076108008962179862026252761547678819291065089323195138227749089159352315693123973951048323925644290213083095237269022017726497666774776461771996434475602093930449812283615274947079474691772788395752436342422681901069376739012208374882694928448918581926152919538836192667279869393586535113295818610883362445659430817637359257845213945829069165691162207683419356907240742791640924289501181184782425465010498748539838871861274469827855877025220324342580452813441673711830487777029257631605387585881382584166984884708881137128897077851758151655307982553348398566123724525769481408387589216425776190092704288374932681287362672465956832079143852245090875501532959975309492666848741958544560553892035605550915772754964480682287201087421732470204025575593578542255578250553652681148567009248681140402829063450888065299596780531567327599737521697190054000370141638116530749545284923164341144034090837399097125273619044014404974486229129991851249615254309656861852966326421526223119722558059533294392865090065673379166898993942174241893803388048920828541965273633386977230883746446016273749893546107898043658706504531176980842403429972638275735630422391631136508337640205547316859905396866961338676728260932225107541522939527528740819554997437516577798769222719266763113701817262140066534543918315399686847884487775619278362173070840415671311554341128853602952244497421620560040057908539996184257190212047697455327960625213229002252412303843429868075032576399063533648838188746367814129447530649301931687724214813800508647870288084411413967542626450517203580117883123485413812135057127523618181644198565036091497410562207426124896581560993969651386309792604966013953739415345458777895079366648874117787917038609196755837896809239302402049495148755015771572056027044370244824167851580072081187321558139462003902733964412117642424810393396646187161613025450359535248891655771501412125316402412756101709540249509495804692714983215587559309857976444016566806060039948161044284850233699710460892883680516426864525593709950791348592613193158678704161272828186839741861395377864011495855010223965165069351467376679639566569916218061018465500938871625237467301128837314146115455746785752915487555302502766993486585017869735916978860544700273750199923602707640996553688376809677148682731745011156841705134544777652683151484680466373268521717028838487801621660207790961366685212143570308746853319348405245204030950937174277567167220833715493973768517236927640276351239108903343162718053324464926672804328512012252636626394408326633283910372810094594357772451358383857380214965366257009438696355873267958106716939352049213817261301655216005196479098765035427205668307960812698988149136370077842801630371272274748761357655819675886035429798604223434366211019008341915466600816541392036265553204720966656443257604922660332087680647626882580237108199442128704875161198276449439013531749270699278820974842061252138303111178676440787777647703828875118887419938594932873559416977367082265723154206904283930915825403135753849461900401529490851931738721970910874721662001703349227888662431709812233167413458357664859178491927300950701955580337557026693840169994203849127046315228834980260434574986869896385167256080396820053038122854302767608470646541501390524845097338792671075885597181673988378709224258859944535633912135849847464774610167693426297214871263644032780797238356003643373058679277362065602221773219014521001977524617093987226862126598565628290599372674176824405539525201786655799929238993868471887747286306748407282386963961970945400397787944423948490703924953065091955845546359307590571967694822690359822434095235168686250673337284515453179628952466159409266150101953990043299800196237974528455420562850063807471502154979209209436911840282957810478238772037311331906296447759893280636484190507712838931027551445746530047799169601803408652055810709103974263031410792034639712649201455694539485744029595485069528969008206723889138832241476700784145960313632777066542373149357361557734586600608143116497295255565876163393866559340399440474294353738164056079733095536801053037100838800616761948314105332097176191680208369537149399873058848189720693533683955755617546739308014012491714072428801428647627658073585071809867076806233884846931021313728897879423982069184958503789192113945351112948709864768149850088820848908395585556825050124748506647654939396368657976733182619098287710748955743639843285231135198178072867502141219292482975454970463274981563749016290579633419980804612585076639592198100866151445503876977176176070294999701506132356795377470551629310664212218647876357394876101129399382941775224378694095147082218473154361266964620610274521350379669642374937505843848778105572125325945617912898045523180281205840799070758513487780993626421514054027920178839821830608207588441612762323242214123515238426965105921530408648291266632622413638557932822488781657389761177172474781337650982780929083974403346170439674850148416732246614386842181815220497140026373160339441279346674540122340192105742696370819451677040053340539319034972413787942152407059828952646373977459502688447825579466693729851999070103689285209045192372991584143148683305085897722271022572911135275673421448492298435576723111565432789450787234165772419466286929041439800252994314284057785689483003660923883588642301155252726029858066153872825485656873356572999045140178915453923043242975809705847226549263569688858872690625941466434579964391027351490881117783931274520575582053318711969347303302012454556911342451441182260584104477521877922002003267743598221293143708140964132804530303739846370283497241879435669700575382162111084933122291897796822587950680196823649178580774781813131456323730248252511617914545077952756291865821662311486982201188452174359174907789938989649821212100863123784688011091817797156769785234249147936580818887409898350919136629639103615432443517348697698493215441894047181237794168517422873526981692799628204452622706247006081431429404029235792261365378178708384900097344539890026345941215671293226714791697880758911368210932013877943463361324296898098205256398845752042392787167302614023452409092886222111706479007020692021303246281318730063968552293801150170719165218382044167517550898572523268295854613052606365674690719524351673382674172903263955613370199305133102109901067453380174265002947937666402879592957289642889884980629450665617174190954119921617991523509661290064277298831727199263384659181160702820257712517660884306257528314999442404704919239244007535069536855053385074020209598322885891077912055710195709875504668447986803293058174559095800712667119106744174862886366636832722221663486534790561405341579970327634438279052582373024827793623275717808946699708736548043468168392957088019464208621663030592122447566613382476602372585443441290119859739781903530193309158891311759695487143274885627889087299438613822841754368895907092694874294898444273118223382272678424710978131351261266422177341200032974286009141462180117188420324416732402211901545857901506464768705918796145417872849178576189056998909646811522224495159507890796964731125991245125598044430847110061609267248229335015269511094944709758447504613342099812932938705870391032287667933565349061745017305072933412963315650303771139072455196296300906275614025717725618670573867331122386443096301246893697463817118626360459728973672704736472661769758751852567401444442452072152665739621356165134232840772373166380701858846597031434808587101124964442991727239576447804351760935671318577635269351171067566130102883170648873844979833030179396219484895925281395402726956520150814311085318030723735679694068227051294979434187372178731958914972749150759670093420402525591949987741861111675182983686854463662345185425282759777229954972250441158728849001464170393625333365209535300960054647252842588539552338281573675305519799173492752683246290460676411697284070514660881530396273676781941390414941772782931214898006614208908295246907144215334102938137781252165968499862291293523266186800302371979348285519682017674081818789621736192061152856740653451751543117534103198839991229458590905707617270288916223133517955946669329227203440864125745173228051036858816490668111140242556309185250181411237382594173984455794325904431954637847342346507895223149703787286031838908317475158870407238172379688753553137350466447114969155990142703765812637258539557058441495164509363487061554075532407069554541206178149727602590134084090361857591378174689080326012291341556851995722471537619505931785805793539961097535299489086125152924079625031386057558859270500536023824409022809749457479728383423265603590744331714868299097217959856177017470765624411577388563876627165910418121149295407587425268552929918988352481012548266830188938761555815737053784938913128109173115189983103671143135379446564070596017868046850844102133344890556564105697818509350550897598990970506166692504732398196513330017158131348955119301751452576470903869009900281198280294917515734592977429070062544749161057500122225885828812968133599398865813372459849254863367589756675898923838824493646843398668929318511839222204064703807039898884921588141725022485448369006136214638181224588731620416225723828226452976265246971434278616347128263031903005839244086936065218991322641535473854035935120361585517511550838539682565568248797373964617987985061996933659743511522923179712604417462963251651189264042296786696463871809598055416352748778114768788974578502511625576243330820391349766438268565262666907846083505969607597252169153739198874368773959469478541515561051140047345426508912310410933356591611078599172497987043550596128968517767818649051615612531148372844056494430828831704196411737773825382679674361718462194105988560176186985988639039110910744610911035208531417216021890361663326697065091198616299122484004246147416804958159434024383424704544303461394660859070384659545481545586829606518599532029060327674799698052925166115298158529760018523627984685286651656211106046019954777618758344745531850004246375902623878363878386691569152590190464647159816349094998039048748942948451950526062021079591319068434499229065296237843107596776091456419552194825549092824362395967462454928178996648351788606162328422498441794825180182105134857813218202833271311400377195463671059359577237341544277271549580296907529751790007308381338742729329363706753055240531632336705572875044628983054129041997075612812179445957198898951477320418291837128760892683102157124056488356300782653324903371558374671635018201156797284139636016957963249428370389304765895265983583047548609047688841218059149089003671618156519681594672601616177597329239579206992400642349157275551976917189301892277245294524371264667141699472072865701925253707154937968904714521094356760823431266002420531732886481314254257704022343544470450994079044232795972927285291986510999918731035842177434738640405517024172069305020029994103214792192507007639224014961036020256399875912861449441237981944206625857838798201370919444215254479541663078360041424939704029528857137145055301633911711804998520442593737584777299028084999608006577392341458553328100586482265656142237485017639594114075459811191141983376684897291501903034704616089355063631563337551937720269929412196826442954136359067201570915420497415405765115702974135884398570850163966581672698394894821563533775454941898003752398757605690443731014933400725878169760504483988390616340472122687535881096901040406811290219231539106835597171870200418152835853749076040753734900386143664968887163246840959455094656693410647456873890040105228883640184138815324949386901702996161118325989612523542527397388690855244839792941263134831427992439576613927885269222842732154091412764730225945512690772466186176545487724357108977032716633444333849717811014710095747168843845516417256361975358039248828107310974137621600925300636753976316183583074251815715894514222850735891143146161079660284091247410059205049177091529625023876319813750736778143504421504285003155453676093783644265704373073722208009200548947599705229025776271817003521099767769732709325691891146896138788204610686948437911964106702850841733570307888732048337920137127735440503067395034938367902650432646750154226542095309392208768111103290868892492415130396021404661788265237615653724583391502108468933250353019352733848934292345249501682657688141424892417954085514481634343212773039516475761209721291509415273004032979607719427015949940101612554479370781912201106828676519709359492002260210802974626918424963072565692244331262555458779184621012124417858563494456491476267005873079855438975258505207578231695574776037000947494685489512225371085188941736566317598826466093348365388055468401357849343166076049516959329056359189830013811553195312778009942879096756686375554929871936757615087089091745902447668153113267802660173825133651765878601663365114709803320362373439364404944195790931657698194642421645717589991965031716842579498900040093301709298103055830556880956135790681906634052789216840102002104262959708387630275295070280893288625361123877860027487780668051409962539632847187968445477728528356493551122298267622854852760305934832703158958923318539683261270861053619459362175706118568890932991789461531041732400788141360398013517205183354863390251374595425991076477614808222448775524937035824667969478164100685739993422819338056870015198087883092127068130780234673896406157142688901289907987186424576247622871619162933736503638275971839664075972990006939978975799398548624111565435043443688055829605334249563592518227686390973625468128445421248296990669852906201038574654492155585533319780895256383357608132218041501518003747155693289260093161197604546006740405171149135920968250630626764982411743480213682606932623719206480195968411086912154387521039021689547381029467167847641610870420485949209518961168410635855175517866188619278667117581333784518499075505334439053506055951568279673051578726394945669623095943245251944592321379398634631092463042660162431299249143326284421743202282520747575337778384414138982327241763712494296168347774666083454878784960211068196822503763552153680957455979886043892757597740581959876713851704115956715320964179042919270149580084859357134573121056745443279588257556128100091686740743047066663824330388772026938424103412550193691427115475162499653898399947617272185476271846564437273118594492840659868550282798326093301416999395453319966504993196942754273729288849601786146769442815596818727050141549555626134945306326119702170904701478957746468522235004077004265894455989244060728097912355536839519410684847849186395616142444501112244115328268107857657745430947920271218672487108020870250887436086076699290574289010188152995619250903195100586283071504558559866734804097408459774366247656446352105398616279853688857452717938285453093851117923428013571364593165852170912538047541425081914474890660854093491473179529888804092581331346910676215345722180462861703433092287411812250912022163702226577855926281092968761016615536670967940868598650617531278514778779467683880110077063615508100228777763363606225983233386281958664096312914114951329999150734244867205732516553632167684269994147388344869044431740305776075138714902673218003291988091460212838877944664953105878284585352145541535357338944461510059170336558246737390617728629854816974117969963948411013841642838282491267594957576661636860226179042654563958884371390740686383106945680720608838481637176914465292703862532021746913108154281155483782215230262532135869356579014218732155607565168168665493165292875293862042620764693449348566652676341896031435525318429653109785047657139894719968327340388276571685632367884941221455775489755091468795740608339631038531965302301423532232481905944797168854920013633038570582974890782642102012470895782053487158773678142461270021162021017880466617635810672220526844392717822860582428218798777812643013954914545082788562440426053811879248155444091943228637425524359613581367205881812035996427401752696378509203068245737534685371786436637184242918442441437149229510446801347169443518683802835259709908069791051593611346697796729068078056668956157658231475968889168620028000028690566345102039256310873855642136768279486395368969953044590670566172280604741022502107075420727051438409017071632901847400551507593408532758097193400641813660359451816784267030650873991031763162521679497370627343898347670567895404802600920745669343809780751189967109774960357968099594722072656540661769209693093875457907562322467599237212176519516257045248886019413748370494438205900625530035683212699539964008675034931660799363398973146146025819478931363274396012247866019927996129472568380624670811089808139528988095065933897010782981005750667674722039178205496227082896113943149938277222442350934312727500650195824537157036835667457333397549424898273507780293721973301460389473621169146459482396886220182446776887214517564020411654875259100674675470328692127383365514860153481977158468406967929691711938331895945254914412370533822061812897930639384049991517767560799817593191375741837506834956629279765338268841649162116657335042697440004353486884114771673007134262988850495140613954288754343860435834916846425073014547796943614109166044925212300415038747205796793063401533284190835645783879158815563908176571961053783033590780928109560668964869647702484058439206565056064453204975728769053780262548136319021779673765739010260071799816341466637247322407418902031755400234211672137596888934375414553125728030412222641537937975707118888971702259389029187924005211161078265823570685399592082328491238100588820202785911234290525291594128361814052604603381030482492735407516663230131581517446243854927944692019158848690262899488240735375159818628718151720956034171273707485815307067397052858307742879720246590456702491115213801100454941525437519101639850973124301372649609979818213821288293444480141471511394985015501568336391380351829111143080105063966780174338849178482474086487647164014742165515985338735830782139867961752527201726262112426709658532490959455771581200823770518276038806225696107247711350370489705228717669479161992469926306989647870546346863210231106702935294767024511306643624985321605510431367361665720762654241194476622328543217527410772643586721488969617283878392111958375268136020207466103313737830895402594694517014586631875410931400007585228084360757456109955171189159768165267566187252284450966222529401261970424225493270702017408790794757772039684302674487486634627522751267296700129681552890774889496838268641335949149728506268475910936414519917161133374866932197307642199056667111389819616070069208784091559116315169604303650465952143275905483767955195841091606998202162938947906350332202830166786640941871014164379257179034479662300985009338793193279252380301769226111881848991643996016547836702671053713020136373685837353878621686074830254640862445527304124663196908891244760947535695181316827592736857225782047149092463297752493108972097829544917646160261710273510177756824708343210822360742120882098341874479497582776376500945179616218981928877063789783538873725786343541882944493867036319417194531328259180171048056348903591165483537833368091941984437728580301605939672209085113709105792614787177700048054795659679163063748630163401554838215809283464246040055093587578167585611659746571044105406697068521088093447238479037713121071546306495977307807904604720776300465502230307625394967101733259235015871663933611240294059057389734009800077865445014753623554263073492726017256364993998767740906195643980623472418175484035129259632986730860566269568753000009485725360580526444990817137694572310726351419900493835075225964986361884719817546607912305720882022962586575527032380034579223224883821089689210893032240132904692817076271556859489938625116342277835294788413412131568465352981943829697608580435642759086512434660977528337926716157192200076234533714699796861805582378936367726158204244221398939080668412192976082620479280166850711133192750556218590166229883779905779350613748184012914609689406334497646191242126077128004026678419874175001709124208289176777471585939410394006280128040291225611906709877464393745783863882157230398660373397453456476207166874961260711929660138564185517577509582922900330402428578959998400415035141617239854596645297909833985935401518454322348494742391036881832822489179869862629436258208915579680968969951142639150634649533607236177975415073359016762625122405686742357873852834089541110051778670823732328243151671871941336578980366296984422935571090343095774343697196640234702093264558393706234323043543258875410232151226607642433725490329984228519682195817604780096933168674479342201710510904125887741439804452863746408473851763412768552578525266182183897257321405622475083092009596790400014863458670084086903598516257072934422192976098028407787148697573688566158004225899966943375861962562544950418977909607044919430142971610226802002191595886561639294228375675965200964220605396935643913076518708765626087941303347575252949030112205835262604554504837729312265518675273300590149228030806286942370604822946898939031643028980557875769925422309967062465153959002975632612151173480505261203918384177504527729789435593221070894967940194068065842163409428415831759036787065587764790648874404022201014076848150364955611422498756874309691641435049023453779829515021972241725290949024594410492334266056808553127018326777099930968288051866697207285575570421943312888196336112563686976833811714487158947505488412709031882802318425885509868519238033114832964143715466659058728583734878602314570760737872901879171014784683046876703652581873035911488172979456939327912415875867070716308423458412499679372664988189382607014537702744166655692286686120721450260776772351053719779639191316430822585887984862200863455238778233228319002449906246849040462990384926038072350826893166146933626412164456955424315007733927247816042373666338671261629520662631353866491396999797236796865990339664254244554958239650882047192880789462695719749686554767162680784661642398496065954254681649000883506763382165594595408055040487174710787976880256523732588028371554225379796724848605417267889375770006428020210959241167515675884254735853844121811928928639028054071293500683260194271834585871110869808968633317601675136194627901436343423384605139975721088256159869172855209883311749532980972282102472506005702696477185345206983976792465105129072550755692047025961740308696509791873530681159575860600003978484310302298712104843411996616028162296153656796787665175105024822140745044481211389688413537247877891356428389564054466621598129598150251186353601808013903098398445358016038179528842440488779010523443805332792142483988366590902701364153301999063789731924469480500548540483536784419685686527861190045710224959544948022476614307807595037495757101252162401276987909523256753578507796111470923133635434246931930455814687984383006567953762406064592887915912068291423687992352142125402517100966350145513607341881283143037797177457064755471921518356848779843970679656589127751032064434380680167267874030558651571101458460895963332510988359685501772705880264859267392198294019458190001574522391277483429819364433127237296925480509510298043076543795927083489026925330131921790316771803054765603905115965028366089104412182606211896816868247629972234270843001213959289203185582727252941969370748807224793304634051541710298967567864004939175505670576689846384953415608226298551125286287993259771211048126981536561252716556926595220728703296412927161401566303604602668251811483704983622129799949331285064923403473394022202428072679654278004835608831811312843129108175039407568457773764396195556339963438938748207297837378815368697359871640830302209277419246986156770318281481804656197220099440142946722611278029952268105465728951690770360068585236233309261041857510953620480083379914724625105158561798382702330190302190527888218377908633218042522978140921983561035514641910557352307071945504051264503863022204913366605548810829848033147683671274911779375079530058295152535608946190410335419831151668769133518246570948513543491170389508147878052461321775550823676459108787508028232637132436539252573647837784847370064454293458683553969984965800954169044564806427503217557989070956459822181859314907172551996039361126710977845633014158816541576658770846972703644601481172122088937796894917523079942974349999848192713322706360656844901944738348908839109620938258516313352626181335276055287203603305553630234203851064777822362021665039190714447980788337205917553288703639048282881640818457996838231622624274256099832629056585779793372183265464602457453525512579072199404868795386843175444760540920190948841572454221503934711446746403689159131522671383073238967296160373404184339632622503930252806009123643534286093531185363883414401844394599347020178716422129492869846120517095957703495537306291312468521083616975013033718149077305213651304593115333847933333503501789416703910569994869228447677334267043292317363464246290435375213523848999723296209284601150911024949901156315049013820961975142201618513010817445928379747398097316455972593020784934958334190427794684259631583214483097988736850685157132631443648742416221707996201939029679428608345562078779240006118199379452680438503384932025961509738653978770875478689226836861236782624689355522039309380064371946864162137181870426542546152534471092701514832786711277196560448699100560102646094400333766821530897653495257637819762647755440595930106183510607442190400634966625339248540850019388361124189137270051040557456719739341180668977840331358341530056264358862611102020552316350169978802475078903800623134642154854017422295279453832891308929097020542175269474030854581054567687953261532787152375974647066686633315778070892216423975539972507924783868136877495585157602816920566915331117297064866927401127989305323326672095121544585530213453549381766717508376327088089802358945916569485882875465460535084012042066899481088953325952832337401948466995234040802850962034748998399378737805381962850493107742363155798803129079025633193730304555825541435686332841655159348296776942662624025730603366162542802203408199192470336031952121517901876618880425975762568663533482871745888881794999578394385175403321506556136146918583738278218424728108098358838727889473684016026001070019667952119916255726227338478666293245945363761314325404259067647293928445092630785915755049425954026401598832126258947751492113569374501501598653918027803729111599735778022014877028976866553008317352611125532601879074039680927315755486721925768098598835762982018908336960215153952955214334233883942317339984941049322253727823550793037617213665056536850592057156537673007629121026374979884024143942790565193144226141056493462573077948583397068586907260287376556754172015900762525650315042126123308447191272879015781506654121561296289486588789183068650214209027577858988298448202141673796665325564728146230202984713609840012007867043665225926624258199246888307638883300045114432151035082732573980056918729474279497786965260935773437429395562691260314520256744289776650185653093764425311267085184933515477448937788022258426513027249230268667394606283473951308491403235690031425214109221064783217625653444827446936836148078875458094105418334827590693771953629620321471792514939724488431436839895440436680716587285036526408947946180169158106832681204422598325294827926042582347779362193381879304284369954923979868555029366516270455601851906478035999799151535682415703179215025372236671302424018084965786268415266072565096698540833112511464279378415563050713336547263206809295948577444246133691499785280771786708091324144269498907945854661689503911954618096110425463863879616050628068766596875945177061448829972344440146458452811471852977587959088765876339149554140053745162024134476580978404121228320088638980581413762844368634872581541896919877154558123800776196276217074215977430813561586380902386199279674359078967551171041654853968569555279658379609156321119572127521883730258457576595557521372745053771587140542865903828324012558955416536239683950194051584978318106402866732264457856017182523194103516661604110639321734505925476456517881848924147679587717798790979836230004207227920457953616583866923131618574635031257294130654459996478505171614924886574365707597229029394327571125109259390497580848938569879662892087925882647104820733328911811018947924362122429286511999585336915324847944025711318236080563210529642610150099896338546446536189601994803313115700816130255571364150739455161579469957831899577293866268933860855526131725482115434337117453603596361999666031458111260396988064614569456509002032780935930354626959479224158050802091719360933730888925073962306661067549559385412017274686789716531528627310608532761167605952523148331973894447665654630865307972181164433413369260089481043448737579745715809163952815877051196418263682480635211558726846028977376971870528370266433180016802766673397373421186272457566398665742671848218046558031491002040355052619729051013579367493242350935498474539214760490067984380887499614227032720491914592899405107586167691270189294985650500105095086734995221216692748798595304559908750198103243129824923737487374270602100997442286993718599263717707907191699527967697081607120622119460472217999207034765806260227158520697175895084370513464603602473367917624079391575996917293137846362832197173703310358899486168179154941071378951507250449202373695674864044069654419577382727289924489961101517024226187114085201968432922323621203157311499361397469301203877483516238167690000917050339076774150565118827920079861456078412716903341224445261152510581389505006584884293700076103921613789802048111552319237770217025116202159114246685491195845239555596871752370529569726658788985517688522683620473684986889842525251313509976999107013947227005703750155067664575348126117154765894983941217441873174079640852154681426682620178590472776161993312351985657514102432152032202439052000713633694516489177355210517867144020855482413901763503402637399708780776128846780271654293172879614543197671069322201413008115104935600095020815420100117910165132817007487698848641689015348571324461280562532285445692357896907821774729949948519299071853598109298195081905956627286255311957143683922297723562731353122319743474990319186405271704310927458423010691197804483551025022406461690175140307206809670872621081987311783125319113641395782556850286449011452564086571411558875872656745206279477452406468154018136390884975432862597652792755043304356226195907806362427474263017237265525456702542391491330174674624597398066678985735846647917284163950646756156472910062588117494525233440210222745882638635051595915930174111579900598486471749728061256271243035654679747480363995206960961107334003177086824299114379290301493669218366001272246049927473571106559380650606675145632435483998306450208211515451766921593734264738702110362979991250851246809755929863198675490171915177868933353808462164330834347550909162446507260434856609741126301408317333558138756196857159985910212171868577215875574212864406518095858884767079259470578274833508235125283066434815118077630311292701129057962714053364049552532684840083062750979128012470875753998444572486317257366283946750369133104875527446073521144573407940702904420450055747726123465630349267311252269738375638885845173184501653017705757396902606406320278013606828862980161678166512823315026560811895220611514493480420005737919821618141520584968436293270938245267471600036060040500814839625421577468781251338596532974672887008261663116338821073667568753647729738357961300278466303948231714497373528573021918425200761682663462162019693685787642138406106719044018611206429882990421716323429493865208942286760423961284739370404402182922110154683375597121918851372888011372934712616262280787345274696909988018180185615815571192577937157567346526778423620996648703340638563264986375462986324228898627123112763856238183354974908699372813368940797277079554382479481558055981133280560169932129077755561295270238655782182762448466070347033455021478080258759732671469299476477672929678037558692291696082069690160163125253886741788514788376760140619591516741533266785758425617688571203179967270256487108873730614244203167332999731004519335713754272015191460093837081829385342392565960226916516877866815109960776028451750594296009734462281197836735169379552114961111389134252440904070149783902022450184552260301172240053838667647504765061396348016930146405036052960163414573930287527821203660111398193557761920165195276076633639042154510624861275977245523222961363154334135151084744094441928257182958814280631607597333014147564658347144888988886451733726862977122736932124370356146238331450408213192803445400315569007774678631552251987974232253604549381163571902361476552089565168009672615796713980348438519431988099354942410371240650017225682193462890324716640324386517992176831000652232304366041667652593392396960718525760386226498754879558158316865401017050423584404546437070932297057055989570905827495446695026621297938724164160834741340388430900365661893988440772666110488632332971917711797837702650934752487535038132111547304105204966696714406541052661707889887927982633794655428983655705726932998112149369784970619505156087624793027517371503698378108772825092518739694887300701507342920753190877651773316015166863868879398897356704128252001802517313769658851323336239495870713411919270431939180946562241549949761277347701342823311066445833366791714301186893443161186641753718388069692083068202369696564547988551870390950038591846456956752254492303253101828682736805466850615817260136629988188957947360465768862296144522303500552176665582729564254249386896513813523022848457359035587568306758836217135948035240999475339664555039155737002353113766172256109436462107589075145142672566768739287897034322790349492217634105430756412996201144924482576511591720233519103897483617542125737962349949639018565553316914501873557588618014390407035222562431288141714219845405051249494594397057119896366053012919935361637239834016598927037037512246160921158114504594854535249434707354871526287864376750467258826019388822394534509145517466640115065251376834224441056414738287335558519341804929181440230180332863192353087764572443771336251438411169606874679650439549095741935948335801559936929437235252963007341442205248833856723132124647850758155900209074773555488790826372132656420276301298261735791035604432410084114794117959757592213222224820447462694568178467971395863432388113218537715127392021007871773916496769332596145121172623524793691207403235292204899789012668875772187100081969181856210671658967989955716766511282305662673680734174359609472990055259737972104401695870373601478102551837036111390711705103524876760853286927461567534162829567006037090609167671039512833662781914299998196434886074733276973443505109951922264774878550151602883515835663438359158976023407605324308211228051384481267541996916541468119224753941090317167482048506377364061893340993760712495948248809951961529693857199984584432984823414431214536051455181212490490548982177387198372093750043441388555038885367497462691372923868021997014972442799804275335139708491111034622267974308302796494271459554551483634573157278651485084242800856711092726168552088063467761551853595665803764123123099707117476271704823841889069300814092130530090048808866642589949055798632799234157239014507715106073253651476554649180783398783406827453756382550604474266655601807668043182184730368336361552184052801291623513989008378779714971253642134202432059998187087882574275839116229879253931392033006817828162701928793079668430801453750520042329695025488203850833161227294643491427271527861729788649815939771886660782030804179361343934250007905833063945457351095189531815339979495809337860828629750439636538664114305689409121035119472203222199308508572796296460919539613766075824258111704365242113745134912007729584513522415261380105011122961690692096806095865872288338375038756057167298628236018162333062616679528858134695446932252161975938329544779064170014746915389934601941276157377793637794084085668765835312340782079775115849639728101118910124553848029313913669546736584431283808500830036887718239945431704717665692563081123506048426906208627761335702195809256642224693826463423199585857074368572689022469843682024312079775815297371510585335225066336361987603488702619729857740436939392548769587892839414713243794782123053178550359330642449915859273243363092651811852140598600847058730165424697484378208864774006993160165687261924018686233073180726030490304835203352135134317161262442832941029028868864840995710137743841034747583222022222640808688796715020405484804818831038127022660181141682103176575627711706386589883740720905993618164668611774961982916923356839841964363530906261563226502560484590835761263640293853617600915739392034780153921547842417503832309482436336392164657091788409863198317731949021137260322229657708677987313097020476011706506948475833760110409779832451294777097665666755103162046563666652003549497185000969541778550831374356212519954515958588820786720656758460921789617506531848544855370550681290153411542200113111453210436795435252113469153089378510318799171891243268339915853775166047450443159659671617757204723609906761535388766318561516356911188298189764475576143420748101204148320691724670678836571766571012883240549492271404801068407042490516542720551031372963671814565765603543184354603762226449939862996419743677700968677070871248094551057803480359932797687652568354935762221327954616145773708737407659991152635196960616998453313613859579736343440891648879675419720268063216954140763117271878179185453220183049258680184082837513153769513065437708514406760952630273606949986765223478023394223793467703935697675818665267754733992956124866428102692336476179596744555202178668791664158987758418744179979343350957066438184453830360383896430923175404304172506836490309185764047955538829647623992550183277018569637330593371582461031381052875995070961847645704028815558207271054348632353412323519071884853321788458885471495184715475806571185827899242831391928615626009028862431668501450944074823079815356565480953671786211237103946740231655766777504460168290186050994335696234736616665092601597618580635881002437249946413852752973826486122215371623449540753380740313588492156253446919805755893993703317523743832898905690014281289081375650816931095795667960603629217510351988286013857544855268456597546472535784759831555486479084845555974310100107780393745936414644200961633555821948636375126294890290153803218204283006724785359158987188961957915422515044969760832108417965765691314818231707859945116455362861457797573021910678440344498938316273941952228608153529468081128448873218190818431826380534120162602427752279432766208011326183000207290077864591428398081922037826288020786487423004982516376824052172294779188856052285849187448321535921867546167127523607780364413974626032350494906281869721664698419026842550820239852472570347341937945161589746841057757476892062239807446100985028782808948265999205511974680488589187448033488751149585522611730581415437511292255164855840458495392299277405387480641885186716113109461816266411863081361855458232161326383527539471273381933294015389564594992037954080621293243647195860870027199498510769384268102288677371867563877713479351267550275638714205166584160245921778031184138252369412245798025355529235886885613275216285846329372463830627809936643766362787120857924007975314482697900374117266612964513379008704714173412128965581278832262484393741651116995504274820365602632086673067734271726094005628065244627397638700643435777625648536829237464028347098180544298106764692453061313458752578332032888491484419659273892054928623907515287826092159855511777216737251305908670904348552863324261836978086919142395825440894009964251510380207314956409767608229349908913350797962959128312682838805382096874563083815435206369187871438813347401844112611805371792720603397360002832957693795142889005573584878169079860040553389224805373054710472785882060373414362297193126376737761147377632409112374630344690912812455976423047310787586327991557746883853617394904806032586091142224137300818160742522113961107687085572954030369950119559988919970178491677076610163251166224981951160205788136367049455503193527265338600397130005762996650533022680868416745617176990327677617867960792817245430375703678503251389918397664532874805752507015607311336449203680163557915785120080533777550960503142312838390859643198923815513345776231487688678811866560011828170631101405594874324506082430835754602085967460189926329210391315847521496212357678676109310279349988833108494013457203292748134703356837306183283559486950127259896873675024884358699210737640550764865269439628919749777292676008962317802910690023970086587462182770333900415920549603198403232634798323100269252522547806608841903050388603570776640263184047187232346249715027505461940929162536611105282024322449212502899980325890902200395159457932161748436359984006396604183359873625045212920518960865006101985102518888615813739237203544979100175433411156962850979590446098186362806685585733163671808843869963628646336405322351675701724425576649779710544270180334747385678458866104665761127772030572738586516373407726584351191645484256047760435609854063403651462290433839284631167992315345635472246644976976620195841834252565705645011328725548797795946289017800132068979927311390032292704352449493322494983134192461347324076479445133490374553641103338226408499876227037276935129233508819989625480435054433470553029356824709763127150452551762233935996585605623395475188045462422384136988372507543962796880179615479040347830679828057705306681970881379844038503857591044366335572256978883703993205098188322054041252728493513999064759020548996376424807754903476212658365734921254837834140905063995155251720588008539219332256898847190233620517807449865726317679464888428862931351127618053661433182128643617183131731132382677564510996894020304563993211189040994877206678746728985375114680122458830777743075154985097756547573150219221105777574446987838479828498062540633315051832450931409264730893637555028360155888569057580431152050162490842666933565141865032121033931264422114412963131046358119266732364252323537639141559009448939172093390281751223579171081405943540166857701653831993216788952732390185519176290636363716255594885080100359130814086912162475799061489577628144022897929868312925063421065901928348893673608297039616820918692681084873274044526092218947459042155142397738185009923411986781039698626480493308737581056726033686670240265487300039391184207925608809625937418530520921349070554309870885509603177365304769061185015948566453319272524601857486781507371876268853219492842735438566388838715070105903451200707454941941726286014136464640307457345294467511294348102818741299017263222735793166391709319303394606664595592060722997727770864006602777640065343416908724365658365081042284613816506832005198268006872471595136885972897704467611762678632238670602757032583437363696892678945691576573436523873032449214160765330631767275510005018684136716889708144512515819384992571854321499472411211175001011818967520116395434228704657932305016719322262379293245554995855160012004153637143019457735015693977463842813205702791758458717352868977054536807209790702255787638543644098941947416348082609808950819367499538734810994199517913983759724429515302542968002397067070568474877078250977974387987105152654929815066412198231561826522224755802839732597880914776010870065508261177639607598354724600959417595402095682026834001235509650359305798283464551564156718638487560396654072520825402695390244400609136447147604553142031848700917527284435755354574674888639134201133516154233459834465101295906679488098242331451820702434046692877298063023221717082960229809567974709426305038332327474063284240668525997262721498887607155564127541359890206503696901470466607981338724343960116119421284742817712907710198077990440600729970956302235548169001739725049140723136813349216482948778752662781940573042202402172353806106940770352546529209695466417528315813803034263982303601491975305170953045288691088487238041422658994054845021059837010316878403077334018916535976093770525860838815485562671014171397235891539488094665633295983246399618437541136550862935898334738041945327577028196033431244662894070238821058653650420825380770443437391810001958050029442574300475077102421575132209549545926733473554741588315763701599568753510716615797715371490417490291761308989575890677274950298413226831986159056449194878300405930477494377072140941130427177845589436166891170735124770439704773597073717090234168829579602744536892216229638847805293753199239986799834746561481325929712511028405823587244020815277786901805828149260449041663627632791584737584830898951943403656221910916522537483139546193454784397266417980158643869913653915171040058132670428343176933888110844197425771603992544221416038824561756998183232195921030260018266392516383977072322270763741730219239519770983044140643009537858708232886188050811069151225597891887064960034047858467425613240913599268248940677095489816370662351600992594447724380220969219479622265216776332643348493878577714342589204805380545229366342177211121589384415989701188343378746203261684727785074507997101685455922360593016820738936007854770407257490253272581375813556873842259965779222249982837769628015678963752387058038793704977549435226123703770768928480251390742579041974314110814569214370930542206814853877978130252863557651719442763187045873159201660652359772809956418748053311030349226772668785584942520324455949412084012736543553450292787480396580855406432519493819337058089150376614385937926233868716477662643053828047993666724567900613677018947734445746927355011009387233069105469330335194353224032887480050295808407092971074543949853247396624938208622853010246055458948617176529963902954514165900715279631359509497586486427781385025298998307426957957928304846287483325846816151332990276050783084441078704392356084709956322532200942899133906364749026490670610887797248398180511340667067861715271735338083365385875594116253703079067204906664875182730952593676928152408182493621694753750698275589653477155544048578996795616453793588276804682058412514719811485603048847877725547118976642028937482981758626699923578129882074343928156054394915851053678334670877579528668846088775855481869989361844125271113899489431662438247200613133913436073125764632530134813408471832435461959441935289965598741678110956205332678263368912489115233495880404905808591550161077996253049557445098916438089488159452303266772716580277083926819728293709453804694752575071662371505368238565144625649301927076732507820191166014134463529050194965487955002987019892994734643915768038814979884759001059340614197422698058024882907822164773176732228961594991944830218286960449420158830182726637625760528778200343067111529895120593262810093799925043119603095798291091953645920029484458176771623494643055998123007426151789745171250485688902178882886955289373178111287180524108611708810924263004433109188014289582993444082876820557107689449267470669749252135052616586422873432537028193953313085367485868125228852736915177569881958591702179857918241562394738918379818625992069901972279074859000583211938855381827023986526374897850545737016153566112738712845759690462659695615412931094358922874988155655499396790098006289648565379227722767605073979124062899329323439250553583031810999200732662859122356342557323458365784540994908708344322968599467750557826805873277338893305693027233293206176623509884432465290638634060488743589594415864478089927807906583243789461768747255368505950191437040118628538423538037519737238178958072103308396445513701460420259171571737705286754447381172860369036208686036098891161025045815572901691963556948262155055374718565550030512465406772776484097774436731607757674570707702348131623756507456674129860759911440096836609642296933080095844963835053556441430122399871898575772634740415097651162784966017475578024346882037996290972588443301588955982162017490034050128950486389227211897195404914722840276893478174058961645020404203336129994517617925884762719906398774758341470042309167615586749277421398727786641032299665904395070075830127799757542849669372065821802308045412856861472169042186990848147968931640806943651563313610094773487581258243008443458298778182471908696929277958097084616302087556243816966102147461196785582566352262926541408378385257298077309286593825981613412232981498558043568928732545769927356586210055875058372692879519831402785625256742382121852944325321955818809633830693376168100215956398453682895270569740567482190427164864566393356752177559872756809157186253379795750999348964220742438856066009635076078122777583805397385302317988315702334634210577514903602298720401204848439726946102371262175293643135512310039078151664817487206360407149545288680378249288821083851825740666568804452627552267488517127549223192448690393132715048854381703867228429463785938840947651066851629079153092764559626205894209138028233948200066846559390590835264839587321729449554107626447092803706911607986200565471552960027941549687603536658235691583500463219932376583969053014548008360153541408963452491517649876264737017298555582801865370126777927021112911301719053559765104357804016113722499760621653767458576880679630679378192751367356291326873978453295538272144797893607480885531521699806571440744201170050936054820297984940675315205838185209050008539016268583918441750240570452310876470431661862786043057113604071613533266897878410642657953897683749794264308124848384330650480866722547356969079233395997108250573459939122863910764232160886963618039949293309310816920264663962282273621978054328068700844385250742482080387554883653149172413661093731844271387158038829411396784297111054787783991427498237086564012172426068466526775134282591859411960263169620071893221677545482564974244956041447278716447579266608793381754002924052873177857491078079011940940150382319709839779648168373593484631213494608909773218568571264763069281517655780660159849944800420341825043847240090882350381623359506759604552308322760488185167032133973274016169191858152546140961378238614505229574525546382256997858192313718519828517718321716855422575521840947476857533583351926367726483575122772090097638208174394026017362876436618004837447588768990379772496732671341629456745140186843396165395856850437278865272238456726586366729904882565789197388004172375908852045938925622683542151353015275002110359561916359112132552877191532460078691379383475363400233088079042088901242945463112655171738934202389147951677773354403598248566278979118541725396410234212012928767927263401278213382196317941124913344483682991862377622670582294864526343146169606494443927322647705978202159238247638369485808077221138452979838094151022434825679494719089058268050136754390267881042607124873814712058415504114233397294009323552422068959959360654597561113968881704113928797447918807584346829781177822114953806355622314809298846775656382907811823395180398294499691174101261060434040449644749438563772326988943007297811852398190907171268080631854277358313476978196984768467190068297867337171646137091169527189210186045997933981978602230996253906847767942958270443514642320682526943795554245908229953110273386604170440130446319828836069450753738232377450228579834269242198730944635183419484155538809942343786444876900885285730106463201002659368364477353695232555042369817528758837715522036034603764896372604647329877895919605506026490709669016408708086358095401018004657464227352866969033433983467942876721867538873388669818161027262078513022016484493974727501286986241896868938535014992528616816519874843621354303123142916662915826833897060319662159159089141021417557569272842705042689541056726353321528811415230392638979429489345398491081776374400008930719250625375406410896581995494375387372984421527277174736488637709828359383902503794166631744341947184859480615970076275169777213514398307637534127546448694170216281078179057876875010124646327248593965639554105180341219626666294253366548922433735646478491451797640431478360214897393969255533482117268679811283081649499484727068330802276290527588580828969603535451545697293214550286572501478381405294031299307398778081613335230074611581802241173216138287497570648853072741188726662241817476304511840854391289004077520322437174411207231944062683777031212924819796703809310806552567761248672964802845864583989759130793948609307975019134300025632617860029142868442966668287315765857983287812529745115269780666667521903172279058698694990475732094035998127065766564762365542616725960056372920040972578799289777936989828586197481129292461303717089812685747234120871841014848489204269853098675681932557016855485850213828152297319232084781376547250160390708309917758046028789716480496680671728915799200078701134371913980620851766533509000597702134740978659900749222871892326151217823347301368856785694221617138684221284313234817508351026416607243897229554958507844422665719696117149338052288969759483344566367190394873211373791535365541178571600864280608218729740978049607688069959181107275003990646992205766111892548148101466428874761409912398116991748149102781272533642860767298529174922051358224669632326129918836924541009982477429683221190087822875869260997003071849053714039397724422988916113010611037750045764716579649046143287572687261030024715716078321572655208593451729664564400608879786253201055838629272299978432490776574068658203705522247903361667693097480329959006822873279188677865464380188372024644613501198148063360800920785762789670549975830226112862869105130785135167380047732516521606060923387183459198266385976648255248308118225537927928882840318603231292990924522367481550145637783792061858999702389808239928222426197695033697157366698519601080942443673578641220296461708020672324562218710769573416100562170216578719452059541379411333072797454517471240869112570361546043139604323578161753201677956199888170844116987786770674070236709800623429200289829996072636022667602661284160182961703481887767768311813898653373718115089099213661191426298035745192911981973043533144935474406863324467468099118768860252103283460747398663915268756321991855866968977922784486661454864166221036616439002434541316546672707726763981755026043879229313763586720559139530080886361887864202973010906691390998546738187564941163994927218666491254909597217126802782702847241220308293902430324426597378834157514105602459951459909934466690277463062518824252479795767989563464476963981856904216599151968238957900483757265088288007629208561763873191793825022496759665073259579008092597494237847530887603477166948544624828636248049898815812081450514922957774066570169406493267974091281146025599500155163304334675541571513710341727447654640433279804101472477517547084184991269790139437834653968365134284043983369115991596568642792768555517239283807785886410374393768087781821322320306670513194975169169992166595269569112028126406265851950846955281109841251984764414812948491236336951420285624385261323784275467088844074085683790020507310179642870047148123845036790005381952837415143649107356543901653081575970354364488949726527089603375167711000531671264872323129866767693024585401319403621361223003864933961467246919425667652525589949632729940664624881958511466055004703977002133972015730950963231243745998115840889248793127607550935088542869098606013981928059062847118075997854253801545512220677905458766295864277162959323065737116816717153214838553837882833686600523612566812646052309084400324809453547821972983167807613186957667722335036334855485102211942094851235350141031122756621401285153139827853470636553325162008485890308510612374918406043130240581731211328344968844004352396350175936885219819418797506112653596510878614439989798632793402944595805300116757529419559556567664747063904163790002458725082360033850413763638915328091938320864192355849654272562875043539608326809401415606426048636657862987597292927358944197620326790174755023662623088355986579785057945468267078063018942989328495134676712498304519254116626115122200134620009076951549305813165651990152329354519089871518134288517364350707295546015830880605983767909852379837398513270599021167565792684692051647108204591074242745007497089768825358890476977047066520964991178737680396864643024228565132443289039987628100529780760244604375070955456213654894514817396510870645913939739275221408902498297222123546171049709537105417674350300364628155172626979275619408612196249739269782194856446932611386266855222455913975306787225289048742979030651910487771194934466452350891756963758001121354622509542407546425245273632151978120043874495316104551753559445855030872310197962262225534196207123625415943568760743851764208052281998347165710667926424606007547933933177873426029871588181255539352198952882430477810740780224225984840718513528951221875262996080940706423268526949903880792268950194644051210258791504664889847643521664893893341405736875693841456515047643339804881813126962224549142598453466576537194788271647178389717497022027579624449728755157801053283086525313649593997565266091999701710930456845901809014438347415306257511635877712883255239908693155566831781442800858850167206023483907579219695436184217533834031224341679924648973817205698001019690185414825541271773792470474091683173013918044717348172155196453424219601575152036332657997084799696114167856671053259789727269500075620856753197582384218832728399697435581919584936058119676024228498979462607754512666413047156338910860708216280253538117790442589566362605486516726170337082967924597393758656932092877231491689580955018076418262686330881393544995492302299499530932639482632406890803796962766022684603426639938654630264002725271718260904287761228763977313134554698482159482599651467754427686726417838653548084445147106971778002070437664682558234593074008466146155371523062834445840871981160325677753461231149935886882401827232019942285663419009013774863546754838585918535503161817405430533032341579900822527967469208290452307704365172538713774590607156202215540100093878954150569742824808161399365890502819599184205669560888151619117867785894326904491242703798169704876369815237465571756568462214298283681221172996657967163192416340284213177159696323398344558261339135132199283906083445463773269359498478944610870050427637964794599812172279902668730372427012050323512549073532204148132430341724547269678138758547164367507946365659106041796632468926696870237562078953991086761437922331532088233636767583253950169502514093406222762984413075642962252333083225454393861384156952067052032631289941460240271428289028496611708758211196404288714765011154761519428723802783481494684609099063546358675469672712768530508245208102465490826586369781430071826692096588836007156383810593695357294138927413604159126822212031677895535575098230160928830768518102764799745419553874673221360957345490410994890982571819572335943231533969224256629223052011029416506766018282487874301230195152719617291911920497799447878295142290842823083149475733234331998806058705724099724366750763571975419104646167829460089691015258291696492792120521186841338717907172710942294006412066035142127430973794633389785648272815072423248890752100839164894321201400458447858650583326596650166037580571791356142076146316017091407278182261670830128646683429642616462775569213705947019811914399965070871221010013969774699709607037230103634736727597096432911363358811161068299811978037164374806962052070485461074558621733639014033002720358264639292920658228427988231624840571946358909261530791170451836715097007731209688120786601915871856449542663953990969007516719843376391959561658439353280407258164061407275696484688699058859521182447021412696377068946690405804629644662466356247866350496222846937639440005967768861483303094807342690750813206183910672889381609760665910110403231059694052261243258131979142634456340800848831054787963967851299707061663997482267000837663962319335715669103994955267407703708384530658405370603118475051965572150244372596378565397025818375896313608101621951494941903868780846245019110636193097906854967936978340409062334360280830989587925354258464682593352484421273947818472099278858698281322578463710292643960050383884741619731928167617377083827225755813071521748656871223786807069086389679833380159429385821999157461425543259322955019344780670146473847143061534487220888226647093180008191552978219459885232568862428971886134600979352775114396585644861890738412700463269165050704451324896888439465916049607932592508334564974703706768847944755464461966124046621259057266463727078553177857189203010318057050653163181135791934020182031255184904633102650737182726376612306026325446211175175749256304193585774473189174140370997689119380781107863443989806991037212079157642659703170648307552369075272881141478333493909998707197738666247054372362392032892995057512986863905535077471784152467514788902323548559500810877096703245303190631835521417882666384329340279815235287924306583444843826626091576962826724798453371023423441761637827751793672756664628953057993469801501918864573373348528483473109951521470062795559538748561838759824162736030584525471905158800334806497185517211081630090018270259607064181205297701180160572445509580457698933121958386833594526549444775939450014725909663305484877856922395424398375400975954768982406603572528077827332857994467491475059838020627811771401950629245477113158511238019488871150956972185828927745806090936904940615373892338122220063416664202686378466910327347047418060334087549376678248133998904524815212525567366096416884499500115942346361292012733852684865088699973121253971226907908592432798983596539167582855240039618808246656905246469823068441990229792478307886118742218158469063552662623282399021818233720423832567180444595776718452577806154735234791700772793037252319806950914576892489976109929725427283011199420716751168582012112793066674787025147109718459826532585536330347529803087590736951624892230068119043563550424928084850822201032994882199902539508559417522950315436313626972027630035409523770249826165790746056684901427891268233098916459866726898260997770677254804917288859603489521977508813424779069899895122005076000840968123218391036759709528117916951134383304129834703638368824658538486089954709377172578366487802907366709222024569669487219744748019572152073588687419793452966823832539528522767780467517016982697684158731808630411145811485511955565781268546078624350362343973617302976582322036280932852096747146806246094378751599657388399673180200621272088666009109751788938891006200343630403036780321027203946519613281605577195937562416084011446089539940325235244484377933789764027288326769527270023489131802388659889652767201842352815943381263864697577891546538634675562251409190670203481377082719610606003664073107139849867482399899073437927741478423116869940035021920359177889452302445488640152750304503784099984305390949820674640255576018459306630324725474318903052188625882372386245093775580540217504038848651975580112587671740416665459419895598902341469811461130420070854323421808883917310708756354444296536762513244764535111459726119721159363902520785245684235310672200981859028135975091211053094471413957303228042211752453430663129019577350717572251817705157245594935728816863218260351575690966727837534959346006222156617113883126771034335781303869575584827207321968795873015783896846463990711719549555027925087755667026301806718086555273198493425213405306338636167188210583280353147076206793143289194042096639732713468089863885897499826450491001609804402966195742331114102774163555794589386465559385780360241300603350204143314328231197051014855448604568973104901691333914706495452027035037853143625027286954031636278403611066434246025999633614998322333860487210819650897511457571102562661006976957259843545242465344739901145746017070291344482325203221261966655508626897933452096258353042975411481397997435049042858526046320599819714894335963015058483770776748299290887911137688863454829306750673360580368328784904066667211805400217581136714189784887151844410844420552490082681891197971338957322166717231535459095857944774695369820384642436977002320070055137332509167588550061632538215601393866573100963406026934621439431010506452854434276969969737652480197547121536899613539622026724892253947613474738118905926039904494265395374103634273316852633459458779449173374770174326715842826401376459381363400934254007233172643843225068255249873967939174264466074326821452254346658109741287117454621868889409884111505739082210997265257095956315312516905633351938544232718175929300851382239915586901826567257567114465077847087147794565522477019453473848155057177232042827762499235092896225338129416730419025394058758225227950235460080100908692157562640009326254466330021569019470026561376570676624706841935286540771500189119321634703942079847156220386404112307714237565342248502308526000329471123255531166151874790920878605335357933625526014779834503055147120922129146529558224615984670006498502904286131448748337365887037174674919707357861269660062558169865525285722432214950660923133195432039326877441489205106620012735695383124800887053380499271447486133898033561359649122745620523133205767842072073702293890779318657070901252733000737117390929804144198593343851873477789441694686282498477816750574052911443856181405279489313762812355621370967548393281975563667749070297371682278275645328131581618286714101182157696182796933044616231522885551065037384755914915309149932598447242765636231377074872715971395947253012878481811330589404646358540400598289131000922511790870142163236129645937312222478824100010185329373970500127488061190796013470493959159575235150109139632423033064424739210619200502152900953831011471959617888523223784930130969899909984158887784944082098745970057286991673579283894756698699779651016123502368869291593013250954647365901992153503996458587079604383341978065119695113993618374560152600956186813235122535111520640825167807618773414484078791254667213786191733123636940625350082313918793442466796068008316766579917719659673291129612098251512772132834693934226056710207561410663197634363497117943493846949463415133858531521294139092697478885841613541573963898377268267492757889897020756432180120300005213150706131776239598178777591530341203235818092219401419916950308380469619643492652285921535502929119499114042106742191243260121523481251778936656924811852119762408669521219154107557819998858907623924040691708629765490352837709612357888590172506190856649333535666372379966573537211985628564199053270133894045087443031542692773443629770350870186034137624279706274058192871050850631922742704632480416096026839867356004263806635915607768313343626188107525349217422363784689636773959415431053070161512334504416554519570878877552524796578050811572062920600117795733377112556946703541675846685733512618301316689659009719141129882233973127337422740849075899579346533962107907809820247537944376862433688696514357858446074629240323318375929980885170303527227010240295681309970425766124349896091631386158980993980661499373393737745636254582300530914765182611699715418621425762945167696025609122398067649246678538739095044319768471543287591617085340871592893387618105908722720788328731761556352507500677290359701189146291240237255711287135383534843478477397109926059302319770565293382853928242099627693973077263600225577333962682925771916734303307028897344032336065155212352073090900855490888877361507756045398195880736171820406305330210310554084739116265595629800837370093321007690645390116061419437621128155502986800015468179264736550377865724363963406192191675369270969818678917721419501856815875485999579148757443309915668039940297543972864246132267561861557382174840885444517806990233066493300578255172235472508463447889282473784275835553006121021385970660003279649618599345450821300182577412096764981709983560758329377483389490566458968786828966627631947483811937867862936356923562032995784668883783318513692945856351736042988359691597259579238633107558793763971340298667571722103358069308135230247873773091748024263251865952094135930020190822270192164472539259061578845466645027807393637002745884012154579387579995218526826740224356175831347797565579590597136904513470585253922059286259942182728100104942048031370271233474111152432619653259787239275899786685280974574411196036031822242122424789924204310649645574629559813511020345001902445861425344951234973484763414604884832835473316787347372560282772959180729055661998628653975567472783783939188533758546620496942278980711348397729725210213238636072451192100370344534697411738505192665222615725530545879823407849898688315629470121698768606295003928093213301518569867337855223260881757555913038340615223428059530732349432289314708060739370219868923166102845810923787349380064365137845021526368005182567881483095935108741693851128248584308012092232667178914293691214220303484236745654362915782430259500571814490369469482705177632035359905205312453617382834220953096383230636377434311573284313963337459811083573730738554792476222372396727618507818129505144403639922537019350659288629444445332010021526562639748027857315912722809981281559806280306219789765670555699186839728796106106140610677768063976938356650188981655265940900137618670972603266291850734892986592043015740867674228965132108104987604885193973075117305400999052376800793878661756773024711780146259823979174322569619377182323565676937607493756017052085774083431310327235900744578010447958771925642408854767417927302104809516661186866776066390396141749678174119719729696685670560735283042326610312548731160296589207219331857542850744158302304080982817932014904827524617817385734477328004672535103228494834569777382655445409167454850123767058019902746806161130608807923210489607691712405741003161718961360195744789976093054705935173147426588231663131980619635253131250027182749409237604416448007231738072382913850474019230019829778567797756715341130741792072683148960612677923744109182556630301774469857848146778631722357631881767853788661465845682771906743625236347943802676009284200340386828580646534924352870897891137067167116329200976106571144247510985713507968732048126021446024451386900349823707261622181043298521951482352704594736918226280862675122977678150077024008155153748421849160302727329401353597420540352533105539583621010746823166133556554647921910227218704851733967468163515928030405192757023772287199725870144543110893421743407813072872857081366328827029432136412418417759007868288581228701204567513544834310189449793502802676945459422590655014773354145650094823841021757269830703013154106219704718896914610463558691311184953566657372038574714346742866771853294911170845297556429313988029318972219119598604470812459187606764815755388137940048394983247086130204760499281080412470303544320842534425187565977814214093575091225591163279467391346024981248469655296069342162429088416958905698296366826254026171037292928204624314220713354819056719519415134709335799726362278536296428586249370038896527341468292672893261061033398090924253436592185611480820013197454346739944350942522018810303523658708769953949824666457692145398781032360297204343288187629251736268523874157495045398687223874643685566940051275667054673448408968755536063083098848417201736890015797067138522658820306102457680037031202597907824290873905140583425975853162803088477285241462652537545324100670064799041523509228581007830490117309673552607644440900227567530926974794199175339409499312499230673958311358797516009554690612744252123067899896749237398725751010852014293591356506259600469401168772935051496317346320273457800921428339107920232375827780340700606341329770944642770183970944536529703275774608692747179510573918403704821956589697590620508267158129798679818708518474903907329085155209829380989283710022034231574021687108795012585705049394724038772441970039963856185645235391259894092053252802716586490725842948824713375190180497380658841137281247594908380415213872691265958804112131361829182090633581626141194381999762279342584893395310616416342265560833724081443460027487410309217353978617895022217128981891719291650940973395513698258434880374389295015341061200562860346018073444035982358515294416216505794791125233911980532682113684075176324380989985569087302538717010911609714184276833445995173714343463000710493303270425315039398620755368446747352579965381269508706764509432087591624258234114734261101431297218490934121575142172857788990844740422829362018139468979186536667167499703878398285883202736096923441515317237139986230592711163106408217964805201838277213530718273841523875603810068471370300925282973077897044536545870573047643456188764428906253974491892616306520406515383275664759443524283353164027444702162529931619452152521354272082601152634952051740235368626871996230313936730165223916541203347342789871588272504929965572608761551925124345668997274270889653810733567786383488793828103612091581171370389592721736494587889924118542717027600894924264756034661372901241351640989984338768692557390411144039421994370126813418968468139568483202352519410645449784113504264232280880466149582310708245148812775013246838539996048715885408637072879084228750645902480147073338508111007435475338001985390417076949720533815372227268409289067427896340325552475742835138417134358330896485984575299458538729689029477869560874008805083127172190032180335981184346584606121866562403008603421783718851059567937214757967659102994522143545190629648435249865081964995972191572975619100706849293527080921874252205518670766006468521988687567566964116432459357199997666355507553051914662590961934411145877849722226526878561089882847384367398729784771246137866557961963871152397266197214888268187035211878428771106403544228610917852504840194608352903093335661329252756524555617024474229065961341364320153060089936020341471734301749150800553227672786363863802077031118939984526083287048606534559519103690125177348988372125702631495421057899353358179259918365854204377417237598779258078205763677305652730693778148904355187032832281557970631987756495987387664917511839698511714269875142929229629775566018976828938600660266137331064074701350368808988835314150035243542729470027874781527293133215455005083387029321056442333613332401575076827941859971501213449240336118253655269855319652575045360652017130136594627940227326605260982529229153490628146730344733324936902851082398659604098040885699020024165352401016508045005178200008659697224291753968485541856088744932447639009748632863671880976886192808512894907856257110054162040991228491682055225780110272415828525554161842232265875456781564271146330978683788474967013477718515807622381857570173638968889295714525631880809717605311172872035488684312432744358402844021711299358568293651524211006425980314685145131669308941019632207066097619970111620956945897402664533977979892342705372338376977924696331439136719655605754521669816241447783308459801332446770226616747224500572369875756907241911525070157750414054225972753419575329065292257069281654418929280948410574631823771459928098017301787622991497534547203528842915116079502226854070203055338430531761136479784583060102316185063873435877370648106087253927413430486504238222914030154928031205469377702019727059237771059463692510168458312246252576713855307522350838439638351517441736057863140940939071620324469515678904415178008112488783350879829943029527954565326190152615690589883178012231332068184549626699645010273524296916790162731661381373551968776372627727499160291158882046589603905893937477715737536828992824641523567181858582845428189549743682414278831673515372170067917177048302648749342453778015024429952118892443315601551262254075222867825301997603201343452285297773073334729279628769477580806746369334663445516632691222621419550479172164399413672050681503787791467629294161233569741997005434742031321831536490534966775686533967670040514602947047018821034976530541170357680631255887665956828007112191848148170316006429536696929324740187705055762763728981744019553282773037435588993617065857656558483093521485809361381670809080433255152081057403199552247399427361469409511405933019249214167670483842415091242238373466148672783515258303469579229516868187894574625348672214126086829456747238168607995220827732019509246018080895273874225513287157343300942941528902129326264491961219392505225313043019755487671736188864821587166657261800724869732664514770792576279557428981233980447358192362268948260658550895098797776806279772961706347225270351378563291690716526826223687204068966708236285187426280018943244002393454276686890341752948971437847199154696831182052988976480242831544210655117694056283605081851413778481201035626971715547322184357820193975483755478367832965649943214756735529318408346021915172109328412909059857579255970710693119066753846192140542075829077988194663466190985357479640568586350063021240064576805057121235253887329190878352225671446309463452861021948426868792712807313249464139035126294086799231057743742698248924574877051049898723723611711574634994713152837696193422951586330563237828823096296082391911695184761535164715872193962579625975756779385196862598889813622664178991993051967383268529776121826683261474837749689257454017422520916908661529124979169916257374111892820682117807020801954776706223582143216986106105441937218240686336278856015075559362283381656140789536982818218711254322256654025889054170854721903705911180496859092387690589314977265289770590051813773719882704422733562055015122382681867405694900020119709502041751975318307337182931496711170174520000129633215852964325598853105455628139944565283851148416974073396730411767195646276763678909690537761063992992199908761245663959032653431941989798692324988321607768786547320133016337852529933983635552368901746017807058685656387907163408167319574305768860103614763771916574613412804745256045682451254820329447493369210546675263649103622905724965316075118628992019701895404494951921661595306838860842272500607446722155189141017623872699228992504118723190675162789182824379131132584809196253868497980393300808890018591634089766471371377244887445041100861970507372515504221438174636745222074733629086165835178870006506787387217002410993839080368029973619514810653855001402321681882786538342736648822101419930757703542197865886192292300286254194306593817614574413816274746921759823420219253366888390795220204382094122882810602262048843996589158167196884225301404739953525635228652758120968925610807926450065615844937123359052926679206377774761032704559239707013658872332942798779440393839584028565545065944813264814072916854239862471567794871400883431482228407501084458143190517401603011003689815990484063993772595729367201901276978629767385385577634977156787613045346089178627077005408815179615519259405384084854165885431757242488388452514614983913631410927973294031271700836461648644205986922980085975295790446939427070861142709498223356328651032854766889726814534139564158294142490753246769675237417373899557725473386896905158513392664243107689836679322659243310085006412343658778240175520910625763970540848269691683168732832175581359881028212965143870375160410541044631469171558339699949508054705486109770545461588804075354620061979993715927165415194434131198653612543618540167050102138111441686991336019225531563801380556861363805057894141272499173021325224420957208535489205414863088703089777780231367768545974666289222103080012669572633579394167605233385225034515436841452185797564567936583705721758195231250487923855421450716673755755827513746366011646093135194814181423144604485526570263348824732088774733701935380913572938854808208716208741992020284150974078003684540135546222847370862807820114535222678499070735789527520600635809716270883672100379234884568947490664423508333985021331428021176176093610657331177928191078033828654393189670489038381262801251705401204513251079973959955901216013823876051392360417736337024009343998813517261266649923715985347601108237527351875316128092891829179584687760980923062516857266988803096287287540409066602784747557532057965076645857740949597599744512885244909555946141495259606215583488957244939141125549842323423908308557520832151098004000687354846477870655735680760205696880319018461349765914871778742821206108564410349103088554491753428714468167781086521144781817281879854010076981549440517473716656336875795324831179515934219630591980148782380613207681311760548123725586997915786478166937804438475706357665084922882735450285906054095262688698363003562922412355062169438410729376969306434840401324960866542189636265945959296410717665311399904052025338486795611024257459256385319127477735125673587082323581751087369437197727968879159461724992698687884264393114742181339341604073436001331621754645171656353866837507512666903552703116390973318236980192296875979352299784989853098125757152965139107294966362273396996145237590286824755467960454487069983268732507233933028250705739178763522694915942554676226509330908641465403142989112649507895540207112370498627707668643576867915485609510269108476375206536791711438010997184971027722243019882952335931495920369435128327444154640760514502056065818043229040595929525363633739337688818821109711662817821847367260502993901067036168099855186160983501365530172779212999101775302692592167458608282444920609269024733734700875907383186763789293235360443319487904392800471006827673918806661317655971035159213294955524177499348481573859134283704901027645569466937053886769423710182068658978817847080956236814052733496759405181732514113255533615102152639366325042766876975700888892090699604982339776039161307005973527000947141321564654499062083689730565102906039360962300310835369940228668435260714934530760459116846943384447239115557797651080653685016956458155726537930837275280041796727760059651566620860274313857976566462159212616701404615920437643795171374744196514807933942029585876731238510542367810459537311498350991134080707143598333503762830118183535517471864543394224253356100556896604912490304479032373030710582418384552219806918432708688378096215253907199464267065658433233466683187882448461618901872094817411192845556590066213625577192905047728160788997607778272626779989992925852199929373114006673164411235966582884176132626554300882311062399216669129561453335682840749066624623262505022632966708685845244678637477345676505495324595336950835549786178555795636756640022661643187716581029350183185253691419652813445479363695709113365689815366794607978381815156882707487041120287981420159531215706169377344168252335315331428435223087878429962444370600566324399095659940257760726800005316153379717069852731710606906763826691248959794226039525542975129096427913296215042563715907183732469229211477230276515342875944250923125604957432908046961486844414498430732105365314756884515704229669260377778700103868189245835061040561345228004464243294566627109338791409146716102749677785740745770968669031319784813164949747825282437679563473048838911336459639454591761071750229837872329430839345333590086484465356397767089597555128306056209959942902698800413458200757809666747253633789690442957687291915113988516664032059347728518501613259175476281052415257998631744025306167189598616692107923860716880139448354730992505495071786351568433954204349077812488952558533314492039873019917291886008172834843428470410132711352903919369158224943858854065055887726338257701714079087691723174586411894378471558412795190829741116087933298578061781462832432023731700216117441208126101731688360607544682460481073524701073781137590881223127644649809424317846371460118958250714786791212121546767185176383729175309055115233443964482147703601975210297663714571599101583935277740723318005545146962776550206065716593478341024510890905446556109711814261683892952720446583483210086738538080317512739169770320838006746010745771007565104775432723157413294856677002541851783627709027829120893615017167809640020447903977213238795242707762575589592884713320357417080994237360813509885119984383568713991502598171214335330439491639627814369294966929219900778812910646822867681940292745444221849647366209768592602317512611342465651403858859842836512249320903412005814176395549455949075064819582508118484185379697581193813910142876411984708246832572222842315259349112150951339622135044497857963592424483145817965663022036100818486539716352067905386042162775416364344414475948516044620002923735997024530298103822114928116840809456838719229645535529254569868624134814236301914799163676255378810764286238063018058104935190053805547748007595628207114107602437181424268932147367814448945243520227833571156628823641236826488410579791642618512699976096026539001330956435684281885647675573951385998280276988639989633668532554914269631181706420186639424304112233264448424876644666671626414124268102672012712581205068069907894966155620201727057327604413684604374754422288848625234237028990847762804978151448310081360174350951678932269643563893019513626948509995398966458960495729430217622190909535711125086198880732413607786916898677984101168974077217116246951466028970863701749767653424388755025020161167071335896324792430375728324774825801780969162550032198791934463435079876450424147587777757076788427658931717737609737093758278081042721202996162504919559374798823665732977408710423506557990314320882705884526972527925102229443204703606132979782862888874873145827176494749924219259883448964350632866743058615600361279330178110884693435033524898237615678564846941853088090988132760990993503663727327012960200381705085362870156644674392820664132273488344657974799192575538691778363366139026445620448319874123788413214674426080409770157518282315425713250956912211128162279913518345209316191741128511885472930517499491958080044716159364590615532712231365817979192975138646873694200071866761085607458939482332001059606036657907518587771742473306162158775309246526189099815250391702438472209070711835395506354843704412049823252956396369836625825037134328830734250589521653773068455074818802658914033439788025924077524770248788712973588431920346473613420586346829233839416563512851257043233503366784591518807003840578177781018306991852376978252787619905083380606628625493604097125182688514326044895013619124804887674331091007889233135169766155904420626171715274809485545393735169394897073040128826859696600241638360135158697242736955370213896833460907006658572974191420111378867827859101648476263223527536319287631114359671659369467806179948926624790573846672613395936984588637559287496161260067023580449557817635336129110460131241538918608717361427281264166638091889483877978019133263868502638363908641727488660451337609798737756613361815216262594140081426276876004011804945869934544798275256592277545133954953914626709480118667736572569061279475778763705595592461431110026079577567923308854357888534545186457217795031422121367466177793497911707770978599255379358787684220822855077911757893452502586654466569383322585354325711049735441033131951058985770727559750533811448992705274496686056113865151578220576935380706758921014750855222377889828378212701605905248410560593783021152418633574348103228621542923151056717115762559175788264252875108934638293404474211247587768577276618362818966441821006328882203032120722173108607626317865940811540311248123993817780833124587367587646903108559383685711529008830831352352555276693453975310753617627568186492855964978251229439081591151493886980471429521528419436675730296743175845668919284214085710767704262247769655863756635794432219504755716577418122308718798590861897294245128208137782027955000613670317043748700914281487098884562636017550532680850293277861142652029188682192770937678863431743619261481419716919458779327882100334647346766945581033577938722059638029084634536092773201769621129113141399081888903184912414855552314368229949023492167643935474398348192657005556060050461707973805932329344794600623168306033578791887819058901354049586752576100814716699425925651590224206425918211423619972842993065122396809997867956552228112487117241125398316461055539170610091964940063195122197559142822727833360255374436543206796089143019994700619403957965795008695865556941204684795483874398461960565659492871877879293358315176371892086115995229321154321784848810019559662490637545022873750576470980209648942283376355707049936685735701672045412635606824436562939394559351100348010710335414167830547369096295445715289201702470857679328333098833519726286495260712864554198898331456731988966243441714745927014361991386706904523307984827750597522683625051592301993722662850828322817316603541891252944594066634142042888006037099953614580537540785411007609074528039625719748941036858297040783657809667477266256386322241118513255863784228754355390995197486825247279692706129398040608923033490840159698631792102930870169289353554424372000119815913185196055353138964464416353817663601084224968177064571942260419341659234698572656916772543842662378399042117172620936149989277965656348439763589665733750202663578946195626399992610655516706575866344553780774010621721292568736969915485919325762561434886743682833504603598616646059096069608880093154865581828047135282552789968459004340693201484691294038429358369354144204853806030663458542123627154550819314169301145305249605697929167522493485588925318893988156986633025282757124498019484542257346018717326433684205986821892803043936188868753983123882654089574048778638580588337838326764957314360099556105691056777610845584456752986298432303578958567336368432051744523372291886146495984413352515805219171278101275755319998022874621840116920970606400067083882766620261550675803516755706548870528338074150039293792253809187709274831361665929965669072153154883578957487034469515230716849330810582392386510998139130405118121771777022346298390288168424454352969009619981478172179855819774055055313751490535448056797798260788523723395463352722250517268957479920230441783375441354851374102469073786738761732885861940848785154216775626784732447716780016020157900176552428733988390334581876153935962684926744469292167719855424173373936386624219175995090244492135149306972649945695734729998382482839163088013167069715297710081517843168449150939298564087796802978955420688013653277289194336204182512352443443266295292877281737703239554415466202904504378514339209864739900694269777035604515998124953640405310260190507603251924951410477850623415220890013050526143666870111686009515494577927888554939905794339324315786593109278592628469877151970682227099486318151072443681877212963018781026648367944456687984107500732392989794015386869565863279535722181386230654020046752225636724512550891059257945206738447082985953486140151247901823210615691785612455829317138734771857195205697807530801623020179771192305353090751784234272925336724818960355868604720260980182895031028039133014513427222212054853488235954108542628702015813133994608702561498894542086727708244636757532816813641398927729813063383184838892345536451026336442527974905655720107487653602734647710044840111897864673995419584110718510987340289875812068701502354472068447774670535754112127259656529141451861586220416274628469930957056065525819156830042595628246686871902111264133234435945998336459981893205517448965117445373831020881469983723479747837777941936409415769367227622377580431873330785942332629607046749270682349341946630031257229722231553029889343889687762171204174322937524373298258702318727651131788222692519835150564660089649795330723888571323601653953477269211877158722362043310100927367021584421707717849977894823303697420323749802640146360192165259960537323501148192109332824516177304787686544490759910990467292126092484670637228978550597933461063910315549558743694130095721092848103796481810595786817056723419821284332370628162500820237300309670233600932577849622064408478502338281385941460193247085303736218610066296284850469797791090836303255455377772185694107881406606977695909330858943498129301389659890146809967895129960651660172245564307074959271626466589705101349572103643687462623874090890672212969799325112114886343602042372161215808831146885923884443801616400460280982225860460648448229811758717698483367615921789838280217041268007657972004081670599992874158936240822429694616145036213138165256008959887455609886477268180909143856947796958459840037782959590126712729936354828805950863983954912911738448229410989118517998817941541792484790320345450785199001446000126069972614934557762565638181018650294654363904933902964987900922103907372142180512539329707054850833410118329380428153983989846265618039178986726210349722041167955990201348138387439680593505690817212383637495794472794377470247143468209746175366856240326877025194477772627428991818376379358242583731031169629107798743797289576935091252236606455749375742076608434067715103364520736483708809030495362641685905731004251616662375552506058930492882628796339060424178063956861604987050500297266250649299529272915708074889244833067351258741721696994374678135832126043629515942366916046392187931345842137734972345728287206222127648827663426746701526740984574101982853084531911006344223665849703862389205633042858404232548219332459569823360679931728301174475948403201311385302298872855492147637219567765338534601925997205101321514314908577827901279847410980398045687439663848239136744383813028735921167537331665823555320796802422923181332530629841989467790450964487320320766950633613222990154274778636858303577968806267824052235213518799342206213654359662739672722337029052541587296270015126818955679857470569670507241426443669189581962602226865618113872159340052983769986035399726380257745603228717821947206043420646574896186609723050486477392723002432476726797510425609468267559027071545905756432678054476609500944661675860911091989671279668067600938875467829744455038653712586208357435571204836379637874887208643578048335951374196557394013953847852047111263935611126835348204263537795267670067379047844074494101484434832219212555246319865309733168684628588734861919038284576816501839735256027715324630091952434203237609874837720057309645145980635891148212239699768082403308015527705536132882280134367189802722495058973991518339315301676253339699735182112437888162805473361009501221302547341159536762047572515123118186744855630218356377635327601545330671290798976359225634041216095303295544370492799787075238792094851044403720642322781839290535967879072152621198833582492649491052885579932585181557516608093186369398802818692467159496543905019838030463034573646398340088427097642115205942522581178596595773028515639858673066124191388659903717497371656915963003690747390881178149773285089909341208055796315100787627612062627985355743758532480693158318151648863679830832419781886019904678955666647226879716827211043200676543045262440199923240088994366054788051121343637695393222799376065543637869408630464890359026404401787531799197938716219642922147847900003736589345693370958305837719046852480387115718480494017991664055905778732054825761529475376856067826307426230857633841867144200261906776991500768282012516236216093844531180993152061553608811070204647324097315087977494865581813256018224073910943428846472781014954271427269038535272141882937537881578233666505291294188247881861235697184816454821293596783213305348913716802581852610982413010888800720291171683099797452052457433621646860233685139033924646799812072673455101215346397816814065550785279889187773907475596748104451987599638962165111596172266056012383215339398484934877920991579893279024868744143654342104587700787573078287910560204824248651981970990751516670258451843817820236037672512634853855534608039498563899105444365517823163470525420743082040215860433548449470065029703217819716935963828057909420680951917777792746192175904677960473238346884962066916925200476629451584696310079562819262661171172217034088871958331760138885027177182689446081974375244821594271945362437287085132426691158065429879622853837152818348968976012128971987182117225244638548399060358864467365036146589789982503637106396989701308355722072710225863917439423914069326049969904378670394027462239010233343783562472729786250904999465382333778814520550637444618140465939327276939844614383169725656493758918912829539264965283871620640325530476640963798532091932031722174794739118467229472400572308306222707379934488533992550962057099713367607559490834136999836310918711816958622195538195368484827710393720177309731787759598507864390988925711506249655055123324293229914658157664017468182783560928534518865483903445760281027585606451874108999779808685329278071507715122004539298775283669981533149849102289634690546421695515111173358686677060543296751729760246503378149462973637990893447319733284223427360779878189704916982017358466629823862028183733345544796407518345923004222967034661468044032397531603226649853868984401506860012662356204663596730360502258410644884200352565899057549204143182095324310323471936443744950556486336184760540961556454559311883478019065738654084551253839115642675922098721883599587899950216632754057912037845401942156506109606807307787703875107349419207358773863527726152613441472900167220507930619782647341661586809307025551005399220422707925535068491059118261195740414050623300010117108491383468067126425427936718486797203070094973053809111622833723057917719791305736004183698274688035240455154143680052914802042319251821621556902868090147797001863368834916438824704217835001388172717579226293671313827772583656839978536699563436944509989314401997876332418259878950955105953941664434383399138428772549652228788814028055319769624286144595386484176601413790033156777516131888480228255486653776293839706920846763837298567334193037024507030803709381424160750662218631090396667503929875486808352668781557436464164573577502828153290275744867020359298697449273409527582232188314088490315749857625285222729214872352466821237365417373899900488551115149566874574591251118367943637173431461042875186807527530593840333810804748574954195165085953474764694092122666149825783562864770269441162318886105836022377440441053426449098540045105084646978653213049394821181310748453110835423630364055739006127722836558321643696741597820106240296654187337761546881811826073158748725579394596901246305592604832889430790779309374422433709819700125353733945890986774233098568989244663245389159577440743538552673617860001483197017243936557699827941578055092781361666438480181347243980201841966889766863447243696148553672695067488772422641848315768271879757828810976621406656646395247593533046749659009543532246774355908002541814614550535285565895742033945588792737785294631880575672649915085172877272627604793097649098636675947449770055904292277947897601551842747008494659974036308660476802903142601141658873495283068357760278992986572622103201495151409449820220288264773712460591708506906231843379868361228819855192943143874672635421597588535758115397680837371477507721402563684927317411530267680702770051200956364551305087081805540330844060372823247797106010542118060893017224563740397496800296816868349155069345751568605099821705687739185440811498261405087737028020098985597886524599081005063123135977424243838988556750203936896821146585363271557618507155249327982025860694741746933347632057282739791837296734889099029489850402317807760680145765149039647449718568690599975699750710470399703207311680789244068743989601912473504613374108565894076772907603336560203214861574915966676207344974527080625002939580843296942611005993201863109005306113277293438581622005798029962542577691491549174997659624893877261004660349249626925457353208740173152975377989291826087883575746193244407444956007028313624140275602427687613402056654284727857210203319668646018169815994700487704040516020800368269231409312704169679365711322532165740070863407725944200147308369172760413208126927886752878229359371180335932151500200469949421540331251536328598431708732131595718208694198182273671744440894994981806644530911658496378217651812146718314595491547146181799466232939891628740703519395279540441779095716247438287777713452537817595950324273810455266479340551648216464294442491009436815290925889142921303364225730502365003852628052144140944553286421543896478457690841084114357435432945222593039435903113112216421420255116204218935192888314614861861454560767949103177753187447108049342676318118491093180343089697534003891393961265197879632106982046430288368490793855702395207350314462861331128393269312381232013644192330382183490761887439684501241483324098808763214951688987389340823626540993325184987231454416516312638246852302831857710285893555990217748119110239585428346565464105601455686159172570408091136222515175238052579024982423591433739629528555562421161285643513969462407446375271799182871715586531152873252447735537883927926428755562675577305305706855511343203292737521303923869816526998930636725596124069772074864294870281378519432135083695216933399526358660921055791723396884445060763001345069606739907032518230630270530923144112946672556289560078315634639562047774326831050380222995454843688232885891871983858733327932191248864124704771673898481797021237750304432761828576251665056298290207412674922496326415350409480340508502484661695288587767233057788451004892839160937275255653013723078807547907473506109308908173814488176331823641969416012457574131726280005264765120388769129602691321720243471219274884810417929417396964919180338700296625916861666514006634478518991905792908503060986398603412163156205694103282187243861098929583502634576040940616334202248387377999818287062241223299720730624611187461011065681846311627977737847769350164274928325640984085130318241601503346374369856824284570658922782373532220854315930304496517323945769053958065144235868838870962577130827145590353526315205852471379806102109581358767164812750074089600878744586441406993671505636065686018404119978695836653273679331778293768074818886881724073084674961654911686487890003247997052142381355757201874273932085803600020259437316637824768890773771447817700883264672961114306144699227127557739866999715447147843160936430805245988029474239193972655193860385949547944982391579287742585345840105843061331342416567607421786277672375896979855571024984944339884103078288277435276491068278141172318614076359373538543735426768418604121532783299041276341315314110395069544263666550322339858270189472372050038162853802731975877388158247418061709369038774316734099290109505538778563026501517990447742753434831364971818933627774515560144347221565372812840712203943895118066361239260863856847184777187966220137855663112601053853108723975076610446987415596053933940670415418811656843486547228101839717977296241250163709037734223636472865670063972542872305481759553767003671694271841690110012132581442481359130120075550469067531627239090705585774396963813050627206554960915319193319828004334652769129360276202477450673411500047326960665805401151078018053237421171944762448072842016845447375760997940417137614584858513998956958939581560154764436748860508489505938933391563933560343799049543321642353966988917431092265424504188802063394932779904987405789624081613334113430665396176844300597194033439439250688510054250705415026941041286201594349475349367977961924749670627526426842779287234622823147327376692228975428049735552083299381095761587962690324246784325814734112171100485214636253336765816932851027751795446354500558012560907452281738782193969745261322525807425782862400834410581674863465719914081888574833330244303243505845582136456971971042673624726229807643289596836437023672118342851259838304267533501404176183009177601150243430103331491013213653993391814457137570821573154759558312482111970562184419986036138275718158768795856411409605096612832785603177178551429802948077826071592351476701941503684757678882012776960711744456005034201131590913891672089866407991815430542647570001604257655851820905489724607289814926872589858492452060930346364600611452604903231156422978031924410403108483797500468971745166143532180567601287634574426968347392489503045894497995835144133105334386920240708245405543426685999615133496426279141936988040740391059399926939256385624064044223478762996785967031008554803132902649822037421424795458602530570828704782613473578717841385300994367776255422227153598875568295613271287913772574790568376379317500731028625706190949674098380508443394088501642696502106963024571164897185186354091447325679739028484454491176335904182675808968030786021787694110841080172725691179596351095606846422223209595716805639604021558382011340282167098156875514674454345403515564279322109897968300250659989741204872931035831155663903408025367345144299489002900047676028788548026908718224828689572629706613221627138094742829135029153700079407368684327738939014032026671699751050630429123584104551857623265533273809786550594040405024570593625358554694165221093572043675991643988736396758017470595669430549580201025697622773600523378651080935127695853966527060569601588748213305839014695381003165188685030482672003912516247106224381718922802812332468879734286367277287602438711775533024317383117685444260536063877472729044810921034070360353664536288867126981281684995465632792603723505886205667117191730544789639936992451497834292891749312892281767566227159968958456675186728189212867177760196818479569914025680616036594834952755061640357810003181781170417571599491103668033549133784120231746736472353784849047958217274951880675443970047612081496493894685814151301223389769499023184011115165582321878532470496808256512078893604192271090147134389585475686998136135980715640107526497075784520161530660089245085627791818412787982466856677868585032748380967371369229276252282858345291687094903084924607260699907684077452888162151019561600094736096009813541223452335923518502352540331689575290698665077278110519123910427914299727347288553570141397656876547759668655157181756993656311984545020157948821401489230059012347115493083174335428635651831838056433804857666584756959184574744755745471526832243631132445666537042758482625769372875485464535147089739742659933972332390627385979865107084115009835038101342159368375709641376733655337868701938351154057512017617975006010919472603573286551304504641424503697948619581487192790177505562590560784361109254853172036109492706836385237572434888820132236104167096443580118171734193423989140567972495419270710723226291636395086830985747458120310255225331904122593236996298409879966372842301169704862535028910522502904858037196083976897340474798041940481073775561682218571432269731315897131089234700239314795281467563869264664643275006762068631275294357491233862196443008049894426197923460639955071928656343588328851921381197819581673535747286127313768921851774757468753307405915308766989717737626356592711851614488625456398901868356962396970705787141174054112439067517202130484957898944703756509729270749729107577033660484526839864713108212243250035979122397064786433382047938167401418638057592348638811606935522540335803331611771219901966639770682044360716486932399624095798465820170645580625415926450383543872601728196985113812849558261975795761064848821481746310228374958197967854152210349923195791714455987899773334550411792888428031901818805771528879576778644718469654027524991030905424231160140896568629458493931069033418404560337497277271197352373831096025113094066355290351253328539500780974595166987302011798015551442543193409299779323597084586279779798605560068800296918751658218558818912546068982431398281070374749867595421812993223955888807600351871980591679054488122355468467370935505930178660503322433644266160173223905671899354789031362062334381464759164626955285061845550370570507914266466938976954615997674022746418059293280772189484628732176736806056584164552301079350225541441760433871098845497695325342625244301626001481784663359420796059552137297921597925290227741062495865775170881464707118921069787864389797809352493611969228500698366504455466957124318191036281055076023013874112537625241533778336872965990593114123705920434818633064481505990023035260142850849558495490938628893421196004393354928905862961178952466068653827113756668288451767713647760932901493501924525931282569523668146939647943182792088825892233111033978236919081875047738490301754436839470546666898262571121304593747007545596506399774907804622961494404974655708350523487644208759645223721756414148104970956786060685656071153262016161435901375907128848074505546238697648242967846643826837799234040248677837885741129040426712760291169240984369198877817335023008358356160884721479089415538113151693442850240006294794432810252983469269818859225347682041864863379489694488808196732293941432673258923362264509994684493294309938266140344586780825351018803519977368076186872923606142095152809563251000651628063805943221422349017504327482433851491766373582577886721416506272331563001920866585255134911046917073208640386195753996530685509959707469316530923551623387580850777273212604290485371899131268917660263283391091507951707736117798628316147860971794752496747673426207334272108275114024645160636907599338119308939458679484290626358636056075747057396426992879301443312344758691564375534841244449853974031085480911625043819982461864335184488242413448749044370212897394508335538862002998790359536079982029350373153128072908139855691607723046226188221639051608055764388564815504192079043933536221277242176898391582205432362866207593003537100609322701580156172906283283383489456175654045210661702180459944229183563734012649509521025169490847960053974960709536065561438839817107010661084795883695589433608920522709489698428112194067198549437752786002209988014288183503300113693580009873879472931654437135168349169547251087246350893408683290218603747037472275049627252843759215163561109015734743421390470450632207497822714428877382101400169962833339030086962007850187707937738132750264274894093356785985589218152133880374054514816442464947213769044096073386483555100963389015713698315495928832198079999586967398142061243829053253044042618760246127289751942831494855921666760408214193887894203013424058413089530539560428752951008404756363531864753181442025819592418707557668121371515457050427728549437140368665935357341562310195811328320087310437709835695169246862557721080072445346274986690765625591274467684298517193226362777770513251905748311096362053902714890057688146147058902753126600969246268023931272756814866358733538040077507659978503335087101705960428442434836420142172340102754936739602399346864575526141280545857639241231813990248579463932232973506220974025339000254934508536089951344617852586219991587300550811113287585414353563962833467282878266666047147249856630485706056691042688230757302355767969466171006359890525368148315061976281487881716540445325535583390273430394472186564674726064818140693746512488780641577666461429294638513847358297164378604813386658368035712592232440997459819840435530328907750359125591527055625462133826379447894325285470389988521288485166065893919332339760939548875052962977988121110806043594942922723874262562255497169962076663795901432521026111873079614102770246161333925152893307117659510509138152112264021352293646329422211058287305322895720505088766189962778856959613502403115283908716410903434074020755781735773789808574859337742082179120370635980080082097415025020761676910488125810362816230724037909385626261286575844347156403672982917688952399289024924430480512015439666172737995619439790822726015359290072303917955616359284310088009893901848109417371242948737132836228923974719536129356937219811611350491822905483446828862945377482662610761941140760043304176843993245409391489933734621300669184581968082293953588904298681499724127486932082402575309406261948128877277540172170654449045133910271045874481675651395832907781326100370421741125058381804052614700921273189717373742547493134960857382216619106866093641750258101815614455142354054630018448529867651523751610244388009190752823901601738751771777048437237157277847585543321024002532445938791720382238117268038830559900173061829213186696939883383036421388168226473576157608698278406228305307514340309056148157075960877074536138462765904743146287320767658688927510765549048556409529690935700410078114031463477998755892467810259472337087960527199360607358875211401809857269396849508327075630662835189401104426501590150436856954019509742966880204622273542611758299757076322759002448705384708492566681477562678124303235448531675528933955896067863671706684599796737484372073926621726599644146110777843574090415468084739146501515805534115620611310402659990478457479973529120776500131425897213889496233042532514099702518456164083849338184284300101787215298705390575757205205484666342702260570331473617636312075265074386713087129359720580602287944673123375186435455579045139426167308107084323066552740481274142385751836999401953282774553738850737669283601039713365776742408486704488526571057885495619821083913914091758506244139950539027181778665372743427414819155579117707912835281897906569031581720770398213239018196243353709239624363125390725732034066245429645127881820822135612100087338637624131522676549506035947147215461689673089347907807545879100836683512590564399999781653146503862329412605062910055338803614052194151999492440086684335114224002395123465367286698704675396766596529000285136375600112345734773937091745506455528219802793899685913065969247464992635714106452726072764598425571733506316571266280847256063641042576367183176763356272515052710727567988177617760950067133588632960731466157505788386686336084844765040489994190008112202690014256984889607255226283100529162096393820796408638728345124896776173778410635543155587392674546942079720340670242542651410229844250266987421749183859238092325164011203518804595868588633001849143857486205325239387986594963625319314713181724964949052306450547377497012409884458319491814798771062304774405723255155166185705982642039297528250010871506217967360663424415847633083813701206205020286240343033390313834062618335937237670437049631420366262968183596359744842002482215314567700434360253784181171246345257361576118593000209725698874720955997086741893765072703594145444344581637191257619017864117415614082156195564661010415813696834190090710718956238922793123449344639989229002781799212740202406704433110253019018491415277166768742836889887661311687494808998303217235680931217692584333709697701743536486599935572149380071662835380548531585991979437864768350752080618461673401793549037445346828901374192596225220340034025620429455755155590754089274049251279076700914625558713003631976443236739795431934593825924530703484526479411368311617745065132454985286719200121148557193631619654973288960737987409834928396780558199031437990470459833274275759897617756742990643183399726138052393563395556021534044255448152491365293736899124282594044893541084726415343104785204212488813241727217490471455437339379858891497794336176219089824187173690752467300308242626400476886151262308978874877717497810778816228339923333242516803564070805238940990346741700703782815446954163823482772647402203566135658364988108355300165130536983980761739362449209371836970080056302632945424939624411486039742989621615491988823928896933875579301776028281975974044345637259815703073695684945872045187892470675115149643977582859429507857700165900674786871448757976635273738885938752290502073347214296914221872686903735088106673767859374004663642964522459338887716651671333880594447429592872710936200822789321134773410990327138615363248977305440792002420295828022892864909199213831958427062897683880608096392709722915283475512940993710849417782714711289006589267683053506521719443334776772104646168515467517101430454467540333712291336041146538585772795744105067442508364416282168210824626946656578678599714282337495169300737712930174029202966710326008547375665292789535197002909180729698514064878410528347830353677668867206364586944419394414868684588667147398085773990629654407421384266707002491698553109190487190431392421069913446616926967615240821757675396967326694393344400028091074815358484229894532404589634157243714708342225152446239017396091811313840566415013543122439671999627183129621404492405118569517890104898868153259623624762580539450656064184013412170408274201124403039918522489607437249656440533893424884512221335388702186329852078696887245919836924882335488188791539641495043403488312737252454020628340157129889873808849354079180843506607377464928803517026799171278106718634413421928804425383542920735176232661460162395007367517514198221519473221172287041547817583297664936472289642234066854825502304258031419746372350237742401400830171907061983442207976015684373054300681636931505249459195369200731970122712737450204525799373912888634065878780165961327159536128673068486329438678145387274011781799155087073477762441340226305204207562384847460186493172956841826348466271663931990834330661204549534928205428587591006707961968847867634868420619985100149627717499000507069570730410719225770579865275195806733570459583617743284984590029865416132985423604550279270437846689890415871217056129965949203958815041780442510040661326871423918187934490109525660853793320409681369317215017939389799083471563646286264144518308894319440502633102920131251325068546232615037949375954023370675581162819367494370505299314738609877835182225303348155667029990913972338300829609285018363199151388215067354671570856833743478422056263912349855987476098199040299513936413368868631909438735818364915024483231265053452755048773173009918964471626051986390023905522143407589578814248670558009025976124311237674822928531092551791957704674233260433982845068538983190921955726924561005129275518788113438145763205617894329526573216582883593897543786014041988668346425593552755385603848368593551375879005753996943714845838490305772469662690088360661250281108193848428296884233553071165265924531863348943616637230257520536369878447402642994696268992098128869542894549377760817858628995412631464521098919625603754983583479397552998712430935887705362921963716654802768935119172897061103620082209897493784520483728832981453232985109365937587613496149086484752547070977212959316484352581105597604103472334523878888262773237987524009101091126460576628340692469861420986161974184456066543338914077984379721119788855846209295991987496515716771312503009888853546830196444703164911556595773690896264862140043817349896289345057918673391615569364852885521982917230744286172242779973133111733312861661867043615889676400652784010084270406731709792496326871130373662263647704681604086363804954095300734324886577885011572769492259237523754863297566347264285267657552916471862721138224187306420441541201891410151847991110481006663696987040213030468281578980692742085546453727950729137164855068115521945303413165220461408780489615475065823850250255521551235653192933129206886789479037886545987363807074534369481632568894374843843308889544077712739965426913767171389749526137299830979372195449080621633371075851000397431011517537705821918420139664209028225607416865413759076826696029564938460911663425427209303459509462676323941967694055516109914609102638958221554781576438829825840408421698465320798423059273243268957543396914963241257282876713460283017869387590387977152899635287402439561407381946019946897522657671171566207519484780683226695395446024947719479481087861967544728146361373967597244193762073483279584224755724442231342670078494678452586163802535610096001198877117577031340741254917225130787059833858000086349696477288636123784328245734636335670026105385975570277715234477446178300550048235622714628125860698938500405297578835471210804701694076431720992205934449023590569713857681734053589389237393479197416818152121625447853085747949055813826199324246723196834987830344388035468190415532540311157347544844847628744274251541100754018079958692158362224681456495702589316899803667946567028830074574545559782607491852320929917228877940239839320789248508195029828619530152284795958572857041192977695663919817257557612710406885254130686726877023906531485303426980236378548734452069055535376601339322891305764254054736139490875768015600850663302136967233855161182805486298895367432570659269570321506069624011765575423922762165611054282502535755892462057364388873659570912876207015664201280658304819701999928588182104158027739152753888428138976845596619235664496543420642606563084171525460113466228226696980631153387485440646364796096116981478765178410834082556590936978749237448235384836291900924672736888682629323075056223144073633879431484060936803233837383705724133785513162896723470460510144511388666780566653457636523478371248032202157430196168578797930242303634486140962526307370742772865333127228942123923489076254410456303559536359959664273403592061627361925799695868435423111592961502676550023238908798830487468590838272008389843355742803215806995461237969086116687854163659584523793394840564002092619515347803327021916915115296946248544591492368813860250523877231909732674099817715171511233779593391767311739875070953662813839880911109202053880770069546700863863854081425893660569386769969427974756339501027273884578721887170525470327293408145359054685610121353045140858756080671776473334790456974723824441262358140214660623466129687902850353905407675060851464275279357823757347931038740051973173821721117096677198202964939349527261465406693839792385924554194550849349632056004639865350337600071517994258839125633247339593709651594966917354995536030571946893769475015713770343187207809093754501210338861740962527851664801230790813040519976060082126695209471418218909462117295749543261834170451931531456564733809365163150439609666218411113981747012690065085526644335136133128230013334755784508648373561319823624192172226613852257856335934753591253508710714392410591278599827002459518332412478149545820599790366847405685100411418764565842301039729527461973555844145661430326766404933608886857470447615668326384329175228027761127518003393103404948460202996065621353793562135658870778386192520942925016878878757409240101006041844313963937479444594031259696916260643616356413580142128686764609824956741873202867477793410329467647207877463818762121402969339127028621641362861646532741233198967957509766317456587759451176070042861896521351834715304197318146669916438451825988606265020276412480157358874697770937816103694476847475783917393255417018177896618702812497535219383608236443072085153689326975105215454738759272526570656311586440616491472519495248169002028112645218413044006780876423738882805174847272004908746074244360380283810109861872749893318601386914806800063977879227172467936372222592761300544697314920754736345891111316828262454095983699037982335846607836053773927485898180745309120397903199998725035413184638566578917451430174398228862226971470852901183261959267199114167941689488034687919462121130612462948131761072690942860190082651761229345470303500431844233093012327349816049104856940624627946358028065614671370918900217348301988114703520794557725364826112157841632452163704190769821131762009690607959571148358999774954319201974669277008915629204313770688884878159428832409193889592453486648924906383074965937620612826306013572259222926639878752207410339614535040828752913310812126312686988566888285709699103919783237260124181197656846191273859422572083217237025083163510439154898188765733261415270531085517317256921268086336535115170633319744914841775144921816498574646154192147862883494408579253483248214121148316472386956773819619673879086486222104053094450654857197703827376085229659732895536677363232424556284289571848306217420512852540777973777904431718523778894483791388628837569052069323662558993301990264283009985745508466218444693260584812036251105693624664669792187019610980591638438605283711376284568319556881794157459212098034133671070129002903498436073500269491350497636700563585100974321360302827396875368830986072936393996299290193679668195132888820298398846973487733286825900910522341562911546566009337188134303756128318647288910044702497904604859625864280474499855115066627807450204158928470309044932005788490045173229578605010505676506057883100793844634582606251272983940219948358096210445360391028991614216427726459202605154906991738817178967620859771375186730974500170750997839050512248326619706010992748488947404745341233758511185363812215887167926144544005041184453904350303588902678426209579613269431032430740936862429396244239089349697871820885004703878840726485600093245679969662747311864652432047693911883822412604391859966119892414780174029733663326876856837884969125303300982343925542003109893116271036297396042594171748360561100942739923634256172044591609694796019456599354032484505881142499385176667629157326392566903884760498852081945676674058700172998783226898578534781739963325834782694748770558785454609554052874637830728901025295815915967143126392111970987216106691677726173915396443588171505638456449380151854386920048164768389155968555714593607569191779424602991156172028298534757618820249172310922609669158702317463622567104508631695770976650983606941229419991971611360883773302426737711741628063275822947555084940158903897723990179459088811066674538003700978802392065339529931117159506654286540637596698999690049137284722203140996980782168876563736718457313239664232462050434202218687485516466302001567208984567442408616154744493452258211892316876234150009821991008746944726284623468962566069673115162916332759855734793884003010190981569709899578062898445354117582118254968895182696694039871904477422075992264581060412569869767159521837780327067391408203130003578624758290105655100642564437926397612932289221113247326085559693127614362828157892393514905109949036953435467874378251430103160158376507776603048469453982627134633041754648374704144313409645676649486099355067263042777179275189841558249395462479064081685000738703593699427970050230742722282849125934222638812685909537933947599817849519629512064265752027147711645467907135278524184034836173906811870226101602028572651326414721867847424257787072315039865613703754664120161627047354695024090311091774845091088846468813881537067657200738749435385403929255679941712449269166306355135215044948338762671303135754298320881766276804210753617851854687208021796767980435346320517440270390397584628000809477266084764824499910839941079444900034455070835884484392988934385243222337953620988610075480519266324276520164341094295648526989258171175167562554973085007358575363146535057582225894982032451579120431171693883065028579536332928437526430911200205084695375708656052910365259744240208571472943659615482388741539617658743292452667533139255991145254065579776084955566475275221902879277249585358840770475087285029574976944953001901720275288368487997581839463691486654607506582226557984848294043102163645357683871546415294842676434523032407765797323579417944901165047893205746519648954396794910326250539098119264073126495089817334747712098820506149768607923317369115729342771680399724112760338805681004783226694720089461285205781803220562861440297988124288078711262216631247574368316300457875944151230356232041232440216105908017788367567286388230709836714892328162721585012891326381857487038668566027521555429071524694042379125069086942219268338386714816931445630219024430190723962321570952757607747672325857262937542606828616661333728697938809604462776462474709115804451565490195724782187123894077431647253893175406750034245768230289572133298956684764451025914134712207171703565472895222653566232389309428798684641725865778288747269885923597978290864303492822825179027846077244509388033662001723635124995833609835896189004434854275408437316397888492631406572218486323164685023712126705055209287508176493002136933683630495620716176613041602132587573529040087496899844192278084016046318032373231235014508920765803724563418629990422902654110802797744851739523133264115996343049341339337159293600137719335068934069228907017558530039281358712953679951072665072260232417348433895165889332062004366277404690206817431229365638694743884642049726147630994772528297181379292715350213557336194910414408905962457812342225845906382719245146016100140286733533466563515219500329542853070810251846768736795781349658903374516750657211705747086206448094579268867011596937333313375846785015870511467055526108291736936788603718768556605858821413673832116470827126261257596190905833569703802775430573854130425147616242601009381127399951460557165455064161758181776332954323457811289217618687170582457656949185787883023751786222821343694396920544899113140923808891102693540022280127359170213850344909409174204919056370787652276783942612790099791863069572796470794778955622612243361282130136739165910532466994765117763290706200944067061667621629504854841159526602182750547784929607080378157092919961011622029500770722221653901319437292651022617963252345769200528790499878560627048129899301841083237356971047058586327446195009654411351798598372893675817146408977291484958202293826013227476891108984010235951915905609343303082711743342831942026748264793510756707025711225378508652030367319086056771733357134724189891546610748721358335477430062511484510453528720810007426349533780356340428384270391559292411195730812484005795063800418216814359355429670987977919588672781406332307665531291650671474822316068138411423552486186415519374568776455267102401368498847839557500458415971563688684949927562769596034241274233427874618066067568929744004312893272074863942650190350173526378104505894561874636106907592482676638144388166662774987815915281336498742585883787085578441194049421299917409267483642298898738850167038003885853445151826338266456697970558750729672042149273641608826706596827110860831513596702559142482917843450470378404470751328449998946839362648795570485849850793288601360011186126903759235571452081788488076531446438902783468214140173307638270584669762569152843341447504216982064288783888627241715683443737024261508544145912687533472385085746494435992873143201213032394683585896490668716878946580769282717243381992622790462614835455237345873440930100329180969104197341595106503347550856324205074840730635575012518006391526778970040299022365699837402882796039332657846262282526867908527443544513797029122179797469847438100877052900804684938744559067270249734260088767496814923140246741106605872355663606831833442682610548057583588003556445093162192738164411115495299663188039019851715706069866322431889861186001206209824489795456715207791269968542474461999750899368386367157418944525426404740607311088884084423980588176032120725741479885064508846855496068279604152713671780798141897335136475652787208920776251425175066162217028295625115051415152329310420992006054393568789774681180285399829874251227008574449747003356521015983727749910261884974543571621394345584813449921841014065140713057803836095353221201299759675960494602926795754676269129797915470904388916079476565164816421004255820811898595467321319209599683604581195984501324188928532334848955292077333021330099128929163722254288723232211396890986901846682607498634980999265949098842884908616975950083115653861240317255672312377861072472308327510837532440481535876053436103617179244332684497988438585409499921714049273411979254245139986527789616696903433603830618320272785020451360518787592384179893991748473111576015588896325553039348402736885587743097834649149210006724538312016961156152796353875797631191892052429307567316965507626640088557246391696318183709595836407865867802688548130364050977763858328951265738293521781900055939573267759369563938824046182968650549261823919027922191275479472125168578044534169557772938722525091473126649135948680908500818488057926636293854580007027556406387859629541928007781442636455606198942418043202769429183028455788342616180422662360620736839367512240320558969514087791537752110117475211923278779074298478536105489711277440412410182748562419685673904801312016218774007753159205901182369682663170482527422788404017313868486515058042828855682862098776861102071041717928240248382584845849425153649098990027123277695042196265385379684411258039614635805011784418046992682853898902842997144729965498266713711303222184441926106857428630078240988565333598796189802825787568552980428774963059966292787913417061605728032827818711210266346569999275316828969381286609468799138364459919807788985728932205500483726166546724204600159611939089755604076208967152195738778061831337245670466799381963248553071965845304393549055483009890950831142198497011345450089117970648262368781607264507561461690265997459655635509457553365018693733899517971374107136257218630068473046112672737174284717317017521220976675512977407317037495465409506809916753612182448142149575865103683816025874980177494248455534630996588465266929578872953939922175942260670195420710207130566702732083247684490266713267093128088184165381246239419920193107740518917475508825489089359685960909522323345940591347701570134102308445603659666486773352445457381823786752074521567572961828504807226579622699443558907546069717817160547235606210723974224534090437119886533955921188495505434554142574212692133255484129351042589347915978125133852643189097569649364290156725577718376851790722070936359569018540305912577581922448360597304677835582596100260181440969590372224731457886188470807296899794525295700356648510218678637302670672818936380595113855376314353444800012801141408408533998550934223777431047004929910602607007466254014822302090077695659021438614884901454650286795374863648415384384759327205988645718505839041027942482328046580705701745904776022484061675186586892968380805124928122426496640060282057927485703594576546398243655983233390894897072546500874551852040183343719298808191447067554659020196270118413949686314940487001431269497927223986535829688201841510893384623256079506698656227501865198073620131080265171349018858256315911753880014151939700350755129208767101366472303603638019976102731289988917907056647864939105252963682733848004537135320454435197793324270540466245704678818508075377038831034619290011661801456659779271266265695154738568322562009780603675562874565918471296540719512422487373635006099398493349548863262179300571083820773130489487607122537699498185629299116933938362350606718917023505586788485771558649021886870621896900193632609518947908753586078555902189247448383728656449664287367734424868184011119617141581269502516768887566226978966464019650231725218019236272830689424576153483112910831534865556477282188954203490953925412828723897360442534907214329075136164712703887418726399114057311351880728924519452444775048478448700397331617995444030438212674508125782374644083460031684208970593312756449977425494784656186666496048901561491371302962415027960766758899984774366134587500631210003180419795853207043085658732255556843572239624976276863610672780066675456152237200858094003983997856582511167064254220187325537293996617570291701729145213067572909064201292013316373863449894940329102657834130100297237796056786570849690281036144044238545779788512788771466283937712112307794787724592349334226801122317932654272213506771862143625550922838382451131155571329628433853134183714843762531302982975056241614625791233785776666326333936740471389169615519911895774003000633859144945578890579452824292878847375049091637898673949144305596818099415837588193839052904159774691205367807327956390954812479075426340112365430715223406854534019528361996016765010405149717884217717751866726473843627192020108408997888947791366785737640424887250213478496711140127222304344140723950347857999712408310845168973070704746650281087517761155320022230464189765702276816631340371668955640408769592945234781272719318593048636442218720726850901701603294322194491737518525214711099831223658177000210243928625432046990200512034910128565084683068104524987148124374700018375646319832091874794258430389637885616457429762466493594024150793161212476842036494540349322281361770605316592043759959340358466551951577755297468922133810728714534732249207965043025887476183330895756526149892973527045897701058463380190705483678872005240648752283140511103018928557366584493912406626671218869688663673298883805350236793641855589937619342695253196280176417263111036252420566809919380842620967602160536868693757449071469087566502427127147917269979052533694686239108022605980518512786496705981517846411048936599249175094573481571050447867266051833609043560998680826689564008372879584067308868274957142529828378938765945012508697237962707884300808159413945577996699166248511336951370054946479219938159001950744054086446517767828296650899231392206825812716370350959610711625251868788218646478723676061089321951526480074947905998996036341559916963537213942383533332964582529547183820822639463705335790776649998543445630620024674844818838745251081773917073686372672593505724444398475654306641694055711228500068273465231400482399094074571651203698414235535182158904513671187431981561878158875461453969937261071614925372978772802498634263069526228672888529819734719718374956491556283503054141593933208494569395087782891762100225432883042130820536584693125423151092276874625051651651989935076754534722881261802828826377954361515102181543346086695760219466579520306980815095359170490862829281509320401082771786633800921868298865416230285859248995757935589544547489042637698434792694865529103203618960279065003657887134127090462402552694069807069658335917429725549164710443199121607976622511040192839992922503421465680574504685226500806054937195337128112966812609665221757206811444782567716942293559267485849852173952552155818233981591929212011263624782427784023109337278143862136287381462125326006383451091940826950020136390221674672869577445957542767013595189382119325300912248604133170476486883588569990283628049998342762854638262651941502952655919219104026555111838395331616939820012322919241397552443585202026926126211363005450798667118566982076580131894142706388739976502637003724549805610848895054557212438171598873323886282835196639395014105572858386797705532324432913291160192898392484915507138616161178754342350929881561011314758212727997989530408704927199751880820353950718544866767129931012747248364557204348111489082830015436220895747946279320378475986147009320255225843630396544806784789349100976362542102211009782403352003148854716999415032178781568556585076481900969167128125705774273631719182473171928308956469198108903695625327296232080652011054098146536239745956401956936802169275761223480260012027395716668492130913629749202543794223312926968946627199601668938140486659537443279719194313482994298428434618827203247656603396393904597908646602743663482318330999366560153699588341060619615306825641148837332680424455677122555943744058109129993584317843617252989837118537907187412023397525262504062372882360304017154621053208284265243584881838207610463207399263035064024240267628848765214366399829184125884261319897542892369625560021958209646484386503163829124388336639336283416271908462460697147592291651701287901559480649046999476763478964984335205208147717431972689687417112676788629844624581052286072176726836094470198104108087045799065200547109058532508118852382662854156846848138919963108869633377239755890978778466920357952912361327114090649832838050448869988349523358655848627472143400585597045100870241116789102805769407228970409125933273092021676252521725147918226945947457518491036223724310575508660578837515088308529899438862476153988272168314756575489946353687275678611914402958022965832622691551920015139523259469931625229408442732034935614578393446514005157651912401025801317793537496791436694233180171272407930485689359354323772871321442465982649242101068981331132328671132279976189951493496987261327618064361360467670863954810862962282825296958944040177805723325554142294044356778342787854440110681093724193327809713103212055235106741631588173287807407509510150402995566930499564619069456003443192272147595212627795963377848905853883588614554583699358897140095247007548485804095360839046914621563669021332444411878125998567107266546343070332405623965808374430579081154161585486949088682136507449126773269033897811442086931641007820220128908410749802069165175013251951813838297025816657268699143584423512821274174477950701084990332386523632912545817293705681866321692887201563058434072386474446762641965910391407122269833159482432894427057845011455323790369851343651896628228677228751530553186312786237012508243835643728772707338585060319864096841126944968824537939913631976295125235245480654986900127564221367135148565318868735848621040855945460507441142143406374356328957945918633790968155790209647978009716289116135743134420949124968574583698947570337078523108435575165308773721133008858416860330979765810242430266380141800718939121279754998558234812975117655393940457200572621391893134084783909185472165690811665830593099312193027307065937387204946792129204388410120183886651908227399409420074469737973997071974787985390351832405875866168739822251918313235775769158717656072715565913644384051088518963018485946104646381578502429432042407011290776347761188336038911945559938546818175755298990275313928557484101601983979510640446480090361492495631867047310859766149189235422257519672887612451250730504025135352384818515464161449117636912898807667873527751991976253002726769772416443156912505167125432573660137667224382487166775895959424120999129176708467833714779006699808130483693178197459221466088953002303085561047695885586805336479482227629391509944251741178175480217681035998544879059106938990011064963378767375638256823058309472990861682844969028239994975342438114183513085793144459705094090225354889619828099786178729409814310108332089998334767334371931328792411723396668562482195045698037580589562715035152818312002555499539929694632347260767136485028503534996840447310846062261852133593962977275604591157245865856284379777964356950231961500190256590430091669996047967361877399261590194281367783857669594126473245717331602135744678424900401902807550985563054136879596652721530754162499528251033301400698402604177661723679604309374824248745466564217942387026407284274052509989381290060539343931580895944883827941511470989550247194899363435252169478325711607393616060104449677486926378622403013927194882506661006263180365836036527242062593188701041314432659662699125548326157945566360792340244245399816822980867699555281527097595945948315965545717956128618811777869489861652357192521332239172848921243817318493230902911442888374582617113412487583224395338364222286125676248037904045463290236200913330123481592329400618032545633375143924959825467111250260210628810624048864729889775543979959342657082037230554449030700335277271118802991424963311339445478991723742434859797455740926672731180037311113983166168587530867463325456285770714033193871321322960115737192698623709192508791259528462665036392966407016861891944700702996509955043381517207695287544594660658323413420411971776065581158780266900560214118229934824415106312728568722121588406393170051469293836017352741465490305446412572960698874707307752782915062460067760738458600854185314171920273730787537735697992301716531397900154249858530619896550363912570485753367682099552008802100984451776776117919015137803811686336418009100744078230691927021490565871137208159348723396494693639444276046978626402936253467486894109052258566536766945749209702316424617189737367133475098926393309206841549935404402282357199811285992697364502397286345104949740677966985988809916934547624262641963567525385439337246023178046102334973949890551363370285908897438831332319692410148888011919942541577886633456755372308740262779016462383149562935704006625809706215886569456562260513072552804740398553902887473997832195630124304899738685421425424504126689862789094948318548574261681193137529377187270392073010204304289039527844000497058836466520151348069887025605694202173443722816334960946243920148508416535256989527508377054402394445475226413500729848031626450370433037433132051072629424729317949937391378196581981629567843936553672557659495783281921380354748346226844730899506766959813555515854530403924127109812013111432039103087614344354981094008367194204666883897994537024161824116329204612908403167831634670468361397295237330457194248685101624986205056376944729628738381801657696526189390056172570234673438954319065773136919122345386323221112625720915100114733517875204628079925653363722086734980965216830421324301936616494883532823312116848125787309291137764541234880837641243056840766827523883590312293314330154219378587462486244988453430687122673152242961659815263261561615975944355620630000767341134282724290893551496110585414389658288487017944409662406328023659613006466926564965613760799402993757737136403857965509728744378804728110853500227582941310529549842120642519009089604576838431984787213260642426723574314895799575659385330808234423740060413844046928695284266175334764415513736909160448277106946937331888567936942550647024591123547350115383347057667317462792118099584398570363241258681361513261973129258932451977167132309508514332839508701166236327872655202679419615656036025011341555137013011998993028544558801070034882307714371960433747548567826119692716861207187268956749811640911274766969380549590259560334355355033198468864488482108754896298098297646763247977959872436164544584128844139293921498616961109317074185972757530079168313867556627394415040025910033799910029010445688752673880707969100080860129729289762520683888999301248816593692968795443232270421701459052138861780966683192113984297653369306924079790728980654661569954560202631482146997230425101903514025777176874597830123387233973696414803325417586353832932557864924890331021944649383376304739556204975986599084685329169800624733934551961268953858481434294088690267653022173551909249291935840389680722859979421913008742063500756207911299839937010472659575993629081614122292580368473338425319471825562310191654893957715218545473816468827171161167417399645856573581139140440540329658726737833008667079524872413728220400655978202139950504431588411140048747581795908357835322251809717590446931523729726538146143219211664776039800745568535265150320697746678189818319447477778889898675495182403125772747227867354913939578419484612246011014017066805039149625800740206633149559146307259080529706500878721995384767595098771000114314287747409579738472057298173227688759932658685501690419161784236703915785539955807083834891583841495700507798581795127526942007134584001970601961952452199729300949592173430094116307250209469192879599610749736658125742383276707990219950545530563583378200869463664546482658006806903443840087188178398337651171710992522948104067901939351795424741834133486122052757473447244702590592476878219567691956657202802671508742883801795862124858569920614738946649330044913948593738062739303360282860755416392519527617111127488355775477745494339798513028548487820980551731678076510511839745696465800088811183405562217988527011469520427305217219233320864880493867749243504300933008734070917310097570978241582548303047453805856040788254186558425980292059433515870867251195439193557637910166605039761112360501558646860697482773730153822298495933031447204975798022058780434765955300721773819403968416126154869374543718766262800624822022613648927115786714511978151161162959258056571948916497200691836168317946035154599522451387994082814183444674490489200868839262124999258629216613692350179003056673805766582057286618858881262446386696527111585956037787045598596871435288877397467006821283073872311976044683044008029780181739220437842669459138465671433327068378588033734356505878095801775375393416746759083634271607396593395794536519219829342472357797429929932744589826122567231899614142936908233939283947330713898380218311939311276354749245613256396030494093677125715240075280457528595345300455568270931172347065908265064727602109635386921702516186308745808490998186310175278655441297872390465836927319266041320430717996605358872692191406583750548538058031828264342621572256413333288714063096900194733044866140597386449577880250733153555947363505069873460166985622314805029651986869071364397050253590404187437076841062890155928985052277881875027056847777566978408835628615946963881206925356368341978941756333212190401385500355207211732532689878869204539122884066170290191089140746788211495792279736469107875136311367292523497743667214435742667266841268308691898345069973937876101352720713729444424644409106404380750204488825934598782825063484199045313253030629088300438181295867091144172635850493168508712276475016875198893212115806708792177136525563162267722040443077402442443170510269299351528334277763528431867194134636923946582692606552934889601481929481289871191929147679073094451161308324626893450116602977086409714439967330303070126914704757901651826068544776779907192697577629878744609247253050998532532611220219486507193188223029067884429843799449543538580925466890585776679494026817163146710475862500756977493742807969486754865551119729380107804770184085388656682342711104642865222841660657567266815068256496825034963201532808756618066356229560295901465338040487498624190550332417606910966711260049734734290038891800892604345168151486667991397498782339857142235494112208944096849099011084619439097380656507041042910100452991055263918462789859685763121948857199856855147997375882198368772452934115399591385880370856744445583559081173669132335606710707966900890406888658487087183474804635870412100646237036304374048717536424280893071623645033215484434388468926643940432934666075895240121615222188727077095191734892039192211450012088515642991915172029947547533363062827717692394853064823650940256334552904808323548131031766789328593279424819667557621629644440224091445495660268817766325044414900545603593375373565587114080469229356122056416343196035506390158880527658144274101745608608944875956952103332659651529337615300443115058208816120124575286386457766842752196977645231080311024566836048585314684865851107322191145027641118060059744470541299509243618991296881898572148758894189612719328663797176672876981154911979945597545480918798725608102831927576813591269568900229152104132081564548539703656409399057820846225367356152392098955454044801476438836317971849193743804851130500266160460241017441894186707565173308427618894078233367947049843804430374954361461217511909590730293711972016702729333024321329908812261701948092784864258264304245139798730390258497950050928254973755972783255540793807579051800146551671325182048514627286931858936278276875139294880239642085403408736017350802274690848085748854507155067395190658329536923500476766744862665044407089726838956320601319033832652577266080262932730609781543711925669370486493031506016373057949149232257087716471552999591359707578019221273726520856377428257375284219310520576498868196531446666296197416057271028307613309179329801887402805823766428509658360390165118072582264486385716894158336305893574051693958652858349574244635328145683493579361528118346246755500125672113815341337128489472693368292325336962146050306604026662292945104821760424530117586223066383956992666425994684802035901655566617183887080392461130944781575070397503943563667852783612288723672754956596857053087005466257276737211260479787615548457621989456832965328210671850945262382432881859603938574895080747347105393678825542993328156514164324270039261198274951433148440631282310728774905059156423655708345247242408756756184991638384424764746062908432871394868689316069545403183634857268983881125911033925564000421762436564746586859120553539783158373568073762621989196807636310902491959617523825862882099005328085579582724286590580927627154213993373466932301718404752797132843747710107653975702943726419541919179409445848201743932797816369990914466947442060303954673843263453243896838003900188633710431718103798131457410273774118802667618307598181375467369222057791798794175256618280347089818317561412514861740577521597697320423870492426109417731061794486974969931353650112729515348688288714759296780898809121626834278343269540819452772620221453217391261754665637370454108234842786074717011593116216078193024963261788261151175495926967587507728652856709056128194388332638792492424623537861347869770409370487582631695527807662405161759494933408373359365629220286193727077980157272950739323335897598352970951549724008239893845627768854173907655351185904108395224890978869587352950731340399549803190733023288586229626494261000993178054965959564178027168201551449567114452140426280050214368477660459343772974552514522195064211321688036853790213824001806092799838534801147800753873394482053084916452382040695083847995676889370355894538137926814855876061948140865394109870651177618406284867691593892275329503373710481212835082847434505185401934471463890282556730659091696750874668523831265279220172611620831464375358421110895961629331633885004467255649505739734202812564640615564928580987854860189638558297959134969885567410329562402552513384845740374457910560030103800107103768392965328859314440683387400639313188317988673053249238214933518648212868530110396917819088950916902118956934975504689805471227630775322202998628488720078394527494207105076129666460424008590343460709876068733631070489920270509601068145140581613574755697171988641706169002129776502614384738816554172905604825550889872453505486242702979206025976848705925692089134871044353425489003488742550702326550343497536592178060515764060458244783051949514555411787049672892560294163307081605852269762993293653282116598801074220395687833076292391633548953377473987566806511427263233489698449232984093898403969283118940142829895834852906026737983551145283025207526866455488562732334088926273413711753745549851995848725057872648488547106096312300505979338046188657872120716556894122611981727612087895223591862067371399550216714729418183402684429038449327718104550905879937052264469512337637347471743118573476414510402989784956656326916392587415325575368604405889879183350668652566064834523839716617804279870287693985926164599799036949189698802384139037037006926528536300755118510682517761406760177044954445023370563682765467590800955048543541598846739425372423549289940170907749469771182392420706764080076635972145910307323217798531938462695816365407081098019440168975114498981860999222578587428661890826084915137280055553792886689082625727335749942047043698502209806310516133291682910779107881658000205120482645988485120574945126260383217391104362118602644934858555296803056010408367878994326493407096573008122524311564686115807343053959228836681896864552242824578219466645027522442213255261773750794789114534319594695419957506369178581454383519856682658607471301523555055600423493345956272699983632732815227396042711154269861807098418022600008351246259541868525139449891278457774943231261424424324041183701277097529545097793893950040840198860477661443103727406905052421105753719775823294848161824043710199253165090704492499492733815887035069759026252320180029738177124166280810377730060162997389206960952395419202225698220899301247110704507300611984574608445546279119755413180288121950379627684930833370545573001921463054683633790538782870582957794623174422226434702881995749328426976591929509098305854988427935905228870043341969300833300815230369980424977617565940509309307724763354561066109280525458505814305785911466074988720176783413052676629265383366867121062052463114158917691133541142452002892159967020898578682918443485695080132221603591619878885581957225157864652137006914244461239419797786473900582527900552749029462718178110762651485592344189399192983137351758626810529224887199806083257876086246786716093710898693380199997121299671279485788208057446381231362157509795353938344565776473367966533507241378303809811864746823084449239686049902347537837385251496765607876274913203292177509457172084721849943072987299892429624952582215537849525314470170857828169204212859734571868471286797802668646032395990102341113897403162563823715737423478714049569812986149606353742892269836369760664915179728803568887174302466917761972837231970173540648148068527456782013500402585383240941632879991919107949273828096924406126577431080229434322130302113906480178334311155060919263281455306703939475203145267814480825819520450814142973633280387603069511622917121269298995098998744764925287980650332417542551143892555938989453367810832058498983423147971522838178770499119574410252361931341804893799802789735523784152584888259967699687554953894410260621250838445006415673474404461579185212429075353210899362734289789470898630973210867600126571281118545413406259334064216851012431261488547920426117856125553128359508308944588504676802517546454444487662444787400614664808618619534725042234193127558859010674660701365950667082816780248277400030387061830634209087206138574261105073050662800261007091048393769895525327787929394164513052585303040868119512791188908871455538134039319125516052443683132975026508565573692964914484959887948730931394737114244086879660017155094602842523556118331608479982550593288014175386061128684693136823426497213081291163628863087178796667101404708200795510025091748583999571653949955220117215326230230526986368945284183745204972376432099920100398266889011950243220043198708169278779617774734472980166528867824410722321318512917550052967860796482903931387714759705289980652897009045895847028698039465549310117925109293317615487997606266631254681659641199743444085103918114275075619726995087267683604899562046798486936269429018642976384426566350506798114774847604872703521193422094793185367291706322541072347720702771389231018319732166019002856296573560487761142241082889656198396425752358613171189293925114719534603998776139418481165643896427032988739410582440367883429333355543586389355371361030646595973633905379428913641986330789026513243466260268828134750289316427882742211783397007321134879262467052316157661126585344326604818037790989099824823633521012031521893672960443104764735192588626944964582139023784599859408620208608755401914427444562931957961357739829271208565961697034040744990324043212944920383353101485274408942383305004896411628370658911524324696764844373942368447972094622978170995783165727896243072448733706661990395816728401447512018118504564522008968998785746144759553328067309263605512537199920581844981128438676496873598196579043234540439506437216711885427512363042921057854868640552158866750873942804643849582438890073109210275410961165005703985784312240863203480614231159095336173911738709229766157277906392144013076242570518986056287235232287831410470671484200814737614257915338909996522177225080259304849472965131355145069922784443191105571962740863140428475848217747691188114051262645141459907477651101704293271435705725738729914920583494811605848281696654326550953222639650752344301165825021441535718303633298044917027200973487264185361017009532665236942206466305468445361069366497397460340015301402749820354997254225826214579221084114690404682523492358488076694053944494992917827162267155284290035340761809903380337764776363951079172579567193641958810767588050915008743664291991322877933897595131138003412292653332087063331263287446178409457220147501138543687648324345755090531163522966045295212270637786343388827198603073113579045860836629037432410632065652964943999956578308011439210301870320373914087796718916403662436232620092483419667753171046540333248659992909469497240039858990534590636512872725226410202157487016637247664780600746754920602911170800920055848302471406920823430433271473531483431438233308858359976995212352772637065025857039073217336867273587447925047263385808316000207861764616001976972218596509266795731971256680050513249343287643994848538911537220394870046984095144012243278124768212998227774004004272474472920722983586084559786691254614720534784066395074349742168225939892827971166578995901983941220336019869338038854224832227471465860521722785537616216123826834142455334123447321763442167054720760537335377228125024515372419857828521988959833303857257710520584248107171658554247059672721521307819616603577470769139619643706884810754173825683676102882872243487105318284092914137310635611597233758437367258582275622196866098698437092430978044397792737836814529719712038730708881180032846111046752876990092326009674151032676832494440034506741672129512300144028577597383483393980855980499015227617498881955351329128209321091620663570896338075349343850150209386861654147762356846395263393031719396196412221773177573432015101169069822867487888576701785208918308694011199381458595455462031555737339100605398775490619349940184076683319279968555110801846869906690886617044468254211577495450376920070974871701007240278921835416953221982657610837221206150899374473057352358060228897053866641262725460008908856033797972122206306566576248998093955457191949619206108802009400574214803638927608636940362667488848884653328999981565324032981293134254180293851300866384548162722325085927204265132762921052037483024640279279249820942854891686853008596765961597166491569586500364504792323074284779715885307773724215475305739715114024041295072674246133349180478421451626019111107000292852318403798894481062032766684893312218133968677418588634059749516974731643095680408903065971888353040902569045473383122615344541787779867210043689674142436564846485195154032615791330809613326463222291188539981981337673217554516259646597119288324369667210763284653284520481411536920870278897420392459562878793212037221246006531711347013720326388225882781272260236605588091702352587126331260638334783285506483256580201757224303584346197823638632003039719987125271583179896685984072925460135468942916573280899946602723906570020094215011464419822773160846065320981972010616436768946706020263406211935482537842638559937109995976018049568609205942805904783263456150586157203598866007824136725152762345795900396189777622148116074957669429882681812507794547854778559462795188751440072000681319704747248413779812986137353988221767902529729533770510793682492803654932519733274448582987519999885969865083261367317594555651185733027951617518004082727996891145873842866809886037276652248237532402324148306192774460359323977727396890665889785530357617538286638598753267785623522221880750399652976793168484708796533971052350446480645193587321812245409108684130711994773422380124629015077573115329229615899059718334342067900308873541209193411228213206276326293388658775210330140218039720780888698501738659673338808434076009127747129174352160242704827662012545187925627343808225729696893212064861073150655475956574857125177626733455214657834481632854507586024015506419151512163618628169910524745907706903901171001850381712580397489120956549619294452400657621643045780545961799235338218395772504068015948609109197533031480607410700271691759305751107870979463826643510513606877279736708476946028593383882502974609025133111146897699405553270992356297439679410958009754717310857889798355848393852334434122764759558194528038225501545359931161011332781046439898791174892279989970911384252846468373731034098286609784614076515799766363112720543530675384989956960680271393262059700842246303801728931524108928366872174480789974629192545739232848994876493894721249976432112525880821228109554298341069081194298160409657417600550933767384117737611978748154262567030074652041057867568452619917602378938800405415837968625867864425423524163191520675285344639590923946202304939167835785519302379245418260693204629870938385058478554853624138537587707214934914038301701114526385906769349132301096807881332072127172579649379297254462126923139739346948068568673071679392725200985870470778891101093785748748826668829139789799700123498114756816319937761264360673345646090260463609956063301742249280640225708648905857165459351069602855779060595745171653609216934413550716482292887226901286130315646724358012770592126157564333968116470069192666734134000568333056170637459629473484350974899641215946674609950290303190430671674129391968977261079611466695065163905849248140415021513103497740633257646759797869139072774009084662076263348318771809979778428597751499714363462925843344209669995179166180813957340636583074041799458428570585996514513126915855716093291733469307820957474083309732773633865120199210198238334725610812813958823156720800017531878950178460349084182894552738661002338487844926349987143644087184625181748749069012097423554799732055677166100882577228322063363943072701180989830561769144741481326767670736700031749687379819006726121700748716396477971937383911425620954453568011252633003413340073372890809916499987861892535031548068128750569389056655849181146150328555339019413097557226356481506907685394140359882640093838552694348361565201948601974826284521586007208221701690786332856635545619153988198520908355274247085031815912502052384972159020010173581592144440572524278090969738271510062330662724577167753295950824974389852853668948239162048614454640745840168790683675792450311128589109088515131205993376478042438692089834580536750101212359341626022080790775165412477216295270812066785017029945635430506840437058159518719942805534213959359827622770839551717565222202390053617341079396168507826064781190320023758194989051320429101891254917447445319486523382121377166587005270359159113958673335426456719955705572600213820100546791919504667102774251358484001119679361793182021314126316439250672851566346814362978468880582120694078240240638659236907250713317007851597813073300747813695673517208110818428036904482772261148900469896327158784533204407225144607036415364380766682912441192914411745986374276889828683315787234270883261723936023269668392932338728635917421116253880510259197985375859334306824826151812967298734366768017825260914195420584996283957953809579268269888590708132330525338096178148866833322867666067237606789016863259085859804904458218717963573681943795955342793868518092962101320061940160802036599266406922438080555617619281607840827215515801235395055289617286750166907676858625212478462354941497193751646526190654866152780433116120552501364919760944771564537312034743049387190752051963903036348216485511396012832390921619630083379346888947898033594131256404632746285731013057736732839149003358566052688023944845788393031795627966392721379843501157522574523436186239925855724677728733869403034848341941167345047644368848569211291235568559862018619266490707966843476196406701912667636854013165968547652290657669583814614644754922016340248919470916790572474578570069316180823192097467314582490074242711310886925015871650922559019087471943228466923517606027636204174250583432647380544949101087683839868900979084751815906326940261411795691076487199401848635262325452122991351661806283115270813186082555406932948938502673964824510305588669545283529279314785670441117301171327286509254302727984498624237744357993800495268281080388251732048986193114579892745354576035746542615772049096157662230201379785806054609115310818818448973829486473585722495766055656197287168762249689327891501343340758849795421819264197144367891298345024890955976569491128513668507734957149637012340209422599234641159516108106124871045009414946710233885213925932605618570399245965925358942950499787366696812346806999632025266332417359890270533646059636472052657805062032129887903113675244127379353509514351720138800718429423464227067638120656292573493744044405701608913821245294081926851250370653989821532037276525354877909454950001793878230914381435985776298146889689292676983397784726375393252152278001746330246076780214512796242182057722732961705890220380991302164009660904132680525403075311411806880700771752482920542815049134829031278101347725669840557172978405603161490554643407279466736324439959691529364353785802149407919634939513903271285753237847328132514056479116847475893979783591246686870277463757476727008042170567209079176726274160232942895275773382396966811802838973699855822986228144635006311102096980899731041373474946712736921758180999711996250085522592088646725003301208453443905041893910897202832337454611804659740551906746112311803336589171586401563198122525612993753607121332442094873783416500005886804058504028262489511678017799068159492926189866395352389928283838064653704864708229750047705718519488233113507128585639736152540758370026955285695774900405699708005182044132652871848857088205873601274122556340168780299352786442794591833784239178481014093873291979826267454320249147829445016925860001418861888763882286154628534517687039620568568342520679858589606629726387779688652464548456139425240383361288352748452262452698434736879162536449785045274186105331180735789812064855700883894413654457303707895982335145036069569239780320073102225202449049891837886925805303545428340489958309780332260275376101174607170819932561601523653476107678003290935341577008658464039070711848133900687782481058775254755014060933099232759808443289243438269871537291741161697319425933074735964866039470071225148335267746965524060138185045668933911143919703993501378608176007294681110421389538932457807277887043927027604858150440852970253601524533444211725577921380468559177406080372289318171065051064823746644772119626797965210001862233273205953377309992573635696612390852322101558763252420382665585038370640087901688358285499179866528081547958857637635342028164881232933107377954975474384558737786723750740489458723489419615960275978740605416497874117969372901626781886222188281606714057207794885238019282385712600072175682983123522890615709990263463810747823883190791980558063835825393656552603629349134641523555340144689630598974603616090826724931967541634112925106237313870329038077275462481021080188419450785091740833350662688667448891333555462820872746879120531638964223278526336320937104554230092184297503304988216108991492023284210540143512277195095717937374912415627454587087387324727451013301187062725575663407697052821952272546407577346149320473803015725436822141756066327734294404765579237411626363923612740100929723327791514517491430142539514252597846080186584031822644064815924385234443581967608124106126228068500219897294670902257548630491181622508119866700107862428407611512665467377134718517775199686349537575905536844873039372463599501756926505392189813684850639385103894026689798195477995090613654522414276193020181577588909099729388149637587103192367843849074560619473451613789926500004480618940101002522348284616318997986718684314104122293658071067125888138736397254359625961561860083303219157979215952767510650459443203096489966915874266543049477966382669829883583578018307912926455534236043798405458924241110967354682013314883279909011820063335585034050004192317285179959718556792254678185536184234626405866747094937345169325946270526691364983232052935030628119174335578010416966328115501445482260932573776056272388601885581261608401005441662124306227223571388840155522306976259112744777036997492959896943797787704166743673040615463436050561139056439155155068287671585275224385392289928328099499164852892254019383328337375656155462018839052637959925498432570362052661038771559591782504870102065195127305229789231012736816523384044730478177965538187805359522318115876754756669145535322924638181765350168601849460115710944666625284570448773299447776861828064142669992345435887124321247159023741694875104792378548294618304765233533270857971012986817712519800151698851788098704006734733428281300804629632915350183544116989618848547488098245723079052889010998630875466944894886619784787193644199823438923333714314750956842537942600819349110908238205674916447494873384795260079606903266370628429415311061376650060262262001684578350860472719499361158941867003735686579311016254416984157892110860416033991321500382516843598072130234177930117445125232793813921273200778256225044708873234273207464732628275432150481785050265318801465705097272635604865829474188956562560132438525452276135415466101871841885694075262675777712959916005598950132615769801566819961646374588376182206210525462397342583348680170673870578930648999065070763160470683741445760034016096730497660015268713267522595567279845155517668108588736185664898288490285675075066894503963572187547432093511689808731417073358599736902430511770928074923381968841709011233439174410235404899392191501019907514923639893796268389322630742061330090798605497862980165503980404394315245501902832510412400618790759858951575161130197714372973392880404030950981939951623148051635239632859937699969432003232019899173892782169172570566779581981420892226889378482039846696173863068305751544715373636029937988408633303691130158996441894796230031476670356562153806138439497811233375453481624078694312217630410236621239629069163924669428201875622422093348500245310254412883820710423077697219205189895454570192842250830669394254437456967072017507789913008289566436994101182119302912942242422600078312693770684402530694442295126283950793225410960997124956608107333612793794389344024459657897241184498619948989008720433349108739383740872289595813498852311514288026860254203801998111785663939314813149242826952308761463094151867973694870264388225965292545539020813337917353664917248916879760666346734426781560794388662910455605150577044711028251498024908745100361206787265612047879148893827314390014353019546408398036097892421557180019749564142786586035811168061610790283201256424817872552388572958089338647517195549530464703103747448448934693747555827942507484538752347362563140016207688806302765983713011438943810050979990168384381928175409461407963169183002319457713430672952695149713673146581060011993838183306426285278208656227402909841855005932678972669078833679758771849817550243280663090055437173119593339012341504764887727841434954051381459990439335762181342757172159541522996055300256023101228591648034317715476585268188168054748034704417193641420796582910685546710864503365100252791004958196983477070210529143722786212248683456995744868609843692713429309246360348338316606363948444186357486952114782975131837264231137529428316657046808145555934465357334359084581320840228808274949506479160734843459289610729819910681199031945987427941313095608251406412123430876393366853597148764281208196665750453879463340174295077199251389929270291285124736933689298983261143259705455570528471346759867531344029159638097100776278357296027968603964064025577873183071669574797767144286185166213647733666973768917900978315785626123702721570325687373295466397217438423095990115968246711608450148845803092753708043087352581164539601387410797614867544729502055900519430557287592724286277875963940036952798686775336519263989368616873308206999954122697553829333287875337130804990808815944249804006863583555202558210799547221328410006550544477629355516844338555883447312321165789898897086858713645423715259586812460091542703913345177898905482599538761348875100493097334384839347252727009846956677928104642705307946018868315111582989270785744767633250072498430580904088895083697977125449791872854556561936075458576306022775506754936720690078854746921897404793400621664791834818760173387386774745983134010868227032102638188511869889439445428039013198309450701697782024742812709162059494011904838125430347248119712023909300118166622847269249077274846036469021045254107901132286709424602555679545407207742481791930417830550332705105997079070848724074642755889059938799417835058627053592962508929568293083257836128202771991994627267486734550127512277356843419924345648806248619858911030926647104048375048770300821345928971507236717021050907925671421872671701764549964949117637352371737417042859061824535489934519236787472336224519223391755149237290459619496040111014274258624957216441041002406585001055601782363021622139313355305505355803514165147508770375321166447168781924269587315516750898717017929228134580545993891537843652785772657219623094181462234270163806164934238721344472445920978432470627135260884282218179038955482909711186448450029313903169290908514087439255487666069340060942704109202359751782221872989553454630442807753055395404262567241445927226431485112219309809298427291680319049158171890214952881643507875212070892483763368681259527779821375082241516714729250521083706812777251520059824481895917863739484719549953735813762333856926320656572523141656419785441425753133596448009908656717945458811079010643871152427283763932848513056599452714733354174926220117134298302436343742903601224069667566439427260658128270476159660018736797962227617008975043770958736517337962631995263872148151663241181696074889525144326453334854359090853350413235064323376280178530452472187183721503454366535665538499164074782737110210847782378345061726541716516992674561066995159165537618924381944401549895843950005877238493593897858981611919873818304448652308712217912934613375951487155776323323509846691731172976762764669596323374597973315867478225900367918689508617446756736304347681536963897236928906301067110463257733030071374997832437347909253676817193406617193117197879704691839182022282387720369649784256710408394747491965062814858792912116367256742069139033329451844753853284150857929063242580585347021241993337511361091885777907480385480379461857194688363702361480140918720734180489253201946396318726879061260240189214004336780925711214008404260747197148177129167031441705085846350941059314354088947009252882392356503015778202223582096218024925879739563078324375548508316386324254867493537758235225497382510930425767322492463968671985685047094039979956117951518211813933256747214765799725459496616364428786938720269998163019615206643777431023204159666988616921392574620601947350905428880284695844331274716692051151125712748722669626110805059416227396013972266559111301306691650702439630090353424904160849512646588964785133770048967828587458400387364365750108635160131719350775787403990061714245027636815272682544297991249590008358802427018190840338243341962883856648852702188180325474841340078167275571901902471955165739100858744131973961620206627067551138998596740091757234086376621040959344450687382007184036517987474168746632289416784116727291567256675791739507397582151122099060908810643031940915925117857483521607832770210845146798039478628692685108672612018066115134030215021992071459406001063056589249635793254931546124766392185382460889159962432040066235678847317882028021615383333792368155112208984585822226966333733688926353791780382041792958705211694326691749273104222663771506333227928316573139830326890007627959215358750351651317909603393310370201638509086367723585450826311956286050276814714245149713502419051672692006715746255416709650905446839999122021171373472129070985789317118819064682576736077240970355438762344938686582019146485329153350935134727928736817660775268764398465692482181729216489582529375338001817606073472375264517583204603742391814821487265349529043577342330040326390884812515223228406654500721766177671350707872499908259933221508955747550880629233338324554286121950812755490122236977488903073991390820619724448886004043376247307509524220806063339298344464443143725547953746383064610416476450671369186799889180754206212753570092226433996221109702760008404192004011440372305017876405837246327918849569472277950538537254305862546910528061913338461235994367869276314737982339995328980841042583069815318419922571071515962370690228255470740847933561230738332473033412182254414303148850126041793507163610499293736276589746457901420335731970252273989000363325677722216494544201338608469732550548590724995316814402523335925631694032378639347863508377388393184523659686248886180339436343033347865245471909924971717515361942621514218674886883760172459216838270138495938765942747166229216670319017095798198756784818045763322841822178267272668356359703024993864706655595125255309567096204842382659569015784401473900511400186335722710218861961128942896146975906520798752438568828635292602257221736928882363600666628667298947797964937115170732239908282331705477373136651087903816759652965987746686425835455851657621168548965605683011981772925522583136219742090525574974290573600761459863956097008268036091237249792044035234408245271777077649666992135949266176985222936647076574510263822306086199485477611238843183791070039639539185908437502479466672160613522110329661401387457947875265000938380647927690662101573698290108437162345877542767087399624604568380361509268744234642520263338071776667607789708595357194995990232369956629226361195290384859740206974280555809442258524995674228102939369037035544591656499311267720829075492802272543052991256298849682841561679133590033232130941478202742683087381404331841880921794724669937950218414359694667183938548154477953754100320088780654861587778360270699707825603623024480801288762607360588993395547277641327191213226371356116748166548086431148586972775089215189868194025852888060372804710617444696595232783184819228031209892967351949250115524305970250875500706865757717288691749359332596445607041374610083669673629002587907676962416402772344052611886924987258272823011029434287060145310353980245581403902957035771370956178411259319826034486840985161296333029935910420691167831393570192612988087268762646768930692807461676002522873668812283764356076484661535935459907943893755668942423140169085127870231911776821052427542319946619072621412941302056628625302096348181082624426192928007124369732318135841168336181511960768413114146808186727815961076490613542398673839342788794437932641938146547336438307710155922119244721621576399325485077459022173765942069161555277906361837417703313094337922057689186742164221033211066662601216060663134121264415621329362445825950867536682162900704203166945117060478069157061369823284476703959238599028563837837585369394682351414924938693085031477930384733835763599975626618377176044254712705722857754613272807050379492328341740847123902619532609055512650515006043042137686544344374196596054517076510487561205113570944558682884965579027759885580889671696745489012297936953981747166017340053805222073555402936212145751347259319395214416858990375288326996004267580081295725566939126219771075751911133018724233043627623295263699309720506630343955756767351913488389768969524882304636471337560237006911324715537063263681725819137015003875841329791645979776595750340814073646840195554746065410895089905231833341934504177003322323182841566444593565500132986939845747933636762290746258321111264166465135286372114150538912040010794716028859334414287630097915017105705877161062518376005577668102865017794188401901921604450822310915162817864663897039328093030821500512359357109762176383936208671240101093969712556469360810541140330175958304100352973492446432532932971056327935428448240332002604675743981612474930432091907966902666650622147533953892234876696428786215928014464182949668431653930800667008625189419681653345957314803475472000849974075328630777071875079114781610388540583630194372595826357606847457952298809534877282764189733729054737437958537318663506320320733199772528693994605673280240915732428379812150587652794763202914258014961448518754271753440785057127296534588195614548174909773893052172232142399232315874287363014031085071343292560542396558697206232113495791554958577490491134699097536821636710671209169850851466008007367724504693218893541670245996543388974349716398903954393664858745326447078631671435208202740678466214118675587375103801657225177340722456972797395538744595695798211827738467496067640038978021229236248218682460241147570167524240408508854954584765930530265400863907401966268252025845501196155278804249187973295129628782951758171146859651293936808424083117977216541602342330460827295354451904589500701696870986032931221486309136305494405090566626844208911626633171495740448027112960591639164947824996830875955650137586944956277590155275704492298662015093697999866574610978674465534202440323304079322510490668252042960582510180995203212389930700227046994570406110511840008611674420640907370592564066759704559119601563456553392178321428086460281714504217327904803115971062281354170011228937601411376546395580629048527909235648537927004874191200888064407097718832523906433509897390624535262052082533147004175307518648191628582227631614420505207627782904308851858091229268853224573388659051806372665474802221807581202039638764249613625333859801061642568925318573308541406781279993059965078407426875832610751980713618054344618336597238542911650968519160931513198114896100950992165591909615498436247378689793403017962565513752743001441339231137473014936466884040380827743988785324423890176904484054966394193754147148404120669218571472088562074158414700071775015275451907540842863911949434369004404272871594475908737850090546058315982512225959244769019011858401766573925533953325794759136963016033457834814073326685998536804320053445120492053051391676924840266811321410563787315982840461742252852034405842395596112591855977935055506583440209833647849691762410322348388780403793206865607686310588583246071720353467737600596224828664886502928120041158441837105194832294004448581290255311352706318276512723463578170100023497995566570488279927705303096322411861099332817178391852446566460554176733790593112492659308743054445516305325834229342196120021541033453449416474293673513494714557477549324327580010635311531958224703442471357694222407237424891743028819678721413328235627297791127101985518342839086861223920968757663398965934088523332746302763146237749876445495295952003402233891169974309175559618857424915538155446812929851969662906970091661327152769424805764108124415015506410278347422383919370302915478000819956049898442625991700319715802270103616278396655255572851964631756880946757079911619454204931972704975261312055766818611255690894409609452650137341921448814429587486794001945999788677369010605496075535271908420895139920363883564414150664693622939501705181980798477302982533904482809958672975911841894067849669176501901250579323550509728255037255770695700881453329967983817799080086188771091428134334611442471532571035573992349916858688615500172823146230651454529635298728022989972762770068631539333088593178261662922030354163247882421502538271089989045424136419781200835078526644442969525119018064926960726680699308016432854228054294091960328297838733462046827586146275954643842232986845147586486533086987202935359992705506155300112153744381126291112725088207391733488099466701079839316015949498128591575901424644139421900358636112835800780267224628943507399425503865914406635628902719685797083098820827792377126979244196370225402778527650881509610334831850060787332256463494876412245260978646185002472192703358046958957243839536900484122856858593233364180158863450422855662277943569074365520922551661378183925039219970048761622518091452677278308303948969080588283233786949457793548931787548120078110347322080375557309883985011294779000662296547437074680877553906742928646182434112371485067327716469987308376938313004166582564901819970686686875566726993752223138852514090864784415660122856439086974120701132346520331844488934140005809455649819221816242046193413003887274222431843040948457125688546835175997095655498983807392325493707804301746485520892450647253183520322986484062932586664335746465953405232370598404039093528889158532247088232155341668993443404826516767817377328729955916454392134206102034156577039945847570256388699277412615144851302187818881950785801469572746226722561972601648715717916370873630754079582203627190053255555355220397866283034760058949568275280412134311565533789279097058487395280057769622522598773456947209962487363164186925938961684904998829550147339984497997717221599672339425747956163125181672782568906599278980974428362175504235564998963379758892639725482020767959460121489069161282955732840841405056710208862323808399779475449805765196019436996310088905029345555550288346462154159009311570331447581302253974376215693458041930638277017902700568501757191656035931415715096771571412697025971980212925796504015419324080055167414848192458411965627730141999378387730008460512582876323389487782436886806873944791796451078895338974400855521009718833089792777849024341468283895569193717608657528582435920619460708293509293139266120277082662888638822750908572628547511401164881720106406968592021145664997964228994987408943240361257849178173230271249003912224422512525563965844717276194688242538975419305685503454502284828329273535610782401072060182241692252867640085056065183371484612430326500067561714783170902319494329083265957564269471647841850784107647095688442855121853118250886468984941497961021821838924285640297721959417159840312319354804474383656726581920128052176582907594734223714580237038102166412572726190659003663955779300627702990225508957119168343934446092885564485550180938596568684512767974576513183195917746606781760167886514352654427110628169354873389939716657959133575740119806049007885983381525605266862310433456014735877007286999207342824034976517658390684647987837974890905677231265838980262617396803778760304377458976757671989486192881622623660087507721015813194984704564014733796579832913637797056217701428366076676030881634929913837849209094237526964872245112717551643137593733793396150777716116721795073413683078140096196329608922603785908919461582222066022765312606861661112469343266848002635524535653515334308471646678250032079515233144369419613578934840838918765228464749632773613477023396068416731438576676076430185626300177874368028758505593855572831936341917236929127876782153332902467257702777399137644761698957752676034159352717810192953708704941936155435843985945344247713085574106831144288107894828173652666138975317859006968408111895023619240718622516553620643519098136334711560030090902581165908630487411091994496270140437720781715362953770436106321829394733063810273919669971755484707928995743073993514215099896959878239460220559255804319637514201796641325132082381827776066730660830785014864425773221691632982310822698808572667292262263430434698863978673663486720638328677250484169384466810012300262320027579077683266975028315171931584219787680319351783261047977386095756742060924005819846861441717842044149149379736387080603283343677897354983144847227688252419465900977575662607285015995169633747248000684065539326525669514387331487640262934972261460772319267830000144289199906186751211455521662409712243457621268450399485166868011801407721827981000907843920419121129424955415232849784171852711320688075273113639606440882855648469507610322168450918183179586806893448604764979059927005123056133350734879638308256113074106376322448253035375499712259849205332724623884252330569277663885580762691749297828077384901639626864296841259031367024733438965807922653484128761737589557436573168875844850811470747917236994469701012202401639798561142201433073209998239356287321383958001016344715809441592733544752037460136535573191113218959152878561889980950411307512683761928824463006831105536903805476769398945002529527178694511975986921237563142550391075641309947173205873952047447078277021395013955898490291163304018584108111919416850237553056802926970989531723900754527385108726373855117819656768674479671259955530387456959273322200052914317655770803800016511608871697608329648455576787783728248054991048698052955387947838608482717178062243587647809835529919158792274620994736655002709463399262819937912427737374208261020619932100857913896159127982001830672018401727113107956150430373901697307558106524274431692228263825684738764347019803483612880688655585987281426987468806132787966503448683685067176958747030505760347698445470527140282588493012226715085532621911531737102589177116204710534860351684311400284742740160749807929233455888552321492470323457164572634792570395760586278552081869538104074975526418850458314270622045697923873853444763773255755461726230959982237831591249268236688468677062668831513883376019824068268343197048438058283925757985618783366923233891134784751205755243402306961043566356323791664573654876944387800863927405948310800660824516064613831286701913624794108228779645217564116125585146492827749565504329366756945724770131799086845556372200462241826534782338952170325904236330237904949100446059558995302248302208817222803569926558380701378872382163996348091703918954155615710422832341174240158552964873012946038321412148645340638585533561207160860556461362917256867744728120699441878110647428735816656382677775103534901785264816079224314734358315563962160445037438313349409910442197518254175401219077343211507784502833125995031396367934885400038508119729881660890817031671991010381845048212690273546526345020298317896740625298750422297452395346707957005930737211609069967716310711344081827298799308510118388934952186500279113625320785098323787568875825664891214728365095692443103121383551983748811729245323553769614656210994000815786647559623102678413689963843786254186399975501065521463808261666103744700411084107133981347818187034932260384809740197955657417911266566443645284934739946552251975267750471977055103516614712355656148441142171396611491523478729555464810747364851515764250544937253485927907207683664124266619708320028007360585342484783994589097544559369442368485257458940229686677768825877300985615195420038775817394070154601326471907877301724532697010372809060909373255983375735219618200434426591498389910325532252730669952126607608988570035971590750612950103836340835119767868314372336066967867843036503678317393946085366206390593088851043504714119367156330872816574143169085499617214827860185174111471808788455126807797755802288480049516043946130086202908100078474604466601329028939712037939820899100313440658253621112647069185749610468841864408557685348937240021738425184411578646905664910930499791738891253336342305915199132326424735662417569217543400859440411692944460096451975268373645303022120258208943255642700728052031008381884768593075306888608493209789877369575430063954287803117401384053526478357887027856925382516395406478699006376869984846037552381086204340753134105271811347483162767441824468709199430385504942042629844645333885078349615640310267706525792279963788231006313183698832109308995086575059095398290052300047927882418248125028511106525447862369512641734570880252742102345789925042632622026180062197799016647772055219231359422122979831966058338681083740727796061497924384451180214731520956330890531092356941871397153661704184036713801844746830436481527684054421799678519457079884616299825527514747756589045425660523398050602238916864210616885595109553921809799449935893030497172670092998715589709609023917374986704112271333565154220125947044971859876683184045954898603339783269329324464200074907766397407129635226974743588474179682921876240609225112352973353042695594072549754525804306455137747195110051023299205399558222801906854282066163094805952790272641770938900611712102537493560347133255184839330171839798458537950070329740677412123762677923299566640742780157685015827587455613820718702528269508784680301625805650591420664506447611459943651263257229376351337496384399427624386745999855947923589372822127185726211622993917122860832362932524951981372014628387256503846265711614138519729798161672898115315995817413832305208772346894259277008672406813785829597137322593108448304225239007078720602716575614836803967689348446584528484326635900101315501856927157855206065846906942731774993143893703483500417703247719642533267927303897526487971885415242117084866557485586995126512351002515211419987521038125291729876223617127491415171238782538833608203260046362475790126204495843804810098984205150002713730252701293251683255819514713071417448796474870207560782529924431353809357035542627179821829182089465346320568509778018280967422964528842445608253206743809723802377093452220080136266144341198311035497705210534532735568848914023440683583353509995972480853422405016630044545029725733960253344321871931051848069720340537921528314962122452449960386831217160380908868618004011678649387467971440847330379774359187547497639481028412040396824011668409715426929044114336529772146918554320776531717101211679720030782533519744614410614181159754546076467761148928932362523564312570306425658398549192007292943236665436057893420016823844098064221036108470857104280831089286864351572844772580778355945820266666147465161319965531734136008889373444229711929808422234387295877400002384863318155461890247535452207460203488526084348044239917455608168725801616865954952129155697090652197120261587708904616363940331702617537327326775735810201583335297861067219320580723525019096818727332688285538123858655509625482564688908645535687899050580140713629699383310800324973960874337585584479183233904830945632082510624302142781713280364373861115854905754322473992475679853944950509735517056511936481765071380461069393089723908620958227735458501504648690234891229715379009029220821978232394133962045782404608559357095034900695820192356664641597329237922528323111174306859651657598720116844185172357998415504766080177722320283939389018040122896879325611663684322843470941546369450137111066402638746446593418256888524199563240529230916829911076629493970156431629952457539008880174482497736197398892411271133206398254117545095899382496115577373154396323297577157942090057886247688755583778565927981267450250813063161278597669229338226327830530355286842783620093739248457248037739037483292339575764554437599141658733459557890413623576399560486466321453026985332245111258549996702501333482892047051566505204635535862165838164989884592784122015123048653652989360012769854973210244872498669820645968332134315436341579300591607890623086131100035077310574180206735847877462598164099391839012097001084411626670021428764015669846209646833579150331434929122375391829361524303132555780972993737796886667305142533442153832826907094108822472746971362455657041749469258052397928373300902964951277317630105665990273968790716246120787935383785865059956298552101685408763676187734788951904967201219181028321559673920146622490019764554876382312562120600684620587381422474225167559727774622401011465999766529273263106622714399215022056538002284640496267919329576371901904121825349347129064758680391933895696795800435531376879554136165052370590413616647512861734165427588845685234087845773690228305876216363560182881995904812833410233820546378304101316607854860908046632843918187120058187585705727695314414697474026756332415439499933853089829461917615424814627568329725050928836991214043023632038914880732971174891503703595510788618291151622722931117663561371350424184353199882108377310450405476526757936396320483331213464242439378446021470437092661729520246528032702943109595170441395418989966878802856117138480832476160258699953158561088690433453742195944137300228859732306602907921565842995173754706357629761954833343669349421492315496643300516566719510533709378000107613965919564448713161337428741105508482193979642322131070885333343156275780972551067794874336644891917118900415846902226527332977152125954300255851976055977795667212477635407044678946778867463061803203695541009465113338010536194061889797243399041076275251690198433846578656093315909583907452036048361615540195931487594054313097994115260522008775855883353241857598755287484191901883238032800910960887738358795657797382072718254971231717376243239994587747453669149667697923878516287465261081857672676239007342662504019141947514969996359836861207221037174781223086817620837565143910572843639011743660509871267135309797825657900700381917106353295409428478739691590172220068421786746030491428168303875826268242100231620105447015979248023297358023099546409039687644111430189610191823249466152534609437176602484665939689348429820133159659882056703230201816236252396887398994738328020290010587473915480904469408116500832922499663517282380677770446859415447619046738156724193820827052096834971635750669495647036913579980503942218190060486940635744655913511881506302300639545986817880410546821120833782112063702815769421706808923379494409727292804854238174921814466514742642854387081562624214756702299231023664570978145750694283402562428045610311711644765631273873019132616704505259843380324893391149435469382622939165161210061425249682343112849280728521432018257785869879015198564503496798873827705544496569306861496410041687025169338220076193956697754518314631955211300248534258871920776054058106516742267973723316925148976007033267432902950849590849200700800057284475458020986990082186146905361633139182127278340665951852299497888531417732018496156880730366055474534707110631024579442413404520909085508119387982209129869595635554586303648859695490482485062916252226588781194353470292503621227458637817004539829682173472329458492055036123160821673834666209510001053032012185044326734815685121883498267148167620366681981974223843999881121502594122252034962340424298455264070889554405843600546745298501710412441786472636766833841242794389105780673042528782830117539863226999857448661826351718579775905865347510202769428827251365648091471149775365745098803597202699945863806977755638263262666080748783624979078862367973636499937807364100426742251975500601477514141610416425009459138566030094308463880254780097322415139070344879689465218148508378012897091317861800221932375388176400680085561867085003385915438512754462348608221262216773789525155104402940262017927841647224848528647489561362472050551301161161504293024327654466968061699939980765684425208751965739754885546259258404938236252689085413882637610082673481672358535262670639229895086089132451633779860565263935881233794943968469054895282142466142545360160132023803619871900768776349045089014777256692138878418506267219657335031321385381189046141537142957841387807938627293600620386596298712356782846464581000033848526647145536774858796940646162220901235282156456581989602807000450572050250875089581157786520825925250083131112799109053944692938293661389042645002523044037406809040843230502651686861478464749143123085598752272554159025473691875665717808559664868184035220543650346196178969660439634255228075756834382222905301709278204266090560271842550731257357816803458768683784097128163759963994867163645355400832220167702585715814102167637994491375172494473163772955892584412238701409141880181979590809706355855865874953576115531113141140513148054143407096939163347013729508650339804639108889592451368224975415189233277990309621119082039436448427466283118707640692807374918663118323214835939878577536477931849158913217313953696930809893574485525366887963515193176955084735480918108968269813939426204041678138090351322972680282833103611488251999716557963467133359523544193375507276285831828985257855667847042638129621478854005116032942684760210435474704441272537173149453481255512019212718395299451953907020482130058398032482776797176335358668141384207125109092135803776138520037829604488317775890268043755321636218043645119076947414701341071900661190646974771724774246561551527666522242757100140467107343579739898492482931221614886597712331273585610537763571866403644143831818558835130234109855826383784266091847132441027123969996195690061264195911595876646580233332237511899523042661174857952378937574729384791638389778583193873994369773847084663713283475977969249314723086577315423819969159790729859473246816541319541651863612622371329246962312181574250248170042602467441668249906346523985219117964398249336843042549807120323537748323699248376387940699310820743431383857307668568182405244356627338011137334461904869477479761431535847965568632223387324471260826612411693506131898338702408884586167075416831087346557490431738218125633747640214453214014779238933014041026524570479892784644204645907688655922366224754816385310163090187577296116771799300398241322064668256853861019150723457897091236639223764649116764311221363949540236829783337992507040389694413214367782717684093955849621915187589142387591350400207185434196346547586199868055360434632269613344822657879097979220584525236389241681258481969628775935565191484910995890223231726844560094567967404307346467365485765662627225008812441430035519736553829623283301162589744391924845972452513891124994937589422358806669826855999061993664686969567769452648871545158655765253431088905021617609393952159017465437622336273957732292467719421003796004370177142380112400164626584243685337172293393652720483128061073709014040880425003387904090398898606386302450892774496474294494448349812777438865157428746206320953254297815500029774200927407597293075391798697076980356824299996689138012270603074209162726430529361233760394489525284330728187989177841498319257838603858617048149447693571216970870372706179754539876023442570432456840632858382513785171457054134784048875658443803311033740490565964565345383610054680198821659263696317922347949011961654229808944280400982016993565299846647900515068306208157226036493274412270163807156329058383776760222585908672192897506844608218707012713706669255792985182668932997178309184389090510803810384975296284085049394054857704167861457567724290325167946990225880077808566750892684149461548389845898217334737985384945921502818851545450783190475958231057615220200090077479255736033791690809635457894219178685310822676437484676519274830018981355760374115378714480221302204608827268634742837306528918903443764063861062213271846382157490224041987505124807400442925062277740263328620384750028910378711194677591387148054055775857818301578386189798142588634141492403124719693733621063655310502008192914693600455715320212561660793655335285296094325987972835167548730615882858587109584600259890050899061880872887297007140027089365198997541993087323495434550561220616292830143585796560262788572498831895611660438899795325436475650957006302473032081953987649538611099075210502852890712267441598462604139672212724715344530848269207883856461653353420252790506254228651859381017866520605645728239553205948596588256841326023570285520276881940494153932447547085800749576416788501380956195676366708055895899201115286548463971502276648847636664831133332992616951499582322324670985416825870340249731063460947083754557021796435995847954608140571033400334345271401519272091138344364073806364690838703821395212433108050280854813365476472056580770625880036925533937886526512082270683745181653691465297628891168898859699079384546686309758551566935743303581930754905060506119853038001691030070144010060009539334572281878421622320777887364331635057697927377124680988554094837262806001427101516148641694266203780938915388596506547945748662591903858923288245944444748858853935560148685605504378836616614017213302234043032834102972386406895344677758938913443956490478293395777876526859306393618580409077902226075748645868155097908679623769624733070221082137413460829155128063700781702151251739800360261504775024916900022194074629171302031880361873527041310043254016010274974295253603484836145018859486004671147380532436109089427058433824744552219432889965907277208196628321239047377626809688005124001797536832395986192260870168229149678765485003255969386600956983088982482914596174577511617497603232996575649466649842421826771224779656743297415065977395151346842938827217331213669967536540809151956647081921131227100848516018252344731719369137580457645256953629917580621246647783714951881319736621672307501791083630867988609848344993777943125070727051084654553125684256274293169376038317892507281804235404170076994335900885526506806027738081498923490828564534431468436788703678186426202627669479468869570665776102862101132794351430429759845537684229837156208908438457749048798826500521035908880397660892109580334445479953913926718767289302126496887039115596722362816932506619792506381536605596173174058940944383374976336989787779914069096818104657369744802387772762327381813548712405542484060228153626371980668496830601597136955693677695290575578910214500429419933629741080809008488585551027665140576630186672783470601606330162367290513480558536371626327160438989172031110411512225461665195574245351947994620214707221065148242620843652594189362678225720133748320770158035367024116799263211049804142018959654469515049578394639974820123538439443123280748394873563344457687007343802063393627672883504538791953734230615088116102990130154858215888106479772959933369504687186346407526031883200428992157157382226667379386877603698633564150175625839152684863943674991082181145314521447198625347767566891849714369532804021447408056678086815322380783869141345870633916062728016703406613657246220374309738571728373205600863966275729552769884622316424051097662693297711995983725258122373183811081488828639765422398796160917646298584760280109950013207261160631472513545422435665529280414159131126570744262533924202974940642496425253430797452810600917008844801735927717564042060541656260771838833265680425439409033886523383230012094128701448790800630227084142688422698602170066196534135952891757616870548247370079805047439350468755140996771659918216005545304044428037330586556399980638380831559059099812415727324579921409378633383274733200171392620040539637974321806962997460037935378125123784395769759569006958584318535117533636932692192574564181423074841501275644887566972061648051186285026436166751097995477899671445922342511977993911524422728979999968480041968025021872688410004461049007158631096709144567767337097393689448031634534350207552828418106696999747030226220782675146863967488752058370815262407645847145867540988873016813121685559136899416854829501411770446636149392534924479648537465049001026979948733434889459916504678630271612041059719529145098977703723361452251764449497008827426856681146863973825260466109007316684311155866527549095619453520314208795653851023325474133027835618629572239281110119836431820000460150707409038407376750405875215188343367089482943659421006820127068418907601815273021896923191264152275401186011318007700072660841890488082657243903346092694094110777717418221478326958790832663683403073476563547171058745940802021562801978121743341001471164194546066903480255231521306655533630611453642275474143074726312566170960537528075598651590029835588806999733416910620640933085831723508259035556010075933081595720546875199528813564095632101760321299190462630314178751554702735944964002604538685118165710233509554774033162427432245233625642913147175279008029819060846151643719949546259592907214955659596052069391540818703737918565969632515831641026642495501303646062840424884942390565738952174423628204969518103262705273356404224319119301573760178285893165658855250923584183612388138575288025973056110634263127135573796329597291531086311480412566537629417966376084965429870391180387626250459884361081828301402375904544221954148543321208165324398603995398015764890346023928760564310044490711113098607964408429050551162713347006904943082203477159145185909060724470382570815101785901712588221248060420780246509171392222835358377627107347916089689094723590229123144735011749901810290352444943588546241512078593973841428146184003525837084431634894535035016532496094546955716627490935882865484500245857808305721147621157400320372710527713063462129425327150050179920614198494334744956095836254288472414364729749041843618933348644479488486059580651109079297532251522657916664354227214028412325514280084669424691698051367317390433336962167654882655751777194391197974677932287836299671011464816216876952640760130668599301613159976278386642842413552553235021511867635747988526501288801000994467200123412685153160675176194586103946046647494870492564257118912516165912962364635087980498950467375199336949626649461838792307581968297681703333590472099765483722064541697508046302731029462415615143526553786347284947546263778429812888733346804061429142440779945970058016764146621487570235555121340096300509310046559596768310747094663933113191347999712014533950836444665166664719217482012914007376906041385064949600090960923478131856923256581452015701477907290649133739708637144405865693693864269695288631605340244974804317315187942188200212641485051235880610476398004283397618937829174053152844962031890739770171313718235739981673801853064546944576942917864179720826602844250228458786090368306253447264868492540209997340587965612942067631550783165712211013679875311899338680520360356442516663028311718277698740408895908131836031877223618496475361202321773104375754205714751467948449269562464813998188775360730646503855841836946251601448723996494749278333357413137484897176481576659440732537583455173501806228357425940580253916709189046626759009939951855064550009919310120470221746440222349774437855360423254284787357139412275514118683339760810800546480476312995563006989030266524225598746566885446724532429916388622808687323203930841571654848176936140552770790688953645147302264184930050807316616294117901839405411162049359733061482642856989472665664234970809509781815495785095349084924615836735099882048124630047489463104932643274764811897707123595072271493760887030726685683600792958209893532330040001912328596781303057431977305899198596313117337683672135628832198983429478019860414729591102654803631604787307093298376358558660575477895053552949255752222932351549797839918299282155760730864223865434003661407123928938832417750792807462571044170269812248720144562800784727888561551011744468539580776842871024714763026825001442008680819351407556644938546337374792774889335841495105922362650081519035407581708870447813144133033385716968709934560762923650764662519813412241914759152677771691616168750936517671750114921960571482196329329637121336399257675126666718682589023153589730343402434444267940955867977493320021052053940228168338460507115396541144473826174464272987300649518894612158420540429517217716723240555708971089515176042351265201973118753980284689558708432429699505062551098833882427279315040811343369859987357675888819425422213424388605583673338520316563651413334080058130980397855659636915828099674125748075149654480012216359692516435323279449181271161717122631397623636867016637137228949540707007209812998995636584454826927417740906341599127643529015826422627023292341037434934792788602796515806469149712650501743303304775833008075554845479081161523306537225954885140486547497370650067224064916983390375334362040433181674724800328681563004435592632241880206340170811472414634692258703898002678134222263017654860853819048423137992448812095848813892927936756221556562312709176971198664234409955657665295366780240480899462099528335417862676897136236002802460764953222800898326835571554811431172048270115112277806631569238286782856811473897657609969731038826700945850263794058008617136106130899822867563595112225075292241679074018558873954903104338880799271234650796352798292665493377538193812666094839270767222479751620077792551853699562254237574493578386352580552510700056140203403902934204601724471222230407008692837111473936311947134303217339154904513409775442878491657267907626845941337057131622571364414419455092474185747709769126099002126317084775544952707643080673699500307627484552920233969888597930459197540193352098185659841813629864597304546125438166176316462319472015203242942693363543503683461753306952079886713600669801704679448030675632568739054125104898633384992403912108127896704073340987400917572222838994512904884616542014435123166353967921679817565648826306853639042909530184964215442889521186286688388085563259525182307175476984906774172917350922735247548173469225960790833693385577844708788522844508954531593421062558617371116328446467732078288770082359244775555333960107379855111577440967064503400850230384175124781325411302797559396861231366897916712464499682179588411354969241668279315795392763292603939681033604996946526793747431145294639370153042426195735349185968421230636094224910497343220547508928032416419844708456876213184718995844765700284273259771605977669519535213558961596493641747169694354773593963052409339484510437496925903749570574676972401571348457358045550863138150269067914496868348775342791880245162194547162948738969417551509924627116911589181081715398041570803395641290076686934890142218791502317860663255264798739894687274894570624503065055587433949927608672054671186102801256836365429712743513805371931323239560956155373319066726721438697004072456360481153996030843264856536062927598698577465263660558090051014986452206500775367768024971993956380184113877230574059119923302004950244073697631518290453286624516769562860590287037758169303709113459883106759071983456733420431256086437679242037489779505239972519898738539490365390695204586146164137137198883327392686824059386264242804815171574312511153247076285851694649446677592239242381121700755681270270970336903041699977277057340447188183047444859793738690030866872810320478040651751867737971822582647062207720791944732969543331628315567747860872222335392975441024355753814924311610132605556824172019698563178702114332663966710448874023002009208959470458779902535224032242333068992141566360905544682297850792704151097246277215477385169298511517257548296462128509796715395730443432154420375992223866770336727944393106842628876123856978942505450459477244913193634430017506180134867856918175405738234772765342302444465761766523154706133274323449159683869227375807188528020493034636800222015051517114411696368833567422271417765638956583519583919394791816200658971430526354866060212182018997403299417125593256632644359492263529466749912101202163462113673293575034841779750974190200504849100467335595552453304475823532118728565416302383111463807888998500917469956675159269534436067401075600280018788097680415338206045246093126001580490763694392083713902005089031089595837353054423388339621469261211735357090225225874273145709463139061618112442610038337555524901308648545049003590714911053915808285864723428799653537249582028564741431306998123829154065019895628102063432379355281016630816906625505053424851398355408602754323086292621166476422763533631042007705059628682438766285774542802581050440673271972049866280786302739741329418896947549222298539877673103071051279390314361390119063372625040875719857707202889882512853812975297340585469228065681760178451512796333036192512291454979719461603967412297803025043860300115997119311354606166960808337985879408271576615043317970526801676014503996483346824700852851335595622274431395587582651885148024963156672784096721391944153891936025095583201685449276263601365158959499254820973339729554233782640040552680225063874282677928982382161860727269066163687034728823126744643606009493391218681595706151891418869952626911239674261597084568384470638803607873780992278674587480201146775606493384941759899014656157736206093743849638879622314469312243717636871886711189496651035175846710573979796558729332150231591456838539179212866807928370548446354688927182015005629447564487518382676624152879594617401292660327070901467258263782705461540980371357999916608336024795820522122342014314906826267014226699836755958053353988873338982760096370871509703456409810438218647585883054348633308171789204026211306149050836720770337066988209587584411022886637059943892821284304401399230013806826815085422687376002410126067737266368176852323383852798008739409541826836358955177144802514446316715820190590781706106323703449601011736564348543957447092717962403064295651974882806778835201313231676276756608155560393209161696023087157201825032825519347668379103036046444592244135294843250891798693848625539822187504017649074537144859824232920499577830451589953973003813067307051292022854711689577414873471701816083063470000063762218657939266527416874281201600284792299966634984531683074926236245942409399735907425661754425192160795115569325248894000782096940328331534698675419815008349953908552898138545157955538363888959388924775515951085686037786193724605475811632656320536826358782719054127000260141595632468045421121384563271056457246467677898976504660096976861352703340243921664200213513643452337602184912378306469777582329863190360792201768971052906535519530966826415840433186064111955168465182652371372824513620377040339302066470521299606439632845450056190068288866448980437873659355194464673327803602061424613124999301097833430583841216914699238472872819392430378248587279491325111249639424415792252272498210784806561407821652628053384066342731828161518181496309142770677475714437875131026445584335817351748037662554453088632229681224536686829727097081159142680291468062236473841487816007857664169566117894355385555548155790014034560386114577983117338662565803428372872981420778748027534536375752831616537194870026481571238637851511898622058386262963393592715865662674785240136564942166593188346919669752056126920236139236816656997154208901625471112379510709454653483032352657550265053545157819945360883028333131429752980476843091022054467693053471913238221431827513136773772134324645454172630231338428941306308716933558613752682947644227134143152595817341522226742483722376663413491336589462804067035697731268187347831691310765693486886715050343626332036361258201827156061753640157595877691793050966530019365482354748763046509957597174522933581627806359874918559376042452028146443622318150823822537710144393423226556897173816078429699756482724458614523070208146410984912243716690840697220444315713781521723533328145201681021036921621925087624489440937683716510601294262348057109694154671872001467679271387860068725238865350675668527075329901521120564713760938192263904102201147228615577572309755102305385145913435875907452198610851815087982406864304732940943926990455830425016660653656148574255092482261156272901354431920646413707764717779032676907719281427367188106660812536281721728532805255054155209686866737240419575705688263306206273832894722583225671095968107473404205640096898337380938844217852625742583555219824484186774160500271053623966634952830531130497784602712325600668484870967634078845519892593637770475450414624061336497447202162241644154095905876835890655141098481767401894155048888678481947292501167375219777376730994659841463227982740112919320538949878515623186005826616972805590126466426248942017671906588037062931387474884169864919116053523088398084692246366946773762342965569917432961950012741158699538035723007034197574422078086643205522275377623232156115314051441076829570558439934897066973781696546472843324972365178936781733976021141370718193061576240217610194457276406423511945999584930764955107879163822256174924803425583815196662669409889337641374454736696213224150986412586184472703020785535226310482917747554335961217393552002797379879574629884545231240078524054919293173284611420688425383834372129755508513087754953348464268344183783631902682725673160898658304558377816027249160769774990733463125561599907029544064971731983237971573805398300765028867450325803827047587701451332476703129440696754840975570231338169992663838723768508026953671032046014948545962964299201332578279709107812199667889119227594240122428889636160388507613511885976554265424097635860029180114824351767595545054553817996557627026963114724777039045979429695559533533699767383469581641149788851993343140418237884836650352906422107997037411909462974555130945148844774182855850001454252930061533030239454273086760131291447916390973214195997327584122510676729450414719233089099258257673434924709614705660818156578650526527443000914797401019521726933392710250579978987447834026841789096758321976904426544385953132754672197737999511965851532013179531842298944924193280642368389093794233438052570535422457823151203795309728922526089213963886286111246821749797169502691308161497475210303357066863527859498122695953064599929302497551058495656595989928466615733396900367628725519867441033133903033355306924424815848720608849184079067151309106299217411044752823211949954737587670730750839219102852988155925884741343775551875145738315101682901940762992428204547792571288291030509739687264819325002624767026393003131486918214087399860655260596142507524167780807608846951083634236513083091102261491422901243306482578816060666768710706537292972445745362462500230917703684133726591824756481464562205739606102691408003619640388094486085957739560344036085729342592773339932526821539007471570972813165392436200530587525905550129728470728031888341543791236266942340760436320321927810283942494881888357253717248258819612795755520010707459086788637411097763450385228883703914247933054075990568006036015014082842277324906382234927475315794312253103072219114882038214665397404317965107564816104197194849990965990953496221339161353309421737879249807484459449179941852121083696531839587912734400535809162211422066953625332631074242660488683771012357832461220731834550379195589144905730062384528532546773557490910228222732799324009438077363917601057045202323940895449858566036147758231044914236644620022764745637761843952697573988108080890629259796799925606888094039580805811277419351460477802026083869088628410409711768884227744091340821916228584783553648337490146023898396037468705381729238113770269561642443624297842075630125716410737000369046156021841504685430526385644724751325391678077520142592519271971359093957898056626419436320249254918686795377666658939095932214590246758945908564839996010807018157141007463067338851092468312425539590909866665977836128940127132456431991266631627549706185141208332729378910133493421985319539838253853253501061368508155709506068592666497835527954608255913201128918917305632563823743211655750992424768246797896576672548258928311764492483086492417476444564680597890723055157988306560808646364439950551197623429108299036519868420885358248725045332931205844267110485277082765221849234502278851969390731744674150226989635992941652069494619333568859283646222840427363840733198313499714764277612380871646588933578121724396444371224294912394214403866615153988409122531707880376541683906402715867204480546668394337144839760954767858866778622202002717337405908458528956423005800894686292736206047511377392224200022212292318357121797949150090739728439410337031677628444976332581357805654941560092528684866872615171833205986037588947944668144146416446844873343164435615843085432994658755778154006424096955827194350334210446929416094326419280061221708257273237708954405128302284284301479884267502466132355205619648748919101675275115719183960605488290308182983490992333198500291334557775529755823583942033699827399738178369491497080799547962337897942755195811435309884631693721988950993113111673125306358242059686220949445174156193900981450886407048464946388928154319105251122784773440979357525458443538668284463245067163529236325383058863195832982530768077919458866613702067817846237459338955849886912589751311428420025421973753643411321269357972027488871196749200481515660984109768485345495663999059342775650194682529711137335047296482303888300719867232288203817348255779880547572096114978434327717275242999438538363502747561880687133554130239957491802975680910185139903107786525373593390755810964950293174414897676482866669684001332695226806217292517578967742790414393847708604993701836625528964000280015556468573273050670775270184228607557210190539210100442885608124272878225585626334293118262716371936454251140184766689218911508848138096377958086054168211373207363926571361782591721245468779191398508572184245288077231003167478627343024240328884529020898114866846766340203001740845077103539389181884110270011386199786650137875944141169946231272153864541790293693997077631276986955439217092454927659153429910990428369386368257110401292484382033603283830478896764261115942534498125007368355873922343407911319842291641142464683746381358814427360391137288593012158731999209117110881944116419994657928487435997892856315230477162562684232670157024507502404031731950258113623959822913828585013608445841228206279550664919567502820933774475095937698098118044467483559447672024646335770721734367321655333395103623126845321234317070505406602685441924685062347765640120824608591985235086619647702141754198044802094629034446263169774305157065415115949711597131293495199675108379750290729117541948096516812846463822829012193149388195402757376066625515315570091256919061507173049062504960080114808766223737212698936149586820356642407402987941585896612179092508936939869098364650394879955727590641439275906461721948356188298183435229525943768542464598206320499442786642837911588224285914162042826395114231256403428050855085594271892550402488612567623848397453717717342969251201512081609422638383717422300728589958005958122010950539749267721297643060942949400529931410517112881328848929672645499231756113247756837326581341268890237877416257626170634814604085679794207877698955024252281694542114663674853059522918446216717120619030042173492832332487139790626286850812155646025196000092522430601880415913420478228235994737944211741086054179358373042326849838378007812879634952042232821084584935789144636757679305040622967485480071544441690117341115374872002867522868506006027681336932751558520716080902970542342566647677689226366658965277165829806989343617985666538904758047334935846773301297425937121452019693864843913205278345430131403836416615428739260817724199843757271500430232646362818508517100571335988073701514241339189674204025880383488340843394220742774629219534097696599536854560723391618290522947200275234150527603065755857977125921993094199679280220179989072319587657957979408236007204566372567602036459111986378448447873443044172155714042440160130853241086727951230541218984921377846895344364274287279350599895748555914167986586209595625224430725422332486291493040052111120134957895654221003832977160743917942895278617150668695230699131129319239273558248418902422948243593073903172546618104256858314805102210338231784589809149975969640777562323717287624150328194530949930498078876958764944965853929448296668867488692525004760722815857700889239596297627129823916830441039453371993408121434963772089062261464827019246815522872954275219834491720240822969014763477023170536852814841083992366072476457133578173972740896614873071133718450356935883973238406903366481312193693078972281612877955639176479692400177791861219936590452236158991017467418103780248377979848066802820154120664654297125718567862469136110027861696531109115309976116771892293853620259225741516776586130157251989014135597149958988646611214583592685470853123629878840352145988572876631585412676379937856268001224221559911779056358796844346243881612519945335713302116464262147795429817408957035075369838281089993000951541041023797372751859332336625057369684965907135505196819659210611045532445141219348925448612953317459572764056929754020955835264101980508140852373103062687449015375958630919402284988211153991208797434133229153680589723692096427433342837302151208888048958768437379497977896475340112089716061666089251107183205178976553626086260908234732776489448338690078484722541236685464071404844869374155414483056462639944302687752969686094441901776218619014537307287515830071146755591201779412717239953643630235148831546610985244392370383559129872085608402292344589180235144504616911662655090512075861780293014146709256202480402475262540720918646262578043275228745624723319110988066167470531614818695593581642289677218228114297584875794567197051245406280635677322837385212188045879192229339679872826533786733184257115693700603553759403612671955715015151635469955063661168335367962243249244149923831205291033085325020892631876809012535617180972798492902538574159187875411653791714162492291933809078165764631893733842909458604690570235427518131728997056008902255429602091398483973809154082654920710112871578775888931633556214922144463180276699822597953954347559348569801693970429567681711289183358978857088639455545447579732992757659129345764202903955375647884760869030686846430158512549091568192322841745646481753848326454248644989371909225632742250088812328071676450300048557891353675905651290287015272481310621908919802560823642141997133374649303466347979245450992931550731686906803213672747603329961419184706082460836534104047344212587820300090669122384130765354360594326240856907159248465043286930861013398652226131971824707080412988236332113456313136299134953425927772141635394711983564207439610765051190521898357649081064850257832327415515263837717712618509954737080931783507819265959938519479744565829488832700409626999300204269062382444048866047259360620835443444488276043418649331509842445915899478173022994388179736831733300600421174779880606092553901649130362001087886985682533835859053712194570814040712068560205842156719272806408186166937489177847517789111762729451371707465742826665360401938894658663143120945083540443487724253414826126190418838794102859461473723298018463958765253542452604465727304012969818168379619899413969423632369857849980324964037722667981626792345850482376122480349245818871286507527723031056577672031296959753124116018530824313887138272426677430683862791602306881836404725185333944822810142068944200185546066340607986664787031099766034232074978090752466976591160580818688845386585308977585635632912909538571869050581155108855416391903916115609917838359318285832721903833010025824089268856647622994301455577529655091761778866046293095030800916911123504273334391907832888789286858289485100130445781032606955802922764982108278855654192909158682954961637796364372318052249124134803108810497928415818462417896507900841152418352951236511064058303213149435697713066733878919171840981946881212675077234453796153472280739135323640983008158483724179977745159328167537402912413015258017704790543161188125543072926943938301991504266844197596772606795804081595584561542650531996345886469215257473829946971556849040551378056480751663071284824961945222267443725039967813689776667248659283027454980542984191968460500078179556818905703254912661037788282496387949444319135018849763038291236785513989754149545549158343640398499973262727984718589319132367874799253775276390416636299269065685186732240411692404544046034037651138675947809207399350800176436368933208023367543368869001789606238836115973209157063437644619919128284463679289855592665933624882861935181510374120313501602422366953014276597147929792669157671379232057646542886613671188146735196076407913009876903723999898268584369154474903087251747009159640649233012482136025812912522075817616890352446024982041291138998153378137347479349584056827813038819643616393391254381419742876997592547552334628225464346853963134538166957229186042225005375344977440802593747086693328525948014628465177337353679000808086756343329650326080011733530961947263384651829975802005719771226600002301480373594328791782427588795851162154310745839727688218537043985336215517033188203017436742048281176113212709327817879841481552985450047084277972704486090275730625506975463966625119724629954549028765291048599470301640433705993179510653651803398704775605922176068723808724053517119552747245880078445253614864909500199261295024802939608028098241353629998996776407963895166625761515205683354840958995003795098217746930390539821525636051753101298749023361763048232522050326817571134992310434161233507557056580268986837186777862581204324383933764366884181393635891318270922796903694946725749419685796242045460733449514159039003104707012929644650566972461101845565240950043311966091046679596346729683544003299766045125860360223984729927870151765398431052624790072754966284961057382257425251634403184134977752921244199408841718101506603925218597372109285352206778828885236743692035269217552271751816029588619649667061828461607117289208467058021282644006784072815764922975999825936345848283271700081862477579561418845119050843280476312105012530771040816485519422228149446495952775722252357380400318749256232605704062525975311252085484917106020288384981282183123810789560016976412484663412801915094220965951387752494318782580694720174166193700609992469480145649928140771337057241113662157091632212435759627895009440250625640323043325378263921228813140005252991296678021180010790034696224536782258226004836782842518009373145732237467932830086839273421185516009127185062155353406956121088067129029728935998843466038407472293093937685194755085017776455748662206823878471357058404863290812143802459576897005071354391310712991122887164769162431609732425756477767673002748140822808752755201455164788697478540668638388981983966290624776237378222580948464688365855640109352763207829983969583910154599612234642845080552683649801268301490297606399127764260373486537088089572035712559324918796772758573638023980283824412648756245288431573601430180846253732798755231869580331556099234541980131213183292200875368228289336291488080577072623136132323598334943112605740039803123973290691590753364616854953760776357196115715997604896373565778513483740869692269269338422421057277438023860309150014467201814744189229085485472255985299096932321415691158079984285715073247041033648185851354062228557181864444283136741140717232692945824815486082901063567656173443954862563263027732594604676190453523040411407238666991344638820808148918332331788762976777508798441644038934868778721545173677150827415210058071368372947754670619731639231134279524624076222538371732494459311846191459656430107447419511452790439733316270906232130847607508908264571570926036977033250231366628202669512067087374996681137231871354094298436514971473169363138559665377670992928175476214173990710880833033159805955079536240012562240035708865582328750284597764846708156315756887998880312568744971892382431644769353003184513983487809606352332587776877843192164670341343804069142220285154102121557051042716838286885996172950854974470886816841239319955850309880026498796903597419455271312867096006061919357870199051548089762824994372558643154991870007847582927284139360697859001975304552212504066221380978409678375716594429871144116947807835573244708632643809628262778229402477228197071929599316306844651265644488796188153367700440105434489295162805673996609769235323764582882207422964047675642686003421470218469179737715355440231256179865045142316021439624224660869424947386372445830803521721953415083506260082842295273039176853588785027790492616817554898711448519998035661948948127014538688598594468007522344765575110268084261794789365385042338489736157881967396176807091473305393096374972675249005394686566313967907364915598738645804552918077876988897677147195198973893051436426712516024679377657635324759906077133892157845952101164179457852242067390440093982723081989745918929301212988949578428125348064516042739346758744441300010763882482353562435701102060264391610494133673304103121167386992503814235896559032206157464589506043755507748095461759133334726098046696280504633324378032823175745142122393540076806225032763472798228913349236976342793741583615508489746285354728244149444786366192557641786403381054832425033061487699448830647984488794956161538131533209877082732871807900000976903597752193528132781165823581231112938539818128758126554177099320635811360784111259991564590399626065079379485471889825405505179232125457444452495298939971337315195711243628498309643852285129658983598907486767111244516332645964023698921339099616408221098893252181104314658644056915645547599558214745811733240408316270550521798085919036009217482028628811647083999346130846251767588100656971733582521688611108450870912652030599075908734400791049687620323019278217289913281289799286892644570919596790507934203939733468070302970002538570378690480078388231404128419996103348185545640228560680054229245011429021805108837503616436681861338302837422042989285374102060896652358706491657970083246410892383866674184832688412536945803552076330893606405097532041622129396084110122071723527055128154047579407161484932951186387228850379769377457545498047184275024166762370324601746689373199585495206076383858782345462907120343439986744820741811636092631056383064400065981233027269493859237831268366511605869021888216873799394752007673836706417066646940957594186988608893529217125589633493954173169833349512379438730291438027599607829709932807660269915448836000591150151020283719991977691426149791115784180158761951939954209680210320148870814883359283322493059353991660324559863441541331988328473361153032070948047381041714788797504122363526498759549863677131614750988645152210312600329856353224463230803261875420257005741024022741498434132736296606735133277221324805899434088125138372116482590375862354207351824828075805203100361668158715517762722671930960166615901595540384348740443943374967829571944785088558285039656858980343995228298534293501591338946234787470781456226598430427594669599338169188846326181724437354682189871027968720854570907394376743492423290649681211281600428170396447492761321195973564145321827392766729228239065570931043224999941118750238807197586190044173175709620484464589195293210090441631810809268905619246595118743451254297916860762433186283593762956518121585665882752642417378483205479302227378557651446939317207099992510542777958846974211754042219695247396506440021400431615277568962223016723894323981258707232390604374171175683449170414291074994784194557497933690390017924446028526513196506834232982076474315005330453012369260567269683740772775195982626933876921166731211681559619279981479147827740324047321424536551326261108084878072007586496810530548564488682394707734337833041598004389942403807437927698428751671431252104304456086344414632982322839378825344285341775321578587336192302138249514102116081187879484377755757564608221610760255519357773448931292806682528102514959201851680109708208143270926623821738505953990280078839174735352807804146121403775726718793378495270686801790648090662232430676005860735692130448337236342842337927209081995543706655984839053547275445925013047258346115259406705001934108789685528110395946711086619816933015752182900859799834569823886617090372054184871225223391783548447259337722064541575708989564271940262291815926354217475124379194360979065802050903584840415074784311677472740572520231543619052968872793673149432980580854877776825871400368776099710442249147856064669353722700523521464943855947469659482623166506876704515000250603565385382656825322892434032011126253760807870206476414898152028047574952123524140677745268145513838133844259985258751928425334228951435947264245592449048052534503298421236193781708108438764092136522773126873974390118624481803281707226547564506912394316825082043848538516961831595490395390995602833792891147582797095232708258922662302328780098991493007653800060419651662400074522546793558710422666702796678440454480736589471298644565970928635952500849530373435736860834164800907353661238416270772286560327616434737582823923163276734074454603887653120785605423188203531378913454871973680790462815099133869285853341191627024295759095463450470428368469012932803569433454254350993693462378153283009860540906563591423704932436295225297154954360052793432208756569786526599964321424345015974879165069937200377938186212872457804634595381033999552033315737579551197833465924868398416889207198327403300815294008670152762233085818838642264273051970651148670733133322135145361138809926302457601331954312341099178598995209285327694680211399168539842455550171095749864322968019649038766005586709961050572400454122185470980009587459327028310480075937446290041727465245177966006120064363914076805277590893327791800960982906554882376058190083563345781103251338454033750430527859053117865280157716258168988607978594438420286784839959413381895045570755417882827943697050807951577574013915210975219712632048894504471346971370030125284609924085496520780968414304037308618387382129542244844941546340221948234425231622330893293027913512422865699011229241362816784468506905528361219545518026314689028965824403097368267584980711379764589898713786920389823767409678164578484007987793375720802174359831297058744090859133445814569021611230968905014173580632511809385622222039466195408672227489288108642376823691678604118826033026838615925635592783828954791520721414274482847250730839987124639196012257825524587598429236727473813580516758217177990749100339191010070358291403835191395066603116336049637773294165678544814826213458340357348747715803882539531579879746876440047565663959971963783552040360532163206101592561767697660611654669808223850684737902699405264252686366499883958005431801570644213758686474635461215030503664935385904084373474061697742524944461595792649571689043400890373953247075816974867379835559570582376029369483873322019302938058664762336038593508683485557562370488266894373517955945338021495013100543983598021148366199188279803052685976426141835589391408129155947966779840277420243596765152748111953865194908343546607260287218982800616141032068475971000151131897370263786912626083865947665930664420343435296933244483202555181597510016568262799576371684638410466788475215916157403996647908031906795316287900776381525907265631812414557802271208939091292056345842387741590378121539580583486467300237080088796445681444440874250132911043232370559639685196789493248799866535727106912179055640545300517445749503413429218977079998831742528500020335788013444966377671234027100472348548489060935531526380371201929537235895639302611682137759604822936413258260119608234025392156824621211165060182589498395401782115960801292876865488890265624060781181621767975565856227198274467536257661439990451592466065741294943703260916928279967717650642217968899122569035188421471097052930051359036703962859316314086089001206248040523695842638651153340023553774482008939521873767568165508477913207954415258305716425097256302338280885363932931020305989687658543022310875585393491130926922860228127841037945329262637327709513913271567857779660058813206157686113417531692020361619011514941279660895131182837444965073955843165824020435607114073042563303801626190404956245051631752203381329169767684638410777215190207917788039875727210395395330167725740557010549343956923198189400245555713037597920552847943817856277673563964091588125730831463244785848424261288551080874505273175128679472245075994765753390202556744281380960196439423800029091622762647814304125040205221827376396145841636340046110969980312449346217526981824631417608648463797335924401704771957233270948180167217616679866995785151966877275901513995630266856822948450055001022368573259793678257451418442429033734652766858403996759874403579303972096336077629319858212941673653043552297164652721667991012992676765130493852998828702928415184306877725849372608177941817700931669715996359758089460365605113829982692529264586202497379188397047574479187646884035464111570931080639057384047683701487892390110785639195041807478088921069665698917121517994426429372738987258340229324900036125103492243990638780557943537045892241369271031568145041532479208110326457302200416728439265546121252040939105914661361171355614266930852432804681517987886976010049137779196350183018089474006824066524060001445662712524215413080729303093927577681003096645901233962814099645209426508230555033270699205773869216614118568153541415296810919127008691213150433368713864536917013645844769555142988967314938087643319467218783507201407437322777188210361235710885504752708008545801302641482015059771762302140828631922133172456187441595687355269547891361382551286145626058418140686371616869792866139814467385939755993789119416770198840108576487033409036678947508457533359634529435542429954791453993941718251651009330513870138143098259215621444032439598798420519027749634229045810174088264881103254761712031249823778625115994415227768755627231709896161847573925835964556560576811206780839153441636154705435793099883964656384941671803504148626537376646087675959291710477945365134198416259588288054286810577695295395496028401956071051987465080508258974867655677163536126317074159325425776476659168989937227840080756820964039977851676620356269708804873218093345711817856778490657950467087771193677899643154151671908440254689524565619033540919751473616014276188614622945645046703890521134219871422513030097934584682637804626801121629403713176475056198936078216292189430923370790014149456193735780775588535532913547686780412225820820267904530742353476042144242481339919343682908402901646289603550497834015236691419934178832544940799969343038430758420231985621115856855450483424356010418143631399000667827606291252043744693950603485417297451946361983076478418636100146133443257816955429059075807822971204629438372564192773567919502207018905645029867539495088492483882924905452130055856593987373811485071689316210036353373836288178105157215830559746663286279707126708172589484740118098676386703979341235929384274521469689567190722348691245102084004391297244581847211481916930637416132147673440058766840117094172804045597535268850651663021250170231176985345228572513401985226555283573562334441139400188561235278265114293276835143171307975333947047517628550872676103820448782567028940596068862918543049211817109567875138059731352116037586293442166213878584346973808375563434799720786916879160952561610830347795287751151007272326292281611898653624219680868283788000372179057698412864832624996927434914233042654230120458499167384535818914488714891281751272403762650730070271020406106949938116527609692997137285543616926095843544690234776785822463171837092573476491138604502607593180498914028971777058015962979343785539962329970047548228710088217428087499747520235441879303672536150266432843921944507949213261997479945655330647215567481310690246156921310761469230755704465514638105680499231046806755095877165893942126171911402282378817592317837036842198745133999704170239817449404574113429225965294670499142432841832727676536420378585622888446084326884557524676886392737231102684299759099098627405715701437971259783305155658828953159186011212571428857248749258821523648077108835337502541411942481411160877890676533107798730976960646281177827543551114076144475220656957501105581525056753163545970493204790858350740575698642011212406890420263007748614300073480635659423416328902054956002270703426073628649219822629811727942666143944321858555571507799954809746500923221873385239288391434776801940247565532289147767498418731963348181570526246871928029247595446517434872615924151423854354310916361413474696933961978955139767184617773903224328619568470992444666687833371830433451748445135993777230286652611110281863854432534919617619467931559267903566582932944812677340730024363710163801524759416322211088254500508538546596484659793676725414297909582732057032203246487987460798388841843026275298877255310104406010042938406710010289028183139265307632709151896575714701997445817670710652349379604685264623956254512749045925541113811985806556087210452804250699921303445515429763017504246961190644182381823771753188934424673957603862576390041607610818457324370373640066273578406934323661135193649600662602430893167025620156092304775161233105342663244924270872937896766563627020493363207486722877156973326687120405487620902718846505054668805808953573735947809086066092503983634380385510800015756617495287047125851428671133735924479793617629931373509342921636332874774697595666038491399112987657141348244875280789059252302698339464036977452684735243077970023096486576697680503083838669122566595456697866455115860837967092235253679925212847229548503224303714299903164314000478560747669971251675164353444647750665004960080551636337877425979394934612812148167257776709530410919857116957931927906623435579857538105417822918572225507082922567804344171683195910457947540629497898985828189378747976608355775108331496332768600124801428542933447484084524155840145865442123385385552164666227684573619588289384714348359189996919557784510786654962800132511756888846973825397355465123658156635855613451058398294666311569508753449464256755284596723952812993968108542750062792495763316776951189233479588658065210534428647295423209632375694880794679788714897707033934096233770810770845598860924618765370876358421364277996397583578720590538466648892699517218930077730068597905540948532075454089359869739251307757437007850850500062431274265644280492036546409327657920970584008941160091372102689953365878737369017853544887552833930994165252328560273272906057690929679486034896804999935022974876662271736650134763820227785067445335723897263072178279447058195139084145466690734644457884258646216702189523378636219273257424147909940509291259825180176995909470793656822538762884288623902938440221222592051399740612062370417736353133842070584997194873386361746257519413078476230959218685041655547570372237991660932693051617937105060391876749063229353384928610352676232700530356266249296139387374831486443854558435105891089283236652644465564890416451272172286488068188479520522251853669866341341340826261505393030124875292237949837689630565760343754926809482271984709680765258656218409615025041637518017932571267229785068304445983960215687802472105184386981569855353684229519354192802562560769278577684958085796314081882920762144146994502384053802553393539445300054877044237938549724286781180441425941382918003936789306430884923697889880217236105748241345613823300740590468601091201188686927390957793499700523222097152577754759609309742930277197482630534277742706891594748359251814774812679881482635773301454520519363175516000476439390503414868014562680012895487953944695161185762448845778711270812244246246234340711812769783472596532565588607690961503120459190673733817343627931160473770429633057172331100066308500254736346211514658109034228525448015556461772392470650667149132817029916830168809488671953461232500317265685879316176250539481556487777523099574401176246584678587097504536217738397296469778355594896488201412143349950331657492979295547294698527925537074895542888238316569515565690245784071922509063587045960542335169922300084023944617732143875649494150065726292152924609261082926966588103994940167765462818780714729604455976357934917774987879576901619652740578509498782076215956018026251117761765647058256760248398434191775099643885596782044071603492504457477609390484831300299217917483677413327822242074321142278661489612277435278339643742769500241244609943991864233422063362015202543798196932123328067200343291130623216699793711861637037514926613490794202137506408685661091961011530386996863250388289607437618734345727388371472779183304298680406473451324466801395849493847147384371489995461841006626992253185629380963214201010553018787368045745289301056540564863478326468749130243525787086959107471434037317769271014641117340342433938506756961671845017824557747974865226590672390735654865046380749825062324493120941760452003029480172571319651368778882384070547593842480778932472722378802783113638668013401852230489697794167066496196528565659469665798410506975796430353837912866608507823099670630056652948387067854816751607425560364792808337469177678265108025578771012507278127994376005472172531394536957838467650887151006699007825451189967569564335043689786964580775869295201508177066114309598737161548502614492817283704498791909214908835361094945245462928074252866362902637943465630391418934806509898959637479528984985235252140779966815482652268591874457145887750585731481946388366115139681077347045668982942572476386253623046964418163957371613340402982447350185715713657026953600339616358518130280007951906977538630592473463177999901495388324238010931885891341997398060463471977676534341508626587696661200955618554155673483037461684946889085716969325365072289205021867145405408218239774197653355758837559340045159611331737508470477050604894490446040353012682700544569306582239521136351849196979052040657941690193968283703497981939850834129386701735415256547721294245349212553394070750791524976710446141140398471968706734707925650058463191383740830703460769786279056754761790098947502567473354846899310514530606621339219364479888030483710954142912965947928579565620839822641130718024111075194477876417028118652843323417049369807545563523250814803332343754302161946388206895600303006420625153276603811450645123692103377568440603354269378571029014525156263599428224554191627878744501192919030504456221516160706662361411400335964940140460653943683470814833060456915316682687728561125989910916560527872806315841202411121451742133454346416656834783756502137900670763639378782103283995938525024346856264953142495924620217904764456116646755093543252329227296672731848506158375085714583142891749791733426009389251544845801889130479583047969597536779155216344107920325821138575682205611401756801556425147370848272482312254967661742180987125743289049399189394067894514038235982141778128275426591990533727556731746636570999688300556237927519805905372790594653804334625350722340979713774623253235131743528806621188869304777592464773137458138865303823102561986393330299564144349498692911763777899528781840956845374562410514865494878938985667270536743859426218366612886613185909412396439188408911127227434634788410075620637690203522926685060933845370924057404256128513492252968062087485439825965572701413947359907370034467602805553490701751583588526487648141579997107290902901377348345525365525757059583986249663453215436208866372198612934499538032568693449553928212334823561340293551018733640735580915701654428893497003290124926961309609611046603999090564063768139683320137687744266423575621912800440096508016864337688975660590656559231508946380948299913698233812677220954155116194293120626522560140742197308247032656154046517453328567987862243637783127180872949742336932129383087240601170788827777362399906799830007207678865458777305568873852732727980481418518031476662073718222597508389803741110024895252117149626935791195448717152747855545299031651256522062102084829413935212200991166225758962830810805680775458888983105254510092206751872955949504282262197885637962186599416385108904590259997542415916250939295524897243617580652086675779510253746829578980866967153249759774137913834961224752574355543212792222485401259321759596117070558066762450164646738627142446538965745933677128537292885787154188692775176502479518208249029368395427048123897850469044208581232836610043390802860918823410744105157630572193867128016697258695507020034973943987709567260995719465971142192321001187216432885667724161903879628745631775441531318404569576547897253641900685454365786979198078514592057014365175912170100884111384642686759308396222456831245981381370013706606136172882992173121881637706184330890333937489975024176746393359716356157538377824401056832792495116466163977735634913878411899715296850667597407403238426367612480070554247591618715395827723842137145666940290928452323751843680423054881914905179305746491444873681294014785280274633238034909251905914379572124963210345049240220337980950909977173856959702567025462901827393008662505211985966992017856649433538703712133551108779656233064353766300349909093009254950573121205636350938546924514151265427914389565246148502630269023383864040456839683420625523431924914558927566191240006990352467897408639631625068237998082412262540986756601642039489073469786355328235631870775590858680262034263237525943513554905666215257774252875081207422575088928009609857521167747380908574975202502009180539674203917172438873285820967276457929821799929838601066305669736740022549258028778454872581189550163961064526769137985414249149371682347636344963109576342744968557028168701084670579802625620210431697776059829557357851391193001038120346200906390345281656654651112045821154782773096081478277045913210963658121814580882570507644565794705697204365568537277800086596128889562828638390289532086224171748419939107802408732773910108141994451619610262281601115705561717176504581998941449896298572905630369178319259389317912538894145985745801320173489695374557561361120967471968523393801927838928534144100098447392694998896747555845965359301046658316416459128929838761664779267699172877967694368683994072652605950429416817055903692701463213802796024535934269140909871587755306236888976699151376093032995089044241358479103846484570750917959806723506613295981575717347950042768462323553307774629715948545648167851538313571469011615680391299027842104771646631174314144212987424486911123174134371234875658944394955467735748119671422646409576313683120284481634585676041394689033755125500531612676446544686942669266785548069490662675825372867231098816588084220141703145563309699230547987777315588918206711068135245144941322501081665225362980114096559682595255838182021456357518708409510746505429532625497205258006345076643546412665747991351877399324585421293353329011633473432902168340889559342320665662933863687749710355564918938952131059332797319527195511248121365695531366586956556631669172684683102723836243207167727730208085561892010245304469888540123918441121797734013901821538050040208332510192467077521676164886883555440280130907244128283091490795861454311376327549972233938954762843151072163133875463519656073053465818494127429121559640316464555286979217692040256459823480596489342894832499303895574490595221923888082535392822427437651339984029493400690413597252590799720605630411894225546450667918953328289590433034713925340590990420163991745622799402292093752160828037162391448931792090226792914166326066682988878663077455029486048752608415211826738300938921713819974241934024132966915722519505853543095976850773180807616092147726765549930210593734534894749198317807063781990029689156002453684489868282922010653714578496290086479424659126224628382205881287506242936082009817949988123209270940004625952409828783242097574423012119603383291506036551759731252224178697773027864484943222094478985922037444638057833671429118050267361705109828669291936856258760829927232589920009769486172140036199161734141576792345862466808356359701866801095704195113255646686528872359489733932919047003932932255448330168288775769987634383207759945760151234680835509764915513504840363502493704699341674887825920156925023961306159118440470674244058372980954440847645499010112074270632551400382929779764851076607973509226211378387778954480190361612649203983919930954534849164468990244807247345391641786799525488377181334235294478207565395430903582382478160927639025413012888975556904164936448035924232856150927085270074620946820292358605782472366870626056029938230224699669180396058621573125758375114427340742052564197899495711246273565434452363727999522872991336403294852291552908627722961175743991917723158720889572213432453073353696200732158573285359618951531486626460711255327034465389086384294725728713441339446909896534843133178504797305371219119120011063416735283528640069498158686552899769626274753805492497385939578453717973949071510505801299558689090768443437892278088942293496953890973879243629297571142498807653848240269635495535642662634403450674095018513615065502556535733651849882480814657057585027505552220375812458743657330965455219485713444865006579656251656772751286192913568133249073168755784711285995992527234362111034463189074180369975916517480431048934244888884554577003220407677191325056884062537514665274208349025022899994519170053555032009224376743843319371130957157747075356937942697630018054642651930397261784785744135813562965417036092473164984973716597888237288520333525165111345499845252612096946831085564322959245275406208816649630198613173636388643647573002365593220708468831948233035651178025959264204016744698386623194499089878080620663181048551333291843222046390392355405794230595411235407840026973387805377152593173342188846831703111790552863616544916701103161457758475676574898883777241424503610954613124643806060719940034928950200924057347876983193274249929556472184746474292401267294666714624358686156467591843398054192399595480905148255699748521300478286870707193083937074097248804610121647919463893532608576811549958281317319614641207660267457809402385215294688236988554981913123348853090991071934107056862286429764084882481025342359802498547736106723589166271494707118699721948356046120570459455808510205829465519315141620202831048524254313435253178885772077136831874762228443632326665246167930907828017257553558264597506559705741564097014163981893286079683442152302118233742385982641899544178305247664401913666741021003070173449815256146195307585344075502630006895867154713630189825136340817960657314174501252626381434152913226762350928477359377767173442861458133980550144511804984312221346622348064674051778702959224173923751160293481867323387851389185379228805656014119141911246736870715756310987385325107523471441254781323092861039032030849928191349337745652534449272618004678979647385197455432816611091354642363898279208345103373712284573073313393589861498622299879668532047663128984262302642479389930988683328308119863332903794914259663646622178604249555434833283597238417259327624097054251122014477954962620828593450605523085462174869354295088744862791166032468480408922811951924006107634327093522580821163394426858376977935907223311171423926704972257120493210694995036827923714045679835802869933152110089706905561685545278622600812080746974275568371295986431679282174426955425970017251591527749487552302501378020846945715728933889500938661058714216554929885776444742577581394799874319829258902904609821448759311917103890339550291152644540853933281996484122729054063954861021878257028641244269195969350582487807994356062780372466168039139527258501890613137203767870934455481522463446089301311474136155805280852614701972245685610430209290695366535775399059989496132209257622595941061007720629434357422779170735467921327808234016462920616338174485801402961021256702303881470226090238293513251009701764065019859225891540510096092911078877159149163676549801506196214784903375045469089041015997691172569171340822028362662967075242190696340532768765448350574173651137250943743816080803294886485642184930398258157294319412580471248123895823151579553736223151307736293722681738479774475960549361045574717305856426191253049742814550700551771296036787421840356932149389055479927935040959735009788418500404563061002585772974365053986416692214521795596915498963377592806517701787609229834081405303227339661596544108165981786904091152297379302641581323633977977215596326065172748216796734333678975133170835608976588170421948044697361962418176358093851179282082261172055679454448976862129676338269834040848033818516257368063485167714534166103102102503450848087437415452034157438470731583043623852271046540411034751423036420669404743151978740268957173955778440762393918561325080498267761261669551511729615510780566289718022177921181327564264115918809511377884239640495682319120012615852820638682678594066958844561812040765954360228428571982207876067357151975687693408918129547623364565118748865589151392616187146033525252036570522031550581510336448598859347149983371615730498245170989308622090783999278484124074510235261584333678955183756978640432153528590368368393871650362298112935656792626363320444142106321737077169889002850531951573219856132433423142041370095262042444621949701709895149270933241247479391758145986329195210179471960353925032210590705781173252686761227766714674735253294388195701082383121243713701680216121326233325454568180032456977353532786597260281363779689482296150507781071629798452328740437073300065708724251229552664785519418044836910799748923416245032072165268868150176285592306785416898810562640880965701906779492743610745000788742772906530672572823741199333960094183606002983527026257854883289495091339236929745005355281686343090784191501330812606715474383673929078425481138774518499326918581808840619816201489803966685439291498025757394675767066393370303583634522545115162598304244987770529973843057519187205894874609432986928881126153413598676514894913090806055405915185475206055969960432143204853831289077052728134859458401337694807898057473338330084901047661486286876832568765623750195227362447258697240364835249174851716989335093053409449792348346534057431726516727349265750170038770936583986124140773058803063199037943246409247240903277315801117883874774044317290106996269898113198663906475819472754989752543876991102481416293854743830252315620324480728141926970672205351894882033786964945793130406860484379578143651339743418907358378934915420350617696028281403523225207392278063453057286827292173795418023372586249924581286578030472059397413983626749338527973522253539068726637034947759586884630522473907634401742164936617341874525034062677578757891286572378543220859350588750673768283592302308107657945779830601697451002371068369410139688864227444683774837176011618162208496770350511533968273085406043240449453417706684107510238920502393641797625120357009962475954847138717733440690057765957540351474328507458224536478424122837743772902796630571301340302115899745620035406462019252266817607164924269816820606051565161261899483760035082643174957052291634385958854242322810243051937660012790063055266647904085347845469605716390329937044398241982683725554335108758082188701842984649452986913119136376654840550298139098954430593570815929502346640058449313533983077610931872951278412586250279174269752216355735843200494284716035615568799552883264752694479859187743000695408162554542391734004387611935027228272059425308755418874303732963563899741311251473010839559767024807849097116475695458190082121839251635249501686894996670865808615417945167676714455993741715768576511494603883677268375134415355813113569466455390159260118428147432452525623567782970586877030473383646799405146236140764199338923172774663372775544600584222783628101936464944446260140935762108027869570424307453053404648787360314755720376776630843014201431490026901016432473064706726955995486386976103847468579831539001975337810518341195733653522134311227215256977394305972691218826205436228614410744419208921950080273167076588136939187242769438803326345377957068002652504864672944399707743676306845463420542298285950207682532306341780432624581450481879250472248597299211715137225485614633033928313765431754113848715281697153494150911196383702322620348574625228313094024804172711440247461861469607609490816445756692078585031762902797987115755529449174916390631150109043010969959854344343120568890144757263872188439399839506009224380290587383618707279783372011453588405473198295023639261662658929385107684476818493866749395001426132729661310327563020265469545749509676064654507839576603447447603962943823799175710731904434249412652028712227040764219767851526258086277050977832472692237272807344826737410824792805419939991997318790773414558632933430683808563191624597392133870976565448906443185652018999482725577459556322930722542980112888341715816595308845638488140242181571762603874205038948187684927080015415732956139715061288986546325735800595898856583174590892613364678622975985518498658283196124216378067814867284099533970978953967321086531236317341009962402831928427002883435008325094414815666065522438878162288450782359724613304703397439167429649875859543170552553596424233076176473595942670941449673533736686711728894838559846455783369502056135405208312138211246660679397287064352262520344395835830233858740447782582045572362997248455643215963951854945173557207545100075758524509737069572760913588949309394774328862838375289824886437347877012721209795478931256506634377325767696836394892549840392542285957484250199600320354817138002873151138075540541952115311515795051673417581044033458300812013599959985858466271982417470589237781745429346344016621657589594120881308399038756872887715011706471607263291054081253663447387965395634998608103336855288606040607868006988693912549562796614601522029428363429503997395944273051075310130573135251514884549027616493626878327531119234320136979283277945713055940457393337447783407915142463802936772875010995936434660695259264356705467091163111138738197934856173423741090810873737912617813619286095698616989912462399173385850227845760760596844685109654367036060464667902014257347311027281695334591075217008248123961985906876504812115562908474866046732106268465674968158117179971887787751028962582676487836555407786692009947945594181077348267535886861175389287781414137757758297230474526943006144012325076282302112231012224586465313311638266925276843076932230614242872211631042382681192441161657359670634013894184108578683140456268670380423414304984180154143803870920107266758313096101569325249178302463604871441087300971207998269138342373077327843013213478258240629435365366334292831721320950998665051651595775690447842989459739720695815884043573256078998313746014305183759949741591338862917701209501859946565893229246282716021569688932645235174644165122668895857447796132816071356483663761891605089654960345607656031828821334147984157737173598973307349155671263725094204194657345624504111721530088911336691737508523797284669260988641203767972355250047838205125100431178250964368517749288999331705200414869767245033243794820313647575003104282334854047162069322273353923083259052553654276828874700347900957893433078933159839123851974978083168575531115906607153570340214152029031922707211207443678797600722195573368323943327682226010159690966592411029330959338489290918677404756181575587330176272811927166189040768728435034978704016268358661792292776664175906407541111591046074431756535772719652096620101830317522721331375184518379527426860141417080480089942446314242114738613585369674374066333153859634732947219593490799291085674103102688054617577913565935695765824552504011362980626487854036517163524673806333407597196486235311155720580569008743256134220003029450535020947953617049802121290860022068328531194961189684646269564048941345166574288981883066654970866773185718832027675308508094859289157502176093677539904165130280543704473297510099023231355496030104430811811190719918785551096508762435880771854559518362222953871773209199501604326707879229293534462232823519901873709442746841018661899121645392254126881429989143258278109095002313955019746654131217953759222302328487120223371312439796218496121900617700538502896118950977349977428944146556697792341677813307046510682164680505375665359827743076212443749978710924157849635048838068522832605327921644341936966593288745738858936806122029609473254430577253847931017060908365197946976934160733283692243329443432585140525614446210916184722084891981626019627091248246952680672408317511023227219390768180263737798572526992906505278522992323484750997522106096237889800185857119735925161877328574118213110595988800067399906394133260727059600831148676149103894427612081344643356331501019009749324185356578172387714315203064073649451754498030872967629462466248538368840048115332101810936501680915380105922321192345865811148849121153609459345642224805004674470437375835527026868362413593452010625739049390517455996736714424121890700678179839440265200338507197234089067053855953950255700253299011590819879156598913644454431274305531064525036203547798655336886407583254201603758886273056022496895234639109702431619680681740265841788174722757117327372172172101059351557729466319430358158369135278085511804335710525702394535270206689925310652429664370989064439338670041282790458455975557979651036846069304907782800560693498197311438930468151372937493528593046308184487810736364236855418646599007811650804058650232426357733658918938215045843447615390460749421010003399787068548577574723039270657902265925142334491801208075521596355956601962332073560102486402340453739502338400553463363327524399124546410191718742867176802373231464063924326458772108671261767920546908917315349573862820190909524632064750151158764647894852860410920120001508966615360554980543093885883073060543363393756358386383492239496489174000038916799651955123285345468266241874013389752965993644541512804089659408056015639833300542187533190093475383327485699535379945019481083239860323463304412901848494754778261871668361722487048300908446606097214052922868266762773193308733151240297987376298736626240595695885853393626333142789218389283416642357182897358752709297171287587737254458239867736731167971300291577424444174940667050085882017402538019949260256103398519823979629379959432923242607867977664161683990072090542889124929723610589175832373439934612006010336816711980726125167473520773755694043876427539943423055411651082986187975905395221364924889313333325292449137463182297106634645385717137570497118819665124310396906761908072404057913694815507993500614760328766779926127545603787578110925016313185471449541827115652901639014671208707516439516876138974438671463413238896205671255127394737503330765526942942898299868596698885247175258182357268521266893827589026437103954893925452985559491476069862615628099327968708154219637668775670145309143524750682265132911564007415771001675529250028757046467496099707134430208217545776029038150310665141039954377012228244632687876701016991365643474070047848594806322861072053481893545735562226960798324026355223900972565330018755347113243649071843102264053508848909000412636198834025121050522954756215528162469356920801723939971270804541301903427342700946214897445678817688047521336850738022174523575115104839689352061302348119088718858492543561212154680748864983391451473657759827463492190205057901907487385122668415404121076842705997233715451458570787862223845874403554895360865841887498662130831087702783544310227583719617815877796507954081276598889780963527513340724071342171968354574895985263491655678859522612671499900972899702487787897417013510032561117038449566631221871958986394519058620951937518703395175690699495039427161126056057895936940209712077008390658373415053337102237766105834750610908138217941507350315408256046053928435922167646970784911659983214124092211621855092636814911760317370791378683051747896841729587114292998095075247644474034689771882824105829260366714315513460473470570521153356549113732434313142233850778834635512200796538225581157465116708630078422922926816701539568277873065414715603583273895923149112147051194038157956087754814463592421351897541615688977156153932023954948957332291437724248303795887936699143779904115259051267660164698541210235061910861960057360917943613753793930092145997742129834685940390895907184325149415970048027809604025437836143620674126321691331508811444400103774227489716253820914017561312215208643129566319968512824739812623606624407885456220747065130516279811532414226847637936595569564118842172898048457761331413842743691337154875046784625571483964386120503321668487581963967004644104478227843901506588012073421203367284078853719857733824417125905583460244793021390811938622271151126265038981745259367245540813345384111870331464454391516877929105698736673328006170194001647662180824154120303079211946747519006289245742945180913261671268489434207017999169561921927541427944739544368947819844175119259357542781682872504431556407342001559117974792402532182854463955281262288599849498752721985617458754296668552927317775316753355709663272331883860387839110586797566086025859512025948205216974829847528739764986914185430455552576418871781100524022615513046655872026422529182525588456913154836700738311063959884925546485738981461709440774428637947840728852608033050783454930942202632401032642739207168102632767680651941642173774151578453324084241288088296149498927582902202675510249517920045808299228237345883368531481197748012791540557642393869759821310821601723024845103598949452218525017183347238462057832670113995567594085400482408045776883441429779908713953481012684085457397010532157306755646662894599013761948639304605406030740299452720600511262592674679671392599637134676887104737241035908837085703463177286896163035173010278632430834292076715533082429828394587314690594409353007780318290947573123178137453816868768701263835720532739578298486540851322416549746262184916986067971807971601101099951063187026655739235884626957189084168472404823833503985335722044808463664210865252598987747606411837116960693216338719910425777283983468607383385311633222451407736762377161182596403334521382759469415829486746488557420610297175095029189351452811175854934675862937236840238872887512905321799383205017407113942755582216938004928515086000109978409631641368672315181563458343160190377042437901860000447611848982403912692756432537529484551175075810114294145191549802698869930743503150009464221967164107700048130238835324132860727543283469054786977986629237336670419284483992929562153130272015569300452600157645600107196090934075424365351497617436079218691936293583110824297782454913793224107256197229966147325226058243261437701465165798656370427002373391696811775307453699651005947647221328003379569331120965073076054211364528483438330762642031487116971395055208665331473846861390972668019510116281634928762281137497434663229893520225826264777447410516460176159626900086599715741361845710151474067054730765831456414834444257981635187784867842090534363242979796137017965925178709916545477564277863144214515629269853165464460635803407703092048375785364846240843572117860269752681354367491095991736275107258553524929935456711331927109392000943246325570431303213861544931834954172228469087383871084758019127544722987105779492394788764424563589449389513308709164830198400255278570493151074256913403544095725881227906778193090552549122433754884590446127652178291179872328810179675209736550131617860479507939657662574331289674447375610183709404288566602994609449098864836119998017633017242238718870142649749031065799261218739146730651046073866645418073026065597583323052492889641920791048760303441044752593105138362936060205870421911274169347098579925344361304446439418918473725482806766349967516322376067964319985286167563260236039240660984364473001066977520001289297499617325503371926329785158806840395946098405385321308476779684610849719103752371216752756548301085668288683924148095839739014178833377980715318042628558002515738989864201579642233669680819864372269843441101313007625369221703718295759451162727718786881680277588494569820228381260525098840130065455527804264311087009487427292542827834613791637836602063943814516401629274107594873047466668456660862116249365773429464655166730944616158778860385393539779750677019099659109940937051063596758654152732314438724359600583906303995278994636350599880537310391000852411637843967230935980144390198125998808523689880038263183949824841857260623786389652113604192153891098245834836308530652260534717346127846015731677628188438838007829186430045619006678614328247782452968700374714996162765295554057860341696604953170760622231530081608790310061348924905661080672881323305048549519469135680271934258575269758058083356419404533896137678851998617160681650709838696908965973176166949937839639186521965754649745143337165099386337006637342378212211756351040800876517111420380779793410199671442730227046181756349010085242923235800602082966517538643427517311048109474308745340044827975684168929532259646972104724282139700958877470278639296305749111761008411145873326893178962492043348166694477398852985409051033470099811697389853551798769149185313023965071428958962201840917672352218005387974609345807642296380998888044604394406179500667360679657337187987863519506143690498192747006478403917394955511898114761243306386166250173779193454986421847863296820101548540609302677310609264637288280928357683045952972754332264723345947682368115008542097142788756197079128552578273661632535698150720392407442285261468143413830282160588908942888198650509170063373411128404180591591573695675942741588877394384948303246734138683719421886389100915262203636686714260055663775015830428396360097610138881528109431295908540242236922844316157901646249796381979515874872423416493264273926196072100718639082138011460788376893733267504534666596557814450580628887378151290919936813611511877754420684228929124477016480253426159974713541496203950265719951322735844923218172825363017222786545936770428238356760433657860678361084699248636560800604775939360256475451803681518852553894382336430649422713703427732057532213339670228679177625031117345666301270634224329304702774820884532056854571710319641071238326363189107443034233023489389343238695957060684130317520304335756924052133672602264716088484084198292988208984183607159896526682370707543103988976063792968314362239570030021225559633347997868177363095975879620999610936660329032808632243957474408792325735938872360864443646602729129037060973453937788840185634021314522982973046850947048124098917677100237268246435599673843199456859023714216237087084009381759073759488957336497811929002087679586766806650273380168530438186453045020848904321382849108742525506639330245212356017932052059250923935622073448952041156475782475145661357993184639355020677023082934854190120380856035506479525551083480059245304733631405573788283403898432180920871618627492563799734989024581664283263203979278641204514250692647116041555439440826650151861860254505242727766565936629433217348195255508761318945593932279684061676331524180141237781532195686370122664180714231554602531842358419508763663638910152421110644202593214484334516672327528416081303116054363206304530699303580396879991789593072952478322369356001231691643772374111941380004203004016643162668619738995520220750547728399811858918995762537166207125465056719525973811654127284799364856574928701440001821701396710039405669543420174133816786825893073083994225740473947710447665513915067782282024315358574338361709408209483694734598388119245566236921474662654093438632126112936070419374949342825658559903439744518702135981966305465184719391268346084639017989124546790468986154286299510868979951775523733251629089059579387158056033488341058155234638585923146623987162439484405515157384163836708604969769385495005877827489979149560368042006182034292992996523854914919194800008729731095545571139556504689316348592536961429528897593749093719821670048328856843226181770133452614001085117246355603980928522684541722712062780041106791471012747705701775255601878383434777134389833459023351693573441404089310347714112920304750765708690377333059197811417208998119969374555710945515792511922128254727877487051153072606188313705997278374970155689653564682784079933295735715147049224418649946497954235527124722214537421662790970499161731021427245593505279221942726393313925065492036448543720981227944722784661319089147983626692511403267766546093061900106635414004554753708274104663204740969779206345604421773133984763770254659726767152123913133312184103548580945501449651069875605407762978787685693443272329086301698430097691051119275021293155743422710121805240939003433216292917747668811092008060695766728093160650253564931996705935510037183471310352814635796421355017839770898347947367103719221249192708150768480178980091581872449309110592993465688177651276386168960061090246246619167350384876880988068949576560939126779319310986498075694717700018337781625193244299976954622420347360886393567849485499000187477090005239059366161012995923794582588523237544226326382086373851221887750504724415830154613086065667444304423844485279239676240372514802532279302938975808886408068867859998566330897378069422003459256552248246169074355578585282124142702445174356277193630526229758189265558487645362570586919536646271407981205465279160083554650778480293360926608490125354869197932632630297974689851391374048994317895938364321622854762368036452798745616282062469063743567753193339545903706753982740357061857768593135589567277233729950224655377674517374368718768686984760239393441899032693573864170460673851588190023934839769019425682774976975783227072002445693411387565558742040911647870968242842453672970736184963386166214071541612403543397020476380045777661729702095150706727325177523230214421290009087744562305998142072824226255987041982135515922684053420194303303293008901225204169807362686308009261580640532747923387871918372342386069239554307383238456195310874157793809506447891326063013858789219250090098113174447263556179329388939198228800613125070313218447452257512232078423992575142515799029245582130024721683275531969622734053784563847330208851392963984720781057162688001120082933783287193563537816912290735185638163185623529325438000497896037261874161630236850843516885728335833036902629816149498977210089903517064431265172436301037698936125804778415758766892509802898713622675412958712923110255508644546843765827355677455694345756428006806475414762239538950147224591825692547508165125464384025911899066950561105395722970040031996561406980904531947412762872402562856723689241573466025754160785994274428429053041288912247390816448151236298864326884591810638271895124770802986863450908620595896324730953969768559423841906714665941977660138028176474207412492991201861643855535792712479120572472667265775876957355034021447068427883944377664515373483723444112038377145071562858622401242448843167805210194472101917998052513207607461968621329572741189086920906278255470485022315820779463587939643145317494196144197626470481481407127578130233741916682582042579572471567422600959154202569287676989226771116360078626817072223268904231664603828825571103095703991959725133798063876966319086439171214123090084964967937700203970162582935355315691513055919136916858314363791437132440151762111851507973244916799282894356461125795966025299926562157929276900058434958412819690783654081693556735523638472341839577846639967254513617469441069167221921349624795982714578903742362959424703276417194073900721040804360079177809973702535248884448555781078661694337715579506399430472156228896403658423641260746967151168347749516465047477700467508842237475692141172809628927269074492908163911333272223450780251816394980210887680087692020097026439539670609471305178425447534137051515175329914790706032938434190423259756076502227706776653368346033107851842954673579490555972348058004766122365496787654188179668561239497099883669395157932274728533467188497416074457228189660899954530452224743950734188390293347098562207755946746099082451887805378637534277886093963268521737426477591560008938743865331481163625459703376274284945260319940561839374787387268759303621116392794321297624179255930425905896711828961050476940350685774991438661037041951667424331529698522387811814218241634721715540780510268035931193120287129040218709004057659623738015337067472658174139558445948085439482094379950545102752732914822579386021530110853884407014107339768133222258149052843064859457358881621958530919315186751306859190146310370671925777118580059324109455330739929979872548505253272986375280201238937867329600337419346793510731223283993594244651048618598050092968762271816599751313719738770396737243675743743302754180542107082864255604732011703115721841933559715760104186564554961851513330388053872745142216729558183843836344539248196672165403119880686476672379757476314665401001148140325115361803742759337867033194524408712435779717009124377894292739398678103674807256439292685722055017675422825011278545850387637770577458067415202434048644435589437331268124118359164754010397373304222195712546370246568298915692324298121517811348973394468046613425011227722046558858950435345561223937046318829578176828017812486092322422946283049227711887007583471985839279141740254757354403078554805484808524836343584729037639463208260352913961595096373372593824692662699505946701395096230164330504353566516865818055422232989121552451172972950375911694412213798515315111476541214198601826690345681869553202221764170515740382671342037230844540037502756083476137385212265078351587490928505128065118494581575206067505079812416825876886707177598916852053106432777304596460674732502010667760347034745632417996636196898843580670942126950403200558394325910585612169333536146678490798177756154698859381888799678605640551183314176455786475699354461236133464791744953270881291385231744203489422813132739888687432502020792593621486433939590728825760124006279999019446188997686014537743516223767425892257528976551762555218967366697372523250862286447734034447455511280854439844589297859679511736940314367157907073874902542350272647862938812711323620532323585954989480813506628770758037266043597018014404450110403137930062331809039116228208627335797092539113357587344811596345808520823816269689239442617166082889146022615166919352852198626278526826821160808627370698507552610686098820123902933718155880419571936337473620088851952221634512446844233125889732018705820264824574414615288876390633462071539286945490470271244736877030522824751174760247767168969317359767453452827803492074509674747724115680367400416967481617702119929107712751110986231968583203015197987410219709818155857022052890144682368728897312990965494116283458113176936657031841017484784810739831616547943312944260400125970552835184546051275211632457073250044928048776628888711351592027294340823648117791830705596787645720862414179453296638032154560573964808559650607270765546393003636622147618346907715221800098091244117559509454305964510534643101066341063034766284444967309882713188394144230215376635536252078175709288038943671784996113193234859290243903601032450387285332922796571554586571829624397220859773003214142887208469823145098095120169492473527876594730394405869991327286382462580211713766139573992019401267615649041313368315900873479184723257952996855760555951238381595706233455603756673059095066476234411295413502024653831128690638140614923661690657650397950776168925945875113196830762152650124656781566923610229929359235315919602592881873830270363200527648297210489318443511079871784977067058230614335029353981448813708386420823437299947783706098805553614121776429503065935252516360895334556573624253279829509079073697660514725003298129231225928819249059190994883591287302397989994592885886799459273489560244618958219073952554405399841420213568133978203583270346452630401786617419794166609479782666818595259717509606206101117850133740787196331474104379854414204198530117914856815494843017343907526884418667502444752066194755760777318351433792961217981874342364398015398950507045235808022044286746945953072471765803951372454508609009534633489309236811145671364379163808120016765907036857679220833473755660829086334953606853067532507552095653230572910513856717434505545374284770680799500724217232102416793588197073358584188622644950614020343913892138464352261727427449795891863770374966095324433664190552815566448261722426424308166828774084839906815395524489380875713608916521425557625912312259655034183604516276493998365933012081861537883065607670213261281266164557190555268948284463465058584296960268931902752797307578592662618814461826761510793194585301872347760319463613790242084161513640858918610728123061557158420249236094942554458710102918681488524777839010506034627689867531544970900621919543940846953890298703509978348961158492494239597454695711551445453664857920214657737570017232753863280905594206566813463242464588517414545873770231878010357741140363774410244552116193221163383349321917849950338659066926747533870796703735432290461025783837665134348484192705081431777089763593570057749122618168187024501930094972126315588789294170422014543408261509978063151229495194109971315565454500623379893546289565621329361137341595496838224650851908231742081311893448811761568570780800098704402030981608477878945422037872601554213190159866212639137219567375722789047164430917924555106765735757080857135017969086169422034331932540717097312365632998215842686648198003773930130315399860893106485392735345899068180233552072599430443534954111561093213027713681340127220472007899605237781316318542989820158645628102534258325779274574375602694123479815656284686659294350970959822435554433871503561570227790621605574449011986364046906378661492710615632678850984031039235293757931679106103197493387016644705213116340850694846414346783356271629348405874741225368988972151434323213611422831041880971070417910740717423238170736564359605018328505611661912043151345406680310157797034182961365595123056516342435057349503746452948512137152620791652525696952408919294536661210608106669586712823691409048732510198766119947802482231763226303083290894925098431005221779711279345485548782362593733419266817834336866059823393452830307188215202305299500849698804234556890207952664001901465783587265800571969625469037612745514512287662555509721467065540442779378595043031937333662102598216253217758540560637387165128140866567763770033329748290078042209609796638947167541543770855948365111000515381687555189521742296611091028345343963935178742934369864378240577599100098121513988763573547206511413768789173795393134259774780526008587493043842886469267279392365144233838680039041763569664700397478422472919345197229618688549157752361817312537865427588144041817207745906514368874334035271721885204880303069623956215762580747457314027676796035146600532153528516185635016379832043873805529322540565927714712700116695695049178332203175662465835479659525727787540941521252549812770514811638785473922539261432568685308178580784832854689577156807054815899591664504226419639335192554098951950594065057551617193019198209149684903501179503428920667109500989802183259400938272087176252708384824687419122604173733644793886537277763231194813788308701332374555905687245415684928086997460727833170321831241295854751364809304534937813554516637917712914104555253148592011912879196570312728014955180039047057558139053645844879205407827532509045188862339948362250157038818603361609555995015981711347552984365473621629321011766304474242084178064965737802796977774532992834043072039287474634969583735808550392384289559662836931426860128584902014494687328390447527067205567064473109880726942783843573324541425908931289676248531527454483875631528510155299626642496268978720027489973489110904339570342372630736733133188023250520559688540628224187213265004715396715169874997604560424120630230529518162200001267631390276919680161927188993816686772610523836953435238917635574552056187526888536342311067896443528445370540647585180077515114683521907216651675462199089759077886351720918093058598911580615227573805754066892828595004249070786331658893821603679271922179069670824950897700610244725375288746892136613597250954402646330380316854109103338105578501470796453212956804893538735401709575155842222549703813685746429915502107196918856916210928846543657663276610010539439196791446986899554042422918900177679567768737190877625733749612025601418334215613934924232681255806871651701644378548602121489082336239779492318540147322791690060536861204017282743257126505863308220387268994431917178038813666557443875119344453612933276690447724153971462122935678373961522503141323871093711421426885187943123442046763715952542993271054184100687064999306190115915907892126368006040229812902063557791035408472576701157959720539924011049888258413812158434602661026074620792687751541177176441252573266946930645591603696247401255651362523870070959441958383612643062652322570657773180599229113945302439837935930218277164291544413061977678055299509985831632988624254812224297634443924267835483036519821792546209265888951197844560812628305168664107636083859722156154791305166676622932933002882544145029674304975711374923707985786934325529590245270618005387304205138418529958740722380059894665719092124662490190028428011936499539761252884922684927382961086895443029845076000762326913799337391170457728317482336388397790533231930219630254931608927778904470116736444768765978128576938714009899859886389398768323378360131007662882414602777327569160942569575795787435868059336605372701860643921676186293314367189014268621146216426375456614824054440854419895534856547581491376682849391214204019953002354938320420937003116225457922486084007983548317624297686725480139661944338622776577006508859366549218927940023969941547846006258041581085052970225644583401038871988881283996356808555701062972447134101296027264803033817384504829417892869023353031704949841089453976101472310756660622616005083689195350231838003100082465162781736489930532692316530294771349045299790627995604230153089749755611842933836137063675467956106614950057486801463685436854814983197738676610646944814070546465184264441973259300848226668195645980382037140755412524311582771641464050004325470743248136333318547429946668859305109251375909637345455936275159095978314121104481627499884857760973841185361459632259816706445958503840220893427830588462180744971526754507500704192317236316798498371122954842464864608286551804075985685707871584439555541676893965701237849123711503239569402124432797954218251538623618713428199281660451631518898373632352013299181053328297990554622020483400632320082276311500258730628468509648652656941122999257125532495689054807541351831871179238475930168724326197587732262664375420995935691379993734712876163656114536912517388437373191892122272770963528851260458685786469141401753064453271044323173508159391395118257436210070146816995444054968595021189342076887864480058925253412676122564215688312557236807994716455974749833898107363519209742496345233347118233312153960604848514546492028169348877139745076097985300800055154492671741615049170941150046347071419559122352206072627511240436067059613079227879313100387790648994207834122036060648153784589663294647754830910308506409197702917258211334260234620674820544974703560203214232595078869782557843903487915658878380614530475200227497585272159913700529545791239105419510866406495935314979681049201369692645966754127151355115458841259364399091640903326566913939649462444758855871017841700564168879195261765194782171125183328140748088542087610939701561054359908036748946181587830633222788557728028962495786622532113729418460838310251611304735090505420509342502879747127905501005532218844311817581382995883967239285923903735279828695415931869071804050639963063111484197655012675954297189251189220944397560783421854299234551853395869812567260262131815542329487554849525456569119742439612012763368402738101670142462310531484914578879667028884715504168731601808022173459690566901586586525827330507213836916314066772269727481263434240934099169299946672322622494195476154731727496456788732323419690434030617953877972718977255051256086584691243394214625236938210442749209053990463012482988097158341572459439908599806750386101812587450752276605412333118145448644542393561032932524157834202610465488914018238153996049237902600873148784952649632189706556409542184055050428447465412220830152403406328976675502138843501190990235841016444250258614602067042456461473028297106216263570160079039626329936314174592191481828688692704294850879672120095596114745121449985985918233558873180217119662439796491129895471344759659173846614397228318797767445950846779437204992403724647929152351019843399184360879486989188076560973050375065285678675670809408680182378986194436751362304895655899149495590535227279031720560692509562514869984492111370692724515677424047045191831788383909918431291419177548107416034884171773500288446994447940379524000850039557631984992859661383198176581525923513261236218605924824938405428569754700678786027562620172364093889938970905384683954381709770430445662102071754667110644863103187590822407203626935182799666043282568925162666758410225398420932581481472839850029359062802710713926605802266224064509025081992421795874822633406202318789557102278962254887512739750897735788863218468004360069476976129350530690698871506570770431134110355310475127357887029718028536912555703946584358487200171356910230097876391907568601071577305041898236542858362381878366011564510460565292005005632971802243312918193840942955982024591709388044063049119373533111266539303729570797360619579170079362927358197746339701503723748914117901351133127919831113179700018695629360358007602636598774710977778863109263715293595126350936031035931139549374670630980512160868046370384394198716763667195498714285081691364699113180782508245299059537671783034873838187569650722630788260332954041610202300813867336267810787199555150626507242284069985776512385937459095951844182619947159743134523472086669872093270699907622554135045326256186467956333319816255231414863643176368314130374656171461374507795097476679595622574925566367534690054823718459854553361973619113695157704930088877812310082952792636287787356687246682983286454681654019551437340266620220837557061282354546096178772662866816713024271277139683119489658527681854418876442242312786822229396049161300676690452127639153813550776474470853728455045447843131351763200337031276587363205967980207671543047153978688487587453764764831010594161257681797152953873565559007415402769587206521315297636275800497219073508816802065614443060397588123612494999094554354577417418187093136108242300361974390035440984420429475153471350539834708781143041148824881805961101843158714812873194186121520845907223910331264716324303097053595088272139283588584474224540416696638487840656800584681796726394146115040220775813090371990990634072783566168067484380279763590981782401632371300475436322136854085964493735965849374698745963831080016897940061371855611380265510879313579729652528236466222084770026550124307502494672375901126582790215996829993954495992274829069443841750455143367897597941590893872178771749855738278097493320276896674365025648841003374128110059654738749091104970402256393276972467727005200063516765180340853320367206490948663261872848539037944343361436337486770548756336622554237431865161676035355566223243801848283222375151598579928138785296741553024814989550183862060916746945556594331889146968288335023830667098423136198154359505457080110223271309297449736789008174451500143584883527650331750923776016435144115303375343012472027518785931944200931068221043367031615865738326367832585865258324480954523016934156797114334452978066199140495064364676711186198477320907564499545607852467844255324395808183935362768155619497347580703394184379583079101036471101009402363910439970766104148480266127241894474748003705263400799436948433912828070421076532355637828285499082906059462443450020856456746951202718131335864043780623033411592145519671186365355731731203143603711791517405413547564416171267178141175340606628893570590803257299494027311807784013583004214120004791735140368374430009375351893133533447112097622298196025315691811744604005585442815600633386671231683383052863807888613351841987382446503056547111810608375449579816037754015033386088632473982528698235887714436573210638796480609650143903239212201490395365734721113352616970991103434082199538312630297102087287449300840534066475239880496186811627308623064294078272130035808369506700814719948183207051904011585350365929618706177978885549064623381558125068104675520289689894971997054203868682409532060663118590118711414511619245865524604213148559212636622072235918425564837732651776982117748798407204208134997928803267144307073053688414880184932215645533822515046334394337380604777251871494678138600932163946517995681082410877833714875080385251687369122221318192447303818553502729847047472830211610352212944658070652934256872708302487212076465476659260011232279022859669099322927116539773932093485408928196753747183247153650439502409312837235318640798741588073173178147412841025038592502511142654252422142443379214907229196710313953484979750150238187116316533517456970194937273651046860396713122345344171722875599935764089038649949293487282235301546525183251845938215190201683201861313059786270977830990688457371319394448988098347752774980374983502718312362601860687897265996880227749444897953657491559435049662381540366332555754308360849704469263742523940698022515655833861370484449100601857118187219695883804943099804777834564752525550482287629271047376915761305073271521611030433554410677238045310577427136487380128483357571263313570636182377566339927497454009979426416327870783534347339896112370349022680071285767074566997732991884092190757766899864835575908454096237189576527190279213908188222140257713628860969397350496651991587963267891166692250373305118213759486002199752090724465589974597716935399275437114643976838408926352039533605783229172036667779947002208974189991509979460650998833340285834959402489732530950011107409870070208775694133791418980916661272558312573150594771184429534967905021312924677852266062713166877353925421425163241559265681877410580909357919820627444087761820424763295888836781193263817975855040009555569048288162726409421726790832945683738628797317579931917955655818994237425419126010868736432071758421776351191792161277468116476536277538216448684287211699614877042193641175842660458908552190010549961515268526389990519353627786257969364333845221206191002301101543208723465227831793645996822633404966348708446042371327908906897204907667648835009412642409742524190203097132205484986617358689879309622916034319432264363804049186334087442614648721666582931346171870564768547289471798030052734866698657665729881587069402579691578402531112022329546718722292684279595060050756018622448581556952795692939393936817581406615428481126088005575302664439314207927642117788586393354932970380304373135914885179589884192356026541502740830563971338924853881218407758539504660953202849389688679174626284086900443206053692767034513906057493967510738280077280580678184957229061191516344930437274184395107012850717162164919184334947976779305722501400887551380716677048173236476117390284035459807779747772055742209823207017936594460143503101529155480723471924444533334534269914502511945767244346729900588510844421749363645598841735371767817196894550679932133427978208298464176021111108503367404284618990693972231696744279014733683823836222884506848441741014054382138141031564542500131503775561738607440911418690357064260763469070733865128933981884423684508182617283698986925607147608153923666349157238714938323594523909564413592868467043313952070094435059151031803311232398110811665711420462244363982240312029792381042783636910214204894313393881937671598961068204417696279764058355903807968979503443950257929913890082049125159849393446701466390389581596058822731555987174707463246031080282705338448395202225788165010083955972512643806097263819118464529897974728376790234420697718497818408070782133426657835975200663965782739287164040828639954609199645649398186750983746545150300261369990293175472507403612498234630233324385084331385436336163487119334246538959209531718716280403095665203436091106168966820611437464767450943531609090009017963814651373235331893244163177007703792093337004062056595924247056072357416453522451082063940177490334965048358127669173775381654820350869360798046220821373710589705146843587280858643523779669277620657766827690016763738241793251589678590874192478821795149024859233348438131199048250291345379470623134843474384173456260413055684043785738075508748150834654160974659106454022829315107280295522215622996423416688834248287782253757887673734657240226791706964658186033388767032742082256217986693987882551191656018919794316381890647477335559292646749006963739070955739195414326474204231348540715220049066996560092146371779312163378031488400524839245045098788804439565079843315687821364799900793793819409835605812378929919264814258317345913530208373902614259785707576379024110643367328839871608611651104147557341926946266411591913678449790383251904316339447583688642560223912158991521426828000632242467104100721807908107355842367527804505057402213715327087256749720985999400987096071347286429739681230136960984970958886311223090275032688297697518949858298540742858380063023322530191671913050915697155689180101949911439350247285786626090898896260410204128208469250154924816810278021233596917222895708483881622807786047853320870023541866985476095830402050831697682089430248607936651910671770456820860335905882468232755853766049443576688563919105310165973892966073769645099154055729372752076009041665906243823381596329134716301451095643514732983081490836465464804178945732597461035149553638837633860012436052655584262312730755575217906468420025771144512649054455996130770234284243443743487360358406560574497344019398023193062601201475624519125129793312011868631306357364816734488577484540878198664205078021144756484783582127908499395885225535077208298380346221662298441121063788820230283361834198544723876760863431493806762036675730845190553168230613098149590107392439391530824026157051522863766255189263869058274649903594480501372986902133421870674947541940592267173848293656596131182840350484839319354254094413859948576636834359442806156543092517587376997218304559539604757783383772311132095977916651300083416014539625156501808399955885989401285525208310000703629415780922003012087282375357929739194729932141522946209930523767033946869498033289886047949152307851221376632755973760420278410482515043223485948061069704311053231057377973972217282216168356542383006241278847685990898739790557329261364697962864733441150553225922768282609535086115267508208768705497200412407691808622014050017309179632809058473951057871982460077397528905326900267397054089048844937582965052867430159354702357739043457976621589579140543734134912446135216987996701547679943928924899078705270966090337046563079765255735425575967641069153230819674371477809609967962721297066567974677988940257580358083468427016657333452743525644302941075834310819760222820827069204693204372363755152821665938443600276280604477759564428159166283575095988428419542839613011348489454467358294732674514245461516674414527498017040137049849450989243554070143901410009453179774228032642010088079580597917097427061898664866114902866398411696391235648969403078745495746855680201324739799429625267103708094957080422952929485457732997035282923532120232376789434433676668496962947966552013593426558978245818652277591654914092073471146999615822761971545274289189811107686060349375813003893141587093210827363643733458557152414863987404789732819620729476026211363073782222360343364343516026482117722991691487210633009355775459188694960003703840129928038539899713117603648943907973198535251549008803337539120309825552977207298139180829424083358670296929244839240735322353913788818507429238754074556054829417736063418641999501831361315831898303975655084067255311574595435106541271749541560348712100390643222832501183626879286320114441691586720996629496175607599083723904767013825531678631629617938385134694313748253734719616003131456754659280200097780281852230484437700941537109427374268402175654220800956321878107693497496514189391276077075197029439770070478019851613938564013443960370482319421920749803661674389310234261798141366872981424055894628134531673042397241699780169699229565140397624076535591326373589083545689104095070621293942501673927188718934925576145408052911101575612694123878391688922218238785292773479635607186497282933904099452152055039422977086283032169928645195040798618513699086401134608152326765342965673015257868270365882059947134897224032124461633821793086426841961700282765290004656963885038398432252285059798819052580242597391007059713200325477743033945487665780490928047492319805725206481610126305974747646002895075596031663561853014347083857207775504965436725222369244780698841290464386170792536943668066741828694605383416336896665125408586689967057129284293656765474165254640372604660115157234906875553302127286278784200527212724570606348505091253831424126121683825047842197286802374298818600100728096889105854946786349683738333843602852888360178554019644421985080171172754937403890465453476626841812914489518174896368438642593700102264189526798971765402907746853526625410573219019928656039092212191687484677645199106800810687366797516944070513362379292174490736940623779466747083054658199348479610663799710768911069755316106171305324933492431937997765159848433323355490446940512913011436577892743621644009214790211637679360890985090996111501696556912205151654297640405866337740666554990867055330385405496439084775812044496850390568346620526164714464720562103992010980570521852133012671976719892912983933848355054937299328831682634464556480789989554826807946963159536349960034222001092042800750573562985811182853840730075510079665000559583476585424685668027325175924520818774578460181258278081876857365736622930371464463360706973940183401928941166391708931245494354856012378446367337589314927939442792553324671547044640597961370725540817897239052983251347092589216497833094121281173115246462266357562954178201426761483405352093218164456509738832857438325760401207490800486565437288981819979862124416408583775834696195868799122195609734777046958826602825509196200567103226928646726903509309291337881938521288169222914527737758076288870539608332868596894582343966496877030055551926892016715020858116505024456839434197541739731479825368801230045260172652736518649054066392164983818926958009019328460497188670282615251188637912392741953184316105394886254965483418276551876954661669939701507981069982406594398900518015955477490216271456007066232272381760947696722233973390632424803259895014742858070301401235921431320109150187829622991610035127485173955532389054899331258808105124041745891177301357598077660989704984108365980830097262004971732757145395061163991367654225999262607985499903251689784068100447420615976157221169409783394387152185973087354721319636902452592433050519865383834055369760733927113930711938782923819373691155732029952190828267612929363335820568536553676233389716243866554635211615011683223358911364980465704214694486830246666038210663802040067860610579287158120140849301274204109035124971719984875105370502797480719812289918542929279988205299484378154132835521486503658984347195283278596326267280760199280949976206997114612039281487036389220309965597132829588651760657602325687359308989370169439795433924725417140845808445890099618514909083167580239089858989717496261818541149058195143835294240577531705079315013144214452769446736416225689539904127137657771459781139294547614048533614012882921279649488510329802917116091378747086881590495365645085285156993599630237009429675979778798258122548457177648398652483846129034497515300956232838502276102887636461463735247341669790625631411746901411622581284549312740614708567110394273358475431948828264039635029443191147704752254866302415129284590219771279248510023761630412301771814453360902916587583714325693394677695795953011711873660298223238773476197519264568942438996617738297615333687407930494038666461001996441263216156747893864449392620287505436808154801962307400225124885045290033472997888944206965683441062738530142711396868135633937905272495979848640770586791790578535950861485049833219946341740052218074333103789840222015200036430879098326015570872087573840107900249965628656999168919372334644853616371085069227058505821458557144508188123860133507947872481570554314087616336458092899879292962393201121047827173828997301452117143786526919707550442323054354750850948692926066977336590631452002639379376953631448699717685027180034486093651918012582327010343830188511337872494512521892161736866879661174101389856307023086634925130453623523096881105499863938853228943512955260263761030844161328130113213463534135122926782467056061327373559449957374578906434585738891495225052522361361769768372901719144419785121252866735182541330604926243613213381527102944593290527722691068660442781711386218715804329871892741368638104829404098411591458593588410817976627080234963824143900404618791497684477171078733770262354365550809595829657737387491595053181781961118220924163653616865016292333149645312968372287832153826331423249663813576895813912322776756920158640807601363848821746929418900091892494551975515880348266616121850570946811001869943260867284223506500396676724720622697658772955511115824334492488538200945651237245745588989699299896703538961042051182424467903791720766592591276339189978659169393439809801936490165381518673819610210533183998828913769617149040085827483996057537967031267928651424320284308016570467576282305899380123491737014266695532478704040143364851783704269748425859180938375750736131932577621454300456261961831717903916522107186385855314044257867138896014608651837148148373134589308348400566477155982475540994403851826061816762502348331889490965652453853607816422685928370285122390735309575075461828022078433716320289969599954339092778571096988513088740289198854326681475591928062463350709171471353029041599661279176969405955375759977665234210676782872251530025826599083699289319692112298212749979785467102251291480225925274232482614290782167821524610792093337074187220847228274872542667991614268747457349557703270972217661035293416767805445994250212748849525962354176099351059097426289299848273156308336636906970175898129451686961382388702187851175189391878340759513100040987567286233940103474069782352350670210182012096184261678576218067988596321708880651024036935733487642448486895639396266297061464514944426209529373066167362096527847028168632494217538939897291356001508666476752843231429736785472440093699537150089913374422240984441122961539894637077396156206873122582613658827736719448746325652814134708212548890807779095645102566415247461245917968989360772371405401726509004770603565334400302402293339929413639373142096169107474008188430475319033790261007548934397623616867200730200198392225799798648071468208414298315090794189425372761147267051135704509637327191161375069466693293399106294296631161075644401847751289738882963608962251186316770909236221011483392346682536980860136778791446980572147461179888701690129371905827611690436737474426151912210211454814799447596300771150635242398799657793171981382414280940211315463029661910493377569358249991616055349618140471376971567328876586006666617661189648319861866017638769563649033115292436443652894039804886476118528924040671139889626300703290689367777093860446742431791129378558485669950697138469803953059921463865722664159915192341606882665638681342715627246756531201774134710296709140239485537738255584468247652023471789797611313774279413404945926846289539995745696671322589234332691816248489151983867512074564358065940584171341967657831252067842710235210725387954424813870287407069910790479901778531080572241516566335744092336745342656419154287593977162530590179160378739986976754701207799106669681778771422768200148879678338379864197043966885592842094529830350532626193313274488273235802753997309987928517725923202220230912273733351919480820620786631586793896824958795924681604720894218006493508749653098450119641392792649313630718786880295131135573931603300974329160131454234725196232911789476783897196529690767742403217109259955672979096523916013788716758637780738935611813300317645075981145943085492829646402855786439071952424083786792645494166030610641847180644424043730913633916801819884740021443379217703030166264692670197573429961491506051889248004649820509495137108555209058897377805678145430353028433589151280995639798356006483177886104371336373425772205093506835563677831466200486336816494187246359911238477376874423108995360887022521892486213522155825935659663718659365961558467475494387391955135896181240485842379890826452572299203008958519977705141019317128665286412362335703063026094736031063301344772983596494628865757258427690981006465180401750439776673804084832245307582835689399084997840268917073266121973850225947806091188981752702639227452540362721825159508029513296609695115841673600266008999121673096431675050148570977945394403415428350461793878337158814042567332800543462838800541577178043996704381107454200960122183618753518704823957987450153586394931812017049899581072989029912105067895580145956896051150178902325800757548192386522925553851917579502768573538246343197835478297462721432454385051308090123828794995501742546256178864894594900236948626384431234834622828662835739693930271767271503090556299702821511308227945548092025368277183413884309964167308259278066017762669658290914237718974213232130176185098512655523347937188047292417990644399201861838918257975659153415950500911341568143505282338678781691582634247511823769228933724114559274346868299211528211560257019530669160621862546265252732129761819857834610054959492109721098083858953598128209140210724663133049644036322236545280196396433433589743899968997015537445033053610722237787415528413549626777657969226482124495008167260839063231143986791512775817642786428142385175218087754402849473820072085531526729629880098043660077917229581702519954273285863589390868572930566172438260233379410456318428351489773048212371163399364430834168017535593982934877933362267710032243291210521301888848421093473359041738200173139731082685448065174790795598161421337684468416756767180176337967405990913005673778134847121421428581213732254290750139727067334723008981756015222103809354458258506298474369886905991134082424667647516681078399440752986721510981134512052754565290518332485292478594932554043604241775384554742847941422504351064508893895470216742545780667448453093428869656195408487909593244309524692382311311601643558324288766569838706072279836935443709225250751384936615237465217506467372268579471085587591202969730104651414825896859317899835865158562940273061219944484527775786465320703998704193288730268400563291391041029375384941766748463390038431889728905999486242115033420148027154645698713621315098848162666797466857583542628933303357471506846452508465279996930753260438584154440109337081961302315261983456185979022187714483123077911541245596599280021755772548403483429412069178861273180080415349645134913754066729772824288255133482012602375149123925773693046502251821204234499611776655507556645698883093822154422850063681298574214906532925321772207125051862965257986852237614473233830190489215933079846040211734895531749108123485603324301618619450147796705833785635643747973579761346604234528032178019237299166470934033169506354269653061321559104252439595114417847946882350306123907115808522052102180197021205293340659538534000445195307519370276172777918963733300088969636202724969995439878613974654084547523707250286692829094235969445791159806175607298801738205415746511338649441862671216517014360155878493603681699362269442490174136250220279973596773242310239237861458881427522780452175414405532324239840104378937059182741229663712504757259219867515596839613104631514427091616181417813615067566571854270757102320258769758509080238416817262063108742977254711083870905670018375630539538318908769476654106202663711492315759418520091618576211594935034790965994214167167311337095708335627319934235984681109344942831768578374244609414516269732339328935330015006603480353143712973429688037380365194304037894602668469727832095359616044752749795592924290619399324220708882927527134855011862194186812446757443991120772539694104192949736151039419900287713518571189061620857349531387101240639163874465352695057048784611176013345073795977279139526977646562415344635714595781749785640525361798776447200505718845896173445137530383782741109869588964043818813213723953755805884499998105854467993494678481812756050256127681552268265279723704270448279075608169657432406361087352211592020241346120159092544885538192383689922633430103412258363326453428220790056882921721782712459242756809705228583954430952611548177739317391367681424944089919504362511000043046331592610617965931652454908801852071510009218556988013719444992579427770220917904526421922353088338627983102127297075936819504134724901025556734122379033152456725391015382740053264011208119048528824524475843715036612830252014687957756555404866947926456142613189273542161140819134634494045336106449856528114879757379466962757022392884700668618947014356994350444474137771009005437617303917518541658381051192627880063190087240105103160131672118377879979550765990274980466849264805477021062693409783917364537791203779072143530999932305153011624971996282138485709529496725200930571035852160403089044567465269187905669558394709618075630845523528379292414059312212390822194634779125771727378449206752818609121332324753147618081135176796426832484110003905342520096223259598766425641494322922941208678340385578927108278701897884615105589890776123875298962595911629187993371764986550283605719760714248206263195066415994558168831676050006328347701693251304942302190955919019538751670816590874467425091265073493100058973795873825715017039513704988423769536794385639234793065811387931487608679636326640535340251378132790569866017376815253607501787296920762961504403599469004232101802471878245611114473688503744944195164581897052345734560523185400804432944778599524057069422957606913482005168078055493026969209363664366661828570502619977173959551415330876389237209248130174520412517471372907765840686952108187618258468068895005049302205030220919451399092817484509728760083238414772397270305967160560518368121675320995879514453497384598614041992898448763338159985995056098665530104072458975491692670112471703961579222853913558613497859046742547005847501524070585594514832010568421334032983774400197975899857008254409868704429568223298746253772695180073350998496540485395396556021760172149342431750555679689947032747223987003050590299004795907454446574863972798829642536249542383508252372375805232856960814855683405936899300479233586622701690030718156461657471105336161044841837848852109025977107420006477462283989944790752480668234275128327237494763662571265302412698067574277594879640408953721423524586001210064922347803845617739395051808018191162128442617933598737880629056365413208777423155766558387222115535372880630443714313355987847432662280082727026977159070781808081669944671440570667817467952062776685386025052453131543664007843853395321800582506697858129023421213691756462910766176915373781407229505727133151267633375613939710179389606805718181239162549285660601616494151385848296022963500720325834133840112169174160557745585093190209771996610075173765216899938355348461502838904643156765579626880051691650067941680662891248615174180930987802227560922851970301878747797808299009155755467433516537163669464709885876626495291714045591256481697221871092950922191241261908372613755384012557586110819212299442559061444166778833534429302803477296106593571580909540424537074190208657693871276730465392776287638846520905390244144938375918459274097487352156273177342966616482597548216430003718671075684048182570463870540293176634704935934630461602371610478796756104407896143366234419859211841937579491692109282844833109108385735058738910010980818332387751976577455156872858418620618849945814199853193211723368449078616137845999388278986413398092775065459360216031296780009173806797632253349053381435269851779464298402360937676643443375724983581927520371759470919757444544872948273875139588178234659285658395495860080014439586657293684352051907212655495778961995857091770364823824601803809934943246854509558373615805388204823866038399724693330049086879484256768910395386653115671030193532542211926888836557186156264070901173584881207558268973026556483614609397704428986118287180792203544390901343151577685653881150120167546388687260997759003268341869599846097079908337382056597883619699338724761320975802494361162986639693947469802933689817252836703461741262058766283545855763352781741120769905520767999445626452309521663546499986178273516477463285752882073273809488531938345742083595849657185060092865147431496839322536819259685154754742960532828186906098934853516703729792061806034529089863188093238010022426070324154436870484546394790240646868186863989774621361797328132723350619713375011414262172737594278233623792140887521871889871457679554545091615023092491758164592481056942478982651331048137607583885685669932407129760251679067799487516950840263759332610858607459258362879639861857593751864850486549606905138566533103922680546742400393332617299800263796981781817817810059443115086584179154141696697716023716317842393267526028835718494730310828207223371283682620482988318031095504905375853337383551442514247494010816631104462631385185631979118526581566211911766739323754504894138447416085222377110451778428642322027788757537141463603995185354293822195802680298682614857764441751291761052351026745694411740515907710762794658494279741586748044459718189354220943919365233175234962839713131177513509925542329548281848534151099080734434913120451814056674413566109939625963672529358724060514772439910474786750316122665956242276276058842817683837558073885834292689427416137711719221223732505927789363312072159774115580318054966720237626887222375291004584470982729705165928348384721501273167906132320947378746295160076743148798220341792044230991195174947662898866911557535640001201482213604243530386101973780968084872257144558039787945910510619370061454613298541281118865513409417771713713606391866128412846635686681888133082429329731176909139636323410263469225482163559469099064137877915171799370601336903874668244677182179063347187033239689577121062826656728252113769815680267378023525479437668798726606110759416108983905857198564472086184015574289831407246539876214419051140365912829737150711533505636857759918918651091129726796901287984872206162212319425668257321882097532624334759174077131056582025289574983622701324728893647249196646186663700995527042550616368571262113290797834665968211493764978918188798647752103399086203826168857112202390869215741647554109525722125129939385583946396392605857515377916348529633518947494528871003687568293830704821588149063497114085284919967590334630872001182049530852605246477061800279996322286685656492112925832007545187521856067390592320646588045046207086073323217602035745742566061979997761496955453319028308429316154724736530656136843473603514184478566176778854300081540009273954422564206181148757790845871832894998205071594571487766498137462793142829913619421134769942251561796782029208928877967092576374852186505371658941456788335018607601618001792410852692440164786012171856825483956662727068236817231330747645490397368924273183311364727472013151708140852925708129022279135570683335241428192164755816746112343413767811089343916619297433785856450860872435684914306944850071968006424960318794577759841696572577391637495976142424401127634600798166952833394458077420364497912948002932269732558309310036273490473691085773615430240416247859611283978175472780643152801937704053005150079329367273887386463999996656575661777167707720370454033226249396336734696478740551071573128395028783876620991892594791261384833005763374263698138376752266985439428225888281805061733307419354987343859714971902422141054211800227771267005357105364592837223248532941611122703489548087686087221211829391985266152719889601779152129733635594685926753751389112342348010971542585085996998140498898218542961503523688188919263063508737010764921233152793484094303900281440500845590437109977043465697700579190723684850763009921758607042779874494274851496570031510025349794319010960789715803015978600706417084487772777632126427511463707613905329005198718989986799744856303002920213036809895663280292852168575948841706258189535768331018790110097998589619573278467079232433134764675078139159559619553493188009785073245707104891791875943169227265659583434617112143279783435544750266781743693204476280283763353145869164636493877113328627406407372395580438894345731551950930594192000907812493279326921207607053348740315983409143782881938266769013877317788128069547228767239302747358372093910787152831607858930777694864444104806907956729711366383045028062717536224721310332443438177136667508272932114566632222830210282073740808241362130240855972471018199616275144538605430827162625684556991703283390449834443685255471060082880326542432721735220166855303577134672030817390395832854944209599017671156543191245348200388950989112109488707767507901399731605544988882607352940603775237388661157908858931813544499777177941214692663038557249656050992662122090101908733054083619337433916824630468052474145855690080767465206717873074548366632164094541574677233195294560995294824482414634329617006541400019825451125793231842867128754481371262718424813358102646711674335341034706752129179057144933840519971924725742025960988393627160596612710913119064397557397854661986896773231718315503274124661711523346315378995656991288960604218935417862168925624384698720037991171016273722114852832671956554188581240582386072475006822199947282955756892239091435231388837270440081381191153032325886427727697683895421952084812983381389309061959772830280058645839147192447220177533565344082293983399545543692368084029936146258762274133677219630628128037263219235844586328160843519288374195789168744874206899223795037935317054561120540729060438606957549357523762881712000134546639732053513255968694358764295723243342223914745884712431327862288831534857351435963743173293685585960997216066104168471503120434705893876945200002170949888708263832450160213108261667801521157210967777984055389329881156495890656699808838518427235803637505431330436571264920690135627789160255397456753033724227194104797267463753272402683772516485181681566670191154419970310239456471362143994033014002776952208817114889398484385175588647061585744198770412482113402904311953326893713802801627698752459955482860366615387894985092873432893142213248883068640403833605664512024183956823377040843532955426176681059626500078302269990849561509690363931716015170468023047936708825320577295542940772653090803035862796848008487286193182719873130076130960161443463901250867879465626490989848893840705332010352077718370430867952079484371014518331922381945635548583145185209162362170127236473335261369461726743591654368064487057663889159940611256720478848391330299498482560808240676166134766348358909674282408275334906050932420303242782563874668754875970014627758519347411988718926379177340993162290115629810489243579921442673247850022378524733935559242355976583738799413203735062678586919942038448308518198056932942439773994085901510444419419550005900042848380133376965341881768575305849747193765209225878875125447324158564905885950839057729924296892607581971023255511658848129957210548597413047984420458851059404848520552285873548210052716177798755586290324398331101400191876650295680648189209173102959403666775374649580660333246902792796253001598128472419730917570507134574192332966781532302756903519441381016367330565747738157423253365034948502025928696380025489715075516608361674210073010893756907310777157718828889267765614381101252866862638489174488385462483889483333210387432960286585313656845374264990143692535680124596598977309078242311138737175147349022242896886710324382017581241329094095147068283607011511825111611075837514233184562201844399549894320768700205739215064178664562636871631578193195614410818371832003194713242757750907284386344570039692440579976033762128695506460904787763571054642663006115601754832556134358285383564277579676931873514460057552121391928838204057832746843446216638937935565595371342140355112814549358649073143042537600107769729725928560821021065151788830340515086109635180984445739398942036136475703380693202008018453267847613188500737227954135240783456283835897612037723684580448604118085119422691731693021745535845132495281629806332935588522350217969207061435084756580642443438210756232827243293550533298591939953146002624622562324071779283000698712013104333609178593112135936905826759356569189331818734625650250517385201179536831636887583212755918373110672518208716477192982321499275826728125676098504769053807311476490911626916665280995902650380605408202815254086202117413584941978386319537164565571513638100004698577443671993731357297952796213763550006211805176711319814768303520881019100550424128805934348585832532886632923879524801579572778503130570669536037191785449884078463281239548831515105804408484795800414229589590126456294347447881926334157805178769097997061479002397502614207484925631843661161069439622870175022994298945247966066387823913619844171881180815617029888271085447022829363591025903386503196053400976910837404823078733758650843265932435052880667088023423309603576745108758411799580023432558124890924324613598572179218759815888609867435038098756902067280845011750806036726070828171386297932401217928376441293109827589748868080390089821596216842271830632086328152959894160879863753494688957758100868594694686515743642850952453501565319993243179515909611493214417756190499819517566826363590557199357539287159604142294244097636020991318519368482079283949133584356735637900813793013541212667835974340823109608500793539522020625325623224709397731389550237741856007988396470576728886036534531363972436075508934542419594020942310895003967022112908691620224259303834655720651319946034535106943978577984412056979482669066519999338755554563539894569812930410865394042716840960707997184664846866284672305593908967974724221476187654225185415714408566604714329330472611729287341270991327623901237969208768405236910822466368997027066280806913611880313021083997698393868379672197707281759390089547298467142949459960674172398286776168570114842145859119181225042184733670599499378953012537621785773825468238896259159705165465960298296484389637023914168381258661164521610863125647649085813219931116345880395376997542120086981052359533575226725102169802150764209199293468305270310699079201085561022372513689610254133957928027389968527779766010450995936518114909738314584614713802381037384768915114708298283480530541183275109869508985261939808166337080911157834337431840475449315258729168652416491110552478892571807063309083237417331549057143074046211188627294251811926838046154780043884976454589513982653650049848964685463827151685851897448696050800239348165907947476630186920785815158730380377737119514317970858191048132842159821963395563965286414483966976380226660884698897978810556865581135459956425467611258847433943242980241880012026450084041876044678723797749226322831031841374503238895622492023324171420340499560146669284675410735435633289858223794161963620577365102337150929646959828871906590814110107373046540489727679754074133870172671764285235388280872480149430479282267062085274727740008034400984219940280585048619381193176218577453948134584500969991445099521579492534100800881673266188432673049997017115123446211751029544104588021288630350540310282916235028967237477137133120372032702869136698871313982548187312522197403495142876071215527316220751509758243451287864869840694151364621978285693652453495248323534030050692008069547854793219817876707782358307071844769217307260403684423131288781993044470308206717994853136946175464588433336276326180607831626730164910404226927464997969683644047254519506705969359894102644172827281512584495291357620032239816864583287780241732756672111232453939259699916133206874728346277077219022084894041701755109061571209939884201853930037885128142567112923694043356696574638418254630350234937886902468483558119748255352500550363287786246465436016239612159094018123972307558884798259286883169957972377599174709201027096658363397103128712957148230914105299627532260402875087353815309673341558058921357983826187010746620203613923830105794020445771520224319945700138929806792466062476174557158173908682252746616135009512058217724219654514339483893113357616717290147483756421131307525463466780973693256937521161405770857397409016240991271457572191689882988905685992036179707674213989257683847275807118075629324047377050029994058915103394506991213025347456309311558188403422546320028526058839762689021931140264493593781433388065736492897051570007318258954683375488220842593370648125671968431595956350670734733190354878812017498073543445252182787233802781214568261794391652254785269701422233332369906306076119755108971577301230400127644537526484632918066149313260759142265854944299701154911274274749537173327183692257505509613875279313519370353055286279301778797573526493627042267843978391566031797447602541596244533480692123844026967713828899894128276704940897322854536897705615367053269472441864829347987453247115287893345114126447522392583107339316996686522742375209448112070739259253565226419616164368035141571419121635873460510165270834471249064288330798166025901156547944112386382494945994860908943738799844968896213943487777957614731429583101944186577062628091185828793823725906676164001169351428589563706077863121337315459372760271699944299215792392176558891127722028085400395347680627025867786953844416891285044474162853582089509736128254581976771761068845433043143521959978026801104300254806287745789493237682084102206491285553203537247513915384735049172835436882325525812443503996386951929065694002656721660612647402220593220352190071755238843174012407107469484401031047530270070801996046619861220256925288033782100274851405811187990778962799852601067432999723452608076010925720763905760293253443549589627005506391554587317895428823639067713782123618385721285348408318321674051801018807428537670615943999396660865924576143636121619941496462479432464930589846872798674478313650055805364448035698137793673276243084069877200482269217336687176775082092253182998286676625867246421087869667890062870424365648460502264668084576651825357187620922761212560579829077301136355390404010682363141601069429717798648238889894448253134867766124781014313447721123129701171921571094824925159325876528560908562915875739931216666270904470882708727711770461330177822307206187249178527476130760256460730319037713189998177434927685615346530909065237758485178591800603096335677167638020988275366453019545677951639515226082094713012570549863703390851025312757540775309693031780900109689836964912747984663137606651938746739808627295181305999096079567781646000212484266198098422993696938816681445783559071630370962805593935597388003719098268577930631255735934488002541466132035489226037289893931283726481714463307638107945663604583222839959893886659738189925545184220991566109767279957259306068486713953920996439161839914114338102455697465516883848217517586621152611768358821773058633339803806630733284097222404360913472521797865310142714130805323631725881900749056156642730612698290345932376426403992939361820698698370921936119174524264378362517752072448954315576687869748716384737166581186763047811896705876495541524030928737889596824679072481136864145957338642703357900126006546006342497235194721768915645312115749300832931768878778611788627907977234727123262113412684922029769990525769036978239525669779668096416613749517976675823640749504993823990618557945216394225773045904468348902181649203781824966136097678961685150993913446554922753750087418699196766928570254708624850280415211642752137385465811647996891457889844329989641228266218176830310967479093449964285840465266659787837976592229785205613253571188536830611541656794348737150108861458598640738837612581195052840608602082803212678691029373755768472035415120559537156645373457532927539288100914190229359029066244154944803657576387841084582927815426028177373697099219886574708163177113348837153039443737102589447874960649311378692631136384241315030055409846388254258541155739140534972034639114900691010767813430174829150110712093362793171781340109922088959675706108190770087238529716406323046878420126628687777942191240756413730366606635729129925440718385151596326940707276594190721041219365892302641210628771384703585339868321210405641910852424801142692792932197612296087138923373023668483355593222791988266342095461807285484625485818593002335005574771121067457853561973539621820615032074010825702292032567515220942423433626316294735667069018257694778303129872621683219588539284886323181873783592726597624602973106595473607137107815874238153654632630677045086366198057769032294603339899282264203432783049035278211815712770623213042965368937578107036958972819071593707418813166567412817945151478667045194792410147642372834172417861653289765380026714584942340194419164560756742583072239330822587216494223429910437151035862505889667667194368300177342921409660085541633121796721384518820137038282336514079692666087791296743353539865277638069519573981583796264593693362511455270302474908754505553040592996607855202677780754304073198684693828998431414845659301272070396362210484861298102949824681950235038965935544578890702378686859362686965664458316804697426026085503029587470565124617424936025917865213291918944815877678976299347621494378527040887588615301923279158377856347535792780664411329912791368218239008047974168484389296110660614325272365872400830922312919794814992662784489300739352906654162391726039224620674312988655077622498970767264829239064397993899253581169937853507186919966049575158077372177821391207257090568397301532611996708638442712349232682727810121244039488723751486680385511133295043077039331092899512679361381135898291102139294665686303194035904149016099279883093524677336792789083582282249458406363969485347192236942585562256656133481760836170414654198541379251174315366500616675871983930967870807353455399982122356749062202586668883055886669842269735682586257909262535044924547763542271307224658415482257152724456501535927273217086961844084203305064720283430086529159656761214483309560540693056179301489948943882375255071988335735210745407847247635233336544134807971297776470298268264935804530630292150620787587406460603096729461364079676138732347636650197991895698656308914453103747414854963408775885871439629811996291080377933962015477505480407744153719785579737236626827623400959208738208674452736176790829283187269710661557613666953939932146171129479136701787035718837852124188618679625054798503647878111156021241880651343027724423758476504029047075585585047937235292502226914116101600535041413588136257461301969236788508689970783513947083712803063882143818461100354072091611156218969534417778679739419063679498714075866628685215559363092242267626674005048107119033814599847772081521552673161708153866064188795817987021812227966537842817786481354332400133713285076784472569972339458996732418673763754673808875583651778440269325552636463506538509558089954311782974765369993161808494663324169654566493008722756214643322449425446561860785796664604594530188007949016858794635619234653164028364277335032980152143897225828045382452972763424280548189676373533586651567878026019974856448767304328601267273362676062339442624663130550903871057010609015157751661503301323368347392037509573344062606077530797970581038469922936805088324003290763237107064912603460391461605961184993257859506254444186744606229713579480934942086008162467190833968389663046869527260314688285593536290858677682092940340741290575574485142405791191385938668329933512545201038424305079297342719905496314597786521699815226812032474682562873811066640151358372787460790994357618799255129057751029665498449937475321598109590593809706583667905509626901266805313078357775200490994934734292443353366550067867751215422436510242862698734230098926527161028174485863024432779108714846681415577990439544905211009797369923773399279629199408254481549590903196482757467958876133205702324086278671406406165822080120356842296361798063418581695022905937337149592681582101405996684080543334462170411357684596732394471548828811522082242429007351417163071719794847717597493553601697226706364592538489009282735391669781536194741714663267264833765598922670822395621815961115602032027462671996017408105451689134831942292950100889531513690587974368372470809853154431083355154148218780452222829150303333975920279445402287582174147469323083437766830503030775874582332193938055752722427195301907880793373465700020383968448487553918166729222407322819609941095630890043867047869993570763877830671860435644172874933409652192478525229403715959628295519252602414946678015561084257526744935397403127596902854912033532671112972457434131270474756013435691081674221637662471312167930101999053675592773294773751114739085646710675859445592573348955186680638363069210441717185023642440472796863646944351963223927503229623760353743686052106647775698494128949765076340884946325070229791376386935608731762371729315853645170270785733828915497501009022740190652709523397865806653586369030850377481098868760177021218717233498952998450620552095575614200430697552415107982010452863428290998331603942389537314636839020855307880549285009308184388421907556562275174915300119486750043085364016588308133006695369645072921814186670013886809951730895768729104309751366104133545294427945348990831311551692438823743696853779827840123654765212446614978927168377246793412731806388452467035351845350506124351382361631015640501464154847815853273688346972557655198120899633813546071439670503110908908925104351465623659295943871119180925913527054425680885641900858246159602673411143049144468061165579738577909963871003742442532335666926234235661996153113755599297902473146821074394396940252113585634565088651540294936129456529039296178097040455843262349835089636578093068012057232865517559295775517521852511804977832644092591843702242340512215856149018763998636073404619456181214881507254817819709081023960512040546271907491276249689992794068257105581784974417549662396240862573566529053578320608476146812680698157776101713452086439095863270146190437765417680374627627307963339957654968385313770797510312822627970294858026421506741247873266901417918110480803515662656065941206227314672676037519162735955887061674139412614388355665361753057849653803853043126020326700078074623221415868843957886073588448423039008659760159288995070787501453604403246201931667128799208332809021537707626768223310929931771035992321127357024572597291605281306106525854916829708223359076636933494853612462669936016543148011327287262999689845148158649729668799795624242297758134989303606668239807730965380141541834274481599087902188897910755085536957845465125128687809284339586583066057563133020380796958090423673986627869796432571850599477465764166532185974502054565066946933325111156954121733705740548845153231767480449490349856214675381419179840273294609327525097548799215703813989811923996222124234515529868829395703034937842379193385647998362388093466060850100659080218094446593796437866013332110593523561233121038095772062607618205287481881278547275957649982498454063342008435006145810632431743244401919888477839267936210529604010168176203580769114921234922071780837880536588018980475432797052519099406037280849856428296692239863805964783081774847243582162268001097382430728009114793820246968312916708396966390157834719618905470000599929824335882804478741207983798221336454557697201320835889684890337680249228415002275498684873065851027957675211107832141982852751193612242556920013002536191430060814861968447519066301849368270554944497950925161508005639214984687021050400175672891209383720099180710665972506308041977622529767669028765169722395880600096336184713379709760797863206196419335845072151492096470948045534270857584432112062571482088237267465929781814879946801600861713813204535125440486356257153262203306804537079989694727237240307126252103744478272256316613535120282998313541740782984335487253466134818287234837706262317615583667034005697093198692033091917890878668052417403512035940194977687989777095198667131929353559291550875128644716205595379952491794618122200712496504670794823371199071910711616542392449842288350541601046663324421127478239841582902918499076681519416720298673856357337405632700555224592384677145012418814395584539126635197697129043412820106868547640330298008682416877798394627139729991546965696486377007456140170417335577590306597350566851038167446016692020903374397388457373821144223748596607759327651842812563905057338541508112899965936706025255022394538341216303959691774016995583745624683708552329906840457508957518628242943206921718972260990472685991077474072432937589355586046386499923864267242093091521733182619619047879965609389879022850662476689808063938444966352323244123646982929508862860845821788766365811526260209805701636859952606292590386554955253632972806077159560401247726972790227586028311475820531678273574004705521406452052576080304369906614131782487835455031562502606166901496177489702464654557266690381850225086490316970048643681552243154100000876470971400554906269096039945019814449310862134047400311181360669525774647390275146600753707157916274597684738067553927791975556318797385462870433574833105100790222502111830950898318378765394555001318140610532399076729261678073993905902446610575143246089074851107500291971519980638852882854325760499119528981700897318226803483614955455791533739574611416936531666931498898787355281518918057071370176599529924419209402076421843865244539516060837014647980684934154076538867671028549820464869292248897690907740265001126467397796196666722524319445874290992769145480481408401223434872298646299319387403421378548647068049739113711047797043933413215096497078290925889897366964819568000595929326586887857294884787852661962053924112633514744880747137754777648648472400294744741241766870912384555268472856463394112401826351919816271813879183369199977584728056437982405613760418100190542126739799666950843385255505093922919245205529134928658674366650563688498484309027919394341256655221469298083598990072255626040722665894699624721119592404763339737506809984758839364024114839463715264183189076503270632341356014359662609263574371921290574609865141977332023328467187562991454568357140196536343534720868671634316462134178588654118782032168442825114452522389031001406418603432784363540634013134623232890089395823715425663621855108947347491288666926029554538668394981044647593771535105440194893656487501474925388778745915016590252352759782677110853695521862784998307468461897356600285869258558948071543063999215874284625823314427370785168718647237839217263181370771877439033792033588364282699450266763366002111461233924973392789098990834930675362305205935399621973769127644799340272719380738764568291488885909980713240654550411002241723734739361010258543426137168623419278102811902104303964007449906101311487124644688269276360722288326853637415670322154686481312251108323533218248188843246690089973145097538481271141687230333233855882625142662692299450558468110085465122080786679639131949684896034095653355992965314919216637826627754506781702407070959927839437603696708159788570187586187964228986495415883797401665091122575478401737296773344171106811972576999014145891171928554814214207116233442236617346953298595573693319037415548948921656366569808849654630054096358803719388453201745723806816519115932126945402299564967586548729030666636740415925067257941120210113943272920011013321156572843393669502162209505383814648780860775807793165899000783650528237591189859432482562802071660785581794080159854258564400987419279227423737702292471667973249520897786527708265627200417104734109291437901428190698796599965408379283630725101774744686634084479013978395254818800813619592075942962339238406836763770133609044719063092791344667633487106145407488514293320551073309576430374501909921235991936000775749985668776875443368488348654485891121965398954071521678695513159592649675836463528130965055045031951917260463975846983752986414342681191002980832851787981924254520090013691771710794035165726576042911373751152572379893138674660043563977920152269819935466231846071525506370153968790467403960992006441962497627401799780009384357950605294591561269107051963989175287615996798373016019501793709614340290436648681906140071335741168959827662486291899581859737956756197262511999305592172568254478807489490520048807438814833150556227855069598225098160593440942514114896399907815937941867367139698294891950729464590395764939374834253864332182893183788268643325018733516614346785545016415312486132124948475397205692839684809018444194946024280374713498921700515191546406646488717072964459626421256359929405502220156302748917678156252033675784745428928734843387931165208164812197399146742822663230977628931040275181013732700148497103671424727633533155984159124226019325661969206630362962585463476593878520001003455545568578123934386286445403792388957397096311272529479763538984988523479920024344036085655478503876631484393932396747394375946747298885606106445252386900397377398091763388854764380930697616365911526755861989301293018423441243009929275105737653364417954768664282869477483756874063452007484404431478625208774877701746173111844349825391593789620433917122804041581378402587830267809436688067773483958482748728600974331935875980427919825469600988296734409198300581134808367600318630087750893242213484149105838408358959625400582683391373284195550839208831337110734914065214355719746548351798364177035400207800631361730565605784240333575445458122987091288354954428459336631493548594585501057771388404397113117685788061223232667720593747984690053478727639164790895303100822957728213411057315055729800872427101948347184823905120843918312704768899174944212415026770320838121891592381397456283263198538105408080387810854758744855334683908711716856709467126315558742565960852911327872221193721985519256791891816313094643286119890622404521999760662389862890699047863485253200027513721591147886722830654550455777802687087273065581946337305620814386196648332337638286043909086256733562187391174138681142549046495955209286536544797632312302128880611683217353227711337855885449744886333831415654167847666245504971130779673719497439894535663582119793364030366417952942160452977360754089937918263937996783879047198522767184471035407530118541232919475855960951355066078618120560680092411621767475201483496469160872845335271563331250638709729067260944913705423988735877289001935975650209605587854298906655604585854106275429434248448271816401909952190005835525408714546280200356477449861317647120377283649276115572452499471061504011334578829564620331408092270262539229706221355623788143314628061860920853307621041570426982910871531515970511503802009600266247605826362672076926216787707397753193668290717504048829694974901584465255500981830905387594562727840037795745306848526761736688628683373740177492811584788076336295088272569208561589536991477781909069415366350287006804000468295638750383948350565565840867068080646766351739328560681004634263689251833222128565144668018868489938581699823221021328095741120258344970605818021342111373522297080352952743063148538407941826898925078742906101683352723150670295510229626420135535078604621427356928175247197325207898399616112662867409151676729403383473689504510174961891474506780461318355849457623298135643445043548437112367258299674547096026739153927929704751236873454594152813949099544382060948196083319007161204172936847320200304496178898006935128194501761525072715834255470324683491046279736659181886360220297322379869485486410257541893929896641034446619885929219223952344093475887467308353761705791122425523972993489841718363210596136450307713397653422576915288759408897089035355365178024930589070656532309021247701158533167249308513162351073389920506775210001518900965223104892232742530191971441919259078992743209826691963954569612499521040293669139913163423940908853733433252874825906724629022349100372687581347603767305879117683757179498916268988067340944592427315625063973091522328115097160864577794836304776259026297829364096730584202965961626270939423220153407404515251207025143925251955457327773683641329895512812993567978654896371160327463417924698632652641364385933999492517978073067206598927744262491840792595009593111474182849076608617735514390988717383894766062671477452057486887644247992994055927449206566757950802897011855895157529166278596861520169543194395582591476490381068466278570711838641151559729139808147565424182163735127857093896062803423492863768280584582052569152260728115695437655462251248621095731312530900294881020150675128847134375548131886595143578698184445036115922661032702651308319347763249652324290537349242769235475228082409597818186136264633218012644457641039976638295628937179451747099460330039587101102746981764644247292543961106198539441231572345705542874672802142672493871132717139431044209245389810806194514788085924688356766289044234708041677472361142529960283767108896098560913755715755354916809385131566432035801460554336851975085191020324247081669717988906141216440273768849984482475273985522041913636815936021959082333070467552364569825427844841558087263040746123532244746736005456348886282844967071527969500143881616743011678229140089746655142026895120779665449523222748058097610342251756728293127163572754352281546239000430067561234038351896362539968750499776584828523009562098687026899458385242320670909891605535900257445008994581062005243781960610111343222085305357093948585079224119113435095221045888577496532958931339332944869057389203205287535600821044659454026975191784011238707163648426833281846604860769666948093563553600830377715729730048932273786232392367144688482428702525079604171694769801455756216092187366977391827423869550603555150688263823493516286704007470747095719722697410126037644308975725846757708699322649961596833385713055145425308970871040905011978951905424553072437845154458903787221000371510151482167822267879593446900305339498908348659204409563811799513351498464790588903290187872073079511454228917856567162856896059522318323886628121346874491619389425998952374676868658616600776673421785766240031128413700155797348508952042852719077521734484805241962137759767028578948860489939940852973182853308461940724456166810170820045977201279263813606820839422822241235666823911614570050779377563792490421751366718947728869059666508509564459443875233125298160558139717120376014637777377897994818698977385681209212755986432701953724198859062531792353992630803171173998746669919950195758247595054587094771058868113789471672146699724491575076060874893159534144156422471618841832694775361107095407166806177510564688621785794572047790797790775969535733095285938821447661124922102728359484986012035633405012981023108624813842937124026154887482308206449308842296027695170154032549376580390395023094755398097649511503032889363241621267666839052098713053110530332643392680692799788246825936742663299989784869547740232519001699971120461419469741624274151454301283930343940111710191250764228259163272556285512516445140775331778031099735187604245469697623589865308165484729630530693539203019375475820647514763504787133973229791592410629466075258035150639657536584392678474823529580463193872439643439431326120299202691952901962630326070361921561915290326289689442002491260145189434927550601407042197206456796848959109378373125078296861760987857046722718001217412959183839237796104219626336328631858665695758141478674340852709061315535051440559185488768994727239335232337104950725500627701736903716932753190180719341563285264738329713792915027810812467880723496365159681823038074204897899634467496537483391919615241098194068440779519063009129777092194514699032725909009081291136761458716162700748050999819393262534392856812533813607863542169394186909172340046041111125822636622984750772636542087999422176682078660705861908804540800503292905855817823751017388705931860270936491897250676022737076983772570575850688420837636289377459907681299424373423942688349164478208229984945099963003433901790513014969995820704223690756587134614649251658456796949126496607065079413504623616081488293233623194335329456317690555319591328012087197392875231694398039278025209736532538145067052990716523938324221929188077711539597912041160460217760220903088312859066371116411850190949737782635345117127123618636946965996492431890844594521797412214138305031602343453716653830650638247588608727373683563998066746653238505807433654501030303824860032474710283304402067118086914984588298870647871054113916903013521736230800889542727227397443331681311079670103364670960441112422133930425529208842077086635104975703656705236439418491474259793476627496399738744002283117074830277830969328690856868707257345401648313304410442956464237881413058700620553015509583105919914386532652978804319693043347723943685198208135634125572127619478269944531584112104064377375511804980715465962964852236577855833595690494408808841604259486997146306169884699544270280640720216973159191951339507638320451263333907541380047736985541313453068238509910663382528832692848738076334707047748063959271461902875960125723833071702313780539848872932377868889715324743603959442682218031785074375860859503711980733334796208216493761219828800933866298789993641993217040834872250092135588970118142506101499634696715684684275413258347182068112236285841898311602106664871261059638698557728175693318435341777467616012597007503775646266772550208030831540119268782316150332229122407688030631075783467026176069549018083257009890348308948881210794123553100581751489313705528542110849648628291550087503325143754357403618954536092622699121330451123102622398097553416255067186987054337335865416725935968828872425571895621108937969111368613562714479826770059158596305963545371964002508374267691372645195860984094232561832365776800315223844629141068608319235725267273146843352323489931873605881510102152760717282920672689979515104076209303384223180774537476135983234906524363870106559583857801632400923730322541720068607278855970366297689294135686686395307461881527128506881762215042516216662965773799196947877373154676752473988609813062384078213428963477291085861881039144964878674101871366266584884699011292175962877991398643112262549631833283620509216874714540893315001028931754739214909072794267111027912579378411278142264449967351138648925368257777017479574012327699364059978215480814934975817036026165200775196325118857364412327205296423694932755780780317762837848525059068068165211217155463447940218647568069119166690869723751531337666975889955223245996764098407304558138364038922617062206103435192906216191820138929697640221749603818281233762912895069669002545103860903577204573498980473083272927287573779332292359371895261520423988936975583416647112078344570059788613820099235546257483189752715208266623301800961889058483413345566000860813716531689714597333783507688367733839708715560118423009214989061649610334020205950973580403925136464333828753162431949805374890047915775197712738450136431677936429714960141773862669130725782629179516545152178041798849759606831177842822349693959832270744816794806112941354480487516883901486388431521206244118066476987854983806719866023449104290733478519455034032890203872465088681484580255958662718489982887310781521801711169346357031357350965562259813220454327793375212342565467612379620733580888297958496575347382780092094401268437622123215639695430770276877043075631396100514432445584052814031580034018640216494725270920629008260356072670806476693728026488788834376917659352058628839921500163263619481544862388849237700556652475612309574291386946043951055995181219081317767763322637386190723963085632554997747038718531786335028989052124641588024089204344114376105943329687595608311809782990806218069185194959014553674497807991780348595581264563037146417807887861264768923789382006724089901251486432874688391601537213071271093477661103530997818647512915886443629592845379185043890241301207357353551276886026893805908672995929052691057724192803193553092292127722585733257817797888997632818920724544918513230805682402815446260006815340168495496340085264170435645725623916635131493527402133265138998515335388491760149810241142244426452905033721151568513623996232676007059500821115667723390796802095664716219997849750910707439013823823185371054203646636686037772492295083811544348536490094495715839515405809514265396520503421830343499154627486565415931892695051017023566179960975687522049900971905099891224288534277031547353791221518975323723078582411829755125813260928666788508198207300090873385880445519610632812822303633015997128810186570170037915888457776231079720181755240448916756988835979400210247905189964821805250756345399782390313139432724431021294055867846806727830968576825429423841094163176404833136560950357545864662487158967355334598612076650149800246586795748372873797953260932369198712906222928508440808335894789921510835039279633235785187224090937867692906400810979785520493564252548274274720897964120217675289967134781000876611146282710479859959839162635163050446742597639713463776583242986317124048856528706823371529188576852770394470445487669162687280397423485106048771206581599511684920682912171905794557961258235847758754824516285398212834261790492137228428644672498285087173602367700548492585944686113365536384575369930212612081840799094482770474542467109924304349462803900873013093683424882678053820004454452544294369760937364129959974703613404260448675240603636337372507514493752647034141002409488863806661700141519120275196239194472517444465720926669718212155287371494045989190013277951292977187034005869789564869575486176676493762339281645746965998534301149201323568293722420257347144319108250329718957604641959574400878587490437877159809360432218855922465031882132106868719881489961494172676556158958241480674311373324884258678355202051760543863606466930421510737522271816274625533830074400597776846548099515042203102411717706363236541257231448554797384694719997351471397308964930397267111224464552609991205173082264565836704157528522228265909088469675966889026650391448329382583503510249282423055432228957376793402098337328938141380758379848417526651394135038143104598100952072702858137804123022338276535256448121455615720876091349206718325957817270891133699316736941864902580996200143604614575170335896543373223141345801187322204799938873171020026981389433999651709174398965649242013893190330788527631235425465187249649594163851689258016357672512001609401733379041907104062821742552720305545483487173514090709426388461495504971256220735032916340978330738304910405801392469440361216154309690486832392169077033672560925984019482566764656389829537666431672646636569492542124787537054691859622975440067604197054423478220296473477845436834607965700687129623782320749025103651831557138535257568831719186775962995310687852756274647739765036784757772999155242132207322479384734803717990496654055515647128607382249863900703929728863034993350156656625017482666440059276539197605691297380655217270277475347478583844555633636411341794832199967069651360254548911422983075630148524413719488378904412870019635418176804676167107547663743870739016803333549625590742158473167427216309564648722255332070967394309236075172280480734976181468809933390478905407725284521517570127037128508391544559674473638667211755527040109326781887014823955395276047035466185119183471825978029266113454615502620731734955090849735980660218444210264989966910547737696522628183370343037736737659407527228760375565123747163572931648818587293901288207226277370045883501663834189686992141820461655591382483633789604631747204843243803138320541341602364243260862213889397094493600647517100801804497941017750256925985177384854615617795589487456626189324933127743387745352530607812111301464455562081878139062486616296088268061992296135434731402787321326861304105178759477007756028670200220205356645384763061654166810286502787706313067594149581932037225405070164432197182971932339149762284312840422810575279904267197965851405282593621174710005934927204292299393232315268961965578734141502673319356818320192983334554486999055062947981298073826480284125341038629352464231312830893858446420894435761728198196517267331792393812967196194396483269613832727724362987092542491254420406907806998948755522098417045443028658765495212658882225160506624621955919760134863630393379848005845640460798561716170885367915109319720222719836738620376833556506269535664108465790349780853862492124528387857056234495354903517900405982285232148867930637624765206199048616594277112641986240309971539347067734210110717184738239960781160439634460188342945367221942597133633783809106575620852795456426404314028003743321911553084392757059522784251755434928181757273662596108083273160194870237238799181348156354339837129202350383200681752872547998913725815237680775369854843245296899429609392771884480785227781730951841763410408954069479600803921508568315204768441311975052859908895301213142145075358805448573924430744135023628917201186595132963201035798183684650981748644648045008789072520862834964752234859622555107403608127918047540575886024922275462443979383169100878290980902537545393181469981720658287656207994954872971660896239585326808121795210972360771874983213265542393016910720254776143338143407597759819751001485610278734042023467525381923591082191139787831608475428381283192312963037140287925751507609080927131211406827505929268966403096616810072272013373706993876011363102963672104686027900983922719691468767696082072991270566003914496419948299806518336083949586384042217713664835065730079948688284998445377167496569810483464099415313821235236927729565883174821459174581803740795311476570023625488969373662300765376232812418478795722289787926077966110132486625161286971347848026340368523564879492913957808320279394700506571253764990407300079259947393148376315763140407602607977001612101790663447987986578256491627363697410991932024952551484404638203639238016781180067456526151151248709941237901077698549413872128037415709092237339654815404247648705515351779406744576833942857360645453399645485535374778686351406764189849526422873102153814668661592289567701639421597072772410065898689146321240083861471253294052298488830120526486539919216810072814279635256066737098693440879070712055743253116544922924703266451860009799585372448594875673560211319865713974159542476918277049716374130923214662748780270190515615986334390900932690062341142523028666039561881929329051666534391119748491528464393508971619257860391283077856943432845972786766630342256619004234088409692365138658547797619540337076942242027175692643277707564483837118398141293920355561502769101886894410568348795103014421870526714084739265389169317266908133906497023316367699367720597057844810798970852308069944888591311558269653359464233749142300378880326238636293514214555423962546699453122561108531242456181104318349363087182059619379721037035827052150867657789148791480156023067837440173206098851888661999388112729836916310073698185604508637192796624677104497217218747338646300602082722970581171017592442582014522624442092560818874319939181540638842287493708037473017235538992795282537060958666057748525746136512386946404988201079404501947409301733354841148461176232073880022029886233607726999555815089148790468464576265656293840013630713261829835004466866086083270764444534569953614725751384967365529546308218995263286636869256742742939851862970856305710840048717555327487015234560318458826672953949397434159656499721963356132570549518700841593631712489170099124143042297083062855940012024489169465639053110037432409461722949629046129609067846942206854632302993079853667545198598117762067128063505640815806694526669507910289745358623656738372908298836594013552114270670493478339801739061327480524028774407581944710788268265257918192646875452044701442095505391749044420926866143549422923692477901251837144737896887870791633940751096008819024296154442440931363442751339046429871757961810202996221272334701773368187317852210821585289629837412410136041582022121337427931277261368462809493386030915432501712664555070751570055319516641025369384959191943373814219972616885537482768164392072398419331611222659925463285594590389076657133886788868334135987699796096726769180418182621438870525618106610532013073341805266786815829406918928352805503459041534387424072007728397274803855217744841258370238050590006348386733234579105591473321251272948721517505673364708276657484197011531534091222119950293282708654178802920240128932702722620612561561986134764382258420157399316676072610343955711749934785319894609316948612563853530597799999307546806352234170605900675874986447542106670345760075195600363704956808664037031684218099252318855590609902368969050231100427113964857778902634251560905489276441209944178306105716896957725436163713827867824130023448264677176386205505501682473567685150353674103811337750687598520152151949046583088204463585311137739642966973330114048969782337075399408594849730185052951283042050841825666277216396836652405021799498186522096031357352183114170251088253565019137008262146720166497631755590259485913838935347093338634832471746518115847817489328490550823454201184920985349375750249361884067947563955211219151280437325756941103847156314719728101329233475947274381261267323777115324447195695925436636616881635555082190524537754126043303478072735974017155534810451169453752017435615505611508982263628670965030367960516645563312162241608783376580816740149072352538036429864307740172630163665924985352325992922235624937793875296155953020345420886198451069787289517611043585029610630550086871858539815530024799852020918116519556818226432583683638084523854581450829654038212900839528373168104135763866157511444323941443214559331483461201428914417234680201179784542280154363449969819112388449080869985462900282549599330309145673969619112500743801069489884837465832865923674412076839179564100791208214418385078045448704980737481869298619285274479371736144757564830637669582917287006182707389525503759897933446350429695200237968000334297775044966595201229992634913460451560722834549038757994976557183046228239741058350347154264934221582848056714528968803994569363801755890622735903147920315848035303383535641108485073627529759757705434215332901858759877102686188593283447988049771202375613560861158168902810354323293830606468913301459715264628294241079556830166444253470379344418624475914849951264066217081062268448651374314157928001656127317588102825719087059123652234683634969135926920463905343663201907603161665900927847792053400624718820469382629629392308480782193810180166922755250966834253691042559968435350148520140637374518719703499862124520336303376299597278377645633413947351417656962550236575552612926227801875338091847285444222035083539375291790260700079900667664666461317769067262932640684160746408667895669157377741364228911031164169678874514912407922038293616815159284696596166241638307535465876532327499246206534462735026152543829551309348607464008582286756490371412414106179362147827299533127817711895176598449085077199858975300940519982893508923355473146976315300342031704910566877382593198733074329395789638565698896912683017728692405724783154192082734274658748779655765043411266293442052915604324200413330917162594442336926489786476646695659556586324010173829877291202758985477166104600315676774355936195654530161031232635597086939011937631394342833467195351153368523612258098157067990380384576460192838537100404658629793298968995462870564991586466229492715228823516565218272234015851612931660341544339367240228568580972789431277030249433755805015610213505935975698798007524801623588076262430725964802936758730918056541423433639916895300607158408174552549487982767877681433353542092947591185238084074636691950595420623296405657929774256022032836096686369857125556000687828979900592641597701183513431991594398888959374880564016277753134861832862208119794376634342869230057531657814309179028273825956037958563510701897139727012728017808260377402859759989019529967230406661302900089266649111421526259481351208854620631840580768281407394449772331255927829357590432713645373172797646282871854269833379230060622680456930664255818276096820210825620427244591547866453598155347903864139307274638281153071812664769307574825546662232279906526331849502009265548029556051936795027491685124560783819960783555454653701704721116272263771804871375237573004532039062015928753914824098571223074292297490266134558191399116734457850197004935980291010493004999661746761592794146230727808477848895649098584356019934072993943463694070195374581188485127062876488073577195142655897346580683711909647983189401584921953197995472603250956064253488659165076862770194400871300965319053749077068007515383671054679847432948275377952101259940000327288859129282807092133619373557277898329835263187988404139387783738243314183541328919632669760573560791203214482792836052082091938997300108169720841923324447524025710136646178602161573818629921299247505913484006554856707103040611016371512073514788471271817475907055767453968714913408057402720842959322070463825113605960349800186302624457249531676829203038177211754381933562891398744311588976731119434609833334916200239605982521672897247844273789752152009247915195888749814971787947678732131137764082880923101522821868083680294122557468552065951757913622092531890766325661211322158734616825224559473011582069644633655916081273148764973132329879908515542315059515184459975101429600539357999817180913582192952942462472180839223843716118495489704128663882636072278214483909493344778689986754280033198558677082517916454860367482496964947256581838910996140199128579302232569598835431256807216303474562066501400399922626603201389616721973676593920269186398371668737093845267174531218179490534353032086719855277368568380582262960993365567025468685500748640877049305836443971618018239007548253855689428644448162516716768351080535732485633623376498894658644667934821397927804684367496433016604936260489806445113564734877057014703920536740357809250632690645114914158477075627653761352533304272626761469548164799985311102684051177264355095770581164509252629096247544572724590501364767715829208573738603867576886030918476577105079302478538409702005402449323748214529885369107050545415749429299675486366434065342893089343693947427774319470702436702409840380735886895662913376002811195726292651556997960709688381400187902210675352715925560780586857236959237872754663893563234833087491331707572525911408775095826040659189274962228541174680353607228154991940390365375440237073578341720027896718277416438213032807525177257244414315860327801750397833200096381205335990639678709126086082540291233300909461828242244162415861003676284928709547720752944289733016918751758039262706825801552579547824633283948881737924600633184047989629984283257498534481893709400413142590264653461469807637379410346273476874742672066856144498797583047548984316109100415410829123404904891306325013528411342789071355078588494188995095720849080178369147056539222093541777457634938682339460913322623574251158597807665555987106328785023592128720917194787618281123561353462026096740943933602009346534837325639985412509588567516012543451656910824090193050636474941857716418619038696105136004571259454857305653144104263589155524022328118105428877986356064219475200169392403099663946735328270193780454670884410795204796736069521336146259164354966022547247874594412258443910891446757661934767859318849863309348906748904653647714610872340410063123006673587509910246146529067653964107607834027228200282908884822774146176757151438267729958467341255704468794632083496340135056284840593464516746487750025655902886335937895485707590031755630689060960859706056211639705967280757155109586069902251417714658363205033222816418379337148012600252676687870892898038439005281832320890403928020884066536473998197846304095385180494347909694911338615369198319037417892569876977222260538938827859384688680410647095434534665999125835512788903021505444190839455906680991665366017812306036028275722162503389183129613942196063959029519419124097665991337646680382344902930675995198977249486683513146464284585851453301265553149047495537616030423142407274699411948133481734828278367570218224045537685416072987143782619894169221256840647376989867807172360000447806678033526148674178068551472816842419153497391510036041274109798759569722104964224755168981166491564161839673476485181181730893045960023424123754946716935505955544885637906570899720289089082911600118617139952480185899541647324880930828973793924775382579122224129617817495032520262114450621572437284313064435252823125734589768666823217867570346845577452441476945571785051720753716989067201257671786420687705008888599729910234653178991565831350850787998788014051563078511508551461748661900442267651702433872618861011957816392505099091435449755492166040771227398893566712511208940353637348067056074502205978826872337568730942393821434951691678106608818100154743547910003400830646071924743863547516180894499322476148476332044473450806451598719568177855860265608909845998878477103562453038038259790103037184216973208114282168154027494939797806723645256002980263110251285159611996008415667916003639648287025579867152955467334628948501454719406303689766142018435373649522058242088001909283228635041250173488275971945563729330322380527283085596303398954473399740405674998494723116998475002536265424117475722281403612544468936418350542024309952636017221771285401242508358346663546060910770935830432158636931635543572959823431728228631961487479838761679295528196337141561780209056599715698624539052130086224747008984225184171291301251953766433464971565431281232989334572133866404583018228850490749619502883643194676535840417774964043774323534753763762184433637849954616794120236797082410939283907058936396198145533976778643132426970932755171484412895549046690436253319565900122460176077294693510186562720088872420091641640761141225888375523981998317225264806522376292208535047446988025057310731544008813522403526286070216052778332228892897465399655218517091409464089323047619317631048705475220108955432180914146633531735474474551477676618030366507846234885508968522180155098368457391688581844699343265952764094667569736086287258016753725629917806669564418667002442791814397647342852999496295992205036669400320357034219810484234804523127513541739799593322870221103378344274071982875737465247466505761859030259235319535453916110759851292132809000446429928213384622678708621836514465059343396834803403858970625962255246546122650236205467115517557867449791090482606810630347152862000839645700072980773599324117714911383369596130851983105265116881128282477360130895890849606768810566088382486340993277989192801161028699742707279275169955957926780293176461950437301771330301034517193241935640042209172376689756053535450997232837389258113795490854942253040691145889022883392304224857017473302011371373627209920068513030764159932983484703931255406562430679655928144475926887879592210619963501774921424963284639804920104202192809310955768690509695658161713736732456473589308539439590159733553856887161468715966272431562252946311687905751129810530582571196320239577883234687446127775973967821536098192208878731738283409452940473462038463381863269269029342711745058945546748439264091336375397402802072012724136141397667100274468206023929218643337681562304026379083967336593174731795291818218510870817448367651046329809501466697182528443815406798301231553513879258493873129507786436117974605612480618490114952073136399394848586317838929959991299701171464636557599194437441250931851319203196894921434403737557596193565020410540086230940524848696206264579768966133340772868490283307496350261056590689960860475437886590247862468750571450136438623599594877040124303239981829761375057399193256235643744336223868717936042984248014526678608983961198220544067028617911018998240180925235728026385554104534325873143303591651202097449158771440062662104169735045599823645168145602352739141143644526162873569404904157436203948546239391490679649363405031543821909903134592102491597570459229106369959882879664483169116686974731012957446556903046718061248383448644958325971646959036448653961661205735935069752096849440440838010635567225525930229160325269960954993123248364034408017677430525100491705948287597324652121187373932283333344997366498810666737093220582178756111623173946881522195226883031728370849855019975706985405352414968392386106737964559633785733592912665934747996606853023401518106898163109685481792539106157219309359888481826028473452036042394959291023825095384101949471259969777416921139395761940012016309521303107576784372740808646458286821102427774611232641608922673914805232731221905632013722962196858460630769576900364933827967309791696537229108101511811947967776980694592596117628173403790472629022238888922074868084883789512252491724395916129584120581605486855149413050850166071366164178378868874301206977053987495940092499435959188095376714771054240427494896618977966014267613505138080913484835094438824414186680659503071600856942707889196797951978683166033135301144855397802715985717643710071190643107940243477414692730225756346352958328073359788661934808845026371126897230417010919111427215156598447806513795597365604861698138703033919121420468605926450295259915329076175975373934100192301158112102983671776765840964275681628447399839238405673138588539992498905466556213389530142172047797875786209988575106581062730301736744569629793077654996714843927577539766413512311312006506125476985141398937230577779757592232730735141167067500695222078722914994694716111492213268841121679005527556236871298670746761959179095742286968564381434197723203654432768961714603157199337688789248082846718312820109170744198831779222820928357825471726614538222185402951960921221824823753126085744605676634565001160081381151295442546664050324727847933911059045474587929908407398487415244817994423064909189353522369304528651070215161480173025843428677312590948644349923499282461342457524577024929654150424574142732032216416012826666207395710398990352708048519241120866778647774494310457323571167598900202372491468162161568015908836861284757665351538746410814362708356564578291747393916025873274149485802715372998252624102992545767383282139946201134938395857013884887226090566758488717099210910341127907596275457717889863514732996477456778144929100504870387883276903991011005276048279213778240971739667539107188319210712714622104674803100792745517734127277856179705869007001753227131279126337065994925795523402329711833560524258897343901803013580616003176621854241549127254405815042858513683559823882815815774375924059528460388904888852076518672117592358802143629739468165962657611849773173450152898680628323411496278531651568350069041637406073844011429502338394219769733541068109561427281248622544241267706767363290608471943813467747254333897333649736489883114457104978674105751513151719151554978667392621984151512357019874210921871104217194592577306977658013646404697349480464427368620999132425154573866512120398877514633982572010228773381677110287694541928632668103768019407996276777822238795724984408916584399416927555694242355233807440604984483763494724740202976916497259042267104335351453407289909153455881203510087949981631058920366137613591692471798177470772879110806098844653445565963061873387022063257115786821414718393451300094908700917636242957708416182923209833505393783370942286443856282676537783605137911238869880408518066937414897275895792363380686890593063664640237056346513149423408661178969626574128236152751282745259031061025696093394473150233401538373143727168796973690320293698837408741080141402418071878555773926688032543515231179285807901260031451511508788910009626916145196093839869592615912587456329552050343862708282575360803843077876463782091608134372078920335933605971144227889798860650344524639902116273848970921107757521321200394966632457035022551682527486633789301796189122223117381760727265450144240995823900945995887683482350438412534240653458999845123729449158459289097930184706493887504728577808869678933389879345566778786020648338925507659336058555363254919494412897480627632492433643395231429393704006092567577218212504279143212511078466016058694627304222894206345522030442710657443715817108465184835016203325075761188260925994078337691421148765368023796122151736800556222291413788888969529062527581781112088969985741040841784123478661916229796786267029187282383090133973864391990068860434422924004586606703047268078829766302157478701799704469657305313896158361116650166996716875109111055432194444876916834636209521961588569440727345338549160735772404024630748725819291197915221525883892738078700966497441869139116072169119748846030036262161187815417637608567255125777654754719113850627834128758298112648785859259563810537463628857462888513521614525408996766150169092502211824982082830826746977179238933739314402045051772614296497377344084086405456611026334091832189917854885162971105239250070865049627659739985931096618324419431562859231681663702340841442572392026985705672075127155910602493837289621608781118079299500897452979766615896428700761545928363730416396999273887609569816742128225121288262658035345576084221145953976390860598572387722378948741420593321214006603851514332341850274231848492665965823680275476010285335026195459525816217619990471883584460943425298550531783096603590162045220309400998857160034229140306038422222993056613346834412060986773623376931655939099927404396894360089899353413704395875624230104050592956008137991580525056549102638507113965183962953805392823718613902930691358272332686148895162451261915141828233152209892270611412283106980878154208592993614849031840503770952310147664877933607163589629844632335542708271604230176500922208716930173752330639690868140100269195735781399361410369706668850404964799361746322024021651635246801507653188447537834543994229454848787329186806775922370639243908112536590864181290977163850948860912925261647892062248667942908565577613231344887474609371388915246053201259207277486198063518781246776203890227193511286720396764955210296952290467386127372897481130142931827297526970494098714837721975939074324880895125765689473362511513405348011604308051864069260215713878443514698900421584158623333711946687274919759422426896395809784243710971370740420054432782104981852147470377421491596793104947212238752319005824618083207741174626081657090424746929643948137189543669895272874569566555897654860560966430770774377431137196471103667599813164923034578262271420367659690589172668019483787993116342015811674757709517522635111601436323033260347326107417756913185821442342609528152057677854103384727213173482808580646810465909151495672642331575743613237319356931402229636511829064913176770345774479812270032061590612761737841247404654041109284674206753295468104335663946444877261886498855307857986172513463159393195869916387502905199219344103814657057989856986616690497297552745158171750656029813857481350483420403089064135247536361247475795396286465617704187546473384827489176777948711837452645353845831358558222552447534626176264520327806240654456254330128422868386577724255254014982475171539312080861887369454906211018937401350162690361335018238915355544978159590811826982737564204004938249749465537482211857107384662590955843141132149139778270333960881815143090005402486402261644601655772004760640468797382662729980055895420863870021786254469032782823757600093354317835183345485219524919704950947703796552824928450910798852010878022451940443346058652363617944684799691681504718365984312082325820276009157797498573965228856225411054044585211631025668927332254697335283166029229752910955949650756244032994862206069382041313766026131668734001990144846505409814373125190545548027984148280771604258010621384281059238608791841988800046619758695077636488331904642763287030867825720686052633907975695961795042316302324420676946988397415776423851838499645117588199592705089872582519169721631888463533103477336639552864229086865827960921052356725318016666931193728772572067063747894399622592203914346053919435120121300010468068529390101933341185361770138132473577087591817912192375832336228649415345643203770984954004864491725472554537071988243037010000631828034072532510441713553061374325026038904924554161190743818971097453109329506754661526227947410033738811068348575782304850821746241671639016156233982149309601375780949268967812692098691717865868586174524928253129613279503741666426539916812144461344299451142517550545106786618261749110055905713651302948551075364790165282880717658860367982926035599885278243674603005746965516599794294295265069755985231005888416588301957638630091763415824097332446251828158875422900576623384717788925107600338915694603672223860590475656798316004722872552382792238437815718295197976980849902348338473046351802812149043639591744972908172638281550505620281048726318636200829225551795904339839943330929949015220480312036075626534528699363921001436550524457190967813610184451759687357089196114227329505536470961622483888033651636204844801516735457002139271247419872688971875633505244050503348010895047622977590307518105372208178195167025937175992798819264788232986584053875340893312347838655941562665295785280385854243310764584329233237202850939036787478939312236973108928941858204447004787082152658875149919523450206813886923606496610877381734396121555960262521549374014047248712677855356352031588562600203895022513458603167815128788193111641653279938274232542756473337107483266766868876759600028558440525498003485090636564165169816813358546789501321904952331151958089360377406487241938245048720646121787768908019775696611183275362139344558891682529599784389267034592146053585646229975299959195501649327999408010960476838671530480468299603367846923891255543266801844698984844077038599876572095368601930097492046964579881146555715917204724490591491184463681586427820269275759168418378108920085201016390088590645692751158120471797084293415809515570163065801726781769164301676413587747554591533797961283197903183028205164346472581473564888149909302787780595259753086588018872374196510314646205884755362172406267582125560269283764870091941703794821373207468702392884374609423406804694497738461844885953454475145721370400497512530790610422035861509509405603666980846999321917310552547832552214281340584762668922639678587659406485336235377130968275383395173858449585069035101643655432238746438315609378077432195410206074760108278304618095188245883832218492987784461187635431507096273297186357082451422733713660326525396513152721624206474118987539797438596562134702804756901844350894896037522475127906148537375740312803773007863137686976487368899538600415347774454561188016281234726000464519311919568083684702810637955940737979147194962206535232781635567760988870016831328586978795038938783172352083703226174340283602623202234874298593533548272107783397705582213318309454431468606221172159120232111541237153791184549937082542362208631881488538876728267941027227713473070274660677126250603771989180203484446907480786444115389156322241540573989581029980392538003635923998391282182435118224704006628213446952404660587358682002021701441718625095278556678162346044457873689720543402052298767890663127562292885867813747622786426636019220486487049771614372875207908884871908020269014168558805355538427047525621438266728402505558836777990471929922155329142502030010971832951885811802258145483483437794815333536481410791531117406105745730257133256498027772870252006443180941817583622280225474670936752380212780597990880778885384900719348229218854969614101019728843851322165760070060220386502961156322546649295029726627009615292444138721357665330687160928102472445454602442320817478915793680388686517714561427583138654580241087859296162141396558037578046586464458989436074203289067383893768371690247190643526557138946887927646540794551148842163103426983636087245511123794373199155282328301818706792164922294160308648198084125066228604143883022546143963158804429734026662876018940234410604938453751476948549773641471527766847596140288370753388342772196787447862400727602156226104540882775252580054670885897682312963814569108579866466169280044172808123021343823812486091527219778016560372919570187339615308314808919287339249040341366254078040726358685462735632209456497695658813489618990701632451385300123568098571983330585074581294442439167702265568662457950839433849971010701948638636819516214533523556054949200777993937618300378349388113162487281877462410267124843699262618421486250706869413189183891780126171120130171941417689470261798895437914517901145104480806092860385504103544869813325676643408502837485228996655064210620855343258691919496845805603781603476883277879944660436996830392409734364698551263022183837689050906931592553511886195742258792176255818488960001621808149675748541178764688593396111845503734998544249781870394096687026812463210247248594381590410150832155418838842247291723308471302757963757546665869846427240975776957414054610122736163138350802307860326895862691044276849666157719820257482064927787432882370612732329195637307560934272196429775825711098607259562300164595120097399284242112448051447285844836802134714251667952398365172904428445022478858635942682523589998407524958216364585028232995145114676684676275161799659566653301307850889469413595078644152565908682422831751924909803231482779524267130935677197990597556472118164390920220891814242240241021633964368439223798712036622907588780191546455158475488150031822910166285447482982821541474488093936792579871806237369853733850716249939968278593025334220353773944473454055796151554280374215339687948328847766850886935955717715452480841393994128716745734097119415958887468004850623025883430454607560484746872996419523107331673294193068712283614634079577556474817649830015990388144364319459013618460811658128509059798630199607643815289290765533647457609369762883146158881706661020753615505862613579962234609579742896091112456292473980523623746110745025755756773809947684969718464241397052552237311537988565744317931461559938967380214019184052288505975423307512866577986555641490764186694465120643288119478129457438517110004678176293945497330465993445291433852422940693204072535827741355783308231148745992596864420661630485902522816808589010628255602222192582098264231438226343896488003170093613591166740097697001163445838738575153969974148756212291161493109301619097007505524921994750412509776218469321807690547651503456498327832894353306861313443754568917871743573794510112207713989780950393238642081060514875393234557476711102699715585555536757996513934825278391661482688176441501289146885343138448405662805731845781021494304871413858400183541784288655395421215365306390380833194176985888373513897356282119642596896722669511589561258236935944426378179284689618030000178086805846516842555579080928156407883431825207620428792845935499233984530569852814569177438230541426587647272337326467317511216416300569216568093609198408602361891494390310073277310369548878552234901596722466832770342170394128086902556962602461341796721477500386932344303051937289623918589645852836849567826776543841051279867075185538882239145056045639113719730607774569771713898589340355397125279090623757778635618104965677547565002092625599668360831600938170415083094031368449516365818723857974043160981813729359877455840824427428959891847084823819593160659427936567007029814975298909929841399503487655043612780365495112201379773858684509574839959275990335453550310891799285782577322314236770794942673560969556922640254569245066500532216607872888549717003040704208092125286166899947588765656135640163212441244444761764362648792958884078588916886344194696652244147447097561703035517229239625360614654790579248433936767862160932389697637997587297581699406478482617165239531426133151374403554152678578250338357731433618559368238313990596076031859252083002102235566868473247884044112344590736384948596012480494871518505948359528771347425361524339468806238299238426323134697881695147892081259694264960374322436496105102887030779854019240568961408933138961399124842376046904324115838051422455934780147409682548348368601574210921349072373297984059903110563338490016960923744024864296611024429053627839615445102053507395053093830566711867416561290032298232648730376539770924439840357316477493205673476850027069729526557184978986761003561152729960323133142337550377917309184975002856621079431164184362256700020844464246800939286874228693069531872386089299763151473166018007940508046327757008110685080455028262238017271984078333911532335739316198256410558371692985593336747910940367343304680931807641086287210206333561200537662004663101952391891615020205663270398950073970336548865898575462524481044181889136534888638800641617255587374116694758359721895766822145486809370183409417918797118983751534079774948587303561679615633471305573199001721875652392329316490489855292241972333619751382201010393983806352858421580658717169385670907423112236771538563496259700179331941522427605420431757843840643250535367508989211295084293425253090624918228094181022956394738533005106937466880178699201227150963494788372364268753548250267738388919168305122940525092798330746562273750342482658710784888960000341307461905495531734115981388573704816082751345204963856657073365248732650601343656591762443873126728628862727086678028990363347075053913830908717058863907756661951734864223320465364403547784034769938121444603029286824067950274874060226584724903476722191460229451056387424057485581790420335948259919383438842297214886723595180667183387650852399068472316429111417340276987743579862405071227076467636844558884598751563419313497385470495815911487203392007777837713292618307126100564657114205539607173414112801121197020855946355502815707966882801276879258099425929095820719137967466955819433919887662803468393410230145954174058277762931899092012983108777932010791275830259379468244860721175139663712334569306952920014266138377505869973277444822993703296604093159571233166196983649464831851813705685166599586454917681784186072988331612605286872726366872327015451793901979167894164690605824423974132005170129699546440985046742057061964292527993220016060312680938082058507135873317318847030462411310336253367941214088080011935559446395972878045884533137942366766883409009697210912531514256743903319452208772976801723618471592836901284275047233051337320349368362465396179892223415129668751102791642625393589028581192014310435386337774845864446989172913600852015825521142281380655664323922330907021413978903302610089426732932247683314129884743183639757570254323924080228714629883810930182889065463386349776198818975475693750814812057750108562240329241885424748195155817237548314229397898589424170911965705541019374369859148737746354618996832412349852994523115085852040935252330927171696002549078856447154061853959879131051703211177291798395190799885651582724469521650009116368067823592164246082968625588241784303413069630176256646133278960650984940029714065373890302242956991218939556616764153752103142541745996334057857226976183804034089897114660793471841796027385415208764901972679580148853327554013249237593200209208903562263525044703450809256133511503713949780416592066329341909949334525613489780280584367430158788731071689193307930482888922615805241725084652302011076757245784497727667003859792339412605770713464600444121388846191894094391480961482833538555507679220030932751628687359628219211809003645777228514094936043459624243910234464701270285304515211654556447825928252687654659815904639472778514894402054368037286776977680250576210866356682410780610010809655560932674528050359611773830528872762897582881157371988412113463575893290721711971700361722990171333828398554675422051326834133558475470803178781329853335965989993937441977372483814864189265859539805616717096888399586809440702661566308308494418638182865934612027286813106900903858821450333573949111444018922375432583427240746633863645209819097228770385449205541859098482024087609914776287924783010038368040878927755708804843589513933423640696344930971564763376925745323619382426678408914410451376351626526195928925024481168742896035857052052354154707727965293820818053374841733605205621261066076298613012219559619629964146837494494285590967107943211613762886133615921503081723440364265287233865440148472642486336295568108426321201860259538066646357516894861804246130952126072077835338753147038438311147671936577080114789803426584721645255165310700436036656805861262946780414727386170126197462977335686973238454127616818324838594619676269550974056185544179318700924807467820386307545268714927877227347997298042069890222536517103038703751770327265641954928271149282422128792355072434973307939554949161633028657953416666500184994667980099187351665580103307293193322878711353346176467669868794700464620127309890140763435319047989489015105631841692330354685887891122299531609902749123444458767734935454730822967862363223145786698366152066904613365330524170291975218524859564109120948782797440329681318081790409367167853248586852584528793649783705712255969565301918659378079488064237495834563590528965828054465610591626219553876850288600579947593059280345282579077081060985297426643729391416028444479720300182156483749804443663940183415204046437496310174835174894122614651073151360396100736597740521547933077949860751279415763817086482261436187838890961530117092344781273862538628000252678382341694598995202240013234671944013222806739077620320386135015334333734231376313871791280542406714913088212666726834696842834899451823497170025789795130244467435977583821261524893050031931267589236125445928531693267108988082598126443561648874149628182211786347948959661082231334765282369864534295068298633494626932248945258608113852473632827027591095983162098202498434607666047790229486821860169676234055613369175210064715388591023272892892828247970022056976520116245444739203476778841172180470608188072725734471236588445716358400457363715146534153276962599004517869296718916536253338682532830480666371464579417690582528434870395181188511899255167219865914196242565446175106972044213438665940638093503934420677566502764752705779509838345981303761197123323566406342721637449297177476956590102525475552682190480277974981329164338689213279096442926891914088482473400407684172223656749794672088944047232839104025465305303010434181370328432637153381888440714130193727024970621005836485893968582613353275990582069196961829249945549029414630838808975927694882533939999386914017115764618452528839277885338805995360815503979403966221805783900319371166790302768323506992818644751975713936223188315152656430974906680743855832705674911741674182581583654592946311112178396683753671366159058002533402238867741027425118567467634213793541133584439327872342405712279323583460370949331146649401610938131156887913129442134124159947212959921593289223821544137856207915489835655805698966284769926075539255804230433334066620000948207566111523794639690209237623297192445322585043743139669751404414151270651246246794562970514146407665732670129036314560175555865038969141426739001246208247912681832793141958032472486197379160354479106824120262230743973996600583847495561687323480968387673011671545210779692806357653116414875189154347855961217693673371501477997572788855139591277137722525900555190877852239673995673550607862767956683646569292456170148170138677034722941243048726923155671426225941869207194962639234285991770426031248028869917701605629216803882689477031815103271114046772277786926863735905612962385338428883770716511886364051601586490044646965795132684220869305998056560897369575372512611065239138702088293303677714643968602648618172237064166221538684060999974523348197741614719029329951316808155558619190574780164046349448900316905290112541866971654334811642370902919704878609418451218245783364265541893088917683836775129107420184981296397756225903309586887109565587235766321045221109349239768701669951887006382006468420263117521739479450510068395528383327794439118387463029815799316300927296868256608876351774989837714012605602462869854295938463806386657917254079110121751152473579485499089747487140177573357229416009370532174665738751923490272039207787533706230371946507711413292461784347137155824808905197065629410093023754971773703115833003126795966575538244698173837852020276067733023194357167387940655402478347904605046784266892569033651674770071070641748827528638345526123087083243606423840326727721047272722115177156878053617823929028935099577043589700164451152490858665224365715889251542587000880502052582535371399779225960217354835871875829544005241451465647852536691688176126347727193588135586203938985223409717066883798921734793570835051586825693122582807611249571174248097809257997127254569065179903189067470624207000069932890032600867803540471682660640285425735872659860033680423485117788772964674496930922017570045278946102831935868183066764903070078933827729274126701003386981546806210208411599242242226075399072021906666866938080576427771142729138132047292394454585147118840463807056361911174891513631491977783562968800017782782987609410832162261261271301939043180217225147173465845286818631597803841652283974608077744127915243538837221272706034253950485908115487192169956870059265414038933097272715979793520042754659004305715182744565834899434857950871279887320953837291812428471924574879101383098966210971260480545129989259116578204869916340549893286657950232909441986885772037512763630908279613337469640333858128897367113779887704086295444396461687191022828014746475904191438090997897692679473954942924942280150614207181924694919082429373276329020899608998343621225671396221097624687932737589255785113748347454842052514540266838063919086601735337797911654381445694668575956814772602857970564606573733636600092973948884977625432098530761505453524770417049265143039251816732296965744414179545995641162450383775608131199021285060170895122260568163078726356555305815427891519080483249892236137880608483587561096280550912009696080588443486790858882681028517438460905216928941249758972081160959545252206556405513760987918696515776766333708120637817483625762271038030100517977806352847398757582513471713358213602531140987187415173575915414738091994277047624161416116001201994896695063761511365728561953753966124027647016126654272500423641903864300084304172651986257353534830408730682944833340959699512490836088048623750049551889416641851879711849263702381299695467084517418292890412276625022670846143131293458262793258123954345388334576870695914931308711224629379030234545391982499433903116734968644569927987019014666383803188446867545665759268575886396965753699562142982084901100823469188580217217644435166848807963274555715016321345020166318088166275602631183223896079526981229260067345752378889295569118794743535134802082335064256983840989222949602444097354520070299660950523298652442779203908569767693714843148706590825538926288925137774969158414745588130409573011492834671807125944544887104835477360568521038407406874634560092427652476609751320464083003904052987167745103854087805459876891230248967763599815573289485825869301751375108257042476305717491135334748064960841502434066097544015451839480385310905287483071598541588575179933936588448393073730390345657502843470044872664011311773757536250267803723543943191855302545931958566999586297547062737484584872972575948476946608797229993727950550696165576471684081159088281782752162395504241836371348508797702344473025369649065068604491314634707922949008962867251319616830361137089123176374643451324177853414376231811136916658587974199440257061207105907567997357115792399547176124083782102788375348726591236754666552418231977548311216902507736394578381346786897140594968063790890089958232116137945323655339669521858338053705272135482773740409896488495627391015136478601264813091789447068269871101628548867973019667484204876698534382787166303883628074869271680416084917200462967100953318679974158542967674926470454612544603739073519807331213398255764979630064790417636621097617221074073267713173671635198828692436084886664780159269252067238212531425793090908336529197887390232909529714684236776409765167838704806625178508260513364177499370010716841651374032659330669827260159942853002714705115820806597534210947579866125051722316423345479265691938196892946538990530064436394280067364888277556830860027983822116519606299953988271544408761689962069558184583586183045790470216021243012613698877779491701695488942224764944810339376059669754757260046117662320109792653027024728073971833075541247172203501895599538103144260655325004856069871642596609946531031064504755499384351186547296440660905206022952293675923623542747227173531174897078716416009358267771327372283858980345673899474539030210291125278937320816989803437414392283780347529391998319370400562656944288506220391052563625695178686753541276940999170555850911490888515504720822802008795710082377901199782535119458593115672246652150421250371229218148972995922861868627360506448419600638600863028718326935527812319211279597331803284305658518296899352766368550708388234441229345236463212358347641667209218089945551186132462602433768578323254585298589274197461047342589656962299975526589578350005451196701232883001440067806795512903395647661553211027572071944371982662699154130252559296906211241900104617495883698497033090296553601494369377437883537674412604213343749138902210212636647242544357677920057707091110747226906518612060748052643155644896965890497874246412474513494124844291531136838996378730578552643146218297209529345654390519809471973038188582700832586888625149786164601074036549198772103254629035298926815445217224030292252314092926496313612892703117590857876187926536058350975606318886562441171506927364179923452934054502343284569209609090643541175012709765896621495126443879156110428628589603616000150865546354594657113445337940390601563888442596663962669199395205624347075691233943851999884731145987369875330757306299563062464340312415289019761028658791027854047110703819123563716268634977822614173075423237100552509998153154098345279413953414683318845578585928993967184089415767370487612787183400964609085339332139481771054147894088739803729925790593570250350744079283264710934393204607955815206952148213001634155338908815500972603054050444857077427287134232746261127195253622486071425668638784254163934313720240927398626763888898351472523034596000154551460635198742217517974468183324181421143718345526813365931831565957685357956198749414899463671017321946305999849504948587540846321144788515528999337752247585113563000620753750583128257919699374115154170738290558107445739184434331084883841722304216738863783044026349970516716705655047611885169640285338183633771802408580127336800997437456298454852916676275127127476468292122106121967600096906733433609400431789491829764806126235119715960256850604540545726566040151991484164460708996640629565552241520658693738169638903110153833082648873086733019496578014580375934592933169818999464883520229543864219913510573812803280282938997450019599567937692625363309392425252587042461880735694803298312985742928903779881155680153419996236700058802910753139580536698353284450979062626258991100209658361986628840109622644427195010561347057913630300630189431578205237120955607258417747443682091546052313991225181219505765117031287717980953374392051073704535460508691344704407686621082291000222591305310151713940842456025015171398924699828008410096354086870382842361837338271487629043570124273599226682133806378057286508938389416994698572996786091151854764095358317158523420658020408469713003791892395984278744995680053329508843247217924472614852331710715835946488631353374604457911454561029043614702247238244885205276044760014480604724282937033174235387364523419292061974401191274233938452477055474015463956318338043375896592415980431886051209912729998849567595445442578427533406523998348972193805016995469199576765858033476405877947883392293958955095453127456587716551808871237697250607928137399906233125942089406155984672294353891904368818804368736594781225856845048537332473499849354456217615761833265233369309264706886397800084132080279387217835123047140930090408332378362004342340806838028203976118594548613935023618753803281201743029357792842655569754541359992791845612959410935054227182372573518906779562877272157231943209619256263732500332417497791500813246556191525760418942575267029023096971292973827815454620606600536380853302659864924608006891580781737683444743029017887466461775022712759501548001944835881108227902216527679968324626885993915872326848342070838113084967735071822109475982862563376163472339424530090221659898957947979308990203141597680616426138008875265898284802351513083167236293536337992371505260477658788741988568384084524144277952848197854472604982243518498107136051357268976431492160885688350210234669472877028182166461275176279017921466113989956009952715630807458909782660105691126532530495354189348615344780104227830690675066841023753602744571045562253889482272404251967439697976533645777145293529480526205294525028520862629213747486677807658121573228740906029509535059846520651936587971446054530615314647106572903150026422286860494052679783342994748745832665979855546495437620079663558316519978627694329131125578012845325879261017416332259646821041579173576824522202697368627418131097430487917829930530818382872302552163990276421392233856714858176926655627914770198014688935724303259657584236150645660561697066089710650440736337223404351918548918074958326537926498060076748800415144316056817276018441842824739915318347376750863894452953424602731549900482768620752497712022247864817138423124440702347906123386267089070537481659756950986825985258837095144924086650593148748407017974903173001839437063834860389829261551879409996222562064571173161810522951874896766737901685808540955558436856857534254975188048701202644269785310464808726951138474672554577167291619393637143277272519164276299235832188553353788980887337007913840066719935566833187842530865330947052352585670789276062147063184023910088792873956835532202979701599509080523231218492385074226664695317210240387304724763726659714781568001143986058853359944796963748100864581888970485690333740687317620805746604843027602531054097981691470303492619334697828211045615451363360479460120082547164088656900865580704808874239073480434753929606555272194443000376185856473073673554008997780168944018617478565836924342367611796235292010106522254119084835159182427962901107335789633032068118450083441725024382145383772809626850925602937735097221309606238596657814291460706048654776547909072216591707812117485334534285687550198329070732251537430665427405550884576719650031585880094446780393059331766930738603256997882399264147490267384294382567407696307870848240466269872037731516277673944330020461278106942867120692868178951171851122568981590485768168261460668483907575250704390821292361307812260515986665748723839064765787270165648634320978523462952421057350085669189727284949494074946298087723775340533439565031166816413302392074209419372396267348972301758618702175431230506217688867857142716298624017079497114503735438456887202599309973997375268897207835800242136118975714495996080438481856674539678271016636278002177707441932963935673631146263055581521886787358142321785448770382514647875692938974112066511644981758739767246576139888075043465234613393787891699734433719109775894577832229033511851495675071116687812822244918628713706951963488786433613139816703726072073597271331841116010581083570804087299207199821440631485848421395576973385893541490447469551554641961702850810033296253212206311821149907672069837512196504772428459683756918864033492393400594020124021609372762075955136296926903834462391479139768262420210555308455704693906010506291020218626364822283592479617102923620967362884491878461995279786332185965259559255854457740936317796487330168714960907742941769296610193237313938320896238738825547014208388635388720397483426654000382812660345522328812438373371093329574754098867181489663879918754033335331806146071600313395171160650578743850612312557391474946380738616253645710950182900611202723460233733002733942179631343745536136984415919819582238462108535358235901357844484457823165395623896034752324201474951360815065925931818159266876031513911636995752274743064968951764481385221939612397354992578647487278705813310379272838666311336637042489682051632663970377186702317734972678084297996343817797655924795122724075317081724602025084910885411944604131033964090340198250270887640041725388988130369347508935408880693844074767489728822899422979276912299324884086795702461848643204147784300224142934552754959318966619829301382821627523486930711472639445926125512325991067230641744605553189864853969729483900025674476700158472860336057447078957153651989419289653820751520999345129046960710690484727511002668490736113519072222864448779259747985060198791186445412382319199549951386914843160821308686453106478170487108420054267418370827990978162373189325737356736668711034786691975056654547532532283387658938942107169484495427468072070154301628389439471892616808372293448623713291909967338102721299570736432673480975824485839657377228297796253663266271194153755702268105291180757787437309865130660579044068786184424559584721361352831074822142473756785767498614350847530229372422174390251624599198756277404323722590576536820700980746274325409742130778734027310689342506507620825709509990101146268557321819250715106708007826678478798409243146497958779148718402545840109388136714540676878648793213033501529325993234220495540819178125537061397392703772906768870167537425582265370891638461551006873240121549931505164042039898170707460280023005534403671187005209627370369184942198292955460340262182266280589471785647588049857179772143203487698760195000534147029183774866044337518543164013956710113811717525370399699386750988051251174548563462536555675571676152031271633884481880311777461416664769670323965880972769774916029820292629487931885649679539729244906948130995061013205414531635349281989110476713070448225154938554560689294896348874988143356996266785298301551881480385660960637438864338710627688760699423169446157495705542951687223043839433071512019880078645452864967548942842827870819327466444279830131368840540155310856879845557614415178161956592861149975326548886249476826546437700007933979346081458188125654261673268303246059692413964247756187523551815273131722959684531134596575717561750659754743999367188271909669829929599604394956519426660739344254719929381763767433034774536226789901485360954058331944640972720719564395210970265557123175553584309078046917545228676117091937091225292044860148168977279856338918969817713955844735383636247916385360274900988197605856708268868475168452603506953271449016256278489878591756257704135439443833791483698330806342135783603907756010075631108251927006520935703513279982903609625783535761160136204956693474920794070361125328397305663432944504572579772061930489741460060345132250148716687892228798121636418011514523064292670355229384786816861532683266956300038827002510866157397518871336052860528668141252305348306125737563474749078829161852805193436930063403556486032901240313507192379152698441958528870900505709159733016450716452817133944050000951164628184827696604072661343017088175573159339398178417796043315706792237552375722739033335311801838716835688205951939621909708678506491028879077732644042615699518228928703799973017676956189368296892027616631835895726408720106393293580856810987424203254259181286240234169855787126721959549752965432964556517186507739957993185794544508760824241221105928357412009357355869635108533628624822010883987180662813283767987740445375337064901320022093135849491562371957842888262171561636488556807482865914759095866142892362287060988128983822195767175603772434237197408548497896098511634197220993099048482063601576153420302915485894142105338088561454072085844233939457596495975507119737545547101868751560941426527138229861504776523497220188507248550333403225262781100089864643709457952148893055864967090386614524984445099590985034849337536603584480654396711650975289752145178734046326836434508657645226389089554769103038462281693925949437508606279437684169704925950812613409231303721157961955137263868927358017327571426691566468592298243886961339963735131592810066425702057871351307561884786745935604151947275076212858933501622125021582977017366562933440916282848538365951564716201573585452666225384977524714274388638058132780875643243072704525378098480705009379274999202629468526730179549424492873484704077879637893065978909460475487878647636610277597291702153393324365456296774625107384948373570024768365106961949091195214443899952108723307243232246644067174335961684397020968660447463885057002292448368473070407264604074414342112283396453188631297351337385631653932228776215180943250631790923201838816019396208938358726625031299816940598690261659306273753887348224916617649483789943753188913232074577011688254332237626808913043080001291768875991040175776791536542425575358808149856768888373126394518381064582344864734347094629168596071935249830183375090954991729650338105049647725330366366734035881091819926977316854856281489803882271915300371006471131844656873619719591401095210260783564209044221484156364466688991369525719817177250181525401955987709931017734997783215111570134490315824642556414007562958497802893487489691884318997562417252468690366226225327167585581719096770529663817356148134070220272849575226936674972324459671400083493128040562009616620055860863508572583399710271958172172646790342137345933438946716381014477532404354052592940269821617200148868084659895724000283875700509950582487345672305497749733391374739628486237890933771341806177214445103533851719322016980588714271610263455612857014398805144904925304679288116196314566899653663348354033447647477884927205879727233264241861972449575218717255451924600263136504376890064320311634738543828999531850459274134709344298501944039048435036964882616155348882874859933535809306993329695143308312868795364683542788435179321833479436707438213978554704457247225009373840323078109924626388695147969271335291277366620929334437210281524172486376613010383504686854314407655347690196251337831446227891547015874846323767748018993743475013371036826967327094168870262392463953715743729099667225267082415145524091366932902315951018005467554895969991046523304999419983505275121425831095129737068924672068604106162223688904339795252089793078486028275512999069196875383532278406332290294574746237717167074167778046806374861258394609949344988570581998521724608621349093372113627740169913782201946869032132597325708519260080075796961266275416582501945463948310393379980013515667379180552597663606821518794019090278423256427735711380028356316727318962365447918763824159500981122934484958831381413329982688534483720879557360162513380125201881176056243508846646648445323068547144887830308494775094771473952460304882098966128577194423862724492236878416332173047714700215018422002905497619439704320436395807117676577761327179148864271678608058788945698267173080870125721445181175714810668423330548390117369212055005261412994539323671678733791658776687885553487690504974131617153880109904809550783634456307767666369187304383126948273218535521650577722690794724678584036687034659482028550062066692659305800740935433033361672814722743434110412714495320217969779095075389379050935710353877502308912690059064024064134565473110668547171578635693225129155669873427655231789038963695380367494162746695310722085071228709450327583480593887326919960364150209333948553141659641970099770690578390501483533634114789130047226447003345532736388869556349604722721624252772941604792962639526397650114647861035728463907169925928279602362700569795952757523287241578093804040062708365742384216402992836899230361150583109021695900122495208572532960685116199427407695242027507579620840167795728061861651901649789534005877904012655487820809749009871317072989402879691630149161930321275361153581934272870656422769393211141137706338083131582735431406629556869051894210197376550405492930485689031533323164077546286647480137890348756598818982025485243863989572790431376946911001065007548117996898409264184431543674500994420811400591744147144346956026561478948294967897687653995166138203127203540741662613558938659559508844557935527818008669164705354085530232513466238533990743493543497228183536565765692534239847739132653081323276736714158478509878338732000236100846154879766409036949492183052568145772032578199950868496734321875178079250261412392864624267812091868673728719284643024317156228842568143779174960060878964712387074102417091469435711993773216877083703168501012644842283383163430632439445187619017446986927029220547109799075115282824256177435392477285573737231258001120754362716365821949987981028424406961322786181428465091363209809715214211739850180813894171604836653951733833211617913013626676588179163293802038083246126723392860032287121699613737772869700537003973597282225498752200988659741070405914461839110300149359716238622450060234165152297484619877610111938449681149532849876657557005897184424281471877600532665829013903831296421360029915124596433827080713032666117361539557770425004888669140994192178244548366264640788595857677414030769696488553480908359755620016124396762129755574769088592610314134819783190501833137190199811665539632282049392454404110562294403338979814530336058974546204524370400288687824716762724072099032192469597090443715739662818620005675465394214753242256218073105096965927434821369400002851323367691144432146994442012058153488523380839098667055181355230796033913865700137704402169022455184478160778210119366666919118926661465765575918268841674801078715897104345641429723900147603981679350876315248625845851594937839345867605163612057684178426608617011979777081251339699908553660794523062945210257972437529926242593883720121783053069178369971800420707994170402835337892291314533025940735027012672731195976191813591895128301669842082922483583648451734837729274425422573858388978952391342449097818204144708569257433582045969447452087246484421311546564009909956255643343782396049172210177019094310271710283439770840940536888900118077137209955364969119432827497100657766132449878591278365587588817328159484858592728787303681440587107314636972626621048047095584937107581411317539370288727488917016713611871103441785686698055684565617600220611531950483766192023491291796077664083296615285955862486948931539185468491026352187634751155535787579032102556429990218750015787096694416647493498428708254877378135328077850937097852999772355174923776600100488531253740753181174975246545293662718101425486439824826647602650683261980432248246666509788591352045396763991590555143379577365885636618472921586823610612796878009082903686763386761037286804665898275821832657369905560635474135513706126972359090236610102105088321979585867476929635402199823071831405618849988763393466183887246955880713964387503974341361158405178547988515949534584151741125630790060083064292444114558608808506047869106429900225948741487336704287632637085676125722536982483157689416909356409605328364460430304802046662430352402229965579927049392439411056187626251343172063165093009404908321760309921150261273116510712576164786264781122505046939336732519565785655339623503479204640953218228818939813682016338686311734920946936840144847399407273501409728469877724964648808629186999569706130141329541434102583570391999432684240176421569301126519733258572686586670530825458185845966721134747268953733196284147891730882808561052200690932977135302612102222472787782090291732548616094239026806319657255909570018076422120776414614017399691198084141827868556473597829733840961616831587420536745084377896292444778787932631096654597728352079311858621644532400978687912944550545848972317451729791646495344519271173581942190086930345155372569075347521423020383274278164845809481147842570118562783446868980114622007708192462547685026516929220731289655423159815198993037850366509858225703058562037930144544168341621548251167588804692497480264921184304798879931607517281589133632310711504003510576359721373639612600727832982037240602543585905708818100637682431998738659731116060983162626414426032626770904328952123952108289922778544683442208137288103093120022949994347532815684570940322608653644338219683291876990570877674784320136516328467641705390687073791902925080515510219273568025163132543911041834995585502792389368886122338406607634330794726237839241379034535989483751045806565984582146357918112741333202560023005782132691565212918333279813180352914840639629451591190654276996056883785978981258983409555694526130144243998856404568430432324258362577898918110880975064794832167989357086416311536257189431707090238367881801076408277039648693457216812524918754418637754578675781642449858684730439623927296033711736924861945040276434028376692375171568227560575682740214893203129569382810783167655423486168357170594929441872036578508894036330836526005280926391703943403640466812848280934270898028711077883557108914994768656361594816522367979907927755916278971184928025120147948804026630621203793872339469925895965476414964224282452726770490740717158959259621007914917548578738279935451515236030691343597724206172446348207269776952282334508664030444028833720435497493011151685643813982055265495281821719501094242119107505153968420672189382813937561540091928361062444605855380838827749518748497877608712478363393350300039809096711572191117684927511217525792990015406998733577549300634725541705934050816456632366108940970392976571900032946268783663766744796061347530393495039947234695658463919606543209422798662184088164016357172924540356239865733537706844181033702780893788633860286350844277510264512051595735681873383056017023417891494049904138521772907978805348589520303319276686008075880642518416794722104351971737526908647895637857687041444062350879319169789435508761776322065378665427610534968030516608295807743551385078761014553155914955830437374979423322462283331149362070961130965191160435569218661680921647042050586046275397374819286827771984117479889500506234941333351829371859777664339580788838012965684883730694533930541443591123572487158251868681531673181125010808565818950849030773074645167428754105845473305526550423311267994610734672363722321244932455884869735645531921564108155635568665116737274412661078643923759473977564714087985772762977880765096356765994671299670804668607022636950533996787611690036388733501671619282153856952397362353167234024682184354629988939175178416787747313909159627585417043510748432109781549325613292123890770229503895829928444067019839374259356695066101595037722183127018104425239322339386357383778938684195687815757155127824223547184407944170760125642040176119231024327022476702311265369657762275663172848504763010115206780289850408766750183188121408202584631610895677433430892235686984578267523525297443326059135218886146311458623480342238806692514663332275069797577660828161933480576082155328923226290580951490296035463131073234849913895074187511060048925529664685096512453935398472528022759499958561529980244141624458727125676007939482391026176616322814521524146916607920021323344423742194353408848430293094680371074710417496801703382417989456751637587192440978073827858797227069842171683305796637487147961456719252975106394798086866615075999483001699308860303530455035358761277403945382155066439052809206820108108925162748422764331462264639851179215510038218992682193997989702473322163209651526151031875091274003426240151253378176160220847501589643988229821615927270520001494883922541298112144585251069155538808680299681924778402033374908466136715576329382864922347036024104059498279972556187304977514645925862220276100051609786648448580586256785097024685913124591890471841423322834766773918179845903675472252061953970590441937571651282717398816648571437043693230095604985463728381460005015198921105209955337230473300631536823719329215575221664171381155446599071700968589680088315743609682400092729061895407896925124151209913408341229279401032886722337652570002028891907574506064065028253468271947652196059799659589860578497959063793211621164445739916805036153987972170556427793601285863318147318982359204885640118751994557794433446065346459211647470512366346798859420711253597153459461627940187140264832385529607566821621613652859900202781146228517543980549345470716122541284887127209764203393467886437912828009272947834899833776245443889802673257439897016538543615553813757996748988589655009988496153459678338754109949884874750099320458505093492194609896834537250612199798363523096121510979139454755272729053188148680844066319370107100317869877695780498907153728274720077493906894050668173139382513233918902925687090634649140483571073337988523307855056688739168843964373915733493826254618261077627120440646418452992413806656487460734629386694818834868993851238192921331568464503568268466464258516335717525579732994645847672738832958045703236403137722821233424217265679862782183473792103486737520806254303154896179294072979560028048128095429580733016000765250447509690450999236124361760732835179312772797551653055275750113575036264969262587152507154529771965987707305299119929434156412708817533783885466750671330665634058254951105509688545368974375185033762491521837580592437689961661172949661697541071600290717284843589303421539090668150981783015639872122486827504543759948300633076123925547422668351794883784614381359290497910861569110763581020111987622770382579020980900249207386414347883023495848602745644940227883375761950566235713112240559337332170548391020321393576151301353122271765824606271992030207533979471477709903431639981633312717874846746256591038255426359348668062640721032342964208557595940384055667187163909153215841929485553046683918183109175083996850266628467085925660338454355062339726251490451987439542059936927843780939556523242820579637060286674234085707991350643739956081590387208478840597461044055312433967687286709823818798325771077905428323039845411521918973949271695945114783942892496676655297392740480299230025089268286956063484996052487409651562551206890984844066510435484836498588142274333136472245798253691497971723633375955857366912456530068117772590233989137215269892030480027096232853962471591301373970416090497246053192275491546844347094031285652064756256179301027173656184235904759975993831135215073131563658613389345778115794235900282271434385605728693677601533937437841816630515135239201172853408799421924158772397740695367290244566358767559341580366376074600248951812740666450565125275666639674648607506255175633933850282114258740315996421957690631398349954916491309936246714379310901717121795165040260395253862950195364128400745426176823981403936888292613434722300284203206380984835691623538760702194651824813404676334602091087149406579823186805878536442030469117941248069801621238521446148417147599602305302274202963965018378779800382315559094310445143369099214274244831741860901653487916895846375071170947761085986554544470156074360039112877647735274506551639694983903266702821099678718411795280713300585850952788403482968477281234859991550180365801459848715188351512330581035187657428928630286117899483952581100019063520195687741660650561649073114320615177003632180006708894564722597472626184345911648418426899573541462970716170375225355411317367118909344696341262823086264666281277827134598457638715198508884373074642165020426271227396826700993165632135488086079009192947781034450449072924921611810640128286148323548304292997987796155071926719098283585206875884601777319818871442286106632650682662390357728545961264914464251098027032222769979947249384035394688677002104148668013954999261917169319474248777854508655161026659226673587862089974373490037030968091210925149723076147319898656049405388824946236532308558874464933740334798159136124050525370653809070040530584022003364230273806420719882203518994394930486411987495735882394187950443462465975045793229250579580346154622189199026070645767582275386512472945862818537075631900854178247076258236255219133760917781324993231017606490821404375897837223775655877010019704834914973367374271376897039890065277757370463411109917687316928872315092832432677669389373878585434295996070248668174735936202589314374668633066112912361475218043895777931744793053518188923416013539963769282737807661555904421735674292291878835151105481938297381459956953862776677594219967980373904825591894643389447452481454419400843103287649689946760628782881806222661455796648438422185431975401508734410672939569936636419933212972920090739085158817633659905221154974483719904771602941463221267163494810018453145221194303999797940063951377033151161794352920129957962923404984451682145773630479549246915984302598844422700154672531512695714921698934925013899230076390508020351721765985351464165285820913620620635437323054958697539484486737833498307768345673946993059119551624480245780168932431561995091952918536446380995109718983564461211987653601007047281852291129354940241702934825504694770718970435919453285910332523263477539563527452442624555218259134075995716677349370674346966204834785788841476996966685019919830613867386666961511702592815332736555849291603573171528837628730967701503260914595474406707712880004889090224410082510399329019880693569592575827355015163726989193853517521609566985576696255328198166541491216464698465917035221261898195755192410800310753401833640674368969661907456029473731342588672627372731672028222917028962245343828285781242119664942752495851200283412309803083273423027451327483474190120815750967614294367326625597426089475707842843801924169900947793415116051782182093651583498488122732155710104697903453058000928262118890669309432730461665525214589152792565321633027696854468926784716722525923478175199315541404871074364863188540116019180571330055724361582239945908009204298192608352240534341481711216599193964489387569432975578256511394636289089199663591840292295967183041596954808510228507099297750157317518019063539009243441961173193065259211026636553310367572810380598104363389430031168645889525476486092343968110616135186046439581176981421868570953309130398545297112072687634357826587779053995805084027201449983772169181472799085717344424092454593516235058405958561358623525416694250205450795135084749022097774853235372401883626432695800027711040288598862431542864606291671881157198700633864648138520127721126082291613655164205314139942884248707520738406180434197920822398581280554312629950655378854597479966571825476819063378767706825115206852536867944973852302579566450679105480146714902349498647228134178886786708039221675402794653269091720835655582136092886140465292398005371702911678836118414190992657640390430199090502463712443432715093003022749833257857485898600051409892543801246305081130905529947730916406401758507105950510318826586726946067942806257369503101347540520918840600106195303451496870011360896930107445003791074049996920483590229082956567832177222724344559752283320709526698498594209280031039321267182035345412796436924905215434651450623650519278250892880681601142349466153901818236121755553959842470735295177539922232137710465490564364518998750782871771003429539522152484918656450408509759673460824261493135898655053054866186205096711803846612055365975738717666619737193344478190383183255654315405702939719256494244483455911817047499229039029575730407944455404746630054319076660659840178850759150149923946493130809541368753236959456528018920876133463965039371798498572078160081080204399084210883323591319204565781221091741552250039775363582601557617067719387520122394580851480782011920637461534097715671302888367374479317478322976286980525258510401489379873755623368236235864093852681995691056850797101032969569562977623676293514915905007960285479644527398190391188194048224148773911092410260009389281194411248776457106825948883710717819313995757277068324815921934065114326804772164632099834816844523589400761032999149878890483126652788672324954919355445069835614644573286516341234582943960131972990644643068335603385521635414767912267751660590330315953249247433495865450036901918039117711373694808797453711241129942996475310303175968038770070122521170882263327681204363161808569352307686095023272890333230302152090735693436567949364735387709508105993102724696097453577252127325373290260380520865623339112332701443719604833249453070443302594919106339445447214598413829993600813327368225990109654924321863823758526776268902846735902638767910676133996874236607460271229348018127084090896748430608598367610958939667258836284048693195370888878869479903209215239748562506717114147831253157844487356981545955199931521972780030342531281451588725198965289245606727304024789549988264577952693778159722848089160174285561196306084213224716663284389674128579001626800107598353512228942527714563169614625940524311746023822650939808921093795421279534342193256240311107644864674204532421241586056713638870255744838051401104945790506313185340499271673424017506651000231054751114772453194367679939149764409323160443490637797657338184189113444215742062492383503652068988950833843337190064920067279275255734144119253656844400063703137430853737451399356818878741571779792236159155685060021259107975088271844081170787243454967588951150311446104809525249137401995824118952376487001984483972419370150454036640109674192169238988453926635176320555199507905351499090692118526762221301609249948022468357127371512611888045735247919768677813350293091839743154299183495050832439455647057990944118305133990144028728648577340251474223340962349954108723450908386443947875519162772552023044503094614692257214978838125227637616891470186928306896085480186784715579310563122843858733858492302969639045521612613969753618662306477565703706821838424058212571240520861161736225444001615876238575776717528213848449477351658139296110186198362888237940386872583396689427002668889096054438349320426437484620762425614604527202088770035179235861121624811884468691062737197330029685527221986473277622858874136760415693077222318628377600770262167992848809254722521877651966496031082326285685709457034167415505886185694131089502264859164080091209453309640312204351673372986130348927213259165347160540132085638567631792732242183654972460182072377642578328108029557180233237388524254444480041121031149112217823188811610496487156257006108914814308296825914756167364107343659751483278935753205599889891750787539565886099752517283868611950370402046202154837359284134879160745217262111196705783730011481182752137385516296574898563289826800398295210469086518507233593715952394841087173820267348248327709690967390030737017119033279849919865783875361747828379498815663014544681645398191955489633932471263326039259904040245708463059960122349834797698226315397342563124433978828459996103355273933461291906849579957063187086950021566360755170695908173244309683426272013783989800091602483785608456610329271864736029342162370552827443203242955804825461497888705835876098953201382041460302076314789720532029724807752107122364837070323533544086121489085568338125820920850339821201151694482337887329663138861627043647774726178596629374321754859882028473543516948140442656465337276805403805814188135646529796998666070275290226711073562252804381647201061047002363902837657581823598003591231488071512744990523839805268952135001053996181107661552610903388831287799439470419841087215691512805579825372720240510424862966075554044176354496010592053502913005101593574020738081402102448591434608623541151922215743346457456422052994062147326639515182565813998878843148014120342547116120157747058138205218830162025484967139738153063713285723541053343638327806892243979516850360682069813090081484643497536370525803728428274827993602393075269374134899646931427299015284113297516167106435573860067533332596732558552061110196856540768558606045223363007910153410351949302660371827614453416807378246378659987999227227217263762949499745932779034224511600174523019704578020986408110432583040421355159124004928231675730268475564677738069216527740590844344925616719982008195458894064485102334538468441224198860413103489368889934561991045345115746883323552964625564222577242254253932006410394638384287764151188843614324534426050013326065407710759904394693270007915763076583022872924680102727485018620633173844206695685697086659126397573682050828482502591408810667659110420014676018838365222526261837014476973671073305749216582319178319808109110163403086138663857001810757675453005244146267882964240763606483390456537690486458131167913730533140928392954115520747551550479753699722933031605073024780705209181481470221814145270646575598473896898479928392413340916277842857087737348825811437611921459105122783317198414130404222816197547761353937373825225732693996950743432301572550315205776901202471317774343325291367945137801638500488902520422867505976710753666037382061245935787690753043939082827347353697333022750423622305853687897566579206771921386534507474061408501737111506681980801512387723339754759523604026025216260501811236271255691458136008887484842354427196617689917977656903650208946238690020143291236367366330583933838134172435570044746526418265840026762747492711888095409584846418035416912469186641433775094555956026451912072452662580313476754408567662025188162389053096048728897629849715146677678715487613218922362883118727255801297055172045598286090686983020512320295648600736843121888159386955609466459694871218086129329102622448461448711439795175408341336728376089438168635779880876213314631502720516114441254457990247139828611890968335526375259633177742232086539691504113203063934777893811592725234126241272689102855992852281569562018486096392473731298110851327536516140617360262980333997392547739833105814231896322625419883604343999917999826826276286994258365574786032259172105676631381063022017465650938473744181033944024878576083999208543468415346783116240820340123825884865131235959407609989902451202024372403554970148329246195118240762618881232947941334930511935372692171549050142462566094571485493977210029039889693254316459048879490107527494545228143126222531109948165422044426421208302343139123954745706699878866551945329092081786047723287817207633015207096192473683228073873841262598234568455481332232314609283092486648114760940869891735096329520683332887909347862002694889860660752846547687140642591204232431501554295379366543354731390313709070296381960368924944023251113490549603977378671486723580254074781606959964895663871012612080008963203774606012213289836621282740071953221806635901831543688737386598774017145993598346952875266044725042458448848443992373782169659881618962694061304059959688971880732102948737686717055147269371506410858731520990236050604450527120082767586891714077305799903954932962858892668809521120748730539302254840239083267331751173598920508954054595861756959462222564333181758166943220392868946756515382980296697515245841920195576731061056467091819685148379061001988937500032178779810127174268822517622114964152999160248251562905659022790160130362958572415900399775527162789037124576304637838526628898567208948038959674194628024376833243629040897226342966971775216050713335578933306106275696077188359039037350178936711687647473634398337609522406860866419688803940027472525825774958263706686765007317805320242124799341443570048468833638508279153491566962705719842088949843749546876872488401326262768544489873767223517683686628647844028767011437698429161836826757381694176940810993878130779459808714670146735169965563268219939422752558181355761103066127690864505183357839304755303989602143538852381599765157413735215346821102858821212113962050723149427593381320276523546437333621615808703451502001479752949043132509392573959355281347143451537947980620050533966218641698351986222054384800945702970736931252534422598801878856315954151391604100256606802874638227559289128212067674407242268692170251617253136048798594030514146923729310079786053782703495047362078310627992719689084314164767416815789831806143217541518174702737208398572760713547716130108616661429254354765942473655104735810809620053482782835163683951781622275031256883446824234761665285039819381534008533940576221187785676168055406900707447554444770876215609502422482040169424244869041568536312432813844249710153022389792892464253050768056313877654450618847038195269204278069001480585635271755676340984064950469059293245485908307649480802773158201538571212088884458522551496914101833842635993838303827799452301627209206927633124210634022107432837541098541807534738344097657807348307408490770536760007381748266753829968163411525569236516029415642324685243421790185020239024232724349079001105276021163590476999086466489559692111597876203662556724423955095553523835618173749466145696855733277577275683922530751155841934208299647105617128322053469521449345366730243160889756322799989554736146675674526186753840340764081629209953241506921958838657058028372996239283685385953948085741548934646176027808600309977389938481652218999914379314120750620574460656296099527723057791611128509624332129392875648434509602495094064045121838775633686543086931787614640265967770240674662044625957868935518627861021296808467145774886738680980149204879113929334917850411802482214704942708810077943934265409136067037912363978673154759372010281262854558509388716771424300259649219876931623440327418635976218277583043302700780198519295550457548521956421976576542176553856006009341879617373402520108824809237182849282141584680858052996016399556063245384538819453563758537729135783515746504686788986617343081587463783769501196332310936078579156844613685277565132525018899237086221167077729875239199304368057378165292279735666286414819093857247035099005207040638324826860549724394756982679455619507071433233564424983322971112511026811396372796662896316338053189736624187810701780506297958469681709829749252869823537676873557133256901547310704786878748114433219095618942798236499226599426625790554153625813695116848964306429750803286654652246034465737294935937739024276165978427266869963782156571696700518260251051156840079137662487937683183014698996251114281929529242401161147905877092567571583526208335150974768385384171561275254794120862817738471726981414597787330266525239702307812091313541447600595876841862522907594427291607799842825493821176417638417902211207511073974828701934160188516561515149606398430274774550814751722376079191209159509325076098787216987534257016908593688051414185288263869481096775173294689513356420003781767506342817940071240862712358796739296109617515247540072765087732403344596454311088102298596283693522196049880775228771008073370591990696916196827225632982779859323894646644662924459866797608783632710367640803214048688376423395102790092229163077686435861514337491434551393922394802326285949802708981860555558949671791047303085148760471039026350901598974590461078740371156588820977255315927807363655139752558413771224821488301945571259354998077414874372779572516474930135441191981817738560772909519159391383889320928187069412573813717010757515353998847302180174467264610567012995002910679105754285696025282420621978721819279950684043998018920091980530158326137071310714879026248357152153013319056814528469428064438919689549614240928512888650066394674856375321624590173395108401017488634193697393479417650920237146884813283295096220078120400620025779885405108514494115363790646502071530568418203878278984836550514727512821916503492494288982432118712026596965474553613659849652976997293208206898682020604175123416878731229371932923948595924522380950910688975756351322583818710129649773296581499356656070784971490387945980951130768021109827537518152812233149711005408864604237265926989523951224435403423187756415474028427086113868005923725186930946815948584148588455224201904785864272626224836271312760734943051529946722852929971730868249967742587741098147043049375589194719092856503729588075218245751054114050685610362124653245936025014871478588281130166584275674302561432746128126413492001405176313237268479820829365311687446362162366578521433484582016495883361184575030110550827589438066078414971962449617317427932570240683087949785072165785172034982093995101680292568318390248529565359357961663549450058940032894834375106328716699970893838170151695228922530794726906255037049084933565289104786686953199182936135578316022965115747855628598261410723579507170485297000150135921309661666849751669799683104495676161051922054948335170274199847695683662604027330804034628555540094432016934062840578222799813238815582962252669666548795112970684002533405941646839333747872761624818699121339555574703065963398968056243711710341889540068821830244982879156278277397826043649779663319312264743485294413574036066190827939129815100645009247338207132028809667603255804722138656183096949581797088383843511538901072004235077487849951857535289479398060630661391637685326808260673300321656101192686156631004265144676788038439990530247864042577314315851110412461069087005771374368905942054879868055312371149482113831694381289253212802542486255372438138680848702184120283647800008169145237713819728130173084604099684433961875955310848951046565670645202539085284525931325204721473956016747258074230694076060502355079534611002328000751956857223761294315877175697600020208382531430813889806740438111606268827424103983930623547537937130809174244726729402408110892761587415978332421906840918443276020345816085184360941804817113875654551764579235909535843493431142525947298051118282277741692970664181911829585948370349955140676699080134813109691338703714275756979821862153117592810995782961232614963550163590874364491095023174339291692858553493268643287007345720393858764453331514703968321795496103187351784261306867606605906880536992763454877603247800628096607241114589105176412157987977048646053507173905354882360451188831274080061819206688949906310139216256890487352463926648354768443972586052222275871354514005359444972641184605576846322464095338008272411315673794718824061740232312572107048560563731784819075824459694534021774548106075554561829796707055043708645390241221245120336607096356618161332835316574432756372716939597824429089373068280425181844333739485528025038704420041562996348724771005262497861774893175656151214784249322674194221863503193871674193275620934907286719221891816313697141510584805418472820006622319607893593487223134998748915727085132546742926858988911621528825992064791445765678725987663242558443841834950204472081543506188391403958313199095140396144307060329176355516563859516920445800916320204391712272578848933206665571579799533622066303682774119510642596377671601561485153172906935961670587341279300432580826208432826383916900404182817313983880065411687465892447920729880464987723923783221851604306281847917534378274228443176009408435815490578798733682769279336920089813065671655289302441264102899679449798562093271539800247195952734734547860843430633028891649894750315146558790957226683291873718928791692429578707119958954244897514183241968356820494565475830476395926783052610050835563021983253645807320437239957218870323880118172208864580234432952375310752663342908825250303630940739904573534696687166202362820745814855162307445111263321091237106733523428117870319296712716104544293791910680917766840101361725118767118158175744569845653853374217362196302430684610491684778158002541794718822443221635613907928320882006532901258137825044795371575754287064918365802354422744442879753145707014592102181122786533163747033093269215775401233843973093594290300240450772902675671942416933081890165948060366791919049805120037698393755607246295951222785046231085055506126983172374275696281164244230992178509420503333259819039360031540040369184573514779170735458924909068328220938967087883780921682954074452918945853271557176682304493232078017351777980538665868825690312811517016016037658460928401110876213612136511272184396810391422585998101353357857857002773366098036275594386650855839824631597183654817539136206198937099523947600577371324424470101060177510182374813197400896050553978510668459610714849328271728196859180547462275172825098128909711868470996297835226868803974337137678611948332973375367321879406656014611112459023056163705884123183541997981988016403470753075497027000114945147355345385053889287145702133170304280955700182699117412472059250553843339436309475971518330329036940466285876597653406885531379535446207132227567762966580616372860966314747756097867069561570707751316018365727590711596296045303825992358231276959107409910186354944091503020155396305549837333630289436583111085691091528393991438569039765994051327521059481677978707783051693883928074887719829040573859964654099498768029224542255554996215023492581299128750526039262389978031723696285775752079075822957615243186633660425097915221978431233097087077798720910850072246910622589837008982804588736662508910355277029070597054894292467990429523666228727961881745343686806488642103413749651183130330610227348604462674836672446556105780892122226944052003643387007229919506710318183439143134948343891802924674310594339722466114029239653862727627043765851238341871757453120673681367650196638347510481176133025675241363660967678123575678964958691788397061550877257358166172252743335195306812686349135619074132312362593835641307698693006006714403869758458077207593330290297341539678737499418623211938786057020732966441284832943201921181196482177657223851533416389879282647186770989731167768453540951692874520835889503802708043043532033400871117529372823279269090548082219771126547017987064908136911013087487526582671544335380002572156349693459113557599593902777600044395035260143266946485845387452291471399436831998951514220658494401107602419768061098257503762390566615315336871263272033079750822242009271296336448808213792710979059455954215453037832309560459760552916824418059318679025652721073976905577495688278196623366683427374472286498536009811045242428603048424390228387035553598937830984425045011326398316242945298387680141310721778029482319206954797235353896700501379737921158515485966157634740894705557306592153382412788565014611907987710894588826245457541731919744735400817154062407007972045490978258017857004218575226684116630727397066582868960094629141264857846896654131446686641509288953173472124031214824783206107420548777160463365469305105038196670274984023339530037332501435166051007961742005494714342332279146795276599329158646562971393237578136068197030330994052797919596778653547077335259772133828733645532235468490889162394332191463116971226106546437435889435566707122289077102679316284097201603011395535519107413272728602160074633918582365647879221783173712037267577092643898634244570265995824854298186617910617273991486574140441092723364738708774420593366967787872551501324761976279516426633103823337116917361717437406712636996642162950171943794165113918806959976708335601857190478163804968020380880639051423489426136337779184531603086498445378031384873159163460629784938439391172994229539401921103391533413209747429934738226431628298000423864424956471178505807651410572914760308757940447055343373443011001906706573528598920989716763528237629329998952917809421905010232662629148094851599787127348588587729956823965710314314360382170983658623044193209293417538943144950641352349305835715681773140068517237015478616857836735391457117558640837740386440782728420975730705137088981915839252985322641363463500938272739179137914013319075042731812144690432249653907389437524101713094485365272464520609769419847742959980646753204754195547513782930175892126912938817569885458291289920146762227826666428249030964644274895387081181780500330355307715836826285962355062083782590732149523455094256339174643489380320455392535471134961425914500572406864625849118170029656137170280348345552668600015844810369353605432996850094502832963406288970621260017721338455915284596774596942808140430990134003581593704205863759389703237073031638407057954569116943150252680000452288529855213242467405261275294900696652882222904000481602192381028749810233677304482278384140520182683647171062932767533572774824300572419192138441129855463009828180095569422511090440983544689251477016704297817312810041074435060131356974122529571612267074086159274255769172743412942002748857820229916127954048842525950123828620922049171696821284492911975821942481599783601183193986995130982471870779049501486767552167760816235114642044632928148059026075907098214065584472391740657291199798972657886278245051747839422890501126521363536813092821974104153557946297906185101598754006041802833031998460796244477690522716820571716701887501841710777215083681789574684594296078117684531024856770539519408490058179988900405945121535837385455594863073234992891066888410880481028694242518883576810590317411607443950692671151234714709899966752284447619871150273572254107841053678039675183280911048630573699710385048920775319327850815998126087363041283740207785909702995839635400817861228830405039448237852248853440845031975368794368001603429424134740038130566975465576776200204896536379042761921673287477966359683515035827161444449817773756879338136593566888443870101806770831752558431756510279751673596949886479858942025186722241012878314603858829972751225640119087141949471627057679116568851190696736682891686450358177723098015156836290048386082466243100330127926399174712902984125360252407219053387574226079226914804248792074471152351319610109225647948381738741904597650249151063399758522916951113711237268400865176522920982846431869348544024164554566080986655513963169943652866002890718314530568537180371273516952708360210015317526743141606670087447641263418919488601672776821587722875225103603305150770122235707705498141898628631202959481000717050626939573006765396333032745830904018526804184292887124931942504667797149851242539751883783389669462350864883997696763846244707900343348758403698945449887280496205585206114873959002884779560054187839632996953953115566729209391613048257652682461671146975796042020716989187716808010086636690532262174049492348564648791339144122999174787600702954878805313023174136828612605066316295826459542652479075319346983235445750063087065740759864133432080548920207700904686818177134897736910249862616417908644338064733837390246489354614768234382849613225098890444160862785810372225186679135690295139709635715569419108319524824093275413203428736498061272255803824020840625229954665777406542048213565112032699956240785692091113796920209943868855998716574587983944065279123819889593992767958451358627896323168354379984290246842110594206213978606123675765950879679455704384314598642469402438954079924062156676628022161357289776659578464040849345017749943302069732191486456680711064864842988845272110396030331809425175404135371112444834487367840937246235464351571809803875993558496583715560669542952361392452330052345666293041490618856154830131450667329554496126235457193416062483366671587343398445000444931363163092428947577124759801719904977529526906634331312340562232631365803222461847497009216288799645330152633840610066135454557193117913342340752257939974490199020638786705455088030159727524573124557822134797780178789995919601238198170344842584003542743343940201454132433402173863951543398513045489898639943772949415667717828903105636739039338527463658091777180698741873244261735870395355253092455100453043699239427699660988171401409159273713875617536719768657926627997452222838787671668283851251426944869671084805132263194777837779376436938415708602660981706843145763190132950637551459245518111027559962357993859788842351975781449090170939959611506411250301086616366169687639821084970101924209790931789062997103541799424905024245318644981438218122589824925955574565217631164795360823705670162989980473970016138973879708847939835846422214671370410064814785058352887469972551651150557449536032645608063088027642900031994898043440060058905972749081652068606305165435395662382706818128798183881647210361445014681230679481005236686760252945519113666384937606513151921102690197394967694337868085064273476317720539996528027709363903117478608833374941909888971741034581035451021518249813816176274228824563527323463322328077790372552142774266772876904780277055866364536446148999026973810441983324640917591118958417284709467422439683774500860980511632888375269415910986165435703444563268000983704268216328249627057113648925731090766715206265486438718919365507468926913881200396970520478803687296688137384885103407453015687212050210778859280237259828707387094228152019318496811559673961056316141436446666468790077141875232639035898370924640499669776427769152659194969932395120107706658483945970384175743044947584799825704786461854964447039824116605304384260428149017590926115503440271085189730905006006302735362391641663141063565114517805920188638891728354685006593821626187828182927191639477191413171753232808577745701809938949781259258155327861058974016643678911337630783555506151182193826236149513269595362931981018426002290213919329400148945681868023629702756885581700467606506138576361449280619585256335202089928661343449490778725750083730770949664846612261101537039609957530819622818997296013558242194004028892492437801195542622959652059354018206305941777292836764414879906796050944086499049300851756043496148866086724547381436795132458086644738944206045689183519585895966583709399239221477298442529121101114073077319810518442196244032934449517994359832386032000772425732032980863272292042359584910537511612533955217559355946254904226475667611273890234536689291780372291191640427843348325587629387212545952988310758357178116844093149863608919492763439372982819025164875083721107986302056684719859296884490048133884931736770203398849752572277616562366092368850108101949764803916128187586190319986259758316446170980248506144774066112078262180891915745746296743587005715012866243004838183110891041369129118585467954688131462775338038633756786727137501078360023998877310453860207214707364749432455236784518116222513279425446266306603251721697560198623921127800278777360451983767758565220363519310382680943642341584230141495436732605803128680489920071853233202390813654594348199926657532438996038481722490075958405816580483130501551688609799539988557052679847807994922651204462641171868135488908050672386424358731242418821018090865585360324266690547214403105022932744481164894331271409289547689272683817284768390031040400616429652221871853663203583392142829603239652231644269394006234281208216425918596989520854669603467263793397923555411333566176935162878630701131421162163285558652062893929589385073587132776159541691680547306816458854304100790611920341808154680494727890676900959352813114299969079227074439820712211687224267876455844847648107545899492111863429501957211394395560802655282385154167585048073590950042458943232400186551503728255908298405239310473036837319472152291902257388067913682259747776752354886367992837028246081465215481555292931756772008155024783063696164726922925020024254493775776069991835615959679333584939050297987455143938276536403757075265740841294376936767452265506210256371940389967971748092526026492874712553692364171638569477907880374364010819390399480023663658819338658443116026140163492624503928597721984737433111605953396080030640013605783789823944160056935411138101769223520719027630870239543964104980467465151727371651011014783650071229990511674550529531295252511091158172604817684913162796859922024128524524215358484613052426598573055291895696530046210750452589607412912179848119238270933884002099811045418710509077677522080023744023548972815336162027880539359888960125057473960905238072453754540438985549191855168546108674132680464831157253662244110474159388938404848950395166436311848645331297600783289082846238344244514270317644413140836325513132927579689524561663385741223635444142003972596512757131253754771517044064802711734702521899291839066674366385994488564492609821379501888899419344632896399401629832202660187338828805327804480679430964626877842046735739473456549080609177929161156861526347006103604303774362139801237186257479430811414854823978235585703300299167474437894834004437619828977971262258398027177840777876223583398608493101951975760300511032296127214772758669930765209020520673852464529022224870595412763300119592591987502497260701974818627948461554911459453540833531142548770150625034018085022555006821576714301626386813231948105582339014524559646547707204749928485497921743015568692181493139818164075185091322353615739587358436152982853816470029351363814232867698609184297345882073042518776206785983743069873688511170405300738456777998025996999956304962012716142009398348272497654504965080890796634836250324619279805880489592173328471800025837485551518185605534479215326579048870269275257846300190296004584723817074193509721430767797294460464701322428849685842446587715089652979419464135866018400822420157949104267115695078436354025464347867557290876181458074625300065672412209196301239836037310687637338432970876337442168155814341484322435068047601680642957647465723940227540062772748899893138363361350219796062560078077719467804502800410826982899520945850337949095925110422780710548625198172675566447209484930205714337381067867455786902130786974483266696620139425401396310069305470747901788252418102292900709409108579700719308602414611841089864314873483268862981744714262382251010076800620621293860974129807750116499837005992232476069915134378119109515930213746589860553787018847442013460762843863756812096352637033739225871947097195173100621791468200900557128424875493511505498769709167611954846103042106786622038182708532731723921635896968603155896875021354134314518800335421382547677675800249824009902109426378803553531192761733765987344059274219299007552048621191343382470279966119460816238888456741319015702955888748616192310649583755992198041674503360772488994393953453675941156987500488222143288343628218527716101574065193617135523701522200432494764324503913432919615851425972479083857536817724295344281636848583838296950649979786435874847454943254799301622921817501506777575210972484991392212761010256510245460824654903239858910731092378827643217702154263155047490965724191936620688794174182914779595882281932509278031494223890475456709833292309953864876892729896863263211303791693631258049196630600071824407167958250483504315832225673623777580263396524749660918966550232912739537599503625056440554169763340267407876646977266733219724006339448903073262320175931657734745888766142836683558019514587343087314006676990263913659960191591107869020653976655230187804170463151635491628347665620813571590200314126508208786026092717302761659599664048415634869059362892868274724458059832038694080509951502494004418957963315278177314681770578320241605770934923094114526892055190297807950517861145051038542629695068023588837476340364219141089418784957789402313676452893439323764536926298492617466299440827655316716711018940720505603923416790982066634994836640962851622491189521388030331388848493160213378701544064495897924094422785267634804597542434487616902674334788395738777150683989964414636108411763701257333500733363494857568727141879129684017054109959596490984472645679005880387814943313403084013877672816925500758859919213344800262194479707911818908234872201641584600004269982916520683855066585871746030682953641727846565471939750069356728372545694325010244470245505887229606339643174907033710389527127100712391930059449284553439643016191004662566809757284768939461483541009006552561663015262433447096663039683535798897056108325690217422695355147223532313959792690561978668658351884487362319802540593142504949650372788797904112049585249964442681996152171625644231687860143331351226965583719763553235805379778491971223001656067259922715245649198472130121852556938624469580744003417127646621174637440162235673548635670615632351902181917253678946575304927079727265916467987298919082592511445185875389830954626209725569640544534170701897347836997596828072307659943463149590890905845251399660969278750878545285525645248345813842173441121044114685785937764687498854094704551162050815981176288131330711339324512257983244012295193910213198289629203188104370179842581522408984614195743851196016441158408968955052380029662084078623092442718452034018185044846163008584336204275622441754377566345569195257113511142380681195128860111626339182489109280236857660284946527292213365360045367168828027704264522754387299191557059747390396717736359417989585988419601371476325743472585843598255228929408211136628181312972365612925565159929886148391196612698665644021298939093549406892796748099477766089926180710084361453805389092282745283683472191496915878716816146872832142302819782198966320238896367857744066815203465238637263499070259348158126864237713166534127954645824889348020980416633472721394591748086354473808871658515170147619998411822129546875181481650124594173515036963052452890161784067737475220420956522727220679579960000505961346302213115947708524644669699041507153264655847040881896793859835285423052243854383098985654190662430034918798114111676169386542393027093456028010171532652627891867576430245494906224711648780013050018212752453736452717208488323477033964172675413797571702419687861126490869835436152317389782763670835964946503899165262277161154819041929890086223973573694402745499156837960268014687992950246900704885618259994425026816253783682956306950326711705226955926621356774399837259396664016312607509891810109923362608908236395921065365066095963858698763236895232691819756489085949538045881636494581764489818385317986662924273281438734943251031667100924251851354378099908704601923979605386021815194706224242723271042693401403212643635148738942901595847595484322582821808931282441236837604785765265485783871022866588687164898527454793888125625846001720374682679432414154099660452630659607445556217839022149947089773821657239349298809817149981174390342176680868330918794510212115413905913157398816789267916126860896309997453015953061607971018845242687472605500016349316671147585768267270653457586697869071204004674290221986878288422586270876214985747058967648595813833862850015533401435424591900123679874074671966532175138464292030686281145833685061171956446049714220775968379681711643556841270534544440085071882683486374081414441787285146806919662969386219102946501357895897656757043141317436468099796710839040835207419875435706175512830489342260114761599382967580165583722825685635884209579908083301746892513875169789155762591184874991317331958037230234038271004098802567203994834458762185228127826600909768171441443385461973302037088674916906290806527208759747494972126748181529305557566553787763377182531566745064865035366981138729635576873376625975240526938761816254046452809165206897706654670298761205426468124150246379247057000064514185433943223102408461202901532606984317605716794774149135812732209827017176129929224916672979765557037352154606693722932568609850239276082275735765717566949294063240706734309613438461866305603477340774641285586430613320770370994704441805022272461895330747293905010428850107781911990865301401179238977038020799232391173611639226816391978912426162505350164241594072527239145468226176670452691063676669531977755783396443967571803877366868618373695556337749057071588499779661755023587713132311373546061117740308186165322604473447089866475442465982724770317247088261080780590590308602632513241082875684265577578270135308358837067262843156070909575465785851246472350629046827998168927031053655890234738415636533585910186160015966759751762149269549371029903725163033392981648591067588864105250646419746260443382094821755455536020400204767473233248884522631398821353457711215865923007533774031671612980802380192535007821365488626628155827182292119533228090881986873355647527422311891185180932776574758982010739934635472802401248897016554897868016567451736789454207279974092284517868772992913944246093851283696117230855343399403123816847456887580443355807750184706780756677952569040582887671239581559531620788400810402056531864622542278027995193603061501480712750399287761504526175900001650732513347749877449842263366493226163522842397511040904617292486028362053766306914338976937948398621019868681424256001565843451261864636070549782044522230463353471583168933064730281663504050421441157245666977225867692568169501879240394859298569603507340047654831872006149553552382389495320194577801046571574101658597166162754537770943993216901587435485196129522900517664567458593512765353652684890451857223439078350821651283278137358479417243230108139410137919348342251889030936796860345608378158750637696741458615413586169240098572975875666527848573246905798235450614290551370814115341133779585970275534245199689796514977771176609785954439675131443906803508164379140788440668409262509057441081740017940117067410958680168785806586493257390648151522642840350229862723572086819117831006586554161607478750399264908359052987272912808677128461983763224196650761224153101948188371319782300071731286436406807190970931114292665507150780577806046404839712352603578582456834299323900704498799682169232171735290487662338581743069848660508593299897836069978422795658474290713643649202779898293764908951106537426119369989364259641011004840365121796236383988584407281196943889246776396695026783026839277076782904891724632559729116841022403012552865528885623122703307015351081202312143414968919720208871695529456485238203907186159726398471404520060951635985985167078831434111033328267612556317883370928141554437485316612653605206822592105374789695583645208192380007738844173309993483089751744211361583030858565627540739983068314818720549282045515227671759170983211173608768467392721922798511224515895772252658925136767368063098692933928933748611711297894225415977221210279538224872205101558578883189835847309811748632420381245232119840424598581592641922677191579001740791202935618348725589943722085720605903959288903153267492323081066665319985528350729073904714509633094616665731412548397650056989132672720770372030987328927148396761863242769169953417055321331936585380572144848775306274642728289608133717221055230100108499767739485383934011255436121892704568625733963076866842390029620868574991797297172619508276370515772800119335043870971106199914683423857596243383726701464459670953712217310132409654839931614866301988483064953581409377863003682600228465576355185829422184315343600380329924039468292499949638707879454935799772177378187002564218693857509566770464509517284384447034369700400864142656990465308133272419784280493859952694707930638486434333666573036408342891072178711248437781178727339355565797897179939539256558546360369781287725048480538696452098216605346208128896354115370151565541195806677289205734808577662440279290672787246825366932950854718127296471273753951585437604720766727431912296141233765549335919104800767889066413499628374301886287352049865973462699773403509065019993145807575914069975143489157588002215907808756188752306722157650833189113476200739306661161464202074633641803559215031979781244418331331140807982958831525311316020577811796113379976867908396972930048803643376807559355516204454938961771196306134425761856053942403249079753341938242497120429498707219961640706836653855546478786525401664085435951349735841097227524010835413447011530487995410906707382806450758961065744871311519385749909082074406373612170530231788341929757598485194506531451998074646420656567517703331638619991663170159458642329967487164819566776542534309937110257772349606548316059879884621886222485270397732730186112940779038544658513350876840778749757315292946636102396342704926155036881806250809324599428742575363600811318380595127269534373515219142307747528742470407053710670720512687287412498021617878920169995427930017246188377956655982443310844857998708438667012408018692356876665653979846382809104976420865558561022185441826432729652320137759297641640689395009758924093265460682345535969002647666462738640584703754321657897553391551320601627530600456476504753184455284289557414102635557993773947798383140885927691416355258135618671788416114279717107499634948859737130660001770565204173680640724481721215869702709933854110244492821251395041671478575379040563475258366315596238267928465399495715038224808277468323620813748678369764889057807462345466239215786466874411026552190610203154069270556612197111118550191704520001985920970966197197596569930862446783981788284185684455289104563993617301838796827055653629106470842842095385081186825850533851052796826241088718603747718347242163930536943386888325446469249507322714293063550295181859003069748837641311537792534527627818648492847762524962553314395255006449650805518370397108157374682188785994973692813369834981867420495875342765241131127269315552944831847812594552025179053083831355655180356910651410296423191671868748744784215730780530415043605529827828506779403119478355722024193816685820425894447455071958801562072502983757759469193663447490122210095495951769199125117398894221804835468542786902029088486942727575395583335877691664082276308021481210949953294449467416969051459503931604020858182453748412559036588227081028271953959966795487111685347875181892795084937890288286115614030360710399146444088161811170816627194433119590349296443995714096934375907372708520958346782305269466042562832400399403881375810087647914765485019919460117651146247829064801198629217912121402350451590986882295586370704903744094024686248992179127635843590975690392285318196818770284080266242189325830429430920879348576644477273880058721976508198676809780259481492995272064455310902617001304520565235201684121041082953353717668654663592054808598685576178085785344838887034507293699415056278067114561800941750721336883958006779059409376232376649987922806690050967268714436118058853440143256638078593523921526173718383848118383403035718869602091988664394925342871471608348693497355564794840083263135552776514541434789277249124865335884911480597374646440909705169928340933177588673564204931287207745483338302552651182515792791575917039554677918216145774823415041731730254362412044516931125006235453172313107081351939196182527193278147313645798781583381412311467049061481135237540760030227131248934000205182824191392803863568773773114105392865627044304461038542918299941129890136318315475730168888166539977414923377294375217446330868303305389090360042607004992396956400199351504188982724024542547717827519866655835148799086532499338698396322127182418108382543428501814622556708205691267649626171560071491157855166835245763965169977905112576518926883012915084563701123570695695490690386378612509566019878298117151291910480567366271516925758532902937324296081855221551887178243945884191815523271730569072178227931884155696672223155344658379479835346434075022779158483740893114484052573375642191705590343764239016129845984356171262751575289123352825450969285364796035622679739777093677033561784874189246551372278760029320152785883776636877952379288883519933959112786654850437430304725430360967666117981406222547313954447339836828650136895572895193085038929967156025604787817607932519400746935276231040293482603390551862617868388803908174380092004581985726701357938732747301107445576943033513883778296941086266261318908602270972522181778882446040365495484163558754519048131891332309686495849471903433034760701504748943106865186689857076317167230643204041229562528727568618814051298263776772498079178198529036587968047961492797798012536053030514976753313440951393941868184721080949124265699513164046678896425619737850356551755352858217993554161414816334600436606013419890021101118396695552493665618179871090392178785455893561909592855034918211001453498001765094736388848406333278345535842196918784829968233779279361981688313274574309233893132185001681148243958211682248681140791006413310442155163469481870471428401440226692968276192441395238851278315307122729040623456415228539866501281338407355521551570167876719033851105791546336534425418810799500528606396827262182753325316160219823191303501792273599471433151808842655121474053480509123784545560146974199616582215763345862813518044109655272065192585973194853488272474277174094083428344312773279187684552931700088655291558523662338905418148159931364029180173746876858982989590121544928742338911804803941476280875364582007580102813232673721401975487684737190354359250012340281923729565437816227934627073699905385353200434815912640051293976543811168657705365030447954304889057917696896815256791035149561284599120417219522865283840152082531824817260064751309672645036771629269781414320435088038203973371137307721469602243436103589902006996131978550365202661366590559543561654029201318378426274524105587992941798375974015206964917148580380752751571770813603170040757305482056657075720142937769118732234760224463721348909891232334318659218938696219126657372285334576015529698265084436388203213912842768430884006348887017729294756461058468356616942390122301385713216370522856862441025653702054230957843547041450433022521151618964854117855131619776616108741193282244711065968365424046829885705829432748761216729977174745802513958445357423876158505115483138448362724594177191545132655205137555447849568594398267084423206228163487449738042653566075137511350911569371628826948589446379439555719072164445662421850653980157392403667772771036736967938677305021728804151727910879071543903978360570030098903069921626990363427372761266290124239428112450590052578296954524857557732155656719941399572605773546932030110901542784235096644554367724196354554104549745973599070975920762189632308411978192540687038594732341332961679275541719565116448178690137110617284500653046039789293863483824737820068604836964168741254643097475809083564493953932652346057940647318631850602396735900171396574411997111043657607019769956020249734950435157380224612269257631895006574761261702939170801905665790188021712198862402724988664351881682679745375568618334595797108613220286197334077680319779884877756805921018045535575682038785098699776548302776822989135317521179865562115339897809062974070069770838622468388507284061459959094648091051686562298323498141311686308881659773169697732211504606174307303317574961088392216907874364647900800121479688352873255194084568108515138162968092445034022878227240354680348476533529939433130961443758970079128718816010840171288958888987896776893279236090517520915403811531831630501052236835811737458685560225821296263847170347051454029210981294535831763960731284583393431642180054878323057324071453589231000989637628412978537506154006480654390892014686934280021338359777215447416636672447297662742912759229395147067326052913795245541174829459018091967009245375379872861976149538371471335036798445782365647227629418733422345931547579574689992986969476217859523283105091288224257638991943022153309019276647598071578039920250724847148093646814576745160971346840276130915733876484332071261569506061649350253921295966198724954216915251247143440586092257761131879444892679264942235927052930718126768834205702463257975620468394074308053144727381280245911518153978758717992662288394277825548745455595924576237311441326201787007302512356576404688641656678889335135152622469036719624864848401563759778433833132661345840944843618573258262670128270928411954949028197053432427636009266034488267806867558080484310105790726402226430622704473817480425247832373149262013479714075267167547001485707027931059633525812877142264176476533086376784682229712772259076788613518062330868067232701181735242579456258639234615430972669643583512249065074495489599858462593891215569325928623563543837615169561370441128877703441300531366956582078280426867005848502356402146143170452216526104718066613853302329810562749103745163278897782887888403850603240576415986398552055251692193313549395336589760340447992783475687078002087348538483756056664906800296625486756388572344631901321381014948603926643101452033208452203948054991104267075487740896354267724097987348947889878337721950131421711593306112008144531138169351480148532591895644960363390396559636943248138904153014261616126527088629577899238087213481616098054941779556389066933357459283884625549493238966704708833448759454176343825568350522030420596732594794134773374199345228743152416703144120315601145625709286731694512681670607616492869839362136466339192809896235593480013234998280726009921164301995077348718821535084472982073021372765792645983968448432624251608840566806672027662344527180612831158380512321652263149867215695095581742924871452514143040735993237143361655603349778363351192142094192082779474297818887947555951769268201805522721389026424734550276309123565753526845376443372481363168023560501160976183567202619591682309127510137964442125711773327344518351980041252041858357388530117489929030717790398111872132152415020147415589318409317495839607002459795339504513861783928837264463268346098648783005229439058875191192734915282235258208677082158906138142756044276120107150589157207438006859760795000028719306475419653389013589041388855028540506809646108510218340669654948380231460665584273523107240919590332907077642611903919266521483733680763604377654764645314049633048584732557895949387565024919975229164945092859468668525415595360310877774171159015605167584985902022083121097713889980026149976800902699992285635854137417576342139445677364868573270271481987694798597040211760865595819097504042088455151353491510559014432550353740598632530616397387222637877314002018183470571220734682500333925549482184895376662668093158024782616886776343403364560450328853404251261006351496102759827388037367701740817017969922296473906681564187103089009490260370288334856508737201029547558483205419850430837371116842221424019127843980741507938951943289968096436983486813036389240764325400314830501840232006864190224150089351477239652861285442628296804676008573724369655546984791577467831733541532339809489500719246220878837736104806385671406311760662527352749672602781083133032257041926811377523265620377158930478902579171959028640082914741105741083584440098377904430238712137006727290873670587089144210688707804180629830101530812008931146836223862290989363749826133135796364943817807111388413892377034733143095842224904176174030646740385702739062350486411477225547235232498130388789928040081489825295477874789774514947366720440873876182295404147871430188598334969149236795045234088810320773078723731664573019585524954865636737916728394086697778659671624745015792292986218256831195880316218265464287624879796576997205024745838905310759107415232917289001413481911245036674972131094604787083970969796707908490195892487911189420097930233586840322755464671450605149045829975117256988671503111290761581098424914211843464473154136472143961883145271302520146653899031024549656209238195458253226757939309531540119739325300716201284800606660964748808343639808530747062490229420670093852790554615411603562015088432642683127223648234662199825999054968094564182823036720369906239050066413922950538186004009091084771904485282617820223867984887595801015093330900250414867136978943672841458285315334727642881421916446016308935866473709470269390107997456131668851690027882270069698433519391717382047977901256446299437334036477711026862775259227009357652899320787662341312377307211616189618070259856871438279529940698657561904716525937304819868369768927138421631532147324110455829226841342732732437958111830558600515581076758986472274364660492888136497519535404141166244983338884243729751538868262356446943416267905492207699122194678245950588249550145954737358888053118922280511917911263217834135189006186181367207454038478725277788768240970184856838830053437305765955565085426548928395566907442169936530508403098381557187805087715681285404102153748244280041869501721412999385426867321314872909052572681776330168294956500840806634335397964522367032635994021852569773611523952427330083988370104393799584185449096740258715291925445080328406411025789570552724138407400439382755874924063738269456735803717619404147846365507246424121268966170236548657744571604439343578484511638225613825040532277051187580283270142077933808073441671856408081284583504228010103678922561811560804434815608059145515049857589047344066289704393470974890141947324886209538318570348959160012804578222749926143600964889682889834217327349258219999025546410334641307633636502598551755320179466629527396304390343768482105383836411044736343075918775495525948820445044805792439045822552792400676158728105050686188336347640491139316590167516208781653712450896950977046660227207250451809709267952222035781186519787254488463218427182883979238409890105086697824510356243354170077447159191622991897505443085477226413862958896192278665593968683965587003623054302877534420039322467021975493267902612838967835200672527833538863336849943559335322414611045252720063727046372287596600710593793370888214047618933913614471454951950062232757659466061795523081365417786112761420107037209924112301521590626885077622515257848980584941107564130731784292839555592115019579863747093183191848798958564056364337349384601318788632348467056871405701751225240647075246746055372652558912788925827626317763688731466593082486178752382817235849992341044035950475103671209454718437284844046217823989906568398064910188980682036087086473306222815154451526621543313652489576821025385283869327855945699192031180143388219558440529080192611458572409882475308218605905035716252352494535641568626877491053099164661794603361781473156469378034495456215987169230834042186458501590626094394499650725560393263025010000124635530434405638661508848666873978990546960525639420457203084130326310698441321245302359244560354480594421168744583831703645095279739577402796101384866992734393188644325358270441461765024019373325532609193485900118733532705553837030586256184949014863768885168455859519717723454042110706595034271081550943932525383787342266356648521421262680398660267459849505780356895267767226616049156961639717268876810095905500907678842544258577720756831110118338424754970255985574350078239142380125548980929612926243230040426973842757068433302168580210063861773682429964425414974683061415443541888207685192810952645130596541420064452952895111102740456522884738468960288603450533345175548203584843232808546987972270811445719862610155054406788534025045967690644072219055022079647047300768267983582179778264442915141541188485379532567251254276484960466332293415558138607068393278442800256479567465003844059184980216904388982288189821372068501272390312239049209511817923056738701733872183316414260521802478446973232884286228204695268597641650683087313741584231071427850863239837382447434507023450125531540027471710355390960792047418117093326058011634568307841579215268691474193844465349903749901260599557608221564267850162064973689380544761771085941342090927082021396407459950120644195615750638367514835971179701131786219873170566479453629226664481889177333431319091669306695049253695216219848631082867004617149506720596493202706478610645992726237224148202246501921154395332635908561760457364792011268268886182160387419820104359986355413017445391153934170082175687914948966162345291581373448302022836387517797021519384379540155673398027316085031853458919756654789721298137843704055498439291765368244935529652219182975688611718143285524651308469935556398609763635839707671243598103817924426034010986371518852091776905173171362638767934973779981323529884280267918493936627374318781353898899796210512110583070341822187780555084655567813994859430907694808659068486848446846133896585513355415285357843255399790325437842767404053145671032067961686588243433447979747735326891246931160561890333378228264127709873804733041156027231118089279406027870627174925430467358431406322611570742602587776313429274525029681620431733710964057092811848447736085906648201536443927472956093606356768602128007255183440167476077766741841049854549560331269320738358233381989269491719734196246000548979497921992415194637365757771869101096900254570633193927521153555301818410681118249190153837050625592757694530077154292419286623427344108556645413226900265098223211842738060637996429204776708598996339897253306667047260036493968295931937719535668082652090546614399776753723247861408727215258461799785576180379535011480638042106553913183256307252991237247293439912326599150623752607030403167974914238948316925504961424261933809467665999261295937924113081633626450859401874189282545304448409783267685075496500941374875426646035446771805411746289366012336759735427048872603809311087723919609583329635823912361577775160132855823820135736691064038442791890716825712394014163207706200046500125057157054914134126127388042947343357323154229948583824813020978060953393671489393376469160995008151474728337738564139342980761428659998094560829807022960205369799887290741952712271538888669499672018393441039405490378425526785549750744278386340433925579191673264543795827511667009606667130040891315681723731371511015244902854143230142447610437016288040968925416073719761196030063613274652097884499386242913425466973815363812301492428573515666518433197936690961104619807847180623354876225284758296205889469917342714324451493687206783639331740338183446563753771198914478064351238286252563266030866241817033457830439060825655626148725287752350029975171847056236077990411847234148604841683446255353030076587203479645798607864457219579834733537439675844081779733038350198287538627818208901221461492141142914106456033840883346646587140070773726128787875268650247351688517767612214718290238447876023509819385715436454638870057070755172508412549437429510734930697014052732276337762202599569727468943026252417031041897548672723989885441108960128755593777135633536612979527882826836058969727292268460865464310030400734385488602440315167508719931096710081556330010076121988946182571373664554346288230626060005354673643170495088965431318863788310910559713495873158270126050954824973399640222297976157530819657424301626954996629669554602174123491942492648278330241790121100707660174451637299979924068374350400230101681247120823041957117442690621791751575816210806892963692308912985940574177686349397926883713956826045332048506019622372261711454445098664826074975579106165284747779542891218141424016657817668970440159275956294731220127438779396952437664962332730681605398869581772751550510779653406066894920483623617242487213421523446219283561813802717351883006656553262895747561377386378305513646060017481975341481619610025252422840084649365988560804679639379141696861422413218110224099840730351697615529619158158666765922090161480130626515678356886675421626059777792020569417557018316719069854295593929755661359656552652207601935581256827206170027646927790876954943377708127263014390317122556808763217712810462537440402142405703407980081168616683056473760728298793095253324572911081782701007629307801541372923441607674800350323387555413955653037955932873894207555689147517310928311550706215987359370831137653394213441745585357103597404868787648393303690391882212964543786966622199616746790531964376474529058638924674689551169255492308784257012968686567971055819572242980568926550411359308567303871442961270250229525464638229618675743557612434250615549706270405102029572558602425079781233401729489668223151215422779059493878465660524043221436238182751963092486708403341447268738609889990010693786294741731041894641679973853809869247438802105832449444138078372810730961148729895413846662129220049264468393132524855291175467334343030498655843526521323399675933095338374888675042471524078029279161237232214294497692595522639074515116583141098686445772184649127962853511601373503494536599300203132060801660352912301390312307162299476043716135789111697463285836768485419469947228052304284263918221528243804859319645580625069332021158726775245217262677250991363883172849740372711700506794018161814641681591807620846646147462778304023422369613190873067413627825221893745608697908334568994755795164336617158130112705270768699806708378778903886192856557993632929131212545816728698563864588029589000820256878143546833855634853131796015420878536489341024764442687325943489049752645686465192390100442272021065781196030647484947612087947430797794790911505166989897357593764175877960982506180045134212931708666998852056824274055058357146261253559014497820332670809107761815613922084819927099810448890193772384280342416513424805283345625790917085977101669414244167096467798929436207112599834966493538941712175349380686328711926167953718565009729514668067058363264075924954324560980501903919149708904055097435653516771389217009914143783720471778339528807504130459903303987856105667970078933395135541754597972584084839058119394057803172469087301137571435578210436156489890896185980851293133848537333784101619664008204967721625818358180135647701633565729733986506921441245398587015061823276584162842207699360996968945639117048447594309967315394929527774154047642633567539607649959544034233341681410422806811874770708672793863299548331415437180145087586367916569046859250501608793140913878763469363369158562935170691836665289372275269185355058344243809514995816918731048357675217558149046530888953353990689485187833655416949733947902447326718126422502575185040334707291746965868286249560859846074515045677066429317135329135575021857102399572659430126907782281369891888511258982058639018651064451011122112953754123215078694528427590101148760052033343243221293753467218501857986045875426535048022760821695857877283161373094797664421396040093487266898575989108870736344203680416151291811025348547107703014870114091882556089842226823229283193254500928640762510212234796433004458037442378609325516581499559434770363834973328591309565735959463108020642260402412962190331486436022755559575466094769103318655534519344740769095963306835193247105659787547745388421565905647061735093242861306330029699378391109489030235500734596838993039330152261386310307044526734126059639169078925535488234043302900662216143973908329381093522326289527751931038308348465469962408790817514507790141976874631749432362701823874921246801530622497012463189701721911674005364635124158628319975695097644735770513411591358062612216057590103769432828813274168270760583896700535871336205091138306083885914723483618429863312287201023110234477327695742785155039914503838981844819176412309456572481215875975079176386479297005884709557863309456298369532047871089428126633455237164418430898035532453368862397310785830957102251728923961020924513345666816967904897584734181903602592541745254819157650507294552168631259021160205051002441617983373377156608282401678300373063065543082421505823698066176877567768225118379353458106258269260859285026715962642693811514722455106607027861411184003854718166493090821270351564311047447211632005630119431186769535896702486281102319016433684929433231950423338741763987258090941482281774203787870693633949666657389392228632957526588170502705171699270363440724829250400094321362361425895140862986754658131666307187908469071858169387846391550489985854271719735381957550880787835830068440031437553432552152271240677382314334140440919089575695851569514980573266110831963050128127617093452272094507794452839940953599710037246284803658651992946936302566904666089904770796810888667261485080295785585086288184016038085391101654435605102765321543585092005919719407657241608389757470804534399983817227120712879575443558423177092821896202008876519001266159264791275180166078180060988789557474195959841219711305836863175488273572364626115807783679549256366530454382963141193047731443243708519583132762027739118149853697427439122875444969694561619765501351093007476012243129982510890740241663714815475739120767540709386189512631182556740356056726132992267755206979234791678910483790490912959220831252245788337680531515257041052615591010003940036434908173377025779527834609026079494144747516230027859703563765978107495711078672457729320958002559835305597970765597737672848708534516091526255882633098704785322307705157101638713688702947824899179402321951747150420773013049066649127468144427684782458620559545297430906966466938606691521959073396153026813082844028798991873426338934026923823247687383182570265150587884353275209711393920304174926134542531355408412081125033329545645607273055220304887330779417310492187445796611124815968197826229425890038323116920539455372342182269260341846954558592706976029665680314960957574366597208988353496352525213555937975806540711810984646794955128864465368026825664441516069318842330852517296888084389047093983038404426569785456360285963493035369594793632237026448047030956053804433492933044964500374044081557570654821821451360582944994098967041536817247687250588745224778514765941021488042674590177781627690079887043214630954422135922413586125321889410108995354842410696793190142476939551178804022318540533240359477371322798033200137323120341854214424002270195880193560477404870203895725707659466153925552921437930250738127119184032371255754494328130651056578360820922526937129789963457203037366787285485275000509596253419876646578335805685178020341431603006872675515397838750757578689188636966957497405402031549996409836050975859688190974576063028915636596501628826520355181369985270455256620351140742280690591231845083143300390094199547044809463151394440525869925805704391879071175944743155896807451704794983980617993788608608633803477370594214714437733271739114635003184371873195617743166584421490927120896872104418053706874632504244491620903612433115446998714195521137983209539079790949883182341162516310907572413958339893511211106039413869856154617731883435869942571407980116928985644505552236808169890715867848786874754786640095900477066395172865692259419714150487866379245328490802733883938617771642102179670404264834728904671694325197453765347858322530129485116441154764173060512666278147257422360272350894756680149006788725920350511301558654661411996300048025428457796298695655478502699540133134950020280428007625871990198888505082507947759139798104079564768896612484106799183795589531635468201923390399921862778494557564697511539417693355264144584117571197511809282054291159803570812582784767960372111917966176138854615419099057198217770988754061812614681358540971027268981974146589379430733474187815757063146146363951939063983839193542568548866366078931808280786887331694151751643330192184697569774869837962617175460727973673366537098301884232855312962568655077198584573715285915447157308913417977689039729741198764031072193990583565659082879193360402109453330767264847081292616358011419865721578882619955337707545293347739976029282108433474536815971157101648695635144254778552045074670254775155740832274904434108424255531096579070278623489745464325361124276996736398394863935195092535700643108474417996818585395908068693446732401682139125736330273036624498987195030865923019342438695599391930175272021899480472544293857102295539375741301282296971930824751293062632545050141602361422116128082507355427611829218607443676609349770643135001180273345380764507577037577286055962995755551122533811966453310615237099951416298383152088347863922070764858783840602965464619596290203062973195651125275371118603208983970562219654260856834654912727456794787662331537114620403329871351372985874201493981776165899537160963995062612986246843432013797754358657426899795524422129976382711098478587801346117666134631304378171625867508311871655099185916721790585378071726251429218929224518426898924384767114820510181387787114948267497006074212538582049564869423824122783013752054106246691434509141361342715689592647573508219011056824337905221003955100064714883077067471906334766535323729401826387025117137882813229889414623694626628054172145349340060729404024427206331412712820766194736264007367220971308437095309029834893233880083460897395514278851112541167728793707610355846122103350541348519502632891927182443163503874494842315516780533909704593720502243017512989687439008144260438954408233298235230899354735747808237217387334336531689575799229826641997560851838912677941900570106572114094495728064332319950967052480177289811599601175957290072523589526511946716220897091014117910936619297989962739056660910799593709057388202783564091569289338491306328651533303333145320476941036906294287227225725177864982550643142703480684849588793717009808042600212338154569577768276545447963989500034734417886478023631967813223368594905185229868373543328134872996076531231377809739664633807838276617583310142860196627816809908251254748852621309158842056412545362957184542403577322799742005493892344866367277610930881105818530365046652171802929962768458135875875931453420389325575215009538256935825173085877169307662634361786120845286259910563995383484336428587896612874872599501004583217569574527422292156089030129155214864545561640439406082130598560319443766660221960649631871982234888865235119980361869761790339011981760010623063144209277129193439214759084900580909537873047318212127654437665307573867389456041554903567876375917871149277237416541622588907071523953293520294720947034897864258673789987029984650585451649884565609895696257826718111661440079365335591452667837931484356649684977686140943871350578943951062059849621772202689354572088163832588566909628972533260111355346961127397329130131961666156134926984992591412000472537827092337336673039042960010644483004208335170808199422856555191526489776062564091018315314104321918002747703014850580799974260982403123058128066592453302288510255313106249957368816005768228155629395739740374323082316725990348750599448787259348708896570296606572227945755963910116053757900638830623543700976059611580262412562228796717882106723634406621656259132866107829948539841214394508286576410994003472130473581490208757550429123323583086379777178154483548448387233439038068505895160686484812567117339978402418948959475041925128552016546453193000538182545424388180319705948431566906169847136557205864104078509782456266811637659390542585366192855683066217369726410987942238420218900538661767439001683742443536367309414597760287202987621049781662383253259840333903338567367292900562082787764015870222604000843287018336413069196901358778408628338232899541244504588038906311507384063594614818627635459322797510044418724096290950808385303133228654208972434641438379455061518316802002469217756358602491471439069443265377125009403585005316135974308139872166539340493673398200751132010781489787619283310058875252097926500412402361910902466843315320967472401922335623739509629869144014649696048797931570343836177588755472874000425023961844924313041675732220328067116853200284813388615698995473534341920070868555406239722065965763810051643501257243524490851347828160526247957956314437945851542869713651297952105011516802893918239636783249155503768961177847577210157777641788684758045737676307620887460091411515217003138333923724899003904024447819796094148814363626174416780525063925770283862225054243878832768607227917829356366041779372352270925520176483358593776924674282114802788745847787692522435864236050912835432074705371433864301248982686016040095534764248228335014413922321077355340886822890946347253524966252024386685848918455921021594578041071101795927884398679018854905694943817336580279324883646823496033819623391444683151459115223473945516946180282960181649377838002751302271785176258257006036702260247588488872845136078622192001354143684968337961025876080185874441729491285391448774155030674859787613230952339464728619089221366332451159516908836549852428662313161234664212028254327680174545973838798676790432791614961923320970127215796794392045555670387932803561449279915435339768452545158648081133870770537324047638654733953479611454672948033893220755118465161788789324479622786284971184572315541992500347112551574206784159469637185219978926756048225414054082725826849635001328823106967803859242509689941743529225388277546885749189224017457694588116802097964646521341474011888703276592526189418159326988180137893288694158433228999488618388516345677212912286089203082973264405323490653324453350621927924036626526211793423263817758580200768362659662381779146057946629697075218381683526632850451968874040235703155385238588018877415878008337624597043805129455926795358810875510232825187775712234466688190124706977329946031341533202375044193522485296772124163414108282614699791880556007856845435170816928832307220159671586366738956611652024009782814423275958426442389053077387516205631083689876661889056394148527214610227505792680526460935647088900406008633139479727335650268983768705433378112119008300270986544950581862651605357183507196662327353134877304092802712266043903951429276447035520126016440099651078861741667960299281582112166059427465766264467478917937303555931889027511604079739543578630381089803479402126135105790847449280678112149314220941857501261261499754245709074833526016747948694028638032623683530779311032616056815220553299236015263796779960490014509865277497515773512425154554727070266827369497371199690544355686586531606893785627490054136117750554412722458563024792453441580181346775988998916319186137068915526481350585519699076381074623851528632356945945257930672744537748004607275108006393601044159907293131634410864553950618898483292547652882871509912481417777516940130118385026310560144612394921644916257471924784501112368699824075668580400944331603055061610684425360634821799538718392165808024392948990604104013726634124773902162739851742871189506852119112967944808758544889833927252381994817332195450921376035141963924193323524531841491540610325938604030959811859484868701247283417814975456391125099211748861721570968623161929018508638506795558100244059711021280516660013530821766358118238652991649479235067640419288080998176267640586670449389439534904515660483599242357101792253773280281658041944485352210515618217510970997353574577902384724308167790805030254857672398319185936323625339408914083687209694279442280403803664495478386809164205681110774439968497273449300669124520764073118608288907122530015237316385626445016039256529826076969767522919811282844840791929881673211404308919560846268117030387550217515894235382502751269522631177950552882016419260225643225244416236989240372118270207556969595291074329054166228315998126286838498600140037737880309558301913250629881609801936152740273117754512593455228829531808190659282300806584779913601491780712455894862725772794136767614266726456949713674752151665165693358606332788963454611565994798649553017337354788298536916491742581480115414150908780209590535853078813272935934683603068784608479701321190824422784632265726676005854108948840012690239760995364986608146832510665014296539921824193769944891194979116327257476877765167565137793622088166867193982410963888518892070967650079109467295190771828143724108233995252533582765420076773711567657335066061204765279364278322844576035593080377072730502401424873577896414273440700576838652808575616923393194206955673868140440393825362284867440792538103191202466618302046278177289913080374780927921231630516000539832646862715973471670425246001805207414269102350869045959554427415822922560439166116243347550952304744390811249897548249883293280390581897600775557718684065829929761368754003353163482658630082970113200966648457035481550464112957408600329311945912792159746635391891341781538515274944677241934606344218562279747884468124340290500222160466818403713767628040123213650285207223680285440329232171075072729219805870454880127930197541772094475172087721739947727873398305255877994580776900938944454350160154246510725227651818395357037001551579787178635718186339752040077327105634193572580457085846297088196292168727688259453332544431130493531627759773766569115472042741882205788715012522949459788188787137680353872964337997069130709970622334255292873763529732995408618275686328387489808747497745257209523399027456939556031125140083681096524332305236527495484852218857051714762104086000038413260807106406602287094098013683841581209147874673802316264401220136808269900889174623683941751122849373458951851354328445468206286679814736593622889914024542540883356496517289955541347570989676999522527475052664371773539564959343552820338950184156319767268895719827859144035459247002389383889653881546444920391606993094978313600266287818544840428947846994629213827285240568879082969886933565075300741230979300436085059354330682828054492013734187026788659714373538957593998409810590756053007999515507816013586723490460090870178410626547724564201908255921030701717716066528753874388648402878671876097465931623675285393568829073688104509875565621189674960379641644990819521722373760170792639870355392193739662265473007217999072899180077363522612103457683591373668422581217103995894115841487137083569802001828660253549766001155677230267716411327071439579314712868537057552854282606745080173723582613908059733813132934601067621095317446747493212479547266754760033908031704039200946983759248604247476915322225661549644079406536021540093428739483262024225837401474062677220790857551344101521421310369984433617472901412727901108078595809547085760741092806782415288712188174979167839172282806977501013591640257524781582663164283856569283367339618520438988264729028775489231491642175506437246390916071401944121104135842173566166099047615923949151408819565249263883179831466182310077339802964638542742082102447919668856329330789705333825422590281869288914162184207724157149597952194683634648626868359116186002919056141445879967867011133235845664477628376622021259369064957838365640866076915446345396128772111367216170396289838086872348252101261649554283588602979841352148232351567054983658960499888095538648239157778517384712276022594542839149085036700243595467786990220129993811330937630081749294228294244930729995445422991947089530943640639715236904334192867546072039115186187880499087153584082287452358454941029693554033343853597703893620329718570241926207389415673870286566795830224352110554442760985284533772874878241284898609313725528337438634427731019278548589071329754832720932245685691294085048618521265752857003019185199522750631715594336104266444838341084676280367474376590095712660311621262982665757309860821370716918552551540869531694179022747364780755570033280129718822131962570569122017011522749735239032023939894314439599290710908544628567740199748568781804594647346570163650957655051659337863062290477541248551780352761867397636023430837191222537746170946553820918661999473905864000764771560279776310643475648086757585858071409843082448493680768949572400665628493461169617304605430971031127302521378472892708980531296613970806484811514263197674776373369059581140207861979091000439373511101549669939713371782737305679419865709576918674431614712660190464991903094312605142245290119501970424128723310547735360708437208658904140887987777138409243447379717296054545771249342384092921856049787997028408662235310074317647684379779316174376413408931871293993818623533452705841461083252342495386453690527072931094563991385819247874585240567858102350525612654365213439458564226007361667123354736994763850654903567933768790079784993324764016852030282165214420080342353709254440413373254830453088094149399140127948295244208540072454635339734508257846317240669574599211159559222771794709660715587298516331657001466463057101492707098611313264337813760401003414602879167453260283918337479223438413777070989678844904837397112329600505340027218057877160675147605817933575875877079770636263690059487708367882268914381720755865960588393124873702837741589163041417437636316554130070619845291529644592449650694779921815662042239442407511243634306126681729912603756878343465484293543519225222018021394191282659629643426560730658253684859137778170314680192274890565262835462074573314138988722935350486656357581548785844175099762327480525052043371985329901095246173956876352058846015951680663131596553121476365228225845595140917035257617898905349744767782975666394266586071855581786481867911791145270186123521319730349000572397476469479181323247245419999334776311220179524873625896326245633881095297398163329775696954178564514876154828313591782701114508926989252288192246971101560088707977505647038974070900068214205474354706969588481813297531428268678006417508403618318209402428756379196763533947910646151873972665662076446995715423956013380255092268204583583494600957908492697616236133586494031721066632554613182767452209213218843711763294183494439743484446875914353632887322388510517519539229983015409186061712671659544310477316825569998178029040232096933951656695268520701380117514926878984421320854630959463636855807138288956923854453395790479064228877288721945866899469399815858412920285629938685232821876603381809275013993996770737244680754191383262442170018659070192659488045836637860024351950694688827137102269201160938462986079574941002158804164819584195311731294412122794259776237788765555907290010063944265950198530408880330461759819509841478254836597438706976363270672913653660294427419477911742371920970041157074201912267229299077352330740367969488530754278701218716518994248934559724229689950574286545277318093528976520723102769416383347891457029188953224460316837477777117454158344316445842727240589124007302792531104839343691799343728122771503546126369480452414332384826910259062745614604610391260591266558712305593122486743126283140562312101152722072876000070223143312921449357947951896414090757602195395700384367548544800707418531583615755700269852429357897931709483327046263811486486783544532334101446167651530043295329367383866750573516142791851074589099481164028174844777421809649681816017769285566632066293058756530017693115950699063906747649809942514710780188289937128034726037886314496257803750943844275019096313456900407981935874804928750138689463765606179784087380710368563976260375348436535273948460545290067595213818666899408910190959283073671807559795135082091756574453201787169020570538231081868731307967606453004868887153536009701279916577112440593302577077911709575393156906328456335308170673687776889944137073811319699914252876815971813296550515245512994834782657268801162114749899906706814693947458858310028907691533470753070935660312978770448028229734084660007327806597579347892075070907104429770432626341371787362769797327165895676819544544861700480803921730897511901756948465412996335153417087773545460775006747050956114055006026202743798821393936842077765948310002873676887418293682540094320277559019748272164426359403478767520762871026799876878863481216546045226509613597239663008504977114737034442729242081288362547037227806788247778092762992266158352449316687236615930221015008334334360820660276565172413190920309776429979992563151606526945684605446169834944148373125958638799658467134997859127740222751580804207364541760412973404623130254737040675288899732635045317652065165962608050801565787482699512374908817623277239791812972196974469821680099209273201200295786567468536567401512140380752615726099785469078183604009233499905149110101131795640853741005028168184716448889677411042121574855295525442766656020851731642442019803737788947442228404673854998675841370970633034591874031127538300618401243087417705574081691576959972114466232047876967033900692473450467037932174297851106017403938904152824058696391009949492104505353296401064063855967550023343574964119190131348545684831211989134718786019677342804049920852073114731503798192468788674096403579571930680664180331171811487231444203189466316170536458790912445280658740425050744209814456372578454794519487205856671939898542382773958510893217645619168460218364646468319627105371509947389657821733854254339722664117169062512476459026641970165943102511567953733638803000468415134104611653050580996205407803261711087558427718646331351246406941540177510015154252955657207912698080168714569757214810673136694542354164686635471432406526194878002340011161047223715230361955197728257699221004896698502416637190176971103123551982619348862772018880146107527899660711233508397954318561935659041207927005270209505189716918638834392329567135270304838397615358992432229433117286076253447550370243347818771243199160758533542686861543071962953165923301430830300385931941098354479616928685068034688966143947740539095273289908102019596222366478428294796024733444711388523321908416136080386436445508750769974159593415481387930458696739953844413720469670456745866663748309834665537638179619233697833103103385775002806950874296013882214010770110957180405520640521591516129413115968930102649693369134438780174103855937168617489291613865649467967644571127840345133550304254772214633218088968927116378362627083363945502108448296023936811058540993768909861459302411758308044196476303466240786492396169352755332901706523313264462125896377366904995945803686641762639114281140185368024769962838538554554296972635541456600039988454134024301796318691576499436129778858306924404502286663254223711707164301053360285972331919854597210735934346511653463981504811979023995195057283210170252059650746310986489653906713911742407558268137489267492454454510331703043034693069582252541205110408393085931926454975569258988795955388605927485880610910645618617803017323476579619964076101107272957560939895767355203865663808300585234015725806870287067527037649651014015113280151599863132582690057775574029451244765596576435173667165432094500484895054390727515636498450378871970793686900472854389042880853468372827754459898351724046313194489627958650153126593916856834310863814973595553605575585682424364994912350097144464380724201130951412980166280103870510729881814642666841021892521869226778951230533238160461988279715000139564625988861688116316125142071416121332272227513720723568713958464189949593870735599767891967193756737055156406481290479902035882396784448563640017737941818708569912335408577199193813291125728026895059589549156627603791327010373697756370942576497782727515369968749135345705645439139638726963510966309877159332187579451980640230289151133104182382393067498279361222596705451848772652598645812287767818557614713867179287369194249044238002098895688200053282444258742873672568027246021988145218610903985507589620522638292268370813835037149586381281808229821713136761200879557773880432316486238638919644247694158413760845144946891677128458417294547162510147549727542159971009173044079736799066636078184087983203075179805098370714496286913587638285583177852548015034748316469511719913955989601687296117776305153476715318343714747948714813466225346671915796319399096270240049315358264372386480970981608296591312610066943346226844645927796938468987801256189162523471846502237487203359194421653741400602524314819843159871309940258172137559892712143336937778806222814403744418701262624228051364201998896082316543048596895399023612360952172044517880802094514857455965107213864607153207613529325141145960966570121306614290394665060338505708082446056423019420133520597071935578978699988666929794111822032778513974402326840196529389748428485507755581832933896933998245559032968157007813655422004942565681518722219784217770731353772938042736681096775401191691271760745908993175410318442049983262994522667866948731656039789513200499305980651344169827321659078046850975109852264154364354934610944473071184760405970900817645170341596643792243011442758118074456551737117910899332431704605044336063398823768092122451734826517769261471341938382805255724440482597899448415747060171142127792300896820043942505765458985557891441899709457110710545248740679861430507535263687150467821725247723376304623886069308011893268743373649548575028201569442513921926523169619166193130426073885533814633307694695159452348033525356764794911129949119845854263775001257840539006515860474098863303882657866380575816427439119733264814661431598619591157598930505807383667802033773744658171339764261990445131428340617164751476526483044795287884479796091404040592389479046957111661649522150167357738437819315593744614962155590001352637863117941256694536929541338357577734565180603052734987592858405749184107240952003325415218795573973809869689018939944038967228037034496382009475835562867345195810811073525680933323430578323955528041177967769898840950793110132265271523814622976378938488697668322022362345891297606569832359860929571855027717790926035933637453278257237635198353300345910804529002829700309657164727118709954681652698546529522452996097558478432422056592883480038831285435451769009035432985190218490660477137424191789112419115235683566535172121594126231354491093256237123264226809529410129618333906260384011776217611573993456125583028886921490517574402937947005976178620955780918819496668968116258917322163149814702608973731149394087207275125786732644972266630610319220187059296537574866203678844901409031713098980505043203695168069764743603578463386959771200960544930319763814049494931401804962103568487395756257796094065568483171164460755365900247343099790712297882662002862696890437309809547526542649747621470504497169852668593764729223052453996621721984856395488449574159525571782188816660135346382535826345776915465103021260002659795138310221186210620329128128142232533025302216133516785754419578958828729365791592880526454779068254936976888987917599774869405310864011697105473178800807284599616398289740854519751107659764323065687966025831593164224378232797274301036687898186201804385749428379267541118070976448822558997701772478339724165456762437865454753985829705955337047982281667855183122509796897285679435286748322577328736645606293237733928734700791463147632318043793304470442278026141288895956413788372329867280992805297999075071425964079828562954154845044090367777178715654650479059989362935349251487326092727754030708766116725723586865061207944231936886084415688186668640022429668224945996043268949479258122236605428246905849412753161253087067442788912498899571016265284402175745428166103998778743624695729674621149839076983929890256900452598449572976091080707754698369920354662177433171789165755767726907088960726515518037003113580635157775404039362576326062550809871576176298247587460105542913898596476638660507095684090861409766618110520875778220329351668823943350281505251229408717734356681365325183507363536268481516309571500437190456129151004244018474757613356688613481974183651848006985473076195664326952078558499906544039153490879414808677267569341955541171900841437339654895833829677085412460640674601183081936957974945361998455903241179625715440374285724558373135367465156997013654419481666469033895761164445431287117177440699171725475026599889778718730118525870380660512541425959111447344380158497167979867900844315291665657544064279526923893333383515208299518223927549429509539907625145987128507385961796021253593648016472243357438459059762788764615498583684999212502356844246303359493408048660676474104813802787925023341332761780073883723367257622235730780874274671700883986264244963214849555790561278520198772751586916787697450068318763447273590833850115139939183983776213151516260733081091442714871474997061397722888869042014653855465553684037087265404189885413194873605555615476178262092023255002744524112596222068134532747639745463214618327037302880180010345472728998719931165658553135059283268052863913490519103488517886091171156335395284672982640025016670169995472188600880534456509658831871602627106781080048273825073698631536935155672013180614361448584453115858215772313616930868949440254636305876441759789808157604103339714538731011631785947657986250173351139096775586825569659279865813168131136627214912965776815292120914705234565979943676488604473595755921642342095543954053506342773916659717044532666172211321748443087028393499697601036478085057120966850856671017094574069104578897106621835879502203189138654827453555515048748516332760910801851693504432520219086174125185680433065222745714920528517351485931611198944645888911389338603072924044103866201408384180520873161851873410836112825848013915663409882511849134997235273833131195192279397727683296445500454609256559492885514579704111535052344535504276324964020488234061118945894433259061907331474059492766494540808099194140845876933908985681467192744400448664168136261459121624265399344642240613447924704244463297826986370775222833131713519951194010734141142383725238242105869892847977261205533239592035024171763560054134127159156768326831782038968231047126173840202618690113326070419001829614472192143705624608001613515143132840916245240183613344655009967991756523894069835487431198927358541107133624405395348402793917092120020505088162233223221069608929113251154818879274070845304582089811968805146189700584988403251325208557918563904581717259847110730504585571987593310539418651893588730036243366726560742105128202169641458087983975607078534223054748407520107297452547629077412458668535573317350514679267799543818390905610612900103712976314509499033806361527527462363892448681590467034541414414073990098227799759228052383344566601841639186026252192475264742423393007326959943812850665877773701032300527093648673905619291706024563104170134488292281539760322796373498543760204474169916453851464550583031622804017552090333090389459578884685387577250879272073337998263171861033950103916797397643381753658129553929599939170085268048670404810124046025088053581795829372342729721794860076002400116449006257742245202743364264838376672413312985841939213220052009725982780387838631110884711248371136052399991867964372490751170266620930078994562308620877970448358306227092664460078696872983205289244901292642789676430666940762258586445671462195623504049303824444874815593656998235111722491097609061139467111886607379575265868571053435758788341995575910192134598320956426526506453866495266737126424750735187851012199975146583282857602646345093419212653193821745043432057386347710431105519734226114151335475270445182077696276584606547310296352212390942311688017896819099412662202188667965113247399665138348815660148942910127233109171607949934371144360673876883154876499020207778495862326197954226258870697439232778395834078732076669972716394020792967824572740906173656472108696016327201758001372944130539214878048370962807370783284768160638562565856849589690561959147916027101887499987208128184715934232476030211139117966445446816902167885233517015014855318602578594305009602540346428465394633484529366414491163894395208535227717400715569377010526826736481281056513761503071526822802002426510203563291474485307807575204657326186609624277045763154571451187596903822929879280461365117072039923065973274295627934847662894333697809027331838330277443805999557429034685698749632956677035769645435063513929876530238068156560117451679912015593426351141696128019701810278005623270387077960068647592199485644686369511150749099423236504925361120782158241230047325566040399723320801124904535798275775074155373857774256898445177382253672768541378650496649181763747692351785581036707727588693743661743336045768109334872197646520859071262794003429212871118789168781781371979137040542891749881747227887042653313608136497644785365113810232765909644162702570748967030269400667626976011041695184505835906027171189113143819896468512686115373569460141495925664352792347929114260382971728734712388634222092583905518035298698956782240142227627956367939180288897938248946991114000986127923884107903647823470247810951769398438933380865257792878019959094442108794685165858251215725610372575577549535730362375703291418313112646630061964369694954130828907389943546494902416975898915866278584268756619386107820866234349836056335541095023421477723317348026489131697485486753579659312038137457165371081091167320819631290898665379905891761699640502868785152803462236469734236172633746381114352648952914066186618477039555547530254103393496878240540785358544972642860430532935442647028584103319355695814456724025373491801449266206531413403586005656980153473334061442423823489302304425328526149490388806162444951843136302268279634112196564656835793159239635225139708431584073016463371412741072380901327773806616247523949902380306535462240146080493245013240639375501198049532867639372210076963876443740431786557813247488333806126910825752515717482566235297440622158060425949377830204787852516165212155858556330292492681631235048246801800305108272417302726864955452940490471950486610718090156126282390486102917158677254436885499109409974519079283190649718127315473019361490922066565563332666583075190418915246749538844720065031546278560233576983221227469016441885456997101863859786984926320867561848966221137862690215235715638847411364270878636418290947295946260689369959467826008195082937825794296505973646205165892089252017185503206017331990950775062998914917614488067998292874477219389205052394474839893682468397452556928559356776659019717378191053543701129711173151291741723395313837892998235154969281390148093700623008220482602808640938983587634359388479204190502737859864355714722609060699953730679960376711128540652702966278746917851510293362149483444121522648671421709405550759989682553384887036587917817924921294263685722472102706437189132936193464339581980102567733295921853196795603722200902829382663714181038329864201271804209054514050302813081478810302386986255421486634184734830655648349449174364503532160769247056151089247436607433635369808179077350336194726255241183220760754411503092807569807526542521343889652864560525274348449867946685591889930903822894719321720529204670282379531917376745819923646146426173162550665113797980067456692675634140311501522261918175264659825789393620435310938210301431156884812428026924411149766560031174710129898555263208502986071073095084247269068513169306951751391178016903160949806220731316463344235789292156429015117619337809864912124930325748863161836654864355058365118370018385260448501111774131356230362297630815682133522640016425759347385013578267540611241202502691311242666664842806403925669953666420004222227544090536235801604046356767570105633133986640078327663505179641391344891408771594391515817348999689181078482436081926088539037595099900304505307631734265652733319993649316624374024376255277204444871022455330264513853868444186379676171331122298660159101425232389048619927365899176341971254918675430120347744326218031995262177828414626623602298156954853512313978038998187245423977102199171580591766503503388055960414323857630364012207151343313491848510055420053606204693145696298107167701249054054781677499199062738307203008044148926763334767104664115246900915195675151353060788603953829924112980086660280033418613144614554598279541338146509692666559158286392273177202469751574836545355289073533097656377232297106988389597801917233995490826984359948977402439667759761824482516574647248370571958920653110902456586704735929069692635389676370065897040678216448930216459167855412753844524841650618406601794312627404019409543282887131108214520976337591041918345411801061194344562335672220749111773619095264141958398944427531900868554183558114901388928452832423049844181728107974678749337965981719115727814273894654890591957988166841194584632278183736600017756179836590191092282931500399779250134227195687717866709558037812898644379652215786870027954513631198549841837648793595165376393613285562276174077993687778554155362150701815557512385552628704506352123373530295837856801250133815452744893797310826365213214886352651655940946648150136150218652967196999844601145011753518693323108678876663483643766059189276162665944960365137893889902735354800464152049807702816812686778524178050652731870470551916968931641989396696303537679750337490040022532298341761402716948133975439257155790808348602346898709363201509031080927899374059767682475028217273930704237587576505792127168840284259455490446822442366276985594082459129774099999187069665813923641999986198500437745221456023047651494800187919565307832223925315366798445607512791239500259118151264484941739823857158562271932273533033586075653256426555859339924959833499147962010090871557751081842593764466506234784580017694483117783711536944395002090006183851945814468578179047528929514596988790204067003997617587893016128422897277133268070245157674405498606729391325768730188825649873826653550855264153550276836878155336181951008299562278593824655065601153514917763735413926538024114166871275086788174494906672178704396133923364673505722121972290321483841925094707251658571595069963817417039415164997476413786590992373604674984025933694874284671065745313132551461484869842443158869522769030532524280970396617636114775473939666246242648470789963664328274291063364173796245782913856553844072480268875852763757625854822877163335758125610319154813910123474364278938517343122459336836590358914001623925352808044295131821597876975211522232580325171890722214647329652217764034234002711549273352496381162090504817971888855350545323061334086014161325883459522390658478438979035784272705859006133072959833245309394466839351470088700004869377656244385114717405605369244878724046290146386374015899233510659087105204971642336477757834820210991734678780093868720311900335805962840653443711400765487870943416225017082816675936151276295009206525145179852240922530541749293415381102152807545732364175678037649944829519225501618917441784148727361345466984703421239733076443510007040745485912576530021998157580673055380993699235721978736598070331320384232038457302694381882250094255920191161050915205385096627003569033279627629239927680230820166544288459954522564903497645574099328993770454333098242771885191255154557264708560001027470598259407380727544968681587506944005166442876040910656425812323351353236727120048330533605396756190434538717381452804882197454355639169682118396984921967288938692488388316502662432628724939344703934433077860904417695520581071624613068257964823084013111351390509104397331212876372386171158095863791092894116679530939002567555718518237393660379399965142578537742900448718879295750272755090767812088793235581118687634784047067418539712677960799915822676832300070721203516645647273389899228309113870632820093781024270046899312619782146340602140113612537269112630899844372635772214097687521108807827917871890758549371187328448267151286513465859460871833473172511398648707568168424532416158989222408577403129371233700283977308413328497523913375923031568318408459911834616010273641032919854485564176267112807404560890104644209626863442617679485381401266796270630879913868275431691441345548643192038148877485902931859184435208405593415641490625260254456629309784551377058830115164398435002094515357674559781193254689939761354473656814600926745917123456987480104779412939492912895265398724563931544937442243910858973777983713829301149762278211985345158182202052888462335635313003793031470834237398465930149881205066016331433775722723006138486825616982068407348748697975310836959439258013484104922391903957480497501696351741682095286775658572636864789155259632755554426436110321735846058415833287165445172016214887825768306379125424643528499881462337714172277274606803262736599538221725582378061952903105954413756015009293691241246369585215961374121590077034349558857008255707037625421061172422146754562302063771726282480610895141734537536899042952313079411512204941341571774537595394108878437737187037772151256911283837661812161509422607409164963523462336243342072137050477520691504288452320695971445935441558828622337615892057203506358245943947980653628910463739984813942021692777464039761325280276289769713377419042339348182186230300890208605611532553560554593242300156700413787245678232228943138174674720768269270101586432937507229707396655265996621297308607471465656288480311890384706979755295241772704567833553676310830036645850853671674525827567516840504063257597837057336601481728236243731342736249318692568484749361678824488620804254304417813319111843179106306607529341229781370666439810259330809106940837471917494117473146179305732186586702001056800462981086724727534552157975346787441151487752552645887582202416869005454147072345288116191714253669899228552247497147185268808564554873958930636289409209020179358120536674310561249333092972434824695349049339362713056463555272578068516633444692930080151327614313883836602304709477063197901640948121591330628677505479463213807633648789912030089222808237764039160457061221013571646980294867884684711248406202509410061002226267112450135354752055632072449988304836896844722308450928097206378340174124043723606903536079170383155793828028424960912749382878368488275011184725963306684051647204730261333720357152223938982499923399542558276338899914117836666337794698243389365663791582030444107819106095755306593941994321827974079949169243856592056600790266750786896366839774217240788100592906960473834531229087400626535661815489305096085640602560614754957146553902412415843183579960072551516262253620012493357015286946818733409421904473902978743426491294504525445726978483328163479810928993139397952003534990763785617526167660107716838017912521918344626937419138099818897402695084542014828405882775144326296528217707303857866822405424056649902038981400563163033359676994354558982659637213045853333469866218555628237705303073411612204828681309936695614635589223453159167761667406832565183730519219118181888041145529547212752080627867248405688007041992451395332372726018091028558532195975789666970284712649998875171429881559413128180113164452377244720170264935480726214793752598597687964517141888209126434387541176146613913955519602547961224295579190307420014063938476841282531023565435561194914381133589380963768183852535837633795056353905154740982556292100846013448232143191077424564300861043815774090336480422293402389739328307691037296891496754899471582872053863126731781228955134017583598070591457098612773016949822167453568604205508828833485952628232204711321852268444515973527044583645264747746848031978964191882462200166193050442338637742286859715632347121584824096400437102795655935079767381312978362953037049646097981006998441450020640015989170545460617798114841420759983078825585806647623157403963503078774294586924297693128142984040349776111949606537504164110838468834712944095116032701032599075851408812833807652258143423323759174694907873586495163366504568743061084392169474831968253475921503395562085503251607131617891639658655888779978249357518212941733489851934154826008845555187795971943566861834211298541727832684297030048729907921336033574534607740615269384605104345833660911506162481543689735452319189027163688657267347631471929139536606031742075277524861869900587152125127763392300798152130626984803618143056851674764795408242687790838456082954548072488061879069031959732345751943969478052229574052640908146735678903020048932308907306436471375074388230157555229760410141589859693880029727672831633224209176514776992267278138583149329563394961965849851807652066319590974044953447447383063971470936832013966597993758843145119621146024405997917160120972566943443369369102936317130129688849026333354837846247957567568725203143150790278889148775847919623657862849292446578311009622124147349004538007456919511632759748160150288960570053520359032176273269342056180891995874528651101917070510377746585445641343296032553711389697826973217252259819024030614776941882354962016078773793867961373826401616799036666163339347547298935440803739299438890319577214013646384407510790991540006733709532620590971062065828877588319780391287902658568268604814950993241851434610871647693327182693121520479404222229687444197918186197612733948784416589903953710664610557984620236022028670983889803021276231118894733048797198021199400743713292391043539766517955389358693643722666003028246515418358001084087088909470902784690255609596066209565046965247588482321146046067471742057764187609194948301325169232862710459505394032841890097521882359205591597735523094326227650164032113616609948674938695385498058650461231433468369525883139899309400544293151367324147042594978653917052776880166745423206898323353374509617779521685784961527127296322149342944370146312418992852048494978715666891454341296624785392713249802812714089103909570408117348237732907909303725945888796202029297271352866808647801333060426187308445075679070342852854832406139905897716317216209692684863505884940418600209324410590541387089712420016473530581832133374493353302397609747663750857229622925524053722192788232771078864974426166657912590195183121790176421699686547813195863134373114068822604052866892355696563203920461909028864394736141656977566080957420993324985402347592175234462712197363138554398931049437485943740636075205141423899465049766834180081785913963378389650241173071606687471021606213916462515633867822142489595146537299590529547546125340181153670661114446188214610634624153553219138975460326704290868510679317648651325316094796714701646299625354854760773671304649846747171486610761609729225020131278779409439648289445418769255449140954975302469271967322478722414163327461239974678365785401866523802992855606384461219786975992057958197303202587442651856269960913157581419233589779073123571511615999835304200178082269253310108744504558715390573271305125123569309704647007485528380571871734061701499195863805405572376668301644238577660689590337165731888795185644827775883298821606923157364733480333649142576719647503304547604253512554710874090805659442073296883149019514830467341804224583537931130273963967118455452760172893651071723298702483546750962257291372221702013411736222018086347650895771697922320104754677985188191300725908708072567395668818399292155080554260513295031768828537181148420041381424637517560176768874455390864890474932524378866085420211404702387304837570295845706391395919268671194335823366483597124482990647864341563021921991243012865076888559971346992819363528713507933765235148251722085125478597375653028835094455904040953825350303292383577830964131067459459203932799854654212650803813643551026661138019769803057486237177491375868158458260929828918004009380724730043799139318321673388822701095770650884963945684761579784908722258022549974510449478260696779103932206402966071438744186593826420519235744122397643645477116554753656480509797875567165173754569600276535447283709788808728805738948927863640599212062309485254547333752653752201282328737317550545904103077868540620135815545023710576924328810852521820241757503851404666914573050819267328077570154717665055454118215966775752694572381172843436324174584671229759117798998210339820701997056126757684940821402330179157085891636301314501292810702926687835968255555321697087697668942287084072411002657801460121311956396171057149158031480257128536854344363255077524393564298688349718204920973875228693734507142608119115861166587252812118046533511271756675215703648298429307045261095211723293511997021554031678474613013477141532098149723313211611545759810697179518500106952109924536666556501260770729481657866881975214342691492218765282117361883814565275821330456139933762767568258127247950217083507374588544348777914788578377969821215845397286854516682749382729210217474762775015024707619275383757213864459473023936902223148702445375030263815930081477376490471004452968886191686595027992313598544212308593897996079440097046206706842742336615274274446488527852243510673887946403392214935992010991773863473772983664886442086201910590155496157724164277056032425874583991217782767739900076138714928690917433390234453832474035377087992388117208368824323124453910711802298997267183358164647674039490917438149422969029798616257953278532513803198417951826997777644398187043972120969686923436436629331456463483769538242647617774513874314710390134866891542725933358525487226818872168359847953747270859548693252024066440610380949235270908072588134798747991387718508066214982366563743729300069372545408304348951025431766908477520809505665597659798882570165887863660032578337567454749316604411605967890532467814821055840903675713898937276905189106103301562019015044708134282841110451550161792232487069655577469922569049438485085270492287363450260637698659409408088012871096270113329191311388537014571687174555126383538291059546994705997323734793371752021026882702814976480492730301757690457744417502655578016941741249894282810464990028802095941169240924140976788858611093485603191255404728218013235591538592386355383622807357187178929387058917921458757437009911589988293029254221652206152684753602302416649189409354006245926058995445075675749570060953565163599151930859388137155202316753690582860984791601456411888636628451978999690738927126673220653344363692096396126004689351076214663366489032217032032265914416681790188608875881491117244084062052425983097836792829189200296029377738633785937552156699582986784962712785957487516324071518053955627484508528209349570802993844404626462751962350661932067536320023782761405720436366491645534194392888978597037003855028369050189195712139873804778256331191343018670609943956499216882423247756273754222750351788429132390538858568289043726265200747975284914318464216851603531854321055990585266894160952507684889346414289720037855903915323311351494962800988141282459143618186995911955144885446907656554870291436311099455968570671272049542041776757622509259354269171494795038187707154721299632382346815777567512939992312370452707800688885247818476748872571078646040207973387544185631820681819165831179763342460846386813970625851063107137150106990900784866851586228613254794388229441759066051166942273041760642721532612936800202969678221653043342295402613464185411553427511346786768836827997246498592070540057783714484312577086389388728159796722311499698671248876300186681974900454490766546592697390218780648723435615864563930570366792062247809729768993884588066432558793785126254252116946396814651421175769201564626530955565474462034251158677188442278612773468652982599932635213523100379411949009617402915910802169302989347904476398661973037412154795432978517092817911683513363244536539518604999807170048953121594973441525301612783772921189691465412687730780968773574947313350382997076428101875450253017490904086500629160011161627731418788096532207166027834814222480587663935196457295388544144969684900782910052664211200104734426476890201076992211169329449727672322898766535279860525511082890966986605953951305319131091354094922063312116363067969951369200633196987635278904552023975371814719321571023618068572742534579832556123098666885873220061318823051229801479504307270390509990412973597707883317087489782559751231404439170496722285884878511011721832598705895183887597630040628305255131208620945171396520847458829974380711528740098406288090942938486798155262965499343131505490335858271777433047772073236832376809509630452963631158694952167337362345536906250671972229894362097571261672532037210546074215284726691406240207429679131514698931480425563464336981772394893511994055826446829461266096493489016556992911399133797275554593006668424668233904565125237408993765784517234302122489826202993351050805967934421780393256395760836523866244926202050181332091562898558495462866170113135768657601667100426977748169780012871644855419516537463298165308278525017891286256221884680778901159586599741660573248751542653369370740676158660706839554083097893887463576645605469884432790386398759329589011880402910287251959492501544198876638947059999139436899453277304858451142601497876038378729130614940534546153376361273584882260489314385116031761822253699868630912595332739979084654692529123722717063113246698547834070831544508970816012563260211412330531209775312762487159825062816506076047902713762384846811704581162645410328357740966185561439483573837156963810589750120025268839808184993977572117625348542452036730319667682836240570376469278662997539187621685254508797657591034576524108774025036004996743711682324674709556757025697180807428240235623632059666662040994846201801414762913782929177956997188426983049961578723866365710848297119138871087304232226523558837536029883309594731057886427114278259590240990486803934490987300085014229946764582001331883499383299811123057008769619601174637304590034355536018159183566299112695919005260414894931983459640056906536091981602015785096290931640188419660773794243500166358576714011291012581420943959456520799557011852214330898824127598985864834825566083194273695831888899381773907084537405333112581374683947586426497015006124880066532394657302233303826086575653112824201481737125719966766659640515595892081167034556336912912199061111037428211508844412998216207606091799809164427954875598165420959042496470529710212717605798009420132813224253023315902818331787987657360753245364413762694657583059064728571391878173571414389944451094544193266702543049334415113218434890946878437477387681827538517720058681196510290550084197492088318199039049676488827769743633854637428397535017982213519614430777362835671804363734846415645066630848066773613773926721950135653203500527722386396954662845740945151350815747033258191067913221051322016766418208994559628433187750713733647371378187846567090838361237812794165340118231228521354560525136525821891190647441761726559159609720741666750011621921906430660749029392582829805830601378954429553311361567480936513574551358241717992180761455822298787578012985334680358946828346086320761561680565927114992723165194681152172356062811353129742314214218762197688337594326879672799435819941267190331103592798044646153438193037758549419546045598528581394407867396241818316035244331909961412820413161946988509788891860002892467197983864138708566490606268668879479834543578272171860268118701413301960212874939013300328516363523462022547865128515980779325625396428265676900610803371579029110337301430247948760960079357827800184940608304451498419891486454349203542547491075296991377383927921046561463678306279913360860573758347405664623871387671015287101423986223111533895521266147900604763440912271541549155817922940323664319281132458415934364844799815772165628424221701241847521872270080867925136452289295559999065677221833197471126344456310409050769861225496694816672357233569323895171846071345434769878516263873973042150976535769877395089441316567711755409091524672333144755296833655936183302220591668260467898252355740868030162808656668878921543124702796564369686989735413659736407218795743854192214015279173316714897658911023064610867854142890412119783285634144744835858666921150273329264558967305164524719532304417593851460079392041157175496910903310890335864287115002564732589275941679068306499887701862563998204728819968078990297428037279486778830460637346698317274135786508612268147060345623065534660465117068944349976578052905533380327774276817552634957839914067082026768126999341571276311850847954652126703827888401549962066154798736341874652019819281855954631523388941119018167812394994469536220898140425318876028708229512217831924001526292873126382784389180803771566439747910376457930570342871880237045253582510933528034190209798625468876193394937314867397516251171209438108727179883909869574534064637344323493964399798151535673479997910817409574833607541470059087902561659719337062960471185828837316918699200767266145032294538368567297944166984111629301240022943975029158885108041229151976167592312183965843358652011822855778534681287491499022856180857540913608294279179903111100205965450387658626165507047925326488822830987630308069756890599533283691691623164640049945045591084391885124210004544495375431406409365553499487127232061587018108704005141181336379181549120693373617621830940462773075609787033239870807159600349544805737694732752716801542859579914616132423294730331525789712007875452074443066732034435423689879440812963574458787571653740185796796013843270677060718790434458652212367300074095130354032765492841763356384496723760354371561259235859250561171402479092546087303336543022219413336831386388293518993151726392154689163523094324337362187373070281907319903203451848371091123097726673027950033464070536291074690555040557181880664217726514680242288405788260249931824773168989802392202522833197895194862366094187089462276383463420849031325748561307385007118508108329131085525735555875719486164269976096789773664127023243658259956738487309527221243363182474834899873396733785845589939420398613520155435036449693681811431026062975908585822002958298235065205492957658920277784871541005133369670615234663949688252930141420608598432888132203685771809048861166378121321023571167420826465838629502172269995586261743800310218284058516121292945263830885990291734644759955861412504018797712821371431307668156872057076321686159591328747517749808618560249320362071701259124596644294109842780440700142970169066194237858380882350103167967450149123067224665775686063655718507574045679830713415344639353564621013029694151249715771426226131669438489893374757113008105531914970398947461645984926678223649154467382831915984767896324519002535737876742933085883047652934864808872740019890064319605995592533688132535225909574819480839310265273465339986518255049682877342481637967209890660282956917465784149102885021322922691682866068358389308748711406564002636072765017232818580353830030860279388966602303341290253780855723235732300676689290942126354416286315228153653749798134992086229274065649716760474142320513212461706569474689236731657927635419152185320493184945607714064453680387012425140435759822665382042535925007764982200113727748105860843381436541791197688361536373577762686464877235774084612053427421158857082588374520016542117756470198575810611913849813957160542349844650782597994829869369554592885270332508182138541267823816505903199619762163349393983145011619804947026205790851919370168865349162442388962218326505967094525081109083694865512405045967661702460293704112688997092701205718725359248529772043049320340279247750081382189476868362254971688422221845712905232031617589659258189894091595912438910340391920332142050361745402560835558194273122162442549612621913773637041288318201175440857272624463154595324041059296500063880425111018071833871721269643501329726122173568322439282457762078497334636701505907325550557140110293606284958213473487585623162231779996763591321349689807417326732929730618726615980168708540909089400161988385771991942407397470543929817672048679577419231774566946731694903857802985933260656196885655755388341408449378490117164145545970586604103465221207687219552414614006778305567121065842930465703158715215201881792775519248686393713325492443884756357294869474952623701093651312471002214700485427947653228103062414726803215664463662397635658057342003791505646405407926622248647061769472597024787551035179459294280201655453769882979298377179254858781521675297004205957813445975617356390974211709586140874399536911642427930298994094398168451086603414456263033461708203660578781851576492932853351396337305845214575531274231442430391443319055206302031446281251357653388622805388376957122223321966709522738231481221478576957976027541796057609598059667905337756223920375235751749921055714923571110331744636194699520178149174175567698962727486696487265069896912625519748569576398447910671988695167005822096832085131372569881881139730253078451186493899696342732491313271647960403219520263217965913388206840138703395074362139324306883451069238869909113210680725826691177462246245246993306366603763181399365543518057873183706727469052859024032598455731663927519653422833710793292883398614239248558962605823436575994015614612306244101936090088598854067677183560604887764371665057875940482722174618530934030548499085639328524016402368921718256631001600018609883970234200240602677232805985214814485613504429898471674323986721718869254506304630967540487494365348343910202961804308353549037226164798471443495663792925461741983008509820077468821107511237820161385623593129058469619116435839944795961894493070555174277137058537600152561050396509213233699670034339703776825982876919610326075441097730994183837584853713362096646603289131581937390330160567239119585970513625039653710519191214714322913348354629098360527202434551750289397429769260054498864410882140972097079901481405273853892590730561080753445315719592386249123023883341032379378627942944715597404558794103891160855963441605215132740982007879771601848032833634356974508673024249783024730088190315562333453010637128343693981722006796734952804763148795837877321920922235770853976016402241118731856339377022117531148584843232537184913659090796442714159263119220464412761796098204501931110822125283713346532036821433549117506875533153249215784109049606845519699041432043664556342527499562254128120699762525994298542394306074235618041333685696341472601864245739703021847701690186446929563898183820345319519644601554594727835901454845276833872449482574909664261972812822331153934095739338502699945984456030214196029163067392040092196122733309593228118495251844338243401085814972850259960171068644014654898704719655195093457829353481524164726505318776586085739273436649427335305677071794397327263797405895001821332639963405308105103628254276317043701976258429010569555665535510909107598112367158804877258409565240476275325922661613159765683384605875840342991795206715137892561776597742483510445091751157468790541990091010114171409933841538004419030138417462023329388769032280190658066413875361053725658505766589279588301475747457411441187735970932827999117642332030611874450981537540275598459891572058549157645180838035942731024128743668449705859652576247401685252819775034451227157076225631967305184846722256304158150222929960035235384299279880921085474785106999434410117557895682531955868945307930366635612598888275044510810926403262197106916590783852299025868878103711471056579215948211828572964670708688121089885956548952285275781368868125323533311039937741713927696901903667227744427477862668674457239941238374285386442815077180352540467310510072207504542278941999083595089548790775449703499999506666948310839409479986988754019729148217839528951227520100587346066187748820429169499475194819792077354661421053067338608616827560905960527451088473432366384555454671125422421775782553204821629763778001373524631062941444640764916497102251694664832960372776287780181011997715234046816037329150762319586008845732247044504064348201117736662639067152800765939867284545799738040802440160555900051636442063232805112076441520400715177073504368691756650279035190390876788363653484920836422047325131764054570758921063367246067875634080056567978989307855474849122533742200951761819080466248295180551320886538470421761189469345426739820766697613385100123966254425509625339471693850861060142729510900309466732584243090041176205126095803491301593054565887233595461156275921631397454519832344408189560356214047410214757103360950925431074193352719739662153189116481731230118487732855662750841947389579110215952263668608891144953054129465515848707026734382614774044378212815763291813744609582147466356294268094125747576023084170062001781425553312877553390100939990745763167975766019842093057587255877864002446004605099155751106868377250246938105197460727427414960723514421040311278736086593800156137629956236322138246104631200773198923535515393483974405291562797134336529644546484532034875472727727875831838407819720100004781829248201197831419187944125240689978680632687507423773659104440570114029870136766451896727456492431102384309712713361494202345364293938547950187203270579771671467822050587830174413871723974545489963500758032806231225832072672947875749221539921955002228031040972522372672584060290278312490774069645028753639354794806730303658714041980542998836322326006968666448431262641179760617064048481285710427602745590149470764184460934508878533562178591017289687627968198898291540280950320207328981575778776442378767695113110107630409800308481872108786103949546220500463008990206316051335303438273029771130823769452550337193041872998160312702503414105279994758401221629045396019027310450177197027873606127945914472784744744337757239797856394431574881868203071444433466834322030710193479942681798877783036301307337714925143978031123202274159399744850974939761911541667811939835465194489120434935092213776917199904805407330677351417672817407566195855514330384259028057282462018931161941497714340665940157486341302078101330897617932039088382336941870522599757445697425275131267797703306208504211457721605186937815078588299227634564601573208558446503990092136361645400108508642304588686093311851321746571124616078134614257980590862538156890008334501659660489739317700030653857238918464735890665468654821411406516529022454692455615416981301634265836840241495628466092059431752116605806104274885344576643041835141061450842398206658628384052043932340533420390433809997304603330261243119673069262319417577619413621670841789675526803962914236315140288299448101288538762509972733058669663761340752701116249862363941673171196078391739607873551694584484207727219403565749271103130024702546475590385363172714687110525937649666160581097664485828632388512728273000456096979464210177344272312171006399719800882300278428946003187738667447479349459291105923232586017008605043873377258161911532315696680341908108620567610376606636083620660181478411982071888054889288470165906832520584474878007207735042928630038437541393177237418405646944029957629552641232842381818750632514238356461745352172014504680256525753355162533504218181749018279871778903264400403924733745049394597282791215296377682194913185025212907439754559955720656384170383567719431305602876111744589954211539612949766751160666286047458932567507619748543299891805794015959680516186123499964203357923794395195170284405738734833887341305214550581788633951514061159054017521997866163870542288670879904049397854215056223589026452606816724875055958294856188810330871705793303983920128221721276152273515618697653977664597946507372622635508887224961518327299121473302707076783826897133078113071715411242041215531931343269263861428107812901849692395060074229878375609426600956197593645821823390219650232804386471537506866754430112829101027429512734883741802000403582990281042651013926924025489933503582850557685870140106905713497421188584773269245929643741797426112243715590869563716787574482125068900138909033395239077593963305022797976795325961777877781459818564615073905094140005168651359128962986190678940926369791248779015558098509185283181387134505910068002615433466211838824311292566014835438956869377073362123394098042326341044612197094107259448009372001719068808672281384295565721936068634757339720630929317621836100379210587482010836213877190717310726885321013364552511475075274070335626050105435951900475975885550367430649345248237846031698072757574814693062386699801499209202990803861863403388616816793180967742025052923064443108810320324867349898760144954844204587462675291338838114146989985721601660831704426592376980041579623843884476858585964771696139881049110181321259148544118246439748122450070129185923754486916594117405187336246775218118757692264798004862576876696124356379858793851972296330226540884910818997086517183130069562347150586216370851284612643896038358602760776046495089825722821277789858176532931907908976519908092082759913580455455436055020059759887311707475440822566351854640157409947527525614321714317676838471271731155430016515314987053566177256798759552552451695241084983929920395786116346627695065019810137816669399874277178573912886038448022098646363141320964764896242104838132712385871605191385431077000348059857170567589667520138655926489320222543219635431725110313806339755558193407284116886871859849243136107520672040368841822490080889576654266980308679041919022128742139305976321636617948397448751345899865094653200462523426239273317958352609083653030348517227300851185032564052804577563887193028033213059871463104676297354793437821513262749264374411504101088872271115315888459906092238922429251308679083878607049049234950574285160154888129473150899008523741417494830718339438873051364231758332540917373728973706836374273168108740949448032612724805713639622967549009411231014824235208424452280180986284461976333283096259701751144297607864491668502368566803883866271868899548202529530144864929013688478317309485259409570891441934015350159398956766068933388739036425775657627414126451717323478914128435235470232976091980005771547544087003021729268157933521531020488704635127555033316997521827716912968725919358012168552554629570599449903546758610779431311503066149278029287091369774039395498041340727672975060053718223710057638377359332529442409988701823171682623139298247377234573066052370912702063075364253699925945579424668337169493385228369595849474754506774267753574496170251623522679763298716521924590465880702651748228325005526523878673209480713932790437129778010464923417205991296798939773837974028847749670075104483415813184844925465178169729774563032230009768118255451115301668194602750645258755144136956857478837787017689396715423557611308918835202074436360556056721085312544139415965485980267056113366976431774675606903930391998555425317417064979202465075045055359130517179478592849502490478768956514567802104966587294859011091177240117474187290078581806482099128315538185870739049590141075040878140043639100355601004692692948558826714999892785403479658344719532285555918140397129038467178991882530527661324092984842436143497926484046197604733796598759143350155525535383920314928556106582480707308796116115630160788280575323784023364745731068041692332627119063738807102341224551470889223605407944766719705970191100186158629045214596124230301475264218383041653494023453032058271397068169008466560972316748365239846511649931943372262727721217884609463454457611491476751765531799457174435096046732811390103094501589992115387971550986792699224300929106294906050704170203570108530830654616015780995123788407486632108480185938670005840726799212747702119933281425710256517386089030613372255114558825797690236976435768754154387546157981806049136649744963503111105405625470567967046391909573762412990522709071954485779512252807063079790009070484353192606524186372362050655142763517872818156527401073038183648611195383862874069464681461194604746368230763495870184205889190895731176968431596944689811545386352512948970624013299791321043327512316464304094368527431358184944402561131126076284390900630837257032741666045658178762091964365683138975883920107717790761885116472899907781061663557525173512720749143628130059774354015176619971409533800012140142100659350220678339517722594419960382056262600574415895277086070833440125015340851854094446039263821536249173940428191419736658020496522044699670980595058631570374810997099185084340008214747951267419918676486813094600084122334473479003116442264383917944688831958797979523605043102834334346396151749212502198318353895357105434735338597557881918178929441858513304122883655690787995552969632569512109485119712909894109836619408488116031610799697857371864643013051971811729291430461689013553284236979662043676377885600785285947193457006281890249436159477308972849861781939369212628615663057569702368976350997538837902355505698737629532058277136861512277241180012884771051356178080705069955128253133431452268092500026253806164089470490519777091812087841549859832515239123016441364935234182020741274314357487667762887039433213571814884136967531195737047749777864948228719602079813364948202877289751852228241109067182161755011488836510880657018437631872559805653014191637513219503847027707340047836632969665995594386917728781247362808041064620248196116730945827988823130932229768859347770823401833834836455406604799866233805525918462959386944298466586533891246253531768941948384013551394859465954300665243500327685657479251637821316189670323795754148699290799054966848285429289703443219650556678089331627868859877252168829937870357844390935334401860429119165272651514392677370150983204180887098053887019478060073744655201690843488278034865006698292611981489779649067905387400739319513908216019963116530674460290308787274119906319787188326553371223245509306595762118705071261674209353666326688442178701688066245005829725934447121305137936511725070592783081312121262350648603489228790893372159808888973505312406239017799645593775881007496798902632927833683507333078048362703766814671384562537922738086479531402541237648473146484423560415326960294156024675200093618510262122597224624572323996907680635700040578087452649382936761323639404687209314961019842422757264450664039512335789820496616881977139648674876992815640169805308125823660609726772469872865672462600504836350358597623911405586112201563980435840317008006485498654490285158744208900852469009077467155880644165444193169105395223005453456791815420241129596860106848032445851715900463862497908092096965002343723880758958601451798044714376845327835322631819402660226941189833208479227440993337885635775031245355057634770865481094476928237387851074339344527005420875952276237956314861374948065178282452980706282378887152126435835202096357324795870090593686285038398922651742005340342444417795254366974726389851639712050105827044576223713854002790443463445370792696584541509508996395799284820101304208501339611576242462668621679594932748567082187191507784573224932164170431923563423131213980072338450119104407476182817692326451649057727359393678304765491692586102680891120159072073809523066436850266081365190819997700199777858332624801708389746721944443870064535680250277417245289706013987029203808939322917765175102688357411038096121880894385158946848819259699809335601480701924496249634939198897122641776768930407849488408094523013787599943512278765843700344048804266165215040179405255152908308412580294273438129238195474450597233617494328215203231938591628839651071705729749187707951581772683031455225540295850382161561440778680145273305870859825249293945926366406628453826928130251173192689701969717284488754265101483253658945732658701801861904301992749419379146152386045128441201884832007002373405315174243882535785336135920613372240060805803476530327417556321437724671864632190923409895640301928164553204060334710957231217531378862270662278753050626180301193816094422570641993183419653138445876518903708082656308990204849586089419512005550138840603263056491707493101029890454098651613477156534286680983229167895090581191541349800286519710642122151810346822045439051650583492912247000242208127300072646461193086698087132653831142165112165306581154906634045768575338132046069861410911321919297441841016925685108854136997046407067350202433268280020521514769247630309217001154344233645547770996897191221346181261780178956983119270572057278434600405509489504466717529317118492022932961607738769672877470810374516990722331507763718248446916560558113239120485288126118268473110670230842154902963541767216664987264446170777350077774537910054261092398771246338702339257541574772986572501853204576459928520339807454388535373585748020428253924714993691829693150639316326090560755848346431353369807830894355094980607312192271310970107814838096468459411781820954001770570028002378737693002888623693563052899260053066845713704834507140823943623498625435173710780511663300954332552853793115035890978201302943196722041597531892911064754376184951550146398617340430824208681936856735199406180816697048269951282175861046443464051962749718870871559182448238285266024830735140300903011930184067410507537487474650839433745602195348274475482010724644447410980669048497528958209619119218224130944717829101111946665435831166127642762770918717373405600062020415655118524437768115428370931895857123515716660959388175010032506685635182404314106910283883948412208552259971903779701573696397332556827819375071519240382144008866322920512709031315538428644593661313430682488073080761731737060834469244418806233857233284662931860100616050232974961611510948291970196465667275264005397466272821531723783989583789078169466943046611640888579234744726734302970000042004936074683653659618431764355031590096700494472153692485020660554848522859884020099943534833121181585866734402346046982363990395825853038066957289707009320275150829681244204956022193924489485618334869278023667935073195589161881744388968377334781263711858269168400292142411476281568329327651096729679532600663121035885198510773639311111248543403905674172986478032391965338064506585067253361908627519512143065718659801176855702943574312724301582611470011642889725388343218607704299284354658435159082959974464983344370952577533012907200378322395623354057009358312495864742304889993209503724302290481517892901893201499500098731749322299288408621938497998536687384691855997495075617346388879463691139112928137675442797633154578715314191448666709041281176218146074418855765816549598688778859904033454242592044180996066612316134109582738606976675307545292085285566688325093941326407380650982689895104267829645178973220378333017338710699263024968611842452173249822816508802234617957845582445664974649905770609386333766530613012630845294531782762276519713256829991876866048866848791276183898864219726539661264353371737440101598093798160742072138334039426002577835880642555526269163698594770381273812147739883977087643279468572288911603583731462120443028024491432620657563861843409466512041420363137266190388578059752785791788628802660777817249465375287687034229476191352832523423963387711872308483026410893535069479684946853362649271307781977483151373037472402892121889048921357150336700315102591122269623442714630770144036777801941996301387835119938435826997538362523125028635241534272930729998357966271400015652189428513592806092524323142757977044863962177284337578978112334240292657311863639819228671582798906850434181662070568798899634530940178777959463817706061683550331390153040919561746261901764368876481672262837200296727730726676440020652281268663685654158975354948583878496785505785898142030395677496316922013446672818295828646085027150666894939114111761459208167931384409883768585156586099930652202227267749555274082727103283279049139026448586958851305539681301361237590238666947112039038735066060303265986872718653558719613164970142562993819521698296492051651737811893433015619449601726540059914748145313620434496967733445449012618147900049608568399872755391737965692840906105414194660545752368853000417186645763314326484378211256375484910114846254271883758295009844580912533096239786194278851047477099951106325966296995647032897214861222405776242601084849463258552173555095964553554280719003434850375464606903996467962165800117083083027877685703278156934641564503964122123938978596298401049305260710577446689575773839611906661609612259459184383884557693292747708166636408071992199084327086153446759575127114329489425335164724244594382109105517737589594564367527961846711178315405500923641036723570806143027634079769135312592209883477725312823634534232730027407615291206877508741365059289735510743328194387103315315077664202829897640821679282183849770715820963246585643055380658176971763187052969327384371127023111783479329906070571814455698281094127677311762583421310767635185672496650431011525068188270415130802082035096650387424044282220067639434324416358286021725008261262774509318635734134009670025508345950545342544669389183342369851829025032265654166262299626519932247852043156515452946541625504512695707417581030337017241682690435546153293510486374048878604053496279586549971137598737492163279272423605985824707849451407222959667268291974157106702273726225727576230954929100988842250602226906691583062407105803084152269065205170684552822257953888504204538290791699574662569908168256397925812629476975955336371392344155479268387427383401024612814887481107651056435394449897326862690246699338141056846524272204068487130948032320628370625634774551378944677829874173680527562053726644725653000995054588449064175476305364853974458526232362375871731364709430242634577400407862444785723464803502840840891692885294272100470096419875292301448069645751883882528256860115071184877635586883516679686242553055208128409996972750109904481422456859078235994684758136117343337519746077355398337229276766597886814569743785086817331677324618798455758736221648362692705977696751620439913734688165955257466977959507973741429474621228151872931031877653664763525888373528320843593061947294814155305583217699019142178490824615349972155304382521760977942452168543742741872661196112514530712181750776667656007448514741866302169348448100979462479988245900947801225089018903264295345342451252552615376529380473491872891914461028886952085632667302696731491634178110704885506213366707973480574475223744580973426630135153418789675221101700475613897456520654772280189307627842342766640211829273062974329884857730706775014632801762755610801654301974005095924222577819500271324167552590138801778808938366056810875033044358287084073952612750967937179399710573197776391458046558163134435735891598769116330189452972080473982445339767697215178487385469401061329002845728399747429523245459467397611549936773972534113252299903110836389897207073878327268128573948690120484245421675851808031132184448238989099906325814615518843773834202592366925428482692118501379402343077254826638398659696578831577806095809555179456075928686603871320403149862377696065899585194945207206246756076928771608263225818105164961562145522350095422344881187711222634076849425579570071226995509350297380759138848919843205591488466918847039889190074161992284186495867255447834396534992535925331620654592250341805061567586825820873038142621178730113009565159186497175317005676837821245245234726910358278461204780048655425184154963263920506318006728627771458463411022738467155149518295719796084777313101074310139265048072280796479597488738508639953202164857512487802734509915383613400502554354484441366564913433194068364200754066975117193065025196547675313984954425692631343281140160075179325654508666320255367394378908340117625543382071372417335803949396466971724591279427844402507926853098158983924968169005890936930762889456652118598842781184099816513458439831863054329365540966111372699124980067674116399749475111899088443473283774112917312645974232489230996872765180243584472043784859055696601547691865342287559249815980295035910125327806912768744760977846022842662709602903018258060469718818204841882877196259482223475228349574100487556153512038858706550071955665960582520038771282662686539140291387744786616428071306723750953614117863117654721428225779214831675474876797746900583699804448280113111200437576029391000817847588746882590814902310095133932710492382715954702034652658725149854820532272792011807008555335340228925098624128883024927926033482662292018082399096243320516375686264822596024136696120430393081263660255052046363159833802794875460102439321755152650204314012287374190035107545436356492630558668619341692672236483149322507842469871425682808598091945082981295970596703026378753360843474465362279336944980523901080148808066099908394538167943329119889805032201501017514271528187512914948938587659679072801466337886688662356170499144694043469988650165985512589250757739906137109798355770476734985930530740939584819777694479203302149977349519753684586122084841896325909528158986000967746790687129998648260678223481192618268261653866138890103051547993094334177811363991179729842884158715759670840246974766593340062504380345030258031792640633974277506758296347944765093526255682319967731859552085890046688238366023251726810042055794351921402352955138561607399321793903709865364533592841203087976414531950359345486891224367047334637886109887283483351714679307320213834180693464258699315927990310203784279442687667621265823351588120278665813162120532377015685130758606535484707570240615214047078720986476650689105072932363904265757248586809748156611672624634421120466390496980229663893022438873055396041864594571752849893943148916748888858128252431065986804036318058275714919846525564749179361994691822054904492242235611307653205699077434113234459293366568773561690517680872507403218594373732152879789700073998468457511560567093957513950256256704603314468779842877122694149787804945875136267026724585922223562159083255874200926012542012605752022961874361066996802734779634658293735836316986841356752229047849279295084882163337471533208761422225727967610757943902364506556252509069011691845669521830267914257519462477940485435292298154438345429099847525181799199531982030730473635603322283386581040070897671814710047824019515465078398928882281520163735731899186151427985559791383616745480792904341348953505001459348867817091253707007164802886086936742161440255730332145062848126575844958707238932411771776168650156479498435781996854209810076834739414021960782114358144145782859792112947170094638978118098193589803957127179055643320359389818147337048435186596417248703043366826489387213701223596095765763485899404110399995179837457032338227649705370319459035981620350862978898671023222446389749382269626212699441267653591514440486686355041624238254577907599393603688918187571479833178047333395422137592235587341978565432498421978365330814986540210550696138849884844606927852102181444771701403054054261410007671175954251253049220692025790561545982419048194004540442212026307918903069121208526227576523042241288534272515725566970534062846270817833292190837980087954298539540911188823761540249349639700358566095900325596225106833526035140713526770096809132975998203288696682865117433751677509792174975939128305894050148637104181628480528181540415997089162387621388945434772836957494661555974088662957189405025638139877217749655866200971574879336327841266778090895279595742527437176149566361734312257595178962158738400764769558921614664727639801913043762386439451389632811021788182372317852883959857798388476435271892350672338925813422126419116773413285253028316540943181029907052071012813340615906095485897254401719979487720850549572103733356798922714779942608450479281326436724583287102664488382230790731966960903988899171082878683991119538864465473434041836218302331280867726063023691984992254179273315670252297297319036897791431605874459690045654077431257463135739057250675212769786084401165262954345553351872079721483726878694007704167406063400755805908791725159737794767934570732410684211394929229972789047896118167458122086121340699425036346580365564436249116560661084478563429937863108478046596870992097093882280802755889112640631456358915075429438484427052254842457912907411323293057144830818730269912653471826363994747302432927906369304175020396859620624740848331362731542856831589652171755165088810748519265319293635827516751585839934103031075469282591143941844723737836632817647561933054833036694790696441715074529421136250670096206680867858827219506293505862316561159606498271722255560166506683930442608130251739105279471897627075563879762959162989236638008998930924536018797727555191216825289499558439234623671060331731168480247755471434317618588673263253426258624822873186151089545417236091888447656353907449645227878322736104183270532086953439222532510821354433640186213398605887086414752393833762705997170162575868204819104367013137390428543255059901980607120817155214793886265941053437352915228267381225305715240011896325861426454197968494889082884970524966506067242571688758115111566106604033734497744011833084325273029332992323220895666666787321668438455615111188854269880897805978820997815265861247687179020521509742836482060150057939560739348845909312429713522413271504330403505046569389043481780605592874351863085733831922123973550789947111476974561175272076610920603281368717502506142229857232032545231378645006692641533228342180318615215873829842729885720204964236136280981750789393774390284143373533702602715868504236073238422193714413272871093701836005250760946544587900051592895422141642892710026949530380033970656401630657909229525457374923226076129251292131264552539530093591014922976396755526119255366508289511539568782236531838695271080671793204193441532169899407270275841531364049096926154085263880060143338807746907749944255773459979472046340433867651377770943357239436506154162597374233413299005290276498007009677190512090241029513858532108254616178438888035518399432083866200383071138255732258874750182859407377310675690676882835471870117613933702372215045886805940858722314533373015801568239937805954475660572185419186847649506796272781692052632060600248480847826112167468208771451198254823599833791754654761209317702296643303023180364468745247439169693111404587151085367305351363387239931689506520061794704781413926733012070308038759057471132203864451246079450500594880869320629446669876065182756425507148261256955596805939159284474622819838067952448678498054387148230791701857606384960523801930807905210988774867702864858683352931244187423830882795012381659218395972047496641192214585795402351938424702522211251860519482426559351643249066393923682846230722635094870186543151535733539090533515976969136252537600673716173097583573808113052952493602229741197640512799518622512260769364931876441669579981798921150138282945222029155959233084946040250743411298358616469057291699716947861836511798406005154931895539837967354908205422247309286354985584087784337313547846887754551773242984938343874003263028936212916471229264995868861192688621269671840280835314465605099009089056650903882685772445029807034899584106080596057663185397338943449586923562608138423692741333805536716675806872736487845545895930635333267705155412507768963282942314701070635306390056418328071217097471899175400473389397449921544852070203942893348971951547329770752284986392742689044705412238173339558771829705649091470306736537413764844887088074726749608309688647535132852191819827339710506600186279607550784809860859690079489229508219637162266716200663718655927207280414202404466375772290441228119193371750555541560708279606990011622700019506193356025153174519332796774098726913205945886030535669650273043920274540956149782800540064731191219220264378548421383124576697278455595761720859426206090990742163899838834886044338022961054368336224892320969691145216989401402315847136903611321191943452014167438838576486577898010850529564054689857770033648917553542410307684367261355892539805431395499502108797947714033010222843965811193976493493541412407846579504262578577402410072095799370198239745684835943653234808794929198772406549419381872400081797528878292393983877859684407281916397506566402305655529178665684071679034295969634438414586183349280234582021199619596767287330232912291696696233791753613070253077694857901574880227302863151551965115845077147036475719480626011582927656666346534669744545256667243085220195363413181034254369646599052063863105215380358641968758157749923807695624140773890526849712891572621742166734158971912102521296783306076416605092230984120697502738954046317257802411539586774869140489760408360689670842784237463550057672373475254846638734445354731695304642913552582220671257205800960206371702634633046258347570610466619482134788422928668682772140964854695816002583351370446398009452908371808990140635379027451621109723046870987878271373883314362926436649691592114831532567240762655892656475781465717676101094632216368443169121208234565167491515124532949944936639878107380199710932313638524436496834731298910629061895122338557788587872989571973727309519306216570101872417831968018369738388875049748431303464297010656887237296140484985793550834545705177360607332679452381752772480446572556846387192245614401845165965430714513275789289387517165438207231120782474552146461240537985277896159168327806062968533037513434138247248437456198600899171413128633332102926549808362126435093177086520458220571296709560034605414367271227765565077183944469316497379814054244888612665774013684746278030931219973374341196510898450692671740639473704547603312771541679507318758656323870240016438590181754123721667807127076660210378121948341550751043272973601980798457891958252591665846578664905663724667731536054062592816743497438575346841232272188431492235361899736785762418115909641398429015991188391431575231842685358020074204100101366345515539649280269810512634885571716386386284440487551066255118012938411996941251067762599338996380138493233223205982339226890368861546768215063504258558196535982643789545552946403805762071061329001129569766383017006625253071584595068335462379120716943651702541789808898831115120712403653687634563633773211847681662816807433912350683588572691998164675163737292052447045007855931165298568873659091167414752830288346186857874913332764271373505679045789097649150964528242147805434338528899774267873105902866512193920219575866898968665757136889596873680203991254585602700196349046611811604350540240698102619239843377420417620524850005307261714424225216282974256794239705651864832244993449533996161275024397094744879267150720484774056453696047619180077796302773185643548419506052782380865289287700992516605010906645538228787898124115763450547527311383696202362399851543261366304630130143246539121064026107220303031902234452769727887797470599240509678589804360091108454292538682884320314746161841788220374658563336818378722011961515256949389075666566168114243409873892961776638741682735198277300838268251124315521710062276463642013056568900759180629116769990636056159103800506627573916173884579548374415116244781964886954292159588996215127570212488237180698947814812321006612574437573751157635442901951109204317912822730339366909953218506764942532810994340520979015102129958132474148788491420417123842989985154130746596138498939406957088006941031797941840600796241766364920849939132444142979218323527097209125069612808154020826571078670604674685915495282285834770612851598661259909186981287892005732807262746933304730398708732989410821491171160549727931356364569059274836987118538976384874806531053683764279747654382930109737802188080224399428192444043008651635621442694268892163583865155218859550013951338015108135765320764668067407852146921838061117098967610345981000701960914676752861526701301310193053302230333270755206992849459624235141815520682515033732454395093452264062588562490276885786528518946388778902366963513288173713732412549195381707041672956380699124965109079514775061518028579335779314827887626772892967043682051646849327367592574029186849226839200263412547221554812243641054896931782017450800729709420339983947487139719037915059294328820061782965188897170906296512302519116847725286717479012209517643309518576513969089219375533758030686575393925139325838219131497873253181634295123659437130268409413686800703148169916249453766980197661872966860392268029401666839625942498937809987096758989941218536748691656342601926797743947534363704830730342600319000278962993905311029756544402825635828040044870505038531700668167191027853369461336886674400025609329271914524478859629845809572448084618086451603058329476953571984620187133414056329694759167778722050807872339957816595612179614041667489836573848616600169084357051202748808444356889875782070752814647594517256348646244914444995484641863000724543113032343121072682406200803530999751338217267024783589154574625972538217861612468530381893525085987995692820391803079841683196206831340128375905607861167605896820034051633913572165904080040546054093215423750287078306373222709895950242796812468926563127800409675370745886287726838568037494252596282332420104020508509610637830594745858417743947644378886852150742021130751659266539542151734523969258209972377949277379125937022188234980284947905583926432323612951768330860663124887608960216960259991208005439745635795441823187673973168540749632326795122111867987253582723707986857336028977505346050504170077194257801987667407816697377086579381987116894256869788651763317091531416156173390346094111019305057200970705476420129582289257024290114982520107765598950416672053914037783356962151299887356163238702632428523937791991570009738784558340769661725785074747809975152290623344209360976236440191789334430115144674431578490035409088029463440547212900633096630371330754204009648232782430650696938806377361309831197350593918166241758451390354959283723818699186793216205933234962182232794993068625093269594309395933126574645201345961775261114900186172062520718285071425198808478245174362926079037409129226900232148915539364216834726446573197019239662034019959034615325502862605787693493543093314225537619730136846176830057254083268483193057548538036061838237254656871307722305837364521743765210862620428449029345208316105457498449559018031308587609841522623543430345921658208074893438861354735133616090028553062315243234782858499719093571921301120342981677139850777012918120390770538854795406990939234658170093797452838305373896696333297575423194702799111683908628613861441400391467224435629573512328933808759146782332676006909064014066236842940955062303644763422549233028929362565999887839943251585638714872004505222695145605610715099413677105233418498445352639606459406418104202323710330699933783931460776339958360856801014046744684048473962495630790198214268459410312307315801727843428122877149164050215685657772856640916940035951368115444188323140003033763101724153643305294830619863675030191393492012689002542509252640150490823317001649694693206132606255949422691478888970119381764072991136304976910885027118317913217874469119879211718860361321909726920109618437539961653365689740742167448841619680569421052782046047566776446870473646860934648583950235203856331348654346139307402857331402413369693551513848078723028901575742343457267707684150619340063615481642611394339747305900716075737484588529550144961506077560687165729356046862847063246176536184863489582939608098047899738985837783818572857520349182858922503841747517831099973356435059294759528398045435008668600437635153279099338471909387822416314301053725066058050302123881900575640229910368236934849910235028446080194577864550752084500487864680695746889870671158073120312624051385321873099533599927578378000103007201406991662171868236404444972864696517551691375148515148632496077562783850645179420107302646744139293391043081253611877297579387975103385606425292572079874547830514366014360733971569539834886885896713887813831292936137132697651165485286542557230535789852796936461767010801049138150169013720475810005561394168690389706109168562986979546233800454137526264610672358043315734728781575040220222962498392602644477934809717073488342845351522212394037176104829694301646287538345341681951577927290373794901602183695978336454968448579506172347012522398986663208667827744851324040017058418623249214176389128196137869665904547130942988499758453874486414271391256196475532841462230061613343826653642009277739267960037879727766129683284298095266455353288911230670975677059897501797455531715787655767556174189988589654174430251998409142335985170519673264258971426403307477857722964037233928027042090155488917147680375538985608948765344715007848516423425948767528813027513444291508595523337452607490423933321335673614525367978363886027813663915474802934172225105771654925123492724652257364353402389453627091609376038650288577206061484996077321200471559976295718022805782425868932349382702716690150865491178493232528974052327107481085881040809285751506862940719289077680339781215056813715462949963590406762412538869236892111696562001742339510609929136166716247899250137269885699534859958097163794657957108073335937994490246013115117897852793255754858121955262460914541898014462686835449432099289830704100191696655926205466704344316622617646921178352454264581521534434882451557446891694387716744921349258995107972612884744903848538756626678176466212555469124142682900468792583718183406591406957277323644149146600812370936869567645755593695447201124630110382531759858310024662162507671030536200441783650288985640231408820117000142864189622144667337325641858383433149330117966006900241156020117177298166052076146551484805028914526508481269755608253710747610763494404993456543179843194361133557901717086626527271530225145374411513520580271093661953039684328958572312459708588913327580360462604720623759383253921537340378423500325543248200431007032994386303702945655239604362772965484103436057514765775026637518206592716624163717061418861396820531283289896300980123201338308860380628150394057737335339421993480950944407466662492498950352618224032791949194609144751097289834177565465661962785696704894864289691344131394804414499686123458575824123440110116308155146323978283691915197091087294885380711497643026997709943789870967878288680311549045344644253952028930439404852232244359644437380332856394894110231016964922186211749306803954329737280796307638187689923721049215225039481715898114832167888835978894147771749354619274086208524929391841443194170248109081449799956420677141795828491377616848799814650381062457170269845783459904790401357687253261620752165062350043122109370420492543448034496916866295437966301687842944934851044880099566364724376133363247495735458030447005792976610489155236059022489007454522947531950840458583578799892894405891526818465114413448681281934571558537374135933886348851969472018034635566062794116435216243377274532874960223796649414649063260498968856825899302081990981495875885308942641364013026878975768668728226225107568984829971046319883130412775972900261980103452873075082323295100447991944145243478513717374795878971727547562101146744604965903640423546170299976433001956533955108946605484547405844522768857972548386029240888512310112824266791695037905718088489632400543886783161336553186313366777999336274359450446557046592879484888531333785091764689712769669357402978848133904879157993538216476016466696957731039997212775070653456677283070596902848368661357653008314095319434568579762661708685989906433955423127817387103702347341898120499753529141441342831866335755147868054795611842442086227959804899196837740634631494505283402168304537470150231719039374062418885636800033045741883681491462692226842381439271918262419522782397321819059251956702309980078605349080734495784612540808236409925721138626268650622365672846153210399365068961536190458910361370781422041987571837962045559286828283178443533253474793145237970055001595917795716285104506090694246946241987835072470022370303849776878642300614994553155842760991000556465168716966125471647019517802098499388312921976716870727250305815280320904132190134379089799009725669024872231766726154105918344212861344974839615753905558162639780647559054265288506419163366728154436281310628225310695368328516318316067591967334519177560882422800421761322278068355533801332438600365659773449681252919095034921318440027956266282324073082652895804023494282832995334754924801175024064302456339811532176753796371224540641086361619812293367908514340108254149599374313536105971830421280088577062723720968494929179574304095633154140560522336263164085232885434719998499076580222685283125768658669400888883498332633463163557300308994362238205191045407060971958998534341642148583905356413494245058165295057584975185639656794069911097940030314729701684345079714824165170040634277242486645688639104969949883441834418044117799665928946027347338830021494457620140688750536231016509292941783117016953537270922799791656107383333072571160283000953213529021596547406152481805394314354950709209093093272457618898493176416358081305111503954727724617856130727725321322891947068848994526512028699613142499836377285053956206772447267141265874652416887752468119508407483788122056564726044281470026021053408347452001869309207386218128034384173305983921745472004652359294882992782900909629419711139258998232625573472519830589468509799061888421800605184443472027111823403722310450730251727118346909319234929058228239105962759071729919706592049475256728485174606482895007550301523546973065610506638943639712977361256810335097414559498127997714888852318144720522388041191311794154183282871474704381038219958795975789189369577532883835684476009374533521969919611046028273929166895641838795515503217963264480344162814731056563039614629791716461673672348311639859250516120252565443259962336300825825498246429555856537139849206352112272448763311152040449942553946616821904709847971581632110565100070676505802427087113760833989782266178018962323959154173207562415852880987670576271893309947914839464816262753304085079215688469850076526255153650133785612732551081876975086194560067344721096159031584321935936188609384156525957295088883271175372126128852416962170344496685871656892891671997015298845266346209196268872707261312481019384072156401059190835138762064600181233909093064386213347130117638090840260871136730013401493173689108123429055303871620527089967941850713514351797268388656660926581089313842278239110197529088002142863543037721636557306709240265480526697286137799294493634813219235689309954674888239003476967026390507716040077169031506298602341655439195988704232339951171934969327438304527820311859332603043326655315184376485164771630966117875490584385491539102354318453301959420875727310529184135565639810040828215027736618947463548906716527399433682036491681474496826056763820879860757736192710693952618758511053639721479385038379226441375175660642628946746810271774877862544404010253239532615264326301464443534110010184332255437852005974117973947749616763244907846459172887305640475437581302898794144409433947259190375109180852505194757410183258070813101733089110060736327957844828228813956537834166672840492838419094087229339144236492716820066834076315484287366286662930150861788643871171748804239106417562871479177729657626296393329652608170658452744742171299109831806938974490947690976900095360738929318241475731137084286336860540189772914615389942647238948182455748243445751360901608072980728261729941243995056471215772108286973279250052435524397051917060926155671416555363669724245553429857034114851582998191231873909303772197253139488696378327699230269781575564895454201083591815048318110568395511710033848074454095614393412123516756279825446184341581723467839274249194787656348745817648426109037540489964233906431858518939184434337219875817484823797158837989452257083485374155031141813348469117719953267421714635610431600591888929071338993811232063544862386924751481320398390740960819776497374092356973482841943943285881766490870038447265157572935521529484533826253097513032369141349685223915287997610811042254721653821478924371085047142370836284337448753596991527708545111654526747271586865809723269635084548422845732300576492539530315205201790025752708762605454609336285534999724776105132768539094140435129164422801778663970303647646944024711541163869012491872244971695835579403260315602743761008702246394072055965252713271522624526689779829419227268199437355332217135857976203590714336534441450033131469508800723710449109807244711459782145558641564741516547718671038030720980066681705214283871654983809258326799536472896599608337913657224084609761639263359232100900542922254602830137894295368857988429544561630479377028304604229401141857279685042485739247660522156270681648255083783264800068371233597605204872159798219305041710455598709810152151997447445906042275678146342524298241706620393737962925946715402875639173272854251780599518334119768669216801982742897230846912386568453934593789363632707506405983184747073805774176541971623387793815371870539820288934228180279297920944566662930946403026747356170196392828989464724529047597398536347152461113669266652643397419813059731918604879358446558786467722041952018663527111508803602791195264115840818342786632425573601489513639794505428563306127244383097886439615669266834915929752271336614571873621969878356361558920852508636278656807759953350896980043236599497095099990515533776931449918958932189217080399570691236288754242240371161588081341677122646700360252184317704796618265207714492861055077857404528528769008523982063661288873372003920895534918570198106085069017789500449686136308004973192252401573352956737378651754746928011845308235213296823792600813996340501338909417979196689097851090483840634349226249326415631953951886957803927785014242163968190426177452922407828689335797115043996527202462808481173967909573282294890891277133066697554508163446785456482931351793128645648190868064375203029514245159924562942546575053776896745209860579492940442483767154101849061273871992334784903472277238771587359638037566946378907190874709268346342212287128970989530465133574682174758684355830827983089542768180032953091696813281123436446014054414348704840516036219362783929810178310102393261425931678332721241541167013499439746338117971020254190845134049467704251316547183505092826134893272383685494887216117357276664164483097949133951271411441626128845043316728105151380404426506650820953218840311250962732768937025339795098060678086541922059040914842071365842933782621502146197890669701351721042474189886413947722177787845138715417434140834740865671733407991480428901916336869733581501135910558461028739459285868279258614949219776605827859742012986284045725538285268662148165350006539335646680160966378853968242330335593970638154402780891839097587520411652732966071420751895860188438792644329205043801769401674632075520240022257247682288677917251985507365508663640676176443937708562395098540970001407961414536668091951224633209722596860144976623637426260843397987870801372020952865926008587793403759390888314685515525194982803473975026907667203106796739631540412100858092878562344721185846540779063826374818993046982847317493072650260984701994626672334048723058828333321220906697893449178999642183826901832326140087086810896013025400439865717738613599568696580656963271800553651790055138097775802842513397139115769344047036713416568635564763754472979793184374550828578283787926867520772445227295226568417719096827102100150400647187781621861528556369624487678826801709830445955680017822923064644699625752816581761445261704980066548545519172294933802443770125003598290091778998064075094198707785031067368899169844989586923975331314232911682912544726315352057269423440264988407823406532291216483867031636316411344941262345231170113207421449413312780925004673650845704319382633390727666721503016819807996636494864936441638487296966330071939746538801081124923684165622929847144553697787441368126163044507839805826363461669296895936465382801479162106778030130592176338345467358161257807642271985891816343404462316460518363972510554072804768697843730721551438580074718035057223207581366836458386955344096510327664240063775153788628353019159743674499550374867092502064015133156458266688357233739580165120771285035951779746449093180494870508676260761953427697000963466894526738240689733899258038828029441878622304798109197674815539728813997486375527093329023365945967228746776351737444945934152956996832487959582331048980536385072377144185817931931398308051797658988820270962344615794970138626000002756790446507981165615616874591308241948755420753804688026181023361293485700662268218485929829472495851042973675061554836535122431126103036903311351966046149124730707289376196486530101441371646450568947386526319451456115416418263487332189258532950629947766957946278221974045194630117378982579213736342416682291235406480055954589245725141825565806439523443574108814034562123773048445415349463791138104473176628505879454881190942001090456810205674686203144425899337819297426060300403252031761660265783855742158136386491886211766972042775562017758347420039461551421150940915974855650673509827481032916270018319368245609775845999093411516122646805476599020909824701097910232029016160036418584646865865621154600404774303903224409281295252489136848071467744812007220480213797878507163898103420409395024507203232101883041101304970376640491080463228212526491695010427963235896842203808247938713129797427662008579301481664782281272916685566630623543053319699296907699710852341455051559869255229531299154189273698084031707093495248623927742051283485929188608853523932692787240392920805740404427726034490326804041892680564260789524396640208009914790860305641297864502825042312244279128482903488470245536781301759991094904522027247814809508690522384204654222498055487185099146250700261161019578613500641687430227958584383770730616494220055630640983806421504243332662578337250916122395474804619047992784173452587360970969638318332593888162136747175840713803773163813733208189240963500426672606360457719798492987624446262490603926605729549349014950934686289610591092025032451970340110949245117260566825100537335766903220789242987356485491361193498553155425937389701878945368167699756675841846792938011971967099275422736508972608558051797749968112010672235436344810644688843650075703537278276469092179213366216109253658024847564929638069909921808895486586153755868606202205620815715369286752248894184120134946382572235071244263806714069614022588599737239702604299346124085959140139437690121180869025897575313367964923139608265499016658003783973078922084547085769636089595715655965219620603074150101630411894685563192822656152215459376086427194866924563323966442959807457928800774247237719437032051048079642923481280192438239014669023772352344481730633485064908751154684911650363884207037750595765054080950230155348659748403951709425993042588284627765619422597096938728323159215679747320505265242814070015810283980843591184176659094920306443435786427940871988030267979003916919305762986748058785610409419757239081684678738239546377290676059809744708053728316872657036541322248065823567299564906670871279734762539058777579219870178457790805865135562595636775041593433127607286513537906373228911105744248585151413360378473319612790131199434898324619102605715056313789105207216883096794857144523419889000731447341412751741039863726858255943971421912700504290728017175712013318292670058595327131418927612930156006702322306006341419126772473412456440955107967960058564791692069703251734980380524860314518604002205258117536953627431075366402217864748340847683381499680957830950719651194584826324421369979392853291107651973014969632015430103735482297879948235591364179350837844534258683705032006812801540047815461619238137797857098619948443930227328050463897033620985713121505321440548522416999545780452610598894502436016398473951182050348397147341140804328608047162096661178640071605911281800671112083163079708954099185419950455111292122427631605377298712803009331735678300889197233453401874707811543739958528397386741993168284990899632262532792919403632368851890370969681848994943463613892181663487281926893828502618370867522799176398090862314822136953963663226843577127690920818845117515255037877298804456796977816191205180553939092822649308072606967398786295497736666580259865058138198931498712866420095319436438064132186234222120848987473485754343431274953513506881026549032167221986109462899276087667676404898136544919673183169646239774646571274565578805377773826701768393948876608564349273495101247138626029684027339772596523136620941839561664072456935437849271986992403956302958801110368669005791164689496449549398341000941172275609242351155770889827339607672831752018994065291447743037047907267941608389475246047383499478562941599708711094060750003555112979716827659438294283853279664713498644241040401105260855275821813125498334176291610649292184454690950249013291490435967894763583618982349530445686488051409489936303321868920844024804648523733595150733621347475267602951765476467465963460045855820486478296189663467447744095498106084700165176575252043162629638059639074132358398420868066328414542126287269793529819066062181270943687054755822838401823659913752195374106925364459215129165589166618445645035173641048613671871169160334923755366122296508542564414696172209409960181701618219897190367678440898351947054055578019829875745482672788517656549516053121275080770834536422787739395226011116629190637404989092140076738828571955216097067426290344496634396244333000587393429197948960382598410471828378419735004139661162855280645237340328824856085749992148825746869798668527142659470839285447117817281255145832658477750486144898187661901830492730983961039900734953777886865350859406475552681558224981240821682997446188415114548028491159838247655993508375251773777681546106806610656452053425661688436483683398545157113650249555050999086034764749890116240788581622245457053010705193942219032304963976433011030290424215978166012549947955523342692412075798047634940592257551047760689997318420679396600415852338372571534016592643985013269474124532149753382374704295772857345786347759241564700604761804338448605275266452017748905127913630927343566816510145001076070924944165695761536357539715370974805178664648550321219887893435013068008434548712764234626211417616625252892384531309712309190108937797694880738923974620073246422490891341558783584172668337353499800298510449937461409595315458190894173858057995203441239615206749549110357495422027123704854224691681403957654357091919932427566999026344357798643175198389838748059389375735972079346094890607425634361695205605997744542403852475680325515636621982895277207247955723332429174162918051000837160312686227985188123403624096396231797998401754933623750919076810226917857713556299037712737379777276305360237743493020646850115549201918665840978191740857541875058698096722976166142179305411335997301984579476953609617036313027161332711717871666093603094315026551899011543002144046779951083333905552028779068597138131089370778692413047130659620490560382992579998873119699466203283302956520029282654420604424571977457704592323127067868993018247207704851621257178814088201563581853609385253938680638180218930654700579233971482914818738461773128528146640655125685848420498766754788358881639248609271886940803562100213948291020998151592074820197907381842869046571587901393720609882281629708345704564043749168560211212292441782578688246395431010886314790453230639138736623810949794625556331323949718416452890289197447205362653709749664225024588342515768364272706480126333227139743848835282307579581791451945268963384654098972650693278952371378887928977126350539847628331303962657482639518765399875478656118750200560352588744397037202836876477091520641671070401929516057212991435120161826003467913316337729653346700057802020987358362432790657106434925276072500852735589897267749161877350638938079892144914952389030009848537639872136163317066112570910358858585651959242006296196742429512647748240268336774230140957883986041164173157055051193593019788202262739840061731528136055793127403766959195905016813673048093573337519006404456384303618128288265239768172476413494203975290287292625177032252881637727143705149703961334668519501813551836098651172452102671916650548807793514381595485781108457170990793657703782960450920402886179526681944665280795491247857137455828540533043717749963108853008910769117903725630196538464143484933442668582806817829924383340346436323797063038906229294381872656326564022667379223704647369259463231929626310468573133613472531175895213011533386309022497824366532897091824189066840271805208835276779916580575847347038873204672137606820034459469365819072378763746647122339012183128186772192404897834819904684726974779598478750144861520980374338378687292388972982407116961541978421531165577680878867553269652757555323748704155285822759738652553108438244848307432658989003008084927119579728391282904857436696170085621696080923610023424937715670140777819657646952301429291114881902827484261800048259368241781679372025381138523600059951988096905058272013717370889928954868812334364881831699896951410382035919247235714587263615900652148243689431578788504730780716239188008307240525655927483512722549378197333714927786156945957348432642160114013007067262337927992671166293451016888000972660934456444909210540350052705661250828202844696820217310224610644152830878778865775276284886647505258228443455259163695038743309373417766817910152070209871647812865115371541448264575213888118157692185603770042997615323722556496784290545980665870103799619237747314038602892626718480797306630633307497891907806578082598805737407506247383810546729262914746091341799991240570020578415920287093487315141106377531935953693118007444009909320295389759411376966874407731050981888791044021250115606263931054427108680983841032169567021948047571123870659903333686320542258027965544003176141356191714261398748412403547059601741627536845518193062123413621150018792180923082065436418471811539976804980671690086954443787342268477027129629164248727416995044098321432704539119934122579420416116605568713736240414491927347769622517384412779497946242453171781303572080811110292382751170197586534695263060252920472308046931573262651678441609257224316825340048134730858735359082601997902042210293921628557291943756363889799980322481122367452840360992185734717290027440181118563978321804067562210688287757289476099622366340632653173324483797573697694132446636303829682968984787534824969770936732844280391942162063801236773672679205396209435236091140274390339066594656867689350816824598011156706919489793242691619424986939584160653593895918641391717297579408295321312731268524524490034854425705866324462248502217871907169350844081833008089358331463412022276539716260722461292813591216340849282759416493570606428433614256080197015389009255531341644900853020181527132600895968077851769657617544466463313173676308492247892645181609531940964502627023939160466902443057278342531430240446387360826777631714488863874388944091721008892896232247009122908186663739045919216980390154036893941512459218204914486154117820725104156328476237777379810864082236844931624119731774653456913254403187882134411248530642148423926016886709523399836121771086190881544060657076650909650707049493740311892808677072122561623082266522596707670153284981026102658213422892710502365329529635827772605666725977113124108520022306414051747389569744996462667231704701233235938539694946605615573487783790728998814990314785107593026524896464751404342790582196033060368005560953036796523478845260958388369412129867908201479815686501664312315524693057625423239706682803147866598125580733481246240251999676061236249322706952479266582223446242792749256539500932303960080372583435555999176939002745191048741879810880128313939140708090805417337693812541647602839960297970265841738924801772362708953799580548262696164586595536782568577565974171344820744771752692148534494439644349448795098145003694930242770911531391719322753802357107846502169762303224959980717689152197102652535188313444911473261178800956197947063799965972533660283712550106172177786813962442484966752757735046353255366759187303517904381680084408728552629465151094987102462773132517944566084613654170353840003891712649687364836913840982917341891408380791299086536104727874029038675083120088327680095389692140441738586092154536390186525689719405830933750513594387637740812280852753123593075770200002210782233901663086136852084778922352948368179657883282130035321963547854965948863998746259202997855061680031847246371920473318525819878394763651066303480038596276293153646985751896776037557628315072417875622519690013656094800877533253191543046204073766309051318670320164347646206402874745601036023554766032408531047778850055480584591279730836235653454465778446628040046143377169097591823448678479853221613515738617653131818723988076438448292534908342074470704151365497088566712752837186368756670473110001910192765906554552817811051845850684638656545066401039348421677744597406309279598848816842078398729620635849711022585502013739785112349878957031086295941147428684657707536817355686880759334478670329207084803022438295719317884673501268287297424641445131407529259848469401321604478139073212458241493953022566431759180442469536707526196195002881677121592864358961369702282090349305508307159888058249209474347672941080340694030569568679249618936002554094934885793691367369386620219848658926524587656582135579321275247775498985507614929389689391206987238422865002780717114333973345079625539773504536143429233731721137680035804059252245510798013934485604752977587219492586731302945397094988413058058124889088846156773873048462463839274378017927166648938816131695416762315014236091971334062749410422146214649253762175094517059436726563162103289078771251554574095551462275463320403239187563754760226717251504763075409174110811735591863399756209860350404586660300862888201767641421044673328679970814250824758124962547905586123533509980769637155997031667824422523112446749384649979617243072240127837899148924193597390610795403225374721677276955133804649169559716215014616884742773693416466708642659738218877249502459516399135129404009890782359235134463793994941240153850642576341965857704589302612633287175345002323642266773453027975773425655389652045074770126077799594073608266511750560527520909755750333090830715372635171325906030787366705597022038112021002076402031422963249792916101954444469969998152769035953132179756646033649143868414590954667140647130084203234722954343511107355083093199283003421486375337733247820431594132909032849658340786008069304403279147320072877117955313587494843130821954628444627161274024958808152484930161293919979697758519805524256318997956217649918767957223762279224551766518385052227052719280212019836881988287531278183370551629390745379773658505159584925163931150794003737628293121798669469091895200039203946551061569901067698530131207223858742844577929551270928332520187307050245346429111226190275172035665039568018438650001129220199155763462775247217911521954381083813747089254763697001024871546947316357948649519906864572075420435812269277768349566064945377883505863896326014939069018472926153340061996675624651151231016598899512328591906458571960709287583687625557376346840910797946480345977898014387794402598453904909661225485101124433910471776574887472129416788671642793579221796859017575232724723831538228088455654201888604950056708350868249610793421619015514316517052262887864903833268093382596507684733296882049191335632625134854263908053087491800676176274562012663200204490030697866572124807336127078923919284744880492137061666869160572977762373689115773166669676437789656043207104633672530728522747794297265602915960236713939917928630729519541531240214900902554987439943721640799581445670430125420086473099897053128913276672602644881183519147328150543965841104970510744495836403380504959336143993342320487694245792177368503511721911377376040370951191931850777253626859489968201545324051483974597385652272315721180287201933404707231951320944462944112416115157542336793891348680721604054758825847636069286353120221924003420021647350068083788018080500511093917582995383414088405487922262488559546125642721960350079752324792787531950511845633422318385324437998682035138352598812319028321478461987535081837817870035346692839965473260059016291414289747304527447078153400077866129455334285137653009069397391683688524028643056885404925152730522563188732061071908864136473882927477905252019262846281637819663641450726546432428304410446401064872979677699987611951382729954886261070102753091895842648280842882918782307453554894430538554626992819163912685709328804441528776671607980153869654095415986561054707801798920123584087822652126277815042843161808856575392863865500005636766181432340462509368137155722781790842648259884672607360648283079772184695141684003189147666223651990971593602024308220961968863088257505577267845911043435069070397226949787122038788541323177572420602071777080934678098748736639515575369199174992496418982321071842274451423235485547712471761064711802585738863708940473598740703823752611299166250089718341508495169994106424610820084487175409388053496915884659303678563310524075440247293884160130305386944598329825790755441579503135398443207520876477501284617198836518033181485563555656497362336238358207857853518022776449175235254875379610524414435351230983982819437485435596975509204589662647622863283014453529263720092508536374183778030462670367673470514646220066124178706948451211469216307607882861394461960953575339502916784151525812819306103754860859675082466006300185422495234138763087796093863033121308334117334022710904735040414837635381063291812716478455972559858335158561529375361883572489851388371240556796219755959414882727746006735127327096885941673806134143611389045139402277517413985751728970039739319243523117060195749120405050150772781571759530092452068683044756726471370551203529737098881823164141533931481882893493398719106002686813702669866725688856052008641222943015005210402036940437333007054074640840946678382210350520670565296717962334881290176887058798998085511127599887930979460383315558495591421114121447190142237598891221774495451871774301705651648295295882541604065690097493113752397941188477014997102683415865208588663956792154316274256942692069548988394098426255535550974528077074318129906900424059160462960452323765573279342075925305539099266545156517956804501109646528987398090424372129681483281095131170776856620456451330337128715595376660032588370148340697472027061829848985332430666074537056505378310250561650166154231801404791707006861249680865279828079014527092957307478819217567773290231801575023586997789296556596439977187176091972687822716099439290861942240460447413184914859180031810469474933754336780209881659476728491576368223380859334178966388802353813471342345771325694918737119912566526772485623592037551236156363096534514773138080660686946961322835220700908084993346516570033095315575934346356602167428118425416590538540147482009147549104543874277467384286483199045902799311594664474013878207099207069323490297245676824277110164757909273584896637212987720063691006521364439293826015741502439788952036633811470344104823318881594322831329833030251281069234871160595535874613835100856199061619733299521865523453258998154030704183691403432930908632250178992661165015437433609831492338478436379264287020275536838382753328910714617929141744591446252701892793790479366941337926029816635400555880965959909083680404197016688476370160011439871183718856518665817373957194996824916246593889440732277807308059289931661241209263273564079754293562668699601508487124129340988400527252035318667452638654599456895644487784797522696693912761911615771619860012042480686841533896580267094900906230225194939354004636619662743348316496321565723847547736467367802986667896066417528145753612621135439352859582693225590821046537222348977621799196991870030201337724747597700709388728228842840162656081733464331905019990881721841993500425102924569739682040283870409912206928352781158707091381684710364232318717652559361918588189911789441681890343108292916980744965039710280861356387493961783358665830299337717672160180566697049382213403469023789668913278908917207657609645821236129740738070354681262432981222213700817924289844264451376892688762283737855936820058298022335928069510849692824708855668134115442256598895461533846396966499468732831825585974198661326055807364907527218412925353840082038552814231910246332025131042032131143753811178347844151678376649829794435555950343277982514664458645041267584946661519883760355813016655531472743671727145264971378236857680497502618688258263027537750259373752525229552934978269687460411585516702426151433975872397321437305009555160040867175519856987235102375334106741981291002147483324628543039208292258956725661303804213425887175741653767877686828600979788768553228609438321205808282617697841409537859429845085977303197910468620739803313143134645565810185132239929800020681752878248701187265366863521519439584272589786677166555791670232430515001951649467000155798413121360020429389548666183926620417912141050542353603676896095343685753365056849139114564546716192254795176503868609888287475388765215735897542671087756000154479636530222451138442464442510032395316808982854220126103949758524705904408232575294816480611857147303376866033194403667948356682005393081279569659513287841368792297508427511603755913749201729304241236849101974261277784109855908536942556663919755887980317721688529168589796777645831057565174212756563800134679637260042939183500087694053322042344314820176998197133843071227019550367502221135971068752657004226090167253423619357527380191248047672669382357279017982406425011458648240122419533931099002167448964065865459682554461647040853697126647162511878658730690026156772578515790934133023310346117892140918122366784109133670685234579993094401611301322683138781424226056746629246799423541900924206332702434132456671042595000784097724936852866381042935893928230231179654873907991459905086490607363284390891666450448553855627082364071416704891887265556057683758427705820245655153767855827346401996032019234757450328366295083243033699373654660171223309709278741478604201308079764355581511021360652545535333447421657882198037941373341948519366540263757898403751965177353195589083255454266620826616748963953109901326477246364531344151550096330990957798983915262994669849630415108005681597285606608962808861836235265211543751178115509824383285548974998056468579818099677657786601249335640578190204341707306123555061988608705657844114452538879000250863282150923241524143207917367850727218570286304298544497805297538437849851386408159518960155534511236359515964955718654619172541021708331249917930324771700994358276218805975252601203144186630010772764595889430074109119503274543724534559591485710490849171659210424899102670180752224427273926689310597130405163162300430704176234245324316517185562202450360922804413530234870329394680381448746309315082386886401490068313595362510115010039111888670874999709660326833225784646875123600049681636547966012042466421229073348521112829677998401691303412290461646787485200239953675459887427659528201133040220280268139915970247605080041581564829002828901066298136067201866245376515976717482719669683537658546208034570579597596428272689782955870014393932908649575502873223652303376973069891996670493473060773662389126524143313310485287592573060743129845363189906277284588415312789513069942951842930272100227665416740095162664880227967034355141377448244938723812667366394717130851995244891080017155830382497249803910370601096733023900660370465856839287161425198662137884304162535908676728105700065431122209903976889052763351491999875511481439758305153364543215312296048536961440998148054194608523796219626918836106914480691467476730059151320399905954561462897019620275001405550996058002956038399552975091550865362254913781203449890571020213049940105595241873870812157092933360305003109457967350465597168623543119196943597028885110348346771320334878982373948542908251153559830961709737627791932807779895467043872920571993396731273943370264986562524691215812260116614164330945883874839135069673120124300501578855177695674698910361929127047001052920850523668603988486451890547379046573876391472481232357246421450645830058712692096560315670106936200259767202044876080548892708949120220218502928905655133938476739604562405490152009354762176953253627715760657256760615416701725958673415734325609378892057806467210231499310737849455058107260878685849860810330377186521992206567764767299136112879434278235580612997625656325712982548082920962311802568228646712116136135009827544682502212145786929963327899837094165826793651058625090278724845699248143773514447226122675654937205470590261113964458904156235306589761246080003576427708179998135459111076857269332378277908666837859543107395961548046262031552081387795460879409052616065744838670738373098524074684720247679766114123923318104281822897205250621749378874497030561691691634824118825543468175593687848614271453340718987324481766244955394360558101995408737020482467709067916238377163370517211556089827857514688978797714056700953518159841955293265615534895994175686311072248474798100742684212186294977335757633828590700648834434962329831761742248804355590817296117581550346190097881151520324888423972406363728570674052110067045060635609341883000562560442614763869286494931944289745335573434742429630425210196576519024930142062249850729515315763655517294135413795474124469763712584638368815018897380129337300906335972658793416592332160264258540324645799569357685692715155170305417425079451720446379385066161424190773316394695565604734160137886474093161825676507794817554438567566297296747803388946180537398517990249304390227131724937757955722893078149815646383500506524971288672027356918717962903701401775344402671322143768296092172938466800932260433900027483076908352459126755091002598101003680613333916934932291637134298163293126018924709517212746541707449441822701257671649686259847486002359997286764027288452650399328856603993687414940518554576119241317786046146398929258435784278101580251819202878884406574983132795214256094321841581439348042002236814293275876937421510422332458549052285671097091557138744548940470914747921141331784510465874245533033252658178154985973538526622087829214957334308760506373742098233782065303078292149458123645041151529288718954164200483256923604208879007013889302342880728604838608665133697626796285488531450144171380994665893172516781015314251610104733313868091724728660603128791900851912335113618426421738481749824146415369677727214148311879732678210824545270346116630891816193296879982335364227714134982222863347065188644241172752695123162843053124831818770339427622362480401813792368922055033265250801069836638295719420383449148240998930657413078337084589635760136589290907853169249093826184703822181304805956088193303758340878607002140762319619895969173414909010360457988464083854300638251087143081749394513229214437825159890106713079494608251641480231726122770787983228399160471331823200115559073489806964993463160404130523106450680180686233770080607299987378917834953722633641183179865642922349226460303995999011575234805907408173184243664080446922115563084348536671875626717784262704967605575369241582484649536422937993500878262558221118917566345927119379443197538248778896718922520236678306932593101996622144508694577175763964247131033209047103897552202116311723566801813459853770040877693536412470027060187273406202109183331043982995152132017319059494120973774132490266522163546029232000445179138487090698758255803923318944007448831839612225240261614625487024840298706453164516437093716448860584105897665911304162690471967833680954342374031934394595219247661708629845698841147642854292733020748141351608972259511955886093168174398008111547222776022935174088789188989966791776112874678721912805148754605704927348862263065158144101607715490021827519046673523630476746480219124796780992309027652092508056737707407853216293803435948541254644013279991074915091411136120081958990289118000715473667115184522162391929349418756157772155051024742733581493036356326124406075114300865000605576867053612190763486820299265059903431950357168590467578344670039025885485787239111025583958455853084813495177431045858877885138019864444287961892666947035554688650936382555109688542520004640352631849011758089782258626186433035726510894613537747896485645872798486754694778688527672124014464931152236416372962558289792972637024579595877116492867692033516303528438104357624383190808645940916966440741896781198371425006444973122905922732941413698924297963099163905959535494512378569329803995448819456231030318719328947591003256208219046881784966180907292245921181261560874000055958896180892513681061634266860668828878162211811215313144457035316771032340064180761812684563748782756311268299343705249904223263374142595199096990484536094529477047729554200293519671517087540160858012815931048153244444739130097348783167561712759355477819617996794180824334215006094886751593948921670631077226225973802635561050821894709143425530705068627836484818873089427893178153579109116386008381726237983771815407059370980813365684956326681734809382267570588708549992014320290822972677603954276171740808425725041603153397980071115007037263566725851730824138694287873881386605988425587742802793183279341604841350333780552441210844909272728514880786958176293494000851531436135420536977292481310916868449139965766173760722110657146845433743481713966702852254155557372834507580872339257577154534044459631928150399842983453479938861044216876251597743557280877466048756273837767465976035099442916075452288806917201427417015252070394200143897735375370232055023850101824458947813515633013806220594132480683169317519127692697056581517234787908692041102539338600082962748458741528850713654622633201131725468151486149249250405564437031950840541077542827868994874976168464558159481007808655288095566380238407145826749892985479580526238273006674285677714986819428048479603944346660035234905318628541176731561638672973505335090810255782301876221857199372500875917962863586621984529335041721540350477555797787615046335919970040774900814359466327219928055655627726655005449948203744958833519112262162116538461589606556742318442442841222806230165317299573516276438332083009145925020398765487603636160347730275699198310920215881049815615527167213224083725094202549908181850718702489965237770177637883168634890576473999264300650388706464033343832305346107467566847227177723910370424161610155386565977233925716480166350461694235798416422357950721647292601179574952919913152159195579300637362954955759350606421376814329815154715641368867593664181073020646776431247241144458139413516733966143197714511419802787409992739415225464383237131553434276586409700734733616259734570258097966819126912043507154010637438903066588418759317701880508783595587246387917239788926890825365531776190465534720683427327697035543403416041457115564579902659036481901329974193791489070118039400495041512720482796980684532380233921842194259617717931450993287354816893235746514629120929565577827778509733201263610978101706207719026281533192116418312080293181507649858743108380063572213818954389066368220243633811340763123483902799963144237449204807819303586733632085999172110303773012075731008436895621549783982099628888027803231653451382664736908299605872681648809596838031183176104776939870924240178249313713945758032856906861942561753963005065094599524525648696464994187348987059154093217987332067718791835775540721190312853337917052464384588270491421081567889223385205013074182946927822840935034603113764749596417310161022149040624751224681746980306070480361452246897429880916048260429767104875258768861300989142719385119631579279440374317201922965928848537211796120001151369030898954279569167613177642271416321350339123832975216624211189156100379539575102461211745240064287857264173327568801483892750884781418324689209490717093346057630970734465264341930026012960539906164663052979470055289218397849640187468884443263547752694418313584485245704210913189561512375917442509262050199641543883549845247413418516180387649454180470629249960462017798323128146492488728323542929377763115264250512520018417136824258922739509660800625813451589841714417986259586089400254653401166523297230030484140500845876522651677795193415164200876834716082183973631665775914705838996823881983051468430477044259954613007016975620710742828493482838234217887145365238320630309982076889621001832073602349423193704160744732699587010557250799045277230898781549383317379485425089719321460160004624583869304625963803442169878273967993065833509859722999745763917341920166086743498425345673408949581531024020231467865032171204995242900306926257716136993411568472448936206001057731219308107887177697813318234021649699106634382508966724804231952611911310488060910979505266394716752551906776577249947589552687145652071323508845030290653439500240769092827626488316553313970937234379307136119345985194976705241094007419748660091804850160540038854764708154771180464713510499286234328153887632660249193238105854611401860448157584536664597458359926745100418217462285237530306855033063971711004828720270390589981804074016794822649935966985031892330657343631041694541092118363863884330372402804286267357964702012455103151547802751408132103720751419718105945199596020682327269741021417820914387472575386946322907976767567921563631104709212829188990347279438713949304348930780994608465126343389056222189644326778522090889224475247574848732067551601456394195491065532386332110139924716854442610852537777854078965617606637911562816111764890246234141183744735263130575653017548208714921969759738385757205027466193597553915697046324465685256601607080312643116661155784885921984817218697950194797595939919803791030411627704546557495056101537631682157613252484257174158640564929718692339717180275333655539358650832811313097504515558908877127635873564351140388503161315182971448507844322938282896190925090520147829215487724323724405048153980778935124594058160696181157121324686798152378651138252970253184015859965807531219737115090018911822139769485090631964693723270426760598853908281855088280634551189336528801401638243265022427590500281264418787349158174617559557097794398208639237535122972526788361300929868259870582660360121783414554206676887725389537939373407306590947464616894606518790381113253920005337730799399113796919346366589046146564223415441456001271866016151182781672026355338671422006627605670197046467745495618110968284128486346882069772382347706993542936918292659060066358289041029149605427270166371366314585256842683031474927984101695910025527888462238353867875243677227478603164973272623979822814440889307312758123114363788618030766681229864835248841206111693100736097953181384114735156776440595906185485119108643369878375004577780144524675892598745504162407708906754521448452595983438693607089908160223919729031638902671450144036847579585303074881084985987854062104637475637315959249821913981192315280267694260136447388965721616960026844066204306840563163543610401267167643545534806661697102407719379131111365735317518498208155704809407133393435315862466525884009270570070739288594281097434603750732239209681923635717253617857669867771583046996073159016168536943082110622789761456194583933360127351848415785219262580167019620834714655395098987340448029716381031003117647647600194998305411794508883122080287472100198266389183180948200072880822564799968827692610796786796926148667148966494839659067178610161649807139025048196669239105802436535982873881722593452110130710249687680706039169604172427045914032894477554917581924833142979229061539945219296653108667862637137638965812042958560344907985989276478379251994838637217016517574893907411699051672501006136749699822515473363408364952213923879018617131513168550153361709971633226964988473461605517750683261602898361696967000677871221188592731197043456710371470570624725991752675692785380372152419843978282420940849449121244139510018174322152265985801398055183224402057057869826762037677692252153127545411352259565972314667085766342380295716876419880674622216662980934755865798895269401412699411819659001163951974108369868692901112982186437567061066772616703084249213062217514338914748371984595483785949690517123516672435142584593231698545631383561737509454750843973493093735919527734660092164356477865766449089340892661757967138552276966311766514900601224002408562883062260372571400853962289693600713140426395045956691179320912667338679073611183705769535297195100347493420149969632066016902887928803996311092075074590447915146175838203988741709223763562840770247025799470835502939349484864469220985482055599387111510501053810567666853872541326012768280016864546745785378990619912973405863639323669022192761787992031451694809294497624794101975036454579772820656796681485908258749808773718679682648398810333993196828526559986537973173563930177617410164088331518564855647078197559721675739394275492909044875822796092137927674017364081016479602677396904625549009002866910241148294950317031288144726030463940986695004966455425861228030083997843013343942273187845803594078204408137031129827622976129585721927432779322175889470140993931000035968568854100301435337938627831317245434527067332551409656941318417937592616367934994100834671649830643282559211440678134180236582995090530003768853488636811048848783253023998641699638172834123290296638064772663803289110118610927026317548333179430856777305207908807029541105595406946564536401307312497980619490365776813575231903407517401826260781074429719085527328069067288695112714275599629766309654854374019284444915730057245075262526837408955214336364803044666982092831500088064996142757856090549179186938104744642817814743285690092685517508807917657768287751423401035780828000303394510400894954968899202721682251694142586072681799221344813559502796548700275804893935060240574075652824125460212256671459644086160811424600171640675521775615407437350854736722060153471544689223378069182522071799711792782589341672923663778755154282811356504013934116279202689367702932887845870947643145769976482268768354802484955804291534262013304119249605806050716314301210044493676371627114971445375773781138051700519965828256045226274043251567751067535364447019249190644299344307730088177875736987751835054980386650567140864513947380494678770668725480899060420522134951393767789972740309341657116064795503028191771534393017650449505611643282187607781417568146739836915408202537635163429256115271004664800096708759174751522969869248234565167873237632359233285665177978590965725987849857632295230618510787222812432445755793188525178514537397891031287775501068860532577129931594269559470738594722759079111137744393257489423628120707000463391307657823287595794222286515942965752917418198476377651192141589859928437464643394170217174468780035628326807857611990843266326714169214693873799021130308610237307916272916571885196650274045325120394537151628677514562737006789048604172978926580911636022966475056241967439189242241260019652501614548194854303038511705570566376964094104506798266095400091420741955144576482160075835123088741533401136049957707504960090147805685522781996508452291126756699102744019847018146521177447931727661374579302616563066592627402407690120528076993438609253241025344650369254566720157549868482035311183758636172425301074709899690622591803380109431952400756496729892030868440922943920341411335719151748301233546151479606941797944361388468954709208576483312615444203002261163221595620950411244549020950655449648367723218196040511113030936594171563180857551124688820863085481169561484698569986195448601234695193432970071668428914233363790655191216297325971714673616690372755940246993985347616155593680214160183710352621131477969876582396032444769028811748392678284863695807213367407144222982017396643747217662918572537230084225072343354411080773158375251447133116533163684414970392906487013111694739410353878436319108456428238117240558148791205512796764628222830945589265699938526704241625494258631681499967991090279937773032203491006357742824863984684439443362668917875296121405834237264441994866197945719295548072173841648674374771714704315045435229066846437370024228000203726379367305630043852200429615666693428865322633410109739360380142452070670790078533372627379805929912841391396281653613816347622854149835298280358863573432196545057131568061032092944852005084654865358498459265579990226794189372952088235334346202251499504866015969874699302255875379493939461221240490562100283452756114161474364293108110807733070855410037814788999319450830962991132248354278491826329365498157824730251017269049139127131981131098690290096145272837917751578012331085538791807784053413186235111422101540976938761788285110612273541158493333719007401635053029742659908142669145004754555525996566321638875585645404106363753378106545096625525575098774919553798541869466443594720206564608594657297578719369135754775870059907930266904933164267116882684879603953237370969734954863510176571521153159840222237455454255092189397276480344943832622333029270156208884263124196091210461147274184559703004560160015576019253570263426320619884739573849938987316000183376381855405882095717328210693548577082915322001331757704763097382181322890524981213867079030726680791810312757578065291635151645610253632572957833291928122117879596537363310396487076354624737019840121398592803281707678775690895492894960340790295913125815127464440780557638149348493731931271544785372868049632532146066236014084765849683549488362025834864890467089291562530544405724439449387756517525733730714227409558306182125147165805217865917562259645736594609268434590692373260406443078446370414711506463625080629820553428531073902581904358101610944998129151557310089049986383135029575596325712251469324114899760065528431552259295977072436588545445405934423134270346681979363047477900992396778163270960989057626395884288500408547335132612463450402733984377457491357908294951916222411074129801913454455497001780401001506303150857848902722152919107166971907428894355087712145695973282726066968937574599493196218968138580270208070519664215544791066178307999625715791259132969825015210014446018246869046989025231841202852742691970543565451991429620329290296100834629722347155322544028571475280791902993386512197498983213461079890347918717454301987744521699698260859619404199392782439050437940001969587124561151270585716049466171779419095773942228122821262763073171098962677809798730502216664506132507465062624934173090897677590185696820416246568857229012368038004656514779052652819376609347920113503698803499624549762850986294323153259567848655853159570079866546847818999756917614160251809464646378313957959577207157846021935241812102230554632051245204452862623564537674345415321901976296588105556194751445179265517769760962140544579524314114876368902334008366711813207521183483141159319799971208261826202718934731984439141768696889510345587142741403822108101846028308990548335331081287330758013620059881940871157617113476276765626059188199933607077672154559352643317286565104371493031636242910116710651146905395288238332074752554463274510072508932393093293660218012729975854853248550983807774096642922438775489898692452978550512284251986615494213941129622282027788242610763875010887248829184846758576262931699456144373936920999958912574213385274705140188225314284849218679049322754603806875343349362766494121666669148915046813737358123567341612062909040280723215403049919893481712856141662865664237587273237558847058193150487933518402104263561727348566333897915351121935497108785471295052611128291369443131137559595898782348090723599648844832786636316292693476471804147969011825980264167041125744823005972407331956930051710678568311053928731760364601891108642186877825202326989604860620928689896308089487150525653878747361191452289594198046500522779646748519055014021412299697916593560604524317008257545689526991743887197715663890599188209091996615690813288894552825657603819016610486439280436264793624169564355324564940024009848234345805318864963755558577521039457755328044560423847445891585140799916950659256597826310204290390105421912245595466866907570973131802830185431817554800075252258351821489875445074439409983055659272417259480785530627342028438002541430496830361351362994129404655916463196274843659853962701750296552835122989856539225549121585356603647865297504382906732193387998163743430969570157682847502895680313917641989266707299267435970375180023152229589336526567641712513845448106926248482442368119109240309017266845408333684252844619140494671905382639859171077567871229471405832059354292736019583424079967764641204646084772112202160806733665939436547223104183068747739087809745701067892364101564393614193124246857041674162857024433390832786040254002417612782415276210685818696985911481425145854153275839704938421623320904634632027863248312916163033992003773174089210096019766705169521729356850252716211699843490187427764480855656656134477343478608635998920639291704150392779370748159486216317986630459593439313113531945948333523139430836098605766241551255786364130067335071916750870571804400065793528049180766774933399293286769547742069289168274739115552099840832541827613893071410084525906030403986546720052407999248915374637991471904155916831152546410601944992559701687433995488147694565490156272121357213727122511609586926776477379996185951878297431733543131648996554731347212655764624656979372960195091472155969775262746727956911781304057345400778079615804918653415986017975744580833137786959561183912058639446834967024268985155747902001033999232146212029730216817147938452488061860837943383244870686024954132759910499903173756509655390004939252352672118865286507805008358520343862850931204542434347107385125795420928380916583698896554929708526824245700174313807359431510002643788144739275844195466831771136288084788704919453785799693509042717466098535107882195463858222934031456423921292981429246637745427809909218583321940076247150286055287018696724291160110153257131987679222488963102767813601553374048839240581225638750866572545908701878525659204329628678141579155874037496158666111975566850042934824565000183924383491817991644919588315873222401743609785456774246887669193056956632946408813134765494906986324228527766237803066065561210654769916167964094005174060625607137313612634886863672953414045457412352825905783588827803984675423639182216930197587814936524266634027173389188373315201516029193369590948143345380427661513834898594831398068178659457785232781180330047506590331601639992442661137163375176483175969800729456287375481350637592886856990836609365403100055595721083797909996896896859826350224143571205913025957689722823712894519161967891292605284341958096678225698241881242034001155861385428656813369916694835519543434801723106294116581083413353883784629864504978919069432315601528712696312352472977217154009321500100604366229779305402516053569423541564870216356201898407971936470810401485021849697724646935628694939319548873500525362464272911987976250449339467290375905023169926762577941467461264812671625055650023854578928887216137661373544699127674978705276795576037454714073341473141831912302343487555936493510271976019553753890758885100214242787196654339431882879147903038312917213248311669543443301624765707814825825779196323209289522145901150698842999196771382436514345295364960492142592143436286632108817232915544692813321753141341475454749061839725843542095990861179934601480078953652266739717097628396704888136570947914988253428435469304773671254459255307609971454206945371657137760590589517247296525132475911788789731732331456855563083674968544649470744347260667301662815511917897152610063739362399845342994648394784112771523605114462960861662693350120285138740362322824553029276164587095412148591216518217551067362439493898444763505319301355422499808873290282318490340362024506478995133110357471730636589122882105597069720570148608577591765813910263481150500758676958820397223199100105960474855475324474065956751526019143465096851815514049220665553223802197011258119717727314201239068892320584719018654855006795309633393772238078019686196293982604866526218770039864186614415660395034641135763323525229938409004994852467178548656402900165917351732437055964200795661903153850476596113624875408641267092867939995932325108364554324593124275838617506496303232292352168478889531594183430659410397053305530781683024854698111530620982295778621664221294811548812150890445188928680019641333943799955298064444538389180701428252021470004151918294698537020754924266721174846975221820833767941288308767867627684141211606531964633883900639264506974723327243152475473806196000815912668392816128959620897795750345252045644769688689311872377282223382212789728281759057776397538641705605726377909101938830877863235867610931708930429834183105384843176453207319713402137504433419604476262323023808507037088947556102757381905976090380213246421149428159773874558249323809263610991960232126264640880171817545949676812336839769639511073184056241853221785000852763696751797259490383297452171836549400034732102908105710081181716985019266783899308588573220266022217116939764715197317102096363951283359194514868370762666141644891368945474771165473891354262798837086715922386195653165269442635111928216671483006100552153365162985000715834342986441941825869157507926872219202963819781475014793300264956733273498557166985217071669081929100838531460656359109054059768029924892364337385254856455136486028842514115035923314274896579066619383995299081845813264958625370349111278656899886207579687602243659954862815108632967135664907938178010290755528382298196833034675023135858923681339265069244497667372175995160177376786209011902385016424988737876212466221217249895936135173188483045640907601359061377631809812076542683196674728898433732905043530602540768646016432756078764932062526408433271276084940891743870296125464149671076034806951009982022016607263874443347622474109224250632377540673673662661530958097635114524773944813047868405822302932211423983492944238866017678902825768530680811162618947978244368472542110154264846528840123389278971472458063290528130250961223228770796577299031043968814806719810444063727184619881504837280131064232627024645166477589232149670204031333621105833760939975190879371122067277391427874784553380855548357259037684443389413589929282525140057591939837463991927091392640820028429342705511858280384476931933175965186735165747994644001172644122363365989706432451503045122030812447537218476390359987112930130811774520077370314775098883365237523866308425715050924448397655002821755388763373549011975793516722904876095016849596989003432117007822893599056866162661791517049895922669335892208352597800550240631230313998151557884081709094739114117814502907733518220435222108717785892927903237764684256709192242622670458238485910697275485123109979184583951054676992172630628443083917262106628052302598384278435785542237285809799843652421843623414603081079962275607651852143068871121915588372877497739560092787284851014819058870666444785134210046461360690839892142195581156994626124832632358755652591943276534732570334830591900417606775064062808290324034142581878737982334787381275377613420289633230218658504401379198272522260628436274668345510015750459937569025039094577262654192097156199710887542619924506126408450778875053739723407524760899398844713002700090578980408427794701040307579984973032776605125901316559086308326452689913823504812174777562530650146078760585073936894080348411438030029545944454921403730899154930342602044231078889775733010502482441881998249016729511341055922877905942884055966968234668702331226721382196754339339562098297740970341116540552694081338265693469245458667450225057702038684057796603151828829533551293813678990419621884173830474155665733655443723880022260430598604309749805792248754244935000850753534313601401988366220229551179783675193443098017551764795186791395092963302761923102479942559693637158419955328784806941157672331433863027310276973325947012728950370808835026950566729338556426865051598708028093564394749950390318018711643656498527292446198169032332603970498293238679307330589139578934542436166375396279420549777831485514479168767499378269702298185389872204068224856205517934129494609155104264188930078744124093471937079619739300048571829464216383297159679680756636941873928561404011032145640839623179176006493990635209099036239210865809298267924432464189961787033395328883760168888300861394729713171776785588539582079151090165657683429218838494303353398945705546823543185130293872654907148393221894460873139090330714193693390755906984302686951225084119182172166504709340037165870291943369379503264174985113715958857484256460656987679550020426895698216559300862072894258376638057463863916490909521408290561022422601086496968080407212979071321157091565540680735410541396514793392908132506487714716225838712419178693331454518718419402923517864467833935920802863496386537599140270836793031913121517791838289841790739082503215967221636274226980392765839749899512900439690098881039595525984445682263762089049544065594997594081784088914845280917700790231439430725077044478022621154503767071660005104291023231428317637563322513184863585242370902979053847971306885841149022184412251296485852396563845135166571169242318674901880831915890218766723283801945916417935559590969130989907032201069499789522150560189191223609797098182699598556386660350804120821544815480222017518916541922039952317666784174895756834314357242905298946943455776789553666009510646710777350368851763666115226987317166255049972196728628309851875872121617510026041250029754628422449148467598313399722517048929563198704891069134346311991362539771622294880100005608382227788939510890925813301315208007104178106272349411958665272970885078194210649293358804733502794836061251378303654924032277763339402328432879972308187303370720123712786646518526609716584844222055217335404242267436781110398808284599865227042413635778455334839678159331282173929767860287781196964822747779775835109998500284521262042955452627297788478784795451550639678033996803196654344850883906641103615167891230624734290783892666949934417336443232034008012831102711528557992986785433650223954812161187165181351554015446171164260258181445290882294389767394362034113636439795676935397712559819288739704777745764818537272395854278426180389631839812675166818596676319952907493303706914237911099098154975321997326337663805332348330085331974709675567348108689003829959887306888049938311764609970214919859164534713422677313719164914044974045594664933002788233993797878956145725799326005618869479807608565217420624589518129402330948208581774531136325473051781007581629948418971207125801968013343225823326621542193614088421172272372321651496814376595035534755847430646137094564971992664210970194036726418616934401865772139486906051556173946859920059672826998467360210080532576674011957811338065219706616763557397715732232006035405152285792910542699824642137476359748981744233746212704115559869755314435278912682622492228761780145642913255718492405909936025297625542761232520916506869831885037321657254999971304119954200833250469258730682081599794651052811531578238557943612189785427204591848864474164987207817470758698145440409905695087701153088960749189698906835422223136982304697647790999639540894800441832806350916283432710567311211074803451614894143672699043526182215779713734490502585358426024836363482183928980085292760209267427511313583920374511906580558803788735918016312741494776044452989783798733606231277041550192332508113343171118039287777095082358106763397569361962354321109775539043363113406389851968455878759173192193255722237808812930689520445810632701051503159316914112342342245173885908745249341257169652705536900528299580649786830662311563054834621724093308331569199198355492685896341947501943858274737186622098912297304920703819548588968620895143990614240244025839728592730456141451690893875600521234468580413315361088135802752813449978311324093140590507186288864690312465111633024518565468125088716681815761616587365761754196129676598578730989748487622759930836997505239911740443483544608316130445679909492673129718352214793182596713071136745810476237150544715002564488650741620316434309546125088900905093040464761143584894785107156580093170304887125331263860055062436032109118799324248604708736269842730459492807967094831249541935559579271129690848190152516089979360100498456234869929528079858032566809155264102675072292710179123909307264175875284083751108263042870624744237161308648447664897111143425819833797821412398606410741873023835343855555384348582670560618361161721776560311701671747755308112401419677037396583091478616582346974893364513943208891358512601497688480739444062534889411052509585708960102247744498958227308570662432786828281166842735641017159762507034159768595086492993448118431305575918399033642047959786563392592648311095068216413571463820846310457545378188368783339936923882605851667723149319763956876268012565586603859247346990416564538304891302592455210647825607667372691838078762755186737273969005443615335302582058016165462404489074561292110207515282293601623016272440652156762899098366104000537487834208691396021630687200326470495249635283155871197726642302712833747741210761144277672965965468488910794718944962047851803773280974398592410741573835574634494857995846764076294030104190768365219426334731847427310419269198390010086307136956903911301117065455627987538581934945293066903683295771406663775791255875063307031792732151243800004171342463414244152797097497774324370329015360236292232203817315147875230570772558803871592519759567022818955144689006653943955940450968973402879542887327865878907607629928645929397453002121070327657806391878610581992789404079538920891627670491487838267385775134138645399576330900125013233867729202231520372980683770060020645982060870072265872331771378308369648600555178903154403453173660294615004421100073903813105302419980391687317644680718983938156179131771067553887818150967578776978981862104675209826370344825324416508881581442889157560437981931302649501738708331490141390316396867982766418870888401646304853926451006988829337062607520290875783030150361794504979140426492642050955161896266819493887832898426560793323061835829690336144914929333806514554444904754014329547580945479627454174660005208617223758625878058115210788668638603843691617236653139761956319358765617555808001686279181771864811367317572223331600231205860155433093104509616173684177634823789496797101055916510136674204995858938446502962075595558075901566368673165481526712562134899887014588371541216247758726431102107728505258661298880294628659160211024383518656681098964448236887525753210799698313707537474819780528578452586943405359030585839053037345717102337703647210543537247359684621428923974802728579590931716080478867786506099159115158272911484962231755670039419890659707246552868855186293052618672874555937394989191879481703629705368789812083261771952055559870511540073525090670489932553063282607987739779145501800219339760264811662710224628300422121208385781890154439137163304862320684768894913744361037971686118733540804991841635071930780437832965757613556138510231109954502801379225855924317708208142863466659884774520246563688797528988352445960378347084306900385268114561150489051243992366615661134125727110528365403888308154951097564774475808519599946210763520895953664156125851292765552930372221840180586002683813135346340271308701244140434929121960918198623111229205517723937661939267093047572387634073899565779660189519882426295098150866329791963826949540921821241614132609296237263703480188217912964119073746367899437123880656026456802887927855924166321120438813428243367841752377489508998580086783710862526786333041907355073137533430450157214427626090092053433237861676186824590274340165077241796867865178699378057140267606686615849193544379937616146854186559672022028969373701706477508686996558677052321219661981765021545372445754718283621981206782142680448400902185053705159876009703140904184865269799355048173617024616540358011884331537388759708276474231734934085052438054547003298299064766650834770419218189942544986249553625975478813522931737662193167380211852187800856568874586660516631606884954507552973270755278269231169443878996171623711638549973431758617837211902761945262750752820164983792698349083684856932727304416130705359600028326164883571659532905545960861985558294711416835834202026112069365066532148312704252968392257435138989612699989872483736500335119716086541940283053675673848454136024746172142301911131751720990068026993812572496350125571331095088649398504585874356780799025417088856727702329162385642726057874050878631955724049688805025436922749944246140506754420003884518004947573249700286862893782279744805369153640216451016465431565059699410170689327569097578826566854566256329310913994883980573840316709785095113017619779496669334683093219616250222807656370779545979318431195907443483668199554521603131568767127567778794292779262191518648296870179141551259735830719794823551109581128304771360232064169998439341995014526104250593153605638854875566638984226161535229215286888096398836287820563023622876656101644587259820029092176455610714849713718911947957835836802988600701111303649096419649585835459592568383041541943933013404736635780291195334477729408660199607143315172352827103819082288708134105210342477036580611294772707612173936879709759584025893805054241955397160360705347252449416823255089816999105986042302631209225899474792109191499453829166449276273693835209225263060100200305924016656132507587813074200151119459368844289842527589008578098265883140192246597394069391888987129668699925587984146692785507776842789614507518363159757002375045218801863302821586597296622332006080547474098558988637917062863008261068130941335950901579102595995384525377474663840086220769798184930415343696639265347523093063245017599095137049874683459876071901824954309772290078977245260905243959484570752703595518188524643173839531516490203049343214361283311424047793110474229131720982455542109360230005834243319487965290958855516243962760912078169913730157445181381390485908392303391226347526122548182710782794664575675400661494685591472477692658883019959995964975692541097564943950475419505684643092025875493934389004141774287783057333058572492081991638641026688546531981595084900311129134494723620438746659807215364704556475508401680128132407284520518939361519898220886262764545744897735840631477520131430489382242021517243356241009742396787741051201254958214979112007384761758957660603608623366334765699243604457748458363669660112207863351608508895015209944199237758886920653907883626982535260825741460351081410482545205470571567449152012829930791494601853444975447590128759173073512117848519037114532886853399685862474610625991065340984114372235412261002551690127275538023586524133592590446022502550717484517917995110124621019965255484302600408327778685787155445355873860873591179241120278377634585208957288852551974380217268449917183640893853735280021785095981989012059883747057549604054166981229857855910394536072325358462963312971533430302620647471815768317853744215474934422668132657918703584647656694267242642480151273747664913299217062882893282665989649395650432183715400522482846459653951057439824560587879625209921041288727055432138266371392611789688553595228170639963674410779608171009648444459077901037809256780800058121198864632124247266167241656617511080411783998323554123116801846811076936575137215401892104661908537802766136970257209713752061616227305055541158857309398838898354161386006892812787995667147686860502712503934236044402538514346977999363432118692412307328113118016940400727048119179045172857094359420579860470222330667488234132109817234360007401120253007499399669903238902425855942827381244158558139442540915177507927672064826186787746101377427448234899310880548301769006727063719481839441217671289358629317372058249225330853837662351021693573101486703117600355738329211576353014483576253655451528216880045023524134488616113862190766279025668137359910811564070160162163136442059031022595386358399203949757185445548166939889383014920708572071609641683306769837679548955194391531598984684885606317348491298533544318154293764602737793770589610821897351193064022941017535054143881408740179474127937558108831053523281622260156221388798707456406491359163563970388156998804353662705005400265730786209737918067249268732958136857071899151006188357437211205506336104021242249484040006963529243192757104306075147254149486775221832193844462005428128305079910734331838584319363643548503391182616562137894590084024454427329090333925509870271214114009171955053784668381086349273864141944575323633202222205816663687774601915155652541360904274771012897995263922313058390112778695135744206968350413015340116913563196889498422971015982731611231469061155202807220408156794934737651248562772929272832038759007731260882497063516343633131086501755010032877508380462980745125270793035128166050235232166436804175011771922709641058693318978528873551940535073259093649258444500546184482969368916216989792456506291050180334311681557673139803890514516877398170709074499023286852907661161837891382483604895557839071405653413265580883750336976219988928251397883960167652241904083820573052636903578953947617057214902536216281091644871077363507063651022552659845438806349719837534714980779600941523535856799702063549927570372477399262845036049458976973019831283186710396119684382873771219270015646000335198161772442051498550485720371430078162549733810491493394518888968780714077163512260755256679124253288229304213040135662474473760877292731143193187310860639547549494639477032618843954548089487374172438878077927968007439705374242671228820482473123250215591870102380550992396840760113506775636610256983109728778422759992980445358688549454320562114885667178039683559682564282902509904031396267490833048974682105123121237219909815418035043799675253316566485846591036424222953802699080199995351403260538960199835545912741025400764677231406035380518780954208894078302329629527459554046934336387034228351014642364148530181089286542254636313807268781521365410656613161064527919217638931591034492070852568843802235822768721884790306738817542732436197725906666679761325132294217818059691300407681694002168068742709450570698267630719779899121218029231383739001781029275082966123245378460881059292078431384291362988617461327125997735391517232712001647086995910836865283404809849728162999680741368417460069324590806168599643577515691363414243784457167000466852356461512176907854524851199859801893351026874155189453070950127211065351093710570658091115954183103420940037235879098049289816152013391694970162010358331777475401489286736442825979230247242107342668262095051462354763091311584569750959818599421593220776558482516679647064823738745662405289942522649655116414643940369493448362214779187614703314337688068295074263228987755549023377516628393354925195679952511858705588859266377746311875031661511921682137471076762646827595479505472318078166547176339681175409768186222402031651223097361811501184615143357931669571972758777334177586893571839316008959108194852966101777939306402282144393731817782224521622983216838369884280497747672060702001895753139904936190327154595777500892108859575214408933723593344778719230061968116439581054836687851442089906975224397388231469985134091674741673793914813719904548995761428855948953588270366777387964459140099409625825086343093763354380067531299847212279960906334135118856066383417128494476516384884087277855133081653227431044535951577281056166374268414678935825973665782339626958033102680526139456943505180892323854337582860069580053550177738172970385255916410091121591822689762419495859935276834741208790594260632374904935563045734753384291697942813959863618775236048469703475707189802131630584957707575544881404790038880048108943884773638360824338607226528305991549407180197221143105577686049410863193578122729088491622812762842512383993511830734077969036816692882297268181167300877565417097924113798311849196419209455094846318787708277195046152050725290329172929742153866025601781027922235497245810804433148570247593119139622773984859443113167280787379852457082785813722260295145081282941669392790494637278937820307864049448331396578110575106269821960981141363990962875736839272350766766848288860514878344075062518599161145793766465293344703391806349335417683316678890991241064639716648881826584708989957774945635294911155918395778613573377965135606247046268435819919859476336297916514635806411240702457124839095249775658585643034082727830518143222069482514467635709394869640714418076114095686241465796922495393266821158661038717221154254866081834167407750481333550384597877566274172900137424351600171111130516791723924632319934097253900266753272921064848077033607982713442154456302976729027728310267891651019302419110179381219723523423743081984661500933970424553887857379340960201731974122846595042261487958829733158479126972788211621352272983810805480351069585826115009293693903446000486847500025153254473587415967377962526571477163265800539851453075858048966694621158399931795541959732751065287280196640693737013901483291460359102560627641345228032724119050151123742248240813262117836471583204745366257035497867846176837808331678754951729985348950960329257786610098435125643911121217758071111366749234341628618579609578336047474465843974049776296673954653828457636248110781358481208219177689897595008889436527018151446284540948377142181838714739653387564539437365263680967348391109127556143182462450290164430255167281293413163273422394956000543195623701138283902662181261582024309262592383816862777338273768914979496600471791103847135849406794979314602988091317247190483218600188321510305457162395405237520134214749854793450799291323841633343838864318698763939905372417274144130821808239246133999361596173705408285290805951628481271117996933000314950401151144379484917848762330781146502530739115009970294494866997148934270867075125592569721639585896282261776851824941489716375926982117923204477894636721880384992786898562055262766273974700192122936479556513376655785757542198014769911528338030265066286289717708648788637114324846609746128024759388200287061631314058887944337738353830088620098129939687310847594538538884559571402374357972538970825942708831343020508700540170644752208875027321907490959522548019573537381703968280705169674224613065611933965488256967993032465146990242352143025608384380974122919605973472558812922477673426137699228012100659717699327642038176183288141914647075360503540093837846227442913319352198795323542427450244003368720875184355442660773816429669284631196737791432058938608852101545765722184083608757463298221844930029585168787130977439734202540890159904033080122485636453595810242543479333876620136633656309985444356553908244379806310577064027923640262125293201515457925343708061881281718577702661161049456679232022666260893148408537898789950114661151374382761077521864601211796387166194165823465769921534436050585994331291737701615839999320464716341089982474229539101293916726565618307694184215494663831310371824630969966900324482119782937855247821834688255691304481464342408033447589701022806788085581827668463664986296938410930153698406927787628958027062114527759255686382597220419176984010850092824404612951679187768696331084605377036449236490243889278124864220598915245822512913600409512291731750336567260953297833734964716295565505638030359147043557246614804654144033728789727507515057944106025930133620537120492475883839903242492607898518416047160869873689163621375383156996013762963955283550441941142300783826796332749196976068555735747591808662204784323339961482155959685881798850532128089383043411078620032495191569720808579509239914423757341274695406344228982882926984353891818321475752550515362668350149553225000980855632951056221756401321455056892159809875460045522044801964518472122684829182883909200386667564274682647990609097356197032148888001254325289787384313276370185544786870532821068101789334497120638431138982971842907639831978913574938986135882167628331347338299330430033445119279559961103599105890233532779909069063948481714300061351384357501122350432643894160998561744660169096185098055747785700677519286206878363656844758573216448571592971494539784139134594572365005826961125929432141042506835841112100146895670328981639992453893065139406646813782147874581379561689023656341560612006506890749124550772905560492668382133913513061241059375902010481060107656705486787848061920186079879764186339506327531483989697725767070779497003926437790491464138557135698840676025655030778973624429407360123246148776858609919527683411832581579021816477983208168685105460782837599475946431470886375261803133294464321171848998637841337409523727191622671375715641743937428024458730869814598642943315411345515268122918943666465928575817176053139699025322327422130185731987573320561935247017046233444748568364242505159816249313602239117227919419507052062017092970005726879675722484631168069760423019772213904513258092751916749690966027203645797612604798900502423207771802055661703712812385437002877451891947140353260336045503280037584548983956532406294967519273408691318863267576355679912375975139063147507124735027602097708657400346081561347319283194557601763774960474283371045425290497951631601029925108535769654552699994829782063456013310888261418135376445209209174963695383907512219309874478889920222533266008441032873225640729523060599427666238623881561889201244031609424432469505598725782536376068076543087177247734339744449804400581392039904041464214607193473757252882642156582192078158243508853536692928201632211589561473459963039068521245771045167718217266159400081788586145714026655596095715210549613385727914492199068588826804942139430039877065364672632536474432273429505858064655633832936836626412370498395623368100641403542971625036773644895486083609645731122592916051928485435038740172914634357231021492678673808332384279890930058844082345718918943511077867345486939577173464240654171120211078274145088559998911307587032290880792840729411833317209529067540506846107062297369287756917138316673228847735054677346669247045397827283359853923945878060615037378893151176242625709367448596868724035681765028787981180559583709996323019447031003901655494457167833803784053481050917436657000317597796551164062118586238851915239916385865478184793940626051047724350111988309304610632869410992450722929755598839969369349801560940662531563159891772648100617679550326403935162804490943473410802088163485581389771980399569553628788353893368099268870997171163386351933153234599946041689555217024978361120001798708178928532637200194765225527265417123342005518634774083441795966088050761457993431394219115351537077399536780611735970217697654760397317498036226041357703016888869537098749440927887760859449885837919460899256128354248589705781796748890864534966895032755335987873007691019840264157565190170094018399784753268082874141162851607830034325928706674927156138375508728586836112766314008714827753349826800270598368692653668300870918892665005158897188288176945459986071914022000942226633205340244109017234007289275931017571947889945353353894028018793315351492952946492037673458202663084281426129078827603043708438128686276946454651984626497019166956180163854567348798788432517179172344234195501390964603844374841459538307978505372057880764114285280427369557174629048579885707520951882671652199510439672170816895384720375544034884485035501864991574843149871019005389540869967838291087957821457231524524521194541802889507226533663885460296761875760468283531161021705430921794187630489446984127828511078188592923124556808609807520473120256827311347535516237118557788131377062065753959963016060051623155162476680252371445881160443432188206966764516354101916205730675588229111698882728337204128920200599807147388790138634476805300955244927929772620100782899985390006439486837771983410873308351750442128836633404303056394818548120056234678484241950875851610757157507095639420802317615623784359661243489768497678381619440678681463265049505525142836157176653642967261057437148066748234386561010914006043898737152813115422238920896728886896896052279910157509525146121828699739990932105099169584597253356016030748252457427717377287677036779028358724493674916856786850844605429582669723738948725840431613476463959571948701831010030220718483261792534328943490221817969608781682372515324761642646626079534068574784459184251153800423528302054504565702704182644014193463072593165906722575081997376812163358668008080481448149045341145994066202910917825305251581019558033138631420410326408394786725247077488024887558884425256088926650565356805578579704776714823291043773239287062467411212438646313285072559423885477454543515572488622542149383474878059601599947422747985985623336702575593090209518838535440148002246888590793502171766028745792038382898259077076174175457569284146653545209304073209061660204943491588763658113263726614131995615280060983242310150409570483613684541562023578362555932282525358079243232776857613239529282219727487127430747598781037172126193284065567219329081007139217041648935757673096117221683380683323933027407677358976294051848808350322205941713817433235379084398959821862865225387157089357898642723889084013208559145189742679328454180263394750969877154676398179789016542176274029248319631393727929304687365491610827615461979362063659669262132035617178856223459313339353510418062050186850785083840336504471687044900295229058570275036958364640853719350926260637936239268280728078584869219299079284955955293209996850120797147769452650584639329951489482481106677985702789359868024837180501408787793022973077913666808310683934871289099990201710387576285227003178293303193940770716996990056227417556860688615109974058471281050591876881333003586714457537053495665274222273206860305115453553045091144635803060912276000150515752936688306417112931962328911218013381968871171367847011327083081413319122930198149571205621868160397627738964757304154325435592946409353041940367113952472614447083853199950838091413885538627847248734892695779222372570790697022860720903284670321882937619904081892095411990464238275463597844107122263744228216782381222626911938756529035552737501261725467720114899303651238871036161978530209522960624340449437230516215326046655368101702855191951780218775953051347123449055629080454243264006679639051208095267112855619138819172147270620380222352581612093579816223336510738537716249527591173046468118181864055154319973004196799595525917261808057648663154044351705277748266546673568929466330024360183374488512244723496146708763497855924358509211347529213551024048371050593766539283881273626090688797249030926170292780097832034519564471604354189224364424090363660651477329551309997570583286602378477753900124957263169272536899786160505390839919564744661151867216993305536645082864483818161944236960324006299500393504084392863699286963038117521294367923798186066671042853476349454462595295056439946433165309425309337837319303787812878701463663411240320355644109004161004127181973698648323587373923378975001312131633323304008327992136925436289083461459528604232019326134878166964480088180851224294324299159587437711736755668559148974870096302529118933002491007940794352752100753441614708231977781148659965915665361812738907718378331924009592819055421801668066192982629152836717451324480146003614578912539729057334489157476775297944770894165821119046969858163364947401548684948102119641300462243896052809614061932602061042195438795547887258306322943222833037247232803142508369568263227596413220576288843814980117238307922336439688320850859954020310182680178605933666097068494764904035793360413015957406562052353582616172434216198578144922359912066002456506679045857619959855622604319430756363088120609357224966720532221944640630696268015632255149183117981531154882955769112169714021150490936898518229537181324302582649482579640924137699904012004193633077020604974703915894443293133193218476428969096629476315887985682268273307806616031557881488401913751093337274864286328020503358154322105853570732222814025184122672948771406229352585110304245325475273719937027276254004692369629944874095935972939915647914043708504954765582733242658470916918807615568934011729186375890991645029749589536615462630272683811739821923057401382184234686228896315837291718852493258641470472104021078439472774853791984431044580174902157779956403009613005004629720195442045908345208446172631111362423653007331663292974192073977568456116131700353639591921559314730700733342868470983959327046354172885869534173496099122733508714196385957111433927967524202373834168295994347507479159763471805188506395744005039408541053191450484848515496290832598748982062813787664089111782839792935701774202340394780827108893050970611053201624484216374546830648625661010237907875061382879654849088547410390704932662056769898635215526722929996605668997196294534979334313572579203740927002630632457190370185868533434239828066382786711211994795973480509911504116400519552836529894508627531519228055548427432145427059596315894814216537101381804452192919883232434086621954387730416371659615527003352330350409197769423622072671890884294780971823618344109054986548218895925885675565474543064076574741916754120086896292948078069052392562218819435772594228759731806890217011411440242863685913971490183388801305217382183326222357828706816017905767304162957478303452313976748477435303932609160019119587963346492395025080211392713458105539384044376598141003973400955567796214996368736926220616403147167589320534207058596185699473556521438793956002021047022998412875098568718931627252798188524984196362314318098691653360513668750869806534684524718331297157534970321093548003354213394397172594918980576742847024539227336936558375196148600538183044327850409090942185151747839905981157430735200257537658293442335443494207235993873319170344040503873322574664353558108089296616503055338086719438983922423476353065977981040274425992233281380010425762923046753991028454406624188885919053416411875864765763998784827739360213938922130662606249823791459027288752165401090556580891552354137198396050508167144205525807659498283923479127501906592838527209303568015321783892130191794454717656912603915316740829886706063878200797714437121560170865108756274852122348671577760860740058939006911019030335536540711685369261632255558928711703251404011273699578516298649031462127827493627513363800384365575842523720820691734868989229449741370803087294630441184630112463650462846754328094845963296609107490874968139158959513636161588420649947262018858267329648923961326955151598640389912198403778408211743899726642702033250941263734180470108675037385843105945677955004486634131678260986742671486145250899544192641169417625928194398476594649707721620583233792859830182957226940199547749682007415805611322429321197483844887405262830299290301525863023689058923972043368074292630888620756937546682609470374211869236300284978040111783289919263130737265808832627395421220672141043667737510170341506657397755055827580331353141102306871986629814843651312728443026706359873133888480254905850889054519045460440285729104213528889765408302162018132424154042331379971756926544903371998043348344730685560083856026833256230862989332438532118211115408428626947398134748338812980757074318211111829280717359886523394279179517341727006852531349810351314163227912390769654078566898177618884550960693039165886746001308752681046359979814019982234556401602513630719310306360507972921454439274694194180329581509574987965972105224157582419674266116566120210365226713541656633895463472043906413977777846466368131772784351082698483290761621984816347833017109004058075377217712492154266722104891585906906421689795854417661962560531600400620759750202893227504056453512971887559783833151706046728262666233849891607709725960793529737244226963270173714404590694821760937890557891492439162350932013531417398344919451920550722634520232217996018175791655707201231953120297431559965985501590277041675164300397697866482889277316782181945718418636616412462725510964778429594308446659238391541208855492618601642994103236350921552443790384880762227929954032599797064724266510490452272463930602482853706984998925248741855687452256575921854036261888996354396941283459581356984049500944248642550074757505631465581393212890627538317691766997430917806360202228134465090062063735987917601723846138676296365052949956514159051807888925928546974713187743920394637036913295972640174990553364576665517852902437531257569569100630169055139169330765555724079193991375032958765881356685320261917613885130866184707327588330038135719585486755085514610322315564325945410699834033598138251465362509676891719965601178280542886120602759291310493831619298961686404641595943818843763220506477502088923273643137471171325450405154909874878193540854220870389514997611589839513035629915509976150659129820740532261419220384834038189293997116357531503778408975895489821814457162549540018040884960741969725113360327419304336710088133042228575547676934066549236166405186225557838036997325423506759176063300753560347378892427876996620330026501509904588872373648242559800125173431950282068343104234706233350531634588200678170816656289059043173572048448840221634623637625608375667216123074932699408349640697813510969629429373428055907744809305767683916233110920952693415234343292101496675424128402633515350464660330887401277744520228055600049720136116908000774584220917498871659624370524697318527408154434780045979396053179511568628108509730408624842898446464774006800139358892695364438530886445669465664852992540027187923277417981923507919957659426569854114818631238666645345697088527463520272190482921653148549925577944036429809038115571287821298678114370712664831112325084565548495088726631232298275048128657336154930364128911284055783352462158018795869952709328516841398342600849464797369646340166181473609277884199842105874481198699637815765982753792872218173673567706970164315614925149251336827904556779340043070804164237214956720106124165324193785500287432453129812028348481194265923241311991657852353920490774977513992995546502986942351936579793582737119687968869718449640566594109947967503317945125470874655160268749752590502348905926335157873836160295081572764912496560529968651603166456125254793821446706087017077088391530104817938291550930350609717343480472892033504330367371665317266492994041781393863644709609073386978667641840782956880143612990128624509318515295806425914062425440022812501014188975313255196767948878983500435799261986689910717090427222384190878383874924173377850434874122520776807192658945500699695247339007393596441833646237684584288086778710008979296266379827977991913588846524468542709763443123966018486323350860705555328180421867992265707406958660659209205844847022468074202938303563276220713470968252631232684420495042559482492759860479689854130872603313582020685032429135937058937415998621248198265818592369102633479298427762628063903388704804358715205797652596571135345641277934796511053934136419893169996736457189199881602803015739895232928859190313277867625665930121227009309085056149076126628958490525626714739396982740656492962043489078674510706066095486907314818195136025301150456161446586431974654968336632461988279245054665538910005550760054866480098993536464396460824841592529403995234682043467273987346916511072502134357967807748589380944400366233537788322856361688399373737657725391138151191789210703560861632758352808665684377938859168396727147971034978370266525033717211816117695817366926078223837219832118253773565750217419290761632664377803186636453441268220862402066146425629416882202890308855297423320477437158994375341393683622202406787374112574459320649923330363876295153360435474694032435386465547218166717720254981348449137700054958232853479510141313045367168379792094504072171016950833617930364863578576865447696415794333350473273090718383354846832726287821004432495239687818309109538504070033916605908282749256436262053404860693809266395211723809355619647752388243519738926817589379107009779076128822075706919707728961018999647611429142051037405116592149131546609246552631677154381196687752606755853962130937618395861569957840660665861545074194188179662338233199831823769142532873478794332385876999306147791355873295105447003688705711505024301003573411454497244425157007760591429483509906070619029834133519577470053908343826870725389941085286092108230956195321228934065040972039086405671979892663250020981412234829699230256101738936435399400046111508328838379443787885650761498266078938075925571875950795732522514299637655590822490460079249668985261330376619009656726626107062217799798825319733374020047124342339894680313488743672992857992610862695701871826176588399886139119556530658802687373842529578653422177705716592347536218324691785749270781477521704580054564122764398282829151786445990341959256803592952545982999995906714108267716212913461900421821646122133882363946014854643957438883242648194684275707518224805671308477909838738997926389145117217522526568227421750629647790079241547241105301227970295718226583856964502969136670063444983121707815821694190556684960037760764372693181717537327735486757106463841035311182978784060887727715611336973947524887438798133913388999518222729265132918560803821707908878680884448388695342468678551806569648442305648389303471758658452496028423838259260353277629696187792368949538255320819992760805316059254308594490167764602968367533104910468485164991012848652182694867731344916076453415456064450824433690924359047036824246770340516760211559129092407297695338787119948989584133591389667763274649923333070430626673227102126894880206621518677352925393964474012713690924735276266713526138512345666235449527312789615118173278711771353695933230965882208691265291707843751336082184231541908931927106626196881615940460711165985525589269591129216464869707681618346386173246807913826674808703922555196536942296218597772225257962808146262205244780045414537310037759905454714046410861957506334497744362976303812343420684023152073971700680223684556584252901389165045908853763899196680789692798873807520729139409881827176256769265806593937172041446642596026610369444348829504181489281354804381624413201026103576913651888634126478407119627773282919215183297709331986735049031878185880434524116370492123259771723965423143256118000378993372142409575700778889044601284621523294556350686957319301176161648723202809877853148423385531979712970852078387026054429869689800909627882036188402574403455519211599690414447254781586996682616730940123917844102187479310390367876617607220245065605113680561694644667237621880599699923603515642628269678614726566975729322970585067181423946051080127774647043315501429374996646473067667164213850645154542429853240329475374700291206415340861565856079865861790847876258405234533616268625110864013884374590319511108792160417821523599610622965522835044215309515654104047226046433307860585720161605247960620822923373512067412859510869622034120310931939037434421781044134875515628178778639916763287623560342045970811942392509402541292415221445601122523162159507322110078123040723959135823101583782343839605358093015202187899338686436779693505124379456088189676492252254978416952103302960356416442479746285770379028594479448992938484262991134285202517408953921879674173689174597803826186156761737230817040711830579993631595742208265383514897934380904671104754919231566158625454364545062964720067852663887696099776906727577183775862603027292593962944388190042830828144571568251655432914530128836560825010661005264077247149075572404639794853785266210514427004263580623643024146779961049928849957581877704247419811089948060220296231839141460824277950603369177083116193667927625196451550160923428691367971658962435078582526410294776027105215241942237698381148581003204528539244110743808658593931279374236359306325899323826215525668730548905259474779351417458881776744149140035721812609769637641404971236879156436095688713926347708288083179181192917410596865265788692168584536870858383798226635422575430239986652353388034768499109898117651965522148466885415383186708572581500869552234097728378783529806449837504601260369704551010332027570325299675811194756237085820146481266137610712527827381523898753657575003408089448416180810740048207593902997312118462209034417750116560787160770310339461389181685560285305034922612575201312459244523504023707646107833423221493596829550496528586460708000924753025420821121149777443425676897854981283725972053646360761410558969025184820596594039399329196095286071312756709138041597870810901503579291333379504645303037555872812659211442792470827805306685671964921480062754692935314499497365783068941882857610518244434770661591240174910793292830456051267845323151838878299105675438185514655521968716543681141959114898407590826031313524630484785176387058351888555841883809013632509151574147572551770966832050979891829668629629373999335882467357733305546764205933105872633569867972945518594860527047847119858628327733535240633942057967314798162642611470534120487615786911699911581829392873849151917783249793078379423242031716477215646993028416265702680198534788249098476958561259055330190269853677217517906789829042381643425830022984262976473724659415408439466266995015804379766412393061341960640238336378644222562414819734583140730126731714652058090187853625830784184059492885217097766771045806560626569800806182957676149269400897668649442959862354001360022695430664161135270037141059598570726674991383574678244740835385315958367355196614538802910428968114626175809608755344486961530500599108195617243896993465051282216240929269095130057092184445851264857187346790122499556691290904684576480833360949555202607240535817437954000458522149926088994023578079392360726067148774508132964327889111240875861002590888227993446371162498948342389054501489169574326165927934049369405057409615926662505417511976261758283582940207874004265611690338409839878070648886841792748337524272929798225830365056843508840548629973239907919871833590032996134199054749223498602366688523994241930681039277651894291170160481282800885439774610512071660976257357710848310367483964812642139405785918317599244013032061347362709372108121679171633118906835639090609588742890904748699051648042364659550580349630581924741664347689078813373533112337159692427357499812712229349576347379800708279899739256828024902759543287670523026768744258176643302878277152215192004908437092802773946687115677080449220007529006235546100121357348486462578418791769634587589019888262735913260623067844243050018554753965049661186969810125820054263492480914944490697983859647733293206865077459063709365824941061087049852205149645580653102986299859791427465836395083517883010337146817142130053987824595537843266686461787660301558053099552102749608947425662086264609127913222734043032904810104558315032513062522855293134352053114096613138461860408033584833995010839864005108837622867502454582935660588246429473110534925828866809363176388478331372059839223402770163536972327257854213424921425379207817423824504967610575059174996603920364054599751873678857599198182809505656063556497826099053215471279632861619617332256751130047260558074359692321377136742501218831327200913382868802460123662027974557957702933064548026579084067674207155503230411910200977801505672162282625721227679358997956674486360959352947049873408044498071849685982954038362530734796621120999624845687498600900776776540712344062988225875141245757991607950829468257470691048907858551920366427519067048133325037669300148942366193329211470135628257853605011084767504333843253796540396719853367434265139405093220024851798700535816075623760162091971771323257465511911651103970713407230963116405186380156951436700290419073584518956615170667720825820002445991042057417888119572702844994351643138290635240073366175353408994124584650971430982177262415612561872214633546279320030531882719841949105069410664347035832842365092446618365060421913790227763243622654476898191347278687843060953569278271474841577487544260590301645667572178484256721418213094102429369127850697436804789068738774319526794465690479838531281225177185799945994105826468961758268108511374984637954844350771560880412999001933913727927712378399463867188277322731377454282901691873310430198221846599359451651318098315768448865505876096276971444134756902817760024975538343650259264917614794169764081909044149436371747035662728692509328240630750175097102879635809998165107531922550219814337922234457215756752286046951541421551529828868269926005130055332970492625818819281265939989428695994840658127028481352621413221490081278495021024618060019429660959947593686095045358301627893349762128774401656159802836927424068586715214995621382025263806038666138144941912997148633948212989710284629388803437828155577633843217030530719204813921357537334444936853023113150482224160112292784268118194801680088496635644290422288041834185328865491093331889262047609375010661174624195713552741241243880650202814574975548775495552865141583262260357585274114918578604234331949016149114786001138747246582163390758231083425507921797105262028243859944240659651296289285225247364366309849398860710787562957297093992030314271483719691222386031558491531247259855084970742380848064259429449700027669251808834865192332660077538203233985745272610480685205926895618104127734678836054072997532635168754152341827833659945611111623458108748901945098592669312931572410900989343346318151013564141492347916081641163747000125363939172260770079400193333882402416004561141705702011046655012646648129881771825133066590266141318077956495272178309625478796669181469744603292725877798191663420470853045287549410957835470251055612912821961480475021146955591927916383804380502137384220717346300526331351419294954530612168001217814957891666041047348967793283251622028119216446790809638509539208535310541413830181676575199309374851557365821227583282154376875251303834779432375039166516473304132973574674019133195418753582737636317140152026561793823150096630342542131165006660946909297571997177730195848575127711038099809281947002591313435854473576551598789869858634170244941102591418636123362962762533658733869820886340965106556176298053100726236875080148748873225063741497075860293549941754869271815517935391921143134958250971861069518429460249831697800998219137132084346221190765909929840647902154522394584264177061071940129467027931309418330203531823556978334601249837441846711318953257074232209995227098652539933643144362379272579404692668143537252274708982833620777984396556450838407681098669196361329136589759236912564498346449994596345818926776308022364031372182524449092956848126648447842491015842327523858186468933843723657120793713278839906397409983169475804400511029392561320754140851837071513414535543177354124383283221656469975591342539613801479251153230409506578004942990226122969995831694835351224581140293476229956549377597241232970619060768498479745882235120161452704035302001190381104237384114871012411011638613158521918937206928530344748270455585007453617261116790508852836395789792634845594150609952442089546601385754673634024548566899936055653106422149480370753565651288841617914340653801134858940273327670389676258493638544342811579580180228400427038465457777218488963768919260690590014760505879483652323156107409205506154987240402897956670983757832777326980777442375543226732654234139222988167327546853203033077070188683858444671547511712305099950859228034055858032289826487156741346512348123268451342313556458156317994337077510216609317633319458276125481051842280900873145782541394059913226655477895394326718775043587378509667715878530596186208252753723181012696178659074023712177915099764771798447870923110777552726794423530921666944983712184266678730825193721327955664999682129724737915835582702139614743719888200851695116382594113302294486654362707375322397982867091468363463702900278248003678166766806598601591158685074696863893100162948581088456124794246256957372669260399293537301756629943622072782813864602167342397987824595243701307875137352959789840437966763028708999554255893326252702227225124559103474656707122190321477403646273545704766983850706404125384581623024014013833221412070508560406260151940786700232815500566555147625775115618492245405228607780950892931648060428252018052728039312922622245344246164132757998118912655044671325478607246852366833984010925369412203788793919265057019866020759759459581727087816085547568014439676617369343277830432907149826379768744694175494823368557447910443164371234960557167167701385322317712587812693852027769684334264541975060659189108675060920179698332695820326453396345954575846918303212935426683596954334086542227543937503944903399918354860326289815002822634826847307066233889420147946113466130310279495376590614698396654346496178919051449744748785554293456109237768681300634658190919692585692778709628388769214982854025999012262918547266530915799577432239744505946729553578758288715453957952635226209461327536940178507818659324795310611857350157656137067913577650517324691370871973073948948439181555839609224703299466125351780574239997394520561600737712909862827622627377819167202238026724857948162408336529119930937019108675557735478146614316550551072753255950094637443430416982794937508030877431612338524392109145153631828463354644746828809812488926023531595069937940377277868878810598550599006307213216550056626291321035657264276728894484736634181746179091587217828236964549234041595001236526549862329330659975276128133396735423751106814862343547918060756863088140254390319691933288023681209585053317922139378652981641370930011342187567668067577884068557235509375335855456917908522943080820793275797854199642838805679038851164349047994565416107410154445275504278428915164102831794424264700449321883354496985778149863606486015789691295452718725827548824688758494063584231575127950151121902672913035199429798235325698868198591491444957435503138370447221054638633581763189204543785900047924610904575720788359347190102654510283847581701428717694113684559326040528059421397438946443581513841265180083441509762970523909236699701431787777887657119358636567571779414031706414799813331709939031802901672706847048151514479411524458949637316097756128388317749684704984135714230619076636066955335077846659184664418447785187752444194033349565563491894281281515307879876343205676235669993883299341501814069745781578864564577784287039857773891455961423618700268071534144158392820421546866970184992584980742378107050561517833798383650465623588994201307832274929723007432787175807784655488543431101489167313444908919260360746063642664282450526290948762814061657608225100777324380038507611615888484671218787873409749223278588137994778023423180333025392289829218046532512565049366334550491802550344761679051674666153986756330147959062106935576829642749454226111317807698541185066590542744203487744656741722838765883002744333743436604841586970495945976831525300164546116158422736998134207134792155213254716026449855700256106912859460927675539081573891940836046131301831378320182271726339421944988818877418925787735693111025261878088796610839744868583626301836770938793850574991308719920008529201434889384081982130126391154466699687966711173676734888514229518921827300169257608799744968945510504464532545360518356303200865783144113749684415204939504536713125321948348274934834570617632242877863046169722573205788199651647728320521293372344191631521968963912814252126662565465474652631865985829883389578536148469320324553691106711897183064230901655031376361737965402199521122713046794144881004887364460077168081533693685943620675851240778673738751366795988535655768084629437908359124610055875304587010485396622501057529374552818820108203246292888205973603813277347707629812699516261822451901619739771820162759597116835196210602003968382059060479051138365799157377396040772019582417233849527551698591270476167237121154065713853492406671536816863416456962670211521189135463747798855544278219223185220703652896590666987850129920895895237966750575182175035231596247954390180860953265528665233373424171747378285051148961637385979204475361212803547312220786480702815749959938863502116051851871851159989251502516061585578424857719038631499859528268144823784822025911995805706099616710889005894950036143591852990386267676757735499189352173553388795974413908217184137433820678066731578917652545182136526245802705597187384092689428189822939346956936583119003821069657482018209151570806665885403594229853077230558849384309266060619558980224155609941375645347562744615495236393972341541297610070612237722102741987812778972664419809509220929485806289374516182615282053226163211010653680560663575059222376773763415839629846294035027783086598345779801339456267237563427095430071976134496028962888027920594760674856084555359216811452339643604803959605269016623169024239372792141840138019958441311363303839064721157973294637979890143562898257496885754025276962234734063478740875535899911463660608356565196986961723442704999195311844910065363235900076661921939769090563691108562226056665987325208307779415685755620127389533592489632228640215543965525333277936102081101377921682736423268712852954466967757831806488204004868518848642542431945244447753903648260602154736484078767970455507153858036447442383450211896853620007627082325399448435811460523613327186255140130397006494676376363332057916013286920497345400249318188830146200348382004708734259961642305945107295293085225265309928434048028709044683510637068718287894803717627220833868514025790391190631404986819074197483555039797125674649728716631966487997305335589046153625093532994560822893945710185354312192391480696704945131849284986888863673315020127526266982285879325060100509046602040246866505389183312786426172714003591459630277051831196127380067341906149407300866927069872082869642130839122011329065849173220530767424280176366938612414176613134711587102263133799621528305051779342437153497366584748770029432717055468903484056468061933021779104605242526718510211893997654615661186012703524424142822103283027624382923071206857717875795522373069124187044765035055668193602745996076826284471042033961124732164965011460826046296517047524023004736433036874900500094403807189545804215082155777172978582683622215452521611155383368306684131780250788648956274753321393752793381025035668385972263649058986359071054285412079212075348972158753869904741974512558829120854194554659232851257925231843742228837319351325998732144328783704704568424329803753155770215702776406304296096418830911686499189511729360555715834688170854025336723699047916862144012462285302161506953327400717667052073391639867093730857592446992593642261543479813038655986425357954228173698557934439674981162649469494908997567953102137350259857457831065623829418241717201464512217938589771046285470374461427751207738366197763424317173093937905372159143060862411886455517997374332454384100860192992389156862534365086606813331426232035436550870524827980978623437340944003394868433410091619992702528124540418894804037844138614640205115278482331580406774945152322378444453381922521204261154294671132446951525218769967245442469121027219791699482523261336143474984394372950031305455289930011862935663979618655317786396041486425501945604910174832317909440934985245876140442768796012334031951822770537643445654245982400222854968548997130617528471581323561948529103513088146176737055734455546624220115473380286796754845435981513060968114162930961889935128433220988095952617964773624085075939888533517834388831224661405632592585237600222753790706189246147448796491493067169600504130396376090622095349058458988438742058584168165958347136697276361783321634771077559793394191411113314487334788581730798939783970109950370626193591293971990236486587555312949232419494519188596528180638366951482438352121623090553169045598290167727379363071794860922496763258150293168725501348972127830239194342785992850874639215949212321762202530619307899061576961953190127481488493753352808730841600264862631467347132155420624648110958809941081461086052587294107006599568922801158384323587138591338548530408997242587195423642672536310894465333512936068249414727568468664987795040471884026597890986388030042406207119706510085347769801122602015313006402518707114158518817862404318826403362532924916964457015704494759077283301509485157361536140491543485392210459296508531066528378295325752940157301529228450606135559175175150704587171919329044598103839108800269286129398380870148923419429241570549796963865213913677613480553712094872001967729937288602470151703284743873788635663812615281913448875040487677329175783567016484948357925045539342583979256382355345458790181848299991714569738089092374079971394317101022075098758217078209684864871189604620822572198646563684792321541587957777786878622052300095911353502084995055772951692447930846111177499220087534199081903788656062810173465272313901743999791807217160993002663869865211256723955740094606930299170906069438760359696144800441917131444279211373267740062511710195535910665333765592776902528041148936900718826602805661280944270870667659095675088517675555312937844387335552058804557051871381165367414446835974069962702127616724253020044983759435611494977853891339056910282348003196869350187122222365193126702824960797794359710369700455213344570874007104537173778564388767611789094134059536466089637639671117446692828477251527345984537579198658230884916022149745164541068070994928592195588918362139009992822259188977944704263321636200656631520937285780103238409419412921587883692393262307989323333016842687141785406900437367812556984528928344382651753811978614050858991824713922830575776316481489737361038837431608785303463533669510010048050063875341243500959904615708142765671607716328071225286405976204684751713442616145533957723918249851605315973029549817014111301421504713775506058303816327710452598453519430101417166229483982190367597519894772022580101914499407776712176006606833075635540872887337757595969456396952797339928617975934304223236477629295002355103851899877308745625003287935506726523625910332889393815961496758503658606052526578837010829454375743513367034492229010068403050393612231552270086930693907849454923542187072426228619914789732051294915959543717843224542157806688248537586243209624788084543646801246625924622969846160700492761644041274549268138105424334428190111147301380641892223865415562973699594274733448654228960518050571469521216145546237038705612632890138764232474561892081680498955568158085021359466984043491304823628041470578274597849107595102704023148175226488927899960398977825965052878843760139892756328524207288929417382838955665025859613538804502899408609141463597761315463761847415296491051489779948105993689769316757315218599442882255623426672174098965693356221775926343078504258393250971558943504185036623067242437428672207040950393849356980097854238337360936553337906524273947592619931119942078337221762411097734335461852027981569414230310945249622144692461059422640422380719389639821078079317465661771455413736141729283891412916822582204629454440483246071129028972397879505818632192745782199093268950596831622029903779472570215632109924213580007421496627780651425813627823339311365135719658043572347062701531012001785243729347071455392912363850122133833626074260600286407945801264482383788942612875125325214098304428777287310576974751465709424605238728756668946432409359600285887092169728264141173757899246932537214922801142610789138413556737824994048222460491229013391399629088381476857089230341061075911439679257951628541148579224626118263876298100912806598068290585006810236794693043798273439047778454886348648162774930648554674657007105044922763065079735197954834754297960098283845346257755753512678380631744137824109943489942183878708040814092904889900354839505796930032602216001921320079392042748537203173893111393778782799500584381441369023638310720253265332794799150620056982018925019685072369254299319199465695910312318930592073049792395277565466866441096883509758818825894288819030580184667120435985399571686582535380063178139531950762152746028589277261018246176572082807708246870334964172345440094268839330359429376468201217130279902392908543598840455380769319735066683367791287723681813396163213481609650107532288521286308753569445027046557229620004621348398581132108783986889608020814191346427852962477240078465238920107648867902041195222682276295142050891737487549110137002419288129982356271944355999027958821668746515299491261531670582065340845452507493574610894308065276269580170741663099000101790432519560337524511084902831018186755123269713626610758533347313679864446403290216422261691852422475786244305961146192464560002072757165288058417399028476993902221178956138581172902706455828213108555787212775501830465833718660438605423194983726869863152318043471356484381706737315129303766764673286967429905510406547712955459577136895627358079371090425774375187419547467504756962457081214036560426204226109105379952563494634042480373088863322983233196487222467335488218814244015210595923335019364068252522345350704994876337432458361232631069618258504355477066932126541423141936518690836809419401560243999822840665425585243098922468339313984107716084039777672730330194547964446865701927178267879571791195223358841761943016136047359588188990128563244024859671324810196571750222409539300481777151781856057879050803839132067268494789697250895371651427414485775186006490676974032690572955918153732862096852632005669691330968838896437367615562690619578924364555476072856928264298288771844069318549807435262545961117253076116304863888239674291396920079858457029020301800220391358859436269124347118648206434214740467689525137775588496305741035874922108987029692356201463521926293424897978209462747162354033642333557284888590527002286301437348432411768776691577274573939443810843009617880264549713840335808300014537182387349463120723874007948917139583123347757320616904767479976353460496010338128640544693888774982044697188559434993912748612444854978223687470948406455168727562395111632912066756162661990418071027628314379180600954255045773251327065792470360857615980391054897663653233539802554156182977177938113014244978229686765801371154730197885331887336573727555623791262462050003835531490598934682551612240526350047325691340582707461047560378216525610398044300815476701687663959332043067874395946231295280991037585129816088516394997837505480918088015814611997887628797016798939666339632453529557220208227184520826689659366318548404073809166399544840149824899814917839735861677391801877561121171365908052741646921846435378387829045002086069612273713686926787963220235096065933204583069178129501414234763895803483372049692328704425189104520729843824816417398468679172316525580673101227862503557149521944290346522419917295871893696208996966417188465231291512461284032146922618071569428574328837005510814702182798766505485925893853827163850644702834026903926464550106165194129827134033346616406590200771556463838928724523131724286181758476200537947137296289524995692216067613564308888063098584715337453818604007972267432315942330517678196567789745042931703492484475842680878062562170015069135846403791990113241702485793490565780804988419845120145839245984921756951872386328149257599345281393605796077099545713227335591039776369231947812517040687136946676558742679288090412098483504026151827394372631146270311311012223774921400226005037125661932539678645377133690133797484712472629168980951085154522863841405088688137903473165084785260314316430472254668346453806383804129327022780379232086171278176529608086722972994976949693205704486963674060971312159518660432088725500004623070975733857700125028383777266869731338141261379631735467721127962622223474314762257509066877098060541811281660516520357224068578188305642600500426395497878367355143592932120244002838934153125357691034455087229989319871705842212010034471432639622511115101662053582734395468397192874795680473416705121439411387274035522050113138479510790686073689281490376020260894287313027017262255501287272994286222427049324871928162636550757726214541434347008554727686438111839081947402852951620091342744814629046439503531100247696123053693488752464762168860190818436291755946882639731486280076655696488601008673900814469265586853984593967037528166264504808243667921533053702119959518314146800139908347756671262128881912728184669858209906921757003946574444564016857067820918981027856168485818075645109733974656136994363711107003679474076332173975377634977418992716296817768881753885580192534727983093592997748828286063324956404479725445187087040751144652683115270837395213260631593339424895216008321312074014478989778138974111438557723085760784179800015615337197794199616281987374066520608421049322508686092957920013089474272040416779364626724163607174363588181833798674111297462062951327891068184927964852464025960106751245529121038989754360566546230294234457345025111285705496385696657441966952413695029484630311681450510025026475107492305917748504483387487522149513728529008065450592454031764659356261454586475841288080442306598349759710063354068561287439250674862294067127583358447264969417020272726486467104022231161606599877226959057915821156682562172540889163691689683468448055353352252804576303455677109681827255520395312743242858131289167367519066818506232670792146990453980788878916126687371204143937868259543481076487593784115263132465450596266344044024596131873908043000698945937409528126822432984639746147844527683179369454660452610914719635837520944440176306837458985131737750604658462356510710192773449753808029303032284580455806614027550066493896037117873727363027894257565961357913767772474831525230157193802326990261542324355583050198080354894628351302534035209898593738063727712486492759855401528653831949520535708425223447295833567732285774535488437958831514708735867162182349090019469643373233438259350370711443861901444503044295167788266170358336420962025776594061386555769110518492787891539334553253200980058218317802138284673215836646288737279254051891723175624225621318034626212784161732447587856249150036104560361614239885070146707223102445780595370723693941254794677958598409602868956897614718870485049669040511255678263045117472473319200743238572134663754034318638890540886421065872109386040458255876148727663536205345405452393963049512151588419852917354151660754043920142465744073962833206430885889222797916096059522741456463437785102343940560608266719322913438434046179959356156162900547201945507722099232993184067579282167495139404626518273371655046020455793866001319981711944541284109964019338143114240242425137242396138543722246568013467501942032825784989303536783898364301231523907915485945095397340126207515394340105876878773396936842992106212136351199260591509923464702313107413942009919398045087046707345442377012311436524478366556093727339056963097739842372452548004109428177891443327825447266800454427116297368380622703638469515940450007233306254908730514141007192070111424855260222429804487443887063048818669122256899217022940479560519649355096431096583392911593179069530158513526205541694239063783316401586656292081868076143951957557672060957601727423182003667852709084044974001968331271343865056595045775462157102566400376667439154681649020647553484700301725680553043591404046635667108075359474558494734897504977985710234587293017676027728766950965112306715599112184653763367481629431739891926508312762048684435016790282068948653772895540947438127275635372036452277725088335223438055578322059708125353848192523402251714345807035262485473783178629931279459168668813087741498055745251190697371422487358083625057400914370707068003305344385871605846722386310315898426451985774037609108217227592307211164501779904505020155962730353975441905651170769271847987004130802556390223989233294327268274814302048047200030104022949820151049287210687523518807050492714828457706921110571592373800833009967957450714386971799883275971670219281351007599113824397308533720179028327011692835365869840914512275169422949511403649316562476103407091596217860299880424625133574936000381623888422927263950128783792232969032104979113323974928642711542227145728602982844213987522106782438900239822351666134838972836254892793482892771665219641204523123551260330137817206185960290826633353320692090330782957318530100940890930546714118644541475356133209371521169790766265765153519613082639737849318694120540001477769481505252890338837194232861785363279179872619127244569228973006975606538829582580168560284919732120306789280952435506416472912817518997098622015008358824055105790670174965636039836035698306433668530714395195949104295985735617726921000350747602638807722038074766154909323673867740368927226233490271178735286796063767628602194823809736039611421552501593844163965430860402985630432951764108311643551546414434016377126685069914354446726302295800901567187136561454900377270405168322291123019263610688669597211730707769586364605458836416788352599701910110639039620544743323162237378730809618954850234410066567984418762750414018107867513452635092458080370343211123592830031411833760006603788177228362873378161204991487751307741619581532397131780973687755123018318743977818810438366688741366491027894257277486733383329004326065541481777470070610070850837029040753408335068370237323873304524246389172513007234169486569687566593042036226625285432478132997315716125622540031692591685702556182445848192933012409050104742989620294517672338943297615830875872612379968780800972592148140495717772820038372827414557421708476390708819332907480493779268141911776029364519245544827536472633869064675674780416885839574907036288069580753335254577040267793799958940367936270107043610866617802061704943760710540498861387069942309227415416040133413181492093829774830814414857878733361370331022224394403642473343499717723923387321998175156839526293508421273616901893930404228372109438932095183655577418781636484181595940057967760135361969725913824640587037395482536140812629959241068186801472294177483248392766336738999734485852584292592955869278699045211531084377763782629731192368650225950296770516869779468650304214300259005564891220872229505636381559666905611330803740611547425322718966278263215008124665216024100979604389350270581678552494574939268382813627998922172139425588058654431955077764034475906587353791434706065634533266068148278892240269084728064123323801978597317911342543646088974468094712009705561127191849456292345818969856558512408806458137687884197635634866316386030923399581447937038237534876852991012512655880450372327979739585434747073041224334298874207289424940934573606081892976376718744711279783325936876063196160979755287752694451280077258031273198330648081436975198164936259466418098548009560245532357698546303079460863275085472041034614816971726218444604700807506134368691098734589684138474652226225705713125186499952922457830438117386715758082279978689891833801496783448342717345091567857260571235129486819080341049325596455943173607453403554569956914423790615929607332278293909036572597497927945787695948125199213772614030767788087903279113814043446890160645479511290124528952397261051887207767438847632998362967629494612429696123452716208611737052271619783495501177781902041999049102308816669374738080568214276179115852902121870366168337202006541502038769680275039264236408585667127253679559174348586912689691033274732630696599187236298783298673001025727481047828685346923692248357242001535580600755813268727404953380006529310416806990997618416188149416314235149904220078011660235504018506178548378206500492977415944668709660041130128641693624510125266094591899881819168390715423239089558394198547765523867668266707217647963385550155070250058005506987259840510917210779107098084018823086165179627803673631690958831511281203648513134000871061770843338141116993329664585770693429609706205598430590225429432842977430573001909289731204181364551052217188345059426568241698309305538532547762445942976443936868841454549834122681570846707305839121566678230697061140400106503377528832375055614627830440108566619284202505131587062280970570078370187676658910312674299804102244546975441704461779078392454137306604102646577352577852881181184810149405068829506854653160824649221014534930979202686256341137595862152975062261051420435285750438977765077459539682641253083088178895886514020193765769136562203340728447201900142949330822812580470176149452431655190975812462238190643319519992083783936784969215074240984462735515322046917310805991501628167093485775686805717299071137185130289688600202532066450054827156033586507307149998753415060026489071854104707274542747621247060506415375908028790088898961962395355352206904559571507856107018521805742955328441933083988485050054840902739494611013040311906819312255293478966757087882609149405540673621655850093981402836083336035313500060541498380411494711180584821688778289953768149741237517892231850066928279859742595336639428238632622205846765882895258257749681585381368855773251078102172515612083870035920647473035109585749098539278820104381021865881325944098839905933025987741018027074450838365698696370094300876212946709797603802419292563877640095207404618154232414282298228215718788586957723664344183455647516589920536671054227312395401110063919407499694917288626134061556803487789618883310372530019110628854534641344005228168412187137414663309495108120313078751985331880857559341373375149075353252224324498692611120971499989457924488799660434758068300786029329142491456302295463509454819366223596838645727106038800943197547571863653499927960940826601916657416877434314144417301667469038908643006615725778793810379792725774085688821947990535972104453522612790341091212099200418448085862397750355025417203009763671379560234470377232382227766826384347288394602678602085570269050709005231879277837889682873264864817273423660287443929056057060927561768107439214126341976604164204275400298499591954844127245758114281060553295207149507190444686995377105756186562515172857654799586149950728843559652053543046767131491462517105321963130369629122828407240617222598942511067842187891497446414391315825886728473701195579730474298585634869027637781133864768454701559139597159555613648936481484353218837115031686253530891229977977712730157032935860792924623072656254111452456571488692952429833417968532884383913933704028863686601160332552955082269242210813092395007488166386149037828027039232848179928906000895350768472904207074593159940100394081543142746338788503391556639827474736270400872402692607349359465717946534259895225577333304749433500898790196869551099994346327167454012315169980780302366969328613041261191236281197271905886993680131860289431361885835723851408582400748149250528855949259554000370324762540703859831668770646086813244770454446896311190952214039627192050819001131249216068167343542309758387806345941038767886222192262560260211826190129931987500850862582944469706783610327351184537667181153626972326284870597714499948365933529800984935181988325221277444408472146606241933907475828453963100579624656328438455912435603569212828085059724311923735895305462350379248032656220619718065427011498963140775228797413502286715228156003557324940079437827293773444374667853545441442471322951005418492373054272216104488075775106313914946005654766478262208730455291715423952485562338296820591156322053089795943980072415333248619425534219606644115377963255498496802934520835253196006043377704033534155340438529216369914644539486884006614283495222917563364626552474197783077002847277014751863062876205350692334164570755602860639087798671010421109857099177009147905453727667280868042797765924302610713842308221075547442683111038400703783357104066111318613245543064629288634827703134519097865439921033197136834888360325367832235684431651554518045420930303323419554229043350407385956462078899936482916046223812896235315684576239142845568462336388193152679048932187046569279902795960857385868440095866263237445376123813602636560673177900763771899145897310067437009485801788589487937895068394520944672900723418087679659077631308801804520813798397702513929451522486485160835540743060755294225234727842239324499560582365151811722871194761819225428422914903949423717186312986019624128994665300929734617615292362397977192193543276426894215065117758019456156703787179644646174492750413937114664410546498102533791394694533986679867145787989914058988507374387573591243226384901082556729459908336460113482254251900894679256932007860041358660432693102757864000044401326834436646135195662608860837597711424564991839551714872088584928524404197606374990805534578272886986906024000739866473868093928734593135551747342385019354696621887887704000947875409632583219314386335367999459214561834017477347629309104952013510238520980282523877773172612879278902640688673289127598514828553633847158779919624125654291503538378474372569332652171316732402614148675621911937584505179190655327067753330679693624166480970350901876823357682068238514210279377238187777889338416060716131849687747832628994668490244376505287757129033680571639177166518609989726488685577594787486055062490840262695230639626501288606156538392544164230305790395452849271944429031069622335233874974073721081462630317149012325236525226626464081705684750591493855986043996962822306215462170350344169472388546310841784053219878669059028269360648050069023770220243128494204185410107545036321494706169715144938641007018976662480169274032220331435653919139241224450956351211281946993551668799373868271902259797000899445253676249887610463598446191682388696826653047840535577478840085696348956231329357893454823234001276273039010588995934910725523440900639598470927607621177548140407085456248506914317703779474889642415258546286110643512147296792038409001060632975505415713237034991624425931871155787383393889010449366222068930544633479224388600318656513455306797044829805076935480558053152137061963742556932735064840989055130247512935252520308357022855991423100732392308815816188680870009655662805095311036766329353618270831976431812145107179076966544365431354623888260378960402313234554830623030851249117595080950884393430159006188662088434611868812825213978895381677011976274209007293531728592093707675960033804380991234717832226282508742653128453268810427116670488122762342319253052599319790074186253558281407092048649571148919997623390901439667493880961147004461119737757553285828143088484076592151584185791718495890281049608596034842261303408669071954733981570838226850810648263030778452142582289194320756850927141170420670515177739197577962564824884969229413529022955350169062089787091800301182270721978894341833297749680893923676007501065855779428441198413937536875312549859198132753634621424255102020829164208789338465073314172860712225859541566991294480835114765038036633524788434412695108899790931922970854252543007897808601004646211147812827455554605552869374779840528843409159552200651698983957542750278775742176739124338073559160362854513735897327514518858270682204017907296672407964234498672770671667144448043568009144454659992234904115714048606706032189878702324109796079504882149557912172212037435357004213142568455745338710523592361892739881739945152271803270905818843250592656047017362690518486101671803052892544342881485482146683283633115663353383221532840959394757658626711410971360219333290433436203600244734363211526372896545968027056041205614223922680393178907358271563555807851250601079129669405219558914975706423063318551743574085915307767143746707595704676866263104356317171187498002889761375966399571175525982106727820605129511966964472441917872172680955313144932175168114708147660591091039498920421287842739370217113043427882847810075054176626563391187065829136932193032811329869184555799756762004148861974450638629301464824147286565553539979972929694862897654456867082688811102131169684469501835962908032703264827417792511353612322464721476320195814631684600240365660248651452054323917781961194337899628306466513964880430550301443491415689650569783437454031966868720561773283972122223654817429639883005142930569939261173730499992658037703580184710422284202981469283921137545362068321995788004619234684681593197458157929617324940763979020226469811349481136470337787276751672458376665369258999487962736066739834064174403768780110783338671545065265343018426328425697022888598677603236640762842998962374665570040713053775181462379875139541621621042949806934100384257884763763885591173721716170363398066790430214777246119376537353633401796350466077372683598571158750079134292996792989621652854623878428588871544995155679144869423917662166264727832341964568701027912522880315808299714365516661125683904441099322148902166769198847457053487588970920841046798620692703447136766297346701346583710735664782146154148213379396783802489433929775297553745232707164261382253229322581840718150477483396279432141000965674929027035415570807798352272087882396105020541901349877177844150556069033619580957970772175027136235614536739778746267052048108770144084218408998152703104072889630165875811875967534850934949120890637183764003484253117799455189067756677348830089529611157955071630671987655921318971178997084185063432439573514339381924288404161309058904154466201279539045406553002681145932958877808209381642626859947787142265776622457085064850314256929524045531085105582262309652349600705047283067392455750658587556301594146744878040621197571675382699524510010107371511358586090766751335844571730822341930378111631846851029876397226501640699830850922818831869967484437828399256191704373293332996772602713753154756482364431094420213797894112212260986511306799473413213728678135530975959791749157001925750161038451528519938241432073938135327040993728316905774765595141652995765889212143995160035549460193880709424031325120751341943577500193771276477103830902268775643780139960751164740999129926580981185107850940792680826311912596051332160250092937230388317795261417208784557119749366578033080052240459286377211906426899466215406058338797510027101128839524129266016746139669924725813560682495603464403318950137138449189332528143290721121942356887964340158189728004110094528799024810393992466674167698095367367127557890047680290018840894602074964770991600553645000009914201630232205389830590406359375437077860534156687984142738394191159479149058879069324047831579278972333165289787556820683857366513648247537061261088267153468568120446611384000240526482281677729038434352355616754627033719272730629863867461674683200450087818255399782172928920192069935353690515438029988062637469319729656118355595900534494925567517952280825913819207529648478306437730037079429974870093587415590201399013243408736075868656812148357437512032229557576039947787705510628166484683691664896054933067675986891995551797829349146038069812980647549687071980769949049524194132531187575343657764176903079417733115133209600855282013971710130369165552766981616075342661170466140946167669790563477819386085745432070929068727941147500860998968074184208079193309481288055139873447044044591736008054114660431670697166911425642898046137409058939718212182594152908904259497805777040490259485511302084169632332946360960646930375832530388111014323736625439984668348886215283113343207528488048097665698216728375611527637388796150508222632515147225553581549470781609221409122679952427648229686063013341604283046318591319843221881890990213857449548757836802090347075242777754580241235678590520823098179118924100112468032154647542428072694762234457728311537247060218565209108830888263012214700696883733954465369632460618151329049331627856065337634119402775008457669118107881916461126008076362876119720130198334907185450890959314051940726569463866194360787810544347852906518489267055067117005743666249233692155133127858848251963113288199013264680201551585387784424035691574949990346587054775038988532793276886829563544545264407486174971467712878278488962698922537687283728266504475474929940957526324132030087617335084827505850118360699895831331530660050330838732935152537365533505428607514550879261678684883704234526380171259588770737216408678647009896133793801525446201682258767996997730416071108267971493197752577326043242857401657563412226467881565836842723334433859749052125819336189861569406235790561836941439678626251213486598833730185498809801797362376097217437834914620614288045444174021335800681038172267197929229250192381186894604580234482454945625236112126959371322812813401029579084210280486475674849182732416105970999576008336713837244625001685715749263883717502419547850866230193193773221444998144620995320386501503048997466882849896196203074721682733331210848450186591644740128411493946934332358079585341916116184492790288527719886755496270402434273342624009791660272318607436184299827607773640178353630207023839623863693188430144702439118660526981652126890706611492282630194555412500613147512140663640559002169307454310757818548618869991119614966015274502427271151317053504487424934703228850556656638653219120209826851364942545889867825670228430454950340186858757848347767645555635008364255654793960382117970720863353497859313956657089793837282368738666131872208917723401517737942779591215408224075086623047509810537721040482344091339178626405316221574937961436203295411385042421125514873111558491727136115735056260688311722439971014656298890872478522285863076783039918064924853948418614655395058415209256222241809199135351360486926013531500567379244042142581398789808000815927996939185561459617235841831797668162398623889813194919047531079864295031357216237638846638595131466389065572380855018760639632588201898489065810161486048206384372244631346570658124961645438544472786378648081602433413104291306839255168972232026147296398511649464383816167528673111061352549152006654046512442449080757990076271141190017253249967336002615873130520159480462104602713494974202482300593662161208002004417841919157986900066663752665431826143663036670077799328877960093939039273667475884336605492101152883517477268314033711681375164974477566135502654411284932900585671726762236474853630284407474440999589069031189755838747556370477089812588489498166202672535894201511815757329648062702809635661244280985078547511761552710080651853301989316145317561689624162748926409277973976165429114272249862034943001014597751631521644080580768963924924738611623269897919348033868140702779317126798584361737550123926892352113357122935352948257860194034959558859616683704186458093319558534427973569408193085461855280946235917102715496041104963557070466798106133744645093881433549946243387206217349281601417391938414358465580176696373504459613616347242251326001993005433670673525724759968009992812779954703751791353265644575683042968479999924776120232713007239930545907035709925634903847092627175849273478782871210164796425547053071975304330677203565596563349081924343649021634412799838189919945587771729907370695073801064297066387320682110330881929378346438484092878244119256554181611265554450400691447013966358967655683058478850284916553205904638184537882683553550968003877126638119659087683660494184240180203816517972937348980720833478262637071880623550990593716760760198423770456517116724584521456307341150813955506590583906870639888559482358215989177376333203336365971846246081480334568268263027397251226493325046146164059688451213830372942753038645365641219767466687579563733348060354065747745563916401564202372563289097545614431015745025763562998579605745904428177893092818383627766611214160303450101604990754780652754197973629725939867707766510956202847474685330379369585351743258013902815505188004613943819419153611010557525508836864822610301542538367372169249001031645670184282990291481318081301401859344332211347009177050505526385054514533798578266657054201709657796775224733780953242435941713204977561680861160905902202126614607838583888325259218632797461836383042339498942703300352710776134638469688975845614319281235521972147663839971397205737249793334006630411415999713598171406104687374985232526977064722117218676658709337603165893028036156934436663950137169433886257015573917482431461157005959756964477172893777873482247514755883441994768627644631158209548980227215545269052772827299260886580731186318222858753183722775730731002331251607332044059229741808545995045149302496268969544375348709813604619540401270638768154773610715699393102715289869079082562122996696993849947422034178935262289411259239919540258969557067142428671371141786886361660067116955043383753323082492490212295361022247268704200171947224212372646122743222227997213985125100021344096601801462232258421730681968905089764745298167443436570278423838528887290660926061683404291970111675693707993737407168570161009202647699595233286865920058086551142624469241593578446266432490211099463472255340499160607519540131380882166659993656458004118583737486614930868563739501632189946649190928838455871997975622788989555440891273079215066077750089124428953974362042925631621859977801279324129851398575796823374718524011789573798391116178036216411904123623637388788131097742799081619913140352678130253334430144873081400595733235135602820069750996310264609696401383120568353119877664027434490672868082418617852229060042980745508376041364856919093277901477566209413144973490914901659835303763450114961864853362262037121651790926151091020804289209358867058226762230344402403233115915888900899403882096830287829355490040828059645294614516927109149550302012607224103956208751507107178569539051818961302347505464996817846671287197788787071631767220102734679997483937743124334337860622736111634927267852594786152319086636642589145465898021581413830201897456068308440782495758047732949724461807647019413179652957644902085635452221077375458771725061429697156741589239204412762012867770940269184652263333076891651376285008892484255413511075641718637219766413239028021948124593376077972866992762591695349451138586109929728419309016036832227806823654211595713827866347971472280869877050610784349828582373288521780273256234779490955032672910394545683710014787129121122286096399525337228336553650782344666869321901781505307378479818108556075042669410815246015710405029748951536274692110530044603650825828764465672083582786717432909937713582166808755944269881463912356306385915839292182462366119251765865015800138019242090869318342381163436604409556019037344718531128777254215925196204188137941986678217850084743701521538306314436229743020890101129688902697456152939098625329735782396260900230684538245924630448697338936452179627026396791716858885037036269807990310948424150912828773459012076345982661723766381759774046975315819010701481923751048693066011753882974075750820309964675163295729187502531809625725907922184082333407108980757153135771571662491356895190485450768732134315209672088817412280560271694725864123424997433384083775683242302003493120756362044969109090940783436405205157548908487999391014000088368096019675830179417688025002305620459002216091426735119195691599127539115449004101115297536840857367729217771712544817087656387536943788874849920369960343231121706876092333140500908143102312381001514700754293230488544166996329318753560920146731914904531132768117535754504209619741944824707546587346334439999870733192882812553332893412130585553896123489199033642079031767434442666622899958760048005325991917012229470004160626511791642326788427879738738983146760801195873582553648706548791102406459526149849394925658374528189583992420853424116174769684269129627971072196702015670001563567932853625964659734746451415595213208810387758762715706883387455350335954821382880458558780442289396751481640850665089441038561697841785095195359383447796823432598703769199659582931119392793746276520460297697755687219708295682613059912435126565314631272534373500667519507116575544075113039604213016561047842832986743505042755997135036970878058013138385521472619943290322865378764309497213198513063177918138365501241646031399951769783161183694600587259207419066934913022415022442137537313974284897270081934297147655173600505748333599163293162860528745812932674911604828549858832070172738278055389530813076419402633416728960155763020863321395975521342652464163047279536081769118425453111635254052506914293512787595072806129562623202926863164124312893879260837247743789674110448092782238095930584116837720559116476748274711549275234291909509970245304960305733709494974163142100332185111032899492415891407338972230486239747088880063607935797659110175170648840756526976980520185686801287200400441816305321794089711224543388270283922752685165071715645485435536787400545037701477135185555221700522241426356710756206907977864602692267150772029966632892098374193869674466011709056301384440799491149728417818750543936206577299838361343279276769196104147121645473445256925664213461846699943957307602204399045880735585932968982571032705857585549670543890922033701877134422854435883211000209089185681435272273095803283803582227153142353909110267226666204577936071659430183263257983445263202434197811144046504308239375418837367683899272370136513563290541301251969408085344422622946438588906925877137974216745119380303345825877607153012538577902744056888231366485232629043430772855922194398897013047383061674948393277719327832834905886037662294343476722981667812051141050619363617204249624065697761967341992735034313255339312179251632092578367269844774976317780428598512506268286957601061407504602204915451305182911505461696649791245318586557943610291689039123686607280078092236582255577983203711783698017748358638486200615446752081994249632051688991743607003085648548152133531926055438158682435457747060832777420168627226248576673048818623143187217695542090540311842521654251587472463171424076814489272668284324484694867973772983790862576357088821094484569474583334824276080041026459306586164749200244724233597015989863366560778517984860045633472004559575681420643134532320460828880929301791817342586946088945540453779258067784074936132096804582835218781010981024292085070963115849377869125712295231269684464133319819337140437508844292224001840100825115516009764498831083526035085557617090582407177737866608248902968856640910477515351183988777137501209690309931617760318874353031717745478762295474884961644288770142207697464681595574580886204204375190688711679920262903135920381700335550068632349070775611717317828268502939973070998891572756540260610452500481526540127017302592567102422507106384024868068134478920608854392118672669380247978062769498186084138734136132417747468432692936669674066709861740439846244805769228565294671185959558393586095473253870703766000165280232602654235961177493616020081766427117970866333887157433342092134313437630121609712905454796927443103148710786378301108161797217790863983546549330057180086661698699902687535638853883209235236688970850441474681991850149200979285069039086702260261379289672074171519530235383313756026584445031185556302151179190901265109119434556490947721485049634223799245435067056659087134376060363997728388444619114112464919206240357959164145563318159620875749085257965545807924502363490371619748924739029913023514453431950194888983989817481647441985445354891830629658361778401379902873136993050507967241942098638747101504564170441396757239521132996960985862982701802083509242730553887350705109711808164464889086201178492958604816685435592247674670366404859795963878518128898714127863044353362500386562651200334072637215418754877803992107168280612606069379653009434842845205844380986328941422079444321119189688989956334460071405977083826282415370352397775341238700959823952738812007591444962744958624320491551347258860568073390086177110433105462149019818556534565329390885094646277994155088979844329010982962953493161039297100794839229826031918803561996852023025068857633067961719672307450933529936566840019095986072942672064777455927117325344512880357531621140026242042436554053274399939512040758155006838399320763075454339207005552998332444361014675747516283720814614208998644084764900982383587016099075547208062456668584670849986012749458803881974962166618317368569758848675345055777135056280954336385804026473618222166029149580781255450357451889493686781366060698405009315167468542741589706552387839405755972389661802589720367611691726970547430067257782812286097707283386613042496387299764746259689499452127171251831922823063777118160881684953129214211460804195399681593533307993215225876272580696690743916529147886786980600876165334128453281100040750449973956408753685344075916991898407089634416457753284500055847430906480730160247898829298801583112421603733659338905278726098648291418869059055353116874056090155065209389248070922485261165182180065085247495025255936511156087289741446050285382337733889712651012787711311695524629446870324415165111420809512783868355907425389738120580129164741164758529447935741910606270897015229487083633018793929890712171906882150950552107010521831442967948026685427765072510830116791348444268722951512371220976533753010228149760942416125146472529894218032662562811422580624290805569107125752766259326397532787847311992230281799597806043881112880599006706252207565503896218502906969370362780677677096430955596467451228241437049048914111864199258317311014589031750661988445989390955505209799787363940164025979792164595772142988890263202107909202837782800789600652609116543269697026443035450590183209162692254913095607132552247072802708834540476555104142859578272857309897716333617336914730049045395304082064327164868627541544925927946961507673969744734015718532572108549037664152187052037874797786678392448795191508565503840309341404146525822953351214724281492957195931237491953232217203713148985219357400212129414757773130068861483548865135753083400449422196154147944802859375707018391263215807339828262670777977744795466146188499518978377113045833143248416598826388333642771147333726664901323522065578971306558381714031178939769988119273897264910649752995761908574407017536374542607257315948333864954418720671023769547665898265650023917765677887415858289550385248758352811893996187564319802992199269664142810925298246013059399321887858878972764369557446420258170012631255351970741944148128916112813453637190468534334191034993044458608142197885793708512733672658810163738776011378619582154765821631185517790851258625278378438511120193759105139288119961377370061786635769946842263353915851916440609337137770764823980551336032977275980990133932851492740350933866066543657182528401766135174300135727933096253094338076321112638139493468601310480835216476046506566309610313616869758708163429119182047203790341582461692649943525399255116328614147899406316321515539759444043035338127681316863579824255544573974141719594438444310830138510063287442234189315948566532878163821034397571797930363614838609851180061692430565437516472305311504778119494633794509998603581691694709626464594176410191259996715258260984833523533636478908449676380434404865764662468040406873425861204784873125941340305194379736232270637999284026012142976533787217397932258482834234876949630536143721040311330250730195610557258642946599134552153633500221768764064987858112021771944776259833033847259502570514207359598486103576788113730693936935717017859506442078932434070852880166921651409686766976280707116441261601371637818870580948155635532210204806479015934537179707941362429233620649465575647758082245577901548449483209742163748627980108679941313683954067372235151550123131847231092042683127018417192150427156315668622738580367342314552958425764876744585656314668576790554249190348101610677930426287176586499107005276162356719413418767247425646912269143097171092415578271488141221289102026461792403678414163010214207844810428632036360552647126424509762523186159673983106448659616523752706251967829267586145221007821948093793561161769174856225358681794296669657020840508915258382584646487088530090351711880049545851958157543790608964817121741294166428021776186235787403150395309234252592017532703097606635305001265983997647484589208832350814139006162084009496370583223640311171899454376089083574614511789482616580937858325244570853872903065633601608112996143217866780747183308614158544211328029921727586621292250996401219831726735721628799594665626974645392242056939090594884499119252088964779645856668509550338602787871176563884529591878607385800418065189014926103508273676824548890137487787639199750363956871834101793140449812405196172435760652057135369940440081980220795970525395163855958771214865000609072128795200522282909762329911855357139994116349949287089457204466472491543657747149418522485276155029547908534430192790683729696249336241892890874809990620215355613265725780152675229038421294536830307241454917516537735561323736460055775658612201946000383036597303516276524801781444340369036519187385406744242726670398963634666829977426823074423893434681534314687784274272103962632882938764175014362229122570206983081219157197788842646376956184585877180852486006302135422329250084551858552657689862454178304543172785166381755293777425569599588032961965878226186853762811548046477478581511202691043715282042507349786321312639001724766776882576651127065828914819763971567927206245747531797670875252595498062835418565990440554329415778779035734597584508002942702930422165955877813984457942888941136970709460476338095667327417596847947154469501504262041223989765974478443769158688415916530043547128347764966449723701553002719518527233282120601456569956315507846959540575834449414134685175755332307097978154386354626699465624645635327153428574434059477900491361895113234931444560315067613787837029771267902931166374098417952820108663066774773331587337378267972997644126823642708285362131300302912208345315215336001082484282781897993294114594703566080482981366897335798004456994551918022681384577603241771627815059379326747708773801860429694188132613371949360043447277870464220336852739682242284617894584413642295670714443510158806693155542004282156484104190910047171034719469502075436200349222138088576675353672825681869910583720721980066117626273603079441930925247432815046590458684056530810234956654810095632345887052111146925161709246629966840819480428107587036227431245069593502811754082498623632810747914289459645863981657140783727845423644610752227497037249829220495353346914661992006718286033574207698400704877995996708286197093022380601246543993027004199468299573936989123746092945482143969757225077624609528239810592995359072065490752388285791611722963072382250835014920408565090706646215654809854349889681749625282896866885401427476371955557163379932612741466504159574205846513541616464364569935512296443537430897735134290771904640930823050408342901301059941000342781474907346891384064489294078860076905588980173085824573866273612638618026392676868646212845060396179054678898970895463150763856014889646978733690622759144014151191764651822660239171141234431793906925111268566061653071996479405441669291387191615207221587598031539675046738246519735548623657070247130811472394358559167691929479453718018224559780530093657162922935881230170796381093887923106033356211292591111837652790724209521310461494594369436348062722750987807319974845730867632428977525859323848798607472749189111736848205636809597992365201701222598246173348124631008088955232970599760794553006545400738440692514884363829712923056594947362818613694259273878383904325540421357290962881362416869411235332833268606906975886075635119524250694491319151147685392540658787924733894614974153883559317750274742463098289209388881856930596707508858484601369976098325238634691790216290278625792689407918596739075927135139283804282967269639936852453936079342101939490910932820547344166308759018369644011299207833821962418263527896668531255921845908397042254390771918913169538487571218356960649791450405767295364899789410812016544751418717858872366676521091893452719144154624912565489015623626964843514531128972664942202984604079306121307912588265945572966129768955260758127320816896090067656036019439347615756964473173879817608767406626503205915949960074514690705635342946176316888804734219409273912723709201542875552383588447873683137915757349867640137421158741974363967881431507127966299722747756426076995673856696300426261581923772178123355323047565799936528426870783681365149262705895572017386928192401165902922711970891101311700054440070433920389720383719048478938503617591641365766437521639139187979029035817690874997886647250856578658106961894877977989882522964982698122429455256507511391399981629534070536903407628686964353691233946798898504458824893779924586963322604345150631587864395779095889433386187933971092235633533913028151053118995304110023594120230849404047664324368183807300333702962352436299501870834056635463677452245315504849830078842059793820657742122496040223121015945690712677607314815879812112585349130193340704555345745638308600070390138251894472214412186354955183817579020934864474530001584633777678334543669969543161918142392393259598195679377395647037784680328288568335860464845665441389904218079929056768264876164855782246074109234043605930098062616873055403427002779285307286593429623827398035351957043837472607396655936707107778924993197878752549601263085817575717308640401523551027966033310346445720425237390686477388912274333420159324943527525352876203678698162788483110172600814115626203282069634201199265756143763818157707518582520748764820324540995705929184947102876384409648071855987881302698847640257310328493618805323690405924243380670106321140136029848815600220240819738271859054808598367642349757497780453763676495403888481784686922902513095783883408680363581379274046678354424323159812138215862313015669711252107247679189743295281684449330878717967639888956706155548837953735991898561739145996711602338120407397634428589532785456081579863639144576216619188988172476820958191694952711492842221739484678875623196195912915123879492441695432433669825660444162355981525792394982268932750288305126149028749667710910894151707818906715726023278113103995174978904560719594778507159336789202354694799189490630053731541040544094211849619109599740270216225022369720661764693936618605117813825273045990281614220374560391351122966955076691156947128511301146155263590246040765623292392246254251037271235379312923626993350259641747986285787969268800255716330068279686146469835799555869306051132971011325129980056416419026725166591279643275143154292697431898087749225421447186737941922233627502174555897285834014195236649977764184047200401108720210746343557682637963103962999387740709650636906686493371020879905235790294553888574576379084379605383685417747461532746595753514358641566749779143086206195653440442532963316473643161662145610133315492817343549149064277894586551406148942625380339196411083108368010190323652344175262904699606351714646539399588333662740829653022065981758359293473972861297777002210928337025904906716367659341607851559103363387250678038641920285772824938639584085839759020284340368491800313968222239272327546019632452694728902436614672427063348421240992482260107831762185393122835924051893899267207173400048053009191006910532288155404236206382653380045331966192296921790456663754615886074126100656240750613894170506625539400146475326157333371149460782097667645521508732810043089676924951136554514784309704413184075962423760069651233922839647847930598208338534837392570019715360502875796161149949453637425972671076728256961407768235460040432789155790185705948573531496812491677293887003317634286462703343805698674521705506606107895238273611536170086164263561145342766355446684611398738323809029942924059525367627044678041863129728428736321676017683633360448139276033370619387802653705315111392894916816850471340298169855305047269022354795877826287497137499555936766804291100237958532086891862077720173644852983157230547959541899551405059087171827323894631097396844138075820760489767064125652532871297151204929566917441431416774410303514788497960933617490476037219467530199695320353366357126837947758410718822527728745322577651256811387964463608562352521651526309773291221342384167727109680180667422805556325953705308291794714993387399441137751126362885426636303668766385574674471450447403887996672635469679853178725842528782815619315111295864610232515583180963391878060465353039377449387021217785867737369330664990889792755497141537649282708518371720134548197049420631426988587777138844280112493118412343662400598158282792343199914823677177979034226156061546442650892434079317012612899396715366800068337279537685892137492946827529107135208789290825114831491391683895143680129376294987104177345888032919386626572521195278580537342147471820958420474643020700737279126732529987163509237764421744993083704638043550599165413859445478724543815263484908568602102185987042018186978811322227280598935697611251516149678990376510540706019208709459197568775701994278484853162662522212137912814276315158973959775741354787667737799235471217190710367846106897317576143360995579651858324074953535477417393683047169452975242986755339469958038841089120848557897005781982742604909165395157298468983231410224758836480224385774034744041354589448116995514465952637708107259083417553579674063211124625517668904566172155734899133896192532096449045876493533357404670781767812444098667165021775326549794271904437904484692445157675529381675229484168249619090636376891754340785404925630722379594509679131789313771333848920771620748448224076678219598649204286282922917031730937913092245363346680405565659955356158104272208295344323648268901320234899970374313457051827279442467793489048013655865157677029665846411932446566763676610325953656722342504992467893924476542124811697829089731103795223039337156394950875153774811080146252473791866079878841513120714324039026980142502544839544600907212059699946649844871739419436783620195591009564012668862941401231667707643536488533627714151171121017622577618204688828354174953071725735796193969455136687466081443205227770909479827493886701784641344577931771473998790272382129916615128649758710714333007613603649936102636474701379349747538601465786766452917832541073963882557038949951021441933919591458525533495063662976625460962885079384074148548376885905520831401883987719701213924669384427968880495155477841820886999439237702434720666258161252331827046627395660809127466019947443620427747475565624168960513656324575377005901639976349415017890766792783813671489089264165001896981131949344354950046425784568690769811707364370651223402871196120428560852111392590383644911056990111090012566182441336966871375726184540994079751751345573463986682896641869260072390401374392166470675108437983266062275848223096946968418265690462880095149737939973494801319251531118147848369487258223264514885919518795331079198823067978284198641563875956626863018786706971802919001095073194948510850274694107060513746879227000280090836612258329088707464969614963922059843921461286429722883790232188444135742358953596605100593167025614401955810970089017430340888116189952798296577476802123835269844657173972780910150812537696598254046638747242063764324788321392604551794525617114919947400312112663737446342023629003186810832430532028005194984854004013579001884446471234913124799434985353114174273688528168573872118980733238698834579348027279241812574443164776080615980946690357781303561480547935231994690606603653822076591617923672880451482364654093933229741966066118982044188097413085299252549939035417081440554756364031107488626160919135140140180910999165560565793331436103317211330327537438432636913584867798137968508759848048729434151474367322161582436999972183885466025592040537263491614535488829231126038807010948074244889886356533307457244151481127424894442797828427905231427598126090705703927729482272832315929941138042439941015678329298131294067720839343048813069464517080127532021583164885336447276193537590812795894303063955970554729230337488152407838982797008582218926973374907722968530251804098165965317937234465044126412956366953870934656334576154831302687295978546142559165947945215723667426143305274019639795532282777262310776509728363526979530009762207449542746014159227004351618411436231674610084209880540577208407690118399251128613543711539400579370013657488475997560210374732673753192839177996540093114942094021040667711455247832765945633558680319469818317562958119283854346714709456601289178843462140100652003590962524490455242754940291806505226402057016701388144592038208371305977619463228185165662902019037451522093790012163355006781586432373337472918426966371782457025463322317056591790619415822050811716275900865438513021290892570101069520238104947954094430215927931423642514372199835841662566603185055890867241113600632863563050546743746454516249717350234842784373411288256318945975978578037368437478842074791873456791555195128241394052437471352476020757271875183761976360090347275770577981654359164913792598456089136077305837163848231119834213579888520877852858337303732560020067005373195209194408614991623432743247432360183503678409236111354528733116605939884581170879590110972892063431258600679291357450423908411415902500089494846809084999092161335871470727873207848570148408036190108172844568166436480916661589386174091295493605913546650976336700219936403434129201792706116435468909210135848808814629152388837016887833270320016684543898536392557210622323667046525675186821358487692608872614968197240660269983763036594695207399159520227679654687370513806452228765126157980728136417203429046942899270988687469988728758505870473719226797908183782390415319330996633987959165568816305157438881479795669325617695134035286859848789371710531696254078876664286762132547747917400793685636765370108370311123049308723556695087937234337373205686140317915878585603760558773746681182630542737888487790894064281220799849507804355167820270134600382280806167839164173330583137087589852087018167381156688008456312229625673891098488214966067781718687222208827906852222126126815734006992644247440737277876889376117742541254630185548695021964851911583538497639049595960856354295569872032646766544444875950913865936575734749544102657976201928024744002350717685846294323682086470705495129915191800619047696463821348251191012321857240669493968313073189878215762039405592398487839809263731063530714893027743824140131437074720371506221595158844908519469746062672850416297972035008612775409141813425211923685672916146231927874514313350133956641781371180251088001061416414474463065659914897485927863235172676742631387834719684726779218378767424355480942902384436070704558131286044466791985117398136648587964186579182001398181322676144398670678000738791730678208681681577628623846403746540984199171116954926213151112945330206263224807597955712763133402351016774809147934133197989550287940006273226153244933690455674746118117693046114817316441714457802038660195961758349952047117941267905196329957247842257334042905253760201025340409183954893455714359172365916929819705579819534434992353751772042141381169396877212249930937649775395777581418522714827816694461637492861997480680012043706629036140245293009566890714943478027322842314927135952651309117163824259599884313128681806401452542806197948124938071813757512670117665891383573463382258273411737810156991580950952089939011442563812130234951706023600394904330299670381818213258106311971935128588083383083362699334125649229621042848691375808590148920506645454340111253093613203342222993253849768821823854701007925945274381067194490593855786952116207114742589918580392223879865903139994067046779806276856235883692303763745248161053413199875625098691329006091832906912277785827458713066536123093044744958730524432457355083532972015277479020981146552948802936399403474441825422864066225466903359649362330756565967195403577377499255662117062409503811553436502971681960963840208315887458193934859211979392028399071546029577277555872380196062419183043259794410658611599040428047831956782556979814362800646213001580378307263161534915777189114416179072470729779413919886717197259524240455785703854225132520424921291016191963392989206852711429705460348064096711927981163259971845066919473150099890311083262008441588090629141121424898118816748877776148354011906250345649877607929452781520203113969347285399120423051121186655600700529561844183664485949034505585600942197038446580473610679064986217356506426841249051041824623076124809299730252414945755266759443093776636265567580739555991540119307535752257142920780975714687947295214185635757275685279813652510561354148738730265419258295693814150087320984250321934032025247664973582511436401312520269455259008918280624248599448683232171790516773762146365725226055728012256933616617082413614086869458024896505868040066613275292122005107023341277159550111946946310288540234605529961323181785346331877991232652155719611805672181813875645189217458755091165991043400733308211186743514506234508065624364186035363379586277511714281028767949175804846314748901213252883802566770003261206839842218070459616479296067934177713824259545136410596483484079736843206711489808485206387838320361267310812055690282372738418448254055763773516128414968780535596299204940560476597251432374433552020159826761973767350862601296458936622187022838780750895852151291910018292895369933475686725237176007946266516324056874215019560834219257891871169458080450478102939972122136557448298128575818155429491826929714258981531823799001656453802158263547116630236185989207847362787234693183493492961541088828951594022529887238915587927578546937649852107678398210648850779461649013715339063202404638021690652743016282513847329250665457709058444545789799242475639486041948675458122931110643445883200895035725800448675240122689324844880960860577622906776813019783384895850487770924706735614810201077179302764151973784219488695905396345384643181865805796613096150576743125705111813102422177517502446505539448861296480877399171834992744928913801643843216812427763409010506524076690549783466287495599278645467603296999052964345767030722235409220320603561948289665072404787922217762182743320497578875082620945565732296804294683115361339887234676595883405054256557256995239688981120158822325818219036872010041179985953454357254140749863029745761080785596852344679987230010323085934029077435070987430459214630821497653195139982100628410449423526736369893833573430772543438483680841841173083888147124777080710310558274158760256569214840586931999415720530754430480221006618920818000373226148732840124334214112141984173071666181398779366269727483579432979329258349797835461089442960564588251472279948889267492954694145411098185104162039312109670839640678978705933158723540394221038081644620271165570811521263828122082106373950735372381012356792841114095293882889476698482105891714257085241882906200729609201406254267387967509243389395497423823994536395114167274303790046654748600396911290884089680967826790732809591990133071553495879921655480497769066690670168844833153751823123231817372194627850142670434232066442480200876247223052261780867825094234235229007408689990311564740297807082227082248993194276672288180189770871537000711159528503210234098228856265773729996537712451857438815919123360528947492028863827321086238931401876443170848591350552421799516207779475238895227035376880714377792301966002136915517083984328554996544271337435187086232171261480285032033248859893044392539681359226523740572204795674774817960603015603865980788462135594982337045689830808994487089388479627696716819297109424694031258735944702247837452660739546730034621652465324898340957372953706312648032363201605969957850009827359028841009429985204959671092585379450333680069539709351172905699701628393293456648948123978258558574417785765041646106204195791827779819824936822132099137456780975826810138150592220433720837252394004392622027849068579440891941991676036692281629040353351190812996072672827418629502871544791587190432148718383018670214032611396595638040287435155451734435181581125116764565348977964263233067178450508020245606522386953809072336566908463154810644642578474816038606148190951110234360619247292104814076130024649029736328329821592663448690369470050603521526665279464179247407800866827230625372716360907297966514028633037194368621250923941819256302956987174484338990165374030163111807585390595026393086274707883485703417074536470553514892955759975279338015888907328809168263342096274752592569487931043280196119304196685999317216221344659967844453157665266660745968848897099772039983435591290099210702769809148533053164774740923791321548734130080608684750457152959928488614234242728291738223456916269963968345848746845682551747234592928407107281719260208719463122893122385974801606318744427605788426826537032358892999013712406260750852352232053593182198601413184671604810027573803338323290216117034172210617914549494663654231201393750447509264424093303109138776855694151332776135207049878733888812999177597774752008067889638220319601041179079063903709154900749598178289702166081343790209392874327393620048446873909673892760973419333439780420937440155157064280306194575151874545449660128158113203799065490778101762174283391901333082501506511878496337577975950885426105328583691618313819848005417129242516768349229883453787304297410062759562209811486609323523463160507287482853668127375236275125742891490196714822016372727661489402275544963991651419038013439831015466884875993693269676461324425739572377871865872489448154652419374742328257978860216236300313517463433274080828105431300680002649844832209824084598899511821899565236828109682314502023871771420102307398979124086631196631292523572310053610079003729618730494934877095860138495490983088420635980052791728074158060883757307799365335121548049731172048874606738054346540244702059426925979915227538194614270721611270480322532134557422271907666754718062759537691655209422965514783907170801260501093185045381593348407381776366783378957908104880934272699617541776338796391575017160221492068509083993906238087172228538032885371521955858457225898637027052745058602880966040861907608227815576307956357780253314122248565523116782500460099674298017979148665388960331702654491487745710296853100101652164922636226099343827487099651309363568434950622919732984209368584585229570801202874310926378964932764686933078809744234584841942308099850127965970361610496457302677130795756355602463031621816977078277462552525984780358164182022316272978486784057206846275841885974755341349616052448759929565772586131147733212289038852109780495674985675641677946883736354335362795696644957687014402094296392510506443285344069100986943164626960288461773102676409521175131483882936841440466461644236237998852024587632380196905766357579249127202281953008173888405573562573466782450582503602875427561900583371327621423368560544212873173578375500921005110361843612726355085415119526897656192851146434665511208925791989349081594383830998601215005754042381178624957646583832823526029801369438011874634518412897475343768976263211827113906776907364377614968402827462271814747066072969793477112741832965145858453026944824071531985112411661859457862433333024964475122450758080358436090141484612734970742528242667832956105836607865893685627321366121716816557825416764695793432604750873032575570768071177317505577104971173050951014367611104850235633551957048753342717467168814785567992664889493450671670434048050571785958049324815312026296351502143798006886516585624509030067654102003004465749166343664259660767854344810952949060724038888167703147131522013089393176107565582260481473610007009639158671295731984423767330794675176850628808794178339051448168295775264340543632131046717512553056003168413365597113329292173678871767613782047069756338006954841301792281342126414711124272198119268633388069995021602791646293212593817950245510210159920196648771013807300797911619238726104281136905357743854423007543195702086393051758157171168669642412641548081670700005920028921878146473928589246760083709052105827353731363250396119985099347106981783378158394976771007235072565997331423215759008690171913544477119129610666891266357115995023290156233133291284245573285976918007599311664293928978101595134848635936974501467897216491237364355865355681537072711038399801098749901144869768985846602825152895162655686063350719819351374251107756192635734106701295081145934626663969028731625430796981212686987664229843448460838467323483107930575350343391453397377234008083041549711837818692297784972249004810375099209599324064746887825470102832161064289590735380253406418811581749558233304078969448629628196322979190393615127187080543961316125030486349487241535939616173018160114195336339204172650992417543048555372301697898292555019479923676166526132121922005974735688915267699944773177889150674539107758105117553276123689554501148677670718396170236018649230519564796358380311944861594830917681402799275745441023439510309301720803262207950915589596007782976676233450307412111725599120986179747079640039617864305851869468470038193728409946258135855693610961879166218912004720270351519698523473422345896646747852906289036650361581936996976085260828689174148019705825449452112306502527267904313847008982861631712868149209655951455224088848024271052129772549081475482409488646221544734167255683296752836726042578226689499587285354583213182707709710219161895474209793722493490618143171120025857848337213727549197424584391803589597292562534679463416454198770881874580214882498208058743397536120184635404118126040682558645083627651367724839722355464338839651511530697307873377331152029828075644492988792123169657258321830969241208550558621255932896275404979308844278899663670962303981021647242456164592181567707055834367433439300021581420039350356202630235822164247165827219088065670484262024637829325938882401131217966858647900590723448730704880344312067799312867480756614496922560650828359097864447583706439731632835446966896546631532666120221920894592475089527056956683010378611486531134315271820216280401236010270282560879290605798534196024729222085626445965612411844019097411746717286446608099443220186831004539538533304121401182982191501487548815075402750610726415020216068428300050516119432099467563158658831452895744923618410888672144662208804855034075862827555392920210811865447715199044072306901088029109261426823561190564252802430866508186960884323447787196956587650074236725149658072029509483663251372183832164806143580858619003321452426971980289154625847672721585589553547366118037391530534892910512995815409735173705579446678969030266374989693011701114352968639756714168251345316277233058322774834135887084988377427816098123010535350482419063607463011343494977369097604418070688157265147158466244244173323037247196455220080371707499648269130887637715018861205390415875724942190136281143919857975842836611367900656340211332002907049734376725208250627128820485223751694826077429379150686774623905785433331641216485377871960887139259322195916441022161381353665401442520158205108734640342880066384757950801239836929393450209300328245702672021738788285101731777828260025789244901902811770544254936632100750741409595783785336339178550584187113082687024889835515351853628899416263973478382219782226689554329822911271620104311160808058389671388797801439046391238952756197297069790516840624716812095259615744217277472209969733880035111144278157148646681914114982116374592574727133392771394876196927626147681769716614042836134432819416946302307618487872767113353659898999367857969290762259224256846056463259310204976969157407056494783826088785103353866171889635452075185611947479909574324796191968241190698737482443554618309462647318259185324409418442714751113446041863149469807038355693713680349020519519513563774726623279570620175674725374104724795550052011436597795600818236998273993064783702928725801638853465277990710438492959318527809835008555862008793706258551045108415227992979622990759318951794468821567462210237901530928259325736763137707239757641318108864658953636637870637651738240483588964182978180438644713632668615102956343825021059277991398397952177816761978065777263233894001865190557550928399846426134840722231431830702590926931023492062397890734922674741079234234910382651881060831670060485927071339890225530133092488345927078661130080940534751829868322937334675563070075943912454748921733499256335116773805859734728337158754488672456649556623742860579391918677049263803713377987622056084619188722467658602699794729972847066577305416054336772227547055624428509661171763155155012131021002238748645809803981374875339893227104414043856945177734256805754745596017499724773391681814267528337796154768377507530879122850815756266811037045393271822678745764273215371234552100422571235172887837966466247825534109523973545071461188418589229363826294000369632222611706205223896988852804989731505849325628981104159043858423345831318024930415826531769287747318647551973030937054350147508189965010608521901597499180897447213138456208037836039529705117225781440372089395886851002147032660565034208905567103529573010147374343781023193508578964422500437317926242979911307612377160657615435002421616622891912643842988554914425095162265008759609234732617283521708765158536907856734827153185642058363899309122186893743020194269698084089441852533312464618324258748374028188860789231078442034915726593245030952474967436288591516212950302404327763629728550260788571518241157725252122534943383829296170896202581500957906440471265973460973183254024256182499787590843996147317596412518837361162996360420428583642145540132301769734363294305447245271527591413409791150852404836496603380125786474277858238484363405198972156888582858046717876876529412449488630446435643623249920866281842350397551963992637981233685506592406031240439717667728596426940640917202605665955010522609631396017734492746422325899037616397691641238061976731407237010772768850572758853141953950263286957349380109464764389577117402454502157880588522044321887161644368510068953559008629965961776641148672253628706677480228118028620492562150474852870305499581525957794804346051464315798595538508887400511192976484544207368475927946762262613882730855483143376593547938654913230942695841073332971142531519337061582287496486705230547934500737366878052229437413284296191299404515474315988004652210446231808169582718197285350619071206677414578684978241244207725613558153811908579541174925647183873641277054969837393894096499636193203247403316860313172216463321478529255351849708247808419565072111698865843408292950071020426344931308743462653930801576925091212009960860588066984805649098965899036112421660769304310870956035869547382057622933203710588945500498329708275311723831309848795591986736958626519307434464022596781020322097206873106860455798684856273285237838233511471896320569308810493679520209779596706323748983995476350031894261334645286591269595960308073216470067133960591135051962529527660960143537293128344084667305811252844963204357017127080572683983428013351848885574960039533197734484038717989495536550804253901141249467602152490938630304174506016670300078890550450372053037739070589196394030385031726302248772047761781931703995488635521036659546790781769594547278956419955497535134564086571555446428727654575040441586673378279926516778056058533938105574346999366509538762427232856871548743042199978378044345342286406454823978827977101513195635327690366433789134934908875431469455835418381903830596267232654773104121995884087151826306911541545729185803911213960158825855193434707082734886599280077005429507623255968172552097729094806424408627218161304300031713681602468222239867045522708828369604432212730834318655284411018725892640725084610257987363291798916761843622837968649615491091626060514350243241520764790766492453351287642022531340982627504974838119142836947107489065479008970723353651443433256370371229218794444066706562790514223203440120964868001959246933266770843163101880844029326724374638401975493799171663502254131600320899942392145355680381545060070542231914700552938036813992326280611091623767179990316358555606488138325101524239568934521943521037062665660143574494481093578037239947650622882809709592945188421101610550174749235909001780959059002573098213699702439575931907537381715864506340875151439463451015336884084186770280155336716946312404048373330998559160006963577183912504304000887018754954458829685017502183689192791258047583553049534867964376310392839667402470634430838096600673100432489680085642719842415996734532830075607159449085208813426257544171454086678192009221931615462101500581957859592888019925984847228588344408997450064756226093565990753039053098912819092519328423238498364481630279546340975016317303668565240869247835702712703195443577277594762600688196860725992500496098719311962276761932214437073239359623426344215370678402499810912852835783960436693602190265236008475875313971007278913426942751712553576945475764960325400618288315248287634131712977032635583634619977961374889383235629904141116440133326761637608016319964175673418768154956367041868714831628398781506756357533138301486163244780759625039955319881818478417622763791803261636994934833748556401772758224762763872149007866824781500109212478521941165637779096693889262315426687940892157970772015921066454055220347648988372190163456414571914450976113841913530987855645192357142830313647832497084974947549453655615232686265605946328185016394729462186250342961243971795011542952772315897573525676152121057606543299660005698327051508094835483953966931078631915246642069870013664171874052969553841633672692402365296702701130225991709151928714866463319059142856463023044702546165385904947489220270059517612902191258248975306332536195276455566819510002740523168576644023857019116573217967400740293548466092400878544407600652576750976736014526838405012900101338887263647389635030927867439804028264497572700822845928783527570613911854130196396612876149448273438278278518929534225013945258552439406266465809357950902354809622090262609272605625956620550655326238474743468110193799859718289142416957323936821377079088085580327006317861880949120438082526353058053334963958761023004035645417902976766123197042683757961257301073249637315027456225268406303382105429751056154349021451504051065186998580325262130866229693305373094623658515109311657379355969297988211019498758346237633454935082484031845747094052021174529740541085275584012359787943894191335550410698544221213403271361741100525328933375639573637636971070085341980024406066177648429828318788904135700872729496724591784769181545329198339941403298762846821292717776691632886434402366536290709286907176984083215667841882278130065497411824385267792108938143766771518031043298298243310836890743877696590855609446112479072201980410978076217832980461158900140569810123402792516585982272334231809047335223389909309132125100082113521199465198826708777774918760172895255362017676349801852129457522108106157102647008006971773149981536328525238976123636117983970812509631012903080634812287549825517381523424408388826272223297398073613670795668637793908420909978495054786945595126939351923333300533002834486727134341211750319771755982256231382609926500607056153113364729864348864014143848312868266206990853223735956575380495148131751072858460293583513542453610884488501687363718633879570876113269453794320676847117587016575369972574142901838999708400761236042228020495940535140421131419916643769035232536816874496559615467023480193105070985471889177000544524898100796645655018195995611452273622553594299223015270855774573305506218773367276371698301270120563914914743854749742351848709660020469380018814745270517300853372415093561464934863353488948883092852050245566502517409015775751604499725935619775933117929022341500363130882329541488447497010236861178299326045373148752589639268261417251919200918115124603708704664842450563595671349341865229002273523549735956849858882409440444741181707328021923271860577222955156071564733616927525315248010809152427824588766184166376993455981857471439682252788153662215642400030464851130277011275216188438553096971399950417809717042109872561586578092885743637825471522983437863823249813002166471580788593434455661656823424907298772760767072502372989730191063710488720919766101401188704155321986884415899466070161232278948163698556858490505692298596944748218381094470952296761326821469246975171128615546013716468342962389925757049372194764123992541775195801680196890288104012091672348686737642918502593075747619462962193685480977286542701720104337361191452338156595107322778171012479915124175934755220923009000943305962108372360097757000272073510426338684240997131022295712426374172863907171956700565826647769372044020929029007647965710135399225966509962185634747712700933361821390367194253839006019859896279162560123386239546482977513260883101862819958844527815186237972820018041576498225520655727909501380429954659079834558715278094732647798505283791500445456522815401651210452372525591391928571993947585068067045797931304983650407463195396241705696245382109155312197638476769279004605354411003588962878661228658404388162878408505675671211909594629182388190747096961324082416112675928402773277212314240134728197200876890262483922081868222596466302427150522748149081561556923282540687460529423382133637732226021652908635558141871210155709538771880105189300746080818835558047822457936080676648235537780238063735178361821980389411439829002055745535384963964989808062137603425000552101513480335636392006005689271377213617435183366739881432592004601763790017414571119000972022892413638078492219372905445162647035278578704928219657759159794001842958749403054230598020425184195252732453313736886123291803251193237678480117861390351452121312955671478188552449232371473802508212850407050054773392826570122079970378849274292085224027545605112002147220544200357098947526167787032524227027305064555667161242652107046868313026750430496416266314555120054279389535758011522304996104076166763851303700315043598740694122487585229530080503266176139149243236261201911108014122640103550826860939097632718153687614768418884530820112261259056116617860498397489926490641893521841122966967022018462791560905303647217242118722421884106180122439462475852717370534619222325217987156238740096042732997294495171111994013335902429742812563272035725820272110193224840596190965766580230123428236326055244611486308489479687989338085519898220717050441279065314489714558913476430311550832035231771597337902950750507883097190306663918230637942265574521044008882766815748813207418551519887350968136249429803071296999453000804567051343186661313144578103837586150548621908635078029383497198828263604336008930604661712616184597010237318347899309073154842224008624777717673340714176122319285007185845319987898687694217814784480019357045987494679322657387583055658194969942788241980616398786311010606386415717551871929679894326575696229375884376658763900875310117338501720858337765416190303630858240506510328133859478285374852089313300798383653470763731477748258824795068681903405603945449967738956595251650908677975076656676315854447684236523882393246677784556867606245528424014611513866139618002053011260252809685569271034829745474642133974864926022907759154625078564560126109137043728118175703094265355448782170253362105649837722449284061208668308129769664439789503543865276472534896366316560676841247433767889106826881850142853556947585919217105559106467080641216007984282893645119549728234488861179566637521321373838272597147898123387590500005519890448860438214059536909268009034124305678974970266523920465067132560386643977635671197662349717637000517740309187687259824899508404614746420964543520708803548101789933250549390522795984574618770810737812661186837282383315445157785106992092799934767664902789476494376815282680553901588644542062400744619252612696533656254382453239444425131386552308529290841524123888362533023895397740560653290128774680668540582787371993474182521373517046857664259308897894836285991008410708262375895721178825680630237932238349906122538721128768883560239279771073871574679126734805364716607341745254290806266520086388906433470707294039767338189840327806326497845067914932249593618168454189956614210044092307177642162505207596270065860818349406190466276712742427960413542021643914850256919289113255888862696626303867864410186507460437235515396584016721514063375083615878278980104551508494764263742423916168175442938603191346654042571287786510987716362529073834122904444477848815252746579244841972329637067523144286213466381159059166608164133855601020760554998556858403894884771373311550278594779216302040719864009983966960033678505353298726562852469039996103051502788567824414515104810172249328714244337493973901151585303860264448820961787896663193121873503366648772827655624183903391409239478665503969738493479262100351722494965064314996492742993283173282594112010019203004483984851506244965809775933227950972094014939869634744315194295900144375948096954486378610995551811838872842083823891558721470099471763562216686499679267116138201393484411343449756306002767458696055098433308914911008912297293773374504523617371069941598278094245718289930571711120357974296025673002498517896334705888787017995126275259547907958539995075933286386080111289614993229317054967974211221124962262960182026563277985802549638269600269294809386591029005526447866146675646635368794752930814350163459754330843387226102047335306285917904868578975544637347598118866783213977132080776905530795458785839860884362704010184636458254636328063882480017531578173821717947923277647417811765730380957009938551055683687917752398110465459861772418067827913131267472700377498434514271752868318792409881955914318646570607648839097319770991442582218094669115371828005037029813540068483933704518077882292506985250014095901006346679487138814590382586846462217222707677075607432819000853824269500200335610919888563648058604163493002359281982772768030057617851557226910073744343143566034599824861869851630893575680578292684339374502736276657120874153566404047187622590752686172923293822381629612818306080581668120621018761386233823872306324939465153045879874891505821914901795041796679389952541591716282263474566893995244615968889051338447202880144068941315288292375686801726034904802261717582775283595468183815665554430854058985972855184221700402021817815466909194439861284961128063300978214331597137598636874941377053596841098101472289596056485804057211856093484125404747835628706912151916718898687228416623097412153892924542306301122916305744326851594754060762983064877402742331407251235196824775973090126097101927512969515318581112368343406375613317831844527751164212756395440445933490273531851352576528532002814869767957905089517113513285921638843892445364850457186011297979017998266030615274462103759442197208769469637785652933913146556866042895197371472766406660105089483047346600036431793032389577504197381399874535821615519437614101514030663082819062933056218102564782120102760538514325669225223357439580803771866094733596221197183122877623611522722217062915289805415304122207484807480533942664637717875810849844289745687224659230389277303084082680991666525526937524227701491026036696040736902250202573874696425518878441663189068629254033396666234204213874251379491339226775264775198755166210438367030759652270469325869189732561516099255820506208833104041209683805638760127951353512109800574882829100999392792433215267221954014615482526896963591408364882652375794366212918935770766579249538972184285238834936969181808721770375337247421689144119232351557399692179646748919197485623959579693523095116605168722850927027989147006860864703830384913607648030950047806106659343596294875597962015618423957536187106284670574712820798003543038921573726182956611362269594408706408525213564354175224131816206940794663278133257368934287193281322712328912254398930651561179374903178854785578401476486262735043598278311796904693672617255131744087691842443610323348406431052512457635110987539318705661914839724438075548073263524558338740684009612899703592608945784998892644099509428269247274732079857815026643794006875472193038369776998910351055007748678864732499353297789981963251116192615439698183945493629888958254521992737490590610781352819815949304589762681174383954676181659854226489699731234462578527901244673044650302704040432986940671853734980551532391523829028953719110176858240648663852588904697716632781580907763454271506351304041506368306057603007353425885555547127409484824126752177050647367351448951778439495081316261713997267347398070451342966578004297599197915197907131872476703572245418486976859841988501310437866655626137502050020741195657547812752614251844041116177387463587276953241623985710803902950458362839264413203820670139928090763720086720215158265304424285182327151775445087221392787805705403569116757091336400321066398498964566090140392064011510950965695584276182953450208646754465231935264571571220500115490989671388587588212466835534792741753787933387618944789524802407005571895745174116300097738486881694322427242083675185512491722530221908223193953111639694125344096248559738541589601600970559007371805743217372614276450911180926227876191376983356964233796850712244645902398381747457361863012865707185898796495083688139480067096371221518121857121979967294986793617037932203442413512772111286376498384706378534229405638817170500195373254731595118668254636059407415984290197962813285964189924602866717463751187724750707147175066463226751889894406840371685853258388935884504856049212435073938623939993272411730133940867747920664285251696768451344145230716065301619550527579314306839811576128463310559217167053504977059584180532329760148266378490397561586265710455504261185875615805871335109715308009839905448392354135420862232045270578939538746870728917682436916429474503712112960109488070817257899409283278924785220365035305877052911733913201411752591153068928463873392750186991084138658211178769614480318552646199861868390711114905952703399484687395343863010002209434802750464616314402694460193968832920433797942495911550357312331382619871350417173972887831091426316239940801930492874490026458633744781591083048144291302032489538941020293522942695542639805644420266795264207005862570231268986450725601340721377573990593695064678773600990142933003370358554811253002623258240762981477215656383607602873927251364544068322497616352081040165832279832203134306318187251722972546296134961680719354553953827147630048859504860795080040021298236292745681356569477928700303506762612350981310545931583974501069621043628515470217336379521069521319350231221185894007752795893902970903561626191775040362804860835845141619946812377006726457311487750580949308689218567544516937232236541058419388906863053481156159288363349886322631349265643162254776034459051876202760752875899814757510863512954208096662998278033503362022083431230307286527485315233637528049807306893723910624187846293559411505582117682195372060795236465647158209221070036094994513971737945602667705195880155583236471544258512505899537160395160329832148311124751964813592554077426309971676471454665443317135062802796603816101631216742480770093372942113879472769345680616115455191898824176117457291536462102413200611106248648676281580425078196288984057659640910790585417192084963420741988376431321946717412276268665477700833322937712744594235405293365134921230468765059816546115473533480321300050338626191000483266146060278878796715311347706066022173330443657169658260168575403401093464364727656709794912378459126732632141136614393066449250435607904716237344914534398711787939950423280854108124268227413717811085549675945872127607355182230017085111821992450801273202235260146210049682788680898920120425030054973024539196618039252917261059533231610935697416176630329299590123975387918524515417066674449157824984655300617578482566367703603266315612072857968704328701013653180470012822244890393623702220121462487906489004215835506194874979251673815630003975212126491749061821303469275096354081100005397848251715341588250656161868958677325116804152313572587054358023126116115956958967222100196492247423623287017162312250628712302497830564757122278099115692355543096441294087874068984734583863274525381506211282027807986110385503110866001478522654772625974206794054897058820222527783730016647657429338888009230311074651993040350689749996888848398648508242337662749299290795872232535076853696251461981008694303267795037723222881064122012886723807695507543876977407441691931256345240390791858343038427446601773368363736207880476678073751616595353787009332651408266176345153260751615544707593790428589444394512365087384712107548457831701575975480683952193858990178897122708085748650042659817189155839148846897542773593540820246688394995350625761353414035724084159192243641072258903541260685994036972137408886395783861055614832790585485820882316209191359941772020549081762009398479039516105499577761408463346462366586564308819337752944572494268852374206680008318976035788485627181783881262603708841715473093127853123966001118228046797134905663547922304954330355301527486925934019111623848916369591224166551798638759620502711226442736587975264925211680985669104506975868053659094713054448882015461661209719513952577465506467755189754957376917433525225717221409654067086756412178710614063782881721060037218590287675660934617503173228989182567525606408185337838917885953402592329055649861946619248118404888273577478073491398333987111320735331000365200775003134778572654746958336156031753850152749029990779527138076246534647136250398842182101219605157426795758387363955276495340922104920706558415186755366149868247165098171923637883627079577053738519594298186582254135394261239294054449765198778888568817144601601484872989120628246388660980185440988166707664505704307416363619468117526145687760745805028202194715252685345510200096867997929994422167414787699499540115951716034907355097577688873783144967304025851219408242143440658217412473792662059059302821124282128154912448769731289279073579607938006723086785645875430745171282367976108062637522314295868604533956375593111477574117805353325410476960899857622269970930129663120186718342640227726191518509432955726745171647812901082506302159159752860227480925907722647400513019451664181424147069048717271511765725944983557558717674081001514922788470779988407881766111592927917748257174019007346048874430140208065743313611546531664640270335074900783121974736926650531982573140023755527054761970267179491500364648161793045122442771181043714829821512729660621602064179139460132407131729551139062863784695556477092956960314978419117606983728157975814389854976950980032022133274393037032369685512427587659613888692795076327313338018904223240092914931678008518159495192638893098983601426447343138915941154615000373377569481491215492223395385552012646707562278369871462161361480728180441541344055046663539119776586379250732370389197753670451676179187397509264463508644457453680432573305526127182108077061021974574310569216047873806462635813623190846960314303554187783692481462772442848747336804458877868722191008201877172854884177431142992948305235226607512644030852575543681696152261357121217173878658381702998288988153371411097561394355638616223609246773197121837010381981899815212604783127999360515348896981009705814233397632679674480399840620331486292873908418165544718272668401446062263312371091457951066098664769027672411405605271989935568042865458446364143060090984985061311743787320949916019463896725393563198514439563733427346654632342355460884306107250982564927433131529432125253725817689631903230015110574080894939850876810915736177356621297685621817151040224450485715930833407328476086646503024669571996053562438524483979282063460061376003354948721368482283477632816590401478665148125882380500492156080904787406004955305492133677683065453513749124636604076911669665283713160612700571580357301741338261876136844971961425573612579052376029567834785715324745917023426725521312837967349796130526551421031626623070250778066597005386740148977734312256381723032401038545167068814220790192374428411322439874484129030834020022699560473119332763284045306892804193288246289000298963103366370462049832503700375167852433654713923590371010275969845171104252987667328692638513680511648061092136844547035315212788484334003945829108330344489737105411668146918792205576876498953877161483396911915525052648527661800669299658403970152839142902440231223920849917334567182044902531100442702586119085888063177743994562218239516813799563884373230963524025147127988520650363920220971346408261993666583496564950854650090561605710126965564923333084587847455531159906752556025459828473363633323381923193204305351810652907686656715233546557800204808108030666586529062568452487200072075173217506233158100347921045233055373395803530404191121284734351277826119239762250554806095391846374745757085926139810445263596735729356387272246136460658523811116082433136138674712744624172955984248860946549148407132744062462168431488842061008396601362156461656727546118054101650606292193430679646508013905302700913127831812639084134570527838659839293722194310320804999120626846783395917819616379017600977994087401004938244366096043981082316300704121671331992174221731889661291534618946590591612988333530886615251563780824991726355578328008644912120836592774227290907520528736256443177625872962303720133667307783564149920297114929516166511312739024408517430883639632279118247397268732592456574404206235856943912133288022318861095931828058054208227570386300106600178445678751780539391468676822056921066488491298595580544547549494867265805937517693539308918335409307652893595110679178588952164937146404258355195929761687642888452874527395350877894129945072451929408318461852855806717244272619885162524983656004205699867795092869212235066561768078276100181001585833181046882470152757788895482286905808038371920108545801551111581301342893062357486364960297237841513784450723030270487386832402853283341481949889254975020736080614472546174323255662440293418186480403727364719917785583877586928591639259350715427461159509623881090458260229606708657887195963595633328973049523650742204014604943868524118647386652358577208972710495624936539145669349552275912271191136383958552726172665468211333814769025971462066278020919099502859684885005750141615787665965307567039230379837012817799643922909060212959178676655682159055288775242154731928836246031623792441444633067943970308781318200823290492257219809318164250037443744676612311907244562104248656435797859958483511117678120843010832319130125248350524852968236505886590970538062069370175324823023695276293206263619392638160586049310693429768105224160833899747860592858106777519679862720246063767966982195804198821229200944864459159402175758988251045245046930651670059989109153940287896357978273595911306254852831315074238079396687534145488984197485586851176796423912862694526672240291655895454861128674209000692192500450618277315101721455285204096860551406903263389120003462990802706556797781250433361389853826520645445754914840179740050115756395245602838748310334109169985518007093852161923191776123264906518019987387124789189013004187779456368938821627486694959483698870557880543793009574488815224329548271859211412858072294579630031206832427652680403913715201733165678511750655294363965458085210233678183883346449333247795287463287031109348441583724053062688766466157502936150881812367958214833739610816296205546286854751571856217298979509214886662541319238448053485566623485974635886438328286700104753456932316935556697647222712247408568085724781067138656680071909567247756647837216622670589409398590362088849843942893833530621568332587644501400065673873815337401276666397298844400029960520241927264057598962375663651824274477546226665445165560314373549162979242715609853624435190204058187392819050785394153978084995490415447165133247634905096036649077717024752763720665417101724054509681840642143426806941727004384583790997761885844439541190935985451609673102715197734192142746149463522050603453624469510775610349983174188057062297335614590546590033089980252721725644998182024576080103876848635836267560244927591131035215251237045580416817209060179910063155863816444148986275931489269860091465244799939548766786421530494230431032275604927336683699884447475568224376773668577735681362845038306511811533347623419695678749457350583034503830662454280637087366052507305640077451290233261131098026865983153511888552897921969728009636426614962029034540727563588758565492947502611276442569872146197051385313123972753987620441084414380715510191772015507132044973596440176971336309012959106138177861814247433953193413666371663867281132381396695034761394378567913072870586890170078809339342050601083378821806513764384488569193090444313999486831916405597409817691187832771865811577740909536284776377850652636240758992318776065813336730105334981052897666019754075934752504753426469064312457204524732329495285748378738421823487267760890995825150169870399505767336198771604510707193089420804500786352972388253821519562184013642336130195815068934276424476666456647931657837175901111414787100431918613743703343095758728744664527585604450472337930104329095167393751470774207526502358909910320993349100594734554236033129035836770785699051834533441299720964216414253126018023892527741334307534267168180527503340464173894173888227748921591375738652662966837650778196224716631723924964004756391270019678125807485071911785238646068068047515652504369221259990548060446919266547819400120945228273802308906028068574059898848364785060157941434109167410023453248697136304576999235867738463252542154079599800370491974319549173661674915217925910877667473680822739830778502668570157106535948272569473050873269355983693857086211736639436134660616245338893959818354497819138910640649364742955271763395131917118132786418413300332816879605428528180821510893946769295623311173629666345372648101319881039328307758717355166730750260782281488173014482051763661361731790152890566697940788495506100888653702263124419573432980677177954061251332014281242420274008536035302504200978361430025104692832284709524570111835313649235162695359606898584851859719639409302989827796158481298883956774970277528225014701884206932338390224915809368555522328280252322694515162005207992225531040481924697709189963460212925315539441050832602416711634924193232480160173586548831361207772351525404374021023650402620780249319620802535705256328408020584688547481418917228538073417140180675923687304006895615135882113222943642068295998703205159182229475841391718263188865909874293156895068416687844803784932967991885438579836772617624901325027325238683934724238036635609894423902011642561703416555061058075278259780410235040773272381327156030863656470929552182061288375631801732830502134818754812744418865580309434676899646969809890757399177901072174047220162696006386832176986642756926275483880309668139469209283107324752620354633612896629845393355082375559861089833398555677030726566542946980756088111024926574930626827671324261026108379364268248684943897160550101214383442263028790416059554509176729933948599964224885856587026586300062443179034073681470641414833811881305561501402766640571984640368060634456727864188676513832597126050737020594115406373582363162521410076796143965806209396189851303702686415607858644364757041458724441703382386708328696064715483879295096506327933416850964770192388316721155126764655736040457457821514254913371864630198357571117383835509719524673274694331644487066233035767653228155513014435243359279642931409541750178647569622290361626151939763042534043977078027463956936305390515850218622656940887044444466359920915477152560260891303541263919040046989178981416569617255962321856191598282917810266047603943097675860127353241609015251258395259004808514458290596715918208248370728493315077491067004093648270403364639151335044401099859439329496575733007321738848636280026985976461138467030326248434157579555978403624559033371480388110493038352817366049626352917946016785541467901715813123029568170649179102564237452713769553012263792270641059432692250940760384111005266748964811254461419566634046138214980912515159725099870415598056654040935230940990230223201319969133621036544815234994365543295625063183852704593009708087679098344043493200440185456000224186162581063710739665186450477759524367499676514658791805805308654747915900832639195705449023917288347707082750582466323336263599855611728886560228565169044291944639917767179580448486788014880760399157157811344992279820861845892630247614439059485928896796898719436695016082133684358222647438193212596886204077640256206935460321801925125552608435214994515962405147631648512585781751112596122945422425315270738041493641498173896398295420640464210681292602812202670135204956811229870935331543216520852298434199573088612675958763033879713388488883395347660790161456861263896788315564482430145469046925050913295379013744845465374274120274522659278994766915624142242929114377549654257692407371771901642778427309143738074776839467126778787898528046761325505045604773416319469172926230419723952678731718477527223574138921071923227248630431473242623975674436131728018007491485134623904490289899361276647875334995057643115016735835016789642737193629825894669405662146724452483491233800127446334091064729162132240186124254331010347121643693815454963684652648908235756334443100533835085398809830601478930492418782045897772516881613090000466088853895758556553688590226599604752925830561171139961882981766882579754922422792879486747906831526113822919483131018125225483043799592649020617467729449210022950371364066612744214986134012104010103832159529475929117128578875646551354103366406254433042364531974850541678375291804561507336623220573766318059297551632824051486115857364341603414591314324546044912082391975882377839037534687234819667638755271541841607893379915928456244191964662674041301545691481722600132769962481949425840690256291700228776488372911872549955580693328911531284163283510380081293756804098405342601524980308689794161193313599875662937174841536636012830205034200396626801418592843696942967095332748129126594820855182060013955475888750117552129268305024430054385499610568432646604199482974484532935509464678075472131177329696034796004114892934363745304263936883292383709088318672276206456139104783067638098180626498765823019144490847272193082387946055899878201759648312428116393574269862412064941340300996921987009070456302461802119846531055807065006894935329193567573936855991381853181002533037878879567604363791219201179645117116560522931746457930927159498820426696199415709765235716445367820808004181353485879000451946536448981744947501321680295795052015549274472614125165760088738604977594594943200966440924161412838516603297873898778832014152036733961171125257996874974618131906103718924541558607375534217138604010640168460978272410628692335915216028763563398705044373584102488977130447249545052139703329271358810176188978483692518347036190983004015818167433996727784503802604907603163132721971455242299915908733173384745803601010637578707391474613588023278229203311860893848791065542132110708543200566284924493805363986559989364292001291030514470685227251413820805133246804039209751966337944342580162295154852285536165228688631226633114867243498453719256276662108777559914166206666237104263078199625377293050672009970215860903837225153258112399138116338792682785959498345477140590157125525923310999445017606481010448724190596140185713921472776803943183957108171852417242986956399784336415829876591784091758022047048409853169482457260621599558497785882619869387813336839515590955815319211466345209997166837240203851045163594700002990437456174342543170536291347000777000739173159241703402914022017004769185112895054833869263968675110883464818709889748129594744127547752773160628582756524666514302085723914657769865473953247364835546063056018438372664142690485524860601098052742967398472577398679549480986191466326865451565112603823137271257528859007802423364154878889539698763911122409618666180743248251734732981766822417005891595219812718528716666732611472684109707997226892500535799638655931726573824634769683942329600113066318721224122110352811227083467575504267220983389874782037187866025122504006447128917071636710551549336595585942035500217412087214482211408855119183228008732337997454087390320286683004014437660933733710792610470155651809635531521068790407476574194139580012290856023415313365247990858561721744327356093961705231254357799788497557845586810066436827078269406979539770881634652809859340797643965990348132647388364508180970814662448637237701100733432490342193860805269071071947650252484939054118948311508340374723278073414050137482342325629788716194327514764464722699904583564764487715392235744325350574727508852692845907631049470993081249976711922596917544740306284262376389608926697744684969526328024262873149016013523935016165918421327314326446032400585571620066685210177064734524951308822698977400605231924446169843565071718099068418647781699085449579658203461040647158706776911713916970007262617768394288647187333128256699643947283320849935646869112209495245337923379336341903177158916073415283402711451893711589058269974072836337152111262846666524758648497197769053565705422232146954059180572291311107684233571227375788156045161834627034522274290610885277471165228647206170539997872206071030298200402664804257397603205950861962409119150644198560629935082749163441477458128121961648019294489244354560878389665072306972851856739500671895573923299388606918609767340937782521926879846347479833244003597443472085208674434842501994952024961537552973676040991610739017318019945359421711802870574631463735461249187902634014402388503745945167831516761806899238140279866943767723167144869572817856633074652670807839559636173333883593772992605885522778505523280595257190154653125122567188431089694558240554767798764196287384307065536436467682055360838329553258125299118717356140116478306883322094337395680849017673341357158073761645513668564783751388958140102249080598862394478637805916215049508136450142108319079948157357624138783125244337030219984080881275172081863621491591486827149372165459288980239300705097801158784929874237938370781136695857204134462885223791138688845919401530189242506060630371860998590765741057744896416874505908736980941282026914211534302871036380004296994863454159073857618741068235199496948886222075891155780798709062590046090400122471153617424546274111785859068708838366266674161590407621660511763519504419364428588950936412687672424040805706210233593500280752515956590186528280801236043689680748723727258551356877093755136072766365493837430466460259182958732693182452097286592231794217851755020534006382502020030950514595719395396913588622073028812057135602739373617725938103321170519433916649588909899921131217743196786496994032922344998180784960832454765115507494917875469516061815348969034998743254396802486671102014337184729696390834717283237658815006849388739149079811330198366522135716139045264643085443906085830248553741922654809953049852224499881245448404823374397269663871476374203259412364762489133654161175940639898668683633409282669465261679375338283820840040530154746538878011396102184690016950814054432266582211976373902884440345085873670061245261303647474524101973258146486824059391262594412417960282074885173526117553103134682532506842858074588135441345311099082416882856040990043448822108653145873409700552384919429208725224469668647101271499050519940806368944925471574956562935602304443964710627289626738633654527533495126310587887130935660377287732886882199189214558938277126616355671914173026041305673547418895001050411908915495239545665341345220195558243487736225475370645101247394687228381000984329315796871426691480187959848569420105161619436620302669274536514679582852750427581714938287996755970196435543626804189106713662591486427266461557946543117457365915651227428233542641015578325297364793520529121786702625810780933695596132838677262739965070272990834201189267588913211362377743798955115733274922058985922440677948844699013510247131446675987434697467188736389809355371790081180948130617476445861495245469014081473066673337698430197891838154559605947225202548537114327713069354388038663028793069002709983521686983008663496421510031228986129861413955484952363280569027065761122081672482929557976660577602496647020328392197353845823930013229753319379578448845830223147038263691468864828419489266461239285414358384085133817738965044532389654667616718367851733335797373629575749722922412303180287819506237699028234677715188928772656027341349967169077237241905985200222943546862795476305146015607736054111760837629806999320461950898496319403707400539956345747883210645311593733764342723542168403923664175293125872104024867113383780674962837526744578885941833373647739354381651708406255975104348453240121033392032781747009036955139675911237933020477368939849730925713254147084052529383073721656762488238834608748844933619456582747832013496836177859189958229144968791842493212809253869091734090666067209166355237131134778467101370660163609842508722371990956293887484707731687162276600935385563154597666625810998698333052416162492487490983400310013255969664722563799272583272129113050646535081691746388947335945649091325545309306869842690308133802817418260692541607504458088790761565165768852605174498177221284717882868056277098724052702761840144386074496548216263223225530258894807227756598015875487635246469557065391471398858419959043074154346301334897526310856795550816560123153304757450564610633552234606977601586276264617555399945551443791183186642323806902689387773251419182320760067630177864252357769656346440301913995678820269179349473583796717366490216681601770376196127940913849277090458730818715442566100466879337580282635814308631021615005814992168291315178483702730480649422088034493130078181463904130060303696736460988356259872908983378906596639378244166069743080194002670303115626363493416695727698242214867656817842125522012043950050392821149487191107880733894952470092527651823248417386914502977474196052590277704189551793597778455434754844013391121946255649704991518474840892651814694343401124502037653465160250040717929214313035483596251442878563114317164454764305829402134366456263301430438148796612563535649834275927770886084968055732364526152959004807115824045806299103927181890006057420274267838851052400839179470015387761865755616410793736646809714956098677138053552480147425883469833696806905792070341424415058060622854311251556207408070396628824309674478447463190979412827822672364319728713864394677478947300046085057110319487434080856850903345039782276054117028488576919717772721690442246516095533804511242341710144139281772199878492449195361224411318179031061148661872306107300086400258581331233662644138916096224203990228762225002032935761603865312693779876121386640474070610490022497706907613862011056103497189250162610084728307213997930372395482323826382992463483881228707604632304957274567017169794812085763409382122738700537305574513874632615726618140097591994600418109794062423984021167372816523897038615507689059090325127360454025775716608008682825504268799033968613011430852699993121348928897842351988197692992967209801273978666523333978469093156396440972547431899546654390380167620453442573907632383286081418903898934954100046840879693472149656146644588818394261889979936790670424335020722842768174358852604292500345226961018673367063655312695117659609813157931421546584715328164820413144633515103612659013486971849411383804137353943051140115541945881452860510030020097454925368027285184486237519150227471796363854326644839583510984218139959051405178130884167997824974047767052306387039932102223121166363046423987408935232145430978268750459373044925943240039245376496629200394408255942716578941774275905107275741036438435834015770057002693550835019380671625342328076652193005576520470566689925437229203112339091428057288538185344512992538921539153416017225297019147065066208099413997705900700390526025154333102413868426470227527881707662532689420349495875559334901881345208201037814898199990450951289959490493359499075163228147525019016605263562017354252950584873745377070318364837583802093541579215487982000963432397700209098959730329422054645118454982248122957378599101486291472374634788654577366187815945096432164631924466859116361997649491892897119733070136513330857923563779836856752355898368849160702314266812662732033022887287145319660118914798328117732978195558945373386376318453166736675722660989022565034364738314934041007292432962150215474065450285609337360927672756288753804680200528640309856694022889384727864452641008448924753917732105014390044130725634827613969954701259372242775088894254030500732270318762953763444803650058266062338759956960248645616632351469418516711261209175997867883878250786025969740422013154130522418062985206007103765642882185607386286767429459758094240339158017723624630704562136527628833912846173887301482639824522743780138678513719979082913631960905688792038849570263298751229864890955546084865077228887170819679097634039242929360443641061921875594147106251660851097849638741223826255729196151369135506806553161898914031947311943043203382033976265745060378252243321702249833395674371143660399889130281716556957709383325324665001255248987731512205335994791175004931042139370673671429208663571654553275861328018893400458961440624795802356727093253329463397393234077960206034288590119799461023915597831520784468305856696175349543289178168963264064139347310293938032057810955050145585044372532559062165534220070329954761790762230701877332756184267577401246224689630303730277077350228854750537917731029402331145795022289585432519213585022924772718777564613704172570589103396384851110336891879780901799930416614644152444464714703778349850520279880969563740954652778111127307658325823642287045852209617988743118450444781708264136763683695729005512422069894797237585654712616172639237801479942375721826477220112810366620600927013183305191560143473258435017612312672392971347553623321071349449899454022111194020787966970896076029045574816093328911725568101997691641021566865878884025016364134845358370613424457040955482146986137571618637060629061051716122413572639510020136531486812644147400931449523208571755813394211554111906652071995375650515171207987283356089305737858745735604136069476398214773506342941478085077530683657345073165209428209218050299994955296728329052056259532427538346235396593954406647027601094158601025463265933336019029388370992934427527470381795091962195557284292083810805626375143694315098728523391633786261207368109166994787602932125823305606886772649987505251626526673206310786189752698664870824671542078267311218624002815429541663431048799913807044340521628499409572118014775233004135498895889023790347285839511434843614720138429373629972543592645260583825846837253251217349548668030434625633369822705634749635495830384477272450161285329660391490967190835148893905338606654712545963055931215604349057285728269885942826337610232356412970671188165879848910432577246760235153993476491017656529312986183293993558713040643178521536234151016982431728780193608632540186444841424962239702099647017811026397317289002717594620455058835407336985153141792119796568480992129769413676919940320662097015615328838937883145810947678505423291606635905207069273626350155064834589256292831840011303854374353639450862112673690661347057266226023730435584746406122946179568786904997767774201665851628476907974342972387709695350735146083267220649444149002806020023902224352631407096788207465287706709448983331016153802307619954900712745929371055164353101735693072529535703596733090839973919914142110153249027941497957079182422648289862384973262555273566918926337934404721882723467904415097959263476007388734586015474791287307703497311339608860134395990460896849150035114071467055562559474111806463701255283266484005122822825173037124402010040923234429785007797962924017647848930446562669576152298925102167580686631625588944256479557181716776155831531874158461765663061435051436434563200295000532397921180676897676743914000988730407102188269551437311596359445946395239742742888253122041606904993747206289322855678763343033142769428054925787241647341965762962822232088094233677182163286316411683061419151350446481477928881837595909714562413192363295162004650228313821219562087099552793861838624041552755932622898209163651883195029658233740711294701341544734650080457153886201397315276260589469316660171446876561672612803811867056348667991796206560061068861272650369639723006233150100178838199555232391343231190202579670708930811915747229327462821136361387709320151676783114806497418753402406886797263033201702957253973081125197300777723984065583171082108327484802468084371733622866261115277056643933163616647841855476735647722723162466740097215644703267509148001379150187132584395753432948147797041696221742346100099305984690658939063568863185949319877749675100863349452319898846862675745331896875283681311899818877352280767329544482510392245416577828696809332045771662752453350478529595035439902158612411182088597325721298630909673801269107835504148229184616502069610828499121518772354472408731011240761917308317600121800856380532323435788660431681590674500270576054062393888146735471810075251288678234561599721778839383325747823585799877653929698718870304946334147274780667451625456292016998844632303601038703122133833533135463376032582037865075354839402459141253127101671728588327191219893074976104781794915726938893588251993702123011294446080842211538262646887027938858078996428348750400621754731471780618182749778069027117506597781788787888698005894165030654038030414410506836265544341801379065121234599088923628620825312258855362993960197993220563879160704906898695257254968920273707152744923306716328615375990787309084318840380769609111387327692218749792163040248787771417217644789692712454295846343310043220840783436784702524710872270653857618564849729540139959193600077295550676015708192412263750253200938232001791728649897744334176557890597493939928890693845360389472589005193221018681841771971488128556291323219781208272743266172127539838427812387930719923955221085459148051962551172675481065969449246290341760657892710200978728657695268762313151269036529058091851301572784750852100787047199151249409152823651546867134182123811070615674385169738554149398181767929680638270305946784735403458720980699048521753469022893191570541934469754488160485468300978850312523533260897355352892026128761168630321160902432693039506824811810641342235800149525597668124762470422566836453003653991816179062610543390995458237995749000518238141233144490173656946168331438962505408578441197612670886814374803684575540000216605478952526172696933980049424437309207104956342077071830844951585267941973846370104217374274869672421477571594631668014561687683950310674795927371670327216003690947179489513877398603521060676699602028775729299826101097157844473529041717045565118600500623707514887927416387588010953319436135954950493435388404904240539438647007721411080026605818228274873172654199896503426895657042154736825073222748712449447246355438764082617385917019977834162199622771371150960751893704137953444897232440837672766953098100378425883648233802006540247486230027265874083063810352307892675716533947266143993617934889657363750281579543227968970956873952420460829612222715269804243685373606327493572488776106265176211830351758923881844631536450321807535266446019610470760107893132909192551582745374901078343025013659458273878016533661839438463655493446708527991640805860541451165368107113837333838650600565565151851213412153030085557645242688503125083699233083500330440820410309958530959165482813732901390917496062251914062468267149313646850024071671591753309463060277574224608575247020172629851185904714859083058028691815861752106206237240153926078127176780982012734787064914530510357469549390879361671077826767390287193792381762159253293073071765201693814262858888956944019407957334842767034539545843512828407608652470893586415691113562604631021758753587947195775415831818878817528057021040382996983143507317983921914698925851943943078652028797626166937439658351153898984758804575108547033217447986613549686004265859174607775855290661129390930001767040296157667511727911054804094390581125383886577610225258696635074915859204353571304074964042664939357978411196319298047568166570976760405444277049823064134552221248086896767710927109179117860192360503561702075518853940040878483837666441021488807253029832644995121342337017370187758475098982125470729144522981473225674406633290856539524596846054238112408176035548289013930773554152672631889519294316503193852690616768293716277774301159591097777342627455194808276050217845716998055867347178306360656166691245623495040762261904486634646663561605369631948758462370590249941793630758628951782981756956029633825110580969214930492806477126636819406733494484483680058181830988236349390379862250956130000595067550489094923636366339868973144084707716042482763240356030026865187591260297693286941870177299021340370522483780888089583007809169882810131774337608955350477718718244334735643613597735142470054974738085688103694268198766010325423519606666010791997142202855380395855842659553663905419668975087539813081573054338348286131973512349088211389242855609461970471139481582255835930151496612487893286919196908825666867815287165604852775648005275026230602926189437429450003901574433093928874022733743987616990169733696811177062221625253383500940804633258830803433489713004478597209056676747102920618933432441620056449656300629215897647901827224850113183174548678195382195786968974759229662172284466572279855792465427479747077608472248316633681510366136563740975378037344876353020078995576396047252214908456235504163000878984087431512140979119419646228215687997263754540692642800512320491301184797853019672478293212870419819244291747618544284466424808046535151404612651009585159498502831405269162570003304251086030960403624656076743752051484379513019934731210103334794955017526980659038543782095747321341622553129762136694486509419806794300370394627797963117728397931007169829803500693318996420944202504804377219310747227031094186972590241869252362896823235123910627674008896549279050298873175917022564921235288197905263614365675850046685265770594981714750620594735123906053307607013688807469880148097157986410016372731098120752240941815185248369394365691738341161577763493613743612104801795116937307590060607485330766550280217677273398966903023622835711170356554713281768115234276358179758199683733895214840274856255701032942722956235900160173642543335762990043110883302686845221444873020866403782050226345047230247988552185828696746375430866636580219834308739710875303971532654497832583572830850661392778099101962682589708589461063624987387631652357497998537500191890647025963745904044434586606189939513091222125573341485097073356097082508440906858186823143421985087724712428668653665006270629591530552287313045668341842995553733240095940846278163509442061819068969383637892742975736104841905348369869896180759773379055363770999005316544376660678496123261174601885850684273298514241500849105562318272396381643757096353919737366352284446026925625292951790992056657037928250527014556853500311106941353602657108432190922114462561140495575612333225789038887709489117763996215828013415356128277006810399396812876840594639507134160725161947488030000774396036426303539589477160999912842167919092235962518440776101377842543103435255760909264902596952790237192403567668729921889800947092460585007435464310186885269697106411481400439197753074046814459829907843686682885164235700162585131859744425348736128072518508143482536089396063954734163500394414723845973099500013565448760175823999272223930676748419950692451350564754193137812732212542957347045709012016455923056890108711036144541523865760204930702632548215889893112605209891512857300559860966705916905371636772006792305081497654999903518960542923868020688277090587787673091750858193613983741977273097602328233793391774685762681422826800425298027919055540101893529566160244834236821657981921023258173377634643609045698618869861619463115273050314117460407023793187678997158265499294454021000387206894887546839303815232207316123232125193178440434658049000678209315441338856729033364354494409266188444620382591319522483003783161385064791425525136985032704083511120394868911046644436217478785905210071021416293827512758272910683696861254053354666106110869709007059596688032321050619967709453909984399868453995189173882168178393776746038099148702813806359022511242076423344816322697658984217428209133124007820657952715438450112090032911309644066751804286129795410952261486803637622411076077629391051385185258913124536336178331726208379953278533767257163307201246513278612171991068779076797850136330097211462573309336977482806538251758593054819046695913115386830582909691440800856990907482757707605071994562703147521949615571493686616867897605028749694806066670799092713739290312831472365051421294470889036617160046398964535362417884351516983628314115875266915378744287904002975891465357001250097922853017861984538570574726535914911862382108837729920908646276366854343740630627936411691000454348269383967245777882307802046334555133942295560686053627965939686882811388344398449045118199527277866392822302899184963515401840438067124340297306684901359570357733222312755509637229528925447438581921824487789783225457556338357618717047054419828718660600659121448885070790226295747113304655006794520081676308058976645066959917400176332105195345312317190226832610141620824570546724311814888508948896891505577461389815998356852190271040228347767967870927933067535429320004323024320486268008799322166596580249110546392714484753752556690779638988572198339207827810384476734521911601962443645638606049584160857849243447113321796587848838388300365552202128698292823093675383029949034567672004368468388218653275115037096532871564487240217305983165110394205969610418276440767246476455380710919787917716355263241804058118046777648145542592267045857964163220452224211797140651090692386906720972675641114426217894070833114384930287049995765912235725892377841294843182679009653311663820354614946770204450036531983562139542625032552061540953657444369254880119339936047689093307900858042846337996626695634195376406114950603247466198427421692796126618704753876384884146320507029270145536373952993076455969838831626064964431059995776948506943458752603800122767782266277036033425093977496794146192096417897075842900730521487264553988500579331313212770459186828897668091384241550614710095706105174869584184143975544826679535965292815940898547187418348280429751106223974201516829384023160502094524130109819966536338278871587706340414760039744107056539319727350175555166673432749207488844316110387469138509127044051991915911293624101197566229748801643413763384819323776519300598263136643986319545881263128980426178989377902464762114465204674262331743708976090217331696441630764620389881505806335118237313016013667238382590397784577233438766314333299610464700416161584781679837687715444176514091630709780185013343368431526323081903344737484665436656071921935275956528951722162532092596544964851106493061302890904409175594905092504548449779738359749698620596495541597423695643459411199024597066876782293785420877957239138833650588770295088574643242567812997464944004869555009129629780958871959451812149304652916800362539057700501804960267178495541855817919785334968438341979256515693405518271174658284341213275537306361196917253667423475636717697448942066910189151075211894189748183281902979498809600062346093225903751063295324135481906535360699950514162477942763867972418959085341302390345471152430802622199300319516776640046770823186559671877847566966433565228709942325117345464840005161335920854477728178763430278801529540032968364734347721180501133804678339448320406323074664128026891950695642739189460626299600189983300869828896826923750230094346980871133197373813704964367537932115764616263597988270760283098866577862508923332350601772811673359760911800682198782489638733398137969000610782543573441331078726096132703954448637354795960579592544918137455004836716925617651122325851485420446471827547046952960511853776257681079554708431102392119421516645745092033558829592886331571914179334938533820063789021282575758712460150802590533345359978866498845243363240272054359165747903365812676553662301808489112491829048903641768713070344817210413831490372148506584192729769779964597373226348141175415740418328589989222555837294917440100682133828288731916295041193138196846837486263481095683893398031136564671800231509420104483235975605629958714144269723986861244876936885353573976732792926213690097213959482892069853903915686592589241322236548153902049912787279470193200333304589214478835320679237678517199267785594203972415156822929932384008371570045999875691643181951292773474088941681956666949804403026249416962906068734790071803396249010395262909793150847091398901687187111593189883223733085990101196043085340844582339405383412834983271118594948009869900539581663104511327340626980231141685188430441444197192915031936532450438873146691505826058017950022562788047016810038881193337111445550362979862186343735182267273698063354507934286982204727485310739105308116457894269402759958286004318635778915873339439550708752684964374176429206466887384845061680313569818934195521686666541256517675716134712366654910817983672225369310058279104343779243355827722149491173841110197263201622517827952448562710048151004782405925188150706944246213779165057730792428321073675889012426926520809553809576356533501156100061015526170560780150955894233098809707926286709969912647808315542341491263736603431591620131328600080789822467680240631541230822941762515127845939652708019145203923942410200756768421690519031836426996221866486565151152450166927350684382773550129801943740380689089855735647440111477696295949807479125943314450227592562786391293253557718344273121676489000564217601900612539265546135198410858619434579689438668170395073684790699199152361856490696669544262696297580010585664296896718094467151253542462769093950362754327225501661137315564443412144905388738403653870823847601091013488090184363893827881701118943552425830778913417641985732461432810560960717291030023187233738019932059088310722802391826506928942932705659223099249977987950199858571969632840516858068788541764180535756487328737347073625149215830120749100905143199112977912142642809947539101359861512720043231289524909946392690096562207914740156955413419933280789812127914098040436114290105004327719887813304891786950341266314211369784180536871296118674157856503307244570690024570532973790703201869650695387069690054060640208068562065692807579978457731676653678205078879299735734133524262573111861510512433968332776343735013112661322651706375790643556289585687152282360726441876022007536539676654925125297036115357671946614555172636158298005700029429506931373200185332396499148781932794049685366298591173052596514039748514421898007539449796444799154678285084357214985671962365664026692749401917804643008182620120553766724165590327362589094531400496121376735723983620849705290897575477913521182795061494178626042439463979224142074853016041042282366763663697715938415571481396454620982274305866598311703262752226002722320598773772393572185696121854549631566629926034683424079151685150731025016514969309820521204927905719384102261881368918751610143902628031507886653328437309036867584906823772964920048982476559381099778895436541664011983265346631871753929231484412346906587538445159305974934316411970072527878466311948753763031917457423598123344735062145099004203553274895024838237932087250481533366476559897138152228548343068452229764088987491379095505659476690538034354237430585664335557496727873919407879237224527972051008729122698063282807339895783627948715107247915670898016100263562394322697250391604651564041705073322565652813220329315758240975873442475926900739027460317629674984790487160232860658374348815715368332558977944386911437642289651063526856910420670176501438109416947023892183730966141059046839191789843806535544718484000770166064783915459070344910488178933353291890478722466173742277050039704053374425038143100509636042014960643513302819920655690241908127450636149456770108761695460435535858262362442253983845967188989239026810550215213060695797852100765438841899712503055595010276728590761361974490304178023242301226631018457707683628094329633333250434332538093911138779681730640426556157005060660783384376674677404722150990521952955881407159379668149303312422441034350527737578178746994364249706912926889094730146827090601393718426368127146957750627714194501290450183973129618378970534156892813656147165596452978170272479217366750481265739634059126563116157725779107866092054377050102700949273764649659354642742091573979109003735725071421556260656704092832822689204457267096641456753450486451634309943589194201992033790054487789198949980034196442731009695705241545018400489623337561768417438339786336934400079649694797388509379169853785406249239708761104408151580595402634627487072027981711915506580732214814799649428223919313401867704157241301019340260141793702665362894994928501934084919057865157937311160105007732769993045099724933063372288936304478836456301960488008816867401416548165528864532168204729282764281690805846759781924312493443163630140663552287125102171356587985223000372905170156025777092111537050539650756489597357362855200521505236996787812977974020768514673260412085711342717285205420715425395865701592129660127088280817817337089577251549027697812958860379356481869007712936817832396023384512918987783430561185682185310646952124044634726647364049725956141759070100917613857457023619570205036667772911313318133775501435123045823202347348940482454759942350146119744909300151303185078177563320062666487959325513779887877231545135296810581964295868733176541484844112155175384007466043588379555071619844487502410781142269249420475832915427650623665038659090319497486690360419614462386514966724780459539242007418201438752914879073763311934007098816430819966969189261327159338298126574791725555079582141490801858513942943566367380976808405751172111722044086220760756063932601526823060630083549952570205819386287199399484612163217426288948220083089053745370064854622957532678376525913467074037616960807308906435245891342516510172631040977641110852237758670452706457036021884148484331769029744841781315173665628790607990860482598609641797419811373064240088602214611892666471486026458919246085924860559976606630365427540571836805704911547518824605665907988127843907525326885950847880336840011192322294859024606232075206843207800680933695616333695815251023377155034889189107525945213542579461750444150517983419560622367777318316770028352152918604291082834667830651986301635174469534272061914246344847025249409671349256053107900597820003934654421271179602104585197285766701939599215646222607702838809026882060377533435322804441217632995943850142130757449162703835151953706202331490268482794782199679133762986423203559472301474617138190037348024801821267560185535524263433889954858488215687974927673349690241704505313543777799239420879998840659000159145889569346966868471235999562761857475707595232886131324183125050172713798686796669715523080838787202370690350930346317969493244188670405301267596546131961040153398389380247094755213062181961958218224978894375585299593661836006152109699197693931511484692378210591445804989873353973971981334110840190945185638763498312038027311433292052542313144660174303744347906852528257002164107839222741790802595232737323245178668753446083311023615611743539260399741421556579898848868314625738764307975914600668195788592093013586928233557940410126080936479255093725515417637352285007316508558494162527131193976620658437834749089738349598208927138370411622658050630393758713157378512892111542090485422085341426664451290103753233993941124193384042319569560388084136503692621846512739088312249972676367014436976773613566185692839025607630354515005872977620730115041311701458329247887302492627543361183312345196712408305673051583625688774918721535810688712023523842532568425374825533286870736250786737905692621447962124279670849428763073229444468763504796036101403645688330531442115952955397828972185588508380754157302834847490074372624368695167814945538932415264847698323610344098899433650178738198315876455581199723106727347731019743943415737782021240089919206718305251110207143853561494049962868403200308987972315278975230655377389664365677791553414547080703946344200462986759206343579018387124851465834723999427390189773497351461695719285891682193828264528235285655370630306772536394767680401721594656938335405035673825048162110260703877848911593024599286017284689101727283711500961293338206210974837239721732249439912828008111782821227544936688398119978665707462457988574099395702211571491429293989907423044281554280440080721271359011103106103333265677123429474164136523794914773991567652580804238625122267022040443683340516967828423297067084731933485159056142336335718924926107336151461127019044330331931246134347923919534586554805475453291214271781299130571238155541559352664632792897339665282531446307215557403600349246799302495954852451550937607522834407985513003841573893585231435540138395820041746377552691215261776308597423334242882304003987820084739906489171429643800247414214446729556824572650398307867384456390500259969683108653612150396878096470675100642983640272539055388654539473583423293176395302605406685315207150985166417538046895237442585578556097329489459124996816357057703140705896839202615490766904153216446706800794648294317443780574456948124018902222887626517382208003028000738876671081571111804141319497826657624619434522364069147215537699267674048305790762644618285967083526449608057355771358078839980225988105979750825789045146690983233334046791523316479347036528649790408353999758882558820099493915362194469698525780782338320672980451296617201660496700585303731286481639338972120141808355701856789865677103416547872383963800951748710347582131645655203927343366859244073065424726877815417457694179682950841503325974213701896988611661227954262283835436184933172314386515688642842863836173289074027484806224642349930416461835339123957586148101427105608694223357515891758909588041683258599976648547423119815061058484753342583503036586707712608218513456023678419149970891141164647910195468383341161834877977293344432385993782104624104453437445649887141665451435567328382654845987774527209495743448519970986418433382313041424047653615240273230602675125832224221612780724273070545057179074407816683686126442576257475146616113226619450565786225455866176872308037735148865799468318945679527467203661417906643654975877467581137066500528256054476400352974613280222761129007663838919551115784286868948336045851537518127298063455904651083889880366419901817993112432986990147589719000672484090553582098481149037561039312690854264309201088345205866570232251696973621366108367922310741168720580579800610870960696087526243595476116631914050548163030151299846554846708431911519640128981251006209136869668460903420968949115065883624799783030078873183468567626058754191806911412686636545351204220985257528347506718129044422134572029137625194311201131780586485807652999327765325083088771619718899333837406512712630207410838379398961389119608928728589818042341424703400411260217842756544959079435611596640056825383855627001095279440107734195746079107491796793186547285973879531855442520013058794490084685293668541269258359455620492382044860541840754650524682828815242220534069952219447266201056544980888315405511307693063772310569632563406011665132735502270240888091577884694828392502077674943021989767187281247974333078915638567645031220786397515390140135373422838574409672246252054926817504893585757222810733847947221528662722609906225264746667727619161882241378627182763098179450293045758163825600126007140988734561628365273657938868154543728799487651716031442576188064335550220058745301703201705122532416432558853722404300840537532526181071711463588018798953978538852697878976663681346377962924033590168598526335495323762564992083532649348759101247371915592119673360700510890885598931796338787843448361815307725043904649719375539361257704219942389992757846852841717639771993297920624516721563150457118968627087334065581461684169434168552168641815804865796541417580746880050695364627425490415175515723251707249694526726288226336464323023436301220884735797151592803413029736582004718732252620983179754292308345267911296773505246028323865985329244554501984334358453756637738969727191404850001941633710136225231693747355545719888700813176388991408593887156202461638805318697098151264672095830041965970216087668440393980926749102799282916450999151259557227449749511594374922685187276910491602633467758429768710108008504712090984798563070772822884327703768092021527506215591371454714490084804721552857584422806427432536792626039264740643734328952260742951950529173379425351021592969571581120436120008321999782057595025450650151685412189630264270503388427078765325662302398502172915796716693093527781439842432038485883839111394109544464861624067130808591670505569456911758884261582277200930330146362561524324286260252143685485109193737463602732271204300924236099206696064090646657231599839210916765019372441631151049261424328736898530696831830069910517781812611388786176334460642930858327196645121052810285076847443470889264013647474952777675707730572696031482510533387540295210377473640753148185455104340860915709876692482437778011280445491621956502765677307409980791927690463236915209679974059432576244748323522064682622661508222159005293461270069978099408534196351793744457556864843661893802723832921860850171647391028551795155943296745560036398325514599424755563725103526911013201145831710341498487853469853907913592057184997047763846325372383408273135100110184248385638612748443529773609649213057740000165175618986611179514954317058219430563130748183111480694975555051556197080832907204561348039958609726531651286023485877853337057082184270722302472758384614095402788776414214165680737149462037515461856834339380489051830454094272679007171196756260056213118987941607420343093734365743112918604298966502772354423883007101321877124329808076945772114189773190210643065677107371747235586138537884393518011421918971497517911367768763503765992799437249669722069740239730266610864843444518866385643523171584531031391721950437776559475847474111195035986391720919044922890627082899407929672756721387218391143861865066265461669334769451165032983779607994905577381926650579139202725696919964516066446372201952083835030015792579707200077882453626930051742424353647981834930281498656345193807816235034189008349199252199465967567366595358858853364199766891920885613791636897889800816957996854538581704066600332419111737913785092586614483953920224504963625873790378206891311358750282774542021208611441582086038314379956559282629009749499749082461205567888804509924170523734459526868437731267741560351383386085650015660448089572202423727057920261388996704238750289084604737866548109545591180816712593322396650491269599713186994697966404486985984329014049764713446455719206266427530316175222056478058126614610612005605078970671859975384445041613198953456239671306236556824378795863439237616742003174875313611426287560443131335292524649698940337548960893388557123404155026344631434103367843074551499651813324312035642610027014558338898875043860739022979623227681531410145260224213616122238511156483432398973214986075877450358451095046874617617009255127673369375825202396211818430982152936917215594898935597208063485635946516439807179902557197071649235080907368579603042766070151377355580728581514868284313307538552161555151173687727637057768771248602965319835270041187902109690014821284694098450739631648380959198905015191064276140092360698374927265528362414491760665939992151413637929056633437416196131693393722646955498352084221097819348468841129876722961541671604041608369189502643261320360594497400721511241711582264876665958024292458649696555586253368688282273223394942089989749803745725847056949245495101627735202309239917647511252534554329385797319368967585583335464167099226406692803132725535875536906486387823003925190394509550224666752648688484577050531927965338641354505963411258363935913983582122098177752549234065587831056937581467827895732353152506584135777271219910438192973002008778770445511658642240324553592872618466635440160334372246193862970365022114944160067639532937156212028761899464003758540898668566333187505956895115015820977836909502086646666130194378034086875232002678581672357683749731431583200911466812640098395591937007223491691895044617346399968564475418923647584906813941771867003158653291029776011113762593219509222167024054290897227572502475559725293062921495081678547169076739999096660888574975553478240772473859068274939613465715082873754141767368610973060658912369506061256606011766733731008188169617149886719050580561012945579471850541103719824322918343168576573680614563751321536586703484996014925745032729913830166106344149203285214236170636958439378530653412184704333131504583213746619722589387741853488182958616432670672231571289643094799471012055940638873135288527746192500321681856134983686304790267396676571422582779635684491790912737436072869095130634779466655639002033439876637405064986834825606683742697279830415046479393700867760364417547137493969628555129583942924389776406867183376624783813724269674883500663977122911118821537100064070597673591754612775947350931512531153996763974666178381095252092059029590220516863023711453901384686880624302075108217389461450538179735179185247201206209091866493842456904625335986276073076643584314891374856414736052348007570287998229328190262374742943983913188988557366594758612414071082455634577777890964208845556776295434763731753322683448797687379182479834322431667462570115330345665231613262979162549898885900595927291877864694964017606323581827247730027062987433497730020655599612546946886805458829516531680735420644207606828590850867767189875578865885386053451844310973359243725118793038422605817763479424005885915367926802174102264255216312864170496876250707121278427231831090622035408515687466167712049613217275608126408609443367359172984530505601438545267525387698627633578875902537946289317563892466362493395836334248395067154495646473365135906885203476773667786538550471136010743256087293006041079277769916745546440059621870321516708731514979580015147125901108944362775214202430001340937104818040359732592121601106213169581560630707644664087044532835029802475395422280768908579853905260311901739584836460148265685071420986859697855585177139976734292702855413219191196100137352027346502649205231691524559270130009605397060444164069895981938634895631714672727330614070850962174736424414840936833395919346321648541835178738838039451510138441005074461686433820836951786101892648118400534206665267422866380326543803469119110049391893485777723910097254048275069881910349555683135777161885132687138844216924343852340514066270202104343423487778177354569545038030688390340925684866018990364245743591821963107957684922257476311973203017397790424056526912046338422434327990816669932872481209883983101120703757290469348888507404504432078359879520317760463545538260159604719279706323226918792815258633199117502581780299782815270722704168712099584009628452900464467924767896364720503179975142299371418130550034544112035615846701140751554833816291050159947766786860253805289488229993982855991687437664240295514184487739248736076948576210527237385370165043857459240688269732340073954904325384178648391509767788350373074021348289698176956723810072135657047952659353173819451458553679311918560001438091876482999005016871565323865233950111260288351940941700763509930195724378324657954608914404504731424671425153040972276014271813743539720141186192331598583293970810130226065149826114931564553513007957689323298515388305983887783942877267176975580822191937627836298581131755274658828087420669278742928431408623931849415716284482537674387627240386981320173202403902773859770076418289975218872412812211924364042971854002385451797174394179557360682627659879160120273505630918513183140369786991163335714615386843803280721223018458303648390065210237293169283466658272695734116703389660216146428451933911095035856794101343946859194773980141929880770415149187918916814102694791268392829259012676059941362241122609883559104991294152172204970359943598053689116927368674063216922478784821285652104450187876261961898645063742022122052301051915804240038588493041128392852464034803401217793178995124887354617465246648417355663592485924073732012888834365974880315296251084317436124908615333523248376640020511545971675832244971318346360526314279538778410466353821008096318607103331969408745797314409812355261642514028320080467556758222822096903298438051657141482944470079029882526491979120713554895560662064108523422631350377234810571627143829729816552881945481409233500345153265913294376838511682815053950002601699748627435515903099472543639987126809991910590551811715455729478126509321288802800127410947984825783937994413885515916116085980842615119814326849611615754255967476904118815755450548623248351917317216271688724410626391955787903258252323995464827686957740705458915906626660285211030425924611347151429338183157806761415664269402014079983997015979820895433979188044374429174846151385961052375881497972983837452183386231109840758176086737436843141536430044928077160383377210335396023504306001740474282575363343328281898544169158075462403599385152097872258020957760777677793357660504190942801979364129770645424159879149490322572175842579571987344534698159334559733527410493265719925401195778325682867305443141784238523206679214140253171180662567199995949320674554256115928514460088399984246984927088349100120577565152914864711143560000189661338201964719220137934788663630128958722056897377216064069330294799219178518852852945496341826478322247966102022989925482468573108417512307111848545712087493379931228082882724046126985920739927351897000786226733211502828843342655599442210930529636831950354416267059989587634259264646235052840464027516511792451173824994069559429137011814638382178555721293948911304939466850913049957717512085598498009695116038238743150423461269728187385458099372980532889844062749344528698544007468352273809432578827283052791921724706625551071743839677163477580200456002743400770778212588997983434766990143437527184170266575781989770988764873189626896610003885502881924100752707601645824690962741792082567185228145629388727633921441652938018361321036828659243937453621527728271092316511520594378276206402373547292274425151259617947948093604071868016602078287558494575452040076684919018629948602101993849868198948755222578858233888004322159231722780507539315684433364868356920781387347582308746964153057328847296341654611021407561004469672542468937319821702602755214892520100812984320711228690530688122425054441379744814333551906114296350215527842101220233437558218579526012917965887507663903109791268767125640672418631631994672321394683912219989620998130052470778232146170842792957373699559580847357554872742179509107729836479622235445615034201106192358661019885607315779441648820843603405544193281569420987414522917511647343601206158725263502502765807264547109235278023923990494325139197156600674093262196420170796875304346628631006649170486349227150062773378473029004767732785759305357255336548405381246072270664310017143319543586124443548721279255038858429586224683259962398856192034394084910010132039460001719228586140252272488516857321590875724863484189541936938184683601468679033136945983937463334633030076094170411483692056353381329125326672899471046991368052296924762054463571687272816640862709597574930406834645848681642932092771772068562987599403080759295950679063006993878967794844401004083652100828040269172309774371249230896605794260529204454057172311977197906223381229970618481117908271380162733170928349963366510002285947352525933296344797349628413915779073883074257820271246640231242975764081135257279804367374226152282698222715493154615680644952900253369795060858069230986836207429807062301601932967108347888339490653365955364493909949190476098715598432974484213770385767912135553648896526514053694868022973977899305608886155356783073792713796231923482149426522034705311451652863442033526892447309004669016992408095009562570097176049934435074827734558286035995285979789390368603414373825418315103562759009597666236967366019685121385976071181990413532416865810370061278194410742275138869937781776130664118370737806794126357783674918357887787560051314747840491423047041840879946814585447039525768962432374469991248140441203555627380715865642711423979814630907923352849329786432686087396774640480789017697311450897720465797149090639451742975139826440194664032197546578231984670869485297985977185808607998068626985370426468766225246824060454822714163535756945239484526330494773853688216924474544815889536220409829293135110539916802126953877086195605817752351579264400234698719835906361338061413860251151746470154542622902848284873619664004939501884071499548474719730994103914585344945267064237271563989344417527945065353965996067707317635856952543454240995143233882212147162334782783511948125043900709299645846064211040244518505218182850436342578662101976554788698502727716120212611763156158935750424243366378893931861732983030373477760437272252815272494442425695147050428714542417138331005330253229359845765908213404478409408917267938286925432595626230836118735052158101096870973174747074427745477844449532145365727507564590441195704351883718181181728318996796253005961879109223858513484337915080232784214168195867536324674539108229865570358179976992654092133643496565722471072708181199073055960649601486391154966857916525734546076711684858403578054477289889457928887739516928747691774820397368385028806869396380302642319376819484122074330309621298586860718768814524369909275379042538454159903892742617800681343971430505496077570102545543834205244306356253937987660919626489507893167801893048564675270341481961470490261651830364974722514768113973987984267214464875576605093309736469531001394820703882206547009120811924226384503628517807060295240312267403306630715118164531672228089197969535232991557285646157569190194135913148609732644289826646338860705207711580163374756166012979620079133559649707155296873791701376173451412568071802327466284751294103552137021984476458162939692757799260469634482002870045155506987160597364094677238840277980225467391991769377526475403923053088598278057545890848393450979267583515768613431784199769235070728555290278346711353372370558404011562093026312276121296959284645236210363357925522851481790713562198878803126653333695752814654181655459832573111951798514174386865762990114263193137920444558855542723951544842525252420107897510615894958941229167470341319137191283901827668584570662834921694256993415338805259618475252827228823605103998005016388731181476013837105882293350719117015984641660724996614249296517287961871866443295658387669614738976883565944439704301757077315464134723860713809087883427598714370745316770416917148664648261450894898946765792721357421355588460824405024514982830532215302597654658563690438256249240651352364169718148494348424267205162167092896149113137189859415300650379935679244347189379779342838647489087302506650384396197705375256167936123810538671496699777098088267555130996133068465474166811497641880194280273326477751619496993511275391411126741087455231427696905646303081762288485400837993667547105605367355928823792427338941799953135317756639827622519318049513772747210114497473491434606257660004724986435566542638348245053342601980149032563305781478496773888056951979276519288413220496410201342133621461022458983794503917673838079306739606421780655983714386832883180773465244203054262625431193524327176134347907057966202945000750835861512561252396464173296893821851506480644218688914048175487454057182901013868077830414863468251327556038781236110781301235740002419749622349686339851305368679571267603142874942809004158741093016472545654937453153233852374582491631738526111317973783080316349266265722086777798252638506216180642396378597525537627871683371848040766904814424402089359499948969478910764922502075777179984028623219121564659167330490382028267118088905523298698195709562386981298997550789308848068898580349040364378462662282302721206387174397600378799522206049737602815563209343941247563352049786779701772364369135135499665609546589774804902085792543468709875650338915091162245612837057187040105674954721887138617744882937512886042907887945735105002910835770319806668733659459273082937125968554656098711492133591796969876970309481657154397154757161899407547089833239078714388961091930232589827186843390945113962257908880343589571014652792331576752218796879728439653841885715155053379409972353835008771564073608106995092220890532705119354776228754649940746370073459227085331701382296861546196483820858196923735756515645301883654730047387410748329504602393623623015635029255213692730373696471668904525305583354686927576909296145999972734470815032286207719102411064238195968104269476659859917321942628396051724624855613714228374707464628777862909846407905691156224228063587397535347336869055075663858672625183569218499738272217999520517577725738583094095884867535985064175284050219205635262982228708285844722903829057859581813078724291614656056256248749964918264565269299282717105386032518920788134621701961079829766232043395835482004496904607556699932820040722982157018674486140837740615248481555382602025694457300289540732569267294515728008336039245936652466529607060327715951322788917984128543792392712583364755859860859256864899728704540863717384167895939598943605083601017941549578111143269358893695540668820009929506610502110483511563987127584481352891341465367596333692480202701889761697499264124400513343948050962830934621715785107440036273208514920540017751753157932269990252686950436229926657384216985234028716628104420379845238856020632690757620142838505532744052806124344342355666140962397056560221222821855105524570584059133845835440991483188756494311604864743885344989570542148814846048480270233660462793626807582489583099394837382551144820622758429357386878801040161610674424499901413016836332113107589346594844603167852838588452698138532833349904236353236705140686104846122704497750211057445441396834587754679939893912845460875078567247902099168951920533843721719451838938664342612755575174345984077574613585606726752025109046129413940821877042775424005231640564951090736620520375386517163169450968004757867228875055322428101525275386485157822880497039144079331317299241983516400351646197585827679090973634151607001527007613838029308017685150224076307789793893245794200375083103469844005913997156082239344736670012256892726247849981565426123087945315216004234243227191108976682313069361457209003552146103272079953394135891598866950672856340699657742764892918993019813725292221944886725961590625204603491680710962751006134393746895166356417524312262787849867637430357388455915847598326973021985319084724659236058027979545313684448498191911244961750040035796051694118771718811516994850392767499014867824386937552655278184705659863681163446363051110112601347123669566582210364644885751835161947516141417131454401388587408438377216558275081920013319314341288693601702161677174903679008006218363579528643793764301071620252626137898419494490989827516866207172838666359890080759859896446719703047459220027330532973873501824236928677970910427017749650799278064490993563624227928946331473458258150636976321693015772784950932133402946411405613054489919835471001024553579806803202417502352252633080711508609029695419899123090696295403691380226639848085193118870692033649961992849048098224236768055674191341337223745792074418988849300952741888832126096306010288665837191948832886078272426616550806652775494979045376128918997518226774353877278093558154645668476084193391311187884420507375066862123874001384255232355916345802646814413320478945259548827730464922615247426314762162028614907940265662362132017096944954945134781569284031573508290207111021555801456138233729286009701748916274284989955828235235091539822440970557337137505446279461934545883446406125878514850761801832418071427640676641618219615299970314957256257421666955916349348908623628036869148594664535670746279038557141486382193372635831209170453713620577371547380660551147256956164357354181584950970427545139945149286842853716295104219847681376391878799125467824170357797817751573091131036386205793145536361384295213834165401635350135919653037844516171775207107873997650862573970147768647368509420438241532947532919586573599483222542233108745860234218434957332768466492106875258004814921966117422576410370075308358153671131929860718697936671461022584579177926970634982941251561155862672984656695567713786816403106828512654672296224337900109721261978327495721022609175247810280854720126564021126810546592881995434012388386157326819616973728704641611619031977825448034640857075660809214635879993220633209914700146955089347575049450648282848967931180300711138098912438004810832113711392342412748182927882020058793857718561260529539454680801491353979972620016647036753653413429654804601542612847676323810359882070737482277869729659411737672965422060449227714561631042221705081289039189668312521880589900810795465643275820703921784448152482656439984227268631706178700563111740225777249721399443609118371857566075270138265114277906418917700343138899682028506114122272670112196073085222550282362508446482665289476773169918328185782105056007712716603353135252711815705952174531886688918481578700972931307909962054889094910294076217125270153034597219943753863113444743915409162658479967133489002449769783705665718797325472243162768920514154430347975544789802963514776421023989821193939851470865446083884625416030092435936454657285597816786500940200248500676625031661830822617907825710134823598764934084101846007545360492394189356309317824652210291198382816835719312014229039286662585616617918408308012045402979127312852784673338406202180318201167799436908666135683899757407131402936149724052257438969067239682147107973760436479622890092230817973451627520134925193588562070260460253728764020330498678275061597228556064974416791673360522689915249338001179365312336971181837071825503786478941783697737897337979553818312101070018585129016883998193952805282093791855451327779317137021595031956308683803492409135278900128304645704494907131711200046705514302031061928243600382766251246171740189292794029334172433762394136195483752548203005243248747724298469357021076736948742371253176397724668815187070880759120947649615818892003365437861264205541904820017293661002493094231584822028559997820669098645964088896914211556982225724945281557412087413449062010993976527393696443424848839485521873011647493315295587319970757126000557782213154214296152171494083736734542371550028300950049608511688931412390080001279629139719611626808431444042921384631704088617909143386999835983983930071448211397014371563876125166335348366911022492274921359445687601813495938236956351017949283307064315182841247564696907817117573069032898738181863455641130153444941661099684214624879745245488150240252360801577005970114458067889608988732359095979334243542517814012342382072642144022929974741271527848106751840552802647268348358108790224897149923018587511552014381121554778846659722922181909772975673180070612540138171865401852866079993206786260493102265567257058937810357655495374477388642074850036772914201715922272298279384814736213305927942970438767220469531605426703981280553893311335894823472158159417147352646158877554772466189160957148063378541939003787893554463335999770276965030428205376307662273450119817922058281248891833146567994824308185342731045589881272333238377701241661689559940482512051854911653912967749648405368763638846322904822806994926714440000095605496593451655862805700924838600754183935651473382636971468236056177092450611495051985713941879556915418109463451287261275044699652975480599233986203065456650071701977845844345926888976692332969153999054905858197725999124381566824818246713089456495030894534727651703233385861507549348696919698272939219450468520792310610170612332303213840488222915156589453962227181869426617015722054370976681388289236236841114139466160323298520182055271958459248810920656573228920869117207865132484687993046811027758371950019165805439130206863695652177330918272646460173724623736991521306974796329204830488353226224427980815849307144499841634822654906998406026098962764747068345773607704080817146879008878063086834882278266044497488105193786507517188496825970994678614002614099953674336480636464466584806820795045338785876142666827393768788954760065716829753056069031681101123379974624282802058114959177916733251744637118807075589232099757018641997626176505427064481198707967546256603614069300828241296748146865335539968389760756394444404828266186190636150093407481079373609515069529034965188104286392097040252843185512544187495481821327873973287526186853253688668181624668008905509051073516009950156656805498707599933753681256073912588437030291863201236384501988242115467336867439179332927377471598691972624981045347415566094597458259292526019895714611699373954154603610616809080895562170007109270443575341070529834962424124785188390611424490483777617635217020809081979168315871522140532689796787388951253156934739352232719815640862243077287349471640579758751998894649777430658040853365005634414789023861023065882847298934623062554329340601938958191856131142542225208354248117717777876794407696383917317174916768443495288831714482721645494303634251491915423796163308786488056632186246261989717677446686674104314189938501168427963809972851133629115559777212423248508889088840280197519374629001276200439497480526828369918672427602473925734731165353899902052553908282711946540865662490448077200419867551171857660944158992777185185501779442282202977827819524217812881994919095353939096070155421534871564187758237170996910814278889697809205650379007773506332592486841111202978846284669696515368992570686890238115986539293387637049449499617352058035477001836072847838128171482248471475648584974951783767687684279886312132413752194394256961192019056390313476864013317983216771967578893872596296691982103833030680984567575246057755436708919139218968322885807408188139176862180911929533501827356757558535156448349797658108414884619208076818164815405726559151475984248292632246208112860617139961504008138916705346276945682266798357841827873170196601343087515682798657084703883964051596827405839464563336764662801932382263613538591866275989526687663793890253060837463174791736523404436449554004577181559533913724349435308905146931992935783170064729314713340543828096775604937924867681574679812147613471260861145445524607563596623523151973447040267345870262514851188926138884310878723106677366486002966399133104320003872612677696065569858154872122307373872235724371701605947296019693379970732916328763137341047516079170063990589133081846914367852582759389831830336873170422389860446568595450174538487208113913274404179397689745301813907700499711729534625300127187598850449413878057032863128455450350373225538628057394255846982601482404681307232119795974878538468905174576001919496573190785713237120933967219161251717231495309342841575562845032722230657190448582082458950688363717663139985297372113142261474804055918847546341163652035776706362702810526898005338044962719005724316876064932540638020082785914913054765654146532721140809451840255126122359780266893660096352844039543426489601015331077303685170698851602338440153456274757518729604206500745156098212742603558084463775145394824249227735708387060496606752973381953515020625747205645975516818464661658762762545715034243017489573375946380180879764083371228523805121431095055225074830814545338582406469345136606615204166064192948050498080034114815805257814486515766289419604326282249386884318920807626633297666501012417612193494997851969796777700312392037688757198285555851818794053302667683409133390184752353444280963349183382986086663934660166320599053071867258632629292471858133642084457096921527631146627719770192360530077132288545934325379300120570053578607982315228577544332298713953425605895053950648008027474361385151268256455502628219788507668808872204888289566256702384374006696006464877446955369424037389740105313900366009363722150867148238669970694265950662174464038431230732949039171583413224265142380360781545626922042670396181483745601080889036817082455996431605001532682707443676741124523279350993138004024397931048601490120545890587028922385451296697996205479374958779594183519748999424788051953698984949620571900442184130644872830750601921510711438028711496127708599040925392063990743611759181502136607677997596597578228009234562355491656266869191300892655417553789135896131806608200521771803304065785972203145108960054412686353969035285995719064130051718241150555298192691984636876667062976001242965552223403618691503795654278154285842111972803673618406793261584327359175023259507542103026584092820673984344589552474415010670123007280825611993250546174718558634356806642505240956076303863206519632561257611479755617426133408710945209083754680815895298457570794024392221486390905706600107552360246696351370479822891281902050966020770640622921581877090271100827624282302142262561474834934556999702604747480110705246297054099459377603481294570541245953147741148912440984681678228241852983149309819468958329961214057670720148054877535085674527793425857830778127179559242923761646714528685824155640542946722348706600470855529019494079264431571420009794369797603523367912327438212301910143386165010492324303530769786153485999237281427289869313584250995330757112956177177714593291998426696037968004499060581863666836266141634697494525795878926815090212197588150841979144300814279594849331538149929397780505495708902366239544986089368118639446894418284043402688839661632743094791389185867790601685450758530861199706549345075970379285136221095079908984461995772905286483609456296414290377225326607140162137066274021345607957351919792089612333361359344722946102315942288616289535095212154241493852108359208559071119900887300604862498035983127850334841765466945009149176984622805127977116317319582840535794336469557518721411345967282719094873043030957595047669746922016495580155298480633950760652375094202338942778301293093371185946674579271076272538112190098085826750835555139319900396548227382255279055808594341193508955599365618411103064053543052487598413697047881790223876983160915861828282239550636689750076646644757124643724370895042372035878272397785297820099005959749867690504944878458294757097949940112792911340885373315836515594326763418605399994590164479252773321133331821915825151046173384846472192776696696242080490769570161711633706378650181967917939497557613569484288576587905493433698131944122220752989130328651844735376479112267306893615948003702474236963624261807527292661794943267670112203901866531211624136957637480259896345049711193264673019312266860760880368616630489397110180720885423572710165949571581614348690457032846231154415593427339612182645650895600292700111468116258636991052113707973924447924092685482932807421623777002517443362769026458476262150538838045335742128754012623375739742068744732702667171763571183791221130057027074442662576373823508073262708472711151663530122469792626780722458782892541752047159504143668926312358285659311288221123398258420922244003574120970698150890167683383834260320572811765311967317422873522167486767288096416615060573775300631603421170750983592729238419638941870170821906050490359538538298129191028289875058797997265895644979926562528716981240343028653276226102042527068589673519422618560830106335258108948243121072954319681879228993256085098180061384426983294456713702022980369218161051357738262418398250115219797417998486002835054658052949264262537793562045451359628694023361713512984412518436871314041702437595791803617967009982035807656597807075704750337426483740459970161849075005464748777847882741313823464350180628709733506126865896605190021794706527800456757382626113589553624841454220178493756591649363168330734495701342735797826884448195527786054061981431941441846438645485549042146592376873596789630401815939656236038188179837901418294635639102905557309904774773805969706160275377751745360754425556773025013565815419618170806846965920821610621052995456869096177968081968889386290327573464693661678255486687399297237768932498161470036535688273593253891414461171849301241535328267133475168346555444436306795251926128898980731649207427204478927833779992747269194372036991216194275691404294836840604253349405468385370906697369370766278413215175750752654756452276395278952718431322110266186459056108942175451303461210995202244460184469292135009785238832659392340778849967533369034042539483015358555226273999939063457811249867027301431743352574191496298816454277510829699067860794158211865525785299883621687967189148742482452709245945871958202910443129671477327278306783426253362799481709667654575188684109010693907650039642332090324083169412671105040190443859787959037026594778828932996955477818520455247928886301156111948716645157467103815768587629508127696763721216434060812272295538110556611230308845677146404318844307220547305765776727720974712707544887346106067056670354510995813860748135318829120324136097989815759398306309320701547804555929756148184287182301978323988771363161082398700779480892099358455235023625959685979532764099721170093956148664957242216915496024974986630477013299122979185376029443258265149339451524918625272469056882660312143020333167415916863193635943385492247192304174384333474236837285459557854008208203603925507310964232341037230843155046076353487413094088977021865309992345371332524539390497157040784236872394331169255718911066225365773233661591888753426879905810139980427890610244287589000750425634621517827116105382019149889454688954844791140716000631839167360140186700965229080193839132803328179149629406124612968413886451607633868648550600980158168281607219562281541820949852613977808763523344574488646447204998257603161806553489140861350659659481717002091731627594963747764306806530248552142662290100336102401435691042694548163896380230053345073855928151013738592588511613515361305657655091762482844034972886084564769258005054924738942079186656822812518419277257383742878957204678811542199910028492586494301642146837427363819440523453394017806349406108899367784183687286622642257477015505030958971620680593580579974060072389662905708463466844233041066497849347103467603110872981293132772523810392958617635774667268571789388573264960840280711253128806479882683279182522588846230665617722931151954511358497654193662920091237569144661825243789714698516595195645270950959859538727664301449790468368155993117870794839089788604222276321426018745642898843544848242622729259390348738883069798570078314298718804742138845069757972998032225744516594816279554930196537363059410064188778960149800215802757702974303577269325853817949550487968175060693723183591175939189374279520273400533527264690240021946450830540616384070090560394729214174567613865383676424026269899173288118634904446692876563134685542757007794457533124010226486705107756330989839738385703544516510744256191948073956287990178253566046303546909269578919879374794605629853498681930138998794312816968019576495151004533452311537540209497825451457793336256317446881558307854921923076898434994109739474720610882469076496754425787957404429184597553808565439381876673364335485249279855073252016862208295254293075947762931879768443360322547225422781142716754524108857314204411692602458421622619833990650183128792589942130820931947169218024118372400249565142258995357194569384579156934197002004988200710255714508350186863165080429876844569365839206151013679810825518899770867828345700886749904751455955527839610557146015252743254087383408701001956052883066671813983568970909739713809716317798697217692152437413716954475992159580809189003977696101668966672392711188039683128893219306723527258380648342056190260261361615824594027599515759667665226913341647493909926993456197203343059824822314533043226937292160913486745495682029853817004980533412761285418344699108290761628187552251604265690563064110365323389840010514711210023697795535225916835540811455960725858521938706027037083501567391484945632115510027098838899898748821959629876045118920193723865126329362389984704154776733030942080644969782634361299141199174504083829337707002082049913204727560434799567952878328081619823730698953258400048093109980677414784219060403518546782606208612884707788527820115881815155327166392591500490454081971647758400908569523060818482931034038037345228059896185339954121532563939079151758608661139389533158473218059949836487640772947863940978097649345705977443471248189519078325770396526408175229377827463165495830125697997659888405681014020486516668163227702472765488143992633532366713021994806539279953093444788945779786146117254893345528241582663052909664495019873903128059534673442595294370687479877588947515637534699087189752776373275010846956126378297884552306170741305212116695415609282055434727503612951037580779192764524413679920393656579749614897041342411833120573211358881204234437709032494362858656991866235510474412668613665229562172923130560542117071864674704851145247866994228627016381034702863361186625807643469498146213473643022169900484445776796965117978327210709681335207307994109659040454540801268257189458028856372943270915598032273937411316401883568913419431507846935488318594336098638071563457632442085362232838960567545313747892560363207203808482838428757074187010459304362112678296728580154043055336055999790528618205660742574692862347514811986923816114489869000970358616355071808063337332727589430945983348369456992806694059721076973219636280276724241533532686745785747013902880708957809925536351183410571040604044882796747998086355632790928813904298489484250981545549472359855672065350016637756554161385096404723385803453486863420766208848216203471839646857915230505743149896146487290296731960197849023839536866991858858534211829757830999982088735314611950067033907176767992388614885519999545597032391018510415453680727881264233595290055111269959815942271285022712331989061006574996844731201545533657196002103152298863814986844043337584366995361452558895654830522055364827868751974795995105635937873598555597896728838361253160972955123174882476406659863138934370432213418155933827592372954544622537332528672926141497500418043959215349676937430221134852106961577734692395618458635900548282866210074717294778101755003196531824829126633124440032073329829966220807013588753787144478801575805567894305369686542128844222313969332009516980028805458827256390562156036313078229217405688715386108398793550263884711145353816045724335248123835362887089343134549137496543412581837132562755954800551957025382881135509557934661124309459571086809804748419484201490494962421812445559812083050021382141931576348162615200256412575007614026930593794283350747561841741107825727843417426066912286939370756015374433206461623730995077931352961645365026152321992241713288846929225620432835257999606367878608922439323901864357965396500270430956983156319059986856984723276905131888977590720681250740602050273724701910498539792528590473438579207415639388647253164930018825294887584069059822763498030118205142367686782779486200565185739678898293723626606868996018583812316554732218004475657416883423009957723986205484633081816416779840679585779609773861422387505180485202860356393045009481372803578827376820126712006538635901608043528584092878048206469121079459362766463821703489156545642416336225359696872548044733811282301538174198445761986504161957424138448010800381767774067463639565172567121988081138634484313485969477136616055722491388658120554473001246769351855066185257469082455783523343434775733434361401269256006402527794960479744861206580284398777704318883407737436135274209928615942970167085188719100475286711321013793331975231527836948566502353400230832015398528510118533719034949015277945565096775969732547704444190565415601005878615872750520097098793058231735891522859034401694418272285050783108637247722132795145479913160720486784879853110444228504564238048903077285250706882478617155198771632715153258833104386788005888378566553057102194511374106879079138168178924160986308714464134657151360886827114664144987607647045267860990768618958977118659023953235516159497881520567010211708811850523116816395779539479048552793179390693938159794292827098263079786979286729869868613024018762026501325264613351904019096086059470259728729857492011784302281198958905807479833488423185488369847142860745597824127793360960119929792263556370325423240951527605024992747355515372458789775068054173170303819069400613012023280600300660149770985271048490445241530333591640197504978175058673943471498272892150953592184216449099365793329516011396775250393989136885372574376518034364256654666287919447836995616652270947146122903984710636707654427313836097564927135287933848444473961045953855309195903961215119208398851714202966169742826201162490961573109591920511383930841138121318269500975453478793265481085056603904569378611843055699208023705796081604862214944026276753507189736555541453929556396151929510560283600565419740544125268918253615330338684645215337685381938856281882841450504043566950248486924725626258267746062454048407161794767237100655605273437173269442715591469864290053547143925373986685877803309804407137662241386654064414796570774718863573745645621315521612032134461296050671909592686738289732918665869666717588650006779996631816435412360667464790979740042884514499711339307363148434907511085166259104138226695443907728455069402488134188461668233999948562899223713413910818797137896241890367856192852395711874957752385758494885222395769325127863049911956073035391064395568428683107537495548305225035456779306996483866331511066767585429330708305092368245365908535849664032007852582628764891786240464779465672550152013393067062494715026129020579024421886035251361876624895557450004150551523088768769683212136430759915485576162071219417217036769756167862128605534207057564429204568789142235239263293407804241614053526305576003534128336462641205651883373454244489205663063242954245087952224397130446174037022977251355308657536058353503753484070026443712331074486297213542991356936026960210978308590179130337821886892613116264680930132996447252849942469534931620422285483101373186833511749546425362710059071141478908549016114700836113552712719592285552341334679212768456885026537378178924087530003365307669468679264198054521742090463368724087905215587529463198322256749763327476246690678563998720256830078407885184525797242279209176192030402855569119001541619825984253562895295881492485598166751177293154158229848480703334429096654513961253580102039611490233380376191458787728751753479295644153936865000448165182508467171052249948192027384826825446242829835366725552338636679071757529521962859785198894431768531898896630599449748155698832245765897178278491924792984113179505063752869596013486404329675430184906664150155239669681015576229875517915292649074989117450030315667803623841514540575460650327354400622404975443570847279404153164911741580268506255041827152993152856798537940128532327458175978999498912446304635797178719588011405779549052157864541284838597027762448340552239231817585630524523916651426338862494515525894299723084059823918530368879728847047489056960394524663652739048783988243424211293829458102095163732400685874646809998380841369800152258846627071732830426655930332976305813537071713729079389899742048843540700062139155810430926563432481925632583968608415280905004342249138461715646943544597694674041341455589571373253196009013886384748810544218366809753883386209065878536235334992414182632389002207185353749863411334559840235390188185693352134547890681878181056126502967881999596146756843221424541910136884349297997389433271049615058747362336697248884030334290645624303493207350082905122769269144887852429085179905701764140906908291155905004659084397764783131903229484486109021601169334091190679919273322874698708879313860982453549340012339167292999661417399386106865882691243925330076606620277912741966706872142518346621954605418614796017406883851081145693750651920655617643388212600825608375577510416626837185610135436185081422420786058772873183554981652176733622109245982512567155497429784768336969199436647124668992250368017840480141136334388480665203058818944414296398810694619632655821360359349369491066923540622369728575418696452428908337111116195097602819428694221159866079595002259301811172770729880884491578277514465601434078363706677218138502094454254629623173732903677132615076476886854476563252931390541605248834140086090779136740785592300069360091285576746794044427464949301554432774896202370173201153355115727161751959734697296981600016723487293896874533857731796822389842769003916593842155650440197291065065361628328267789959086417742218888296392710432371232563586248814923744646043382478304774286014047759666711108659719086334810174046480148865414228968041748044005527606239402926919806381835661907060716632425618739235593813621280195392053497501937145322858403477811876340495433659547705160497099179909922414253559544631765732964452664654194818697107019791595651879688578520325757729058264653541380644527734226087243395113640479642068448620059641773539952059947959456945015014345939614639994327685640208144055652323568379180945477523793687433632802140769797695042703667423799039521358358401212232078970054598035883247053415020567992589235931911140738789269341189114073172928779847497663647653547674473055952161072568912027420482104224017186822155263575974588562373309632753832063681269058923784270535792394556928364968051029094409402515608933769283582613448999201414909775347618796670703579866112881341669363939622329147383084211824844163468574708142592858465714279918581866021701408430661088207014663375999823480415521896083827316308608676156307097503962931292191983030175332188198598464996586250223403217758214194852845827595888052381014418366700117987275139912531088704831908929535774471740211185050189904167350721621470746971994783498774154713350991297805368747338398199692128778939305396416156355533691459584886814982800035807063677165014192968539567474294853761969939330710503022751761854215999318407732979031329170911472618687539735103633982763105974379230486726063869231385173728352198940886112159987087464736224534756331107845679273556524866466341175058162280004643710100964416123885429138271740115821463385681423122226253622420300884149026562701756394935165895658343167277954452247840115060824156624103214557783432854200744675279726106360473578815450914567486272568235779393108456088752019178718208176672949782456858958810097305334451800619431913609570142547316703160861160538483000875951144956320088877438899133113674822281244555844163293581136767972548006285498451595451602178508721896600050927766212109242288998676128294256561362367627384061881594425150589981928519466763806885150145967673583538846017647444779153263845098427256917446875609765166247061210507864679172599681680326339322751763573477923544122276071762501587081936828724622148887841723034189807883630790291007236691386656749345968236921186377565127534095550108723392055172824471466892289075470240645698968679436281638146907793265658681514739340569222016058055776045903435264729028319131398965866825241537192173410774463934696768965666662134288850989430103442858953576915745820977512429623114162498202130768301322546122059010625032675571548884949315420262068456553757147661253964947025597027035656382779058910515607860288107051443329237306323648775157791806725629606410427376461378389593918880919402123560365078481239225844240091157563545103399884110306257260811283856191803022809438590459145968729040321175631902523275651883905560650180237057457075617506044877408272568531956431019217095803795820504642770481011616117768598053599196037616736471130390576260241398839607453826483512832892988242392262315502958396107677393856991891942739943711502737951108798449257185174280156290753725441910886593552302297370070198424018083835996459949942465939347958822240495106745671885077669707824640522246533382310993903157246816666825962645279163870860327319830122428113630704622843291221685704509667753897026596386306783317825788604565041496480275069586752296019518755191977380181462885830418902799932772459235635728154545440793652325305435161917805065491608060204470951212444991551496462770277481020729884325195312580543132333050570997894557850659459774357205126913114354181945892148395890800158538722053737881763433656344790004172331357071425502185033083231561681189835077407916644069329759925003474332336367941068881913014306457988215322450977426666220819139761232440346964497996903167509749734287270853768249194949838644212400846523593770518912205223807109200226231560326949052441564858418329211999730194728738861360168253408069621832360118731231803201277459580255215111609345034781784302492110867963203874543215701111393729348288390905973016946642273817932035053910323206792533181870297405337873906053337820267160441459961636615760069783117797625022451909717806094520036923125781162853422418044554318921228018632461258947306363512671238862872218552328414331020372374458308481865195411984296721666843402550597250925779470716074690903732255000206806725421089604129126854888137166011040962867085748717246115243709681304356636157212564885306430155291704615322067470124464503303303727624676162348148884312782288215737231721949222964221357886090316160249309653416826464946757235892409448765678056606435476932565205905779385502374880735305771402459821190229686408174549185399388780981562211922242128584779909688886543450653593751683802085032305246641108147492381625785830233846922738069296590342551881133083068260136276546823299313667142782898350691556736957218450383593935458350563510142341594973362046465136595427897290377672832297451852102791739570552183411236630683634195815198196762581611790361480345654691779886676653008132319953383266632910140374800416283457172054234703204493690504323920328410688540177415438903395884736961595168750722910869566931874114254766711870273857697419480482340361470849957837808927209922924451843941478937404763029104080696805871478953167328256417954617113492865807569369606552209594085898849598820113188465653746457237561178390962450167226673463690162445638536252504546604666850154382780760655709251995190485927710668071869091439645755109201838023375356376079165181064330389720240119076587630969365289033241714965747370259190962096908409701105787176824689474389410780940247464334081451329945717083546233944944031784055063154783414695909283238993926576370512517186286289136256526363336883897106158648885978231164500114081216442495371884623582345590161257525937331796141099849162228293424121720022815391211055405126564324921462801932063315999049146493443173499453869095284608778509742993952149127831876892613610052237694161685308800505281204681047883356279506548600663676317720096417588401268023417052962391375103341248774228194659671600996465710893737572362129219231084192496631804970515870697762467874834517190071913299549749296165196299132836511580471043247190325046674148444415178585751685335073620512533134233674324973616735527870727209064340869453796933780513939379863034282948599270277876502888738629283189696815061489199772850134288509383943621103421536834707667847944065117820196109081643162086060385979795330988175096196737538995015240113739046727501258558458352863447143822697689038350632343587366413724752917743894716296789005502776111199114209326975154947932836285385494727651452205915173020989824292367424327407938711045517071286827842629803900004261271842690663915731401898989429309400462501171453411119210155674983656930024218499420168311657652459814759713829686801073768206688599483805699325659084517088428278392176803472544720624308636242055248310583357648752852811291867491628637302874932761736970290867997789545839835581765864725933596971251220287144301586930836445575706503665404494275018324074918414169539640568553881785600748765146071822430742423879377613673031858395744264057406689749260208453168723767803275492795697615000052385293976601662619507852048825595292850141542055630614344740418443815335655625043686463356981590723086496823685301379365327100041532578285073207184049561061111637784686321692079842326817255850262502095926203791386185591808287369011455171312820368993348006290247209243897704241900114605724927425649532478651672568528151537279631568631672165470681508838805622927723392742681334451343436470023398862666495304814052093801468360706881887772938312574017098998291658542156683962695366299675823790108452501672804495981927448273370659606296025344468440841255873782476332262882859645887742099867208558947859596636952933253665094713480981085448398376223249822257353669625226136877168482163159748426621027238577254553723044041090146276915903347823802362424516413560143851039501251950718739123684639227889438336870480739608380791649891277827538774751164452509787981105709292593527093773108331836882396977716638203417256967361318585636274703660804177545349253573520608122294238336832932747496146184981215928505924951237397153364035777644098884222677098945445433022004938364009750251748847721687206168772416989249248177634923311998122826673829055989014639735012010903489153939410140794979199485795325078474319239833613652072973452512106368078200652982240804276495006003522586045631533319548760267599542546634905595276776356491017293760233789797041988088188873569153420767079655433707735899882922484798782900501535366863353006742889594187263977117293457945942371636887158404594143909972559643029972697606489728000752194232404071075588903197557355799690317525748671538391171261340059287660461072182737284955033413965577119028766684738843819061153034685899962005004447723391088270855595895850988874239745472712590905254943455022786151094328790237677499396330064207057438719137535758124759979647915602020607005692193941643906072299597266307221763565666130443393059321384795361860158896369274591736206649962318588343117327416961185783396193182455218826573639165280610626358554826098861032449591442250308406109800596060102248147072732654526613826720190752261933210220343690462594446971168022615051916104224569737730542013060265220408941048472772354202113720624863897880588071486316793668395743302485083861365863240959955060796628276377546117815936969193049757659682672090142516039041270228698141446482380607798754804758391958913411384813389532520675916497283535046664243616335362456701155274928168395995330803217459961266656273920099025082276177899665545244136689053414335775148679809691671549141317384318174311054571962397664625520205800780631192812690207006428738607278793139689539914293647211204945272400743928503382987639068383731530809010645941191534104413872539961434303423937653727692376514504732262821183862563261179231257496026823746666069768071051107988658023060711490193717670469326450528099961570475261727853091664391999380519821694494143925145633547718042706459922339437883304547044552174160979961392556155468314548791492314178985194866220166358846993769701037761715920086693662849006925637277720001773534653747635813185999719085380031713890709076811268005346840543362885028162681555453896993258907206020584035897967173824364000345108766093291847042480028224965089849054868063599733100944257477365735440143931569683267355452976089219168177263081920566851397020559625362931469862578618512313293561657930462290105329020782457179006321156341610390819253958327326922385954859446814615537714233823559817431667406509122868802888574231238481993058718744627151053316960554630862031567695765459317238471540565971603679952061520015938789401160367038937819409505153381628518181681584134249894707755958405280321755954261496811744580713618018993734338753088190047074852880111992014218492945923542499710486897690925839622086335566653908517949536074417612833668473404089540290610133242259800429801816638593709641559882182362925076587986443232459017933579063424683408018512270252448341925840117498186352807871088233999415560103096406932872220551552538305231827090539716018826286199537549920807463561712277898173318556920790207623983309982764848827888081165423753297790235973561339199577002877185747658143334241256252199499588590408114610017296442476557529885906553918420602279157801940972951283321199169991082335626694822345306976505835015217466849318053295111544379890676327231654178314279652798050775036226206252438031852007555842512779391708473160182549985241604634353294615123944295623175136189011867145790432203110223168446639615601410783600074290687006938908452240404919065930539038622992986533038849471681500997482689389071743017894866261169528783180868740193325095717144198927762507697262940715282209876577433455224049743677668902678928464961460540029555012383008080561433004402024109244549823429045223892484262555645829810654725625746300166287761875014253243832177206329344107030900689111506133399695191497141322901149843960065560588770878149599538307005866481076112668655485098770753066258055197702868829025961584483721729544070596005002538543554792813999704154977494576088732970626432578177531502239944150793283460370790323727742922205678270060371431855910001257643868806061818108266840634864487037947437224884312295807434587652470405987679544880789084192905097359264139401880701602591850575784030168103740040209845817179629801051260805378688521105003725751062938474878628333272941214742170366241597769067345167033658329649225617685475848029274552832397781221384814618442106176592227278692989930073736321893867979620576556941776768482135777157803124187297587360417552963176598091257722351560533908528955390178029221102681368459006802084097768116965111916868807616811495523129564971336971020813119844159418126382212881831896613990635230257465851375857391255555433806286820926820271279478243196855774454009938265210485204314267437354076032213843173728067498137144932496551189795792367283126075640903989939974341281378236984062059597527719479315338512057414550607426677520331998568529294033158438958435757327315710704833283533836269833384016361031771172881896399406207238361785166440019404280900198294766566967139430051630111123927596133934449057729032690874563502051650033159689181778867501398337961029092149355680311817383129286723022783639155220930948442893114153317337483271998694860509810944270986120784756781543913033091632746035036292615802389405110352926122324020592454051461997268380130518295951401248389619598280645834014244579795429068786188368608989305315962347823442049934198399848710286719877898482650193225529894440442037200610101193266496566972967927423902979840502294180794262048127026356045369820373115929028501973022453585557333714114439207474244001934202820917440093105944031391079747005454539595743566935381675627653007916413835611901257573303748466160293546602245074155563028209024507959718637108022205132057032528876091864719250379186020789920611697928771622740382205729525469508380019055585479339894940871099876291585873052041288849645045440824006702412050252864072702576705230505517033030852928439353877610523201582527674872281842451104931684280224391982207211993311423405910836850748688211906553245398522631149079775831662042996655536141786942959584577033234027042299791430223565048721118278945071947441951175097207969474113406259997801174006009964016134214916461404931495712297667250356147296883738056446764541469996177241849623417758849797874957350643901243857046302498845020835839219686876960279618659809625763272516748019480235705345343818195637228665760000175939610773207800839980733350837729640490976540888616939327504310526567431100247016736451181965031521515775379173133458909553327546332092019381551002969590976833393215983064904038632410755087341995385559231003521967653263917465529527280741591776183626050712974200742219016899029301773950487225383222928606222050781551966124679196618816532926849843003806970090359709485617092345877204297130346734715795143847881062843871178636585087557531338634782533549772263347175307914023394185292418514975070738379030987497722730911071701295747787034104851029561760961291063740494515295103984344334147406845060570436644911031076982422789338609546452959706799630858085814760817586313985130997464541351018330723181309616567571556167731688424807594559247320794445903404536408688525712568628719425082717638969439109501141032552808987153610383354742191150838546208451336260722205129607835772115730107074115343597253883403258499046302327949923361959140449703038161423241451316362248137524177486091389446178455721870880641968159792486052399983583048943325101751817411091855876408669579983137520670320027414792692618712381844306843773998031455108667140689052125473090558140552012595689547936118470489830284396551086192615141684761768066360303603255014297328197529190769117635134816206465621476786582995860773013539604013805821479733708795678117748829712705181814291468195448234750871489482500547857878089786133583921946941125897970597253312244978163446351030420665626429480104982467602782189348258422639647876825415067754029436152439238273336609067113134215005872067644951334022021101697219411543035822149050152140214190140497843292013492527249351107206526515356262955918432081224487065630583690153798142647927821109687070984580811338271164373717928918140863307571420860749330171352160184665660879350558704189806389680273969857744584138627491969129553082293373438077179266591506379877117179753009928144136261510841811829848051113016688141855862457145998129613210274399599018889169667217851291309010363996148111773740285760680616746208741207467525421702951820682892348437676170167974007858495746934000660135733170834984998643287512911035498310347867003784786675999801148875305389560108858805348336440967021349987063396037966207057099091342696931879986356527586631760714864758909920902875658877452483201406356421329903787299423071912951761607505503107469680643055722263643050066683401501892227889533683395103393472434801528878257135328569299074753645530808224366257516602661730396227225448375848847154463496741584427402139249713543056690894146874683279334228733407161541865957696152346631200672041660464558922136077500657723576320679762292966457294338060372426995187391773294119360140916225445342436943933575021086294633492747388460653868837278294676583263191351760902179298878081119479640190339139999468086131842055006301384635927027528503182964775580115163584514195056452968391954400017473146441011808043788800798290019388324320880221714988570316403869171375278235336879971138011246537324824690756879010356440537777748086470960759371246145183383839475036623981265909433532378057343451826925970842957438018564700804337960675048202220940750895435506810136710435038646606710876450395821357880727353998063548621004624109474365558620872634047910773722311318855944293656451363933476303185532661478813595518279684412612649344102688610729579554735051219231236067033059760305130815091671563993727203039662243839959974545345345944993802344491130881915313519123450041793510005663541992166797141424148632630523452649289178949325419419085873839439895251304599001522725131899199602183847281337510033001501891784298985101905600411139842314666854701739900306751408657709596477587968405261012429601623068464239501385145344529778060039426328830723717404129498515917313075866537840161091212608681985122894724354556622786918930490746382906132985136325486706268011411635483222876448379962574142763840327296674551990297200072202622128103650200249174495533341613219258801970705147130210982003706210281105921420741777026014090160447119025848780301711600453089831094267793951306308581481683399835866007205282211728930948313785494976426694224309490148831403870527222971538319404153468680940990868960242690252863212207121673490092205264833942284926598256338480270383745115601589117149108967473532873991338992480067974605844031377746237573322850415617236461014121562830643929509865088881270439278514117041071383267736360085047230487123664714777506997135347779665329662747506275447888160075371647382188267558742788820076960102593370243983970708818563681292317562612637707863024243849121857744556371041559099445244508039812401875144795065199314669181540331012506439594582000871782234799013258106529070265179576223945760951827744636891376640966372680105732925102446212461223479366959390069640898048454821197145113239382006656249551148627020524550264447627917860461795668196905501944977346227407595607288198372330023159280731384672457687802015560814074564010123456224123517268702162476658340131126708340107945170583057633921260989961979611389775448448628214587942722504692909686646283346068135791845054665152494861586952407458685844274618230389379441491904413696213402801347390935104610726282059767288415217935656822823903940142646142104280151972010934756523550845777681428176515193403371318568860921648721204762394504747341863067216477232179411401446680429572541666776330880923932090458897462219447195051911099727794793619047936295193516077444257771576434211578200459610169089684379866138149151854763172764927488006240814589752520608517581387693574433160259926049236115486374218216147598860585937784059350983499643987925261551241523853927438037068337727909857490233818195592473740776061590699498719949783613141579600549590902484477695264924495369429485060684692296902543323726723538138532986981444716236580493506960212242597743986779935135144671933024083780883526714689179282192176487398867410337341343195727495405381759798159368327204023548984648240620594526994588724385633686803239936958617073323173581948583903581513950377280145707865760296742722381439821233305115835880201381579910662468421748927059214858433796912495097537029906085227425236790510516967146328882097527573218981242366083811054908084174799395027597799082567134251134088031957349877089872891278041866660708248294708673786046472009295350604410823135521575063331851505132658099336054658999049186488990171241124140266869795584079780977198637756991638335283150113906151893481874815912646154035260894095250133843162398417341029525257853013540723564845763886512259277294343873468249190689275815215566559691347174110143428220128386357637332219566174117995019462610075909535697650054407196069812927733328558123062985766957011836116098321298749378872105061634503858046735084138568547842464873377617977459128609243114873121997179991811370156929844665779668592032787518328651040532015261578310147025055788402088981067894036266242414536246732462186358855901231298479295934251051383594688729765167641060641841521193159963491820495961759195442372895982763403398773783970143369708842609901678369605586712782147290315132676799624787956811356794908547988767329658655179348980484098718674122505664410591712729499536420433443218596483653039243029630157260933954549689967211841270268465686695553520235768884748992806310691461263159712129242131899756927509859897204619716688867434764628983562049187903840067174225858076790071466422652126781345269724063988286518461182801960413030824696696308162804619210117697359360702102335850685958477039231987542292709929532610958198238425579032666970700687888263040677029639223789021173980186597650484129366745547922654491433193816181009501031924032880329155997174198534806120368950788494505635101340203184583084745694427384247452004978973462361443985382811013428675728074664587044320733189423962331979104506556225157990262725638365482881554565353857876416966691453375057591865946795670259846764267974368646033193053964882072676502946455902701160244189365772314220042279833401891215906115915840604975899032412050027912710318683020042578454268486427649014044269872099011115836372260108603899264121006706552579097606304508545204195612439001863131786802527621174725795365637940211393828876058405300958832703667489569156751038597306110817017808383179970425650782314529920298419083641852055214534489103238530287556786730622217793277726001383551911287338421009125806838007086232163997634402317864186365983356361990639264313477648533870384082441041169767367883447606996298841591990008491139537772936596161593074342610880055656243056859240993753930534454743367036029935000136928881291375452636211651937022626218299043755892509010865633496769419737640084918836458903118401705594334912518704438612080924823592210369892017529097076111990102281882050818195013107063406243334618150537431846913543732406901187184836819185793833209445042719090960956712118298132849986809842736175566056825298619910784170704934216019613226051451330322912328713494818288518394112656243162888935938978235590619386109593455554100534171350085069692332250757483847051355931625784859764962396134929337626824517493233946007186829126390983740602616223415445409501837760930928958143932996917483722125900991521058626897622950629567739322537319306625295874543881534653861927143760693526004145868417590695065180877460382007532525742007824147889778860315254605184765762564275085567472166365022699184018889140013778186240681272425600526852021973007988629277444233048378156864980641313952964531888869503480470983462824434912822206410705855417885316622669610545859731355317776189789990458190549261063367842377135737692609900970636668195021646404470366254351846490144803285720797175473363725313148716494212585683556273143277283086229293792903075805457622317103173598526178292221958388078462933378931550425823160811017385334648612093270063095987449258007389508570423215642434826640800110255813875517530811274649603434091031862837075702886277643311238676301787945728801289244706603636913289312284236701042056564187664792418608702665230634750182112156842281838226772603997998428735462725378509523217657507695596810356337236591933724849088163152282101094043252891276676682684393920022655244566401204743544070226880340198532695973659704289857169129305285633711014247955438721374696069825730903331601472323459424716722671105412796341570541972665600353871817388619631132861644983329324419465123811344745154990037510335734170669640845582604594648411002266317314812477123770877710571045899683950962626635862312945930221014868343901848520339786812968185071867995711983932656835850641800308355696342285817430802812426037237357454916606327442494746671857811291132350673897944212044280160165113998199235677068615521279805114324751419427246161744842346656165896957334004940169027102051585330706397761585930851721789933204735280132468618853786010018194633978392388280683810879366691879086889976635245345663669594349855688936630841256681596874623523349338477880132529796653802696608311647820627899155293824399990063245798963089832502279239266972853912279481036496863489706977046446841344553532765864428866806154216131768546767707372475074919179733114094519812614308048916201375399786690640063579221464424980781867109356927478505983353147366023930761838659189402258087954882237883409881556798638533339136713120354016456677450444010568685795928508245025462756120775455799850010607602404415951062282383078611401639829034667784744701624090131303392901469538757484153884067036137571625940868905553746960592762339312720580077204367441429935855138848009037706031829070252347617736179775608182633396641165073699622623850167217474847978203951548337736373102117618236851868555625021387182311091820672029490337898162787412938133445017695337049643216959201424622718585169568189905441848482168934240082247863703044803509431082759514458858391492101534284278031017111735647629681175480888686894308888728285974299455063031646913347179177998335592827471038954074673696865444666787403359847201102759383283745031920766695750876903026898930110445334534639745801403536995387381555178827986241163692418951247070201414712286402776788077577251667657443693696468041461483249883275930321884820531079164087174841901003053801844836089993811518799508742154474041304346485707301049333688319972889433118406574680731582108379692207931684463833918862805890137708323722741909008267883417241095569080114256016968833541169432325827794798068940606583222983759252994129343944023634024223768577266102789702111019251645415446053126453823649633594012671893316489230105317827322228466330735278727276587360809722042920665582949123590120819520525522579091864423453406504372641009192745076247431864790760787777283778461807532100750775459301057678463199456766305005458391804340857846523104182825591822964899572225815533622929973167824222498383620222905863997449034975101287674617091320695884417841116331461690316012296776584138528546534892058748885384751261456593886252533784507958973325762406273409478758324092019000205271449919380753195723803899575186116950134085546982976931862353762609316127772404987138832605483839023672111374268451581527232889259191989192494696423376127740132320068100209448875729512453185935765565707547522461421582880910704961582286054378464185607914087847087423099415263066125318742783379304420985318264648120572011544998173924482766372183941375503380363651580846842820628110181222880357562282196591107951320183318301105011297668063335701287419497504925836693411306058569055916810089804022638780300115216915918724309699041352053807565954377396806846119215764019934687984827830692946942183942029377985711822207559260156438126327318224912675287957857903010443175107566995286118164079750683743620774997654735904480758157932677620364262039612419682497506270146368440551426052722331499609032447579930824533963356808674587646142210072913904867717116224576060589274942275828349932672740318427367344402170616481946527144026446002168952075801026767561624864320769302631392797955546035477799942255017407528239655368969580821888576142889181415130728777363836992999130699165951607518719573229975987606906579722132192898851497075149613021777586289213058842254090837497962651725705685981692152410577662418749693204799909142053711940187007094825856536966330409819804933964197910975835276746623122295907159642874793329082424073060921265782947152838550850967307192487026525538452966958848731882512677942062022956066285455532252693270390264184358699565384222074674317964992206782327925908786765222742140720095035297447310619633443176562323281438492489696874780124840262010292222653532916657363625862103316695377241478398307246715544022155547605399557561170333345203485993528321489065273109047094368621673601811508810997764861275531624456846128218423287694120336328417857759035028448493676875385877296217410855378181355598937383750019653667917243221261173897015549125864926745307950030694511585418291276682127477953180690801167739568564899037214005326119468510607691212383013916335187937771672064583101052463589148389919873551998168717654361331246346045707158374735289636143197631567842943666028763211073715501442751237086400988321475050654517158980471234473757198669966748311180583668197796396046089576162519202062443457752280238463418289378785211671387467422618166160906521418233146848666847480025187734626446194457031965873105085803933874918356267579472389859958681229104083757219255872387732664051942226264164314615460250045978736198916953235863108458118050499653083622176929953628337599461908775652909988678104604761580600980175258164900850729356779862831140002546164550159609428509997243297355280909133919390765286239273301452268753441666228052725606983687637141456358587071486651720866268524834226930939897177487587053015305565307746915970557906894623919651608993089627331722943411654780042593860759836655834520169119961361606829070662230327513836720852630753362777277170669546487425571127235517777234771035657201996897680198508887869589846535487323755953706199892030914932639680251805657770589313233164692847503710446974304462780257140236658913236132236840755739237661952641884525973172468603048289131964214035255241472987106120360675269810407755612454724444487330689744383487136621521245974066430624248364635684421774402529318045942241423024895117089924748626896202293710970463401586153515636794167008561736353910086583952250121132924572304762799464947884689141769589901203195845055536209345104827420115491467321962928479071758814959037926637890000403660707830427817506813279867087180447109648132150349308402029270389199898017293094675938582679881546876094185406847079834749037935509509725949132561736395662514639261424159067105190402644136686242050201681238574583918062651469966805080684018360494680783574242015945219898126770375862474148598820519353829892514105363551512972471690323820457012258378389558280301253142368211466414462822249271883911710729570777097787427151767841334946888948646848158561125896080934653632564098712262099751310652069991127116341693998296422126348666174420466361506649949325914123129471440542200046210069250382486392678656751486167681086406830515059205304709551626881989395103996790260100982728362378724298663518909575839959173252157660488695104444105104056288712798924519346631479688938474341829664001238904328574221389010653116236597213709124221808935150602639812832133529053549195990488707555363320762420034463480569444722194226507529995308534066795327044426455447681428414584724797069285996072492116003253070325972665110814708647477338676537863648840895202875983303095267484438503299775134397298215210027475018910218360200608830294546041190169415923957248564352345977343152858531236162435285515680039324798199471898449252191157608268891512067282274354132799497831130540974412621210668065903216594191328116389764693595849862471111869541351778995304167496617977229675909047122218607008146876125088007808513391094098366766144860463660908748979303221517608624053065610251871787083237173812899739279319101406670220335810714704715855365702563725091604034729569392407825588152267107595486655299536918845592894518055727426762849151250380116195164861988749606224441619090104525379604584935558093362433915363479919811901921499369107728139838084227115193677066300660960791629726735382472074909435072984537048332277510882287371076330035684153702254710585988016142939874054571926188888949862292488353516213272685765990631569845299203098048319435953093673293750645626709034953526832481855888056049152746970785746579540420519465804696135268632904253081177813293437594603558170094138962220559062077193329260762457668819808467047699440657052460910224756145030877343287401320079876875996945725898466705609138300940015881675810795633681133945053477416165363505775355533029039015456144001324709138499076337647207304382394232632165854455915285864834804393259272447546419774015026580496602236076106394728354161907191279576064996572266265480800690950727604307455103498291147235153944002462016552032455175479681258484343081263444415067952705795175944204411789818732026415088283733516127717593916509407637918598661616653665399324994280407790277749092684310745310387375805160437412174163327705251435058230951677124908696359493222557931673755653272238288188882235283909911495125958689438725715360097224398133578877297602064440886292406483723043320617765697540437368089873676589845212001973965024167276525739657627191130859560560856992888469065635705232217065570333228926960184535040476834222475841520252776823406058317477718149261854810626579933453761754976176694010261717946612532733490028107256147841473098916592891755173410852365727139719499565079683117466729028915604577251615032699949018341652563493711039467636189706313912144303109872477312026079825725572425444233734289372950725453697999428896385868851518756422975333307457929211910297769824585437006289504098738396831286627409107508152858625001732548531854100311508485247157457661132177270950954683489909829160560154186976228725583965762832621146545607066252052302602575000381156413517936002028400859423612001964595833665276746258364600711739647448893465729053724821849052258017977506779655896850708281969067906376825206618329819993801900385085230500282826595367602593468263812700238187554288080286170104353239906907056550223059487737243208906654665102242770608867161181014714918264668282256085184199363996900441667949808307621685791381750888918027975312874023789564774313140414234645785152927747064257626653114237806548668056733359378199707998635510362548919625780938950097499540162424864944237647663989464793047121831221930552833862959885111067600943088629428121501065669519508112367344234655872997200199256259470558405651377745692251809458616965084898770310940715797004824352737265989359348152214521276325748298254338691668483081323091661025854249869920357859994714159446427846610211005935869106600889318411768610669786213127308841009595982867506126687981507242866457606019601350144215888677504331572558006844573574654474909974010891384247938460226944159446024597253007148770744064515299176237061798537428387972630213568536560783595674752304054070300555276880550010512049956837437954508619162603649934258728454484737483407222373541604487221266730774047657854399946629573312148636858607134911849656494712153040515264835246888864987517182645798483295801833515023466033136255046144703555663432894960263665859829590390398344035615728982798884805043658453450927015811205033335104679539927870894101736337637967506337929681243248191028069599239926778440974883469961347680729956396623293303076141989868858009300508267683243526292792754398039856472786424906158780843097948348917557068102376350250998879839772853682904414985439409612895938869947933947954385289010265304988228118065713250452264429697065832031471677572270072333492162443643803130303626159602284359665115634036131025619552296532511442947233337690332157694942423507910450289563532303241176631757274109815734764443161844194733877725943688466737736759835062250992426678816041649011490654309312543763125793892179948510023673920226157961998431971587198063302925446152373911057518497765031893618451571557810073416939671227511696449077103405193797955356705865856702704838768676891848377569482491330197133193188113017446657870063086286333264097223231425472361432145872612687214601768657959788477092072334685361121930889248477415435765093841067485969851115828853952769294946537459398418598110718197888479643469862760813228032243667903125576513585114036630726453371037748299407171334039339213641857045175370267640331297165814107089760410489267967823273704682197056026382713696667534691358391109359138371471114430324645080108102330824625850013288509644458292597245705756165179682841414018617891507106149349669024024712552256910948283454559769373787188375063269747769600007941636051312824347159899728818448284212445588830707732529085587719984455939482165157303961347334363892709866833498102837309191306740932310905624946171909585320101451635374557757128853463865420197435378692483652390126947976893318398204941652945604304493615585922943176085006856454930038516142134644877335148409194627134853673984591748115519658868120934938828052182998884810441660566642816207708595568822540489356473521368016382540131874151004131249683164353286542257282533259003650627987142804965244395363988002280190552956565286797554904061068458757720879776565098287893578043895142657005532327424542272158671070080858098616235361719137417590014767038958566216570741058299549123118596243423863886483911378358502118321842946611558325606707650230423139213960614300137247520114440437316877153664021052979775913747866254000870985288967977573801715847735798732820826079048139624190918050630494476495434089734131915407928873072224037064450580567292181866153623236141435712543865544954729505362430365769769446850786560312218402399072251131838822330002830866429052974641345571921756913258348408360635838856759637679310496005904379438006690041986623524845832783643059125230145796094160585479392730205062272600621570619645669493180142453133216256065091523165402700994364742617566130507224887324766659589606163526350535284108479647917145188820816368611598948685891953145530139527504353104297014380728255873276879179375044477783713405478228329305518027560690941910373998223843960676180016892150370527881826825483592579897395403509056364473769957896060413244282222002382587099641189706614582394373970431312727134960753435168107867295610668227851925448463143006842131617195242684639983016330844270226323424509097285845695849076110106120084675552058296595210572811129478458506122861544068395998376125816569219127927385974346078050436922758627633024316960442624250048620165362362434549399021545840546971252686327609309077319042964080380407589921648378223727344800603420878804348140195787831622077673276609615674199588246666974666112217480461725726903106262509360924489084676524683930912842995534025931412108472707005348320752993314029153062697428378571975133894945729208011613035708487002747254964804631284029121454291065050919700274697921924780375936142088153499610646347799023265339334203991147620858642181278329954656973295640144829014316030274373865865583011205632191003841167736605889652817410987907646793839918359556282572810688179976828453621040650136310057303108873002816768025619277427544417620090086337857598940335613029026977137005410721630013532047354701972817114185352976829610487660537982377058374127316618427128304066211328286057973567595385563235014270763448556150045881091321436996282052704409618807314266404697419211655198830750243164350314181810482340523303752319596060123415493545709364873668898146330250031074114768959511828743001062322167420994927458962790611389560961417170351383670394544774102069198267086567869274856328078919257148225413201161322429240926773415358475781866291707348469387379285790663820943712928262432505100744426309578116119859344178149857334183484990266487111403772410121450051661686575910247290212637451560960042530235303993124607597203136098601570577790384949435303615076648864530301829512942382750957728159502781921556226487882375807843060647577800925092309261959123972601716930570857677855598066973675262141325046586929978953670965955313130365582551122432147001434303034117091582845718544798095574775511272138635091545222961396991119160104756598574869866473976486374515298937914378271419667197178742524399714106437666998917981938175281103849025022783842272522485581516283961309177199973099820733001738253832089284199666108028708733580187932716685973909909429634722509789074893531992605962602964359116134963431175762987920800635825712342424891845148899064108405826282845191164374084939294573105164181700409694917756290559881383177248210406954347271062972629228087873248985407277010068114138480130249060040645845399455107472459951971466669481065146532409086269003187692273463236870831123155205715009410469308370401925136099494296300149159730959926872760480215185240651945447433249571474365895496551819361906930350973710380155468174241501240999321062267664298400048488545713591976061819484137440221655407219278459265541170405331965633267470133747555434070029098312814166719108492030410460893168226496719050032350067663248932028149524520076518565204822440103247450262199052169210878786551057726083329141578449941818444613840589506957212001501888582632416486489647112096974678640499414490456639524176724041143412624607054179868646963195825525610517264596023750858233730079819928310109004985136664169490667576354823952570173727467081430368270454299604510336612906278101254779939643364907119335348561991764804815867919314026618199742684576807547286372298267298339970356826997675090736043042117508812301990914384612395366193371764144304608142569850017735470887429138285755653168122437375547229870645581675576266869635735883427054370307316984027692467875898599382798026629298707102746380217085814746303683655712933591317427520693990654668851044992955047601331135205456073700618699973347043949770782809464968833424837783080899515448407753930502581083762887631445252336305402332357173808149897105957969247521487809066948813492510451428746837661172688960176749320856940265496874713915574606953132347991936037464876419697718291816070879197721901635728850613597953750620553066514290735482344159783168054079010768450031986892041519770154675063797255284288859983707626955757862111766363887690071450424276245561606014220714640600557484784794654389442234809323527818421645831527145048393660619781332095531480661334034994366770433471141572495455464922415400280711671216959636765282463593460820268235264950542919051862583769813592894553746310420527493906203057075136757487656532780322646269491664662580387230784091494917775097425428441449977977137783158424923051933122953832191116643813792525369173227023596240156306332415497892417248772129523860513980964117511373443317117461869653306912492214555877829511086142517946468417474322351595318568248894142967090516962758094198874658391292119778146750229673030989419608499472839592837625239913696830290630611270979319508256990317973966759330222048628095936550163509305652670319564285832746583191541982681929226189329258707551083119200471495584521857950180599653039362731573037890124238914571421114475381447148888119774156492950627896407091880842452509657391408685885830967900794298532636430358615423763233981206140081148279882276544777754324402921385853454237450634196195464459500807504934522686226516515727814183227034165303818594833961953616597370950369688619215546441848595011712927587323990959524384621884830008417130154872469676629662902089679427202911108119783590599185230165615658140098069684727928172457068652282302576281436089255293130160942982778763405298833575645399828628029554769079646971219080273891781289753798151278303537103475968714052286334859275060118302457763417535506531990712128359427932198094943503712675980521970627968601730802496388531845113868411952752821307429829753147084607274579240740421078086920707089528178677985651130860797670594954648236553899931544035317952744139915525600730624146735522573899167062680075705875427776322190464020040015746127641262489127669422504385241139648097112996237215201212175009369889344576271593446271946569904826053615117224052022685227837228669527878468320738844411947890505030249339352367417710091286519566225135663007394257129380952847626851637005990809515588174947509256307112669357442728923499219493647049521544372522386095406370064252049190098163466719417275318585732078958465184120938874739451244934717019493419261605156589088389363222522700135067566747632665319400054423041976249312013586685986725108240740193116818066148380235075574574305795950832102210150673074667151870440734508765939611267946444586344243262757645118293431528244346098984064886331345517341351007635790904497485337445225455277790208468252734680658445672982729109211539925375258574928299321963834924620198724678430613390466534324936440154529224811906708123411058600937091901067165815922334432023645456960863602972146875965508686144439571830003339571713053289207382339960541697263720171049272345211952548279228704256211607445764218898335150801391994428604583384682143013739251800961952187134191662774893612934813491848110918254736902183785802332547006109091941148009940885537436957009555501820655004357261283008522341946798651935102544005106003947000745623420784806452947066016764029954621267268876625748446335142628832356071599275989837898032633449471906847034963747969358240140521200685568207547640562523105495408891911499004546634743910335683108647050407350716804170912379050585792865747299889015616851932562832129440723325406392109223787664935360211306347376889308690032783114480358970113588567162925460029753436033337655992128323644918360450300238671414935119724746261292074672177212649165656235316855964559237894256919202824856721055958353027764628098305650975442982420607754611531895872798423825797070495676021651253865890714081417064922885575839618821665186174492884743686222483056134068580061649699772930432349690629563439567148536560613351420232833699927195951467491853802201962443299246040104541334894642415915060834977589946571359403212905915731252287063449091703444666991698348469497808611253074028735898759440497376478038208185734385597937880299379263855732365763207424025011370334627608966847133531040091568591437286253116093111386840723332298817460903086164057668950341493974122026068361708087125883113042343098148239779971308097076705343149789599509741922104330022839939745370439103875191835698277818283162572673437192071584215063564336620741421914589370322662114526877920686411924866579112447868030747614563179918596711247703680902455274106689921526478993290937482407993655012200929827602566066795189740300592018298256186811195877757921711926481891899067602184686633667690727563856907343435578878244779972476427909474326040653059630137089220014925833200299595603989987705507141595302797782529513272273915132434338810108744949800374820220034115122711891400376924769532395935849511282132107953490952691753748384691974776933621969151529636476481464546025361603605968802753753624572592863735844808242503503063169754561328348130363705566555301560871560292094327031273444806462024347491772628540098789481518901337797645190024885694748924797301807612401726894076927332027121097488777054091699944320280247733700726682339795817398088090316188061770692821933316941737058621320598068517761127746369426768428149230202532562075941187283103283157437620924822488902825842944739976040590543446620392735493778695901720035214952040271535965504537514628764940928665125620157915068156509908236754196036491353572187883464788668571711596812427457294381711149636564019529215155403561298343861418524659852694664528759385946918177114353394951715712625809304057939895026043553379262776534119864862164830172218443100335096414462233544704671911820801066656912518591528529349038249626852392647058853337384442160793907091962885291193035474929685597217795474409390372244932715300366513418071740862918483235079446311423271259507052840380727707988949467618364557224864519925825913985489536605880841348478919938655085689147770521174620775416416000140853076515506550258359300079334301451524981748229827486247921338997582283235727217694501470261447823217394029705544502738037769251734634317429553549356044906636349331825612295412515460527527333257590566940250975628731846151962298288451075490310823118129429784041706745812300507765604409945795062229105113876405778993649486687325773223064185962499760094548622091534498267823653111760382516945436308719143678536315014116783942651905439147547886654085351645017501308481330915220852369991290870191043185118277270298648815732883022211772272099392398525248693762194767842974622146589595737721510511297633950459881482325635251778446926252753789074040640077316179881354031463352293278939007629676798831879026625345657103876548803636573536754926726739860587421667242466828571631934133969021707299117791302110045341653781244720861114048529370258582378073563546764698653435471860294972208740206768717312377636992487572430338844263349407190144636493896994939614583111005944062315121450777780284058813280531125056268643892331180833111122875846020930758790322576865166209037928145107002426593591286889713894344294577657524401920193293856283339229807353873420532115829252740411617965342333584310883790655188238816833407763234614831732756346233202456306812003281532088586407043490691721247334024449130215720208896842275497910710476706788893648689713064979498185884726882914741719760865820626524347505594442417599533074185281011503113946351185161968876860582866745164930273855662312030732021778942775420380818484987528662108292330704130862385976037914556574539396124526453164071523355544067574612411734758437522567011755557757375736726234193471072920931019377932506549977393095290239074209309972583513791798855433332259723899069340100931197467485511006715995267077606580072490989208611540440407486454976031506363753686116190276156382488850291783911343570216176335623310687446200507107324993160028314283411093243454341487048484248917446536148840946173277920397440189397784930234427558158349181271536228388858136775228401018658933150550174165443893056734975711224972097280923812389031394103369401306909354759775923107651109428870318795185408911412692942257295875880744358394275705697995390314965377471640122788386442493622721065575453751903703017828599322573355782547212840684163292091182331918607566450074257883212658846322498772837993704049442308199579727075856572508584188346079692908835270532883853527187507709361723013229233359881989074729608938815924509365235869472368815617658010981085602434664011380452593084717146714110211982048508941379250237750311691152753039261260207137838545627418289665045634243307383392581696574830153943713940049660628498814097752729716132618236671466038984347482316514326145189355729553659236551774336651497244319763165498334128679762299671703837109076182234785403192079567009896087184554277114502026404236492697388334247245386993082161696584875015377561142944544492588818113144152897344105348088107734179210290969784292214005143644525495355986163426117835248195608924230845738871270026085294185479488416281414105275104112895358402411481334391989512962817461522665856202032829278390308893424853086681036444044293067866438923753984845063857175719458947626195938413737435784313987946323916600501471695435977704768700634587584717933203802587702945436598155367137522667144931565047304369870755185312277669420937378665388418308576301474848283856219362676889204881547645557128085415079407646399742134051208020696820252179587586755579929353815071248576645738990008939831221418927767631349023169775534123405517014139213416444398235311648669666397884149904090706573305130350598198387731780666720887376454289205495755583108291765336065317757350457294220417495188069894634754175196643130818453039438780249171442137516686442520410795455839620994130944025716943185502590641219192154208979923848449768722199011163066817893889970196435206255329211687635556914131947394440182441765106123932089073509193574228485414419498382526645480102604717041394777696692575664150461585008291735915047546304827403574438846431011064416257958761479130827211763507817561062469715355081688865751419159579023346799199766730495144034072748705066266466918715839228598676199801209442508274034758326568690348359986338893546711513470172276090583280164334259903420835548777634990058926031178506381214075688062878745658198163634258958636456204978370097462312859637484482125885791784655114238914432736631438522947172040003805385859781440581189826116720396040106679153463651376501801903740578740385632132643694994788470730390490334764745207900377219458606025259856835886306565936724692370131860754158993612713677409751691458863052104498696673421588506641950140649490997695400625272807566644348292879002558559645418580934308030230537307168181301794314984973224975668682762289508116767589485711993510193553705297003477477250789127477825754652214721609465019475428442032861894760494728348869909221820854119221088593845278739427689638011540438262158259459647234435414265287534017836586252178643308061960732059256112063085594050748756804189169006211819617333700358828390758504681102897909114792014471864410303480051772305719578907625375968342642739387010167552570823539162918929199169618344702481982123845030874186579527091313820029414532447367164835668117475346804322989986151438858582744773888215298094623927344981754872005443398489103392046298118194056839647661988801536384559248257216966618223043818211857220896822617570926632008213669238385189188680598130065643233956320523212998879184418743109438473971569636623468395535014783392296854136444755635471201964196413526984085723976436885139125063863183593393639610020292334846745278623344391402800319159673091797594329180099950103526935076273288632883390399857711602194675066833458055037366902090754359031906652085288410594568738597944459273556425877614334419157441128680173328800873301927883954863356809351825916026082196790234349555591447879983092618770847176032249493160657040962006447296581391898245156108030670737726865076922081560520394034342597327331301433589751470780770420874925227277222836773640649852458652028118247066185814795240354222974475317410963382477315610348433975602127110386993559055355684662227229742710135754998290014493254586603153524780515796437402727569645593560617812178001967809686864641461634581113557728202589692226906907807082634906954347629501550101699574645299764377373905172637161272842295948473437228252116810446072810952493177284165674038494387572622074239104241700134839203901551118490743922411962785378666145638423837842950650428028141668044255290049332052820937642800100668368644351559929628129836313889725646748997099681797118874554393917208489105529159907013794111521163115336358215137570615979328038271032438974909679495836664279929418340343644144606951920070479035064159619646317291654274085430913633747343483127599450822122444434665671466539791795654379916066364809456344918845726658825580266708014047842797802619372589199382228143746231944039853438556674998370390857962698931903799460474211530702288908688524696841742647686850292866204942546661141181698256973043819418758974158477661255621607890984233741325561346758567241646346449789000290255533868015225021028006600431126576987410907946602349307067392582001929797424948374785711075892669132404803970026227144516758749490086136189745724730524450125394981674997163422074092448738838840157898302586311475486498319213273716781965756931074668628405062253722528910681507605234861437798382380643960764985439391131399883489236946665237597328586979964777683627588355943319963316124411049946393376548294888088080531232216427660112377534104530680538122189368545505389883676397171634743808955538173247520277367434683520758787662989675183881905988618062980150176900395910060245150323271886340642151851163929548980472371404088284745513313123618695301220442432598939403961981064956619877608076877470667059481647318118953289416281488769305566716733494399192488024256487479675021158422548949028604726992619569075552649459026869710933182883508752223584515205750492078252683397008814664940360339807850336629010458820357235401771811147523076085930659952719222650373050424586649124527386995827208150120018870780884150334830373052153933255450478693220721181999417451210234021841810595064011663573750137548553691803317679912157434678001224822591072338412265250578273116755036551810614612013905153767271997202998483466887010068003830890606635755452558919159461313369348904521097167553603363335351238622156386251967524512871369939674046909794604604015486083893652328861620305213956024277337385419938088816180926154626478861264319019009227544420263182116947352253965554708904477175573863457372877906135693055817963761371152082510238112574351272211504128283860944540344452490161359903365780075488153365222864390725838045277354889233916191293168470809224078242461789739456324143341993912126423909818934289347961998583168769014626915624558639966666405283662173940822794281298299786026756232596365704038256121871528858743493842747898559480981657020760764189202975347236151079310437276401162434019515382727580337516343370092799837937724757957515052997244805346880184062921297291327644968806575063377849659716363673491648931140881050628534393589649466327291063741702610158530259373434447944825508847081674608568334009301500834157881071554663931898160293180407609181561919891940354635436259459512652709891607257300200924981973570474201156635669606576934012207337918123653375100328544675773119488243411978681718070684489160731873213656027380364136580803635293613561351567414616608046603581442532000001419602756860884079132127200876674700280356002118862750192907805491730355468113941575166409510173845714543491446876762642419679486282468077400981162475009133227028964218449119066526589337948170294181824364245660619905546713448386494335102413311494550331548261604956112244075540605289775547260414077300579921155244932437801678245651563135306248010589888732020806195845924524767272903899482113901236957966074415117372646036205377093199231375935750925443846460102979178407592853232243817464896185451561148079966195081652391232855966152901997441961257693668752855428909404609455091437344502737181551720580845347143112454748014282657061458870928586565007393163576043446264987198735025208238130387979576816729884950857832589013409602383178837221466335361126995862612802538798499187447184121913254670635637177572838841181190759527898580760729662909028730199018400145453871630329422556813035202528856753474717478918256542125815146660326202824685500819285896178306313047502915701895976093382656251195916813604307713511173638490199876715198107157615679764023671402190484297860293976921327547144648044853116169786226506476089538216973908611543225240826631980360567716465422213753372471031863098982590222823501616689947447291035115238417069805737286849001676269709297988608328457769840061224073026202135921973042811963040653123765719253903539156524740347984832636543113172463567960046897393969057950537976082234056422641514512363154421818909253630924478580379833927841322772719657375957347764481986924852885153211536800255301336152409401289163052371610639262970955478520515548629142939082986274791414626095546085982850474884674589102459579073306445889821500917293905188376856334437907916659570476208812101087829102392365863777157343632251422368958127966614673883324202353934015452207724189860437561356759289416091908417788214348798869031652259447038310187807694463736607132241139124516086119455007351269285007772703430172229426606827228982468843372921415900733434373708571056360478677572969296657061792258969814779692846711143996530861971914398714298193637534000674203590353346602634912222328566359424734299171316641701319444574327395297732417750812245995611570792827870607672827772834849605724074225771932513568588026502153557739195066213724956833875626657136340311479013742535605383666842750031013530949880771155186607033035297002282553726772339798016417887455725037948358405233917015288137273772020938120037672644872742599764491075243499967976814728095250905335985291382984570638489805821861639563528538589596485905258250299997975786071847310771715574477146375367862009899511317390643339624902192100355601305989065485598732339977936673226922269112658957679481509700377860110729668286487819563436041673413286453380741409510342915765568928092416247113559747880226423848282042466383274521244107520419504879060376926609779476843443480663621396064963972705343869150484750847590079892342452733846938437728734961093281645668220183202897671557455893922553965945754312895028512910574049069097533475692913158176697326557937090277412653457616644356308124693586573304636324336342643460068009099645053135267566265439345937598457445389225022063613854805050682712452637160471644648411546896731796166484306000384241196106108447939553569546088003999696840571590301997546873160414216830822409682416834435948563275198631053881070167260508407117413623507683547357180726997194710638223902458274812045533383897402654473703221561548390083836094877369805252516089272216912841099951371030609549308673188221675779177915007058021995248166718265056401487779520555344386038318321423741095340475435363632964681431818402491150226332328962333735331786471973355833386194346416155472470315207798572872360851662531711499695828363485734702441911703681086598933929892413701537534696813805569803949518014776558865143216453613711413966490868353849119838080214005554180027264708858516720857088135509317691725893720824259504900867647952996675761965026791906212149439198390368124780202568865291166406528589337417362886913040448094300481817469595030516119687047915113567729268866307802628666464234355945695849895604463210534347668822518138968587986348239174784503224113671984783914035452033759368491220790627870134755122865084864619939727680348747439578728739275794599721565487332455600745175099294700696616636204353715733236785565524719046319208606289185096847958176027450254222321319580345329502402761857592751239233354651779002271846292979817103344242606903798958202755912593486317925523410420818982742023428896732536043422045271972265488154976147544309434635921404554687568041178769351685784395880097009143401241671419972546733722020438114152552901352033893705141883424773963817965635480614164521692600305318146087376342426181486906202605329660657636117993580115565530305110986751086032869515374343073785853614351594122645207326580549103229268964509525138254428433455287335334557043706372699632432345723344700505987943972446973459011285547110255844084326408040169208700924900876674726913544315264258533135044190731164711165713220667439980684444982219108980068798872780602705776379737178615527994381586375328126850379563932296476771444991246908453426558464273951341386692200794790170788906687538746828940520694954198680061065442781732020988845229588950730833544643557641137437268440155115772526500884158707216417488041142387681758307411636145670918059095808462395098835280548339318611402409257023044851054365905957699243146415950380118302495075929566226069329861357872812654807519072071462642579485858527668798633996192651048270548952129314118687388711521987146502591552065108970693053560837440740262105494077569635582727325830639166022616770248362334916689373281850616111476585798404535611713040725016245191802024810018336774000061702484096637203643641000452002000244375295262886714372561929444184913394193677947586067118525794360415544496197451276885065345616743657937738693731088253294964655926608912270020964302084177567862825351797269269430504782151311854662084796949791198593783953866360687066481374415689174652775924040033475752513666400359559999138257715785691797433128130148815363818643403248278101235846750358834728820539507940039225760154678342860322134570643351982718457532733696487244925912965938812268557011987683273195071388956800720542796400320376526800860459054542307805485924167582190096811074671608426853834302583643430163448687314871080423636214081484700677331774733157559507115391785930732998221852040809811635488913799955973841678274252506584574801854121348792787662639324034273662217026588223816337672607831672862855311888675030990536958045989114194185258583533374998840837056376829502584249950637310269501281757170863437258774056787103989349814187926608688947257918365236814288416455940503001315867826607551530649159350149552386730109612182326055412370301581558538763707325777839717478433657778552450154127464651789875316977532082669417719550737723203036150436253165565169984775379013784000286952253072402904404465552805782837380138019362814598559639754789220978863498005640769073672711789112898446859113556816496320471383547483400228263141119380630521698493941104370155871241459946261046068119111324245431516716598955230323988522904057669496280598558252833619452816150440426979095143962180312090072201456328036104896725492241918448256696102442035378749410843799077950763095936429413510812685259374210720879240781863464390762935064592109653511163953776964052855114249106819812495638723062748584678547142181876399097950126920042836324049906455206956868456190055369838249089453954008147825968269355950209656231434059644206890764677963431090206070589299112676866918500181749120057947348918329662101764404405967824430366096776553361867281529274036646692624073837153224080572538032565593912589681498642358915353159623964574154488372372022544455656476317096584386468132711872318945989708229163956679589358332388224416952489084287433556756326344646846798156413924387864353100369188618747571480885707798698419854456681093359216690214208681543304530374663463029855697445529456091850931145866141952077312768793074650958594948479855107201897916350649951207425069301097513015525636526847674082993802888663319756460882929005463587116980057117966031273753616720192820743447250856575818949308197224152435368012419282919114685914777965216394060423850659146363117621157983922494699892305650838960792216205066220486462739067718375776885583289854092966048229531149618848494444976823895841295440390618519695108688577433546603580263683172894969825075606705513981114446430041433594090476055831676871895456076928810043718766200618598084368995883003898428703377009491500491314607677851566386094271574456710096555497745606690989373008099338282535367075714791385642318199016970395530025591394254529528951529275662519969621349521010168679722013932025229886951287381372446672225140590815887730434310539599921137079789003929748620000701434330696074475358168181132128417614706841996687394485319716808830492156428579571138426971876162040694594818655173595093652344297398971619597508701069871159758148843874809315407154603990656820960967886540830736725421725030740509959415371791828964929340477647199886304337903568867441149378740185602627151075796522067019296433196724216064524992173822776152357010368144564376554291864747480045286683564800489417681942676715085910740470145463256010033281130662320292506749490447455669144596199388386825304148844386371775336015769418128017118717096670569289729781167012665982490026791946620524700579150714811338221855904194441742313154515572969317373624717050322656477478595560247112918961667810775398963205931936961528762696409268414367227044106153362557781766080790653315183639013939154575991646820539498958689578356383248246356286195379961622267118755360750451587586763907559480707469904659876256567394548575642994338102727917339051589703846472237133969879745442668284759263837637367702344398440408344000863712238021957950695803760940248766027577378682017141303184631516855554658843540696732039190166076915635476363750280035836970022651974021647857392631613670522387286419038341756886095702124081689123902331312797595957858565822605735690177757202365385575375130194422630960261456778421476684060076820319084109056812777509780942553356250598181023605085132693473207152956691105150697089626063638422114898440075514715019302901635304703563007186119285026541354372774280420192471823454254307399346535349422163959407699385718912364043271019668834609458968546628994637019953459776315251736077072090446649158398047356461625510616057843214507647084495872311678683299828418839025130562818160090193622886673282183871395411374942894539651679132954661189483972687505337207921790841243562535373003669579357097126830832255988288618292318260057035436267900897371361632751576065089255819437455799088865561721106499071324795648460221830258498315632035482597563735468911330852700016195855369495212331517927312575819075675308282579246951394567481541497398431487518345751392042903063373045516906394895106452048055337227867711954473072205740071958958866138063814863246753010983654859118571160133039643047072947046146176243782867942639518651557887024820360537785708422319101785508768109188989040020046179093257236718713893856421784813514167277179278430525362503077071308331107464024526810970175157935767104745193502525438935884916688139947108490861111998859206212994439662233760550468121148218133573376820732206916934786622069747758154047312314179934780293779650175197431777540925323781905406219236553754675987097260163031584320209761743487246382042300877201586441788037373355757862701395034685671261117468510171402641594807277927066763854000476529011068080898364348217838790382327640692113983611044504401966126067825645561877906393727917122226932345305479669081903942319295886032671647452972105530873334644094696368103910736500144549422380810081737181150923787676713066987885621403114941868931286679742055804527942895044482165671833171524049397385310454471088684852298500645712226548549984027155071513439579601218645868520133582493384550544161582674778537113640188262944099396723467979958465111499565735866938889366000574009253611671676408857731409258620838199540635485634830597247774707433137658563335116349929561494316263261381146207850666920989113466888079994480391412645483625638841051870719823200364852363931079258678986581991684229627200872933234470416663149834293032159035990855225255599990079856884271002120897870372933778814539273579652283734472052081171018945215824303991377189721749652714625707582113387423799982092444061370264750729714355460242949140053793291819561558353721725977618294394474129430359043038871182058159806979535930758199708531298512799034571035835005828925399956942404911487482752605935268120089383932294435064231625125634456711323845525029604749455577005927494038342823613970083604139523871216187368179951571807543357069354939271194674937583915949546826868155153271809077645371399963706404833485398409309097398241157270172281748299793041047454431139825323323289182402464957073240092861636797099031478004110702810223851139971881900088760192671764347310101990007926882947724131054379562675617231750822306219690283676329921518274215330727156416760921462936898789677704723475655151964307310925455550899606806012772267916436628466501595967947631772494266118155560254489166456904573803271437606128511573705421308860700185204449511653756906925427399097444777182666913164087128789917855438113170671366446933858493369322610431917511428613242653834668789769655212805667144033214486037599677873816020123578095265499399928870927267480677845076116309343511018884065873141762373106418063599166600461019011020896473128234080874393355727294606964073429842044215217056237127204059560311883216490032297670847960426756685852873141156749861121121467467836870924987935289861992429910795761419780141634536086260123904148417478361785899433253216068657814851648728249377068308241154159575149676500149985571371452041866458380975061082812766846066586781431956288055804599338661935474268363512533816647779498866621388809669243204428423891108702076398672734532130197123062777152225815541214040158218849984599443548024467953070922658383258195885618434008173488294914567346279266250008492980950647329545105126908066487658047485585065270077964429371841831581979065856897367734571022635427122753660491585166588704801811038187130193002871298327405175263220131553906664533724468247532434224028705485985753786225126156738287106164576827719023997823643251810666157523348881330723354094628663296974653506996960597235858573638137412861496055051712062189340394665914321225628312459883029565800599645409689994774342342768238026010393487624652717273301531633538301097825131310826999812411571302743752997911848768301293863851258795885613664721556995735130289753271913704140755403058831611175489864969369609991384702657976843622493809990899006201515564967228077236372853153314928679373836539110127579075522563021587950095859490476514085337193187936543699665704314934231044347281926274346886667990596677687485285562544757678733851248638934885060330277348357589389478886990324172771303255215118357182933541540084741649809116131758125494320731900269675802561944050448127845323434265469565529125212694352783571941853261030601591619315034819714817391624335061783948946982977761952888197489874113949121675652279764956102743309643226108591799926253858642220647187198705954512785056797020364935484677872329618423582680028511970913456836760728839365801179451213149267592468756507663809370191002353777804851662377172636327987409096984682120727531717169830472774287307710273927685580521112582439760600745139424595491436744358642956431448368441447989137673381309750097982032521660489778429766016281443249257216891833863165248323578729603404684990870395793484679230880785271012831952964470494439624276367221914703500637841138414921790933672074356551698854101956974529355398603213955900623051848654131466724939531186487490077040339350164131104463007480816907532400838215902217501005176982111186458246398419728592852779609371763418536497372149474108141733480048255066117429075325630261095828768559072428297975359178483039780792515737248232909993883410068267621247121204582164530843532064443087894238858296069645428103956773849672470425070275143055643830222070961761733038263792872755668236227909183104554359218469682332446110099502539179658143220300014725456971068882291453893363061537898386057186988149727105752798045857766001179461534794410107276360658511131903764386740448090856682898180706455015523697808035299598739729310848653844741298552704104008058831628559336742888031492644121309539127956103973993878625070437101121121308291788234542200441281782598409229208090757876355589296636793046370323604523346454170580012461116558365893889867001412154060779485359458062496061901910994051086272140863330613115379332369213634646169227711522201379898405132978351143631824569070928029354954047135280982793402397902178502712827726802786608158404689857206618400933861733796424685936518098913411115907412000520403245114941680879901419555464924211402168498682233619001248178165915183738628697734928621916489748702705525401647894296241894504514019019787179594709963674695453738243933482422462711103232707240754952491115115540926396441798543477185558684987578685308385256539335636375367111467034615798054193478976327860032643916088206306822956207604404373891637235179915484311643926155265075464984640976500298725917354878747048400807162454403131594428197366019241777359987820574550199577038443578155794149689951353244785699115305427634895333140978391981076733067148125250656938280365278518362158385780122506508411835715857139651570930284715385377428391013413676366694690755492123270952885782636918797622473479606182709417509097624131503220397160546597669999528389474150587135194783234414677403424667922415396677611085118249533896929377898089972543969727790479561718285595098260401095575624490724283012304017180995428587925932844715352051596622461540871536120317026803186204283938185987453868226770368369301958750074179463684700201139208955234088327470550451244239734243323320202708987019628156463799027918995958843811188150205760342498711984712602015643507607843266749727570940791020793745181956817957872591496051398218475525944332853413285195289250279182763519102264102478084599970362862978374322847259096819279118602564902841410279148676571489649389055340143392337442410319417824750132799534879993987199205385105641539575455961597139983172830065684994805839019828102892411282948299115184929637804252987247236929270588982629103476904079648577728086269995929653022657188005518823811938882836213833531500837868742273818671486824809645658677815587159888907589599111207221862845552106973775808806668840530556069919589918127057424628710307416355685048328118583239405991908455031394383465611744136165453125037573731619440420419740963697638129510272663680091834050779080608578368908662222499696405679799551503611285035080303723209442350885319443020879246685238158440205549299448192911870759647783783530669823585955311322339592105621802110672241255907242933891983400224290074586792500534620040053347629928686387839847485668624369156470689923770544686614816890541168259007809249684844570496482503915244356828136982986001595097425211394885399775534742423553412840836471472493053537224491281149985548123406424774259242392228160735014639457148361376939014448785870429961998812051394912579712436851143703111130879662678333376140084494132502417055624412516922273636745534124961083764820175717754546032458733522924852416204373057109759491541556796856652617198724477647607911533418158063706976642905490083696013015505692484144809083219959324281827250124285105797512960570337835425665923542172137388408947248126692308658583013140234560166532542335462020659614221340613597251477602511715828863585001105061029032200509981604088396205895641238568206312812737122568458175523734559128428172209154000395501698137558342830696945379388719387177334199956713700457330835071618426954821556124737827055673263045113095264794266209794170415656094029518226475546604325708600912765164001359266490776936111936020418186978317283408055584151914013229525035530074146896734015281575201461339165124097772019988907011002049408686145696887873478927340727943168378612808492064639971708942604991437903011643676389418357608429470004387865846046362906926943219156504458345249645942040151056053180033169260517788436207889212063497457584135283550583955999205969848435301623893046221758479122324425203283721207645465884255086388409737457968516142322733564114411980878191541310671171095811563715035652174041514396783377293272648634061266330344180161200535242523593190596031143223405332769321767906654149363013959144211332615750104151088817116565170183174877948754723166461769319005051454407200717368963535843100446385627010253966633790587064105561653155830880266539791317577189295918343820829431328827282865671311684916596907287780108937266904688459394521815661584247398724638989321844515727440571550157218828972451358870946043594011540569138718922186663824139387460316780944764462459842358587307303585483683946424996865601623946833746775135040220169988540131796482111638373879951053989232297125650458749583619181799231455193269349328538409172241562091657365566895140435463628752121349218183022640897530092214026738768905254444498318241594610188155110544016869051595991169961992373519982639291747804931994513432307417955842648243090512204520128815367701631578551745993147423850814952327948108038166397775995622859543781218310637259095663035829984778449646569006676671468009900849992130411026962392519436925407661466258061646337888292690043084172213117042626165206877308713422696042106528160941917244590702824683140225974168220596424668620309267346180840555854150818136791675155874553603117045010353515207987435751931414075876359231868265587003377270965789660016945501137611521211427434774004617781800916830410018857918509443220141775233937168990548873453628736299824199351503861314860569688499204937962364705712866720720280193076283392627582364751432092065771299926374117876603649176694986870073465582900974307716925960920613548266274244755479651662750777094767202354036250851800441868128282789741066438828555552441561568875991103156548316988161412606396808281048085735695871244488562896763119473507885607872998673837450806456600031323105750369568161986262337669913387968927787746366088397347107645771491383914462669580620633239510244305392130152617848955080149591158944602887900610928220048915597084540441087844392248193087658353380143830721639641510178479970924201415129366131576877250717586646577106030136592249503958764061237085487231280628965982455574180947637909171157716083848816453253191691265057916765461095320150841083882531318256651419946894172249896048987867523893132310968166343251259185157242790534228994067273368069415907625848788325454043565329088727305624505830871578350977951181844227999815466323699646984503413752277110141020280212934514853795506152259692760632946397810607904568360369551040287530621588887815773949183171591945340689290471411197322483354707558619164932547107140148533242152660420691848592167790619130435505873273348187047053396740371554554016433167263404513733699712065294065437000312780335566948024311920420998214123697872489656384030373488048356439456535578168456309959065157676788394646072138357641898966142359871657509848078460172221497289202005880181930845551252091225811404652429530129617830183201508684632758837107360306900669190867439498142109451351108582866174848367142006146671495222892945238644499556138827326608322801457915107216286097741799351566491239495617637011164185955768209589390013293568740832524946606856660697454276572233549055055082107400001626454181687037982692434395423060058655104829250152717221634602249118662575740735768433510537912961508938104877444457300099346675585820911632478228711335618210357845881145215446188313464486218568256579501849890620704178791557575606308873286389040294935186406658525359926383443783684678631461550902783007299884953929574111826463912608559034391173849625506233255894640293938792303949745102341297784716312025220627983669276487592417963658252933328820883259153967652570194176472569159680311404379555865317946139057833963662306427633115465130967676753709250793583782564086401634155873535839232002751046939274913909994736847797055044742286537123592787842277702419847569872691822548643278260032287058771129604474095044274363684042214885263960178023441288937313411704376013079372362777591295012813647756398872339451893300138264327433437240464305354316862393123336043828046926087514062966316516139346559786484554923130474378793803496017460429360938363374282625658557053242349847214681191947041304526104308616765760104605709586626367941702949530136808981827428610150911795413247639564839990774274399800431577075677643867386916887476292777579640476412103235390882227025025880230375235436810404193303025553141464073094180901492207957869428964229467467617871734936204601715420204516250979438964346116017999488713364404860011542559792742237927532138986491878470775653748050513596827177893067432723651327741812364677473700308779185699817264410259729718227465841434638254623549663088025113669849370711242736582336833448401468641255925799744204227393187718112648656166403255105871289230245907544070740606669901927446929391848834079932703492820703880834748147895909734591624828267687275977449727624077003117027052454320287802186325135514498344395731655110495335675474990605994011674910859864379052072857027082268573441664997411938997491400073030405618299468665422619533717746522581526582017652277345836493630179835431978971723786786367489451908402781885027192235823575771176706461036962450672333672668607173144590640124391582983993584185732964262547846667020513222622519523569143089415752953786089190310954774273787333580001812178163138566368585758391590567708049047838550461433732224798431817438108988753054261047759979407649001046023877652858177834297177583406872695177144137065393212161321065829397609184008167296199142292455367002071617606168288988674959112733185348926935715598809536938556331328262717229601154345263409901047710615767562187050818854279513700284581551312580973637947317419716761741165023772643751968154599661168880321896774285229014421607433684446499103907839618151585192353236754170328984687565037963387158606067380589904585143669572790322827441718905629834103630636959644951776483811057494534068015821931968950694635160801434689011140295274700846968966838354333471404642278879068502691025830300917673216191624913248010836309577322019326752343658284295735495237615769296403450667693812022700838906933026076462976608511958734291718304669979437505296509389787179994586727567832985121417755063135240856792055194756178095090047704802286164296623304498436382138828455801721324749240391315171443714520629162424598235085998209154389331323136735737613959162317544526250920723915556883576002125531212982921558128749742886740327001429336691259876894719116773703979842106561527612529660479018148648472406452412617528658171580252210499796433818376015358934763759082559842860917201418311402114142223480468919600951817540322638455888182170976552731906556683095382675785768557697770479725166354553796824886050645663205477228731812449345891062870769984375582062631331655587049192449645896979255866604660579380561516701302782086983464879419315645547652035104314108992541590338938711517794696288224719875806334877369103778264732590670611723202511792958177389790418647241788438698166117403243517182270838330989185974790794430418885390940215123744169043245413999360454724139761311229142600731744366823581528330050052872186547576790892056701822773340806213536781321394768568633631365162527588990314768878280496738263691369847269577395686109238324748233374006412806150616518756608491415418125976035957513512560398833249743265927391500444937477300841356928430229375943646555904102036583158733211064991585999978832871658507936891105246529494629708866582700570748636793876057238739839997200563334308765359372495266995019006711581439170101884983952664181963139038473133605123379738579208666623821642697889714898466938967778568843233232718140502256744151714956021245396695923951701029096249712685804937343975433499108711911524429936464858508092945051736724126442939576756271271333223554950493987035385502216595148599456157567686989135889508107970456402015254393358842039236312404454175963187875927192884422714209208157600315483258762202171316028816559092780209484412489568770449986555904533010073674746604046421115986415954585196475462682665334324337650467195695708563908637099029706447590582067603723978059670799419329395660467405383914557846284052588240172580053054061213796992361558265780037020889924904085147826630974307542819222620177274805632679240448702758689042202677359090712053479178307149327733230810511552738876063462110693117751974952502856283545836351382778096617029851467905695490328802505841833735272801451602270060996433448714672385634483849634310531949528802143799301048990795223519593985883002333276264352822946618452988872626467620425648150810766131663473734435160546351718831207520749799941071922844824873535987335491585625176437726694611362252148983854712061979439931874698114695626043353676527908088000954266872443586781762517284871918218691998552044684804939682609776578353189614082324112644048206145121291627991380075011858988041990998526546295825722986404508827143679936761028887932378398617078769739552236111385885663668065594329863998845931249663282424945443592103544550012689361876582069433191247445823433837775251674882880544453449080921944984500866600334517005651789208162752790790680843415356686250957244797211160846517698901226149121439841815066415533580518412392692086367565309720336082061078943795649677573091279832638077342166348200335755437151287914564276141058463621905018005961487302673275773241639040207576650819140821049318313607372142050963684924213315205660356954922240561093616263759556513808998792708103480614221053500826757294409646797957769818925284679812124670130523717688051542744353192573524356581174557469254300949736183655292310007724381330969979705658192578021210275332844171099753133108266309511111316630951757515483093846184560647727294741279941204669903384763948390730747052288237018558995619534582088810688750429259329059024863831632156274303280658885728234899589160410452786770771198001205591614059364483622990846959746563280819653034825658009077441826877338746976147797510897123716849023033043656845458150140407856993679519054390668124380152450942901024504516214883055403133157651345845633937520940757310785324264338756405448372019261251828022611532896392603393479691247487770383093587169795237196800208226750616001701808817018657252745727521686266047942380231930041969783315335411861500109352142900471703771672910594816500992071074010190402252287680167902291490605381179213714541931345007227216076963249620260333480924052283822136604033586667024458511703006385835513714996708740253840120351274224956369239139593507156374746164092369789283379233737226551827684785809964427963745164053687144787849961966788218901896533728560282812684696888154387315567648284130528013443557647002140783792661334404923685871749028937068274905561863238697283621900290353559115871532066178172671133116689063674521565157418453451264624680221857692289799204609216378051800997468915660346233814005394143375891391754096000613849371723106903851283855328195115637668488750022129584541772003663884107419770039601055912889940105827989214093059325832418348339562458413909379131358718891026779230797570001544441065005818322524887679527023451961647609392651014164023262129847573427902699924221908853440851889930654262573767640724134051858104199274594433637945598345807531920739303233145810620032235527616683672639464770866296015066251960878692447882220098766603867828782580154282866582597047559194086219874236442275096786579881876778945476243572426987846611206330872308918730503605696457500497785397917976518779403312230859298952462026601139385692659374063887234780301655448145975600914981546479311102335023985830604351915404999628479563744627399032967385220525005416663092990121860621288787560446033391438962401623118759408826680814301006434095924843727869486057963569691029513635977766910370797296776748976146869329389321387339686515470358804030673471096565526516318018521825452996980612202356089782344799410279724804620924730623716257661717785166056043215626767293406044371140743272726341229337631105540472609900719088240251950744032042204665456640908520783516762029496233255225900484104455183672217290629275916064856450854457471719763715673496803951090386920806952564720767625592731117299520495420325235729535475830704804687855987304051835947550754156594874172495557024289495191286495234989002014358087751447612268256339922449177410581144232652770955084025916235042663965748916605001330817405644621216461993322706746923097870706049371204602911986677246001872488262309746392731561454621415170074633521187158229805479862305594081764273477100973745547452669174334037131051056387368770629736478310179445767940076124652379395844714188933976189078937916841123286405080346565505541978738816333435355211146190432802132521404634238319727842018775362773379255129693324442350183304402581400605489793452635356532203445781524223097592907621531394618959506956199957492866802028683768811180464938946013075314004003597730614421442650766341734158126782258233269180221800164297523678513523210607150075164182463194470680085225425034385498219693694031367414201683898051961993091280757707710307407195154786806144671926670411208053975864944154382526284275039937790363991257805664262660051314047697645807564397730431734571526164522480284396367165840970677121433771930855715826269013718505696384876460723736865580827255406370509229696770189703981980898920643512859207301809073286643158462563234182513289064320453377174930272520672695260276803892723600844274482965963557235309960314326483307209077163710681172070159682380864648148478542474577109318214587203011657082715026420079757970131197941209215269092552522053462498990318670691890449897659935250338898225926607634345624157717893686186475246966965025371970043053919090137818398190835679941698362517152790108905589986380633833482536964503339294819452798084868109124336655632956584949141614950132362178629609676309112589811906351884195033294340074693157910533719549535784700004738318300863490808071998297572284300320248158424924384908359733158704280879388858211512718701791603490991380275107984967218272862712315954335943739895159871248592384494403959132864784058968733402654262639279681896444886262016513863257410364573543768590555862867562986058162594116745118408214355304906598622677099339392211085854078848537526806890177791268554531197643724851263389134275357056094924802690482035101671355960508532399384635205845594760601740548920580072871067509113113037683550933947329555097352109024319793462698865121504417249728987497078392013358158284475113325518242976255770505132178516216316482024551039754069644145039355129656854250209863139928609260897683308331421118275756660217414937299516288214458413780989888058072334913852491216340521839130470654615022175106453158477893374914973652923871249573969870115720156065880547076016754769885491520174092007506582156228482695086969579622922631176627845373890527972849955373743681045624415140089595088827386427279557816152421423177141986262054517046788605473248796649435336116161621079419696645702240274199369632741776908451308036126414139864721130184396457655558732505324691172987564284249946156797161533610895286161485876868639452104977785883800729733784794856975243375417781020955403453223003685964694321793464045146284439283523236825417513626316409891685221185899575528413829450208565384962245564872379085426482569219867346431743653786787127088050804263731464052866931233310837245145227738191120966587671761371324640131428278126379494050405673486472476258950896193786670988033287442733046089859357080334606469413672011733861269838194218033039022483908071738359983898818016251823033197662616709084695901212448263615779645011520689392411650196654697007395929953818187829559223836313544466273798729685656892497526013590897544501124041843489361132226012803061143367577227972664606859187722338997899267199507797960117804153421320187999639173441476391017470032760464281528592084814395183878406143254886827292510300895928202123147611418998648925949170733028381779822902328658670762602811700919281757789995060164924216774697450093208168465102335497531101549033017629463615694083605483253341291089772808961387609920388127956785314907620438427425797893998939462469226395727253039237434250045762622625767496489426353909448225545780092258786298999672009998552258027480273832802094247694205328839401203003709505701093083780644467581542288020583899495419329366047703467398145568835322999692729250297964229307115480150042697266191713889404216184364384307524817952195729503484495704839862039063673340698629998896482893948091224907680669903359438511466860333849576413983487861137659611031510198318849975261151199074835037603350323094247128254750425122888916774983254277582710893461044515796631680395295356111716258598164871824266694598469864239837948332988277350229340571727948144453397383179357828775250173319612897352626119643067393533483285066779854542234334915171395903026841651085025328427595175960578911822735771478168492232112360916500195218518262662118899721547218212165401210329638443338791546982145379287667523753070001794800190080313663761965492715308717823421200914857457362114749675839140730214831544429898891144917834972712177266167726149866529988954568017399250914539400782863013945945250082620918312416252372755061530702688932633233055113416226752911028351666102501027454408341143853225830750117259767879885179885306800259872089013014550880543476937361476327594037301348871227115857998584369815648367401129831624169320472860100498970336582828009925875597392584138354176687538635779403802970503835024268235728622492435584302019778804082972649370530879174518710091564955577389735707196988335322073017745348690740923950620353672498273916553145331437757475920952310924767548321205660354646008453089199183794244238302348247319395642136275249955858411923805056829690784702052083585143948092042093173831570358585052549671971423920498741646714136078374813060006438133592018026153384699756860127698319727147413877508904297166146874006761457363551830050294138481225149388960819834776818215731067506240978411415269326052934273166577631471446128809185728623423154248602812882817113334813222234089398870747443017549043123338733770511068050487386238645995163123788565781277309507880345864121052235045456657014393277110859989424781170695377608432399244841202115275002686667513415461798307347780188378819514543793431804944198516275785839337537432001421501921164308720705058133302146572077874619965868925638428305810043275470481074955438787594651424363826364857251924268762770657058486344901252782569339227054239439577965802073060390305501323156693429545325794521215976218152500122565536764607129128758680703426901409003737729427584932731379553048602444391874715684491292840645621391412199080839268556495034814122096537349969128069781793071459756924396660585069411441676449723280197743608958968681680793680373366046076328563152488032418369716975750927652387851457705714129640113919106827165097899443024201014297045504745821124210130637248376869814527954151209970057863665737196067913951271979480410577127415000638021926508099716500143511457038719672184236439731743154046085439167506009077924923322611516507130585429943082933398246573139832219917367403787765141119607880230066192975847089367337273808221952012836656225988380724411299002553951611528117529681134318096335360153713189218884902643228047818198070717284309752084535928758500329644298542762086856614782972753438501192068680857265890079019324368851325196207107678666055732412471342910753701201926492308107837566359071639983688703379788372135896170427973754524176767890835245068959844881188225228826235562675648029055542516127726376743646541534247513235600059528706943526883584032503163609040142130559730420816144332602278757540129713239438338937188788745047467743086032269322019842931231501941960636460001751480282239896968160351248397811151076490707739051435026852259818634579972263931159465711505675728560069175064813211881537351339641363487678639591123048743132103354357188336375604009775575916756705287401262317858583254631976263810205671526200115933912392653526561361153313766252695345135552901393149232105357756947097712339831810041574803957546956773327138639695662167457418077697784474355292168756340524481916698978830252071687526463851728412953506962748930887834014730537769939022893877602968419554328449462059662518022650362164214112506461283433631242575261664682741290457595257379584160239665622209864804604494388052818753865578851417779944230870951773033834905395397355712289886877234339909100569334890599018626813147126565910619016155493708477191052579610921621411961238519910804632932195165538790086230540150962889348860825427789455166741795471477130025675483303670344706644675023723967629139648383638459602166798121046280296140616849566138289529664758948735594635592078882062511897706848000647796364998271279581359219588197805741756305638754554075906553287987992386161773888684062792969480025763477158557523417867200913865152543521481273073704087388364253261742631486466402666830103590786681704148537333667592620346547111112312883546237645955017540744280566607280877349570141795614609566557511373782840273156103522165936092838172393144434667250947186035249955981412940388461304772397841608377443042683259274646401412063826259086387777999133357690715189525554848641699173257425680989757593330095148985366311925579444098393884389762922021190325564953145189902547191929189300455249328307337831119793135770508541317337754486801867186481974775065409206297386340922240984642006918142006477312090823060528903533431730524404434926715335783694080234917828753424239074027699465592191390319658782459010375267247549088241124003910407078849427182131139910864452458384357761881393968835922253933729214681716539992404211913828580911204968368909751738386865029581834967919292348541209264892125101345350454020466974623102946336626098173808146780164469950350033631578981423497856312620403296027828480612978732049168407654986428545066235406363396588306799616101385169225915363680285970897643541056187152671116529210680098952229449603206335709031565991924479536830263523209363152034228083186199768666616067592618607417349022423449468579908065047913314730892167874247118094673103690921436811014054287658874989035810129713985242194941558123827694291961262995560709202205150140720265522410649648796304778245906878255418100404043083575832082353830244734826123221210548418074192778121560758297944299559676957225297340051389312104436934040971728433879087250596665170961577908921017254980587913115534630462245521233706768316674066184830227324473723563028375627180717459990438860798350133499669130846637597459320535998461405419974158558391429374596877634245434151560215367376172799262662657524455425824509376028134923898395704633257563661696193619098466729178603749136256676395723972151248833099871121907752389747905133245558433984637956826451814606023829139668740779838414183415316912561664257529474005147040173902429496049247476348240641877134008030227646495379406560643732200311431612434913533753944936918644743013666861802948138808879274634940995356659548108137523585547915531045396982857536525725610468872001894825916273719694039437926231667736110154504245384199824091493932508913809830683565184358903070945834815968685553750064603126819293527657183241294561901937286573107432221517061806727424175916785011097178374787770889087161120107100859060116402896965168182099937536997634831115193831243319910215193353239533341381268120209085019168837074901341591893196839170102738097206185977155530526787712782298573158299056683200310439774437102531916951810134454403703599739863373108219359060119125841601992058902688785224253531941758988152076522227949861754009777010916026076551978229963552701122564663757295201502965631028653983267434995666336359505814625115582835854655638228876586794486819120028764053213138058646016006871896538808591197104559220475919931634049611538661245101040594454574725149470907481622991634852381825441814494635444113502516184070139486869198229475832741920933350774715797096821578319817565238717570058390585719623047298641547686071054289098797812857529547825370413363443662398878548930330593885164540596065970519224159994613655348354169958782970712221219856382948543218150821700312701798248403671726346135315783022338296106937372468347512462876517458747343219492976309834615343467317831963892986156708240105191613854294881410699171797974141914902315319862675808890643351485292280394209859227278324451563649386504740421965710427113919719069224109776819938657075586948247741971475512364021963723766876426329254024768223966291788451002240239613723153841747191583248948212206497822927787715155153156711725392267597687688469777276259225223025769408529526502019215638630296388406799163098750141769871898405101582978144887280275818135841177778092562598227669297487627817115152639633339861832125494622178377858557085238194340955815642313379788919246547969917681481669597951197274649372450750883555697000626203711917863654976951747865369427302548435411020494509099577118975084199097908205983532125122301867187487655463766699457101647146077777538288904199686299126568936475754875151593926064183494033117469105794782599906675548589096548237496066282014255911859979709543381086400531247176518343222523309659754690736906523283356408407041358091292176452928634056994979058056230838834800870223040147706334904892917434877947363375858082814164023655959259164214675856820504616594273955272253525293902040694612621594494223375524272215541887654521751660107278656767226445744505306651962173326886550903209380311184083700045262392720726262523282025163055399675493113793914601901852849140645054845563092096550027647691807754086433950506567285777968049528592783339714339142130486201819436607515406187897890912412132435999095291925842749356583037164223613732127089938515892655967640339060877241664959088310505754261182546319140195887928649573147450773286130067812808017422633803271329513864619871320290986348989439539734897558972437289465881229077276747913167836260778985994094819339556568010554719465949584751957597477445096585822106076030076852889485311560099040496611124202039786452165312368419417365221978424284975048414839306901003025820225066223956752115024396035605393434884620092213286917938714410098585020483904114800946238760028757925991823010269068365525023911532876495253128293371832583674029962003834917616132613022398407244942369005643096267652582374288716879502520388624247142780429423918150079418686866960505366590714532367148827972895441538113084133040333535695888845470194132413204488229626856766844762111847988151464766121416866363615705831248766571274924876179681882424620206710664322953799668056144248613316424177978449641541471521666645692669821210283344853201608496106568836475768893647498512460804100267071758899089040815348218825301895491909879719725841658134505556339120641906430448475901618069441381967768139531447288728414774491539050185928109282357479791190044214195615707679372035948572107234814857899609264832466453722785067000585494467572167464437371758354749433040447273486227426665003975953513726484112851299338518860463942956698426949783518271888752697050344180624290665027566377935515926270173514358164692946063209622663719603457655768240021824171638227306878162601923849157108591614777533974872807049847846048085940751053030780924826487660067715557085955913675594955575473257915432761159094401184842922885518803481622645151141672129454253183899613158324106760098516058926652690515305498784643240563406453619136664984149492121899856691172677269431944630735703490974830516359989390624994129050440130532369889956684650994668362386289002142712362441358304120467437537520033252573684286661526458564635359802791767643200201732002273049278926882545555335328975457535801062528709385830743288531718863811300876959032215371364614489041944768872792319839939223346369473414628230887432223679076410888043914953105543373243025382351776287770709167233909536265904747764800567258337108737378890002545214561273441984027977497683326451939967741913585701737002661360415827262977749414490531693647467576505813811589820790144457949218402231646330790307424615399954935893766449474630842479980507036496459797473152765444392529481418321103873176738025770868928529774767009412533495466947751691764214325049802237607630280196086617749462433932225939610822958996474486837562668663112682214833230629482914030585197948453052415271172164404760194337853709024297294717143061452416191894060998681295547692859735318011974908742011734951129912768850452329342709357428977290777783467532566389425774047704301443797891946711384257121573589874799741569581114208349185881734806991635768554819307708452165641729575263241681461726293375987595097711948206129178052380131364368899892420826397591840485792146309380599421814118550904463981037890207334679142581641704270671640858739792755314382380785693670914676961124547056145495715282180900517346949894364458294417120327121982122330320697201690729054997485973864772209877012972250643483888602626752186408377711009198744460513416745561450785305381251676603573505965859840006264473985863592241073918085369313748694134509007093443752113794024818093105314142650291709995516534718704247519121966100880224469591030067964291847295639356405794967741963660059438310779225692586983094618372620056728582989394277242994802370380314359583189125042885124489929036228527039636755677251871251706676209667483975114716515323612328870952007608097058371216987432890529396053490974757716015778295875496306839343376477801414685113325201457836329912279200068928473917061868175540538593231280393790981592111716352353695398766784998412586501037952540914248503199408623419185359757005448477800094958392434117111159297060118030999662383610588784996235599512599380520765162288402971513873566083064362616701386258459407945146160148075774833207076479896487473075912554383786815496119061162582691436425333612836534588454739548247453309728371766393052216193110810847676142943645513458739701907122610095019498319980499083567975395729285424786676677353582119948417323846724069556235521311936726081180028529315425214544596229364094615332420190077655637861739905241619286639693072515200817598786157181806750591802606244442337809461966186021688523975016245582799080645090956473665135639879953750577404836380747750321400641249813960987548398400813881540969091654285718590291922488639673621833459587147236879429038151901678146046993965108629074968422548868008825404522787106715475240254159062163362834417515748087279316686689975818647551719371204865451477685082583258913453537030638917799147956036806238033803710356312595238562072563775608752557117228540953326656444491485710263533880102626923960849183805134457251779291722202804959399894233179494897470434300214730347796465966484252794929614282562482643135411614909096007726569521155009514389845944963049385872356412449265114854977311415906080976298430125529704315263552093086086548818663163312569924291757078501912234060317988019880344472568786657894054400035388043243071176673500849474447883993443357736502192099634096327943688615281093098572086878786642131292868057921755157746016796258316699904649091453914607841183858898292863317147839135862080771972151218870959788407794522009245957359377247132645909495741990374156527036414021927451530195580029937887814652872143491271172687071766957069487266785897266439011724800232325972554755834155053439205709936159749262649271165198126605594473398811545847872826490267588012076560261310467785750580847193434162972887653930193835971311992667166476513906841527980727609175769908249625298172648657046118415123062235541779369838909638420773159774096403011769167319092136893908989763606092185095908333290844037490523756276892179317142180929648680719865286724849775317144571075342826639247175271961143826572414331860797367617136012222152273283342579887340756358016939512036288869308630129023722874803322531495403183229297718130095792798843204866053338392861766546858062582172199807000971974895170124495980310850874152841874666658188962529928007621100120622049941052175442208580930965857427803425254524711679069940781123823963280960273667478914471403002880483129779942804539452315890701693384016638531077612582509616467720352111102202911879541289651479402897469346502231887317417151393371861663275052724136424594936994502940152592038050808178999782745953169619527092253977995504290743615984056631944044375199631654843857400241313869385103536966368275789498495419551568245545926512803396190020518785825069086484878418696948741012521419399995964778717630658100989852883342695847112206453962149350525740027362916315787536756278467671267436892648971073550235521295305842786950982635227157588125908979224708477245245869403462888306780061151089174055127258393099096188157294773418557720612017463574020756317304481807091945707568793654876728759206656221491587563615440801487454968453661303626736939559185534547100233760788498134092333401987709086461518357391969710467120996618734647931678431853526522436371403429156477286909969909436157035674480425864451490276444122598065057984185058008159995889256491267654221919218967717066439688742138732724246355685005570731098207141123751524491609093379323764886158793990119453715717091526442209119903121861278435528411440129437765827205214718345724866832366926311993589427949944316564222538579288931922471660574814576247468333835861954459857696826421451424521861994616740474396247371736261639265864972803340938543717014878675468424365199677140199433069670045545272829776256601187028960844634198568776268693448145842698961235077048398040236908292578878096578333649182585087087954959243029617364540866778220765309888681251219053438129920079295399885965756725250278410856082117011789828927489865868747799126688137820333019672780329177774629385921738751834910155153724809786331904745465895553545590105348801759404715682403129909796655647513992785348174509995618684965911099950440215922062043792800891632913127755441984572919224818726064246739229388636042343625265570495632238760129444288828835849857583782544207032372463343799158563361434688582763923329206878392309051477502140066158111566443865065360336604759394700721114712602706033935823994397132911001507576766444823321269356186966207443854058257032090197197379100359490444489098391967618848985882577797880220605456680564701430580658268369117304313240264233827643601697946872214892877839937488441927077905514124302190154512754253945537972288358322270862522660622956594631291628469054949084972106448572351500304978591871107084798100334296311128422159880081992834263810725307381205090896104290442768495714163042872537596507395757581139146770614023296540626545407438109905633028086806109417542740552000706380980706082690347386769933871515643555096324778027262715597984203435878982478017303209000481140036986652801445031943344189685879952867809433088145320465338182837243011983454818126045162944348964932753708054470641578520912835682838605027728672122151563317351313239526258198350988961033897526276902988174306237465297590384647074191806772537209828205598185151597237352058158206583551346524239132668373881710150197238763227156717193688433372783273764912667519540994582389272210991046852517689138478053295481753106026824434177888013698161315728784652864234205225690447307899968079287665603680179025113106850976303719554033184858583187464453284221436574347803757981904728876273842961101396014592240227659292298627984250591387404193651513576082115260218075985849250504551122996920487994312648430282349357483438521228360766123683217734457005409452809775649769314231841129807423536714413979894961833769680599373274728361399879988312656477979458933113629089763772236950324049344621603115476643903001199038913867379642083510366712128371741220584219133999958066164044767622174038910746670853439883674826666691495270492796595029601767089480103293832484346124343945868855704850833547541712621266457955260488468582285682137467469162245016867671692059770015561273302810868969959955436853305718886046346689565804404792513517374387782462359515254093625674889270429980485347898623996707879973004115402709898783422525316449407742273256015772294218592506021023198347732390241913597712278442179066218630636193706460100418911753300069555131721485651151727446091044586913760321499953014015573149079309835949116521603729420518436220736258627703907761131266849402221509339267948975236637829300835671082831830804851284702248666246963283929856099733355396994784897079862271342333046008346900970492264602263295546964322130987820361746715286544427616194307728221195791821081894411848600031897212217045378870209644747966603957996819705160961154475318227506856408734157418646234704451037196465971258522757144927698579730398526686381079971938805212206064366286258518034959967433637880400794458179708056718775110904729468426657445027773466760057452199780956810863892972484208324560476000581863309876259351386954624545408252159598455434886468526363512974564976343174040915365648409867380974830802011465931890351110267735854165904191982313010111641164901848789733335278852403538965333599350587379547168888355182178861365983828405112289942267627350250084938722685818229651660187874996146100918606009381774260009141436347170801601138758496022919259667662148226798908156130865447580228188766249402882218780898767633673786996992810262836871564205599957459221372675188147958589598071743662692988580522596374817618982886748762731322041804457315582204130352339667512607172369714683553126183963366927174653450439880501095802722484846272552036124779282178451637577195011482266886652933901820851414537901043471293170918729457212193698616282721484744864360833477356438076361394320921957211949317110779163336274820699991329322584537380452279318499672190186092234654796644817192822231105416687911080082298250966068260872497859049217267244510633682007663779908287130490061213217845471090869520055430621023376842380615141192077117678199842335053730552890551989125358370243624638460251630536735398274186374831283477246997072713623925455642627893600500182651774540293706918861760974325242428673793150178967941382045765424720168250179166750478060776275532407519223722257235674836768304115905014032129066579405202016046520397474085746998967037345521488408129984855392112474570527937667270119264189627778228619689296604347861815968508181450394937987022591152084351693290333901473716182941903893939120371719123742648047802600386753965024384943916226998469261733488567923553819796801688868158108169083504157646678829055103036766023318305360067407856080206368622171826499208678668832676274286525876939960517375974805812798255812910551918489131393033595832710907602698828041857406228545474373998064284513999266937598834401416024746042262530285988036552414164417788110350097051091025863263388638871720466935792792703871847732068159593432920254708973225607396215051297030385499726347432097489549284255257233117785971286252879978276184963913764304996828657755834695468730559990050147114005415125860221277018686573533826134910753885197894024645368970555160020331485381564758273954721067032263514618377951164056527168968750855527488934109299199627991506318968301037351201237876008929911716220761523527869007334988943879262886641340924720756120705833120884683210225456654597247291327736764137307790525518959840916164524008789045514921667815534758431228462112170991607727275493929332959607190871307981427951016370545008077563663817746037124855632962527014870674120248758413611834668324177180799281746330869137636918086258980623828300045758280552131383904930956851617260565437653894554965696736094920827891903336554743201586092939324140295855359433136419499863506462360062211950242359419195947544795318501006104137161998103701111348600633243356774061220832411389849950961654332383812286159902332938946150646826505834305525899762390408323773168229590967122601859719389980760766003058691660689992173620876551149951965379875039721227527410306412121776808015631765792419624760328596581713785670514782632331545707134018818066128282637324796594844304876762561275394550088678063210290137611258340896992544856276550748692025842762861782325640108879834841216963647840306866740914214027772563889777774903880885504052847380383292058801471361886735774785466849442605433988077029594354876950253887282099472738020408581983532848178430594937351889939092951303704070584455289632183242982740335604437420645561586672729211144799739539011096203912179489173997823048793801070793093451641398565597590507136132850531432740543521540768464955155432924128370119647527467445293193533929455406569711632830046224065691393949935072021967528752059458693489825717922534862222432898800258701830094702777169966733513112403874106004604332415467794294988028849385702253842641386960980042152107686087747857272173596114905004678795720341299975711961571163657944317266397784429628376093951500308197243022627971480190056452814146483047169586833415992234540843387236807901692691209220957470528405358526367005387760661138623448799064003883410359734076327277852670044526183558284450269362457579833469703401158220252746745711152248815537678608002324318278671686048009624737534691861358900247162559487441627189722057984457208230761766373113626286458038003549261370656220556662050052529081382457513418164899917676730300780177509106445718527830094628473188743238678564177716650182300974762154520647413703642863711134834270201745838008762904401561826318392308163322425095881709241270980916539559171500230529788616176247608356205982265227484519700272287719197036021002157586750875513383321321247712745329726258294494420871520005817274119034932353626336295780842774751068575176431081282845186269191765926754645725395797929054432485580376042803185822957264095448341738552939847128863863392003205307931185405270564329240030713134264339978629217938638457922730744489327107736253005095798234415089872583990388389728282523716281698262871476896298015402766389791324129369791097285103576744902471605886757876729970236661621058769395273066323593314187313489627259360343124371087803000012481106952525682433494558128655238789530598296867187290997465103682002684420294395291347278775858933653721302742885389788027850031666196365340030007013422996661171283226962573743655303370189765480101877319033142436701465269280169277708578838535270323789410723428598555213348689199575258366576043928473431394461403948754843938619275819325223769606428400648776708561763037197492614686356691727975364449287668131015965255434656860597603998385428033901163924377082396930991860479347422452795815446401735625211388218644419087934835831086554616990496377078385329006492646180916341702324890655262244596874404408555463218040986791235033041080335637724922279699699152622116644591013012222722664187602853168181206594621927781417026350838859792744646395157017291198101705584370936203918364570750219844811685812446195127254839692849344521024512158587060179641281147494035633563446888493921444594258971471111752809476612502034030715379541685207940193016487912895377271819331873798409771034779648666418647765508333818090392305419918455310793366052834746059972233559473620647640019670381600554268431978005956980794857010526020489444744846126675394356678676523220010861878620230237737079206903797489634838640707072046754312412653200696229252688058429873921911833557645449742290331585744029783974848136667105216480889814833805140996422721023697312081642068471045039629940276694570667509283516588968071812522302443976948159716760880541257763702108839307543764217049984780312140759674770302637758073374565053686017106861214609648311645824379151242133260159472787548445385619385355119044263501802427820727478044557799224543954696565209033244305484929652422413916594404816249271716730124565430602286301482177671377727226874350388218850029233211134486491851050710958432479726916775961197049895019442690016542501467643834920229070814809590424905452640545014726771157391621888617093104474375975134316008651588674657025705040864988986653151308335154928036141926015353379193367339772781513708499120642201220842381317280703099939156435636506114656779317234967330273937548667825951197360426820719769770123262701263072588469852328579626325678645804582705040586274077980021194574252345503906770574389446848883447987774837002040873049672996839947564353478101784234522287881023415062066737849447006064182279950751697584465384219160870695162734656202423229499539465201605195106735448858625786791637157066730105260081248558023130276133710633718473602883254506315325837848124144940547505609110659971085453703116700783222831915234920224951707363777323402369452289595902835281132470883057759138150036135280728878351357721414406134430737665511973810677641102388594455367189416069855696709247998819367635138452391223304113144577281362550301538146935571415169821578613748928540781167566213151832052407153870065598094199616548004182876562533071337070181086509792953845443050669147911247010326266518999437260394003014969028585654628067884497749793289282316389003110362912726606574724889013538351308350962312082371453613362377928892563709334815274309735406744798162228684943880516693703195825233974653805020733609133887734113236804548072939175633968196368240550769481292617467717895299308678457428385394116772099039853530361907788791254341935760838131958364716101664906048703861595536759815690834601323480252357116447513719269314392339031585592781387761800302035958311046227920096638075975061392817501958227753224587127897943402650762108561794936579351593466963089126543378156437299731861848758074573075025121487691369478936849712878471732627110362794626589346319969937048493562384281631255905817412100989613045376625115513592495128421450369964059839927896131625717136843211045647678902857144694227096673041645942949419890937989443787225327199842113863557216481108831895452802377136134641992758565913830090012473376099591655068463672339247296032753646385835078887545885139747965547243843545827417881473144447251324599713355143971422954911485183230929777032194084591749961997937312569001795574410182959083750393543423006116871289374535429114303411274632063254555853163918910595039785895869861022142892401644842206943677496843470062699711987465960342085732470244943505635102144173442019702975306887415491815648531279752139590986285537880576322544432843141344939662048073743210903512807750251265135638904768458420062110255916303987907818557052806814605394987726857432215942283147652139957350320679091456945061870659854434509040055565498757124180037212282805286109417975817748309371329840968931747364767309335228812669858609334083824610923321655112308450228193300005352518386260460221483494519487688957408906994396193680124469459267913399888229525070382138572168715901259606391144776272030050805739668326538129525290820001920797598152266292957252702453085756746928604842979355407000471066119930369944229804665391766010871375621750714251970156536216478120880885895916480823706034424133500061266709109372461328115394449575040635605074675452756979334472195094941499688031081738932822341819084432087883045747063767056074654533931586345912320526399977806662833093371631420739998755751817593295185679782828868230867110690863307267551356367581774762327068393754430546319883321959473305394922209975504434902441712312777721494387599472077545293714257739794280089164188566317986783815261381166519651658417463772490837469624611161595761441501671980778770153071337790426795943003926998656836859882606926902712143991574487092767886236734178228205119906028720786741733205543117287283601321055654626121706619280665613417228991935143623700856909567999360027892058503544520094556728900642399374086648808125966975371492523930419175950352534219686477548494071421380837588393522967588625349760314986585352503704151945918708458168301665937159408478561263279062144692839502813137538384019475170014745166845916550074853312346336535665535205553705599025195474064246406236488422302923552532853176791535838038331679243461000337620826542530664888312546248500761027222637425467652025929389879761698984967037682970043772488733760245333703485408974535196525140973188277776690556801124579956710864940444697908480648243298771548821103348955236229107166495462189654820843452256337310041641952484210416288478961109257272098348619433899379664842345078256291069304869891019364978777317734623505308391166265813309565321442971896402819365402702466244402384015283063654822042535864547979159259937577561097712098208524606683646113943046988575056642850385877637315477449977983187598543591421402354408025599353466684350275879438239791073400803099089923422676110120338745357746206375685422031115730308770003956152547197092000378281351912147084861720777927951085429290719740907415625190023882510065780072549102246904933988374731720824142411515880447865985532673056491447999554849234222700407641645510959624250894920045936019348343239024537122751881131086118501691446500119142840666928741925333617601840694778461975028123078008305236830361893408968031429830759270612519249988761311451533070505123885207341661949867060964999587666985593195926692667225686024447591806061536379633229842797612936247286691325511574828824882399652808234456329280481778217472096321542846802325216604174973699667364695397924190595243255400451358655107506457678564224605076383311360480902030335407668899609398714308767307784625732703858687859501514675833737253449887340965647487754886851820939021628600052401727952765798470158837461751065372012381335666454493574953837874289914616441577372264669750520518697434885569029770742884887276845201636269366364200624779386172233919111360328685466082987537263183732953045173499678745200733622008283281438116289579753695322300683611517620543267536620267909719155262106512413452148451444406338122887988494903661725335036090498799070430308192084081441590774725750726099728569214813826958115870256886471550333047310390927349168521288871602902121520266016605045680303220603958944834452024557254531735966977012855717878875691001196672584844264602668521783351302078509429269024718040229479148591342966951998135965698274544874220558356777037648503759511660001705460131857357206622489018699409730382048323359941432661719106253491269084379006186482820542105865516240124973691865172728807020629570119450739497703380828143133990618652796373670776939898696847508783926077161206846047357849422878902015331902051977370604008825650438130519506949618446553887629156851489945650745938105538794624755943443887881648085353857039235579274073203077654070997359094619928053805580706132918127481829819821890310870614201044068757675048624261156366361406463976384588047980009442020493188698621603147879939494805552313349482343148910937071492158973466873415031653653428611105972645049823112725780981331544386036407918724641759017204454349161500287001311385457396151558560439757421196879524439507674251031048793078971630937741431029026653880896974165083274298116615924692419738147227081200230391159967446420450820415933488308149090975833322657045258760546904461649221141976877520530713763259663941083441744001774227358244062537884376641391012671274280432861969802729288956821235181481145188057081774122048213375756234606656141558963606507857100627525837476163651287069126094326576967090304901384250250516364990428871312196971341927204327983856808397549557537032403633954086354221831127132406428654727702139258082143211364373214558279208060448304245625272583091591385329917574015363237162739603015241431079951842924571741027937973203377127683989141867759341143710210898830398757160813432531526154486146175993756312860004202222205102407025937529239480929231312080270813135475786937767257896321598725212987466399897998968269211270743452000806455038839297379952988180386071321255167110649018638652731476681286870186105110757543686424824221297026030191768180136845685844645022788473841656284669523157793707292506841630825242290663566711371570270736903408908057933874127048840299441389339564805408225333621068598054314321315625041716095542043910734085480082779554520378260599968667218687854149271459339781289463786912558412794775303465752521718092228786717528262562123446993619093122610598880565671006735008254040876514153937323853553165217109314878525043270092268665431750455044491804205327821103243675989867554267094180811716771293756420652641050617435561778187202052869249923289758048651529436563338356193341209634594078711324654509905655713912129903309398584938536144753470170934929955641272908157156481034492363073178965338180886907550771834697866345482670747228266679107191592835269299575813471060604372896938472970676813045359926423192266604833372340522944862440388495157701282175793798102904662337434528406192764771646611578312955281707372343980380166951903778074693604092242735868374656581987738482779294252062323847507763904896934908317377228486404050494613851292732846243047324185783689744886461021017725741462736257730730598262138246749988968314132034486846935208404707336855428438141692694622463047700805145623273766688947010949420796413369472376146099943620079797819041968158268637131485179747390850786671296323157363396611597981302977867634845188891687386374184560536057131856863132681888277406035401459131499997777945076197454835157072450249768334036563397098585165554080446814897806138427802570934246491655849842030625820886013793365976885520780867411686370024571741295665266931754401211557736321879754270774593711123085731086395026906046418878454020903933541412902128589732480505584768722240530953787409647996127752097113538478523350391092040423670041093365204853344868609076144683305660802669774866381349152735719543569788329806119079180294928031095191398465125141565457562460715691950202049317474041151726872496956748402934921086336121393225471149262898082972095699083118215894260879760569102084265239182759583483292257748817445177181785692266656926485821989898727335318822325491713072988374667940602947717580369522997056229871977655079575781314988265924189774511436809220987734807347112396087204155371078058421315468558745909158537299241859285674123539090752913368944025301102074974660869358662520492769809294221208354512860967720755428179013801775978419594654046788295477864820631137467925917456839322410228045026668259373774324804151149337972654681639336759506020891002230903553470138207361048567875309096926422112009100367295486981986190326990797493075208242959019441855325028914110884208569977019883195909075419284195888299220486134880743442207529175141100565149756177209778628579186773314970088728988791991497916416018570814940518424080407373235625126388868555268365604471870094996186756273879213750364824636025221635357641537835531027020871202472729608134777190154485362501068295107189261887910056387069830137693169803607725405760902856180791542356350816835716880263488082516570888389436336164557749158216463460787665423585993213294462139626665684230176127284383872737716866356861605798473232175240180918646808102308015750094644298062943277836288605627501950867699399929241528917077954543639220280346411802960257478772730970329283356803803746960186824838917825410831771482903395954999347794724258664364837725301668341639828040498287065167676213385965235587112171550439878295786086863966788842055396753759844498369400458880538735259381981356908926100352076182496324273400924417319578137131956950122424857703365303045795494371249385539377508134142213662987342059993215920507597046405685682897079708946235878855793593126549146726670196119131426712737247124882344939263978266450327936633218828609993726669386339168479683183745258776908891159563825835008038596028839428118029646596806577211544804036255735567878459128467793403352252746835960977556829047669864149161883430001709557326924560669912525335893115046788732385928523735262297202322109314050771744805319304688811762315841890100858852945094792265538191348251754455774069938072231437284474982515032469006049683190340761029941804034045110172731773611805894327503692640788568224345684046199159863276559598781000459475677413602402037480552729587236843353386938138426445948526200980048526263797193198417425544779397436912994251086454614928635920843534539059801354461540467445770976396560397177709238794571518098437166196942689479373932178159271676173657116160267896185844660383491663157125338164272635612539439458436535648853740050103446941858530066465711559940567024804465311117123585965550813563193904596519236143042038421161139531987506791210440496599121531146086391857021076190015271961108272317493208685955734358919900114321150918761950228112082989337712671588265698845265828549673788775995184996742707639520690939675376233241661019896193802622793278787035156440455108836229074613827719222946239465387022117539424288981342552390234973316008687309205421849491342902083557926400413691233904804282692627751006871414492062165485010864168894512278421110772744356635755656332249691443959705584120831157879999688145066332991979407247832290720656487807900853619494306966635513592175583392555362930134548947485981837127951428605813879043066207813277525809122839257348521430066207471245004167762345602854191339143396934064894100269078508749334437895621355142060479500144973542029074244770050987890943652753631799323812958428174841433412366904014111726867662820830018144490683630279913474192028777424379952179048011056938079320431128630571017139311151282365976636820929875807628483512107854077657540333366400247803007472958476156506707121549006579007451395614213463729476077015650302120347231976922412563191511983540922183408322755924560907824248236248772363472629073487564733664047959197714620119121886160316646262844303178201725006234349326805463391642406379190720001462435230538163895633201728767512266188461377751215921817214082740129915404405302584057477162212900595759232565160346368347642661178566681893903207850060223691107616093452569986471041480272034591051090473921671045102899561618325602649354423334285700772719227472322681882614615224181842983491695885905034717653950438639346074186149154895892714063414336494115099759823916185516663718046520878461812412128103581999898986500466151193849788964299559107695205085096969917352281066330246426140795445065159634915754973332269034252940551427666782401156995103286758774270439128213228099666203136598851283253716888453739892919152052853169553889058940578808772259421581356638267990341412417163481350550141877829064591890040935683983002248257943833525200642206507817804427863672993794395548187385584005965587459116794363816449712609538277258062037616079986147350613399128014110550436039831052510930345171919595622024214971149778754515512810443824328266770658181319634681842355290947265092915899072652213646343278481918506796990762172022692367154144039402422158754082202930118320871659830723178329035835581527908633335912423673624214259304185766490249175728663269531524583099426437871223093104282525666641297850681907799994488377697079547364283672191568183682741293692887973288088316152262675877569768224121701860518742637138591661702809917044092660351730084180745844056813619330492518273860723679021177356296572960722142267092008400316470112627545570199988284978261629126523692242863583994246763628436466303951180472024121208882941968047174581688067114694862609776031895440986992337322378456352977172996360976687801832282106723126953567601118312073893769185159157996271895681696118228201744858089187983017721118505974231364986751707084119024574303701215654218701622846416164731238664929984217214540446414986687226238556324788963062567524130263685550924770791089165223345871116485198593706381183142696146734047963960157007906265066948931019109783429451832328807724717104029655344563453786890622153801541053187698773203922776819275956376236376103309425293574755643647846393040892132148841447945677773603871297045893096098757445464224928293404940420755687507742169797272615463999805270445799884793668917299601564440758475764881035433809770181739005985117948555970732940897717411600115177924653266007943242222161340560007668589235680874978217009923673113013882854543116823995780589646819679352252036614844243594623407744052174984690232910643093686839384832618452462433059906034480577017295407019004354256832523643729309725103733700704470700108176710231994947558598839115491703037230837778179195474561357051808252631823547969287409077950854757025014960437271677954081797056458964099974774428417381494806982640521586136572353814944062022052641611341471944891872759455285809488466672031044736980626219062580950308494823112667347275446930390929621821076346851900253246682994084602683689288875174856572103995031816105308611924151013135056008613526593433191985277534817761906403556628585125391607901660493328800686973068783811625595943849991825205578831929775381366174058774534187288790186339632820543564120135452730434002498751225658404359912821885678058438781780320930721488152675041803898185741063364414670026313945406798641281404569079115644602105376117961132694051083601386939272011196921985609621583504851952484014060226072758900885466583919028132488417168728723092988498150567713915098377639920262694235919286918167075754602004839367015098767306696944411651108118337090908220529380012057969398828443762278244892399388731045119015208877197251037742623958447729646941411639739735324361839691447420303478462203022808001445457994386530399214687399623849317740979373624714741943026004620201437205275675203994295414873067443592694342412903782063881167938029356995669417687114984778560499792319182157015305921859455574064600320712975903245459575776213074725505851905081065807310580395243694213324110546926914575500986251210658278005159693934028190217437859626643036822500927411311300151582251241328041670049875311276696507750078529192432898108981329141904896465667949530775893700923266896213781046736775282035959600194033155711334900470852714715200658380221267700842534221596224812678235232530307171059730081432509816321354774284993349647315240960281518843628978880510423626001004464010454603817255029342628332478697292082935532543274920457267558513028025467559884437406328555078178231484518016187375927002538671306900202579328947560000444835955940043760652636278185321542108208336039287085244343086331065998057019633421504736210488748628585213910242705787184156732171114602080166720322331129735899903631385133925726929119315761083077202115524409198717780535496249683019892582225698623009674400060888618970027516074885264396120072497235761903139191492648919410841006352803676351206983014502882187337560593706790949360785426596037344862435698219473296214667693075849046301571644510513318249598292195883324168107130455581992626521519687769843556786385231564237986600229189394045310466065448541724488191166230157852365313882670013953521661269470564176433426330535163761585367832138629345155168604099743870166770816197618462298597138429620176452274478015120927649077809289407312385626326780795237811767085202597385860248283974345039969909166711745760266195447639822199302564061200680608377683508516668827722261265480138632494330784872051544834342381240411917465358475685644226457311387591519512341888441867810734584454445497657741547579185026186120449066223348178224018111800978135539216570985909407083472061645362277915472554241553002143457930099713216685586005024014363874851923633456675436558656099904666977861225054217102270215276413042326745164454419785555402920190615182180671244417605002003914685439663039579096642909298797777222173048952748011118097290941391165285481940610470134283398218493106084062985754323532892183507962215997738723960788260468874142386045778621197400316679038849843995079570490386861857642809600806794347675516673640387943139402893438703522835369532220542461553709592388220252012287776876165766844040921860550311325910614739431502256312632333266242400505782585724209361347699471489718815061674017763608721555062144512670331715842374308396126604332357974953183862454069872027009896321652956467655616130879493564624175927503297169414303018249324752014692295761439795333716623342754417417221246150463263363881813499692763264678869455543564112315629998119875108117784551044607860814952169905856483012096940066712969886445644775510834260875067360264622718121153748536792068460342607106163304016250846229239985787952734316473291516820889370422067477908788975678366330421025435225548821393697529293329654168028406737259718854391656512248532565443773261581003157624751324806311813805275975404838504774170073936644247173325069926594081115910035854853426581960164675394135911541465240082705746906045945417588942288604957825630547033755464065390040340272798656318346203890166259653308568573608550204815289970148684511438437226038090753878085959117719466767558142368102284962173887758144648349753786299804836932957701176752216135396985383575368829051594875719814620823049853838752044689884575903694754507919105619835278119550312665604356599103880440560466888145059583848413669708435728060454363136249065906006472405215429556577710901525000716898488076777451117106653404296005944103275167015540553768585156229379998086242806620558287168368934002647387623945019127990354800531808227986761239843580205068664845150417165312401273973989146347665912530025270438744933796766981456350001214093899966076306890093657808642496840623493514387916027835008132864920322835718128506589885905060216463664121508466330751935274646946449587507896426277772778493662516145309108895377614407581894281815261900565383583532480081752674960175101188375622843648845495616077205489684434023044285756707536814575433783640176263025957740445637869881530150458416044232219772048721766483753829391599989552025795646487151048008951618306931745746799762141295288690314574116882935057238695022607220825308620651665909744499767695793939110403450899582344143683428548261310710166055499306184788570879981954266500843914224618599100413095909400260457052085096075560802881382853759594124187992956367795305085020437984264489512188647227737536430065316488564006395102964970477303045650028816884346817345249799940109721366468453547227584105895103848853854118216279983538549996240756518241065002236442823582079685706306296487673286704047934707174027767541078986685068873902413912822960165098057129867337880705739893086465300851220638420910811645941491974610423024596310125794184479622550289179341274294648104723392262161576523192561018725556021472526334908660607497085845132771815599214147631904687739271428856671916067018486937998974161128938226005347739170573500715338725112750292587649769163831177511975158986691011803395356055888591390435396348693990657358706790899563485900780539444915984998189694884020604511039525350524850885867462418201843693222215894432495307789199392575950008750343599943347904905105925227216188156978983762775870565133618829639933824804998035018620895208748858650204500947935441801481753703945768066392753576998455441861891223946610635480917260259286732940154672556313915322383944160596623641269469270221536544479143996856599516678791356383285334731690074233074792829945708323253396857599903176278537648282086203785367543479396964620041829084571926615103421161171410755926403068158157391984792930772774964408642611795042324130004336431736719139650852334642561208491258415264688968826650609265149815878124463098543445508892240227378213986580712253787527410036363698444322583164313374369697767665149549310292175893210831478671294669860300109818794268359743078932607105851738977405279254804415444824009409317302888199335363970461888911355520036507469457825139580477717805668145477357903573110289269153548893262666864467183678403757526120910770729210019088996335384409060074483094591857882120533698274239839773876404160299544343709975891051541484611915515555962628326132422868037794514625018475858113288685080946532562479941819092066628170528296238385795653439425423276191194798794845785420999737853374125112114947956942569555156589023117561322089210293036512439686825622504297946713558485753209244301269798429854697616000634697067592474824645180842443114898202093856767720921210639887801508923765973918794979330146980837861929222696427593196732447219347291815553781973606819983826348944383008803435924971019790423037697233786473654803469262085180789755381520350586672835925551947986750875857644881344601889328768849396954296753371584086006063051100993021346912360208070017749097271787297126271958182854288418236690256552052458953822255600565715277079005149475869589667187679292648426112471188860689401902463361062785194443344849878573920082842920914132775593038172482512580187047377288640785798098078641144407740196434093342090621007815606407281066883429689402746442540830939843405913541397894675874748236519659583478901355500499879509285241295566826838755869044787701411061224523061773027541766588574897036897288750031643655811559044464524127513195780092946730985128484383783298753247691623121351296500608416376411486428255137061270358333403437260592729636221462921964329447939454823392673524118031200414266254849532889477448427053557223927406499447554025044993651098326185188349765754920827499892046624636911080505946919703810827990129846940532883146202312430224684719324754502092516137847233281938056920592660311746174288275267054866066590289721950226322819090800539247063776247615922662150384282277745816790794836329333686941531507377323036857955016164078905351843651037456623893353494324956580133475715954137147523051234402707660036032056096204705136845525967067352746594091139536155941930510886525156306938516699275611769337654608068369243841591665813843538224593403821529261446791005383021092996941438296782655511396644625931854371776033446316999657417281086770733137888147684945105487475634017696849904744767068770557930769212702814635995114913366719683441662615523361334357092990382001550981784224537911258139552861749909535858070882527496152795679648336846759834777615611127107167522231230261274481701253112155598602721904768805829515090509382544126447788855862214117689657297118887082530847719775970774953401754343107366508604402341465364692409325988536185451058997502576701414249782035990257109198444550458792431083194241719252120507382435966721643841252211017524963051869482083936678664470629326700913972306330623424416224307127015531102602678530774882956941556086674393986720706240810009624021384458799570029143415614161964140357855510323914012075600835733096170191836115439114322011847781242945600403706351630912958765279135589933610793486242536249697763721988702767844552039545886877130624760675378362247872487478231012337933829105914718045471292110289065666159967860749084138027428646263826158734719116343324064937207084926104735370635586601009991772155322120044191023702085424669049579354412841202630319250418515049633323075704504509777749495976457225019373359478431432440210019065017902011901988921422983522735080655637777427445085167249908932319387607074426373956735737389920799520959835797238900293509081430201309128467261424213027474114955176362636085945194305320661955854866625502130682807819150399117323541845329013513905818372467847980812106079724416507066522464119315648144994852680051267016812461181414223540856840510445993058333926991448965906262925362316757596950143675416842932953270547565910413927916896911527418446534143081893241778731474087685477528814845689833802593507187559388124744297820978530982838519996831019246207049211205765914204482591994119741391604880348559473730063191143626552656741821099720278469225017959303704950211700960310824393083300701172497115266611560624878082427073212725746583432182354637752491104781543710953843249928065073040001226583981873531143935678223836210165892281375095670898124772506361654413054032660923542152408469969122049052266425749826631958324755441573637055101470650313381661591642873497332364233398114504525916078635220299613081468321630090429969184427483315473137474311305736295052256340162319248485055558421546085819725814015632410507431558224610403702622951236479431555444375614936884255847251695366259807889453099110271768419747034902615520811498415037734421015778534481715104664885896411839277365696661206198516724991548619766432893733457082353276242871232127326303911049125753989396979199814846352847251930476125096995022407103890413308249576871766463967436102996999649461101311323521361999168944758082274577388837121834280472173606925331593580049149747320524335415821744767268344107797752514990535901550659951066895047006296807029256175423733293785019687516022553976880031091092213129015849484168003211571934639967770558334640453338909025317021602851609405233006318733814998612865469765372788919659898261975939241773857404792347239110783983520128383687278345338691026885537878022626042052259209425594984907450764936510051544551215440409273462508133869921870334409477616691898719550518112219831152258884807743857739701289849765066490522216185868845013541977970429568765836070179039745735850023034096519321604949914112903692681243546824052387618118716877983963755993880683477572594603898803536448192275697060189861879020433068040038348990759142105134671424526267912859519978464183961638621191752123345001489928777583832521825277319284856194988936541359470360595261725089784914731669433163768974113642565437366239043747537130451264009634429761645901065507463290434306909423550351070649335813438936726024799919738164133599630740547798792709497650696926414149353149667042717685948663403517936763201351710962454834504142581430498399862058983408677434692849159835693361030855635927529168973435683700425348219347031714574551807696473519665246070259603176927292810415523866882399128139335970799001111487878111485338898503255891406123393894829820173022206859273623514681479375883547612298069027165860041442153520499262870099417501317353608292622050873632127085457274625843740189899963716702894970180541555351444881976794910588208104687239772893071463278686453891482417897765084128184319290467479057530650215202504043055935000245076345274582213637960856462887221907416465166803092876855058045920054595326834014424834808112619974775993388713165000038143153827900929014665103680035378462422524447720997639524079164242518295319249872621241607283792781951810117813078144927541654430428594050972001496229886367492144900247864186440405862309209575874196210704366905012800484007214659806718786034909267531681010861976102577443373386932044826533349851732195593768335454383418171804887874249890014750295236752172674273733667473309330540740816035569381589260951744519389478796950234229058629149453214375565871712347030944058076351332398971500843614499848874111846330750662544380704010198831449723005017849088688290819833855650273578240145616598922419955227256800978031312762256428271439290813455015578441272161832854749815539911641906613925407489807564555833425894300642127597898755447267325575800584259977614311645573587374487405533665217092326935280949082620146244490518216003926582827349389260952651346085416046664976040184459268316712887271683485489817678978081637490142761693079290932629404122415058690472652620990714544811830967287795811656424081330517105313847588533865083117682406395543603887836651847362975832493911735203360151599443439817952242271733537291053292217122173339130967581665344424086889846817564785953756545169353301050225712715211875032471845990990154484018875708194283208314355444651807657972509382885274924928243215541369483615938491363026419697931432286058972892854601794671980259794592899849086983870041197464309140083965799484400535418828807607903288866952890200394653266814296473288407602225679941354121186469910514100257748919669414432166706261181206574045188163964672500548903260215241150627982754618576347298599869526614364344678771119166145414881821688450964512266831603899598451843026697089936462924123097687526678422165720535719461634376055775865476384313125257955122447604507988875919841932047136262983856473473046368199488806680507259245291164589925424135570123179738748706932747331303371466031330422050403083090378544208344422792843983679804836345047200133900571108357686319079386121957645806406731951175441151344781694804313185750447055423280841347076009126899492103549828965269273204742253938910372342531459332157238928036936974315878387652971068335479543452996533394522005295861632495645021704637620926018483869962401572645451304886773920449473752590014346425112321821467120262731036390999802811241394253173544667580010475842076441767873961370774508007010372133642256434965228324390442620951928583651435062701637069995179390970161922320907003480553469457293948335004727513223616313072014770400455998017345566750390283459564554581841386724227953082302518132915386759495153638319069504845537670646940902783591102838956223305378263441768647163551441862124133829726002493019590998914022437610381175556242818338799701682050716063587394653401161750755289931924721388567710620740175763752789739995915490366185486354226244306939080265933626424018810015223468419941596128518122771099167704272955095735636701970990579988767344014949843374948224516299367043099187518904585503244601339548124215322944497967478798097535010787125715896634359909259090178715116615218309044754909546980854150541188685352433729269489717730793891423453277724229028434890385083874382754048238300390531274095084309245568469472100627768322577765392060005125189629726904787346197877182462221634543042877344683331945259043164449180968254942390027923242836883083054157435379217785649285617249062700223469870770231831121593450450335375011581144913119208615840351961913514831238248677613330208402546793410770940765856345262575158740350767385423344617182843068226985550883314983578977206575256842355566234671979346152619522391353750996639005768965495898575885595048800572174938992122426357705199036581342990477303318560266937150075000446971890534455798702965061079511717322469138087132677098227734757236778767633727819705713718813167410645320182216046428125189043125921369016327563596450828467313447226924420258958637625465003980363611774872581694693463149827425995110562447651110530491612888480201608806184399238413963566279964236924370565489178253018019212028232339546669362503693491890903847876582422659769332364761815915193271932279791052174211366547311865249393267693586656133990233715161024386361727708900464954272876079333834095499974104836090479591176879001268807646941468713528466668573842884001453794112768938520271837644745110122460993476337102349242238637119406823423806770905795058109333587535391427215651256083186514563211665261924668017236092334899508827773716097460082002832270916815340531708883223483364466365107718960911711841565481204837230319190596752755229395938641460321460195319253856527729698776293481146228875203771262366016851989733647455809694059525243079685234373105213543213672937314935417089011552324293781273642366946219050764934973609804869008799876209017070466339364447107223786293922835236754966397151530432157785814751292535414509378327324638759094129969878584096495671810035725641696239341568196180614594932856331340223354991952969117398225032089092336433888768698706782448552784366431448565192642487827284450469947010542432401591564118915155842562052585775161571582590949690575579222397482012139913589693105867528602463557130175911564723406590958672399888441247067269237479271490938194867066641098606530320060218495149089283919310405553900562291646952910150839133238988934776470757323187817320660719158837789357429586366420050824147752238683965238641849593806006561062846827702719521526268056837858901764665451614416739015744890370356483975506341301747425368967571824759306248072144929149052002441461028802469742603351631064671947795831829937059058343459972012138872733391344666464124910221542236924604290997720629233307132440869428779079267185430784647335146897106490779801777559000851078552162910289078453624522199620333883889033497602515561767304016760325555858403157889672788690984850002383738220120523156332811532707504220568013950139331080180428559824165353444699625701679834855088948880733102062395280217026767494719257526947911593974897054959820149780756249336816669548012172751781437619588077096089186167230285045767276445117297138114661428369707267366784323177729416854964050012302083080406270742129894659387640554696250307749444855190055863686288314073568149698209775892936629914067226764999044807959929106650146172303140976005693131211904624898598923550204529277701675960381151127968154694798444985158552923543509505187511987443432863424164130651480483021944279207430923942988045903783918366292958476625609996715162621483091899632118737591594232828911450219526141821210152011682067975306064794965117802887608812401445929812813622441804774240028744361762874838060519826640077581454365078473974680244164457218925252474792290029770351188343288213590609745695113961986818965958680665216318615025321047930979672662328240895916392113771517397832977511923439564445290173642323743014144075678967076622331265207074862139653310378603679567991415694494785691441385461121984591353550057982048397121483227852674928683046774815976519531589598116569424264711523871461267152489062626162051573133987392019224839790250183003987300270678209435655573594819723822135498664731527298132935405073192432241330355597077324847391304027728581154889158395922819274667349509276476846705663284324943593271517152983734038749608775368236623605814916339149215741452664096570596209143000905440200098208308391923514056522110062601914760073184705136981418865943841275969317590789461765316191025301576415691005942339369909235698615012017627944893160826659406037889326250527473169769759587919520574675006618624563701151030823722719895264937582889239776228816914366888981528231310200490753027201398300537899919981867699650191453423503468259352736353698895066582762562268848650732788418670012128594188722544413710424625010767285661612444833419960584964851588289980703387569384842859666690738054832052277877595305872052090861212417088504181903639131562253623682500698667594076920833565550779611607360218273247189381009750063298532793591652161585063623826794967972999937884761379285852377951074197794544415708688961966532126174475265069023396221721591778373761992944475933025319185077885816676435817198305046654046007112642928499196177701748820898035438331889521437251518823994423682607062712832974289556429033617169549228939793711762826190717769513249570991178955172228061120139216422637861677185399515888569742344314768669738458100129010942094100106810336585582707126005534570353119018680212286950421540429403426319680122556193585790712089347673860697962199861154742993027243379970700349695042155878297665530996031612881140082885771627075301010435337427199471365402836805719995439765615940738408843328505833703996706826916659536485269206945965113190409358729940926863861951290916667617528841009609668820147266712866879707121130317206524376671148541199166950227818246097314442251573204156765223280488474826123973670525699530132885736135106737929664592816010161929608010997707168287113592206245052045808164823102184922357381903889949766032861590174418672884373581056888466283017854612260955074773059744532150989394267659882909851425121521904102426797814475293518949367358297008047938682323159686094285788807525497225059159145297793915484199919716895769017837863464161923389485705001958838829321296367304203187657373070635425268094069639657841170344827583809585254022764096794592661199105620731186596130179899127163571801843484143899186522953974614146041030142542169405871827968148279002088609740289819040824328347673508942257495731228295076584059119739274173768096509909682456180250459926586457530417931335969948221908722887945927869962584571870053636342094940048314262986849545260498532156274139872659701911935760924550823845757477447722637813122260184502587042346775736519740790744220599478667814634482003161872544215829332139671695708436262093473529662822829329546516337764691185331805817044555236281377649205647051938578479155742989411587621900444645430576463051666045289933741207384829690986263111144333096480889976798548084133337489690609254760803257199102928741567358611047088243805556462015637971143551266346735051879984247972166542092282154767955076363465432012080934223388465744217771019199200876475305524699468133901366048330056132562238435503372676609890495425208047266200018293569776287712189591480336977324513927612493539540178171186451078742653303366967068186082443875880659167305308928071461965476505550780974055400522900680194098951987683039288297362643090389557028581145116253463260708858633259959934505861920715510649930021444114393551712009504246606535477499400394319841501163132114209438744312817211619291392954278801864226545190197500965678466364579852978689965220533300870156209060731373051271597457315242653609887522513746083565556379035914177339413280626386737898992812247566895884726265044738563738766969710416594299143548434836257435540385627756234189286568287383549177292788424558552262317851527865392116979731905107150964691306238119866428780912769307548634574128599267679215439268069400180523407482385706806847965397055615767305264597234412827299658745526768049216673234144403479397643825931286462875763833680912790148197281105862815020320693031999942629186289973672437881257846981985485910859995786056221077212642958343788886836339002306155733915005202573789410724702067166003171567697272432579092510047322719265636743254766999908457668010590309230904768588997265225265857763280496652982426918485345899521453865470576101982599928551745896506357524991166244526399710037778340660289373323717061633623231553925819934854937001100655202016301920848804651829879141118833845517739987449108843635272903748080154855023100762414077075716600056021037272910877452689855033892614796219451263327675908714728470643671191378873269111434106788952338543359042005303635899988391256690402603152896594199361673121113678430844351832618144717625541232987295221331043796230635653221976155670393785690394067154644561045232194901971211155850202576535747439243114413604573244554852103455432127431414889609688191651940519714468986240524737136870066972495461963394893252692852642754497153087499586743592801807430581189586969890852714866209296890886487665248622445801795815806946672718130387760753425387269928478829662274489826048273102746500598080463848501842855395518245217798740466182281462714765684892921664978633391738223009221364783311075532410301002555920631547207769295761001068434769523355345926902734209844214611689221954836512287863131681501957667041394588997772269900428316822036012663309524492835044892714542877916255317678689236617802487447704073557395133428107456372325250053688906170547443371084051996117740820520232422865144297445495337538796866588024174364934602093840648702755665498843484154516593398207629252146452566740192869601718472980265160278320225942549326199515659775408455928417756397987492752826159088051918313551379646099108420011018836815356327685849758051520676130026050382792674010627659771440250550842003398889437488449458498074739281112628994944521007933760340477820220937991383215203104263601680983503679222817633145520522805637737927772971777152488410835084587547835055930280294097751870794253394655302719890990597645438407652460639132680217617744867312102970818449801559236439320194315501796401569204548402625136693612809537928156951693055366862189519190175599000609910119212303120914020578959219121049354105290065788299076739567730437881743817389520680305204066547956640907935702611513158828652352782348133175238342291309016432506774692160772365164533858269370232242577082744904038149563527698763962144522529320553471437235827587782008422064972756784387827706713477587881728115576605854323856434938596548253757550858227371515923281803134737200254747992181917415787062719205802451931446007639816811122577480025868744044292841567670307039330981811068461230015778896021432931755504472437839730926009467519285143968375230475873610122932843818311524788360942377701078876618177116060806979090046783588665869948424874241658411036662407178207546131678114462658247524413475653466357541971540226738926964114516284788562476891414215902639982745006808288978594271622590504296416694696165115026425174323762018656483447606570159130039108920661589747027766488004270581105286495712460013577762457945522266546405097934253196243684914326740377641999571601433641274304003449315160998311413974556983476339885553483655375568456903380372924275690137966993397358213559970775979205826753936410539883936287610365330182655428193218424292875975464943918576297438530177448868184456401914522755872162840908541639922175583588504554104374364328134925846669560271141322739492890339965985074185072022411184264009521266528967632974751980851127656546058188738279569268940167301047940236977689210762044374374717241979700759512922131250593817943669949971343290589612711959815362858124970143798375359943332257073828132124118379420798470119717527944308089450782080929191651734712010678960250362815139764997627236386898140020754070907202735816165819912220888945401848199541561292168974363232000366908122459563621384121820873285195158980151166484931750667001165888040052704105467447876182654022030022357768722834782120532595357314385272806295981960011361056605774471474530085764948690792021619008217708804295560445250838413684470793823348525374251692843579455949588158714018955445798991133533100770384488635815608920620654343000580757410351527524752699396985093626626719186975288851082043709497063056333501285476795672383310452844455528615321018810478286853099317485601439254292969877068908386164925677069796334921468766014193800729057498020268458425485932152989727453582919267085047638648803717198260656929861171134264863410014371857049948055666637678189658737755649314031713385003597239823902630371456116989284379487959379166771659996818396770662637265255448979647013966132896153916024693874489599188939061476054435291434938206213658630798019582770046511936436197956032360039469483122652914531986700677683761269668704064253491303883669083997902861060680629210138008281753296866102984793234239332994696873521751567380984132264119314646504027891177820789701544371744806867994482554655922717510525246199075309762421174395463625587414381481796605535152317963270387756312658486571907136377261750098117275188626799406216480133630828887623547802719887859548072814846631634196321373188397629674548204529556378915753544656493983488810887214198908765769658794265879972986261557605649808106513144635436790768581240130009295288110765751448968965706958035481203866455269507305900782196060817104794795142850897644372159522405454631946189628794228335084328682048037829571024799429593169000974839768550699935742970908678706689222929808537856828815039135985787052069068442018743570860206890678947456755799606029413111329980954151105710510615159726109543537810264408262328256917252469212765036171377668335466605183171711192299967549287886378887986738597722727017346873023918264242441833688045503945760069660243942173877357955468628159500556714496736814852701635172197425635502630886875145019353497115929872203029582053195181364522769536464541977018596171618744752913814074147022579699990221577152049813881879370669257791339917444361390182947084494934305418776619976574051464302648795132220685830655268724959618381820169969955239849170186059717894390763667468884645575875400320658050424604647574268998343827807546902787889702154864409446610538198079520853028671010143308145835960444313546748461270990773333628590954751655599300694970112338090121149569470108377123280635977202969048652206870273827144413361906437740612230388908164209061020680536609766813675332245310364643849005443601459003523762588232685996847903604725950059393515256910389989250545295766436454114076141207175978290177683289593916050323421608964463456939192292455645642356927693400360013430769618151142057291852674559975255058229865648987510534034800770552479998399791932274807136920483163685073997902066310185248874497927612785310610114749982744258574062004887193836607133194683726586329430771554206075316109037519086718243301567495838199710602917063901904247716137381027679520974460174212400761008239487193628647967635640181486443606657613476689656354269541515912892412174561948538501498581692292367302364120537424481275160850991871489073435980882762167335374165529924617468918435271578995767379203024378983209600764653387548184285554632196387420093695125434790327447392594443774351388812943747008380864475436754636546507849034239017030709515788869600615521930051544623990583412422508541599607827140667543079932534184584602592338673980527237137500337763187702120480161164196407120946755967834021356043385748102271745712519075748264527534507625362754134862325740704983966590200648344179798310991437497006409288833833473000772389753338025671127079081393572564398964382749827656039168372745652764712739609204763676857537319110010966672741542444709938286396701625409784739230936652008508520446660045686218820742011565493529090655512736284973080386344223902179098507946142248554816437537734371283473357859896449914587723985409295137612993188605526143266042366218404073129034424900115012734651728335047386575875446625337505857188200019608152822513023290848062615091217243422970041612449338788077722331734134978539238931581718527719361268891582157091644329994298262314131417917134835292455530749763574923326589466278153608837638005186475701358500788966407575690647447881242335828595890634202559381293515032097141019840358893386849363343798163162766564457208363500587300789459664615610824413854245799198834631818995603700894244031414326317894018227409515127896655379630435923900246429238279441332408760980400459758360378894594551582371836975967776313176731093052722977172790828051031684089659615406038008990573292036960920895862182072344535443774989479490855432077594790067660886319304163401256414848532015929197547404466751453567236714954028381541363958709348190491900890561870209836683631147814974854543267785321935081175336639076615558310868478081994621753032067777629527378540268796203761297149651795642686760872429480432026116770897400300641914183656451200283732381398557372997007989108760378622429672080662826644822760953698577515865811029266053687026962519646898609844418777892836872759001473693617965872055983205371316044821785103411097693335818533913016493346481792999885842934350097569307371779293287005865803425917249705130084603752775889810857179230444573049286553848948951414246495653457591610556371759266016413974629157805239542099286949327014994299986355450164318839420380161865197713783331056133249823386702177285328314316443712677434497275062747919577552495511921989393872688889333151534466919262845088012687284442993929517196477662859446394479173707055598620893809354919141842648361957265768050893835186486131482742013229643160816451684218494383788600314550837867650569828381011249842408351031796290289374448373954729620701055618043140634593598445770924623238604009998349103687265994056486595569243360584248415376594507727634921234055183003289963531192045173862452826812540433470284068984138742361474025123641888373922334418493238148160076421016117850782733214936851523970828226890618757298330310528151011315181966036109421833250101079393085877990519861851255809814987853681678377080679832677400441081046457305154301401574191497560083864024621692462348801471849323782193577429451449650724805278664041025170332143881318209239859538722619720622601039998763116827952673200472170677217588502585368491917878663169516485538067299025179763380182182724899902735473090061522398230182540442302140346779669419884778474511373672597276281561224494953878879322928985814838254804860787432491914627202159004371156238904312648800296864212057602661825341944153605745341013109410167385292970226153906131535600717875260271782644286050550838155789121828007982283964537886617637023682773495289949083192222951898644005518573737885776307003009268309930789227362956183250814481987523556761656969847898468232416401732919444949872509555259209723091853757594244446323878714314857453689950515869310133309094013877280086475993347775349372627538766751630185940110034517944176881779525369054400204147113875453216650373451931758871325315629992455173566535442848959887007698894765733649566868860943515418316467701873316147337029410855164551405498632308047577664277967051012128503083549517385352783458529060291243331193983030689266785255972753543599800947698242956337606556244211207758850343945015400410736404444886385206635521221026537745637132327643849432178072474150220344318299871700864597420899601812433957507486069136989882224936173544776050389221025626021212782584720235433870523005365298216384891728090417707181622033499904678374188515415866325035225498182204085119484633106103455537312547882248768472697191784471269220441192694045384811618232050392519458833279046938286836606299023115558080443403292358004687589980783259739409223976430491965891615552571250476504540141147991256006998462515840971196253989421705481398952419398592218024517057538119586529008384605901465748418842631784565164057983105905589288976576694296086245232539072556585117350645404211342543708513809697620760620608838697391492872365560804159865411919031730904664442214239006949798761670559082202220915836892024790942140922061164896665989065170767264547255233481196203305762112144810974458326103938162102532939884641761046079491698525944979202910323941923585173679989000713795505604486919933177085576985496952727572898683468611136267884963933414115701830341915994248250986369602969491805921686017413150872934588380859284774732699364643109649154698416887167495625432154286838004212227466569182069330562995552443847691478448547949340793802910298208518370048572703938353437119817647278748268767790052845267387686690709671564830798288039879928184042406120615567286207861050102227685620644043480990049934350966570255409931623262001141385540575742819484433547460637446623871807004946161565876784966579005610016394762120615605021129759990181049443015428090366783844141534637647565163089276820286315585315575829235056212635780627779109389590342479929001163595308666830736982866630695978577823983940574276576398413252918872065882254232718408266805999779166681115744542388853837262516718484804593168495091308704477218007892435746961657839517364338986077707989733028487804102080826603947824395627414117937526944851577511224751049550134514683086217585596169685364974706105841802224130184246095277371796954536719224949968000456491114577196156155941446446741304547009290695125710140573126664794172429765110177715261831277212405932917309972968850867113654137447661763615453515004045313599008147762845592890516068984110801859220944245218645350239009659963882529437305608927984912049800157892220446108482743452518241579960553236055523505680397638097042090675958699560790388837492066326566602762555504744899575119829757319809815407150660380896636947496425905087388436932605243080272352601731696915095059715768462966215872003753377139076852348314647529563366294083657955800678039461582200156442092182272294611523359373041483791554819072467088698451615723132636144654723269342595530882671440381166680961595325501423412579332817084290685135771812352745703178200136020776882418613190262730967959597451825404202335282153899993217484296678639858160867774929835381935674173885890250442887160726296681289723199215457404010101216478896221143012535844809996244801282412779750532563581261844734021188493469522853427038330509831321925560529054753229018659286497082762964748701608414050703210114719603357267098589244381936743605692000550090871382651955602262785750116403169210007347564397299220920322876904802569597199517761636293887736660335220025639178927357783786482259702611963592348249136932680427549630615757384165428227615238513780622900962426028110595173089108129261545663713226747818640482684374358211654338757884352801933071141578777202480116504450258241806575039307093706379523633691403974508140357010128809827049155676812654821877675282074286690773828464812459098571442761594289467656848319408542344085460909007511498574900700576730376944669435313626769006548569470564714896150879461019658549608962162551967550851459934307775587347766917029991150986327562711705644471902703317412274062308257077982700060653929957384319542501692097186893548944721015661891111962663395123163985022954359178313108961372316105845812202540092565454855220815885691316895732512474314463368978631744560909988789480008093421946674520004534577057519148311655211365229771016335294995003345083386012798606613660920166400726665250400628954301943934452196403348828456531020997699971497604592955567728324999466082581791801595955382656849906577567380040366171115942431951684564701614924669744163502625791241349009751622708349931868389752988059489137766628706640168618238855703548877084053013555475560084523104732584107877684584544328850330466084986721555415245250024692757237223762721858344806944022300583750621563275929457151667204886658247403733504868150625599674140256322028903926405331294772017835261072215880318313077643247913094081956304498244845170240742926577025147573359533714326649035480939757532679394016886024525809570273907850095510219512788951796116588110028664219380988318946126756031690023684688704295548181074104791187422172001370835894476723826627262522162233508522657282557646255128923559510555625901256891436082020451243257892935892969953562074198115371181864875405703993428159545559844692161531670737185772834071159959923147808886157346732986994779138818578577502357766403087846733288071669068891305573871498254364697475338601762201118912642980407114568627108503273319405911616548723101192975633224503524405643546331307403057583473582570835899983317029135890421314732326338424468731046345246828644919750211960447603569280409399890063415307569990739707508697340747006583637660845891198864641156188584346313070865891295285954389999979571829214148966415298682467054896390218796476470356894148555223967724493305555635086619381481835109238363832808204360769680999803957661395888663787391779120147281599327273981445021646302869800359772542141929068880482410082322087962993380320272983584166343319912178673828323117039728752759692668831050781285787711465072425950372235884860050707185323739780191980547424613598615064490063174886155383786711842492282736937467970394659671263379125212092856944836547421404532038585306389217418207021642932804525110874985902106313679098601146149201927593917546767999906190951073393678665693819356698202253248814380888221300819312464947466373596746728293436869903831825492643164283790439691560123721116107132197277161403201113282828255272109466676612229188083089143562807208446397913951328184063287317583209330832246729844130302349688143379850224378501308578931578530731562108854148904101944557276096296163215204399492353354891074605600139647549540029620617612165152437601742369918287029745893824187024051846268902097988667804310779554845074706823419466216776712806163368219211385494519204811798269322765912698082364226819802921697474138506052485766002892975474429774717717575523050473581651215958736672507992124784974439170454329738475265278476508077070676657698811738925426749422494076731307339147888569301057762682062396130510562852094579006467424767501683814651371752438494710322793793016014107911078783629787311801601221635054693944182511379096119883694871503301614422255756060718560358397512835232381011662308221366898721050879309463544976710162891990662385602160745823629352863941370165846446316357491339258927455520774095663986436969453247422004521813668431723284855160231122198769940024196454942280958571638982942920962534689999470070469955157680690053117033936120143979027928293017942628857985508627088724390742101205945790868289588783073845185216517359811961050151916268546678917862523710663664222543352446886674706332624687547674031378084117302307393574246100109750124122957311132218426580040616131027634234221999158763162853107738814359677374258544397720356415084611010101452954208846644585676535217072636351867521137273209341516664227776359639704776009400701448042100440880150361544797137500908305718279840193230116099922146487795085630094393660417713428734473612625045079051266974619878042600287901515047025790444562010535948417557178616015795235647288646241679472959086434492998339163015445605688717412087689017825871318801678674975841883688473958826752150677873180886651139903335897428403754606906290196026751841577605228170563394557687525796132476650430345429514612603790305806013623773932229031881875863265896547345392269542821055189987767111270211061463624438458224380517519990383837491394926668603936725040139450262232098311810473985088151350403692835628627022605205655403091307908072232948580996575227831429207447564380684830845643556630335517366947600273369724719135456286814178606409452469519902342833517836950907728515557582414827928179102182733351598012823208926970477189620326752051496334289515197639467315042905657477918740939885294781914711426937453532030259900309154116440741157586874126766375262245945864164503642226008819964984455242801367084840823575184081707384590393484840217805443011581742127067773935532539152160078803947483510383642969755245675078867950303546825279739519626577866238142210816319884195953848378622404680156852836246914530598954135440106368680621277141704994491597529351315788902881944589718639533016115931220003454209011283343798784090347714706592378836470950344963236391102540133124347906522585548523225929485295838241445505789445133726659958589188046020340225711836199807710131409102316255815904957078721991434506817894366623696588317164692515228368798988450891655122167927329208983635247253472789291793351357952684872106921785988736164543190935145455180418491490742472550107563623216408465033184504871823974318443998415385537037007874220288008977956092993308866218651775678972571995674688722277594455254293633270068049147842582802001190436045872088983106723458590482559668831233555001534318790246823182860277326210408029269603419118198397146464677890264855686340967056472494302240275147514828627727925898485288217516975500754076628448754660595591635064713192427629321008311427714113330552608641371148640375346499594441662347072697012253211069168442496035848792003922207287907517792528458351354272186898775094030395092023739760152109843396200916629599467259416738244883193537673863944348257439129419076819682273310316735895582162256035243914169638099194377784528222730257078331424329085037760339904088157940614543452588518059865250708963919613194509193188857160525666002364817938763829212754171800124714428298381859842263949103774075417161665929824659925971563261156167425692056287674118395987254177006222266883044239718666562595051658848765775017637518094600859938331213195731371396636742679456955849216264711788858124137863233887022742362346754220510832856274769285730916326258051174419625546630637724878103089121622650125150789985787530383110262906679469198738183276248918709937181187334540478131417999313644624377931285734241532939219385632098519211718813109501999530499492591546880963679387397184899999602838074823145999366860506187702161848005829766643021388314527617241852656941506201238920804566583089231037630668420468555189823605724184018712786071107670048839903526520182052966332572559417422664015232153187674089434174079276335874895457889787105094507430529321194208346485854635329921426216596511829559826863812911360031995275438711325522163485794929826883057076775078006986299644401732894944096543039158903188420852916378571112109275024135496880744346005354176233002615307241843310421171339084817110376777983954993848246003886981133939163584337572891607796387273825037799287733132838013467117095990308270295988834867451592549075107735868996700330030678336928418412846124642156379327449171959413325467811935283091372869650501496201443256719100834108157193424195829554812704635050374601456797315928362406002281783657490631049198733988630725824678861858406264986323041666026892053426760023870408589013141826569153422588877525660894273963842417944763696853004296641577017523500039188966385238020048692962099715568946214684680732717067569677384509785588100595426637940606387661069439687408283386452121423876724992977365899962271707376247909470942844988601995114780397901606875702251981666216582820332516307809560442587033907380957716885245707933150633386429008454742639101608869635071813703806962945703358846944232827481610858475462246861121558152676184775055703010577514457334212141183709096920656864171543214402187540710063162056680531087451032740537782124883394966539371644472428168315970402880285929018507293711038175383401854230025112704863855879823730645769445481664669227480246440554982202489086578462121564970008714406893045270865444197095734122995561789164735415987819204670822197640476231390256367867749455869747456926314469161928390684134336305158122284386909479901339775596099460191280010111136094272930469930737366523131766641978639460791509144717313872930573844324278647379119124774523186995645867030713131563270699359217019043288324010229165366612057289665646674271803466616693415731408038431374681754065551092245826095983516036800878343561316809121533667324130446134352690378721299927735073998605633035414769088019371130382039497287937229098780441711505427515087273936331379311148025439374005760158354747895647906170652671318295550337326055646232748522431193128792653810283031648721522206332784389414994148930342526191764336602931865613098897029106133090523415573062340638701681262641076616349016964736914289859772580265925289574731765572118871197163874170447272665832277639375840358908949612143654234107935689270741765496131507818720680068194778669127854146107094657008232966986712566920407817716586317414711945441193028118641725520640225980461977146752747185737731896080906001291024242399548103734248827778015844170845507930084534095303234441963943057268500316182537827378359637275362219876684012526736591708024849927699398819192019618047337999064845999732257431469176242307759242812538074858520485330924484253217123667324539827901879375625331639797026679216985262740866331719025713069436677584142823047042912505769021356080398722435924275796678660758902537093180335469253626475537372034660776180905211291301819618225837659523776407390731099848903924152212101648291984968038199083520264738411123946534038203139969200961952352544536144832897391738526517742790247343938335295068087889225072237524519115585410565133005646179391537917743422149921052529007173258324523633880805615909711090558678809994532204018017051890507551470876267013488907366127762407441327757652678951269792721079006053929623665548529735102239047870338580333361120382769886834288979342105728320385784461822338891330903655741039206188656514406383567671292756674399227420188261067182776299926276274756452466170759860780202731626107016892242970807579391215786777407847363967897340693429268587961300306519776946273185637247133326358065530105382398641939386561400455072084011018348221492637925661879169412530290410030978490556592631963749819333193286589240286796265433419837100211183563746260812080622564288264278714982974146318653175685837609293265253286371882994056964826742054488215331346840307347682037911489003416511967799127715435930684363940247038851908753168195916568063235644961189751491803465884639193712025601649383127649971633147473894525975187464520349468166275756444696376140742490079353314504892771820579792440902301654057936302291367885963855746195406565939091607567958993293448153597276138757899060685150328663272003359540716909275624609548501609164133606798417015553028356445262115810210353102260708521439924871037976696462841008007072692964801453544895952620498993132563425855329254739124132854149582200399806124353797189954380431879607352097670960277293040319875356601267973328301572721462046341522537699750489997896707012207373452633356772761470455368347488137699791734599085030561806406473312280470969658414607794621761522112775125563373173417765443769703762321224345932871216727200075448202735026755290225172778938832643322505844778399846783803779851004429446530889106841894268937574137173927973856127741088712872405229565694565677753656881335803028931805101605402272668312119012571197450584369966097637045759711868390343490872126833046261602076616344542799380765718574865497594836413114026744293462211302980150366934860627534219371807458946564657606259453621623004227568311343876728736953103759536790772054279583679574893742179276221816369338628388756649522572291080766348529132526128553515641668626766065372537079717673527414210061276606015293704120458634888018963418755963262887556759234435190223146342388033827891458345292643054929014997996615287773001687958283229339612822822216079745821344232385421725192303903892824331544855999616277128242933286037720176497945455500434416717934183600287635031108798658510708242659152415169799158849558668155159582262334463220098374037289435567834536013016340061231031697396496524565269407594652396308633740565300831768317573802239756181898432590907099969712792848580390176177108840446975866142253084121024733209146479390721726096428990208385851703159442940568067882040742666557589614365757150659130871845431133068119150348128864869220346847487461270555122550219014405197086229489169454256030433470674267983703156725233293435666697674049617942688659403677935814244922863527040886392353462295797892793963456123661853582539714097599061792359921407118142744208184906778941446997054363129337537617172226066149480860031596581648884046598911076364140326882936280600477990244398573982948327236395921273569255320099105065358746466269093186634502405242222796731291755926199796322345852356090524009809022879531979340102391189568955459019022318052542944122232645900744383883382883162568304928420325541197518366576935118456640834881578704838745466995430576424497518649915727959087082768675106467307852019526013705964649515630504215121109906375297807781287249583328968720444872437702503619860948479562421832925967730284940261381244380577412275485150918205949499380961462039197587046113797493251968128646665020965005892677205097045946132330756182534587959525400163797770773799574402797111355295144817811670639330238361914322381592914056445422683539823177794036066112359949344516863466480701488036894086541888321956654517741341255696093080028470384213493172181041367599810293846324573472404959033020273306680921477961479776893954184143047064861413291815883455790693238922795368282093033573930305576653454158105031849750289519699062940099613991130732803619741985612321257878660771209151533315451395350824503952572576151802842123159633343353838573942266799857445408891054004648624110309220554767140209349020168559626184501975265868694143288862131561979865589407638437301392960467868042921231714989303302766671496197181766381857163339611938382169107270388347313250828209230117944322125410832934748578936441347110051632279357827586952293551265641785334128308865902176184549601380503437171926170362316400937076672712245316229604535418162065068829807056988277055066934684854555441319280563710796535990236359425953404839612831594821911313735137345962278749476371871577966965143245569546573987675302305314191804852170562266902484218506595743229876043737728341890042066460699710154842486323751821081047557676884136560102972504909104049086266001382224731658957070309412726040231675031357534406078819079181591818203434524144341238386995120295098315937394004065990538949158469448060113054921895886496866605383203753397240464184713387347173326025075496772824359031112391611877637544688534449847171120440552256174796416185774948747988771558073736258743432646586280350023651609049403235649263958227330401301759912926991748951335137067338126815850741651534356434377791160998216397593965929194981131971861199104039741374492916144818063055607715828002067120509502631009325353176893136820663752649177351705837219426430085087316652088745501357836946568210120479481122269591836213591384827910580383474883110082515394326761515369953781019652818136859765767933703768258520567496649684025701634564754255145468636521124306503344524307787029980301551343342813979632458844061068864782016657330553269756397201697457985656196795814677138719495328744288321355215799611954056201629598793913627111588857932772128289915176652309050821049563514073807595663402662390468845390050090645015504402792942007214281732598498458414097579973168401470432238740848338168849856729126757285118611710194524293708947106471443995423654816171769753711563814448724335939552261680523500171483806132366172875601585887987195725681010020439085311264497873755515452589411718212979754491443043417505275368120140803147244445814419644709557061751777608746643935444851671485568530411336642620053553297172210430803226011869986532120208804845012002951514298579008783349315938152277350797952725620566266847060783470882819943260298207935138417388460023223168865238586576759762598544766734764899796824219966216606634083940217028749852313989274863548636787252531305672452578937318582155287622063837812530259526592359116133686674448784701151969638251794834159368758692465635713473242027944896100999127515322700802528592909062112026876153691659624152810830916137170778900225217049221891646610939289397517562815029309338225912753632108807430565513364017266123421531707403870896335539593576058997216562407712923662103035325510490437007977591308037361310422632859120288845794742235912556883115971339519681399769023254669721935444994698255690533976657749854670646430006975621920322277728761806966739785722954154101000155717018692850649345011874723034705853231507895973029232988497109066920822531707946112100135086626657229891272516568873581778829990647176605199970151429383223962827128877741312822998186423057894751477262959446612016298093013714653618686663720019102050159195187470834779035340974271497756572422530325431740095190876353199654645116734197519696593396013315576923367710434404323944285604181228455728920968426585015865636354382671130306962078969518083174448053615048995807047930018240216890296149174856721430559898026311497221658551893238543282154195286611224129723537049193125095837577055341863882065279334798738470043894307081895805765261176645411640114264039540535956896146770319660289827895358666964192963076831610874617763757741818590744694913819626932604475714123092323695039474145325945518012607019963610250612977975689465706261679146673191287919509598695283024066322735958784172818286057933797067317835449831284275666158989812037804910313055426077013937999218963358220839189296429343524843628782038755071310481614833804734437317137258854635472119008740213121641709613020873567412978698255314810212633386790709140285770787124712018804674357830991141100298601969986883190395245811936194311494111388951130757988189428475348097166670354741186335335563296819047531027694849023437368234359027412830342903220414415221136185756966712434855451188327157884288701961448452928992382581836509608171799047984745734314390843498831853204889319489902434099323248708749937017887525672742525854367498634778030277820852642445500478507365067112902998612912776060925722779664892621643673647984191792095433733260014214082348545777646313413051795700363347339411933762684078799792804375176576844684808312339801922568951949065092100117077759066648102288781208848671155588300492528712291791609648207249094772110536344781793156357863553267119844965129186141036938710239389455004121322893641126857188293668566156677653284517235079792019531582245016220884497300677641458880360545778566201963462258191051144631515435798829697433791447154048523433764875451527482320225504340332911758392231626358614480704755805146140258830419566629666096015910521736375861236470304208489263149267371136145055447010323615704759156037275737432685948959749581044281071046887884754470661903966695298068811305782302900752482828803780479738976941433267309506635870183252365119354732832172742038665649139125269757135062002591176612806944374551703089958103195201888468850261495470063830589402679613026037494513810880962275085123134860394105825230651383357439992485986623858669379630750662336298202743076058747636907669102800869793258319894132050617724693764355267023788609575567194979400103413487865401096855817731286815521661123278230250391583915059820681932075832090360001474910996224752163777338760423986886278374615074360869200639752958184663636772418957940788563473956683019384467133058932947678515517509174943054554197424995284209172313899707265482855262835041017576694748408783086672819395643501591239526639163969243636271139373381245281028568159920841777598656736680291584932563257086519955434121956779327855384473560759533296898059997211524488977835631168055352548891661720646308948113223379613421941296850145717842955012017091163260960285611885970592182856355618244341776205963412455019186353340377894880453689608170985512799883406796761301032819217575231746657814585614936793920906738865059170369828234383521241555134040124521398538513345277971977443670643114928393389951980421371667415172869611398587186648012101925658524814756258303601032501547100218612233579696605294888069486155778496769035645065459655114039540979040800567162263563890133653986322753828833751266763581700538064029329043345067575528982503525378477883899852548377675821241469674341147535257123958112586572923764058062822858157647897407907545951791191824529273790810214993893157487051827278554408539443657083373621490267228621441854881123182750812706924491774849395529305467660288571563408587938565695612672456715809077841363978861436224852848343519416519751497381366842984627200534374032167181193969161659008255356271364525453171416308033080741701020483716626366362323472428205540319986951403930284882260370222179914523967710433477105654836076600188597316325033129122011465904884267825274625561992427573668673033878730941060010976319311984901328127170084176257029553981355438675295972039314958359706817743403784285247634653388533665105762534616529067689285490514837010987840873161953005250115825816178893304180466570887104174825294702558051933437650463969992779891762410087731663823836458299362001676341646884240767515297152111198786786949688487923619038166585442889670849976647983048265085895588240673153846873534436543750784131375601087191391270065897575361701997969196495143109148909682937502973918107523637850722697469221309173727822579184690588290423084041681082785972119947302270876405495608145502711974310351957514233083254618930219969969960662979040719333247901126988139333171843957343483912714258229458750072293980596251206567086499613548183543447819998403299791937118842312523456174076417101234022717474282074482841988115402320395128171662513152333676259197815768911577325999096838751090682216863240494393512442456256355269987951368043474730957979429736847984669202993398383291704960289521031816348757753845419510852100554337587495767400398896019801873882828390045361034082699408639227176656755566854987555096761343685338086976908687318520688895422593271921127609794257560736422356090569694765093261561294730572771177481259366692477757736742190737446539365979141912732689984796710007659342052156255733269004520551704297589098960407312172728526549721437041537794239677984817366143216030062686508973661952082112097085202826725582363241454243432407370409901204673191714051521355668621871321043389981957202586480396929271865199346069625007005772412619378829772263122679542074159658416518500941918351647399676653090578251714465774450690035353554842636272197041783700225721170418444535902186448436402649963465892208804294551469292198002822148926531953600545456019903289452056189025587715121844115131124723051325153651943726515801012409728356009445734553263722310773332026591926021675526024486426783300490913620927255516323388489301336623787886451928210814577345122542254233120423093670896211132714355733612167879466831635162330554440990199283165076389888833287314685109969689978367438598549986993939423900652150701388557251879496689021541627470110951393685993299525470073013103531980666478390254747846361205486268190027989209992661643075127101483853660962021282019416253565908991355541114112611098170156573541104288000495174620567540127043914657101402895168116379305085458003978974957358534217392713308099277566929812051448675194205482754666428885595494189227363268464438747884838211649873887910629014784727087269710131441513413243124711682552619609354595289384504502946610379778230687607425994928261893203495004429619931917581047698632496675732740652048354102503010085264257934537495392808021799044499747575193024816073136080048973748011793714445615231417822991485333334796444517491723943287593949626240896228164125438760170963716907228663927134686820499635137656955425583244180051685002667643143376125799350096583232746393702068332519479864587600888062801499192186833778961559874403114600072179190968073665697517380946064590437081498408605589825138544156231124374196249735437304249029971309303689324520984338464428168564044628957393838680349813917343645478869324556484101358698060482947472308911741340369840901621541593638870781520309878141536240920783961880227979470696730550889103037392517945864128736089614007650802919226750279933334208553326913168589149224024353769593450296492007869405873831153771343903970207256112235113579734746118024339226584497775003242887005037299342367318191084255366768573828130017725712586327088274718978682200422410253963961107850671436654123337372405229314463256478735130811840056752919640394055306869634223938295285019703860986687400758292963620147267570005049991932466117156809847941100650540755835439794666242845415886872692956441255114119700185860435135196707041608011775217240411679926817479173996892699911348698789308501569017110310149785780210362581628667515415825569615547948762961594301040886671091543986010625655136011569063757860128617177530626403542072986779345673568451352842687149979033529176446161897367495906455846284094575033842740245924863765316642813408525737106627671900624023452889211720244241910476743864522135310585196967944998464343046339045637106618791392466166270841000176508461178566833770902069394217720120109898642959825896669323359210847973991095883872531117639764574602878900557350999736458796493901986245322136991756550618417243002869410474488434977881803510812795511433750322138890607456569420447511857051838694794110162785806390815818781169733276417858886875941255177533393410321351096184747420502621571513915614691547792878392629406448419859148533970490366091730394708309765980816811165737233121457344006603972846768274456318575527456905727284702545640788290832848881796408426557354286111783274221456919062058122142122087953571695027481043897594819956810397535176960973869674495717461861137302671905955084347307595262845412152906422277335068617397606109571561737377115766640392354400846345191283825921220382691089624629840305612722110909918145654158849226062851460053772639824338436292738029629611786147133726750315319521313915529396829210927912398974450065041576267143686906595416622932651679607455588730445090200195244501921668749572539013448581137739915365669049459147389062366886226839052726848692172287554036862304202966141062812455910585368352819474248383812172640484211690657643801857415316062236267912423454597921313601170946783245566296346351480775697774983505358710586614301110953186450394556018825008517602420031382820988202279480415413837373374450785483300770924474177139133282088474298355833774197750972419667248601374257852984681198455482439093208159833207580173247344061607763201837953252165395494298310944370952872242427955218099085205136041945416314792442626547496828500591812552667195060041100462946905587314970759697896805240237374363108945545607461870399374724785141192990338689407102382020891376829966575666726535238913416438429584448878179405154774325674103449164139456600978190653759387905093744417850110587171792156105577262808778982838575852849264791940267859672261771093519055507589137963133820551326870667261009771062549029372774421826886216560579822487763224525597946340415780503680396201083692312578273324266726973496135977178564024726005875100062775326890433800616961936164826269958703067905044078822514956619726024138616361961143302448198146333132341901064251556942792414773780710945687702821095790076436112688253481998673897841955377294322827258721693528239852957231792084719753906898263027194104995660887041577262546181306095776084379385553073877756279424837029080025990135749408377385324606633021394736502512710345796801128559059346007125968557845739453324803390481512515858924570850776992497069496234366158108483789741317202566450304381800984747818042119138535734022571839822895235841137338998793974603521983173853659079017251597254441208018415916135937541378651345616581347725224799363372446647075503634906813109409183469310136270456978611455752024141059332391647966544400929473501611382913989477241937784616056836038844301782652092772494421098327571230138445283450219591644784488831016266197324824736257162499575120285224201642914099425929680345444004120326869430599741768134355534505973820517571222647265707719925514819640374369204153837221547066172636121042232192146975584260243254683261854057703283599503675711339052952649135457404136568995471661681460722445835779818344127902143375453736856945399583012888847492094479787990330456777707717935108086852990355153630526952532564425572861729844304304664958909601220218782655477633687767945475698103375218482215292356993684498409605383923617160962834278735621502440680036451002137958820391916042736280427412022976055591173717967300195787535982129865206169456547361656784379517899564606787754512483317589144216478831186848830041160497978721831605963673269566789939937411195111761767515175767468850870558543170864680132639372959438785454009035622668943469617673871649769067779105127137201609460611411163608012369437484260463323179526117443695663951824194137197554517291967996337851751256366540162416791733119300611726976766252779462636347228402756528179202424003880430240361635931171158299543161681629491385642172174778870404707847157865111447006971222724997583131094719681452303400979092884997276331698351938079142586879428041436578844206180268112683858455982315937015747115548012392398474018802697353202899194695318473892557455199010678537518211945952447002432060202479949827203715838895796558670942196824729057352821437456982966390509946391871620788694000754392985232642793472030063887827554083834398475815223962676496414018008396948672400689568729794897203400852718071372394623194138624309389689851692607574469652797521410376895930843916785602456315871015242535743719257217318505636307317910225811917084830899782409577143668842373831924627154093061256585144529571930813157705847730377148957100741890865702062801976069442011742677915929991246271274086397361349727914818421223293937805693489493560357284798887309959550253264975115253229102101448573397839425273513203018810219608467731232523969731767009469913948136147752966814609090528248160961662638632751468242754387035070185061272929590431731767182079685975837346425746978884479383679154648880318588354966582636597924258073162336030315606025965646035581121951682352781273940686413424742335018575208048266960557817580942694156298091278359788470395392533344978447798056187102270581610174411609802796419560719953214938724261455725645523961050999835939495617309009165635501884240651891538093503162441541681894608739462550658948468939411980025182969573146481836615855529304666072052649462757254885968381795364619081408949408945490926331927137646443898860376982767049973812985982816525220770649651679438032929967736291642607300451640444298512043450256476863222086340065945103008125058563430364529469660359635254886219896056533270369191908947109751720892927160493239506353321574500726301177745341393146378118802579017207606557464720995916632275090329654686753388079799059045533966164897466860652206324447092830450458927073478515469783486454769110373102741407102247901086975587037807680149304159968062266992039127209229299596751568905242433422067693726491133492702029753219016248775737952269173152145267357221029947713725106942056364172964957924543405033046390451313347479168689595708665903318399293335335619246873939787433294567229469173471372336114494582834655535122716618715453312089531886535747016153618029667074021208252485696344633280762871144882282955185289387570080835733052682700899247108711915024693363983795830231304411694659370699091537145828163751709778082965500909540186370324713945598700484810163986821210813072211184287683798976990798239936550327035948548301311709833139599513521254457576632186891359721475531449848411666355309417660334543860801065943216395012638392815387257425003092466446440595490007557074691366572211561127241638663286919991449179984232169075891545129595836399309019686430308744568888791238485970258147274684940769407486638472969100690704607296877504678569824053500368399178476402003688340888318933723265833785422943933789534957971012706830644079166559893479726557609827899661436675824627508006975672323986235808602669942031002959169838415494913727287500136769541599975083261940082126166951162145728296364839833569767922631441909480309056123094645764590918714325407616873974967628827220987168210272523252675949514692275700287166669225296319752051411367008523736444671779559320204951813213918181855042756257511375332804773494151269978422900804350366948453882138440976341823473815202145460671577191835795875631486458182661417061596046964156203468053011874031167844473088818140709403607727317989574910455094467458088285847442974300795622404018312349081970560072919563307007280418989176580318488171924842132599105441106980165581236525036549692476902933319865845180971392989677204582225996088757989472945545594141669437915638969500440905699359298812391609929474592797145807508977930581652233384891340236899651437855236149705492646096070774732295163560722781467845226104567694708108683353373105272141828240166131189937676861512026862059453641019014788932991079791975402931871515285461601486330571194070282036311089578377963505009210764474759010408348353379443367385541103188951127394784969251205044925012368217622863203827233404137548325209687076925312226296993889179568094696435464430259715062392653102041914251502187273819504707124387234449357996292283075563238486572496290807739156840649116141764134676828672173568503315296179505747515085214996255909242770458783149535711987339891167710191004446122995136187605741104698141039238537771327022855601697338818781745782230532380902430304052361174077018824273467633401609971478933684591337723377224092779586759954101129267660614050851418367910295615096978519800721303896314105175479806267828031133827045947438322147616989640782378591222239718960631112501974752411288780535536787642448887345896495311450828088406909301634412289998175728905292839196972889278293337142483090476575975784527995033745730651965525952959522294001925281964740839224517931941756441466153864949722541581144297297408063724442517312903864595577307507977599995390782855075444758732059076360985884669196734213643683287254663108419804875601536940889535018015641057359276172388378842097148524891202995749861434486591915471267749814254140395083393427365845314678643453921086410559390289928371503331375808458436573391393068698027014756774868982251555935421541640186065172032065493999287391373104114526272828084246069176807585327005947231264923871226671208162824730316453981812505958355998889644100971039109680521469642863530669227158651818796913981100410056273470745982138837908934079745516546866673553738009719795435092209604188445123255686964931140528616014513789774474374200017697233498427993630714071629515703823816286811197300244065419395358235388107508496859340940490157850214655947670991054201400277622213566543994221607539147609580370030948996145956953859131047721134257031005697237815801097772899638950978092944338802580200529855425156641923101746975125611159118170442845554754923879681023570103389916158644292166943104547781861038004879509765924990550612232960160990017521283825041016107119043305469624276973449661434278475869518482361414560031192902185959996425372575003094691162898741517321780057760105867657688599242637500182714497760264007834502746580637701150994506075704884261364678863245756250702270559389569222805542033115947610147358995004654737780271186352130337709628197034883949548234189806176902656993608734150898138856963858755150543392514534051802632734998912086766067181088998643389500110611056288631759613895728416897473757545192817809582259510626766068739467870020490462131827922443535648002649626772696930093321502615265498320797451607116412821418114656858785424787933829704077583676391201951352728312551111827635781243682857005980441948141303064011179771991129145866467700577354998235371534006107619697142072668679056659452878131927467723418119928474811092800497694953641444773646482788227843290708299247438103042394795164022771481403036767343535176232629188680668719860076123451013718967684399033165431177869996026578704085359978057837420594708581572485235591787755300405092461650641498247474915469319836742560184143413063254104719934474576543057591902584303882040148513286432831807123102745045186975976175189924338175632606329601693319371937896812417902625983934241375915152073933188731164130555365336801271809690267533505559771245159915133229267047731140706785041246400122819376599298775392933795726227783722446298807079509771150443455895660051345714111419393887970216047824814259206588378401837367942707971761899801129968285437246493323081890025176294890986471042346861608118750387140240585935479053293966263089390226232330115212313466929539549829675086249508057086508014556647667004687328512178290531489219422981961034106061422033293274281372975164403016752197513643193631424869569844312638236353271899772464507953139576616860240597657130485962927065372225416923426226458853827103813234070781874918111570775499394240720999064746788474798804759377978125973032527766909645567413645718120991360761198119781426621804387002338245950072246169270479940741530555908214754045453582257633440106294204622654859338269264225162034650238669077300948849026982455683961234980212065174274835493163208145141319657604921065072907434937470661084704891294438458791340174667029725096952455109302071113091543923630173779246968913628566253776286724980790542123102052431111710455081391308813766069174441693498223379927524433760738223515587956590921190323204714530773383331520373417978400081381125958968226601606158903191482732337810470270762471664145236280181921642235872574978172423170529569591713490609051054324555665872462431222135254760167958124676531988063478234066426233753089117814442055875154447511053611163755475316663907680559952066688065561512636378260296513862994731948632884567135070895163277794584287545451853198070538574039214578355650609010142985036842703757977346969290952562310638788782332622665516300788876670909193818509616602769306543507660075279743027961707013113068721091486598246809510325594359135342401240180555915570909364911674155587683725941420820243892050910636376042110703464044981387056637173731479451754649565504732430323209163507537591880995109838854253217297769360814740632345775182372135846072025547355258320614443317468980702953901899919677603774147565156419948047074051791697186947051074134410791232957455672639687009786904359140408716887092690892058205330243966997997911391375964082042682875323364435504847049712633731048424901011565289818504873317804711474226454106185533341484053330523689563093057315930271116977943238121353526036455409063410148221336609433112315922059272662777326799006181141207491236926801621171165090336244131069354569383961687344601441540356152128448487040893219425858838667110816659863837006300895754864245262231331180218983845006372035149430534781694962977331501595124893352651393098365046657524613268265522214050430371852186776441151789785832459072438759397398902566556562952268222613476131442844692004421189618218324337069169478189642003883748934268347740637190263474964263691723783389765225659891756938847131341851791480713197919948880341720684193335730164272108457729731533885179181583204832933143199644844853408314388964377513621439951947862177833892135753488076620230979913556736762485148799912417885107974901811374079440200556899077308118215332857996840251030781834141229911701216637377573708854553488560338800433099036910036304914519466137276145741977872256241531398676246603523926177400746524168464861991390989739152900024576352979176402674170667506848617618126101189521592973267631542750914666901861438587241775773861402570400514611678612024763890085223083319473257071295849882927198323522886714850279761809699477230448679423330406111567055435121954695627029876829428737995331555300805110014787675613852844607064812750230831475891385069717840296936464556015655840253493775861451369987484469039220281687316468732623810550249272016895478628147236488002327115214985977228666170938875770932891099543954795871804723541657762218221911138727368391501469205458416682171130201479449230126639419567143756085035415153220004139936097043932110866504146389103213470232789279426914603977545650833779636646590578164219220259863203224483476633019761024563507007231814310185444781412757468712237124716785682696795000448732875460258779999504705973631932612114949526340833398778469632274099360080976459575651350299942248735292335179818531614744555042580905876640262171676466601771201677919885382509524861139498029510343406174758529889652349203914924811475215429908740348431917306893704888710390331582607480872305267087351121361790299666799378950264876406582892535846605632911776201320152998587056743558510944348467692183345124361059561288646163176695961964175127875617526906484021661021633742301856191426731568254679323533762124137328563678366669582700030322872872810181584897375535475373763522453278943392905615916437475298344803766116401758047458404804850288910879282302537712165097452497722635582891780856692282257235794602953024043355088418767831689597483480655451271443606098967885563988086058652448763379240854872176759856640873715063555322484728087896164290617933961511685134048144733997671037228610950554342005786060656819968652959478794323216198073285846346321640622144085067281088217819197721588316765412171045653473157597709958895030744212603028279214765983490971400587425438774624563408848799345814730613588700801305335396248450750471877174074760827488074086924117009661823417080616319896410781399847444565691764836980673299477999106818082994897149120190329240145078208463714786867237764481384768662294890220753957879422642955715767670339211933426563776946987912363270710487704192145848857750948520931059725839256687048170670006358513632324588264569112216336248728358332825575975336626719794239231958479667264786836939214512890315852807140658706249453945259925664995655922233280921766311039583370736921695074367015623589087444832998129100786602390861615901498040170113511049716435894912105519301610178469188899350537231071086620384428362736507508779265229551004201306450519716107195052989591458378441073848069374552853045667054200321596227056280935386675565041796914314376755234765693652094496356743823800181241943884284736720598049991649219565652946654392670030851447059543949934241971500458176747147142401923213969027178951329124896627750583985692714259066827405919359016053039195413954569259879969145471569641342213217446055419579332199372878247220865881086633973223662994026839316794859664056599752479546528441294432931074157215273114877542423139907261199325817614296386094578272895162148360260684978067386090197565450776972587386836095665594302321327688009545982624459378580278889948379955713850656460348747586547152663525464286045469333698321570230553618110213399147493719783612685736935971131876935261972157710704010563498351318721876770671512252457944658149959940479019401795260840087780840487199255004418304347319434431371880694341682256928548685037106168089113446512351668835136521951958296025546640991066452721476200773826546761328623416952014520531933597717953742993224363528499898836555338217587822209639511040481778754024203247095547828169402082515231667308730307568002889424722110722447159210094862636712010337092173012285080163498205724348852652781060629213589898060228628879726134072419047615282473308547905317601752034856942816031081762188405157237922858198479709937266320755151156629629156918089908939304474222360953126690174862183953336399040760348170694690581770911841774383262077356122625887100208352901698405912985582206315751544831204391059621592573728528811319958912931693554836871423092218573581258188636049208021356544302628910680437463921849037907185537309742519583981135995102040680987905152355516960613575811515605225565639735336776468941467666748736510160401521067926788847861024377816049220518693421222515951974789495366689385556982514325757624898643788197054242249358094720284927036172052076500257273858963158504642548145722267072870184839496436895629180452185137339684323184397531341248825287175631554526646412945887986696887720464479896657246990836606911466133507546768623654923473992399071613860246872755238386103775292196391965109889432601496236385241690844204726444899834232915004948586331060656280794316391206330241358130562451788685936853911473824714567800757560419194799918745543148764060116446182054640547261973357032942525579594802979994953701733176492888509342032982603789295941179525117122933614811534197538365641370995622427176025164505812007959232106180052552540075479883311502575276337306307710650605728236651696198393151420155715081372267425325653455720845270369510626273085783582359108753798283427387729620475773265973738870854501205769029949296099142501421691729999478094287028089438716182415702038591362323448969408505652412757483837429899000376710970172323746898485401418023922489268152381856101746011308429029660377508080163432124247491482630603025669661208386593141833969878804473977572457294395442767938346695094910976781689877197947563436751811691346035260986554906329089146022404009225064465540124695756717930079770971862658230353282022587215728028972189405742515927053156881205581722020773845309224982773203284495179746202076365505976511912391680270604395974508053150047775045616482383765556345586121505735687980786305069542815479752548240143520080582918186369453974295608895771522420048598227645321525072575129227676195160203759096773273785855451907298041151855943277725939095587067598215884521741311467178019520146998697191805453805099857810890901145497241238796908139904733675947049503142148397850237841676914919073297230174655230513257722457446011966522845401537142649791901547625630543607737105706242028113554376011536620483528561177210209430066010813428991660060831946699093305026292332266108034425967806158907820422797456363388917520743533885811242022949772615857519781098456652455448776084041328731984470054946280807529770365587988845013095151127464709559792700091979808905272177342087660429948371242541308776202032716499152683469520287253454941461386737549800457208922623283970581048603447492469895106304733464659496859306302869145793693668596514795808654366173664362286609757640001527077186061811311162495498820080967296149053565119868901078637453181117741626648910003810823932763399905123785014287653815738618610528422227217240018742740103285897908567093968257566629993670044996085422541967492867454691008973740595038036342655721640188605170194798667991522634840478834978223960231131385103492628213480294025044018805563209790883873627711650552755005703978378558598797730965290798990446515666967516930252857002260208992870824192338559763609057838163193975324512552175123594824577733408383927071757947724044895637776799908606660371792871182725259699747349850377609235256459057331515665043191527220591133533844994876846314765126662471229309506177395725935587217769489212597330981212838009211352633365258535743308923685961083588264886617976625097384772259070763579127608048402577990659380770732988675582033652637492645765282122216821828762425128263572913575950229812310856687925663635863142294066035495192487975838228938277023829797760928054199692076428036585365485568181983082778406391561409581868418727829254425085686489004558838614775608459303997058250500984339255229328256274116235612881017543747509037378579088704183111704645416393030803793966235926883434987406084599733851834644007760211444931010169915344590807171522532637522898181334205466209891902483381363110158377528166775767532219323164817469802108115386671683973703308310794119001297775628037565647706343846235861874316701053277551876861469432715331272143852380069304063282440343208757107103643620638949944228802825505227464004877251846797077587794404183839050294513226148281695043101213454874238386424609574362052657725533619979975787943673037545347986985986277682472339520202408124700053631741874566873105963861340190849866711079829362166094346860868101058795616845035116591181622360038836640850411470611606559525890279833453634163680459088187480806880400562551837057014724332729301312347874897932786774053100247020430428052956100917156400191394841486265208352408940568167740030773797527138818772760262178207968380663982826330972930528644212578891020138615592333958389565954047961385433037281859251857559316724449417356834027679931121102802523609217033235226152136414264882852669500665878447442941484054166756521241026216051912493108522387287832168215734496680378126540576015746699928104134733726426664871948098467094343179566250792629531590517532665921035441992867629417434574029534188190293027506802862744594394833648959524151240513562425148933070020964511138117623989804005463571214778457108664925991301049213705164250065964422109918627091450441382265501333005269170035603723114617535446823380526059979346269674328689678790860175281244499766988383954685211659712581536833214364637471962456666860871099511186196982149230195581076547660211190360242837061940088302313647388635203504408367789518683722831764795865053911815473538552731386983152771200118529633231498967243397915425187085127124404177082284514763795087737986870427841368496333412017903553111140987086544086404921834411860207052466210362412677284890606163308260182204825518349148047622334173433514753535095489022773027535183368999488133512348105264879130983048154528432662459526331239512845737360958481714223604591894460636954185914050859757923383698205411512223413260239198713726426778551312625001721388331491979359310816974637775954750790913220463243854845622137535162458092793350075731550274991895654835264162043290074558007464074724361095329976484446176057117112973213896960495642615225896541156408293369219211525764674596137206087012814700189526228775722120138803292439361817618419216533054184835640395545442208829331654195834259473385992191849374839036484732936679348546974055459601341606791542227937325778004620546891966411962973572226598129488889006289851922870440097034668597558375872510803678759455261304419637079161967030774400637701443971955561908271407034651860396328638066041199316071677047506995735033550648196434788302013883600700788056472045131709783424116749618856862968458660714909499611883487812442594369280304377781344569749228310216849261536066932627337704829796773023665629165044404155679306333128767441637681846888414183461577158858305112182552152722192497155093867966357394101127130151489040123693462798622901237177777986379097482271286617044798978804738400456796814369146406559038695641882574901959976530402044345600582371731917949618667603705109708501935798314018563657861164784046167948758713880304078014353410071526554999857589132924675297793620484221303880296680046262297725748145566141263011877778545103337548374229401700510311738277078269812808090307134693063853482372363970867837147635341732650373952882460099935366631016903486500868858707720990284955093826039016374698131191485425059262815582808343597430883338524760788731830974733485452846826273556416912845271515285486809456929447995961480001081444018519161602874011323612409772016789610015170695775988685231295835730441751616091409809235670489957311051184498982805741536691212867533520019063635892412531929820143529705853267820225695438977614147241840976704902388512817764808708000267273092502337412857444067841535369192131158985518029470963455729252991863734682370555971128796654454642565371219106060709231636064402891080476160110980974742344266220049001484877190028616615934851161684987282366508728262080415828168175373905661549955554879993733220718929308045152232880947726912426645894598118987318820978919741423834500235030451417928870549917813195896084954029425286316550488305250474321223113771667584309141540353352171086609678087057510168550884610299504428041288940757092531850606459312598313103653863878075301019813348134302805095291863751653684432691882025160449773738444734594849836919927527340264158088053549406603369719783941800781648760685453529663109750651845255135826085004643801846359225659915147784615201835878117891255186416909414316589839276354501805264836073852662684289983605195883622937923707635274413154724830723914830123273369624287616379451387148592408206968340541289841701604059525757180690158306661502710332780292155397659021443168085980997508519246871982980444555054617422356814715763169407991483389990676935757958839650979869364687297986043833250129620016655485882202464745397138666018822463676553875210566296223926150046628358085411091149839213258631164403031043055176672026622862896221616845129208636285706074719264471714733732168209079064433350308796883035467051632717640834911299371845330709875670192353354618406484086155748331739005068584733922351083282900307933639140576329049279485386276536103403691652150679803218418051167348388849154152644730169771261445571293361318079462131336754048122905894098171007974722275632892756073165596155196446112756531017518263200597802548850043124478778033332243571828570877355332889663962898232238609846809076698523757928033651959294507416436395387023148276713268921628201619231594302478532369533938616517247550956855292745778700966559238149733938782237393981801827333381718352311748200128619881753828369508904663165542238211038272116913909463155390769392780364740885706283837834286828236749389895293337623897026158306125796524459499116472705039394565606110738155143543103796554737228679493504083699845304490933903840309697559772697039687009132808289062439969106562723488875849424943637717173349380521503412303235375907825386837339766692448900528976396638693981485930563130055120927909449538800061753448118575392394358123068390477435022863960089728775570163670584907135423575137373977967531753575985802506350055883005709081980156335303174440724298249989758553409123523970710645170870839772854781135333964557598720019248297596609783103042451623200895596909923230682324583163726165995765259892848863878786900681135719519195940554043909652707997658069278116858490092222449192106880016231957706104919498573333745485640170885245804180740703774561966462281937822931753370649949285716026687037264035326338308149575350334356928032734365063906572158848402924043603462534514999857665089242129952976617918473953139955424755783041803338813492428137703765102300902251759808996213462794241880789372258671672808770723676713382422753390082734043052337892650281310867296269233787546198087463096173986559483596862709296144661224179915804556225580876876726237019706550086608566272627121741646698952562451147255568464538653791876186162793138812816695274913466289291384823152822083109065565224030521421195463043601830174255406699226132427802494239289243334380479371621403606864400201774285687811929031809131280823917092626249324063720018612843177735184625801839386786855517947255410736355137178317297635879070595738054063178732473811470892733704617488598355774253411477121411299463590713971517414549157410579761066479957108018773513774164105063774065016516244088844708799829033178566705802614378984786694439868677055152172060161577103508922702251747526021677198248165422845991131292910768925974788614034457213734546625904303063675051801017241901713915789454800326558722759994533090699157804387973802577821057992585922663102639992988235317041336819083741823769541604123710606943750759001808594990693118444720386353941639007811588812376349463116971503394008776526496125170568257579448874107350197125349506245162818599532951907620168652226455197317675133210196805287169171023574089363543600565702463924151604471654861066662011705215092743756115633512584833265955568438035438689786366254506438008348228098263822170705800145290005557287169806764218880423020796591454997959651669179772709904582318193797669416820970745322885624643725493382682496965107153791245179740151685890071101456234926086977856631215666046144096628410172213596691943062893560001722989790907977266418200363598259728508750968483369556715230504385339012502400688566024879952198723053197544491703080437033029791730882866542576259301560900500393875131584025719977731835411072226268525000809977540485915968310902094902429569377176168787413628440344089959151064922806405738116527680206178553622088785488988567270491786821363357382309864024694128429784214191296215775635806540450566261384424421442565275356859382872726345230557186881268938782325182123563445447670605422269840982554626904722785775949084835863129076626225439939764055142293308247549798734697399200387830555788049403280089994253546418608416017297434144652957842805543937770393465824862135001164214170204197266454082264639767525280536461734255444333878746078625478715900865632687571121025198542951047670689478593394110875769861316197326181345091106703861974446396786630174928371639028777424796921204943064244132484181410964446246765707863060643638916596450155482370996639964662402731028042008932093792315349895428416842919221128707162433782453532533968377908875296879077685240445631514640840673609821893151288720590052237417715746014648659888489099850810608029688228969414015565656079540989510805835750004697091203331566652083137816655651409114731416054539813780832882799471911163559211622488922155152316659864602971805292938472487861847270826273295854452387603266119508272228069154750940043489843778492379318444463384230914320456348451373721819453966714274873654603381239260953579456098360454877039847157451736530082789500223009886868950513964538667830957723626127202592791886087706400694087042096840942656725849459058005519437404684663513641712207825846950401672373089046434978725342544010330351924885817604811513437018560391154369600546373863185668400457420104358646796657340866229383310894149342706434692930361408394740435397266388064028331130751635690561050708741868960707446543515012116451043852029629396985771132584867841558453197427093024107104641043817691204256252757867846274476056828922798204440764695299458411920985650537181557268274688686679872774203033876522399827846998005261954665745700432238588996386350463401412096891777334112861982897529405823602817510745556410738395347727732197524879133835658204250449603636064752491433204766804400926460961904682647171256648023402814565289957237334609379379352231397653111278677164551795109033532294674476740507535144472510516214207024117845163877348032117580342826724103499410307290885468198167700453955647208938282334066988122927142006420242134593902338621127551315658285566983649533749853171932500467401213787086529909233422167272610762194694740124187736011705179930375846193270725969658719592053409957684448243726214938060798896719522971910808585188058284372682247530815516116079422135068767704285915945239605164628464641002384881267004025282150916646556423164440056824616027666457156634010601623782987424054811650550415407664568580440168516098719519071597455541960694293908406488859906733839558460935838545145315312735656821097025978940059876966885044385902275612391257541736172079842729571806203030060553567209411515327062287498386451327271203929795430968307586990331282839874586495648041682417214397455689448403132494026297455239505240970256902781522413254918594004050955962376217255704056729031806621378369396625013229791160776885499913385719770942257098102056520552244586968456948994056814496338962560977109689721343456036021010361540810937682208670745671949313553131182471063187681964050438001599870299828589309158418141129521672848191924345424588222870503183426021809472530058891809493607145529779505898635416068803654330238688276044531159546180804158005228999409003246537604908634223983296479203779896239613270149984002534992559748614543397156938162418444120587160823251238144668562476892304052486843078787499248492905782848689337346889394583248105977374276940525746127805667635999481779098645570068556550915771134486944065194089272760778931264829392741027692413900075714392467727993162345193888247696064021770256895076156880567482966307958109096368268753154892494039252504615435120417643959361425093603905178124568253668243951558152730373781547574513968079744417740919390348761695035840972297196625028777721244770278402125094898540481969275557684037113297013650899165499799736247791870257189335406317103552983793657049637446882601061765567112238534719518171261123685484195360313851013656789026873896033454052067955242613377176018601471475909184971872646846809082310776719510261268206731647688230871139456266721386414509303640147691683029322370123767923388092730727165108477439118036846378343276318120218492466468465676741175388506354474412024109359564967862304096523766113429955468901464717578321971870681189384091460891741659672107361367006152209134746740996203960369545448641934305252838803932429398219625064680965742805181853460848857091758405326474257754617781224794693464275711646235071810462402720167002588049076177867378196386606179291654380037865540278017499006567131278235702535072233465094339625147364969438521347947022656536063895264481891238810032525291545303710794991326476042472125119937670077022707523161522176830026036749811276177074892032491390664777493485045970617158321756779835301035272430538706657243447974825655007861422422837984547027194197340641055304498960073911622078308649123546224793557966555173019231111493307755072108982096957356455016920667473370619763958570652631723315893717643941606290372813601598378298218955282001811954538898698710244635601436258367688136636557068050872391418352160514238511811586769647523923635339356685121272124105513853565682572102711762133068574711364179661721197502030651735453893841499558929361392835715139174922679775808597110703544039504869619403095581888174980874989962981013703477654330640242340687729557017487640223646567410797942251620552213069984614715803080474892192550083204918245348440696389637751114351408633820832040347409380691453707787403347807875972211421100419173059922282217953609853721483762610806325696779406658253071403812210870973548002777108203319116694749054561434673154350835012723323327380428096231668251044859710107686874260755193026253131037125829670527199433999147838921878279110857277192140502871789431725907091541330249505122064455238686669237919481529414962979141832415497948056712066076801694161761241331773345169194930307180267348253177844049695492234564116723908677354461583933135096041122897384006953959293446952294462269867179647080824341246826019006463210640557981724131113722172786053520156943701604866504232063855769070918168130211390176723331177372335544690842473885487821674063817702195012150683319779466705532927551884781795254191737406292390394823658176927708307415316833997632679975622346607839137882894290546457349677760312284799004179320855108382698257428995544580111454767006347444396771180033532688871228012868404837598624126723697868911603078885646588370064084052230693643943349760406562394366681486500467280466746226643073707428981579165823093562997572571363845069394598927108086634771911974363668253421654298189046075097242854837772894315482427750409386918778832164462515955185921770119238964809672782284358301321861318656951301487033067344344628809122487499340882894074252017581914287379058844226986837129020858102790871131565136744865440927651457119373954796983043180938485536863895406903903593772367717078488815224969198781368816127097212366298935329151799588525896622402848947841758406822314904740795206035603769707871328716159646866567906158944720573385210241223993301235332737567278929178469805998167450773750644339732711353330736773475313961415356262718952014352819670690816274081903962135417187511060606714884131184341923481021006900386262696988532648171432739297243464482515383819710273742551911616835558835779261349410639232216369299852606343783608779674419403923583066466526683725113926766644897141828468073359179964800104906467732564215592849924782813139938899231278925090474283331798359651814564678383564686145907966534227612323275603904444428237092847243557504568670111575843039587513284712856326543682019535271493674306736084420825334378333876351371384835069022733624394640752264691087736062221915038690914782221013031854439538411948876617911968505982943210379969855085810067550240011983348603884683275392113840923745434253213714142934410773963081887274490562811064802869570481142257830513904047066730071290329125182963784855896843321067237088027357396259654003630555016701752404865974368839941203336792627600711055986012060429907001320023581208350180136294845249404352370199332214513223118872901391679500642594804708619514522068637730048229149398144467720715905021883548224530889749363514005683913875865113944574363297199318281976489338061187703984900514759531259384480385324584119907797057206678591994865229670163986681495060146884743822547697557722566726448564931296569081252977325668667001739570218171364701685068108546441052568099254234798094024555724405192697251371994044560141279699190136722938685819962371836958089663225891621369351211290449391853481325844128789783904122163625897424544311178913584138179525271323770833507633538758148152599737354512598856869370376007900286397855215395081519990749736538303049905456745949151046647193651122636832770567630200189420766516641092076520047420522544007310501728436340766686382085388212372785427823830917959081616397839011957622248046042468388540812722406116340176508644094965258886706588589844215926089739095067915038490429095804638947207480618024631169309141610466122760215224253306810342704712016062547869219010445033764472585671640789119742403413129054353565293093629490217757987381333944440579907782681697548397701698725477545362008690297767782582526041629284167029153292950456940350722490315791231542596204209991563519292241420082238019799409989579409458891023045775860070200448770941303841924938818867282779187692592490875385842414750975145173184517273018665809391498846096112676665277417184540364767954175036027875592906575760012339153330450543471819101124054858707566226798464037974636862766449118474090052110913416035637107837775064470111121069946271312332128466825100644847289779045498472613436039477223719565129464542139021318370961212521572542401681168380584711799765971144847088069299042643477052422055504347974614037457973096436267797373560124287270739211041255747136227727586826938782027034087658332325005304169626128438185274514215982022475296190439804499212101655624744407958756086939317078744965286136219748194533598917979787468672198894832425074215590002295006215719137722744462804029266498561506992986558343017039905177748819490505879373003515995074454388309279260722330854830637306596555698612163304834115551732427604763798530838325664787769170367694784593210564895157878960569623199156212226528880867666473905923094261664842099624944261169128514323955568565595247143630757743982582465708310502763974784533663035012526697566927287170836496834873900735447564849460997828235234588803231472957242270196914217433765100005279127033220856334046850405659322224594577963959782658411694766280569677480903996218414100959085297883113430638343683828639203079495793097617436480315215446185306600503579456802071275815404704475762352786093866954449798732334950489253453246342674614977713192016479415265321384294893871913970125326738006134920188249865387877431702185144510539279174595680468357712885395525883655198193741174201867218607093770900325491901531709618175884311343007170996993326924049199437728107795704581640674289147983563137489514305467136574623344163557890298591889291812239707594348461261727403271715350393114082489791317801924766415889879444871965535060451097033980318041743007156721837760827242999891394270039494421494500180753338046236808398190015170009791159025725665994225721477287294161270474842803875922331339344678119546376915084759657738246296159960143808279413807560118381156908576119060811767943188049400872180301740013330463796011644180267184848564942996071651358665489238946326977656025068915190332437871138488471683904711041419277011720988869432827400137600561695898174157552169823058759362238657890998805292753857206323362316557455786700748889031127221765189719542742593177320629129234256590261003480752969462112889533808632535636567373936800917303731247448912917147512196222782319147356432180482549977358288748647401438956638254072948654556703111779330815027417151211929838281676273337559516627773985930722624112770869240359075608304260680738931853636125522037273797032525550051052362883474639988296077132122953840760011883399400765281394544259711185569782887101478754880829095727913344030146071198894207845813004564754527738530281942171040760110432171190714282372846959932220752654618363419999027079788316108764645008310794875557041358419381350362985074185007923092237944224926422408828333078195952871707735009212393908796692858173125074708450831962806239347864573988706930233139856529180923096784264166057115808760546166218508803040011269954877319368241559822667451002705953162908275952073364180564891005514098216269210054040614641463629631192288069105853432902777111005744982372924317000242604766608107871766381471833627102562635792801061711418738676281348071599530108533735577731952487168954522720664090148421421906544362512586432245994059420322268130702882970034444649173941760941633946374866129740051948535050380436154557221092268837239437425367024141407037265026620271050396172021449633061446599791335224724444113778227738371081084787333931499712505760388225328067691356745247111679395003017609769033639494053845197361499634672368839869682216450482204555913261565348541263889171429801958026307428782703388349546965764025378093819898348431551883292134758704977948899353148905479868372524655439534960493791212078947846579533188227556146189839129171470421083173747115565640827816529758812779361167647071771167665253684813573270946209163522912202104172265349316706125365045241791814572714832096410457248045728175514015555578516872015793527036838431269095651363386063223887834528821011729416635491852425211920620352774889060960660690672460826904231522005547215802124253422559689190907503439896167312199193704502964912577006574688190035552718473084812952680043685153015232261533609905479487824817570760627123036711448312744193466484988835935181096948801848566985238175061174736684611265817819736985598770884568585424330654369913554020334200988643355687155624118770571575423365914316263023442094510125820119750076763850157177003821815627449486013640403266594176411451631685965363263888705562873828092711756786724568893514925537772660613006118826281658365050154165289678967341034586778591581450499932191024116653879291248675273615638952426494887721207035404635176001128945638233675032692600245041255225623292332192910277147627614352958949850174594251198995650988558562996546644803259025376473993612065325106010647842370113733727312258966505190359158176114591842354822270233579901049454629250018816331524468894798011107126557435129791521140086662723852016157420734529828326483626852202888759494245842369902918804670825620560338555977760812644618937942348050566982607174862197257083218661700754475156451704171009082618583273351431496494041893588461427897080363446574474587615403827654852000236437728694302211526652055874378959716986577081619191146395361076563035873370102809529529196247068590969490565484186758356895885129875704296505440334998922880921883185980958398336718207219712734558867309626274683918666775022211891055526393002858238538554418308468465895013460068819820430146953509269449966367527408667039785860244428926855559177487878124383301254460383733376973970931387031150045902724318997138830274292700001439122465682403259967221903648678123187249456884518360529057445130531750567638987751141295965160568599688112337975041373512931529851000617083504061268604223044573176159702787033219843307367332117055717821332724776556286586225204856302409260278583056460131640960120361957710028599267309657191168787545071715016731407315130222536085960074339601918072817842529226288724175440750671841951545400657552321565258528152746255090139511776062413747553139718840973352169432173274937184224743278364835794059417062066203503463491210702690326652314866388453869271959936339776627470866140327725663256212480100472223392710701492229667184446853102668886767349614931837541181310167180432011946164103008447105287281769122492383350942282535890250049473251461722577572331709347859878029146630600567803912891310876822455045731007393284826278393183808274547731441578221599912611134771391716141798026162134861271065884227759710177620498679505644140953067309422559584878967872422969041291817720950331241150608831575061405105693115030664583689265564724929916789738597685644704470501694755661767474028535963913421008789842599301980632875983778132346012892506522327596180090174814972397526054453848335231375268043276518718992674876445956736030603369063781738462162854206883534246883803755207869206152097691665957147064878144207121244040823813321714401171433071229273221459021709824989490318320863053487663306644871357781814812457969713802649781491993373691582388405932548485262449397332132179677922319991001681428238010692305672506573346010980656696445512751358621019909246125268544461658536800061199746878477531648203182324982531497799081337294765714233595224920333381228574914991326896374986532023728121858404412641001992418786424900858902518771487811781107265411892043144608642960298161236365094153802796575559472258692819692464410009422242663447864945079142393002726097445888837333240976473860302122875954874268561425690479634563685592562823229713151751222529523085601633388504805891172404052540073635265273307300349146373214936821965422943591492946521926634985738775761411408629102368740052762440743140074283417823625738368001990132113436354196807900659824683728916360559383174536907619875190625369482024750526599816821202166260325842158600595567847518591506534152188721256586486355553410243225721185470350233884500697264835389429234870118397486769788019682774330343897871377153444530730728138359090819300859268037191468404372490717919874598550797571417518710195061102324758965622186771909323227388157521950481958840952876318352873536602724577322608531697111077642977949764825909815690213367225552495157742148534238035490318466359772970206895106570334063511582316751685370750153436731014617056936510425091074642824537229762755378685101967891367888181351365902100102035631592004759716650941720708619260435503956860930536676568871378149371463113952321081983051480346236940928669784360532228044859466316098965066332697455783242565441637466702500175173308615042418152800626939296902752285816279373314974323860314224275676087382992502224298177765168270315213031775763211856291405029945463802647801780194346702513605063930842988029133611267507643989498283936504058232866891390920259964641349893339606007023628686593114136726405810789384091402882324961362459493742010930395481989653042995292500315959162982472307842656868425761179410698254725788358418839870172046954754818224120446339573067707382543766571971521523317866163703092108179756214336681473844857392865858906653064698187753761638799895943449547201275399342908088132109861787997569564548788217478627536728983175406682524058815844492214678047992463430049513072681852345820278317085185411927939485898014382064649410216431914663981258169574582566435315701505682461607066133930143683653827426782492295110020350056892653669623329742796694665547274229527976877825340639552163424370337938985550577230174527113499477569034533598378666182447029411412007424895414831466808037559367529132516523680764381478709691621547116919436721840134329696633292930199558712500507163949515161688365635080793842654398604777577899373764620343603913044460071795255068195039100346497785125699670627956768963679763717706682119215179743603108222356441597077084459995852622217450258310619481534165750316147963715173775218246538946354200443188858477754560014282393120403310865646774035761000837445821682360735186174934250943796104655414306769436121054077024496979207005526163529187228827482464943905382665318748867340756884462173057814201931412756306745184115655155506265321281376690068813525835801093185773751956775146273516800564899238574467810819098915373671105727898359744832599760725211546251433161107381383101815432247276168770716730552236080644899137343813239276286687203437663793112661266024722063300453066481454777861600782590225069856432401071368347652813556058576535556143827530180354598315399194540973309624579993869135098520879370745784369631904744576732111194378638701006043666484369838355480915011108722690978635972030620072178569290592786507332397058807350002763481640514390079602293425381718302628729495772880546343299651791168352071182937960994816373406502509993657352847266301216046318611943197305793059598051815970929526438062564864568380044964582236124932308608330032371415468776266823322774272931043434511378427226326827395980860656550725442290824714723164187550379119099477105614684483493522800240951800983372071809553288714030921802748787359386197850891812360103470616517263119394606526616308911955311718347011569300316318753142062234661357457711359928559956777289020869792287975334278344261088867824689434672639374327693686631634555987190577907735651183293217318681865699975076442066345156973751803519652819616809965454103680523404189714510198154199522505990908106425956184870376960289384036199454922947034690996892642597958856247520660582424036446549072206458095685056339575151700132203206827085975275412956798305355715955944422338193062925198260400280155546752204738627450888197955947390766692690649657034780419059945506933881776078679618438532696517535335516913948117104347805643564697262769102697353418185647600940004879301446098416046593327819236212734542072008431948665097037228529345200669784316236507153549894392385168784622308836152147526448989958667057631737552327265532462299088334256145069936580557841664128832508459884580621026295117378831799272492060262973835283698969826353375546368933239801776442974108273646574397928396452743250404722278212604469635386953762001175039734122421079305800167978434024073445700867168905020187029571979070778255148237675428969332354706829752569589036748786658133339383277880887904908146007622611179789190635944948651020743910037694570249061184411134896534454185278336636289570160522311547332249657802578513561787292515419423089230678227171816804838684333559421314345841168215750988214480716043345128794020265680028910531075784091505976534534600065187287212093522257132906513009834319836669503258197221989536847597808783993214709518159209212707366244215380798665034015455370820753517017146408146249545493937045956464746444207011079516556434912381936384446892371048625131914902121916273047963499492889557635042593292694980482434360875960393616115209471301144005801155009912954341012518977933669592759875648170069709502041308918641722951951948219595301240313707288206148677326851370217655985196289641514951444551670756449562449992099469565904045901817006022809536017409917619336480868808463410815308948531082430543328337797471802853098808616247303067372175749136128546556541185574584100066312858780258409161455624245116977176135328405559154806741378660223841098273854955887685291805053443804412428303274489769448420390085875883934368479975787024874890460670185967737094894404968315317927738309240768052224266254261036242782474596473414077137587505837020445226278511200802125335733057790021187362757410488032364675509662567526618570846875973458708093548074071281951498462470455320508942855850449021417146153092351668604304956472013239083841393343262803945762977729332566910378013541992847423274670862650383953256659952588954201730500770190130120319272465773484439262584377145722864058334240803105748747869419254709445819810020241533051232983944093192671294095157145311733601882332965620632954716528312248865370526040298961744479119758846537474404925057807895055021243305907164370457825642175700229001513013903613845311089541704130738486858355999086617283516205268621130846648757010284158061134336498777621596467180252417319283730952267090078277643867059714452864772041567817523898011016906916574653849936072845003253865115102623379116331652749275012570115919462795105922082301352804785890326659496092695009830591035918714994057737948158636243910521599105477132088120803496017462238328457483256389867104389998719894473732874448696666662488460393962851259542804774810941486038332838331381181707345365252649667353094628865857805818227362895818439863013354193961949484968778008137535629102361404506591622085874159162321008421242174836779560757778850116433962274600252918849240252360272414813327770454839578383670639082166043860548447572964217300605654463080004723939777609217641620947647992073828841917130667273511605540000960893768013950455857076366066070379789180355281408975637090830568205063013455794784685092321013275347398069848383914408122067365499845358084671601521831325332471840526485693549975916748646764240995166444601693628012612474206642102339711957139018408054135357313827411405502134385189768523333877684704859816031726386646414206228203345676995380751180104454199941282827917199744954769421872144540160736371024857537065019142000242186401966432468626080591807149860121322524392410670199323923862414576236101643102658780404911874541272338552108023988905443286738872553722724820626344958161664075240594380556483033958111479406808292879745350502795245099580484986472669058060540746685635670567156220129369015060402168913731997146412725916356478425981869404635928752678410814490214361237188556703559202880053426676791829963600892293331355821383305842642998507283443202346079768197071374733244467802189301732370903080629920726474065410055757082646365316774361186197289746095353688728883489572743654719078999866728219441278041701650871107692017870629913531880475340006845925711753380608785280958731657980372443607537665419244913048550924792454946697195972745833932638004872950399577556471143261358195408700318026880426747871452251396512697189160306991980454392474263320340021108806027162391900898722133392851746770346019174662493229361936766866896419272692393984765744015714946215814261131188090526767380401200076820654231341848994455257805815457457329610417345342935173811398577780032183993379521910934434545997700727418547701917701827222064594708412929756384138191221787854109262998019046799940118358713969902536949121575611220755740860296731283270536465813159237035823905964182276470312943003189963526667534299710225992084875883465793838684638858061673414928492340622194658519060538680317882219959146751024176518491090040001360487111436298190522195334520946641142974434733301540379634748138680513916161355710480544931327451378410476104186562743614578041112687011242319570816791455264542920828861031517148252072219551126411355856059419679437816693446654380635473721764438859155090225971176040698211791293494528106043825011521448086137593901411751275013292192260591602224141985271153451114030409172346238111353092014855750057140255352106210185162171806816921433230571843807544443449051262389522037997604418320798002693736294753714236307455314544656015804171513925399391749489057541569676077933346163317378880720883210069605764808730795727384039099855675763866528538637227907402832975303193237742739316050142649255892917755748521697496830145383773515013175568078331149575833447546396142749646489156908816299459467998229415461722857193851844826910345262850654707449858293081051750234650138059742677634763954139563254468066810522921416142234520249145750451851242409589526659193943321465118662558602776016222679896031546453667985154651965949998533461429530788107452156121847201351486704261001534779086875937392555245800886920637243289750156925483445020971957553241189761716491388051009737649532622418686600202685696219667617920336939203335691724839483020777007831459945549218156646142122219680670912379406934840242795188436544177285089199200129053172104410829354011763428400483708981452205304452059804371151035697208946956755747742177843429619715052222007606653734778040242716861576264899161362684874754523927110547613710907192296227289814734101115111756197733101908472384157791212434451514411919096964302697179957241878968978386631438393517583170737717892164715908856075822533547940870830953415843611243474042640329371721905583890894396953362626259769644888027119517395220874951054743863301726289274684687914949086483002811527677875143597958864083362339733127993108377678212084195392644678022217643313626790040107799769446956816255204451737460247069020401777235617899334484313854400226998859924707068233501022324819566300732875861335099732924583528296687209985716149871562136208236346010612153289741831560668836674637847840331077961477019599197244846187071812024996498119181435569995412187266342098411385119617244078959477502976745881496760289494026568610079156707926636995636014617947407832254357436221007398013003018278044476308546215641445409514860457742393799147915043764632550261882785662220835558867336395788833528775258217069035331268206405693097369877201664420245138252538603134924418206051802185121188153173939346771097768564170104392158322461108328787405359986497882722852648253429590654306837208645033435098281627245215912825469776847394833975568605898599617290408794297709200225081164137937507590080965242371579701278529978111382376118815175457904392293907708088803193130835505972524662887935260402344174289193670398845751625233491342315877193477225844442180046403646726083708585473425907668046396498671851133680661892915624224667544543901308409945146998464408346626138969944346784453630628661907427402777230557412582002686642568013981418444278067262247455063960371372691747382887729249193668368064333500982448911338000865931899331993947255490885224000043710130248173402628095864417809199316418728575488686580090042767608947468542628580542242152074302493004437138467172197824450401846418196363543648073830267915482966513597120912269294090942682020165126332839706324719425872266807437723531627048711168754299499788263248139102661776817478891485281881867095538297716071336168409307446872382651424711777946701874262790634166590431523315094480884299387984864123457693643108059290129266712776033707455916193948995116966956659815115983646071733617165825021540370479948000641018144385557252139113693582153237044331036883601068519141440323469416790297967750211836594821153191016139094332425068623720182487695124805839428799407576675337360823434708716892533771387172848450445741802449831717521783730605421128609391363639049023055027716558111429003760105923108088928485876963325409549866293351690696532843288229337961973336796589974884793665878387635855063417166146506085094498469148003110809565680062362602813133877948269004036089824450284339711303212968029089238891849328264103085092602568694062341340854122508959893095863803392502801083811362304218339734549025582311199816536735908785617263856460900279279243798825036283477623297084778110359499884235416176558268861133142654470787229088428164907149208326229150326601548378449268747300359975011435846888890332871700133797538296126752790540334912526656962161280283717232566367365900519110506850591128283459083636928142792470595324558827609683418350042547230719102886481342627976124550892410287256113712681311908642268722092948217184790243947561164936276151825769320623117972261848967463305232934073286621418207938551814673714276506791089365129360684319597729163307976641831433711957802535883206892465761906365334815797114576659750239744236586238042118044973506855043437197215683859732564823140783053109246590193285350964384439813283960453307124529212492888695550331542033596972225995374467704474360852801480270140807762715681435085689295960006685202617021852479817963053188034886338975946919607241140682173280032937553903061393125961568635892945019837396590794717553073881547284511795315400424585083301620098531950534859364837426383603294237937938675477144537127711356527766151021508275921488946697239509216058435338463294047676115390513285639158654982669930944656562707224695331970503764996479816139247300594105725870387069733285811843206478559377368288249252640560683344598335706755648894079235761528190672968132351727210086521602105759699019720428477752257992806631861026767263380095382344045386326933549175317866864340098214128833358024817857662267672770388440923146286658172343103191919524328416625865185968386558992432817325031003886137098584139806761817542316009671889142394787335964925168104199741468371910710700084814534741611530748624393182810615686520989892096990796838762469447921062252200910745203695512569800305196579661222272436502023413005053257525141788794675998562809528229175912280323029454419000210882348083064963326726126315524555225128375240441876104354359584828637325192868657486150011383129732641711816899338491231211418045665469555023806985725798602634289450668967436805134292162022615045563761944858795809627351298500972976428897442347124164492169492564566586044794408419095362395812661465539876963730579028892483528230572584458496943144972774498881132302602713741229145943138938587159869834253816315712797070052764314240271104422533160728194959185106897430838705576631546124768618353292055313822939815527548321434179807037368141688278216000356252133053580785339722062337359991013013588872157701181883015564222758056201223023662278824161902086108044535460329120677923294591545548327221283595420256144529869998144276434610032076351919591302154032452287767975684128932178187960081031963496569843755588766809272204112759190733408157807133680765615402289854373779002025810036356630748417494672177851770547586879226056391154751985108623043931201829065845258130328342554541393695444672326578206140626369924944173095969636617301332271837369250475793622671021660360235958449026859756752807970694993154845292520003022403473277582099817711989769612980457384369769021381981450312211534225433714810015424449357700349448136234478139902711826073294868346388880549800220109773517414896799302434234455192003021920070100318060272307096245388709728432541535939713439318405147936644186413640891740385295757532525966615756282647357280345591617836870105832704501391402228617591923719575387827473267588919084097440126402408041056365997186123190596366082218523383180148133680026681070154658795462176572925142837363745591048975124352110750476558291501476487968665442269016077702422243298744818825577866720312281052978851373881926914795762984016865376621444358850317417103188856443007064973473177160729556946076221403631395764167465326899313832992249843756822209661849316108167045583144508311656258670692392830677431673257202956880295485978529308830109916036758037350966096962640180832160744834408975082039689623346947141167304769033282994277829782817136358759141879316177878125046686856491136912677106271509074889643006456508416538355716348068507679971435372070601196736234551647757156494760750123096357165312919912206641327558857638257030873323917514950134844535942567394025387596160664569323797419866161057680135538212738828846519577204245855593920508783165562943990088302379632421452822739153658746930360834210653314761100432335865073569375701883369821321625759403190249355132871276428676858693437040473996839501610625597614844049883556030737849863757049929231349173746401425192238224180422992362761503624652479679378950295967366724662128346444364931362169896068799612852384485874824268956619798786266510027991961240578550957330430072421333228634861325994896772317885094085325088042386300226590253265243400807403089186579993005830744914656012078102001651294245516385390823721124711330095879482820137969060766947973854190674906412926671245655792225231515411481191826527263285061902619691074149822497408303663914519306233493577943617196868804866656952366045400832071710733345908612581525888112051464142895086963772715590322811808044638404758616838621691197464341653120602333622916863405377127471319492053536573987231287054657603369648966045414760279557169966578065513560894260164791536150792625655734787271419374110350495693366063955470375498463040475201520752609238995661255254191784331936616122901602109708694000180240237313992222142061265426930477170201778064268600713978438398465003105338281623555591610012024178232414208084286811897824460000095682691484345774295322985570583038841430050829989827969644228778384423274875301864211225650837679051807404037930216801537447857112302330586390208957560958239871890637924034744468425615018211370391711354510367848255967706386055605304674464924658547276828589285535833171994177448391167153903226733165905901003949312253923188008097125470492150376637652018606494811767826106984789763248280640022736869383070283908874911253234884826273694377644998734571870354555717444398836276975096774597834305784938415291928656280077965425425190079267505310321538914065046776069715437303908980871084290308425779715251935779332279257618424544629310293512204589290199495417181935066397105102892588188504655971035890104634401329557710534899820596133152658877462890055537160500741021324301394378072941059783077242412667965208590501936744235950593989545686455164231407904302957568370657145600359567512687040936789091248513399059599487375215615627480913918278980297416887217177442551870600880531261477522713760078139706826398093593732056210515866496639283131853890071251804946258547734928045199268653672481735352907756533345445850515324256027884824454280601931725251999957575538223317346277760284558770668846340394221921858678308907384425370531068211285389273611368190404142056133341669222355239069916345967460921396372719292516425171155075216242903263538798872905692259950788440597426376576049016626052724895611594632904462908570533676379826012201890720537551086988568032824247086115970544493038140574973227894963436729908972367035473811336812210997300108712536503323742483424004210018897885765833279293941052925977174174412668792958935052715542531083450661742054098018564860484034215871392858385956619556968158440092802127689006047329961902908970132309568482531751559313547072635936022913011398623229938246555402302485130687999229883925807709841589018877459232318962207244728024035303486420708715471622660090036756417363298068957496221844265217480578565802952622537383977466559737096216154049484084753452918485079470947878421023642229465200530754230499361831676990187915675611313353363540250345943193596224168269050160697305962139744131485526040381853778179379265890343317892233049851637179144348715043558514132141813735685847823886971325615893431242676262138618206089555607290281973309922992880833239116422511253800218312517310412253583998921334683293147985467800429673484549931899509126726249912931797929207911050900741301820679705226118184712843703651019715860710956553878155651486808593926763643944117347501339662381462755703188997369679248156297280238215799671112890507847323918962656945376897803403241189668813160908598596064396771918062422849256602708178217661833057823849011303627032718106080062969334822533071541951544574324981891654445027308699263015453800730488801376089057583127140633920750747958624048904514856426365397120070058711471434992692914770860548781758719230284285945240236006923427182346891449338134173780010164963434251571082360175485301834803943486134424237335347836468220745478396771655818104913139351845592660939160109370837572438801111508834969024282139885223949374862633988088516921479536277508340078234228318960303317814172386602929723556522999714044102221021480885938979431091049489494536594886987671608316078979239036496689144181959142514142728044130505685769049463966323636544673174730131702111905888145668211353092565643792609573693276403347160288511510746001090505845031018252915945935186208060525723571580632822845046879291257615942668858364845606436700992945359123876313910712433017296015836815719256037456958306041819516501716488222856169362777169772878374829033109179454759524381274075213511304396923871501266072643335269749502188123437834485125728471206207972428974859914502540780817081487941302988419178170805435839543138341907875764847373425162224010473097854980590875052589006214639734198511229141602759602779024747345947876231248700858678502590196628421641726629003016210692730130956894852768487555528805404591646896114820654260483783493642966684532392178163730787454172857906169113313578023741875338345443396964117311351218816520161557421157696461590751262967818768668907198681448110267378495171553447204264939261461363439374215824578046485159541035778131764541055911346366424501585613670930364849237920555341321185545089321952846212955046802079420944790208666788525065941839953065451501420195816734389560524917070140244626016494863400579799478419261304013581139576846824243679046730753199919766412763050602743302976699617846883522738800336059199520748496219603750054211815204535471706327291140474202937989816991650878735495941203258410511570426767406274444467684227718629570053562951666785068339218029810087301872811631394341758862817900160490175868805785717956805379196397326661873745797233261392754923225884993281733399681430636509603502546876586098133008944464772816164943957472917379977275325146474304976657675404467174817295371802447250758331649163657060825519592149411464333657574467379368074305062455696710181282601914921920656487223905135185732694568468719000715833438650842236758051382756143752281365377234326332273303362722769753849546101725048850233255187468444626476034701277372316879220840993166106281329510368211185247733045193924696479640088449143948157420333972607489581953355199889486856549897941247025632940466407078713962627049111830240150495811577629153792854470834531318628736962568324637995042687689333151597505398232790113185048842082762155942586495119387463173099586220672228472244931233507836471619768968353660580230870301123888411091908052402416698501080994065880513436267990662970830086141986751215751135172060026987688511216533156599627065537151352029306544327571413463474935286013438075499529635283710998490900256693723899039580582326828289969805730366700398451016009335868380601881206535282047703727458561135059594903728158975593302457311900095060388854983496490612504126182396562455971445871969230920146471107307337636731522873791778428875342001701284073548897656988693040692362025421484676680027297244007753241937918395748039837387716925388567471595940280161664843684591006224536828035737051780322976283403939098858276224823299419548256873695532211611363652409546082637055569710514510302399098840948650172041957184212092296287403520975938178911185633974161378424164458832475357331064061089233626370659142964895943847602558662671903532200962331110722444420004011961847852380585178618305950903707854449314239251394779521447217609268357059149901878168807566800008622341693070179417939038267089688209846285201236253648349094271244312190989977279085196278644655255401443512413864440868352211987295920864109606031002878389621148833282829826631839923124111524639351382320016148690179480661502888206360013308442114229924801491530344291371802584894366117417287351869563188967573321796658480368877419215601698724976956565756285232131616933543976966015750941136489780014464559811206041531528516314033931263543046962688138483555216317689721440467735787961293741569608493283591478262481722495837006841493604198039209367339269624621317512692708291755637626841076148755714797635494023988829499734140874923604499524538979872232334658448263896708193714376565471802530349551588803461296314285486558826943799701842343168440230569348062574454188837473431489535639497223552652665287198655621332025054138623086338363608918260748614485323044330039281037221032249584695920295226462639655565564809397171425412255305388567675305634833207258509636912644375880540245888338774270933373262663078537398737838943449217547957130369422257142662542584119433308842477262030236556346958281720228815246826857485633659341288009676326114161315150994344325245569164050420689843974382581158104947442517673855411859373823772146555619402418783745623439070371483258915450565004306114303409842298384826655381983852803624783868265108329451545909398427771925181170354446272698116447543475249719320113389958651309770508260340541867679674045671393700622870728323406941946272575106377089002421135232781470854906804235515822213199063868749117769406675722027180645239358608832568210895200018810494428510164445484219738451868893506757047089613578972560739125879433995942199436833891159977596467504243966574406356504382443127446519967234695042294571292706444010841461166191860348937845982019174623738524546374720082777528554401090306872276904011960031533458324473892903159771501010216074344727740332352859315329216816054007240421590483904282747740638620411643967808219299447360272362866914523699372049743190738708699633818661863027084262666760250373565223858173217373872081905234434948016895564233877999634897788342343701804333244446703993535021332043378654375998813628554372661356631829671749587928760216743289018512588976121599190599982222567557323629488780572154000595483431791496396700038352444050683627608891824672687751672109288853642562482437756674296849524704733882594579289074685800261786416505177739798346907787632636578531706729085974121158089192922891352257664743243578303629242136485756228566832637515972220809882509031587139717560331211957874826771130127401472837035671257403081222972775495516527174970476670158132749541794826957421648338890534659923265929943993281082564570686871935567880203523868598708384459172334850683703417805998527275208775263325210269383818671986817394934580820537684460651948836753704046637998979359743764607710636459441663624316841178405142310835813474270753178680353837928198852413164347553291796675691039132402624688731551404129650596325128560702524115825195964609796168580826631986418279361175823118702886050263810309050928807968406032729802698705341993984051717342044558161953420680917572892644634168503651453842963108749300299165315036612192642682928182095262120762273218472898485525938507922181120059424480566104604161550140959980914314331860332521694220203664944927691944340886812909267102686115797049721469104659440248297221216770327302147599244159897939486483942069184791241206557034961572357050843214019480031122753321700744418317319439651999259660893377863471412586516276709867513252089844375231038369920339917014112787864621589133800201399663163728950165432376470730880594718498406216549283753311718322002096820940526099449951835605519108618996155832956421087446711183144622522439766546129134794546064426655547867155811657890617521720626126279752058403504666596213168291731540763480644728211017522133536770412669192121781366450844362174854206166804127267018548798049081700500368206617244862811888943877952744557829476304345301265202916714426289855089868115403472967103138970352069038442439746366438866407773953218170155401556582669195043412610368181030350869982059802126625147602654631066977276596624903602706153525742248584603375263336861297094821939321197230282110011609403244692607497272986039500066990467853275208570655721653265810657445016771204487547181888319311485379276906247463719479492276289263692292649445359597385500436546154424044502080532636901943248265433507057453428321810249741477841905990941041493107195849225883820870680317307575262609404975150229226043151948736827481562716314282190199144616085852028838798968347253086990043699575873278157573476583200569736189425627661042666720420954559710635966081509510735668972528574674917668141127781075482409525862091155540281452560572498266519842262153495178663041599741635713159065363591047900840838465343961303211915063785415016111715298214907307051365377762561228752915266504489272829177992734452188893105214868804511337731133906992694461503233192279873413331483939409126631986577466827170250629380714785351306451920158623797660352801677958338727853395525345557873163204155400252544545952035066366170152509074771946484298724722319843425126890506743707593667442101647014440882142685875377200402486154764653521449324731957101152799526703572942529539390435731973418794910650808977016839857276169974144387834374555075326915815321887238536738879905940121136367440753851001299155675528076219647315613825035215470227258601974054131331978419834151906631857713085369180878179636809410661752902387558733029244031481195234674048179446527451865289533837858704945443003186874396645061039817614578926608143161590695692115053363546950940644012031631541737653426674733158997331090092434608432256161306703683268360463163543844790618949877104575448977168309153272022800430722677280570891730085355092552445406767571185748566559508215764885830414664808863220189647017175305453966861685875021731005654825437343970204464573978221096399226013325669955800468214886924774336284539687626644617711011828226216020688644535124627196433781085714735718221404780253987547161976295220755095214507809603738706923274693664412442172357097040981496713010056315049599396376824978987200806723332115075927378032536485657777138156146309389648417302574123529751739176313415311661458210710700949214174615509817424353295996639609654097189832970412222342744433352966882572551214269544941256152704264035831513510336433940147950269094803790317489165516693159652442226049646664332214709146735681591628174928738441377397198647688596494666832902198966409563753037805441751621553113500228537241178599339663007207481360462436177405367539860745883050250287174372490386923523701332567089609580358067549973117054028290511554111887680774316758499583488870556917347293875509817526520153608652361747654447942951113587285915580471853490286563202170568546292697100725460784000866761576452852022769026821539813744878625574260392297144203645068163675199224911117964283265419483554063522285910391424258252591373316384074729608203275814711232386574492478366584784150191565855537717032856774521086137571695163530851287953700215648984040524507392870798628017721325372686779262403826338958749134108556996673521725490606702662511262063219967855125849052903728286330341427940180759222546305933060233674606750569419579595783233592779795543846921905362645824992656021300446954279752053115215217533932846516847167188580512059976921621047716216083056881167336231017839409719898192707925954057266135710748508963219643593514913140252167594266708629691622422777745385179362942909719186363452724930621948044583243898173286400096799786668810178239130040456008676359989662741248116265627981802863753539792652872675170980041770195962163574448543678050335044504557574342850203468123972884018991159993732430613785480035820925453985409416356464504174662564608796868364415474721991267958135217917036394461919878752286014340973206526780385663670089962733817515079603943353798396839974212943971282646182029327017526484415375132724707591978379573350036511625074646946762639097581025221955745380264696195051298887225890000926040325496834913502929674333527278262322764114322981589036784617293199968054137570926363176962761751889980524768474109879406779285252872721694523393589159370997380880933597438694261618072682893615364660221567585892442598027617477343072118776890695210630433148752571505818704991081470222365785001818957428653353048247009238555486000524333085188999066989738326650036832593963908373347683599609962960254375041884456231497949407130572700437661401657318703908002998131316047312956867282463491575182785092234978618309308685703647962158251585300285363882824956373950634311646265279475652894333587691480981777942656635543419891312831961282121490724802381116132185027154153465089286598011559679512092018565883843530254671340180214333580476634842507295832099155493534044528087905159176240840212211279649970647098041169930851072968187774576321788273572002507947489741144053946300300568782565865687139820093147461213287648501375978706413333743926581217162905811147020070327293606506014725271963803427668792699970948145820260792184246109778699302368398613255722097621987300761987137001935252728674834371209842913658885065545451045258795888292896315552992060186586055946888918242737972768662969025453487048302868113920682717267890827174795071992323595148380689511344923905021484615409925522089202383692241386236593852518026455168458956421913573381478404346407675505586399808184100679555308473690968087796557721740931510684672227231946150115400055120806383623322291631920765080092519620426763037486422296655566526607709051050539352643581485328382718716664393873188820537204185444620051928553328909643120130136497898982929685048598037879066870842687670719305831128826146742847265779185564657845321303710408486272408958065064461145108187235201894367067292790584040862168978963420353386974423021385644205508956523781795937254986086745949497540707064213938683158489258200357445288879823088770220321985790171547634313324547232014691056749999016368027357167121107783281837618596429077566661654132084287588955403215396716627369978285736324005870111653814571574686413196533837817073070356118554352486127111224543078461353428270059502142759764327950179586758503789353217022798920959567624366393534497231649670523293225974544957464370284546003744811749361128179762197227878296206827581203139099420331780437215241509795649732098108678864406668888882968947444125480282701964549861661490998087699969646725575777320333264846223609611701748392601345290781291136412367876699774681327545694580076282488257435951089982231369005744840562393798162826816975670833391395796587687704015665196040797389867248892955120500257386405651630264131740686991549991069633579106403878756106791150775730492750582480924373166395737927777074866069771980209499038593327679322385463148254522964718654324360615394076499202229571939664353055238393539169002281222752663089740333971659734380579961098883567945372370756571845711729125130119464848644892922447824585952245819335425908638695496999117624060446342228912891252050367112796944041680255730666381650813501656115155397561821344456035626233790733976934657858508390986322297211321256373238541997962564871144114185171621568406931275917085810452527238682440393853902059967248226671199033464869911179220984429286729827693571656611871639815890147693937576494761049959230067529306080875846969701146428087802238034540963366946895026971082815123046707123451481869322574839826158585314012469552158796019519996596372802067665217376861948553902740897850907171892887651284884750435067675317429312043887227004029876770527404520190916349306161845158152985190676880084337266909902355651645425165779733633065866492731947410242988894958585351304676385368409718974858832754781233735482340867639054023886951325627694542347877408478098591450770979836207916739194856909090958135238697484445123227860274582821850612693866710349563657213190484512290986640046248217251264456737379820634232677759611370100846098575994414592587200064662429184577177137698699443428036812475603461491215238224066161770652463675718726819633005927290489804337256893420143204318835975527846958176078016545126671439093299398193415536982796167589472400384917231880300279685207424827686184781240293294528520834983320876717582464141037356312998766713085881431984496131820619505401425511595877521781336819113259149089208105614868452048442147998496495250045206600124191765902437999241619446721739004970060297841075060779214461791601822639341325901385933392468430820874797229983790247507612794537935560535589565874447882149868622660692378631111379529791380588920485031637809154653463776851137623112683351170586792802316259214357921408405399640916182357223974427408258668335874401590554838600162473775622823059635692551577282247323888303375109173896652029196985806120077620224597191046461567244261594025536755649695762244473756213940254789092847764353164302037577113782491873887102246040039392880972134309396078050183602449573189991434347165342073906360687694229642634555196629256823955890355213357730200709823095982278918305450002289961347451912635367240303567215962778467087527355821627216441375938741141782486209058947635531478550949159729531907448818996425619577977206683925187773336835743277882440674883885317613441848642507519054849522478169392351339937458859211459341581796187099258908056792462179027203938278179346022108296220252715817314752413082177408364098350439799824622836282117664194305149291215819781727209880556055422360658189546088783360520430116362339558373653694673150184412303295764624981570952150348043473892223338631707348270768247869924731251159027240950599909484420280365769552332380621507732410647536453151844767452175277211045866563363962095580894219311563805839947136492298932850371796222464691900460821419618371109756648749649851899761598274724997639152449275445338096358587352199992109393977383067073527598414100117695031731557493714610750488462831143254343109238046224823424072867615391366556267472045643345117704252456528966009403300206799121663162136477913582813348909814347568363664306240333449749021380482013048071683903000797296085574878658326973789782984610294457246686234360798727767207044491237862109780441470790983636917056863914045654156348035790090771025843785446048053172241311650511569480133671226139287795172603621197627495819939482696774149757420548076279141157495424169373172758915449386210615524295327118959838989040407239889183314218830964363521817534806091268772247158369093471103540727481473702288758456570770325134965201960440774572782320842367700013259185952012451961596279334795042492590206831815515408904789730429112790532244422704980823060597384471446738438446250136379247115185000608973781101192065550834364631727070830527281658344876290347966746562098959011950602045228220148910695741656182834540092087602066449443502942354964023371398924348240565974585341400126276883466984083340794303030048220009799974586819421986573122792115412280092659020496536048860984057228277114300887163747793124743885516661409580712199373575524016259631327418196764722349333630890350075755458960856673319792216296140460931291834935214929738640715500173260458015972386613441861082503722270847816666121904131760967028018670963680679420295121478657853249489492003041782099208187193458226495555762919456429666005735687490541797455766892607247082752125696045679306270215773087442853389908446663367314306685392063689899361897295160050280365655424568216364076647345673603055338450115509908895196766424423988640119621006184292907760047914317494566949959043813949334284697236905600238688274383687045576348776890794031931138761184611035464070427042928818928587578224261349126761483716945337581298073938053285808806997977059872936347943250894555784856593487779759738997451623465737445685455267851835105115187852237394453594645882634848572808498918455413209827258873353206622004215085372970795013782168436760008745434838970421254665460778238429132087655863291554697217301379593765539420194169180110660217414589789346999790630269037556372239975637444742520242727005183091338023352986991145105309683856247592558140383826553576284688836666265903388719985989559183575594127875853143039973368368857078065932001754779102084852777442842845705194024974834473816094663992995934214248974518359223232739362303078142157351733345814863933263878578558653249704266388768804779594623825301436572865555696551754759048395810224907581064557264501539511738359432468990767069425494986097821534201250682961136983915992211354875013752962099658014895028176116604174601405039520051571587683407620650321148752721144171686995012518249891200844153553878604287636109884877508848386399178710843151372831826039367307157068581999647790766063418384578412833548765135347693840712080233822884239488271344801498364715038067328129260115522595575052106605039983349761509339049749006254214025764894760560959519074166743597411427366501159535628533077151027669093711536740570161278599406283159197705326573447070628518132427456301331153034707234060460126446411553445901636551212670189899673526556433014843671174637668294882266152461865180165394185787197146152380090804104594185923667076624555577236278273354120420179761069900427491466212641121298133799703464949091849786297214681778924509334494876731612012259275813795759795771330867177117461916553153959386487271096080695919593821131259123990130363621255089851938469083572323639057183510896489701791158797886691019933218802535911940627315370287173005413451336602919597640835862460636888159260237066511387394819107691850382417124416653925057402050608129387185955210128275010560134857312154571666794258466047470461553093210700662083131160619256952800018994077457056992502639181116604442282705716642324548049002332236700767945400085102215975752744042406271669966012940825389014585686181190614041557696380685444585757842949839626001056706908910609106811693518839468711816461852014400886177048922114736987833454183964834909539426392774300744198460401753954087983660097318403219137581847040401375971299293967196384368947679042960482298658255654451856949042768940165594694600148956785073262768320402724367252382672437905134946123696594901744490175225318669110562273056481986962949799125021237157241545814366499039287806071453279723175295743490941400500699885265232321314115248135599893777056492607436945664581338698960560080944038942126504944963910875124609872893414926151802824903421733552867483171199709969276404556587140817414071194468463771432947749569349234886148281837073174314517145195780101931585101484040380528368574995236005555481396092972984106916020935266392569082066112411955942588582057515735237914017793602836807426952015484528864657169481103032875177523648602426776886921860516942325205827365096687215476327418208379557591372144406830787621633639760817403663546266672443198831367665672125353461244756999345128780285793413515049079722129274118249240042719593426259877726430104014322144057014632583666866173912419495802219473333941611045488129062845981478713901028521966416396404762646461226102352673886324040790915541073913924144415904479489218000106126130793102979998079849511815875376730135115220485143131262173965122119500316074360966312634066076844608591923017766904362633475803246460583041092481794313907820399330198274082115038563286116024100967982762550427461663482743265722820137465974921418735420905097383923446355535924031924069591414461555727990633115375542837848895357680724607786753196381970899877517970713428761376585393223287373516423701852702663469578894334220008906897104545979131131273685557049973026205209606659096816219476337437108964862832911440161632781233091600299781120966510402444051839356213407612148139124024567366992041568223945625867042812530932942810361392984164198134911125798744040746378648927440243051394548867722227807062347917618388687544184999792406272212611669184674180034024254050972796098961479876594722736484542862968928784708309989163047996681193785054851021850027479466956480562899722702114426255849449334115880386291230459938133398638256239806095840250978539131356440068624300201829469500285230756784263654058747130518641506816835459016075738252883781759200408163033948254239565698755469497327951370051878474646514267210566300822279484284085010872764170563524031135397715133027095812135357056483231890233320101509140181596356529617906126070762180639214988098474405479448780230521564873646450336216143411229856915596752732734489496405319910106520696117750116814709217926395808344928646756433965824975684335407376027379520492198723980310656687412563603750513053102455108376098718244484725562111881897124693201548834201720391576402587070432378805148244815890311629789612169346442278930596564193521387548708329116972202169531895603674193653102159965473416059598023009641631225779334027488532407016107238840527457804813743887826872849812353146089167737087661904829892576693312838350114073417518174468895387098101333679385911101461256613002330302523591771271752381183868654751189638500714887251016991819801759420707307116994262599872507445913509946840014512306022702180170385081601111515486456465707863827308638529421830552784596423181810031014492109402414899110463220702326383626907051636878121610869917364309539429003554549943585659536161896400154729199260893523111084760606909026746101778335053532182111768887687886298891691639034676789922069063022169067714437456199141746014872064344510400293101229765787011025813995710453134561692685270408547354010743940663416420950298357893305713837482359483198031842185531989226782833281458158219245958834187876071430429077377662557208436212169243598409065968695478309740234122027098285360018159479840052127856730892607971486041082887312781380029547875284578779479863669974460762094184671897466816937364103517762096243170328294254602225461500961308893260321166220470509186230035006727035172356461912663360154149919668603462320679826117224578645279820750322834445344627051336650044413826923326527488753380491690565991194949972494881014543417568630901670129627524474921505683137458264591810756814531738070695080474073106544054972429031497334449221784790227581683925092066391672430658460747621199453158038934521172322497897345204562819346983949223135521051375335658504550669833460146000216555701780468821470465932709442745986033370648008637807967379489791458141484852932481573459471723890799629869853061518197184611426592255073028720868858419963442397054555789414497655782747210227712609261637256889197279062777109677414550690933929962122605235020719022832392230825816927851931810174909601230715660208190169252161293418933028790775519991746824415680639208418435535660464225436687291162752552729166963668529601474711401710043704763280502826658900194400917449579977832812513797085083324169678293024774723036392112146380657190909093313973317751524983754085590283778491658171361959429998746158979159444106250912385754680204887308149701616283318772612471084417259164961001233804202728741431655177411344534763951755413384920815522953448324182527388298543338926597117522410346612905037725214273409002241439868644191207601797386573067520868696794489989120447694642009383531263732842566353284134182392958512556795601609088656185316911901754696507964091454889115340831094660778912624789682164881746236068979467810099301426612477981101579515628106916481690254334070952620722071780771349713054758175108900149149821694495337596813301589203209131305381858075739246717242743426507383090051821701354090146767478620901731593861914187189465636117222394522971533064499951358394324636802947801835044051148232985018264455663196383362351076283877969622017614560966643242336648631927889239095907329851515032195082454420763418590444833516388263209332821013622667623400020337746032286399835018981547094706823911267668036470241308938567591585850271017242600605076452886839384316806360668192732707404147287251170547823329327647810217069269146323746886783264666408078559545952604554483702091219837681989988295641417906436902393735319538217723732544007552171349370520034622480028624067682541665603066624819428107200161152590389853230531801532067172914222730151985010009922324793728477472160043247454430627498160752445408403292716089432994676786974486549894594155297254734199623798270851956254084238183594713866205057179265073458205679894145943928487113373062818833828490231314017371794161308434063945968071447809500412550184163194846257985412176775280125172493387023952828247087869454882696551208454002529347740018094329350401025120929271364896354480804749709641337590600048800986037191824510781880346638611865712197704536227339479578605834630931074982569201680197890521432928334421118485283011395987703615035147222196215785372496882825777502540979272835487980238733159513846111865988682447926198116179692285358190274336305588771391992808816288281153953833310946897166416723719426474592794395394295907848810486479924484789874696760420279972112012172456714219985710996379655457270164113192214756238560306469037272676497733452484124615047823735600545205106975871705423773105762141298305480417596901400867400290190524868881484492814644733114108924082016397305509845452372266531761230505748842547565044520660021914264163379689377929067322149949332749031664696170245710116890632747941748208433841141736155857401439790896051282492585813150406340495513060951608992226842670928473497800444509687474644375635833910720195600075034198769592660128904101577561942519386218513561982016738765881212145781128224573053740236438332175742533123740820957477374138844561643026603341891136096033916722325501594599723202772920919209914080567898273819043221283229772847368454208873784055574143384201771711397020508463246855987889422948976312778340453501567267557625048719436102127542788450628693114588093694089566914930241084447255832935395619711167696447208707897549939347341191508535729053096600249522471556943658930565119807514214291208794426741395812542234664466905760775369788921039929786643575432603566543875685942266034797165883325841481645614493081475925860661963633543990458444515171864798630359557224232900339664723208910819931732624138172922980391646086840974825746424626147027839961012374350849848465851784898542337255561060222574214157396163394874301359920905705898779996566905752867700270682760291512585271172460450682820588114499005418128389438822650878777095360432936312387097542641188424780734872580170076489821512064843119960670515088850438823752481551031764696802443537575853777711559999185491348226822369413840646316369863701478860164178866080658203462539686171279403240776474622629354723997543929200298874149790886462480282750888908988914557803794387582027341903771515518742906729525798431256934850632511575088807614180839189645229075434508066423382662521055018685840109603736408761313330845691274081357078389108194189076642062170560905691697354881222864012395279762455464045095543013761620553161303062519890150196017938221908418262566764786675481205948821858397727870588244153696614979053097914039052827379113176616306657702467131583558101886056452905519167833617281694208850998902835302200215687837622033217243305179538417875159535534383823328367672405840671763991301651427288374411439105563069775197976979708214524330541343590853595333930589470030117115060206562022715424441758228907892732764972034620842145654735816936848782463056528195057170390370073632692963379777532764164960287606403517553467127912238556588370962049015593059031678511488562064302765966514098459205178613910378127698425898635298093402881152407998525498242174329139926434491265851960741576202732141929599878882052980571002269250300717005751540869523144280631728301487699611213928720433272295165037457633371558113590573100313261890696529816133827324981730100227747743026160256053931670976015003317052436230122103338591090467929298909536469352372060007927890206533415509546100105190114477501570057606795711879818144064103575299584237315160621593611158915112574017327684583716386507359301035514778502776388235805846142772400089797228927152197750555303611188643277090740766068352254671015091024857992343995588019297503337136757935188872987065116907670792344997629439373655297036992436450180342069133432442461202864107585224434627867705483622786951184701994623077027821797320270406088251560225623614148380379972580610923241015187896859881018323674109658023144825854027154282092443020825034549909834949542994925218900768274620179611581952840470436862214269780804288554119618914642031806841896548659034857041116973181135837375166857395171617891824277199609857985259457126868536734654199990896888031008871017988961883095980641706318614619750018838284327975582270786422853784808620894127526652587983172088739479347621801858468822008398393730175281373236878817852822149890661079622224801803380020720800431132073084370807774503484079803960681774596077729182634957286625345019414275329418959346254566384143045670152230077603821718816500103736984647886454176060952950556988799049057573179165986239069832798799330852572449670647245625598723474509114221282601829639837029222768298106876310655330957920908809194110456495991415060070880060849236551240690708704609140936831924867944596588286360524113767424667447203894004052375978701615228901929878651515433544495402683107191633482385380011843527222333968049637807728185684335687773610744837106591842013778164387536702698306881559319590470604719798984627649341491188323306510705131175793143487212297049073808282696950546604066109872539423797269951340339273586017703168362919465100256017633330466717907287074685944721358542915152086638273739611628035243478082881864243398869387757827363634237090468953363865448304367743124084375590023644381786695311947222909884704895394363801671918186099790371732389135407688711806680137228941772835195514807949988018256715757101203614507222067943471257437615511222435297469622372888869486224184714252124971973837442464882632762477244045512114361596559389277920978011927346678055278383345609384824733540013567053574379739540816878557498345648046325958735853517287808543261464801641044709546007315719632433469051049222512876370079080167955438331372590917521926407289343215169395866213404551107775956546072047485879120891437890051962596960919124608486053637885428759576541522864632644531629151568676668765810160891107678713728471343450910016916237288325780970833820530658663561174918900251899203931231417063314647057163871285378789647661945113066280301073365063818198403390089915692857446614529176005080832103232101451820222523428576455862465762554018960448724060508964529524594038490253089983264778633391938022098816528990259565768879027435079767003555060838514110969018515902740136074598333533317943103388875536185152500206951614389090679069001259261418300271803910417242504487304825942104796174848490014878940800013595357182369488522420256262417149247144796367211741651301842139465545404870581754915436720860876177661533806157506251841087722082700864715201205556109249346356161030305284605778096096963961083834386065584426810042629617617179469135528303462661185737792796729015574705366215313803922166817241507413493474907964244223085732183320168869734032803286246204194164155226788979811597736043598760449399410841003055801679052834720710657160287815530088170475579734243807842852980352092459343048705306936370416942974868144237688408385204159870273569169192623166916873439260612842869826488744531755286804928967041550229652682244375552474937183391480164882942467499354545605887038620792648185650992476920979426511636478869684847593344477027457462056677416852989616987239108779456983570587165661086374636144374832686594251019204724128320769721087907166179831817550424815156470910391653244396940000140077316391560002854287599922630309400971329234694006907789565747157217008642677689778000639798914723647637257079927987380402539514190148926623919839755126512161850213711755818921977952148822410208839925422757075461208079280662414438628789846636551603776603884016542978798423410526116380122937155629109677463210199445045217651658367619110528491157265540178145322270981603975984398375006253448553313536264793927029647023550517941955838239498494119712408139509860877354357673670252493711350488410552919801011741666926139877599310884178693658025957132292550009969720519112407793094574615224354714423958388498918837202155941633049024585623127881902324599784025992679308090303258342654840727334709851066427398750675240386806680443511922723293176256475425436697777842935843584599805674606338394602247176326422429317152128623904827840112185131264347596785590468624049379307741153641037614287634207703791797113700751435465127541686013660035678768240273550265012331886457061247518608336323049650614511341766629380811336635765268272915933606135593909850770124800350761633136282640785681834284602671874915494265195085219600044134555880477516768956807549805420424431510174093048991631904920817855066015756481877030970209653038142718350900726496890990007064210365909941173504798197172751262534999071622939231898162543700583480104443306024707883667852619254472622239771392950812964078801081551188511766533336567798144012404355849779374793506369694666968176616510815256103106113609124645877415228757174731464110733095282176480610902470857427115268685434312668275605648615890598232867506532987669307331862685681911325154351616033676020413263606476152377815428152460067153216852249109550277716175695374780415730952064737775629175531181794456070495076307932548859215827737722527789308675905178359669323785600874138657231452583238878368085205435772057986743368948434608247323049673615413750290900801633506707517363522562590279172603738483200362370319875854976166041790355454291707320030752763943770073386781693161850826546606196129288853509808662151426025733960045852697186357899423717750025949520851310084199874585884508817565841625955126162722734688706430804587750118883243100814645136958827110835046055826027573067372508440956705184105007326432256649250399126366091617580973955678749557026858765630732089312145061485337520909178883894402871181218978540935694215125263354874658632327577240022555881434500156755004577179550612519546771279229066635854491867191877404189534864550343552490355509788557240049792527755517848936229183050293088507301187082400101157687683075636460275169610649035368061263845387303190173130941781981807566674210881123461486426997721644403918021631692410551500203480416471203413112438145466749031484666310311816576477819327456826314867225635280107987669364287344285273067038462067161486238488617464700649327964732601709597627798916125453800318661309756175579563063041688117087506169884458037205292894531910465002988903950630098220913883598295729278683696226112847348170215044781084771527351757711579410024384019030655879753654307857050975566252065321223897010300981628300565790859762203322326260169229208146951321972259588680513929642238462148655119372441686991774809816434401009366503817417561025429978128982508254192710603756278530843068353818071894578232182053628950228702410091508603360399682753082705998639457893470543609395003408437897686981333449086017116793181274866296027329928235618686657944083085967536682155510076297543892400572707506640585434966149118861151750042698089195461586894505014538711154886216705323065067926705542738457279302903008610062564826092035524879493521419334327275166452848976335620539304456496496937846473646348214054840822601584255963903372742991555276741325922524089522278674990673368502545338555185364457281785416220141515351618040598114022146011886141638748008138239786846051685897719404877532811389127468367253855741050898813440745380482356786723056438689634685215968078982324272961230741837706681737264040503061098532143248215922950033990165466293201409467416625580670001887465634498586955428911828511831403580498689829462089720639294267715718005073664696083314188119216685164436818614155004563887114831123349253923743646499523319792269979607704523311151574937729942929739273710424297765018685856358048598295536358504716249514969909947017859994383803134037038719718056499896307931722427189375383834029550848649828089316639441331160148576262903396045459264893960469372348651473196810808202540311919378995846444595339457397609368382728280082019153684973548432094613023700166777888793327607376097090061543700044378170315669004593090733164815904371171411719911495586785886487735264016843809943248797122460266592890487085132602207384327157233210379392088977493843539947812049391540342253723058730080345719175505761043505186605747427348598333585655568151390736208951764349872284404981877276695552164543644453763855431985430759752376165798347199906513031251756617922024752915947853168920441154792928204069740625791397998363705229730110979135524434702223286466450291361517749134541436980400251352171310600644751889087036103537437396637995585244305042523738169923691761188166120288830681039123969847396158936977303457568988818752612417073619968155710652405616671999812917492048240494458124307462828425627001591999583319373491225857975496334228232460470454575857195131041740298692583439960112035862094396997274421245690443696046179062358828114867942257344778707018809611675420996199744047306892232982744680681692312376923100966488327739549116024773205089560974607496677442294022834810626115646261184267701602407799876844799806854429396426500132310401105207359096832247007053142249473989385730556409263402368466886697567475894090779524418482986762028964084325881738919805745401978340151032848205892279479136535290968524902060947036639437551905066183444018347980243532375753070078039804298314183991954203939386479773141534514643254703061597516374821946291611020449087322352880404384995078981115682617554057191618215887348756793757495553985935751024983489215457606228480895157350975399867055794357541970641503467607100640798320939041151106816674025174019289947747975792025351019511028538266083101020357088841983099588248938113157768765481031210307499332424872543935156346327715779011742184439145514246313857771859215263625530796956464372460524388571630352644972298935129288949121690355821873853202645307424531484338656190045810644537486843157124708168881185445034169296042628543230600866830518508124184481831036517439277422704011263508500960159215439061151866263994189497997686595001999812821921483394101557985198021423948582000160850339440051700203505108408521286210800240198381681963270864501162476316178830317784968657286060311079456987465590691321746857574201009575651524606295088377834328253713165507758256053568590210827834586723416488858682161641738379630310317738422823725864414199603062092048736204604128046134248224358687076419714492792571885730583469204075613258178385998045901064298602930824936568127544401833779817710466416491611008641240824540350062689144674898987695077093533740850308737418841706125075650182593457684901247238933594799144312778189580227471924770515062740585480256510458456628850575047408134939084781730472462008381275174418172075618524610091381323223576792559994590569049162562855307484077715646768908690928902735119413466181373292336004050868046317322581563301611644267591599814260246204653741395978002233237658199155091244038461942945784745872255382185078889375023918414259949580956464578568980239357851313485076496745348445353519117496450992754846638010460091325882083960782963199568047516564086302732655370758008281023915210237489361236634899246722112842070818438989899344168166786321100906383850384605754167130737639094879128825950729791115132298078185662875205841096287409805720785204759736990186344804156905312814980967277244533264719195166245274992811903682973232684214710823936011823140279456368324458120669179166123506694671423859987822177526792672596713752020567713729897626770190842370151958619161691284753957263417047007569338759712583421276562152247330608820916831418793731325360307231237374454045179047219795446680264411132906091990428615019584500883859890784879599021197467436325807230734710547091670645063870548927670581513264084379847573090344260806082142765878583681408354721317422440919051307728805624903102129186988140181739243277932977539954169644427575524181445104090092893170456495669619211197318298379664499674829206167325046465624596619434213682736227185378888224350291739490217786186560136967400924923192942669768287360338631784590421429186163012263642202259153676932770152172805234640626107716151795511602156465119953779904834558608403258539003570624665560981147455610035775953109810515134226087608111257495300421849460610322835197759507278754574386138289760605807691482604998952143030341339022898935076414407258791773800863734590781890939519035499960924247352126326844780503723877837875697836496968295743940811072404910615892025030235130162772594311016175138360646421179045653671994309024319226589238880765479664729072131778222532823347984128855695300194793316882590595502035295509185528436324546425855433565018442795966708313835709606221844883456155423927968749607231845960391483318321252621446238671102489242878767486800270795522587164549177258032452943546456643255814464151539630940116641624358317150648667487470207509347319972878541335036215087263007349485814767116233288530010446836770464118553694089956269792293479740179239878684420189147141281646447249600410117725488822196866899335062482361123482201099516665733401860166817824102075897475761350690940177570845027705478328514509884525925959264721963525184456858834150856088895312450068252910429086409261370996985071884814854717324447014371658057714377807695751154277530313399488971046970861134021320459993630535241752718582349939642772592468505932086948872970256530617439657921432682931760164334888100576747974131341496236983584438543700048689700972154916126309163532052908179889763461247034742215593624328662164858372203761181800612149074136857550067522554729946138914073196498486308049375211735963436054811947522259129748353540641688563914914077885666745644651759603435720126274044956110040608976984058597900468328899381289693209861911971943405490062573720260075074363321784998140687076043558906167557920298249558376231923753517748302310767744452677773844929132827453310650662748899616442776462461686532462991268196580974434726283083023848319090632679219884327663873616328126115415488951932497786454522922092708459568706966377317999542614975137097442870116513095642931434590033898891446615345157344278341762769565519977467346686715536241199648717696611726648640590975568654808746630435837394361696337645615163919387960572996289096077650765169852952394944950503178903943304888529132941734379878236994849294581728115834234772190921862356061114145419428240595057138603397074626013752017762072107222941340570684663356648380441191240931271138810077180603230056347901074409069379586485361063548744856727672157446483590117493423061345919252714117398851013301606088495156948254317596940788953388723581080613390439197076857788286844098970653782718934188590517568413608392659651080555262902056736029638427070524735008582134223205290754827957483513500625737694794563328469639374894965098300540714764925834047881606853784156267981639634414755073659146094446196020756693921838393190769363949397571424014281311061102658562842457263312606567361524489217040820676092376529224643392869011678564670754165766876635709624551928630148680118498769188798495214620472197488243672828908073362283688388969427923229971837447070364579767384271835504457628540699432781359374841657255409329455373124155983988025386036643276081392576974746442318136660108703765385061164036038776312265672354356854198295166423265789087511241377076937551347573165964935016485100586213702001269291219540669309649350739289848069109745767731228012086578526073115957144963431618189315094731791672122947380639884432147245380415722118734644131540372255894841195185435762099298412415353618986126793215752306397625485444763300267803123679068848424119897273226847736142509457515365229976901290850378483066574293199587258319524763480924058215192977235601341108548127770587605297330538663064848441260350111302033938693831790727122273374031004494026723897080775984329507813939174680031363858740657334292823821735830546482051083426302180164530492664571610858206873654009691079405383861514462784303224770860068982602343899191228244553709636245348046881365517551819924916580625094695164836201465605872242036869651233425741250637110551339205033559732604573861940021058084926242279116654934288506784917452870570413340148719721746666995635066230077496884725914793103508069360461581577060625753887431496743509516477262183974745338456975297379623291361494303969076219117084120222946038396870341838256553789537936744145004183339580613755120495414923930379466427837834825845859901630977558191132191261542663446390851178342183796150959602005649396530083290767198655820737591091576743829687960003977264422223330306943997415883159175732196374903788481727635309546785919665501157361011923563513695764057084572165184633952014361111243195970066825430375647743163536977469275851344445654928989443116728529495030032367675695362063460713904757424806093425294889819129204428776251351744533867589716415864288980697861699470924107764046605265662624857576118750450818824042630063571259298272424583844686669946030335567927209170996430961204732953459492652407075276094332515918544087152454934986557890123261268617995477903756005346841263608439034669590295126442209967086039745814315686101190263810059809809905846483478287865211698475635276646765457756577693516456247708279829819186405518852912402532821905503612526356853652146533274896256134801930733400760146470140627141084849287555878199594661415194391766288842205059390560773176197582005198791867642573224853564114708167111053783206717476295195399896564339115330827259687005391559195509813612887360875502803311188359188323419991466877977123257516608684887942219467400310830829732028543680930286696284235949847946696238030685274694584009405129661119615192778619713786329571748217202535875391548641868872861594823453854716768405782065575424682985452025144225694534128547105230768490720517266396991813996302617164826292191833833189915631249127893039219096746853929191044863434764696768242165992112715198320530259998776070118401161719501300290358476667496426335138028604968230912008896033479467676210782961253099616322566726788419020723346695353041926470396936112709877383727528555629507094547406231180155176213064825280629845628023406649868452078533099459768589002735142958724656276134774570175057354755780192672628501662784620795608615211771899056638525568318554206122175048180300561221351345743404772079735472030706602721560842373258298263929191225246997039759198990343312316827689892328904309223891345955873389474156280615793303205011760604050289718490827228563799757368161245902252999508651276846245582346428447704352583007953850732848841240346910901582015024029214222270665893973046314641248307567673832937905368194301153491537086290904993797557972838853584055365047769656057081256332422471849773443803267320926894533496549496297948323958210905838664640393506092641115957231078495505459855513822124710589231139755997112030411076700271510167965603174333828737420149096372126118519157456407811309752252385242381759947076995028264915417328945956727623003185512043585907294103484821109534767536498339866338898938154078846941825384091280206483963468087787349999994206943198642929930813531016280707481154305045203597524264640817567716976682237373398332259824553638078217247971603081759600560134107323025823235054612152019303425666745528379244933171776799364656667027155072541599026752060087628298930849164360127609213498019385424234838467736993609893916186696547303837458602133731402910486104930312968321055416203726473902255315456468499935035114274866369764885587174388366402105522829106043744562980796126561584738450243111026428972891287967157234961636127396747807999113317973408978751695534905486953287673378420109892815519706560999570777666090441817920802528300288817478788350340695734238295593826125885922257916734859212743137154409386202653570945500830466539737789628313447264063124513756521435470480902074805970611682214168848120382598414937520934361456882261886592361382890179537343078110059431382349523764531973120016737726719789527665021826263825295993168611120363321600826747321169776534020184000165210166675366868261301687212220311913328747177377140206592010760959675407481414746694782279722303886892652415336067751579548793345099209546257461218962580648025826392717683181899608046418832247966499716218490918043266624746411879772512740656763208666497523808933540123564694453276421028143518419904416680962833864800231417759488574631798272090190500360514067959774187583560975276033701449247286518097052411603017387007509395216084562667286741193467323664964335286724297050507411373658843661511071538312097617882873026556520101696207567039481669457024449649130664684131590302416993123208192739735183117073102279367662964275329833218492036160622349753460983545413969254362924958790193458169193327619469341990009499029340444178703077496262591040680915912728809581001842131524959620580494960264618290178388086453193236678668266070043073197619343611163576247457951923541814536813612577833747668505263174645577286690939938453353861393227395659028435392199535075078920608709168916042492007793804014832775349842252429207270002742635589657241404756580073927513456856758086492597455750642608280524226326176283096287714959477161598783342147798135905579367612684744305894729316459778210256312616102786911982652378583172046014286328639987198692774742478026224797914457269897755707460810954002951575187522714263647504295438794759919061938456118163428875616229289372402722284083923177760449927503131207881224282226911663955936262209586707864767570033325513024712104715025335300200013490995626277233052537321789734547032588782629685965957653525158577611852410081876511162281678289602716236804927269139324382878025202037618956094905712557299422621234948399659590113495940000288619133753565057287484715419957353163068967735094938315232092829228944622241494828260568835218756087462390756103955868578083486900059719999261412026679260944074817796914635348430360662664120896626083924934101101093254896674890619672822493264245684177188683500011162190139070844338450748165479667185257651191401350031016103039758978257661853293239449304709743197920666751267298132269006652071860557104043127151739238319049714646369697250213400597231555463653250891197096530627509779300922177809238210778608325026832283833052276501249934282812005029890644679083401149790957080887258608323238465729283084984958569556527240895347322572390224847981243405317079724905232594865531669582336597998636775489399281780604426069340293272190847236919044978003768593799826608905415075406082144807288976571141564915124459196750663324787361580993212934839927115206390323226278615323584600097004219123022393493896785982131333465393683504188639248473767695561984962335496807927612796696883059111585135428502331467223503271627759774212284824651771441954454482381154030759172391923891743191069078312141164101230608686603144722349235192018870030662277915533086744519158078601086084328316708885865649713681811915468632297569554106315726450983103100478909801101485603905441805533444475736593239097829431611164327348094555035491412734252722473649726050106145050184412123507827755792092048892454992325095514979800220786704269195874670846867441490684541749868701535828203859372388205503543294933057589329281141351723347691937611260645503818960909007927811453317282492887166673519466200017455348303220997296776522587537046585061727732077634066710758799385006313485570009056658947461470393858646299970044743660312188318550216763233607778752868055272378264327888263195390731865411630958850237419960736960253820728436119321962983325733325574434292112211528508849658802056775030808941408632301176951687624808256831981807521900448268783332203866760905794866437951571365208569541993848586358122418267545986993217624285757735396195469876749080056298898897782010396952700123835662591894279500597766911790508723937845926658955693293024732620703811893542063682278731554421722002932004310114051816910832434019852693451767446357124485058278079725559511728128739637753011787500597446226133754447405270510013465754813467010087799331996641846083825127201578974782747259678966053934696023258145640510320293366289895121557156596318281134474222263102282616224660992216539181423752374049733892857136621797452628711889529425549542356292907057752419870589433757364569950901360067161554926246936760214498792462998349412037023652357186115480380779303484826852782872407117096706001084317133035492967635605686400519557372862047407559288746336797327403605597164470730712415307559816713098550947473788495813848046135974073304239900371821595950055956297793924793111400780943413887665731089749543118492438132579120087283280862378794834933380636245002358133728139447333071646547613220568999625329922451367724000517136273658548382949984130107743122042091022588705300175065376486696680304147428343163857799846302545097237706873741886791891000513272857732459687207442101787949510085252229092802520949057068595500931059069915496767240168946829234342993640920019583193087674155653798454351063567339931923179043150121060724742059201653103384933123404867964317001935219163230971991568563476863406331639317484924935116280597684067016578759971723325657729373295158374525588020060433577164114877391254447059333612385823799569302834958854350246341763035364686354077258518632672273975589999316412853214555051200877426244469419206946056618364175186441177449261368617375441176900141260878974280910600985123429538827436481093102538390117992859669002556403285335079165081571931854142643883208327678090623919535099164686923276914249374349926554785324974420543733300097092910346884975191115256120210809132048014705965753825566457076647543126475600291629268835582348388999236777326053324950166244606682207515499079389142357705662455046223535459059171394747078510784650392200751619932213639663977771553199318903637048824792536032939004310226406131017966037111477216772966792082865143348935324479635993470570352122340876929220162851694284780881549153774541281425493300376269454058458621320562264617080691214456755369467234655452262069656518629311489223364266826493875489704676556228238559592388391039960726397393786826248383240196495352376341363041557333891462723044799214124078272134602173089962137207145602247460751657726498753751436978196604218435065608427420587368840938200281188474760948927815089543543956542219270939619416488255080989313783783736704648183911023122089021142723745077342594367312942371073955251192190914115922913181116130778987581257123255292706073080110992382574713090224925125000532609016414458071369857131733757122560300760488169719607663598268612512925754622391339874030198876370957074930141214389524762907632724716747320082733586063690325010463814177978703041051716286312440781768434913525667130787275842756465371209409174289773769817745089848565295902318463234551416395258201374531487097669403586636754568196501545730508443837697587071905665065483149834736695255975677295357997713552708588924665711190045276960670645141662008235244821615255354933802478007549724860019447659374688029133109091575785424098695027114626764363700144631081217145739224445675423863317704741306217884724454317503623851019002292215698244663430530547882720860670148625928134740625039329924700206706839437534976082171064433316997955990956074594296393520727253108838198747316336242421207020046920345672810147711992134893644664324956566920625552098575179253506121533060111739072143954953480808793112526432920496960453653251453615118915323002433285122715785384085844588772110550133493393275989652850837593987665303729124067856405472308767943101711517974593140181260286014527424692563743831519159275691538093929401939076936885822856633408387712220522925390749693278923541483684127935758867679935762424255198251826036596875739579061711500600824439792078907827398295284223813616944224744838462883319897358670172037747029908009978052944422607556109002559868314590585151744354156703326140908367410072215274929261109929354164436822539070355058257806965996341611016649170363728983484306526105692419052855152647728035083414499992024596816540559755173584225018695507819505647093020773506366432393308395300992220998029283638007564105701354218043924953516941353081324517681519311707618313850913859475298039260103272616687733195868787227136471538268849636764239696202601461180531779105670421659659073274689131646047609621454302727548012032483831933965137339707602726596508431944802036479835807157621578258814997908994348400059008691641299182527035764352593532326096442232427495707339129816910745944580945115483094593839387218579482584152155750586125540311066101256855732073041952955640649299566408087943326787868107743024233423979152093262851761847033650087941606718783255334160915978408237798182758184094730439834808600715324283712997420205844124678978009133053010238837494304729209902091933648259899448320367478461745314128347758027643059050394844083791377100584694182918229180029263772963743358004610900677145458478498766809807216069520957164831844821107934270795639322887617964894029848056412108002468716353465867139053291934758240507401511614045628512418655884260248359285775212128647612675621842632268197674672345296452067592680806457865778698427388538505095087576838004161590863856335689522518597551925341534647260667612917696526654305341279012488160378880190651094930712977373949885345530850190015419313393442011857633111768021952617883672398897514776016504951287351078553573891309798547856200959522780533118957263920736089758211108271626670067568654968453648518630921746172909544368523568924508066173753395411758219642718035380023124672984107532079224435776791752154719199686635342433423996355235051171271446661044850258855406844930974313392126800070089378950899208947203756882367750866884375465721353983604932505154686896828730096647843128111305347710299571507589463855336819722915303038912514600208911231204388088941283178474309475071146636309994400469371193354745749065256769201025385130676270786770820400233396240781521163604631711657564397923856219857590204346382817336886654122180328964812250617757782081725353905330195442076918228466843403106424669226187107875360090350438293416141943518300921946218868645113515593887009618176449329040735348182236116959042188315852939431605573826047030848414457323402081399374684021627497478833832658800449093075396268518576322227931878735841227729325645347253038954757282986800907249765999726910533839241081267299160331287277879200726498533431472184912653655599972200073185821097429664949880971105584785148711958420230955332244729471588463957303993783898453703867745612060195031347227052826883700223345200342032885050712451586591864941925332045342439048310474722490529287883976070031093770096559108439839126096921255841637963449546542185879309935240683477335618146273731893592930339698616794775313218805284852056070144373334083757944348462261403592994731917940872320115520756582831020371342698722096819873689817366365764955833535209688089099360950419102988702732485312459978868301364924072628463273047856613743574419388921008134756100757890103837070625968682204996643431387753169915965650899150578625398156391450929131890301662058654291485600909885947478461267707710853965610571394941466659942395525899822420006458084683714267247329410588659443631528542497212706791075923005963258165691260621463175274888250059224093748972769037351602831838011032976580405208079354771293559611340063455159318210649592073018241337064519948579993195031041486362360597056512296512964377369609939039077736895675072826874099998317419296003883190313933319064767603959112555381545087224460817156541313728007230394636607480828180957658612913632451397104931243191096900918313310293187100690971350714890702467206073433276926428626604997742082329654414914995656941971221841904339120399204141759682573852727279928435542015596124188620620871139059689241110603028887389515436699672231826055913469649849812744805470612383021228564867205694393896701200359372697859739121089887842149808626792329951329534330141991266993642461833743352831874274007473936272032907125724887293905037520883411518837624338624164577784249829760316553485227184666736370812323989284054501227130359060314289451345305939704975447475516210919992309830180217184553923288207089404491468943063891920277436066538418485837455228512142500999705543985394520539584687918358646601140385268252011905750776561914345817057009445802875422243753033732952519168316504260299370480952704477173434500277911639107871214554567822231599273630473266110089304738837745146500657790687049323295122910187142981460846342967002433364912114530360532972825542660262407651807170234043825285626204498592195169049289841914268267640839006090930611617087001143630993227215169771643061734504116104087115219750452524046265589532065271683828969104347908423750489170949681499773909869013413432764969740169840662773815382436756026756439487781486452396460584662610225594892393065484695830228759286706411196263291736616422331196375480792793648507497163044552255175115098342204260113683687775665307318836462290745182092890435416150139512726567337282425444936096942264960376414906162278961744360259346803081865983973533360477553327668206122765233589768621472297719938786121527026393989552334177984335058156602951589837459768764508131199430968036160399812046642127663532301487884364691593866367419921791669496737481110490186912720262520260118268103508148466025026220616736658713749310892682668955016196221881085785964449172500176273808941474874574353912678373940652984682199491759552984208030903202626243375758579174920573943361386401838140981738530687340561652155161551240502108970872252039614850702817470759927654091901474978057376911202587624585747802901610996784864197171246729071603853599101457086563413611378090438059966895903503671674760413601502694619202228806807692391017460124323066794030157679376935878194902959813193353590410292915032549365395643031766214669791661587360436878605361352491548034832822492632183568267489868765304587937554529850932205708314394594927036395272758458461524625398673761848667806139623787527181555553593307790184729901714936259563915625965390854267042577603740279435061469267906815976210377198157753282452375477028051962404253209922343496780083123726937283035658343475635940891884699239375946337654449834852841826830219451955708372318575921742689269931943944225708625140195584460979443427828496702515123427560156988919088558298007017368460838559217691550899752540965370847051598401064268423314065787638165438810224204094448867476078192768912181443505504939124847888257369644123208786576322468310019612534927885290041110451423992473858385346962122898346616579729477524772218326603972316543404337382642431063245306471712110520986071499564284830384912010502808690043484804065465877693879056543951537958757198737715225165013532956563196267563568800342043760101804026715642138747049914401726968470887749600621637279631770938171550496485413297620471348631119716563629040726251179825870652615215511324418737715900659017744282644390894574941052366289435755533476284951796386936947826157835802238560828289124429561749719329037987355785555249395078137365327358271275932816662876511030457203664430941835505492133182287847315753464285838264010264518883079066303693731630679938448357582255914040954226878488818699532613248152085324829266793412094847298336666029619577272440314058889979416736206521626017809924859673538409007940092928368537640500370109864319137938927418804114168659064619461758162341999613914767775324671310196584019021089882443164123629606172307700172262568026765131926208742943809966485771925097242321276299373389690786904717489528765287697895569720753927565645381321358181213782684166416920627772277401764970276291979372400121678176131866384714170164742051696686759397028836757673285578930616584093050053972704661286990766834228020641042474443981510889100783836773012965502895135075671226541498357303897526167643769382413223077324200101583361337499714586313842152100136054253380865663465759049003454195265478115469345824337914798923659977172096750710510721889191369135080895188983776288504495810211115908145147388903096291563746005673278010476003995319708072250088517545797090016060899933976250578696784544929808962465068929573218247515428863637152781570016733131936095629058447007894212046737995373558410697858284244580262854319979605808078689754674308524651191283386465288429020695881457809478320918577072745293512444878487504628813546624849600420824331603788023286607995468800808157353842465478039770367061281735523204073470409078588703677409879227321213679842621261155358614046312602078060838606050307592922562776041323114392582997001171555896879637163709425756209158781324639585008692421270778846700509375006818705812935245154788961907362758039677127720025562223883508796676614862626417466170308395288526603652935676535557285472942645419545898516950063226592047358154307789113696636634289105590975325547125861736122730528635189366063786412569905069796081640429599147269938222597189158256207464065231803193384562981778760735783266238415552830039947163660662148841841675319596238450411904266157809223303560426461086137161670510189638738238616261117974783554435142570757639880299770079163537235037486575503566698441937543415723667545551353766523650485989107677711226123053391624967444140287528892131025750838428520725655713260217839448811746235575946907740131859787621222915791420655096065291108567587866133461949204929382346255922366008347957829451028886644276545652310752950298831567756645072377161495404325313501865187271764709767753215302479927310299437832924702302819071670111396639336160051262767708496761292944388972691314343021474795228636235251166220955063144815657802740518980594489189947856760143409179435433022680019316914004313014420355645204541243126915925982766865137007748925528176423360001348530017819505071881593311680730164109529944901488312862206094702467494112546109219723753601971383472543980670140760481530038905333966766321387731342958811574506983962602042092733664501094411578945299867342670629971880732646487983669664457068766675780462817539072391938316276970968320091331181381104876938361656090879460639439389118103062815145674908635463052182428820862960110087366186817431001572932622801670934235767564390392787738476847484583438330957033884467723077684339074225464692781961607862068423784384989491668610380614701412304292112605702273867811725757814238623607085102158121320655921508715333387186580613763493871555585914595646931757804036994642481862598341029011239261087403067333089012745224752173780208715354388036931570478294227573721639114409950256637430238033192978500411692757724578757510198170217148179580679626476549103182630141152024210232956806713801408496674616457327155845387085554495159720209985021931613945916318044912348216109312548794650238723849553980776151961178796175739574093686747813764710635957470174596340211898216128019049986125016321827455479498618639602798827034808886992469150772642380967466156011254941160340089084397593953433925037924294183564402138490004847581778887027949819122100982803616610958224668118459844767187704116962144742437394847896636759372665118145641083434648508226549059955873579501508593353913962783766236014295342801230199370887270850191044291605562649928748012793168460597970489837813837119280911423915860930423882237256806714870162094457324307679671227091490795265269271135067557057085379782442388270546408300484786191233598566588565071703730569817650456215160262518819285202771629015702976884121802454264768448068134486127703851954305055580565675281001584016356337410980080475017461873684035874378128178846740929176995609943853379992837440584149052493325944248079425026628018324530892740959707118395099958144411565760253511668234171547531317262875608641791726119073935908143522936516640917210190085090654173779677703826032490025806175704812877429824783169122591999633495211426685621582126967415201932616423911078789482103929983556753762946328912570453087162769162630885708723279892201255920839023502532567599942195217546924658614451128505025539221077554383773233602928825677464929193159741904068701362699774574902177486188882771500571957553434474744797619163441391538136655444606900722507041584898520958819811008879068924092100397764930901786310961182465637115429472416036356365712117091328622864686949002564805901366642596372160240134246471787543339526779364977802191557846265550182343966085752780432808548357499878382910237421824307767234091150349619765227456866037131710304477511721382528445865002760171692485750093315544315544930375702994592198040931619184028891522547130442825220891228660563806465835764885424056601464592483079985502797034181224853389141153257765999785738717360276336729956794338860744934811728160839524262362667477733884837321780625141187765588195557471252274491649584797504750764193109259027413883978053263892118614786819134772723276386448821657436669194768837709443485884740731417229849223449026085673177776596654562560331166154264008696961100943175717106404569337146597985541527297658616427616783269386114313231936884105450590100916181875452250082991778777742232911247396902050087480415814554602831478155415553035329710965485974659503473496651154861610673967867987927782442455407274273903515839732122976371202717096882565758240232267804067885421441066870534161239601131674287275627535020120887696276758748092786814639854964242556128998639800735467920570715127569833770265186915095192381337483241502952791229959369213515062359240027938632775152250073081103799542741738121132627023172973824082282017175030883403522084333729332542488158762527046351155794683620326784915644062520003211535626583694172036321783129229586861455747440173312909314041007370658643556116901363738784124323844231678929447638806111917196511936184074258655625489658054957075061469986229169908625182274853210615229959756516431412606068087604876363430914475050306869184311764582222845942997544059851603371822575044309746602115656927328439985825715682024272734348064118953909287991304489670658674397946299976573416433548592124877161776103428078371678224249184362897935785656797313061580068747305412327976422404547553596594035040240570888024568534216664907119501834327445479806021988465117515590446926940844347457189063982739771522938072786977122175246204040346918093124148756859993922431838285739497472306338561392885173140643724409390887457606709548232565715294945453356537536596919292643238574924012042893421796485341269178756056647578681534773247024681582284183189638819519938886933592170666882127586474875183335141606020504664918119106575922910993070676129927769553452849155229025934697619464131649645146972512260986978665280931517446004670268828905905340917893156210842682926929064624819123168193755235615664868546555238339247527238199306123800710665372141128622180495299623680256250720101673207134228835996506864107561807110772897782470849998422869385647027287280442893866443215255920963605595333890670393377029594249461730027222972414890409190405869858799150749016318803673537117093122303562574299160273268338601641718971815541847421936780606100311514113118558596743915205287917750084504089099997084489438157128677323249049581744228058243100164434123785783273310989592530116873941885711313673484125197084799130263347687635975755117006863041196457829373113660142273931009056249143226886574312290542058786726656799809564382602268268054602679561588842473791418337232261031030382223071116293149894264870761826644415381595337892081956306715716091798087326996804109812417984323926802159258764775398804271901260281606106570059639025297509573825109196539739484584490363197469383086865213717632024699916735481300508991876711439868148921198937270258119925612656149508463620815108498075871662322457271190603024008084038968587129610331170186880199320372581732945235301182034826870193628634856905063036568389929147955525852674811295495451478754817776531746747714072174170897152413556268437951399015182683007963570189891009658648791745526317465822135478590971309702469666083541640906128904834949378096622703777698676083210973832777861377211423974680321878772062641865622557761539309809485004038174141773123366016978064083528326318840130957359431307630900151331724013929876288959295862255269002330479703061813304990662426277443186693498662408271361038727558054252393747923619773239533007703075728647672420815980380175059096546377433354633721506418994017756667408287837512032556290034457925221425241378140455180400394848476810387599266065113326953454036445415256298817566408927568544570772354806944782591815200714093201195741518170812522225405678616925781952508507002715675052445171791662291452332199635678355531765321451571817089206747354671410924249819030508026460083102641712283339088791415673731283064507425526194447926758191478424828758947108162530852360156605498128763504691625966711366260012600158955252056072356847294150304315673741937859234480459982882878283938891468840691229380012648510142358353737238569898551781659414120738477475977240557243593907401389079221470528490768931582072173527342972980179287681049444751260695698635671405645504136913623358414219564975480657710383785660810520542708577909782962679088561646324821285322660182180810924824205265286900320019974111516579957558847109939091360633326176823821975398116108969938818367790119455065271677155756290265792913712577519549708083954509713150960013639641863084180317665145265160008859728245798358746208617245068622738746341708707489207323146091474246885023779079268575414259090378209687677970652329359206637021193206219385635868270677503293162902895780385086236275014622686129759977196440298579011871705954243036322112305968018779736763943683773206043840061268109588410948426495327353119374488053033936561554679542494479640916310697166344011540781920803749984833960645396476177933434985806562846299672299781548125546768765891298803310529648248464615476672538630474459699715405304462424710852949980045642459678322163560748009648725666654696787375269127075040876197122347171586069803008984983171738492839291056912475036750549623371777890446277994203937771012745319864785748191935144605003928071355671873621760106317313218249400857643637352688648652467590900861625749762059632230017542425687303223349282306507621905507200330610154225392216051036976419456213795782464386330828697858642774051895503165851261110856367616710920061433843005402461205284852110587460081447562699934971270818238690414314683742641145562517048369081141982288524075881483529942792932321887993410956620333075516836208296213120563027864833583100673810377198688274447499415616589205431282902559298937283233056080075565278649092004874304380245892908288562081000920035350860430278276612501883964215511945444068482154576921756315173587210808009808955707271502874901952607667141055846518996189724310830439281522694387985995983202153132923738236360629601774308132484704559786959683242591206543639625121001506172063384420963173290742483406424723356407249425785176624108534303689351521150204321055418251103925207843307351088975111905233721146185203944489514221113611333916521577329636272211129278248825016596416348767834389187489978486136267974951717030427842639416518729175132872746669340248044556196206115687839399030892597084144185623875325930929421141828959638424534799713189457434699549682608009073152588482259777053248299192059464160807876997316352959853101632614946680608346566058626313466672797477910577817389283357860328176706120486858296732340044989952573336112294313340995840693768625295253509941779495209347102160287852537732633801155335625413234268742668388916410786289186381955700023156993397312656445736057474918144586709101759675223976167900058829168350309164629657798462350645851687645179964334287476553090425777184979176578528854486965495413062164579870889203024729153369711052874609404843350779193638623962192835683801545885758321629600051337737167834187663805489972681374470880501653300441633316968263858961499303562105794734368511052857334514174622833091229883713278559907380087263238542811787615500319211925337703524465288935364514008279651430354601821148034235555464753262410274359978258111139783318740672901877120804813614573009378643329946780535245690733115586177826795178292304522404725211222156648044357783566571653841111303304481175566521798402514664101456176087265662598709213710664568260875003149374570103254200472185973280498123942435336198866445708728203613605862630595060726825003818922722092573898765456260097169345635712420006498051945811283693827556896092058949871564732945115479631621211367142936202166033717480484161157713998962705071570842034691062484126736793639627576026623482424378587480251618800700773421364378534287952460299058649861800062186971604192938012503490453613118933819910497377258979544870831513395682195798287992887991433045087983103599847655678134354954569520363045939854618810156847440533617878250871589487218823791573377806854675846372469455042306977203464344803433526209548637382807978799247524417543189869051478300167416430673094756121118051873053905272554739197656087437894251712308855402547564819768871888068697316690503092463179632364990142680918653570650272198231242988437070470466961100453537507373100045460035051905622456650060187507524826321292763318163658508372641448463698542964356979205326056410008609526386617989414008510718904101646461015982961878117946305313599487256849496807194942634823491558272462846594019598761637005044205382255420180768549199097962560395777878996152608642171642324179785005320211430592131666109632790956732688149637910668580250866766382302884395161542012415484337112282703880771820398645104558829788790235649681663278303180236943810890300671310342163203267375158636512085907811921519293056004252258807265168312543133954309545187675205288307289621101826857830363749921968767790303942572365736918880670051886940360332294592333039406763961788006270770342739546502447960961435054220530881959092594896674408940609129312178910935034806901537587446181602407384787483020494710056614555537107771846574618860229098532402723760615394427415110624595160605742564919614118176543092508404971710965386867803374768292654165884540740629439488777212043426284912730247917007339880546733421460527093282878830202535544538741045146756857728275532234756169593561459534437235496866637952343637297775274282059821438298022675117279255662683500993905347163546469292369972239580935324743037642491735449076466355959406103020781995854392859692129975274017867446552648628785421518544615931694376883148753596750126992743152167484847529597724837105298039897731672788888733458569311441645266529815109449746607685774855350129695204050192550378780942501122669098395328479279597341917390985618505071252591302229970685839176599960720135243218635358834800700532533528129297284799109695570130714007071569893126978329292879541501162778770815813781647456328800668177407450449271351346619283973554382196182084470815613494405061575118500112033353432462119547853304159504501777314434092322967196331052576685447657989453429109396692246287278469758880064205896143079337243817440298696187677358521477140164639259356588205021833048463485599470631943661712370514421789640152925104016834357328187229456392531478876399824288130453669538872858993440048420517033070305001468669309737203308635727906577719671698782015195494786243574174601490813318615433824147963280587618706760827972232771094780182723723100766762000389379594726451198666857070807738290379337138351018385340697024116201344753975735754624171424626004739288010064804323187884865798458710771776559001598423303389534591536312368658900797229587410640262234705670414853345654248925026764692164093319097455010778151656287826454245049440104654586833673048894688223525860598909718435172357714265850906676823691445517759170351164931134264429173436386301144269782988230821558535740794121381643455988771392743260760975145022889619178416324060820484595541800898035048172140035247210235351363502051367614198166957308658911039105672681440607260127286285277987084051498594492825601902891112095330789262823179470615263913856606156373039029028042337324060905976757570554011934770045455786651312320656411674604093879232083523263535022868625207302144302627203826959534709788712177357476446649119666803247877567804560909511907916285734023386118276366930928640137726917884844483379014764831574853743190769111874155727254254375662297377874075779522362803209464235431187931382165111096024744284874875679578297454273557927891389105230439091205380268600677864444487696725288970411033633517932615478797455603558139281512657163589274854642827912429031921325061407225103753733047309791175217617313405807800177799935817247711166874072795309234408780003854543658840907271754642004329909170352985311558141725440056388402490382525286265874456823568141666976426006917432261939601837101787362219217990569617685803197816251486569804673317127714202249549757180248907221808378594168475466439549870060791015823020440521818921870510053178650224327480984608654183661830912896231850377332936473741845352006810068599905424226103635923770212803102611743002264815412254080254045155853886303227365823966639611628042106525020163409617587429086471070855350605488236711198349035215085020406696609584754672621132635280782132376580454281674483225918480965069038865335552887882349197280019307577226054990409011786884003607216189224754939612974208961347321238861133997098147598045764303257236927301550445060556058003626696440571526751022158965374264068351978573596718899219570726583432771276332376730538920911912714176659108820883785804401867787216409506560602994489577618719996256666674479061018209376677563069442145236281253321276438365879437249806055303638829739487679789056312861885352533124462652007503471447796573653787611350364509241534395408252596379035856507232598850168593096630672648562439830476833050528734049250242090295566249515025084728188247654621981899023832400119209934401424228549142728350670832704606669081730622799533719883779361612077284814651527120627731301114715901374714651737579355809030337059486066248184600970108490664322191763180371582892186224242322344709274214161865256978374478204242218049457050747848921031256070743284415858995380929418131092971372460676951478937842541167246926290388276818438605041025242636177430821588855390082265618314798255047626787793166680266766734984747499633372842621018600466930494501503806522743829958712150907870359641576930505463189079591882687968588339528887650672047348886032725775989276201066430334456510277457519657583792420533261216147142869258792011412657004218919471662778848998404046478963488393913630629003788940431697829159180246026058537755892729781690885359682650645029399245063143647544677759020085841716344748446096972718755511496235398872549107526012041383010225986749536258715456690724651756911368989106360629027060956924333076314441039289819218268255479019082762060053613388630931751046145999730663407793469590080288224059143239871028944155544276221718976155288929013027705294125324053938229635477221475142777180722127601988531330953808504874379924222023355516500397104526454186409524479348783079641109177524626461460582105968374192936601826106575163037829674621734260914266223848254561002742603690144208355389124096509672395818920488851679472844773726156883726200739661577839892759222880646069926584406780703581442399181625382263220195460701596587787885706658072285309172868246430154256440878521016452667770884269295974516276255634284247731071776901265575172015391963925325200080286161079411878902712459276545675792136887567204007057768795267597923349593655238848175995687100709339556737457437678948638282665834309278182398012363796410170201824438967643397901145841190170154383486141754343826092914288529048216036931188474479512285053554829280348033038072191329838768334660289416608946115612617855590408922850903707771829242786082822976414034839492717747116934362088982125578509255416992578291923693501694025787794483969287456915372922696194856201581906105522873352016178149058430970909985413357665855491752124689392149835347301344780528644981974470264545906660293029067239443899824422408682488737222790648852655277082203559054400135739750894696134633599790525256982888755459658526918509860349138052258605027673217504947458504319376800633513519696374310769349721034924540538405979740455865631862800623029423067511922998681621308227448694028496952704154867183001006126614290809231633366560320088068622575905271863244647846987427243929768675950727852232515850372509996739574620214986615375664770305161931089282139812928250643530527415939782215707521446811831359253827771382108409633470205869248265397824541066738999861527386333327367395506327669083992222006066818548749956843115969753401090177656235583406094943872464532294032612487833322881646471885315396699754680894881350635514256387544742380167927096095262175904827581245866224039957413499766695275296363882809630623588823931035536834038766109485079182013130595745307256980712670321790819844795563023845663268708408683508612170836762556325826046771056105574865006712017635069639615595567484937253873456942115528583802250049983317488115179875490978077122436491107882188497012438460955372065382323090023105797771562943166795636915584029507113423922070763165675521498490173965792010715380315511565058082270353557155875516494521125115839451120162420311290260897670049314539496319750085813141358274302220221113092653014400030756670024980859065796616759142583648445641857268888106702445755413049096682342823813173138143292065512729742637696570236089488284090095869147351023425950490690281185618100925882120093819973024913812801616382309455857407250066888334449110745488920493153048373017428630205971078809529441198369415497572207838788131952214588840759969510446813052896573747940758304802274869651180401478025780103979047752054684501186773378887368664811092601198242030752245831464534984310011263884130176144467982591950791009804637108387284833127492582307015116448355307124343178778712669465716270653937895445144255592826734911592516889670497780207842207734195804113999435438377287238336948972031729048387284351186680540598968924173259242919096356431498469261080318668070819326385773855384219321575359264398501756112421878091579334106590936608646147624147305937927628703279568607484953136370514061557538023411757845000042735327626939719180457904700422613417043297091392082822555599155755365351024798729399160450349023568919926607218151378295349003354435910463976852660219381707505163780862569952116366868773593905357994119261454820706510474857314585763099697849187469757541888326483180477464181620481367800491468425537714194125181821559409102913871719235307005614502228398574586806189658124811244667007617900627746496211188148300159675977572570158698876386599661324479689661083608762435679434437588872101861412355745127724331895149543722352434921759760516356510512669214888916059489820890451887286485875721666667898373986228900176107788741473642404215370439404362236896425867911718851054007416487447892525041745074973498173702587508443518228049783785533368729990371292773492133076367184045490850706491542126796313779111848757949888914063865426177237974317054211809811804057228239248416477235513753837219062594469954428601432404245487212941643242098524949110551631530963413213522589828616119208622976777539385918840987143610724442858807076042635517103629452448149795769006713750266304243903499579084433086222666829997531099117301334643098692602650628725190716786977815366766661898111418632209550594089006554338276864237475932357364658202882684316060901797868874675266302431069917241846542490882643440082260199852606855868571846387837319842925451988911481232719395266484361667677522408091735942756065049520597039242126740732284932173037437126643767107954293588537742100523921004642981411266737500500498649515358951761096228889377895463336592777450788802711740918610050397033059048205477053281294159155107845484977437527543264714741903210209786742161711605811676638313884982672559512258639648983353541833283754006424818180765314935514990738031440373288877584205021006966583425694786801659629140753382059002919382715372845777815384893299487477803470439008274818497333525045854789853724868881115624726267795560099807159289179270821342274285344873059279827747481073455612507956273015568507386007002692283908044605877961331684703422070229781004226744123468757750404682000133842986394143506412680869957090846282246115973336986606342914727460556905446347159854238997117084439405717748486075625400939149186372300982171070178459596580060750533768115013815875492412213485542282107609346866857337562092214584439888436893991660157219485307722383063611913531308039260813127234062069372181609151060718185140604184039626229483882368407510431397776827552678967149416863483374465794191728140237179289174631034108586660639803246800941636695626144064433313486341795525647004887060560127435700468614807365771120513675430778656437863947725047656266980243476310854396791334611276480164855006645573034908738373525157048747490207176963242633578034821545350849976634077041173723595880033043332915226097756392050145498497925042553231240970257218974211220588007990234125413034766707552546159208687923844895025321088358392251746381483999595503336245655262680394327486451384855299388909437696017088660684334910455314288245693511693812133433319332923876218102733511946190466902249503904988424342542680364986883560640739839592075140545005342024761929012782113244362565330622948639289631489835361027671890261601597446459532829625334278206010174499482762976584894163974628149549560597032687182246230165608095241652441179165256865836393247133922194117106541036931758834764368573447004196227487568897454936540129010835577434991913387085648113886510865414493416568958865123053437623700851804064828895684279226062524281297687333272466782149543303499949548078302052447712606363063367788622812693870700394369677224869576453715611470367265074851255120795818417359711524954446744288014401795669181150394612801695588454396984604645032817165742258119593290002209027387444052391502761707301943143148006894731047432041529115564417535004614877355490149762644680407025479129647177552338114515698725996178778429564490993536052110066146183498692653949130834737140691389321992521143154900298191934866487364326879339159647205048777128626333713608812235363431005933664848311711596558415038274614162865998188311672965967442874960676650671818368843706454426926102806109797813555239917530669717288296008299768091758433468784195989470802424730429093293939536388274070554655375964993767216820923508370351278894276414714785843380305704602237202498455438549608178832442628848107064500957578336599220565462013471122289264163889902883229142700240890063626871627253018238030590376654472752994944169871995696251941603160275279637713903738509418943698751142860534384049409733833703564988290217016439686345448410726888017044328520135846987782543171964636639395966229709747593870776970365999462982284506047426229765001932310925087115066023375795073692860507082072330260442509251588300453783400524965668724698146130217579835293009468193081994499089803343111709283119139620544269296732207967265178684715865243195077205514071012715244817773309979742518827515602694763928096311980316505904733791726745489391247809943244746374532335896746891609860473803027674611289978531543640916068792511133292541275066403715262456153604489193298756528729266579025627655538150671114390435425473037444857742565743684589951153344367341042863308649186529450004136861595306414751565488971427953233833138195349240011912474900634731801735234759788857308953199572482210678561748611531866035452900114353350182185448620759143794538187491235175537500664113155500333786514735525042743810760281342214325591384623120171764114838021553438681607401438470226627522472937891714006522207358145446402221845211017308280339464844261790542359799341737741707369364984866686051343095739971799031697363695850784006104727962045757583815732061107794855930365118882978418608556112176370577524835273927079922303318993509476873634797255830805686580607618332978133708346417111553432309223594262129605258845968274614068530704288735005217530567849947234217221764032139219750007698695571925636842011170316603950025185209086074854105358008765391735130544004093135732287284151933567971314771918990071725159319583359131059292293323490756507443859119245357359868815023356032550297182988642134467794240535245767696542043009781797479572999691498491143955005115157334999970583450301122305492174538696334229563277632493169061746890016462197704064095238959517310667265324237620002786248372680294898415627336912179825406257450211530053030333048181258376633517179727226789102619794864904137999277164521221676961477567958092905795580288603117454394589950134300082008823468482884904533994512131292158536853069470352107663258263816043507007344397881939540644220547467149360173393780137347272677064914468024738116288635482299041972451451039445340589165349664799822328030952776568772983195223330524853449728725451850075281318082050462980801396315118495614104899053275888685777464489452369375787886616089938333353098391138664805139220992324671128138691243597007818818338495488242227815636817315499892427836699271179670368945244737787622136420656567853572373992000909519520913564566844006910003192317449381199704190205356419675477003225930816638422155044582896320130375325416571019721734236057985501685516952728403857427418705101450574253901140797882892727654122835178965159687602517151335461039258434167007501376790801865424384490359390709992149029554382612037661708131378131083448788441496852429989190376595126393971298107110911725898352053335273642661576373989318779524926273832554137552061607286110365458086830028783742563359348467655822945903917637607470544005861560804748120106376156808680237918821439253263969733740762369811391139655562683536070665667858678006516537900645254061390743425841325787689174310263204820537186285348521954719015872900979472971532475360876691059949397289621147015748331318667058544124787300037419609204171049939746287934055685858818959900206137792161738733112598756028462412911511709226817561591280855688812680678521355234990090682575523588062590471834346089661874571157391073690808390359253159996290383472019977461143266244996182553636782449146313632499577786959474009061928725928699792907296410283987244069565797752353171280254834530990616579602926454231225429339346862055539866601643042479230634183909336865682817345192616051966706634556863117423400175853023726899759230190220843975416905262843588142165616533801302889653707896510109732330055843193732595133432146931934490971800986617970210260124623989980872496348457754123123785057589430120077792623930273214332035670648878593717890764570324538171592410706695059280296860303859985786140470178404544380077538155611600748999377503987817589569245562122086144816657461394911609456324299709104740698016717334166996558936231457164937246714364845967787138448504546499011914746711196264089868989810327126573912711414037358712600043949259938899257709159201331460917248439476134319359701090771574334950116374992227193846478247360987295758977310357783934362385189242726969235261161399405221539955896152316648736165214808553458300410690183960046870141900614176826651478759903765799714547952927867455960457152891736393446183992155630302115732928036372142133608239875474749792006451496747610628806636121435559953363471957323832429406975272815987098453687633897593696236003214401435262143840972163754403867608097222902980763745948457837065536743478654248185792267849987434796731965756346926213083693355291395829923098932885552516268993661894447236657107797538590010787995777336661432610246899523551151165711766030962270730392982824218733065588447751447329803604769214716369529403742139409731384677734642108548961115666387664312457420400748379655863394746792007198944783949706874626219241994412740729300006173903893967368162282776448062897307151527224555900866268098057476449658991708196352304241879583975053554012309509823048207371186745116494628685295502218311036596857663066469804179325316015676457246573684889763789231646779712717832850216955243383074078061430311942298922289241893792785329654560030630997746659013410299908685764522100926142072017716147018549816644486360926022362335697353806051849812970210312902936070305482263171263017810440158463349643222879512581409000554839252559448979676934009212041025410813586991198902930648099205211518675511926433178542877826035817689328481388385318480379392405141114845685891917589320915971652538173865295170924659159094877327021476209196799004876165133485508659521098686962754646039401767453567784531680371270277762471617393917479994430750747147870076590336546628690670019245890012102174004819282813700187738805662096864922529642226237962605098023875728840178964582126204872591658203010247743139823717297916177024828337152507120905082875227036218646456708330129685355381057121648452396378565136965518928682935240008151480661132614157929585239777513448685332162885281893394372168800864481902229802195328961233759819401384318530777182262199600541803705274241127244397678315986300363502547021105038716018271061708696858373459276810304209871606055090544150190680701934457285279186050924654308950495132344801223258421132543144763740620392381965865639855967308851094067393419853691875694330541331745827854631715759637294274645928920150093018391883487554345906056413934602495374645268095447834569582668694031265859823512444111647295958774679042659807220082874258684378170639612105892516955739257164098990235431055725567006477958735598723366960259368932558715427964185900639123306653016860946349466968648635885981861073071028635047311854229889573824252240940294351523357204528877807600742581679665768340161334096832043765898673471057690075482584121854116859954689782946774160793103925529433525982800353105287117257745857751935835103057940662622817359984107770594960960400513293179212751130686263677379504826339646519955620258865009335207871779209590711428947242265927768897466893760453748476534886095698757430983908703988379958338690999221182440663892897317296712512534309291012840507869929473195825413164209205864814188238145428108287551530798189613356289118445880331836495388538604872500637738313226531615577403213382222568841186764811483635888412240014682307162063000309455382558961322573512848234552824614593566432775633638471090883709906569713903292308264311931450154874607560951557934249565297852477760681514214367933029131296588611230852460400905408729220612904201803308341951167296605787150415953404039024100291525286233550576736851612387757198263002994036687683608354110457658419077719906246344313257491538721244292870999121143414830258416273233934638784898737889094758701991664428325998279745722375041530085533954642358911935977734353528809431907774675249165681782598517465295063351337548166953888275611922071364246887663675926374444619574250545561548887073889569191001200237980074425436143984322561720055796521594510942175924048259254109346287211292337557853064376778303741357842710417869822832240611205645789462220393526105546698155478628108205226149775924337806178588566552150363264411547395347258187668036017392830474951706452134896520706927584751038017617396336467681297347637620410443639576118776365285878585673489472274038441586448263902989462204089975242914610661280953388777024930999969917875134473928081871792992138544245982886438520949998009411293639817201186166941268875700609874288324505594422350612911992953217958959995066121227723260649210411309094708333755112597705633925581245139689367667891639845973509382921363580807440371306590611589920469191032323836102997792282564164293788981309718909598737668319907222913605487268134539839024655746085865246097654753447771049028103002985577325985356899692224827424023796857237511574197365710091745095502549850130937923685808296875222230166326958328134493418340649259533344430720822756881804273129646816616719414468646366462514991105517835201147985001876119743539977173761268221527173532280920611743672654427173402957996111355371751705313680451409314188723776662682418480831086092066145649617701541107187257899774710551532514457090413155272878634111536195442345130526786656537647325518357874370374324358134730615176794251322399593737732771851517724391430160892281543560369048150441366890203154094874683225229378448832846327702912762535436895784239910805388717647276891812808034612955727729380180340373293062847305572498003238323491482233052259487820372642910012389921424988313317661203445797063726969655174584624311610800473301128809136007626095022662411228987011281011877369892332141401750737084318922314590404535918900100647049045869010026105940991284818167159023195346825990111972783488887987991651483922464544765710132670048411162718134001454400389239279718307052970748331393383430461096488868881545686701352322523390791983698397648099933643167889295232358773356130100539197222308753613564876798049395024323917684975681439347871456025011328653965848730268333044322325149256421455219835745572221089511253592538714838967302537328769679568300835704078858242693110590676703713410032976530583375603810260621544459927292874202882132790166122367270737470034266258657120727938290402456675196433363499640706460942782169634299182870301586925173869702614665809047033055147907672045192983627673364966861391869197682593674515360609837854707875855748166608098903211172876698532601552981321197222814785794398796935036693585727956488131474020890008185477124545759663506671631400822526130437156503381631674118439360380531474397185174555039496140819521105122313080683875940128219436466879794111618237150559186977394324681445126521295624614502296066822398113130346910649216904467053400034362700698519043929377208073349259030870518818345026345283995993050155466910078915528790217118987092761184295478643181235388178153754415198640258371523247767905971828975154989800973421174419837245814941445974076502594907241625178028302734512204867989437211582227159607737893822583648234947077871565303520391303285047566633793208459259406814263729652625478500401880731133908146423453214968292855378162919471967895204736193585550691107725019895187447906819316102372288682101446388864957548741038540108477273354501242660252178024912101437291588008192776825566091049341156301586321481872540389001298274725487269219403390525664191790252240108705241204898187277327143632395434014529769151201024838295416580626520574280382015814927644375290904998868046717063204920701085861199316167905812153576628161966732677200292847471106131934407718535519814011050433990807445652635740808170560567450038488113878220964240700596704283629715126645384326591695239182753896652207397530607191482277353312567207167975869838996031826509243824229330581252610906266645621945453551519302842383111231468179340165996360657396488685166932738347817658011827406017878941235731604028343787689959449764279273301209463537396544448338191814598992096114009497067538898414456374933228189826359665337146158932803753201813197454893241449017986771719868596649955432256098594509596858640564608808264235043345690809986450428790520150263419373100940491369948817139387629111421558612326897209063857455918908858828564777653710722043952889646518256215208355354659242620247789613308043219907430536245351127657097330629211838549119879969520009547446141873863611206687106847014346586661340746371396496899925356032504489837318448036258643230779977805046069300709316880015129701606775760509620854927665556926715140552225912691232201629688741453493341409393368156972960261175687814466535344028543671931646914965591299748988029793965501011129587857251322997584635870842791017160819820453725695484851247477816022868882876633018890203224556895849143630930225437007187192856870137232064603162516570653630040237802525909038477211791666294732904332002436943597592234509379763750159449789398764328076105551699666618897891708500428675717438927033899510363267466632342579770116546428661522297039844188384592073038436860254012460158598942811097318812869775431278931807275455039434839062493783238712474700729205800487668654135805601157413810128292872875432076774423606439145151814545887782378765505330833267253577042849563339158579668622379005030642019635697706797119315911524293540059490899298099982636728152500301899754659376731749252281160198186647929460097443023476772585185536257026226358867738596919894702699387909493633071605501843242143511938970340129045045955501218941905130257117577905236727825350097397825679867693427183913242420108603718449974169115734354192656004498313214954717110128903570617573856105037403685580016957583790846359961606645510984998186963578435190785077868564610186787063402707167754236757858112193393185080182237291455973665024389476067453823084683154984560134302767066747794080650622713786114200127305469358094030060572653719966034353319284303708795542848640583153199997612285269193855523808988852373161856795765259508197652647268128557155081306384156733378161340140928543819620403336946289371290185293287133295194300012087448015893810231350055156989172243532192591370448470226271391676843383773693793043470426045161447364169952531249639629020780827174717715013923796070793060470631601792719103978918130456602388590650498583493418074415422787078593744299653998220768223947586310878654343474655151390968159004923725379776989619972114083090945477085351307319693574904525397518255482397781878841865380149178676075197214990119758374242582439553028716296545754459715701708339046446068374894389774648373118291033625195698718165793079488207850162696762932542729029145061695142763462764878450779976870591588781074385833158197039253965980707133236594086236154257651976549679057900348778566163492368280639563410735039332633498588081885671868520939950014929533821881110332211999286494591668796625554099586580266982772428715990523014457651513576996549203678531925903309117178207275660497626958492846947843763134966011316693225032870554758869294889176237873114045345690091080449738774979219879795023748566252385071923339242750643639832174373384599067781323216364965678068860391099998251834242810534873250374878847167159699978559370366033015041550963647158402894845718480918181726383784980544279610821514069291571058955925276480999804343783601199568512503183238709194751798543723925292068500551372385079212468415199681610617365500485945176237730941642844871576239475013901900692649758641499712972904920183614032020763296739086237601916714253547339709043405935016681903883102884781044810496961644009981520435107235871220931373694762031082986862030151855839667412908601438117392998989194150731942397392162795910619659395752250381627774102291759227059064773968173649454166077754681720024006330302977057603978891861284187590368984609532424159456863802171746139639846154173399055036984444757128235313514373953579077958976457761192796061453353798675032643597308302104124295585430277152095390236548336579095409377259527151319005111858891865293789023297724975440809488372010732373576441420678466042665445042649246837199804747546833303554253049582448595888625947734240709872304418994330900383416915094017232946801273279452398151886965175245423704143957861520860702831740950618090603647700530143796611538778905796574205011490621122297044068699844292132960430152099679803844134439096124351047291358011897798634050947556454662266731908925863385613974542315246962607150562272123321571129315954282395921977393817568875429147203540597736152172232349244076204821912512970414543131760027677667881094429107876474172071206935801046524839458797189515884199000942498928627501203777301408864626965559991835438309508233490124907785995496694829698901757534278472042649243122233543431737313671004608244377026046497754714276908557137051796912856818561292308889680101458827676875703499378567941907297893991472098688998003323143781618646740136467799592229226142286508463150515033710670112401269127208129940828061121902887455249030935985817790808342937293299203090707061800779721335906681508974944976204592955209557100026843748926767047995044475050847918727076784521605147764017296203283994813770471536215440727870491715654903601641744609285255325229273148844838461335379196480929694544486142424861246598948017531997045288747003556818142406139373331297445719063625421758797429876116181345606383883816306506687306777481115733657771731913820356606356584286379945325285164632935332173163625086447300962531700926045582279541107520931447586793434138176785868816131371731420218522672600831353571711015105038009170038607616769923401063338796876319989552448176374953014321771414006177211112944215588612545603931530933234329156583903348210612661843979170557424740110136295341628141418673453483807774972422145003597530494786537311141012683709930763410875498670906455791220228530631821268745509833824660328476365640564169874391162857090502185191511827173549011901490825907022318670914306774516102036054596797270850813142071977955873873776841917013463135777071387303043183707854528679836509041099633443341337806655733210659278203604153345539775551328417694654905551605655826177560346710962676635845946350934222881365799761015079389890960613855337938522876000518020659856179834783180534384487132797133247855948433099144407470601662152804298415274110350018104798195098085230038902710342935878113266297035662414998987416262420227286209712587176913430148295255010194487607536920665970720740292945183372645068780751346230250006772642795143157594758550057968739198469927867351014598715742498661528229055859525997647827180450175358152595875035268806798332284732252191002921848266580520152733337442511931217968643665277842025880940798701595513958540552606509416993290304692722097883513429571229304023587716673713075244376450128606303136718193846242253088744576133795608304614810890962674809219210938714730313609771220543340146822361130829744286266001198038325537934007370937703469853046634296926394839121898747537252184159372298647640625588644029730586841671883180702958143184013091347230099174043981399270876643618826743598612891423945257403146718896704916765969527631320400908001383817640655167768592717502683838610585771002177813976796735060965733664020172809679221025277521258278969659346593035912890542692901096257262524627271077373164848365020291957005748426378855947935471196510919211333300007759955230519161215896623497251913216824115977203438082830743760722856171893148103857292641449776148704258947263545957438751031568296973633102898246773824676473023625260041669617023714909023116377140457748373373581808519848394782100961971092096073975005452139379160461275410912193654467508487914909958539046714865821620872913937434444223444998264007818215861604393980521499562489736780197665818872452249697859016560856626197908649399897336206199575690444933618537058169477252833091155010816384166235403624973427502860748018104961435822019170874916563795609120031729352654517196800080634721173130980364208687758611418632514855892388049765289899326901460379519786427634537819295780722099275087815115990188082815212010419035072931240942927243803375756878685674122189286849303035277072616481009239207668290707243084491226140675897117559035279743395185604523290747085994927374857279163257618626683774952160555760930322762320359763183665665536726177506061760957620048904589893686895460861447047744644793047247564474122057423741339807580530636688884597352549373819973412351127377733548279530317644225897091176062872840637552868192078171340101440192055608069725135285274948796890878441949534804220589972875134317769743999188356314096714199088240094814011639624840415658667083105914115650746032315581749170897572295591789936201364986545760867643638794487746893441109485637173611753020536813869227212973352444905044764199123682305364853139890420456270898634082571635368651211466488281080308944804376531522450830804499913952163479904486600887010708016488209139154164527849078436628402231277981567603780450943719707091759270816579960822173915015944575749825583995071052686444276910600079654288825486748948700579029809635678820731336380926050049834535613101948196298565738801563088871660250566492335659675116667428838116971485177908378000435755718969735616147236315809561113191886149854940349416883985399435684109773650208063010875556463009011353847831476007773585248782019351819238323786705589468107878132010146900985813386410419975433545504875626174448360267682098021361428052490477237257987392269633243656998990692929458428589560119619449317999249924451515056920258965892881373631150657086717438544343211083542452923471004373840858554686634459061207605076867645409970838473363760686110261505507245468100414046626990526586501877341337908828611664220548004160618927515277516224849833661738211750687503351908096394107366771640373462635446540393098872694575973617125892456146988795933201093980879296983573889221212845313916784690503526230323631078551301993407047372072604385040597257407269639448074176196954734506897741430594475008368753883505115488383353492762607062228814310821648566031725815106079226662272667460115179521863113325075486384968096952912994295774740310634812909653864000233490430073033258340026488575716982092911845693194870037298659593061261213302996387415685692972160986425114381874179496943074089468457686370392080871845618129675635332151141067367437378374340950095641978908628928468617519561044481572992096734223382387739775931114084626398077494474110509051099854475825756965825719551031592946797621357039596956834930951388054010376718446116106357960398522437387684408695051734964361421038011967317243873774884670768209444382682725018341959894799959619783602847737840561677316325665003313377254100983795204718695016745088306849201699240883215965342467868841504807773441937787636166745567541188051976178871771847259254440231270552788032014620997805517628036460126752554049113851062247636240219131978224826051994466202254854252153511041833078037286024045666448057528298743385687303005999741119578137990753878061840170133286328367372930648199283119301458790537728534578396108876190999935425075282557998776620101735652775481450088539392666730768822396303136378955954979041143571495472740710272436529676633538657315315446489223368416127657396931892523606480570083588967613488294982750936992543402530076809990377363922263182511993872006692816857107576622734861066485216882175028736242633358639663370123890787172302575762757764681514690988522193537594970017382597206258787927890276164819803907706767541402805170067460065916096262309853002381404044893035985352589069750452735692445673648734010473920778772438340994442134520128850042671767956367096514221632962176492288855339302955217027551967473238696945465423527080922894059442242082356480382960514390408130207193428868358508323347212191295459297136952093975711938274828024001355644519835651579672069547096315398604440622080756867378613718482480849030932123883232735225378247040315397822111666569946470325426784036453234531846181029433583171421781520533709769094180621779196057634737607679702293913173451229740399074519428639420316236249171893228906093053346982472290910917299256902866579391025508000359608005531413766941045754255632859007073945405697545497861484867638990038563094162343662568166672064276056053088200899159815581086891591339813931120056749482939613217220123118320475981716168966035369398547370715573874865565048576826540588034840906960312891030500812122546213039938816141586738811483307769784080443050309001921201094964942952891192561148081634493858290565225976786168414575815678389613039427555199328450809105132449012046329387079500413218628252983941139795509109806998928526347105914531350320730974974901657520611848721404212355259748225484120135607345061062443594240702460336617233359292628877988205001858208702945210049555762745989780472415635583668464424465768923682466435879800683611944330043018952116245982004245638930230062784695976638635314989289084305149851016645123842626795046993315372131363898963790872231914399486914305977613777376191211796902241943940399753114825181341142114700302228852696301067185182452759468017511006145894132475861341614658054788523630357436374120961052535357603917253259243205331965558339508132482781251039599995856930052032088898562659392647930621165201872183061858624658271719361337599636165551921099578880062092253618167567546109835415741172560126568385034600119792613705693144640063266457137167474216402204273314479840265117668830718098587176739598632864191875844272926439164543594033861297694006436659367648250442943863898836665499142039607714501166788905199025292842578971027354786872909178896923075280913984737208412216499474471033846847537609734001009001852334863585313160299092439528646831029074411081546391040696353888507236006946377791687301132201351592013786319917599424907494424169685047432893639155189008172676415235758919636557674869386546098670061150941496800663583780757955478634630302657380971501866231568098665037884452319842562444813019451682118660103227805356499670117691015329867616735110746373269528995625525736036580462595466976136828186095265372894553639126474578302171345228330376292946070385014317182729034993807182078845987154483522950994000294937339352014952334095928020017504610173595592111898883233565058545950025098183848759076518379148204852735000895086123055052654732995915088318266172881322927469025200159983059079972027774226051698221364731046352680304176815454591477855549910951999091651715842576876329659610945407588046418630978326230059966681447078397923541785033197833731799795110583714960564344399123886122618481861843349085986869971550668507787518371258978252409713820786457495684287979264757150621903316549246372972819629991525333557994547950331110924063032947453223567262738987191242081488832927619355098605436300991661900240889199906530222811219560914121806263030113010489403921408602617303529084881605235059269794275026596082263662296668953250676767612609599470763933100421650893364816623965218569381948024005762434438645921937316753819638243472265737520799527035516921887184451421638429182976182753571109372876566037940708009786289948459083462199908860550447897045528076892410851117607838768381876978812639537759226749377758479208557278716568508591770651247125953808220275869903708361835922485344756888376416977866373159503735556040160871241848199404599153958461644212810153575624882790384301084206473075972132491781345738431951726989422282971694600564559476015238576692027910847966928621240480812383259622194985346325587656186945392367158044960659051877741481747577560007717250865478082298416650947346641705655728805997743805582417708896760193855512974201974549402779621384701077216668963903305226420806461437351290021631972290777173645729783246352278268921973682611676304861606256413897696207020340632446970131018849312330250825581243182085960339243077235963009139614122964123429889771203694755591984643879727166828159403894407879659574981260432162529065367669631171172702259771464319593849308965170465889374355731268606823150783360072067963009144098599584917484157519046138049189700745712381897893787725157464793003780857563421281111253074227742803094532285202192718580634299653178071431157397306599243018333944217596599249045686147245438633703416398832750575195800199496806349823539384984456534343946868579395042202026566498731871947645988853083184763475552293697527377826985395625874145328901541181239123251500466540241268611219813068023004575136381168391027657267372158239712161221059888451254714739423621473561836491582978138907689693764811554022476903745566863308504203465528862799035213873679943940399505238651765974723507927061091295331859728056677965091076398348536232447665777217788909564919891772704794568182887317758019322855901972203488497974356252961954496347691885692960613798846970668084160555216609513324019210943985966738288608269586165761827701105047377194962371051138258946074969017460227814825829926624516100934329056389720498038681576390433869496730732381398262362889167580612473352291117528711020839510607020920802472722480104623095703411306422117211661339205707327773220113860257652417785124437248907322242970861882536040284834961311129803653133018342727505202486014429334970859069482904246197826233849901273467899852899089907972320929580838660645529103872900078065802232042574567885952268233151936659282302325020024675723417243860530930389030375647931721140213142634578352539631113029745726337263600316758505610435640523791811002075324938876318661357284427942729889291360174017945962728635408813388597197105835583100700249509057600979987427702345460830490740051372679760372675756563538126684048958468269456648890424990787786680017758343589153885060167974731588312871012296308847257797442666655177159013941675028334991601039897353737222668811747090808899472417134042728566237314540779431263929508847308068583404481376662097147911238292534363203782929465474562720489404112488388986631579552745546010405529535247024239144425620558916240006591229032944689320339136344847979294142778688688384874840717567394102769786345712972169967106250262015263575338643745943174828140839079685635653608548457400540406953980420196698140946311909078222229494603892269671536796852224255800421059123479817196744818011400176953199309175842803220815671171609869547296941585104855859835327172893941995971663301135447747933605255425648708040499470671649568372408128719789373198977629703533393894950939021070408971582781312829700960462459126341193302474110531069851255851652698921804136204487693210675263643879102905633646561984844383671444547138383311265738776207168362012072155471467180236030601264272586733323201014783628545706696975970840187407466125380042491231816480345239428816132192378040902907248298638123111507597228135745070771344140173000475785829206128808197132804683167567204447404905188129950983837557958045260047143433614006222074240541234589265306859279398536495189262673183643838297553603618757338572228158686318847393223924695083710415525281654735036385483884167343579022032781061716640447302240090999373330132651252771704442613452372087740447291382048725655831977328068188602398786081035725893082676006537092042160377707629915369520380334665023296785700526404445129470968701156455311856967879992952430240216233694725141674345460298984722533976476572211976396599642131081505808385442907798630631701305279231740077958069564862375136630937168348690678164890068845300167475206752076626326284624358846796845415982894012491867432590731490447323716692347728233425747926401761510048914728097373870853532378572912203035073794624046904521679678618674050716044649261759785789166700613075235268966754498103898037120651490234537834601876455497511143093576277868818565425213035829766016221073618534549436836856568051101336417956281250795151947191084738274660409038329082921450129041546429516503440223302607882914997190192174621031487659226885126178539892653567423793335925359334175885156012051282263602792470739319451054631149785515745347630161155041064919314560534098324619300359109165192771010424949304812481591459062856772401912246534891241012634213884911448569860745476282631950426027381890259381344866637145936460636144646399795030042527253880875671384520248491585838738887432242262709925867820251917530328606078840465242318098557501803753423302284387227426824663199718287830369521419747212520662626944857150748860649338665049913911083945510450180258198141646250666407268777555982503733423796560170072679215596849900853599264672064971304512692661631212646703332754491141409577672855994909909404201554635292841027807421661505260369484534618079473689541741927040287575938430135911161196904911435638021273654291347615353329482849316273142259895316570213161599213889662822473569523808913984749684960655436488933031870316154936902457457615714653467938791998953198601853666827162825534020687454789756972127013924033453609219447488580502658856794952429530070797679535423949835841107641176037861948942176694889965488528223945280411125926655338981686666551749066433938639104853146168056944301945358234308675425991112755605076687421791747560391813579230362822405578520018567125806439279174615666314108110714545870579997293109691726471868386277030279501005119134326972581722731893584413273077039906489085209513513338631000966942410726638725906853676128898346885180655738382195848882852170029711116414745091632779439192863080805851654971085422093819773417070424528247736255166546118580621519391787051824516199718740896385670566053806573567214558265066043685163141943564921131318917715006078456290830839535084268777428399163779097733665720680951373320212460272220977119410272925585515159934439591084067622951770538588853853447365856585973209052320006429274439879444640209582491838757228790420705865495993657678811367485228729913127029658628021122374101342240324970095809553972576339860450194394934468345784771326699900718967668893315779651440791274423146634950081290709057810211233332160175717263702394199555835594476356139132320454100590483246320994451476812556714171908434089174743014088932865099690318094440324446876889475590239549168885304481964594325007663195651636543385345612458199577873584420701522772954595665156150293376274775135326284072008491935407837986455973928739604784950367058447842151284376517038869325768409751973927227671776310675988603298080752793858358804789274607146528811011947400678397223920443265613538399444037658877644641684769584330696744839284117143529919980445237041871907690739878923331918405470004637349652169371442439546170455871928314956211861215053827408703701267768246746940578961225554734493796777605941745546062528157671413331364744456677352581460098751468760860338356149907314735731633129916948940623243430065036254857778975273536046520081187877585781685688752233162866255071788399213578289434093599902665153162195712387867338835055179300418252362631968224385727648995294054335561548000478606277009282060281975643181464216583603542770572427217047093678443816032081970054743345746806846306860048945745138431837895958507096920287968883117486180324917647880655886390797793655269792950147981548070860683552608890711396865721678649751696603921570819219038736051513433504300020333127821406511324313880414266252855282885725786342320977658539247938665076447111905075907717218093986479042314455032764267694611482271094608979141395428629634537311598654653880715016345291317043553150740537001684747261687930202716732975653795398420173362634835369556736903440044179460488245018853050043193092217399215087187867222194698954286393137692971140378283880873325304618528695962672792181676932192970796622786507667520038620339406998819930809860119994586915974986200692610217749802592583706788396398186533630077987751221207553693132899264419093381700917579846569876329160950533233688186402182577101755335404317047943689137282041261627747830432197706462781139928291759225048022368154088284611445064111512853808560619090714293426802757098337225488241764070937426745029888446963348153694655235104441050211256185197341211604394739059755763152444876814831765073738647912881770968362907878695727876045340899341914027994786074468008246931864102136192249756197618302469374546648389716664022052581200067766254978730839598099073712950531427245753466853528884164767055083781170470406420902084107851755740781141722699939670710024933924589836107505394687967386543597858908739445804865159514568627937836929040500651673112455600115073960557516396716387880914508786600928636883166860480906422719263644524781865437772382728555720401307695815595925329925351477747799102659651104165884023962631106390411940615697841646044726799340679546819600699163561137197959163599101187881753359655225193517528932398491222846379764940164254857304671786743558228069984900870242584096425007559077959613507497240639875992767513527870424714326252569511613374506844502557416592649191646479626657319547559310322392898604402631834448387863820418206034349379377337681575900462923844538970902251693109492014104505131210104107055942018820860421493847967070540843321112604117762787744999626603050418174895668027734850029312011374133264798473607227147422109956641716614599703169335468384108270373020721216028621049145657287848892032793691792586887235978540431828797646608494224672857481644866701801971103824255029350472444653259440893382346264347349383102622962914422862627814969643807299856382575438670570847499192499431594584966719645436216247176001160928556210241110468616818691887021284470550839738095794159792415863821324533062104122874556551118811829771991989491175076182677577738573821344267806575103524766326609478746253142831474141475129900903103347860197456984098111840002813037198175117963328654963120258605238544522111959386430681503931355560816433453706228691270683235543499973527884566627793107011458317738272399808765647953470469489943154108486392090950931924058037481020198606463422935549737710921961472417754379037401383122778351290984073460935327348233417785143547629856682999702191614004236380929447514229679625782291667859990085670571754488200271324930841208211848795707857522664002957146320422795336784181725037757856210625315759079186272368209825183648573722673024491719388927602341785369177411406072401264557594801065519211541264229333071672678847116580891857056142570864504185885503440184904325599071549459333699333230953591993098061866234512675656199901407814684774465571813442635170876273673479722266711846508356642910451138717557407228984225317659720574164128866979442168556813859998523591808897905909033306543182683313760393562265832905887210016202266807603279130809348152215872312567197111543982622502065077448676377594543991708711460648354228441684866165448521140173855299502476738013849788707119266668581516222055233110425292714250332123637451109908143795990823519706339900355534965162517312480266726258261431938331935273845080240510354074260599320086258685897784053410667883544661233200477487229321993768747549647482443575504753437754814371111496246039357656677195908536499798753103549671579593027434660706345566152851888633309940034499974407869927490538472214808596615846559371753994305471369759577828976884028322543885003208110989322057649497237119726214563817937791271236881918941737295598715473230885350969685849510662236111524018938579100281891532093409870681994540693221344593654980936242195231017481877249031021899241395099982834293068583688206018320020291007987622327862413564098606733237986892576537975952921982529653070863807489687984461481194839252853171313126974467839686698366511908040221590241751934888267328682215287167427953935272908518038520878930701439363533721628789440393944634038423566694680436175220348175218923989944086057567855871053043054336532451993921177545709968205538857237204604716071040745124846162607808344591858564417645434283500924274335513179273337505474993177732371112930059724663534423148693758973444190501010941305720523137673460890821957255695443608136155433856502138946941338563600904223584905585256004635371268581109762213360568605864788412865053232645620436726373722661201890485991217644075378862033093510497491156939846679981310342278023934709848922751942016538446516615452722979494672812447741432446522376714077225385560249972175804417963528055879886541373796236551342379410293329212304716005431938974761865874868321350919052599905642401172086927460469627215245294478459032398726995933391330249064981851658400611934429279708173600460184161030912375823222662488274963150014597078782203551115998736236286691285787579299194735750511135785243901968975637556076049589861774416286458937216769386765708102482566196759593964878744046843171343495674555174055248034433515651102862435337653073362761494078505554125466843725220872851491914292059209302763243660758021768892101445080628281396602782279600816049570308038441395651645535528482491475704312680335335996858486633906430163841263125904275374827887243488827226139884407868897690115106277815770176579311528264878089601273859171039961502962391253714478524032587292502670941952204119131135492739830254175885741979618920538689638222933547324276740276108129874695217102507523597572203600948955438096588481757718169220080301876828026552638356409872866618713687960691525861920902084342032311732363899275187489005071364852525540710389146554637771199216930649796631909323955425806243445261456551976290976411369490799908500415148912757696027827562743241901196943315999922407430502421070229942649749387948976452972518401302917598833893602116229601416245383666060185691253970619042256858627618010178921072248606859810061846064691599498989761543458120281835404925810647109663633331315411276155346554470779906119606228279336258901609205014403802422759264522430360482784971370431093095055212768410852371539150589193419219146087253370981887958630649482105716933323883744124979775158873422554158532551968968135042637249906365817193143845606359161606531594914671692662178916078086620869409572679287766373736425911554239924803882422734317563709979632745421668021502737955914787853370973090343245218410335731530027282404641521376316840923232942610091998587995379794359072866064038797295053428159828920907338028075854849215648186349789968142974995854263460579687792249158872083688699358257221596004576385889010231246715811034374704791594848400366467822503642295820404893057646019343222317290067420011320922060543760578144491226455733317607730050717957147571642832003962870001175110291282137456335622597051287061608028555925530555075555214439356500764741396691407577270253318052385620260391154544833198879160245339514670138482039764298670887320595313311645671934117059731561616023634272774443731739484893983311663501861920599944221005566056413569677596316016578949686686836865149863205457401274647571984478599212906553780633220671648408850194173960839661463902241856008307636263612931175431890712611816338389389522168216040504872866634740889474618025428638977861594632769709805385006160640772700672271353779115427480865275603652291319645457255820086845815164332297877787474165924353629620342018274540101389557869694841157918468937590829157451669548603530561910601532897207263095683040558233115329657963961882595252737062304373202453814208405047652030458853024197099247281378550002167920036521658450019971220922656167404773556900587916157662242914270340160643564349862206515890575305307461837081793727500619168275340288944466353057046455501782267676586676448174125983554661434252048289109691898285643519276295101823709249491188651315721964129540451438176710063323115040888952784906703625936053011468207636759000778670014975989602329068882941631561930356951351008654053308671670832580637969932023093060261977602316402391371687621635506110308157668782424313402331279743983746283685215953192894458928077515624450711080839380589898190314947677496033462879578701474137964468861954806152318401207901050461332303627866401874084274036714538973406845980023779696531952494337250552490283686264215813251029475524886463467033809840758595820331190065280454003689530968470017245224688145658806005247076060747450958901749909186469638122752165396997444006249429617566408926894586359612306718874985187024325246340035357279331035053654359720688991763911410022158975561938306624045555052610869074413131511151558947955311722392373727600454289658583157173723952481904078931740117194882112505840007677178433850449752472254422234422853645577303959860724961880626863841359795421661325695311773560874101547652133946151868899143873593312830159394888123230506586138220245540821642098506342909918888873405091662934369250834183385855519722064131195716176371834715951365113584214756832766819474832557516267969164002202593269236043073779642827374292130289341556778853927996030615285436278482452081720515631921119184009824496410011179221912932936698468597398292860143336262187147461140297135872103848857988937941084252296064704670482372647906575090267365730057190740878294677860353662239421498394573875887665203535429889937712173879290840373880904284078109539291541771582906607337048396674920700187522071766745659286606819603261790753378104151687448635769892024201349025256456449335106469828022732695587092894919005776910344795362671360390384740463060251814300155594765254036369231014918898868762824665041887591601112070345453305093364496251961110691834173459733206265523715648562687866909890485891852279150129488055725220674401684994279375071653510482226867788405739759857981554719005322608249332320447664910917961125467863907683815801790616750529995048799193833111858919694826626682416409857027169929399636254129302215783310740222393030178561107222768560050107321371096394016247791935245426879261253796269784578358713437548696699697249035420441400106689361553798469366924697481410264030988645517098385020319505533320126266655392409222103781741394462379259069582402741995196275570160481780445134091488055626577234673459517613401696593506080763584588364823980478309468612635654698979323088214031925816981701318704140406746364912088760860515115775196645604322387068474993879330752889419701226952100305499851612588262973431979100484174285110110539234256922953785564983646093453665044902612548239883863380485999989567350593868102025961821658861264712536432679420377777792279427903598551303576917113814704422349593947256043327482495895540240372918485586875395854795529572956750474176414466728290632576596710773463591531584297164681804148075348183364038135043173040118993445112765716692365915323573361178622594743254915737492345669382770543669832727761923941103093940939586109954657226996401699539595393181536294187904627276952066015319093576598163476014768951997239449734397178795599317029485038293105533512457750866078992277858772171580949551967629136588129376760299074067653170388898908216532564753739878519398802123641277829046126816272737946302930245006582475291805448917022634561838890680689087245576739938598421124228511453813068136392935884742537349439271511658734087509994336354025597243375080349771999174416680962626524954427864708246365924691322054935318228573423052440466647232006394734505088492118426097979362609521958909521401574879405985862189821421363859045264422561712606510184537550453022183952836569422280553511934303969142738399335032495559473071509229512080669561804496992699174317240784287928312048169537627951716649553856047950591165064405085041066338587033754866765975928406444519272777581996177157565187383387570385260887112675193966264053562284727565734558038279082256974544225193633063796248039637461113178436825432050923024402131993103832376648071322973621167482290547940811128414929017512104691664395159344214390532962722893596472701807856039677217821384866975587150009299674720672347764283028408282322601427877876282299583348883804681308891947709576354345973032894611282078764015256832922739031021769159711087867813958921054319904353207160948788790398003240343662829743976265464753793220795549096747905808030349890887605081444666863295340685354914715810821465183309604720800872477583525017269712111376111805003523787293411758091588356430350745924353336850600251872567380498897245500101941017526407431556953585309716269278454878447689507891097246544237609581739976427063034196367256483566814929422350214487254963068257249017392051144355808622127994677312547289753841521922153560063423716577174895466118868232848422575953901142503553568493670436040262943756742959805849745616353192719657455373672780079461038846083336225323596324696211121281140045066801149865928642425271185760410929870448915408451011526869521519765620606386644207741010030263264049599763130123214956795140091143483967045039437050277401169005429526659127562626056044474220225334823339160967026460404419514622880148573331246474421752585853362060592619243750055712351647565238984527768806138468393221805900117020253330138623171835845462759752303034219207485006481811374490741874596763209719912780964763809312212123017658067350984649756082807796734370030765153847979083969472397575921082559018632669121127257420752528367350129951332551258653615462738081075654649204932165823696139148766480569210185562552072682338845568308443066124675242447378262970088052143932367922827985127256561155097126298664501253916098046353335713073502769921435814585992660126051533323068261144629860322168988535814155164268345085869423877005118870115081057549812389279386986217186636731607499918052965080821812423113018725221185074705600688796380514017412130459579852164355831470891957736089462901994901683686474072070587795436417882145968378514539543428276303259181218500324966596934611853124603913201667345781929701179506834303358202309623845606950440096045711377578377453150486756135303176026773576820599609211333676903593846128848931975411714330753245914117035786844459708909967997502624815194863193599442876413672186007403160693052643097449259657474561031874379923793701098593837094873305351937847725360845444572945334986239199910319296325927648032847712088218764414399981944902936221738692484542286115648323209148387014616350231746790863601202247090234722083423166283250595181274958022843459726042072688343818433042171794638223148897118304817764467937543216878400753801242820740981365560900335594342529330023398674145443985893608744704831861095436994325968644542699102344742215749393294394570454876374453139125453278932815365781916110210391806747205609674036291066782337152444343053158912338918095517163405148020894313183628964280826425971037403563530841761671277220984260270694374598060534583354808320267758346259013603072927157096303912132761523204995684244987716995289694259270801917689161707819097565787435512894118309106661558606232991817105640795506647126786381828462628911809865187843747549302401700160884708767528657887003941336739344374798700250607645512845386832526215558713206808368662672393972865573656323101750736190456106639267227910638433398268515097149949024911303941842539582614555325510826143663395112775275357863155957024542730178109654549986507132608423817683390292648382717072050245859534520957072091445680126879353106084717619260045711731080689306895672438946935822433061113684244838218395587038219086166828698516351390816955697159729701719621581266437560646413448426075877525726951459767877476632357461193546361180066736270643379051777592828117089457146980139923961551460361435386853415952315916082414612908041504362726430128187063828720790381266043444113780552122126421385121154689626009277460831205752796351743677400520286792925398826588822271247369225423462865589012721176463840444357771369279908067122060223892217384319110025165059579307885754108234630356353019502507369230779477128144414116497997094312743133820263279331256381452439109029709368187275222482697087270580036734393151574550135855723568804318920550900090135994446488126916558285153559067776905044269351137606142456703561902968957257826419740120016587848261965676073621770595369057039541359174815011960356671659731309804724971332052424005855780010051415226187478057091462604018649788655385201453972865433042088113929358734103579885179620489923956644531365821301256023832405312901819701485198052334117863396723074669172370937272925284537755995092906634212221146835883693340407244277031929520805219503507864994201679079383883923893610784184769732566622719310144002628415338687253767590471008672187497172567641094183259548130277591378819349267415008983866113121464343123456048214071962571377824299991550034334636191545240940612948840580703591614985052860222073319787877192032901445030596480586256113710719975416160470378451604672400573017967172568817251004103938982045189868459015528011793400240920241429217327236265004359334364973538772375854828323486026604357468605751262982829300891136779027204757400683857266847913941352274000686241989855059557626476890171374401248401156712936820385565286722171298000782858480593955736358605269711979056758670168826712811603430211298944305892677360440859502691309749728596461696073986994479228890851689158569680674958227934345566081526030322287907784509694871127901911247386609078246464069595064357201216669369343554553239118534806469152648799948880616028967559686451985061680096849061697999881733587188510189433164344464716300233420655259808904839115322515669134621181755562293166336900283884170194990733948796181511446182397749385774452342893931462136007780700416418540380544606525072350846686333975827381135079173876049531856017508413417912135182448175479013463483874285491881679187863391871403538461647891920716551318869358506901272660268536157557550950868552272342435099559773436510390164651971569586493228366084342575892422106347874748400212016183220029847219341111356033781459248244360186244471693968368984799390260973809137898390954281058708506010629983492439199221542784654960408600419947818061499551419198073054469537194870539646760397944410981374330502078557489464707642998045107936546392953438371252618229046623112116739251098077095346340006132973271519752385536111315391109486396706316348533193987529834186210983625436814710363663579526765113164276197401899160641225775224937373498786744799809947861790032108621592597324167295978781935155244814608852187747577339670870559854598996488673439784763702399095645718991609987536166371876281824852765205380738376862427595641752488162958256105553045460506890649086623174025916473241960461949436825349696502829796371130157434265070174477728939577497763162526540574315332496597257875930007907053838727462942067610929131743263061012198623754512099665457213635235079573985487952918346157720281271638272481924637253368838715722999278156456704786742026777540307657537254661354992763539878829935447231273651034230513842307198565067901110599636982803885616302833683940697236004098616558994753280424528510964845927319738889734105510701262981668851351509893583899191453352202086783501851899132700525317868717937471989078338558277260423974205407012676340320235907321957200897527320216172107931291168634582888429114734822947648931586307489848937076622539247439277071573954420329347379615827492082495988152806303361069241413307014240354534706348278815652028704203823710339219741295251320912431168044354274305506454085018014066060436342033990993664991619968235741834772897773168999982935448159218494279075107040372142611364086271262817260975737006046206403105193279953239235691156380031493849577627057412759444709678116305579567271787666553157716182225134256722829739981442053318135113764657812797695587807421791265333819966288725793098658693375171506058972275015416315489880292120570394578647656223995587546588337644357827090046590111698548558996252905021252366733115586408549573476425949372110249432012614558841624127613362529438069290166628812002482886015364933080261157438596774803901132465938676471691873379141916619590094247571450146426228847924315082139128532065459483656839185490026460957847408805456375377038110990818679476217152590404822171936944984202792417629264204670496111188286720585494650763806410626431034852697848225472928108206870071261965115564090909373235763932467931902590961552703646676399409618546166563057162935616003493405551407106230259709055509044256230620854342702195763079188190369989884888330929423484495694994610923141364407203272898281988602594643844168103653040595150173733680861600458043635562026938047739616762143583346965128195146487946402062504143484933495530833920179394927869570011468580027547552343223907482283651765661591188728850916617624710791673673132529022087610983001232831228918213014051307235902916028463711538701627164812699071943461876380479255016777803485888949287497803940257511360605657202099967376077475298700734374958972085250487078775655409559828331309382259912374387576654834691208786202312888840249315948118901124886208898908657932426314142383115934392355359276719525056604951186580772391346609266569147345391485733230837075289389192383277058775345610053176474501976119751223736315430386814786442553274775669505197535960571195732607483248492398100125949445329980661732656574416135030154243847203120061040553086087908677173024134260142409568526215847615394025203611758880150176119145267870158532194403116663258039076570888870946125163181233341921917747561228765863554730457287553582934540665863765866211003699795155907090935575923231387857072578499391844480188547780267490748623134080055323761072849473772497662470690342864267230627555098105602238074406111396842347183954785620737394829651991833278496214641512997476783192492377196505037738744188558117982968939062497213657898245548707237123463969947578115790809620313087689685727267517536591003406468865553413434026230669226669396281254096669488257001071696814647249998026758486609888207847529913105294139672545471558941238196198907429814947620450575167991619723803464703614789391266528202822955626030808077138290522621499525982824399692646431163609231007231894831547853122750549564878914755162166258865640336294005334834142865798203950729660555453440224537145068698958647328304769892909833695547425678181305209223509741167899107570665439790709197432517481362956105836826174940777753625178262427329774966154665620513016234973438644547368501556553449364182228804761061316027202445751517321986177571078957207436898517634419064567740106914518002149054968929788064753448804955743023386228871083517160065727917498622714399215784208128229505554347462088354911068015012686401370551568153949659667209711811811865499677685392659710318160770880901694076284815028757829416771093071378975310147026581063748724396418026434018306446710658227510347042564536858004396031786964069840145370073802923066505880444234368624844498705613479374769325668068316771066920762722317278999631896660276409894236300776877669447871396531535893864505696765531903166135860108947812837250448895272369508166960640699543449981885779642060795865460008456172350482067922649384554050562417938238093733666723411686133810916985280389792428402911049348838535525121163129008496017363223857794737097563973355896715184894403265547402847381077943743771673867182538335276093013542522699239167533367287480216462142083724185505652858765109555218211106720218028235546456761722758844083229919166590485672450141972402794951457731041002029423257699989626749979026071288184044464742747392492370156786200991374608751677312147478372431672266987479557510919731457874739790618266667713139678427116046875822140857831055898892830583256174996508084121002890065408690353285995798468100330424635901198006701915956179811749540374896418647665246773871693312081717987519444501749883287614765084448697985257831933213349644812915391857116535804737535161604201580339441378619860381424069356458432385888768409113598541886557933645503284926941910487623653852829103767855673277090069597808820469291853506566401758430635762894434340204754009022985507817564408108038756809850628295944499664410643313632900489245797583356533398855620075579156922433811250577342806949093918085649775877731392659920896208820953962002702973701225505743517630257915528056953867376897991364761594649455457078772876780383879060352616724569590215155584424021716526904587686368995564865925832726395331465242069334029723864890940023770021756844464861223366442501127450415333066816767854821021453097831528871140530251658668154659856422766490991474030730432376784165531002555966725568867461544800644322690344666696514994414565431598262386373830146084768916238278056497949317634145964780012951539419210830140995619828364618492288983806163794115669738494788649577171968609774368729195503976693009463912176685103850917478901932255290507312013363182669104054188592390746417019945557004138691512170677727886300293042774915738743660157062198555367600173253075505164812955206013125119785968955440053196963968733285262128627599415454978628054960445395309509989519734095569649097616166989579795348944065443846342282963830487684813767084415583575598414936198349384007161685182496992303980779945707383238476681091371321107147657234063210239803418620015713534619186853321097482938900395827822420980920844464204492420689682262632874551302624728254880574315336227985425896294428582506238038049037370780276622813615907669088204068892200609149291969393531943067763652185946855548751488410061822487913428227245884819811119827489287490439727820639759905107471510434583395326208312636372065473852757494417630873741424449837808979328739198263907578916917370227259755438662940031648302276626746795471077703684843032298944462651085755528970366995319599615755820633962964181229956268225896214635203592301057145852973634260477892237639394189222974349025661393202545856196688026867327031601492660995911567741523531638075118123929758624421165872069635975514444077664566690305767058272780678393592571536880561606691400320697729200979130788246751976622645147129026457524565672051078666457672739967053616045644135386958088376973851345018915859088941514401902079358346588342526154527646099694932924409279529414225338070198169372657022165156663588205613081803008492164599151767341183811617192103509503872159946582174425205570832654341326980294476041495537232300888764233409374625370764007415176340512759132770993630939768867029813814879375946362827635611502047241469493674336179906130732092974732335833415629073543856630662665068846203590850905455448732669039662580864145366400591687015265646448148896278407683593169364425101623065921525050497760802806226580650606301839866180144209279324659170455629689845749524441448561462936853806976812617877431130820244619183095380848476739785039766254755882387471626719623410200116552492673834178975462140628556573938851739149765946252143495297604971019317342309289460085509333649527038149170003841333995916516981521624089175780610032427484342526861277520268530766726404869623550893310079976191409946799125123800081783835619597799285133355722344673565416164002691499117686150817434840822627600783255775666445582670735329102676707577932529927035581348133405472671683589297546846443188091163635103137757363055042945115943382746354072165873764212094858685124392303154032769154508507398446012553428882866756053734127037319173635759393602795076485536078536919560941530074260799180534832791885923683450996463121234273872289525599949849559035294928592813786727330959289959994116234779383860223904842100982123767853784371311518523308403133737023914029947817408312953770789759291028569436068577459359726677635476673636129875982322071717585576114763347561965821985451225136148493612659570230025956428120244197129448002809306131892565377523873685714140537582536564907761722434788796853386958023203336949409542366419387563139661573305372513901121185806585111256073978077275779397002352589415203256011453001438728120393135988866133867141183500929005639038489217753028762830468596374099130635930062602611133457505219126954247793733678668685087368682397918931020370464680011472236764170135271043845130211771480569179169193444007118667013261841665811754656209503619994457395440344323350290439042447266278657732662816470744865807166188293449494530816608775316571789442561905626293378838834031350422020142166981798413836121235249228278580553766278872997132707406877383337545042901349494543758960057089838793588131820085462137443716431783559553075402492732342135428642320409529246543666847968546520550112459649963307229084607670606705653736188244377799504785586253412647442675034168848060226835237057779477541109539223730478692238427728676109815639020969800011570370908939388881786962330028075966824660983875337693053024311371994435170935307006996849993044706115274399295845238347768298816135240489340440758309235634603812311622699769684117889660405956493401840537694658287822088902524979676082200773399432548628184667107688887996801861105977132773803025395543622014814851767512282982149868960024634526028955574962701777676077252070490399367179894193002757815234053921661359301172594293120452222430115787497367848345286565784880829623802375396781136576348191417937474923960232786650374643847520449572381921845917685506418072043337328612469845803278790442110579777750399296870303609520610581470529805707853669773494572221723449513040406283366833515104623952005151798664554586558559709683883343918187598288658596833106616282902376217288108285558853766158858402896228576649534983261340032447793771858428761448500894350488780422640524682989131631796064643968871863292101203758157385297013513655328733718934284667051395110928326842386200474043689929648484429767689525161773918336051849075948605092331918731062836285404494267243256429886173507094997675028048368927371108756438967682888783711898331628037537124025989837778197999338665986824471113618922413648135142382097343882469834468406786446097447060340916525726716853053043742923852772577804874043642194092129029024067038758903271769030576680292248013135334066854348385078604522148472385497631800691133543987264593143541222706380384608163302880425469052061349178984318448763416563730637159821293395435545759168926123018374116480415106312650137233374340902154515584029433710099286935508232922913680939718565561396663690968961237732864573200820607814232473215476318898754581715989043654453412305307268253697276679896103641561433428684240746008897982903504497837602546101150151742142697678811838801987618597290160344174604005785136821602128285183313334753213597144285520865012758951844916082377947174095257623495075430277559096233443373798319434535238968146481643945396120276607841944896228610143921482754095064327951435494576735233866752983183047178574436924917963186464889125298505167273324079172748646549737680585677921356873451169491657849731396748262831917093259907717099703571787489680238199517265338615245278792348639600342051123762401852745125952771146221097566264346944758779942272244722483494730053795683896993751795062765389159453176834190414941632346577211891047663947873043882590295924275535889280877080688864727437606909029360076920421216096836595673018684829026188824395539697039549571548723728759955697341680890265517004961800410278370256502818193787441305854120517703120409316629788742400513378000397236337518940055341844653243117964448697816984051902609703248283037142682901703934891843457460707297905313347032297189564226764215794631196729844679291754336154416151076622546966066987939781574365649529803117092923128576982472587230899452865327735910620008418819081212760249650539262920823386180321851905350675109553005582920425452948010513561046436964636716715842954765211204946344307220181424935506133304655866772850785225092341061599536309497421338030689727744563722752290997857014692822467741930782368842049186577435536641736492022366876473095065746091331471521904573830282165320139085771237124234879225999028082081989106609151017941634659462145187040110513709556227777190250843803265337059848372989010060676644803315156980218026268558626510307884588445764869216344521336993410836012777491083426435466353513066190617712623155533283649516800637911727096731362528410999722993081207949371404385944614255490223133847033595840632216307239677536891180748080163492237105351154320863708572295632835009929824035287669883273516536853869701693319168299834189861348246264500779013891305524196935779332089389266864789893332263072313968819014286599168786276236696433603164447086313746705297201611613995702132688689006938130114558879099576324328737718303059173090723807680573214674290359273695406822217915779211874415720258995338905927885973016091837576906009907416482762861849051972577510045976723116911414841047767372876574802238029933196187709393394314285861939224096371918797688108995703071939443272092246026859699918527139337010308971331294220831507781184396399125499804615664392452525313529818465708366838047392258226640193518986577735588019446705217771006046617874652875267228225237754249649152621655316220346891217545854553697447122963992564090739143724592150322014157425273096148111444502525147486948050788150401150769984973551922815170163077929909695599748078248353724745516512383848325852467238711116072437518096884421941468800826575658353815477423485409451404201112209562675073455660088156635071988296011113343088378403341192729962110928417172754898904716856036219804379773033164194405821135005151391863214495759110427926317876902810541601385461700055822667855024239984111082848337731721829248178270437360278719845799022702747428176291505407485222865053520623965268524825508380785500389789454183859343140268759819895905493401688686433685122881765324493594569658683318154306852461804638517818174034542429985656254903290499064957483675362188866970676793882886725988304095343042038259637224080032742138342227129400948890182379039289896017811990037287720598285410989260795731161592160078981937629465252941144588748243868641074265809385466934297251192716428734633795067516903424500883720937621545074609325995727244013479742629762835870312110996351214190463484532858735889872948588469988482315442310673945179011726620248150070258034559540630235423180581483060955412019509634470292550047707436498699679816928887740395865735281510459625990524718157614426400401260030557558755656942129843128025113113439407542616478411668688670543143984920142914326306145979633303303963095273815524184241819690998379115874993692495740555516311640038972349584792840970525881113963296175461825903439222754064681287117623767371217227252139451998299646810791060000652794795328510736692258767279890305410614736758848002621425304722568074662278199824103610686409134468638774621849388753779426445202730104574883255302829760782817585779324563444634903573230109557708822161449855900657778429502436547122051143529768976328232876413113534497424995764989664350828937516630323081894045762723005389685619934370938185978783095023127591318157508519614522847649664964713029169194764465822864118771163965504971508741834334888203829971267799890640202582958795036459894427770799436459239216357812176319998173430222719823949577232627095198027545041721238994083190184738704569849396737064922204530985813607702360294608427344439358319615522733565127792245262973544094888707925120321418890918963531419394310082152656237565296852236589541794778062776879044240249929886802517736178456562324565403111455699534072301576198909847253085986873287335627584295796902181331856945954115500544234084567644825439350430827159373593927626998511469104894216011683007452954221020017598240452987871382348673211327393546115316322394316320900630692346116724476462729586527342106416577307077777955171473865470240410100417544160783520264597649093629492959032356854652482862779696924558769571411739199992272441553084183218439693087083258633737333818813776233433193922010109858444445878924470349390153248134837393744432933888059424570198484433490227450195196163277902110249968991152052735917676195737824070249726839700202006627621437390061154767474921391188416073672426770237971728404805448265747581563103741771877104022716222558962312444310594900811034826689133128651190258096944497603881485225153390357863883497583068122125281078553579551095855944546694137411722100797414564557525783097922023497428629580433185218378031065546825481661916812630996783052395199994164231904234491488801521755842343533882039228556494547455707340904604450057121588971004371568708717866011761821240163857851248915170681928423034703982264031034784600790409079259128085319683944375674498130020813554820583513461390657397674022218355296058044393749138849947035957795316102898306774556090036648304751828645013532898508836352801895867469913551876162648942287785605779542048703095252848982327206189087944459164046661746011480628236545677305208131271896660022811896089855394899209138599409547951876522056726706313696404496828387210100474603382108718905413001694822996230180223036288978774068969598663528747226973745450303161486544479249476443907506723501760334338379211199227830540126305907848995408656598743519609600678656534994838345032175335032097924990851797841192099617263784973962923526770989283049192520368278683966290802221456362475830811357398656429329359601941485628204224482642661044210181115913828995451407803523878284988550803457932896030436104120015443844135284512906401829621562353663983346694923355775808995762141394422151839925404557846913766396728441526327872462445695239639452559321199057105673210128165137747283983646064937501600525667728878545926596494041751925775027161265814188368067983044321287100486080394738652830998885998063696570084269838109562832870751412844780773013212524659613588825628999174390241578533678673750484366211681352887454657060040156249293670580021016988483571721407962411724714630044442465034493249745174211160027833698324368556515263631221319313717531716440731406094653883994975291978573370160099011112160642851447185354945464100266806188379622836459518068082045297854665882162328167845182414252482087739030683839798539642887217232593060601924778006705703188086947714658018487963113931114108653292152533581417334975069719641489500199631443456001841448014877873174531991990522909555797728529805238260233527461317236985379691195110717509787306059136398399154008033576523383960402022037052198835275509849089968190622319000301199169335119464618469976446336416930012721105046684504851405394501658835170356122080344354276822979067541430861759186267292844744679022839226001807349444489665911628196183512238613156716466107324701606580667566511463336068689644573736807670750424936358067164221265625239017553610273502463342797618919632006344623816340544984933003533133601766390322863044642160682974039121847196108153902620012586708378145325165074832827996080124196105920337079052200614943177694938203467282473709921635201488231311941543964937410032988749093180707984659769216306402688132726945976260335533687862267487402519732069446454389003489861340476499706323467245102627666796658935771572989966831229104673517937280109067711641347823579323534166574707673680103665690710574636045968913828816772233939732734009298191629813469041255757377637168145989455278133016195446122736618403216268589629004107729008926637596866044601151811285271581133488034858626900120339551230303733362219039354267306216010779057954504044342863335353893253400506899389535176397919657089476806371195640961456108619112849574302674625037086609379448980503207182848619081609273966718381912527926546766750642301487906173603536601134838589791721720426527349687531094242438627270533701982356925582244357041590756979134080926052146491918949399450284834215877227076789351502308640458268731452284020514303383613828281519236877480615523511697834320914705186826459814453099936488336072092213355513397863698682348698962734121986598234847210845478576840702956240401866988254906622958069211830222577341647298603179380442525450608316170580034615649170299713175762840052665049888095988393023044871008554715279525627739069435827967472869219769372598367615751646218998519184156498826845567596970888519394844865812777336937658706302130012055536827299916621620106167309376343301921942365048283647132874587961725847899422645337885894319408253834434498139273560360610213302639011875579562728801994432049239462728016209129165844762485817527469559996918821679628084774104630208336158152174631580107271555834641209192513443917401035265929004374905170451197415559901017579444221303922051303233866236021036202648095435646436463923532426433493260659702972575419659697206794950461164262579636772339844498752002654016311443470367391599287297742712928575638810738759586351941671237806158345697114397781556870957426554720706255938983555056954359156439958669157272319550937669114018794245172952126061963923958469563015856908514115375761379227017377419968357173982303521192372963921810514644507248454670912539995106538997547549316728375360441609601376690380707543287412561352835116468024937603144270224702609055241247356929715234430464552180506387088695927098432830819457759324497967429227970080437728295759556944651430063587024690163266030794617661802125924944982592997717870986818588487126453688456622358042296679365237129904272189530667780103208825774754171258684008758551549249149025758484813357735318607959587589686665672231389244609051529271282489995029866184554431862336222105291763807664350197077177025985666583082303028522863760944398849130063189894883541287105276276198990768622548704498182040746746232193584765940122428272125313153346024816103138581929549121420506101432327004606885159339513399812026970988838444689755127435637423674359416694865995494698361318308587553342198067676656567001999362414516682844585957168695278157676942828662029964014500108064148543169153111344280618876823424742175227601107254132581347562464458095298830436916682521852491541344504935757238023645485770439451999137475534004492959636968581307121523875225781881427984276799977342503913325669966525312839271657023182141015838331747591227958738168685300929074325859649818349549416804455554830081722300146583188816482318134019844825274187086853741149753794071688084974594043203015875663568283334241302272769051464720716819419631101530264745331208146948879656193188860607318812584334776906403407850762028515455794899796749648308241223321251562548752654399182102914668499535780123456034353268209364282891570648052273820742626665561510535144999475531687940791191340370852413409726019047871429306605598817874106429566854157063047436067611347531768241539730881343876901703274565675577306777951034664671602049864246182424085039931132514546171966315625584069749452679846991506034056266143379067106525147256406844925910938269929500002773976541570459590257756107269367807070767765040657564984221932281683813138316612196350707073173603264232392495155777563022273853792711904874953839461812530643357364948664567520165946629727963185530833206098216794523648739039798434059069522821213896522736938711021957668171194843873682005740395377609901588775522703020585246143471464544763547628354199172256382706545771770737851201800096359347115830593416168915687106619707276008676544695933803650218827966568484523602591284557494886544623350263475680171615755653836974542064747344845996793239835653921154663634076534751735000674493193173697592788662685321118670829021956468642036945156932526601793943579358453978906895971471983047791246262275893674452622607157359825845711452167503087513469180250554731068969048871756978120067380404218309971524923184214690475472151184187399503549156869523210066079078932564606184893965950147983336228911723148383996953160642391628073325634918467208860584409999501388850432896296836028965844266898040990475457946395391846259240151051349106572213471851329078605516195999073325823211284776987377578511334937356334342057229458203397570474742361506058196092599757162618796130420490981241073977932878670438674308695045898325980372946196006545654075089744447303170331377767297028650850591194691969764704066306721139822558839873681426341523838594039753606966842167727100941892665172372148240416780552588416730380783867617693732530586689918581867954406570739253871975911569547114472595071451042323350641958107484931418215949148015150762589995830602959632756109830884337801996416704435663865039928839059905239239488303119967096329325599813481908816171272066948216157255579135506664772916072524260176629864513141948029385718470941713202552508713136785288520975963902069613873125722767028349928724546837735029442517570660131338765622299360118724746151445681712533529795274728537062287244441088557962478923295265923272465762690172570082170084726030317738126064723713995550762858280674477842151971682488118463187647118970758612278738385361641254000371242867942135368321839944530956160196304329745183163983737580568663079997970862169295550415764149666464993576474087716254234646098587215695247764954763517955947835181597677297099184170965069079282574225382339144214575033270885444914456717481258722817684254054545206300219580709920136932299711503432860643586798837752179541701933702665963291714310089586215327006014630676814960828311637404817105731395214720837339117766834813985092172612821911754155721508466315069398310184278357183113110961003111689920509588452640927193211801617592856351273536302660391249725861239500683207782160606477829357144784094513992622856733656601142863800827325773171146184469795998942964346473468928038337754721068568204728758036598657986927974010813141231178712110881220952197333969297543788144437244693922293604625486910845059580660142360984027639024467638647744697302202769203423487366043613987671165415507133412947042305776447300165061030169786830621906274285986639611911889788907274483002811170048012808577858957629196103243362251602107950242674867864596940343511082771730238487724913216515597428879014488993062395314147684647477572785734456879365298598645228596200163440864131289079643730062735382017959582958963253650156262973350543272150547969665475623807281198041622864996203082425502169015397623371743245998058069213414460309698589802410850813396718316170214613448383006783669347911213676236756849664836833742605716659459903099173438186893059960758778076808554382728261865793223646088061016024001209493647548491280787191898391942701336256470452546334686129123256962348047262279915158944518479448015273369762406039248326284579522003215340841792554289872644183900387837364045585418251405395797148879757492826247785052461018566203015399386540784785273285000800691026818409240913917823300628951600703464095446108969323530887982554039565966004704922704440315725945146572332298365693565738343599552760425040737933931318184652200378972764779991035935609798123521172805979150255249562895160213792553942326023120532464226344370371886713925274386674658984190878635757321866428062595277759376936174230432570326275170929329637578567534901879079388602069981539916706234834875915101939413428555165360172567085221535305978565110104475344068240707659125604722441447248543992649693623562944538533461816899926648337860181692833402588503550668205014683738321306481155387979142054860422156066883744627315899552077362562204225782077216187417262466084504275653548636902111858621535415209791674357649064218960626722896158902782354334461268964302604678362948753148247302027604906758599520592109116720970912740747777146850872152078353439835698301303456925034495885818528519398024814129931234742684363933290968047369065786421954838343335642617387024783572967567831761852430906996394392762009895111576388012735109347631124948125404449144310651282731208991254344741135401155423144035756288283908727471618662376714256393157382878585254656922508434340403915338709616597008219694129176071363092406289844945796910492379221460229664425833143235239277875647704886458867197188273364644551256201424393933131257699625692189727345912128017196751732379103678294725730772386370685005106461192848845272823771859061559621724214930691758804254718999094801379009804819844742724110198069734410645527923367660372237881268283963542064900507754191547384631032094450219055450843396321089927985033779874561026198099415949060114081915364382059846891492585625466701050402284726709389819706580206870433601729330409425089489068890069665377918391214891900251257762987414298183220803654980813237011906290879602183834944741317417561368117077296470967560679048893317648013860160370133767671942238006447101922732060628381995264032060982803941538255174976524182843294846833034824365571813492619959953107212788448346335159018798596062727964198309311831370103721758769577129339492928283421626402519880271185472377075414311122628837921387390175851968418954690443819637687760262009308916114923931174058082719451595745415369787516711846515135099038059006232281940974479920955578203000796781524367685694908432907551704507288589466972341615115771186725990912673547301222460717042405012265007839358824543380601378601213262990673792108817238554451531408604117007929109175686418086153482931392550145443576200425359025622763047141457872691074946483921776461094209876224480198727943717779218760345493643368522836805007011033201345665531840636606947836198739344057313821525130611528963673313009279954484773571039843935923315526769018456902583965277293230511689682663733037844624323496919951235111514958527088806581772334123009011769060325454345858937645120245478452639645523851424358727149561574254558085887930547536313272762464289286443081660952799090762977486467881404623036265000198052169692181624214073857684098108620953104274833329566054262326479806998229878708045313093779759918515241076908961173443302715814494476975745761290990427171756384474263008260919656814552418805165941358435829447864221631459701563734204900748640270947518686905721882629282682017600390816010736977147264594235754734994678880216155745322686383349042360027979594983655656282191440825864241071636580122183558906815077249859673946313672064950071852264280184183078436540697183988454870811873351887977099179632499899588997142557987265750297047862138722762931481398971501345162696265899407701605621806301819784927401992437765360311216360490562304019296299743218614377381336099058220482658241219676785312587595245798847908635329434723735292970553109101405143019741912311189028582803425668369925344888228950920221942356318080308299031970930762147098162137607082423225680391306511205912837297587458759267549146408848740923972136088509349248570551616513591287875192874866602151822999976155239942391578740494263765328493670001806589160977759298978550012433931550980711789535563499561157051833161059185226436665410943295373176833730443723378196605566295737092720705676490348500732387522887310078049154823899899161494406409596735311424673172902816229295248483405249081881165566962833550506982036100736001795397797140974267589323502373641357874325914830906350467254592636440126187650028472274990524510688286906781562434453128656088818789890964968078033893829578007960130034243241241676993995166465646707010329793889433442207857555846214645622915346098633231617229051794698241154285593773594730547506914574716949414053895156815311927609938255349143284466211162016488103017108674793144980067069538515995517592539695147330812075047536116804794799487387305903914449477853705166387562538576988169886651947476166494020949319338332193720783614249638062580912705462149374217746136014990215606979445121939305040271595794560976859188688709560320736710868072133854801197484919190083038652918094564413622544996943081771659484150624306855361206739415688986091123538814906906239179877284776604073425868802312112625258386251682258795267135418497462418544389558634309516946243188771541877121111594711816004760842973647869418004249408059756789390895587735468709599872373268565303546106790915026574849338483192971497957142767893665670313193947707739264124482308041706600726344664767137648664081533245852666251876817120500558361112484989109721970555720556269410560809589559760209774971269430100035391773868485388020248242616695410149372373577448652083663810108271496369549434676979094483771278061047061638239966742641231753326711894454365374298965491224411704576557349060873569713888809979238852809170886870177385144070849031042958180912599177079040244434639153820646337775643341221618428461891046313650035594608644775813648228546398882774983498322809497191128461003188961636031905866990167655190129386451857207999853596483913982702931994337423689163574688310484010003581137980327076498509325554534346227972261072245689796379528448480019677619649349122505933354699263239279334162889818450480115670359816852697785464958272438105744336967949646142359371550579217033398622079170412815454956589865421537967273002040891174571172670676714172278591182019340694680249493321871884376155935326358551863609207707578045963779953007584617298308109288099684804889630458776474151598162515457807325288955948910948600647381094723223919543229527267507483203387223853953891147082933595757776928361665329602194471532058524537766125865055219581560183840460126410389636451525945503610333372081242426990685633987099018673933510580026714184027805525823156698825026418250124301743685101017686148227301426187120278169845859412792235727353747940627075094366808531949621887189959898916397632765230216740518022752005710585605874753739241316924645626564337100363747599744747428060907409544664011805125688718346753616902551730895517561412779473364945755303280326083816722003554986325170266378395169787472465065853385437024173270124357388203409379004169165628782869947981658376623884953828782431863003477501342136013517701636652572446708081393494423264490776733094190106660571527976317284231886723645761470872875102526527908522690446963193251998638481869800660296544030935475614751421231742767849183805011773621787113371780429849670809552209305159185096589064834131830394745152455864133520240243405165837531476899748993131529151877021025988776749335532191950644355699045642419044114094173755985860243523358308876552622971314599888695971817019288671018587416146988767589286655168134472120602435495572199209172601989561756436690170020238093935289475882652129550049132042086591993211900725973347830113836574726551793276465787575940074470392959273935189350579339216101457586754970548157599724846470218556588479655961863399928398976527447707830854817838457387689291794980280536365281894862353152395726520104050820922820610183074180535774781745316731282730300987755588945167266826374903968056871080221226739180225076205490339711668360831002466474781120539417966894491541238151366045545289391427713395434624961915905507922890301372016029583482301861050642771775253405541598919617306760259277869580012508955329663414220122535599359887215202196498987594445394380816116721403137630085248428034246462295930504909241440224566570078416343872993767664099363539315721858750737975104014787945303033038777957555666348693744615375535057182721711456710782040014819577131826134627028875324535162508893731372866696464561278200589987330798836033191767998036597069764133905822038963686696672349472353292511671886132313218878369611845108822675557079129437460221213182337291555298547490624853886597485287854145146455639715394815546575149319591792839826514188118442704635255481452171574191669084397038776836496576630147951607023143363206428438252311137783624474670813923858294261167229810485304811343649406180502177271161503492733360642254537583171528528166619168305945801895625310456728587131042323870516850595217633976728032753044831148905976955250349957275571466055098475272150284612657922402683958605560057385172870553762559892092426132892322864997299503793131302298601820360638993143183100660391400567422579390769754542744731396258467847046235812986145658382009353418495995231238886988549723063749091325842089631745989170912394559611578352251680437573641786823469824425502264967242107697011919630488229826731945927950218254949459870270669168563663735341983637516159499347751120780185275764991147987942867752908449048151344114607399548885826199825564327303205078300851863452520953253924031584788518178933127683852133971222198779096055760763747193009346444537173445645788072184506713537633239148895233595401370112044290390846632799906245701057143966511670842598394198377605826854600039192782089672435364207832801094873157558748286407730560926131987595058868587481810723710827609508593141929747035900297925130156333213106667933936224008520276876703758206440968091443834699991459334155743349066534909227603125418156274725457389877870025739832299493657797503461984189367162775294579647351048218530197456538569782936713803119821725080033183099084604951963165673291852949629552306620450313704084393279800237299152112158839172960822973434944961251816648610238719857766291488524561389590944189084513872253250932207855095298814543236730945557060776522760844436868271835350136227640627301564975725702414616172409989382612050002464110213488823684848849591127953679313149688073841962800369764468509002237708915483790609167932882864381225025593651883971411847069921016248818758887953661125731391198544961760714796974160219313290179582009527868382920433878248006803365446006925985720837882403813853271832983466692168994925956150638892010475250725672278726923742296695947934339106852060450908501442634973648718954214998824303158126209103174611995059885381169300187621944219831457585712065156309743516187860048830585462401207845574352560079967003573557049133763433297574929820127777026740568257852660301421292487186649021641485960012548307496202757948093049232188814841123059121690934293922760944270025065356382785180476415498352235046811929958394638642631681798525118937066962006551230369195369427025946109627079615381601162079688685952240465582799340628614664224297108410870058248181184821291243524569203312853318727294785516964558599893390753636163817793480421940903985084403997455289046101241438898129849980031810866311084378405673913545735130039287042474835918521034980721187836900130410551264754891883291300429229117322118894508268361580353569934759584489291160018336373821215704341764564758708147743172510524491586246756984282893027469581454608350151755101192926920218978574905106773597259923243471997641696430365401187021154461456875077762812949553771301477444451660900275834175099037409799488162651863985313202845193286644583255928322450292194926710886850447922631740364831851481865698880420436232435613360403448501213646493256485294644866495256958873606978524769038880244030772283967047445507558393012894922104900666600259385138996610674799844564365317725123626292688804074293401329861826724772583522487263456153007959570302570067452492403583577932304492971554719651041535149107800241488172621288583510974569772787140150274289527463421839900775115147480439969878869879485803382181589853881630648405061618702356171221684282798703938787008573797760084330044707880361260180708204388341147113890671704741152360077214959169211840872055173434737593887314168138737620912806435586749032137989623156638086815155842257110917339356182538246624099994103700678162705491844302025622789633596909583457468717993176814485604800253580704303827502503968704082523264234365293033735477757478317790546041078508424945689291108777403917706292078754629478339715768713995650549551869909214158524541914747726611554675681702130552110365218563343866900811854104280038530582839574249032241292014342868094231577172663308269593965486687502022874627034810780121171490768393261975249470140792004951936708998781353120690718834838620152211797034424532754425303688372915878787479386183740292788371121809031408627017846116660951947471177992064636705344447589758323344324685494046025715849771288277723307702615753458192004623646166648768020888455027422988226947415948144068421523660464783808301525676553418126300975533527122571997419868860105756130023113926836627638021020982492824802312717286770507348175390550273722278996042271479415066792637908686215424356828320796943814800874218994850204041546838629718986349678812470444522425867446080724795682919160457450988913955185080349919794547922578090592163436246677559687998520854427732173654151521808372520234605456841652614753598739735673858088854882416308358140241857146622468322940635002749281161361010472352841940168791054756191437030279701712523579408846918753088316399127785956949008200574965183103699192768387459992740379443592922076662153287091976960800336943328120396361550048439424804469599793060402413037437234451577999117379075099955900300184377323884428222856873592774658786216770771836112542403404672628685412564267714379863243072672397962008807754168413976062440261042634448525823484540702651225600393706677965468720710194802162366604783371157948391697380009119777305315102402348683848254239800488236895217250162742054174772721875336207831928898542617923113426691862297763390724367943806957931531536813378537872045814331474532676086816466310555134084631098883126976772923444695431683885284893284804631727437726168600646900262831326197284952702298737244328639635120864703634028823178190418999892019227048429591757836760594642569939596369421757503737145717424423534550224863157265993012954976637300990699596798677807494163238602520717461050695605853756709837843289709437577053774919705269683529501332461294195712019372307110152666257408267497376229189378839991464958301879878758955109829893142944250813181292268949033517682327177104196077167134187551979093102942684159768804350453733189565142270717981880122137797821621076186547792983865384974832953537992030189496720047901526453037110857254933700638543203210805896399219752042938229277276967361033067334019158931233010661339879014739896207369916418692240461985623827356522760142069163381929366269334256945292512068985243431862555674237392980172925661498956522618973869432740703353548787933247147023550732509428800423708513241772337909564291111148043046273768391454383526190512384557075086853451952196801293335705254518286487000907916555852546849967244639392891778159853418618728881407860347943086736746849765788231117440218266640756866952930998051918069109031584265807137076732865064882698876048384137420785936132057902646386098436832992776585052027350374060668063471267797446912979726955697034195780078310779420601727775154971802253098356605362942118014400807563807843899093374042672999990645787416757367163995057713592731840727262882814380163929450356630911083798248641908334307924964125311322696581394248335222961905738872825059907300702461802704197615708716598420817188304275296097765327015502647995866868261451543644069503621353133642079805839039177859601776599700425248961958954102304051830213602741663260926051010723036203004519376815888043120803827332278333114180626064466185136979295227744634529654109918776044944860378543135500093713488028822543546900516553891673398348986707347397607790997642132086893829774630171472474162344012536410421927971318476136063090185628924050625703157959965010606874943291385712602096745942374803473554896483587557734419730870920447213403749538158046692480317166786275304541299713208093570510015315202799528856527702156149748629950816693308997659410857633642056610426526993346626236754964140827918953817718731204985148198025993445457949556419887170827891389131380882386281725217721138773735666150821871473985734662640779170350687169752980515365584501801026974879080229831371088937542791635114001104728624596308984727561561857527787721840768990372986546063213090712118298821212753133782227671731474826865075610193386867116378546761453863075181808396896556489545982043337458354644201133837050211812472978517347840629872659144211096831695788658261166807502462248662564681153236316113455804929461317344964066864173024133012138582334851433255702035763143831442056521892835098669313969358189963152697237975261111638116918932310508317415968131722064778543420279232290117147207332581557551154219225195571383092767035106082865285322498473783476876274344363842727809067502795096057057598624157168904857977645215134580157411938689119195876341020820752221404657769664914608079188067020730999286257111690393933386595029053307928873230216049654594263566144115592325401232494129922178649148777752567343154449792576454094536960363928408322782279308513390539961358586340518072104044091071162675600929669303029185954125359947573000712294887495562538936059731538822031069278557370148053711273238563604334716178385726183381483228845323059526941655818213906961883343253595117587868393150355921234546453570436863626619583210419963610475752487169767357412245454418068722948906916384831789309469331025418237294358162481777571455899139198184280039731069945575280220933568391634670857623588731047035475750300227778228082386498594074032244140883181611064048892654840324803088737641067413446620818663462387429178289184056479397253008393858146679110240869787457350329339148114444861966197294145312967607882886275349520058682105972220161082788539109153246747179149920556740178684860343662974552547864574814763331840492844343858956389088106580114384436833154070267461353486193051951727607688337468734670438191028001543178379985903123578546151974435378351332876934763910314591599808803796208456272793860800692755717937795400171241292699108153961945987245471194688441824502860390935570667392187023592714366622427070608454482685387463353544749525763611492604249231246622814003600798065666155869590124748297345630812463367729794378640328023345345740460910894596063939131988747563069638574250334531488661791784841042296829099778419463103208939620454877927344416071178413053237289489401810940607830976655777500362554663112466142746110406006946281039045396668506529688041161094645598135621154565044871803436814812229743303477788247320713145342122987357972710758071076604742736153303995923565646177151241294652525061940015356683276086595568059997561877937241772572026772100273084538695822251688527612846206733906272188359608227374380200682107305232268510918460596196195430701642114502430042628290176262407132703626719544275438500167094224009382214039323560946072773571601838371379080080291432929671462678173410487466131159359823425731176096275035780522833140145877759207559926329457118146564816471222609988258942575967129471557768873467171844271226902470866650651761860696053873622254706872560947796309800296875383975557397498301709796597427628849840679185947605790083256520371716030414336759038893022789000118281977170504241557666717613853744533214592307013179745686253135364372886181774712333809656688010711202887217229546390640499452125188584370089063225490553802293758327200554320410209313422714051370088732860316666709054584898496197205544433407015158728137180794332555937400757690754419137290784668993000800195424935833890264423465689126220931460187094109749614832750975939825129175047777681587501549375270976446285410335916306339742294430576850357157615530306260836548309965264569920642974926239247857335373610966320420673182914487947930002013225372151047700239617947119823601362417089780144785489524532285221601536267438924177187082778078671018367090715224912160399482241131371172058360924153812938532332095558833484864770442769432202302787182967692698145910677016231893950460684301204369713373443195265474045023239806345898329664805687644484622047751878030256760831045276576370999135379402176392630992448421517785110082022156068313877297042612208546774614687783291379453930459589999760758684499531110336619486401867711285441285372019750582075909689275014544202792627244908964810016276605150754466631439484159713391660235056438787079766706532292025748185880418669645469190580844389017993439058425897014500504060223721146978705084222583461157330451633130728507061023931060752119316835503971220202028341402949354333340549009394105437827757531920476376575642215766311128888859375483549326718874700436957069099093665935921347607292166836007902084282817825790591215849979581879203933637194798887200813724565393559681957070162959165288890116787396352635877113121580213419322801456069509350938213486292413618423077552042832914568659650250224771290501350335613530492343721190084233390186967972869543851374350562087550130619858319066179777336308392654602522852883585214460261490909487381695515616156229182683224207248481711044261396863128313948161116267070020799110090653099952081713329089234026404509567032480081059292180641751647932701014859059117840771197994334967962222140678972281779827964800428468669868197159861384152381185218903535565556701756458278561861914273082722681089771307904152814683721205716618348626233100482636070565771371765659747337612143720330054948457807091981622510432799018190090537176641968833109241266289770774160857360653040982433666254679054819505943532696471628564421441175133019730301091267263464351699456215552206272504543008193366445212141014527466438008597263227116636875472943772324683608990049008545480101249815183167088294114021836599521302899026386940320988590904010395215178527167140806319511349422466952799741638264591851262108464346425924978930553462691407000183258138917616635436496786635498006089998306223926915510137202318725446327678225038119331415164489098038251520904829498499274342451604223881976973994617574429539902687963616617540103933119887323377506608041927762839317730567708217658625954745564502862207786780053859770331437198558548124393916412625816961322964117494575841280598355103552448427648910614554435755316704608535029039564613747872765691797556696390088616242764160172474872330588192216039437341692419430011829461548118692532730947703359564208076503302283454727030223891556527881081684559564830740716444904347677718846555111232815433525581377978078378238981888211691078507627749778315331364361204880170903358078743212000918109127916835402388625043262542956059548631637878441836966508695477726113405250898146588284257804011379333617692819827759209728599178152791707092142615582591322354478061003940506355932901313373683871136196601635477995460790081142575545141750339121110809976794556360301807905532002170852921032673847275609840810223022212295947526178263342653568763528284022044365447831262485639667683141396973618294327929631681590411701144018146430386139968253389300338411371911162795544162279393371321921134704607560063351590559636072298935436483950463471172378682882508870910762939034832727070479932727721018240658928120491796988311722107476296984502971376941701477196886097995750899263620465432138922974485059361700797469157453944291349204907346680271826667451218924024547559781336449630731074041752620043837030631314900904411982770870305651992371381494332662511825921892791222951884049873076988025987980020589842141582159948792659931504161826764813991928491175500988261922205849538867617662655937935602258140963704992133118723505744770621015426028800463410107290112100237774902744739453772919621981197915751715835523365255362771024582543563124898230620251713157521979792276564742200290213704497292816354817896738306309154866593916262069924512278114624628865492887998452884713516164831554410604016426763094902484021649153396224593273446252664114229674356373604153641598848922037004976703409893504035194352661019730706562115002143840077819502901043538027200280607690580865364210967462443498266164807244006205144418066408959973884010835429485797105329385561564626317833813437536510949751457271777067940313940666548969281712239049813990148706779389542028949445086733690680294872553808651920741835406392749155468982317773427361274405033509971206849983228044588029940209339095964684007540919701059410278697697759110245707803901926551177786080886271775414054020948137447322972508967141940183940808077623466630799348987664301113580347777591257926816799831839373375681431061047338258130279726454171846197248069404651963452146209877983931028186115072554418025067235099781397472088810753318849688012670829431381187108723875165097841133205317705229505838988338148905932108292225197237415541231521230202959344253649437427719235461643496379872813025479175058573211294542234707911420444535185808694258835727588338812412433549510223993394882837833933499657206502743688096587571986163166107220902077009333191008733444937657408576787565784331432788428528254287045297993155313849752398653718767546739799327046554469438029030643174540070543043189612809075001922367733499887785791624543344242786752867815518832874567058871701851161643755671126640118932024178805166953352772222010943154643867991256908600116898145095394025687617235549165756828759920327654962675143017568022001570308829590930790481911165641439847109261082043168041611088118383550890305987471381748313456101512490086804696684766697411768714263785025881656250306428014307584864456536882796355183279781961180475659331610845460047052160190460293544351460993308449479362669394679107683454471503370033749550958516692856444142025829983581335005726226230818399028345788634423476405297789709556938805521217045767267008984450057472523887748776117165253219017560542853010680410143755583604245881702532036704476629037250102065201137909820305017899662335116924332066498001132572180632978982778016494609448406679202429261155125234288038869921320219825614174784892116324241936882554199989297575121481807853999916952284459881881255438092462716739236379595966720088082918071320291681853308588629040217043067358983041770856738160725108817560933351379417117798197363628257588552905928337793945133045185350392517464143301861644995327641271367048563489558536359611174547090019794189366937377908134866222028510774282540509123797533463040570729049620858368392819620998102922203671006699815489494765346291240218328241783118815548679364288115752370962597215534827663919611958057610638589181933655818469195545457497188981475791453692217631133373026128368882522146956875450625901228499126467763979407190596679589222390927669738208146169333670201623001904417546321444273270720108855998736004783111504989460578424648912392152360499115729350816433071291253672003518129131393053966805407678809675214127886555052678239436659351874999561381530827628835478279645396142282580330601466745850146951197909502344805958208138529206456335421758072736833239321840315166219034200379556902972440331575072709357048205658058733792753005197522016932017527306181966462617621015518318550420476283248079383703454815052882073330911404820586290658661117783073783407894840137953683265331325093006062086110494032271234491879947917874331503175920403786578721296084005979021708240498622891112766443319155921986189146294943668868335461909965013488419617749227669283104937928597975955116453674720509214879163380195408903266019873075247834045914028489895779565453031745348785882362145693800067198546936037164911855889013550927198860795146100615386264940170068419908155498933138454581171014188499928757931122575645021955473098451807793135437870574918477835750838789687863921642561349489783032179675192319414476940914309741963265228485554382232615080555586413257571868309451446268057574048192072719701356557457954050993419643783207370846401225316741026407904625884411594640158117774746989430799406332602755245040966807866735597911946863280616584315191802164592936241905051306125709255339646892316487313283657646396982577801274745417429989255062223973556216061167371374360546768157216883025457426887823648552235558621371389095674918607102123369244247718067090616277603809430315811850359292004274856116942779419179067274251939482122158554132006358363446387980322857375193626339191606226132422704420140641823701830211817203930460665599568324362687976166544652163844389718297675633473658703666593145222729133106978394344945354357074574931867846886321655268918894382883945102449146757352024832498841608347580103088276076673444928805883869067445335141760836783671678898399352869947700317024104391599257444151942490523924126150147108653816844360110569385042099224679992672692616969265955932617948432977827967936268993224805215509088542871913946014979010090624975386403261833204244936315529740685020615199976893234196671424493475177668564673630925812788077187011199476468238048647080892812772661085950908106029032575584779804726386677912888669123099876048290718430585135310749124574577184890973200618069890334606951976900040188867933939533545418767670568466317242318708110691932006265600745674762237057524389194983453514924548468955011657960272261542690143348499156419619180488118579858041326914467572777653180294191117141416886872810021222580630485277222829859582016924903205053113335192436938053238184568185835890736655194148574370213257982285556209687175193111813861218189259905474570116372041069357968151117558656238405872646704268551851021632582769108665114586358096418275578900564745965078450408622189877628397142913329175822093551734104012159099798190559118059108156026456388515102587147233659733906301197106931161460805067114772758846429930984271573414719834270379628116554836560475413405014579837032402144723245488711188357612708767920294391702476141900374597712110575269614568898746463507714965700056629399293764734966699340483384984270975692755198604029984624868283103412244401620747400748960972827013070155195502897417303498042793765082191986177213567020379446557123442136613363436500238807111354383427659913926380558155143694052023104049432029025922970827933722904562033936936235973209670261510310585383099559415585552614018448587598568694527649413865308297540631379857685091590491709276556170325455340655069355180961856040577865641735731070863367589374778247646539846204649787517080415017300750115909599761275094045766524825575174758657901755912823061735837489962517547945705280597613988997905038463641081521719384231067402937529418378105881288771325024955527735963355465618133118948680414861177675350877160895360724941051397435452069700223511654116542054417921204390017320944439277904648599139930367298447470188596088882331685361750854361381928933866957601673889270263000953858695461532874446159796352429079366559911844068605201490974320136605883994737856722081142583278597552621781335476314917806411390996792909118504604662657242167739522460351262533214060030074010227424122550080334432887402345364417609517429063941732768019031954822703337862862114301391831116332611235332086419838977987557913269301984442410358068301966900916619479468771187994599852911181778898027041659828856623387790725762890715564238906967004513190905947641331903354420985218715302133855293272931491525841254823307514868467459263096283763070132725517917135301462817649509420255301555269230595559419777385993698849673708155005564959135176314263658104765146883785577807677891369724024564769874013065800958691069702218175936261933369681603787635983094700522829134008704857104146721750685733791286881303820724174093101832212859896468695926283509316419190067467273290208057747558542274860197152236061256039733209711595648898852659753471596334360446417605979334860906532347722162268432480015353942243442256781480027573113451375419989411350514290918124997102832573987698994583495024839257745315992199957719507987276417020489605765184301972987218751805749181427628762105041653827488180766332277391340450282927560631393233230042179979658300010996550778331809654681765503049906992368424878108586472750145492406292574972824362914541741066171914112944510361713097506858228557515462642764828215393907262168556800516542088821294983237742500286501365179705463683501470076208241012465012645072206761477122453489820051694944327240804649984519329068633672629227886761435277352054163113228084231058911185018498137657564489809527645156248502340005385228851559054498499189360113849255118294034170502014997480447166336861195606430508898744637490226030190254447929619380716166314795332894035427580283743138046811424059336191934814642797207963787894639116224406193360491031325821228870291978287373311462083897463447282311852576076556831182289249123457024790837977982949655587796124149080103741796719242347038478065987436411243812541029133507585479620113131575049316896122318477281874035434407660820954773031886728278378498282831932706818243109809489962400894238962496584399165642749128448123088963058013654736362159766421479312132488618792155806232358748654282683977727876064538532919790593836230151291824968036565312284911634147241872088757599158556675927867050632755580671289806972155766469192129743275305095968324770998476293879336856201244539554849120761319068376718621982844422491200243253065607290043374744696472500006537220467877468300311551194653492857480109187669308712785327824902640104307330780189383200568363031545718329475742338127026806684029544513191650539217069517157046614050847851639900160896856973305712981151516348964630254036853993485405091056367703519091668134994240050432058792120607139502503359416653845307940531104175911210288315554396819583164574456110448553033038362961431383442572687449571805660207548365289551833074391377560107717559931185406488474673582554233792982774494870090888163459917956607093021621950941182430058785342661764972514566073317293808924340080239609744665405838439926815526215372280049546217758678216964209203068460513220624614646915561895062735646442154938390176024973043784398292685661500642413285998949527265748062679339666394797882111061164069434489217027844787322252526153948268184489965105024913551872816181076267637102704932792103056420092977276897139687000733043263287447825884590498360670484027122754247177215859149418529188262516452320109285459003564803977933444167907492999541047739747145866866008080270787415964071457333836281867680543719051467674645854855653216866724992387281865420292215945092643297380417696298653024237463523934700655003228817402997645316269251403297100350979314150798012707099273880434292027797450698266321627281422615514501214973384782002334201423043021840614426697216328173334031424326706903893619362777355227236965713843739419898711763943739514429303213639793182107114382080025558476813423652191226741424925208471639717017825883559582509351979541211768781042259665723740701233335839300306319558190873053176251281488406045976790393926704244728968180479150830031001748252775584637314631808848040029934227380289404242517973279815665397509156534417356327880969577702484742028411483630403887605403133019792390666421908803781438237375520766325577335137342713703135371486375976991244775171935471149271414073802855360766096087523701974379391423847925483995672040798953579284373180054043844210902182510833837037431380384289426524736246295497340663628150665860321623283128101681542635236622038548791407593235596650470278638873079393956429422392670306200342375692835248615077359571398243012056261806534505808312224064222187199349279611592622413911861346320564892454818604060962798905524556806852602165507912174052904194152394099748505143725206441294445428457788350404016483378535180321260975838584538267722525442742632855536553804360824589028109205048417680377245184170279567891763326630610097915476603695939614902506151312886260881014621411483986729878404373999719156705060475660555963101485400857474580025990038229087698668292194432265352949348421556224416046706700387236601598102113224820744271173371592734370718534386240246614873027554712482264475054944574176216229018701629477507498348253501154332478456664255977763198812656869379482539605316947189649079078610546909203801625122463175375676270257089233701202331658963332912836261294388424218902845486008553596868211454214493450977606564131622822075718728861563703785551447651232220733999945312291423265819965180984955523312859193444255711182060121594064488644481636818656901597318588194337058484869370779449919987250598130518537149186593816024168649237599400059562966270678900257280381243507575750284249949317736017052630529824470784916613215045560619950391680578921635862768468925110288058923478015660689924758954357226207316580600392582162615293571582810097133381356463922176620274788678093688623091553757032502730685019413130407931869803493115524057568438306312276893195333078612874078467016970456127147839196835420978749789942877996531601941121360467578698891514155909869429580484384056998427770069115170371525437699116579531198576592589562241315161783369026376961048621227618599734066431502926367496791861068074801724777242171343416454857813781204228447419175035501748915439023561977985149395880373716849683069833848603019904795785294540469327073547414724335152907352529772187787296496764394054000286500849812134513288218977698950390074642268360943835281669324352210293154886948445696353826155964750636114167928636985934337453601648868420297411561162600635591327791217353499774350626754376974544726531340859207689414816320927369218785998108933260839144227172818212803954791161243648697162181302094693819268804638551783543186315326507711217110744934543019956437450943811499294155767553967541242557181550453071234273261065694331265611708190454380094970168969896812623211211398019273725713593913947691854510971578547091502066058035921288995685730406701295692059789722894640920736288158709377856785034746445735230526873739863657782189586618526239860810842258014662414195140097681153311158822635265213004513795718058458332850212033641106723951132436335309293860296790955118353526862158396180233818201578783455698237194388151540248088682189959956367181516867546732741749792299702919093009900335547296278069917493253426823890449826148703872295123631754089319697783315597453553228829428285438968444769860347035775053879707156961314299452260539258473247895891616567095210265274959364219131587916518372392061412553982164249976036729154024751579426632955879978754584155272577857918826959434362894414266974543754058026235170671043091287761768339060883484639040069117569751420314764232796017583962683404572911699655557615582503609648454052571514667027419580557375986276044849213597838755731728302242244912089361496598850822104097822650968982649550608339200779122146983955924832051995453004730498032837194663590058859670857745697207005318249258034830542866015656238999348953043382113185515251618945130363373658442058109943121106603662909107149953859919016432421555680308283792030536123319651911972106137063816840211826064256298005524146904430249947414084605750905504393795706742140275663897141340172330336765957350713426639620344405283135629255106373202198878526011544475089841937911492466982439533629914548871355138135939594346763129025168568544522079040804986857028397714269388059206406931569563468461570095749904708604433799674319350235127580876756206563467033323086261357782134291365950531634895210113872077391246471370896924132059157636962614945320889417760332903479125031333004266321280495698819389512743243369296800664490179873338466377405031373695367760576192540832741450874340086570928313287445951475324612512883331024967081712844621947673740261970592822194407953809501574587515704645668095990804035593575503130942603284319890617463011815262511741283887913018175458035132589135123840337992999388539410397761624304922168766449057208608353855462541641034763746669947801153206050562284336987016680315360343176479578786119928761352378971417028486913654009929323620557530344104149271076571672726615278899988588765007332574975266130002863117937804022908956053043462223890246583609421159412869737890631876344709999411693219814687156314614037879572393033661263685293473392871742548196389172546969369872021641587244961715603380623109246556427453285662507879566953554836155958511616228648917353333220955049114686799217020456841819028369810852188155624499901318903751976035172283820840934708519399729615700932985016606526956733276599767860857190488932653872162837594588257302743741222904398182051311792326779046599023864559164906626067137929609038063007987001613325364956968457678822465419821042903266324747116752314953255939809513045173077906754214103151106953543831140193042707376825640279844288018184730584219948669969021014448477427564043775274128125021360685770922945443412128649119088119263573182319408317252469718855975135977802259688270085333701622805508055850827192564735700205461153124899736162439867666429292136906011720130034972409548379241520822745857295562731674363355685967462154988783048153166195454773140986422197440524371399570660668070800474032784901416496904100988942475834821592434150167594694460926905217565511043709916167259334744683868188455893670878298458980044679432294254523478040101819177078936409156363729210753870127254615644162570772884629123331132080021979151219999463170630416378129631234001450313297576264648493177353790137228795590948036411047636964824022579775786883963287907476785020656181005694256780721687777394068787523686334354875044343244917299775509729617532737575448074882930924381445315012461185627327793814989528982812197119126622828006569985538247189217916800282986939375901584714100732681659643421154270658375887004904432326715642637830846750273795074716335560010234659696012815124876887513652331962370756067343984512785312364323579660038130281381124398289704706688875602949265095437877453450089939080482479462162694067910847086973856307674024916410301966315605012200021951550995457022561220056058754599870742833164519824318841161276500444300990172299360586458490258657883796223421851764087742024045568240730107114330708421103952147423701203991209875812268926042013565476669262834592475244424745859454528231385195780751749569365785466980957818914151526328726958078657377910649230311772838945891796807796641765314525876122659919044801493229888663975350048141514695665474016892510461565382074003456548912542748523797584895427051338908508134296373937421106876373961451563966720166998827811710978146651191665015673639475784697158767936309996966609445186741813588032684095398347773528933908102063060477326489696167605326157488742222458551026838603640513768761388325219128791759199435455270259294396514395982071012625217191243795364326262624848461337265244277649513605577362334082808749988923655636243595869821460840491363813275804117970421622038727880244369034445160241696763468008366901995186418264690220332428671951561398228774169571752983805317144223081835357960193217758338513702660518086771503271688854295647782858605281008717164003678721202451500710382214019677565592142004793492267180759923971539037684864994995469433943931137078766829083714093161857827427386470750786442231056925694214770287344514381029217381605291320026820784426467091379826459103594480308920614171039973117544075834909156800943330887222469878839585691688530845497641176431019452724751876409560232386490022332572067104345639546568791920598979893098319303880736816852280795180089811289556823072223175403942128895990905254882393018419206247622631892931287665008587379968318181622881434693463589857348459561482141087563868265730578782265826907515926241695022712250474055651616264923078325649860783639741560851112453418575623358659006129308243901393342974066487262579776087030259070186289480905944388996996096921666698721041244890835586174196712155724612791794675640066481130841429955944103260152157859024134749650731825490990954628401851011477781770783527324511550919278065200607356133516196096980322013622574953201172636463759497890426656396946411395201890612524540563526847495044109175728115333187002524153332669443803253401755183088730339970729685582185218664579041838887596581211552361218165711520229061366924899459999837631851504727840890336175697899001169221372211212127839153301671055806128250243312872425626627154867835880271960236158594360522345249643898849296279549108431342015351948466689145219226276613954907853202252811285995029610721213239888950011369855465645778297487509224173012490360961057998822120576105626930075361863344197719519408822589887338498722421060162197155196580109951087901461870602205389740850856258912265505781849744713498570395244202956066603909401171731325619661311480778353891725306900090309510487392265951983211353474832706572466933570447383994443934786007309686824606406192022698758882396166180416347056751553087021034652764970359398178746647701172929050923954602013239468364456213554988723288596025393456023262615161465618294574884505258046358099437190888992076495857660715880471556151322542589984243599427297305656307940911277513203653381866737718388662803808981092681950993402557628091556101432600042117253290216011467430423295768457686435491689761606083948863636674825952442051496913176364159884223382200101882145507967308116037372386977544231544006484620902877975121086544022668248620957815741909793476425747004491434280873858115704402359311352058569211083401226599132441907263883690696189061617627878206352251738670587614700525468096225186120806127319756278232341101125719355162747411090807335386978067495645404880999544006269960285267111492742536141952517030740789336366244037856853681167678382675713280389503436595822650887337178033618760571957333720936064590011264575671399352561263925120142256680331263133163875482181320936003140321470659730008209982658086859328806297945925827446556589222487064523967630330081301445861030650315320705502365055379998321461668077618985225268880975349565243134977867512971582041992993416541043124629182085625195106765095657422671720914065420909788829020370714706778035823411891353952594872465984424295850880376459579184100676426352550751032907627941144795452362403695573935594552116533626466879603176688505941140645750474700232725235498990218409637118320273643624966855638627193739326628071460973157579473158289578891696094294785466597204085593779273173715477066170479427269798217533237499342367219921224015267272266688219156154632877276399193870332477432170980438460109052300326748004995558224929216212546087089629584884184390141087588231598936031854574915706019144498044411463756901735052364527553351435816481187961414082831625730403412411559662772387228438568269993432655700871657414154405621884283088083505853010987951049840944375238617350150033912195605496546625521975159227965295979937454294087610123283314369816143982204731134211717477584014426256716843711418021441522327640082725793902904241216144844357598180415902598683199540470609112378067861020198238748618917022258968454787322245683560431717398068355528289814812458233291748699396705146700166299464453659689323755082683845532364073552203057366883981098856230057850627397839025037951101290800052477631023665590938177112033431175647067787535188271849133063830163599968978506685124137430375706884397501411522145619707297204765655275528012701190068635646768321558785276859976571648250349629639389265618521883263687904565946264499644103466485142606674453547191553226553811824730799520554306166780905641809079241021956679551797155871986890753477641905871341701400159251668014247853535584029804235545926787913428669698102202882219949417455388615678230022954001785452731466486414548529676114659932735998768990370760087830208992319226471046643410211656682177084046134400038801510426174036501794212472412069130052255799393366761316477619749554874117818753377361108176818121341123011115904313662936218019209762152816509974014880737593261194763708131684644593919897240133269908180934695227186036171826617749581675074877155196245355290403237393924387729135674651574715756455792505310466427763661424347982456407019903892311599076950989959546810398303168486201413146777284598231381229092810111838544959313397738500061291292948329948255984258921679980044753233831222456189183686449392835821487530153622275707912175491216851215193384062863328398969430784911373971241930064846927305580958448138379675722096863163739948468415354371363129558317533209676000806420598527980806018909495280323437430614699184973063859313956827358483220380938142869929385197560223563756594875339849111715783105120847583483781444001547939292269644763417555317901284933237697401167278368263346181407167709674665725981730849593799961834746323709297770506879468040670625874237930244459363690622282427035729587974860012723422890607941672399207950085549856212426091060465311321419436731796138648753972302901967661015601791601101990285408107083955201841021184119526737046682965078043928494895681394503340536701238227366178739685393502191764225440181658114292709678654174327384709334973340833426983041832565376305638282972475130794270599275089965559133402907107868415784129545618974516231231804991315224309947591226506430183908594063791575943411717075197451647766835441348441960493693092716386190285902877869180449455213987355962952619618934267061655423743614880539811836781076808509125300418892873826623791542441451352216691933308367023354072248634725534711183934179876550247348950850206705592909405371978032361448912279782781671539153889992114189022968954256218639001901587813220878276367303309629229142359991186909817311296299176043572985525467921130208832425049408933368716469257397034929151153683141942905473697074421646384339372304265731845906605569526169206925760042476739110955347891559666016344861387965851267913240612188059098238552684866931868554167705580086252968852685656497555631346450792212866875949104494435096601363771690220347112076032755117741767638773796492508345270569196497263379197324614201520909833370984492559263078076688114183701135746537250472830690138353812578395169863613565375463542584815979150415718570177478810905113652527966987053668594211735427511913824962344964190070188948035230715616291118946598739313016614080242233608610476109568027188909356931274048927276059847152962927706319357584066187975148570758555678425672849323335431137381310623188178227511613625592958212284608224845812373223537773633784805755389436408683025479111302283749217029063100362794003605939627070909321344119361887175780354050603835386251654977121981899266739931619342117394367409180409622444043788560134427315285498666835594705097351212516426893838113037767498638321351871092955256345366528758729515955190182486497691079464128342438290634099379416090895103697530821034092809972605612816226893941283242462872452859930812467829725571523297482094490457185778896913726254689387987555795080178147454500774646020381798025949042069314821942482984366771129042946209892275448018016953121982950041569955288871997920296253462440833852566758443977110901674393494136291517196635201525464644785547326891275204365371296319368073885483128040478035151225664596398720314036720931667390350496962667434643840420274144797266443108191129836972416692599733051426005665465491286754552707626115538383447722914611626653630459145374623288719565816363878083494130867687528872870649369195143492345600755249516719645927709937635153270497718970398143691064770181013275314841724166727161047524057108854487450798291745703770732580103925683814618992158385339126368635064874930932452599352038537525625078927578072483746907811705015720123348008304928226306369268327682838481797977429847543292280568885552304782940595809463259058916248352079392737466369818232146045853468489948135997676731252677228531120785898206246533623829347793575755185919360729703245777267719214881357025691602916457708976448191334464759363649783742318079271734472306571828428043194026355310052799326369331598526930350240039550812974570846648525901025488028094137425863483504628134863984973604989195274265360747490867603532837354180843054740224314706613007084625407470840882135353385375497388543845950283541304721619412599363483251101153979415671266798366911828926401991016267690967761601911149295974782957507166750416080602333492379643341832347610356337560729455627010513387701836526225034261746742112503285150149351480692637977688948741848839768618494017102017541612429491747326718494318431254202369983576681039380579350328564991376174660560734747078359205393297243693393925793785409723783249777116425412581193361617285264280316331815473612419179072650578049819111294745649773988379775921144381725423205033526398325241906783474940225149784776854325233621480046685021042839207310594103391692042235190928209926149623122282083679436543160102673515398507949067824698045068900636066997008848425194164184168078918634246700846254959883960120702584608290139575024707761885314149205451560698742127756761823093386334320302121969215165327705944549085435989075736169730194904338485338652382709219671371587983707193524142858211113294770631683351660283702363571687232113415609216687505292342968129379339642958582061522124710045903358566403982490716156897081675684027748569216960325665681099915697071149482141313206253060480270757010219549220444538294924342137222230630788696639417139995270642579678021571406357569896702013542133314154862468250907767129373596431368870502900953901594945045329976707987857752590986507294989685637081075382198559382698834918760071395356329994847492246158254041517210395127611377327624773758223352775025437966994591928337606185756117143477149588279361722992357986382977781088605377588633993153566750735261468457361338891607649338829442846080771024696004339737147445257604026158697631777389893421536559387001701733737564476552591114129692205280582624656293202777554397467018339006250911153531013951465056209348247605839737830214736526112518085796975513134706774149742079851346304047884832215328243358916980086449770417445703250157911392775209354695298340362131287913708294131822976345147825236570851853590073263835776391742673916322607648398092382054682742865209581913921898218586226912237836648728393189062456735153773693179656447895734834834838550319503244762792845879385128197736316497248439341984831970381270044064513930554875724903201691378233385924440346094873701677369792809734582975808828963715089462269967135084685350699164151845175195433953819257389429183185289687129973244442988136609272453597356641259553714942143015435389010885360459172660375781524576383999025108725347156346907243102847336267370904090122442331513135811046195318079581265933951488984480882589697989934942516977541530830301107178297804566010241234566020607472153237512767122373344244718952314723675560478900120302288419278773496540137346400720217400952844081256941947852027975702763395582500804799083049254821152022534810896964166775526414301238334308351232616040695692244949611071832975187877784839387794353065788262680147380467348619881008789838658488883712153178820866778299079997652150974014156749608460804212937264205211132378783076194858452045737047050169268093269721753107045209983320075096060749996542614986679183262682442700607883998455120241167318932373202830935649592048683626264365969931389243185848263368414054949792624573106467451566200734629302016403627127554885671333782370406075251219195817866011106025163980342457555621298185233254055654086307824457228045492747037887512638465067369120225814290394040512609818342933170436425444004850439930291611175041140715646657335544611575243844609963042093416817261635735180745110572938507833272475505287211569748663187625162323254221106428914959167823481627204437818814834030485357436575149180462654237725442891711565860522203313864107269012294966251500778867067570897666511635936901980655498413564283721107483021583186863667245707922810197368614902060895004364816888737581374809459520319676781633757555552251217145419704012389220428381851169311582217617279320737256571025268575719429528508004487074910199765174201214006094699524810492224839338320241461023833023683425953003427043538830012921677185347186531313803254940999925927279854273125777734807925872122871130302873259538181616454192029885329044607124953129907393424977874960714255442083624953882760710265190920530612403444082125451427822318594895843797217634384077135955128455798751366889281079959691105393164248352734284526128722993586793852455028942508102435805430518529372385290128632157814769075347757840592189924209183970442544401984485985678078810939591249248869443269572656460763983727220152477249401498455746302113375161798453835272221342291715851627241756949998794402128244213817163945854283867365512135010433511300586001920052483235059388586813963896576509354475678659238427859223035615804588976767101981610638623545582013835551885304727759224406115211545849537373010786742621838263146334304768780998492596848284805560598277549928158775769209975935625539575768943919786815969156293206596697679745059880155056271937219812058140657358362752593604098906822153436948309139596835227499668122900557921846227500857419593992751173733409052496579764155482777372666352557964102564008178695383270517685907665831213084373927163074332495445404790495897482363434409682050494591105929434648893044705554105312121658165927680267588493099137719537978251168503673258949050140145649216696681472182551830687701830849593905126422290655857895743159210080331886000086417693825105473408326949179686275113060339971202630511258724326035979511294707414411475132004347714900817121714213592958583793701392023435681394651905284167724717554687938116820479091386725447914045089704766278504118687786371413486966524448522824788250021273421195241861918566183261957562279128070951341984162713675209891825997966860526693241163358591200052737182476310054830301431474012776239378741643924042014021143137754281477154805306428688508400057497876035620994083928873542516148156812780963623765573809209504141451026227929585120788416176159215031299122821497592784820849694545271485130847025580968624004440590649492449900475660250007572627060871694459256792200014034849784348265086624577247242125834310552744358666729327741473444175237908618541596263516052413714960848775906704700070060952831132798490025116367874338718282477550307165432485000031332884726640558243479801086851268625824254535686189069311822737004585250320174602199717989904864804599411290305781158945222165803582683533877172428735690787775122536276146553273494344376862050076100992392663617530896848685038685465157511145090642182072688753835401805560834031142759486969118114432124154539450924320469797665603278850258831195630910995325324679709050280211527875792324025089431555884357329417041255337512147753703616939294505149722300117961501514496395017444602991962590031824185810223231913638715975083258987574279309667439107393737735702529663707503466482476293525150560178855254127903005663590398660590821149838005148401744082816735664543809378041980655662898355876217909225630133690234910704755828740339743114349333025555335236701600339456014919271461847548320044474062351701574689793815470290994762260309076982614106056664508862327450504742005593932711714070477818687015303295405123545446062997657972939094710988542009423551509419085227328464745746262422019603085161618553600649266479542903202783180579320561065424966803038456608018423603407529867294217552720713939092887637898267092793309387745753027329325581065142440844007506812687744872166454523375814874085834716372015023657700918941194880197801385827913072380173757259665487588896417497019082847756061347727316646328186750100670831023948691755475979615618793420222268850158335413071253045252391344953680067296675791286260614355282981953608922002219954648735902892031472438215767757945514474732823033794875070554466442582098065442039146690467391226979112231003823687202549285653656652119706877537561797457354993423338781865228761710157223347164657249311516700993875291832686543581367395252513965867269776222873732116121527328108379324695149754634447974863000945251286838788207448962109895596133785923508797374604654549466044274556162969314969857612292657345560297293274847306344046563076003798219382999353847318753570032815477948074922569845004528944191460784866757062445044726701660407546995130860052982994943752490447423004743576062155884988551296482281042109172345808891225265483258859702606557172118083936551671791565824313659691863248508598961176583429357423931395987067709941256197985139111264627763819767574330081460220540016109413276632483205464581233391794209639653058522586100462187853715017425640120452509902629192215522709517742409382509630201240194777800571010218629395113788600217021949414055670079928491264985638092309495429138807297478316034343849390196159112484115393494571047430164216038366962488324745717971445032087546104059436417551437163767423355492494105105263641236870111500388578222512040282001258137293165612583554382302315592489884608656536000589935436025264499123192762853139329861708767679460493165266991903752748532137818814190463109374200403130480060945115327742186197954482561002266569028470864854035356624823626214307181311141982206715629590697193165971982333536071394767999940318094540225130049320489333707995898178487172888027612296379597092878581612228899566896559061053001723795788257846627764378811700474090902532083945917660900573247374007844413508683639206452410050510499643242944111090470465740804590015983543136947754212339834783342746335778253656274365838467716157672378243453462417085070774706839018012838557084690104228432444496091098476063162933271010910022394120976809520177082093327882370980792112989924570202973578253631243722351525977288473229466163903434859975157022889427219876953085079387916057622427928861701425092777239743650144167844238463350375556853211292416747708875399952754544494424026518512289815984531796740722300688290039149561971668655919443225706305781928568226540037295157641742316595326105552350016533542718489140546744901975320330976183715011643719335969373188223241961606995632863418217280294534714516927200160868295157284165446750485603269611534306001811920456424771136978882007349507486177484151478103861298171175458233469241863790505757768293050784674988406313417599929536644665068305428706718934912157395733343758832912249238494223180806159774711445239006407048341498732055091829782284351222374620009711141082929731666616722043949843896631274258452645471348477620227465984364799017408967576886305574240048427934894834019942721026004325847849979384484739749805156144361360259488172837696509966890615323828338541291117864864465981526571598103394932063810770833463584635204934328995904982645970538420957804768220487808080292840358638497921846742825272551623703197240042505353953400455829401471509915983992480667133181029572666055029183867028113748591782195445723533253701155744299950993356873967059411455540319117951079640550168904691825158315493100110979090813033554757549181109965812463752706959216085679141974589062812325115311919556967554573182194752547534546882137969623728006680459508739404376645780171937370759221161659482272955905787830157649644839651704812177305394459914466122790678114495318661035915649612832116333940830863863666750302358058855234013050733614423437947620036721054635512505759649123516312403573679554769712730169352587886435430541917444395349462274319317969980553079606805373225903191989000785222287188138676969142124131677599343833851496313794759252418389950340426078277965057946809445062265750856488430968284851695365611970886353124937870395183731574833836143772615013245314734455569637660031687721089400668729361777538007022689176145549955625584880752085532218311847953840075011361683428373601120639283765997905857819630760607568311243262372189591231320997034422714581652426245472083728818967451217904080806149718098126073543676093616924125630324885208064452819937024838946888228467434898215441995559083551221972207482185742703408994862297352517718055005516160586097968340337598096342966957896202545249611238165112830747113468782035313592264330617691215580507697532495711394265614605262638249165146550433699583487383044667900785315539851001654480759469279323247353727080805829858186216376035010339872255564723819641022979826242182387611802384074453032203052338894754269533969509445276760754383283903563234660807655238359732026219106646140063738962880236054784272377835952028386308218158842877426186233188671662519884056236344478778826604778753632872596753928539245101518316037899684902304857325010678417915251240173709054725027933114080041518923560715748622390745399296753392766780159491629026560854483786656458508083081679419355964994490884792206150707674201844531642129721163581334856850728489900319613541517085777986057929842721828320665792341734734277976685346160066461334548927449144980100213639825269425446582448526390518269659038732087317680117035110327668297204184295642664257274928096515364006286168387134969546373152102937747966053801468658870568215518681338555568016434188104008111610568118280944637436196882106981340166830987010281400612514940696626404673403152441526161674106443128566059249202501237638774188442510894687616024296865869456481904094672027732440313773433899697815972606124588154644258428844646868247183491664097353705658955224832974950819260908695896197571005944862430511467282060783016013494675213664311620078234101686412560238858481715047151725752605533051311345036280393794898243569109136805997316942782406102937495130948941207129122097764230766591080234788440168283569277317915646165954791459829861540598195633389182599680404247744550471976396036410613277295963097478881489843836200822463128286496027663918303462563498325489208188978385637696558179835033545969716824250291390922040266605528799415370536043594583152633509790123944856814635786684240343753467197382213603268154059688422066362715294337083706230156679981442472920246883003109856361114531771411870875092032701007747124346824166688569447272372535018664779779571914310295452771477090295704550554939732252607935525486904268878258749934027243823184715147953685525026088868039801104570641454977439327086836729540489479402270409919146767054660726940103640649392576630140327306251564337449092864569170179203773260291785766338290808614860295469700327803348467231001978387093068863796558856615021059880070818799236432006859450492272668638370064858139274435329668397549971168472714619797329261138766706009097167475030123658531070514871741435127635436049562068175888208409644192817790356912300627293600987847229922143600997472460170379503296893476148257350274603046962079621273499155098945725780420326509173578103563619144969013811099187421978530442612130186269446623250244063061241725341050589899846699323857993347152106113166785918495950413530752970389876295381492530143914226294838936220609611056176834457486082905820862145344531065297134595904647799138844153385593866250964603187568492638069219410044895920332804209742194810316986069236016876452837201921235843567180072979281325161134226165286257992001133982825971233622543709880544126197710692789216621409380847025873176339990474062497048657397467505157657250610395408674334573048054453068622962360152698319185153670059689466515591866694259917201136242892389502412300379436453918479683345758952005076313667608125758819561065379892035588495428162529863561395513233977687501110600322254022077243470050299728755045071127558340018806684435766084162936901254445447365226189108780066777060721381431116558785347366708806190825036031918424556337733656915499720449736968241508230399991243142134998986204091986636441647141381893213447477502559625485291085322143812991495156693120345263955897299668487546732943347481718954604529149610126257250437903070533427514683911454887819893594016230335413426802469333696603425472848118545927546280014361388830036552804867235618823603479685924356478365768723751232448842234385814883773078340762354118142532972076512949141446601983404230368169699507478238017626028194431390384647868263191773079448364285834434954907608147702899128568056813129070483127143518948081577289098499396705635324033094248546214202600810696191828733683139232733567163392874528481410480232520883207032588925640830227688643262559469380289455678308819000708773443777684780488270500868063023301543133090571549562949727535833824933646721882761116798618499922051795564100507092481373123363866837690991871488182438823572485990540789913451689066068528767013846983155226245840868838668237083781697001194187555176338683004757892540920626346462452609238705208460114600422905763736494398582326994677868650566970034333685738571138645903663739466516794723320566086467262932086911879254572610313140074293369521155074931395821513169878753296582263366896758330156466050351321184038575289946788222510354608391123801722505550012460483094582479249222503902443701993403145170497392966709473260243710933384923650214510561681145819480373156966429435319315527829439760309455001430806749578784594296462603146226422167826292685171281931885236467044404610243443887471227952018310250742533604679761767440569304880749531565662357125427561624298915200319965895295937326711454695190207200900365770125282452475517049122214428187336583545137928373513912552415021398961592458276532733255155210952281934593361028020181297414740652585606240400872663056852335875560663206202844988983944971656273585948344232920625540691975078248369449601365037643505370240760676723923657015248522616566725112154690597591756806609304669033726844344749972930965824722313905635427425275671284707403246641332224037124183933368752059035578315102107626680500620059329650832395448507801844703873279547512267052683226531941655176198641934433194560734724985024422425603552161396560587944280482232093445296195291555101075742496234874700436478486917239969550927888114413948032829542609058886973409575547222287511457874060874536828676488189060815732935385139858628277314859373775645763842908385156775672841502987303966454413829577066678966708520596206630414877034047209334556529917798535909657448504870592312896015771536041824682871628693741819497443006042690983605443193090071647955587832844555020253519624659705075663524733353258762562669875593599932049332995872798410159134345796872563398005086338758705302794209743850446686486545387941893653314650268521410902011440848583062852739773800167435929158744634762581123464573374044179171985927631467724991636726544648707605836649310545271058607924001906273793189042931282544070121841136729333322015854668017254690480554477803946272434077041905190285626798872345494857926222255706674003807446712571313831404084082153919429302247576704685182314363089599251314764106545889750456638902764734524592960679075187860620301412786271666277769103091527262913518974348161628352992055558793319019935292225219580849286836506090701035234290140904506739924507308737133616544753036773820126537495133458060486676417459086691085802326174529116818966626903254241641401059509260841880026165834037748389519602898395291197992257781303204354189258908476530948250865507380948989797712715950981034622186587225888991980235254977719292418444785482628102724786093665342517686951121734898322661289571630635847877755010320259819408587032754567339120503751981956402786194150642869623626240074229980241624333378432431775393035249514466251438413499694258241430431836643241785888905673998312166536052506458596493818520057256232657841720700656349286348054034042519732363550550246927281088855823249971449147878843744664334571157877441164461374611548411099625467026086598187832087136397618630236227675414835975409345095942121460914606225342895194157937886093534262606307458325104022101122016255874734421440199234467584655183148437630849535621672619303091572242558242222417502493722951553165325728803093963718850406619980552923287481543661246350944638956368160408388436450572066066199525641022421670220228087677441690653741562219267432255752585770434595364373379091752885659983242302583049112929007537156238314130630086534329066600920716086268085138644011866818308678463201543743267603064829890411177984446481357277591603879781442575496784634256647368885984687659021900329621432774962024750293007410607811012261709146485692145482664247722298814962317636628227343436857616538514657416398616327628280795365271017055368698357662068263760232231245256256156967516488019906082314092186891593977960455293415819782651232136977889489046084100225898875937125559706953627621356104592006767013241281126568841831882519956958500224141380976516545197898715904663589770472453942189006136801882626893909323671110460093405499225463745135614373571591853165557228829686058520437879992756341997649636686012963625299267395528464599591130167908521685641824748084109006074359235952652714606716446939119216619773769765141527920922934883703188066850537248258589644984303838320738196490815836480140115554981680647301317560480795947889785715588349240896722461835898248472094311716911370565874932944420658188778992880435969090458331347930770073805181102397035622089626983534201129961231440993490318681928308861456365169600184195215991563906431969349846097451868416689507572574953783914506466720710512627390754992157720100819911691799268025050113977642167618811776890489356375718149911831941178149062772481907727696223900564813425299379367678673842647454727633812718429112372925027912601220579363999063342712413232249096837750356427444188133516839952330384655300614724843226182388871813730908990239529024250130965282474143897634933878258405045724438936603090847668257984564699026965588838937138663746234039981695960533644119315240312294697158433612960580618698751981915373321042109414307483438793009089485140233146089971253309863107783249198042856939541320669538050977881307805658076816704798360137812265877902634621849587254809990834339727423733637232469009926280455828951386510645146190469767054293316743015409523832231266429870304215589113843262826637510844068616741578369466310766052727413124576855813869580001069619181713808548928456366479816378750688948926683194968176288022145380056757020169622988619462777161636995833817835438857641852696720784569265751099695586525834651587521978114094224363616323324372849959755596342047504099950692552546880187788700209244695981518568149942163075351600470440262402248907958662488277039051569584598315827662808858992423948422112086139831256660114239908712487997741699489834745649525062334941881611973938787768713052076702537734226294964370243034177326838160718897205864414069019467934149202526186693717975286241982530374678123899362533192982959809159314580917130217963566946612919167642413436788990460939776441393676997702611428046142047306675108143834307116859026693203595589238372748269239120796908746471023409645331954544095600657479388551600638917248380513689320422831224398325905197867182512802401231104293757134641399666817689479316125366493701226792287390055120462518154667288566432112921189363484821299488290658674828353584518595526303857467951130842331902435268031708463535491884012142957124557009776525145035037361038112339150566812822130339916815352971284619204530808455384398606803148933480112334899268852102191895609585851758550690914956341756378724310895459915574564626911603879506193285033316327580657861040103143876858984235150696945425054678594889418573013272876175041719796388249446809861758997303825476833423690332275923301729076202446974688147550624962702198270907979678142351373185547565781053987757592827089484223352135957913072605927751725834954429042215724934211902416129257201695199722294403915245779937848766896060956599540634298821413620151545041243897393100634879205608606826578156504855506192800199133681907397646875737926972133095219761009400333158569186234954259386566617232335132360282426887928360841362128415617387544748140059240460422090733873635513614438678384593982470955455297453724297770554058314957740546676760654159821464086161682833376549462347671599172229921192131648825383396427307696636162695579919366541318978522768975872127311633699874705823839162501277550686023009750064528255848317997210355138040547757230924280886716351847140174899996519723901418345919742938499525238793643739230782947132956134706978025858616269776679565084745862384189023210734353363690948848256933663244911639820874197933112262375058524680165383196882227525871437415006189809654826931338376428398267554056556384614137756892087871711559142134359612319472884695749963088844849631298818643080439759882964236267855252227178855164446978352054382778984227768179108737209483067396172566210903122992899800305587171464865060110068818533212584718874969863469218896609825110399730430321844580340166079567399968274859297666174347830240627828885323493139332878685006854753140677593030960985976136238486504199263889357229265031317142399762137322520995672800963184730166785290842110032354715649458592876625635757342853688808311671455432966533215902422536203048012453397840392200918827556762463069301287623596269688826105567875003163275731365972903315756220977216973377464968781821571538480666286252413152959448704451999043335187838739128339510419753955409664318250076538572161144056227047920874443132088724660210601501405157414435739456157684365956783383836608360298980654476621599702313331744617348594740989520211187332568830453259673216010565155274415289921979896014578244676932904592836715552418854828391581418589276550317026590054674709086627626582606298907199685732486942283841457421516233427063376434839414997856404321556690551203568806478469272769143905493936640655172169581321051280452693118647640768699019630337833413573791502699261276020353143656784864017480941374879845494090873174266530219484028663167885971725257088103537196397260101574381279458364305440535198786372901578341143385217988468333463893426751570511872860374773549941358012553936879049682525408632567899299160319178307195867809075947581531658500820466409924066428002976319504640351015310693808315916986033283989367841964149337107038869842827068183055820814148992071610480614369748708289936108245898250477052604467137388817193197942348168317729214580502537249667225146112604270191979900884466319113992772192145551543914865001997980430705182049298190260778656516691912624232317615723864774309445060050564701809043270570399940689032085745477116944956543764104135825698029296629201582993938184862342264123997882907639939847450944041887442495528132392141846555443149921136103082989161493776764392652032836705111631640309656348747704901684902888669000104326163603076552572929322960706953392995527421417204620971271780100231471824743402363427891232982100535068500909434159888265858542734330383176928710105592660234869443127931859623313622628654701023324895517573491285839193574698383237422596405882470242591039194425002154397943264358345312692695996359151793418285936946815266159576959572807135828027488367610804292312867634495941970600044579097862995949275242743008078381205682478030789040362704062094658559822432719041462840125704364472804825622530562001732327549506423129298806126723782930383748930906809139315676593651447152543464415650090556482871149940219720221731691808334532318974757727281963850280209511232165499568313145853117276449443373045633458602468349494451184033504112299547638239355752165229263605917416690823860296124496146116979789776963701546536215191967990560534654549350441715760944524041981806006463219203161973271019181233139340558359036595389975052607615594768327233694830099725893449270928342345440525695090436979877623740850393696017198307239172756925880374398473017995449862707887714008242548907100073216429561494803832333738485548406671035382600140404913164410375159997202299734478430220073914100134936576094372725772069788477583288145307796298314496267975807193733858089941243356310529264815447748784525679891445349493596523545895272239305735674856497166840515964060865758760982821218852061879319148073269716132470456655400444323086370943406602380236447172894655464408194200880186687310528285401497022283978938995191543360025306642164574664525320087504342722548843668649680623699500082928461725678709459928768526615691460679035296205793589760884177581953045202376192773547662473835315954973225729670361532259040175865033627809284880720430025756290075454547123622097804295143856845756324134188574813910271321118476700346327620186300156748817808915994618989980860253337526688813235755058745495828861448644855244535152718788352843739407193527542680737823329478545474069584991975422384167130292997872217795819413876639977493156088742981220815172420978237304619390566084793091360126319595310048553970794874895931994834158002452027169128363419862007671541070198429227553801454894270804282149675533929962801414050589191407537586572823469371122688890923629524944180530809410431556409261055930338253701145274451803320339801608712470263091388604465395405533877254879033131459617974297392826369298748287256187707503766109709545976048030550398441152362691737804711649671283613445721034715203340911742378376135837597587582275207711763542150054732921728262795140246461440944640971014247237496928085516943469697534981088039523352729829843444729554438691388791380187405481176894738122610413667837288518702903959816742933905179380453530403175668198972145536790898480210076248437256403170913585659956283540404089976824951706875765081782752752707483965756290293525767234948802184855816996450493891638705792504315206915477094034673179280469811991088824704509704685470066371718201572290000403638536343635789536529371909536516018609540188790624419602379918914249840308262398670109311214041792055054850619505473615747019521271516159748816556608853287480980133576178015586016253897473299448462775516088793200881055705565660837889857593638926942348369170613150533647143911252172023170808029703387056158727467460217710527327840467644151644375754883190975373117841000035707037496376301945554882981192136921196917108845971410407920642745072526891484521338435402128574008984691330051437571963573463640269368732924026731084821667341733085786995633435714887247171254845154408618774625910891920247923721666089936383929902216635377102034894068958500167074990648824772571142720520312419492652003638250434123501132069518516291708825444028312991891399118290818512846799723101882018228087906117000958135605895793342130403506656410608010016144320206036941812584120957376042214209795023113222598969520980494209147056187356896657636328057624246107818429107607755934154220657714844204915384206131491085242027030480819057841871199310669187515563770891720988767198157525939990783146291029364936478406813286855735558255183447014615838235600103864320767894963025725430546917408384752206823754970988699516207802729376612853354895324948429269123221289300987923236810897440956766581961441773006777856441486250767382447009423462527621058232188752119371969168375573329838708859753850713056727915519100402305502337526524843563000345135432189961676922889638528132305010196452028856990881282973375398078321523583041184487154372036074957498084832357816417999022429558529403132990852928179231812545985294212908953227581720247964285025899769628825986684976829799165611939559421744211278876448910154778704315375902742452574994818488633209858812310730412194554810501891919902520067008615866880290355793443946203271314133792193716179559601605317065738845245014282582480137223801589800692432541816883319065757428643426474238929757237630288768077906582492489390091888678786942612144434657040087791837114121003210401229652493865373788672298211966711236396641857685785584960918831245618462678532420540573150244189481240777538865470363758571899893930884890695254469948870585012285685747730892744340319196700520393919102794539431661462154947350765007598400784677484965343920364351573283816231132789348825898080497945122298903065277541821003859014512156011841134386183606959671017545613304772112012855356824743036585984792192139001879856219619812691744334792906407540107386736098090181524392313832446158517318809809743506175252047453850898016489753378085769708986777886201885881199065372993942793133381774628632717822585866609085932739512002267206879748774561116930868279438858220899097643545623161968958324994853641317777038949540098248001952827170503928612615150616837495123171783124350295229061347864436322347201513671614566246785099389199532841707955446275048318195051574975980902639787362610762532022337324703608375271165723957870830221762654696195783341336148032687815872284922782613466779889772898215831305006187813788966397049157720986013297600428988800675655195922966040299141870802795620423239125714651701102587033860529797009950855374858540066268783484440540511836465782798909733546191974103752010939472970781522687549551497857301677654125050118292336382129104979742730672675863640473997307121880117449132728964923231160698432564000934675121339811278784268322274488111476321886277902734140724189865340069903503918380864966527824844639907847393278515540808826525669770102904053102758245540177083284305649330286932879147005815540559524698154958152116900887884352257320639727299950199107854712394347211722421309393268843892266440526615111575378226366989233917344971595592128559115954795845031472267833737275101707614413838680443467480437787651466059126193294226818157094328608378729675364408465756701056207107804175495468320630410683152820851250154383771923541557803021195607097267292155595051780237642748250831275290899311295458209099084141899366392578974795473902336350501932064028432301987091058275642288529578397603910127822753578170121437844959655372980802700631934872643773913177277969367370088477884069140316919229803858873795260621611069334066731974441640141333534504658882822281080155780573980334999482724429729424331614163037677891873991515960724796447438985651621712537950777347243862707544238354134843294988459964733975534351743191319476413321467794697013095384733834544542320479693669818034158184728223042067958034446681565619553675806347164140561621655819016450788006449912436396416427297778270550961249427593741487724891405678752961202210777670853805681091101200903869432242009342849292227422905095127414436453110601302947722550512104832080705372657809993247142499226804652623946510317950925603017080584609872901638491134454184723779910084726789075792452465980273214042402450004114063514984010999135062569705376624026641019017938572937713916060824987548420404419124439116499561166073911594712538049406905914515547950093334242443600639790270714413725430321298005082782201001378666486729002787770188925547632597744298650853431783114933704399610741073255257194795023403704103603506306457471282851527297233594638766104577941132623522335301392654517379311548649875636197134687541370949216968083725324122356362304531648756742678100238680820341339103808093137958330071398828651510929140236828844791567499056792631555345836170426068482725131244326120481626759296604497364452187665746862573952489656933695842137580153442469327711303614024470888106524035514375321801241262742947938885939168146407655502919134260251162119353741561968165038965682140233314614751437502525871826746039418258624164352337272294740028233792277634921802815413673292956513419351074173438905288639529601015560188833024995665442577609283959755975716395223863307093414169830979624869171558816836172861144465542358429359628146685652360912361813792561484054773080694147326577827750717418036072831101076565303888674694332922021719371543357306103978122061942978431234508578638403509412131248974490729969783500054638306642503391011627877323996291467598374852271702900175768516151948972506802543012793038746694954935549705510726190314299703461071821558177179562450248232666988560413939180426874665041434854284922028033180616507906483476602880320249336983305706618450662439622294219671196196511020692646109228508289205542073758649916794432420189547451626631507983487386866548443235333512602601368275354724260616497859108257601402812310444949457347999493418133574361222673452697426595096418480178660921706997730706494188407327622797734509659750504600064818353898865824803592930930521677727036234714968673964132447877020480354293556743612220091673622819384295460267615272848630131111288433449777523290315295611061371102192595720919322478524625301974291270768125448708809909170477922166829833447560977270535089435497543041263745217364574924523236095982872183173448466345948308626335374660564202882648586125113445270727032125746979310422602501242069847286928303541057076266296690539618919428124258960089983615796779287182504460984932135929869879157573655801301711183236797661482972687312275923493717741907924396036886067799197560886208590049347857154850057736457459673603299712342556395114853147050638950457404335707608502798659356263598063520636221344526969048303887014246700177842077508981341266223697174864698802062276307508299847633308039832798104811023430977513182044445224614299141400951500954757057869863173347841739651005602139827344084270838422892331745596095231271673645057212975505674828111234859510936333787573926848530986948995951453636295383186737764008806552966272254528456802337199870397448576328118184267758703116839208911879264757111689522708371042713054151213360274157672530762382401631534233445243996129948887594354291210831236398880180263411411541533430431845995271948128312252041261884023806030858835644870711190645612232772466513147036507656995666950389192585324328802845856224624963385895876199114116998358324877473485658289079791749077688146751697102167848897936763438546552482308576468735631110369882498311799563900806724215580177348365063620026911872736312876083475229624057270248456559402370955547688223655322170435002041462221872902842210948646889425307100564408183365135113078718496574783160077764761734489626389259507085469480881478886943942464014613827590585636138427608312578409942124391827625711917042819004366670964227577417557421857527485953653592622568592348116644400891643029351914846582100570634824940222239686526173655469865512476296309566197181974679877419126853541626005033542008216580443572001219716283342954218533120852756409500849005497111224196884129948772961607882672435478175728676595004321453489500523693568170045897100399784372282560394309828399172929800037957401591702349418353050280661556010754184581731055326965442486763528400370056033383686315217022273249484817999963634815268244885036579702631083310912392043631899799361693986184855041711840673773600482968457302817711185959603535467703723362156407082129545855013100911462389038182237306513587192243850561871695862521310933284894420907448131873085293872289021184766093336680869015039911938372817579064248071529497042512475390243145262524581850954123490839653645276230644745755960721173586257218129112399590232912179003017613532329563166346377605784360383018693061718475528453792344231944382429614007984050625969986689879984386774624768405369865913893976265791119999400723478525135236567240501391556139523468147908046478170584797204537076533660844811056909742446106236222699533751983569262239241619005190023609049797486795593408917000756391798305586582791450430506310833226491259130491699335991775625719570540988995938310930502456237884149177675353212294400644760343525439813769072780950754598690627478093674010972013163934076566891586182489563122067714347148851052805876469644048111420846632870521693537345762856794429115195712680753335612112122769077149840733176126558720817149849553477057476135393423335278308105276271886384602468847510239617203760370068549105465662946613047777339270665962858287225313366334238338349846788277777283520964177103549486968360855336224809399767025506474731832438819798894477086657688741782345109215815882296489378842790602571785468592575867998747931041293538938759389455470724605545000312460301360823378520659260241081650330703545644130299602953029320260977624587950470940690478769804334762024788637049003370572825444372927206019452962272113607106669159520298030470421547130400725654474272112944997338691131425493195682897113153494058236395092844870589643552919860444215232962147101830546777772139246456318450625605718083144065482179696466205304140935865052994418264358340410195759513716738666970490120693058618809328615782172431709099365725978631334909595532970638386870746502662917983246828916084385751674257442429026792497006754708065838072698161973338707960546036041326880434246145589947226234387045166256929688622164659680318525881818684477363716983070037474489140784613193083621908581870132603369468879774972715982798449841360516895117010664963617630243011611645669692862098206112889439424675523598148005736407171272060209550947323048356963591505083586063552520148427891055074271205360998637787368926853359667491189940484754884776013434470940367115095936228624920481111274531283425880204728040587921967608485692886966097137613722766895220026775159377281605136145915866009034196780427216619486987447657266995930147442203011531355427421899802175367393552175853072788785915319193998676137815019751120123171219156824945842471828614480714430024866300986835268213916404222894447544507304501228462015396643407414182883623962778096547166362650132360434783258974997669415625660211566392380654732250110114798383537211382077228619162603398660630441822014463074559110638262373958339674196045786115869879729744798830077317946735701308381464283904801199487755269509342371155552896622429155133207973780602898961709227890096188313174297266012311325666159855209225603041907695161822255521330204485049066168312421424231941353930518628674051598389495227052371256104159349414867322668743573040059658458946582628448592825947712200901194021855822431094713565299194888985308974300039130774230704746778672016179184213842659296395524554842692299494667887807621522467067213001113925360751044224039339216929619514736858854342010284186766541939710597926194403885619258167584657834729803163040302261647242153129124585962638770636972242855504568957088457370688223777204935190459673848791535001839461169556256149106005906074023472043109292046250817978685631370453124245907073057363840903753309456444539860255536815337252995822623573014034559021707320546566239840331454457075953701728181722270095664042409245247938012369558393779191443348595610101555978778291886787485322188154730448208375035568230577870112763459777919976993962087865713280202195880179514561258499598626499628715056912943209168762521096581887425528547745029511066433093986086005457884057081114130776495553300349783190416137714605302481405754329128462578659856308440974303525996561687254171285759553008362092693005288364150386117978029878939409318950883659709437439205445604956313838700631099412098546907986141204620563219531116251805304300662703169694762992614552571762917000510526009359599003659462674369692525858146761367299745030848238739984753512114258245940381792402203467408547349828401977428750441611580297882777109213912284036114887362322887607911372737252622096216523935558281561301337466112803190230740725070742821219312644468031443855243969410094673789483250732300788523327555751599383918585272774105411328467910094289560842921906274494731546903529499349645016755088301549218787626808744218016518931627198983386737181540125545999745517773217716685488268339530389900388261477940730273675629434983557396031619957109464584444341572517998152303245813895157357899434750847578755966091907749716575803281744359577655244873477361616239803397310557377058303139601739354648514066946488645844755960075577469864029688287001815348281389321794257222707905988444612792004507048808208556384716846325867527998078881299465622911448523498393291682900842580777090233076962996211671084331778207329231475009370041180825117594302144168991689782153558802431926437141239211493175635222087122629580351086281099979065567602292145869321376265938210898926855187888858434984217004000630803683365144844611757069886530834297838688359909759904309384718474628993627744868244406530380112137100120546219368327549283375989823100507286692392794809657782341649208788174157582199218982940289348790867239492017638966980659233074830227641500265856008125561834848201702380424514441431279071959186591199166024321159466630524684457501952615345216084861850132507556918610842834103471093576268457862401470726306586594978209860516741608084532584663796941039988583900639865865797881940347661811156797239533790536945079255409789755897080949538526074756849393487575074287823541883483051986892553877610188721174660649181582870600871239256985513296417147265721555584586736841828541891066109661584105288312696646436140605816762962135574555510236687213686936499385558251287300155994985687364640438627730648099748015288188389491147805184785457133654190838820954868671493152459306005309084146849869141891169308894848840176677989628474790838374442376564040742749642319731418536530380839112895154687364130186360757727761102258361335944791432694260238740405755567020577188891784341862301611709652115532857949610877874430547734679151113345655983621230485781356404553757171933266710079203098916546285895821683561766827113487928656265818024261037207361340749072573063016466639797285766270136664266627626410867896649320690450580298592057017291079054191888619541884797788424715483025591271698815897592262408555339465938225425437871919471594009902782183963667228900397003169136471261239464243495828564707284021955670995936302488953230447111269297517127832269057340017880873046478945441701434804917240437355732455245932341979677731472769321213691896202125865270487398446820116796423014616137847256490749666477909110853938097468019062685596205769683335023560669005363426338473895829280059723049696007907421947822798109739240286801199216681294406665710105797094189384501398438818951687289903731208044285920336670577211574765784398795929257147401590327354940377099281293481827093573725025811118383317566294178562744195130468539013067592605568441354486618158106830673689891398687650250900741815163781386843872578846608575189421816792720559995606694764416030661328820563791627604796246324027856921026991134883556170827196190869632605906302857518155875842852957956902393881511915448354084357161512402420798310368970257184910157168198368831573754297567999909267468821481631640433192986486244140358237752641074672077491451497024106085930698852727591067839017019841390065001166142408237077258071447028136249020800368868402400421701018444450193841705263600976265149786847989956905844282389374810935365465578188671277423827603038394429191090671147659997114369535054155666884466068602453521046530494062730045646144556064602324905530827054360181023442334804547474809760370801392344195480022066771272299942066836012276601100156115339603517475218045796744291290684888290485530159595736913429720785712345393943870450387092027739032209376695323757662995601678174867963263431598117451186602250374094097751847314337123989351690720581340235085141906447595933008196497862428587915896382951859434832178873461878692390211479306307387357135925678433487104322566860394992347307383434853243149395467433246728895838817769607080934591979415313732543992548145799524039161423485332237250664730271986403334318469781781104156878306578287142119275982402025783825967101715301044468703903817047311759490129897816394967343615458258429111437736806865907472348654938991153722440368372667396611420017254763224016252153335568681133175621668820823981717137024048640407341502309474555502346798858787504407976304847749394960045673580261986616878074296845694441658240049460424448975151261830671000464138317961447180191431972295285938259900026974896930322861728921642624377130369981118341793575639037874839775999091008011772754077395026774814723333045029119555712708503789134019035434627910267882999934024512034936838006185793165736855104199703915367496354737997939418820708826070518694568570781363663200581508738857000086487987568232263690404918831153949077099538859789840635814547571349724971796711501655437983986351201219924686967312615337425396752438081962865847582124441404379763510692590549407674434815504828789183776075663054382880558608023811715281716868856431154680851527957645603189906901185224399084040427966417881861703115877404984827690727148067305370575669908204743680453968160757506843234957100169426097046613056066813631332419177183588898724117245531925059062208564082006706135834181291422699863521414085464258221225987812450524944617395889179093638497488782490303893454779917568725459197923887414596019257447470004648485188043184541929275817561309888297933045902710467194005046416767765914377226044008687763434901810535555972574343782689281401254820550428851132483809733699019408573824315073562793781187078220458405552839691097407432829419356157522039362552082631195507507684778777376070983619685713636291343691666572489977965859907710637014199505509171009408892436709522987970795046273407982080330799379256751455707333726614577059755566706395831624559958091421784683984094157617339715006156099667377382796776652948905358603990551395997031740863967134490391647282005541580830903883148222304268865963436783242359711329980889621220573729836431481123136258385053904447718721688253444500369029536707779961884029649303066784515455323526730586697568734682082648392539050584474826692271068928550911442118106062600245046584123962824945159367968794209875257744702010919252809033040052449024685505752357646593313641751753129736312808248632622518358087237427646579835936290703596666054814295633113294444429320595218266923672976892947337120813220253616912543925230821988397713975270685427898088903212581399415091717495177913332523496234957024664652954160251363311017326436296275734523227175743804824937271381291790915326188362026587368446590287644533004718602132935792611037531038323604203342479830724189661683563458895329893405780436728863238487190059305588362407172672706018416264260540958517649659592042092147853337054511446170755432496073391070933260903201396118521684944933676049739544992443395737605736547991455281170170806942432557192468099086241119918985239108377874690645289537385474994422204782343957621743051452959214475469329663535352847266823263889516269919475026009323068715269853785723080457623733598922209366174906495355853167663282565202130710535665013696462068131247007636012139491271428049953006055968822865034526907696279533938843898952113191442521706776425933167108662768052997979677306665128221701671303469054227360198148069749541681964761544136326264775296143348333586053739898908453851997667892693632814423200672919540781433278725783086204462845057696567805502248069982346227955032798746270125210878128560027311579723232903380244263990961132759953910540971040844314941914856070310468559120377412733525592843880653935551297139627482280645278512600147613800429183016052264147581054475091832170719845547172061103890046482313841571545888275275471622420078012577193480327382156211092177636654910041398062632031165366796116727780625157038683763079897791768815701530858864308498133273068199529981896569350548248598477699941982752686680828480872233807548615221023920483364716753334348554528594772947488632883366380903023597173345057601990825269251602285608241624425908692404009228422938782481783986150970364648666469782514850698994625053314475988252788993024911030212519387324315768235635708804182691441113670098116803336759770501650285764564899797915692639021512693957030923018299217953528655205715429957743464366414269281860675058919869090368521623552357019310543962591122757638101605088082551634054849198320645157564178316447100353147525677967520112797104708069767039672402519670524360145701406562982377108988518752436915570583103124018376120034666550638196253688808410459052124845139565093087311189621238746851876213838175719121321122758540130157690697336722534491461707508563583732460023997228411140176895772242223581469807239983933517153021460281806820441008834972692915601580715108243231026395579934060438133664647851082927625075765311559424361000715683842240240072465006567790678630772036807273922779929052947315272578897434822423550697368582023315986715334766032746626618882853449955435672102498911016580663136412632337765567924700925863613101253252464233208591393804071110522514259479770540513139357811024883204031020704637055947572410607918484509155634486888723086019943788214332148686531079506601154731153022905791377994468819881916474867913197676689819953963082945519523760281078689956551503128901244957982571701535983522742499961647182522182927904602975459078225537158659876982531233756067361095971413879256220240118106018585384815221928086960912851607431423950112315266129199703893054496410658932921859742037992081034696662702665163691525065161536331221908973061349135408045787693278296678106259646065580617132924843322518921459516626557232275582775696794602218251303208633204761197647687404967199442012929920397421371604666628384966010139352707603475691326736051459753787628960008961632049033987106938387386204331025017481571553290052832705100873675265240338069276223232908400636079983948158209347949991577526729052420209019783442330343502739390763144819069504372427431113725656332027356596168489880508110413087748253982363087752839328259407033630117306258275332597542900206857720232366533372146777971485752306313363810555676834481337492236378677270981673138977653748215893242666619189570158024434331749624906083416856385360074835395295918168645903711184841800702352916508751113627471203931822281827285353685861118745814233841299922316192506385343189712762578812320882924818421729723210597810912100484791188683345631146761725378271578888318057647000233642279684025397409341110772967102050943118570699285573714515652641515939075258576792190254121401005111022238011975773993283924771810599446869374802046121341867206181694833019059903088810850138712425637241505748275257304586279179867418420952916460164097682171127926169144026900936553174230009919863144256259100766456136383058201079558142095696010520261321766580009522278383593414531748837722144795320610934647581804147080258665460185078341650432984572609593845511634271649439613539234761257661732151796378261556027780302180162480079888526834085119897265255051690165233495331460707437739052908727211817861108468806549497106365909404906310432467100118140082296494052955238194821551650345628120794113838761759662044837351571522394974557266191852835942474796590442686043587143999809845297856527416222766529084446131712584816477480628765612090602520201461215151727260008006392702010222728482930266204609721075377008728718049029695263813678260221458374263569834042214746395815345100558721484926550536157495197953379550487313107175161556822297876546249645573466629042316178637876838417130008865888064061300569215677500963785506261630921525584366574244044338331051750894498325906560623518012271978773355994480042729627095970902653836342539081980701405838616508582190387897340858715769825682332175180531197900646933423121102694854305820816118329179384997839991466869465518459591923332553325166624931815714032277949728493816045286294018211141957804354445687141976038621937431309202614817016540167699934897277452222587393545605265839198469108385701283902628147163210130913046379410728643844384977593309366507313860343952380824279460186551700494902557677960040024426639688928931544517980264945163474335322022827048927066485028186782645105728017113219122890301522719665926471617124169819421091085154651700326649194938090920974501161538072346270978601824645891111018841218488244249398387123090239637604776816248474791412954470468468072091247253016799661242763337162661252084840277968695370654751628854183169078594462824434598510588082629329489392346995236837196880429216551507806281826577539801554661301811079381251535540428175157383759935216686138701576615053530313626189972942046616918323489537975890657914001583008410785894550410067487484789796007229108186924172264500650938267562853330228805166102343528456919751886849391024159848674488201553513303875365830644800434041929268560515249573793143843040595999853115333388509678321576424310439731246832523550022908183459766833960269434562671744406025541712138867117721440030194964023416083795066403682511800105557432067960426358690247847927401226307229551028793366309034102530313956536029968508628844800456285836779001930105291619505560619038891134559976757169329227293374034431990193861730370590211903519187184557362580434540667130777622016065272630405981869708351550881785274633862159143175873906637746136924341027152858725562379342872268924225305520379832007422864203144176941547458216811937206975929014088066696433990245000512527650991286294254634990048090931763367489769821950173986846159452511962961378944150738143055511076273313321921374089001300586038590188030340443270112348814460424668385971151619318269796383155282752223863153273924296164407943972085194078503307328197492877734912513681418613677863517090386676974096300386902077675484375405231174323604985616715057186529471290406930211812625439410696937860279209724267712765112776252929521731275878723140382338974521680794587242206039670969749974175265748734610612900539657135405617784310655521214449157725715511721398972386334273163282918161337843965324395830996460520340340999273085928010759373946985536162021878552029880736417927216048746843151169173698423892598323691411804911536496770498664112162250340880741968513922005979106840573846223282651380737893305747104190320623087311049017458065690521780452753140745344340833250583823313114955855358842771788048911073742669564449151124624941743667115799796310209832104351723757898739048067904685340875595101981098721906148213171673341107275215679015514887866282672882037263543819050190522326328544096826202097947369691572593440465788214611871730367885501362740540084061439583444906339492161736907018486725133552940817493104223031768595915657878435640570203243828644755747686747684900154235361965857544031273027791134500727514722570962157083977682559966434296101379540994026281661422190103127300585426126738566025059232207423596210868019775751654420134069649461825045153528800740602148104107295719180964212492756710715177386262765810894843952761924829118853320460808618995618438186291287678439846419046924114023590994843656114093194333440378178372461930912120461437782943514830611481798742951849784183240507658219075860696617403438412479489385671367022975101005388043186805471272282113362760638228830407303378045018349883884808743373647012696246802395479649075252425963495558859417468738309999501634054942991577965479594566984994845188207155175488796074953789100357156776529429170022353384773813835310888850796797300771329068857266102230836442207631759856209296840844503879152849928463107592963120080870887926667649013277879275144022332735668899085972147370601610083368713294564217053121354448362993917384229752783921775351719384068615598058603183923437604937316205062873286891477376105329876500176254669266560613363002601605540926438193617103298276260976895392761734166135932283911301582758601880376540913585742454234608528694797230156151650434854061734403604000251750123529611587426962964693568277100341508246154026314757148508741198379794980738150733133851765402661639440850076017774522485692398289862683735321256014680963186259640561697919116283205864566952018348135347379119984252875243793683716848242298199613818371256610790905278188258219183588726867620422346230638027315060844439669931847784814943321284334935789511081772058044202605199566295239352943244248078570678152835019166407251736077550745237318685133482806793891551669072618363706667310948999117077669711215381741985010408428948092375300102711137395342633821708295608685788412063871826288102229337457271818348664517992156451236261052975435905788731933817789737464376534863378443834382149461476478303128751161423411807487317201964594541323231725030245164325775944183643913881829762328876765598358413801000638755683411933813122540308110336328780708330331005491050884182694518958142183489833571234331208713869919620734832204696219322215057798959766857200371323766442274565399797063646216367022275186591757783209359568034743523054583534661202589701049450250973220709324227289919616425329355243565954786882127816138278083425928910546347743120094572214306765510097062657007211050743827639136426887482351743174244656232514307272806090895999829893215003322123738553502702726521216693052705236896425213618232077667556087506358213046487419450463860247608045846042174493896952952142188409173431848236357604981844469210808906678944972522715508512638879065777198771899223463219766176422511988777283971900703366773122137142984436848663859201626379714545198438386013380446313840018036096935802795858819949425227902474485931964115167460433439552035136558612500980670231794985374677889590356798268785108566545117327784857706333892385415171100066995344052874965353632386298443406330623093218653381404101244673772258317615252497560796332260267865533912183908930871039717476188975644615985645594522523912258794033338561615728862718725168174266909549371485046349754606941275575781468916501011585984634086054720738041211238937238449689316294116464755003700175786317024278510845708945424702178756386958093045443455347110917449599077613646512517058357485532066496634774753746180594967750406693030567428463970299424563198065717016616930152103412039789628479622569796132832709947335204599953649552788357976003658192240124507755080686844859744678087263726095072521601554984047554352009332007733270376327587734374993379237567339729825012841727834094425162989221567641179472938818917751150859006578642809672556984573155911900406221379757161687217076160792027629445112488705947495762472588539940032282687865609780106260889300156200217474493432862088442708382881454663803937897958735136746693207854175828204942535127055936417359928943015345911861401666497520098781548089283270500372348888685095308814958524355537541574042365675516072468079263752457735117112972636789202227056015013717382276546303166135016346271434675682729491489389182645213845957781357249366311669050967364285108265723439170240619559412815310089723936280338937530695624898818893436235910142369742689217990112446142925938203381899776076673646489499275498241637458097256290128309152113753353351851637759315622873298867492147633718717624417654549552341373175489415754186561939032330706980764114734905592673099105359256766588425059807209278244816334291658533463842487308509485920738599494539248000765188205023515285316819891686085061990939624620644604497572756110992580460830736343292747863336322368574260407016241464843733883208342466349730737776109983306787734180386228145651238181541296638324444142916347510545354176888475356595942358578016093876448059197901111032986280535460923343081077694360258337312086624867682888185986121583113938305429525610419562336183241332777657782081336480697873428610595789633204922551900434347139901802773526242146045913580673309438520454986516164034841465562987443519744288902007813859158219413477732060084390134692705880591607717903352770074731625091920920167680249214053099796947050222921262715391090023209368666380986373221755341426697324107997497803253641021094824336549522861878660566225143829295526392717923695621262324058719526036695722366545793160686129460216730166098106252489959172999117057788546696172308363248387819776936486321492267274825097390936480829145119700213082824765814470934188007533520612246251302713018380995721733522999512890304434906786095405897812842777214553265217738642390467009737784351132207505521369158056306994141213179996020860296420181448335194942629270800339339822359201343993540937701909367631920125272542561803414691905499756250276111779549939646581727848429474786029756134181981274557364423747436185001082412907097972209017833371358028116715818087557693873942542317291629291164522157898287064824821075998490427542617197189153208120627474542916198350157780843119111281124073067903672624046750308004899642907773884848610844795361976081261883158257504546229196150725074908747955544455718466457551068525024175192279852048710925304014269568930176221193118045788818232947287914229984079704937909644283933873833541143275544777527719605689456077573947211792052654736420498286058182041011848524577022852001592354506912535408844849744377326553705571055805591338368309618516877033726525098087333668053223869201920950815185605556111283983533734590408340314361388867295348580301269758669044959804381250292121170882914366162779217719541752762578794496031670003757441800222983801783303469999310445888773413641217545729068346850064173229267499170180089057774113209602249575549842678645162125431328797709768542585837108837080991326727637515803525397379883447465119415295242204987691191855482818795853595391604595852318227804415745368518645771022964199155976239997969441698441161062981392395523698988828263748667713234407357118757904092819033362900428545695423574848068891862106347258062948150319877189874829131108542016343362803611621549800141394365238977857776910388055448684598119513342080514910254192808510832623889279149353073740356382590131206980354966858854367736138006597618812416351012880078291268601508049650140459258473065113780683618378766252966973043867977097602823569880828358401809344461872131451216302340932360645860698696525759313066202726684212899125986454853267539609327008274304814939887766704050513403247696587223718920805883835696187813907143224042017854576626650935510824569011025758216873146254590438281234048956968948916678379441133911084552257928025250289328485626530513978518263551369047788896931473841713199026532142592494973324378521062821481667626124623277446106247220480835608806690699491431871919505291116148240606413831976758608858471741851990173127850261551196906447586458171591408147622650334773611365145911404198899872545543730924350163462351393567441099150340101093191033487568910834106767722428953783323420735193438034711048836756535685434566325345545237224308969714208578356479277152089195959266670775609508849763906929849696499760114718876416299691489541320780039468961600180347012906485927968450096660327267991410571572766553692258376622796698097441197832847380612106499549623237501561124677253099724852436417838360800720492132098082819479261146168715174332260732971967741934896547646320074097737230168616729491560356283041453758464235722507196762412974869997811157657728959601777157887136491372453651855604752928302499639788809804191580383295889942954440401815287932992532221854877143181820271732319123855192116214118302420440640590968354284202135052570438038132936703636342319101198602103566893932255713921067138361811843298678288120394224151117468640175372430637364842968985043455696891041661606643552039023568264325632808764198100870092041660689891451530129330265069362325774555570466773242521255215456207422182280117032237356741409444606813978879800634568063056518239269914947486083673154399871563410008224121389560302213518742956076200815887917593356526873770596623287250193196656555929789636746460352607658851656645046005254409114432821261840871195900082544582415778097177213210601433434893567618576886109009407838337623819361931120110014236679902264074120538692038841517084010772619450990053063412411931611746655358280702741242330289296179554572099104736829657379478444257262132998642307779018997557295410897356515263931781074040387735631998575175831675483123307065406092416169577890754907517486875561396541346600832630515885504662608914344760806421448779241178879281912459575076652998598961964579919517917374759601581908843757392094304646163115060492318480560452083446387694076180300428252908440459461228648760013113391292820406526774436539230814012108991044490809682531945986875325730691773166503277134209156887600118252538216103665669313727352466563178163188256744810664794220901063052096736183182501368726585562371850593861413970855578639693812514697655490397642313894977565178461954444664940772994408762717509571767018556756229796622388718308375500643533986082528276953871164247677938080755849113374966551516950661932912403027305344611210129374536494291329581184290107256324236285971713107851360044592202935918588236569182551033254425375443398328782577884697014124575303018193535184078986660168237456453398520340674833056370238124459923284040218417398660197128173088158803047781811986484240838941857148388462946244770474144543654643535185732088303895530853179978801049373234194384885082306503507645098425524125977343750650579107322103781583809411829014455000596475126909945038974281332032998814695899513296369254385408255400768655621757188102802066483345807245113919886579635324900512907410912691864405614805042652511959482882923254552811907489587875237271824879720426389571913122508154971133803927279694816865484890195161638506577482032667103257375678481775369276514104259408557507322342084098950321728509786127694996344362468076014851753011889679522189041563952476418176257949319751738001628475655203123865981157019268664618316376171217359988114399834417322639437680549020105985012114027275711751942888885773455310785117223441956901828707657900415745583511490338987054898694992973878983045174859045775831492347872291807034333148861731934021481581978305560989394099547481354100662659924834942236160320482601879525439210914065318458180453301205820457275897203635289452227361566215171614632611269400371213973498521734235925667267494818063009085677662310651989425598846889640985978974102409392781916809805620561038781217401457294584925899142255964421401345393578848530202251891336580532236488495584082590559675880176702976582503163195014092221394602114385202907248193844141898399373769299618843934210072705575509702324015186549791867373769178725004346165719902054466594834387229635283025309848076108850433480896298305362969810610663399163100998746092154707088801501436323147598222502946939236734184198606043265111691253196481216629891395598170939456362066519667014248542920409569010722594525788142405903220224771391408392084971224452438732784137387761277937980251278250801013888667724983482734154651178083880360578574216219013777069502025380491185088506769699150133779270818204625043085839000330916172585448019990721010128350161726720034733369898372379266811105847951333569397942211196452304386514592633901294614883171875068769683414671281926503850942211091415823249933298222627269454329388661219058795056259718090505997913527566702620940332302994205516117715493331182559981620094684844355185803177023355198372785728245114243450447866229488771194693768830859098866231407629041430555211218466404149972112497581715039131778073078306541545946632263830960033681026018702463960405477404892769461492297288525802352482765624357133448370134235817779848768790947763955308565862899258861460559357153835030363041032662974182702845454344757521788300065880863410609738830122391357591737759414812760409211696138775898696779544629732497449862246183362840575309643621079529001359807859197392608973161114218003716123265144574167720464014986979162848660042882013687824053010900896270914873896538420629140790162156990928453656841413452642551421343834163790391215081668910562551983249837818074941025038259207617359491585854350808779336087263633835616048735602877373232925953228277951102003030255351988908792627469077712607076561673813458338043691987844505773258259350339024464918066447894709717881684027821325260939666739546242412942999449473854924642775957139943036703620504793123264871940644349225560692302699429481118278859865349234970792598574370573978066041729688823514096290135988026268573528705028911895717199378225749850677503158522743349307280195377959938210947080659227669563719429844442860649210965305549132488923435999164821993213580386401062322903223575594315775103864221100578219792304008330584883282461916495649511530128479483746707074346526903947118526308516862031525160827111701956229513646580658410047813946307811831236907378865487588992332434549048696407609567599410322161025761808397813830268939596180405653652646329953850473416928003241236339919509702439327741698418199623826959518260818397983962071565854760666475314719723922228035838061259469337993915667956394688462839040314330153321306909886928128576899465866289680145610300315952586795245538493455825173230983681802723820037604964798923936191236133315430730187568997570863407028811115141580795015659702041555400426096103623040790336003919700692774110712749743372278923240868121736365507235386939671937776424136452526572088517602702371697966329269898827490865213153084982100088141132529019910497474751018104351227352796118065870796774365964577896803681018410501864451754750976388302196170736433520193612150457065322655056963025379981687493081467999686177668664410433542663398144643093788123478539837858973190480129495414442710116550474067504908020321904883285434931415720882080456474177992590941117552489208564056349288242455821985083224373813278160786620580995413441583219987900324759360753180651869368810586368269399987215931695714415014211365197578800013617805605468869730786155594024520257847903400717640977841218724019596540386381835267180460836639596109653890250231446481215786187205761122693095281563822245225839056921771209021220300134982990097946476333804776479400699831833260040690958905414399632298581549765568505813622916104352969128580566580816143242795787670297347278369245909659436398255037096124746933304218451124620127603589734258447632184929952236334653634350517509319635204706689756441064821186034689540274841999839155803555420491803702453148940231578723582607475985195546449964725698501423240131856938950070861754623222034416999867124521345187022006307920657630023687445894723853032876641529836419244371833714720707445923333026124602667484484047359093634088149770946617664238663210209478470481374767448231936727814590772769812118502014256833203575554317144134727406982600730222846675136603084902367586422928119620636707148800693954074696244923387626513624008371876737077868390204231809381311893087970196173410416725276333216823927459939669619718270842322552263397026363031747397944719660617704724618433323972161916220533799004201428984563596949428186293789497543446836306072189025557733192078856244622628849374238879629266391104330613264579555438338185476505436260285619768126802076256083976807660336151882722025389245536070306867886182529159653455298852976086502439417948742441584149012187692997019997678333909817725685858931315134746442649282718963044257435308100013172530711305140614028493477036125865096933445653048353508362319246471201378986658221668728601459384529285202935351707390100295360192843842599095993970893201792989666478142861747282176328928380916090768048017806474474137942123983322479661850557899944309623026120842834540680956509585838776326318530516532196621518591154241644813770392157305745451076987742797375497620072833301719158654144391348648904670448966658949947684849024844596818167024577035709976036310595059556132507511749592265351442259372407534042349152374480477323681961335871900487091230936437543796350777483808126659893062792251310796075792632351072356643078189530028242349259130036146753002391393836575669866281733652071114045259020708798616466524903447381820455799922963040041745265785925877182054113554631309207825200495952959959900136457721541860940047154656797547699265852016270714082535583321505047951950568830851480157964280664202501899545175344974633226301912958985830951198088934077895911810165679105070498324788267079879884095986379545809385243464904379884663669316810285437914090633425581108230125005945818039228425205151978998361977811235698443188559091953036197680744877355395027410533019337807074577775140277064294659675073824872692807063510574859660484870121746671506950485392747006870398231612157511671903136867407644322095956045747141808487401092563627283359231552870763142718755150399743191261020627527561247518783365030985171144218274016610834739562929548752838683342470825302702744012477667659127188968743091681762135364026507339309651373052639580785371227150991696625076041174488202673306598904474512330308186879439934027229175894841227428211487013902470233819721530496043908245329186244022436997708027671964582286850358496861114711944071446315573059024407025063236335394697607296087491248378009301235920925791965879114044615970714537423774556336308436354336071530940573535016433834736539233269600633359460278928110703296627904721764891421158202612645167306495311607240872092799451962083809195799723439428417821546041937719635112377384187246130615991623002319115276849965926334277935237906369157526432453767868789345348641332164806384356996071544976396344324870389246778916853303928253048061565485087866607603075451610333366313155902963268199648630225826233414242413887611057951292841074910026750854844237608101920534100274581843288118137234396100095028731563372870460913043180570806521720924691052692278565159946061119678749169676740207704019905890068781438670073604162154994866097955398547498336830969202865955928683860860492954710800302402138013776993677420766087306381872060559857362225188151035676616407325717178829458344610229214963795202752095935143006760961146181833077965644212956992464104217947998310823234099232210627423874313307480138979915660064065155482785878381377737480390647403154320595829560700803020393196662942609092995144497524751063533372551692020692693908650169912750762734952241652268578186222924918949909682113031382646822742137877262450382981521426012946322555523354565794773628756461015199080710546490958699085880868345380166806046955258737566780735014798776820439131571628344272190990821448638407094743913110507450506985020374996403945089030299445495094135358149883884798487757073539949045938374543189500519295949660737679947221616161144027184219845448823142865242422426146900677783681582770735404298342632368636790072855119957219327995655731115393728286505799994418790450596862027056847109795788806431424364435673676582914441194761274817483261387794449470211395203976002279601764420738126795102699993253354074108265569172305913634597418234588901702692379455196423100633682952331303332874710353434558320475188715648544734047327806595710641555007300259581918545026593475915998045486996937937089703436469558246309398126777053255230402859580668739323166474730968608380442972838973666767218327494325993430974361449196012644937150248299579462585316663271707960917841139619174260217560693422627415204561532834626054749691468694469808659868697367984262447911826889527574025707826546131524245700654390569073579668851421696324632978379764880754911979247556825627479736993407837847766871804185082294950749741045943524209618640339699792919542341418065208782587086909065555616944546623111092186975112548604018982699134938384633586102500118335578641944155565194289522735405621944277425353173414976107087233381312427606090740347066194294518362575945535486811802467212597627535263149919045722853669991147731399830241058322687828066997287790606513992881221098320453943758390670741502175794241979225456220865043265412447049783357615572929420932375629801208225329517226526653703019890730404239678580107641638865768650416210269379920733859171616757660630700709096723847349383348037921201638664493382747830228533515768725482517118722945401843363072950985207168516909915084613738645841924952943900206474124245458375231281566365921567596003669014326282682321848678707305875271550251027572658088286152002569314668141481597534006441447438571138136491696622763616388434958852485055984019309690758624989551689622495669662671860833310534631716205598362719610632002144994634893323957579377700041773802945204183290293579612054705431947222241851463561024550291237412466424328756545168917580850356957024407264777057155406649117384772567889721752730253716963785731706562034781123434940381262444505180967837445200896007489234527630481348862545101716896821233933906291376297965920359669674911754612631964403151873303930255760823373795691282373938799031921289064523910167908271610256901598977303246668945092297870235488741208163100444466109527596664628891390839220789907443943574861944765585417050126728654215507109627251592888056501617330697228538713511393776411283055933883575503644586862356833080706236129011581983585335045538169229336227931128521062011528327112319175925858736972563478345938177823589065576592121236723125596001849519038840815667585990305007144474113384018890859266345430800593664599198192858354322253777485515146087988955891873389541337049085694369295669784390838631031243757691198650501523584886109234927690452226497922122495403495592967431328531759637539057348379885994001003730179997826194513794326471708097968090888528522664215040950062096985228444938303337357365675532723950314867910571120014465065260870772057094565961184063316226027026272055872939490638126002383969017000488937392494780311513193541417018966675854566302926168533706595584088578689223546242272874726075235715311411174220086012470997730811225223956227180346811783485953719787350519672873458762155239072759977756995215673886594540300483556143055013642161592171922838041585513962578284208559653980682753509627124457566687252193820422074119757630863228586137995850813955478866560861565052369786153645943446032367433389290631917937771972644105653023422128675541566270456482902510170851274045765017867853736669276908461849550035702901045867898797432123352050049115712501113764713867167880624515338735920414864510196404156689116162760096418705963388419910972903384321225094540652322554467816374599215114283975867738845190074167364778715961059849998892364244878440162033016179999391060130558075844853070630774072447658210143296824030179263635896591191800590805158907405227276289083795598866825826236462650587937656248859501745006151120796908125230075820552147559782524916611389137118827717705784982693268736421673443925891596114146882970521330346264675850486784326434094169739637319201833015629152334513917941570756548438644637203112814105946023123998021614029948701467218378977324459957729259018148381996625795440526880839368639301048815007061103310444874301151245231580140289369149613407629781977436005845618558874219885163547333069517112489480494212255176140915504735385958954056275311975617338576422358943963678370098983526820952032918596717696534137845165712684077112313537276889316979545434765916345277101914668484931155551448772451257192173441738782742170444572719472931656457296284438470343042258316542329098340546976179030643349894136969670342616218549166513593869997042929402421863600301415464826484380000643692587072068776549047453884348839942341537914647630989776096676476554268675358525167830478096524479720841329874624628333593737052689484924050130371997996521464307070156710043179278043895249762101443122286568322455485198109244693168625014647909379754946966410503700138408513324195044669638664709459535096467627639264013172514165165304125303561958142039435280560027656254842888154710281382828720586948867870957045476864270332176914892178776085138506200387919347483345240890675684039163663674907120961465882446831241124663376906201234675478385047279913762354300295898439778580909978036519151296583270898197610766458792618757572610445264486491919795944518817856739651337342583457525995474709146539449104294181355801982221774794785256748963365650127735114640740580898856521671537912933729556419986903001362174560285366672592723638042297700843641504172460971076667784114552481997693193595052489697068379548882089625602091940405716105239253883290155326112548206937042556395444634993562571298770144338558674130834328664981700630193722657841690687378194523047756658695722428489868704559639118674889977965093840295082401257932498548353054130476934692846427329711615199718944670047944529457603829154699060394536908586745418033146395211483945927224869866353575648848088126988576885546446867969598683483928795089567583795788339301472188274854782195740018149480932352534933660902298752990346132920794301888504189705154893829378611431186297659697991920805978040668719903596965021559656785819819609430597807868078189438561972190911544326088052342869835628540627804863248428381768753172995302726761283827266775628617395776178696359728987825519468499484839651581065803136362946623924369435584086616249147261987137005129235432442978383445983542267992967749602173345333604611328856781756884290923558076441639188252151814738402838517449077235512393991175535242595919906505360094390816478733191122208756746093265824694352537962105890910041388889329539988418577574908174228848377410743675994103562855613836330660428839004170208785948179627377998171954108051367763929759722562587559031087272629892092432686690791779380218442878799250144181082673630563060145205273159356077268828841946925643572031246545532015406287126195898438791993067129261926832533912325970901366905105028103651448733707454583849201321394403796783884982570000819282350480689138430119885356849027797338402803291984957149366890216040634004845780668922053754063181795688364900960223266085548241804379039611260780952553327080495358998400281499906218989187189651325451545659005710927460928537431251657731582800301203583332177275557337461942366887354036048342878495777357989104842655025805218148070118063400733107791148506528860234148146056429484776951518165304031081723257381816906916740329256268846513890866611287579314068083782884308544148466777564383447288459353146641004569534212227657241615117874657549816059167713245258483398484160637656463898557099255668559506461789251981606146763339853597112797818154924967938516323117716107407791653570897804908881873620557099764390350537557516107873623505860639323591318492833375537959244886940508738197844736818985598054925206783475614321502515964243509448814687188416109358118295365345603386098303547689690223047100814444011229877997794598685934135990213968124867173996414825182481102524472612375232291821463298529124758317565951875265477053912679134077025427763028790985920157669530270978780158827218536173514169862943350965712971626390873405755037663648548945553156526932019337129966479367795645114381386036899691564488569128835157743631902085599069456619085725626227822173097651438529701796620349595947042843798119802043907286321927595240006432078097540553779074940480162147023308192779313606497982737958651313789611770762455820159381618311910165670781889514865939091102414465231144252147108649973434886793170954046499361977495736947225039596164933891736639471321123184461425342122170099219887316397800605706289232001849632433235291736096094806788797857346020474196485673422219040108398405170327646179646102539761279212725544424307705969225294214705377577145565797716052775357792346870164305563023711480463170217605772915043467804004852258959523241700229938904040493729420066451671258726657650642294003001689103572423776864984160568647691413521569186349615197868707780832038122614993153107156962004183040450931312921867432976997582415679893841200741271288844515672942338298878648031459921671400938761388457291775494646509346786956160108296233919120407270424119542651784150921236103174034563596726721004057968356565625208436295845434136773066498163923600431440585395096527823123803883678870581689202567671452908021311438238532456906248722180633307983567057264380770020059137869397677599086968585843917765802496442767711436137369430584746739442329583710719976591981511630486821930380804849949052638474408739798288584809517160623601164798254656414306689150901475937910383449942609684146449009543118843374312671970306885186725506187175991292684264632512647896431482343076480807577678248777951785728277649152580732718156083881424664769711170456662634846379730919638811223755917900444503249271619427202273623230083889507131051709863228202586492942299786033522156655612007647530523883969549121538232023197455037345599341400373113479965367261183085365418638445569992781741121025165734144999993113656591578917320940140596109343145409484785692313683224417232203791142032979937225051618442412306136231582631218056744639337212590983710378634911407032610590201792637054800469230669059388689314792212090741810305882592452596737805458992987273586763777147617137635601028693938787438944061049757591524750749633121566832281096216078327837991624701498673288458782717773770101592060246822176861453076375158206582542039447311825291146396461411077323014862637814082599709363778928197368806118554850328124163844690693957759711036043730009940664865240230831669953397615486495086148746004966025326979725501924170697839948474896863733577150009687191860906856708872046434673587538944942482914809341434410640904290746854559725652493861870591355828702147154186611411632142631754559411293575543436103920287746968069244163905293577774041951866732791858926629956321586049292053032833337181756730647155256839551533686773214163253375982633839310098083686113705709860366034596080677234195229255766622665920068871981922559646742347085379198851957675805867133737544362593169301752825958857497404239465199276774791539220073863985949288836198575834889818568667299118266563579561534254450779194036171030575094969564453824467079936914426801581124937529027326779115684679733666049639175287365866399938415952127086886804723455073633863165435304999568220700373194131611197237178391720001062886842086100109869975515681432824089723863826545762567942623415221866014958007837629798146658447505972005242035548618845489386403812341078452079773256534354124838798238437494674043385420937490306439744517612710280414522408973526124105313359345085764186168964524934921041842454632091510169661253046152741464567874282680369492437531282691460918662222618710618847996511576599304318341696720709869061322137626572638462182788056873962236926952048570644624843257505125468817565880327678288951013047720419801060935488210226209854263661688494711683640805871438396069270490002368484588590988372426495536177115205389413793240618128359216520591629337327928517248672235328844166043365222658729394075903794931032678902792071670126535444707575947661027441205161781895335223633540696665355445718554708852800746296343676672935872452210367237160324943495963906600479941123123163845454003158375500124601231051708517682321415485876486643408615163272071233163490669642213639215291807779894790035012635235596547649487967556307504585124612557763703920770206180219698841724353567675431019703344140223233768105446454163429747435512350355249904719773700153778194841401026121305451554828565223156651828147120036981790112929108773831720319908918570232690046542197391388120002764959979794312476753486140652888542942081537336263627816795631929305468580664299269012601548025751013235846963526337339071180717222832714473269038550568367601993351126454523371053472035027754333000860123134070276304917708802737856702098721535363534629544006695315317057119462807223800068841691052652403245491223581005793457846247067839311987526516372926263585683961360979449353644409858654657670558989760426951034584080472656794224672234445346888343161175180402332455031444880153357119361402726570131422916565539383384542987164466959068620620371361808640463589999723072802817168901561447493665329225140013075141450922787215751200205317444224403242517930091132814650077072885708921854349357620558601657717643497902252460391764554525261576187774712177375186609688671216551030569344325497255954223698089885513659900681592093941598867918408569281669971971926388157744727156688620110953388794116600817865635492911281505354083373852115190783307276724347100205206753888595781609211312732358926494439202847515449945185154399424888979535577930725988231127793684021350130364588442594837044142358248685352519780342039234974586318322858634802298753794808420466362394121698742961401721588792127905357289973962738136694653142725524067275075097774811223880209584679826548639849909136205741029832198883400364356904358518502711753997310074603025163644148976706242401777564037471823700437172998071167652836108435497704550574673854108787857744189539426867880426603950936656496627944742794703517332512917175961611556849880806621966759214476510935006238497913668046398122747406265267952042804772078733549034430233373422244130008655637844329569015596070931423446380830524468699311828057372905337763292798497579328905265803819274674887864528162999023490875639429368985639238249175418434971007329680363900063920470381578755850559000897843115596668167835210249220343849829567642561338579803915376947044281561965246461446877739834906619687428861535456707459648830621727309928372097418251751542199950066593743609789152326379885296444409262033865647588153320751454697557546843472211163393877910874756044290258366692481715901183790300923124250293622852746583255743019442040406334674486450054989531302993454429285393829221478570176171661551254847883046049489557707602094121256542333906835551460547378089460490578617759810884077416940517617785905292790196184718756343133825865584973161055123771213319830648945694974496868459339799320032485934645181654127930894846649977018431728647471377856317377809048988154568945457206251119946527433534594358877705454233548645491525494251491027733312006117797980525766032368526114513909095176617030362220698802185733941839373317643617343005863612727893383078793455116860934240300213705384086149550403257434692513001789260848826438554310387704582365527810717205972401261967062742082499903978902917966254657563684086900667441769111818144879838094410282274677128841958286755460473885301136960369335782787029596170124158190593953108595369247406293791023955623075255807172929526844433091875918076286324908745337098407842216893100428871465381753956227302406953429198963827940899144315068745668481154030944986909624814473801448941885267494832446775331838525670091351745404392769278273592959795100806953338856588929740836841437217071072747786454614461581335021357197447956931609158946498434872128180661505386234330547256452923154295191991431233593379419053493456437236637275867439976231055119900960096904170322484019399891302346743175744981024485068017092954966206731724666270275499955532166924587081822659402199694052259020641525347173565810279057711396826493576856042904877645494381595350070322490604365067486842306261665514604083955253675278133494517984180204024007238422911868479502984646435250343402324917000726209025949550169809860984693023108845875782612593800062281070823301356386324639817649878157160005530617706517872121889539722336254994152852716245224793088650531859606872596376096926046484325815232451989997024244962007445505070101673629582307954314116172238465065923633530289317503830795180953964665022827933610101287562066210043266307127277441831914825411192042365833678875937061427200968266949758810504754446426074314757550594425642714369691382733232343964048447984663986726375360219004470546641963867780285036382355497249101808820514421021136139053515677860106179800615403519810409259411343532863892120003097651401043060638778885523193455938406188454731265870623288646297849998076789210135449399040007885654228583606340068038024475044276784801450105352374424909493777058439618326274084889225026738486198039530029568695529637307400614421841969082860314493435062724723980430653789389176730262655396131388164009392620815287004865677153137498048812856498647566291257693104889413767239838112455724972252652065400640377352951135774731553831775678274379873482547260806427043800584206783065208448175755653713199094900786998678772380878704442768771184016419295465534014947578464174723879426257208461826978193921274092653199527097804295390146058194983049342685254876314271500928457442054854456675544643856082082516171758556251342245351803380628267271681432507005129657503969214844809609425533464321332379563295777659750024085305967143270885922539170414718854292752439395680808326354705842033944584494789357821521061767863703933611982275275172793739219080260067182031862660222204201732264210399405952941971857833626340959538902915761422234506313129074320439765556404197530814896638209865440384229885715534218899540490830193187787531671673511972224700473147796034673115479064745047395322990356758618799708058203868350367221158594020872124125170721453865027985804454022091433485257395564784970873800543351542713283317083445740544776771605923932709779490557909030058177575016040023246705266296424303567995171524200952303639296209929287385963633519637824321598554451928425767041332665343039456381431356604718591223868736621083818913513499742011732579084841006724406403689170633440405061978123221696797679253030845382860210943657512554629309514852827784392989026667293502880497835644778981037605502495504495572669290974391369986974039178766601034954916583413512219990996675977966308977589394240428975365785046664867283953371341445957532761449127839442303171927106949876478084606653188940421400036195263615020564445449608649609087317384881013972085836019687511986209229190968318931804246420199279644252066161223653904721765281261464242548667097277798549924748520239532752382516511891700589094885750591080677685848567404210956877067449810326779021306485010755444072727704530403574444743514157171258388698632785389219021819900897118343609577122301732374790427582025393230161595938023897874906918451323022378941266886891956421709818173805522580595795049197723045150723490123182799286124718652468306024278902134821534451963145647045111702614129402749458528026754592596628051854467395710962922696838385017841741372404405277437220392053190379395604817470186612992860722648489325144748122280348385781421449395290371378721287591146596389679783298509170465507397215033092673906839903748645038703605508783614267690911699133451526968758818501911364268169302261032401065212423507929987830981298288641279833719650898675410619438220802277810183504972211140399551174154366315025775184268614708578107512010291133049527190516829936357360838407956027168883959467904175028300888042490010903247905037100444816354334167391320772473627786662649393469640213449456850134065863121103278661568222666738461070296411407223625512277230457415251945924151370340339633249925642281026135614919336118707923180899449008279477404584430447140295408350167654050861208431297149240520470023588314822679310803180294909308381548548356228897896649409183545856693913123258187407280707789465222905543657795943796907187660338040793297123006826660066809659708695024999747399978792890338965450534835619444467236353489634033074603898997909475258224629651484731529208221096238990967884374648469259325477265988804251087663454563480146210634916030418779005657122444121525553047460432235337466841617270073911526501294600167392883434995672922878790083379913090205844123202631195179339509441028956684806575201483639653052594454440172018380176668768392301138025418575361356045694903615154040691238156159038221341484449861474121738254459283161203775068830427211953932760697974362653298709840494938025261619488951412949234183579335046506591216277114723924794570793195716710043100663020594253919339041004839150276591828074418344653575147108107359929158765253464534947212912117669967708017829984484098357758008323003400107896480714663970708268509788660804724465770908107779348112602113810121124064227663946068940077540536059385510851703417848237825072302266650973826181471919253752443662209362390442922866798781314159688389403368716967801789571023413148731783041926687178471611056600412642881099373915512395306344127077118115018559010149219321382538243160237732137470964636477550419178922430357805692106561936798822852999577184117115539840173534018721679669540193184691165990895385020648906304178655620422221777993295010928632767842163802456165465542599179851833563030296703137735892433780962525889895677460021498234016527783793418646780103584179240920080101770084269741521955350615479871245760234291277278811817573615833770168684436858067167294617461383567129820293268200238163917580830390955473530666748382055748473261728727589044026023024605584919593819835429701058382795363568410351829664694860114801210864385935536538738571999322847447892780783278571685619336138340642389314119256390911765881333877198930371983099523449717510247021793536058400126919452305005711021444011121485199501778248653475272170262796042584285349639410155981781579790765441759823874552833676566063592374696674552397506889539111586452922559525041886044197125619053110541125814042147841533711301603908040571909603350566091347331602097317418656292788591312057304154560862435363953963061375988441805525947423233319170025484177912019207222719139678352113093645069130158095777011749886653722165415938955055480348487722838215744832497831578022370200024493549859667386951179408190511857306754322619915399359964937415003125986794879881243313518836041329840988841792664427227309192962854144405295278490107347141624220209237673838069772572482633742909677994209650204716426329294927325555075818047869129706582954533104564986510672803109205855320840992542870215501439495768061895347843614173882272659225090820146451864867556492007113791650703548787029868152815198096609034479440613153293921696629448456265012296967681617797717030947544545284848343655794182804467346285627573563812698614430050793541004053324484373269174187302247065003784012776767018528173983436245228235248858771788750112610674490070005329242879850113554276711738882993594678592424989483925298401735578703461084884078431652747359535362632618530142160900368731317618413757488827070105335977547706844697311382253115528947255044618026080868411643301404639882690878915911750370969388521033640188681914911724515553633904884475048158261061655368022813256055097797023361502623778362850357498290652647073661541598795771662281364517304691230018675977849359626662933451229335536984108089658819629741940893624400934734919789110877875312610033994959814889516517809171703414806254322094316300884412177357258838456511731461598615347079790212567812229814023993398093585795274602143609997623432565684545966207666624504414106975882066315788019213595381291282673987166802572551748657295840649701908335568966055399256625852450415840693546012747510639599266099203084862785055799581318259625569851807094730162933921949938772103522663051395795383578353699394875607401875597363606189369529874981385110757015181984809024468657909470338393974267178128646726353167680596961024397533913694648114011487950469255799673268504818170706908152305985170167200519346642602462767179122734569072438567874045553487242477786431673917412018007020428718523421283110361268558996750877944492173322491633137526990112471805166252966188986813211708800284712972281569041441023654529780620068794393758156791375510439252555813970577731344538626971402352126532849581942225907189693922932567784432913762283187282141471908102928396175858267074970758380264709190199935315032583922880259797883612745876857362600199346430042553632111087610945346549690192583504314066231463467624913516461894575555910701158204660831554185657254427457011329883518878832588011627478009361093800690715374335433871520983673574425590992673858338934984528616608925924769372350496075688223883600647892696108503100278236320960100761613094955008322482936615038347282149402373207010487101223264827092965713115919452113297083654367765091146443882540556926470021874432471619380179595661130193140734876055582382540911266488778397970298343054272343557206205377214440816545869883621592013785540408040557602157011957475534640428490870213253209159507374232090017008926805899932350304387797011156134749170740756216325914797249265912385679087606054590189820915903636896121754028028102956437534954951731604048454573677815009068015606299670196289665302731496966842938083629858536380340426444618604213798156650204466031797878428626392740734663110060087183987092602098187459331022414871033926194492885197772875549956711853723944101465101840927541818854790187767275774903073744407162196458423305719954850978685957103512612410754481587115807464008151137191766423074714046354590538398085395898975048170567650037514163170980492859012970146463967027140711167871729742521479528539545650231607036331520638699534230210609247781501549088546927785168532954812639233340639242077608350230606686063096229635303550677780472639831390631018876961394122821313021072084260313321965802985816681776890731844330310146600101658549654063383211712303957073250528280412880169441243784247383752969918206109876085742272569284434189021021564109204016251037349921958377059415399995814578745369132425242780408579404206323426133892882494268482029218235229570879694364892241110693864782481641701097803134824333723634857369395094402074582424864407643399213660808384532200452878463389907964824322065213881785895882927520287756163749607805539051284349095566377535468588383412141216213408520791943509994344808605084581173986685943051533382846345286305674803005256830546303511177992274477577060659570274926022404422863675427685245940443612975533223386994492958915414274975982913404866499545382799488726355706522805377953384277768712340837758039310694173432575710209585027704213615660226709052121523076115626995550086025348734324060155763161695156446321565979171404175580288097641740492771350265946432579562511735117255134870660548018358526643554015868297065923116243126880365617033786717888118694765104482665812815047804883187131982187739037098928180101459711167201641009772397247934285800478192415625481689267475730295680503370414413643792843238082733605740354616993118421175327639420634025107051782155169649189933789182834872459085411599784750758166898557012197618038848845643717862248337250748904012796884286124367870076092078016222838663977198575018600338802394694309366021846996824620127162407360956976607837799861992588768446357199922617359302412843167610695462021491475825441356156692734269723047975018276837015108381931640626322877568975618830703274823533222408919993794939367002785347428129183503544714616098361114649577289401682391221778761431928435401918906827398536256687204917422615852274650769543390627904747542169069144397985612406316300749169932490349740648053696231667154753400478883147900972397070840131821544067965337003054691372066296001320297041975337797883722497545266077245903262758347803096561843202775421629274042557412344197354333195619089655587819653111368509548779021695247042352154321455756315120270496358280018890951775764391752582716245779386553900289995785953796177692628412985796320011542187661621641759880118921192181840245444096375789666455270094011597711673832494283124202721575126950421401322254854937104592434299469605460736862434447046861091763670908771279757938694207396464965974332021914749255030571225647116009237443396835876604084823543745754149537711588157617530276863812856495513642078602968861035084330625731754067106604472357564188707786355032630926575704195407477167118011691513937482453335747528478627486960105287613745675624292885518357758983195205433199510307243273238378726298467377852771126678075004702915809325402384712723228310373709278662828083143005962637906358414231642079980031903552979256984236895943640870958212565938670885600267779430188928613121581057962724441143910571786133198871810378962114320434773827553632501315753795838859892041765447691735232006712817089272426813964755516864282473756505290136637529044106931435097320050874690709683851820288819479752973718916622275867230895276074943031340099012913225425935382146484034880770411968875181907908704847217612664601718880213372123983482747281614629324569121244531056194043236043208488379310117526460236184165018601955699336143011714673578647109094890683502572957190087612795676015548081856758982470031732706482103277615289672798791680246467638765868471900054998859352396588092918961049229632538212674711750063716743536454331696570324700299988723021870405110483161712508874029454515512323693804193296873932334445461671496118892762789005823725614166538000097423465804252193106433828584853305972853250007664517030094454765216723597400487215346231298278440179500003710264588010434383154643403668066716338170232150660800580787186553500657953029252664511248600463123923114867571436600493977824599849137246523471127765646571188158112778967195185971559973633128549081487233883677342479102718450720459840669654908029342977325432293017306113532843482861699851699370292869227697699314278931440951184966131923252347499167209203985001569009077702712118008535568695132450852355727003484439190076521428906077241528342889322976873095349501906365090876604440391687878429617003790476638480613338773633234055471217040711339411007859390272156892093016248924240560938422710888149948580065053574317121604883424844979002526948369798903223902196705650643067779555989587111483826469194570987410950520399961373616516710130393453437130296680803479064190249633548309356768015417777979108833486089403448070967325145501241890646277994634509370508118572844757516575426542553770689658675462479541939640579091145766709173656738096544584709083990854723311656890582039107649152000264304485927698094912253698595665060389346886654871639931006106583063374954064541150499066055272329599525004786613082750827489543911887532975460480469622704620435924885372347542568972734526437634198824608445959037040917253497118424786046189043136198502782050797318168320358095595345064423395097210653578954793423263307659222398039329391185368739601695302495572926116012541400635393480648189240972909022881938331402099748321446293206105402100888717889137862567751064352744257984650200842193905394797354625875442803491133579278361373074174490658772998288366326044674185411953861844782202099962870602694234968769682460404297457304371951017126490629609797611519044103055116162969340271083533756845636960275865865942621395509729790597369679316625698239744030111647306530078734375745023979611218134863526500805510215936366410507700671788842918150662350525105117936456124891926862779265069646237500702554383285640259310872138984692212745817977332300611384548473482825574878726214078716471031396113625077579326859439408187980716257944636786133804895664096934924045368411631128055898904122812397886823383537675588592941007744926307878584930181574626034273124314239700351013946179274993633748944769221884236263790236008840673222745849775249232258821041380861770577981747251596123110818569202320970939039432822550843952018483066881770610033004006584194379834478055215982616463007312380034829723598534031650307639896287530945512788512964320598412520214474706775005055819949968433743056843978287682444536311855403420511903739282836215939558114906400142808060564498375732260791307597050844023079639880036029019851375666393773688341120967171371064232240128250064462256794344241973539441692668281276621225509828420397763639038223561478869166531210514991071793540414031667353503975135633672347349978579068526941902204942932244831228867033425645062454402379480423825583579196076549976106288840656684933970627249084843777846770131097478423641729056112233984867138242604778701301085975712847017981270402810614773777288890359351080635148347436765484022480172999510469962758694958046653874833930274984340499756624998364811203502829014124032769920906620157088638011115360530305072726382446712480836826293117752610047143377112015440300650748114873796618633501718268123360452436151272893344335129976672437376097118375885056357364925428475218093940813003716133129550714150972301242006108533430186527898726970040162739632657826291689067238203919480340181886917823565054815554519289422175656560198949239244443974307782455470095235664733626368134417677414090025415988993160999594739514953641431750840813142238224253575506067075329198207269534477183358133693694183040201690553530034396089952479027419607340107774416292103199817660743315545650075394505719686394229267047826225086973732990043011797992648980885358345367719183882173817528959708425064361886880315729224983989664145273383672998458421451982939065570566749430559829690226364316896720923938389846064978502393253094841254613925600969897803529772384800960470610254666204957966175056079890695845853778400863819099848072973528754516242617535134716355543522574934540074721418550039449363284214475620474242837117493510192246591266487444940655453598146410081928701782457413690612341520677869657353362208806101610836528212601390947478096548886248208146673233804771424758701055546864457591951798337759369520087200448922559443088606805248996865732963658703931039369299646245461859840712403765202891528528137740638937108853463265220580207397930446254894115187135220243381887109953749924124990610883733447745355377983067971059993381883502401583851956622567003695040978665679541021143181934948946443683992796748134295375065651081512836982653727677156536058984612769896238341559195650889442180941832486434461714065337092695768216726276766997797100714340744163980108272320684547598341728643434493450423387985732882744335174025318468589587528069339910628899092291387659970880874550285908145408779788101605640361174241732436706507083637100520710139630420514689003701309704187564288729348370451425799786899031533332209294949380131335926599381649570808129850317448190130582200139915855264283182436364236285861671140629416974851726593843781070086422010548470941527935660331845662396628799070242809587551340998128763541856366765078442202889415008061134293203621282330062379953460836450677554863574568930857033019103592248795331221549673450269658834882584535470501381029219736550007456059379454600791891235984170123066218925295182187377443157895190246290203627810244719642051838054543252576195355596397972510979007460978231958376563512290156015431219732530425410699629636336674571285472353622787176700725964742894910685926193785986478861883830674277989701948808612572767095321613037733763503339651258463381686832272516098470733961566221858995283252106942610944896773983828059566238465295491211894192852087905203763834301646757674371895234248590255346542091409016049523802868365879357280458991594509367177917180785137627449665301248529596058207704207949413945931651280589314310421391117537165988807470519781653895767491297183617074591942339413549097855757044765061737360287973323836424848094214923939885792868830356706787277778083707064804418026509200240583616772793172918368667038949098452554548415202907823213713621459171369302982471142881563810706982166248087477482451823874326878313644461206171225229214146394626358991160834838301904582786307757106681990875062400144761680757362236034927472820326192370344384458338768729643825796852659814119527462635580735699482187793770906726923773131535215322965207827530975722881593055338857791116802249117600075121534004863345419599841446863903257322509229801956560329086909945092741639966376075615329303671529312603302013000657118820083002981602893152913486246890844149062930909406704670853423614786194312662448720235950289827785825143259641475254914851498745914136237930774025897174813947247533872811339643118600625866676330893036580193329380913597917210572223885262541978705572480021800619059129742073211282548781181789273898554417308540915907564305063285476679540116645155986765176617771598601978038142330240336819291546675111263050500077791782340762567055846031513964477801492230709156275356488410724645923977383654046882975995069491690345279749703223337655622139263090670801284637182448858210861879865332060831866381099080926516277419554175363702492487205869120782872829501795919985315266059856387698574469163637414015008188189553791351263151121384705637375838895120669196338129728375043632703580244683509271170357343721078224049839192179720209796365695456519445348107297235302035695596788552764559652397466067880118700480383206756135402156566990661404060184328842000291247145559249068321579776614002814797800433914700903432166365505269975845180599528615415978733969919428084425172873169313981537012853827267996389675909860004793865338006226440641390679329400239112574912036946831129905953592459331480996119216907992294441353794289942226886224436669513222913395190095419588156367515700192400425455645652542177057498208418823742286927277785471168292570604095132647921235217781267412506631873732821942988321254574370388244791412826511937685579291531067960878431837272725317112545431510223969112776966355367474746700639730997390510705470015945780970924854575546234976914903886764952093746291808439241929581961508192966895886312282974864912359733627822577939369794278342141233274582453853123190354042366924963970065957268613874346743662345180729182461344276588362047552113288113803534629345439702824196979246597595064481867861353751407195734628871670081445611557376286696345549439689359881171935805551203007986125635290021419867426687170057346483309705749783595427543835914453488647056995306041680318799238359511505496818680062364263883806596571567776871588046478591758280199421711470158366626000639940777577155450097379578932067914292576430248222777585637140292652183691745888098536834673780068631824076323592763540186730074647708002633602686812122634286912307144766543651142190213401482495275438090768414793459496764425587685808438702270349331426609683459945457534578105854167603558653717834650829938665849411636891192113693613859019233308773703760305122126323833660857597211441593945372919270554965023918018671006863208599048504857452563883643866881749282196650257150618925884812282804160901219971448390666213693866141801992807530664048524560751667459056563075197237030687673636153969594116636749418554421073455789821044839639001804217981239576600154841135571313398326044957725246699284642033179778888221844164667306771446025946071216349344323381601839783501508360183474775687861775700755183100856372627312755058915030378911463702287254622159927413776277566901954871972051454730069919241410980268500515363007386952266356743290013207148319054072565162491228621573024770311877277645465536624788986280901120986432694424286629545693217864953041655373902058813392808972712532233375767011898440685885338327525486380079207927777010792486533429717870984055893039526642756824949949605999767547124048779240495513603146916271050394170392736397774378458527642839737142538141162245119690644770274549527469951796224348257989952961866237437395158974796183337261628366864442332806260979340913227984769185028381102647829445486340541817924207665794930030117422317112145264269387200437890114507609736691224487530937196472812694171037427735607116926201599552317268297688249006983084959113373212862998767449865097820636394852709176084915895767119209389171800126862696499645627204352005362450308034251057879282854965887625004391985893249794298212026430901554608217527757522856966424944573993530458245653050067376939392113564512056631466267396384932438001797913751713787778425301660176669901767384250458697083623869300332494025855797398697690390343933348053842381418587200900778717888966908621753031386540582951570368638812342651415744860741575756304565212841820658322895147756586655733428872818969009399027920323592304473606794548564914994221059195851561293250147825080325968502413209601750838204397028930508955499943588422025049018574812269100701649748965840178679741309829332356296336774726441213792848717937749933092140120858077935079600726775498301368904349751487226031886528111796491965325134795577784655571867471681611287366272211610431793866396041892952351233677262858259340582507990146702295110102025024507019170153524832998994478418323705315786121036212340181025199999801912855405041159573476447914289658123369340672899475419195901344621925830739134982530506046489706704139071555467030989161985998547908196846562085522500498282771276361008929871814265933062890899859904717142974485552428171617749197423424519237660760927980215866277536096191125219371399644652765022530280412037988526689142789490509950681656767826207968471301820681836651215213253766874207611062489256972690610945750880270344137767286329442643881889247834063766762627609098350990474332972953079866848249817111801554267320672240777426920015270383241916611401104320888340108694665345094911545328168476767014072265437557235091528315216332055420612855309336933926326221791184726329870682294734088378301052045079933739004581872044707040252369639061910284230042811682498842796503273047216799538495672765857893651079880991561060583476846680719389285586118556395219206054992473380123628988337564345180522810568822385970264332648215191318523871213385621672255828901983494381489704524501425998070981752749109882699893474712426296608095968191183168305319863695742932369247697823045593753018476165215983258326041681365538623492138559435147208674519400658185412646141816673797456499331776504996736398511747798613885872828271081506861447379994127947829118599639820545429036782494094198063273466247906049953944236505325854377160320618440569704301900519293862062334160449921841028667247550811861645317143077477978803460327926420385259571110429479558549578609526123529446600093114587413870956252543078490537587230273445364630024052791202402403031856559401940684116615352728721434173419935957923015202258126692190627449920453417811650813421158812751371963578916572250638332484848262790518287130732036725288435840760027942682819711889194606549108360068244265683496144154240000748387328938781925496256421047913172178498104086499903839096094345717667825009318087362423017289986082734695463308141251795504897218174120194047508716249490495365939113077808991376488551137901351495616748720263528338838300437472196542428779790051753872743248971126468815645191753815588073481410702961454020965647229724529932336445571892453390264401373114888393236758335033102433685536269108629131736645985636941278876403248051266828932140540081656660217377650523349732385287568382224735692490358685864050138909825903993368620765119190082392759037916980329084594353682303746207464344903435209234819149678976690312755430926204258250522376664795040592578576605382059910847523720970986206465787570422013005391988093963997056983775719959556195932558071101187744023965926348770392284503549884338679883070153815133338237044927899825794005950606882927140096554102881055055879346126341537667988603441015397421583648002074282483268179597588439962792197953261022565979828467129491490810574779874672520381475768090641841754886167245404067739138362085366300800810524432028240409889773132418073862138400091003283370529109880372281177107970497755826934907197803354884888679617231436704504130136701681307912379575077916466394996434891913793906425909361302094298311954982489406451562289124212615351897085158953318013980702105154413548435350456572612240158238763259377681698572316187372217881430510599227641882308856134937712791131682756185960943822203658480427485375690380890903963147370636689678292962277604216046116627913783355575397510712351660133947430707559753735958643886130229480387449820106121416909734488916958921376982873466595293037047062365054074320729961448198122322647732914472584664214773924555478607687006869442887384527130066612421241932211950824769605977541426628166371867550438203560243617582254543351110744660561221016348430727292630548696865174543795405507340926743947882309143285571927992654442634793700473306943222732757056967382397518100378325976670900045628455678872537219890557393769562046729285341138505130588035816837853408950898281072456117431703933427753283262943710217290942588397215136199923221338879010132480142418107999323619691385665202026387121809079867911612388797426630251784363442930383163616133813802086231860405080328924578218362245696031347325212299943034155108280755163664644232238027140737347428485200331122624776919414652784694107563075770328803061211365857724559193715138817427756249861249834223097328759981622779602933416985126341195260176882804681768536311853224736600626474144400787611174739874157807016783023610957836431461465434722301396947410668546897339281023489394387508127786119634250797221130020128856013303531421284325857164851894670077169560504426287767847755037719253878571873735885873305973919744083685162026480636954466480908984096514176009539122972375806948635347799788338429957606440584630678467391320018105225161625976265217767466252348977323037382489298441248991850143389382424454356121306220343997333858987758886143119398331991205563163603239816735777597881808371247004896508853147987305352604494503401501830372131972739929936485973970170687307032422911012303069657083002900748501963955218502838287111148633583510938706902059320670805679274656996251538889476063655617408080742852922171557546750541946868441225867790794098504459500973164371203133089202397150501805782974379316432735683474492323174010706068063791420395174968403962599819688207959620736418069951174378039439997595432409324267717261827658965313995690729854241832305839011614375698290694469508379591946569301319698094304191719572525296492369895014373346526998247075339869573270302687883116533069677439390516865194017534504880732323695362191893898873109482075699348380610278269832140961281537209606139841679474828305813181452762384771470250198422739256974157444929227873460611293832098776630623549007241441970296239848751683207545466915896579290887630935665483435046911492545476566564691426556835300599579989677440859909231500930238969965104896184700000009281769305695046706288907574168413150356584674058099898214372985316659133662599460826837962515734187999758553462587119814216033234412559416917310602979888920648746058676727693183036768516933702854614653546373391700630661230414856506689969611770193192339891627726477738952469285994135603407149873994408611896298236143388087110195778098072081839486025979781424878974933214409132930427049183198550077649887323396302730709057616219843686947006431813225445969328366552852635000255836519250860798278509690903785967002125836093189225485366941869980105521552529426039468920470345002807751840568781199262988957376066806746564623781769597162137340035469698923485240923437217301028441629295201743838941615920110104344414584752748132443149861148428995255239393418918872988442532867778933074574156931494612633116420564139776428166918263621992272438408672043550610853242197570890228507675451841473979076932449053407593499411065304115713179533432565686884421454941497422720007560116254865571688397699332426154087714652402728490561941941684846524907970276107157726742569339845713487771631532639245403283210516106455156688747816175302036734082306579774190335131497700373644023138468319530711601940017694097167753406462632959055573980686235358334680448298413711003916190324159910205623366627527422061636902811983236813992538791240462973759383400471772682066902064120724448456855380807930100945325656884098436380117566471890925461091500819346879669797078838373811418990159573174983721063275819720966234696218040461944004753754334727471186703818371410731475304677952238805793029190811445118760487553207635929591648204634532855151462390807277028559809195456341979960565705842744231663379288046478664326610539947702272289555549021644110428401174001760907115290021147106426717656480986409242627578225538844615565970327349519097365705179108302829301134118877948943772271914178576274342575449555916546615024784205993912210897089741735612104681241042101999198485608232669397791855247470037969977823303997691560462463851789239835854543772800626762406517526012251906726075229992080719269380983322587608163021121213414869071244502833795816159921488311655290347755503765539059874906397422484121830508747063956076864734241717083069978413082860945897085268135745624026497594553593356614381871825104660311656877759551127993653060296613984466007326236288683007906986529936143754420108003752371425022555970614745550081423160198083362782475367112439614019518517280976041758354722802568798528353858986602964432852887662618877910286315192523782576155870549227731816851127392735757338121623583551608762082142670784052520197924456547089999199579590869640167566584181579348386391024372711667191252374665725696093456296976381655759880867065652044580522345678824539795518006694405325504041626465293323648629465843459004943256685103650939908302634779107965001249963410606421633647542191569739693311071436850054156755033534300808500145192075059037179242633178582690557625532847459645198333252871668378897806584389178582809482376943239534274875562096664282387914724258197974596016183284314832896623393065841872908950862797170115630586526324694877860738830961930168017425658134807806905963004820265153579510385722230376899669003399943062686951005836768586304572386375871422614145330298597225001950008349537871546883060325184067429969340504650824370314924946087973877357449072279801755599826280794744941442768174149000980587700108488452242995481610519845841023443130603800763789499605357763592717082235463944211787764059500823219526760514255786483272795809012843583921911341109471444094530525950714104815721754748757424514797124275292985473364989379971810071329516354726096291075230323657064770357719376080237753593473762934089676695031778802205442217734930498709795446052427441783198618160557737045149942035886887018757830492008327719720291891462925684227819388228128095220720212120707751313787603956665713880852759794277424746653673372993378111088550646069415173824108486652125755060712293070927515360426842094160479375636387240964224561420591698674263438014387687382160171940207808390611943929684258362047014172099527028846451198787202801334793666894132786404883595885366389460517450382442586374168535976504684334390680457806933385362479115235693085043822886062930215441062947060507558716856275153983647722970667054211555269241956407691612733463413412480220025482306603609022106272701651056264604264935921473482555522499483001728293317146941078282481072074977724974641088742847344459780850438265550251849951153663138054860930588834873980797758881652301690758584096653240445895310235319556285689749338062454101876862638145107015418422126643466196118390720184186117683968490986343796912881232680011892154796166520402320645539664402376215448911813430385621681180662899204247504573624691381261765400164766872970646042459248258995313689886568628330733063695994524909334824765672588642173622896377645592254846365859659518849836594979886019921477814075658674018849697613428913597575397356038007548814738796149844789824257178068467700422677426809482853651501128671084031987421181213250123684426874476119726006007630423618315442798020947179473853904769632646296297377270317107700393343301364986585167470001381001670078867096001633768152291599221386134679510749935046258281207749421330677534581376283423967022517104009292380438780079368159707535068798271601044768722427870461742464568870812930979303805192547660440842572771560951985017765940303915368877928078817410736374302904105869016671846188808128290719247243442087436703249509616651850564579628249665521717320390281320499405860698870529752046122586376707205248404663026486221498083196954171528400773052063403414900976470207415864905304393181121497724739459032871823255593319903293114086655707001636046163445436767653348534845159683571082677091466150314508927075110306371086347164855623921322731523111396512399768205599344724175017673393054762056624649937358562845860666969520544424387459676703140788399045901614473425321401594657910363388815007579456924319366710396599475926804780749606855334170483172831700424752597204546870099191680238372005548400170365306257829496329875476223350277517389032975709391850983556292110262241290491741907109578359330086458619195618281191585691599196454114815467549171513898538593451305720416950489773718134538493383077992085253355940540053628829107871394551206291926204839767716605589947056354067951354755430777429409098750575337599480751532099005687548930176224614194720013684446703834836038601283017649343690188257154026961493471751438466475454252589118811685441894855464373050078883891065173876352786537881258817718593878148537227318763478757359191281658315483220139336287094272736668163522255599911300902485298060084695670891148140976574202103129888626014497717611836358299016294513486159865527369985944422828188607201834000645342172457627315363223123365197567872309221023408572911137805148486277529257480548637484074763530493915261556429084022969230860794417650881348903022591657885006240635506533734836555013910182452045102210359385153570317993693770816039493497029780949677458930114447989068522660184284688994088881398691092633904647719137717011460996192382746462150317062512451667707051649450957102293358194197849460986936698101161238282497679341879936645878845782558851306780017190279302812100187133876775670384566585894328162586435427813884650609555290878455561886589781273711581568004660259564163599683528687664637243649104220004524179078706311125825658434247536445587841359845900271984289433999744901541958484859963968163243325101712995102566015556115453531109158779517069115248066640604396320978072912265017949422998619510380246063689363123748835804953793414941189576455551261952374883750351292138715063924847981459554622262399281199940266932552437910027096896982428659735141412012498016985244233169999139258502473780754294848826044160155758567431859382495731043985766609002174625080877694314160947411342300729099620872223144890944808321192544751705283180283456601322689176800109392280991255364192727364012942579220195339525198081404677967974821113987862065016808734519869822503693965834940813369749076943612598275029283836131579981923758092918713023176945906367972572556510458200878718489223460519967067603211817573072651339081298426710560182496261927788018391373514797094958536169303286255860816149046599121162977472739356429675309436595192966750464930923951271196274657920355621379297800575907057030989947464984728477652073678487387682563059037336711383128038155997000089778591125957151258853866202552621434449675576836203160530066151281484573538196388579899892638573597711657842978555405266979208963606585366499018124503291098594036033037389580904399544729024304178001072390837672676519687701813441696305593716180006970776397456917101127982045041651276883686530225361824915910338246892014043888951611581444425455675959783491301986523332071055627238545265666837465326529270009525505525233452532188468178925379531402416504577411131833678457376966190108264848566847779283532402599878854601760834453275620773708114402565036407442753901672517143393982116034144611024599133329453216847775474855191868188217399156188165895339514343194705674122611656733224168117819673958582542965501205884869743867131284621662148835504541560534428995756083608544012845286854380854377327872676420893980381268131503453062747649240828705302453789385945807139328351896979156915585431315704038781175899374927183912510751151583490106541405814742479192132616397318290711444386119227957151724964354455212920519006214974513815882168882287868748793402258513895092423818649965453335947328773361214391301013662599790313126737233495295109131146804190412907039689695520266545021066509587072374591371361965674526301219928965121328402865127832300779197820967858611714196573470376544288941780203866117367802730188785388562308540308491569028730172570769761746861687127653483140723029125077272920392386206286691316356933782988991274931750474943450027950141192963613540247662996831215699861276628476024655496606278888257218252550687680563115389247576918687687569612738665997926620107813720962294821072529946979047292512557970114060531198172254743131087522511940799163236349948673017573617958528622947611916201027384219951073311496677703125275204077412355922140783971164741345691582546673728237052346742687302165530904265394457646609147472036454492121220685075623731807353576752764717887913637347010875427540720711496337732627786191981065889591419377590600078568759665551884032106556251256656210816926411499127662100043207689147621867131529969050276339789520140101162424338517580658883164029513031730793274190645802034632123235268562700182797852701209049224761153849896096000152096503386442529102067600450662551011304401738903196600547381398163558631494445977667765917267503058517987435300870284102909243693806036822304812272848058660688236243662785821383500550920084705647495498165223441891628980968973147699396964782467435384574687685004063416398145775384181061425585299464124545750843221382369512204642508270722864817343049162683152863294833607097723543672983421102787987613668201025692895983536726762377528230646371941656914135699077162438357974836457389907940100687520537602492082025102923201610817330312099326310341347714656409643024466385991458261000263403901490762186851662361257017125024426472881198985729177146804740675967993664074510064844719130747641589806395891344869133390790865769341950184038665273730485986174508811152601654224394483189577595937721853766781017251912154551873488389769396803956287266016123604736023673135703533963651013187136164251171655454091606630026968226002897776680203905163229376790341956880879825655074175214112013268871149554442486684889585740438040385757464990450196784094376580012233881100363209986603846308294653272019786345760552493631313853536379958171633554199038474739386523187184017503088007554170911050858228303518853658828440105242222035947576083462854483810370109931941626775157857713521886051463381513180293195292339896537962321487394662077000643341997068000349651907683638711357094886288490522352473720736249955625727545226261077386299122915163526300671514448949358169953228512721664201128498342554848545508964810528132532064113153372499443361258655832693730810129598253882379519126491010298383192422518515335875911602498790916242252736403489281653136481160545488895433184658639900155258575109101723668854216122746118713492977683336710504574923162232207174080833264969710006694779516424552831239567473083985748596235666951723354916766231878306541302363028179390028745789573666378395123991118165733063682229908702556416266982576508343924204165537092344361575598395338602433066025897198808568918295545854351399619970736495066072362334667375632278827255508833617482330601433172510133077079551503973886762510825398023184758715751640521325870701671178651752521523361606896739975600292762236965514242693556077771307633542789911225354911079242019166723821579303993090108444073491796721669921746829159059283877178705459884639493875290710420381201101280929564920318094665033909729060379078787766871557594526462752925344171005591789238870566185528796318907575976022100139495186218929851834167277843974814254942192832840217884450687914424897909079223540221951736499471009146087268580357083616246554382870415385580209521093086106205218966158011949413736279202068586879388590672041997361963470675067839860508249724197781892303951617473743558725145115690440525834638550465849491638098481703197409755502142217945361456743232330493803070366548588315438355212854779841078372812163534845507779330866667840176019364346573640340070440717096868876036849696741758730039992264279752744296165866376910649447661905830516105388772453109808475991583352519764518294123292246993632818038047915953480598419439657578518988092603115320045004264679816521544701134794391546638295815623047760490825244413371588684945970949811681995741104129863791402186516002083030601029120320596462818253325885405803473078230992142909893351195425583329559525906559763149896207204812118205855267500594644221738019083965976530033871901571065045099789773613360383245876094382982797777240325525215096949621993617085535428323880537989932270124154388852038354034733788248215656259578374266694181554192627157870022661531912977070318481486173039818485228627041762081046898870615706307033833867449121932561532429025736129055651275784370830325632455219252218111946909045934498807938596039320275743711435867402790619550312782135880471002426773998946539250739888411623109773059349921924003708980822098244655626998106511135358503729653691409048508685686424877687880118769197966992638764595463942688634405569351421796438206116321558029487321290972838261934976467452271554194204797292239314561242944724806088167249075797923065232659481898879153491044843720339681617471202413554620978535471967780525739149398786602612417584866793399038189710639196446454295299038261098604581655354058345823585161368710675252693798823652737071718124748895135310227298292722900015514104978688722382936570185298982071270383051566713091779587147758311244156993833849995661912931433811325832516414727195919371946506495121010018100723481286412159388674621847812405358898517682652272800170894161183894674119296340345142287830992786588363543767972117928281950845208936225156263982695800754876358679229514180864289845239300919052333379749069092189030780135408526251643177513302127992545038558682912558974894983638638611265949694546397875783804394302414526049732986829615468770283096399661132093167960713260842449172772684535594221116699241293679626863681975408266720695107354652870656052121685184402070107056332243840876912056035900162793769684334217852237198520039814481061737378362689765962111927538636800004267003040466618870912713015042418337726511745831656233300992253383582110664120190131854259619331809446949803270997261037924729564059480529215884698759412254367616868917818199157914419977034313891445382467462168539862147400799095045837674027591627775766923820183955428072130491332107227028070471207432801671713363257883018981964292151661909764326048486134927462183203556651770336590871088728958473442202726976484789294407596656520624545539056330709766828165179369116454104542758634133390636759354435689966933183931859478620320484091018534332815403788038435790530674392884685069478896780811251188832087969443325862991942809251261144596976136888273717260680773501860225854025829481963061915868359037099792935503927741738565467296109777484104216409427428363276197455086743724565392059047104861333500056791807473936298859873587905319923906216568280319847411633222432534748531910755948281089437363706119386940573898280258997120243968963780132916296979526623122115211639834822639704586827916459132435025850088041514500551077825106216667437285857266619746579692278830651513111372168514479583929232591590058969459253590239804157911104007650868092645463129366069338767446330888859260403535798858482441943841721057009502504296174421748056437201740735075149091136366622330369827978047808555696165228530010646605792637360952382848513566403839122639986346203519764924076024706445978914569787436704890200594774225368253643420141580776058682414501202857765720360377001407815647630783458218935488263965461708648844634473085310174529633347728417896191364481570323724708652629765450381802370200779756311769645615776252619437865316347446017148463703307494852186651110531960125803060656342480085736471575913631551512134401561769321190437753325655607051227230749256494050269257028668019475424013868412599458449420228065980937509012275448470833132312262792105516127599415626119787329577506143335175984888982493858788862754642741132479222507737462939419673421076239163996344658390902671599828983037727598409486421021449143024936162364194258310075120675351218759347848119586661587715880854164556089965078660180450385729683205908320768432522963546500309362985015229358606330377170014615877531482401177914433375645333692390472242216895590175326886696674954877620229284112928250734786113096898610616369702630272292873885122391831327391423673333024591551951136909597666542602071188088624666680376318940630678974702292659394367451607244140481253184417925635952670330750110987092731593414034813912412969316473333256127329030156430757145468520022770037672289297269169227924766970488013464779293766469460000229669303827276524656361596030312461471414392664130661828307278796022181012000624502608233850155937616237533198047645626674335726917936070604672809826121899380992377544538777576220846859776976616537706136899868445142979200186846592539408363117210398137542908851214634113985817592649158144253748056671753540259695048967248789949533583022018604516517186210827007536636309651703581379717692205988748012150103650325417863402037196027473024810979415878923342346439221389521865243875721547621571614577518611847164194848183739362159794626971877697126043692808848690435121131202898502935624236311301007893262833089344891762494316149513606353435099800693553989085357585960085080246683259828176213200631419858355336921737702035634087548113885498602961936913353524810047867328257560947578221247758520473909663753432038788503405408475069107648054060529020017790428358768439856145926464026925815422119039033376814541327368858271017140374549654646036246533018416099128003149703748026357234883576715220482163665260245525262627325774112090870915797692930504244303327351134376569289446253372854705110632179941990647588500477460602413698283876678002121168201928982217345756175742950196428972469937011925895231135041515996825424994318594781430187661654486207510336134829291825598465358335375305266713253913438162311356413769668125678318688934493977418238642357613244729140413631406904089850977889195047967822846644987140990571128714595776147088590865619307819420445386987699849316143370229081162130245182129024056104180169941410231449595750225261971357563085543448397437776999423701728381327764515282065821878094231102221548043706592291652869108994451544818590912946974090385221288165047604204229586620549218568630525808836201907365681008909342974872725561725960335766373855160686736024866333766698468875819835613847109804586363258482241682398011086911670718617167778464149220952310612678924338496650742518028733221511686906692937878870268785478352247095709915984944593027344690684016339443287884798060409279365126460455867934809620885641684468422634052159515837796242919024678873534247588810760921490379573552563435760870450969354793513912424159946209894769821288397203581369415042731748325193011887657876573771140420270001104758102332657455673959251292827422519395824363511838705182706827166103810714433200609234116779694892413173791026939500639169961542579837073582266122082072025180228961126220058117618615544173248679354993020332522493266350667773554035831930153120404033637567711667629649129783932399678720776469671795132427795326095518512965844223221570722997766139203279538475020327908665533213564699877554026898053915167632081706752166322839754339846496595532006812048714201524357622958084093874720699054232329154581547556534038648924473950591760931001301545179168177996154636546521376555976842545677756399069452518209237968951182394220385355745729721322331580249311889885178486919730064436465594075097234274122106731231676671713334156870352974825006330503920938057683887318544750812062396804594009467322671788185559899672088283932450857244088604270507303803183539778431993637277095806054833816103083656464475543980527760514218441893809486713563306571586844110429791947260840105953033931989891895794694661382344882591098126708700656858541262447573173406460972548096673855193416395523944636655954303592347096450916926152588846168452456592767125727996477889193768094308023224102907213650429436732011348884491051446982873280825718344852522510000326832807599237079202823736745363532108333585615055505795173327608984768780770337719341589952326552505298144147979280486317960766371315469921480801790613783295559245633733646723070328448115435544025883118463748575733907207590413582624494861979701229831192967342674540873730815257606546239899840390803846923125777224345760043838653579018373479804309913819289794022242978140747029823003919000291339096558801464043821026085813920312357461254913665750072870282385461219777036729737462698997449668512647787573086347680234478054266147087311576772783939084426577989526504513510439506218841975218428274037786595731264869122944786984980439926572300846909648892798369743264192831053719508975574649806322799317596179790009102771903259245611465404827079871359779630140561818243849882687060678439947229006168305171333183437339271052828327640355399808645236421014158394966972005231054434394995614802638181512927053920192266628545662767634032362114552131506562618188831500231074766096918385677712395785675612101990118070757005430000032752707847121514575201701583881165674967498216760430791266618278147572324912128652189651470491655764443802080599116901383917235338587558808010699331406970208048331624574435792245653767916329736690828556914982520741704048518064081508984626329342280599039753202628019262808740113821450385407288540036403936168108719843932500780377260288148001201386492776793488917317232839514713587901971740055180622428770577159229772277791410643463389431993978197611572924750667253562100663579168324813516572010530785094170569543638579639524396875937531974976695431024596213407552556774062358173564627378480232831052388670815889442926702148000819266226237672791303661932869306668496198272130396687232341111100546599548754572085983533815722063252523429068590531989561470102341053346623087000788345755330111679808126234268022186772141751111022461337549760781046238386715534109827424368425798518829171491132225233577260738872012030372634564901013683482205958935186598771585554604571720425534237069336457885928886457581130604691102082268222526765534132893672582200988555920746014846400165500398264662568366972095720231030500128699204710773141666057625540195102489510207851529670523634154102576664181339541631814363034846589699375321875060323929600324309126655386000786172076546059070326716449011760597887954354096618204084624162715333294542824886650440035031232368636768173664950969164996665060949065705643325586889709310245002975009824414241512146605015934198849723420486850597098906959595006913588200392333025288871704124417379801121021386802479853195273287014190606381290874789267382713949963284344237318825016827703473120913387528407536720367279781609275799529408872481501353773912434863384236717075298255747719666505385275537195729952564313220778198978293929856199582132159410131769584372124943462914329607364331529588407153705307282167062212803625477986364695978145215145163768993792162059857237125924089130607789898805865739131071650693892937528178329283614529513048403122081764024861866756559305498891990925415679218597807433321912617312973677351642832186733920531434813267948127770235700133665657260986026335541116844349739071924567759448686673568422611076513425454235547029698500147913648080003002920417076175252179091611235476957136401803106286237706902910046530720067080799783193170917456930301810554655809209240281724393206835927012502259244988195034938137423780284623512007794863059544379798659501624479713702181127957410730781927425836665417109136495058689319758652230428269497615774169489927518971919235918921709305769690695844545918319765064226376950299971890673807458941819815033898403669883184537541581440620190585932855794607226328228047741863853498385327595734645146746169103645303303592854174024017652092952594736716198586631482658273557169193480637368126385469373731177181311507904559759083787916434214441888043233406247497922841732972070841655255582946410665585411441112104739241468604601669633104628210862147824359165037178810071984183846159114755811056101029154118551368351080533836165142336987820752818032189395689086467959131281899636521432285312155966848093106990624115802882349047121442233062785201015445004422457615877829787077677618855609404796502974444009385992791750362527155359806277423652812781955802307171189870297817271004048103013876185061197675141130639892776725835119145759063372089950036569131921864938504297754251489589057737662000981529787179503625107447005896913003718906479053866901945201381396886064715402033784474632562972068277499299110807062190509891053417345932128497102952606685275830095230937867621747110112897816632701553242954629561740464857400227635466987677881627511633297292628502281295250465022512872616014113253963500761488675944638532452944513026394252756400661065272357189384497183868261137574611761017194471889484264802613678458469099368712164825619179151813322236347575379565196700641780230008969978052541972160130434924859373023352324557173828428792532371501833657065171034485230225117453495664159593167933014275399088781882813429156523474757895378472857593545106145025528533431776449638125075158198147226071968354156916397714493100245225015190944101300795783512025816439310571475720952910003621458017085994876257863824214422018076359463050491500136647307574668063791595449374532665845305931512905735733404420432690875658216285189245888732787561860597440757657026866466529466203418782016653842357506866209993727301750607835154612146173458354662628539223576756712914000872916487196982174839647605030757130219334721820993082704388033678501110391780376152508734684054715033219041452675768664312346217287427757844727534734816495331720302102179924926500815515301863694903891534812965112457931744850035332625372817395327898574381586683625391421051052165556799427069946122462845065499864432002178025767562718144124638942683220056079152150129674100597610910621612898259807274287947882558737194960826313559593865262963692145164192427427484373474535086922476373947389530123081160155041783155027074589255342289741315277314761880032733046093640462991806743530293232260198695232257855764410718463022264406607283874597090181002638010906878137539196374972431491594484347299006049513753032479516388899807365074545374002615504287771663848341086260779621987123034842298788198531171946388936777832654028607164753222232967697381059200169136874308996350954328905317607324483626535879951227043739052002884352964134822431638293456330371846027119470560759942120109396569436553896142473195093945855188067133970012704869792651885317495650656772259267104667032719946522043440039080909276503666146087608332845301475745333409829590815804078983320395251304379997462219092798234481191871903675234155450924544992185412770705451273469584304892052476266656940514222124672023193184781962002165675502676616821523975205722115437589738785922498639162776656037854877211018306694971755145466313743945496228201185403683538192315452839458657255520515477016098660857019861969493895280449186842182047758757949810874946163846990480968150114365474666066095917076248750319360851832281881659068672826706404294495396543586178659833977460299329077681906055357278532786446889406661031741780462837679244117753620345272694278990782338692374035012706223732916146504097415952925839797781727438115867202466658084220039866091009551254817854372622701475656079353089975713322580889533297321156702139870812678925020476738145558335733291161984731981726572025537538208108910346496290807775816009732442884804007945074382554063342919043499666116231845075575428026410798781783787544061263450182806612600922492452398653172073692669267352166438237745187747759418000313093486837574537528087934155586518187913843771056349926620034332057947150182294271792465919687418965407853884870355099755487382061296362802577886980332109501105517286696076305334554064426209174607926437573572650277303727975217542602145232804167686637090834233527995909877910881840865202137929123797143781999583293464903903315967680544268847224456463291899621456780568801586275538476678149944601800208348996865217725480585337711603063586570207131850138633672939885192435414698151388312281568358440222134119316339764026514446013258904546807480173097724041808321587230472567555169128501649805693729425660762652561089603497626672804477057037633545271781976600991497194777676068085808927785885363754597951100607592760931295995964355765473407980187048976621371703442217432411164302989388392420809537451794225324753005854169691792376391171746823702938425549890523091579104209210590947142860901033403705292277815558540548765087798400558773095321942943223630122476720493725472890094876511100136587841414708697115371028523519855943949791488115550880780919604602063386533135700529430297679496391513945666620484868080780357026756509564257659557391792556640933838996304080069996824555771065655025049117668078154041930356134289541738361179598239391459011549242537861876720549625177952128848986425254129334066385101265417746984667231302997123804714442342178289074224979798870147046441210833801438531194248279683254125941606875940953313642000552741674063192805575677401937358679880436247359836103679879742002650127114683303899795128666809059642914610507105155327696158109598460209626099267838849248291635437010536908343204002711388822802112829119322295946715204699044141630754905911931072169977200917786435078055816780896104353741008138983241137520909040464913325028068009536616888899351095477196782824573426258936027117638719181585582329020071922106825532466460846251816996170071029461345280408366855054566797838901452613704112122242248543975092405785613318441107608948067176912161044118770786932754465689046785409496990884531467863907884982209419717765418816840103170111663265606304237200476241427608285927947780183324621239006650282231659643730521240218774252670461819651041565479164157476812181101576154879614270710493207461981782989257677997909085750023029826563037411593837231459596566742910690707763068719314853408164862877243969629173778190632981713204468080498408965301453544623538017380167375930100278968639300056197694274655582893541197473417676828870867711502120075594049071943377817616937686410685255833523886389402923183201210018374099451697538343120069726018729092001575441679169679932206503377365297516157435055915183396248819743320222099346405235802701369026538125312927129592986409117021120206042251470670610125033724438026461213245771921376937135547512307877597754265477728577823495293706509293997651210444463378911206117298920342087412763059644736444256406702777093365877034907318325715927637139216253597549687278248993535407592405265747964906131407070343546030293124961426653967911903420801243984194329024456239485512191363980099532026951114164684903288825089117954467437790224524595940016002564542968081363378716158976305125460547487980119466679347340907374008068567527942327413223994977606251811958208560912710532222316046292114083677007645417115731861419047237962637582170713832017793177088311329283904723435006379299248647043586657361121762074996752150847906391424367120414991034464978208330097539315862899530841674046335426768085831342638317379844501309270123940322968273392773890585034105624244363283064043860851578658077818080891261160671518577193093621696029295584767621669544940247914744650448709753796305402720848989577444713337951721692375847422733149517962883970159560177485503546859043156941891635893815978386798541631206995928730513255089757211910274419541186971741813771898411050321433051923291527305305501989837664024608443254902808248864716293487712094454748416190376407631481151453501330684487374282971532839672845643752599402054540527535847764112335095737681305672254436347734697780209621957210229271297089250994244141954906429669593848923274456371042943312647645943390054064026281754776971240048599178875840756638336977045533565005840227743108506987881658546922644754291829725451554291452726818286978002745429588990294716262725759236243889589511650976879682037594829064238941212016410043412455293821929570719789145269080625479561297895645886118011704122729187555984889065006726079064639458045535272857924591293738573783544419860304857660055270787028498157440425149790581179440824154709221125979887146269243386758083195266582709326397636405099235964164048789932987689780727720748308626568420046922188715470319257629278535701440409959060036284890314428009951658392267519162442448089259796131427478918427100127957636216045201102240405993359931441839065129900911922006543796565438911321870346051866530195623458182375769254129324065118551406667519461531953069427281377660341057950718389779369676757382528692711935648625110329440600887995368179085209954748663788572748112227171745421486084596038114703615129882558386543041380617790250066540148638759133248482310909172015242739959060551516726361004381535150107005594097317170092784160399378515449591881393680751777319460692654098747737213876022951418128158027820654635825768756242026633668159017405680405592835048768310307517544743768807702833444033278079252953880320534529165859758689666962554912162404447172033309332386992774913510230739810499056163169705946768957135963293405187999815933536955366112702581379799148774682267420417643362970992396304450013123717560980753643367564637284830651668525791338083878847286064131151223237483050311690335186464203094041821320673422943100167863662484664756794374583282840761629851398674671035180297404319717757054275259058858275620846018760406418955223320750995333350045231967374483777252831257574405396118669699000747297024682824850022971161427539826226039710364770911981531544719257154471930718643396127866953384455822677350767127572602551869565260913877191048452149861178136109120955819321359098565775964044798666380658659703103936527570851709352331612225499746705892661709784836159401716296192698279859495308161962258411684762458769196925814200612089286160497177006889153681890347409309182925074239551918431024540376973022957670072472675192534044605194035123477002216025994905048319014119576786493841762899168406286896588145290483659960532382047605406536972197718973631367429292226069014368831658364052597967850931738770372013692807647489410476482525618713184024709470555084625567378836909500536861327656523340763055144283411236424668699402289458945029259252513682819631757512229797842224024940513422458168696143997775544965318952610018808769595442558135256326719843742841652670307637215514169277773655164010402180125950477338612512361867807945341057873412498260479614994136073589169777040800218511976748398662533182889848034857129884477013373957972507717487106177441659786981776905698852154235030930333410103772704045698417180584624737311379071725130907989594835460778180605738287224413756418029622126197343256921210697467925828922621932032171308961338977260325441827909113684394216767511466714038262546898682481925601236609248908219903655477469246539332724572458770039102257823085862047236692898079066181168228572262964433159843833588951575726531875836708347352532610453094978774587132369371293249636269385975762261180044169373314577140645223361466201024460215997057468759223700818735756337893738710896224246962042838834645342383397255866630370276928449114630454006983313353048787886738930731648941604224458375485514219266290026845141239735756593163683312054561188124655331834045523951866762654394165001898055327757019096876276837840995835160969995366474157627534188492918323296861536134159886080517778833744092382682180183653870470198928701720740922060373200038041968704708890416958789120781723050890890677774527551303398530023971352920662204798015659699243044302467027742431330332225258787391661871040471869968390330914378047604595312248026364185990345142089911177958960341100737508145229783243859785086824908756429110799326479656197652385571055572900134392412958550161139340342082749181862731340782035878512480324950356088799300550055922504836471550622812039012157464640706549971696756649171752968559010923206365580547276646943097777683685172405333053989103670792987013835153867467004215785444682752281094684944025616987127465399241391016351430656048390579442140359636385638352091710407618030641700154763198507196135137302188880153618878727584743650803861753451074941109047918665738612544359262747563835363822937534175684918745976877744968659680112388205096247001308374087270278333683740976011621594665907796947084275410124370655488798788882112749165568951266914013040585674348718543236060024804296651356218962448738142431795573665728396946894862415277011881193453571611503222838468987247426526442413986569663548241900975075636657069365088075393705261254656102381147208986234407408332258730263931148824057703689406426990943690762781015548540666986264646430327420237132681032274058097154017938207615072351311442484113007793683165618003390346051390199570417391239263243576603140264063751477873986485919550995491714146586656479468865541833871670433819855009798970261061791960478163640121236977240430541682056163053812680023758766787000166281597182020136243607324636394035915743778378710324005196959157862641196189986134057533122554908580710159839786455895614029086828086842296841604473627834965976301955835198678314819797545331718352194293777405034597506603697018381537310043677697628628389056207906926965943771499935662422551448496461805426772808046765943856150884151745075428802374015015207679026981984513315706097560239739692784493997645067576118592149546704837561676445748117908801935283000193796410060437119131346991122852625736847915247590557519406181518483020894037626047843328943611980631765736484902061241633092596056260135863524218075307227769975883945700517226160160681678470472796767302552122586089713258364030127861150037355645862235245287503880782412502752679576080360700726643632920414185201792999474172225941704025639159236924020418599524365842047666626787700820750078866775579009599137900810743907940210930432190578730650255314228048651758470163627544915756822964716432336979017148003401424923044698947612930419297316416592425834281098505060503414912353576977978781294813478661383511346363088633199977058544704114397681417642423520539806850510127314724283185660510019181672505621637491834636227896144182672870832387316027102317284466597301474891476480246606865642048039931882979960403778033550409513815158273225175975334414182963725167128948817736125877719226939014729594030842041785838676576357853326140536047738598169122019978311429611048607679281035270309309819823774048302256293392368976151374948594784147547909091940011330391008498123568131616520913150108664387376306561494426055239706778466162750174419251493002768882282969582362115747967294174942975783414124540300802897633742067592762435169289530459945983208001048558231093696409939574706183342529067300310241767607033664270591328311999234079993049274206834851024841786675046783255859530678734563318849250551316538688675236973635584613159175459211265896697223780813820780167453780460062001064628424462080509083575818676542744814557446570726370654338392556618190796515634351171921780303462620828100219569470072715803343776586834394429263030924476095890518766316469215568346687923572247553835243595107534374689720428146535464816738647247098142057216861848607989654790728718269909262552194198709948865516875599363366355193019206154160638346451517459777003007285321150926708850222168009233496058025843474519220220528986084672042477724033208433119930251844311746439020066448441829920244279274156242196283090035195677109338220444932670628351837337554649853344198963834024229045530745255215931201242983621187526943214687519201755531569596477186086340934774102471835354225761445802216324899840116522158005092978682180544324379287730005220955106279099021472894063229839024277265312444166791259267414868524137452374629674489082664587982560932385710299653051674156434222500467897398710582449775375519872870360545377445230342274021696353827082014955813978750292894464755783495235519836475489075295725570099185123411808792743135230534762685999908808944778959786457617327919945332895678770158113828205733184276451880934047566394075856650013364545990648621959542325300269735215562076127786554443987068989986681709225289982791610892020349205331420003715393685242489158513838814640243918374306267048555434787140591555644050858006962528417494908976167737911717494826296016050859530004260984053067051002524457999481605899016940900879619515708141704337995229248249684893252485557661981926475683080604409809909627992744737326754106443479896867122120179392304741887502423478965017975125269427864557999011845886396202002640187419970005329175597627767428607106632227741015287438917810905718884740195842137296671395515511627143014050791119749345054083500609154594515324009872985928615063946382630482595346140366856717427060463280064414341283171005378248588558718756886388768430233403110470637015582778214963510114632360411363879068708924533048626997354111362025773188082632320705419026123855187948308893006972599143825754159401902811504669464129539284203611810142270878901133875753042281459192264355580982217037441788436071395749703367899984906338500639698182283225395006906918219440726391592143952849599883780173775846577064912248132793716835608957105835171328604279247076359471919867720227961751134518759595403909633537639757814109466125235727281671644988782807232264166822598549318639496744464573316750292338994416550858524132641485138024091147824486987004602233776201220155955188371105308619282415500129862700052080790231243031591720179155536807949995288724168126479244454826294529772103850560213984282570401850567320641737360520859115507966803799981185843078377922792464894875813481872631321759272668586340739044258746011080125101925252767827780394454855415484780264999421779166389091184531950975622924986727775508431610627089571534957829049911648719798920675506248709536915952294183158249460702612201748207246138413419061686219221786655852349765905119797000376041053764294228207115779111583157977765255674726874004057628252741594852315028905997020362145598622901972479059022651414694386726276301856930867110867819328836977582062929986233466968496749306504502948562812109303593962119344305418991611692033917187964837267469707899537212978581092991886980208016263231428209117224027807706246119578715878248839835516643563136577663221681087941564369262457646201712196396767719319321310738213261428741238164171544231409274462348139269020286607934475455107824963307898882639394229747192018611597369307832486781556967776060429699635052181606602294934366082805176670599024899202119446339266664010384450832411489775627051446906554274653437483389013228626634571426743816338056671995058239518131649190527769636436262575335263848933036487307677534125793172661341119677519249630138196940214886723591946334474912025600428816562465936744988610461619470259759124595411167460876271153894770084358674181358545493531275760316492903924807057357631642161079564353885284616021405620655178564523699362367387298817074497636478819406255155079556711001765579408258073317723099548578841140712801550487058988415380497326346756447801522906783892706657401984331914807884696089722327163583025212733493121652637584463574013591984168723735331687769249463685484210299966568538670748747089276769031913836442191405008955800285685603177030129380694307644529442249502173340592833739782626640393452915291592535631846240891471001416513021840846081579654388050780641346914737401146903257966525306344342473254514814470519525908232168769436272384724557082361277942807053727460701023191020763674162517408863815764766072771906265670654864735353312573673295610758000394675070526665149002400690640835170616717390703715856059570801778488556181718965620506750467613892373989643408981036064691541768629450397298916689132855294177136873312311191500456895226969041439826409486039007409377701376122864575773198677702612915483835625611096007832393408568137466729075346176901220102570052863981917520876357877450316814589987363801093926027765449587747661145279742094633429591041697705487084277293117566431617265627428872392043622895154069902386235493024023977870663712945757954748999643837282870566939189020299014358765084070493744897469215319241977449048005213313938787304720968088755625563428804178333595168325901599115701027289762451413059037938980854641130547173310165098401984396187510855865735100253946688884412529818418952811162102409552470707321172772721956964809084103292753530488715097635737346764738590074417146104750836706328630288022185906035447993110540812148097998660025042287401502181367930332452418938646602396148113725367590655733782333091086056924007494646815014116616752051184623766138490069094039671409946954913164719400941017135708732273511759113551381220935346992954624176096413060599838815261753574251097129265210792801171467605994674728923636539244845477608987345474765300747158766589605541759681390841271789658159167751880246880716235301580722748442391230461706709215930793449040132374982369718332897248280004083189245152341572803412851722909228316212677802326795947248363421376473987369752019171125942156482714629464479971549979603764698591167505899166835254466059188587087790061465674816270021550134130907061920519644340428591794788882151925590172201106016422794061790514618504819878030980117932250811012106990309834834199074656986260981262328573209568451239294887627348810164101086728640579372592277194725596220096616807245782361890642552172963695260108026609645652921485636133007154419180163574796534191614614698120727843698593401085179091307020939100258777923510443830188518689474612985951633235916818247108186993465304616079839739438637462456745671541418063723429232977848229802749498195935024075800698990256106877582491372841230030542094099958603621756511368469148424874288647845205485257688596088048887511941235446864878882542406858902195182875926840388068880105559754303776399368279914274388000278701205402597480814702692907951251909401041263840347379660297563443206577373144338779551549395067360753184426338538199287713150781059141359049563372246090929377201912550574645745681999258157837045435124732076653500744871506649733927096225805569019414577714798137317021447888165220439707451819847000677702364718846779756526386693411035578168193814369281266908185142427458789065728697425126085055442339023408949594399237828859171696856490843778250402750802334357674236827013607455001940249341583540788014467209130363188289960849881161631076060040267751551155517389860500439426126951793280338965602900913165250512396736951290790367782410987954233824814940320754347705130895087174985286266299693167792313342831011990177651948189671880817293692141860959608980760621046469009664128885417920074718410693007602040412576186680119385361610181670793124640772608134045517702655314813067794793211000918484536909539104818038865532953176861597924047635010476261789102957396687356974458756312282386081656160004656635422672556470836000244472700585251523089296701782351244843322990176476214087303283500288484688936396366023445633584303963323988622791050231584376709189537031537051701637535920124597585567986402340285607461398277305222813251521027586780678975252694962626431275570832403860257257751616352470710099535576430404906260161075749387916869302656343875243819010531023930701932622670134559904028241009732487185267159008387584471197671424883000159183079220706380465281839941190745390477019715764303875404659106063519197473395791915081088493667520831356655488351239460046517273609842904709522397356439822030821928171620844084515405375832706112547264032855751068153095135506106122340184498538862340692796491135381281582733236421153883415175603841384459454625771900010653720297537167774600009974127179970734244603480342787718525425866493296277952203479519952771337186278250284306849997863079982848554497777365350467677073205997781207082794788877033407173734865435144431127631652075083825242491192571640364959541623942395955804745168268457351016584306958925997462438876522537693098641958248765484094219700853704583338047680985667954986043662148775130060648570469395910482718082442173233858087621793608734326466373203119115631658174506755341874425386022441699785186263248188588172855291889686201716394948806563189824800079787421936481711430552979999783459040489808817721014270290187831493438591871392252898437025965725127035665597209653629299535927031462008182051142173978110419110181266837201549867339053073459230594012404576472219783413457752755916004643272124144462684264754637336584793169245849833124695153067114419533415851560356065305236101720310638887932109953745982569788668778021245491054827171771364692934016324771938155989025284658881449455418652806971966493199666436053347050603437991248735281261813712419926442223896651442551476572671285335443007887456764161270423123467618964504385838343993420800215647892553408039162405591002543391902847175512012064137805168385292127209463157260141961078999565225803460531542872528669082301168531200384085456286069003092566671401393821513326512765661910513029981473928729382787211685138777851685076737027952336447777858834399970111105616863447391473123777449075231520860330354918217487284494561931295818033271650675264178478084284454993136796759030660159528835193419408128456073604146436635749214195015458115257101780677809977727543615280014889426361658101983878567312965162813155631157749689854074379480939775287692759992200325239782716292609931390760521263540231834510664887762362720462031812608816796571762174266171549509252913331654303190814530671064762283552431930965273138197647091809770602962252616232953490046609777994408132144865071332205497847969457101634221868408016679891771171774853253264200772303296281982331330225812892041356589957040522207219625029185211489190355638764864364049782884785949607294148221555955976522493932589970063628343903757744648076632625433981353512224423630147236695983097902153503250200735551911870057609884001032780004305865619368007566544853003335723578666259440103533475480509929959057504293600878985152997661751500314650774974193726963433312776310727706839518819451026903070901098559731702199532389272733650626897063732102380053328157740865134766504095210601851255020696622740247338917225978100369199275683967206552733230768179814781917340598602029858957917417769438486511626489101288402097763205432762493408127429179035454311513194818814037989072203873855245017697040240315674547434158087567104132615964694643699552549029399583523503993993426663614445305263081018437593172613103861919671163418352851659868820937387351514374028856579395787795430012061828921773716428501522228033102194405094820725809429522277176677042169147152352227938256557786585239997590587265715379963869893927168798319621912987937514716543960275805262034671422256439707157222165121830072299035824994380354446328524189566513837806852152314293025705512835442208517086815880881049637200759566403530647759971952590229642599160113947251761981183189384870084113231397130264453244240003168135797347798879381870311797844602007812956453715130664664255722301690398720271590895957559616817617313917870781175314724099606093861692097921325867905772982192120678967586536479364175713232694874973670336290989465657633090026695396835939264781279654203361941617972916384439934419187840899140699310678930868965985321269082986828345027381213690660454632584276999283191878822222599687080540322524542068297252442622338002869778624248617219394566610030351078782695894725186358294262208153823514021248517062774880748902146332698406640146921421043706405484826454501370592021735352474628984402427245105945963869528335633072945217884057341371882454085694676043306875521063461104717760045829371873801805864036500843437947312392231629809784942782236311539588230158877488716331009930012065349919566622387266203553858094336687877338788568352025669185183511378341883944462210644013222707354994910009026779799415292010029119762537071429055766213699632620724725641636275261660678487450659569853140820420607304668533904328918068817754578717846720296415764552883127520340975524759512489594249289781607649823261812284010566178380232033318778798024144107463247125843931694862462779780919561303838640930652448455379523204156023907540351742958303022118324591161100784539809560822980046358164928902061492791206664720604936721105807206560525848331548250356188897082310329866835818056731178965199450984919588649930834064330152262494577805426386965888124278012407086997931036404780331059244260301445112522033472629435897263166473773104466259884625124824164182534300135593285780774711677631661293091940474547610110344978449905709223099413135254678159701503734464188328905490928708369698591373460000678393107849864918525611627428333378980482146851681252422489399662174987989688657599134709599414789665189870708546997222766534396224870171370555604298691884343803371330109178469151399311336486748025786167010113276937825389563784705695461986621565845298757282064017116064948002454056540887695645086061253554250976838106487765499651494916979038574817532851266127372023257326998977956151608729342020196713142456395540606530807367119889755245470308934926594972813423007160042847473142683549276318668930502372047629078742360155229892181516082664842613003086253779976106914052861548808043842181438582555844490684807614333881547763718991216991590511302122632984149073339058701776034236195742076357761682155091122357836008786438942182127343011155068250661160292400637042744820288384607110183321260813032618817967657427948933032553551974404616616618377707290109909751403682312771883711430883198420486562446346342607300258302510568787454546259142196932166814155998179717366862274759549452923954188280753324974643643236629654355507769764476503965611596130827345729014824863165486653401058929421666153001489199151773583929118224087852568614982120594162966937050497207606224780107756398386900935768494440383297657153932698027048414931031095145155114889910411544770853825854744399825919600991026545539592707382080096484483947590442831837426442544417282301407483176118499501913263968464413771956832511556368110437441349952690782242178239265246636330409795721980564752358320121042740389765265182650395605353221265613096557928792653344705493889570378926490444859062918883605735431961392841414510393903823716916428290758851027286016210608376817750513125477931856232551888851327330989893858714809084583684516886508671004544773887741247541549388954035930138624028506900266369538756442055677571128684032932253033456162833869611219364874830282295170332257629722575559971277959641436472391216565837415324250672456110736296634789127149118555118661575090376839846125022826207923449578011917624575908944127167496228247592129665106062153042348048963560125133905237211208863748999481682636755893172071389211387024296162761613771009510869709679675410077332034082431231817877613757072096659927436249415175996621413358330164553411726843096865037191678681862482180385081361917514884148437943490715726264677601829360498819649442542844593805261299038594062782500369765781170941876676602758521996663548426330648933918212892443116148011487308695760516701031632515057005218489101195835448555251217076449923144103313409226830374499361403307537997631592025211793248662089442096369452614154364351523392258893213849175313461393405439371281414304059644475519207415216576117477824901018800501362470335639212835650633615383314082768918145513340965432914600884545463780463107808607748672345908554398583184175282648688512196541776565578577689127857969203703989972039919082259216466103573033446090681555748552142112520622852822420686700603964760132493594286270768942723266583671959802655943166728223040654351866489219041374466698168799653902654062145084070684872592942238115906849779563335975474640539669065808157589421264576083867939311672647725138071902805408314757824366370264282311310485291210306416415844231522958478020077731626931968311687314459864744513335279594355345532420765911029334127260550536647986713523013530480357852597763118689511853234640728943501751072169267867921262803537266671047199450986763257191721000668396378420430538363565486567392964751600532246634221490015205946784375659807766268240316442103821245185215619898228087339459686114824381437211768634502755874323064163156547839403035599320578573157606368966285623367516764332716711959955365099923126814561644577779347815665438480425199702932300557914951315149799844115686565940066207119967043652267539907622674500109827073340491331260064598071152323345546989389917314514993072751411185811939001715293604554649701268201462636382228482897783190914162398816277772271202174382202497366815292800914218799770543179487912995721525056735087344696085599539385950264193170018178503103539256959936428076790599029282660480606977425354539635151595358845701271117611372257288260751990712936777957419885721824578045261842915917969619242175575072806022224683269382860786054950738575139830671853853763661304107019701289849671666240544880117071167881643297142304377906126264649718401408860463456646103276523805771752474678592031661519353373049568281622762662674793523090363266286559204793779894552550637436901499358823094231469549316846456806706895357276151330809295665069032256837209152459533707421691790772309463168690194305039561577193927014287326659674156305870848691536565220200552786133408306321689803946892311093730595025508428634201229492265716465724771553492969523275500367831132033195044606731696360280025603626294737466783668257161630770437548592116846330082064047328617770365162815818452135868967532125884073658548787742254645349478788681522767991561292125879449499737113265051648617148928282183502770627638164536274286673836386011604040543945709974640584390601443643136247209960234843431423488435699863819821543451483105440870002019818401741855792354345212203882541619087182931598085508143126380158633264620289615248076826566703298218430085017893807619631971330364925514619344610285344173997729731787571124535684398473931005571041405073044821022678107536725548761091354784369629965765860970205409050244839850614235620534911296154340778480254755444183492624790877191314311725466698963643213744707065868633049192972308732472191052160719906295854460626865127739688367713064489696393419847645767705401583517809868964281222612772866174694420981309524779282409067613713509259257345259775295646842773937436462695136944427195299221320147656081449289467115435754848010449049196489729210845376629480441230657707711168074627098779607975554364569313584478797865636020518840563366773833152176406431544238885678827899821032123555650764340202797999154890391792966501810764282945651952360813238207840795238917474296985426484766452405450682967235854249482355788607295234848986728990330220253547284969898175924990295101576182531391855953731974113157006724564219127954788968082427547914646393234865646635723356631733226867266067510651751627618780131489746706706653500315729886600852639940953286237379594808373930484704041426674388738949864598883755361329855702511694279667365849937310852645575914237277381982315805700072487196859097054168112332141634262269826419325010861561437557288684929662741258913704033594028558318758161889429154925745586768151499444885020537753925877904509275291413758873034490849689877787314966475206620167007050886216101611279766937465030752594576491873468552211525132066308138742141239043799368511723533199609149534307450725462626424929780342324843073029184668474508346673828431110966773403503912920220531822879910505232832019336831058787026109932302305114414081970623420853208696569352111776255793693502983222639919595749532505441907410087994735225789959646718952991633434335786980929889277957738136042593639262072588074282652660078622427091432025276124630596208457802068362574882154673921824126635841271265239981551902334940150889264279255254094522487180962886134817473985043696794304631451006569013697504202593848218823815517109275293986147583778424602070407178337256874853171119804788536115149116178574239033725989590711683388560518428843801364656921372887102537272229199654685929282049652406540726674407344876980721221408026707851082721046995670596806786336429208241359122520454747978706752695401689833767629502635441610768516193703067809382722285788193492603483501443825162050347073597764506069220502380171361574907155430084533977310902452080778558687497241125563324810377505039627406683674499370010362944703612018988451983728794315702524934647657958021275072511462248155433148562189352750277710057508321775235226586545513279321339447073691776206440166219761128787407015526353719729045534465548586794028685425285814080714027855678766425385298692265789891167355234363611904517079334638784611427278544836609836482070386135577436428520022774839293670672530368291850442999758475461864413897344047958298944697390486088913412398873189882056183465898647448656333813900595878129236410937100077368520432095385377898202239623063457901733470397443912664494754278131681777057092499497844357393829383060933326873347938184530570971916724139046994976996061897610417023624093078432354173906844525389695247661554525761932641888020188554045539518787389194062595964240270974406899216578816852635136927416801809158084279866055033694612403172166997903059202675856475163000408505918823524462702760383835339801296448774217019601575274838777242044814216393968634328896117438549734401944214906634348871706755373646751926495255628112111097469835337004191293791935219358302072651914530099007097355843418379892048183362121207177389484609130601906420620284547183704024551966380100981316289342164273919206164069873926939477322820242000908269710606479083194482229552783746170110778630567458622358874423617683994885648005094573317976691355721195969685782419267865404681521383276417009008684962377013965655973290655455299993183972302748501053757374139768316367757022288644467552534687166942722406304659617646577766172543337500885273351304369348892607215778043892510128697784319972506705536188978381682478932140437447785483424733652207294795770207680983302089983202134763416450766817610799183452157741466129803949106722760884925523834380424151729165677272896671973553927428567844679332994532410967088001345349394084717881879822071699561195737476701077927533983389107163465675551743404301888909689501405725871100360502349520888823240342330851749890990309681242781505435578564451973610667632366942548749403785063885070357213179063063830225366361183514530856244479140249338769031007077011815231956414795713979675536518327896486722195254267529106556490150013433911673345244302256255738632967360311382375754857406917317058410241755055892205486902993151590781133437673528226460867114315636545995936236017879152026461540218111762178094965084538734320327323644069310303429090977272605229698342793159945169784587250170748897767050418753487428234106055489477888843922453035905479935354867797529619964305882616720966417397390451877021023897584296487193697359300484819966865953796940383217512014533187001465904081094080362623457362490399146572519495231567192584874182505651285278962948984156598554540657164021041852914278165656087025413218871199892627376209470992957559814047004192868628068234553248677815053631526503957084640260423513364977466845724867485007291721207588189039692185520785656909413359728493248618977246235243746081407565389468763531469244607272930053874064567562794937986709800678568824694591825888052526179105708734095396314745808427110706411567586929830375082106227380187432262127245296873005611097155026130088934687625031305856624615246369965297659369312145166242423299341267796210100942675439951141624861729221059254925978235981033842151254799430285539960960276633643513114356504628712223597711814524026249568555475780089275243261115993785488181435550090837053705057908247727155656661785543163627190577242060288237756138698808546839127653252466340962104717677645707804364063537184726467232278183729955330941132649732498873774656436509498308192773787938494224890805694723825286317574117402602197042367838998308106084500930898053154384192332811606708478786736492790424004294410855528199791883840898069498511228229224674783452435890596350730697578731785778571385528651631391887975470342376007545273770108959746203985824238835431947336682848857009598124059991991958017471325614926691375358630544949360570873029279009482132417692617180986192552054530555300112286897413495819643299087664721328025701954092493060372006935291458261172621433834937531098686093864123245405578731459050223872726635003375766694454855512182532201672559977858291821040851980199700767439681045560943996808652651561906653197873017054379115589798064187683331551619346238557209244458216169784987755210750688102161042052092708805303134099047897134575522172039404519321784199416815218061121953176419929744637745922607271079872908038853623199242537082574759773166691495655943910487804714963046513198037727465994927494894603466729083278440970348048166270562087664286640365952259323288999389280984893554276728554483111249479985032846117451139620608409655980515615210214447592519110582968097935792176058041581251113316708789212699915123321747621173779268768169927241012946712751811485325506096631709927696970990825679496293650468705120756897351696335139239963899503265382457273735790080900974116282422321298381733994159818344667939026226580075831331111714318144834262386244360155317981711668132539930253936968650066734167648617543772712320707232326208839023133186465214906791407032879831910012836320840208300397739262162679295333552577056175207976720497452028017716225948477282691086643390178562228756567604601146673911905390335504803309397307831045986176651476107373405667878067735520872518199620589004069155910631697599847638489080506273083936536431307826089344779131736194840593848352213440438663048722399507521985701669731559567278756246004753218585231639431657093168237915004616236959981751630406856694828319158675545008802835743203705169867734467909739279421238901360836534901926116905495180713753926729974993149578587717964381588581974452086178203573474147769647796183613426917712519933473681411764289746490783243077552747916775688190577343188447838591967631394681386915224680248506610160407666006858851793994194726547693461365330530033125814852964738299973692269530407430126977740940711973384128588787252018622144314034103162726641169413012664629718399864333642028197866701147178478781485191422983173022191952580806478491141112557174901836761631911489795127210360228165425339448685577806071091413048292814379944643241147072335481023736856435816861551768002211092188590496840610205505424279073559075630750934251158469534048461573374774896002714400230145113552801152611928241248297002348387681243364516495990353613448555281356487628904569499338918771492721480389067912304196744318433332809414138059216131453204834400313106141863460195866853635719339090834440331382879354758261731910448438314987377096535861241567152470546500839508867621376140991638287470557265277215053171846351437235335275987753200992071374333729863818912089584096277310264646535779105105547939089106662603854406773370416581086058008260331784422788180153110672840295346392440334559528813811743504084609576858750992617429107419380754978791855433343807152238546417002843007704309485653204193152142472651576590451834578920389451436040244598805071621252004248203727191204475999454082895999078599891019241128611759965727546408853239408454267565788440362744946229320259097725839472408948548014388533969361148698111335489611887575965700879216577733190703989909667740057150913695969871806605296585184398499705461077987232835840397089783521704808548839174415887361711230270483152854937826831234708895762518274014861935370262366826000764956035392534173658631394915122554082749575575585134243914046667726484702639144713325718953511737608195073199485026078940447762816255044103375791902106324858621903044399829121186947877773379174519702964272286460415723888312393765066478141303852741484835310810827024503175059491723355242214771437629282583873754193388336778173194188936136167035201284535000775323674118861834013294918265022115620850418060671134891417099054976107725916471030076388430108742609256342635434724512176394038484462211111744713866515642126270868058673962859049198270594467537503877227873642961977493604595052945920803709387383890234814316421875297588336850592531546983430925375092997410683728482191584492812138924024329257612274167589169011059082557621710007363816688621306850219986398114309851215823365436929851430269366336238375442524607990849582702155515788715151470453247960065580927446129281377885001269978025016519135251666742574551461629941029760300825619633656801312663590222877316718691678935170598247353176999863502712002715149982048095317882299338271007488219542494055036796766183716883187842433998055325189276024927974508309067252581361457247175368661974665115236423611880776332482489488352587450207535776973682639620426151510617175889390406512871926493764461310572400603713666089284631625575771335603736610608407151054851522893248920889186516252490855855623875167708233958028365443013173039891263713195276093338856255498996664278166338406054378759239106214774048947900049295436971385138520964459582658749481977407587448365698370470928208170362228684991564921801447882926107299998520481390585897689476970657773342836320864134101975982530475432240939735910067443642144748696849999578259080991489027405812400111089528797982407238992885808964603459140989695790590402821833234820485368741420727129329431588187528028777521507816869393589037361846448576074415802920830102687373787182448298750226390753229779276935726707267175948879388448654506955030119694628451615866904310240111272880454486377848718410542173128349854550466617741913652667851639236977866652880268288595303930544174179942703539167007219707947746822090801592542022555481858239629002926356791196431873021984315543406622775604090534141944464854036129892375534071337752953186897154870444838727835495965730492643227630643590516268060678403062648384222543745810973417009175729341897049413126849624786623972296560345632494445759718336105755209390298726504230116917970231096795197917465934568262759609741553183231746258886878621480292539237933722000091875114098172123559394889521530052178074491750333331615936159996923315585335705480959347254103388552329228418824713098562484178336015328731325593780400382606727015783340060334446347754408159274987141322005325101578390868561847167445710187926716667084360672572012147803284142355213924286677257673658333805337685587926506590282877221023994198415656971932858200582985109190004206922941825543808775741663320142008699743873907466044077539727374556449190121407996124035876463225371908472835983968825360957582092307137536344827445416713554795444365372728409289452672803752124731819443495635546563110537466359534463528695936962014479671982449806837608430566793364280353192322960619676952269336126565557923513066663429869258893212007050023945634145535644853976842612744260998386382830303831551824193487111858991415272215826325238450281467381343998348278962964176862993180555220384024878463630293928353198443619328178551314813391529690098761573961258806305228327885879800323604141100711734508992418929984649875183977837180189624829802413366024113346598809204520886355363378351570197771047827161218908943771623404947385119354748963385567130809192067845113834334591768071800098724578373957053723549629335155777968909778779920017791761237177621752461649142408026424509926199958481227930072391829662265105080184340230249285769717075450765862703776837509413939075181723231586254175603581225097968694059740093538420588503977333317294712017138440389982110513038234711239630833600313490358664000842896166543890722396577031348002978838834366771522460676512867900994804416626329198414013673651678976207675969207315635152440076297678025224864789474475485693713042812351388623669992954886420683057863402781947256072077299528990513531210411349836707009165190439966613334826208169505044388201288720398328901753285790682856121150605982037793360761990432441418065989493928092645543310715340456932309735071205975096388427033746149589962684238411299894929802202244183023035054737541428451222057054099436283476235360776907477657506244080654708437479400091493077320210252838153580592483250517346527723010381840034059712596975896541769202859010554284523381947864634527592258818363820292026093554779293428521575980425120709797259026173550393285333974772193459849644716750928958247718003073769053359954895264673645205675865244869139992650691737084714170196673788707480423370661766738561818099181565392887239856218049788972652352208774821323799785689309600832483144938743667113418205670140908071358299993345095606508205045254699654481778495855624175113858344590769336509980446297345352547213988322829596236163698463481189328803595520925808194699706068719738377924958551608962628826442770957614035214083293732719568614803349085142258019630808132946822616316723479401112487099806571524116252079371392766783805660652822648649497799518351725335175447083425370298298683286222946049118834438170538802079125742034642704357508252652820825229985432009488969287318545842676891701041520391963040778247520005462283140990016540481986717985258482359079521704487097506707801949135148415505053719577534110269899404884687128787319389926769244267036657581187247312201165940402745328501757019121508337175097958875290686863386456580272037370170477221100696481438300117562234698951364985369365113622070239268351737884222136498531159990544655547296934241608544665990845574896242910305096476287947738193938743113015943906546910761511360882193565635632864317162966923514365074931343756774813078280280052173101817177952229833670328714693685012457347213761018961554497859846192787729928086003673374947431661294093952126070403685351418112260946231887320391494905447573548918780239620726435738236276169760918475849898106886646366013012258895945070416433099142084151291459026804697941689302262654824409181936882384034943813819496485426886387333569714774074813410385741832585798817418537991484954330589715830262721861067740206594028523483324036267762133191494344708936812110410439639975591062502863324326166683604678778149286372004229348629627329027527746519638145687240974497029559872891982535308145270527445145549797354383335681421237538556721329130437665372451105146614039959708480288719951743904121144946493298067715244971241492113896538077870868150585743482367394416828773291229121143026588173135441504411663060063542517442370830829015181031778610243348836906753927163700867444305897874002152429113012125536547753157112106977855522375500693920813746041024967774315098229354272032631075525988721337514624616724759563342476675894951853536577495028284507754224760224964022714639803725064280590514547121494330667671713475130523459884637470045514608155101217625332885249656775790168398488015668090889408943893906182364191076168973079579266254650063296822100206101544553546271262064484805974049727616669199589120294116438146665034943650449176072299080941844827543461283958003384740057692608820308434513365615726858997489469341553875565790996391381933024263559418706127697578020201273032561883501745766667985283392932152756280328369207592536062297240486067371979611415050591999896045612649652883193217184116849990671026558270211940810336113573422394814932614393695283642449245874056157647659498130016905070661590396944149642445539189794707982980167781561372705941864795701601843956989062188264388938574682578812088049252459806285730652641609934584552583328698121304268364131358441491348788952921375642441764721802315551609152689257628915510918389689070585938137049134036040629834327601993307253607382408557033697477822942152072946698279491914631309645443454226859106595499241707648984972082747269235903206199430402408576137633781859429755885073194870186347334823923234274584902979745989065534600149558598186535945256305750592793406740540722518901185076185241269268699276343802020119030859798235475685202865441121962317494639900437889230579022609453480768830904077386952039274682267019814248979220752882761179867724379622329570143958445078672947371992397624939069090886103802728317049640916078878052511356646976897987673375046315516312406336586493139010294664312491778110437175511068882678153985938772030503982349607092869679610655516104569447223226721190819147612596548121765103114155718592836051774796021370218068342853677623759081697789445188872067193426455537300468780846706090455242981038050634486378179251687782163864216915374910326740646635097693334482251066937656892139931628222309575719649307541957244892170634332482779122915103888849324111020897431867186719571325565063388768333976196728379550951303701746313399920452684088668776083783093570840702414073079034111963196187978854445510378881596619888939991236423153171038615940593207351668010846044310947630150850227710621432011721936770764678984103099693138978431476578262769583466143312178335695984990914994858523105072746522966377010955116408535448490831573640958490711901194972238271618802132312075603559226263585749909857604582643471524945204604926859490696807409637925635394378622379174723319098848250278166616590972759475125016907608044444549239282616573500766470011795561603632573041767235988734804287495964224730463643508971207681631930166703619856859056133405829885031005429048046940099426432517915692874289310764274045736330683261272422363686371825467649585984961305201895329747394378826937946619078726949119888997237375641080784271399169647451131399594276439772293398693725400888067529103666981835210411271990001967606994242783510468718671468790198989936763240994659829430598480281854746977286529648568799884010271442598136038377344711669852326174588713262926265986235771058863628797347325247730641706555799916523114440530440560581637208550353108964461825565510071987920835515384080847536803020068088600728516745279567938074343555330173411682675835618150487421288851567108547939383874780978014834855812662826528762753900139175308612752953672044222599765585501204267218139868246424840499490883704696674372024499150900971525764693748047528995667924170356230727392518962780170476251270219746017030310137504647619778160429401363988862054393257032391292318674203134954577690444104907813226274243385700755983665993355766979488483965082153051793025244697907098173924880711680955649122030661724598229014762243502189210832125251588593778786112561635226157932362583556486309789270763385581106625920488499332199490318286534869128739444965883846822210561710865294360389586787112976577718277374775519113449722435201570754340780387613703862363120451058846807433601316323559866942683531284714963027968535986877507084517360646417535773994260243610362350394896275496708143848853431182936550392564631249445579601888613822437252594748707061768258081219752472098764528539544765504665057843811981514523483408955522649744951598644338320020646774738597880604343863033056470353652558911455978885841550792129437086317173580282694087645303800091870974049663166267326942781084594019063474299081868652487990737186667350973741793894194146837694564529141549908870824178650464034872930680699084536318140492374064836729042325958474063411630751093678393245828861893010776804294998402668647930946020562857504792354445313272454317053532101950346136548577162360703113236040165843273138700491397600873782396617641180511112535018814236069616149136454448914680898376460579926883618442018927377461059532646447691341239813591314146048884664169318341056507165161372165125780519068206176022267595234005868680553377409067269171967772901267059799687291853925617025136218157378417546067627546399824093096753465710439751746100663866928667060485467885868202041131096542792550791641117930696518706810236849389704964167216997357208038884922188923267409623309055750013443220762172216988038574166849045956549015608029886664137045965864645212903966766446055551847973244088135026571124381124175725945753350597125531270398480124250102515873134802988214634262870047253032891219874461346090970817793076242933493601702958240859054001303200948678468933681981327397835300826519679629906923086303283277279289196538543167393138668183952775968398849842478825566747802712728873757216475796144673252206200098941499361927459835760756880822381740769560592470712861278949970384138566994983917056605681017639515871835946743756090807760513300406450995682500822157710257292251754059310055177393288511578494098059446638163657193893695555335980274778520398718787453375255034477985591971755611031788795296570444756865270042035618777971547120081013036479639867905409761410274973397340147709525601492443401784264624589938119167019128491895801749956294884869914755031769122085939358341100435290268022939374164123294696517488362853730107842625870849746999160407261009418950016307340152041929458835653695649377059272964441673791034736940627337008452305041022273286772570241345709412592471225062249963477872675972072423903725191036363455739713475960124293170638286506164399683451554132063111559175524047611642166736109845749763180914742884109266935055679399628677223164598552434953953530552862042972961350163514936788822597860924399779432185247667673206541796369149682041021389499037467485589812601751816835027181569543046623750864139440493453118965860185108751877415397971424484005271388545326319879296874306283985138954600303573073200086153934905455606095034137681583651310618725794047760333343459552316531235794600919200072879774799390921499452118550988289795756026739125035323649578497595750347352981703451607894653964513118858054535834960630286814780701944714950816737855943067295825283180765585407819861199588570667928240558663414625782355537709376445428694626952615579647754287250679199309307501808757016620023045982636412750323809998902388550190072926212674173119416981668222406920667306222179554408241222534618965303181927454515547320659477769461082252126910784242040365013114024325982090716155693490166815973161537287999386406924303203991159335917102249857839437656152764106985574631227197626034987779371751531980529799099617724630924809412561462759944332741139584011481448402415082399854363626560968240305118300383077559553689458694072272594722743744678219132005942973066693303602047064738556991251123841153615186440851514987527120498915359083698690865264536045126517395046378268634900146185470603551532790695785786756218350126575566554876477153886047622872693299830045370670127057726633469474540143653316698177605898852321212301061694546826630206217661572197288005968168985303777790244910719286794826801901258131719788551019397856758879260301431810585432357708462488047032800414590898790376678953877450406274291430351272890563069965893124480273490772227554740901373266291206712009345619939076479954444280466170801469187910995487176121614170510461260633247025624894632462719952323899299212464758921079519773156521984134730210106687810396555325440272261613377374053502792997332837400138594120988916656184531309703084323352046790736625171069952378668186223631983614777330345193337915753064052893272733720059882910945251513943404428578282863825691718726713608071297886701826271852651816730470582584772143949173152059754732097843843301253264358571612946583138399632691447619576143438630916359261657092507433280981216479958950242712408962745871184121558627480186569292300970157664474149741682462728029355169510044224728558707914457866225903094862256028897558659176050255462949710024740877899456598819640131804634886989078798441150785999451491532394409756626320934301300266206639359503836389903563364235614226208408767137557411499098358005923943494981243269517737195219713472471197104584582866787091999381999968726252712684829039173495786840614105904703165631167163932600824739758088231832241809503253486967343256359650883535783342376429162678740729903244245018519741431727131903722302451461278418295750090322561609172833787616233357055009676852309994209699211696567300029029305967405764698796999399839514164618945541973424005649557382973771568092938256130141749150634185491278129390372733774003462927491206717488028182687601684336987577407579837673949456426025883872416191951168009704043386804642033261358104842439497545966580271261787446215568113846129365703655078743251440937116333729472506039258101824897264456376848035501740562341980044929247775130835642552259682504424793342162839481916694473582223276710224214125062261080915189980782296595484818758488946102649421511574262099697756436203397100733340428223452921174751167201589698626161683937423086712156453147936337267391327986600294277603164407440480286420893886012396464179936930991767042093935338928211358884991732590727199768808050699647639454385659002406638864330808430206747685090659164930805624220636545748897088264241023895097252234600773334781155261076905275972599780030071152110882969148786678583948599767240718079799954269647950426507172215011681067491822963002068615559107235708769266811404090787286435275573006846061516893978331901483350983203160418715978310154388592641290665653315943305076197534133167221793277308110077305940207607158656486392956086855641965784161678502931196145550563678993970622657431051754991915550645433063272511503876649278780227145719417191395631702272521864389647329108408891577597976259873197692663723195844922229551133631307348484636863794902370512068603694652403648017248793099621258789737365226337029482657626835412296648303134662068608209869934970784056935819766687364629935797383658344732934623221168015156981804915785706334308053949510499347188519901329141244169884799148213077267715301667533445743845011067520923741824799204777297988188374089593549017042685912589667576233292586113753842931260164405318275082603152426697684023060497057076909175029825437058228249584256596079367118326030814655527468353719346269636917645629638400773823820302391982765104613360233107274385292196310048113143749936339808480713503439489301812857183732822300860062048526297185339920803794376871841974141049179320870912063156737093658446450156038305800801042086940093604935810251703816636298733206087868603940012861967088465017709394311009006041454348911113377226904803638627023865537580572360412358138907302190688081815188274433023218833205392028884533040402585270093828580951076664046530550146061582911596401705526787476895728426215291318613012040219633659566487928757756333376644787937677357878312092213094891327902780922288117127123982224192296325688469707454470405249352049775029763263497912870005829380037982707634908587679762279999563677418584372735529008039739333188372907484338369338338662851953938518320587827678688004986685427063620318477208663074691797061486486543288980775904834843923305378708228390522779160858335010743086372282427509382515549627843025773436970866799602981190771910178475056967597294792869615618606828619487494369038647555039833167987251466721529941960171156991643387626634441912679058942352522466112597422652795815605236861745999453438184277643643381581262544324863505436993776358516199500109340879840750149760584983377722779335621869200018351863536811304625472984983044690666829879593189505361006676240147451680874083271091014697077492538536567623384893117171295066047273192967342814076287005472834989401477893914766882300586501282347900544333548835379160039865195727250412403942954146538402307205264975305389720572095548217565906721787742802095129930770825868270084063564464917747326162831850156623599416703708188322794397209224625134967200563358870005964922604554536635860114579930476789874186691278567974267857675959827442172155482293206183170468185731778750497856659887652075251783979386098881433870331044403448628595999484766789806698942031250031854146453387749066930972594642227599757839698449352543896506675660514624747844405102153499587501842489452290917737458284839694148562837633937348775056281734637507097870672470030803086061293991391102297371421015087233605038401552842932794479053273400257947675709327759587326353240905188716745903087666954803880051950328372496258702122228123370114425755434961656902068387944886868952686988446658969508842347776669834749023049388523859521162912046436912047063686959084180810563496867229296831066272838556672403407226655393420716244598259047406799860041561331311036113309000023163155168762380745464470686387896453282472725472636459357633918484653502962993662797819273775399232523412361284841576984302447567112661014258377142188581482143993478725290052581345126035059044851144717832030313050373987055187728968570391849046374358535907458247917864774096711849848370625126173132281600763463849758691217741546019894525405853185598852395915353344881405087120469926433319640850390457336401458122263705219874695874717634032754084949430914914274227510402059165014347803801538501583274339837375255739094629784585646505236458416290262722629519877109370951323315697813380388316160808356393830626330832555406286247002728525010146937602511291745067010735924012621950261072632307697041997998878510755714170499448089052275398233087445819467674428518867116232496220287253953512086171780165681203676391613145537682648620725059544199229632151783083511449287242244420484830607532797208600581197228712054681979395129280734378057290144634683571584343983675750870247840812766042099641714009791156796252040718905987708889467423108701226742321282099762587683607032872639957673189189409376938270079781449953289827609430835926027537999458081122463597294484053739488157571045512021936295642873437122549472608710501539195411787546079631019957439071936484194955645317449830004510597233766180354576513428538182887738197654692386971947072251767207021925284698333686372049568683235680053668706567839813573560258004300756195843123979615929266373559183899452509459157761822205159922823723645803053644932005816488277580229838016852171117247809534905393135853760176445619978725937570219910577250606463803225107611269795343022292970470268472024292729001135045579206149613233989640708093987020693326137639858606118187133714943323990696665370880953900936908399426026694094111175856532245429695711715613741938919245289383304213089509949452785104685727333271772297149255284313938307183365804899029289799231186882876449038141151413785783167115162444832981602945108748175043070965229863037470902657240198279057346005293246880522392614319686105966291963835738226246949274999942771899578077055504702878443936428838517901251956713905379261344568365251646471761016885951623773032979477925985563146438931582943683482559144125739904638498611460589473897557414746143514865181984613419925176573862444757963591372624053555634957550114900345388450364499794676161585653257371085069863925407310559525755445930253594602642685745419234508394961662011360436165178882959912131314248857241785303080829030333457714202577766292472216779944263536138575718699070461308178731260726372284831478307992218969532759139741307907327000126772405230290522651460699171002630669853836472562206709003309556472354203450420271959110163600959803667436978002307129814836527086088639741192518748439275741467491898632757189041725441233660395067051125461348192256013846454475826213664850659498445468921252734692652069302669895972690381325531854218934265470067777951278635032230239480672224781298023399298524628523039714772394968201620960639869285694231456916189950415619556852756635149474171930818273293215299480690660279297346991472563999733105482613082237379005299283077170273915997558942766689729693461271971900054980466135295330934055626378727731832458112270735620039883222255827384436732525095202076365087400277970944142000386869653258706400423691552117281292443548113065896740156393827506826521184168188082646951350444778089504370597713257423561993135059478158146873059540617462853488870056389677794604653203938919917859514858789524417094112126582714157450556207096870183818365237149780224636425471106104083388792570833562883531781024303129838593807332473317688831350929104375329158274282117053043198630861121166151212042558928756591989882733916917404972717777950110973823451945785962890457461375225598198525969141039894931551462154150214560763160470677830045242517298041868280254407578250489473535609256469882835219993105578713114216275119362511258386330242487341189090896307086987825709256125674975662540103030657636005468884951955427266906037131038149024137224578284236306908779080885036838087837716781619272713349910697295213878371066708600203312431710418566577761801253962112656848672095268546232687914370511246016843694130281325334705310765282303748528787678020172960623574539424060623324686031622136523100000440334129205552323339631084924055060356995967639996442281890806831572794747164713189986152779741157338772499839320683988036974357143626844874238954560334962088595974478147145064652921299824829436831800622553586739170479742602581055606948650793867676452011426146258040476424892887080981963634877586779179145003837444208746053964589323948852613707493674117452651655036042756047635826190210184176942176594357537394509754188501943246213846369171042896557417684066417438036903979185277622638630911507572543163433023900128314643741512075287658945635337019821061177569935054471122096841651126366945720032151087377367877475025479716425642265688460147783010572644820249993832711712033779840341325392676026676815050565034582180564604043871429181469787035466511505897811259984377842234678503383794947188384790938202432447609862486108442659439241047068697980257183857867655180539000875296716372163049804373462585134230976007153391126337859442115173909505802764540366280294744095385830976856642773158741113673662982136542102359214707785615736916301189159824164024309567299402139013200564004573957844525613802038658421183593247871314599549724358850199388610189841200856606793568316712847480950621528478672496767306394788798022587905939580157547826613275807969998298181664144236290326664321239348163550613616899628826855074753968408333226735410086111521064781015844508669957162406476785584058716218395650711156055717724180852971855517896301015621665241116251076583813914297098411293184431310981638038147175217864877667861622211370423209757610553911996967730262014673829882458360344560792526670475161575408036212448765415462695374657164043058913456684829285571533930166656530528701619846237554053675640759257625695243532396267517072081387140877023857167697411693941192201187457166475598160130506820538964864291898614139523050911130821863908517989135214158127169155591607914992899633243452096144614878754758265632170398518927091069712692660176140838046377269692540215211944846093219477879361186725716467762994031187983863696048600713629139511848008315383925184262855107834878196070997846294303070284688386664509538847784373585307946141183276152800362239658457028492219763616369938368969238707272491527681200683145221924028651964871255480851877723571280921936906645446290685193305391293974916933877985733129672828122174561147521734158428197822188043671546758349176310949455541497063510284089236403056969342620947801840247352299045139867624026510915719280692370663227074160361227790428650707220687260844592974926323186254046540936744219318049259409098040872617473855855091966022546596136540894071453551021263855533250761372785641035984334112266847173280845992691670982506234750632449829167592186209361972358841379824889445964437428596409524839415768296934178038065002723145707997475720115530943666693180249206834135372017712764886445688684405129644022329623801031979152271473308347597859574632015950914452429932692788833568672708490852941528313111569605175603141919818634546800383050284288691154073684814169326727301078005548503793217127064522237728763331792410207558131907430090115042320430371973507099396930593294087863245549066756923051892240862454556447120275895037139930519651669221171770167486636164730901310614201389109202293563865990204431450100909105834717394015674848507913274267794028946631798410367654703580616703117123674048533671469355428499636562779608289986217204056322285281465112204336590214168593505950169483074460897926567957932533781748100890600945419962720090818500950153427096276748696490360141342210041449943253824636372908051186866958966539662862979510156448190845005293577383252033336561593857949472616529188203784178566155694808929200004451940271808243570951454992530673627149344731166974846414542632941115916716509611808459942047099459350272065175126214752535849174909342183500144400681683731125907416347200524482325469825676171926559133779234804770811780061975322186314785290976127928978912868884356333793182324152244910393699852863849687637692755915185395428086458269283050677511823573745796400844048114726088840980018839445014500333079408461933600808754899613374059775831790357263013367069197169302914999869835947203160453938871393056363638402549794181061184742615120880834843690733930102305166460125929205322697837787237838814512221226074023995290539547500722196777983669551182015213068204734684130461330242697523598474029271747710381359311617745966623919193700609183578954196513612113362990580624956630782721141318926642213918499298015239881044734250315976017073309977772061976637517931458897981069251635328707172772693652957364881294500102962297928082924311545882738477950005245618749278048942177331135113993589934760519649610954809490732095276626220733143110777097410804806668738538037473665450280784975655467362380362701663905359328352223151003966968541668573504013802426821992035511689263631909067099691923292223061969568713751045809571526725512281207013067249113540916214497629960420583669185372898695494192355476382977051913607096715206531169497594359880398467073118391708761836532304728058578153911799644862755520849885655009069261815736064725811688329015523855508585237028896379284230810463971799906722713834346890735910289455178490586990027575761558238947965725122731159892560670925508378996502968237018011002657023797851740302851599231085635167357221230983058696302356171851525152244439809279551004955815559873277629607045987874877469132433297597896290090996363794786142878461261094832705603325659178468135850926285773276614081991022751031442089023319357011419696304879486383700545072463437047722062679870968105910623005623470461571261229632144062102561258922527454747331972596489786211237573919895495667114220908725360411238370204296258718290152380965611711181231273648061267248519113967950556079357884540867786093960837426024268410463791701095110022514267254032669148178871302337987704510236925378967375406289138906643625160760609277476773141068616852511850406655123726327583183017708853334513660402393732554964187795917524270615418952586984269705341847509927220725965897442604755698208331958209767836358715520427917329010071892148170745140458291381611494668995953373530865994506612746864576522768011335122253117746816398101063302381276730211737738988598506497345030874210291404746142267927358802707932193404448009059059148300810240294817941704240811077084591237755900740273702977177971139551443754974619137315745349205497357919221989858658019318755669286917017665746123686959602587935131482681774772632312244027615763136941893450461622999180129295066374863998007185090710119668866091367137431625292031344377043139749682603116540653249639971319207671263376238073888869444883594885306773176592138411193018740903652522855084674103202415145115465623600751399509080542638352576133751741559560954825171141688950184797845438234577639915803243306392922012612104051282006916695152664877254640874191356908931678757129223651808901726993780987502867624795176146445410133791626010192123155481790633779231056793162299356182622528992768515162005437686217428775417221791487851629928719704247224529129936425866902452630577689744985250669931556664755328907631292250643041215648655372550337763663490571446464585842955220280431353462090799400459612703650251890031577108562839127232688089790632624345199292577527150632455969404472532304367072707404882288552166631001067954096809312891155651408764868492174523502628384319552012634785532681697400741372872134067277281345332342465194581987629564010778280165088695554067712940570007828205943521878524567398188341133378638450886270795753738562466416294153976790445872332872046007647965573426660519771205300018880860528675354379668999600343548550465810475866452748276675159778501410767368776239417475305404323440555088440213836670333754698192552596255916043950444561822746662229597151240800833064257127366176353017950032768574320888340375358808387527518397936144041057675431367062996767461504577094937549021897611577696023106220637664612108166886829892573487578714566982476102443464593066002304814637605223399904750493833671471552660861388163754012415167223061276791936113342974489270519384634869403756810146328107777691536236475871673030460568610712612513751134974821204501198207894008323315460607258749444163838253007549011972236239943416981824243431811333477194703605726731224279418053453957722855233373235303952018402994971874408751547825711730033041231128385620515652094611975970877229802126157394305052467609049699422799294703438527341573848441672682146363349700408429023264685538155184758019964662465689947004802718769628580734080179126578979387694396700048053868033993925233610284035104774356397754360244990424043043546161824631035208822178535909668665534640590929878643316319352385088630718800855230160233404964402273378269792773231818766914704840975980186073161465502693499053394549682801295219142189894880122578507260316313536106094593437031788717222022018159114931346437180281320608170112036328139996890418213155433837199101213245337899032517216527840843148515039620119637173865812935958669697816952133183373124965173957078148081040614968090347838621021721245393754396312076450163017673936910602279183198443100523330686969071823739430549069502362376575106786998797609498535033600535665713265371995190957357532393810223303163706835096747092054908982050515462988482395256996901030636413548009391476051532242711831144068335482041170490758980160051045609928531375137978984250033298885242842308871212435739759483383556012586276403266610824959447423428038670797869708892969927166776595884603341605965743038153797520902063876672107908299840165328525343283626085291491900157752174721200111861733364642048906261442893283978954660667446690869369017702380946747885631904462321061959663188713601732364500936018830122165663952166379186174829908062424718634150541441782200427098403724337264439007612616023861938887035286172838201931851778061562435851805759546792138388720033044608907766252401516225556630806998379983679659721497458610830033022795614103301085089230371335859154205090728704902281151061377455935062848753160364247366614507710486736344529014685830443477484865900420371413968329361345801889938110584954520567678569768792738454275955203859090967575515068599451592906835398376605404702354940634571916989514560623836052978627019620959512930133014443317381301395572347788078549728258171187182341358846419830496078927889270096746404690168605298555000778099585020812472348284796415493789887614643482268064072043364593318951282460773616536083331508446321182442561481773167205250269065550990401777250077245200864226777868180365575721870203791502576279778290384424181704848760622976170433744560627753326697410295538420845551889088978985746175105367594945222438656356889945122488344375088601048137922230351385315477179793082920273379414071474470204717420742447874558881449840389331146786745356962592614271890731727621507934179770263782807144741096667290896942317976386234430870457866101336531735933326094377679625511343241821650345317597086715787576199377177348704870774542450193444953876044388413031611885079067250161356119559433474309799615335829030344273558912649379716344367037901388250244227679287789355121225716853837234395796020080481826498508035279768016441416006534879199304062535677643300099681212564279609652106934697737594961376090883038956073030427010899912466473160304590350561659825962814792930877410472233999096565787673098860004688096876669963405721696183033769108872131590169284008328911717271744983362722862922138375546678251124591234090387280006070496627539084194880324415383736218767222895557946373085920176245196767818470173907878697198654006683059606496119764553904220136455848947435549541727834937347691538701258448914941824281977404677816456904689026570290737340041477729900748622657971379152759268110635810211491395363280525440179238252553829127398173886307186415444932602892540513236900964486972361338245993602162314756413372738383064383048418192893856008766795764440949397472695004164417265156671573795578379113299084193564640869216786148097602139378663422463729737745351247485012002732677428911376177969815694079402035729316561246131295256403107611523111198863549484789309455328638829704447854010949834151985996669705858681882120020871630843578164913721174200742749882367356581657378457031575112602326362916727091762608274719443399265041627152102786782686920955438773100608714126877919677171921681592780091064116207169672661599649461375437522895621183712820768864742149258322134339399455984203013816161619145286519462053779793050533464236312444974016738570904715878325390663178186617551182635746471588422365479782179588223682552898454051055071681087441250409615176930250628492758014651554801671930255171870367520266945840416413108367023408836849384333132507936020279391259143835477777532081962689593348764614064827370823715835580411180318418285859527916313116977472150379708364792440026547262174476344151846228782364796120320442562591493010511750207771874561350904356955502086041822365817433322812971520954387304777526570177281579482099625412461681823302145071444540978669326435834064427099559873937740014010980565450761186601648220529056306657880461926514115784422092319771842809769801186140641769880838111115166818939515046216395225439621079161096516248327566725749176933697149571347745264424591641536224345336601117722407450580091604840310767758943465786725621204696416503176236572672355499589547811745958411458139888453340641326865441888957588926850454579812480366978489741404529545245310205315972738620259427706782649988388679692454917762184744275692098462149972339216406798751145425562601318077016325225003068299978047046902124716264688285102213840584383267648595791252610866331307912977612577775104446172399536300997835112203127926651731142397124924259339609525683544989120885735871912320545328047227908878010765753734646760039880607424512772800648138300974851588072107765540827611940944837716069790696976176047782409010857342941969157678792359968316105271092020902598041316572978260993073341628855583156527304939420821010796466233407670642689553472293082508946824151304088093654237421539890784856385967891675963518174266027774381238963596808150761689658641046245923354168767679376951665760092275354556972054228459769998746129268865351136000846640799946866126048297942383248120230948960595421758443604295794276696274574294611684199517960648706197335995276706617212894262136325790066496853348379329855911736008727411812730789544912720134595961542039915380580308338743298141304190849057219497388491972440048889413602988398370201821228684516144745146969808643664213602559439341799586503248137988674699024358132954249242199864560934037136346249132744966744716519846407395687324915460918264883561713467661420001497851131238638923853419124008782408911866453924777999020137831523220083693528745023901204114791002880857468854179732763657479587698604125709908888383371155848847705756816816793422537972844553918042247675616263121879434466300073690556908128421959258260992583544847158910264103279549051235544566635409223890791438564172215188872773991746269426159885446257271728158421596576864392214087346990741003718336987106906887232257905823432679568253760537530242706972128470040834591683865502522847808938764814951367791841000081132947786961009134572061827044871472810101095367174961071226542912579188496772040844023127165541517716584171160073059253679879890699984897153109296987810992685397596945784397240038370708231328254747109397742180827145925592406242962586645680220749414928339041569677352938547921995212665583058464611509220917615508359288617960723312949195856962051582738498588736114210217447560059357425842005530707389426945765787136592607139881228124158149559951486488954385111612505424606445740558962141622812559072522083489795506205988478918179711433042586921964159606565770756327100786348568886875565965967940274393665820338090736427758196511259428813364167891182033288398824693386666633823043337085027191759747725750235530541508865860728650886047263969254164155966284938363668994023284799612774251863236760637081323015106804926336929178654162920217053769877503801381356666157872105339358206003807219877126965618009657341945316909034524506277353400309824594663047509075838069013899904130307067663140036946844948775124106793340079168879192121547287879662685029281329554150210702099859199400127092364510116423291189236747680640592167450870583203824162663731879811476499307731831506913048943882658428347422592871856403548236447772702812267539726261308228078234371058638798873669163045454024101214644457889317213058037244515081073743965809908967916266107518251250018211521903715592342200479278239770784112865434011691601895527799844690511175622175209024906581226898438519767286512231181138457306362549421185712671045341430527173045365272037629697386861576577406046994540982599638644095968462360223360903235583636403573316889559599286295355700351623518360903900149404489862908563358441910956999623977951070348886777537178039779873062289749941376612990120679454354358573130009049735078899836873594480085420107637345664307501130469248733862566945553819202390570425921930075870743970841032443477886684742746926583108493362112850288224774708330869619430966454105626245063267873424182419381072927278808043366374415301195997256215980654273481065088626384562426292068404743841161004902704424242851289227575828041180179705956450537756603450020944821973177295835433686855832519131651109602412747623898213129423493150736964949636424409249701760304704926947704533848354404315421312432462321208477017944394240291310767684399113931903337420557372172380010725653967680792073162499382119079008396919393340862048100739031361263809540462755619339377553338529718800695103425645056306992039587993676611091759421454205142961473681212647145408311228730343431622688730024205796662133633641955110858064524998522225184337928884749504826998319124010569033779065778321560155699358428498099364263984144753206777599713637856500808887090656141369419326454043713928593192678769498307016873929930430549322401284422701471634373607391851741804201236483698591681035635957650402121531998762185543994304229175509573345842267646389269722224246438873273148397560177013138571761890457243348669488044850179223902333300188783439646804376749271095141465152567471772153488234788055130860158455538887633903876883528771840674518403202280618089489946908633164531389141283242052313753543380681119279539440585860336155316250800109701796650123449954773577900050180703578915751874354167768723681940380250437562218198960853177585953773347888554663805186221091723398457278043996131072208417540454545692668459958618119498935023795459152347017059110719197016812099160652306182484583684054765298998543211379387979255379006264080202866365560208530834924319349218564817605002060902233583628620701092077718755699232505648888232895738208064012266726538485726233430112874161271211692499791098219625714448362186537681205297387741125027693211309735194288097309339710990238328008846263942874412617688934153323524630974459223598907810530468415386340136841393462717124333513236261237190095696346292996375415028505922758873215634336456424933691958702271205984623088917301341993707467771679761704644047972669082977931239052048504155890287079136623615984654221106863866884314628250227666769128259920432047386661580346917626524221826226286604721602507616319556540531458551781963496099415493893433323551385422808786056085222731513541234867731864069415345742799694444802220342111713381820635667850150616379233180902001633104098844855536253876912006102711641226423162711707413133872409552554878116501067664785116322525368639777849109307985970734560451676822968250691851687156458806408479394242477792445172923907085608645257861880644294503326062122369033977008242201901893346674276322472355830425677266520270306141086760700557097853211757619771111773777378580180943707601354798984141847689252718703337141009214708292091796562416240473463947260893157750178536594903396153718076183641644593894305934113957693397326909514259534746909223241939237833256153687414357850276036149657661475766835354869776994773950157631701833918383859723810912652142090916320234436256236264221634529049537415475817821094938009441718251781110678564527487442522810227722002128740988050038917808761103203078458008413630701714990297752093156752121730047228662495656388461767265553879880191331696143460839792136337122990461793830531191785442710170515964674574718912355263420626076578235847244904997373114317635213307329853559768300548976578963570696509590244658640794654949537199095392380318495024465997415389860203520409341085357273972407190961154155229169825345354595268260579831532816712403707763471111963748132464730237190856635545662917275151052893959752334893749544171287199668380900804640181620097599146674300840938362020295070255597331521868170163344793438564233567118234661346734660688964043652404932502505008650762895364296492133870328635997523703392826521109909595080189519234457631557869272873287105721301070148355442029059591512004043991485007655156262570731921384043078308112287770300286690541199509279797336103956447518793095208150472475147960910670509106353294053208211226948484507238780670744961337986628324045375046439995179606657367509722661261665893402017476637865104154457225771689996816500561795734568630192797191790362413134551429637294147318266711539941237149066521759838347737703708535574881553549599670143726133186434581371412933287962460047602907219160352663417443018587013604581420693482197831173248998589232649482647675066744589891592645495764040693075004604645582608600747933706576512306946341867532561907035706046698055917401048313492856294464010553684302990621236274749979814569405598886525706157872896901554573531623903794848840751252400514616303368155221276200721197357102006014141397675193836417885787853766748305960724092395865799418480492145933578265389703516183234320688048298298887735250199654821628306316244924260434198929594868872419187563818445815126631151019656642521138058692066568344612723889590542555090614173802317903303357357730382082072608748549687595362472058428277119043036947096088695685848052598735378060138113727903045768391516165973141969152409832614511408460845823734455301299272248188557931600787796563744464384570507006777207656588424762235484474429465693626149654490360862918928775996083345228667424426737132176070606923938273827318169527070232568014451338384024176617163497216068112697462789942669253567886975234639070119867423761707475172448938293309416421764545553526420190587788747267959064528828230496033468768574982515185070595531221193054197166195339122816847777189573950156203551296992581127412330325668648218847922160116466965006864316803942330952160558921429644775214259771050217812419555644581954316148088428500746056568288351777774909471890124912754763046829325896741459583092652036124232207889594372686285989318324993238683764158409073692386640281282220107504177846981656377885221281253782009055723054532519610596803642182271387768647800049679176532143793508769603240856624639244142587191888866508077263024046029564911423842895568996975780468107339785693522676225563838565827375816090830343677427641731032906662644598832540179789849953971324233635520503871076326221533516142592843271845282937239054442277419894781710656873861887104153995806022290653360681295531090809984297966586896654252545343139951808426626752849982702774269837827885307855471693943536588276712498057703508339201234072335908201794694554690728542603000403301922432907684997892273998586544459055710087763065536105074740882694096574215107235562935880151716253117996939437610694891901914734781875179697140221253067778395166947995684849816224908304290898529764501620411925117761537794066261993455782869845644988318246508543011157579268525122379481838688121954532085998851550700722142881274338381728464875298415346352895522999121886537187308616423946423027798087126503480336390812112850637657559663310260925482993515405101792355711144221480236058157573804466711792125887355587874584957200224954549116303353913270423470935116142212803038314471744869038045507552873206712226148371259543550291799462255084370642245669913830225832389472303709826643892825109964214942033320812118076618022619812710954841581848216946953254315701496403432477545690318392561050648196670666400620859803476923821230295580229673696016979314444411074088903975292954407421406105551044162879763899827837038273363895000345849491020590807777275085024277137600101416224854937859212384881637833230476897657130583537175299349727697555991699559414142334825885781944754303088861880871320516631417273161589063371473024352620788837527042733878330224697531710138676237830639135276450365798280795023193754093077475499222396234001499930113715247866950443080325034134812407488946959995586718125749889796714476205470307049301915153633870908565836057595638459938283859774172428696668800451617775343982637379217640685934735821036076832203769938546221269873443872420481481100121376962010145514568428136264937007750622096807224818519393226020206900015248845881026675233830806911754151479056236926341608224351702772501153712808779702335309187439515334334525247809473083511005694152956746134434139528594037632986694813095979711509034279385648435869880852173357921084407994397507145091322328020187210217173007716067159073275224013187047212876382469952801055153419583993484288281144181649374866255464904657216261585692204750872627831692767544683331079804025518346601333182389678727849400432467276677022911804391730907831364751183414972836668010657145543382616510584662287132421598957061897357058029580274662033878819597247790526073498093013411566622219775031850622659569505992170707610585807555776071950802084900087613945111640085158086247282852361974657771696893239956759809607479558824236775129986947884146718993952515099018708918387324667687617119084550739015675335176375524705416920901007497004722740637060558601350457737785107547334436905855585980907603278153266221035972047373002713278553878447625443367804686129217994424417808687830881218157994636537110223838952350578444119234485844636347826969621984585917588499817058611275571157467399344327886133237942250739795512871222965600832996187258531139142292000211744446568666774875430576431219477028845345250229024528975028330748316129115457026566865529040197381777015320035197964594748528407052497183301046252197530570785879587252387707351623893294945192543890090549842855866417483336403287144443270301200740581673929776916593466115762039666755384775640155295208950320745037606714985880857120130727412422312012041958298901507887526526616824480494216556761232912099960065466616263466874712152821727373834451599236910099223485403110268463398677314929459244785901213306328083547120067739126721807101531722609596700583855899033137319505289762012248917677835743720713815626821370688168149874375003052177631044614206054402818456566178533767055551077512235715566780923139464983430578440440083749406404100124865659546420562351427136606025998585841499980631439670519724973595295343387742938185125668049699725887475594619217082600607201277635242245516175078897136699892967701536401540385791370683655036670336059064002225194242761477228096722234687091242548931915048046933863756512170856138126313845996125978566661955305928047522763642959962634503860004360108581300749485612745528844962446023981593167524784882581447893227113483111359887624610319931483447201663699636181433687342895368282388008560196750851458661414263508634665604011098053606644093370299886394060486673966290960203881226862529811801848979661961923329333046068966654554297661320942774156048912612670346204014575129060046545127021279778011028554546203962967665949407632012642431516756327539518880590691752922544650542246358860070355914695258043736026347888477513498307050296593009239297156101966927327708012318378166281052971414142493860582168227812619490021190656884369999603806910756925184173340234259308627032845649150307140737338226563413552706744857418891642938293201009752396048381262410925887756491026948269250399229958713239669862526670571872725124759398378834916828249357711383869521220599949229492908578259090479477940319133746125503689675150290034185006439927112503044788176392238154470655487450326294206451095685633041158663702209914718167105261979182320330357603119495201882230894749654607448682753494204745724323200569291374590156848903623933761213711881514685778043919562923052129961781769147895047432305324174447186478830100746479177829420910001308556382320062813966799317416304112009798694778510352585750910569431387803634092411952681485423756434244581469551641410562314173526405589523084721622661366729854746247797012187167278515917509878808231237148238146606193181607402229108495036602590821450090406028973959517214836002392968110354852897264715510802887690563372778701781329502041842054470927984266932394617230907973138262654523023462722235037639186752276449753181173685681766527396367476832666618224129188819186077820342088663910870845849999046851656709668011447340056807267071453058325846407613733277105693354982285027717533014345960995601996547238275846863189318391054744899635213541383853236567379850325259924214307715140260111428708008412043936679033767497533328906261265853692114598210399420204196304084458162752685266566805613501660011916296530049775454249287672697020139508115968735970130182075915030836301765327504993226199007088143175288688920886649170919767378980839271592593598965097065020959203803548319984137178671490134036980113275861949095816140208471142965445033930288962033298715847019485382333040856360277704863809883573792492331951072946542348386095657456385431875533407182775047958746943474682111080633480484096719591647958475630189522150022329546911778084192138351280895878012778484788388883517255638333386722372247085029556423551456342179735884034907637643899936765652740765691920908007814587284415630300184804802201609030245881358977802437517721486477065934181435118238121143375456232530709067970423506945034914715078774950837058173691213320932687969290702173112964153302523723398882874400907366921857840221348959884721969573903963187055879333063245308230301992032980539665285274025183081271765310058472603113383344399884291831009400469946392741488361630407669288259104983762400602565048469024330633506711873074187847768776649411096175010666554401460205798592615686172145577264833873917271364857710510594071091930330108586984633781482716611889450980754595699379390199923220210665024306493221668080592682252698731882953513727722244226455729851076154737694552466828348054063812724615179930309741060282343653656888267016909300271139862314818102201348667873336014164691017878104448193098731816181136098685553111124893663138410402121097269420688244440011471280924707764403873564547275715608862930390843340332426536480166959046630419613648103548138852277064498625034960822965721831710544732451537896350227399541900516969344625593290603039675350636594984285903316517906371122431496017954759675552368389966414384404580529092680838988489263626002753093569300332335723044669401517269628045002453477113421265818435604114287296106281323206563357446990586499313291310063542387139491956851485184894762965959611053930075217824826614644396710780039961364647296338796236031451497452532006225893769336763962247487331019565461767418093854708173555603328948834280565444047818877635803508096129584799250567831210481498713571286831071349849417033587090833674079035396524517524338818214533927283814811118108097539307652928674546319728894144949223151735612429185347545033711659953533388581767747684232106003271158998207006632664299316782914050724602445210667312360105540264851708363982632891724856382279339536148743634610148073070295542427401330161566932777753840836485773897204790928281380027270098882783411056703216448085697151589399888207707090808967578494404625654170561064143280422995179237265396557758620971351055667553610681349330633692560738602506841655726899623529562297154625976583032556548246886585796674626624976073819869631125017340790512498923810575343667551097265352065288099470650604380569148431727558192879469486608164310082073166058851921675986521682301007726289407177407397639268370378401452624719280845129212037377711262322374269029026811902088633804457400547035021251991391427261566589037991747731937199129793668828468048130858868837457711383879800880751926207906379396012529708717852291412066749459390898354620933009328820877376101733791248594616357292167848132571193374399706848284287813778303698145456225681931439706910663091033602442385880085024241783031506855661347832306094359725536690594134178927736430910867530954788913932883625591359437721036692974119069259056960407124926186349392227944402600694668179930971320561261538168906614425771731932774958252298036366384981490989015201407802542467802799313518439891009748526922192141535465072547635782435157995103514218180457024602519738267559084435854881497310829471175788469819267686973867705539155174245998514940892374990586418049030776814481547831687104605812904578885487485201851212965276342440243900316997149425404959756740126122111746394756752999452289631206325863407791989774603374787554524216066058167431663889965262217382569437129363303767638585401867212287520449248382480233225849650640615062764001514895130068091974687439177449508772356442535049517163234092610129173246782015318753840842057975652466351894562552054049086128526017459584073223209970326707444094326258795910308373427698698441657055904124429093379616563028995348423310238482128299850725336307986232112295110130334251100072094047068211043711408321341802841155638463014446818076562287223767149415639110220975465290056802793572111288982866270820513142383687427562989444468460347049944195491776933620166676996086740982213236213643999113590812588535870045721090514062001803344554446373300993619738677200088131939587899577168269528641361695888911209934111185144633973600274158727067933714294334697379175541013879357443936492347541013632072672573671912783084896033376898206741633436204450735324941815250606360437311963439149421689818515440204758908747731801937102592760205904808112936310368244189548738651442747787514501396363500112710523824958142264910676990184124087176389053670854852063884151540974546287983527619633626919540359762924268143199516319278032320184802061095271215080773572531410863082865191455386912269432149687885714798504181389818394003642316273148770720815756578557877718532278052972864724720591801990718454044602799867198375228883244224136399140149051029840993169873346943406949530213874508920265443358608077539935515134427497586395001842981734727862629757035160323050302161310345854573378480276460577175773286329148326819451153357730350448694385993760004236836510092399894333501429056565235562827348894803195131543494690368429267912809486726419917238529132920534301345415014776999903879686816173155290844694407586632461430502050195356195571601423419055446867445144621796400558329111350267151745374468312462968636635992372450027722075735199565422691184623943648205579357506396679466059287617302747256870272231738631848699149951239028700373473969058899944172154199156747685798978859444254868186308738858522188466031550641025258925157083927633925312079290003086183694387558353979745735229523048464004157070119704108264025951937158326626529026598815516016444335500716031215599633154315268618251552456158814756288312808616195151939523515360554382636655246892719531954777528727449169986041118061633915803154677173992907180803200347452034681646930576663616693928076571580180927561442106627766632155553192411159537313513716316676740975027514571579082462875548272830301706493761711139428344057516957135653655757720057414711490695058524411252480411059138754242056123196019610294510980521970037463119233614520857239628028615135639995437000157041050311713094073994793291251689936508249124603651347148969419340320520227231768750422937486524754336508530721423130203082577376004150972532541494035249267913213105502464022815075278886619844272070880968701214720879170221361328487473074100559486520483632465211191302361802424918989822951066011905393002213513831042195712028663748541353230894321956909518075656338680943943921839750744949159104836730629918962113265672389247913740759214216944224945573017889747288196848605670621690786571384548635747584460339270200184911721519712854062671247614715232707017461600174702365526083808389523643551125528566122312730178120719417571078163747233155182718876138658131087473628473023330728087034758784680546857452599357345539652637891496661305671721804641723010289199323015525557598899617572170733269888377359660996116965531745484253558333449924534034734379331558340768345009052848271374419332769120009504725054584661628339080983047896997685087991010872494002790271091050629267540264436058905329449592581746214337062953936342366752614798794957315809264437829129437956235871313617040645868099783303058644841400285621207035209217065562338334931372586787602651053388989243837402771361805422330775264617446233399806005763739461236560315601495050162178903699074336112346780047646029411155436106624140338538665101561601686215883344039980953230136046880888914011273475027086570934446541631227383044360808424850729198967390267095800011974136218908302817136260262399902065320613920120656705161613170367940204644698261218853714049250696871024821098845959134186374232569639687426032212735011599036785734715699133912907229214379101890133215300842196143534115977733039600030434721392241849695808849363198905332005782934725122014019925575530281678472833303288216732450003161048945229782290549318390416900105846506409110678233869295035529489510460649936223080436931263891825346308935081671446365848402238406750377512699752873107549335124429635185785918698256392813991543172366065834213604620340898616668215276796852117966350282386926940520643504981135042653296113047597308397164321719021649250668299573412030768823184361050502284672620456487374726046908687303001451488773255382147348489586636069290066853216597401091909167443191438249461622181466813791939480712487090195112240966980443671645620996937871791212873074602733473141086705657637009314807985636999423982032571885443011744563735304119074375171290877029994115420623818687975435676898322360773689703697303249824576086701949386582423933310572449438093017415556302759929433130353584548500660123621014171681000295639982050584482442435436958213018656880979165172798250892155977170564534015996114990982081112177955343264047260099792794743410371873836885950059568289619705483057016043259966140150871961387346366537455127172851872945850578485463424741202397276578360737456895196869712797879179488430229082304595964257847632048481199998868877655212110946293575347166150639344331645843994146014973112774777149206234185311586343254811457187290358125441744050183231677714067260481501881212058465084761230607568558851993692043518680267052535110572761137294619423927213232461656728650898957035620301102752752821272923882327984939500383626181939695918600342439593835687507623018997711315997655242408720503472712153975940058766181062711556572790213753546644006272366339229558870322853126735660055853836093419419498319618833939825847240625120754654140742153610573389692315436076539295758907783887790302558870354849987983595052911774442984475149873915393329080070874479583139979127766651601171170065954800978630407234698589921777871667589928723626917350971231101891075889490767150124827835059558718834509703657868956276798340815371442973779927130345892127892115984244740613728995861646544469469101065599900096300512497557691629256239523408466389060022863211758059358532321066876807145206015032398260286700280734362333071191888309347787499453539535228494172861614104447893591137113197704202132993123468194914175460353375731747069066195808446514974917148001001782366178849987864022189801176448083332085124211381511135938347042045541056366171646903063075508272850318211268780211534115650318035752026250545429676579291493711882388662848751593229791678682613445962216631199042950977953864133783074055951860777144403145141278823988814997162413493861174949809791588981856914524418092842448676065280338374820263388609077897383194026841413702245196803513556355300511241920675629393072703387301147009086149686195046657877705985100097620512565371195602482596014574480155429148095747806901047857206400540209159424838490251987464267327347640618805125079104220930952103520030073232543933613417042573453440352333104915179029679461862954642594616654915255546897063615134188697265878139588492460916959203826005322278396726229932785445469862548576033888136523436459711058215839107576319063646327083484481117173838061989790465122445814066166812523487361735744784188652424724354304025002741312989917203434341841147649812488687053068031910407690066748134137649233085965119956074192719016515914674926934905397269161167792037238463495925632348773602846254357674151116954446089151401428032760524857819083704969587680763520282496960863126919303300274601891792783389062942335279158601613442177253318997578497678270359674516026118009714760820542721968761222783380166075227504559477778852169362353679352636652823926783671060317515114845898203768808977149307960029820432535247837526795263464615422412238608128478991733080448018735133528412051959686650339179626426228369175476253145291865980631975360425985541707561187190340449822411532362449059769046155436928904761934990713816781344078488168112606209299808906665707542575436561000054679563856936687468301418569170640857700082523123559754278329882716718541900263748150765393261826909996469463575856751996241141401091836515502467249324069979945510785395029042992723194163230858224732800783684786805827531514991971212126246046139226135393174700794876604527131673900714767886519936149914208095963112710153981507990493121962743403653392738751562898652178376335409079696635128875357460314224307779507278046157793221463432891171725236743225651529880778757563243163678396751180767952870364718348312159201613531824876833547804765804959751790486900518341970347372014456851630107194572656547734093177007917463630850360145907346973630813370939293238745033592487095797504892970983002227414618606129279543337759728581573968173445410608710240745355083954036146819564261454902204023705571098611700060001587032483950871928231868566112387771680113550183381016257814028397350348897479571083818469899565003129312691932539342840765175921899307852889663168579572642467830445515933433832195093849646197225775976207929779412702698234529725752169253700636048563526263780900291648241973207823875276294118613188628517252570234671893895192090791872226865059578968583884450633507961007473296728847023838706921977348849577979102958299488280712327536964941329530369992752158178235488672072183340401462262929320015777154562585772048377773306467832099053691646785728551352385450549950812027856604437226743803967291733650820055874041436512753929852758621745286724056018998778523022186108515160336576780584722106234442438088148258789771489854181929163729077053728503753915991672250462882476810766340798695408562687988496203475746172775034638234829702951895043869377521331125915161218634830477090198785477281664540608286558743766599584098012722783090690669629765640462835566639004213979098850979633055794341805831257722555353057732667232716457152240127879611276888791327634392679802593029385892313180188172496457664288441911354699334803659533876899959590728753406123033687621960464647793697029416281251023932148941237703888160930108319309259737548332542824360616276856624302214574789770719163371081650914345462569146523391236016975712482852865061169545630096696187012504341131540184937961781843555942359052651737664632747260503275133338328738150593546089398331593383258684881758916704979151538902176510981339882052756685568284004993312152573469132837433881465705366190696912503594712924504183493670378367612652854915998753161232335419482357580515060745266698255308556353581169078961037669949293224541650653305857342304962373256309990956286901183588169321028797017327934991617283541606478883693320249034229100952977046087603580915747958836340046647534839610570095110734222689970830624409670579385035297201973102562433708753192396467930673781745546570017925279134750201126663846420824298446835491005935033981857627309148652389756490603792219489598454771359141491090247826281760559026021199898568570647800794503253064944998497856617738161395511613778848865665490988328863341957102679207997609197209608941717762514882084806592479900227850185271305421205590107136177994488363420292401869148271510788654923858450334046521331246417217645391176234614260512077787453592213915837838397335843787024096591277207656989094144781053258045177960115098900479251918230795499850452065384754695582309570309335226680589376293774043787486280824862716210367235323295871629546707246260590593153244024429645567733330188483828993574518295479506577620581536559793722380186484252431242191028802185709518880926074338091844751740657929290503713500661910700559754785896717210215917967566909825280809149394633456132165799915402965897571180962095234593356604304567759433923306308853547898683524557664920021566963471095247029479074432390905302509778036154364797982327120089801680086295215283255818744369986508267631711808559737225040896198423124785708325965032308033620408122078192027057434873679975322999218099611485193908619541296893477282930180986965217706911211808786910896832836705876645206639558856207080115718193413495248702148388796928311813900983414050891821506705194088962220683948356920872998850834429036425890469014712693875941643344430826695071492093186735254643559437012476489876189734209496819427652659464082943826997673198227167080843521853616047241779622644713523137547163784144758221427505930925053377240989125604336818389246148776445630261951000703001003828826035759200332076654175406780112122661084995164836424860445913330537091698548952145430535941674394109190629710339577694817206592832568722091804630270303606498249754326652004820421694317299228137154044833230062154299845978531590808353440417901840612664709182440754126520788857154978887484560217873429001557724950382341497677783424330146374412772566240456793199155337578668718522922958827901644524885390253509992260958842427601673061658775773663449540627482349048844408119815561361694378460943090540393835539119371410326756879700602338200262228735542010079880385874208563087235540631886987981500597846755578509913335377518326934277548064992211844009064583971092789013689225924365097061286051696847621881999876167727530065696097592029899817942230964284434473120077770047322251657483084518917213252623801304415759600863117718495756881835427058438527823857044109586787208161217384639589631132721342316090287077587867112028639743100985866151279200933130731063292337581581541763329924039924761007116064822380301437621344412384841852709220866538357940320728849878328119519770579260755842370577868765119936515680040493443596013273854838104287386984531508614610087868727494375439621240805055376451063574719285922670057025844159137267294752225103904320606332204377524754799713792090072556930264186262010230340918617099844731255964312900153227838974115352331047099041511823052726309020922162692703260024372537999625266111363565006793281341585361215889625832370439647545170878750107385243764339458652824135783987649172014978710322974340950808953710917171609723139506076526516150487491162453149943975148151384879988940462761588472777362346400016595168362949302272428633515915862268713160842178067990628005254961956513801850049827390871048424790767813182728413625231732915833553363504224903404788018520974415828879270423319854823792348145509239021865626057716825282798598545304073552896005576996807438316824991982945953688414612573770527261714170126137519284046809110931770157857199902665660789138158050256892644441968799095960156801791263630921120699566709703705654781646446499864023782419113906382583314747555641598068620669159457790372203206417073664790349607050259576320006152515229143500961794565259358453229159221501305785166568960820420181658756664545382366084815421046313152050379879535119949920962098361990152979594928382547035203389315305323393019712447835384063591596835310535998504771459328495533838151598485931883639938013002508548304660352208969465426984117559809331326163774728194383114262936330676305151174328957306651902638007528884339253829286357791854170285943222234129548090413026919663635858959884048175764377718921216292718165257878660278309445966712405372201588521935623538522121422144257652110888332449123464118081017301479667141143543702288584163485575525990088933077194717659690265972896653865641078221645087233803666613827318456034791546960301704012605390377890399069536392825375429074958838671503347856006763407070478181823850415403690010297796158129223783862243306093243407605217211704210018444873922187990574103121238980489204065116625806074222357010961526186607688680307530881368498450890905476855189840140920537037756858562570929307648972782732060401507389952605423227539715727856892822572730168755172865213472078936797022927354911726313081983782533314048234376658522761308485609038241463278817173310914366528636721811679471539883391951454019058766774240589202252962873007195069297723744404550590536011620970117315660577183532548576617253711288904031803654987449404704846793019426615509550684985432712945764966927970216573181446922698461651060419854861846995735380149179736000970409257823311517289424945428226773489873901260459984136514191156175919513709011862458279610386198826683138571221695674331183001739972187717961458440291624580333765454964474522586209512675862954463931591634166789188901844436472188625729815515060095209353385214565552849328569604221288697588945721832922213449379699088727752479653694667826421105402685737707072808455217016272425535142012755741644003131856659650481310772174963692386586068253575918980264438364066318163359183911393031728109908232520245415302807219495039763968316751223468216689448346583785095700826557931030272943216129422378868203113080693595499659475607655484358394271391824708898331853919790191221857076434516921739946177843673459251679367401388251678118040021929049086231461946504100125868339063326338980349859956870845167003386824757345110268900292023025304893530042999689022977094832934255534821226398936230605301856850676857888515009538172059749378248831048065402342042209038355767880464729710889959718919676438776771384564061722756586761338086277228283788307163408121867582467612692998075737151948276347076900006379572692476675688181074935163841127695833360804907086511009787818426569307991254627659492560178199966588920686705189087278286482219624589142629989530232150531523538479512075485945636456322935713270411600735694937224340751683479026951041111668119122634027179881904548321204789608613816078627916772252365416508141163876022588718820159925415619319843912186115975491571420964011886227843293466160141822020272209823838136910790321248765544580090605203729317296261410944508642109631091033113423980462600067887096697013735155207644461479478858474851157139171261492698097702661851849653950355671817541354951495188387399183261576092814564110186138022663957816992316308572585341232912111594811535750141128938999400318019977393926913789222439167499914437674221221964965097127671159216122214870324479020152202618382910388252124108100995251033901987039838994740108631339135173648078503692046475886798759496136797114080962846881646994183506925943744629264736963639393277122335443761923798922455512348302858925464093259995550848088474415652198520517743617395429574589168689748569551298058615808044629318637816044929723244934901512060496866363794076999273313677515337899377758335771512349462742468302344271551377621219161160686676575032081837109749830131577815297749424735758545531291637893817252348536160062870548797799255958080508278387635327720003519502695470470429046526760135047493799928047718355120902580634015905992382083635209907686077876317582742576756903869661204114545085247166907398359924355748826401525691931351583251070326811324329649325599983042224651005103599011423209941829094025927518396490631446486981569122099271201258958296946542223541948604361131896468072206029524436734748158081602911707296883534091562865908808855786498841995343520064335857382523041954731161146401071780475906993637557672046310912405558532652428134277717328383296181529285373731953366039561321711947612674352302797325892316520804065357362693014426772581133554651719001042482897981014955882400779803026274132813007993785460612382481178981227551882973502397398819758534978884885670066224629242280777219780218746163638767189273412817892016034261820031665718873808981691005410184413200587269774246002896239579749097828458845893251017753785110614111949906571207092198542374599288659465049527146424292837212781440029935029898764793734920847069844022762785775355673607895164371596247595922825927090996409031231476683249664289262649636531815933337970822014854099393221714125955031651908590063681265548046674156986354474745663419357027560120059705681784644418794664706305223655270680930174942690893659564409745780085252672551594634750658026340380214373290089910106689507027619882136278111564472265220590936393114362171501595659384187636481019053163283387269616842952989797790417624266735220655596229609559614131000618302845979952217888890262525832838015646717567455670358048335819263260021945643852466837244616041130204721876483309687832665383808508209521856627193304504411471618580099091744486478882686355977522210123070514130382656109666820407719217717795090988115022796772666582271110431752048554675224281203323513181594620988739956107971001729308511684850818503532591978119692088815142022453360832540296561978724244493015748118464595690724835698042668663230982582614181867069914662116790801665439276692919674904747362571104499057914217287405581720947581623989921758999845963679695336228860951204347875471321022955805305080219962774793179199589262153633882465810716167049357627206378414162845608108412209906730530582374541354979066718742295144519986947323128339824106377073214650810049388557843170254614057804555754450570207419337663453245552580479443872442965327174903773529989306859645259384824193762693548901956015984499299659788258902646311014085835318989827257314000853197313401161845686489791916259932941764075326947702788336798403638048322335054902204511461717035101861187060693066815435498486283537129411519927404872017024749652492183937033246203437393782945282436938967200270343276878255077219301566111613336075392484372240232352792330646215966542035725111111344397482567083196338390448547159056368194598821180531725037162670611758042847696488295015913633363028320044247813996946188451147702625166221866707068034144107088184367876364388978860011318370900174395869641792283479767241868690205429386598722817105570309563506176942491090445053098291536143775678511985234375164185941496468592463946939792030217490774714810950145246226151589922027495346015470144428292897572190825900778979949989929086262475988370057633111887251417102218813447234586291868181238662409826081137172097282176793712806757522595590719679842182468608087594756492772560372666648822134624145433355180504518690215912664439520640642923602552227140997193479298935641332889581315166997707327439881604628552635094279137155103199397203113841407166345320679998958676062766032122477310121131618699672156748192777151664009405050250087045068799693681210012888682685440617509426375382462538179975117280480759049159990890291819016400148411346772773555018579391409236695881139430072186825670117880541466954574270768812990727032873267842847197664232908820540720707619075579511625556987272088055874631297780917593692234601688238408676197558408378160266115690817976132288653289664965839192021998721587907207203924023568888225399546928228643942243107886576892255672108442918100559414618520488833562416046746394082830636007922584820968369218686860137605097692045809088382699332720679133265443829618049381166142146036858749757109452374732792301152029168959411082998153560260838253771016027502297923042141087361380542162253112874484306530872606576201162338167240297630873924735496771443035494618713178653216031727574442654988541542245084382024148637595217176130099227639770395927191381269752746002213835857906203084755544665580188869593387342667193987644152136307430747023799218015294522389534553535194582893773098538022673272500983296577942885592456016011229451496086551657345403259722954885905228847495821518711150350267531093386109639076814225912949215563130197306849847453318873851747071462062413965291175847580175778662869426165325069469688809918751965224248138424593451558280361977929323351457279696936176854783933378258818612656988610528011562770936911600996869554037440498108891245120231963712009506961694419334276325661438902906208160428622361770512127262343304949594289435729899107789253197266793794160587868420960485410651909787373280436121516513767096530155061749280987908469469954597821932021375275771065088473548686627958156599496357180395186321629164896255011060496511144326601571182483268125739764405507686301855440785682403032192582505008981811810974082853346532418548915748294034476546850744292655694226653691537677630072938760170645150570424149857392924855961950404833381427863825909816703538717322089577599357447549621666349171802924852351218999194175142859758956014128021115865981173867248027734796920498197151258640906025448086233609486947283864370525449198330403106373893096019077020437749607684812710936751531996843543849766409946818528067427979962461159998969423817729631373910075789477933540865225859897745857409159758529246053697716218417538122873515516386761475654409663724785756663038987887039174037547492125054217460536506144291439734166173451461461840584972647077229435845479760296878167705609467530948768470186051875052402419656902607832314686359925197136471507776990030587495018628202553127484779603737065154624389708817376616479740573309587605958885378049143208096249062408558248267496453180433398001468321902371864032203660192592538052593895642515541051371619191329438559228121674236036206536394037477338518828126654328306816929250338039867795918474470578972791635989729293810992285293329794751272529094762304968229853166016577430987345286880921830622945880920947011691661610250921353014852257351814206403757769573173625575949392513114039787358099010556597444711577905754754495227145347079146878709366396057340405533596588220613142466248810939261491493605507001785889883751137860398222906315035036203903402793983869312777560118689421392939507086583547670889415610110832395683883844970408018730803531096740221585377911487012960215960523423537365223822198366427020961056056322949211427018611409842834391955733002336078043262265330746775076298079032682105703622001920173499752025862448365787412495028418703289657867232749712334010367220483534723725592295010708197182392225470926251856366348093616225626887009122627934658556909663853831194442597421205564729136554959849869853365554260519840917835230094046280622001932578892816884252240209837908923313984059730043585882788656603676525504508209000590726261373818716474991079963476607665928434019808305071987949424714179295381863912909461716739440633373937573297730501739489149427401828626173005751420403999887488882492791139261654068109396850691275145236484864669464512558068672628393945351488054630139117049248435797726322530132523335804726378527620940371076196130481017336169088948683277625724536334960309478066435285041170591092560270423614159791642381555137280980698103863466057114688254637617701093370093832871344447592806509830603140442762941322830469550084448553924472947269747821427364410837002601242002047615329419683185768369032017206883964612078845814088144053171882732388010054389173685673120124575234937515481980916464651217326650555545051875500531396291535255424071678354654908038952372972166435857187781616367243694334383321987819686423609848660648797408645562894089819473059444355820756298352970871864141502123139252044995246877613673201630695975532875637736584850078197950655972416070637951838599250816744249233512927901320138845823533206612835027847929269562518629086394071618123334426337270978235814142312209542062310481311165327343689788991873831841337882927587242748938364674392295029422298854903435891383508835928153150596911595199559642289204758322966386201656225902529078263251841402039719085698732195888579721697499099546135755852515771551391912379949856438911391865959934783082914117662206756909814915871959398716625405732509984058294812456388556943745899748655888957330674904950763668946655351510766603790980036264634514942123424986180440157236050806579856875259496762817932358844426310775293737962970446431725270808591078435880075756597443753136065185173146144902181743396743551677320904278709481909211114661551864774889221526794403509726412431217990192598348369590593665738851892414057404899434284000421146070932075501818686959399191793499860419807723002204401695894804817098515036095880812884984210518803542216530666520293663529432101181873145515023649952930602227886724391126335913143146187438912476875177918085742129148430859735325842616333284193702252627429164175645940423433391365884120051846236217194884892417390021920597532671586368380241604224267637754612856697682996827456076445511345642082805675322402499868884034679661041595452190687943386975066075977101915559753565255288432275662848831781433146606728068576020918872676559305634087235042423265338138754101472551477260312327349217438807489034599532328786657377398970727613534364506822932973406920873918876598938132392916831004598533095214200205754630037673730913590998768390018713190704388401879187876002269846669179231865017080255432027645565159312137828607078746607131724009304978783188140727682747736957856921162011464919844900061797858239059233629541017000592803111898476294683016860850548946474694144137461658696352150186105566478714732498636083896878161332059703258395657123426295063972133811448698233898999496130197160572053077608508806293505266251494726209240651635297232088837875545524749801016794302926498487080883217747025477752399781008601318319947273794765925021610954270151648746327237006822226185874271194710932389132475877116945421578582734412918531893979846220449535521969776598070276016367257351127379415618647266113262359150815543705487023933245337467113544849222638176338909187695463774405164461225844004238122506905760134917438039639796073017184713173051470574509589826763624014798532311841085726175387755137894323225037083002086761313949048517658334832773990007816787619112249476490474261927620717448930493505274169392559499676238976976264618529701625430264210952854857858315573923133890540574542288337364066722151591689851314325755523107515016288501801893088858670093739773938525167392235919434818361480490640892682144482358636470405119389391408445756464716720918964106052830017604548958502397749154347841650309362956966222939524497147631622861479629530327556751940359858407765494285176012749616577867516836661911119738000532446558208835166186471815599954669151870651427581627854794454590544409697407763661068924404557434981153074370809679663423546216318753128100597412998060430381940538558966198843230028246711986945220655241335101775045112693353491102452218133414454954910745800327737334443471674327974456299256768351558160165837722341392749079828786725848665712022128913236033753383996412331507917489654212191605025558869780074031507207868756400545263544503611904643678936311068959294982662714669552215638490721444848343424729973894898508259389780178457636746614240610863499131142139243834450246310052304710965127858854433886712004604018180760959016128288847009706823700771824855289291180927964899981892941072317080157622258133564615681393266577508305565554345712497739963536683053208126725161624740304154619775784297493642685663425141849319361505560524861271333893803801179629985071522662392510855340609512103047428544772705646774061777991070904584384234800431405361733141288891031880694612709817599795082433449873689429491506778731508372003953754635880648986341029131731234777302220957112201489424405918665731190792130205532869739560810842761388895305081012706706269896684462805102858779451983773351344037175220826172057195758641058742867354881880865734777733807960227599058641270959736141346497640866214406355286383725969418430654101055052454138158517861114457142473774435786264219078867361509182057676121178688696572024543279535165994005232791342137888083754957907276927745641930509902605133490624087214282650497874875703716596185950693173586808386574782789151223796847025425138904823461409779296447691859249254837992231918024501002457309575334847662196646977431676802948022977888790229562645649342561037024796311466491645191443739573492395049874214898267633824203404782896498312792379785711021978480446883716651739468557177298601949492756659203917220245078030508029749209647299710763892306087695442220726667165794199741623026541454799938164734247702494515933775978385133212249561799873472730995112738951991447018010334259670640493743130376247300459331664215092317964287460135174842239068458441414175129032061912333777325514221528288382294208682896935807454911004222655747182168182885366798601966336232845772331347528452763762414123219607435467823583949782039008601361433342140621830606764579885272510628224385760795327257508477875765899607570189656892607129983692468293681776408826580588044084713363991479818169019847531876979655679189146628007508796865578391177809054967571409631035932921387924426329748929214672045427361610009707496193527304066537710318567241154905660154873697717661586716045553488658665577332346995158479891154409747924734938220280222408832176804422404689223830947096686844996627714536872176618102577601468306386838864163652494996437712908808081713105676354187202189996456202694279122140275959926378172027377248225139061458892771597017075567376303196083691205850807730176645227833065258556678188284591060755116156996757675887572516766953466952972168800393253896683853835339725909725718197073168415492841864735349879668887364116025905999168354908988866549096487456938367948656121671844546085472332470128274357405904695185525079517730149276850028303263862984473347846924270779040582924042544614895767035460413694245226157456231206211695707567414813673112209233644056455691036597307682363394329913941754013274781770239728365211150971992807008707491153887661685302026815120695467865638996131421095072009624320453831092387401877416882824538476418902702027229670516208709952792564176127836607390079664171090014369969993367904620722152386253393992243740846511906407150028435593011930391602015244829801085357294291663067466335274235560275563056292265989064480039855436381511151435146389781212843413861183148559626294195865470839611518345837985444624119429875623766009270743722754405724779990084260866972799678042237333436975665820161339192664692574105385912565097469455467118617664719232035902202898924453096734853795626434856855863282636184893907403248781734976953825680415085584489015874675600998857081732525461131957991326557062021946133268431879470085367144835404063067205278878480955464248443249083329953556232170820637404449873332433352455834774131683949658265117990219391243591137296019457450428560917220426750915899008253804386500489675406138266447482025535753302249346303339471749673269068801154848504705225955938601849143075352419027385501385538630051152600618115647634856589901105701825950424951179564883621783333661835788044805940745580862042294452574819657968744290498677995749377859442860124338595216312566760233126081057391074782554209540465136344711330809974132069569704896647966805978143493156963811685154200502679668106364121361206381096921287961667079500237577037641824576099799737005768471809655842437187318563815596751380447107834286635664916013044533782282732226359629971700393087100054533874686686121551256659705624525421191427949236496498725614489306674482232776772926830490519477877252071349904404816743046630695766824832550050260159819212867527493607233522184740591100946925343469250648110634245278274518743442015372410286237042029450606163809872824736901540725854368255364075421369988192624106511438776395612770066398002096533630354630876397777322983369964289298564990301509008844961667137103250729265039433130419273996981498258820525405465216941874149656882967278796927625586662527788237328246184816422548292151213205894951954538244906449108968093894385823649037369426981405593794272293399766682678727583531234647425639231073635769266296511786690442373144307353538713566950143074193306882686859194937722379340736051382487318641328575676086630657862382482428303053785391494142163176469557901549068992059267042050780596955294452668930696618949860505409888321419217784100247868387271848272327300388925365614130762432840574527963372084335798754687221290763434254208538832580591099082270326380319371172411623479797332899657894056035371194262383709645221523530230230072209236733154011398320026890406535059063461533989120706373273422001015578785952197310226087602293895221627551171553286628937186556937778876387304777433671095301186655763292850564160677825139296636691000617415699651307126058929226128792718227057854483468023442049258918224171880075668024833764546857019338771662387822420878878384414393941748951519715466717144515695484492048300079349399833776381080462156994416086675920798877228390511570722561721344096332520084537832426068172947418848601859305517081956369760946543063966322338505260784166149383630321365117396097860406650476183887687095071336236400452388030256213040216459676642735644169011408616826136940504061686570536461230579482877058564532182202926009853102344311705930516603401777510375254142212988715225470961983352237810188620705283813569164833404953265752313412170278793792742402665751033540044866139296042458737028526486887043718708782397067851656057959441537971408691875284008065107036912605173661449257047577439464003669718218935763710166913393847507014574965989588505800144772663931252497437435357953725939484676069195686565477957799572304175148307178980783799763732991767647124970554950138520152763276673882371104347554293325617814520383572671037530327326742559417327053311950814767496111095694487930098478275479317324616530109332885952807941737185513216506025845550667057175819328673942179687905137171378949426557598228645405141986912835740614853618787790873279924410879097113626892329208178916051362047699800419265917446784134041470044212713774743938425282020936275007426824344182945890175554289670707569469825150344797838210730126999001479539862882548553907242364264948357684129280822796810154994176151035777138382294975433694909635019609150109158866530235843983938882959093176341115260295432851797894764644523360246633194648705970682765179223484497616265270056097182889679560983572819538038624191801950768841069752846593204799109052800916106180565947250969470120799330949404646776734318822056332423897004571425958028660540253646031941801997330452647041536454424372021884872851373277003098602032659233374397143510767863056758544720830874977857948290645356071940336560039340229416717868415290873730391018107845739340852349745051644540485278773039955422226655042109031927567490376903649740737598175413209246866401431322396237369269150324368354673353121788601161492292512976968358951145129106110213372372428265838075944633052461451544738815085953133161858756443691446299360566126079159923899461512647739033436694163848634991949102230353998119510271139821405852998490060810822287884194052601405586593812041699690277927596251882221854073293158519495822345896335778179492839198549603002702179340188219547616083442193010176501768129110754956630517009953292040437110284910376863626867701076455935870423921359265879482502775563065916162965428843568167617329699698013257497431169283237647592945039566242578048441069905119169762820122360200484708332835157543039018995762749851432157226754978525688970493480398187936442453799074746746624749321157466924846044381113863851362715715777482608649926036562354044314579336583773328934192422673332204691474766318896678982400252943268227365610957923020322874901428134761364124333356453354263103232947886380565186126360421211491477855373919604574679760927881575632094008519673961679503548320995098254495269869006676082632541538188755149364338343760705294736618288913070398731618662029053790430303585224557140234878128513699725097693200275725301757239577162996349819080620695687026579152234929467079198983444633103576019382526815748740071870525357223153310900586732436734490738353659149320787864533771401656623361945746182174558755614237036865847000785743293105543693023179128136315570610388606490880727327270541746501064779554735637984956841466254484642443019039943176716878592207283671356025966568351442410088870338998897658261876688495546447328019828207400059371411601085656899410706926555863378046714372500838668770387830678628527544666310601782720770288322960497543220232123837247575305758920153702360225337297378106247169683187868745689154608613818385214767945588901871087531808594987536344833616368129418270839537306444109511658299572802843507868589349993585756545226488890095841138286989141115609560075540417195698436498601457798196813927228635229398971998849555547170616317434596705057363837415413228938881803865657261383049777918501607713591128415691990540468087872116300875744609413127126084955261631652886474687459718474031780729288816397199853030025166553333999798572604347130375196754577951617166177524457555891566323579028208451616565685200960601522392726039111549941282136367502369436836543429694179906616595642158151011742564575727201727155887574165247421590342537548607670589008495994124834228286813085604324362741687762441716639775357748381944323406526305928074525581790984610773817074518411344891131084312475716726964366521383086642295871730074267647463379842821829720054571984820803583718702608849495715699740092147416519329420080653599687169623480975236646856631466967391967294876318040858792481709788188640529348111233881933226645753621794307157203528994748063694803417508957656712538756580672317847179245982854812260373659037987974247260480780133290288606806709628858532621001667399739322496842517166480719946780749397270818832969602060480165435673230908784135844540378849867538398016394517164489021856075497008947945659573676404052333602793680361634123485508316789064931029411421756388918633812925941346180807550715114615882658206936900451915718600669611179628599337172556737079502630788701251067153829597471956517938869085812121297891181303398567939916344914900409109730753572737976507789048608736316458270344129098597434316676233243638813601534170624727129543538168753277718139970871058380028164337393334880099091336602854743165178890076753680040624418842941180648198381815574655816100475221748333848362926490664238228626116727745711942289945012100346388565926043040866634919948227406874731258960667370558283230989084742008788879289258993941312949545264165901579200802551362345982976256031193470618258120446822673392933595607935931703738721701342334824303225597190320820960415932007990867274482963740022056262224820115326995502401783465527821274594275558627071711302035337791064335174140385299838580855604647103150711855516691967033740414869381063575927695634752813644803361262536198811588397217623442120378930558958692878494402309798233976337933708669387597593176860826490770702220944545357096584190539369347202302720388384194286544149124227407571712150678012728462222980752427759505113986520792011041224403785191209869248125968510007859381950102066055613388820567452211404948622578644988895795382955300831082375489827828608197044036077307817165553480260208355587211116894526172680180546263856351786035010709129065623501738204487367311971345292619475427205611209173424466612256373980544041584541088699863188175653303428543514859269878453373107522716223769763017210331156688204104209532290735546210165922787683671299191932509473290770959518774037489150600380164650907598630817871113612735466982149395169843214383311152625441260710668524599945592473312762179951595923555248289224949958785119968540996662958884406448322595274861862814533354512829065158450875953240288702544497077091323638959235851164275307679784570575188425919888521121591381694554322945013211774182880694765658829236351669063580934752445234933687917081810477671686251430424790322304409820785436581446086495975069744214301810114443215824486258640431239363969130383412662938711608405402221787863278429382982152000922377109058184524976399428311793634794434897116014401575192420599679816694579045684457008478731591207933105831751699459410721753955682423028409358654639107692002831009614297818366953247359908563083310648533887689531044265737059320796841117457107701534552362047577670312982930587823666227582134445683935967536925119117079088589431569405091027109771904386972128078334185329971145975289510957982632648292292256782838344259041117238664184244784242823886230712252942411786106760157869053012822228196583521878674290847802192991191249588960586721312372806773864495661064354449275963888257635334198156877424772978221998253441895873021743909250898141094655426042151345417070491520519756094898916066492081199876042863292823437945455694410979485048961607574492177056677186830215147296536577062743866126884866247435252916506490678362818748166391416557907864444487938435688001253128539883496903726944311328892439896911053576506987379847538899442493979944907641515610366771308667220037896959002567268231987681745362049540016964812139684642759670392328504912726925357171747741340021770879584849991106903709068522809989375022760374279638366615298203103855471779827427456620402425416321867885856275786780579693483686476797312186852638812298661707733843304785471946270063712925674035487492429871117787889995554598521490408234743393692038377635843354521169689289875304516859065127453322845225148097511680824801104061417484878293903360996097421176378226654133014081777926157555806964036578162667455090032562838484005585482238800063012424982005175313419623080302489837339252961004831604260799536705816804332320687068431394309066996876313757732009871247326826087337523407812267645148906025556600764990324201262043820305337508541146672105677033561063546998407037724825146423563851067726647715543604864397784031010095431379491246341961165310368411893023757823590056199958031362496198986392658342612643052197223111091979650232384076948253114307060883339570225404770386075633622875339448050204800013418943769605010125035261447034386614044286077829624322162400473579064341030914901356124965986863126510803760222179954655840981255277247792237773949757224235674186316426488962786563916921184957611126965437634210400619409185705403402804719124347836497187879491535753677959031907665534293348491552998701777080225312517792005835756312577889464721096958344177852973514302806519024562269579458045217622576459500021623902658226506103578378693985679445400665358538786576521038334725108518257468967076513128647187986997621497234661050776535462480149046140440723772029023820175280644438898040168616839512373246441235883001264262473122379002288823435512441659341160936123707518164020512903695099572104168708254439517137887117087933663318623741270290327706726447337378588209355271077195171626903816368007356488915670559113293350642909359412034515084264644840536035251482393684897690470683583959196371158354047686979666205624017633432458270731448855757168777581728744393137359922365555947670352738587998417139140046623190652378791377452028229918476534092748627604827190505621758849487174457022667378004903007836312124765259011050375977306400144203685026821587180895497729753046605676882869698656851430849945436814173052767255403302135688257241223036305274385494935451862530238452739721639757260700745152200290283960881943144845320663932564084284042332134819006626801136164109710235957653122026833722292881269979898243764932709623281356290187229132157097194083402853473675002393546662418977659967343191745858025528102466406078000633652923203416495865261923588088979565432701860277384158331608191721038592681595303514355225252712491861565541772583120026733577104519940788826604784912616127314989583939647647998975363890701108686170836570245230874664891267583645074611863325207054780429749921291844160450924231211247730492753713618195939340796999432875317001655574222754014747324147074248671479920254980518381384683002595606190657025456461652822004129769524187481688197392524178592363281841127760779247877391443963913289911136364451100050432724442527012648461643616642720584853695121208133561253706094766240837296038324867640883817577851001211236940650330555624133557096218495878209195568900866080558800327697572268702064558168998736029578591346672121693388463275529906750479556351910523065210245907997908529728010869245038238046035852887450741122771183876232406633135364362843193968839277507788058506270966259049259555154329924970690356333289486385272330009169821300916455477594423203938816187077331778418456112386618755021496925555020674131867412764284966324858749486287608834506421888486867313988319923556652642869032006911612111074732366109364090962427255135904262629479470006255487850488016723676086599870235433632635574143316051093416214024475241592339464294760809763893613997906134895630749169381214796264122824115960057428571571859782811375793835228385872616540227981167015196474594035764489839991758136636513295254574441220204726510821898773081609804669310925162107352592967320522791464374918056365163892154950788259791290649158502476723781784278680618763364287305738201652439120085115064703080803815698198582862196185092063620122544825150429430767378519882056011472329800967200418376345777956186699203169426472771187170094400050894438921494757023718751926789735405996860282523527500647476010137023352350129756447559047204999849210868994370393942100120018257613415048475179841945013896617170158979317240420912561696207796859351524928344663209594287729927255177116760805230388075206339342391587493990443678874401295649687307706009516156213322923970926917003534413313026368466566976505221557773260508853426840084781857559024639829260759103075028640792642967503807137755625132003939412272463499299324566691816759688243733771473887692766568977128480589970155857718790136310685241980065936733320249454041423895515879579141643546028675965536479598120362782110871632209338617256148837427574625309663145753502933200612652091255555527864145896278894357697065109603975776629125922169874275679460268140074022901246572631261856334552182776465014920786073528383721049067317960162153748724547500752359910141043527088739645208794053073879614555343244320205191849051542706722101693034636612578308568264611767372044111344677915910252309590725730963396997842959093526933044826991418314039834157598127099067918765592951301219329776506011430861234615330022629575212767247591433422846142140035500486282705877897323439960578366843616797838219955846076423100366835879317120450392621209288018213870095336862584089209428748237154915522576355853478030646167085728935551617604512922873631872951540590917526177918135465177580272696769614096045196615757470041603317785507547633703429766550744342074445026757067714815277693646075870729921852572087224370246443116677208135087274781415964389915151055715119936670304906296879984472221398451203672895198584994355646497540201795940251550147860391405860164157280924696515111090776827635503789733187175835309775626939101778886394921880219280982549159879008327010364168275150601850368674592192470708444907848563934920426894780556984569303902194190984677296607845641049580911012881255607298601496554838631288116425071128805611338099811842604930062074653558416743035196743173730951845558301937338043636413615712629229352550999144700126068443565191739084888676442313265602829940033169466151147139872397227106678183464138921985782338413277309889512821353964151124785211211884106626112346312377769751335308653877022761846118392229927852377449626123681364202891566078990045609176076352127741420098666852244632934254741283450184436295692366300536210259048818945479607083008590357523127125980397227945700244153673423825620332796046850081901473430438008497792611387454141795827810310965284659571478012486394505015501973270212807153182821444063282178789051752966089065157241598232307984550371295187386532853384260816313325010128744916416925031544011468212103580311010278906814431650969847797547828519075749844507662789281750238333566844488377943766077415413207678641216616088863148779435335102222222476022701457600498535737479387465438599529300757358235103229987910417735306462702805349394197751075702440805300325685891418781253946971840639868443038932839119565038218522916403745771168893696007411479179311296477525699178376748691026423593129674643528374469397038346775114805457122362811781556351806285480714883160913721699476754060847149347743862174411690135111840435648584009292365931146441260547662664430186521314051397875349758015790154645115517687654019662474476887957218047820597921968002208819220520643107359425001637103134756812261465851131313487793045125862547857864596110992091246999643474889779437830863726839809518197099469227588519526917001450274363187154770781469310360757722869761644663303688480348196031599536090506108675414339401926975662432488006544814911259279451471377749412367572790087090595256552715732813311316874395901630220604048056823592046499110150699388200547057935500757359735838843649285796887437389050213953444904511131119916080929741315611213627629103651139416013076001790314528540389739943455539303118809608420101718691471035461739906430140540059928501483987567124783238684765463915418956595418856786410563071418527906643475860185283947318865614555971965073108676287707144723480634979973770539177698418673077820158047128063016303033481126067826954204511323681878196645529247726377792288785174534774112448830688414295856309074649652231718622370137355099972393331868831273453237307386695088651579767913532122595159879939927639701810508021208912514998424252852662374762161672689045814087697721666495120914554374803780909719376229046584942440898361419469082382093106668654380561620807517206596305277026505534346077675634469010418238985517457524769847434802987010380203262138196785005138928670312684964761153781825959386895372763693544563031128816612597669066444943587142632401026122365754338872411260544779405797756746440237163029550791478892154287372406937975307901096966263663960602622329857247034167103411222136548389785798070999275298054617589771334224029422248299003642466222569232637182804149522368403737693255643886280987159801731821612954742203382340945515483189222369258500150448147590983435770426433773403909390887407557123813427700191090400774334423548271061657790421553711765786515584969230177118598174123944725428314314547888800406617102939506754961967810652524870900519160086269087433807911083909799291983031345137232561077077714173490780958865338190920702920818088470246724469700915368828377824050289569644581140154727464160938471500542606103010534804309622461003342468483602934141071390656107441457622392369577589420858218896107410702887779697078358476242357696425342150130252123415594595838254081233141952202764911959806465752413135105154030037421581566758181449237147520196178465173815584959145987259705484209197776273171043750949929729524748613991929032904874581616854992857231964814880912353178809528548104603363496147628237651187807963331935307252821601075919740985622483662416965677827706537628319453394572835896615853925305017453502493845738687353374598912760736649706543532754912690779425838947544426373721135491640087780777894471256401735279818138770290606118056168615172967194882153747506944143618544713652393562531974706154325110684452865211046419116592013897619017285039004989121038760607487266490670602954823347185077913786637299710221648572216175072618205809176653353793148129758501622855060256718552264588364148947375900894379838898947546156062403204642072694366253108608824131205634643010865664375927408723091923964854112679865659055077061688148348590665181956776916478063495722085988263666528726702164980311064123060733212112022814439295554636671489419322041349621359295217325876796197125537904668110636703780257886011482175516906660932339435780798755902929218805045403868341759533235199375827412628186462503917352186516246935313416756407260826425057490072324738452229084506198793265181905142851044694591073525426903265849342168528631630223306909152377219507698208938440619511575552074592005073620059567015728785935153150315966731887077415586757222153824517397471750771070141860996493950514865581344416972847914911446156303397729862950053340318990806109300964961159185926761764420166442782459826872894143695689152469407228526353414628375538091076163924192542667439206070526779624793945378832294301510561433172189614529861536247316779914102362658635579693408407338972205475323987141596196346794183084103330462826292935711476394024655156994230497341243364770037263054811960444574184892671987521592350868674073984534754146302427675463104282164341471518268795944056021525617166868199688843960778447318794855376838153898506986430308549466636073224987814636125102449071320484012511914113852178352105730050098092359712231549346863931355625257837911551913179976245997151674008348359400145291636464228566441391984976494749603296665926988327539518046025160286353197363973252803986206415206562068803545796001443110774731158688456688841124157605202588567315516222282443375977035585049095386718134403865662934277786522733113185947355866495692661988928157293710817131127682598186051055734516851888396766819967310641598937042912308981410020666999501170684079593213161932759255923963936726335617665013110073845418489688115971434919391320108049526256210766225025611042017457830932119767560726454407171683319319015287794582242685770042190693172823834587695785128014633051602341593565284732415755550736125723239367118578587113747508873145099163996811692991073841427005954585373806547877701745192662127197351540866723029535209533945969233279253710347911896092613385716870601802081518140143199554285849194020405870681283814234719018960165698462565627684156589572379157405857531913196805199430309064135569257859474662164864969693073272526384814751230468269723236433941746733347692165681567108539806087486418428854456287022578755942473512223642816458853155254652029514281098829739118726018946596135073884241083321140901754433071180328235077660607734620486774996813886030189681738733891751739379521585741838868534691950499054764426823801472969611669463882476103438973033993646152815408398443327602030748355103728505372499018458864393470686592037881843543069583232352624655798507485229000475766596841806716428247018149609876008517312405010468917430530314017187041840722915631341560965953848028467323612473754765543731861320248995741697474599623431609350180768964258253074560342539831347133555894837336527737514246746797840068748221496677655411849736408011749902812444834795689587542848661611436583952753879697315730458930771511481484231836115115827198196985773909911830538726727955274951315047592160569070720405055004970103591800194771585224719766556298809708003189239595534074281200832621239919900092173496203950543322868966968592312929260473521250760159391625753555875943110814776371377804519858078939068504514023831085153682155150846073583538670733683746960683162439913958374365663171202549210371914057494411034638712102254733005717752811392233758351298571805095240908407263659004051454785814657011991425446732917505505557708374372544385857076688227352252064234143750406526569806472977663131590410933686366353341246819592457859926581808707090169660357167339043596076666758106843828338568461878270296352348279664540641737858431684956777754743934983157113036958297313100489219926989048136357439342171458923890990673103538847209802078073556142648840073843936989150151797728422828268243795117174651908726320924686838193474522514699727665238575986569999783402101240909740444161709385999172152025038643729421146194339063683893046673933690805634139434322235276767124963352794078887418798911406274696325948233194465576552502663993987831950627928848345198614840227837414807960289050878085413203912219025077718936180951114124674988418470276767150864067297873044829068452402444306191901651947471552215342491681834262630767398621473987635935551225377403718936202537024986736290058193762409915387493631139413050970423318565317255254603156760347973609696416328614715603478022920570222333476256250186608491931174186401067768704778819896381444579838169362847045413406718029331101977427024382764701311714634530847275036309439490879053417769659143557668225026074725843610775961329850079162419316028659658503099709728123329768330652043254121048344910015314213145576160707191312448244145894403079495297341032139085494215462034893186988311161535279141828429725298532093722805224918821693836986191236558207430122933347393685684899070738190067717026333205462408637665170716708073329668520286342732627072925294138334248799120687658140349697306642795274462755354207704505022591210874056121196491574654757337143944915453764355595526511708746062804106220064509513181305494295237803091393648203344229420277299708364426250962640287099230978573919353674911620673197068151446893275731439447852517173097095841129522889221912858709604544698759728262859513644085091213340465712393463283728715356849513710492324943490549028332140037540144877804604792190400808526098417309239370196526244576934011382560508391038830381166047284729818384887538998602382830210499068257232748142303147225829033432128403221725007694356726880465405431309948221836723991681084521578735486370246327811613995822831045200333533896764767759685555413936179309999267544771350975767354721347874967817202986152812776646912837809465215868825300350962272443892311379924878536437202573226214681714722256576838762621722149605375409967804003466606815436432196565564072255823102043678195045401899810997717244654360598321336255730020915039080190135072908954912212552038494207156326216726986801982753771135682121118399538431165668146957304170314039711039400067371329710459500444582799776029624769918421578124922958958503069885523414098599779413207051008518717895474500411383011743812021051272126202900163337243603437820332426066334014009136595089334354480823574932771592211126879939469740467304917843406225680650434886922789239230061433419390860806350183397930136567901200970852519929623797183185389853130712560434568021114517055740572909446934753857345916611540044519263457909578405025033661858205226491366243894516846527687235372322441272665312922551587944729268362574703543634536486486709667282836054661658915510279554428626029646520482453341768223437480532181200359690646268685610002500599053400225087740451408734006751171835094174769518718248661799389861493722790164701355889197619873242026837831883357414020774327893654669859763824039848740758910499475378452414911641046331898892742107715291100222719225250070298661191391193007340326902024683148511669919887158534243300435359836705543551347535275777569224325477888869975489524331435070772698243852044186704591564582525711553576312376365404356948099289606273006109233753782652245525352762086979238510553645893473548914305471761347760858146140875683865317755940510081862158912061583790784322021153817924404231782889425603075290191403226596982679644020599292748982340861999140195492212251525636248733571860405396798822400323062398889369276375773264410364333305130001187833881597606659531845997667191897858275117529148191148081516455892579852368530709681386057030168168851178435150008689597325875657236858497564548712913072295859119235698593098321041816188147382190033511656386158944504581060786771411966989377868522454543013058926009751169465498438305875431527382725186812781925422724462015232282597013668227851761670535900641998073081139608621045393095515792811068238921848418595798766748620952482288155378086181989133174085382775717703045846664930551663617667448651157605418664034176768341257912486490655852285536496987878482047244844024283918834899945311417508278826985786565071966836353277609977184276365368294400253668372945868005407258579363044655901687427210132548931225995292311740741905557567209829768313007474020484381246068770657724626878345413915511666594350299681901885786977851184845829175558136501094011403657264395478581803626264194219331337601192869582227695556498425966874507710852165541813831876333257796150257666836436135303562056125082560964527464605227653011494761063592681537922817608843728861425508263737942357329597749844825866107440927099388679088086806030920026853243784329056088207034183768388107996248366681725722140223875300265055226290160772102403951608405198312780740096802468233906369667378874385135090872818863072838127125855774438257932292659229024128302766112843080487280579873049891502795865388162389742472423630269711773036364588030188876519152214661401216164000421225701482923400388640822224280027080705764180049681223398462481152252523791758541116325945540739913939803578690368848125375691832287126711161032727111357647511328099031966194336557892162039379806031650598139363235398527404532128280846100815054204352780529699699688058411163744845832655485166772012848923172605655547699680777693961797913774693136397080604486140497594830266748959147934916706967376429459633826977526560820088717872325765998529148505883385119084201885649516536503427010656682738301764333410504497147974992047241595259516794556192616386131618764580458177022600214243219032389952311525243330556545191710685952598654578232717843167317248291208078117683132349091795428762549111955506159078732772836078261010536235421311749835150289966519340864832002478262390775406129339741009846068927230445635580657061848728804757669197496485841096242369306149267923170216442496309431178716166958702986918933621684811668782397061265103082054836155508036707943781753644020604209684694337038815787521866053596487661722385979411215275222371396100397686662009084143496717188797651404916094702206959899893120748099658488650498053549339440921107561844000065636686039150290897836052748778922153538254448580441652511297017261635201147657401659149030807014374538550249732163630844791344633803652264439793445508914738545206920041816088344298734323376225005165413683335771827391639924699938267972438409309109872957242666296298631651742070407575689609040532562952859840808810642790479067262101279393668337912573997100872815510545460318101509069469283401949894213058946791100002972759753061127315335552821590987500047515287289795973880871625340469476343496750906453223788753069521164650680333357396065384611318507631285988738987817030236823692289657997277630741496325891185231068609989099138820820544701411443408205969156460901212363620722644445125089427937955590390369259172739759447407176406648027971280029408874854890788866139226024359759487885141108533971833639571065629827993541052668720508816066795315252949197633131723008146176120592522883519782823900624996452988013008932011917507478850125316736113017969230082289649680650779123135749953730941816106370385015986200749701823824568870004823591812762949287553603251401720321486904845890587516704497735992937773210572288107177483237527738805078609300379626577787733461777141369860588605842920256200779020294628782449077696906505125672534768669740283422051162313043306581720806102140070746623927465165114239631379007556966948416344353490062993630581589973485422740590328520922352952906151296055966941528140530472258492566749016277663953676874545270416423869460323288550039247469735108336192088827495600179943226188082331756911028025633218690533982575080873292358917697655122419005788851902308723170774200116034913883061080079115663276800064167559665817485235751928741336000075951568178009492875963160779850562999033743104541645010032451669821031447874701575304118840937097998223591497887569588591706607597716023879796282152786442086391104643632565558510042486196676555466810033360201367683034767581592114288533872434343745134617132805486290837914170744624925496430752892762693673717815213127879765661773303377632050166259853888471312515196663020492874194338001776641084597860877071230958176945665028936688198860624379625162688161664897918546672011110827068889480192379167516604230445433464125327347809273101531848586791158356840284082915196743510775212700637823685941712082139421243405900689135313585145118353388936136330599013207358639173673930899934062162715820926649321842319843483660931771385943263381559772628599297602416156024221792529904292119450166902491185849262918928177626410026373100315236972697972042565920196031843760509876945674123692460361573283212466822209498830013772360665039984704581336077098219437485504896774388093744578535731157185151085328751489083057442051393174856651036082385595687257210908929852581638150705966507197257818176084778822115716429988025873590538712472189288419312427077710806720822087159568144226865985633032438206815971343463530223628466185988049175610102283325581941565827819351777445238798748882596134193248874324562380269102851588215277280881875706780698820242214562658558282761680293302838062481706495592961573850027733833657388454066741682150862218346392690843247681077766682684770480775714455672227265414224097933422013393730707446224538439081005725334234596509568116006446822876222840716965242236251374846669904532733020388346516402305491189088347329551403586929937193405268476380065321619605498549287144868281035932047597803127431677467688921996112658557081356458335927133323701224492417096823769836731880835166497025276161416395088467491285156142780812967924376849836668348735251855552517418716370453079094410811598424542088341171197559858693340701014788354760304103589921871933100796467521980726610564923080054066130467728701113129201841453256869856948651620836787848475458320104298885903906527420719574000054940218510538588864978521003240964766972200284494066255558925324985549698194916828979095223113836852712901686669203617594384698505473024393271732944873488479519564060211735586873937765008680450261786546934729055048640800777771953947238128359531926449305027785094987674872120080038493803268472579607898806569154642113262507719477173465281549183730580584671303354483403079997260776919694700137568258092197066935884273302588945309724529879760642019909149683625718219909994232795674351959788726815391866799708777046115322202080725135050541972372276160799278359812872146472816851343258410343582452453222234695479971539828241751260322818171055114740050695514587100296032032892943074853746312565549559752130866065470492465007227381182108491238635494858750761280973669596416633987029375524069355090189457489507838897886294584509265420180030599135273079579914883739623770533899366075496948485942254875658940592536459357493023292159944163199871248291334085150724930207570383094236429869020664368386328526294763125039443112760552982746763528229178763732240918299070764687977229422363816036198361080245453425742007405942649222016434880536452244798134673575521920653556861644901865737894132254348051533804482824002260338778629680257750491068436140321415093619819831202243545177446017935743087788222348250306294746896406478759687533630481940588290324843224197598808868956020427847616149670917624114516779240167381028621875837123731255875914781772483609968444541874784688422213838479915921936517093915497913119720320413171632779378076375090314707711065669223213310007039986230569774812885230842236000045416575817894007344901602940180971491718212808785367117769618519518509549734740296526845377929089888360927505172151021140229953992158254917617225136226357770266348503196243931339491119506817752649536529262767038824239706415526106227630482268824260643023768129668974911730467996890089506684025979617292558744281361749724033084600505613390078526667586542670979824089736589805547642701608418546725778124841600598386539369433090241814131007161277047567986962559008828592381156962251674649874051339649195823744861927728681660404940034361930053468496795371173521997514995316635260788151567438470316963135360712785038386964500430243532304119139813070475890914733076390962244072664689803891218429238459696278077687291449332422908509957715453101493600644263305615697659924983899027077564362958197163800976394236619811438193553760816060951505592082415530711818885939559449098483051564931207480067726900367463265765366167377693376133696824518401019736911388462896898713192384588882589629535685515284755477912482197321756975785162421650279660477816208819258686824683629634207941533277915445512520247717522724328620697250042634589722646124833981342199877253558092285008004818807476831866341162309038597309923795561572773036055470736731144810360751867730816860665271687444531121030397349701177413817501494156397637277981139080198073561154203386492868397448080687388314997258528890724258130048670034960970724280055143224402562121721862450920939213177575509201842832430188629805883431691695325271408260407143656436881578051975944265301909691883240773910387104704803913767904893025785474900279750273538605447716519467828385632529404779675840168892315211521036523924837699689242029786504128347453831367655735010675883403193126831701377866774641716760073010888785255995266029185178329611561862150804183396325928853972163924152913763512318986697825815807247293461847475831687181373794888783198886785633033935157721238928007131056287293479245267199571042445720670408303940286119772794365891202811293489816610378656523747048256994042016270878238595485397435847771164909508351418816751500670551968142776048570586696279444481121064294254701158021530527166455891028756953566708589190808421148183492633741579288900580811961523101389809256521912687804821900414326772561066665446982269181683909824964961212231956962818654697139248625603163112179298530396343341532185800570739319495873285371742846679381244529552489817621700536213791635310428710678650200188092347348093159057584388832163574689305592834252547672773828828488586493355936935780370627830077667174585539359710620364672531319119503471406994247742391088691949812169405816865043780852724506946152614315045191354454949342744448825549014263754364742450830040717655051477647365742041167380722070449173535019395412607469002719514842636071471037436649314156441999021239265838034463320063077873094501795136135995753302490028112779068806177286087967259843034308154973831734080156511643104598093572903873988577296447323391567356925905363407511709283252902586520484727103380939664299747755091300869707264918284588930125182947504800215396058738125522055410366877889808563666887364120219057344141429529497788137684693487008211680274908812213726297164072771041168443629527961486224872292946089315016509800931626731789176881796730002604907877552691786993836010860309107411168797419259282238411340062282829601033462819988461172575750674774327468652895299039089515627435012338013887325543202293539491486732831461199556437717911290627117974257950666898204999325006087356624173146893574617619782672132445789802506413341897536164228154169710631501982777919229603700608348558995926185077894459862781468763417939781641312852297825892575202886413500018554966477938504769115661200034555680506341171697316830653363041771234662260275807712855681238521268491974314417976358041389954189265773117558791797242451983404013863559696848639782499419400558874644465517682555545667425800250959107129385768255491085735776592446071374363841136284693722087831074792989720507937640669313730743489340848963356362536470232288380295344058923662881044370263941962286032691157955474820271712697046430071012910186848989558210965242833268075954382397947693310600483549851589838158149779048185587318729183281510833030503787459516515304972178475891160947370266886860791587771072277405743776135561887143248081044195902834729360624866253889583612957165187852722813966064396580794457084126581980172546365237297340096554924241369718377268515235994422490221632760414740517925862116857557136177981474946837647867195358914077722395723995141937455541094442899699823913107974029644467584341004505765514446053085000841767746363217319651741011748218068941625926079596475576447794412746697234576717031266811401747273734955251059329753566164464495075996074855215296281230544177128086352792571901500593716504568222845688752113273334488961840689435223882676537013677705226669705170134370362287138866602347366483700052252661742045393289856446915048846859154153259279714909735170533740742026168377818727129993537706009843500384911713439811571454363141057950896492926648793161125995243538885846099329145417177208027555158081625942112429140014255676129576497762575395826049599559273669753333053378335344565034214174953907333575028996915180552391536335567207586675903238189049171015933180295626854044237838662324914008127361583491195590088686449786722044612410985473454751372364267951732274947594449515878329161592016014358894920148520442632498295830730567615659254689328427917960996957674035770787649894888538695555494633158273513189714363605162212236771341961392545341865311335796000985299406786063638332994649961696156455352479782133072473296081215203683256296499198882723828188052881733985167682356516319837340537504124170669313516990465886122035279804660112378687509819923965900442162846653242376211628551005273958048566820962056157000231187201972152485235213517724849972056499838676521864534293045474120714116700813463895493198917545257027406185100920603082682515615104305174207563717666489014727764188998192792418356905739236200236719417569136399536577552564058767586173683330738771092455953792400595270231533856694506463011713743861537493713762713527178066674366977067894510146294656624155776036288615819044187891622086981207913306730154788486615348079707902347958055592769315798393359501159639996065303982682659287291087970234427739203889636812798836482809984296135844867982492636652972269964517091210857571822326925191844871897530278263378310849852987321760849210743100063539834227953022245023724226234590138697423703259428056237848869648285158455837543786839161710819660958001859218221294026006876640296594312027806315461048267273089437960261107062504664599626142229322580893130768025266305539521719270282317374714821115268227480706960462011296948812009828948961514360558112058993504212707841916032285267497089711206782943754408357362632716814582483996103121934454700698204791643350790353511221277291324007131724127697854560230630898884002952062293668309274690880316553735683041219363093924334522152509862184756173931230160185797301712473301361025649863013150423561935413882791177827704374730089686771504828932238879993442160947917239461765207846016242045224101640321521752540767132454700045678506971609519478265885568235376034977318364800780234882197366157999854853342511971028329736973766311128623320812346652562020869655069821585775940685921145745912807476829597881583910890885147835843620330363315250599308446012856078158262772992002435210316556637824987023996718029393427637658645275248231940315297319254607604949617310756204729358563102238275590488450873554769268354931398739245593618367239776350873780363092457829970625176159625886495867130910693114641156903220933425974474879090219820849685136155235334079479712998833854539899025686867186107296189698963283186705181913721848693786794734668138201606236135500940146422980472212112715624048733378835178054896473269633955992605057954709786149747353012538036928223935581472005522284379899067316714769783025691149978515094472732776274255123492190712994568032853023242462813771442118810815152098030870447695314969511986092524821778768855842881582319613670191360314283313069596887058331331720530073360242648849398475373283945648789576448549198289400199163853780045896642545516403672959412919975147410633137530120015483006434579497089204400784292067534239869154207606143495088039763403389164792778262113728074016461816273480636742957659534772328893253561066250781495480374874769716724074568966312210674082865368710568232379791144061954262915517729435206911186573817846769840437243186478363313239303854384568002705814812590634470385482250380767239525518753465530781836454468829371194866722198303538564710091926442500995275614937834704891447719833827127140896493234617700805108564964418646902725567395250541362033056417752955843484641288183888952763526898003889657661953407362302647695225814906031292024942267790389608038308996610012447076489787232937935675856761950147327708179355637891796659908195275625632668175253244012787313433900141740378080853942757528769065541077608312319660992618625755520802347116610172995169630411747763361367119650170611440062328440008898687132345350158289188475929028212266309475896027444609974892388820604744268918059449993949757541226748367617237849488935936554349796544941261197505530332709490584829990283114219680572834880779174127394345674414345318997498463681025723492770625654789173890305207603414308974274494994939109682300573536233177201671611912203617819628183358804497312291075425620201639470907311902365624315729726265067733854722368796443796219805748940551683941239405530639627499755849377420404706528154924313401194379731726000198409391181379293768039486046416361553070828849491095902555488456340819714589455911073536707937893564824051744072692636399886134527564160996488037374059014920130453764621444282122197592248906042147056303472116050364169640892167078326335269966112765784390307899443237990114252139391520030501484724428202285810035023888731730415770170941431697908018424239493642911834407999365747902415919560699902986176813703528826398451381901324361123735269511441966122860067181969174814548949933749063566467137861278932913805082623335552481759458948562612086544541082869445219707625292499305498864255737027636411456939641098907886211251579685558456871444842231801004438574366978331235071914840810694022106229598361988621337365945467477076016913825169319031065217526473108340939501665463554977843630855978468159359904203967302919116561088323917926228403481370783034439659362642813616106312275026231571490196602717301687821286935335789227203458232123534195643332910118515090659696032728713133400548163473024021803724266486895905342185698190621369202753270149549446382604626873521268231583462409145431472554970789085056376420395849301156300901721295120889356304834033811030768399725726119779780521019555826962817092207048556996487642509876040205696360996035310912547797777593781613761169199463065403035265993784892555127811366672444868443265797121593752600889791126433746281422577323272435837910819003717250290965496451900662157648203861321853983213879210980821476425927336102977848884998928009326259946440332120342307152156250779912740246131153965963509538937477605247107111778460560353832447168048074980736569361588576797365818303949411985762015190510317550733142961019153099773170630402304790098105616765969627260648795805416982946456902652420404329354499067475668717890525433139274167833726899588271745829979690732812888445413041977437584308411234753445240962423117702803984211598438036110046038927311560276728969547199520634204562461339154760796949839155892039408165544885540036588211223381604673379263324681380964955383779596659708365905221497759540522197819413921475411385568434864970676350858154534249077770537575504549221827763967835454659091302708282747249116263541695777092351259146911839438105217006047660304763577481923054385228459446352130871182667492957165002627316514530456506803255529734776797281878102150537580476167632394744458143382487241350766726119397047323905208674796272782718313545570159933363567419799433385414897932016304700879338068915016712991479714581987507886480933577252583708417524984427598300382507598839894937439131774433595865819296114145765296244654573620570337281336503998415743500764912443388237472909702874128338689670317262225679776421334891270301662101688844889887935934925557446509384955584683722559327205396340518058379993570434690417748975353964200035569878826872383065198302407348946799552362410523781567034100038362421566029303794790366535047238854982264865513219698288047937689800648980505868997404083079175053746238946890041092988269209279152048353312115637659979304533099102243150589389341516582385767775353940164221341673562258322028422594966377445934580339545937154036273072515550229358333989216016276027593537812489082630786543795424848268696448130436459515323043366846548601740641563056716114989186190616428416886886813434484826283469537891164708303418647294280714929861216537547336906656311576906477273192613996575855028361853799372156032483122704581638276120732417871375508174226656114679821227460417402045249926421126785973542793638446637159200181811005912560336909598077507585023340895228807862760870858326162609882547795009462175989246657843480465088548200163893539675679054398792156014959127522228728306045893461559861213811397061847734775141088195391093047111369928598363535812497086079292020124813397990605247423527407320392991816561153301049867016072971320062834238064078062387329038409150627347828134805827514142038839005834648457026528118754536755544799896626333248925382412332279626381480263766497037269948771347319412736974389966873733008077064625087266530585563342669863870778961832355143996023984394818589172431699928246571809340428631057767946446400087616720842383686549845961338811531920128506932469764176631802172704162877893645161436194139447636105845202341156648265871256915237362568025987985959358012294676719627008026834563288712734279359509479118558572367960177774472116880566997744226366485511860705352169778148092617835175237179653231201997108832026897419135979451964563872200739182524306581298262699755537722574643873527755814021442515090659265172870313132259354694977507258666373388075421555476888636244650885383259334040740028178702395675090993277687046612206003978867181889652536867433059173176257195601608443633325932973737570723868446256689546540450199978625885723582443109452679257580119954214520415500877061226464510954499715913697175523897761670611067993328677085508596059601054485552095881620158522348153420106042907845763502883195916730043282726162771799541502181901167337825757358490482360825036623860727099409150998202094930790241054431883022742031617685400374218398131843204919927283854764005979648350455979221952458197756956376983803572901809598100587206196992285948983360839138273917847939311000231853928294745451950654924839967873112367444864135462071265696762208039059167045147849533525907689954446234823398037139718383858566957113596296907944487653826842205913770420751775496194003562583320221686291218212272517855581630839681339288795101182455313533956846233712470146189794230814290142723396810689059353222052278440063057458896889640506942153151487457565039848739043439772824077061079799694924955158293858208191152108042792400073029944138998512908037657878610048479313622226405096548915578979583267166605013687437261586848531281057327124098863806242391386628736853355609006638532564586486384681762311329320108754104044291216834779474774091260732788842416682782774851479333466473981682008491123561586624398627327701624724238869669366916072938698244975586681392292046909114192878540018609717389188705602654850589714086616399118314002750571487906305573443631649333297743692356168158309630141274004472843340788077847857251611532532133174699594664492488448926997458854488861815635629651250076845544516064806170662694360005498315331000253642782925308673793595299628230261768594722566680399659952565620912272648523786335867265190589814509220488281039233203164621218612890637829474715144926457680973503522244171716719718515814872277176287702328534619106929530075604497257294300449777478081658782277300655156478548158696540716383183827764525022725646681532885774766179902566517123775586301136554293539336998751468151463649672311089190842205760788927892169768952273028279792225084757141791968163068823219752283269307595633375077029089620492900109746033444031914155952651539615676889822354554867341983540740861481953834472720717866222940690986872188704063069264211771714595497373601910419348911397177974578527947647902906295114688149713536598073708588833582779236698972837463677025436209707240461856425922395172605559638058673416777805917081817210048870381175538789671763856531524350486542007975723697493237266822859343465209803391901563236174294787417363942196615398622375027278472987991024209145053556748234971340237308095057408549839419636847191735863992434357971269830628180078503883202743697899134121208421374842480775437339560545868390693319053891442008891165320985615792753478771784547859281198995673151994081065442359363518947834857450491070078757902221236332149087520102538912464533685998779616355371192966584364147233231244579809699857830973599774060130606760346179661285379566463233815823407939283356151961937619159175926061609675647568460329787506165243068525445815469765369211008236370683518694564066850900296874790867613581028712756689167723232447958100438110300397431487168098817733724114144965093412988947265686297387541176317330405441477216467602486641072983042060838850364253438197684013534363781790641164225630982028215657076850514037417968924611032881797443350258236680802420469312142048801653087143295383356582847087324353619508800672721997047408644563130092921890403179051522858807318844243229451260560213143530285816778345496664735970413916705612748419990230376878845142504457714573819908010604141311734658066008735111667655854315257868678186882924814264977328426929395491578312624584398298940649466585468411912206719578093470192413314286005057039165918144952109223882314237860026183844653825048577044524563835898708920824097177278925788010050661293165952718959729914009539094321880877208115750875712948667518117913947946614458455492006945110090929912447106347824517650398675381360666776378713025129482600269988229510827512899179527152473970658651273348039263487405963716223529050512329088041996549382252761210523997343915467674141446595836055722734464242960623050234346286829851698206439865662960434253463656159454407965049872831967742168009959683975907107672048166377532417570028672729029741716527236870128612284598020069051461054646765274356479314966518592282909741991903553611309791513133707152855917572321473832327294841324624544516762405061947288574941110111178075883783998606570188470852872317493712515947090341100576499187926623297201214550526149535297599040577385485722152329156314611094777153448129266367505263071653638988134128738540081233333761257581022429261843115168121018856502067717943629729369398376495206911128543917957511420880651167470308026356458712046920449496883507195124288669671382811256605364650632762560113921167765887607457779428478987207590637281278366759410494859887287420886825197951720432104822249067611333373671158662064189279125198761093860449022637125838679853466522240459160478059604496598834971077795093161222982060807142073910954793209341286280594995030904378042640426890667648628789763006602516101479269603337201259024407627714617528456609763315218844693179768273705299589676987114904670960629054230430713619413596404829095072918658535921689710203246302172799910272073905097342212868078836575644936091225255263333737771525530595774652727903499058490858990985615056528078440590306096641519048835344395351616227525051510950680965571165794812624852790879557721172018342512474682275312853891518556402779088100864391489858942584642348763870286902526702791145939974579234616486097917199730501205183005948018489300991749442587771442759633671741043352487669761728497057011469172851739349716799317504979815626286093853337225279638270276262476790507816764871066743126213863584738862069630732131254848963689973786791791859768849055727266169177379304017737653011285684165633577613948173022172352871171018970933574000789146802697159284217049157640527180149485534736619310202169268897546257459143239925746393228331680760145122189903050272215345660303006343637753510062138821891751938873876617050340729565517078571090797864202497632274520801036917200371373116122568136234847439976507254191500049961538333875757479075212436195786394238227475580274253024098937199832761305351384776718629338402308398512584171608666792602576597596008760391112042505680789582240389494780824849255329394083798249695691145824539715582652755843919039781265841583651057727798389053438737144631375188378490292064082153295934165216075647890768330585671642629197802885141593224784578621481684592021297611563568625488213829363345994734780790983556844439627457952496802725212128895210367664697303232200303450241484592432930293283666739480485687336812821352914495605102888645534279563051188167069138114925124341226566149977320834378748012522527359338184365018893335637559651597037798271392100257477850935450046876572366976024885140034222552941021616799286801877163971416368298251916981737676283211174752593312963048724208634729876181054319932824120387229533748291264708393083988787236039043846048000000817530781520103809765887554054825674049619340665454780197562660164713729440092538354606923848330232938548833262962562544647559799850601361525371696154777690111271686488373356993228539883228558327103750582394951572372424997310672131840629048218437200140714828324332438758311435985559323844263669730560465778848294511712522641624971866563312029056923368275604998561994597860477651563747985062488502649295468587719334639505946507283899076982659511492604839628438429399513674022451523066457150645763442293156831161492651361526576877856703479824434535447206006514178980168158995140407032554005935972279735398454467145361875587651444374284694514928589610138397270248696843723806516742557254626917567334939412939467964498309085170019411915574313252110010209621426327363464410997834085271825893542278985473867897872874462686648061626047990621710400640359860920036391495158753796242853252479072778608760829216706207396305042735818915198106571665458896271437035026156792873611787411161110051664135621775854940419838293773275709441265192070033768180919222720960021489129590239577360836336113249438863320846328403102762109209369651125420840746569320161893721853101428759790553298526024912458356905920703730375961178197624537303738273585305270654257815492482252011174903509435128485994292340294528737693207695908533172993838249663706084183569707779747453068248761543060896193262721948839485338653694219682006809473086877937371368724137812433234576464795449449312275558512192319299750311379530407012819451871164193276592339241124462509097763974490402159935478679124304867047781262770086097629486040504452345911457898955847054762094759025126559732807966397106851526680593440776063922829077646997826602725160871864305216024239402149719135569206891697414885676895404649111957419212479822103401656053266827809241630177097473751712181310642430612982650897210082327634624411044607270189944219142327187068162231854604798885561336732058511951787421261288291897357288528399994441647722480751285237820311944269674741597584636803417661178939441334423018414304490563095344829091354381111019130405299810403104220337229254801177038606128806173315315167959474251222480440559508927789235694432715269612181193956563959038884370044223655963956015022443586767613782055300992111548930480652267009726202062104087876319700501035531502593857337322490732896588216428803509535887242402033111630503187558577249565831861936380363863798913151437551495361578507399084438489712965786767866842930389703809541953677345099527890663945564891932144637513774847634808151878403474446107210230135858171133483882228329732236998937333425372058206736869557680173488040976268965267558153709716528926206886405816791945522456501043893821246414912572524736006453377866843454675012756628769892751847336438427799623713468637726661488920461733743985657974092313516910828564046705881057326660697476032507099425552969474989621307009349940242725822285118894264292070525117931195977481278487981680842627374094524530181063576685838137594160986438453219011164191096583648651712474864650021790128583561349939125584556753373404981119039342861508196361450592235759383777468957957884867869468303409085171960792560785811245281186350492267353132852033972709190264739746877387540640557073864826976808615768346826360643492029313583301172497244183751436224737163851337679725785157624860933781593570668344441348456937619389546955089580372919419539435244007761728357419844443461652736855414927060646690124559674465733511379609568994104093497774935510412678300513641385860274413633473821782527098370135357926329615263364486404156691370945730437962734424325197086768355756680975894924412565406643596459716803359728542238863509476646514720024584423424094026339261301741911797882850960157743490902788104884058245878215718062344538709169572814770462009632352678305540740397377550981201297568559332377765170969224301613866218712912782815049446718922258764304912326028591740085382004522823980948186874248216368374003921206302274369778519256797700476623817918885495531882965012997823471751549639334885490730029556366337094510600636835230235655254651058174445828669067901042146471893502215218294200122528406352167345260942832979105516182380341254753606097257012788870216896517912198397275994419617829650030755880733571082273313903444728921022638731205682618721204622995524718857183578505405999316779016368247732724288438619187437441942702312397504013653300305063300697672937870461828869646347210835745939264957067743528192763184250659483921942095054076889256395628812211319217852756316900399587340513968760051168580523267039254078323515371028773655135928228888777871202308763711175426283930832708062200614654826708500101555116186558329751909089649391997313468023137308596086102245458403271354283726994315211383892171800920314049381644861531262004482943528624700163329392193198005295325532592944002225283649605829904243838477287558771975925817682813672371633883495968207625828468999761417704009603418166808823944998947574111273781015543668331941766590610183822555727299918259253592574621037290761863200060207026469815614187826568728418045184464351328488943526618547413549644615771516833005363947296092926554026991040289459527452597404288626795513229625041210194113690714776121945321326825511939625217230698039816748089948583720585265629009036774076573642989323810401250888869867838812826872837050665887867280708624928932028986156054403361108973783157280360511384329397652408600224011051811940813417879909197727129705709803180778567470465009505775423430111268251116471521403054907306614957299148099939472782980253847909367027977140045428588141351074926573006271311972003453511136239430372252906105349888526583982747191526782887242550768242128208570677872589001084518169762325403135682500936457265298199698942741935709380993823466443596335408082951847087824518772134429478674642568665451008523427606768440841953481435724858963809873082132379919352057204162085755117060682689631128195479460933255365690402373874119866976138048813405453735416644848894251185548851373580564552769184676988395527595975017546676732104066838820601338783905329295471512226836004345444121848431105611930202203216562771316284446934852993289552277938661351830207442146013512466064522367057109745366044839122967715288020241652217626720139091244612202795097518764405626377812355794462995638297735014596121616856455659976033180288308466917823189201062834038480336781753100636424414654115177592393130840191058004580277193248657347893180282277384384646354564733791624854045246524779415019614854392359795094103323579190661442339369433406852551765472687268265137102388455088632064576174459632412617403333182106997287088623567691105076127007843815815555238835872383575316808129818335583540729720824346265192258254927244997474584425195287094269344294039227519284882405794746999667921397532060648487116407635327597917010340963937443940597851186859735968660642402757840127749393953495214918424473057792841393913554325953722968862905242338592382867980229269773557917504481032012846911493119446909123440348585208558586410700899949943589000927348769984668917989934618430749730380471573725962926379804626812181076859472362312176461312159012272634339881655484689470508906631671570115642701579555780864036032681678323154455060058724404180278293922320563229498588184455840753438300335956691930592215977895669636493371788212689336551377965854824555185311084815215157204964168211559320758073257583039452081654323307920506902628296581436095088908552528351826235579877144139402420369720979366163794337374800718591319859019034415738668923579197124149557931922641368170256623655469058269648308746409458173838085793830139887091538260532034272049723998542621043673544382167966513430111046426987099485545170978258860553009146928404361598869005807297149916230667320917135768814843179773941726998401605370095044655457679464076921188052664789388730589794930121606406452108874079626267467523016322539343119432536643621005933040153760020421796059674239614650439562456847085018678824596696844196466363421230107959542661524972639477357979171121910664615878905733498325703447925063069878181325705851970290659503151543508397652079712059462119987445834036825416301669725062485266474309377025214996914553850543897830031872867103870663348300662576560339280365819151487330756836882637704519739726576608543136716933448591597393584303285241975242576496796187872741012135382274364801820744669741874808794659971393761355438955196228302056122373035970442875044974675011991109054051320876839575897995608216765627355087009991672632314626101444670340384461458628138860757735595013323905929440647746586173538890126306321903633175953025339716414152219013535711932032067413743635332504660161079071563578467856366505150750559271964222746824345269412584345468323806211345783957914201391833907091454955753277618104532586209803813184664597574901424012389761060678513472194801120639637486248875566160214103481224345136598482780454629812427088137000883371710892215710394253240328945927148083522661190570180873042754837963373027719414543583206960865943795832559186415489117160013962805410422716253324511784077846415590303056425108515819836522582080619295191840761079809446580088224559528623736073927680644322786246682593649717422604216151539040513748251154131674008272102603129071984626222092309729882787898355812572034461969326968037754061457495349316383446494559145720687790991072040831883690551886776599815760462368678761921719847328488225265708409996247734191648661570004614973215578953822514725528741861619297153386286868595730420480637630020947377606852950928402677950450064765793335352126682918018080816508375589779557182619092179781573149326701611130835702552015196035181999050664190054130510511197262249304906025580785957171587319473042438838065270797675791605770781374158065483029731433902871337017069359189453938684015758983769367200301973260566716179466107928367094870785638709317712091397281778023841526306701466516619421056426418980424574423904338172804402792781527726074793763785752348357599159960169132743043234131170750187158196420569332764329946429217345521833842180290416066267534353167153890480110386866599897921244186965308878963379791318830065088981352377185731305337220057730353690610701146965635972480507169272305159437727270274589955518032832424633567664339130551401637330546264305800471158737280878440435778570810572711316024256832985978125458088312637377337389192319000161870693850342067786706146881191222786450029780154422524485405884345489118357249933272804194195133978076016155129345226991791520068529656084915032479511275069125542984928791218072567604916167720287330175265658664926878169114870005554654408005134903447920404974527931678619492499951425428430419992018218313197151193062916655713345635416575293361805663373645830814845465871014478864354470552037673643348463310769267132722237010343381086692206215077495422301425442150961786581210151308249943332325415738118490556613398982714657760218513717347859215715067696369466704619345772225690532705720087753565828114260935270749004612010359081184105152009281608696568846470585751844406014476286373524397305398224599871245320946470354477639305143419075898643365451705034141407587927188179063425623370858939894696538012019644208603568523467059299224416977172781276523802859370127849172695681913265079226669089506096791265821641308245318580455765331739787176081748521124606801278512119926996444865511305983324139142176604275606194345080558908588566163428129858953266349257691100603689870225217534864876282356200810684608892006381524943537998230323938180529309730317507764536510446734537880860849753482482485735257560619931590997371827090400471042208982118339388021033741521159067343460068921503144060239746277677577727315355008650953713276867500124739753560911841712408716795664211475718897139833751365706137540837825204047741287153217551846023271026364665697794052114180339864415676411145545555346794025050374612096719671185838049915395334013176715371152299128096444298895200925582171038614993197711894412519247648511121490655195961902724902592639383392008210471632551690516106287570877391313633447600493559451809604053989952147162304564381061075765919858520408977647865643508834472027465365935739789619182298102164498248884686066865303350579759816692055299023006623189255341840346766579834571452010909267124827127751825869734660621908036076165553862289694831387351651241637369382297084145048035465128249049468921427050214837978577795508542586041218981611330319551639213783559007615000801582127649936915692236889993267548887914252007314108892611874171708572768369051803569669159367882982391585651307408745362212353418907418877256901018997606929525222257084333829728685390121046311323206537198317701358208616363476368204034625128014175284881189401968245238512255902440490753877519823236264530453257281596430303384967508236497831776625170386184774437925115698043477407189552850027445181946003063992313529498543102778233360648500342727668983246638393801511339895737955492029405219182384740751653595907138063163745361564041917127851005288039627646874901206085158643271687453548589614189468889552298379099934505862243535217672268007366559923549198985222489636750239261687570604915834690665540741314762078455052877875940682089155523206515088535177576415188127058595013869090171989816109779079895539241216460104316624197528857680815826874545410891605036548246909646886566643297408312536071507959736818927792755089150425338143705167525930023703210853819552690382902758949360458522189600859346490887567911244237929817700846580167174544915999043090513839548988073634238682853238910974463330699174343992428331600864032703093044230615219153717684811724886156376959708134038571597971131489101265980332613478565682895264634175850422029119129891554886500266927596526797269593311694791976615196170607642464899597245535948878277696234511011575663357547874492413491754222668010435303762920977162205193013680512204812300647335802526625425188584303759038069961805688380118230657444510940405344090512166121748854497140414728830139553900364676467498464685119710557678859271970474446335140054179917397962383662513916613897063990413455662712850378586429062919632915793369470812967649894871987715465716417106193332010463820847654005279094946626866482447522840616566560894042063241480251635509282457181474006434055063448491779746132096478441035477620567963172513786267401977725913114278387359498435782649731525562913719901968786577979897680813153882014567109512068462800681333280894532177502187136790304585538275011837755440540845052455458151554115748823347410092717962609316949966182330445977844936276317187134454127061714534687392428662380958047926705810462774428565502780940425356972806664371120275354487218802305950393222630258564487200077014607847408235787397937738019715185396993187833940746314376356264098759013111305229671306493910323220691071047966879455131227044799576999425778221412782879806661561132409708829441024426264847383718011057643555010846223674514155311407591323346765287949559623004093499410949048191157305623213112863792018494841539728661164521242266689862238024678858626657235559698839589325962384817934056334433004028652091626899877470980961684531354597672319516495076266120105620436770441624396381569245288880337895578492675351461535481567671582982508490066602319170154244169178283316807871993617857266198646176882298687947418898482943917871044030828534351536636949847572659681198359315214205653764647859543927924731889145659853956820665872304880693345797676781643271737326960415598903753957356712264542539551561242855746687155617489159565206055786966629682580670631577102467720407719465557896911739084804151097975918512193062852477462517029594403625928677240042969173961474542065545822800701744522517019058949175143297751393192829961453668808158402900517578528341527216061374440850605533793510822402796353992629163334587624390434100524770346476324325015152349184223743926387715757108240451976114753053158375522710471658547083641908279533408681586413865226412862871883127777750545971655074653118260137294582708249795017705716244149978216772123380496937748211463484584313823795371465445781161357489028185973259975192637349036465210007998614677975040059689680449987982095495569100902576390263694477399171148834823818833094467679839311923801331543630707176859998967132784307521294636438153257242783135781771448994572035128868244077259573016874032433731842076467644948435042103990316910388020092677694979993832258946092353073998286552362370125755893089551749212842623267655242911678811532661163740057273465452155187522741244136172118161373620646880122683030523077521435005807607122690203282681632724914500289597996299653708236521134843161648467822364273541641144452935677276231218180885228972439142121111951046650309574174252272098928878836774216256431711674517889113905642912119355671447821696270717478740049050948447418299068927273732930478826170001268183696467023200541116587025041379171897829255690894385479403012973402249756680364561331718751981685849421793766369318768603650501839245346566610543036911795206956645471285293832140539830166661839152481623356608953468877855012917027192442758668528293209271896879276334549510984397433628095463454045295171155334101102560549499239418431424906478820139825940027048191657304951817284631196542854461918015204320817169223583632185085513128701896983159838749494641986693389735947018902950064866715932387629778303510580644368717327626448270696889787401022936020395697526700977543160272075745430420270087744023189766085095229553509152152466859152368803304235035255327280769899091214969595252837519946774008359474308559984966351191091096682043034434386327756774587966395283489484596793620944358915955409060297943486525329902645573657212073058348700843484896983163991805039689900463156135784082333586068600585501771688004542123017141548996112643926054787357211024621264540656572643178078602372983931561562916025174132348745120423795412235236875104167945236683681849372229247468265547988040014781291878164062702962650307011931495725058130079073810300628882530525282839402989694359774502010825634395536322374836727047896369210568163976418499011661499578467572138464371911083124850702381069432637076887627905541109789834371471334617352187788282177775659666869710343173504909791151533929020813871389065460663039263959168239762479405163322414562724789608277700278613089186466467656664257719367404265671555469623355546757158327689779387141253968000527912284366729670249096336679911282176197352111387278024597958213597359632755118055685680877950369699083019129890767745542272342391985486509722056580275525513234817933797806667465702891808691608665907322278446579984567731752311099453708693605476291010803078631857837706007640460849840765954633919741671085355261123041413622231649652563990196902405659841111256027175598758419924883223175036706178803493453871709377993982596942273982390284982259496583635293113066887908080071526848861946955063874155722989161914586387049207804994732593053331295301844393619798308964513845365290185196075430486468952898586351299300664782457983306424482723325872585342511266584265965586558841959899256033393839082189005409871195015083274163911508358277830986248723691127805150813401274826984843863672612367644865780110971045738052702289039419370530713494176975391225987283277125835448050721926759797153166759184056353161543145123132179707570017177115226979705610947547529976123439003944475655654015070681235935526141977796399515476774130986739561655494417955528558439330270088584345642022599209866932629258680271934984672702224589210664730043377493920428118443774454544184958593058038087273583810207245183038740159310492620170614277551483467271500419981026416042412248443227090626278497626251777067869665307510615467208732987693877013712829924874683865774580002964749223417297541911676105728191227785809228492162279628313147697462267133844898824354325703247698675137280991645764484550489442091315527363784979470361877363776629560715601506115672543864558291551557601708141560266289105927538183076205827888522008316535616875627685034418818722630007891747203499259677824693593362460783794163674942360834121543931591085654045594105759574723653990383121838550145236661577815447120811717959060033773808818598856243321527653546338671744038848149806432494804598524738357858229530539397937833721881015258133442583621082332487480166451543480971269875715968547155782502097858626900557992733372913519309386566469488527894989207808635649727978009036291847571592341073459900943976832168056656460890921034994197086362381859209860066847302760365305972799940749555314427450049830727606556393557996149295554553498569851851664400356997682767082462094773646506533445454908519167171342956733347183748496006768221029423847223803960323409415698371606048846837854716632315806335044653538938579844429113030419943592988474439064257457375183564684088075080299920353589974007785458704517057942611490108972598357792477895458537234217694615763982546750599029783620704640761717154981605830026042212137110744750081588490848376371078877072923739671874860207299338040350402936680637216167335824871106093718256445551121815475895553555143292721534516410882654555841682049773701690141782677239692138031774600355236949046214706007912113973802490184575978546978050749576705409904673276119566136948546090130091883304524943157273171340471423720570954167936056332215115015285819401487770824447778392892638339980997710585234514223530335079283674309226312795352393440086480740455973100487731165419924264507214483797045462779613883945854922781459419544344707046295079046565607180885313731757331291541969444622020963957045086227674848834303607289327018801843992061366709814083192553579770940972620653140137827695177110100762132984821133081121816580876183738632236165591784949250758930674205779295832770149948658547960516155016452049090531573390998951208074239921469535176756033732469855793398242427369620807930178860121794367676921561237581060896769658463788097819639110925343539659448074843908682156871812411417373444573829533509870688440036321452541415344139019054303837480211580047477176049613160836233771931422517716500527271218279177510137085427586336634250121514103962087308631977677856565960390963021888661075671310304708747184710998236506277971263782367474603468367142892673208577300083622380679550863975216556846450379022191715375711495352678969958181375909060646030288671621953717866677423714681025050427267439939687898997267929694713594882366871070169394995797792598348858569090683938762712313999230567696386893499730834955051760356089802395970007067057282120636258415764051450353393692570685116053602713320099605283570046757527675790004265362086493987412947684253024145852683014735580119558260485825129528867747403021268138239360184079171660261067805192454840580209137000662243199631883637748733662820396645945819793124075256893406176358773522925575431543020064756922870414143750281454563069855758105886935259102535326707162842429154629371993417421942537466807702732091053809360014022055973329607759579964834178065941463111297419835923689763610201843661478819911595145002078369268917541526670871197271864659474528386488139705349924717953088061968257899099596647966034873741439269637566664066454950795467164607972468759605701293555856536239499893868133569669688486476773431846279639406232295409295484651882036778105602770057606749553672454903781504371860076403569408189915307071298814232735648962947963367791232649513260615367218760377000312395875272140995643394939040196850471874906238085975446463057978522513398727129691538451947771852548455073478796326378749464083137899643747274453491611825363395177099211598570117234173490238946036490631031008865287833753021386804877463420161660724452265746144571528336335615224395330532502374870443355182308811339533432208822938132923465465345117796625179434557646602368922846409006017250195209563406464647455424384856533244305571103601294683971141503237592334507287693002201090279657067472677373665507908669247141914493147318752632232143041646254789207214802858795864569863439660386062049316535186740755251099230538496646813031742250474198303045510935430884068473932039925350124168218403217783704743441414096658289142941132327489673288729729319715124252353925650667116828188564593273441683221226698862808805405734461841437105574019953092323958485991594149636226909878538468047996786908126360208126857451799264013463128716689288613488902084497463174509261533772521997509455993581128268779697396153439819128006347872309748845965075560185973953568173864294779742234169167298966518766055939863019104726479945288609765075361290587936423686317906357380054637348031580983827122286198112037963623355863181155499937523609322467548402479220912952098843503861522157562625432837543429979053903586104349786774628789287713182720159536087443890661910993836905212753224021380585377992530637231425385681235655476982310190272897317542383094380502334744954744267106459151281608133073618989198823092607830764953954344927629042672478220676604639831873381239374013558593159002790703457934330885317839071288119932085403657007783714126938752059788061092142744831841586944397241024687500413958209744951812120077695913796542552858663211194834817044659779907637457590786993549545973132982621522309651835517213996911336546290702143236396099770416267518844003134731445720742139191016046156195802756844847252285518912516437220699271059862823657201185684770647562434422847775626674555861560415267889474163306841928027071367911671294609681023616122925958881911661732125858532583884420466777580950432530374156544139290653986753908282913125580622035760857658663277369886494721706260692159223635020921889710888624131620644890595093146238963250514522662029036743560288839204487242472162153006456103441238737802500806183336102012014155744982672226441725559358368152602865644994095253659527900946139389480253853600401337376327857282028022945081289856827896289946521304972409363338374327751901347206835686121837024373097141121795447319311367965477940040145969807624181583658553589166343223710259683611277623392347201053980410738569297901642225313353560244742756256544647322935461536655195708439718328944428078477851322458821413733755635239443293113321305049514402424727162202448302982988718695162595321494026950980301221670040539394588644991174882704353359957586721094692376811697319689991202478375994504591866812925465627210086344696015280061512890753556471952944238770461066842968118236723705284762618028081501284219247429257829048273158524279297139680477605312943286295252622606617063900517334710095988772746046433419549591901709628953688898381687275027541659178219049461376325095892365550424470431296669577995032123913046022557099171922077926220558812531856370697852866845384544725899681916143041424692709531546052831676712636375495994925468728492832283663424390168541587995488027860727403913080288166460098442237821885544935344895616100474661141135043057344250939565360710687908428215792043307492567013360951983346357140643063175228025902543688921477128060001945479428079720367749067549194169023235245888448660197302205130942930923267784508114788505004127926472884159253621381810111182276596732972245749735231490454974432582489289088071286412962076286748236679192479224323167622140240880503634501000627330264673661872504370102571135814428412134169103951294553298118106896922134450811265108345612226439596768389234316711342772990951322777483915435002228923983177848090535961739740083627048066741052975123323598125341735120654403344634733227993957847258825908782045915596817010522475896345637632993340704805350637429118227432230228167789753057818466802262562053267187142166336725727986467460570960123227326719381712440632615605950786481553427044771348000911805770377143627835349822673490831488215960931141412953205174877623999908682020014509117867827751083669770923655938421551826990930833626478699259964751070493009445833669446389785893208016532763014117788171259606383588696180335311070233385558682556122938506149648791243453529068520176148704287916459371288786865719033395967182748384115539431773937106902215615553751238174279584587742726858928891895768514039234189927002618549062268162429355088122191470519769984145508952460884810175595944894632212356652895307163942280891273203956119217825672413781766010420116364365945212152120400822263773994829214321851218842412740805752046329884940000993369613228586355433182764911840858931212401458564757564170892707856503570741489823482469113440226847240953185317777603180424584579786187954878941651814373786403937179313932638884745329228617782347445649804337854058587798683227157879503047144017490485387988299364137189818971015701571440572055384996829191176926641055477917149113431500356498357153770388480931503269172446285287106483709383643143389171073650656670315156392180729054338818002813294266461788212772025082756648447580344623654743412393241051444912256962905535792816454203120707088150796156665208606895976583803507416379051705962522361406747890505009733636848868490677291500379000473248024947479046945407170621680325182247693039442758122350129016910545669509326806244459506920313589485346909618964745364705320932082419078056725142029388422588459470740232110026486801073532664599588442828707764731503525126184550474611999202148428929629358033144682806443939196531853081066041987549355046723582407019123898789707831275740687799634465940320262914877745778821718484274689820532898958238645439084866648128552263188748377888408206928003649400526830531350183802482859866431361709940373875749551492859975467143248757936956846858112578863764536568723999232422104000143696198099601346296893651879872779614769650730693699270017469777543198392896222090861408158210115209214961329077596149222169554848489066650677024054586218880326808768729548312370815623095816068532249384583607056136123715921106968905528230772311113824939209189468005081610266171664698308214555225016465947711026963391303062577568468615301620598194910609403083090934070037992886484650660232477227630689877024602714802760618001701180736413147886489038155000541172589508081369173879637199481480939241270357982763018641181832725494230201259118138850592282941082292089548280776554525721507910359166055109114965315967713605238135191478318088532352833598670507562665928849889213052947805354781206812016105599567557345291974591497824224969710855639200215831946831715686170908456909934802722929212553767622307913277741544775139161864661016337280404791102367687888596008705864662514200703441172586825247890623034283248344801704332424131147839018112814345198073198923957872398661940049359359962116930688656946280420424940600206323366953928001832458788090134327188662967551338942994332312449584092149394476664267773060546452552838016785638079394213672409223321107436243424885005503366336545705546539064097251915149149100235371115875061702680815169352414615386623466500370361689164442534323041311649395928630394227180265128168540004158230344891382268991126188841587080456244577747626598448137658198470683582570348741094014569051208073369687903747988176204926495738514898227152672324289513166406712936162194689985345747253075647206922565419628146508276031950621996696803714911228810851657182063683986046466080237845732285273007534589299001063248700957923001000436738743154880150124691550402098830572738048947080800468191849519966780587170959495357357363170915692916003619662753879150091889447017332749344589431424622036203424316510980405662458857025366895896136217294894233736461039656913383241967039095581863101481290386565895329879686572048003677303288976838009852657502963106173680601831445346246101367233641945361744254008145779386776196394769071445947609641872977452036743654107668083181007719322844697732841019052964299137614882492799570800760766426845975434045799997291539541184040946896077616661882023834262687963395703148749491206495383627220337469685398607334336266771664888124980167069497521170715198234117388903174169905523822463387006404878301839558144113523931579405522532254070455075589728503181041339644417406473052357510201049133419783920828682385044736864792887019541677598873689939842313736596820373544007210631275389779452755473935771122588458689099489796234476593947357927866181088511068180775749419155277271579747152795009590602597506514134133489346202797188074953049271602183853572142801153058213148533823027829215469825911350774121265000361942369768852280538184874996170905440237980829856611850668236399984146752386220399241405035019750904327442727877465242377493624592647777862701872795701263947015701351123527199932080745317696866859781830744576106664932026316329417841159724494157102266510292868257475966708565725571694152769944798294752783791995977672657689582124310875726203492002990535164138929093432523904451102260864543773212243465961041072432931090945118516192029510624197083957225351084429405538921397776474750018066860338963899066704664928678673439253424722850442101884100603193586217391086736755032502544406256247060326164578469518529986896094962640567232867032099541536873870610925441387675853200475936389522379625217907217341230189651082528249015813897042391626074193014877661537093562615328346675199531188650026072276803357154422067131768451923622841014290189959964040153807429185903172070385537709636067369779980483655701617667268808708027460395852814249635399469641440248331222795237505121469128825844094621890931323645420569358147320612038902842005755792067740097253823686135471865475255716052095340038816849481338194616862373569727286575248865223168347848733366113661639031176595321410263621312057902150568228082999586584040452923952072836481990347519366657144815626568146197088208488243089443896050594361347515441531508967743021132979553218724989061495911720785637515815190714546742232079162702708178039512906177251493799656881688030634243665362570351059092414321140508317655342674911400553795543805509276288147908858761380925744992629070232383023443770134493603253297293888748031475290137501356768797385051931562011131096814897120725987591328657758554657478215857562105682756281952369943970683417429080958297358467135644898564221080039828450037458586405438702727405379077044131735839246511027876880615264531498967334199493208081437023778069747054116134301605059010205603707790243296800100234956753124823889848882304421177340003718184960252939169082462913572419287740085579671687293800738804515323207857333447882757797551900776252589803661607273584305681712535295254892464360067952844403248815541599921800250154349872534464495991629414916294435812779005408273675687966007666451907723058360823125203001238914177328492461303509168872579409783706482890642113180219745476014444702508928627341690939439474238623084269140197603207973194158327057004002195234140235697653326250303143789556107786938434497340281043619960693567513135481041911413682075973171974510907154923285274194660954133093699924049916454615916862148743768962618899170205160627150484613295849457975123871601456973026787210751260964438154556124008588281974327363468519207773492998544185985249947077646868642504182308085822143555595479525690157295324950781149948292230071416409816840441442987954715210426257896229407360521349027154173379349263377489337859656487970496871455773763734197623393146047514046597662448389820454940020200804041488760915706388074372488882615879885396947947986853361844029449290283729217491509011964059282451146784645770774069680066059168474372699693606674435441859124553720682538423319875710834533428545156947535666636744575522140219924210054023569338419681093984725240801991798988340688108499105298056953512821534506669807500613119835192920411052016888853109576685896604931639511683558349604980193354915349168603724534524819509799606010536217581363288314391188195588525810673869174975621286353257469019173808903923765649364198713646091269647696003032056094950071319919835449486818580556938710559415706070708305302024987398105233755808890957614866688054071135943297410215551176163500551834775469854166030193418477053416962729726096210582628273502095923302919423376606287842453096102264978370659200087371931612548908723045758609511689337385410526873438319433477715236610295499179266035845700104022811693374387100817698326167807805002737414674778306538473197019810342302810699041676727883920488935022281854149986164730476201851373747156603783882095432889966448620125882576495510201253871220261893448676813301633907426217669135112713436152978769340411383877622476008292303059029453569951251711727026550784363658142306471458220135651981177033236444600959896564922363636218223453949191083939699875769416802075000207612079494779052498235160145774079072615681314899037313282760186517531413501941980679583283018857959536969300712330136287487189483875976890001634539175260652042557246857398976127079666852754096619943755859960533118628746126646856925932881742775531933868505633595523084166763430123507341760106507835106511207561840421387162154978195780454087296864634348400098869195218317491094484686446511793386150461628014947040074220776944994202461096805958129621044211807729464536465802602439738663686730574742109044198441373532336290175258550696383567017831418182590128665145250844594233643041689492938112467723261999364177303231760238321216257321624457535980157941864658911853809389985676440305512321173119912891046686421441546733367914512128508744187779558744380055316314721303976969250048700530978799445556210065812380435282169484063782686167370448766303885837904266593115015364577276977210115551165836166624791989606579176358496972527981181377220658917245137720333542102876384972332880751988885601781945604114600931969172599818022750041246678663490854520702182838986371563914980095072369643636030468063043560841164760910412685970140790744780552165009938710170205942159070597481906933144659442711805147233490147652979152955880686613859658275013530075275930985596959993597691846776989444868991840361146896859148799092612038539215576036192734959991094193046465962367872142324097836083149711275901257706081502570134748406598941292558616047483274138780329900089071656374167151273536422272393243761200040080346765162905766179396182578867048369292359640347836115186403999107705113218102642877862160421138530492412544371565538223404291492677311440757033306239487911008216250087637646120223790061291020907280122547031778936234799244406765334511597998536744661606283918606661513421712843586270528333701961536498110407045511488201769487802818975301741851348981303701066609593321615281050624571185699354653773246071099356105098915035466080206674852662580711375603110980093015113270936995314009888714111348357197202065794919232937291306569103825531274192697630949457799783210191421365541666439752503984732598738527242530189064576854856468377009075926121651976722427624247325903138478183591426625855782701217521922620733706671021344191681977657124585483969900849806609353116870712833671485547602899434778241019496199471267563093139346202225030680113686538762095988099997841435807153801950929374364151961160180066937709336549932210632828815003975674037855083036540070076433446642415846783039544837007633178075642334794130723860598137277407511989859501233796435458482159132733207481224132974081245121787649184598224179766955975906601893096892641424795222388842367976818948359199306901181602144163590568450696182739168634727741157467352889127575575717891176813425682561757610216676836759545065154111531508444263550017696259596062886741660549115605061276748590173821193700159900711221774384389449029138454257308931240837538463325941795501743538913996332606369886899738278759677377430874592047289919387043787392315232466616845081743508648716300284638805567895036305834339047387075816946885911833051348110456038128783279797883247186894350941086214698319895081015088533148237172514622327911999437827546571633213571688410302785932948034504822697432838624762171640891256593252205597948988301222410245046456714100396386705553699945651745979679023834312622337874295168675125247857048757372142309265664191431667923504877737280546347993626073415211396845319337097846930146784665816015700744189429586820718797909062986454667187270960097336942862049146820544369263135388071344632605771400375988311621193400543036073912962334101966134081746855204069934975730937427629100107223789012137798277352082149213369424210364977626032552106466698103837197192696989346546638504258908633417936986790348611344182840139419941292522516126900467512559337696295912777861741208030772281945403356441795950066937307936235013439956567542002861036636592853913633599701523951527681050352647542867625527642036593374895129334458435699679777748584668806511695401647061796008161782077062903112496106497281264739180159972676253906859872446095337249059314241212545149229557579659179678325396406865673681560011507038772709969642977876919721259801570798706606252913878672044039232599652619547913608654107036722215854160787960627038933246116562785744093232378796811045449143193911707773433287843346205270018030422910875540007935292770599278723332733828004425386612039583969691006460733968166977639454965914176488573076165950287479891382058836841938193654061087308954958203538580576355967979108934517973316384789086550277197866135700907419658170579131209041264263125189882807400178894090368220447659271550527037952796131508230856513931209333035286845793511612100944337795829865506769060435253315398165356517579201317565421939977482263442588157879553904909641887550507306218732385703134030506123959648431298136713329504646699764525026232090410574012002538874608540907561260577690279462591492949563068938072671253767620541019537661509802355531331937095546415804522080327481894683254272975667625617434231939660294658024883221854067072751875973130808933750297144125281750155059738209936209688472227034086262261673733790432407495067344880748588678490425149735297418243133386457061598158972294132593093516669868402899150059767166976487503744443502125136792105381254318908172165262414850800196385920486256900640879318414497262000911801127903737308022485224116156599339218986129602387530424992043436101063135928037040572187468551971300970801192385697959592477407017248212677244979148275171164182478573444048608923557717375608248462168265188446482200257642281063681799819985023424492024136964974694247861067596394723704993936704815090285360462335031179768136137271723559261909092515472145215543148957457150496165898186123836858015818981152183824957924103084940704299555779694886807621725673901069011982658663572057603850023862173458430596345187623822698728264553169876564263184898635323803244032151401888963356015225001982959953760635165329760878241903059137394600500921149152402250865485432636491197713451322820961709805208143169834074252380562208856126567333021701949013646854123579871707990715462891250803240233421640965302438726227412008560276437387384872450510705562683748422557199845275249822086291911121705041153328846832861986602549375233803800163545664505957321724184971825542199615064216547413127650665618623077072470153696995279812679917213202235510096434054088294874540538031820182726630653484267903733609320317198379014695971151189824251592486640013411887760190160110988691875819826537018630055038422109370732574397516156824566438115943527164082377391522038632812711961230619748952327007056761050116115575620314529682223685442651793703534527790384627260925134208685253731703733231102533915279903150929499822103739127016490111873224012253282581877239227423150087198131625826726529448570402764790828108440233285955616045511647281007120229422647864112054375390994769724095123507192221131140479763276978030171906825459688562078210921989269766479635457004022276858713915160281150636552799712657689874374553067663012020024834368878702469944887695229093569644405888075651416545181345517555539778752215854389633299359380112666887635326611020378593787850313195565770997107892582362993008103322312360433348670981814198373446615027240120486307482170981010494182575141271321293000639482491416645814407079352333898766069568986189455725082948182679935635144869290256256874626354422081052052711573304894285852933059065600566754289846034749434634001806693146849772326492300904969717325813231278743968133098343127324256913168218282919316831701235567742502395097673288545804107814107820998830342116476498143064439836503881412556728881385544175408557385024071807751547742716058243713312768984175334173189887792790820089734951793738315227220030678435869764258389030212688484178232392423003121120678030028907110177743618681208987800255062492341453131861038569264067253943020893991149521929265592276962270489618271097374695559855103225060848331151427705568311626310864216207164962918120074736288014286029722280278768581148788884614797117109071054750811047984129647646246439672154991742344675697864692437873741618871093260454136018872846054752360235856334718060672533935035374723252175615833453698257638299344618614642470475126871419273049978881061914207845475796307645952414951315163089758794305785997323642522858221484820949185870193298708092768407287146619212602452563302033421213856824217368464388553875022550025591514883985286118032603340104388668298885920956615647281938671814187115083668108607987150717587766030487764651094872706518973915189289608935955425917968637746323688436721801651851589182921164511195720443538165728345867542920723943166046458899643307485641249327535179227483678246882001146966609597695354315257205969662483566845961862726680621902623656527997216805442714365195130443504070142335230714484229017407864472998794130788476818694486821131835877091222013829351066894060910436216042785530683885575491731410254488453138022692564115466672733530932242405611989062939686002188787058420684549835923743468372322096035669979676125323410839721193721341723704896353931838005754300084922038840727354047816297211475222975530141894293465734816491897114567603528068138643356412331706275657974395707732496154890088742167146786560816746543815335739796149209782090395648946467248728740662608471895964986110056617457041662515653850746389188469324838823831699385095936227756487653108144319514457438657061753188990732292209751461968349667024564433556427234180359026037156675056327741381405188660425618330715050796414473122715743575692458158771016943097864484872220116846514255616904508253304650969270463369409098791272879313532519155527678472088006556104735764416636166831060548665935241739265271304023866754497402527100438907445744538087038250516702080170984962975082437782747830617237682614631367185741575258533075261731780326433920438237340272394670167576445459348540022524048342665643050266230767836535632000801054216713511953792595576894018410605648609452941128473663298190586152939001778412389615681065169417510005172335739001735268435989413118165473994621097391439621087766096431109859686977356190548807452458836691236142296063823241879350004965426470376270390921709829599155816306752128454989547798507056289348969456558850887278917743811226217688935498118549053234357996046963201579549286142230108506918626243588747441796164327755993718278237174233815423656366174691496135301639992413730116223161849627740761698725620444160608897657356282352230288610032932660583728000447721595882362529570436032843862518968166378021068332636127034745487099503853678172761239781766982902109406284339121285639761232648987673490141945340987467518976160154984449283901578505967645067420290655682569421329583035054392965444305087382456853249286808917302928042587108442278160700829265874261514991661464974838355652914428340332660806281470419182395148802255689386920658402242545833810160326406630624224082665827883034306375878857175749946337524750712948594975284933267353419749417810466462725594506849795229085032616769495203673233154002810039110998880582897589998750648514616349138484069112378112499438007756744251711914473426495969898716814861059495584562579719608255273709868171124479034143204772606590910321821085470509059461867101084761948822360765036720031363903415595190841108524663242020214288513951004201913840677200913173234239498238134446150328355779447923133074688826141643164885045132362132664358276876725463606784100706347565904019143947621252433569601031204030998592157841675425891026177017001928583859295505944859095685463882918822111473022797611443233085621501149012825129575758462256132387561618375589662028376752851666205979063539344505340405856324514761072181076919336297475625630075121820512269266466996011662123607421567666108302862724503410483327415215387448435582224563959898497204226839465543548706045372634586932508492153836414376982255327938620216265018463532153002094049263508273200971805436490853663526833106615804222505582508095088875907002886367752966480452878769136130534173092779674613970353049172925440938503513098816528765203824392947359767505709877863136224456224970018600632924801052344570770822031118968489167004851873270464766328187647422276254877620598089130920474765433368328175702350274991914853361324855576816180358294131827797285630885919123736403701196018108690896232914297781807996392888673313016968450547144771644251360999553759004705420918187201416562705667503114973696698084279501719002039647295516963413337828200208208788808250331631982009412372409761301326291422504653402808239275374810509169078250255170273021200919314577565239071232096814984096880194936636635024343381490004540066726653226319974026638015630314375230413751541678119903988702137387157551948047976734805564857905635126699538457395729460314466557067113644199214282033567542872977199808214421646427349524358571643812866379464608308662545871577938483777380952008861055329741800272926580942220708718357442954102874057520646354934854716392516031375147655622552766677382501334961104912014301072459095783465261255431469343826931976633918770996446986338703584895456105599252128469827146815017430637574691478472078679804741837991376322816725510330369406103427353091996927902679678662011379498387540147952238646176100847863093242040124616698715136281024620003344590557477636840894716814723484284152345878421531079684461914130389194735293340326565687606937749289730288586384642636132540386063653684603617431330854581148156579060738860446301762066549160352162086849426568134763522555463659227827682287209184445118651601928716331548825833469697839942344677888240334814530453747467417445673791364591376007946762287256715481318227330476403320287458951828677189355345651186033885462479985949195155306521872737302558003015361553609647798211557427980454228236863446406886617241730388828328353975796594604684119403871014793689639673519857873840816581841683962953163902682028311262789936089215666343730275381478562491802268833351588305985173179834088553780491493970994372766488282543699587027768645406412763232981429530992339784773763143514071682976289945700353497968729561339616295876530068221468802919578785444779945573920708736726060472001318294020564195501491648717997680308042691390637916519106269234304499859286682600474050047217396873050949517200075920293721584420970870458697238736057217772013633799325886516783537674043632157111993937096500794637161565497251485693333156846985506137073523959536893006706483646057764074545594856570452930613489892728559023068029454124173051493992455495193531902455257382062914077021924061264406149758909455913804047815106548761831179723190278997679254028073382983016651138860932791505574588364546490224466939622389335074803743428809247310152154613912365523099169887812648778787980136283525710562708126957603727451834935147015343867824352416398185636330606230350782537074604073520255327688143001632980272553226189713829055614500608422671497000635899383735636894335267687647803659235583700544731548313383018867131377195148328703913921088247323706556919295841372421551043525758760606175430283583791026267628573610646145534115584750688938396959165648253557136093203031393395775026652661541603239543256192528915960822213137035905163027663900527209085173825860527790213420899148346372679678902724517121343220670382983861121577506573927034572815711666988143828550606768649892645171719714801095646661196025063930232587092402263110822281390856418494650008972942807558731037949551927203502027246869118056064320090645665352987505975639055975074617865473277301369312727514121432171888230937399143644370911302878952050201542970963229433469062198154578768961378531328414747900890489612088869954408566080290293496604390405866646983118148219978625277807552591621059811691754534451002480323237680122461788101735332667556436121791024654652654899611968401163174594053927897436061970150550930515466149232874565590646379099360223981973713126893343544510759541318026376488862911406865002183803284767742569350361288520575023974524487513398828604287785023744991173071525573407135590871718300864958824713981219680454958312827315733506744020388572423274115332628257391626476313800233613303970097436187450365953504387682146302083508046944976962950440863074107934251283473385995928556126488238382580626214320766821786684871854828728712203083571469412620167923190924293596447369054833492043061529826771147066421376866589790846313858159026585784118099307332424524700293590285229257593500726954899016352247130606801614773804392551720731192185725019852909563122269407736224629140431759571469693274960972704512235983566008024251033048764463806043673151173254215300090227839938202886843428609656962866766249950828223906310765751055304096814105202266371944580093504142675248176582742858382290852104890959958360972327649930337560546182548081578671462783035859023538441704643220510560890249970957764120458663622536727533501975149137619863908786668790140390595059778351691419053790967032021462810442628524937535209275427754795846509695123799601480017870273562455492219610975348876944033258282302321900184780094822870455315175887348992789493006124604716136252764206528574367112445258557999496634184082460426301229796480640374591539329656198221588846090059498895878040865773513882920930423372101565129741011427581231588498995346862848762359291788246354941585390979407410289460807323484998423537117638964623534590399886594525147565900365422318552503181189723662794821922359687839144884138232746431144421433281791513293529006716803882482853193447825696060113097809620502556386585247286525340687176469818329673294619224790452673042035532454181622975335539860919212205887744820031514771846776986018194425861665212477431830392337780941942397787989871176713057069943328634744394837572487644940087140941268286740157337210594642406193259763012385506826124975010153541027159074738105831208226694944660583814145844585580570483981564589674897193229612530391321781506101524036788647912139155970221076631579833872074087308400066297632982731817282010454455849148806504951807700974780779726008891395288152006695087679005801972738811484141094068197606932515870744816902109033127754671565732315642711289501650462065303549251765631231049828889580174129472173059381053860498000639000569107727707205998524032453406681402733655540742334550728197713424682412090882126344381769266219062957170898257961849483821046981410877838529324729499918542629359300854337561935853155365007275561450383482426869605157454085185973473572453716498295583745777267816609523589171937253789978838987837374845531455802737554258815131674161164225888827473552431578057949051103440575638753014075428885057056454325083009733778939502362347270710881656009824541644080338260374094485527004393937171032316253528617854360994292425257967883272139512990004250764908365550536892679763418221909941467054963761028768528102355119203498723533826143122323926985243046075165595960596760191055889509470127131349233601611919340433446019512004588068586887115441386400035249553164870648598574172334348185934580357610880689623712059347681750957831739120848035510185156949159621128888307933054727552801508142227573325466671819833754502462590111521377219604666683282816913037127477288924237864483137204306784532871243089837434426238305080272256877397849604080931369737944576475416925592331175408911655343959068246200958157880653825288477034833155246146703294746408366668494331792126933033205249997229357570341713469999743028661151263996318059529113872253902048306759992967530694795376287688759003088830958819702984905179088898406255790680374978874256995978225828490707490611130214284889166634717353781980725613728104272679562055520391607951895105973410381434467300670784074090465264255404098868444652455099973778950763982465374039915067058347468033119171379129969707278546276510929578274707943971444366194501175015016702845143999617158735938206637727772783450634835231359907370268909815636959807068999019643484505839289115049220631309867537196869632518528219321119081147690726599373541588165276814369180457749762075876343943916523317379838866037364977069736746029950782848167781148895054866892868986019037316084873816111945738426688336224503440377690632459244588355965634834005458238950009760764946117581381992279062599129009567969760915919924824839717945475188080022068143785856601353233034457597311832219551854313392892206421195090537221153992241879566513561260900937098696693225152051546336877811582757409609357502261952234757151479408909436736764427443151436288083207079831673592957289006115520487879078525965829830708950192378287263294338369005021517246572006731233387479187086249528059445299435131771541375825886231070919137459673008614005700745489836140048417832802707796298018493041132294704400201229812045498462575103293149491969817758857904448079483518347633812435874700414946961989780012728766024711555348361943811731299516865276299611440558639475048052470851713502894705467751600048437988911491172071061954677348550566532139529720862321366530930024633600665037598705751475063381592052723200913247548610032551126882845542650780319851099626850325914811937275527506668424821848435957407600608142071156222504019092238535570650818649101525916177044483453944850792788354172257377958883087953180233029934953805018000339384468733453461388321742408048785321926880526975793949315812940910692332926181066217189156824009686114236143595795520050890973234946837897854634429844560655089229619035713696705900596045183217739247958908365587192135698274948260591539409417156265389293619655137698651183607551893378059200788697250172928066654296719107661718061315537158730500938474899563099618376560833837644554225490222330675902705006755818449721947883907432794052974812559547778533166550605749983740056890595548316791497332731001941947415456724889869589468395386839144570074804815724780945199581241891294332590860381932826229807654866394517668880960301138746823296866833940077629711068415622359116407292310155288262021499525145969524717030329751875482755013199669214791633663201050138962825144048953238051671777864300317643400615016966517245942270653179947874027257151447294994675560618966057054430874394412182465640939463987980888553301068875434090626765752838871405341979330390979446461309290739466049306613050586452383362130453327664984098663258370882873723574836349611107624890275977385046429930878645682317768901405319774836186974874037204273646096015079894819641285862865825906152303066222292997155498358765156561344765199199135614365761947227815336035066308652398333166619757844229794887701049471062116273876629557630556219870010212088861215065445134866041233942530880622389480012568578800035184051140836886343093932204600296933626764545249011736020668745374798951961682364523300142032954078824693058259965139052890810630520373179042576065961484679817719299175417226168117525278537708668273969198173912095495331245273778349748250935497593725253719260720384734173872427501254519880110552556760345618094926103107275643301654100001664459017803227780141521470182980618631439522670263207671488543494291314983833123768980288039980751048771341976169110825095618646135533359452325561776336316151564731816089233440467392157593891161679961642651453641178720797354426650785473602727439526015431301498466044783129767100359796252302420881829270937221742076513278876625818287391538064054607402792954204080227929995642542853161252129764254683162768863599668087247295127354632591128588735313102534900415461134305836683354658549550246004898143408133521515067405842257205686801451362796179696292759322032387486389177967664680889592861714931288124665883224286822735068615071125963170589717140561360880777096129768423669206845903347540613229485267164692793487576866203719349781207994874411880864016617413160652294678795894505354324809923856937370828141388707706098456760089152691062642549799307735868573986272728431910523447525337870229974296186345539528183856565745011267669581966524627475143474877114899209463852805132513293988873492479221587569361002566561560333968324037938816329155687272596884086079703773004724020484864959953427301822301922663072547303878466481172889704576260134906608199983921866468770862593515344603782241791016470455329742863098692346342379633930197453759240399860365848585593401048476236812519493392946378869110332416798601110453651953791551868071213190040384444988665229278056781618527528680916292049130537268640629942174307165765726367221188366755489175747578730590863121639969827442462432423886650714489541569978312889252459817343081191098012458073744434104262843172804601985822979709415677901966055695895430290256388848912807001299944147373890627226134906872945408874241359915269867632027436157083572835033015420902201308113067834727154728543422493634758020321286018528025877458481433706891006357773739180534835090308472827228763531979379610812188713598094063692203311070386086937272214073688209121875730184997340802519362545652108677301745610306095829209817452883153855142537780758744482745145261838875780035018566096512969292549228969560932922965901298115558063469324708598186726854095687954508568036257001091971447576773547065666527240240994621588388143281052934815672055639721931789366340343149543483698370933951791620909986925027388714526718103465735026106995045702468445222350760885452585855717700232993677227259850545635383783494672843095249193811617724905650925513626398205321150333688584112338984738891139944657795509590787053343712346809512657238515196903824094616220803210954045567074601182809205659556703635426548619016678899186969550634360558654713298587377897912851138972285286774158084333086798578346712317000464018330953429556071493078235942185521074541308872009257500543926613813288452510766561571943703274313216638957646871657358402712953074879540494798230523239226766752925551972360255029654977183495955735026529339584745540104937215241167670306107411844745531711018574481483325120008663718401447185036142244277528331255391547582792569030012934115317661098294218769269658523646490043385722351904076058912791033037553853677655650517944653723039610303321766321645418716152819492823343851283789500374979034499732065195875737002886468758545485466556914690564402692589799655803386363569978832437322623509152389138296781185566449784832150121940329371832621241155532311544894415727289406395376836350905670261220364365132364354764179115487163467186795955764220866734934747420683329984982169228136303857488565993114511413672035176464153590091651034482312273377634818474011842949859436106097366908096992676332856499442579163500819594702822582339241753520016607492027029250207760189872326068955328522010250057627378862280363476569803115584211702428884369353425217511495257385328299247470884484195620532609492104903824999981647720373161597784027226736133437530241268230539285366602472727660490448442020102225920293174586930768453202988359340695295229737394420746379267419454447118133196945669307573631991857161092807108397534372071717893344636723192020968141748508869738268255350321794531648007070271937621658100368602973090432701989353484863743649258931979480837136678776773149208544939463884162685730119005572452437205806102583476863352974602729533511725102261092447993939202424165176904613610876057147241097351689144225638637174566033716082804504030475249880643372749654911919826726474608561327863150577415649553116670182453098136091783292662253908675475299006826763199193541731782266777015037262456044775745795292795092047769482518936365394215554260788662186709249212138635545248287898504735782325267512061115363759452368164755414155708889816255887955191062343359814538816611090312822394717694928379669906321781251003011911277827766327954082977754797956143820882749449112611091517736250978991120897109107519935742868758006131278799652432465721825250566417853265832460359379748252314606001320732529683249792806205068313354499726350292812503461518867935467923122324540215417996732894192909402591275927413691236519805702951238176562115152371586349950173271194590123833965216502828419892435577323927223247683963100673690335829716007266668151655442359508452153331841452234660651474442706059674182486409133382849371647559177421636961299741641151339377773248131095757519286210573093470711092400097843145715185900731513350798192062992767792532812266866731844444674704784944695181521718709135662718727304966549386154603470762260851552385553464087039476541803234007403233301758457367752326566506594680518252945716779613509402993490122453721510386244032597674842111437217389184741635139651692609709460462916289748604976586947671127834210782658439309632898479634696438722169711343182193027087407821036127601835585008378871404516543317517133629079974720277689343589248425002359685467810432530839031635932810797134896117800206014529812776036160026981360938791040240437451688015344370111815014896649835247884664004781159110616799225536222975529824506274532896744581072519037698515183666646561800365075458749700777315753650630151563555410542115164803487339705879529038949609377749836139760091978132637722330761931222850997871858809303607480128487190640809165552444665966227159590086231221111281573499790223953937362254648773018370730103921340140043045398953099350333967171260821757431656353649562850932892412698628727466995747427564428867048625455735293789921887634590974679694188751005322233939206090755738607360927364046444729965348621931897141659258921842234200531089818199637923859670526740426650698177847904090948747402296706241306837107008965872081548601262884849501268040845147715789197799187828914562260585908378828404451708116731486474260937683224247575281878020988498412680080281593787615053732617918118024781128094318691707875909206215578432227873026226264806843250419632466771812326460622165489625145088312555567070759023019205216749002103172392421145011256961729200728851932235253160603674195893087391851088737761585693251095640188223577292509975174533166250243260136050458140319355673849215889676546127427880336538082752270636557656234872164011477684504368929207491741635089062132520943228354018839064166560785903878806172750206438765179762160552849024405778236303245169714080191684571353280706095886698356004928526624638469765310963588528205626286903627207023113551994760259888813694085326782420702853992331888639742388794182155987474068444173376242855073661934262494356473613910244463154983077803232750452777998986431089994168607450944999219536829909336614627869292152879893216834324047803830631997715125884306444887418068024874368967212035564512407753193898239932898257819807228459058403935546687036251552612779887601078102925195739852620664672647908580268453409121003063041443965779727187406325378755332589815632206046108224760670404028313555214929491152112625307205858720017680099370703949633208143506421685221633358364101586788856325326486812231944778082476131621237565259089131780515981203780150636828337958216302153941717534333725864166546149768722443392820058236222055194573693963886809800623796152861178078333703956976058120609231868610818541204336051221635454226029757847506457563500557389202632408364818598844329443640916504524831294265685646493617698415234223859936087667004999056099216132120050635648043375726365488550460589980954854874706769270828717713866912036236092044859347598944033281096367714343666478162139511833516130071864179546220098076876312193587196412672432328628853334630074198348107673643263128335413407950067326654660140403379619692140779370163090938786751965071286094723792686325921513850297594971779172531726540740640343020146271374252367695955956087569499482998425133121146989181883859223773315611060185114150610385872340588107494696950975578212178465814241741590683616156002918257243575185274780165980676489552396070374685655574737575869069931485448754857054438930021236990386911705573535923015104490274928357048644413718825707655404447475989027597446958747130321860329538451201810293679675635045065769825190675585244024291642292597413730177517394218055322231037119873444877340434932489292097911295024389867245932289573072945359777377233170675558106446464603092670822187013471490692912314838478964634837202941604918473426106001224695137704961335898707669859750413559374361712163371974823296519426948157191108232742333483455802001013797305581292530974339024210710205743095542828783822822090365970924243513449774320197076769211970044747623892605474530973449069813799988039846982487209312629868485955606998455925946912814490329254821959579775959773315629345165978434315547648859732050255457201895947120455540869089790344037197259900378570640612987530323518866934900728200909443344081499718797895719124252000465725686670770508703468347304598901264948590683318416850914120089235527689424300597930046289216255273618643116197878058598264788236244518390633078029649273658839950044794075563482591951059469954607641021343085743729019879274463771897997733999176012845512220356134409683995940104655929830243909284257093168099063897807082510157551702760825693280810506025604855846288198165499093346509159190718959379991907576978450506720852381291369057658282905860468221582117973986688900469479079019648415694679944866797208751980048365082190342101354211622862176558986374761285031934021992964994936152181926608138191340385870416483310199263591434421128499722393012849571496121611855426768963865200249815563126669641302773149957648769988122873587767247841732200259630910311769341064787682979416406028086480279950964745973363553960451024604096075385636899819797551957044319538420946401840969727578778589598059674827759473455094354160067835094796552515666171522274426451653046935571907053280116486932859950679093806480039144565116539549578091902665249160481332014058811266565526761771374968026966262232107218132401120607060924273623933199942280247259044140479133670757845895562271331959148871217691616475584234571637965663717789941465283675330661113985214934942819021726265367042376252101067203280084801371499991452377074779658008322338544806635915083759473705599138662965584958599176970209818715413144901682846525946840454788326146922787055300550174909287687641495041945514054518874299451674118843979611947286637993147902147223711400781627762989842088006063048305745264235284552143372009761827222160222300922146398783132422405931758614200205777080216259646989360090796042268053215672294201950072736148291336860719805221827632805890769938559751496528264946371327662799809586350159532160976770034576685117659059691964807085985597372534794160373493055381144464115519996826727128701134589226507135754768865891950405779617477687039198527878624979989017894162337807913353441361451968046018579363227717111169548587343210529824451219930279712510873490935713145377109455745193504854928998930703358503168279123109106927677533608522500029156849173935025205629863201151329133858258908267230535651402592723837931702785327824265374413857277727478264413015413365519256248411195349421110906801214699706444226233012099588208942759180067695108651627525673062725732713185930187210367349269121981432847542578762752408132016696373469178230364741259193687512572721482325917908718190240800637893726940630280402486468005334023970383404041150844191273517653237924734103498250559230254037296547523758488478729733616903730344490421336120020462962375372014229864185297497138482222110736676398110985157114075285966847396330267725878377258605018851752060640475029056571219955305070592075291358009267134854936875053298656426535162953382928471978499434422076648120420648742612296349868358731019311571465548924486292619350062247587880098689919900579685523045200528660925426776792998769145915582969987081825715372186192060368962425480698950454725197388794888547297589632007130336090922099903821170085544301721567859149148307109571967766116019943383772504774443906178487811205222194588143731392684007216030511991941775864326884500965172106212197199040515041830908536314621321976421072508128129057014226169911673010140627176159896181396284804507057017515305253389895315846639456551296178605935825629442078010117227019172713684388059383170992761018163125288943027911322273132468741208302431303244962270664740272211364765003001094397877653898918309224246374838033428409471004692728408366040948189319889563088744923088989716304154149403479444364316500577681073675524857108293538346382605646316577924988125085874314035559161575006124717378164760511105767480923526406728209853004305966436694296816120922306892216181712413157987039900261239418186614304955054213075195313455631806605054613446191841576153708911904841520723364990893651811171354032187975777008601589014440709126753311977339760427439563306878446809559598929503486656801502066166081271484086043848743126718887520051317008052734414991127392264411703700764620821344346934925775682193714719446026409913020285282669434368684515576266949081861320248410266860561374604320105342897593489968916770093393639488665492717862528930836303457304791792684852657657179280135944975507095294521355791562538874375299244086945012259895217771929471014197738445534149583103227335424875138165777753832398762765052619118715605455143958324122146986106763315207174475115656952833044305441129806845437083505011830595659854772897091948034807077687038103050646797019276454029713183943124910919356819022661596561558438763913238621670845057062710178707961948171834561350651733988335337114108459152844674695528469405705712439086769410268960357139329825868104941797444784975789545943065765778227466039964074121529002561590254087428267689204980385774513546369577823599881739368902732271856309424223828792468799836871071225157436448822847589849853277375978957745073920216728493270150259999800935801356396770890086972984091409394746583792108591924252815556003672367924574471168066295585382475096756691910389147549363741344896104254705723158089785048459494308482037893556795401785542761271523675463438252067587017938152340188953420323444892180215806979959061048899845955228044052643326168761905635824455154721403146673068550362802765947653669056921853819808540064420817555887402226419621053711569693071609719287219974213639345340495783495309379117529526418246266269937508720301539030833245018935808003746707883758332379258209479089866613099950568995009058729324215085693067572138698108202127452998141611735540405708669652148260859075017682380248091408764203202305568890170518856330552947655383924213606229038212790568444710636302756668959196103200213583893718510173479021110043559854912352077412938216181856254021380593924597537915150515407454575320187109149812468057344107433069199639801313169137564965809502053750374386484484688713110862643478608227774359280977573981008306376410632443440883391091910919340972100662748577025632337897665916728576047682280614731452847295970252188615197251941993359847058032195759597045922909350074192497168953130757745849563038988191229625532291201992597570660025150272537082160681274133474922589783085587634951297627641684467409103509768526234486253965767588737127869005805830689068335922693627736647789546594184646210219561675749764117133734326477503188437591555090483052676704478331739695896180487953090125164774534927140222768631873651086279457154645433632104784610264354250547342906539061337305267738618007612140647748678586975187972446960745360960364501001281284556000997961767740516396980208158807505548214110871101399722473251519794929855435357160065254917740045136667432256504516784577389911302487693622576369811540377720497789800048513202318602155154262069904464015441921761710511665278255276088162918179013657055981689240422687943359442690225162918277736616722456105702732786552457593722286874168864894072389754242432445172092156494228161790494965762130208817518634698612072695832480548540528989661825524543147612527623803285666163083285857093352171594625073299067956256674810476613462512374910215131132264869903574901374297466254904449755947817649586270565022661850397759096642087210497826669062887116343154901287890897251748875251596640240510880603537469040102168426727983694414500590857300191036651677976770182323000938074215683448416478249085735336610218590484093326103535243664008314731507828967379429956991703631177237909402557890047813644695053722075397483831583301541071361438869967075513629844433885488386982933408530133122509994860854760430369969261345923885272867010796756022031040987466906710828989049906557878612939689468307602481206713475560590925124379169925134852541003340286666567055530406478832521812270458579304695815316207746920727313642348531845001015401752390716148998938103610011954444551879683140050014328515896334687950393388020617969761127348224857301381673375165586544171560076198937193683896524640011139863846685150109190343621391977490653619036951383763293270993683355637954743769053297319925194169914138854140480546441790239316683709146980267960230527770836512695765629862555009758641254720707566628038610441638143170332506201094163413062722112856451803841291402632181467516781328796164632383750445782508981055975967068668230926763507786484408941449512968452211919843556493418404219812100912864757206766092315784293974823084043863387650476661733534693744171315855117049838920930261972865416180752388535885867511374824576886753735320402846133320704111310229773716639960380223340675932240819422788097540458026037292816870908751420107234800620517588422253987580101658475254302979378994331750133514229144485533416789198113488832744955382714205573520639513695499188486764939949980932193914761626249660350323110007125322086768184191131566274846017323702302490434220038520899081347107422575846641778165369823530583550570144549116244950469502663113382453615852013143694542328210772839080722462901756259105305708348203829495622191947444795256376041837266032315659457164426787648579901343737045154754275605213826081621030433527174421219834552092211588015879278969629357662621645692749191330056997411008559792378289136961585048529217290679149738463562696261722975216696806548687280729840741245707894358716661367064734414752860502460338419445367206362004592260649108069788917544493603904652790343115280286957049064091136856785914504373414477837517115847083531387583329143416867141196531711056287952864511845144808073970833826073926855579585655495258784546069708306626150594784394473236123895636885747011328641809078433768035973381350271862950221788853547208235448486983618992756870668758913337544528731521544485979197448201403777909534071214487927605459269503847055835505379681575075689950303680922232675061426979916821142414436295049935955702610758344739542045692924606645958863110735738999396090133581844416155371731852728003148130415268110250403758414097993186296995031928748736347817445213877465484542002665689348163825854378133426723264932293649779998867375554106113869829487935376196223893493267896604915147476555034324992555563131347503754895955939247155908951737014717096309952130142876525533507353323900572337879482267393097707611987191906781301085541992879794657132335093233766233179104424153735395844773186794318948076657766849430021435497223050359192672977798869707657531156520939864896780733878234418474210682118152936277126054495252870075960467329987833740678029336031234837975609959676655747969910570711219627012264666781750885060133293138943286069013921190771025809499380292300010693145544922572766836310775831761061896603815306388204814337760014854777440400147362086596857742968726520826171370739223163769558984529550811032152028143906508161892441259332604260238183611510576148152011659965380398262726433022554677400515551190164118727841072998990526997103875353409146511616797436071172451631135217982468254542187683788543470862650623139417480365075207843943318208336032832956510735927816516700338424010193236347004822604621253622640956443262762169168095623488839016753211648601798539149006547315127110686425840965159088468439518996899094100438607509321265666723457090830888933581409026436479872369478960661774364717738712570310957373219848920457364805574576351720324963724149794695215289202775578222738350706314898795845221350873617199590474798720625532543153717078835726870033777889054363445264393237732542812384217121145096228254424818408776237633721982040021444399232577810531873124442594588953222467851057142809875514158323856485540461015579895977185637012462232691698761089376297820576945811014294791938594133951359955255003567874565230706959489314230033451367647440929250660281215192875622961994957146725870031935795922152010971144382150851330929999317822246247225503722381160112215420817917411170554567931628069256911973963997968976426738889213527967409577635494638648134068664775364332262842172607786860356145732860662186318736320716526370533540143606093530344169359107432267282351260990696209835580759017226422136470442554727681467042773329164250568002742402082944864645335734511207779812142861131163335163729999695554777104532481797476163824778582602239633450067198770531027815597851493737030561615998102137260606030284722260131370173199250359248870193748105066654156114477069278920350521055718600739522804160454260077504717131460543908318331010742258202084220533216488284193530516982634300162453128801609378565189148439886792857400796231943531161173976783690657524283820732481415496216877346453085496484951237408219434462099068727895215092965212938614991692877566200059498876823780630374467512055931267751662127112694382506278791324607055099069655166058748079718353647755108755264857922267913672850761325566417085601662974926341694030503251534836532359083553154214686654278249283445960205386678781333783233389487955888379937559452305643175936088426819945063997001897843380982910417470434428373437695099319852678122918503309474404650927597136836754678375918963859513013125219763987787794753043241804047747678636464327112578433601839918252051347228283979781309129016179846967392951355935410541302531643792088953233021542864552559766949641715517730223327644001095371341734476746823922788855453375106895257964909815840290407465470542596172408534024572714695353269283920641185480444578582909625327549011058299704617344722793041172938407412250268459564081242223050286123992474132158427270320618002835049831507947373695521295964811367096079382626618812065502140735571440314084313814055046667515374964578028670269529179901896292290840655183571326396051915869974248910124000675553322181152115226198351705947550641415428472620488429282540061748258256145794572725611887904678172990783553891446555096183352014799006766002827065454832333279973720395392650969683655025030598889362483437275536360272935889805026456445281561926373293661414640289479440440050000581977535711777767494266714996175461265063112494911122091278334683423494229508124187240717407235529697213901402534118097703782442524176198189638416579159698892186691287227057691383171867493194421388378601514128396682144444078277430481169464871358888304155346233763658370396144914255224816191574722030719432147780242504551881629818783203102971822161784972362619913057535749754482415627944642346311511341890293889522965030754481214563618912317021536045822975956412187012785991566026767799938100267283904966859130341557544009166949355647615735866746568348143089879012495165890870542513394192843149693520289913633757975759265983289272106023147710306222178566680888058618006407362636120630016110240699536063445338009120269815261460859442651785156257114311968632624250878239740731932939006782200998989356434356831379156563038272967436106703856851523703325092372237986255062061063260470869771782085666006277594766876085547855872570255401776043542268857148266806043793817725575222981026152308790654683821751918064692769073722626749597572095559520277766073884627625156258168287985438539559615876545822609710935847466589856145057555237466007475869530336094918134237412146993116360180329161146353396403300523993790947433761692253403319462028658976125742837287870258948432037925587095455849044446034597868069458658229828220022367832372407241926613870082679145462161349489617496201082908577160146388805349016169225963454533590204104809710966982819692528047242658641136881998555093663279945084052022113612713715525242618168470652449586762521623088821714309262372267989151619029388936423832582529662699637845225415046766346974219996075707174945638555382011208321109897746084764198794867611402819943001315905379053190099834347359539398887607972726822412649498440527292858943341629280232549645299521813421861616250953096619436034930654391078231839496631694294877298413638961231419303850820875793780698327213617998057226813026060456687048529657752430217918237321056951997017123433494810894071829446181097513437788922245911144401780863441541799508465571450279255661112495248166204475412092155506078073068495757733234174852015155060780720866564632124430312912503542675845144466533274186259661628346517404242012482601335348087225883457938460057956827187695273086479790410699556614979501865668434985581319804173099292115314929632261110652845385323063819199892821969795284158077348647034612551919392255888009755836368328574393680495176739912359821656526140570414322253631619647218363555381345271948928174610903931447966931951355567830966012977536859640303810825601149836499587618514371331281511865891167856978343579272228181063416056587350983869101003260256256723693592618142398601683420106022377399685470384077565493438366063274997281563183312131282325805742399756743995191190334297303178072159796521791332720906318056602445311951097623154672410187049254640148902826195008265184157948893808331847922335040316703055529484636041198442296568471457846033974649519673793242543320154986545861125877673087679595506845104635852891697544604961935694981398939751796516299488252377022086605969515005574600718575843027859688321539461304821035168438296198858388071682116446753117621461128739130081190898105749965495326184474919248349336146269583115589573909364158312817992289303870152355963445992917924048504184309856929276620515506369921676979387985799373290242236158678557804909965150902176852875489229213042539319999045894158384653339591714384610741552365790700646640867059013548938473100185982581213383157327243546718267816097785842146353908727568417530892347960244249109795859941164762210336826004855940390428823616051775285902590548489738569509156788180540443741833266977353392111096231314739075768268976679423984742521837215060365673887822116152258177548332957109693043582192997400261105243319903576680149922472827458382329039103775862470107606698390415337338168160690918413293736426390999012384203468527323346415167164378451336822355300868827584639924725933616163071502451517617832967898955294002521252932796747938090676648035275054121116976719466434043649006335809707208622885447336987646585976052534726472788210008407017194931537139027446933011918025223169443222529305814639432906679668816264182166888855493270926950411817033990559163312342448966802867738512648698497464168099918878506109715061137692231768778317871151279416159740881504839784617157781792540883069875347646150015678682369109582915096041127831970947586104918195271246548299204734338800584298752450453312897765624359379049037111073119131694806092161559418669688602994246556814679826334026421778993945415161450072225483166675946048977144221257994019382706605983659046710651369424685941241064567667675736088438929856515975806969489247668562142098576380094476346473660581538080926450553643252199667548918342422253072809741444495848089064609222753767975169167930784673043998023501590521972802208331745277993784226055005670565822390696251348903017806171993219282215131100727707028913227651127079962643977156297848603860344750612530765099166322727595193335453102984344419229390691994593393326589742252890964015411319991137559729759330338939054796101549113993844354147068840769620201928260282975929138417652685079203226036010037707665300615813267795433079436723182336979856066470348713362351891203365459916494962195595080196585689214190171738627344571405170117466627170814175568818369371819872464499331395533936842216078454347866765940665131668198444502772889277618235205002892328440648136780738474864817833073625526465376092535248094397785332217369828625123258128730951115714535046096845473782640051062640999868568843081265227130372759533699406503772995417401989964401958520438846807315019697210524638600523674197313596738629896241272182937221341296188869528525614478381113287709494715192910221784611092526868414569356686846423527547070250828489558662603113342827575209989049973656209893068542434511620175169796566914146032188319560233886227472766480500477568163058423028952949298437965257911842354435398574747622604575161522099836556836634668666604407396846087286808872457237501153109587428132812821110916827211281342980798636104283121547713017135184857005112283204222873124911349156739313812190655171554186343497725130620285785206552000146292804238618705613539535800582741811938115602245847297088152731131100896228201855420847798934820386678579886398517970130851017583817106478473757098645907031941017081966999860244053575955063321599086354585504703100498952806739320998722522874899390533504008430058029663151672203703111345314756390019025919586490030777315264586053023070363159097742301961944911013271915626271212732097193246456153967243100289960786634841912528026914366210621080540613886345198319948067335011730838121018801900859842732763900477169820898064990093592458708408344370929744818094580504787621560244439213784818913549735513385525134224332669243762092786605769230660125406587091776327427650852452193807626002888367206819135922013497661395764149119948498671759341835364497542797040686380094009630496214055973157549040980517743518562272275527524008106139217390593048421210804256283541177423259435562985872637215177074718218436136627560414638923753814906323702367224808189838699419443553921426456265314118265061397008406225145552074012019905353279226710885887794021199481142137679788907706800005267257652543963221144892403839988997997808581951908397958148171388404586605212246244608975803746346251996415683754643894311814250982233485354342811974608877815206240819433972015912561682836177799202968206922588516504992466304183687694095991983110345363166875358709459933458295857893504646769286053288775609287214509422425204673691213762440471640988857144159222212398106163223497251255131710885847478055613710083087236897661711834753980918351985857007858118391863795000387578335434372179416457328608216840202027755227812092268070701573753654212210587854539188327696601815186749765709517843420450000093561653112891874669659093754986549969474183786810017276513980927408228782030285573321135102063550296704348735114025994329640561489294028500345807468091232268602048892928189431345619143273825076108176614034422727470377452871857150714412655403550761976970109878448332721873139617573066072295949095639423849209579820391619778363634867773065030538457163853708018792775592364228888833085081136490766930548150475836498962905113859396522355789772998317886465567448561701733504677774712383550792318522038040215477777499128785804537676630579313627909586258034172628512060441952205147554648812166907914688947293886339852739554020431835356760640617097312781620040396996315721443245285599541450719027384955844329306323823834962223869945959080147689306575377840665443809439900738553209742386066881789692178119672117689086286293503072817209061337747736443937271171521411603967903138275036679566969855428766633745276147227686981396552945715657954488069172674786797080251474579570012632218647151646128315093134118111643016495679381354909703879782227841368159903940586218003535130373021660799796109764406527299027035022340716893332152706602507619607470875953597751024169466437354500583191711863307274533799699126005737719847221672507016380117819191183021884310208281177048146367775775169581089593541973764321811136870410113848046629324235330417181520699123648749725721530231983772455081631572612700172195983812645079138032545501860335349833270043700409285735677788326755103852366183046030655439350938481646477448102867189989611014532536390880928023501672822221570240253986199740621187283077118664938182772952946443667244317832070724306536709021054611227719587497615928927808259752859717304683420745737388501379907392349703687553073128073092558540806949165596318432919647114385129804154386726342258551418301251086216121864984815251768942828994290007937184700019559733983091942689728883604187109503876681613084834310679785668018561617545600028144827395668760833576169050723654375815586598033735045710549621010836254456209772986955253042026353290124092793383382718651372610816871933836035767068722820699176751784645320718706264654642395779865159774509958982069588920768115601482815458971350190966329616591732213549784159969581553302862011290329580295547078768260957003507454786609662030358921179713238957620958129789951746070139348297021898644630194667304837311313317335798159577091656094178761705547490776478142271946882958135761721392163841241946317797977052102803585103020674989904316907545468547606588687223348618116876446891277889788386081626529272398820950559934766941115064075439056892028584563388734375521570634023918430289172708851748587388956402962796969329445167665840126081086723766490341699841357035658391155382126967425458529079107836478243782585931209059925603292263551615762906832433839886247256752889790843603433049113325148982182185741364249312686942336939605354686137136785413588341982867058070904539989815009870739674166471879296233557295786830413257186968496217925856624321956371665589874848429774279783574960295351573616328706883346940080557396811943446308080874262227679137589686808558905895030538994597217327132717728235017734983972798697415512474110838031972552447619354171533184664545034536756455723478072274856061114738909916207622792501546667964768279647519203176574426257974363221625796963806055280879307526532956470565921293164549146872648682151078111605514740093047778369416269326753639806529693149569687230385685782473053490088591376610787286176886229192400739307663499149898727328280014001642781210367192364379174126434021972361036076941573062002858804094575993503148412782563418090972274370703829630462218956127351050217742369576587942937294439018159443827179719651856448432900972861360469089848777158521928217632582738786250499868343499601864443720418543426519689577649054706647074189208301022694181315515249585914507612266717068294815983841253098416890967402882232855405929446963092518562909236545060114982806914072906708221298487853680018071974261188675455746553979525214922853619099167664369164389322059794091178576982637516508248108722704481891797930447566894151025870941170237076426436718944103760789061069783415094415002920278499934870707344880211121554071751634073822786125045509104913148216190375252726805782154214678836169814147264783669895537801650106025787195388433992696470694529044326679457910066711445520852196476467728609112042794353973059242115390105227376365083523729780087900566465195002919322307482375616650798272865520746365739780787967599743637055449055068631567931575721334745891322834375490797488492307870070597968529038391136487158969115001829177413099945087952860635155850502740349067361208758591041232280381881144773582518572297256480533026841188133829955582520485532326716429608989547206777690861995710373642365376222728057682487629287459401921831414845441757028705835370291595323120322241507638011769129757559359537577459507040978346816948736653361533551180851677172882448180704419386343000392805989563302500551094906291182954042439449781421981179633706533460660216773907772300069351690684461692322732920722397601103012117181684083391756097065681567501309217713476073345641667469087359193079537678430563852731083389865438449969269328846718808431940256269375066464170692548095613240851302058859095542200531344917648993612521053039799800802631161333606480206514459269105610062664960984456667926775411042015460400152572262229813555225220490770882520756958492498471427807432260654427064914378159734634248008081729800193978138215450249178082438419312466641647459651551880960890962977738192920167568434804892809051631186565982846152514346969142668086437319394821201842410891058964425239608648838594939319271109081267024447701380879935551116606077740045297333723803261272127550407251107464081910496416964998750602814641803732212508843541430778497182606243808125919045632107323730146595343401809587174315556112952605249455363103172856395595646187568204848041527984138408625464854871095793408177825859028552823674473678844320910661922472762672225119470523440951706679875317372091422223943843663330196766661514541800297868205229020076032589129208336396141504266086303949359773504464252328832265458519304258789247574439363624989272393518799508326159039735270879908255393591580105064062203003837061611723687768288490831968723641449699188233367247117987588590229533668118466669168127278374134098757786336114589225282456271732564539587772785908293188536734705215646395551875485667254654348573880641410753387025490260099093532610345033368266046763490701435561791820773858130666879430223850179290593393917005354012638554680880812483911258860462655729598442188068707679001248712572269519566938062561670160799964934752967305669335227541421529639685521223105010776748035722312039686878014603243605394755419931576499612727414597747385898078885620502715487149352938379107015479849258887773808108321192130658229526658831519258325352532294650791311043062201696098268556027210508885476799764818013414208912226932450228677802970246965387179067535494755441816403122249695823434284249195942598829015686916227212580394655255817343928956520970218289692499111858578273249651310289034445275176867192078510914097695743844186397940035412159532204367834066036478906616380890320647073267872907911685094414032962576753874343795569796996887275012500728864803071765332773270543154197856975127271069854079738094448768307821463707806540101555311612079799948950155043493245333328538747790298197480238485537078529299548859463018391705511468659020147176657887987620527884221224937298440960109960996185727604366294709347613984317321097745262596979436120080835406154167095859620638436003814808788898318234226851565445481455854812713656963813754191896135370173016501944070508353765262636339923236389452582222384852401031768808528415799282648523640461346979387040986195977825674219702256337818092455382935335903165184702335820378665045069168309489895493697890903777363839105891422829217333574349753735040123500849608483152671660396031585860669532427439385481507648566324119725557601178270879034389485543278908664145069955674524009680244194444837968439693164954111423712398133137730900499230811044741233816102943166508902292422407596926961919092345156929966226189610922580899382216182393930097945869609747413625387625440708694695101131064109639862294563470076267499272762468454096356873545147955688156713950121407668659780489969636686855068553040273829048546493083805328786281977856435240603113216637980734120594484036582841788965556443238504722067838570601689038466727400422119602283479502722545383393594298460576037187183688723302681117216512475365618134454309716787562952501488982382110541860073133882012419049668176449897659031060908115598643903742162980688910337646178277764821870803535987169011455628314616429944803340977895310589548059336203612907339810880998638429392908138619413463797901806319557444993238187074105990664930792102451626488797880279351144262142873888097471171810249225011141128829772790359613764973925968804739114811372013469930072278811365510459521533971912295895937386789415655009315971935195208405128835562432366194317791573237166355585776078159457694921694776962963372655055224121928877038675559289239007453232995637116814300696754177860982842377559814838639606766994077775180914186308919565215321386123976289986090650363333392803924469536958227622582405278783318612591816810614225958579271234163739025836599022218119264010818297410708442819046087692697970923965502658331530223529779132550735231399665222821760071559119233041625107353622174927235014386395317851488140445186516864309057704735718623270690487852731136239390995650770285838529639369881057171328359518163743275266270185181130671013588979125466768247283706572416919044615118090580073799548508975054014710590785542482108628141985876668470664530703863984620276223479664019758180330843398616278196934331514379061782845229551622392185315337366733444101426739591585397874244912900708675429652066257437911879398265876654909973037480159666836101380582441730411268310613914227631001638979101832628251042893428243990707996347205463824760179490698201267560219560749474727914337291876237391608557994576275581151742905874675037251066998793295158918628108901854339615340163175642460377398007873460018116440968226965778877243739194561445943908983697900383730896271013980072260678259099726882513290377067027003569995254163110211405221003121392295137753360485331819143462101277732644789607691612591011982940565392462170473884518803748342832183367486135788369960926604393093531214768928867529374257757481719316284899376275821794049959587392902476324211313272325505714933728626324699333384133797780854072642428469389437544005004589691542239048279094952341715906792336130505120036290132557823550437998760585326758124168600265415314807303289968949620915953360886861334635260118338295327300960751958562377601866234688027687137410267771249138191223773533273469607766435534262001678560819902767229157030849094356913449959787970063518280004963319247703795828787044314256731624323658212874087358916162797918763560066933708424734569121658942864695992632237564518935155324811800149474524944151268951533890521383612820701956331588400265973712185543867274103502395362029281354781505157895013871605248310643508564459287178786666137851528684455950554807909150074396494440712429087213472742507125212377943556651332739318296202673828112440692120582682330702978911733086085150317952826291983812565662955401167626875615160107501865587958192092818932303045690345789553107899753946757467992515230931282329417879478805105960617079223747788025552686110123921226700267658903507539081203158448701629304937239540190593782982989304679480285433229209687284080978115469904374225074536820453591244343885430994315128459890280586788184669640799431306251713815212011077728327073275997282929441074063638470065946689651392723399016479061996654315388063639671525370245136471913943342177794084850017331459922821706069124951960883248679241435403898734737592248696786584652475567839441160699021669574682456314854765147197933492748589924962835800904269144095693778386792855255079581346065780225005028491828054333695725718813622310400502340326147822848250148387658491158278813241297532617942449434546429052580457108948695016203657375098788032886697915944217312880651347389441047002378285027626834077041770700789230069079804535539053119832393455090460460575174258415375339995748657458947116055201122563916527079482846209285462678842858059654376654200445559186876757530918416157516255433185118248349283094395043188140192854459680502502073110259184235673548085326439958417235831774733200161263323324858093551396086246702996135578066617125070953122771398270122222757551592706156153612751453458142586755009870992433188759791284311102671031328640153378271969728239675191842849197732981384953230009103153964983907134641533151878015796453111398497267472843111819158605123416356306515229851090348251898015530836820629432798090735977696492802166581703638240290457332173143190255824107727026980804896818909056409608129703238033908598007710974712473716905071305062493328440711056788098013850721567960811146627930218358681363323167967545041000903887917488379945698940565478591442039156897890438973038264686177876167064459307346669263478685617534335873793969270984974736357731527956593678336518932419003689626768088831914109900834409729150481549450099624337808350097353182416847334024580163819542431926989997560721439374053882172205561068018916687567027619204723466864747317745605564992984819674672172173087711416739241615430139687809163643804943065970696952188554660702595395133137941070265508794158852422824073241366985868470531714188562399233525162410456444023168962502148982867146795776613330391526470801399062680439818977611382597643740089106704435299660978792544040936689962065816569536546739919993714871896826044764117798547113974609897909327477324930859299993297462746948465049903750501779134918784165087350605068651230040515330070035879414918827733294618967427303030393559269452832123847579391789270401885156447671240717831164137843686277315783852173838433536149998500708308034379185471604988867815329692151506510057160739407713975330416737143832092247013284069722337275735876601393660040516252743456264556499868569353862847566606001099241157223419088986702683411976737403456948412057605109472089351752490827700017926104719654066030262819824699730225483610723683193016592556898969723157074223954704587100665628279802535149038568198383160539385301658856070992632606563261785995502380332068203532330270696818968229233544043308229208853923955732762748944360098570721606421053043800640760713847065627648550459659225028718296228587632328115353198438711592055507644893000237969738282085240369095940503086700578160184437530864806646462599547607324544969876370344434603950733635909742731216496725280871352849532889324052603770164257131665373984455756471619269583436361680956521771663206523816507228477523621551294434810489589569995299523614208725966737465171392742120435091532873503498564279191113815558859999566973359894890097964289249395507245368415180917175433545272816279567362604341235509066175175182740034162755709900494173904916343980513409720853404952472325002702003181312842601006733320544661513322963858325114723502854294621996792443746323496043135675229320407019039739576066993841885456067230517331746206886508214723905276169495400941138017742033395198702032039756016055992477496050779673910676595386949634916937540971631131508980296854488625759622085459706747716346319068824608922990606924556131065472518563635465899038443392507608105455883890262015354193420752851190225165534107731619977555988958000351430613044865016421325076115808685163780470659489192338858384607160299325645013870380140310172339277919384446234116071860329722239727561477036671236840418834666632141104752575857992433926934436423209881666667724635019352079608359000626265514170778829514199257579206853019650255966819392585818090718310113764132068831840323036946927257956702437924245400958174135620801767213217629455540130788187132045379485799749980579421509915997843271274046423749102228704226055084776369496512017369253517308765223590121723797355754595404920411792299723941133510771365129292469011654297043139215688071689452837954744143017261602289209006660928585106087429528024551565998297770505116327816351279860886127386217269217333658158726522147542052264491750105010430968160643143131290459973734004004479506208837730327262845211578320440835345020565388137782236210408136495495739614799298725822327131714643945446561959931758303876590045058392045837245332132770113306289392343243911456646026661641551379420137439006191652764331542601223520989031635590897532174407954282282650278190124378195590634405947987673925887988778864072254624745316871258442539002358832587107944248945736724101313214186401444692812145817632688723313735810211061685901522468629278336537252347071675989272431727487492638334520235709960672026163590279344697362681552370971926673803133622136004046747848319709774124622740638227313468974351952140200848949168340835398730214512970056009506455407117594263739399247962404658738107954174045555434771930499773884619263309922401779111205367380198491359175508800616106687119105367019441868354067855868080682031380667997324614165591457406051507083388893336310906924517124416176604242387926045491640116429537457032504621679180539956730045256695054617449786027371528202061750403614923953207387146678240696228252651175112319473931490107224162643086765561307694114346063687035897205050699215224645069489210053680188261097205957802016249187409279013820479470993434769339375544840978199575240002840981072489356611437729652088935140419125908787891074816015745043065058193457153918452364715371986320909492251077910245600946321036919724369351759583317608112213050186150244582269805529652718491935429458832792136993961127285952292433208782920869722812155576344015372850451340521615306724857016294792871930932324128681167991052975858748723488114024480698902938224518719229410074356634841655108579172390744006742980654414464140910116502171777784572197189507821472697727886199108319218187332177804527044577594248080764740224319905692386943484679260113092456400087399311938068551144210303393174036061790597037779064669976213760524802971598263128179898323099695168566546365561038381191236029904533045354858482357969468358275859526850395197979975274961916814132944971530899763695920066937049908038432439240414643288787936193700548480887105610017496245646764448848109564099686274803256353723898769933756719341231253459574509318864792905584886082875157301942558408657134262263454500119306260115064732585446855494843097606171838909110501420123088885596544304966518091860536231106774870200094424601046141092060685218956662445181340543849179204375345341593438672798871152668020690659958562406706091741373016001228478254322855264200992732181810882077327157593889493507039974943558967675241709417547446186227070072084682097844188644415556482036458832355125323944123869183002406427888949094257662331211800948795817247582634148276506277456679244279930521538995413526227957891071489671375157870565294748927673967991625836597309435401701637383038608240119894364541921819259823584567759257078063999844681638490863377801264279036339119024476293685687240682910565282689106963284080918482951109986425659523036084540121489440802074961914603800593675549625591757098252856450657185345443315404220127607911028093166061008838533454759343539023138265419779850879079296282445096622150857470700805526962121380603586086624641444397239335203402346551691717598291770734604862243878302732948085852862316605548838533076813080145699521303916945692327189370686040625399633003294335132649322395053149259811290155355174653163784603407397533870983294340433505509145626582062791376825392968872204280715271107422353378424292750242658735322029600854077349648207303065894331000495171726654660192323230249009613079561351470464583292220454543308676819217808895286619039055380620641811852568574905946726530259266620821259674619740803056036360652005136507956075973541420930147777259225550244452073165427047230502031244706674172367422895369329026376291907104617832426108699818840647494017135228932084316754106684805230154690169313185590273752434198861140587590918242092171708984593463850930005867072421723673534786839239909199138886914126522274573838474426860362028819683199795934410129181363574207794840529353624945621292350358293526453757054795191546685250182293368430183600870342845389362849152538973465718336661750242500733566910244799716177268795130790304834876963344558472709652666291721284261727365576906745620973887493421454236675094784818361027577050996565057181315503619375487755247187228204607463291155556597387756542933934584018756067521431155712699906770912725789441183233872111919816416375553260317613162572758993244218073172419412462820161261981717172869618447840861842606429262084974504062333844361340617069995174801230144682895210537566233219140413621794739968510115554994001766627041718922653803391588480027705964846247310032010406986090516843961230940509867906516298461883762138987038861917796863275476633555689424199232834427418738861980087418037140615129415032723418288330965042810629306717881701948369696739832771551747680952600565930280402519477101706449670857501097947896471419127048594938300099220589180310873266324463617140546708811417802087150652447231665485780364724574758508516912481613942612941604015739646940124544612810981961665972152615624851780145666186703501280094944526503574656700428524456516774659741582064066344372805343615904186586155021880905727458884912395969528899467264509940681575958212671023493110494279026715187389504611813133326233661429637944959652781788576608074290888433714192547387589332816305542373712892353281769087411424409903286749766404682033485087539946713881411763390449960090444087888979474146103857193808141811536860894989672313288364205588328298456642083516566212791505485996405554133591164115074816714447190340756198563693193631864775991985972535503160490627873560955083055587135918736331136822334765144702137441657934856982854472471418439353988689203765420993849667121335413453901759758073971567956248886187258620139084453123833741428050864440255508844756048484268903969644392469514364874105854964618803697719836503119745892656838646473574877776803083290641317476300865725411817859263397955532293639830853083090805809938561687947710089709290564674294294687764282962047478917938903681126201062317418694666689933592337655815125785178313106851767329737433383275967111484247201419052833306481415190646276292931336117431763583646507080116234332587583967181420584118846106209495837070595498361947739856242662690664685974163268179149139152141413172933695973131548998495536412223302879862360295451727526083285747205624229188196209259945026887444906644245265797517363614635711854320820127821033548876747500259403187889679666668908225768566528692664425780184803632683907233400772792278236455284280937848816766070287479643007413825051085596022977256565965290441720796296174085961065996909662116639168101106608347035120364016756737098045595242652844041493468140661200322682780815959229316363251500851937141076604160751541309101118667948988611248469004318352340004581255543749319462424944661470218769997591428510897883824301391614667784515110751403534392693694121251398583959325264218855171118034870416302278803623447408573107447712751250745288716766320663577410665174305017437275632649892664327295509314223070990259964722012264760620101950363874066441150541980170726423361618011226420490816326717918751077514074562474231204261614503305546364362840155593155956264249471452039713265653193830977373022651243366340417297704128464813431348093172749862398819276957063118320988132282419851130639349044208433709202594413585384173770752516487469295113227789156874747407291767974180773677463303186465100257349009141842816186450699158797564994253829567107012374453236271790246229234349115981132438633729410661612770200561010749872196348132148511366473078288800834524795360190634056098353443882645627766835113893889460191959247866497856229316501246880158398401325803686580835553300060020675752089875646979536385969162006486379393412267471262305949190175757622700599945230895430517131042666636039880710495297595720444229888180363317906746174210857880235699188591919885486108196476742860431169176330351674523621263223679620769545561914070840457831829772304798075526821919236043755819665170173767230661684575237569536041712507404208047236074562336897705103045409030748010210322586581808332683301184344607882265690204852786664355630829017843675277470025163090721708663935216965360457029378009455172724132498022944327906924850569063958909661902041378639019383828766965826374882709225377078091788454711692475618107994959284481117051466416464122697806392000330689647089311958253196146196011636872527544352972656312042182464743569982248646163377598534825909365794129458703697261309892561220605580218223493829674579495496417766567026098959206850349256364347030499032266483202191405887979704093882545112696076279910103161303229092465182460278542468320085277943975893804084075119203017915850501780314400062702674167647546285016723041682150557503106829117696353307630525144930662604264616872968664799887274507808959958673427478422615255125980700857284558897190084566757277050310567547288191372986134174148727488589428315916713790369760261038224180127296009677505113498656684158785744190975804182348665595816529768192947230172477854624419321674827903141693729341570110024275997508264407561036262504335835310268439590602634400242660898261672254928967106151941469534004151122867487166124637189928249009929581483546930254195870723574092605657496841182924117767858719660575693598739915785805709536442532793048576128591375291355256739647990032594290685056368080087718738827061975024920624523947810467111335507205569956096806092410462368986400479642144596241919197196995517126524906311685668174408147055062481300740480981311836725965452900889341357335876088560191798101372668895030340968670471740888065720744941414443035831767248467126384769395062006130144696217255663844361527175758985688477795625490925105115962692683089244539135098756817177452679774444431285568393102743711965888814179507465684740085398317482683398268286392393247883879119916791155057488943845153854893714797387958175216809534314564291972573213240260633069182040871111048494937311738601890030788731516588267644730395380234372774192919803515486797614945691980208022441114427363039442483641613889472601328976882602575985933877617237796678395685583583814618086641233397757415543236844115611881980525963045420994354887388041282571447418115079818887230900236386246188061550595943460542123256232190065954535529304095390668821899723694742435290581981644413227505537733787684959931108674151004617125703579743925397586667700923084660997542461651684630067411269657278262873231245646796949999023586126302343288577137919748454009377214115222032235101547913890696639913239402698005010798644138830378787002065660201822638054695028715729715120606619665804873941446909858139738768312669400423174749912318013237328158992344628228561666764770050483956681001135304222514553556499665301731339924526213864694030874037344563558035256378536860884628827362017634502780013571045923652854468363035191780746081381847641339906375406643988895298093219010499027434896925598566064481986732244994395508900012315158188679233946799220491736392428842226083680616354922490888999318542670979461751998651243868248791109965220109892228238503981716063041309407338164549633104605006987676346427282279619474684517371551457091681285689347470329896991050254731227459046662993276458829998533445073563122389405790458525324117832987168729108891182132362312905750584432424645005879828548809687681965519687629577394846310146969993044923250233613221611953127869015684306972971117122853122618441033100183305442768931861725501080288237558569642640712885882710334920521338803335942524570685912240319287267357935730839543777165340100488583134536385864973504953488313557476421001890585032292933668059332969141427871982217571629633129474125468813576931103252621102643756152241770410240976391849680097662617817783299246916986353149803559045150317892142452385311618260077589248902221057506829207155367613763383413040433685011217557206969911005079833870046895097848036502195935389554764833713773034103034730431639706401273488263051542851276701726798379637050680041022894053273743679086097187668519778365925976747801407431534106687135118152291903334480459340081775710454195868291370547519386762956608511983072893534387942113005870778093227341605077780398124578105372321039299542427963067566602893595446577110277584050604717366892062886478590484501522768737032061446877211890085280202300368081151860271086796676531867299167977252157182711042552955282213098355418092380729701300918528623315025190953563502512699516893347765109000027387547694722099498701126911138946940949427240218120510858040481946752803050985448272502721841162055834977792385303143653967607927460038020685689193915264122132301200006748257821748983629273432221888367873535820889077407100283422634503148340694858641682152957651564529303873931947449176677634502566119690178723091170512943437315163522145180818328326206011157423064317173060506602007191518157279997465019464861037385609981448235871567511817982199969885051788395613395970665182346887046388567448801690746990899401291916161609176426252673303400425170066045439202358281013341425665118146288156034660247561274386166972321523449936306334970209086950564118003923171397633837719503137236205329207717275154679792531281161964326398664554248647322178263281118383192677647395352169681967975091917415789819773607857329257236739603914513543628002135971236928998512060040347492330626482038438026931399146078593605565498738508866628198556952179125550241737948157702528806647510742152597019471442867829997875718886054454551701720229451105026835065625929514844245883392649832506564891735775640298343966888099814607759422877863503394499812533863905826786399490872101022849764878892046194606049235656731071480655875728652235934009556901132710663426490639121627817797628866213235504068136954511888281464802368666445975202251134823463438493272308748766162733423518293683231418491065438785741287751154142000676949992679169597734087293309511919441286900692677729584694236703797501146903608424019364502848954766738732735740735479305391823921497723188360544697098382911107768155741389395236194283297463660430586990421743392637210713067034414612003262761991300426683449988719292171707333189271134090515159442632786530130943854957765236924283232482811371505288672925581758827988990119300407058813457785465531899855081001641760416664003741265589326124926891770360931629855429897357584587799128295163321705737834871350576695742570162023254572874299668175044629365677638777811224664318289951357426221514113790205093166337437623862734148152960882486282898419287797518794746495660568261286489871289368200178124962790496697878657167050613259779024849729879125698974719110466931075977790552806648113927018337383397572234981504452052298176371360142898814645964124433118294421959090390595638195597132307511150340886889921021079881385394850914869045245359316916891766845933566951093021277286328949767927722796562723296979216017604187369030539887182484904984226806156439237799590375742364867988537096987640962176402926906179168488286149496293530226380577227192646317069881334909343077836319362253267065842255806151056235768491829304644332690475332458174834682969204185626374254376593666329145786047363750601012822493342717612967827682891992160946773219229124564581757199305173091168937641343518872995328403790121721714266218818882980699350201846604177714906105655837205128110017892928303181009146839380466443692077074565868446690793077811134301679624863149355286126219282404565591749907201673530373906413423027511345499403306882250364209552725482531714963984252293538186510078265615294457660499369081698592213342834188321792452447927399639776107515325958141251391243080227287622554169766809263360432451726689788667926321355989039758612629481842444831977097636249683009247996388533485928366641278399387093645624152650583262187099554311286827739929852761219350326953292742361432293027411137883885475722992831069388257877423222678976756067117184222139915700395140364814753960782139750618634195534162749273724554053968500907947228813076566920540053074314990215142047646169542213676440997504672245860644465884050947322132445076606161077219100857148830844766959629108623295631279438096793873675030150773306850497165939446666787114758368793648286151477006549190381324012177114927473099026172353783178012258256865970540624754020862543476535310091996339797436164614140637072586821754811937852244306948750841418059575490674397410278160515126905172898359839329981799600920288964419612264058005340142045252050125512465736385156028204199338282017263872839709086782567362588120683326108039586515306350197537646769924033600916217945170927966304277972106409068607012688895309810715211169015970683329052197151970484286904333734851851130287404209350172405886190708847303002418704885346579365352143288373749932472807061733108317500953645216565196369466500793867867262651802022576228468052232933893432791264655327253804711442128690861006168415016497948139080309874059093231363253126306626082253518458703621136539254405178310811042562959783870258473848709332150889931460466740723230205285227655382945767732292023109700798238606222061097163627549938949873079714207966044658588470957032894300056267468466992034016585245941981592826614484782560521932919188478821130060550848663453171048482422904140071116412844507028044930281376733618206464162477635309741521670189233871564417426469140601452729100319676139406421603031370705583027137575453020742183435587210712891991278700712970375583231326103700296957762608335815883279156248620646576422068395642807327281046836262275314188059780934063930095479089813587367238105788639704239900651110129407252526987627953023932581156341621403341082919508193964553151113017171280784575498183152603763831612018844090571373615029180965756869464736209970690340048219876717789888198261608022974643337653744783339067952365688895145298400566992889011743953003512049852849262462943413122521590600502464077549834516893234222618947715616385699190667262884011339779922494832095951410032553951396065020813362035022586829757627378398023211012925799615897183056642344047784327570849061067166433271036913329186967878753924876027327567022920567602340797056951542354935896389853739833849478563346973049082065330441935739411040048038030344804649459628264263685738872659897182723376656820312318432821818241067804040640767169656813889106725674749718461051765526798797816234375616432970379771929507624971495326188932835761287155501697717010380106317549099507980092514108386192777544932624128642243907379389661611174055239760681739654315129879501605720093087326859989422145903386114494231839780699182944650837023754696513191875342463432173779879520805106713314308571512713684273122399770930166739090995798779665234684028485828960450174368805912914423008306576109535416245698194462629896320263917360465398364460940266431947930939249359217594684299950810060683001434605542924773350777553573775291541490918485150137905296528511082489354832627322756924797958211011906271344047763529396357586476906604230191998011157523741525531607283634531340017054593517077408437962053523265793839165101566393247760796187299383974462983204389800466930603923360425364199129754353720285466811637753174631058131018557880547794121445646811793313480022504570077055178992348741865474081665840156816374735944169799175415458010366935258035966085079879559696947192148216174372242386550842096297575927632732025477675425864562785789211477901975436949820280504685082593298092998451331851223120269945864353432154443478082017054838278996878054599592567980845102302617306594264382949140896268120648493347641307021487210612157343416300392271342820763653526393214355022524195452987411884169212294006351547539740917173728152610426119486228942891183998072194470928359283998035732327020518751652074253294429193376104061302474452941880557083237400737200586964114607873361082284982952193698543015964745689226929086817205151578956394114016408994704367630842161172746877984870268365523164325382141017686378980282544022367328767592036652976275100467156071212711046623172741044333708676963178918264539741432729169635898490374872826829406045491349890483069789484455995008672872596933547253148533166105463027823667538716311958824329089724516104616342500565221931299628417427294737718431233225868834190276410730221453783288100583109812097032932359221327017441305323092759141499365624802827297000845510591902305730724275151107584147368525519423015864344746838236672884969281912465871251465953496058446082950239456194082742404899752626261034669960201927404310965101281216328795711574970471645440278249510291975070783043039442342540690624099186626862464202015908940805304985738794501119097693429351741503414387083855550136742571221925123891136853412459253985558952721873422254659900221394093645114566901799266389661610911573678306377368909735424290669967781542666995652900632275127078978282837230860539119783962663764380739467703025078726624652382010814697402091150915710407507205968162786040174260750364244479550106667061394916748402192838853852883238251315795274918540011515413208561318611891878385216292380771849787893167716629196911312214664208556608446277903350144978462138291635736210927768290181625924019096211937785931530624300631293113720442859232199383305095114165943026716830183213125135726952835474462834727249477355654539764168420385663419894130873744003861844603539267134315225407619720066881137924977554030993901793832726759674743400313619603031336848464012745540159711609834459413699945105287283695200637060050577167770455502878050765937700908766488211514680815417127562800444510476972517366697699850491594956903673837066091092112169670540632338381938709827793965192095949544859573800740790742910403100985443312782348844658494029846971208681385505175725054660745689406348928597726287951621943278821798877426147316701589540304918038500494513907942750881178233086977426260560861581469804417412843641427103157299855097660844656982547626956427611590414016591537841612494265561410217441192652822419806159065673639032249107782508749704344949254153840098722675538687646608065286012653757184027546018595534885244491905274587212151476109944198867813266378976018281428736476670946920220096356140605185910738386352261439475594945236645378999994777516197506678128519501428849878265523914067481120499306131751912053958443027670984765759137041194179704692456942561559186430059622345700844941111050332823641439983951150513062065557318989350578727324179850430568526949167058237489145459745156381602758026051864114414054920798784824641925262382553440604984886889520915160608413052598671299002917535171740235578500033634799350922425722230369464258168806895613175876074613124082794311266888549034155085538412714562399580869738284339122478718349591661808970076701919693012861815784875338433993481499636032409973603598522678363790967784765557894606671051645301995419915091963898925784093648683343870867933364048076373262220036269839816763982341445833319073100748697528137144927024120976578887652437058684386247799922261785768522372207638318192211961650045271159986897352683834925188847315985010059926128087846545220443454255908301038952670562270952390833969310944350031401583400137607543392709979839378572154333173300243742848143828786524575644064429131894185690985336222847200651926141501196740360076116302193782759353395456468314011611775494089607119890385276944611326327509420935809127196299046257928056403888231620382175046857764599926281640260715653646694190647775167346845547601393303513442051755069394481520201417863261466702877724786775942306570013805347733547454910446294229086091455525819406500613214536792429267747697890863358021216340008567421848460663276179614141346627831757155124470420559948865153012436174199482322612003812957909700824215108553789150398159731627531590855566781740360450863010952939828317522045577143024826387146335050639923639997634692537082635670554457143583690477573376650079642769503839005831141585131258751518434479912233877703739736751528023204340072724027680411239921536367259769441503004589427737503108259012296028195448612715693625874239806822722932990414942150121382827975139845246393759388769343812011708047656072566499996525457855836718118559942519007046868127989625309805414887580716741708593080866403903247198694063344494418071421831804082559883701585602489796199241019047631116212453927515844121490106750641597139239945118305116035331097140910457436730115923850427678864934072035384335809293332698191477487276060462566135593081305488622364691381799091047767331259063872218847572608150816527981544156342363753180873545334786240486512044037303122674192933308900329957828144803575405970727125760662737195242315850653225566150900447508995972278301833208378462008741624780094399164655666200382815626451910573710318265502561215027319411380761608854485342208525560353234506222486930969289396536855019290483546800729921420237902467051607168403969156794124660671694878859518689387245037487508119050865778875017908044360380480089165404920380955368719752086763950080342680428428018556054356274090391842146397901020865452370553043413229585704594387031782730732639997321477932090357789456638831901910444112305704969411834357840801008266059485236517381523441179633626525850987767159298290513727835704055965286237110611700454379839493802606793334452868601826478129751265668709677664881816880641265390545080488902897582140434881933235896552681413680159956745670806502669337535245526466783576273501794889002181325810670245055275171892824357711783412494667226297878106938625750812342155389756072885371653632272021072824382691894335866363741908683054766428005873522034410628284160177789489271549500818536495409948970681682492357457347667161842893912217163594838819190442497491853473918084830992690665326561130177707640540046206414636521236261151449804618518901569398122501996734971157209410154923459573611556774633024836883160961606170605470870166442777381843583556249464456028565864281624534981775982364164262240299812997005904363428844957836313703639953928730772711543175014130416435211805929942154796569668607220630820571632691220442844749850524234640925966137847862320983329633539812958975167916133607472866365951355122634959184875192625831492457001518072170765457833616322914427735342666292190187375384597153978521106419446341406771305796336474382171259030604126952549536562576746828854224203207811976961841860806087810413819347413218861512193412507887375578876472220658830270939945199621498096999602813692879533654092637680810780682457558440803052362268139545149692969296156723146670947834702809553682024241107653753603605833623127592563233499510795123128962601982348790164176666934105847573871379429426391976132990098854728629921412969046076591523581140947732602838014501360218361512168303569669208571067348139956840869576072632828787227012508055709405183876057727619167208005224804868028030024621070840021323538807345254781986902228136079323010704954754114340744070745243001761442494016442115729815364963897228370983994879506050637794965832891003811663540937166144387178798377593632617132576047203530504136003332519961798968738803022403967912826296942891114549975340721542388551634703382500967448508861018433941984502535028214150856062860298852539442393185783603107058821373927196318535708071285749152929806496087904496426183939864294029616497054781262038101720980940197336128247493763998456439924452825310993911510534142493473603452396073129940061477481415964233154327403293395422020025228226392779230976278018966678882629767870450851573505599612988270746451005016331023623434251559968376408076483415393942433125993778174500766269729359979601269296573273930112674931067933247312189643527934798908195414116642342460345744631147497342474210397822060536874754557283472424441790930233399327137212726774122321954335223416122804636221730469631856422928932345761378515347515743113914187340398422794970066099488224446186074124988480552118686360066304861021281873272679008675725370732357944331559421963714754967905420172956268984255725163490293270695507763120294892905401466044705604001872059167449668527230065350840801593142134746460089811331961897771459458614951092989742883513241733419006201344745307731918462642113935532813180625349455686895224671902725121738152194758016574280980653814233729152682806447294939644290439314580822833545867050196787364756110292466994898793851738039067072183462510088809118439286017920657196055518633178189521287218290547735097831737218182126444198331922489311635729822204931373428859401802373888235104727542334200310833678912238515350019093851071848315328688244123754265561761286145805159178949206731319453379444126997806465546454515455794415656642655652916466406147970209123710145825112705203798237146325939628769427935936307431255853956293475382368266389476756554080176253139561661410254979907885894867797370700790031537767649019505532323539948237416382654644916055587132954984109411634374301458986615131643163540922221997758629482599516852728819666849458478110220069615994763929097877620699128605688630281224829348524540406814994177653304361045650488072673993902027814067675017475715686113168464173828178718431448099422406927551164158404918529851218726277351268988389469008392665197629837466068475988340769974904449606362654606076189878167737564168329311790264611523251099434561643750116714040978072840791361865546581823554411075400570529917999475375270897723704768632840043760257150275676204034010097856891143785820598933597231050702356243997896059784427146393912625299505254623551924015834152917441393574966239019242747582974045495350186350908686823779589245270421032480962722487215112867238531122946596595638061750362325010478420925951763404944014390242451999746383377041517666743384897877300362313456519920313320633921220920512295236155868996091837534428045289086315329455969334789239748042568421266975293220055823567430077978015525632293619154845365669582007197910499963950445157609410979959854922672507174778712725518785415364111762985486430751493388624863406917801375893788472457231383679942274767215457207457789183435037918966362110551958430653531606247708564574356464213307417255497969394763643665444407567613894294992814338049265434245153295707538338616635225061539312204647497132246109450715349315823407026125324910433974153052541545489154292798937896760834381149489777070158575178445425500914238271694257122728918336765416656054873308535830285943044244634417746757401613863473408845960866671442914326478618867572662640294891451775504025518703096725166874024986392852968624979439337343014180837035302716416837623292179728730120759866584375147798207736209331734675005407313413580148010304374012260169631248806832828042015522944335182194849679353689476289511443323488285775258922944534705722807734395169273625893709008864993406614367498523903585829132822185921408660574313597403209910677965897442420631860345549061237745404098281565077449398097830282882826000406584709305847802267370997829079280895835416121095573560438952584616680038539319208012319637055533437346221815264326173701928239310005454798774387619405254554589425571600302375056204466992644681006482879839854422842938390938739582297076840587357395986211816805499793008589820081540199945029201381845945776397208365961172376872516595725613502357823786245503731271991790430089384106367412872942518159044935156099916317313083843546937678807208545671932286393588312619769494044213087840155228453067350609612215290389229656047256576120005427540335858399075619245231402135187743499119967587999440775231944590290673050551772811656894198556734889873247988488779263364473796407996236794847377561506258639941904868980733642563434801158767781785896508130823375581380119194173025195778744526315801451831730362508378962462060453791499046808151372048889138225256400188744982828268088524213951425803415677348111760777870698588163772658667587699705682362770491538004174182849679625055345097633877388811257966245032999873323574734857136742459117503615463402468622921514366339030750507821704070243001150617769789039576434036475697224572372984482133198739640032556841038391959518738603349690501355144326885115508415681007282019378349368317227731116023438314705845413376083865385515884932592180464005650178206077621869487863465967929274103741923010888809224784559148729311634647151270816839325078029054172896241138265741741350057873206112500399048943314698373768656221402148498741003728793728669610136205468347941401960509328116941223591423863067152327625835862757541972625669594389408998235651172882705963449867927343562105342428603446084437232822535092801998212637801660027755533932302084947765738678672702587082611511833968377033115335468203223501700780099644790414457322151619165723923407206643656934406083811670047760186619090798972764580813621298883793902211404851415695192899881903118154655592207128415297929613403402489636733245876059984632775675689721352262827568462083027296632261680747401826362359687000311128181014846858802888923847526986715432990773688594660591308817609767928838435923426311729626490338633814991162115760560094841166323520723514212960281903544174422103499048128649885636569163382271189199192477004744406342199877839732175108957357689898761105182907026820620793565701353452695306070089075251873966433101589122150181649701397530283421243086708888691685631191686147789833059200124043169454947293271405160009480145860800052622181697786740844136724107371608826923094660497027728768665940347541840258412570083825860874613924471738127006455182986806028321031422329307109551859105007832540541367663567499837937964484499081249859933013418383393385411700707170096542571737331448648926820102168768494858123680545636135439676520468751351163145396877195015224759028126481729009740881393202196140728625139073502872076360269454147320935818254027029797856131900508559955438079209154218499266889240849378538245251879900506567308117907064866855404656394134453385492330054483247213393012793853667583320365807703924712693328336270380588160473362498759439639743552055141266243387833805358273449906664817656249438087281159436448717176528841978259038390386431998425806880133488741896535311984685368018158899553367075298643323556946010653508841868459123391519265243857578936643238960931936168499902174594224640008694496750969760300832937113539192321304275052831999101368145041507531825761714785383256762534174905892852114403489817876338339137596852772486949723281039950856197070473729257617343594436278058022282209277602542134359876257646470975944932155915601215331926023770188521693398952389185870597089320952972559282202106170267803284648731416932023811639572047899121632524848092664834626223772000786167479784031740950695540691718129099582188985375719194710247392778349277510579075344800474492621261928869522686211634879721565864388174097757309402708991335562461749793123674176397466960112527554657573930493416744681156200048426281372949483824081831390132882155513958853874490118432049936804170030911744322873296558448257876323906078939918235122478430383123185641666556282974427187666915374896953806618940167257445881301073820672697892163698697623576784434129678685122208206233684748771161268210116447722653959390641021925529510389430001710551106875163012840928024466186076481052015533118724963330099564776430434060958421446771439748354509769098455768113718827272995728003645015908693447288434643071045838174068889749374271424351330052624327073211571115460698403672300426058510470773843914916842027149143189848026227354142434435035154401644645244621348119944657363520767504280734896829115612836364014524849561645457046316945638983982015407019467709332809592977951331610292330574364923126604543786573843225606482580174736040476495901832206143249274165808181937898030505087950676379836447434345270031883356977957083612297958805174543638935132970823683320674742644986819452446459623403595185536795265874979558084901079474794689683243214090126554888591671455353447512294280764012458666432153503243711193172773377911071838651697861912664921788218542208236301957042447173116598896570915469522183461798385518403637382342375522610949889828873001059684803123266504000275471750664485940916650373388774074036032314411289732495577233492601104107242344709465407685870692112177667086360057585432451755013722807038712293969144074208796322930696469557286894401175673173699109907813812428012609789884887653457416640745755220266843594308245268173887532962679887296013013073646170082408667001204123998572868878584301996373402847829208883993187510044048578069513028299104673752266945581274604926357825330350074953890443532589580822924303496670068855445039464247192354004345684440554247428815166000595909895915904430093759513153081282478882828117630420396923581526556083449392195055631521187994505816727263316387086070457487087513827085868464491776855357004492272366981621377684930772975823937317562760621493919330406783688218133299952400458742185654114406223667249146948678151958605501184993194738294749723206593589993302132990319844830382422968039797415594613047191666762555069031515076985201472374024631252700361842177036256615627309223830909647736822388285214821423152127942378771579531715820485256828384290032523487922786858056728594534791668380105801196527647536010778708725916913599238971283067296143251566733555576559594743477719473388068068856841644321954265010480547428138506565862301793035094079598507278411607076551910508175621875648353579448123297741605119804248999579610355778276527869275145292661654451428678028924840402132392948433792928031657676977841083645342973288684480744168343993081358340494744668557692046147180645128096311149382481859097464765716251370925692839526344813117714521374165559135316145125187899222879112633343112989967335607182045498187945349694246346556873437827237375736910303585224308535927720534281035160729477623400037521915175138303663423983455123544347624359677360846067291633516810541250085113482368505786303675626623069354217288912013026191886970792943319497224714399470996108214429159638004520464631954549414286398413168932557461207506565931643378203569032018690733477065865224899064065330910837590042111339092298065414524564708752751928364341598292140588616206962120739950774998088285050944882169650331096225130487439353612067358065393319413726374581468377138504340301133183815830879465012312846301440245887931509278216015413757285955077756976835499904636270002081089966843429298935160650431522104971778340805567200849285748672199674042631010203802423286512341540897539482490653515320721686456464177270143546850986416301781530062155400665314754670055746138051215873118697776758206770498395389064518499890183188031977148353441075961097508095120646718836882196233852884479211824462081515624945262174102322700161887605774363221535269779845687125476057082911838963349571827433536010521162952621057043451254760958833003188153487170570748835265535473848924957883761628403954350675905649357390824460795608167429631026755480196331428582256228538373410634734683312932228887885316893730901603548809751817868269152264300476538223113262241001267194696391286614236424760105216581180921931301345960607717898244669176800420634219460443861896027744003940462957838243707859113922997773788004188306321745878750266902123644665295793682516324813764612803893769275805972186994203590155215427423286342983889161344183579837870691486602893157450661712676892140199828823160971939599134605857941460940118001207646370227070559894693337738913045623764089836133782011100710428229785399482478263667081520274925450745383096387732740173334383387084723113768959043245492007758606184570080913751122583774085311167060369497451693255379210214036026833040718128361243957679933069176585635101688853652789960156638018260317895457827620717328027754391479863458994620052776475803487278693444556184813160615091581097906571251869327964450046428724715497614815923242427271676429859637908380014152745465303051932292794885463587633581819937404865279759086481691200947350104871993431653165884885784091868830317923039186915013700164815429782635680377089699131963787008658680002372837906580443421782596680826670162816171233312161122061973822569853253276556895977307786666778426119890033894685675423769167711783964575159756247967369422808276572604409872495240853803052151557074008651789326335888199229672585643290226329332833683083986611590851665428595664961632125931256964157657322342315047769249156982978950443687292193170753731360581300047042225051496476261642124646494688000983895372709363146489384084997202996426883798017006470794783670310729959107360236164736766855765704035612266200781663565708394251839338223536318204623414637107523506201674291400395658708062358487473625085054930734737334253813907806798922668312219874626633990559698950476743274433907585355381751709386888084487466113803616797567306221650623306254939493750065217325552026645532223316090351802531125206810733074020079545951779814874236906958156940065740153273618832620179510045957402266771190723166987009648854414951970630751226305239754647069354725631045578651905787565376533522643200708268260371950563701828370824389182613498887115791606400416091180523742702516331182461574045898671617394008374000567007530350324161576778678077114412211371560945139337358201651273665400592509400580092921969724173213031084790982739874663933929111799921575979060661231618383037112600259386231836296574664982524219633971155958769243614521104638550722313719945751102466900590560899088853538204180606354884214283431580815446138570195469581941074316319006091716100912900490072373324351136039753034374755815950399968340909435134134255958134496695536021968324494863969007020314227613726935737862005772025049087068793318706256563168333025676774238716174366403976108170821396902120516244935276326825836157324814820841336899945323790594455201504215273830685414896408672499619688612830641363019627476344861235353669537938470110688968377331233029046344261997771161560125170936612118059554892460847099104299026512719737458315415174316018672253663745298614619610650410567161836288409297169254510819423914289180782329799784461976824696516757018664441957389951007027091963573141502742678511735672254787676018857583233083093739986814227620683422317403332124423231929167349282397333511920182958574786739975010913014279445187199247207453858529564626681416022969934769957382808868438947069464513920879613418156221350062337347238340538190368057878366892333557516475642654675094780246099325459617588591751750494564708395840461833542420804335883108923199037386256620773441848878042458303238207728564685235606279354862805942102341606614958328447600401409086500641213080963822720561054566713739140487275724747665328061922639445677483922819282593863107235637895523581778527479256271322495745840177654966365991150095028492093013503062239096765074966712272619909691308077607465349340870745213375640235441362383271795963586710382356274654104771264804603034081423634315891253220277680398143431917707429911512941206583583698704837136759106575684105967971022357157614474118448667742237030241922559370985180496869207867127171738483720552949576441199828421286233734304894285985719109259551132821236311934923538075128012362901102366918422313008601061158403917853888499890989016523758318988408092213120710788573652276409372463385013444218090321967468998490139132675279356724204212957015117137831703008707461461881682630586310496602912995540485670555058239929514388070224422521816185194682931051336455583796691513929372383535059839203322227525604313274193022385090786732423585251473962237875630913307626433475627820257577788499007142236960671563513491380147210697082245657017493378997850997109203873822563762928236804148108702173453960422182474082626068419304003636899641437043611274577617344329052565285554410827381194403667966807835888295273809505507573352461908217780964286928601722339192975709838204877958102002119257204567104952599833739421415838214982562987249462336564077425504120662018455600844122733225745778124603092388587784250158458740795839877790893695651859335103734044288389360872388232313290543933570949848824212082518923873963101473153968719547784687489878505508659137661347461758283058708726103649898258272017453916215405816733756250701911464343808352842378178183745426288498913188303733783374694712716498943612784690484852638432960410633449062301206264695009646083025381745770675515624645374367628753238595012562969314103763673885357921502201737520333559133873340934515702108631289423372308031178260627981358746876152386535173086607937515398820721957854371176104286417105940257018771845383438859284296358036570032131014564557486043375805611136953335017189441001153863366332855757562262940564910011164438448946395395144659092682395382531099467538089337699323371606693851470157097906631944174626371524555678464649564001188362445397066720739941127859730337057705233895820971487652589010640096168493377193712510696831219251922949142420159408662835591892518392415054246389340132777931559966626987202420413124411310806006406461500412422635161773483284550361420056020434257334771183594574769319737779518697936755617609048802956617276378444653293596381804984845024338151097694476425331805237239895410617334637471414156857130525550841462316011627208225284959147449614231159995415958229931864629860180875015895950626925527715198777059366400640535692391572886123370673679619534987282452713576616206614854100709004844322155176038664458545414257449364960638760924377632180636346789081263326146365084105467142030231960037853177008328694582958175919307519513074247657193971182212088274505146315673647981427236603361417763398724713278042956277112464043492345125792480771316441661683833287467603905976668987436014152379687854968204202538361708084317760905264714976413876720728392996925342112345705879798224041919705612387115010077716107250685263483637633648418072512621749259585639443246283056248209885141514985281042248758500323212483442806697667652486616883946973016068804058934008343764748508121358579722991219156473269387536036410970880444106959243374587928117814635074428807232687263974950313060069396385972232834029793726193521057774009561252426254831788138631081594354282010693648197907286625449068924944447220905063827342177923277838911365080536329866506062261290515888759245702970990488468958469389709321790250710936852231979181510640141834342734386887097990028134993701353217816737617531259964678310669543405944290164826375279379170507120742774979298071405072957466300024525600411136653961697010129633540368137202740604389806736884843640932939101518859025309389524478107140043034412430889529289347766537372522575871287739349453939745024877779580072491702753115120683276970592392662361086142268790893138157730620638336139559160416983718213099177392475771671214498851103293713397992976673152124565862714423233472481631884346868826716372162420280223622890297701883623400272060972738982030124188003951217302056173561119777249600310453735596828511066039147151009564595618508067899945125390249435927247976705448984334594948526285901571439469015296896509522058112547156120704378855057679170729126642017882571552052182770229485481399542522156736878718469012903123616912238056756851360516691944443416637547174645305023427884742489000794604595994929107064621495167935438075618224334533339445913551762557985953356131843777395510199546798817813611829591999420656879764806142696245340770620531405563801974776612678664934808624108600508026275695341672935302497239074007115734335545015676052735312427087989303161694894319210751434124805967156402493439553513862329277875681318878149497915739104437780581168763273753366458707442822634131663420828396871435612889831290169967386596048280870559838204335387565367171033987576311521213558513344010672599158226874846712199566169675643536503544681064152362277124467074626414425162296561346805315932697085808131027428496040026112667737535174029896068777789485398886038859733289939569374938929534680262089328247849818514250576195930776862939722576395137061555297963855353903989736173830577298968679070102215244081489379731934464004472753991721254221419329423758871984120841136545420667053488887506618549394572435363718576022094939960101927649712282997285297595827294270557803793984497903002789699458060390397201082714647533732651796190504329060058969711248217150700335737302099020163873352390582329154180972578680565599402268543651441431366401265201540620749312321552243684797768440431783609047280028410745564929186903516935773857937507449331075309957136713423983018072866767947756721860596279433092803651218384727124907941138363211416704469936219280844752691190019307395302894872191819323071380921640775801620990065773027436357834311098537298557194315643955199241342922063215433524990774559518381154079805739560288303677915433190556732820755108181193293946727690502877673232809036823917425737005121647670872657656287730287138712972766393698418021334335583853921008163437874887944056480898604298932839679632539089610231066815870904838504473367798433170824912615087772468938027751617814578871605670006710709049204928217226904717289495038516229833390200008784533418747866548457642302498885071329470746313256943951120502959857222043965067092021506088386714409714912247039696645634152539333876315754834276502301705207929737770654114749469516029265506295705215580692023652115850967105725896670845308456950732150234686102418335252151780260036102910469690067926662556626814941532445112610075005685021041191163657922901488443535320911324303409927397332713372666445123285306552696859389516509033299072555666981440604261225527679845846305814151271461465553646442169783522131437911437063928607239132742156190941737176284120628426532482075999403536181376715662448894910711473511576393798366173434574910913575482694688755012552601328808502947254912951438171748480593501416533174170795707392792979341836394584874274168297531742269928906294597710669633538285566804487363471259381949764090328835823542934560768834281359852462995596734506324432570929525322534455943490603512472085786199236704901875694862218551985784772477393927003679850774974046493713245818002518000213780407628644664126167217586227694743180848830007276148622951244323304939941098235487447258023072781441901548674602082588975377756031967470769411522992091517842309725480905620629776198591515014816787256969060819149742900544806222841814959132154989879994892830449502284722706699006967377537198898826147643384961353638493491583287328823360421006650315671191969162262837147510960227112978136541479587772972228242902570401568188814739940038049422583573836788820713890563756240999649815363260211241443424887978397391455773477236157918620431811081073107487128319188490376504900546585557548561507846901380613690819395290415779768169729159824821656820189445294759980341126347284670209684642636642598920902980880846616748048582128479471546026631350955326622497889342192231224795807274685005145371583452157129391178740610870845944079892667833627382434120137283836701926330082276758909837379414791715915203519073197922920754640531145654275463403146221750340877446499916870915358138115017199225757994804190096288101766046064231039135374634009797603709068172946939754998368417431263465207898781991684951041746387993142644607368154817026590795796363545188462248210591791553965916061223954736642832046672765166839980829450638175004148432683179780381584081675489195650534710789206302265276323444304691770317033412125580329774106504922790220942690850000604034435153846628524294026430561486115198704630493170260772431836683394971299469522308218449451105149726685051366102383813745442942835354349412651481146432571132411251999379332715550393069205951050658890911465838693467922433265870080424690624926462387176151297997606516083757388393755668805420784111317892538955862706541342835773473245009735242128274217383819202449743516445608687947386848023516681645911676468721151810965634186660351697616173186293141723025119812456602858144048198226786850187511400269836890632341161098459466525005490654689077436100472703825938008068939619407375140123648306963053289406916983970946656006604436648346463370825398212487203236069799947915108470197469685153800472593483978120621271434502816851804060476735094837943273127744401299416671632633734576107848305214788773393078413472856843121694732343023013450681328687625248360326711013537145971019125015286207423945163015379117867534992810411487391008722481371662882139787977755980558198658070463452141188045419976461633768957676366933169256036831800978019627920649942017796578365998328726552491659919895180104894501423176509786365298445937909218695726702925489252046882389203810775930603924656661593593606443768982083105089743165174604852615271904410019727068367817575431354504024006742250913339062932835409605882918083394657808950280084302921213562977651178936292157588748879982189116285632480257790463541272764548817242459947476712394684108024779224756287870775806481547155833413863620650328273460359441837154449880190394434306693332959759162112667176179548431995647381576371321551220012570540241070147527304061966702182813446251740357737365690883385656000937140854958628573612018230353162420819414914882958215529653684424400722881649497739849511595265040900847156901459669582475126260683151623254493425953422087827245962802899762977291631591117554355033709674764345718922500886200615232228805672260216754162918938922769338101872952517127831446871028720863968440567029920932880876855310947709310803123432778365135545308050881766608262274024684783055898646083355083015886147038797822394884012807567852852970962762949241281628727364407592873469345537633781417335746842522491663367621649291149087543977701018507175377675059832134030962383841718340889387216992225607196962834318025587549921723676701914769761076226859106512485662435571201253851592691607682060829780212948449449137933359903278427806073979180853896701812348112087746200795404217731676730194416392063235060400316628478628778346723882561604347764593405398138012298438796557275898578457124578300427075025490716765476576316193873719668491496167097210452728067018056373820259072044693167016293739105520987374046798270707172030490221054657132640194575214384219441154678956812780321520245713709264331819216572680240389049643611601399274686656320606554669693584305560661405994719087113929079018806203213480346523728658946666819936107950622436124349643674902635419681532382132259433624470976297218936206327559157688192353232343886516202655490077433434336496552015869087103471392435483912354409157515473672065169712608696852005381536479140311364371789352507813449486104431167651665703833022270558661867090251463108677392474938601242159385155205628676839926199606855142014616264390275393397041892173765322744387766314346896549820137017378137358281878737467759636731119228472218643129640447050045712192130293018822201657414505317736847251995749413135611681898099517222760328433815418331711026228858635672007387252084202943904674504473045431382723217693922665164141672727345545642076502958703339649080940408185487319826803321954261279169792679031857799393522892026804848177832255250810215901519742522697568422439563864480683606660921563431136480341064576842506266788771548263843000040745115718065450432741144713574590628288467996456522457197451027227933677479892226613757902381155994464756613263835642978244412081877334671164523634164411759767159787688499088085236400923344391596525011895469251976427448334817394442845670261024598169615871078075011702482378902526228610984998482420563796469909808169469771372456280728940221759800678254680792473942554893632750127623206014241673686056963597416592594473484324096418131929195120844170823290109771185473488004390332597093514472185957128201874002609224510864995220205656657412424844538414300294828837212095177827434448088745417307622606159956755196190058731454676580891069808470573695531431857519938481959113523725443230793516567195187315478009095086148246030193190147385776357581144876885546578658203543942719061700522439472604080769647006089188967163897908465987409753456341344257979349956580218052306858250212326245276112232702334853183321053313755511219713094410050816676361317719016490802163655000455929864029441162475779161971133402792920360493972305057788919270181128024694208844774406518932814543164755183936557810770745265860579054823348430136849579245976261119917460001392186474924890536664786130935017379554817633855973010933362328125779333415338475520969034347604686416161018132222371615298857514090888004248751180450540843482943269780030933572349825769093688665267708732108030317797712801915026210914800073072145250048747378730715891788848714404591487721196465701185241508940629638714654587558799161176050893339903344949833195471797010788021628750320114103995584495674908729129999319005119139735863253111612365834241429195602013577402001536650768644971231620718614710467233375662471567267097395315141766284643949492603542104220993530010467573154413664829012685392212418179412099028064706522500160885013550422554467269908836710656135776827417766688156491036651258785909200357461333376082361374221470417553436305516277403251602333622221065304933118548833602846734998917739897713934112057295500397987282140379474591243738217539680272794379770495286822426534747846351351608355167781106315817457489269715618231304741577023738138229843066579028395783504510623083500526655337813203391784373258569134400290963106030711390296613241267078242973492427920326005064982449152288127477381057094775928995076401375186779306746130177956868899437741957515463447227607157346540850730819691175834238243956578626890656421030266134512316531056147219212586105295895090003609252515729370280386195754921863045693491208245225389487414291998400699232871526503753057030683166512164452470008313762570060755346343720801206712955419939420103185971240701995686967742735177388061128303122690574550441354534321369472028676384163184728132875818827809033075285405259479012470003944133281864155389598071062249454466897439955148358743430219091933297151945414661402035817407439376379194069964023483571900861680136681640302038639602939597805693116769138070221535555433419532366663303644579264075389064136122302834370036045005243657904891497917756890156037772182839610194607710971261910650828334760557189552896391128213478007618351495506293914095331212891393151351770544326590543407537677311995541906412358982235595594173798834452288043825402888932949899974503312641243111219045393191098305808766475016077115275603950523977720952348686998780165939869378748218596797224868270148929554721241004861513105019632205682430933872369077651818040687183964692506413377800676623151637929575212271084962234253368746459262201723860698623370596640104482427205675999688061327481768271573745407535300579746636286207282367253708380861663287631827313633441987341283664990339706426475002510226623494140832481796539517656031725957261212681359870821231142870382475171442908945876406229839288232971499171360187596566388678798562843984858358152875074615949690796110888543932958870286589409180088579056174050877296064783385513658952304824359382253686581418748240331208276708245805320501350074296538467588603219089036693700691914362467796519368994024200235112634614604597489077871935067539490840732297969384175026983725473761288037255375512757700507663629228913023450916603647578326719924803969764517152683916108876394073434972223913243901471892938419086624965810062061523576132098022127035798453123009811007167907450700240084147291722698825743845958562101046434319199868227022862730580702653950828723302799247017823154261923097977273461376591217565748573785367661689258063409948289581799681730638905829297143399925153227297279200771769316286977319124109181896739008808497939778611208455391416292444851346504063981277694494868486515626652504491491935955403113711113214997786541935143539377891436029920324969344109868364530104837522323077226893731660794929721687631708777558548912347280371338652061175893630198900930720185572937056465291498584040284138799076170351322750978099949399747778614035459183629960801858651748943703058134101685670823186645401540275343133598377555995006061449132692723807515230260343372326391094985717336449733974612192753055659418581783409442456229883451348549490037387987971595321535753299493386293886934838671905628249331369787747244086907036402466930982120429608868274621923300946881279473646758127978851851229058875026516155570009622828368207758179041626541990670440341152899087509574164555927969629016418166796526468019561793964030698262792374393790825241738114206445775975820090328208194817518848599575158505365927070665041405293002947602419482656444495316706014258616537879441194406515529616571527926598227891494691753137520148085578542530226285556321125914054118701563940431841566361928563177872839066264239360853522254030933265995491866430444705640688100169664601731981407364861838259942430715926747886835020056428374423684333563339098954930882800506132167500618547439720412802604940523467296487998081336849498800672073874560686725884234131693661657282893396161853713098802226828489085690288940797910395897683132614947145604770257098575573161693098927051729700700845200591085312053942614934414115388470785981853038907110609025266044991456009961219345646470770076213933676751050630070984832195626367653508152436664934027985112720839982277413794327873923905868621935375738330879374291522199512725314230315739143339088808939131330734450403224490052066736282022253752019349580470025725725678720612354283446031174595259394095642594878924413888040961751150920607311249303519405319565325175713794093346585925054323702645743173042530701215262659377060939309468259525508833370693086057677213942254631524230844081339533482124110715362295450620025758409049380329145233793426440441670901087648170748654435767451356099064024806346859267731318150851759198687533269573768123560807651748860159412846956571780568689939093697026757514259576930819631061512892281722435306172753858838505369102228317678373906977318946806949390292244589054517166430477439128985398927661252734080268005938115026770385579390012776066048837667220104556930181628450341826513492795397656142602604338103662600417837199729996749872302308257027778854255158374675447739636143758242526021284064198496970834117710442730192976697471973142438378468628203238902360510621881346778844959359278933843152996611855815980342801287702506963969209974601709267011239165884692994747962419615233123146278348612517353677462928497482194682122831949440380965749585929762363967947990442401990113534328094667580914016047016750162259709458502306244982004586487669650957045529563126437956923023541549029213463131569113631232555114983201719262266474422344039673994472503818768261206511932374606249929670582145613170651768672283889549429879582157322935695984974571048148391205584735924275929335435464160481436155354712250951285300378046207174278417411305536046459153188028902437545839097621412975908460715971254884208863898764588288718891522641126633671785805347070263304702985766005147809833815050600940906933517375521713110810345711995209970618023299329140530372837069320698893224786534339652328076287192905255801776335347218299931528644716714370595265959126331763145160119892396856393479668498174063172095231633040133071894947510095139951179586636126722721394764044108834090194313777832376684074540194043406699197410937321920747041434305945293566856648587119874763968728800997053509236157610836448313285767089590868874605422559457191912475275197748879352281128494846836802060706437251243022604360458267587570909207155936787905879368483814743716477886589831522020460242878600854906567618765585426341067746286639667473385686205185096579661318513322757253722432797763870734652894601401008706539406773763633149354744907677555585577545698826422554068409993594066192855714290047492854475306969321981731604795676618466557185023011147579429004618336598182614080554322370251803308138698100033541112587091692650886067666885045942687461223002205113733980675305453203569908397112465654165040491878060664896029536401155315361347016551680455199760911031726519624981843877895138373978428667797419226111353782979388133376208347806839772322817031071669587311089873913914945094565536521731511510382728484801473429057064760779355646686064132322607579701134363091774390105585804163805438787183695308913488582893527597636935662152824478710192062252947247806831937967303763292744741021483410328026084527407762438717000106878934273353880726026110503509232679481186116522937075993502860008727839109477664381233721166841510349929680061084765792864859026808484287303478494347442813235587838501907513543128021820357387779555340669692331527097803328729804273337982150055823919695888450152335427932905449148908503411890123090544818839943616169362997797262418928033883888939020985175578120074943607091599244357139748200927040113446917960016278102002392256772630148363924393276888542929330791998388640402706703199163099234223990643500616883033609604109110908441673938896423927848562104922899821324729253926284753810404218963254019980964090765075824535431961586294339540366345226555830884296330890239532938974334495599982943966699903470728118529685591105388320845584536004300169260683680233045820622955726790864472298591063109952154679521747692508587351143124601048581956804727014234996500258414300558071195139055046377522709846752653386527326656994666692344958251105703146618237692194133756370460689469471046079894554265735483540366028909060155707073235737517487749703122418193120925687604319060711833046297924785054601023401803551230479689707904279307649289894880603010671130728908437240606773734974827249994884452120898678482847798296311032135292253382806505599503287756953581162064277053178575763400376483376126665986486174455977588103387123767296239978980098932256888537803154101309437505102461207366576692089028667159686978452679721226066497777009089243600570945576406144772631332729920368764608837202805941339982721880054161032543004523420619861695837452312386113077876891087432665554075986388366756212546608513795297727131678093021725308373434983453200849651268143499051035846872448940128641148065601092758413865780370259489679887989396929836947960132859072119736762115989876862779747577293846954755281398475371947793972011447331396850898840748971843837710599098555993098015437383697513113965166673797773706486675855600438059105568604669744067375102104299977385994261304396191984655473023801913814677650453562720620512352109857333460367928840432832118066029770278800431382392985542459290365539551788310450503739228980418984738540020214889188324850467354129608950783553656988673929573438994671222582654466251533526221270287871507722899956446448756929074756541874980078482614129260990621727710005694792945660181210604685513842021746190687653857266699091999951904281003194296072776478581629792148524772762068297050702155017067191499518886456046747269063692937963255322168831753565680155940585705338761489722472137638918386282759667344331866487051882752256429830710870418563415794568233624085561392964113388090258697042258676119667641943627910719590817787588399537089849322210702820722054632739990940296600290163358624784347016993057443446495598279126912534874089621266903466822094453538503708126562182442313687060771863612428258707669312291351126978546343073533147675440977002406418620499226171193925487365348296389431730568924074478288416412346502600658799847509162943660960036960905252032274203875343271058162686550197151690748310020207798248499879827428372309756482946682997446970076510789875584058494365440421634756252967666316250663469073797860866687566985269505212311313965728028772003143622796606991334297928603612670272324337107795287622097584658784767599453161462091071971304609895734729190315256649116480104940802310434667966593755506413693712159701168582400039699974379728910438965985970405430543607443744750018098418714893758174193758179007555822804557165834799896282656852296621132915557672057174703730734892644152311433624579283357778005271812136866722762502909355297198772690703947748281823287213387295217580368111004691219289006878850771377557716119143163999257704116984207420135725679407726160609758745210862784747777343363406224073498526909504823523231072907273476852334386240675785593467463750534037571256842228394292286864923886224937954940073216651488216217548901116403461779629395795346198430966261343642001913564700781918026992072513573230179277129186611049959242189248323660351017690667678143076054727484405908516943909074060223983264016121206075255617374695142963168663871891046310641087831699437534882649535659726398742096948366810362080023738781058699999347327185660161829757392897548093119192219432841984347875087661499108791114611533871416275848400024191872898613872867072442318306899579286222702621262466420081478080764864740722252262330196459746147224434498274393921182744698636960130808041921852078039834066315449861476818605813707360898317364850096528174523537214908543733665562707933630241746322237584425733339790656741345232462272600259165605225312814319671428555014603806573669647338356773182199873545218899405222589978387641779627820449729632500054911038139918724512407864454072785272939186582277984803369907725018329710188510931091831033719794837741593717208402296845190366231357570953263755164567652857471492242705278514178351784283151868785792305015727723417992986918892865376077427062802977346072007471413944641192956207653603910635598767691091888655382681409765725450906391691912292932113459406723473785468995324272725952030111513056194136626389416507722051031026266767153602751908196676432272370957754578118771171313267223198158095247562849053170170045628475565915986012470286451446716558542480201545460501796768846660179898213422539798611018838810717368331568718470434197707955044036122062361607176466420055484708729780707700585141679220454805757113454711450053397809215948576029041290231123776300888667316387436134886297612982446960785407018574577455845764529707505595632440506842575501844567845850758944219988742168991330265420981930767045540424385785513274176466826887743460357731910502976619893345312074720199845062562595524360698986882781142104808747528894928892892468611488374713963755037094574668966487313570033314209373413531024009721313690240632182833748565018930496913356349682702462496609490979758618052929206119381275163701592140736994376761816573080285992992734197690127046710329706423031072909277710089435452175653255396044747917059164167891227293260776388660406957460601874420867314492448739794429988432675803105264614826461522684558930204577902009532049278627263310666076331033610780228057249075114597231594174532625103641096392525795116430720920829780905072187587218769815175809762784767264047910509938090787588503358133958143666275828016529660618600439599355155235695874254616791917585815260330068123067223025542390499651722255041877230022795427542495942168885518701252236420237159226600377891943713311672017471275618851604290116791772242175694466770553971170954824438254517123438950158252301169512105396320786353927082575092716578608829421922826694863620947975954282114945234838825881446588601596849076246696080812013786248547598402806448331663529482975039252831234357264783727696155305992542206084460568578766392200895450070696062163241834827175628317026553352119134609573555274926751912313280704377842580555992986719615722641397101936863013178426721494508883407885277985552935129426677327431001915971320969721317210070356828942488756941578807552114073639577864647729522951020713840719465242470397409877916699980017239272851508029392207846947934259786330667419863053026265054933033102037465740033858370911895865914810372329007336507896627758512985260966775823222713781466514031224356542180494191628239359609858446541892646025964644313326312857309030265670379961679662489930425265083284717496601348323118772846759287452353520531142804747747225321579127685747532179320749949045169342367274070650902293870689787403450177633293011388965914422799443034703126053438435565971480657170231201467347326355373558970176829438762910291387460379879825068738716846254870832221715926746213813496967310384680572735458093912810799780130139756194593044535609588742069032191354562849226634148738151290514431521131045203525749125070748766203274120356601895849578561075268652857808733439160047558948894461446161282150269984195730793960792072744025843541102302080656951115128619644013405357969947211117138970038073736843966526152338948906737024015164262553043969016326481577151627533897323216339584684901244263106856799575584171522553990199704958190140427219509921955344886360091792334989352722504961615830923340256073224696502859851124871191362743266099920297117556563232744813420273968723452777892218445542800423699554213531696438753449322617759846910899035456717474604807209559497388550814468247214794325847818279812446629336809277701738307994343124428484659467543738225679491693766204931647828632578778253108884528180347107049871784184717167953881725017535667997216364619562328870428395937398804066380097511478301997237349440214328204286549319393152659304617503904542457418903904485884410379572558434758172073718962042225628094189551616377261862637326281928156450710463485229538135206717927159304537570119795968767406984421862578982337438197389336333298334496517318695531725925784251930323411005102340416741679874779094803925376919904725784267417979323237209303075700090545359149633804297213857817131126246734250220524383977671515152416258892113469659451854580256554809921582259610070002106588923592104496687858059968728726038639565818068996295953180646231451415217264607244232948709893028320480186129272100665063016353321681606688016460226531940092555185664661768971539140687083756639583757174489438844335347407115813048281343852294734354304561874615269983079608018633593401400339579488983844435801553698822050592511000914333597078102700986779275769315398343296059262538682690509527441223631345477443863647608039229274771193159877716062670424729935308161879188460328682335621113907085165457922344993671221636104571520057817629434188798940399314922315226162848182861938331886000321901324067477135965505073116601501716199719329750627748633196215630820151926677952441390175116332777126340383106520108875132100443379209956672052530743242617401491514306994932355783004338352660428935662083045754826975303257441236590255443236070700772628697821174929076842766885268617442147744117761695862822522225504095245345226499887966581040000303166514630223716265738281850505651997515946476519970228803923542900997514566403067655335934303935515404697604459371919106312083013300014264127045517155418304261637276470717085334087255350381445602613896308753151147806408285700273179829669821272277959833998337078653206828333363594971240340531639547706880177160180796396798042990209854332759737740893754874956581903022775821331660623970429994287618776417222170436987426731122838267298264607975244825401265813558693212354271369342019853703987916351969873574551739420630946370679554731379616369268320000284111969816149757253568994979533855826720369561458697709514924988084874254827134149063205050786564266073059349047102338101198515946237565480974187253696359546776868965095077484717433294695968899734289183822317732658160760489976991310892534211806999508107626075895146501465932391544179124409781102893823648079463028583606204370910973405414338496444690441882938457892136548669405126241075668465859638790371698350323724726556094584425701906213554139817068797090501430055043382824036570991493651575242963873249388968628597148242712880482771067329666757320373208741433490894988544548391318822997857160678608797893619220895931374121290125362654286658569641721555821451285713016320870888320840148573075019755907746557910954876017757712089792213227197327082186834825392304624698850806913034165533005222048496818036710256103573018895319725545834196632411953620709605654712330696027207199385859170249560936144097593805370353342579656238324528772555151821075519409770548368573684678244962538333601017840199385592709157826267073768369845070680990063904368227526349637726061158078366067694470571714440789513028657455548748472485177447773320160458892021989878299984029780102682813491771041445414909614293667270998569553970912759888414428817770270340150119847505084490369918848380140852308084003291831864847134689573477192890520359917570422796437267338010554093529877823819495527964199549720122068881332018562633917797550796123344486199344435879420286927606169814208985246557104386550127929283317821773464357155650645497243056156879350789971026477344390419095456354635961869702327783319468478445440914269204806897330456882009023734689058225768689666220997839279715518682432747806494847050597344289894162262035949841288554949635052334800560635479147009417506467657768579401719534171393436268806883766834602630221937778697719023535312378057724859663316766594258860190816844493886457007659995983923310037428157473558632051711834678930632145594958122552307041020830218665951704336547423510807330311648009781716967224510766708521405566851380550379412683756473407196045977740067470990208878294640535069600675869607764258984348232222008643336160964052774638389230652294266186091420095064725094125462748337201305743207027595418724632533203511085726612020437045971532546070418775863446991367921205633813666504611447323022472398491627574022139095453398301308655085719138680382509859069707413216998101510697960862086895789359599816956284974733476674996896093934245750130878519180072185139419165233458849970127453026272096966209563678163965449945859703925758375027856948578479165107805345985857092351411651399139072095387136775003896468347147905279587720088559645116250684511080282716158027090362687693441420173127079301293527739754664925173181072937151614998726865722657322202047552472440216175362279228504550307235362475198854875197964945993808075058809371989336525938578135935471413909955124998553349225579326736511429251319600208133157525897667117875973088970830284123629308569054340496950096067204262089026793299586105305286233559013203108271814519954765201676717124605438564606942045344965755358773351282965583433858843261448249375387264320068279757378233108498333117084987527336185761218028838540718803957887990748684639330089132035480523324615888404645856128152295546069310671963744495912001303653636999403689629733360467878689629691935384509933261592735226404971047309145038490320556122226430480388872442186916291383304181599377996855715380760585526437957685981178448051534634163278893903746672595223148853418455204095468544749791321896573368003337976931412351860885896304795787733482115268555521876458899828586162656701402716536738012031919453808264266628810832755956301858477288995923111930239704446178916643159328069744892579019535912880421012111882241172375198069012058090810185878467295365048369584276060757016176557496983112725044420599808855823401005721720885687843111016947667269304935025548867014572026908033253156393972122064131544692276447935373283548765417585974774359488027972222236214282470335568529679612867605292005195413603492291137185510101280173031133047512662209398993548518246132871522317767355211101948882277769947091805654961109316473528358998620262830632774315696631065568046459490770569101316381885903268078104251524465469494851829801254504072464516688665201210423649902040070128968950704765617867807892861787719949788608978577761199578458307787798226585122761616831119179584078172611179562387504193101151793280030245267920354597683360666671736233612505358247923362393465926542255655235065168743223401305250780021750707228442858836457582752180917894072072326469742891198192232665610213553545542735917045176560057874756735562064695993682889240186376265645516293961044172027573107190719280945294502929333736360009470769891182535520815914385346502853656278838363465785024209225925936430379536042428984610766415845248792581978756292436504570240107546091709274085163337562332587553632041913333696758775612280871723169640176055082753423418062817505159369321943302657573678535115384125537171003151517445627378674378204571309366771167215489507743796242504877012304731562845801526398065155202826583590584868472658605187354385334635810062666448861501720341269957733863784448899350592586325619345122429475326827803437912664580789487453598828918399410218164361572886971839144536412941025034733545892970874528236617398970373247093322274831683220794905633031941455684458713813588961887167927501353359167260571554503002601744066178180410925810551094767693608403575090955442788226964630274788475969931199433993707002965519543751170027599102213236077318298046790649278131366436222452834898114309335479508915936499240997410551490140574773848809245857372437948107371861373311049205194094149640783906500238084743090115099468147129820905236626354142977411167697245933916283859991975502536036436234404015653407023486545521023593110374932566769029933944841475265284793838630657624584495397154423183326086289401939747018480181535484560593553488977559779519022752516603227998318735522424611862275889907667897532363731191136673099085790732057404424339097068769459981708623798875636663888899992973286942005021177383427720238626900162914301296247407305207194665998315755650102977452309982775787715005746183148993475994013304794902188614058714185967539785316131381468745409777467138610701007945734883236156236764311538501462103843664037550482966716246573859197509417062851244263935739770728352911997506111576552931997060082831015162801675289416678823575313717992278502297973981742275856773577880802713536463390996063993212479379246573131083217005479389378353743725987090841462061290795424320843042633647795445357798199606534871999308674251348988569614958529025518211681772353831184434291444011183984598519294519517699490908064442302552970971301738603565804890596700211296532842134426328790760676187287569524578941463677769118782599086136728836893683029672847328389091550935983501772519194472297410820067664667262973607232053301610313058667387567521743673957509991982196290112927140859834138209111154899041114051295427087681028134451855823655809414844485593747535413998357928047705328997828306127219290132542396641968303969987129336697009616764524089646827874561612510056529183844482192275563223463458779394289253026838243485672551543502346841313671478149593027718962655639440850754099787260309265691113924743939661194869463649227251527347142606443729582882950688541701306138232634541216661252562701880991272571233723255246767137742700723287067117511631726942449506494768913036766872493781775271338312888235684409773014259224207610098614053840346312294460273747630441528404585965807343374007045518934991431341395845814788806453852924184347251059342579337698781906512226345651570457818471788221976703930649151187299005047072904125351657547345932511446928798575799520066591525859752098969364269012911776705820497399573330485815826333799831520400041123207816833761675226000202011737990305295051192304947012783634071296468037441991466258441792938168111848555437296091006862042020861499534204012308335252370143785949932207126146710219295679089306118230253014030201615089324337628335113574391725926318770342938417419740003910034394804065226787355347222817647084032698787134994069537837634412384945563529021372057640776290676638210594309307126390820795545512802514383592587180138818952601123709982146737937959592982382534644445058765605981856702568412972419957880835261359467187568556508895792950602966307289959751683598098666650476811910139439632751790553581140797244063076689840078389819741940467750348777930422302249190060290906513276689249682018750107171214316896329958806633054549851464002701911985348529728970954208487187667827578514158397609662573439995929708314087581527732827467763941343887054674292147300072592479703799034687362908775698682646918686199639546765387442090428859622852466425975042047156486158391130923677420819564979893546147935897421104500070275063113650798261493265879860377090777522802738386916376227148921285758325529653041425222793183226954456564522606154993201371438556919455981287692321173201436614182966451351683817250052494913971257161384776016175900647012657008900420350163584859897815902553778618683452726171099106220574307956480436325716247208777927146769614908636095087083995118178957149894919887789610952414067983471721369453408482064380884087877083268411687632901754861965077448706259011058647959428399723076476760659051159225814687378082600514342576338353274220953885229212855876761240321385563225941569240548905768028896437753885206303821041100558767317546190240457025973492010549076950714981222671321951883841341127411791783279028316371562713860437193495694390184042246641119426312305556220842530129381222119147401337658363518666516868136964498542154341147620860390694519532326471913875807333106436961326707158335852207773990414722092679242098583206219595364289313229139059116099068644816298026505236219360760786605883745799409412803605514016358877127310464144060668930020286241503791898674220104537854932339433832985333114756296780771017793880969661689119355335349434736502009595504167540061784947820166701184534558318031763939631880217175589115630030131722039851986163989357715335477327892579389475239983691364225989659403935862110579460698644831127832157408048157534080408015248621572927633353906308564998311911712262797803143183256177894400715518591048959932341718896451180315486951323996737340351667189230276278120544223986881569937017086180123171909384904246364106089655023017449898769767715349600140517560173363163347715019063713600195596656140207936277656534849617879269799991613882727538277990251822626910952844696943292655765290930279771459448631742962421859808201503012445555248397041189595043101967917708571865953240675164841506423209946724311132170117013231296079129390941595335205868478818621504985722209139716773713792897874418590369983677251845045819574748863955558594618050627329458400075877596502629234809210480404712670474105625166945143347953047042701597343773917965469881015373094862529718750290483263939971722337403633952836182157663650187999395871171864709676453034831710369507505975165016607011023320464945685334201793039287235627960306771405008214868930071135508848868169209846623500328406950423349176622340887647350725413535185750693411974371775328628623316568730434516935819953313848002991721904348754898996393058204147928806471088529643267761366347064631152826444292364612716967874829425464334726065364851668288486228527103046989568363173456445298210974804093065490177890746465465776271304140823223157551813533036798805681867050806306158361632103455056281650692694579304379853752932495395465645344047500605407859542441987153471451775377562209779835275215040251341722254893452708774473199591159512230298071316266523255202027975537820898939221454602360019195251841383386783140556672509613964092356046192587117713611414439192634267688417769462299269127321230080698997470465054018167864029292589868990784495441969908444167017369720795978360686554021647754382238745215686570412727523600829403658760688716726085650217673220484982239786603320188255817172785608188961194295662230009153780667213023308908568686493735490014812222481892123223924328726956871407435925238065038566210301806070921015822036500185071238465187899289845484103303547579477446207027414217571233589531561697235056107496474023075138448069563279533285596255315710371807993889438451205859377330323549455855529249255053583801983783713438261640241303895247478695403518429308353984924139382051851226689850215291432928285054730170935044401810085518458754160724864413287025379298737813623543299655899439058364816083435865362126903387538555008011896263108206098823906796399593778442149830082479559613096578113519855922889682858273374304763895244168148053007264770252638476894378752737495701914931246806767908518544592492391061660528295911428638406464385838701640414665197946915276020859979789482972736926682524258440930332340981250233993160478584074451000709405618086365360625399196409428782981370381557428259390901341248078974572661020353727105915128423675935604657464487419092723294024530744016189441176056086455451293451376058613527715117172622991175358038397800899695601970023758728452898320605323483836352126667388129088964950851354222586153555237013832053204820302478372308148046931763326342518390127040623390672252118244062231570310687120387560928987226218300975013915538553086937358493837976395879623816163917158569521645188516760114921141432420597187536598338788157513723656812854116293437648910727782356208434460060817210735279131064493280090847561988990337373676730363366548509344284338740761192311476046867681951049404653299220480158575618423758968038772099013099845042782164432470907271785718027842653002501059595700496875105617946277062182608765646220118340814765162865743060769066887558960636418500290308929762806212385557766401783253330780292411990550903836075012596833297555934657594193879630620173857658178626664003252666552229394195047567478188207282951159532275277476110660443933580082039848773664960915500686125171642145317856872028242320416880042266897368085068443294302549881811619188125737488931296636265749464919768310707752265246422810129439819722883459646099071190122810157151671257320968534175502463534142069103244451046459957063567466936136182935990077539521121426265897722194744952851128790321690327136334618343267331098007566067800971292940617696879425871975268899874827199612960838572320922310473282320226459213226359087564012823371891081306818337535833938314817100292180665742341866002378003351987165134999135760277825813668101707542994232949598102192437776388556052091041241368827377365204752995246839795837778607565432018751136089262264770338248552875932452967031426749608418252234860371322869968111214109726006153290910573287504204549044286105817643916460583832639871512557367441913350410711322050457331501224547356310527982860652672858688231608524515632599936875846348517990662493163955799980195864710732754247442418908821073279418916166582869655277505415564688546044439227188528415260703102877477414405699391205885516352132382980157264262460717876694869511042160425073513827251082510325699072713174727639901089584719976615440240601191688529646414369467103564218752627789624475795875744690212006594658941600510464263017334348842947362899100548681014672316964745415304719602035288527102781876518384160493509523432206515368122481016850427878904673241939612936858591897593489667875616409887751416869742470133960686035339552996339707690340278068359675992151930304973899687413069537834617886657255619680799735855549378102288519133457030809744821424570942852952276519134480548395932309748964687929002393529708572850449385522920302287432705804903200382039621193645095450286163883921385685114881671267344047190591504111626261550966726862822665926369415213821016525610695885749122680189897828345384891591281526768887956750169702153294145975693684907988335297856996977215117092505389722147265525322841317326688753302146024337916482134841263026135958030685384005780354696762332641740414494396850773632942146359268650535406364877019874425189337023952418720012200845123249073667756461871437821822132363377664183193136091164393364406973874468866651688563926674134743525146403067866573044168050311502532066673130461264572639353915758614356078224593706815617161149030684519255787400870271406182062585332685762444852114309309262549645023636951364815968847307364057198168729013546316011153293580286497224678645660918053815027798476371416210116221475958217010621875752192464510853760932667457648310165281853897783136252447325135493664221455194109727118197720479437823385771160742255182023814663931891760600611323077618390167586976826831900272843118508556923704556730979204493782765308283337120204900143181980383094767107292670358347863312344768843898679519667225591867456807790752715573341066378083886119953372096524698682118232962528443186838695802261105051200895200387151236881064071818246563056667276482618241051918092702857479829118636446092663981075221134200391105767351490176951580445089758046971740923330311293871872171310355078153608968957079038793555887181821212338671117648218557552311478598830915578151085144448008743142195537209963072895242024047673411416633079470185658097190894583467735249180629991552100042500500613669191488616425634545383931217575731585570591518747823761721094986533270498177143430060340347969133953490602745015452264467071503466840446414342724598734811865883177173321005710143044511274714234591244801039146295220341872565478315534906478438112229635219611832831817813779351741820705051042530272425656688233778682875929144552639218441129540700426877297650860678400488199694411838953314324705336265970315520801612670822653713241805363621319875475780211810266481087103329157695667707313830139550948221846919549578153227185848658163109143953401624514178470335381600476873754206272903434212356667214718908175257838651142119480511008451875188590433000590786658052895054945396281433239736369266310995758767953202225295271521697458144779771396773952048264363993275182562079938044584282236024982010142908251749704201126885945437090407536306858158613728475410491566355244384128249361857214823646943392670496887521583845490039204330345297636358858973473130591941975813669185416133552761310346688230526165380824649305383887065238919053600320276446730844787375839869452687528829776121913821427688267450209707106127861208977470896986413264461473953027681490939109386438407643970524874352026983336422992628402299282256498856863803929826633990423236868480699540157949838268589142101122079356935393195113547234053933967088763782954948514303523263484522088043894798931948974742735612333656728331259244947394969637203891262581796807193423337308701613034783233803959424431530383546856610255708580331206887739230395658720434397743862502443507858142278215720849611033555717408314147062272061503267949520100425293481554439683647271687790076099210545396366829539041648911315206702404120237313540286178414606241088102874413475576465688602424486670158219420738891973947842482778458702782017875193147154788017514892003362687139672585366396748765310746472519941549246529181179971980223503352022590551901155345092891544541612537774042749504816789889027945916882697227610336723115583967533771281245391669663906578675386454034164631339980882802638517472810394229978099488452565406887718796093614968204296894104027793067703228987034100801543158087013027051015805842410106162675060276186063080892326526952529843322345979899958195319158243101574285961426084533478728505797488272902299460975883972293257241419770599002456635557065630084191622248168304223324494624542934429753533713698048106065074552111298202078751637839414832286556258863879426297186947655985368558091303506912546464649282509279788366080678329656479644461173264057886181992884913539825268034535020195714411571257634725062454348341571142237386229844194629502002505356299895785381405737638374294331172915188828779810833948851587781402981005507354295166872901335817844953052181921276222696250860372863795926207581548105626794449984811722389701508421785612575165923897450733940499963754370591298753239044800855702265432702563902618487237608764331656619907470845339767101934787814795302875885252667529284410968899571020696257637969689653985838456020099303772430344774856677335648262531064720028286925815944930417370825806663008363778925784034672398221743788532869095882815257128137368815505411381615911118324985350309329567175307568602123702414121371537150778871483063315232974211309353443420312769111358699196850368111256807207892260328451606205389892690516578498139503876722259120945209617440609865649394991225718185357811982590534724401758941352648741014200566064355901173448715750976988926382698656930464844774348866445068795331702863314062752307289033447909771174862349960676900574835136725572743256478966663255475664403564232926859125179779838968142194169762193556624926870153556624627318197108875202258521612451441324576713024184064681607847547563873481048518137322265077857867504848359795095269603507100780633889366525896651369674212416193292226772504489961563919464127153562717429912155875281620235701953391771367161260650469747847962300704324796541627406320630982131748382810134710712575831600214449436560140753998427021380837392899177094607062074022739922852344194285988896905053765581030726890780138526312294039621620142972693244851117890280838185362898576094362475835951263475533517630656449478616596361865987760414968586477016561010021979444504977964834874574081270507000672653870235631810204855514337257885655074079196404036188775491458498861025052067974941693745887516640232270034571127922579523921216503869674513023293969954108069741405371537199979460729617208558202934585204226146047205162857375043211444420660811317907997807617025676959101084729346930488867748930690378389286021050887683106679338702490089031099523964596807947559619967589593428450673939820489191393539285233708395881475608636235648321193285262651986271811591572001884153883483583119641418564748121065885236913362293461682975557714536844869448030037334983599867923852680488394946236249892033051924335672777597159407585709538082612490936610979911994599419788022157622171126027169648348409366225435150261938008533417353401438065998573756367325730529104818525362167253881205502952125967614729212935484261337959450875638259086813049475929480880860020246597630416065855720810681127921758433839828132950402777961540496496889364260544778495763382775600398153550805219267757748016404477846730694136553886781777418034006717465343873608947664969472776008084798872886725199376659307885945033228517683764941815815664901017541999716371711226708411971564978945149011933727651736781290893167118277031081388210417958997996364766300727765548009082016310569731885655257361218528593728262831108414707476904517736656538605283449092848726059468884940433359473892416061454300981264301517222554038542936109315270789705098156860380228015091953548467091010345461233079140581293408398392696998433256090586854165451805776680748509370639502658762076067371950476913244110023651068786895449975427309808719159689185015999569701474044622123427840974002197011121992468450044495036716916389451749867221279231732604226592878006087966427641589800792509490224237718877365140711902288651820638354066538644321244070850269275292469012766087188601651825617476304653525318741970594423119639271866466306452231343955577920243432281028621116872353241306980796593047983181031028896641510129782579723729215021812100872309142762004168705155662975017845948842831364994071809022480106311910943721968319253436580209945964853234394027363625705916443685402769014778805563013075426771314413729023303856743814737079718969281405688075907386730826304072769808924839580855440429610563285535771627685150466805910964723265677783333319406836484533707325126463670480577562428125970571427353468471911231738098781972014526855246457473376140029984473240900543490428342391733459621529309400056322647880202132829744470588694098403687636743589965478335985740824728557755859752233224837482649055946043181747820900074498931532051850847166535311624109335373064940162965611443982487698300263482436580689939405223817870639052963940758054846086532159035568329543695445895893516692380655072622817460175205657097021118957960290517623532774156615926069483706760480171473648578997738732351977419915854824288257204451200981101408882954136389509984645406803252773783446973940325778146148872107708994434168015662349604760772977809959118530749195530086285517230768631033462390167537634465240444070195215587959979578498928704825953159775427160053431717078855604251306412997210555353415960040688176827658159390271903811417236021620878357489401032499456445953929025345829918228047917094332121162488523255828287101522401447393556343151691774031793311330713057050888983427997792205875272228269959105538084347184847822421052981685878192068657124806541515305984564554084880612210609235986954637049910846826430055500951076455412018901589353223952377935009091728976620743365445366943536980008728276413512020672112355155388879400433796547382943445383399832143270671017759853062017247585789675761315620111269222504718813814619376519321021309799158210983965681589987250404557970550032013654066466771995813453198930212246258306917683555480735167681459194089972583863660096973068649005916689123072634192503064125548289035545116288400637356201034879114365278099239692900302324837656479151843462175485705120006983808707155439838786024642516026709649042983403083254751933601612135822093049491697465567206858502591753794950060273647759166825031624737685976440729807123828474168285502980849763323724617650844448799141499209490068757601974873001603844564757659313022273159818049069713289197595045150091060900583475458882863276484522558350636933821165691246757765293203977549161179807257694563550352650867505358065065917662873888449910511972778359781197517346565402152027522006412164594814471241482607428685412609477873967746237071528761858638841584902832454898048898277516297065178437778100700097382427652437963549455826754673335750590314114764126993797293197380285217517718412352126668723819242325708026453954024511750022766958699580558102820665038102038478718376596222538829993852562419373692394807903702420318297049675233020066552033872883646219487663738477494728545844637017664954572316319467654139883835770573216480038926598725431288604916178772005783602228433025507283956121580046785999101848774087144826256673355420395088791816667747149899440081553308739433445710784977892154521676205528264245122794242257645659692284500624097513964521926837456804002958790923561741540193049315749104744930761482662165450846631919901902964952465256380469007495524699943046569386116236142178306992289007254878940462634894780771314160427045830723481638056817433101700751760403317903444846484854507316500555530113799092310619688427317328246690677910465890424891635586706362080653287567560528025050050545288292199228101233145175837303390779955835827371290860413533933776814995697607160479468165626085438060479533084365709263211772631881758148520619923585144583185083541130920083285118053859988319818889298928413697633045316431626532111075093228916019100483597137162008009014911809022209166060653090763599970668530753220465903583508755955840192597985018996901172903309102543166811960996475162354999225755410168940694806972567741343436555794595555177857570021111263124991965758517606498747348365733413952252016235639766509880132569619642282807403531620730170896052590268554965314592105342663282684432318844994812176052299063294474477816141609155322653465571985994347615144353125590817574274184957993413882526297830447347389544531780851734044325015004533090441211860255155333966277876298891667905592823453338411763597806263201284189976995922551308874293759899310877041330534885554269733580062833079193582505367350563612821094490852424333035745001076937434070891518145096002059771581043008402381226666463884881857137438566002257544787974135352620857117908788125092053941379212851611953652796603014046541174645389581143138790843057150089294625685156642793128933100885489262325075890890154186496768800749544391236523983061626183057042271645963192022805921919581860259700473267900412269038500603725919672541704119399578156465216356770752184618414067766851257006274011409919098468485266587064504293944045388795291559893866993874682977258782632820314936050793617909718480637455128054509567604322573234219746394849355123490311079231532381602751409942011080670233114539226637731341204728108600256490220392691362043020662849081071202937651412861908079472503203497829496955233347735412102868075559725615183065752129425942724018371868546301785089605067610427238024014020260080317367211074073443060629839434452001839469515604364251379889140282272791267340848562131051640232768021238489848963681956430333484064522167602853025871074549980600146414166863983863892878075516365653281320265534047074781862483236703442987565616190376470703053612013819839268199532489428851731414492887286137277432452304218866967326656373356526443924791896725399237965622396861610015521932208143816969373401933974718522553911883262519017957974057855236228622012634135081227182397512302958109513840045258999324214099140664951255075652285378580150329119847631465862079075562694744684451836184417098980660580584800582632550272337722000882339395816798118482530278023907278333633752413359915458806788305403360611287743901884849677635333905145792308465299503312374707069343077847820909233430810990899792502752162766607923367709636870139233283051046804173342621254427295728090097175554346958031869802500008045700199225218401973279908545573534832716081140626542298562061231798200037283037243613850791762138763211412730692801096654148467383695491753723694196873574300578250373611773868473446522285176341602777726637566287480122003673955905694407694922644313785318010132421595628667728322999081379824097534570017181423394630754702690553078390722705350955008919540543078289733247116432161839090289784328353039708553343672077642674979672348531196086747000708371057519980874392569722916291531099593093800340650694407611461260945290546844752267642078502394648829822457963849585172523640004141170596365393769234278967947744262623339036856694865259758643186349757518272286761758066919638069634759410930222204243044580066470078568007271389376205580742573178493741124601700206275775000558972431619458354026867401726973181827660157004830868982575805031385882816781308975389883915070617012301874939634717347131612822545920011752483375145926609908345754667197907973828264177992428149542100281416117439027612420852130777420138626473205786974218381493829712168505457814049826344843941669867204949319375603448887209158514936406442742678752162448651487163899408588681167048901933638978350936538826400667497666923864575157759736629725651586303222484426613183705019421166016126840766491238266350694962526079635215409596546245668433664578506195009196367576517451220419181682352694836652040647114504316509866838136156230503296372270931015216983936564933988044994145320286053769781479539365286703452184679768387920972483643690474750207141401537902056425706612810785803585071169506338863985843541468191185437043568721867898939054341134661084798261292564722354922305668782840223943190915260279072684628009283787265774372207251393473159167318045681912859362232678772704975635995116416019723783623237606498057010848140312225689072601217121629889391853355316902616424076050502645136900155236480063307955170164900750442567907230974695839551371856342558553480411736468896317696349309964832537599669615974745267973946981793153197518879423617543359133180100565703159025021149839243200840172098940876737461106350372802322143651892142113301669293897562133696333696197792596277733700222738764950003845650859137059519183829630967023058178345294450082667481881647981194912071091797484303237226089392956015285900310794734163511731686567918942816811570222865784780528611149710315236178852290029520666369915066815717026626240984904090054909261047119881870258468343626084335114378451888061168043206508619120261388836637849453737655007405185708324268684234399255043559123663448659458295495542872495020389002723407256962300931390865988022197076254185508151438102552803535849593531980275949529858878144693093183563767675612484822606449545027657541515494158232712602466070414946062839678575167109257276120779701716525266738260125704197551027181567294618907773960852094997878099944485202426365724359378188529762547610770563364911962124170093602071804380343773295976230695161270884450965488990740822782203537427143862423129981633510884344329183200171889703080537260017588705983069332550153024008601317783305581552948008670819793180007853749085201949687408137901743250276711308136608659749541257105489451243538357769272229287148186052649660851647378076109557284624128796914194425117528932086162398202512071725646430780343833481474464365977432060652229168785277872373816546596609176490055175254237168340525494087414226127739365055422359925493065859220472351399116702487996049370230128955345513012958317641269665783737928565370557558773671628667209986419553312815632038587679740380564445582167177510351060154332374841244746540344098579151221597545394726970803350053279878999605069479884810994920625302532238971652301495382086945324097710505802267183142674877573718807137171390082396665891424273688920477819969408608341333159132036536183141806599438698167439496987293744745130961819935525051551782789192391185640259739324667545773396766734064656361452444826412047607237760555715245524827871912200715783586150179142959715177151501924457614859037187751580705063292691749511622272615341658336309579234877588364529954940353658339844986113413655556501291706746558982719016304989755321326752525937437880113657128840718884230698071850391058245450020991873839795650585354124799633424770824366292119770668702619255419859647119175456861861775234698227409221068866343043559700792923379244559494514937618239534663041975702401886981502625528988592408480581106841865468190386382873570483085407691236331090989934038529260876907280925264236207775043881838327632486805348417921262673513183674850656829923089608567890331896186218705638823383909955354021579725241185120688828869573694268099927196980134479774309568173540655579070755951503868629546002510863759609738191937206292226885223642758279832963958675048940473767669824974554292855821359361679076642225649168742541045398644945174494671456092926355862095937746167891082518323120120998928098797649769869079972503196745188189168501350383228782083024829384302346946202704885861368979657250920939443907750005633251523008517787197498025032308038277761397319990876989060841288321834707093580255047000708013694077685179642446544726478043418525023627103968206909783706461808768471305027105726291855580136111878226256627594199987818418399504289540076493273346193740119420929474648172697373172002295922131820440194690173989459736169570960695004528262826234402457265056442338625569255114227475495154656637379063711683582403130479536705301250134371793472320486193416489771607453901411267893341370584695937450183406037605880717803455795547143667873925290344201767157222458683708883815920552947944445492122076128697484552413340910983682078485999581584227728520976599223452616380983270599980431928562789958245003336344598886711018548823107878550855743620541351916013327424764990409234714163866661043749134359970091341373319263442957695894396560559492997071640958755298723856107573751675636669044785402879378454528165169677259039047662919159816016363963308618703302476635823561958148757891247491245386840126029878826359744666566150309694182262008980173744173335309759455743654193875034374731974699318435498343014999477415306796161296789564080158888160531033998185279200058964668465773979125540682453001379512896455519139887495964329238267364829259867277894795202776947417049278340349957591746375832282999760278124565115006095749393471051986254618839191461406126606771064390607286343725274999821633137555585952846122591749005874273700588744889785501028861265099204805538242708359387703771768738232591598030826038455082782874182788107641711819440482442987422351353026182453301028371956956230193278911154441667425515981791903131525578212668505719906260132184888222280442842448614056774525995974981547789838083842176716674209000943771024077333418522114339314518946914361452427334756621234852946113214600290337187932211568987453026545339344713329270445911287037863116114377731908603950698631402118980345323071454137380653946817196393539691156369071969486953489321942864088929414695316496390223046331864439799918382265649958659503295805381016292367526269787514005415428639837192337064327300567066146792376516915384719411966609216223533860819568679713980822703016400312899502445877775062771568362917904805712312561445776970059365326315657513559339664554997319844381893376070446442735378970664144956407671506720551100896900437167893112114512265785271728364882542272546910410936090908153754127724784517606447704782542070211006750419623558166918672997920711470797494359874911523675943705933508618882934200782957855372563840991740420731527016734273147819903042803418523085972699597016190801798746879941770085780802791653778649148928948882054189516731123541325739428501100702998494248005834375416899684416328965637462223800361065511711866943938833946981750932485919881192799357545939629582980325836594613946610651502839166574870298455548316671607377499338644623146518255535081123677030018085252652828970641175722816506544075984558887845008677348376574501045672269334462963000897454508447683772289270694740326729375682341530934445419917848744104521444624846834145540113356890704133336770932306193294527519516902010346550998155415791286803597519631083940154389495533935855353278077561574846522836379757471594026612255258424144800372646388299783369096351459857589716244470878207130610403636777758501088427881448724110934489137819797792632749583407067706193768652001691937631134372076721676182601013684252999575426601207742075422167346014551951249349104936054365810333613656476443252946734162854983545469618551392255324418201780476959100925398590757025266755426814144102707656869467377116581212578472054767963433625197705809916039395704365696763020537607597095086831699061011812005244578965284274303294717381431745041009683270564902353670639717818025272185888542719239498386136581034836163898638401685908339512219856042731192869206516268834058775689110734231093883222092310133197855710511297719807868551244976719086644736718940426277961503715427640223560562599750826454598622902761800712895705086198455760889641046685261435126916055260979889612735444876380462767851594035234939561870962217928929281083988026351517612875413557245096101763071126534051039463552231227880336706496542950065248050352669578427222762765327174914833680505239542783877144547741898731636894025133490500599594400624103684609558069397419855025606161152222737857352623356212481960435554970036298833331857858138668057284783142829689350886172588469043253862671032743511978727775366161894092697308719490533140563417976060203074728677560616765218341434918550732555663906007542423743168467783933622638167024273408533538327451189095496467990844674481505127699564490682471056076624287967931342689104753559019797847415505736897063962039418783070904823013349565908129224125188167151066079964408716105867045890970528238469896441607590963684859946068372833546575955320735117372168929521066051406386669406426112592853263826210391120658420312457433856056698899746846741410580628657462125268748568845294037450123152150566185845566846605836917997519052567837696783192689121137148950133460913114292740053179074005882612976909317278784430716477922678482281878852887393729469858453167941734129625137692553337859129689320955166648730037627892544909455724046870854428674829075644360725445858383704460844668394619559158600874948144397456630149662480079445210651833631613933833631943066321968013172023040279820029624662302140007320221297278181541281440408887736836903209310046180373632572904828327732042984112782164533275893538802758374925976218252941827334436689525055618937555463578826470132462394822700497982901541089678235694463382172394286351109714057576933801636812355145820243929675988085016792248232350643096427611283495765821955076581927690399049400295601904455655100395469441204634727527964551101696441266659926366514292239799554946732696372684632125696967484450279673882161523552543273926272046355032836700731381128793274075594078079039944442811825267725687967594091747147730320253851159822015935664702793842078477305906672418300976937216758250506972005767429214572920987780920871914821137094674118311696836118683734282465507784729497186494813533627288141907639604831668958007762657699681515149817628056573282364460489794704411539334876460987615458815452266264592159064569682135659096812194430679008836917714714571475874500988768818748642435947285778904511667187502476962352663574786673676709451387421951908346960347528355413834139266555269408304795088416247906655505424579268883175353493720778297744397356836115062993025830196281368170842221450399968039081530047538225866656973334885307610502563724252123416410580312060312539890540097786688406597473945015956005875642241865072245003030961211895180430736846709304293298202609878692513254962207477881667125170894824551410755489957477842244664439525918787735971981080966094080153245762744867084873808327661493609233461224000175970036380236367931385400876431387302976677409720275362848659735630652736770616414524050414300615651860074140729543056381402990045167747415459834091013092276578193769200819817176089256894482360823622454889481455492224724854834533186393679103946772529218032586439408552612609797148155163574034984063595469017440214442030190037952181276932973775476193958535553290490002244103854888068982307743950164217548668489869596613288914508745347717556630535713418059160898585703233125640813704414333125586305385050665996479249325179193408968627247354515032064728982899883108928553004982538600045797313858135370517809608898130011229635196174243872553698160537386045955754291685279704832813691458283637929907943843184815363790065034253466608876242179709078782412628266786942403690565742823504661899376469480204749629691956325679632134753092221458333972862770195670338653164621493716815317967706482314964424620854643973728538867338986967374349188338265670558511328960074107023780042986490352780926981645376868406343862148789100471394137248545533006322437535887839492044359769244832486325219954525111780067270242010293881745989252863617032125170928295897669116709878835083657611302675750327521975232051972056811634263892926573966840619224846574425670617019885980317087947720846509765588565820702183361406117817888917139686890377633985899565177280255527335413180162381911441012306294621127151043906804407299396196244570153462459811923824231071224423236396124462829691812634908427043234709279451883293932785345158567524705366522842994458546677473556948113129902548804366237268208170306233848945062828717548242560524503180832547226121720338861450206746359544917571793168301100977654527201125277382927056234752992945361411599452968202379133819197678477887336016496557076705696207722418655007397339891949258234174362260691075892935925242923511721679097465512671811269040606489336461135682022524495078830730988506845774479480047191654626785399413719897933997159988258320576771969816909803038426551504652881038111385763611092022605772103184323690135955243496520797824130350876913338574207898294290172113809672399464736603029233434593815598594840949586463595647589032141877811408885166891944803699347790743771091551267448398023045350769216545570594554482817555713632704493678397325171987500887206818857076174734196089080643824484437396805223872271347182348808580509734278431040852064500660896149658295306523162155944074036505112325556996573186060671181905580772188521745279788711294688332672214017632505755112298849563497741859457811208499993432211226491100527547446428031651566446496999885825403162871982849449187989966224378230357305100467902220701461165199507765068402244799403740777085536411465199066001890934021319335170967201936778869688084270481196801895983680382877479785648560627356530878803482993701438897053949339450825337983922052929049310080777176459224141735276494329485574562033028234347359518332607206550822358873842912835484162938903408882323062362955699299602156694850879766760428850106137210927365427709782221701766665317800649476130341665927343634699379078010990215198284948408239965836677739018089917091090375147014043091269646827347257885503070565030378672758920464177767562095223277945059278721909321048776982099733691644517483715524447988454252215192556719681437916116947929909955705512889786645691970369258042947072979761413158019760314920067585393784774321110426007462134577212845661014572394435928343483404488425994608053020705039235612508126927417612627442280613681226478130253765950495388584273667840720708071332478739458064959997038305599890887050265289092038421546715479017998549685769045375282715011270757721907689252096359148157880014380642856630894373162644676145115146721027882934467952560957129438490742659406368638955933341740266054804247222383010273691344967362748378339093809272004927440259807430711430629236188321851944096551420433559602130876039142136936150850967496600037657065997798154795594317351868497393676771935724965839666671099952676257736328157683782775465712929029023752031946514182891059013998030123616977855256205300886670049686088523383042496081203362994788385407169521687298739985728921446838724582344029834873261210939050916580151340169482885029360945627088724157662447063287754974389213219287537871191339721562848654483048655810139647468520447049592939583147650428554827276504777552314030382468473388296807407669419573002079308775012232529319638218479765275044645242818061860526758240812284421308364093128831140172743492050114936217174769964462932887460072882700187731798969232947703379239392202093890950625551655175276952010744082487469557250889995745390949382022903320039877920960951269543610463851857448599631457970674109099862218917152290941756207523840013790214790145605370336486605484610169085272579743114745200597836714917517994708604951484852950377486362103434320526335638407046120996150282129857396088683599260656421206270614375807211625785484672177397761231596315799011245226412917603616944313319209119937910361692430524300625063229738828720979195934188571629540458327107704079279453567528592586766984826300117838847733118487819953473271853468054999165853944933768899986346053720364646595029077351712270353527928090288176480175134287053579612834603288021386252579601902926042126442249177019561277135633861680884920621295730470737924358298127231753728210210337970248094251872000240334802656656562350805962866227255119435078203616983796414326766357833688745389976187842813929892172872230251253780779544984564596730638746454205292738930278827647703473955230088991241697097646013472218027405966304185507045147376775056751530596072099931099848809615359022106306394001079256167484833105242206535083849355121748082805506326555466251748682050060075874023129670733140516558392953390950481283619727397143099838512129109794348369073124834441745918883567880287819056575951632586912994703122262525149022267714237436225914252927088213189981355281505295297694458376776672850768568752563421193190650075077677177983125888422225111805733482200885066935150053042978010184080792568422178359831837215199962221450982505611430232049013159872721675283958727058307403751173113748460831655707202072177146094692376330894374656821894646891677165110438147410625717697564942311102316550330692068322248387617559042559462330879056637020175228266419583856024898875937306889760640504226557411253773897242080674494284403240751547951158288181108406809289294084513064661167004615040333399770094712800820897849759806331406010636551238139711262571535950090296884439146250324376468062850127796735380474836955225400150771763131002148979060648029329036452253697286835275509051262728515203176438913301070992501409539548470164192980566935689252615302203047199462544413049305881766375720259799524705413968954490122767118271638800199699975433663971834585344327075267182433121164934613197201514511096165651329908395636331262088683890775018612112993643756691254046225083011870193520979226978352368117985106767500672226451447202632788379248554171456497166660668233029999193781816170815783838978633357835507635615101851296414348390659940855819581919236726866572702169998115848977534787687327973227224192085027195793585984685256699210416691706050117911468485268265239247200237285887159027720058262792866688256909972141090149622298722573691467528883332719837277651949693764082065094477025619567774260358139959817644359052336246211565638554127833391764929287825769533860763413028777254024913054277663982488629280146914942885051155414466342757490133267391924966582925674405087000680876430008821974934585329287929656203450784455453223780655234068503610408393078637256342842552554334262374573060351078351502711497875890325734166327808589953745773098148445579397925811383219522990256042528152660641299764611420653287744972728788766518790381876068836553451330603601785151556373318225044176467068778964514511771046266758637734499159036258520546998870139689834713114926216513472086697649768889652161311168607216639534062163086887831223472560076733984407699584494606890002253380565516895643958670266501348788509639096494395008798804251035371425405586341020282990703237061838067179797335860598333393881447901625645597904908911106251782471112848980565625562548534838620489225076912961597295651469722720129328054645586325972804178097485114464729407637724349687475803976452395205489137489419463200622541437939171978345562004741661212644961180979853157408015281055626400598944603348585334032043827815064355167380560001352986846823382958931802082005572692704815036936894648022438404983801594199865440030024054595586013689687336246387230923793888180807229881537751796345009932356347305138832299542256942834635031024845400676612103268539520449351997781874427451424140122716251966281255832362122500694717890452221677580536788594835946841106709332077956569533611679507055089980189100193316019019098829525124114026846089049433888218542770869904592430565519006543778244726232769328219054924330687788392726542303578984912916656411316850424104021799178652447479285795570869726083304392851528152716784242431116237454863379573722054699937913497291035333730686405520422472909498614162920931250794927788713995716517196210683185994671577208402373974801585129201610753967244840792692261189569448062272287781611463184683099822613226082468259370145068597368398323892429837035080638566001022987915736975769656268237907160137624603751802370518181106055996405069240850268064101530624351234037400747925958201258625505506360546037858290046691178720339796287289442008400844655595589340381541400458995852177662866303199109161452695055267529850570525774706813356073886122105745701985599228208717615086688239964575688647472152740498712755248669692261729697828313290418853304138485346885751948731685090606656630102674463230367420311257925101162296418387268870099694091537883231028756141652039891712801481854821914342314378401005566552006694314459296752250305222897388585338300320881047187209386239509646146453885846691575126599688242286064060099797049386200461258809282144167999850401182811407811990119229378240127398579416309062943440021780082659663292119109953533304553947316020741638141440817449364672307381649916982042265279474860358021377292912371402726775730186340483139913354389349300873886307083353943974405746120810631256517030122976947310385861987314562296323532625078626042466019330367884099784405527132692848789606682485966217971970420777159950905900864713915409242074720848298748946430744082982915351824564147143307276608858812000714294433751135229331542210766068992272024917799867461706012095164115239032003448977402057420272602836675065742778856500452299927576651660007970520053482113168265214951043186760720131446800110776517964328943594215580657057883098972080809739230966849521554696544947311631953092911509703887555364434417163232092304473508710851242259457944101064248563553793884857089441309397820626852266004959477225296195229527940091684839584682783485894980646504306094997638310849897405963015956282891532758927851634848295452176307929872836155210675501001166045225238610135935523042495879843792202735322743396206578668254530111585136210579792576227984384141734264248016991474690505707167329162396130927297292091367316222824872220818500011246098912149174181220363567090419548820972922810263595700905176616214001060146418578163019930534164729961975789291996538504583257638281774216924744461149326576687798237837815536924277037876213727680678563941739725856762218048952726035750138340045190637899768694387373526774599143053837488470811014479665907839442256012654939827669003671909638630587003107258998241483665076493730727136612401335867314216195656531323897848735516334347423819233191714086758563903978121046223571631551070233720890527951556613878318584621601698953407688902426041727030199996245266710378427342532437116464961790532122888440069235800761120031220133244001751992394941002650774232474591565910951284783785642869628730985766765798695478744633618832692915414645330563835746117283671291428506408077809248793918268454692652125551077824374045398420726481464963448517942233262071797034092843989420555662237111461115887713981743606471647796104043781983278231593560505795023203072703607989299179171485682423302578293617917306734911804653332310430519057675222567899663368815572885506910474238708882716519778593660018381184375508097874427177519625739572749896955238322285633501363874004256998280849156541184945982702476661310171155665405427567269973780622383530550866467630082616431240836842559805031069775042940799321924307744099616601958934358825002084588221129147573414283928201570241186583007293377264798591680505231491607131556752718852378394813248225264293133812935469536446769685735495279682628208367078653377937105402424935080981472626269622393684178330693846180639711394286208176014040132025207911567296397808705379303431697522558885620462317208824771883039528948518049955567948088481116277408888483770659817808084681751496229815974526541857195801452066704790702544880720487387020474612664175727380498581637317598679669104338133262086863103283652234964965773634024719941926156016099644602766462754846084902067465778211892936159070340352214029150491738468129232393392471161110921423536816475227376117992375036524139927897872151419194154321034744299833356022092202981095792919342052726342216650486756562570924668847963561646838426202716002662215803319732962111852583806992523154458193874540259006682106041065332182383222650098759347362446125638815459336733793770982288849195211095732576884971252444794999460072637841719365440720995767866474945253569125550870862226178607221987471055125341520457784758321174307041776758502694017315385867740757620896690928208915952523360720783600250052373488083951626205267256342855933894759482108205302054187457872642043297224547108785375528754187794747211863188009174314772714555251398187560728296734714190366339722848410129233219343536648361995750251109753410614537296309520246663983379811553383550686017042085151648808719332037550129415223309095953091887785280786922734609261563193504274744548238760618350579986494038482472288687047494108907759574727422898072973226167616620659736525237457138649828102255721937422469465278220606383963544536508187520334880464491211166141521822696857409581507863956029341695889596628918168561193336854683282136951841477333778022815267800470591254580386755746949865591001587543351548455105330694031997706868372533652347891477139852321454450452445228131168385471772841193801463628421859054769096510942315163399974956230985650038988969309369107261969184106256819271836210183885530554026456986055146421083237931782623231468238053281756697532716434608459017981188313996812692795406028616316701947090010607993460019513435592967102262899838539556455654779010656021956677258725304096843839628867268662344114392511736565387739907885099583020593677772091947062912904479243439965819310273064336090159372148413139490116307149985328646372004315471008646029583159198296879315945016856812868659434249906804912598663806050750856714422027366553595948640427873934843487953143594223768817419231127738504223162684431516264572892711022591067075587772172368991642910704263083384204990108438488882158027422981165124619672038424270005503229233684129944903181836948991294522720040922384210185772779255330412454515833584801618824101845296456529470083920235098705475852626896027661365778789807535389583457797300154209570146657914360427783796841428539288510564617673166987023220781872658282461530746210158751073161535741400228977125161053209712179730813637461112897591077294631174930995112858575520810785745333446014626617173526930551085484186717440027539098787078519678642828694938054793826827581796744518536007837445626115450067586390311380002277192700427091653054818108356082403652423205309452699723655909279687554936250595961923381258408527098764545216508461766980925720487148531932325304705364108839058629594279222332831963401626843920410398154740806815874656708394320207625563679694684560463703934188291856970337784955015005322622705781655168663511557388777464604676882699423867273621090779277885247017287198906422668075018943306634730597354460413257301120416086331014578072780180668155463116616504353600463204050040389383743381070937949728669759270987028466595016716708353437539086531518403348311128476338468155830640875212300994422069989507356491460305983910607517827241885367254986932117530600125128610855953520975773671097667535571927756985538267361322675098166068425362136908663171757816622346183695917719027540725397729723729157136875133590552514678839869023736791131684563953352187962172153792331379358282325732254420173677396143367775456552528495001901085012480944693891389019059752494599666313737129797706204680448327105817527962827497341521771461186954452219167952364758220342000757576488292532716299981922606634370704557235524281761512630314747351587988714810577040826768293956375357371234014824410079081518279880699902859709093659162334244969783233474952235386800669802422300273812341928730175312788180710848181170040540359515708119562926062254482434066806924822654526558905169145199549878489498897251492170562656443813319543567318491483527241244935714006304061634938949515578599457872539624862865486113234662684399843396356737001634792749091654302899208432838916608084333365784937517713722086712653023403022947696204418710067322230196693948864207645813266182683180337598406165800614284427997336104489692380966851129016993551463664742643317673001353153056920725636191649069198999806823330347225916616520674042443761582928613188090889921510843997772117874353324106953457213635364380646418072205869993357494196700849667854846931726477528398740492288572201731565751300641794796882111592672090241486184353263101918177424792637071649581685957595467840801294928979134195495695152018383115699404933677939588344306468911688512628876429579119365916521594072872030593714637717063127872838575698835130813817878287871182816399411239439511190001681252967630437663483390349458868275891641343163614274352454049290602192396618690327714162714777399175337504166915211199454037551234644532215951934314801492136004323060103456360241558231316275843002800256641238831922615780908358266834048521620903972082042861926184226580584978182273715088987952919393033668917005395855037338204367297521392225326978068200994694423676077737138663587240608319425456040488823051764156671159185777639082176456891888156583290328061507851782754566623144890631169052428499594330322654420412231468497051414903302545261463505941970107692472264564928206589030970995376791297413796072444643593238840806478588499671493369512487893636997032583941174870026327741203024464765980364737990892761871802815722590644710183790276392167002152617295201533288243635772538629586689479072386040361214945542658105311310831000646039670805963686486375186059701712380385489392657622268113400833804983563845577439552202755264904239150048576800578006024908827104569325589750537184874305715076379864065582838153821531862923476297955615489231632439474581247862712560483569597772063811992318220929584286726895326633677726442902947857051984218360857815535273212740348101628331727026072200082546112893314912268029198523013164299977254260879913962859941225883825682488275986912406932515002081567982552995344663516122089814734987847793255060124471532910283856096419638127683624144101754898704725040878917481140450053942324423021753247765784709053124197984193326700004419883097472961482798205815133152664268976564142722713710006565173658170722303982753558578801100779244147295127954501460437544841636928895090374421880037018151623095819230305818907868991848388977450596219684632824895462591890119603991703898202013899032326494708028890708086416895918735889473638459820514786865967123433816033740956145196929786773744055193487102823860086468621516815620426409656835945940814091761460061052340373709180419140680833149779501342400152076538963073695601537821586430402638478178405684702118651521810022835728609984795226473721260630615633226118880787487164183186670176557516246266582125958976992116151246239798337221969871255971777367313546896547499382441715916015356123373990880536293208608043900104829719991642169604464933598306069519002946455226027082586172046320677043860238343148104708723089116641464929792007878646406678273884953307582824299378826460369019457385058765673943362891448399780067031109052140624422526808034297478680519217494028090481323953215145228697378227922242794048382063416063499881646004475844065904356001290911015612812545643079109328977499308334384256859493332491417875877101089339948011508523250491426658354810640442588755015312214705274715748086133582877265026941637479029626873673451707374852541846268569090246218938658224302690177689063788923198796840723077828296506125175380372977295103698054134725080852175911607712881340481437121501729305720191332454505591110294162807512435375842430242971446518331058581075412099461473860297052102945054364237982700159694216434757452024796800517662194361722753490741348422593552546515548872414183656532776700736628792800303060680575401653593199622908984162451212967461692394570093657080958000371547929017964725939075726592258621178386112842766715336139765682110945146242950411219551454662763958555351398717346645154219413161695292726444653562001191478112470517880699900027693906871378016173787491750631442510964401424470124019873503447816674874101899131861026135056901936722390109830390958063047778059595243307830877734263588027419395650795771505218258931631864985833053944480405803434712410739698654524081350229049060586443689208880385028931120751327362437021477587191084112997666031211358814603856811718116703963862196503509247934866490601897322002854441629180489037424116831996571975625760953624676616618629943370137417438535200140154623669751132638573019409819373437613233886599312404649752988031138173945423906030111942883204429241732247940434529791111719816744691787400429508263197484417115358599635496527439337198786869162441636313611212374353860518790708159922793580854429208871448329130801790625763138385621040607575952412136676282453720528477877929412146289635578922087004525638702803145129290109454574361121260315719293015841196159532996736615181141715597440846125593004630187127253574553089292348096661256328542370262116902427168408858827993363294371680146324941721964206420801372629911463758656800105213395627365250029734138164028240812381171184282926730246574603385775890716048580891959524389086849164378697154719356669279138608238993415117307614892647240730126125875611721535993070622585382495215563153726010443272077372162901839462316565767641491417084328035039025369951642909668350227811071821235071146408750838030554155230791971421495937850582597739080849684190537630489594205339780970930028504000760934580374672489833338475019953584179746617018242691040550306321060244112703528685851728508923527747821182494280844660185328947518399120692399084061833330880555948530695026033418121078304944687564581690765236179315428073510897778160074913424332616280956437900529841287927950446634264783265619250524112002951425717772034960734603816990470932780891685966033947741766843136920694678149677672413606522185286817704835175076683637689350426444954263670018326619770028402530542034967861642738921601077818252906354224658533504355638700313991287679490867699570832658216002224715181780968800452216858847096603066328248249283957988871605928925644239716190647355476649210550975310148242027385592049593346380217562777732811734321981243047378092072723224201379937699255290327587385935887678947208957882021986336184947611105432929899677764790694676646304070203183186121666459593200652171796465446457159949900565613526384004225755754579415768864219400544668000561330890681573591618353028454882050271504442820236853954348724482056491978705316736655793871008577933256043202845013675235990109380925001819334426476287681404976720576621066133811740335742457950519233838389983738136869239364504092660985948681887904708894860208628784672318109779100630014641847716186793857920829052486808775888352944251951919273167951068347011594758804380471081144711429010369483132985420968490692190062961363053075068839575444829822522432323881962650443343984176980288133058384886151429120720711378125097627257189235512025455041821182858998791935218453239358759481565218356257369812649550286138955281246792350389650067840138877867747326915053141147876739689772685803333092083260877468435475447318476297019030683575119935588234853586487515568870030636221849679075431987560999851477469560927583748862026607218110310737228013038145766746372991409168900447635066006726082004424927487255337545726289408462932650102416275112451805987549470363084781894585613161549816126189313372217014981610875765985452234752383824131255300385996142732858512693117822113175211289707692301437215161708921843085752531093710299104263837011009208445647990320412109911624823779493920529236533691856138237117494978558097740262932012157814325710671513814785836812497087474594509880641094626744190756797625949485959693417898311885546378966411021643030892537607229339403778011523587276567129177175717995367176493418103823680962282599977692910131794070279240334247254987511033123964538226771391137985003769053220752259972755691399257289286020387496208380624334836200226489219931068457104853271753289797426859629116795486914386871084619889304067782335655062844572179691020483321348832003051380703706225681465351017015017955416876059504392329185304722107265746946505670646039737690877074138393149324294842189212924536435141383013685636715376511585851858489917335665537372979173430496498021822022175768935077816609739374994019834454815688048479664565752419526940631624876303909623288775633880991101392176150976404694274573923713069918921986236591238608747390228457984908934824297227314152995019390982788735237138238611386287872417135388549596112694701582620118725737903441683639525366504683062444014040961622457110897145716601962625811493019312880812546220999184422361216643332932822460904119155206782245601305416104774879017389364121599859895856076412868203086448499039545634818911625303281416042853780394371327494550883926353041282436006255756531480619543366742446116671895753878711713244050844529112136480984569242314811331095548451444942982400224881301305091280300641477256292872727279824892095804000581561779901139934991218221842873084182614219107195896555670803539898968192266042701508059622525882509063312976743442487474744309170208643160664049898319234576431031351031099884989625848211602127997393280234632420657971140938666136560063818594235423346362801273757612083360150084937253609986949751136964248989376208364834448681187749878459973464592407781124508719639025433553401469015874997769047265707589312627742792737107561821402656519235042673872117171910121847321546794943961550427444026694154941513069634552716431623839243266689081393015927219749322521655089312826315635701222584863158418417500050063403263729995535429212156904739974327810757780242604191411616737544773638338519118943081906583198698914207490196567367757926506518611258284502375650582489698986735557486156043135448520265654584957912390419921937993688360330787139020439871205513414739929199918632841275665775062554683420615884519635478998898659844030136807718325353042394357604363419339019989374266554331992517106669991162043164737188495333692741600728496253309270436169412916428613371031905547582473596608080509314705433425806906452210877264178838728141671794470003820611742807204598267428769389690716020457215887148393007536267202729642942408024365760135217722745513067006823995826354408453803144271563787495174301278049222330435819742911259274864554727256934007706927667063896511490778136103017527795489178907771813208084697367183442900625701042626823170265985973683175110755401522742553577572609313950659102424193781754795765621019003262671964334288906387977912198873445310542421032521180989372893728897113517256937913767559649748757247633816677179728437449031618631987468471424644095102288665700791004943507299359522540031099214586799311323348919784623974937613643610215502006356571467961354958010915036306647154755979918912443089324619520453867835865765472856518066166419722429483101929261244863526930366450557884156470456666680789478944333021929841008251269364345991668830451253455721467196587607843372997869516405425249320394756463972641542384417186539220909493550979449779723393679151059268034873562749599359067153584921460738289976581113203214376550027342387814451706123354137890855239538545042505289767707689262885311485820856366767855691940461776501107339321857075494010060992767500415349189047670459752738292019339021046261645619161878839592370281968061177960883281808385243692279356388395500882782006134845087333581670784072863200126614174910628069689440977436256082888521389023119888747137639645197740430479931469368958155004330326205410865529917698537650349492721670766450249338961117264056258966856181540926988375184805177524221097258522597475273474549649006163388186036207125674693009714186863901658112158591048026542386307455542383743133493099419069082112595077784983905629229452876155973428017602883830068489790560751889172090932908069276699598226840928769714721685987417566144186164434847487496302093124454362220727280969883389180433247972201778820827634179387504651681235592344569091949529148801681675036746123947350248589456721160667490381561056658813621413611234262114496730126288557519645298020270599032431290045208488400208263553305643321453111141844411856451966037317233197778281788151040954360585043108021840409338946792996115660505463696720933029162553798945498993197509859294327547980108352478493707493062877923986778596375932066292964610500781861384184370981926933534258496205348662459828164585886612444604723877287262441348521038615357402189260772796348135594704954363497385673945081484220735447905474029374072636858543779122830774866298616493524325909394640890180092695297695459512067121238357185958295736066252383559814342533726537192903462816746455300400611264586617557686719375463182020351782856163455675205260590424916413629625259636469003363980627142271905455767382135747175971098592286446515586876396590581833841246568038022687141337625899242565953692018744872392215935698980744160112658111732283549369188432012788954286621642091465924568742545095406753584201392165976705755444733024939153721986367616777536092690054085042960241845350506936542758452829797311284854578845674293302407316873511989702124486197273360998718028679583074654265099613771157848681953697617367135038028354397929238180459913282696159090625172323773563694628741698036195631401687689951462774595131818567926499747263533905916943122752026915851823382232113806227246489921582754674241612088378145679632257322871708496744878643984214050819820722851599578961124384013074150240036950658549832032515230084174901429561865250563447378874032690049022902854129246550390220301425500438958522527238245635087186522313959092328224225457350992024390994369074731056076941715223014794222684820075146296665779025708254771802948921863752050309022549275115586393077992094328595180128058191403006823062222372743213566263913737610680557931414041353142581822629123844842383065565717625285372160880917491817089960362710941150972169487238293768503016312059554708122293857126760999370132257367905271304220313816303872797864399366523588071911064840696218842633666340689629275742143979089422042652521532741982211626442371769921468839809550368719059199874576264826986276296242156767642200624209221374041847401297373624716225326802683587047228908733904450355981921959718260484754249296569159782650706494658324942147145295995026714189978116181757276751061302467124100537899309375735670413047882507836007859753004106849640721535794875202001658189974598628812712338352335614846992154068377365043581310179062012632690644327642737692265263090740832267803921117093555848077319554567602927369746831425095252395391053380788747862405411918796723106398275676866472249123953810598010887579162376296639209971589570085970209833586914673864035859583685512672897424131405764209891151535545494556825436468991737921839227651881595198532399127794265566773819728182390086228145886077791840941296052452933166131521744291648354210124322480505828504288049813555507646348846154322246864808448277957619302700775038516525613452058185854559789381243234169386451724580649821137502264418545099447501683045348235878423751282831598934957071870922569727881951920882905013205415010582104617094518852476460111804648936805351787779615666515755884476457575925300408047514879384493411392201996450649326476618775328919607988680994666479666593861284896977484472940738654351976842241904203153357698949740217505408024578646474262693391822295691550442594783342301870866186144719953039160416374399025281500563084741025878326239874974477152069541657758470124486178319620127629842660948249187627163690172525275285709802402278874356318242950418128303089256602720661141313685227329765586731235635040598261379360537035253461077671665535566462146195002019044459742293919290737412457831410764657087785705141781949552554825149097556473406922670543385808505884877718465232539564265321251647065196841278748259969991405991721357911093517581364019959066558688430989413268569871596524631635333709314264871681049025548651132277918106558142632263382027985980116374447739033685722834696275528068660628612328218308494003584885307435833588815399769239043006638255375507695207841034404713303200099835705474399801767547145845092093187491350682127330777227372678327402483059844478964613397465686176097641033455492563388459162008502149055267763628604331363194231469209907475151273422515453960491548572360310422693472962977418938029221463372137249386949839033017868176023325108788742087658330328933337552323102570390279013055972640000157930632699496943483482719189506452009069869104727389375379819846425087577608319907481268429545300633184491620983682459432117696313499223385086660393388124286571916530587832202272289586108338819295667843847704303266599699983950441438112649039829194793525163218267284862065159818721174172356765169612411018413581153350898518758834534099040413237673785569239097104812539542234987235046614149375747334966976628107372150103957853989291483386774093300567180027731822545444005436476570247166329633217075984534208038036213596206191487424812797025526364555998390480938079185513569105225816766727761436889950499643321067155148216166998722652276998023452639206558831600490654315748433850908770033223814494488894073989415996043542982140174575677503778667842207161237648921048732250868624802395906789103041094978597517541401853900745259979522913682021902552873817772066510427502195406472300699628625225689104375786163508383680979892253226485169254941717136855885561108523067023834783618137703460991550545373839844935978078299889713983204089574984301534678645143957174089153168175259611371555820993414321763034290809810010849710158954128694116215582715699372531429524525905561029430161711031902457974969980450461253551879476340123854587419967063425188354140997728946487601320620479718814231024300991154259785688337376677452741202577021053323500058500294384215176973269995927150111783860368053439606726386563675923586436231288014119153647701342711559195099247504553959032090786851848055360078662612878832353695146648968356991606089748526092021979569226324313577606268671475818170084027598132156580964313089609196510832672553728385643712831744214220219599727904293165244021489773163032906714384164184246509504633807570821773217754358079594970006958647366931817551406732687951368331539760751389854589422137196697931898908159733279501828654681147306950672045407179243192080159011998977972289201249094144005613429443215011719950912550539288300021794116145886657168417654321682074742803762746632936662988450798265094095514977547569561782857969955075056295355325871958648701236404088651764044660150164197358322690865116189358040040425320868716585685423585294967079324924733263475809854271296272933845072373451626054494708334489333319565477903513842263407407586353460727082377468940998679304382473575470100550415066913948357493813169597530165673132484111159923264227436245890379396566483573161702745878150029274578009210259161366748096486505423669853337810913380847997938885427966906470763555394996881010748756442077000150132595003419803141799721030150336854171067425226459063744192281633886860217437431894613828643762383098011047628985077604691493846261132698805899150019141565950671967191753410636536998989806495595135388975819760788383316611653341970406241417313762487578776981385470081231372815737283865319611702502474149807013812421114712214953021733120567865397254333993314256307229739899029493706845101040224481933133694082350326115449934057827206431844358106057444894629061966081856424030281102203363072124684957007907886264807030652755002291957824682440454919865172133310885517367501993471760279586856013764208097796465902478202821226167271324150054608584666742310926133135059768981724454649816060306189156325234193597839619122739439999781365719187912431513183890387956958129228990542793284296565278461194075535172774254027409958237762703316448712356544037942046770328813010108986365577573853744585956584281302831347120282547693383282895959527160039502902643351185650966831870254900736745245134602776199438157109937758103137783824949883331090743626677752973415274235383162474325705238577753921206786915228240237566197919399466863708299822209107135990262965055103900222112982499262174994297014109427594736847703048691228470671206919513444473621210364980920595648824253853109566973379739573132499889027382071373505670957786608404552977723422569632654761659181176549988490290212128749520588798923749015891313697054436981181237960146566166035619081918610999281284027627133687107896385570438453726124770350803183047954148019974912503528142483386368405727709497147023236558752656146805362550701857644975871489109741099978444363217851458457248332176800025308462960070549210123640881716194207888091536750349207320965804057251986090062459240735764475760281403255450732730921446744806669301778167350081187835872296371804840198414338848973667338462994603943694334015840334659812144788822340364055050401233546415120875930675438799766345218520546981997487007574878190920511753210716343976720685981125287259858733664840058905240937918320627939097064475669031383539419138056221745672568912014112742641542337675656966518405691984516659162091499759807197066914326216695567116497909561603978937925235080117750845715556728042904753893090658526578047222439382389666064593167285960798718977709164835600153485951394566169260271138619665213437482718603832408083780783879485606393647993449251275028263012614226401377208382334859471384223125670893577594337538984541067622151282924235091274476049509323301679726853057541080995409422199312617431500681767786901469011329212763374105109996127771550145421773870221527016637069777512989898503254737095013561793629546100468349042081163203163982148953494489562377639327502475886738386721817552739261078077975586349104675826024926060595647091247386555905189353295927584937888998116217556873882024221858463362261199592559298951538326996409677775656106226300326094871598135232224326829846356084952858576913955507726000123529403455761423901754163347675392582990324999693895132504821584862218090504175922728058121986807887529824315414044150878484191804571525633398449100563123035591410036965691953941394037026824376999630844604826976275807134796770751106469854976288883068735741307389782722089964663382478274619800193778637326705629681091223835443107348661483471147662258889492365316047015559566515907207862989476952189281254434098606727755831334515716481048660067134309546805432863459352343095924906545403602623443464129711468581540719149879370650732497696091299805882319711430823070311335301196298730851335706759420654853220087077267227586153488495543258247661366529948607017235210186692521128323945662715674638767438656498901225046798095706390031796506425219057057729619640373954865363482081959520188547049551033589384927195335118506637597003079496537934215998222803642651351922276411553595839626143799876728592808854208225847157201484397736877084350315550210976138759457718359275232172091813021112500093639497429121811687908032882677838631345196781203357811759954020555462979098295753320095884567953923578022846375186982868938107849176034374458892557476971828545250664665006722901441403007709799505992394346244631687500484773915174743474179536440106739264677896736067127191474682631412612989735639923708777576731657287669777735605059060799328147682423188756279487126430214011554696178279326008262310462828205578561042594534481005311323176517319761148551436059326700676243993805334311040413886389061931355502192122913025037935446287496401435007168689594701671838478593352087845460115252083638165912834671527037918074652169883083938816194583702377844661028374612129790574853097359818861054523453236358522619277145748679861445860370755558518891156853372995313509990233258472151392850775129906138631993688524508050269814141047768952018941475951793525812804098693239935293090571359547222830211704723869611246658783595842574264020143408624986712623660958380158082099728703211117490668092146618523934669367726261400452138708614974558584922931441830154987159306304831053151011400940805855069004295545987936564054185255508198861289578534340320565441125500755113674868867278321053274736203108645058950774325995007087738332357229273623427277893164715786668530105355776302763016164012548098434818076466499562018982703484482980694510553805683668625110014668685831997058210715532597143550482574118791409029940056448387175855264465328819403472698441437033712369450241781648047665348797200132171300524808236509321413865118521355233093747859506835961278958177804495608290602579744128261862983790854549258449427651789653990595435903618783522331703082525126628026154864477881348346383476642183683450955610607128355825365703620701707267970278763475962119511916710404565186512592865288422381042494974796456335965674124210388213616447320608276126576720669954346514465366396415041816373525607821710446307194276418579670400026390678445590613603574150564112275168499040539292242277405080029307571540568549642644016701521357146546667187443319538455604261231526917927238822698093408840778652420443735745812358572676664372696134027549354593451625390617568582019866353603193795372912647316557124161811733430671115999785696265066295123427917461486526091103426036040414380438388665429585595631461630834655209311249386524936364065616573667843595271707467885747684473447051969540491271471622374412225316695370483187354383466746580417025581555508919229023634248223248833448765153829748609818237660096319477400393344287236563273974209267237490352604112789916625255695738219425815465641560475293430927346936976571943752270340170033394678738823770058452735019469835959754826487515323806475138323306229448572576610107166409427872160573192844832466649350267585747396331205269287202299084593644412022376658986588507673905420006477019975197248374919513697656749133730030078629537038403271481470833810248673474483312806695619064215217284076058096997403874761935806942192564462510591186868384896423455601213891304549678045979912660659716159196542709254770622316152311273833023232911693848310882294055498767972836824038620171730934526634211065355802895927586983268415167303091285208812724214248888196595708332873330899385904044369549251215850699287973250676617961830625675937756223214642627051737279963817889383227089822186148132249200574636409812652680569193300357662445178482369547457211398513902282994769860252080979539847188430609542667692628362333225727664059911507021207629774780216222547524081641778124012424263617837745627454297283236080502227141901873227941252962648426104238436030586150369982974131991461809973158621947599368083516054404691539428719282545438934174332540408039411342853139601816460327802468607525904672979364288836298543292758133561508037949778746844346387698489349597360540939031184229982706112262764200891555564126840698611471669001325955873824951161399447026311144725756782309938335354823885293238782803102622349169091031511889862201401241485206406190596655188366470716931238673115011746631832927699695054992607547800312567153511359930515546186184162840322320012667350746735913927877406651755603173412030056513493033807794337486959281086625275059371903638862295570771287944218888891258272719944094875480241123020893621152134965846753350078783583937582480982176532347986338366055997213595835232880799713748794782624274204288609179521761592014787399121691774271848029029359010579125979367294272887714716572164140315919242514299475197738032937418439312514937100193682242007727560015783746124787300322990040440778114105030471954728610740521406922651189739030938106447522177024078324774387017547291735827259050564875299237337966106549394134901274068282617224930418258742441110833456247639314962737022989982593000408448296127740658465343221423036151400462415617406785144513862212077958833586576734053518171325868968652824819846886764813926536590316188463210892016216278584944282923143610293068430529518436111092057667382535491040358014528570374083508832649938396699945789765326737541981204686002144709381965569384214748595129484063117087292396167449145964453251671394152327291712010256549078116158897274179799537674739463547864947605054544387983123347009466254412426916988164508667693028813767678564522915745499434204144128856716529189464685557787811428685976468307810758899681349915118633779514278177868368858587952252251791886314409828064741888757709067017849403745011398161860062587488988528584374382306161773542858897893246993349864051909037413349963580536838364632071697960357431956480286676181247167882109997429408957690795317091221022115264674783463600958895859008263460374537603320788666862472712785616489486621639721651949200920341085960607121990986511637504212291178148869328379495611199669642681027643476940487603246984016239353963493263508190156858527962262909980762571111285677734336944182651868397174490446611999804252677483602508963711937874429752254688601648596510072538056996174989921177801476856339502964760152608240474291251691179706082011613201228764420976877601770526641788502391887645415266934348165076846909436083535426385181013643628944314873833964213671442584268862142427819717949652862511575870515518376618763965109255498565602732833562954013758876344183811527657090215592972849955358357552117119540161539867255853058980452959223442388996473400709489795212809060244364920241214779586923781761548464999494341786742994184484882334964318052091098226571766160038905229762624848840367666203837967933672805738877409500787109667709584464943376806456912557189397998349845085607046066783696223786988091892506076526935686043785781905731379285360121327155630233427487585878519980485233296060642413804026439680960065649432132044177362920604582621008584837483596352264864717280706108321705374649222010719130200788865840665752422986954110850380510136529205101005873740259903494370434737235533193471223481305676497168678847605264143142310940852816370123413556421962027587782744007580946881740652407242037294415250900283916707887500993718278026168067432672693521268892794126364798289010817692381350465723535422847795445359789101954736698098438266627227936947614622800525794674760606632535579076038752076670062456659677429704515708517252897501261273433265613711235467794898436780636108906516080998622862971129671586002645604843720652875802603975956234325866050928514670801189086581678447714586025122707059127405755627864551878895622636223120821966968162656967323878873700889992217696972267804024431350164507835016570841150077537690702722801487083997574281843337658058328048548755826060133805856548467240857496054588470436540687790425229156776519972017392096828100481133176381226156688904326419402326122405123800851689840422463045430466961359477429486493009809056757296359082371324197189075612895100452281225901880885382016804261570240361948259696500437082314616226273864444161503615913902483372574306277008115653097531286609566602023575358288661333205136952710709275118330964052892184405277394145844641622547997097190961663974781016502804298186421033010520284764961145232098814779715650052710854425926070608873323221090765433885529284974012628476652003209579768200756580569331440948314172200864396564767281129277629945036811325460198324343374824665724843615448923856610844166517604048301610464891368239841100343415471169334055972538396544145060267818445212105737264545090945209599367693123599844685709327486802521077883632828228298514561800100900809427674074274612858789336306387180662717962951342174967966394985025373684358118691274910407372486137063835513808076967910867723386805248144070356573939204089260102811916484948529746744436463543973628357215502637691866386426839766259467331909686538604907708122559882360526753209154874733523254978728105083763359047110707835951952958238807559983695079600147952636954663115232265318659623065020514244880253480287112484061845697292355268380344914090636125736472831128477704716349013620637227017576576055377998061878937539624747299767298645177640365614874967534117237902779032750628912616240172833653481689509527116103818579834893966933002747933363827202669157757986750087408240179471678663501324356458947512896050669193614109250697393742715448215416605447354778379047990713444435226838259772472142053760890360301438359846965120018602825406570118331043317117247780732673399272972909187328957310512070814532770125122235885588447400354727316674912988594907964347879675119126733349450952026148396632391766892680699325935477078730819551458516251147983015553929791566418416838716177411777534247253966195238969718679981676383455049839410141948514733661038517541977493557032427352954764337808016886781662168056485343037332861890157243151356051269558553143813780230442214498563473779966523145617864190444906284358434577220239305151755966728888562086558334394090225412393859590526779753445654955368961393822439854391505364510802750938521811480752558489676621579505989668170786475363209436620499730172152129669572993303332096292430036600497592069565731345475965102909063304587732502842394190339155044686453382372160272059488995898049850516292309254430648611612292649533430089738273638405150532227580275117252447532503669960986247086998618237527103333947061134429741661249503189217265127473750247200382313542460546198015614447963935525848971162327543808591566218164198288711385327741414801425349440457609622114450268050869919091920901725746534078349062620674035913648955960751343784290176738413399398358298447416733940689232263127334022415304470399082182507596097026747676040086116249102937146838035492835662264579429326489569603852244800621574310830832764165871230815962331936896556048908171126380259495166399877492971614166286774146753597468269097774018326385106128126956609486287394953961511135163209212881935421642037001741596831232763824202167262396142539760528600939917449514850020284715964941138107014794307793192368736618755396923958882949845338921979813288423306571458198188352649674622943673356597640735195721393795520719141736940797110344012264917833650905773836187609953246557075914752075601549299484768297629936515732734610285856461534050856096412325104644892810354764768838239734211672399778358821302017469251847723817156697115011608569632954129694569442862780122797741947885919717801076871815362954985754481676785184018485591020160715975476655588051050163319808966320565346832103738079594363929635420899075189304640009820240250192676617553698890300065144191625985683430813597999522178730176222266017405482095977597098360998870397105725972067173658926109374583986643580883925459058607352931634303074591442350677888168292344458715648045942173115316181958417867602567395805849436371933615031155781361457784230391770413710282078954081726579283379458732960545808546934665347308455141535802279563551739439841700975669870174655051479673432234233838666832291024857852087076175288294005324732283657015712611371278397527178911421169703677825287073829003079962254884473943792693700224178057427111243936555140374814273173913382077201433978701248239044176105834617144762176663470606072845656871563256286099327197903569630721344833334755136018041877688867120514786796679508317916820198862529814933109063467464472639851985332544008391021630261002843418471112722707294462920991102215575615765409239693621289698091836308823791584264923009499729417402727052429466370254338858555321854119110307932576281695655125138252661572020828174825978658498192068889857801501385622130425675408902008017063469454691681244569648844800676554320010292939486572292002488930664833636552156375766117551519040008690496166356265283522603702326242705976135472277964577857592829573552875142884643054736542284588594285251381155662843458287252881911428369248020790793878950989627604865352925452446288219568463954692388563773590454930298327197265771077776057688091652284985503495208666520271519840466075158720713065768484309088929831432333146375859444950468192285156525389125995767100148818598620549072071302766919079475637561747666416011274288752246137441558057090919693026729333462978445286202276930875639784050901117327035580498015916605805645172110232391076093316204972306068542835407412279983295366344077149522698189419823370881719302703233239501142212103535242988961170929492847720767647014382498757860873137792401021035304985029621274916769129581808811567123385357172646822696011266527272319066976262304710231709057372463132334238698892498192358025105345118583787368170869408839501184506408280486035117569473318847154748530086581367346737486241511032811529222499843046972944698102390204083087903559382859651071899101785226310377780610192871587199833565313738558616941948262308163362778785246710177768179457682494767767492540667859800212761951686540988711920716824423944376320088263854714795200571377290368896718572745495253308758773618619753162757291939310813121499921068819181402806722458035501173535859773824992782466567716606363652835428203939125002556622645608847809885869336542195023278581030038100410219342245788572737386826089074358411782823621470659083040843945939699008733425339758594024520204339782071771920897984311248712173440686143990549066641213290047310497820113637042065345846352489823385160191583895836027761671064228006401815424951598066067752822967006844675969243406260652395015904995652029567975301427552768891490160111302309544122844319882084216024716083381161067251482217469774494526867539308383586173399674530955504554037115392243953264020397545630449486645407963014145197721629005712003886188749179252916791151109794136222029041767894613107777786607901315201967571700116478297462809889431327569597267452095446916768839747371435815337842790859771812118914225601474706594884534869052840656655503750019024703136067802743407786697535894290795834075932078012318307631737405958495642517882465082117578381730685279633355927318729803556567091425376204619297964550236747477185181282559904937129902513672456229607446457351265034601889537335331672844450021386950213734529524337213134339075099778293613554692495732357643814295599183850641790935933056649459695224541648893257996682108197371050392213670886869609869399343058625524373048596339355057356598723122015752573228457839756740993278518011471670281836264237654128277088653695038234945361111210728622503771934074845382836878379895207270052419208861767424244206094143414906395187633098058850092336650975905033682509521063598760761445011574652009087596726104655359646225133446706000004513219239320866396085662865844464980233468681534070417638950662387680030028225843865609627604102547367046440703354266927755375397137052484741456696833923895543453476505528286759247089865562584224444774785514866135268723546549707964927200073451196010868262238804139215019590221484851271381755990842951210629846236464815229021493791138806584932042312287577113781379701910754262689915764763512191439598931267335509587812773042114460928661409158291418912797282953107138611533475957083634613754073979365202212741698407075799063094149273633861544485271588345932880733378181823923678673516300176376834680036211978390797219711449880039686346386309006555792672750154396148431371270471007904610726889168806063273804017167946564397232649061988899074726493617642807087011488434665006236121087247764130607468580465723401692469400284120853930730700499698522049991000619713190539464409873966582520594769870216212904825546382779376992639934160531751504730812805173593181066992713478751172035229521678575445119291206345329571590671238341746775384550201105448599044410205226958316595748554409566532669695535952885812227608474241469852940833274693355576407789389373839235084432556548110110992492269991809160616625964514440291186652569690985836568360467472042781046633252801936446825969734795009786057584094602582274083796014886447848877755981404557332898721514399210681264859926723032719003499730866163174300466761721733687496502181262234688268368559576759926775992715851302991606408558043631433803541946339100618432798291845180520621606437645668962500068912440392606332876678137388728899916256512368694012136987467142458727035582328004968893404716758562162573820459617644843374507243417123896473388285457772460584942372060040054687929427135046140307067252296042600245833524926018377485495015512241722530070977961405306694496521060201689839405302540098472215342769925916501902196205512143381629788734049529617419687266482731627564104918828682959435175703950164607439687575240486651523752972737854952170334710742555569642979283999987181100643946613395179468592303403018023531959141918266229319679864365961790188920285001229990388785990379042266814826579397429709044727040814452926912427822241734295199199408571232840798171924629050016377174202200455172553057474916399937659204422424247561520779290684041611896472275225951625931344092884201095060397530946114650188968705861840239851644345839402260089434677998133526311919187477866739538130678102852424227856584531390673342560341268417357484792688057934178123559171721516251391781201956643537526705115773984388731843688668672190880448021432525768516224055806360732964007873174454296211215433391410143537496799043311483332810163258767897905644919536725826111247593361107835807066954628766439192136490358850836190002670672513438019651970758316073782350320981168007377245237840100660927446268635594914484981374974508617827410269956508042189909884101535108119177090140095785306695082542289419220510149219622513402829558422477079718503477547509536153585465497301358160972933642117194259482357480023873151222442036957274398314236155817191748537412781113330948865906683688208312488759755922357565614001739041795556613481038845706280111447560840963459954210720351326897458008802084965880807389882780003047801541363585462028030288262728223128336593872402378877077544832181941687350718508493523678824521554466185574185854754299015088151395306426256453079560764284407643539864910544295234334699105957319225618763529104360065753625056429889875476020355803381303812226296201516782503215782059012790945166024926984524224804161390336870193147949728504724670275771400693440211014666729846571564372210388995343555139641099288733125467551660930641133416333313009244769230320408462967884011915419626936441093698412496976455568757984353917355115495389540412204213442657912801891136504198208214818287076732474436877249685555646077232809523218147066966421753494210800902117550875263421832334410411798813324244308189898475989835677920246983813134444298425152663326987430404115986716558498449342826696295031236554341790701869677242232690365403940359075347469188714448679381610208657106461897036403883316808417859831075064540479672052156914055163339809198014759452642665596076190278491443142539111938588554750220657843500631342723857673989691504117822468058840122315169984082398374881119145725317203570823840080393604341786585220224091125833599861751259188597467290964431861971571570904711895281224350357068558638761207564702567612706718027357716466816886190237278159829815409961717104643545481604246761655316224759243686799124135199076257313644826141352786880932000717743657514644764564469915898795405489880596476008566986178636160795834152774878257708928410000778573587268771950218908681880436706219641104434389711955366029269937983184069592847526706401496208253361784857042556949482397045705625729550545831087435037342900029335893790711075756106864796815315257814619977262539580273144295552053768550462762866732824540284283855407806125277671872318867094511918476808679106054450383399584437971415848189887766709766508548356086011321062014880497126228758141830456473494655925547844703446098142639004314671381681254906768700350829141329124472227743108183070896416662191367274755867890489286944559212960756135523794469377422593085708393907880490899606966590544229309800065507275428681721433574652041220469643429471417354069446649293312444000647401831811615804979103469453598282269394851329873001619140611223004253089638457989374464247152906532905873924974812645152792435908317379524737130548268492195316337176925012409302650737127133254079961969905944721520242904946271733879669039046374488883699500595421014803217532368227191998715553180035176317709215231609620951026001934366551720322820489017687712103746479552567844288688047096022792559600946482806061886629743459751141344597382576005857035936955606295008167522727120185592314063277827059889731680335903115242344701846618314168552204511333612354778397867753848874141957258285127692387923133696271603888305851594056355267611219587196455077469094726359750878613454503419353248413729154483692331292567975429236417256060627723302359003970425419800799354008793792303813896746671308834164837698397517791786111055621519937053941916093303711416503657189698819232952409264511142255419798933733058792157210387195077543060549034504689899317398152228134394883168113972293801974917631494083565527032397820971224575068440058023976869038796419284549588400327217109587621079864524824638240468319383895280789872186833796251528697911949423779078209035776033459327773485064926331437428595607699197204257480763007021637132609614816046834356354393470123098113922123375102026683846851351668153256564371298658203170697210803208101339365682786174825226873132484681186387456736657651579337202020285251003026794037998530236531801999967626433165930125393349255984144141042742838571698998262269583115132474774986801902769311068666295610378578720971980477794527498018332501589390326769762538277056524637807112887467733768944743884000182989328262844969087904455369560239070935872431211437675319366144194700294492902041873284683404276896824040633617193450591562813112796433473392460607100491898148550141031205529061241135944064631282561525831634283350682967230249521301215535208538478145065113704954571172566488173005157315283389653424906801478764211643278141243440690108963925303749819298562136740522846684844972031244948593203503143672300278899162542432259085234855220528191992562802978483576914047355723208533578182462695468312475257648383089989893360088621664717756221416154048719318799215243434592207803415897760286538581301647533862768723454613925558448578886740629134526843098086176859679939359855786351704357474744646332674952445687659846792917343191271627494590645940060609852061128291901972788696258462376131371338645687717285549373678330118624940980706132645012012586623395429208644497815874178862243049302335330641602093003566760707407629125216511416162900276034288599601500705314165131041832228802911603301712144069781556837620764123894017082758300598245318543821103231447516274215038829219277083815366861967204922725267425840715814990659255962532522123393269849455829889512305664522190713839015589254474982193957228446806420192800784190711476521302158517125009385249898981798597155478623609463154925641988413148419052947664149912187025638479226874511186657229534724210176193025975650939035442368504271067178385322093048690951922754373163259194062948113765660768888649247288469985824913978309665511324508643853997638873933854222357833500757858095285708677358870780724653697516220329949913980586594667437091044452236544066704678426671025517066521868991810121913225263797425827204042791989771430454326706307506339875137342199729676142353961470262845797784358204639824799972170008842624879654873027680582685191859574701529580434171428184760753714743893843252948674006367437533381348047165542792311083728699775699057484973713715023559149524114357233307195978724704397893193237991912586122276405839607557980789502205503182643538923612246682194797503275085189782238170218141969238420920892880541638535195529932263291037521103855690674801134248652938837268018038339941872439946432701012436788537771071239992145998468821464413443859608894568797993891566517955981371884090928052193008648197828373540175545819406824263580657714263913379491295565967747691165316697872677352975543229979601482481397354515233076238007427926087141908081916343755180120658246858688105677562709998651417480602212638079380091659362558882717164507340420050866384784623850032394734714547419857524512135190850575469734085537931025175140575200337440671662394948124042350950391290830576834428146393098587229934282610033173181439043131004547368824426612151719064853243305913335363406449763268906628099787053715838943300639426191117398403535785459909835848107686023300723555979440042201907532902291704771375339983666759117567946119299946266139640616158757382765091115238019022576512937682877825945505128785468652470095040039113426590263005987473698018305660441410553755673437467845741410986806351593698901735053224343522346186389312744819023006323702271727599359609371488629272458211245974019661214263140899338457299529360730219880270152374844945000101494439657180855662683280915191518246002904348879872207674810814652067248215813894814742603793614618173070851279749114598290688843206902460833090411182481958120973933507079610671640876084916277266498142934334407684542652689918120759763913163034863367430704827507869838712794457566510188713427117082023077981436492233332245912180130075699175751447961354356124536313992819819750362329663148718342118377602593160939652167666588424361204038211754978457703104252901542017432814898054637782442116395271106319442846945414231274781865666756497152437133961360353471142958427725575981081201852476104340451124557940296862147969629779048193122706749073339117766240674422903444194066849416292831833753997958362791966551049831185878509747770286706107896441895141734978044494754051482192808153337688912686385938956195949623392976454744028291623086835600478639535389844570995211001279484961524048351117671375279335070315281278118668653299934520036386879788966463404652963055113832140453569375576534803901497931570571352576160192386604994787145238412513590871646908493702830864894813058013483118799794028663480301231152017159622476860507777990595488813480658032852840405083545862954844585030251023006055317814195280683602809829656581013738399312256172258789458802555735112978528509436988146431766096515515886793705369810240694081439933389056996053302585833288151816709980754987223315844885207558983081376248346143046413440059057892141096379559699618486148077031936292672960322571011316974894816209458269116244819290550086750459422651360247834483797730696348842079516277335853788800840984166025668940724864752325878287624072141856108845755465893849967352349836159410778550085094080805302125634696438504646323889860058957619250709824640538929326088259621997167250973926012676834438503472318622621717058417842353504045742758165047580207789046461063003811681012242074178121154845890800165324389535488506027863620185958019946599501058131411571359274654203015983077626769842163041746787167245299859463484632181478203627023905303647838344629868974738887509178742733703485338577852073403738110817171947769627004441630568202880234931611175943654678623179825138412983334880926751335412542574111576985293710232801473892598153024504289035192958579331309616654576702822656964053854726202608603700870006069463679440817819700148884665618868200975714463042242669330802637969143829522458854932917393064697264374725650079941502261516709745331572112916978534709393622457575951362714376745733165475987222047175329076737547849835816290560579549115090651300243689784223762746498614611486453565388126777084760634792685053992801376992903522258388989691843716533298888886513542221830182662815335512403916470663213087297315621977041594517279297739361627080456747732094126819289538260527147573527024313840009419032823801268303312707305382856573250893221709589251797196594740056820457808284854762005754236439258953134470333880293161185430015548041280497151849181047445420686684977308630370500413801720176249149206115884637900722251279931581073268282976374163581084318385233916821311770898702678478921104655949031654950819962048769201320312928728365195553306918941090887789414425808544088877406575975921645700482061703165881280424728071376063467008927471397750276415024234108889912374848289726523212929527106135447559398930125050461380902836269105530288906978444956696528081777370632021068158724530544117393674996262070448718172777907855935689389993308668355114261061661247068257921620481607045343836138736347262982463652483723543124700849306325490946030121881828922787295282786691448224055299213486978930029455220165862194863385598999461707053673217974189042984167017927982391282445188047072540318761593855272817596364489819408704900200357984553559469393112451859174080913607274431718188483629932220869588643070409052113879359339272769747132536361793148901129979594994134452500131434932269878132225738265002841271548528000033939066468181494949138891356547530196495705459455997229710870004292462231654368138258749233114254684916841169463632495370092855870341099087148753525956368642486790869544523427286389334561114417522006382865128949860050131019348302004220310020560731020974140121871978562830255803839431004360763904838072320661791397228665423624481324925519192253105839595487989050863962499908420476406892052565728856542593605700627716354481172347095925066836820222504251901993060302095722926389289129621695917253657859140101479730193775623612415796626206744583181284142801756915583088941839595090885416281257303309594914497506522658620424890597895278980128250063256755123324568942850030165701435465258188282157186930816466984337524275003402497487890703296481043294940174083870000350785069956367913390002481318068324015726825066631555448397887500050377938357775679326367038399358739958938326510719430519548629362743250360040011896172396714905502947641881038136760121229091736954755859286661436468832496588256636798513228134577206424160592620557197086316926642509555028293927467618942621070340750606523298854328705241299205740202679002436495921423699825308121051347753664381236078661630302180566534996294439721582811019424784498728977578055571865282424562573687557898669454917883805980406954472597835637523308355875645041698523115844530905449827426020284416354588958779924307790489185771240953796356101759145348901765941682844499910729710537713068795334078854575950743955758028416298311733434619927542037385109355270345802267340771477839059950915517093503706787939415745459825079042211712150561411792829216988281231301289410617528653546142342141463282277938717244861723264366660940295571916823173541519238898388970352144827837760949448971005332785222606247399787826314009513047881319809947190732560928703096264895869359687424676957230844343270302234915453956530286504973600564842632580550641124136468389024011142960482349155929241124443030015338576442076940176486101905717688804631183110114490812788375055972340380428155492734255041415387467119474706616144902309243861312113573617117529813553360856229110047736088214095191299013530005604557398935571676665159609392618042268536713625154860250723265542342032045249368633622182955892259461797338423546411819730643246318155975938842076524482302682718938047688660314097894900797233024813525074315401410920610697241175346369105376603602062802045205818352427807609991775472160754344622274211786408155374663741102923302498090034200800603421499008457964289598905967745700587117954045934690208856597939542506625777590818720795244278312065034151603454033894520193384373476244509734277545254270436452154777201719175155578056037747351951833340003677986378348733593602431340024816877418133805646686592741843512973126976215464084550954432685830515222081622676852318509058450998704958654787049643291378819210519155854301242113917528217243379008372360403556232977880009643295113479524600826614452968830699335897621633223675499525719048578959680772370599600805780320069022980152724653979657736798793832507672210355158908412979352460488548505352722571266862891274053301932980936817259648799461408515045947504030418512731784106249033740748136181755687555908037416930725619423691206433655665043300319395747015918110443085391997822003384178919475680279621587237712229181456465530221338975014141217415426232344866116327305589199982188251000732505545921858263794951249639771584267270955908944937800697310833802493513382475372100733063414642190321326993623075534196481194717440795745403752508362079702556138024579956878523341212941612702389840008011357983652342319454832393403837327588205269177380607873759765021086141559014111829715803725089517248845650801606444080215538164853768265393482914991387514155959483639810653771174481490977783857717782378922238880028898149707791962998228996593869767444932324979508321617514082810343438624121103198910689341590092293080027010927617944110592797378531300207102035926626335109173387898720629288249327354413893319983199033444183144620233921696327129811375472789767529417304704643552195932653651555739750376575367727065002736594966399612580131186843429090867317998470172017702964130496857770760751927235421330265608199033478028610985312628513393808807641917725242904094089750828484926746972556754351685866600372710079452438494921895319197361580425222094518273414081149931075583940287089056661200138058958454323929102196858270095356513040528811776846532774394059114866059044427272605622305227576447598593894555028495166491784328597952869249332652103919538683857105369408454838338673312188576502202579751621330913963213691739361002268716250027726248541902205393720586035843233990248974298027145173165764931333018436016759659022064965800989417852688703678914243864750079419706476828645345590269439061498715677949818135733711051344821331169534257676538550418190962135896203239728636431879129538815661486071652651771060060418043229548145979632068865892214191906471021886552417261708578269081645760058674599014368870856054841430578734653952240198953855138660344487687143644433953761090493228388770817295536030980046676396444768435233897105277592369757956792196503182302346877094651134663937188533403150481493068686022132174814531027395131633011729653171451185107129612636411983339399021160248671038651091591976777109956532990754798354002986971644784608272497758237571960742540393960759455706716097064518714659857219507185127949217553854541970054028548448659701240695390510359832440012590926288836202226534375304915378100766434777724451386577832528169843349001106935112563185681916503275906578796128651255867013992720286946916310909424328535670544704093171048255790871215457244498203034433053687125504712937948955976081468368168162107152537826233273257362427640587948586514553527667774166096236511222605804350141729887335933237309505582502108615593861174603848145259700265178319874391552715471050428920790416826724211115450579782208787663110110758685236218316092868822461570036808031897262583968547538792380020444240248450216456085475138393205309570138300260336025337016098122381822401423643193615481041131726298709089391391087031297906200421206291797405223307552150913642888037159361732906638834094288859186267004136536719289570927321563543358068233423717777133697386085514219542656897488202056770598056275457917550976723123243046503770514591612240777701221062478568522202157498704755329927433657861124997770898344830108551236874715806671210594786112145565394114831929114834734221117403736251438510651304433599853822079180727266717669510818684317646416641182451746909374259540114833515727410834413636703245397425898726551668574787604481404670350083706547743342051521454326763432376205562794530295304634581496727141588834640165908721306218780977638515401886387971904706941705947267939209823304270562234487436310995232973166573081111100929406486935554963644937427450385508129621648049103064707436984932022686692331427925776146296380235441797108988828584129170605117591524642422109366313643678468047601511242647975213742132879812698875390123296146229274078309194456665936535160985691192889666203308039342744301374949940302769744376440369910242059404360012267672514507811969743560555503915344165087392963643092592167524878620084363344256226199839843804344757042273601867621831415265508158407525746925364449830629779196017710094306667428866762590157601629489485911674458097299634283197332952825575957054508122217940980994897136075419869507469613979445685762880716381018701352592980322737429941016227135987058321130964117899018215047431937316107637650370785948077767098897335999558281818306035589442078240055367824627162593301572993281305684485250880773538058777568432812664569823675857283626665006675419916809767653410239219517960079120996088746040898308413276625954671330077161648552644076767424721148248010027882786578682009706332482414858287620256179202155460611710651476746140111818899583014951678778861958358436387957795551373400375794432592493054555189828016009380748119276152225502092267489500578893703750255672499133384083556555012395747633550155313397630568754811984411835347974577054680401412116930335778748861209302579901683052117510806906646097130758487561481654627677939998208948861520159150733289292491980083186268197129471798714260750899591536492444309830742003121880726277362260651153935385306320802157409242453044234538002172087282825389847451071694411891405879431131154047291542214404917171810082175287786135686899531155197757909145847726136756599271059957285114297024916383712638329546637055715095780231948324504753339492247316543916255985132900081153748654081343696626596601396299829134199000209021172027595078755851112398744236713434831484280830965453204856610010136833975666022517594241745698160550225519235196659397206916075651879667424334149763114000284201404811877837466824863754094605484729234791774162092950626131789385522711426530449689580203872288740011775239296512283598914698282144152208886979363476788966347205992781085701970289205116954085143907163768386589830260398160496098073981984686757091535204660162001129300462886761825847430488700479779059719488329080857422331072390507464288064468973194047252011357155990170948472499984650921998175970422404465197182734607986396712683029828507126609378086552744092061516358639845336316853392533842147846175603903901381118475742018679058957703686860558520564647058904354103215076144564293869898170541321550275649425365815298578682707410270952667486374976190959418952398154856274054722370503159773778116942351279832168181573893510846438819050153074378592404264713486215943669039677540876411898490324963357659873629685926460979490453495936083706905533416026043481574113564357945006509853681033843059864883633946797240002695866773873834408675740018128107226805711089419510230016403536160858765574197453052115605869388389220592506296039361358797443447344558897773127484338688153499010335108349396692134595463881418281263741059718589667375126211319971734708950220676843151345722639201938089079440238905851499729491896287204161716285697100237896173263890723076906424949897489326709242541181813558640419355574297769640577863601826283091433548619406742902859833300287539728770862117479306139205891511070059840558074098924117617663963967032530399432483357261565610449033667459272898152442160845736891784978647204020250981183557869668178567589413165650126373296246999898146591352795879094772920112828306313319980378717828676120009562951081910027607397701938029423802012781004632960235432796660841041939695716521788856898009415812049131547032140611555292898918926885781772266388440119170080403358740727965854041702195446119788962768842327369988567944676537418328635340814238496643872052601220563899855898670095217259050118983878832128342757016035717054389536702960554654553869572772475409905192590296370461229349113946410746869772933249340082988412967545373239135565011582024080034817719628006370420095761025389107935516047213993456944125200176293651839110285384413298268718947892996887884800218557130897491821550103191492241607616281815430631363160783589313271887333187434996899702305753310966973858080551925172547978746075643617800742053467987805919515247123109006781196927286503130343930960379226911738765345535236388473081657479580698775361907833804531156626449569886731247509271365000522713493283750150066855891350958858196910802374197484566580969994288985122907759851523726068709371968516767112786876701033358183534181662490330331272961301788925018099412251395098845862463647591133810599956701762036747018942877065203086333556103213121413119318975369481092814321147919553805002033333910409056996625114345235846949369871192933797869899413243706298325575224700584472217434290517603160751071922375887074376791239822513318196126897934988088419915590268769073965903634457335744126437462874108789427292930083689328815277858033876562368543328101185762392524330080173428352564874719008135235405108304424868267666154190444246895957903134013797262087557677229097452924275436561871698399315258059023791369722051246534639806122056682016245540382055056304134837284387666662808442275040809389183369036940937332848499550103431274818153962684262658947798422857281185440147187881678355606920561068636475395906272201198375361689743436070324803206990585503491908282623842079279148279165893617652009420342824522469440378658091434873499838892630881736286510010806490560207151061460137697338135654179261148720509755878087306497020766085517485637532055681383485014402392808986230975156693245438316620672171694764538525741175486039969816058271526341557332057203679368804640341807146077674787430857162439330665802127415721211751731003444367727291944483862097712177320758447721132148714337023705887749295677915425682008613483408448081207839849968922554569054211358117499113136840206560854004912615658858992513009885025748768434980036789548858753881087660129837254180768235234024385196083034678462609216829075846902008608846657676886542478761298163195386027632667420625156305294403547869990342327736665886236070096477913178314436838983540689226108187626606970784178818601468627928508338619928640692431676904918539992260134588743547424908159017369281252799786949210886624502152018987523976402734431420962915692163011295076500615294614289150591209007409004700378351342025351085370753719787998840182483220257728729135671058374958207777574455569582051358669911768055043875917275493467983304982354958715522298956681439990377918955149446578089990208058082233436992340127418917600846428446008654038787293369496813086455877499298653390757781978058300918236264233914527946611461394268254846066258756043662531380331729734817690069517470464061077283086880409702379217847411229510079673146012001650350620872130049322442707487054582846210813608798894190730764430033044089142216179927460886406784347492784753172818025207093719818213870646113692559764020365999791824429163968666116114948841313740726680417398123857806293899575453506138407811793445169590403673914980120791675983268060524961328656969011723759206183536528879943493782075977194832792324878287994385332158242367003065406139798081505425881509891693261473747858514088526336146606845431537606526447689129149823235873936399659425868557058200736277318477971673804574512168743032268748693602416301311691566791176718815467879674554223274613968594935069145176862923974109949128269292944711248092912108389053736617888529605878117758524824013345194290698947858743601495874183705704803619624368759576652408224096135705246942163958670287446737934285629213785154315708575041068461222435780634099078838816028755588709865013761203935599451050734519332664933739268199919395313440145208748072617964322886540574974438855582903562722769436858264972979909780253562012289917981377785705845088931369455745154414850474634200915116882115305743459867091962614917077603994818237568321933406013169970532886575651557243936847375723861702469682481392500816801861894823275668656821351540896135301188426265259072948440250234175398023848062781741463552912242243724010571355506191973560035473943192152019382748159652152307168743449853614765671368919350939365508950874556247499444451018692323306272555414450199747499211490992601821241779883900073781202727104548992255501462468865343572820379613909475838279348644293197943893734584789825174727922037987533905803828063956081163200794319987558592080073660495263607009219714615802513853883587128237952488826310868754574964563795835055960536072224958923746395013296479388443846610517241529441534954389665763432987299964307744369010917903726793091653114585679302508495115547239968424081795758204332648812023157190955043899761879929737544201646302923512649137132023959351537159901941055462560705123077190746874613976674968583314944290715209830698125845448781271765934578121815083239326449563665712505910956101898747282641163338673509092881052430468913516483502202299988703175144154736126083862714350388768473389435111616490585947152917155289182011975255781201853801291735591405064830557849418496031132423087604875716053636608890260976042742151335145157747381950485792133674434168755516522014551538034600934902093688126314429292520783946207047194665001356538585704166705212405427390135448921189112008210313271655259863821885156302418510386041068842614750121804053368382563768144041762400032171319359683227525725645354937640640082687826771723929305706348270503855684242883201277782772950592813437952890004777793064542868032555519113657496997182210502000799780337625671545024996183397472853967869565694235470508888832162870042380515577972168493317395941031719350162730479789530343092086241787947539707529993094627452888204044894367036246837685456672013538744345458699796720168525108234442537726226306148895216609785427298192744355335553687369285047035475872361160858135766101797243366573897082231204871252611614355971405242531458883649848109750062037062459945213252384347786113792840288383885243752859435194921489899480536019506397096673287146603542603090396932726718794844425932159485937392687565072152071524302283402368647602688207993830781036169369160834526436573839376729884686378151393342248372527664585374561572761782636838933790565693918056781813631436695640814625600290958818529585124291610337102655311692844978833064425886918221977773930751310836051857227650441385332202983907513897080180204569904454014216181284919373987610470540164145347604144538571478034351904283714938148536013478648597476971690437005267745978845672556582194151013157430316387158064052293987369334655165076754158701798927710259382606552326056260824879078031633523627656432367541734046891111950586798562020625847394397788546456251442057115059814146181388469179858842397475632986798892295847742479441624046602960726691322257105732765707068020191307401069613195049152473766706077622063494504245817071655126354622609721503768341809141786437442082066652843598324912566863486924934359854192405438357850986974834808814983700123207470769852486994671180978290000421147686678596891872146019039559755945784123203239055009797509117596408070318670529793953066453304806284350728961374565691999842469350612701198564786509289904810537025387545495241833008670750206662308498037830193074147355558682353969015127937902266964793535138925842450924856120036538424331048647820922090091843621759035365156371894903671555897295059812570625648716369493040537377277598351194833949363090207291508433172162085831588012929013883241375854876615885532942365275755527842652992950519169939706436148797206358362826140587030275529273617002323446282691359324892837436235274930288513320450459121530739032435526353931544054368837442172251622286833888440744577361040908135053842489705197531589216575279638348016521811753243899955382804997834705242967399908384298126454070385018721479312993263506577936199452336050105095902851995922735596668139348330659993502472895284056795359378727150460100897526514396995223028395303803918060384844872495052472837049784171922947447652770648240991741130932265098217020744182273356437147304652010247251653024010443345693222818864628746645799362236885476676151497036045271654799716655224453700109651102303892072649427530990374320572199816840917562477941692676724595649099798326525184683388315528565014900208839100722987036652233774280815599733778862308029395046034062720698401850156716334332181276113701001643982888404221506742055229638177864909469735697085515970761251478839152901073218958839872699733081175450965987887885502539227057936890499924252730584022253403228068956004080150572849154930318628135407735564183170152212057313521683851745931608019401766708034823363324089446236042930653570969776090637581740590112975430038477357163215884251111028473137825069652460355557823892654454580820393790024091907522189282596722689537528161721231425167533126040654377484068792450584911977369583109162279215374615533526035047436595019015024596831263331494808149998636303714307616273345702354214454313848340174035466820755017318203339873488059872186986124705322488888155718556259378868575043360855910814011589598698015224381707286337834420151620581808355430372925142028965101686861835266012844067681976134255760909983776976009098269292650241459597239701885382717086336835863817987335982940409397434420216798972301213332532468086731956435928549811930821636581386758673288910037043119035356563623705703178046766986873009692254442494368795357185306834105494458498695394880497065776568543595836295790060670448098898774266211488985175180716260649306888039010332480240006166896357456199107384644125281645764092159028727956540298721946749536461202303658495463257421402205517679342183532321364471968015696486831367218313012665316590188903029252377813678455966233581932343267257494146714873343250284365811755682330616257286441303544576399574577008583816030517896981280305952859808183295831267036309750027135030008100426194105070464346739606203066164966576934431820897186392665429990010376849512762539783092949246092388050345041098465716036304198978482871786149241938359392708379678678273569162548220678135867359668243630298520667107885043588104713718129116304951013015854613428867484242505739715517075010002419552686078103579235680590664171598425618198506702834947305633537590162622653248719600870287109998639330735039413586651018574007894471308108066451469688418862428162274712880803729765611183165002805478712607310725346931106838956331525501178575571825868169094342273880762786249072715497154671930225695602832521934197479716855271538382515216404900379377894078185721272325850176877616404044563149516209373954007583611028674924674221801023409290516322865506566263322608859484267216595614930795076507656140440805967840669396339299504185834958792046517077800691206872325831823626425241205915079612368484147585405696629339544964442898570959990349430265540952499043416491952902462187543322171153326797561778289912535053500718011929987733226430278468419044823730618023981708509433428017896514676092863173181166645308899358915876207003815855935553387813167203008115203540582408629715418064909160985417725881373178455075675792665605284909152580678307248367000149176574754858205900798577117365614727833888710800039562076275228032369396075695550280434012350357022326607804643148330411396293705298660975415564497001375262277010226397685531523253987394782571469197438434610657575023909404354649156487915540437537494864691414132290700954938757386944737957103238657080039104811376520814476031311238227664216725336329469216868733313416701834962250744584170293639050364422762255692234332002563662346809948161352339997091399754188543691278578553546838204700045945087232469501066424970872395681703520872952273519959815155874603307469020164836941453278245600328676890931956676622880718660023795947567341138260380423263298550841126493889215788925453382345150933900962874334469118784638194458308483511482895585194667874910896474558157768337893909400448182903580097627161962428838147288194497533035542757882895671135343094243308827496955063867910434772283582773795959472975728057862351429884673161496384284545952709058894984763346272451790474700383996632717310194711989013432774306880637256102768312344766610444553067180268177165647418777695787328583407458415890305923240841772972401918803508096054245871156144210751854648412360493322926157178619531863836032341161308693687924061638571894626538620199237640030242517368117104722241649860927686292132416210567925533369701060061557190067801885439725694743620338800007971806597214657113287059728636438292964373389818155242519119428282506702156255786166987610749298041037687393957340921521158611303282960468206197593129934035950368476067206310624369798006120625110957343248118716105194455537382619651428429391505648266060808281579227462262376695821243627435221599868524707035243407091491198785761419594628161517654126125671264706682517528692156099678550654741744879038116276224502932809462962746772652245839713185484376099363181826390685354936332063818149364423836793504185591869119227303991446024850199962511358925396818833425583997832891694071147466545384101099467213122389008069751906051409866642370231750809371703557721940942554460302454370360602048108977683472722135989776420595882355750247190077163079298331233941241472840094094017909092798441943324218062715792114946592529601628503714651793236515891088389048189910481894899649788485161452527718306704702614552990962480323171977190729682699029696012724024205557435858963604944060887976113841285378747408988383463003823334139436488014083108524054233098136207368984101293064882041760246212439989779945694073520398926640455415469892667829511503075399028149452060803685845901363203202534414827348181952158562635229224283924452483716302053505597164233383440236743812119507186805740250494437133632503717346134597866273532157731763233272107510319876804569846557610709896765248332336290700155982372830341166647103345931782352678293923051775983282470493948743068638434495050070941028679561611853412732669692188334718057031889851969230523083152724728651805017986839826828806459675044080571649372793426719789291229337862397409054167956013745954424992267746680395721945498236317008537985955736301593552708456381622313694621088116716650228704034482292116674914209564955976500539302861105138736852169764558355684936176462691602372787185604257671436887897256093283360525792464241625868147169554372996630277239169066286030519158570129001992824859524075935460064815067384462436907558425186213988083316782441256077879686977373739803611921754321112409946317417681449462930903471003363393541080521860137595225014447444839139383705596081974012118945177974810865415950109683184194430953546853493201781568373304978722408044274851621697644999793554798691845646903602418019705477744203277319070366107535683096461639652833224081844645996847255836167185341354942314912977164319524008441063507508581830888203481684232963435436737229820080735856854456610045105885433545792087348240589437317046470359440130027454860250115353605536126630204731390270989390438561148541992230165336050023381272389235332094470825552307672002278738531280255900270686626207970230217855541644665382799201751288502057847522132413387533892317802585370361604166230805202299412892771827260917845026501283452059988925175776837512528490617001081584376089960101681134097780877468610146500254491928698448496060659177389081542430759320699293431603832600183162438780350400678024050587336376932923258146979217067862864899873626436094319137228712010622284860611670495420957869169844526305821141246442949320667806224254163185753960881026403637463949131183174317324693709760988826527727121759417077551230357586002102498445787391831424947783466649367116316896290795104304500927285644787633239200253259102163880926863989533246685109775845061044270434079509020197838034715079503350787899884907370689490145157196763913514999170704377814456243778281908449870697961422416170427940602515957245530875944280902101897961627650150768160668427969595805722308821927721728806008765230837279865384204467962292638606806116431891384665105404624530989547280166635975038764564570440530521626602022098601381146732536498836481175747210025310238834020232404180459483836514688964688827621389968543992220954327168210764745365273124902867919864572109302618198708130987228270695522644098585042789294713324242996872307434881233918863187393400113637314915901029002476084157737136696559577906663098879338843180822816457982938011121994143629290382650894230485292836333690177434077941215303832484506589644666625716748723624639427382356385867779901010076372936371511878087167601186128273549779793389307270436013501441308914844985058068223880113367524252292693825127639765804143049579340660283510496545369229025723810395518876153524260640338488891022523850026168420577736907239012761470420263749548868350601371438623616165200017635228339106759156342188149637530655526752689674096758192884960034452020955603218262556822605937638438458570226359093200546682201390651269494836391461080171377639857636567094297514521431801420993954343496992890481109879264690945345892698477397917190584917886514251606685530930759573923734946465133974974176495520567409042209062691691697972499442335407449853101477279139429848918067864466737766362393457047357304638989918473107182266029031875928938295614027568870752467690567794385584371449767895289412484898420189287283034597730605737959135794200884983069136628751694087522754889093110035706312756052528265132348538140893921021733605638935772247396841334470446567573215446260436109427047866482608734179032054345400259259777050148712265842387483592355560470868732620735177407481299318858240948727788982718685682572047468959027883543324476249946640802611587714583841473410663025381108903424408021082588381922272693554629160524069706509082148057509216298067817653635708231048947916469225660163344027125266439218920068519096610440560922236680202283249205909470035364875488748240266901127238082813863625364528815742161693813814677733105553937391075883916318905744817053869986792060442111521433438536074615305977402352600752922478852795586898123938989766170854225290039883928955073448907850189765451935149022979576745073792327551315731443895544041561106708186961592961403471243146087260029856250579620835446608961733385975693018522431799566065542674834483954746548737594918959424274623544435818864781549007533703796949534724666265271818390724852732489981493357240722038390758427799389580878408575045374627223386538926431269367954101354571192947533396357919683108833946955469771443103840531434376734963430413310793286337464507589817852045402193772861812550310479161721688612421021816029877581844395601434501505596253526609067014956883366788119132941285595939693890621530334756038428671730625445862956627756060362500946613801166645392323607835153966000352631426888797183019265659964153154581529763177451457400868699854484789008085576357735220960606100963691492016220422596290300498660600611797004708671071713055755651737030713909270742836812485899136150587457439944997938768766445962985992181028775909387484675871734787496383080702566183681946202133318358877676235290506434749441933313416540384586632097215910506685617790775400198592773181588992647677427837315410665389593666079708934980563910091669624676875466353348143609193197264030221370807986474929537868773014696310902435959564859815270215880319125787222759819243218983109440285841174810758419789227033716387855570924240780331781822581622351958846763573189491645118357148291754222090548596782302052700028913703001148695635050877017567765140356200541057817745095032771852180231567311736691974630300523758039579767323489513285689543989919883381747483121886674606082704551767714759231301323835503278608057123928548613527895367548464562526026715023717774402994613922846521850365779515090247058143159727249302893269925348419976739296887542008349420916598566448909509203316762252125262699546860194521723168456566119347176890451391632711354173221554375423508518008478521285656338292404765329753202295247774115177958815315105156986917375913316046654211253279391140929019518155718562928812614597429744127437708144688372513681187475525559423616791839852815490706758226297137499487614638988978905916160467675007240639407069573671927596917165354924953192428821138114192933985558364219739732273389430019783671245878430675248200123880792261616042665131838144384668744841450922078694918444173745610451831976951895697819468309264867359361093903547864875833748057326964597169579219884171204569384227141795676701376528077178864284976845810212109736312212927239839000938039574469610578637840747379943242728435203974067887564587080569029559924577387629396577747023435270006121061877220718673636632992606744844504268171683609145126783086187765125926009538808451241061118850553001370965892033834708364445040402768965027279869401787801962994189053748036742478369886102796911000483167968052416082523720122335994652013982925366737509343082518286575606446292320325720720796673300804014038793150715530173780662994126684774729465456237077222826310857273363865083673879598499330752100013447547181877287134207664441055148253838791977255935200752724393514174186854046229633131966539100091310237328540574857153134328816652183836383220850281306665822928386214044271524766021379309625079930866417392473240769957676206476050008245618795174893446418142360704392924858656424748609705594786718304391124079443216977226671334687059653657723827621628931844419588143652858553667335248635293235224645653623060243700878594787884835204802543277248096991456921149942957557176905107285389138738297987527207717013183504349034342864871831071014152623519749677586748526989864743246412583085738453658673074805932987123064869714192734701887575842466699772743050449038349598486837895258196342277920887789883621136290579415798638705636182373991220684028286618866842482192414340273055357374093526740932661348280083558447433724331792426460578781321021516515447004156751354247454974700073259720165397004578723380061454615739399115805419660559975732531252210002378886052478042903519302866331307360373803435390019289196417204830163055707292405234586977859816214320149572009586422489255736610604437644066266790353661762176131655494196749540536262832297805707955594580893097622617482670761688810745338083380467220582746305911668280400990583812213644652446472732819077722268516440971928899983203886765641271718758764659070361518672177807296180678867242523366795574116693890558806374248041539359875321262508531434863300736221137206421519397035886173855346723982609266532449390002007608629786206899882341928536719847765954794683273202096641895888628306220768377608814507301295789120591135953343774690954077058082344959169374127304680357535112882658377672837301633694849406316428723521562059412495739771410930632355199139663614954559439675628059053135130194991614751092411114698120693089183610029417732267142717206083439056327637642816914635248868504867898279993150650517005017866048065079672066691326757005950133675413080803669166921657843797099892635546901889468958815517986394142374568936963311112930320023526484248576493141905151551709976419407578558155089365177880999481571973156350146589442705429933315871906930738437079521004592080476737094133719942972544839196402525255147294055324842887222323515461945066289386937859302888835482528240824007889292768770391521935451290563711334695475941344456960539681854106195945355657328741477122263164775281563298691018793481603688618411749168349978006315245919591704564616746345153837366823133683045560811224847514545708430727198896949229077419282254183812287413699589387446613243859518059824727878063677874249020214863694975838997585026793126770383660692819728974978942917984470862140133256898026748270675471737400426270728132576083063216773838244488553181586337262258100786108549383135666976053548257527622355877245693958162694169511948240436946238547353099082383721185694483357133423458057164603441894912784649302204469978419388264972329355459132804676270402723400682399139218736467849691706363342394080978928508470035346581124799319342187643814250297912201654529133966353557431639585607289784800983889839306146131132221818147380374865532954520976938507491194037542475321085080261692101743325845474054186446888765629832849837754090256130035006071819346094375384045396607946982615916223271759375516746102225444879215328933166790559242283621462031238465080751170061580422199537965834916810841918630495175238065105093004547377793065759720419277266600366547373615436239455761912049024114919725470365598568730619132197366688318484918532240040668948976640450711719485530043360362357162419693451779075389529040286797884811345583355181484091716427748408446426481527921589416059245731108684338274202971092114999948329098732792300398767542510309269459608856624080812341906609475348576420991107128438330778730233564221868523419685565223028099965478566740911153376272992041503563054958576552512143979839387287174847438772453512047142456307268667660926980686793654926777372353079474824570069051545977594517850154192479665154958864646427139390022856603153822616335687565173030191216776586650022824888710454423871576560544216373286769605698612845253576404766418452259108284059962014476426060588113497591499377707925461288644669783852374472238671545593742284431723092999041030448900426824151610555157943510165042975990358489139809750653917250825560962991998745888201418492953883554153568729288722100924853364381921292769934929171809382511643945562665911241749772951018520737834282081314919341515633806239311631512326026390459792121750589908273452271875249902459101022721510723575493086751510396614143135971477418309779255066381781293128396780109571611805459759270141625701592056581846157545442998121348637244088201714561103322471572070200573465171054429693495298578388376142532929488415099912280034449393075409639050875556283575402260162820309511286535362920691916279162545513547030569208419790497538300570806639150236252433752177115261652954586092664881983498717604402889513554517268897461484831197072681208794209109628209417245184767874408536882855185210998593565429471050844929112610864737302995998021730127611630119536189890518228939560517817448789541626506830846019602728068733580925072670347942904760262992855484832885546471569761751075772070672056098160813214231578460920139269433976307452836728763935594698024865588938320993664288771966233704459644388978260608266128129849313874373559009568478301109551873403698628718559610360436033748673488656344721506400929045174311974429611610428754232678634700672559502149150146177014486845228896860827227533486202002975230354839403089658117759530569908386402588981014360468563795657308176674496540208137243914211857605900665648451316923414406534024275353991101334092025105901324031921376616922496651236995599344935934801757007941022274242130496549280461756470219359004130578511843496201732891545876554943102639016610359915131182483801542179226405509321825234813264327023437149753521615953528273740192650355644613272492220609672099421855681981588466626206056383740210094474905708352341156426655688872815502423577681368263370893883774293005905772230893862817797092888427113444311599473636340961370107028004032694385331223509045391113191102018534393809847445581611185736705804583744453598668052390661260242638054069716170517622085091028289226610387701621287799536277440095303492064842614628931623094894694923610116386731775361563867535668792632192963120858721831067511742398557695179661065629052458761242443303395323002962858550653099307003247087504072822192699850798851318731495736497030694149555794809090965866526213921443134602366473008387293299368011958695818853999664542499293289447939422188120813701087235573543324208984896671778283468770765483019903108277715962983151950279601531751462289278973793781518250681055353598019295549556624127711754478159502686791355568558912924724932687700862505804494772438922058688222781928640968818522473402375154272624476983046897252580514359962634575727512723461416330503172978150768883255674192829350094363911547260908052207448252813219229628435549989701800650341202775854035299586405069166850678904341802622135180569645396430221248556308237256600985849394372080263619472054813970881028733355794176787151154244656744593925900216917965024359526958670931013616324559340633452831060962107735171051638248958683880295827036690624792660161923046735360314646020636543107760622990452779403415230141076452401677483002201164991274254318480573430346084687041784675984689423343589804861524197926509212843078110669040648037549173618690686321080444286825636801266090834031622965089093018113886122132451813431097310297340625963343984127353784652928698754510528787410509608342045648045694361864505136240330952293434122722733902478283084711145528606103204156855668467941536918321449064853512067052490722975685968960760522769835410902688944092324296744062750063684697657673804772108190527225005476911455196735603523273395113224153202615278396759080270977695292735120462243226454849146431069892206898715848689975978701271513432387708715029560893701923788462562950769202265719439870164152341625225701125527038678091715985141134358955693764505964376959362877959145740197289427288614781148791185113231454824954409256476081339486013427986597179790317213648743313108424350654126214049837202214685563669890655001710812411413195617156735246895182982852076830514626929477491344066233270995188900143580345705827287669363744386608231906063111820870787828811458205651859323254717081990484036082652471542465070695838455001715181624126318621132972781883867140899799134845722570191775239745977571795619361626428520654993735517377725956058605477585058422588049101026575275212682182687063230433862306863845240859101821331491894302681330333966556567627726141398858931568275082801064184082663735271720582370840552668776271117042737480431062999941442628274718184949082526492138984786100197192473826617548657474764323495001849485199446945205305424672831944027733645869704333580328081394599454613322603471459179633515524792461456604535336959110836117363614039613132300649242182010840525169437028543787099140446565005042943824262246598277254707499776156219154431717332071140022911272128173393358488088093273164709890184703896755345916332744173785371293008720759286659641661783967138005717075566515571680019151077966493964419033545546763615916745408347928897720177728266770382818150552677986703638151444140851515277840008779313275207857157974118948283391645032119564501511840766520422855788746711911116101225800436699585532237974215261532124288552911101494132412901169320147042301094773191065038182054361216047082993812160131673711367642388320662398483158724855372297694080256759401439538849340519065203595450342356481217430480574756945738352872960892531587067987568435339415180746491579538985492789746557589068355015352477184435225710056443710735735308371241831098964512892174024541320743202887016256799062680209302227756822827736352365577337309894925891121917758852065246530253611350247781282687128622539089197932165573865237074783479176474504365409209182560075628901503665509703451193785612769816583410918675164586632786186778935237306487849129794135167558246272018658484380056536981937445270752091113991579615405237752980311954870736709615425332565892913121546009933550366886544327789846016442359588206742411192047149679232976014804305788146083759982140848532772590872879832682199199660367415028073276303282836303037202146369954246668538077495864732402898599671015969562400248569832483217397788216846152125129476813518587752521558866794398500317159089160379160748340210734837240186268062714069213247982753577899417100266270540470809931013701172410196560322237335050857606739367734455619907227069168320387729831411364779545593548556784459660088990107192592537883149043446757663674919631447211231433133811931499443361473862689808037677730630941042579525483178318778875820035423141670682304705222606821673103909382435010174335327037692952094724265340417663709184282012986921048251258187558033916998375375125247506972230374607668724439590159552620107321166060782945165300587515256296781204305314334210761616955193477620419707041636608201064198276289853860929777615691147363241460935430931653583300365816798660723503564603072143599217943275979601191200591704816907688141505220998070912392570691625134783195636276614300367206912167299211787742789242540380267067714247804301534011311766487078759392179255546322603267602362023802743683934637161275077288974932638365076295382135956292781898054173444027201848448668253078356325470707310197843340454103749440307957652344011496773361756637065397244040807497217035238247974800410999158728375891211502779442543866208168399811437623462104417234398658974151998809762373121897376562450616183342018977602366032187263213146439883124043850351743727283482852505215342463311328781514291194834413757432668086839104319783967626475093456146527889018967343170316370587923937209697646574476665835264650170898537392123637336149746473427358363231285388372667597109206741614852029302820612606428286507652509611587793573759036939296884919923786037198285531690948304380023985304906221251479307137726497882036207535417068923679582566295453071579613646772124249866331495172028684463767496743304163705787622551001459706525413981416201677543527504726665580371616687151805819594243646564284341150060137880825938746953537426706269875001448375758871216467346142015771822705266830036284721990761338551411520271181115217290058431088904672545587299900464687276157437877995029426156155346156290925412520198252841982652891309907338916097541521251272346805981386101737746622746541199565797136592489486127854298301834162509351715263713309633128467169726409735902926705751440210966446689140035717784909540427816776873927720492822169856253017263189646822191724431305400086294524054662559236825999829025693715478282440452382866383452934038061452639355868550484271313483458483989940948822405709744794240179274334348263866477687338026318475464952969550337508807127020741309321795120515849551240600955045707029575707217969456191865273189451552841431547380599504233711883828205455275932920629151030153542492480980678099513961525906225623644326457266914488713126389218341746051980894586632321236791628468062211161667663722580751179762593447824207747676349537520875150060218930451560369047132833162269566585525938404818293761364412510668398248208002913493208760915346723523611351691618706364924762108317212869924857115800199034122697473592977899750728190440180641458129247176385251207777640699588233734115188328356882219784629648767513040328320833981142371773567830302000028166138852580477261707772792699428271804938094870866968277454040022519978737537430674169606660543145372363493064805364518444317438885759320265981571694768631746216227948162666278835074322859996122489388291062249085738540152086755043609724310169755173129150934658725828958591809854866200385515207678443879772434365125241496135835149318731682919885178775896763550126093707314784947495243872308923249574223584209966294879118226527879510770739899776239990877231703532356027067098544923404380264423313507667027148703292211127898338545280194407689235830774685414441317673265875796792792906274859506260793405968400803486251608610905725222986012670337538329961884396553586954075181528783788137787131429614038115788417167450772070619981448147556615233420138052713142144975734882594557878037330430503594113593718734152067566042152313519579148387894045173670391356121765241189899500330614515690696967194919107348119464728621203317158049848773220542289128883663520982494886294552652902079306921604599592789731605596840313175547526436315701032065933255135964391183945453140526905502893061584276767196968757647474850865948583130916006635357080798426273512877117370198153029829308782946794960281443243597151594867205641884322696166535108606773591660569250083060108329402810333044302493551433837870436450101635900309339120440574412711248834597814177440186469145071230814724744464113578616732402666876764991596118414072850036253409840734312488719329562834960149228300285623257749704531093396589159971230672773495129552581017163662193063251580311349738144632297692552387611400274503147879275062959810055661767375162188654328364667985481834473384629914875207812503167162814247440001044618384113441697626349918504637479733027258910261210471267750902188014530290510829703533905862251678958485763292305322416183099059821054738242684316246398959944678134881704431018297494404317254240374997546558477410541494178007624566190719623309215804402917011365500472644440571811162211135771721487574692325807972655289951419117457152940907834103178725748474541297709385000049593310839994595524523394198370715222455127545549595773275589037892059859538548498848180360897976652330194113361381077481622136478080874272711088891357074531860620310236447460542089334767547438268852391519668133975174131370327869195742764634591963858282366858132048979616141266802161614122963940257340883123031484375915043417429495429716039831516265921458441464056794099715801272713616214107155902211804732879313129742830527965777490977215136628650933758183495248229598190392516416414829460731900654074865130683610968013487570239865230946495285399971007967130565991193703735769913416265720417963367213621122658856907460067812922033347123318148834639737499787159394145343610377411241238396549605050414574916856857532357419802408716195384171078837650430627030647530295766630914223137255077687829113800504548109419273729721659592958904101013188569657007255747919642558891673994256287550580965133359360827474555639413559524102501505860050159449019894327735614118940553142317120628404589689536881712785057114499859005589453677744263710276889203966666514480176459581777435043772121359897861578707514586117339901443252195747787644674000935410342769553107826727609086775865747446292090164809435711763217600452373310912903842167375180823526311202008804117411833142888659001754082065665785670257406999195166189932608839042726672494990945256350675803113887421053561842265405623599135346623892658735897539362447794846129807781142831224076251537776318745405260506192757692414476570412185376381899983148200221924233715215436806669819986334088390890510985301472402500746732557936282041918773844052379854317069042661250964899317686678514421104698356023766196642027395068675833616653455733082568682885494101783647122017820405951741132555488336779062949495193346658882509527368879278573665210140857100703418982508123174516812036378632225021953402547649324839232555026350670656683405387378342215692760680699668109092582869204437047061129955572802624656222765867033629591239670066736474449932659273711784400877062502827279192293893431424217136329049634485151700440781641770315810203823142479559544580232865523546790044278065275618047675441844072475045913297576330144626784870584044236218763849997313320470214577252854638749070501488961364868292054239233393761668197753345116202340206662890604198943585711592401977851866102349998568068510227236896852992230219414051682163626992977086655613723986076634476020801416426288297098890739802677710753284600390461356178422503948245188633474652252197723367310517828055928373577980634952480282449656476464802930354032546814526495492563023415962848842839357023825523002439277811573995344249984473373510457738139693076146877265009859285920203484477437312499414029381547136895126717160334549194778136248945548026514242341064561816597217419821627095137031285623168935193172113375431499819476730679798477495813360971710117963116826287340874967394566940135402494542071679678602506928530774146205832740625567254061040548737239832867630907753358588448183312972794466715822553908661499026195760953125322400216216989125150844630562171229334450736425509999319444931339725786899579319715713103827863176240818783441811573899118791868730975717564784013379015669763894280276412361766442043905112768931129627147164687414136527238814352046300993177145145325731118678033863919404876766279053730667830623080400313573002041651421393455717591880318122989526088430723925599642838099962103740861826810885408115083354019562542119329982854895960766237467990186111413276745308576370407499521872113079259561054974501893330206114818862748793388391420641408177046404228945065055856139527935533333933447624048165018676117208860023953615186995302481013394915428176976960492637367986147844379046410364535394200138688882097038960994402321942435403495255575102250464314319239821724394704674424019572939786113174653863025477566859172948306544777507278648807939231263140104981694433518240682156929333338935653497669844528376637969150335567802958447304871332803819690630661755958331640904711449053328904909205083393776595848993398725450554492034662202153341975589046085501086204503129920397673397304454781155439813237834709480089241127832495781991253349302410591636439694061475012827096844739668530567648038491896084329488657079805552692978701718486218839954437074511871621933584370829412149422010331370410545830635106052851299121591751226667281600466829748848465793605483804711849327376340173294605744210298411392158758292133097644890870212542160145869136969995373553677483321533232322507683242578389132803684226427191958626681707570756430057368782625583840614942429930791813075983295411775765834806011834638273931639236806034038518348583231218083987568684799656275930850292324026975533683214945337286950691271787673871734350812444357999955301330235184500124528302342174928248540104391895919769704729691291401776343587520633015324448589375758518126431963898692059805901233295936323905874803450650399305293689712783336793153114314211577366447412119391281524772561558607620531402211707086617235793489000312741908683673262636420871543132096166334724215852533093161817583833114418114092737972133949415320585747180833778630596559555824605362920403683798017554046165052815469973611858971689188679977378537373543010016195248501827536751426132222737181459099519546703105252376964542529416643463460931836057437723240745536277928521492648075585598821404843890331856255925686833645407389577763040116945181188543225331624560382228114946575737639160979928084506773094479351028680296784983103070298960315731255296066219230369313791512864710131855444320418516887566901650388139601694646851682810321831229440900992375006840100843699423805367322472735418049669054325694215341391164975687238881564890097065916801440749164870993013353751808760630282566934891414329258473070687181727402708805943223443437012021572143345789519515090504207486961346465833487965315868284488768746090520014496144659722800697090794715992290201497310437807666146794967773605225044603491730249821290581299920173621128478245383017431431604454696502610062246933382205312456847761446886129916893300962152613706150214799266433471505594491511641938355383555482315896991283895414894932917443903392196529099653304358715391027834193132544128714793478876900027413501217999380037231760121133721027208929707445484035824454188598656856340956452996770141028387951617616565741642799939259143048133738135816084053490630616481350106473166820138849260335231396720327175403908727469518889481804654177483339244262205693479202166864544170609959114777597010848365514130974188126392311534717143313476421348737405668231568655742132765459860392647153952110211103864591121965798720598985029185252323910600320835771302810822222215108226138197591804670934103700103705630356705164182227420333367946755621334231854864113205362835906473561010126444157198372590817052741764361123046158150050384617005770044140847948292733090570414337217783395464866255410154622518044177771849354645138898402104650157683952302238106661258133884100181414133970990199883810108821969768728336845826229807757099844366006239552393463745792867686607074285515941609973186024133854223848296460826349698425462863042540620405539474959839959209950605163260613808105755359935478216693681579499483386296089133450079738026164720921671997559508783510855518639569032952272369626598072061791870247575498907218588240334302069496238090697522330155750371649958126116617229399901632692820160833606575843051966606332342161921635142008245914579370177064703052987627617477668123223684045378415560448872212269615413708256144451536517496162308513604542591912216268273482533050240566446842952503590381605146395494131138975884370206581795264901050858070313606718316590842531309493228597644472472711779974529862756511795900791236557746262167670535801607367775310314815993122505516208545489159197019057289267076409088676980352023694005107929290199551153596366185313072958538975097093685823473321767977800142479862813573477475241027008758039438875501397769841962222036774472648797413007636518276766862963932785204550276578313393992751680254326537833862327667233831521499998453117407764974731969026851992065989084783020540778226698636311177436152111622696319403541178547651580108084932988359551693185137063891695275578164583038064788547471104297751055947488881315145035484629990096437917295642922401054817619491573677854427431687067874729583918814293404563756590539194284823747739578698469852450237766241587249284712053911045819705994910598746595074909502640465767338730588047718600089511236762624792605812909450990315754314399164321150850986779796481003217351061358002098461422664728449491835708687950201930332561974815676008809940989790813906189172273637714569196516810980461392652361568346376702879164688697134619359934419260331417683177753844127445189735557542222775541760230521230341377159546331168553814306643297692994101762638717526368551121029031523469593909207301162443637875345145340934386837403019159367260823162659905661068646105837260804775567298884072570115107147311393348094126963538897896829876932905794835694944406240568134213443267742629688150936101363141994629080165502861922157130980196828806446708886582326902636489997558113263332457996932553110024630190898847506742086046448633975991926452607712186531375408782697452883865025336346175678359599793923239149959955334785659049411465744408631260631036529964919768280531201272902589744535504460075430693021843059496372081023886473400518943520645060526500594613354049629219713253465042137244578704271563566093267232890141820266236495511030608412296378866018377073440875746330808552395609958044676153488335824621227901692357095223034018655952904395711017435505378340543694367696568367747061276630574353402635048145467331703837454844736009775488790577189929420416371539866666189496016509360250697953421613884401194869139521657171677476081736741790379453574161825382864759400541350361875423673253878568744744853691508573268917987104236089797553877706920013354988726382333868727007102470493947587557064569770142272195681726989418605817342645417199231895207761066763893290430023764824207754023675663617331429352561903495176865502057036917214145974679923917244648285429683952272226851796803371083552621981785795298927567555510573993484799919381430930260164311833656951747313603826103976364458202388274714385196600652286683160242163042093136810771483875688878654432097803729554930682068491025265937007399611522118651163205333509119052665755410637098096204044340234987891740480164898187299529701584508965847855140436648651768782505452437287688408037833786240794195830390236968292484359195432224620388520507254218590021292601920263553908680050230204337119965146668642287272905555423799926743955244020318687168705811894846586578581587230040102744403834242796210533370007585990336523496458151075776715414967125184599027939585699561908868377195068647216533978096777939812711989701037258117911995145052603944691384976871115817588185177043799928523874695123588643259542699526213914597753253863061384371009814682117289679530486482408635851185877996996211912805386002149398196567232992159304014868579700954324793769020721645098985731235293226633452539298239797246746629650021591485741535654757281271354030240638436889565549260851379088261459857000584169777980147670438604618798958222991715648072975512102332000493648303622654494977377769583013837585109510872436172927215264781039917591316267113376952971149997801540424197469482587003591295503851584201133037237071222436642790511232934928524401451624763536481075538357574861554633863631086834918757981631954215495329607368915637070107005590058469662427744611731511760637587398186574667946676797054036906654060982895098717495558431222211300584338261388497439803600385267794944844617867886828420783248803857679880120470129338473744110937541853817264432012594575356905064296733716628644202577189557758901801120948612776758993435303741935944964957456599171058379711306868225570153098985362231221161430168354187735133350415243334249925332032677446467395954405238737107614596476505848176385035247493908800698181743782366590513482495018040762726423470346009782544457646281835237216488214675339581078575546829401264656169827472519234906608231663990589520501939512834672459317061928441716646035007230155095530312658427651920440422755591453056975080633674763886166091180862684208545354658419125251255759797143879610267222808137189976757235782992944347950217286481098088578597466494725222425421927281452542847993233094309985940384658301840087516991930752135967181740996513522384679021939314120255033284809309665613049052600351726331094240084245374631515821751298142657493974707213039206785400052813871747232692102000823439350433980582384688719449445898972350895081073783561464211003317320103035712818016188124783102212096824728325966370656457690168312763796227307321291157973245375950851671682641534480764707057251560080624798283377815908868320414690327364571033648109605166625554809525462358418779523919834555922533704868506869946565225997092931186531579680994623302718996870286842235852996209946810515931841983858945996874138977319829427905721874156717006073896970146545543185601177638268317634340128997170915296790426619911567449085529044369226739588400735665952699707268590042050418811563999400029236465678108225656133006269286486475741260755424063284761708509502090966365925903575099788595900835956648671264040738452881543496970032239638155541338928625159687077476567836046955894248890446856093081755846493997457491245881870830897508228585729410298249407901485733304957326897212421575972728485652413421422528377061864624247655214759706369909864944638270690598142467340804022721732488767376489566941998343749980732369006068458353379411706414517837176521634465496832764261643517475736125140513319407398263091559128174886589833970827266571648356086220283269929573179911164033885984150707623614335629417421538613627822968957895393253415974810469057442088285777873463155951896391158866547054919203081459289806900026681514202301791795187231522150407612164816556331099740977413571057572726946081592134271773587701896676914459834800267689522236807381871061556259813696900765092478095325848257180508565614944270733932943025350047954881373080655785009082320758478766696027525853925123566461541720568893713033836009399706980152098177074479594420441192664216962204749214514176015511939469476784028523725734114422517322804825876756302323649853112742676415457632621359463737103836589923004156265051716005992807150052498393109055663516495148439112468813289858437530586678323536058362537197538193984149676208065364519371713831898887191127264662217191698724874898568089451207115797221814939469395060773846213519300754908080276888656289357204951616706913556092996767074331796273799252637258086166092342626662275436133772287070388501781913586629342842651035163998880451441460198071276852707602742479708609744578226258875612473003209747582043420907013069149584866925682207731965795907669668918565539875202114128118817802124738445969683912782505111339868181314938873620261741521242467507286242579305422250880886257260890480747276225173725312031381644227001660974341729514533502554673021545936341908435308682402954067546755036700685922523654744481869117161280469268928256704094695898582418634253620786345004785443541111234683450936963457640698934909428504194986624818667208457037878016887259383354800944350199800653375285068589047319968132645748266421739697718757877295527194146060472513156094100779835537152437958235576092211722531482276289942289525250402077031972414274513390568699900747843589229494736583314067359827165048189148563996471326863757752968808766123578808717060560020024439540454996180175229856757266010281315914092245928501549710616307191972872279503532094526636443072302398804165911207805182193739861068690007113784785761834462763991389609846803548082664034269707763196539443320491860904247249194502317510890158851690259891176603395009930823841654620235564666285386920107678302955775351017987639096164430025201325492962448240753278915704421536621793479679113340518749709959876719948936038780161068781498928403412991459395021500230195398133823129740576587767537563325970128623277689357220032578723820417121681877185378848925858750492093191462260151562704007644118465462643368452892863352719642727404198198519977904357049871687951490410211856682287257061888817432945934612426274102340181194981406305246253582385807388589234790172626594078882144235963472699674347610522681896292482075879114777321092348426613030244262115548350388982601995226722802335899965289813753489788035525657544350775257434024105292731045006445427790956343013614187938595770234953049046587480102589572668676648317316540023981951304687382587803585040915808275082596865046271320786835726110399259573726985772714654227504214510146090459286701959884344558736359728196553170077276016575099232643247423178740628965434901953141614735495478956003529430895570597130301174850546214056510447851826142792226266592735130979396630583775340162695247025992778394744952333699857402382839159195462058279873892266909272618446847005749268440078599569791047009944166670209911268976260193001241519413971140539590348506030763195516049589047970888742217377413952847049080844538444140413700467228165589833725052328699210767955844795946869281810409312707198860687298401636493516847958376437877411658204913364087572281569784112687707344580103689942612162247120374968506304242469450880294960877919602367562352966796742465728043089092882776268133338819175326465742147814373586114164428947762541853124412322311492112207423451072553119967552678900827053357541870543274170109722122702443024384477049838151660452523496431150329409473432164297570265008626764863979982656997434277025157205633827215689197169242944330411512394714289522185811569033308654679358787732249729811590754760581626399837748854251226982475679980693412154957761832584255017481431820242511911971195712299552195683465755170683386129195228688180815205162424351265691437623030603064074763705503464788569189557541054742821983430644259390065798993967212209163638339326266305825164832876051275957017458560123348205370457484613412926167765388537426141604807557838839234749358229619217013860440809036589513467504609792716521167208641652586184523843569751836302180555214501178841353680784562121591050109247061243008301178625380180741416215806583628988483532882550274652784813347658466433190796252382505627447681260080198082655588054421518096749198133386636070119967528095781869514484733572596573852326550595321961986256878814849812160166150950701057905050532587176300584583571572046587465092994477471972260090412581081464513538479167308170605024051323901940024094837114968305300397930664297899655286185742223873249148552833627142872633844095914082399845462400747102085105736296226884624348612670934371659070105550909169893160636666867449763308941102014771165517642761790222864613561460438366633988949760987443655070897998046574131556725188670881308352726024367372424721717551376308182752491609346120551470097963114653459033927831910747697238086904403583511026854074865370535159484055890622555000353636197433201062665865698409595621898414478826338470537187593695976343834575257182858568924074504279007413704699976577973964007225831627952824255948635505910168816475406700501719483856245013115693398177959846321280977273778125367415156186929143920006787779643462732567070274640918327934296735370511649640801010334697029046988032606829135415188724742968236078587985891075388183521735083095746424278728461073394510897034640575800522739723746730214041106715308890799092276250886163755707125427849374261455704779796500869000012603426597566216579484741198217379548061273345953939414648389557285463044522924354107895923351533746032539004306852539697358723552138754110463958011585221009406371903174089170632641827144590508120019434755958650596835430379162221584564311455430871545442736349094264289478957084803392284367319407801875656005399883683552094157500950172476380738311886975012148691149119961752818489693511185052073744147914405251372038109648437577638015014350385712947226221270764283394575668103862588068673417233484454342471810194098231266234803879131766887890108169086616625008452847760741113130981973210251677977118510077761204048647796390824793803405671942844229875113792414423566621982530903533706838986347106390913005178950710594012628337993042333096787482377262816462872001923375748116125773874044813347701951708453975590792527203972150100557274073690028252898583354892705582362748278257746007577020569906671124310238614969212054370121029015914725953313360824800409799203847349323180642431033595908291836765336674995517447781627732165903556137693672973280057438509221377354880096283142847032091396998475938663587121317495283243522343276616547578238356871616772241151665213197778564425191930352800207656472589103183793843721037467357413657533528088927678504810416643847074864701742077688677975402302125489080369253134486505057710675557593483763787136425053624575219321102801569760718445961954577540321486661598974998899847318146438506762785473541160217486017735449589390085818485879255280335588833428445632908378039800653402987187325548931560923891673446184312175185946466570430835257136553246175632443455135637157372358227470196582237874251733235695148619780170208831159671355211022846186116025294799058531502622823810885612539786630941702587486951624246934940554560559677577904217914174533977078422288057672072867820714869269123282749007331546658154839263922596281715556323523058122302194518673789121705329562845870757563589977894039783762879445027156574562653801223057300562348980623489808490204399334294699206228721813761474011038305983106043298528740807474690349594616494135472232182702052342964011912830729784879030442413171123757747021636314263440440013860796359929526215504605178212235395313038177727636798724683047914132274724216029575417930091141288989427075184805060228184225506764307645310861418085657402983872487226276515963312406754925684746602010340791924949591755644322737868005712771395780258714727110979549694468334063976027596879626331269847093988519719216273809288091878998656799075456968629309131902632648598875852839335656024028996351902179042278947355839222642992741124725849734077599309617976443174590804287800384614484705426020464798994724676350574813912839981743710856691168680334361697242257135062699077564958227189289043591072693529514362664692238477445448195161442423480550716235877856481721324066309897113188198757762056349892339306911088401355040027119829566935442576344583272131508558960350102550670578065256155817943427072199479235352162860862364061118407664546433765346585778174623812090310109841884577131993634865689966035942534268107677314754973487346469965331467469709202649643715910471810254541853313930038078952175188274483305321116757792885466632662883984487088918065191077285671155132233414651766576016599420342046742439061340809257737361193712736819923152277787962744994029988739236353348800418945163525675480667868753806000463803729579574382013600528747523037647742254140383379335307061602413834367979230009649219545888437809475143271785264889616415593544587375910566015937880687694304584945894165525954109005793886972143413902417113062159822140836019923489886986791231425308130717424278719489899231195787686381069131629311748485678873795504042177071392375436600095238034640672674846191589828050902940409453450562422788330750342535092108349710106113685267861557554799410230155823263472904574980661606673645403774735917792985542190396316494487174845574752315227311181232870079670626972428086926512698727867416709129291613932538610396858343557792711753818018542850985203782171952699888352762763961169012860187428166948382376111796150366911392932922555922693421364792476542675043991568072097346111512479045490619688546135963142889699309597220128680510932647332631315072279874449702596040723421384673069307893098777422160104461337563462637716516096208465337826264175505788356872627232335797564664880125958703535131326191280936763055703738045666943194297941565590907886386527699304794178153817462230874835686480523442504071925963835397375325351134829873643369402687003445807239824157023576395172796255910650505493038934524590082826588236341796454585309166434066474824968499102477000031171152617436853161602291582809495784166748745018167529026474993898170008195061218978000717642684653945577777052174809026901617317204476077718267641177999606196199560632724238579278751392519375525123680153755407423269360198388225916151325468905701505997013519177231682434993982786834221020030280962565495891416750313021149133421180141894351185346314587543380340153418123524274574098810436232309042347900083820975599479595710935013002086398491184428482543336480348942533333232060112183864148922566576019446160999445830805808361088173295891042955214156484058379401011676715009240005988131522007310011518666162410227428126025309310904438964349119543110659449084543523086166251700535478025459693497638140930735067200477637560215747463242683785770433422558914761250306276890277727026540092284758702514534278661260178407547697498984616602960340510889548170195894706391670435045146275503338682233972447636109679184014902220315877329418371954239229805798940667714058837961225128494832868111824941302497363098256474199152820294213620125447340594109642806199957289787905023138883061077167484525930346192033265086515082260715432202882146127243958657859826463421914015309973739757113961716795017349718473078104693488125636704172410522702745994453665160197716609628259800335728836022767015994339826237956265116640033621438482766476690373127447705857504864432359974220333421182771786772016325328605802608810309989920520566814228209265351676755850883852518545825400055849676759190302793933120708968120966616681307710080401877693534869937551679932101230130311796669996500721200879752647640144362164066201385129138406215093433548215115752770643070760526753478250772135648519060956848430440353816372255315595490695308653677957009768476935780811653050479243390807626313636321178395530878456401069610335398355668360739300266370471909950547870619554940485127793160741544299603013882667639023283321836304647784239653783703258454289898439480683010865772884252904088795276078692055467488910844674104940113971234423328130255546678314512230883619067199468431077588887650109203282332258007942000160148442696157458109831983526848735701201198095875399540204901091385391016986207038055768111301818086865245656301204597821260995854430498164110670139191209974661923400091145387123797416368803462930946734967423997410374420829198555930753301092911679170122048066493551589469623142476500650284154681422268076786863222806405741739917129576351250561602163024936535599714540086918760025396488421606725388902041903089381030795380522575543135356526219145275611082736010271085827530163379172250221209483948026115008631195041621856572001309498444435856889441429557879657084317005860261938406673598453180655501212157989261187006640942621623703044966931655396446295361319229979519843580598206631728220095231663547791120910711932481421083289447209689841376906435200810725574202373362875422553736973976149475811070266457562373896169031315650041645584020795421368077198294465117416407609487238037679738832906572013850900743967887282379323861174699860763339791516425540199954035976840740889827976236803449721834665691267650631630360525937749757175114850624929709012798075763837873895841432407822171446483019389171539920168463266671617366900617210582017730390881057352988767938039484965766903219601231935921129806621206426660374431207936878465104125235787255302337095754461586022733315635953958443317744568639220602491188390584542849527476477632319816338330238442817416793949216361358516988300174952274167828639734213267013044397848773160842931986297206164758900723025892418395674489946317065855671490345858820654091038847257890028298850930704583527689578359217822429654438850184713754358109611806936920470674066179135207778040070004311576810033068189177252039882667813759336311344512684210513450674603825385178605876306828065887472298058905045279237498792272323005470360220688504243797607827964103559680031950314194307809831397927187294020856831146521044792639275947920713607741646093741020496484996088707910798088136329198891484096776644223204958932846661695031608999143328529249914548113109163456890928443064341394449283458730698854053590552929935566132785839437748706083580207883697828376885172196696050172642989665693409180426846461405056977176272451039474647609085600916221547663348454596034045419595786629730885050535711958587955771984024821915244303856577513186282865584249831014209310030247635855294769934439056158437703464811144761369321130934483520964873057160775456169783254372570540157725905429464349411121731825411638632696734342470796123777427408393237046746671235189600806395283366671959376214776237296711797342827347704621336147369766290666412624683632733640748164016577553062125173936105751361054488236959953883902491414875523857523584472513783166205220249323345487754011988992749105993062802852007847132665262101261697555524994319511033793205060277329301528143064152742112756535793929263545149536080563800876297643963011799264701243315707237616707264320657111262608511233920123825774561977995804286713717749798959175450851312572992099893849501708299410325049006261886346304945140712232078504160870137348459402040055607619863004307932028224507285897227073808760881534002792337280039773431934111960691658652296558425821217780924077956519958193933422496178868563413917527158376022543674265994037777399085974142209383067229892786362435185019319330705027336667086951581223056311401536108190307440425341887339090381475815112690431991594989161045501478711286315500977688304583005856344671081965948075451473283349805529403299144010477809191048837831556582253450036045956123770821442229174778178548269858826289468039202794475391710122401246917897378919869130794718280304913275747621859944342400040412425346118425221382769684580376437689271760900327104927316165911683957501185711161832421786582009468704658603533864009809284780621291766524779105996934912305679176047692106325224364122910681479095338700098369469868722485012862267788957624536864759197674958834717825837514898672318621750560619136086205339715733084899277654036299087029555430363849612850362786356213783116419442481041564974048894627186408274288184150586116608889250858588984721246656724394765881431417925810444856950200458993462635737748689616771313601163052862327863215512931494033890024696271052356862372674440516702209939269963546937161305527578072761619061022716219783101880231217903131165154591918957253348801123141196298578649570288558262682347885014376925609334567364702440566477515280205840387717621471923159640890977415672250792320146055158181442153369168412174242746816364409060501614531239648853039526609304179771435990275041143284320919534195705682454814845848861961939920541128496218783735274380213285767487310546600104282537931959158520159762438537720777802771527404301047597307595173488265114380778603157623553595260449696319186613887702061953469089346290576263489257701071943161306239382481502277390353049523487691566705770965517800792181392872415102611534235329089009869398163425308136498270727853959781048252615997705774318165299989640308571239713783447611365449509965105575278501142106812057010709823414186274525494741358136288652449466864889739173486977508624895323990965059117665583564685418367838050176473333840218761160481904569306986060536968595431280804033613467817524345656739101102601493193829256275271703221256907637124858381587246021317220299243842052115290790046798436915559304180493537399251924751680216911010142900091744418594093434664808448058522185452463718839629780209898354712192029779681636769307030692110612465358906178075603923705390633811042793955993292048861799884988732399126230091163215358896421551581000297352149433460482011322615381917207644783896361222127049857360823510936709396493735680659887075137693087396697857402298539350593390719049504997798497315721292440782727780212582817118617368131204721460863708038769911352668431307099173398962397524192760869989027360356947840192435764365100692031705154869354520525936519972863632166524107570132634115139607997645034508268383739982268063371411972352386918773407850425823358837777860935915530808780873569691060616774870473719808014151971363867877512339060435383189241934881242411406822813030878475191652542607671128126731974605743174020287364283103261401535712881233782421301810487696718142831354658329626755812585992048697091751382595610180218033619623579638005651205680932968529015453619703246700915249349306557041289866357737556719112880171573216339184142239331924874368389889568651027399282675309094197473124120118091172794936204365393770281467893200181382316831394106798767903745964754245552239009253003715506591307745413722836987232611041309566797124455962523446641817007964906177783699659476238658742220756460988544509694914110948135495563047445163700493620085274021190133812682552401566970599554222470198973485522940195510728848635564498400565425020531920643961744962859110545354898470874751228441188335310040899007003476728445099354399248954965703061198151757902957115637877459310285975656644928356935713054470724888995569332502036267009395721565188605287921457570059186361810177211630287939441830714221048415781514040508083503662740820719797931518472225036919659798798927509606560809451722830809094107697130455690556176532232474946298497988354488757834591797939878503236779790322758673870578502758487749073303460247628644323259515046061934338692603483301857941846939091103918797422062472944604281668794383768473111377839350754916002778013777112932896079864495387629755401684988478004453682151631706254767586367844602288987318007571857572350064186492744203541500920582358244598096249377336541382513280339818915053966049711902309236004490879643719385797574750511952519358010593773905702635678858103992964709146944772829921440450890108139808996129140943793284947579460457396192728600583581123549345928888763331131670879421959258485270796556925588288042490661389063682482285406267640139663474737929664078769205221150215958762421037015915383597139308191027815195646742445548812750079375770979395742580607853962117607319076207876490198795716861794002266272942265819695020586857643028551259052923336471515192299405177918740224231574414506814734067516980660607993459056179940362471501182750185245146481822834411312272749915241451664519482234518484501768072635362547982572490976555916301736332359292870718900655617758737530068609708121677538570229484854024991851798068111900237871986470970720383861333953077348765133252206536758749802153687153108860014385626462988414444315629946793664639655370135611858905264604098547321961671410917006204750114652620272568537562513874429332548277326733491321795448235742036023823042907051513772457954068641429180948389644107081888366645091742671922786305544069295529284408548677329078658062726317610270826304525145767394436813205769157504925808150448737624686080639661258749443987167879300675146295154770799205659037136075917041161529793466187562616394215853920172104715524356118145811708158522220570728913404781523415762578767568554041391255774157800200691367710188569294073138063557343178788568297936504572062888999336649186835851277120133230176540507008940114871766932858469226820236951382257305676313882612111772127003552894573351625057441832429568334628935643269409705740411502856096149770330910954787519970724326882009199620409417373218148769790583656423849142442481450763202034956275191771807900654352348382757515363213997911097199808336014443637710977629374014160862150846636097990282219837693294640852690841383024363133328561057253004910838405168329341299852290194019618642590086349067299631153752610750054282244139315358586955816728387696643682747545759493026513150154042650171645893641653028740456130015004189134233489340648160682788236865148359986551758691437233687867670967203354802925747569701976638728150240040258382855182387972679310375735545335860080577128900761406563299108920412176981768438844306535194999504746963715035905539495788026305956098634410127112480711559114654563478887402675015174047630710861329816552329251796016189143368465163541129678105162411047836515337123202746246454485680074711463096019369894015829819069600881442860596275426253067437722808733753923484667012657655681390180202360269347031122484279443779008538474331091567605851147519351108982287931326448613945704863935927389902036048675163428590613646021826231946699640485864166988323168245442276096416137726347811085996640219014717767679000628413347256519734551062281006962375560943721740189186506789323918009193365695031567623100806426910676400884221298115787830428053775236965200666808491902923815407229994017807919729859881122862771232252582348977637307911491976965397646093305391350290365139083540696774252665519027270324536583171137067150192563267720824446796566025704814579990785280989002338476932690193297534593767500324830144985700444461269980713228469969749095799899970533663464469551051023543375595107436245630370668732567259906527380384499532122463236682666877850580525333706258197101435705299526642672810654787513992723261691184197445529111526622758923946203270570403958779348298587919334233674739212082109776366202481888318400477471455783720805845105636510156800928593646558971263673361065939759444395962786369998304641817781298337760236253522608523794733889486936640992535079552761422118524334569054805757732240587867644823446028332632936496009898287896390593992829833488144757630048044319980280268642305463318236213964574089652723470238217970740032572141368026467997771662979805360536967860226663681641879056651939435831023777089127292250883382100439841643924751422084121045296647943817837630997804424473475885595318346507931562621979252674943629435011714523385494308410767259719072655831168436487198941035950955420536858594674910701206244966275359756772986818426089871947259134297035116853441807405540837585716235384095280423252028074864426867725206373712796622572221396568691144960631176161224962040918186493188464994017573276326474553787910236205771612300405305133751608619760669390193487863807026786851142510305263490791486716925245109709814496453086373961674617298929416104340448632579337691816379852901892519740629772602651817273427234681976201151281303924910818170450814602420980344861096345474221283198298595298502676965473099928555421881053025449639007288073208476676765210910776549112597340019982117297754673094036520316942357687755756052657373369823277170923005284241858120883408065950464528415568713577890689651319068988474796172028244144989986135355570623431301986457327151939135882058467216987295070519345048831789855938937451516628840663403229245758629107368941267527903983259845522301036909653455705069392246776435435417709144543622947244964410280975363011928281824167085702650226041999185248061840180693760862296024738454603682694914720726616315727097367383978240250589833102539687437600921260419129356132873490172790409920168581072145992374830002533252428052325771291119240325568058816136885287927419584716962688610903210852920486087683798405416470363716604625854803057476929341045943122263733924981851745733087830598499622792704832339427662384343104020225467752979957904164254583011993903362676025497508230138583158484601530569587748092309642502478035973441421487687644549945840400221425114108265249752819742514134678249226630242739927623454353608188586064943115546974295930465137921842516103267006566320720999832808840507671153344074448319236659211794159718802243966009489052622485552006026623217871743609324134356240958633578924061859720724830375897750489186092223647371918493064681721906353944782816682505490606448007641014982576569809179581817662072866838293757988833691391669202152452308817345897208240142255249291538501852232246032751377129972449259870198902852002594769743137398927277365293462727348189253874509847756090301344667504513911437753549297421221609372351563355478565739589709907010895781705777149222352013984196438707704603103209699521456449523128458935726436921647678420945847614615336643979000885071561491900005891031279645291056120514694075757659061473370585406978968556525095797962012575467031486530864227653446651540084446090973251044231671387281482673278944056853004647677301284418275132253901923264062810735957972063698502063123082527669174496514528573657714143596751921324285135860814369572950361528272853991313872569282985416298392942727981731982383439623123061539423471481621017601835946913603158126966916325216396577053252617746437555378481020337070522035468703370534867880805125348557064213063605630972754484125490422159723935730380938811966265528292561201763437481680254409377863553855193006971480309795783729787116322966256261096458057832028857146611401037832597195012267917318404934556904791132508442443427985746282693172099768061078642409973342502698685096220987967978634279107535499349758555432289871287639552825802319200026387379750302443973983998401115184223527760484098627583459650954027941200889979459151256482153385168430740749028413968114132096499895936296740211475112321950390013068086084463825520752980529692114376731755030029113684649092974182665976539882872894705362584540992638460122973775184999983968568076092248726872817031887132179902028402011129319053355388682326321178790402245823449708446450643221180969665236447808190028609067176371314103058445384077544423371132765935051790255788386994849505251241474082406049029181327590109372009091480418405519534226854420954287818540468782203889484818029737012260855873259863633240856428599598310991554690943340642254736955242050594000444092872129618329389886829933948310914681939199179007003105233622554563492219577377574417153563523772305130935845932401523406052667426609228625864893685343786117252018027683927148444123856636666372677579447729645097845769096404904047980583473501807591493721762886486632173646456236730574964080031851574583615744303958468170767666341266981670541836774492001541690953642514544111356212213456430578737482648237579198143058128148522111818707118329385114859662644655007144369691415496705456518520341540183674604219963164530042485572826326351378616377809410429530709901361655155478135020566255129313094690406535369123694089404672497076009946507892741542830361418062490564199311574783957947036157751598355401674363569269479190921473431570769216029533314649058175259904002354076541569917187283379908195202550862726972998340248857102714632560767818852610276737032740359751298704588229076268045336367702028210601860747532497428031689599542079260496143408529920589951400841055581465009996425892809013849174327801813468980989090681000892211158767790892623938935482714353188615555784047139727534893602112942005027461360848075693767308062822797260013959010647807709567117306972482634467864949573701726015632867615946609283959880088054142461530958507120824894633304607127790399036538344319777160966461138528726001631167522802260778438581403448814614407726696485369763552379897577342673240306666371504517430828976636526706702504452371281956774991969949631268041052320524259730768255277813493149780085347746102328342047028220281090946532296851917682367313404542219323946078245496960332742309919616993141715475960755758919395282507415618511397650434782553373072746822046145706942683649297052118174062865064853889847568403985688940243525958818075973953798655470742620270519609563350947359447533589166453034013285448337992432441274722458171772789794224500306940596834170317093759732200869790931926330764449048468224267382365938163153217693082379598861000911809613012725937485256027989684428879291245311542820594574971866651138316192649787560412250790963592811389328554427772878832004412995444421124393634998938855390497122803085710588858117801399823353558648933459959602415343765120421735354012182070450964534928546138943483139337657452159734061512512457672382997406854969012006948819772430369277121776248640857899513275123349612565970770210232064305128069660412732983453491578764690610537857200308271181026020683800335368604202730560994002332526041138522945978232518844429846222305800374168700184925707874160028198310927184452552633133337640479469049591942549287271569361788799563597861516871236942530217795657391782989014186076370938232601355489564640228795669580955127146558489260509714838939941128306654286992275638877867437101269931807628510356113552385042385797775355040677614516654555719253667136563884456719863414914151344449209271937061139634909304593851362333517930416869472728797597894374200952410600290423497694335754657511624718552672745411185381140848961706015582168166718513326192669762409294999945784365598643258878620603597068635807062597992053718753979890572225743388880328889545767285429299564226923455928096483772423847930168770772405436521597300262484609431115859902372474754074611321848877789602932615106034448673496079145964204057599446890776790089538096205168178659734591121349975237760345428584579810968304286304427466302479513695541375334306900576010010244116991045729420113977729807907918502441357173330136207397470796906046920450070191064675472828473014938760552121706873597020871127395587942348772164743700446401045548545483529828190639519817649603063364160710302073995445272257440191570194853732621655532037241031542116833062698913128034075733918997071549891466903540305557250193013514223989880331187796308549283329241195160740356625848612658674982384137445870644928511102816922258971132429886116882669226776860617356843779371762157103767058297854780100814369042701286019103691021045357242371942124716300150185784219145287722131538505786073557013780872821246726252720275320703553142083330657753042430733124603865041050872806740845082634752204290875910313358740578873956285068026679966078439928823890203917543684407069066307756551692711492799363590518394314449469245853758138895285305697893303407602570074317583866037358244642477800267830241668443214988520317945947835246812619111332919641534147833309116657084071676328869918599965104036143645238466863322700912054934917288114212281813293819233811573365943835099580780579956078994804293426301648121027503322351077274463055490453393261525090799144102626285736637791202287861147812617408620236026738751827143462823072933167925351337819569417695581996122069050991355185597056663355618764498460378291060915033584873116906141875177370148726152629970900767702437915327520120654087630055912527451803248690727766996393486252500835126851830531460374219974025296195674999236561416454173475857493367205377967834743022175980316420962278256482252085642696838294006302907448981543266639229331119494919908835937145931568838444484070149455660579438255746609857754726799270539604222781982612809838959673017182191422908975736246906991877712006724408263405987704588973091186527083934479843895758908725001023633595209984385949289619309096545140127859999776824376790616968755649129288719733700009816061605713169404082756125903209029237937467462087656393515121827886781987174431040948630029490855110646753170802432154394697864726959837209544333356107743348387607429108376610290502709978716167979899084298573918986214086596775267675259575079251812201434382871517335059025538085047551195718074336474568927137278697599915214306565660667532640753400276497555088481332942983330433067695337669702028907196609638802679341717812954569322414148783778829876302469898076183509460540584388350565179346926275005172076020304769295966562503912634449598275748179926847927989015647111435950858386118468377224503800366900586819235706749777174435815214156813914125102330336951009426228589653250889418419138768749086995275066447194802006910893212942099998517995626790365292818983951830295927957024841938990382725791526984464598328336126937246186566692863495584057359419199732663893346698088205304122401723255978585233498011137373714459926012085257360508590879740896340137430004935800607695315695339271923006946910186043626597974510090673247465727595846073333355751934919202436775920878896915352772551886538127829471994338355209808616070473804546251386077946845600627959928396806758368249722799324688502491867150023485421900654621798471624186968525280818301871750375124244698458532141647163501522009601069430005005278288206118082320472017699771424907650809383462992788349109760994656850632763092918259782214070773709030579815158094692354930102811851203717149920743817337715911280180259640956238550799997940514315764727673006493054966809038526739469338225944402898829881796778898578317383799126582811895456539778205199620302464853644263986317068002596330017948527213287831598294900644571251028486558956611203553002204420808217281923690958838931962769615842839131371423545800590889792363956472812955881144603619998631155309216001021679414467133853502902375521056988138618831240778322522387695950877039107973005155975271472608866075025710252888870176662241255225691778863515238310706250935711946342081459977250154661480655562290064367748638736611104869714523659608443712692753906984415870827227095176006334310599085408368776187350455574105882215956428584820285502423774331368162808639599482346868363131870157752438167986007733202895164082662867087515117716850040837179403322594410128484424379610783941670846632342505586830490892604478510654780705632759709279063343504669443246640332014912921863871397015900793437292099557960355466208185021761113491355511173529167287559465319365403167670529696821315640594999362545281093944369394357650080564261096336724460914064798554997140709509019614276590348665666737113780188353888873490749452585762827063638068338759791957760944221137553287855319531398454280897731422374047333623269350006396994287502247020161300903212785186582760518979161890286866141131865002580157001436692938201667306007857289132745853019361804402119835336532643490856864812338091267744636000944761953289184588864147916975203379575807717433386199938643510378921885791395557812134908115230282626519280553800007827913892421794699353241295588266565614078707534241857372831404428678137687248251582409833333760528419713185500446849784226595992118776566571759267618268062172347214874639531279228159342384452447228892711459913888793992034947620769744020381124703128015835444130700213339655952429594927702275851108652771967873595743867119253033129331151136795858858258567645564966733417138834990581337300745779038037308151601096704040767821078376909713007548918839192911412855055289264859537339588396279135659305493480638461899644694256255723444619503660180634766017767932143696439962618996724808899458015187947441374050836283842600394633124196752598929909915261177868933237793073377624554827040751074705268786153610676633678495671416633268748283861061144630078595941864084332518360415025953557389181059115860734888463123680771317884180708522898092748864512770364073907547669901822882067226965866818263581295094328182149967180959145449252121601222515199498636256898787181098546752198059240564943889024968923124386873283832138477052800238856374771399571743957661980600028869501038929896747811383008716642172344601747059287818912142162118789705384305731433085499106574486695337639678885911166834024666953924665521730340160186155097626358754630146959407526627155937505573360812674643439469263919594433599273649830219530768347968777567976641926534585628348342002757533138324933480618836663798847869569986976973687658784638251128837163140175192766455440366826721754176753040398768635033240030969133653290261649297676535307473295205837696948443875690061996555923550532093919958937432885542715953780946528020772483277563489118018562067462967712579768474250180399409866819703094361580871991904146968265018774702454280115136223361679842611103229577976981061302657290905138230115411093540038989569692810286467408068284416287760947073427014327944367908988194943304596379496272931955722463433897375349261250817731833178603001942946609548149721038228501841689193844589853665670449882663736399656348487037427090003999150609367203016944939564567589925498075431434711143692306069773583168005272097779772094655767225427211627023777844342002336162066330440689543240723846289334067908229253943336339874851670604632179845336045139151926419396552253348766428117265078767040120928770337896396496169041139935617425848727908933097082330592140601604651307867344024683674031520333894972720828977765619700821664863414169651695779245329831070768146572207481796857877725031701219656454519252845460810122505727551585799425319449289711001651811119324476498141024840506471800279400784750026510496840118512112634448505435040013753661133737611409435002641018301305563730780849211143902385803480338374938887305560748071918091602699173991134910175074540316285856413103021866113176044975926086546399761344646210100784692741874338333104238754692244112298746435377219112173968002301916766540267146120247532539865487483224448199090220925499099489616266527595508086505379878932962195408942341687948458833494320796702154256388387067126010808271371558982480641447690396821798159942612161263792095800944707396213628118153766722057284674208980871963661138384088230493930459674280554509906854351936542240882036076455007794578064695905659340324753350969991016904312100222750343805477655660241893402689466928078692777444746498668523086991645019344168087818618113628279529368157362170272450770734779063983437508004331294007508938184882327117417389318455075581443449859574790127273068487805196573647486692777885775455780258396978117416574741440032281378676872519818106264689670920054006753651066005302609191662093086228133248835914350821791678283020984876388911102515201711477903198646445509402576638537376411681551254876590074105585132467535284671354945168774103378185754515006233434846336542033422611453297681040278448483224797178862201697093450813077960926607419537140856179381638921909355585217073185905490434520949933992567196900488795027141118568987728669695770128144433262078719111382800184204468251872655452028452888464957182001162841472014714924295228754457493530234133123689387065375478699683369902826455998221364579665222628220739022485264210270546558763201539446279112527930726989388119337126154445021036322175456284111760579942759326374330854142971160210044452829459016492046842638690085092688125663877137276097044528192733911251260451943605131105099452133709444126626369113533896131747789485441364507093396346623612657726239110701267767205864300806799495526930499957914502778957104284187828357710676749530708585728325440024352670908134733731514720008940025774784319783161441363035067438430479864778273230184526518774768115531028683185283762750394312466013174761504619258462887322173192021655515027444281116922775758937570323950620143882301689501544044468222426661996448303954940428052529583574196517059159571989211108135440406275394249297673793387028097081586491166473980970670850681049442961624294716650240318514292323424192931452678373716558721714301689574280870229906705016754042506378505331836620295376640689137812987123254286676358732982138211098371775540488542204490069452516984489912976919123394261507163024596331108535394786618308638233421731976543512480241686895116966343024386886740840671514174709096289585761109829184581196555346019265662933442362296487516298196650073486373493837420509481951927862549270168518645087415649459256941949224379962431740681615597650639380495378268995818024658728134792387234804391813219352728129700258634664251589414436312949793861343914878109184062131786972706781935877294393598372781044359637471724109820546208873898275696654984514080795233376087524153685969075464938177004065657760221338840590367592421943264685571962910067802819192044601928757439307902458059876719969605785684067749474421672465440021952810555180674291796392627538474787799994949808393067511086102008933897847353313995359756360837551064316080078813550899925395211698068618166835235378200677206284864504882629690969231117324422224153692579874264780825023212632493060244563449646711667338605590204782399427002491472988856103945628312406208920746971487337515021057609746135267526973518408894724170540145831906011211611693940158231572503568181710885044377923030389756357650159706443270754571405266388421258219519080473562065847429178171868526104910695203391384043333495537540646232155374703715069435731130011537654379482109517579010400643335995174689743585504217698707651883351669790144192243325909292976582937912803129881103830238677058738040850829340821746197333135413238092322807772630230014648936408802470903532092891714288011777414975612273993755083684178062807135862404785543872609707999830158746040122480153155328208996212982447843297511305440512776458843402662573783209575284979910978188128231079300048785377637965583931737992642353421183729447640532517280634466528219122268748687054128112296607231392429130109578868643157519536275560572899889361694540288026129799690828823106799252894343135173131421206807170784762298631361018148280832108724582405955747659452222479324700556186364617188690173618204071432233105912626115834514130352499121830164730011552406583853339574963717065732586955649780421386962811208104132257449375442968335603767725772166899878019745819300978298070909582826840106776605554644433884777244443833483449476863003320161390862252614254852465442167796905592718822513838863663150135055395009658762830481946508292415445834806888258977768921085395117837015494308145674180758218725843513480079761011074728540398375686290033522650074842318337481688756065077882659731506326801445149931342194949111192879449891532510034387989417542351221437156298347226117762013153538073887223416644337726907009175187455775162882545991007403122290129261464241864795625061748271930081192090065470552478429258128065136568969910865197404839477975125748698921673776742516880832882681077442870862374185188906951034128096876087464232080220733238151850218470643640693556050529424690196394346035294469038388129874916606444760507568102549657043420319779402477177163753619103849824864644092280306841940443179014980872048549369034957532141798880899181009115902983162516728245056621310330436668321491640158897356679261574990048613151895697234867794102568626275602291215500396798153189307255585201763236832336306933954784524991066001916747458235046734366292125160464484071465378602106977588485597199196996373603274440362305226317406724651081046515709798916048955006179619439571326243932516580793218878075017181702491207838276523775914354691013297696654392984774768834274436529727736630296800093419390136782641303953091774737301556034232402991788571921229459831094969113984427267696007835121131374307069152973647040137874907465007791527882375275224306534138979801743329781914860887238479924075169719664334691067632759478401912895837647635305106137032286576446285715969128526398171298458862183545971002092380302877778515498596245609860968260816016231685993027769531024769081125361004745511443158312496834048733260392146192336162107762041301699344934772856326166671118435391843783903407844141342011581504151652913576970220471094429637397267370563526438580856242943946927980757558239768636498707973354473236929495903621222115649492692991593067535794124119262018268293572718527098090497579477792261286220002491481595215512288465386207798050297114816532762391337578363587469843801350823595610622250190877457650003209619387540251316931587037791346067856302900895113896001578935026807377835461073470308048036238960208531032176697481349353377544889660536000019490852992242849305856552004786917415285992851632823310523812422742461242734956520619498557429140614030970116213426641545245321080074310982000405191151512662659841753755945096343112656041228312628663652355555039965568519302442131850091625901204310204384369873386811087011336900361646419623814140860981321308791620262296628063953291486586234128303361491113331460439656443215667953364495692525466479450764191815156619804958200844201912275738592757313976759701063223939814513060169927481322710538264031112826176105111318528349761207020843532881382690128785102122587966974666264119597973335723901302828314011174025687413306676161314292595907291759784732824710350355263822356050490616573503275828226221486584966244015943659896192147434872683865083958670119720680573239531518811201852132158406564786915931047643412448601593780020176190610690655956497758078981730692664533749010307238770204835589219338286677977720140998614737552067276035886306942408717622055266618041471284449468019791766963836773132823336473824316384278266635838108217024243621507944211142862067963935058091933134136546059618668172892552971146139628105335723209350800192976899116698801359844738075414573693095509277632023118254557376245173576998717391997460044209305853118080492569810649207244256594388111744973868654153714354608133215311860489016576047664696117543756496724836667103397968161831440383723216950982798357415716779727955866685796373202043458724899087031114930886349861876136258033534134161775705497924289299758364550499105504857560609458077024752187576789368614050332577659249586716451206064957155052391891073359515999701442271245135142515794344470902190374286845519580828299208360907915753382910194431877765775859580888071171650157056784128597893822101248129158938074894927066801522318404361529764546129120067086127305563908127311446132521564424151100534855968034085981174166582010926373221779227876243484309141703909386749357436121343954902581798566819585130893368865411988485150941450929835623858474190644813919890642834743396532909477573489481805346138070441939427524242524783031179896322235328776456949955891837297079941554373262764239200679417963252756902460680439231234299573762144713101406563732306129205622463065733422641247429779606188020425607542050670488838633287661091948406497385634807607145534359114974131997650388430724136822750379556422124028627473886149218197952166962437221091196166088521215707679818247870190036940015156524831972579087278025044596401670716515274009735789645869145193941817829770590075277570452388096865037373548775789519969083208727221971003666449025884743323239683132805914783315424425241595311082614094441067538673854058671145307939503014246550851425318326673965636512972342928039138238514517998351941530520477271646183396374751008836202118669669443114801594000640640293935438546442436845924831996273555948229128039001736096382054308251907964923588147917947277757717267356975521491121930797512234392101813424855154468408274762544549469957380266539376751836321832114308397921342554880129290834094486912655286361844988866841072615895362223538389799825777374824266788220842581823765329882258088193708725613472832955717494493223304945041281598891767684688844117987175157961836189069497449582052961769968769271844050296068474594542433559433571904426698776448441161326358296092241003396096664206886120211346600936312167938051563506008423069007802206671199393068685253307539386319175489878830606132793956511113359572773143625079324589669582528055983449025039267269892806024915824452865344472402766186010134591103669919115685326886058661853719885427186339164395783366341826012994528620427923081062653996917609298255639958129526636560102264465111792238416392769823993119144956173289762861792162524835244042920626291070316132605889289239565079020793311925520333852327234378635711426608654443488715472416310631110191063694669565589645599381653213591741539606825327453095473522180498672699347993184763106896606979585140807212466620698015548152288694068105776752258797020207280134062417206029086279033386505434541370295017070112959231271149287259931023672469821781137250654017387501688127319040758822287144209191249589863179981989602439763978725775673111388799256916514393926981259584088323215512247088287082850454786512078385385568187266325625895229223944521757305181334429690959811608192875035240250776098010238707998547945890146287257189192557504837230978043760684838659538385462062226457890435398766754479926636563814404831848638043333384490555666155574543820534065764585985033348323793586073669355717882083663869222678449141700977504650446653926843068782207708917070130585811879292037772659667061561155431889219483345685133112154338468185567775083002747423184658107235536639607330055060018515560897811584651376768038565855320747481272615976323894643053301939072535796903260182023575602116848208121522573770898321521567339903901598871060983532034666024198231731487679128603840214814497222796764734115803296937057155539018867965554778993219090259830401731885184352421484914667666561700681552086811068274689920175727038984281969177860423402226746055937342205508032208509960865177112164636862189899340812229466966255302463173655641398354571516658684969416246404577462131001863047787782202543332149752507000032648224466303443178489049635947653949712979724710646605527575442949693165885566823712302683049363396423188287469824041556125358345345658308329249414391113618917240059084608942688798409899587036998245014262315819628386801367485812775232025780557112181289270806857017508301201504930395299307487895911961668908314253642554851083429507479581918307163968586948981103289666351127034606001482926387748584425837461518783227724612863819385328819096283492445388025663205394596047953924899146823348706060243623200338730088509110615203416990465831341111748808794667141126095015373801254682962450067811268603771427082758783789998079819296721257925749687890587976339532130701092614599395574321496219663508798578692197759744430977209864551642107559483798292067584748535107034483283829615615623494579996411413106169853365395649563304542754323830889661756136645491957078215698491181630475092085317120126202335256662725110507304749434894372409374617340290936751250523450042542246906716664270374603252429654506692930250609347224172261104987898776360758939967609444241676514485888407738174226265480374507293993753084845514464622189324624235403948676689026630244442188823786119588753142561265153729106261147949115240652239110025048024457058245624837748321396016184464967268727814820466856502999926872296344603808393498968819785170535486129045264955083572934891997007330182539317455100829355676117000857264271557275081134490540601008394980067577903052467405719008697906779981816617319194882047291456193452208183265378982471783464553763275282219434138558612907045813344090652779625920191397443026848662442289784149854918556977084492750401063410662601735602014767063182472116076696494846849811932088878153046716209822007483469689139729906966671437970915639550168222694597509348551931159594543730175578066290640645801039597819461359287375227989735131238153268135621492235465576590740569749636360583907371253116853210423003083533663816813235705589037189485117000928323173358035926096490616073715922021657097874431272808235358522287928912754471040180270870869534377532485733500305647236973872579547617293507008893401458709000122872768947688697348460952585425726279210064056645279033508102848738116161299927676063289161001270133755150316634384211155081024232804742854445167748341372415671126663387637677287981156488628355240823409075995931471302214524758487013068072372745413923514410583300397653517317413585185590278213332632342894808232406073434643464994197965104638192325925785575884241749618516061242949679525077617311830509486270084579056051742340137404327562833331018889269912798858285231886589771620482616226089521184760684086102008053820796841502962482637858884674085747022720696954632642718815946994607209950124831991014911149906320700064709532970436564280963775429985526337715716510729553711186386057749103879440759198604212498768935818271892624017812702528878390795581264201543122109866076328562031271881155881272334030647172612320228091118287477913331126611935838010464215485936849730219870555215050453035707746421444416109278760427618806041246972905754656830275823851671946089787536565955287470430038683947309205382201259415035479269974483067787259486860615772756710347769477128865393780098584768267265563593516306002348372353425094678117399261066582321064049018873431436747947617156173876026804816936884792711611337769317544957271408967483210397395396744505512054625806280001061865722465474904819633413376796371524319057604229053494572630624354770980574182909794979951212789308035127548688745651875483111556226593254888842229756643262213256760115686510883708114194634813210643735458401973929063520787614647160210229627112258670932997403535008474891166511752649692943683583238101264073928819193972313933874135081798270803269225291004544921746089735638729022299246687720122887950137296176737964734722629498287986134883121677472098333980583487207995894253781631243854794789182155234875717094987065142370496891446923670345630693976823086655567821064276872284315186346253943322639426421608303399949677857983302280196818053159262891812131023527435594292039346866741450042355100900148169374589978233808232875922946167180106312599672042382568502231322599063324894861394610881695319400684119006968756473070237581528705172866693843394671103467702645091449857435503046725642014006486489844562710936271768205019711001855638708493515496882283261870457596755874111901348235266633483387454305494646406851110035079502650657409536000627761350381105665260365035958683325722793282183021192474298504392184557356553869176316343095072833193206223067757062201213429223929557843606169594143025614487069152678322130409525793656212028516719738338818054459295229410084891244659520869989549218231910097593777587437383200557433450616203671455253441856262672480549512170178653277335942659886141620590827369035338857311461597724990135224572871778302409511645755683441007889180898320266011258987213005881203708497990846279842475723651038212336561780593571053209042040599057722095103436084926743313252357859609594320014852574487012060646971604106205713749532017510217749399740470506246295758444379512313506992230155262335828791222932360832489044270003501309546286687442813227861397921365364377057341579081472723754746371468388281784536471784300770507687091470422528034041866338692316673674008641388251543935625173581900187500691532946990668626582874804646144297544394809494946214779044685589871632007084580675857983941492137099661409409921994096313295382924066095427466298914174135145653034102728583842674815703201144050680885729989538631837687397361311744412572453907160153545022909005782770428607175120665783664699613851158750124445304595615996210949857105546864005570444422800339745159181266763551914311295059285799513038943401269733789550756299724295804232394555958581637282062862196633259611243543639669084641716606894137356924136844088848412807462562966420611107780464070221887385310878546844793747541276836290611581705054376922298626907817340280002877876309284330689275292696019871801972953548177554700629418871642893133448006872655643984658925378264545208553098330716853638357841473759595180628354536814420952462183941292489696674940879899386821789882841540406382519844222800396995769416522250475712513786462231773669851509446397407696504008201026987638090082327600410943188253217855563876124058275347943135262483804811452566726554246188154301261610260354590732122316029286277147188970883828621011952404425654578728519425269387589885469836811934814128387213766851623789955949462865495424073320230270149592680009528133363486487125412321929231935378140290781836470129097942420364288368881221391729739508225173496459630319728956759079905152194210450916597717277555079981671061184395400403458896859324109627265388348509439025894018066411804409686279968836237572763529897988762179176172948446979481784978565695937753906844843604764065783465808170916704232807907395493841980520692916284210305341539521227499952432638046591823635388859932682820936799271255373384216534792026974677258652306969799456340396016355193388866635201271465766229134506083317103872041615279536112825179588027386923205539081658492927496133094173726229350939163229727097275641326704842816938293894812450558847176564376952491393888536623977107828285561490185829326343914444882124773507226418617303433915693437055603249946000182940228567744729605944065950680151604581555827540554364536486890155631881304417938020925933816256588684902446286212695379972339662213111717379690071914219311450342009700064939175120357007942029379456111455048932994667845913750714488768825722994616102978537243496976550114600616709389556205188129137195560286103885947484770550169275064499203120046839078091256805504060063913195616600186335070736885171064334739726561675313399181257735133452895363191696546157431136548228854104271272852659641169056446499004855235573021696492634853575030753984643552539875829592094833311937446966028565732708820473151245977332583564109349652541536070071998220519235145876121425100939375094391475792703562962390933971473830957413122782232693135681470663176689772603522634687760578075276583789720915483159589988137599857825481631942164576200761097313820271465027020915287063496816428409019871009363906268011732524990681962763471023008577910191749374139682133180062352907075252122326098325905862439277240196181085093744553833913222817591729231216251250947272644638731295848682239682129092688932231539576995638915894217400898694470553857260403299655676931680035973627158135676223349258690824243182112674649981771412583166987123059728360281642587537154529457207980664016160631138957205813607117555161965459548321366808402488269981603608671288341981544368249965967999339157799789710628594226428329545100435289989564164531626442175999266554414090608154669446930361088806650030751099691587483112095756053464157852804342778257329880033324027959075868423821417109552085925876740348686516855291489587763183834647747568532902321486462097521285701572315361444210899683890088637025878006357712196952213682027662468296097544578532856910035368439587729385470251782284471549928405646979842821915142933748404434569740748867051093829754385369519493811918105297647128117090431831035617066538852824095598837959369120636326981587054557755427456914456825779405499250703410413427559977175277702538115508738921367070521730227351189960815817388381375107469491365676137793864243289842744685810135015665212454970912858205074981577803769298425176797421777629308113955011649053358081401686288283439906204327433979666630986254607103383053855502678674026344615475404568376649815215639861700266500969985916119287021665977785407031245488637969791528496698203903583629870665998098482364173104000566276251102679019326144770603169253706575812953643276532911179359142218676232197402468464513310669627786059974159891211674780469058600356389174630778421692085454196091381477164140218597408594902590572118502395072881880533067713753823153454622065846180247758372202180420592754299039211678022777503626451543983241215720209416337453613061265942766374056989077286343494425789250548001322128867130432258577430018776881520263077041012404077380530190284805509832970664658734545680803912087994037646789190068106294991815376965926155307492489067800829939446343392223280294966695496630821169207118851500612127707173075634200922040752436830612523533204279200376451651565599292395854955297054235439507272988999069603868274872724210124719689514304814005280098711743323553921707807360663174574064843714188992220931033389765850651983097801231907181528396332593407160587459596515249934815893255020928179324133133378991882360591865640576012674649708887129025847598088315665738885055714266589804844581873193897118083620559343927689330405766984180992714584290573693119589356883690135220140553566175187750185389379058191817197524116950534452584978617543988573002602609654174924895069479960421380271153974482380031283987045538747301562473611297025316670189119434657179987951277868734812309106511447916430193901024442062217823268706958889103137295615268594957303216167935593568147632763669673983536500301897607880608277720906553136527616677318319215158430275475083192873835556217221872739936222681319365905202128622477029859035977631693597874416407896321766996957060713446430291137830695740133127878095318264626374322736854504707367060982880053137387196848804159906813842514011658182123362066546837200711173558002660524474302541221433152598581214581021355946305790354500944411116223831238008817303997353263933396980758906557132714630448240772542806445462885501938973148735693838201362637137048989971009510646153759206640113585781321412778292767361602731783861790705961339560609982431780582563441278703117351679774310177759738332132436195051144037086252131869830869118534887090683767577321015826073095248078156710695762591235752489218434690812663225149572596236779826703230705403120934286082035199843838370367405108364966313361661937739785375031592304925878503072245914830711027811648400910304677999103892019232987337258879889655318724188376266873433515410212517380689154826554786600245170486210200731661577644278914732185467327107394098823398351925904083299561674695294707552908627846029896970288014967832615172452619886703039125284099243507131297270366757297634455366571917613153637059860862141805415629181116603123812650988160733248776943211823668617875756973455636135065503168740377366530426915353415722327822525419481835100023316131770627360400618374354643818995192275812624238954847331438596476633122558630355726403084107331188121938067295792965661669768017402046854233969052724928234292530387994983671462109528329870773963998282794180529422956971899518903912424945572010047910964731502822500934812277903273643321014517484544401122048813373319810668630478115405815250615650813298713068071760627437557212791306172417036981673286006809828560736892209713943889453837315129807680955123345581997110454557389499308438262628962373583487772610104119362512466593297765990937620512049910647423623074438994711701202593952499244959129257379685764040662109600586629933424574917508512818966513667052398682557315260739345168954991875797232352402802845183986629726676172577440659060164182608112408323796499632714029642583632967323517665034481538316784874967696262033604595611631482045314632762121989395830047101057927691027785355274107888082950534210659102591883040893158283223155045822431874186811241694257462121999440867867445514726312893949747249884287428570134046018273995740667005991015000011625644601187773758690361210963120835167786840709211108452496536608224505703944876348805687124412770364849976419277887653776289448727903105052607595219593754112436267577814079819534147498405254969191335230500828626352195896935283690724946513119373303452877778990508185058223751954091020136647240865056767035647915677861519947968077563552652881469825085506741233553584237509337735037824446856292139833584578325116130105020276557761586000821521033692515860590356989393163416784546194916371960727788902017752549448175016051041559589435387981060197903577663493602663636974370606750836644919418397354390349240881059725564600423670899672363663371996686784273332634585165441756951021074935434941688126296692162237820781215136526042207526563033086372880367906006638236042535231720092285904301565757834661630789722811929000140675596722989484779328911963062878820294444292686211836502446804642296595307199309931901953989783297762131322402014516542153944785440019654389169592538330471427224833646136415912076782899722114846045566494042003732531406470822897810277223239492716759895077952949597684865384979948693466286602682269066556402130431480921969427610106731852524821669361665848251785684463027866081183813478679773689525784572668361812128483669166457388334824969972599534568378480439550086867924132773945809411534706113279797138480419027665894797544009081023762694247178261945914409410037219680475255493602008979417510365786641303785332970347566137111463529682908877137989747156224617382285029997188352270301569868637358989314805441514212729464621207117843437689114326195209651931423059636029420259232847248221081953679779263677923343840003499565875451560710339167812358071484498857984218857140629779404112027661095206605584412140501430643498031474876886591258512020001110855108376046609364512949829980067467183544747281716314360365664380498569942533961345392292650352805892287029331134851383238715754567951925226580917493047906543179520204410811134721630969508141640165960981517642492464072282533670817487595256977476087850402509423526839108380484044640468975879203138557441765438919978414217614893479682492932635381938672465976440506754510200143497805787820896120207590248183577952803251356687679816361466646282047293471303726871430810935273734179900666598007624720462919862115622570961089720920744994254763452778623302980528279900192961482317937328068113474440026495422511599050517808111624490940933126048651805549390343251517907962755183727602176982160759076389630957493228055773408138191300304167548422596373470141615015394401922641862040779065145061691676469961691196062369982468667666351845660183733280891305954502392426432515935944549917612025149601362501063283356857697817634410845679006390894143335750568026998062913729833918985425891354298173686951333944703193416635177498569011088102749535861934229346103945810581759124941056311277123990437072169815894932575650258852115708707083421537771124458787281274597294094392938944782901372609087303172150245211169912796225451695693169557141349829298491678357895511160448808518998087658934928681899124146914438725349222448763305871024750896834332888310316922741769412011409911833789694203806714158197869293932845509423785729945708314254903522028643254173991788098495258135054801385959319506709302634180210743222616280392299270121530077768740858438055008397894015996088340796821022460467914705136470296172293089806742126489468296307887769315965771032782625537760911001507657831739053360510388226682830278646219582977991683818972367712298022536541998782666122565184666744601954532871574135607386844045599745714851215056451562501696395442869344586490529144957483204467624771966659504902197492061842350783438093273925367698587899437060935403734894836495907950845339917868742142897398779947688559523370759877616084524204476930056351600920249843669017198037705198726935357094392011477518000132014552384193336074494103855702965615736679502222460876181803985587627284048972158280499911851328118581165925794619863187782141841446198896819071913356609689341767921821807739505007427991277502109076687889117533906266105491108763811787319285259847393554337693134873085444119987521805290638956131841896376221846168664998751162239610115216021003656474736722300924081359169781634225495271081004097792726169272204172519340961021746204576904531205631963288798191841962439207353424833203294930821128779427266396052906972213111904980520749452502886935501551395890703437845638901085447157613403737427248658764391957039249933055858683510613228978279183932941372040402911354994235075063876430346042307301661284425382896096595778013808859971050079817153901453660174517845529529097002439429148249008538344590550333989006045458648673694449729924320809869409684914980050105420961728418275493663144019597533931839881006788528635380216957811753094541856505611560062616617309635943539866451318136788183554474786037280819731438009414730294754397274633547083733211416337310444969692234146324009602914656438537755068343712406120209536558999402374893122349689957855749036853164567928756117153715403226650155874158460610543499668067336437652396520304117702316503708957684141731703301811608179784330839258881976450385086830228891674567811169543158909327415332345149566242725901855976317877252991060004614889757267864226731612427103244599214158802701949969991626631746083113431328217409014650283739031626457502610470756242551686409078203020057493225709509055240835360372932342526839158496161147386851523613868841215444160240724423784331894560431217929982634782441429699968903068348302444338586513195163704687895269995265897042951108615841729789060612965633631268549653262420391840789786033040141344111711566117826806955255462012130334669727436550041256727962513509276833676703447739262120360512777336462339051761864025543348310314393272671048290031022119058162074304547867476801389544984012111914150615099949144854741008752079557691096264908148298884421643435731649405058321907360653104510218581651153126409425038280877490345463483785912075060439039809098815982527947040987839975528907715903017535395056457825696885960973045455563953190622013804480215835118283742751879706659362656146216605188560602533642895002742803027694540123914952112963527988064148515509005495945270427906594367238331483080725594847849396697280915030456852548767032746611867312332941897186539488794622324244466188941702415834437895516155529852850751589116959755103868295119201844799851285269794548072434107782383792688262904577888099992438497241882356808829729701227765554612055510013537446415520745151065601443226887775390682619219183515137261139466907714977264483018556746614619315285045930984408063012575565347152891819463909347360613920512305684141186815062727104725529395818103364872403720163279142984244195039838584384197297679189500234949516678758724501651137568041515288805021268548732467542417199424247688867241448378341102152819790349915092493953929153417551266880862768021162378691266103643612680093567607675578615136906713944802473805519442499268436426746430600294965569862606704963056921532233355019021832834910486973179417452119518417449497557263526782178219680022268971998249164378924697224770125112897187382132510321352958797217413079756474163613889789962015735816643735130759964421071380897483088780659469585953802296984445567139548955703896747286438473182169680137184552707619503997589855403842598277109447904125855023813327933056949387398909687179838530063757844835048775873306101085000878960272871637428487371719840288605202516829911775701638841182869661775530212099558292115730223359556668781196114161934336045329445691576564895005658959237021616999897728683185515799096015384316740728250783329723575253075747314308350267600165809668695919293371419936807832687972324058115682702157142512917510188514534091514789428896983058826257424004747927518999441701783716817644708829218612063731043411488627438372882277365444756918676952699948414577850754336122279839125071889026398498648297997605245597138283835927444454642318729385809875557747912427176200140190257576052917123678067077518990829480785252397164654401321171174190650885115585259415919817290369920863833571787283158286838897729936050687126086280806984521035696430637820976946951044867282804695709029819340958267348352342054416278458260899642967220752095880545189867503691781203437035457387393924185570209821329455290166987760600082321478469069416236568356065443868115100288850150982113273655299539192237343241319451319869410979668869996893549495919110464582293768836817393315098330378059228424372934067340635613154315445611003109728245188932666192489037733081395626916639961898133428228751637524228604731810722278792743215572560896587402017786595882626684878748169636515558016837250532717725234498560727112322440467792220133337780195468839905088952385980897532577931352305191413486406493726463296799825076244053732453912942078415191042804348929842435858903201536186463160847513143387964218211323084009520141851497378397231236319649147878606339916743887037533822002027513868433326534860525386445377399355961038289501749174321035221009170120188563869252282608736719460368460944879218022652872618969778717225908183103114529816506655489289100979020831474677724574464910544435652610981348983980026086826233158885918531620681779064430137156129180135145334384038358898692044947457077584231077485170818858105823666958997992415567043829625064099877646161018286318445334357373661153863486729320703070144399877230714181750482264175670605227681410009821179753939133103411259591346709838389099672971484235547395021350331948929352074930451233195590897657686351087004337606085159985803770614043648131006951344697364632146872901203013576275869322671098200370181170323064310490685896562744461302470124772983477457394752198991676344657639158539575052970702047243878911391826492664432531180963785397288248474695431701081197199123099587359311099711618588874405633472915321530197779018830996747228648448773690018870461118798548818118273970000946275658210661203448913480048457213057562741345789922961822000178578607804240277619655544673261030686616463742923038241001413881427079193773454366809242543426959156394389548720641677521730929303550556830926975823802167341476792039869871740045496904013595162659441272131481914190331693799200902384404933778100872270764713026013103851222349245856608029501464516123755662002779103855657895574459313233079982133089433580522359625437504906621605452941224974808240271712409244158370652611368313820220070043494718883812836380051250261585163651646776297885825542763439349690808079024637162792715901824220682664448388395943322582392013341706920599723514315786779692393991852599636713522491514756096127568903478169035767052583441214666675141937249192723080597727100004295271873398787810891040771960231679897743523463958517530106276342395198345006476112256250554765820567060415236475486851935027899294095828644032657378606936268750529899047880643852382760410285432383393932290646778896198197596976352230317439701643066504153718795456278325592165692155677648116465219690741319166416100984259349957363946712795391559531033397493639361691769223880580687181863005404068004571603958917947541473159196859988673522044733929247232229653994956437570818415146556891420537123148232107124520096828001787260103795389180914895529825466855281875931275091542638856751537332369374915989133111754289538955961705898484494414350854342673202771716194700485040830262730541789633059039175123220190357787459784250232015262443628151753195251960469556307538115539833167398891735644199730730897195947692337921589004771919888912473787846784359440682682239454121809042958566254713823089921721294063338455599820609242406927197758665206322344841504197924680807326007204529668806327507781697545125287230179268283224469833759734579397112486635260989466965633459682040726101408118642818634748596287109510795280547561036924137034338239401089288648807979413881335471205333871679321118761082261128626344724401703558180539904313569435242274593895961769821847585965570945871690648584174279369328451815918795715515760428707815082768743429903536755333490256003119308484246456285717104046665322335547165700120024047818691995720617020103281681429858661278589997781232276832431451279400791885480725995822732246358996885103745670928672978439048107930419379189984957998423669570992759226503143537834779134920462413537251954862455860930868032589711973873977584207759661451047882425232124857774518665421104488330276037732547805104513188280873448981763903225190539352207559346107006913028759823406623690779522703776780643730535206598225832723061255845152823388255808318774312172101359648111560718329840469704869214528686622116771321914016752027325461337170180933616044078710038544008193882743399455667411993550074523741542450363203116403017927408874917911011997198558451895557419753176626277459418695878045069134574180963189076154979693232510269378406416065300291667765002531275092929245398560906359253129761869027581178627209793159074641413299286139480466118514245464046055387194629519431332907251655700881792348672330920710796927874730585637859829843806660292413362688871188028794281420306738479546656279817862257944185000773886614046237570608139666802411776992513039338236817833934043652193153938051882889919151703751640348336021100135273924019914393409176506703910684084573137195331005274112581365387759168275165136095614644657327397102024774524833310564258167563076648339876526247052522835244805526305067252057812560994847063368470712663839185190720379668039052393241087318285865095165202354794871723858443730097262493070163964608342826115093204957500259268869422715717361019780669437505479158169806491521267210267777262124283808482439885470904581544105506161187060036408778190614536332964640677555902167546986691135758127066713151767393387301604184188510799934586029443642332694851293453697947808253808459839011060497451672143223599103820190302783473496125419226716078909082137152159479625143457465959296611118117004092980330801819278908454731201795595990579447320927390131919273899677259735012736857013963856810989600816814585075228896778744539378836259173390564151185327431908821713970286534602938388351666959916075122320499409018685568149206701640174784887564783760519837945891998628930726959285192444280519224980223698002179979380957948606655602975996717438982441571648846527103706493921003172434350790945366792253556562036759347828642687481443325304628847317566591884037102745974403287741389890450371601420488100868753263918165677460806027959231620552810949813308937428189375548040648049312414248818551037483866641219140266897925188639601846149875995191161867549713301699056097049320868528681399206134298336245962702237623526066881685796019398894293786869601960303310345839822461095545141173800187387533122447479355708833992824338641933873832099787561941088606857025573916152667766276772597486090776006527329188154087480074287532008878844042776694702493145085925919092299480191302674031722847261955067101335155640650557341951206269691053228733258513851946874382634698120286178681153813843387317965291535583782275155749665501409902712867072006874654349813566419864943172414817383153715824167826401398754325304688361727861252583485353224532509059939493932719620968644382615447569705234382112252864242897441037500230749853504200179294686029093188003524472579499128627086639709374577075883812414895068312968495335053172740825541402375475057397198889308194774148953924985201474004105178721555593952777789625709058264567992935409827518735676497714703028053179044815055439890070457214091569613174200443682579808750391958661050664371865387643831943661858581403530100978977945680966842640230202228798575985608226940752226249207669100787596414525385339037622721718330185043566015825168000563476301742047807952797195765491925302077016079869802995774672948488768672928385359180450237364860933221533415546105452047791044536285345671622764764437923521468911025986548136492511209345163990302998203518614061659357772265792151449317364155274243870186870527935844508890550724904280493518141029996331069237639148020107630672478232635263648719020351878037776538845287937578375079761533838735677962016147353259623694442492183984261262784519804210584502373869672222290165533785514007652290967416461996796512841665726277438632856864462730871078883867566027364354644504287482066524065694198187919123735256062755639734853622987460149677726693871652453521839085055251188242349694262182224550559837308100387942718961639518698106881557679616698595846451124018944225031603161826957414558205746635060586244049040384368801570620493273086259693095327817354151181224978515279586217263271949944428341655635311087667140297215810619204621211511053772612997079270653637747080267153560443092642865023013160577722693236580758186419222299270094470706173228731206755999536713645629105101392655370207680161549080546329857481922381672597323707880125770572655136109794708983555058047524480224329678030770519230547259421033205568166556776567683757775033535447145480058904761115337481068010517567158128571426713764347998618873601541868650674436833369831828481086680008962921437611592802553590074766092131412546402151804960152063027845500176677492455343498108279448002570133690170156427060811068719695497091268066030463099108884937306014122412643805964401306568551051196237514336819779546267400002204307034095742093919054828226307850790977344715477450095471976385009952004752233884438024129053652681329872347116237000164792207623035767700090790326775314461325517060376203311948245865262626373742712652611354318240084997419144479830491669934888951785083630048506582386059139128569103846276526008782356227300058138123354511575630044760271238394682745091282358666567431003771849614771828000547679374575902642557793955342687215923533031218445650850930901731110068942325824992653042521526331172606386234949371991864753385106731933438882788930274296179100318563190217265344238918844926078453361893650045562586092676237549731247471555862502353039880700611510596888949500052438135767664061861826859367073243802645030625469415056733963140479495511989477523249095286632084896490776501116193890286028107220396318219340984392653187838997486168267743559113507698165535743331110375997453759761831203349079919155438104240709352272103192794435199520505552988762347599119444770737680594762337275656272681028198089672120435199263203853506290008990825649091853063121692038116711821385690873349954116402474732943323006687489798442892573746325820713086542917188802642038155452716731563880471780521682613439953826783868771767630840646794674102246802693573940821452857768860009492409031620402114363333779776302934754219785457195353452636653123943417188670540689466442282574208714951819532882532654674842755879948302187571883446563034174152362367454242283217908364054957385991068346789791180551001593002895229161964754517797210687413260470559214948777945585879521683715494141988857099490376498476292491637521502748350672786903893049243624341618049962254685848541279730405000802315981370484093398001164938045159723916063147471618845679281899882812689870930132834873377517050432998873843687809109430242627682310993394687066307961301810661888025692939097470605790011815708606398303551011393672443156022569109608707686579233056566582402760989542534152903346890542382929603579441056085370382609073488126592203038059339546026845864700324275305411490847383811907624759324553149012885712420466805244976173492620743775955602758507603580810080905396796430962085396380058019757469515163372997273051687519551610115836524019167469998163490044266029036091965552773075265568765147261001667941747325610155999356536511974223256160686106035129222606673421577499770802396744712578306248241547711348108943491113593532179500658686072474831641787112529655614294248040718798690033469263424032580730136153411684094315393474673452995688938475841175366639699886836836768422205695071626834388168392658436038665796625730246827195249747382505244156582704193453741982042595429574527253805336379251758273317489223303724785216863748457614278515049703401982811955947356621196831900347378458254175415243011951441610537878565531191808174823117296483305796839267901939532089397368646662217213024547989435941922034592622552920359470953408937981829191319183387209425624219196224456959630184776459429417248996089572107052549517287246424546286887805699509348813957924928881996270450997834943148554604082097795902864775039787740648664174326984929600338603012251848592751431076342040689487607803000996993209435596117101873096253983990443621136246971195456900281949816576012845350415970767469507635825364006070515764666553612268811255797432182314587602742855465055201516578797755427330595364352686823937869534053851520295131841597263357309311164657827631491185982398936782662782416305796462138618950344549946416494644719188379546311133495353635557253781351496133939672267163256154114198568660217574921104798953337356956937530173822130745355935364393292846505473651912322152266203935646610369650920627202427489903105045216730119844087075279428060219826371849512964523950773046901381657397931797694174129842507144818333913190166325828709835208007057080289570616270509361338666280437875814052430301038122664706808958845477935265724012985993533775658912171570876151686963667779551361483811148802375001234089654512581922581940444608470253204205572832167859058598559108161965635994601080715701374501678062902783780195586755503229816701095802360955139215566651857465601559015342004496559083508612860289023627671197810300615378034733622035746947764727535036357626855067114280643159233356705671808902219060638530349004909710539196673818812924883823230010147013055583026704218229034174790290551021879747207456744087135991063423030368856508860452917637043396856734385219866039626540564570618789113421656505411446480239819190688699032033825240226152869648473481821324537462870732056188323543059799121596334562880288289963768429945742905837342641846747084983923302732260389595867889002866128195642407549424376780629934637113575074091369145183968711828465670916577556537650907153251258377881939786218338756412486581799022086925418706611206628660964214073412398632001223753088621888567712681456595866758093171449019891304854248743843161873388059653825896528172966149600280446891154172913593145569953701504515963456608885813540973239451074514990455437580710973172028996749927565384697258025512513273114175903438646360090867743766072579425756937464320703455904070024077260707360992127262826289864248841156463551155593878483468487039189915279110991698936734938643813004471282940487740199669705471690994556678479733442444420563152087468549037800220790968029861417038185865453062674687334480467092363100367866092439906145112048076488385604394125723674142593970072757945876577074105784293619994264377790537905940149314563952368194041151114925840830798299209993045041840756327926762825224868464109530581569456433069182407108731610683916505019042320636697960574883864880827629913183442036456972004191135399947264164142325531186223891378121885657023966971225168410562595350394228745550950208302827401634338844421042182069984966865715702994517005120027823177828410043776405393674191235241661428141967143780557052693510374364494718066211465925389247346445680826847959647414037949134856487090491929400817988751719073187693795521944962926482729569729481720459190492267947905491122089689615221894343126944693236510930082641550110608788304490696854836074862209346824166877877534267435157175069652113890243396444852738862170227861928288861421556911268593252992440756637409969515018969200400832039573633195153095790136315855949619823018395960604065906789783636152514695218587113915427592012650585308538856360685651198707960360949287657992314693125403061213476813628077929258691473860249389713108425302872468730603695036444785261781333137646964098828264168776215702111899917749248478545211031797559526750856777755403769743948901082292541105553587293188324820552834561331727109473409944797791956757874037791944482679192254351324761834645146679193686344544676574352689874032758124731045014456555892273004909120813101295860521516441986828528594265008172750730029697436658378519410969423038102325543051623167507156630802600769802131641920875447852193756702873125883801209635363312895849625798692808715649707800323908641239644712066167040467731585389724315601345533739561693471068302199060682506801566217487050877939772815154833326773702778941566066940392050410592723242842105738351141287726768257735968280222015916916530786395500530099354694689230706810727059534755604582945588543949262611806350789166868913325781966679170135408756690994653135535463439114807807078542507406376347731542995009416228333389280090943759533447033162525331268648746108875067425500474856778187390388961805349644300172599531573767485785649740429929131983772078618773067766621034509350785563719661309211684433056822395522314194496001040453217876185711538488762439759378656386878030856280211189727892397403367028512761286446612078891979872325475743780816989316653209728673621338368937926438796827719431263110419991453610054470376881522197922468496762085754643638918454936478782649369752341930495208609964458751147724702230576094338006074294412426425623871544132490883260902881188241954015837934198146283525863603708508064743355451343739882581135289891585138690293525550557027091555935454461851299287418805049105911858275779739552161961640772574248255160996805672313147315274261426520476994945591069585749636565783169334878149626780798307271884780419192452981115509972041328607762379534025682227460740775355748459505460664533347928833879767488507125427174400597424037332152120847867208005860629132824417685540633870427100335245660156073410296136027953027836420233485935649811097739656318388422291486353309914486055224508021493582675705858715484105523222482943821454613914366246658522734633355992397822539783635433293666590750264597258161957743659884056197652469630845961424892971515860463586913514211542547950332472687865256908081374986785234448364723852175175773432715145944366800366559015345819872316725592872047528481362493775125312320944903338577621594883991734757752257220176357365547269977000298042327848443477128657737322294249909290688495631463170868553655155205758521314452076291050821884953513247142928238514041599026201810032564910366639485430938446169286852474309251652809892896298822046664622720245615385526861302873025366861910299946383071174251975176475400629681499122422256628391512797200712190701440243479862612896523042118910317459550212037984093468867285919232196284290777313368734670070326039454103738620372944656806409404258635217822227919716478735905885624897337034962630929917642397450345481338219598312680178375448199827961942062844549981584214734743924075851917951736364042273932450226282851433620123132888047303575070575522189909585154252181783558490566334735688203514473306593595846558971652760967389372088776355866144468047072450600021163328449150113791901412024455922148111138626231006366772993911279513839819246120820873819503244183399538582735707847335386701914059654529898583116648270791140759062135742629839414758015778836412944006287498715876141934774366535606772352131528170641351829464955059846403917303516640398031926709843151750523898898242305872298176602267170470828824286284983119782521066354590192264665896035168748460827865583097636382069319438942398190896075640860440922727504370470160165800988784763167378677639871517170028285620176776386969008284682488933021311931489552924226458344146078516823277264953866519222606767630501115478123852840418425621877818343290380470933732361769459333188601584525141176832914171000721178668400910051443021467367696353637176985421502915924984685008032787187224818266383243924930399523979909525933956470819974889743038406351025611128756239982811838771656242130988855059055256037192577859196748641842652798141059926661423111588922566987371098878739775798414145880332463529292865990725892075965520938868779675655930132541158366744648232777917063977593533871504762073277692691882848335905217292272736665634810097384200678573262183113957004768877278681844828842748849680683821659210755596329195208820874666233859805696755038083213782965042844703024736068367446069836333057716098019324774714228803338748045413120278943289631677319207611035916408780002829341462980069850290059471230681173965156511285117568698416116891064361130374562037828704968871532411442778193581991813977109332954715651641874216547017280646663364989174911269352639348760721712804162381544385366520078549669040310773117233237558736900606385756790712892739177239057481806651367814333154021375886037404636280186885588378089270229489701187124594619596946021662159124402359245272957340895815293653687690994229359735447056872215278038376752124004549214885946050031008358839239344338972548961129620530476070119997139375417850057243163596378850789381810498302630029340900485600601582177189091446183559396166897127601612238693101709676014935116981122683881907968958347790671288447924750843834152854132868880912190505310772340411609825532065372680303446113879396269098616905782209470164029480971554775217940882297599617123133927969376399683021226768097042930722690890946915317242293726597386112463844072514749665512208052535420326496130422519306416683737327122720235980881130683528453627951808570272362121265046543396231643250368285168262438405526235335469385095845746263843050720396581310408184863817829574057376208740856928113897044418909252138957847052141631954980554234065213487792779510104728908079554078215577978101273511388572832812083503746365424250614985371408620071663694481759171973116852178583098920607090550775406896577968907570625304349891091750924072601252261199517454052381358127217116396809846442634409906641548311706532493569519224395027137659477362707403029465381932656698369070114076844245485601954123615604871126507722078932420275872942925611447740410253612744203547395001361912966169885830370685203030023648011693317287791240498951221106833932968596130418033168634827475609148313470288510395486990846027929383128793287108279653257757460821224525052537890259217919983016733172702154871253513002191295702355357086050141380893956943084492078594418795688775875035736810245833888994471274367071724645027572811887009177868454806912556627988653675087055973657979299567561751788235213831316972310711376983725277905524430677034820837919172852897683927135174606728499691744902892010855168914762492354893944270194488704984801241487121694882186344211915842205960220566654294815702909512130025272991393096506084964939259013709240916303702239655581586945055726358441972874591890528350137316348296900065803351229986301935719469437259421948586208839678871169394984041375019626472073637228237859072759545241727591984106459594113540343959479239104875393685610826238360448243517066422621950675320127852871587229419554593924986345158181268351714078481726782014339491621892319419875478003566671459297720900844568081933087938824296965966575958607171949508681244824060046322621301909259723860171779678930273767714368412693766643180018344792974126723097685718202649237225168206118473447740074961428994264116992306224515401056436650070235556490624142031486113960583046270567606502679447513773899869857449234288196549391347183622503654055594763659447349984309827732303381772542295894973383458430390275383459676417186076039246708664672557534111275269991944192052571444874469800112096767128927592010857620737897764675372836896327857940926334639063407896048408168295934169952618212131932601513442867809882556895221249244821314765820047838352867158124132546844580624529305915882392654458618460289396027952544621365640044198644959588713766099837333699661822926164887064597903770101468269986140224470456861046453779159120037173382197363716805092842155083534942411848512724254548525947169002240032684533131586626287980171565837840792366231798821388289294127619332002997410798857484313250866999157857162328199538796908536277321700896175704214400413144987400106301988888032499963386413137330086511696078651548095585472772797937295319905169856578972092566264153970455999436931391930411621676120924019643600199270633891975583337012784190879364220151410416055783144223317360041560883768394402325500293266316142586560452947205868459781517773591678164801406364189777442734083505235299753287438128770476272982800281776826811986241308453935215833631653364246875348317573627345979117299789480516616411929487340902022315106679272523019298384819006141411100674404170325067051234098182627944410392575763596183455933316458244145348475299798972911357100006934652086790269140927379917470879694443045406335299073317930526280511667407314969281299962782461922964477633631426158332277687394872311079298789502506702146756799503823910591938057108325859362504385660112167964610701860681430905238829718446410440639016145635043849950182168652916836674003886112331358868611511401646671259470092584103185999178709098457451548915320001176030190861804434170270644913836982528141181487341638585984551174147621725373173877272841894010669870695807788900675570197227150331447421665006771033960447056469286614166764551042179384417969858123970387478514745652463137133652224460800863058938285838932043262099482463229594163676687362045704031023073441393788045407415848799651251153950361631486283479976021290016811260774239366016341647134583889212894500676333176011259128250622833693252373197912038046110370235205993255447117737877387100522076120598341430947647165962677108161859699015136368991437777116869687717384127041156078535290727146519547626756705394534545942710093501661952090736541236861145203219919488711453788575355189200252495454581791812723658858682229395700263032074226675549047446104995985865288763246572990783870710312496239306150260512627750988492237042255609296352130493178014463535765855119656962507393064391609594226897383519019486209558891101905007213594840136615395695459760346153088325585847935404427233379595925016781385327884742621495869348225226719510260448582529237324462025880173492701288986686324114610259552312625946075087126634916088906931446362870685921038781343312644088093489936467362321053860512456368080001938383281916738446673290628575895417497284547653491911420652220037614615757209381630363146778613569945893135820526044677452648183007486890353105503017581226790180459669302741284019825625121466626784518424394082522183816292425090333618856037231766915422905519857558320953491624059201467133183076031688023101243394259825682675537869415135688293829214403366613613088002219921598741844745736452641378670966586537546265638925205389558121249804161752241348935373499501303117657038750519658144621402710160211237940451409659224035063838114860356688715637239450081020916618729893725132454080602710026925784031630863525037089324637847639346274921907701559380264399296015404343445532022818355781158349595474612429875323209013943889711810869952179346988988550160976483966922970229838353011309590341045102214876331763163610028360024249802659128754078781097618826981282536307145311293981372987061213484745073381758952674374890851652728747098627805849630258273347643685871297736267865193473373892841322716678230449878162853673702939021661812510230341647796784044933882797100428286092671398928930470521560387571682890922323506973095346161714839189432284032109556475843559507267247234292176507753386159209309743717814048586160346315059224852690500985948000286641546411835325631939388229769249466104234911314629176187489720162783658287275344475381272400825781645289556804601520668407563748744643805701429905182224809550680297826367289147379062464004980076496676517621981751568660084811154173127591195151506013900097050810943085098215373468962569585774303886171356996450972492173266045822726533979544420328079577794606544482123574468321722057067484081890614553970665560102386525619117504314666508829556079820033773479510471841762221911740304474165179683519319155547068252017806127138277576324206032949927473617212269879431080617336198042612652168390915761323619890446702177833604378028381602407485642821370080522261169245153376745481940749935909699881728788936856123631586155058575009306841703113072484008072607534587733278397339942724967249725127914998503223161124173339658792610787799722528490404724093627911605954823815479121691788194304688681980482454627742460457967040089787175281298330235945068546995842142845968865709617218594948988463652017462422016388910426065060226104142741960085337414686412041187852357486877097633785728810702244783027733399007038976730470135444066688119317280948178362295390099034198271527191777910726555182774345839173900813987835917960946111061745658279833085943393501418048688823220978361809260983874805805500398522181532817713501624217412024764878000276037502815133672770404318195419193021529844214390108130817763185238041657546232274305058926968937231563505448540067110788604687385360743552642330480019634475340723040613287193680449376838105641734930966706141626891799241964153878337284036511967526091600222414910495454109561812849284773483227906073402959849808635933060933155298644740445184643915255762572603600350058908765736006957161791407926080064893352519274731710638124157414916502035970644848534209105677458849439276820862604599672451843006292616152612786552258372530981555460064463963708259099638318691687555481909865396427522499417967457210924257141104974843127426649173751734398388384550030835655161502290018354555042736409221184734298893734904554202953040875516517084039304803555492474999746441558794843981429667137516537616699683851920996571960712957893437214503816213446767551753829147058965282021167992959857568707234197992877441454014965181155786321495245231985243937062982570996075127231103593172979974879242663120633872677743787917667867170009315655623671050140692627610223036815611319195934598352311721474285924538522334994262354099984947744823166265801939341641343046550351129379102802484398624755298172753369753774075860943606463037773459362411589246211501299687307619714101557582882387291728119865390286766901567359182131185287786059585973472206371104213098659280527894427873946000892884015133055351168889083064073711040374065034588197334358951667487629085874129698792088763485715234916509591739287918315787278186321135821017677955279633323872674788961975159857818512491508225952951784289834440972097835500680565972428265197454761063639286569761109436648456460666283083371929336115712285374236588958694722871030249857453528208624690616808256875764287070301030946639210711566006814999234792810570186742927786924246748095011846042890962461970762875605418266454705707728609505332125344958773563748994856160525513868911325927016631413406510328405105279254327866280298326961352312997368074369720232485882418652452319498350023661236360836236614224662407364641550309226119584301404572071986291531015024443748605170764519369241856934928485542095336294792751974815559297853472770462137980821836333528203359892820300987937504709049494352777820982375225846880779590586655646116832667131792487121271398915781064356173831436364412509732083433845697425346552876986056999058853817009698087027010657788187471011436574857636668799464361424524378256868439711191203594104663067706562760217117020665929138782562003612184488264752421701711802380531422142110396699194816911469237804072969893798470798026870677609433156195388040762252870438727513427321218797463685354552969100466344634027610236646294652240745801218303483167900727748716397732700546948552916679851778803342854926226109773636483308552615406390855638621870149622047689049875007632966289719687670596247826292515054278050213526292950101453169851095497662429175881523794226945361973445116481994332466552554815739223726576248741850842806436000392395580388289647910769709194186590685168681210983296239202770807723088955819630960020206192052649763985257693399756009833295041074216746845378109440579189464960693892601164324250355658242551539465150308969092117971273039831478617117792033507449301772641327404114797130148305808649785620345150075516995781006879683261519118082187873765965116315766366332828035031740105390585231039746015383580218803437033467751189887175963651558677033414403765137764447185605555127609428486095626436789854824865955025080137117367797166756098131785454840038382725813750940295742485402376988406486312676851806237521768116177853569719141994112390455479626392958226599714854893333184378576649954570282059388012382991955537781136308971297517844688348372828143002038748755117263969759802128131980443334192381835369474412575462413424203829499348108601462302624229532839942568212199168145529520892553490708519423980228526095539617791499139450237197844837344820294297528623369218807977968909486289790008057414326676266727078753856911241096485867320309862730781680802670381703548358761174034341559256311652226128441257551629943563141176590478531200327446461945396734059747958332528872431082553923739911192324455111111025003949955111049038412553561893495869330393472811493612708670926314707718817234687962550299785948575725771935129498195771928985692420978627701114623755708884612025170374179721961503845205736493474738506697103617781123621784508206319459390766047304207598245094251100927456883270026170152957454248441881938903919101915047929722759092270029100403963500211119425142941873115396809312607649541644112322341635308045510785575238186106580151514120542899209852115709934761730984641243727028617016751222426944729711766513152349025478477909146480621471413869309956638166233232364249308501982640481290469664351860808639114453678110198057458334130786838393658703180308126645474888216567300241958972645563504182265710564058149602354397696695581043676322079104130126441803736834403809830786863781403088005724387997729568732189103485938453380732551315665333156108974480233209463170911111546828752559849683246826072553083574737103145890086811975663007817280737405988512879113700866450643521899498553832211321604006849269177730813737873870992587024735199572489902089964645138639157549117870774724152545849145292031704355179618054200834221027593287390556850619170351796453228799906027572937071114241680436133551053510639453142210108731237005085616348000904985329316368669782359332648115786517312754944978430665741106457011400780338423796524523432483791002800240374309770526556146263722155118532995937215870707721306841062593444436706458306276413149613592572029496509277505081568820075597524154160954033781539892025072482639919342987443641510060353502179481730638399500855539098862110295201143049598820009616000073428637732329986545342911749924357325213213601271429929002694435538651131217212940781091689209309033394794228493006905208376778471138099567194466383885890226990696096862186242632653472739388588187018328909761210230663004362139278448327654023639859358033614240209340274702301731263093888231942949627047659620490026163223600156673173447218186477506577953267968609488293677925228450892113328280360940804481008585460677571377628721534261188668667216766502365434462581103365911231401681612535064194440205138199345077394724047001590546754403987592962286892284749894830043909216985116344613364149250741999564406899962784729124720307073746909997183273443803641196567305048086531105837956761857448477115445603687800364045365290945198003002941483581907404472030117274945120263719778720058118808161765599551631682484350274773499147489121123099982104616333549017536591399279793222068526874544764679686765356956737461724727180457734590090214583223713830819587538340816515593243890081545245307631021242236221819917932349314111918446454561992075267309967472666151418953749816393945770976769053946326571866573305129702126014059504583968690160829617013837769585398571458188964901776761269990556914265073417827202559912822802871640443251525457886503241719260573474606045131833306491178750058776335804778448492728491105583410636666097909386848843410750992165569724427636320386114433144365183637786640570340315326763385714305804312647293806331215634831759546789559483268933964199872568856570889370550975628283573780232540962965354952193436087269727906336867895715858158390710712885304845010805551583236002101854606489951632998093554249846069765844305355331695555261962126315939840704026605391389688231565685784781902724072466297461992082268899530997746217995570621632052754266901858539314649178715118281442738944306075396267943322420960164995104780261969977989082314230002121102361591245045905819065901645822926355214943138672875480153432829290998654802693352008818944596029281077672061384612344615701405132695298379514634502949498356061873866690277355980039853111265836891724374782546508769393491113301320913521813617618015485479653634358700035221053967118016559841828389717163087564911069667057505364465107642901327599775433840124350880561339547880701959036395414881774047701062166667882270729550071953496057079053475787352336633166178719268325592743492271359474587568290961004040882558775298737318717226848672348745446428607874876382381508947159964478167469286669557449999804583187613049181483812866375771832259549098849730583669299895565808354493886302035966433553585642480131081944439335570921589057974026117970010731050236438600016016694788982444745704015357077654002281684815088672691689294775726100749475504573278423361511807057010368175884017110530838217081248653852898916493888972636398778945867591897554074706168769634998290763348408060349715111602752960292239184063900841573914581622368232525783945017895341006683932522825096690748951826334781081756653622240867096878646754970031297115398999813194620349086946949270366341918610322568511678248160229303587406726915501175464415329462764033083133551042799024538613873567869133572593958887966363166570163533418834872496641869466259026467223740450249203668158713087375242450686452315484487859915091083885329892224163758007933889652102703923889488306027014065208459357194253849539294399822748038533758961476086053121167395653509769795997675691221715974203663351702937664763318311342063662482822925267069792751553673078704810564517614100445065672011665520298264699581755705603349101491628277104703412747330272784255642822221882220896599186474362716624954958681690940091274237621412569626791141770460946183986560467501599171299615096337411161420493922130393230497242974620012938703399712009908149568512134775131654455243866747623372635806097611153435799712247069341905156625165348668584427658484266797242971540284533432458513974276885957748536669280959144273043760598015463153799121899922609142821861340215396526982500689882488416173726342292247597220304871332077529414142484102837383229822281678562622536010978129481509701301007575117779224940762313174306652514804365092513946957956828384636376655129975252799016251482030965778962476236432451894504937862818012847424598368425954307626310383882564893158359364314000811066883855472861482747020521428872661476225483106726198405218021085169499135592311146541995874713025072784894035145560673065800281074614540735975666947414962967120827612813345492935377282101929088377429347913900806382318476722697463246561507757145779277490138408373651427226220698014792757646412259406092689034319929241880488533096561862602510598585890697188910491461403214275197287847919456921851383433378200351288529174401130051134868243802063037391053128980417031810818920034510835751715741437390904379940382059065854842161434786427876725190834455073498599213547156464352635904095897036207805259012719953036566276196607260217570243862216005008154959328864821329553604242306773854861823301643525486074456781744113070142464006391383825335727976722186912361179832925276043191649598522505709670205982527432437441262012577739180469784571713491736858068403339385048398749898117116008430074656776991932420048433258216740115772445136816781260827939007342943707536407668898099222722623731907491934096861704498768081500404623658855326549655065725195591634027520576512996482622055061209232447409652633500136861989847676162029558789985050066852683606515996465895073855821238782808795368997401529866750697130343186548314151307348851360683409525150743541641115632318646751238738267009021879587854019805378979835921840714686399095805581352112505948846367893289388454095258993595432346306201912227274488716459199198221956060484334146429286411483179417973986106907452777355569631010799105865493388800988240486878904698773526893675627999374949704818031889978751250241981135912329369731068426724827683419918213176633510253678852557382426024769713401874031876703635223384786939008280397455938868869007581109047631738085013176556327544788493296971407468029545668178574574222702936571732928328579570572808863773310350192252046874937469490975889321411184390396897448607589237183624604433256028606321695581904996678979149689160671351809641234069642747936373276260092012166594099134808423504858015502440778097290445658345588208529637220996938153135110635010981132508866300551809993937276022959900047345502998824329184147169078035642865300285480046930731403176183523366769188643296780367640530628686340139328838536481699972651852441960242855027979879169359227771022605919973643602022030075047746820189311113732463959062834379295511785134150488815981959434574694851224839740983408773705902825249852037290650490435807040570125370658395644682410792107890722487304881621582131546850090067046862728587687196162582322253473138689453931785818700049383310637017387020409918835189047964066900260758117865354209171067016038501155522174120802782025564122462392754001904822020415545514626956597346004250073671201338912117097665627192435655247414177507950792644760259866165443534800483713826512017994984826617188835344622081183059744148479644849613449050613486064810110301217057856606190348931414437680552914520178984141412872893610940716356348283004753198197410402048347448759336861150742189614750509793860444122227583411502221107035231540202287134612666373797458342513442907634896531777382952136959523637083528894168399662798405607905878301351823289389679095526668842753398710344077699332368264511496343274767704932975137264910480735559690600798783111899902798317820418712977358645926414551774348969367954495186915516651893782068131158853803743394393346233534933718345972976355226867690176186053853999459533569213453394994072884145477916673803032154288924796162480887688202830406453601839209408685334614636266057286139179403804514999798602997504438875623217563991770004815931635023297909588037086927475177533760346701162679207278470796995801463942610970072746294801721453822403193934446200802765363166219490162120513249612127520149579314366491145223593265537770217786951459207455836803914132169700536369394357736361105055440605590515619933572456668885178466376139438274614651638161276855497082959349401774845006799145402234812418979467641854417359459694446183735505698307857684596365775851060961575211404747203745285262859486862506457206659422518006818433960971167782792801442173564507856606131791578553110607097994174803106839770607600738082857776671723110381507510544101124347834981317269539471579005720881119438692895974901187039626923674093682953824941104875515711079286603579013098231708966414220667000069468116432263213039168153486182647790783316092790542666237831372050497054584180808648653121024166632623568967840117174014345244814346240334432051713407438629935654981595719669115518854445772068717731940049578960586516093780768214642588868391724795591445484096914703731977054057535815278773518572007280990295130706302699327077928759931478410557353693603681261747070154123907925158932856205529893977943348001679300149652844260264063293163875643263329390402913349766673446559285793939471863929806437523686882516591065615439587436738780496753793380880491752624649704289695573435577855340134778687624283352124127843068490107546254113089775513418830508512285215037921363589359539113960139055543014083667594579055556773561013014388227441057856758043385819148052956998413546186720944071893427756637333695943299155805433892995765436501941958315223625597649016341412515918133915939950704364436142244982986570636211379052351751156689939894394809735143491054302670064759425085779864617154913918602082045682962091669999505281225232033382811187821219271599466508728009103525350972021826159465872080879734414842627128369600862691803726590282665521393556894397234250921178769305864290492656873443282437349860002213919128727180507124725033105202610998622330206904935105918147391810375981742612149842159959149784796588732839434992022293172388860418215630330197945768176282413447745799638694932455669231041761432832984500827146706910968847190369632572563676912803341840298091709338937926585465472086936935171771565395415299036154561368360913785050696397077616706892080915410793878702847429901326503164440652848484142465256733086277515986542794982286768544941228335740675012379249674369734604178708901707242000848350558673135907100109284051985973340331648955363430268471601147342261789030726065197020308758821054967487772816084028427194717197843756492870169136571879385481662246785524916106188629081874642405408815429924986191186579245813082707450586169181114568485961605019352535567175323137945454831925868767446412251893146593173040234312500274756124931013168500458382285497983707844431573732154753915527385839930336720960214775358262563289038293239568788944533139594563015950988316285693824916747793260789367358226646417885063014693963791477882637354828186640206976322609704287172504204104893221735767615297888863232770863743360290439161495027331789933753372854501884679449591971097849736527797545295811571935485860805342672505984733035688331386607024632841287317227937944189626860202189516453628610322263832566733006588889825664324055182741340835429907481148672642870969581002869301621601094220846058750060826890005317915989584710447372880643835131032624132614289323179490418662831178673814740520875809740448073620251754546217369200494289206282390953755873064765668517585468639315327288553550074810255115457233552865647122592749071955680216363158758838740445086674423499460661521037505689622372021923828156765024209518460429933893200801090900397596090006931035785218141927889626229939222369653833274278794645552461157805571284913444620661094327228634585121911876509984078604305085283997297100793062379466861085116058857827624147122379229634973273661925431292701529492825686592975032825561674726964768104368046728777278661547932638583289911562628561530134127033068472695970068181080936466179055502755369134277274480570265838517292119603235206700575399930410101714344537335348412494106932528354811143825227359234080564143220464193634378817433000516977115138708094445674492038929674376157214614031355356109183061981839857914466896238374577018741007628056288059154297983381109636913135732222671173391313355497406456163146944669691120001644344571842914624956323895446049495951302629400205238820312300229943840231752983667744863038126365507729932133872737805283921663902122983918046941241619112159052066221804693021220324372306416289425251387982331946503552520283904851849688818063229914420872362622804630087402547910097223939734398339924823032876920509149021698559840158910045323288223957059463744582675266037015967416806766782723653299981834826746326674275738069575210651972844288389282720681657235428395310291257173255928317627646853055632224307489510986665593682144977941979923612338035573963558357247183419024012090371124670139070503434136561692669550532597804527225423006064253525849215727914527554038547305992822208602920644271103885769990386487234626138878710597227305899304503940665480102164059563871433619027086281870058538387952912908874509493317577889275573964523010146789810019826481857469026276781855556653329620489890316851757245701880208146725351769088159185768364065800556203100834973171083051622024645057610322205800528576785237872757760775997857306286741229527910413534047799673628114463270342946324888048484392643765824486170661283123012467327219920859451847869388180271793756085739685561962309161550480708419498693613438478905129302353707089561720275395007501028803368483589422947409900200222715658251344226332698083530328739061135580302954297491346482856192493476939712680377543642993871422793863415529675334763712846852332690106098730782082264081762339287840578874926353957829385939170155163299871692242080102068365790793371219666631397136266086171029238667275061005174043658056367689454241414588834504688872066771035986653939220573598480681537850972008106106744368789436298197192328367360033086047928028237135548931949793033546569385927526139912407996715738549217558939112679430264214723407902663656635482577076661042923951679473845385002175352602215770191611923785150467414532425309607294614315282394008738912722127566561105402817010866488060773612020587301671969137846617363358040841319854893947369438466460633788509546458828948069286814265763430753787496345637049248168100724878694630829686421829073682284861483592849237019398457776355748806857141995494337109462098036628400093164716573211158325761426778423839443178374605937149420635454072628633215099936104781921375432288454408940806224246256662482742934842487240917423415391634130818946604887656016469789478087499989339464626250438335017655855813429612481039336731896351228789738109367460722345858926872208743839075891601762109132377942730121946878021733130736339276637944755324270574400610265283487313378301463269219682471859061343669628553078111398844109015439451765865656872469840699399156521727813383731564271189678996947733698018654177171938352069180964968058388332801412956844642791514545356495363403642760466946423617606317844833160997972497139996171207033682102550274213846011729151302499226433903566630566142996476899628734876167340836092768714638738807800535463019356346763560048851694228464677873799005465699815078789917474874622422426971675452888528236144854676782166919876168876956132698371794657233535799769111256552587107789073753434756844279413879685563317332807911843129269427815600073454225983181679460973654022387843219817208083915476359271635096845531543442067924718809903200395365507288380869575819918892464067100526161392777346066526047597624728653767477175633536090150248252545462424655361398849128099945238463449101777645519332169413945955115810825667270165429348090215447580137170790798755169508288795650492505855996842982437481573224960105052142162847260832991744652245472861438578969701260489451974197579991879260510161491464629997351150958990850528725310369727259018442100292001799626513628730209832188679068699008949274827017042052809984840043392693739968668752697544786347282486741030783376934626756596627401547809227309278219484775870360442076437833021965767415200212174848761595766118046659863317781143660854516837574476843237206004210938269996423266367772073639434084573780309974056342286441615079624172286216643103044947120531767618487800983913070635928494181479772881037172737981973709816298418738075235625311774311619177715361532610768802221067800934113844204305750997521078970639300647926435771773740666939043112932887902957104649216207077153138826666938817092470888787627046164396780540801131684610630583495349318247237223837369406753931556994905289229027072911900740205476548023053210987879135750731348751424774227093281009732165874398580294817728467746661510865541836918567229894532243079975236855741833880321663940679526221882315643398580552852577245616573779462106902109188094780878382714514589450220853636961095497545088529362926257521148897471102454989831661643392574958471690547369830244593695776727759886043620806606344981257738324937735769005080890379537782767395765320001738432162931573044068633791310918383104648536782816445494501728655668391375803843258606260545282522369901500368084817319035996403363669747036130991871805192230798234566967432324395332711080856846970598020816306574837263606180138191608977640404491503713570350359044964404472332291403433189138990383484658194646155236811852212754486985604874259145519618599525795024770402677484864259634311573760873058828099742573056774062403395805286760972227022631405531217733560208932332756810943786344053364180734497262763942206883936765871482504613907189017829104069434296083070091760338721809196287992697114479124722629670519301313144461254721346062034783166144865888358944902489121110700310744167561545332427094089589160908651183977972039090585472372534096516133968653625983812146909763580230373463736456342188020993634677244276614166524820944173194697572093177407380913744577664104022685765914239281743241271547486370400478040198680420873525839393294383147807144920721929517419963888642568385407330933386592471049035155735902487368127530840245123653637400473374127382239703450662537088413932837813746445438575239571165432346857837848287614449891195353649861401812318448102402709292982080778851244243345016873303713856551740819906423105298816392657326030303804955609508283682746542502903707725752351836045119707600580372792533758671797835337666412008762428807748961079072034915894096765113085044615237732918136117061364839266544875536601722567609893544590852494743280408373159443143812623516275135821461355250984722453012367869112885917071448303489908360695204498478081644172346348531724991698790960432554003732269725178291409500738732532600496742307588422983533206760669387555022579172306056923135644367699897245051360072924170186196694772458716085189432842332770111729778936387122984154725853416002504119202689961669072528600007903288046031976718008310670865006479800459188986217514169858440299491205275019983923480113525019487917689119465413119392970855288207441043632450292039229887818490684909249322446344682334792192822750826704755149035108998828765276359812704173615885333632922063140826420857221717485509711035916708661042266765195194653022417424308190731243230799805455417475991256079761918436895512010088944608762403102633183883103156456584756201034649895515190793098808996306521528880511750389352575865623608207682459948276681974191490904299917920863914854540302568925612364232752930350726823664630424443800231579033404211353311130349349454326826742174346698508422140727281866328525290650493420456168808125142782494074487804167270749085209914847722575096245963365686172727659381775477952550970957583161314715073589133508444665068419053461051933518959460555105540564824290014607077989574068951994376611513154917048248220121946937507533579442296810770168110460481449497075251640803516987540446135073564598128611584310111216817969087033583521929151100714340418933207643455896973577840735615007118778383722208838146539987591632396295881641685794163869417659569742108998353890880157438070783731111157865649165322011235703820951042884982525318262411521372183713099250039328344871561795005702768664167547067271101847004886392299906644566497517042295209345073947194299982345401500422650426806383863889859906126830531122645540591631214571353076005395185271541466865289320394800639977474101917575742072719989270006178017193222852068262770359861339620390892522717752688448549735603273667241866488650656425507056976197067903918826279741000811477812568956582029670048274381515803505864241103755597611285363556250468942193964536385257517614005218102928483549417722000402521357446477632047281529294958547596049468242566585957969226885495545248618156037850256385163266582227613246536376349043609634113498148677782716263455735748653066487212061648802283359364568478627777221944293016655065099051651728217371706720623191677834259268256161782316106979717708001975972502179515787342598561429022284590967797013028651038119794397936254204505218383423714012758929248924646328608944392532524333970394240778726444055464967020393589588494309423522770555982161705541748796434759697677843863955116042178422795212431662335107321472910992030354848562999076421766753563309445511076209881929553913722320146081577147356924196180138010213681353263985908559299458482432103335043436603907190995121015367616923407722045833439283107933231421327486563290636277663181777654060728788221397442347627523698241915423868700177382959911921705933647132633588004734060941970983067022496866390701146230480450613561858547866449437068926670319620266260324478911846482249602364775815346918109271288250190433167252916394883867585391292311059677552233564388316532682056215690953733291400817205145853912615882881719405208013829844549080395633505243649148119772325365455116658556815162076827035569785451640090037575078354070421893792555684756205115714192605547361047193160033060444393692083508155830710340227801153228725708854906721268269526768721844275389575392464685801965453572848333064892146932125153666817382464940121445730361196230677719686767431484748463316962208914257048647138871587397652594203290024809594762728329978134674665970595928284968497177680189890777961326749288731538859143692661209049338215220444000061079538613215888873311022137810298250547623319011345439623804036419695575273592232039669936795820355386846041615343520120045369141592193939011237117681231887442351864742832336766065839392429829516414612652164535555869857534232360422518883464225674137673523024541956150291468897590777952496579733474631240019423823210833679976061715576031803933937589356862992790443552873252729095125233868566495534230291250417912300669774565440937462682471423344248843205484941934562267099784478202159769233766787196041580724712469402363938721840037494986151414142028046690184085408741584784429834781903720864602187659101790667494449936609468203523337114102583401127830510335647519192210980277359197623475052239872244818950316777989677346054939087993351544643166507672770513932992508973594828860707327741576975438326431191220299314403193915377484011544006264263587308276364157812906081460586227533914910038415315875836527888530271541060644728104255064565403883350056920023509957765257215783894751004513074309347213138676586167407657214631481918678499212175810126586317341972507506367360171722023012359330278945761421801600568265972098943003280665668144035532387715370648778150432928525913056747305735070222955112819250538910423837930438923632668293896643080639974818101160144091201505493384537645711650986148768920191693591481748580106852384409919181392105281335297323560631164928345693201771435401559533377628003878122134593096993773233234975491802497705867360316763557146353041702701289250327748998012378405929977892110861908420182295022445039707193524161218339131689280415813974718569165088423548250231370628821880049291997296956060543033445350173430780728226323228841179051563022212090826783367801926396358832730384402969303833677683855508277573719074842841384886267755147677823729965285756475881930528972529286558614439849728400319383018327350481063262426954763150976781212342933910029861652815288365566343204809015397764180280222076529616876524605477384470127784620546999291329548474377839892234001820420022176481749836506719767843421139428290390391090752968570400125563170609472133985010952705234401609198963148091178188294746407100572868948554128899620893421297255585307425257030206239411772466493870772302090656331819328263396285848626257399040950597645720600342359098155334150072038697995610184720336536203780237703505396470091918621112707422534542031615122831287720288623345477826738353547011063146932245477877205679770826046641765750639716251915088664786954395309685747741246533134331091720706773530847544204352557120339087751299693064443892515202505024549819577463828221681895551236341178445186579965959307541765410781137257643249409319177814737569027488308935539470877726032871330932385331523604053557718672899210737713859738505615437607293019465093250681017233999691319741030756242379184369915767913895084165434774259506559268682811178256994918764443947926111784529118651936500186435506691217299744363455752418947554756588752239144454211509992382279294441416065814016335873994677779555981297898744000160193417480158433744295652418249383848311669454043708773655875214324691019184146495918586970894116717602883292384726472384950449963052003032584471072038526278531565595404596305305239181583687092773472066777568943680684124755692597200216060017918298265632733705754629265833741772091508195530044274023704922088632731311635937256726080436387440909601381269999947330087342562390021911747323101512366526435610705692951063371651960468774176522111822818468321759973700811335812455823373791243150911582354928889014921421125908361722243430031173870465326143269901373104322913351395515066397430222541416607675636253765509053188062726080709785451030550192529617553001902761606321036414768652214460631009945725374027726467279380632178887596855302854956853785666452583997207679387613730385876985997909182064658957722246441157749990175122910743215909891148809806465998727909518781177815790778015668137968590345079398667772425151253768790895048162987019236166055336803109252896793053274658270341653018147926285758175181071059338167102264693898943298912103456481859909214582570680844352259329156087900876060899938999039405118758400226473181702274778837541566456718010872995671161356479936122537460266926050034351596081013403249629595855861505529216068490316349936296284821135910624434802279808135704382634655267716677890958793548079418007564009057247012517626424031656446784590017371649306368202491372763650876530355398615178284681974735975418765874332238081016542700245250475197271629473550936154948337263713830380575208364374062739590640037094045030706453459893769989725519179553344049145941596816701993154047505957740456459684599649828689325604050979565388983252836344058980877339779441726923686032692259244409234207319329687320262400564511315903043175806842163880680002991119690025581214965336434592562092923731852909136281532058466880366749931362247086662920426728973772926432039738094723487347375483887313730203072020365041383566792458941589248095751344429425163416070484011756937614634075089039033466093197717558815888680967307129721867653274915678099655118101436595058218336499835263390293881563541241220472777562742934691845839966702222945844732391783275813292484551055761283160018269854086160979426978015327782517543401274514078967399493623306696666345948971221237050845462328206449830169947108674713346423603033955819478136416780006921012551649510051085599065187959858050685045223622432639813476974402210589301093527279012839605362005204130990674430089203522048094180047201618173142117320506419621732988774273707421925222639746409185875477325453365211904205154218308192746412656942582020917159494838155361710456653277303346952296437523265790851615279494792710941075502919897959537882315778417838099103276448883832055961306875045762861582340530296684270076947386686549415051289897514387827088947491855500562879465127936097240022321999154084163772401181598480350606618742548073482324999181477482813252283960368668565737449533195955243497790341274629321290288978342248911522819714335789190817330854922568286600878181574894999542704010667699780776187404367688731720625035639891519681004348748801366901169495239318356481755460775537720893377871994253808814530369260898381301378297373882505301260422700518045715408261685173740434735640087732318812286607712043366579902612044407481725293553326929054171216389423826710071830606601388624012088228943058318085895492645161254869760017702071791023953808345608805671026276545316769872347553320284175897024416791243999893160644683138150679257599873085477400770120963719367449636614838536938496985830868838920190962386071434972294338888537393211856498538219870349774021152858619974077314312051986552632568704760032854359525305422676296400061748773966126999811485373180691341014127401424149721415341659693717861409568114547236647410958179647897317815754811238968380308392889400534177008626278670263555683779382279657402138210626150670886265734913439442368892344578948074962519817042363942555696343460470695447574460375091612638658538501705841888855943244024288336639412924840566448580994340969384046196721561789166489758146301255309779658975226824331718761342194603367690194025077718195637502746706238534808829875806952082095150922911647210305492494786720708764530107587841520535584316529781081786028161587327417473127181537954591075574333107477229840909670551073641540061661295044936524193917437856617747880765407280809371959929373042894837280291668101065389281269152656627673769853904789308309888114010236012722720513797663728399259537311998700948166368545902645926159853510455750297037051109656000521332358810578357329359137333097230376354811883163546147597433157124561577431725302839341437304655832995308050680782637318614430280598256763572102648343598147626485324234958214820577348129490459214825664485684764608865046699418093215706449716287982451310067590185767460286639225953777944176139073019797884978056667586424627678626000962993903918869946217703691639638253446886471556514382486270342936354366459994767920308740208091248109019499128693583370183599091907101879922791363690441855123197024602868151167509531938657787410623730015021487894498742627077065482064420199817414237452252134353342673347602722082444095939449010646270858389173406202650706886299483006863400341116255555420725951006339112390142974770723979355340050710222953769148397469375137390012673108085529455817200032929453531543934631460504534957517490609283979016257709232360083702655971755250291666273031187940172100503417721606934688258840505330595235843565857388670583487451583176150640559072424229521898830437494640013588888437091383841270109554967905755121150832851231798374519972037875666074898189144768312683268326206570090660035669636512160843314452295963118343561679836919554002905392624986801253793972132756622843548689467880216230060218553863619583251718520706176256172041617160896269239268822359914176612866952330882429020055432462088502387793482275874035895979703623823341052264935925182972272057922219552539482066702758938569288299711888824686737914783077969461321429528060396091436546366139986421036180105330932660079074793348307341303072624100411125399908446918266202236973596157412720914921541937931589193447708557654608744666227648894624441445714711181891420590272748991203875126551693256039689168408958531814135179949551530429672238863533046288059768251133350403087882349926597952475758523090492205122898954172808578707178805751640739875614877411566966059803717200454999715953030122656452149410198218878229293038042046748983462468256026544320777073508794626674469835252565504051781298048517778920974059595223717329739917074515668860528770720069737588405584201472079045545989161840965465500613376159146604689760935343689420791129150620583953331951850849473774827641114765457565987258694479870816294933400266983601223039061475087205581878820351288410686001481296454179317047200665275560528786027041772167416687021525663869045214881617010449899110351101160862755014390526318519224370402073585052200000503429599730885721989140482394858394923004512277315663165436755770356268228104983952352737631389405254201931999968097042462687245738506851181926866296568914220398726525213309583888959994838084341101837749966365172319751263477209891887367132654116762166379399768185854210838017751048398589314706981687350140055647478814082203944301757519258570471327231606670127796531359329246084836996506355566906279036967528480165948432340301161185748005506980695206572689027308057275583871855614980510897918434552404612469476295479258003099650341776722648959522275197123470729650315691628417307878923041167679618099727736079075948491547189988164206628520715606152241161548466646873650032296202940995675127268937119540272669905382162486774249051523169839475494338855593180355364472696257322415545443778647218009464054980195590841401014846505885192471906105226056217023245454632528948226761869677672699397156640903132931837626110807901417069410264411723793870390155312711300657509776233933987555599413108787750109581609293935227567622053831697492452994720152536531338666799812336752695589999666509060761612976262145610064458362103489951698406714024783418172542849174088350223200059657972836702347677083274291976979406219451394921994197994949674380496428793808778296928926367670950937333725143653121861747197978349856047675898449257624096386908545136154087496281350264433751950874279535920754566242910707937561883923708891370341304730805991459581000342102903813231707528294185616446014029152800093508905634982536562160012118747350258097223290402616581577091311094961571261744302443710370293935402746619264852245751206652693209186011459205298338359650045319037142528149608058759779752391605930432516123114717701471693783162480096531315329355176825069518314963153650728606344825445830582077118415648670511181752541699896956223503711378520443514024317494389480806369135670997517303451619246284050421481919586660028684111750185562756271389433239544593857801690168036008965263242387417448530879523650469781121142995668896981681286744928966310081294764349591872159882375743373527424515424713437595525134079128446879625651017141189624252847781155119347107231968771405371270614303842156508109439496772098905858220062741977123630080959872034925689490862272134459686530854621065515320659925804122563259751868618502541174873326541776699047362397108380107029480327280068070194010820957521361222654672648398271382889017731001050414567714915715606033356853503572831189281284860632438187548813153593960364711204880577479355219697051671175582551856086182543403274543189674895366637908121702610758714815670942128676361960814929032336648541121035876936203103901303364250645445688692132851595894260797836983528735492091940789284556651932805839548608381804778016698661391663158986427823028608548419360855427275599731476762042821791116183522299330971966795668930777930288285036359059038736604263178965067781772667670112308636584922699777856725713990328293469089057418607819158976332213591821668433974458717556730929231172724456031220152369633093231130963329516052073629941612449926473247170095159569975989905291785383335124010235612867784825344435484085584009271873483707754030027355002819483205209447492358426711125476204936000338659073979307787906195279782031483473106124002030771351840754020505091370456081142964127440609326611869632397334946010081161144343738925478621948836047037967736782751943673883749269778744806563256987209187278046243497399416098504602990534246071643943526357862639871227890607784178333314074014694162793418804498229616531428707737832442596729904038989796554705059789073798511460216451374164236971907938798971727653219682640893284779404976245170357294261711233663400908111327899602423849514122348210525451237764615069087093314437382220291720432754472848164034099960928141136348316336998415441353321340137838448948632866094440116707091958480219993479597081363828507236910559801914664783453065644346668973193060843877719980278372019631816942275721349277003775252878131562990251116226242133027687143203717102017287893654320122675341994534870931282988611949451955987367738214696525373535377454187909707919736990549572287763528919558391120898769253705147568257997167136246158398264185240150818334786944937490105356087601967237215901207726651699750256815754978956806657162162445870477900548910843776930057376398617580934932455230509796995724038384146826737313534792058296474815439102440708969325499698869988759387204588234845113541534707010415878707430932733930767014288712266011403866180684721332401709388886076697006099137142211385712015583213344837016204961868824278150919008971871078571645305529876891806770755796492234148524466029161278946502130636216234421393448394526857402659439215626910986209768120877335338189457999477771262616481417337633929852500194247590174564706218613472961521304778916205732616636804363888205077825792795665751407519352986024683615318695037479261923535361502801410402475216731235297229625194832714898086127908757989803411287926139279364216371322880485724733409751507515574743122772963026517128200000756318039007108421065111432354374760256754644386584997805337339348564496093921020869343648728726359259693040663158463169924357885448301256861789221294091381692990362881199352642820242733680162070715424095480994423669849917782089206765441552183817808781269582805463631347438304706268056732667734564582574484158512500869074672942706920101104479293681410285990370943670056616718379705977427641579421390258031805359151920998554685050147872362596375687403292435508787448579697845569640249543135432160161227442914425969286512747106841229285435752832939921200301081158322046065816196532820410356027923852804807595582331289844453414580079732405776189480305191876307532782138036772036200325921085004167755813750278137763067588641104607725779733179808178603163931777315398516481017160250917182926462647657166032341583540124296239834902003107481648150216018199723704579235037163411332320683805613168835250631185367369219039616095117078254719499953578054570579166919632729987498233550512610946333965832841607134618531261231631076332601913503784912641487975572455255733522081748566992312103590254537095319220553786940045785429306961202928684241668358384237648703204820614754864789757308260335814366352466687399484622274108741393637949517471926806948807908258738565052666408723724311122885214944504283188647059784775629469397782443637036670734512107180887408676743151490873043398523638406390436142135338308374077345025060991786835153522793050287589696774030823554109956113793971680953434116798928445917647109645932037203367462122568343778449111100810500300508702664646327830589616577097018969805756061392885078391367096204499428605965998122779399065911122899102782542822137050499111314643601067160096083627689983783847583891232945234182779346159777580286034406532415358617225314189205188940378451459358123981216832790095662112946831311871976672516581672223160926635019321098517924783312943198396507475911771253233572940942800403318608387619957409125346280535521681697491175160205880770381525250843286845879595255489470322603509291583378238972121671220906700231849600517527356843702130842153256526832899582712838367430651300039592423161175716959360996070119296619343298473024807922361347347863609066924220853257659950419888458399012457110601677197780305707805110456255424141084199872858813371890955488344942676408381364216969591509530672003635296737010610679327544954873183274010160303388058325898397427923373268496435680593277517845617377015540589635249818593415860727015151415499652205428599687370329976721317837847846668894578081437526095236696996968581806473095003940665134684424239027187672356680192576576453384280507876199508589587391647801712809540681257606164061575675788410437817597892354258301069898405276130472610051504438120497486661791224047170022279825647998358401887689274776965390624558107711318525055329398307469675942661871953192079028388695720162886251593625176151179348695863945289492664007766176643804375832227382030295703575464370176455187327125435240163094584688987892404893177843275092062628468571208494172438477484137031490964566385683570589783352105940937455993907349769344865902172833463382755670601695460615327237078018208834984019528390779720064554810332900464804180771791134015876159393308759162185163780400573239459750616445928109096716578791550925955205623008091124670030579532822123521511285030626699855499500618051577244344852771120272953952713355298668803185265754290855649650077779687227517188595015650195886522267724801818105054174771728217299219349602124739890090560058725736506212396336747956861536446900125020746660726738713020546970998485898045070490410444701127665595497416646769594494659018480617846945530196157129332993513038268469209313404537189282505303690050136153206287524793871165723627269455164587638042904120442579345411031520772595913145984163863003051962997115885152157035431440726380154798479877341663992669972044315203161918282857545843355191968969642134927537568031342685325085081301144953130599457268940811655442139563480944640164636373825002944970294011705602412243794244277439963468330219908327910148201642182943821274925310854722294184563703303032892255266294632629891178002207016748276463971920562223979543082578825233014338650556328730055093814008643331959120903154268288389852117070265722986593532801385833279074643270907515305836468339552065572060366062656480386468369052982832939256563017539410825824023507798580426740038185071914546617985880121918406298091420033698405719740361983320403049462256339504980564617484260524088856134845043099517653416162512670324947515219284450652382709009402723186945981888009811002602902820555585843363681203525536835126322972047904209568925051796823526922704773351956531707410380770223198087653678266323211141095251024638453769568759193166314592343708605280945871821419860135720475762142862911651502747454029803866077917894728670649242853772313257693637387003486341677745733036852273170580273370338422144353936722467687447399995511333653941583448736449368519893719674763580487751482245035782738996884977741291078544499260428784617508623268010802280132380774719358867684782487310694434605639040572891970654396167552276804108909075079425544676466344837902196456095138056490909193033381444646864123235324104625983028076243064120487935137441996640752473122612240898410401531181987505010165168371252743645593659051529700354591083625976732375566472518706691085832674437686492219620411843264362475608553836000503314467345535722363086503453632023112280426062284520464166048045136826022520751184441839633615016201490855926092137616563649878194099624255385296400742210223589119196936608526445469774694197303971349236829690459467842757259169963266238604357012888714188094529930773044240994579684479167644324052751753553996726525215329161925949069883889758456661893379844583591096865887558921050304394090013546158683460451863873099029002710150884215699808738313792988855091749756701570121526920596221254360330673446086625423571850144215679628646801515905257344016692883038311119208042802188526732434897003118293597452072680818118919957280541242978732503092471364133251291788217989126619600776214720840010130469735086374299187282971570204782682778139631181596797860846290722150539958016681482079737495808046028438228695420468550265300573073814927955520087356801547188537330727131892288429687576622085832305253699717654560621204896374329315396861067804532538608393697087618632213555590065685178621969752323697959659165011945613191582372179592960264794920356399202569610668257403936909315411822928391512058895826194992210170486790469599027341206766834585525460289586425056588193389043038996492597221707227278715380083795484077020944688059779850358566739096727073720008457258493088982063013787506733403356002553789736137621785020026183727243894489620390225589491941431956225530790871501056944766646466475318689139443008703054341751495244850111833350173632791469758951422968959781686397669686503526272196417981339529073749341159597117087300658336742863476003768893429601340886501939078657410437337042513899796605960377462340226780954530201262736440746496799153303159917970556154323836029510853502343579880332352778033328443919790458055017407581605152142181031753283396018436351868622626252000333907160960903375503774778986034301499533258203988477598593537326724280358467902910051848178883743519946461223377929649246183154046964114353173894975672229550412360532732933869386948039702177652104332827291494027274519186902946933801083056616288197381812076307129975738769970651029268965653222869225076913983201906164613342880275151358574758494433169315798281264561710813470413800400532309298753622262866104332027421325056703992094894496609196700921900429349805817433523191742028500449758861638762717899116299146931817848067815243330422819251298713408376745856255295644522282757772871348006474854864554588822914529670610313433072739987159456990234646434291828938618942197811808152867515509280775752885053104864431349203198577716846333599325480090137476478610228470845571100013455786695871423256744696892461369867734662900493376166673348201627373937389612891908692970934274787112562041999661887059171362051539834506447429701920330622659977218474512376840911350447103460132457068485919134146415749946019050388412441716308139378734600428643208219167109659416645579283447223000812486337896529359128594891084498064407267736679814917674835219177381664609854187784806517948732803269496887001725531496416512964460834583777682302311903320006157984869614615222266581154069489942022012695613318052078305745373742434016352093570085518569490375126521730765694528763131627555912238990077943689462619547666340646703950990415051457774018473113434685297561629613503539425383101661747965492345149354106873410500064307298084309225916654615519132298245836437062345541284853935144237446486435110846758518472620185319933505043903711742097128274656282224319484170276021329710414635404095248715273268781380659390835835801013074316271284608257193816641242029773709656120228282945405910821170971737376026085517931043761474855917502632338963874292282970987522760120585615807151971602996055786244498469219132433154162849581660206173863028936817593037334158092927759198788061883452566851247415361235838871888011745568797192684015693441910501115107047004913417970245017592819424346535570431366588861206419248538116709803149718656303793398773255570197069856030019765775602506599275498226516602785462168663777772952308584737900598702395797197133583901168442431734715440800119446201490140590119265182116186922213708365966834020186576629307630314901071806835600403775381419399559166689526905605362497899977939657581189074147573767086269558747928908658515444017945626424671166357837258080575386463995525044787087166067755932741554814413206072136568541726316461997154675066610723935095648426726439473731393948042930553155463578226398165230341358396431204260342777528073634701916284166268796947277373538512254993060930109508668604084266057540357545619662936246218044088283659692781878083766907060909083786311870523857335676923745006477475368545892221840353252005727250860145330174085955644070272613708129059119268038736855319853437005077277514723225987243890833570047901097673606823443079808463123218145467837883828549880639672771657676402447616382830594314577084277729400738944140654364545308648256024267076047184714746612745440961457707628990125753247335641806401610602939751489551873481845834688907373729879133485624472266242088122559012965934063451275376782177554027249973000013835280678248341076026826533272462056093739845920665890575429913912664819434319359633328761916072451331950741475208766790028072012880856175576374425274941777584529067522608146763156078656726447206261313879695137620438032176792191786940079871620529743071241507384561032805408023197834128798638614490996911211491848277269864514620143135308910461542359801562444529103972806430642195746792952073045604903987960683230484455518626395442289341801603491916606724041553166275686685950649462033563809571900527431043795811824585369967966983466476537194867368147056345647979594818094447371743447921406686886641045272001882083535842676160502220426700626006853662003412382142121407087597220975454592733065791816948671926136705034759346483885459593716281206153878462967833224831684954752090007102871161278621490598990131141718634648083912337934671869246742522014592333758154242000340096434548293604116793722681180881980964972236640324015689122376181256097040345564395524057047395285878489346727298740275133860796975768875095387975110327658907105465168705481786567136599532550251656290489856607323492511753351436678748145233918308630158911311990787880253540715855674146049667568431286161732715460962047231194226120371490172266190847003749634872113612545736758461070789585114583790269619040955107259645330022470939061654002341280012934096617570286052957245396798592679884602752848967214211735576812890652011868345373093355330353701328663616055318935518068100479300815917628868200605562137372415573813889953588629975177575338087726599088932168169353677989230170136353867873754422741268122784977767956328296888672396011924351228842542102016359794621842544942055845221711736859935389548000819252791571353648364746248437583329843210168807755947416458914213777044524616455951122717547613873337468786022275715602212340805097402159910882138469037008770466331022307854235191847922817356857700325604095754991719155951853488476147476958882418414500211028660474444829543812811065750016373570442723900714048817998798817504435281000581003323535411318910402037588562828289519485106864243284355806407182347816774057230047132154924936889641535404356789346249187308753402291925536539105379891062733194781209826857110408550403625405808729264093140992478243125531040409006896990582623281055057610988242852742899010495724326222054118944084895715847917051817609343866858008819681423127417308257937922247865788341370192051303090174969298842684703756421863938457344962162762269468662673342067783850333548615932617191036494160571843761875421694457790134787494901939938390072217273906946167937160598077771732934976361149570962928224885048455344125267554159966051848203707616515977606577030456670150757313574473680893234042788824280087125569793870359667487901418759016104358688216418040816552765600282236322727842043497558854087997450777446524437541087879687232947996183476859181637780792621978107596374994209397623487033209908794958937182332504975823164082771363948052255386295101952164809710612339927449607517659511189299949502461732455206487306464116884861387778821170676641434530366553860314241958548957671481931944408799951768718371172722474842932360545637400642406627698853812015083202648465284365545194272169197380384175399941518891201859065339315685428599056032071307216884153176310626488602518383598287499672945113452757664782399386537545496719066672333614890890794851541227858083156206951580550971753626393882470802851001926946273939812594180136504452239541074751780358838117295793204398967983979815852543459124211156160561996418046800541179714267410846883430845223274640592919261587083017621320357846740359290396201389223124550555085388890691831486078664198692847443555333269318502026849693946778733133141256798489594579334394330785255372854959100326204293925818986967179598653373492763809160998085912399422415969293403724775239149910298615003667785761432430289496099951821022278501239229297778500423348802632075221717061579269621857357151946261420219545117322876682670504955616168952231160343381253250567431001089831535535577733686345178176802418271933359286074034962263543365410318718411772438466766903264158553648654801216091886824694922296873506582590541905732519031008395428918096236894095901022879418611744002400633783924359300699020385064359961626341595623866565061112285036631667923174214631994848505742440189143955252573096223274466134410991832222369583367866822336637216519621348882926310251395225657620218614778165881349236948368529152852096408109661582474520169839456889534468994378161911171565375651590145987698224550675004002081426477848473305449264551891295728088512434943045797555631198712529027955413032340006832207190518432484879764522070455565355344797776797650206199121657730173957767173547231831645817953268458681717214479252207643881372860207853008393018019942467693179832719138177842101758252758016592833140260263896452160853920214475488217914493520776474537951642414077338123312674116069742944779058268712870181183591453225948125204720201118958040864032465349695473011582176506487914162337802120455859071715025027314010645678983881730455888441145677788582752899630430648833302194138887357528139746758782996699336203100907088516831822886639324115726493524284154557038838225428626197188603418865069446317352352543243352960539577790048635986133681178212350161476883924900435959558876990020162340159323270768564487730056726769842203987630232764897208558361656290039873326708389651734908847228568420576024778172726135805803823491475240857848329926613418143441866894358657876216161569091043318176318760500793146395901884521880176990932213110887859447356716657372168269662547803689741169099636698557545662586662117273465872782128800935238971404604887716499817511148014365329902254295924145321592790886489817625369428262866122556829489455238871179761001654862553038580362952757245005061976570451572544125565166873233594368261455371450442993461112549649090395628121037812031334723556573413658564788574820386978612723674109789034324214719636977573141962739363078981991199113880706953490109591931702066938701777206781820504599132860878506486472393401767959813854582203433949056570213604409580051146190912964256958169221517792492164834320699610878528362393926630355415414312609712964673207637259251102503638030881039404533178060393758926805801660648176117345040879638529812329694663376428412211154448999362448375585053377731092331873083351385765958522413697849990128805097519473234115944095595085338122406515952957141756671629819396307737177478443693143050748099697927891673909667173047945114230793427358532077247881042936907555542797751925677703665967358420537293962335799720720660064745105116610661581076077513239168076276490142710754448272306585274217004355448861879373206658176343840954457584506706390346138206190254798012344718516362366533323815845872097645729436636170300560143150999005664183271130497036638166255209050717607833500032309129218746002775413434010934891054335601368171852225663769926521381556327526882191852161376757050758940439995112793045931153284207165914060805978905710769221838626336570603362680438352237413326413005115306058876613303213009760596163038804960719169275686711371074518004449682389419108901939964554813434661349684729489673110435402370646032100505795128946877172796109485618560596776366142480138245492122778872961381820397160150256832130559882781688232244782168429855590110809231684828474205575648575821302645662357263872692674164872305016535211437017597287103146010052686881488848771533544034004840953640468542559655120019280866852911132720056725741728268762497451028154357696905367013481133656692526343469331008864270476512540411115199738111351093323899921764298462301128822880634020137793262624576828140432781283690554875251880596415537185859002427970926123559929341392606741916511226319210500326603509152235515732340023392874556597726455022611151693993923600727353041063697612118361201091806077389691867119283843370969733674155464947933836675495687792488032183733104839732782667975670312479331811005941309760183865023599333299134824458508257535556987044077095821874203212771670142662617955897771326637903837631866453270904117343896307340237978939437562818059635467139629982770790231594416233252182350936503042948099809591078987259331026299692528776222350483370187418523444848399363956717277996483104547123544516626196538427988475466434020942990366428743858402005608813819339547728121500357124859792365230230961884480934268456371250000869615647962399966157609613065528833072321211218120076078981302515769650387292217083720523000678909664740956343982322550005585652630245673660881127279139444348635324447925138878093736847540659218344293705117156840597226400937739162611900237689380823036347716897197390047126082430121103472232209123675813687843428015787843768163852284680302193551318847788031278488534741703470554268338174139642502594067798946850628744213916286125440205923807411050884208539500288904582460445379866522838455980643557732572763113642212142676267656450842999265917507335743955039507805497317373846923546822921348516672253940960691476914146990207396096146641890374394422811492089553086798539816937950159805897560063869163450404292339571373918601647550916331594956365409476680778551235021142713827963776056760059852949958605513955820447599306579725114270644780552033827689740891305255787848139810486155273415834240684032808141528261187017542372260102250732764625045905392876514397955394832650641199039405492948859064272459692805461814240284453275561236473343760129408097596176321394077473430768951089655316423559637640708225773409538271659312493158720167617457527758809896311647595976299594326011914240723839919173878300804635396127644348818083651049720505923952719207701366692341509691340185057388548037608025359955134221838584630092507787137139870601760209343551418164305696920767845954779544097044230707278156073891010565438863226501114306530860158220351734135083619944787125799852065147462309831365561075626184607782355646067304483684462399971708789407260880934918608472541976917618511232266298098859156328788497515858340586999542337354743725444074474231368262783218169340201263554930753040196366827527516183968180390025095830717887710192030929828402979151149600541829753309065484690528783929058079865129850492458828183600256869471185113857618759291278650336719855376803397194911317192760168720247667075650796655566340656228188195812757557780542962857623537558383488170943919513427007902305881789309023531517861972791649994641469230388553793512998074568602048365331586270947381512379677147043405110079362757828988578161583046346775158704658684493602180491768065086961003442512243875208811576086865588027510018836452394593815873410432605613401006369996483401029161152630526761305994338090671353204331068823040750684920147922252764539194804072275068544651805133917788272644298787144392812094370765031252735076589496502514541727693451777382492036392300115896609614929489000906310350873695562355324836620306367965146515044372175202442083110274714610428464904920585857458980351811588943600752101515131272317937822822781341328918556175563604797148794527847408256496298716205744011516347205172339893690216910697042184384211440626182142187653133144823761448292722690272061419981327333555181519846020821069299393596787900502788990052326050604893576979589731094060147956378409991307552598829605310494605588151888657319867922076333926949385014450838936042665085342969713394091404239941952158343257350231345395344684066358196052424425642610214284006839481636675277323519210716155386278336326095754318565853033135939153080344698104577746591570839623385084426574247453539637022804209332626816047265463323059718164335738765794541099527801164267749059591597093461882674632424587244576563414646560245532156757077220917678871115974899356703126414550523341290344787246820182770607861456907332388532481354215475652118748675751615143593242475592066556334478705167604232667256999003631829619412547116232405843619176196083013084251986757362053214664978645189858699520695816999480549251656064222859456458253546296350645351341197596467203370989184601509002567468828384697223338888093449836740524001618498246066054596565252516861002997758455802010075548414701889977181390309265986833333596730002148583724403929569700271454081557163060723733809578641200910431496110702125647817755979611036037752416976985022864998770148047274336997235771621517249936267376771202009121899914555505499822609587267852571457324192757117753251272649050652091224159185138296852982623658950900678751194858215573714544887617048984474418373970483503249169098303378021221608712280514601514664937546392845535276093401079187798623461725861147576137137899510356905270773759681535162790355164546071488952325009814530552866967333577052484144320237962717336995974455249192950428869666090631812753291847562738661362174448839249193540190951541219348108153885014347618547701647103504018516336169468668778576585724838768667414564430499740595198696890316179833801776568792536253109314271395368452574750239461934028195560191287612248748933988599101352667243427996922127181327594363498368097112904088378408008186427099165493047887025546548603641766793321927673718585966286030387526075660953057653382771747722259096913222272637363573239974127875281552953697084445874989996591553425197807009391033370976245458382044750530669280496367139582718568543941644925299894995761599460667032875307105948886517095323045189078447534849061774503699922457324998876987568613869930046870111511455966202597098597711505900187702082712574871316501886642213969357020659043525332885129283487290412312812674041173360703724646593486609307280540482465764792823277872012011640481697584632221772996724699253141502153172296040818141987132150057643473809314592349230587409881914186747817635534694016292453822123791586829166161059271435007263269925168421419830288425842091019470225255946869242378868693800585047887579124043848079465570080228038048169194585794529191781326274030338168754253578807355655958925240600647251690985123970280232307322546758640414517207575764545128209067179814790825259806863244614533638076717454260865189961544360512199711659665194806433697964568204322695817197623696853438035545496326309982779353626796728068707047084222850195207677762119474073740150839238397718588572001800671140117790581712762643198104071099132107792566846555639037850065767881676822691255541979125166576677612919707797462815471805433327972163237412815678153397109322363389700546611720298316304587224728831403384052366653351695301081471979114419220183874891843656677112166956612969216245024805867786696021389011928330846094738238533612665331919195951585766526454612364693930845928406358895602302689776257942729773514922263055737457870514591382252915626899958799713751432733328842383488258462078682655504063724225055614287743235890820232850996382398180943513925836626785918694946567303774657584678158924191818242069805613469232727672634078690244882799645541835428582243070978582488850881945230862771890935670213340774733151381716421567334843756289697881972940331312839157163293842937751295504387097943923346279483417313692367025312313380077638636860166567647701519826319612800709243138945222931323866845297642141935187041920050782451868403024236988010394231582618031607774747610706806041006893826472246925073944831834185620829494319076987443736952336445874637860253325809542330034838565919394470802670813649840357715666930689990226525672169820877529693451323508858522586627915907781852874818686209624065737788814231209247561574774799274994164920971799660327285232979625228045667922701258831010613417260352322982449259883500849563792743828810115229416457331339944209235072896758821784083646755267422177805061875794652375250995532679207385116946378815290495586230745531625250989891010379857951763840412137506091247321700270121841751232481331373207734335628245544984896393646647174667301674855675333199404340594514856377063098699813289950568548783582530321444410154250007876567062303904047140095258237515928600376448054226291406743280403403598901954427428050275124452647526475763485497606295053544055231053319434501544552873543362257135298766364802258940913052957746610752704980064910710047152940139390724382493444083223058497753859796812000025766942221554296583250303774230425338540840545709060789033229241372848921490050458113443073184843783861747264690229961983583049563443841771308334257571592366851098680102953401088292673064036501710812524386875896953025577102452626020904771454899535092354625476203282769320113828973079038390790730536720263594375814714861888609395924354127335674089925543406440452104961381770106824862687351306364543104543766706177799002612820964896138440748622858645188078314416542533768474480072843972897426796387011333944613653812358946037711381083294853513979009688304544814653852887884562188914192428790994100798985733432259261936961564106544568148834391767591086560550722585330328468725153284946805871374594614627571223863569986400355975915776522635388308139739550360606790710774032256988883806877259512123649391555928419866840180811771006546814219644395680648371399353425056293980001826271351879974951288524350759401871766064431093523576225142270740767572320369904266417422984199733459485860535190748703518143495435317842801384264736386665689230611686750947083914228747736505941066377738191910531965291219684866985159442142431239161932650404492135381899386572715402256198360607961663155509512156288779014083881539596457342758170860376807167923595321509748178947082477096895620670236061772553196205145556403485367528527387643108729485062502329485696785298118103371906237239726326719244940745525437064081868407122008609837277347076455260398521466340778624177701986515404245500217981993989006329254494503805931654993819508228519327184140176886850535707927757456122129440822475293955414726007847985181726370251483065610589870288292942602412804361421345509084505340591020106058262080722703800223774798470646071687059402135420719438459538637435879666382653945419025701871880531539120255030929239266500891800086952541786809607998850642939930186008496187962223110412347726342368183858780417526653686174991744059678201958786226996397062710430234601167644418577617043537453578107399095621953952271504913409262001203980285419199863779620143209355931700350445408852326402362816487473146135243487594284835106656676147158305345128381424430522656632131841890171767459272363162809594879892020906003516440352171926000925352230251626587147761206706874862106731050203119292813684260670609183917012550294463872158466127707961116686505349172084997532667035951617108740214865218911934770749802818946725997101981650468932923129421325091785933364180529764884929363700484277412882217014158177042893597377141543316050161753537417836771435900133412548852118061731445921852996268785332976995875534125218103580258600222434624055318810133284920730874531371302069728719477875782808227471844864329242338853270048400052798430356785736135950949743218507342072205043051008562762085634822729654665525043885051466094416158080599921979635987852333207845786734436254046237221199220848576403846706979660974082963818072005462804809377081132936456915791191240588467823661415474297271203812487014853190923769157539565475664442035484595047518495447923968774311927808154047439007038836786343930614567517515948293658318926140033501425331401160313871699203358320385182031801217542875865357228111281631548095048597273890955426714949032039443391645918338451005604671265887207149344877119236826231772800095706150620590898356235450314409750861511507374744638467706803820191889342933413522347317718176323990848267959437323925031595089006200974446269315137675788962362306890931090257550102705167209727057231909139377831342264917552776663979403399764797631505938181348519369182705342089243160395658300778551378974656211130157115575299604032893344488676619259173248174511466212210873459751674039500290659088271848048746054209712127423830662438076835285514268723400540906480008395792324106249844887630565165953119509980222620839582459766428288333394663466257480492278591648678155020347020803585806576168972419874382984323048089611345694586581423189370562306845659177208082602377820108676201586154523020310270812576775215837041233577661202797877024680736427375452369748153261953525094367523613557872640753439928161428052202111124708781965517010717241662811925197551667314220661407961043389574604606716895984561583861229464119126150031163905706846619164809057598233178134305005314406610995974264786060483940693819543245551341357400090722539934128557893643089819827665953593836322424269629880593648187563464152061955199876737425249460924516406378923181897507656208883166845757532886666903886973413685171344222397792230901203286558960435894774202548681388163096371198214903968360451717080609071923617370436258620741375488850805692424886388260209852781550712044862299836672541922969784666719086793910548980078229073851071352108763087596900292377551177676129827429382843047779075826079086048201395821676939532230139964538204555938535230119331227554225212912420222345708683810485168622044267485244056999921052280928898962156883504374077028026520106547818131289075977229787321276586596062768315611791100045679016491252245247928916365306043490613263829578289472186568905306657780439200581153801198727619181569717662163564959083016353503744033635382635868765617429247432962650527811767369619352644577336564381913527312179206984286580951118795085058275595394327895605999345984653798691275798399685674173271896789889529684064829545374509353799436063472583755908431709493580554111003786281256986154252570638944251841861006459236184006551037454320773519596562914365690949652294125246134330311078368972881555271581681915927790584802498044527427272228382890398189877034943108798607507720255716547086070849896259188616347424802504234125554404792537974022293738181820510787297256262476965308103274237472514027166720111848076906749009649468181601663558295650752219868040961078378181234980702415595136831376829192599455568481223401926482510799897697322307192779177233129484573682574573360731557389605707207372470328310580392739811900851226216379681841847283404690961855453722585224867380776629246182773411727305471669162665216921124391937591943524693525823513012537812969640221371828185035520024635517355194224034941075905599270198024426810296430614970980843860876172679439091840785801798056653884819973294731774696174242279328072038721762470753980624828263223919579764919433079710846959217337048720504119380819535520844370155037256850585077927733552741885266050082223813200628903429421660881539915259999412986269583599846465652114890785970862099021949078087975978440305224371838156624197337800658710030891269250974846654525408178128485857285812844960503079012672560737959988908547641761352084855896780102743622331247277685229135795907775127051932866678457446155563409583105524884615417707378322435536651940496086804433597157584513140105886653543261753020770146484454260552316115687010934839216451546853430117575176671808554967001077965877224618577589838291416591744937832519441343561060171160857343433709519116789630079648638145547468358679370806251556206025858921529761425954677299016414534692233670489537870318477555740903576697883534368855257816709107807749954604968439075449725837059233357996136634208848728486503528503630174324419204920814366492995005664923029458080806435744157973885336993439235594605522691382490289619673837414718833858718376175118196866984387230716100870416612935314530473928820406480488657272372008060948983715691482212374049668795706064725383073826950805113038869402904679007437814624090057196707397723913117235664563620009034096860696051814002039261602484990046710267485843829723077534413268295262415931400515223990723231025376891912428210183368723367083775226765255464001263266114285390692856570244450799527123411720796624063471815709233594467983100616499268199373670218431709390641625423296379064725235499759557810188018843549742080344718008083059900018142396582445869849029294239280462416126153078043787911018693942875713426043480356278985963144292600841622476183020655680162573619007450924298760652991051142272689673898776724667928487043805922136786521305546010325628394539073892160617776664518241118687938522729981156634052706207328683795529912968971505856692175682773269466123909756642701799154490012409519261615733311061942553571666271712454124262386814177226739262862901742492421607655447409592992198610896071774206242711433172814503143565348164838660683646822040710008444728165342831827273035136527168847281162325301926721587394860605335978732255245562635498534424708356237160501516821436266902559893700682655612089619818169040899600975070652860210138247481578335470396534494391147862590319181384374848529260214945737573504996427220642545416859116771389747300266140604317753614004512733573743946010474588773305075323234219491608851133683447774993758156138707999412580725457808666178515975603153210860917316717177863026436596666355152522020519534673076471336972693659048945868780399578092894707013031198583863096582039478343252601544251349623726704375850005737107867943409162791390697502891044106940705572560788820001720748642710786761401872338453052792578630992952659214228183865239282949492633216116617193728678473959862912633589111896671296493395508758898828630021456717672968027312731055701602673278957919701601304763000120967548103332523313605412364649655160888990993727865253824461912956626080316228272541591310937956297751274531365896372181280882699336955936375161058641104570419054031043332638001017657648042166515606205787824420792074506437922922946785102677252027533432772603530639744690845246650558004686270443171845761594355277536394170785909979393523835382338458437349711257496506077388934235033507878178344385458290570893699993317432378954359123902222453612619166118780414630193301446057914090344414054478964108141371087806595697477278625329341199184187408845582032595966068024346743077666517501254852528554315672839411770967813509416852932899979507461036519403913802412866901282468615332732094290765616858197890668038893429582145332702426285947141764962919493326655270496934768629935427773007846079323030654356574520826266582657957984591276665407734128732573913351750694714537260808380757283485100971533262410027369413078425583025434854980062549756845836722746953154757930912787639649714399349474367019616555705257131892260470770751261704702788297221086080720436457642589624521782519962251706232725978064999705350907330606797695058159208102884113573592198399832085641414365758722934398958546352463451688402860768897475529653645057812186606965807998878796042580522370668800373431076389467282546929132281669009379484920627928507424660182466870260698857843120219507688094588462739893930260840063285916158540932664212428744348651169156573243263198944284501176180030649199062654645795486058080468575989688553603332787023825004091411585200734377916827211763200194434338222786799119169841965205859226675125252003578926996358430578077701501371311127534041677890857812277380939282247711519222279014345295865218409878634466307809029158908567342544495238680277577854256690291718718013205264047912852592756035543116695244280071067815259544841878971299133606350640800611834648672371415544993281387736128157269708778948202522146880404691187549643753212823710950882810446654877606772102848622837489163257041223956098749297087646706751783626454069383449477094606297070880050189513859430033218872171278035444694070911523797398895590958640863008446280167981283624125852633545496663082320974830847500669365534161206734419838968252173723448148739655671842345974102127188810172644419350523052000042427908546048531271247691476192884905937549938024324996426810279144997487200486131528393114731742428673993493750898121065921761044605287870187382979291866858862733149234894970457447384459174456412980872200852292013035083488103300959364393102212928037162813607367664293673457665835295140622838363518316634793448494791916290228862953725080014879371420786970741937484197070035771582338030247577640299629159623452569196113748221838099852207533021646564863209210949391653784483151266124218734788568714171051267066419954115864255141441634082894135713535763737893050610561813743564213419922421829230243050344615177947145796898903297343937698776065930221914226934770016731385313789963892816405591458008661797842454694846412720856698452731901488547386371633550768713486906849300908162032049158724061465806764762915848074714358094676818897744743837444537479512502207417514733557811344822146746222139440271139611874145055849894531794131372225776452924352926574588987713161614548083000001737783593043131754610324578350549040779905030120015415645730877342433755989857817632943284794836784638209375361854354893282846576454967363064947403329835426945507798293957299380633149200608004163140314268447432208579408096121124499381551879454154976419231607801673765635734247443262206546064900025424315455214088620298949829688833205917053324265421615755067743104472466951024548958851254531174012908353085189789993251263186836291942120034689826963519719202905383055624285672759567749581771912546889446318116020036890310255742948729341227307859256849413560211392699758270997619437429639325998034507054667671118413062144519436498860657856953833781557620691844500604756291939840834359567568492950853356585360841545145807514690859660474641007215076542431932117781405927670537408524243822263273160898107011015398924377926658915178102277106947920677390757334411489392742105226079501518467122837747436644111473052891515774924081687020628239153149129725074001489915859965789615803418039359012604603662389183354483585763808777235939790276734955955741000545771777226040171294239608918838124220704041945076785365364336573169837218910133073118750974256531921899205692487481779695649285784823457651027755262194041306193709106764309881048260215623940595079980978015341720801059476635111403038406366672967626927668981276433105991500317892811496686827654326789200126841919469741171080276784546459201306542212167074372771665805526266827651069131810131890866949621362529944545180538044365983901997857969297395918807155610430287188604526947617309583933358720427562630915351633149478327782710403102065061969883048106843628165392256365127644262266770516549506732911380761598132932114697399355173885076952220324260672098939996807596479094906090104847038700632262665448282129753376741909114321032314867816023302857697968716550049192349335511566749617316669063253692108946550811046398276330999616712859881415690802981783761465361589255932029534794127905242644350704313078049020934211222457049979664073036762699303388129629224225762800800215257439571868052390210832448035364121750205975890615126924812390507690111306296005610300263031930454552487206817193307583681277875589377651040616496951840446164647433244351495781500826612369836676091854324655437751976925187988894704395959389432076027938718555812957771392259948263499161643391562880328003069084442533955135929412387220389921009396613479109416901702988470007303712724907565670897710590400371580192191423883997642776770139037075226178037836626164369088093519626593090766702601120062446008634995259681282839750712101087728554783612851213603777970343595839495545195074076007352684111188829583239459249981603792389761673766831796986333503691867537709316723622259492560889519295246604511619220957974526057404015659477081848792196695651227123503990010985733736230497756774848678292464374109893481230190251194276672435445610112123632737830336522822996972695527643365561742761325295638121805181928773668077347150609778543670135342281736323893001399080278934642286204478288498376971572097070566259987576858618700916397325509307503104058960111559041736565022981021247903163114760337319271225372870910703269186841037176748601913463124005983270003229212064088872297336633217548264548449780419996035451024458633326245407596713880160341135192008366522718160220468057540231650838602780282575576802551677710990583384676315297977681169799567842473659254539436878568016283148916357727924188355258660880090879187739010935181956910353991500808186120968082082556742824184946930102044290816618963908192075718612422507187276886904135908042723688097629322541272283885361085868187832049624399331970292445211216615387146798844019499903490080992309872528461183193435889443199871945715109226819602472811142795679275300995032039601838422309924764396682172094461409882233090286110243424845656234184238617675492429437238227791408309491407680288878298359612759822175639115996222686201383616412707442398545520932717670136140659533040781485353276021092167168455753302195850021091829499224904778211518843915718530495759843323354133242590508268982883737564618090188894194730005752202540738009710480597079791467052200178422373304647743854683950304098454515154942159729809579666970286857281863894064582661193775840724853620643754789534182418164306457186589144981788500689767485861191639339671385406596261969235731289593023846053729381150081672686554330261368869378837607953491607850113009747650661266635421204351667719477396031923358348055457100649939901291773941829685870980563381153256247106661134920417954848895661124204150300628747011522054885731164833338492288938670458676375785007629822156090612067721549189193392866810613804157570668068476143275287592633022350742150417754779941975578712213461979204630517452625540534116548151263079190102827888252681900281346768680388718576023903960276846665696735696975674628219176663110318568662095197269725739345497647838406657697623791161504871188533696881534427213913280445550296688606080169541924567571139944147243097618842630522247550189442835113668823016153047480437054196903513931743197242469995297766619257902683788908914700388872984510265325823393864586820930737234073908522936042086659598571271877663387187623365487779569354849865293078101414018433867330822278430477975285383525275363933409221398943209476120228208100071596820394478963867997927052359849168039431469094536326332338881006280319067981376759124729007877041895589544006820046392839766817612983461349849541610405291736466990670087242695558923501427427519689153059474143799177684522222635201589718473299415868250145778482073818118840724628940563022657459402786492901839007470337060622681614082795606075032027441532735304367649221986286638292888654241683057239802155071234388029890702002100506755227568390544352250195465162111210998874233369219846171877533112394122512183628096575881454521469599557344674926620331806730436929253010975916242802326764738047616210415033981227649628313416332604316816843327449383685094840674650051798621430649118392542028859564622459079943624780363653732337087246424676403458615274240689900804037226295550423183753937586082652214154638245763664855672149197228920789022231055781148922442251818079283781967657363900199107777282334793175824529340518252662842797796953574553619707338076158669659706319152844720465856251292211973768370697558460851897024185842547718353814640856538324453205611973096406376583230322498189865553109735975211591785156111084087345689750671761965218005643693345385889178787673158615387205031034975388593682471613433305096844487929573951343020749095901781137775903378244803337107533475962373179957304608160688561643890467707980582769270156279951476978332299546160397160497467862407852838023428608587877931626053105388738822412675010139415529126610011690872082464769237177553771086640490712706104681293612014181078379724376674300988627585319295026599185009562850771940912127846288557875725265009583651666756646845775505260048310251446470605507284860985654209545675072522250219204850558363363312129602115105413252494416153253993268210450008877765871786237101581148275708567353225477637546659429851284538495939013552709369816081853156060948402844064810638352579395583003055146178322277797833281828490775909875820237679436508697682586001075566424717506526579822182611617919661680466610890337776087832209827078870220496971074616490535907137434210999257128642605325216825112277262200954708197432150083411096162344813705370412967138180179990576150322270515303576562107302172523427418378073225196155835442614748591590354886757392806670895957853876338364945337998280365425131836959603764764606513574576550690605174299268669849017869134115224699384853975802436141839381951739359290909858422230820380099845746751477123776206261374458853049825088569220525174574138047516600218626835334437672400641523762376451530932962922952940420082235793711555254864037452248490647512969585504218407806681777547276572491215249226742449175226374595711547492693557998650451021035104750985339879151309842706234387681543165435823733497450584821239036568561741673065833421021539945065497833291066146639397707095375742183307824934921169975788747142710015006774953699818774200285088196003913645828305960429290190701005327772527127186071576143650570816376413391866375276094296574240314662952262011725521943598220224012677704723932592672137539838521263131670736873340502193788394829117440446422700106252068290304855721461504825302555052446774142654545254262934355517881916550509726346812054631022303116192739672520376488800457926205531644933881281452451956314387834757516866659993934939411619518144495045568025324062752233289116245706415988709450477981770108654404190871429277974640179204987498146033065929548648011764605992182568174133025429198208263274382422526920181565599010898312970940640013525145967443417241633799463448499306303288156204569594126571186753759641361034449120216011681969100610015751069285397842467958343316440811514839588250850814788380342934214887450013973423872654699104625629645812513590184706143109631537057826649769501918134813361886435598725746399550764437825461570491084268286332664574688231315066252218915767583822232668364044072427386538724676347530383084359256296342467823638292507302388558315678948172764655300864059939428648544756117281441069472334080913728041709271441948376510505307014795149745302890028901566377132633565878918744792915213992230589918444860530502339838979932396268386765978630194720693635801723341583732030030536568184909364878023572603054441157563992934445045616354539601262728871550057018306403061772940146133625890021081814146523460292995407535783331304707794717481116715706469572089315900283200561425849396787888233109218714805593246732778645092788006130106147396841042396191947734764513932389938923729032510906035028612583476410668604116345439202483475620061962079135605516054825122447289708118118148457939890771726966078177660409231383349832690101473293353440933484406784153014431835254012511673540817980046446820452637368857894662694227943640101319930244378966634217203899114705880742271853501225011381019416493264170264763695391370916793184887510792852990134155974144898680586127626899997941238253926102751988164206831147862691753542049810513199542406829410223557149943983991770189745867129492313316743175472333265860829216075089892620560196832656692931734459344731827192472543410042049877459696039649475880951787449640577049246891143377343539355970579043973751564969200154229042097600800728581190509535649049266332921781324917434303506716225661451259962689352899488845689620491287548450183644575935218744720054624632749922617503762589347960944212117441720656113235423111090622942047902268497163515227477918294990163743481557296621197914758681400856924547461733160017412354092863164182383313326614124242589715864660257622095394888447964763918898252117119516275486854658822715922412709490891976131707486553023023445711830759146689095880382208157925996115366139900426791214149681318134723619707822911156807320597932603517470207944025788913806900051175111939503902582162186955108654094988129700256792523565097037547560932842798699235380523482633614861372965927008973611645133120188445522226283292985429794612860628664139774100997454413078348983091972769496155817568194298949269803603208614289943879943388281799752880624181613095682275349839944078394678836107843783496535203105512144511872580683613489742099356227280011061242102318358754037669512122079608577525365946859749416567487338586696218788499042637687510017466423422537268718904664069641687282230052868008853427039441960773626729461414539204639246297558736916075050054987093305577054319060832936894989716022935499571768589700697158427534184454937645104489601970954356564050755608350703248411774428747024927857431561064642517795589773966907961427426415140389466689207446344981656178604240725744340273808017907470710046939042263431186135183141197463176749594480450684189039986934557125532410349038124322230562791238235111804354624911878478839542267062621824487525846230484946619364057686718501345646787770859234082030092540221145797943836865310514971381156548974024795265319622617834789775048820282767196364035233403533135734451967200001324270309564944909158198448847377924252540949618575752508128018788645963365643849011662209300421503903116817077712341268618252227303343356960863013057936677614534227031929906122084240710236432253750924637368519775535408962479733327392649866778426464405101827951377439412115075900485525601593989571890318804031430973306078648415658147489134827621727283227708098053559894565979099500609969764894362265200496897467722913364353172106305426856244494964479181754351487275168971627274695966195035170560834447933711473172975745119259268120514172277053762771756360332817882029281246138269877977866839007413864315986297574410241322997348212930872929967183458207104144843599462815629047546447862232513283544690031894083165874393145879367344599642880471248015198773414199439964677600442918601239594617509131771390728808501230936669185634585867673658632290641183714994339944986812097817049055358158501443433494246931064997641934843394021517715118390814160750680531460178321180780559476136036019568615960719528153831147144487354045442562096759705181931200426715210219406104559146731551743685486220360265461352120515133036489970199388923801025625283639858506458150709429666296417791619889416484612911012695347336919461507386868819381901022248246108857272995232785124488240510932906310930051845976136533156139979155884398126765195665883194009093195226887702031576184379653359375162994223722156495917659436965602032654377745168774669798666764401756808275332834698965024576457597489748091520445694151203391119216869791568857215490323700143273741043874480109321959896901545016773270215763675980860674739760473871111169921807098081182414362460741981012706260441858161196805382957211575825012591618992998060439458847965657452437945026818789995215872126332308708568872267582741399513879115370828981048420681302738864865611992718450143091029550362578949749674276841341781754409143632138025548780876014422121193102578368589008818543161053833807207906005837573353968527016456261715652796722517609157392905934088527665376001227476653763047201989281152034677912430662239992941570655609020775799217398558513758808402284113399511279319886436915279959152765213090848955797128473261077526843785451327648823406761966739586985248674977039810055036594928201354982731754330256463767947082080045974937787030517355395776795397993745102856893356369394023787628821107921020562564382356889671345392840522539026257054640963604798041948910176860555620062962775758169286999951102013353198263916862617376546059051490235094722688505364672425982002385460465130840144920794328034436512744626852359462588701386266747463147944306646594080105068536305393421576541539665396998045898562830216459016697075562386022709545519825579588464068872969281277039223509879082681470843453342064582653215301979059313163484544933069718248018095226006050057860905187743069065391946424342888539816301187764897857705219223156707457407558878496432786398476163985222846911941749422480202289664775155734122211597730082434574476695835179557636257323919615907160614470779409432010137131174659849802419380014562405985284326940394891861148279438214647604509670753668576094925847687319608805316215761518124320267909562754793759647600433754684884063104975879014449343400006983583749548148343258832450235325098312511702668737161104622946756951462546209460442553038496765018840111410608261103020762819917439631888101582120540527817793628836689165027898657595877219283184761100227607422668734621899938857889114380112824058540581405253636604964105277437498687955413679777037248622171664567123921395304991404339601354043348282458276780837176454435008283763407562045130369395276222030589183064634117485571016071835979055689796468398623073985195640021464217427421915515692257146141643930147395623613418217455476413282975712509943231583693946752923925413627209073402817745491355799670962317810900638297220940562483899961666833883958546642124406563838979912262868782008475829889926979242722614311192735333782418091813535652064802303991695014533085146716327388460756205653022681880714290415505981539253572418122589451045347189411955372717195574805822411297997296896103061229647448245562474760396619899134644550214582306940508078075749219066585123294600848894642685177660727883964232032366220850993961382887965854459737061286684842198649538058996971887741652195754314332099908361551987476814619672307171459323581231959739911609504994207174612239524711455590942747719547686416184815488464449553915564622668996136280447081271279264987283017122047195206791812846360376664642633264079634876962614137709946874413869550927649204197828798109727553619390308851972401859190285166834915229544496102163868474949015974112898123975051179220377527710502193702947878861790172935905946391408824870104284340484143696562418485815066778413471973339904677139661603377801730176876192842360979613100013382408903642519139196448135437635380921975484459180009224496483027361614160418099297545608337194726619070099216501496623373599031274070433212212589152013282763030180125863588485982572108936894741654042881301786601186291695516912229087438173755223429124384185471817117475424435793509472898339224853156254868314311373861065352045447357529199516699077765176547548686380282451568780480959242008007209335193459180225987187132521953679942947905370379421821694264773935207316133415070025851742012743925743904061343557784074539258806031187581409526087860467602504854049559544406754470098203765931075783462699281837041607777654198865062299458767438771468635036121746092246337376988722048236026650513034330839645862901175863735231323901028768860263564110660425670507010285301774956135089513048835064133487716788647977342515932917035777611449263849316760519456580150680159258500866356842805466546951237547650854950419331837137674119438142662392817448950324111395930485660090579745434865242630967506387732167560930375275508768181262025530764191246681843560534100771625301218305395864519028715391400769962027364421998846251500488095917585143170632121408154696279998880030685851912775625544797151553150232331991449048829505341952829259829377139882414830895888612043245780097287892491955148845570430812099737980338462877838806927033680305896113427337691916377177046350528589108684264915103180634479352441196746609318933463988371135922580992341244033494702774095595834492815776356837547104058816829418596980399661086096345980470566667283105962625823892089262073241344953566893901140582110327514926822980007016266692536417481657475687203264926111609469925311517167405014459588445822713329876236882753132967227645616109468575170822579323167179924826310390362194460234807781395521186794910586817968246807792453008122930767728889428796615049678694253329697293900332792883744317712703988806370438924984249578073623536542647216909740096450882403032903852418290610794396038906024420354322063786439499690057885078318737717393076350731899825543945407270218920919720547676566818664826525236840054810336825860043031223937338228004620912327575281208724480354652636997390098953711495851660641165180959135895976055621329227031437360421258361536842395917976827515073617858780574445871067741122916300789620091306341338339989998999282940684970383019851898008581504850594138610064225928483619067287166648202600161983139165813188866111879108343839140386078783824195713888018906022502073506131437489150444605952943783475535465117109374590379473618415947491740861492803677076162854789894670346894652244062350660821168225350571179276358600823928365329791477414378129360950209214270407351982231310640185222234808199785019262935338454275595323431827848751133927457675731877580418270025847804559953068439245304207287297283607061291078240563041326694843370305065304696390411765067150433484354423073894154333817138315955746879441302133324380651781354137256588545002598097280102543711031528214589663066798982589678979164503128205552155718418075176412507058413135575826773740049780208270852706947050423682378111520119331521790574444394970943567050701886231462656336930902297923606128572332697178235023321641618128577167496657227779346676616803043603137337918212100765060344520478921824951561424981533290329814038835062816077920324028722026034291938534835059586736508537892847532995352741048226017939045853815258325106550896185549164734347711180104765570557740015525823728212561591075289972375287742627336681017053933615237580820704039726820906288288196660527218277218656301658790110618507259396088962285945061456735271510500553716731161770952105448388996916668901723629179107585262753928276180893519575319373116186722057463946516355016102840910378169850931812659760317031699450209315989129952080129197938885347748494266996003387863282387836944398249330489465198698764224213417070798001596862618113300131116117782915576669658347863276558896671713958947644034957063258609472811679929388419054079374392451258897745570424563363135488109186224937314251443036723376312909913612806238166029008654087280696624006835800774726239010071232870878477645721849984783400233610624883913538808096144779564290904923925389588959569926044676212712611504076872010645375943213354299734221713130983703370923900545246283570909922442036323493045509239656918955414558377541220281499055715997191140830528872869157018897254145427391422895880203354939494706310095613096623343347687119415661732501918117744618335869815059317377738811244187159406112625904845091553167226147168572462968983306177887562141333685919468199542975406060821628430280375306870838043993050495084286842389165068538139530263179108344922905176293217796275494854034682815562723550706291495660410523758844358781714159143332328254773339673088559141201887356939394117157735579477834101353993286119825379739612238173767941238840303780282195397339430627289231617054153626685817977450829382484169259064935868590805613184283392530329018503972420129027803415841285612007962170184350819794318485057297626334619508511355442937940562515824870642786198084664094928085130376688147566714427414098549645172895949619999594281995455862692391705168464137884911116409135304068602174691249718290881155439904450365940321767459557951035800570998259602546533851388784123345220226849966145534245272691352659187117648906534709881979939011021859904957386768111666213212173092223495100920980913158701954139808056727065062984240372165338761568617058921064472120282585533954595084742939357435794555751049758487440954550659757741220873043269486755663004265016427163828099645930871055571651004640756333093890993650505375351642225234464019957460209501128267289818881772022840887828235637805732766006284172815081941315611764779314554585223382522825789144972241335088444126395901710546053791024587910736965570930219451720935940878032381256115069245378393414940957820632534279050060715569030490922641185176695684615271342788162853590997548136540424696171273258320461611145130737991176132848357861757310215289292566880037393540439540414675836735110938882138365829003278401125518276107718998488902469220433965393452092634007361216577021798021719481277162295039241605995680320488353501374945520388079301364265784083604101184179789141088229151884456545009903120989312098789551183041463471315995453571220205398924383312091328789390053208293101059717688108439110138354588566760177554664646077558575017714794890605445473323713752364672483972467831636630529807513233208637084189865032552960620976994658699596612593638960057921542636980660445961888511269341591955933052688191223639695462897586685821360106580282303529318669615668222141021416512003015671576497888404326708956676414034830063915480971385870798568444694308672993426812350996828692647863742919900255834980273375157532987427240895523731911331115098768530392977623730373096457245083966165335549695142158377086922082570634797509486070930690909095522512114550060846209352527136183241109192638173228839368214888100273175991521387671717694535172177825735926806478847348824568376986237318956920412546560521006628051121791750858890249453297737513705528895104135177377386949418507718380883319975689871933855628423453123641892683839458745558085512535726566622884393579233436205077726460002143195245615917597263543753339401898848163381777927054475317683559117367201958354106006905318101669355783598567130307211652312131053196870667814691994483206482634373275510938100823356545789928941773366700095713673422360544401410050500125000653390103231246940887764792313823972440011144715671074658722933986124334851848853347090854982591924457154661384211440467685046839251397111689727631560369112269587055620478738933372838366181276531749490629578607257625117896333576002248895047890581646079117522891786545356658141495163492125187003004443181205606049317597296462469565440776696252663565919914228762720556464192946138110087242852210266138640319796461706527390638601609520341107743479477141486955954443448875011427387958009528726165362630629576128305956083854885677226850623415213627227774517358762310852782093778696220277187913908620388435252744081853449578180466984657158321764273445129236274270797813422787631057664003505092528785570387387201621066992926883943132812256416878521019070452214760669604230523323964077903383531251762295861633717801237467194173561603206973384861545415542389050679609080341911653597814846108447919536816886276079893322652742128081951260284493925523063619833459587601484204129537403608807442066684350244494608027293846086907509230569444338531133009355537530584461023317521800584889095334632882205809924148838522035126057035494253597296374551031219547528843986978770299509392570759527956250132361809330657731639084268629634791804581293508704112056208352237588208046067037517895697997538135824428323005159983539850263392084793206123887563228583029999040409813891630616610996132957173557933785152041119120075234787970475083612797476579658285723693390402002230858121700319503176397336477720902430179882708975267575433146496491922470887653038843724243329245671690374565453930648217929341624440119783651870409451581601591727858457150426476521037016705546234403725065374686841962859969005825572059414875994299069897357461461781533466060934911966756810776347461911334579686084796347851186055448547541128667359343343952991234514984245399931609246272221501315679371767854472056776737279643707613162826466663861430194022964386821593222748594674446384062876450856843462049352987195125970104983432264412010594443323691773932389101864292700339057705397759363418020409072468043593834518321669869530524465435704694761927435581849604430735100442280801805253819924601347236744111165654038838987450027196011746040706065130501403753721212527099362022694453184996205093837264502488441775559236303668902229103431583217108134850105935562835222013636967910371976618874809849502318670849743957167239325677511668357117597609509872448853828373063189414133443572261520305442764239323453529121816859857054646060657744216631777889917279638089714456088009077653451379572462765071499033435524760784715389293085188208076084168352631359716192902498978070741141417109533014774175256636156960460283117126069669861386093671431298449010817084118544750139608878612769936165069288804571057757484447574969684684544286000307749852673456124240455005961824158273387710019397866447153621340393600574189073985090092489193369242075991388394551577130128667745251774111934125529126878159686759157058934361062075957003465781855503215470043935241967403905717680553045874269433708269947368260890036373348490109847643864719219529914313421799288235406720443505056046271241094183117648227471774084032149712294357647722339891618252296814988693068395394127205805815314995177867358911225718938125231078792168548259705078814027703066233161767288851671124375703674952319531118945369100363021102889705404499951422266989941722071095521027323763144800908683377255887736301600847064509517352376026615984642206718187927495000234770997009253414505337475322353776036479315825093304735984793216025330566113050168676690918780016369034492963866378829368004451450502596066328318212747228196413227772178330399397592450510125213855850241386347069683529811249202552350269131091305977525950871672930670355941506022263756776456977392522143940923656166624161201135785703675968612917078710868315058446354277253403082450250824215484771161478252114941472661028973812111302543316470594134005223463015554498841290998384732480190629111488188152076689493837023641269201262438138047605521287402756899696130955032311331220526829379014134368362811854121180347720230830264044403895215244934813912425615620594328232401120750692696292432389835152587875036905473984132028160412790026568579914425964564028314152161671038186298150307749661837845500135722459858149533623514352393239672018604221881760407370198007236798523674222570418844461157384663978325589509117691702244712712440152415502005420433332432845871904548080470580598517131920457181032610629469140406743669936087288250914586693485014039788561844294289004269279582387121475361463421932046447465275834410342520280551194027248678512252654803031319405314786133574897594456571939752171246984674552942435699037244543706083047976210252421333098662013232388823201191961114438738016430627580716619285179887183522093083670946393057839396042341771442364424329086354840785723329697328795538310591355806886264141274030067266216788566796738588519149542725651715819205762926968938161882615001008615742997236185297271968180027482014876934634161800170875281244523650888021808525485515345448295598191169812498474869705746902971643554788006507674221503743482598507403370707936035938088694071374826686361818645915817066560581554292979407303263159915394581413151212267366633018879232856400535938790694912289833492711154538511968597332930245817819029150990881045522542751716068844337528317223640258618137803298210149467640156786297578745343020727165137643473796278321185980706620556885056295480791554327214690917379097287359824300558478153227274037489776719248814592865886637017965324968178548870707613081762450754561263232807026130392710959646811494762549880480264941333242025575775530200711051564282372646109491809587783236423303588893932440170072945505505951642080185474013275721916269930590141124501036568484713905066319396683267537025551170169219751925416762388233633858812453272527540824280455499108682192789581341291199928112521875308158836115524038087589868619300971973739364764309336002454250242619744765294733793507696459229507388884227633279269694957256773726742015971446465241866915215532726887412928549291305309277601752170498216994686753421210159941167962745337341674074343102778164537445616756202137987879927857749625391717247664013925558040771336606431026523686231954186613653760537479169105479286357906455451062104504594345508869342174876637461550837180227104820316976344788072261625001477552450771672889693047395183459754019280898906811052737956476581299128816216347006249794570018350399025378739439528616910139349533049628931285813409761388302413562504297042499906957660436873182638080101275710249978013161188159033939513820006119705268762129370233630179498442136665703186083792026103971126786015498479984824180184749769984671308698688375949369816651801758156322857981184021125512883604858348222110568635967917662609159699670422645234298512881494051317481600654262230529157471799165365058384783350928404288535153451120490558038180133291324874233900261873465169820370594217317346854413194509594270607972045716780697062168358417146937144371581090565449276492429968136745322235851294210741480445169031650961939675953136583176305443924353241219559153568262484944515860891776925612179909565154689138443807089844563131842747041011736887107827114124439860009807881527568939165808090622724832190946969564128825635047924027239550422524252589278606222807473678775950956499286072708056087901843422979894375696938733695573654868846463637850829586857009469926406601188285402972048598833440273672296248127210488723089270124206186129657161988087931105849651072915857367754862955284093186961134109447964136359160830792917009665991405473257299545326510813723340031919488349626309057048112351493598243685756532295339538369369421335392829457092462449125768677538543027065654232891397982054285227007220412837979752029948868772305728595561750631806253544401749238934182561522455105666404696153118275332719234723021334262777628644769473772598485707205259788008876052430883050553736921054306643674075492989255525052489510690657416800306763804089611892585720906042897436507818060038809930849792957440733295945536668973425638079845117593071128360121382812548608231403166943022671377307459435629163206457400164619142141122643352262149695511307237947718300857604145690413515454957807173066333185456490755124029241624045843144203697918927845673019390585247305936279431556222001189980420417129844928051115995408794200287012176324354380101237214484609612623006125842642373854819108722871342229309966328322944205758379061109534807011508544325696417676434554606711605819339965257134646934426701083075647395913072135092893455532235104396085396137858039948021723377236218319379837502504659837622074131941011435987897090414882416958503426289481274028736793907762930259312741191850929445617213497526265469815717058327259068509311893063036152543351248973469479036867392130735854304710408098276472259608462663724409668449273633657601083974024021025068316903765543233118738556932102243103782855811112300064198008848116764501215965460659899484622219166808668527532541833687007748524505351716817651159994042331650232527472525341470215252515967094504941119955417116733384472279643368428814706120326712656862433131785708609408566078857107197488590513716985629317287378600386470852375801327932503228926873999846047465539716101264134437055316933888028332715987965888224314732105285617363899233490313858542293070494553549160718202586293627276708299604779184676548699727116647384723557054913174535735200282379568836525514663539645664792979226267831680922112871789257510966720131025353104254216119518154858858751077724197991701474021421807961978613820384279207004231510978822063718338891770137593688335791917380771017794716971174616601955519142231414345447885781819428701130641124550518746176830876057665890342485536801830142152701767376920214045319341786848656223818325492882816984098357561773512039359574779346217754028084736618606024083647714459735267369604939442596175245581497031711000862710303524791828295453484797694706035342023311168483597341782170738366237322840188758460716486734435421121596360149508903046124340256489004967147647850972141616750729744950843652102524125713156388778989708264653232853500202119064368239915859359249252803584453448533380530001548118958455736272238627280870712334773212958235105566995052072806681295935552882784638301780805111623916062228573264730732838534752713872742024366694508761857008763920357016835246615562436568220725235406010589561992156515202375081820282395710509185033063220365452550543340993578376771814509068614133279475327326416929672458531561127395014397101520186948774088548662349610823773927659798446499083654606077698394372741162020560030924651742989751367584724504358982658646214280588514252985663515476096857166389194665304824143337061961037561176134524478953974371458476033455311940516407418208313870686123606480623234249180424900125719312522912166263304400923255873096185070829061040780738340276085251854635023946416576912522927389088773435489795192826903747781471889056413939844080883441572284088330127387501997157816965230242373130137732742603449021365762473894064799065429427335021623383425199764983730236862582965896952684888106744052761150410095011551722839799497531608515888959171409191479324322540825757543300365707262109737708505792131476770368801197091026183103393491740410272901311512385371079862824024696536251301609394784356175674925360684477236659717434943921411000920125197281253153342506361302177312854840403632822053293350039840384566367969507772275157516504492950073737793904420711263376970672071332302880347078140769509114899547247783102035600083247094282296917560329225603914430126557469640868381360269608251272142995694451831257142059644601549995004385847429000211661947559762343804326301986208305606205301468018337659075415788594970861502960167964123433173987911037804297045140144801280545849474628876279284821720420983409956894408776117129418423076937363832863380430758331718221731729597778776259729601473210060601122436858942233182036031450747232092447347834992167366459848414778000926924812222018453700868933398630235853441784359517779409152126378384746257788298425608745260019335120323963012411949308687338515022647145238406146058890059646226625969505841732943765419372516212337586760644585735729924863821674541429545765091172288776810396918710313848723713576452985185438910746897663360365245731998034405530696623374697341006439231281095962655261666989652184118877103797412158026411384358856709760580506900191389153991966893902292732819330695407173816705275274372688818858748354861390400339238552427658758712140877467910329591950773212352273835707829254246085435936191961603531959823156135390924699317491880419053187152162758099492190700030559216422624840932440463127262190848999690602405296842685538537868296855078029734726066321780347056830679432718688699353389082536937423377418451247581360837753639077758626975829263323955207309910932004757186342471137569686516195057852531428142317641634535749981728476199774840615132842138542735233130450735138371538302448060063899875468798390775866826722838859296572221584301101150503849892338982273104364553190232092679720946880047605417272131332964629678675581224506858561363319033164997228488110356947959808416768230688951206334101877224917955961486972466248329729035334240948886979341715912076303618466429834113167506167493615622201420572688360700226888337617960599659628754616423355253721940060165716153416946225257309506212152565178069439050309232256066828076141247764055578907653738618728277978852308930277474915542648763384541083153483336680181788030200151929782478852992998935717449900407865007363176478790217255360021983481309021233119289162935521150342963869263548777335910539296714488805021375852769774894692787739666436901047519726828807193738133730720150491719529373338210983458366991292891196500495505921983265998954777843343664378978487231971114457657787398384052278840100829329276036363456513670027787325157116598343907446302637369197217227938704717003999442564820514236883099905169358516687526335442221794814827572628063051224983746997593970495656567810546039124057827938560582611947583346860134869854480573134973861729354751612729760878236857160494079494997417889814144271461195162733296324676557641334213700881279375159485602860533208118776672680099901553088254806897265731759305791714709453980340557107667829294082566575741297077788734756870332967458916264506499837737216111645466970601504482422694371038623146247967308979830691234655228863585216030439534291766986256937415404207399641524713533933669949289345172908733893340890145465649573473775461756110235252924758730465785354425121130982024611747700663048933632463843928408024230089163205854108333057354202768195108405073370427300861748686576653034649811670443148200135882261632051688702167975787692403850706406789016619801226615706314741483738531802683437053485566694072014261703792900376997739379537320843207144270123125666786403141726979304343529483708816301353791346406128628389204388192930571445938143159986147244220689778027334072762368479399510584514264281814787259841592825304080604015945542396845703538180803492555226498947112433984018052959162589804347542532229064221579419653702235619602206355411085796375224998140207164337877702209861471434999196675650338916172785426378418474852712203412621375183520236268511784126600023758773052688968444666076582130263503394184675396994134170506243564496046291230909413935688400676625762081605657756782313515021975921026764770554160289920023839846045151449939604192504760136021776143038032025440111368556756741193335313176640856111538954933163528368165829722805660250232711484495026637319026449195510808113103970634268895732999308039336241231820567589566824072842550971098250599790322706302278664800755454996187909288186748428310964085577040375900503984132551757483273108964747408070909609137025655541914866614801619488910980998305979926415187694534040758187830297880652996657118696811513173686350010211549525540252722512607193620763912924010776192440375031987611075950442859006134373861817375933587331392056357727852121512353946252086350014351365900904674886627831726129474187580671490442164780216608272221699013289074698578527151881492037585570446607219217560506052591313487969747563711505198506839996108041116808697418315644979699618520052250730749501086578400872838709005310058903887484665900746581593973706394555007292870463774601233625447216204568073919312226399158411059246089707166170749833797653445906953342965867731333654732980310181660976343260787426220028618710336410007300456770507181937699642978827946834940504448471050132125085161275885828721623540993207295258843535612894340231212075358001766985163195054738386539519225965163727607921810022786389949631480827258168311090380522769960257670870907647232376379986636936816302597745601595536703491169044460208086249543163773891684105827439465432782388440408505502759920314554374028096953139054493922049480327108328411136488694807414188350045337886954501443368489718105544163952659374974029615077168834389494470211242349962651506648228588554522686795393028056304180415075368653333845791475049724184633374783509036911669427483793389275878063569774890455276401934133421897070951700882129856686732694704553896138603307889284030094896164758605763200268582453097025183559389999291640803267882613429204636015010786150436675663721798649465282859484266475428094473416499130437960039544695952096637363391705048418347166320927012386871330810797255574381718387380563444724878802314928735384516157087610815828050267812945146010187837982745351942071487837192133513302663260762544225575417713450908340029110216684739270829745617836356927273449919552902738751433547193064448726710529468078899477925894468659552871379466436320796735440194141632192017227897467200435636606877949433086854637639461294964919380789658390636154276684230403365848787313155288872009078759478478320732828190955332808369956358793832684706056508179611009088507875853485174385602148983360732843359886710349604222121814220934647906699253036350048946189498092632418134682717663212264966810098640885368329943063944135325676683251528973703904222246029321947652028942814929686109306764053570014465525895281824454540540105087520412045829159101812613618974142011432682872522096182735318255393334902142262902472093658753506655250660041146706087502944590970531135509989637587056693304964183573359562913579755756490906006945603249716495532701292015398862317498923651266183537997381792551091064620192448958444857156404145921327076973815554158929560171975933022184978694880566609514140653259547083340912711069036895056876520633092417136035746242570975878497778945449837852086993184955897120066236425391712157018125568387549959113195041151596438223441595498874561601038969619475073967940373272473901945822822242515399183240704874043728257875253447894581029578043362973125916125052003132341075433052487070362732199043931851540110288394830766453645014587808178090505684629385136976287348535746062595052253258522152117235524810855605742753317870926171179249257897399136213298073116978358964390910491247540754053983692397785050559972823836419645869579999430255276015471814723728374152160234225315753358630198365596305116486947375948962874698753519407321721806239694204139689814241517614898439352835922181503919072863397767997906878336041163160426092047256503364690118822527862337767907780344947475560588188761961119038888245450154206359266869308372623164792658343961463191098264461982412243524912434288606548481245628973782235596801614804230508749252571519373002259714474719737008427075349818128792571691871596730667189845916307253780157129919130076116474842092071094243097553229025931477547414032622043483630317824884310810468252696028016267265382194229961649278944883478225867023835214385554367694600237016860474148027409633440640953373958294892904460884983106979048376851108070411064309622346742986080528338429178614247859899004917681213922440721847045663062868520836119605798992299327565010982830600472399258164741534690399136734282931919422888812966233678477161264254163645494824558233547007776210428372958402240518198118942481133854034520031566525005959504742394557658327370987303580431979843312137759641380586235673616603375269357997069716125343540476493605788817235149200315870377908379274666512223465008670717470359128324287968797026058181298342340841593581398335992416952834178986963834065089010636994274631249349944992065868571230916252770876766978651040516652978861469743663760072422097705574516394340171060075116202584045181923078111843180266128632455620448242649569112622011031513906307270974769520506189414147672645505298698838113583133603992491558814527411678660239162673833227620968435140984439384818494993441834874362009695052752180900252311250604493365811933554013056449633700010324315967534765524999048075448965559789599758125334199823382378208832561575170946940120581535879121304758138437670417528540854629498325802606357705091922532526840243233609453112918502831193436002255778434506151269120339745299466153201435495222003485998513039262476855989574175921502644834972726125541799865582218184149787333444050709317356418085028964896495996314297883241348784915825430268803480664730279776627513183813289535811774620145079673231424246641206780006383906587203045403579941655724039487883988599697538538269211290765610218892739669987547741744122311460078353976124074110392809269682170573013296832794882889389586753042649186619952404101539873451238009897068981620306587270857275060183495017468536752185454873321427658181288201931971527946133297102147603499669110034213951117984588085995551913327700681502826034130263732879946308078814221469594130770268568208311687999635995513477468058788508306534147358193289014757350948133520500738176107162745144721381393711773047837252353699915869597437962729728408107689498759495365140284433501210196464205948570564272367364038263644971282675913138979075584861457906215478172733464956475401478446013817174207030781806211153294380800373059825442592947403452756565653592633774888615141116636654630403514113812419594045362476606788287628450378853856439377222583131783347140855163250858025182255401630861117443283110950523723566166353295275769183583914071297154448571853707620565965062375055974059551015036659130059593497369531168775813570351502481907973241831453428403288098822877854815937302608190273330213787189005718931851440831269340519378611268703670414727104061893400003390872838194965125393433853616054001089651762136585119580914098796370493078948985497576741050536561214218677268591239326690283241283565561502141972457203596724143369289541463887080384130106027744433016390598521684108088827350857744387290207936662168339733682847620729625248339786165159351789419812016651534301540476812497988288406101400937746481782453191438306986679446035366972308085033122725281157338329507172019560098644031383466695743941291675790839989597970809873928857217312768845973723134864548275131020673445726258913163747045773013667957726024587187642585403033675265336339383192632933547802526835707128557350596829558538571935918380736524699865398084498115013598422933363906120350556832576978037026404454034004243931870333770500538688118136154744954539252612917927729352613211160551865491037308924948409719561032053003475623267772503564752434996825021077392016073097992967658459015483810963713617701132988165564914955279208470105848224612089693775975174216079414146157249149872535913014345496754492254927500814733504132618144473115523542750014910238781512097810516727946648852163230462810436970067190961046790386814334440565603382260951411099160469096629648463063994057070832741744804079986085066824599679953039250533178851576114100347035282367850177992600889331583886080112763812694984304654543914000484723460822121827566538551676150834879114316676096696205052170342294150350297104914524111456962941948172175717059813809619547489319673305587022061568001264596063492401220441947469961819891791395257413611637593784315419481980999444713448716292979335802460716381622916120955312190905769057934335014902953297774564909520038931047545174600449737996438985836623161789373583508793207767543280020781286616348449329846076102179895651986537349249119356993473425745579416557126701607131337049333373791856661053889264103036763133541893599966861135735199238610438517236955685825372000353281239856818521471694129543653736882016152055931561767982645945546676105296147432925290024970889227231399338107925902428068387589158834868995193601422113178519851296671184150552546292450845734989910557578136341902680337885231119381578140444997359077442513354039036021016370071422183220709002034332445822996378119740094697458871328928127045813458787135414168224261818579549624694571733947372757181695561201583070343272140637307408611345666380260184103424236228396964238330903415581880105022727187041104358792172422546472290397092634426114167749133853046905813336311216261901401003341757900412746533877952678713335759930071977214386235281240579590688909713796472908149841072931631146852795850357629003811880447126427898950570231211280695754140090021406992668605687138770083984806568892974167597451766913016284439944278539523866290302559352091384168254608796022605082076250336580913393341337730133549232769322145508530218806846947382643567075450293380807662618348931460783138296466681092511656970867027245606022872454308353807310377494225819181146165195382608606321179701040091202435593715327567361219566407294608475007066584574260788754294127608412187207334454336805976580790928286107650108372529487175004670748062693700898901088977052112524294486570012416623374397869042500785090921161008435504451618581417718054008081678019026991886531494599016812378010809305192352210877847792144794288185465129404276484554135016044528187535028754477670091696858362515838023755046702442203010987460764609020893678108044720968492428703374914709712198808443308633434193149773297843405462819490693242696436673797199480063119613647051429216609772707441658168195345156995867536664951878072094158260128478741597764165874978026347203695362233244499946175938776395385951391972446360843427063246673450310144475433701855884706474642592278016857830885163895497786374398993632499486876978811486617561406558947484893350314763146330111980463476331228208188495417875678579180802353198644148095564825770338492856944829478683950091380115527112876653944786866002769658065240168858362503076592840727570189049081445066766406701681219761028082029237856532842128497836893938589611691099309111483985026354586769434419394014766732149659862161133343373200968333452834052859250075605732826505883250731665801919389379971964745373665418569671084067182082911642717306969410804303012528564093857728263577759612959862792187388826829162719442392226367114795537022972757299602792149206779159538264338056145204985487774946033323638431639730997104050510617920457956439798189186044341775158131111388046723758229927302855001656395309792728840144527675341542781688646866128714742729815129781938123189674089430273292701602219380917960373602430563113922726243314563014113592556624912424825830029318972173950144637741963920046718571852970633804622883464497948583300144687276907344072587160094045882743952839446954327477040364829458006525001156812241439195598445173255167765424310919853371690965863378096583392049083528683142364975708123486466233974932468586474288922286480899286972894420830302559774352935860123078647892880230155895920624256984932607049722486076792012305385980749446459243971908841130509888409361775823907266351507007457007717649506768172143184137418083828300089229284812389690371889727394840378555599031556732202722073283508104926430836639055781448020039186642660181457536726053901902993264330119988911448219059994270042502964636651834705635207436181817110067238815048473070218115534531058622227123529957223210798989829474946781858523846000177973468469300061264102796390058092091796812257398547600657708231194013979073355731342139214152355879687423772428633475295367923619736891045298889516888104141054959954073074867133589923349979559106221018251637862152281770252513434134126985477449212846943519191943232945671192240594306172830776138699021777041142094580409425072611112990701208162467179669168488208518717750336641242681363766917822665568146267504682961557111875978048488694217093720297042349121276307472218870390063966938548419856239569606756650729757404310188321450067671576119364408132600256567312282983155602086030481934402886848004256780090281621170062245194579836914643810051827001258930574227416179971825205030516036166707996917570960372731990836399196854802217807653429111599235757404841281945912855786746727591393476506281920023618346315266185132604076121916829665980107527934366078640009165371759343972562890224141576022550530616572548887184299597356839277392398870280898492048849418489394418487490105912594670815581659236249427638072472295221563027923645657825938996174328517564416013375832257507958619909242464694396251458763036685873182146949805819498174706564859419039929573828380601180475804527400565099824344764446349634437338025870066626683054536336319227979544454258568618783653438220039691563674222109720458622543032635989178890861276278689507688873457150199535376717181368570827506792515078108311595275439557116231293653729358153359124238121652858150714295050722043431648200585680985753262030774084889187717293352086659727664923476181985440119731719616764393156665799199608106398668401078867930662307466186263469992189104137020883324876810534856557079806275812788815984586092140028756714505129005531357936285234841186204127183758178054824298327154051249922253885625214724854002533144081645994861320400880358249125194256123911038881413905194804717690986705851580698699041515858119970655715483081407798692340432327434878680090238646804648675390566476726438061124687384397897302484700313129240811786351951773306278540475971386816376534354213831345970491775538563583547745062440502255472315868185422704494032619175676477629528212374484507494390803391686848085850917542866919060812745523866813935338067034823988339110097955705147153835905236683299622725759791563058605590823262356959732359948089406548255715945974472232671544958270201249812681669314625799831272268644399342009236157583378101073218917822026639388663519362249956046127489630999342365538353875999003559315182831458167724367500726822935210402142900724685065722468316977628589983937539349605233346331022672496434848396889737731416061223650575429759893051715190782853146593369829852164030536185389618772140855365116944037386180361830763425742493935093539647695245081537572973396713786639592235817363638560278733441765577299281094337206540915882530526603727652492590059253464247755215399889906079083638908665385664422738358254691267632785492966109823767470029536171786872230460087192806263253308275516438758643892197077765904125277388924061781725788599268137075904826994094701904314287566936341152359712147861401826875209911234004568998223428630021529327212746702522185307948009322330989511422191611516213829600331128943754502537009403715343932636878693727955537089167060079143499557574942567563305898876799917754447278034269678313683950855089113744417649266935608495725561826696427082021271486046238913156097927791915795043128781705446132870614090562470109857338258074567539171701235222297800922989498271090444368485222952910499124386560218633064627298439416207404276340591676875707527941342452649885415402634726197875492037156509444399294861980930476055862242819676531896706618883790417747913115741931484395242024291020400217437338332269871688167806864119553964183809077152862152291433275138370996698743102065784621912617180471800441951407227582724370312300306279714634651948118880109933450718939537182793146562525520824595478540815253237045029040907333596202907844680032487421743386858534068498641778991350039666295228228934942026774901624353626777063683331529484779515389613673477178202834281406172289558097523587943376444494411005002683670739018301568371354796889126983100075719296285476432827583633009542588603269794905981325090059480289314389830110849562300190470772445792627192162689184888472939514276086861006951103065144794804694070011972462013157973082562070324375344704611594677129760642498819062240110005452428279466130156464037044879288214537622426347669661790630551786861948950921155619160896495430192462812300411243911589092952716192893034514254701501612512430245181058695748735062560337090265414441328944109279751619930030703741928694798775857219900177186610820104080796967206942879435719002759725213374121050431598336736595044893739368234519138303965592887585922940389963968858883317803813190056559368615933263155265657379163413440988588140471935701801897580551587104586191537309228638116733048449334688193141717413906991283053927335187813247177665883265538867045108972373818551383996252067584585631645237175651799731514516082782804402511006414402764693137300427243947682009063088302933059945624883934080402763628857372294466967006367009640540538972925443260667113136599257065599933265454767642940252432263792708720082049461415335237592091104737414544626263613825954748710669795908744955202031084415678162975571898705698749702853116873013034663291124278700121573296302450037973209476333845354023119048621731048300022085444615089073839230278966182201979527802249660071055159011584839824088925774651468328626625148806301152564985627004397145973207094705887822266762668179394199423786991264861858364617465235898502045957875637198335529005042709277228009119664779303106540888051681229589564342927149407749136473974369335449837357092707903546147858859026746868091092983913001570795493721946871845663352818311317936433829681899251521113198110302452403313740798414964771823529559629884662438234606445665644318053079017939344113694239065977426070653807032513392011855233509592803529587496307474319112271747339117169811551141847510325294079507652477133281945797319223686946698289506903972881143038165873321634826472945914712257685455427117069790761680381512816350894668439279671915669549270087477663809982349485236372481238487734036819572233359756017198728658356319628101118042284447974786852582881105858569691667556317402944283966947297272604383494694988861161302896524984220058717124421182704284079129127215828893851989067384736356104449814498005963846488082150375184725025584252560820306383050480640268512391218144606087414454037030189169575727050323961524255903877100991408315876524050816729644802048194819273952836514370084176719584547299701016930825649803250153770039876044781346594186494911448734679017176639376647731595502608285481363492524643132845444899104691837587726576713919987578610274166133228530024030397290585808236896381767524785128240181015097438398520392544681512577010064569347140302621067589473437795685465464206183024951247704386104318536981032508520134623679541955640514289583542570857475139835859829429504195874970203717405490200264317906180112870692890792449231575898078591221010297116894721256580642679052323620334999281401416362410772835012278433423356979699672100374346816159348336252484460563408154521218316130941864746852962415339691048922062741733312079219009282872131808385724574450576361300077388362389974494510904029286109762351193905019796767236209217697520627904786115487818367425654501426249112848973465420890934795961042395803524481171296767651526262884329143527424423057177214984181832203072044222990842293837154346930727827196118871564631794174467616461568609622471552104308446369224985203892911047013925718868681290319432674913913984592122295062825246576163048110254238169414605141460377426060246698980053045014261705985495096527644488785838434929340158991859721431670783590701098684249474299296785109481531553885055931303949727403310400556512961224904883533018373955681789539194757768619567942687181007897938131449499502449866192021583418350932999758019297057447843053936283599432133299226284472425391462617931336981796555449818703449871382977002399437253711219572808496438384981350430315269383428172966333633531090404444022426807481113451998597020610342721546025879499560088471362162337031929290032427651957894309280228759181402955739132122806384922148015450424354896168104996060603800260622393169700929614657756823376377776643684445604845334914062545060466777604610295168702650602177539901456072632374099770892080515215176840688299222345364685959437020530249852971538800591124550026825090100516279431572904766202743971232482341423582628465992517985043047438392434554918791508508823869000467972374792265075599695384438545112013022965916868665526515276989354056243507076378073974739150539755585890741323524711348455736456976240545104247450285145465200282239285029166377745470131563914115440095731951308445283439525353706811872255053885908185670751258201686623622213973809705537862911639224803892783529375580737452935090395472779103053957421530759237843614916001957844657941368764859393743282515232240761175581236495167255880210344400180947067436363558743474578607164306131072989542895637221147140195444322261069834718633157517392604698861131319814490996205973275841267707894713669273354652019694002287959662659986467600094081674651118434048415044788228461692303483962675588477057201921310716520844037263972984693626060731528640814349943020202838245606601702116951095853869379536706774812708005002359076249609678718119454944856619669104760398840610376782290647749794220827667321826480277925046509186036784167949086763351419261333409502874799575246838375768125016771486225609430929768283410072621333915510873490669989845196735051161608580213544826631199333617871220975870590190618573534447420105967601261986660526192686793346211819408529585689610140453674291024149673394529710470630191633419429788882308750763143725101348777533077248837050309837235314835719060400491457260946592451698420755863750264568280245685576285115625583033808130379278869937338542826078689791089872175376326146852802284880365004746752185532728411684041165185484605217457817921967377670691202519054720829148065142272315223247062610241157337889948079523296043962266500776664461934379816548691415428995448869314520750680328342826957909110950576949878589736253174999302385626499937165943087590426724909691760629985447401909172514132425831644105026489688362721828532218298470352584860467390921146455132801796068824830735097432363125753340572753064075129804495757022264546983524244159213324679488821491785024196085110518395757589349745394394979425753421867800117296634554528999831187226709256677695165392263982303862793540388045093998997930540432112365613362299907330768534838949038855273845363349284506151618790574457606733371215020014209385033387590602029525350070232770929954872351516031959019857706528958429326695946949910372067907838662899971158879020037797518573694547979393419360880007260064221114456208497101882223524638817076260697342950737093463800377639677194345579119161306903958867128315755307108464093774023800157702977305337848598879178002288629939920349955322139200582950929719877899187474782400573749434313877800558906834859685002558560332229858708004654818273603752605857197908908732937897845837467532117364566371731620478402539192338885164999437290959118198002063606958993945026361850127125845424926223641221752639705155397805543699157551655349481730212063282434997011382204250623050424953085890971639548306572355669622080591108501967211487093849011251074276127280537096248688164190109706179733225054346752901521509427215655237395677532384835651946459013680762626425323547201056686039678209564477387518080058999087954451675157271979761170173264450480613780762044638942638072252076272140729073997968465429590152888023730250743261160482818604119432630217802777699947752993922329684071418736274902817218673073651844718286114283924785023487801854965886497613992032662323306708990437684376377945365715111035483649741039595809442680724637010886792832841402758884304021704717017205783326008686970836700813804894926127938914601810064323538759594729524480131255229867957536425849807970700157218943427016454495045444081571673740048519152035087728099885640329550352124582473961244490799767895939590611625001529475872370515761725806024296600765826512739102683504147255117888670115131296250959925775755716923657531497529854806363111200371109638744605579188593075546941611686590686205498841067230107658468107170380852707229171265321726015379031873969928292767102866815078363150447076459151572461109481417739557613337580540473394027074262244028356551350690628333442486620104221665464561641850646954101663590266638154985164150995008422098013213309568724217289624957637598903460251375923918538964907875840263651915450407999457155465343082001013323437975835298644836930031537587142793299219628920695530578972157775831695649125961521986129322619463200023174539181589199605749412967519574705996240703567264578379456605723999518475837991584361346014872855324431287080570618771324369444773566542489664516662753025167207679370304800866807389288076936250801552691304125930723839395283070763992340915257486031191097754305857117666092430797224320938566906126658571078307690081185658159337636128368640350214907915407158480252261982918293822495704483726012003614122267228648732740099081713937564817494655003618691870665700546989375802391360288435859177019751113840814703327912288746123690502250850467341701046730022615470532818745198244349649176395299556381425525106179952361342495060375367204998245701419795798841946165768588548306020333005157079888262350857972681194621398473602366021075356164685442140111997270028455510500642217163894499793242547203849408431136966090549005542901428885088602838406312096966986467327853518958994094141250921803767514060311338373134484190562897586963205801656698367739293457419974901612399085633982058438196160017920690372616469780727921585945117026228278996623720496844415252917736342103719903037312828032710598548169002701296268537020101912853314723966903529373518386822463744462967337925619489193413290530871222369201086087468924966228971225229542100798856375305167848471664123506699653991640055512491326761618943110532873778301633481111879355905169173575685507346567753486502378515385098084969480889953282194505952621135692496761024661976779553011664003225227493870694782292145013836992350164117835335187698177125516765804839044956875064962071992536531667685887632384721506585303766589198605031945791848981213749526089850676966679978448591869044259850858646671599357967623061454874448195492496211166683090815574773196348931688588044127859358859955100826597571360279580934376681565658798711981388834287031228569540005062659738731368053626611659872065644479910145535627963807440595886413646940532994424479023552232427172692865107859768522729546117029819312422112461357280113741062468871188708356540384968667944161795575681282184787915416952983146483574035693382297789131120753774119007599313676419223385369195989119381160049078068746748726822306690312319281335796013718544943098759471542061266648600137748754713356754965878995023484232495604777086654798619862378797419698863633655468398854104823823918312466264441007213693946572489796332544377307759511610761678260805094033500880242502610329630876537576463108816763224612324352402309228345887943223817772302989857118444906919987960061687664902366084781284018247170525319345517439172318038959090625582775323764714304148808870571678496095549030199422625195604823583183234414370213461976888667983191637306097407327898200936344732064094589736651703607231232594431785481115532914012931719977376762438606763476123372550225484667481517063045879034338063539866898161094711812584277431599735714639349882265977086990396057225757407401301606714259799652560799251784265170560348077118500144073006905526255153704330611893286618479207436291441937074011675629475739091815740363670301343828903138778011070850964405155361517085335903488661201240987017069017768044226882019959553217336819067579974657597947959736894935331136273300855246773106895978517592076433257941462822822139739856023692300955420172655701557953411880130646030940005105661963867921543916422178792706337096219600225187944739174716099657231763938520319659967259324582299290386383122729346657366914462286025229089950188547459726998792848092841755302465424961472496692783917930614774779902894423161932086670012909979271047113169831472390846941216132521884182834937696719774833279849398062413460269958529956329827038678268146869533373660479117077058391450855200806557896361967716515709034550812084293537467091078774821236718279326153382784366668431982184258994186656875826959096183879723205190432952564231985135372219696980701986066887294293750524839840400813784491111979027431968495919350930481949685260432770886993056004117784841297968156384913636359205492242895646175303410412466089350275832168866118175214407733298148138389711365467626177507378161098618178104847753047524283256794184325578213579213130435828309096501165978950491137286439509419930792098356737532571084823337029200912551423712822965199566359491625508521607652024000639202243929550701330253472012019367318976529030205192938881837994256832403209595220049659117756028070695459937547712158504798090159768766446677321475805849021226084720924684113202054529198520666528489160531992644209967724669096323261305927014760509097029782728312897958886643365649770191629558829229125740372772017505170459021696223724437939287947973809660126660229562336946822684414810344087765497151758137832856059049516051645040558941004124635224631129605789964650660674976120457914993566686427497781294519591930915333492600680459849882227804583828802062018867155663265440206873029790590247567200102303572295856820738009895022420011256084361408613263279564833777165613935892143918353475173009399037275098215473847205332491809517235515301660448195164461364989228293731374477210437818521200374786094005378401357769588946716802363698013073342013927334871486830236332035885940839964973539855652813156625884173798528787267763844544090893200093209934081050251568912661421791162844222984011115720902756620491987948824901805792765422139059706355427355685058544921979265066450896489823546122462282889171622954227955813043284369189283913871430991288701846933643039042839308487064603465695426915602450767128638093476584817970665316709229346353613058253758663118582164261760637829080550235399665738611908925256408287508806931771991437556933489887001897951752218902042782135384258624812559222094876303215233597207299018186069757751725849450156109108690873018182363944210942623596106058738886800252784312652541827377645992851440563832413538860280668157285201308326679042748355485552685039690421773718806058080016587725979093080998477455618604188956245618559999734071643690888456643057737572983127850121252133626368828744871471583673451553618134621434106302989914770440193911352417888841237887944215664358179222600758528431797075990577335079550629519828621328895294130078193269810945981851362119337375180225896215719210148150969388509889418431260185862739104525141642226206032271239850809680720901487110421039764169511138073057190431650086583916407945571981627984667722374636519300796328854022486074158040585737364755573588956001649331863098989028069124491210574207013037768102095774452837408003512873429254406096107728855477715018162382044680181251877598393062887465960999330905632135043260676074800847169886044427046451839264036564640494821027040985107895097176764418383811871540642611027397714674218152185396722629852141460075308021759982229148156647836939270910163917484660164671574361071005073985469424390866967401459695035646057954570350057182910741177328825009387030041409046235344158862871594205241681933587690388549211548338337696559015980988019068044879445088017621905812118354894553699437264767296122444453544402226144101644583388692227290633674086498304636659923111027218196813293185604576648311434468809264653463309634817426319916329333741041629593016353542829375219835477188241153765116873994441220570295899558622736963411494877593515825071582292931516641037561490681074732296917140848555247286212359931993376279053560566399984604028176151130676197387742753919817303714163777148134856579496837468482733771080107593212759334632272845134614257943538673223907233015484313504276930866447852181999999155024223178043519878839236575202497392329705066141260101194993809891349745046388599641900153743795573717106730223828616398409877136033512649777310767623517042408549603594829132139389982428540702212583589968984876529699897371924509797163131269316418892096880177753603527147575681262247912838375395244267323409580747831637905902839711959768516433761409856553931880003735999405479096616960028382892026667089707039432741621428385218729962507360084206471278300322271043645896951692550530657920341736710000522571788630447932230545607242530993415235761139136036504299950811839769427790271108019053195069729313653823746963441899113865574508526540632453491162970997328298528473718233265075517611016170555384986684162152191228492245623933645332589409542705286793929105727048965192620517001175710471044016461734806397876424367955309017887309480632297029130823917085412614678366948190399875263398714277109491726167981799237588356420342458403021642034068862288284891203788334250618813406492139543994247246065097333575459079848331537821033049867868629480022219245026976134838166660386080138369671405584544131978624728743583089282556547701186365870599572126228393077281369119323888912240036096352399082287581418982014511005010575486151775729578571720259076624694262600488030467175095730754618205540813923049274559826979212143044408099663046789062066033957756556560997383687407342738126269976708033050097881566225967528206259253510472553552561363697052064660696917543623873370638727772640360021205705627922182230245130685389018061287832417610111098979189063113301040211038598841562067358741518332247479698473674136966002459230368330109887884798036088519360972108915089812054191759803850462639996200929794862101410961916996242904738551972474509909063473288510779470293107522856292839043883586218260247429084978877942947047870788087763701180383126293966859900434216209960341552839715214672755925308542522454049626950381895231772808014827314230580767423892077675417615143171794075503299413790902189516435654364739859753641784118599211041277908377588900141888247792087683280861912129487333759208816385181083197172597076190949387350034636811742597323670236717913701421099593948917340231555614156497460322369766775687325030123340757636622307386848403275999808698198837949432362774927861679237243901230100716832424952777934126493862429297052587070292035800581544259900578691288364139807125843274349021862119074643324069024608842661031132827737404369926505230412653958360648786328139811647602841028689510803004498196631790939435625686697275750332889995702301067560704473401097892840582100393452906784859000855653946526811851981748798252828704249410069395746446167131163553759347277742606888471826367014488130000093336112117429296356172137342025791721579102391229061279235209114576208090312438906987459855435839682635028685591015844212229593574217008757291720372367534746109979760565389839113275064857431165703021698461409732216405095188611016314062353352286706056046586882200270978899592874327416314808673934826092305466403448058356289669118594956826162273032884656864434359042853156818641428695525849267010515005138680797339759140430023379380730047481996709898960785591947857795895105695229412721003754689217460318219514994481589701769427129146793010998782909684281397222008535931158253078761465710747559029411775242579336373509570843539144354048955552626825295205871387496021225126779912119907407717464024459430834179123090280120807389718926968604025085146148800472319319702836771558067345101905651139566311751476168045469199612679691449075565281732658249643876146160783696723513535404735212901155262429150276641944426418588660465863593562204816693457339233339172365913142811038039814415760451855299447641079815950137950313516641744698145707555294273186515650206483448515135954159057136515354501450099178735625845223944739513608835587840333358849538320285309737824345516054307434139306948479056118785437700585973647352558793416189057470727128887445452677057418371798704072417595799636872261357628919874472714748925157940242692642680707645028076549154874735780464759396121880368248957939826024587660394980694944685885345059287581767441134583557281773881615906341352405399194927468664455689237986559961451367658120222904557392520931230348211244538191143986340260947755523697308292066573764106261335280425386478680672214823968564719627728436818144763127935355093170871762045930782652171439873706182491028217886295763103438410577232875720516737468238395169230297191646282499891191780354340006018361601049185851962329234187498397690286489739969389531622259329744532462930102316906727932325787068482789457819973548217750021164823519593483607049957514293368824531345465418579583802580556363496612863339298516734987750645822558228137910308977108137874032769740539231041728225457177140635709433774092352259218630873005998519182979429577914524391716104276520373103796719907860904801190255907135242154163447770509370078555750632930469606126519119653824442135039272827815575589449712125439262645323951103068227544646825988483183954235978580205309411214603312155470937887233378139294324876172030896318406442578641482310316722659850820364228557301460772255448394652658405616460710501333276857945704932150114967942351114603620988641302575015997094723679186645375870218335193969074408674207797682800616593174729579916092051380651239536560682718862553213484136450799175051634142648238345505730950860884324972471441891888547286422602206886808133134870991581775620172910473000723140009253555471385905294162600318221417102218718776440263463734566890078661162352661681742853035432128949043839967081930045569793086212716295651593073333597438115654072175997883012303204922618410341389481033416012861294341900476741120467322820640088080406351481505239947091575217835820899955774528724983700404848521549679316723533344529206482641204931600925825878215471843011023502615147471002234894365207943941834454309665092129412177795680880538402786201355853939618133676931533022197732850532081529674469826950125203817666687494157878497171211333869654075931168670412663512053291929077707254977095734388934731514878835977392788016512544756095697646818437359034983414774613767292275001797050937779922812522961944685477194907755403800194507910391408280137020998519592279494098843028355034144244307846054662234465112064094663208659602661352419659575015955796606890532864957404851207894829169324957424860645757002610603690279986238563455081268675266981731589091933278432046453131172221723396223281146358096994241486302217553830934015855264430351708397185979876049868920032022348546480827102760221151047916935380330586168044225610192260092128518633700113152819786121704656276482442464693320358255095293380219160397981657538052754509466912795046517974981671695656597725684298416066788992990958516616740021456401846119939479799089343466453301885427364995054625702762341928800272051525596173971652970848445482138719803187282137291712350384901465889591270224820108761983999888257670846826509071145224702116700354190267498712849673063991414331814798346859872448831140752161808632815169618836279692049963893472925345824743599468818343699607595554903618835929600120396985972751202612515763063579901132359251625634210905111546921059465563146872939531138197803301569947842208981772832531517247252115479614896900969109636895057772773499471938798587815290011373735265817319636842781148317409323674477964930920930499292272287413898455326632817613310267492409843273903604687246868756813689802448216469130081049500659607116256227474728029820551936663632474877579657153554139578696628572343881903302449758840658424029831787563881198132570949512769235012784394368835838538003964830947477682812000181419900844326566113011674564939522596602038424565130041038795311627745952096478901868954127189468310302610045258726510220000533839283259039770254230812792840409295221988249846593107498890941425777867922666973194163963311338087325966081266133321809584550468257966185157240819924678020266677459525782159001554432236057173303390294767046423192517289701882173750931056460685179200208643624062326102990026653425208552670632723743809567764827330377997247034773392868573947648281551046426345367966786352970522059934087321160309058837862691702416952115332678547340398781966288174593970331926715336047435407104724517063748328533133210558240135213225609871878535627426689220633693113705662241783239628738637285349072184629727939732656476181491632204164702796952106669990077968602027735586093130287018977409187030047414417673478569462272329934773354670408673753902290340636135006214702346703958694473416955908506998621539744008459391912621040537104543866736883631987633545734042690804957481065789180503632304144551959167794165594889386185157736106558654521983743404160727396032295857906358504269437993067662204000810489836451168780011543760651838764904561691428056032425770945610630094054385423981102186885208082992857299276872962336545859493242241013054283448397973971211477415663372812952623441559641505946986993006931164751725230174548486140762258574723348515130307289124098857643596682515260718093413690745705989997810408351383565896112822402341752677580906796988836017446487361708880826965120044995789490522292355530948895026950635950861500361338930051734017589230974019412701130975344981588865100746358125442775199284556641319330006475087114989959169676261659781382978229568062882765404757398186471447980545202362357815766966937108418890335162118919250047930212134184228718430147464289828135679158700012322362281890420058468851341040420562733217705571425604067545291833790768111758321031723129011192809769047516241529629028862757170321945492936287108722935707930569844076155298036299887079864653936802869721488143658798077213737584051203549209989812154705895325098382943071188212818653084515202296407985437072834060469537592998461761427496474069527812576253307526752904748091115321240113289921088327149537468971595141078920608725274533886561345366154699556305051978969392767588237521568343684325198121266339590533403915671190866191381151256969222747010504239435339818742806784228291736239925582806510445818686271750876861653511099993750576498356682160357771913224766978105785477642447929382877207496390356655236345348138564481122886565174202249792253750195088645679816374240280744964545965103520917052725259817610838735631195046874492602520713803047463183716557387934973154033766414569318071624040331748915962763276438691836627945372705033196365461359595081523073460385116439338468395843785902305403051673718951982906490747623971428883947774979351951829188505614191575800533702341809570453742752679340167978591642955999211154125781821431151222688540999706840731253444179292323961755161297318395618703086708125683802466730676542568977448363041365063953554682690035704178189254499015121063166529704138746301898438098036152721299362177209117854496835042339358834609133805718654772551223938059606859621936736588568943297258551509064020319781195601204351889090715359726338713742960481670565230694724111656728181214389501556777590381756885977467564096434955908240062236741037975832586121881932314605795698513914677912430453869885181105034732048281351726091363406438232831149138737358326973449021035226736498943696362960429884038802582657350730283552710241193332844614919449334240211606188194202402104995392744238235400031115864109304198647249916949823239310521125416111893582118713574414099209140104111897536857836165117699213562289734660722672188280920072429015147469758268880956992787550447413374928643591085290335825073765502519055656207637166724420227729675321003910251315881310144268995791956328621817794623125055031692435121957180248303523178866591410727703541040469781203738154116175536921039841586088821073285389849690736672402943725419140679396594800964510675886159027150865242585946334596512804459395629877427858921653177966414295723035868243171368099789038616687155766643753344467778239409644661953972706896132009200751631297532959311364205863850347796322339503975652629969479322739757377937194525920541279519963059645638765639148114820334344543974681565565141660746945935108454555028972002281999193623555846242211441547190062516282374792053117523684950598676876222972313258231554683321461098903696359605239069816514956677090594698335894379595769898607283760736307272542655108697086604289925939672052897985370979552726246711923893852488482293321420978674077657766335782598698721952846152073094721888167661900528892781119012680180593240671187755503117435032869393079512098231708719898955363718625989355552563457270689375743845310537776926021930809507179078848874545294899831587926827160268831114477134583426725023619297426887297046892784059697288405553269203197624568723556549305863985497249957460408445809151640094464019160690511964977271299358714087931892353658622308939908640845775623627693576770243019537205589320798749346512458844598876408683822409382535925931511392033069892264051101655007894563325681717584647497916274735411562563360721174644889693905678047971193727579106700472341332805585497748537942234600959653382666159797996343512755450137653138185244872648185343672661073437218454849026251122169797722189461932999267977552436802258302771567769383124988010422122120859278035507181145866793504937730893679053742766910319818478287181039516720218633725766046789555887897022392340027764913097944985043959133297437383665626103494166220055827495966217282265851243855980825754057923881398185511598616399198580393476962514209054576839698403250424852685109777906529073556113484715261086181662462249001201731442325980604546990170209402152647545796265084163220939485022212945558488137613135729164979639414703294423477088906383761213666204097154394714296060916664266104219758707548315073705960977421230700107450472054170691505026052016402776066224494432268266405525119964026852863590087413475078338644720432130328961167789961436496645354047476971496417967948473987515740090109495905434110926072347508202577504879093941947323037587008965506418016485540013889332557506645492402080308847730243020473343713493674139521855616992676917458428031106322518706981518702374613672293479589637021301094281385341285119811030278577790222269322448994038998566014886771780846162836967232303107199139969980944954901608856977269076004122072561497998070757500818994608377552963723797107334794370073851869054301156307094113578255465572347507105316111113984572913130250415039651194915412208601458866051491916194674041689607181464781286756947051225856978187245751611511671838157598736795431470819768232782546048155112544421916727067242172517583520386539660915526771311710492781286279019774937959413014901588591661476608650522530026805696050480620044095691869661665434015764473574815481769039315062377124075718965750570926983017878963331567699076050400912732441948990507705861941798875354843558225269294906846787535383553618358624985781364472970293244036378975127306927821271708472039899972896119432721346258687420758263579090981125296994726323242624777988721721461165582029667202348191827162805171736783013735456897062700571975060632969371742374770108457658944535735330430336621950376350375204978907099254989860701635170774952776091393262954023885243924255044600598122523886066800575642121500635631260116081147307777182860355748878559055895762175214748461393632518236960457500352450460566620495147246476985846292426873242006999840310763986757429408066363962478424615795022640508357291768878986444332850083009890598850908648046736571484154832632755350257719965251392740245045585772958904848718360350401646098640471717128526104015082345043017709960263648698399444897960403932131485719843748324521419456091554116681940133121525297155751926636835356254694271112962746886364644219815958383526518514884259675293753871797732438478790732678305367117352138672433813583808121580180082306956106572872735318692448541868392552151246217770252971098994957102874785021585649277538159613379824566880731633211345448132624575204967070396429570424312296968610486955750127632613686498645321422828870294764920406295416765826090951378660335432153198303553975515481036243179530330759801604922388852141232079499096388790891610091279108764256660972513441976851570265726236991372893337274678661147357005632975224831839258989351444512422382353327172635919216103918011504943260399309694476269101861971554843087960266971075511295334560627093302542579853193233049001439829014526686947689517148972792535969200143229792139061789973980448469153608090482250531844389468001573419094345603926662037606238214090270133538552649313361102857794965038704307551602573571586484655696540457857518752679130363019036053375041301568995446893898290204612132788466959845406254377892684317733750482647206996969496565204531283599650364385089889865849396217794398443400347167017145979126817155161827557291931103560505795830270519585541129892743504044367495784899915515618232255815306552213166514706401376206545023403390918303185156339198765283775437401874862994572316031853643121381601303493648439452621855268520801168720325648911144333741023821382647948347279663350092329183008813855891842114350289284974764667160417615487401729288659165280108739741506303356841647334502481053411389211390499300567427412710224763245962575596911728282236223709979544497982073677570910623328499589728593667950556868015924647392800170451749053597514705503682295019578814198276386093102322532704682279150750761447599347826692019906807620332615000001015472701905312850774299572520524443834082200018203343695074966050704032776486463137798712304780124410732010612493597106185039677232585237466809108161573026105711014366177349288599934846495177274279907930860131334980024365991378653824560607756848814237514391521207343176427999611120610559592128295155899382987579405903353095797839439924832471812258347352591558521337273169433308577590892947716284611971258552382663020762932898986145746037850231672300286185699470349308276479499444322292550335287768378684357934427338667273609199274026440691913237054611275500454373585438276561804231135991115468751566805264598798360201993438217741854738424839976005474410270296229621188486046157439578129635003966622944115275234999997199363430456898286216805258634295309293078083459337480924739601131438578051737687940693665058639545332611342516222894653356669367463358982432028268110948119550310765124550894444567371546360519260053152306865587443360450694764953943420152204519911562867994201168260382986146339338542636636171801751675087199100337265490157300220275121259859449258271831152835643299241047306685819462251328374983219533504386134478699161186382227213225896983113072437505987575180758684817011979340833032267418939319914548061516679123513459937458059477857047612501598572582711664700053887681087353426913777168253893202704290548716945597049018343443472475983279964371294517109650863950863777002284191292967957639033843935080283422541541152053139623594593905150716914342840870097259451870503864626459804533390081622926446590469624831925150666018891232396289790534998229565393795702708334980112667030049807229771912541797097537057741820549374026837965099431909415195475419049653818457536752270043275837480925183247271922530923049985689867855456200507153953205231723778135754406090862506477184931243631075231458794006808627328104623699674157414526216617646209560117382099914846888241738844270210232468673673034445014460647931195494906087190130258983470491822207654801925275632376892572198401521536717928663550248630008002118350392978938742608353748971866312122656639769110825091343145124237845793212510771507175947822309990234536955646662099576131309327920226786321874001643526390127235500334122929229751566652659119942591041370771763273931802624481171259029979460508502216098967146701772019838171823219777925116160944291304357994915657462523922371191630927051009655074294910272449023439181046051100298463499232186063381142804122697319535226902141623580866950996318473757728851781488699735006047807006561995828695952055500293172071070592459033099070071635282515172314507320230409111144839258270770374075185121167231728479835424322388691739284959692452278946828473325967732718772033774264978781589444198889714406980364266210134260658601237878064592445953107089919266063971080927670928080786622908977672143590573116479260520522911129218971712982150125127166299934827047525086631391844075288366834110887006890763079501785346895729308692869586416765408841541919536745976136160535078000868640239472019007808943678004018166082699069358621352176412839968272509004198768010700536108336257847070694405755256620889748941867926760821346479880982095887555082189128975548748754817518406117860047962549776979985691586264035034964142974799882727611679327812220958394929336585721246528608279358491829687071689329050730449406966837930034462917962522823060042668902155268158635457360007772544993124531634759116477363705372645876488858964170792104145751609715838402571417027185806170339339281040860180016424112960787992148020013862492221399151739658659516004471680639800608929302112584394668093152482233529868496340158300930116002316048593802295229240554666899713256849477338736429844087583988815951838659662541022256081029183165428062422144192284532566249558714869667109212367953760788423429452096585147966797475137912093684731287355086040782119478543117493752231584949199360887806359519293774444231313380350194577266811584020843961874666751368267523869852106759125667889344226653855297304710693301948740189118392234185611428992436726217012395492727197732249252885863125130976271114876023258450508124178190832367356610863252225776958248785669713378516473192030622046494734583542017788364573673718997278949527578955657155778522935622530979286295783924410783531073289975132630345387865340083531211447440578710496132361951067317604013437633341327745392359759611689366254170662226450317955294534728247812646851628211013417512827641689338764544395598402094657914471359557515200623449560301050852222029800253038977778357522045536612416384406934184786440856811432840682988279994445471966277539323231948217775046491114131683907658977303441816800084795484903644052707839114507457335385140268487356217967467813957116635532697250190148133732603278113292919906561213457956872672460540426793612343779855508173709601219171832777784685738848486376072097528732034385677509436338945157524821856785650177607073168645786174574439761852426915451690306489884383469660855305964932511746945729144760843845204986546136311630155281197756155337423621632230309854875677921098193498451843410156319456300962836652217122310081259669286866354263048338283432565068338240084434649933153061400685370472620158224437234561479874631398931766358804839161374487000590851736315722353903460256587795262459439552257735275536461486376283267322432770012737989930902258104168583946782216652532049357975508836573899416831509060418503497109157775225502184868555398547444366141167262064454455807830889507587082091133564612807575986209660476348035317282067874238628325933168170039413368166950867735741831979208305080350180363444541325879948645336237076919788156178995549014611286675279097555772944608949227130986904249298893959474637831868276215999109462480549611744039364800938080051891623702235501254147486627819487930486549367010127222544429927054739149196642171250018369324428200664995182089034546972410287412183004612586935959006490871348876918201088814018732772242433242056410690746023212921378693581554049043919096606168174998707815046628921218969611066744337894112870044518291802160956304282625122819214588293853541259492363003583074779967786471796725545380162509731243703605745547277854421050128027944560566678795681810490659440227626081680092070617618630580110882728354053492826057070961808529946031506754228205376099648765835608872831172728314698534894634696992511415185563561705071918977664118511478684897777816077517991238080702729289397822268164729101113662828294182602134519238944335876829047991772275074162208831802043838191682746186416893393991703304620573092882142277445663057119484955045515098354853518701097643920829079231688030522693734700461837686804895303297428960732942018427389423504218109419440214388055425655114531873665343241531688937870678236481315411114131698655381801913850515295518786154965210027755404791841392218783909246032566059125517684205408117466455415158779429564562659311166615726056623784705939984447290219821192096742459846607700586488045981603894697028381086065651180704323243082769865913523906858102619911654195367620060741875513495719899110068697600199071051781579707936377972190587653547793359773427197626657753225682913674157216915256743161560950123186828020778992090480358154315777743323824422128007838583565209227189709936659770870018800968063776791567383809008352177284670779006538243918453835997812812375275816503694991760328054011571628593308925213046163217065274049159782223324694383552304923314710804899073739353654791363058083814981699519444929541497382841613737066123266070016898852283849377929202149267914507919943775843512656734602084519027961036440621668693650621450759946107528380818709760953896339416174027095944148497824234264956454647472589882073572609778687004004879159193331313096599724108223022958764628906888887447976450391252678143653000775097711760794403591176606317849929363631116603989004320118972750978241659737463717737618090155243495605353623898727174571246498446664913816655212262308487069587342008533056716162288948842057685247447622902429322389903801190361923328443563092278504354167534853637598988126419040591115219782035916962616091025881288630767455109051973080671969438210167945720858379636688234235779421713280577638477903294018790466815944703382523632467691411158789964965613780544164391476873411696558789901037316311957339351624833027217757574951942196833872851332506837286270857669716124474812462239163149179609527445990952599368726008929110031659566537523369324960305881237459720636110060589072375484775326377173969741954050254248539326634541963944066611781165114555355182265745771987059970788821953751370309427882052138492418303367832669763132689854402141317418703881163639651887896159683273940421803168310018231302584755438659277360632051621931786628425240042403730699302397287592556027254176182867578961679956581472445390248813025771970148175887928461898862202789557632955222721842612885653678488818441274187486573545302340174030402902544142037575027997492226734112728080423326703140034574808324074822629256976238690834798275847249524996880495883353176215523902779248522387464129334785408949822020864490706456593488190714378901598257742811466641845208334009487207648116818113008548770982277766476390063515001662366694723170006724348297608140052604040394861944827088480268140891916989934889308701071559755624269802204016006265154810196927100203635619258726190902078956339242664700428809642142816683008931772309441484649851867677954585238437916142231947593160614937591729950402082567893380277900486200563659366267724554862699098949043799484099991632711951929928362359505405157379519616749906187410539394731191271980354038687633022106743053112801423119396280869280385155579620645590007043190979074416091790692444662320541480057330830677320248391496825202800258018346305560990226150410129268095311721001876601057232276281066055751186397181491830432982296676557737999297530281020875231884526230226512209669026120927370916699006942776504894084972627770573522920112688331684339009782166636588129987132601741230951636566046936865662818573363504090028589843085310894907304406422044100212913214415333424881979938478795282710634205995622500779193412413192822932365390759799681131387013482909796199718756736241412647185504939263906557701344751335398891831589742206318443711294853734830738787420934561785503068747803634946881004038135733184038211952080704935060971846811879938577119049382494712286478880875370772426132816513791874754530897797260938993088086749213493405424710987264490766909359160451092689140513695991123972376256694420313378855059640886440014022919054170893355445193444449766155646837532075413574310965113292581515976608898537159538886798832660428728334279521768464797341738293526839443902789592250714213791604034349123281742402748207620380643853549665043934970310876933203039318385464018891383587745350204703160035380630223740042260306483342541848035617079942262067491964810198086509020345654406339410623317514955210013232341212090477278301011453477154582671436827964295401061085683483033040671374923300775992358845638951428483791574849814286957860649254839240116484783276867387761094526291530568626271638837727292270937614475134136292570460619221753878287115045550280169393153971859962070376089743249421057766390701358202902364446410379898481009954762694351247469382390485384774594408820107640900768671819349752241032972087342695781444640796419098461085067903405918789690725327161887432399062727776196302022941651229152130585498802815840463199533288869638343329855439918916225042492246064855472513740366823813710786339490989332097521093994575433902075256038527253042113610830864649859869249412272486790120515893531608761450465254510285168438237365248172591736544288834566283402363919814564362784881360536447418928066382705421204172477670064188253221307872469070094710102326656282058798780084452013485736354928549060942946185885709147949074820125067136657235948362210292272242860959313389075023163303471777782055675268023599839072555693381148630048538383784172258213095807130489820392314904921536275983016568975090067774893868203256540823528943388549720327711315160268936811815963220660341510664887201597696026462447655155089998808859694968105537248236994178820590594081237805445180436037484247511760208606313053745896727717209374699530565695414406723578338156296571168369533336641661388256335338275226127770181684862049820970176780526496429061121883048917186035516421280946234748048866173246562625731665243510021559021531138611978838596613796920516222193902784194548867313085640597753472644450647302072873271039597848863699212418479784166098191073950931254988793391726168449119934581173876238349192949272772636821458481927537935270514685993274570644630367966276686051341875859289945941087866978923346579065047134788481919015990271320238800806519405825377492887194982103575150922771471003866257338690530837202996237059351668318846745766354376664918421509940825133849458986299482835111467140350132650824897279853036374218371512813615958665863174600139571486155192849444440304168157501556450743827051293208947596289888909534578438231062233390870694063278730658839522664614414898992029001030467621431741750447473872231926567482540255182627152852700930949801835608850673410133477062414060945477812143371740215538116013329940057654052968582391092030725218413124324476138779486716462891596213152293196296455651324880626393601973504600465239595763267917609379509121364300696081752196464494106049821821814774638122566101865429620979907223009466200766628302036647758375596293673297292439582907153553677439418883665922793938629848246041240454317533254079082475534100488190689616501975339488692417055328946238109587548987757141822689313893817533045733432363326626441242505409123439196148713230501741880695406418846611300629129639298202422315328990037223225498765710910499942299082037077564032243360661310056100491637805998942473458635654567976558021596126451234393054846737883738389199697071171900673925222492963575357676269954936829501469850080545966882466606279177535962629757562054861495571293345782249509294466949732195771626348186499091815872612135263119876708258409188424183721425296518170713678292242744843875499794871350313356608817324649764445698289612325353792293581813872996911038969129916782914112916406445356407419853369830874871333759445228594555296680424621464361162608721606126368580340715924016992124152649045193470455878109949599761562906296807646999918180191454321596444165830988990205053364855115254181471312483736332745192858299416247292014270177411931629305456268192225300168173903569785582789027737750670576961950341971075185712430666560314443661638839797297480178916938377185265829907090568435776155457039230925283186098228092625534320058772680317622045937437873014031452878352517453192439986050414837026217310383474665149166798989076410867910833640904166271817517204888806897255585369296921376665171677728967387818478990689981358027733649303823209634192196418650921338139378998835862237368229119467187866193969878593737479733206571411253380594799754488985901096863518544646179407359608570840217584140948892712310821624333788093631869453400279619640856273213310408416877710316303462511530702127125341001191522260966557816293328001012265870088343234263922728842966525515383623198119612259042030247507679245200563713164819700715027423886841011917278118977521116795548883283546309143715923611659381452780217726350871501414134392528288530626015345563643257455306813759315854634920026726645615567268886592667733991441826729227866597587964428333929771757595518186647234121572554427806175603992228598595234185946434582819983423323270841355182408773375073505679887703240921416823556467117732759575373822664075317993766752932656888181411459453989545889311311623776423621541452200363673959258557216719570404998798654109237347933063272769032466097291224970989911194510335364262276184506770493836329942325589828503637924960172655966981622188439562095443482765940764893161281892185059288318316527866475140166145437454621658889767630630738111847550036831447281397092319267638368893045858435251139223166724873985983283589689362900748799974272669494275287459762445326479737815139069737345706709177181381090774268457667944957533232493478213315316410825282592651356429686675006362765171275955335554684314940227965272126757569183237235214498612903803273121961315230913084993214754233640515147306854743413777263200972177638675846712825195809222321948549249276601163057550264226259248776735674900628917651175793808003478065908453934241605723262306496034227432754553219231306711763049181122267090481100666185073116997402654111693997224837693845018473191553842528349362297853472762454778561356733505165751287407975791075027117717159400304296359044682015813954154078037615115049771991133894301828704158063627397152808338355319825420124693389637626516722629538563915780809399970632634111354133743437309461385429309493343512897255474240808066244367987205113206515801260833783633494438224629351963351557564288776091354306005875771282277493140826565242812280209054499607594858126299481660827094722406854541151572898791817750865313413742507295258908637226549878786165255966585989115541744837571944968639863338469224063207569947336167361663506278018998179683347483802508202331783865630831426898033919019522330465658200780038714852310109998779701851266320120493935130130952916361006318295267080575733770904539141109432253942015515673786987420993831391751405799484269685515409110028813670201048310311392345933609833415641349405057873012452605544762067699666152595574469566241466771895625899112655883073306143557388726712465223700913166758656283041847733092871784892752853131100800859759489745164813162781830560897697606052508686833950578282699830315327503197700400740721828549589438972765876812440570229436167286366326619579600543624974670280094529816073472888790930823996284535384650063920696074328455329299740877218486624882147611390301798198989680843386100904669636146095540629397350296499985163292778339906561128623285082492585237186278243465477466751567000045628313878356897173503859830867208612167126035561676104979573100063421714730384987670657435135998375481290501549001982860265166328698768674300442370185387696653494576906114902422074286404668110868423810313151885467208347732174911264180032877488059853367840975843246867077087884385053010045341608886199108079728374663708211861151371143863812223710314822450118141790281326399875910483687264021465477636459022500372995751781888004819115073876483710340532911250264756454150326631051015520516458990110421304830809032571682218003686902769151416502273152497262140566111715659857252548155610408754280543897879456582951341428338892473276252915708312636391084667990960566586511260426886729979778221619704355222992755893356783408875384440470891808438841131592951798602339011923041152005252907888288192768957582451762318266535854449007458765585951972103278218177825850099251162442952260889333522286511591493337359449540937208585815922297423630040685086870081727261979609055230300582879084846628839227646749909990760170325791728417686136284849678501465997000448224415798809712980295093956593919775362089844133163772203677899496175720065073706812956756509804171952378114063700285679535864023964661567236776376262161390369925368077284327917048582150973072798021733921316810094443480730507501852366401551536993598192604158454587093198527600439836298476525373424853451460880146732110350679159204015032878637547821023742965388704330809258700267819654384557517391487432908814493259613290658237887828034726349430865962557248011804320860505868897790281632008391018791180960242729000906842917085381487342557356267812935002787327321064355853757401166278743391123508102346085170680344283540318059898861528307493007030799482774784705881949221117664912478758537834932481865971658706583856612165054485661060509498188040919965347792435289156615083667553027036901728303115086722695242064520524477519929708464704212168730307980039586312160102854789190654903170873734686336697868402923464925510171333956632510903805516810715123041814212181060556927853374624582764088502724601375345101477109083132105705611957538382536126195665603678861719172306564038331744434405695047387712223864233806300194336088398377982023101320142244945310029558736108562861459048691951900236421602035069579715946768279296946358224561783265146992785422546770228995995169677821088242042959340799897005797821641589889533884251191992795389594116477811133838175158420101988175105149320984033310107629496825842224669378186283664404588308248433389606187098975101290882506901670065519213994689375555626638506355926960901122592929466832586605180241174815046999262054152217008079661615498923887760306307850672121623987006856680106957996194257435625422038470968579560608283737350631482355963506927876881305749623535443502571935449082167833847239446502275258541434626099393475665911965123384871068122990679998046399519129969357545836702281325249384161306332383322099032453385334239068568836600341317701107431653394548812436933451018892872237797571744508619723902905368480977621951002070078507023310069132246680783712725868906386541575950677112076793865725044485759371819748105852475113629190525123022538315377903921236959485818737276184317597187146267624663355843775061489086686716102482607541179771765173114810858125536570898621104806111848538666971311016032905270481240894802238561878179855400894510393423488557257656124028742884186329848060445674907763193050206149293688542693647161563830525326592292310442379978805427613884712211292082508301352461508394480408813981483828960125276680618417557644703847259116390118933007732293666890918752831398088345341026834101564807776792772982990605817779776113227121851209576143844511955438537664172297779610928515853192015058580651082976069306913570684098650536169979561152898063267634962311070492245965622558255270386656286805510203547874783315010138166315104754523402832877121570744775961344026778648532943891932802055730828381717517308259828722665941750201425341757692152964252673888442499599155982913416615272529747400331133914222652863257884423431944422385939817973677340728548042339923917840555720929345309650731864523732486566564032446370100955902763848043705590648420461468415351587794014954017408922980198403031557702059842671750191241823241154190540489521501092563951340845309006140909915886117018766804676678665578531747665885111168516985696885098271017474179782543102034785848353427145354496383596978782940002338996734663030720860431637641806289745123865320033131218792933250255455044231066480264796286295257283626858731922968519884881211264881813772116315717492020989633935999072098716317129067633165630612208184385464447195152532676845790957008826086300117391412146765443607648759895042423407601209456790649006404240260880052378322269597162550110694916573144881423079887155801171924312540641703254134584550356640864227702895925841199343767070149228235709078974029599815665094969132389591344403108008186507360429776317519167911798976315294360620664817703875665751189895420194975471013372031949273481841897170115857670183309546800850749851535015903966449341659339257995368084280389809027258813924055724276775470128748859307447655583007444481668120442848597285577057973844391253190799095322693593475352765610409666018252446623348056470618737786968911558814494618183666368768770924752472806946541505432373189856788449418066390874305838667412349842101872283017150840045811919411057362906371220548205380131265241195778266320537088041833603729231176786417401334506249970700304997361433273068476799463961157294587203652509319045106392986317863774277969902640724726364522427167382669733255159110371811018276738234298224001337489566396355942011985793287306702010686988037480322537450917213331434902948829083767130297662664603706547510627414229554399968913147038864758251483465229442415929976234897360294481306995262311466253246005967893697867089277981285047759970697810307951004416872853348952673940524124446778029141865861472202409352175952514928782427450925015944556110800186627374798991415604771472945642690668790374880728868539145166952081874337228366939177338338530272980687096753857009544862690155507615054212959213520451238102197185307849754531283006017114978373357828189725898306602882691732764688472747987144082030375070563739205001273414320844798408239346475856194775481558564700766306273488305552030402803703214090356014321521486467000861923226292838494868268799612474676427902077107493995013129110994673102692253091923126527979223464642123453647582685226593392337327473025882189944483627322753350635469647189675309037993484325585510383329165950252005108806366885060816327582910205955877954232879862128310113310777541806249284451342249208888417654808119257537911271368723077002595679647031628559544855250077069047735297230615674605088480534173309352071333915262272535447418458088801866416103232961635795554431514013097858894680955067830670661007541337468330233097564725246019488759020021038620980702897652434975044284283725686188686323268560898722423910735802041303112624299369247077483822586797337629175484518474728194226219594305610897671100215635318396240142764873674011001299351418820942096144504619931337892997631249792598426379963366548982907729705319539810889709898681054367156269202266319526234058477050750142256690154688724623811009051505991736782111198653271496908930982386092306731316942842604445535973060942735769507053548563983766786279985768303909954226169683105372704448235065668227712095401149514311947629895262677847849644164570072632148496260450175340349590817928172411937219422050255980230240778547645230678613380953806204063295979488709118811048148596367819760658279308832643060063897927994311441452364022935571413827893004186541931754919796379087876957269505554873980278180865915097360637480941010569982450945959534045846035975890858229635628724246167000878127971058917692692906696201323632271870488755885356320026324606365448075915109225671789795866395819524493108362233818041275592742507177341685331234711939054467135011547031449006026911167418443960467773463949952971306494601240499754973472321615412664491951675322165551113282163943498876217784430397771202151269336147177627940890726083973954979760974071006022558031302192779175856825908558422853908184535955885210865893872176313436094973349730960405234575186397069925267263272991726296509236726826626062671311489895451205500404064066818549927902663243229937491494561943405566968157672526522040716392335100047336034482820578142891846728343652948201135167663145083006180583537582304024840241252868406070164287945721380195308063749876729249123857242285585003246680574421083219306317531135564042120832256030204581052023798705805567930846145525584215228191620755695663454901269344594004932926491293241978350746264184888573322070786976562978988564216225647973266693184781030923847381122084418541195481505190947984761012710996894956370409599501334043301572675798451064298449311567115691686611932985072197653840152958377354876069093058144430787855332328557095017506696944147703984117245555199825983734683797814263693637472480476494745619844773027405032379382073844407557137293600363777295711935356577742457795491712952567291109828594582710112901617674373041865486252421715617143604090128780804455947237477712654539759971603119037152346546245401155182524175544047721414964241930292781498051205769045569816939220996896473419555540462706298499955574348124028363311888571433544717525015178238347014897729854179861532246013839346695176148204827883666965677593957686404639113168104900859211664773960932246283246221065068515691917859564740790453304096812175449677684275350525313511180730026993563830733128467259422024693126886176964750271368571596835503510539494296862429837308268324191615922388092764058631975820947636763395109853797525317817401054903037281720759560014973077743456419969101328430479422080781053485737339525032026128188806416556454331852731295827396136987289536515554954565028387983837991762775602035191382305792291966800206049002441961142648157959098097422152341132594751279744758485562492257350513412109187805710171565094224914258168304124619430095532959924698174644830997557358948157460917675485378085561816671174566196963025647803324545520370528794669187820828090121463562512010892060444482485897855759193450511026471581560659194348131257282225249224425844659416281735848164144125375975580946694055901300636418569800372792969886332318107745889684597491437889526906106676179098353733704040452398481069251523756340921471036731815041946242677555726780175405532151296158919843251879562058383555450981904409505822811785264722388245976806723863864034974916460038349370344808532519983253664578453155372087675785076376963800508424315351678154433436436348231135499494581081905111517527331761761025353991275798991465565215719650667348625234537739097109995071157247269996239203920447390298270409928128518264311562847137527570661043666268841627230333523711385540695824649821577334087248377977798741498463897603687018451740318799551794031873505495642569380634171636847582705189880712341264252082338616874376025989780739160124290316427307309802927397846593496736087479961707450677510992317992989256972246085946352573382115467120223533263391535367686924026320036987606451027762890785557287048911551480272952105283543368721459899694098628282176732005698380119237734971946062834153807650008432925662046985038548498169432245408567234611674967399564974097785301165766347986517333861401282857501249669582239697985270082978736757902958652652147097146731856914161509384344523031342108284246092786415639351492987495996140033147758393468638278945404609388556364274608436818923476363180591439799441539659085241527318944114285916909505947730536087178804970408310002854689990583213789742532390764230922222518729930506061368248557397078615118244856483467792402437160198062007452258193042216923059488599085735383701784887236094010386492466650485285713591900357565891866263633921447018987378201306559838521438746011827285158440964009228635860896130489375203400961119226155623828464480284641900182534829344357159239842914162624231322641960562199084609467747373203032687173416653477913058868510121589572278580491860351483399255374825351099058556058657098484998289916354381181890123209787757657008805801397549800922101323994448982889063087983574744186821481043522057051906608770121195524719570263580740933855910334018992163283711208220235639853785677762612287248424697022278568676789302514756068569840502900255961821799659053251642143915947548470890587787293099858346827372934266453642199359368002841901868567594048538120235534538253807638017843457667613742191641266874748873752237454330270005143518987792496572549432786638256070018928852050853070209812652772412208849415430444575193781522372539233860106275670791777037915962961021264351573012090654342475356479981987049106144024113908140914322906667535039542871021481395290080820952924527506836569731881222704362019827769239772453186112621280766735967782226722405694118536822135884227061617907367731969350506899341599042577738361304358696301897263701427840549394351881901014500547692468242886473380991126447262786326045246140791921767658813518507911298875868175350793268831543643477973890304250746296573681742140428606115002410578352838000919446111669323658401946425656119305750654488881137903845353164405199317063844529082209912059884217054098916476908543902762739171846715597133231942687647123697517522380385601481412780584567883725309120131439119728260968239886168477602468748677636645220641391939430118374632953320521534036481349159168896153947291061993860560171160627814762726098959461642983058543628767065785964269407555871757119217875201275899500541503497954784583734655675768064065194486158727464772921605280937632016379627529399584186205673465431161524251441818913617456024113404514732925594127899756221910705387603264413127045734948075008034174286385305034040451710799880226510355634493105544125070531966095247345000390513356681725860864550154696913815511626269650662035068394369774911970291342798711254465427584027321914450513151637623149400191359577849158634361493276258152249224618933611163274425032758872192439012093948229545233492046784971781725517814702293616921681720432584509955617528792553899970967812486081277710017172040496093641706168793967051752892657153869260324454104425657885224559278227653261952826594552490808256995948106538842391549435157959278078361261826315524369967634284015182714372205210580688001644841857725050138228671116196620390237256713795233748832351086250905399510458938519157765450860655245008521004426708022695427520333272384074372212355284113715394323604295025635865031847403810047097147837292161716821490420309683610431255949463135982674447782484040269369380671840169298622637314559280997113921665704998708219735694770432519870467799249675072669259650855895862568702562047972661784588437489089250541359023107552590557583885139945033228208425866246038661914839323086724325324323416500303362164154964157577788275739147076515180460632055465434315714659581764648888918221808089760099289046841412262504286500150384514055444813898083624317022039232829684538051478635912364173116678214726983578496719703606989372433366064279728567394708181758098771705435715443726370322780557467415949287078260995235677641543185369584711503784453216878612501256853376026725694297117796755742668715282177443253137917815551241128439097062379147365825943287929758675938528644709006424779225150176482687530427166772730919063448054857623049600009238461775244525632569137235585388916854563596573793046648156563890412203410632872691465723696355788868625094549423122226445176091632822270090926723570901303367778841279739639365521894312580758912473982191809297328673180424494162456823970615635233028243716155466745302654249690484383323841857895424747423019150225376386628591273892392133795863217292108349727356931843646695095333204671011760822026635336108185943065984155545122046502129395500631663840825384418945147461981240752902417391822423653724598698403736936359717849161708522743555203095819042793494882775296860559751911784414828742579926342703344597291128148409635588789578276132238708790829747240436018012164315402634875405290813764015105394494363197696287290259935727736601276172985676885157928418146115198210844751009979990054940342365151247008759191980089365080487588689812873358793461319843147398861186060018721488078846543824766320654662466814204489288425723091375191256369746678704676747706414023194187691587520732107977468070473609750061499090106089976542904929050234145386322284379633223058287225037906796813800473411576048283760243795180674637748252307199865178130617187965090639549405359664100334190955517303193544584009555704774271779515064390265054962534586955354677140352129309552816558163038809776290640814276883761124596402674524761208077424330778645775725164283952807746925185679550074470735590394017897889914234927217774296734257581044885634208414608441551715841252544444556089720838216230202174645297598838468261933601476282281185236798042878320175653514671557475503879911525988289314679302859999316050354190903068357669184922351494949247081872007684086942965655259744693248862762481157117192447124003413341077889760685758795844842474622585041186725207155829476787992242160383148428725907145604611910238355784263307924754155098670997662330308386138419775620306683674053577012543151089168899516740357085988891680697820744864846561186031233381795025370915496860783980407596527768314956113105288594227404333910088932110799089614981628548565506604498789717503996410973551060905110496755298858647166920502992354159340931126469121383434370734751672540360575246504550393868476362677364133618648638120971442604745530568887371991261286196446097771002420933518709428724589281099766105031226411126677583266975793579943720070287528064898757911800480611310288504742480685943107870883763770542398051841502484267052256877316841185007665552351073673379761287722562329959315236923865514354066921878059975635051850379792568903657139969514018268306164338749976209301760331743490139204504927765870131615390965143184040973562443019091317968839062370996536007669798739771429326281333819675042833055481713063244612810920248590904709037988606563570780977590469929347985935342649572392109447757499829413407741456565108775817761205262163286404655501619509219466820249432932584855338914013409803421332279153426487747000648253262932906616858193862409931696367831067532753107836498174600822058602593266658480498123683456064872344583666974185133318299164630695874985886551571618481236598546186503273665328449677597140728621558395657818335837232743801509327394337931106091521666244485523053764712278748344235610949850347066509494490036488659696269884870836449711904125886587451405226976577313637359454118450897709743937920812269542652541172522250437749453057729072402381768105522011694004809701370459274798480043929625640722776014697614644693951223717426051917818470799114794185950620131606276679311163763979158625026558314666195970521208389949046080206329054879884260894475604286736928228098597462484232494664711573559777071234558761573511962022732420556331065849513162335582042494923262956829266713031549122351785579460218294841359785290708471945017338147865464161359895301895567964629143575030648400543137622222373289149923790549049360594636719204197781125229527546824594644516646021122007188000334987790380249222803351673260500437050184186808905306649382829648090758446687657511731665210832410152692336615307809458374695229050047660029862549203997994130373125921310192854677485109770647486189611734086448064812375331521064558086917751978393915017178171253084165956960089509926212391740104317686437956999611133532194473158913026998884599623524694722475713474852189267331417968113101290418200491990788347495042455039542304089146487043654850547536941515801853723914607458720622600422922788920417635104227139662243034492469302255419729026618794578287123029804946814014281366198013536551735434513057787776729497824734126407665689915890899661369781050596866108740670724991986887270747008039180929399357304346965456377969373372253513629602174763738196069581099222483983384735855436777782732109544484283463223708849114966451673147429438591401050197295349549258084883236027417246601428928623245829587243270050573258334602808024410836479164044582440208670034664269426039345876113408036000551043681310880069573249507334220347450208484018992428130401290857437365920373881929161816738668569618242826905676493284757144708875510930186473320216464628506926385220953110194870326120898605851581324998488093602273832847994407085933616422831802219175313342762648775643128038241337949767097868979178465554565437927964075170118919006635712630242640237168960798055106057661366700330301552270623598305240295455836150660634456128223578914779242410269500445036234699676741754328934015330173959458003331786193332303259177497132604175142863429744919578991016679377919805493090439042620272868665282820961207978817143965220970838149937042951609329927389543298383442941821420211973600491810885968853705206674502400584190213664161697132787055662571070132642715563033708674755086210679244699903085002251271286297448446340677529381173481713492427743300140215804603409531721181814089729234335199559851326195940755273153057540231890113419584689247779304608763326710900590327827001803931036893061723598973215817132748939072586902330360021477424842764503071738025130493851382248906967683639743541631573493188605531781116456070184768432633045716202798127199194429008507624037103724543863449952213221237108743689853874343552320578312928191555322392174326720726865674428370351794037212820923501592481155836266418830316963253343263271710563074961048915505222231310931738693090850554930387956206973192664443007347975329778459853898173470315979986400329755898439806630597412868332046960344906926859867236696032347346922809460076186717706998462925637801350216529281123358582906514689494588690531022746671496315400217539299388599352345175048225455714571634055888407044006331486661845711299791248526238667111546095402422083960828438564763658107413143089987282232566446828211612079285954673815960865833864892978248619085556457143260333003684279758576110909816155271690844420924688935213440857269408934167003454414360034023352977857744188957221420993467532274393813275384894859319164251910460316491031201687524424410182098836895106847495063013218800456401312422747655408365362878172514933263793007919032768623577070090311339369143946886686586776376722424305451807183571764472385986077263490892749139802720863287168378993448875642089196098492889118839132233481345669998149996731888161500752759428780548996142232523623106950027574355164917287388948490193236120086092852817638406482080261085782881969794620753298637695839036782188077013543948636878826893783669580961597990425003478454761704169872490044350594671172494685115279556547951133369759924625844265512617858056658161047343334768423235139910560555388692634382087334337729835618523641201096139251785280607174113953733827728457610531630325516580358560027939793863864200634395535190622013900207328310382105972390097942877587204225206143877687697722951322940414199785588740523854122269352183953539674005872001039086621745508494553716314382450951633556363493862950987605175725473151994946411626069142946309438003904657200459771784986022642516574857809705228364742907482544047324297509209986377065908677190546441351341881567187728397938859200082689288916522498619790820635540243139137432125807213937675787425683241323464787882244065630897597150134587277458942072344710256709155781874029244153234878139446496988533632749843825894533961301576478718183456646946017822635479753465147906792412357283305776745155848231788494005842438159554143122155064734225605403445243822843376318699897935952766053702740337906969429188471065493628133280915230628898019170428103297868294638999267927085908483554309404704070769795718680594820131580060720885573068588434428385533846930214817599565752952345734672837708016134821806835282749691573511951546905307273541032002674315762710031164304550147321153196826685881725582062505740962806218439603005506391032887932710064531174788265490701149096899569505716369363862904546910182668017531274488862925714328634935739119147230207983005682855371955621740931202347069322611105439375159804076359258929895666589158411353895088762151814255986190183299520685038268234855360881645997410010541730623027700504862571363096705753257621857737108707782742759440602883682536630971049471379298244139921250438045773335988404446947950773644948707484225013689128298754547043476270878989857886402163689515604005374844141234309487456523363755140136578288250229593424414957783612984638074018348503940573310681556955736451272246379082723846180857974274076260897431031003846723519919278595085566180315611454566596941437572410214200037675705313439632275203959069066904064397012753817745452208069709783320845089077636908518840596970986589241892054215136138986913149128447908756848942595686137893090073271091858625986984995017027772494418114319402390516465845903293183697303085404122527168015881233409209962155501398162418368313968312525164486029028594573612703328998970530966936966547920897406975909645267101564382750123382399603927260502654749102877967355645730109273227339689130647871640946872748485526587759834489209493625152720817291549989686364380080444617601702914898431458322966690451648764857209663264691753816965589130123819689500538752515935814928864108160730997482776070114056298314907558008694372163383991241333186510979296860106202977935871307496394423517206456186722143614556169518738152436555324603024639622183714059024199290356294730456138319520093662343553801754811851060722040567244631327927164703515042047012751791794708703155350565367342425931972017455098702482220155045949671204398366897215359578633028751560776137554020064059207565982299359858898000573201217935080784078497350644266471713790773864809009623966997199776653483748545494003769884933600704849959990594619261526672940874919965881063580801702886383414043470366141954459299270433072775376086472304371090517074902539512448220104306782903134885281370804382182469604845623433914844394568640326209944483391159575480505596126933489808089648426500537015306604545998687876256868533939870881206824679254475729538249981468937845065573635917245722666428980242991983914207028245991463681826402231626125342245182008551461693046461712022394806754932621099499574759342422429395490007026971704486880540535453808829355247208996071313482003044946706911504406268887121464646522154250919646940805675367949966594661921810795014930102828524281888235798491474245491135484495237125505448935808963840319846126783635757566048416717996750623622562866764478642252960106144368619356009092183109615293466980490130414102177302480716139872393232569757731154532884174394253748537553905045282891193123494512233624925252528451722971317901150502016307564643179445822379220612484824794554592930413818607376775446323467785427438398030736807940778038428137715223792211242505930941104868566625101995614916246145719090711603678959884639636381231742109128593327726186130735850445666079877128556130884096531704134693814245703159476816316537374655858227027871764517680870494085926466204882803309153782044715630741120754814804545447097014045512646341716735731841597047057442162114403252977270580765107677375969100061340239880593773550737060694588374509199748994032134798573797510480912319178174615470449807963063408049204231216784390334880450848586307425882547065613928266522564973171755318496879117546218367177400044359269678513134031540404846764841553623660713217354288167773877898522233255406038409120812792034652117873904369722833083136247671780857770782148085136396558273787907840644838994111258879941867781113484040862792088408568709831604508384057529408854658154200343572934106090780312893267820869155585751583704238472426591063794846566336422395572876470440176216705519967495215230552421437158446321757085811845840032436178647595272257106697858584378710739880234151689633824163261954409173032411664804147401677869990864132916321932707457376992541374961459892791286168522553183900539135462010954376479806676429724052334073533717189832373883130197984508597350955547976583723201173708857693945132177541942277466005963705340987915753389477262317268051735880405835197367051976703386301751966245820172863629393252749119852402211229164755273954004284383965900360558968155891341328160055929661794850092601609145027933167942226042163768968845829775107542039338216646994989242397374845989080853044136652084792794413127305438016319266138228738580468860408743401096139121720129465121753157466584639353606800001183410160568770326854651289443396508311569227680444324285530648958887683283961529295513623294091788496429975898193354863991485778416578412955575144783526868052818408687271933395680500259125688205436530910865923000202890238916932108980558257800568032259084749659753322372045618214211150551595020847092390478018231251043364489109346386727404606014415081782770007527463485522747526896382342853077621298996761203424142854786537812752342875317793337349363570048875771655916578758735170568216318029432819468416143911349266966888987359991070177222914231619117444252200685869570018754279036210163932067459580878041137846160665951549641660906819308308329846055363284006787583042546657451167312661787388792038300803784214724501104582122063693198948322272068641006282727309365116266623259073334768924571963435901711348697750636008394920483449815532367272177374986457123834798769418007128642163223794397416955887019459368156846266117837056492446600311485406663658539405743341493999141050662698064038297808937030051756005913916779142720256870640387145355145549056354509219399178206387912869701938639227188152747422381012301606007168075089491661947032126102850037418829162617134314201119457357544898199796620306083678197581923330577655914612455982902142211607754168273908898704628308127957462959891121834866441135926355882339100534951317980709448876228347020352262973923702426294024511214640052607872552601548688722957182536595465709742957065238705001220292155359639934864321709908365493071107984112135810668470382211925967389760446448248287981232538823436996114145570141775924103309137480089433421374739042039063118554163834722083781827269199902189504515852473001642427292024371619218706199180359438563865195837293519722088390031606081854183585048852225239898914350220363910325517206942595235918897030604242075243613941686148841956187208696112911998864224542792260989847658036812697319336875213789886104464948826168468834321605684622714473056192549321419654441132323136059929552960632119086619780052795823328960355208231578643756484125989270907257845706067916355876733144815140900235933736682548644903360457463221720018561175470489218996668557770388947358373628248469070879093167062129198402407837766044843472405050734928407583012936705364546460499219733487314045001337094256128852294746181778994964146982987391466378802670488080144406709307687436734854087195424117726064312553319150320829525986853404645656785518667768550224466146699435905285972394938897751803488462941067436067553677210916920861669062048027043916241513902342644723798668415333640830607006386354887039043441108962448934047867212453856617772003101968689653682753696298004823632280376610907976827150423384775033813147818947144434296056527918898261654119409550000492837843076986483047288307680849204019532680045790185711298592452280156206988529816971901052824334443316258231200826109258545391139943972068308475685831583760014438733860360820945927243326958231603294190085421545590669423993512806592303930049931380738982952248187096052412267446034024876516267761462979789313252985294765618403002474565266622091465018714966683489232492815691961599763577982408651934960985749081719346373302437897253062417316338409188253996858124917052776486944967978601515811384529016059898302197343687232799406174886992881943524527085036799933651143348881879169932429588763698058502001566684100592176959733228952855515041761636241145290039030694852776674877640215862260325057120638918397024808900074519584402730006738163220701264023110962251337224647642022338576910892467585624487339515779013404779060225782772682046932970133758432723043988396688008766355765892464322966011982648809519470786952377042652407135132151287494374832920334109782697659833528882072059713399444401353175677131359196421267069079615848248102051646835305566540484822365972855023527158457587335225366262245962145596204537268726087887141384191616268482256732645069843506602613505006316064663286568498577093940374365358316477081924676765530031085636713489767807941668201516471111329523324811906505588552442497551718389992696293394481940671910221219325393501007421715136971558181022653713270227645302157885789252855135100168838766907907052529854855083173737098208951792510936385059731169638599200168150772609028316054137659432041523152222386448518871888350255698056267997794858234436921060416862786829699421317973939461336140169996474033706735837784105974049515674875020150359823718935291200301249341013477396747077710031944749892086676015844299968436674726096662917008756399459849360284789525821180533880132365757038355889590330051940416128951760614994089110351639621513993451354254133932306509096457117444384939170055017161741246129962687554197011406053758170643276309739774376935362061195421822418743671339984158431165686343481163819360618484778618704900693764138648465551252379617196391059812152227203307928876031485003508895384216939662514343069486958398601024703925141473015446871986807754561151585876886901618974636204128182332789946407494367662310650281695944930040324982430134500969161935280395742304303263107087585804115228289394739149522912594585760278187390786436520192229356363235103063338899427133379843296654097789843654000415773667581616800023926204704887021706329199021542606661144706059333697642465714606341400817026986466852554842970597519492676248297177231890011553504611965698605689422078472752714119740971875645014258707188685890978923871762779113465397883634879631420074818113474222694106646633099248151000514461247563620186352787896813585890162837340286176544986682722881781480379638548315600299288048077510283007304870072927425332579671037243868627090799676875837262633143886232950859452354886005156148229816683247644551450900420808692981861153856032123302275469583941058619132552478899013605452375598779315930660018406124072370662178888822501848319819647842982472315684258573951412391254981358268167731413378048077485000121061304931759258215433311757860464589432954000741598016357011615623668453712932571378541301984348312376370253070045507474824179788660916412621174904329294073809451091262384772205541684962904811393705129182768202896962380444015985666823800664885951985981303790843797736461514779104370588226290082569280539171456898694609758607771531471641122331614495309369397087469223874383936076985288505680589812735097798997284349989787285134040991058380186993738524289509983297177773256305574618939195381309421180893303844559663031784293187179119916436366353790902615920864304609783748997618172497473298138818146518805975419876156590880155505877259858522317689068631728305680607839809021031094538679116147684392736818731361515465933761618375772111096844629706919943764702678496661928499020172647938083509056612308192276047954148662754070800968074793782028124603803529295456787330486666742802962682355534166334703140322190150768056871376132450751156621765333849328936227276112592955774413142543768983283584810117244766634480435020096706398606564501310841456835305312062436001970377049503426328284435660181060514201973060917503984668198299490358586802986466794416158894285401304382158977968345866272656900691571212760486436782976200273510505626951054587106712702526181216936070975260245289317156792988621596661926139132153289921142332975140861133935278147250481186600262542013687110377753300355990595865770130747658085856519516491488030815010087631204520650872208886006929256605824332549420015814160101157348103428498266869531174424508878086469586688569756911212083756190149332641636896186143092765685005918641523299873593655676810536682388863175656064781204466716147802490208037589280808839413092669892712620948822041887516573779727964447499657012737270309697923951409742778420421651828477309156380564198999122454081027017386841485353542936641437804421773106017063398669906481353433296546703244630889359607456403680255835809772508453313200633523652339929243499059674521532414181379402050017383834904822919888565009873428626952852394448541816429791798701127172481837364924746913844340898905238734319577984954105740698698258442229032083940022399240790087284764048879501320011121721815690731278924903203804968816167379283704332356932536919380316861300979557371153067831501898957022333365397706183718148323307818293405638655022418291852656746435394825865645925705529967954859162996538229643049312749963168308456653405483700651785870741885396919491224926364593837824969629025531648612458108098348627978367370263935281823580940711443716634663010393767574263029062204474793355848681900019996104142142944891346120206083522831555278710519379639359494977367556003563669275759188917877798606175609335415416492953924750481734718765665108366960684163261800332640846661627371010798754772507861535832721196433435040205743859778630387724276809710411464688460028017684467301782635528032437013811895823437126475036703343960123044274441071106449050161678684135093541509146256949961570319218979814267944349821633301763674357991539254737903895008701524275063596905817832514116233996877122420193167102726895999607362143324667287814291218658871579109181741035716814554204909882042720312245923653752026085826394561975671838666939254106813401303405898910581893804979608203636117168058412063371592890857103455272220218431697436687538149730517693484601060515763691829653436201332582543862619896197645079084424733182326907478104601363050273686758563748319278827723597068162504655646623732447991015773991023246256697701886516779705878795257980216261309045820694545404742702403669643415685326913922412332666636831074693672543438974074560884569864977383618378686664629530179928036555756583273972162016058147337305948938852359374063717064201922905086291703217707558233007078635538605176904190301870838491651405579673066980578608866731148090321677584711459107212176592780729889188357261505267396859561232887809835126790727210508632388004963257736387365736509901290266919776559624725333016115966520166344707575294661565034431988074692102599742614245403769243243462683634845714685134407906909201378378575273540418773711363104417660365969753595182377169080128181835200617091881685900717247672084120920597339972698752300346977297298175161978517194946930811668361279183207507513488278749552962611445951996206190599421868601948042624054650415194854966262734984667169942055381859770327593899430321729545533286357398539700425828998252924414108512201789106418966432815354123511142094613044279867957390876824312168675246280569975022010165784599047234948414428610775840654807395510903165882776844669394282354032759595850256712634248730635262439096852401028350533078199220884754804158318884740808594524944586185209348185915244611497982834349883392172161729249359257492506844571797297578826775959034188721081737233070984930006254650961403869375347835393394735894659524467826251449277222648003272610238481609481259088169408722440794900257445105430464905584649756787118391438401478346335163775763984627099472486194363910137453434084816888841340112470353838884561696186638864153056010267365020735319774498058066040422022351689495732679214945624936540621617168700935880152659814398582683550801810533356245048722011252055155580409718372831162068975751175447686812335524875331058745575992089034507736988443322250532128045620355207383263616352998272012239071678308042018720829006576735421714341799282771468831008171965786428850731013339520545251717037153123633270044558582378382114358800372887312227980228642195328180123513845920721128311502308972171421304651139416437059253016954555075367246872129637891682007738692985253784332427305609312640159126316362038726481045139230462464235856665950693010677527909784845045753995504864020124702487834646160433433037009416751122869507466767211913750119967220504335177248104676842750004768981557481284593963020989614970837111158765724373236665515370299519111329075676404615354176542417705819627557599841372134887047327188383649967364469862165030447289044569619984369844753539427219739890416316046162662095687344186247571878647796368533238375238135797406504266900609946919353181620079318204138078387236651560722250253392397414942870118285016073887317580260848743392070752296313901879692905366320069152840976897752644795980581699054018349302071201246979238398827419462564069825780059564294134341535105598377883879615696261761718722964253587120843602547260148393664290160077308112405363805686212179040175950296742280478147985313236454113166503900244149940911266042854348122799713700842922397526693422593760464073922842292018586181207146009596185944044149777019016853799975149262262475636877523956035562010134043806863635499367492160006519036730536497543115877826993878289713725223535199720822712522751448304538512255386812722503435642289465947771018166810807214644346729492161856508861670483203898936298183017734590846381545819062890465557072274117214486415882887831514010987642570449049835947002898655533303234375743039149571379177605517033085598000804862768488378322403934864437173339013171540617680100830051918616333436657358926850204429323349421457001726480011341825001700357538432213387605064921663525979406552067373224974200309130365425772242295378714851106586099083703102834263919800086550756227828996977512877081078572083261331015691604499488867054316460868660590344654730563986111145455129614049111075065101592442245546355408471055862336074582407817580596855293797188965164367604377476772168287033784959151677885363804630620896103520156986012928743353730591779265231575155735408753790415468668501277270483467618926387311947352370766579068233585696091486978891486033619653331687205453161204686557321479388144881119740034658965692031664066703365942812106437959786304226876141338810405453817318660517312188742201362747938427032659835483137741220623102682189294868798619790410260377325640602959105647223746856843463318341622547770425546057807128989748914597190342486886527997644351849910133040540057016566197912997862666436962595993435289881177933452023323910439796926961106804336293223327785112448186173400545091283597909919647648418214101695942341644044941342819753619054621830942320144957858406995154322895343509038945958554897301610018904947091717031134567505047256754459995097891699360100204455789027671011178552439959679107051334247952390613458430516309738895866985937325624601864317804936424671217960574885413124021381977753373092210505376203991580117085755364663756535417602819409224748850847037769115956336164784678353814733827059951466802864600519791139082842517264379368542101196221413961799520848874841896510484766357078789153789279895406889604429727624721050611996292337706324942230646905641823500891830461398739123241133138998696051871747566706588211085842732482530404405294380491545114560540706070023762977459645943837504707240998447041862792651627339632855641830767042313598237741686356764282775154925961664995898774122988014899302227847246368730053772090099566861368471360846854994803503897786088304677222702384140121856967447297924070528127564132759033643208722145855013466518902639178376068379919243006802029927876990012794253744753514434640345455845985324649673454415170644410593153771833746592753396900531178581371631891364372427917673507648907917382778577884632867110383188954031253051380600939976447746061337898906573696302463721841528059572259007838621906471015678476451698233280022449218134346663106571220737893255316553040550759788941011641441008283118298859994515681078619021872361089983811126299488022766976087538655950328580689943993996472048637576445610422135082829164360611011170586755031932689027162707467438941069354623707558046475548865784880147964944448315192973180414429240697252839307445632411894813274021248158729572828953046783806721270611366351470362889480237033962986206766678987401892477461518211163663217943732058331041038643424631660451148305978301499101393168978450566795761250051840089689181582158493242353709243907087946690023699434959118350916138649458146075953040735992269464435380578212221027911692904370205746159796544041418957951640855581172966233653483062226003664990117066090016675111136732567825281723609687900872413385218044132576214460920273022846214608715354569119186287519008302490388756324297512644056481430669733710350536632655906310017424051752367326279509458226756790184070909480849092963468159933414296291344716203088430970349384840049476793758777202864337977025996682770814199790546877655284065099249363394457129481363037059080844799943089151217659037221428139160404266560193114767008034443053882890108490026364917847505414119150497828145696960511658948256741723556212992978547641017562402095540405832696843968817744484683802716123757553718364535187962146773177685616334653994968917117148577725343910308688818523990469302535716787056324008820574710353490823591150805321906803499620920301366948044373137077655181548834038331991869655612848316366207654873794291890536896559122058621563194390223062569627453316671473274961323310168388938849080132651328560212025978875953654607520536357343625745864791811676348653212019271522009778604709743338624397886834808141486911715389239902183465892603181408118884088495109218030424730071267186676688747919882879892022668073263385134676107414968455763876499071627583309638979717701176948972393735601819713457189335996871929097634180261094563537832905282112390562262040727479323755159968757122622031805476370654496440159447480442281481212489442186727827045232296341381956526609427874260811600146510359515399927740437669680361032027251526522319120833660330414918927554835875262960944978217036272882637637824778107810618774387126099672325980167662882419279157822683478500192648636550957349505593266560630744595863248860744736205955009459715930852449204394143538977713259676891243709005497222349705790649365666484062042533777628031239071561101389204368676816075943850097758593943719812849475322108184738249215760431526086144936793256054950550164679882031707823683510749273134700715492163572542155844349428396138127505742577707605884659918484886840277078556990037215238217964427958628293106729468468614589805060828721567242508684639935879789732370955014474548691096695200175875812735209375787462769354736568726053372777206219801839410807951607975337241804835613676074724239935868925159931158341741906546751678528998481809178555872751163250704495728143631017324726204866086211722411949424644071599528074526218101188880468183946299150286439723647239681236708666443766198218360860699053772622785302595161888525633041529523377269006751517000323430564774522207126920227802929676161242642807933696896415428883623332528292485870141586461087512911714506754198437312685795781880364129857509514218229954855825185628109345709119643518718118936217431032662708687643549554806557426719994324732791380478351846251694221149785058324395802592612719021180446414382549841665719719788720021657901448527508108805354165608853702248988708819625636700795664907552625224625122317315337868600174268502414594217963043058419224753733732271569032631701886983838986085940403453534438480051177059726081156708280071964122317413092737755912056851466942341434458780407627018430687366928974764791265161489792215038131843302336916267843864727911260629152530940724742928789689177391016753195168898466809882530116547565368730066213457183624392436507580161951766759577741266457318487153762639296449107374205666928688025007616958846783084417805320581879920847721409201954377178970062855567934078201802626096861108436264853690274240254079459093724452149183808935474896352676147092206537790357111022591960128805467753303641147226521486236476229303112291740108259891858306255210791666873412556155658719044184352098874585702888067004006703037358385404424241366519159258221895635291662356318607476986980425413073185622124990759391054280899157981947152399219078866927416253513892303626517461218375281599417275220879922987140640849386522642419447750287299096691126734006705143871474006921371007141228848949567577055870298087206539941329138669692629963405855541556488808772660377474230373358442529321826944626831142209677717083570286841239867378166360752671838479467454075860047504411200570608150507655266606917701363887197962845343393860209048368030397560245256772826417918706087397442051701318132234347126873426951876287196699277585050450170592529330323544722297116686959546850916884078485896758808199732712165696985989444433236728628528329944880696812062806973288734838007471008417485847318533274886047224893597400730969962158822225641164618940089872689358163250841404661702127673729663206708376260522446068899695070030196853020307520527869989037241584630675493829511977377250422674120125603347055241068171647641546674832362001232214781161722333782405026521198629456972126491349037255627274376793560683128479699314770747945812986263810667844888003809714380321460144831597543108902454983057080561238094132079036827973321990947453915453319096206641556516685563235592093307925986336942690342608102513854324142894783360357032929563819953803030740514376994113488401646524369902766077928029354761817149287589135742930570598505586001270016713012646982772889423448205998124073094056220028193559407916643321920371850848150466311002916707969747370428990519380155620891307623893812070522062294228892599664315024301687146845852597116336258024281780971998490637171731217755205685304101911030930955079339865050818439024604988164157595262864156402548159965250721567286856136894270044102933711980008981368061961423228528241477166807326890596122083412771541897983203403817016475742525283866730219995802688581165298525900679191103060055206858090978329070447245714211658270953226487752979789737532699318607471177254655252436437275462436046682919931207801518446143253979410133467163370338755873976275811314514457666246719662315690070315313962762559108314198741485541676250320684537235665950213560927061184298598298883767713421869785952406213798409174822743648375240083999528104981480057840449855199568756207849596706682485523170660530283588820539770901537448669673165014755164435187871361339078881036023862589227672329034760533198183039471872322700762404558915416598280221140838123618109325835791671159885453357543470182653705353942096259624159848681247227819109162109188312978863482649783725472597777546560972238198691398349142566276443492937257947047682994710082595570614402586842378080893316879413267140529598172096157778112159780503438281059968729030633704116289515342951061011807854632601516331964405797811461664950808872436259536809245249141168004213684300807233520478667758923396345236576016021059768773886443604779967317718861629402434627995758175248124215035541842988049227904432058209016698395962215942820104698291792562920674614512555458836053769558858376777744285930039864560226509607483794143415324661108335928253501754970246683334698001242932769660844677658546348135141074610749243646294180266828267130705482103409338350295250798823839902960907331391474366315521951130583217402732521160924133499292700840575026902299297563522786544169837542733813505303454275747879915696563023593542565362997525978012820980273063783438852215311533934600703211951237612593921881307220101123275020109156735577285610367227786597202404433593689810951065170726400894627820618563405209325850983145348444369521558847347064379310327442895383986339343284837114305637201443820438178582952583569050840319123544433749390934801733468510098162182102613216864005985404133291163157783296205430763694948480275330817464472047064702205146294559419555538292552060863600440770270124811274579286014595635585610606709935418622968149706036815563032778227238688049026239603760310642548875277582823430888406474165896706525407523329409381454329076006756867094980580951283152660409229649142903306066205704775125673255299560441135557800756703911444193743842444159831773247754947201470919592389500955549648506634387226667277053498411836759890491280913084472117263326138722916893082997522615156261391205978441262206902247865920564825033891618055242721882113388202463951457700735837727979594619959820829890276376808207554595338961646898084773915839525243319310101327125379910036526267911402843346305956524203432463980126437480739360338786061957189415904917894232234445090405292252855109656700306108988289094826369331067704254199948852460532391493728838960406414078495064723473278434484980189782369799825916741271973440686943769820792454995668427009942426337361959543404523749224800853754811515373992412330020009356361923193628759208852083550776360351257163309529237015191839179459189585177395633080498287537476409824342927115761586740961371807601494502152309511537641376986616983496888966738119196221933260754571518538863648058642514317482442886560665562372460762399693720542876877679591355011845033000456885211276971423504164685049655305763234717152711538984769434492669807402311831462927500561714193827376143671391438748233878124123396053340288486337273088053187801841508056748432576385681305013071656841429163475523864158048918494224976753456797563328469106824019480192897304809564549684611258763271893549068039898699961931548459055594099350713336274754516109762688637747145146710815516056294215776510494365208708640565533008916942601241639301667532920402330694070930100766042645843163820858310186136085376643492520567949371190721883978687841214366307643192130794711717741683455552308447404974666403396573452626672912069315110061031028501958231070567445082809167533628949977641137269507858952146672392311302340408538899542629931681378287243431034589806728868286295831842506160653417806988175332502662179805689864935172997857674702913197146589587706289427897636103882491007736220267484468845309539101377011531128984958072950878628566699903509851285594884597503000695650887578932569266502322771438585200696131468025703151610844000056400143061294912489772748993665580508134432391274836949294700412074243280444452119802591334404147488697125100226232654512524649427634074221748398678964320268712146955017597045029435802354694522782953031547207342975656471650574858358902465101340618956276301329761357258435064550899180368857996144884696148991961906114594978474395390932765000555257132104689753594723762546530800433960470606048347820998437480293918522179533840392659567980679366437466658675027772641832133004066272168685877618030256254063355852421232424201939980384328433375107787538306347276565425199979160216433097304700155097313205476466541132769927686652128407556854650003656229301406935289443072526503422880719441608683791116084185737895515970912967754948227873197123798290784977149232526011614753115577589545924128837299809488626003254577515576420167412257402082505142303280756862314331311417475498246056730124378802281052756796024922016522876885080768219207557613460969009265635728882752321854026022048762247458112077318926594851436486175345513924928600212616760606884918135920174044250406269629994509197361151168078963757805534192687965304413658047133174168091723032095080269683339292325535950655720975407986167179345014202526185547557135358188755074853474039149152025588590192520229403026334081260494928073819723731793360912323199340244563384099754343959659450331144522987274409196753157522625774197107580592868116816729060657161400050366919014951650916668294154814822275837558432938445405213658088682982534904958557081999125969287528062010963548601051600457799680276001315352484389872574424557994025564315150747791731201507008662402742800892759984397290394374869922581466510736955682215349220372877394346105730971137528667496986489961637222638381513524816842683304376776248667471463833567628271693831331090859037291460356581904648675965041852286586947047897144585968823924746296161083641069692095547467895189089973363542272294079886209359015638037285769662707144420031941602678988221609560881562719675837583634271113375670273437517369360528849278311802180050719810553643533727382342372837098227368327258567515444086386174749231470422221380737671743842384639540392557219729190010036377331531636113054263123965689900458963828668989989059754784568203957421884419856528163545325819465389847243011951997060823282525353526785828444766789896337368933700891146975903621502170369031873493411290269821854660779033300285352401941528071261572468248096946668206555601818395102378936095604941924124491440107930517571560211770709464670423010159579661268669303347297039642358649378242785686736526675372996564425940777538763591394946368351068375810643731030857798789346641362719704201652235945275711669866125285348128357345301650594747463261762588562962143277981649701022554812953175115602761370318551412160190900499285346599246062063923564404309231596361530220773557336966499311342689759479744169785494527170454973426766191995967224702000101309348413572885878009570268904044990455109627920935603189295142801106601603699259182648777022147157148620116908479758412966785151583908091221948409606104906989747812998010935248419945872197125142445106892725834594345931697331735535177619741427359573353962180054938186554714555561838949468261792351808568413695579839154886412495270630044217873396945491784034299686829370104650554598433052830042251375370964245792202804478383278121825339307016359801766597111847951600998150482968172234260164852307437430681925520364905825574459238486413028296943396963017568890621787588908082679648773155195016145123111223147576878761783741394546515976434548445370115913200745629079945360409343530559409656435169273423916413450915491052285622486348588866294707972278160905063411821066578938588029115229307183818466262840205192076883991563205373801607885399969529009195719512722071704645438240703595540462122525000783699658174182192121109115112412555385811609224296575184673574044452426963455988599044873825434825267911869466472530308772166387478639350494203500690046408665097943329356762597614632236141441689449855667232038549266967750587176615492956743652346978605414488158655916946143650503005532703068060373897419785023206505275388390906274347547779875614622654759950627821953047469679771033012987981027083801538969119024142144985585539566965874419692115060028076269055478969494874635574368897807986496186271892865090835360275935722902492509717538844027906384193297084151142260495521753654537867983139144537533601186612656636615300302684542555901704534257662053337335728193848212755197853551606767027797149187487049250343053265437889491208315664298800900569932673375724299331144317599993690882674719884974838228024722313489698246297883995954394956187311037047350965696683814161273755254363485797874728239465979756331437331695000320350326564337707981225764781030314617446405709995499434309396771522823564547665516776056901564421431783328935646155200779412559634327737512708743133578733334137388959815104911315678215213051771111285736966342443859018394013370285713424132353824475185197759551998369739967924174463622334931914248171119544736390421741958061149553271385531415192635434174381683049354926563226244771427860759348436019326338211672521063276933336651874029925913900234177404620672928386025617129467056654237710246422235766239320053443841926305550789082752495820382994408836776857204440341988005352893678430106543535265436580017416506592576640157605967658197719164698837251759781467812947923491857903706680201036210220946332082877502419766834012974366438311897955702399010952907179204465035509075236128448636605835383746475472496465430526239813637893879556028432473294491651308534103663980133240498256803009372673982077560780628561056353264833126018722822715811570575200151603474792185556390345460490737405451003010210310281669551232260351452752760902839778040321005180347579321715073468254605746063866625787071316790452468003426517638293904336753909649417736014975500627847047037235483727453521070841835836448851285315230655744956982862862661928409812414141812596903038690129250083440261751288090304929954436543080607460696736884316779883988577709919260926993389811547840766839923306910000887454372370922134825005310638634328445124994945882910327297507413655669276147784029713963768168679676977048923244283654100965861384424506245156626367164707541179196355894789040741537009321036836656887887100871609302581810680976487871351562624602217771581725406272297330244419430893545047200449212168949467809916411896660767504014025365208894930076218145100643796823483473605566881600834418904506442823890592415980864468559651786400943529396606788569855303964780285651454140926060142750399121981125399935700871809788164301837453951036553444473837325466556010984390126096596447833872688585915921970985493033004458882747790038525309509518743197843778915936324557999005645146108617926211173187736738379696595344944318941773464623465998696051096286522761506160335911420506859137816862104839277314047397636132840849196193979217086171916919684350305835388660001910127885344899272352770851300865315050687580515884254768984330694377563922863409941238836353035067929071965162888392715094285157696434258230424765642416129795961106819571817686785200997074712594134068318967183003124469802355964847158972967925202110414978065177441064538093577450071074121307380354720693030998378674875881897885744055712993709471004814197412348219399819419996507291371085947597663288285539050883207963595056810557184485217540222108375282895660652591163714272478685103134347076958992800910070572538831053401620133783411427482624649752460341830103363384345684326438080502999634590794017066399758563648680212858357077857649335574335296058952566074948025404307948120522362709971619970217196389940462051979308021554955558943614268539627563296632028393658563120316944771297537480614790051546947764243155281235676606778396433212051954640749935112537395637646961245229746011433183086527860198089657024115501712241776008935485468506126105236457477025338374101382697785791503055892855456798212490834474049444482882524335682957797735257467219047972716361790466257646225598544777445871720811962755504465035478554626912847997602684251651327238508834503963860406504998040734204726650372377137310852108470573069615727554454058552223256933572508567390151133913497680394941324285642111814040887601066830464146978611881489115582791411561424997225095486924467829348933486367892869150520557368058309747645928950297834098446284205996775027891074194689126614093106820462879644003805261168437457250967403986427726430446053476593433225447769110982047801022011274071041199170117605141851927736462732855975018476261015663889485407195487487980328268090959577297370608940394406648901328814847070389124392400014407273896992653344982069480506386779039595411122501255544935795526926851493861864554915037054977747282800734857400686535270389817748644626536257089444913917350947449505300308893261785859772611049926383473596834771905164488956419529174396732683306944237298538773037417549412647622418501054331336124016682936176493204277974560128746098098607764922553305297401990981966638933358645288006496621539335925703935264532221932981472025330385223182308186644838281398727307776483040807884694924538985607700469781688811085729526633105506557758434408541364363405798709088089432457787145197130496187540767975661663882385082153757554858239009102814973202203293084853407458060498242557024170990302771773131299106486641643855185439531801228292131744391393600395456474843324784426418247964794744597184047487479784566487849591794415203778834145660913699294886757863954954594791512676284419931628061095642264456886282825400992903810105677529953018813337381796168023805305132058544318001174662934072500141922486202576204059374748957469711824170939211035350735096877257096111248891062049747318919461134720753668766619498567011592931751921968257062083640889865658913876369116882146154896233876303071125309183327199328802675050720760076626396505050625173295819188980524299046225650617508562396898340511749752643671233277547783607752898538895539489759261223661555941820061652822443691287040778100486795300142944960763535116797986260461259304411199290902693285019031284924454620081498896592934354132961719248931963805676094836320141299267233751701694143072922514613137193776859717741063891121351360137885609967383558824776455097267028159602059027184177230494685075791623708631177995550718812257253108212797014608971769876814808000161366585678497520526310328245768022736193896896451358437211874680968349616996099311759714213301479370379150581576939088622244715571577561915305845393063136531371967163554119911731807885673769903861021992517289082773835503607149630614256279674866198455036113177953158920100204189782022053866731804663078432890310284410571558038937992992080932360771812836532237127379561907387499770911051182505558482319063177555058715578296667847237526623425242721615915034999370369092015363812980299226826727063860270995965321134815412813549465318736328766560773857686187833199711991263926010878531200574409327889939475269213758203458227371656176693974119241474322541218058502951060494974051503192106018978098017690550428664996421384352503856487531026231405594718863288936428567293929409607914217639624095788002362187967996011831998116296115066578059271050278601516481597798738378345697594841775128652594275227693216291275335573679912513848913406660740572199359970087833073942885410577732489587243218587575425616380802313073817649271240780459922622858131848320191082896946307253702558148280035308149934650182351973017780701625039426704092234596638228617285798221416951074474452200920784705032358745795527359397620398065878138344495887179597181197386592764325842355827962297863617789137920800209426848766350188654559743091539194067154472199002391834593163949899626844486575611075518439609116951142321003718757267081309755637958219854650060560489245900918842361844248447476025407699995232939814396384097586047862213051829320073661093054231447105064382575638700955128040887436297727949390715296918162551799637468367589262430759198629483044899703865262930183554647418948654987152438745851930389371142095235777898172933517362357142554169368487354647283376439489650227584468654152500591637321516799431032397654335616790408789632904192676193269586893612413477374347058904058435351470921654988431483867312664292179380625616914189753651409591225156104315142421095720506231392657593370206535948530707366336338007628895519624229548033805139372853275834296526115049851839608520032338116041397317223962719030455604387868908836800004618793369396945741280627775940558278185421450035726660930767140395698509966303221888577453138134997822072633252051651498902121443173420913994992453373257896023807878728214075783976856562092342068591845816959513532733478183831619099003838177032607387472042553070236286035090462019783727211207654874652849393808504562490248422229314531642279000217584993184189331419918874928716284405507902262205569703736512967140322595572032855720441492111994645887113553279557108945216034588977215525578126979650464414625603637567238724395355655717821765822267887926707028317107193671918750731838141551524826205929487999037660114596580131560537597066835087829238275536959240790396650880152410347048600162411889941304353519844277996522798309143008686277608913113919265291198060073128892264562636387423020308988813698995609380578558779252865204967768354773113476943952127017087686466647855551975720538592123746220315039336816837402015641840634319363096459589006377084549032403883676923255522388625425696061803881764729845582960279546373204842387510370604316470481535291028025711581913332373832083367474027505920313010156490318856852530380885769936244778211662334020857130064403474477810109939981136716163516112633308276655322533737186175246096486774766242202661330754306153933400081498692060209123952917555413786515587064617461462361417279650996103179069750954576906259055076691938999949876361091618142394568287562391996265124377598074188460920115227969989405155267850565216642408550011493463806900979832386118084375743076092676116328317550582289502180339939723440853069566311098845249979734753765478150205683604369014851971175681682118143841150482129762402161664122664301594815162292480681256020978220330043981274045593907944659599031648076936881905306036595496010476373559254471276438398987072291164551990152738413996921597914228932582492402710079843081940548636354881104613982119754412731126647296921770981958019713075955423871111683537421689478848592572101272432633403565664100136137609900151868886960844477066013517454229028746947603234771029770481806529705386294117933967449295030859141478302965402654528245497195178988532875028586447473544772413061559124999643833706924844749706970891085438209759545485273728036337280460793074915613704750424314111172233902398548729125463460193661637487975284358663392331912838082151072735921799882414714321588348594099350277931656180652822586191802806377970298309647715604191050665989531070117134499346740079845772026583983792980138652982916596708154056950204293178674372935552118914097280843852960196020831360622614424976597730625159671424896974012854779058621693350432820058891735732505358004355538742880088420618327967035900147499395012024993189118574381991502330681602538520390651539750027377179339172689786053068890822947388241324905236783667134864611593985808343717149992717182562721711012258452039363766401730356821278149481608942967732610626002942544593517860546593674864891992087988157589230667052745291677161198909188108870135556743343938900614356839967221239456291113136719226517943277554341808430979769580712608651668007632315062300186596950626695936567603601673968334368548816502688230666394122027384182722996135351914291592199650671467212814476091244663469123691986447906628389139557711973960229141104092230146550021642890913467666072705856980643571240639893916005401170963422361798321259195236056119205495157795381867122704427981862659961614230355639643435518382105590461604532180995872896017207098057342205470198945410588525470071105042313372261323578578163568758441531965858863993936922403006047355368601315303995300233284815042665828140424960981129211795032275284176159669248405352295762146084439597284996245130881783364287000774925642967256405208644618906759638751163494837196477240599955497803110322721072445180513372587282080760042863523977381398919501213024712294711678794225893452493866767586972042437992572282304530204105083965304888024273936055957188276720222451140152973957682543290372269780601204705592076737211620673528639606284711864065545005180626159698019342197102612900697216872639282975408206989244274114483000489945039397083649533686062409102340267968474791213154765066163346858849586819191337989996054235164369893136044521360007999852109253560892266143959137602008704503382877312318313643094983975661945549232981202216478752270477380077274463338664165298980997405691008361335377628898373794466518826854297751845210396259696561398227527765999673318808506599635120642008409854211194445918166307026107389686953072783662445504653019408152449216563526840382145863740212797702284578713306590428510527272306606753153815785607724301128745817897783773268696459194049704911141140619285219090493495024369591397798849430530565510483962517637395668769463105226727526337227825361814884689846608481862108594269842869036873373424834747342240092160249893450660433159630192822699824509339180412525771439978868561526130634591609272161805805843684870492345764213738246003858752055822391138632510557190695169287329778731036579621116689032560563669285160797443354063537340277420284687889412207364120813547751474999146728809283928239385041461004274544676141838336545383186945332134221854818796331233750546731932155174267679869265128581773349294119899492841838463000257887339906298855701758983541993135376921752695240585131298207211275329562519996368497739331113305080315481409602611075801673069433445327723591848585003544332624790146202446336187643240461050610563948210782784769841058126410338021292866303572322773271356593185238806302498496793072531329787286812773719210024045256169092487319163938317776015214915769013723951162699695377484562526623637188120053021162950871414234351692302700817612836310775146560531782912343147526867910419269718145521090488726456109875247483517696245334523690592970056604019547242908962372281189508058367030166467516721192325413946052306282547611835475312256103424322524824679368046467264449654689163401853575163712206520790972547178632070517521849365113812875828228714048468569085793446534591613188621326819062569504199632720760897386584627077554068895341194899038332098482949826272078553494592910665608363429717773498233207004053819040702623932913628915112097555874248122119864385870233533862319170676178998682092053279430237702911377649109598631236621659018452183515507017122730501649003164784585926515734398001799951660167057441223454260539695614241607947986718636988042415919680371584582102342604250319227874823441996172861836420219538542201444464821054039407887005032886658154847450427141724455992705400164977323865873695135044784358500522796675224623785849056918435077498718740971800002356476387021864321701219824637979093191964555165339863794196309434833722624126367536865113297271403848050598119574266461186268559830983608155767211583567699093216699204041369935610522197739141958320502513606728276072501516781656684947396516592797137994347543274196697495125135024486101473384535420176970409675010752744796990583160844665136092313516898596191026019551470795328473200718579312728638216719078259233557411100282056050927500675351096494942590181383472437691670323507200479702081675116264754101476273590040378800115389913580102878780821182892056482898684276035939175516338396563154496900776276240931326156284217568855573922794142045055055912917239742080680345469704362091996602606251683314067627488515141480463765985544509478648788664867363793003873650335780625482644226411042222923200904781565901391621182751367058827101185843607908909505372240506223059839689740987495961668066831315939570002927415188075965984782273334120750023382165339552175092105417125135346659561856641208742838014983107533435506758330605253084194083462734344807036037178481952346168895173845194798132427242375689755631288742859527698235035318909809643160718939259601885269405949942483707189562226570346713801062983796218751596977214862531662787180994024259533663389119117558814950013312458790993663389512109866330371550790728586450741125325051220173150691220158794738497181427848573998612332930914953944271735555643982534791003501124846103669035717594464455203054250000175430583207979940623274108908958740519002786660304517342292304117017529337495529253472049867203835547359255063869716115465068108129400225831237905606688163947977566280728305457566631000424901350661455503726470909850105942196806969178480365674333682411975554945862172664280643286197407235706529236059779814691890878270901320492860791091676594158804598947496547356470238160230444688544431872040825998381233271896313849136993613944246021399265015266142849495832691526097361242219911105875986150179932419588110662964741788185681212953320652037216664858531003478509179740609062919663283751417672988325761259061648666423492018778729396901858769582965338306022990159985415175119893845189963639016412502105473772378713404492389564681818136623878112775795954684052448848684416768125233723780535565502719794874456287864916335525395700385029947658857285446984588702680282120038415952323611212894432730013473468002573403292523055900258291645507229658391289033651698896056721000082309862198205620779561063699451579383490763325918181276515623146768574488869123582656713621862201776773072283677845000425954653972765361209800956790161568109389990505222654718886347030123654299055270052974686062941336515698800497500344094801248075604768954782111626701390523140343784572236601539100977599168838133735937092410952120427568119501515804800312516130839576084005261262444857728314822993122693839638022621473840568673888224043706506711390897853727125163282766261515466328793257786474357746375587965509011833105471279813180418401044055807197137886639192154168558943198219172474703157876976026801787340504729472839936015554413364837538821301802420004584691643273585921354967537152060329618014908338146990498174567799168827634149186864436845769923685743574933484472771404184980215616320825494839143233881642608485395469797898703037911208053683522288084567983740720897709500346899570421370364347745632722454340959343773295433336000164482122519534701257070045426816421414782780390937112166929347964776767726700726590817586041183395969575964723579032020466944584743075508296466577671711503115326410054244297893904862808417470005596320977690978272482678796949477742836966860083383154155572506414734100076856630954512715194241635839410682671971214320815828693434715830954210314849899508964426026632214007796904250924832730817399295067356164997671334647413126646839635109489937226722301599676254711869476947465357573281233540057488957061497084986397492728266453472970709871883578309098245870909065131886879364578073933544582569116412869520224257036624094458045266626818226145155485629926112375375900545609961052716166761513502311425871687414015053924535873880871930085223631632698703212696786902865128451828556355183769276325005461465620796371443801734046830353522158771620016979718692438505480344729560326671043731379689089969655188974310051361354360864516255635826843816041746318823979572581467633212446990781608009254911059711878154205920068487546119645271956031265913769971321322302213629281482988656250313560378142508041804736506699039795622552120654245296857906680313593310571449926790572173141830436423192556608888923069927536689864145917698116260373556316782980172795465476939736242933831401719889045181797933196420505841746173801141948770552557189769852896241532015092461794847259645814127062871991642734552307680512556654760229386870225092248723094309621993809862526419653013555472221194941593198112204567873570565366953077886971425232240725005910254704855969256741698973060535266071235282099387330494860737907511320398417188516512100658674132979049998823233412924132210207526781957684990358543978477416619525058379281775807517112516774522254488822768732070514561008703886278216286825386324726593648816567686099873845654224315789729590565760481522034168225105804040191893016525929908216790619255076106227955403055068112481406911822617881856191482463079589958504740685508157272259223594164056544402024670692464617512555673328425439001909664313213062617586229710471585901554003132555595993613747275246805238350519855438447039314528671332773326093017757423845689250887683339659090164530246353301765245942154006356289894030444519569929945978774914383605741986047766813351699085191666549544509020983265028794113802545919251017994205599608079023350769210473796959471422600701242228062068126081980040758988519972095423204522019388063402057540205361532872284032387958659820432619292174363560531680592376446261588263554686369969964611861423155060295033091708797428532982448693489887279173721771050609341092724628067308484242636324725125878378567283387534214832570844580594775875898683699849837392580646144242183664175875570091510701655042403587107350841083295840210359417852730635785923196001431791628758470666389989810551156678753070486772756701645373144694327231538427136799412430290094744093886980418546848233412011375261554965763155345374010981664571148966784691243090541632330249774228399783761848942367776208888002779737261350897816532822217968959381423027248050938257850408654505786919713879987338772853546148564696153308025632498218656861476327964625736273353713207049179751076308206956712681385684073443216026669464403943337005442891673640388572869174089178023517522545002840833242892401734317389142796871533967437689352775085272839778723948293335780742541788043690025341582742620019348884869969541818167733793596216501039522489061373056893449224918114642213838629153032876487614236558812895627695063766990972903139713105059364106384343064122551699062169621061776986971716996543187113896093012261723508677326401741845933958483962433899573745358288953380883688426281878362698132099214949662622501179773964886844274204951626339364828494029170670151987868931433314446117078902382391994378160682425591128720245936844394079590644059366233344682853401146553310531950028660126550040176196381761068704783304405965254029324295641333996209482978506614531906340524396711645398930781614161431340035685689622949042123177393741860257001772557174802186088900977882688195932227188360888646056975257258919538306789794495414742795088531815646349770417932226495148400174263755805216830739822103145590317029223260417403289101540713979277884911165094586877228948468588003291358821749696643531187509716749186300537983676904586785754988592723692115226751092970523305172112231378809910871411667897236146404210663914909801019919366434691647545134733821240417938056826467485374030152513983844158750484669928137229743099273697125659164957321230403508378740493483997871426670005909862025174403454303553648868586369132067831592241539689197487175424630180061164256338606994463162006478846439593930091774718307328015332164390295686207407750935892416564039446790141152263628330247705841633270961511661375735090456427074299521033214263502957389533075177205680830252828669851414448986125843184939485121207560078169368174767758683712317567545386593371198333346328942646375287277622128635391975695208448444660840266849802205259378515822768640054745741944223435306536792556730861239252594326076584233315150544932108508141649054477437328640024329253662251605809605166133173312420371332296421095800610420424402885742536203670315726217305405394229735259265372652235128627166949109736986242246973184474090481827059948030589167891421651851637444105760529800962711689590920484960245695138896163082046279980587558021010014697129584266227054375102405420001827154526054886178066518394118795718089347869938212031451603479124525565532752424564783770316737981283921639642411385619189789410827755180898222627781470767484325994919229129505087345636461532823693613386346103791000844852586756502410721141215333930716442092234833299824844435730497305260610147179593375942473652530004369961184879930553124132017251923049163395876347503859415157716041899881412431790871453545283262194831431279859782759972934910835746811634748496326199089724318166425355722900674815611009660238296827450614344786682738420192891835541603379570891324001746722764523927323987187971787592964310334641222442427591503154890960543057265060165186270396737341088142022753467285944281930619659885673519520557408169476956032209869493648426384467712092999325113020176290790895736688384747623285671613922940710002868737960348760458130368512162078891054550707945786197500269635374492219549431059090176122806605365797662491538595321776420173789381499394791931069688552473838738533877790492376096189407734844704399533343385088346885156714753318786818030653179298312817127645359703676300370795000330331256915237941301017363643367501861612239726814506488470494286566451318900259092230565562458155401355469359880516986184605210328546843702474920692108391164757652836465634971933894325631187556255567373519249681392809029393932080040249237660161022156644880423971403471395037271269245366336130308146144718824314366369697412203277730771563466090931781402247128205271111320316754398806693354489308412642731754105617425230786878997388770053862277674446024997045011331524252881297430411941094123203296122694136253644464046930929531763222963496560120800142118298117140525737701827975655811529645974159241183236915892531177941682417627941586129036692105525131563914650091402194461288988310661709481058434899393190155941122669839065309648909189778277059377560991514250655860823188478599039169772809016046038993327116319391800160658517290941352695246664552669442813163516581482907192202806031478367345326589125544961030030160030001003709457423081147292635624123518271424227105369257543659444496447571025793648177198116629827223491619262748124568403473226203035012102146477059591212866787982840903824221347305233661877914005873257135190177818941735067822097944973737921509317918197431178668884137974420462747264475538736167815353925431970813975857431157446968992750416970294657399940375129620258939305110989595161654139955738969560470096620032138688732354314632377764946807503683539471874412339949596293655338307332169305793953354806283600194742706188460800823799368717535635849871790073010904988944343724856308645924367034336310985497220957298590739025528828872040206814380929293297615393772792070242218945178887659872689299383789804206569591015275653147419865577007631131092113811827256316484937999689110449833541888818048047081260949718800031220611617915982069749708045750717983793286339131879098266330163481211857736115746126947201083871028424911626242429018291725302060595160660079410783574499468898812073685025715400998932031957441335532108261713397079555088295933832204580398533081348783523946757823236406945240413614641444563239500759860200209482822313938420396900637500481247818071670493384265381462806736837179982090930288108579981864614239337088846566562147036190658566187508876338575482684358742689634258564440395455672398041613762189063601472146577522064910957620195713507871674906665495471328824709843357998126753374660293374324025096637915889957562385928536027001903444465506970479777752655995205772583370673528837728564471783871239296205938010849552494435136064026967164417583386679212889127321716974278304358950411160140337629340343116647791513102490441583947607352279508954250613929884976957545947684795949795520822511305899950557494646748241239289675086748989987876232443937311241252958883872557486387400567428247355087094361062468759895554964262942493843590652704108749682088156836490842953178885422181600654844287906800018487503945863017886609478826753711265654593152829455797279277353551705392530787379142470182696901934755251112527219626882297652307660510465750441820101415437253537563338836595979064451118502499041554457644389425501329654725287376768623592777321174393027191409743601535372844939723171832863001264234067820970151844957315803507229130063826158680652434718495775523546299026450207721895882230675898361231010842824633896352595994483658418888997405523988838482768489994441715945014066249824381677642839351536448201294686637906469288624150110298817293039058316449349669156496707724908748528862224378345150973640660349201107014378610374928262384554323073598149636051567316637417306976016882781086610736970315645817536473492843083558127281546198163637631595543870297804642062968563004824201102386549231812134695145318985347467310144072193136157911160711831779016235906064034771134716045684268308698921136272477023175210088013686435496711682159984802908239999253794133944760245065204618237807294450859343433186060229443618493081384689584401696081681608681942135310423699118698315221534535592247829437709034014971107097089394867909074164535918453600270452475225408446263069488472476292353726426708257895629786165036192170004430023486286845848756243452361906600607195554515593868257962267500992954592140230165493884942834088240596975853787449403390024435874387146091746720473059779442161664490481980828335002153798654744963803411709671512110990206946754244070409456029989695247307798232332448013661769429394170606352207124511121436369591043179632997442966448425858269055829433660029046216155895122260155912304032938816096716594198079586146296494556851166715525072239114606235663530829822226263518815338646207154072574745376552083807892573886537516931260896208814625138617831461217453598135127250431021842673655941027150038223457073279609151682328987658890002857540226018734149693228947941955798977003261674957461995101804052543785514485769759029248815080909814223870389391814860159471818918972986474635243205279344200821216974748670567956177235740659896669488126955759074687699998789400243553130864728787444059224703425117750629426264197713955016928946154106264066683976087872699844849324471928622375721485694413201742208812110830798866349390903057468427017254634638870514682196495568052010469339061741240106648495871665007938950704092839941172834703737104575253049139659057259690332960976624872800783853377809117816383975868307975800524867754596603683685332661305762853415125688046556809608260854828280529900757661929961291969213733062454937448047761351998049989425757118906135495636051357380404270622615755709913242330984864192146153708694985012422172180208933996125246437809645170929233571342814209581700461795850046127719962687911881296058757572420644383969899477431384373033453328238782794072041685885225531968726256602434760395187664857514776323085112066965913349805286197758410363922269972184687339709473196203904086562774312197037107625873212516090785093903566512798809354531265536121667424664209529322639260294973937036092109211293331444476658190921853369683904566943760420092094366351211915060852314477690868000370501101574057407168429794816746977772363268294819001694852874158501872265167303206566606306173582115342075474897736257631516963128579501125046320368639844667078459247124681041613043488098871764806425791719345165617268999805650391681747830823642206388802061485248391114382134324683373177872252037796114871230267121921441836434467724399573491282523642272012517109650870544716036458972280959072669746616849052154167374731155752740636937070670931945673701708260131012663065330036044962893210472581864395779781435207358343234906419867721275017569585794869991134037382282204140942213072908994274646815964863212378455681327737665934787930800759703526152301354895325953847109897022765013167878789358567255219096300887976634096741002215992513702397317012557642272836767003154932804642310559440774604211150005591405875816368995887356179958174088996290000618089581074562427282424199640919446493699370924191191101698854426765584491989149292825450108308477886045848755434230321570404326605389126521618377481443781665467192744187704350637969604565029084847091953615539053176439405716044621912645621042880861766884253633469623145539598435161183856887464518008565506204674150106813552748899268777424746957803913543114606096842978494585134230936122983046072076658799002012170271499273311275787008084314004461264134894026226194278861350932318815111492333759115577941562216005637465807586558902366621081284628843518964721995420074706803989684273656844456653112483680215650673692812139448530248041509307221763946327244400811831046411463211417432400036544191633200422678398651078004716395091169061453717071671954639206049980510315204829611440752726393253946088635441605218745112851689102056415536555449007790730549969799555334273714688956606939433806103000175156805082649481670718269379167241530758940634573228552007567516047600341585640068368811380098144486748083251450584755701192080560004149371766504644013771634390002582414180330478280304793656367423969118117101815356716174785876332458977344232104771358855225842550526066887464332039414717224514592078332824896039141141109702868281863488126148963921752550404135554469692484444859400129991228344015291609036931434505769082844785724873665823946140445145808307632887463753722693253804404940097709505044703997102245548602930859925977074532823759018843587602418792525340555364434436704750907742427047953307657949305865957156433503091921091202116071737485832791811730468044621012508771925012624224930150092709357857960779168827317492141052650317906260647291684149086530463963940194429024868985193209709532901205009219161912671967669700318275188091065720787846883935271286938471827659226530992245206863676126673718410755004283339748536619465944942308593458146738302536577038452061224637050478709053895636793436280950778856702181833211461533940502052170566869962686604866389592743912877540670493841866882500193240964499831056695542892477837164746052689011698208545419457440463804761143326542396017882781182015376911678993264963116183186559484721440285399914845256543318585091457231275717370829939631252891961763546667621493965205609509174500354595877230441771121385902340761213755078342871191071280633278867952966956899607661462089193497080136250121928083356069436610095342676136063143764744409410370119177020766896308689410843058213621350868553091679919891940272667584835406963954097416057956708509924793756708926951643950316134472751416403182538619868313733860383127714521771848035881671723175680568350631958973457402006344603149504651649859236428391643355323136577533105236364167292572246310944588901224454341942340016873594953652590455498206609502701297702358534569542269091283396565438882320114702645363929093979896374391780101264944090750112868903642868571123536910009650958678430474924173227079395924884027424638492637257446546603385324803264845431399704954201196652794576582774968555787353573155233828597437717316223310365343187156808458279487827493149845582111307864539093375715962358265860656981066782793928006278757459174969476542541864786740674237895194707882710952017115538677945073638547630326017321407591808871230584214349093202296498439860990042683256706219975478897479802235559679100827942572211862855675406266972726301284757823017519254634857601854991385844072833408769927767438381286928000934317076047161292550276280748845838273815033926598460930958418384293352319525724604562440135949175796071625192196106553529350996745889738454231652876814223977949845485222595328071834748366844202130127702690535265156527810082790013034954478481445515366707528002823082391126387324378681702918767403153104700504566374848458678785645091963985836979728831826448459450210765292159799959590830958572184388746928174880152885917906590374564633775692501074699512850219055115932281539700253014508712592228183360603337961027531288545541563175623020977669786882116024029769403792116328980028107567776903524016515819569592475280803820101229091906057355469479791843622621608668072088080871566053897027073581764544850150375437325651051999197995738372116919206729833676217736943854792641548076221406132544674784623300322681313529499479517183380096820845941183142458679853505132096404871796282134572724802929724662336296254143734926136402092442908239419443221752326172023525161404125227975581155783136189228202707510724878615350619621184492949678934946248569430374438099337541051585022367360803597414728461517039750397635697837157592769308731652198721510799347393895441715222725301720592367658418348914118673647109763388767736218743613132233585573894830364459316387108320860598453749355400506945623289957527265267441435997437934548260726916923927317134966418798278965480897019558722883348036579952515082579519103146084109073406483689382707672559957456834399882138602846302650055929538554492020714589945992229437634029219240621355018619927607695475351436088188117687141800335618649098130250524036161009142901439191008950401673808585288076617104288657717565105544809239397209137578248171004523486795835671100218795557882215407879887049544560963855189472099663957038220257007410912336330094099740274196691082305792031447618836085711705986682262400412855209110558899880772811517767867246503694526200537471526317351580027216608992664525040402086323092731033339540442452955281059535774741387344768484244830999336631897693581234615730857159597932408712585877452480990466403507414046743413762249359404290972740510129926775195734283615755854442563488308939634469762945624492314364506568019666821510274187042002535763619975504771282763818677429710540870261030736284310605430544106651508379988110531758848815844618580695061756741416441484087904853940580153710015435744073005063898223136855899111815913707492712750976800443624968388178850094345513328002996252830324101786200999544830888687866729416191356790286936729031925107153728260175977938845026898857918820573326092069996272493847065535356817041358287333540368224828525508235048966095007004864595929180449048877992621716446462048628634758462265472068318190903678653787189264227410520429353025210789190052869931155738703938645719196952249579985219491600296644821387531450301272551792071959231846487565787581490798755145839276004013859660335275391722145212217658659930612638510799032306618881854758652170099553300626329304400335455167182862939892588017877909302415483200910043301804999979194126419825027931041602956418402812274212299581896049966052056925350105908673611402271972855713345339702859737340929160969800033646794306707275770212053171277910697500846691445073871749012249700171752502208087229336866265948138715475130962150019852361040818165267159762505792846963785109545409490733867140699612160890796717394431192060359030319598644288073415887732478765439916127588843233240621137427439495060599430300758540121759274573847348947876652950629659380258744403031890849581144524047877988646560223179908352018629008147382528816213908676827385484546324180481652382580528313684676902445972250103468957169587352599013194418442792039853989962082944941692191682265768363013495479008389629903771022009637094492247293105646417661257115779099778810716372233548510475915698342361355496339737742385664242588401127272233292685470683440511383382811582008282727245370430017248883812003700744357574721548748309788656458981207568518127562531644231603830442522558892151596651370973087677230398076819677720803226679507045297217898851110175867948747799942987936615206411725141885524974327926976954036444404863801172896026558102267641241414032826826141465766473633148651708075955059480217181362251788986062170640725978623016340608287131107903936682236355194014510800473924978662476795630935892288359973512524537280539978609778074424481730979344986125416889185006632458345598080520890225632033579415893218926424784803290281559534455011385310554926463553094445266957784702209919811076496196325826223637346709467366340251951596128748115572023867099604447326088593062678804794169074884302197218324603654793362325347280157463581612191839139357344084919597139014854888213665007041550367200793137434437082361222813693104417388026509381370374899092996097017562166523743458034672853420635552154151085282028874396725046680899559751136361940762771550086037626795695195974801636958321822972714783340152357290247849219444994637831903420149059610266634894457200872193382657075381771983708647447050112898207858521366073613334794312017326498011568019965563810458619809022224604517795313406405888473580043069610289157933107420709378719187256906157022407999740341261373668564830325512434134077884727829500087953681467435541653968019512304377337170754539757782775296167463452058789855068329306115602636270223130274260071334199087729237026536269900787753600914878779139587920442086376065791134406984966839193924553219772065545513613341537958424106563594822316131685063648306583140806398406245920710239916854246802073141784746233104709924968970235899981461526992981276824217024236075283388012522871513404200248753820904561736444312455816770623061014263805324911596528401384363443756990875066486685808323162691287926507433334859082336540552384149208878275592803855558005596818024685240450475578621054512787533385762016278915811576880273737479169202728037407469311782164344636677091239117990975694629695853863390543014987781002794956731677286632062318643590853522536866543733718663757798532594764019670148214615953827830232191276002161425681485289981391583168350400407023685705054389363643720411678138888516863497444536183812393758368012764123575521232446656852636361237104621353189876947925257183717770186793759875959365260412290394972094768538575239551759236107732339998739872426431512651393786720010200388507296850255574136989594862235387884473781443268632793091671038191467268827984994812690012639459182618763994846602821649904268330102701459922246141686155391772776975372603933146145980778732259759024802260149520512468153412657589218499306684346774126081986377059052923244469194005520179102128523348212072924161782627768165147864533036254238539521039055827422308357792360817551318940440913535464298002422622136933054352223281160551509459990633174503010533143500067132033470624493203883663820475104873639953874997092037348027344211660371955352481175853171984315124972398672450947688850385024430263295556735780707852437993218265014661013508103924461590767735414392726862381255078185983965519692113234223093536639350026725583372608385338582678715857343023545249153055342605912192446946123088339550940762703133476109319119801016420601840441233834314692534924156573745211080506554825026015305785885136425495744615003240776615266546432587025102425888308702960337674944252512541493910959499689062958982324025408455049017554699550462133603008926356866804009542276745562140327243321993855248030764652428439521342322727133794959784486233920884448671756969113094558433378836010199051621532042779427305629637245453522377947345229729638798507117577260651574507509782136850071815098124266953486093757993426774046856640836177418389139118727949098366119432185541795158672004207389987930340008896383700606747996850512848252865395965351805959988838891392887948147326441938181797677731805616878101985376147280574940927596564052374306312066238801387677811188355210677950486620504844528349592864719693183826811423814073701287230800899187664529661292455809561480277956506535284100634181985781486986993015220310588925616528008195270080854203511221110896608070901621114059427240125148951917961413893113650535629947847031437717897002856681155331675372422643934059403534923230419156217591800718325531267303528794618351413023482169668851352494237137410515204429505749363431230492200193687767757939526702673545386934025900418952110213494871009303576429017026838183477565057076875801075372983146602263775745599605358058709871280987904071825872616568362770882425428770498630166065465109756926615348152876592518904303877943281564477801515143462942199271000022747356123257685691177650258086102438134564069305143227288448365762536091887668431215759646160076849151510065484282807896218017178007616983044583280215770625034422038078510548327580258846021443819838940168091719173288934980191445251931704383147965909816104258598403424716656686559333959921781431376498608755544505204743390396274157439734826992816957954581063330336419107193654334106520556584883895901272678711025947868211870824050748243799120859208075057893749632364250339796555813196596657782786010497845509882974696428395203932816955159749461582646133491173964291089000620190419403009434495137831645930573049042372123400790438402545264117193006982995429316656113209553770585589225524747325505762596684323183823255627491465188095985650020777959373080686728900967080695619666255112855935275706011589503577353978782756494556985029363433511605817499680957420432360648647893912078665410775753259966071626806200976434560579759034461328971004004493403928423094150384185230487933656676375819318398354686269170580698093815193439858870065939100707393583888135404503247233136881557363123085156505556036601847949279032714115371425103890042574056254968381291915122857804681701312583794804236532645745181101317667112707954204952097297928482926325290138883741746430836419969867353757941050563750900825729076497691238598031430289490585583686669375196589207683744525074371063392914102363344700178897556150328720515653119655932499186950239076862060302702823805234739827834619156726276196297186902381510284762699735087821018394320690957512193877832914771934170022273276035128981340170694987955764721396711927964794878524352193431444670605591597263378464690587855225619136152070584740350440701524215108599059938643092580183479519293484452360400061302766805576596395322180056373871009638920017919154792531353196984793145043598537150362459335201101984768746737627008678195195910481569326178038954742922479340162289028815112744097747824061996511973155979766695178103569787125749908769875377772727554651815826624221623762541284051861397462558807437098022351690826469867975544105202911068389487406736692518662559063054895319198636305161651046082819909778528095332488565897181151309962459693410509128321384322199607891335164976097556501447170554174628376757893513268589294016847337101292609340911095468525673347236795036932767352373178933978528598305029420504180818594579752337826363030846821965731339507386030234675599684954119901453415885250943664756430494500453739608387985051546020072154640005309441951227262330007207671551220346780849913637086460534840348942937449077025773613965222577616052860200672481740386002199815171390712790302099096952502215513355169992273969477876043980059356706309729090789227934318019613647459774349687497193198007647329527029818197253078953042057599232965103264230326002640222636632492791996636968094894573419770016962346096688903908541492179658016007054770931439704963823168018732704682477038705251040121635832005385474297788921341200786393227602134912135390564540028254356166263927757887310605596162021696635425419903852593308239165105173496521804673324808201130446832458911984818617941503594833642191134261012090512849468084418565465900348150223616740471427851760191001386997427954773385232259799443193311529347356161278570736629921426571988780429277511288021160154334789894608250566192776721176203562005313781293322835637372843925502051234287763676141537614411863343404841125538412499984761020706323222154110694129453309909591938966411178513145591639065372447302400874142156630729008097031390638157059899894450195205067187952852812370573770809390635986428549096465876761754790403636482915426666773187433820459262641175928785856763425423493631943339134166713620467037133826619450992812468523507513340669895652476250984077497804124962507276224578822449126028170786608096992388465889273607239208921362686814234646678896443836088502407917597981814949272229924902022654459050019174974974161825390765923337422464489493797951034420509239113779143338433226639738634922965151801219505890949446398559313983026658780345171465031357788837039837061304463106841468326717804828425296526695106383442025628222359578011358431227622551002088833123623531142369465227175317134422669478612320651867201048622645057155225592668665698360706453470818446578620028698565569986242143156125766473815188611332790060969277590205067394278548060051320561838257818454703316109632292176409471479048896201717313125141194653908092080880833931865099177711548881643969811989508130601326254629572205045797610728691616646989405064671184292650590537333828355674744562168918862858478600858066754734112274503006026088911373190611670708586175438758460482049765645058953483351214501934928968722241822738551542682355772293162675809968919523033087023001284724523241835343697609982996202630568421742334498758557795748258122977532807631132869689773428702257746437228674886155461423239539958566910773921268703202039720861944019340962128076373841921453647711965784552905868439171319961434212932590210766361688730502366514864763280728979314439267342354570214669592337738434152800111590759527616720015089467123070785552471918072816933965860214118110851091856733912365718166220386490431100015887507464672427203275391642619456093677440810163439243991373541667798723530602480930627874228396593664672346977281195325725859985298081715214977762275247641067253195084500356088089737137960489315368275459668871289151147292660340328176595402128640032526026484135273910686583474619778143915222989002491545527787635196534344717926029348073589035450069608061342678245613618335033305791916423467579673587506991918332274542865744122297860175720907725619549299749428902822019150562720454402901871808550238331344422548265208514357734963490577283211333924672178526606181126885244673811982456679581948476864282611537191676076568175380070834726044617140211463268077083569211506393810823624024070866375498324382146631272556492433100093726283491745991279996322165703247548507923416841096713730391080232396971334260549850421295439883074903857682551117935386127081719506113906515318655722783041629431956305325297304394884619703615592195916083700500717270164156351484046383983001024975266228275357800125117371384879547758855404379189204637731116251448390390048140118322786628441543579713063615275128311715464509655876211068219775149005199346489812974415126939124506106681993918567950929381447991017742027661847088822575659762346381819437297721839573337393101121943995590258872837346476900477757053525813530075270533849284331880388615185584483377008433412959926104055559636934249886778884525120381895882639957397435406074408687387773315315482758381901698594197694248009526296590230763587074820196913114139757230477465672889689476030414589622595048312968352514460359996911983904439180369465127660590806466900400426539216735457872687281242419294982137808156471250864756752366538252554459615755465197766816274161431234397704453973286895525180618264889643893572900613785725322039975214351388187998153449339389360205969284603360681476800131334522287112304368749105934994555204105451337413021018215373836051038423696416734016792846833430033927081602318474700784240668426570590115737104605930556897248201246063784374059736735692293490824950235191040129596814497838598212636796792858721330659841798475382729811772194981234062843361763053506183450746415389796729300195978736550365997160873300924408210715924941672391839675995204046795762225338285439060928410667948917665999119742310869975455578845592040097079330383815662557358378976059415229246366788661560983241102419537767226924606431744811286722240615751195200260540896822316603824520523898046104640553961148568943817854253730514419002888807719946968061093104184850603869691932249036628563685458761096577606045669382620475532731667078696601510570140265431130709661383467451491813185277666829451243024933061846510588592481133811520461538501197830119763472032749471861850299034017128775402277730895157547696245195568437925665226778163935848157539060587240606402571151576506910374722907253198203566380495721078036172611029805295906246969212433458556197998752786207449576439698938493052320959465272082322555578494109414073464071947464463476141062743436958229600352365462619370771651509875941605000587958629969846338225011292551358393611697571965541380125010128044575044210092534836440666296675480333242762871337910122774655472711934623381576311616983737643269083963667534101368007295036749642402474203429754988160099514595463311120209047487032810553302500435403560632200676549434917486723995540433366786072416367683623141705245934576238690752984647938961867795548627746373565003049636770460333319665038402988499418860222640510034139430827526897230302147227495155003972370670584622243056518872615150496208067343618465181588632034407144825068194826670227853259120182054654416654909461682491228741137901687136852232557032717156559138383126253218423027413567511212188651653099594021144462909495778826350824080359310074602123712794359945268589045452041835895555656922116557212709220863717758396713460401793972596714974079772991125610571770311246644138542236401591589639998595843383430991639246315131001221252937275207112790056195929853982838621912747428454916559998151796627461646188253330849072970464552490936060953725011750932303218775079120467406144819901130892695828415265171945143324160494547290843069735932149966378070718107789979084826159974736575358309742177489194444981823810740445725116080764172584686934461490274791257117712264345746792487704373801894350163038684700757034049344310749730285980432898834896149458529025723661444969802689699286849269529433201277015379323463511946310346581160761107476515552077245553354087284223436477369800388458988256796501148637192000130193057647908665800756016815678323374141792352648752171329286485264385323886609797366911467955502764910013346420382195364941977666934700714701679402403587199452477242630105468877031334874443568443083926948544374906973198717147036200739385308957671823587825909157411334084380372232068508240710684204690626116146128693198999705592464310238757264219714485596601120030003919210215513873858944676091935579783228937630318857118064702981749913232768415878755133223235165712043046594421931179421492010730918132275284735923915901795925820014027742875650774056096779035805314539050902298682347750087970035427429415398018151906124012291022474805003143827730968014352000623674428364891404875491436747839054514565414959610832859589193580962243625398012373821944773109805598997738301618235179622486745663587200659399078797812375685892743427526283870195918289154703331954014077361249599875529687926817712627903437576214174529128657405283844887684530690763342292882196332236664926217702298836451365442248863822590170087380445021300804166206684137705085584336064101003080479995769310635719084401417326693690208026402089258756222272619814607258638942838868316219292841107451485344856149704412579208037756060152626208924819208500870266904380958743984925470742719926213274228563244851603971763434031238451692871827710435373441020206902268261307933043839737941978504923615379169618589295256252505820540739461341413824437677734215638888248624465814777989728130436415583133907750029934430249333378304475585487977852522390566989221224449152210028620613695119628021580197998544741739106711256736718158136391673634654886018730081497853527627720341681894147774805938098847431058436447678021428085196754081330713734631215451598726604066146330920566096258748497084853079520307621136761534125188965081818615522700502892817334673540458897460458026246662083864172793922094280211790450511825611739998512487265328891637155671931245630973755560226331833399239560326026720070153340196133040498337275040849346448588924995422860962348142057221244339636660354977732390551919810243260651678710065971024200438257139019872502319527859740516517165833036897643905692790779200783086984208212420788744488677324715405910912776080555367962271422805802256461746405341054525588348812660724839284834843567826786699171366640286542242152466597287221355027693190958133873863244892910946150768429160574510593264951835147778821430855336336204684222059825461868638562427311465206882847303729756519599805290191539238431308660470568662570946238762640563012422826399415652554705502013214140060119697086389776710618129337234376039174189506013353688687789675640144046701605356170299631653124973039828468753267145765490299607171695374857654103294510925255303017529589387101467301432213947666494072580603553919604114489439907080441021052387851999734351955278404373852522157390009478834864892140485453632776414249828143527477606383679627941034054130711050574070208336026066511608403393889054280435764400455036384938220800460440788644554901660962228331811394408017674353021079509217918019114542641947966012624309481764982532559496980653183599789436627664899745922037291906604193188375035539023818682880908606770828051544992816691326644383091415679791098871177296548821740725446338472002491613632019529957172053090329601854976063567500724456273599373768773755172699002527840288590267965068823430884077469143575438642828032285354288487278313959880228318556405311666014738823923861930524548625919168432407637681314656242841411611516909685877646305576407586647475140539426864720586788565747369040555930642971025440202956876307286590582775783533836049613814524873936407441163262556763349630913383916040857995549086169268181081267562536770555051356290849917292532011811953260508230638909452964666943450267601453662349514168605763464850757277619087242454823952853349496231122616547609385078341394217717447428433524082846311048727646262239437988447560276102011315853378154626524732506595828406966349098108791109335704530030688433787183862166591782671550671614424799289673771686843451305787549319565330470289313621532317629590183657562522411621179260724811239692945624205834889700331450473799676481553783330767422294478313526020194830253377631563410181859133757532575930833426582195775083912992288778332954158964567998673805798801419491104733462467935086430507810062433832592721202701114938069442876739020575589804310882582863514701937959661323987995205683303819337946297015169433681453947115288447525922324675782041830311533128591083489613749349114595533018819949313446518037412845372756028234929729422234390680265230191549361329689768937875156658690020136488163025080896361856446383268382688123069616316558912529424223479408880778492074207365137080498607459692319702549779957184368395857742722581297792137053350469687667826817069570571942743384685118548041583805935818533675624682470952961897060452310157853856607228189883973475403379177761875163379812714853589069278267665537360155506737326402425321700005939862901089765865196172464341419803567195294031713154994786720652486359403761935584461636568247980404182236122253966953723594905533259527927553196244673675051083953353406719049550424403799372711111648113861550898090973172796107769144568110094073038670362860077092182172591146132959608467143741484004413494732739294953089371641117404891845369919627347513999110021615081666617989555902127901085703200902795886338310298856329745482159900475792239851454513326653880254688191230047144939694702621267529256011127101183548391058663443473553306536809683660097499335058983019368900014701549314016254985988250266684767912470863444749145405229972971682679885632989557764761688539189073416521387201142149858677023057040909708237901996548343508860468390697877380192665702924401304964317561398467885768858427358776492643282535137177947298736631536999127213408510698991602714963669894858751631811337241194277900987732198786652364671100266046182119953487510243222433226912857281645752253741576130164282678187803030495742303519657794101890274678920237113014764978979922197606833597628131305694139400116812524929646136286637809839293488996430349342601872138263058087490934858466970625807338192314061272320527288687336890392399601321563163335524459644771282532782715502655602824331931355487195089115854017046355760041113319621271291308982986053004774053663002907951426519859856800344496197679354290524162919510708139574338364718606540049597240387998083924123849151448070057766347808945504679854053111880118159948059206688399740399712744971520908717948731290751598241580047631732914930331007025590478207850250576834317093005032213892142012505659064424870460421212564190102803773242114957820827601330889297830113081109496274803657376557941319961136980711845026566405869146333551732248139723292544975350764658925200232775934683425075977745095228960132792478587265638070143600353696318072128363562820055571593494795264824069332688048622388444127321563717219326216340289537928349259345583544888008193424728298096401823293904776045359148555934680487057649683072665965288877604431668285219216271134195785993941040343636080463100806563805849477150652698961805433096434961257845411249185307549833603150024784048329799163227880767748988976715849427680053882961562074993853102277879039714247105929139061205282265881097962146676976628583920834521368221965174583959171490569419655724808456945207181807507329521842527256060523806278061593777550907165170932801893911860518044290497787348430440593140146165679469373061390204617581089480428306588498541498908566283471411627130736389146860217283907230925948616274748263050476469101506834767958489569631457803415490635905586631756842945822224130570022332515685703456488866460046133044053851323356084275936125520993694011193877314523091503985348334771499405216440379044081669815195033842195985112931128070498996728715651046405821144666340819729580231421498942469248130773700098480519438602099751032422036866385969803477029213669419440317970652974678496488519070158371136856093517796799526292348560952641128590762595270704000890790866801954731844403197567679574758639292961024389944034066397523056675407274656001337460283782432258352143518823868947041273510571638179336652342209585184369631113837702679954239007499233245704204363558597672509309847435728989192719148253004021606803753821781518929720552487550820166108575066443666838615033033657812358312920489241746686332590020977483132414421795182254064055617781983211866326640755311301859240022596327127989734276750472397580940234437477433326662968229123900379596684003475484281927048208757138792461615191530414597347965397634733056097217745828943884097328627444457883372277194898310704835922164848030125374121719065795994168792427284349972801904547685103784348424681929080353479846451530179548932345138620408181334451765120519148369421368425223613234820660378553811684896624232140667747806388724753376607689600105577717954573627902894987682516932568973815191554890735317173130934620420949254086518101851444395720957597041188036060129958053919241998325491985411758162277584929418361318620387058865395365443359027430695162038200763896065029099893427129604133501190569998801365813014201920989332676225296281734455424185398410693047261903526946123066170371995249939300753871853601759222676747831882634846447495961786579425862504505543383682829099671694324148960623291613594642559901665000975675826547961517885946853817827216421682216440187800543366390040932323959585201263316892692715990722005628536089787524854278190862095492556793851915455254768254824970134359056423688520258116612160953180145811074997971024447065725720920763707964632711898775456002635726116133477050938987944448705196690806278304122065836462688006890365454566522778398301364499665646010654371429938766298472305364363719769266463421933480057336920659964921062418225118363900561609070335691006682949597549565512773101815474753547922468759724538168970319816352554900766632788690442550219467160417609737210554691382545595413853551139606843474704629130295770170716242030194265482585153418506641831713154401012611057993264423126727189325289434134274502910612209200500248579600077805416235360389121564084969519312084592879028590559468543167287313781234767569681869231546919663298789175504739571486060810366380846766534499593307855085182443043746259640303831701937889818991086829346993075589638562588860496039277659340716452927839089134785859418772386886781892771123172285116284305072200181231257790937395109525716485281577390383556219751925107172790583627978586928734236305406223852183002176360214955118892532900818654538191517123242862306139835863616949093789438230021478743407961517274719410663965767065454250936593529554869205740899797407557118288838076417622750157286592961176817954759523567156868185627252278541210143139147802767322653310872438393883020378319164508779496908234529961340215982855953249379438798453713060025880615238809327628520230477332286861973143870060148974312567162224129513996314947902627573485828404286707379377821309922162413537823739343263474862817064516325283922904711874359650291498263847636363309702317379726761765639279127983580371508344653817628418626163696893760782628865272754282071413429001750489791181041777533075660071575194059550784987064463933240053888783909530578321153575392473397787555067357182571879624279696946786470165089886047563541078420524547983034070150975801972935517844159701332313256069499171207667224139992169422429941496972536119512666364285710235241838795070686702366036384759463636549815958004275449610882913451023090492293167200245533200549960971709548505290687573604412102625147516003153603550405974314731715808070625031211293912511058128379142595163774629453150930345127906588955253355433538980017319605670447109468553881271947833740927065932367327167637526382352593098750360511315239586390878492483656922944279638854961477048400979351339292371313856428113489983333157003046869264097047373873329787139398048216704169098778866006065419124852482610023003696603259385934388548997691213920319352369479924092637855701648641017299268593837594379269670178386088877940708060084221114896557183711783855489607732864803268285073442096550606945246394736163933447519766067780022737662753377880096235732214598739741463010529247625307994324326779698963134265886966891072825231433400011810307638316570806457574102366894999768507103680441934358138841961943158989846628211162472626906100886150717331194156506019864152038018420391772904970447139624681580166020262343821759043768996114701682648020458645693909194723244765448230866906765474064335031489592960281936592509758124640895653952869975519511827788599301621529039751143321151447684343298772165753630016311332190831668717976507523498638690682402596784240442116574026965936431170768206716842624368432824395029019703615461659681556944761538396326765025905514640099358874870815093645924356365058728922874349479890351620045386950423514473187385937411551361449054867573659581993002840620471761695234435842855286246097497339591256658364966686933812625075294127379533992743380649765501077294329506477409258158144354419397932383471101687291848531291252561965712358085656554686442814157904627364333015166860886173308351494463341284230129689688711397956569935505008769350696471810401445847831368148733707566745132666785448073943453427306443973880460318560430570334192318443873757455735999952190164034880436737427034159357885038583444367448998976682298363683372088085320514206833506956067474631518883346327894862960790169141521369805650445160145015970169658833769088439741650284640860164977313546827248826604098255516306517790469769996060767739257818198221012327896333915371892342780349123899771001124865119721933519123551064093584425125394845437445106639807849460366535718448388551238472408988392591191603823891604349260458176959321366021627627940825071746392530472368861157583120956583553522228212350248823474605021515915129479227537100301134522095872854706236250081761726989658714161458202763166765984818755257888857854657054207971401398172202523148507490000762912313713250231726550737953579944316171150728878993420793579092225820539094685954500663641236154310407648898494256687923579624968737290009099298614178100685487601415957895422251346060919168348390081552763733507346687102056448319758160418224124329039188217551633236843182607926825318565099688053474245792514295889706164276301092832732588780457415308197085725784135278063087204629142456656458426285076369073392031789329816888803746314903985535813155656924639668286158732665540752146772746092038542129533876721716706496878613993464927316723485403223301277243067493061002259548226810282385619379574581061752807173317510439743640757379238326779594003492614576975744202517280311666374853825177471878584935372482680021187528686506294591658898242232478078075719037562440821711935999834712974517861965827547736773327942275397505394678014622640261192722598210391445152239501592673790871627646424290757679216940920128645448427193153456126963938748425874393957245599381519110333058209494230052212047867838010132078686292421905585111028877732349830064539289814775478398336816831990870257554140187349740316800234336720436703342158907276314040578573434944831851797649909670811684447259032336359803430469874369952661189994760362473120493871937329322631399695334448826905773321055687443812453584003847898422106682907417747097944819937555824557810533098925363823041345344126763216692672531589601240469188793055295589398330203478407227589766986648384471424210986993094830968407550038066410868472969416845334891524807943387304378313888104419364429745190587688374536998524273517437426746536961944333147641086182167206875124715125075792993490315053640369733673212387148023844851552995475706986257006178044437035015914590679425186196211086664721034601058214021685716920095521046068721790027296440806999859365633785149488712783844986362850906568782632910550979535835560826725265005999966083024277918517736633803206224894523899086385693056657862234443318343606505207360375024580802570323229444225638945852733041413048650986501159016507284604271961386968961196670857056672297014991090852049865194185441560092558244226889302424823148704982178084877533329706216034338282550458207786763115942845600838518719753865557715806832605553304962963690229776983445322828217756350893530135759418619021831895421091099028738139566068866312003922031531275923235735607068361178506775901246554422451620702182987340705492431038377331443407844581825498537046049206886844954912122131962380726267739430938420051761908641336237218091650072071584925612573500634586945316689684226733001705680617906000572200894425603474400907026062099447956796983905717439639097293771965292832211267518852947159962519624938698053005872797083741627822828962861066188006102065550127404659397719621596396066054345150494941273891263294630347224046780966685105352452639614162403644384013023862199539045601437701289158155447471679435168015653302019318949015679193147031442725533645483540288834622141539616714999306118749781800730256591150161792511919528310510274916580981841091403148026772938125527685874787729473108779944678687633824181321954934055396112164864505258038450961696226821166634735332652771020219920994122141973689131339670564978066337946531659707339095702241492981455937884265289789678443452278985253755619454160924344005245052617680778492648690027499505876003273530772672307886058505270152300962146230855705475277533797033732814712312759727002734078639281446198772191751256904864748364877145973065042258610228928919698805241295342922314658954103225905606318950697509857986301079130240150859388911372987153910181322582963621025923601412529979689114199201786781293778735556217567944759283690578467086638082898025588655251333093923502702745587677990480493899702078921263948974368347591796411240874113070082789160975934776882599556706223562670556449231391899236868631850813261540026470075522638367266662759205299742697710730399053067984659573321964357057616555708289350944709032125480819247938579806302511725058037527070903244434628589619778497070328904071600175643279852919675564102157820818373748548717316367680274305469960205342249326929660224255567083664603465261330409980793285282271032322532338856581895381811993712837732826008152521993607883823399506750945031734102047872369711269976592013826552218440158663667031327996968342645700681361982868557637728523144732292131598048224546967444561983461226050574258758010096985787863131287514205239892247408770722469473703188076094923735313601847831527762497801246114987174762161705519700995296301118742094024839070510988475277299345505504702126169495589742061315801923159578930858802143345977924245125569808017608051590217494357608166750142566596176343749300868514472893625572637589053750828391435585252512444925522034625250789028243851573616705739167689996872710561616725435600041695197813939631911031257571043635221214015792622228246924363188430759773834932628010318562987813710814579474567133539678904368710742717474429208470601238577329404606335701270846615665971310740666545662427000338832319011607700133739952580641616416455330351371635351328779460111185942493384505140087609136233722607488002063137974475509137768146686813999630489211975418611728272948371423585220225485965324888085090983852533037993118770242254576281464197576750611484164251182363398893837647528148893914881146696155161572525317722183868550695967149384995957550833610606732623790673716058141585770473422473250588203893606167020427854158856796728614404166467144699063549685835696198639925902163711103539085210354402776298091011540336950613425257742744930616501203801126191068629171036043032972294335466926764390254213394717388686625173737289226074710959533112645729563923047116723843194099672381186419101543871431639716224979689951476944509613164259420955429571958204882052167679352973469687665803879435648602694538648638032509817149304233141232083680857069088226610896326807947930481557478448255075041264281128364255992118583151253826128651582051843184563749156155786813267644559626554351080931792085445154794191040819044109137315374621355287779962098644755756341500477875900248763679468255726102711672227139487304093101910828450371556744877922386216524831244447264706584613001531418047844597688786096621243141067950339536388676068185135826701370598353211792259057561255779144522249095252989353808886105162816585648925574360856923679507196183938560099924121116586220124120431676960502282862816996089282080878782001025627322399632152928214852471948664474737841866113225434214785264806267636582287918839999724039551210700774114772019597638934133988378074787746670433706038241144059728575861181873466549693907539744237869226225035538708904789417244386744523748135219195550102795000537482425017229483792043253417790858983995870394795858644066426113692789949831079368467356694274140023439098726661588807551189930986100667676008986790656052278581818609959221242795945042115275572327243931682936171400020575031027468936341205295081224064901418411679212371592992114693587485640912386753869306473323117959094910064468048151842875137355622668124340627507674100277411268580355748352531681117595423645861812238427834191692143930231200491822263707078580362434775173924040710405412352840767627429607744762592915489216155042973395151133702584894296868854865696989780071466210817271395037236281127428526962995129459391801341769854337530287517064253919624345819650272602882105940587066045806835381773422875437115743173297679074754385492140586428088565136875188789304967838628456794090730302414564254479248176883733075241367446328400736286354359208324052421775733801870237219188140363778141720246762635655669862824804075338378491651755960822037016023027265648354417064298954728711405957118810581926209112384950565809362170208289123922998799751535710577699162240703411507835856817883158149949716099254924433725875958417870425455906186773146551159283391748885461532410525040734300144561283696714167040358283637260445988063372129740461851010686875416190819916746734651807566090987576347662480706151053766836075139883055901074454392182561610044090220661175456970209075576360032303253223535400774370808929503043239771006531064589358122401358945883982316034809452860488615638981724809507246760766823015041148890295215568484951259679457854219158060132972255938233337141970073424274914750289661992981272812824111898065741017939865097176576640377797598000212156069528332599448186095547873224441403880682574251328929356450407958713771512046274917916559869898412707489180532333535785656439114643591065164855414890793892884333513789400117274031615568600179918217918817422267255411279451245034515832436797475094627095810512977219940498879292438101563737830691358102670359988580463764437900858256361043981549836395246806347297353110749379556466762233414044117755701949956135112850320215521845279483337933045756845863830852015796864978968574397203544417317201364576184971793439022084435358299744905402435467852071599591159160243055409600477274966058393529313080418352799478446049081131108191494319441159688261519820002721439460916058231990175245301727011944260977054623892811215136035468050728242174501494422434017702621381874728199789741316012750713270238040419677686435428359577581257074824218025809634617118157393525494135965956530553563492971264530319175669553156574204582229308742414304422734235965404473164211276274711682810523505174981437817561611377333623982119302635022748399832778621994824002204552025190331468460764428413555974482278383097002043664057036814805541962326045541225682938068864452736498079747181141223360295156866877668701698162863759932022125791309020702181049941325942891631941457588074592762627408473150212220149550770882418260273617889731139486041393730988488493617910093545038431976306852832912446323820569879468443036826014360947988352633794695241729827585384705830137080022381677691933175998045803072039410835995048946010937532398615061193109393829637816431987900758005343394905318244258902796946255424490024407100995687067923591757883182882665274009286834225858297158736572134093464823737724930200554729544415240922755712643263282905207736752285502034488333125753111818101735014621243440739542729449992250084922423439884390678910882517940061416728119621358882678684481815987544276580605275201026132647783238386327720564649110182704537587044741108363700856772479320801150631511571684843860184061062510794506457468708039677266884565573296923394627539853044621214548203673026149693066475113743782614155999429502719410621325940021549722626471333291273133953432358043721922381357230277089030972384056120626299942496955535101240885565588184715343754359056763425186122791098982595313384259215185971018307602501650468991277724795731460959242707685547793090271152978001323233430010636758427027446827927870435422867791172470763324780372005993726497154335916789309313351334582000372053109549833414246590956715268249656116101300368795211232357794603222150122462493280973151276400964266105816331443888566075526348983921427983880710114245523642430507361084375221179422217963020278329176651511661105066645800079880768546540641206431028124564943002527693949070032146074021425233248439084371094037657935368546706107319884297985778305044851679255544194546664020557418075602559610273404368137881396445109668287280780385516786047672215697491291007682660467733942875486552908329821980906195796732091230994115391539083767998608950665520091820594731411367907385506895958874465384313898294235047216459916052832484916198013105380463017897301742803426190594948382301720168266351402870436982582194366455184150964058491727848514033829147468081047365125253740454590569827465765790670324169260913859016357840554740052598052278247296156444843154926304893219824238717266708798400922883794306339196646183418385355995621562125403853690413825756617614611101312469555773283788877941782413429920298370755061461533678116975141401904217942895583686235971338678796292898440773477119172344374575084403337763991369521782375067174377393478309570572846829826742744819654694770875736497007319350385367228805785074713924772481818012170707783360967445979082347929222754838066306868813800540047915020826453324520163320766779949368935933845542634800389669897923242817060407561508733627354575986690113597571880827330982165599465695157633781817909689743836728346523639185769035326263868366286662488758416742769760519952287190849926546768927857589576436118837994218780694608282357017209485596043696101644972247537748846246567969345483800320375479267616010788538156875603244199638842684685650449122193211272812432652621532886323116515643704724351186006563786579708251147820386325199027640835535497259469740769440490846732033002945460893385649157870721742491553649279241449458802088516720081231062977787957348433153643123201761205854201642225624475469061069574205252329388890872997108202570850814187133088776157054704027602927098720133200224718408342631454704512505737814972446289937847311988594456906387452673084509200495112876080108713811350603772255937486213134450882805791074800950665746253142753354689625485257126118256649282777271558186251811798277582358594977980638603986822369620070630341237647893167062563925130330546848974655466005005142863186585935356116039336500808818747064868183453076500767003638919072942939990960725474315429500804811113361133283050204840141629754429491521807206687670558487535375480311379983076616240318933338246291571289612822965247169391880536853361399723514686855720795807763191286153473053274499177759392335178164141016961497564671288927674187823683102580361343883354596246358163020159531087515643509078499542612784457065212582734939528612409506503789490185004472870882594090559590057537895075284346666243353965203401608821955680419531812342168417620068108467680437692519203187006362355940099328927310250957102277425266583006228604351151264781952846732584540089845685594013255365418525342374310906718482670480639513054483994020124247295265489272855226676205069850450798165025670589603677364708408195933192978278691292068662819553014630380958071806171030127539757230875705432008288261799848394809515319476984423136364271827326695315128357043195810835940738403449317391623416293105727475819006028082243803531866164393909254583422235111571598187272490520059042493484611126012929336510012699596133979453314849842603233089156163240359425477083334196846287795616592391285359682061705224454259384193601207298147053037655890570510257553954949441551981344951098023757124499686996737648085734673666729373100140829448568659497318211419227079593072325296126096275873358401945375825148275756416893971628511573867166681760842671398788534975568752654287658002146589426573954674125348606846638610570585678620618341634161331449395676634393909295619789140451334956184456071500752713060378946923461367882557820435775842130240703955817273599259169375623066808236559520141991157854634699801427751134340565176212395434397049342665790808683168711028742349018197468064144617101030076737718289778010403501591795040466711390447530497580973070578954726335327205580628384994282354947741607007600312719291887055606300541849956403078489016685979225662723482633496334919876815083012340162005178935357000289851219636348600636384863685797126971705249747082323539249265364809797081888166425645896064956081963136213865608549676448030917204744295386138046111241800289088235106089607699410969301263593137210746812495837258905831438507612640622247638887178403195272804689271268864731002815691823143212818627058613849725772943727095587405280548186318621900330631873820223558844472984071386995259124298314557247052973945194918997819027421886257935286090204192677746105784669407133989520501885705626856699354926482881249372923913363499204015412569356753227302737683821451251913723028736585135267956087428670966375675040828226623349334446513059266515971540826586074140038376715384953278840640482157361921257969941932482546565391302302740229643764124324342361501389982630595109369568093355751000346368676335679593459384998008932388618969689329854177622594455512148977537894564429885189652078520619590815285194800430481165710863951021502841745295973965423646673916264414811557074351159215887923862778586014797117183570372931228361674901690102461100453302598910185940211293502056054523742717585183319129315785688408497725890402006512929223574931123384773808182381033523637190173014836427704048937242339504729116163013653878935157808087151310997788859177912074813843807820119022417779304936370967553457485407419681524912386269927705228638438714669357359424914757428946750418493654714579460161753047219225654300929759051720616912553020465353010756559426985733402181786292434676000069125219041254020443086776007471337097744688458544901524311478705192070972998996310596569584392913196197238650204699017987689515034480575011552130251975182859198174752472481390725049368209157390732549179930710748464939428776795753963382299115639840625105039356136210652717547925494345770576791652977170537173016838305372094140234323344966509611021927947892314748592903266426273232903655910046652483997933877941973613709755941229374958259151781599745039930088861109720515820340597949681646669915428965969532628025442991847996563293097873961681635320988206932133060628746518712236793996074582076549822725099044103177598416523590481797714680490627699985309628300034242606313239852097818796131030723918696702067034121378331454256634395959407921642468758706297633060891799764846292446908015842964645464645403096788123240286811133007609740433155605266758210602545528640985463172271999511168904404098545003164618815858282767996843054072619932424628533264183355733819962181481607812415424748554808224460101881685696456590762769999389505679981809505239428051939605973401812939891458221365285015450523734377096860063196249206757233688147923672144164130624786124705487345115781378846445955845077808578972161106144186549131530191602423066564003569356230849264796350969623606080080974527406755267821718218982481517235021123919831952015744788273587037141305185391258242411475178409184720295854556816022696817584416783860707212942215753024340030365396566475377377247822289270944122681178389060155690395408608275394262464691086134875052900428103074229238559326621151843839102645703583564577645230697167391041705149424500025794416853556809114385050120026061449731484831424567989563419153780824509308573038065423643613318522846393557264013816133142646496302857203940899015175916332010207891316715164973836380605962792541063290719077841861751971044131428304838563789574150439901448493371591498306432725288261794231947732941527071993967042989243216933692246342958171862858818110494433265566479524171019348964003003597830074008683446845769454997806019794848638516564457073350471323468256839819494653829927388390133630129922738006727016680614408522121720661026442107597058588815869421062774830289379524372298545746157404158803010601147007779668962127776052753389502695820973497268094143478643404481315700230552896505336390995912955006894366677469147301400684264133883120430999804202947204976472319719255937942249493880375722101436009752104876828112756245002326753099342263174215967727135155774938432723793720484283521896385226008752131441173936196041868389944080396225708745447959008442122297224922634239086615976669588101867955141646342554026212997984748211593927810171282970055002626582471855600809421867707468172733288453684165102230748009151465167487810839372674698502981519041657436474154372301191987947874545509494300316653744369112204265966787255909268368194266095895241561350507406298085340876883497372533081140622286756215524547783438611033272052849145054742127382701887855741444144127235616282865596499925219823177939126804009980506202208045523237196058305738370565008378906855909521097297147280644436857211388804813912391640693175944864013291472416048349014533679884379987103547508460053659797269392161843875669519446622562700448471570209365599890304048002918642202244317759808223290306890178373494639618311851151843820036894464513084718829113991954029263928259983583231747713594437226838079389303066759067356423509971850651109650990651411388340991149565334268735111198189360620726984261047704176779755802062397605787587660744903734213455578215461537586560481049366262836805349375417733708104645330986558351545846243407388923192043944968282593063852145504257459598191775542130882131909791994738831478403680411203128412954370000847285272366872183531740430877086043294263536114639713927531606657966672492891054141687365412059869812227988564893849231649411799596598329373599828412660829725729375578371242290144142809137698539857451912552690597954174996892696466021064499742178792275222524454663389684635427018300026798180549967885964830786402684146115906158670921696118699496368335358513771454323889847561512604045987288747133718268714548465315985135684054807824595610645448645875032512154084834551276169784788629440799982600679703316372976373098622778445426504832359496912569864764105623637735447531963942664398916266392607238216746732542009384201797147543342740070523766751560777001304003121899998978667974438613390185116739776913531983788127930070817657087394656127280550514700213008655577021961319524350321655185999085490261943016865723269248897086793942951861077189760023753775210406422004257621364253599829945309999427150333781282230794642205488882612846618998179028124231175464769144087987268307314625584882580744457779961230848677319490205021921616782487549481103727718388091352264335511921674182161944215740200660457969137663446605892757903928562118206976065571175538371513544629094647829382413920741892773696744128452503163183362979112359803237950796214788303970829773727759226745805515611379422998394255396770984508305372550166166272906868242489137447025169630114282788599486139553902944410521930105622108071471787087122396731614350150058062878871219760566976619550239762751329673382779217629226653263004800923323735595367842825901752789032099307075286841824118815463582391828224259833996036355103286120347186833878573653598153723087427255870326794639406668855204065825060964750623201736498506330952171110757753221785480546969457729865571431563446348496619973653482975038295976486216983924923639094238447724599267040647603298191101011607637939973232540972409379700587759225146031250442895547735216788212541025503550196697940657264387295408190775685489595442637259760294718627753064628382313833905731316095006130729556402609604522450444820326639786685271062295202516944542590636463136895965233149049595173642568775819198436559271321349157147016748295266771336718320046323950626436403852350250574704142786542401082116022518908222301200230885406524199532300612096104180434968296768126432442879884939099257143178758267687677199332896591990655503360215286974736494643208457748799942158023550547500634087417200672763287641980929230887977304158486436205014242076608742989670492992549541753019998462799442048503429281220800808529631335838951458224546874654037196584748699383487037339716238938064235960479886706373122117627866935215053180522608873076296807233149441989921182031753659176736104995341360679343110539483851229024954067317700359889263806283982316262057475521401354255710331195128536170725648464919554070822273103717829442109465462500378994842239879048914120369863997264846354869302090259148740879399492876515590554224675036532457634907048249799621032296994350184954524551829639633604703291519643053705801863312383976283717723135701452057726702920871334823221836148983746410230673593675750509648806949557740730756063581695649748504091872063339642000781920570752691009907373948491276890001473564161487018272082093243097801541004091924152663630569773931573910905219169442833992180981098954350351095267447582900097327363802622110470926522106420813726119442007132623420162103786818697187620079628384021066742525085598073220330657779028399273375519820560988276302283420836355041338857654043929547040626713735999949335422145172660504883748537297217415488018147359698419308536443283870297075351260387199395366941922518858722640933392313603555739803351607129527678772715580735133136615321375883327247106612671747706300900764967585423417451717378145288804552469059532520132748540980121481595003023288372125025612897300836193492133395025703061735476045401655797705335692449174650592078441080983789496177012142833760702776777434824840231008081219354808383052478556017034272311637009954941819528060431434577778389756324948316581232565457072368523760766075338910299938831436229037191512602620391464784207867823718253579348539171295566177580371486792913296852430412263304693518539149705920618464199322515975007399814509761519426933523772178281459847402412925879972834244476497343209986602496165790844633238286803527520462749579404840651283427375993962888296145424070705961131515696157048833583106826680092695254866934015287475751532076224679702428478227876251095546908834553692806960798177474077081962352043328906682038787803222129548726243128320705656270115652235727427101728919304760631192199150134354800000946622136752142045341521025389022110761162864350617019632433000297763358996903152124805783975625801333352792280815525876328092087270020940211266206389898033284762121799011983584422256476150607792449076730685549596624644905428615650807761098010434291598680301298999751026476077670497645512737305558734504554191241421237013011193001219002788616040508130466885685562593267990656526771903590100085330648657209217457264134174320874881659775806442876166928571961878221132200471517747345394274092107962675748659895082488955864089304269856187275561616869544646099442238525974998590615899971500785371251845132649070235540385404005555510642698571597470789742462146579686949895260752490427969357589786523761656256849421451120792672556320838334170270079672721974242867724772908931136381171445721907460916359367831544064194628739901092543279218283660047827391494591080354963559042707560279181460681118429298125206463323037966816603708215865514900268663098099260966418308172696591616489315742935298166678658946458372145898441485852655957381302108593271333532616390617733693217235692775557617691657018647215478951773791536815246203604053338640382538317850280942762984585910473399598920012107438085734225282786203994409455851728437390780988210341836339937407952438085201716108377238330487668200702954916503241510911423462105353928599651291449353599518979255770013087330438950590377674845575887547481780993620438748816243172711575462877660061696153163544829562284527532131058891920079018949596872268633762888010687674458243021566718834868093745472788372490979589959025229544935376476867608955483363239431465859686643343698432870415185717268736184907925837169621606088127107495904893222056225284197944803560491999399932006130490874941732232923780022754339242124184793410542620359486539226332244921033921614777440545199332718008673211420542890620854987444970589024603101975539114059996849254181770887419880612539934298051771047973327705479669452142964964054550833703572544049483594122127937288010697588430442395316371716590669976713005078164562529681049283576664341559266167323743819254014955973680459608529425239813500159302087427189313996100069197707855639571156740045367755015591123195730805495186635192766062051465306356948890857708681725621955107962965653678517428753365110456152114448518427701450631417618114248916163688440633205926047392627149209273767920916958903501850339819506274575131074393196313222091335847943810344864378380336457047396608882826500020174856755773179280845185602531191894547551167523142512220861604869481632024127451613088036957767214058371470206025364340014707253044276922560147084791256692064387007822200575430049963731232360864356144770975830330542646607557142485533903752562815320341645113424544031194358865327117855927202551877749330972190141948810250757825183124269125829681853224746314065273700545148096357428400981900625160810925067791650766623057254078489675897119998720400620136223246720135802364497981740719011962174807221648325688258673273507761621875601134139379372562295127678292505516506380267638354769106033994290794970004041600824975844886892630752981291490220176877287957598076608134199398789889845808624623076629589167939445517070949339731310327009975722698589124541243486286696630522245420345617714056665896112467760561579533365514198895351119957512155141037156195525536947462435139696886214208359827347600072195431492333830715461614926699995269736125064497201671003524536164938108796385269319244853077428113799132359869367908014474294838439250130476724135460317320010308300059564261625047049026842648418177750953136577383674097288994777357929406400836130675774639666530880609554707141989192372847947450019042273504248586687246833713139937242532133227873041649897244981732017316616261213808720305347527986757340772167372188615227753011248586517963995667213903539056589190188950102309823491213267294324374816395523322785558372776137368054506196095563911909021265874769516934206366394967519842644762205503557629427807836336203851476782826846765410795927170574172456494715709639415383575630438997736965113090389353955802428508000758772968112656610651612338880249328084375559639454453951475242608697572597826794158215912326069292651499319420809270476858030253386744055961440811263446962879271733455267028384564530067104995512522881366430657872274272611945802864468332890622822967282763770413187421080674799470249088387134503354105296927522260687207304215166844794067826765790373922652117232724078804136465080979835307326116646982219143134995928316571426706015993833444918860633511720763968613873114984044484247146200224367887015892368845098523086759911382272099418771470197138857086459709365814836859376870903198402548663929942146663535890927675066807355624565496703024289066358388622068185145800695436538506542248506838126301887899050142139776729300834427537287236989412434731283946377099882951819135252027357400375668651110933953203260684687104544527874241009724095539755910613215591679461418623493039869452764642614793254671557229049020869228201486161203847627634653766871252673939055310220654876036158368869860828306498749467748355801034336099450676549714912445615143313604124316246569627250259511340561936359053615789786063538713875519436845550075776876238921788254915497126375627445272889021354083727685108992406476591412948175914581467897879791875792344756525611511623200174223920317589624900990435471898209600883918722055969667661084634675191115219170658813621537134486879115941926422863730257254338483535223115919474505913129346174235897286494495970598119699532963663998080142613195120238190622024222306252304115939376413728845517176585218374770183349549376831756003966168814049456955805562024042907841001560290469667011446961736048527801722099340672710865094386206925993833612435362121506103802825668327543210527973796100514848648593789596950780939816748465664712010285030420702364350597765007240142811183829151583781115100949996471744369117432898180280746163208535488294050228154250429578336245279768632879137744887928044459511684980763126796075128346064030039880578163169314807647479879471781842427932679926598361771567917694176058112981367665109534929569722068315869953111197327050302700932680109661658612224663795602539511119102959272144831995929895548658178821827080836469675690284005844472002475323896710784611185777823341898396507677652161085313879305557545823445484002699595956627599909012213222379653829522653895085605468721987360074519411936435652554088478023300917664957584549838399579954850287809019668224036978853518318921690397469280953853836041750826115247906609261754523362742912381316010628511698169176087903204676856128328471367625239065819049894280209559589336391487560060799235773828238056127383221876628192605267636716303592595470790980486260859744148824723544662041289553048685811050735980731270741342638331172716703434850192091411383974358175743511409488797476718711290422326791497287564169902818854664577902314372215487025846841022879330538649208292540116619685534492805917704414058380250734161580562397488553134206635736420660026602965089395178016299328852532585205221499672839022517318777939130501103057561747570930291191398094906987807964459379949699677160226295830519917770589327236152089461572887777123547477908509568939770634151055565556802132595559210303478522769842988436795384421266800262424226285238139802861560852855212025448547341890926445147495340832236833735534983348169808082340016971429215878947436684693824009693817391749238041988354743719913980533399692849391287179965464660381518063910731023698207261570416150091137572946023716645829364670727340562138397119890516638839812051335499923375769505510708162261431902304788301958392320371866033649374948001420315204773402951670766225856830024201512299561363415508031276563532359446767509983060240948247067495390599295790816996402677510424944958279137538242334956230677515294859979624669753503906690376064398655581809796606881383395814533749296026980453206177804530475368950334338025649458176935635598320722033649556733072492294666869606037700030091139166920068194893743986525909310434102403741701896822910075796920481088114772829920740400733834486061973600730905852344685983966288747006984067242404831462787306244623527294185366233110264920190549396273501658950720958178829205252598193414538942855929662596268976714258067859515549956392244382612882316994882784454961722326894846294383922011540513171364017080082020849299074431462251451088107189208723890201156801843401371033746712326489987577482676010329485811240007512686680192261272574170360438179209245161949185034086960012444022081459925048974772312545635050409702911377960668752834103259524619609228998035816046439634180756171597865666497476379348956818380396926177798602722295864741460001185124258254557069984043829818560541482818224249452684187239894155590650964005801419130686950619945556095632833046208146080610769780007931471131683279878013760581165187681857013538875621608158186862703815641925370324911411788849091109292338198459348759725343776050687898163502454282229276794903053416081694434793841731061175257732332059314154700941979427136227647915570967356588185500957535367450426199599337631795616152283840741078856851918130014733125773377155372629608591368202702942111773303540959106940466315554543577023346173412074898035638124508472936444388649143109990989228615756766979302471122665568222135677715548610693804011019982265451995853428152980772930020190161549082812251441601914809345231875128753179834561884768036375631479200363247054877556561684160893798473287159410385011858507713628415251653703536136060793971335698726673798779181583680276496430763459410229066272163557893304470567911634403144943967909673832438167902037713310327382921996161147899757624461949015545368684673539507640327884713386525905005192017614517569322332062452928210901095635498384323759900245816404308165650872175600990155204330217464569327228849778314285770871494046077418296443646429000608725074815062047025771444462462425776603223449826663351766899904812802781743986982751922560040019058714216168430971816409795326397126221481976345096762857343453816910123054662189459017966376208582660473831774432761251304254356803894993161765915592607325064212839393920750374755747024735853851987844061104411099723621127749392541243574468734244744347786141873114466543671409346952048190649640865690894875944051875200242055166823162621741643577906937131209123212766705493355689826749143230411923539687916566084754385466446809843302508734022429126938797738123989067245208121748435532571043356451029651890591323695619006681686631212446155005795617908829244263218828286504854415109099980595114332289075897202121802954519080030464192490166748530233753797995786726058903492609413492277107590755920034177354024839347065714078767787726625706627032000265867379806914320994098178688271993933122156478436389359710417612136121310215400478431099336871650192768986076429125146355452700262242332338020461476517126932471048138536267876470708833498062614304816690291646052482113756144914548653229017649869256724558675431032539570844734055500067631880742745028680157160137295665566491181247870502050812310749231528097921319520082514286223520352221395213195729898394589490015837437020310974335135014877609622050017271962436329768873900053968717301562253707942238570346784880962824360336647747276789006615808645946678735173134444141455187395855703675133258993762791422040097472867841870472122006638009874754418879860648423604185220131142844674737186333319885224097716276061477784189277894959572949850977344175752756642879569165950134030038563878052408366989554693151114282121635702219011451598992061792349024804687214123171834677487193802028593257109163717814048902727788520270245217268761724491747280245166925843646211591353395863036180126957567965258563853229720778453766887977851030956322975521154814617836246812096599698351676531805725014570327399410852912100464985510834051212785640464279534319171437576286774181764331977053337549685081076483811608973788508797505743679804197594132561196491797817807457696297611683533615308569101394159984763246470560135384067540302329573201080128143149775874473888574658417865172876712948590753306340858518216433052453894041845319841946272186462047863215495547572305689906451889579698739108246650766798303794192957674025384992241428727783191111557253311442970844043645082696835640071066049244474640621124922545875068524156309434875122429158878750771533229793237674896865258688297621937387171128603815639838008291325193182539326083433696250917954512332088498532246165020764587333646903339297355907412759110663856733288449125363262733846899956814155756377209503421055223363492610603342052178637702776858478860490168497875793069448564021004432608160780671973855353148958828511276481876126428152211224024576461215187085511331882243388411227474721662084560447912534176899351748468296437670832796306645191060305872670086823423927869475899052777700754653603464069771698277597103534012155432011531493170780392144096288680361446348146591821646872538252004343850654217468304244550462942770847410926658483273607210603780909566503047310034398285964290567190288865203228267636620886994689722688064941138858928952418604807092106872617705282682919867177525569567044582388995917866431383859802892881961564753935628088524206487231416077423925862797131382892304073793353865311695280448971950238377755855442831181471573783595591706598464199175398708688950300922152919938969554361242934734679597630783336182621627890855835189565378857107952324749391586986190837551672742048599686702312962028313683883686231192723217995523586179986085902551888440071440951462386372101513165867072726455481777351409450191557149122795650629739173398917394556927733405229822088023544052230464386138362948352350889925722987352349851112851576421819532650910071650101483802774300202725380681311194287262098530789242411601608708211373966698422767665133633492617828274138931090227282155006487601832735493384331038944187129274260141325060637079112902141915972221392636596306224084223244894044377194258524796530877431314003057366261250544472946687907119726034902853058041281254927334123957339940829834372476042899314854326739847281345334913668561156829681905046981233651970619930630200459638999431837926744344442925721857435757281890186263332073173554780087291476484779220596626197353193931313221741909624526368002294388952707875999286742130533596407507204530454507831660799780722883397348377374716088590613056711808566008142127560063825134781008062660437393922269099242808823826598474691537300092760818307673450759783318273962072094422771152840155239935032363440451519444669512894127153749026143707698700646375603319043860062310675551594337964758869090713057985094842305879891706429366917942273725417756593448058838059432491806663465925222326361158994942586236481477262380214603170063290500457604865411950298207654079858354661509455553762680262032148182625655263856366680898749639758705347489824287061604289128551911627027216200989258224693389595642252895546417602436851325932411717615380231199606901944061104248468619584246858002489879832513577453636305649874639178815193416503606295536484177439205181254201477850432269258741887382399737358177175103726949970943737394287107217801737616106419230976890534521328132793538734936336413794006032010859053684080503802329481992289192220664086009991585292761295533713781819947320043698716050739554914781812196470365789634789252224406824533268362496383524559856122389230084520879480111801843934322444559616071768288803577641772215855851191339078308813844800380694529758861997139093548215176332894876381625274696639546354995220740560369761713585812685742658667473872305517803244891419507815146979307963257032762355986125483565439467292076727504709298814187471831254020721048650362138300349447369549596947006975827879507845794135363371377503026491379630700751178264153110922063661090628720664703986517445251900262964728217479311415865595546158082482900881530632402814160135948498082456879506688570103085639471630528527157288658183141412430925756622447845274779000155939092927920767856745001998663658874425404074501912003864900716833731981055963870359002255729946250118954751974119395701098148871450180508977362807979623738654654897319964985081106275382824258950774501678842022985081893973709450359637996670672274786047290769533017696991819822658255257022520918676800376474356462628174608819866764326608487377134906048637879516737376865736167904008438056085959779177177608552692566219182683170795809290554014288424062359507194811088666543275328783108164268278430014721760231213217984693779521016206091321499967017163720511936884291716049658404786743155906002107937812549472054824248356338637920119892249601979334041262174665139984919383044296234261897603652153620375396049996277598932284912235331555121213156566921410553870266675332671219254486789471748342875068132950493641439781800215224479640098928595922170312789799615292348653333909480756606102490514848619253630396675777122987550282766431653775428246276259329979647721347975551562151350950849492054867918602535065483278872673653186679189887568580287948819368254728308379996503927401788090980693480874332570157375277669736685072709226618679574658337730572952529331593474816175231223932152171142264656732332751002756121238787121193035218784113404461032854030449417615491695348644521774389779686584674723032301556328197526107205593688704656189716478759643941252338975823871231291074083198633238077746364486934274227703704337035548271054914663720122293989272664397005734136476397309061225284303492324113777945088459369893912757269409743665196216172943047056307348044882538697797045938647637898173505190239284308491508649801173351280831817957927142855202803636122338804510809021247348184610594936431216137977878599848673536654478877952622454045727434775266061495229439243336420080011774855788048648120797843420144784599993678910953456338584228533065506738319036314487958153706974066303751405714712080313086100569054472942821765369266984694118839623522979921071839253788601531820734716797640987207204977411692128425947166779575609448693363301996558857562100481712580418474233978225881987728567754066880242544471836605973261885272769789552952235412808939020066212911706485040105638457244944839700360452548247441844241261820655549672723734080409769869395810347161376204215947455886908060991443765652107033912614167840891700617653760351872154185119116359492790426498412390084101846900380121347925760163321256498865887328673080271542531388180270332966817975653084348342795449136747341658334901457116372361676867209673396375394725473774862316191470876618655669119446759255855618703101824059042872122385865857412280644090456086917988720344281323992550624577741421006082376227181936056347706283855521921709900744910886447824647302909477106885211292500163324084921369580703664518862069671918315801409071531900057653742065132423777200552096519981438094841063402967017260785180281166064237023736959817553877433229647199649426465235665319509839872910512787132534562840425035781068460709764802396447930608435406818702340115705043203739383326372448274643290059558691034117205984502730713283762873989207258207815514151776876927344158999489590522763473766651866272546689640818547166507680392751121102945454306998067893362113156283389937301281338577925234395565487566832291537685422072400201460445314351515386675424647429549497748635532728401377928445418476082309637840968284030849044364152367148068534173453854365953537521179076026703665597072907549280232717795193666091497194813799815541468168513728143030053742443292587594224957054268707029545718186803677101702195472342092533744031473668077742212204706552884882640151979470022617461621122691103649318209406776329633989822305002378183786754757918066089563726803137168337663464593924712599901710969224770213234475894928162446314178089410122798775856241293971692642118756551622815403854984114714329049001731216433010825266629781378960974165972016645813211687422235749845188969153653553465437621242509036224413996423196739999240750818988561116749373602464729871407525863765528842725999427490068727680079835004231736701672433884178337869238421563029329388789388451268411977210154820167194852085296928731021833370340474521545315854065498466125358429380350440936429900325797541475131732290431408671829845944331220032593233726248363489621870265925291268501465652142515976502234026782232653747031462459419572139612506340662637367858112705513607850172165119122723909422877651684290751575661439698441928199622053977268958374841045684048889295771192964960556279007985759466300395939158376591605702973033699702162728588653975457456103903468387637255186863254143663136173640945066717896056518314435047612182350269849471352228341052193540235417115387799672141491081266562153409112506501998076384164980746685702621385442016499342220892548349432922708392952962881209820970699389779613528863054932581593314102380344572630033827613574657021670441342078997677155429871672632347663675811244156301600429174602165385331590980376856775481961748425014690594479660706508024870401509546203449422695273909504124402654663343027905444211136961045930385747447128196622982397618237381209277756636791972542922680005744894921092904987484931280356121985838981626357108919295906142553979143735816178109140419408013206889904198133137255120165894606687359806948513873795810413561015578659837537235240406397539202405375925052203837586281682426365765326967436209820634951801953332995776079002315593129749796599813350885504573095055833511058530930071047962984237412701560060490504517279822083687431162327667551027914501016766650480179205974840906298247057437065993581401749137238189767940665760385092116985867737273181374090849685570639333178444857269063314164387469301311520964490097901624764305782989183626001295663072167048804051925289957812724402439321454304243865806664841185848889168608252047410100207342756574453084707077894881594470860928066536150078891068925279956553382071791473723773577787828474370554562579296190770077353275379720677651335965953751907587712586736365588488697606804741947250993132716171936011277526974947939623870678889568226514211286211590108872002800251614555150074543919875793381447797892553469241489444831197028959496203167168047461231362326113507321120367494255481334365170257939317778453960712291756814387455345137958131386733322144057547382117472954815705553754204453693802137794249734012319047430880233071646969285389905067915499977523283095998348657284057605619408427430974449690332831834212847981149365282682602271111067250138986552648462870388866165212706058574417337558707540172019548643878078943887791761720787076747253565289513478819776322376161033771753674212081331555070072944465366473165623213869402343040646509597645744673154487885980685179476916413166893816358164563824034701363746247617798700236927669116000146312276420840947281345361354864218249103190195110896429134979402821543552920565923755439578662776494796193672504429510044504298487639733234082009709070210552284496451823037961821187668447127029323949698684554737832752627283830993911315686255014616777475491414636833812916977875519515228279312251944283994094316563433833539834801093651230685452892520404111666888442808743344233981342133783723698683616356619375867797670803217941803222062487111528648565457688485552625119140329836936946189673160075651524981442321434389572156781006318911021195925574445927330682742799184556384370350686337481350109772516778032704246088235508829661917200994917773490492016486863965547350001654202817627888948951301797179251697384452607862652063116929984430417928775790277147939506150905566209517716981443593729433632077731951581112212363280911982072426472990993027865318658355488736190771216595293062931690365361542766469595309454719427661204074981416371172122186896012263793992006417629016879162300101509504689220329331964792945638120557570753144633751642172732800118132626727818030892947838660324030647099768338323181560328403823792022190678440765549743422270625055174754926305329165870107258433673266885202168827394880822211920694895968597798831548833695518377834590833547516618819956066366118660737840348088045188284903866451204753352848395687045766279723896736975351581907716253158840333531401758001959566793615110816441964945880013242950282328001228384395944326118197056056927389785111057476947058652351734497996224945830078504083091160971798928083818877090009034609948803896584981200741959166696763631941569384853090751397971446076802498603555191889018210893723331107151338578186733883962781308096662488808638183751064791156532172615303255621940778978662806116092681204389054365662883968999882267785309645462437683690805492539243732826893584105761057872121349140222673280471172120546231035751838299102991517215295603432848398531444516033850283969496845633179842364629191981234942287576949100508199848292761573915775255199867461360023691427256140125543722768117490162094686136141636725158919470047145075878247082287983685670209852308231056787391208685137895312521409840430098082991591625128038927104676709964696258967949627252901304057303855750719156195326444485639145282128325626590204629957139863707520712275133514016781651758048086350153309200736398296493834932489457867278726420696981221865282304648744211913674477998836256207004771461300253741104570958729949395651644490046017520320269215075967974882566212616058416842462658510877956292255528230921371850486616569830802580607181482218440856202438864797310651693700479383890856306267604702044545089105263594197702957466767081679413721502566569536739963096466952640843314537940190735557688473156358880586001418856623562575403501481753007319300510323637698810100670253530857590400397016516242212629920465721271095822409602923704783685571867401768007005701285042575271803219641419140700450537274156603848865816896631682404800159543585928308314724927560631404978686689240854343515930905397213342505164892486146749431834417346047471729982304222895641542587923987226740850791091811877858994737642474960156833177134459378455501658512959984572542208657711359619067403662498488865283162722881560060611079465581461005922510524744269590543367171876266771434895690278609420222848146466940031279944846329090432597040040581825255553685416043619008926032367275315734348577514457976568712328894667249352388723119182503218007162370641857466563936747778739737088475180683356792001100523998711316189096999281883093325545327862639139546105836683311636649982650596337559407040266928757377091946453405641128250794128880974471810900476140300798367239400402116346974787588384532492895252357396648906957324713093480132062135561254073655288462748324088568160839454011537875143214155546133817696203609146206291352297003997893214079293255002613363342559865977242553758371518916307942105516693967051416527775450308601893614105047510968619089217210488516116647049070602630112138996719762400936264092535518689592570709682397971034747388937708277332259693464057338538217390082590038378058913493010510722785207965077649579547201153368234844597425157809397870671879022457860554043603856527564523802162340816285262776378887653144841266961093108234278234696924151020118802979195038805592752891675298311175303510016431793524829408108344946472981600062272546930785891489793231561200497014890436992151353168303908139355891461220056650972802507006200269505105734819136728547262309359257573048660109085625828149023999886130540045169301503277506275469656647160973728688162300227494159644326902039989176392446338332245059867656379103892520431906893048794840781735137442625787842516005867054558332895654560062302110585657064562959169314697992597572370990122852354694188800693242451079875688028001594484017607585448307583125775552715478196563742883880829265341695315417005388869792467444948859039567914497955704173632812972033837166278192637611986555295002895868921696516692708467332409104485441837347992886764310279299584012438837661440388828360238041079401486420200856384806791633879140946229067190992245070077180933866400608049889066159818974738770847964002632961390721386747587687661434017740736534802962253846547456869139644606196116282834376276859186038256438675051174592476454510400698165787227697339569504034395768380870565565585438714026042963024613731056172412491334307209163168165037481393447834115775451028100802317520207684478643265321968518886529289231882621590509796905966934172249437263422941942333506977242395197620139449151684620953719857709000309898082043785976598475393794295150282377973926098664159028556226666656879839569596820584129752079598309761454404064823229809404966157874079131516888325204791684557592582359257967991638413250393478722639170851732596982837225240650416481801373463108552700756845653754168939534146642321810238406552799226503606073323158398627881856151971888530060893308186711294761505238760977171343660740160159334420164501739675799771052322246997991249883341584852381003345801509035451965499127347285331538995099738534693250594805314333899526272162632354223072252729451246670336848316781073501836656337155296987444630053903182821625578365209611223129333264286273421772854693063696580103633217263682867332665512858752468938999873031033467477688584361276925257167235238686505254819454523266063730305053711344153990269543316153821003707564615138528303871255559205217172421746244275034323720793411167898726642938835460351815295221645242601381501376757712401987883762667266986051389071468871467855702817692037729061045095256709279171532161508549170696254436252185138696910555966100271945793689858545193058377988368566457792180838394932654893296027573229228684294907539910187738119853991647636217555385632344690115934199145648051710937528805882337482524962920615094878438889633879428655037992249907783303066899807050775097471374392993778427074673910336694878198287262254906979439584827638738129501476463356730113473011372615189314358933637808212579630029928266225879955386163298326149385422337563867446485024476200286104864771649359823051558662835036210409380010685586788425680617892544122069069170358071943627826226006050006703254476308373390890947813482664139215296207742622763266355265642458238973307954600123018497568313670689390660881193739543919492752058397544360564735108151095548432960605708057169103330784818988240134540280794661171709022336550771946227799371882011475558359707411859603942321568055815306615128550128336004398866852905912621297325119924300083845163743425003552538193028691335020251380303651575716453958480320636038854750369305894305576186483658027687830932027720373160634404012967844826481129057121488049871058904324029163824901578216070209437026257812511004148542123513144310451180133880689140021468971741490076239689978075174324671107316899094721369512119411792185609795373865998157109203680989927878266652459629122408646412207444992496332130455182650624957686160992998468586450194710166481856854929103484351067468950934351038954361349140621304204444122664944966699516452615463903629487543133671404187462666398048370250359499868671555784829850417214851797619054686546987273560950781949673867947963915099281299719950670375907798261811015714592711162041495521820177597472360603040449712293320273329280642201623617561291132682762077031176061022500362251805784723406618253653273341306723102865761557747413794886383911152912472981753096051214136266274709591421536002423848150572601569785971896429951691150867337128960044836953573403682450638888062094963389774756494678147004443000295858439415810596643898632650328584050011372363975539437076636878824065365783538220285014268204162028700810467574787076309263059556857801999721958279493547929735193478068462641402849315580472524060510857982563463993423100177894747589693879435028298342681840643693315840591314254600440271299085942436350494489258766106594442630666393675410147741960878869556547090596126089738394955003462595804509407735327333708897677161647282379072723402971532585392552801137989661424633480156706711250441919162598682477953597032701777894557370445211014789693418994214524074907943946109819882321422631926699567656952541302484072364211326775024134052489088021567514922622982371203767922371782652349233744565619332269237595523105753688222910872995100054122996462588924870419241012167616853166957528431363174603290829399668349050377861155617860436146151626575884304325546911761776928861296985094795828797390008456806628537876693612315350923097645923295571146394796974940897228083530087292502223987801501515014800314936769398071908687263242359025158452171494284277041132637769344752755148051554306904791783978899175582349320797130602829793898781381209744837928021321375466695777164261656488968108068389929260891828232659900974291738633439312340126196357028953901343200907048450479606030949384145363285369224176190631240102405348688854379251431101305514823463699325934842163250573552127656747770247164497907047822528230225426383455739247552226946753219068385580958615235646019994232846431210856647965444181547635463746571331468884119989374726126094439425348604765775235919232944333349970227439110397901154093691299104298445051265925688169833593917017518081023121037184998604585610020367424952492202145164001648462712943156806419563055257384300520353910942783899729497238093952487849209741508832859029628341023361801809621890937135024134420140132917343939760484518952009513258062404509785595403338352881575848168422050112267837912430677089488802344222477922625521932814826684137358822270638576499980330886291618726354105697902769538619875628120738866511408205109310830188325592349904009140547173116717715003716518105479870037368261572681114075761594640494905036932258690914892056836208374681130356352615343589712855013566885583297148939934334074882199121092733762053049254765832678008231464217429998317569284632485089582219732084627436759028690637781416865707700902667466283560354299776253794775848313089767195559889273765783157126765681563365458958789950562152264854147339133997819890332002640698337356629090577426735594259626510789396052772423388852459063333512272760131015086683533507110273928925148322378322791488152029412331112298489968293838394051026480322144699489678196130088712535261053786703628810934874839046866870856254308109215298723073330366672883406660337291099930562072569813743273439003496907780372820673141137424664994296795024355079740268141392130672472962088320309520360130823208931272044469065311981467226660560889676091460961496787592640281864664606932340367065222477892841140489397407722672789155501195792378639673520500432626838144659131487691572562758637249424144621325447764414602662730739358833370187870586092547539340577651123334619049777305913981201939447600369977099213040831946124441372534549299269665792212549702385736258505277360245702824817962062346832561232523946285706219887118789515578026114253735583297748225352242347593035208564619091624310744447620191208126278266074933664798069775864339999067731911043574048669417891876766654233494648867281612009457402123457828661564109210036353502694023332027359442882095249961734006295801935006554762726234939755298304717325796471808753560552531044217768727409772881054861260474593672509032551333677133459560806233994596542327880593078704538840286833285996656154458002805682219708466318904939276107991105662505095063810644002862707641254289312800971569281421220571720166185218336755531974492734833485892414426864083331000762769026019334460465010695201149215061802300208561003356940448385119281903390112834423186605943581448102703072086570806429737886411464565037460463714630044688875315256906007188610589463723270337631121499207347081259151295728736399460945128462200966802446309372881197465706176232061783994857136951958148758395344596354907499223358162862127982278692233832688610865731308059425991131855196713465591223615670826846727951827003053369109544042692798565500388153367773049851433784410973785499986767718309742585022049542622778405098520815641420193319231700316534651899575575128582619862549778519678058878877612327843093927566236407128572102414879736547485652257610531606804451020427738795946076855822834339001323302505966590379630285443426505861931874340093372245333437077223665053888700268915734270020907342084358472605063197186727507427356175834326771453132007897665973467756062441684808078819084474104186115115030762079590333502966903212775524331887308653950209800920731425514525039197623551482588848960926142430373424259952459738873874555968745060742328258993521469256234318562072722362444391731611901074933123042682463780630432911209941966915535823164355055402793974544508499757947990711593698540186452179283305351582242072384032762099677211653269321493092457906399470476184153617253925725323229176930496228916419442925475791705771364184031140145006731400987500675998229130779635015322702386551574609928508617239228309835890214173568655829870394903965553607328567870144050204343662451404920714050140366217505623837295333054492480962105573551130621550356484871086737857338615151161997577515576430822872202796725521019707479600131425709353846313256480250474515780024960806387114828745595929575695204380446479481316521209662910244770503680922841706452432077448763472811202034927683780996390499250460049451806715695444628020267411073985501707453873367048706690916342284910398887313572660383637073095061140847740996718081883071284709825199719498889354001908515372996662574576490790252991841068427494728899655149120836353112771800773693631919175285691849435548977342943225239825442275046180459757061825134937645387379898849835282339747762856537524366385419860758508300388550514390118852172406422810551498629337014560679155631539126598362351675105151963345173630279711505078044448769845379953511337677112975283138178656296259099816506724608967043680757613875945261278552056704781230925634776501771222659521483019641353072821921850431200689775006535609125264683105758194167758179082130031963310784102778047341624568492176557151174541309247329350588487496805411897408112457442903688221269351042099690787703301075019355782113021683633583898204289342163319973630115442448506805589963471390318540710292394090067590845650341936853616469051157447712366830262958892088192752358719352075881316368060084916457832636509984367467317902757057757432519689288764615742887661149898011072484113081472678567085784034193029306306199751230640616070287233176142859519715692476333175906638446907926060262826491720761545882615718399730080236213144555447474955258121357329407947507767726818691469431584416792910276188938651748280132442726074979271245668815362456958543806963025711799622010605872584795852411999759361776023376236444093091941899772298757030756302106730014239148694816448293600591633843985266289351321323195935725555380216395043325785384545460264709335302091685067811504012961940378705159102769296204007278281195281830873499248130710073237768185816938032807167647991276109266269634878704747380444216340667997407501898466438495405202112729498490984516890063788106079824058526714560572811258357620968641101383124544051998748334414165839603329280554153725202287557020507086336346421631046763113100924752933056658702597252375151880772572292553115378982838376557738228230654869277952993854146268970162494491693641414124833974401496243194413751260502351216222774408992075482224590246806489697050155416302078086384647618019829244023639019013511453809113611578308429245470071161857306293459886499021170087292885479002212642282854661005973678674445820789547753125125537558599706132377331803019492301575927406746254243085626113621993364044795680504767127409007525343065333043912576257103757366670460591874787153574359953278121803573587145199738598937091250038377065244983213594413017870252401053118064534221391962267597810934907790228683974755152160216973312720517364566935533899177575625385285210564483955269857778714449457118909546890979212472996742100477684508326008177855980344370372790231304745263312712136730381951584670137093778960913447422584711978093672951001251738091137618691059265891076633784733547432218851127691214789670313585400554934585767061993403779790115663440648334593129822071974484171477544026296313398345505235343356146456152690496649155127151727763309991951219537697438936986469401464307605904417969522929310704106856820657223463358775429286982795114749216396540968425835232821858769796651099991273445133027594460783106767636185024927876822297714598245009093355115756513600384572996153507749446380252673550113594703771199651557223223979215569125518669073420581669387691931715816054663635289721792396793314834003371203522329274157773827947864198943311922597326929109884578224171542310474004806936819341427974037448062333353491109734064884918685904328994805503149127257925494966493987412176246482003191735954055598752230349119358808313815311676822605493568473731339061625378703710183096920648455559164871121596885786245004167313697211359313325587900397004762696278937461169942948692530047803818809364733619030999702223344820210327637019935833620865775313842672808915612591621361698457502395087956470842159664741423123868921148001155677580238756701180996993016165864474016112738485422836338916037878427857778602241512010277667484020765218720142166486738549109342628871354339960935769317954036654408625922700356089604008013206083888017706138935263255615276130490622495924755185598661104470642419182196565347321008056249648023406570040312225074204870187809605588360572219248413256089303139510508268476168625597121211325127608655566574122970904928709707121584194833066290530531084384286965811539744867491957969987066036466157182474627411465086718687624138673260322384542286956339472411958301899719372174843743242498732696974657405631471776425678588692063346015649846528305165042912005093031032506027285239559672169774724708750479510434703990999437213844268083937297910841315217708576969152075346622386735137247520941165793933817464108513211223945899653024320818751440017431601802974297384850841408786251404622270312806066554100720938589630177130860326862463374449832843927815529537930725066602875630904959908412242927266538146401910321456049876975549277285076222339981595730052666554249949728978087320446947746094957335570190839164142363759774077295589435515101454629999235405957822248068434028630994870442951358236659501664463246806784800517535404137034368116298893740602186138239814569018272083200752516419145672956339641576588744248597811959295632212880289648765788732303245830196090946887980778924644267168061183366711051442357954117679234777088058241813199897417694876449183967686524484580899024125813049719898935138415756267757319849636408937778737343657941271409970438371891707472053433725036363403711466982081433586595334845639275854415667379365628712611174974725814738873161191233900029904698403776020831815207761796561265994503348979446666549506953368990886089451764288721930711897367387961261805033739763562862778488118852123483566594200451729685636744058944855682370146314057527925300057565684949604249312555174970210732713641042037013296273068014129689486033949439375195852232317769570967474337909232614553487884047250226040971534095999347978047574963450447126140768769313651692580562651100064726845977735311507575874301901708967298496274705218845071641656431065489587422349526677013796808041065663025484191411231917452186686596767252596774065199418354119323013754094793050718835302811837841287793789392326767494357445558041267992335280770571326986261377520246756538628242825622267740329108597249024138184824693792268550382532170456486424036919624773235746791365346735577951744450015433758005082605457906880102927199481862787180314865256786454269140767938116434064456227647899203276020470740156206549489087270572851132405275194363205809473799754396610067484704813534811840024911396001646500283056669811382147348485945521272422231600404261163788939805616941239843467047032258864721496302067238199124510633115816230561379386572578101897336277774605464357985848980084667929361656602815836504502469893038263879357868117475015463136532188384580885950416420034055386192810008184617725031576914233674959586117164363574563703594426181661364910005777453843077900368988694093428889224036105509462896996286977587103660253582986321082482613088876671926226929577656130731550412617615237382668301240444031239688196667358952440209524450567395337483797012173263193161005673783233097994265038992194144852596492312401372913314199228049722228019139287078455909357190153055962493000503105007007460242012814630075885874946206351206059514811709208921931350383089376581320388581970616001306967520019218358896397347229992096345622030410237460965268818195686454091683253728598157275003330232726428987100606966308482057159239850832433043167006119202527556714397345518947508698390713222793565416000266786973610303744443929767810988905138270475435820654661202379111140509790538770687800826307598315615007161814722609558922750409171378460150357068614340775057604013648964915436487438588318549210780718896058345789711241880453257677557529214804112743891304985756772350401658124092759509679936150608032147114885285359526095734684650989145513009390068091846127625540824232623199098784053438102637537900845901021320338289122904763517832901800124449925182283790865191218743236970903876998774376047371560197459060653340562944734175427886810912067919569714106853689139028670376880928912662036265060880407681149182914878353005038106465100152544495660973170756950971065304085900604991069071780776242660486366526251205480967261318827016943265373120098733529313183095486481254328949125911794821491156431897962882985539977815254073485342194658275039448314070150383010409119013851320095518309615949131844337764783725816033415458126391885024410117592997381579281841928715730803568536687812537437473056729900846279447985802564882414953288378693854291015430771184218249742125232275039258738048668215125097383454317900087820133732930061422567507950082754680235787741148402638378460074408073896728428800248700054444338607459819637785282848215370967988647643304394179940901580439561635425403364776327050575090359706359687654052443449680243007203201799842612839625240347710497754868947131417506895520320880328166408911216199096162198575524642869784066119432532797904044904390736035552163935059243383403964967136924328569218301925355496382349965344148213685494747097498043615504481295721591102461874226756639932377554793338249852541381427113180035397528352237757113585401840613022791626423268985130357990792574334500198358305572364582084541301889650081406876756431387311762299537258050635769286946559760627893232092981981558337279897275380882573532174812227382174701028254738672402834846518264897939826991554664379142427418732001589895437220320687813546899044418729496036774819522562805087279238368944934097711978588042705205078901095438693504123482428596981636731413798120188435697970864689145296960521716368574684703349426275000832987273786148018639976816748993423026300998901624474561874285500232127373170504041920953386812109293522793080699110068507026418440524730161366439844133957567587885378207407729926127923988693722032348850934423929942536333770467937423970575754477736441274018228754822226599483490965757284190782073669322238657695189942387806864229922507920231252878544069021960846381746969004103424064753448312230557890034314623582443649308525125287867324318044601202285028763279122153288483334580933030245608544543622361989212926822119805953377876319182284198359667343802132780424276004609052391649795867040013640577135300691783001171272353505031661534267849846156075907705033975936684858486946996916612784325716348655423168374531924692051654414856971774866176299856901893857053790034754162515390506617482031921768602161008277144216992986964129730337521381105161246503021452887118615498499138505315911782898629672908852667688383775240156165942050342143771568485176638538845263585268744526307006390573970357038560135744794829131195014656685795255981411107390962527496398588197965677596074898232690386900977400731238211720453724903374066610102031882746981198756953114891186831831829554501712089637792550802621240031093236876730837059742625312617550024893828654808088370225572891248726885720826787551826892690560694401631793852574158077326565573327486866536119985943211698680196587407009028338295503759364323865210193784385847810693488466372424784979878497100707507580150161141546547037112906028548305597422360861871569853991513800570416668840037125262147450721002162276330184395052501634422688371181567578597408681663151838374024837225587449156452655333574114548629477506572679241330522192995346071876036209917439916443119181829269279085610814245829655958022928156999327463010622753187210757454401839234739611512756505075853798945123010387959301914453253085527392452161926341953715630517504855637845702349275782873464401967466965580147620743514663506235184016722972344225220691847560951347692766178755622391885418002051387747730668691655864141451600221674366655963090667531789906048889640812412838085846254810694950448641528014082858024908429959882825889010646308048742003727540125716423345729768832237533114381896071441285523758317982466249679580691891649005315987287962860430629348644682330086469963120380768951689893446363832087482797900240701678779290568271065865119296596755382639854515735711278632166321812588946772799013457488376073807861425895255238567719482667952025211642439985110466536720215724693737231416634164320761392066519785215197087124737727320163298908514157465907597999709312749242141121036720830843828093314099602994518433236810204765122261480263333710733760624767772337430721137597719746384613473890383902262376410753584584867315208623655752548067135326596932014584080329443946276584028833803160588935398148751058650443003309140676344981644536511186380311833996956398775674166481812593041054889498787286035128950903284555844139205135842778438349560192953920852361549596313023515510833958347330594936708906702377462910802789876947860905210946566419371854397472567208466797983190659481201892727142024863715847786033211901540161006253538172230015451827462383025732771219005144807677377724243225341849742543400941021109556593510414535201122577429237635048649646349630965018083541374973718590013120653465430520462462107193917098870457030393801488753321103427459581467146512132984122309646684330351609200471577183512270713667070863563758263706196579924250796193939467299361076381634785377000285097870841880735964789196688161217287515734001613900295975046531927847758815628454000340519096764372693501803961878891019162524287876185609458504500262960216669667491932662474087312858637789580901135809835178038342171679413206971754843064565931592590899651391741315397637596571963901871116397870545653015849538367703802384948248467322509367541700935187398303192753710090682262407132356465942191604254402553140466665015828536449754600317032225814988894964028746874838591353936622446209528159282684688262971268845104870565020758759243048831936822654664808647506539366012568728660206947640600193788680054146828013651772544503182882016082290130179531839511291009546369158369835507282701414645043752120932750411563763389837230889068016649510476731313774270063730685968871559790593777713834655700113246843216717645928931940384344954313636914192011346062791239137102008453281293257489547863263239622197767547463516375828151081121054836277074862283349689891021005789707454605398804145532366327058192602176536840669753375907523598721355376281769396821291034453479034141623497682076707428121409919112309723040966286585814584872206019635339393930941882386280144176980272566834402604631755710265890452995439140223611459221158762826458399837330877183106691491521931821311763515691696443027247065906745925084517559304378628950268822441961347040800008495834966800474429973914036728649951715468707386707130881159562820430997290269594675779260666874829714209120947540106699170041711756452268108140025803437165743150792729931546231747036857287604680061439486188443801264661720051737621086910518564230305269440614675999171039982247644792802237016859140544863878711000808306919545083322435815110631377756044161212524011751762110621644156969008150770696193468823751327560617442430520712400191408154686598495506635928813631111281647750418422370139252654914824352744257868808598795080965053510740952354654794238407199175123546324145437615999727386348948287003803167923195165255969439597274082710837904392853173781148057827640811387610829960138234471502711187704490006193731114791273988943717451719525804681042302400338438704886880454627713512086503470154367140986739911442056361871364027837772284611317712627385302500942900482798414840268421011107280305778319011847026764427923456297935546022222722209629068675561867819084551980268111435463323883116299977922181621976388582847997165675388844181709068269262606758968476968812655009051970922987904012981550921521046555727603162359998236004297757570557727044710238831985629109350008654602509362367883040902873336937926690515937940947595600308536675056457317651639447375714940932366293169372013368821592695902580623535435409023620234529543251858719732010437842608716793213907580909717036719856191344082604013431661323097357250677094231533789691374786995436911444853132748264142404662358108743405035284699368657457186189085787159583220836494349399949067757270368972002449905642143598239351138095152839913867254521289342847083380531708249932012031949893415135531666092355176633966374846650611101106736475481655594522095956357103676503800646806470604311934836587388245900870248640460672279120931581729436972784460027162504724439082491690673145185245737987451943632363454096706175755177940860033948071964828801396921278289276714852657349510413825736820641052186260427198950410550878207950811587989913513681125382611548426295362102169684651097261270662941251458370302772749921680579193948591389129159343060316662027752099953267402149024023537998543077741608039868669461603863644800241271855087600928792347788640836292206367138955361141714702887623172182816572180907421077802741524293421715554960875278485745725430674788195226791653881850722874758198181125379474162357513310535043647987431711607333254038150681901630390384652798787114474385689540365130019667919288595318277694738233248853896245922950620647883275160274575794698485463550660352530867670987280721898378097852839815996013113308178300385931389235497335163689223998208111090438810703313112559325081617674724364187991786111150736351813944453113597558611237806110110176412874181492425503932047061774386700880750218916010092508186454076231768348425776856033231808237495472233340008183770868300053228875380175712192548227341615232537198681062352409645663304778574334671883789307253034912006475161415226287906723877010779841070904791677180855638039752518845775700687776292668178677973306098484745350888282937251245451001410498133769075079488935131710674977255585348643110274338131334307230193763783815263348609653878892591222520918938893949015722515063378857083019941934327628362021738583051611866428359637007142622847539971179737095655901090638841834903498107124526053768595714949972903129330374820918772479132240460975242711894492750263365502179098880572781237852001306157174771600361466395754923158443389580421399444669820821167073578503454161327928078739646596801876983749816598794179085943405700875152661254197825174417845941031775546844272686978991702193966961815210340614753406788160360911561837330602541698957040334499155088882698286142783150039181236554663784087117180451687775633005804991215453137380389201825325752931824424740241152689027991346868348456359489546351199804496738502062045247899079981413827467727374534424040478868258586383668514978007797918725127272935834880902848099949837360783986088028723928920122730197639013443483077820884287673452789073126379449225406303678810840124291181740921031472079004432267105089400169807910391949630109198124189143351362946458505261863425474221497635263425144741806223881912370291174417378012218011529913795228517298068687644650616311976633177027443357420389921076900139425969471853565413193827683490466542613030081045935680407963731463795526553030067276929549921250403450422175569469361775318131868251028498501775104271103351808348993047325010757466719849040059087477506172968214560291871488785502291971635134427091737786548253159692561273448486375095367301991417446070426366313936708203545103047208420327966832090537236913080599457261548661539002852111495002134632375184707233948760695252722895976455377809416029351207171945952597769887172910213279367620271506887231195894221835615828027936519810320159432571185498854194297550552524192416424025479731275515081601881045664971134388933152756327835166194918199402342613231416763677490411154323378925929680112326158362307799051742194789404236394164303203684416573301087749233664760198123412312911561751850134424330844705097072373938545116574860096417601794501600876456041581587422994310180120309275759770496916554371363839309196974145687942369040480153394946833260562386340072297413386118698711387750416963763087021677662687397750591131049171092491837043691579105436117188020345981738473954714777282236913725544200910945422356793505552820053618592196062346105143827448190100189164886450367730148277879138436683301595249550643946647054085185341215492942339093999139938427235318436540274152285173610015064931892882991925339391645698577851309894525766565807202202519489156059512597244445704741905108394032245422688520170967522750812154164258747883260532526196765387614002872728518305438387950695149765900886226946423013794806133193066213028356536250235360113815684403491572958888653743901253524576902549193343006192717516767514546159489488699855700534379650745458249971310337157731872155772696069296028147229699018968567596599568526411953582243183333782824801957512349012486723161129154406175137764933371199713862295984611274129455011438218430694397772012795463620956144375064355462818717490154356150977719956154806740408988658799045445907304088093445990885812310643862858856304982961070138327522385909932833694342972635567731946635078265841214991160231506674910841050178001884745876642655117057548535223267468777723652351158944771843056504433166526298870574086191129432348022914261957574599969295458950405551760211438979748937192269486139665631139719943215238177825479148739384191563460672481756134173606325712964900927705655793491949383857930374078339891413835461339656864335469844292121871694141681438889057752397714807128052951067054886532531831029068446034526572095993288925052551659471184430304197957854570107540991631521370796210039061187629576984076006179707138359928730414868199208223316766434126040818430100829949544530073448586352176430481181144387790144845583071225208110803977025839700683702096753108497783687729083850490579265564812783763302262812632099102922958483674700157736497723286789468363626887709488999186214942327919134184671961339731976179346500377989406144957432268345092107426757555100966819214905059699422090441417623673904221652062202478649802486202974463399247379230291175164108162296616574676119700792046117023047435011288255973421677167209872716278043495733229450031305142070853422891686965087368038788394103715872271503783701627799578269505408016277546448029797885187520255606491182963615979454044724375441377361901564810325604267945281036337489963031253220847712147491644365832484521693013754012333249499536317174680609470650579966562307517467467421619837409067210985329831084155615123207790633951163465408316850854570664235352557804073685276046015407372618983268154138279140777727396766683629469397095592013332497045044481729072837288202089202086015293455619640907028858757518753697084078416546473213579933568281995610987679990084186304522214365808372982814560298553051031751393417763678293682197398094463170349303583562432594588335559023966033029903914313735075017195129481634229990144121740944622378071442281127686576813306357163014536162285776556113195129037278157840540924764772513185044921880471120593318028926278587469657182689907004608789015094903476493238927858830482494984389771794570360950708791690756893135358843658853618172835587052592438781459796501081813900100422965054060854347784160886324135092931542871303436869751922747433470060023132645560452849943862857722084161190841679453938979530872164102444310001662093411428901327885142573784625663068607820252817133922207955282057375874477536895019170096022371429498373987052546126956470548908118413092955460644940634013381926730588151160822343314692571516874570133558004813720955173590316939980764995450981287199689037160662960366139427271115489132382489005176407888504795487569867100091850123989660078794958410291969006344717060147765255434364766205265070424834600127059873975148266812227676823224475795096505262702978863005522219453015309101929790532333094809261998392948869054207721879612935714267793283983839947933423227027010083700475598637839527037490842047620986763795837516792206589832641522942450821606943467452647706184228026965897266340912238751611234036654634180684760815180617790700831516561511933643125526364898670547412709915029166127922711016167705987395497817133220764690466660742517902330412265226772949874209878652425447244575610653148577933366575993400217561782798329802806917261908683564925998076962261017215225961448931177475822722801594793406461286755203914991509643445855588177233262738822959848301920432433734225721180238903060030553429539401968579867992834315568894265933294218822484868952715146988415896712766230295385242010852400254338397354784463423431808005042511392636587293923245612789978958063030666444332287535975605962611107498442843360784581333514062108591520911160767743673491577445687536682549353421684928477590031912391531917406922709660041725978390302192519382290173975750486125135604247374432144763958319554963397754327270910415840086979866880944328801360794889822965350579612569569769198875325903490094232786959674790740525155982397333871711679694598525580764699376485913891466189084517249509983261657215889965552045518770169707777794486969621083254482450174535901545567364564475202216578307307847335601193877529801519297941747571058443540107361518825223520808584814544261804367574416716056039270713518962765920791619062022709288355774865372124939527316369615301882033280577730401632771901345960513761245164263426652176153094174401769117017940151298950582376049788877082379525044941639256893185510954226839265989273650996960297157132726853053203340775670641008381988854300111645653059407315657885816486239260795584570168076398324413931615025083284940169248637727223094121632775361068758502515073165956794073074035951945369872002854882691289301728677898927401920435925045749222857464461732465832317748837747874461330207832293122675091863293659878610663871743119785595100344234026007848619598664758000926092964793343134852983646336293097068905622298411240028108223373765573918392712045716049237216151173436823438079572877407180544566449352530714880928619709586343425206337495731448274992785060863858485310361387189224720969746604232454407894685453792223821644562690077476264876536468799577665500002086483952012948372136119352058498077046297633679603132465031711193386880757095042547615228748466420813532456896024410320290790307819158371439307100561424330969394494606723367506645964651553057570346894478096670300356780173070696017209050104672022219322712890781209574516859844729598125424740399509080893928467442011913003671035009863968199801097562513180731704174248353789460057424269315561833002055282476652021502567115611420440096754448051028182006502046971864936976296604406568062200950411758180786522001204428428631416385072469993721932013949719656551382814373981967781577955377801832711772274963633313018688021053556567707056482567451808516979837002082589457463843345385550424465809841533655475173204273355158911044709838500929869360065906815309443381153424345191704888729330248769112229162025263817127042114914534997521963959570532931716294581922665719834411677927861639916029470891188690537914935996373991356363238460760792781206469373875963128294464741123863547724708299943753412933457690771860705160690837939415164118341870431158785218684651509071309153660966291589525409634435580444162403753012753353303685757075962053456334102718325859089179965578332926754979469689068318477567803880478262833422385842609658257757353402055166810229121655834260854002244350532010775822702407548714611720358165613545206025969651103304348529862802113016988473936348900580740584160634805557442625555752226632686137817060788566845369031424830578345185838270256174715003278634659247307262520284034360574646861562567786129272772273551663970159943590730889913960572652523362659024026436405125405595754254137835633247075690722566641812100993666562651367401032382692777246675508101202108847755894101340929943697188729802506050189787105069094302883095021616020946323923430345567128882802026026117180957740523446964754974795593634978818743985871418524148742609602460419441369990897530737647809558507536070111625441958396691337282887795640052974824091200843031714444089630137415274305333467227365784767970389774310774890728997630076760826140327233551208852667349338428195469745009664260787597214493892629500667116532515587297170156862042044426718831449502010748429746600773683593801165418064935558399104648334727912155738400786423650551036538045921579564245791083089402843229522212595387904419320410104481364568146110986325615411079934861218275917023943095663716489604449979386888329764182926315832160253465506960786137436592851890435638320245045285678201256873681080468157772348195344787226802635124888174909739958364278445229656167401898990593854647817856424372823414843536462636088825820993485881496067945322259804251589963851395511665215950348100249851227372888525412086002857189435505855180563988826801140118968554701417067741458706568239953987857326207437793926186381729100987698341471598931732010339051580858989816985131460434458319363122601379979355577801130026720421312631151352467480093340177642220533449067318418843767004951496380172539190932680425377109489593351544415382185051251055025286855338276344311162420595919308632369050065447966688320639529578665879394222846695094733215520996530037772943192716251538081624399712238391382704135917227200041210371988795956285766001660762034330633663891249626377827202348358570176613125717141653628860624074272203493007284127743116205848013515676290459164081259030052049700592050012561138082081524669954426045830307198068145409236906345475633733487005465541221852784909321534027503344413378769844638054461259682175364829443474832023779977626458391987008387901600085611545463692008990586808050469182694474810748706329968072771290630811281286862268399790444050480813873898593581220167005014843299059105597527140941799153948047657916618078256600031934207968186043204892076551000568750645466922219616839430233829837166331238825986425726692566544935767798539945841647629787465547565322167816485637551334736399741228071530287062969565410273906253595467604794782813958474064982642764519397224360529342991890631689222012906601765217052496386978602421252813340664293670887839388639654255657578079920091071909302273363518287904943258894186814104751441524664163315434125958903128024642192498584430527483520753898673709985214588619192830629972475122609368844016953446660284277132856737745261860655448051210054047040373967652596684861838897476415310480733918688914332531618024202234010781995634061719495699556124229432353877357800684603080960103845404623172844781006961966279337474333501653736024170810917345439717054242407201117893448831632735045680762270745217271624668404024414194735838767398467541546955447837577248308178405931764260356797164609825013855003052557750552587827399832256019812970893713963689698894300337961397125378250490882848979207029064201461389799296573314291548651355214502379248236112091426139236151335222160038467128367121023133518193067887468467401934240141446226724585111550125965839348412131636774876069839017915628227614615212134840334686682914217508840420949823116850815358273680155412367949811565065906765564805005491570217214773174982066599749843568092459415784153289980825394753192233250218536996232159122923928760606330110071863869643358941467089747442973184010500572758864812114287263267708938985306729253532581503156554077786043293675620733539058710401465412525559705222885344497482090596724353016016686924765076007071116161285529963434541369612231519041342417389439814844995128704206880525040225649057737381467820153471970956197095668398530416466895609371331785794158152751021723537464167733688111438321634269721249262971752941189235579575121744767037942399303418940864849456999336562993879239445722510059690264669461684268756802563005916555966947281979180561267572054613762438647085381403322707154104904423659047130992104246993201754227603365717710337535408595675911774934145941132126697297069348914857334675885714756729225831350008884668854240677314850827236796462770897554904752620611968097027781196283894588741416130591059320508875306396397677234061117665817016872828174766390396475356327262312346397202463081145164689556809828777362017886663998784663612356165183278135071291985547907872476703474090547123319629973371595620223083519611045961164596298866126059832558598619843573867418407836587059507868818051370673629094290650701662674000991679979788647984658130774690236440166813143801304705832873060448879227658912459754719176593714565587300391856059013342704884035170951417505251068624551527971520526296508919464025115566240704245127263705799493694023252538674633036200919597384596463543440753725694005322728597567365489888795567006724829106638043551724315797629404074622916198551715494854906383734562985206179835338631258996992722518946213323200753611110217723411567781989915353616178968719217748254203242936550022998000985261928284098874736946871208185159552561725708549660440233551348270746109755844895771381172123452850286720095431672934878983334429100008708154356930290150067433340704603708728387102662355371047797686763037318463241660998904902924251714250317177566744051457198930557804216880433332846071545841602783533881915720800420597410844349071144513274401880795346055134221855404975911577136075655245945163905367873758782846322998416182842005360409254434200854251532266548713701993113663535685317458557838774312685483886813691059682987019694416483919652344505477353323636500346073125972432639084134855382347162602858561637626505142137128517152990535983208711550863499868049420246513043465797700098499835111582932273879763839332143805751208224390672828191293529300489813691859986911952886539121484182635583452921475169176759220112302081003519758600031743754610840229001529485106347377252107156220877345310966179783085382139475241936401778939756095928591123192834577399331537349909173979544629899428469709562290060174153591195892144094443129277772262702214678600881883527252477343180604168380745947734491915563045432671518364921606594195186961821635789602375404354494838268118373520250444384425040464169723063778711920664818350019041296410392348645900955879467417012030548674257997831491862614110456770061722574248755446824981284237549591161212998924659998756893977473631926404161642992219893779843800238064180148735864058975918068845196340185198618931087393208760779007755957512895780981420602081363155602704358884353545951970984149483784001920640830323019673545308890455708539368222010683207387908488198567449465910799922822757752184540009694641515684470852750696602354596617811641600676750156215796015580144610793895152682749260240646968924716952777141940301192637614996508133802442584484004120302148540936753762437351527684063163319152650763056957654502321400918955811701059743595690582814942074032790881380447268898051692936323700383662363908658517901173897309776803695468132516269860214964657213623986437676570060354758163395175452674002512511656754418648683638626416752061217914767713056199752165987583034089494191238881646559757873569551962110172417240883158448386767313940550980464515807732621680244917671670374713563545056268804267153461503993069885135984045026214282142770607717554048225891757276368847291069392737373964624504924251992631274641709685323955742590133687837238251804088478833433272633256002029247448973124996193004374895130095580324831086422323755357998446439686159471234094198577958607603421665196355156424024819385887971900060711814094794889643117716291805107200858397764482039015006035432279623801113736566664313238169223241544036948578302602157942950712502263709363349467922969696135875276764466173718688512145980279290422712967223142713349296976406658477723879838615026061266419482600638039016430345906059225794889015674608668496228663887990368296870824012194738764520304440937561196952275872776631268003914811490469799810178676770941012421198782036055847188347739312974404354350433763831252144554128747333217218049183654945735493222744603856551005134644175223034595425144485359006138528810851077347208255817926503071859810862887290543304191397240445861677397606567405445460126973970866372833718636550281924947125218803592572788976159623734563858560564535716419052409920501768365232535630885537389064584609594103122787273023776965594855718429010235748175332514965172877935073724556218217583957277499620598762816657207849216883893930371606895589218866950035715775446818084201766203935812022656354613894649369965806731577871801039442556202329522058019859162206150976426958730333770212027032251766287857958301966322545982140256772991692519113801502685819166347613040068400833097995060410028447087292817789199714405384583894375125505741033828109901586326231400328169702136482598575012099374617111843795360808040773491751564473990438457551975190344785733052683391803682264245673622881419375456228325088640032748210022912425795627564994231246990708825037328832499159974725462723736431594666610726190753188823389632326674347599601663284916531835520984475189974179941462817240362824672317197578475034750578164359874092803423321415176185246848742936852388969537136430182889446167526347166552254226973035170806886401791279966714379476085146545271542657412325193406174665931670503904394329496255668620116335661754530153459729862265146172892826100299788941824530303903345795873298885572369693831031957323430991459890407433068286237958688095418065329472626468434825826007131216427430707061931307537175774816120660501758051260893727804246750071879774966247893483087448181847083789380234508588579239245619371172046189308400153217836349359492580592845007077348622527753486577116495781728248365709861906806137650470064818448133327352493314774003976698382995812623654834598770662249050907245603494007803168287842631691674791131151646637860861721791187962263061154529569516800374474619235686138447161789233628426741924588221568158829435647427338035464275459206171240396151638240029740517428886629249530142781402273134651073026734528335437517535071025394995194648730214804650620622906826573595452297462043190486325852581463752647504578983000204970174219385668722129283601944858711005742616641055044936563707575914503785551667931004469102666234034680407625386278439977548193760981846363940699616680442438592154258106835218391240649907717900109257828811818041101250265265549384987472209063180823348532700515864209988583558310206000492636229730890467339636190966754750831000834017424740138562297014073149672727653947184923421286480672679677523875461477072029572754309950926846685378784848055005674205347169399733848219943016855076008214519796508483833963358528419687504059540080136092870081669170852449727088935069913599791896284977443180058867666563759871798348386148443646231802195289627237426025452510420448418001514530570378600058870568705209466791678487785738574035603784255759959487386466549662673191099814090041640735531793339218898747255097574985357570026117040693185094280715384601967591795241329687632259786626344161281237961428302636469640009217239953775925625610328538232748890410834587282672957540515947247465679452603892825276615951794385738049146855078509749530999617877207387756790358983706375155327478464798594411380878453062929620227334188411792017316294855000722978401304210424349584506989981123913811532937565498814955894078867217442784042533714810098441995072156016537436577107442074090117409491595107924729363064627285100687668107942636670090630757023048602402228354190449170368666472987574650864496775851807611903336068779638798586572711246359655577811796193053493316987592109439362029643389426889794760314995140353692840478690914084174297358733957730969462424663346888172850513278668994631779471697728520152679030903392260326824304624653339757045862564910938229281965651032827565177739021878197136113515093829040041756375379371795430504306998658735845403023167311426470928800347062754908856227498923816882561444609635063463456998169628888525662738894431691387318000772782033028103953427484837150698864864969394259399766655541273015742061437276594858398893859303391181656837483206241666383209566287796206838999267755396650984653869378891962811456819683621674112934660487305780048517074017400970990542791755403958668442645246347268081943509768558145547302324296029658843863777184685113338386215102278016726747588640302446292321630022229140001609836343023075590672794450734833250164528047620330340644352326656751507444424045279731995465597703537523945636280969247209961761712258924300817315686248847507353566702518882294905758257083729018453170034702871793462182085854368773956886785697835536351074387967269635971824495622382145651513314910171229240246745164656302360927343002582163343647788719416209611684733858348621444485508841690048068439079400963277499530972328726587091639118719537136254440587625868270353755888389722191248012266231710046542448203176987587906723918259805079264989036441429295369630389033418052456820573195812877051888689266605193963292368211982685956849063993180097857875909161892240840903984658501104473629412471708512993728674866740080541384528109648804077533245017141870241015292446569049781373501625091078918838631926721188769286055590122051489562934584993050249778635507227070932300374507291578307284617170711597097859734183708501860625865758553571156577678548004329199441480634235431195091341560934588741913669914649262361799164937614072435531834091611268541049319371248133529177273070163987428094053615757682227634137311481899689575914817237807694457728581714573895240373303993863147063866372969138454922803209292510508631259216548502846659317589930836455332703169875649968210652519179467098730510275469445642636434279703212429403719467311004711526669483020965995509425471379349428585215710700786325555884589168280798789977020993801718553462263853974179215483136719470360924737980974587579566212251661261028543765816401968019212834758753911867650309788615432957113424688728356321364372801733241198769135439439034609184484760656012643358614902109807039703874093396690535522245119426878505979822352915152775447403103954412088273873151521251312427050277705450437716243304282599680489072007978363474081048309995082357313319813804551546898469713230963023040465172051870678599806550704693664932211105321626166009884412447121982913147173757806763931287874451263817053425417396973850126430706407203844013776742150952638175160212628347563040362221810094503125188352163475568245479324787245962003259767732089442913774719246254441697931612717316845257215859115851893345474430913334440870170328416004687502374534757170578974000220353239879341556934065048042927404072414683234829963735280905188708943941277233069147308886143786515870770013219491861659725203336131221649368933524101141567805547583924226239091416401902081438499572480367323348496835865260784909133496780297549541799379636638194262911322624763206263453917169188266978418256396951328270267142871657156484556951751809755391732495313520101032037530208617845081708196203731206498081546700441736171679821851575676610298587624551573981686090182056857243257685793287836605470509177471933953185766943238476056103452745950027652075047115571994450097089115575007592938486778371071357027018968381412023177809645778364081659582841273848590623799067980405504653691449448618576885153077085760534120049085119574315497898868738801166008003043087773739237289769085777039767052373351647728255841162557620576155652895027388127486778870237888915574374757080956463804225896503190187966568123760812611164058773180034788360522272047510271135040163132531124219896280792691594355014923033265296858408078863848764606171697649674498913156938496493053057806482561118159223573121911125211460986209670240842837036469321886275301956939471494088404658617057493658981128362281321604132915456285462041939316680722124451557755099358655566251846590420714856478611206734768838017722480863283289049675555189297501082974120801371980833999122161280436759555813177165670329202951514146803287552662208345148752923553728262564260095301503943789780925755414139784362336193597278814179539537012272597179338620603750953255267999647491399226759073492875783272213341273600240179682678784523187545306957904068615621897341796235199260533172355729308468261591266145360196103605341661306107987017092570660272103094950160347209571712633236564620031206533802583733488694055270661823391568862421332643607134410926542548639085280214734210349135696498852837511583050571304545915019223032314794082279359636435226936896143943020177246174121978801145629990573375730215221461602293709305954487445661976445303264298226169230756509273543561666993553837360416104834208981991445121427377295277776539668994403471772028071442022435897889281376482021011274534627560015657472379865187493812783434668587198930212341350491895273339369265203957792760743595084122560940737347695517108736571909994490860217872546694026775239333974789533732227406565394428438049298579338794500959253283220576271515075133800211922695727647159283456790558410548359286418875769301372056721097404290803996161018934155422608455992454945743807960745311071279313166151330962760096235988602300308835564758756639359447769381094871715572609013282436193853920379172319366254094348238166793911982065580630370720219825929265831781716637330053923008991425672550441999309470350037821318233358053796295450566860432820572805234759638425737395365123277889567926303906526537240256463478529567647733510308459983047752245376414230165491861173168423731080059184366490857445404673429390321463733085875544705912361276109643192818359152554201160258147041412084026077868183005736369993342178589546116329535922271809099186103819235024364437493186168216862219328145567855867616019005993179013977977353075600422578388697632553808044920672668143908029276459762917709173803065049759106757706119716760188919522343174443987420084100070237239956275098658165540029234728923930563884058366036699225644248009317284907262832727701241474869485944132639354270531272781281245572180337674733213685039341507950813732855055217345375457042817661741019402360497340400754957481712210389684196641382633137471390869705402629786704839003961389654071771781086637691513857689766664028979838665683565231078399888509373806287165621648911301582222170027756647839646061830812223428017784169608430418654273763778712795231562921234939453201986959564834073483858413499377607314736022802863768925943745292578769144728278294848213582008112898285531090852231033981441952977809719121312587564943168912789489753139979595378153094622745735711125448307765204833021482896334196825446252335502921550969713016449956275737858915030805207238414908799856692374632841766066069562234808973691924458748842362851870390231437300005849352704244224648383813883555985306912095228939395432569968341777588918048456190941577704079529897815595161642941591850001024864766292521271368053787906391473946270915676782400341236214494059149942813799038306825597000938115436282333239737273084648727531475248074216690686061612917375299739869339020545383043454092035969846368103286700123493333786907785470504449975950505078463787077821712296973885523662099690787392260496484915151263234734342466571407559949909961625501949729951823900908671005401400656289877436541260429814720828252903360159107898844348858201924656102959839994584080975888010757236238257517696455656020919869409772339640729514860123445833086664158091215481962424058609455866503176323546430484947193399148197636035717880939620431967463658804520693481641846490715813865395821053459720546904917951928138551220699423725190182100715971639731008359420649343747944420363515728737150165325817998898871320712159630845731859692105611646943626572610719816266478260980203423096680444235105454764489424427600962627476703770852946006181152527648002535711259081017504518678457396145436015200684967961666932008683414889913370631455288019193563691260041814866608755092730547613381054808198553489327644945701341140607353407335054781996202838084811951114635908057336684840629454919505815149467684428184813204030647274695123681809896229468104560523299730902822722576684771659341140466973291143594006377435078193684865734090084285072354862549436401352345358285071953155722272886471530885284231581023106416001235174151390567853663970996836201647639165438904111881703358638762892253021473556535868414841044420633777938649436878018614623135946161327906624272958922698752905389911258274156584493023559181952106944645107099110247720212990184204713150583612970809212162126698422426457569773439838393225175797284926349187982075014076597860438030207309676643526925030060751211892477282927065544634191897848985868408089687789281086157767966269781022187180491276216569612883405731640753339994806502912205567416423886406618991243466926505462883117154429869016191466957892080052006321474657184889970263992481904974141450748084876744690539331043392524493055411846958436268994377848254440850177707502154763429928746489106313737684490972827926772976743430564994340663738445926721194284603529444688357864945386359849262872704435065462686278253459430329710965571967532699083765283820045882673433450128027858507923312361246608116562628514745964345874934347388130935625344674510194362717785718192172179847761650862132885763768012762981718229538858380755178774812024918374874491189090117692269861926759772122905384452740801352710957420555249638089567877985762481008236616694963654003394463236981373960477481384742746895431958922990811752374065449612975010731267390270644882425333335804396182223525059942049050965793173909880127624393474218182739223379856139904673575121807458362861810280814659081854027454775542074830000471397273871663005195738783556589509854452098645722679137148959909950276044881784974729573407311129039215136207996043906542106397147499080075496832115751431618186489973207083456471373158816876975298561727993342376268569005378041667269083987625137970933363333696098150458866998345300752368637077243361048886731072900708623179268986056263840299726275099498755171498822042429509953424899125846275154394299318849019728802461980127815357390492091571296919390351867787453871623976190660715577911109795621507259220652370545748170630572436195903864559562719052956139089684030182944806416753463902571192100448677961986875739372625677330992380686884732226487946126178069411927663308526297726800522009531626071958474209719714358963987030251165107978670333316839385095180592875644740841363832920875530041391455019229251938629903430652083099464167077987658659687651935194408222209116827478829180532548129596240049358863235802484887190944457412869803529057426683673397900036859909853539198221366919436932929279118301808862834578112134519769671835053172155323608978544190189607585882250001287394878616235101117580658560969471761355536023062909691528106567832074408135388204209043871880404938423069063679831455973876874814652069880330913458563909319939653464634363134289808291765819353771837116677239097324837031185939548228912053853464119801403924666515759633688308635667116890980230493331091243875066070280697026809439650733180656936263536975161735867668682974034688005250570330567701138930228941469838382456909095361704058713450717013655422726130020532079564681128645552145273241973263145818605172988993309753679839782178349212185741567415286387311892852249410186569586799545484311472909934847111786221051694595624938792931293635360096085968137282687968155107148401625244143028362875342201202371971437935384682166467038287419438792123422192358119327457242947502822305195460354430759121573183243643668729473252373629945210751787767951222663311453528998321528802585963816913290764353392153574759031348635451098344267211619271858195235330858251699762985157846703915950010616185987877183752292855452976491943965755523387882783566046895407615750354217132920505643681889194896340717016620040815868265094041557213948196580698013614720602433033502354576063468001184341832850396417142647526739548524292626984446101125062339091760811318739127272135123895893523729614979066010625745176306014084439358109568617450961247386728641388001560785542721346562887946924533520658619917537756859395415865039511933160889313228697751758033431550213878131429651739769215877800605540171583798075932501871415234054530156944309618099405001499729039191708216589535350666591637232422714462289920523063766989102491670278951550156176848774026043780290852712693024155021186334709068760617766964749572033702673272500456437941138331353861767931352494454065497992085238345493100132898710207278453452354770220602125718986177159827965006624575714315314317844033164196894666493139042663843575396472588844344797317948783901659036504386628457457042785736613741204985495474814717784096945746365614751279908869280860055232332967067963299371249924284717878446374169976981789171479452204038575709877229169987542306315413893300309216334588496608944334894340681697601108349793132197733246741043503022359776812983531172347290544205884329959858350990270059621591395580684909880355446593532301121286016282559176391486587439539633575209156333042941695046393377875310741395571822077493073388591072069586320690328767209574658993954909738772765267687846981957379748770014527426378972133079031784644958340932392925668954934376091262057900169838486779304826695399689041094057478197504709047247910450591548749220985743398500509112090392456338606313408595200263838161873030360147489709199318620589901860094033875727782659980749940441501637751009500350517129414395439061472868937750267159977183334420746063056149895154361166353987615862504103972514497577728851526415549223451161833504270192949128293614412467002498503953637551646224600307314445181846037746392974338010769884694553399965874954300277072412478988548858342602925505291705130712232781799446452244862883288334008492620162125609622969649603701637625675760475520420476703366416073029312320403031361992157560814552671563507165099517577766722663788202600249762373446942731462484792981707386739695720781801212461144423142694997142197919748376006617342342034449423879864076516703522429770239111366801315035433184213798062732300043860621608898955622402766348677312215654830568759672911980484286340631149102805347044416648444844779855285017267829467739177662683914936944876452010916559253432394349453249972533685561486617793554166089411260803915512654948493586713072737736830285849671659603927230346243797716896463838063225645438950591905652486501865529396545737721213489263438980963185522010809825682501033624951030122222657123611397883702520456990928747106865099580294096989823175202594513833319439009878344495650051596046824863465787784393394643283875860187335603507626967703402609323145318423271945086450276601723565832263155001856183453465816177843540309701578826670639875723586483767004330155983893638629842253884304015718974398779713442238181128725204133882502161244176702096605596065934336474845718908214315354700400063384411865473555937263369461294065955100910494663049005211472487089036096151872906319765158798706355453288931550437794700323059911535158170788504271226626605348038561173445731129980078261658690393729606664276336514071071769635516527773776565356572078194842785905229302298931410861778748747498620637218480076469631738388997442639280430311894926382345853632603043144134644482972433284525530022761122461659556025620252427739707749807635958021647424053211662648739256508900984435872366158972756288149060613303355412387940127031402478901959488406931875760285732891681224912021695477784196045751062775912702288836247180420812750222357044020482150974009874003226079548147316735521141012501718015579779693694243183923508016719971569404458826382644039251388630249640968263762690431867088577126617597955446210730900048269491662816019907934577357646373421134869493390181860348969000360837852144867763870928114732420442013783046638529788782355043835479769496230237646566722794760148974001930153606463183856300160136073501480851233263499200344109481067973000490658051000923402511687549444061719135107553718360485044082055276451734260416496319392718239688751785805921483001224881452276011340895796223982424117678610449746934411511568847254230475295367962524414482282034176070857085739998427487413435380064732651539653101203984353460742101016583336188420014261622187022226747430744598296769737781876964880880746247373884084244649114954498785726807506491478726426901752627029627306760350084126481584837505845662309660010614075659638308434263161976392661466683977256484409867929007693880828924512570389973600133286119389453793215020936121895428559539584739426386334636889863462389172238381905549369959149489211179673345047437479398650808587228525357219950469270105918839073282105250047346040120292978432673149989991382026759892788773013770404992199401954631137910802499291551070578192669151739118273070072504045465439347917165921756905733917682822467901928593240494798962557665074865521406559371989432849347875858153800512633079184626507091227865272683901676478729031828480186131055802407566425612709643873812214009002648623798436584920622856444997318458403405232430965813319684756979377542963818431310075059625959200144151679910914462460054827225200345728399536977847992628433890480041132163868665565979229963609161856841388666523011010149940566047443988539132807352685397384938769459111149521072635924369237354155498799121951007550663248043377449625322519670350042606740335897552622927992869465153402786688943523386859175551799407043499335548103859720287770184123945512185205728133517010634710912967182697796913689478766042606679143818997949564496835185079614156812847515819650485233691820636028329583548279472725568419909080539956955281451319281863688453942952182526914293392039364340705693486674198527849139325312938844522898717523183389657487645259355064780988524217104610724043743263721344209519992635665761487641583903340290559498460124055128193797308824236485535942125560496340327165452775368115922587008395787308655330557395640290541989387548411273478636891196759807992005096030790979285245537235100722647429094943944421064864558176523640452598021157927019378723478312253106741512717564373005359814995436141017033381061073401238243819433698209619595629983332058757186932783411099853067791883628925064358132681842980141894945962081760110321925266711103126545181973923782657438524110096776985551410923444744601753172756865340710715808793500402297359783083931022643251979847897902615050900990064596925480084531524558345824908964160357167963252553401728793789210252489521852231719295418507994123654768380558938372361327644962969908735876329168050739832778779959077445483229742234279529046407791497313352321564086393112236584952797107894636862524545643495036436197064614682858185659439547167542003369329364346609439362961921478065999320657535454423487722470199419905195013073384208904805897073623811379596413386599000683541424653409094397623438615340058960273153028901050274883385358110212419114727464998853731088466656884513717209662855170129604068213051924271173553592555151528171813384130393064131468119222286536838864017440250670552009504778204643659548908268337375571275691825246333827413005947407881216846156666812306664594112442503740028281750200901871876067945821566789123097919757691791174572210727751456485455862735536083449748551937994637290211674690134468642622950041110234301146354600179068805928776119761139476529093957642607636221926234738384625175251109342814141668696968633482614843051070622433967813469965250300522202424082570576227442219658492912479777001073961567892777370756591831899894910155835158438432468111607701129686631322451167414954774365766526421169480762181056826740608554195835041797860576542736278813815289417492405870498240485363631876550212870803992066521895620207006571717359551304044120399802872467040213208494004639749909346267165876116464817969112368923943085853599443719731888685428745631919672618102642474650980122222701917312187478950407416649428319692441119840161514588354111793527744750483288846024055278328331455070434610279442678918573176766902845655438127510063923468664721767391779547275190945633658399222110464226420166818937236685664889250366891260185936109429639380362533735384021016756488750736912225571227888793833700301828079855979142221938520594357050674798578467596914764389330653900348458695125213484393571512796407299738860474219875271039496494220881494776896237258527592472769087201606470151995402755888804022221076644212984763616631733362695278974915481197757764410479189993128233177159706234662970038928663106999353524371568957534160193532400215609406888117054068585325234556480402717582753873113600492135565815983313754233024578541644784033918896921610328840203921385718666702138925976785299782845687268974502992019241687390090578070238688896253555416935601163823368967628887687928035328732359130691332210436794358074008389409555483643333382208899642880331045629577705976469903120935324454447177095564035729089749680488179632889809165758315971817687711813119453415984553339085952259381356395770600672788828457084610644885823305937907773822459942518846567403895418739086136344922632417923883152397484635643917370990156479315697617930221925724995551479333130846001649298958220244175517115927131535662042559057490785201003483834570520379170890634695537520189927703568015221103449110256751077019931600996481485446974443951110400773371265586276448043658854380052518094957839781599695983437986581283067401345968703748944900226273579919890473993844556708933850093297353859540256439627351330148750694448282202852395517883999836180946071094782727305942682123141534675720524516914231829457124674033088412711319347554948986181721109093008722283521541085865224864719929766639942701081741069489689682666917521291836630441584019974057578653289193266703975576258964182723427140311468717636938068625488203774125188247668626144279454245085126251130004282906188213349093275449175155108841834145975359949882706314566057811805034559680338077435573693973852184594346463455278636704697882842724227331946407985286792941521111572687878329278687389505818362221564972169420486170598905255120942991038941597671589345473731876960221806880065543386396987657758903114631359485916421470805512031622116193056230091518709562346366353818667202730114101651253367109574469691666989302991824165718440003014305403699986979050465103243286151307152935477912455084120535481957611280408495693592919820390751880326044546334469144176273845915813909908791839082538637817595097868469234111722675418958494896639201592542993435091040159647711896836880197269796784852005813258883050069835201698571404509710362035080597998237253546462842150384932519557689122011644043090500236266341893869026619664367047415636020336786584821691263562587418104579545905358113998556953925785994897355675932299151219146479233240747284023425900789056820827854490542728994373985098888661426881591082055857493475208647415615855911226491015164197128609374850185117993714807826333582089412038504162117342422235335182315496136747264962523275597435116553116621707891463037890744493293487766882759733039348880870699914431053843346499862236143023803647327743428193989975903122092561037843657876578519418306498289341170103712597963351560192510327043534555362018373031201403796397098442190077224124023654937875377654579371652363873455891859479522997539937477072330717321404061370983211267482819779226128757233337487895196802777396660001170797272535881216911185771001707112170471336663833600618285198108729787648222509873089109142630510349258202924896444847485105252152140149670046376687027985564830191999436848565122858346436218271966068302695439457275225162934931323557013255045477507902212164959249288798245631598557298163535453945264498940928373838471630573057876076989014288948290756275890293507615921190778703473259355617810183520865412180556818308632612908610698365897426776171339477124981759502586703742309726710725901348359436341134346956099726133308058550097833256748871517557325751916590279582921027676262918545849544721594764068742070835300079121324671010862735758028925378568741273798792712877374911115598499655489528151757014329862474637196075469708930150645734180376066682237572632744490550897736474863908316340743959126524813881653635253653517327485891247534840243479222053287619332703623021982640493589889296847603985779075083017058039861214290946030812601773086433576270957080088117977242125630532901230946468047355583355614679176625016079231556835257964017923990300569254644351945392682634848129299978445228234007682432482589639957632026826714701722863181971902401316584156270540483540734721898897696990735460829607328985410536928599582279253863732953263081920500129411378200212086381679326691125586108706548823886108172804295168809705142952615424873461359915876835881683606418481635659463480707111216620196466083911027549600681058005816743951014497764686948637400876382642538900150790112900303429331319320652911740941431962366952854821109435487160835992809995509233875738984905624565627606676513550182884505055953686633039301730012723829930209397244543466073165445377649791903237756195170074554800593235437793561388390496817630534839727565395762186945379212990577523057034963902049548337285620913112572907660310632440645478942550076610578900788312328133242641302279502040423399261476121207892900366288876874506429667798848812099849895140359060725086502088643617754033269463590613433410593983728075920169526439391228954954449106865888570878131474314967455200706558738391643210574748647245417588899478706732983089600311748401547103185327865597470130249244277277390493973284243315841634115230867353276241855856107150476069853615094185164057893217103037612622454838729678768771016297152868448137043669238487548641711880895808539722095669689126616333287300781693002150614937132986610288490980881751474268114814605743157660509348413729371213860583762566691289463544445670544531154937216878019443896763688986089978253682088575975572973376671716920877893337282086350390599256324640974449419262043006220243363122510638319729588594802712570778273727602253191313085617462875625407918361728088161985281840821021103064504309071278406160457992152013058602232103991373586655123988722126084414502261948311056111875361151133015554384272793385300216645123962558595713042801851338729718603436431974612644129241750539080390643454820564298898959169901131976757527338454369095083919063660327662899289446125981888091534004055434941781597527426557549375804228738289145841694726713753538468559507351849270531212463442596642397259776576758439014109777981211523421081920954339949251630731568039019267998404253721086142214337882721353950192980144705436886906136217536740378777612165080919854896129187675028027500118250120494986711231650921257499130846659887777616051769148059809915943785852449496572032245291346908737857307930639519726062466038439607226794786166931562011888065744379860446321183080206337486836493998046598464428276736422524350453726695513985573897309079824118779927569621844834583953719549711219118785480211119308950916711598578790173697818628555285719713685499939435033273652567596039845918181463607285593761653124531847416862830156422961670925221454829560488602698013258790583137851195130117358674619204532629756981770892066380828082111812151038356625559086773407421450162870758579063315145150109696214950613102942958606428851006903921212054158336748131392833369405511863766725926907505077914851073251300160019609372724265224246078529338855900643076761692671598026597514112176205760993585266400721108078871178793204096324062814080167235778769130217375131559046387019509035302030267916646988333555699273675348024525282340578385865237957001995650875342799730216538826103250503377758621006163445266038327227880738679489555353211418954728906478548835271314818181973846733720160245399655809086049905485467110402511643801719926635212518840671207687577820509020629319471508439302953388188835192147066438534695858490054364122280174579044791582269075470043941568981326114121842081430067341987049503113788606320663991489022534503576175024364289056031770410768740432245180735675738077508455648620093359107993195069322193259713851288616997882059297237037974547532685295488950907693020765526493609822453654624336554029535633277545253833950818367655446267212031356050497127268183428724766965578189654900102621356884087583498151842349098616562169951780536590680950488607626283054613138284222542033898357064480896349108788890173269069838706415511124666681681907459139170041153930397544933878088983150008971445692309357096383634928133000292621140915347831553508662264837596327039579873331944801601834492227910034462685589369548328993616749496050743713265460008955226442324327694586887614278468084307977325889124660677310679878987527504246191701777980478598966866985554220806962427058548495912914321354510333429924730944039972673781486355436503406611331059105481331513169083862190191757595076515076931162154063437918791267714294546040429613178997074577048887650402448528205551177615197597772612818232183969738836281366653823385943819383014181292923015632994793252581465822292542479894404205345836031490442891420752383948409148705187796459720587321581143966875905322129907934877749792324225952651542213962435237006720134949811637677042444353061703763231325033576796422784104674218923792061942449799110648368771900774901424247567099517761223067873815267587261268692632010709473361907227235446629358971085368106764130066038673163825032547975845961620398157081390782416737114783869354589213047859674566032935476021214886611087685688565324621539653297851013196225295504509109381890673517286868606634076728444384137925357826954010066345914816510526422315099628899607876801140780272023886124877714559448935341060706519964168091203062200653567573332801132747653050500247540760546513554968105157453579111218839954186305198163837888565331299813058132949896058421614899585978375944826312424828436072509420063040615939958073345741761054375202540374484244991543435725244956568033613447814681591571700368316888224082737315543289566311103650667552882815876929339563293718473502069487021355052580994077847003262470572178432609748116824730791593190064725106122615500653893089193055776855514506632938250816304291326208759844176421129862251094294422942518896545511745950785897082478541753745349797944961471896946137740838101748543601057646702089982916453344638800473474823936056298288391780832703235149207091775619014106520757714218453769794877073140276307470339666010649898088546073379257905088201493320627745720657312049308591712002773731365477921425060794253812763890933482700899904943325129912361648582442731676051600296467467149904295078110751646524178463831401543751976444298568458192943862921543048654976782877242796979060296758055845150694401121514944076653045169134790913858336921719457227608873079245494041508127826399681354115421749068844113612882218524006871153448645443774821724161642019073449413614966382180123655895281077030518399718896966531124308622423302669049472238627093192884592986540494192363604821241768973888430182225161935933899341815684331833873451190082463448981626382016284490977841181900975953720502173813355772084840921196896797756472882210709933295784726817788594906706590420962966610580217140533420740881183964111367303261351516870788302213708187887997324891757383989025459144050978230794187449805400417475032613155640587670351182590200947691357341584066239719625185687739736161177955298948044655801898558315709108110530234821269600941788951304341682996348055314023220298206653601877524190443771919445378925111950048696671174222943449246964237135798651308014950268366100490370186406022482678899379578138126481066483094572672746406376015089569628361809941150093145215723363577541503388467096022374562869663475276260355475726703721780509781667915114212249410849979826263197899541934015405277088406871868756498455137903046820353105831859722465003118467440109229897204738444670659627330188878981743598702001264949798023732972047152780526697628442453052161581745834222240954992570221248741246811398411576298761781256822404515524222820607508818580187085948408035921721773733961668104709970062435753601514267901325611701030933028060313843521282063450989696682890924880572637872683468850877689152223332478546429736148536857286383891344279955074241368177144382547331691843717191729280132274269931109128543486038752109366052211939203141783444475945499769731474476287000772239541143546595008360356065115068104491679552854667732322819692959972330028543829027880626078575896211713750852615871707626700837798436116259672301091994306499617915461476169584579710404464160642121387317871549006616319777413671076140144865060464757098554755653803002650452746237413354566874712850720828749607632064305568355868666714470943119424432148164509416541774733422386863752739352258815038617528240907507950277982484123866160944518909016238276452702309724368843034548675837884147895985619834021512707049638674499558964541352855649922758602789956219062355262634782760927793804874185757834127350322078888929108827800190953421290901605179565136953069237084815782953802651344582472771719163945537000600725832578282843099137670920335898636489392296662161087904230471730215410562592960702631863922401505552588623509433570072061071204145114184685042609296407403593893401846829393256916286955462721670167035565013244422268545901241677086386630200669212375199180882886874482520733934811548721581670923596740042271103284330148364082546822713979698146416209804105125797157883627702215749027505126119142963835607898077026103441872410866409793209476109615138960331110578987717190909770934777545557644308933278987965793902095357992255948088564980760312236656230854011873715909862290309076175805400153823085525467442615484763240682128433020825286406329630632614357066458945389403228663836501939427184916618650467950956771338646965828877726514391088877273170215169459981041868062386947032211269186684054051761616430360286881686661607726769911952200646522786668779683027498384466775944870909528577704995144074866624938011559456601750793911119166459040308694548757234028446226131105211084115966521617878212713288394861806292541555547998039605525590296387447762476530771865969105569006622618012197981916101387339281023947305538682716774941499984883673450730940402995749222707005812332536625469477031222582912174676913368609299858329484443164449636618343125913321415261515029044876814051333677506750983898193169826476339401181079469759278387548990871018958158562886643144471220035163917133469266394116954409938089797855417463200400155950174675824942380673434046815409858673932537133396006085599114573160270313418792230691071698328122961942791917710688894375415378504707942622966985541679299186369521703665346102973774959368842371039066146710351741306131009080163345990486055493773282875973228683778228633780712368093844127203832701120834031913084206721694179441838472719648057838066751622535034767014692699337592130008682281271967277433193064684142727828397116479483167362888753941408082261030785529055777107024580969998863026076385237483014996060879653344269057959977898266064217360365961719130540651418121782032281818560209250134855173680738948677124639798404034519362014989898106441065468512308838645464135997979370858250897327440489437204600000817366260831565119172479730858113131201314116156361174970215177536298223641329916790655010912880785900890532156613948245982186268121277242422913917862920537261654598672741701914143888091306223729128162018967141254605579207915641645332563531751611098226094530892389096560574775538963860596053921666266042861206782226576477913912981407623821361626863826651125610628353974992680324070566651368812753973966906736517492146770189225338908201516313893157807471150531258241097470859298729160027085571281484632513089952921570606980413428043827019098953038397356179728350698577425000144443686337774650198787896274852164804021591217086619284697376380946372702022570962786479869603350374326089977729813360783291988473172985896312128886358257906574340003245313622528086857961750776844402375314533744929849682289766385995063488441688559314518977759796430688647152694676423082729658969967046570958947964429058967006874917306163821341311170757532139289539650719230239802773023852314538031693449841796807203429804874531831660869007345126439242642628153326675656942130115474452842935038783555920682950432445563211700692547359076360867875648957589033051095194689804752478627752337170739841130212421135212957954050817951056932041143315514667574437187484549035959516376724500725877904225842087527687379365151680162930224718484576571296034705844239594517372768684409089470741748468366031839229095711352961496722216801648931746395471456467832064966149328343496687752692022138358614252078945901669787895473913210245379660798111176431699251017683759733165346257361792186038417481817656643800975744822762953111620582508835253148879127596254905962083662064073104843387102588017813231832488208748481551247835260767849777096597059703708359318222118564172211036130009173115367960043417901666881570689321363875191894526422755113649436843546565941323916228472790780826956430451139739690219111865829428477248041952380035783187574775381615236265180118769183332884972214071952871589544291837801968310346715495419222079278661947564800703495244185240674615652348004231564461864502802743878452194596676120133967460683407259921918866566949873586556947911582208578885288493765779047641376434206737458220008287999455930991422359049264627842028391504911597706845211496793923546742075304782738348015441364464487516095049976493387725159113457065666128630470889671369309206348520481522922351627568807759008109480529871215781609177450586934681701225001568658181481302305773638407258144872840465857093436969371105192692854078559734887137001106563945152239425045998014469214051721502244346777165745311467545652465271905927194801372857196147002920597931200475174820454340634595974407449875511990032839329365297081698491640046722794873988587410511448688151786834345584145138650396090200465754798119886935276606344653732558024117707381120092974815678808163609777630649459877933116275975505939551376162322681863358348076053599045856830936814316130948791241498150237249993444591124686563365364924132069532111014638743436605172419152265668676554149685027028672132306028169954142144948282431644338096663061827799439335586528813045776545896920359900109093299691775978922177445552753855053267454328949236251331825504166771391693088680456278472355173945375832305131523973189373627872939730700637606372979209077310762380975103004115892480803585650465131818116665245912588941254546715642792682580653012959238272471494195055331645691860786676749257432132386660907071498639422971479328402225187069676546472815900294077566644007401559196158718814194092304651518287699036935128750248913610829306059718283310396063425368220733538158135170679270987407173721433361057397978629695429907325485306574521086501560574968490970834236905442283202881678546689207513149145263108496734675785616381045497148680188731953739010443051187854848732918206286801856306859169546901711501721622687236898998127888445718820453407721801028116548798943920884605289075004449833247350530559827481097879887046450322509120048805374961207420582190732251437267031643365042910153416550494305805269591459145836633675556162348220184583516770465218305078346429203894557321992511050608535240943146480877436565864033739957266651900844015554207864921266437884145800602996194271653511583146910335537308271340079203855629151865503989944882517958034810268899489655510391161259618633178412311280310809962544008758364908011082691510815608004351177220548551795518932476554164712836504610262696004503472139601604891209260606196999501804837488595172354102951026895118040518100252581802113929525913224488669811858859367203648678756473972887966338466111227461849508728331599217981275486034371564020628788333622813758019971962010466901823776704746928310071901812512035791213715084423268591192915331663675136956140446334194668446165738452538556945249431224312300758257972904806699975799300655377301162037796507029654088639104229585641183988822186122352675210954133176655487562649716940858908775195312136297840903647273823029312331777386665945536596149751171675568297973976992831664510405882573513532989893955068030354481823733203839042516789156901997355492062624456812552177517800965342001079214489062354282319572727346838246237547410793264047780660679888656606757313461210761115333891941893022098942052910092221876376823212862100188606260759872722573950390455944898871211867132709867101543060700766952474616343079827857781154232133548573292547650613461896751431850429446564861008578462435501108197816866396250747324746929988204294548775197855904371494174051299221097592384913687550181481915950998297669340081314429645362278671016237231096898973364158752176208271871981946736279724727812845036885859854542481693530454894042171317818347367402026428636174793777769868567693495195296167294584102194285729890825152920315701908728544004769889098400908252645735178768303501369314328044044034966720354530999129737784937161631037695772819441830085157199429252097479930674109434213447866390813735883934367715470330939120814600958064578473112761842634664074709762152632524744318088632425023544064623911339547890358610195188014701275235562028971687739735837672301517635809686056526592396850519148061053052346943097669052198248174068880946106770155878707818670042104033917945180942359251197079742206557655005963709629308170665293924949090190655347643564195033708024314977022841481133746569378165494143941252936619872217202543002465617031352242242031507331454251010935674434883799453124602774184709553149298648232957817987940632063350512632831933528950720432106069437249803798239202117399310433114416576001149956744400989445533017321841337287015573820881750934978130501249443255017266271125052613368257993351713211006809181948325280127965048998921270645866530599586891885586338082010159447327948003654916652546381080380084466669114457090476096211607376721558119314811341897076828759540115126582878542452327438360230016744462399651655014959778503537869095463403532878419027793047143408803317060030206671571431226152385060570496006647592149751732447748841049542083030391612748661167665144814636799552154488440054151784254754673819433589279544891348970190304524382630659970631142356530911675419458281756451217986454141593919728869843947610759621257542110129433872115057146002289663155166133432383931643032573192186068538228517516360305660924934955469020909065841933623079476618610743710764200283300096400372673707760030120840728012264216339671311725930710683007125570637501629057381369573404697121210974137157961150876243101788043995460185810738070634247512261485430354186853438228066735132890665632594462141051499575684951163012785113141170297586807977766230135366120958816915632460993108737686367424163411340888980704064289712330279752686095401270469166340916437135651393776158908613616948096597017878441241383431791825370255269237960827087535382148670073063972679096012493060364515452139086240988551521188094743383334318577020099884619325586940734940174183987195309249546520518512261884788074051211717579692537120587092882101853399679294703661900470549470274242727444493014281381683425563719553492231043775426819554566091195977510475752079732265818097281878487954234263278865388859028185222124430334380643939098135884400763241553655027382493538965937822003815375328072314014389153461162215546441923767975323316573684269164306320371860830227042439946038408983692135986653942331873919552936524801793265932979503478549961844111697761505369268092380831761569787677983970497987665535833445534029809442754273015243965176746679854115805523573171283689430601410044347882723252580519286688877666346063093883709407443089310192770289374654697199551127690474368256876171411249980431610180946575206180630894223771926026222565792969359114170727235797188225222666950032593372383675616131250293650945576669346541150490894851062439540729326879368011284424151627848562954135135879999636395568687188430812077218853684875766493434630574352663491835944598422036599799383458108231048058655566644518276946309010739177692838717115062375035812111275549694137022466447635883016993757264907546147531515315201555297745312046304349366067781058369303029711588000110864895550732619002191660818631814808290956551531860552373373944831413065745415876587507237275214082321521618550652726453168003319854506682596412190041270020637682649598250779075557844677570802807836180601577631071094296405009839687305285789671342475776537482512470626669720197792187364582517822102556403757438973870002054982458358513280807467626730259581341304463808442660474519747131170031128524390395200816671132449066998160014084370313417957767175429545085465796340865744132803158402185708165555357218888683435765652595441089703420000666002707226040838115856868580471881841862391361400303090418064871513645041439370453387224383094869406351384624845301545762538052051400100466395258175215475175276536475034294337756263399906779425549300143763861349368154650126768379776295028068339359763684160634138512325970990325112318474444655683933238720749360969787644662450541056921600194042364001350214449511789244803246498016284720073246851777303094433549697843864042379705303683301433275867036466602702563368560575348293877804473969797047356918682751325562688064115838680410214238017110304090793594534682662674550599695477039074646019850247896822779901664967333303888806877403991683191334114350969369884150632338985002115626789845878620431755340204964630500280391307421505963843431603719511614640576136616374966913341617675796658479666385521511119345576867601126368321825665819772253888869138247153587241997676595665840701808942764747070875516591812118052489119915454986672213287626742785541160887640017876229916869998323958324110010946931218724066247073072736692092717323420258995150306327644191917758558342183627062679668976935309173594438358646644429548465560310978038418624164767238633669822471868157934164351116399779627702636073861348979385712191154881616784661472355814797969384153270075257791858318695489063283741969590385300470277262666178236877440070294394742237947071965728452180494790593089753111201483169611699639200729786047853556749162933699488966057932075708539443538710984268344320511438187593694660377033378329998029125202530956285566469289798774112082724304587253913219691073882281829973263728573067073554850917806177447247808093365160246133250111358955803491961527415221088884261082058282264726686442848671419967706817995702474928268661662736423526145532493679913691525534474184933362746306726673618435155709446500163444680637978731371317469304179096318868604337375645401494828211342805353889059345304314934042465035751978502449061103761229481142623950283822723624525167305846746836902865986875526782035724384778917550672291737859112828081623192870852542959376411286092368660836731266323472284841289226783431041555152618765864536993327797558709626210816743888750004088572146527098762773223504053031716398311464141485323794670557396350894491711561525440911826904318114400877972210625777583918441059604878670806189446233903930281903744049428199350413064826754084152134756575643055894108311104371088098832115605910247448231284114997371265630336373065541435763178945632140356284643105392441945573188426807232765622154358603798604997328904655960931631173069809248705365614680419566211245916226253650797042192844537345386478632204070297314239058910201521268760839765052214116148047060431121117421783159420422620478615411112004490717516354700401753282207743783583666158207069230250454207149003332660499028334770457980882138592838902747881619239994151254655880580736217396533823968839572722385566931176939504638992472540487579414717583553585114198605366484637289545662431119101537653895584505024759791207675773972982430543158753181340163080787643699935509278971764801345976540917364857648950602396501849947273944932095729137006395844079737742878282160144299372892802301194863707273267489109518441043249974012216079126239378954970074957542260496867169076638400633193869565889174176896379765278311072008241666796675146484673206515519857134191038916834035754761132554419554239436740965676608612997436582906518873892522602122251948508766152988975688222527592131836542922088971830058926667021155437484230184680213823939018614176255635935591315449620329639206360823984227752580597295053043184453022509450518298153840936887515101981933419114707541832149117319113848457559372269767821519257601039988127974369910226089330005179673971436990205344472298823358726246999942187273991886562477074443489811665601730002114369905450752799895703828130923839341657128650704536828983678176719281869785370786382022233044123480404161728593333354679806212251940296994121078126251684206119200911898841289744315675000258129403904435295528802909989311306652908646133554272202377284899636787456254961246070497148130724502839939210141549796531710724027795065752344967662847058466729436019862680169497514728867953551098324119320346020273760338287402798203344508729298255138610762015259326933724024733580226917546543204204066595612393791554616986928702985675306757238404788286245498005053319651852460452698117708330664910937761076985704497123830761964395147816330317426565372347089146677587544845619647584943653379435142670803147788668131946886311561583694965232021506086531932130167902113847019524906740997359613448207565572285890788445368037920248120827272546642014604153329025468123373145719929602552369907590526067693284613002407867997277022003843656747651010519747040363595742942190216006779625431243646017706224130583563919346090921740089941942018490831285390074668775439373385907439201199702795872336975078426799523160797820700857292656009307672923529399900436819696238860827154584905097719307350829201915992604086907217185636158913750896583382691077463233744876643018406578456355727321279698750450647931499064330151940250546073158518273239565252060331866184391173601668027338071186973238590586537660779007499849092565539574710874673803889901782545907468909989149665997072558062555552365983852749931171555126233710765731011941971811734737766552936469551698997664997593774198924722146398700028955338255997219092969107257483688574484161252334942912088537027300314818749627481395124958095266683657573398892497550576048199290395894280874699444081654210807801027823106366400246346113517495251247180329382438834163705011855666328066172007429130204833815400874833621688416893770699495034958327864131769010804678561281953919304122886046296690083425992579188521169137237661126473077257689744645054860491623489365347081589384123065061897317274160188828318012007241878883466256715026736117910357692884765354590545318481911222734127396833875448193441428667487021534119287467386345155031251136565681931040931083601357477154904173425769423578538583493421973439143820274726693029176647339491806902665247186250908596373493058669458321778037681073442497444048203709965020229249734673519842823475426575699571812234536192502185457107188408853925506304963447427857087588893600531471181536161184678335262370092304352127660403745749825121973135367520805360760681600849183653515175240174222544588653027816963863445088491010928630395978803874814702995364540944607327745666153951782597240548038144515947469752794658444183879622847812616461957163432668625457817462146704583448496657451657561571058923199706371734771733889863406401520800963034397984195706592377460513259315116466057030894737501716123899468704703969985388834382151134034809251369538072326859354167975032126614713318546253432041350032284791689105713436181803333925620771315392775082752275083906153423568549736060358844634082298110086961431517078615742705048759122832662900485639642927370619600313831163006636595549206853169546909938842657859169934773369801229914530712538155876396539204574088147206807672196931708210135650534622864202025807370458104797585462464054424455964292550062359048165381120457080286699744165733611790659049505832894035151924064571787634114354870119664030387344309267985276077063520562355524579034607672919413428211707990000773523845769366659691071854427419192314777045424629690453191414263403643814807850081431485171533509582481343683673382093514952705691500384085135822782806271439580176670313798070400029313904713411481051407196554445294943760186446353482621534369622946280688475221820605946402010541004254989941694464218274728610683841356321944237230507194041550139595094245538771873923087876712218055547605711222633087899445255634048745000345297181989956418586073285366875500839044996620861793377047065552600182903583171061615882764625917083371184533944099659872453583763671512914912161804886102847234345745755149447751766810451634899302324757630023266214309979446214103100683883519038347034451917826936357602410284142147054594547391745223229118610551831463527791971676674244653647611778167376343221133724530514529248739479254732493734121936069374005863482977186767229803086500598882482706448385130452238917869912070527837124976383838284595602156871124536123100940464507416369627745889300736864709138521235248796880610239528535849974915786016276035035251933665242069715628311956060090296348041513945724902159102918553173802296282250095680423507138932050819627289842790338586565407437527950872910571745405603342127937658851267987335355809485750319429762115641382650150806249336817028089224228105307235472154705905516205859258067916469443890037727339991720059725435012021950711276887570572588728243831346131211372348786962967063614975638940267593135652343649052794651291959829589425202972103082160800420572104150137740595484130429929284495099561118961304140662485043488378633054040283201488389307588053361114012403802044037331252862515765551709893214044282470413320293287530444525626616801599234132526432034942709354415602341726454828219205055484634903599463253703596163192493122013891928056281720966649352951186637590174908460514213840713112487986944037617589843993110742590154427551913275744150717810143765488600057557046048383383638897118076457271046124270094243481470454080049781749760053745198129677513220459146427691815502182059580616904366551095861739432994777998912571615546115397801821052057218830373659106121847895504386576193172000068933070621081325232526063579928453762362104811327088805657824093153088025341620398635607714138466204442283257570495235711628042896146683431258825876052886622705632890194730385938782152284292120586346489073517686082738160796685582668934838295660292842925115072527624736641458474460908147317251200786313784921879992327378032763060777973250548255734919206948592198212347163016360360379380747033609978815260564157891032820320908295758300708921274537972696193381676034901867464594721004634752531904949011395432911584274262690348214204025126829210417634677273649629413915116629971684595174288653064066673562662048286978886512431547685710198317807315431965164936014251545377293583383238131428965959240821373086291690340264038727412942568763990821593855218955918637208633773343977486245706009866791924014144476022150252620254125362805096674728988713388142136688724873970972862130552325572360517671904469558085079223275993901947955551136256583566514731096755598308519872389786320881741207078802975716254326307087229155995605093324196553941074208754706201295179454546741145939608333292863308015474071295718983258749533262321683626058317045532066814859064124304966531793401681499054412606417470781034711040353471626118886183305330996875250880723751049195889906285585570996201689634397995073822936472036654140301344216774256226240699509726788784870955663200855486093824492491015515380168677612382405210705502234713816503435079175843250758475679820078887828999486753759860394184836050612640983044921192616985734425101166843719677103939052412855050358836607505783197909763949948612067414500250424562281053860956350885397391493155152311934237779272061376356078835488241646414563652775085766206351793338597614716878466872766354765843914307756095338455509042859989393428904577845353289444163509047376724656949271006964286656193611464633032391653576571705533803820230867929719026611398859724875641974595022898307217862020179833492962008496614962286522734957495589247148533658184991147896159440621540863508955186884644898811391012486865602489656783846100183428058301825067202692966327183480862869993633141071798391046435646867485330839454626013068831605037582678842797033309182547575959251383222210262875253345524418093017408075634782362281240924237024109297923384839895608086453399302424436165149739099774843521831681833635018350857163169407196597958595914599085451453127437985257833174457912421527403147250332786681599990183951703694966462082620324843236492331055805236108995069227109328148445457238532419383486835969932791700805878778250381651726608600754287581286327161271735832426261139713128684287008479106829336628666295183028077949435590367671894688691960893890047224456096867540412305657097201608354534599000950756847079023661956006324244081668154873156093245757394908851618956900145907180538612826213130858108603837311560187647301842265954505636176326366324288917387488050578430163369195864954585911830343686723516561303289596986775790927535872642856851968635341700367506695053304613108560530196530398536245789775160044629513919332767504779127850178071000860476427229427678615237603408867959415378900018774488021911763187606943397041004598643789777283733531894474392980067627619035502362391967488776018995904346554469617216174714625274931160860281217262871500038597851529253072046089870494146465514252512355196875373376155660535770067677544975413154441582605274980229540560278929887520082819347808539061287032795372629864407097599758734424582941886770290565768615891124175292385474881049185246435428271778145510635442241644120850233127561989342560029991836992023840988749809954835683798648736801561316262146329044409878241119407043347200429501255418320397344910920599745429951122925170265858882836647908523431577322061795237467058838693842680060436645829532578212313954030493638903173623919715108320442955653594270662726126905643943744855734939516600769208613415003007391335125627563358873699221523474764735606832734556435650653385303287789220700428168057085693550895965548806221671869087248269567200102669207118872405871102085435358408148648294537815809347308510866486662905601091166947087829756869683338767715805022060368002977950007849529589491346570129431677122895744266359006521076994171698307602800904760561612085515409989755988531169239715404896959480191183975125137093478848676791234388580696064620749500136856903443333143503184284374970453286517836151165343457679213931044112032243418128377066976276249758363067029049335340499801639585904882810996335213269121892065373460617389905483532534683306337916335854438385007651278557014121244578560659527050703269646468251971260322472496759596176028823322627924032164874954917445596182921690210456478813327582998363292260203487658104570796780293430920725582789050275075521483952100289539935079579590653809120285588915365070606148556608916786799968126380328726597410817860011585349018605531010297156731397383241372169496395270071565600678373441484438856495567681450865568333401814392482428788843288304912593378403410227412779391043768233794815894102833072801036518577413655046042624947285718933592786918650223737170978352065640342899668663607192547070052095621169587588536439864163787442812475862577212567297489930902490238562032237292119746981904297155721033262566878276189971690536105028118057011918802361247828392447030439718106346460989855361849863607428048389905475273831289460377368959244894242697507868159179195365032084967920498872353198614986895138419883827195025068411482729129660614085149951604549261826360491569408631294722837694617522349908065950898661418531696315521426021034418540460773898307054397764994888392724326800289557780551145642179159179993846584374445806183755329642276438797031157121233007459488494752766023629687481046356128841937892668958242292072735064024644627942028741248846049731843327216002546016786114749043276437497722755118487971254114841606728048868380183297191428032117175563673688725473609932009583674228875869862174498679076846036895582409561910472291849097858586292325170617751804909142258337110676211603484120986574843879162823074630024087569584024977802036832309038963796247256504370087094982040159087839527237362925777838190946386321021938358703709307238987482755766542457816180238668559726188442197104023037152207783806812591031796209962620609021472500262397982988529393680772808630969500545359387051767755072698212731023148006232016193617198624388385643852228948238488057560892139921695473605171313594543464797514958968824179824717966034571096806835501099847792777037404288281994478183147570817527314555389213511790417367552716083178469459855628286168611196077289944405371699042904884321654512774994015880487155632150719757019586872927336411425764866207666545961671535244187046032033194363646944493030232634836653082975940382196171442913419609345075390128691412385669272221420907398393838334164967519709521091826879918297692983943083979553651473753261512427911446789015770128502467324929588215376944735489002667526953356663583939190579168840907719785569876358690537971187591937658550983033911643224866878745429684036203593683567905950591709786454953376999822272338304617085364322174955623002475393672160641850847703212282544878446907561182520307685782030317212105402539635308999119152400485124209825472600153177778019980388447222849363399521761982953673291260938841392196709507067546248491985552122807929033093499237625857822025656280811992459281958172174107525077212839002956136891035099453098055487460659731001120252069537456259918762706205401373899963377334580901358406112921564871876557850868864098057736182995640008021929681671566111694708556873774180160423230125381107392442382935159673940750851088591723684550103218415068633441368721054115794956038636744635013034926171933286013525777814682647740382336458337473928932237574052932593733391881867694919991424657340079855513325464041703295947989231551239375856772151667940277023249870999476939810074043968579467464712355661495602385048518688052836921667642160661104613451239204840808274665751219763635644826782518501329369100409245794779709891824053517875204356620773031047612463369830476600502178008524431398404515197766635637149984293955628116247791950122409631829784675580266534147557729153506633623197024731203533820951023044829515053219272484984587465196366067783693479903980056587257981650550178806333002162619426146960790549233951601598018773032596850205045716558466769676502363254895414927351484302719528360211333988213643301531123568106981866018313746836250613314570475237808202465911841840974717137961031542769181620689046920075637395916374641042375985625876741839881465980185399882100750044851194430390136290740595057413125699719894365333264310280843763808112428973561126773403341268127919695977561028446393926904729354998650859615361128126034608441612209764654740432788569222770183233978979837956348477801509415906098639945456768922945312557015000124211815914682375956129377901789417887538632274769276467574642881867220428927281861527910400798128428381981762480541184904556826700162669773408682164288184741903270950674519122580201549527726603883729992548414219157597320874002391527295130002153034113509776388876586500308765197480056027561667374925052257413514295798797396563545330135436910517132762011895362970461711820356527706722303148861916404924508013839715792921792220455072456737515441192509951838273942360011279574613232755530783355567504869625894490466606686787037052602365342468553446382689512693235387797295182836026871772801577123579541875517852861862225592612629365517690280871188701147819444561892044849296922331320363768974355376702021975524906464379351544892550056373378715086171879216563264040951896315938990956801131694152957533625532996305501062803494720857937252490372565604687629483798252521754202921967339895613960125997144579851402552995648444417226885973345869073313903214095762859292079894396963890701418896605448827284002351511598015373330592302032683518529272826758656789300082221317616919105513452822211760898737648833963576924339600297171054734623751989302120943608563794062814201511320651822165841744711155708064405199519306121181207915533018605428232596295983654078865061564715673502126103763376707642666159325873151874106733992534393619622877670234091317372104757658117080635062192351351881905049783453146782305493283500078980486425041537037439383600030267980574197453169134684420687289653140455255364133557110009693870762124740527803980556012846481332418385417100853685297043175474145416432358939348856365462777219590233334942263599103759828805828470415390392131808627996805801707693355128861498777542724097867201181223199497048700849555285991674512738484267401206096328251910165042379541219019514796877352652946751904358967152957502842526402637441864083280417764761405234071524255154728684207239436227472343778832908435032711955311545278193236366104955435750057132047676269326429882797511168407684335237243906335414961346291776364785444085293169776602026351422916454381115142186625952950046504832958691317365961994819602933700319875179507899021567635483541011446324647151548552648667586383498111824378119611783947442941759800009882249583290297484751990934007246660047228267543772045790499988143828617434818106826516971171612566532588806968489944793462320394800010377546406378803475273148018070355204126994411924891963475369505732750322684509825422668511732951472014566106224195767579461208326130053816457219991665009196208881508538540064864251842244244594540955677446827009226299623604113967658488143330744861791091655257323237724296351735574733512147702615894646066829702970809140407557366947042769704169362076914435302657672614785521374804294918943614769227616835135154624477971194165054205523876187157762737601973864446138294797663214164017633771253330363811012247744933088885088463784219892183966925750671683939167821979293155567695524253116069912848055761764843931964889233048442095788496325190923857886667770848297000620611213678864023133648392730880907992616369174329704186409829789552445563348161445820816329198148041481503747225886137246034658989228629307988841220333487430795427602650233319263565022632584841638726996881138465391812985791387135800638889739292679513323863465133118732987082151972622510526331810456911788683082335811554857860101106445102456544155376777504048032923693174927547122501875106354092377665442935159658860248292723343846978829027316708569710587833537452103726338213596669837703285087236102640212048555068127410168165058962583824200661185108060738267927511924043689262505332520856967007760929144167260341690948890996880926658120903561825204276643337750033756286371361495302804146594684697755972106571084390140322490918046893530768465059552583490372171240512062269661674342065004368557389214067409444772597504395204678992201392764383962991949233573524304516508898776181480299041981651838120888982979285857027418768516011440260593493515156089988770132119243117514789934837651100669301948668104406553169627884227416035468720090366325173644043668112941601928780591062197062784368126298599674353950454060733120862743793796982121710132422585232064358517872479486874655768540255824107848795654006594649221965709225791876140119169391237829924229700774829534042842280117727227951208185704933141588601245905295538902520513825941736178584148690067786814948785839284981435965583601584865448952834011999881444302207182891360373737893812238543060043370206780212216889533519059276596081641763825009592006465688631998854418142042554241174154278024503628107549751289598618795189986833505394846446969495139656923859844846680105487523755888626004786644928735754484636789670580618761591106526328350387503174038207380632935763608250654633513475006814712026364331732253122915707366252523948108908377664884879097378746730737893251625379805899645783058966339272092831835736242366587159779690216219988941509248348646805997046420150310975993972259988915486636709417270565280087932466200562898300713406585051163317413708015313633357840421087399236742389046229262230641532298909000891202470400995744032435881364480617632064898667973626691145052177502061270040713708232746155196209949539789714686587258408558404998729458635689470869059660118885681069837846529052334383875773163627620472982798616591738493468643320411532848201205160637449185407656744907417706934671288498546482409366068135268867510958096599860254157550478753982508250775993406565904204464130991036274567046341676829214281235156712486428900821391264538748604975073867408871015308324093122303444652923819749264828346010073893526946492784595098266539653813704457035513240581849726601607746630563672991636686873543832560460045541610298044916382826383298637776738909465168109001010167746952076172249188866864636238020202708108887623773193776070220534182656572041014554396645498003030569215641671225904618185361666013315918845854008610789692460884506519578638413626222126252363076892765162858960995440646899355817010838540534094817725483796949319515799888722571286224746045176579134639695061584820371262825741189440289718576605042599791386895876816244457153464757967873230524736242356767367166295851516305400893400101915662439637051751470613143729898331114245781540524106152043385693647891442055754536272164761895286126351758757240844698127748935992663948703739436488576997694841584168440458339378314648360707047700848849164050090292577040716554637181171773203962582296669324751534579044732190751551531732279225757553729670288285372212437043107513477760751156243572333405439330624532776571197073391188023949566533782230949861722701577421646817195206988311374922986871478073234584980188585130215608037630879220035734209268431501091285562260473552355135120101769175202813616272629542446435312485701689726376701086328024797382555617932891719802109159272958611953253624399915847399310925826708106131286557716899297050919284596991867009874190132232818046432548980490117158462707178944356994475503258615238963740126368849303334059191654076666047219689083752805521960395275940648568718619922337512915092857373257380423342122510544389151720209775607771653764445238700306206615974930622043184421168053996129119114677632526200980281468355574524220602015580830343342736278474896615982920019494155586637197020449460268052197602974790450691560818839543853200955715418482496898552669606939899975626544881621553104382089289592932824919058559381604380078975823699189427015080401321910269479991780697540548184307999310044593609991714206517495035669897343580323377898813915245335960534767634054631117038954198272666493639369885378754499477014520614604613309744494236911819192700242926432686024121047120394095868683711174712877981613718535075085826522157310243453943774070766780830626162935778163639230293788206839805465611285814736235599299375259548229407087997687104577987602567527020600246028052865740547734160335815197018105444731745096916658449021978092745934740053351140989514092193856172329834124353701873064984382176669276438467545062380004079799661438599057442951499231388907143478956829517419133928035060067641299492470187642099626768538271111574067915789980380374610957685818397728310897773395219151910902194641319444800155598003068879769990567722828082885802415592142783278011044436412673529120246050293917190943421891930950277898470936276391646228589945332268903580789049240415363872297252463301879630404005587619903963271492591222674494901918521830835916606749628641334220356200850166076144243739954135958271588662369589813551169288805431037504324063690507343000413306730873374765604169267951828875842835244443116471918658196820283313264002666099967892743728038215259813012098878711264377851664629016841986900896383357635155531025258690061915520800545648710667328552534543395338689547780461201737905861269342532947207832440061572221473860299240461817800676764169654993621891364258994557828325483210609336131744424375733718948070926262818321460901884482325643564865082300172402698565606396817951585150329642597919935470415011506776547117805419977434439507778266630773636082609595458431763868834237647526816529555891810693133952097291106868376957959016578580400332918661426619833454276299646754907632181393874413829772967729560915602183523407206433545675758107836100856588496367955660839034556208593604920486732659850997948500336264352064336189105256996094848170970047416246472640941276654400563665248733329966529594751319504253335016321045201915513308554710752448187124575233636018613868882568911673047379269543357407918854106745255768941502181116300265968038304882498832299984451667384185968952200531657235567120409907944987779326422510035674312162503087052165716129134323479828894279575905147580689650112739622550504245599166127057567750043572660896545853605971984305884573275662516002292118387098849497867281290473538695028693421078914095864271997637176351673267279862528453598453173330025941081718675448446905587179181024546251841311718993911281642439617876060017388322812718390484731784391772011431791992368011507676182518616605752765843633833451795829750525252311994938146907953915871936327872304328299483557805199495929804055162808240069709871105457189769220128687592401230714860884280100606802281655512621029010914829864979610582866391768841261521908642281797307412748099295743635886980690080718195492172627368041047107880091520688380813410193182029399349577279739938507393341946292081605588039623307878520293920583686202466563187299910965671558343698504903722052214450761794931428107721895321414927505965736677748846675423930125650632672455575385944885105112496943723682067731728991565873112369066198823953953477694498666686446711867924729827347244436056260646227489929289349674647565907256608502634896137405160718368298405983265411919425742761590857618375781591114420417724645012793545772548283379470913787389896103642591672486830567842881193935793565598145797795976846563170122676499340616115747578450336429469159032264583274551074449228767565256427502890708558639852578836481356046600306988285484340184510199077042966798909641568326400999724793698603552486153499334970268110505869941171060815863941274639350554547116042341552734945959696776559770513996711157340993708819719072590955554023169761318746349199705232836141495049057763579694779315114352368119298348063952861264032946708758156627609257560544040443302277145766455518429091093001134364630963444879435073989994764839282476182079828281095864439679937802522578034043871898672652481447470492133025790456530228892176637540169162598547915497620168590638615789671506128292305038339572679349309811832596577784590611107450122328221520985024144955505014452459734325370617361793559879856822980665048638818247363119844862589344124424570163739120762854091223176712683472009977110784615244112343079029467140459650512908250796383512572391391730517002595380686975282428202037403943889400628306625596654600770517060227101664100754955664312778813638818434091962098223912309328504492942320623418151764932937288876126627984835139221209598255372719964531575961761282410049874694369502606501620266136708352365869194527419530420235291282307090575949990255660856271693295841709352670077074352157492284617208223435767706143681406514339488592510553433515565742481791485522387318028201802268204045218686310394349095933526834026224633281482529313300384970180232358089011943265068950561341886403503808968493246224898946138666133991179033690379253962770409808413747961019628870591862721161182017027616707409231232054969873139814642905881299458393218843807984525911821702443571037474058388173952781964119445788175197360800891155141928150872089576689154330595401787810191897698540441775946131306414143526569220354417230517976750077211861598808622273516614646230945616769169135896484161826958574440504110107625299423182727110047897559458649366318433462590047861983409992796120018529843224820444601082444288297110105551424573862280481759706314730796354131912934953791758101566260433670513055631419618084919139949171787136872317093496087022817257130961639432521799204929930140860790573282791569621222219110023466082366066215822266206265928125643950267527686391834299228244563428914792275245396325049732954638511042592187217783187207223757246240967364854084023215549908424407033923282083203561501921629170127284793174789425890650429276443138702712596127050194119057101608518447760682118004336793878317790198489876189468921117137304610298530938002048195975843117235747492343524070569987106136982981599686019009257603000300507779926445188352007413106694117086045352098451650626824575088566385215791933702705393393512743826872284134389570124346168175600097047888173634186003903992994765504019632707500895793479350365428022288058766783840977104768807840729061159433085656990979286810503441331606466151700428629691012642183194385290593951003742684677064990115778525808424881969822266995338762987178352495132386234540329440178091751701464716043808425819865210481636547112830614235283841729529760066875246826547767440325468855519331395558248311225633937613620382247574331983745614442606521210307555877863022060712587525779805649867786595175157024385968637987593009770599525887062965395706362978365188701511526683795553987489883424981948548478201429800326289741432070727220049088552875089097432374986610612438127850942331567674756215066278523422087065187861578343039482636551728580950366528944246422547186494951502094056455682981914879973027270087721282475889329683181343678563028685324738198685136152475836338939471401780306330957062104500422452753117782106481949793593666621070170535186124876499746270347623452934884720749672042429004198527801394831410942362912184617103137128282955095922735069963749126811237768725562408292509167395888593292005917158081451069217537860742363483968823071494276969171598947775025783359045922055345677562221469086455660772341994899763463145347565815679398068263774143684637203086667714699901233503593629249999403241961419245567590564720412067446846580858901118328990044594867847156546886824008905602213433235578585954475461910412839608199117347291235914841458481317301312380777789116558038188607919567510874141123695173826489933452665164383580728271986305390501735633822602251708409711159154792212093238070907532551537363762512078504519886793362294564857847025039714421766932976268849418106884440746765532496721541552968362005355049038569152031041971195135676854990431720028742965306805296113957132874225356773323290753181752517213214596198135982634541094002487483005346408713849567312104542547575858367392382399260980116964749174275872624666255857968604924444805968144555791560828592463700055376875193083596230324692169391862892604813717553668447351220336191879059074860628421919853684624775922230625633224146390662972577480192865173947645313979554993872317090369088830040218452651969794616652591484139366439444148011523754962141308184054186437433757211299492558026329611655085397347451615698380030618314314069591988304494935015711783275699043879483655082766314392895897754883743791834965942190720669279879467625227596012143172509791438184875010518395904805647030556645993886664223572336370045433621694529100019645399424043210015577871485132320681050592711367616916299173745780431833030549537487177090941611045515867804761476889116366445474658024135960176614733505718708801276594537283320838819701115383478154014910260212152790030966943023494809464193882899133350508266436906673750038282259662411751937169141200869445330824568829855460705293533135421603713589413479529468788585373614797102063341035011866472119670539254632619258562248134341759214844477925865253136158026324428249694540353535871881014888308937304258420991025325390053833897263008171164122647779550974361616696705659005298876975909957677081955033713166789696759252948429176053499615881861211651072420637318641848599947848777552975339303165333206072478277431917166908689582335407981957124708986689971274183922089350079575185227339961080145637537762694987772380896514576380681626746698582818341582001706113430066785657266920176220074422209436007602631022931314056635724427381285424418720528228845516711807908781510148597885633535846169448417458777079972604008399464536019423346940524544661061080141271344566613623961669650401748237271450549549415401093608644249471606520733445935440267433213487137381553454893028889232228882219503295630708057330361227782800438084966902798523712975669930477621678312419142161037974599847747962424619405812230435462349234608541040464469735346408299501385106098428480282322826075603593159983826020553995879611046337570885780699105196604850242623134599414772848354157245601512534397585890535761384450499029086827457028701824540616187715756190081945057159438544106949247122988067379162625892347225166494425045443716501758186835530722138958422292815662911555887650032296275466115808571685142165726461443859846091828085094075949041273100447583858997449440881414906112264904843833185699226904881089285557564840242472706535755063164791850361701096006745302601405200893377669015484367968133414141345076307722742636055115887462256443307182947433706922332650310899152426024082212540307746661618166061208740231490779351534782215784076467322355115013208747855609893309714282768833490816256529322983045710304486587293738053459810020356578945703441629098640473349277808419861342996429013322619577131160883945059750512690398986203607829883015433491662345050822098714172127213027437039914922407449644956477461295017263383530412454276504274008999824408773054959409340016367670740883051910604974813673515282808648406076141033981530365371659368116030204866053442094779118837988198828197559557311420946849089252622013534180162273173606609670580115911477458197800760531229712074520370729957837159176506958529131152716774914138340626283550054746325618351106419378436734985907106591222758873183094994579119717867750504950659692569773277409255735853284162281505549245324494439749025428578501335069195862585097369897624203006846470006846554229248734658661003284415469473909361413297575699789025367241503776267321798798687603314976297323583926356994398868902090777793348044624677913785426009552598805465834361766347837430494380343392354730430384623730433777638055218224569288465069479067623546949581889921678431707787140613997252869441575728328550452946683847547302784935818334689321215887930140406854242656692771764556353610328784883270734756290253857183597288323078707025450939686827492601630523436332342246396482886042893117701290630020693332091567950490615496088371682243151283242870821126234025219844423602122563155814025724245620434469444877415136658354093616383767312661306129598407478172619563813689396062713780338011120452465654416296634158802895725557092998936217416445550824323805835984796341286704674709931969564910372320722795971461223125013414806081456936077840088264309857403146304531281660100339404362010897910432794511241612386501347958294531134795287754212629445111133838816128181843339713768985857695549837996753637251755638496199086820631985384494913842693713121285112275877333203295371870367032191321298350933158900406681639132057509595576105037836301164734359901046006548064824992813192649339551614058844855339116295854334089179541648826328319629547708616014674803001927184937683772282714133244166666187149214898153487641156073599474340032490119294528853269163347999570560283123667163292754861629175555538665395483234098209310994233480383806417355059832485833288648122717769777195063648364399708374338630976441763250740405033564278674342170332309233687777271613134818918320030842049943808302147607366015467884842269942584588504955514859920238858158537294041315914861627058454331631990332532975096775062176304315616576677933174592394384208414089359895208486174606948903598848870729070469302707838736164293729717678447920560223435563071090406428175117285785677726493074400981908212580376815857769833444831316951041973979751814998845227012973816829286151056781511647327002501092657495267870655235993288626499513157367468387750376526555697379960821516556926057846311239214948607650516905167076032090705627420075892417920726644542338235090659479958258613087117582517144639152066821777850791179432246663930707848360394601502217179753242034936230342838376011438699653532923260832014510962855834758490811400892968545517930165262798050383775576898634605684787891784102143706451970071988045046226413135555996332279040768122899804661483058531564451759013785123252173110247769333785965831236436005413122125361086075088772686383443998897979590992607727071561998940478293381622481040689310520349093262852969377654822433830861975689373481941398104809037626346591303450354630437549229524825540292453612514052693397341525052400518613342349602792724948310479547614733988181216757728429198717106040787977041237684150423965861996642058468223511336388955975093551998248761793654486244957961019124084774745035710470551840971110204470698897430229657338949411567928676205816205315009221619513729456237003552979734271334286985003421752700227178344111608018583459235349646392504899367679599527606164851525980458629445792711293467756093833080725737583303975364180241604041990044465869532946292662375508374134465830023695282868332566663537822829213852198223008020926342116687266467426150836004348418825391617706423751726430684339849219325212876062597510303599513307103542239181649753028250320396001865883500241597029787923036842632379015316747771992401950821625315624273333456949354998366879404963110301968514972274898842938695280305885027609336357608410326411690629003765177898871737750844060163764306042248825850387667050054210948166394797594601647176719159638613914009028129666852351079799073980741827689144531844078206952989791349695554464962297929850654962981465703684259478905396953700029653294700970157660483865222492552814589094303614428285035031582187537889989663324699992842321583961174289953903894359442766809080588922150921542019623902864393283390986708297585386360937495789912999827775635957994093681758426638570231893082737775461050785595452983759153773644189453449294875479809192495838451387106609186531252775748082560392225763928666908837077489219587513624466248142601862279075736942215643025825734072267749336916577344599621175521073838019242034487437386753496417063745332808169491157520253493732782039797983753061932026857591195918360591782194515928195658929650130763800518649433054795740135975003355267906949565877083990445695753743914738511809076620172313462965520511250964807944821174764046415232393070283274573754152614283506914075122366846491489044881710855243876942356216059408441945973015101083673853887150940708177506899436113657278100694258419919563923939531352572054192875321002163650473803061146108198960512255674294006201889643224613383880551728913893452106724517884863569190878070956807796634998164337335574119059097356240227314525289437917625483334967800023026932346066840807317680081344964687868720365643396454308769056731638061398137333029903936318678370391973431542917295965506261733393478558905186007911360299976396762719880939528216728559977555657788123913441390054612375060027233624229606984201450097421141700424291674267013799967101773788235972096484128148420944313087232636769773543246592704636627739020699651720249823569634386613036599406404898764503858098144776229624561269769606354381807080813711669336283126431817883376365111254739250754498474585767401491110482759363665759865679630446676960926941720116272818861169311765713680746375624400877833163748748495591491397601275948207249490600663664854229051269296625777329576788621487241647462485062605467192657460330735031870201095326045846710415460074273426261118548380743745805047290082498446928779625902930943482462951199736308232038990147125314769449734554869467317604046439939811104799835563487124902139087102892210127035385599186822630983532570796506841827554720257141974029498403615817869338953071490466778801290751447491423315139894701203837706536441620628513302282490697127123697990967445285876809631143743251808367967665510498100321244573743913006747360848194607263598401225892575965418960312940235924880346339425236744462301648340538227475083090901705721029655499422575529022439502550468383586443548117478435204780394527456953968384738020112175187878706065637239030985606806863342052020733481152968377471706153240614771180499824524896193026976273928777268833273918553849542119989859953917957576011983574637730398614274774766794574313776593792221333173273521041307650192084042180874526358326410880554414126370861523055787598437918888686343254236844663699975377122049722776410385899763269316341866704985733696716009843799842237016768436136280964276263758383728841736011390786693242082690705942384907834039528273521067079292515980532210648885468237294615813040873794701387720687661919464387037689391277538060606480416851875443824700748316443101644621320072168000645243854164927313748941607778743625150382790614770133415903652736014345884634612711985051567972446646896689430826294870381804713720304623861770553445762640970087275682536955969115410777393906159298096810880477190312882037057481934396319246033891712814182315170351085880872757716325871577303121639555487809277318014339931669085016995354185148000082873820705249985446599991294024781602266159617200634279110998590121511713710854831287436725336915839042061401831737721846708260966961047001482823279203497308479359521490737791149825197370634787603294511776261275769477161249557325304368152341507549189957857596199463114589902945406870190186142341528109690344833991565636367671251541221077993259234453860238062327941684363724361682366899388964806829848468308609600828450360763926666775929095768554093732194921440880428221481912530548984787838945137342314300546978702573455590910359477425552538320010801989550852961374597250551113580534235699814961863245150267640233161645498266589483045683588586605155467057015759810917790686915218908629153657042050922964504451487133575350440074529386483269318661419367108338086052748188902099362520337532813600158535402980511610859204231318219314539808065189230213857526762158335622570533882150443121410324078518866417183971651657164398076613300571135324733212897179202950159284339069051824014870138455023763706524621589620249015816306819287397720049077725052144373190052298973164237082091672228517141518789441908077605836720488973703939893053098402483125064736398280962390792298283026737907114558972569523443915376985763203832257440336954786008841260483112096205458573661843323748168436762453084696182164508024465933566226786027620468127893853280628204150003913633573837159275547480342243256179846967037772632900458606472709710922995099532265681764723639133990338241056427667246205691632433045781571069591323362737861083514190777740006380165507847024227729493844860592679245108146869502765491777147849769760218110521656923674674052468504079974779467797716000272835583751814584947736095932888594448957901457359881888072474422777696570444513695923353021077488271235368847347530369573376583460898401544311628257447015532858487439590314469871484031848195068551770648162273862460040563318840730212107891139390324949275089592550567694990959225554562790437542308340688349396666925093459517815592586831724566764755038571590102605712904024393156297420851517870705760438702009597627461435479431068847281273665045862965208875327855446300563507311705680866669167522961469020415341950374911062453057775304422186092903699969499669629186564773903412674759489005635414053963555428529628468876243297959060887096361111181312086611912608386244467520436664394571146025859756750492036263165568021690826308799455835626795791992222777461235005130224577216448470265453417352197544752675620804158464619575696965922708876014360823694606905750653200555009024499991600926189636268078364287427878871075247571177803841676500836542517279853329761319105823903092081947547949262095737874762453235031750036915884238629682324880981609677235381758841537283470179982008784402450723056403974454301864403610913437721920794899176376099835569437098355119914930425679192816891649079829471982393399620257151241973430305657212728331546350043349791628133452364675405234358024146800722497148174131965727596733079238361283095813857896026763935538538146294756453201748079362714527221390173493802604782433140039714622246598905763026805346363163317315009599876484123572626318668132424470352695301469781310721237788499579251215753709878567424232463257446172211495554428969163535413817442006325955078487097881038972498598418015286540988686416783385338935222332428595576953028654756925846388727961360224972413204914307865146522557696542231553353981246094207695578956234503307513774395721464573616058381581865920288260375409430268398684494014901954390030002291816656532044861763916212201664912101037530037875446222518668929150939801822553387993744622941138206002106274488952492678487270409061027994047199838391635232237973562955617760755528821844363540482796298016804577385784645298733636367058616266163356796419470960810617427134598673429464632686466268771584826178933265222702292882519636075273133017946860321263709111152619810556503290918046592459781285277332067556402836634396800144102875360918710758361592281237509264871366780303508612452662371573402048340641665184823943003926604245665924144185680888053378109504852646230337370253470423642278249765266765718704618655976969071293409897571868576441691634437461837966887320175396626123495320922764124076567960182314338769927158219462522910265798175121404160936784182754719488187745045538053354117999092632854940246290894445817195234141027866143086155678702027747063543900211033722626100283378571031553868777728022636887268083369017759535317327282712265220051453800626197488699446999963340725313663235563059812622937358576973369920302932185715015193524649239633961015585540925648063059758246872594685172369480049547221782832583030500639782738065372123104468405742626476165523018744809704169710522215767226595995466487959607692156098074133541350550226995060873437572506528733078034008919232888178950427792116029666833008650865808423546298210811773766145415535215327464015425601490101348913086248907843509520604985597315250608636866240071842002812095381346426296708145399232646732485729679215848364933583940025951996683828110947842941372491252278762133145310687778264498189919646389107832555177506769581068991112189810472014722120139089563041891458692099744236296436721907524002968945237739535563128924404123194119179945954181714149751177689882551213189873409764480413183745541587928266924822687183363082150366430288611768738357005891314222961786489336616723852857924460387110069944295881045489944461064992174579167807041496084030472900789427766654403254531561607438668340791779358468005344685890645367953356111716495144650161468849178953703056914881497678722155484383757591966574643541171030299827947948511198141091917597628930215054825372201869853210820997073324914843626526062984597796496379010552159101392143762870798443280832808360710526353051567719058247971414814119219363508519529109862436764057580214943647399847153872741517075593951223323225514544768926970325363481958076599501443690358966596324188204408059349414272796316647805765108418965722510176781800652055335293194882890015028876513880381156279149520739984780351116603469159891061584147104756298269241917660420404002357001854765110622468330397691317397411830580609693449844519074311515185788016286953934921992784183120121880081651292804213590028964523788863972241814512608947715502418703111695586766983898506824555842571301274904624991651171963036773473738115588929888894569161953588683758714592892468909041286604524297561391601295885331493831454453312691540838861413034819096840510156437849838914797445473309949805796613858530549147686833299993914704206657304674144275353496727134132636279924804032785011047292271722754871601233070856008705940552006218839276300701731873462723157038961528271463550010896409156829651527720978800100064502724393971373535441588056457156867586702718926724648928519414595687405046835248283269365444109160553149123148583495632146034596299183992497232533682960274446212782656240123091896163797139891721928733320804358117419452932165531245785863214298934739421268543850207368480883829923125163218503360256106187458818534690565159518311971126682710491507010229935961442422132000183576380229821598894994583631266932339081432283915681540905296608348883748458442323224755630056538902313059196512900811934331521389007442935230196367987448090133486602156827309131163902524714749725938715129893031133374207073835211546002080978575142516059549236784946075383339888215593016562502619630006710871728482665897248458926839412754493353905786120138613748898675007193720830882551441048176137514629361203031920662961673528854229461794487594081412166293014459396351327510316106681302514297039438242821121908061942817335609003707068627040448259704190671063605896192166731658975165804379633816271910732964924521447182463448942605690921791253528616130313143260420792225900788103067458684053281335912493677090623403292301926437777222568356506450115093988948356714042364853215031333836662995107789999893242788620393884929784854859408921057898741722897616783644985660651231701932392694142518373062016161356291055656898268158935737952849840706032512229957092037516218009787382993963821970233324409468300375137803476253949982999723573742424525229517192396477748209876273491812053804989620010862971910782255480780711093033326955884789746409548890673076220671592739492120205613162946757172874684240183143351809044446808942668808154374433959904612087517398146095897620444013772357735698770031305255647193013254955701384834833443451820388293645627746908750939177621251160286130913804145152907891080653881329067318246522589747432253717888899057750426923833979057546611673215018198483385603457314747213270452291348119984919096131560797768094284153439702242656189945304109794969909198760220490393868702898430555229731149702615455416495466333967961179000069621223171698233232428512638849025850828153411433545419935655599188641779244967358281462540502400000713792275873194381086842698055494039668092880000424832831736491619146620446861900789570536215032215042526807001025153571117103167414969064107654942266899870076047428976088517863566044629674387544444682498543366857407281654804605754982853171488080851846746708321451447025428215070518559980791724399355587142080474429183707915885383929663459612707862509618130733763343759572901814506545659143162251028001220704832892185462954205637487704399727784719338517182130904589651868707725770774481654481126401945340433218906629874252862503016642617602213930510209791319696759212082035361644532210850859885934555687596881896936548815267404549958048962610071636744301561451747648452722573271748325959265581706052198800285554715517031075708380376572653311292406834644399044213125006471265854833592751734894616685007785995295251458397382098286279653325533179311520313500579449912013312890252176114412948757015035654944860089722067546710395532637631990750759307551834380456956533184559273509538933761343683837118491227854632048498851402982251900603266001528070787797031085599293482151839258022268746002800943951548297909846329665528399217591180158699482656266354228542889936550840449893414133043159658899332199475194136155400899523448841485356084928318169619118061901759317189187215158479445419678844919343670165243839625595543195748242617493920599400001836398783847414435907307909012386925978402251155123771844994758808708584282616883802383793170417007540275742422091338455035856095835999274437491338288837367609204106726759557201322758991855846423928638133958752201188369853754898998851436112990769590139405722325377373283861123012107082108698188459375502977732035963328156472074053096934090438426670528289873190665122132042764845208336286131848743010381392022004910114141647107240590802997726018216859231385132329391487833069066825467053389268997396808512553305377791014113344475424870778463434315117252864142638878385607962010889798924111594484755593229727023580022184057064102807050013019636084969867739260362103824989656957222737551908053409742066761132259653675997703396855045535940849966327422593601622839971969259968075097918803369331358954717832481697458845160093346698919468163980160233786262266859478327002046462509572892012844561455398599909559668170087869573354734440935874036188032129153396682236071787090445979068397966348778436398597654460258681975234487450999963892146463144629797885323008676746178933199450596436814356701286364318177933002646012263780379731947438298123559252295352400884648814278781624113245760407850608658846601871550223366581754651163818495603735290242786636272735819686621498832663350227160445114007413191881307059106218867638141466304530852426596584844372945963422106704925826079261949397483756484387409448075314178112400516588101279640862109540059499120294474170302589030524419788272653654043739433221680606756316414074158984497225114536788734150386561206380163730669494383282998124840677046462475346395413528062164520758114817227772916840949585213188158811874368488328000486621124804697930788452041852071240933960049245575731425433068734704123191477857667124538023066056335514098404551020935704129275168206675796773047651753600481045640422199265185790419420214865762700376678701106252923042162965977463037379807961529381406315784614399213287794693795812779027616900482110207625616517654358746909769989673057316450112942317465838813995595341812393696329238507386737868383082845348761724411167744622754081833403962717086790188447505794957811555806975799030739096511009507861143778430014478401597298045317929937388726634389976712717213144680801506369023056591537421942761224384189495016985924147976067927126090405344253014681982411634586179438086152503908494696844242510645871107285478812039246340761742736848552751699210160774883280368313701056074658665498324907391088155590577613658942604400912120542879038081903713212546147392678200367334376519428719057230247744867289877197959058463201449337955817150282885340308940974645166667225776288732920555860998018716050462843864558549225738898053128240357242985380510776386930881588946211834945124561789560194782019446073153840339427656433022774668809293782430416627656736446441920117556980451024412795502432460068629065327060021348941179109085540502935277692916577606042325431602431186828940098689112691236140259886149783059901213493672661061489476875546923488271009532443171778115304865550692660796105231064308410973612361692510135493479319805245920935187233249322350774854946095393492359574856762602520993218219109787626399941000018652373026096560541227539430858287715782215655121682701200029191377557173583116679684504256791368903095648401430620121873626721002181198077521135250894574555962485739580222887863043628942425074905254993999901832195731028422944348878359628497975728812743702756228397128615271736025350566864447834933551716177425564282245676961622181953492505324332578011926045324036755630937348855683034064427297736138740121736804040237404168730841344660351749994694790884912941224432777625472460319293246282235072955977870276302068584114730822113874395862178627806466825101749010673604186907638909031951493510002354805095723824397613705526283701550358765528578631123126613962470155931542382437564107987023943569699362746361203245745478386174831234771750430589536279300156946955318606174235388971392644930019456780022878268633325145964641710460203830105542000085464791063681620394130999642339442756220693560168616774833394752001962324585681521670392871080428694394606294768942919283612147100777081681512644661994100494622216271863403578837617433527601526363456269983974176222180569533201893312879929919250793437214464847241346351511963238659053047169313628788460091123228444052270835436670624153299824255546811709453546178460561003008872058563480451227389743387156973788162358184818561302518331777824899957337215355465011207717974976099504534390290941199683081553303811996220605339125078725104587135452232582155440133555666757630942795389912601068103063644054230169657932746520333062728432249413289475392224935232111911676955548055784764171714945523197398230863066648377292588105462601837190873400017823814446478167036348738874026235684722970821799255069210651459596309817650679315069126606421845387441838615637618026854078994537939349670187037188940963489321265947063876832797152767319499557217854100549612188941085132905143379961056017445346869883820367493140296917624455879289651143754664614853737043446613513911293686458298161889265720841151990512993486887217450138548981515100896659800580811327706017735443130739389819008597601578060790178312676544401182509772134811746408520711198203566094395017680122611842312386986608510939372430088053709534135187805066983488552074365884129235886086346169014680752412889328070016035263471359179382789631117519987612592453771544289584430804618990436606082523938670805069151202390750540720120333462031497056495376211262365229713834918770525238413254195490214717415913502152535145607696900038873302033780263335691411819582887338375879763372787354103561718130068417874412327741798490130194679139735563686778679866579452703407431222443145463517634829666518047961556478145353786992743569107350218650651503222502007450724058680981631506975200579215070041810644986892409541311655522944955903426039398275004585320939312287102691935518907889854807526712227368642149059414713441325752711842130297000739418921136344974553084806927902301619307544756500509190897888293632330747048595430651248106873096877923182952024689647884675921374199368158913854636202662191926682789444749736635339828837009109411258688797662750838161419114463802017997623321686184677266432573557160378080110597217625821091474077302056002061918778225861590321182168994369508812794064367467065190801919256711898917244917597525540448506681384043896373445071166292714140728927438433595676733762384357613263436656639919455485409225369428223897421562643760578170518664560263527296470466006241323017983171136886558057870292075785058848284663270990697991213043105436079944959661222585834766362947410744013807654399870729089180206472317718895010302999557232291233680367828761082102721942516236592070805618364498093847888376707594795142361483030878093232804981007585888397782906482309921239179191675593221802759620517105135349137920187497518680449859740591080607409214360108943117214540852228404865290912642005253214637870782934432586136820537336278502508141875910389530577315197666703182665099032060101816119328437346164602070596544544896321320292640958169483962883632636594039347178029275587531503161022660233810475349627210274223117431201527657152230208131312103544420147687192333720141827686647126455411383992579869481380224371339160465809083425116578084561249188631588526547959655734815533388823066848298769650560713314601809738673288466889487753848982412579793789969211263760487253260679658478804564283693012679731047282752329198230240817647430355294106120431272531552299926892283056606496763898486688919286352716430251140333483519067900247604053519197867189245918485216694426009507009243223140873209382921231813409309620139382052923315849377575917541064133744087775278323072515410237028273546974214587472298300469821130354010749631388039563922351104650102538560222701663733806191839389084618622974641092076937614895485309604331756328188512036643511203965376389991615829271545676987841171902495154014592507694496051336703025137123392087618753250065888180256470692828846792589881426698887057762121598480626538254625441180662580726236916726935307052253353259932986763841850815103482776286575619226226719217570413874528272404925040861648244432137027567510993736130106863602203405901549573847801906989571414878688547751353956013949673771006246322311531083998897143812440221362037122060275909533873726483951636403343011003454797307607147924502357455559953564972166821418410676719516616681504515213483720036939165737840425858096367364952772842753602551049887950465379599675126247216479027136534861477410641849723116008020853968382367747819927386220512983298177269656569738290268008307484115063947975054787802066872550319934744239972191994955939672311912121709951085470449941795041125809687188453530828746954595980012781182943043517702979405052490606410707270808879278364424444400015432373977826647674376753076636909208082753691175156425444575584806102764886601661973064192842447449302646653090881054677869967494027115419955157170337557032175831028163271962424970809427263271127322138882737596262348017087697716527546399782130486732422992181206293356147440567360441412267550817216716600136807450205705261749814719532041148017659490681658642024488663264361972366599346571271990946159454471925576604876244756028222095482514178919802892442537241487279647948086061323836606558331687870517237836333273643822789343144277240781636964334325167648428621156390231027333661987217134424563895303302002382546112627158905419066881669137921260690869117874642969052039024962446662279823854166777239125018482706243847147784724108294753707503299695722273968973216684806269238615660388108015255829859514539065237131537993595557769690575399210437582281686138648184534642875067872101394920325357342819259633261339620031390336855137572598139164513575295687831931241802292860673444974199900259446195038241726546048823426128922368887176573783918016752128263759191599843192238855763705947188733796011569866301071272898979571527940671656480619597314781814188163615117541028521764286205462402009378530264680250664035332151690999077377421754332104390074890526062132114458232529237752184215922283656581630598847255475675706465497917252680757496008069698498815703702889815754948337865955192624799862273556196640770507730213402737049303313793023435154013274510650317895538262331629074011830383651582952416890164339759113908770358013933944927607395913252101093189801190425764240528537936431039752682287815316488564763645414100530591268466686879555707095102242264908060932058787344446153913192570514811867891768114733616494350825713856776631944852493751561317379104632117164418572951425903602298283295983246497377460442779639780040841193935457161565697565613846243264933831050865711381687175237252907161904815364319872553214591113542869800055908523902048318417496296881307750049984570516755813561555960219204159726601225715113651493692717961083281411354636236494300061900235860597632350948952295330856100021709586189150111070673610621813445274076442449701742754918625724422675966937803952561913011116520149663098738538471160052225199467727399303887451070783686110355913930794141003355324474678389656977537337964613126264483393668923748063444120244872541344890465101800941318067648350377665907729661537265548152026488234018475170972084131903765182759823384853204371860274533053684730031462383237186398685141779744940740506367460398634248861235059694566394988229563213753452002793625682554925574013506460081056528411738803484124831871449874131907299491200930602961552618648887380809587539076778306938811879562925812137519698399679911049546085825200835934259900693126164954250713940023160579093404560348287015369830703678894928507321465389902359288780003147240464237545078683678305677573432922796404056280198770280512530801749258238190995660741597858405528702159590637435140180924420506874977620879549596105111084302939694343149093379975776636261472733321085666052052648326071107749147653220439442292389997239056619899204921464139285218964738398684094314734661108262771389136485549503009692387203829784319702052093332774679977157920188927574808158569398335007836091192339400647995269490968254623668085204345486449707344738490076814964803458574580437064916342593133509376958597272733872007794219230757102084632894075477359787966711952220158117798879388932395913754407944319325019936859191295181302903139821371301820868041811569576177680040542224847163904776708368292906969392841755240053755017059331842005856680591049053856993746132098366637070747423646962147901051729197633435166184407240210031897639915247308530458025770817495759375018715707542917939119671130546889980002582299372469657359271134818452892167628012832762566960352561817802716335586813552542668154867309020665110133354305094588070939461225442964926774163705771776469082269622927448653719085933881599181696338680581581649975178787505629311815749902783888305019345415048619123580677157343725450499019838041114722942791147776055687188802415461822080743057254930543570556071587780668396529957214896476970314544358551412221988833238574075948498145709677610008794825017454397214823710508012168949107629637556653290616688108656216176909446631351283230800029380795424762178405108659953595203106441048843653831692804796881116668205009855264123154658425468870167594892518252943302115905458485445941484783266762963869580658605690661358992964640600263656308256430009999216741242128010024022881225022390959068928199882689668976802688338299325313825507370000606575369826392913064629934901959010751576464775469800900283439368028113360792141861919434417106399995054308656031335689470080247618646731636631455611563747310288186806697419523611154734595423697741669342964499745814140471369131936068049661708279687685087559227725202572088320746133690118901322138901586752697088931376909972129374412895669053953936743425773398895801736135437866730086960226911031562790779275671780519932204259071379480218757148717063492670829151984346761007973510792004103976738829341348253578473610337043989689786914721813420371588225251067086770312116323303150931119248776067431458275178933788623083164729953287126298216210972065658758734662370452102469279506102289011210924578753564244054375358258849695868830678309453717796011977864331501733303326406625569934453579390412113200661027424769233746109345370930345063733052697918755682844354706793123029938448090579706940088834253305861752675838752669397682081448239418419370462706005912229329675823504652459149897997211392071270965018661809466091579051064420254610993993324626051998693300707618782098737168570674023815757232982065560503881320311397292981334215274828671240192579317292120731846940702463236603006995898823830594228618649430453302108799057394456390319608431752662051293940712036783906651774976082092219139731437606162546092855456660637580843190257732498250109514814611708166846301667716014776146804829134372818199670294333897939805415383785523000312818749827380348621673491850065422882954311680956662349052104634625318486936494981052767300256785678815227598948822545729600320322418788286940230277868414861540315316434389682962183789850184171901925790317542140531107364249173353506481333838831665238011021120381761878704269693749169064602563885777036860347736468595025400445565221891944324941677622401743760440261477022406280333711314937863744671738575303582604577562775728003260061005240479274524712260490475641305414086645218850814229550300114373276233257624659112004923075017568546833830915771786051439019961831174336976436677671693501798962371746014972175151089122160966085097161595065844730447504010850464552872134795740787735346148586033977107467857717519686218819506195239378022895414935643179410541234010023907166184688124887974346754940734536477834765181665578179650382093719287610192428940457481406619047288575566340904312646710035471298510690130813179368078599179818461350862648846970685776025837087794907231208577854957746198788741892857717072519161814548650153919357078345400315362804819824898138618190489589298434500658110263719310617478778313148680729433511938546594922437991337976020323022257234039809530213135621816200317709151083287727541186410979805792237216625276589783385049794908699209252889473767658957573523915066076502696129610568447466469901733635699639393366251710582202431176438528255594645598685970007184564479208281489157271957952215557598630959792727191981724121798312843774838987992011513369717541016544366286060160679938449727730850236166467200371856106676010613335048686164975922779771085616430758348185706429804559624910645084924985522958250924532410238078812392839715347650956363254845451379336385241307818491557051389960282199767605811687923482987062729151840505237932996467799936222819096709832173447302761405593577432900373170502769868679488878498306979972971719160350801302215826525631447331407332828194252655172482173588555853668593281693073381779938234295091162179677192099198035572816047562784010846681762243849073483723517741741120948309846715625642735067230020285858073550531880639118290438196063057117116666537289086504465177918675819897961378908813571146664255395901886234618075430247400149105656145108901622067166031922925617261324441360126918514227420569243285110306852220130106572641240570038012887167042474093822751889624978794682596154806480630272573495058137561292297374878476034144047517517848825484666173690956876668888010535921574240190994590962360494584751361028214492259918785150783999976552484085045381693982411114231108103722093857558328791003408039106284413921543459525421197408145187734090112623887122995609288776380690312792112520366142117699242139543515743541348262975828818271700182667421064384498982071509507773261926914594232264612906797358983814097758590008093493886634849217423645016573157414424762639461848729586601556834570898666169176570471144602479752463050773401074598366968235335258268926494863946598752165526097278408782944926868364744866474874619879888474702468311237561548823641924798562709993730896654607926575069243596472191976886890906223280139028199506595076153948202579288122853425800613428638133036930661108949428658263312740044666970737847956255492075665113294627436028813016033078615599279861552355160543927271105271177543689371630646607050486280989223153291890160515040104632407685470560306769808281054809488933692509027856846311437292900935400294404664631224435492285964843629721969119001796551351088622432639283402155296288799701428198062489933990705363150267715576585757596232445659428555316461925283661099102993862749365898339847915128838156555724048363534126489007954252105874142090242964958485482377522684020590294589500835741144013298752139982520059675769076072462006004068129574685320620401268343267537765169237657025493734219826596050970467499273863320861656995430409187980596268293595093009484198573236444559428226965262768102089558737557064364184031967251831113499609044169585791768034765516296116604352378806774512043423946145296357979491866313576035968280155789380990230062823000692169272822542784309065743840920840552939652114816232806933432367027011170373043681904686950083537640024068933925845968747089146055338537319121284134040548052780655667785151852858115134932076697290071368322868975507948986900709239037225998144112680652063648980151377493779691016373803442518190294909762464942331133579222702505708486621590729603777161107337518687910252643019796502249320826868333456199314192442247696929265058618650165832852250218790238378801568825973855391408103322838911118493520635683590717696094791265028193088910777192307211930564175717809625748044473747308369285317928830532465770068553206104864113701396191693315306801464451787218847150834599977420301009454299438649661855287587947379901075038509031700376820593510490068050762248070942859881023206987711803156066977256189944375719595921091859486596434672974701916953568706999285932144461368788408242432831737548779255423759200119565329672673940039770389038973475217513617740319793826071227991021431453864188772886745041203921469701770028262348709109585914194204467031313462720106817209683306123432644167399984018606215800331840384740067983975159598941260205849801875671125605489691568478524894086742495660104962646677782021636647033539440773483794920271388982782974316297278299216361197079243125733186711711132068422123547821019478128219610100320978780245727568338839918891772939274852731465905157790908284964442222236348908984640189005916607381963685040060548799852034559673214100099893048311365774779065797587997688292456631683793027533789937925538055709414985792456864744292547800301081325777098730348181514376624471693145708208312424065999353647281036348787012177859182795180579549547528686587236315839508453651048437986624213145184976847804673504869405476124495156254153051256494554377254415105933374725598650592958909744286454897107152951409539660533140175460992418748509705144742843547661772016961131281020786873779856791953202174689558782893574363210499460872855312977289992259733381842218169847986323388917887733792118574914282553519400609084355249134720914007900304764022459778720165465842489886618952607194984466078988972813016036814105853502632536992751662596278789373217785177658465408404789332851129296546708700487133299066335226135717174528561822958848569999327823860531644229192247040884562701188287303852090093874446047362153497583138809226708531402584838109513127478865863037442994207252102538193513675077220567360655269552810216302703074460014611986115254360528559118471371970827067644750867397932515505766897284845352571220110291746308990595492153880347186201868812951189444787382716721540528780758768537592611675058214883429553762144604656457931706716355315109979322184891798794879081863576256420395666211437355396372029366680677270069817008521585191303815936043597029733809294836771371020813270877774199490845562214149816624680875146148074931088590228755695937870001245776694405556110639634373058578101656902240637943074044763765937573058972668668395829874061324459084274648959795770825783753232721353202239145403097251765169212778440409947142543588448563908501832063755689383738796919297604468234919156334400838976384112689667135796130531970720589728573050674981042969307993018959006267879150216968641653726238401634144950049230905174694477646962292021286265328708612097214124739733835908578042062486128968322601095154274119350390849165975125526393329258519449952143367773257094527339822864886734264348388486971885423211171247567612834460032627427682851570695712096648049303197493747563233626573003533422544920353626518070085728799054009183030866051484176095131183795596934743353803176966699577197036306255549154548333278143174890335850684883453546758768636620350198960090764182414367565756838680659099073718915556018091022366117456986707363921124248852957263529469697295634138272304475408558195073272664167716206541988795741673193233657572967374112326442038298879180321750852432552246876874357519387009433762503283225262790722058554570418250153135391792452105421529809925026884593000957166827983642138915380586457523961726470815155914535860173577371177270523558731418545759015139152735670712682848641630908142349155175618861128950997884186729222079643931766207957620892625767599230906858454878744338012214435134691729190106997057172767012819903368127015891872309196336701018321399144251528680427084032521381248051454538787293300616774691636418056953327795201572385964163744509168883625223955208260971983525158664945418008434634971469166759821405511247973581616355471958397965653379325305024035098830802508890782877114852555357284697303929307329697706536452975689740835091644711596409973638180352684164300854292796836012673720338772390616384713837741154338914220345031754647480147025633429895584282360662796003018492084554809706531664695363183983531893216327141584645611532758901118624974729115788539940319628764790064787170113190014992711121948662180550495130971096634686039338389150710595815513443405601535455535420507874390665875675409298125883254913400165207437964018373276665824410731464993531789745102144598623389264356951219286509383210622644842980318385849185474732658569440326819499569179242523209657398178686053413379398445857107612570757405079146553079963007232519917160104809553502737342480035969894108754269928235864960244898274215929693752916867604107743450413431713338670452811257150635417932941934498183585442270727623714467312142527454486749718274484665359279202670473134618283658520718407884443581006773815652722372833263029645201615081203329094428760482841346794088051528030788320620488557088789107032451011575027423169765938091971707321522844023609969353068955931172859849915611605962461508382133570753512642591113972361761633106351689639839624461327040212127388500703680999976865776158946517941077696793460867472843300423338958027067460288861375353155531343769444084337414847115716966377159721939165374979430443732178434935232471333251306606764654839894825578665453682589040042381177167469329751477703734926602334642556245048920939620147254934054957268792356412347858123491744720912979039325330998575021178621300147205634214482801407436266620891404658965792876504613419126045219540571823265055387427211651757610449452595960476858597789192450100091951250845899774065169801696935637485965266229475821009703071143360010942033522312867675125917868370248536907902012235899721381441019354479218998088917454936358103047340971222078616415144282380359505617110557628352525178708016642895837276189121561001460262696281913367021972086473056726113730878809206121431092900967310948579169835283993024649994175793931985075978739834181060458615037500681120104529211009914481141630780915021572803108254053884827990167992985898221062847399705601161051502189076812122869351733983112744110519529043549228223353191341523310736418291211107594162009454257611070167108943656812269344461619605638921909306081181534892538207959004122673275737982328920575720685627071044366027774139617442916954463628600731816903572045814391436705123435315231454882464019618775896965073438301771479460715261185423728954211950956120731468414068611276122966396638747002232609337965040366577594515303540982191982204145107054520908543199138204568109196137115530688710309073450396603628067046729389363970491967168837014998022148376887774693564178245911236785056761271832636317152933417610166172694245717222956719355412563608247459230189809268530838000581833728836974221855207440949660262357706324919127584352337722023850319534394707409107084157857683995377526883142282164701273479758120196983270508775605203868359683874450917310523823013876102870303761382104343427784876373075754248748047617224368967396787946155162424345139093941797302426849891857179498833324879624585392741744925253636145318768027883424990216185250205396005067215327617040717515304196467181855768792478302356061721323154463255270441098456849143655243758310541495557280565002846384055631888408227306252299186927977470734881279016971581314843412578809659978011851525195278439315840631170879065044752149196990183786546785391994362577560411125321647744236151878351079878434500179795736010552961679459627993857895908276780814158995769830109824199167546480368708475601279336494580915919946724320305687753527616648895169407510642080118670723695920492875390340046168181028742499232420391272514496892800923333454260445176124060005137351013330145139610441241036329699803277937631563916551684529956049298313487875648983747883011032933625233291075355491583723704064928646649169018002830870789811019744343110142270871165693829954020347458515567032122706234862942445188838343452386838769370765639562302442562886971231689400466349648730939522442767772823792835666867080140360692912620077112507694220656045778887516688676682892033740342959426327055561386820127958633220434374086505633963613872189236093661282964714777459489989675232295151239759643397327576149833513646793516119316154368812705826385506710460993591961191892974778135549611983055590526168048035906757235269417408886779980124039171010300090376462910848233931976731604550244461822716468540142033065479392065498888416355311214727725313320938921094555446828828249295194875533735874705504163592454133689824657600437860004196145976787881070681498908884822084218679323950041278698317711480306725064686187198455671137580672433464598171112119022548260612840648554651816754800438764881241171125875269501211367603086839165077429340501795156069381555525658113103136279866322599757431696280455526154482752987878741630014338728218449043671146282890037518674066009045677715991754376035242663932788529100475167096871444612184168498263058290354747348089771270623947820993586105861046819663708427145898268321468523424541773724070213615089175892928292263542236462301758106267426753917957929429966959270117793916153630640793769947177045883468077226173400925439304500755114202672681428417195919942766005950243488905678390809262561083262223940191098805809635841222002348319690846469742396033903408291398602417335247620656848918895187213576121567891325619812580662143711901007084930894729620231174850997752868292345876601124831894023547641095203835088408949397945990257673273470349890877832926248098954353113879858810237741819914872170564908730545540587470021226311232087984392070414948702227735797701132176458218196126109947399384040653139342792951719339118563583207507861161557043968394914082564762933798790596259308127978618738305155657127875468227947498804796318768743634922563505551187615149941918808700257270825863830112687334226290776434037906225379175531766859582986022041238523610736703103409181805644517335111758339759858148193633328571672769881590731578057108484831604541122939892020279497761164888279292699372765005514918623149021670223905365398501384725739667790487860849480460781291099938652221593307570962101187103281605109913878360391399418840888943814808753888862084647953194244776666621435336748552465850579643713964472619144675059501457557913665531628034482124367083673089820765979580386013546221784938997522229765473857578506786626486660326192076453359408191611831339158348805563065564993742710260077036236978741916884372317540058802958151981878005267725707022766445225704036573393522737841699109845500280569484399363270234665717231454500507528371263031790124228027025531516708338848678263746009480153430475761285126635956349367234017628301422800805011844259087565947235739449958368421156026130394569766031365491325702082117170850141193226494174303389892710415686009818814877150183989728700514237415961845645782844141083085230162809738153222741598938836383838712978094082783274508914004692666385266939146692697336723043051638092776895850866233774553660036700446282323992524054945473340534846288995302285413669843134755846924378025605412030145510524438135567033570282187410067203756632860009715654488095305745125413864964291862629646805154154540119170364682255739941401453929372711747933367578744406863897435066107121368060125297813727926631963483308166788717982894860268265225010389426620997636507624369829465446218981059686830881722050904411147396146643955279092041020690789773267119917528138344558480481605383836417280391811741021348141334895533194239114457319526005907470192777035899228327740824954969146722811666466759555166822833325555953893247695642102679960431566747446343739210585137618355134653009672539944228653298196171257557991414343331295869708725556864574483395229359311444967380985017957788100044718979184162089876099310665500873390062691298313366963842822405374519634640847179198993824737583388294644031582076155750506658689738099889955701889949473480609453414542646646182530508027055709799541535958639682292894421290616201356270219281291016021015563934418586234548652952296876491084984574071072970722334849400388435085934599259570709244835293817099924367455138272144959789004950938910667105856712163323823176616833846308821306511076445723381974959594761031319943814569890167912568187660499861006028412437492601295109358005369846019614975806265102344762042730442731337810083907108008933287226393314921304265180098145633780931430044135892170354285913809242774061739987948732926912672367910934208602487042233926707804620611777684463785768451522639936117633115351810974472862304713652523393341627069412319989639592057269087642391352840218752271757327238419461940974155930130487079438264137173802019703327254081469157236032638830940568744827920900241833253599960684551875051062075394789210102490757120594405860613059178212060147741568504676226948795966876686178311553969243753672638091289884397985110960454211795084498433464592093742687890094393652834495696025688583414536339807756191631060765897627681034114726875298241329516872875944045971432235523361701373025165588853860260940763754871546678358732471817107249370240656877697700986440537089461624350257077526968328947161868523382458745983197189351705511880297673789065220365304985825865548920942933561824164099869242212499496741470256946843479706344285713470391751914507740804749643255736500203096824129699065043169504207675114054308561026241572204126232227320745480543681450172245543857099076484886052557876313338086859671801488162046205249108670330377622945645913376877891790560389269319102449406294751358048445310327505322189536319724816582774375539960296334070265338213986036139911281436778042597547730785989106146827848207641144833843338418111816561608126146926540114695522652883099294578932201302908641190331563379021141357866376491294741437840503152742048088637488088204037043399761301707524113358021367478586358058721975756866344170957628101983165308232892964489276973527860600123934874433173309027305477187863002365612421043770428520924115490546386468499439061733149141529682837634533954153678483833954989607366545704493513506613187389820092552787223510321642817582492318363013967238557092972418257666131543728900550192466190781667174195552860055449954238080383377430708840979086883506080356666410666312207919483796942186004537728582645348698162993073691305463216788141245243462535372227622981228725317841604412862153610432177160462558257419864341096347392919966258516240158490418020083604548271519761575258926832282022400406080977242261708236470566667588703811566582519911871217656124280778758238339256992553743866792138337178333380380829358520381350305899851752806443620613910946250154135859719151696176106015913977110500709243040765455400083494351286431788393324895425127235198711553869590880151665941126526999889421094466274277966421870765243912003025355101446570688165976202469645146059381545188613731897133280110622745002856356516029496140328245733259166767143481523865849869455284261102773342271785366819562040653841547163856300031994772480025015258645489469615689316408885745960200928938519196041646656538821974273213120454179910808518943141764829815049774007445743435981915186170643670596553979457737023707156465543008463026424342664444889491258832643078867917742300373808182684853351932041193971804082690482908570759343108127785986328335594986585213161220449229726539345388937426589221324592260644565997603753084067352971829268855497026572915858400887981275749388268185093288942519578504668822256955568340457447165576614676972924611133359897388377136509696758473117419070536034116607572091770712832888248106477835036019944779043162035159380980344453772818688745543635594225104760510194852214094316997899527605231137670327966747382251648389651729781517328323060840083530197368700774421557336128078202925251158185396967265832051167313264476899598129523649716038818303518013421563477837406509596396566144854577773194282980499905757328883929632711331822191425874633745335367238277756954485196447337112935313462119634704696237475998962787687575186626730828721455257258753246126323479788765626214196165264877857700160788228021232888714304900319854851301323693739322206276969640644416734247315128061392095209639239472639343082530322913724397745846622193431048076450029417092873112851267150332097909566605248138872071125217830490141128625523633779656199751915783804925734532774483595543747749741040447351160235029066049585477218793070779210127972625239124345654795610631213096318457635496294941974101843890875723400586830044490341120989623194313930520001037383396727791640642079150727803068023996652667251627958433845183231926401476780210380007054329831648840156469806989509309401484888719570227293199958116309131129719980351097154161945352045883396438293662035220881494702426367551785651497997127736188323148529752830251941107556974581337863931335185377675147409939773407809418399572229424618095139576033824848254029432553257279208591162770799011746463832949445983263872474629791007796086879298923916080965639040186116061153352937059370684442358731520323534284103047044265327786287285418579702607431434039992082153994904812010198987732857006079926541123631378898338933458180904128821420371104584642583590094779058085667728123856843669642915617475360724405625560818315997966610879463517158141958837006460041734969270069350067728312473903935459046548497225821151563160542124761174929569119438479715388138760720949153040938927915363796345712168492446072071925242846334542321557073430785915766649332613980246381355070480694841606228452914207641944579912964596962095604947908846015632399746371272702480337766284551675465182844182555039963559393640534772011512416516363754916476706759232187269157262412290414213463462098672625777290197957825159527616766863495863996288599270130169687203428260517767267965536304108044293500192273869567265449409900630875562390601092994334099254993553757308344633379135187291564953929105912982609827198849590365912827502938692090359899834102374040371740171613453035414604730222265499815542482347526075996954474944037636492394114622302820939319447248811112752884610100517969065075178809567103722269831722933090209699315440299301971318639437809915078778732825352512885761044708887338281353638253484743243909847044030786317066926063652946483659440339283295106044284493416088244268798539402414101143080330626239067984144845581066038527578383131546165321596330313688852732500343776321114573775653201295112353911701065691536149237068648231052562036246139383817982736005814408316531821866477929156151283917780501934916305292546488360811071895230007846755607838119797338970044270904347118961079414127909836783464348522420179821814848211319061723676328893876076003906945306157758430972466802077306245276386206655490623671783100129073558684784439909958460229086169793180999533666357164995974162038683172583462502807710160497030670123770421567384179346904783404723224899795698646993359192556059375007705681899442132409122388622582051504697912356789060532212044397345843400413986669612917467052974985605195959090138540613124979526087170534777995614350359198656756013051267797511965949907758278335392618456837308594629252060593952002897093107288481192591383068557184148149097930347773530968692964288825620146209733258214851546909044618853840239882747353089066413211191434693581875735633116159785485916616662234030304862673494230488732536065096693802969728645993489061209722943357341584988751379257336899250990658119833591400427599753387375053491974688156033585804877961463063304014235414714777081322468067550324505501744646679332012499904428903829291761507515193736260039724104131534969530321479665591981569061194417892852874304284475386490610636843268692469853594257904960193384982145081576472836275584024878231350626173266318336007073237134078201367713057087923020641810521795809686864283045992328960060436592858626341887557770379527284502126317301326733190632517437046082220329457789511498561438268298604787219701395829295341403628931582930301792600593919605584828170093323589564478008489790069553891936771130139872525758922308156417119380859186097061308527594628333966448844033864672629172589008658784487696454677495868171945809013354004890757589000020701776906398209568067118230461729943408971705586201139084837393194545634000025202211508788395594991034302136089801377462104404660747266374038342608549679226020703671328898465786056430444692791644072930151035486328179015435016720855444420884023988723671075255199071229934114755765083926456807050030490532428207369523090955894506450033892695448381768025457176468756836694791925503164083649658669051878852138661883241197867716777257947966992966933112109635353610201592703430155278101757491611430173420538965942092189878517836142261102990449780907243901816851959717573265223093567051682949453543871131478997697014368668548060319092626446436827230433660137732784545114492519988493476138983905471619439790026040423882836902188690249367591248922775322644118294035015899235949175391204983266475641162469280013378899988006551138438983752184872430941000870492688404418428150135348649728278555942713668419265925340708333668081793447639555220715366922502551409672663804409607744788841714292141504146510401535336282376665754910026757145957444946068173555551056421082227610085758243832373737882318468206168181176803479855741674679434532161845568852999181984682005112669525384308322807286857726596150942774943429696530842715932838251500981643181956821028123276258462210745814229097167695220796409201160094549247068776893616628215862011221429051111822398757342741700010011835938591794810805671990631044774749173676355072549423729969221607936342713112118503495319141842347306868345692032848747213512686808348398106038014320358372390618117773691882395913484595309329721274883608282469897414503217881069290231645147848014116271527377533016839872240552148400403664084679805989524576559437154730052354551058599034416651042952548274520736731613764400668876157763418099683667391806077622192774511192575729055761382108061753506378085838807370995000425954089375034760880953880203992805974334325629458827609456428338199248814367437200161969464610038783992191510310630643306296465281142121882403434336903637775032792944811913883533011806966811095045564539339270343786361042675157824635566841784374005435103416971551551380830875821386517811219816576599163564813428228319017883019285152521030559936724395101142545099025262485769891298053223302388352359247531624238753785664179865728780430974949917925064244163770922557538070820379590480021050773946804521343766361336729898300810375298493571295021184264938863654271302486911781550269114240719777131774163250602858549930110710935909508527055605210622369592305023115661934571780180166819998283603080295906271259671058766219744038986605985672956127901935152340306505189854149122393354227856056921824558540216158403332768849234109828838308160077667673493188862163841848045050132237795657262955669975909194408694772878525564800742111984300608651632870737815351893067436905779909803406192519929801885062117868559706516038281510570018395698795446035398263643336410028951892115871654090678513767840239303001346475697866197919628328381483511242464424077749382399318545523183993516669885169869828242705831389304043416080930153093687641249564924978524609671066966506525604162651658920626953334312389341945974190768381534691072452890298333114769261114152564533310575690993929044048343123591899936001159247730385436929392247712023006359727497712901700545936447993912747144349845513877881964469147447431070851469887892805556685495364337565221057942114745621242399283994612579207838809229659991799793809211550958742683514135061311519695244550360127078646894116043605854809762570087795221267143873652653815007704946595120360494093197696239019574958586113781795741111093522645838256251014357821934279797599097500132297385324176504973160457983103252892532143101300095194277245527928406569787300832879392725390880453261257197716455069112597501984832720475274018377894607641811545033580395318673637167995808077876160770933698685019303823399452620573146260223604428401244886557965251374882130926532363475926158340669886065329385359211723466807256594295792864749349858728314919304265920560470311105899221289793588586826728431364167910848573997924964879534307664356663258329255946870651243713536665242621350661887397199231571623602272979643302642353365323974472334489671157541462021017740860628883994365898942464096265944282343315976473624061506818896726789586575863675332568715449294251429183210761711897367868620261950981374124715280195191041999860371946474418540553932131328475933498706645077353421060126128157373854360121331807822739345655610590845133713046330054806794140657606576263943928162638181062008310741168642042989225345889669191254911373101092019930237187515291105654977928998550622563404910891038821277068275298736374126046536140105181782905012662660516882579480870754868522742157517460278826121566259368753899615949386825704755518427039717600535180510710868938193453443237014720391849363983392251203601744227068181244866427039157274583514275468049873093317148057265751147590789727330910869970284336572457262744410836361021321151461055159575929785891005966693849627536260759541465908959930349869777073088143314640085853463164950039515033754109703453880826878357576807270701162400316500836443191320722393552663914934068656438805780505495720244707293849833833935791048641629468726281708113069708100224102970507631980577726825380950871985517225393995588526222151881864019201027632880911894356949205885517560586689043975211654210325215822856505040160848390651781907573034657090523291951438794211615481939771798027523942828033557374550971551910198239812634715672255316667790941548937124207197132338367709075668771783050149956474697213366447257485906776013626296291983384102197645237092455446374640097638547130374803025088698677231493101251504844963341785533073915787304693047859402353820515222277887587948339801703700591189355409728110110911236859841711568898503178118546490436533661331716582991387623381672544158447759475148428503487001504219441978953276934617138393952483048759836705224193479286397450641522694605909728813036615007136312940237384695898300255539763072067124614883294283228492083323370817657929571910036653293846142786566591788784654136096401247170330936512887686380445023992273494003832358769502940964842426050601471168916481566280535053492750978785487037057107088207857335620571541757569734642370741613045823869771839482108442812460202720848520289776117322789503832560413362462556719652955393679770218772149930814000321852896599040929709159118467776092730485737219404928300515605140402047858984293901073416207286399521612316026302650190065475227678473070339728406680267871374780610262655830784461521320321486378440878531998508442130198855282498776759902195006338438889061773828687108360787085058260737317731319086382348508046487942321905212318334863028501377561799718652493685639408407962187688439636493191657411528492218296751686518245627748228835477043129983914479731010126898927092765207339406865387358392777569223816196361727863325299276513601131125904710194699841935403630050720875513370044562599832240298926483133368846950022875828331839229746733890303122603240530512319046069247504637199336169675417751898412488160986214697459691531862430843064277226684064021642642067707645887082336750077687101045632339962851125396264829392047328834847588438479606947427316462155648506895183927463022415658002222392281048490283168736522869289753733832688403746597910474256678032693129799054471478199840760850806476621746996957842974698864543917290586155704011828599124034146074586506567936366595788431712636941206052057685530655675870896194011007983330050054595984658438441808396186699413318078284767295295908056665477765433199271271775722845843843040860777275494032350205791594349019951522725571648668392055438141738740779878884827836067932080046160679267259693246764578180147605690699605916969586980356061136336867931509583692592398527418522978107889446303908601886856349739021940766064203637993945967266491044158590322732834418674076754269666316085224028473595747735262278967168503411201667181688760917873856835830908248655847735834393493784797472808986782914252938933914727938190748737303083017610982643353034060977239054317347255310492748411804278453634583810381558555022269705838687420305038402280760865631854729722013131716831846227953023409597079296257561966106308691820623499183680331700963440540699866109589080796380621598124761211759174307389750210840384305735830726384511518798188158978617223780902222397175211397718517972956845049546002779890231188411386464761349633130859929150095964338603265395593796566234313405278035879538319596010937771091346820519568057394274222306428543265006270985698058678406678233273308696628822496819567309356941064889054480040066029696014355000089787426202168807273097872971252355524967993040617122843543549181686063113470199283296952007332227290515006624806675916470629972159743945037816071170749244947644266197865491182439356307722092152050901243315484942761241882904435374088039176538349806276088827834699985974372587047160129569286148980138077364138307792758615982879716720880823450289992242385962604280857410355923309196981873757058180154147162096398129252792055362454417062064193045454462735139825330404400284957312571193209947235311632039912164727901153847495355533287962992653983815825683410091831332983331267039399459118732212561536098101021349519799042034556996860743024487887552213594281404192829185721585777404572401119275245032676759504518667200861644172124916595176019587948816423644564933972586055173228905365061156126500558852771183660350378279623621763744606279138414247552798052543213355441932892748107507416870211536839260156555678993552505271208308235486640651201184857054370529645777825137000173146298082526903204409029060550678167962235247640069476615904515873715060358686142662827325300552871607055293069281072097945533139335095968505131599229599741645179486579330070152791392620324335380488488976123498547599671996239699855404200658068875437061436692163520059316487453381894732652675824624143165981893862144006458491619668969792579151870602677843881315211779404600592611088145214854621661276814197600189635635000548950338465313953222550343790586958646124313163261805973636479311796686593977707549180193150974771210422171172323541250167976502960618757024912105512975977958229310277511455435767007049452018586972097478347366524601041705004036211297008434668933768664160080747900126993824760929914472893232546582946641016673924462644275308406010178328080835875571786284892810099937894521980213638330696828877340557229257307296373283512321649568605315888161269668950020464199051972098623386413457011625349434094075220774306127596898489760227036596400215269904027004958667307428383774683733848390602700286511935697561170698928979472790419115769761608848298628456019148099706565043690696513206504304342477485686718535031708320813587917507891051117547812846825392313973361657408227238222945689819799516802213927060882638540684498965357092446418033470298543605543544938724615401924240398019999237042049774658083063201629634690039935734219610573802267573570639606773929939206176769264297491336518123176411756663341546053003243705848145280253340545985818954896513894368125515214063674240720936988071064004452088166050701219475099893366402228545459514572637964917344171035244780995559218574210212974516961153271452721060175266475322353284332756203153231066565968520728376663426838944082772184758442382919597780299348052287324472537813240836939324462825932016963473602712467924098725259428895435605651309489913018108012376456480202740842169717996750783393639060577096512483712042080618768617931714596215758721642704302161328993958324465051946242319246735307474857736232801960986969705685187713797736633033397248438241300159038972673619823191425797326163973469687279582202508900077835911413587570752174153014332733899218449518370990000755096487591526057840779490989299879782695758554973605424850589295004385603496652097831908285638249796229483622185914300683034925119437948918707052498081287677542896779956463821581906357409728103957639314976550115792658722083261145188627007439292896753535572090980605226242297220288169521834126216317430643580634024225598096740739892017042795299878306485447475302944624965554342947058916307597895972543698247892981812716692733943654400624536931921618902305862990370481051445803506449102322351994135069317465435121320469086543158486733057918967291096989044438895484877715527453612462367827860676642478969369947954683517873201493094934330213943047574626094035548741495955777758606631859083834904420294629038661098979227299746569263253770939853282057807130043174566272028573270120255315835638324866539749771583528665058790659004811615815213070976341334936216590550442581874920392668296415479635181222704140618761276922041017027157618773323525449569347134022950514854330747900678295113214237063721390729062177159246712036559900850992583837205805358306240604426045809333201611610591944023630496328553269561314645581725111437380761066340523389662746266438752819854114115826755435648477309723821356392106930380828105897083683991613319240115519239700488562594450797014046748921605791177563567565151448319803661350563001102528464086571765845040551673565491442864985512725144556476306808512328345269745548440458297182856519240921114879720311882795746624390092855106291053628824776929232702683936832160981422601857936587051254926896519317461060195735350280710749798798222096054253336101228192362854651083039684502495363026028939824425669137764355431544758385189618649732702325796113092454433327950201613292010844229589005210322610174015113571319155347445984582115746500021486982308193299099833922839687755270198725564073222322266197392270925618534663954493945060672935737667354279359160601335837461691688721984221576952414622341094926480321181299729627153288097655074576998252818267596989418450633991805560285684484139572890744715473419322276044806636885286677344632120623303798011270632030412919745713836077060282371243021133759402667732602063963818346222078607652662707634237476895486292323208635809110228228106717451413452163165111108933688823438507752017784682601568183250979139582010198419695360314598471621135806758408362036524990682697304444559799050113081279199957460040076488259865333552227586431896367291654507007988426262983590623170896864241435123485225803518541108987890551068308425337481268200175491635294872976608236627511969412761263627709403840398356494292098880342356378520466019639362197363025405660011095507562156752830273914373326295903113450942336992126409951002130346609384252800757481495750221379371953565876775820110560475128509993814460227362849848906110161418010325983436762703461034463353125403734125528409019047284947345951398169843593487013396067046042388906257766845274217823367897188515444731119440519376593085006554158906544007993969408468684481599269585601974286280294016518608226392363375741286770803514032039470224853422108850997761838602715038294922952323753834905195028032047811651627066316780125428016282054508887293719091271529575355512672674150626995539902401979585667777424206063328058785647955523704392225315498077834205921262447671516033102521895726014758189355228179719867930096682887248229743100531018343020652947819141892407913712916072483562017656322934590005668532660887156974899284774272442250692474134315125436573133166000962196068684337711097477267311136677977683311912757762023794245614346289285090961888162022651770486961336565480070994192070518747285723224878181193541387664967656444067667159226174549358641614834861497225430076177128909348677883996263500864477686201255867039910102989102091285331471578563201803719601476546654712056311610483510060431124615195411655296097084035507140483975959997270161553774075745215386857315727946279804506303596964922471594892714752201535137335927446881302546085508886152736363007831385531983002473069693487462157565714867838279768902948872031202478590204501412268211066099380576212879406291644154346694807478887229832956939079310075647336047655274029906857847087004992077784096316949896291624829844531697676026929362450528233970042399020241443911829329389389252560428637892201277071296349790362099042037483835296597821136568846004309625538640623200679519257836717883898383491054829602627600229598874920621616800378297675075886982039431442050486883944376284966547934472384473424580254412287711988309210463172654944900335000426968097846700498983630872725354539615823864791672171641734216905128431169592698926906246636716943697867385460635940690857267623073073174567412108571685900764022384229222149795720764173177269948802665594523907521849892242692379972478270805302167607591148838592382302679457905831697935034447719337628890629444042091610646608625927087244493990584680427064382036346592903318734956837569639008113682543824256784743684807957458370348550492947371665464289824369396800089532136355825311124033340360880272929242744374828839678255576267443478009749675860818542423156233769293055603289164010500571008599374639471351962563297938371597894389454288688964044276080630988890765314824534557704158237533194273581710321140337306796504377176328573249395192708609842304428769716970583182858333117948671098550832187591390872782427883877850981273197678634513510615902009588030766292161723906002794766563204131018401996120329272209452991856684654503795721262941766968467429911634286369916729750089900764391902753130200450287504850364524021179960156286172480875636098077683162315878806620883112240473908571590116322486167649438189732609009650234095995606573324379375694849390890500147774692700903977287993447002523520478036125366609761062403557069130914745627950187279609900238997528585698538189135686817441390775428109819327045591464378210764172331443047666650495986284361989140966003275139299997795802614259351874024029161209367002458417507172552600848019029740005454943165315876505290459328180083281131790800302049051332347778159359653776622575732190253114897867800324740502435799432016611278809906509292501609970250494135627386304424716485669760557246156394820054859583928601037775147867438479180328569529510113611398462057983369268793317026267120309087905680631679834429160569542349821172414837982739237631697997743393257538415536182241807508248142673078346661341959842223536624006761284131328112510841878185455098528956134551651454456575340086745752023603099989151975243333361376095330699544561985780080183386768619645825083858744223801085801240095530949191879059002584446809685357197847627155840974472396846420021796897273019508202122860117283134471964533251473079318976653196393825278702559150626592048080980969926211637744055571461036311611325039399238983340330948712225349142922496963253339834823674816817826418925904273559253161781305200341455685740299759137483754055563869645871455327541842168072917770402552823182590905531481681450714591089781771903204927961481172354392509836219081844881572782015463859760497577113022121297495950284816925535145355151689455669283847648515331350182083280658262526793865959501812229645782569160833886445804963879489162971882544860699055433220842997415875630691533459762951308780594240380860340721505664065523358461443784298242947254189442697701216518001575908915399168498930576756320552764192344553371845711117174524199323685259672982447943700965205992865460476598377607097412795197307192430103504787264449580426813690137748085160996417291529304355318075138869047258433593970828022748560518013799544946215357177531494931357028207387100479998310117295183034972907165686068391359402828327583095607987112695030560475071663243321850738667735677453599319043872517742738059623405310024267537124948235176525714093863098995483728529472856188041878114246619754553274471448400672714056295510805267141454335274760998658465911581051175685030172359659680721280976123477528071602483187601420884537967155245910935290818542312287832842723826126422952518849519196185485698337350488313668304307510349156641202801715441117731689711228642738625993716179748356337561470264626553259916947122231791298834891373553706060211751848014616098330196821682722315687806906172366561374053451936512591497798554550529729460626209768903908687124501640877902127596871051391886927765491136204247327404027510586600078840630659725775485150171086689029635622981937983475202235119515506100260918378142769641968385202530937654087735167307997797441211677348384183879382310600790092158031882458399785748927119871183791359234558688553296361713828274424699587301662740828709299355475617441168824115501379241520753052486788347357878147712452295508599672734495267397096933707555292886942740334158021162828996573788139345789477673412046032082918302643163547669865362322398773584835095684081317425020455860218663216162163275205778312956090334683748340338254298034406025271010860014861815813695514749578216645028854230919154280177290304126472750899329023973277299800643677317768802577679552126068057098765550103429215451571694627197287735891491728179370289558974947206282404354606102200390519062830418995147988918301244176002989049044581112103579820320090910186054697194151292106399458482600584432396930644900026711063628211460107517702868036088161657419126727391334089099352860083815540102883986096623001248644939135046003446000230549489877365692490137262211547673903196982136505862252725000600066524204767495008741195627787647933201987202215554569751513662484245956661848267506295812506013478810290275460118584159896626470483549386402198029280279190784962205962563068913505335844730945923253455471978696935123622858409207615141320405943075978039696441460653083601411141909541765978641932268347927824593404048453203944609873255432245255805850510830063986671876238115809044495011747358409344409933828031631739685511554477271471304471040719116513053278319235210375863769353893995141147978861939455711712662279986829625386599083504028117413126019561027747107387286689135949640565448767389162204715740706192119445287824366987785042386160231627627619782967984653471374606398943370541805932716945880914586849104506686270606593188067264750125110356633313801127677053195529132046642798582139761325901268722909367674423614668017720099565429215042533789378228961480100879901631882130500833673520404511364019573224899315351945407627324566686804756391297760035100564115070291747221904244038348176920661664975103141879543482550271760516118698366408212865032978578902386862895499428066691219818722486981749530755385155293716075370597837494331104183371110095673955719030752348309171064294472001161676070030273848279805412662641237889135909013353465002250781040330557841543743505044999850280092949336727698695752473425535191997317687758171879726823447546242039524735000907751028406256141410871823794665477609801005404870475266656003910430560095888979779592761004795352341392968912759575073027260834713495305999071163890560123163488372231055926519592748909041532660848226728363775056186479980138343936074661787031494457504612166006258554716960149657446747139812336266264734040630618608114947931140743503731653945819926073032918018496167778995983882135173441363330537548246579184026410734765132598252238842861827874241200374424504845369021728819400911363944664221626187639663039720147912348654555589232766054658715232561115407685914674486242871973741903157405933713172201406467953538185533894343562343263600766751497096873696422354743611424257957812989730403589968805701319947001223630146143951642915432934939491458933364537450591518081924022366535597186035819797514452342788631573847455329596517005389876885401344721958962991585672555114930719467956133861081221336721941923458953834137604655053171540391589268171715817264779560764557363614412144800288388155832326010427408574948226658081047265018131776147069521984724899565155318266673455957099434185379313340621640033112607293520244145529095312699574804697491093660742395909700588106874076206093067022362430409081275365795798959467849398180918871156809183156415775244434210869966884351715759985212291884483349674284986464345298737478919232265572249890226370017593218731810626328725792211483705108376293326919844801638642396702980891318001823788139521922551605182202180493742324406759244815829140978096257969683525806981238635782128782826825884137628206675072744130988894024046746717618163230529240241663881635716655792982729097337019537515546939423866806676884515485177022455502673007247627095687099650338165372483112830915356583975063976437210255337396454750568368195254553888403775692688470656044835781242272716347389365821983006194568634532447836557830476790945433976783492783743321272629949843063457588538817247804683599621818034599524449243178216849305305805493670762307152964746277895541606155390096443454930229245776279704049659509888334341123171999181847431424715219201239901804371153852259033253696975591271784279823254518494232843056333619123310650627913270664404525267960253424236173348616798021286749404019734311294962789932004545051321597481945386464737396752202464631333848596179512615193633613648527967804197827054610130179971044868610016557044444494399351041685703059858721119274405184264495324681964658695033577585078782994867717072029931373061509296593498768826526132305030894801016409475475975920152107080283489224679724016603099363056675685944187742398878314297229604610444619246349103532800196480620425781484187870150428166369972761685492571180700252414460060928663722157729440662619746999834615213865200690285513065650689430006018053325674782638816097882689346892518104994973626450805353600254378827357510324461513753340912771667776048073053957520055757488550570367657970123098285102010754993660289087003433581950555574766369357191379726998627453913219197749380789385291366921853024561005601333013236616989285327846393198366981396279121771861526872070597906730232764096895152912060882051213691249261933385719101226126718401199602300186693001555657301654598896442824826464898646300591157932409857818596112225421141365529263365597253087553287974579611793969137236964238320716213610423235755656611451772916106029106595562795681920318507446543946144709756815780795722616042678130729920088818196193887590122895152307016658323374877458797009572690688412072656278570986043238834884426589505473510024381158037774457584614563552737943424472774514941114808571232136123762205756483249592177943171092673385341552003375625082708307991223330579039907699633919352255407296510867468128776869117413753111581402687626438168182898966726295016600947911497433996887212210046656476234138902710906957886999650759024188590473030094687594814679741668650253741096321866549730466704669008105587472109147802479220160734140333469458511545360021283590001203538446760940865510271650651444120044368324642289228191548807669064418594274608834653148845146362727861293038976626040932800268962096606580326003600858382619210368106358805918503438292122417686517236273377338976123924618829442265483865419661336020926318915607235275504709857161858477272606515894863047216386351701144158960210989445516015527411086529171573495887630344163995506536814227565598061461002851649795551235656715937053102566492933005635582341516117569050837720951457162310290563464565299825885083220666390492206548148525193068766758422784277796862031946357402151990412881496748255308106373904895106511093717092551336216222921853159221050351388752887939152957664123602072296299740614200964409324838349795343834217640952873567953276295429726898003357452989324520392005654879286973278041567907624656832433257731635852852990021668292143054053374051856423421251498152255631994929739718423275789309095615295209553817494707238566062422900120647502806831230632021097066578851180041744701351616207648936079075856495673892477139715871745736702154074302877196460002527842282303596112318820236481483336184487544845330036974039641616935225643317715474148769784672086737836341278951348256615020038414602924489302150801601765011926250568499574741413693207763320810798313264056604448948529097610425813006271904303389452880305057087504167610482760821423796347346606219220408270762927961130328503853556470580607765366135793042876260289867917217406457405224837991200027901325323603697056557677247113395274888126465326434449048078710017544791854342691124620977386584519078739840421206654983401143200386930028711892185039841012391180404511867227137678061650502094537551266397249293365809396697146526397191558468209176820494797690199411991650045663287208593077880732110112738377495622424477800581582389761766365845388900076745852586686373680740627804159361220384571855171939460523660040960169625012877446437199744851105968499576465201514656668759638255438029107316798401779335052867907258037916474686339880799879850159545015035273030319150618369531171154456002516158884030359324920357559907462231864946903173574762891463647665725863009675269570014227587073509359961617404560838204583416444007875717437713778397112177837381471858685648294563813052353942188137290679269410252590205250413598387328037517712657911993981838899032486786670916705298435191895035197695598292899449596680773947762668517930213274100201861232669075999849825008559088594204499686700633369383656772299647377492937487721275574269869163871397721784408956221892032424779263471914262193388238895286228884283387249864164978771605294731321459433314821970422380901836904936934519294159356227115036746207539209734076149419336924488617715950854602820227204002932321323739573749811252252741032172871534504769184752351329048366104418422229514946032439281856049016463648180907787988486563717609877240459018926403122759423481631238075714980891926426491082892798265209153286782763492342816446023014916137364857228863091285388998144014032424799684155125379472238580725558667840705941881854675171367690976284122567382798715133862206340017118950729673265334872721094818169179768934241704376051199858809067440818602247369026951427344956722178780688135117062748419440494675337645560693298405555567823505116341868336028140390847764651496823814758134119403623165516110312177126053212940000560545929452978886636497388340054306396379062034958657441724047954128542226959741342235015473350507033116722282801330217594225940398324192717247170939786862804842643869865420091154021040960979111459670229289366222133581615223179938843602692046409965700788527383655566013227380793903101126141648802215184484380006302319278834394419765856601913979312894236486401309474954515889673637155757333290784814297133891092981169983071376670065710812706317838188922501597259853072226440096475245355014267276083881034099977977737179987448106804316103358643872501881876122654699628712173673328042649589995407176183165317814317129291419153638622189967674945020087862976557144422977937435095545128173658727681397696074222431950013138844332222075424197169934216277984697268404763826083320333546219659696652787165669658186666021771840286892701530293225723521574168202712414397562359346604711972969345307160372799480209103196298709099587617752963351469324604891805697995756538453365738839949211330650440875804934989603963123485345773522902444084216245487494677382583730965718389564019980427059192750733817573883447832705538889464019659207379009981047935858780259798827212748327088552172073248533935346108394327696196249924590419407729165680540854524564133924093269946514823605191298578621513894014547469332828436820832749553021882496015684049472225908484710639921412873140860688353440588120120639583875838441556890358435599867706564359205178822053869725908651249672818682644398374616854997642702016780304074286303810876611097039038519805686764396933612317872307875475774094728122069740254030313930100026430899556935942855612090834186382193131874082335634122126888580016883990500344235201384063264578699699706938612021117042448392094580173347283574435791153634356904485661221035332981104269518868514609767572868321909913082273580873703852251362658973165347907351183518569380776563923332427545787806966260704972261566688657589106102921702439224394048071180457192202934889033726939092905655062930117393387443752653894007651853935295218145845368071208467549296321886122817611748726424600531999209143332372933929833426859990403493127901462328877395457755078532228516336770164294326986195709632078745510259110928347329364569118894127326383221483637863422015671887802253934118438023371792914958329492186415363301724710807437450934133292655499062980708540003874918821257960389084975345087277384377838855915520173746405282660720120066306231918259117074778150045310020844814071750037080693136802932733948795839740269728007214260873255931483525332880149467376655365632426828145265417779098524768291708278830942953342578280548239074346283199082027356128321958251746319165201482409542989816877807615350699165931234459333119590734198989966859945568825115102690335010933960517841290657046307412514664139281003841304521576019848323886843292464294089573855320696939162026443547127537404275895065533736426590793248551557258759831680947871067685366354258172746569473716943928162012434441827156874882513405428883432237019542635079402371422588552691661029687954788882136772439651402993321949342944618423791567572374955353243402680372686895879967120707986720943567678012246794060500314341218557979804578722467964755352704694178099705421853683462168322666258187521561646044654891962284342214510509531895555947113975706428936698514567502151902311506828972823111047872641680003823499482473386192154963048811839585651720169939166924660972279402030339247722048436790248969164003200969793987820132974645397075589066917045630848191773202671548005392944728752096006249982575060532880692624777038245426504893936462549048410559438964439998544652664915202752706526432703807510264118620382252431706374538269692631223953867805653977963299980536780763503408716327368174046334079818806890580867895714866978561949121451246151209439478172112618111929745004763583353945437506018676270724393821593740392281486888876779115129149982542146894765621086253549634489617194999480191848803965373100241205669000754228444919681208288777931881430876510665783393204022112778110968430506768482248025644147560132842063355333786521629373029141493245117199755399372872191763727052525802717253133952456701812492057943930317198142578666223861852549995055485935785372644294260043430669573424790783207022395726513219689315077475024270935582675427141486316686995029408857264817190205041361436699404351922042291523302455160191738415047939414216467514059337400428106458835369007883962232944706928014581076960138456645775216513283548991163371173669130335173434845529205219405330257832495194382753044947761702765720711000054931988249046569806259294740445294398824225900471298223145764179931616147448707086503739578582673978484360122661856900080661213726457824872930627910745262592971789267769163602871922944105049841053411800664013285217235877963794823958859634294059562847419205465246244496539892578635279283921423299827536338124855465791729471299903715730128745498478630645261616497947815024974767194600630361729463016142214495625311378704045498375267917057566381768082795206315118297317055226962004779698995820949804488801587413678238060820118578698963063508928683092710042850090170535478800597419019714543704903712085591858314140057099482712509100341103564975534426291683266412113877955428207427766160721139279955775423285099261609334665814196100953959817554030213904693930973844105004444612070882000308540884704835757591070143174302080799058243506399404863488986293718450374839122292954638916402001696210719894655400064292743716839040010466883690086648346854588866852019974710468798087991718232107589584154980848995080855486239012867416455947521153639658148542892678861238538696802195680534882033944793753505911661726281168268972392376788413289915686478242569128966717715452318322429579464998881887642336108204666629323986674593036053446077006939739614419712903177906663645050952464520788129253778996856348828316389625268249580896618699825107138501867865191836699812190422354768921002215749101553526726476181534970333054885825969383203955967726640678300907196794155004718459669318251262671324865123198645074829718308016054672929594246922580465799539054226553549401589626081486699217459506608663484686425673011197042730794689616053367137452692453425312998797738942374708879121570755473859253350663520131706306786107847723622878392902190928114223570765141249556326415892201611082512558203928006403221657928528956353417921173090356155469290469531677543954911516986866913458225768586487033413068572212483354513652063468778756881012707622461574885070390415842473189890389628434945542163527670277121868350806470014973919390246959283385584503755178226237940186357798111926445196798024239065899457746015494368911356173102407074493915433751278179781558027568912877974326884258096444442557030923060488207837834803347464883173733145467716044053757814279238673254476413288055946769278768837289114611795332454575468609077461410132722223805270497313119279331665507361307832941365941772663222769600773390933592310672950754761225746415902356662135749380352345749685005501521645827745641208680760224357509072255639804183095287110372877556019507119542592374853344203955042279917808140609888564048671348419463767483318836595024939381544001191561223236557522917995358966608618030619955505925060645403102881571437718580637489954548093779909155674841674598764693532530492427214240658467403389271631353611840918401732777385076781104998782229076776414532248096813459553226971101529134602576218514826490581241994794737414378154614817217916484499815025326755590948330605009156655295837224298303707094671600346009299321748474546167842343284013564328049379802382203239604701135533693336076411864402184051776268527529139740542919243423189931522668752530537959580568630114795698133500649753588315771319887504009973005840647128266974592548711953197625985288748313918380400233281126590001838333403870783194303148365308797463583582184208074604505456398744426025044458728134085440305149231180004987097742603342418800615032090790487430028013501926962876657249537888631363989958867409849327142203260144770537693005022047554168340318503370038723973933833765474840814923277953677301802875404675851997943754763822019446212621767945434402471829472333054782512930805205351171820952807786974397204651340384252738956461592966596969937533051810950595860798879408528647666395408312671497768582130924861693800384619806455204704848152403397448279552897651809806957490695240299439859944753606343005066261587611928592371893204191314731199877218537426367200541461351473006267274867819675818668333518629974128831733748624670135861688909980960571239767345717130368182732425853136286380328899770820850184992736056326446612311014890382456402903277871627074807944684473650017121505473200191479101467489167816048131597481281076307059422693154563336152861492906492890258657017712534047289910092466977956570070464960110240532574959542897542400982993179018601782880760734419150360922921870537968441441742001050212789851968665598636725452935054904970951603320626350510578521482964185651882653466289013561197957767043332708944198675420178743912140416107723974612234465877707154564294560475165905308876460612409561950426042749525065607924001525286329172346098244287869535744878263355594757872066850010521982543621472554587369550669390210844091464768345162223315979139487689157572581689578864154072465056757393831880835121672347339091339070468006398166641696539394084295132616038381331750663367984867480366186758251452801833513112934284280857553205317863623280560839837976610738274472550212589411929164655472313221116075911876182115548491495728714553349320723843063320488159117363113793237881596260085811745870689905846832775461219417320652889666245643087073507602385152799079306296677346436837592445409192533567896957671031112069291645359334009171502854636047944280319251500374030638147681785271275551419383447734836209470063278461741649063856690992373497725966552468512551269299839859756749377943787737536483974761444642178100000327140219352542581595103986093803449990844862016375720028381723839049571299066848119507977914694777793871127220630988965734191597955402759904830409149797372879744955805814951030132140364126421387147665550290388870447688083054290925252024382189789049902252900021096095750314082969372001276601991023854857385435268331728686632755773294043627447618864330142436309961407398099438744446836981608037962587044196824957021390624937029611072656471961837504134922210845139466223933490202043525872863763685695695748769715380929003189498838547480224181621664122662942393476903352363283955203391639047571807719556260259175895548087527770244073819035671168849064990197674439488089941554587328334574676038423791021419237215222520104741679050478305089996427137290504414440976543831893563418039780216671665754594809564728105550246288008711405945980349562109148044508898133403346453445743064258565968897958428449123505640348447869780838217041799346446270868102328095324672072936936445610945422674169688851100974222633217192408963325182984504442776130889123640857948922524125511133050813963075572000498133428504159856295602859892453831038260309795874507517197734196836292156673142313613394028054920207979716470964707656446128082179081720030085228218591757061622362125784926292559425032389005665420196146986401580156227063642112116801450988794819230086189428425339253581679108655072383901816711233950612659653257840082891648396832891869152596428120290083395983098914447027856134718880834670860998269523982483435779379396730848806860951735087800633907694692807176837458257286475309212126127109775450213212879228000594825969260201221100178178779292832893022553469996583064045598301716487848601960695507455501932882825328366106719476079468684535668050166446154719807870213533204209214306582297098344706931741048028106696449814298701568949368188025497687005972666493147981188348421455144941129185144383444364007542805922593073795836367007096983215346505938429297794923838308576216317306875891961516575994703595146872474923622357322951496172717164933262086564786686717260087873632105250891530288036368409042212545359238853903276087631500747142070094999353050293182158593665135942970898936685729326293831817954323647587729555671209757088117646405175327641251810987292750800213452806161758059575314262822268691865370159358902859442334768007433156715653531656848968772428887905820161033726896511735026172536298140330527428702833508451573306345769383991642594765713129330309030546858509453173907148023206846324673176609180165053063131770592930884050950665162444735681565529196121638498799160904878263111501896330763496247739085414333908989782369832663606692242287578359234223388393274304790274020054672381235284961273196048986585995697968582120321157815643861612596727226276715305591867010614855124361001964534114538333906134501990598149122496854648623226375842885311220408145288561228819470570715581072552665522363248309319611958868588444985119243591872931689651550765185398055156739156352193811690448203641794975794534287139212846889990626841839488740113303769558081204039331465913607723283562317899167639085422989945049666638826714593882961470063269544040986711029515650253697944031325005766497987808854021908021025017105431256422970794518169444947088387163361222880990794102946163948263394835885864483456661223301973982216351562172673265122741316025840254514945553039207701259272830244406304432468132770523861041562109300423624323843631832856486864094492856009298257005774111993969948054685281605364223282165083270765096172111245279195287755651684392571468997139856370252661644406819861875960541025541461857105486193386467773040197252867765342417136820980252462159503892772159387533680304733774218323141666254377173103705610079329515052553405693637201475253950053454577562854509165570486092697828757606156392601407880283790672792057052126481809448300500639040288897293484550480055535150152070779329693952155104149313093060446358261348115402399335327633211360125192903848908267801570894969374446466932551531105089608133063154207548616727602689657256977205051490295967875468526264761423451253609808484818186876106290369568814928743635354170492901687428867097267492342230209337346873102518515173973785864550231050390321378245214884506448733182598844115009256774873997588742507876381381185300877646354500555438539864822633289239759150674185547803868085707574554837878954723817894834131474961938351041121819442513078098361746578673554926761271872160805462105712141411236303874244244096900075776043000863582752703255382802634424960226943001256200260405103379170254197931997106549715637879526953402692369878014226172544868426491227296873872374484840261782932597057393352737446466140131317922996682045731096271787304867022413897949370417867158853209171956860444580932253554925501798539384639036755892465788557987862966300917445374990391271290248540439628140862935745483809746321711463024908118854999805928500759278112009331094743521423369187029703695602171506419044292521596802795228179291606633823966150000784242200818729427842673887539838155068028388680468049577315597953622143126180147164946314457299791818719118293222050496678315746208024546771060432567763582291252641651923468649210771947271968407217188460636129564671037451242821978243774396487770250319810357196789064627134259851225862706605266127008644454694558338734115109228439059775038297940881178399258043223206057207192716560082181059241942824149256074355592583643646010501383686551832861523811757201825673351394583889071413028995335012084572433941656018527239016783953860182896296780643408367286286531604802633644775634149919987785730713743636544344251046743295029700818487424118966808980832473468195664868792776144472053450693469250113592800263030048598908086778513688973248262049618831211687759285507349057181715311484190777920749189883963780933509001892045031789630909852021780468557343152638539056123519131513195842095008549355360004747677969725066190383464535989765006777144107555162207056494301962787451857252758280058918364350550078298534963893963487330936574441131450769828149611898340792085537549838959658854480843756108588249323857187838283503425227973521994873278212269732425597723046961676261113574481354257061583467226320720635463124235965430423408469091607257253988930340281956454018308463791228496769477199753248336384315129565097139160537788125010278503581210477388678448426375266671625156483721739943796100637894038461787660124593773904767986782957296753807561476373872153742017999705340435129313863068894085772888428761459747867088777930950211818559331442523638351726162999731387774128739888168168844977066480648206645561979335420426367886749607960236980226593644206520237574284337530997243818828398617381717685002933487071329902298309321420452574319575291510190400736583593980399531873197201317522875656826414017670821276784559499713110963219865559794135500424713275504951691249450369308361689322440626904124918516774853619638874976443750653555695001381677128540285743421528780760322257204061067939014923290840846126729950574971574587711164571852305982782644789822959646704933766605365322993322800162919649600436201420212755055457730981934083965848299705112021636671776830765100907568638398181459728696231901019678556990570752525414651949877717631503465888772788584533532988924673906364513039941419949834492743275175633379079257011270337834650804534244928262095115693500041473432097422621774031771425455846403537824656114085489717638201955850920587366946204381660280882160593519720336254397456268528593652042265035507824533591877992840407248780564395058943220018508561616835923807390070859078949251594080562161076608745085887129503655808768743822968857158087627297503301383390931710270049352466435000174849781071088294224995441206405103456579111248846408480201007049601147682615424601385829170208091763202077837650586219428779980790582793329026313559627182131704530574979795263806135013500463890197491972848985264112529624395449483242399918359248312511984011209319352127828281731584082480186064970069802846785884597843518591063596719513534002788899164612190090722956061322742802390274811612297831599252696900296259213356453696087081302125683282006809247690211369648108485097417558005524886299275740684678273225816925537354373134031271853454864535305275775314560603812433548201951168386504049712749622156844421180087717348092078574851913817135664059558224300547710371748696144313712643262967299922369039175066086557261862934338029158011245084218990328695959048016039232772426200764467356330919377635447930696756595621194868275632427951649701945116056637654272953054552509757133170671579639080731820634673325960476760017837316002771044919735957183705151701318581075035687125138174465789210398623410239190677357219638271200557021353181888061005775811043698389514674928076116387420736569448074831977198927070013605768739561316050554105793214068065733596133062803652297241728398016353867493881407690094557410629577991335592191371837988191040475645784728068789684372563435815454561240013786265896009556797649296379865694408034960200807821437319530044816364277492587417710894936905140291014605038409203558808349857114770480991436223041797488866579698688876801875385366934943855699152476912302571376600306944899971380575095041500075936596460947065933195211948711903792219503927245067686201450916462592861215909010218675395200491605349588837269188588065776390326266309949853835837289424612163554165216905485881087248121713467684037113914399077331808447252744884386502231741800084684294754695434595376238868240351852943911854904620754330600531290904772665256811892357723811252814362530863991872677809505214569137042554212188202976528408026548180410833300108289238485447356022786173748998089599086839716617490466890016316040302348492524643370864390228453480639008265263296157103461050140735845719569004572616532573430773161022239612322852335342821055344833740949300660403796496356899042993569299833274084645083548379993277715394917726725357765833106697725586622182532655994676864115314413494537682630352138599348639890885495555541455734239229661691817938104700788272729383244674357644882824541864360750610547586936360350218866386734466251280520959766457938007106610474556579786322128847505450899393837511622949339306043246869589903873412557413933513150490466619668265283903122582195659278191212276639977842644152764558175496787515532509681893551156557999411690960213506816465796984100805350145901963329064100874889387924629262205482318770962105529498347632770730076442132436673951129466975585863248281271357784966167514960563617461842689222279381550172909242666649278670829806602851665321576648538141010234657511664404590571062088324711610398906035406847066446864029833466520699222875358562279463600306028445913455066221879371778828836599671804668188162722048440140399197097691038388229285521291445318591718042598274780517448822533647401390702673020647615079084385522767275578124732295736693484772284486810873297063634090609420112297899828397428439414640017143898081462420349839933389089452702236808829310626824478882712917673577816958933436968402493098958711147342349879971922134036363627319784327381282919001447570194853398616543097077806393643349240366977323109528946512583988125566022381892759391526874407975878689041633518503366471144678822260021720096371990552543254500717939507547596445322459829074067544310102709701773324243727810025577529547196871108337993000013273178003358982237918369048792280247316221565789359978875196126349797570770202247309264822273826638246234484921846962218449041063765445005008976421505065584319667394328354854070123574709386422891908999853168571976144829533706825002664410719711097314334392828864355808480149119492473075768465366427810882612128604063107861344375413887418919016921440853245764386431454521997062199983947613672596445286081891989180898050289688187868709345800757408465541616757154458670195632256894857269132432495461316072230957052774766374214739757083078394535482104617714449287808500736283785369450562742420402999434363844367140543473389455911651360719713873231091720091645658924789254678409844050275587215268378908652842596175530648030603111297448506439612293297006472402130206469952829928943970187948454951155398013033369426377915634629358339781025598955803946518862483484099658034310361213625707499186548203930163812878680400242995017932473763478083444503687526392661705383887348758658877917701719544644720348580817386554411591065547734515405653236141042367310901547338982257377830992961322332201356119674244178950407703984611065764929740933435744437507471799780494725696529269274131130001143609150710074796661007293299641382729505412301231996764350216954418378620811885710920753298348507887035793504461797587950503714472179384716799567472553268379201798480982991797053349008988648607825392588016823753502539105440743702849928810310709902981547880923529162503660682997401359053733814626673912409321766242855187055685126393293162303633359466153408619017721256792510341173028919420653840598918560658876319003165840070456964362956236953115793227215538563569290098549832562888965662624918881340785434803981905556590223489095029981799654031118157122727343947051906624254088263514499920172498777334217850705887229315150986255812448072506790899709375850702451464726634972771188212436142898015284311356305096758064693148925425605391498204502912037769939330430574452749905310814700900501674307628375809548758725374166141460077154456933932074180117885855351680614013234045363623350043780743936462844732471316115663016033354721539163155322989700173480036271414461602733622698202504336463859809447344152014383688914334301720678265572745709853793833008591434075849713283284496498176293503894419994331758840187376205345435133182939046054068286023310228278890744257766411512515153045187762005579624144639079126365050570506763636608913945636308737113930254027543288345738679679023653167962304866399764008009257411742716020548412976964364862173896571087194929171851730335175022703312774022337440093928171684767206994978297906660605104298247769184046258669696352901043019008627595899484556152349548597253939476792229388537098876992654400938869235325988335811119416736681896135652415274180779470134665462313207343295470983017197105602014825787685201085547711747324069993868339053443191804151033392325361976634447407469244270432176203930869914432283100170220522433604821126195382317970404948650035800264984554388345254273288225406866874777352201011855868989040569007048591924708138018495799281310185441422330010092183200177744275631138753219705707565365763138888694340374920612064212256093925824943270723387421045842448857752479207804146349788566423000795033558755244595065105488012288952479809305180155378609331274827138603266892082529520063551352733199391836209961598945618691327814067912033025640342746664322871865389221389381524449193160609504170610843705776246980260009477670482046639775139757532499689285694564963523757453543815944857943114433174202769150339761747631291296410074785966204850490149830005321215556226239465339751211863111719940571363326998636820972587783964978655380813671491306098796922025551248817715215105669411346143826040215256604769175009075961742415674017772483128853468305109439742195245341490520050099900008876094649437691062265221091137574516340965394848332218426509883674711557838726833895052264209866789879419602709323129589810514263570862041966361204172581212041774810522461242444694002807065379854306453563588101599760876129513206455388519117962509234133117419951899719118739474644924048286787031597910101527867965467068402182282691546637731209526197061207122839454764714809152151373975977205239947902284691509837826558498333165089796413342237753550507549095798673464363620662544772826475129051099247421634638800438039904135909916949433903864019992179609214257317876159193292041897923959621611887823912364285984070642488971552242606345289910002081896646133430181163636165391213060779042206227538064675657685764777985765197582896366546486265383321545789244989341379420201336597634256090560975172934483703404564618836386320504810769265473839407201013336064973847803134896066235831433962469427583847591843004741072995723856094318264275551017663141658458676575133699207737874531926511899278535781552114650378999838424259032988000843593586275956498760189718304581816011257033021713560064559725924624323510231607636997212537109892565581215987661586297218382161525357511033551137793567164536055872336592227233285635567430285132118614083973624204917889390027310514750598626389746021744131844288689415412193705736749282368874573419061956732245856311700503209132673029416257811518810805837453490365726331053549257723177184933584745378567787472714074431779338336515515551768183106661259353733172016440253441383961975272088435568111477816887971043394446019109956917562480182269727830113909235552898948326532619371257025491741830984155044393233378305783407543591535271335713031173512349415243603899090889648681446610928489720972940745222874858000454261643387356350286625500562140671644728363706157827202350291706446733345204177371604895272627292034097587252735802523047365256397800272755744941646687856131220872044618509566073444881627766601105861728556126063298824659271048824452613332022715126342935531607074702801252616287157818521973592924479976184953752102872088816850958601912972072090876287972830977904570703774038613060757777529639232649946580205745829764880128764866224343156755459531284401263521061173977692544298770312728554266958484713760782960750552089970145411801599949570650025543624835290958748224690819169015483586718057135840775126472789562539185865492669720687934190180070734127076667494750560249901686653960358252299608474708749810932706026931101870344899810612803482817539308203795845359480284140603457394506708275609809264812168292773049159426391195794652113804239326129075944532673872534320387034025041734715845375052356879710894919455215180998782131104643491667343436828648066874471437288005106538377411471875497681413366077285896802416865490291403798826497871670180965970230482960006402149192248300047629288961571182313687530172915773816440243228252512103088896893516553491010212457749438555211275662839391640147903345813127999703686526346785005347044177007702289058318525241925373792508029381148675517089266316892792132240300279545112235884351338036255728752082809303199892606356358606154159734232677463214926679939316435255796053385195644344443116504326084173978207279563124579989570490300610122210284646732320867576990436142102892264766450869337304722805808802574911086342430917436643155972801071045190861279797113970946686799743702357938125025515055816117481154325321581341166414235683766199942697734526778815626446111424026313071501362518915706532628585127884767313362996775616696967297933363464833173573577368898848725030706263837835246989896275279905004455699371154137660952683405222697778060468357366557716924926591416228966697750518352536591750043280764709174301301325720557462249961777722689417513514131928839467636644464346744348523790478553282183699545836369666420102183416031705967919027905064181014229212000921679584921872330648142895601397151440869171239316395464727437231554393057322950022456925973426643889731457066546604437845468220111606026796508276574552576134698540804753480722350412537025313502276721742760081778030365422197050599459940969195827049378679353888291559761748096945652226840360148834808586510438182272129678914591364838009074211654692681536245135756288070721381402201959971261009445217922050566308598982658805259637041769828237875504556141551160244010718341759470073691400761829172134867854881982467922378698051612342029148547290283349633971884151416029631042003802272492950367663663741492894908364616985457628651619405395885465298819811246482029182447601799222714804994435778129574118969406496844081597213403128550635565260606866201567715475225172958452888046922453987583162543205220285740420409102296467492088052072054209479712787624296282530106653675550811517715534544436320426223193914708040322258335184668475898842368575448698354114379275404681431717000719035399504366845123175634578996618496474995404655480970805622319289865047114479788630693872433966681188144702903588606123371922215485314521577968952986139179281454566107687165682294376388468922930587096676244855397156012980181998657604633965648984157899712516434992531521796063451943702185088731628165651083655220052928250690591741525318921913332624990964140694617635966489061745224965459081635825038101287520182883987240979984180188965567992989601244349826969010654901041494806179778488946546434652895597395604971469762591452788762595982862900507920433937820290506860915960629376973959993286794660904346209321410462272887234492928639546735968186914587592185976345948858320594783564768777935790598404752058738293372804678305289236768944123400008529535244516957186106180591284590874698953180955360572438244230107788353375472258831619598423606884377347401757588774995840497789578180123011803210963252646805684114300307340944062096134878553834889033910899161683563175663893267350615612308381223214528527772159757464064852008003750856579155730848637025680769437722014849604823022328374125593279116967488454226712318879572200693618019913574682251199340459866936007097211771838154825590302615095135379446923410246952677486481792181662266608655613516402114416487725013764697502369238189854476468089862537983330447493682991193744682353447834353277427975897562014012936025214993412140476791379347470690782454331598425528451278890151943995654540533267617134290999592334364693478560590597386525756853579920148869507949885607633168208935911481624656989614123565614187799654606135055079104832281800803886674790123245721056165342183043897301123551543952101651273712064611327521676764403560274037234374299154005534490604245204706930356001608070131392594611060981584109885481475198397200703398284129654677220291740174357812278006619094261068240034252192317961094484272223251263209542374996164609687962224104132059360700750045859879871647969463150798893428148088371863000208282283025184737240330648905523686705051010276317678957357817060443334189470998574302800415124003592279124402696051697151735449590490014697092225929431290337809039082392448606176341781552357651737467479479904121954883945961869954475929586598346343062569455590689319502003247520125186207799513321825968903045914832141382384431193046874630090983554660926159470105854041043477766387525233100456415334301184531229119827865989727401514482026644031721360048728153561281706498277727346617832627238068657689351225188734486981602791942762164058255786933640810993949440491371574619155362296581046674230562748354764718293488219325765725399997073996972675378660970753154300505323073204405847757669409744341763836121661712338346773167324551447612329609156862532873857943059840555552435690841546212467410111527001472124576843723423750173947388969326421042583013137674957755750146476006809973455680594627659727467704605183429490713341731095469169013246059355253084678897963364025853509751151294933109543159543707833700232436435295683431501296308893097206148845404395565449926057952138647238677352225176107902219871037919355413095277581508261624802581165930467653194059572496228010084853013353413963241219083989321097874239750798037655417240509262634641970447132324864603327365456318751339763825388396185444154406360533956254164083980417172897216643416491753924501624312016812695326846196993067222983775951572238970334115987637153482253890411551071525884063696555585538760468649372429530497290084662980114108926601808885569134589274410082796648030567464991651674930181144737007682109664084940004434076308708368003265086136507880057425044071360937803904249054846208266888805257605611538980871485746920563241404371038530858644448803228097216498496208429706445821361366637024272792882327922921077855787315206748925851850005762684735027099428976694805697025003997032765368522298110828782678236393595790633770649866570915197728814509947044297950527879927424568283863140628162746324063064513608563727549340175955106094852706839211350784450517814656063168122576582604704975792837221142045697811794277078686649620711641534804661225632740896880432541489450774497501021591076439937861006567759549099152400552084120387526431321909770900125682350360207894507180809420639445470700467243176068405898912675499009632264215591181316015075117412077254661856845678850975968849888460809373365494494356547179453617550020272035752083439631849444246529164244445649418561788571908382214725960323799365277691396178855688052028870958573345408386124235453527442728468052748584456593084693983176701405478095677935406383565530998898625341128175269544238332174955577639694041906891741154968030939413740481494014430586790198785335132161629704902286003133057671333280836384820419121338704486758553426376334570126285654833182489164813535116285329795292984586334551019384301499961715343926481888435373407043285268138968289402934504835432771355513131344005520237226532739784485641902600969809366030520669749395251801951588389809504155016147168862392765232147003159176922500998860627389973833221665212557380639541913944581822361120232592597303735874960800877624963472499072752414382268108735178961516842341588458894012399857238364525358935621475897853038499970670233755902452161198271090473378119709060961317771802919686046970072827238997259022043715211151589426166461888102500009980357371704530976808099921627268440220089149463155132488999866045224042204631673835699599049795396797027187744077393147457510803628420829294297988812363777294742642865108260361935163063022911458904696728930574505881206436145824997671309318559696724068644469723118675196553380078957187526897531046856226453801513575083544954412392532976216327489520895510007912587894549197630059989745205233661154622626034119427359405131622540586414378734619446369372463972255636753222211874861034633148652649606075324902726495178539747418689333643978640661972962246714990067834836396815728983359581894030315652236833306498951499735251383609599601908434547233829864366790644372813524330918398939994617109954077038356758534237634177746225470601354420427489914995404902417545988840574010173495069602725779006246944629066147243787279729649409316014903510659713177108538654936772896694465239938884013563984363892042953572251999916278950252697383337925900478629335084432149421952858007884640533483695197039085875519506929497731668874647150587894983554015639979188428928251000677854741035886081129168484888471063155069375958932799949558254069313966027958191549379553796140190057483591792526381146031823007616898088281481121398565328779000895457375896181492385099375913572268208721585214660407638726662897549478957257735385991304807482620044872610849496985714135758595467530475402002299463915638181735266001306147696493975146324049730561868202019860010110251911625075310929453550754441780211815714304846610202674224972197337784812027663397448513835656087739988139057491122581958206330510740546745577011723501945750164013871704389190708095185211368465136470778465239723705380869642681826361953873877825927411985617199483335899000904671682848797418245867945258255666202646869768893480039372410050970452181555604261214007835562674141396747597143001835852496635609890070999610293692876716818034063276362811749686836920400659469614771931955597137180336812722717540463643333117674966819910946324232959986030603896946336986994880207520749964080250806580673999672089750864584763004142133736022952482794299774393113135767026842500542667135314691975860996019662166384543902786152800057677273681734335814846605166624618767843942452191183684834022625234886102512022332768748367521942573305083155076164962980282056157564818838295833810550498227370645844534943549345648712522148391436130709913995891511251567308725731507328234586225506130359591141530295103374464903340987465358420344922942037181061124060046906951673661783875570832873619502070972630552461621806189852065350981316887423958287032820262451850854907975403273485827151354516093353779539529089032623065294638685250147427481258752439401076216313523387094242033372714653606717032771932394928154089503846227343803667011099091324631085425934616533093143658395531955227640489684609594951824487279308305979840420737105092570858772390146366171781233731406702219843019054727796325712543441760262191838281689615142621338545159599830812375608602651534848809772629234721165417865214705050339369807441024917069937627655841175358982786109427892891256174079125842739219111277289661741859508904214546494326758176634180294487855336604338213000237949962253427133325484776061149922224046869777440385750077470848026804514415999363877176183059908769099398614281974478018885518523211279858781704956076149254197114761540137249228374967773127306844744257539321456364239630231912221317804995167103142737519461330674359710586599601342714264479058414296933124917740167019825433881831440825049089368897019567582067941661421051537251506550625698353509707701126446510392920336503791616892725296498767217628089311323523130361272825341669473735371893332857719802023682284405701100446009883493348016845611897112995338182292208785537598214037976239825072732800748982234413739203351227565622088244888471670196856318776349540090129405635216387699879254708346508329682573639079215298710703683115555312711333106614331086633151840056718010803855900826736941570263298295785157146347179725170752094335458323565669078279816866303662445477466010919011357360494344784513079669992835452606700401768499086188486033081495849969197398745813454264439746682728192614550704867826371827544045368129034832492791446809513928295628747417533662709785510338274946703500701373865697989663113266268274268813704560942754094346974266695771967847391056204567354946955470459765488010046747280915637228787513101925860481687056790490128337743326831181969253055012745349576634117910636781637392504369774343940382817505362815904463523372861473852358312201406532480428668529903166340657597068900541694852368449080298695527512308537456609598479423375807399213236769616800298188624011240488304425698020340078491567785010983800766223821144500273969071116943963424096972303004111568305464431927378290820317347700388814775253582453137722998916763308388445998674334085892725053447617049321060723878028799810914234716608240537559270120980804426921053835029887616556657351216833553001557662136973054521639320140007981196536878992224368734180803192979132059638084503757940113282233404105651235672851625915864850761318969666565745317193783141131240628769835929749393373630885251666469700778873286006708663425050397270390275012192582309280358739244721423581394588922226056364633911943307561832836650851783607480862027162848678422632462577736642387079463787504547475236299837920922767394419869691533409171506579382984999181694720620292023144066012311460810592794128649779788648218023981818537596507067484416682304860767035304295114286421775271703000152064661966285211580483649453628863571494608424149024730510217288507321129698392490748801196388304475017872616819514212077376479640398528064600970595407929208064257111745967817614616546408705969436183205342498233268684813734347318537689562218912741975708561861975368848745298811929249263126816963053954265612514283409446394601526937080154251646330258522007971900871136840373871618090070585107695307314557077607862290182465098708536048395534544883873729301684522127643457718863402303563695116635921168364261558850821027063878892836087851636493712114364025905990364617213686377902064585990118700702737367222090338179960335993212853362807304418719655056149262268038912900721697133648315140916501288079069712189139266314050630200954037021939567322523007996678854506850409142080822416689773601480374363729732688498024393315442911504494881559652259964625756110008589195032370963702825203258095040945061220195683236279750728348310579361566434470071431141783194825487520262728425681486937344188364815903797608762742528344981303027157414780223243861639019240076315534246291716562450276730765363071985964035810934025046770306257670379286564422792832561727746267063912535714740177353683586757422952182524442160139129777979919897966176555613109106595080553699584843781747874207845701703802750608649644336402429176719064447452542274116262592492735767933944743612194704613489933260265691751582851820679528387205501569425444920090332033548550513441253282929077297944560983598801479692091031586839669575553159768147486668546761919729311109185276539061260965832799473790108486625348612130303054233903108883342971307706696453706236527279115563614457428774578801021754745985426063261076536612906721879056271320250035046423333934121258821961227995140513614514337541969984313987008935855183973772952797185349823849486457172268231157819402226715155453461345120271417619620642376504954970143426137162394556747184348608310603188021249966588055221869172219598980843995408148645533698375982579763505236432081388574819393207803785077881837602318142157777470265793178584121856800171032841269938497767633340665118226574111273580884048324265043153550537481420879493944938907035205395023076216430242764393529763532291780005225470308210111044243934772463349605635349994253748863300294108966921917997302841012028702751631546060547522893931451811485784817621764569095273023232069717408680790752674227144964736205359728277706546229946991875510048309693314840767703444099578364087248188498694101161850423616989614461637680534535459272848625906014947766588530725738538234899267102134303871223144655530304487185598914740207249411164203452564532396583846360538901740711173986557361886524284153910176098322247562613795049933384807426665358287178609458408077193610276118377930876734846636855621992772521829341609473125361230098990663076057385860869231936899156201784530499998513385463528001021960281393756889259086586228180390850456622328429060018139845646639731768667157678080210652628946845361646655770196376924323166273148527356644290748236571009331876324751382666310474862965161891472823316842256677233102433880030077160399172466453478089758389885868610547760332938434138148513755999647706206328510001225965510451143819867784756523972302174526632681696276814037578293181344975059540099195222469202372829131803282599926292074523294993493491856446625781591037674334658000918104827776827304619943861959691402628485329486466822803306092427217788025139639304640580667278460061882378494562828786610722846877484256329732871834798208448078696400377691808792286241025775340800212884590946080642835335583721266068344246012065856631132839209776681339539364447584654510014805176290814995263507108894804592991840772947771351611063998357397773821061801910030219307637630712037649139415266092427878965118412341604343577081407106631528727539091591909511853340386319248993485150225876798258529072512532501064169018213883612947496677090488015226525564328944783668699675279976842613055067655688428016457561654050221957306547236262881186922714777826014517099868750732440499960023857007511586169435128171951545763517828840160933610995506193616401672238988126200879298997946176728569460851748898452210684421001226115989796543576605292131783094943307242069474475637734107224878795652204218399102798826271442963600017983939103251133347735624318394938161040150736666558865636696034032093867869621251079248245970191956344902723160903415295323853421795114882674361156413096101482053456323098012257109356255168983514772096713213210201756929801828824627187708747425976313238162882058441611076902730894055412492055518186677908172367192504561231608048520816023353143123826723872851975960770028424190283133686664937625478097146746832726369908165641032341251045696434391102674736041698731653033261162346410695528615383207229823848030273494208457644944586897992364335111651956436670515792044724332026974552298360777283748492570406102179170847436256614629510770465873243000859958161894676098391727712260733071609006629319209603287924643843488039059634587050303169279297301007397946693432790783445887419604099094378483100354921954568586359844965275848007237882406540883373455450716079988372567528964662855308106508120373843281201237390362986763327324002835555520754602325735910456875166376541840135533883822397173239753790672225045810528091844951786272822413602370115140986534504858992167517769043997241613040865811712219495725460139257136459990639484026886525365191524957841682217921283186216113780921236441566603557909882481958911650281640753569033720841471244725562816742462721302312236603949861674233778417529243011798676662462116268340075707899170796649606012520064338570242543729325713023919168215297737109357888833870817129275473703409981585918270604993730669608462935571447039911690643056770984727579335480625267304213355486515358374195980683294576589536525151704641847564235147776391479521261748125229042659778717110012482185812858041989906188124902442264134711756988884740505667204518166953975842286381625475347532364675374780731181522971626902491475581256760233132360472381750827560942843347651268993852941507994695340464936695396561681119394245299390159349923483109576098470649238235569677072661377493406973832087563044436011165107890912345243824081620738355804819039161088593654366044959863691470197308284608580595503251863977868758376556761986137299253126768919713918264954833872875335373416834186238724146848718820728619922913476158648402790692085795363263980121735077617858408620461996276335528836919806251275252889113873615278194246820426199827823007320652043061899387556106168502459735673420025961964721264498826167529430229945050691987148666256100558408249610174469648269459694827518089808039078271903209294323643918103491141283588442491267904417894070706067522817850858900277707122002575860002618472242735088595594439439865444627581229306028395814034683780568591705454444073303082824958402037693481110009480188246402897109598647829562141392232467785915695321555684781930067500677706821484882119071914510506655651043308608646973567369561613358771944894102092122292152294966285652481325044529227663981794019907548973686631349602728723661517232788930909118395932911598522066482857668921153070849932231832009961808694343204655244582624212199693611604843275469104698413497557706011369878265143385392649652339758024684375805119927202251268585501531672060210781903861233805152079914724785839361277126589326633214938828778753135075017067840284485560755060967676273739954239606233578427324383524142387243370394079052725219349750148529796994613404892416155297325965830314104995964236290751728697441030721046274517166113164516482831566574865856492074227916216990646726431568018155998646731261123480543538112794360391041027236695220045814870773076549638716039151376308113120575041828041539512084614694642554444066306217892802976661285414804913639405423922529775011527221661269836822231672918793333564060726228493540897857040986782671594067473097589531053881447039139508676129555580904295787538276777481553553130459399511693712175251150074240220370838909211438261730705634544780796335564622180103549791795530106537120866363650569199201439448072843158008178505290460210649731031420852152993966641018879421810531394499887507806308611608871161756329105125803477280493710015442487550046116219063175656000430580259861931731576728508375092039142383986230600446430433699942418077498041542032785825418972748585768603588707135261002255447351293389630473100854129379144920922721710677578583542209132614174016206584465661030834916607745618001919643963706416440441954251478246303418073921759152494205465131066056513822183253501083116971302241923972253187998093102874186100461124180644442859555198784415912707995647010950169300801846035130957062953323696585997773212971924984463382185151725086683931991716050704022628594007561364691773441051459755410238156593416183781321280864770898527033222347459994322593051330618361633069891833110430493930483808714449131818340834426061481927032375046124792571495709884276958252608845764327916200478074897593765661843648062743213548313629211844110799341904659274961397178221752984569071390814058219710460708634988035122403754069768902383091487429994021539307297539349262509334343763950192268169293784043794598507311307294562820609514398112431490098122287000325671008565894857090307678876864066937214408290771221849252301141431480712340110863633212480289044216761741244847092959278548868543580924754062226737612668750164112303776174860078452215278589154898229068040525236837144877532298404932898635676996546645839477506756631410968514384638636467383883060798935708433245588848090405614498568959639662245210539832479840762208792547777541726363731518367098905663335984470650417865645545382260261449172103891992309291335421150561665213720732597791399941876613010227467169052629559062137740662698340414201084349828066061548127637806768084913017597076442721697289229074381032435468272357155875731562601086049044606078881682487936905249468359647217927134209515422320023753526479260854122196589143761453292063650900655935103522048560884893451014206655384652727604940368069849430692242602048475151333686895051894843360924397794113117665485059639385585066276818994102120784004378074164041953843283520777438250104233556503282928112001664859941795794237505762340715394619473429001451862427771281214276160142410857782223549955191999312108984559010451616453301275292742070232754679372503615286890255721727478198435759409451826404332893950066282579238499914740002102280649136344629570153689630170959263638111905725938204057376341263805634158147599964893524600719113828802199863685750411667602284872297126606924539120667030730319962903061121130073253072243738931257408253611176773876857611440095517570217602208542434781939866319816947078174403645913025326854047264396192292963884407037032448112977847090829651628827076204299603392524637450527676890069680255507997443134812775221408489125612106624659546031354049632904403637663288430212150219501211090935535321717030760164867243924429276751975218523750948183136615237079326396287507124289528220406424352920301468749357857815042198578394934885873278994388339203514561832890353120655578808955417369690777937591989629393524090007062843632411587721209992595163919296734772202162391075461581557662379690830547107178260087550227534076524574652756787254536286962474173675868425977967899196919128763598842038548852635909508209579213902943891329936959169946612317238398072159105085636655337354799157324958926786705413213195674874267751645265087267017425453375120619067857917469823919839261760746309027148253190878319907708016320132219201356284970853918876073640538077185705662092393453696051322300983522671410056273216815326122276679154684602037445272230450098819548268755185030953381632199938921829103918002478699648478120752234293657183311648954880317611818152081393587233271412216117768273417332480618774566881330977547132889139391389139766843440675407582482810602121588423440474779866010211244471899863377927762270494190427911207398171225944262746796197455527431874830361205541942300358535721514982403820719695018799273800604220896099248055008265184836672382406074577108873609667172449067749870941600380163008427766445851665423710602123762541872978100623424939827622251803200752002863552779786605376582153151921846536582623773620067198837879997773240261380365029389714948349105379942565287033323938197810597795583808951012791773590266062963481971049188920854607230356191814160808922696224405766698749254623095956752460596098322720680940227878633481520354703747539897568946221921769120332264559319653095643457349095151454503707303289864538640430356641996184057879992264485781586936936641960562830375770850572023109782569993302065547047319600636281869760369950787956064401038820127741462381867939811522105291659600549102026812577422552224826213760680458740529551158913079234303464365940833735794902382588636396902247441338497714646704384154484241870686273944931408828729993854663254344450844616594142025212035817380877383386546677616635736263762074461174158184752690730324337748477884916436679623980848444972813235370167534376763914190049611829167332441591390108210242748663685508592061199337426118471622510907570299900584465768063842370848186260017578093559534301650918831039844123474695919577952722284438837227476652905463138513140033432558333060017028491507634287881902603869879765599809253899586740805934106140011937030524740254681173169499282234783344101596920871565748392013208797073789175563887451421585461915268830851098732474278413818542501726115186123101972772328467916892728897601616488824828480214552871639638447241151798815267935599364632628469420724179722079886417977593859697153494608348078580478564816478353746180954675648288057658966956315177530325670683881192290085223711085331632975529956706279166903915725075885186788709764938668367693170167679362323916778318952275932644781249523319122698772063329593871992950990030646039438073080711925323434390929646515619355771233476875839733073485617592983629190992467284422124392391438595008783567245041427001087683775520417632389520352422761541508327993536581892167719249725944087602577359307210173063514865643204633725201658411782229749794118128909550146930808392058380220979156835233693883563223290198827690694758244486104780904373401954916421104625296441836863140758829183599140998361879999261715480954078595636207169017975234749853873076614603130190601399386542889261551046400132672219499996082227036837864378193622227845840084581950374248499518567046455241281742277907531678418556790997237940797399889903535021557652602770469652466251462656223657113971446812316933555521231951330953485038417132463180968968012057019795405902639057746613474896903502963028157794819899339083114458541810229237163976969521941776191891288211011764916830805086975687643031227874508154891105281225569211357017728869468871802506026286435391996054287305346197909382726831475020553766611388838534054533544043617432143451541978277933895699086357742953920341437020338503431285231334228552257696905771469450453964017286594665916017070973790180558926605868434412005914065421671289285294035076796944765299738876373517560705987028396239668857650591821731226893211608109440181499944477687586442081978399884886119180580044074220818246539844835921604438647900813692309129799601454790905582364958429155018845399712311405383588333712480254196171645513061389798440394044374904533014945467174627177287884392176405964438583980100145596676260406953566513895668590195039987505842499372641511799783293243740132551192850744445620680907411737032087383249812898285905450335580388427276996484321621530004977081909154888752860118188096222537625148009389020996044693396756299706936726380244502476954043815503624041630591198929333304249605760317998911840938066957713805995603078638133407577367813422382077387944449374187525315614752110389121437922796838523332994283188583110952843453719028077835362667803574122570128505550609540278705739704261348071992130079770114745390834765222227246628806763861274602355849676668059761551789163028117017714598847374918366485982419508713039445345384513628608642983843215808777041022633893210296917779868524267841546112371377886990889326829041841481286342212745044978519932591514900183570888589928334742401118837834001234718432824796734405969077221704709991850305633732564937549140377302114424471174804161715885732421731805744346493696149376476523183780148366923069558789274002879024436068241937914537348071296479489230620353753094377726950591444456162334600620907137454349635840138901012992679416565890838292353501076677198175610802417661170848902706292910520905899456475666375315774099601599443167531807478343486467235714373643422548083673384694682708761343974597947365597884341299220758606912108079806664486504254059469265038547157591920925222435684333287282794244625379487336824437211385903417279910739904835507630128442495607733534128656277649941007375237746735746036576793911224424529551845040704803409034649077407806900078634302375750955905951091349213580763096382209341033935091384163219260521783113706395598279007321666529618217845542719133585544934509525416837781320595677077793128702144008839611301620460055413577739895177685116424824849992612608463536704310274808734566964313998576770374310573291535336670188759451297774473259953504307241548877800906912115911197416947036329322793151440668317386817998670390257365556413680477853178062102484290077464786279273063135018161383784162173231460009903014767877101562864175182922650134796554876417262092921471557817756752960949021625949441917197133456420343714102855702113785112190751082937848657738232772624747670820994175974766956531280538544864098337278081276915110657531926205822829998691970822628221284048790741885701601640104396974868399440534515655046589156896334392524253872426504015258571203180345921808353981064751125016686450732770662078039380515611521271869908468143399773325879372775113879330733736762025453072788965430026193131641126875475841588996188736475578497697935290655458418768492881689553059315424081130122325977901712115973772702957895253387975309559170352955075926501989598572480707627923709825777033868049618235662328271309971729399440707409412843462650128287660484192790585552411039874896207335888900946551119863027136263011843978920233363317976551344209168806726946851801249457952616286663771134945608140259234884737646685995690280953299383370104633417451916291034723822190640641233053005760188322236875366244907016961749977259229202586489052766886101816750133373057819811770372518839690891094135926952116861014191272000760927708980261527852905159189445726260617669229981310260661668586671158117982947707157184938922176410793108322581216175433444205071839717346541058131674250340643366785602982284756754536007286670885302930493817890214571266803987927462363676822311260013717823454511664876519433092991874014716274378602890036349675621076529611689766603270876006527298366517492308978768061650172746368837607279252951858045415667806802734274094269254910010845258331147476027586859850406077091092762463195667379315683835148954665252216276138292604475886652615587678391185654288089016776171965683134414752080491349806345521468024339785124859891212042943574369652295190752603819636320186591811896939558727380695360545260799432565143596882734515535986586082711842876997282735415924880224017322676840097055883744687122426718702123038704943298029741084490626367316634101565384986514724308173677778752168695433254355131410814153316098986231697363855874035448777984347707368086407623615533609955444833682493951222495163631272790097382521460498661093979887509410600989224597811730465665570297941630997942146229302271063107125195491376099146889835049540930875097123071476365911945069529847335359504427746620435554813917179246382280016407704542152476240025873351221616896740643932528139795770099932556090652795549862213901985657833780517302418780280311033592609016135393777841960938384544947993177337043381669864594352770976259863332229923196867773342052250643045771300740035871315393346310270697917866956200081387958885881405512149025044367492273087110362715289896127082255157193942608712363157522258024001453639312502368935903082406979006280480069933171882845579629540132623004365888592278780161636718037579886830523252190818484642898279696299445902981165188380287664460482559677727311340196179221507241771523087245933650406416633751889092196327914860900648625407444399919200446362684894300769750452022360645424706481522850924875566373125688138749736076492124394900945865429554472400257609422798436392242784925587470505014317441272873451846296871529589283994907191965055113475719655851470058228083319838600019267641350294499927055722810571657933655508027766483696009685298802420411561717032101580498929566897453548766159245526924761461702184411385004778350817768690666905767736241764931169904758558516973424016725363632881165471930265529280441546283812385232340486169357264008014923630733705817244505440462098018593834473225738523870286392806182577272457389240249065986759597170550001487852929490501911366883656181291715486499481071206154878912722908314200304828352946949530563136723091171212853698097686320794190932830341681127944092435273907324648857533233120544219071227800599973369095943419422722944279117160162665677923004521374257312352159132718096487494252632213747535035573134837873396531839731457696500461688515952951726324272996796363945843258191996747668714506911346875832479615594100517972754141883089585450060043959282262913831999362616123372449680331716052878673606102243767711914571536928329852444479722340378277696288809179363703321955543799560192518832011018766358758692035560800340041904027507331483501622087484114734458601803947296807402164974339738846163805870483521063310408351671073780870151248512062010673980734839835827924984980048655638879536408576904139710193445220249936309125979397288168214260864375886121446502365042669892535460660956315298737472383650705218752190282800935852294522180849515968831480183418283338083452989282480009053409467230868534548333633159099737586473852262833776692935780405462044606601760877769030169687633529137225003761109483878141621536329033234245352924055168748453903364363851279740433424059697211299576681902198878924943983425484115450287023013965794747561457285276429410452357285229802124800691471732439499963349111349947327549703100643085998670748387198779548683194098534627744755211685448378118692672148052365843182503105883424573891236960396479280188686835517698640318876822460346772967998907006189831794978870644030655562664203017418298605537002320832369861967317437461398213741051038788713114253656485938831670811017487445224926596521325160979699359340651648375372927029027805415880683006838893337125239380655882430832172035520699359699813588173256120523306552015228194586059123929734683391005373271798153622040267312637259877618741320248859671246941485738680133680282729530192147824962558787880151224084501592697638135929534383706987154913580096732092633434624301572232158837599986237683047492289342105410364643260558289006412023125851286660731036544873298947553583131236194377643509931288025231006611104570713331244628857228315454409514725356363489770987087200264963269308593346601994754063961363717700942297770554233422907561346834611099558348022399859564636871167744487728779417556019245968838913963271540085028888133252585968783193259466449911126510096707815707546488821530872277196487968607865465234991123449392663291778143774180555287249465870312657531087669714071522850206876070444992010232490954107573202970898600505230824570084423931550193787415595024258655818910939096576430750467208715200197793188917718921806279297601109671384286687937659797120339304767636032405733567246735280601580586342923021610736946188493968053925725025363804982633589388159458393484406499397843720036790806401896113014995908844649902033913632908106663590511316298105232854329787909033387631248715320143979508048685024094870184420583442984740833523682671144920321418610862569293978569046415731948770450391343209648391177799724046825661399166884431038993907514846631728607136153737960418486250967667977924168053107831615248728573016438459357006526914041222771054794833146461864322145707055865438680934359628441469110828984543163751534677512256719690029135876124054352809296433428396763543530299370761314455086620716898851311858034680128661472171395674442616698291632380583393782668016939294130164917921949858838311911929091275231239837967612299287433135266826271427644408037897047150527229794716318130671417821935375500562500915909128691534425636596377772572908510854356934641532372541897296187621492337903612173227906856973738412587017665643725663638363059448883354639286044741821847888500683714522040159343494585535547464933617505395737650547241661966672712653736722437070875025218095920095052226694662286977838176833541687675079755424124782460807214855228414906062261037903166584688175323948526949581928859110037365950532523365954054706110845885024837585072127668971285700562452379866304652540949936893423201938794458873211929409361304205425290669904161057351097899850978200722250600737779958727841854441916797008449365322943324768431507728675983985087227191505103866860101013326643464261036746041052927890027995788754361546622235287693408997099255644904003894856449424185915643782902835480169270490407358022263119476728058826602608322930415689296044760058335740935397971144810311137104936665375173753448380952863710598003250981108924870057758829617780407437735767004261587994561499326450001036465605737450041671170114753872849452560635912923220201132453406611714827204570556101542802369665150023363802998412246573888077139597709791127167933803714395563684133747419686525135594258773152144729297321795445607719249196654879207570086550398287939960737728609850246089182355468836867550501149618693877539213356856375098043698106993990844442545470727633886772175191651591465995556068264027843018002393140443400849953885083675284236641676548756068142966714690526217055936947299235007293656160839404712443498919674430203660474099086980546178171404229494464421899167388924286167728942716685170193180451359938848375881518163490520805702782740054051254867624097956376649207555992363936165581486346968427787083522897171076738759089250211933072705404383684068575536048113141379498351051868225125959856761833098788506881888757186686377881441751914297680951143092967162807678671762217354389072091669281122886270496272948075984887675134315822438304021336628016564421267459765094441904743232293622530401573529585182899501332383746474075083048781813388558163498383471727539471823749616090734048619284851650801355677406920252565110429557440055105194683575419449766316579610308234120348054434990876095632423032704708035780141439922094536988770956285221972732598816795825644854428716678859515277696443506272225319340616110404844366687842413155309657932812944758214386681927847660806567480068653303184768602308067356221097065398133632064441787312765489175154912706744248167912157178837635093193559544861548356380006069182051228343664186475249217374814224807952552064869577640334680978264298920275507664247637115489347873428064173006424916260471610709187288352734623208701885603585751177446086865340332877929141152941966683396725091516014128680509022466253913125092568904813931936486637485163362470189160213406612083966288159736050115457596563403595001847146584503815388992381697084440312562607421164412271735482391853220484415492023215578085536738828239853726326870349735113769471070119457259018363454310749987688444845336361615746664775473297943302733439835428707811401317126241063147836591809526886333497594141297483438543966220237568335817884831784070392303669569584861115247373592467584876777217355981875212149516475755148391496314064654467525477938877436934407722044086685280863524616563345659983806678926663040808832512318558543638915140310765688974729706080349771512521545669817917754524080823690976525950668210502307186020475327715630855525668918346232207242662233575883837569399763553318548915073349934041019104093595919959040672277355516331657887715071307534423833134081102784244057971377616318722292095644092207070754586905665773881353761816902395589537936155790704997523105557440708270558977340596583792268435641543638492997309000500188273217270449599596559587465307270537876415418735235230992293148719886124677598200076460426507406371399023010720906916075035764391936363813831930577096817640107695459421268555529267283568954970447644240080034419189685942759096159152559551297620395105648069878652794949566078658707276659470229824940738637852178983432560420090814916594449241390523092229687301805443693935160678643395523807256852490949464739211834772979854861935327079492190532411725569034897366792057059533126258926198668160376528874343267965327076528589789955424803269809933646866652318382360154012084611445511453050562899510127613452813433518410293883117012299722694154719389871956302643553778718810048751228078570779323086634501275957872536941365616828875143928948734902337494143576920478864803370389744440884343849753322351628369823003621931017533141875908629287110686524983626910994251530163328240706211682409687035810449936810196150447518197110994050655337413698155542808363863144438247628912877961235463105870944175161758559368682122493848689698806939940157616645424893530645093482511968075781355890410745009841298366023253411720834336431217261447653513263597645347545726806082630178031776414643202379444685938484153070753627032557894961693310354694487044419212438082393343539561661918244964589964402839964722655386708242582086213657118338137560029361965410842128243859420992103981488522697654285429169421139443137965632795909437425561165855701683983026764695495846646424279592743598188485164161163104544066551643363272258677561477408197114912858653739559135951080201952269911789288315485417916971502204201590157535052058367170103357697685064444992679627663070108177006032141733744115551277350049751563287938430134448836297510282530317086218096473342967252763829391758691723183766886392375128771270935339592360869396228136442489156577590981092757839011518689038752704264350880648180888921995557272633309728993352181723102946430617367180579733886144373377089951375973611388633826996873630249582375432765856437472018478270798213492892670674070546324433768251384141538779093206019576433660308478311396020008922545759689644329327133299117810008662909363097755752870912485644487431060418062739376818430423479871148732280025874129808982218664930513923813149029205003057140749702952449846111688750191925636716310628091900984376133634306278626048165412358714143287628033518515155035709367019000452953352519485307729909688436746341574867241489711985746601488058244199158025741146183185130381272175546590431833936728900269007446065833921009330018590339831837607041287596245003666416788899008410103396023920832382219772017583519465124463774229449671064916837216767681335432720716525376191404170797733450022526502995325284470700283646311581966777912817551005044896006875351730623248148422252599267838541401161139399460051512545987018212255883196825660595457232180508698068723025787811767378845548131260471364194281273693308446920539925413444129131133011574987479065338934621504917007120715034578402153244919606328579322921486389434806220768905175492866850477888531797135082462804196935613396632136418507935424088918226036049310210867176049944632542553645439634254661661982014319398070926929098002691169581659570458947494511363487729359446805152002515213464320969320324322945009419772418982835703603699645735470684672475732582013955333207753921812005538070729092591690783115199942867652446030264112744358850847930755568987820284019285541959658014700108505375756495040438222985399853611144308958017204587442413157380892174573737670115126941382846725358115877919778129841406199829777267460808297466918384266183657193887206355938516960717273006005457684496021025249887510388346812190965271812032386686627375190710814271037055775766469014364851735732598897940130574726356907399434120747786781113134401161793064748433314735369391675223206052258867806802389237017305469981787908075701537275628800113766984310618150813960748795595794256861575989902119383714737375753738300320026911662045058194308630214502746420583015933888249196185819965947210814620780638688263472450759630926874755529461244184286935002740913644700332908827860814784823431039451399295544124520715507921612888137431087580193802443179653882948658118451961519259863975288991370047451306791427000023936118092374364953685893363929291024856405873610840107335490508151635155679553587667629282934667543168616324486718119817213238032924489774658411028152110389945762467974997823884821889127709137147148478681050412072328286650657508503189772054832589189778800947471448475915043986039553682837377304003211508290547854471586933889554382979524314908795473697676700855975558616671399532615229086200383698050437807788997128050950446325386843151254588779248443749971522433494728819733039122272570398427458586665337558594513658279166373466905165958996740384969721941792771095310456554082102267575595897606963279816589150729985197828053221766197029063416287645964608820975871328893908673859721656563225088654140140140893841517082520867168722041301785704048735639201244544050813117643917084214719537215877061627463714089339990765421857285711724375849272660374700331330312328966423772668792241150816136192668113127343579269753126741425717212558932487119906768297169181226621441197591648214327009599278828192731347086923860710349471449649520522360562170194151690473078333300610927522168526452139557029942551185730176627248318515381949808039179073935699828531432987698291045344202798319511995235040631510115365412307050628372289535869030651871561820814467083707762444008920677582229776377249224062064360772067989778667715309596246971756114571133692310404780162790071530031218599508341735913573994188272275213895939784004617220247376647777412404221296089145006350462219556102308514283190267305126195905623240747079941858466267082415114174759202464005335595273527278999218637381289439951739598700741067878954083120670542459423502099573763713797684457814646162243997586067898348393761333569442146457744962014789096908348924188964356096386101230034504480772941287574779650452134138966406407070818412672187519402879058182634921320169790696140647906799495391725728589517021746457036760770598328126696788432556500508844576530685652194849672616344135568934211891942317899478324041832025245239566629814894610434721618561541909459854922906982942686881333414684335136014296544058794749730784141504973266213696690540218161615570799208444648611200957981955461648939251786755090080571000141278075231564849442732245766639917951627016535078871273585415797040700151618890032261575928706079484940322356604503154130666436497546618219762019162659481814036710355577643829082165018255224445874836344036748606283352408979197445044478596139810619623935620900788951212402085953405433409200857605645026300569601919822376097522483628449585084000851296690154787068189529957819346057260268063613906352896245049082819439650966053246339722846617064000508524885515410660261761758635973028151661769623437824718205509562303752616060442030023246550461535437934516513488092005366294845357011811231571567689931956201642765463805009806826028099094525643501657764506743614325004598763523744690666250410401788291190775179582992093754499968663624705327086618202994463681145555710379459810860843646049705341394508700353133993810058209080640232423927056756399844439649065222727025562899108383599245245130352907908774105009661678597183535424709848274308148926582431411431545920180854427586451806334714331968136792745659033370210875622235343219233612935498417186260029058282277110326209251848324805731275020744206107973247941904546380163017322834454325414402837650728359128750382294252886456432962818244430214748454896589175933906542651207043899890661806343702361154642459613948816452127992622054646204970977215666704085156535914303946909812661103027436492170777726584699118495644181533777867898226192644611165563531173562001809198087411681574171582452475013811807633024372272742925596704115998531014212980495541724072741507052138117781868894192165767604563502859379997385093346565714922787341040320164700717817608846330288245534310718698519141076227237206137487139648292205536108251597876732436592703092236730605061071016645859847172141254214810336879511184983856780964608735854842223406341032991046078912858003643731627234207604395038843436418518715267405898760739799798739716353511632852704350296179826356150039371094925524136565317968928434740481971961737830527027805650216237297378720973311849352379766694623093871571417722500865455057503981071398345979151331717098455851635948974913489100524145633139616910516143910306651108058756585341066809699825510582645285303289684838236005297415069431514749350880246767038810694885595570029592743778226676935914309832446486951528026369840829000925621336146930216446846043856419173163287392270169284482846291664492604880519222754234511165042723324088884844342170423110294733893593435090696337052120305281630191352955780398644027551059103206394471006701182090949419736622463321518398791246090259093526802389875262540777995502813340246311958225941119739945266906092009668608674042703581157571110903755437802149703703971848791116459506354101780222070968336854297267386068870834299005832190175339578472806828829240803318335902614540648521565662057799089508016672744780879328624739381114040400840545044184895822638744430168699217325163907701940829900933391397675306282514710073350544719553732435256024788504837827025737209312006764675933183275028329044946132693303415447904371344995515835230484719453645903036715434046387272762043465885905746819490636609391066223288183056954155517003031674924468965695594133980915372410853133881147360284832825193574678781206399865056915765207805585980840597575235945382503218669370621385922880388927511793242624971629453329066874634096273535484765653283850582222412222972639750509127485695183431719071126375492304003194285317658603188805627318697136438910030101836476946149096440357272598600649899755154819428747456319570965334863228831359526823223811480049742549774992406571070031085370064894656732136808760762455278851523392280261661914763200897168130999987562608393410382625118374488048229113216725216345618572237808997700434109168025841193488448023318485979073319566700236954981769086147327807861656312848578063514469446228929647228759422357557709051263311429188202199861346321795445783343801977485826788473790281799276704863162173070782895615160719282099968686589766961427884071415253477651686208406074607865591322060991050226383912299588485666640913026357154501360848846942040266491219449110920148223591765521920652666349278835551815406888299320159076960696412548065602936844444838017344678457370637895852452015580791442069982438783153556721580270105307197220611557395314720502717422859294645636394694223277153752964266187381281201253436565386659049481433784022911663622629980586934452716761694741144148430325366329139794164102164516466246259860292709638225634891993795055048786555528660597623226098289396666928686577797168811246037101231488432773084393293612618507613906235856847455404258240278717475830154330788410707503492487483824851877395699943176309749512145779671721306459075479898215140911549266028341713553783936301075505007823771007148328662496448464318478286187868288095240190282666464810081412897888941513974604841776796351940232955481073581989308198168754100466969712948575022107405172503061320607953285411620085157160677610016443832545852015092470140489311984894235571364036912141162911230865437356548979819834899581103910993328768719035548649778216003310129807041674605263730886096752715805378868845972981793912906627624568875395018174600948759477829134933726691582315434026854444002048244599319773389402298159600916133381713061287870625267738599727885214479283318033149021505414620909298791676838304953025293439063419429176624764713885486180747114200715358886057626570404172910409021761106825495262671556802897288014163926258341287130244484536211288530556998247619250391988551694030979750058830323626150826613757037292344746541032444303837489813689534442499709408833140834051361337905474020141780787531981998395281606049190766824291466378144134153804077270321321886017584224739524306405302011289653897330953049664721264027051424235791143769934421357845305337369771164255912066925218609333267590585310980263424209188560701705090332132485739436817943993324767426500823570981071373884445650026044072257050717964671745449732298720977845368815432655630026422723675591467950634792621005915319907945277473243092275820526719267390076109744036396149128419289193660159264310473224065761541511986468723775503383537926197987796440908764872192559927245968929228451991887599734407968052240161860211446911493819093053984099755678252023171339277141876758724791195334107624464349633614661441640611887930646243510775954225719432687240790502599749270631472952198404527264130918365836151685967496073625487580588239210725412642406871064841861708827752886299732886642535764345288571633896176914954563665726937373757970951261297757266386012658094527013202027267713154631386717883375912333605427945788013727083299164856585075452357953439416007624782858369953528569099721484519970565029849843324912657539403768486092061131924073282160358941883829017269655221094472607186593856391090390005344571551430449091202570943513078218776260543586758187824370941126205671676131826390942460882362342991668017009332915691664984502525290888408970099203354939244278033947746852789090443822734213188290143093937489552256260020833760604865606775457289091104373815034733583401145011564108180489640710721904021990225437601348695528777692897168153769948681347190736476276904075584835681416508883984642971614509922478785138944399098552691764412454163829304027901058508671725315622991346752345657963458944219873584000067218255381783534321726800253146755524456180295292127246563817382375829619410590656170124168122598916203458150560066221708867324045293297480669704718346065695258024813168469059679566939256781363357821277230783791433611388686865635482928405382066735555724498737066114890076608239362643646852377749543369228993651923757203380694369877874804153878691509500356308644899412238678044497247983354903758900545098135656885052399117283736450652784264692597321228365225768341893584538031634515223303796734768501412037394312802463919932511191894325180708029843695441995613172326073675628434752642266511519154790663640911759881638285661235387110593580215031276984536726143435071778214322555055853145454029023319780815188492715074718710023239727054668532123536720299275877457288431844773945542043492789501584844497317690577214922794568209960736948435546347548293121400102884165931300745477435276260162633940073002101358423830229402825442818024915907419034438207602828307499089362676193590628128703696679541795058476503144284192277417222483128359209934085880437925353626171050251302834869056810673160626429533778627457471975691878279655264044444457702916147336885618498283067541738910997192111429961256083464153133016347914986005890250972337698280265881035228146929993903831648052368153793171135866990027462181393041749149118494233010498948902360987567418539562297043384121141288313207679729314531542525657845717610317996113614849322654239058968568073948721810928787880233378708314790124694437023415269954124573511346879118142510299321272005359990491969734662239882082736547107774173961242813858637003935259146753184105414174801318312448611247617278941181434492790461448622401808980905552306906960580507372241172915282735289288422598143080765585297004043041372215918209884203192372614101972042260040658695090244390175951824211574542503925071148756216034641284569288460411781726433006057356672538614709539061864895615861268715099039762152665553936373596193880611381215737348608923734011502219855996657755959195540460452507203585952787631930221501517536376106099217414904205022977917979868405022973946952216114234426013013291540792894773344331847060111817882031846788689014303687076137442740222168996833218550870465287417285189009691474316110295900550536926517840703209323883376222132259069667698389198625737432403570340441429413527620822344174445661313921257466379681836090894781990576864037308120736819580792408956379687217641501393443424381009237970558850098413008073667949385953977425800661353680073995361452082789689831896258680482283826813081431910024585950703580821148850572225703974956342153926844487316362096488145250239012798409394842789232302480732994809942120578159889736760998827515831384398282468866105009877677439867616918401498115568361509128047284704407995876170309664288887553872874855220588193817814998985981772202184417936516479806404634488825963420715072102941154889068571658198634963165029287411008160035217280877232213834769995670808306222374158796649552279170022727608292006040525679568127451391578732726482999824354780931751364047706705634221678828712985914378362083978994888374479602219177212710175131099276242221038001218352632810583562325376718575250655213273365564836272277497562997614300287017772386590688683676132724336496061593157435652095851723797473365713361987059270643050097775711626713420810329685758450573371082365102492898750285414371942946632914495597104195457298813331249505533097672245591968935094204599512693771950177180723387155945782780288937926872348453179834784760954406568898919071450538350056411620263746917459399946208921212326339941733825091545247842483588759556895419497503996975679693807587849563378712269271755303037479886919589577242721020556164169294594746872596468949615493132472846019324171431574244597860035037001252922451878951240389779415138160844060964840105228982598535679242360719649639121983163665290023372468679659779666010848888221104091376047875206285184666413512290438425946132743935680840341299199044158729149997727394456914336106272866385263174365576522502252071492210622886084278597794314052842132364638315037574213087590572703202618961114311753497362488459917276054999399106458281937980478978476416441792826026176256919026375855381018515419135064480269485057825158780831004603095017094751298852787536516196543593505707240544022483809938963517678911217210933863753206300033106148370578494397765237747145803775856809782272467468552407126426841884472992607578033403988249098808945020104582610682544580892601774221903932105000467359476121871252949289407066882043037768284823387853040082672532680920803012525740218444864581261104101634034127025016727985152310412650971729711973391919635290265532684753249455167262052527135446194288851189859227935955538953674355318454952425353955779715467569920094992899945209408463045884239146515894005130413172604266688283720988275758417133385053117480758604228520275948442509825050843605303188685610729362938509395012725350331781577571476975257851725944907474288664564351883576069578733817026634563161932234337371053479557905654955379521574707442941584724493160686113090946635894800319306270618118879995997265149205867356914069500659253672234316812290490328659082835320173545477971065444786908377429563676244304587731029295177991550527514758678951170930875139125905402145296086393587967184552100453019319231762414489998533969627790326060189684232581007864420381183768000041096375442864991633578421223127825199605140347529982168501081648029577576841487298997337281505815433018846321154066704256736186192772500802244641615757429680576209476824301468506983948347058800166393284130569497447464073687607759316394767827743618325443501391473486622921597635494229753393764618540667359178410747470487109492920405697332523830736088941892792836827466971922758049814534252067071658700329251963654550280996829068369326445763250794732241402644257957844497796192396959521953044821805761260125698410249343120850396314546556675448374208501748255512500880644700535548384875950886898565449368744271493863134268252242939488048125323168181334026942777025894065982271255085023986022403668956771557258283797333929705258613561916300071788299559031341397593002290271187438388565120978406661946549969851880519322309418874570105179469537165804361772993121234326023847976725508354934153874994073334338072530306013027483462230994104322195540110585852482122227950199171166926146875376659534580714414157280233940659367710086567685545382405753146101249456633127187185419983406063879053519250553439134729524069635590428706845774297302636206805049276769616056147021540044867690248379591082194283413485392428836092637464459923030044345275438665519902921542421119703098784609342841864598564683450478732889652445961575030928053409592732473161749582925000375759004587894039889040521949178395863054105821366746204419043873843978072978256916187006858313374030595738284568342244618498526099863855211795261150667674081397759402935525711933015902728562098226885570030344913001135831052238225376942134666892217961361594491909358925679538951336141423989146408663768439492038483848600025210126162456855136397974505535845207962561520970616204187823514262275603003131607153440039717987368671016150833621488302009297958648232164821610407390910428146860481616777721696363963969840072345129275534168944422304468304858879120635712723481207560221021922355543943735121384325675036981691581253344154270086064662645740527195455191204215646469027994769747888526046044853118162610008804783736574663461928426504287633168110858589208124946425226374000967542119865462911350650274490571617374195615999811366132659388030760606877943980576429313232141786578811755716185850599267465895184708412163442487788710763656515179543373209043900418046986533253262939521601332691610583409766476522454581362979397041662346007353900753544589012168227281550940480414959584749102643222411086191138365260198923612711531339830930191160595658019437625580210531308613242778150372201725461716939733016097313735514757219945012644573695158392236786447801781471880346233248441526040663420548521382716655496391742666304696168215604694757014246028764784678240510999911409078190620584248817816670505304808207161368399173046496533305515624301132864862363566115615290460571902735902566689845283848317881539636588344735280487556319306740990405140019952864502524981974278605340381532322589393553594950704072903719632067824427614164372655622450602121930211094159461312341131917423708394221838312259192632776565321712563486752166929564812642656302581475920240752965436505642467257292394233343331864314174256219318840241652253742355944467851255981813365981140437381485116103226163178290465196451387443841187664844740638827807342266236675830917911499150864084091027889016412912885271489503864771471496387266254214187993379268164921414050759933113095301709702012010098977681430914194521225089819890392376260806324994680361082320253534965678472393404385122468976090717192982410266642888023191358203171700008239209671967911445141752309692993579573967309850633319464308630524649981275169658217001670795165689669566756094348459719873969035890647822538818167554117455163336178808335687368793530198223226444011465974537327444634506177684731684953712134586705470581999977532958211093465024882424199485176287965836040536248493554974638739271976900370568861227367405639084931436333952682353956372712125492111021641067500882359156922842242617548681585431639768254987674127079102910889713564046242699141267739638066461030623184765840748194746229020641391773700782555855831108516488819478841584038651517588825528436438194662031134978812525700337465398508883661021250505879758797479650901207813750527603716061315150870464601478136756216829667801365266231467471722485001312666213967669905461502165199875116505656891036322816261690514481419056251943482286811880631388828990790081671192632503972922744061245119086661102787629471820259156954867098464552290211336075405894243347630010904135842523349780336051733104262148632534568067965095212891199921343472164907670894747847861769961309578954887575407128664892679603282052736427489594720668408698713710115012471632260945128911113854653342587350157244462709556946889545841071824364508755335476922979284795697687663416771743227138584938701322091770662404406725564817349007916549667085736591008478122277466216549004219750626239514497005674183605929605269200569852141562523090699252747921967788202000558706076730930622923493152523374077793595988282138743048174005947332925448684780018148094982579296642596141184381653907511831513556376625821681537106940005781195932023928446013089009667148855540864039139457815775481396762544755962321953228102920772586158841877488253641946868766690620062384151175706874460842265624966503235781801871128379011388929988930723465323743584673288293652864691061006922365688544388700249009139647722986591764255706810579985264322810033989556183535774638030936134791289766768782669455736671607097205521337753957184371391419635535467402644675102282822780749658769852613864507860984201366131884439729325537818894617772669939704556962179202444177504006661915161707671911655362554391351419603694330662375512082459922210993718823847726151349440785472797229319795529177892624008514605741449010426781900006292600807767653286433797554464455768334560774962290333266906390021836858194625825841865983743565872822372508144619697734997232451369232061067639622953794135826607252446358979053674837250600665545810098563994444258480022682801041899319385229369278538939975544926116169071640088157489857739764871205977270247657772439454543538930613044612399306160362511643298117820220428209422990521055958074197379770292737508541925051309028821158865895046992793205084662323982680484115118642159726245892464473745549725507443222315038063664959128057841326388069672455335384199755861031560787187273642008234528528361505781046932762830819932543245141410814508024952028264323355127567329242379427305555091769232715404988528512775074987667529034510221320713598558960622110525715204536692944791295396207270650396258468380543402976404930576373788055295890480630083098516293728071194149006636735934996262803972185699325440830905482303343648627920101215323911475877331503623491748336389528919540068349969044120648260264645276243439414987436037633949854558797934154013532265540817920837498174370050105152647367464763270435506236789175077191337905206088532490622258144030731641055128906326600767122807192529241938681376108465342255974043182329420683511565870781457295860705356773886470376453534714472227913282540372633701643547173526547384231556318851508015727193255009185352607528167355588790354980562303087750956298343929629423582345169063090742193015973163015556301933135904404533327050449305670781389450305054179564840015963752807605196334981933998080520641809136307197956327810399321306891023103840478900208656320430674477005079598725934735140598074649879813328712039741065477156614197075368267908324891290909544128052424983545239250982100907807889016799631697497518375444612260454138002870125234533433673226073622646054506434307347697830388173848869749976465447217597643516094303842719707870533200097392649374534906053407855442317623599002900579862600964852323396465148699487828299053212151780888398088455385835017739415337980506780254084712780899491517333302330813645506669052194774370516102046660744546461062776558006768985408185807842867449336411380893885847575618858193792116695033889762057306975069753496557227599296135314880655816183972423810300387371478687461198815826556556174610586638439791621267001588228887522450976221315145239025260725279647390828316483876019565222522163856301585701402357676563293867598653417814171914218761037844962856903120981135127884079748901280415704079772447372147622720794258483673250367444521852447370322699724751513642730403995229071019425688412755152942511835113166087570023529105825783116841456030347207703516274561033407322374316021178622119456851061184311162500007880751584636967666097657913998769257130069940292724555113558195855380881704264585415216510010622833409890522199875480820680121953794600315623059066254822866986289501642479474332899343858821283737161280609221985685503892203682813167860375816105538127166472088504091931483378418897598416790295053125602501752959413812862795650190450812482155963759937093014182986402743875382675222203269824369202447188656489752677426965039878905803442718812771614385456270145162921066021260887722506207860948584786453292509541428856172509453225490971033193822048477700255571067106526257267123454566526764389688147596526662787498438087437251512888196747447382904020401167803687185856149065199501919353173205560083426195426725694547708893937243633939861259980257750827597196265909682456817148001472786346933881012080638602464313448739531302865700203594135028306172103366148542366693925517848589553286638049361078428091755170509285565077988232961794947605603305144178130027878623509257141787991361246636487212116698780465188405033171650876600978736463400935669959845443213656978082394708054854352137838464159801652411336803528786347658874819850191099375085057020495954267080208369768542620095640208890298648291896114996140153607572752466127400278437615744629984057130152488438164641071796250288367787465260169620877780827135723473114092404815090169556643282430430718389528203470590811962971938942725657981455919126799104919332767020983609283579840242430368931976992352278075777719641435718847521477354204980739976870176177847669333917594184791991964080274999644944958536130338733727553216447080640664307519259120043154464454341289420460649392117411704304124394854044392714885203965690694463136947243581407366239129130889364806724549097955179708963312897857827517508793482880742317051829739122332827736385434784173691078254858778615753517761008402372171235605714480850384611619681521210362321347188707061132327655423403883534931691124359091827740537647405558133212608993731381911279047016468335124144852301678981370704635406711953919847460684465448176144082225715738706049301225727645288752600698856865122314975696004524460421704117724299541240898804164460996999664281059913475080780996857528435754083342356612670024052407342943643561852945879003274343944380605399851005450923842310230805928419707319794228427326943897777858928624789820961524432755510654695416223664681952428659134376931912748870162496396853038569486373728367886351340791036901226979374636423366532199165839370151896193912552735095389477673297571504298122223107895765022203934159327621614449105498501670570257297818194691122040576648272661504961198495192899377252616529897586942870883685464736057801358146924497421826127904710752412242678096768524260816694946709859673129302534477381754307591909598766864809497770578562790229380895961479698350425069113844989624671440044197288539765224754623603470298212587454730267126742964645587657960814823404286870260311958850139835488498216220385249849588217085629570723633520257187276121833455186783891164867415655804434060966476873174177430969387671868709892304850440120478244808993309210692686655151439743304437719515967567371275268268194993381855076189903962159518185828963342281480557897841134762899213901007352351240458413193886343018643087881368681059141849513922677529560238428680695933831422028524105505159702836769385486122079049818543463603061135557424266869799719787143149107789274703087702842030952056070996063056742056999234700197912208546071035752393895137228013036117237102985499236858923145106860057369426488268619395618932511418145146086252771646699161347641313099494586319166402762761792804840920654296218839858211818176528550078387631295290968052974682857579678913089820261928504511879012348508149829313794952879054369954917197082262596258835381477858885524759054953353095194247649836558883813518379918537932361427418355178961853986182052925896084335347142234483262682612384751814439565301744428580234820624475259009764936015423433556203957565343780561316673806706960035635457178091371398471470873293429735752496516835154690846355756195784118704677006893353495461728036175871750919088090452070839077768531222073148742237785257158059056085605086726100980633581696565256690703213829869012919791689188740814500754205372015165405094831484394810717298385468176807917650120886278045858327841577761890692595347342137582290840984508652354340653283159651462288918318297105450625434245788833538065172388871208139930315652676317264592404371443416998208384410985184973929592961414780738635432548365986645399185097115710729658025805196396710190741261423942929230885581731770361922556141508352912806896943843981465250475227902909141269404282470974623306701754591234295526058275374388860274493864519829652306275401087738506982577745890539026170270697156258029624018482054520523356055555584814750150367613103781131454258734993731419730118278751006897392433138362917968771195985416512939783859818498091726993712403708588183183655203482711305001959936043778342797707805324868590353665420151267683730058515946620712256196238768523153379866576862285665371811125977960355551582220136160308513134673005443893539013715398820154118633490163957327966097514298722369205667157034316003791457581928430474844788693504426417432548672620622695361668700785746298858174389650293225775892290654460016511514582786077640798924825436945499012711316936007473355120167303079792773398258476231692557454649881859752111513177455266845966406688603529315122153992253545972817663970114317206816713304448261684131532645688278618840664885357330115998227597808967280361200773504500437435423336130457749704431377599260135692453874739748636920375390835210071105993483492239381187232397687972648182119069473800079017802538457971579761435184008458811248776047362444015345139538505862044859873841715468511452821398771586326033992396581579599148395942759926393990848192309095111237810928177987035797564419547782559953249707471260556739248194673407596953133052726770869480418920269081153722546361299324495595913776249583298410675532541099347871752455945603511118373354286713255480580936112541298367844928841674945123425209976712348741975262415293775377248442147875541945831460060861601433252363848702449440440034675961669734404193828271887435356407151058474219616806478729328911763714299885019711001764838147392181450380131892629186860878512007089940254257701330983226321338758929289262614674901653638585641708812088779864215010934735642076939382488140432759362347527169448983879504233409924325972744043918717886453590000074732496215697172655164391974666871241422795896280660704514888006982454383658287192422978475284033050825136893867731880175328451777511896645890170321890926137573937857857344703690044315730597536561413792870295114570185062364617068620096137313455788016095477955301085758292158496731902972174088386700165574567732155496818216457277858671995100182431537440268599421739691650388041697130103266282503675168472673479007631913169343424840634300272471263189701088827750292146655120175517254635509059642118008257805839577239877622047211248728660396798490590152447974394889706297988763294214519266429544172283401257663562844483491650848098571304257784005196022287167294536308749907753184944246136486262100363628324109853225951021812883855156813533077035788878896207300392506104713393573852819070626139385901930346927951204638435015364253549175176299396613754085812511838899117522033529544223149419778941913142801529758836125472663149186720559611206617623542308931717833995130961299152643395263073521788564212446032346507277131470904680858091663124481548062384033367677439731371687207036667649831670582212623589467628337560640602670276920883729250757414647450949634627131448390691217913379352210973691221401847045410932413597236084368103382974396242059415340897076631849605656422767890250623545147033405620695333233696898104080016165002984950676579425430523371106895688503201709316647227257621912969803446295697506151320849667222556782913572192303455172974485714228197786830411840946313898603920281943388224077935745297692315888160939669838805856614847869842560011118782063138472584217085023713031129116629455101741052169756739166609666281600795325848556999797532746849877006533756517946403285150068817413149006740446943418543513466175511445343361464123369937356747748280711854764774935427696298301946660158911329210738247083074397688671650582628698460689136496971682393047264751258416548916170279733030985893850307429150462754859106531639025947422351983767148093885167813329650982741663985253880753201650520381483142303498773598330808766183937397614529328801658719860906140412393419345450058587117407682558878673624905080271706473117504064281968194974777637769575694090107108852891940462901102967184244688974000434183788956442589357342210500241382268357566712613438085289427684041696129807453848376185733920010708680301529617211189402133637613823290673749895704072427179934143237428592713854030192069513838205397390408648495127891582817890220884887448847955972125563398042478254596078745738604575055465866398930664554951280560410638320281709985221885906557574337863827040232471280615545764907710007676601603049688830665922487723252501965461773284233267816050825333496563015091478573071530776529342100220718005241030095668710581361005944773002479491371268670172625511184011025263590679435801708877258427850526033919613634441370529082959070978929680230699499624535309390340738309609498950148546915002882739475941845594396788663033515153039125403034226734986065909643294686376422694653838929990603013068052781038398069163650463889298230054084924964869394091615768254167535668497836839739700432351355663112600708323601545560665086695176279423885998847848938769510174135780230999900679854990557855927659948342397457962076938295372831483640134766274065258599453193249355618550019965998260653792302239609904622614521729985547686960465115832353647299931881253422734038316429558111464587903002510750027940538574407576714148553901801760185747715450725696480174803783410227431117200169098773593060913141903389184265025677440177814022435297486050825523366734964184658815524092468942167253982176499610703726212631328280704778359059808995134785549319323354819431116614111943636611651933146851048562805249204363375153037902146245764533577520013000995774660754602277721292763772799194226066107736170360927198271601088827857293389499739561503652351150440912050009484808939894340215315861499108701317865335721443575391587004023116735007034510072002487559929686833818266329553069421536178779340572581448897612977152771283334084747240966297283682288431366927617964879687548420233644941649396860146085387741164511049517270784501764982482312550288838275640968992085980448803259722171124610432174177782271380932555298376247965679388590611209234117934757126082687278492631854521072621694285598302817584957289376053261711674621980100224525174780979066333375779013469550810539508070686363181119520421852968249880710178723763164935061776071371992488347792100358085783877275635463437770721301686222261454262095594229106237212980460705629348101103766398349910171684309241697373569648024187908693027718976777007930481132474271320438204672168266497997732677459924104433188480065892869803618569914745114059743797806496417766052313513535972699193011718526133440589283576984000638164632057980630526947499004819436532179994552265164461555965376271174385844884992978254209874833980590166328698203204807184753644966192158057995288412998664285244676527664257601147149546497012249379702747652437253545359345365858477538992913673095397048125250840293129970749028327782639454719477949350826384319111849336645019342211241130782279838168516183451208817401033367280181458527064265221544276679499107320621354185994047520380278218002706169699523250094833408607388999255748494396844649245167433874265026995908505847283289145010832980092568677115264783700776777759302027851057528027031518245015998254669988741697030496266093901114477727908238222179093274030208230950960891933446130219612547499089795659363832132207340018954916146430066019365379534321322001245328548150768803761659750931677284912695287258120109477160437779786425537063157347433575301623139024992105786673913186531747719072699059183897769027719614172019629605503630504885782829233845126414419533590489517472431265946178568411012343244041587724767598780211281768149412459525027436887771230154104246857814760915757024860988249338274598783144134880206008200911142438970887121990338940316339653993829287049653941634572199349413571349270971476682425201171996121475898575843451904384855911340265219242982408250790628309386614885971814297909745282503983562442951786178557585571905932089764878666662034560741723634145751429759405305669842599268686835140621984048375065720291085882769205126559221779174794219787781482654616517856030696417398664169911917562704301561037298813676327927452942221898855292580518303144432433595608259726170813018267028457608738326565861025986593710390074837490818104403188476712045841075266286451654573974137157881811820352405909140575744144181219596946737376794362769865488361964176412903440322047234936896230209222718079653801448006750497730372297362886973061594149795111667456419301154048002591026108285731716171062129910354818137740128354050344452425629686099839311363990171845988353751564072591432306322810206018241264436688485055078928704534436357874919836725182138153055198013947858142962138919793305695153195712480832678513766780957725914839302483848399054128186731334386692020067676367269166991290323455824562559737896652437425048561768393470302868661662021307502045218121356143116587303053882873251831061615412650497991876506173514736340625438189233264253663253013579706055497560604272831050220360923083366623027203616060690721827447268072438361454430757082464816636332293482376930506905861902383885723932530601253650203925549446336982284691327300058547413224930813785080679412029116599579737121439565026997586360068892115226672014137066700055379547498095081813750765852802376130151414044324279387088471596258364055113270346490511202035144447526115951497940959255705166934810393389188897640820043300168644483203578636284237279699184547698726626165224396874402034287264530092689079073071779368442830649727230328087852095490701078032160697206118050415380066664599015556211004215175427721110694055590799529699538473181376715821977840088535379794049899368352600114347289989262373215604354452496500148872333188013396060672784645125454480213447289188537669549039878686600177233739345927126829355888240601293305174546438804647139740257725089281449724473803195792252694131293468309031357255814223423492754836005693205472884969625235042413817014862543235860927307692477978618569912165666296321353467209446969907769782393646651637445502971425064036680796708771877071219076160336253054012230588117262467834079872279201249646963224182445929356820931270441600113535361504042948933762034770220574303147174612984624183668799938346667215000838355369554939338281188699705171768681061251087389917560326569273644106477373208037441549263620791868577190401440247924118419794850524113641922428165206289516387054846580828603009457213204734464574345720714352156250524747068281007612432309247202304810531565207333737152647289170835359291569117656321033761144113689229874761100198120861792731194556023325557578968283362776135324642319995651096045986936581307280295193968326175056265854045483388548431260887737056996580620382462794848315682397146480196035107875794128091439540565760064052857041326902267505328938282813386127769540386851079270077446665201933649657793246783277646217195878530306082928458766659982246089097770074431562441672099037386805061436265892817892732826962069264730031704075341757790587778045906508869386217383584028250452753818949091797014394075663320663695922071049199453227835169889762155377344519330996322141886260241213590662463217304971695317694024103743347136091699417428841919181215682138004627259829278861389668022644274196816875626599597946905581349833682304851463683481565860379921356257563821984237476386502782325224310894009631930689349430688505344108329458206898553775840263291087755474058177161042385962327083550524460727709847825825378703968929208711981705883633438607796173950462491285602409256060386407298658445381358091439769573967532128962167993181875665117616883175959600228124311602112064299860834332133504093827479956493765790174486463305318593572584581170709634229995396233244863340584202803799113421234640069783062315263150687070533187293983245110068764380464042609237054487835192192939683608726131142259935669063026131825063997049230682425961200581745941043843675002829052613140662085274093412150178568537879040933260301216377728245817540142974434762652550360819723542564904878991930116976717570873348942552372573206638324421666350273829729311651790737627942475850457759537836692741212435364855520190953226537640254987159574226559617711274666372524503190609471969890242073207132977458229066739896715432601977378148193235296601721502231683137504675961884129658883376180533852057910829178461124732949654815951393913910333214041788194503830479087334397867630578784710746628550574146813892473434660603089463997566456734530901923012122326218160591515719782103837702529473944993995822566740802495236182098551770360813685944140060758314700927562191334901806832487449451778817729036593125847115277158527705656538766501354225028960226499791941076292188579056270377873889295564282969267574853173156951791837151766636558966695343368740986906028558812952878587263577861011467104743764392901008768177711753160174052435042626135752075575856562025738717185928223365251557281451957747599395019602488880526792370219404589385708916206603645219472797969996746621751544499209740308025734324520341935925231219292968537778459512249549900430684276713235529797218881363600107057564596499645938637153941568045336769088662842774025822572338191979095396009138141911587473655865590020926030632752285987032981051674586021552555980016440090441684208438214688390085465324837009678829762056910385128679813131316960590627666425984886250264108555163661589566912058369490672843099248420096924911347705548742221146889289590306998997490389804516561502603592362311223981947350398708828478551484457102340141397421427399090758431776173613356002230879404233480071940806125659882315552705737671860554106275012963598364359301306912669975643663390338379190291119583204934335968034078310081380011809721300311841831718332533599638132544330889065340634389575334040088201878962510515810440320769864689502460907549860859479031339883768415727343489835595406895398668505403593424844343503111953189633899561753744422695919234629098058497082143599001469427559324216798346701408488521635244976155484808265365497341589468244131915430341987641612180848824563706720000425056833740361791075222368372664727355282843456314608537337337430053399237863938921216946365781159185693662413578784432322282353095600458276551605094798877607688624946110076341319396334014561902936550972607585661574468148947342036194016369413790987452653759754004927811375904391279724080050791255589094094128865150742229005928222488180320874699840882728268857858764563063817694212028050997613429722375188144376852491751643847140813764906079538248188986538100509274701686793487717743141362060636852988616817989351731314949305970513820335339965224218571629990763794390896581494931246821691462738671553161821246982166971417542064794302365397190850443251995749889646546400250894330852475313587438221605407950889814649017481053701699002137436149692914616609068640309351984163031682097406243033106552155510417848377385319717272836227871002665560573483753285116290386236147147723404362177452540302754730013386923575942451083392863912789796645101697903266424662735305419361865093583381721982165355998213368308708760259709919256216764732613750320128774573702949669167911230875413031387374850454915560153580741515344775087486580598353579674451012130583016863493075028281787958625802329419116255918129340169309835802630847107814102445747803938788918840757249757990430252018055980562187440267770713097784942616585759557196864770691230424294028425179390243363813141749754196058418857733757549886025113163404318183286207289613544140731617408340195381893827220452995677813414525976238795074638801350833779526193040846490160630606178219928871027774872511489088159907985366188322237032230430817881639174250421124452631133118277528206306995471966984005686371670976105615210642923712032558506140309490157815094435707027158171001685477281249710793128331146140120742421759045485214429310692433017840740668118975301492326221841905737082675522456688557936487042254479261071555227254014247203786901545052522083569261154045412436740282283572862024035628958116727481560966285616451000589063716271522778001921741578993988152892957951583369489416901821114519894752420666132060836680508231626269229279409713713420699307411110041755844741648628953336216751917428229901861948673189160112411867425867207506485244134431117599829267893229078685778901649656162099451036184299053574167375133378526376072481217838569709760624515946164962689553189215820386075284823491318074473712989628486096154604290220938642008935095238897796793461745068629711469834228747277417183023411942143590118625990432001828762121635270094335520313419185359551616208633631479860985362945299632609129595223685373583349137678169268561569540183055446736698028887160588331786284032393712726318884581380312716951916065093808276288999040008541400748392636687355231423911289441459482224368302180334935164235989955812108636139435669728613240146574129978834196141285752928653717656731041789950564884528734107262868737160892236458949201808010055730391444156271681409649747141947948065029168934448933474301782313354784138735070348681741084112983661853357996512947159368031921725074803376101274810404332245284348279763369553590832296333137724413376746506452322644903313590798763274958118203394447470137018819231240188394134930012778221138850677233443365075404152299550172298265596917893859427855727252575079703232812597058062722332801315524732091220954293174478213099616081578524972557149215527162450144638710182406985351315249250106852938595927297701263882788515596227430767000942327519828756667502468111690705280545127844266845752343850299489966837203411116954387881445137213192650267635136741960674239021427960981875072774645668306806155881805311389842542982171623921084477406910280546352859265587422609146551490234033274100398648414749308636542529136582827804772402192312316316928765963143132194264935922032105449787203567818587718160142340579717881403343627313177326002653487059151099539039183759940608456748088616321657520795203337384138374431428129039297326450543704422782138486422038996127070664815763014806850875258430949947635566075805080385473527150939083037064459094711707334347639084713218365087371728230758751337091941836064487896334697098847002643778627444859243683384029239278393911806845319002443105836573647851638190527466812450677536042249473198368913410049645620021949480033339496295761267291954045571358681865266454102086150367677441099981804777267040083394625592069762791761492740527527992960124010750227599317610918273910587879873371261620804397937766103220759622811520206592289578145026894084588104975828479251400922632285473446691624598113961625541009697148676549412533213481509870816366271473022476445614338404858428789269183550856309275831697239566989017587511964700624355794132312464729923915436622254275501329618357856476077889695662408821455983817628231695154582674409986147884887246832207102442978888813304475766036267572856180360403491143222940966810604911911138039616904729887426454107714629585770782597209590574499811194439048920611846637066098579454146420565966799213456688757731688038303776668134054468500232741992546583397685791397044286091585673808207225891928008262877056873852444562527993568073918700389975421513062383198936502435891498083240918965036089550072320072949944095512025088041361500007854467912173942326621685799587576470824376789615672645465617362381955744120971125508909469099722833557412665476129422095708860692058484054504958618285032680157596818982825580883590431999940879247044577561780946016661954366523371095043595916016429331711570832220868472883033335635187974966631252442434828565758198262489380983485880395075149296566118686481211670316530510338215448622300509317728619465786344992521016447929093701179651677936348826068592426862450584647210505402702549387177046697411767597883206521685724924858027830239774374985044040740123423685397827324769964745800787833114936085053321902872251442658799086089194986898942192206464103686998164999510126768940313171019587112451780953480065930019226610112314180322125490702510769259876595700010061329544930751398797200245490966196273290778059849962636829542047178419106084239125411022802232654389932417111132619498912533550514144232126336099077309774594109908326067774370230577126508985264030035414134193662230205052537786292995403164546748228204970582295710074941270931910367012522668833571336949875365618937888795514036273652241347506203360775174403400916715489425895935774730616938252542120471124601872372110774080027138413907254985976098473745785694356682445084835083627687243444486771266505485583159405996047492026057884726777926598504857318994740512316220132398591262303788858750075286765417895189485436721856154471542514634596540210417258633418584320380421720795451431783357839705452567186288249382448903815157628496631960766133442538696777015617527244097588552997644812730871260766083435877983925647911322330779722993953689736066729083169221570661387440323931612914803204860618158361367703913253036398066244874315883971271699006687730668447793834659037830275197196481899870541409653386724746334048009493414272278649063653350934507680698937758622875549519341465764506776712607199683811038811744985888119037537729529156119841231667873317109125086655300933284991641667683713708830452361047339739654313956039671837897035404812688820385960321571203240445630691401964899417610626771758908392909185525039034448341347083116189223513319802283507918482011713670849111479926451945653511101482226859667874814268984083920242997805911007611938575161270037194173720163665867298418031118731116837642991112294408737419069658369600892521092062717891408460630573568592003463251965686741529371217034689992688233970543555621808408287728152256354654101258999216057018857304814450050621347661815239054794010614396715798848452896394816310360091426999726633858057889773372802650222444494248728754779002298131564465585935356124744283468487325649921683441477445060838491485982941641128074650340018941663094366181532650759079222490477580322949602280241596398339562219989510974719459597506704665902195284525459375254366854858097730101687988907676927653781373164784234824181031709967656777343152433244913328966987162232865685621437006128456746049618660176762909643656479825378385153667105260229063843257530428888556975354077894528241474994007599004785952481919189081494064191175861756005850500606449644932244898858068798907369950745643408136064720329021241145544148153900971091682159999694012818302205582703453663462437172288420704100563958752133632675205674128966726032546563080214596495536867000069251507694099520272228520231343773179809857467070388143106644168473796322804598440835887572034178758672798464696741030288347130763615546566486667745460723513000183397770935181645260519110108642215790025337598821777077133562211779731911602006666662997735081694830995564131406762079102859629851591947983195093294774684048037966462295814266809721120284429301707231250174515320219607125927972429539156895573143585903434140210346107010500614563574345051564258412469207786893155349693467846119750717283665088593368418834785968361224641115896174156230395951146672115173202505840917494177874622444590454438252661775007463872054281828268107869426701199675862014196687097659559288853418579056086143215414354819352602117045720162590679020551311419609954795411053692997839419951632446252313603213599825416397031325835459140954710351238837282286139478460935362989996235929578932655631602839152093103663171010699016212325753456995065216821544545044113765473975705286217913964044717206097529651515867218625812041098004531576146860502641214960215865891272502881128121758174496091951162066910396864682673797584790124463704512268477535961084194474085933710873943774392289616723256431198556633307710471705942322497602371274018961172723680142410970398146352487871938817519976124358368797658554203486555610257932497734310933590463557370305414285411749565332209207188530724027629911334881791955401250331653217057107173593334724826773556019766091824363745895018168158583599590127843384807209574545436081183131836024110884800313002540699363151924907532001346443300410939510344999330052308446082457781768074051291057796349030553776474050587966071365188198337356922262919145881278243227379991829825559627301549408024581546529352638933409796533105705990621856351139273207348532704141649031036254387398368679443813052215888170977572272451392929033227618985305716200142331401677394560229485134640945243597777409100420991555588070863426466213734369938491812807129682026352804762113669736470762403545000283309983056265782143390191753818964236573994288620815771728571818879953373798635351956119566377923088187222384908409862510700923499505278681785146598030894095697993238047923263578971856847021710177581797045018401628180000722120845352477849318878425274187500807335626848227333664599076302375886605004324021473222182912759179677243787010959655051027023785392952657470442771521051907527960483703466020329108337935649571808940058355376068761307400972481293508712921165709608950747888043081598839453699932522760675145202540612906173340637750964877295530672065160283146953617436007594000896507016933689324427714230196260300460332809489116547689260669355460421882667430215927639912355076414328205814570856945879992160923347533065184962576966249391611846558518322083924371919190844708395855795590808195496161499030370723223314164612735556504726267148574465732453831504598786239289989510988239959018717693596026354592489567023069512159665671857696969771644788257569061297068195467882119767198551544188775847088949182761361357523500300462120175503118232504505498585144639939706000630456693838972498387947493007205538885457079284124484337973928235688473697986806356879407331605697237542733680459907539113764745754800263770732592806470829657434292800436442697450892414225789635581621542731879290270764535411743674882310192693375824081372809941861101484189005056808901920821522431456587001200537270854590038680165582618706420633166013495555196326868349017695085741617751797586296117086889595739057366033547500682411764084742235800043191981991929410803665140705034045760783823206721637609861346214073657734772856353175756833175108939189131361583796628921421327642598248624935341327661447897651443618801695092695158567896572583002663217057830727684301196285159142173716420581281198806059695147325198167498859993451936576422542791824066901592294762780240201608890831219148255442431775511356190460372405654097432977376913817960324216449062992487750503226740768419014622771295203074613591669003133996468570916625466034913847949842205185461120931131224070902410294532541472608320140424825857458026935268598190992520155754218335804752739083287610039581616677867095376370395236087727892314350058184644592538184182563408816455833865210735913760046649132978627251589491793924330925706640784492378215634727147328647065229568394684131688006367555359024619428911269395280824432933680119940830232429162864809776398120220390353203778021741538046931610191295922095864588384149538271263679566192285081487228591793180793101141041293596539365830467344770222977513585484139358735838371747299473687638474189778676288406077393137628609153700714832981135394832389989262310681572398980519632268449098422309128548192043252155169614541881575872319650995434129326617892907001431845069909153342888945884024751105874663808360442873116849738397095486866714916423970908791885121982999484519753124186484786210254370273380737792322991674036749695872426410834071753804187046574136695462202323898601914721144766931877702913657806773505411112374484232142759257084630369256681578537278587962177574893058030286234264083621728526538967701904829076195627407788265579400867657048778006947939752184323538612160519861744668536319176041349495175666673376358511871067993170720397864584289474109345955398110575400913991408055339195573555542745271317066280023214455198270085275408021117605793512447845855876837736211117188807975175303095941889145856685232696626093800389046108012840051614259950379654535103991677383335050743219205284819911041706427193527916799752151873921218643692032838131666853227995048580889110530056308870423808252648975416890053276887510122107300261543155712515765573615749134624640253312619165508065721952251393104913014911326661770102414637108724840443755483009021260127231287940133215000321459173862917631521133951382311826020629724975999541666282336640070646257109574086335927189906725950031119752337409544721060599258498205210031676730772476227081504443153301946239415412633012078045439214323285799389764970643115265011236424745689639114726292386133859313833521206628763369653741915647417212084921351007284063062626539580288156289050751805921257319677297575335389735462195630210070160563484794153608450634939547766049924813787746870466888099009585440300227241029855574911435742176773480365655376368751332116167331090115590291579351964748191906367132125952841846139475720998370567256751549850376500816445192908178284654264235393732403967179883862157961379150700867980178362473950458109808201795342973110161441828882445920910767301359671752029193678831276726026344805813611260889112277805375350553685243408522857885388259975914206336256786768767254706495760098503670583902904926620145843286403666690260471870921792289675935855223566579527355252963591965976262206921172455989476028318267316371730826762024939805566698400621497429022006915452778980085641724147125028816865015306760799582584010637176804741083131681376120630154380260208183156192721374055974881621020903429160784899938180221317109851435148969249229748585221558965030882132826710907126984419807574707432144261092694294710712158536753303326113149716908676929245176631374027290614902062609895058419643833047208980239301786158450637126626409513115891897181836282600087527422271650503518962106218008383700910938065798016300068964167950931804463558413814011411903890843407075881643847664953425079754626292538706674151226531117613761482473083606155127087603192065041226611469401309446375720108518024608281433112639249185504002243684044390092127258528634410609795882710622834002314958912744864425074211042254558015770127644768548765982935522566066308804298732876499686463561962150806413764527504234286202854787112008629782471551905574660280414393990066234922550849870027692417800478690890679123618139044771498732291245892798545506170214120096376452934182373331684363352291620260374549800275582243563856970678274216809662655841332455843033212796676215401666307479156246314691892811432305733487697985305435225529104779908621447706742113398874934675264854891422082656878827358860566618244919525286996440329621394148271351356126784150765592637228958694464396789333486169076930102797749833690386663717101270212879474237570816804084861959423959256537159969808750861439771512795354694649247490871068350473893270617943053929000878782257267262628049370299333585481277521355787550080683067035748268793692044805243104022527294637640489987168216151219725270215192289208263866667556846098369121714713768226005360165312970076712188383930559384849321549568866983269043101304804045589103936907232185606520298564591440079916511887341296466436614965766894768862983264361743364959272260530165434756576604333763726673080961629563610917169857996644202856952467532651248563655254954360428995872818798262336338629642406135272767983216882950668517032185629448144873220797841353904969786410793624088708414521591019607957606712612723567644537650402694579458608266962451184900029504374860338480371422743065508268491712081895585735840746988234744726589515352700760922457623375418589553059104609018105883471237047084479784734743534638068120770291010581316849980868747913045140708054011612783330539372371338984079679631408951201433373823403051952649481012701401644408065690146214901198474712252448661284105394404803965627821700360137164761479368348588538981315397407189955126346568238536569807357137677669379735009551806545481265688977614043968589772139834926673598406608121930746522282150392575392613005409492788190167582597985188207228476377201961602428216651499370438027646020022963574847744904323695280935328751789066623570384241498707533749833682166519165222996190283414750629785515632644301629361235244924140715572695961597817544840873699599231655533660218545685030784462849911979437779065822737852288662711173854161178439685912709100286716572055076231871406534507583238182293738164254828431340558636584195105173265737732841152112845386378959609608980263587241885965998147340658614168549457955457285483403369786286368039174958856887151901273880082869787805582824795914665100222231256799805702599124393100073074584666703624511521379575238963209655857462491623910529155401729706556645751296931846490820040403509024186446280164268060505617137768459063814721667149750834373320702821089602871360192441224332951700577827993139332885346671239684874252696991002325685364003249292432866859478147461048971895181344885950270484614592013425866209286452975870372408940898041769229367793206498617905956933227973156348032660709652375317390144033896364341246449128993708933532697167209385833989581086913287002500699624450425819881302028490237763377556757745787256079043880340250322471566369330024955897771926785822015387852754767623667342409250655412917020651681237378427008944851743761481443993364979057470584534187475361866605977219312285979653420542949404453422914996845423749995096944205977642575490042631111188894040951307326309595472380961673155693812422334550709738823830595567307176574778803568934961651832587229962095446280369936088571933097918788806672146623398949015061489661399641608411325570246857150843012874420121426702562745948261280386484547197588382058446481608674949326113786772200250752123959226024373023911889141880322480790265026937358437000170576061054544841398749811600889887713811896083432023846281568666607266732171581636304446649224560927936012203388862571244902148607942543777606536294335086186280492311014741181355025058911979704820054410446769170055086719718724805212657079723340737852212570758821331365137300366436537831334177253569947383562848085328360385054848458753612303136228759227978696109952683845962829523347425753892242414108753641136250065996193938986118949639466413235756158901499417478207341538203676734206646955416056396458605578432341060935794172394632394889022605672973951432282147493635632277948505237118137882381002197350340151064007592891890748143226147250865172010270956670000654289295382370958813044739076062519908563474853542991920753029479585425656032786874570183337396955745601988805460909333683416938663610162777925318846944172728710307822915391939242907809766317567201110468458445100136220938647647289189937368224334393038547254829282108857833490342737115025552969186394563183993990737612495738833666813878542828686577673568953022937421600774991568207372918353856612431218716049403164120240906589825843370800735089955698600532078634637083217609788429843760849693882653193969785627014311626117037704652199073696801350611458254603552549508488213101245840574502555999320509446949068980962374447221243116734433931868338082312327140873006545871077051419441813584371512943435247403454416818234590125777178250258033555763115379564221669107781221150716124597772747219765529485514214708481705208123120012521803585034136803691081613631019525439725210611322833990701837848108528099750730273113377950441815820751099090143741584873457581692794871276719064962694235606764121157150944845256709528972256618900449730242265053599953787917172138587614033759375594084601484947031303512272936606422364699446633912947198702030561534301051198775947322125505712830879689546670036237236609683193750382842134494184730007791894691174604515079356859621080282287100765867999189408754917373687042134150929551471166311336713949348913700528580097911654083008590905818768419057175358507632354482437795954049737276517228708112634311082500383286833037042610258905482059223884067169081051657643893396603438763128968740127341367018563240147105831407184837834374175710449498242156840646100736432309560786947255924948647667933338740764701846073343699566862870115541534716152607564764808171177727955551127833311963853635058673664456591781285466837995837620980419383118472054383620996530003865378249026174283079011143318619298908227084332119732483910231456489418836357655102864491888656759080318766958428400355888765830500147012423396035096216224852323013857965558715977028520557350600668717517500854477668197859436185723707671779865174499616289157779109410950579736894997325638354198581407176904887723061902271614569610101288314881921419873954672969946023414380746972290672161785731654348435844575689217755861025105214539470695852330524639464404160023644870388163343057125654714983660076891545335516174470756682531676913419041978223435604343248764105654390770892432003861092607238985108149840604014061230488934211106554967978408676674492342116012981623502834776089805222166057595113239405549728669612168428859259021571369389398874185453437333304678424902644609187311037290239230510818873710215462583391687045126367830121408690870583403473947280044592732161005235003633179461873152017117649124784851164524338147078682579356348198344741885704114940938314609187138885827641770941970911124127980538857015245336398302814836446393737928874900829707352741034350503511324652735244447896813892265890949899580109350194249919841334915870908047888682072826470660677904180966549713665133061089125383870508881420597231576302816220078127518213259138581917196217611627728483948256425070145502819596798685212965007264900986799465499651289168690689624588738628752734572833466458610799118895946009926587796241924302203541210690975313767752908099377882507332819450204960661242805197375916277751191767777456631740577149780478444935510421186207715226790303941641206529552973932591122318894123016726582523976811296160265947084877615712461722673445086470143779307944950120609954621549192449119769644673449935133847639103145675489061873066389342247126354458768575397586494982310505368053948891168331095691200086311104728526254849838379540302164697731699005219168172007555276208191089617797041109623047272055459556362674240273711408587060514332861051671720441963617447828626134911053671293299058338816755962605770900675330723154285254645740111722672555529801124580410779761926171736403146083780096682738576188042213528576274609800516909889362579410980209420039052303060832199545428047893905956323431194647969147080514764573482923987664590705984739158700614926608796830222232660768304737466410433060094963582778145229968314230107941508693277031370604123773770788246932020648757539555412064668579914101962603217524623739283354760192319631079449321689463512998646853176488146338117744386563639383213808354124549419576266227494485770630380877999500747426754076434269460397015884063701311456788552867562744096532670332793571123750233577950308840725390646373027450604105959108574178417938676239755333194755619611045718124518531461313941883264800318753894003919329269290528680924478560916669377808396947420393305826744845524743853352532638291139649424556489346171135311284700346088859511356587951774083521552259050766184863255547982494297564977736920934266163478947430284810191044568205016416979935910895351387422654752703400885118216801001829751389850176127754992014748874768135154439316278208076929211090306320208678421068789897682741957469003802618780678033871341734089419673321914790595824781643780337250420935439247142447283017626326304536314981075502986318115632976730122988189683091378913344675070269662178691846120148301716500510164209997619257575825145020968327024362172390539830375378220420555870310052680636395795248300675915675370097885571506519274946520442644357078825183863454965007850765518080416076412229328290977206629170720978020906372781114723884050965389481783390724601718356497842018226036235983537287760276388817547495182447717134126717081821216349593972617947341284546046723967185577737169933885713617533115230063453805847383245877496343148678333042034214635227949597937365299010766823740332049164542959429384875909800616438680764113363999390510445255365658797122439051510987391193572039186352460434531219857028985215335254997522242992230427516302723583598139648209452835975868698129010797028200420732285496039379273341418516936013548255502744752600297201553901834599601387098266144888417378858787991217347517939539528686343679586491978905046165926512510046883861654685158708935011163061243139061484635703032864489350926525567526369492024983181064303801559565400091236060706159325479348139716467861514719922401273094169468808420604240265120132089969736796787153479717938411838406718986012537141304991724893290035616636305866955192899499932440800139579600961704699275069275487695361711652970073266085477161734386473796113912352002009896462801551759310438023132635534728190534864908247120296630686541041874107996915320377362904541482753057522075988653346724501874690301612265196202662729463277380300857975439496662182351688226807039431234502666865016048723636232083283355844548445558149830189304711355129348285906034451947187310849166163660429418215011907460376637438826987155317396135075459182969605840733689352217948528749035894228978020691270702626426692004689455940579479944535565307600708626246920010333080445428878603651841289067620017622460299288654243510104744165874536814654287268650444312257544196345885644147886329516836478869514490864283224526454602356080166326712775030866819726257029597148259247086184052727205263709992937574124972089724223919692252348081368249803714015464564294868872784813212740201187970304454433245932902564812662974793831311955132351563297579375708689489038544859007545715500260296423347373934172757592663849843588511441607755493106464545066069042859987148087908625594031887147606327022395141947537877060423201117086392344526843276109408501328135600292473896900099936197690779236186387546072403157129868757665131233530984992071275445444178348159922078437438862075856145819372170811289276613687817761786717519573665047732039634165987749504867364691999761120136019753660526109122468844823554738238769204301474794272127828510885471446853373816247683929484948138421419183211704688501434209955713658464795969630022006802594885576961237782099821219086839275092359231912886899496641498670281961027338012347790553102495531485021715073624603943362550316832033077506181055427604094386514895022694123194259720967589648915153150488343296712451244483865840546552109202819530266627724302936318920039489810558247715884874945809652308440982266149824829938021215581984971636447273048774220355466549004542716172085366792998314962734252166887861526629422165696959772594866188714941905601065590590783873274751634484468298387973437115982920127229803595303559638264213343819704866318272121412123948430414668769264504971810710723544774058945618525783107842069452177110936427214802869747657333226642656432218904942706427893459125398785567481192633263797279398115859602285159046912934078288179101227862594434334080934384660044940002376390461026204491207546154568815706444115433537314712771694322583105183666159344049598077591941980511228308599820749212601113782111632205673499545486997011878287815592632120167932832277175831631658898894705886801517543149023168276622238169058825709786268454556078583679756588576081670867254929636996843942574103279524940352024067154332661460844364823963695868264408764655808862889504966455031042684397565291228958165730143210386244684690885931063081260112431214196479516231959453111895822374772972569139545814960300539177993885380102766304365183703654844382956458655869429999919893954004287413887793296478857728054697667289985817104959450420295954184212910643905508860485899282099637135091896356135863099253892638612813252243912160823102561975015334378760142745880663744390424259432651189693064443758523318139824382625877091566820244196791440049766483020739649146147011598230886341512430057487928372905853855378520792683442258217460862673206297495537997210399341729576318239446946389366101662141803120001849097450239574325372049987336439689179765936654027183125815856868571439954895723811881502993769355554539955213843352010099526650655059865423920328828623305874945306686348738857531520257891092708569154697144558964207407716142201619818500919317823013317939186798535142846728661860971785288199581757813700899814634927368342404638976615386758602568505691250856687488045155610639312599905670135067152753915898440000491878425658091546694245922150957398781250011685194657409720094613070046818148629451168947826131752133837237622827060179633131744001341852435961984820377289505577860173870921986606599516823467082951699649257275715164489438833294513861623193813120982598232139236714883166012313463414301937588196315440756346601327457224030977302303598036760794530814952257816199976079490257076625169676124163731290888736646391340269736318029626699228725039661993340059514522697808229194645255227364081518749184767860227327947672245256405281838174438100028815520013768198649241107137217937725898796089983020258941390304583446351945574737131485989157515026537200779610656011578338384131074646842973681534311913973445193599220443126372776408820106340820301486692687552683254631044315527884019870046180658456030673047135261871661535070652561593176180676961728648224490977903514185816569049074076977316618363128687063922029709891074439398259026918236993251228354884978385488538203574407959204426485454112750567311899529466966662795728539269556227412632243677257967750913026886981584555029011217574458846354128873879709841167191824773656698609512323052263314162600947952366066854091392597184879994918876991161138043253187908989474441129096275241207566768264225713360624867101704984556947221351063143430722463014430066244867804882298945602862138176019499319250568480373321397334472652952199762017098692001407909779745104990358719609045397618959715311143933311826205757476694564919709670255919653161118597840375042399629239750426160973460532913789097142249979121429028021419428047079158014343929288301435285502725897618509397458124221679484340995492089304074578484051959009558767922362371945701142275211128386466670236728920246665841794966489739705374498466874846251574868959510959778818061037166004089108153777619002504566872928272636253685658585126773623914569841314663987884702621086440003150609269076127869147069791719267202288348042151825900349299693495594249249328097391247727684467468644436356950938838551415897142532419324518900383239677101684243225566061255298768470690225623692009014679945779793313591864062389848900003998725207677175258025319684657764978372493305440515893883793708352385236353322727083088116066036509913745573455231810278947707349438193428821830441848106411047380135219447337872481427754671506684850445505844993360406586653184909192947331937309705976316064424915713666334326238799660273123041529039350141537068801982277729858731892524812736250374542324852634505912347919918972556439944188713564287366706010670572236409592760055338038662888649688391071662357534064572607299102065385186718833823097439469369778763788748982749341500573529940157461514322227064673952558368613111672503328074207381359061074746194725024653498440587014715151648275988101227230678139248064921960993720643456779510283588058622878665224761815215233500201944746046765822662972566121707210806875473021967767200603610545058994529339002960276656513494173437532151440006501503740024266666716047573327117822808924724007301142322964795277092947765769378208287754464014934409588737516991567545988385397419351524791440399724008315964683399477340680125656518122783047323746759923739241676992417459271879930494178571130436309605145349986604116135141027788544348538066674326878899896178137187771070556273147845620242755138587871414512823455057211633135225130107014068868535705169373954290075057301986710175287795041687179752685069919596755876919673746116959037521544847821729540376312241417564938227451297152098394106334111347416190361582913357945034415110746377884676734531214337346074119650640620763731463911203305652988292903751632225931158196035039150989224279439505191952015601489719127565540286894429571986910751292078128811156065594770845336941295111285147294503035144032308950481015507266349485131177859369771631241521413348488492946461375280891407025033273769002684623351416805153483482258705047434394140895007217783366329177297539125761021128140982047297670554094582724562196503942045526724966979071732783455202144599297687154041018766099862388875564283437532964158840327094106726303601820148672795465815606815583829477893444320233472393783243365491975508931170156536996497095430073315579721756470192381076944935993687036251200321423590142174420051281168349224992928848388803764747651863448279754816136584781511195162068258611715058763811672513312600838047106252050745868807027126695632942138530966269659465157053352144615670857503322645324895918915241127365407144741170741853049179254795059606619381627358434568615809521554917722210287632329558573196886896922434173236519176181144688452686139725301517651192613868113051794449591443390933196151634896227299045706461346892909048673286166118820776132192274151037356718204069190517894154532574239928352256638284542287211805502503796895012324719328754181808114532422711318982804477875953076132838241183014114260580721950834685551521210141805407664043619872142705938458973090319322834536816800199690440364822788459016935869584975642345543204319271728967259577298452682800985798945204681752140493086483553538773038738502170270102800858358653888500476410094531853189053137328204462621766102782935173820694340421651522737394739460173695312707262702538912910321904367512292781147136941138050192849109084371305003233557862192608234117201937640773966295623590920841366063685197628683416181324251140749066296924722305393185041155312012262197809906826529829013805939487065374411684887752502260019860416739056773829895314042481016317777388707563810897511038804028722746139523602745630557565909778854515586180181899174408036140822316259512562926577968525672449871367918194311410757731471655017393094965916191931726996780064474867276970144735947584951212894942942896192087353873239059223750339135460905238547584040640623658374024282430168223231669597784712934365255878209302987565399332757912171355392494370048154402529351424931360094715341727901508023349052667132866181553777939413763594624377790264567808148357636831654289668805248170960663332890082769360183774575779903301645807466455195635527023721264507503811288175211900952177642802527845419061578786782908761357554885998618767077137757891131734239939199631671628027343656142022633888024351986581950255607512134329927912816051044511537267965043642911954487900859699600821135620213436593755163446670690022825013566565818029214232960105451964311397427495796840506655221554126271454514682160313864775661642703823581211889210242683961816131361362629989489397747691052766192014555260438536887454571734038593729091286210742381743952703482266535620892831784099623338627211582457329660830403205623858590845667104872853423545496887338410278795087437486855444622393820596618954902643569684947879394423334272397576568345552346090521600772179796488171179551330420560435330160277465500977825435910931361832458150132655569559677975751104736969963648631171104376011151015637340680946099259256925526731898532908521710768469385883083516346859211941650331191849072530694693378598172198106268101186900965879653098948598747662566405654562876588832919598355639456606227428111024972327620219636414791022403733294080669968826819604616544368094673200898732426308112971479374809301105257189701359423472606207345530241864939500134693765410547870444907707171779233343705131133420296797466261848090075959635231281489688186825283598659090435184048106327342552123640944565716128586840041386888017944004046701336898713021416151091556745196592397989092182436811066509876260506237999372107940000334934625271491223024482145796274801749608378345888231126131299652513512247586167467673976333762542628935836572085829700896094294814688901784908963755953437222680050638917477347300239418690780187437746327871994011398689438633428937860638112555062868720894005393167429852799050779716972680661584243546102597087470491059543477786110472777657091506220932645276846590473485243332861887551541511617190557251871431726617397028741334507649259675156179809122800951730961361081025880345425966387001719489007689089646620174417990256992190328155031219787862719764721277674737730543764601811479061392734974271202295757972794018577055019933721074614245735082485031002841010285527821086600292420897952283443586265939927470476435742122171980269993394977548273638518507465750184091529572820049674364462200877073615977984245997664049640889619935352816493616719632998284033201121999496930998209679544375805586003643499570937912466629066808355008193844216704852685811173372093620370668114363616480703938528272687659292671384540588242698700589738576150831700569882714930860490069934938498089138091246132096358597001142910463100908064371807626063351073008075201222990374755109762895234255927208987653001267714197511404614076652695784470149753214487979203985590716526733264945955163391926303339325604535943643765488852565648654086467903712440205028087492727798402143383280925406431871245070566404058739076132576891341044120987239348952422011868940042961309772770661900977965875505266176624053894629749186375160998229013813185879771020506158483402752933548969801379622508272114667983933145970293379703175934735493439150192961946966110843576404829871109178794807675976184241745138603867663786646841321392879207439042789534911853470974346951441017604280302808483999055399318319920164148807753604817991536970656329366908230497651326741717063464582610211999863561154043982251132834186379877189767892898555217376629601313144712565088169003975881170491740535100817298362664941275379062506007552809819036581085881917719796594295987136847826569350247155302450759525875375242946727826356617776347361740339575762134378311920880328516370667859982268501412052761861920603984213027314798354051824985172019837640747495311549346840332019420540853346350355297915519093270609948341008686696227632915325213640171647156047245609603809180733291289876308021788256500057319127539203328644088356539166762474765156188337356267010579043573049692932561168234198060941920187604949871454387406294219218992520671396005606581224062476976510300736352291970202052971977607867412798066238808524840447793837189960288477936763668757093250387147430984285112836614341772636505912576265278526895932339229937773587322601072785977482935058689238306891323254611051491911549719116612349260715239095439643036644685720267478436824046890085838494001168867629411709735482643990884280968152508122977225197561472006323523406532808575436167315571696598356344842044584803349467726939687780536961390869406000227863257224573580604705243196497413835215811309188603959526755902878801752439233399759531205115756871261215551757555374056232570863104416988683523595956886757371761290259833649355214105988845660298813970298631138670144748478141389016846611688658275217257970594208144024967509924810670861843101213205670549977413468444664997056619285048731852049277951244797399463649858152428739955667553805777375614915989325843940001621618057162392581552564469244827294005266710617574588221006040383018555719032162183002251383260183488489923900485663157087555623536648076583966792319033630008487105640351600959994867127653649452700837244183771572331363524968969527678648672251624258665175705175407184108566434179969621660772395862329433960062405385420240715309115301888546499132533598605343903451383492102920121467909391673136546573828946029006980359994939944730943442486515064756923098140578770569829450640301570703677657217957509269076147980061442619056245453803407892014481200664653924379457975770916950270012845616556794406153340811191620316902678872605501130031434685683666308400995644463564024482470294776721661470594794071745636050869472501747309253555497410998653039107908080009353625914336418002888082583102541564787549263921607173463986424600492200569694428544752723582319387234869524739880103460116664725750809338449213320458982552903013287798614336844794597009889154185104956543521090659292688361432196228050062387540332550374347362801114359699876138882109144970809573757682491467981150918340135776966958967007998139068742897888452787833164177341372147540764162528677799450843328553456037546532572265727238226920953501227826121882154221338178892619706767387586154886323777673332941936973872640837227203944866777247744113276599197166417267454419225232793779230799405594171972548106431789003312226214614410590317876902217916709768833382381567232641162965466856087249608690103216562923978315716273821984998253993008448486072469525783497240636469203783637488141808443509785099727355158597654818034198235945323880631175409460622250783716989267125612418482434955357618861380844704923468683502442411884019120814530757408584674100244374940403921504676148355987426056692259049923901883156184844901194832596703282724543656892335223334619608277091216369300269203330095623046504619922610540767886403009082345970364295392009731320750449976439911129697107422246623498720634830076289068838887282130253964915407407664597582264450209229734201318358740876436440660071648356101235237905919255325583844325560415805929568821946474005737312524188970697852234379428639649547916175273307340556522990434299099264834842650124101201918241748769552300039839101363791976569389273445287864149689506583111268759830829977329972463159918279148681225664406867580340841998247290286284596031828499912277233758392721971237546075473999604791249562020206657744002442328030379237412110541999286540132899202955374001049001286759029655116573387935557627993522314099887406086370303723049050049835784914265561428861111769841407743092023437602306274573201811273228510954554167679065792021227061699795927760984851930813448811729661595799687145975622877034626304981834497968802033454127287900018468392277878813475701867316200930356281552086284933379578395916705416067501628308803966911544972620652185635859409734159369346612449012075249673674419592239758218549990660338974520332505631651037556024053618716888648684144459769511107749213274362389796134982389836410011315322548511496780797353393872834377963403267047713654343814824176916530215857987183267290714929668952268546432226357927233946571031370567617527923977837539095447460933320264720917840455758305517750002238264593224190443226030848641074999083984911591318283462957926392754625482966520800996422780427680723927517177644070931182861101236683220313888753048660880190824205921154957810535684577210361241265264692933344109121363362816312252537875323678446136772597988712641076133787455354540975674326130198099397172940444313345338118347126842224379105256695779700556465211726340852218726552252863917562172958639837514081672385423179764727759329071443442017890591098131204112548868686705486228127917775105213822050001948965597667555651682481558975852018602453325786348542949112362572110744288775406573147258484548858046052818799083644974878641210793070278283689294942566412872741148626381243646886277734416360410682424611451823311044478122310064930678932463399017772986389192992016381839647886180398443972261557631119922206076676775190176862950444831138105992791301008520566864776546997170696166257805614846610541491533441048509962484745513451330589757347670220968803046602327262552166483941074351351782944988335748517296021428600709219906100963864809212104816952112796207838057536791940552249698662773304987481947896676483106479496560243770371724841038510961641016398534592794871392490773472137354063324434210309384808712074342074175399364480477243475875154499573808207256033677437143330947152149271351106113672547773685768870839341794904176989920543873947351764173670797817163098933501315125952332857868892086984690165293274148254136435532663327453449220755875188736786837703120076386727669451129618051559030096317534203383466305426015891388921604426211268612887511350294573720930181508540992321718396411088533992629428211751580536674806091405023891381181254398851743937933448181142165210731785048122883437900046442795223164199957473797078410709081961154244796403649509792239671579081292230006260463875599909135271454377293250390038093535099501044696585090858684896855907517590081108955739335104301783556932609143618496455911832117261318718447001381373285827087254252659978437832782629164522963006782799485896697754667835160030429191729430352830377126205246634595228953553538355358014063521755126306805028911362848361329726965339257692611284472155284715312065552201646373760645828851785379072851568350135460546159168089519564721829090647279113278025929400063235207568952989845779379387911042475507259193895720895959795942775513892419415400756686309532876246244287434448184925901789551159403027609850348974542875266356632740293755853133747659673023766458883788553530435928181118797812012587724976386633601611372655186092012816167223758529450108258696642319025017635029569202843347964529530165470733483069271873710338601781164134009981769840789987847482318260872000175549644343084852163090979248515687218037003359687531004748155646295009899066558523926490539576738599111848829889582158145454116652040743651632608774215570649145816591279004436409328453140947075581022580925408090970861690194041931984978442540300375436707431297860626271072047515242328473318517039873959169067020423321152934854724384753187974158623105444301543181849649093839975484199007554776767339883133917224926344298607045825235981261397255456535770542268755789524049238746265963832974452363037519013379553684729583403538850012335141593990597244864993944156554654858782855361348428134098319080343379591272914039509936910458670753618163315557561891878989086756128524513798608467015363378511394924211767867237739627272755016293244060607654955035199295093449961419616948755391050764311317043383350646546017195266816054800644754398863495862869086483694434702558062303797412932286939474193982084013222007700112760438078733334286577060370765940784317354034317675875783515853071534221701194698885255500785450993535171951220227577783361045810362955551852190111877414493460868974482962109249745489495530353094903932144790631261530611883345365147444289235607950883955301516931696350445092029884692961555414654907947719537780861322297243865185834541570957819426293580015736123848088971489382724259994668854228488686809676223020443989593091668461953779618728140488420984795261980172178048720702274382892591164122414233317731212529290280047110942461868252111885033649881083792161119820930180196274682062354436614518413860905962028874002902413557364671898630665274370737977575021512853327366406531726704052130171284630753366310663660065038350373191195056474867463526847385246932114415002053140000256541552667462213773234916107863488151757028664598752144986087479163535641757431627350535129190558423292205326831177006381063406301975894672912845232731263770640985730855564852677218213768060633316848061208667094240942505088428375816678549411674809416298895621369233151646118263261636001516344756865259054683409200754499483257992953493357459359494354386193263164929664805382198527510255370427871173701034683243928450045719895304443471406631147738454958670695053534759783203242907633741383691018631105563375426640053719018897215759258399012321545409911468790438621994276040030668691644346568783023432027271840583635088581387305305893047085031329034816821638189669333068817801699303995543547616568181511528069284688275112597901349209640113200495307844247921625314492226661831021051353076790369682052864828097590903479745011507369946499711196675930968989425128952248677309338102864038534637568004970981347050547308577345219695225165545517279144708276512074732340716151237011281898790430165666888015543263944892563996715017540009381643045435789086043958648769579816977089148325864652150147797669046098892960944633620172952407050438890775887064850167039334737258496908137364326627149964714290671470713365968665862926506576958409878854359534260902291435088942234452612821926914317649741997827533483126214863319725845620416612024583939542960015152525323778392633749246927490807400775968873038420580937874529211183639618698248913557983214348356237694713172391706470010393456451194742107980738827364879111920702812028603388520925173664311927138706805274053938325886684897102077550782681712285761253052449832926697815170533845963144129443437585699918397172122030920717823672928047839349898554566376318066569159505357393148146416498101494329114952811203740483775092477527264679171788490837945990786066147280974856748211822235627460450864682162312799979516835513330394056300873675067615017659700854841250845402941872484370794593139031140824420794597811826307277646815996235919670064172220502286083586319030846951729071631889508763625721301019446962434044942291445292307400192019433507932750039456806680188671067112811538548906139590666565182184368207218462643327617944735191753393332175120408934772003133436723750857334264595728148245281088094752725204695673465812088942647672094437337347621574794025147341658250760093339134277097030804043952841907009231176249847243146794276372555074310803894800871924766625729655437247559155102362508321585028969332836223365504117790522409324870995811532893911423097019531534830676222502515210928535403475754105998614388703261808469143166658781802285355086225291522345958437748178400863466546390944241482541029640013030365585239189126551745919651133609076636130841493434316879122511168355183918168443987149483273733611726486359640692235903873762705481048521333566312003498597602530056294831926838005508238105137211361389146248773228632413521824669993313700981883271520068330276257886940963728629722520886119733187351254651503786902958470339687901217605277312717943998917081516257712237785368185913184457300238792491381834880105437982697730353213640405364658605907008801604571300682085674739756438741699195723517800646474889871135912670756299207581112673654228352657597288673335455102136423031031932448636030567776613297777448333672005202224016645748037186692031839955604309393524786845382115758577708936099934198219869702848486769694909236840788257986324458408721732058014296804351226669035295669475771425370705195396190215414990650668186329366934121466766860350409423150623236250097676986173156942669058721383593976338886577535131708274001735791231101086509951063511016116601278824403176430209274551440671430430046127540538332907688537309027763757568110031486404290852494110334465353363715641105508052948478495514616349959631753523955012447826342450130536517613396240070997007572732784045264961939371977562236554171248900474405220102075460805986376594154747009253797720109106673612407813607614950403569606132459153818388221100443053930529498837856507141670621231336837962679454322817781498504188056475087255042319027428050414384291033300967515865091615050226986013311363508932409987666978693786257587565443593385846819598424123333982801751183955481102319036659518679058823654216848296957869691699764712432957151474467761736466448681865518893095163072608286913400756301620177352839058035304044973254338393583710024549477472722456658148811046579967614162336146468072187295801439164645342942639546802519320415533492436142030879868879619040072331093020247618949200820725811616834190876867474937204189789298885063654973240908444591974007494993176788669445088260707679254645684172818068352536874490589964246066937699049352021820500477532086542207863219353416216367217459364025778532494864311660117333424906806392202391427142924748619586613036544059470417672773636093911509430064521433886051081855884157178496073772900753773369355530896796307105531279017041116742116332251128266927499686448843554578595551567983937839752394492916735368212925562117863981361176844359046606664511202998569054248200716613598478548994457491017003518254728030721725076591089050141670761309337517837786680857991036924458926537897070936252402276462779638525541052733239368589854033704365289351213705751702427262738178397937878390922971149930198119359233218959258843202267230415604166044656254213362760508760130040524655665551834212793623966170231509492443183420391399020478127799608611587646878172116316697251461000930639596316559028331779996188776399333182757806132348378786239950498586238316002566625756065702861015585145070430963641100577442096561275081230242592490318721730432124758005572529248375455073931419895302369952181929046407487885321536764317138315099863143127315558601155959187883016947233203921826606422412384874655304350074561185090409378102731906777612277682819987085871800690437826416040000126886973413526860768873122378467900588565673254233207071856549841368280937908339331516836257399739979821766186917041825420119002717768489562393781279436147857234273662798352915653007256079924079537146173824886429645471092570170216990638866203483475729867746965062885591529315184944581952722420451154461628492216966807569036743180226489546076817642020722824790250686854154326323589055470237239895866349541767149121730511232707740508816576921828255261219703909830760118978512460648916749825373491062430357044664508046164002122318842381110813573792436880969912142367979916692857528769398002848224980380098041545345724135187727532625914296919756679314482805443953343806242311907505552348681880060396104887339745683705321407250778480424392714025365672974090699140385445913130794919128297818372223913811354501888175080291134764227269682312037162002935328908807267517405109176272976568910734399118055919446593475469622964416072511258863239890958312477986431431691087610191302332281469195815053400880792251486747834694877398416753306487481622160868998693434952447118997992290039509861771854275011935163954118613941305877760054759927260164022345164248664403148730207855897453356584859018263815765123339705852499887707570658546006613091869934094557192456414407586713238440235172718691381728272671731777269428076238676686011276274042741727952118571517845495116114234271837828123839887916878966551517555845337196307804389317795550311627264733328383154389634911506159573046804776180668896838430057878886583010075242038623623635687064635442413094442261876879225044469637771191804415321941473721532223561469129643825966713739903037324469099787315923854253500289665631468492026726552242499209262828662384963903287705563832833242899649370608343229158702183539075343869402789674129068344866800217977032271072760360279402549799864268379589646992868481400669669035086639860987959633432393383191117444822829309455973840544435277968048408435876161781881931668089720360424701978643988351520605687624017062532642720451804754592480871999731856648877143687042624348640012992936951895765037933915852469248593559077415401815917128322046776463051966602705631410283364948683698439163664647556972220363612584370428784491947633389908236824935729523331791559613128229325263064866668795741334221541598651523630845433989048449138365243884006799012880675101152472654147730200358982577329622488721799323652883042059682334911392627405756517017169867255342850973523216686032929932628177253040551902451366157779015209659886822995537367701055344725730430120820143608152338369410768465933355561761481040059499129452376879669904518624316482959255269892077676562297948483234482531330038280351800657726810812597432792515708396329644833228782191483681206293541525956405921938253504472457177978610234201688902743320100737681518392668962002965508996320192275969344940945031957276306938154492418058275376547456580574597246453423791431394844590706448194429388045571931957680010754441929200911979963608044239735888224545916735367029916852795539267031433576819824049165716951157288366856070229606738593785734227695854410127315265555981504198656932669881604772160804805606081483726954308067701905129694406111153703957135846924187755410128655473363869999231253249083024633686515892597763636779312284709485229839323161378297258053058731974722817615380921588005992422027524659987845252926293915247740460202074906535263653993701576761307538575139376490485364585676978828401701357748473807684531553402447518533670848917310672655213796359398580587062773120296989253526573549826553385609576012111677097546487996271031348280657404727375233730510381263367865860865669526412912591252342061841130669991998720317013819440640801761077658201956483136428957154175982185460950226385388497345297992901862457270604659854158072825200888134221016688155845230646275471013748593628079100534712009256388576361550946885660438977692982511126049508934381245046035363584686836957488455902308852586801462738136176669097872065924816577360897090965262858639555267409435754838317144376761375416167113724537053652924291826948640073265384527861587918310193069519682676874448955030332323478855339584381412139835355931785614681475947346404131760405995215447499116730266517536608673072514907740034556104387596190931876130756557431720927490771943536584330057319696830409631152424120232431259917126171860019552558164610174804339010655833701776344132388525759571218051949583288985529802553519502858538882338716286205108621460870193861862708245377462237227570046320597453896609364881952172180725881998425082831558907996375083034298858573223776222765725047955803744617181826799435262902021189955925047295117174949478203790588292673160457906380561252532881408104287262633652000642768368266664392586135023851558385864737132418109453207216165304120068207596495782048955141888790403487984103264829601199432504523362273978659753381784733354656520899620077655169845412662010871155121236354242225653881264261110302034352413618068992640664282330896494418963668176320840797611640979646456417287611649816706801080565415746105112615312521346769451578328756454161080203534405964798534627996976788911741305234645779071239325972169089302513667483036853547412627988988029529937762187149357916247497462276489388690250253641044689348613505877699279705873268756803302577949148218410674395771725814149954742898861462283043963438845424257154583136839662674073345447697653852909087759443597345504686935637324342933751914923175552215532715580530807245131961020342478839497966332979404685488612933489685466604577550837969959428674089775860774726113159685435313386492837861095346442867743240134537579698601409931902516719182139359584685611066934807155903458248623046045418454859221515418052377335905688731776266664094233276409100421084486183534298554176518012279160981114962807003065796972774071914829019536445323828819872026048446573145242844496742182757377296027462605253088445814194546120655204482434354838601202214494115131542355682843559678304619987129289817966870558410123241438749372506736949429179609705276192731749210248730625221124145619693536972105596513298024828138957879924697877278637557124604681568393121829161794010655244159187630406405297327829635791122779301850599979034460138067064439442043318926908375940618623552014727830002031297739873789981927374528727931280088345992793272742292037253019078559065727208658828031179872443519626002170106313684694022795464851568423183529125826614046249018491385933959693602140646259200997996210555567278277045878215657069783356625645804531059202672559354380783363528358318962236400823080460303807029744249527733160573027551903809855743503010278339843672158707305691176082440167919792296965441986486472759977432031598991656451035493053620140805866422709317513140655547534346963777048086657730699122810938910933621899194770205990970986213577615851668495779047105714968844281227422299078151250900844978721793165080634999934919912383584635638030764644928968461702711867821282999017293308575653816715513574185989938646933961470087674853675134715221477912366084720379371513474272896644825717570372390783765121334941551638668975287273667244831184320120175413913085856592057802486328829858068805046503018087741079327495370552740914480472396832869865704533473892267093877703011976033342325605437120439858385488435635839146192022535088030694743360554097531733235195138142767876026097338421835474521214786400257620343362505812462593650314675103999621685022746494055097121460790089546346446346831939120315225245538003625153371805406447855046044189440923213596264832565115409072067563338662688736918788072304724498553381207944730939910191697593973550216937243187414946339779918052766668671944188383299684646753777186357674725726286636352284737347381001662208969169957135238867747946260378574954334318267370183121029595539255620722332566826572672917574828016876959731189347480717476330516034939904499920157923235047622909265100778077613723811674450016673159772040647766904725575505521860562955023364428313561130480238644118820564059881911148193629047961093149840164778537930073736282541973071695759450860456786259104836682483518750771170061087367606316672385021588105120377092514266045687934043135437030637334262900297226147066519141277523410392864924298880408931466499769369955484394322663908670376045885896137387470118994740026430820112919180124248992315750831826982374522099882702836029976791737601793124622967699527439773154093677981191320608157986937929904364152732676737647048770250696002231414660191177714691952609944349735287423524509083795194953704608908422187461656523787427087566423729503749428789478777610908508088542593513914201197589418917602675453457002227915678198965398723258325112699344658258794982053903473960568531051994281126847140320386250820059865700966399535026589947766053309819856670148818117421018475011381586727006590237784752073139557826729716308145355313962902778176549818752652789281819223541888883918188811120355054913634488116214544527825113993769426854826001466233317474447288279973237705386339734770121245183173704286666002993205419216285955115316297186808116262524385916522405840335721726558545317829568221893395332305803009368612798659248658329407030147230750289909284585565834717242239796819571886491179150853486271837868556259686714677968903000588591569976152855865803451660501574948239691948185105069960812012819042068629218795072088596668341224273804287426512297320084209102198959665794682635951548551741154974037017148699203598554625750228987723008196828039379891499189768183882785300109116467784236617661948444451398230257441528571706857562265641613004090710940847674509868269192706474085792660331012833587518198206307525722007665662985315713002267665668494731901088702808280067481051058641280958147366429584838101541622275853420650452499880235841742593516714155527101838006630872981835016151966984372619474422205808494123593655582332273072262057147159101233936599088134760786565798142551042923223960604946782005426314173782699376441241091901541500144461176817429582773563107541509293712844627844617702002768849512893065567954756407624317866807460794386865712258100569280980747577241449207850682625851484474182060608426252903494123497590137337390310568363990394164566681257273453377353991901578154130777210185639627444588873070622824096607617541980276059754952600169748508965063671023733934232066048768549745356655438224664851776879794715892647365864606200222301704240548557786797074947329519831368880920253642759241746500053748684977635476890880190231268917113931085532430498882956599223391551670613479650303378251735074570215728583863840321364997808617698987010365661288148016303579137186271049740198333358541128255731270346963425819277787403797469674341535831031586748632623782357473172834330044376799562335098707826308996920553648239700213629831659475136194630844134783872685359914689554143157062113446511207087636535756529380770986075665102860043957898786642014628382945717843007193553029228724744090674740670468352003170258949922344668341812134180959474687447520567351962047713236801154727696474922653481560556995790730878819247227131459318891942055851629611585450485791989992801947575549937543908602052220333170471176367637842286447560349320680620488177177940368979726161347368209044622390941695757422395419128130769884749326151029931636761855320209250820829331840030069174924550569817355655437091786082918407368558372241451557073788984565640500630236850013911232728431961713669946076339361380467561644785454362183981272979321244910730326117396096354065487030913998426630907356068881085639496570470741240155101864373840067020321854246770735700449506197045287428352517647310642422548546342124073828312415193061790308153678002385589722095436285310551399000543977440088220449870592096052691217120245528964912969187628575610288741686700359127334138713016397387822204800403824840753863095075007815543016860997945280765280650585873710209878893708661468420836368174612257762993466532075665392682401927658137576420157253503101490090483369334869936639744415390513112361770749179481421269327666153181790349775971750224001199161204952253557606008869911669222260003192387073501147503657193271337839149690082243946754525084956007661288031850127857555302530402664463153599435974291035800114650859268501208762213470283457573409867273842066393039672364071959572646299806514621731390440465442825252006537076880469921135390478941306073807647944093365066796806574594935050785559978303945667078091010949023261528997617975850124203805689453091199716199098890417138095161815218609357832126453320075369819321281996081342463393997514423817361138592853346622347711893218308464929991330983559286946397790749824340080525542589049441590514317545577309252761286059099234147429337284307921213811063517736844377767761087665369111507870812132734790284033741642080320146991738603248420703387688141524375367960335287091885884584946167257170686305256116918932034733284136612480719441427654281844811028489200951504497247460280917532401521653267839241010486915029783477434326522015645397594658032129532549361055666069072599252801740196768644169874526501498459885868395900382126944410261720314051633367980650254647404034049426703851775687384057842386264704790127751668965319078060054104097847335531866069304802234328418172766732626306824429541429087710470367944040625571926159727312956369198807220157303445112838285161433034780921509030533788000386116026898446547845430487103458147932962292238423393090540025614672594028177762072728801788187192239314137815190186879269795379009197623125493822927975627050375591107054591776463818273305986788093758044654471858023119877752000280550546130155066788423072585267577274239188808223965741722820286448980328410772437649778522485018385447253254526700415834243285391892723026246686164968118472470740511428455338030198983029733782970536371932758113198051248167864432771691139774247068481832585002083390769894200574702332153163814320370857395989598462267409681585977164253620726462014445503184998363910027118517979957915251995204427157242370015296139222581298242429578083607302896733644969494278261313328705996894897850470800754441169154511266319863184904152434608538555181980573616655506446670989828677388715464703797211312017807075683858117512380834604620744416625826681766517464169047283952404228558198569740582073556002146503882242837595279979497943761512310325805427194814671480152703343879061087241066607781323479394130369201976495312472507425329685420127269745986702684446104007442032246040334971996894680782620906043668860518501860938972018504115263281985270452516562400673786480012080362805170316434743410434541225883532363563103308503892786814752743328125843377925040185035116071293306333452121263979267837938850228386034747426074008319862569406249331784903734049632063396764026452790598387922843921596913674014277729116499662375097740958261323956348971557311437864730994579749493455473178191107301182454109677704996434042569574415690393468695016265899877286843813467068886820338806991368358465333499797246044626795260706840001565162945592369618860932361531991542051236846206743071112413233363861910283333866198294719697656480361389978118945778888764455960721776985381760675870707348701826151493978181992966568866006027363922907397817994400422573262804457860889683568290659103985973235617295612960345579477909477416656802898749058338743955251471100926128759841049502632896582075866359060462739083275856973946004352779749745426157626249943727020118796648257280543664461380127774831702565715390326593468490901767581007670399105523736095808390243731890242568014122826938717301437306499102403463654992805661002223455439859956437360148126320581489490311450221407123726598871738258620538968878077349322684179421949736680546597372137946778576871493336346992828710343463791418440838545235073150093080101438624532237630297866329253277848482899243027589955892298759977016083526271623199042736209428693362030116558094620595872788311334709597304000442829584096447605539862158639302012987924953775220967604800623833017201464109567251979208870009257808308591115046048266435242806616916863162663944108355286063267713803072200878234051278277532864887899623942244154145072407765589746339387957224661015147667919402129536572366506521466235897168492343649699383413372111206828623042520360898292522525500764457609785583781981065211286216090049322059046091947337174504245652312610806430403586776651137124768933572285003619072486560485285469412045428401665759039075651947930225680901030848093100609660135074604637308058288578965457343006507974171188195953732497023778470403713027332502362326067228534155403324590964993205714404103949450731754982693973695909279728203612344368995550554530038688387991132543398194688562107063427852739271236753505583222194712637180410802747374212319416711770003248935801847132452238364920044006565741135790873773253677821847656018355997108731434029357426488232859706597256877013567712355426760645261148455054206211508776589332234510003285523713670546324032493931467230223247473271466117538135040267084296305102679353651738318199433508009899093580436337888996717617063815111460052013632128539078635363801549283593082140063563678555060189593272011806323224390211562807726769507101083976567469936857354964227615399055875546538191899657943156117807622475412430546007484741874965823961701622832701920955904905316574010739081933501539805872862556232537537467253954050108744953746174277952485263947088961251847852993341662480205935911160341884976285524258358925075364417299375493561443305642358772388827264788987090967100059107890555892942574665689361020095440216492907786993812660153753708769244094526729161929021778127235814465944722449834209721757915932422148467554706960888121904371781142339151127171527000301438101139480228366641758466706418152856752858385341083334754359043345397009577374212687606955560808558609382292019460543856528234485127208267907730489577155648549521590193392942428408704216033639395163015659854988558253986810627377248615623356123352687950170075722496003338477495936549833736031467959670209811969770554751959589341809772089167494067176913734796616166502415326813615232018514634224508525026889389607661255235717631328706014459951564753891183470059740746786720324523792481240445436370630126334899676965434133494460725618169141495294963928937797225743429952871523803780714702408006841281405391917048366710733986053625129401250084530260517459970151818126661023800882091984390069521701777159721893884463251029057344975929809963812081680766967433062965182204702671996931943290814545644856458377421415595596275152715100028415179770839797662880006752924505895998665828400480770729447992463164294020914441971318901837667352492394725729249992344595850467095642454279464341270554398199732748667302318080408874113856014601975945048570151826521794521558802467591195244978873114240489474043630772423664767941904489378304924188080157883038903215865231583372037649053155635330047177887080346486178392009855040498503685770461386189844956989302154273445886890178322870372666147526683432207822204359841306162671535912019565716916657202554726060539107545373484404946046579291614939742093082708365187784456830855116240199082242495749407515936458428357520918076004001648889622625437610220250934607704351619694346954537931883814373438695014698221461132751792857258768937999021472309368820380991352180948908765253356007238172518915236049369919759659810228898885452956873144224708053235885749143856691609254878448437242950137702576619775589616765220170757249467500810889558484966435815364493282173843449046699222605720596496563066200340055678014233408746534997753787445078483176068634483052220110801166480610040256763177341301416913524032418281264438061302605543044238343000710618468253926197565249847307308650501142685155810175327951851419837126381258231235016693712734426366553902121579642335368143690365454751133265122218221126484758089775604362851845197190056850343101363997308310326771826922241880765546525516500582860366298471727137601965104985077979633699288985202449594292807802653968450047190399349706295432684442868258541742778871425524016138246361369274326679753482119338124244868973104739745765082947984854819071494898282870398027340572054646593758818020756643988741068474743315462185538358547991098873769452463488102519747339293210131774818285479337191561111318400066092050309274811865014334211694817385238942615711617969371135723154329754509679886536673815157966302988079866600641705028721719116281703302847129536667889187685079821593620420290830323814570756768689830454274979321745968904417431637216882184145588175942957437748916296095800166774497463470571183331784000237358112220537966658915726941291746177535146639997130349569856791747457362410014250671871196779811717662449016362934237913095876638825687233056388336880348858846236486258898619001817640650418006021401745449744978467017506486992696143477079554739325906000391821057730687931891550423296377593161760043706084430304809623818606609214609065769183755802761321111147525633159610529629896284988377313267992988986403285289523251835836829610421711497801300304973502507928126381894203322236343007761091954460167472077896179093391928558750559236014750152003166389648466141264441372034703002494091717963317391171809917549978926707660427463467837524377803768718554082260618094159100834371804433862436018607130075713707123406543313894706288496827811518213787778925933077069864539107682299983359540673589679677684421830273340521160768773973770003277289297394874297679436199941903618287471644083546249979770742924910092871320119029710733624783418932794715699486527744867182324743437284590502372282745787576948659367571717894956631746659698058505481979055746029242612749444534307876956514976155694805689981528825498373001086037817823168172918991938664545696495001690033608163557816138749291670510766559216283668293824340167856137536851174905921399078387053386905115798105391185933443095146179692735357055528827516386802363259472876655723965874952163615446128761868296221511472956332113301863653202568447132823179197568052547480874665773486543067790068381891955825652055122315906452899755565935257715214982503591918576877412006709511678272062875266959103078109640494729185298482008330586462757491885572277502072141096725851758032024743083830115799962334041801440760543024093349896330665724552875323007155664821734288420154800617508739122369539618665323288070589635503607247669779514768236430668627449996356832385540644502781131498214890144904112393927606504357203892932752066432387522516989207539346578655264875410177833904822064747457390986992099440843185473154776744261388615017780239671605854701256400829628790443710039205344630581770244897454003875491818654602448235270646868868396100101741340913307333250734681274872476347545619668400906356590388851650426725656553560544888466608982398891100735637274523098559695153796117759594285986858207151110886071330324922317772454049933017269583102356099641238390932841530635203510363886699836854401621318290774487824847371545560327143453665296703792316553610614020484004184323342966223304355354111512947685251999966691824982651221476970150993070634665703613898611863265115927853111718577257911829102062859845636847497815959068614985180706148770458858787002646956842863340458928102266248683430376384251686917129170786657024195493715349237962135164707145691765439155939912243218551532370833420008919282743810415234597327078498568916625170714090769774626941754857377920330455834800607047489924110034931330838229127549675899322742829972294571094333867347394874284694646033773387994356267912771099706922631782315565199589598270402326763005472255639682029449385025239039611644438458778329184366878265543480901272439052551617336873789367548339277777296225147455899403433630338969537108526771017519605662700042644271788211683956142682301894669731617228197054484876843891394007196530833526502680991566191938122014564947879523346818211769168053071558109602432136719030942980311053533560029552838101266215268823674574360433322907057671956251682437331642619962600691218292883035173380077894913005710201542925611632209423410429125492398260965803656196758249067624105596555240109289065396167388311129429801597097647646023583403685269842789203498926802998753601523805189281305368391988290036688769419751397086956727010263845612056723859633559685919291323698227092245067234907763646694659388220702350599373082186182891967006994394727613266758089833661864489774973021087286682343081075283434626245481662707500195244996738882202495838893998119415794884734163307585452356575007240259670629507301175462926356538138927155065667056019610288251323276715066132546505520745328713917002083459488512411330580747179082339794585802181945368329055031005038926911829878078534406112023709296452681907087427596814655335304574913673880354003767591282195289908900909314423526858966026358975776359883330753897698340793049436019200155183721410592156570734198773474457027339394431969879194747475734226590788226933947539802571658135278846572789537736829748794366047022070213286977977452210034231076010841661205572132034237934381020651931935599266842678095165252015229712371182859063339914309617425784850848237399774378426519502222096452528213457269522351478082937155631851448840587935645721456982883023279283549421483753518939863394231588592493317852920661240528763949472671312619787912073352644353694229324348127817243343360363296086647308179593880409463907535118897109196826058432433851729754265109335307466868374440995691453094282505137974679755008738322941232363354681390682904139769421673138565651704644557820205211692039367422909704587267653141772477435406902570821498995347296919172443666229693884705123611427033163275250517080258225357937085179377067967515563300661377047191474469924292748830139940902476069788761189852339104457280279554571521256609188537502719748687420667153516368446219204629811376984948738437461612210209972050813953923853235024035436363322528754233408448905818453318561873497773703749958461248443035129741184304743657115604208176155922958789984392327314619949619569489407288932236113030713951380757997084054595900635880659507169747484031458436211995474984069005894112359525565390264625353226503753595802405492555898107952439008650608254417745543418403256302702853916188029302141449824317144652397129192535292814568771497010552308341305699464207668136249816527120450295569064399320634155293457821741542284152520907717403245977812404109545739243851750699824387077561562024407155878885264382922651693690112898334031187716223237564615133081323928397786919926809306648186056832778697554556918734863320192336090469452534557697218354895476350606239369339027917749813365054074844811370349143542199337393448073932255621598752769074134492963014229103115285383725065203224078447572126766284655560917459957467565838495946423325779789328314924500215669246234419238251359193612902984529939914981188953650949464083094081551716985226101322405873431489560750198425080253939357461851230663744140376118586365098899809693744669725492447890271339765898808386443139803057474029427890524741261309011756420082759577359387504068915472848411899484178876804377746815231327477078698423452937456960510154741339767094964157645696572749725272927303033463506403624758451082075601678523922684912511084201145540896706687378317685847562085582372915810666622867004872746256526530683840881182647193741696318628322377388624867173863260930077928064067893660746979311503376005622744248280877613073466015609379334494758806526005154189736074618024871916247858744996337605949152526476709861418474767971416670114694797607797889611395811334922114370084234760349784252416925278910643661567381265475359482447982209941175563171557239800164848106852809265446623093278475479188681156855264885929567707977479356325135353403345971691785512981289517904796851622849937291109669436947842610648607848782431924127626977419256356987548562711002935213584680973464921409414664500201585659111748277089109982899454037931968294319605308784677415110644932954485219692852103378663057915489219128476569747199876207242463491369113511427124706297199257897986504236822862825058488920600627673162779584526151302281754939129687819704773572817583668713501440321341732267096578533468700418811824484560788937610559631632928314869903641062841317997497587234702574869322675219775708277759127813992072908478975130563759552569010485452682439195833968349062232369928336591845790482023001055159319496391819090064132076476893252524142878568285999708602777499169973458334973785250008501501351894109994545518036966738080308229388685097662373289425525610510915484774926052213535218025864086446724713739520111400372046099583891188796844175376391582732479210866297197619738533655917865763503567393952622149740551767170200494605540309001705866113341849968895001448698759576228842726503600159346004907258044709897389901520806400254582778678320879690307907924782332881635146770300182468965779572971354095817446684760894776459615554113430583062897621301066997053046233791067006205679578465027454815499116202502426330847218593758935850614254315454825603158327413236421397641544437121185947171043544644020092127422233362835949703773519180513828792457879637279683417929612521959306183554516026795151239621289873866847549093634952735438402687191116682936469374509528843031998746673338816469678450052954071848412941366304629830500880015802970104201758893947061252426252162982749586402774649383261127803446363274084966191009420345270800788927436184820400379433766095426175215796817623422508778989708827050035621878115976635825728140250202581558881551109010914165422274809179214208969830062482999425441965175667242429533008507692781308856936497745680391731482399925801128743416032710301430927153945420940881493651710354334853976600745631860388115400688127313860642686178433743060822279127113458764926320032671235761699545846991249574648140880993896718758243429093322591859866418326274229104813617940352300309066987943587844001696729131236393893614373092738726942781467796468754496663579572143978770136703281666328046720314219834512194822051764467538968020656045457393698676070820394436814544901389058698877995451790032561730222646095657263552916959516687752884038668027998067643853254680462332053084865519643384273423221521672942884208260505179138801965765000996545822770232541582810904826112770729234751561525010012151976934002561034888893586874480148158489669354660533595250558570912720768189008945980488827590788534145129925627387840375644529062592510335182733875287883755899994785011357600314908721258535400692827095235349166246755223925468418071546273585243842771264006074878276172494444295227542111359401993088530141973039377350044135037597713678260675593078093298973463379860940543646740638891934989379685252013859792047945017412555084040177008119062691022919971555445003199008746423227305385469434440801532761118110162154921653998309689246418559496217104456450536610484352130515924183525784932910217279485262870904615496514451354673836883529316297896832987262819966157290908011085864577131207234409097480589027514049297259629057878345032294226866601677271968267200688114416590077682910181980796334844660595706409471205430655179495149663323920475812386791059458458591534621545622448385194367008657103582037318766562671790761075266118798928505667923597172591498252890325489632543818198719686247821221707212915611567935696315161192517221675486337411782686436129398240491612470878003994091412779169068959536939812759372599929308852490675636517947034237785803946616118430801859000917141040794244669621289254719842294592041130817181180263847664399889553461444824113606352550695125784086595203509837152091609142131949710529945263602416910461407931747108706966036425118051219454991574059505057905330836577728915399610202834311195734078250188525770831694302854271261426232778925532938745351498809620609216428466773131248689373352663202047486873710458437622432549567793450668229920551517399556362949432537134745687133812074993048151508006463037315355931164225808605993010024532674902293909099802243106679307257282128099057263332606834268810653969481765912357712173547092128818368226680411762876197667423656656978175707168101597824124107071263637150073792710096681255852248734176782814865375600883879964230618323390329085942501641060927759850176989299707787095657048648741934938813528734121446463667370293203906462346055600331849037197150745872417322795737955365966623897998398367107792402898562238423835917112455430244590297007259710205585371269600356991142784419500369160647214862499402144441996490012846813583027569615193263957927193411384023418869434796012430688763937607922131943548943210644358480034452604773867300996799190044999592078181023403710231704257224237782449832598050451447023346507101826975092824377330563218966318248442904215685447433778874159171368886549678688477421107407060353113515704323408076940336941476653040255793568380997505191710601322634413955230572806195582486093997504788616646294996025905695316733408001357960513640009315088879818479194590531957771094397937484762337154157047574044170805544199437998843536935292172902945678061381803345373556245792686888730983796143942114767927837866810675845138021956839649716371517472680134039425812382189100596941067253582060191755204076407015564112978757607174709625760607949518363350758108587099998500601840897865108104065025485897163295572645142254324975524244019685142318339834528717694403070865530062045758579208925368723716076859758320350889255885896271473505179666086676325496032253481478060162820248499437396656081393852703130505261787193046866329358976528587979103914132472553073517692043298051079575697746159703919004206106316475071658116689503977546614005825790682234344969963788569179034483239995301090934588278045956664454291296654173442222235737290569613987054222433917392481324548514014669592995232012140585588851831982552511470113206985263985862817773892910991546379021925729760274917422212648356468207629014203843881246531695649015844005523731317650676795857114719653255743392354329034284483475588795757721471029944571651692421860099841851253567052695295826979455412261734668010564393062228270061703315548802742718700064644137273016761218771343919987744064249029003387238218274310407794528729858686052668357253542736544409262981057629971903828414975816611630702151908392270950738353518058150339651064667874832293242394585777771545061330666577208865730913456536010076715112607865298219587851645022693901687346746990947031533845073684751870033480498230277411526344614949759529311907885057314654772700163357565242452569412770008617465691491132517702433156552124636131853468844073773806071409941734275501395930500199876677843277187755748696143956886211517299882598341597757797259664021158468261085244633549625739892271447143749429519129418356436113653874200933010244499190257536917246976959044638720268655373321108350888707325939066325953802752460130292502343033764054568218679389827362862870821959706430325410834540371161136074956019507168434302769229296178761433701673960838979116542465933873535297924843181952529135340601844619164036828154012070690201096773878031877588644176753526113600125022229763035011591524717500632537794723431948671089826253677088239211512390723190426885472670301548526492745404916285230786317586200411739429874108449073896385148961694155049686947852083998513685425371930352669781508233850707284927589718033307089024664421260414899283830418513651328833577139341383021984568368704416974724252385559487099631522428544671011838766746246986377555550629888389283682938867146550921749064670845964531001062214370501079188911467720474584296748608080852743702131722687971054262493961853634808393694270061160985193003715499347289740779910710965196406635972310871428095651599570705041310449512789183840252984797806346061508331696288514480050584792258031844407219555568348229556387274394992427689225584307365254203028892408359489625741347077071242625798270113448306767028938368199795256671042632357883490024750263625418539460584010222384480797442436869864889180969877235151012420029869060713482896795157034224086009299454304008415633425762990662664352512908940364171503117960287132909398911547214888326597476522283125844163131249695263426006396689946811222318952746582638047559836216435527991723478278476879283643291652541926064426237636985658459856639380164386865887149306839888609477844979899639841363407930753460816700121715493265861701426454795197863731472575034691032858210251411283548383738601909214192944216128732919415514878242275134406446581962629770818649789902790322419465171634098825655969754265462325168562242662180058905827144125708666152439427842668765623577546511628830619861867339606654537021249779425909264801526255310611279084859824593979250477462534277526434409194627411578465199447671162176752526911472168009568001348011290836940640525768126515311606182200641516672497559575299208882183600290433265835476094363292171351501266730491859289587636655647129370023274887685192055399629442781114186645733139163441491417185757427508037860089330327606165301737389187968225345851721157115123048516272448081856579166945111754789042189495564300090428580056576638209045529310356362199684845151443533102113876539764380942199414259841396413468080837024810216791171273228336157227837404018565349697147291228922933574951583807417809958607156249237264876511556589085210135474290427729619298177886841026608241176226506744652996674693156800316435610434526817979835278129222201894339140588612724331897234199329166546738204587036318845902154963847499534912644136421448133836516341261471077253551422202782990778164042138548432824541204271955376294659454072390976344233408655169539799115839975617052672697228849423000355523554496026209125481975057841546820400841983765469718780340858691199276293544432421799187471508448882787636387602719530472102381331381840015452762058790895729288963899202774612858684126280669697083163772375382044718550428391791820593224408868797390291349079247191614973346307054506342827794738392806676900521888486168240613231466515200458119988005332442476942159065848902251642623266027712779923709696872842589451030990648711799021891027646509152116320105519885960562251657549694255479691326839315679448959956170852752457843008713785348747014946785776667336714391257767511026422954943701344965596897574306775772312330454440039118651899558761271215879702875017249220109285996026294478316714475162488569684779135379426942076188662543472175798495153160221460400308553823500791006764437529103833190157123953745692159696649535010466422905176100656891265240016141230515777244901944070884051365167411244653679747864771386937328460148301057977217152385656910526807224119230318326813650426653492982488029939441552339874272945813449124358179642685970582825669954957806651217929794490421950576181037432847926666924310947065317812451027081786371228900999072827872854634155074213613266802556464563093795127938744999818477572943541301374602999251471019361846576776560110030655281187129362265025077305517204087413316892816474510198609147384050646723954993221726424874033905208349372265717637860976386316757093056372317815974097491905443694343192536616774061594241210679129091074650658358201812078294991356822067901204524591739973652647463177802181486954542252787832803678273868909767416641765419838939351386752401022728767226408580353001773232279820486472286294545414907075429572613643777657565194234538385073983848705536934176704197107155173529954531388165238667496051371478375542618071583495842519721193491214800888544724159922879090706559530346239892730081873979183300741772258667498603367170659576456886311881455243248628179807423124095922213830276487513651965563549627603870792053226323280897320936094930418174479750822791075907930153994232630207299383479306923385346138112925421403249216223686503110500079875944905230387581282290649335729037208158839510388897373289211921741775363106973226020707301358848805867222318952556450972975878525486479621300227391014274758106619626250590639026650449929285021624714991941844007763979693067227430780683668164576324061886845549922416880219311574983373589969906131113872276001359741971913859369796478352408278859537528499090580934763863535622640927974542307042903230568715255133036546764982333280274089106547765929864717832507774562411156952313843509777359596530359099333335124223773229937672059279441281981675858846313613770093059468137337198149566128423458017678000741484677851137383401668479558770013637848782110517818367030665857399282054021887762336681394545366664122707377226324727257113351866608911615190332081749358536573957991830564043989473290689805335390526975201952758670629954676004259584952121744952666532279752838173202525627270855768380409683243560415904562152359376397723062475398353570662268482103012210665449209011110935105609059207481492977797308918931702006567622482865671878575592585602330697438751261131919938661815031632749138650890864462911029733873295120987449883087863001862196551989928265824735279467951552447899797519790549619527071223162955755762075412606240468432074572342335956340866448259372524071072006005777314167602897177388226462712676713652441939937309881799371887885298989309771232783996356450388539047612293383067579248615284058744489467206158553166067290536212394895390586661133979737649258487672149835306371048094856264558258959190395506300790726977579026694381036309060277877501212739868569474367494065944878070900494635163817625008323100433724136108479418922676323888513388153303079633146618686695350342898165373899007694069353296716202183465457348599212570903821278707755187229899763110196269264685465794555666690137600026260692322213347089318076516631023080217604291586683955143795845170046276432964516440730536886129452386602008753800417361487127711701322349216707713296311548108075009268926253775249487688484004694283275826014577431360739882480227041375217739381171346409409572592955385634299595292378327132401411615807452600061225338999036925751755504865658267448439104600954466608698907946703433230511706162797201537375229444303454292286075071367525639989738476006667471247172762963672614167022011014869356790472095139277915145629588798356716646069129116852093894201701864753069501581708740742158351488917532933095650418142904910238069501450531973418366459382438429016154687973903163587104223692552817338033274394951721429431381891819937592650592548047177171670728627476697413806941729828863595761490614650642010422012669038657580507643571950164664872461972930343912512876278320121942085144964511772605225098613690454617759323184526130899330021281656914558275598732620439400668884442098007838797257814152421528632072473138356039972434642836344739145193786194862529930911733338333814824762090598392038585758881491697661225183108528759920421823411214586707788639014233498367299866768332463498164085311093636949891568762564664889511800163617362138476737441851505091004230949166591975711172770858943739791677040661104718007908502194852821648962437879756405436698886052617947192343292784170828978263608381914971653475805304923012856868179527629658053323673077653746779891418817798356595320868777745010119147010394946573159006810248237915262565198310072564067520346405113983110839758921624457174278391469311730709388803100691106682099850818642444221572594192023891545955299133732004564602463170272360180593543091995672269028229721453642150886722634394818716695180730887200859164022930829241033519825034146724659726642011084160570613442870465103629920819431411313659083793746429933551609976376659883969891450866239033820148148683799553910829433530509624167376264146091397432767155100790068243191478459198123215023020323636646434957684683033796673408285030186646752117048869428319470306948114498718774652741371657968173968768670828347505072455161648233427092188487198448577908859434076113382670140758446803072668625417144749011221411857913134060963024566419272289488664914471280495935602607356325466956575966755394290516152441575426531239647894537977991923424065424191613041292247078196750908632116181876374391299727937725259741875215598587389305019410395623290151746655028548003665384788310422994198518241271352444846284872407217128351567212746321048384407061350627090463223762448664140221945450737545274290277579664883305858240435197380361794222042435792707343485279515561705602915540683259847805290929336741449358730546770275714517248535231183734201115411706956970294923616804071747790647765701670352170561055534416179896237895109736883645927182204087779670487158198206026298772937854938208130426756467011141170619049920635652944048052231497135061331006722992272087972824356340500001545333322378297525030933007205654673717400638118672383368145598423123864291153867821871113632909506619132208957488231469551493978119475087023114143491898281724782768696463106535686973502420186730297604414585963519083495789033120558373079579308009177132398412762721050655782398904732507485877846768971726964732388612314898104845134125686250437442704455770994697357000028690448769234243004472614773597417181649356441010325184541162105935218087072109455701375523772531879839881368368132777809456404925493758384110540141336318897152363353576446835112251077166035968154571574708251828301571447105723073674425678181847567186252068606281777674869387976837812510501911273948748765975478873893197762959330111051823122489072104423028962169490868728492277407514877283725349261328378579892164112449143451447109264026366861633449042645587711150691858630012079993887317735788500692882597817579758087564003438925096538786969781171562759431343412919864887281659359426233322034123918487601394280987713463550758412914734781718965438464743099006221112661714282818132284391214270752412911386065245050121158054295267386096094684130828646011514678135502236272264960688997578261462168618836288485935329667009769767600005832199220938383514021124236229301494758031448113860585612149487726163197160728023253705668987760721582666711195386399199137017795548212824421681112981659635242849602779960364451956104776311856328413732691987899298179854153519003638750705640827997117815829918878963343176815601599934663892273548055739810462958112219873901461447936503833741897844988133917782143750590027718036634248643599086121148466382808116457698641332255116295465397984735807147740355798073881393223873323741674408864532252366493346284107420207315498590287913020253488181520669046442315463741615831972292988786060008232674435743878415041772411142393063247274748272452115952175038568839162275029288231312464768419899313782305166985084314370380052077781590388406558602372089703037718898891990503348491648935650055196290222099576064327692692752449510413741367905590879732652086068185896827388936953101978971787081201095727902414262925522489235258467956876045989457732058536529505610451759568227649401309805955238323268790875417834642917647814066122314414349615222403339975300903862669740907412050895555252088200791658199060102162291999179272298961336580378907519059866573477625992188099186492553008098459604837952690289874653170394824236698337914437829140463615931997920630991595143802953325878927637573920390706148429608849739643685175601567707702218259718750842333447236828114133185426910230344718847673556644111085211979392897096998337260614998547865611013842431670855608191645370232837667719600897386044292977689922859890096671206794107402824462490181319470579075046785683850170861211959491848806454360847049611403015551403429439090449834033583115688124124168535662972469501729624524674024831298517458607188424031357290683862331058389869524290584763172489993301358453628895122113782974403002837618791567465765487207481670538954042999022883202195508078199235799275644467051935231530701726344510659540413161566318106993465806733299342266364799871083010543139615031731338048197308591981206722434915158575329362795241315183104355835614975144470307089675137034421044241048905953450444798783989510426601275339344429514893745174292455160582873926270687971790999088213279458539348986096701110300729919411067871376838416669517632226459923545648317621689011208417262598970253983783602275908355622687467569236370120496227412261088328987537926019102641554438089161983110285673140086099901660124395834128641245582933064245545380188607710990654653734417595157105263384653787671909910975100962378637178782608361237255192315139651199005211669221611344426319670076480861163908910635277969146100357109509560641515883304884433515821531193137845385158441395727203897396146045238424805470753699427870094873296392764695160067985114604665134052212480967158212277086302974372144345146794427061534901238653222609955837063714697477901474253617003549365848870844764712242588160848058668881087093762055140655104655383588763588609999705622230352306742761897317049707128377023293948399062826352140002535091578093038250228222861994100465091891247880789728865460935165969943929886666713982448842045181276470958348622124553826588279956381050219191216338431096915181400262435225169711885667800370254459377102540817261391351378581605820134004603820638563009896263122038777406722461384620694018671844075274886805107494617253771269852189299606233154806071706908161401798361019009595386742392100639670356955039240153447440522823820365820727239384775806454339040538360723347944918658441548523348904784458934591907253945146666759781575976725722737491881229652253851386149573940950532389065118343681812303971932251459314996693015564876583139033916638759787492198725000333921687501681836735684911442669051494176702971190066316287291462105629673215877822259306876760281543137230942154579975592141984604590658268879420409178930661849787073739221817667827361660832871688117294366515132169949666401879716758161135558008048036691554782087595327034609094320338467694029182949246173476889767777565637002417513075645359969875392282337058903386285184697718445898062145632859001940554304377681713377790131231059748623230198086165037690338810877029200854548280609243539845541242027746545323621747731956325044540893773378503532346815252078444532329979846588159920783895314826280582018367165259372683845742346523404852816924158148075021629804698173740562714611623728367274778402518416227646298995226184246779495269056608577590143770927182433985891447504191159671116575380511625816939480297628374374737010709258453419339799990260244058328110108504661429173698546012030380905610406145732842477943363697804520253888600569316333280951663547555334974109555760304895444649037584907807128030627549458428654987165632849361762621863115191097611692440228387013546090316941102732945355853867994868390592190511560217836002494847727083607854057482492523897385012042165569438304259831772920718481580581459814888629923408210262712296654391581278291034705491536281451563140377854370850900814676475828640080623831624921280058629670342981220043378312287130655271981924932869420356129801081501281765357001028741082496228481471959009162947961911838912198006441907751073015129536809601272615864640347588540687370767321078928692204691188241967819147254139521405860250950827638644003770264041118545814738720516129755320700464451531096773799461578278654257147525603119026394416964867796757421159305485647211533561567662980525683714716725982323394109912639122753466140264823040396797764367039494236161730498961180855917811287292071001556560887997962285905375248540834123582277477628418532706888655789164969818926090764747855073726443466161679929758503165533595097989181787363748824776244659247704643467502213803043034650029919949071950233840526420949588931845948537751706669712510474919061238796099786369265987083942207284603764169048430294594026515022459414928055200467901583985227094754526814800047788695630141817230872408237497980841933886052595246210183052806282575546452114786866728571800742359682028822087062532052690628475851402280071744344733397124193989968423172068451823916750530645844257991920220453321799081003452205437933683549519321494357133087984570922072832611609073170091425790072678371740065796790376171559235235708665084913325621890859601085194183555302127321876656718524106662531675235167557393103131673657729603597745131249793568569690964405888552523414586532810299713497247310239194226143445826666095213608326968891246068564640740212186496053802832775241243287667417822871303333240526246878122937787662237277294645352467292395740677417569347236712311307154710618839134458740172843902153241826307119400500834039990258219627989195550504660901484895970226609657067606845320997420117942243403748218261027286954662602589329818507254651027457531789328294946544787703789730228263329385551511798904082689506961567232735609928379546469673627802844128350524498215799134519928552188792171307760177338121326769983482181012064781762489639016003192761500677771145375517312038711906575459565173456762435846826452353964804580435603435904929734136021609760701326152763106492766823116343076603728817820133047508499713757721831078546799116866617091894392517606299588886330359339678498445816197547391374977333858352435738696627673755504722064218421334192997909356012074765329227631191085299011560584676011314610584015940155444763903795556799793682675647381978050819988485368552515391073299531514056884183036432238644952721866648471098986430359609943818243688476546497922040287377817043148773376638232045839144752646168659722200925621515328240052790109536575717040260928542277848425545653035732433934412736252060320321712555564246221471239156583910166544091597626504834749667340740406522938002492010931986344652869663835931333731612462621345954207419626343512013746949561538313731956223979819096643301458079867055538802622483010753927544553915603128833668111241734349748084422816199600133048662627262937244555956709143913961896329658135667912929293474916162636081770622853659741548562277989282776468641292399953864354864177108288317050174620966809305992646922182809484310306105525471145798196411241073619656969329570803431669570138796837212223184986425680627690775140688713838476413491615305886490518726487289295064384984582651640077669725187931707092521930539485607221487398274901804886975467064398212291964292154456743710952406912264996158258311125856571780350296522338485593962752053482236265356120541078261630711217867146566447798997887314704948335203128567191157507562043872385443471157649854311206738507124332244842275164765159474255694072321825686013302693145852429990607856832670400821118810753399614965395322120476462416387652195368134718592331759104614067755762753654723973365731246457294573681613603341970054129948783814251551738178830319028422457600801728112625201377567904125637815596101789984003777488308639964613440060025521658017981481397848935665275477543966182993289101681622680999764480433230066944056871563327816891547784651066456783498537655182766727089819041748876383981374103765374609278314750112569299319816292466598945197824286050487688773535824072375673863799740423202174270138199439369732642900705348197328089726251114366960033855089395288499931302718089972681855325046278612517408042993853928756050954233112996605098420351675957204517545571574589336053096741497003777794799238448800980733711076209846224062535084808706195309841138359517934443100322377691515398241831746810701678701761538961484710851431494319798149584063839231614164063693499094068038199435551888355306620804900408880696178786519637270041500325598095094205826212343739079824024926673356445530078916477869468223990012780764479745356208130107760693076123811316564286580749666868240019663265457481540337958327729561402986333270704473403374276959840538264550301862410404916810779964043860656377346306787150183853908966702369085608379945458692054588863369963289292714954079368166675431043269536726182771715254405528399506675428465540287390048766876243521504765046071403616884383723671172814580408633065099180049843593714169935034646457163450195422965713558770750755526704230073621791758177951922938253165539517785734470472761471207162973642243624040240157389839367125108688383816883427729457825603426559789855375846408835220326087421141585487694961086060327716676936771327264182252541501127688681890035919281740708791183728070594071952970865056077692829457201200472982793789011528767826078686135799008832935688474676432259928861360493194048911125431457628842167858641104467634384267829850004937761935784398038515307728501455217797819377521853985853371201164135130477359060499740019134653651773531272136845762861082349688416652492769419423361290174334927461296485950754023185818297584385325158275292613081468713468053423526435286621231389616783487631670388159701090086443261095134742298695626338826745832592279365658916941504884380928522687302022050409349466234993838078320947553673904989324646010361899227078214366321731603448094489360960305522554329144039071818007126420273685993838060072752250758925990387461659716659250997898175483636068960914013047448240723437515414999753334691022292807057981159102870704468389224105791519022565478198921356434442566056790961992763748702382921577697998124589325607991193769667585308045297751125344259207200312813005848868076943388375588985614938755104051103682586979230527274538334723873375365858949069178513728308940724178936997561794240797532122105808982809973046259924884675641418502505674206476012778828373976165898712904520630358735720962462436163887299656205614313979774547027546569081117048762880569012532499668520923574758327072679445033275824059944574486387322943692390955440173865290057806903263508127972206211072827022247377179003630253402645099063917808529265217215248942876598134158586539839745328933717633708612735247311162548087988188966880798279338737481761993148228498092182870982571029238793691941456232494833906573200405937335772170271465455882413120158044412903402578242387942758182548732237460670101293540038924877813482055235702345852091279084544392104256539543510921748239632695362354800124845454986766936662879684251410015037422777688195040266749873999352138445787010225796295863942730829710050218855506769888893269703789093177525974896010016174046406296954172634125697292060684701204134183546901404075454756328228443096147927131391892467235146265712966148216511441911746165876562574867646045011256126382951101306148563249201806857651130813403795019956955059548506820938662565319921727990311938438605653220582196247786642393766378602940198015541942719944967023765296136375755903255144493153737334820592701116175602293147788108556850304565090435252415821327919833099483194259157947652869680625972414585516170199506233379015557431515410133250432993156887318423305592897455932656459774960203249546149930176426857339374583807993836954678800231409104331343674092911426489516129447372300096811550339025693963392165367413236449882192341342317607613127476145678902727643442044667882550056838693565905022648648913011937108474512926923205639501451238323933600471890605372962784155940319050096265493533658011475894978398216316456410782471502171056842276677783027025486627042173831515824023125034972349529457073888324401355833950895772584564281162218403512106407216103971363132108325475202870574281202580698244255250564090350755186853337507578900320740917494758716868195303182139322309613916849373176042922244783176774615688132579613368751279755444319123540577063785430246587941532560012353415061027192218514649507166828688823249332730026464100217357853769380450054896226031252626050527827225338377578876117379054889295446257889223942637813638020653620038657683278691838450747480425674819948514262740859979433351033464763564106631096611663152553765390312418213700630505966657327359107788335115781535472998299600465686008900857419618541031596602454815152048622839729407287786477218678751033653164212963381700525386118922878524593363147456742318309965511672921259993393492089892314222258185861242300596112108557878714795183741780303184564674234335429548865694472531553491766417957535933088390405023625009091597678086829641708457903109551711337058700584861650620311848151505057109023766108199480363425400557634161301899639088853743657431253299626530545811228403641063677926587942877607710840368178904382510684720424433711765941146813868948770344344939917962374590341387301228898125982046185511038825027953203519118952070848624337318077075934008716593796878694429258125142516769420244855585246169301431472214045206189095262849907082737297242027359028698322269440775447734024622180312291792949624363729938925920132169386108821233170457171207459974238301762754601498155411491978332148096055611949264508079014795393882656197911244358771488047136405884435304929608140969634428226512461003336256883527018680362187068717707615672918380998542722865397278112597139249108010390998531576661535367636573706154179169850915630508317961578464029186865255902913109065791734331146658115385084603468259149793150165754971817155534681851064686746614816094852001316620208820724129857151180039396979795171228520857292919013703854896030166310481727090098040934614380859597950109240737044026347566335252924259588052731369887089719840480479779475299777821971614074251566720984794212520101671850586593352339064354628353588896633908905300336724189902371783479641019544598081246108539596489834171417155655607595932941358605357635807971428145259245764219382683973917785966654174692590856096028716153545717242074575560242834057343015695751562247649531452805139778073985747539159355442129611024173986992734579432324551126154308453854804070737221423726483495635375926838795320129061281035896975623578829613283458240624383361591164503868822415104063860078610675008990429620074498740856717556179330484872230205193264067909874947064407686291679300032280553787179756537647624337294167349883912574214208033077712476524389592125835470747648059270242049303098837561127964250062590100328384577340426117771168302324384532065234861390474626161748334593768241991058834848736893806156286438778974816569145818097353914558447034029816415220592705650894409407490204935049405380647464157205471716690659278203568597628354831564160288407631212470162185934333941126743249620508717922749638687659735308470101499519045106889508831187299966882160224735604230191313274144941627198756134452699340329737509904456691887898925763289772102868666494949445681187948331002299679085095637815816059660087399288999250549403543392870050765622678647303594082860096577267939288459801851533294721887253713555919239596872311472234264858476347217744515650495906483835986789447167746717247792126975167577985762042025581551022717017782843537277402822162699930861214244598888580830448008371200397725501772833244412803792016389413115834369763450231041515799805345789183925787938188096082961941672663516473455522776865869584531539724788157870515612507646766162216009492865316526912920265859406344975987515561792563348054320443193695570841693021447004719407409561453094824529274023745241559850665408721908340221201149500736154480622844699888159711892143257437390477777851400167000883719068684827761240841000671004025762173167690554213334670490849425493875094993817908402089826360522175410330003525193940454071270131170173823512959418991530075702561821802037103278603756676983479981122500218571011378671647573883519657925624003897677430905485460592267022164355684311615224263557903932467445593767705835480214107993567425543314763983824428991894887301683838355568070769425636008721961628401018010016723021480829508550533673169084386008485722375024948108507148262478769497456167793740738524673057833420980522729241595756835748580580657025731809446180844077286004204267252240225867339174316790322764378719257631674297307159731793379603893212336596638206228516200990212214041526729881285874970348346071075410590894907585983180578656731681196728347339302999493524848804595846686933505425218649237402506243425273977880960768101305189849507067130801409496315706061977126251122961100685167933332353431902351542388074045430819706046673119546929527270465312358782258782292594944119344656564126546737616890444584757134658008997875402752559539351090566740459371111810504321098710318268831335378326418907255619438291449835693459187238810863797674374297064552983097429553604897321575421257853747683551986457283087080817382283504471785704234483409741448899166125613563652179686771672132736620197730027976922025081126334451337446475528531825051824186621502597230003239754849272018604680639491428631357453296540548017607557610353494143036349411501241365721334018224635715268745110081073450992753802618808085707337342234856665341514832967948105744589187409933182705853819488551345043482728633334572282887277693168270204147132797568492417898881878993946871539038186759697549099279257465423624367863946275539230104518308974778168426714923326462078436677863763718620378427813899027488222025112275349685350566527626168628271839187830531344876247267206321320641784632120515389168062556923460683890298589250683632223469588854019090333272808160164710453509317976777988719080353511586580144500356066693493168828130973214801284180389601237176697381440467854153101007976164097192681473346530515020742094573756640487487826022941543371608880381539437635941409247226294137227736480564410430628699387437136034627586654936049189622552866124979422042908747345476033725657281486647402045498684167483212280221806262553399777668241309189099798507873847164019805951391807435046549311198769974704969822078604769550091670741973440658322336336961173795552205326623842514460838825605597699789773615399457809812931843482072880413743412163564488018366753132428132494670348602737179512038725838458897138262200747758167839215060672067260495170575427483895357897534576129575226396578105115028531905718197207912537912570245991281682883077098392191437543349905376784199093846940364851458121923018202292170398791535296197454301745523263702689354733899812458988603033723302821317148114933584228476873740854184876896818142486611817357991931537287753060135246183171776794861522353960795428054282944400957218157082775449254929517898257520037398320724403993813005554392542966404226378291146551212055049557475753495332700074056770328215776283092952250400141117404037191644178910002449332602568440810570824432496080345189230772400382513011015742039326527495050428785707992911366777869359018553410267793943603215986092124434049806318144891560316857249670674537702968293952329351864645347639146386551276198246699418768517657254856646674120737426129317561496986031504497417920718903189913675674250691973552798615046888852422242327229727192998679152239093682408079221596458380288260780070932752846234676187810331152504701738383951281698051635906563328007607429843089781874608168400434177737183451234528233948507557763754440145806461801418295636530875527948452579348132319020304254160606149881967384578027014400024506898054325221279521306830275255758660731650662702605147680408922032208059894020597028012642996308596013456887092513392959390776299996640115468417459893731276125268724667360432143585952222361451551099400562597297018632910433556475500107502063010858156884463020457326120523908572218912760249696835253427814010973071637206321341187848987208883078516602469239514606476370669232768531297085033184603960447468255609072493991272608870263777734954797072047083522418206613847771550595911655056094057548937468809377497296209212481999927348859402406593142988110425748623544611575002024333454190841757231162390581121216186772397748738284986050459946030852945336260130450569232069406363606881809206147931767612477796776002217339585110144916704551048255910418968065154923857539744630008971759960549203348038519279601405533431716558186462586623298962080568385621819638755960645414325856444347130468470170013508162552331099522157997406190064176300655036538826159591568890504359134298331024650987073296628379527227813091993632311218023110987744183543442080879844229726592793368554873015509186087639962225800113596608704406043433966423443213485388553796213885013750313915114728299598009980782559193480022408595904824658346074389420713843534578517258496704899865096769889904011245553509262210357998060120403056138852214140038843875935936535869498195575388753514463845920710017564869249437494135061235954515846245715463753585478669268612381152462226382068197096726937008403008013378644278380407850361126888623508492241288392200888036630344995210157393549719476088302806837942983708188573892505325140420439914757265621357671163969103601668898309810811061763308534823050424093562082704384486380236183631440221905827054290676251999298333387990502517084465531011525551346992411401963022157713077339066653202396190335501549105793365547379343694238382753761686432844554829012294569560243109611764981802821723930964779826419462141080869150911202365135270822754214132836471806361823192647486074959895366102526909356187259453261340448067326781626006963925452224290511164989808477144198101027101605129776264717118723595339718803203155871512361552428619746116284680868966594401067272126877008943047194162044000451713502701927228085736883084204194705052148312344294219423428240130071565573425236316040965935960317320494651226133897476982038832003388164362680548821790699070670646632730156534218635894659370660730629222037537331047742452143341950232214350155434052779666030045471322101683848310166371778808983300484277640884366953372436652165101395911909738169625507417854733560800957666442983846677648243301482857210757655815937122298524423409689870244381247399925812353042269518535803107258550637539451631590889152119853895443165535923287206388087778980317728395365092498986269034322070142401120252798530418378712735317832747370696132182529830244962778610687536266726107109392176164141409549860509511701233284537294018524792316385054736490500672960449294915813617901926575220142923911438734905719068803967030905445140541757773495695774436904108212786131365259822461883348905171521121658633264805679283999803198296956911573209753135590532914894861934061569631973527246151608399015877124413234539809682366425483806968456737371992171481978583854431186355649792293485864035998540478435346153740467553350508450670570067207383091474821332928866809323605894483714594925817532746618222465503490441629006197861027100279493997597102016670189731704471164166499889198295055607118133607989185262572870603169756829056577818463076303077515933328673439602972806151489454036558702339183989774743757123106602052148886859758694377975628672463051802972521778271646251033598559408997099182005232130989980364409748196538914537286745150378075335961839899906367688526453103436597122747826493574452125519586495727033635496235959533364149930228440999793517397440756967410612529960801274231927125778946922136237017994968937808407591784475066402802130090078327106276084877989160068901677689543096575461771614010250078753497034762873476271502659687675520034305291553833997836193452418310498984800234987286833318359519217911182508119885755096150515471583283728672858857548183632203632458911076209189515842101761036241427012334363280610377547694295990985293501025267440845979314189651524031727099007569754488739540222259058647009850529157167218843160395619191161987053015302217066066089275476000999180999232603663427934057905658364048434948629153348312883291681197950597790159014172890619929935853173620013538602774301133695824904281810608644539089013122076710598574000044161702897591174208729213325775993529182102238533910070057468536061013031089502148209150759847497134310507752279208670260956076111563635970531429547696404604987711221971723821349638161754241998792678620101561986805140268406518298766601430444493717853043494956079018154014088691993133621200121966151838337222659688423579061999644039464955050379997784670469398976237024712138841502317222350462366443832237085693594163175104436861891697816928515468774459847488547681776612303059875237635618166905068542143769678118530964461065124172898991493601823629553637291913385706002484128954305766651644828506389466000395587932171603173170018479996307682367825415451849494261326338214411754284921680359477541527648725079675153386198347660668420636723350596603359704704696485022056710679783737575721407224148555516678765919881370981528343214234795170236550578221537972511867721403297519238282314386995005462690585257217135093247621660446371419749150617798470929997279815477607742924462910856453006685669462264885313094783348117080857731846527629020573398769374340580091728926260568835490531933624696282846038553666346721177050112310029720106216261081514709621321702569834125012771995094631409021279668403457911455748461265569089904956075915088411405143253999481148204679633907543291664808504169896125533485349924861881632370581606888304558664954308473102502123023036179186668445132627186779514030307386088799431989846946682242756596186268118169164479123790869869184763118244797711585450007836329241938292283547135404139818128048401289188071572363967662868174948118863145825091962963918229528295237278920726132399353248472110208260045826904654208514168947119544277872522469920501310364541135663091072556290709553288681380891365651219964089728317187554337575164836653233001575624165231148052214092232284778738086312471821342210700970180786430630255372914486497871345199622583395662991869328756206548950996492661528679160874247669379689542585827874730670974833199799531550994253582561388160088654224342323289784930378955931322174306620814506603882982586342105921637585604966537244800617081329338639830270432538296471555297105007780916990776551832641297766864903965343736322420838567943773336272537717215088264754762661592165811387918362453401475770264877755909892355210500987690579755449783135043602474999708575650132204134526980657554396931102090194909604999474872966021310476363272473602791089664996856017701591690681838687659003698905973637055566919825364264804207988742439145881273779688245752798457031160545792814484782671494965733932141334489224797528377618191021214960286302509673940230506102984718703544733398805315885913552398227598816223169665375809172446298802600005924142881209495543093090651418607123670336652599463967596180575742505032105317355950009908999709278279893901649953589539576819729619487148220589103643133721584835444487024293096467537263597372469382450186966337451266714815539965667477990294531489153913868399531552055362379974164792130140992500553073938078970927163472984759344701921409768808509684975604280020324748392086022491533528158374525857080892915189277918760374515413659232029046507021105715846611739203209115708915539466351423862292093693393862445989622197506972014965273523374380128643068085985369406377436086748313665185949766630744231466269775930178749768383328448329010705280374274476541469740333606901810828196697627985981074272347000589454004419665104247988311000765016583861684911601690895422663825057850492469208274385969023234118430209117755591470243383228971246892753048507961520011257042156045018137803472877616583561735587302701913213647098788918189870078699066946330120696990628824600011305724711492573372320439713545285133685542782746134654842536868518852628883516571484549291796291968753622131456950130479158174082579872966667923560834002820696504414567259125622981331979569992127692188144215066011995144463380896739756592758758206667748098797355660056010983701362242503483398808710424780563238207775100577872988492119977507068757860354760129988657274816758033723437631625335868337376203432593950784096304261734665434407260697123521292489094419426558396611190673811570988276771958443941784789168896065984430800674401344291689359413109438453544387156295349267727708677936618578701367283668079382412824150074519810873896682880575360796218933661254503788617652325589219430087101408224779187535755186173569631678478969498598487915339632634571779063455714087327808054121735212222522980562105503021361392083274130156993905116271360932858047877780946602033990652786908465889986638488522220323482633873315688702517711634802112574211507726716585713804105191116840014069206986778735263524373947952211339555088703335965879836536866256809617823473846459705657232636932226865359750204260548362698303934341091000489337789764853595943109988156802520280557480889264319357899053632131330094554189908054314944452435622226647814766756198816251337873863815448089934972946881409865533783970717139959253816284795167615751566551013934639896784279524641281247404956111231438201758379174373552017991534634901468634051565976842343941928100957050069518246108588079299572642975241939033411476233280101441403634501968126674946411931889684237877136957984233826804753906541714497176377938943331442699611732564943269041865793021865230742214900112360578111981838656339610910105827704242450149181744755444097507865994811392397190731194326778585801399357941276312274869625636203948357782999939338000748711489334979425684740158467479521007524932197318036870708337230525355577452282429387968614642454533425703700873113097480748419456868920612665963934980422219836533219784595045614229371262341399472562036724425563893139510881558866366481491918893337584398247976112188028025568554097629318605706763215042117508725271749968642882145763423715288036417543246491811505032771708536896458104820061673278044607165705121263854276763978030447567296235848501216004275186142328550318347563966988877046250889452219816524238711978436199711839854010155943254217458248651778460971522075220139728607388526794891394678756618480223790363259153047702153519152237253051026783407579980028094732012854943423929886251338066546160664683926866304287540939011312059709686155461768647376991336721825094530645405823257119810574256646634005555844343095881724194375873886780095917741884430156844258491024605198582723775233538647940338459032932092083058976446942926622293622797271487133141207570201359992070496811935814055703994747561146063611851456252234572762500794256542135606087068510515974418960033793291037796481527153008500784312935302614042211235871183956208561645564624538768145307520428501928448804241815893165787476256978405541870461258736908380070140101813328040632246410989370195172880104121492390370406314270046273654943072042108529730895915754068243059221214209328338343302644633467537108521690516654780269502609798080719420324612469582150987046385988569117343588722005516821409916202656040739778577653685822744216838557431949468247132536389547136568594918275782013410193155790390559835436585293800133440457834882873763293524688367826694315617011062986057655933409627115405826458460719757443764753540165790413038389776365191441832632782788476273039452573611551404831248236425578813553448345529266934645308550945493968785805521580201504701801736417939868116252357931307838528695800752244929336672161980234169732600419167129384605731628919094943166492049125850125897174025500644973245917566910630050322314521482720281870812737651157920273994756956450276302889923441961043611543883515935115511693144061892160377378197301164626853051964350086043145134468125995615200452029151363366821582521451221070264370428107364831481970747548905596252699075842872266905502096568080514649879987991457997797490979064665111433078575008291282563205164071584779637347456417978286328452618575795381351932286399244085648222631023344554397091501602190197537111182997826410121358481855614282157339073579988958713360967129088894824518891148171820902875684667372407260953448098024494021310975343093048814969150423948615684750964016350732954220807532004665497365226891424779684035476280314751737399644989415721850663448499920815998715973505765432545807345455993770063731842095784038506458778589528025183581343448788703920793503449356913010666887292769900515726110425321168803291405947334608082602972948713106100593484097888302425278223800965276356345689144847640329357469978451020241371672733166199309228326986884224579774557382110702283625372594703886748699007707053324448751591107156406348162891238158500571660779549449462465787684310437281128391227304151569281926566840325380639467757234281515022618780816791830599004335254931917817207889967878848594931880848410075043830451532955338767894543654661299972880392216717927424898869470147106357401440061063199486235633541708528355005647902078666017466551315707770740868725143519824976292431971853545388529853553339888479115684678421361573406633635983782200175241127527312520666286461405456797263432796051606109476202295249438521572880761078299561750565457356817224063436630526770389728916010686531723044479343256026202410404057458749378142638711264178880595650359768491118497791698837046653325299744883259578011629882690733973069915133721271166123103179032180027817667974160631275979985686686221686893214698309763515926893631085734636421309776994064670889469213165965544456485513519915439843867929035842425472275820632372439017822560374682088660133646944493615086098813589719348719174961621792749143472972861523705977578765369237181866334626601948482901238799824200002464752243103583655188458743466115831256682813190170682913291327752528921835705049828165183115781447676944162842768506863282562947346365203552242270041614828284630503683451016532707845647090007641375596959549157058969164992765134722631852934481665356921279135710293005048452581811497002562786276421384264753457644361631043935616154590056961567100460633906056020341564661624606753073047332404861787010996208760035682566839337066953453670295601491938334253602762371929298680541821186899122680916359731081676817128068670180728013986080648897517903400065839757614595464580746329478371962065445388651456792055537002569585877309459599075211891470848876495813821086624785287251013603200981849439722325633740140071882198713404923593864843289055224788686848762578235765350568060096728033695852895150161900067946740282549210927117499149123374729171325771983857251500011730993818492795800147865784570187517935743088220427196973623141245095834612303516346587340182829347480592743913042254857242949561425650914210673951543094182613353743041159770908029122354174929169867654990450414959221661573576686208375652988470449413046427714504340400017379711831563548051439261866293543867016994167600518234781137426988530116077294622487913222749763284629187130394293357042837023219351221258352806166253807792968232140522911599687633514098051142750230652228083936421757856108061150659943345604537333035064688392312469985807226943041245634200554941799651007092419898989841924432391507191107175205465986017140172693025893581656185256609671264890798606384130660644131226468739138566653564415953286968167716844271170254078236739068302583939499471471761095114247053495344594057140414213660909993010915876471595535022022385284473174572184579966236154306609609033594998057475188235033207251883126251976074015666197122721647252898815520412967481747087177538113125903814056847826263313637119503269011954271213683412145036407917476039507502694862165410679614240258318124128617856197552786184587592447028841634759361541548309150359635865682694360687517193186464774343601942128361892105135269845975274123971482688380182035263020151412355041212054540766510933385152462943818288463290049994099561778941430815726046268373767377701302781699626968799395367045775865070041267353119515334786146476933380351145870024142411770428120041455808643265656716568734585082615685375911665729473837353862577666262910888857745454427595627192158578542341595904330315901247853905453162759515109512902722907557677879292764584929191059424204828309446265706010228421557875053472232228265009408235904379929598796611391217977812316333052157377655935679725817821592148368552681663753111250958065090976545518657757461615929028880856327560526299184615866519874627290606347757663367271955776761801016896363108473508890326860762073095753595858360814335872273467534386844765853411258262765816428392123826999004762234567602851219358959774976704694041020918417872514775718588413132282171691066859976056508823190542271320339135006871028759663051576014092636842149181377557883730647957677928471807614532985663134997441125059778438205682814208782097093573205714369489113512584490292600709062752742922405472563858745121570677737865213775850528579036653083609283509274961065889494972657517997168795469808902657127572380481361449831457880576867843370983430419943257805064021817384787948893531052492919564061795106475166246511261490312458750766323983656884879771373697164811208781324467882444579323163346271473483694248652258226754692286041106437180967618869611651929148696462166482883467621993056246813539372235740376105735573370488089751356333948954071319135559482151986035936386826245043011565351336832264871670969719595316515743549300455690052887351901217870585903614904428563301659045663010600442469906713998862915561221535537812200436870268901258519471749137136021416817613523037270878564983372616359856053785582289823861144627929393756962737744398061289125207478251422980634121218050472794114655572504217854663697444473730945873766037094053094047130190482849619965270559732872938225917286884238592799663521025241472423697754085071391368103017219802102324873059929054479586452081092921789447989726232500121749179516633523649340600154678793258329143195809581747382404024116075210144546459387836734064778267417340083699096377366327245437802476590954433164795811960682396636150504876254137870724011642097457395619168532343705062278783651011071967300854574808357687613813408943882669757293270073081253066559662542229395341292176696972241083850930768762636894969649607197542023753279729723840754920013898537634059601964701620268223857407260848845601429254745997575953232384920190473835676621952831989762039987444475611372252892776145033339592813349270849924159318770428515738693513955904333462553760863592992611627336045929402430663982523859797171048886052960159977207100344476907949740910283554975240685612917944579161226135949577655125457038815409035717023023578146135119975014759845987695405828698730944932594803760762225982480951763375739436505719611950099962716806167776176763483875486878748777085430289756304147502299692690471333406861265144618135451585242202743563951278833164315020179064037384590754784000977825064648814814566917554221097411092263087862446716676513941386901714557742547530085548349948666806525743722607260458612330825483247520276076635614465226941666539933520115782423425862066159397665113185373777582397956213704315290774195384533985685888485344443720593218542676825939372426987236532266371868495448641531835465349088130125660881012049700149101780433266967832755729542501921516472403253231632286198163249819869575787691989666321179021890726344751958244304340696843909514839970117371245553376953384972876765384447770565161166143287347684647874757086465352288263769973986217761799968642399761114851612695950009035187918071454809070951275832815420094529750750351838621795920831842864597683933950123817838479691111547107131174734768309646561773271366896632437200720330240496261034071558846691499773677764606302368557402104486560313825992472131208063832319469218656353645622426154189199538861696456567252815038086302832444887230250750658762450721153577255476754282901375525833706583762167124336244533163276787464926998113817925715649806099815651247326332695317027267625289833861601131806670476364428579506227732038173120350489565961454934720615606160100124871515982124715396688928350556242796308654967634707291340217370836191628743042663929102025681190166029184298175039306841964247269567288074370307085912361221392396193232402720252217684752495738003747567224960416440429386443778167091918692674705153165198499481651349980657403859290853683280860661070994702941814564290071660871709911603789333754397536185702714872777549760334420046110461259707365687506452066179221894255878934077930141224075551634592844440119074401679883139979857838911796335212950830710171939711085770544543000278313763548029145455280627384557822088289760402991925089433896489346670898577071327337869353632793451030704333629654317057445958699447770561291228670001930700774105426889233821449754641585364996118328512122683283159049223537311022773019196023651400694859088923937209505343589002126677093523247267542058205259676495033037168637799613881835442550648493831276896083963332053419651986626240259365120356607375727758370042332024960025246877696091235223489126523489508102444032692652914461893715210350503975580584973162342195092521007533435570184613081038253898913367315188668408383899404405544984652659951786893646477389720263401297305702524037891934422854996235582876162376867434009164758976685389635116995550792208196093615168937401776168403271127447637998380342895652239165780340713727639802672218225631918621134114404950594108122441490552100008196087581762813323212738541510992828628154865823721660562162726841725124732402276036152685749532462164902476548073349787244473163487126932816062149009416167155715852109715853812455414515166194405695362684189741563913735139692637866157676134030137772889022717480634872317098991953432294497645210889190401895709991752568750517025919077380849683590424206582745496480821110066198050939234130531679000518064865274903788614079475547506806234441112700633034296269347978846398125857679393152533238116377868848406741301897531408441817268640905916395464702438487724824012019495583196405915394435875826363491296651389538784149165629030106224356706960618441170394013157750668376289372600224923990752399015605393155534362616540785930138951515561169696649523367416409729668660778108147244778288666386031489086767987734595264995241995651922610313836418509116806017149189268195151364815499421205789728857267778371637097610876709137425175874773100060950551614759121446391013550123421360917833780100855858901987841685848205523024305922480405411467913148024019722281619097574330834983382473781656710084152459231915831164992954034297071497123930036766607995289316857639461578162406923389576853179293957281099755973048030829531590469779589780701930719576588690383289420089154237145273017647031131756227061204339794203382160466137367876080687417199374951929668574069172939444952282261695412040659413515470743730222936564048862496532658223588300795686878732691548788078544311873341973115849168135879075781693699146129436553256301077234097886041961987473697378917802664358803783660871413675043740837334157345098455844053729700403930013803765634784792868398854118226201747100611189299907807013500900700909801676518079904852128991678686740025290981950727179643603018829544598999248845051770115441744584537516503964126572232412228824658623908876444167013215448820546778488649796780572987154151122327965835139359584525252819890960826071497282283837498304140245078603448019890503482169101062862511562770590346390779762335580032463619570996742606792886630771127674990198241795164224760246684870100190368239323716604403299192688615596278509647211489022945602630758161366901050466265801072490271688072595535920052370671569177490413643280310322486713041631185847904664076360154663943555249448351631448966031611734684557084929313338296120872611859208050168582578899865356709549923751106309279066655558256394001683666169699713355115404685350472831706367375702144150011446068111602757510204524740583338824463738249215376700501350695689121279511359675085079941232361462787657580459136766243254695982696359833053903084044110175233048357296099897524411580494959446968169014736553505437704101732036761713338398780257373367151473306647991126570368631259642160464379326800602626001995688021061053353466420691412263011032781620966024511212279684095356418823881519915635467179523819859950773515419915391715210528797558976584905782962395034124258775835984550087571532610316920320904793669170197414588980316826370137917668844052264283926532151836853898282745656060713233238502076378225924665614670005428272382991955497486640553102547126245840108460927991567710609561226480038291666307969700278794456445921807734656562274235746515827691899931146952795394070747436222838821038471864765421844183013118620120606890016279055932150337215010393484880048740192062981969619745519569819757410057066132651904825200384051244310251134124431572437417908425422090447081064438244723028645157684694739507937055147669695807379792809921325484853502424362425695093999065011796188767937286428820340769733444822236854876774171593343544078136113314357711600248193943839548328349731097572480805308647639674242786385933103809674502197909817699782686038780317815246655964841698809867818922943845695459353702540735416015744946014398790508973268790373679664628845242800782677447680060210452150861850976641479359834388183432177582451810443034604841933522167559476164655835919342718076125217508106261506330158617750668908748746946760285453427110483306551328326928864120586942920943492067645277824723341325735811273850406188644911151893729775577192596889937779429575181921488756599643143925973941892242849444240211589750445616481447936215095181538904403706549403255668826695694307775365342243890447190161224756547559018147386568885369901338132942312817535423995180421380320684695716959080523644874468650430260314726724701179572893356958091266230770169455913308903903177136780175322960590338761859897018552290268573681039973691078029965036282935241192445083672751787431840241132284305981337214764957202782147842936563770804869849432718884261926920505714101230400714534156997536400319709346414474472180957469445788117001241311258371340233940111372977013801544052634819972757814280193947195866492999773007027717597471601793450900561407404704077382186638928443908905982166219186909164524921279030435856625243334276962118235577911163829705285072079449716184213287906025339049345435263295694143405857217518087406051196881711490603606512785725346773428180850943074524232047187549577861705314663083539404952136214909120631783224383933394968179246157341073655078151098926859304963490934776703122590745466450487273619033052445319367058748421051987375186215847847100146931908671920726225514965483876110549297824066608612402277119635815230663692976707898961938993078713414708633189350815355742181322224861921511525711459866203847128364529339004924309859511064372980226107181499411703329767388162484112709875112103440186878817014680505296889056385662992585041340767584705969512251400971053720798520335546084450013008818700860793985085960998133512476471768228459214752691370977492681651713354468211521193965568745498541095277934561670693299503448679650894903662581927621423445069329104543892467174918812888119022282814096886144563780093811629115583151919450327140136145792341033742603958586030589246810870283851777081368913995098773408202791772100527986352413306647531789630866711040385822906856731589699911017493818283273584636607898937153709413435084518322254385004505023510125429960491568303314746751740314256365245703577259505752233144604151782648509225848482524429327031423062917008793844969086714823874688327007493260343420736612743564426410600743177599474251884357218194832064717811106357916404455231111455473923212404078800056602967896987110355049602026528603924013263467174334932392856595355237837318296988283556364446740414208413456498193306515827657741931090987799684346798068800472788349899496753277772057813145518529035928459198723623348799954403301066132255689393494883226226237129137620783519540054790234681457349076672985780744982911994660598345240798164741701060667247334946741149271103912836658389743000637784307467914836728611662228875406142239982545218003615049275508252205796047855901258974051547550804546350019343059171211794313758569693380260931825800229432803865056757583267910960096020847826213208248039773304360837758773121502942182104709407005214400482076693592019469179118098738492345603180084398096546427700666544582373827601045712878210407283756363349247270944751086150528310685458543519640992411632209072701533514012235346714892019695642617734103036834927654490818097545230288684413957905841206904902462707956835975371934175837545905035943810778366462884934948291947127272788298663720002912064195471638469592158164150380919225150041547073582805811672882344878313440967216003582806578520390484767404433874955994670256474994206617598426344702060448303752001080574477386711677231220110781765771160510537510884259886670406615327292523888724435163115064014726462168530454031452646126582639097173722401026707468396084471664659298793834872335393859490690871349485332039747747521091407729698451061208613447922214729865937508140578290075809224264995910344883674557022272172596386419201466894852387432266563057071918130603315632303932989623399323387388970672501953464240459543132816386328247369668114009794701652562188315623913756046846670691256640143466738321963914691290873397487764240372068569267704941253584856315623884307495573763956952285875813456337258138098248363444789958280195794009271090569190421560216686005756802657318034100579945295095965223582721392422142338669635390775895888850005500155255393297299853660447122301105834126024307498301795833701724445872537011993715588507823787196988594425932087676508873692874200956301241726526174977107094207520632439741819294262785800081264981315446026963106042970318630479739615365284054000880971037666265769640731403871142119120885834642639411519768515176830766632720862073104433949548169282709395841636181103045485836838864315477519503325268992682784350320286801187767687327120374794417108772960809298278256087578117483063958559668721948767451091483783134085666877202827367952058265304026289134636394832463742249224612728094445580688266475872020997092639064039763455476512692134807354134912416020313408192617658983077086013889113766541709182319460624557378129674221967128384017175701116760906369348725591463666356239461823636245286246339230601056921716480018310853672773477658015647145407335863198543198540544407358675997620924943920225652909294958672787565775384147425680237942315573441570960552483834914935763007379948179643323235534031181641272119106021077925392441276664672678386831293304694607620811397882179288296940883368325681995144283888566327520894780123205543925513691398434560705805346470920519851554894342268038344430336828609133973266687077363750593565121301189346147928769873073657243459462922520152815030546003419362074213276909750947896463188215444160145900581641007563422904996420087366939285124526145431460655580918592958690962010795600342831878643289045188958948167831041228592909008119310108414187864415865910540511768390048000427456424558808922345264083693642894771152910932373642608675223878336344337594587986575900050984083423738134604251598419366504563268138465240265164882758223377752653361267113425190029179333081018570001944413063482950444466753537012126677803625024392385540612323351094872388438279842410348027074270291780730422146647987209454415132683098713921872741639836041167046876337027703852814373788469827372531442791185600799399838881093706831766203553103227587222748424053800942436541383875390349777245858348231109185783381917163477499923808516568509778595306398813754761942865970004090010577521195829889758847502170450708522203829830178591966853209013390222484077924029030280443686384885244958608621923464808807015529929559729791548916971734401539475042406611798377542167907222883721826752494410511586633747987588523251968874198636577034485860553742061285387659850203259298765600641844693620793595851712728774967617246076976304412663809125108976679266318021165361568053453706495249055124702526547651634905903973724962914827657848351180413217255150206451623134225818600632146757183258381733546231392617640953692231998885108480223956493630925749512804290596729429471907997714194634195728968793252404239197266890730492261758498407956957048509923338213828880197971346078839923050967410979721026158690496011237679762200711056994159819425854054745180653277174707308342249732579761481962278340615231797399766358097267755844524998602097564772709286075783971290756019697028748443787341810878473602768790391605128817825125794500384715641405045181856222500482115473879914019065042608728115736077144140682501183653675990600272119911731341789134055202304026745932352323293034271881161344459832253629592841211747185501133321681181759132383442986521156884240615847964122313434628292944763481583390284971249917772372461934763066222157208942200364776238717500094952148876302857276282391029910527421292018558262456985480206738329893720210461004193597339621234999822287085777178811920898442040056709457781045687954311741048997533355725327424341988478387286210626196749545561998615285794405745045895288074860448584571065365848555284158230321307381791213550381522142364666269893945774772273636972086858250100936258339554995009386883646782403397803365204471932493720537532030501593624053755211937692922953182528889148171200676453877503377411123997120809709922046990765638578096858697664813552458889939026074601637270555246060216986523484674614901887681898607482929031093261119490735145884622079572785607989642045517682079463168258795979176386291343443832579161010801223493870133969644968435570107398090880937291427823772993377598566655677518630085430600018304487335767269150925528840523151476826673586583934469354132617430258452177609781756139804576238796497787286219728056581262416061888930145865603278126608776906289950830163061380786779143579733506315579286108397061813500361250784286490526732543663015941232168444256128980857240512341006809736292792359723065226386620497190161706202362854283867903614515219984458412836054888049647684738432422446109911890684846685932401791547007225238811507954047229673414461699071994446536897694363874988782054033019001507909991098805065247612375162463303305549543972075225978237322761462249162314764440540529262738109402884204982210790875657931959363149939965795358400076261951137412775563165147503409492214548119355212557045746172031931809655815573123383294904192489174317125933217833168989959243245757771231155829172092989344177086523918581161231917207791518062317540027135790302852171797910372970266595260466607156365098022752021507674618187483128744627485427914756784105839614507826544715038599999256514982890920873450463794087345315362030876574787289651849663084802972066389035467444557433158399107428828112221391189746332487219831977540764563001858080126047668645721935437438338644084611841462080212668333126263232186700790478555953804869729689808014093270257747428853040872992977834414189571407049278853711375737746915248048487963751949166426171943255980893097581103253824930938726878989140862219479852913451148262358480356728253733393513718470657935847004363594671523611579666500667912964558335192705132559306377209948778742395602613552055307385710757685719712989143276394720497296246294138745547343753921313695999131324290235167193858669040038257452706265400490160924878992945630845940234945313549843960113250149278072938101880238772474801341331879396343512395096492027795657413625566009728730858395903563427269712890790010998977179924029800947739885417416394641168991989615176089116662420022309522127194310933814379881709150926051846776522629025500300122449857832583895186683174134772477536281420958500686067107106653293217302731146558862871404964568298592801525239886717802198370103281062195387577869593059734701109793261619991617149504972251450944603742214731753730107697130991697925022476434404514471146062167584719205367888832865209274108039565427922324660099535892362066659697988592716878233835359672015494405994310187432652316592823013779767033122761573811311025489697744675466678421903286556306063355239772084249212381697616829674774954128920333320926761007789935710739406988450724331429893521654067554721911040866900018563281304032554295280628588065733750862522389000445904040176221715410515468896191711421089406356931000853919111811093512608762228679667780571771679378995919362799325712443219879258680597930760833666104711512265721873201161666047668886478992423733329285901687577561347172556968618027586682789172273794532993448508241285849170412914873844173819353094770127579891585446203267686943061132056548830124984626359557090501857348729286575636689202519074139563853078873665224577766657558207064239166380163017096363550515084058107031191448413653181607851006752486379245580366671344848595390338638643174634194766429972912925631510395050385894894725681118820289866618535388069229600020165765405516603575910066922971762290247117535267606385999555683517126072518437806050440510507041713459742654247567113228034597129384212152815436986956606668300689179020651767431926742932028985609632304895627553192141682695549835061802159580328646770469330310811604682004032517879684818054184730212391967034831092784107275378313954898883229497991523095045407378235599306274157965628767129836067126674698800913706659401704180590186679639507262537020318723302342349278330524392404346279711376788153354510375997714049362399467382590835390069581435043763873838060206542193865111830808344213303212697476950469807504667165067408615199541557821317974644579837830427676640664874801056266294042125668940315175216372957827104476106209912009858118419894139109144775854237057890891551702467419847946559940015706324804496495872212954566739341288593166454572207185270689805308110163953103257233757379369301418216280847568722636456252885286145878849880941171266912170926245864062830790345009797306884288492008438696814588918202198382688328264376040431868343422626404747658484969311191684709721466273809662282013903383159814831667389205727244710545549747808874005518589044001550154464131484593833785279594021684386799483923911985745529711822775198712358208194931254105005868344664506980836303178698526058595819010527496121831662440783068163183204145728326288454026576430625637790813649185884423656775695791966990272196383980477365160646548602839436765822394115476653419718976259378598408809912026598903817975899822365230939957174973894120704697652825082594226099562100293227496563713905435796860929578053038097904963614793989426359371455211660532738924766195681473547381602168124315887576285977582955361998026302113991054178997556961279240299945566375178479558856401906527397357913846848207786229707406938009204609341294551167443821356729887124555763698079500687701546589079768320532794500198836816811808380058822646114272963081185935713306001894608423893000359041328049633079873615560377962965201754496499531054534934948979447872896086124713902601643533185253833331045911358250200883509878679336664769238377443874658633619758186079357028602180113857028736898083237295204673529939567049517950374507931411580083539527372070094159192936643663987592533704263281597384660357055656791934223030754762874774222530872445053601694510858313933392548172646364780017370660413006441359830502478450565706458340709456101628043690058480581240582971415154784905154641683111385006509862306760676052583965959581104206425585448924517788941346417479436752825758399449474312362159178355984741857566416302551674396921200226121539933727427009179756403838041705329003896939149361204938634888786148838253503424178973183472930575679817656988748920671328937951328163837702473671471618650067985761941506813130469113366468915207694681884336061270524549348135465841478996598331724977930680440223005737597572574207927147230253670828561722300840133963716405448297578040372109554674834683472588194692294793656749148874946085274625979015136875552293115265783551458247986268967196044256272148983197429933855318957620195129584273726370087419843377538892716208302299366569047796630069186712642171938271337595035490351071613196941560834412084829160122025622330583728708330216357305029317785818284010907726287749349240063873331970809417675802486928708311292006755527720470285874657283299299926922078138514120907768717991758019556963232197061792359151636382537791823865084123288435310684379728742730217707702828679131862363584354130997345926060020016123113323507565036295462717427696334696294472288883479171129345591190352198788887802882662819806151148061770405133087630809586556842644391190768172858032455516281059046741209529017928052504661852000419969923958837726888343428349306620287854124186553847043206097389605402616252690209672981745140935296044016087501932060639570067280188001988678987359339558175123774734205164729264702342489470507144434612081096086402599367422251634888671773529305441124671174778650561495013505105925109125365604887332532471782939473137903405310207005405146647181635813466328373807192671783874923981963605294635497797204595171851619722209574463387920207050439670987333197120541086091993214289307886922871546009097384627143886363816727530866946519596602808355928806656345353668543651641495388596104363597782306344167734694703579424993704636704892904152586586572200396551375433759400146979772532809302115494880322200398454269077987287958634764767711307457100875967479972799131407740835872670360814491455026043011690952242898138951539550001076755006253800073798361200584426973372529895703254563502340027815413974137258491114023109430621426846222545174904325186210349477125835929630026489828187969915019976547407973182560001506534449324644441495450027432670657631157058604072547405714901777580440959047020896403707378519109121130291326676558192303276477581502832083978672767345145794399113230613528624205681602627445854450629562861409178825224185134100766938522896749232514358706534678367493123254717813274247125689930294727778413519770054095768832304308548449219478516499027651376800928327709651905502202504959827551837807269732345876125018590978083766459861117996346589834012155794401273017211255910411111439909821822672812214182332217659932474914192402513431013781767167865725134061855024665075921375382624469108181793744422684902966613427319418031863099621529188329133531904638709474054193598547098648209416801414140760949408557724137128902388964542407081374668562944591785953988515956274311928939171381847154968672042208357055306826127116538490967420267918941492442941309582665851382290380664969128369108896771449119814176281797823874379933291935793969575528417596050990723429422074589337623558971880813491402105571028868325438660864300266582696957836818384451901073728021265256635397919948666191472276938085944794450663029494107307386768360376777383004784179238243974161823305962809769312906011070792015717310666022499280132208606744611903652408309072106855776381510304632314077789211898918529900322791026971748094358287364068440337968430497549895327880076354722651619913071613356674770471276068183029221285026675929117526374944510847362226529542623052603654576276391392146332662696140861940226419575012262429074782963328478433840731225242840911970922539462772227169842411314860107799551454155256179145316157122219498331681617812943811936496602741212469582924551911166307298619986261922886168386528743988811812884973525230433942336859567602069136743839221048052427432509251358871517082553351341226510001998106474308670909635430268232597565829712316104745207212704930492964051608560199581172832148526887254987175740319351822081331726493292773548185692410587910150325237984126751817786470284549193280204390142368002937944770415439335269237767992523328080258662656160645608595733291186402136626888946985690349574078465959415939769015849265250190716829658105767650530238685925799447384009810712067102387007540579954385739664360986585158175242987845003080003058260741038514500485401545188879200724859282287443040821800294252446287277077161472072729661433875038438527740201822507068760634317258701362708004224654160853437379886888568786833393716603771945345888643040569002944673070855305834914540858343756860848740385397245500196174549641280526441182144997323951905317456210226518824956960714498371099900280134575411481303388661476174903785680061522235009667431526978091936026508197745697675613913944355048479173893911113212902195776071178558162015518400614177364156862931903534744287356144059374101767073184512062760467268030722992198803154329094553296623956210344819523100390492216684336699165949860974184133713617641203644598563005524239176047741015846363720516392785731347231179143908519665884490677523529311832763927269213389548723821353489386759645736378466496716198773222787550364286588403509568022966850821973726845469178220307711456274026466268835060300095723731647910620502523402153569640429969926551656041699959735010389841487957954723208935359177057232616334892013443321700636420806539345898569845834986536791674982272977906655257847222462765424931712975318849027402931006271631720722541867658989956123612271011085789504649018357813697742125948610589128359846387703062463546080060475370974490237264830899960108122923042949794365787215244651986774537907658695083432485108661676785429813991701727391571707918003605823124932574006737708031345899898946304701584140526873235829789204188105135861658806093861889411847117313731930553237666175788062556172362630259220795018806440705551261785082676542409934937434611514881468121666360098272983485883375992562043550894151775148668649313390418769957296199568273661207884554728972666813134569432804993001839921790650538697628674191758895589837625411874799831014778692888411079110477482970269789262568888180921773989157051565254212449424648223747094876430945466915748950701428240988929460095390045112827590549128206690244758369887394252840617131870959047359152550537514518075959517652187790656452505337716505440497932364526317707782342904012842597203213037824319015193911501731043223037313191837518166993451609275079997975151495227404618872828703720098208139340302718903760005632293751127391808052537942988593016058878946940456505602492842223590855227925388040389850728819097778780024390518905503081613569760861226256766891350907577226707355802352258889704693151781249051247098257353652425047307816335722105708806900124198223575466337448060315213456761240362864598023678192420385977787431366494734664856316362271858302481971305171090285345667403382432006338243001881349691012900018987480790296069042615230495197320486296814992281031023037343352820448722267147120724420764191754360185523935316199679207166490542247854539488971143702789544517083367779162381103690789389093582379632436792722519346693854405279908946497494635935699530277956932746430399890470314125291766926097812881640533734942416578505123556126560616771752119014805683054861054862528091465847977008472950629794513878564450732252030394517575886144427270149592606284732901449554597490278218845381271000606136123269273144006822283024668913970424759188592475319014710683935836100272693989098036881501649268065977810263177445410334726301532291201496183957866966201151406764680643898506864113716801474351951360907678396020404766320778499412651679511000251567463405217656629762445169503827748526034137704220049245244113187246154765610565240721823676408962396844812319464530395454641376093182398679172526667327529156311892329170081282759480549943592300325488833644643063144189462053872653930467789215729297930317726330316172249899653764465845295661192601342488003059065743864131502959393682217905732115317473647672692203659827988946697617663295234752820496793475499720932392841072893695044970973528185885959974700555435752292936092364411010513401673986344370209448237964608946827806131501959076233136720992960829818179247518540497790551337923207442896066685316692827114813418433835856549251800479864927511351492309190279837476854028561957906911080144127051947737587558738931363224761589681716393967624587222517930061198381592874137172817670617887244486094592611532676466089132502109462758013508660228499555249960336909603258332756225763968166939416998851582649732911462156132441772515834118195337206882913748745586877366416407766677156167975086066599162501464549871614276069749145595896523783150372579946774259716950279231470748785677412307836628437970963861548190304853120808330660257159722477472264923012667128573125480440725017294057838739147798009397223338203211747710789036614082162071748708693869865317694749936506402946959139995548161374164455495387675339730037604372055022333214523193786762623918404293640683617129971598195936756073043303627552321041209442811068683063486381124821431790324543380331279346151108315082975742628423915339423639463986967263481797870156561702621449016271742112786131083292280316892300634463142744568172461613456348724317291323412700038296795549503048743108723554255760502664137489699766760095851688629078055926687468525671739647100827058481530731288413789294460305622676114897158522944147084789555267983810531833566407411812961144185855909343741513198034869233414719636088571626126664079141969980113827438448418550177991581264995265174515724527937706474307941370008479715801707797221081961099136563147253317274014067761731592536515949997086554224846611968419885129712964644988941560662671026915221593190017387923285914329032987351944517035306413039875032886967597888216520179741542200463962752163603085884306667269241194065714214238014705166411336605595341123092257969731387853135762295200929235936028402239950997524486075915073018111896926166927766782015233433497973854478910692993016124680284913861320336459387956770318411690234454763808891365310254254107698794006597800644226400490512578088192973509982121481662522210338534923228202445534956453289749159546825015005299031865254073669337883041596845596465009717577112085019823306163328780418962568455720901783588372661890019520650016639771080776844741566322923361587447159484194814383798691348211223479624918331904123113986213958218971251440021850950303235736773322350787239187330888098204847250016324658349687316427984837814908331957806097143817284417566204067639948694432012506261570635896873317481914360950776146459105121714854505145106577385909422548722575987245218517817659217035640323238571714014702127473069176019513230600167771345213479132103624512218490042480510950526012841412509365554612587223021749878693435259462934386517000408410296765447946606332911941424422065235182968065660086172840257056309199736392315933291494107933220631646417182555503350787414974488218250793415120540104168599469304627730826473526446505419583488108897655123412902090374544001624160817770231552606666641181512392805664780045810561008867619230926854442076317130240002288101560593775582070262679338298816504098433675432320267958713730247497912389818452718959683243136051000698654309918134674731995954693101550292444061479641352809362261520768829811050584666738750054930231742577409738416208023886602845844802266084717778594627452840141398120935629188915481945013661468465281851904451107380512487219982708168938221586187441673900196272107473687535680363937325516952387566427630322991071304972578527905915344312763372720739330206492400278450067016479958945071755150330782244833013056240093885853935114409767894209984432850508626412618080951314999486639894856105495900209539671724301399100079652302649562611289281654822887543275786559007246165703788982325614519425373461990492426051854013116094644997104862597054530774295615350803225038110406401517686911100910234050930687515138864412454669712560862787624757517890317221153247269727401105059988077994234809803252292662234610054955909404209667587958379148256447382149905322211204106546111440934073762970492393361335913203327841020488233908030179793211301693134816226045614684786964948440923166957635495349422923633477246096321287805476579311751292501757736499894232218001366717097673667693288123815130896423371784572695888426943784565753640169555875485900932317231926980031497449144081239502179608986813047604949993006263012798598478143270985396818786919669409855434088081472570104204733352306766746686285523431897608706482581981961492566146756414516653171248359951403287552728489309026299695017729753895686414952728441033022591669910427735387191305014031937432516331782352962287537154941541138147109149028612746253204774541873135242682714496924749712900361797174251247779499050690006611218274881216712923910758480853991277491052376944676960219691943961070993299667393014785129642501087079714200711140287728957301091151000068195681222153507378124703379192663676855767366075679652680425919818356782112034849424952995642795345346476400877274365478291244733972708382407628583255902024081764875951770648978167096321940368531255417057639823350660915938419904098536746545634571551675788137669466428447768132905368177274652979490794729687146876771043901840379070513151959903888486964293306431760048414930819147062505393537094636910655462651992636791592083039042445619006687518299249606468086027319279296837197551394006050181903254103040397592942015898207873972631940419428721755259741638018864225955611655140576721343491905570713379134822800349952238138434777973407399134077844818393264199245029619439533931431594407820963985744700031743848810791181335831299130062097701298654629781589048134612789246084064077501496437976133975749140411745617427961600387300946792800168434255353094953621701253290819879938489237216227915304239686853437595494637014483124210537728541868043080709927185729272981465189858309244218324374831128897016907496425977885913232175627672211761351239760383134015550370218012753589683492884121310619022489800294335425009953518072391313001437153560239085362279040070233614284421960475392620691603823703452442771798438540825186217631912600403680025563839453015827361849858007492110233713713915568552266010435418093668512926328662306523594963410071799278197905918974130772055842597602243498779769604252081858625678312151917230656601690393098146127350734562354141812660944585907817604508486030550194799968893658148531576768684285187732174280594773726363010093140265732724753861740825326225463778267627752072922088844495298932491036578942950072902459176707331048857363026081402716772561503880332336938496732908979000395383293112519616919958023628161523713828867799501579808724499093348616299477903404035918343967920294519433441656532481969410730182902081007788648964420098294316457689145114811697542673086920587169141773832064208576510280266526090900375444785201664659924373581676311758635731124853111176084570187609640499767633987747365236264945527131091423974380416321401999377530205794979061178214108688002559670490508359938960676054796696707494071091725818424901140328081915562164323753044568799540038213970736688552094991494031315773093859600625462726762363055812690419656617712482569263575670802523129178142889618190813461551048841757561588657714274322777917723847260312793727963096703904705339431652179079771801817331095003259441109516062059333978410653670523239289240433947832263658819309451783809794292317874743494475059782885147946811264265311496786024419515693967383803371647611933315908799497951423068668141475384209289269772052984007809579438837917271232268310941645856671585132166182538909153863634564184512277061411430304974962820101154032040414539719454970235279739350452229813700004909514871574209670820552305874933220262805217860851737746372473531995763621915429068883193080306076095047624046027538163646012921581262765584854610772033275280134141219967729402215332636912913061676093442970372722297928201315977911309078677100041490938352585864510864260267314864672980034007815700607884401173451579346973445517250710641816659648524070978980345826246315163151042076144332389441150990848519436420202442362573552661643695070604490195397203306421203683401134865653165989311155763372649294202418312669438637103480135792146050145335353107423661137530691115490238381849041043018999006120349052052459705646398929297120813459719454887241795265310295852818580819553371142664188126614980786149339280878648716128012738054568053435474914533674296418786835462879249790671562529349959402493474465743519276702542019740190541538042581071408011145611936292664718939883258837971908272776867507317124072419906563977689150634094326001602465657443181994693506674322275026354697163266114196625490665038422378178399908170908817866571650320295916052679189405795298131959364283389826047087480257061702820239535580097700616075861583891012003493447282539203062171375435231323095937334678580420039946993862184866672938659247705006102927558023609207561957301527825023848647591977165576244897339788999167125346209222890172279570355440521146011890144365604377009912255656010537903128854174907693502675205398197702162039231737489388778304127281153863186113105625985667040191379538211158030972814799662245653195843569116466391788055859791382612299714661966855572988375386593045295534540092487123428418080249950377477805080480753921070807176814631249201811921850558662299506720081130104709127174850124419791056535541954462343454642032492919284976857932884684783697040657946918437598948157715078321261367142245378130402481429951158890299151538877434585529378990309126635935772578982607160493136831828263797327760162327718754721421858132935065140285393216162220876856513109679749007467375421903745765121722071142117696100870370462794373055040227444550889491138574616102063399766501845383497159534061724111171557493027379491608498212377454553722428160185826467719485569482324490728137317517817330339042366347276614446036174763801292319024922067542016560515973312077586321505320367003237197118295949911073563768958203965607897497787089055067223436791405103215187346075540639538844009254994022952958435372723193221662115956394765075271432906057649415797283563551318089707790780226863878073476881789800007122714544316357606607194479368442718757166126692494745190847408103299970609039811100871117448675165832040750224187110243264072345259412058487411362377932188220331741701410761416191280238441210972805836565357437525194577097357709480788232364613171816597255996711107595957731068973271218492583337634646461454822505626560066512824913581769556933442468177742717469532166145918638088596027148461588867779192026199259978935367357880429553224731152986984236369070200663203479185511195647610299852061003464358615796451413125413259592478309334420471302284396572256056268011838591070664542430202191803398392538824142392050215202634861642898524513990823601554033655008828231133195546840200307796294372783433056548380158132279750727500969622830243694438326383774975993498860001970576505419838841503342504047848035238466239303613227403234082513073271913280662486078513883912387067813658247541661576847348697141778305259129913737066931280848128340271041464992068027039026160349312761426025537753076018803998483959409004557132828641243043222690877013121665712886353246371157996592223351865861915906822438421737987403372170044313458651222633282787362269291851974703694086577996182900589626025662082424110534762807967042468193472096381666252301387355117238211152620906512628121575831493689131477874633134256396043832070473355557470470868842756274100269961576439322653986666208773132595239435881197021249062342710151070856299685912128001018353761095065873329177200331899079457812739235070015679167183272685721616833614860820589255319594438364610896190103849547580596763556527472036646340475615351286323664547508602854591279793944791779961937524704444797651878634285298876773853617483334719314724532783963717810641099003254502910197935127968489826697017692870488122040156390889507764283240487487249495467279850178531379600548088947447935590464704656964446528268354401647812240286436061945238432931749317300191933084902125033885699074685803670606937754724613861062502063669316712709424181738119852580666202651564065984488108445178961811032491034727553446943085526057825746391962262046752936212298462074583613095103572730276005688053931032968558681660915850892539042725452561349139027604307200089087000525172033237784442234190048094926978174273835348829258031895407633240886110836565638396322348289861915705934653291806280851302808961105348922356808992316061738371354225035792554032941136504690332625174630157335208936168638559609309195886487504555043792501758167007936977172264920241879081876846812430092486344278032740368964370307011138817826966184247846436325491244646846256204141081752923009056439194274830593142329675879714240077882166380579347420561996331351466241284195944843391417615072541405194678895171584064198212317940567964431030175258929653547709950971587635066341309473480723089388940427494238101245295341423173729059311138081708447705724629144884077440001398953436554398182391800599712879466221022198453949115857552396649884761887913307108600058794293801264108051247562542221536119094198831574563166951173272656823557903456548983994510004617685306701893282704898502411248956880186841808406011239566067749444050036991565156845441681228515804555265817318600924052250017633524154884094764311023624997554764658219062368249567029908905733397536349313686049643324932634352539340414128362026623578434002213281650682953792420848584557411119482878983673721555615944394499744488600367852875660891014951068899979329706069227259488053915936135165629187828250504424457818525834606133766739100491032714966588226191910780914607750697320669993157378900707251334334843058770088203013037966875799371146276082184372364083386113001389769773166929766688388015630148501905402592917192477124117588144981447713138363367258540321953310875612385693500292496597957133124682543609901711495701313761173059770232211457789534304499204904637440662980083487827320938175330098831441388913628177586183584969419530166744621889678013524315948600922890577992034226353382207596516257992281774037553779559294038333653665151974794103113258712279796390862739251224706032685528999516192652426872600968049945563648139820579401975015702135381079224224916521921824193784864729847594456365147596445510432754492831271221935266763577235272153330287483562891421748472182216996660056359453653044485982374183377128543959048360712625817233041885880482458007644306188363525219235303382695734399711515944133959492856591527728806801281647619707918442160782330689873007859012919585012320491753122665888521173072059953809922573548992440858883350014074138468906030430359513341331075796406166727398689824458142680387633446696443792154087129382259969332678049320187100303878893612074738927423927033982448698085178439121159478280239835067813745228427132369537265902459429937844833219567232248722553819046833132556918999112367698902764771125963669907400213814664330722768893144617197206768330189330679906785231395157548523983345409760018855683538921607176401095862758167727890885443356817894611664505236440125115614555437756086593733339849094722793736083511130074775261518460517724051923144670629227607314764843572079939756177953902738777470786803561481063789307849569289069273797640830388842931203903456192669347954420203722999873399976821546713185839254386212754629942179839727456567320625862852107670639997752726168658076248007214578796007325612049906935027821223703612883614191415778093363982774194399994252261425109179722503294345113576724420763365304430305096397063004902908843333370531149662901050377018069195386490554778631394387741286650511889339101333701701461286244460500622586617775916307523873081408601328524234269119652669816122121780554344316737146688943603617835895178212180018925705069313406285872875216676317736852665792879311126290282842609077422141052361030468385982030324124221225774211024324586115278135977791132427578076292097662398036068707422837618189891135309988413748175319925950934935657554681877112484523351539246726740092732285413791980956357239303632692221293732609424203708662313881557464135030831815850042774660112904449634375431109171377646763283477621066332951825920960882500095885937767904427466438453820470790884395582341774321985133066504215083369775982911130698106406984263189960239337025372249177192651888281349670648408794896240670779611411176615076054670175305706736127584037117214156029084773050073860903823963935321350733397735189882059180863582684323181159009753897075299422384635839957641228952335180570630063466753749552898195901224918706628060956581203859030255645537619108872786882300864061358664030654205756467607126388012853820108542728539940369066009481508270714788940822134820000649036359857382705821561855776028031525720857923166282415706862497541152247194626472682209129963477966338547878486417948454584100461327991114067266476531334209800501675707232975312809267081565379177302571548677642481033791980868519129981041158303740971349241221159402429601235364847202091041939501451417690164085393666668875938703138616319855995128344565007461798766603769754514308376022239585227277754174175012180936148491109132926229608308314613746062025152128984796628416038211094646553735548148942977890640371410654152765405605522494939872133547711794102472361916799262686646989152356923069072928979267824308631691978055108445114251648263572831813238581173967728171294500045545396395629241058516693192378840360769840440922393644881227304390772107754908069419004561294720409890133323409597490960895025368600869148531262147650202727565422577224778471351423563857091905006570680191781480352952097515849030512416573301114526894427407212169965640871192073045005775168195582525043010687288581582270456944853517676513208153942170061499027864391207722972538616822629638709110064846653961018129144327565508122741891360947106834254381072608842697702019748995324889208980653827783467854426680305534809185140817587472622960342086568679596506630569852257014016301084094399410919960720213446423551596932902767290067136349179876556538058909380056227791407051785091189324639413170049071897437838479773814529375591753766547552299874018075400607821358103322723229291694760906666516305685194667820376471500473834518949920911949484214266485606222246443801724312105066275502331270621587799693690265712122556302790247774318497030551842978233181642455173311528218275710735754702057538110231065660783710471576367175521547055102136324018259749836406337068297759413055812657221065099680496328756298552394133465056636090198758106898904862137876793662435705296765648395609137573498817954033855635003963184273936446346905889756280589871714342132140819177557225928437856572120280810984298903692139275593766111937959313306526356818250844020469359158731840621857545053543350729297889146791077005756282304089829152461076741532120310267686199935454713834184722766399895187081872647843756202099417721342460007479520673237280271345630102292788700946025399985301104379873951419005814651990461012747914119757034637638446546559208110110230756174166929893189488428160109302449752115711197573519734481257288529145023964754199651008160077577577149164055470293109962217375971356255731922719785426307919163928894168390855546981804029642536610627456467586124518077845071765617246398299414720019887844496309132438436859296951395347199579636363246359440505524850597785976106591463762964458473815196286975938791827056754798410377632728898637884035261958684537023983703242352383053305813596984805719419643984221517219531469057920968824915632649492141501215888592386081162137523540052593977546632282489649355189169968632463978284629068602356471915270947001857059586554539427246925149603852103433905196254195553393680013358631232534928027692646229530530623410802916559922444901461007311241919880356162734859493562683338948298001134945110431893830360399070363604753284668183649042901014205732073356677828867802782355400514403054584708574697740710667597661421352274708962657418419141678200880246226063522334490861119329266347279039806711881270823401140389947420885870162877726710507817415526878770853089752023616960654537155404311535416484900645125228003886088743577691195010852672227930753526794997467304214531490707648789154097194117725545200750672078395310263920789091816628464441414606049184774667502218418648903833386644481926621562317138816146507408947056722262622036464369070413300266513341747451490308622978659372342417483855492407414018570003970774505288157080592232735499435579489666828038004611924302005655179210120266780038648888430967776639868947349070891051770490815337834450683584832259722673856363971398792854002566141755236034192172236183694547724714838668153200047426130295454296440539234477352240610569029761270894174654553369101249967239910450970711890283945519818331528675401399151174155744388292065908490613196073568496248447078720079611309002989181766200308902308156467599761413891501306406503998352406011936935168240696403937334867458959662616040337894552281057547606545101288267341932371741568460731138733671368323658865763521799434655851397133191023969365524220809681726302574043050011825241899836921786420164771217948509923545270497265303151611378830197474477725242263096517244759923066228777751939608082569335567514518222943407038172271855789607082736176664159891153624143109847848626691869231017015739146553989227915345280781206827302442117977187599273322103908784725130348998627075298714024135469750773109328476918445689158144731685685139261166585735621141300920089644159237827383668538005259647073885744629035773078871488976052842872939572081493981500435403159517091062034196216615138941092018824428088937003520801225983149542135397325813177193161323677612108596621635643743166834402763365927453020049492024669076293427199517218651722743290444485167184938329701089990762277767569042930159815173444793306718018986096256004279058786592477939859276088163894059398294880464776073031001305742027287750709012671912892376298918770228705137519789817181396940048564875414144314198365801205127866792938769526560775777863973586136908579964701368538591080951027152565374201319542600671879724496822294292531361514245012153176943106727273571941144631320431783289318893608376865304490850212694030978522036204861344577019429491448257053596398015267879584790713789692139286888766777060421894852573494736815871186864389388829672739379118160859898391289884433551284410023396488789500630654584823196823917792091306462283253059652957333306841861510556720382399066079353310790578179698607697888636076620161927582326219422058822655387268560110167237577037534193238679634433670108278348058153298578370133147355911716200502682432019289946836477118946813228843929457185999834945803078583903855290252493718906792761080667174376332579823907064349512304338305417352463522904215214506584548355219547663187190717140934421642753107531505044888732359662148193810586611299382059000952747712178270313427693879177641865563802180785041927002359041046296193871363920218869565526825636096943290679096082308701534726894144249722913331196225448898535720443363467321531723281628789714763455266069708756210088467018460502327520750108759146550237968345339390584911869692935269563416657716786493603792145116587267182142095855007621691563209721018292729719330937404491852414485992124544474038154948047616886765201388200377636590327739129852883235816243890465433293314458767126175683884645216108725535029094363012715888650723834658023623954777081904434062251965964452978041717204960249082778165880599105091902408187755592639244887183716577062517106925633534633618972111536690712174909288984973552128275009591872153887076160951047432245679646336767592226562720263180205633757518112180881034021275385357472005018946958565703224831727737883164561269930341535373567208385634033865822831885466805278476731267610601076662311834454855708645895122676219757637271719982033751237418402032376680656243617042650880316176805670196108378214239040710947332134849682488767774221157168717954637800021400118522401295609457469924608794185507587395498831291154357029200106234077534922084933153134404367414297973191333589299735843783006351604166983039503890121914807947455456706457177902772783566729597199705441184210854158714200187155828701532819621790909590736359646391545120667200237270605001627946881380948670084233509217185829580725624926106935518903413650556817762698661735921303190003291351018943547687468788387567964855368179892993864288280180207493593758478092137553851366849149370978546060712628343233230591436459238884685445360151753966345062215205383974563276701919593927526743049060507062062566387955042225615396690054503725716748648353773334331831019173115531308577131473989917873478104682514224177688499793474853790020024500001765291407958494440372114113015910909244197082068512415700097440145255106282333849614120049954209923304509359088688853158844104375462845439626289790332124293831296473208652776506447716276556723919482544713179879559195112732988337909144970998377894058476128190490072758531528955302495746296946759911900545049850694020945396691418400731258551137836362857887526902499781657262721453192067696744773524633063855103306125255716346119026486340135677120444758782875940944396681004768048454615558162000762059058530507175754372040525873075093101656260635233687453407659351305752561993767016199522901491355861372257203230906720900460141199975745407853059470150521331207184461377443019682082213405673637542322877392784676962327684390495740459724955354056218162784668852740158026223656416615703149439969154376850721598438450978990952997200996209627331198541325397440834397914341111602367512541632846843478114224542240683826762909070848772066500076715297322626791518023724567510342005122140065270997238863346375422531222083776022704362142950848414350284271508557231179035971472591247852240238686683306588258311333379392167624682693654044224248600216768348193564153666758517857332884454238654284160651044330777495125431963156337755090439345823697304133394873310570054968740445556313826655247594674836332962165095367267064733514406917935328433374645271879531577159355053362152840573322937049442368660837870090953180466035666413630557044173567807909695796860444844297450386736174088601347738778981874468489779489327774068438702862801424443346299364459722036415650370342315745198122754275365031199802539353083592781978242387698641656001540385873012349047082061283281046470654479959233798771613018371520751145799194049100421798655073658267391992654253669265652654445221322317843906380367087512752040335804781216566766690461258108329505194193048902371712461394356724577659835100391706172687458459863243300224550691558357240879797687961828950467859976408278644676657621301325304153495901504734247423928793418285152286446368293158637766020900597711954002060010887596819505973744984099597198912885807496838424691381379393492313275323145185475747335202975502787823398405963350912958864381241434136816115528809041040121169707132862682094138828015644175498639297351556086237638891513726590212494049103389113620200525392576368035277967855128737140417991967230366998562387957986089429604103266290558425285492015238110175670571418407182008582793942460538250750329343287727388917023353154112338213978958566068133255626011164910342110317894250611749797211350977019799327636413800434579868412270946930146758091533260992486660841426110022801951075894032219845507302958303359246123626477884524901615241938652392463930438730901276171750711678878997275014290889325403665907575891208613188895835575167539765064418954328902981276966191625893969156583144258410191033234427382935395662414808169083379570691168559367921472415577153129592274994241517414889042153974296035230791477770474235959826200300455609243648258413557432926582992656064969912657596557126592249975033217922057497776551728887200361260802146668423799534159139393320762945452461746837192063021667196801058275394472649337208544305288209532246268702577356832169708730561601030938854143722268253623680662526280869695314976015012007056005699027987867666516769283689408455003621410485228499611464962793428590995334372452836570794098372201512066249506103763653141933369201037269829634644102667429471792294171656025915673436731005876652855549730777946366563539524922586968116620303973449443862742601419753123925513014875249789669221974194912197954780043861131162475518855629175649371548214262796720858889756079435672920075161131912510112814445755758621117947620497070736797718677018637359611145454857312159426972521300463610804367001189395056605678234375636688543096466610971453615729202858803283007554221845329996245670985721136019867604119854767894630416166568870318351697044788798188813451097390863194347387986434820940328115016569367672957813515491589875304968252340094330980503401049280531607068456085307515533121819163899109028712954164825192997992739231600700408346195948175712532679609188692031465203974072286217945026461347400677550038810984477968945334770199721974365508637969481110424831073523838191392626524803367215232471055617094412165871593578402474610025026370683051332021092419059959177741461951906520434889597483862332694175266091442065873711340829449697081563441155677437752218142941589700465522325733251465958408034476749255875168943810767576031434982330511578567691832784110864010289969857157774035368752385031612122655599589006427342845297532609108413743488748006532840800240272281133839910428311668633936037454314671667722849911443202193501053695549919160805139478985691759005030563008632545256603564376679940029637698209963334947437158099396776126022753877557338793339750171373390653941265117162974251066023626218192001704009840452384508336633559053699719442376158477668726282561695356649751495335142175545228119624786116000600956507016164854678337929321948378435674839771908599360261500964492948658981764642054335185770135714841061266577924855466065719530331531579447727174009644284664370316406908981271182146588206641142502891185504073093162683061810155721265711741505324756166240988040690303969409009557212361278184237714831073942949205300943544959179863713602611804725078891204769248837452356012857069822429092855022535274671206295230744416484222121424578617363961660799996608273329736280438655656473891023915941195903804356272740062680090833236898350653935845916641811228531245612937950673585455306940932366892207647357144435175825144917292148438253412873415255258553345279853924736293577399891202767455348800867759631868485461534413284126456164571804714039657041698326703466048945585417821360410499557418861784864190874858360102671949298773782595166430162357345636364424670872573213511798721823165960950016642761967420700328750366808075193179874951424362522156585710604861116609021703011065689863484287333265295189743079468842887407216981781542951040572290207340720680904891408690928663166150386895337931892195104958975392741594166326351049798088188916570261041217643946733485013046875123729619051043999723075450902881282571900972901198822445261963497517565143837430359390836803220329291628249386991409915054430272038200893295072378188772055120482303546382065754016591860337095364836598874172943171704681881181912312063677381873243663435897671052679574430047217995632089697226617533469001976188229497200624126294011608293184217041400253109951853664576020694064676256029589984557872824771655583060827281107025423563773919719356969051471056041000695928804092273894077891179881779882503102970398758177082655816757244987325866140495045923237791332938299215378282030509409095231078147870857507681657634407464663526361955567897511321506727026787996652915695747178110475639454827337757917234258726638703070878803914495064174815086463414182160795155767453830703852198753475270617411892370620906731233367719036937675174852127012728084700503839452621214589005552765554178026218561710818069979332849381825575232832971077676820511769214271736451458348252157459316643846062418311735796112341559220202132230725558369295007010784368828414520458129700741696888897022756785073029887285554263560345855864168628762085777186991732694083649966476973261022432691405209195394580847524353920142060035697114704474054767576983779867299189990763018277717020698296750418360809981514250703910341437186330025266271044484530194045330368593791366870260014489200701674407939963862817117990382561523462217568144198314824513036172923015789044645191837285928906726651130593423296553514351723326216530971463114614825007681414239960288209844169101851496748002819736193170540034050998259223794616347210820594248237821860421391299897515680165149781081105168020242419206316527961962313935980005980392692982858970224013551303875941932271584830966675827793093638561197251574882372543312616791746533883163945671219747044034285590947268373943906939448718269481807204516965910354060949863530051654144003199688001716652601674665108348822351186713861677215910742424054653704224819795699860827857637588152443049406128061131144627867818476543433722960499424619674030315097202991071976515034119673603004092302208371242071723340907561678570112157454287774383147375128691527754688377126580440100094070751289301062899988548965254454976959028459060552648169661886357931785777814244925895940406571718842215163513492189188498357804104436587487217699551730414872188237706273640141071226872622979327264250473679513387867265122140002458689850969908958251139883093204385616065611282693313939497630394928881585843303633265625607791201855320468243423690791643665196205327595797214221806186976905988215492708329758571137655757471247081080802704491214249890768680810430171931958880985992313918438344837126459799049739911120771653063622426128606888486377434476846284389155061576560853170811108614785866267843892992721735886885446470209431271799741418071448682762484462312541425665545055353572971389501295044290288568029033159848462419819170560059206905608364448420538049499905081572325586706537322310438919750026231575174982741201243955517385755753245333964060893365178003008836071614662400683848693020122605117890040851084146420749782713770555865025067808807257963473890628356675680564603940842141076406711884137232075924540890916400511728701213712366610617362082212171764454714017790707110503376535462133057065967145283251421144148762194208138146367553095716245327863061284746103873419945092917112570380293876440536525950665245318287853651874049243197761350745632798200076216241396995666044769568696010691501965806117775572499016296471740676884921743862273424611434209818672477235312502403641869213071576176928005246910916039477419790283849017391943093113657226097228635300195023967147934270777438726167001395907398729638671023932398717717149954284627573729085296930230594172678171062535799452185269214783404875806139302914392825571887431035889537309791821260515360816293613136389313674543894465719737104180998781856221877387276819819340438356472971281299546566913757765480812570229051195992759760199814117507940821742737110742599652317051111953361906159491743641809975863238424369875202006454676376682689037488165462775501907455887544051903173244720308683217923135933758058525672095874575338265448393178523986190832779727883929403190871859925114767027862202274000029302141782673132219952604953851156246415170016813209375868539960387610473885260930927097252373217068306976548259753601053660354701937750709951914955113706449144098403302725692632257248446033297194920189195304254272960946710656548762449161992364348332734075639570365867266736747500426623740788285321679818704797164264332657129347301689704240849966283896837493674982320038003208802384602192635479106950222249673969696817365939188900501989186977290009681502047942151561578712931767581987040878045911405293699069998723261487413367618258319491844179298176488031802361682772801590307291518808535900434433906618666846827197209897359794868338676058905350236302785370746105256168204473480948224836551011351662466365768928967821053355023729572243806813139566194910885817037112711037159814519632788077380082584062470912817512746540137406432663432542326295685179743053564183352216031087406189220237629110188647360751694095988206332519773869254023637354661847412195330317581928123476530299788453773721603862956923932030659679081258757014943778054757869502664973401301662147393682878086248937999799876750827591275580362696086278045929621258244281677309877314181706776448037828879020578764928420600592509789824472367752372447936505568371648596396083585987185833250981468356068306186605720185027896644590000195942942801261780510659700476402138847956152453539363830975522099367491237594958497324284725098985166127129622281560184643460886024811306938016159716540211426601025629607444649025946723751941678585022248414564580260665863341435708396540669004943602734698227723432980088583561460479173443535876136681473779972105994302395331122268924454676338272430639512474476364265885729540086254103362963607494548709699642797517235771132624655901940409043353105684451193206896443751326134762149073934210093066592924768225911150875521772821835012558630833129991464269782117293670849752000070348121543674729875579143087104670230259211639594998918006623766643521730917992650664228284783379611349044529450290824831990245998135793591843322663514948273413780611240493365464284267107879799960017381744564865995415356911134511623026350971073894743263157816624763176732089317831354518980417512197313667790858018860501822225206300468182596814937231786888603441829109047517070719008083771247787586882823817873515111538030727922355964965527335446627096115923782823280106403419249500881284000405828049313259917008233064764297372385799097803677438198166719330848726119449000777573637907575062023772349611094705851059736341385480772379497448962503125155838063622173165863495271160079837561134566302008629079493782259825356720841714022250335277661469384394379032080705795244980841238933103721579501619088732127545335261189613075272760452819549616121419803918906774910259476727095554808048779221430984381649809641789462527632949259125517259434166450482363733971476335071214135340228384260844366532270078800455848924145416342071967971540819650861158397444431741408643439207268956521182322052405951681801783232746567270758552458712527293759424866940618688319547089509411096964285001563938200014703413913523626403816887671089882967929467905480627100470230170723467075741800658203853013424185418880027504824555119398794935617455770656265946569945901486057701554934882652552328797376283409003373659088741828160833755300288353294405135778363256850747739229628033393784490058077707218097670764115350470878689003051658943084285474052170229168925678630950694540094406533849570843644918272394841792697675927897554291068675381778966905111806413522235741470629761856431446865753461342140070994749033996786715814821397265181047287174718603424921140851507368968676484703963014435218775721193253190441503710130079019377644408697298848330454850969134493137202596805730959175980044081614257658643260910745522288869861411103132067298449700101617870543555817565008904052389160128055074338185130469149308724381488083351298743423877646900968310130098794128261141064226257624249576339369669709187724566410999410021241868449255877112755867820765855553405277003615260397116873411851600439393664935847275026210454998080202476793941102525759666131851838998177680060715094284884119512859109417689920497874557874676416455701076372590694027319106636870874134516728860330670314667427511781824611438707247686074582989207131335631123959434143369651433223744668468832721072139074156711049873101992338786298983726030402434286201735901750539917847509827865679251515790207309401907187910670802610432609950976573102623849238312350447365113416209232487247533866990123867169376000861524015042929472060614127272910732658132364001686425841245038957829103371041449404414864581862197716695689630512647614191612921000019771771407108293608060394707224815484214004783332269531032400122046760438254421716350639460414496122212416678779845852615454294314509046939145995730986622208025839092971034666440263215120339990036952949425331301288230726954112842352595045032847426139837373512448581024829958040019882906591391631275837751515598282269291764330922430583610772784578954173890816119172609572546591834284607858550226818667489048756720060967640275106430474584831341294803092584921350591391307533547290546916024196182321163316777319495724373770773799615020817414719130217890333436742810327848721697723963164776352529891081682687941949856530600426253470934351633826962915874619722321896906188364333280579486001493368841650489095620230380802192610687042402945804272326999400415262482259388245648500905041871228419522083489582847141029308664335594796847467316711386600504484705850318817558835136431248751005180676458848538261398512961036742442047496247333614035219344512696488751028593154616598752547488905606887314311367384134777436241053848130238496143347052536396432867638394103201086095038147485875408326243771051745482042740059154833598932075096947100642254975974368690429853523706014416089084558951022900771632854087051620160873142991758156212611457845062652175052419436500494545953100666571581352741265238743653759466888585628822173779959158735832923443730592516111923092164791911995386759100256754243332142211820583049560310202786970207894792383806324946626095250007618166342800054930241516245226793787999578155312114126672130183290940279995054519455623897303372658840791622817419883734508074722591138474143980683108039768953538545572116095645996224164707804170864021478464292415945200405594020458435660852519147149176564904495267372766527232901579710874732100038669801845704592536928116690601847139827461861451424548532894627571363910063245966979301078036203993936719363529958005898633951893525924848084881214176646518833136180387188593749047236391992996604814257492001133406667465221053725773108449533314529509715480079300569471252278242527249246287762295565077507775505062307918890538786891066733611922056606138577610493386866798024095398111341496384855504286621516423253305705790772596845241199460725439279231012696051745324100448859493571784813275753286450457016485576814197828250466742508827954865895815130452046585069501776802691378464685294419410017293872427011864145951390967824638470686289278758230917134637746425501122709895963172946129413208912765122739034568522661863440376056331285617665992202619913552219566660224289159948683108729637146287001126062477930951984621255699838325398699117308940212161375479334747765157361799892908327686754705444305272280133941866962816002083248117905329228441316250145817771913280767672713694408426106932803866581769131203076153214883287446241879993243728113993149490760275872145483506941733333889726269893632123181523841765011717676586954734227217686911136529540938887917538865830066450005112112997437613873846549562864863761909831162066422540294271163391075981875593568208847836597822368377402232940995227566351554814070347698611956875082386580773128245352507432875515737408273165730582459123448396011413020261170489951072499730277663658184706404019063924957621944838128795365218187524845274647901845860310680926526036289778739048594968607024995717649260104451914845401289161290442339650064265765873553602244778123406289125500413237681658814290419543510321060965638231284083699595390714819121777183822063511135021602076950812993652153433914983816345998640956043120757897739801443095226939577684073084748022499064192354988339101087521640763158233285370589388806639612545828493490400991938905484984051678741728034433918138123532248266019367517885381758290036605758883873853051972979004948586118509077595496052917972862108786766220170563695240951612738029551401182661848547272174781751766175842093033803935419721409492795448681576949478079780953448309988494449813228611483965705259284596110982436196810545825397157402352244919777672178888088371624698078389805625189580845180764968936691470588427250791592858817806538055901263424519590302474649279794015809991158289929492185523544190830399525747816110964717095085901591356943255170470151280848972558047215214353296782608627206408896029664160976981082556751063719389422128829276029244213959022611257915521123054123199386087619092723350684334195127790161418945657200767987046367769372722074649891016769386577640553320036595831789652974769748980297422377456358331350558018317466184338939836019825479768968551277859686357734600722068440582259473191148583833339444931913233163388807541005700093230605279019980693364105914321883570617765459478845931788535068120314616948882842419856503853188616814029663801354358483488298809750735366797800905762728812183631280473015137829366999745117654286808883725591196168401666105437802945875249431667842209208563944849840792623579234066815991866267884268077972323309730766968135895792991183847818922109681186946147214183866676035673710553193583180665670437112819032489138990534342812951188428076064009894199084901930219488321223345247295175449080860372632375340759736409268854137678623429527437607592194623321738535095593828845344629867614896909191547626073801817902367344429533508486076391171802188730068065748659654344182880798780345803296405451616811188222597274151569548747732486938628909752934962942311784091733743048860372349051675018003229202743722331344053565807928018658594766567161240058751280541205247448561130653580902076511472742580686165057048897297299830522338119891518923246628650889131150121712637488413463433407114433673662282191041193036330839768322332802534837462028143533151443327258868428014638553404398242981923242070699813115673068908123746311088178279329604795837613884501973094693206182132460348011202267735942597697282016172979385673541379647667013603234154984950024655455792247654284266600038660278818904058562605912976079464485521318068724617184256812010648595503458129227801093619849032110694155039960316912702938301446364362754166491448474389163645057563818610237160182695541614543335516907148696222542041974785682085830327572957489452578309839096267859015833012366822658240913828984066425308129186757573394789911706770068169798420096964329435281542016201343909040986350022052125505668740063438281633556379496447123941943600643548833215612859134848449296110129194007779472242332308854582539819555460498181751069473586178941503341176526745435122725954544279533791742992721481873388164687269205385417310586965453144751726249304782330624024736536689611691744755825588820906337341311781768313729386930469534023385760299929129254377855229790438714795545064817249357777035624715248885661025220644680537579469550486897062279897827483324570079099150488711723379532371348500352814163752857037513533700530526800595380164071273165125859465319848216211987286275977540287072616942574558690453633197164005066879448774033290280487917017626289008191735144846557332799977124901746877623289531568868224566366771263868639843839728341487509307627030044697841202908707010761255537634303771234211752035303883088150889966775413772199897319978444741000195398763656680810024296974400867457460942696099261796615762972764937596363754404842875572906260899764084997802616289264420075723960406414922651705252812345402558757180741125751260164792173945533405393694639649037874288786757972952409483208127477914925861026799780467733111797684813626182617382238931337149451683482631478933208775942326232053938258539037514525982613263764580710523867083843775064625519713999722351519014911028290187881242628983476834496302258222220467937799623927870649048279032306380766150030481640612742524995299893904341832342045901402662494771136047011919700893002572657341918231429418254219269324822065943451377854272479619727754492843475092141989652936045162832362100751854700301478119682133585663166979732827274847480896812550372767820206723147200698446091075828344962944651755329910237476219762690097458366738750107826285311923899702296689838567486910490037602172132940297766686039072632889441367705619348444369935774234136304432251083646605130286140869000135911237354545908457117667447198616305838913793603612968930579687596368375916077098989748955154869611728854609205486178755862756200857544774047383366579416989171587813287319040747079881791958629281078599971166705205173406593125901193686203660478498677976802116294499089724854753879802453711622840255371961487841347289628887400428671953763671746250529925025951577156658752967058595535835036137858845257854686789125732197622359021448493049996777801800146898323180968064818279999948992614269605908894485139468216257356655896048820353966141503867394937990258819024324884388982901607988135207179162569377023800626029604472504054106429981619788322644567753479137892846581845772450014123630432338337257345806080945686067944179931483610884190952126664601354042704927730421472034416175035354870364437754900073478633707451181660540466765249878026782771483252388116183958855127558369719983527050473141692525290692057767268995752770632829803705329536713959184011787818224036325635315664576921127990122536018945230433347231338204373950872022933143072733914977629468438694548485883564617601686831715688612858960298339910278885403467257950987458314541116454050327506208444277655223970103564097468921421567324174079456092159720682588187950103419167672567069581829927380684799579047660196755773403802864631307655695473538486286426711965564742656770841019701289407861503878657833090896401113940195571982210312136919787124827304260510217153404017094399428331799390905329004173678869706385908680152355494421438016476725481069666530503354578100223797055481590503865258461509183463835800099375857864156404486134880015279836098508624891281379073625731614240890043209043802054035853571312066906906012035796648046647342349386135689699089838037395945810522780977593511168122747745236842751185883095603653656598799427818091253316941612530086822070307664976700855056603900977523452097479249259144403821076289773431991215177896438050910546167811986314589664508509669108628903265097873249144368196235758125259368564319140174106500683971380910342578677211701339491981307295774719835482819944494806386950208891963001185375908423282338043921252239717340639776234269392459002457567622638092437284787057560498046340973392577802449263917767859999874439795262755685063393604732684308995535938582477829651327191535646389732692649458646544386344119412211682382708131061128697902760506099045067133236327439702394167447171262529418612460973963377727512538503066981844592701564402900207533918614453638061166588436425851690061245236145036038039461964923875354333345623810093025390219554733099191223156235938986025372923910306289818774089386537049166351487740780369671520382965465625925079938019625655385339212252080315329835810058109413662314687244087340978981255144878119563086446599844167404435239255004045048712136110150374192591835870394029826654563672455493686343815623739504967512016748597840006027835484774935228167548202109385965876541810183837497103744440313291668516861738246063863059750253112928573801035032897527478713744885912551671632308025198605038244889243612449509898095518303540955097647196675291386400604206254017475843029574328032897757767376817667375044153150452507316462571705026218813500754671821397203812545471804090051118996440035802153710266455553414244325474440297681702989448236448547982293602394381547003624115207815063251273476851425215865737836084585540408644706121268623861801200440079903117822410297396174053710988254077794280664921700709377739304479103304141551194450261815457254332013717717378633430740025287795643017247652107094660340588597458059802927640812877379713113181070032074203780994665445461654243132233287687676835942318005282978053909414912648394141294865602162227208373585506459483455069331411491582402431216557026925918932345810732540031906141103522357382958135301495373812788741605353700856361078158197513114915559251471819277192833924938765985940961862062135374439803052043293919807691640330647306138295412303535727833610746217243807028245347301263095321207794144904488087948295361135074924606280763330198983625535427121684441245476592788459346441708096510632630460193683596472676972804115111401035595405932932215321022491525152925856457921489953654588574899182307161639066211694053357140291003601794401423380338952012655752644919941956613978605717658493190861430393016301963755799611569798646601564691402961000831134236892558685486871118784641977099569304439528797472137017092977478315659258487044084879424482180783785734911438660882154743755827003624724654361264610384338481430991705677710226652504476702690984237852208572223747507572625384895355857869697862473516072961860711000250833110154039976381497638802052798745762805527725957937494650472376591878460276406739860976190753370271802408925595997639009241887404148932431702837366299091929937378855505217251452873155436998966298700398292091703085048177967966680726193274820727450050905509488338644298021596925358842010856152049864460036731563884905640103248356304290661143577451354189927993435858608651522712419328883919244925536979813820592008818664592508634919522830081094246110211071927624889148348778833102690774543618166960061536186190362460734801216783563203020703200805189835569723773283065186755016797115460639502423861780199933178383257845861456055448545877367848644101879667323388548406850821555682874831854780339586607579139725611706316641173682641549701267444247604021773209676821264814505681381696429083426761928425719786168520831836985747662050772569899647184657612547317480965732682893989758228926989838436781859161277328962988563192093861817908290046124265351546452357091705074840015042128375605649425410382157090764830257636939802352213461360987818459826483318265563820153900706006037658922526470647331672113010837044848262581985926711204768145685870953864284289879373866755983941584305453320812490041943996374781765775440903580251284503423176347459993332776128301227674858750241001482235119389925390614433933076753459190851541785897546975993417429288842430484067216379425533087771955281552773548299997678183736017719748293674247179102941326304820631611700464071791585096688335073854812585942868407228615731049981446212925120966226025085969249298762185493400008014615308818129610450930161205606120935984134800411846972628360471426200864068894611455520790668264809266947231518476382620898616549212483143274245490670565500464055580027603891960763474797081727912028650102979125808025249584434899942678795457636504549818318213781281202398285256457701010339376553336864319312969370275491918791857980765830079508278590185178931410483984709445150344099393880080421025736007660793580680987803912615668971477221709934754806167467316117586980611667545637929636506790636552966690187646306360877755992036353721252293866252419068639045080430395087165224080248301257058227880261806454722267997998695285535743075725089843562686314109662159102870212453187243515836622604849443214389596520084805945300115094233017431781866609485738202413172205964819666897902064312502581326621575255248269403924964829853703531895405135834775728416804039626466276671721671622267389917639522952748432602821250699289687618821465340862002129323778130683800335036929326546924432377831680255989198314998258499533534258566327717107405147397495784166956939890836994961986919844838489453814605744043132050069048495002917830856840976145346968842781252405311606736409154208922785454598754689784722747370720319154924311944651038605343422017635414255861528430803694067169391790661592182486646005974103662454332522338127442511269893825416869581168565663659909417009626433582916183824211377187176897486703486153657011004473527383699606569049016172790608178189117255310144029313425743881282841619474144221124986807912448227075900983153891014985692688162562419916454040092885708760203059286193374958943587074141159436542448899903084206145042718009009158142467814932284284593539817671383626348244839152240283952619659750766444906972544555341471560338729358396843041749561431808089692212766424428584865670549057120329867952047304203524664027974733147291589539875823257411017791864947352933703057449643181828722769106745003421969063721306443752257191545929723866216173173619645423443747941909372512478199266941444433479278231521126195508268664144470970156779939479130567779684243842430088587270386102814148219892910927848417874383012000050963776858268275668039928054208293708637856280258802671928113086501796725621338490974452492278773640988629613525356191895501587231935698972142623721159585697672006579258736825651352885497386907993755533230054270676687332435048020038071402075188022500377638061538592062678317010888799684591253487507373255749764031591989694533774734067212672215683706938923780933505459096222885247993367402365622119086227772017566235979382748406206818595554358303126394960605218795305273290299056901797761744767453942468514107919823644498134252579205894554641566247037315946989981437382706586385290421905396929123355542429510729219429484873991433831176672547261656492141033377575545815903063655827355781682170638858538768482490371672715386936688213320824106471188150717036616159149796459767609879587708705327764814807218130217049249203310786156976258223032033123532454460604331668302200433462017426782653122835535274743150225831026166062493668428338060124692405130844361507829171153611172603461314269947902696656362272985960797495853606630961775867619291706254032029792416970032033937357537446629029141254158770431612975149630647475642430700788956152864566290046905488251395652365264161591277979227069271195075609272300900583875223283163239310813109537362329332099008555007145210484494034806498012860950488108532503095613278810239710647365723211113342587452994714450479699843852051631536736996440653013426343574207160762243092618809854862083185256338367913872206550469992686898330540281809685196190344566498745809546959049418368529784072060312881966886995634157271060877655626702671009522815504528334349570435436584898898660865012285510239703814515292334991274512270405595986793133276186434126089098163630153625901887829903266551087363926171161343958245829083435177341757284967269810279449913507328606816170223126294492789411134567885352666642092408659504140957571516768259865056463168158073274048770691585908874936988319472095520678977698753530410215053251929532345199759553249033872856058432976948861842149141892301067282334364058783883555900964035441134397251253582479985307640589739488390243059934955237571645911184560736093054679802270765209606908575717377658582063129473360710527488297256896687680824343788286179535039344357038851627274386338823327855032406923339621356060668570047728753542675491907847838930601455470022095168073510187678311434351540772403368242121830499161582596995088143278060368815084087263639217215356635272768099970916241758027529711364813134985682946176731984656880615341651948248552639463504824180830952407457390189760445879402065509372599818359370538732596284812309573216230394197088302902300877785251309975880508472283737390698090573132495616007408132464375685543493397999433285206500315092387028422485163125055858645849372459545996311696739611739552843531321072834637774227810974778002709944012956486321502581401505516172623067106421075092316153610576366557053818332303424958905445284346528693073492674444080939474188918755032357227804924056476458125872411875812200545623997630461725609257856733794288654140701520510290946791757546812518518676907504339279850725660504048346099237505247227328175064886001154056477355227277044905954060472493775854731986718557226517376566538355257419034933799817094843519709497565723670018647619613227117271786190566517349770974032823548176146549683191766771792695671716526750537368056068443240381273902076893417083082099726084256574464263739630909183843242861590329049742969426488604108893470511871924397281110511115496356368879201926698043359587297003678704198493759943235972102522664923745393041173993460763607098557531330471252443404905545433997964380427698621086845779324135664456275721548582352863500049235632617321163122256897434109385934057965874007922861550347814112155919600840769291592949492075244554343568042691420154448518745518012385013574443199993628978096187751533157369137198512116849559074446415832341621873143064673065535511161949250236743449107697706797479026764055507590764414072528616796440456850224035917571443949113248567499972466322417022446000457916257695888905627760206307033466198832187738930836067188352936254952149340532317485153403439983089673431831149038915244422850604142529299069564575597974824552960768129893711706605678612952839587338459786786746265935138296742017955911257580951541207536576222064043924733354652594260854554222126382665280223085786229084056330554050089947731945591365371478773233801778538554092208008015254960001877935874722642119876071602823281610116934912101082675606978835829174857203427388004886426826581505774713318774264080271771672945628813893112466497940771326369602136974812229748061722714902222202454575817141937447301888864597209445538780921713686226726228919876125940190350811993461863120679837295127590850175205190395179662563894779877555612111807124203238924626916218151269555732278379347048055020944059696155852808773777747185993308512095281877687078503064162807269896776880628179751143435849716862539274456513258068776996823987896672788335292412237301898654569439160303426391511787932022818203118211101352006391733767332427141126274590949244985615266490399413817293103997690864644007044631531019582245693285953721531977836289442241534969858514018859311235884364728313929362750357370092091753057878106385680221648368071927238190197113749345041744323040435383863255042901894046383223851774514097517642503289104576099717177103190158727195382194363110590177811205041073247163225094208158322953909993599370463195649226025180522497142569515350318449644160787197926125640912440125266343696075525348901392611762407691916151663207378026247561161764615877275608696111829333191114902334547178432072080943122350590550964527791063824706138631667926664699828820030962286809171863861395814302397046085752774877797090889712087786777338050517578817292531733808935880912832160642171342505391359423999126899971441304414117152957419399462319519423750870074863883544206956913826647544197618165946670615868611621319111045947651145088551360191219583813784919912834266815101281581844756894461626441130506648385892529512927871565303152879827805914896406439004481685850723845980207978267431292159071060823796256757780101148066746385537394065816983854067803747836468265466935295892308564784851481991516752189079382309339934217438259132544463976512813143259703773870696079366682571519688827316589751296016231853857881495426937822015007502191982430720896717122758700175426753109505418830949422585803107858887343403290531313107742399467729764954713456519451191108677765047411963739641715488712166182458333065965525899809855211074806063351888762467601558495632188016839823405368041596353184820133201477813972782533369578525548234931888952245521776664110699527257213976492675507583069192847319306366206305065709630350983114414404815846919456683477860235968200210234622080436748275461292386057950674268763460030500880578705232694133819537420618954992115783274428928090529636257885733396221802402410629120924943896861074874883273563583516425843530592872264990283003712041974391875721495614722099745576907825386288121803882432667180559262334554457884788134429062286732652659876467879787892432207700808745402449529149870648881471507557836511837181664377902346246989631362342066873029366766378009167095758485970336065056283082998489703258099782961707867526090785618665133591662948113876457823222330184058749063925154418010997908612118739393946802743888039154707156094002598451898989332228609714175867169833630671183487141995302467083041045850407346069770335649097302649118703770116465994553159058743149764518348469776693108278732189139192001952654449007402414556299740271920268871006139597884008701116778742854138532020861605073513190464681576359307177713288827925466335441570563018856619404833176102445194560549930819588200817973902095392233893179684948286535893800719696748299903188437197907903284923921903326461073834769926950211598040492264408777943382711781758351791999502090717556820613203594462074397736712576776745747636994845878335940963515622658712020031423014398933762672745073813533311067977098117525732489816001029567093463244203960188002224285377721907874512766207098325070295612517054592688245393666114371584314428147075941152417934217764692678597592157989837837382692816265141689927962160995214820934530839016569635106201953245938592960055123819665718825166118342744021813527319960140340121819764680525465516275612044455325881039053549782330264897413109801324656698218868552389975791850662695841905716509579947295832315148994699554187830045697211330241240190502669948067994312389281580419476905293143688644077523937195322200792281719653589062111010027525586016868841026893344149323820293765026722241731937066910667629334003831606466743489649195760122157861808802038152164877348609884536982933603740288145890778919172954115898379304805681041273563564082167318704695524451969533415396776598176095668856552326026219931851879165710779932635102664901360023441472537696609520714774880873382916143148945275654300012843420879557745247452890858152291925459797586689732822510163445657280025910518689613868747850536613609799246290038645812929840485465997133519186912376849189500086576997047493976681712229419358419844708942205880251313569593765731716518738641363759426005864309935714425808030077819971270035052629166709438773224782749087230161020281340159812604574029406634599475136315335628020134813664539610352831993419897183827243303132930069341599492993152622409279863591773995961090077717095803625258958859775228100300448146266602209090053905779960190212747570158309594221591644957203470383553922209473036258191304761392424429135789922873276781301610851801985422318038512893822953911673210527602773771150950735669212287367070606422081210000684780839153405046946058636304808397367820508027927838706562200590041321178183486207868194786736205073518778569163310972240636688813974351334749371924087347593788513032566892793882786738634194897977507273085700558457597922267723470156228844989894111143824723956329572702609469854561067079880748753529678817316188806677563082551483743681584282677359575587099007688971418218779429677654554410423630030349605082512637911055598423164449629593840300786506567816095187408652710935264119085554220558926739816832775112813469712482046728966292215483571791415406042165966839942933809458267870820941822699143296484178872789123168106502963706903191578461253121083310308989712083132397867877778868505922149688984003985885602019771915499208407604440091699672909390495800849872576211102591909320702900886839058837522574537351385519046200967038221969335817300980551014834085844328421323581424534907144499710046667045036409531804666348724567482167075219357063033324521977463226239444159076852808929023426086792938899772204851841939989536390105725836489347112755125968566557443378588157416867582389299204553843065917431496499832520796348710537144932429775101408532861933482104225378985695492339606547485652537169864744494230179221854475001935457401299627061984737425076656003199670454419137512505878181350164108235463800746081573391135787791409216622990181626964914588114201336689175564099430669244568557822312400359756193514554503586866388783510904077709091049651895042370237226950934557176356833777904061725700296577880298656083014672415808220640252084344671700867760651694531184375320746678444045951558065738197740574758286401766078963766983511016096141894976783982142581112719293440350480161328136708392846678866042355656250403323641781600590540836193714981341200736245610155972497048533145602464504767392970154159974455171099468081109671879929885153990230968687639220605111651909777948854572556606701194817313530853864815946528905773620535590080674956949540738536588677101610781566900422445869695114127296245584359155165818233229169157433142150454067622504216198888727524356660040481346287890570953038996761958584315556676353914953215582214941135147240430961326228422766404384450537981122226775081907377546273522026421499152237450460030776797345291395638508705059278861442080554423960702100810945391022054267370078538541319375136356991681213321104088755955496182359414390230692157618588716817023860706378432975645256896382953637254921824222402891276834783111616998755621858911831044132392180338745197965456815546722083750444252880610979940317416841584459549313199350762373272576915681580698052798035404971062716488750817553145733972536360318901286675761205318656858462117309272134802697588059197202245714510618837964169189005247127932474496912774172056581447448178699657146594552612456500369521154532377122836289297163713924673435565742618098572347494485488914460413781589923202277879903591803840950597012359642344647416603153160164839539537731515929202271933793878036569625004798352590686946077852272613466435035645454146915099167565756000734540898746466374059171843972844662569972141565074572426831382371229700280289319599057513059527006882234206428416164058847779091777423423532350182961506489526602170439476270722966251720343852763014723513961525990895928274649433704169735789299550804762459734920821669685760206542734200132096571729235997037944411761340585755727370275444727544469278809463417484312701915984973596001508466546625440687628583791439947288736261549443985008233522196301659552391697575807830198682873199768936970414564996027312256425637503625774631345354070563415532450760084581959407185489408224654759213012157589486914381326170473644029677553094754240291615559885669992118627648404918450570399046919861114768222569572270833774275943758721991585038484036479812785096027671285398003637237093571100640528800822802032528941979903557535215891201986317896478155027159571322448613252605034383987048446854829165456839256540946104324082930851733912847059501657780225668893009928889362035614587836476364125698382005211916155675483540462923992893466170597422383840530516278191816207689339364847734646568410296738065982740434172650379544762193186378337450526944543073820312204529305258938907990500399871312571954768799882594560431513791992780043845758068823421833267328164524068584401729793800780441043389423666698348748282715234582888038762029298768075022616638764148529890633721038543038029393805603844892065608651043860223900700171343565775448136625228414404376101136850256524721915122958283426579882812053864690059561814033814086526707703461192847850689315267663944839567044721880188752329442989173363603968290004337251951929818698224366958069126842139453499939359690117495287223863546939901229687466559565252310204057796035120800499992849184368742987378518777417335469195672804137531613473634814173513251669694666396230094613342390952509445249284989883049163769712843848996057641338056991350219963293981545700381397548762882631485599377892788493051052806867899539920375743955629344577176143543215584611495212040550169579440317328710396995427396633236640252338002151877571605555705111473295564699479558699882850660983456746125876259998906921534117918866417076395972243303018006633217003662567108777090439785563678852865387024046448373111943362368204505801082896351481966598762314831119288810867210130717538546721743197825089195482993654471906972260161278115356346684668416623283574348250388162541588656631962554100415223205460437752193126834083403204233482763002050712473373706254913181388550593541625204235902991921204091510093961534357298888292022672798144456703852712706402168679317935978952757100976089231274261594624669053983971479934054483583843136252057243580808848728150312633212745308047156882101365766200653722449185748317687159803813750267425282468884273051848372701993231015656395397867746306652498808341839508602184087022710551785698257315440690421294159418975415612018064125657026794795515921376202987925494811269645101305234091993317781869201913378380059054738528746824802449398436778822488502816598993148998573518343894404962566059979799967445415466337771295215310280222977967921435708859180271865879440507835279211519014443650888303890680413576868860923678645159170909991549142747676788905833454000851218466193460708476908989657917699205054188150210713047998117292011461103361985473755114667408390039038212000615619667906187842108565940816044058977600045092346374909261756806817960261441800809991801271568095542612602576035602721102602462728180942191065241894041152201897017964255297617956873083954393874958191286632516773917352333946509153044468904144451050565043065598406789803238251225124253832576043217258321540078613296357600068584584649963946512451493393182230432223568340737855300462261870313244332380941454200790691317631015594931754042772773045113736043150528992786604787664537963017503674123912371421255435050868833719424035702829714850587554526840252100371148171673156733028202523438934258734003672347751917083270106588922640187514215957555021272021858070269619663474079638921272274572339607203742884292232516077858758217886353958747553416896349294794536051915837478656762715858286147693969291363032917619614025901804672526189315075455189404032195253922762344736850809012259523529302199375274788880958610316025067368249598569329669656130619329039005283979938572846570661105026553450938493848843515499781576875667766736783846184073505939455841231910706131223438924969871993643426384657307257127468703529095114382081136181085423355132206306246175979677849097781153886480763985784098204850987398679627225868052607523082692625048468760148319050092036980522546100874517666961097536917353567050236452968715354022712540490942265720383767433463125294954426708688758175344185359300228043494169419635636060864356129829685208009014361954555434368927209870271047433643322746021589575817146912628429117122928537740835032295159749125246085409880254056625207418964270693686561956949470583487039647952715470962451766755725655887058913319242728047970075259579454991470495489621070951151855005489012959710756375283787385470738984186599743037931280978216840687748664907926110446338310426063553262427569273029183453483825819750633828801867423212056136066379923151390724032012787974313635904603729237650358396303760344174643975661102984862097863794320253336791122650041059053742327382580020183654375977303135813077010829439032045157912443341875110459776680910160421027596135228206699620672438456899538555610732001420744982190585787280501744636786201840106457345733818352619202607912935924737805252688654011210223078986467676068185725966297301900537864055818559717203741670718496102147203403553285376289570870015938288642861390524529681535893777955656964163054199721520592025820980673344182290206321930414263928922150730205814692904277342540444836590943750893477043091245937239164304088328052083232491491374343512887500986117772630098177593180576424543555791967925437876922996468060195982410543536833618784334170289810752387086695751877930150652105582629801904268648977155653625506835777727291484034014205103706423058756423831194064103384149155524249176665723494818443866865595391656978867073412882393022928496355924444690389839219471162045987111115970857632577812562047042457721683579431892010101023230112211194344620091139144702604631408870612247797064348175976411350761239268115278248630895375254850998947368297114351247044789055332976261588354738321053886422286348366598384710649374924704278918593211047016104878549723789033653986922646988926860376955525199555543747152171098375255640898770851565369478440279491674117992186831706683408822635065567637671135784761409708623379056100289467228564434480132478298302814373637019184851749224789013267655096294421602964957936296738238844444344527777070167479544889092975572586807065928391314503798099434053143836768589609527314444206840684757544383021088190744278659400493863968545880967726746055874454318333194936504346851337009756240779244364241723471810182119864554616413483989301547489937942384445815719488328087840570531337602542531489098507882588499586007094248867899537636522182148367509820916794938591270274973555260992926046131570026558778758844860418799977577515288109932227992381781279095554246714658601269211449934276434767016613432694833836165019831726603634543938740056803563574468859544845805605985519399025009610662397262029553571820501558675328207296874374027144654276901801252434072360064495236144614330252463603069245551381671642766588048258557580147457690143914801374249343498770657102257271671317369282583878677647101909401654626810418293190818753684283835037117068146308800365684147968825768086038022340151543166903236299254950730861764949227315804649481442170754480778290647211983044977122305281944025241927479702479262373635825006459957102153399379320784426904304899531203031555592140384102315649070233833324423256158246031185161443886324836643365781012411599251143268204408639628166284615776514649989597146505927995005623647668839962524545114517538687437065770818741246832814777224795031816846104489580022577579144248869978623789942575413569132134646002852006528964742429701031173526468851192602011698748196461296365455822754123119835384212627075723170206330776861665597262299621813609858013756293192437260169204450929796616702481558861592665397871597162910810870593410815868518222160650365831706731550414358079000515729036593664409595894140195848370235936581795321386580044175216650663957079093924179582918397882963685787148448372478817808739366211774745438762094916623283208679297779225619485839609411042981532033579721103181218368114641456059702824087157643064534421515556319554005107280466672331370222917743832762734930993446075067248434394532549370670919875298081739786947755789651891202866905331183589055337288512959202935618584547455096071284173385706546107729929169140833010363505057210745925177797469657121246858352220368848337614772202691651337259632135355898173101465637495084759864613600837094145643260317248419881556762981236746539181310376201296530908751891575738953649309038592229684779144356613492434096014040189582925119964915466082758996607044215038151305646054850916317634848844262128779105001474857021450788180002136539392296716351140845881510075947892591267635488599404222377182503723967634621228746324855147341094226670279751671174950807277648167765439792822282412306066158419182115770653164937491927937220664891547945465060486495913465296814166713378176788861895383632185570441396980236034768073054700301728957629666573382880188841823357141942971385922594964437073137260893181484556152432367485226510416688833439858571008950509822223005908662862813251700050129471544109093766769935153337658079017345904893277941435393801606033927642980657620513476156003815935518944040273427884707462357627741119033703724405948492799310740696120013827722276590778012355271306445373482069199631035704948669593819588470563092964720816252498715485748943140431856632075543173917032692864483934166166000869757634985784954418734954563416299506413275483259223699525644943149531091620959125620894989743372685079799499315856121330642476652263800751606963104368628913720107026968871952207833268445252803425513708835281437846973341975292394746794327601869832045916388855791986158608361374605122607217025704246146520919917407958049420790593794453032758481144183574274341490265732035671298757247616604854017169262183091981723291224983310725202068525447709130828407513694447963180030744886385354588149223602270417341201826148558199245041703286722515443742881057623022639269424023254792546313593442886319228510323009826102567580480863272875377201747623176363637353563084753087286550352961992389940212379174261760191474465004716884242542118777968666396429206732762988654523943954011863730308153006401076889879044162880578005612029374247993777511259401171392694163733847846925934747372708752452098369763371144944236089147648696330825821530603260229645336234663278823597008901694506464476148502754344457597987577496810400269282558031597496839336245073336368812728743586443393986397748242005855718119325733084324076795173989827657949156465404649942579551327163066757549440518321726157972224292821714833008410977889105105780960540815007848419231208170825976035060974989491599571961496744117292657598830040025780672998747308665271382996050291764065383313176840864131010025800587549085228176336635716864083695810699606103394063872927723805566987166335982512126692866332120031421848926699007364475814766831195769727121247581958050649790242765757309809346638595067694870857071193331143501031324854838695055606996653352643167304063340542610640095553821912452792317751369129578683619002526989596748005943598016876303915111234506558447743352962575987101616750179480947523677292976985893693180290553990540620966554676945789286194894641963380689761293186188094941740247008539236431908424261879412477831038883455757689862076951131183366886590683880540476380315959536214008843412776514833320264080510620147840021882325468758114475874983501905687963810723924311478933312105964112470896649237865399504993325213757305281250596179386322408439832837807742690019659803262750796949938872533949383159961321211893141711084772162895917720862140530790200728083974703448283474868150904033889223770004880641125019337352358606801704632748927393289867861783066753755464369162400115484406963678411268986119995649949003389787407329704166894136853726178544633827204813113696110174923733791567795552878287577077947957480904427668802951554005730485052083799760534868202851755384315263914582380741365328673413879908021202057179687540099144651223773263512431981102868929501168860811094116740677957226003839697197302467638786007793057352490065551121093435276871715602960027723899197420748073766287906595313886878355162631710010472141308823472368786918899536233324139546814990549514523885697330398223269232867092254808136585599068865681824547360280571232683068108347404678331320186507870836110454779332952861216539339248480961682776821992397718110761286243435569488091267430644396698400498230542287766541261325068369409304657706871544733821663196700544378096050314696100510019381166944381225503503088915190536598143819372985199156878055309285312100059002900698828480832939782509082647573711314399032357580375318184204186236982348224745418031635723165768642911198440162197018777284079104643495445051346555643797986514561879767411161065601099900740540715369493052290668724744687654266768874809457640762543733943579853667007364329741883928676991436894413796952482299619766052270943739284731314439349386335979379772714485908921441323029339453352593983692816970714262840941848579666448287442650012957511142200002203482478268060648645469780263641586787220708478024106444143655934537814727643035434677005289361472071302559819565721762934280524821409600122278571203285054057250872260888328550003811160211063435654111893222841409469460844276399812421383234945342221820839704955030818685833595283677650168330688081348721740064564589344454596835645961759562885179999314634145167004108970275751497188570067027509336918953035415927406588142065192788457972282609105255722695956350476514380615508218451822175555206144308567663952689043066434386647723192977008876393079357791955817465426400828392168431626700508882734949735507386021190932830484116147997668260143895777084755848280261977575839417749118092507257623482020366504840043121696606155335071351343422250109519437082263040600776554264852561971841957891649762912779017906250068600262973091227578651899656863501351322263512410863490568553120499793688108251842821140941695999223580268490490410586378600534257224678278301413838659184273590672368798119347729302852762945988788170285750755766303213335761766040670837717668679555820996672447650819186054959812184747489781863987681271350979471370027288369600684957514362002399386202631920028860669955115856515627982490122300342993736441758031373600897726271303163601651029729119147220661149426858888460081726458940274466428321229689726395469950745072210015066882435136070399956130799739399695681350541592445350481234346218622349186344793939891870062945119323975618282277474924443775745954301071694489722080475644257654030159331090394040631113576686546378997101903281474326662126816355344571113165648256429716901117996934990182886663974239657471971372724442558035772244952746818409756278027798747132593870891841389316925606999768757455243658311767478587342855381882603707523952290266484793046623915617662100805436736183104587739369193010121239324617749588890906331777287938781147755673671964362138673739347313775719436344261185564393740043818276096421521241464220471014856520423831934094352623012672477403156893452093934449279644896419670878280681157632169410541906800037398218819386664284320624383311624420722263700434179957993782334204052011539571344406451207328145007481372155718979279884053173773738801689992144310956176943169317859560332996269421707287387202811213041769438179174076955058746921561674821410234924161749952093463784088648859171917648923200855115907162471248590309830895541597989173328432536598804081359651488359592413165585978483253022470945958892718229470250998768823206782049315569515536795637928740817115423638033624011516815560799798419325639790788988970957731571172591509611964807305251788805488008191204561444049937237581487176235574173713596090385691527009064892800415357494911286958923321773658871205945566610512404815890855699446551120642040489422902295710674846152191020747479464116398703669159775776475991668795947698661252419659808481387340159619867780602108036483032931549942807712125704861817161457430531491346726334803037528853550775259333316370656467529233597208653124650364440601772608468881540930920425119577339559417132942517077800774411391516502605050656708971872980590841492723835908870461173591996866726924683054977380450234607498720655620253096701863439319154042062753569523185448942775267170488750625998340936347687291961566708526197669993315650992290867576534939771819985789554607307993579566163942980276195180883201127622420376403263248240674052360975670695207342246490480145428657162704072096092143515008561861754093479366906567830394079002780886160747775728612212850206319285340288579523615915781914871690040295490444551124136258062780301938507882302031984079648325369387867498501292991047902030916090977435003030030373728769891923201333393405172091734557654099636260661490198041642512246393038836185445280071135964576286487195867612405599925895364948250091902301491405332387105467018307457201741181532260004759691663502756301025832253488654543905932931719058947959147783029344742639518709521259324196118913600762030562029320657398935622601041226512243223795502299075956994862693218057505296904256484405446067504979251890252518520311284028534815774680189150864137505651007956909132675060117544945077544149580638110795947585858484391656846543318638138093873578565593368957651732688129983940472012870011362419281032522038426757340610157925953423981295882260024914154947214118678935347671769583857907250044783563875680568347216914688805009314666814010270625992856113275977630711299685416127766263176867176382956845000004106550275463505251746974730332669224439687980251854396011952795228879838839142346467687219470671540392128806350676592920435276409511826198075977960799261130670844743645391114055637201994072251966969445059508143442649592019454127759619131155257155435711135540120699284104437356628588210224357774187416857485388418428807444266579264364941274968261460408193990365921542713909384190854794397348389307636171806633309147966995116972759168005756378510928211968402525709643485619049555447916454426994938213333003437021346150555047593554033384684520737149675741156777630445290122469392028947397581141618664523206443814981898764357628350608064292415068966370917358220420436533802348719912018462555249117441435696535613451678903177259722665287123246493490236798109309391804629311914904316092986270410967111931109581982373523154027895410813831640396829194406994070109112926977209838937365264656511164848877448979838621260534531193375079473378480628120029674263787417358247354537822178921524232035297665405570077032995992180712026159230264071261779321108706132762598508463960467794200719524741034093977444743341389428421073931521977053165978090321350212069086813181424389579569938601024924989840886701844920713065126867013489473122736109686615656812516013968911885070964290682428844953982917237302211203735271111778572446866402028158030341997920691878372641343206958141889363624464270667021166819469093907583408111906381600833211082677590660659625561014057952032091645226356600316066021125395352959129978708065883924980873441213672276764152782668216604963387244222049234946793691622961379078009374917563930353891345252036412926015350589776601833436115967669878900813914533009567472338467403896215725551892766031473979977749719584643840170803106901850612502688184761527986976117153703965707228390236293436009012976142308468030283564922020418862286082633146686941818566506619839465201342982191952480764143980639139567005185013684655302006744377924710289155270884109405480139818655274290125164322673342508552125450173988872134362766798821054220804844280431402483935333803246656230535905667543633799861129362778643300392646195679670203195457965910839188410737822362736163486862146747495518399413255533051463852972212541095884382747116065334039146628993791039841492250458090375559093151353957515713559555169791886183583968152039445645300372572379094380283991132486306937284963433335046549687700971264444532988796207508991188051105724418431954625272941807284886575021040732072978500730258948144913449847622868682709683270041636365210472765199517751136710918645374282820332413180053504181741465053679226965813653708669171082166140219764534762601546371613123665304474231554252569407058819815162573120507445187184080960528302385599727873875080486142008270863845477685587263547166421435902556024501277030011830767464665738814819643271311316520354843245301545519477551029722988248958841459510683340722251683194740251573316233493799015351918590063693655515978127940064767738649936569659046543625470217529441274570264370181025858104138586060216092767755493967677116467590437982576485328988506807173448707431063588850721987471658209234772179300596583719555990085240729946946563877667462543439975105641091424237764035790887677394364831508120620003439545026731301346743954384192695866739477068506863761371060389287135553179579589875982587258769104298237558903150673620497521239701075527621037677422075671237459563634685634813133226232511084443421341622792450889438971780644001396166778757926282695443646079115330751711999580499600046222417485871603181843890837461108211572602481706500601250607240186750618743419172725482515685475676081915245966704119811132024641332472420968987203908531100043566210002225518267027201184024687324389341740306502114266096789360526460827645668199806511326475654127510007240785865988992880691862586794244090527969678480716840037125000863523357430515415513522717900866637773502354674862136624235394895303433273997984712216120213443695928364588107885202740823524583235920359730061965781653734773568790970433544847612421041606997837395833652463776942664333385940856452016825792505416982466241721431561733556609928415063290861820387575703796081741897032726465737317270150111097240634771729899445836929756052209394786253760053814093089316724457669821435476179809636100280050645688548930307224175918252510779245574256445221409338144809702434511742656730096487613699792931669273416349803251132194995228312643188058433142777231778530832141902044835084933176484831181998935641616027162464930947264055363505505067120008541367275984975055976377621092650995712716667186345407381148140944977712553660663839082728042625219222891500038695390203291534879671421357114978790534108130622265596571073814112996286730654661994191363401330508345258440657936622195085577854111679123949740890829199538834622430100308116077763442223075493015645241100112292543766553339481801228870528397108178566907980551780452966785808730188479594163444275872820766508422653647665496080387881302920053925908996580376583072024632698434977893999644043332374928603263423489773950099253034635187613385910331565730577744054728880067450140275579163361602674048154366249422124385369600045630388355471167952192729639330911416248606489221214066225198135335227971804524854907662955240373861257148800784322083694165121531787579982147103851264808709050464452367099884589092246874210019850037592312568400306412250794557777826091595240975279518684044709559979322194533110229702119871865651927042765576445328785881362871798738188196223236805650244909973765270814212467243610714540676324689013623560824810846799602489708837289764063382274491798097787999492009262930198185892498862190108916967285546185031083506392371617066538750892434643208375307821164856436770485881612931349883804553142733240513137812486312043272042927811145252550352397181944208954626162749699793674538519623574329525256584251335772369496815075854810037002955691977483939763509536353444181891118976457130824163234045771887900737959489115745207533800250370331555669072779709807796462403729153407198107688825962828461799095535630057022637507958001151514235464651473916976149147447059880045287331209217178150873335355546513562821028847398260392517287826906540163052751844298609956032117062586020936149342613533456775592339446732397147211671433471036401273828924454839779503262551899902184633323560775125449641415613932274327184192928090792700936404929217912432386427383385222487612631855564438138528764051737964681977541428817908435393899132928840132325538938639840522499016204554589044835353575027421177530589375340473791906585001773229553065965512300664422898496878417679756132786273683149115090297410772464608291348635114095483553006604692006000305983749712814616206982687498818445797662599399096426232988259786367918988350672314204347200149697197708632396406957037861434627448325913611722381504456331024767134373173235932261342517439247052532065099012617008445733755061694720981591234255103612098323383462621572011141705838094866695373420291292123360652213046318570431345984694176213611719402789096415494986720579921794430958887705859776280626842359194447644510235457515754538299507323799505964834613446765424484328911672035542909150233232897333941426145497504668285386891973776292174362504423446208923115354092011261335868749593642826178401316330684436734866335019292365414966718065656589220701450344569589766302628827542433002598253010874837217630727671181104941816981667435785608072493652102540687768916769263448698693778806434466150580203760445850205363582240811749544952785142784040743657455732906465825470076485089310360559229212478207781032202425598656809275668860757475484092007792095459361758642781757005971799262701994520897121129185839383262448647840470603141894402744543066240115555227057724954731481165448285251353960336807777753850655872068383761974638315875128714753058533532445635317260710563178943090554275141903560579983740666753493572907054714947022818007311818531758039502678517026086244443055367894786466837199125260995878724485713104217180055800798167238146107204930384898225938715057684988280672726984721072691482139488526119841865990786246738093998299748570194368933104195977084577615153594881727558776229378345566879062199451056044585437960073155735292054967176982687997785556758688283727294371537363607136402460439176677684625575368295933439036272124585358444309064668410476830437109514902784832600502068635762861933546999510021525697684597198775445942216941328195962867530972477982187013825629991717262925994816359592614179179865695270559893934355155719327735032573759448145860342274317714582417530483716979169280113646623043739117493266921640991223043664785703684730948746315304860563876079164075981369797534958797290046786331330692989544270086680682219131992774956804589483738875660368851075462370774296890139352863061269743842509851327315315852340849103353294844948229930836161832445193304334738608697559253299869212116140209904935185083536064490250661586204525937610777814176415562104296880059672876026976706176449757704927504392265131463626470621947979313405962441768894525403641078834490890679702814985195485684512256978735456502698018121931289401153514421498776776486072252492300536754878891322432958509916846398083460996397128088528570747354592272251325803212902574711614666256782564896060440616381039076522232495536232490534151624805788466707247401374516873280538116135609518711908069375429377310330932902689496221663865008631865549663157074473951187876637441779535203375032109313459366176775875862752823064792963391700602560031289283583531975855270276845006762788410888762633727641721174561143624118133439803162566172620939440355627038527717074538972668890151038131038601570930823835274720485190424309956547802531045639887845929404793781665039217483611395783139253399008712475653037368720722960689275516779519876836180656058355293158450488665901984800316757720436836744717919161547936158539709658302849636561399426704335024931317409874950618507491301317967842278278948910928002110602975168014780720227782980207754619779968420948378131703591219593767221635636941271390396549510412997817621895878676834840844002518456260034407017273449705157852986630115165793573707958984881640541756994275932563065845165994766216220866632416594035025592029866051104443710600717721152180028951584979443545837873196485325023029696257320873471523054786009846925112362637301207720334587965034719505302035675726515657411250450753909389614609499599366489940195725673733878254223733896779233967513151702440512752027171924865161113947068712054055746886239840008804078068250751414944988060509994455334897244043570502586109850865315278458035069804311721427504831951813436357844804267548962494961430887646490340290121133288792805315112353775244044261734166225140507472296923689947647890659267286063715787604203096610816973407592911679594258503849687447911750567627545555522277576688565787730355639507610960011238490229130452051775928039914925965421753735508707009809102292030724801443946506896362588274963977885565159874847353894507164949360286077556207718831804383523127872748706880918236777712468694099058483507002066110508797822014877324510398855938307834329390090561411502193263810219451003250501530313612617328312227226933208476139060778331928879936953324660760553952705977698178380383570782927339877326109400243046250510537480441207185665881511942183800175208014744717562186772766532737834837055347147150470298485595574247055416127665581306790041727554980197831831764102951553386637767677261934681307269154191077501739431458463803462135405378629744871024955374268681598921054604400777409132471387411726384774407462297158813218776684186090818111143707586719077146926818499613682198498821136554626889053236180527041766379914775539768619473949330404061095360572191425561246465567167789845879927408961470121309974311322718509557067590169556774498615264683578594213054294882573453206628361055217794413867411589331243318566965854177123131033132454048234507442499509247601048213656197128020147092420132398192089412864848201628497066671442583736212552967680165633012383686139185039106015253921975543075305244274467656628917945679581767639707668742136662588272819374605003398043286175598511627209559045146180743410731917812944237684836647852877157951500929531513693470160823878301262891869978713768733701125680708680549156920150212643681740756568566306283101138862661509956672030002213197205096932613774118483873779659432166569467073481326539710319030149689406068995420591492074906553606197647320143400502013454822830880260691250238545385954381176814093575131810429736415162272089933873031181464771147065600605581047789047772205422613029931977208097759010087095476337645345938936731900920770150710749713388654264148734484609998279972669451583179317758445887686622544049448458861420980957296509518471406532945311567415418993041064381792606367144725095583914709571111989057609507887229224338399214074070703631845884628949006641921709492007687455900132113519954341982050349725220613997736429949684954733618239876637759521964355971954574910735454619104763826611820034914277057835648884169468349364547081206272677112860696254808568043970908795667927777083694707535106331713282546891829895395339007141667203141517200630652602081989537121426447472165832019466218794937706396197206400362589327535735494373228531130670264368319712115504016357876062000071771043891793330505550657645728621320141223215123414137396999772964619051966574851489263495496767006196256355669239320329284465921844931749469779584762333420266390331427526982235231683925415291458091306165699455319769514466291483631811255303607105434061779172138343589986478167068081120049424498747372268787229917295295004175720041692451396124912780887161774539420758821279840206226561023412036865963997148551460116258465891927003882224504865411502215112271365438822058455760637240683887938177424689484412227223317520251068797578606203199385251839604319805231055330474069461628960072604314741424755290250890429160335999078439824091085441072745155026218318038782675973212747249462544451853773719968680787799357664687579791930492144883883372373920893186887650405683074754846208401740225531292687922838587936445647868779953419779250488792245826289692526579722040033894642956777224888974622949811079307594788772423259120101485787981857438323160078743045489723718244087143510655656189030259920312231538253487037016386947133935398376066211393868534804484609118148553075162736212604915300105111807821370013566550640470457543734829603835083154199386094404738897351005003975994181318342426319478169742342553360564451526838841548172739932708417295011933771663912584702052153678133416484813689616088534447981254284810754052428792254171147189920023253622084604700527210838086489716561601287687612636928599447708439260540029164892987053134409349180893751585895407984377299555331384685946797200629188795197264946523922813070823828948845649642487480415741921100832696476145678093409985947737823397491088590121580491535405150529748747470333038827752911462627221392191522224639496093648838325964399600227874220493615515763272027530841710916596794219619816422958884759045339642065807161433203977555171787510248667801236506084956571050476109035591695980260654834644787023686750051643600398784076676131072577016420860964654362412410249084270843081104244925704591426645385907567199121080057772163510571513299336867554630819967323638003599762953398680667790766746122735753873709037981472291379218218591190361869372997104318082831220513675341638804616018862248034425495705085265714989176707905224790265084462300054434952560234825986771473170550152069945871028186341399991499106041879794887306551071691763108913882573359317199262673822127371787665777680684699416164863169029684494078514593904795784605248940952342756791310185765276584845612296811790830742879823192424402791031202468913244296892492326453693484216393104505332710111647433640418597368911396503483708671783045936508356660499072121277816927645741341727093910699503457404779798023661602783054771984405834218271860387608073370711786717710609181175107216950228486813956841538837116264520414063983890363690754743346211213543379981352486345074378229934079828064929552142467886539254663273433955874641103414851669247508394698133363796071027071916351600631856576480092437046065653873076226977251902472393828706594362960420244795029830138952238408883455207912026315250669250541999635281653669816227953654556736743858243352595084577251109821177940876742460486499161140311600072839580971859043003732048627556074460817696593926867637801162399090580598015397566830927315428408480430300174581292819063578262613342893420493194434755924528204219756092318880187391597946299719684099122263656016920394176713460643149586184008455024438165884366171752938859298114870247151173658893856448706430226661640046236961057547904374075313160059967535851830506748352600629944944653408885779488397244842980688726168402084537458113844860569127074031009867268694175651904308344905810554302642430108603569826740467388466647432122360875007662468014215885100509386356767001171469609678543868719238638382695944339411634604238335263675431945356192786377910053048123347851926450996831203951258644838757356599199875458466682107414967061016894279308285693481316273816391724936423396569630834954449439237519266307632924913137720987118866354456722229768251931133384862894979205878737188073026214292674747228863523309566978692129106813882917743177739183337685981778193838129928136039243063345512145107384363821120705081125093894794397992868592929576061889089754793715705811256608666755717802325586102759502125511846672691640892618948445619105506028636309233152143192885912183034684767676191115898721260049106340559821708409756013204937060905875005217618403203876797295957152652858021009513945568102356636386452635093496969374007662525558089753233761124020467936323494508055241255452470010646252573562476856901336510087359135050000323841070266897364670129108912649771121462596491351431322305094004691798753856840878430006680909854260837514763026157651081200811959919008289284857444091808137000389691696755870332813931703653771777613463674309858232376675282071509489388417730911908594943521631349290482205980549048825805508284173331845377993690107470532793860678264053974600979285061471208313698477986973873009040698055473010103213471146572611660264173579715869786354391160089149143668761967107598017766087523889931529211595664915189768698802934539652915634734615587889933188931685040009789283658853843563145952796677574145397988310719132070718419261734725880604280916950509909835339995767400247468949103040728467914866147511226812836400617435169838498447539605852207068776219843580068000036778204847133270826314954459380931396942173059560897701622369098989372268600910413624781883531500783899205676455628064289403093639832292087726308736357526612057651453025849934270168924038997342898690102035362207248363558394229337115059570835676568692543693677519253056555823074005940615497190803627122860823841309295758131611492175196736558369889416696802114999557622128046513004426552976748585920117755827662231206436590510528947623518947608608827792423941134467785731583521975070009799145861331919871386864309799666161584761924910272118879313928898145561495992207942411414252925113374740297044286279172518951211764411093274611141143481552312740665263685936572588659764259961915633606826401952208357052045243324314993003496843426719599545856002111673275834929889267574021355843029011078589577092561331944113203847933616835478071877233831002216521688644219056282418982180663796206763544842785577385192661386000277900578028935549293290919378488585589594859686151823135975196299862921302552260694836420189083806422601598104637441460423716135758380777793347951426956495250209635336095544297833753303447156814157533303947370517119963716955419105091964305010929707433132499994502042640125747003311776922320678171326836158856341194469920198085658259531526098312480383648746411790202255375028507458210336713739546493504443321449875670325589570435982571133837400370528075708080951607682759709126484833961607255501121360834876334335199251216577214522247726897328642836931764839644205191658994083194510938259697109603455898864974740413603579554950606931550819351559298149754881601464909649635539161433702676790132056245792413190042710952648960947074514741347975842573045603538710368495847981822310805328336967111154946674164790463227577137401785312501715306473601794872025128921224005997096226354416544063843171745313661258356470995769894916816510561483249281589843798218965541163242505855141827178798266414734837186365105125957196833733926160456892910618555641221016351304053929212016064785989424769683414429787906064181292202520863376798340089733624730068474269677921640565784546954654297541040667483763665526877475246826645661786655082506631857146044948707894752679093846833852862093157545025745050163406394133295477161144131774956475037342342843089986166946109395277746423296327113051173157272584833927009404029775626080036047385303186469472184874135787339923008135089427022009785193936135860652227083565815668492198898154127533053795205458331332640957232186768893131249341272641638793274813755903963415840376017383698891181823785321381623607904787692401446083577908332549634662518353720787515252684237423116014416598032226263833124179073415552779177020072465322644106809059917071044542742579560846747035366763491133954695526411578357516215337074205829273873875809847271621271348472360179537697787124389348397501608192848165115009933121596225610050704059395856569569403715721149116768708643059052305276064149436467432815091346316738170112150176488866080731011178318067331004617307845769891184673383497001641699981923325191306230837576797405306832952900656642727328516840966107290163703812759584058920385446203172432539376415573721465349166691690926077573037245133227873075632080820052377831886760012064088315825877137673315091774236123143439545908455809809765795948937522359347354636099031912122706067702144193896889880182144763629070822402117512744334636034899243298325112112258799846374917678118815400815375001449067918561040667202354477596721861052194757161520581846801243444903192816550573973533523317115785838779992508983023234619330633054416340585804464416113300215530013961414263999506273081051034450710898391233630868697408493612567517696025259568128008378733757091013991110635663283500123822466650690057533307819940418396244593420539622945586390113027675317862108675058557833855685756624470502815399477609157874440223484627973592462048406449670720622825060858961850909642792770039974120595428914606949781137529986024157137418282189143712273113673456433583601480074358992448512062018470438090964959051572520025064827821664732089230462156142615200843538505280986092735702724731528006878482837200783172086891193345794186896549683818519351074752997534354446800754924459088186959079479038944058251157871281307498644285079923781543063656932944226880689007043571595840377392044209427196503745838516085177473055839799086270931764680743564252884071790648921341028824056925736553485591772729895356746372960129090057051915320683357873033700608619979944417839485734775438997718777393555493253319137380692858600063747883049973004132107407850381042095261377710242959347327915586531429540322308539570160457814369642754087039031038817365098605796829632596781677074616675210263729633692407541404106922502284099801986474688982296479160198629627627428470071333958132444821340283745667445369394501220302443141945897830681935968644399055872377718011257398851816246562478101641009251912072499538011153581750762069590546202389831408295336237350259874759666070965505324591509534740899142764515718809662946996174243857691081149162445713620176674200509374682238079349087055642252542772730341096550151969875677674736205728362833294723666625001048545644924767623967253925441033351632052425182834484008198419453947058345203714282602966320137729913985272641449772730014806390857569018982976871741207208313770717347387169942857907209197563133015853785304909177481594209977375052221373779891069926215005359333057444285950128114513574009952429766148339004457818758620769712500570906618846595117879179550999320310109685068638918934361355701282182613855947154543349180955585446446721921021067017225324003592977679333976428633931585626996918550178276164130679321209314384739986030391215245553021936498313444172674668795713241429267276379256273490824915620056012344484431672158189216846128922874702180144275973773377847277925434299449431660333264705026782219040800862661074397743960094814677160267997503166584517807323316701309589478675522858748842545465756971940083470073841685630521733373211677051319325214541696224306862061735747396173324798205779428543157203332775066406472707637598093277152093839677558569596251148596963099821152243212124994762610535706785207448720031612832334762592576547758837140536399678951169445140972598999233459951928410513239711942194259146163953595753132514409112717497731302463102866326545505476455761095446674519892846109098472652331212659137121570721212586933604362215557136109849250798164392660372875972593575644220058475207542925534373448964070168284393387537604790654972575468629185785267478277804593770265585912711967389456104318679451995490337144035730825854043197414372337682003340745912857329172614772642618264688588688313589729224314669514829061364899062232246885625311650013076316618515938312322660204734855134325210814570231709533279393945390065378433984837192253792783315063312771367597340611909529250072401679790697366896597100473600854513509931763536522076795282620041036405892290038487121092152933572071050438778571639015260852270591788858505516286171130615922778907869592176609098239284348951159701346565905875439893863970541665053154268850392454120567705028652538996287767279050231062967274573289254354484876853902164356636916508635762340456505024028580629617248937282211148871478525420704926001039457653955868342581444010772347992412601586041436182590745969361577358408250510307119908777834569118773135146346566271761693516750992733597739808382591287496723176002991300588336560716612656804074122184150645969159307227141503426920881268416192905080074817034677840695481018478600779852536942718556050193031862951221983521533323985662747253559905799566772905896213189120931309615100947085924440718161366779942874988932396918000423668230320927372094240885720448422570578700989380016635333073683409928367952931097294877374196226058379568289147554379632859879319951541329769237368261393898781554630786841716437442163662621469445011731004250778992298686765534094914902254549738238823797491709800053805249034585674005088096308837763820582883217710682845163566221318440173407646799392985486874624846405562290571410281687405262134781730291355054770316238719012869005863392891631845257067889437186443364943914947934840008038966160944167955672121467053195435522749278696817906013247818266798513254770738819302401725017839423133592442866237285208570803746299303662824420753089754922758024320269943585349674840362091583078999178078119036236181256137656423342027967607035027061573186886612035918482845620835384968428029643287963148760193338564213657459510627205762462998183716275918805530957375392857851157080986457445839228231525619943483907289720926803029962338228237259380938918971129970808082188901622520461041342005659411930278512044456213852110252427293429928147945684919356745136816470057872847780482190656671981955523836217267333014648986949068292898306755432028974024096657964278461426268663446792238587013972089394799131599969416460887473920126826367988993435217823800556100155962461746612834043773868644339545457524785052800621534336703636937542766375438120279503222606388746499402889705354629610863134192048073972408637751661079621492552165298261131218026927602059697441386870336460046678860522745658120847601636323922988770909029904158404687164669195294463855593494936772046211345443656065072824631543193931196053693987391736017436532599590479282780060427059514797158801417112743383004134621803226672831485993890844918477074082627710128437520468486787378239856909238510573447490037525011895076493973777232159260220260250715576137481248575644967921063115867143376368906281627102641424907498593730795966710296550878195609931256935626007678152022392509930384732662955265051458724109465759330686819559962042048262866105979408387540243335470769364701103164267619938955083640135293008391007950751063213430507737643229038328837272110442701341443964165746401989162303576999163117364743554675940649636441745992375989853002472574952353666983107628764391847797020427728005788599120204045471595329709970557241219811541042223381003541495411705174926953569132916491997606713313368752818627765243224746540674072224331135777469585788675348923462861458902507162922902824399473279190798366436924104480075646025640375372529066346525544331840361417288940660036689936505982367124481262555455391696135868476063732345484952549446430836475819728099916172443801583197272311029472102756621395600868452915612041258846057884030387342985322898639823949476376523114973197706699667121448842291470267077782424770671747218666470614065466952929303255307344156644937269544945819149386803977633540185621792809135217950097157826157263416865693162943320522664689292727619907929935669511484086018991340174667000188816589702382677105146522428591320530825628211518195536363582356301696409367895919739478876655385966344280243681794987385089906989348841365663625519590704366924784240460637567584847562063205727228079026682185388972162068388280649934176556385057642188672787524204064065157161414173569641235023895891186459799425346434072164387529261109176739660350214583800716450564438830195011879732312803334884559990099013537558098073657785934741979738597212726110464417411112182169660284279961445231203359115542186811470878649563695470448304392246325456554444117275069584637707582557439259818121732057433829573269899925571421778393187496051168064083549187434553605442444138629415271585783276704122804759660113879245407472349332318519766618489335866425030074603451982597843227083879033651497845383170338044350047466536914763780085211482693846576688431810587433781816977970893386729005449638025929591886947965780788088691299862553329778171805540454375297873236834069620011637018393066393209330505923406698749172453494204353932345385547464453208482967085503189464904795309965498162773332665234268017649060205667361093922774881435346774865937190365997999123832783741079457141345373971215815025089065390143268313258832750306686905511901134235392948223589359894038483570775556483760176237967456314219984860571215543772230750925522808965324637346939095101218037017199183017283334368093493087030297740372695878120722734757646341097758544380181323459703194547681859339896858231889286734681178768926824846277680152536865792241695517513932923054419283449881608109851378646155662672156643641377532749704204159167800072972127984654388162235771927321190313455878135485901389937995863192815973278060431497301398005882455852833743015910207050785936883041622087265946139680785080103837191098095842046806884903269931192751131541769721612205593318741492918604697089437439520096475527968572762308429210394314278171583658299060076310871500257103828176293618830872019979119842323882035916013757925830623931324824217527628212779809399827622612330455559787483338617006708688263352259680929403986164478567734691538935852973213188410570061188195929247458011335003386803139041684162949330835474880976078849117782441387669637225836841231942585278566450403385148023894466045518942872383007858159995448417456892403384919911621130746459349902427458142138051960147821498933772973025699375435386477973418795283924271821529304521905229982990903918413959224839740559775027235562889387366895714169576551685323538469152110383437011752162534917806778212232191219436442157219392792701665285515931180687359629201138246251600918268776955880368655620059566791355493734947897823520324080351200855656312338010495818837654152841387893219510502970132950988321432639377826373366264451327365287426668499936429299818522367325632834620352146284972903502270304674590077370125134271474130262606357226098186426582150306514378374043982560654528997069176463729916533354765630714947418400325391292512617412638425023711888689137326877865784423194240345187351168100769973576782547448718466310018430675592925416891200415320088904691437726324492431343755796953880226148668321361854052628623977101524789004528748217523523889145530709616327369510707137788203063453387493068598439334777048840864079959831805793386261288942604318620918853547960086114738728721448732693211417795993203327765964033306608991240723653820239540720508646213475987168762899436818968186242149461992752785679112718722525607235137505640342629170429692363154985257727026714560149600803708844047796742930956541859157449622531506269349828534637869813715638032672807465098545889841375536899793408717513834680799284355537416716844504971923288479730253278311227405321994453792679889412119199782724799786798843355717510511700520534722403230049267680391025186513023805977574876241760364730670382776321937358396431914992389291717006198444915694407907094106639709180824025573231554899373303246637227042029317547552859739629301940843554540432497346732021084028480026817387311683648885171115982249959812148399745381584985048191938185050327449304883343462531849874051781191008674467421942785592971510931440321951800103322408649273025564234558505986148478985297650435102073868782001459232389524469438278205478301361892995114832624062180015351627398271403979126580213433274976084970880034194043051060679046483723996976068539075569362867041861887093429425108192940703389197334371178408096009774760441047089349980541684622246367361101628442117550721686720636844440239881142143163928202778063197120397601163806162269106760921110517845514189089002310670439609383516891849901548891647138468368240880197421296456426690485326742502487852018857295961207978412811646432827511405210669065797258670967828483720672821542320800054419009405789674136482933532620916684480400260783924639181851571244360517776371484396113618798517421692463254735024609347830628843719050024622483444922314498507088736558398017193345957766248522673149602118786457634340133266453766247666694889964014718005682967351868355087637473581184601668999334988887169010554781041042745849747924423279083816665818731371939894371769010173804760064148431004622666152850067869834848643035641477730285362904397010342550310601315538775298165018583274879730826041240338495790523100870407300775897418710432058049770434902988078489474941272644535974083038352315646169916944555061331777358027349171902948334736727245605183700537888043589104102571425818781181029501781378858658577382819119622192879578251516788044541150762029994450402324266671867946449104605383056459386496973648333843396733538399495485494574819873599812729108877238926217445832919666862127260918425754551177016613350565886930234585012704490979598896585275864639873621895044149259254151611983565720618664991905675539404656915436826229444180081285370415764659586862004022747543064678870152494226864005574057785832292105425100737280569764251637408340697712967939497490755992222392690902497670606775031309917256871132680557403437636181888597782228902198473597716177944633031134742490474356168804179731827881021741009106199175096810238138152581090237180474311792405779052882632805303941336683446129616633428725407745292307581373790985751472652019084912232784210840625984351330395015673397819686868675248627915563039190718774385886627756442808619168398252091496119971877527297408582127106824841752731484861712068932717740379571673087235074443715814755772964463835191864749201767889394560389023209508663870964442046545818336869406001343439263398388190480323047871659831272644814847887940025865593982861493576494768760986202733795018633182318094702114636954381748492237263628170526099900295729086904120298473626847660347750720389164422263020461990680940758545057284607521328155719129032182615752820623741056144120196974984919816922453110871734465648180251386724586810982055429751214013402683654173136904810840403292112436651338223678864590323679849630335383622365259315800211348806499981572079949138001796640033276601599861029674787216046963923071886085706985034189330517952437220950845923188893447028584531184810246749064548401440600759398491998912477459878130307689802063544750381339604890903556679377116387532790601967907137284623671232230887576266528469033546732456386997222058620779208578482798138019892829735028225055941373652226758631480138075611604486794154468753636761481158580878006117950162017050755664380866427288654251707342454589867612772118909785847707690513999777534551850760219163928101267764982197995486953328446038202340868684082967721128524197965037245885099942177886490239772370712510904933702467112894982097001003853858409540788984892541218353684304594446255571571040042690902979298761699566542817039644204002414895762753502472648616230982508964010229753567633296489699391265799944311283612124392686555027779594320367486001644813723712881208560757176748313253171619728769389783533904434707085633495114139982882512824688710974321204652374228487777261934071595863671859849815737667739821432918575551551488245859623717270911693931641881558390911515754531718947759040901963555496725632252099866647584561256139652866189931530548903320480505104037994956615164427253919669156713738582321045227677041865566050735843937791044079029179632646836498301134845195856123432119881352657854992521147837691906609652382924850317284471071590734591005152686093166409035901115398595682342522148613241411517735474671661183613626376284580388500350855204575368144168040864428404655651671835280537919599268398431485468192369418874502756163960372510680128760711439042898697680057933132965683628132351657929449691208132421782685599418174361836385400689859143612762631760154949364104847942678882267209414250887985701860879400833654311228695527199421425842000575949214111229322199323418619437455461402610054029905846119223754361232859081036474453148127168382061015555631000289433173361492915006523610337419574108654682301536913240489216719996021355025489474728949393679534668952890788793132011815341842050836932493047909183596362115731483428659550088691283032591788816584431346128858844799615718456667940738388237921555748677816033457859169178909072296294386856255304022426902529973076436248434048861402200044300078229453568145277770130685270681529189250604559419886015429011912941518385966612118850921871112157447939606393019016860543930850680602029942682919806135012619245448556147288321318036007453659541683037485655843991250728510632189902143437695849297688890244650850345380203281997635191745368501668589718825402592918335988194672415044329331697962258701863978328115884853090089239369922236449740008623914144300643741768769491545421654848145431435547211665336032718464899416885741936502721143556148099075250315781038821251239267351924500997813676072475635618398701513513170767715846243839851224129578480420128088982322496099900678807473551071026232220449640368934682187819284818413182089523469427353935079658084486220053401789854279226204192459146952366718469288302663087629316866978612077279554079960553146162804645654367632967089768685268027265145464528401846833634451525253722648332573500618413656381164932498623351381896455889849439547816292902429488997675620698382358153946748958059884205235662706846470073535373600383005089759500422995368478908627150260671140347857607582565444432162176699057807906010179377118794936956446950615985800779461683566996945722161095158304180267921125591039254314107084500562219165517436014862087014028080288084341054102346340159389650392514106638197043769515558840391487814183943905599122068234907995890313038187349716289522044793450950104708449944542689369228190670625097781321157598488568634220393901952740288021387932186394771490733438841623099259232086937124588532409221049774714342929547932225643219966516389675588172753733635294229227920002995157218748062549250923755513229902521919830488083799393534419241162176087020841674450351180878665047750401014772289371588268449383955855236459956667747372317571870566917004221306566117135284121728502370179822570394229280123696449561475285934169966284590025719179257760835752940529248197848219928059782077358020954232518956801441490627148821419477839205229905688381047309855715747235366627620936915321726870457971791023627044093899497692072736116887263360588203385857265914522711378897556253694914486174798359046679727890604984150823946299469925514507757485477803780583873239159065641950983591126659027771880875353760279057896097586661741872988274674056998710948823452227216657865674158500369987047251840897331775332140323837547587153993594346385249362000650659590121885743393383756570123070512133635683137205426423950896132858444676797011487223921748028432026532625835443210270617946287270806857319011852133556523320020626242368222468406705893433757377501774109902512523850770421733179042186007470237982213449710120362696782136493513764829985227587829861328073213262324640603400477573985125929203836338547108959350988598178332877927752318678464772641569063103709863559390468196883308554501431773346756448703805396990239439812173584424694501168174575824577333126142743788012407426196785094267525597779058450026047225187739156165644159953096303717512809988029980913266115396261830430233673857339638173923420721813925607483764109786930591453002395824712023599586386107231346052186990223693587340906689208309682817759269820127264556228010460715398607274422513133610859300542986798612967037553503338836951729673385775911031532161873130269564760759004855750297305255027102560114694511810346931335171342678260826173708537320588094139225204750659337576372208462314531413509770071008220600131926393635463048274151027875605828968432370000379448088770502410050454608291263079204860148935484068520461212496078075804426844744180862811657643391552813414006804873360632441639169920685969599137236508066489704002023289367230588218209432036299292325862312124163271622214382058636008806041109140443680088358766891663201746018637723285562447997471843879607354237203673116192669458950655763734899184868187979660219468572823795687480283542611887357926257172509446526011634475692951463661042257564116428513449845135386142019325073656868292776137703663453262531723162962610589845350651015200067048405367366808107169620746347622946398722818385690874575680500436443793351619896368967650590664194325760365390841086695218735810526891021371144891218111296259915259666204840261519821045261855320416527972702879200492573474784340048000654739788162261587656611764341286470572219282164016371824175548909112456642610217956370491716209888350674191827316894520727904668232471917371315817273843524520268902186631497133387318346820596937054346728205327308322426605638420073790544562434596778988105924812830795657535599826801573760681669115331084164948213631554173041294044034134264245296186672226335732126798306034981964348616245150552309475460603953156926697404338521329615264560447542170688559425146244555378222561500839426229304463659973779137475918425213221761950052077785647192375435288438808904539245554709175406938460575588863967901518892904186413166367970041633362407453770189369233399936731285632587177447882707942722700141153905678843469122789414515637933415307692574781735448595249004277966138097620536730333669845604342703739615990254645845050959333436747714432716938164562745482032171447728235269360904176953732246399720612339594423568601564930750018859115416223638921130466750447209688549894761319904666321982693716523638599381330991503850782100201076722408415428835075242278070977880369111198194442896813559335458618041730734392717016050764938759797896218835157273244711907016720722556332257759573563532094094098251315334282670127729771367790183293056027204283174814905644359276449099881617499700795479214213823644219182212768771265100858341281443663139167552146753775465785145736828641526536149528746220664190190919143121992712211399969056435302961162229880769798296712000125971354357534408444349644631238957084592897120335290084816679602871296359351184938106503133928429374397710334906905709843949369263231449429255917617684180560636203663559423217996667229105882707175875550657545679136936258029195295293727052384265201889747616269326491913473392719190184317898879344790393955725400313628380452009042503972673801719319554667622432323930594909361801946707604474840951478474319848851270537101529981713573811174293147468471374403221994833681998895011694080799818422444281940487129024215143547540250582161023775371376369331203415505405004729421657112676491639794619849810090381130059843277411300320720317751639586763436168560935196248730064207488933624672162800125490982182442204505261754264260863083758356807673833858761703601315815380044868484707109686435160923636559408568011968520697036768282182292246625243651908789161002413149652252077276751046027365188298175481477659362300967874244380758622143306691022258984096532095779908176294801124122082482007800459647351197473570321941903314023219374647923948894280754364001176315204713137058749998701372855361860004359246379876705050678608760508051698811026329547349551203047020657423523598002227058123191304588125369062096824495986019077578969034918611903427342621010137641578853554255456654327380927267890342967794310645907224838998431526525690743163135529295182670525989036967993621203624603789421142096952142284523257011060330687232677015032304504472109478574432682639781163075819855410027918747615003601975741151453882746405850053506813131186308230479262890668515897976646429182757445761749195714566086853703589388132529109757763093220776264610281764184753227039754629195750549853334619041259263560514555041759783162567055356673445513504847400030102063735554967546278365653886816766217605064614850864795933027998845061583596733892890698940426793169945894957093779135705867018629292948865483246141793098032734846298351688380687722684913650263026015793086737942033596962080166270496877837641312850952287410752577456218196295903276779115481245364356106275266645220909671453683215266655394794324798357726494699619979908071867137325616193022310578639399597774956028185862465096561123255653107621876416456367763370779108855340484120086181361017523401722153961670428810535767863282531108443692839413571803841845445189964144673545820891618917427976096578843796809106565846418821090895497491262162392792447154467185704243323723694289525271150705226667300232672444862656509903089345644684070975333689557596210541765649573729691752916081940277082833658565448287213069920566219814959770188305063330182710779570485182393535186660528356085831261711047053109750567708478457122515849517215281453045792109160994270268490270875026707964663437890296616239947565475002388236173523078493896398743510922380386158215479971744735463424215947416456660578594281050645897294862759780875302753250202896935868661210267203972770390143425655225382937437592444340305179982371753002276365599248658431307159848623320249843914919620698227024997035836845771938851390257060580114587827619720551828640655411486345358163328264772966019685153597819086344247643707697108074070914623944439284384664318540815637561069172644912578609647484724752870241526501045023534179476287953124039941385556652094613337205432284121125338770646979352883993543017207746628077739397416446444328755052274894597945975183898777903067690943070845466852472299158579661002876877085268046000277125641797326738605514514566665995227518370756603546910603397485606339377273105120585951768950184689668125702206221520566500657081982916929300918197047624184343871321849130534718933805165548337565784881506405987151772144640593995421184775355756113970941593862749488131409111493488882685977480216017434033488386044167443100896077397015521976765968571795826273320266035000866680586253736593545037516429692406789020615876406216128383986509112417219167479474352888788458656396567553003930648251186325797810099565491276062575964163930299999340013052262135113397107200303273055806782087478595417784837620872519012044755461886919069082076656295770630490293944671763781999565851226539828047267905142169512084376053303469091639932831028935054968619330111943071076715241621961369271026418162537335067264316930258622641236433489632909654327904417944872641128070405607023585630243811109709171956925167441063990329688579874126720628376658558733979366621403486562363451660636018149061664420722776300392131579423487218684435511774878703680979450598168924863045269297077715757562047342421129854489063274140917014986903804378688354097504127781555358992508477910405264681494277768230558609667919955741189989562534758748390255268864958450429314089833046973877616952260003811943654315993966354808350959312723456607966698192383528225073908499067839244825578579661678954448895275128038200187618225586696956380649961834913902183854857357931589263271944286379097805316109752890860468669803654828305684670454415771091046038895406437051262988632544599916281559886412744269972202938258317428177423069361935968241312607662243918176821635534736226674836817296506740680056547632707899304470923532673958676565966365169229305322829099771146862912406860004284823435961832659806089600723865022771558109165323039061835611464843381755631558343990022129318756491562234978535089511953698409978247077480649517266497220189583142044566643314852616220404185855469547524828828606143777854657414779528594808139744539740449634968460065465009204479987342243489714083256373498509477441008922468544106301714803983162662356743559738806590380222002704993553726054380755649722893448826428224488417842817844459081854382545518932183405568962467776059418671375651716595697284728738229413534394713162496715441548830072655435533178135498633902870478575636525039719750542290273157878733306577550614358854766926248013437905846798150572201281863661345965723974498602539391401460935546124570948909222870184543770957567044511108592359362628196166742516698229925637428698025231782527819950403100997581938244102714872031763402253960147399714388905516735902438009413446166552177146173453844688541082120485255082696451358385810362664725430722519432011883851590331237274458858180052450470651164786937843911944352366443850176421142845523303120572931445753183689151027750388887518890022528100003671171200805902863224702214913718121347827858951644442033260082316727328255429034311597540764119378956727861723996109498653284182342003760680942229875551238883834669375052356634670074343195584515109765935020812116496032003648138872626994971739721423589006324544445151438603882082357293788284189582263169484683794445853695621445723419790322697924460988806882902236239256152492593234396070752181060175210071713410757242187971004825760793887731406443348196856864315368551553244936677262574223621549708305571325999683784207976729481687713353810203801905700025288808000848200116376766677623588685861458698934773986580744434995652414077121383670884503635842408558312778506413994911926413768407869586948618464683134246784216097893193751722019304362357210841696265690406831650896106721438555621656829859362394474789861959401589039795357292410154699536336644029627354427901008802054964719699393733139640399422092780030260038178257387493434852024112852628060919766290764168072039471039272669487429395295624572435867169901942642375213013706137822597388463389512719994492309400923230775591346671460699468420003069148307691001238765157720100498101955056186059208653505796285971346596879045046652377698309767154268801615485733381779616260903170460773305889050202743508169717591254027393242982244297966271549650555567115111702796163552116768006074137662273076710418046354145116364743544708571016096501857333751315062498306812608665416142509108596129156243104830887419838822536378136237135484952331787770604323343879365970703326282358459922862931840768107715433755439360972739079590636897736808889878723714553400893835259638027049252693205709649753608739599055771410627913424825438731009891247282984590690608023822633518610083763703548234319078256216794093133152002205781173410455925246409399144930566814162627134162129514335449484300028704375325607191718834233107836951349329809241894454061660698829926038085608177554871722232489244174102211615226766079159728142312120264487135564028741036862445573236200245190026469441410861129154097701989296253876276628366488624555791336477297750742702415204059387799105445906386901447789563999314439788813900237780396358670182643064166539568065315215873553853877708586378530115142157703754825864964582266346664445305354622459030423855752703893858137796969325671432378084134814368357996576367812133268686700188866252157012863587863952092117967839463943573279852282823591023660597577995994388288820324489357638921548840817494361687894845631751247050648224560733022831521695696589398020709214110641735157533285192545729650741020476375655166857321325586455003294726452310301699540250179469079463621489721872890860144861744591658214234052484756080051726218209970852611908968586816044944543336937018358565420710653959497812491795793471673955813514058343489529955960966292820161428728462135028647943540859344206496828184902938099045567764477181739210969164398103273399805291976463573063540946529945185390178759827018673771474374152782329088550502905220854593812166826132037728183283884076763496743237093526760469359902576416378747884418961819368369619004449022147208499563085462014674782803261559912309349468423159306022555948474822692392599806905360974669414030658048906203528874910177138887373187724984837480732983101693888440657928433539083129399403428164667919152531747073034407317795180902790651921733404370348007366396545780782024043155959136596077901679145397059495574464242664506271201022632473031301234342597595848549857325767211450299622589088020769915609671643419895767915468156046036798404659507961917288068252863247536983812791047078066973100678940517919241812301449994364354445846898911718406865723409656959223410087021817377315002111145541997547638437353121300690786921285141964638352629872345607602390009262831240817517793004996549909128996089521258111951720485327019019324077416253285674269568161792093649309114062748121379194055522274586068682508648920131017074999468400197656121154222105215780396675455836491788033995904703101249042511584092456070604429432281337915365330032411029944291596841822796679267222223302494417069474965322649064424577934327536059389929364793990850304307984748771452821877118839443172111165166959390593272581876761584667915361418052444460025548740931660946936785611708661168233823860274129444407488150517117231595402064050210867524808380114757044449941844334071513240578204318657155347741333076872098560061515254149432536159740380393720600671526931264639173442752657823763696357896542045100733138618285329891729373702523838313094317269498177535796530119481851716317961044503091060113319199923822348148491119536210909498802051130983229880283611706766194747188928992068882545833088101894886462202767597663414533135969186242749970676595369014781936614331272680673281481267763017439393733229377744253193563417544568485893157381031897462328474458383858054070132484386345373451825046082691219120655674586931466265035507156576678233281434053109066156921365859179268387400267934669919486822715536438257148371249221269984136813102181165755553086726037042473800422982908367615767051945754363344358756806061221055179715381483070658749133880566404460008786711027072290791128920465761083572321145282346522943403965554484792499502635219114213033933786045402436439141831011784285387097231642640881421317370485965053479513472836696583809885604646234410508281596072194924258541572134845324906077029959860547338771318142049339897464936132862938783445884492796539892358103029842352658433382608825220224071693819928959240904822621889123681039419162032037874917801802915689794151027420455693016748023346983221143596367119000142663181072917232707903186048244137535886907076068339667874963585873402893780720905083552595844931029615701229875597383912791449855163805626387307611364546724043775925848224170309593066669101574700360427921453610745481291809501663703884981269098240766255471864773346915326335436846507183267842509327936120021239947636964077709841143256094435539387544225441081735879518674624501660323814480627827603965951394051903033054911946181182183351674204061935563249535900242409824455313154306082835970093274414224440368744106146345557662924598752871556360199340579498238985962032103370881510584894631398996784136794763248014262021622443880059987884834866425187261031601431142732832447353555262811561502413138089424452289699750429146119365028564409207232241667019145365360874875646971555727668620410906619036302093067476051769759042268080007629851763335470617664048942041142460754849055833722386291096519567352825423925083494614240578661700353295948527955572173541057181630547123273550874281922550546302490478073859591954999059695269699906121940944247303508619976296368039443655063801693560362706563595381656727913992641897151622910684014028467939551454260475039737175799849961547583644223287221921975973845402928711922882248037171767423857591680449828821501308845573970359696684338875759698897985000706738084680472291716257952881478313950765402188292352943651052894250426748854096183467304500274181625293619942199288712158897431384396302723716531869859231218145218111037895147140480077878938968861735287817363744974987475192587935821168161944059720041799088180845505196217404724680238640800394786293541334011161047684272174216410355339970241338276512312875604246987299118922216828790642245781137278766474947692147921633506484102888074116424353826674836743643999030357815828166574482606315058504500342456247684619478457921573498916585166995275107435626264012206325567517039810698139986248671135102921943705530689602600662431653797737245741648700388982909576017842612180540411571860445695158540168671826833776194740989073406423599018156943009310179538260360731130001614997480393563864507494654243682273769735422424442467365142324596997289804146344185073185189673566101348364815747839457073040592258213210569328633472037204780740895853608506128331832609273059146806469392928033702063533665341340499743642954537131382171846372689149244960070876860389605892576604309753726202364295862423584410016886632609489996011155650081404422807381004803966423829322615595114273292281493942487074922471258513761875691506303993462413843611932395997430819800808279573901302777809803636325698472432629770534751426506261140069077241026130273946192705804525529872309053484532501241427654621090779903573690176015282416942213710984504740922265606444259184082323668486471176615030893804909589420390803672662127626858131324635899710732143735116670509871018455683696256480758473412451834833408125496137436620307730780939894516343808918810979084207837437993904424258154039563428185609099590846969987732966866704132492756285332816837796596237461226439976471852878057792591872320704875018152356884541247695722030650057897102076372076912383036452456785194037049313750753569685138941166949297929394872488331776057581621436829234951193675282445368080640350387643426199659467202164100039471709940835547735527544039910156742319142346301352458900400248496996257604070871069077571805993534146181137173541454727867762215631586177923755698216336825567443350869411284813510825592883626290881150621694829990215234741242301529672884270955220170009336409457558947848976685678996599592333922616099546404391042166361184650759386103583133678869177210526032851049565156664471312539351954103203789214152682894054357045943758464493305560448237929990781892872076445322172062513832060983871738186429556226662996540097796375827461493566164505065059526426485491829304866794152209513547233427465300978978040880164045195196177553036267161354798967843829076012449199133784889700294442248352031760000298073579132445665922092539058567031036135154623112019941913708557789262586084804496546748462716118699698874709215795145541385047751888710921605127861278056257573690693942327181563568589467501253066077414299856896703321517823144210278119299569141097616443471075632596518705089915694259166945600439711421326618688798360152214186267161785680231092390665761279060820754267902342588302556347002779578027581618007359881865320163338491217360629131113795085806252133738534032446068163989650691708901489930946525963726902561488404616203656043215970354089539306808926707180751173252580573184294517287506012595624497041938716441979446885949398696030093701361477980698228526199364521043945739188838504464716305024734928380917153990702908856292027099510007198160775157343216251352611224144567758561491712673798454842829692436375658644874314696160835554596813068617279933489750134702275358990363395455297543182305100371896115767435854019726046711018881319041204852934944945123195737483100566603781284511998356398621777226543039994893993975857201469090148509743257613309271004778564529905881505081377018402110803857179239070121326862077481402985370398471413247518489296831536068548253343566288880003244752760626930095242090358195322433182323288275094968968584180104254910101978698774720453714129296871567239884726222928168678609849041638799395333276432301354637761858653106531669592225751146827165300961647423033824878174450282763685793132050145454112999656120536594823060931123740803250579998689568280140351637566167695791628507922797516122225994458954417472794834633869633488914333570844674633681441043398676613585237501735116667603482583153028047353478851890814396669389535266113175906075844806387097442437095684422428167698232094743801573052035040536794232840174666067667823765503230141181989539119827529806919058764283198632580702166703108474772830053271728299164217948825148679814732019170287688279547823470978570581945870177916266777067255456386518586030157798389359197171561057653188256059583408701485790533622187425047850867628183088265410437926672994147894826760992484850365132657886654600602915839363828678340940137015187992394316157052004822528469235476626240872595001285258680763255162887314320722141872542561160079359269535760887153987202181412119842457669321144133841981256985905306217751030276421502632679622206040035051712139448477469287710350056837049503599493982079195131059087360490634721219850701554320000015148819482494304172742281076808885311431916262023624983531876000139542464142602725883621891864335793041352509145828740690705468863428098330117077065843225142950292467216857883988825597777966639721569007279568483957856117886437503217181639857472231178182645653193009359936025324620043547998476319273119995376786783615753317244116671333350160582508129739188277829505866136746070619739596680275879311244540248886466016732020625931367773475872540760752475701024945034744890577652014172227244508515496174516632536775755739295131175075213390261040399503595457485792806146732725723830758588829985678381034698338278716052195356968252981469614078631458498855350822310732042236221599763620742831768820110924559437222100558583463033453967019907874943854913732744078918175295448208211837965861807959010767660813711449161186832864075011652959984459874482424715050816845119442036597740891729410492913500908311378630974295382963661679737287398793517694656671160213832870702322543831789874932322438142328389986418424672694130377011854454635807402372011723749615522564390756651202426822832167618930669507056648021481830399464942296978215376520392828627577149139543523369419701622890104942966878312866041566039284209471432005349260111646988962861465043106808272791433436524840120730340804428863312644176553963569044017062812123392503670777796676450995770961245724642660383863121571137604470455358792001421260768866095421174127044884371399265501224578508366563412355761626038690874354723025759792690261354254083832188818709056278907182268315787995933889580717967475664687394184890507335171446500718892902331139090201350904847760267748426209629219811523617019706484305066392411091978771842384651481393702150177250028917944976891440899582808603863668709357670719648609522252430222057923524479082342197040414975411334773980751550329726878753703954669856496003292218762390770630420159750241994298252797186938577810043259893514337989827639885892155616963764123169709363498661945315332761232669602253380260567640092491670948046614949818770934615766070981680264506710490550961949888174253226533610358406190295821656163163974423730712195023223077235018401282139097447727919496618494023959625138670138394270504537323400088997353829343738961217501450450003825123047152584911921613561756261120427710382247114348847848278102920707045368789954993634912287912576635765109203858564683652265630096347025896757427317976322771601923883288778362628353732690001164054795619877822105939365116262013192287177138313860469281777288769946026586453470733206573756396775030198560049490286772566379274274527335044504573641796435816361791196429059309650126107770559823727952823185508785249831933125905473485378479649042785183007798905305567697895533335013878019095910034436114124616541899473164791840005798758845773301999779686882434421243471939492261163865418798788180995852693508044433042004628847512719336415901171449740138937835847043488819541367448567459826233452189453190047851508956190556959978910702472222587061070309209199477509556035132115216718392538860614064932842919083772656967886650609463951535054209313515497672175539802467194568024070645189513783024205144698839413619039929190613330199195327552149148096781632840556330536649491574175149133303541501636556065116781895312841847400540431267907031814913237342486279250425083301215429885020599222995455935508028752875134471642374403653654622929636497942456554179266626171064771878110136241697775024003852591828088678239063411452479151115367257003786178412287638059378668628516465946545453206727240222980932038814259568729504948682788094840965815060407112025802356612269315363092638773339342578500440479778490545784144999217257922578584730983537316629692259004395091752127954765164088451099304789418978085441924197822607500950409137289926979183511612609396955110309457023875390011650473498814140105663287228551402163790629838860755307498800714330039371759364311163338701712521986738309819317798658547640747178497167101659088679377158922047704990033132826453355252453656057987433358800375006909119160990848225314785245566973083965086524180461603054644857441968205439724772578406080372448712822977310826759685130483402265104119845793058804775324229352661921222516988558838510325843871866168593831035221834287057806333829737995196680226983704891817355569029437302185557371483155576831362575965234458643779549919032423154574704020780637261441301066333108043957923899360174553978639140429349670512512268446053347516180875215881224495938047551357877929405181530172001309526727615062750579694074777251848182760292485358836005490206629126970884545699460291748720361014199455382882886961094963578955156847629408836673102790765111067781228752289948495559484317593354334171968880550718463009633937995604112519245037581059839233301997406877236030450046759459798888125060229871598240708916161711064721781130734671122006318773781698510461803329847849234111831425833588252952140600302778611180012518743317010640514333480413846996165421732530699100273724700620584217781592311399203791770610158077658356437997764158682087296893002434667447195352270244845520600133179920446146311962378908012032391867308878984457805162123141206870504658357855872230981356615809968856342606637490707801561682611409878555529518983601283222635644524515987861443114968096830186840712877375246024253025318818050126985627949819787545349160577421408350302405443417781913708920260051115130244753615379185462615200300673107710621154325535518668025939371681242849322897430464744932316657156554295066194456210985629547312005862400637314420747383534103974773864066820246109244509759165146315237523482781935189283929764597065922425524775465745052926185913536117244276007194369401356543999684906132289646850181682497918876898955022469589900500098702135232987835584173909982329963871693028236012214682750407688119335942747564806217022146259141902063839298046750699379449923314012705506321012650335365879240958172768852788085980428749319963600185886536268856568736483506293106733716463977590839134060530625365177189293137933551789145323031559332260696688214884166850802297537706466233840455428277844772416419115238924460020415610905297762109689584550453363653446329272248704980411601142172954126751031605043420326684757866621779574015298681385254796097084032258665458113958482095318816302274100058666629584175514398671875329876576723036006261449851161569108512058048954722958706659845409094908463107843721794562791328199072271370980730163013027899371554829209588761331982820608968013368208995685122630666561819402125758078856949127133420612168348724107947975443241209527731265221658573445626029169044524206218653612827281664140344479419648144923766094241983792281977411320275580905864949699581403103819979697083979300877791807041327125434869432315752772509370571348187643841270722399024126123770668278711220404604414415991917637345777114969100931680304681154829821258826337325364036156448376910112022988851979360706503161305677026491562409326098361674489962777974988362483534053557567398667085318723720157397179597580793318433703556533359023763716986209337551763912917972082815460264423218341301385287701964053064705730381345741578563857311641917811288823809912797262120993758718426682744100082916671290056229830180732529208597615613888487504327438928229375437698564515861197043709719255321860251356092869882389948660842700333486188715092051912575886342395208170833455978920252169159502529310295003011218750993879510910007718677444141775859954665387306976851095595011625483270739502826721107925387081253515151952365033889634823397512682897038897486446561276675338018550516027105597343399187210341911690885480284677839073690605148790739645489256525119246901824280700041576804328048735062759033474143899467352014675832038566645560210841544275722017065184991138298032956447685965923997634233284578962337947539467178679526085182161255260813519891943026141202475492526546670303002414747263307278715246049547172261447493279071172092490889850929667925916745536271511305169011862003596377016551305542289818154885479471263476000358405172504711430448943520485857228542218751926758165461474416244461943641482569441220975489554634845909775104721175972702265405129620425834771623366345905208735588036298502365017198775069827392829429096612645658244291328790171452040009508542018170574363624080838694806943305007770598221091288841316500222971856607686606681294240046466473149178485834550868035574672530914845168693297757361533687441319711906367892544653152915528782893924393304839515135412001934770225717331944637242051647088169999304942224431121272363967739394775484032741439961211605151861630836046567317493206234244239777417438124570318457489146731664276769080780503744798897897498525521295661073002665132211520328608825815379659629410095594031983858801248732601458584985675508654250079169909373472077097706636541966440170645908152754980288810795221759234893589047102055408121402795904666077838107586317391859103256414520643341951046482953906656718123397001129366684771153000474319706345772071742197484689203549118501006058827038641186804311885511934972534847199359561078127803452813110663110341191012952527810773857763729372851791859591735474407809100093299154853062644222755329432943268036284043518506727510491023168231811091513247542756346997951639129435512549136002855071999068822262749353219856021098203447022973115002507893332428563957137721388996900040697554529285946985632172513743708393732671598445100840961143552428217916915618641734154827992649077008265441667163903986045334737422626118112828344196179410250461363571493903686992248294719573713774795490237521430744508990797766468486372612932167980246503271302319329184801200112131955279822257372970848053243534196189716908196679264465661248650700672070005008788952784907793885540451790611694757265363440029113848633966955352080297999488033685937656923701687468349805970550440395242755471722637052312360227234696291804056472976370425992487298498566900321150126477158923376294440354566825963033057332328837593308581971199554051793828985165953964558970155052087616130956198290937442272059556903906359744636236868249630071837846713898416010651780980345962697049180439059174207758112019138567150197873622339872839901723230835753010795356130777632708507207156876308532141962220562512179522306953038309694555465156855206590446317622370306068595449703163986170828417222152868049015534027121992601508951134420513899919315577246122118239112110674868732947451112838829165270747316504775096835176183254830667470481329015869549608316272398386118848329078919377934460448857325275431047276137674312606711647916689191552813264027415703169756511847624955934908323392373851093247217344643852340189163068853773677397462241897758930336955712820363813716181328844540775252086816696174682845562796138126787317105551155229637647892976623841729341295177155560642220198718157016469853780668163868213750492317241819778728613572633028511403251129706370557928917635637338399407208812325412059839750179989815216775518318080304996592929941511883200608708067424026211945736896630516492364238978312632670380815887032524291263043573931070935168970440183032557236090586231712997678762487921351205973957356567005495803109559138025314321551246954339975510534703798625117388626438214245325485474949349279079222853491197257461329943142257215907202342254275583153358866378781834925019044128071583270330855598547034672909694809628950692731115184109659320852383546075119215754255218519001508217974660159513964417473896277996569018318584945417927909412746869047703233408066749690694182274717624315085354778582777502414251299664301994830102305248966909621185110499892562939281937446560361750089562115173482873490622088793155611769053949957226453286096243018274592682008799234492282541286068761998722929087825921131576126315304237345639143955855833651470397000692157142667737319770313812665010584364792355801387037785150447189283771283463824506316896885081486040914042622743876641236275308872446716039392614420409855490519701633052917983685398817108547428393881640271825044887888106719021955000654368693652978598039315262301588812948426977942389726755953143661311712216119054694368618759751881511653048158800979505526071857258564700432906592326117881571440265499542205933056241147162380308144104516083480144281285896819085881452781872785361834517066550664088569818694692956653226697374019609758403609486768429325604015845300531720948556108993887086841453554737221851466993603370992961189334338822043658219264695007847473462185519619771329830423949843061951388367178020573374000872398360627879000955963277132856095401451943564728593219699627303581723702093352915910367846123607275297498437232900406881657929787557619795531705731464769976686492841515291992310226425072887996925229781286805194016441522181838202139226992763165787473944326820299251018588901316163483153105365596599260311754978873665830415106905086138810220417354160896056014817082279346430023446776151576595359921144892753904806845196465060162143987826333768312580958347316331651120560585048862758133160403258196028367091550039912399986707678006618187975907116278567447156932829133781678575928601199725599925190550655485920805212846775889112938168393514488455247494971749559669507231580013527990032694177098991033814497450443413967991798976437711204453819144636095362997980871026745884931592381619263944999624199224462705927487619767206016185877623853991495346383006518192325938697340914966904010771341537559591318551624872666690001451375682892073708152738306070864296266708630744984272764445888108438918724205189989799988191932646592748987753755780717587563772344642872063666395821414382340015743693779117494351897457783015227069886820427593276528404943798482987047788119576268363454061980311782176242256428591871041329280848289483807893743601140747210951725197983144371689350296565215751171739515447938022010896373339371595043742759028445673917033821368440384803104385378665009763156597990100128438300718063743541533894572112515767941619248749281399854642569453767959096713884019849067377907261825775341597675528485674536442850311302996403091097692948511903471977743809818390975997607552813695622241763589402680656238078791580734736332401708608989145352276800577584962720286044792468914387686301100965663981727956448079046676286263040280992606457851718378307892663468671653195348318235593780192921188697834984366883831700244738207280280200175813571085726012706077315387196026117200423438508025124550198242234941057557648452464532392434231386380811989574960004298819612974469901283599163779329028916185201392984477614414762008350820518685174753389566288369735058780080938770787480047168786564689412166788003571884025747065723534846856445570672864778279642701654570066444843025666526517894777523959003620049423852164097210957969228665580450246476608684466017613180101910353007207825981032174676322168378982207769839663593203614406169587146980190060738970064072365501302714402644216783322882105245779544509415541215057605426020239601097069132000746102955073994402691458175865218701353191884622821154185260050813899259466153225524003906980310628468158395034379665616016053768195861486972915107971236487195762625329846340458475100763826618776544837972914231882828323393098616485044139432189208755585636772440145631714170672190469113705822310447863101254280539819677725454425976362633178474535470198593615610600104193691145888351347068542845588174755721460734353255332075443105517715370182881811219326879359638967027267654841497933887554383770775454164828980855806217096714760517921063668928625110668737242726401700895064750562811914244247818116324361720931693998903707586348476521502959638990048822127550778165517143793157277971791770409263028334150808395271733961373167036072314452255933569187230609907615182201791406003232070526272475581346584416758798372665524296980333526673821540266765347549312089164527990572354254047206498960826766411347765095569274078049236379196241874344644433486638719502436066921883389114746989599755705239490337045211975702647146875408511024911147947621698695440441092072910140131726997654260572194623864109278281466258741058893304535049528297805919417014794565045387249159750240083871311099971677186333368117674252711674382144634758985920115655742281103714809613813144177618003278627942592526446387140292496102773061342047023663670013888618437767863931684466198850536269627725416248926427205975413945871418132196160116049158583444814565494377594086639535013564395239207063911268040259520573579534005972876092184336639339516237819855940174318395110022168686905852524956205980468089131575238971451717236401507666198259886492209372998349422958734545643200964991221344064826369024937237780032876202735435870593822775968128743713829952783114504768606057781148371318740451145321579767868284927920766883632595764905671253341216452589339826573193520446091861401551993838021478500182495838039944735457587175015863848048122784801734299704706561231860202095469217504750609115939927474686684354286392148164743534343191999278170244629299125490965868389897480680522646684986419185597041592088257805884258213491722213788025728872468417408116174199031858308577314693023124918701486054077659301261281604017894637719408435300549961428475396396767923679034325453383420804689675587713952750830632103929529054839417097349280899133927905368269257940027419575784073440001361255140721670607333253795276941047666698909472140497212829289903918268335114336717104927905638166234287126044904771908992627244555785575028895291523517084965176546991968492157058531279524322742318284345568328712789110551771921281384542898637948230024617076428506112811185531033579300978435946272660084564179177390498981099381288322648988327259689781766250638806322715315609067838798059870883200633304933526666297382118584878584690926299746677378416666618503713453558148368971962573695212474946310790022649801741514374061493402448426658093578293468122269902582108138213575928549331232677366607889355337803797416172691488695661617329967100503367091912436620000473465971590550600761611924373915303141924701627185621252478262220706454228876866895912988387665711790489376875306531818175816156525992381744005859918159208487007507354914954321727932762988186556935478782777619066627422322990194447885585537413871472965121171304167407309127232902183980179689783819474802117276672101050011911304966439642184959754464808830087090644687677945851885224604626428472019089725561268862356375164060625012051821911887297304960819905661026280159190487843791058476941851704231011010553995993125846689262617744625588557537477550701649636867633707492089792887007257751099649871643532997128518974563353037750393677846688819842748307739523125112802089247980344802474729952696208810500440039887881053707061256337534772048320030020962769049352167181654566245463213212620265034722172083432335720721117721114006686008193635649132217103079604666683481226474157551705385309679224119401578320717974492816538326464535979822106935285868512506747461637732292611091925629881443866084557350744750103066363241389744777992348889137785302987599539273638465611781363727093682006489859622525251263504396836131177776019988816725254821055824371305038983738864368054832904693618614509625420152187652751213304232497316023090648710284160427054359428682931980602491122242384033813955799980183741325897079883678041727859885091193321151524759096010988401459185780013350018419575442580851929959095508874887968624190636146397538782202278521641182127290082956050228973556134212144608528208687205107290835759156546517866726839708962356668090776888928843605591778633259928466140229106009257091086496044381147856301047770014208877597264997282948214331663691472346125262478568174936295940925870085955047794624249282872829082917924019954516937032466536019809037602898474692793879899127118303311761215124962708445500836523490373249607176474620659262015305421572950185107316239434372974948559318406119808225506670686096185194787896572779013427400952663833078567979969098904485551821804655992424223994226830932395157386969575236284034593658718956901362582106084537202833906411040724593002305126813286063565075654262803194269864027474672279980520587244548037907018165058372035499259823306470511281347473735349698955050335070076472979764873573238559095519359434759602230877627687694875074764415549132383290385159550064315282580287349731906728339237704541398740209863635471346810428975613371007334336891374199800685390035714092974612411079780011429657459037149254904168578023190722962933326764190698029599040471609499371797452827609068939537622614050283424021957948957715628253618577037336451580608391425571817842340608971725974531555244882599918954324076128766296164347948095008779923778199140908769823500710173775064866007139635340208817451585593973785005280809216604461950990455721330118831114849973623481182369700535555975111034733940736860263969422004020693218230696803912985015286525661927030116315122563255242983435562144681553210784138267779430997719787974135724731113497392615883317415852071451634046127711142817612013391415115902073927683815622333753008470826374682851053688351384390971816459342441852898815154310730945395510910101601219204538300818202346849568822783312686787383530689578824008454586774282648210439112530453398007629755753866245407208386123932320988218168533076234791748022590200302930813605865684471665918101040685042033238556134211817773436209825959129169126935054441025239431733537171242469960524589306590703702890012422107169512098373223606839498101015484729883180805094651238538194504565176590722815769072921637576753346209427474958752059687363902722654218396118699787481785795239244085766371866029632291329040053766703147896597598619728688744232404768439190564794528793096856231238276326291398376412118541132224885219690000199193910670114474024518188323615513870960270079559156608489189565993620897976379443372618516262785410698892739476336178866959995274011616977520887148056954314543556604697498608387616084271277403310784036660475564530988349379655778189435615335650556223244219202763679939700465033262479842087440239595074789999940747689481594036120517265162489691613463825230196102599362814422984826185036387920320699509302819994921001325314747775984141882375477000981218691816975065492205176910538350926518581916492861934450119526733893078959663052570021718809439962709888245087474657773210286549852427338395478289609788821479540789294490076849808365183769767919501251538293878185420852991788928135552869420652497846690882465773072915143307945396526114987907790154019929450359972021409500873861667925368731645908982156722157572672455845217186536496559789501001034229851450495278195184651952825235277971797837043507408123035430224470299795708768905194330371265846170542073786539037167966636354565119887147302208020434740932353143393371240911897302074441197966998893508498235072524431842385625333630517940133147526419503398299523359902699443665056298643626348700051995177870433245805538893506753754517192970613432441259283156354635974141954007343934023443619765098759953507807109369648998621146436599689321230098408672166757621843210745740319621248615788839329842981629441079999067393599273169552442382026126541890493991068728296485608329048606330481682874989398740617564073379152315517601655051606208520384777705999475137082653424247693930663505355428104768183948935003663380456996669585600841239373526446101176522793012059395583687789094333279193280138459262976198401262630888859093490227661970086975679580430212407189598215589717391672634521478543456735574036343976812042739450040978535264784402590410972707245098669237441514134921476301743885661956066799218361440600781467163068648139222677675614535713302923643656764653907891929788407186180755588593582582048039741172910386951188832028506543523309097243681700342499281189165617324996215992057076959322552719039241682968586835321469757127581134636676163955679353406025812302364002374486972333543625818000237953723439442155815218093251922065494640753692177881490642781376209783691759409617412045159240147721470045600563208779915519837474919048187763304526461636044683987562540199099255543995017376193683867149292543954939456736340175471733974110454721713171732928415096015124440260515538660724657214431915705096013333605987371495787762681878384856931327300482458913889924807795201807440981119785379886021792847342370959382603005111138013403998561415015292584181330235128477918075614801729453031839861001420976250428180928329742174551367497917404566550216670214273018080209164794637964704175804616250761989408288732533580235340286566218509665875888341847344366445598119865463623111255069462671618972168204628878242579610396751688243146816600840299517687851487357526114395353953600369045735175798975276738436167477729665093541947622357819310424117446375116268562005719652979350233904953044328103631158126709210067378564691382084111473520751529012032153445728220934900862915747385646635037353226075501359576701052720968448888225540448770080662777451168994920779972534042631797488661418285016093828901194410011704096581996380510786106050145863220483534048336749432818054442325749554972162834435635963518943066048442708557542160336128264448603583549612896604419978587037910758331590974567054734385260125450101210883506724227977045152073352695720915262594147123309105194908483975339767053067596877124454978469762661248330793905656302859097827592279455953241531717905290669988958513629295887067998139735940134896710531487547107046255027362587879112337023148056904346108809284321920437364373625275324868530462626860698940375729157326993269359489993765832791898697800285056448386123435049746747895958190275413932420463092446923894644473982352515001921946318752325949124694589016336735022401303308269915359648654566271081437655337589932161990764928209774645612649215037481089599965345092641915834214284786640551547770254320411018942093712450747785462830455447534678892785467676636423281608517792378797746966578461231955737200022532852136842764812936980926265806061653889562883730584554341506401329671860770355400999570241177600733068901075250746972894181325287778906478093483138756583735963049669549085956367219243136749931512766925595534549102130569227953346365067879465685507711202140135386762059526804126084476242978165800028039206361007210098723650327320580563869814375529606582847080195527239203542998351774754931685302126012395520709336841997396952575327147498599971701819102580183637176197123543790392352354479760340806101754693036449482039280946951382805020942559883167780003151410344672472426711048035693555198929531339296683131443400065784411919624306883622376642191233607787293023276751740211249707857315974525879176518541586979409649284227528569394960739041141610185208146235869536568579164946793439271548752553933066923676234057164568789434065545168990034241323905367120134755571648298913628473188805669488327494626645399879230489607671690006735090492689208631490983687681514443585341433308500728283907917559755210650560373537455761692644827239402490701512184204175566154585661839362932762448902222841299952822398032750618946506006455464163093051440604519201088278456301615213266428303281090594354439199333564221844482232410431267444099460699446903947021249472948264384226330586801371515423083665317157443074299428493186335913464221547550967656052529660121747412589770046794004877406442481249545276264449414752361904364476811108194883310072195138427005381895686572644341994884853448836088242406372838145971447398758273043699793326737224337139975866461873746833552451727661293687443378777395643673218850066363464924941479468755912623712309952150234072459153749609025762504830715271476286382630526193230107448136915595020632587373778995371785414091453391890880405934755998040685173890415026938684343843757786874391587800459287391051020143557576698427454167757742643738105411138017393576415687517958722886721241915645030253222593711989399810784858745518285887441120891171026377636786411115366559653570377550735641267526963443925442835924630250582701443734675486863474689083427891547132481767512126401765003724997386393185633512034580938345709093811473071362908311404021395461287227853954528513725339777238478548541583165726353129552827271005561621110697395188907267460297568870544248904357557428402598106207527944022118944289296847192618987864308811896622645134781638606851673005573342897192576439610560055461137669288078472789914644103937508619714279432564669942512536918508010171531134722594006931351571247547348471680948562092772866485370821962447792179810575770757649972777580422626437649110912476482993798044149690236004706334092371484039697733217067341598582831576449701099368186133223147521519666432630646461326398972088361093086366600751336485536995234578059830101073822482190449896145062137283519918821626192935132545139646684841881090885247469295533048433118761632940705823998752678402421395804997395787240541110205076795668341566706556970987452205179963976793310008744822899863465528483768738719212812357805593653003392107841819861012016907410496044852468995873491010318731694503557927200081496169111262755331714305062576674138666752107987117651257274581094276324609674525266962283680623164316041555902692732856206665809378800618402478087176336992744176425360800575597980912039134039247020438518192176517457006828621575754052820986047073953767651964288875526721214197329971370522056064205150194429987520313379466766014290681262834451159078715797693561891751202366743844263725502138086777714869666079162082217885038884960817577744273012206117731376589521249667167604986708364416961546123111491310802241628300849603705208608924612411711258299501235228309282638063715470492276045003992410536874577901879042385272523125278413178273848112396432701820308212697717052608524482543057920809978895333662808337706810543792323845880580872845118225557030910085564759260675453373768241355158729933834659707550881636535616048758228593888630730389554146490058831283483896968621571962625035999802259406169893039418085024935718538090915666360337652663610875155243208012864329357757906114684308496413310551924031547352205390812876700487781855159476639834314505906766654998908708196073701340060857696533209678623189984238804095818750688845627594872801811057218577336662662820151642006608068614860669142253025935519516891814400459985458435606131492879994761242402473865927207134938583832828964928801691736361528348982397490131915767991832442922924942815873009383899047523782252956084328699482594229652066507962148133905758313579687612574797817306360642914800583651400201927744034911548217154781270202455557471082472477516524058394458148224182136426501273184490034712799526456537040119126203683240225880899254766672724550486346639948497066254954894757869233828352621428171473591356511898576448507851182265579688460159029246272074316371365555232840576482567981710116111759148147979268066991557688100440481881842856897750213906768953245807178143321394436540115872158350118143258358167688621300563034065428054167522792547447260218313713942010297699100329376458785408636375319654648415905007524375616436099811268468495216811606318014188459875865230091729060375374426958026967124929750901647945949131264310946266031538301143454313872317299620292819603137348433534206419131896820639154656882612171917213579128288218985953814984907063457564475265023272638457738714933851331328080746471409060374811231092548861933000165103300650469949446140750152339099561080781584491509820851347365669547534602989971503417922988983396671858025084168019733527364943603312521999295762542732645182316331517055323445891832554086006470563708148308807346859052778528103970539637440873257118029881745512528434081598704020383439674549555471397658280762634113155547725706190632005171676659743455778108701507471065955069050834215642410069914298432733447905581341561122849140139463937485136874853324604044798872179468497102714755893861616208040608732232209389019432121257230159542324846132329341499644541185331577453169528354457937513197361776916934994725548728836053785747080311410257493823228497177459009605605610750067812267527337670067653095655482142184103836799158174928985751413348739762687158714738938881259851553225504718898873760849142356409122576397763782758672314321184314461921258522255133883664634567392535288802872212731930211289463398328879234167638765038737042294187625316955573858250738822060147890323991074738957049265547110778799408486298408704971519984630731238222748076590386972021439611614587041698401464832665307229128824209407355024380427109435956647546773545308132683820310407323091927249737786630027116887332261920654257103674062494837172553514409177725057047947910084677316414946453556600356830027667840318344967490700054757859905526111626221409723064349753353083796861981994716037592221130955046141329005572294588093734667225025092172383629674650625199185988009687747010833267390082914483874898254919148994951783633500922488114716705742967238410696213769057561080280152469170827184588864200420496392608655462464666712162102750434947671935686723265995319726651250438545938863871197488991018039344538115036347847020383242975753245315568501713375963902485317192063517923660659606940636503325327434452315996311015670565244091030465160493892704803039181569527821597521395330600712099085987774029143886988157566381100116512161706556021924646176857722948068104830522017229522327944639135776682475432149296705573495820110520960609053737732263293651094927093493059315259903998740998985145643716896874303827458024850318422941304471403760220325729698179388799241466267370474502346587094883824589863980087282388737599257786333715119751416561376295710928559960791659549459573619240259996429336313383326518995137424758150921636283338473392346527857559839882263893769294277280905617877011128482017380559825213843683283892536079600897773748106894142671070441758034982465998603757047605900906064698140218391031950752707741054467454946903128218462110647336618038247717325953805796862099871546138527495030942409575247335001117719982913037111749700398401596298133615296643924863401299013678722161382265737406913692317024899767424163881274392411953432334403607647724829429126182235822817756345098797642156383153249720350887050337033954872652327622702771391214072395415668448096360972885994218751325451507881540769694520680785021260295093438486381715738352964662246990827341977515426063463141646004068902106239329106034194309851760209337944464719313874243558547663706651034081364462059940973975745846148441197694188666662878667224883682831537516467261744962942657505557455230616948432264015888311194896929253539249612654548094150169465356174886854407324762805127283255907647460377222192288783456671978482907676523070184803317415509196695714200774146964517210507866096063310048687197501288553210564816283198857259934583703431262953385207489537763593679008392537326921337774548844192694687014683774942085633016220820858452693315354124192187724786543668039265096411416853279944204584560464242861314557587225228218443501430455628753781244949619395800443354082473446627872556088459046610597777231376296301199551557070809793823022369748527104794837509780211034634894914914622942234036357696119394679861721799940623430562684810491765199691055095649968548406341429455575475031814735572399101609880771752446772026514275633846962008703132562510429977469524355661176501866105011766075428171641866264650898381271448816227025180860872260912272173402178720011659974149982128792108318197592742629394465290601101583264504600592872991863058508805089409968696531531230661851028426865326483918276842875303053706722290342378171638717944237557723511346690694564869161451122305860899711125948034332041612359824731330958418632814405854218158670022311220968839413671201280483329367670305283723447414968362251093007309440348051972746818493721693615157155533157956124817431326293480675716862498166031456785057335538675859226663828312612834708298665105405690377152640267862782185536540826032462152350964835947005912948740758516720157134141395929349704005262476191413078597043437006627665076740103867228850279046988823164578950524057752191767225321775887893613535605728785715779319245731840016064947209436777791691843697939620242346090247669761536021069127908197579568447727703365802146624624935228861182131853631627578373454651014894518203582434509329916190435466547968057423334836925111327686200558631062431968370356932188621663408620479612904781936021019320123727755001172168532892966015351530449964131303269814520845659932685927061407937295238258541572649941359723782074774688476089755917738357308697145140319199705769038076280926134373210458905906521199493166149735735691880135698659078511176012140591096198216349774167365655806822956520046900126619347468317177357873233815507163737320649040975115320328984474992512335448022902163155400529192344966430616613108265465556884218195065020594231246888089933244496998227318924789949295039855884898488112814380147835214483040669615902252178256732411267436226410228519409729285854500386699131049320135862760335353179067589387157429071666053112867436995596021839710166848057807047980882268483090159319696465520528209147001245703348127676962082202991887573303224421355451551989691818013474282415297576572513951505690014307355778522387497562111623830332629531494754771593310692512860181074588486975136044946486356957919486896095639973204777559385020792700539790337190899902205078833494730867002640924275775442081553696218265253870727335953941122828379648431228072351757682368005269989633043676672286359098405647366135315516617402963103699657184137285993700871660403062522602935844712093857263236541809140730034421686140183685033040392243945309942992125663458356241646947654074550481633195270988007173502769176278683399172348016494315207499791516446157657339642171811206356827304168450323222308524778055904044863758822938022499046427553970437522680344822034044010374506165452519884313888300147184316679963125580226035308955389182703026074469666199977766853062462877009318404848549039415352557564584194619128799678590998951710991425602919368035784020965209715778606927410785740769954225368394581603683154659095243594426682584410734724449829002349292846134314056231633496399010857774733014175910339150362299404999898945125596654841135222457059073793637595558929194151503731654446337349066115035898731048799089014023795081981059036894503579467073588216974990693415937982291922009251597039724629848110674289042597200314142618256764158010531524720309945895510366232370379602817610927817734566094182402784305481780840489682267360724840651916142213752857864066220080960943852636752117943354278657168053312047218897705275279784673780266668683871290318527559762013700438159045010392012969637848747223852036540915580288139856161459354447449615859294224504936919879642681552828256899671872173481511899118703563660156178122955573163839115241742836825506593292282251727838389973701625983068460119688164243690087484151798053214825529136382148562860655054247815613115732517740711310405264371032177126196287169976153852147220378603701087126956556158953150516513617292876577753565235773373119596753676266460307989439391498276943430036955765995225820843677465879482441633453962522480513665136812654007149809474151092873627709099483744368002242507226767592566621658862107510021753200003825847359174710691038451367248754690187675465588945391893028159520929183888268369777863391664041026645709154630133038149014019088201263013795433908699257287160015129183561302625649382578536047166193364422201877677834606269541063296297049971054555754205400534902099707846710879056819317004561464463965514408709845006527007737534675612735383919064128315862580139821600510588302535981485800830051062770753061785103076150697942919511674814201657146597544987914911687552383296333233723876179564192923579687595304935900445257872505091233012687307752250361870318095537257775075743763124424359433449572700894568126890891671739767662765528864544249121552973986903043858794191760305460179511380320212901835365835746020308815487508322093216626059763396603621096912379564586657951532783057006956492790129409088206603155235622791446967853132928115006396942648934323898606416722392803962492063124275620569305613834582773729557974490968781269368439352816131921816882230345486474389775081664850334150200900253598588869952270181428345205240313009360453255988604245514158418470377719711139486797226505473030752807082870211658983843324865712162778168512916752167060466246435744975571891955881503694797408685522410961693416008222512619079241406489228284166002053882249559021595674865775855285206427863107460459042405907307031801880857740397929489151236051996999545398328070820403882730807537629250434391509004353148186693336470285521273288355924869869034074562013460057881803846194305048777790712589702388576539891218674637697150560098665734039612295281490282375981067017086053855514757456042975093529836138559497690336982078753613200698071092923303606804883576167420762956512032019191455807559104055639289573479683556041374198386058692557678153012703277213431436601477878557527078511436857083862985228964441491161010459331537002660918595191003831963118471233917449218265514244218555775469842141786916035303846303776555649616303534485846522316284736434070644588336438115832483243978073212007446456024602454577361636582842194289088447430368165458747354155901138656674468235357810166796817261439892017592553456485510406481613534297350624664635159290783869359418199026976568950911382224206225838473095863810492821733732077225400794098146703338497715800497385978283104317033794339467521913940864791840149364625547407280974679861937988802428299971758004678658066906733067374352571692050046026331572271550582735761675954310178661564218712712558631086498125099366043225480070586755062913119316136293008866255506044803719355947700241982199746412358153290495223514698979038227578833241031475450301433771515470626835857767467711902432983165502687735014046536859643839213570459884214202029704362743067785458504940550580782953644611048576995065540297453507469102352179502638651279916439923049272128024912409857306811644055396917430793178432329286396395456967091683391140148042085494709114083023896491322488028444959447332872964323779073420575571523917566432017554483430440088455309168403116642632759760959593522634672032307296063886152414512641789270823302468176682047589723392578613392733114782124136146437288315750298087734692305631814541148684188864664037897430837059392378654915302274665178442400783548376519153467126694147785814089838972076181270756011031937448986816117548617998956344814392550031633822985712890264719074069962879167042323979004643099104022380148123009520440976245172312113640426686841980642256151910564902314842434893272245665594778377913531504350370062985778539661732419164930350817310534830744468809326700394133854711272566507207841820855260323034529216296293087216600787845407907888907084468213331490436046967946422820605510529423747106709293702197450547427350984578640375764443176294274768578208792408072578502445413332560395150325473667377307240371983454441857605605804601633597497052082182997318593155324312000873774657553941548190468026940292685917088358239724271362576844703220721541686950148433629010381145974727243356498352981257989030052831929842294836691765219037736391073226332766204861077160420788316240701320185806360939472243089265659259444707016391920468975743053534428349530278145160983048317288494225839296861994566025727368973892168592783316468593799579496169034937511692352004732362648762708816789203804546520762174167888195397307451046222557293249811815333600448268417154171138787489377245813210746519969031275318601463415222662810705472245679535453784770926604439951046386732142118486372603709173440564324043412646498626839480222862180282870924727082248946215587998650605034022547214795820827026366160275131912089619149873807262248761004099059123258786734176827755339158748942143409879005808516118599169585884218431598818434579975286443228784832031150160981351177582305618389916393300576269378087162299770896096523423107576875814355350017058586439918896807139378615820629169396289964729423549923966152756005922514474851166166706280365515316797990748446086677913781713526227892953034767447182607260912694775695859147699384378420180123990887431379289294030465349950163669094235333806683864388513440521143227304865632597701150709367975299040380480119561751643584994933444425789558941489277978753438665470875757376735251740021651343865600181334371614191159426391430258317266108052041411458878735588183568143458973696255615705480674514371550160360930483035312340362813806838181760227569902286278400111736045277506775051618271396535692462887527880457821501931049451072105938987910605115330503644427382680769608927164571960161108541274238223349470907058060321069790113582189222917060240205291966280769419540638523417960585659426303304204852596553460919806526593064279701227639923276925591075634719256020394808739112671232363962356431616564677116664982152988829706291608509881674522599830978238049603102745446688220997078364741849536325798792366325449771361720084860165906139747320670059692532223259598988709468396513940251178277482383544835957721929899597118341748834498885290465117428336322165915054723899579542406675912274142951461682967242420500702346156999299357912865158963639283046726948602735808146653639757571776762198300452916480838735993549791090363468766251212410353056638181453217584378304911474498361650412599749003499925323419311093128584986731309870513128052662415466784645219459677566616118188685494965652714440447954699924558170516129935175159171751276296030858157313214745754432133122229825372586940828977426639267802050715305959895551520760665305031637014451859856268740872732706221154071078954313281432544329880022650967431194674231723783657822303773736825535339459120944609154177492598866403818290158706655028918298823484217254676723953185577283407396963925036771450674201394074613419996034601935558522585788742872827235115803324435505888469046489460097448472254782950120262831737637550768783301623465555790353893305690721020854523786437549822833105220959021471947444024270569796780092640708518640890103752129798064467715231355518894318707203033262865138396725105351389859128733970639209666954025593018891052208960696053614829748313637078928588128603681429249473687900328704565901527268351656411895224462961735719365203843970806339189872420103439152511732506850356456917170361203333304302729324805957201014099995769437376844681148721874907048334810563602864960753655359327219876493662556580872733930396752323470335579509246520560865511262862326266559085914855002170064832470656744009135316623384301742905697371507591275827200577043235153111382298022300726783430882540729204299044049526925323068759711024827659908588042685629867657838041543935899360409323496622573238029779215804861939843426026247594640405156553909100532249746794466308106810751160686476536749107225979440940057655534376795475465421254224579714322785827289875061336168787281363387596288950031779752885515832733489615370923546662188024116731202102551597322129992889651618556260576637851350240272872615916097694912290785511700957560457448250381795351033514997228386696887602404998622081259590709293996174270802867226640842007062411819528656256044883699612262146403975829351221260795323814635067150364204907946853226199017826921508812878816812459741679816428174995290384663607348277914309735561012665884066520553678646281750129659823534155132221224234000878508018837305290953446709973763692148200426005945823241346476328632753842629935443038498735542346078129252364088284469199923370410708413026793702682763971251448302929301027690977900866405324778907376678488403986319949639522062850101829679520612971068590418551426269468787867788441576540192995332120371376609258899965156783182900886585798080975729316673275443340370558234953534453212341552795195163995846726123207557926298945671888493609252956720377977167904571456423834474380605498409481009826657557703382164381593207802170381564715060158205172798731601732619237943082922023255190736161076611864098551766530780994544197407150835313375495618530628188574358562705874322081519958430818972100896384094154762820427099932205413875408546030335491242533461892559303447348657145733410218786397613830812346551248828962116689692737536700991403110847053426310069048412496279013832082551098257950224156592292404497787702536384061079835408873791080702181421257334439034890135501374784166019043347563918543839656822842510499360663439635803338838677953565680421134899551769365567149553697739442561874921346729693198073214608244104458090564287049432355357131774605931965699643748149372587580329612889565021251518063967359161080293360659123716104640127504552318104234466041377188775311517213756600292371492685946665459955962356132043629839060080908976379441217071002544583068998748234786740758444632621917833594864336362627034610617337272373960281665302277548429550262648220201648823982221624990964066204663211319995415557183949888967610953529840827893537030487631373879008173051824162994383482216368014644487932959431262928879878965616011712583385379586097611552695882076245457416391074505168862455424400908549731662111528820195744408003974670490958490183421215940189281088362831408757231187020369596439116132312345893752573505949470788683539768595749881904596529336658318437257323204301871624874430029463488221895683863458813927678313534741650700704241839120754097349007488268347078712667910688676161393650787844341092198363624714501664515531637304003743125244615307849981311264926058308688328306262585605602768259161479028369653266672162232440089379611615508817724375958184598735469737916295087822429535597029742193073035726688967865261053514150508763817869655413754693625359510665817409880052464369850540364571369222339969410424138428858124339014890651551343662077428120797657301699671324491554501082777342621638539133292831255980414919069912829792322260464441332872166716157903802460897994310011996778635799093693098049897762036592150057783019669710924446287090104980731046865208836256129876384639435890750145789268968388942678230436374387897836866312600181455663230967973029219823575916340745445313131356605577939614260519485468940340636978895075801892681791871532689968628676715745035160263820311543974591929795605821103103402031547730444343418553151099673554955208717482549109397038098321058324849145153833066739590843647842613878058350875786788493142900435315161023880185254102848735551601393600381324668590360216664813710091654325888476772970817206445129134663043137719067707602577994823448487636074998181783797157295980004145780162225771529887123019621372427049350122933482318548249594978668455759097281699471576279738151609794029952050090709882656988389044302483734337247013784784970767256861395545266532987316726497768596458607972461828137622938124086656809844220273278639301256867942638124526470702156834470383687285186653275226681730059669187382905332890132578098123933418458315753356106442678107914433312429256605557983362729564488649149508996473818134620334014889190993528494402148759978301208295268865672258488176194900452672088307336366327117178893938991646645382351602904801928243573721554686408031424718283609256890165261698217124103593718355144495945591077049631257807519071358976348133952708005885632646636990580221483693927958174197197657513267851998022617565086140792397517152455971243368340099415582035045203254866998193626245901792085509388489091454681867398333936820311350400273288638933073869612935839534092393371104928002957414574314372124114841154746581284792576860904905492737707457033128206680651521429365746132952413648433961273817911774958964983693737132994959741091705437542690456257952323795032482555747200815628422057239055484881181312438616839773900864298703815812840841602259116958077435911027137160514488982790155851249044918320009811593541891323008145441583733230296698899749890029578361733547445845471733537760549531241065789992137401046916497020785717358341119742375376391781627356905684612873373131057995260652184695302890637886681228701350357696736456897200755789843043888278086027778470042397954474202066223245638548879726977633023906940539136126237278049220962987143580253198211710549698175402294130368807701254865935706367104244047594462466829681644122288524507449614874491050549550199241550896720546992631798583920584155013214802802469446679468341489285309516889106159571463150273028523905908205816247404089904391325111177285156048261892447520485447674416471838425173527233592858233328391583495181736516197590612131130790166144895152071970653019103410005127042926844763526140546840600652505189743150854426106239442425659487529435012580033174522488306230263923795967166083187185606351185090484978514405049365433175340903117783642817875211425149461532482230327624436405592779367452396338166868345409262221260780361119388524747654357115088672508868948281162988613687596468048582465797424100997183520632352853145092383789536162797585066130863827288984621651617757570815771627711545938465504208446099362872785112989145820524650358713997984458919138311988785725797959811457475566610060375054074539015571261207020523202962033690562923742895039622909827874627773990267999322718282121106120037114848706925225702992490299414535566548598278275526236558016980949008614784910709750115238860685189565448034960751888587330842247794531101872569587682921923891595287375566828452988296406971408845520953683514929241105863851673356864060499973320628944233959615788542839231227170775711370293392876603686414320300773791666372133147375870020016213662492738547475209962102650037834481198896981866197806364042892124613067071618272645526798261788154850735477406708867563084479397730046673148191504087576751992661420761637349285491531504736923276313684143679844608384646874091212554824409372783157821620589440963035369346264214587037124410499202518849252544530391918139127683258792537489086571553479403522373629711405270226829309101731697284311239129616179143116676151989997503588052298814372119522485735298778824312940014266074278899192306829813569901171975491765065469290732050502185410294632734468267207995156894178640556760852211616591122027279893276236105965010131400029639273499151712404898063061461339491360341987838486911328713145061078458362787879289786259252967290129741274499496080629014678776995054048010146867546127105846294528875674125395261342028017955626947298489595432978881810290431587794443804853506355713308789004204957321996088853903299721047481725587290994352740739043723352366386004143467392485318116055964360976233630948302961535436221071770846371033689770551851918982763517173109384425628242842160232587755078634844087808818885815537505078975878306844404583737654357606106209401901887123335631808033964613148958275257756017736039424472102112639776724126496612439286133170475428681498091057452512218674276642442324440784863169502434258176406914882080721942707797040307132318711853436865344334424434404412089223617720920377945591064619443470903761162192601152378507230620262420643364196381265570017690634874661581884903849910323891627668094795970601511884119300307060071258632549947207411581717669361468071471510038720217888184562786736355499211698358631809188444941915183765160520497168480211868289674568807004288289060337508278157314042124844969873426773305549309397452591526738004659081392800180041341712442880170837578619812798031282195536731643218533190475989119955647497849474577216910594111144861109578727761306007870566663441406266425929970356972143533970544211890987415268093796422588094278440448405894115024884644047875562270508990300514110320654127696804813298724705989090033804298945771875812106637211895201962182630989661235502980958016042217530082768977556677394583787315655406577253313203357616374617282960747086996445273278512077273122275804673795690743784813857264013303769924391052908099866810362812973805213222940926177144348228457012179871818959809183986213450832078599832149929438423266391747719314719400645182957359034451746502709918942057985769029945838896908644076453583346916660221853997586704883188210026016322541594840903109858137722526188737730991515519717280818733150956052760047097820477788126741880705756121063090707722817803819785682283471145186772135112824403575939683670505699896320478228167382824623637956435381704289569546105489693134335464453535569673670279350020108914963958261109816630864464024746473160989437305690716083501282393137412708375378504092156601051174282922268965555770068782872527164971825830219704575205332706253111558414271014890943911342452006736070869722405883883594778861881231681711222267201155042195574426490827462612588455029041053651845533882737102714011235112931640446433570928162217281052343575337846501227559945999135115309344263022645064306337247920783347146357970015112771661049942090354677230550823703664615812460869130291529512988720294919004073876673734317745009164090977309172650177048461581482878504453974698163149781318195689285935119989216419404674512740911790040507554301897654858806667681451473897330995543868415252660403275562018961786294348374918780268838803845737363445961116316533895534522259495822449531289524796808303199568885140375797456750232311135139604509998607027174367314006457364534630460747934076465846985594898667119562287787337749022698336386423922247719692374608348870702529553894396509009295937110496251064259545357589722069208097696604099486030714151823684151441286913608683804320948343133527444387005396401630101212159853727046679359840145887309811247927121799623503892848215872516932338787573104534029717481700977030240585104846339885498686430390429198140331509895882037205601272920811064132901644355271289368750150150666688543825892170768118267432181107820559157611981897357830603980526292484882959313166785453342306939374901220332854997215733415582430655247214684614129106239871550352864733912043473555268570693277315124306639877948007131144241162496657693334735947471856895003942280988690001600324740008764404009051036404895940760369213284011838969661032388461444393156924060515347425448386349479901816319620173307676734996562349758772708112604913408082830811943472822711262470129511265337609794206828456946948631777435754285158830105158349361212536123365785530221751660270644911845778851581482553117255008800750714887633721281206949005653730174323873177659036495151974208616650412582031899284115688416645107905028759013778123114082085702021866472839647843038452811204547768229669312750152121360510144697539874879546789515590486873543873019823656251094113589317040907530012765043088341066814113242945362671324015456748941068633063488952140587210928168171633902379102945099307544236272857923043835796879912296350197897040695278464637657015382611351159748358007289397184494065853992358065544497696007563828667644972150414323773734269275875942096268533551526496725851855001525410604814924504336437178413858958892650474169674268677688772716139210089643019871398272068148196571304000545851824844020935081127178873589209914398549251608821914140836920286534553701703713559461239332528548183652262916446851207929855046910237316092092371383816655203911275532221566028460651032872574704393980869728356746433049517976634595309479333168154601320941060234536288111925789689727818431087960791547406884938231419022684449926675371555749645888294164511528789191184376112436220329725284211195386580008140083883418427914707980138239994326742393774812094973268070984820696338004666416513763747049788770635236070561537906818583045644521339770325722004985847089047195797821395001069213163121833299094597668168641705694394697965759916560171975068045982144894835666999238573861918207926876287421176849361795859355312539498019026406770320210989344365414353574714231360137408747988268595945783234481583186083901202645998188050283693160138347933119204459336114832626997910586687645017830778719060773061660192063126978898162360087683695920899984081874592209178172108784324855977716139259662551058403667527034263248645684872145694663482594586669050663698714562066148471494431183722489726243662182378343799453727332087591499749881722114624137814736606013561615874564921238426229838106500316024155786264147827511328199167278225611938726038734312235772979892871667617981726953198586377954252413808479835476105832294001670832211227811740829623056665412702863592575781253939906884758694326542504225431206936003743554190589637532191250105518488142528880083328474864910214055052414271976945487420808921356775030806505692667017989734189761450954497504414833148575269237015230609868342950764834961874205303851187872155211050895554886692189252460564822529716469658610922138971208189382112401600886580258642221740257043438748967284359929180947638355069743753369173060892738688952377673923059568105707320153148726318209589416331315370394282006825391119614652238294636513994503378893824886580113329347815395303692647486042151795646367931044034011079788907803121458908615983990963573951902230089150019039096936600520416464351119011685796164531255788904874105446813560403828473383060273256025015887052034046662664958173779559064946756863659038024776701545390183881000395096453710289849655828862170013800849668025109673826591374265755518966189245468824693277766321901747572565176709779625339591029644543875622426436538996189342903017953240123114802721252578831557618746773076535521423629968944285734236623919704222062097322249407141613631173615418885568217914739326996023634511714556727306644959100753621218224920219037821323223967930785163819223869865500953871744825280072947332000218965014611541912167241849838343841611632045402076360706218972506281193571083568138587259182539083187384909686766152263238878715765006655941983531101988952517713363054613463617534927061866001250102667180053635466606833214461614468409225142078875795424983523220169042595832544631647330477627077401880733903346811416961959110278896460426509242999180604444511184425503710335952194813874635663338237252129830143271840096711821164537012451329249194642925311029107841483494060093028925352417965768559733629457031061612013013645470447522421549498046389165922940965770743632489842227976937952043387384075333531060169848904659923570519324123917365695287183422357737650845854282709260207177690730401244268683610280196976856454868722567591040653877831199115294685968463488032659427577513100836906562147319018739863862433762981094975027833214933202331290328904372226004803585249534591044802584952847515965082670033675344228092874433458794196210363410014854546064785376883603010042159547032426918045521387143617945603991210955925061425669213487381004980654353647295725412041109040196805802189112105143103576400212952890558674065189149327775089084944320393681433495462096105143584150699457411682494611807952023804866573753964863502770057033314101872723227449512393400415538564931706528767700923270129325902441851375444426743048055845039065454256699736536059349865984108106554295103144022540376713035781288458629522144650478656229722189088796647587249458403758796949147747922242483103363252916957251714603958935035373904667494894040045144027840686910091345447051983461307131202979952924701528799443053373137442330753064985338322797406955376620117463802835847787206722885207014922885548104448715002501076500767563051916134852487597627353435446160415462768372080523812017269371585927458053120713555410796517359498922538487181197720766527053447604499538004680364557034273037996271334303011365756782707962396477256765672834087893689153912813337889340065938257044374428292515796584454964927940487567906858443623476855534291770382164154596404717044733830110559264329162557572553919557042399914105249385418629092267238406451928563813604824302262174921622664516704353279405061162685556555079986918505261589907734777558551808461956208919432973793982565873320834809768756263713422176813164380117434675176471233749287972546805184335227345998565491861335960609262377140130640782831156347050792286922548210428916489007713494942006229125734206266803829402051014786554803171743850515081050567487258636538485955729173344015765010403034118170298923630575399207182709328594931886278661458753637393569871135531696506223726535389994456510088469515720688199097298677283796275246229798017827033986271115878468513251683350187976186808471577146057998417656627395091901517422906325534748789895105608202457309352127649699426032437679889888027845386372192479942019054898330827850469337189999794501390857900504039355410161569406024074335490543331574740437119011522894984729113728138441363411174643256416615223561219588212997607024809777515396258484414795726206443822641225380438981397204755701995955593987833834279746786023449715576713094839576484243960110193680182304294816579392391440699209677627774877269178487922103944469501181282583161282178616554373857935892489158338701932902400008868695724520371624071238414921278798251596133337254815538638115738861290412781923203991631039301244446997164494076993968275937015714170733342086782609724854357566731635833096403316825923450584233221166435810580154373994276823750530413784680351983034762106183121674501977698460819761530902826895277014387518398685619795854113169438104613806332532404467492910547244513161421275663819493625295334183003556588309124172561615341628145959305598209554598370784849214042585981910693049781196511466504533797932667315356607094318297524483867473420666578955624156894775203229765279998044203837593073044296056892160204269325756953727710100122564608753983741048202091229649741578782387425789196954808065544167577361651710497742808016501682367051609528656790061976032138351014023591216934091975892773232319892123043757437339272041479559759272070608706375200369386443272659223563488323787212336612921027788944154721330015031742079305652664127638744283083910439199895777360125464385913693831202600443734311471564984448713878850266932743349377357583035958440919091227297954263585201153495083031787964766848230419240171678255140654650456185915463984637753989054634236965577858178897951200253974065543746193357745595317970988659015336137930076512945312465481871758467183608410326533984935443318160456237759458276776038397209780608367913422724296667840096167539572056858775255475417084166434858628568127915437999692563938423639083306529340893862671663148918799987505654862012722512348732204480679202272414959590348547933756888360792076010239570931177184146329088113105879254341464517326991116625034303018763297550981683994107736416941253967975653388855099639982936171793771352051476835077624907498642262496263353744667018903037320671373493954127974385111272193145576824719931108838852340467668208858227497448807702152859106783494208984608097444510194287523889962136940880731590078181445827785675089538289701528859373661678238694908507807471758864623200960557904718475600801513498769730140572628579364149080473839489553432123956699971034156997981687595640021734836807129312862061528481580543006078332359620514522139758162684326162518251109877789965754772468281543441279046121524992721636284748194451116408847326923504438822862107725268018672405114424675232752349542646227989134580367249180808553543241432374262904893841138978723550185558956981088777294720155657723374959608507809333641610077974572620857938387828481222665078908709657469136204161980847270427934376138187330238738111335448333155964351293041647045684491043593521895012412319305847047832880489462649667893804562210154369409358360803287142023853093452022975724401219233325264488763938449668948288276346231828120687283159494091354264993257771479328839202297924000137039051813036620732664305053257319234174040253107528340855114361993802225006450033776014129431752807128403802703514712285709776943490893103473931624353545187158155797442738562301864615765733924366366771264565018850312139759446616338034587617828648074918906850139941045278790685245343201245365595514174189649589574709145772354917873139249260026272387381660998856208019130597079034561796013591426011095989759895982942506286096322615503538107067392226811678552852371495438679462867663689577957334810915268887607858403826983626469862342276363825994090253282335788532000171820570792442638979808217598203647131570761006884872144009261861753965691398778758723258106416487697304959325465665526633378774217077888949412832349560030842890129918522602966407539709986970579484694501159570235676004318098658908174052476653668419352035259712631997754247118634951720700506283865038951099665169831864443641287941582772717939912561259081449331851411883890502317637522473815237074578605354188453210486799491808545002145440464595075780171726136972502860548763535812833012814300420450174243676934599430820357695565328696664373664335359840478600499479424210564693585028815220310889470826912977133381856490324763097934992215433596993925490670327549305946539872007857840269135858279712806958726655386801989968462900125241423210034450292957667828988049391329887641659994201711288330103137398347278185313908837954072814448417519339107194004429600518372123888344492253750660823162995078128165271794468314741610363887168025141795821866819887318059152305122203935826010977317230259598782694873111698390358111752372634512750498844495545375475266641479796949778401107872116491811386396079475553957778004816364004272542712386479334843860791971552993978113753432406079246209346143184261867892708510620280237060175401727634605427055428534021825014802743739023931361491193283263669499192094191667441438024443029265404556089427143846899079180374255029886798712478476178961530675634072865260197935431348571114713654946713712750857421747093926353615627084486331457702151904738904101804093362320328783900752889376036790155196942651671468985065875440904513763596538467842106153795305533636985729014876236363218514827871418577646544531270861250668255494058538049635990901513937925574159783286033171542061605873918125465409209039260913356481378453771965158147978127596494120761449718535320887271000888576238982611323789393686420382300336363067100960202801528833669697050442443133506318284839383070737799354045102028443817038095346433664200204398325513649460847116621084059562632427335034704386108954560518881835073622395059377508871938683721262532974328299341778223774308549254076300288781786521334812587064133214597923587411018445225727241232559383601222141016410935155797323824368928373623060885487953333130537780201772718247923153134548806181695352839703896146039224425622421169595393248018794929139360611250274278976671961353193690982206271440683740027688061110778469326582837286117295371841742821104118902386346079143833775671179503662423627745106352916393463485744938958529822777724172611261917559792780464393903566426379398352941545948931788661428540036178582758789524327519348803201839345598174938492623709285816888333674571841820637831993337234293794381769357135635281353524133086485531200585024060803848574762341465347179175665671819174034989667265006033466363711381050971240163904063109877431823253231780286911713821717274431653052661184615177250104370211620956777281869259624550515840416919646173949074319841186207178956163079641907753050329579999521514784178687042296648315647983638878890962167945689506514358877524269683178344749516633938594189436729530338207071219099251389883943272636126036974942951384185127274060647642531461509299111925997435563486297155760209780257643090847221124944506168272044088259964936640759522191710227969719453507195422896623474648236301052238692518743111446835181798564358847891195663162487307751149022566366426068451329999029735415664796700297170842985579653472983537098792782367061762487993727712268730886984218851908346560260300644532188047728924305041850381504329336227857802535761789557125151072847551763436343669239734961963839112697050091759511968571660986697709185085906698653759011488303942588459439958571618559109669205045389733013016574420005349178905720507918851065062970789523082679591545269961538805396876397487154627002139833865024992112703158238621677467095311079243763529860238493915485308850195320875948672646689783406025903126305422383505501696941299899154730328119215729003489387285334945961962133365509598558162893766855073726721991354171178186154424311910446788879461733111316919237436672284740507125132394520324982722434402985477909849371096795681186974514949257150086521195899203470393460484291460958758882095889751997432733988758227612897219370028835461358999493952258750232611002992073390942725348637658735057409146331504965126929285491968548583300736128535752796976460801173319520665464614395481593300673200758664290646212081308346397457106621000336978475089025613573703976795730919790799487058172599027967895019235240694479314625167433197315290543352658968382324710642663808946141493554908513313418604643302029884720945055972751969375448210940647219891186140890214739213011409688787964784301773592206078540763697421089151024886526847741050430429018819434431279383678004500948249857608923970810614239429241223149030398262611228506747118834339066774285806741430121032732070777124362338431934215736663502970525724592722308380235357214292788647881749024880548538330997554404348303510871667279323774411057356028709365301544808499870831729646711233738899567278819536929162646562745126341183256623960641917224426078550025935657931065793584627003353248684985279051837451607408414742674835622794109218249337267399004930817640123087358857493958939480375882757534366199659018195939993676204527878648697033590323457952174152789357418099214400585939878251469927439236642456013448704609188060946011799272313913716489691238143826747339306803454813414086646507625885545955822647667846730331919952610667695893196561342916187315288944120460012824639795348971177165610335700668012776629596821689660895473652194482644153436531821452085113341177949136741524319342060038480060438825270261244604255463646051788399399994006215317499404743811231003080106115433186854281227945266421739877923510118028216321388304441777821979067029028699709338062273326056845918562484221440952279382661178117967928081004345012736523549544425505886337195346203492272431388452119690510377846532330252874669622318628314174473882970185196162936290071545883194433896370392346312527705342831550273739952103753005236878343589307855264838297147671998317204868653001584533950849093785474502300616225935613908456999745807307606152180261493130521447111187490286527286528753170456442238936453513787428660431068289171485376637699241327604195352818540137536584429739225686902954863372886056614855866603413534216425743618457369067248194835792034025470933549998546210013451206215548917107545109116772494452960414158876509096972176027121393017936211768402455947544541518644374181766386283479091428172341211822686633213583087128090273728123810791878539536780694914240910078119827904837291213463319119722155116512003854416436606827590211929036248049093147916400396851310643633797895744050880239994905412979586473907471647165315013161995749014920380136558345390142790912437440161829919324584353108217277161840031157317461819112071886963575731177069927665361753813154441769109222528503254753119108000523319346934064502479744069432655119391420209143298982401073657149678750005607394243148257420642269860018989956323928798876860680811595795539722854232202155383193614714717102911691231660772596257221803097528109375361152460495802871157425414510921298754503992512202517809028796826353686021997693620221036567621563069041254158426335909757361749828660565509155702703582999595287210324699743016482942380400896694935002815639341583451632753996897666326390414074515306554438149567535022318955661896227572355514106181926731888492166728971160686587319952532201229982400350888408332016953733227094101482654280085858430725684879405987577859000083413625406301438057924660624940907600441796316591293035269752894821741914232350151668281254326884019647550799901836375932275090050357679908024775232369282450013575247418297806004302021531197399871053781856965014946870687919842477862521739319277314834431875949944613564404375622096357821134109412761383222125830652911553796138487578379918097916896868221118699764499428869251244404283107925036445494594425480447705207462825283250793091671425645422580217159369064380168983854451972764931820354083206651704830106468635071736812753254259979979485904740500646779786125181548304362084034047255995350030354443448851001960314276366402741371154431621161333733735470401167442062648651535625430442958267119010948099624976216091198908256761676147476016540684979796533099136634825636592262460427659653606905520264017180727649818402994177505446798103875963145359744781404239511761602226070265514988354898721880644128449177120629559185076984513423410588905954313240176101136191344091975330858685992866918590628847843657715838294165381441455318978930708456967349458061565420771267646744045636840305879592921925094880838570916059167031569375657410834247436480177951124862183742963062750373827393124085327235920560998923829778524707325290773514860032194308732165926278781904123631600748698078476687721039589031907436038451937445925873849593183560584018325317393135257579610608039159792724570154378714391258049500789163508646176974674905390546561740320861321575795493107870589632716879167682834722602829366508861240262065449835975393949705881201452120124815057806682557119232180171701946784086080185494790484873460891999857351231834472604792415170973469453105803252189531127709191507059408785077308575516947977955246851325905875767203345567417768396096836098331521117925132198593593148266521391952851918931667135208204586204861173530614552571712491018467369916414996111263949073721640374990858395679791832625807027796677076925990041079690596289377987030763171785580543543468379664774083059135279069036075250993419468233082262082303147318525969049221145663355647677374060216485973408477800423809872812182570408173953579231903340739787583004484075886012243929721589518095272476681064654547041303917443288936904846906733819793783515691280099926047831573695341395902378808506471004971113935962813168086147187061683199059357926685270680192778274204708073797259319705250010700683996061659346036076523473700314534598614492753157339345138454962874511367413473978777591458190066625987226505597844646873042784109352736554432328697699976835454233392607735029294355693372077596072558519490215041959777055961722713475013862730716234250630259629412014455832702086498133466780617383281299299824253237610590672967660119151864291807610305683347680307637709016801145301381307763744734820636282584448101880402346565516872799143227582990855546264911737501961167047916937407113495755006809850756919134676089906959312178987615019634654098642243157099920708066542918752875919151720063172726903111994398132322671194160540820478317515006112559176296196227200548849810712241266495253748064946848427763798354389150575752291680992506793085331997689690378303253221543981959722138380889332204084889698986854215784470478672089948191405016253646743733964602175072889371283953794748217103103647661785603838413381618027858834885607598312724665888949984271897032801509074964536670276988940223847357197577580806817379379578900429855515244468019869751878364099572542985015631316536218234523440798078298444889896793959720189899696212737911227102712849992007142125768354435728997654162682409656135913582550346128156696271022480796918632615797880191836781450683804340177407476538945834058372470943733315731923535797186864898070277224403785694595282027789047740370428945963871545938883782083827332799157140771341865416034174140141867254748203476345467662603330827731485969399646499768629829702838127821143993778535940078330120098909767685315668974541946076731533495732495514545275992617345341081863262640084149634138799256566652593647981640124827521583659137337409433253745719087555697071021544575032448547195043823213556817614866582329014996743265656882085541807659507488187904724676726023979738930361821662714864178823420238259276757139429378205526108046721360658983700245790002675875238159037747224843747248034160959435081604015088804344922112392930581386616061483371451915490949348829989065746024702993197385554279073002196139943688742012058631464092081842349327565044845011621058991504474067461221308710954019793947372529411422437281443873993673493460301685773178724177888376574177179950730970059499059953832401697850132143326821720537932120640374124150563566288702374393628027761717230224764509937923432667627895373314453087370647630521630128744411437067571818345613070064288198365579373643095008606851126546141556755140927800556504473869922293579726631415685953897112257917557930755794534699066281395066331072796039085831237240111891925411228295513743292082732879831584289428893049429394012490787267922962491012185730575571100721109096397635069782630574497793860515083373339082172883780353610650271772762847835861104300274058966893327178678038486665719063445581853888528677830348060629150350728887381170277511134174771565174761045319101194280842633649228539736613103179164480420711019661163880258466655209632423576162089461644287608952547363515863884699989775458062797695683779594886617690946151627788269127093603395776619792334307418240246794773359466359298649788044917749339500960250765329319154873052421027568695612853810728086342441800726367462152479471159475112186964254929584291229080761826542392462726491125536950343108571648448049981119492142314002705875017766115687339894823714856794383791322657857922054345604196308080808474877342056125403751495104371836884759709550824117482348449898910473734233512483509196492035545685548780386799383169479048635401440050477390772505435564464151425231850351659624292995868131870078298439222025517587669396259060891466333196387316228372087858222774941686546171381726510081917682251039632842897132876861505124428067969763823385455826105628213307242662226305862009609891040131727288596453309042353994663185566223816526191548503976028621567990794221519930139584372898839645016215758975821664354563453878403674928663779633676550783640238040266776664480203602295732380269508736021092111358958191592885569184289972839058185367589385167264386168167399147993647491319872749525811762902674634196662735992374227942085839143553764976628262303309210721872013653547730144936083239164410517621177757316838706654816070481164258606399915124577594002291615470254257110715965101357795986670350801046406145526055752640034207102447023126078604405398919295195831585669234738376330566720406291046726625545196141918226064917072428651555075883156255698133300493772009518212322025026793819029743564660195330613178245361234161528436582535051956432853576648073244838214310947362081865581696951142895096217073792961235557806732126069121647618819786015896446595821939845216265779770233959024256739812488485155939245381114836591733797633229232669597052945421688028081578364962847040123234560112382257139322520536781945168278394426178653129403692391620997646551178682597049497141291565424515366484852141326237946493184691361376683208751060011007132777181498481873761349082070798180180761553144390201755963131287970052686854720706958737273203493201188572453360944531948768155145392707198693346377291608092479177700293253773391104688278344687182436536497804332291348675004910614817986433722214139027757879161569867048362934003746179513967707780319816222157121991592328392026898456534421803548110758517067179621105545796278021593169326443640554069777763423851246427924908651479124162802661617991712795153551697860800882698787623662886861525786528943394453402577422433007631379897821843114351649682034964926228808747185928076272544577419179861198022824300748452077277204033141749096888235563470147871873256927641442508149951660534872586921095008796731392031300330618438270963402423226524370105966966983985046966608135529917980859787260717620464632955364774809081614336333478972824575495460982890524686872198131876185683800958334523626778339134262230517370819253880585791051454192079439288075174871931005955218388575995572657791755900538914303422273824404688996680131281087721085298278010651567489945556538345418052274132902022725912599823580239037214160597017731743232064148342832521214847286225201899208746917908015803003073354402554048733259541411843635288066633674654351933671598569701355833012360253775931225289297547388379998461381240871254364381351979859157477101756161066124525425537826575680099308631295720708944595736267165651799184858406180212193179894562080331043318625865774101751041219784196189051944527351232217437321477831924966767905493249283899906280332406008055496211282635680665828165274808259627467981564113108321003698565335278687500660786080922121587084955427411319616652607988072169366995277721581298317209743952010247257321034985532041925581717189624146448160918397574815104676257016384237473899006224687413022968352972403844597388649160968691679280531578887970585336214216858006806708201901337711164604050449141165616179966024833692896783790078052650595342250819696076926546512521005575516264484343588870862695895999145036248772749066298347794887736506073005742061338238774345860101685576373760678432889825321826592149750993442434533855171507941287012015136156664227393503677361260121705399332974697018885946656546428664139546488842964170921735172602649202709556516146686766210594611051740678323952942967720357811555477548103238093480368881144835253539592675493419586514673876423103735841585345023062424619862840597453285582269021310453115440088930819478472989436700981880434677803723934994741905040494482674255771315985438230304049384093826757887398164780276018647449087619877553335285495984354894653961641940425465508243313127673825136587214885606248633772003058449646269821548401325672381758094326606841322523939919760304223520693777715073626068404422030428902790236086677844392005022716235010936055345249333241481659665091807189140800770065813702906304079368137517929334418152979761219078559644445289810759813795203963629782850514674418033860515384782427580983190026682684930644000950164242554230964645810062599925390443235071874842901975229313507889698116473447593977769955867616559854925861310107146192854091947292551542337239228208346673900095184692899563593604191966043699934872341570026682612387393038691540554668594017381433448543035597433681178889015770544872522479361327951499930165683937089444971885403450386384845398014572094262984169887023006739179478723146824551644618509748067474440983607715356940222362864126274580862776066138015181941907578587539777309924588304554421329976979665730687585088929340913205596827983567015025061304183240560388537472854222971820360837550204847998697182705560142750839079597020759432583729500535007104201994482637652112049563897751553958529696325278872273075545535437804493752714360753322755697299204458165623160877695551874252206452474534824982668030144478488006385866957097383476465778964386770102836351835640325591573262238721243488457969593619342223436828244319172186561880682166254096839339469057268732276770180932499619221926697862954272216414461343099504456531479997533348109598947836751131785421074044669627028580190667597167827224895052928577552673549364323280721402401994303557774630188245694320157949839604592996484333624712188409950744394835144127926598891189563937356253467989488997435620768791606346470658914472664573259614912167107352466515158153743156773741042771848284239878420879893357727941483551129935564659539191391895717650878335047964850433943733741826204210645709598602830116586175275201765497129202461005075964433429047251321113773087514729368607448163181184633993773163950513520726752203621575813728265743937886400381438144167445503023345346138452275837100581864506650840195784377276742582926383146918296402822699875277911462617909249548300519699466589872059989625248394447209084784983195911666022364104463554031618288034439372655587593581226745755996887932430910878509687221686847484941840638403291281669975003156806957032799040152845085255307264070644220183924851786164985608323806114253770228493401413487762809216008251340519451553822323689660978289379428905913009002589661091220106343405443550928896080644203238078596334243480696959328270440472541619868205875319481667747146806893615144963294892410624955172886421489417284735472126383017396484727606183071935900625502169256253588834577164664970186642610957086142780970824454583239821700123765925967247584166370375737349885918270881464198312844631931178745751152587392525837258858966803718998897536482611186010933587587289651468631922928571357938192720011105150779863487007709414701721059769934728266176301749206796469012512882844333298061923033013278398166596225677500241620550788296065475610602258838258429778363928537655383356040789285586725703757047639602806565183983904397133661242844130864888620487526828983261954593249347551452671654791696027797683779469185530485865703259263149186272475295056957673330608239512696520832743576704773049067081423355462859940293887052809065276283921522005597467757357028857476784491431446390702072659618747960185511293986981890502477674030665821183363752367376880641922543068497296302631280004267806874911349442563143122065022866760363937704953735628548389559302867547665179658337092274410257691667880888723954234336285004989070246237350803026652805651871733017381547145677370915287816541409254524618638908106421981781996983186971479661223051435593198638255507008185361541633323366091066347358806651585933346660178679080523860497865696124826689713845968859641581402242528633890747830084223043713934529980368211912759146973087661783774996581114787220652086278985845542733439817550688050581871294399982401305606215752678509114736849682655177369242343743194359299032713654170468403897537175958178343499640049254879718180288927460035600307638204110238665921268757144830580795180577375383275339269518594104860695324786399721382446421837172437699858142053572402939630221288044758584833631854510749883041961653139265912634371499809957833711983869900486224131034359877697807413466183028157653602384728845363386164940225171793437943359124453129835865833652072527410595368858391345398573160040751372730610852273722033439841634487589754303605982034025574266388611567092338714148105060895237726262455432130834158305111989820781980194775791446148525563989228358298993501287880075661166726813711214475283048060608116281715717059729977826313254517856139369094959955720794312066221146222256734901001563956449406456947199223487735756970450243870820186045873539790458888118106028531063380500201761421875835252292710707589986483776123519034879593701644861608740464944305249585089206954117385320148253614797074693418921410761540476884727325319573214823779204553954644986542874696844306639634213497838506822438921426308706398577429081739295012862844878595481720897694822138273317911570309194471885832397724818016970998067662951291796453439326569529533909111874442269366598522856701357825178473541495858345281724884730303144816914389866266995462850997965039495345480899027502652546192925267680512490744725447491099649125647104042903882930952108055670844527919604275936308155192310772642122485008919789002499839651756396938168000211519601223747238879266043883853769271186213094705562394902991382222477075148603111074434258451181027082435021031786155628454100121367595856498315196362975642560890856579687176136209056384873980743877090607389889100231239499046914259150934062924954500738760553926701348352152330235882008802023211163928931928961094680634165552913004974805903171529852495846877430955132368251223146057004569508828713235314468798059236198090535595640571646519941464184589140957427226927685738778631405176732316123402489213516936832676861352015407999504619927519195884766074424082343265356814357513274374776198643377892217563729242857218124113069859401310198949262572338081530944181795288228414827272412402759957966629669870624439719835330795441805461137932174310988491047953004996652660031348017893031677467014897639878281323515109080460886411003755159928096553881778640591051612882907201040040787280728140558755210218685258347360415828641599296932612570471574009135896224845542101600524268600356572947429311045711005272067931104656589763784913640186439209872255644279797366796378540119791975192448601303785274857220321240617751044573516812565512119464363746072439827848330699085154582976461931651805898041254174671826468291436922341119526237603221501067593874860856192627269306101691392900660611503598039255635645666374356577227044725858788236789509142489195307648599898136112384845883937709243811450963147428865911623849564560586648375018805929572926735786962314859485118714130114400723880975074509095034256731922049806726601165689293311698736967883198504598453114028365810362539066717751268208133633913482767227079004372405854136596147013405949160750676572888668331163559851819424018102072089680494385639734237204454216997739415178869460006371099759464193584606211170841385154889758989620392707639513603767697250473418290706483358945194301744282472132859888259754071292644257205299490608235215204788871905390567537535242188219499433381328374740649824389437544356562288901289052995252212241991593074199086660471320989332137089461163078476303074539287764997730084246928626680199576888883232772783853992082839101638972397654307966015251664320730125025789271039926210720090448442324005232293302900581251740627743623466262807173890641630708308093925178131068299213626280863321088847871214703844974569732101424464118789143467365195106262440205518685836489513930876859169580605583245811146869418890784892410401433633643845760817740370317458119710910847461527030485026465260447514967092159646300138894244052045135096033474961956219465252734370903296984000446499697745757977875074154159359063142271723147369875568889797979753180536196519907153009340855890324654773483722657555278267339092246337195914049920578087941348734299586057270844389572425858277716628217508061963316157411623127569603764163802134388091567783749617299141433024256140060761931812407112995668393626289431362195627179542743148915514055860452044711687934468977656500463039555843197024127886070515853032102857870855892945499512544788727397379454143587879297027998016686023852055311660117436312249024151402956462656281377256227730122111295280352456984399525915661206657963469917725053480877473876625881101475109445962265959625881923245972637922018262264974742525011888069630884698243657998552552830755850285194094524986644243166398411976533525900001231162347251054160802282326469680324385520729054898720097842566092363655491246081649818540702168521741791404330665664833295612542408372058079980116318678154859469826995154806949649308902114237381496867989040712591378604587518214480898057436161748178861364902118407138027410836628995661732027030520271160151445663161371539733495600163009050102661694571222480875700685819931869073299755757888369737132786793192228185339581589930823559921109058463256979476246220860469450078454286358712770067266563919111970444000602300779570451032979773856582097210071946773399641367547005547473832172323400348846414129382587741741735264476385136510603040238888184799833274629746461883099271194140488285711832550194628371038903821870171114776231446712378041547078974043891124890208809359317055815692443543821782768178090960424038279594061560800042480180871926272762665987225159867728385655466331596888252846815922409251941689766329084955287020460810792629874025371713447961577917093454262357624309129810074655861168497369298800947747549218336179737569591489649733384264171795824253757316460280317557534304324710703947154406823902789573796905900285269644559367600078627758681176625783792869584415491694427578886418824863814703817231884700587707792312572121036528218758002191056773366495605464525771047256086030978348953946027022051258322442361103479673814444799982974001202375002444196463860945393244000279638294503581661959801652368406696547677996032389886786433917812231850086126003154379998917178914224065290601904103600196687468003161147847649655147474977660600263647660077835630569649223931817173583832023910538095437577983011560873755803780608664966384333601537683529372254097967970099648136918005798677115770170100748610571173867267721446584801787298468126742533508457609668841029547250208597395980647203142359144766258360963826629057341932954436100937275705890541469355631857633682262542847357707196675005149808532931514484641315217298354834049864119068186931170877593881345611314389289127976256025896678211959851243943826969404462167600099236289499368002988151504502365772958235892941862862350705400025662284481423581224075619848764334337009037271305710759088708074974179464809763479668857228505756183242975237686192168945287571695180495931932752562670672285118933848925561588603305314956169160838174303452492240388555480486075672654471344884638170055941697519027742913797471862322832822377792967333756299533216305621861195586299191034625287287754531990655117825688643946934541404923683043938197885465084012719553386580487675077336881188743363001217849367106416278982406097150007219576547618147317221309190845162771561963772358999770610038223651124251231749243859047480272652373502931895352225718217390193462712527963992741833038726539842930693841682651444241873750988888177859927202539252499853745376166556228892139794665009588483639706374007469154572176567942499766385591129530152227124499318403530720904353068948212713067371509029457531146040959482932129670026494125835136036908101348470289864233461977136882010980377065989017391106892020433049814525057967780041002799124118249811911546011096009025304226019525172813852310262255730876727225959299818267885319402016166013170884848881665598119930235654299865475831230681454571882969611684824603327567239936443099104788226703924701376593841032605945059359706830117768251017555358965250558193938628513787647966412539413949800092905139458080316758640876029105832324290722615561229943140778571256241344911493974500659023960861158378724263887293480705202111374173662614788265482891567583149957847893808565274973320848898813266477954707133617543020395287322998327748048966045237697572678128367429646621742802845346211737490846726783213710224392662305935936584786268836253418904059141176414419160664612043646693039083638409006481523278846732179575559124563611687265724526294999490365400152564771429922265615593889520030607445414617894155234019314721573165410417950012702496132614210163283219626955253650358952256081128171933749957984744808024637223017007938166846735784923202842708590893178066276527881192155905478008457139155644291708634819738647855971976132043944330288267081125098153159757004009322668544877232917865295634950158248561623035819024944032384679010026398048044260692857611777393681883812596883429106139484686242544380623158556308507421497082700367064615723379830026108217509072161559255641271359786803626573340286613763149950332144269960174429798563635834766490895755179048786143862603003594479344514311731874550909843330617580219466037270635400712990776399108341415844250405318010330344062137096966896009140391491197572473221343019290763764381185796740122642386795662032998255178623456262636716516396759960548240635518556854593884759060219950298919333199818154510734113887139680675586036514950659111776083853267047696464269084091637110737987050591085170507988362405402347281013476804876347873679923461125537798266181240286944565193051329366643327474102586559816381298129512808231175142325065675271902706444366059986890766840326598100997071085922618492048391395629687970330886695036298474421792337760279069710198142186798084558589755391706074358303486563863663318974655246325587342477239811724296200976458922147123464483170430275082816665025461662794949099749316615773452320601291665743700344683566649226134700263087670056779119099484332252349294460615460213457683992340402054069733301850174107933735952775855529754166113769568395628373301898676075251633463322266293177755273699553350917705000801180997350030897001052274677079992776084166978922572456272998063844367741750801593831215315086044233374565042082508691336338485845265360477184466032365109243235128822829024434716763293279448450180298012221246583914563137061322447811570471232518951829166945281252403573652697834328590490921734544686035145021888256884769351384041362306663374959572409846869569534148943716666338920863771855829440903704840118110815781347737537520432847676745501557662922645455431745870366751351665142337818175226436183248460313880573357539783188688280232255484324760616008115007707690494679561703643741656450088819017961389705710568501831846112342371131933402427825092426775360648120740258875459505134024268019456964644111061043124492712658990287026106271400526276916475194251564288695393911334515146865777369090904922900453348803458567613905824259504237302642881862059164365712622134645864810568992628748347566719418893799719703603995256860663103070514578862715922746301988138393617649397647935933373620238562730940214477737580589107750336889326217407273878313936277229278491858854704320117831207002917667680651188228032834468882989614632993080425482853242843337171841274253853248026787580383356722591992366313628611462829500096928525556894069507267825321455824794221827575356021803394698634836908123574299652914275663831203246135292459607330933603592258761067974812145524259704768591870625646509331652759844469589996920613426220352532127244735753373784230701817596586407098395915151491925008947607746028114483545270612833107834610534509155651330354799739977722111818086750368515074804763673142323789322218443117231695801776722788917794930859592652524417584489042036063819547977007051461310872374049916125504830236410915387130845247242507925781835288842430786773026338978236261225662094487731138082134706211120062539574399475878483052110578179618556085325055428820969064530910773265730866058167154065904762441166786098020412291971987158336044722037285540117873483557095966470725445954793032093977126660294256839611173635300068884145890553995646829019206007491566481729394757345697207486996073752451473280897451767414834227965182855049997967377988371932467647019716676680541526150615061704903569981943457776070331448742486210961524629223192702816040241889419653752445503467065830526870585964825583937931243387581876653790687225978097165905662792683336922761872993608741539354344231714191009182843963566868361398649571016884343698424921093037305898124396888739769495396406444588926381535554894207888916119663415865716046167231661106390830758880032827018624164898158522244716492647091665054350963609162055308059075522614046912587191806304897934021455003066809949398511571036367450296982220438511589078368523530632547681997615667616474678717732420575359189444662562490240739882299690226822027561410609639300447715416193716609466767402534994490418041445071470713599652406041507990284780574442926826994130019070814209386518458064664703850392732460026991082809173315931959771669419853631908300792573846409161744574106560651528782729216096645234174359396418561284758665895262999802567802842022574442965910691836438056203128299424042716711694187925146489717443388686066538949005055866513114844767318401909147630894409786603232321617377167445623800451768740334734923831276400423313567722829479065479712593822111403854371844065785018610306514748328411783736341260419749469610490230015165319188796206855036730152307965992542484449235425742560189352260353934689631810608738205773677348025167740210141617606895271770563645427379406849807738274595114385870079683309803847752669778803758191083944586195707320878260737122278039962252592039606645472751584618009360596714953250934091822463197753156102897481736807681169342487326203071404123300228996321783605480141072388469761835728595215533462184942937828270467589954465590785086111744683434020245554872546062267928751597843732112690899838316979964637543032605860577708463925800091810954881536232197881926656215009713929141838971597224963933115326663264981945204204938657933367240198245781777480444785589407634559447564937315351484267722762528743664407532109006196635057404807662950524396019746739387006924639558279856753829631806893055234520521189354184513104411037956574225804412131131539386950510297754383098375575959212919418008350228068640378143937876976637607377368802033422686347280582063435662495465531709916819451560513294813513941149705111712721938427671847479845392344745201607618759591613423257131287067102584362218494921664695260074024543856023443647900589109784380370006989488160638289216950622103407120771881996617932992367578728678948485455426151919376484099075880002093962010845434751176220587655348206537738096402561553312236178674826975230414659156281427694121527795304290793816521310967103007218938878346013394408460486148616508797354220810472110844150308632402719226802799893110142316708274603898972843890108823474072034102104019612982571713599355407901071271277260698287007537295938468416199771701940908397567308425528575550655045284331649047580063536526736101183122682788465608888104350334521720228387483719031605830558430471405159967338490613271685183452219433754745982563951716908074589420984868174775544693810182054536933557019628300703938926992736855331014203617926641478479568456122725884229632315611754764489405352202976920588776325586556127875741957735438895735997950305473769648422968610955268735889800593132301824282112778052833594378233714697827063150981359331850813967616259279249634033593596502323108615406847002954629956259822076714267702208022762746350211348504928573976554953746760421830549652334920373711699764998887055650562964695625474835319632523195439314524499230721239343551267800928686993335922017139824153512905541739922694550157197311225198455508609325226897967972288347481331880189439373452106624101842898480055631152457318676280190775657504455404407192502717830980931030343278723750603125625805653930901811055006028623008537304399447349351546692981514307221080943955294985610174121608804720762409370049810351777145126127282328565448078571794054288792210378590340956064985373593404184911672928334026153690112500916235180419695395404463740285384150059368519146726112441231513406232891736324438760440612901023264608190224048437727694093052057116610292381441998350916979101838959644968502908423263886112791074725282979905669135899873931901028176302996757591926463873735210137175435318613964895159060681632767798713942008342670561168783722604808850127535961639726811979027184567718825203142179864688936342832027533461247231117615889660735752378190617204662949299342845666651456161742943850148899635608206488476321285713109867505520029214217077852268125131696863058931818210501274273908832028789879278306241994438766670632632585756271935578284371454962840338253073458509179498462657394898968310758113826008087953985829446601075866663510081279616606907947179829322208118304974599036431225320201285363070959868803499879326234763344051940269128034409958613079442603415116426712022444142088614226876628520687523197121478182567503340558517923733587410814436265599337167746281480226762307572016681985603428655086888969530577109808610932484855687973677670054338378128314234711796367161165106032412721260334201388041657618976834001284159033116261193681110378859934368362030767379970565606111535375193272827733683851385815059096350643047200925100772246054181205396870791123714145957336133842309223738073353146147947309770996724829541492943143825413723212560604526010146425627695202320387949686277970966667479742407566020537006896010316511343921132886509690017879712611090563807075299373721474534308282561814334275936759624274700413582633041573979566245462472256850344434267093371332992706631300074698575816926020818123086657497305397581457582006446428593143641908510029624047951632330415568292304629695163360030351069710249869747814595837157132940359627404683020494515836382824726117593194928299320386357113715230648167112636220771176614012297716551170374595184029884863574183236678068275286764655500314246212338789454341557177028796190484735400435994167926861522956402593215006523892860416742864432351262051869848569867801613487703265881886621938242000122679757336970488994256078616603412922199380251152754453697783073030529820328019291771618140021934279521090565692884805338772116146914114018847353054297358102339960165995225571647381809678759966370668041961230060681938097385303426984893930768064903448301086118046633903441951642426353963928522526422463940133305922711781805843382670454760150072147210583538298659727584788925087650160201101761955327161968937394619876609615709103282042338708134061343462407016232759013207421534922659423005616758865307303697069256782546069186884380186225961304897174750734641261925426641412811999336598912455915273381364861554154335413012482102520656903444061204873661471860599320427618145312861751764672294248305169965593661773689889959079764984341920053301864919009363547064164574590598004345452764411949121691195084450643227124769683194373711509761502454215540073964529114238582038854307919040302787764143557961292800502913973250555810345480092102669034163921930270630677548466031323518655096057204048707809290020947036855591885731416660857194672739782857291594290816880676202025886427144308749007530479386700446794968590523753624728937809005493960445627147312621779618199933218765646142969467828257984461870868496168771491446453740920552583844437661705428164402979911459776441601917185181238661255422302969046383852871962871234976073084127503961502169538091632143937589408285441402733400067770456052862970801386864500935036306950912137981931693439369548293368431721345175499892901666605747025852951620514793240232262395788762002204087682958124132646260496184680438338231308288872752774793022159330481129071711510877973543407325338896290660163133519092230027868102452176103214946238002328857994448010187972585379538945781364985442196981559781886420468916881097138332327819183022143375525683328576206598861269699192803574457896391781900051048106296159713698611042233765488697892059540011740119254116841624771453094096927087363094599387160869347485207272634007117774791279405643914594468681836139258929361362145356336806640426346406015790094386834255766162149830644872379609616378289717997364716817841092747984323209758797237713556923000369854815914346883385893577901220954698718916588769554588428296688882299628543501172420652905404324298930102622848750500617057349931928323036579188544164099414383303849733996943289186750402970322752565965945178747041788093159080845411985442196677929830680399073547217004996817294230973928020142841026791001019241748531411296210019442325196228824026725917520847072692247467819431777780541179671978609206103169228339423399701550989948943584549781674902286361867201845817195324093233231893703100865350284085013946507466602180496456875056037880370953169661153906144541129647259201210340881228886378963459372680856206715483474087359833876499542900448107252628845942431263954452994332059602709331306059525600719050463979176828467296328354831780340709629303551734165656511616064392086685461383540147734638258948178801971784225871119894217926427285820465035440055215851081396240262890302828636133882502488223743042773935331131403028689849367573573641154934938769906810661120760375227541478406617757808375184247834427708398893114680182068568396725670449689975731661772936918031059696105488623630493102663230302143275095695253763166538311528661050323639012257611050878855182681445713526348048020742879645298223977673414646941273810368805632028200053305153271087657675145232625297946370189685474205382626370505880593900654244372665710333772591118836612126158280337801663007773545277346549477984049079865998724923498071127738528794474929807561467123927380926819285605016177653424069090619101022200950222067480579246163129126395475391793830243466426786609507550975295426782396097197376478040817454867552122244479450456311846129564322472647320015968583749711437018823211870919467549952429309145943447720237411954582349592235335619299140410765600645603328018912273830776989823013217084451584222471940001003513410161216875168479709796044150572542352228342449806355356944713070642681899928868202782688961106621001832537489440909574979616976975688671907570014440591910849656897618255661204080890641304118879016046029537630443510231714919373274147312117103250704154597668042802041246839627730119054815619826059238615974695935556448461059769341775990018079719797939019502047199725911665900920561186997110431209849853398774342222750271588142060977309686957106077775348017359976280406726522464614348571898483209695439330224406053055259873275318753795596644020970067081363839292338354589359270928569118187150299519892022629415478590336468191905294308503144485928141439480314629883588428844968839001825675406720413692071855216054756412388210050991977926351130042771018799624992926646667318415892006200247887522029493120400564189884869014622121281986959057495452288988705156159199945935183405948651872793640740088024168887531755286667946803256140656314193133854463815780157808757204623096845291715928496390943626840996806405134684939520365928122061346843570118234870536785951911879989083221825223131640856343390737887110703881954302781302477479509088782820799925062434932889572651930150919554030024732796010889651804097443674423577262799427314335400939930625052783527596772373846340170530702778798009480752461850492494553300756308522391015021413018695746697508753954582022790242923752292234949629319074762653190405512892968508576509247308124507960880472939948754859269138344285206221677976876609198870147746951805688645633280737031126240085531480031110310658853376297285768860815370600984656041095664067654784570288375148961074304224647487893911448945099290882187215884779670127022341812018295553733204301281046281908291903887448130059631809349133242379871053841475508824687876293218861094288340532302504678342195621384077229061752032711669683212074343043517479499692835398006725944535828784177350014380761592259836113573074585932874186234244808348179513667536234765564935898550717632157879793981974582600456953661625004314357762640858897932950833829039566362683360230557140491004958495701678971781899979772444086059163755344016854607898339884269234256996891505278714224938325356738921460934669516212955335314759623284809608994774209954659923109740640671215123177657941962624338048832681435873818191572096907137310357972417648603939453298475756034254656459569136395383956052105961987669096760649205297964144803731908432857997808041758698589651244541848093538402504374517771099041668884783881725157491950190823282196558318978774227924890776854710275106099944852120713522209835458765167032690528963041474619654069972793863608640820817735453805538204034420438217085378800670213278906529706235535296018896259832286006627623376764709679272224549218372062862870823535328287064155045231617658763730834810568950207392805893084574198948350988738467228587103335001648000844938021850567223248040318801011972209221542759209923567907036580992336929358205319621231689696685155053422144813932464163724162891153757784033229549640783542422609726410670654520809355218032440648074785692380006673706033370558632900588252724650099137838182875820024511793026873920718945681311969561924183540710244926013774329004235457029804344712408622199201784293125884671939066763616536979309511619691231457727696635084403438567607198928099342314370366697529790202681072280498483825204033727357313596160544160711917553304091935943721742525039480666671015259868342276316829239636341346499326011097395423074284259434446789358490412366692415790336188274251140529303465989737733753060608179937103245828651358342810351403972951630536235105130935210220285411322585275258551453998725374303093286961756430553259962458181093705373736082856671624415384165056635461962238052234261831691084442131811417690707670674179145222199074748788792064408871195085581116554587459747063126426018247420868877003890568963545747435379140961556303886264142035959203673555354061507675762653689823185786069607024669343986554171807125642977817030707901081806324738215612334889384149006329645777466621000645674504615998314025529520541777603004818601326146730162905171630777296886807228242696303221966239045176317502979524364432591536258973085719354215878357146565583623663554955396777475357786028925435893777280764821414550578952083676630679180526978864161662099661980231935883708710781075925822033586523763738141897684029985002437396304997558999084916003824220057085054247310935632434646121305944692894911195168282593983125833484858978397921219327768675553463381297965309383565105438771567594469820681595858791944989870930594843836271199276334301444359376275414205220291306225643428407167812070128075880720751017402808281024646276000064383046098926580706421126718873727986580898207411445763970113360511159914259468112837811353957987555931346975247628540407065907971442052952271788087508236964139267506211934838992327569900048494694378840009642112789435975684791048753407357705779853805092827432450065061396867277605666726060955412258668493027976277139483259814650957760232634624813460963471078207292513179511090347467673790970669373588414988512542473985659774066468381041245375646508722105398944683695401669939695631702620757835303411590398480443301491899447909799884545044597391000252402799360198289888085214166009895979610019827265758316523022000459542190667907013824224792161398427231797012853918984932478001235322394107762521975277694000881042925666784828786012798985216491132875162536463032127075686080118473759197176306537861702069928911499130383419061347478325426695498168886727817975428496535806070214769676986782790778093493204192890204233218490320903217237082583550566431989692626485649282256053464477747014149979883848514691353530195664079873265292082218608299690779168285802112018583990592917534039105414781720682969563611438147373766374768759773299100745710329068730410503131190018271968906722127233906381512543877788958029607009625673855363080070377403736277291026219725577017642009189964812879762848221477479181460649256079654406862470608304178184472469562196823490291625598666364039020070202153253056098911869624489199915322775364651521288676271944188597145547567734527035448181823666700632166365810422561385806109995955908050992721459994173370356357616920716148552779262829528361808134198659731993749539692361497146254051717941431291928683446491550068065501038411536846093022199323419891168787170283647813864072393371178630019317302666355151874334727215587379516144670827013716596233362832741397500145810021824428783295828153811135426214419759386484793301508428401445969286338875584260109131145202609588121353696868131915995679390032714491690903920268805022452987273194985201707394741481144780715697794547427627831525606275176158531374781634928104168232288079374598058908858864187358363504332353811971711981879143696755758472354943537370137954533001771632096946148382485580393077392748450263751934146145223959894605576056723162725930393838383889249425056901013275306712216591299110703476766851489154072981522466483164460709471509510854765869047184851132929925877550582198527309292711678914415477188913579840152739259633257690339616317798807131914458408332755168333429827469167218528495479061345515206432293733484915386117971446231581007777411438446099023283152949009660361275544248777435505265501864334627989755985125691478657802624854155911147938468892815403486349744898451265536357464047969532273147072453524371525265703556684349305861154449168803447659456741807491511026155960858792462670848733721260550405671625928856122693738798649170971904883234216040939712635995652984632544582274901938958076833714413141742781797245988055251272169302460180164487811117938123207623770411762582840903889994768188391802126585953047893396227411577018289104122201555232112168408781698415678976034688496352652898007700063612409660226239533929040789469919693155266620192680125424738324073934135714924410588549711012193408066373415602533005899395300919701910478157774527656405627396326596696323279534709406134832577721376310987141906955116770979850321776794297457580998420470714728370628435485040119299947670035309272889475850146564262814636886150719923734896274433634693884765395098094282479987634514008864059544271239416579513005040770174844670141698252231175674972229750232061682611389270600132868630190665403851869131013627155201093322590603484947963791429850210536570444579069208087502737388187848096349499907067918588879294779701649623076377467611322739089058905961510115186885189197872575394203836187692358039572013760913695156682373679651209372017559988367008050310077630912768713148410323931429656441330549484358418225372613634599302782775837017374546105934994556717993670917030252309009842103139551172187257361057742004478397508817195779296975703608493105731733925226118304033476640056945390660999679814318839017600987601049111100751395070448482608518145006384232949617487796329077653203395980379205448781565499696699566541022758299375729248647958947293344312561987357321904986910898716569761282955429370026971756059920164635692512626061782964400892597118819269853590208844863050091259557359832978687960059952938832425891049331939384887013139000575595821131410566148143362669553940606650438257952305135749635788678279000723218330554500927539325339671467816374761620274522445005949369461859131791796995432352697529202182004961398558996537160164653180060952662462748632365931182445376429373910493258566346133244054290114047681904662677441449418339223341024108782069263294205110556855762234877120676867909556172832625030218626986394799012924726760738121075052605222667617642836552942102652479325941752965375046342023676885702896542370216902250898480081316797385776414532951827575157945112382844703440096054248185965315404120835649400642276350258100036600519033812521211140215237323732732281129604930829990053952260856008089294476528357090913972715809805005733412521489124632272888565827808237918520162571344401488439488009346154222657447427533045186231572330662391238508501022497861288308390197459222721042535936927261813280332302207340418739739808305385583657731969537480595564675099134905445655380326548415533939912298059117182885855854233637338703942102697176915404343675558956936183989567096437448994605897604633400054577454141706437110143729779669831214063676500990429004327216913963510364108536546430973234667366810895466426390185293071634817411276267293666323609514407549115445104660750988834789405220509909082102073420204306638013123509115982379194011240607702204058306308153456342395042847796703600801860469849591049720868602498087342566973383302194960134236155316345484810237128092120432436756672503225132547101793351605118265551736191221612399653275309477086224796328660502863755023448703684659400950596701829798061350454235107748337443576596148337860372556320420142294059797678685162863168471958470756096501413289143371535755952040082497889932828729359201247684890378812813302999437114370637539610251027450884896818123969492949972064538633060502903019060325439463605736540386898828648207920105700380666637634139638918152327636589060257775102163964896713212619307840196136961034546182016935760870250488510683152147844278995852595709676593685851324725626016649508765290689000160099546612059044543783848056348262795544543335906881545100841624694417278061624612746610350731824385178950504594147184509291465919203089603091570536806184519344305656611770234458197147700125438606399486725992522985177625036301063664618638137306541512781936824116601066537801261422645288077876225502614114754965384796375254408440534563072411395836912447506016869456111543672201457999441025933929147862994409819616806339836853379801138944559891557008348501833612084069669048763364577630544536096282080837421633119296104084751458513574988829706935708753409564652881649456876567422303403181837732256630605294803018355000072218664315836704025076722447484766816956141678742754674431383345642980921348871919458909475187405011133029552424991605545172032191721499212459503520298318639857683109386414277361087445403785554818097624937929753554760158875865035386876415769043856491407500403636171593162486820541770492921596327958629951401504844607609551877201202060063243111581000248810121254983761057425714281156652475221267578688011069873723382299373121418240975778414701843863616438778128965954146606194257999195582950149433241235168450979907570134407180578569022556835879469049943193722620430325009956760985210812473841588671492805465390479891992816601244952304574087966026622608329452646179498520111206436353205843399779995912957795657804778892333522091945309995869248105416625918851730709363957984356031243990611468785892725210728402144097784549743231229593738281389591044897537158438112748986229025201426980600283156892619335949547946127246804872520072329991436077599960109499415298687360611287418858537771887836838386048835346944957429533771367292677721580816356781686398931209946834886178501125549739483971022923567007302586930923288483623411096084238732929485845923394565797510593834685978359569033112671129241593357889227250154376459296882486812925578251139576893244149323997299958907197991964088870102270402285707579172781430784604024806155657956916459699092861306263430037367684996148193844173631308295337496113002692880441778701477615772629242012787506116634558749464210351277808967113902767818484016172476008591347801688463994800769026053957089819221183638112283063192957778290588203491048293374623323411926214308345245313738897615347464401648113210229656499570135787052511219998646475776949664260824461881371249376949393483585739006064363374774670998785923788858819240580231497092041272502412288296168811014744367629130424234416218345596610204120487686018841621330706080965200875081398103748390348893469909714376669411825962386192555478226467842672977692046205880226411225333864487103827904033871588690650430020605836828771718157393622717690463751200027494790657413468631505433591764598767395552984432910499812766785858629219308409109103149343540800403013966552326852930165821356896579287753844458133550126441960131987015117593912580371629545913598632290280593224832251871170483180910536191716790163849805382317916919574495462916902173096934608364601093801929671391853170932981985281546388433078515209781744819256981074766520240051586455015573238706220511197715144328914240022934600902295477607121547660414152436821085027412159937818999833684190002131579548242922810559089241929785097718957993815106234315849575624445763747515329980555887189349558373502657204525671867340514358406849914202876475553613847666385026667622705190505348237622777375829746036250929089037215564200680663005461574541429968060310315850637963144377889854456056055687736171054796476543166546258792129329963603796653828080807081048928727761908260403762690618807277622479494391853171163658787212412768683627825100421133125645790585516265172645204544754940383659482249631400684432617972998971675445281877389850650646727663668543913464926642811247395108801989709107309277068552280729794169098697796750574095164709308836430014992054952218238832275499414254585561087581219263272909639803097019807877614964024296985208680315430729652124040577183882577971759402438957520870768654952195590344947765042072337674741205463969097493895044452870356914823725805222446552314672597354683120153327489979516574822145045026774945706413963104978433264275253633597576749143383723146601387628526648125302340628562183217140105090630435735303874325928093901228573418812063067387712134844176817004497165701886677113351106638575862274195783627696864995032400613806528062245989507792413521811541193501642430867744740583750901598678489199849358062669760285205234975998207356567116701001261142783358857654163474222990264206428739556018237346766910920485372591723001761565418838953788471048148662049250444321476622595291082576759449317835709672747710998823641412180723805053353167105397322457409337902728661392312105592961870050474120465637383648157717743666747202504240227712059247770423223099000652404524091005472522237103247600339253208671482148130863228619297651020730332827946528876980574573436723144993633280133873846069333467321249167404908351910009855181669676607832591837334388543548651737436897419981568777778758266195411449996275001894078952624643292808296193360703752941435376313726475247046999323357396585962179445021103050874526315300497277105171841271743868096385841954750250964116998797324180377217188486207479993400565289050170278142993031165003734373317249512659190153789198866236518595867965663495131780084405922310219245625501242615867192908786704991787792052345009239280711776468977859899839107524074538460898362680199120389568645848936927928263565179393378678090778826752889396783169498974086048345307837944706792769609133969473758316392731423254865498409098838478110409713748460094096045195439083014605277711455205439036979813349214725872509871180171029495667166548883512334982658259528818345881070180621586376343196731553236437954871279600519475508078951737128796796205895668839510345680831895148903587800175169795115431986580868304255142218907075112240542050123423166883323589725537687747803979254585876269941825281383120859701204355063818379304406699215190247106387306543502898118536479899541186006103866254096629713219195789580515218936677478284821855353552659071749851239074719324143356547132064649432922559906711123281061492660371618413098132241375725980828710027448259937664929366548895108923798222759989015986300281618570026960029263506106152816129538123118153630890683423236030946067803731332318237305587477781570429767041759775480025649707682837705317150067249103169790496457886568367847763546315799316023182654791967712513396125859209793868039278306318145425752871941056838288249436040255919938626023317332694009657126913542179651895167335434978312451885076433438593660818964180615255440777214368912314080455835389424934953585744609347561866598881111986133840403381432320611086651767760982979511493264864836791087854514117446559049426969829526591623699799383511777414147835379845631174868851751522144321254278437822668551990286947002022820897816624541512039817682822727161202999444892661256250742959045722895310164982141889590768524521607075594965942888892520517293967091088611764785113773932062526852895721638636344420779866407487720718989886739945313010692494653761393468957691316176606031612875398535800242539808423490833259416509769207162990154640367312283370689310523724854023038776906323391783846830882029028931138996558142838319792862155584992641754319153899301192313137851310672256470780399246077195934938626532496386353681940048976686032751945150411858052927220473974180675747963256816065871447749911837343893264872075294610628358188347246618707920066886277047341014373245350230217784126949774909128448957760847571321900299902184177497572011938565153278117122835099691686459611905069973300371198699456003222617158391445760484089831823078854397154250984866335945224597609554036136389940300598452813791240082781791549334036241566996517939740732188769319883938269014992355944363414687298619657169671249920466794864803948602550261657783406864158564016869918013597169491064290047889005694738525000530194442762484714950587766631390716799076742643434463788592843608155229899712087827156092475048109767984006484356640561418790416197869521370648872609155701188000816159802389717783821742932144761690698022626659120848155044248260586138124151429312066310110678714581933887703363820015633321230654791476364096039362141991791486389180388364071497273773429193725746963583462307282745711746663238544434087959733286081954823126841315659463229669137594729581559651973048778014021572039387411390539096909657749706044462181396416398707839909766002043984210074100090219056750678094976898738418696162470998946906379352378437346633496464993901676320915902645383960017373992768937942278877183658466414466058060226514174680998925159048724496229514371122056427065040805336262309671787659678031748335991001989975149429257665976400751226710524066381661626876175711499308062239446567634282007239680232276038703944158833563013072688605079105024921439293414711581231950821037177857588293686934983048492158694921074298234903955208779944658326695515083346226978593286136400362923352656493538378191753003313210844025244601083208558215042737982160299893846605417360755405273577615239274041791073747081279656212707129146359203638453796237466991247249242998530365756969673116447352928542206518299668984550924397180663360094707628426020429354791376478060958974863090368279852988232749689130108495958060965905425820146196853457977429711386264666058899312428985596301235068748346832006367428888334730944162106251941060709848607747487606396674484220870509660269022936400281645887079085655720933619617460624553807927049237962661051665012127135761344927924738576944376577952891830780419022946695538795227432062942922626111786611435524176058682657596327533270734866902948169844111423683567002761989983665018728768443496611377742820234980292439063587265840352823306471699151493047832559249544171530528733562470488811708928184422334328211747909634900959802620391406340164860222275644629434487520688046870627534360639039140887390855328302961199944715351546301763786466396702159252087483138349394554266551735165492022508292854109788082253389609997970207778848610905725703317679214296208926750478264777060587659497483212953736542343308043502897080047130099888497795141078984419292705434732925267768477539932052165358745936470222605710783417647119302407191225007362046978349433979484686854773768656976066158461793410951729787142319834869775986546968926583573380081678760674821282235521447421151443377707271447090019868291926780487391519921555290005479013911018175747492275067972176737621686450728830300267145484382762682252746576654731675703037986226929357320833811163335773872147165903327888936587585072402877915074060039260391459956395656950778874088981112695977005148501880674885915468366939611163335657528363404570287917255433921334206415533288183639186416902388205487990058450907908851164019384148142421802674038691739401238638222824051838750130987396613669376583327837110337721502427408120382371418933911497479573112610785445657546200797137416241422155741714342445874977537975544092772978302506728007141088448998550343629717162049157921301792990883615632806486507270891187242444480889889622995666284264720752126446577847013045721888716957873140813849117939837811828535211316848832423520274248058096341010014652584866249807032799327205216296347504061423779993237674850437664367757977492204144169077541263458629576053812380484848800567996185023165847334322537374156835090643731084724548350961115700051852225453039150490877919021009719694663655953782706988156599537037318751823120498059882609045742734347879417821462760200694139404395683883830553120706391494051298918777817762232201691810838269588734005840052205363731507826650993672799232545559114165737477252494272108123817935360923177093604368399734235057055063921420406845680847488362941411995803609109624435099091628212947510325112525018880722899374958904347176826359098728518501904401795800720069253182077760938738513120188428497133142389062746615442207711681773428369155983936233821673973645157384885768680094071135985805874796070945167282967766634378035377487599013358379084442337129048849466202503742741118891959032220938938907605905333502279372299364383603395895330785011952850765587259268063130656639665445830013369886610978404900510543108310321396851147102066345899310921217149377561584110848201764065612415128842641753780825156863318083077465332201193295680858667817190773132600551219322134415384611542380955531867369665290596351118171499490548016418075229569118744309823252913660657415932872255018389885178630114835130878816196588629750937403088315531233397171919740332614677426803416209232906958538412042877438886898972253451544440375314919313063008785687067518801015933835458133364406296726636081222872965571179896520008801038598875169407090809805450131765477362497170901229711591633854143679622096903582888625029689433087337340523395595286125469066453190162423810306753318927655590203270386162356835654855821066121300782645067053827243390716494391292517558810661040100045198670893829131267635109614257228023997514634087556769812657874987525273140644179462789510118024635704372347235157157349317975160734411317592635407170870094968447130151243593003337916595401691495584688295908399293122104285622106861018083593622819232136157491042913708761408902677988039903256724065364921770640623201715287876806164016197513246597336421630280291128064406165979312875305283702889554804643273779579559950313236902844676279719921214423287042685069344205882384163589193973397482298508742827022171772204268045062469178344110795113846833027312407878613452116207972608465779328903512286888670958343720184793566443972717350314812173646468750651562671002586612306396122359259390261589884557169544945585138258076060848793523224092735102413616716230350135308035078505071907523112625212937561548108279458156433055451667279107159815767794542914543270885791490877175125031019903610192540628214400331633641981889668595936477119880400804115636194672450236637290576010842542049008953355118710235340757006782866221444478640271442290432577331511805960180201877762324886200317802719077555709557386500892376967099237616378978917796980481344849533446615880154955470525580947853428088444557970217026006363881839649192239835979842852938039712884957078918037181032375979167722275595065362600237228373034550339946699062456872894213221021165651163617791736494223610335982178330085852216954400478975259453620481922875061188682701687931006494706481569196110438663584657830954035581366981999758190199827439084661205992637993057135153441803466421979348401944759929086155110248949920735872362905228349391690704008688760530508210416474587351876525884578125634293596871491988533982793653289630258769643641765548127373733037119297156620865001302348969658958582181908460812152652930439639461911575583479696604480693154415151645036917636472578837341215071152687755152205556038013736773150524718107718622151902561498469452106282856537559905478258305282574407120288066347523205150277262241205136372727071446004987059339959197234509988091262424306496472073622683899009417724127559000668280552262481925797970341433677932481566586740159353782785812161797014223560789548823384422495348890358940509193249684799498444973582072616717057148114729609051280387150749316012109329059376156584367676349984309917267444753917360705458330396787296524892932683259462559688361862714722696483350324129559695512976450569846132144989728542819586697677816683223619509968659130416379557969382730759348242269070437841373523363913888054007129090780548830077580425704733122286678713243783011034813257660546527293245847205564351846846672008165710166449060413183445860679997110565514654228520166110611857041145397896611499781076360662098273808677067129775649995968762935536945605520067197203842021811108942473793897649366196222076455193065793963887664683358449358284076384291559374264857461187645144328252481274585432267509270526754311272683465487511520430314921371314120030070349481467002809659000718788785897150170896622563075334493435854410013591183395089191903645222230020340961405111436823377199683179774239151288898508439550332325716715269630108350147431281696565442845957842151877511538467441836038900246327891908565073619253049724007547236745919029297925813012610821301872081449374339585091261245501663465254208233878737506076765113914400168406632937771619402388648404174951956326276950742546622310336029151383375659892309355118513490089628989018922437312028999933040707045490991231106735544030521314674185114749616087393314926713309009370087229963273127765666674872537321356942466719819245802427004499358446475226631685760869493932737014292803738228781240374847057282780129043861849943533320082290581750697418040050106080287316591302721318623198399138195057498778937321742124768328889611538053961088086864110765755382029933062371416313667390143887434408417994746671188609690862592455872919822899882042759865013024654839150568897815637276841821524525740141265883235993366387338873261646325929456034518673873176552906690886035124647508727162772231729611764724491139182869628001127614647135002216779609968941588540322599378167186194993525548353804294395631875572896634453854017238811514632881587956364038594826679208885014147934156272696507953997960827646158840552800317418945966454026592900790684626277496029812308489460935903524906598381474197077898315773699002899029862017356077133805506063254957076108409016686061537283094514766325308860795906979435748285030046926374711688631958245873523632991219162195956832680159885699072144331758401946548677082936408093044485815105648930576081543120468939766598452099976863907447809024693563901477521581896279470116290280100464713062284735044539046402869268341722131997376624535169397359360077866963926811708736313127237989264079225239262312056302945662422410876412594664949321676124703380906482426435213404513666957065089338531874363492685895650276803581506759050917313525877821669045587517040342217610483397028255333828672200621105425076037426138994800105312872374436553521316697092463512183589711252351163170720310999574041070687968611823833067405561948059340656573304947475623908157381358040301831056921134522970151445851062960026490199913650708865646954285115370803848174564299746799583558085627507535643667652121240161425256685199633837220648341912117629853102856174168367477922626148503883893459534645496312688815640052175875860104585016344159480080092921348096823284507182270641033067514525762964661493031075113036886512559716730965279260145268666001406025184031260799480848151058365262615070660248704632555468063237064777328868022167771124558203350589861842553363610238374845270258017274892608797920188171791115198162926044841215628872340661520329919706118657383210106228883028450673784301788719783750525519280238595921898014535128703479258366506297670559378905676525284687042300359600305669890398231510290450840893290442964619470490373146023074895578791749244556533929376802156205972544316767669821347675363472405508646309032580731465982231989233441932935917700798465685554812504042498948750870777352406730024361649444023144319075916526896434609215038276594410737598631263923467138415743450802957001897076344873802905007202035639615363566175908006630813937628738664979219142826691351456199846775750389297014065869648545540418708628564183454132177886533416591973207868308063333875160335856272760791910508672761164336493309288322441490935969367907010916703238813685355808891118942419872892973402898363591080419264615413496486200711098269965586806733299014265048079805382846594467108977033229687430373408959454987587445233053471917990332567415598593246456229931181002702786718987008537899592317329911743238018806340545211270136234544509574153821627913287701967635479710862962902022133265926486683706311722624629503572829609158583474831469339883829186587993063632593496008748594041510396171416886160156718074191488083156515183101936739381643613617005247330951980237994766178803569563720509918276562057619978576587637171375048129935434352041006146928984262008556470819006141126661939940932082333358371135408363742908909893644457766405175448012460823436880394285678419716625362302050695617730180887656226698932047851232508350927752651854611362880522565446049161048478190335902567707926913091949537564333962229790358931181846424480902651701139038064433839540900884009406188511794155595858834123690064058704386060976098592101503099593930601381675164571000087523721100468563548315173179728565968730866547608929409819077281504617960238297503070862778197259753172163195732215390651121685751925084988986694247033272065953907758954473722704181028434837911852059873994576051622313201573486921462155827196216470312871203438214419117338680733542782287039668439754441138491741801382534314281239885728571485456245615074372008191749523664499462209205592966747744429415446158395780003258248930377376366482009815954649845726340650960339498198423308658696398876261043831366430118507002957137514547938180652838504843386295730927042681547243353694309253122750266445266869424846182110613422033968282220355483182499872437190314616572059078635748044265587156049102990757828726118665981335015729805951665802690251144091190137135024159061220159207312904310807278330477277114818122031629848771000871123112721928632933585661921120553238581043585237236194026676688863778440097817469527313579147214185356952566077842927327601934356614248671746600198376134259304124484237767199824020349337536785196390543362915784839644470211735880297828651624853897398503201013294025126334569734290613461106282294047850149282743851574173553660360082519264320323094676041371126112483894407828194869063210656804466955769863999726634008363052060633070026636583168734493911956535280262146543170144196780202595995845348184104610541965162439136668312756900755388021119919533296127927895426161228558892307842610839704247231257605434180041150699178700185095597431993173388913489484992837070169672876698421951738047149576443797278191569870530559972442095200050793603039615932930951558495104512201255575762492414360890303614941517058304840003027034901524439620033445393573883051854080796952653529508352026771401617023445817167948718310536960698458287881369906976350629911398330634814704934950899947817381560300529696812815293112005132290656515344060799925330728415218481264200933810180202543818018246678051050218089939486011218100633869193396642836738505249927895211412226738026120616615364027569593917123204581746212252677647461317384974242027948692476903639089429129478424788939766869133621526103450912285113025619387600146444452333072653230781304363422096065359579438693530997840247964861346492295706694926369978947067259245791214375113274996431466563525683049990523980203592501078026885981793733603975376531325517399284435490467789099721301348402888775776905928877578198813712886479653633294523236125445642412603463868111024753528071041999885386338203908181428861257422631711145908754890401749542774605591823454058992217407381189041661337945524249931898879958792708361127943961687486643133842792703254018758598229977713246874051855032365389332077540443489019303915737564607290496197016253849176824622771506668907987682112559245176259062177604796841659273515335048212496662686962630000485062787261571304381900310695341463828662636868650714647510379618723130313585794344373711591238303712933239545769025920044145882114138590590649886881886360203996056106193635824203901814926646512194562246072938991305237275839565164571792815927840166336348382714781001707747813903303548063463265769512253704509180202019280507465522969976875863369444452064984781238779453077986390286814822428265434454247172849273498299891709920068046205801353594122272679543615548994212868775004956057827784651527997466179991578689248002429574752595827703564306711628914023111515117673563336872951783874674397529610046877821373993732111953863921490704187030644790997716307887113493035039747017891363108018107049015379376923230378426933974151824934103047024497315359075465776095640039806112436140159584196486946234882273273861975324969721599720148116123995757137710474436941545072091870425094489770553970936720112168637340320708201296437206263946116010245391864885155100266339641684587159799931160029116211376433028240865871230163967998184764756473417487660079071547400332267215644334443973923025354978203635970126436567680986070212536090502168098838208743467029723069781476560677032959672623540698783753146610115405441453532660213477457026301040219299156884345808018490487896804934103969268464875972237660885515256153748815216360236018264081138806459671146880882289604296552968785999335178925845019871244798487996677217090299730855112334460871155297936931789667131448275152336099842233164961802929212578943766649102860417027496415619240040411995759123331301726184836576313021422684051764749461869728020751392142557004904690234673789437789780921411361040127782041614788689024759612507614306465250477585282475456611019657984376052758319930304449334465138307708800552455135977136843037103406234957579862971398752530366813887490567517771881549518908251033021137053568952113530874605443618564641781713087782895173991642479970267170602031082755267285313047287681871973933500202979916655608851814647781014704655417749582441149784871858299886766181659901760789805513557392841019891437030265491825479494610323289025676843548034372742612557312492042755170476010442990021043949416681787785964904876719723563164678979912998260744941740648350948941875657325422349100876959067646935586932941564833894215052074707599461725705355527965406742977353007442775412850863455479776921682504536703634066617424472198191668099746559228415593100694577989160038280456373116851614179330117981539045669075994615560173928230701186890333103701018507923749904417959273131387908093697624228578560527345517146733544300425538093197875740396778182395284825678611192244121036083975126611840465338148641136384840627336637745136187385391873909856014895653852275397023129065462216260279179647683988146153395957937523073594496159644252270330969616353558315952281177423496378666784414342878042931715516333459676582798053894611228433906449995428675760163049942839480932072935973652201956335614466253231694071739546980293871027040689830161034312228648605647681797551325729434662660998926617926689800978178281603941161414698826069661537774747753728425486878438589970075237027779791989423601923878215673318059892088575100816441766785208817227797751449726028182704170635950528274670346428038237019078137506560531991587079163670965906038568059519838525126287347193511596934266157476337891657643727480415671548112790023178936254863541351523987698693577929085408189791125161022973290576538740184050561334870888285805650269047257405340433872580581835381559399892644264066639639026281215148269685401782097584992322108021393473393263226557331649485201762247196157185000206558318656342676998013310750005786805298107382391988231769093947293849734613624050383443206190527950127011034673095336292211013704603901494778345861495231596674519177840836741056661489465764959715417582136189501426338976387579059675107356057241180878293631150750290134505256784304813959264559312934939458903018446950798864575462239593847513122719416893683921245084358737572515133796133247874122478340010242260151001217180167873748643977597253218623856652376822512640519291181896447932388716316100252596435628437288012752207711522163913724766274711085293621598575209882290099564694878168268775559753330673299957238743184620482494416259893178765137093015925742890350835829320940036736372587113221902112207142993917880651312268741062310478307692033234088320142940841515457344953058570550709618961350590415957870369229010581907126781648087104830569106415743948587323821826923427593893550090351001248916034077175079183600269050011166812707554257590639303494205049685826552830159195977139256527098580479818506181800162981561007787030983091864798608475789701135860398356025729242346409981190055159137173284940308378718271240494674955106016578081856484355093140230860249596028873050161430270766380687876334471784566769629283744612087725022443303247950875072107163383896883360482155513610081929478523379038611926069092730913817873511413031642987448470674575560533190752623534444468900078886108108813301870105540819973228062594521096704499917310570383607085069287764920058066008510154139198284108817192897068485920324601455219812906871168532986244620843244706597472692313914238838961063161069786654013702864833354760891461599990830151594496045908194800097037872098089426960477394349486317050843104138553511434168169022604226001802068061080396177503712587482036673567985079743157375397100275153936120653184584451087229202136629912645716097098946009240201808470770297641517199251048370919613681494387108171165309577690015110656993815389599428858582289898767428192420949493174595455901487657375349223706439768140616363069969560908448358598453427602697574984385851597287042590700462042276742232514514588831551997469622932853906349121582825961727366352259213301894949884369613900997308554476658642004998228799862826564475676072064145028236059634189967520306306027737136225888109511156833973557115414952134224693734704097264710722443729228449385281892518137960220686321343313346548762119374512681716453258534419874392746103523011725687767057671004103323150941390572926846293267877328817404721471174302900529749696743934398451888185910099115906511913810225260268760464625389284146356627111674224638324158683244583675216842277261488117082751180379134131211861188707469721010192210546935345079169079486366555431079478864768241863152961942762500029903155437328837701442796420918317648062189403436715812703319398390813781023924788055133558846601100764355602049428076562863526621767300980234495440716974629208091704804627260978729495880575604413962034954143539873624752728731587344074170989602695492228001879117907520620463918116722755077755766466558993458766489380872200262016698633184822626521330495567039520552147393275362962107644419230310878188674167505828701473550513430557355744592571935831026887120914683092013891231330042692283140558867695055837036428777417209498142699421199696543428789907396207836672893943384791020398313065719094950931394350377308861281344007563968092213655468292577141318096034892929641338530068614110978910760642985859512484032878757392391372117540389465164101567374789618038958678572125396713151814991314644030269442825614035376670553641376049638004125437905489179915107322974729606033492361315083176879936210929356822978602187995843518314184128921596299067085005736701180555718663369340254980440281561458092812684339298024184457306047808864222892185561278329854069815866587958414890287708313680452426758581047938122845626175856014199137019323149537074874757610297805130524017402653422476013853686631712306185791645668724464117551709211181384150621521708969375773509592587225636442098072038410865821828792682579234922194718641810047382256151396762453218128423894480174295633033331247143331277876359872664155239319576501938728997971123517484567007104653576587421463779818404905948935035430719033051717817441413059074924854856683431373527144402241816320173932111304896233291103803671554891961846684694183509687870638112124632349705641656849065108120748957532098112254119696837470338964725410768216464495115827303644107037137068444952430748593847486052235449506331967428042109660828280328004803823399918475628271830452077498971457097299861017696827558501745148995673673383370326191242772456389895463038569486564847108001894391870972088930336719232350396378754685502872885209746525474681641554262933231881221695335827526094265191326043932261170349646475677866850456911702112393176839952957282795871871643058680005956158660729301291239126882162994980841554437730979838756448417446655526446799765130811945129447432641034254068771140186351465670995712939922161449969590565305120440180985918328272387463395538791806362032556198186411328532819244590439614960521428829668865398816214953018226360360055739410026363208938741358126522689682132341748290085974157305914604365339438140323656946759606098817753534767352933222566426064335690989247426744935035929167367042665385126132493516603232982715915557410404627053692171000205935147197973963246034050689812217104171267448831806865716512021040284417985131494073526985634411282909661948598637052757777813565474671212114238152740287175870749665501814794055337801220735921763345163921207968688579243954366047038269260847068923521659215929710172885256721301567245755955678883992690037601600096768209636449160925139719986297286562894379589028301078222543178636070670479453836768023405897642826051747632879924156616955497174081559296230897228314495324536161717662460286783080199686719438090122067890990091162887135960981893195473159747033646196807225575296985331686091664295433875589560242570017241741256727837121280338967444095313773308811597604415612644528254469554663362355619275762731407455647285044957985518706646417846854276421349699381780398959319569312634441536899439080654697072334858202151319690854442214771894886097745674649155966620004929275198286323082384960950394069073087711924648334371858864689603531498842480984712004210552082496976781525394951727404156576285066319259875936297233411592440942382573076113145229647041170110591818705242781932024733396377798689883427197413525647442137502199133704857149303563020434271502990137197683143650654136637087686966440061325574441830168573565877192145355118372131205002346774407109420955350629307763232796423094781317498991609942869898323376994330733951805823778686071878257161952671884193236949568174399953360823731480076155288439111793689162020096866651038803418726687135765988507516546423737712406251955841126337349356001437507143421739212631170562008693974958674169834882039611937052672259799439668473705349950220821376353046273570275937944611618893662443631551032236909088783308236695644376059998568823277696445706221926603921303521832628408245959094571360797563904485046617802970680665689310172849883819459882407657692964886379359006399713617570617664769286368158911129078068463485646234457856309420541810748413815092862997265108015713262547635584674770846963548667929693517054891417364496219809835183796334991007908968816309913806577970974350766625939863092712577524113500680209667935818201766706442022400172030821592509654962852464622912157280342758062420702097594855194430568209156808759348321836149228925871477999182001290169516532948611605768286277532218349127277806344504596666966497245801761464558757880966364606302803462574456047937994996194857352942959409938250711645354810665776595633394669972470733353814766919499473031775012016228045454787940806122157081697129154802619727989834469662910162394484984775328736416176876521748124794745362727585742825780003935329225569555768531519545327157074354926886502566442182447216261318601565189703011242655057944387636206329720073227972138957498455937095510154047201235998485969374763076033110161817146615470768668544794961693685949194247443299543562609585805498804333946161629107587834393137600467557126465230590124598020411441687037577235387993933630163770853529890566092604962982324167895387230234948619329272255631917204790680760732676792964994080284553573246330124273695763928091080438285373858274542568427335299579998282259382923685722236355481052334844728654731292051589969783220072627389354623408979056230618182492432979563328263878193631311978249830745255345482935034559315689419610839627221815476888499732081488359462344004213017628370927706812650991864873196120258397515584712496787055228264732008216489943606769328512844041714981510484915248621951263055045187323570828138596742845338433008728174747806440916884098921305409580890883258820428748939823280450090981672576233356204751147263510133293212651620907222452760179146312583381211059009431451406704860870561373844790297258821689152305583163577045170051937490011915903896649548122258492292993660817310321683257443854321656052670950263121118907602073069557077546841622693704111739390301988795255341840576215935184740394376185554474685582411033944549863072014921982845165363359571672320088450139841809636587245158098178969227739036932680623125991529575570446636109405985353344098922718972908898869978325180070353378076867040879834064622200270117625270716334678779056034590108769175726414289194614851458890299379148925059481261642434448415197737628833090342009701130509886184921826580583844307295111747818355573324911682251113187808542970985643286820459126085213889029497668541834300264254949831823859541941243053978535847357943763614758173720250688675599703941456898611020452557932862856941397221803052790827446201160004564420613283358315809979625334495652924721403390934972420678365396183328078993474171149101146519182313602258525294231551979564390431630593084987313108265113944095236843789756210325638114688155578277916719947950660209424773274694295362026901421527564063430195929330969586263705658027942432591179106229504766422847799666917130480034296821732817823186648257359592285046536807398889645748603323750724241124077373621094249529978958611845051818737045669034416177305192702050517855745810727326968875956569655620140962730306026719372533429476898520162833106461867021863798191498089125607279835817815501091010218507622271570127454039382159547058184142984732888563611583499990420389509889485771277362944784812019021318049249774911963953188632908333940973719064766093549814328290435158499910799851112693862497407324799662259617896776818536978828745093299754140695491313687261572555957692758505471050108961026572890661515909544846631817301395732053855001229313380786240869976850676887946495305226011415468009859125453114083097230727176385725803615751975140260798106663990546803269192263534212959640620033909614537342731329117105453855740590802584953239347820984719976845234617157695613725203869319366089470097152007387640959367402209707568907077733074471370949046012297523495584870304892547892007919872406606450234761957767770468561709839126463576677248692484448150123855164254710851950791570163155997645866660905105704490760255588461487550145515361501197333748436393608194726099147724112116860534544492515493569188234662132123901830973550570537765112416588872036164726385564387055630431320222218832433679651237827677084517893273235043684932337598102627505030526960913121674474327087777164301235005525315702142601707466204170817838215731187518981595294130038441738247791835738517068950178505343089483012387889733975695889930615633704622270443555307402663168332117130934787088797751961897404824155027953050532010621971231335691362081150709488448280359761223868352941634845255299262766555446610005548520806011754772344159597123138507534450930020866303442643818163763404875967460822385836255013666384590435869679968635823073936029828392409531043601513113755509415330660918900754019478333846810647704638187623641427630451562656204251901631610365804042348601982169925480171171039580185100160771817768960460312010930624473485769651827645738822683076833570479548362446121017038401225016638289489934815188119064837115417220075673864957598147250749832347524534618624158759379403290874846634034221698284797137492593991391892957269864792470437267956961885060941150375427430745704628625651171247160744726377961786944773110260775830887251866427774342347508434748040533731019758393406109407823016023779521333343535504057348668637696908686942002197874892332338390350241496504284955819485748876670567496569436885099147427550396837273788551160903243592319118644903963876218185386985986722495366373596198504920328175983797620447824490195120694636248208658759535456231827485949502134825760600800943135758755278992517953977050731536394653036487596706431498086451343396658553657741802304138800252121679086813750145504131287200607962322373440023911838073221005921747958717780925035776146086922013474774459474563532637297506454320477978252133976841111298023504314011974512564647355952196047821462296269930488881450954305926559801987891434488076407480646802901572614218170262111173162430908731420057652236276409573979626881743011055531235846981120311827281764379489620905730260564698542619032186226247470261844863980317735684053673826523024705862981936822541713965855351078792872839896567952439653300592539829347656295609497114638548155287242419976332640451590389173189697609855306828096909112869647289872685351993035742165927179675063866299244826421942364789304016627982757510795981673233137689607902868642971174508684455264856322349393877372041618685322055183137420915993649336919475651287249984926210371221890062504460315061891696674056686680571981012629777541482531355112007898000292700338215336553720450345757573052620223163493010853796781813687342197634165228793094800282161941494409858678164922189198655971651995243689148091502640664014640340207371594894389130326845556155664049228712301534104724381249382222166763242798857147259322663439194519159552025065243125418165037965447580139198795256434717789318436451949290143766445674088151920061393886707034663733943219196525821063838059611769990176004877781874627559737445404964551326117377943728858218177092497980573502229956642880561867863544887569618707539327191734016280252439722662848421153911228909689395865942159019526890775274995805696076142690496842620233897323744856046820029964886655530765734801760950444440438912457329260238717805490565239870068146221860414040470724244029274779489197322653880361186452124646703009718417890621129780833838638158137750233329052460082574358757840546466219125945180365100001973668604340547814188004575519836729428467840468269982905678696106427844436718363906228018433931249888126191988904219988426553561520758572528290555374649733650617374649886016815179501487695459474357158297779400933135552054390541821061091057219235087710797876721147850202653102968420662040864704710746112959273721904365757012032240433127988693076704017390262490819704215137880192338323415050417549689568449332397346680370142155839947081525906721064549986478283816222775601122644076462429441708379881405761116295039988272085827478110304912240889165221503939681715073436575571820897948785545229883733744010901060585427960451928663367144149815221558199890993683860781265336067083620116761413384315486278624011629350647877354297684959302426038221707689819068594715900929016024878695488274855152790177155739998272814016492496248304152531645446153923075137996546170198666976081555090388342438908059119712913563301210779478796698317933367772135211390434209086045034845435108611440735020447873963630051179713409112121261128515799867327312779980803488840979654129916096003164943114609564118282278418195925928517564227801072996905707642294280521298717151805479789839465810837097250295001358812329003801279826112996769320172485078590223738262687239913493496044450895117478575475414891813385250520979718228274081295972783177936515911577797963397365106958689466215449472361551863549122553336655365169743747024225621414575897068724143075326742631900547163614941155142088526283876385384672099433589633975019383855474937119532576092086845026097020168152262085161440027753571325092794555938249253580207960954253225461670878050632006914276521829057629000102986027593307384124505941327594220604811901027930317076525216038405518767350541897486461966370220630817792157376175779850588159473236173411847048333697198193724630881539405067472333293837280700704864131458812639810056447616397438096641191011965554716106840207268628553606411940865977927137219029905440693371503242193716357604263757520964718805483151301031935909390787820479036380980983594492185316415950485516093518160453638476160488636750828701749476070014408407411161148261753577219726873222239049764086387191804732378812272823892857901172941257792138530087874424243007682027854334418768070677573275277417949203644998538705130657633558273908456756055576218274479724712888928309818325970623239611702473761464856019220765308385680022653918698059393331305502732942616919143069624327900412619130865293995686077078020823431219017996926678196912348055891575967349996293777501979335674004191929739280512937035888451027473618360794354876118130475585538816437454511735598437280666730345524442108625240848556117477851056884720891781356275464020203320797967209176600164344905157475695421466628305801315314990027370187022146416789883869727436045035209716685072695369748608497960497147420320600552538110045928253598115537334424469526823158682744875390219526923772578548709666447854121577936042705446626534070427482028522709548318435255833026731596035700366400116068943434240203170550146307762491730038562293415045647802753204558755460459187624181378406282673612193385943602489864485319083338456153561562708839934076839424321020655712147365011065909239548016496740758330079932256236306920624685496780316568803462898260815961334494542674701496734747844583945708498096995665322350888502943349762191780873476897826976342513720909197825936885322036818206784819570915856797503252212032510898772377292397056564112842985609675881019572985973322889358345292371820983618488880077801452133079647429767075155672524704524394162520310647773955800464278969199960117344408320835124380568856479183742708917850073721426006271937948426267847806596950611372747358141573863929311149365516017058288009738486793816425738264728312071974901496310014195957525758262500977022446839235232905599941938018951793090652989805234203248606698384409055127974648047085479331681810845243972937479824281700231967766031667549005333597886556181624882191621528031709823009236209730428931571716902204315971217441317088073985597925915421551318706124547346006007404904027302509199313520698948231338944390697124053728552761771503208396208369261554373830144272043501782685890981033698006526927340112299326199009056570691026862335013507507535437637957173309444962538761267634755762118062336722394481329630790704880409966792764973894628426468086746242800718554656404958843812728044043749490333123860432973511396095690679677160717221941762551924542096250638557415581028061060620993930348028240393863949658858266856624863466781415278095710425759583184808403350840621602595180927421592037329548623795800409494960160180263035441310529774029946817668878415004171480187478447015651310149347809361233710519418601776502542589922544432774618671487701268872891098457303882705078170037214017514634872016808020058589683937926388149369226248931019000666778618728966078171367859082406187806256198333198095653374294275410079792241952451453770747357563798167597581057427643526130056142065724800014889864297381019913316379963886867049272351509715519720296472918303619637019796777305675672208956237682207682094068272554473932112094658554849670217381404989020109710491802510901061122142764833481696396029902925013834980489705369876781535834376749974012606476332749149582134110311691332466253753216878962889767200937538259131603357916189581714114414723263567562446410567005070006691286472106095397880599027689211795901325186058600071190639818494039945144780303342699123935555593194217704062400520705245279026370968711989997371454493409029128656577112894118438703509954501218796239155251012926481679164788011023392914183097421052393315943178280973274532048664143798144827280477819957873342884146961087679975604898497066405839831247855193135358268066249357807311067263002253145929133870883414479444779646587807770594099748689556335806906740378380060308684044701318627534962437891124978421773881347530708345975348098980512652128860042878315522199699311012433040401806415028066578335070082208287937734387790470297261464985317795258995344242141241795372303985698293157401272348888204422379716920999410631860434999638005158390323324639282956777680628136823558760406280018538079677433580056160178106627129288696004404098833978061941143110024588748546011273766805531417344590267209728308501305170014470640924962205126655652567942918263583737842552289925241686820071833907403087924001015988564890558553210838692918826306278740998484005147804179869169286274719652239671612176750818637221342622042716504247341110567037223732469052215291091370322984086775758852527602412339824059394418277784609809114901879727380500779042745702769383411841069027290886042470183413366494779218184269781308290163217272447064115733582596967569513700743307067521136161720722604541690819375243034173588977164701352322040334784727804604581200043277401976862223381208714476548965377835116022974463320368734291440563407796880290478264861265744581203210304500852405382702658642173177914360160962909081716479174253879591936736924613271293645349030186629714890493368885414165609438839902184421856651839827558940622854112511646903485595819695564899110281001912193661739759285265652065310744420922675534573418901874074474209488461249118491119138387727861695775029068380499604288228174528190618889758512528179716212616681928548650609955613816851896636976666243657903734549155305535402666229981639938822246875578215991339629017969563447701401036497912119893885473366330863680319013935197242375420648308846040734264032874364738876581381379593226192699035424505427928837920854930423259984364883532546227531979962911885736306575116270700827867076513498301757946511063274100970712837595907682438893606860423735339747135325573568125368833923264862185639715329211455511636151669752196973787307291656490278186128129710684045760468782306651740695371021593159410707492836471418324003021811895743402762926641469458345409149933197595937005298713121801175915036404581755985497769425203396210480389299772120167563038790736582755847813004350017363637005560228071827055335424340784088102215237700401241343752148388284701881759156898044208376461231132077654342389360578491586042075848426654791465589904563263448485671466173705226465921449287853336847035769734919933418359968778888086809590003428085280659663687849365800371018481126855704280689492710284791172989199558058205303329710982434190331455724149987857293877098366315655200226476418060137037557950763261832211688162199208755358315254683903429284603536371026338185716208762462201138155071423509291568813815009720422817912090780993481988546681938074620821855311120615432427675364591725711574781873043144889834918531166224084542143042889574307370609864500888935457905997059541738253337947824583805798388083468208223916951068833404460011952163983909980414567671224715678957354107631376487302573840149480659846920168909148706010688064139261609991465937528184525109422012169386310115006255576759354174441477001113166240509561866371626298130660461526478885797254372946639083787013783406318865455081349181773368425367101480432297990372630559850136329671202776545641107962677104714622457673988617926032687748290362209274542515803960487151380389143883076478837001488962664561066008281355049898675225467245547163850336553760943411288378280198933919121084598374391043485034517782606657979882360147621422777903510683672753165278067517827470156528565299668391722395017967500199270308762816922637863198479484692741762225410057888764004491471945750998574277000979909306762134622452283725443027264338570408892461638406575247589278850712603308221408766064562931756758873259032687104606250883267160061853438278340131709798843279809615823348539973032224753335521994391371194704893218395405604368809818454131423352040626709967687174058905142449121573591428489464205137723780420838582307392196880329807493393783676568469255976407826633844063516416444121052134626998307278647441087646011782848937744230227498954569488108114044311202805600571988628674303100095098057995748339441466364298245778807182336450623371598330387999040158956647142390154810255048753361946557727463276267879346695736720963585833073152431290230146940569805168235092357397616719599402091559971406499853270819670399435088413044233099754859122047924012635519380448973746833958626339047725902716359404517084826485744993438558537564875719083802749308369053868785803243785006087648899684693709997458637925015790423802653623137690524859013171140273872886910746272433561363150354655808455384474615500507749090960899612332394840373594891066216966985054381400439834564140757135162805754150161122865941706436151371735405837508109224206804007001018229193588823526284720868376710522009703681639166530874969549101366325699337611184331912261299015644030079329794044521240484691665255412967458092883330440446046228987617419487211884271559132512947538809242772015495825693111378014528994173997113032042552859765658010412014216277113330617388264390740873457745578383200277007661019471667335421490359197553584473921566071875892506707899558186960099131043682641453951433093093403214216929894033991091820353973125895841100129853557349744929662061577447265756599494292905067562522358104640675406425756047531398857179478444642785310398310356545296027012080357138054585892607522330492051482426690719284465166151001036996434841318183307628032112672064355840377031882319796563334186196514130868737004818937399033284768823448965485275279888043687875517878885944482804359204364900610459003421429417806334868067917705746318997069717261853047106685012021480839334106790216922056576062228635256079232327952938497322698749530786265397024064055082596732696328451530476628056505689844467205048794066911118341210729666477381775337054857054817387392503315670256237857864295730489634115158951436629902691605785593629237772582367184151146272380198489433162823286958105060684990998306616921057728087338268702233264372857363223868775500380483588045395213201419006748597116782022964857665112486950525182548356404682844625638504729009333906627164381479301520169833271152206437744492360403595468293642054424844475250214045372414997011410569261162357380302762470964846760111578690278958539777393995046641150277302571880396985569516715451176166115447515098331772368675013854633142576148578369368837922642065291890597695625556804239811100812792620867102630426103341035977245668365531023971639922369585691085598518357562717666028326536745103210791440726884518071434620937550378563540330724530026355351772653252328846374963202012510268706979731633583930351857291827527690313978983466048360194533863961225796012257495615490757729164394818664702783265200904230913964546533464649781484472514280668489469722939764880217612682459646160700233292076151265600004091678859829060664020812604183383493800119281499435917778057268096346168918853033013443883197017386924316452933907581658520958296857985550007278460098082069165545046740974803591922147492868615608547874271460533534462997426956828706884765039106407693113211001627078121554397766635313332672941844566322095619476520850412594991231391690045361051898220540983810135039151573311707967251013375235905777097884043468316653041151087480697967928701593665292778392114172216494979235512829471493701186793731340264153882794452819900789301939785714088049273698643237634991458117328380259304259608778505733781103907153376608357701333985187700024378661632955507731255070045077805263464266315686865283112142200886977129515515686855956768127725820486495534032204559005406827959109354074118988607513445611649240543795244722522318092227422345383804675495708481867849092755446081283042498784538713948879993349876098703239143527290884208473139069691800595102788316753387215641053885777958767050856634249763765771763863382702422338828580796544338922448610887338722070255050426269873725698119141538506912180484058567309055708671692471031327259981933092170476582661095760956452825735923501191205525341396951168611102683738126265525297354679031327806355653124890378574683496554325327719123298403937612829059735096248998616288965300062188949134854165927131103035781294360041276680542545455396826837206357128097260503086694248957255584120039762066461937792863230644652638731846032198280858760199308832763077279124046178860285958258999078208506785234332636828085461847431728193527410002844706859380318737598508034547956300888630337764685527612065450103128494911737336371517874454753038413586459842234111930037160627351943802044572711461701655101790685764208859857864524034083465081275518538688479862377322330785527079815923278583290055818214577051816253080237709806102758353660530095693983491817799714175455709740856103723025549393242273041253077760815309809465644241047348991057840330179081989442435337932141749476553733821621924639361003272277339379224897060622800827957724842062427518471325881424424247987480862373110319433517301987656108574274681136272873172789016227098546372657267415056993726467722645969597770912523728465216641285892462931679110225292148488113979160923673438468063458979061628875033235453123768800745833367920376138175757584216718811580623051898600911192000113247533061002964233369493059917951778092284708833526192511769098861194277377493789710289798503631280423566228040010215559945816926100285350506446697531762888215732474257829071501430628717596164393125748439933610869142563917539244836127109921980638225499177134646577666922511218028948848824004675369201216249626041721757440434231419756617598823954359792473693027534657653166140921307135609571221172584425775678942406642397593886664574526554937379800351670260881030883681529815899620894286398179124370235814196244538336371986769941368216431989239862615453169000777484387013630267008351816700585637154176087119505393058239961156283212789863638897844949520165822316263910403886700698267861389299234915529384313539183478016799910854582514540046956590106505416033488779159451087244125852956454386128475105638816080339137636046802676606183321277805439778840863602822296598665669327469779580082529121428686466322186868326382789340234630511360901944325402072964364530421615556270930600566471708782110470774971363146776045826505006682202944028751883311006918675771591859231598285466437743293456134063612102473270445158362753856743828010322773059069606310671571022186426870351323422747883933284281312026453471599747318649527755454245747020312524165856497942767555764181440496059740995739185626765087048425485859301036877819113164170471900085554885462840953622321964780996386902454361751443727193241448478555357584640279593613120895358097096516418383837347172427197384359056794286406105573076816539392892887049970738113648806240966443557437777458114226144038465736058370184322014672658867119891224559303692893078375097940217114371522890393015916917183858249475833414139233751747064227789350476353207255157891997356809836025713771038860310847009948517585931713385344995933483829255697108227975425137485508335932164002565449253393058446601302128509481762025965874322316241803736574321045681478173836114965431451366210412137710144966319193832950304377473482089310100805461278723698894697089969783320103192931398783476578195409328485560414779019139985506098231375701754581066909205598123681268812090753786817675631416689738070369272459058422358474277103007590911233173020014774694228980249412764959933706307006079485120669136093413960576756718400326761015381534829345431466500819476761711928919750159687589746866184875773922756662488546072378471412134662671953280325392668902065740896951213812886010762778232669165835279992310614549761543485605417447474679836473424214062450279836543553063391791730619537040415557955573013792684351960502230004362490818224736646984265151713223625015562770325766172780393295281857405358304805777971504099550757463077312390992738260447908806268234906576432835638958955054322291138442145431009974832410343756001405459766713870075561440932248054777828775941010371295063492507821301759548097031013582980149581062661600629470028385686108119343927266272578728658802453708528205557160746008542100593941472460943337121291285209208738509505768436129486393917502489225314401924041172987227418500480933384228681323264115566468729528728944337228106849124251444780779833727203626744425480946680052828365280253641652817008862828235914352933307276136497947672105281512903334560512082099713866878530739261352807559680340971809811751632988963552595113368421690435100851560778876326400497460853908263056849818381095421951017667235018666253787834024504321439761753665278602652358630727190744600340481506385868739886420641843846035525603877776305579699063774489089550159308789004826911963908226900637048159543892296407547987573621759820336852453560746672495740775040295645696851972214635418803668497860267984610655226218023213368591118107276541828810541746965743205395546216570730879816645806460520371043307007892112686461137032990127757018425759472204973528484444377186523256321679035961469225707749189762365745099361454849102781402074822178477318990700989789951478152658351113497451932188020538547470264838508820271979014244909115602228148583874868153077216765360748033300968636080588687400866782044595423519228207545818082028570440229845442796876996815293412313121949984986803010054438816666223061696342863897756569944117834106903527053662791746090208751910116374684916907852713434154899949996350979980753782218335105717480903891276007851365024937095154233861344684628677041877791665311643688655808598651685026686138038579879137655135056898122086216684283274388046398643557131934008694792704367111368709993751977517582599637999770926700512073320661261142914001620975037876475095458853454319961164955426212323526738957485750974686351448202814766903550014144767496850151231928644438130351883253709258478343060749157623840971827369372263999319314411626799057953959479876219065402994689724357039568972444706979891493897413933172299471561603859174003680828134282959162075383965906425921012804025074193979843311053856374742686363641933819908397121199082337906800812600058858541951805537039794718199265220983935611990664756316063540189756434613088570180597748279730434116683052332957492225060598697569543050249940978634377158804066609778111209494384117737139493101030706369834539140330424711545760942336606507722907607834702442302498679389336685550847270601806928863163104262991110733275645705230574868106880478330286149080076377933759589655606184724392561991592827294385400847598825975902979048875609682211739537383166126188218124241175093767826910088454664861368896714695640289145264172030335960567537694517157487987926156959273635933970167059486031927843829528111032126519107038788810542242150442389735990153048050243288212681286132433600729009269602145755476766734603001086757117490334481753352020490777139166035971771183889612842615628194658812191624459094203644652032063448171342592119034934810528766743307826812207147420324317302491168267414425945259225798630623239400239551012324198285256024578613231098417790919113620787819036320690363889854227413434238735516578599686088937180085343763687732621764321006700837894497864516123556407764864523942722022378866628758079967791678385266852508481248743345825334468770056182453677981591151605720293957184699455436398901525443573093256955738926697775692760923599054169526198269587323761357688346814134079209354857229306389887340163985697397530483193397647957502229404450331045173135250901141499357687102830188209703179102218784868461788866031115591958704416553084034948395358727265334922760916234259772112464432106899525152071520514516526367458532834205228096852060455534868931949296454156556477582677553671219503525145233282619626783221301280766618032838298046913910740140064860416617880737743443794423415428412158812344242048238797646521511391177069073913006884184729437498592029539483845388841970941514223963747035371692078629564404072159120005567084941204720852132770528580264122220010316489633859101047848804453754759122896512866252983235353716193249938151974123368539674545072438711573846281624976363440864888212393904033003597937690095942948117595610308542745835011861285123482609801848385950802458443780873203100280563745415405514472875206627849158491608657519213283963820160047115995953276279343535266376492781801021136295974174020449144918757228205868580419470525423819150212959643904233684479148008798555379930795825352913547344301314033061976891304100508016868293872490076572711304229999365732415021314320158097653252660124186388928553194786366855088561547262565561336247908162082606610277826953416833384328893895080718425715296843569737112349845025783986938259468100844241622360558097275088234285342637306547369971415313390469343828172000057633687842399748193561203898004493675251478589342627660543986395007377440394638938853569405265855881496677785482265238806496859477092176703320891432231634061514095044096912632052044948230844652208516002923618706757258077727151523292208781676174209479932399627247370862444738344686068803217151102641898065284046740771398306358266538149922645493088290319646494421495821713248388381953657312543976972199375574903835536878421516319613162345359185796675344371833574208416910353898779996153009094963326664697080211517062588296266425100962600233381792373759014837932396427700833698299226985900863283724387093759553443789814669578821975512231221703507724684259454348610514836551543187945310123720067891307630922454160495609001733584276996321476904943107506023113153274878889680259751058047671519509925276478020715321234892476124319690831891822908684612865903331715737759439418291106781817338459939094922240673320708087695091461446544695597709286745707593735202496663154200011751598745555982260332395589616647199443735589733169948044394033532404656506006303392229515253237973002250451338655736295048235538060326189408771222433120097384603838881212507606872843247182555359673113489230512100804636750797106021038402801980775029846968777244994073167562647017848471300280425723487335764406653247501719861476488537798453883218000502331252364156250821732906728465276472224754183653288212907978194208498506416146658359014964317131010912483228016094333442921836141995564115231236887661598609723851070476071565771297350384843884593892101310079507898565989068958917014043053926457361319444239501105419841974629550715068959557013790028398154092253465512799407880165716361016294295132668049597389741779213452036893272439319394428160458094070996453749953965798144645286454903253120999632871568935101566565840454550557369929334814224483529751748228132599612883853183457626456537946452697361983237736440077611048960482251217400468133042620655348885143824985003235528733139600569921382551972833873923533197318054608665652236195679096197877180255480144288146029792790672129159390140526716933517842911652195840912799424671504526873057746206617707308529733490271651862284547058657183770372910207054919292628987412395009758151898066888802368835431090516344218326921828464201072631432785270745010814153512648458928477673290756290736575964488005024517039727459111108706935353988142158852902701806350875606686343529071341309950675901822353982033373725121252501192019431254650443318078277675615655270294413101026400622027472585843449223865612366698031159148463781839880700429833380272793863420035363070550332602069453112353952275440006888237016449701143292644175732503923133748776904849165018943469407544584146512836267746388861596797250151917572536205382178808453353737102965419250420846992743003990587006678676707033973285365999192994232316199410178663753840957821109798604510367241510028555961589476649226634524886842655666146534923890358935187445637560873472029106759100272677998379065765373184132074122049868806404390300782255923915832779548191040354464855435487040451972752960638489162853303136003500666967433349752405582224414772551775723701502987717003525572717940275721116153110237646611323779735886761442100283561338108987967691698315667344417268458990573026182740408325176241087360685798068394182340968079415290238688254123346043755020099089450357084588057431920379760292929379585060806580558942906900196460322254052659126050860548445511021390248228173768164436809939381594945885416832464547988478618723562034885838115524125758298948046247057017478506286689373277065664173102998346301063254360822445295215993026424375127550647102007968677962856203429616114929035332996875705459952539141702257292124307453766432219985750003093852794186222689178401746490203185210828222352317390793208855659661703182999428567152803971281399448440622704420725020480422485038761398735563965617996914697788673305334263362152342575853374730815090030750548620474278359799222862075369310988201567644225338056823522543297919892892032289615108444476675984725473308249039652498516352110430572942678825609731965515892195628786512169330444587285607815037934151163537497463233161363478779565129144257839442322033797132323563715740226152923972976830767848891420955321355397944242036773029935132309477070832141722080094693970156856061972839721273107677826278153986347374369133049903106884803840163758729380171168162381215318189448045277501939832019138843381272072515066680876664335863594301433440747111972889291056995836612637732188644527189745184996927912198274074539825706578998777807030230200839088136703732438468669457374145513617430684232440175509526957898445207870499600423962804699657732888570211810789979507786728297642280184717776983306992469330858364794135284952383804372974849090222537995650541653527948921599726542422787415146348485413840948351788464788957767233864071161839518570745872204242150994924694254770252311517787499244425738371717739079553838749048997215259369432724346600490273818814374324162796820427020551896184361591876943817363400004033034763987652545697950095273390583021658109928922253565249630148623765320785142578737125555368591191454710575644055761257788788528109352596027724584915920541140067498756013563974890588819711280311064714440780739717956087418136740865325254499279659635168766485197756570127294405730045395952577405831213941537001056149085980089668150606510788369849539088085085611905822367255179554676754071984736097714423299335660070349843222492200790620797156194532393996213932097988741339138892571021031700500300276743590559137539012462182685275191889271045238422345724184312924587800310616774296315993733645387949485428296972807106420525244203311586917315954729942722992148722084838865886353495883820021807420038046975763221325512404066633127850152705319681396210169416026949546464021288384495213877014814000549333623980022960359290204047210374243521217244931318661394845237149620031163182130893800389184216391255402121178337123314432226292932193527663311781317278407009322779257929709734033227449979310719050618431441918971566746437162126542693916539125557162830921841951117688959716642495743379414041260852040986423020222192970308539163073177979097714830566872814987522919846657948946654393848875893696455421034050217813208350149434732670588976302825877382705029760519969336025980584522185670636295605561366588949702426353294173259590121560365218902060160427363143212880194432165945495106529604052287868544157175439907791384478361688246268629393951739534230635193365460756329216763076524976775900254913295108876006925804373997659461843099085350974520202877632973829459989215951228294280029776278078071057161599139065552150478560024472347825273756052365037342995757973969597777754322024873922036970451603320373725482614864519427787697225789019688991896089380804725288021933882584543733726460062883887265413461743678929698987654888604517027512589562337439518352910388531903052865906056560597362211843095402467257091680034752238448956658651961469948029571858376393394132651747435109402074435613495540243287088388983307682875741694366298145654942824316500247982920590360216171268696767321573207823099815446074137333766988976411487373225783713475210003547551437410024836056859736862450858494898852850590112325631418746893248238499230167548923006053485436147770004696557570986229310706727877194246861980592425206708117424818831895405762760491996340929939538953665611725023764860120264810275970158460983670629250437525909117566663350522742867208540232427633475886555058618585524892635828315662409354569193901141412754200479581688690728539232388850447869344598154011942731971468348763239532043261575540993644924426941517626829923728793361569810036250786185604858516025231836603122104210146313237352949551272365401063670188131393278192056785782373928315533924630537761875833789947046160920660649038947957754825721871532708058684169226801337139675300064710212473434063829630655476064758893379126824370532366934645586467633815489399642691682246696050190478527214944427794400741978447717862941533901927300711419475529871169094127249415051835745393538821012827069121925261112175610406485837966271411011683279895455619269491942846076219271484246003689307360464877473211154324984642462245006749275453548292332761908815474331589963491403752447795414650059096161243604803418861207937204481234468667626658613064463886660233758524721102939663074114770796933394251539719180206286835767651562235953845124908237215701307693167172989419013745866147270812048931203906259881247048524471711985570875505476935529437644336635412175844254869479535541936814814646962736184400294914157576888439935740927032438235748137628932535452243506815348443101733475500683785909225523716007286342377407375756794753160202829239288431388707306494630345136746603016676939386537419819902443679649510095893873347450697603577853196634675645235611355922793682337181751883425238923598909922293286438395580021790247073606095841471064714268183058430564010518544939976805738128549065168678261691325461594035593345964310144236918378611156372106009196076640811230213103048408923204699922754880101051044104126618827176796543102053810288411518042565445877259159912523798433759676251402451421043621530443553736519966585984024966419314640886437062944043766323242926623155519418802362904721669468536618796883924678314996851088930611028577786518458353703955765403190355255058004233621408496477804457548411466033654079843137325359168603069407065776926927348815270527982473543232747156636615735774949631836517866381207118601265678340434542729110503413936362261684073609330071380740195106548828984756573284941009493722106473747959681480893706525004049295461314267457140466912044874847527348277476644962854044545165597417091975087400743489584463831405493962291561718335279905894850520949303042011202129091660796824358188762360657635593102087381377253865276807866956603539553433403079568556890540340806277547225202148165145219195649611373366638355573878718836732155759594051101638945784341396352204676452207182687002061498634670045402215964943274768319930540005530967994957248262274318839423020081631051442470680717690678484922435328923690655875002823014577863990770699537922453865689151738087711477552187204873350709429701508472175517320159084504784065514064813492331526027352300323811357625342224766315187363000224783449980139902155845139543394536725665043393703958044417929613343888177662843157960613739185227273008807446478002314712684278393376025004216748770840780506878836178486388268094221479192685602703597274098870127863758897393692826461537068347044717479007746699891022264812902891283897477910728536558545866507616683229239812837463185302271081121804891631504244431950297377572940864542739842604891162166970765675925306506825883415291090440518186229000040250714558763890295583756623083857918128913787580406717541670825089513783213449172501236268340805841554242077267411147595252539414004382261853350449203439902233249571540846250741310593327442367069012043848745883628717957341218485894445763344972283648403519316093559179136083952260404357723788686698864344228296093848459460037584406862445424795466478234798482250372447780565179478841198448670588101460306934114128115253024840142653967446520517922397374759131767223794373064148722866979586708784471688343769080350677629236726991883263887466393487873905175240159893100973545043886434014699491440676969467217306811787226411245440021996540337722901806694966666809210983820637374640753408970533531657046663846764560487606572646164863517936189383564408016501765710761232067804064031938897038781177000650673001496869761145563647291024902918331090038103629144066001661458465500043214788436409135104344121191436071160384484637208292052571778317537193179318557012184349366375074390259165411007852384659232430108218031825902846090060723264300251813971190188690168879266454499826508512585858434210985948258015681294954465427008632372527678246253961619532185168748598064869578744346538489189278816950858841178423533103437905234008012707939611641083005900776530999146669103847445336323289430141580472941051380510989088789666113636838668964781760986039396334746716955225686056197421445813964420935568122223195144355270952259314306244368882557332528053950905959900929107015496173082401700394529094064011069028594613188951180765221945940818546318752787117068934512185850216516719090424769731397144023052209254394801204774844439807900369902015128857252590033289746855370056789299982478934317773934647211214543487751251726335871832197041760603266235951479230786079755193442153132446333578054320521406151900543213004787521164882516774458305786004446524788026586208795422640681954746638593345970678804100349918139980644580655081950230680861639715018463654299268437862099389715651724625565037503103748963021928266490308505775244771884647800559980221625260632435229251767675699788311674274380060317885823360428969508688061216221999439581419439640541435547388248851437148513934292520156554556175423166500432186143887685896082844245496677756714127846056845595705370028799875592662545919247781761678492226978619400086108743223968017569994711162187475165380490339950235284086502156364872866705355552704705127110504288573588967220584145725855004256536854201451580450059792100191820419275515900425811865798759541296372965811249751912721472809422830180036746336374457765231661522974980946029990097514171263370297163524392901982297797017722828585815413369929414798936957756429064170956777028855400859119597061047721929920576775049158242975333425028334745651589713168385775172682698103340066018103125773550418099958992690643803400646561461861851766305946675389493619291603199130649685957045996475188532476233634477872945145323326974546697537972646192513578038499902378133225000123127153343285602302434699153709499954309622497326001110166915656996995237654488440449860303063652483719581767606086962407778476640237344067303989045214517386575047430740858453202891799444097703104762616378045135742310709016750153665503627128685204087111038669727959203242045061419961803539234818977553361656136331110963724937889466481291728281623026542510285704326654647804677285797838066224221746946831451010688534793649025761418781325761775263180500125527343675000972513436047728594464662157949865869728825476038359448399616112299911114474309768086110489764058659044405409642391505461258417960587725647261148664791163938595419840113325471379537828363980509568236846642941329571901056639425509270014857177189972590002868055800140746696424963755159165526989796461260441021149291178221553237013460254522453808613591758673784828658593492336197895691736329042584162872603342248633287731798675980707351428085250874696096313613643135053790371190046941093236537545012520519999162101698738498410354543723253906592649865792409484888164915346758923201440432533912092731255735143833589170009205473663092892072629797388075855580964078063596428335626250863467583861994577802752839297287901982553034405227407608247410526978463823569937386535819326944725767895503872084789370328089375812096344555840685731215390985386490038736712434151040114846937306883695169653937306432331393487555050916143360799309578059231004122589541996679979678286122031526379293705302020252182859856722550403471005243747134603640899472683463142322500756331114716002289551580630193825669530268018141479791957839344973470688331115941696379481240877137739892203421909696241595876415322227816915280750935930865270459706050712676392829527157658319723917628257065651204370591565464475966509271915645544236412141923730266546555912122823899655737919786901336286646082223031887657345185699766759615113673539964560213157527148186249649307377364840620933150268891011780829656667642429492102616313010433543163994008256749784170391572902247404285366725300587748404741871884763368097330597812748076082213507337144873268531137648570727808677361660676388975598462901598910973887803841751748996682430591681511911739130700981905869518965415457150971898356757320609071299073183841766017736280023912313054210833554233062939821434320938267174540402700876957265518890119344201013227673298777176856686047900235545144021382181254122337022997119345767136141476251069940417525759806740399982398142825793715721950527965738372569602134173943414252095297363271901393558579369565538020157835968856293281544581913938518978571202555564016500002256886020645434612901948301260438450053033507520028221012045736688347189828027592785907726838668600908082939482253421947773510702396817285349818084050456428418680717537778469935316855463943322577706609957919452055965980024728605397717393838152152159210295733128286350474404034261502536572964595555783777945189487724834413803014401762068005082861363323270833387693880705219889520155841785824829097647486500040159480163552360494671643160846792049193805108825189310221443554430162220227723103484506044298912677624020275364894401762438570788809229893624630683601629803597713758490777942919640149377461061661447808788746561325059333178483458334708692522335833721798084421831671682012030021463882166568965505362507999822527893450012408191492818660238360717443474027071547950081410596012728382245612215210180639096657246730425731560443913030316218158049533000929112085437378827962496685156774719476711677822029468133339987678546447842961165567625397435887214902238080750803192881347326869324855119806885435221518479947696046275174962132959975464262084744958036206518955673733116049818541709778446982281878138887824058022452075514978547655850507186768334355406616983834570784944937753351922943445991242428590364584648033166276885008075949530184534841542775467578295014561410244211957057859963526292493330981386945912656025111756465625533179760641248734414032666604866632822352066648889538895586260549940911203086092478573667540341464363701549092645473790866438642342928413931275259700376305438870211946444573986168079753919447634258720999311080331738343285507079125270890439101766075710045534048172731152261633175471435292915650786212416021111008496822358941799565169899111694305734139884761072736787645457658909435141236922545714220301860531235228028770074146303018425981101535157076356219769755817376841383936591342470638328754887988612320634098430847278819114898898579494101926769284863904049352090010809446384169281548051672897640214502723991969136251051308963181764447586741306937031490346368629067775667813832625295312458068344401825521742711650428471174290593913655152823565337964756086995820059172472687705722086965349593471254986268717294423805395013553709974749371905725627196398632435823983866322614621483138783386667679015545797715653634578759808466755587547477511285457108988123798339892376464062099872593826562270569705774755598897325656754046649735178166815211073514057545313145910212967927087250167964551120280094243800764048633554515028773250820999850040659061443223678050631089381352361293388817365562935615476552474480997966684429704888841156615118998927437793437622519619861489332173271269253653280629108100669685215984907026087680155005397051746506868973471227840474568097908084587401090350765688445791234083132013658327047901700037595597798642358093450116080594539549548547817237301939486672480077849399652345705703784093503249041836608994680072316805936427287342690845626386045391672138960221356639471144843683242952542071753032865983044582536305549251944362069031393907896197272531012305714424381475463798629684839268491167628808520008316754383148672364198937220869672733980060421229779050062989330599467354845130162918680747071785336878813028278773662072427273683203714683751125264163279641800697401079462111750000375674187707875698486787642166166260833789864433918685340290170210069596972028429089768822075098137527531152524632731561562006627891105905601340611479900892217951494660720713619727121179317280980239739218086320891740669409339968452975106674115553556819585157540593752613863744780061959571342841038730656220737512282651034343733230229327393255291089564996907170330367038715997797083372603946825339409441138084545780294466246840452428776941964268249779580828666348145424029636425244408426468167380732089564351710287410901081243327026478334647213610572862218329976003122937742623238677638813371951548210003621408093739219787785964172131408573822630596542454964501924961688941690267570395582438157407934694356756858373787399371294401493346652497954872577538830779787436409871509528343956839538994669463406285877856685884855367774528836540579632532876834726621170671112348320806429923726922706602560479436932724140890513473656379469279450319388800584122306041435094202591835742120639402292118064377788009970770033280700562635647294346529738406469202017956536733058839904053738236812778527304835821216425137764838897767251511971823070347387951744041612647003703845753177801423647344849945717028801550913848096274926731242840033069199780442578085543453446196288586025870922652192056468186367690476772699964095721267166028308649469437788466826386865364431938839312091955022906593174094323011276433450462578771206441972116799062033099958545755874618853394055651280078946744013100629964755101601197491374786259006576095262710965674451058319704008872544255872171981021743401455472203124901288386147910391184801784138357003412077170193613721582219506065261469651850651969172410252414226948116778362712754167510976490661823320623999683292384437137693612583050517811256065166779904702812535946655448466630442067793627148258792702738910639249608348629333036366578664102547585911046469577712811409802147071163171391093125502563826256278796993123368164909004000851147860142567074255036828658750320807867422884294414738107031093919516450599900131016407249253699348823129095660337324388151655223488500279240184533007338309062594425538343269540078398607445495952083510293773990681880169788302585457698682591185892588614918555668112758931120263150615767063589394430088706569080708283797827838125767597879355764579796891354886410175151034290171513468160251779015072367595907344522636889759299384226636099320259540529208185490371359730918617108064487484183413191419654015896262231720884845082044165516268866382919367481545040388598805692969972496479742041000107917381329046132654711447108662669030232664455599110695186740923827148968275644292117036946816728463911564042223339130106160594256040568016994909804929163304152844809720936499724645642564484015604817804370072175316683314964168733169098249921636045747827135225998059296392376844643805745354159876096785014463117467147515101078159057462664878427002107097300086416584361686982440363421744435350921347614961063557060168768650533353380898242276565318942025020934296283735244241343605018064102426290820654864951115098510643299226764904516696504536474049194914403002731033649451249149992806454569400778498350428404705887979213342378966207439323580946498374444141595776912193353994917794268183215186248393236836483831836627229909096101408637444293678668069814760646034563780972141286506133950359125391871151762520910632535831923855929517512999594180645042406126762944389728140755451613994520783660503946541225496239985052969126254030916554036217359230127552502899374442925300524808246360064848813772865932590155080123072165091472399367518512055654011048648354504027897131058843742472266550757539856767028647514033217667173987505453360589866705831290934056229277106044063117328987707824740048037652705549189304159593742430476558383791350299570296785236195932627867964926015860478241859854157490673916262676896684527863498894110813472767142609898369453711186423658790140965787872544465053453429926066733420300324165226859523342994687743731553590302467650238394067991121390469982956246593253117471225871783203076359027891743513082196983294717467517212442559241911349630343953237919551861792291832815312573061194588191712026738438727249993685501236321555966790924259939342900328383140277882510015171497903305463411480729513490660252883206874910796061904225290932291277629506542082018968463291530042709483003664334788964154674237784550464649854213617752903264845274232579133726168253178681175026058168340022447326951885002651538477829534335205924170774822150876901097694082877733683347884769646250181150604574180933433318528903961567542744491321146136667149397211542458403522336211901488387979307239965561256754392839204604509183964713926411106649888579162284608626400903770726280471709627255584522752855581605636281751779839103375120140376803001837255498402734070149484174318623694340451819690284314194647114789972477897876890930881327132128286640769227541346715450954573766035762313894118248688330371633549644045000648082510884949071653405808621903815125725194211247902747929009818574484832750860693746575853289624597890128396277253811731694134121932653523730409617955947594784426946846972481139966218924124504289922689091723193368231551469896243046190082005905170229907978031729013329798287785729544374858367454893765200632417480851232470980223498040247126339196541404686168137304829999573438836163409986487252151712034855251940861064523568533482600091022675417104598536855278063490647180626123612593720101451076311378172058985239791329303769653667782738972131658805534557623580002880934331123774672319168924697310734502513334380545577897251215344678044048303455678749755659618274775576362403051708379218571476010636224317255627975070041933152607131762940173483028947517346819506434051716229407554473062151776021881855222383275646834398041234872496095753018683212828047874667101465893668246410545718792962081426005367087238365715793616332710868831323874948856048345922980024435566933031239884889648417042509676412234518438854324631077761573029729375384519621832381438873054707748289342210856834131671666283732246418331984706620948229712050127606626945938601894552091887075353286115667816320663721163447117910837463731609216183243196398451647272072465644129408860595040112035415716719047717100064616572544454577763606759972275634149465475004805628242794230338788512087245172794338604540913266875539635713753914816339719914896289155198059235205184095761297881138906626992925619719109636155854086110926792161494933431362912957704712998424851880299178625636927517066378274602574396995366370897947962406204180984631804195900220534000615391529259055630500095912161990824053896800649233417350251995485666502342383794519817971619508620086198124164337344043525614979881924275569358969704813748379476809111696161327012950759205730680933915869252707098261623068240827328946788752526542848456534377962517052952972595515863940514268884446147130244425460612050726977882863334247773911023374313508869151757532263391612258362831193960433583449733910704635392298922098178611211785600046627322947602049191198428615797182027910732932663087703849233703385450573314579051305048193275904946491100897483689167300839944592466017273181733060604406156897444160333965531837850713356899791818336953981069646241355701216782510029169296978403006797992918016898701217255861550869509625924342250824806607902204436824678533770010030669240190001527696946000367023761347891054768108739177072152572627510049300315060615252335994428082557111249603689543186164509284418901035288754821116186944680403083529722593595404547233405076039685070650739096417158073303931515155219645271412900040585419344251319889082467410484024667212832299535795821025479958211234866070655005004901138589739597303340833054142849179239102696313962102097692883406462597963142929095506898020940019676373317404035437127006513507140166420959454259011150470374941929768322491105675767579682312106282139169752890922387988716506004514593640341587589384803282827490339576385524122112880685340479424255268710238312113594481708017194184706669086078855424780809958425402358163097103336471268777261798262583540105799349068715477472230245678319910297819464454582924867649322201873156632339574767044922091737812272676287051520559841311405724112554988607212089956461068939096830112293431519780878223129799678266016438823444625680492103546544646375879569437473979260688262542806800843623556137018692998403921205124845831602774691545663241386786290551630780023552287478420264730974146035052689353638617300282661684248011247766702876702208909788546884468365703879154790269229353043740872063929605031732931971136291775477912892095797120201641054754383469547582351234508334230579413153744727727261278440974547653947765584832619718750646825935390955473844281187816122721280939551575357958294828715037944614998676303000272760932500887298829916552177034992706825656012422097774557205177550262959021619717867602369735594057607741890161119452477764454878101678980384429689149335952694055600349696064872629656826911733641557399342966077724785850345294695043272282194439737199752780076055047758605361438927541943727614726539542119314068889993616177139923647730872876064617320606292878752628251413528699797578901315448292636617310232393613143694914654256673919329356577580510757728344906165015320545687444070087160039394704942382384116632213585458648757579455487392529099633647378622044671164167328087883731714500112142712383884669742676329708143259788615176136585185201369468143776925110898817459290713913925946754911440099759841488561356401437585461623847470326377157840567950208089552150797207758721803441593560794014940929784507214042727121466688301415119727357133571815286918712703674467757999492289959718669733296410140465596006549456028981033484762903115306868327599252087685030301124051145268551173552725081471184332726287244705151529423950303652096061204441066272143195405013896740874057588176633763302642395528153659003858247036011381636952826341098323435147339730964751620962629607372881082215945298559636132152172762650552318504598497978780242368416607600102709297290197777731887894199422491591890606161903979187282926725887393300739611400969508870652019663212375917563971024249111622510325411620961906842755971401953052002031970162730409195039457778503598293391952355773503001344965375095285528689469408765668860685296835321142802685419282537612571176027339138014319935001297903911389358677263957819752533898309516349135714262279216665651304579858050462269302332660529647993197313473825865906290342245861862464227122379336674311523237820032503886832166307679848915756611416627199576867890759740929302504703783348772781219460854167066282882415235414364018319129271472758275489050915128415494296787676930286693268907675220856918427964837779575685925922962119871049122386953848398973707566971956535067894957291871348015040153787277449947592999680123489594004790205851529151349841025402556231119639856246239849539755430544752673448450837642334260622628267066119944690665632897593161433043330196264659917246865390254087584073506900018525717680514503589304002236398649539448031863782399552543172822179964796890814410544898899341964930538420459914211925821867516555440237538340162142134015202725698800652071648502765107189163330582244838223043394167011349204062660907773526672933308356914867013327229883073368603764403551980005961723141626059122063573783503411573535637161766281928776436228789018724651987983503475385892242291356868206398223336666919971805623611110921843470776537713200644648628244520418257386826089371717418083772919980657678284570718047104369770974228377893076074626373798951357580891378592412000349531846019403219589398606444759853704066132628996253155007475110378330235931365289271212527533434674620982545038801880079944249583688242041011487422618398830834440975931427409349222015475154607483960186778344541062257030811375459529488320866477035210533444844187257904441174996886741148139289975534694068602759576567870945091650313525726503870578456585895542519901771641299320958155804188590691033857439083294393177566874564683644265239559237665621075244412173785007869146414985011312375412772004085568880097356426080250731647954309740779078639710055129538106669960919418945519728047879208910608774485219138251539195919922645305527372031234627075815211881119303234798100137381180296285150408529003047880201130580991271150718376858764697464092772642676081782474066701914960726642861421563074161445925699451763457213258998654870491650582232272716275533334544600718099809782642883294006839286816536650263613032385079761790915343547942173590638875125497947404630255135119903644618308092590875118453567284470044485282801273494022015269998048539278994430219930758455799381641761841808342452116298207635567621650843085652621561423207710987852451877233395695490379936693797736580627451922211545479341460738064533138093553110557390751224408340592495707496565499370118860556181005349046273439076044567458097976970881686599729330934738455875132957585452672199421659110206261277960229961819841385344208892861351903434827529898844544697611328668033564895840182623551743294370904830698207984403979589078864870214365494104421618474769942057859774373277082169674318889926250714913390458817251045336655800701064896746233666915225075420034502087471045267141467453184157207095213527645912046742388716803318391084920187479722144709908310219781173408227655073309227208656788472225599554982030530967415422138480484707562494198536036441422761215232653065474674367267261569386561151907907063349307807222614728322222132638232897279002093382151355575394312486352517849439770935886508983712586037729934527682281194514762005509509880630629395406908671959658558956439132685816583247995037214275298924654774947984980339271994911473515682067615808209733177553930313070330735296246821030746014256494049929540791767681932398070339705777204008547965089555720060018432236319143036504708758134892185175181732051580911728380313516837251558043852500084698827968239868928449968968906564353696622594482507328752801211537155140946167356613426464925701707850437888579940859510144845212316881255693258945301418414597413093575223223155582427924337855632772349409853881545908028802449078951843895930493968942479035546654067628389232817655279032126438527565978859277781716972145267297265328225538483754966037457937919542753015044950356566243210364162889314122851826131612488297847598811930518231526342731006370445398571589057111572606430251988251213684633768627163014189497769505705348820998677436048456510934569051001155614033354718091118435808653986504535753492612130769216277610828759521907552183453238672549200850416919783219293431956632355859137609064626126906649836966546010070331258871796277151789933999302812703222185926426954662854243094190163587888924720882320165410948157689737422951460747796935542036053330028445741357534001037967786468990355621707732267755843472668984120010326939862535771699694576811509228171724969924946644868576143436839794750827669970542061606917337354826637975824978309955300853662821822637955838319878100583717077431185969170076941818375077832264031034270333370008764174235893958593993003433030161570864537067742624221887369636930370110323619546656626190745375869156279454624445338056793908902249736957806374358833392080879730398865181330455697144025592762963484986258834192236716889501470760881550868714557874312532249437828063218823572114077380538864617606369103561653531127643817738888979181084534904831452649704697998729547814843573709864870466294165618940405530327650235367487069933533084744741661983896405194412943908592008402024170544527748283914504190205563163526981191519010421622461955103311164079881826032362252396914017270107840297230620651410690276110493937247318030037125944377133089246254378639725387656905836988446800352367344418161800394017216115046846079045485348585400212560726354944476949974756080692528447505537375304313462064835667482553649856873452380167400073211461938912098412047334657050367928995651729161030844853160992072490997336120711672533874999903373409298406224978718402742816794153924842004347666811318447685502517409222661983466875000774405503099378959775989838312366355458972975534594098534455545841184957772464510640061074599277301388684520509915359960236214820262469507636660874236565638061627342942755854001592136510151805154461712311358546444351420426639924251595279569093807762312977913444349344557383467111655260550695935675485867539598848645744123382603032634089275312655218105547081489137462707207934575134790121529160070031226221272075640191277776908519746113621781934564546937622815959950851785814724682311802020741400354663816613541116999413946771728494706296413795470232588538954298176421208344002752312225383343362413113590575215434843494813985699553659250138992979235640249470621303363026474460228716152659428163673373654425961710772135028437661069026506414476034904644498240850941125829016880948748828949763165428247853202744545571354092203981413684591499650743720863887499296548538459144135053354858179696367973653409216858271490028198436015470179663294936968103990248942552971649906123338188613109918894051766922537707683748048231376820130015937422528061952322084926942265860213427058219586831491970470497046201449403880612234468772059113422483649619067286868619437750006320775370094901459267281605773947357093716447258196570901245217691434164043779429298426390135724044379337435711217649985483650234672469664763254753677693589771915955982404868270619087768261003658896358261982612576824271925541727661746808701107425168018708741783051429484757899863543655402977051029788504547362451877048078483703185957496338354883706388204429407168906726673681542538481406727614150913502634714165069048174942971798097927592362316166084632330712951608087970900253758958172202059749183011288699532364471201375381563240368708102378494253811077227155223342188064076428852509986240652315493135199501883174090422784004687716335131382022584027149693819379354169315324026585143700933041474258148784464410584381590840907759205344680138050967647174226639034244409338846023696768520110956504810314755454787877962811696966748014085846123995654794741410625842690341542561795889421307826345852087183228349878770910792779392679513772985575648599598014938149686563264345929136420200488684809970650043789924187734074409682832663639127961389328853098155987707228658222730973542104159485868460786987314456279515539613662195236324068552542914195498365761063613877367803714871665078300591894628840831737339393969315732805476328078601091257560773970089777913418584054880914943546408360915094045004330087358613802915715968961760156718828721381408510920345833329011671411346843395768465496175727646896121714041515826749372221030498473012121895383641416239680185625444012212936281635313811221798393352083962879947581478553828383933661829660842154294079514218668799837661343367575300583989497885676090481096990126033137184860914584173803154694200595818431399300360841602599463491031076003008100815409984964813853495386519303419673159415477348746580394958533690355303340492938530809627258770427491673683192403307509217428014885604547165006515510591238934619166934782858489982583850696514011696153030034522106215285831283813558034335890946580889483450450994415985487356526301631991327046882475480309362408298950331726815913457318428884606846371400207696257130353569121513574929694840295170432278823588014718647100188012483991237946135845974200647670323735793431233983913648648219701429228971144284772233067474202068308175940696964837289982253337238075872134191120485202881996740770238814483921216352971225720999006642877629173397561669355059986642980769688965077797880366509729542305436479882229013516145194609880320559671513163432175235586447024378367197450607727482863546501350209343394163863703093319053731314681874487594721268666891201970911247822433062015089021733353600532672867367648927568110616186862635821784145092218471272563973459161320725723256458949260425441057197584560921735002804584978467416373619694657411216959588273067195307493885503846829117601389319577312928390743497646286454750306018894942764761636971655508635268840302971823321903522127062423984678327429079027978478588925475502162467554271470180796079170745676349966516806309432771726137092828341164971562839651519219460055312120028353525270417030773795161222632343712910466174094328170395168634915006438581294396284287995285352496093642540819887279831263887425725514909414201700594941722194697268839127445539382207085755285524756675243691527793488826065743468373001304285439025208119014012312738729451885826810471194176388769054929697577122416426090847745435638796843002820076636607128753041744192017876049464366202271492432804402853221578819947017415626280997869756843087812027458635104521772008173157675547496846688773044624752816123271226479685426813289368152040783529250553815280713885680607769643898076450241072965678295982833422769584495329364773632864365655435166119401863856981987071276213378134237760763007071735548857117347838038183423855961139113191242502889263154107751047184831963980817537714301990006666971230188686068858619083037301071995375694876117698670310007327394643484015162872778497425097181556977301754382271857086047413514000607897203708936938029881716847853115759036305286313293391273536655755143031505335444590005864940974361133905427431074597156964446022707775173582911933892676113570735318265078795407170079232284265321775710241161081719126679310861755073802491595950625157603121536960516973617389324143036070468115858617804698101621850649580090931385057332117892847976074395007551830078941542679743903252545979647076421374204790233525647899963865844532151616908805587450840811536523442079806768534160253563070482214180522099361530350713539054440078442849666143961104688776703867401725175294764159540647732834503647640667019639976925359505836670221206024824254999672692706627740369014819751910096059028706795731865674762871358135441105377100503310786041054397716389578350030162275309962476135932160103092083949957785223183262705148945769699560858204503017823417155259320401719030599459308813391774397397764053437546251156277044706759554288489367564371832271983413401277750235105580526622031915449878931778384679674093673213226733031662573939426895300148036257136435766226554966299306841534379911450674770769469917586139682401929221458301053200636855553172101845393360815900403855827717055941674922019405901305987896060678338732608662403142586551271247505058891882741636676628752511410833337693086943255651900946957516162147727516901465987523372666222170749561550674602874304555804448647091868664883149836322147818903960968546038477966747868165081049248598815850762850311390374736331781177295112469913578814289239289156769617159638690997033242318343695892916687417124000802310561257927906424139940200885112302935184863507731734855277784031368720712102324536089050590355301309904408810396799006438936287999949440997652759356721925570249028964340602187356114324623198363194469312797512400080855609506533103085196464200818384136130525911178584038912078384182595081314655259727305279938221435926936391648535806265340105902535702263092043375614349014203936398744646627209150897274077557880457676181650368792667288837314141815106972543034776126332969156527865386034642907569749097252007278861694139221888521112336345507616333158527990848021271982209443235618925907490936175517977079698816866798371400866636241580313246707870732752824114424657849651250797844242510666733658132233719764076276439202366956045678666679651589343909443065226144146609792574099059852219101392461301670399091629528964581497469507506269731504670859763349722171702091235665723097717514999001850400144442199536221717970039293465224875606189261289838259368912379828831923589741886644885050546697334677506751966378643782632940061948908272652109915424366056529392163779565634341359321490303214436141064401740576026046793826181450258006024019758874941099761335596878428933251257824134198461370539341676962810368196682771107564900488623712688784858924543106546702549586519907677275166468226907570630296252705886013570006146961188674180893090633918949192481694006628052512087404530438018771951313277599557964111283192273066609639757068035682947907181346822800148160160056547752703032557886406887246666667707469959992200729339491443335274258077650067677677944597698527445015778522413405691091641552451010245292009615337794620674984425327414384552763761341764115294315276541249395555652002112245297681572022948696561230654273199341666483060657385212640367740445218119515568832938976486004437117822238165189486540413001746274245331861476765530406341620741024585238740190863367437310717607636288878827858914390381081470227550618419542142834828710626398745200745787869709646203442128970851115864619385713431159771574077912828113075263907678765776571175642348436109166339010424991534367723858067357763302550877172985988075582024330504224779108757349144195998225611850512242772171293447858503011304754470981473663033379709895194171260661145389682274327268454218643416945337009637293381438202798097813629240000234137808224995347250050302922247080283380841841953021841664108608785449633460931690855323665244597528531000582395376577852368199852625663031911610851544405627869995565998912349721220370940161413004808806230848225935830764210477594884399461131143346871204073078273821252894900230444631077656133513890877085240526973585895538938348284755805066053063281105653506994469537998107446016496252957389177212697688015226745530988706979734075868966527338542331444872280415425262377007234946425145055022247055195901341250101854214277311109684583012838506141444534013489283788068314942158137434645586991019185367079156817693220575402292586102339219551842828177150952119444891225417439134491455320066189949424805215893932318733671676021891320178417086489397897839487337199795289046781651319189412393926713175637253248592479644034473625676016610734662878136680979108354789756836834395594081827230419094923844985536516769595139573171590744926486036091135632409955642991606787344634167462590543636592555782076137464784248457007978718758689622850135084451777525150876970231086250454551959674746769011540074859627348458310525640801620550228506752826380815018597064495115745991614776633473693797492891804658502420377612224454787982256830344369463801253320619581856101484069644430019505962893090486074456877872286306179749917276309823144555752769273012559779464849465172787664590264731336285939172069609370560404386041065050395773662904326299404951341105074056391453726591627488797523521659879075883790687713019233428155140161382808086674969608126544381503130209052595233577329261553426811169928465989883710229874522936771570339575528121028009291389198023515403227308895254920850264341463848709013094661974125528950896030630317167513263515604703095833857705762410066597079347945308172125395135828013975532340969515653018898422720026033045832455306298325297280294200496050789914645034726274744444208324818727705870495705394258787819787860671013395320074048321985262715722195778111255484969608495629500185615255236129681821198415847139896325967127779371402438940785909229225758898907780718601780074646995559028425833748111225674849571562701601299306283515370631175626058560525334543810909590547691217488689210007900110693901514967968987503574724195756152500148791041062004523953127814129730925225752857962579302488412502163167212740156219870732626407600762269335275231777022125749848032922111819251235750615337814625149439234307384355588690809957545207821417584891852903470213427748134261992850729602090899267599591802308138663721870620821765257468709370854139678087340655107987581515441640265000139633955846684970194848039286300494084557342918520885533586114177479609820581184637730393469899564995447695026803606297456517208579106627551302791544093716191814072530304805933287137075534672149330628728296406270887720324587447091883879634812656736964283955048849727017654400521482695797319172051736797718166739029802726540521278448510048028193295334927967546450715237957886722529554958651575868048243678480174708552747228742487878078015808195141065882498310514438917563801289126164489546232812396687067436715312133273420576303593499415883319552982579978776126201364581650992239106040019125758887940984834331385833751524623929943584701020955033786676612479680979528329224607684716330597751998700471580542348943389898488632399040756876809826455182791448826307088249987765773123781913764566837168457035721433966504223308154927433475191667331088947019521338107393185672340746158372091688701039709255164073341013621255470788509535224703650757633424846156036195667405714772393310478889169725962672470968924982777136967287872036378765025463607617130332295739096599423287183102573875811071867892540168774528499060304101965784777094251743296361074926348954940705053618087581052129536144604163255649383705640525480503360631370648913168500190017349681155856881356108005763525895885845834541492643621136741909553916609161524769821110217537223299567466599455948595537859165246942595909795577197285790045697861297312977119675146880572023681345079678272056506048569662187146323485921463089387570820402704068267317220770173674561281359912246618480485278169296650764641261093592631308425401724962854211342844478271407368704426778510038047240645289810585240328608133005990074008774985368771288491562672801403326416722341513764425569033333858279440655988963742940116289747081600451806002616815538879304887259328416105996024157183115980283123527904766014001311117349890901639187117720137866948929530119251281292921207135655337090977475822665160889806682952898756410831001592496385420711415795040882933995504002801430655618115821811647696250429162239638023021648698836059296814717035346668831006368735964290290000611301921358125532683766929779238362034850314163848146394071018140242341271762061179692350253365585308120047154389639670931908149334450886764357227713158467653140931628391685431312752964592138988555413592938425752777709206050868939364826828418450684907633401514884677979126188846631077161691315288491813637708555603730633018005295154796751675567477753008041016324139729019266267275162593107549544265003459402237580165890689691866986986527912600458868886522749543801239662815455815196831804420997311042258458071630307323542700039295693985239988674795759163577505879600834478442715497988458668396473114865757259963986586133593004290056684083562519146439863691990697123371915727132360428474045352946412428671269952635709618997266571596609892346205640829672124463991716374947068556258761028013522005400453725698907908204895084566911784018123114869359060471323590919194283720819784113490187929180027211563490767618679111298307168735797154650863767843089759484834475177337756545794462641091174746897749087577277283739748288376598355596377417385388013385714252401474085547588981085573525744469871399140058699645210404806122884213812749952593276670706161776726523193304930583537952461662158653239973981896550732161604453796860951761507099728906238722680857855172709507247752148270129360152125534910513630924181584800494954911412214408190633049169451497577385194216124900409892941116779203040789838886901111203866846532431720734139799231374495027331924674813980579607322898854784357591219594762190385857199229237183902864927549865206969713886976509229094259519843795076768247970599092462814951059008068568460984842544192943631146021616819718152153121669283139983650436398109764280616830996855226191553954407756917567698399918044701066695577996405951740635457801741162619102131983576688102996648358099442855507003677982902309109322646037517772832037884124878311623519959654773487411880476732853510780860332254463388698807929619341716937872646696053433585456099212992582428134814197293641489717042527425327452500614417161270862151499809557322468929732308334408057184027566830475728483032084056994815508982756984430836952941792122573148743257862258500987730673834275763325605718840196015151461462560316620669755075184616460022514008866624065214549007755110926819926783788881536604831932106726484698203476973658506168787526580974164576661797575769641970005878499748983002359092927645459699234216847334938489509040325524196622609921185721586688804498196421586639397939120061856438431880026773180946916272771193605341418626713345867718707841510589491027828151082176117195806851716784777301579705868000668771222116253401325835218458775907412752857311530913222051599950474768362178271417841883890469865075877243063763461444932915977043869161008711619757946028456083261118341993288596099301823131299923317919398668906595561191017024588315732378238923368894641382398808553289544930793827226212859472008539147156494473465639586189869078874488021376202919894859471229071817706169732409308368185320946416453863142373582989242680017138446925546395319911591256669340512094056197512085434881722265776461038219083608002728804336028724598070056346071142698957980799276362551080938249947964723791526619308388295694950652528257131804591030370461875722383356567875077539877964188261076962991979326280656344790184330970037520741024316404495533439818779640926308715883540790819886621580188624387692393874718960936931239178640838198976125227586546394382994840864044012651708449864876419481801671871485076515669303069404574062565836886918330870828961545133587387402472401537153315145579919034377582759189693792981734260998770091458615511713241917520552285358249915863635670351042425807156897602631913027515042164516371313862889412352607313111724424274350601547920156839612669014073619722832574111242495337972259405238900117393724984677769098201334621529557117478930463473602641066830596505214606003810383769524379517542772546509934570612548757681754838721147953867322588329421056062519959100661188907030490293821209469984271436671894341137107839349310175307375275048102275567772641079552065592303154080655396035481533053673530223729211375865178291640368381953340168870593979061523525071787571214580682202077361884808447722351927395232887344972416053155163854821831383983221426439479667536246135677705163422861915164074342205821569637221621898992630927215762833617183988359981455141433884655695865163377205619435076188705813003384509379023974389955338700847363280738791912409500761329846891511871498423886325322159403648075654641418726628968980262820840340294389145487141297216919748841731551863239335005316053028913244058896672774877226123937388068492305962208211675379364010277544635125003270739713553615582325555362274550609422923536942573622708812225378817310671014795131112157081254333963243555599672988543991463036722856804771157529357384086724592400660470238214226406270004378622972792108762818330431341782716006738325685170204141091961131850682874335842507170916436390412149409787333818771220716985281577427694278319122140635895270196243824778800548557305800389000848575647471246795698705461783603695230163038700074103378624199601364334354542086285593833862433866170079203304863787138495344874089363641582689153190638079792378425087429469939523570327586244178596949040756469414352652358703748803391191994616327719450810257617488771541428317544439673330742048316558684287894453679488775835481305098275042727258733406660662854568251029770868059465472077311069698294313130408733408336218818820450698322587404371331407429417266954264384811015869472264600126312150692072801371324044377770692033649202273082418346169263400711010518931465041145291055370386996021606339443029129979806206539702305259101425065925470116340357249039852904769935197935347050316273092204454269143223833865917314920976983531264831640120911672575524562240280494455922146571689446968659766757917328941645422520846623281307508962342216486567322997079391042436656200085556076046514099191605696975750686307286105439560019130466534001561569793700669774959013426892629280134542910816901350296496844707993962996647762251754479383334089568032440153355644474812505498071738680146399451751484789917313347005583655243920337635247267368656186819913171771060018219522010217276627796660785039460322682443147632360792564422029959470135233971872368468709908518689687182675094842089127078795748214710552477865040597313041041744183312737155069210552798268175279457853206744417731338157124839145451380683693737447510301397547994718981703741474970293025321739195817034451868948945803120332209713868907801406010721383552791416580305275561495710223833705286531209350298472016485623437070878433111982918723769229711415559553821496961538926925839869839760133248563939093491637393101763530193043630685836182249720704035034098429645802475757782064351398939088363988588164235546074311481391697629212227506952585102498108677947285809895884838045456314559430521884600001513114761231425247937278459883345951161809095471027790219856055364743267598404868573076978282574788638957532640029244897981067903679533275289085667777003759445205642608004891201238809285576550213814757563326056830260252323705065722258350055677248886021366758054545958698205497878615092128988761615356164350927839278543587124767902542109374083785076205560265594191817469202999811950938457762586158534842977561920778545348430734349399317465094060586118828934988796050785866946740835565190235331312056466753506891265985394510211588612796640013080392988509082581031488818305386856336438911443409996441543130635537807908822082932924291983009628144813038075008654020019590496245349094999168017978866990089491926262981972631140467360151428829046991529945488589484521995889059775918147563580871963927218383719882452051333069549082647007781305170321127035985219644119395574119960479428528346288027588369309397108524529789471368830812553237595714485286978892710699369962857429577031178352112327272208924416068464764025769205456553192976305396155594543287830652254067259495999960457891621603765577443799954732261474208493840536466022374894486081175991334335922760420390912190467161413259886144236382804389123338652744452545055219471335295878149037285866821849973021894308467733753506308026054410570126950470897165859336058015004865423475845758377112157258537801490466186733487273764666838579324965688358947617337508284927579093349720300271272108589483288853788326210408636207708273797597240446614764205592478138524158060390967869450820965052345938317948958760049709858429608901576053448537215116687279195528569165495547375545423918835593232963901536409050778636326289806409843386853330646891174399294037435889584135169427396370953639444763535477908406243871017075780305096048396389888534437260059487248316496330854973587870136784048422280876147128622752855220569105647881182561368973730925472031524314795625699200330172836571948444409172961910990395095041320767094711334231567680725886780280105032335717414270245515485047597194961718214468588540306655579107011746825132739969841245991163974438954159946986398591519946045065594932256142633200849553056167940679004543490517931743745324068480782002299704677153452673546468416747646257863047879880796019948619326394710794232342621840022837621354822340953851071628147101269296956677580192775470938141989120845693624339935328412363959650277213328777118871680067786494137696529439801311157960619236988975586213611667835141883578140754412811657330625668477798322181317358079771730159561198210767088945635410396319966444435688528263475034696009026699864919605083056702035217714548949795032506953498140623924110252663508079880097733681565918940345449984570774333401941706543914624011902780685197378606150645510323400518935448015519923554402079091504615221130541582071137448521354154954869514603447703005513223116265953966328603886257668790155229504018224638165774159723444630686310157668542933641574012930406466990037132927478248980587082437491950693559038006295518528262099967170849783914559570454318151021227662517966330889339382746377463420193185674969417860563223156028055998654827166104749004351561031449239248051719638337906699614158572779195555778013285179337078619491353432337942190673752689415481928639725414617037538506287394608813609590150316572705114875138884273685624002624764159655438592483166231483413562103394782541817353589027096131797893097778962695187830003623148633716953092187797450966356204338976413409683779146728462817690123004235686703078757678989473929995306259104963449452879219257690967446004848216662565096891077097877260155777917696279398301948921061545245115697938223377140675150637046633217540351354010805770572053569258064262830200729441505756479946639453685294533677127272178535245331749497660750261278889871334324064146883757561322685290780206189061784511010987968215231534290590950955622911335610332468992979638497057627100818608100136586137758525346724834010625599695777612540023317455998886444784822415264768817329946183957847963866459029873559925819046996452190909837585289918080150148214635047516471511826997601261017625726474827047880687712946310670372196309675493986637090885215354478936488061618875865981781435122710226562166395368128167710976567901977915032130874387758876447093182373514560207718491366615460851547940191951621279507509298803129075896655730668872743810087055874052644076745994034814356184800167935334595989736240636752711326323433794284852604166884997650983853601188803220474163817794064805521385303031613081718879578060213896556788896838071455507470223488810905417241945107742710185439896981876482629511176098388568559370325474916435829043623074411115886899683313998370767594215154388164626767867169720755521571331926407511316182009550772010652493787214092347884850314267392898719882504730374000206164901461602620786286175057206670110291782453078897234679290769754924141984172829056169164225836678307148635252551583562477573687824328656241928571888887038662245102337860060279976018318572511355811615054830179102507056165158829723877468437603438548154055738970220213121701738895642810991032611743669896618075623209992757789788337922092170802303917090490034573023852849780099520502510362608969623225972840311131859780618765403710784437257287732025940080878591728524407187285841818578860917815324762201170586927182336722614679442631373171728484791070997991971896893285664592642565516164511476377381301079946584180075082759399249661572440743053076632242373928135525669641866611897149818290078901347171419102979298749373915248762042937176679765283556837090530774808814804143371346670574987183040113559206239789938715330543171116979681306434199802502226469136396850466870695154187577079932920686245142177981872129620883939179589169998372432932059971730049860122877585151170865772341031950025951157685874572143200660720725111042003181615674226421588229415759589028350317758590169790175488039514554955705595432406214075137083366900852070706336573882262463746462577900712384574431469665919761618554969915516976804545339998173508789651558665866248957692337874755373889477180260647029205632268364924296684344031692081199097926870914567158451418256581889457008767522872571293647703560304761387105578635188283335438953278708585061791582165871859198307754149526460246732081095350171579074039827209361509523120565725110958367643248191540213477308138073357668559323665443971207703337810040844286038234983912748614825582161914721904080625102483758826406629813093181618602590895993818716562062600479218027976770338697442019129057058868857253761218169411975595542039446138139282692258010492350201009046540068636692257468581751284437237433000519827074022755210161508730671472173875517483761467597805189292327644387320013296709502056076056664229277168365037279676698197129774608543191295861467379121551352029135324244156302488711350764408963118204604728838090823605759845436256788827508586604730401594387316925313363355489895418562078073693616501807704171466967268707250369839129182998505277683163140173217703976497814273407195240861787486703659110530816976358511108651371116847197991568849228289492320434271542307780755024959328458886159768685071692817780618925538084776912420442180939242438452823366520504936026402977732026079147864532404260803284719126835101981525724928865199179418375651238196134520159389000041841263292017023814862245876010438772020978443798587968247507121919233840417030781544242990032825693109080181048274222311189730443500665370280279038218294298549665229449227799543713825540336058136363949312533143715956870148797846690744960745579255403160303013273448912583141321909278675751430180009068232067256296176296787721569475616530415111135907063013214964052819855124358193964960829558591215774423675713948019798707137246898849345305292276414982127830617187185746730811036563474727273105661349280109754080639016786349000490783919043038203797811135952849211655787903997961339618861496800850573495571415468666574728963893049066582964228803804246491853818323345870684055095160046691799483914672023949430257221050172464835600786321930776893485943575078959339930290227657150023491197982151496345823558704231228275493407148112260446078294241608017640748274063839252548016394683398455536840133900429994360620678076643828803577586246095283521683523667290890741949969310867480506059633020468070805617308836619781300378714121432999776897775896144735321142118342471470147503820998884162592889068672173683099986225057681120745601501370180803009003843429739427994111429839736561619759090086194594139060188912075334547168642479184207795497796335735877478154541046390323598718052694100098835730435141009182680120877927453117849268466278061488387264505962823161267858055851759352764346337180015444960010958316366656298789445714329889752617698238683654777728714188748186353879242590248505956690014312861247205972011284870317556425359187279471038201912547605394689293651763994602449862487918949469702938432628900108873468149435901712120431862092482771451198943001378937455435416432068519945136027994456107902664108845037977123408917100395977554944775384381076331133422758612139946485449151273733103798595813700452380426921160854996103782617626818636814088228178961282116648713044529086356975750826732574773371876038749445087269876793393236672339121193524890244731535109155580804158156258509984824912167336294026198997517218155085093686473527224278098044563972155051806597695482736908800004180450369476391339171897972629259195431952292615503812580281807595534329775591746899413565183011041622130521959233238850738209592435871533645307913804024465812401282182688574984751484887840526264567710716617429344267973252232067969255787506142401996351594398132801797465395865046432345993282871355575151372587525972493022280645883787241251255875491593988457722610027670733357631416736595053783358298225986232016117916293133051895445870189276220282983279995008049215970670626042293570091021265136548984335286987915735116025884167325925887038767354965850814743131097800362110411141029992265800621443622343099498601917821549595626014106536201663081530654156340174384954480280510850046545812456449815767478270530107598274476670209703642544919593057109616671227881690605710644255832082781427828836534800951904363796676982012679443092253294797929773164335268748587379049239137296875205011634457736605189675008962153503660249540385341483748285773544852594814573704402341504466178411442726222405070096118919939318296796066551732834367545370460413595670678093006731447292442470582054867520062231175169549982316754060603802096816458759787239419379299936326259240233521072442928825022795461332132111812527123432417162666441315092402332743731044182960193223181148899116792024791803826231321092507929323198245327371606783459480165690312512802976567803485219673572671984565175007044614044826729608906231426943228330231365576670216213704226466242846531056944786814768659322214375387524526044011740100794808123282701910935569542039250991068771657181176392041934318845377475152455951899787800009023310387959569695743430787346899726745902023106708792092915307387504206065839804624525765319623055701951423889587472530560084189958845535886717742487982444322330617234017248091103571152959211440653628465340809784548934499119220010433364090086098987521639869618947554878093139177834118394946363140405032145684841464810865471889379134588784856103626732397450122438643758059355604418157575553139597251052144208842427634201023267118033017130540261705549446109353556827239152716964593327590524376988677157022864528875840586043644410716351135137714565628964229288055695018697088047974313147963505117309909318953526078350161924322600769372604642170052243465281616115795606245740297230720289002323062855816705595084672606446026367703923832031990363054125023220327837942620605479550820848602453363008372348028738039804839932436804158246626413587492007937620976369652238020571781819498334433070775370799109127612249145187927011627065046374831447422375834647297093637810080934308017163105819524834510215779426014094282693067728910699845662284208644288877786754666695213936167851133771650189387560704855056561689083918794969292182724572511301833583309624970833035152879820137026787545562018148173103314872666076223714343621064538797321926232774324378038901397978949163336661322038090956798831095657516938596822195086723686333995243564116899905144608872364025654824573411621184459931807241430188687144788640297387286750585324566704508057512013256833448867752191873154197634330064180896222446164193818015539883143028498431613575244562029022486440047670847731659283831890566166550020589340136297130578939389368099239837328184733623795370572674412786016662953208141163083307430266857294512949214400690653629915065766621006332991778080513229542287995100964683089794631633186265692785109424923882821883129367560491118531336747215597039113914215701944332547520651217793808624580639906718794186205091060600965710561846319909290844636744493741351112912482650688575142496918332726661059922890844713856470321072348542393427989710018519360769846490549665903091718761308642148209443062662499521644160823350043115911643491669249943867738428980082116415024891664937998157890206642494644266956339896087640163451064600588505726438661515008157416245778068189950680774931923643391741930924528726137006417848156950311731513624473848995425859515727223084531889072805921648774248268776152747557497069309972670900665540893968966127162904237740222770817211486422982114270669978527398791847914155757324882894332461386890467323939706447917555559800667498073363689572721617984669999399974690427778409960494982723878987865594303212346481228903947401717985087329623360805534259687538245895373877709324283173712435388494238823787395037601561025123402149358126890604077045108813397815817151378332117556336498427522461536151107197577693602974060032868139427447600175331127835830473055946056844352519551316152661205809082920256062997438848945363848963237364519902046279482840458422414408297648277263853894024661605533140023501369709118198656467137458820425888371043815731714700399368299430685466213753036730799203838933452265221814001183701519616647184559976894753348537401133632597443030460925214257550790124293702191650246995402849253242262873720516077250919539546836686455095355502827109411200041068319772253553211648200805764039872041876768800612842574594301819560147845966840594082840913727134302083778400604194984703214760304506056825077661346170222975824337566473142158391275427148666339849734071391684809286080424301286970969971101185103759133619510586024794323788179782047463584338532602712420949554489073779692753120564560584318884774314376956732556870303938738632426138014927546803787557835160404979064969849232478641160447021974197618424540871997008153952341460206415919323977264613195034489982755434078691763003849377916137750024434844646087447095195521913130013676792903902506189312242900244036953018879020231333284770453069286556784505135391248289498198970402290646970761091603829882798252033181092620154621506810137493427179722958278111177189344708103796502987858356899197281587775654447212200387464576691674097127825359555765390754178050622614994704308093011783819592327623936048619090949911056209624623291800007603868036731881201585826459526702440108360083280600908576283085813775916954755412669871057357582317267554641103945086041456769990390338202055325432263492439394299411060119602253870366220422846997216802821940634107346093681845622759590253602995201728517864554651562974018312009861274134705997816196834594093093852911512082479611365329463680414094404597400349341631469464042254239222156905161809508511910516879251698629652365897385797721658938676473878473110871863031821349771545704528782772507734619753248552578561557837789085628363809622769839552271793182573908570058401450420149274584027516993989565914943714723617890053489082706902292582056620347376220101253262164943917369171658209015012993368496136191871961785793339203526400818418171772452357541565915493485567841011984191559255227092572257745211534128849779916665385655424052842876886525919096440672854327328844943201011045099979924395249745411432235356094457564812079098039648356814456481316680931523613424708765661281611255694164404556997772936250464823090381300096790120454201371929995899453525102031001941076704303632801940008572099984104568308643573597523141452388558641351829590781441221745831240942900573405544160894566637847537210288815650068786981109606263573403565557184083053789637395410173156528434760077755792612446833047960577517863531137426434946718269101148818989915303882437476038180175070229946241772279643180211821748532798642073129412597073290113626672686750950769658132587732524667000464956180728683945307162295208424341452918812967720293493752132487745420369620558185213191947343082713396939288033705170175014769115260184373659195957895745689869649276439114175801998384356667254877485234838047073900247462460987277880084356481718619307478780371017434396211858059588767069032925621946357624811847746843122244017458222055120598315478681027088377273712346527944497567192862643738434294674497177783592812499078039963894249001718942357865021138737428210819521811143189713681195597973657086032881494920105840971313154483407034160582484261310917234938070106378256172695006069183643519016773382390010017417332302899654395830865887219251544246211532720601517817254998700683959416797548785087402944571383805860973853933836996542875305867434136565633778218504904076094169597953053624670702462400861681555234170209397899539902487386052578630278447319534738568363885159800026646366354201917952878370083974293140660390971214296743177471546682472885443087816523746516788267985143473117667797333264433904784749789001771781510104994829173364594720759177349965705898317760245471291037676348573140333387075093233730765713337456503140289046844576667080927215955055691389555872811648065893674917579667734756258411200673607787412973843724991489653229810210205932355706842297051781324678313509405142326140422841271652547774293223569963489207198764602040998155532878112794885808906956055195137482618315547951773488956097535720097448112886707800579383737309228640935870005484367255178482574935651669666935789899159588216391494494652520826836941944212648817384126812147324345887434460135354935800195874106491891918380779760791460392823302539352059854976149896317520764356266659428474902340771139213355811883392867779564794745484692886217012965705182321202952501477158111975733412831402159197348835288373921010924973209084362365245119035750756785282906163844670582396290823311782542969606324851359589333866687154229639346969089205511188311550206205627505142969761153817914470406685861178683540100933404571184505076688855089231762884751900290300222833378959772312851680614951922212550198923303084342562303476565936738443359774954093164381912385644317946199835482465242788336475383853076553124075028710072635995092578442691517606827550230857604454091097913752373525673578358028998555505587051118004758189542594441519644301598116577983033408595159355856743003531490872367894000867642169609658327149863015144875754588395517375230107592116621515071697695886043877329779995098502575091963081080083652776199873952388612328283667421433107015216027189443009150365349129994367747866005049751591454766598046052538114546855032401601967541943801870577641467794741654318422068718898140344317201442460357032327930548413981561164201013931909946554942896201859827079959856156833786289517066633038895993334555401362382744376647464230949376676990048150239076186295890376841144742198665988853277525985992418078524916608257102016140810526561038322158387228600151896825129263013614982416618425112372297718872046020144502435698340875217358013627619914591262731196386378018562975773663797891304870190740330069724870984771789101082985798298508860664275636538665088405233655641037987962685626013917517006840568744970073336145452799969819917028663030909606241783375126372306026062225171300866443352021137993270552634826487689927462920459315508084155268138854104445106706790875583437685278247210641042285946523597107470602529068793978437192701399076816115770574000128733301498682470475771020434883167933571746593590554290918501789374846637263217805321461724191213780387365301212286882063825555599174835105966165410419019397287380711321477179035428264289894414477381523118147970465584159618666072719228570898410668787039477559354166266847703356739936385314661794312175298090454482827905323493102566294957154396420164632718061072302941067134369940808071492189820737500559891498484445943772691914897189280048485644460074628531763044364256231141717915659906300718906000098673029350652894475463242323678869926556280869714214926465576990414764006786299547254026349720778844083324943019505286053784014628251847119093614337740998934497598542728539152318615183877462908635620128998235236874528787958693195804448669480155429028734204146292373962331198057552111276063262180033677627963644515400068898977707309037342446319780565071985651321190584998783126134922152402324202068242291770238115147882176337195016937799058981611209840637599640310678821467052404916391447849682374721650865929603414148490294718066671443399462360157736049327863414455531902195915066324156815001871825635860116961478901778161436167264635391976094698608592552310369422324891933954931473424400322662500451878030804880569687951559714068661002561299757269242688694207612501348210554113240953820844126407929777779837406580071592297930589425612740892688764203518532631654691195608490734718072935936323244901426077997715740567389916019506833665106328765810279849800675970199664910141870060333833940413472548006648086792996658867360457527845441525735180763119165307360278799325175327516692169063384590814367599813931437905186214763158169075168878234814552297737962748332196441627756209383912830881308314213748549445814023496796326439322409758642120872599648982652669109495976363142601500138093996245385987636626690808805356022302506405230140518657175733399452476464237970959516663268761776798579130749719898037819757225133426644387784205400877253673499840182861196068714879188263693013103173237288683101481970886044982100556604583141491162284185646272569774930745216436143908740162284943657047580057265664229808991313904902497061926453520178534121906260772576995188274320403878621729960130236519116192905125618274254528242924464440428016349504673918713170519423959446260040517100278579024555389801349627252429087844649478178073759619155619290836633935997536694111230390939114507175918552089238724348505038103003317797822350234900018581113053800844504872828223286572977889291171708744398582754186635656385724775947082714001242106619683059702249892477295234108013936981678224326983762865076797325654379808197661409834486697484467702916227033163407347920655941718412646480129478417135634510040122047894382618839777872677393770854400975888793304192178996742323007311145135035235306554776318541410553094087789423092075166263175478574940734245388914570064964641208975641594630385928305872318447322296836578376065524771096058607950383435043597411902179584887602926726586166662343209538341985585897758107308867315796110387015873797743758012574306523902192540488880172673375576545684058103842614189099099298983667062984721400765992034080163026474419571041152185942790807257045801272088345222318317966352741117841838489541676070288453339132995320730774716819511700047510009669373947838397697018457995991021899049605590285864337513388002617100206861891069552672031601348883422957822525672548198150899778828410045608841198220512469785218209631778383037262959834804819913715141883370300785252004037037674142439656612599162061675834188056319654472605301414797119014287717964469494146176378066120721570851360381217097805468266949458466037449638568599777262321482345625882558761502246885118120225054281354027621150023589032669992993731513726255348047107047921492840012039565758647263324176630722075792727285322975922390981693642220920951448380851503173498051695654338450544499935261509578309228942395240539474102300367888937118082696420730238852507243235389915194394648945468020859192251366246506727128874740846095226163782552127741805528815141851237502765071208360106804619425520426285789997357383294890691422033767867634207345357803617722426937978825048592363791948325694037114434963478306980344817540602253717544694168986577159720642048313096465317779515165096837214951153842667638589260082698699460539352094156426783793578565245171806032624104765393312801405984887776039991027215992368085041434174618075083812124998168880574157812325456577435022462460568552627117019897512539517080307101409957581695861388991296303386704320677817731252206719792267782102292566982521108501470761387216627625530842162489426456440383633121680484299082521207740413434338852779272720539601178527938398936699895317310269227400574477952719701222418310769782114563722344728651606666708091597288773204849596401526531039704460973669898483355614195764055703251681444494341519258810310739043193063472447222162514657480716978785783392399847655105156211324380849523445626448715830492012155060659525245558660521814505564672933233695224231036733624603868794239345337851266825538548333280447293696989530613946842805417510078812517753398217475459666071332060472127790549973977928589581151617573961397889178957811894908942038018802975536453258789099402266405838534966164587327900373990255646001579679835420473804563037517275104445681655649630497213250489590931203653210554866081693550844809531604922939015382549202395289175656134763426884923146371412682117818258905128130291545023226013033453059493330575717938508852278888412159107126288977784699323902183070318426192352523273731770129738364313727405569370734481193687937761405201116091125473223974278136197462804006533276046791011445751083948631792292123321899790029049501500414057272695572777138250511561956697472630794294028209868924379041726630292160566542012371059905442672201248459426346952099967029412410696192267075047669279571179639259526977967666800593329362624851652456001639494026150598334047393011131969092014333614436542092378300705539574557270041805651674693680705843273670688342166586593328925423022680822854604613431764242490653527789407376626382154338036738483366190790764477323000075913667724550769858772112338170849443250235818190096096827516332945846795789692972219008141789865736181002097486693081253487020965378589855059625925524050449260681835228286639246363399172819272607765116458143735141166722778268673829985749429863803562123601314190602563998483814371706939745267358185053272919453961576083929236159820012755244822495346683399698130810819498070434423448277572651914195333959320092991456992534839370043658181977288040945698524578120789094630914884182720177668369012390671899754080294936000834774389604524379688260459051222014773516635971326786510749614773592567229931496287793274718969450735923940552253777707475617221595343915430561517608598866804977830923063461892625018764077263457858895580411527115637106767312180248032549578806422522326215719510839990794338727207559978270499158840978786415283154675768347930476584086201807076708240931267608100475098225073422181630449861530784389230781406628488890464036780378403250827107425262245341229763027510598029633378173121679450849306388559057623558642704286604679370691178747628905846830099541916230097311032151689885814764377609583162223174935586765682844165920039500444834651850549829891030552877396947249513641452367721233473124042793489033349151858340813883851993998463619158025851197257475747016820286587162818140063565301904586076916345783625147925643584657434799624721781414729536524093847734525703374853777061465066809572297836313444276480564662923119933281781358020894283699805581336721626836444893508485462363820534170137877649783443658584227026903780973145264832718611391267689065894716492404912545181043810285236185084750545964608018539016857837045298866540018142579119765111342697196701610546567612706042494642905134599247061627140910042713857791519474950855459784485708991450179855125789059907263424159003536239669692187440200142757581452113817359634339573928103038277928623577516101368419559263248342044358232187707826921214725353266694545795264469159427277956340506372118534124192241684386945273529306457774289780849032685383909324697717617530499413197797871811652997198046257443818463980557640610647804913244411106313975761226285408045998360138588189415152446627265520429808652438501952205617451543499186790974213313305910853273802065480266488323347206307190944966011611276982162970222822961355599118839942824237137965726023905426191407709623451005458248949399410249518641470342647834697789540488980621161405503458551484165635083818464555065498651186159276503215189340964056742129189082358908868298769223872372900467368136339331519893385196940549109843365127350749254009642732503321127201295836307283873213931123153282709348343692985361941201408916963670563152886520331774264676828993525576753703620344714057552811021941867643229017912299674912995346286477299785651814802719048079575806441116416495176320988128451650694974696756737428891380270158360691442417018664976143345478818609220946653908576296862596516960325458923811127532060935185692187898555954044440855464025011508315614959602683985882938944760719795952761724014017133789058460685868999289169979829939931105239719379614361779129381966738646823605654213196475496405035173155876691310428070030002738889121051087529465741652227300924248582707221319402181166528141774988261812868165908850247063081959051742319819343642766296652256259952878982461617120827024394187901930859014761358808599505197933498813344781656089962185458495787126236208201604780466325542158408183231812623715161955028428946232644843633489990004579942119855160486656863012918733952368995363413686440468891902901586241640512728355022703125337551333376180145703639821494060670861323134948121596143908576489562090570878745600920331192644785598428411730595393688292778669867112656116591888292991859892248227273337694106190844526463975868372688678347244848108027636503719558683552108423483249701122301322248039629316444171172802009923888602540232887169667084768200315038826476572377202092824745866661937342573873703564470738912880263116932983008120352349248733568011884200390445310708687249090728684911751267963978974622447959984187551213930835542902377115102589820744386006542036926544713002689803381844977805684443928192037515560905666836348270297756703566102478685591507831181658503558310097883498285163755050312928576210731799372264294370630654367366782661205838582931698871062360072054048836131175942181011164746836109834069375945951128447617086899192161748194644572070787897390400144841119856926817034698960019228732247442225532568299700070954981380231000848330748625810286379364991856080205398297248449953525474048377535407340226271128779977723189580069677161889634127412077610720591509809541627997977999242457591353379913720729780143172066984728839758714978943484185783149266589485093336861807020083589288903234698985157146210350884033254369907908614404629131188060111686354366270547608835353004703981648337079592403023993745781637360726030365740393573099060825208988169099152826917844453553324910557318990097957668850787549130000823344380620933527862040359274707846693949378541440921649657908161387690717677739397516441750305781783452826259322848994310054968823123391171519673960465694414098687706499880436840574349261752864562938932300816938106735817145729226121528370266294785745018813271236319683051692699601231615850576196636947947712977986830436604021902834042098730153540036147904324305688551103642643183436606260066390044226425546203007718974529812783640500764469908424943854862687836686494241909058613563280619110251553392108058427238677320238663289819957734736118849060434295048549234630409506067744044610728984490898224200070403006862073110458498843547226133642891167447258460867543878235301743126488629360174532118903276705674069058522507872279969373797342051294428770550948192652594211028119493610938187901034326459952905606725703402257833667116833392871163129331736289961722143045650766067990192091147898769707546330582811048988856858763820245784814275044063585469042336402675468485432523122567754398996781989385173863734097875612987858380308298755814686551113510571918302425875667361516284559991679818639519412861542161117292723587418515465269483930147938082194227068489605954066772652725819774938010358986139195210850790126170228343788500152117785318213928997578880482543971220058801315664489288624865878080724508552438367753615076931016530624926452380866827036432219860239279999341912885347392247175582905722489268980675284400911876151051529249757807129895873064962602281216517860464873604473397604079106907157075134627944527467942380445892669710117726670291767599376469968860128025063336664322737611333398898344856411130032049758633275501922972038883180151400716217295034714803010422774617049399234955540954989823982833686001634328600403434864433652684700744978268404335682495721002720704472921571129784622996768464067614634821534746050866182162910147254116248797906729623943142633423615135535642376145000329142167077283105541360137054260821729563276758020262311180439822869254954069562360826565076631564018844254677326924313429564945774896995708485559430055711147656789324218981773005707371636303340464860942755177272738969032190603466763278868831209621272497783881852775374436613055076613189404173230402194708410226746658977960924340723009189259082487985302653987187050518894435616812922089631252040169816885530770725041951597961137219696806453830883919257167008100992370396234915377519133270237320831644394322044573556465760684438218844677048400841249923451866225935822370408875713165242456329140246954410949098290258255627609293241990756983976686087362804104044694342309401888949040519365476459743321625863111993257446890691713404121125892360174827254054722274396285232531125411392288777589646072873144095925476020535504618713087735985135603517772259708976418392843001069692028082333748361245475020056960454187906924795518906948842193806541662244696226821039024869635724747847916022186365328541091928547354308263730714824694522873636748354494742690618517061350243064354679354868645121188352275286797624301487160044466211597214845974858131777970551909259145886077635681983671193432576218813679041355018130409560900127608139170425289158279852343937737371432303374816428521776050781103744508260440935537343633078579913676631099936519218369608477192946011577645944811715670090073943142068010475097753912381089374843281727467826662559342659028515415684546154494319436627656794123926986554287373290077833947287290890813223245958426341301306874486923789843699452325990495984883059783628136157428530464698480906922722688180861822716047645704363591684314214543259397731435059837836908583203173741895831508210387559355543392724333225751949216321256149769656244049390103583900815061640490662413131833423832854567797468777428214069195881038463054625782953764909701469558781247296999622987347479121674491273402141376939323183601735290152822896019105370819726946914496595537756033794602770770582137153015611259213307504809511230178578360821332488548529298461186976495464464274806288685354459180504156348266048919723500843352453802445488363714772266747713880743282786550264658295852665898039467178554883097438248597225284935411490738811307442834334127116690861997682626100701875926751833094443488841938973307371403523468938184847152528002098268082081070228616231744887348575731741284641009831044678986535188983911249709468295334064028726802191081247686077971319773841590664296755559823910826163804601231581196701868173484707620735852182433302812443946560967124464831140529844290432752848221446571185771065895786899600934684119422851834081920904909692259095421061545080250303412140187776096607513733908609846173660536163801406311761307840162758409563130861289884386997732044965218802631888285245448739009143181449119289571527857612689294073029275271822314544776739440973383742655760667835989310916968871704031911660089734050698284107028096261158521851581427887349282939784767770785177422266369059995135588856785621877203603706104147774131461891542903821927550576720585516540168686808098729437171330315236475190958654050649176068709247376113611192468974693822545858769408161099205127650091195887210982099936497736409523512618729051609116121622921531155400211112795076818026161219531622203677782452755999367338764520967967559060422213208399304714117043358570504565948445243514694851035102158907142165511921353291020011715584885490418612690168373240297879349191913391112877859783152187210051408012976421693952672975852721134740621465994640642158302192583317762127102953787690385812693420710097229667679830717603266862594800102183779735300785136547826377689773640337277531871594775902317787896960994140720928776994916740456454746818571538295378120449747192823278256304139469160735815778613468579604947938307391108778987926007122134647150546992294873132075360614649839436814146387754661999310770732698267690511427652476763258923627097305000484070411246266472542866017699011956669628513429435740957640147327731743986276371337224854213491713890515132960384322566707028017107138391033405819248976231287373434815084494736747152311980602421010557739496779579808593484251736914185478358465060351249674531636717222809297107440576446243429178898130445103671160064041607722612180201378367529210289004889288232440969232108060881460434121727232959610035758002688930578354092038230349258355670265059566768894326221939003356353819009872391212101912097173294850022772338364378394017336703313462482689232285978719837917632246842287671597543325508573500430930886303083377265859517752803397954959845577588708087878086071750399857904051862025003405319812265754545156212919290559860932386064204506645400469325681241405610970112280464374765992228988775997002896093806252656450961277107149339734594109194730459481613183223741282971850138527559660296475788610563664199559521807536692649891551751013730607767606411184529630088921303800260890005242230358875828178053522210807929311462611043609921141389459187191427094930543263700970851121204992407266862326192826104955137410741404690018898739226839608167495273786828652744459085162836388489301905330048500201801208774347355496108703580153518059704516959093209045871678675335315143323215658094916405081005267360097852214402204324564665774659521950278876489114268526458776029223615291341229613225181535383406476606142374918843534124386213828955248252540243026950866267140719904310586779518754281306715815398098329768977546595091654720416418421309047011978462920963145017279585517291243350451033921992273688916027254659675531934346676751647469121518815341814862557467253240105614320673239517722373423778491683653603222857610531082001924025009461948982648793293104354225877439720144823598924574641743217667439855196638811471847416448466775992579650011155140450876353148132381175679941259951846811550044180088840291527740212105713525587357986442067671253135716590513298872491009057255433867211206509945778759755731821612456842050255559286537424921787006249151834701319481831228517471170834287247923320817872724209490359508552873224439522004233217970583227790280671979086454207350540124598025892479134431423733014077043581231301716013760311190451235601360191306624192017504307350208673477394032248383384085817752627327490382905677310681910568171686396105733083650142863044739992414228422407432903383931131511688964318126104355574797640080326115356398799560700313002008801467082291147434751177821026646106439311423149423053770962368631040550679507882398831820150584753051628009503522188744159710943674652728446876174038027402381020292583605344758201995959263880349828688593273397596115474416147291043942538042200405653787386833990145918515670869521384047020667298379350743806504691520305047526138974114282164983838554051877003008460883129680782139038737491216709930468219167998808244331021370143284446344312511242899256712039079193856068522260084417838433899030589718100998991649442325615196224782499837259597171403656282927665360125575233887645318659385922311008235948211851937281981884200779243039634998151527175291830353138701518842295619000288588678582703649715033574108593631404583674040622768387961180759449654672502058380228278261866802570061621327922601106015154136096742220660198514105209304401951517320165555500622355174929340318587209886550184630548702350682530075739601076226221668128762968707032569084281561795323393102304302711235444373787119587521563641015168847328456167055105696483844412844839961414306055772362422559717363985449090642872240016158144405012677065497848435020481580063650113792014483731478313823070144261695422753313190972899766631275071779669796541095732001814705474510703907453065512354168813844131018868312401481276879148251291734330917804683533132376104072973316957338398981287237472639869653500610619637571491836879215968950108534941973592863146030993371286483770268172350952806650095216826709418776842177432340360193328728921871610194291093440374019414915092912400717200782600972493203619444254724254613750386899621176634374607216097164775434109549378644382169600560514260395165874444553684495062772135486773316505961294188745094151529772684272218355750001927218909772368052644009385532307310342262110943563676736311603506858135170511309115476390125354999659006437290871848271347130918444016983099888262969440956923893469532127182435412943830534764940901955201065760742938723465545362310068499822869176491847043490349120334158473334391969114966254764853395857790759657360402594289256053972082517762179741020381634720814967645814515445376523217844003172328086811128140792940638201621984085354079171735280606418742614822135843486791533170337138421098744110975721625291842864487922675918742494064586258727046521915595214713127204378622963507544396372274353984091664456072050249429022276127770928884999856736112378789967777441166980630216400342679232817101773181821689698653145608978238064404027691048003515760985019842147200285544560575182887128618557170602725899487612881654253940355706762923985101652146208435830138571997185171530288513246386770938543803990707684863875316382591554540750611705268847194340095672072757164145709435606056547458261351848179238531536462546869661056945732924604197884012872853295660096202860853917375157363467785278823434235255047760436100683599744395079887028634980055426649246395067127386762563990806261214666594606709457139756847169406435894072056339319479507713326945057535064094004738973816163371877857334333453883047733662629844791179683701185746329434686983632045131432903651118353220269625794788208927544238684858855058466436689623030498267206404791478722918632841692639846405210995679826514078632703979513947249299133331109113111051936268792945387529552983023758076992202262922839115882331803288637274394241536669186959251691101563936187406088238974834507814749360716220161721935044108082795569986103735209120513531301795110848882162728760015435160849615838742864751466871628978568702406069993212973335505920773491869409087501293717507579795618981649326969098224129425273730637270160664782202702802181448459417491003566033471756222837513926132671487610996390117375127264340320645519629862814780133818931013063222132552040341634101701548347833492397799839768157755441301257421954667212633288410463413604107572387293200979293921334394557077691295536396625601381775159194258179100982843790903650668516491493201324607390834718245142206826152901654409223419679680864798506519897701863070823880979307040603711057305574343632497618376725016558842974531544569734267303910786147351767158931141166620814048540157400040671400300616503223400009540670061742308034782893566266501400579224926727627907236683755584547621304581752419137925641960469365947955754001448300784921947589898490500695587252877459278862070585670584360025166646251064091865852137602625186058545656100826314587208889605771304576326111080876517048577981933703600043980767086529942712852030436430808068252776784391386589489821679930261572559780881288329170371154853960647203828155654760246628221691931816761052029814525171039897550431846563675513205034281176256966375667872720154891702209447559118046045762640267471162404673868915579699216949469882269010538532597821878341510382763400983552008422875810541710852080727261378163910831950714739558655098470540155624345910316195552190416182167035294662915239939025286138829886878826620465547887130069575790547453930749125096520951510717641220220773499787340016523730854178368100475850100912304519410541887862343717156299553296301684958348986588832092623136468401813918724226050861147122115190756677943597074626085636576798675224574753404628755827198577368907150158533501158127656531961567523697217966453516966740052562482665486170741940404192285326224806315210241881631975415223664449785523403833739691929459293611980586168526302909601894724168665661825268428323916633376873102539038745471725761150355082023427551782837888071130063943915352212777122940443888923963895171490292527983123542058262932027449776732531585976728682814333763751913865316486335461674582694383588126816605708048887598083415702880263578217986385002520974676991275212972275163264728087569615774986604800068816797124759253217808803655004848222195124049017217359805092865168789724361620048785901923195165732325406439007109008769075426983697961652105098314750453472760628335057661076952232614368957741567386730827593622284436876337347693802962610379287255346943510302703253532723915417592303185837139383648190293830358305898747575240443896192979174360090426145405914928805949249028254565336459766575350151088040155972755174284397561743924125640424214167212846497358253218141318105441599736952957469941146518256977889904726773862321624339300396867365145702522088206154427382329574632728319989097517848189890580472178110423185805907784333749050240542615718211318311128202514274432772226238801815115272036430170523271946927266567071594070805159919246102288141405877142806073613758374352361354363297971277551365580014728586826444320348373299264748642947987393841650300318730600469844708423197144722307936860360069212731218745099971096144752406946964134090934459456079923587189042580909747217612624972922002054765802425553887269891802708182527725259978271481750248373898883430702869250180153860861109157082053506775025501843255931528652365564242295670400641199323618510980927327357339995696700692388624185989994456918549785933339297828979777609959858827346370654937342333131024236125924805675308791702919194387906949623621914260855186438195408189843398127891595517751361202608992991884280452691623366065393998894179889131409236546789778430343909638686819787816808005871913219436665067422629122934569429046535173138804930021832884953189395377927401657119536307595921468920665916940046939930641899363133338247970755254845770113038254622300107896309003965587405517289830558677251043073645172527449103989584950798043713347047916294379598088704205396837855670497330608588941005246924310127869053030289918019213272350181843981409441346603602858837959293004213618732836122720902327388294077160235980099862814157296511398596494290452965452299517065956487236661490055000262358449927515901852628489766608458250135144735941176768447969135701034686373973109526823319408699440919936796047521270151064990339015313495682199479714297816882455102354557110725756757819742535975957676498105596155590526212632070149051712925091287524273854431250373130012764177213286031944902432243852791210942503881188260987092507124777706309353009803454644496807362224489148141455953626647653603272970659621296474118619312036516029010062193584907797353773238698844367571331998707071066036648801229787707579817644392007202077641146852194671038305823961371619770751848763330547505674310474385379024046977492687348062535680507036205893538165032757039252783627036723222904172644265501433892124634602457087205334564175712079606591359774851722480075199357998579276346666065901214960171175889045230016636842795494452543902983366594165003747948148819057770682712137382113398444720520635608273065186911371737857410647405187337393039048930496955376501075657099590990129513506064476831589979762582039924723506524475778955689884369200332363930760035449495821199603442377906119267193817394758643876510928885204610342515266979833846224831511435898513647108693945264813350362235872926058090868094649761346951679564146703876413842215808961285091951465757733485895176059534776525491967326372064016213899542827064132907688772469923126011276975772570602256555998437681770759971246112245195746044778520848177922399032132423931129722740885576711405717038378105151904050415389725996098160683173043199265850511764555235201367591444135748581464339433570675843806549958233554106070115759341462807294939284038647569014702984454900382323688838701413018892687002965209900266222426506191008787749700917063503096872999575367358260108861492845329117329665920501607333312965582187701085841175123850435907368072228641244065346024279369826223012238005165955565146629919744516087237993395752274413885462119856749455624163700540998289389833478797165903672667627396802005126798357826840960047944074015727566040194036656831327952969135660070433700939358514934905461533588165427672045408009870102267762254038001574715668753951476054118781468214434458869717402723317296398316371150772071163131618691320270921442564999582300878214398576300441031262909595116028623389803019899539612544964605564039876685845460661009326020499400077591882463603906662472797569006188785136448147348239191553332504875958453303449887756874703798535927792132784140638303985403343871994945236833351037766446166326372352242591874948341483573214364258292685498097303739948694523050893189657596643699501695130700762069487272091254140050011788134993169571795863239385782039930298872741621637520023984470234043187784823857962142928890707052954655742697410468716829815431775760965747460772914546028462165808263557529313897422829745954828822091314901376019362900996721002767359135576442345025507241934851484831850234946096768879299963340176100956141262424312507745273570207910561575609618442862943070120700045550213696512202939329983142618666844864841685181006203393695954232333236094325770159204270969666432916460118507770572987204157156862228228520928027355633147756557511529181416344207245868931454856026706579437379078094691820900581811877493184499778069325882391309069391574105823083852183386918727453176649222309494585846942439052355370723409375094157724789792665894809747016208382394009379234968243871565654579904823757773341797171735234778129991717634039599224899783894574856941540135438553327265549943840803126662251626755150776528010487552440502987761325692055854156057590319907510502588631904110398666573184583035460917495875942815195746851823030481233413170946301028588034634016028118617500260869538368895964270766830865415823086257778575759634687257952967113513265079981641692565945253696587562409200686489640979253128084512807784588208257785323960356718065143256625027874703390217607160218315543378878311618936149694434374039039074487908524442107844252101013225361472240159496780714171044151347210882438975933364948265507729566735296073049208257463524243500246393014969682057594559530211335736843175630639290874934367749673588188322940411903894829483881980981144969586616619146808383707042015536671559540623892383964231860878627917124270489160629895686448828206749184736117884305140346781954851521247597119888352235645362586486249859600680776084222044069804008878292024109143225156934497944116582209493321612657391580805390898876384309134531864465728751219113503729018871729845578473295993349139348535373050385176548810344328637417984436617260941371139883089254828834580164372323122412569042186015095383964001268923995110207596227486535042423550672777438370985438079786610316369087884754306530380542746474788782935970374607987505511105209047731569532223598276332181086022369218417143995253151179413136947777065137046412650602575128229961698304936090288918765371205313493821576676791741932583947068545442521969230516105163989224595447315745957691483114455811910539136165586368257603545961887562000390721669459552923313447173769691177233323275779502006125552904893886582304501526892684697524989839057696152403973451483000515450357733847696669905602909166975453870685368463807001837913567721778322554753899984063481372077250023574020937570440494363411619957106414197540029232385775814758300960838842747247559263541974075921909234569876774026574936427894715797384030418238431112039529263015267331986190628563773065182217666650787430177118814097972317056183815528568946129855632041035463661898324244336738681561641197454604671823660474686300152500337917471509311538142284402845961036072129893346927830398697899501140903133550975946246950167643977120614033021139395119371072881507569548339008028355713119857417579629937722720081315252715364957529972404925274479146508421062748350170752197643398345279393924729379489243970946076816078322738432202581980993249479040901351284477143076261081931575273600691528101482861742508758463081927936134615208630344652055186028134496008191885144275186104519100401133840151379152139142531399554945343176774652851786081557222770506653481852296560552546853797040422402612973299046556730818148753750698128944808735852902055065224521909569032656723117972991588616622591148116561279269457188684643301123668729633285246632353295053826570731163832089454606376602880411754988855412999141526965899491310951727009583302693192799198014292098296892354022652333922482328193394442068396546735536164504531379657112291593866675431399566775848563547717406495097553366309391037881562023477723189733696932434590412227695485885316800518320063612840076363082243324721644367946041851725741357103877994151913618384210451161904265813726994112304065275029080452286527376813682844103590062299881177939307053493769426763227765829997724376992553442383123673358568260592657644758382948207381948717459220140516651271247403450443032622648134571265057813086021894441371904957869066812223977502770724788008862802253016801728070938883097504155513015381609627815275847877980048613431451524678774426315149930158019369643473459744554003326805381705789011668194540031615634221462395926642976557173418542566801063718332949474955540598187123933508939213357752567288282715346581044777734740462646444731818518360595577969787540695932870954898807555960741935748395732243283303493793934680011784479306468210868578463458658063336923812271797929215468751137689370949987219320298791783671291203427922171014786224769566193746966989739731280089077522830308591760776207612195702972946698525923492831411625120008481257062033814912851296069433118594336367151259297961990761061807736581854847842952891893077371583644466564560498476180854924050964127080027490847153634008518984277765453055191081463422108337014029825059593818146293701699793710908843190803472149812442114806023899109151231637196749940232723804011868115088148860052782929284202123277263806247189977098382266493817883187430105171832574082632836507180608658212238253562958877224385028355192959507169867285514876504409861236469327929630011297969410347182892551106886416737917695731645360737283073308419068414680977118448659101412019504417492566587204953114191332752154953758615270690778860938607883056214601162386727194136692433715055826176098692504533571698437559877924782918027168870885537999921270187281843529146297310384756060637511553896066349165841926704256523100458661027732885155742212896590652695862878729666543104794381102123559165142259601189156901210724371067254041212535432139814395136448165002591118000185761629241158724012246368449907882704521799314753960979380282202069368385993493826886829695982519992544745499074361874941003678729141244759053014512801514799732992915061752191860942026497804084875617592698776946979438158863446497491833497539366894894205415699183766321796225099703762225456889345901687031058717332295808467104200220853082619580740922741590590866380538405444017116967260793405460558739628586136929618681528018214838366995370401502307681273601919678235878110337448621906947136389380178773281106083932074001109677587334584141287036971998934170867081208062547023830938598462550808121771026555589469135705198108709969714837637088225845172242015372877837962170340210033423033911323694444306271629120530337636416134577423599020264809645098228885646026161079352106864080795384438313553519074262288454194700667895095663159028904681161675403959440740893442423055848279845929384999880650970740952312637596223103944643741647563541085716578091325443244522496559841845739963540126546664751458446336376552350141744680516935911709293473232315468656471150710843911861229195444934886692783787645668341394354577934830249141353983681876586888740625129979310812554533478359876409762980507762323853279464870227506641612959175202585991567920919963380709671320633898655813865166935407001972651067537332577524016477765640073395695603308149153170151598548947086588187521365287521951824939945385388875784729682866541264902606092027631782066172553091040163711468374400442520110732545801975471217354425161177922245337996712556904722373716234922664782412505451845580814179766801929253135810177293031708983032307791213593752171986490961633351841487544231082298354604522347957396520312820214993698765569806148845165148816886428973828919212604346594147527149300347122655821490101726595703118000833344393217969532003656002925864474001959364911131861155290604613703852304882001341887866232582004859479757332457639342844220630586894637380082057219225752297154058731908295943508237698496036615208328150400393843846248421560483501891873874207004590820463931408594013825495603158634750362675361718839132332664844194741287253335503496937424858445907979851430952904043975645135479437410277826579859945714737299386384115879209284674557361149841178285005020454135618971269640646418397317091225986101351326500691722455513695146788589398381785432424192569440609637873666357322169082337954048759909320902054420543057967509972859548533571965441155063135548116023405666928088365171044236569609702013623182922615422541081658163911033496464180675262359537771839418380415304286116699077611576967377533033878108362654388130997773176281212516511348001017960889048889843985533440867880183627861839903364291959416278307490957740493939637102464864238590982103380375962068284821963002786159613865708823351006236708021173640778854924653346439755712978420948046374076933174080493218517594892194088494835894841605129114572163088171701519202842953415382737233541913498310527966528932441186915007696430712010567104993936734360199509301898481669517955664707293358177117461264980937843298682202116678529486220515800703510709459984670919971684571688498872529772763521396554831020830007089921535749856673631904374758819450985225797359585785259202609602809372825342641024255357937460086511949524997504402705094515866892405436292269255650880058284140579546514442647244299258423997788698288764217615138869146438648315977383743186619413467242665549729642469304905375341126678752898598807057961531002459589508016360663793629974645380470790497565382024699330451419499204248807640764581563910056951569879927032468554412025338775578249106685972986148838601039202027541434610185742383525562191101942229190354137215325590642816933818907120131385446660211864428175953688195183100195653164878352068700580078080788622598350228013751129705697301148762762093406924895191514447030571289551982509315977281778603674726743597630278816552550105588603300151078378932702643206391795280403269280582473819064423435237723066328428177707735731658111240649472453308631635731500900811415792909791213932143303624053913024695417097534860763334774410056981487227378707698471076798162644265672531988899524932214315306181329529371212958466615312084351213544765257165766287940049331827311873047307347502873579849497643897587608539488273214069616363769596989791786991545810565114032722384844201117220835070928370775230116448417819695384491015099544145836005187293281357857907063605398146470073178816013012328776690783211805838182009648734957237081800786650457396106872784415858868750632466975219942323815570934598457252267741852566553958668288851439377417297164490728386370467147738908865719766353181054590039308333364425891653664536629860170971634676496528626309842717111407129604687783707782764117662770572415575243712556411782203685723896140942794107982997666818849911337784001130752522928985949215779514519409585278959534889694090665253591204662298763395781590092219157539419240221198925843631047520640029472985127736569440180897069588455892167795875492124843217119586023210439514850274458041904435611301563308005379797165160694717641131486947542360344429349798556320975244219514220582179444866791371904052767049727257307438004377199272286311913271232120472116284751909934818579248879819676088113449121387445365912143573450497807124093776272885393349056015146370705768480957937216184905398727140705203679805166751898619864619120881030442894921959484600150500605967164778210350899637428458804725725925263415922566490039733369845431903503348784821910777196189982391314382222732511607920919703198472203728900672926397912873959401478850681974327023640313886539177077342083777491413643438493080548135305215585088330441339513725273815403630623939292337293472456213388284621429000600050465635851704218549969812904293806284319980783541399634166116782258626258654711764187578267946344927221909832344193314901835144261926806347887474603218762344668626748580060515530543812856358505483506254977895387680450665599122881535818189893944146197608473547784199344361695546399970568088600513177463519106118767166927085945597518485700719731821133286585706042098962059779311975821753647856417321905859807087483160925458832944856615262552100138697913080340554811885858133412821400711640835019014702775291391193645731460712533617938301589918300884625139686805319083454602266713405815455137775263341568075669986380261326135978373404751873951032324090412661040835528028760183570268535902686636252773041570163376780795058644339747944575915249447999476074928614720240468216749189385251735285760744072200959271263506058460375829192828090648544713396946334127167652286453253621678508149171445111034560183591527354334888228058434142912457976455329415980611772832959534378150274968207551140769247007528637683422585790872925651831876831794222372309527852703063578342307605726253313058566705761887917836280394737334288222283350774845259318160220812176566893717733894115386286779097774528086181053220103841293241132396946543276485525333409431757802355679727437283371568827932819849318046587782278399924527865551981317282585740297468755192162261096914215286173478068348299586607665514055162524383559381543692966350527551427754378419679464169672165938037883311368096341186865836858451315257309115431341661126287198244820803235365959638730415097568585134170018511426232941331875870289769290971155886269290604037320986742538865641094752041036189439165767444905022731708893553386467868260236088293579114077451595011772422905728829652278772483132275970354709938399696000512869050582831697015581078222265138675228907373803522477201577474400982011627612166954514206283595912525829276826455876067964430862316334521275984347129208361783415065593312697915096097516426690740316976485004185864028287118767545432559176203418140877273439646667444869250254603808388450224506284076971240499831145394078783567120386762671942308726743500375723569278848617379825263878818564695242038640607510708164358081583030538098812265388913575236185276004202993264142431791114801541099859003475891859085991083806607623561849468713074966831302709952948882175491929638239168774634804588027630169967339562484185613595393417238514760847027225995875631227984982551483911968608129234968619159814607729498472658680416920414318692494452558164979363953738484265812477786872362890080256878522515930634161483477094898630110866043725516125339393703631420005905797955673612994219832066147232637927149265555980450709275853527718801855846219505320877022787169472292452369175425824087692683065463808033822576575052709130828664702761367821697602037324409651093571605208703333022054109505928082078973616279342928135509036695933986197571576420654756453283199979068952492231948883591014218662989929699057942180458045514089781620515264545808030197444805232872956858200212402178760985873691078073905475970600677372237816256800912491951530529300305768443564704658896438187958898945157588846564605177980980728013165318024549968282986506294835647325507859962415102828813945143037723958892339228381322642001533300593190553893875857964978753059511743101243080971500612233352221606021718395906014984196411284375861799847861212425436010525441543678487179292620569547257333006184862448108354933707198404186780642555712002100294843085977206102995859633378729663737458076153525625882130627616410549320260968589736907715044248889045062195166045453009424315886565697817646982915512203717547892038267715592536856487361958512631255545781570568008861666725903835677069126137994593554661612884203954212972296782658181164701770329818305044118119627375370997005029246607380693984760062272505404344594624723311269157840701263950226700748637149463409828824818304092482972275419173363584569820287704598781452164253092823977670668975747686402988446544525822656410644238525518115752859384671139540080459058851659311503173404323744183051239505315588589892000220313207312371033273983861627211492178514617804391857752349764253792569185916545550033032185188978270923859555699786668315927451445812128165981483823758389373460726491674593208434579865262154221280215042666357931371679459625041253778080981939182395350839671377915730206449551740481796273218891148329708268991305276825914503666435614484083865060993618897573125680070608847077647780015651967764527327655647559175005083669452017903942787926075556573487164902163641100127988517594669417600959910387816038446046477000001097001256866094823950688096895607450950730104844715564495896055207243943827924777216360196585525803814477472417194303584466354517896585988984507237680738224876218614643726341731719902682079652677221332687124659408697961338675005780526561611420359114312511325940084969889066471139204300419772174650164572722514767682129937903814202310332855021740323573848421481255563663211107710425643852743932272258712023563353909233097672503362103455810323824372376724930224302776156329509060498225948367250449615692414685811692783095838176474654522305134588674973081377447575006153438939172008384606418438013220354029595431518540572753437224958808302822193084890869494720956367901676495854340464305140406222127665770215443836180108006782278019981217170671804442615147979525019006490965183506326098924985151185364034719208263506404143916624413027670671969998768984936678344923597514264918384315257399707581246151312347991178063663623075055413316624303198044255209739227151170078249036783016734797202153458805340360263819958675328898841080345177512062253886223451125597459349014451900457318852765871875030484210387470504932360421310710649761001437662124418711430383390253530768322675992949410401077586710998283530128818878130954261469499442243807890167833245909038138503371787968411713527778070110249502098014174361754447146264136059174639424108061307170961341052679911470350508277162717153370603120618598492360917883542306623341619189162309227023950670809829283544311715183510740613661290769411225198745465500382212808515353925861645383586803330534589124517069436915326327560855969690973534832711187809020728346258007349476730325778358479362280933208853587240093813485768643080453527971991247776767366980612456281328299788884136110884799907527673016350443655672878124098665225230299618822574850767888726053194868572999790811311246232817551702457811565237352162212340410263068809521962475155112911815235890064057061151591203386672176026331072314506430800741493580048732156419219570651096444847998669217770755333940192553781085902024543974394468439864900558880571455886996855193709527970636372252146661731104471230428509010703964329648568125237504432765677497147696924244388292310840013883955314788119418182890031006463165725653591666350426243402608901377686066087736106132374384461689534654000413918564158007943408472231706773873280630409790232570104424295069295300967900570945520136070835217477577221871766387524712474041291890835617497940927032956486912382601354719181698568815104005662603237392225232632108824969644354438419996541598098306253610175340145817091723683684800367740855358952793603454635754433188299889000664913286152978647062328334028042916075430225141412744247018260023361164821374033581596472557375593079838307145142332292204623509389783312132826923287426619133743817656483490918118867559508284449217683291057089582449367390313662917799349683270184549658029528104176339165089636686719571989264716487380929415321142423644982946392448851918380909693510115136873822534399072065795795213178087790420752542874438133253154303734714156614833363183639353626113268331856713094432352902155150258442041694751430025901394483366489482184649533931976256792269598810401991962244975962849436496185605589768340241957123652369004209104094457797802198387655058502777637327345112880565643207404610641338394247779491083471140043272345822773948274503303205257882924987757552217638586174310056021106306701456850795957564862455830727608170820023133725042643797220361445842689206700735486770560654424648542595501152708829267170693662817103629110765376545345641166327623817005556197043449718154881604504328917529123164545840985731286767700698302992418257230784579519136080417665551363933504007245038412380447986398374900769510561883048676391229810104305327915130324949443202433641604676895432848227339826938071362393433861651492887543393511496717282106966063521048076416442069299420301153722804883543626580068799476544609670912991328449107069964167535969421151138521403471615666248770066236753509588566616663883789488558287771101920444249313768573355485422484437544179801748085104021987969488488966478707183712122115063115698862014686557673566928579895415909197761288530281356964109970304691828021953850645271170686925969980098147631537824393293862685558102855209049090514513536425745478594696656418535020326930273171893367317954284994056533601963640117155249478116395098309329580635341004760461870710833582790861641518467504155355446525538126507642365274647612252839625693610998275508881555796121301265489582600791220115726731542506808885895880234926879206990753262437681325091992347896567484988789115440924338914690011048294524661998588171267590506837260822974695776411268806198098544196630510198260065869997500405436432467286622638610975440391243700320657976656410912854240231739531515421173751385177166680223600267666123660648905322596096639808545802796828399113511012737272359928159949127306259044243895914117716169878499856272558005162705573071070215675703916504767120639543908910268713516664952364143895310690823408182155822648446625569070340952958929154844674504928231169334214390322328491158938762719034763776937877119675674777247700757366157497057104325058056201122822762568262198354577497373487933917669097140017902128799006026515780075675955887209218537530750766326061515149484955778347373831937040023213384397530515488735398573658033398802631514729269423421580482624018999178990495010113040653894839366221678024416870664724171675974805886609132107974773869402197439714059242515404359400191116614787018598438701547887298612410563635516619809658692388858551512027595193427797369414029289998313260418480399162249953069033600114552708237061870324685255584054058203869329726730891716817683196641639660705823961778323868144763837815745753803739511682901812507043079389501307436183098673961865417178896728004226910524918093394156345924122019801243228234328214683430473315309096768550168497866910893015854949393441223979266118818784506281285850978028346040735201952458172339045247454589259136919210409612638874275437008687856851198131123038325560690940407666431855671009740963830377498534352823561586876149370983531514091075523261453155843691910342008769887726817147887188302198085535660434547604907232374754770492788103163249931909593933689952384804784671830204757912557120047018985566857386618847457839785783562321185966832087734760425048245464354801327206916495998306886527569613554245546498212587400393533488792232612533117638257670380951719190832516347433597814374238917622203279398572156618598857173819036886958642944478026631896556352488872320349059430756145840725125554892726239353349553441380393708296013408365127252641779981951087144090138004559382405598111368364543783958712731918482751393550850295181306362221074397846971085508050340129146192033278629720967115644851654758114022940674117350957379484837757859433351691355007784005134931071362270779914976631725136891944104900078446281530164691804456148635359468404764636291920210824367291667601289519509963033079037752994659039491384075228548933562435475453552821762582182920809985746362345391794594437653094371786334046381095724738020083789358171325405700977035119974178313359192192922198509800269654908707811820333634298438064035771688144314429679916746169527586437269229788600875763744053704674245913725691219314851440594374954330479354856049370442145928586851334054934240627183080492330350529776592409719101968734849254201295193655714727519895727632075373991699428757767911967056920688969915631352678651477606904158538613394486738988600440916892459077858568217623947020200507917511431680928323442634067142271833812598668829148148624091425895299846047207715798709196708638663570973319344571972218885492589625527652576221203443833766519221388101531943259784254542741053464822947606117709480385555255735855459598140722187458154336687202326421043668483947566872292871057296817556057815429111807912505895206967790705548316012363702018777604035188932765184805141839645550273144761581444632345736036109131131466232732483573428301185387300178803954015194519160772375549563646684139383054784192025729841907327026808859213588952870037082681705848535498275697500887856089283809664775245407597727971215532070276572339121102603742260069662698146710689084575597664640535321443278390299151983251313946699131164080309090554423884374838166192111531815912761223670975300587384218434119233374180329604676532823127968585364111707495857804154935809050268151320426100630950171656364763000241024260318528703280949005892275356986770733683684262230922956044580114032802406177427489584702269212013968256897243044134590901340519498714925086277580764101438070835925769557047788519699888494183156430456536210264427699460689118395560137072641339938410267455950979686429268141666802229946920801898000932344868231529484003351074994066943769014671316507242381617211097944515019761755577332362866991456260568494384534477980544906930025791698630088005272035929559230524012124366622445510533307180778012438102688283647455459346769691595980481574445322396876539838612682980576844451980655677923074562218417463312721348010167207464754858923609348314695251753262836125161260232343348573895032830690108560723056285145048505565303750256322496595890846160091493145014683140649133580440842133101822780675267169767849337353940482976352255009466981954260352175916218817711312039420877415399142965158907149928669948449261382007912260763080063894464443646532155696276537161373681724020939880501066353523805724796754133954677875319003553317293863937915754132976209135585466231880292446145206180134166852126869106878266346751094858716327797050187031341824290969765477042850486193703901522554235604598342904866945728664324583884564870738508213240397217502480464915523059429474577908185217357715228871202029520096859071557678460735449320228563243658185989617361585208014468744269621908139593892013379424106698390466375270183844902534560412356141591485009640910961156608903191521823599142752707649275604321170467120956057674929676995204577372678720602823657661876794152652312389328874200445709267243674872816302713764927326052019958327406807394884501422037302175917608191989586838894272050377371938122274138969944363391598301265188419010684826483639249553485710040676315784279210709789057298178364911770407938580620951980969411810221830713842201696375902639680024845662303531594436600477378322720898260751578009816397322192804849388864976421241052839137452738468272182178449154226585315993622791765471326981466336035217015446725297762868605879212494942205457217900068874770676538349042339630510151462180567778058725579715722577565531873762080537000952799612109742437780221552655183394870394823184529968331560673227756072021925411106684191622053608739849009034349889602672787886130443100035964311775778582533861401623711811202954022127436081173498880810615568321683382414935221612451451255011137194813704603319617942629789662626151849325883485827277837735587940407573415247812326513477885846636682833933945138105941524254481538298886619187832097135591251726045302295976141272966172026562298159114149975478208540195087501544814777246757747630331751870217557811307281860916412819686858992695970404420382452467509791050186841213460137045298003200861448782461325425820719147137627414301582317401388711618787283781525063925610282728191984364331644792333403387038835812243904000321894560948817566704567564817778523996989058598189426496400309799647399764745724793453973340438839872044121120077075030492653700181587818017609881258398385262712798636082505187033357037361966685608115132675626745300779220555765904796706703043844396678885758392794699988983086505658238883105750090733425417891307439201929325719177554811972356469765666776350786009482398420899400546992644124314252553921648520426922107391396920446104861627010233336772772826610320564568424882830681160778362389840067416071509704892051662889845998599056118863187500414766394493273957610858880778434938413490718637978663100096882351980349267298888983888098513103439831808011508258087868260510581169132640510343947479949265273360010353251010677184384810152180642785773144359614555516041589645370905461945461255591553377030873986749573787505394337612393829404493662298857102295558892593097478801213144853247026376076217819837010188330214759092922648813403785389789367082078905377436282189735579696144882832152588557481107008137882585867659326625199093549010300751401104866515861239273940642547835805190951146400051813887796781698171968888423105189234990540261312918231778149814323944947792293823358301298524657973613765852352939934617071511526720648874971152958559473499262443016429060179273170941624225073366404159540776988748644338614360534446251500009893506854307377808227723677964531607212910215460711812121769439767011915342709490164344477065504337129339598432875852123984967323130884644593324301814521443049684142987410039838136663052007824072953120014357983695751857929085195311911022127169280776868285964529230350277088072194245314879650642072159570935471021532178272297131509917220439338139176296118792133335417093393355057398984482607179070491498123054526897724931899875141106883271639747275881008230906688033532667821315739414656047157889893212474922743723298023348250284857475819732661742687468047404790069597313301987691829528721883220468964761092657768419761048921562944588967912787062110156654240752427629937664209952610975265309143455662441543324400549316578164105998108297919082224832727985456461553149642508666537949976616751926353992016527987061828679065934126291640333769571977439549432363228541633315167423169449710486647307800731630506938856723954033502299438670971927713597347232347263699829815647376217771282134208372117872945274833647211441964626846882038013557644475135745194276601726438235886013165894022407063195506973349734700868955695269406901476218740610713841311732160637691155351024446082556446494057831335628474680562941746055116190680633506558858767066813944030125549922415233483408341347173430471606457374286851265660410643175761014669183344792125762410248158762374851106196791069075201194051617932317335705162024220442458357119429878599271254716924174574646070718122895473142012120231614267306580765729773332804469612364842163560553490838895935260364113588071420081142335252729294728976505802939488746381805764566179273025717611355131490860348714259627871608341164468115297353741015359319646272195829943159323479362981825360819175500230896208374223501538262779326170933604425648015367319408054805280934331625030485248591034883235036820989833917385389399451882985781349957480113285845480216182078865836859649966872350577876294190218595118197728419458062178128710329804753777468539786184532189578652311580108094194325753189478845032666745842963661568821243768178776781770751670721208680651808352911544947655053883236963954713739598589009538149762640726798684202125098804679003564712349223208815271186912035712149863093035581282962319897432452334932416446064746226759635345629610895200223165607654984648418489562580060120941416671532198450772773032731334440908022484855325306501347721176188368649407179942525094003757098846662509187795598095026903749047856878373148247765398456878966986087676931303330536485150015544332657935418809221565084415571933383379350817083353794603524958275288382974551445108998916159813357273385893719611982294399027125764557315473885664837770291626411329859176965277240278193017478801629087598439077151534185749837936862834517553549750795111924862417398483210855200298456043036352533638643656319473466801593176646999592004702678817248804649903534323100669081860346161172476122030270158190178458781981629787556549278706395665108345308929151654783145356446547765599704700450705060328598164806041073918357682909853239138533283451794228647286571552976091388185565887705091272465175608477629918008213765893042636303647219899676801613792610638904438359093463203958836071739230765214592350507421365413767324445010408821395535315698917060695147340650376043619331982645896435924176596104983185954450801968650313439683643818691658075904427888641461281823491448620946786011880645069318056207665014750539255014443915196982468732846782053208218217297091922570483941922013298457588279810378817240322088676817575331810678858525236020583520050363323482021891701981505343252873066593457088897921888043293978077715104098468082756985875877181954885682916634214945816013783942347536710585348021910669724954453060018133818678057007845236338178374974737163852968396397845643916911018645044213535045616677922310436608718831493721197432515940987488464997413301371722433548577153419455704646462597465015919934284174411948235126334475217842652222493597448216482803924142191277057714203526920091498419227822206657101272368704961084303666200958876738409542684639940539849323432403457605452028510908241081774970907635232720865693573375119733076291328444857549438180557732146432328135815809407481962309999621591847631819436937398936830149868397350130456576463898112292891365076874994278766161538652972131804142587076931453765166308029975843203753649914960068867235382304393024837563841072309961186667944525242108337518436476627222799460140465988106203709560945734734051638391995702158491928594035224875483432627495435055342660796771586465912219927180048328430243218860051912968544473015176638277202904917368737487342870557745353361580681121685404367800791991446152465613949178724367700705279881068808120947776147487315160670331778016847030726778780411540080695184565352375370619342653707332805822869868389428696021791973159513662965921753680869472266075983051725512787630228092619845665310087001588658310641126917563266852840220680899162078939303239891307781167395671548525224549537317231641919316724917517640970192124862489103877168470128792169381123774409894611994415829214178122177793752523224059408807049248597300719430830114112087848556935335601186164775362924265163334538606683954323925017435135343437395451770908612999255614514694791929310098688081334609976450052295983633143287815850138082417950473413997189205416794836249113718098673337630100923725915637351059747934588836264705219589144345726308916311320270344210355935928165429837314798344214797768375347454806250951301729937478633690729147256856670136620722092843481687496580075050041021124194571477457223963164603325374845189665294938748256030720523017755296524085931644043483273839409165593090132024383322886861978305856514425379947861043333198617020689081281591117098627751427804673971277279210698543331574987232906501854485793310977230306595666611519323935282543485784571935626738586590554401625596440966154225216486954060045013060842054394375941282703263631329556937351649447828408225853456806266475327889026380805796014119049479380188269289462209409660283369220563791409293953624716430747181297287692031169108819334283875232080575559039919857937132388242166374390382099268946980112184767622042198790041892819327999413776006107776075429524642906934033684312802277662342036359625642738503214356806224060428982603272861563390843526835757881593922768489317674210811970545096659494077298248432530866597970639368750575015500241470112351125302146722801283784714699023224390309680432381154368181492041465203862121910883309682360254513229855035533897963736213880509117897488959735048208991485746067254223042815968612867871295126721534321336408661904353193617286503453632163406330104904949339669484774594233390848831606643679839101313355065215316705000363672379502110363442522858013410035453135226598482159039459963522226706367988755696415466174379786443026420878648974565220866565901415625325501632509072997952280388980599683403900857995546978753538527666504208748138029817334079293253514277300419382950410691807318977234460332816248165539334493184620077821579191280939698711894130926564870513580977920902626209920924996848420895409798127934593017135814053384557185655957335580938651151054550804421448356283584686568180450975723692233306737805622095851925205264956402083272822535525052696583503824779379781749046386714215561577359627396786700653400363562745766474891197520699156640396089057583284609268715710241211929797950010669377785631548493793540935816772745271710851430038326120666723637030644617152639259062044060326425634816826689066439408351782015510373678048511622489545928931878672830697737780995098650148451954400166026225744326992872681092750442131086649890948009494824196459770629528946560945123611666299067851083758383731313676905219685473039420439200608688732018711044006154259275070048487109537642898876827474087673543379152616206962740984087053769213233035246426122521613179177689411091269017430164287526580080658474884191852209399389940825482088691551149940533261208315069725097984297246061325854920042382764216292114897241260956409919552832423793808966441187379543219614299892092772852373315349535063277928972175105124646271391926376832953236381714904798688221838963807901154458967021547509666832788573816110207675936699193352966111250878963282224631571427173212095053825919167049466868623241357100382194749693169524826013845502934154793709656085752317032937389724468515314302445160876061705019076101595808466980617681560980551523090800826644146677076306652003427186569938797711339904327585002374833215832665526206970202837455334814052736361670993062361978835426521830382620921625232824747402625955689389174071430802239199830643564222948649063688077591362635093038576135660593000571140804187408079942727494059440157569397886927799860103313497367508381449672936099445693887604314214614206382095042275050454452457358706049488514205108783281320023695142978978007027092385847317303842708165126137841858929105237148473174167698883532015593771335193475697047942782076194874019585832476652783552132430038007889340668300861123629429772575747210572911378868129112959270463827616820580912481759097781207933266815025093432544455966993721769292924210475367950758496775699874649931701755733321725231360000452080655690390904261495052762047146711612319156255540285471016790671156686965546134694290541175226668865117996802878236366485927507912101572181719386685096401422527327075338520003795803026588304227337097692409134977799835616101911556818418475001676975479405409944758563776403088904222746889755367968589295539815194317104435731196698639035184497625426760425608743512101192508912080143514980145736489112630930734028548509785330786178052082407984559130801246624247729496310513836016985896049688568898579357787056111545504398124944468688600322458383147530910338072346273863975598480299827684660477240394607192208438493555097816768351452356256140441609519784709133477558090357846712431224404983160909114257692914988833697292780030285761186472852172715022564282903623741526204417674725093387029952568376225523053313781396219003394494210559867628406569103785339840122058728703522781871092337396551959726022712570467438423673338057773612724436073832167279330064324707822159194006954130096678104991310458389371816138934581791198448443537948636842453984870602031783466692476463532866746248573332788579310962259256727727949656804176820180251383961499508698078083966827902634777648340316548293197721144116832243358907347410085819379326774948989424242141847122220076046075896783878600031826418197259777218553914359194805566442166854262979833930949127983248078065196409757831785266095855831705957921534990690851264606810430613619199235400940840281774142749183539310700406286088441496893656315191472528525350960760052699023037703462241753663859086344541673045345686186581078957651031700495808548539643149083099320569853849564135588716352784988578151200594786238010041991241765132187755412383640759532894890638835150641238138147054292399010876508503232151184769854229087860345873335143670191894498531287252739578287893168665869560412872747431831641232824684996746262465550027954927593279457721195010393710903136964744862456955297446680131612927784362102793646754707199117777873391312731004546799892101645191186167740162599047612737824159688969262788669750225975467328537826653742465256006565340506303082738028270610038246714245218048647415708034596514610564809292522456573815676106071610872896964809497934521206172096491707944288027179941100399061588025658666935489085904461048826648068401048293914500245067899505106066819182138767607384748999145086592963287805264913820655405890977029127476285302588445577281825377831853360017568052438931619740006940312011253118463209843511556057160118395381812087411963578577775351694499100061451256710692722025893153449801949283955552389958456387286755050123699364092042495378625163080820447683681718223054316471909562922307120712230102997375836333555406137973220717258341122473371766374103198924860162407192725786398254969330124671830847880488257362697424656551308725839149722659139269432991247410581569976684122223833342477061255429544609606161846794425636434612523107322221847777721471308985991749095121294145871994576686710534086139194371477137777782056245830353858822133431180980962632201130397502182598921023644505529034278274973443962694633614373834256852694867698536611475832197900518279324802697798206324970741723108266157930202303100570583105859438590747546243575414741461138959710374238448203891514516798648239607809801878825866926537642773780019120535400458042379675499986260845749376344848311055545627536890302591635400093504635539084105672112914389688589695325570788777941212379596032037317696084192775784179308761270669045016311992099421989050165662761343821709831961257109225496173257457308093514329028560347634311710776322950039264614289866903904995184498164797066173974285912377399357131492175659271695144698706987857466703337746853533180318869814266240301003569439641363961654036089462986311948126193893445159225541180575299868646827521523623331393227977394516755496322663687490848030845691405471524212405761151084001428918764383294796296456201286739211592702796632300623883722416971687764108168176602883716924680301222885939182544796103083050150072109125466315439081228459318381067302431822412010544149497308515098010822167235356178056970467061095796976103323373973914579395034047570871292142601364748694696310343603935799136919703838949613434060665607879811784661659850628747442197304954946170919827432842160871683474874766075032535434962979122079784119239366028832661255938146732394042020564157792580556503836001419723336820966806915031883552598691290205506908000236883924497094182037228434826626411047323098521375365427053221177042183339653852654221143602207121068432059576697526147020410196038440300136606095635306207811729212867898263981838026028952506099935670260405516101669758731617205302479634497578287235277107630167651410088875126997563133039650225992232189984164989422675191986760802855802226339220889138223807858273457845096974305882528791464858525216592240199067674017577044683361293170968928722923783008160658463433191377282026049480585874531418430781019677182028700738183186557123860379282885624956836878315180024120600962111606910113704590302911928870380805365768339172649591016731091785469148144820663707999789045648798308226768104442584520933209660401914743468820666116580739242790654091481330692100555496615067536449541741921099815882043607834355417092947067742092720567922279577374319989682341256890041693087626734564759596777227770001159490854371503731507915054306241215847117780961913400796182910374090404204371469252869370390315364949003312387083465586745188974970300151648499689795019396026218309358107465980962119975156110845974840010033261887440828244324043721862935868799347757231831627774018554492323866840255403844368378730405493303898043667733866314885886828595672274104293252238000875164465154170311241985685018520667247258054575508334608483809535717214774583551835491533471922479536219266145939810584841251091222144282700980757241214129670015995891643088575310952530884763583632206614405692163644695465170097159632179530154216908729281005966825741275547893985670247352380949126316727670577838593680883160975256823714349588233030259584086393750802352673606579153332337310575919857459848992614569622600502485385230983800804326840843228614294758431335677475281181344016379309349233756354626145527357843281409941273617659033675281938193018946358172948226104119601421854761612011988686425784038767194286196895415053147792384572956113397206233905376718139750417000994832130080605808367492613825018972272819544645422508637811198732262294911873378882984092886851690322360413279883057842660152102286432655320397374953465566047148896067434346470901844345960764098946474305832919815371790023707493725139735506290540081970295312724530804333501523729279875081047627126390381923408340770142095699516012759840465352805884301193745668883727787407180884390803372686341407903034332791992768639044378478832986461980928583423755621352806351469353042377991686053076172159514083871934335780179869991463739004370626930678997143625523818840159131813349260785795034643163438530344927128820496518983998352102241750269005352652575564275320469282698311621680467535535448357503921083444472390816651662792316447221547988133359881331357943225852222229465021600431885017088238289526926386806221999167238876070527387465175819815445447033078094299217254208454175045596641356636737894024661011824738781512190574899517116792671934326464477519576019930000500637566561739473463208304586170679388469866417471507086329890440770594737456531661642771057128629558478530532931766835985991092788960633366915751690663263457625394271740647346856076630435407634992332145804102598798565649657175707931169036115008092301357393488625837518198022279396453302089589067359820245789149552882096560510069895045660651742526192937315058276031694539765913339634714279295820036746413940576351894623937874747824758857722076335154889398199319158481534258630399542039079436432884201397844131957276494710558711094515404214558645153450598774492030459308753044754091209376230455868879893219025262515878596749246450255041647934768357270866807280384004274707028192888762195142638350936229124652604779334491220969610451985340757380932217310053006184878630840522898533217087130548282759825767532218800909156055629341248648747421542384337802371416464140928410291114927728632497632538345519744046036338630337148262003125036750833536352823382083758838678086397380935535926823140398888436515452763401695900610294172809191667264085503984696355342293138793964951240915443118821884766560151365944419670845583228416786276215969960561905329939917963319105438093793976646739716767105628968527086597998889935238732664333411483236654477616208488889983360654326963534544551497957203787910043190508595170959278794079173540107198391526215555466295587884967695052438040159714882651203097433778172467704976692642070060846219795832585117902452531890518438231845527045610735384954124132691768236347887656268206768933702828986376599034173994648042035687710190475324426343739347452083106037221922518281946080091897615743226567738241479696902722924737834073001523924221287637758162942003701671987448138618073629356652617832724086403709931440336030533595412110826141930812504393732814004303791330265186280458069289603430887764126297234800734643869963847712453795591089028751792418741961769414537176088725949552840198016997952580980136407013638705240424555986045772318130773354157774694975753707205643171211194499548006358071893299369851092036842925103110019397483552034956758956322795529658431916995586929543478879538432769232829241842779283974653842459863130512498632278422292027542819070014625810119360213224392888989782374491959224998858334624459703183609789519188412605865771567099592937427222998546592879382766734937327574579244968726362604474766569996419807744686348468423408663154938810051585459652203369911839442231535386588035190983270519072381029544763205616234358276317618683087347930870675944999819586917703949904416168912135435411815780699461033494894868777884100167095710743950266545417575809522424912378076021553213073968968714119440319751734000818283821885843331325900799960791834216520952929892002740010798114229552452529968885680936594476732823553981699464012274032841732643083767695607005929770205334567669147697126828161712890233715190411374975390274707390504392075465198116609472075836942009252034017946480597063320083288667940989323749012298178382249359914280207110458330226415998562276141614709018247105076281986309790912777223337255189204268532643661005821434062972861278077368939620137633462875202329033170812592967670276505235171598677649356048818445238132293314466172727451472418685536290929001638532437928771104028588628402197062347689570697417857331742713803144048948692314970008472229797963687692276987030431238547003243135370692818401408025294653866627708396885393490906802695989658496633939551979349518691682955712242811567823310464055962273572692974435154697108632326673315195642855608867849144689041739165341187825963843023066450554289819765333072888439168254901331326926960411028164166345300341247727217261440734089715036830390543213666111284089551385526376804743928962202869682889146135840825183707074806383149883164070184023623587207510038152512058541707456668649990549786357029403092187746588218844722291348777383172888301786844380514954622377700677397036614988233879364770824139082919697416435709482940543567619058420200963843611184955888636167865373461073906540137095566214965667792251540169054849302555767288104332557193683649365879276082208038981589114764748134984758523238363677943648093578140466756305396430705130068968176375273971378374201035122803980592432114120237816292804125739944889602689717342045505948934727613378959151082912238392116916535258107736919115651113434077271915746963025213584941335267769509261885794923436964367483632556742404170677399341189062802959873181404823996911142011607723185158232613287161468295879369821978145561618570940204248226208521899883487606554294102358642002927985374085641480581974675456215937703706142675017659609195683733172045923820752313784902262230990992909647599032771508634936717121905251480389737086732976058539566986539379209644253003537501360771843626636824128597217270642337359106344540149039553119000333984324767708593029943520926516104419573255475500886644832836173097384965560192812563415562433541503411026427085488148418384988097468647535664603093444091954871645832023194630132976376255458382103018892242204667038798247897803297138762213045897035467783395670904491773768256902613943002326982154390744819504574757307357779034030018866738428913148222810966956772311673073629776156237339871495889396607538320782763985734040690310373030905266119005768914091146956981296467960110015920136403694767042203757220128520916601975534501512014373086462713701330780485877094376100460934226287966828659523302221607932997007918027915222561581366177993723789223411196128405378753380907908223833922326057888291725821637094061648512939184501016337015531505872052444830968250910844021094469272730064672507411864754095644600605708691393991960954476556034391071685028873447498249379451657434739879561897471045122801506254011581746638083204370526292235587546281149931631663223730314166335460214321184405561801363634471578863689969214140578170772789507496632781553501167282217023100923522122713274379575519200235838767523182651884168524640049555336171670495941468129004657134952765108287128173767779466924140012706966395936370669856992984385878498432583524357073145762207759471235008472696585692048972513389596025208111661668887886725372346197937919123323930639199562613813703654222497590728176606785769981715010001447428840454852858287058044538111611630998972635736027131880624615052676916257252668946943505608671270548668872047071686088976335852130404991193020580906570926893975561037826124430227458935146685993197317059249904686330004195170584244777608338793879954544015277577517455674456760842890140385826056383772166387182788655338018301992485605429470460711940629566534916552539403899446396837547767722554363315011176938258139097176822825030525627746158419215935285818968813032602227864888206637959937772608461805568314049048602531910662738433407814578538587137911986083884760979975881128690228744997458547667101470955510790072339778489911126022669727050883014236170723313492467028213235108129356958450620755792773873442266292944114131100058034141415682180290254248238206169423011642944031442152649718602061744932020600104283148474809671933534235882287768785444211821886127740474870029315278601870366140722739658499226068448654267334412820647513774161565103976628857624436097857994548459925476310113477454903324538579000172876859092111553466747459686049204130401006487137811532700695084675856028972920215836926134938471705588930754480147555223889371120996017944749194580793700799648085036976542028249040318005164048759906359963359330086281878487629493017464509144618475969923787461566555979540233304832667531194049744986109969841280694936642229282167862067038501456328294724292807868746855761025291426177486011418482681495538177040722790850272074434311626732367998786476922231666208128410582787510685016657399495886791206800254515150678986266814889922927466465849591803589387172907684750146530046488331212822612623718953475625380448559379578032350622964881673403605973224725513026547480147304816114174632939718866022970520160842564300882062891389585736829946944954548881370624952364727865224072765449578136531496751996660549862213534209008574067555527593234857238126931366916315534677229965753741757866119058609735213128995676469305646168483025880016822709639610068766194981740476144891568944853317285587586901127133191843717621512529718066531007569911458956544516465179780127926050583816140892899073846039465771094593838114177443644155019556352766337762583318268222293623885670318867441330737799496833465683175668652808625140223314328628931943026170978620601464995873740533693045673261160725200494829270407145830180108723450125806972767067341023056899632574986184887056240327519095391641598831324429659381716098374521012764847089535451464492608809074663989511252818858279229650020536411479433673124789654452359960384733839513586640185288986515247317627410461090116640898556089750564675879779564959299660182259500749889996667883164695907829187936382743829442152470613570034935067730653483247089434715265182139011382440461270850215018525756106222715436132826680252658472962949628265422448828785240081397608131503245343245867689516788112893185752586646639926986420888355659833005190534085587624802407968613233858771748570659567738467053143313755807885890517465723827988658994774067058163498429258299038771065049166490527454288158829194880991703467313882256578842029825517571501686797843384338473832707485001735055605792742629043367214043651548192605023175168215657349329763996244603603799510434784347106229232450621179960177905451455351288335538990418240954420038651081276599240747447808788980073626230611741405635105453870846043007240998148410812787945986632568778463667587748126169710746625812272614519746428617400229356029983114934988420476602751193703719843410396513868829531219232627315807116918489144156135813246601112421272671720953606204370289818742116943275899176069715986114239777648103098638882845130800268838153870278330170760700558591376070957364314372607863962214181577182646036779791364250433060850993011970402471725726455271238342736577290329382349570821459576230833700593335671497391544836518730411573399771620558877362399433348048589409039538001023417705948015078609770968842701379145853768004549119873972019311858529103142837042864397737084958512574910757171484390045447203270761201128041081320131347092958659428018717908444464954231926840377664435580930630588501099694457274736223917657793051057318193382413795142590102353274242929109057616822553777707254281104578194952924469298312311476988166607550253008150626112565861013284607492616052738867445750457575136432145213102821642634232845259871634112946630626856019867240937179631172610423239891648022251652399624256747551675459777219974677361868200785769337509600817679443662673407826154765242295284895754412815875108598540404286430891793865885881582022029070377905370491823221565524402340851884355494911114223564818911103961437920843109421493211268043538146874076374027198831852145416102156657381590930436697773440470514748429672657823276232179630573518078004342632342995833917521731986555719437248874567274877892623863380806002857148384106497976112403407635588245564466088700183979702979728654996072800085574146500222449811716236025799166714560080053509845883033461217884432591153249604381884864787436630747146152358981812671235332565459280129841483747161001501079622664218170277072463610136917046549803198311901393620652558562442848525633999848795090289649074981264677133147799207205683369579254649926714114062908332275607997449935050797879233986767270667805315285113247664772434922198936443570602404799335157858207464147853932006366573330001797582538416578671423092142085101012703896505468503882892629503517264746432531320953912968313636781241823828254581724336669611632640010934304720860755245879759554455459051934466402723360473869058542524355345185308244738154927316995886357366646714247761281050819102762752863373168164461832646031694666585954936674362839044925152441282209647273744416302839726015984043677050558404471546008462113415305206953458677649283293681843515764747621637699307536821524598778600431167591433685163792878776221215005696549311322006163718219631650645031681157090288666702896871172795702858344263952356675578588709682488066051754734073949235635438396957457855444378741906368933079768822259490184029216661395258670539427123401808985971921622787898511614213698243475099893553019289158992959089101948497510818425130698637197884900275671699646580941392523222204707135580197926959273095714658408538328088361396491431135972005953606345199898358576699615988411369447182204310302796041667625019606012591084944573006536016163855065071217687127731836198252768558001376066473751672234464684531403104120661919547405315358547943610592964924869039080300794159028795026264801742799053861696205243754925205007044664068104850538942924095841714573234096523744604843366945341975235013050918650707109608728543428459277932674097768442658037762091435498685551559776925117894587717706269433380321417366754034344961803970309892034197248532876759904291122910005574861361309985538185116504093505472356331388317543384683898383220997971527413106052225749232531301270606088888382714885536023299528250799964337286299444223476480406056824553766844527140437980743272835915449684496783023418898557721618904359158700770308109415979411354053192166993129226833234086089179602594593113729801949381913851653939224544641617453494426773369027667266474342693796098343233806442323584185298952617529371054054478808565860297335178459280611629712378719006860541956448195320163029014055092104709405904838403035642231439235531360322041323213825457221661951997502131605281658484449249297622281747825320709556507876136190639272201963238905236119224005452497555399602703258069998573253838449145856066994364926323230488710343621871966757025229179602686494917885660243793066970948324383310438068667108827505417721881803322680849615938875285306192055945265781704473733285828498398404935735535574940988962684140721822532925800986283956273301105070627482782013483947898872148599815048800707873254684949508620434468415614492657448571799298570631261378007589834964270708128403378195760569532998294438612871628798298662376479197451763996368363914215337535082775525429589242832206582474627793532067105796469908607660487913929607654492932474662813558103672489193383980274012941290545174465866822121160992118379621198641235210469945184209172394104429188179755097854457915167745773294975290644098257254018947460606503988831590048515837285851165646568760806066115370075166675036728156093951051809031830222738130235235438724125848240570929606157318600932936916631469826828426571168039566176487315579550734235558138760236368929832260395206593317331180924201911636414424344085413247535658457246643053339226636785861524632832179311544642300323032041184101495045194618247139767789416616639797334150794975192924170324113676036931207001348552307601080358353460571365313081808879822442078437139625156782476182277348513599177172451907144465101381109929802150761835840310156733317036107722964842530173854892156040725194267554173703939907358797491584090737403844773278750605756019930972118391124617118782418725491203412141111373786266041949274933622564397211812429757215569839253013857166123213216559573044048572746186975602151865339428011468141414292194150645586307967413382678643570971686377457862998669407371160043563443653547387953634969253551417068501678451339465881582599652255030508554381626375301689934060353659510177224050184615267057769057938929015387581008434467419531193542533344340281892545741118760930394140414948630167035459887898477081026083602495615937758873131142188538670766072714628408551699209185449398401473379880872960609247875164543222956255265383186013280694434319427662955714778537254195218989595868082450912579916584291939041791517360864869217746826338870319876325892475654238079863983486485732173187329088398751949339166010959108928237616398097232859968949001323591605408753854051375014197819300008156697032149977746011250114310721856590234457865116378115403067327544038672852390971738886486154601939746627166732735424941461916690057209197787115023239860761394988315398001705923679448366383384586994559972638125765744717963915178361470140276457162802022691764660432098054355479888743775136313814907776351091319051166128719897558022774644778856242433963023178254861330022846291725541704082507447744928288786408172338711887381692003472433375037177635557611056525143675094319623578134093391791690823693827688277138546624171977097513637697277810176163675167014591331274408935228707999326053375568032663347954289857872127353074557004171734389639848935252936682350527139451878639398776802951418439565709109703160529378491052428720863828081154235407710957972797264363773619346754806186298327023872613168333601165719062521837650557086351844054642226583831835438107303621892315678522671459395484473384583849239071556054043150971774609177537329922462040767773082279587674190141724662084914916681737813246099378627812737514428342894413586669609037685550171666986954355684565017597434329931391157155936404871811861923288901870225390401321704316052496943031216868696539331839816758203176208100422723178614972159304568281505376561483691088798169961886548106232994553621585496720438147499872466309182295125055857906886306649314001872907349886759093835262258663072725020765945644842539648921707857217068729002019337521924218027536269094337903045001962114607143795667991623537595428965827441680804697769873970249309867767082692150919121740529089379886834788697740788356023521972519146438409765034258728002493261259631457035601921588656996068860983009765517668588953133014534710780375355176583812345116202954941352162591989020008207351678382684657764527741067132014515683093049131436068262229002982069523818959643937445211768867219011777190367159514931378976294316561112927495631274360055009342808857730392218190094106446772348608141584478983355799641487660151908674235854754181561084831154850888350269428554624933632536849120624107632092317555831744809797227633399196190465212665817755305402003877530478002731332370957716217045449876070179166420882139330077923577066683124056730424138452423849937660709928181880432783216562869846050134984913179348913077655359142659831939768867152805049549719875482276454264652530233814202013348703854865406522208654528605887074951238335792003089823100554461813839056361302697119021250552036252675657410701716318695799475142177475162358070461977798131636824419430342546326319639401074058856333716880445617205312716135755702567151388294986605698037458542178894249128234535214977995112727823176171745185518769942980838154487531841896619986774546974761355129927043298817643570050217132070927807138921015459249358351850772491699415756962812630655794972887884207461512663543626270741038806061537885745884779951006425752163266597046239492710333610967499996815700819466363093579414766193986533656124368408701726842786312256777306034057644827840499685736329804488725760317004371170195220928348558559612226312355452167790576877940650196145743044518938230380438588374693776438611421035934974714664583327507488381963793234335356666936956494127780104542776623463523620513467559042694105227587561355346600680531901009225324160020421849943658157001837700562571755242805887513061188795635155204564049092798367358833651641021142427020014082898761922061033719117251229694584368293691933111719697183138143149123857409941393952521278301394035045343830324079997529453802328595778505931715355941209237434245053601810196405385146089274601571004919451502562746249735439261298004769784754629777885457532884950461570032964938771691028304431534994329603523100460657587880404397327629362068785133441415445483210901472132991794736119422725268304028408721374190840842478422418518110150339193626063832854816571365970415556130086974465666583004470503246215323802842366237454350855109493512047198806538429329205489889013875099145918707025409752372757436421160703613144123880023863800252944385813845601115210404994688139246787833146625547630255303818901092090856796169469439516334641201194340750818570570435515769983793203867586127981582146425686467227419573895737407045896224505181293744682453612380223946793556081195497668596297605697201593718040806196861219864137447366348320068009471044866007370144619185071757063970382993332520848242313347865075684153946084924938179093769619787144803119175134139017436650045508956191547455333811387030504133997293060542642110371131327630718488322402293160089511811562898937445632139011261185766028317886726506694384147083344993123982294684664133581066987018325250869004148504404885554915322581768957062079684562812963190388938987404080957316494472596443957313588449724524952591975961273413802103051620454808009520904003806295609189429658841569535908779220025421628798597045713030224318148560751662030704158332182157784680697699170893451247286669551363987199347036562049938819925824864649802911240805097956446673901774955181579546023687868636548134716237875022444578160952557314318365186544425524710129018929763320631234194668205803780737729611076488789918729609212626800158875778262819438362485400214345126037274180740018821125259459311302742142368327853158517836090859997494822600987605909498571795889984254149812914038507149249209721396573465955222717858485562818194201015432652330546164635904629452967987960331064511410967110547944755873938729820909066632163184435891623266808688132098504555074424987321952857091120529104363955812037495181084526540989862555526285847214007355945666328969128515730586408292265888270874796585155032014703107904336332767667162125225410941590797804359450604965973656137541637582660929942201061050686132267122506256890512999874527039191787205628512838911835048713654828388160546486844166979282025956699970820170558983976529307821759933471688722506389886036077394064746692040350249922419349826805896861669362069863375924631731534662597834817438676380172574632354399922524327637951516332718674916281724480386107096693441547509734013478148155781727536985268238825118358832557240406536764316187354364413200419187883761913583248035732217447889211563883240368718174724588206472888753693126448100024506745768119837366270994078704134884322557709588544052966885231310990683474456904468173549078748732930066609903156447142026258022883841131410380763973122533316971988034920949692554255851980213988772017222580913505116799664789295288105967640568434752594733109108989451386775465617766478020128429423440081143598664774524513073138338933427193577461864495709987417170257997207266860878809538422020908245927261200569187685293015121424443521494381294821596962478117383045948932837861872323782182317905355826426670344850823873324352830198267390585957214625771022764394745111807901538874087819658311223534133686331669823228046647090682483327059463982133342296380777768124483948589546613457362882748614777193629574634492746833323343187946980140980928028276750275704118416859859082771298702951081712157468389904288654841487332191847139564375266395746776406032321139447870929318418556305209102835474281798143201676879405051581829200747441617548018729231247287614856721306878399578372048993574397159020541917949434456917889331120193600075609506309610135604872037603860098243538340053966555086278587694497392614302771951577768962702064149605051810563004358763966105777476283844878860886328790894872873823141887453243356720046444824421979754705676519994223220632684602174891383791710683542582605828815188860400655196026840996604834101183226104360837255944592141883766431117606678823639015944311577543132258595175332596956275442930705788829188709935394360434440303558536418750053927706467706420035292710892555572783375227194497033114257511994993947010610469418096828799742371501085313563827536310915440592396487271811058496142638174528612342013814539957688438429536516476887190494595051240191624723827634708807123770094770609587092116468619041830868407312017707165050588904326956837040692520049615891422925765279225818808297736662881783033450695609491745855374422650787342229723189090382506842328400822219347433010708846212610726374723349514573056071942155665697778943663394067287320660970573560201838471609196460088606191991389375421955858695534828249992860661028686008091513832445368989459717336626094052978642975106570974075075203065904954542930336054848781411800565879468475325798067668437068636133345379642096417425872863859934993103741471854487276114922961032984122053887390903238022039339009783532629045349382087571591738583801789390923336434121771705657693222142594391632247341943357441348781754128062650372696332591291319190618087864096243168346172881739837060484303471789422459472552479171784606322674652705694533369304799112368627621869143263108371681104685492910445316395254408728029207333428224418837291998402740691541568849240425288246395461425101293914763833139208689033384415781213643510747103149252191353861981412311222304044723175603551077613891155327921938788997770131259354203160212042593815750220462437706084411501328716217538692853301157097355209017592316005440463723873290096508711931505208798313527516841423600987117419564319254785865960418233118494340058576678133349651674119717090497329858675280509977969599575572604483082560254606784434778974560627180257739808601426548753510577957222606741767301574549068799071554544653381378853201356559581998784828291801953286877646745223845903636163593819103490816138965427861352985801745350355417866256557162245423236541119441818375296844600416122317875503908865561755044739484841065180653811144472426887182603604692712679564675394661702785708668303559493241169235064363546941023164708374211023739743638128452204740998562342502699172615979204570563630067469870124124080291594297461242662145258014545323844785687513928874500802630060786285985872683837654338243571711735621599544509206038103567277797083526815613415459063717881929239641361808786960641273734792840738675975528393622825126363837059677054137531581979874691725470461089621089005904270167315181353318280159147719413422642088840126518411769180653810251392491890864673487298605518373708773538878626757170137831134991933807302472603924691864091286447617821264821910598904237281257164678257390841141065875923773495344044172948900222154400717853496260268721264079566456274730987527194079285015572893204722589219089266724480280093274088849061159900815154868171306133571696159324233330330545817254959478178829598587093725319251659858029989823203789360807940564320782376906449376085532064660048544579664945590497481065176712846572628515390989753843540319069158749824092880290415740626685884060783110702096469829958649584615833184797645510613441513986468950338759068907822233651016879569678047543214465317423520059586253330731569207895633405622695991395584825596869819707308827307875319760794438625702013393205021686099712435894442694531370237846530441159359873734898446630303464236773545508571297149344656651625635024976441428184871966853398794621706575999944823740088497912477825779945108602527140347602440513145456711620113426036024253678600132886964577188642380981556565288217753163557315337126984059677391517334085880911342941024314222667872798614589434713228185605012237724603154471047897288519076030924766912017625673634948227483975479100452246724677533321791821681114048715539648327723093981540309243981986069581500785662971159194447478533237983431796940127030257728066195932172410890123964038310123780994512753977413841630657040468173928920944256691263726559284358846545937225023407250439249316231479848097591525789860739017030856112193437549854044902200619776372664898657312782235171986858465925754884100034093761871956513003613053433888066844294257297795729502223294347652558494220271764638812220513624305153091330520025611648864786742702525465824401488881605191119176432601648333888298926502639969428724178279460159591889540100704051180224197096904256184151338316244883764006306158525769819735995644264754156423399804002231645972055918465735331905594763516092156404738982350421538559436965259810239018428333608539728753027737953726053902682594716785837414647529376413500371314628670604870102271409652986141068758469462269478660658693550249378939650777215920334052453005381098625062790615402907071433566304391802049961992247162769050737602318112859643167030138566413337283956008101705007671600491712702587722777673754529899683498179004411950125363141008334606929589459863698188143762672400521770321237036299188731708087405518240884427811977995353611750063681446865648034819131371307982438585945670372551395921193504907030945275189166170812634592586675988619780465709155253708269328956315306649588296603177417377661489670067752107799021594907537492111590417805896111623955474594641585286071483762697179109563848368093138555887360368720153654027077020332712768305647960289204135644604787521168032190025904694836181716438764221272599771241726682483387447923006630291387644247287843353703416941075027624229705965719094690059658714923786702138972871681754652507023002006186228868336544083632102872775017531851062695719662845479211276080486646330583956056891392409755303427855695225339859204896672678120205634716978913476654644574985794737982205545033283571103729988528860088527225720349752412688812778991015579462402095237328048074717635019614635609845229499707943515108555278946324401928643034934647995927242305818068714477654015381132916154691756119644123225686359402472673167490033742781048538099671758173971930889565796914121317972873665711080378309463988055380244069807115415324104933959708049941793677753895485295775967376404467039752407640796516889943555625525066971068615889926940244961780390174126138894828873761789979434343000040603906807999382610633691503479945813145390398336407308863733771939805195763485143686091900807466347637352240464827493234636547470393483235067781879312812892478093161963008128829868460144275997108437214842514457402988403827036541400244905658417308318145068560818996275912627514039326100471762865303689081300309307696717812120347600059274785938735086688510029037471730235434481915199698590361932289525134395343008801654504815050138499695898143407942480792449143699270951585468093073559730430290575179372802524806736449220838378153592061520594200649624776774432480321383751120783697400295788136725257704134614499560547825083893180628737238111596262445848589729152859150339278201207433132679066500050706860521755566708173718030226220743706539308582913269022838529239673787081817144344310824206134465619991365088033607080237951410064895287685135848702394966304363563374064915178949016441483719767449402627452679815009699142850153581874172466952576474069011587917419963705157798769449918146658734112172962826089758910412387435711920051905622896104224566268929572000346955251303807962982769171948994454915230751780425539695440724623986906879951618508397440039629314076564738030689979939177623162543188127745308789659401752020918153253853470672139740048646447487890075970108550619584516566253258927369786157960700865576700439080983066675542160116422700535440696503200317217596418166659389242136593133061320016305734480639961375659769307046763050268577484686046504256345126296769089706298249325321329951462135361714253570108597426221726775435067011446611150081849823048485703644974458860763800962032596072468046007638790973722357482558224871872467233525436643676770955763998654484457044072016139255451350963913696948515417483675981523005138775418921228530712136534604902389050059474702776704333640819554695399593560117071912815531164300523173490453118599163875544233798251114110675978749915524086790090743909355941122471954548209352658117216906565156043185196427775161966441480033232459167366239562790859248073029475442697727641089982303608399457879217779879635686797864673029836820952066249863241938993792554255825844687693992033496727540597938186105862310830800932202394695869115907269639880112748863365747653911537441005122758371205842666157007113253987177824413020859035922441323363657867952552253816885426170846902685915285153864092236766291571375811590892292500945105145515798246618403333455262245785302809757065135318271436795682992965843193740064483152580848327666187853469115510644949047942083214514679479878382050996656024605462860663095343727786051218163492673152675498938894913778363195305280701707115156476173089284794683958780934281805648051801720746055331849434078589044022673954655566168181621697796277777010188652847870837547580195471862824559258172860829860012376426780031164635385003424663963486123103697887590349090304422651408458385992557472973882960384330853060803871685130868619931801937363158529472689099183940467999501891269143012718656178445718156448178265219945134560701260405216317539382653320459148361920728313783760793078601672960388685595124076190052491829345765367458233659710683331923341438556489019110510904561085536252833635851770510696795844404680866301630136438696459560692316209016603198764161260538282408943003898406458817106994604361194896994450644933104313975666576784842292255805686813671748210931136842970264000422294477912656644651232912789483892491123416400386344100649949487857188090688328045500654747631706967152502038395941967197780686110020757353817789051268664406161806936384865713389152276734530346753822741896337803274362814565497818109699964015512678090594816826900738898818928532808110571996251670195545899855884139908186229663184231966150640958139800831486430395032115986362932556819355033584396871522255189341592936479970631513590902094364633466705187575959648048257160668310610054386998735099569772324430988693210641506067029673498471564920996133284672069052488980724373958308461878194501785632809065553245086172092414394522915818039688349652886662436542742253585475183183431079663728819218322366673607573572134140743454060181058307726476646515787960414871185618665889409986677511208122228459129778271748448058175770878068077605686675918993326723450850089537967248035066076185550724995295598360024147319220266713419503298868078022330331447800005420391589248962722869112230504959716738334803572947909282890654881714423317958523905379232781893017043071124616841595313710811307471275623584122718710548740022265340285905451681788247312381973004070465025374042529043259744196947456187240622075196113162558729238274203617179426545749306431563248370088521393456790745870744030089440434578240499421407477905884698251553180030451233925689726188590459319926221646071721261515215588801712625949726928463666389685513921837544727801194012056667162378653403173625549087422029629610753599137250035994536670503321119448245272976382977010500137616761519960131066800187374411217498964116586478659974845413547264698650697371116153245833822032256705292770632472604896982964150653907840107357766391111966588082333821062395661875940520179905681920776721458388798657282654213611666726431592980216822559623992269161725325287225148048568113518633438970178505824731713518424966665920929010462586857936768722747540397149122330233480876225718775620615006437094765216398513035945494135260767846965026118932920281434822614029659547886034983838717721131736014257328367099909117411741023072376236741239472444276923137417960177421772976017974002970723853859758726930975213403483206715128496777561013946758794415512928864508966285108552389529753062401451991636497028372826903618263773644987060068262353916688215778932647339119442312117588834634418147859339141308059587717855825488690564901549762567095973388406762881440086356669412115193038061679028234722270679912485188871644051037595775080329510711370823180255461869570609308883604442205483854511149180766218980100524683545001920699650656854827981152341431407050947829684682779809954746254602115909624060714274519431184093048247357636298508944252797338356077271735969810364144760069572554327976973048044680889598981689613304894588944431784988203067589444956740742707490764474971188758456985568398558052767050661621177599311835784388924367187403494476786737130517099403757201210779279849008838944683950904826024957767535382000369972051072218150108832204093603232628248128808018624460141838119094735516026681831189265530613848650302961439800848943304007635337974192068472887909217401743504644273391746511309001900955988546019836032394619971575107928584146939329233003901206057052921259260859289109597569898227973403259723765251295968388963601647160233238541296718395261731410222857191128192426800904943689330158156490023144475978508413491957007211008616177269865516027863568984923364311230288924390066911814455516035499354095263943445959518524935465935174949879933099664303740581953977484186959713638030421480407624951139249505160493544674698477173339534210759531271290384596495099271960999558320431759060500782725048840146248774988795726100900681538896772518105125303306671722747794641127203053829643259114773814348866071852102385437636141319044944931245967735487357537741941219735609041816971770260825448118800451109196677820043005280296128852862186713547941009277579664750178432310341357955895755667844733302631509483922003143608754383176259385391360790269114407060258335694001222526419413142085298897520597410791755409782168263282346925681499769932468844136985079647322160437046921854070493516955219171631628740553207232239231265052376249752923059477325883068532431845419780755463365452103881256375316329773387619712212153001229424507929416751878463263014543293946429982825236066073034059891870848386895855484964131935792505847183388191165426193479176849059849857323170507989867684656904984361204847253591830023301514159241272913955210260205567126705330042567979862053407336210786954838716286830308698607389766350489601400371548205635668496405198670244478014666745130045976056792064125541728809085162667358309060526000943946452570978314534232908444216764193141364011511886713005169094405128586510402029363502115377593231122723332576685284679369029079640380870063662656081996834633345309286254655398091983087526700207522148372711655097176347556708539661635713550077450085280040026373093277360281993795768081214155192655005621040693354301102383446926740833577423653629632392707868566826488612804402939245156476015724780166350677925881104214652649451856712478896712806630798635104500078252944401441153611880483495875313155826524061190475305967254560855397152628623696324122831713288704204537974031232239182547705420667197606045778646384224823474080568778061406317919133023772283068775601126303765434812683853072809594767210738802561473089867312012425429847092275344403856149077906422833836906995576652534161873329148232778182164951845565266165191703131234887571829075150187784713809380274011453728161496893111662901685663549057892503456119464739660089055266622663442858991157474694418889395038820557853665829996109752448879550174028825974956151318179707386574922779773405756726584820226074426922907085287535300439864913763062960849606818721676124206014985052941672100844785050768780970174604555187665845839036485874832724343885378482319676691409006930895034930404189510925835439165992443239198174621347391293311675458357005477267999112188997486051620944477449036649693854145036004317892994722469650038088545073079217182815603598734181285785343280799038218068461695780519627047823505367786602573504469012970887583799037451318098235732157317440659684873454321724647483430345143926721118803355966120936421228627308488465890343875194220976071411206814242044790302688936133306350054789689521684105846776304184049370859930152649736630731192942172070840149126361308663404082173340769839682917720965996463305844596580703362307192979305598581748947703756522130901802574863761251746107008043827521797572206032402277865525183788439062350781946848071559669415892820146917910671735642170918654171820207398135875456710975082775131561315769790355752024945833813783808130812145442887582492023896346228127379280407403788860414037753161523133738023775687918878946192179816157765754765051254061818286737651442059564284464487132370773683334165018648866360640829893702768200529098600904026542185219853918595549859904910552060896622905304134355537477556051620637107050739307729488090541981817323391635601145947383380639061893749875160015498257004190030038520792563664897641089353039874502034184736367820648159816445752930638304286430160235926657565452168437266846890512326055105453412066109656439256622478826556060142401204683455052478735255983587268955259197525252761522761037591241609312637533664243011255225958745420250049288838583113724472371690660798855297761830467502639346817722370174958269633193458930178924848480326614799339200377737498500017382789665373875434344519016577391270026976671830907180796363921166270411820816228106446430135000801254822405967144978366661398505179332243854479528610790004386824100024259958709570878198943801728740791066898176456584288201379660933543354898614551345893045068390386960464331427262004402310364654812358737881722039433809081566538822278956702002707888045486344875318856484096647784992351759798984010158792361462415996186691033483227368361906663911192666242603040054496088137717090685377269295059004725860556909486453949851194393900721578117819856655312787689661348187633259337841583569558633456757810075788692906114367619875675814001664598820125967788767697723292154637180832513786607594233504937374520767018616379253960430154129660116699821802714895048933102180683517594173358039580129908574138827408986004350034394111710261562909440040794234423408411119156759319903060648933297122290328201596327550100111647246373494244900856909608239839024482131125996656560555903923131366077815860041538241696144062391732410409538764817109535692221061996318617448302061411888966618149608869365288904809689372175924204424334844772347228298364046555941405229584704277412695716681362548384206043605207354052950846255497167733656781194236912441923481755629359342790873390324739354396536419960837688548117213814486486321352499396779568916813979994995732804811940490972765500617537877651344049092328031081707596353735626377607324829806502463758115199960512607470660607931737994967467011178053566827293705445341555602269592035839078692357116096728765618720579460976542979458264002427858775119769876133961183883208800668430599566643544495392435363075540893484659423956271798584054234311084321339575713844404185766596623153069945077488166845871695559700494579020455161602767381621182419623793473363292790232934917360231819556838556946050894064941874129015499591793616245430495517652097969416062818437191818685497060536799768931853029771484371252243628941680095924087467358816329162327513638445559657173068961622662422215576743990402695703839706482342074679976665116802325066537285994717883870533363207795895475630938042337408799240682714331411973129269260744614355526028852620011216574771420435235185521625551348636138688770225446946816427492244995374095841094570208917174190725034552157457461657685878023106416366372690970983090267024530637004935025415557668495361834011555174135402536474506010890420495310758309471170310235623746150567198790994179318082852101407577211221836630652158574513500492768965660766581761432047855607191831231734809807786234242516319435360425383588086017910077171367934839770546875823964349656770150051928559249844367493663820378852925885248146562681395230959910281569309964530649375543161430034423377764349871778866842029678649631682178378095952224663435667081735527211483974263634410571540305768497920128384784724889787521336087424340885798882465490126237248597261274324031654897903897172367622637676469218512387921417813512947039544722280155448381272392454404693025490601283682494284272738059209457468241799210858220532592476841655238991731548936106642939046951234803518487962091047979337551794953474228368248848283049622535218835918762523570163789118562679463227124563131659684242807131098317593672993517178849861075624419483783950915444904630936002602913659234153817936650564488898405270041196027524905820871536411716852755230606528410394672824334632580650394938967882960838429683820039921636249197725162610310706042332756374382427725425103834884395061688994801884716602869292054946277907484514215768221272524452480225623192787461924609575140055679683339017651970795752355259503686076037123717467495064363243767339350971092107406286281200377710465634941892874848430467503254730806592886171489618755030799906949106096964746570355853113331111413159045434061132741470871967375220008532307186268767698877438984082520241231988616550632662618128058225787351142687563018883973056184822987897306670840616384100368112799583110340086428349134750245147754754362388830119483004449221472935558142362286952864773102319964527247250360739510942049451833232090829635437464617576905110120187147148160413495567400955268090630820811012354483781496869540443856624198193166371797476270666662310617670760168273376397294368518634356215376923162712015662190763244922194762732731296968104860865360064942490141303204947253543530833836281858865267725584602643807364520587107653239056760891847563564726974696849120084638046498981853859340778886633690347427917551847071356657138683506849071976738402288081455928174472572555297286531582297836739978614173797869787623458120394548879803399942783999094260805254195622056617887437547272911260742394393643286167067814835909228360083967627949470850804445975510642650836018238405543528863070208238511403846604809493397394368010263181305618272287400300290831435332883487528239312238106353947438201006900757787606077891386282828054086327974229640837289666901495772227666345565793760192721884637447783371269892883850815858194629313615978654284236679379334738589122465974844705592061295333443603805916825495083548962642274344796488504818748786244898912074717939223765677706031747669334717080825678538102074550173176644698359275519077282283852513892045433195809705230345597732097380879070404486572520859725324242260935166553378358096815694892832788165924301202552544267515317808940485989263939293299187520170514358025171372900105577290762219152048469426725650523020804939688814585045587984116071574967906786625814404055161071586964348094183246426066873686122549315151251092054046170027786633723080044933895924240110285108237484697471664360090287110104571651113097436646836136817609706990926632049575938007923808414454176410848439009234349819865368814462913509093630047094278432245463242140931030195112431705463061895418410494286658045913724466506655399339251283353692484843648191326556858603036847210871193592569939111503167074875703500914519173008301454068233047661526233914698657219648627562812897882332257974883884848927824328176128203332819276664733614965191480615631628634974702956214025976336802072513518538033255260340220922263299879608565463012186814950919393876877664898423407009849269930433961043822046500552831901470912307551301609307791508990848275700678658181073162709456204349087028170522640874542785890971758784161813714144199683358904005998146160332661558105117399331676239430146114705534804051424313902756929550775256264148774271443557092836819782924550891731345166864883437124191372155084619985045547571345783752048065501525695385063088388330225656071068391707808421186411677714140494750752123224934721609677735980965990114437961509230141994921074650520425194697722323722132573835021444938703329935508943606317559567301990673016725367705179181029158900989919105770205339907660943870833655330930328181671028469115290720858104848146786143117178989626858540606663795722892632276590079764622427090958842389515632968602723118795684401496403494080943678529881104638802130820257345049621388071085375369124779889799274777402997564349981299737049404550218070678366986237949195058221913587186861769469970695636897620012369341641271447256274886589659562422279999435705507860876218653033872707048744288472999776238768160489570850116790469556038356118281339170486739664855415617716411804161255407838178950725057481615686941249717003267265922447090848509293257486795818980788908157422930294423200319077883441577325049268726754357660357720104503495508754194813785513367279167790362067930013506962314518374839803115742648932499868345471881392068556306406766213088499402621572099654444521100763114365547461537570376598310684900883266546222641032345873798005120119735603415721135682149378927156269890453989822678916036368046491262764900128780193331475251078367025589321662750568153208115268584832800404311419813529411186656016720551545507341021462069320802370513284333046876267779371458923652308296103832920554920102335966128924419696587798403806330073462065919961810488645503298015113490979295158153298248682137483237753013505156286888522611112895243957972738790583013700474696291938636186752763824655430252683936737323469052273953548465491451761605782515239939161175712758605854133074538366314263564426178080687059337390281093691348374929411910724269183024645834332284694755445535511584157636009939539563227562140213424748491156766934055602974511655290120209283234818852244027840880829866955937064262393794797753770204593606236386437401576993685722293693273798971486543845007806930824754506511200087253491516289443109878951786513704906182019683679266472746551081528737808508870191154730073061739057308085446583080459159526881866334988824966742636692703790732818855485282672654639180370970342665184890509201438746179702614714617562846482658155238358862944358166176884930850603360861884545118834400220742411527988080310990690262800590477938237567211997692102358617345197681735078711730267994194805876075687130352070519169007958384199163498838909290706757381428913450531514794965105455201831719928051871748830692874832277287906497202128450626317239987813296373255716448850212258603769838299887583661285749616605888518200516974089135063204818696285501316851767208652425511351875281224241431515217700082002478304620385669211903227384659177277676680112730524863334894273837716531356805816921210638600725348439406619990567580989334271845648944699916167684554535391882246235793314076394063006228630858525283519335349992419605620739711794132824252422049102670975370489749178339268645633310868612503800802949084717153105815795543831376628617945523044493598782708492519993564310665711372031130900102820052640144218196184778243066391429759789731322428619524850904204331381236633747025750125577437125916608597665372608737723614062846202688110114873036591191068764469714380873179460144613509384127767158335909368721700673012381017233009794992067130853010501476447757577606287154716685217247058004750839167904620808492218186702764616388088821722583042015610704794885315608253346932081745877692611757028081532651343572170485988036434498187836789063165214237414389139457583126737105060948304643929123453709229049416982882091473875371480636274276874751577992282426662837085102904953406469745162912049543461468323411213830878556962334879881092867821737781720006345138310663473517982784352558918131339403540099904644122189428366115737494446581051719603811197816530321625630854920495448463476105183450211631652287964216957811081050359308103600496106406155213930311345335484521641138874471584451258414844634766183433379586800925766435133117168734850777669512781226545395061699179910346702428295871686411818266905391652231851582750069217069716021787504157192977556074862278149267466179523989244563125483697997083742918729316347344996592985001908080266798455110821165034312254511783700094787687577088590133695556867558483375709602107588198756883642924180036837823385231754107670301359777179564133768621812674561881213421590751664485096413409633950261338277690016095825430461347783333728487359411014426419001981338073651015669756624883470599034462651848735723690843274042668224762122741462246985704505692964621385905540615213031018846054628294383747770752156247807593787038015118931121140355071904415504999665000943495856392993938335905989182024607333526293538035241777903208833995736104794058422804074650549651948384311948152044384575062264834307726135584614096881732276939743007701818819394069330047428264646451111950447925543708048445034558755001242206048359085646642026082885612052084508539467408414515245755005808359849523222379705567904085847482413391201948777131395082794586311210742510990915701746027484945097024269642157561041832014787425686168321333934437384742201004754018560662760230292695084839443235206773856738982226356964764453041694349053636366714464365771824679478850232306103720658145543164414570881158291504519300777006167769865039716661874791736569505884773607829650179067359095450805583881754501370689651939674757884586583787676346217963076743294534948551933120188321141613185620935855206435328205552298547299034892807676600967497547061827462447072794214636693999437906970289103839047324494889847243550251701221808926337744056338883659308021934769100670160178218507055754653242105223497634693593705389394498664511823569638939857443378735472425504084249398820373927337024526105367757542614605065697199309020336487498739384319373594896972593478514312913259145761296486724613019277124694967885199778753435403544160661770336237236909040883815740695743816082765076556746599500423738493506864757109073928966159685956389387140985674908367506076012081068316924903650071058301387551259165889192267950683926918347011070695413045668440313845331675890638747542377523998468985814196396275603050127997731288785296373168365577652718034461909066797076999442366675338735666506207948515614784342846078667953532746245232051090611786958942915921870890645413240008713542237091840670038557490645246134870531036642341452314200154377122167060653901884476423125795768341755236348546248425231515577096006256316841667915723805541833510655609728610331750925478168735662619513075931859682233732089328776278810663739530468672250780767139634918100612757264380166435881613542353279856625577864858595656075285042691249476733179673607557616108441060466271463029899230336554866181344959367850260541506899825412453525958356421578987088622587010276802001966313656104461872744385282704762019911371273900226557067962429361203097336064556856003364384328814025053290780863011521564418712547626141275656274748659712346597990644166210458180096806868248997901886047026898429848024490958092867265468347710310670486946249836729699582162241852448556316025969581655228937971782362986494439147586730371728831571091307361910288872073376546434406248773785198658710836807991838521533422012769994071504290288948474341699501064859734340854005917135558074953289171177774265992847362923305442188937941965002630201551486720701158186276116047804128614582125453542171089818934764926535332060164674764952092308250752358353757173946870653781812051009790862789423457096922421178176413513885681040373863455040544329032141916116667170591426371758948538221535878364607047379185963369870360532213433452463832809555876155434088962522319087972142518334083705833234681911237205826219326336651677558370259587893282594716691079203180651380909912830148476088035173237362173039604230652407722082726848185111450225677366180655543923928628736053936967549688764452801543423772130665190881439394270253878953071177078199520641457921870198875890516306380804218220176670163089572330279759651309165875961338134313282008150747458767320867078495657179338315328554984141222093543859519250103220213238748502677184341974658512602407330664914713656264551752541080270151120145828748212911969771110795572788897184943778803980651869098705612883735958233547440934342921511891198976872502403155179470467723652841088777468837118663474231194593311854433083700455248197259533600803740167003562220508778575586887157213950180684074413324979686708827100678174195345646819925792540093046467129179969529914292359236877400619016627192097012573930533017339492673526495522529557216447166347487385333877445773910487004445838049683931077288565573477517916966866135988180956545987256668991476559885149587304181817599756743853649164414898526070270603675664034416644008981931031388454687221448254676096778117955453298445793026843482140909653798884355916205608625704432227076910329124631583422544775203113723918015615865961986384911098850079487869178374170511088237129056638902893271846235751012329388474056202908655599768247705609193712456629827811161216270929221861210453918973982905858817897888630100608075258799307548389243822461278988503156861190501762516446346264773990933264130553782697466429976388121891872460344028862882408625814432129035413785486933600155161665943722111299670876659702258748236809110603599013955688073228993291670388484870318445318603407594218676918159975644407431324893011377166485539436337212278880831493521773991991933355174206052460783135629849853739928721658863121652310661198450980259866109391139318095434777660496819342409328823456134863231993727714254124285829928240751059420986268490156025368165598881330646952301005412239520090082567974962422431459069253939671529620471744194869064561982524246359348063939846591936742941869154220235176238670282216113439666952746082201305162321105093006502380493795112730933861739247454423396420318626266039733357368341275048972633814513882289472997684041770864054310259879031575623995975703597445529011876426925193775877765161492668885036460266102143892599013814595190493319968982306951011878697997450706350522673046700829144073397070485085047015179741716553392991157896383136498731164901195331373831991011032773201239256244845294713453169078737744725722108014274513988248255645758692413484676993442459163438597934873629449702224200011394182249682721623111641045715660014097655227249361348855147785799169458994924940876214248110808403548036614358559051862958710427237276119778185466056638936715934263819008301583351106078899255255060489133127809065217980175174980248805142122789406980057573802489500384827936157435219998118704444724422880163733304749175648194156226292870001638424211264067498617430887113520927129463681648855006069679450116785426583739281597116004810491594021636286576491910769492766847766861901551430073996052701564609241605149952087332190909713038369798876095726704227320821160030637774453176189136246923808409350026645436566590845715598358444436807481720760037643016004915335257814143881275974263551994205902609391707767156237155953674172284657876096838457659810491057824544168303340263646677859869286853785396064397654079779947506120054097619814682486209237011879839887584043787455630475715249612219506522676050624808371055853989295780931734472526717210160172116902082404018881012549322547791016691874678729488791446369289487402270925470660495782692883154129998091954190596572947915539669559738480193514367434436642002682008360456585995400100551876111185338961458534872431332990104984795260854833536663166597357756157968308495867731000697686420176100214370286506374696403260921722344782723843189710342407448008433720636734336315219639996013097624348542885805192680495297012840183594665035296958573867310810353662963175251588994069652991708449620169845180635428695760500419642529489700952588887643077862722016518688581974092995590077358060114487640599515282128990942802380289702822493549800947049098259906258460133923839865132063800714397059976291632603502023681106758256775997795402839143996281518393507958042583145484192609117452684743314991056943018168565160330427306196027397222836961713131930015145319552473167932981296275645638846799793135291170969425177385229854214827321507191464340087206622312369827441213190738367803212234429237066847876954292858951488679211329759165785271861377464112266949323863566698131227153905665451907086172833934586855200269494169212931940458320000691570450696228042668096796618642992379786681729602217393709818078071798188887672705835685277397587516986628572027467889276760082816430339671974458501739385174202944046381922197879146516920364563529462349188549724164111475649355519895146869739527387340476238726065462457112935299702251881338277549581601861663818637903432676839517076895326134174278219700138964733271353557764419862878436268016560828332684708209884693177491956140203811150934463851728493345127529319948900367102145018978461314743064646418592560216352524370290222297718249460780585185188491561625902166474563271657075970330225718833820512168904137388368539525994427572684862720832250493535010640989210005322966391429155847783447700975566633876634735562514781973570378189629766901944854496613066004640959479606547138681381888135298989201464320706778970612504137709464298742504354426477945253716420000121364818260167861126205432423393348472066043804432919599982877467181463703668396129327430508338913680638041718783149509606911783648833898583669724113912014382809314764045146399743914201827103847712867316795321846968528450814515988040564893809182438004860566145800736628548918387279796147013028369697213625505999880517391372329604251313779427657107395143917816983519270979627321381138705531578450996655250269661692626341871550316565806222312097560569478345219162280576755564883411744994188821853519338402881825085090204143211847895854632139797045670214165452120708731103447449968636959964408009873722308168948785808109183147661879495877961579568890237485467443606145141722181538380644942275748787935835290614328989400761638619592279561021218682652882683584171382616591070816599660460658948573517584157368921607511544710175024049529937041265442946262115684958743853473165590355214892455307631575603911676550244980858796586755619396297672709698956103527276206245947953435403056007478224001774670199554270829794297935534317272683218549310439557917500303546625330927578362367001835393724639811185851600481575027815040368246628996966915202233708608395058185097737275900469226137462058191781465177096742566779499639079335895059698322063003753499142339094479907775582856811671267227043529066729280525727344333507822395475386281911683235851156217091027676068509009749702230582100934527719355686282225589287741735627251836947828877924994487907288304496436598676544338859866935428062100070381411728160473034773298609641241443126583026154121816880016319415742487179431984040767023160144632089231033540590874466378068229025960978685207000856268416442482409646606272393291154192802725445797756924410918909501671367182696065712918934582081793662960650385787416898261828122474882980117904303830508720871773790954041449614698004902746331122508115536817389022571667218861562946084093628512773700828585102821757908644744101915861489150574912590834644216180794007316667112792670339899434219534328143351343266541278675299344145110158252106495070520582235173514737848224800007672191252810085525807691662392674430252266687329459625963681324287877931432177386408775742387002256666093599244244970439609933816886893006005678345672919543354693969415195192111631133086096522219829267837205460933379271379304380960381901491555618245153623114748202671728908568973503374212304120809880651807806968713207788035339123807721741342628785431013716647320261620176159311181855180713827806162754432544376103746577617724946820466129205587147017275423581150212175868322527507876149333414470876687959272805666339014679322505646214115047627586148528147888156830040261910624426122994974675373696914744975259310079652908190140064507622083415475720215188244420239311992179278004355393132619389871855682168622736074863876541273583221977964664905903965904305214094027279919755872232299438804852633830037811045712994377876109875582267397099958891215195579486995130979698813465473396532420762739074281854996706107775999732999509866639368061801061788650821776137180808622974608320168880300982131856535613662194578900516958105626951489335400621489816087814098628673461351604126250266955015937409564401681339758362820080591448750868351113315378924330125712324210703968231910539235080636058604673029265370725100091700829037105104846708641286900912988711725038887390618196594590344847286021513110016627256573193754076235999205225944367973544510553839343896455009372637904846739780676191873973330931315041832764923656642810708787135854410399046742299478266739249350172859758529326344638726206669224728828942089336739790352450437072114538712019984810538154522988085264759241576088966978631778323842641604631810406278240189950440016674439000487604891301740285811442742755324326304447485917931590823010008816353894252995467676882376959390999010367581586141177742176854381493200099617670640513462663341140196863230000983660661269838270775102367676610192683633890047330426754821823271621802992863095438004650537551385397627466059464180704862596672493830005828313459584745456499821886959359647974185637478458932443268027388363796976025598664353425188801667466637585599896484721876125109548480013842385431048579038516801673707294591092105810337923055447721619228068700433879867323087287787569628196933782885474403718304957955173835718174680710846956359155959924699602365436900795485400848190966845080076776883653811719720616290682969390829126909764224015883785183791929151312881938812596886020345994989938229108824860730494352051878945044427971389131766741956949300790960875434935444953765911978518707933364697051628600198815938799481118691865900669205999858569426212562572462393728209443208668106596733807718259661476129805255050797631155211043290786005977205674179298093469759773313472359219897193933348797920439535897421630483455168689765854029353385882730141856722563028592384480961855596895193677768112070977329220811403440094175343566216768007634035175620924906873203213555800753640847536164684019182495857410625502504193246754166621150893464077275014962853482471559618170384574608376039288316872118917202206880434928902127523852158777909088511196148039739384895604885440134712147538790471368624702808889425445101055582189599026234476835222457786450087910482660032782538913729102198655219425514468504977517187701195970668783476742137943122970799943866174145153075212033102337730593982063808814486381144033264133938090193249875817412976716861003433005854930051329959841257962008345344115621881755376886201750212731490040780490186205070349686467818448480427597549654503210635414561587508605763060353403006965966138705104297535820252441419908936807634962346946902299108005012271417769185037312123746253478791906386068510677329079738986560297338085286828831105499311937650977203346768435579107210353922550081104949424579279728011948785269738562684355385489907799298967233000820917284329095274812304100352098858109202070858863386379135884831533403111453180549783918451210648461968140453000904193726353992165182164142422165952696061101298973342592929667516517242296297377591671158041217492228958595219552044351143682509463437924556493998429758635988221286856606889996274195732104067956252996628303786323483449084774949219202778381065917878464300963822936607872293405363369449432375474350691707461114101936586973368623285978232036664488955662886466616529955207201773050666637818858992405164578168798447521033967303407045088025172339560805480012831002089718040013753686071480555628317661397036510749202311186073648344672821583180420305392649534390344355313959084967837138551699526997198770494715606292903821748355846676358060086352556344503908176855901134002770566925366472574186204073938719991311576518023072104981586858257439074299070361672533077028123968850956061628202365200942959100378164005513431705712666972211100031828512375664380546878252884163301085380446823565805111200074733932986760819114370572353818721249439982927410536743894475584466288837492878654349518466852757950309747504112621992214663047506044254311380276399847418536425918650572878217638437096916917216731767990690953333664498608731332485634177642891610596031865485109336876915279609242433473351307420853795062435114724399248940472789937219094878495114282608694131553457609083210396008598254118408792043961445228595605195823715605016900356688678091767277264439952000644321692296435701257693439342207931022196460191944437605595794294664110219113627712481897157181946306110125612307954640289210110898396885807418453466647068153601541480641180987211375751327007055556946117072559069407643479059643406801495692923613842557490528670757863855384153248891557901158616419413554287303879195095932017666591700068544434525054564626495906779485796381610054285395399315202327888065374400762129076894084494813595099032493865991995241601407879619274335248507284204702802280486115327915132580297873691647269822392858351184157447069912078565830989354869949397927861344996078126594078593559540319743483317436958199354211300890137848606696108697430912201858495300943215157986185249429624507734556624133988558450084691007278743736625969482787811119585707239642263675793256911181301238719047869559527296805203747190174971665665937663207224501719369663201455575720801327857507042473409474489054496661148086261895335197267499143350232521690781103473299990883601837655207855564336264063756996174292405067299056328069921236395674984278837075916313267284060457058412761429220395451320621712825813525747396862129168340290823472381515107369632140559184798540174068613861616807698843492280417541991151792992393017292427692493956470768163364995562454271104184355501298826912440702330866142962518369644232348694591096793081233039098384109952515458002081407527285731266864863781819384456063862567042255908473450859604896108699264277224345426438606106503016371012277816422192944092830611062427324368665721053195972282727918538265234226132354481899207844196743263681774992170296413800057616942833234218423607678152835095719401853637764715470580803536851520339308989990333661209615891606274224210598965992287604896217090113756981346651910287053551094382142557084760291507172758624196463776403555895977405848386646123636415880594020994047372617602448017405792890510797341662086193037810074450809285966703490636073464676050609080013714525456516097135390597253264442749299589923217242482886254575104324860638624122444529630174293870554147136384195534107612380700702653485628074685537578466008312916993518922168531446640075867015930837913686019982124537672497546744297059380467618429228894131293277707764522877584788012583813877712576432236540069547217526733520409004416241130458159176639253967655179275253598742046479113301120100527328833529917695341691426938127566104693029355681024152870769988181463948152172008252471706137732522072138900454057311728569839077643178229422906434242842463582998087531146092562365672051847694873722745548441200302962549852549532931699997237690840115268984078126169969798877319625312705243369818130787577308011105366491282096511374705903954218096175637301576297780587586583744285484172575326984301531352363415232326730785478699753840835321946904376861632554354107984056108295970112503787056450179496874803324165100030677824588983032935743333209640361631574409601583736382773980283680870431065523823120208055307526352873506103064223739368922404565637760406297095758116851718171026327840541277021561290097281066175170623972549842945048047584693918712631111007531386464237996276767329648347947583062600654255311296669702376137903512668890986781582186526835533039047148504558231464915618127626329403733627067115532703557426492636794277724048825786997373385975756680517026381860498383466182982261398593228977812646944138437434535235840917362261694440494547595971998195975686869922820308823592075726854705561726798047325675841966104932278408991763010838937174041534719511335187400509984029094574895095365487651962446968912690087349431968969428974609534511653848560198195669050624877842464872957689457327003372082230230592431214067119291113390389288436991132287549224910126169583532432105044367940517696128867684342637352015254295248847634671164166636152091549645467763431375717318560433051372046762009854960007555107848667875567492276855893831423981573708393608635430401415692102291354592322971564962863419409937365133808270536014449017688616432948678357226048174039795706606004649029644672956987201113433779676959891215107337255470315657131692837528301083886068709262626307591108772072125308450884457603828794076740900925049044805878360020909855741146208884202927691128992175810852984477868956965161341281399039133080371704165385833390042404318381960864809026969222598560776111931278954884109164029092288767489065801271551148903569700008906324710474917463128509518731556579810425016773795065407018053550353516913490306928169269989619023009962000851941845136933479864624945721865221250407061547286036459257579026827656582490806328171256024331544117885215276568913260031052208460875943768077122453242878712577288391107770557806591007978035050500082084243285533909523495026165236330554033920731237381643892824606525235822099810071362064652329848055139038841876344445087787478854976464392526861600467583492929828706683283486249459198898463956767768570923032116605416150436356008388733752384563786476939512431856587344578787704362015961827507732005104036250430444928590470057822699504720347971115596477180942098590944018539368018606538791424807994223316133746815876494020622353370167920772746621820878357291445072650674708063932832496106487548417593576017626568794322404958492827937295996963608466832114571494628087416593755344747705088385301183941533889316997027528845234493248763540962808735880709914369881534289657966494551516488864117680600810327163171095759469794655186949139805544725348542039570983121690975876732660919758026185652628005897295706517369694305011394085919505003982752275251545461440909011499217671690881159895662676206723418659097552161430428492754715641701646604485778151753401948612214622468541188685445702919453875429815259272601011696739953625797547210324121731252946622858140038026537219338447383991445092727068818024437581589916727477130122139018180213170701965184410181312920072520489581868549506033313624909874467204603943214506860383713903174596850712770902696093536646344547984831695611690302758900454908519100345191139778008507012194961801840989425894801158280411035214850692833594680047912018001099186734856436407799640272951966638493483891005205546488398561490295306047979471459871272981283839405842506565706921886741626181661305280100476691611696232308837403474207521180724988918793574312018167946150378742800943917483902425376633326575741205816637500441015748501790048133740810271010705653073039242420161922900231431421275668972886847704708627051665295011817911944788685581301540827786298056098775541516769922149052192256755472128943905254826003770891118756534447692108923560258657310079070613058266625129318811485937400901164986518132123827496069700902298290716297972130811000808938081478242653816764734149286978167368707145575848720716609520164940409806980156874985813837015718506981433955449647580390949671591788064787454378626228497447162305178424532254581236002203629032730188229210640737787640887483108896319399174733657930778497922656073639651216209733791670995811278094966562400437589214029407445073039954477272554965386094734808652007313511575378896941318665968486208877927052525384495562919884215895126441980983421652747093362472731015102212716608897847390600037898065593391997998647598533602814847510034774036939673938616980317647600519001072171942165656596373209603596569415757238649237614550464665845049319011512878370204872730810422845737618726785188330597753575540327295253403749652455845624042738922720643952044354871613404351286057642033665435401342564287051306086350448143820122374456750764868706606879163419399396032290303520952942191945115708363349003147626812407735330141986078370392208497700960928693037871493775739001693844216849379386003487697912196788437088291761503379093136614292384760250069273332998264517406204820120988964991555751125534226492399229823308776847265226421104539427776217328538872236494875926227947330655073888936158180822709963307457912508448753195746953117064116043120482397081682559615702808357988630017902760679847863983346293560289880401217314168862347806843717464840295630102057365682719270163021856435567062462240024929014620329445298394981935998583749678992523811970113254027399153532649485121887001011763398912600299955985992912852051862036422606913348379725703033133881841477249552302099796565384202366556181118634537728245271979952096685888822927609803741561064263813279372934990040499333549054994375844607831385592058014385781318273298030469988009889168096332117556180387046091189979652703468156665416146963771558655816221479442719948622147681190899886084962892032936282435106190058833668490934693769498099471875753806199276766204846843534162951049104091515193989627645124004665260495017163341874710364167306197856854196698278386563187740146967828702230280754398386909808739580730511046231443054519490315686746808248535680543542371485342969783246982924736057381564752512373474912686099811925519788280764769781411662926734653344757773823115842208445792863677080498990164512948889719730999319739768009684710594671660887966052167581655116800697000191094032097109386824127060169791800167082045009551323515875535734870097277103146339840493467925580022312527035043064289250935103205579950101597642307237251961366574092801478034580833935703908655713674999016949323693706132587494669030764703199850854794824418980714874509454800439672363566669569818528837463904644843347081023006457267681957646470152801552583324602808522486354855105114698170996982580722580401650109327485434232458084288063159211296329502786400677473065580502817314451983331605591866250477963813136041185554070583472972735805306749902254003927155483447389116277473848107687955638340736909510542282391862983666968634507869145991959075932824043719791254145408409277099981350541796269919051764011583515976945036348907782636196128567750105894678598968878868472409405076284170874297513155213079732572190527473488644822385931268498123398669466687733247109516870372818812793748795285662517832668064611455965195640846202549332957739189328988180223952325734672726322586782232424184058416055915649483936398490335373059458112161106062452276701880766356372837706367053544510024272796539411275080640646257506012542677134073842502573313961163074278350760447224095929893164866897092781491724001055450003146334233102617679832205168505988333093946132076209952173337386352820344664680343168407809997395208100779407245644456821420322425212025336957055451417436942594777785061206100287338631124938044448300041877157856319827036769597916502856415386018762532371639856454275249024393269041512933501469610651009493814553901611567672429574750858839305925017628760217112784422030438351311840789537284946863327489248454872578107638508560473081293902098678075301848193699179414098596600524687571477330421251053287794626758365087763081731563034642262639528803636180846524012490403672778931450016960993968768605076853023625488259255308635991338984791280295104483830212145290263436470492364521387812808421771421756981328535825321294567601419253107673066052061290731332595344342582600522415784915746802102575577680860735528311387216227101246353291760026848627650576979640325465247165852579155733605125372081655201070566354589022022029285002134192193225129766485222265453657462625505841487448519848544576717228890335058826386752542007599361812871306549942772060006285021079992840689201209288043951188108289455067513163507040038053669718123055032137899091886970012008993048798083793781490376356675202241573177811169161281829268218897399771716473052035989420977107532144844872083700245891316918467609355844873544664483780902501715292402348376582038841244777885575991734273799704662373416416003600911371499722096589092260170080094933410051811209637721499541022926791253517789987656933995199116519226663991527436360679999770565873294676816445452674751139762858007719539907545796765895094604136843723156062484625967945918958928742782476774905069221411779473205976563596425672578341079791679559803217175999881730735604073213311666392377158790146089882753882513697027790009209208308067535153278245677540233981909757577088978676876087190772261419061261061946919393247626912654259173320271839364639977395839972889028561720755816803970182324492160853921993010573073453896105496430118484237782939705529330068625585106324490458755982743286775240366233032148981463017209593710837312519896763996661530134655540480734414034859773376154121535529847325836356443536434354992810769325118418802250349652697802723821479794160297700343958843997488970228907804951406339807736060589178511209967726465418797901808879167544283981456339311756747623146181664962296741004012834042195291595015572163665557295271135357648333362523491161880546671407920259363306768477624344679503482247751548276303332868788595586303092343491868612657222235058836853775301977527080129728583044253853915982924149809739036996751717216603391291045255829141112840790452714238745634862026571513847371933983315676684151510384578837243252853589781344557582172759148190983897390621425724955662465758989386142318639475104227310521391796811122787515794559548518360850589848496613475546079106693231630973826314119949351509470701059128870991373977559979298288671937049739169374684883229797769413259420996593116626526907541966291554004694267414900776793840863290207855930400072370943041671854351331435555756640656462332165405408919414104408835565706824540915884001205898706737694208378933821959037193315628794679924415585367161407443456707769533282516581916198659370219469337066835188747002604261269783707833699146404277457431814640871436693098803851506156899523116217188778740865294992864006433535974697600343649104555110557661991587207152674563838254448664373408000058018712452862310969645501565531111494235458875165619755792908354418667347009645904144432105927184187564781443410635627554633716574072368074470910570618776556203412499452899288879565232193673418085554042814069553227007421943241584717227412146665440110530807636159165330164258780180574219293832961211894613675277691411185781935436595625265089602528222851031527859833799651133148562621025546225667485128326073922084296202724334240908699151249197286593238586481435119363184129767568139923110527119393136520826793038082652198457595409702391641573576703010857066382013855838015776159670192620966766135337855747938470719552865695217436235720131852264791464674782830804947275934274520408505729524867990566014271446680374668155514820477073681104885009770776903706830356882350689421674113038330530196612472442076175474001958864106897542518516293871753012678278558472773825677710600019298498001722543350053184272803161540590011046832163223108025884668333695661276928996073124648623768717291154453515720578936763006478105076713793600754069111446841473334103222108684486862553080145773528069427299082166933671208118149406617514350264397662015711490769861759972852013740633156822261967004164679022072873315450061754852923399469300118914847888236324438451100224921196300156012945970541862613706574641073322796563871833395982974920659237864152900513184654565984454285873957483766336780967157549503539390978064823927585136794359018477790443156313410475934474309754334573527836171450135362817041548811359145305025932196804739163059371081892996585108343850400344125198358053694068677841222516645551016026056911269436242704785197028113408654277683061035778034375892200991087238112886743952166256394868170036703523522312201997961278500528501860646510673605568395932420590916152959381876979472298015157954244227294362165820452574801183532281558661450724063046572161577217186631628147831340617657098523152693326000960029724471055652037133568195909912196148985956602773490637336265105336239197618802030702210049014724732299255852237769891129616709152167735621307557145747354523657881904439033723562034533734838929549990246941084545757327893045258027913265340465461839612144053926046251292648818883472478246127588853388011877729137353284978572855170507487653571449630870780250977164866172264549575390098131668345610083819962102783042403605189508881593195643921701681310988633359237334129299560369420564028894525600521109421624663355390278649021822004986517450745753021289067448061663374676362175086865676074227897312307691759084651455778669209611432850787515805231957589491472276685424727449739362760633613077027189000026636381716851798100675409986239497881527386187119578085291377550295828934482252977810757917126562468435297229303960505798193551581796286944503954842793951920350083577558380405413656625503178308101961063799406124638083182630863247745426636715692896158752367749441319558150140880917251693421308113458497374215479847729267387357366307038221522177163309782998721398968419669086505122602763226670453291648817419508697513488978448965274156531869081534102946374221163142408007781239376558836690912694207953101958641797411648148573085894919824046669574103640656792236668287940693471680521999987172484152459112157095330861998166567437404776735501718877770477827156615081943843614298058047186926671186196593249703745518626189155182152652225330932999427009624972015358810419091601631736541687173864935512727557528782476845277532866491119457984093424755043691859315457217330355827917865538933525659804098255574673572552753201994848354149367691508649839103776218414023110642791112207384354140301763197456280493333769721760443543343018726797992057614556359835607394184144726739450149985930349962731441872029871079662574251333298885185807213298513527284465171081962680208186540022268173911125101696415837203481893636585172504672478883156617783244298156713370231427779378260038616844800155890386643264595110692015350244263227895335642052335704051038917423253189613237130449480637128027058549342608331046165987259220965644472495623967774597494387578095249937480107541670872062112485300841568837800430800118608127958345269635151936065221124661357941134677912383874042734349800470325705345975016423274739933834458622457697209024689845991682870522451802516135102723105684959954649563519924778701881407089983322754797675200531677240772191715306582826552050981720766098869083716730801582001346985120331998389132808302991093503935980337912545072275163080959237633451348250487817573389180496426304759775818673206732829710169555539561090126616073028872727437340160514180452423187141876621497867948679870336198176906344330724977583380420742115521313460990953502303341256870759003211029488426754393709981029014519128797726244031806748908309885602962668449644182051654676068874924659239727472161985513850177909963038035464668486268311120047067406954275504611904468429393474833755072662479509892080885524129107645785885951871861848830877349586283340087344767660210402494070172900634050826542949241660403689782941082143330897841119692693177676805349284423870808833742613527406367784574553518830331571650550678161262721607575515343487250869228451342251009891388814779766512835779299867567869762197079997178161530321004946076540081562431181603919273476394320155713261542904880457080554256442667981434210815122106889745150138624449271961284422035417717078754819861995004587475746901495811113340328849921080686492245503003456743057105662788375339995011425406745727693608270393861021637348410498564720548529751342857280831975269531747510902932255373084152743270055336230498338793593309376104480464760016662604455955190693680432517164363416273869969226209401465629361001293302781504219943348372936024979592410509453414395810214884131788263095022585839915755171057605989290616901100387346055799520834947617098920551320857849277421316438497262275600497993204257121580811694757659392242993546217880451787196027272553056112003959508350029981236876862258771218995480810159919283626600132431330189509539214830740328371130503888101184845833987761347107250014097102729580710478591270909286995158620790583289144162085974154340417468272987055424687268490963718133625941537912728441872538946843212903500659957170281454702780678429428281432292748040112261974367997434974642375313858714790588338996340791917539041923926374412016316618779803102963647642466027874664754845250426409296556864934156353079590829341780810469658344551954204886675122286915612826540773392319926787677256649173517205187815025194934127497104461273939466401140101597680518093765461136291938688189040351515810981872458336514347684810834753068360669528829541389996755775433623765573982173506507171237898268313986708169618438314460784282019309945218697821396110061146897689612546609600347616749387445994850558927694481805598044265799660250222585019927258999291241332648423914858808343230039620216021216633479934474801346088304407801117577605596848067627575558848547536239830662474200628296362334030313698030032011952539555661488539847852807168616910212695051164050107833707874332127182815960420028236275316993979382640210669109573263045534198535758514648816499132737919625619999324209147050471545941999103774721659038797951992553831469814359168229512121181663246835540320925135354823900740212593308625306447966069928535993508021274588686227217855140211228245290439013050595663594848282397399722267096358671443700891200425988242965576719311343486512477145408005740904059952759647769388749027297669220548926157333366644763287539643700457141533709678095044158631080160432934210793508329486027665816443399490362629418993110810363582085745826119585731247242870845856467084731024226551520476906724662276204606655122870936444961171410650229089354353591038746848654900582005304883301953501210566174202590430840420721837319688688975773429526102114305219666324308755166538069169181332375099651393220567037446747208291716151306459048422214450185074963826228392573319481717481527242783404143902129088083096257543474968686995215447113552740088055785572721770492722995398541016764442553859629727098314574722361758724300408516499646729472825057219573947727835078384108293822213721873170845529690279396695290652703321209994822590746823698244868207726469935082920126813548567265205702023023195988239973618238254100120858784369420176450130979890879500055991116064530673710864586133949120826258584340070080920891024462640548128169345448521843824116613641538832096670594064371857016722241992466730762807325570653073972723752953900345679699574130176211093530902847617201695683196659443241084588303341647810318856794728865195834566336256209379392671268375188699384142226323686464479582446636354253551607380640517136308921807458732803857808165472144286988826811847035312720681599624158148068505350705910085950260553296536815476650803341761324159350216166596374359987264469731359260265901299969753105351388122495296236211051554131760156471561732494347822696483072350511160128354788374414281179915140237570123182674700762011058140033563371741083112985491444224120085595166038720061093354071830854356511263245317802649449758028434315602974900360808961360078884113159409862639877212051631016061508048043693343499224409793461249434255592785117757773364519287558322481187018375818720454045238429593511489947396586479229516658536707844473994195998288664997353489659781481260644916243294076581470171187469563280743278326817267608069670378766112693956445076121892379204553479800000660054499289028941719086538312889540182975371357357913826021425720357131923045017224180898005661563394106379638914809661472531730806130422766600210356349438778191534914627114564728375890050176701583296022581555868139925442768773815182996261559153284636403510798958302861961678354254874122138481815931196176334998904148418521037213232321401131006921401468532827012312826041829478111845167578581569914760835622480248741720551791995102626454426716842040275940218410837974593720116494043706433497152913130529438533134938001232149937490138847791979450058750129233279994001984960500362361268445963324234031821566737807847873205503929859265673633418253359942226638561024060730194424209625387954199808794242702781690646104193223850708376349534053125179443505475567256282236005065681734375696966538001095676735675179910894277585919986473668738653280411854266637258973934901158543248189436507982361770971106189262434796971644765273987814080614369166640572967054238283329945979613754000261475360775690361927259454397665327207800996552108475356148831988681860660520137773134553066536789530326982854684300855100210721314827418667502361172336433087561529706031006714755348062443779407951251418143563760563080781053418965780029451063460706176667392707859817140714093018994870589797439145915486616387113759823792243737956707055612281246268156591340944056686568404849080335013104856694393071734781140478169868934700074721128016454535733969044011473740362055654599172919418920887703869307958097886326158083662827027902457032189795212046856000920814915348620190594440460848762208095098968793483694271501357383740858757760419048247197650876861957128523578903549425447236990402195355665500535037924778700823769409438679918912926197715428957401058725876754538390699383189385898956229185417655708929930509606648920272588642390094447867658170430089375786716337258174733249058949003974865344994931253228823563956274049254419652316467055101776873799353194098969274548270984243682956864288825208955097182638041998139433518077896031945042237887099348600120622786393602838335196463634782796234494857011703199238420161337414475251696265190078895270966198224715257259202367176489769236396847768839117663314198282993900905418171916712058782661564195918158058064362913051630763379603036523695200178224256026836312321439972510420848293187080765923347677268551324672901420735534436461508037239870630582447235382925579081430017238325534792097617873801502600613982600662044148396370158007828677632932984404837090913538594558922564643259491570338790592238850175973718607269274631329127733394881633771698965927375566665600819343709836739857664705796246048042623654439497616113374068510704887422601747829131652648873941609746437196906862255786782871867903209998339421081225585353006765302158095745073519627312320991263767638463897032312692963739051543831510897582620622897267494365748693026371537087842704245414605038266930928607444884509926623674136977007701945200404804346614928973080814156205937379065469290565900344339519046898076988533516246242786896128922212779760613156466934860312624103435756462945991554813779775480667933605285807924206316144586668850935161244628851405022900547487057302094503804252398156678618273414784801219678500566008670047038797790155037477080513741307498062296552971122634950192680695571746810285809601597902028268527615769810642668406939361234345521212609240608802104722700342102204244766088087121018550773518519212269515329713058486164523546021443880478595803661141431705858565298643531731200125306159825457014132459288013263334903966707167381774211667815217136672575876292083877456134213984926284859492626139165890676561093995991061981367942508248684465001240650281958010311083014637864477958957637250030044086264393446598481200645016905576196119702379299386907723418247231055988528558714923944329418591475707037434204044400289209410157140385636302408566259077829484121752963418505781211730270090578039987153918831866257548821002745749103192286693535784799867073818491375612515500184380515745876659557981325242946479716075286191819489007598963704052523437600142448402701447026272637495643603016809074095445417145025513346244605397718821209492018615113448316675637794596819731562929409697864436118478303363576140474535769862117392211732893569963800757280315035674198540007212686886534184128334446742546821049209018855029842738027114880010923837820375883052908751424411840289469175949704454007184839141029774071613571085590381153454949038340014771701098797505906875751008828026375604072536233120573881161026152127608358533400627363928348505703383601032897823351241920138568626561816532021905724468707617184822385605699352704894792158566402911269794726145753098283880586858097420942212351035213340711798735362176260522491235854525534384584212817377978884134559195172786186196307860607086145386647747469712314009556352619181319526785796155079355791214254535455194934623546100392634836503187122632171498442618271297526340637456815290647857769943959275926551272565001117727004175557740370640456413145856543459703667739878816227067349110097630042684418006404051615966178018267689464034790300671680725470445364078344933311830738144303281361186918220977069313436558700264316652534856368908222717904823549464020382966630037786628853895380752840688789608641688138297221288019589786760600853257993919597790995266440193193474407986205847814166438564542069221866094811572349420194522457355671728834104602371000561573771439914704229356788742506044788477329295523335215902521684249326585463328131675831126115962050741395241739561985185645611174961825592440744190776363035053032917235087612525294110055349924088374692296837403135938360511567408354650538087502059000617613044480384406927645403545107397770647675937038334630756349741580193390170588596848154353756128911073216880717839274515525633500776880796335577896365503451720896019421829448129960543822011749651440678311870345063245056423219178886500573661961954499822260009201071755358996559612008886720100277407573258422629060017002409790202337975066351659337186400481039135620360871553603293827645671400584675287126563069943733018167214810876514552652583826848759752033403620260781841475539138507625869862572747624984136837935966603625289493020933048978738848703959354270521770491809151524843571210839203903022180421589647792627517022978069721299174554440456792052319299883177960783735379805842440011120974395300160874889911779973929222013078291842844702780823381987531534425544610415516224753467915049459575831618824428591215987903526348185093562965321289997107946919820374693403927047842735805822238400870070906312907304915922897935366085400510844246693932629627288151929285431297523633576928407919808933038236708828031485259665834287944170004175781996991612477557075226563451345859088190455425210919397916572980200396077925305524691946435741899247899769427283140323213293649583979892542247310487337139906177356922808018834862799079836765533543333214793202354658389113453392743014930126856255622410848538462058532627077993071423145998577531793355247624012932889657864055196194710404640167318136597817076658996097017835244118695053281416410462699283165800411945774584940188324600346701206745142438317622507123371580039152584562841905306501597422104362931534087266674191486171927248707223125225971065415409542075036278799848381026252722701832962480419330689439875786556480179957095700628229661786120170546557358262860789296246163806230675817180219462424517993898859182046910279598077905937894835631710076819183297430480865075551395190620643669494289516798507958902843955033986013258296742742491433988947838279137797219182338658688177852783104734646323192997739884124212132632845488435865238712360694879455065107214531965501756486202239523890055332678665955753724700806094277901028853776061713853604616755694269451550037327075440939033385269195010586081319862853592572873512960967163770036199184222199499574990512708543007860352230068276956662172612547340501125991709632595695723912193549148355954698077965992316206223735931109461270295174260491903581199667211207282946406326164115365764565942967180635185383857692555695445222314323383204615927890458389768605013313378298755161473655595664544690988674344824901898557799067723057707885406200386484664180504789182836232542680847430583363877324818329027249521869600325389156943590690956268813960592551028974737528175450404705294531745239891518248134214415741823700484810683919225534000198140251097363280374881095014777782135413188609674615595110908820067696696243011610958265414210873889649447997174152814241016553991723714986209018322088004693761401370614616949144277041023756481368234746518090034693376969841356930569064541886693137600265456901458709760297636759944183469413033157673324106236160683729649705145987849443944663176381112795353322331798803296030144774440867976682816327053449645718520293917270875945660755411741550724307334065141690282355489996217640671427208958599106330933545117896195868669992842546380701479574584016469716066364055965344804787371781952116883873134965038785472241280479528160844046204467892443716794442303189712432865254929173376501327428223731380876543524845052609442014412607686510663917254079071135003181225364589288702359065099573690476909096190706246132510272629984213575931316538872882379265754875546073045199027566810082228583783016452141666393678270869843759146763561413101292373741977390507194975232475924762025116994828860719131775901267493050098468710837087933302080285852208672220017035815978582268655611696874183072966198969020920968065473098503159241642672958719676411282928751816156825501077733187417557039241572313740663482232096460897305345758141227481849612928306617031088336971149066930760467374630324227037987400269859503247162531413899648719374699601036267362264599560572071634802884485808496255946488401722870697459508296947392097048358971169998624845148099883244005569625143597516854380381087888123275086992709857645060784156010664610976972740617567815055289203842308075685808057524639229385199435358575874887188600480408283476253496346554966079598461107648827373427762943664619599760033311929940018680006328688846132649371172855352967850848714934341291770036430364913272478340424945647191252752086787502629604175959256838399893602115001132998089926774024563579766461026751734125029817801158074325038782441571853250995377862069502011404450523829246977979594831949362931981270610157116586279639397209142896631539201556377609554984861117375460533930924822986616633947983078970630629341564973948533721826604307174745545019393379417245918189677536585358027963869213207355974868046170968245793770343080782081282394449973814224416552860698965752075953287562994000524104812937803018413821471702645885211842213792945500422574773823985828882352895249091110921583534035967993572252933341703634078639936112536761650532179039929683164302281887748184710900283306637972262784676372736204763883875529921237983140516498316290538773068256208676977714403220403349325973539745328620745241637170546828579698500228268323667294846974741875610058784721607043048346324036526576104049276777213224773396640412604718546812742878576680028465496790671260502888378900934327906348021016655171518845449459404574333777850158081514418338274996522560766609424404544619849224580245057862751943973842053255155971008130762399453054591896211231331686944427362586504823290974241041860725306620112748725366678853151916036943922245918699897777542595182768628060976680489080606902470741282186289914621248671444381229653306033704568717512991991445475201989380331456056276363189247075698067977600443059626185309792874596358434148979244201757037156809716801602137515430318751240017510797469532759506439011929649955474032420002646869315947736092493664255789584209560699433076165677479857175548101911989297406745154356741723262973514014551778652853520458750324962921858468453240790129488189446429354181798826473053535578546294552881664846027903263671270715568991750295211322950430751167964102027146834377724657227003321697239824527760571367570920020073794960962192804178540091820119199126815184998393468825662445781816000577545444164697575091883409485977152589804021384235000429918017915806666075039169034587911056639296090029086962730254353675780342866665299132952136287825629723217130386123340996346590536386010691853993320003785414757331707534770550576781834208440918571560272310466305399818572972779915956721710628862777174141193617854813574682186800794620101339147756594680834258370732444523780326289484175358739291149973559939225776075131755067980817548609584422185558990597650247093373360696126033811305300182964126446614877971084265775118718212659187636567260940925491988455672570117879559208323408832712590900839073407489539112352876960035850283687564082790504192436315866711910786390796685343683911715892579935743319513271613275166244070148782843601063963303619313380131739597472975128612971716829704903767229522064591583715750965842007800669767946059907053065567650033587214045994538878959867745027138478790642658672962943231364136937747941275682531051443669952588568644139286167082371029468966628931014060617105967886694246967955813413117995356537470989537429577945178301840207143771362758484509686046048693141505375644921283042078222956486957796259540080788932601975798382669876703009225433984170698524979338927482899078151747045127854475031642967251296238861819416758045710911855249199634814993772493413793372257375813586896475139034874610592346225331007058982098090648026151595086940892890782222794560865201748931188511147002117644399767682348371103456529240782353996771928781609759478552278973179225555810037358451810468664048310404922358765281974981521157258248937169446740201054441835770629037878374135331191318355930119916612195970288180976585139028144444709778482730326973435397897811151788303564828837942356742597233375786871418583346470714372205191226306871405933472765348532791496304919202268170535649084658582604173956619375721715751869498692926135223044808842354827032969138028391919451948340401545472631382302285158969195700448584428288292555403304488713103321198829917880528483987144591254192182660883866067332933782472639473900258811775183481842242657023046477993244918454949129193201118279688311560744905201809225660878371535573132709281865068843813132482349426474720206834017799073311115023337478538422053993179259473830526446809729161947083941302260616272810764088129371217980401501565102010086562558313147214393158691802263003234692500399387721826438765488747845021281628724082511076262323982437420710251342900194007384882510589016190785675893565421370388542134414847204003567275623893818188746846624094576120441418012135741975046912541123671849143828639644402072355797918035221198124384967041664105152210132099966826123989182920855422009586972306025546547603063924197157373429170034165969920088010747714996910652330022159353346887420595475151136020082624514364707780568397688133924788705474282977366106954770696752180054004160727700042985924336528792694648329957989377512615475584844222180772046321141386941325659234761643834934691339309646906975274932090074223168389073239684861349433626815212121574687789933049941669550869572339802508554165835063792476583253356544925210953115381811127345360178928673875213510859818240722333479181175924060305469654182127691675477718752188120366743535970011517008253654744965002889371816605421155610072483967961619074885914627411730487524889062596687028575689437047399593793193510466686741789799855241797344658514285565151526218472438753107117883056468481999017624689358339680366530836262592032110049437567730960425794022653044754349713222509904072186387995377362858998161109337212994713175598328798006652795938659104194564426684729289335103375085435412217703813766909765497059095595761404180936657687335253381253859702468345966358680617773735359946828592628611847126624775893800554527587491476416867839183224106088774824630956666968660350090805351398607910001215260540318832682424741902878703213426257106844681160570391585765897399159354087143962551703562140356869749027599511144735033158891258402116127249842685406485127672189736105987603239060792595539677534285278257242644721012445967436382440299572722249669000324725998144030257972255648791688724286688763388125701642711235694066071918614138290913784585404504626759528825543278947821595459726693400000097305222607827458787502426465371530953886406470744332877358811308422870915100222597092298500690821960599684788742006918010134311435427278166138223911615138512032912017223711706560717696479720615160374910629996044453183138454104280762212934083891332554076131792937785520524599467695520383176120304822212666229077482484777370234178148221832899739853105230808140234927849057265224537015032705948142318745763557778154491864707463075344688194060124021805979726966937195395602681478081640070570209761462912307472287047808092376555976388900986462754363966479378739354386015875005832169831666670322572190596745046263006609708955340397111459978498826478498560708796478510464545131165271302417207119985042836969640221225377863992728406464927633704930799861886091447912580681679124632896252950631792781139244935582293038698181437222860252892451537306672829500583652940010503565442232499728613071759463566173245956575340581735488587650204213516998238611907760614179993963108261059092579037924319829792026687161350435119730437004625882483215744810208965766250076886926029088714667730479031441352328657866840543867729074260595206942703122620450939680462858847905280560156825283545057414478735602278779082425068850003482093307860100504081672297159851425883223852812746762486226787911239641303889888225034809699802369632686526770422806620517653164275415021896134636634746182982347875062273161892494627691604467521730552139765880962310146316666274667445271272998708837799826354021169659228873436825861824465125584138544294850973443008314078037137230549105707566208138234088199330023131269225874331194746324260020298023231685621447874943865021679137489429955272700679398709397362679791573861095390444033536894595903942609575647731215303386250937542669259777189434557400771609896965244785498871990968973463593026725875965916824616103216180487979949545244619190629988927037753515971419138857883330830199624258892536087574564769758815737128337976603584292967716785576288719148266328539895317271693805540056955344860200282172778460609218509549784519169844044860097439058144326373198942013741150274095851333266543418962736698186502088527157285003176126379946702320465625997319525508186397335665087769924439067049712190988666190622098353377444759038521168492820418956274021129804407913834326526832334318553178644938232345277885142035459717737455113538663993973426856087870556667724089329733109847711444126857839924669991352886531114317098247846884436958497368373763024994603181252696324048623884701790447143261154132987164537279596452658487416319319941956947164558635252365684607351745925095474222041851591003393118248217891113541809600885096127435148253779465331419979571763310221408636797458622229858267106834149870032296178752760176356146508156078540141400442065223494066514072578302814808694851708682302961352711027273596973390917752401220394946856370147653293195085550122039359259047573988995299244375125725269469674913746544462870918709069749219531622476134206656194596099421392433971321197683343219221929987938850927655699644967259893761465573713251635926700353424868375566960448308895081172397990980324146342790082457299759260433610097812684511086764281115997723429692075454362610368266961993150690329002138307473189656766360956215191648361377230267580925466109699199063834199075260223042797120748091532840319308849091694220209399162178465031141116590550889488110172562733017089893907144521424902227574272545254243592551443426649479946303493629693335663951172099411456608222019350298329837750768957142888320126126124655842392900050789069001551481647857606490987285714734325548047333808376906264521905563249526516705208237781610501174055585521711835793446611966078904516857635182553955403931382613792617762465394783942309838913445131059512225290065704301551414716755193440775661416315771232381285054104701351047652598604359929070001658811406117278430886164290378347076352056311190697373750927682825412547550228236251605930976718572332874135122825257831054086869890660452868876604376988748721482062179303080741791905216196696683069336121089830165242234842807778766144165915336127385778685530530377984682875219750074689105667887070582780163926742418624827469705400266734448637834248125920970234032491725121640095334608390971809077576168865694076339960385974857835859284580320398774817963553434193384700108672466661355130392373132353201743319825682308825822313742122196302778061511338047604348121862716075352222429655989934598226919313946910491853696871154220012244016592274760844829674847484614299748807444646611335983418822229791803809413243677972942643083188981404931404445196860154868366467172633965660845923323160566307944670043534601615773831948051747393312052867868038255777449669708949168275058085278600995883610154412007316995461732530554451238653454314972502564154780203258464895499114569062345952685224510293780113385981720537721538444240862671323572193240327277564780719167218626556950511706892979724235736228004080823774493471571835055989893173196508267799320657967603922799389168478383399240485504767643934463558584044284184506037439141492900773229979740267099804706877597436932323083221999003037531516740326472941169658043114184463277472619081141404022683596519133755865662434003964010513089269822445803625793630388964167598699256193507494361389180126870611733306140366443957579748311614942343255654013330601277093653593258068001136352127975306274967979093133440795849438684609897874598798976990686434355181992812719228226852449881559339207685554574560379707853436166312203241717752393820579173917880828774429869764698911547459387381531392146303931786536733405179724315663245549030358616330339517755600599359831413701742017917715413472199597341309645111431422732906344283028520127948153511445838762179253626904976734327326374033000979823996817483308079712384308676355225188046784184907414279596286370113463538440277151620935027477787017666858439583780508117228919794241743858025030234281187704030447766188214953208481106080677172164637518202517510523399194171908562469843075461715436810145883992450916555436376215722271863128328096778341756342332869053240295992927653557433663736338028939118998170208243490409047238961169004228163232889783540942961107886048880571879413979776418877253293605105332627333978013318472537345159217680747732821338141677667293397822798731570325914869242519882258276553715410237483791571013258353126275979631400337394280922659127308984342523542148144642820325337678541818341683919325890403713277242703458165847998658991124822126776223927748615360374068503231591953063322496419312697009285834530979770345582956547388892300955181775373785474226637525594098592500001083158204872082685649112230243327866618531283695189259705278434613048451207629272923408396152293473040547414304248765740558656130085912563855055246528637635051019558733653484770950170077814181747545471660991005378939461959903308162621175866190703251471759534706508715735211543621458461556274848171920797307152628392019280839944545982779526591195734667930431368608668536519023187395777120061080689905087568073205040145182885202048974882127389968257053914272624706592232196006705283820909234361228319614639983813763408147656857075408523086827246528862825819300855374619300703879262404757774062281798519153588231770878299971951847755458556013534919826738256800924229293363051949873444518780177367638123800446412412578676199370640511839918999000341860483092621702905331997712664499164059603921000809688009934014638668058666516896684630928943603682812221810879706756654885621531521967278217896082605722903787123232114010522283819089586902069096333578155510808125221586433578413719864741771983407960341994571795619325909797026333204980662110469921220027726058911820826339382724821396772350263664739088885013408354580795194235045896049275607369508115341588560561507903547063140379876160841981297074062983690403689107076116499317098162361204806361298377964402820247341630278479525051941830656084540287429385559196103693512740578738531207846483562406168176973208988917766497654455433765842579362973632207678077644097523572750879280287705783495324904401513116575714583821983916329752822660754753047377800012915165397080457425574675363149716885302278969451680536899159671688488832425005611635764298278126777415211847454358920877169945155823909567059019000009853073874808163787513162709577698679794443078650252027160112206634749239379238091018191385082632096246573289356195786019341710583481701943867496486679711776164499823234607582969559276472618905182915758443800672424353457201721340892791103355419844122279545281026340910110626294580527410819146645654302630190360088993662193718232575997098808871307717543360242404040594916838573741922036270394622318406434859043337422854709357072722222412909393595172824223597239663151877191625648371703782615111796199672589228017688575881147449831235330166860147497226908367966964164447309294077809600539957625902274795770764010117589128391256885669092524582611954004957160951963498576777846363819672272687042510535015676953621419251446740456953044425860147621562622970404173934438718106071971086516392381560257465962606440757504167506561326922599119720395857936619732508659130972593526465229488432497023706391121797205499113456499811388186664900322194521236243346289013409982953868303516595015254535314365328371532012515938136668845809736866622540370422724539665289541644998626493044219164684218936954098423468161656366320863280561719642579515408290063374018294293126911567888228019359132989731512481576009966555313752974009582849538795710479644884369817610531959104901910552419049126336616336349480652170243977440079935517356291107467521087949261879702895905170655617348647531369903665882547210223918263194458120008785454828384082269193723282232800258494958866313974692241782472648103271604023571457912999883328309969796436082928337443713675605915624907354553380931944185437978513392723859646200316595605581705357394852841747843440326657674313345545208368550994082031832683097613614211861983570977094923847925285257358779033358666693224992569947174697798061439467284468330488652829052104716282019703826748330465475011321409162953883568864313665864936870601649655279863426048868134611514924425369137202345623802699328932177003182239074189244836508672310796260663862125477784503686513692023836286252729333220442602902052293150493845158870004532577852949879581142611550397367066588375362111086743243603076950176611509339385566285610467181555877252915928204139649744081194928181412088714857038888799879691415533538377870221616432794980488835753174423444106530593030750540493923682424336533663232233538933515462132793289244664222815981466538149538467452222059311098479110774562669650291392491732961762501959639573891488006881641945264689932512761420569876810137904787794407279609100636013580556940229401433766702086109552091525768263521339608343073771921487764292960876789780302085829768585987748596331412381020376192760992445270571539154779834280547853996193407370512552361941548687561138394015184059437927524859459879273969646719933599713352809303815316435722423402156602688865473690436186005887525673290049312109308668204740941276924558481133664139863764107867558996567806107808067969303880166466173540859709263200679845407770859012525610636950761096916194380837500442724711761019604704919954243329299677528219133635915157001798456685176661622637844497424081548240568387632190069893388253100435024510564610528785986684614362741108494480267100968747683874822202405478468608175349256406280473883585279767634957510581451495203258423600429824047662389086513078236124285705276036170206280675923904199539489114269920565749415779925737729185273979668059212578565060913136614682487841848180717678937610062265259623997915877595874601564906323486361028864362860547907180216770218187196568010009360735184930840857210761401820957129876145443405374614565378729928288066553444935557987998802599159290329321104956846273105240030400845976971603159663199037854597923794904966484489173316981462532487166315326606453702835772707876346848706180102518332020123994104417429120375530347792512087113443809969573016672890574734783809076512504326233823283559700199746252189274940494854333447997139907693523149973117703092065754696782457283079638539996753886893548047354976605346829377356836584062284163909282969473839284264516744643287934045881969731660550179244939363578296115000143779257249912012659806723405069146495183227308838312370027111731303042688738826099338383378214017136653844356391468013983377390311849381950188256273836748212023080633326111024491575637312943543161315001694181910067701793797589315377140044483893397149872944196166130696839142505606007368337447486506785908933087839633923161740932993532006088271791517421911395111751000807168743120048684574455753316410425205955617429860744943907556714273120303929620637132272618504599886260912246027262118583148137230439021635167807133002439156458134078430791557702333480565963032415875490936850484160891583176512315463203882977650840266887863923585160507061594846902115068630520460527610046590077137224373573807734565343172968260478364978157298314299902690776694734765428907871276550524468024424735801415152753522509877588878384700591000077344202644167822245706749789163472510620616787411070702221126051159282147102996553741313311463981330177495361087874764623735025278008739113650612608519645981293936865509577719490601962226217697207866815059127195986543830472812279812208451862633565670531759691104033828917071326431226429844019278724988279912848910289289287297318627997676391487226856243674299003886077719148348175691561147802516992197890932501282449006123526319236203828108467790541110397535347360254148427094418100603114388212458245896996963757835589963920259414191448322345370239989164372011799874350238492999737012856765711114163660289629653422479354219716526643576408144449027306585397880226519721576981953884795259910945417397177974083231587226680414350301057906034867095740355298450180388725247806002446804549557211592536367175734090639238271734061849313174681445964323213333338162122240210461937264457512970581852752098261198284272806713084688908761010149847192553158723126852286598165493818214190115843886385522192349025935918816539377200355277881692983161878663556887097827021232562327518832217881478021494531349210251295350103055039655423111609485243644186914638400671973084975152453884556725312993726665237714140530161137604797588571486356973908119222309526404718266231222035804586785824402621842794487795282113929755266127885202008094142968750160757344312124296241709291935848487636325885011467504881020270814944813654369301742313771874053646753874256980257405255315563829672491060526410437102898629677300042060945164151866188864874383684071120682665732067622056137602872584278958501353085101456467284330897635217509568432765156592652299125433268929982924780832839704254796472306474905297750184171964058484221687643992576945075783955938182796951803123371242488357732235506071781881294748967394595069992246015805583977916155079519516070548520250859782756877930173932308595604437740412314469489266750402562125080395640292141622706087652408853026152963785701715750261561551297144150638919380240539739237763783569200788640642796452837562840729545291421155573490768673582954921507112862559593921549708887568664681382870095106402401214442988076867228429275195450104111036299498448784113986542424542606647908740438261819097279679386574765529330346926657470134095714430599967215968992668803044884988735435621725278561907017875452090515529461881114663659864537663945845378929343213386598091370810570469135144714267546712875442201532293060557264395701895407624637643766776575131131611209878329815704193025263038634029457746992208992852248256453490334361952094845393955927934569959780089946337373609033896477314496071538004896323923369225734966361379268288670764866279488860657499987179893374752134191232205845880409619949823618293098349548827744227267708927089792040192868836208492664970821551881703020095294785664806982478133004962722142134824535418285095182533340933411044345501402719359330928605604382965545925154615931211620774393096488448234246265766393488502752632398914843020618264482832388665667314726551335986519645997853787137052238971850714158315029084753593430564531139812946141859180252460248773344671644362242004031901612819605598278059157570760002898720037436941437675503165051598642100301109773795343454148484380747758831285683119881763926487297061715544555543483429067171005115750678750963552381570258447575972146898904800900458966560728251731481289382413233172710758721304742960372512883418142695185719120441963037713991563809920253147574003837598294559759995684572913772174535049770932396616931099382279057511185769436294207864772618697015897860930528737542900980554405785819439328587143671120128928999772036067256761466474770488111943349765459651290803081686358665220480254975700364586647534983266747249945435454135357500264533996208122391452209513448728405307247676410889581532749335063733281681650227867943017930000840594725307024387868929314372209149088276181263126563121267481948810501164990466091936440370736796244774085004630842463170855246908163440821043295890379215320530138125075452446023946017564383200157918642874758608217931368518021985895992323762125459375916670020967567267878078039499610492922938727583643039002679391540431391689175604773119295760649096895850150638432789980814194644478844737216507371918381128367761371486014261557034568822386112953448172663753456357823408035087232854184501287789285679795051891914669781584023812525061316687941601621695862514615351772648160419615853306959110656879675551518047144513932249561165187090874742177637891253609055054020504872466043103690614526685091960431091061708089184440260593599887925116750981416440270634180266175003462212844180886584966994037980315060972825938464160091291043610883735966660981503164180076792930914333192179481467663850411952096812129902279744230133899107658297258773922307169032063427169895919234270740482713274492530298079128754849731523149039122881908757418356673017400591715146486119387828494349858172021692920152271443790702242664739378617902169663087069288347559534080717300253718551959771190885054970071820534682993709751110567124446473559162035375549921694875902510808754635794039000228886882157669412826275991380477902865298500231232224285362559580656490524358504849600954189540726549823396469462216521483086026922399799441179699716905428110916225093374979686133072048443649024100683701311823543575001256015731345499914595779826527427183622342354910287476444637034495765629903858986993604102374982597135120903619775353051472763867908625029319705924992111371277027369784968141152417378505843166930365985155760024405835674675241469096398926558574177707510213484734561328348474558937086183666739246408984885164752744574664330893013186386974386842213097541484255374534462951410719705301809989191454074764939726800421177541996381800843914601610538587657581133728217221386777131840770541673234335166912709721726220253235493137683351547359306501342953609457433301790512935721683831942592147338624789113594907481666545046304365738636078192761205666791239913365853600207722905642026951150838796533769397232442269335950471012106812870299596510150859521145513479952994779168911210274531124834263638559287360479491411041072831470318223832980946820089413888742833429048361897544620234643077396790710372113208447537561328688471193633431537022251382749160103784869781404000323006141217535579316595778119673042553080772898324961498894574394075517341376118346030472556785219493749855652140862932497826866782169106969254064265106430717699782308998746111553119380901200875936932785644185826758080277122986890732087654071250372980550987724472766655246882616549122748176877849587907868046363243929460003941949178066052516456113402388603079255263271794316468908852417101244234642480506096088168518954380179211895265913525530312855086560119411720305516712227862892262957651596531364506994256015785761035085229226813985853085999127503280021991827460705703927247766505108444333652997365290236525740106120754262617575762716246118384215525994632003476861923579747393207229496339488847717019332070673361549320476583737604548513521333891544077512226064429327000143078590735946614326946377426961057604385155652995264793954320374043233725367257772940125203134487748294494818249018687627883454928830207117423062596021371781655053624447924705676275915449139860608097558385324231924342083210309157010903895144764568440363149643850636418928199646872461008388131113273089482018764100908081111300932315723330700228041786253662172553805353328967861769248674855168828032991720293983043792458938449403033096483234974285291384227889209862978083533484082263455458456555488572199801810545671343456781453645057204075510477799412075365037394391827891272486909449595158559030655181961986751791703598156511401707499812251038537877216837932765221686719739293559899000658273499774332184056400825051165915916809378253944122509442469270562346370668394584601307818605413242954721323962273049086967716279819318604482226683352522706607493886787818638739415016459480564517857226542289248539201584080035825319770187742645625975600940594600320922324034093347892103081804478544814241589586310924580203702419952604230329578330152678267431354967334528798386424397674944580161898553397707056975986760437001118453486497903830703894873616378970284722090349554046274690952407662592804416211507297625185690726641534230653684490960360250411797161071897529915357538103896897929864933088827299597830609456992245921286314704905603642618424547600364241682275407944745202963781758223851855400129814915921771458174418199247479635443820216741061566478240829003968529526459355401878724688503621674316008645544833070637972794339213755407874257970546761682713632136621929266263791966378267719360030342284201710717170026356458601121254140725401086330481578828024765404441488303301719580461307225483351002463179564334448472199338977123349385538621430863883696003101457124465624989975719453629556111393282693499916474869812593971706022908773952181535378381648298972903733058980593480721255338077035861637376751212229406701846980955506595762919933793534295655354028366698746146237185070411428713570707994451423872568988253428634052964411242418263384905273110197165093791611309436175698137601143928996911390411940727174277533591424451608244621643228612604277470030536000563360159355630214504840269803663265798224926261949995867245502390010612577881591294716360890134992937117199566575170712971670777473108635141959957384613714932112121483409039453860751852450630982672953361153461599007064656955860234293121893520481980179252868769079966958937191013145393582555986498489798211804818089944610006429848647785362971021459612886619202464759981177978025797669693778166130285302940497016343333179065421741535660169220779978145409087657896941786923910289426988101549992595073934931760439863523803828769223256182028704637214621585153568633744904155020277756158677914351323488984782002695952422066336621806712280129006492178996205699495709200637211729185345559644322343005866614340598427246539524767068127552572315140036016215365500970641187678045457813959650775698417011271686035461392640353457745560838862410082075335968942521161400833628568395768946753024058518298958067792437852501443724000287386163725055563250100369525729464119580364966866598120826436217750629223053518490391669397185129573540325321001952776042014615426921232603356735188852177073090969259547367314505373712770626277427785666556070915384333379673906834326057281096148297914034723908659779696175321589856086372328287491541319627385831011043642936517796891825347230140407041679610241433232841110486641545782141423295304731398211336347510382636102174990364874862550387984081977229550660172235996114280855215542566633897059906498285637589997055969592005730506327591868148439027885335063157150089238447744523864821577559607026503832248848425825811531031921964486001983106215018069511993396469839574039673118092451341939901467270050241592031431151877010794241685666162801684620187075817416317322732806463691888047095117011806087644604082924458633776611053947298909579266748715940252097939137015653155187254009641264257469976303921247662234195669283762945047467961608166735325367970341638558865125760477697384223130527069974143224434969123597008401290714681035531633046230070386133454853003346651053357478930163874937035842155519986644951182946351473156347981002285398486318821591705817792094302814351276799477786181139352690430492273560838918659733799620665697686924504320629128196720263381840656511330881880809956042247471749165578686763982336177990777522625535835228834437643619144718780552188737168772681594365579028898428147367357909624412133849050051047947787973047573417471074775277152364307087664377137078892758311630760404225206152697330599124108389815982395143088833872621102264369768326524147687426269094005257883046008810500309903872832232300327915455115735379199071713074833326895518691185032463924018889603726550985841893593988167682118776283036791834273981164823637562083348914143263182347790559165533103744102386105580442413382943098976593325378173260603694016458850843082259782099083887175489728194830296307552870854760587844402124615395240657158448563198008012622953301143423137695271602164034404186329826772077017513150842011742941839713723571233641125560081567462141425232615818134851873865940538100510183298613043575182872018152474048895487472778576476600606109022986849282137583253376809696429386602189196724420420746045204203939677443440640456319931838274237567795550829147793482478111843240300490769750121278717078069541761694288967161710655434253068168449489709951302448300276614431067565845511279218458719534403674924538879884922705178874736122938110533988857510089678015692342645953812538833806684417325260563202444464426515667251505353903837925206950818862277611091931378301640756955172153574180193438276788962630996326031121031128049284969959967247108521588522938994709347777419094959047898575423478479384311844890989560132508725914149042901780904784387259028208958815008558523201804505792309603180397846893240511685632250083156849723395206250123635738302858515921658960319165846427404662583794607000652383691925558539317318475538205325426580793422968918917038459450909558866484404950384253957386466732095191397346832706894383301625512357689817049209218021532464466018100764572830147535443172812707323611912002208829108981170328814692251021975931502866253897613283993096691226229727533846793734113060410505795633742494124973261958655446481493954026664088130740965692274521446969757207129768869958798984858715405418220465658158170398634853883764171928171966793926996579604929012457252662897854450486981877769333974607455276918576848898900982173906046371658041142713273242196600888108566024812431214440690942031449208705443374936977584728974372505580626778994705700436288688091447820320312774225358958880645786363844288151185567696894738188020548638644247980709342094423899961775692612085818556475428859441127742736582605828398808573745768764089234905183199965440842964468268379400626660536279806107606864744814595769966294570282981266126820478887982788187010629225807743980712180328518459197726264026766407327514467460251488491817131085013519482570727023238969329690990790417475691823522396848129804703439918859074003169199387207046044554267591436214300574684509440907367517511278817472165203350212875290395093733289066961876370720872550709329115717543479392991310263879237953749942379198593965911344726982941515556738848844176060688295895349777887230214733328443993868779248786493611112005933701274449431750955042532636340846858819356305347991473438656445373428271962203574068114977886427849414705773457388389989313375415505551600585051107736246307456740383170097977799529516322384984938328140765166516450701763479623328264674032642308760670950252470406624571599872757539920976013309465375793583669063951817239755446317007030021246865290701452345988877468972926861757603494615396191557565726723815161093999514087599713067332518333024061905585691394721684151644686382653839026001947312367707917000408185750459653611772963695109989610602249959089713835338186486759615326486361154600733331598854987824606509947713959928036683204389876231474238516365869032390453167478747963410996750650880455668895878443088779004797592232520355480553350470850015024409517774351696811337530256541066659594676957501007391920774086748037879458590391768073735129566828258317640272349469349384763310115574746125194671668620631472974080171397074446969120972113926087059037540298291310581089395356922849913196130113328237097086700048767753420199287335041831464403393248381537120585268039570486499154789175114795129783044070582647249443764910772819497580173393376878615693456706110849837429947910276515856877761664010161563303302305122680976572923889901255894883507145007809550876268159630040685963780104325710319035038305466746244625659139401192455129394814203862912934640702532496572642764823545256463768258701941315649281222453806165355303195063712055216815091914175701178610156519337125487429808897323574828217412155148832834979826753788031890714204384584789780215223922325440055027338128510737266256441670332476215248754140924458999647187986556294782192865021238760659212653564211008533587114094973491936469412422016469893347876390085695238337832386073734209461796253491187883576760448356975690662348225960663969173901655070781316547543220615189050964285348510468688049999796208425581743472949746262164628374452189753155812246953332840772854032064964053072610836609490174542005962482607672839134068519645292238667644894309504518846023093779031242124994755012166051033747646226543036552909962287111840495144391123338227723731534341357894245072314664882827630690140903378462714149975243946880429167672075262640027827886151846330868667191450892871387476902835510393559054379051457803990447510002162208452590697688998123479790660599412225353568810459551044601745217297041369038659707396580566464416098760090160448262191284483575154256550328379481248928388964437057535271898560330613022481736541118483940619171949967964666842047741213378594141881150119908731996400190534711894840658008611527972547605808687423925249802040970158932918081531787026374785690380783638641044986920265993402706245594212627632797422590084045648791871394687185876167653624148771695388453896417996673038837168806874213372677245748948763612286414305257957888189752384577303892249755016513110381084813260230563435190168405991922119594457869187150099978807088695707132806550075940567418035826928413259674774291462168505542694548572425505350085413452249819088904124030902201343082633831535351125199711897254588388942025953094683067343466073195104834670677202170635983792701914555406654935371400283238657354321715975290398663051176190621968788611576676644568335498893381426279006283903471450562589617183450439801116798731657528750934869402446077871755463850999724034534502338846694303668171965181441837109615567439450233313971837723358119958687847806633932436213566874804713319174389726628678250356557997534879190816445691766167482082322983694386205199670970477286960478789139678446727741795865132657944304276776054555355355537672001460223628623687985690472361619025701933100127862484894178840506922536807725047828134006807518327737317670136512719731226777289652450997919696502127456553896827595282595819255561700573940023568106517295678615631504144274926547811307228237546673190949266022322870187933376735398232329923297100410306953128892742490944927053894675061346772876965147490436137182202607105655217474916423803190896605579260806963877092278909589548898866442587762277087226429871033665128239339881942252475322620720457331911808364659394910271304240201144006536535113049258555886635429822155564481636094338642818765650117515812135375618686529715268350592678490797549263029375288051091109942599886483316186902459810282234513118076526637971854873110907884835480779852877572217747064260525296193115037676714796960268963522101727130991210153357732460336059596010171948209738460560571330136519475662744295303620494701775701250763676665811071856021952274949000004749043062854898007593508697481033568883200859177214717681292430033072672666403170970663237686078723170339666511181769997930672527363780000545192769562183606476631608447300815229216666348945069054609869237759770563177127299707000571210280819771443051570743015103960095077797750880205921751586510173315211164399965395944537225943512573010073625084202984644094010786387406279974367729690788220363790465978379531535754801734015408566927569493464695973230003558866010496300562198753784742469836182079879307019427680258359486303226577201253788422746230432371563850302737299087815470817391309880516987909529121439319655884438517417773584729004573565417070984656318759479930262778397720384119518993887077292377633026449241751765412089717049778264863443779832675309885202842780126036674962911693996496426893436121254720023057842076522021055125504845001288343849466440428779116093684983147037234995039991190548320356744839021322467246931566233462571527875115459574311118122120906164922404432823717760027385404501500140393222865933741002750247924408106297480492697060783592691107511089311794002291777668536956317509631032738304149008460855202782363195725430090450391358702211341908409646528380737245505554672829542327092155893781821561141434468865011343594194999975271571307883749867815259258232102958918966423815724238785935607271457009177947231082537478802893724326076608846845410887053226965254416790279070074108915760007407346684018346254737458387235243237523582690152693248045541233152862070897037770185070706755550109398248667086012065344304666141014210110826311426506450717436334756054091764322177479554479004226676394080815406347371544807205744976781961224013473196284605296819025191517019614806985276480079320213895577836323631523546711906205550154686061450356373194909265583244708302609130388805817384408005546559427662262123391036163820413941749833018650109606530212569233719234774564090536485514779909117189443201301311503123105479653011115021808895337296386952297270304291840110947497107361333041579629939276127026320060081645694166413197278404518988871426068945517780681748709708087478447500824289688453015415886354950888275698638065182564267795230471955340168016665910437133834978074383325244353130972371479529413866716073331522699754493434841956645582712993925798302084146511910774423232783389155611290098734907144545260497231384425642924170032764318692630971187466620598172878618716295387115091903513667686331140254158310069841055306657218265290197776440657797481053369295212980244075128454896068948109921706153703480356712112022212557172317017395243333321240005110090244824329329042394793782422481472467990253216976442691846761762351846513742704423717071147194964939079318500999483541274626485530513608506171111557504148097239413514599151815487383098485333058195254169861859831297610880419519021915279073612505554332438774169023637647785639772885583283611660424187025362402513305791475036095640619829417829773224827881266874591960523796077658611039074468496499228652354367153033329460945989093432323663032662499573177592154272326717695984050280641586322582982783248252048107381688972496843225084103393294614726136198609955731061708258756778728558603965983746159955662855798480023856573210952792117989816836940223639465508967753890430341326814302122005120592353160328220801872411053563705626682185084495199381307205408092781143227137182974698229459915245876599962089981441928260311026984200237769435164056397511928285132354167834259957933619112021976704564946044091663137768641586299240182816440393247769451292918366446935225051865992044090319905823596193235544386859929022806943761532067537361040466905954604115830183142709735328791178789622432126357824537187762371880170339664372205241226202867072828297160034206603038659924201169954426272441491082836275313311089326863577014717641156507360128100747140121286268687747381026048819985110760826252119432692324965829486917561885021007694120828130971746390733983904909290461164229151663865541953057778743719193061665328275424322692152649328426959960415168260737542465462076934246563310252267007767535509693263726729334556863925902879618892566928934000600841807683202568042808116053078513646330536948697050797086179517173110886760647696692395320746424358247281753308422136527477916496329733581406230308617598945868596440237496880879957780415229988615428400753757610255888488151564422070585957848255553905292868374634297977004387854126364377416784462302270238727357795619883597886062334445023295751023159419373761065667814489164079728375212982489915382519350905667812469505298027458448499557547902355355142213866805577450950652900442875616815878574548784702849996533033061425630809846872673962471700351375153209839892835421252410557253779616849422945452420551737177853070802192733113354569602533916626281909773294889814257933820972014883221564887949484162936756149237886987742793734986740322201760656824082028893403328966985189770936952562725364675111000808878278197886125071369887277972642786096461733390532713543076353814851252698212407941476574814503341287340646171542881447082721822944939843772303158228975176735351714334571580080652220859355405262058372530058855229163906690696383810259078080412341535396481707259957102352149582244441117349447407481281432299426492858824489494094943467364993135612148208461286998262027907446808670695084979829528138271798747733331269789217274241682811563623520636889366672023124958804329001900414763057281522265686594724896514404076847465835887923231846167492565585750690840672690355572517920384558690570465012950902412126306234872031360403000843428289419037353286815890702397235015626894778476594038873954283918823999081426800405405179304402420804137114531212987873704728519496025528654106332243471294375014206046724904844593009375659152121923309321353542192623197521339271571510158241210426884391057930329238238490442338596453136901153566744427786746954103798257158313488593062991086958719728133577343225904028129308914768670244592887048794622282048511197340995104824393001068789846099075707537661811613568460737408437083584902902870912542633422845541518015376347567354451633584192178603233746909232003269213757529586629783138026114089965121189081521423751275163548616869571711272220782108071715138432864384116988484740937522824161313299006680689549621500480848186399856900130334130586789388689271718150467608253915814042548903097551992287109921490828671700629236665581825329975443910842759257531732915007203225155142189041775734881108794351897776725660336797061354559273379704883169621854514531763942061608692569959318067245352103974743365190397917999558858693818146040481388372151602688326037311050294786301644602064166625644543573626250143139915665304462369078578913639167177898917412495982536846156990063804085798882121092211676947990897346151726749874251078636850366780129750880185028301635377876564401375194752041631519501096296466515012472579193512573534080196617487831764652230732224990678226336211332975433065764093778146533853611091452228459718672384117931053272199794477446967415935368452990811110525179703772875831684900277591399370686376496532552896302817680140409264754159940245365742325367614048228508614319597589572197080375164645352179771608942540166818793018183015405319575475817838283113229059684734060560752524484831531806558264715221127738898397676757301771888271936277780698585381925994864547393437384329853634650570477922215559895336426862771009322289460307624270867589600415884993349722623451586652619400192051473662595872150435140302482663941998423273559471033625238009712960711300594183923896729412291044707354869012129907754328370200640872302639925034957267189332776592338580788216721710417945244376496204086510929390326915606324695599002082610361091845876176629393788210432598013994950521036369311459239518665978382059353417591011586722506667132265896110358062665963275206439919368830440559582262333810489601110444899060977799797701486961263675330718629749511512218835981131186941778695509767232631926069149131778312399219087507357107989849134513752307221620211910989649086634539060365312646956690297866170295361655299398120912221904947745621654215757356661745668857330054752081501311072072833908551953983080193039561325041146822741514076618541618335876195094167526964063583087039769225244395497273533291863378050899682062815844605038646689335301130866863754475494398076631442778129600058946471043690214820966658422704580857839030514679117649720156073222248490890843735081262815672254583149057144626338468478946432460116788060305218827037696484319596598851159212995584949061325279036274605788496878420625386309409678841601872053810448410724989265062982048161821002123668170384664864373960985841691550312461986153771229872897899442238567173230479093817363000562453285319631365195233277616185497851037163880376700285035651759281882317462108263199334350090571448343632540545097327255518017375772547291456283994909489525173508982641381113003735651635994199004769226817059611303711387510258186439268297649168885065045110554204520134796081991373844922819238351000585923281268610059223532478582279618739458934134169358979434747066547416915700033940009760899822019566791634902347051857445573030395934321182536217286258969161118975536069443868522695677898889159691731545210146231145704980514562601061459744185095399265185541462365532553223387767866230055782187429684862827952401786118194484629931060561621039908733457139542711281668374751576297977320458426579299687538061194971850228686446126752350273443344837723535547497372417122614696641378412938980104764054195209306015986401357317690097277493271580550883078271482621719103867717670363022798519757449672830972087209491380255525469276314142923184663368452037599764130546683990782046221355795035919954979534925900609955951517040547451367517633498060964616861983165565051909759963577314172772661071017118957780767750283379310256030368946361316612850108918976172600792903828450726076593948279929205883125654125689085994365101600625043470856969880605680384084575839769597550361087319188623418039719017682187639441236349370010780044164195698767546482084529705449865089739183949232072070182138394241782324345004691605557673680332601427504698838229752747691288297219128232574034621540786720154734223378706298507901207631263081609642121349813197530706346170001760271109910007022607631010096582314209423110905568367366865938646018106085838426493012450400515974518451857114226219118537886415908337749417146630935979461475906672478423017961266169328218962258300790524776938306835671384808840383150200384077020942704540907151952458162785276565727272712614539927395376854923978378183030942261977209197657638491698792854067727465687772115460988413450999795803035542885167291525139416025656145311671588843528605854736791097344181920624377372261435602162998296509231536706264301241011975565530720060151441498170597788293191643526499434950185618493769812617765990791558115401357142301436672373549576215430789967414856322083207472705562395312120860001972409636346857254541109810391403464305592065862139288081946022642901860191818084965044395146081533815549295597802733947035345955799420502862470732584488518502275789923715371052190403676713485520925095878207694174565567006293529705219145797516195986675226470357581331458445562033839048771362844671706640993729789375807081252697178321181431216462421838503564447132670455640931889304721774971824022889469448431666628269407222331538475143191931681109205778546943166032511254425450262034596533266182614784384992168687169092497586861353647791952215333973283805777583740333716142148689070004759012724365302242269658610312656883773910911189616564082985365199769104637866883513088348336051463372821463477546008264611178867205374169802307345161254186549241445557160085919996998514141791308482404569515194355987022189959194419533103887775717174107044798052985165602351527756298192214934917814736320327101582814798193262414733069173292024951444176136460467753144830836224785566199724853414325216073322726225185703418732013876586837288585876995336817173250635611469656700027863381384838601200568326847899394268915619582590447407013820837734596837369202079658401917654746246899816365861538427603453467607141226132377404067999471511117463862566993964878214471704486726566606178835063496253726936649440832401178719955291512193026222584181254798226057964954721178698243141293745982477745341255949513789630400625780633150377646864754237020902443692721301461265811151230302685094822586248711403843429724659456484452622531210286625628321876315754630763766942190566620124578556103996119593813676835349956819707973475680026105179591649901490287316135193659224705910334246464154605215432607227130342406231037077344953123854970559674722575511497211333238822734949219658324876297369693392192646753949391864561160085264184645601528629109254555964272000649528412079646549100931746615900959314044194284990027945003477742811119827147105716233190148653082669392234827866381840379186814317002087699086974405711107567275896417485520265155334969414725393352825609848732020224752713387674585135401864563240667037407457688165547544840613514649889255458637891276184635045415162720207952677269338038025249435650390101112205455302968168620325350504909113823445670460847264751604660642243118413592597040079645656613419935868375625567858589078512915515371799924290284125479345161699613687746778031240092299682309437832261820860957532034837385422050339661929097298048055390314085509274736686894091977731553265672615602840082745028224562605829504852672374733411086457971853221782204036640226975447330263631281546819433186608551704011250020733849910660552628139257098435161253143920562489218469542826477456198148803406964715303414553815855031881030997732978044938441973803107757740329859494359922076574494113957780959937802932554165871294794555065401450188050727326224929317402299919634126661932914769460048406683777458180972896913190300815118106299496878654024906737526919627539907999722492051760334539013519991547210648361273415482799348902832256948453687612471415158318863863938236455760968095607547938328432697515654263722096578886324149371493180888792550005226718805873404132120190084824176876781597166219711878952826982346526139241083206481121442014633694638879740414475009589878252079950962597040290322579390468772345581917595230686919144935156317465055054981822192460873095065757844179923236309917295444179242608452217447788639575911723953026340295310811189314233800425791291546714820615572843885273320089558371181869271456981701185725999289310485855097270839516996548795164627313698039386255658463333167469340202048045796546508660537495856581828288617990417573897961397088324912892325779426521883925711571873120171236794356905018536844292359542369324799989795389083904654834854464457335321194508510393777450216976428091212814854078933165635981629056434383812988809650373427137067673707643879243497995727341248307567807395476023219523168018569015392788225445240649459323414320587454500445908216036673102355171254686198414362577927889821635758836695639789733979662096468717924344957441085067174542290611014034098760451191383215953040767470584081332502513474966377834210888389249751169552384291162336537075043987209360836432018806192714688550336927740848145601353400060224888062051313401343923119920481508803576304847806209703894963769876844512431868815278185563938080611524429736349394408301487493582387422765284672287168067459770177254287589180413771520227736857131243572404881914570742128915081636884493210499846355164471896379054460186995748985242162301963376197055596155793907362877435488541310842550012587152933187045332019599339139384919409229278201987750649799133238084819006840898235054468757920576387743591093429198764173800709221848616203362007352785095386050301983563792025727728533748540637421216822455576552205960362463815676257311383904933357807290524494865454810988586606608138313162657472020923633946416979700284223927156132067021774022375611307116360823781734925880911912084120918172237873059613268170332713300346790580604916436603189593854914325172185126697707569915695585224136965932076987539586568332559071087212130704107532572043035615188911954276258998360124793255780668733499003340093846769947845665998739335384902918134417612453398520142937902135534227402112186744666618836910858113393061263019749626624093652871886582626907043384457099973488836980095191203848159902471955492980400404630528810054793603606955285287597379286136458760789997815661219574432943037482109167016157759782422478140616239764596352518159122775544359530133596268203159222613359407272789937069941866813432030111072169672958679856432007356406440423343025310854355849094073207535345929281951029202039526554527777250706509473166920308423931640125536480817478458097361464641795958167524413624461191271596540877850487543907488701908901604748455561676019495306689117486015769341454271692722239239435811503926833963653672652738112177443524117981517389501821722952301983806408062263990577300843683931596767077569380143177679744968292959691965373055141974771056661835417255397875997181312238346724130377806128984482372185833025429460069594975140147315187677158828587565846944611198360906460093467952095958138312856727296532539899518642653880790097458668985825726315765182374287532295676404648026698379723630949211444872809771843637869704377394334411984480472400965932423053016320541933883206962229093806984847672598539745095843877449554125051574844707258982115706295500116585894894470888858025883182748517197771046071047781548902785876659688381291858342895156586318595311238181306185911254060973260022849663515755303367870654143463660124392473492948190621076343413536210832319627252993394890068046779381566953851625109544603386693647081131729335789695431554956131149247124198216765793047563141910554412135848986254035087348682067636728676344167994779601317562473715529468444717606306024124123738952046323538843532900669255494998235262755781445536201636795131553108079401444264123423820079003683022233672766382633027460109306795052291576743151248988766410315346706440067762340687232376528859020032632784631730605973418923296485055585287655612628286943132504951309337669089285744940818809848510263831802190103678064539056844847859114601485394801977176428035179848105673626042121790276774093490352577619578042752262564828396830618820898108476081669823186116191277811798114575279930931063674540970428789787213550030352641544441136974822216999874731312838251617138441057232930317924317562311542326335300016531734194007292168619767515385043883639463494734742407529251648357607197385152182401012106011968279880198953335609246337520530221593009416853114177559544297829504610536328468335604661141140542575953085392553604318278874127406012699163752442544900401878312535230527524887904202926700187412676683632388632702530200524935651029664718393256336975048997471057520987653995565930098764021156668845045163744255405119604259813750837611509512250327671530727565486494601421470762854329005169964173269678085341782751254747038281589040887097941568022869571919922377523014929239569798374088694266151536194479281553384490854377224521241593327137380042014886740833053599944975514552742340389829428831641112829993950347892955732149342272835196348347743177407894368386529350540056286391792408522308077355414289044809892779631587618418442971764711186976745457942291433441574952386612230098041715718008627251909053900979504302738301951098234768839243713576797253373656046189954793154800888322727612753006012743167850281291877499175784589284348913704081657494847451099122390776787332618794335975058234935708049349289417253856323147220199259867330380892510263432800646965225124857686743700814694052330909252952155759719565232381204180590736907296158694126498524235888266080840364388959050388701197148502821569218480502454890503288846650728452861010677260881225102576040695646426416035058335193958263040935767248270452554160649080490534588540383942191938660225269778950485876415951561386673506717264128311483317385458922562284501376820289052388715833715374216097841501736139285102448751581954417709078812789092646537733694565794338636929050581177368832962281571390952708967806181732286821503565436669830184462006647903491578555512845712178502755242251439951148039488571120900814593304157583563335162377356617382312113947775307564182327241841976294321755073225445927207178981848127420814269249500504474791749314808559570195750075053744907776706624779516336375271705187467646013368355929306101849902666699820140666358237805522434305059085022776004075998183298053986544705409892590940214306643429258061634853257291754704254661993075796319281257704931783489966331768926242766644856738932757981711353806142543647134878348324440936919795831040397388763314289307510004544905732475807451780424184266656391946809631935255308093814872504794090908666183291240874314500928496285438612554109213258871847431147931536596195234651211090260812941545256150221320954364989469971978595413643070923231155586891975561154962424083061361133351829229093844889395370114603684544874365714875760585901713649682436074075865188195726249208617797315339319979622292847088155832871867081496305328728481289644111631432853444094733734086869363124209434213115341396881358814113300943721691133095604966711940833728667631660824083866852224709068676372933711210210163369629571924676412930751430961588490434143146092655011288805528703151530908123641728872104898743556302200469429286309583043863920598552242629718261925455988112554038985850913341528768425678665641538919573517759951904829037163857995793166771813654348410636544005189452676795776195534842725219712201602590462835967803217978650461637496843698468850629813449809863901705834546488573802633529237261615028677013942064749861458050342731355524218516119271102668328462678103144201966249159386954475431253890358118343877879942574794081778296759217582002377639709761920845772335528212968110830873499252330712327738739303147778591165808230875320380804832845030164876550102269952788655541447790282481346842132105520705335432532776613594819398434027305888996258322857541172751770098140462443391358311526191936975759579631018727839927702087206600269515789322658237239254782589927333485528209810273895718160074055984805461654194302207813162965753097858810995760768694543575244643073368752260971397403714929451178726283939284342704690278454246528789085421247371046680636783886737767094430683321736512650877050615545380982902053207142751252851834684172922419332541544780004389030890986460280643786800847730155835301670544394545608922426378071194777528247334086580153830548325377249095802197820341200749887424025963986058520022028439769675700635850287278372571415113805062109021098876929886837479449546775105827158353715755360305322418149608402559719751051433852620892141703819028321527075458284663315577927860966248420103725107232006767972070578433590386820703454999948518946436202727216631931351172796529714659339975249854050187241571141086592920452375844537630227601743093213783910742858463128645927998405024748969131183257755625799708505573861924364136224023822962957750767636790092328883724753843688901164101971260608970240343442815900868482006535450390993417818198686917895616562221452837888009703911765927824913794624220793014693257069555394795576608303004501611264282358524288535438451394720924137215561138478402763790893319597866168212824412680381166167083299154494015696665391729176542780648734115008316552272685199176205159488341262381120531166588700126068899598815920136902826317147514802674203149314728573989227019093275642064215949444047720178326842489123033900057631497231372524674432318465501954759690404319369321573703428135131585905479104499710403646795275322559398748435503291945661894758785101216159157461437969892422492525550237267992950815668070590531162357050535940434643813697069847426212027322019426314018820945602718317460068394806752085598739584345215062631534092689413514402022996024673415572273184098906246116558738401238625097112375720772601587640467390918076265236769420415743599862140753844775106547347746102671959955645971363220215575216715027932888116687201531270338507483919463230525550727245960595110339990256897972026517518795337668919207512094159268574580041893155629703863380102404278434122867588351430666662401905603723307769954192333548862946040304494565957426873897382527310973999307952471618587597558498591402232728233046613844827329577336940068415655905341301070293292037931258471199977037030622219850136147246865010880385050781441191967036654778647693241589621393357453352509350051928941903783173024168452909452366859022128897469423081787979459566261856452159698848223522239014000713781212306972251881522500736582540736142254168480932274589612213496564607812968518508596927668813843569638383968364758127236958900234756797199547652548316592876497816988304663532338115221252182181372287575943302438687803147924015488128979697326051148539764880104071220603230617606907297007503494191538643957985033460088792993266026282404160035086409335751714079909048559016959394649768563179047338315790701082095505335678518859363754726862777176035933211227219271865288777994655851383457743673833506017723157174104823692763097200576819613423725706187280191246029579754460785465069000246697116393294134171836969252390321557213591084119242316195390146083095428109502038975233983536677243082810732431326839796132242917974424366177823589896674579821049876072311442405999387636108563983482371864873022062165269634196243646676081759735393451502210249045213147598719521885122582621008876362521766183029458475857391140006306952927940611221423267866129817199739973972335363210819117274814586856813210226769418156763917649781541588187475522026726674855007600196938907294601108369672769675173894887901556952704306742661596426395067689944675314097909312551014809577816852676551446467198200696724592286447172756490878114619677200268181734397966253971068279527420923205309959062974833376289668485833415931793833480428315300931846205003003419364684835460680415992432756355766070643289376029586623408828567137071695927423762280573683973453149818759548576696570175786776122709662423460394745205938152219546981248410420039474281448715125578770915689470589926324985422542575247864497796161853656561273097830685918225695987099829445053025306050037490533224931309264259748992048776642609151993181840406377791611490594142511408109693677902843490391828238114255733907512806596217324026995062125146095880285369817532213740307301504415667385197625968468565953431109661022307671406459724491818772012038265463275442336613450953342640519041371198473899287620244468035360193908482760261693917876479921266629034344609599090260321821171470105916740526911966580073515874309080624003148959750952461401587641064760321068737963042847062326472225801576909651143168414701462278330022629269618500443782664199217448188005317418702664932914174516681591804955669419003561853814705413764097741763396740597817803952288482269186044202203876557106252025285579282752186775863490475951381633376015654300680972872052585610062213935406754802418819565927788408506352935978392664495328218656264648107742259062769127329882268300179149880432025436641351068411253791574725938139781354904456762584308643403451240991595236322600253649085988992337613905331176371285101904541930321398332356875313962045596160548733534652508531276776181681764325240336174335804210256363670328600847357436918221305757692718557676752466381923098574152562322777447047495285572627169530430541100745465157665040796449123552532835661099862508724755253197990590827303780234805625889925635060872368188161817642260456816605114073259184221445720340790396002100691077906241217772998916849921324242200097251151303091859304820417267482825462072836940233016693511983166817687360766601654802718839600456976616507971160560458721297083740750279206394844809297322356884251349434534413639982029583338045539427746784547567679549284000069975512423261984730715109786606322154046715713681495229130324628710264374479007360143304342787530281907363884461137508489520843858594098542008988372285855048015182719576914328877134262658604591313435548596965654320167281287911275452306146408727672720258433184075900690677297281039125602284182302794392216254489872891866266005172085785880242406651614924116240950771984265380507205331650050408328097572965467589401761699802373818851063506769709999282518742546500657516752027718711539158626155630144599361747676580249628635655814488816744998775736131568148458222156499185576979852659054759081689640719696498983504163354159291042860998565627996741277169885380126131921731921801597338914604382798853190846337154047871000951727600692152859887923524473492078329605899345877096997410587849186747576340388426293992257036133599245044522948848761204239703689316728946105652650161218928628071394954383384144546080608492032105843519099083664771059788801668567424571377198593678479126945945567826274163418994147621248939484500344794245920678943679280725431667904576705855928996027527402995624546827577843026871304174705685260305853171999832816615564754153134360416852152504484349908126646781572485131674141049007412961228719339560765540277852756403189227133463352773238281857210396468085044641789135491051165707529884274420894965797446033702816607486778663803814480835875426274445913399481374576187318085647360594301261944980969885690765504723098363829437066731208418406992822244696784121046495810273530051398447367081123874512882839202930679609848845027907303451787683542114519707103658330920281900149096944211723912122207281723182653527350090639314174075388180796105717396507389392750709283246865650972344821793232935193217153971897582736764250777371575778938280286892715779645275260380643468638723095369829959515923294291455561805875949167782457950651050738720352502711563265625117398669668609785501573368476352618808703705009440394984254827068422895590775745061095019486758874287560042844959514443633547500338837138420066967996907653516960280379830666654023209857863013261447549316602361457012912809743001763670332079220525172809251255051140210205001576172395222814739380729463395753728359976108832516433535572045563218879911077097542575753274121366880708662095402919845234571396270171226328587370853972501779673815194276985074637652238778687560889138548515172615675823723530324185345581197872482298193021628323548566371721371538537602685361833143621639012005939533959149214154874685481045697901904990827981778117526612353894909098282446513237472320386508425011989703995444281603985511277101530288156376169810434441883795549173057731389113426462821171546526991087784268865885879569639358844055020996775171802840447805001054974511201412078858291771446010481220711470623431136781862367924200142154120462930343487382990956276222964768969792150970556941471371240952502314664010529313162759756836446206929912993794704753721731865282296932617654299837605554450984714282415341742598968173025348644300481103381548109285892521265911091365296296133234174804720802465519837226607444749708376623022642712296924832994100270873946838256861251274752124739452595895755859893656177140331030090145192424372257942061604869517061452397231248984077499302422878296985370585837305604451418953152781375218253070067913268086486069853480601367468514362778561536555991443939698191462876854586396324320913750136624694914123169916666897360827373014446993919244218419020754046251487960613090705033627181218565463801317048537378604952711422173016773294700800365370917833611097725027240968566467348748967439452163315091839981864801308967299250253222754827260478940391591161914173172649955408664313822193555416891878698775474944856999310479864240071371426962538239059920640132791823786492795667559963089866200068685566738858635139760491536104857085833708475667618033967432172682007834170932755479087835255358008013792810127547077326229302850987793719400656214205054277861031857549480128494220546570639359403550037560335252396037697737802948072337349781896678989493666195725949376638965946155100392063774786454223003357949035875748247475806075673111353041870193618922813371324340274241154156559928331440768662059325747033195105476857376843357745903512597922941278680906663417581926771105612781375617475523237143618420631996974832034378987610954630131171062291650307009023126389997920391699377179080547540394736078221060950008525165976875554335860883696857610525187604612612706301371077324769246461224514812697390475832108444047179591355546363268767986618993546032557803555434661326194657555332333249233229449270246854046843460176825490207886117225195065242214611695538662174283686581849795855820036231634967730841821405658855625404783128977557405691085586147103202877433463752514659434642301872290853704465018191125418921293362508299207472537690772512718105061761028018389236220688711441898561527702544321189480120833890153612419478349438183364658521502941964264081387960214938711525873741806128309609792381644914768238553448276219092705984196337374124332412135484719878719370060509116296533744541970135433138520728198129020868787512032154391507763169912224211846024185397257606154884015601447835386564263026059501926424595938303093649012483896564377660366278125741552594635666296453082391230658698079378940278824442590184409128209095917146913992676039582360741465283951112556091912385009593153927080216476622753767132356559773304167937673808923945834837010086380933652229195209858239589711577376902843001263836444369586603365981025087069511722946804975166035829538715729920225123631376337881237784814166795159156545899373022432606805563068457047922157718736877445884553272851541874023197829410468994768271211032268835021373137236164699970465747989027417994680862815964525596772734903771139473064529622297481863104758274777505848211106138551823233463461874182451851545365957010959919824049629934576862468212686016797551875091622233735600988491482903057402648585008887616726306052977604371482388197243504124733737209372426424845657068417414303842358979107634447470805597212737838474976060831020693805514060971065295574430951380104901994304500706655587268726807614833095920733720242374115860167798974879343102562571174605958789421586387926278840511442063771513651353213336104340732173219510823140191928202142711932520438178432841693953048048396891217773903909722099757330677664700277270440335171370098062452732078854031938375683576499461577730047939835431631236968058254793232338905179823004988352752515920378118782228814134934005254751055933463789179027475083258462622871178719319926958129496303466933502050455094195252986271958082188595117454492399081140034128633532083204313659687838828522822476130318314160949572242845735100294579552852977090558565701555177450750570656937959788490040416085626802248986289931286120411729090261890525028750139900157074347766650584092996882669311504890687596739249294188718009153639327525439872762373534205285701973178058986601581472035979058473129120592575282416551542451256096500633726382134904869366328263153096007004255901010338952803882586475124721267270971394397693444642290956459396850299367620938751221573236265686061505160174585118972095733628086347558307860058236170820818130150888181065809392859617586720526777661427699015354129345387896506464850335699787261727942532444691981675405737352603630920583126932528106711927486674348426884284465396222790226714793020736029048793992500302602944999826939540307837580092961546725208232547410385645212018132585741837005195038315267577135815333764317546036998137270900035978948725492101002911959439862426096526427796952553861795623273582334869708334217382484596002888220469005878692430028526170052459295938188595283287398028428847862710512983402838667004123189700790834891048120916336956853325392692443500479069752165648284008682511848112766828022488023125524982307881602594248565126646017083538734295920426723319139461962408660042571833021257178992973304727931645212974435959967847797343475982991302371294569461452927805850079090237527399877862451153473623129478172342536027409621831987773714794096426253560403246592014334329127227133863916577691870097698997520084430007590389714917661710046785371240137211133349856782504461373409121342463360551419364208000007033638713060695341192544188930740566853347051126659407211811646761222426086346037020907476656935512350987843639070846593033534786451391196443262138925430604758048482539472261857234002934104224350768093530910997254461415622844889381412520921105827393390582194093411125691885563172140704972265555849508702742044394783757362886475202973752925502061512260467219096815652551177406076189075028605072811547868494852854628840505546470957497935000656887924688061524496595826541190872509754814156421388317449697021615462809821797499282128865465468135912168213788743672925387873015755219355292836070979499506393161835701266140019687230633231262703783226756590434192807863566667956422225954328711258233555470225568470216642085936032046952662533469626023692996414952396177728997604663611401339241209173237981069745671720627759689851152982948240162024049073024975710969867212305469785531517631589887320618899354257826166667477802008999013315544379754588721645320178640356317197750843304110946711356879468038007389590610436684272348371658399299321984510059682546008555118543632963464348758798036209147465254756978859833351717945354797901003112397954066385388409063363224490535772611005044800937278825997374203259675723117103140465545147967907064608063508156004669738624947498040329133195046939639155204682845738811320317287075552942031594702297785924523987269877165463145411480681522079334630789408043839554604459549767558820975653900458428946285504399363695643808403592017789293094121544543763807886274672717504328143558670319386808024889740320869349010219406373627562598438752098233201936560887524483435739280690769101468846963626381677142711700780864109764447371392639654127506612729694250496783818919258083448494395786908479961680181149603043733866462443970334899885271129396258784047153839470243412034262740064743245388028954473314552342541769903844262690209629704763368687327298042864198783298360144977783296991746784279227255784978430121294454245254438937983516306677712732196179954567736932990150696870148505336000485753210618025791322374130003023895674253232066412780115711103332695165806993103446502035223805119162479920098379363508721117104219416948943307749635879043846053712589666302099774149590283433709953722166940644483091123170926435919811044936290678307800153715438990643848308440783683101659058279581383174389126432019979839414009269049608572419737483869577493741031017674064221956783996567577653620514320527448587894790866909894871467490515252289610288447516419379591340680935261025131704893364105025401646372323271871021698930722905623643472129352135993853926684812215713717471760344772782139445916138421566580212124759058352536591447144492294127743633898421598261627852593970662364599403716137608364362708947901088637694901407239535614340029517570206524594848769596530726877245362836567994410090919704003472770171915733973573981254438624462231890755213075933285370423420756702803506242976125992133618728221355394352845466557732822016762409647452367309031838789209840707871949451893375010071711517463098361737038048801081656672426279908886639092379142184214386061831953594119704046338145635410982939746533803602113117097467189914733546051965868952336755605724101834892301135857665145602823748028375668270571779553345070569718315550308244835644119146415933989129309967170433194329519570758404152564152508975683480787597932073555931210618067506942918658343299024501642267657027635417290295104482146876156787255491952277396950616470616960670794199952530234187075562547490084695938733081245897337972833345344776218715718134073061177047353877205495105761044587489792362584517107359911467565851519972606296946343826765122033374404277397112528567607866137853407528726613822019056252837510613106901719685608584375017538334082033328395307338596132378988610373580274584721300598799167061307071772889730465420417873014713764908979981558686938968743075325614620881533060674063633655590513304848292098905893413167061224062542569147434985454724398510980348525324954881028726186549222950464331945940993644811026122926502181968835435249758493186175572690912515599764521452110288688048605480402350788589401570481469959399260255715936051930779850538285933652306128810078466621091345123678776756054614599928960318670569528075078449080743918712162231442895927843720696760529585398948931021758892792673119235023328098492511241951237326371570270983779002538486455153504196887405827159538875223754680095298035654790321100381593503361387721152160306664738328819623249031844562106615548312365240638082201509232243323930700778002961931636717522087281798632975913007673492455827099713908562151033962339422420482042168020342592611176620843997601855679103959050512728463223337281785733531763968259743018984234416691501494466491130525882936686051520074752182230500288614654309344374812911949964321208865196513995117483157956934136155576695421869175022833936024920384407692487834103040384074648339011667219386413831263844938583607670440896961285085241825305559544853906197569698805341728414265246748873109014004601041828061127514455084792228925062777436647371848120671937124067637643722363614078535220354858346214498615157253483800105603276630779076046395505257808016440031627891224819285750472134773136088029462477511889180420018013792823253415610458980727168749633303880154780530319844652008934300267626754640141390712825768429661661181867223445594052684566914693947434413417622297636944378607102741971724124510675554326550413103551926166498586845551706601432226187240933621653439235417359944488651616309176228472027226527762416959255532608235052223309188015080309632630674530714935490424053986778411233640672266543574786918458978957302662979956326548566348020098255381939044463758480651488053137349285618074792670492075609726634084823221798755830674476745010680605194883915485266346825473772404205547925925001507897364618868740210718225750336011071942486305769270361899709871505949954405800184904009539592673402774413660383950671766845355518624535004996821328544062305683637243086141946707851033223471189091372643486586975370591334136181422578067485119238311154665032745508644287031351237439148656755201261443427010022033828162189431905074667468627519757614026972974550965750136463280068252961083503962330030558661310099810309851013281900147568490612850500850574460237419062909438666464827808089273575576007873362051696147032815865321421909569816695246307202661843283975987863646053797938244025143815693031746164072110897964124875783710868893255679601709657910502775258106840157853515726554733387709082074593240801714759596973706101523712038504655353651583857653718005111836472939020217862778104549738445586906577123989403656882177699253629985301466919477838447247570998103326623260404869023849430969176701590931925893116411831337823231435207297505314155837732200947921887036845774769880507935715983011514480425337641907937389694655915954583326135959899598719267135086046228473346037356753071500326217015692696613664797509702651408154519257373095260399678206987865123109497332060488682631209874168140744050922182494091586322795270062535112848528887822308470662766999332443996141440526571054184021502813993652289871325997729247331686327814429235810483571311350956230827075693814853497628285228004812757715616277593893171843787264692881203951274125107024115940533024955636281921456921866330263025197171439117890475743972640507809288182426003267586108049497771774501646277292250198511614706153335343277605667918247066454131386699265419520288067621994785288653806825446149919711925625559512725613533502056252536291589651322300977739039900174449232645477576232201973898539961925994377467866519840820508577337136947690139232059396397683650178606385093526395009382883589077057404008553403184329333877151369547543159881817397770291665457009458185057362839292589477386651952419621509078376615460237276170112329338535103283627371225780226287423619545649151975840021828846980131702909473024544038945183613830185620844854982306540510865802634363276944882560131958331509538463925226923176130310635282867067801999749422792993817042187219309757609192529268631977673836049069000355862478955013408424912406612209696799243855445429341367306904500496441866155616230038970765636049087345806638359773095776035815295968260748623527281028703397217595324916984130405312843012445986240841720544536531720632136309407668461551920161080454721502853104063535810986046884166418759840277441300870296591628118726151716388431585210116927559804034262887252889877186424771629317296952055853720040606035390941906764512245551957077843478938530863397244286037783250633913148231648023301662151078945916521812403694592018191842424178353619685544123652384978752500146928890808197029574437012207405128264692035905600172168252054951129094683348483090630742665875034845532225159282615112019580190425856720291020905037030170924938600748631961778547797452056728484549633939921602123777692693057045535186414786649266947567556233657198571134457433622211502749351799486849900042692391339606750549189801488947056698526900598100201141287808598075627172733649140368295481290973576770143895731497174048244274139224108693908942953335942841366974798097394839766445490821105752634570103665163451444919601570346405477174998244903571748670059166960443237281737003384191890090518449884815815690339745813399322968098337590518524178923955232645820505368524144219606591850050774643708080413163053152261769411049964073604473512790063204874542776563760104875309719028463147445585531499693133206755423430750550626962398394005772312192936265119300369486998550565738479004081156275079958285555300452867338173115797785782759666607512220655722974243613646448158313335952885193275109150186718404310492232646669744741180803882456136043235848572121430249587480119166109004206858311223749937280363946609917855078228243976619114006251444728142412064410028713229963662764074006032539805981929654183561951988529627088499102428588026864436154015783458163770139133815929005153371246713045167557810515835454756304539473294333269669137222644946197727497758084384422958298269578671581006694308499490605396209006329830050067695835911655548442587582946973362128552483349728227986819643200621727783691914494661442306386763013650254034348356685415326089652792833629340174568598857567568728694626409855469963638578664149373595776432781422457510268150931131559973117321586955250827799767087369975778191206550025009072994300262644707176844083010452375597261218025849655506093396715986252877860659304264659937271038612091482719739164926840085975479592243462822220312047849338216532550407706118851100510713023915287617791123242974937143187504726111953013098070073230630976627057982936441759115429013758661555962750414420664925433515659162666895847803073134823326274852966271840705726189286026772261652825925919092682724513595996329681123180248074657379723275829410966634107181079575948587193592331937124222849042167983304343744514399216995536932536334102791526416373607611992405820493885806939291940107648882533339411205566249252732859614042713017755020199621584747511854529840827278672622550076850291146314666881712119547839774105027705220094632756251062832198027943785308104345593644094669390988293277424894859438103825534205132502276358071733511766855529892233764845433202826060138991808228300284639829730501256114436802418451966495641879480898742701305924169563803558079448118523063676094497871946291041166114997875930285128674593076649402621510764542270485106965104434380796903985318473834394616685257280762033740288944944103300062520892436871723562609579814009136654302981144421981085602577815740116470338954751374360879528710079044458274858394783783150774322468677694402830550799159535426079111681916725652360103169849430952002055026909097999497603131611972617776858811031429863794295680405104675012940820609766813220225917438227351466596291834799627875500318959550494031007639466571971470562789565928744141110585911916647912459839776971402329136886787702138883672277015154862081556693768659196145625045730247818068322011189965986603610600004115038402440255179801178027618653044628797821985270330111487873808555731585335987379324963286126268718547514135967260843220449760721451511219059569611081224864859352290041730510745471084291541988383387402717177485770270235865235088836243825896618321288607481637542380855237625325041308217104440456072904597595053918003857764243065975473117939185985415128120919505210503877874042164438401128091050972635208886987982340916672656240693321764113973849608896183270917051534319217859831155196416032315250881933887015548492403061551997682238880812484812175551240475484245785536576340763326355836089236964065341605480804883245596661815555064690036211544048804302406284108606497864330496803283061292913011782633897635151861568419132451859786997974667674262457198352161262339068941868073048959149320615651390345875024088085356245565234324574198065042682701063648236085169434280858201142978643095523243907462778705627788478865483909511350962116449383626768244599770428208180535933439845880581593794636553567055638463447113952925872926979253054778238170745987426450713342198415181407256288097823485703142785325935254306280710362969388490222060141334407973215704498636341141533028852689753137699160216889591640247700176580128630134035110034541934535725921415582983318556847599702801446956412538816245057548805416989776360138448601009008085604147429729939790389581198812634381849395563404988058111056651487147820819958011924315122796613893367427988554669808812821195446062590571276421668504716113099166768878964093239889610988787119140336987862978677031851625663511920021135108826775700612150239600791128428741200480250766293589461151357399337458628139986395341104202495247008970940230261285988017387483901274660606132766508672940780838617209477562380474712025833715369963854439797776899059677197911582954370344647834634671084361089032568570433620075384737546708221175572136719168713781432337796916941187904800680151959533969390238760493359015128430112246531437662442034988011850745507250134950275277230180111744966322911281886813354435746157754236999453376853788360265493406517949164747565108712011612978317982284492800531349205870103439201303220730128155878329074778701003910746427865849830462780353792012831477288372573493377327983301397566145875275010288531424710802809077063911124650038036128824266328016010063064846944383211432544811057126557549053514815089634264125876666940234977477212663251597689453715361137073494862065947881240380445266600541676517412886800863286593178149545074436643161011040224372861594947421264027690258331639825784639068648319758883011660122154491198415893805775988040587619422695128729804709989073452259083312571719589787293739168627433597618074225899647524345203864313067925510249903355105547245870917410781438231981784000815639805083851949426208015599887443502046475900250398369431328389988117751161766838146937673055860363512399972168717764294178656179174174619776896557904628880260010698764387941652841615859377237861993408683948745382171837274159061842038507716175043121670375001175415469622281392989647853293827466380151697434975195245468903652393305898991523511341914962989628399789054504755351890636393402592715472790046372549760816074960012990371443187198192960580585633075176079593246096775096467835950305722122755971373752541455099964052031375981590092077461066834364289622870813630847831148297574034493086160448418972704645876237194916702856283681541764458421517624090619737265457026953393004160103109948538437749377867649830161581255896103793887428963844823992817053958171172648874107675012527848151870684455549466010218340105176447297929917666082384887071607356398677230711548081742628987717814340374712403471289570420057228990083401812418829036225611888052906755354939295900393617560575700561463888068023103785606203464526540210906227578781981358094158822472696971587806946703576641384998747881408718811033007034896992422800310881867250771844276169320384174127206201472510996041458458225726284729769526690087629488063259678407292912971564426177703519415152911686842826868785605640867200603424247646770670035864999179955666825330244808873079281260984491310616338302476173551210695158977116727000100853602637493234543501837094026848122003066695999819312729436544013924406476485939655605701817825257817949183420426373054878540964384648760058012415975378933017985267923925583802439782908302589075614123709931830740167393699738104125678406543197724606152807427103997407800573791925513301810400452879677726388942850934542992871217451852335972141052686231935972135841329230154532327430164013494252400807866671178912550754279753717761915432488805468051419978799782047367191686868460849571710781550675132200712454300117903977655866835064098764843595794281565772308561219996275788815504664151881566554871714486045823307501504527496617805266247652039228574972836735559419684523139344754261198335908848995592786276075658925833086823252195452920844974064549263676595626243801973633353825483519786355258051421842140994266395669377489511859605338932776668032670581294027739733376824946695199559988851909637148651816833855180017565696535096742952140022734663624320909349187198928697740588494275928488647722962830061981351080374182374302154678800235522789805596917053713743055919820742132316633693690812272263235670844453289514089736297597648268026394247916066942390469335113922165751064584264288534250470104974833525395553824077996572452881815400941686098540445150137039014404963541663847247879256499094379965155430278474365236727645987336453983452530050654837317249445371801069158891720789059698632277593459791936412935695012275428779129684183480630227624752302882682728019629795911498869876120133366131507975077379112080829398914366363716866467692824369842769156956852669015542998629693056618388441867139986608306133379227441027754904656910501914575105672678761153826997375206126415917928826812803328968139491000139792172694487449285595215169943858671142973997937116392505323789249548580884801442596438927434984255949013577099766823728138752429963532821760125282263338108353908913888457415410683847740687907287269468018044750932053677820248933697810062421501396025611290804734153771145669775618352107684045835889407319608561927883472862929953281114805378143753689781637721203566444628639281320302725767914117327959448073177655845562702899785909885763479684645519151284255324537901792526457114553008174606224305952373288383555944126696988498878780485638657920439149247708121730907003550569052390382935342861821698695154589459417474383709487741435586056568170152535917789562437812067520748326503844986976538364999317473016484896888287587699446801302608693868053009416055466565594990178012174845296405014834604494089071525005558790527721157503904900543917910621156920672615879278410399441791994930334440705571359269692396518874298392926132165015214210233887789455548951848437306265903684950472811504595465574072327364482560552354049174610823536243626085242181200462377476389680304304029003030339045101127438633197481727536012893845678194862499924949731760583956231554996272592456536942172056062008917254389925067130974656274642210445937993406171054188832275782086285273327059962880430908932315000054046142841909654137710807355956328953144937179985797811329830862467483156416620151272330420067277049374941671267179777918010009412492632259425395069114448550534515428160871446302896818872877459451239384063693053428111883890710298832009166589163630164228238906305713100331399189340290541211341755049122425603776970535955674860532221869517462149802818014040571348480047870651850365504928114469081722683561436011338563532693285855142058381861247413621665313293945557836444268821276115392104320095448129769872380728973846302139642965612068859340251785894102543090961465509936177449757173110228033488947739607534970255785373672648357356742676530747492539230428246028808667213710205010230245153012110076219565729869495979940773206214354367803717823442860331351798090701438489330053825732227057250169349707801597534607036298321357601447985125207380777854827987130272105752157395349996489909713125519888246668696046202150706424881861667320518650519034353978241845890815185426827261877573613030161145333298272038366050972111218490916718776031808227302230054184546748802880713791957534070003768528711714008123121466209580440967230638452980616870116756372958068951926741435371181873921049294949812006748948624589615553950805134390376429498444472300219294412446767909543576490303608354530891308389520585788570956717472942620376321856972868262579112032162798564577915252392996866342669193609207400688957009956479440121490286300125495519174873599773201478768802124206917995996417720489007640663404052649440297090556744950474325004047534891672663174709224493475883526335716862152112697507096170935526224899702052451677843827389356602704580973415020502636401846052715868543449445290443373568330250703690163337340927848022550064830324947265126261411758176018584834285296830279711055307024500859721669025219908045430885399996344252377953161050753487949644133295740852475875089078610808947113583415701025176458953464030650462969251643144932528762041773310702620813910654441920971667866976198914680679826893353297819431330782083584672419636830438012631949848749870291275703138530506391469498432232620612839179808764698756653224607933882182542377327275909971926967447283919774882936608906601797968594005603316140685724057351539972225178081959168223551671897331482669629994057700470436053364191828954467713712577785467112965800978517508236012492899929615793944702495139605017776086079079239951194273752193786397318876177995361981972553304627195184734502183561262940623609960690238443996320373471129339014533843496906871672025241072832377083242408082960021663663394542155858542552410489241508619176400985961934000887936505575666301391491878817127960891246873317789638045677164313098511369922533881522367848350583618641218694498958413786173816651284889946872620842749234644160391182921496591071572497786071181417241661794311786469917987144013274442300804143953793191441738248590388629044681210120823492393555462237745095536084614165729954118188299380761996502251746597205228253231689621136560956131703258663383872248723503001586139037130961653816643228550215381630564607526462605878348618055789708921219312460981007315062373154166409114824222551958131139207867825811294887376811702273205532252605210728977421311833467310620072858705721271277413198467674713984734048752750188957652774530327015784402665586213814078103525107233695972881681068484575279940854611828983831494630723132631257037177483065430094453991405381319582640268015751708579077047123426322274724962561213622349317011416172069310003069510077033617848913247513895929517947092823620431976149701792676104017085192365561383839483516217880608621658261768889611171109691970001516543683634876618636531342538590824172758345473716065154183785306761451988353004442336857194085897330986676458553056830357477404729794259882266244564608482969617348377496498776881407036727937353991274482537114733499012034887689255723308728571882303665140622532587305550026380911882100831827404552073812679272922179618637137210977482710930200388899321081913499055810376526600002124239442988258099104152495587068612818884674645989242631920266976523519893414538100871771414082956186602690188629566143758015310181712728728043328687798306838480240745885952120512282556046001598442773699147271143415603824431989931098589466472810104775626672130584240263537191924453708492016619685061715949124397015855685177661154256470675005821652738610294049267325319288901418703766182805665338338264285849069406552053143635069963630246057757510043586005908006186321644239593341802412524324536889888370314342580415947213715886205502699263049315433781145096601316271897440477721288848329226178530707214537756854193819727640025191082435599433753589984130977568884740607624844139288689827468772807909263536689817001471737221987521311047542604712789195068239703551691333170626942053480185151775507748206181500875198565327860188995399555230502029506552507082976973964849474579543545654318736964650957493242817523763619950024949017767236837467752411858761947359255587889633299699498436226373438706633712229662784291971062284760772766234758759258215077606310402345129660377956304747590071699389115221814738360236315429393371972527155291388673657112448302480675067652375146576196316338044298440659834661989795375277216706734345588832713427173399578462165767570520928012191257040155622665677154662328049752520714247873925859383474319267567988289717381179503064219239603494762039634073805430900319585541872459183904234589671003646948029142288197486354976706708012618033872975549765974614813971996854384203423796179365027445851997472001649605398242614119238398122305628071385454775626458567574414242064306411870587644215878308325752720047460163954424639021777972809271246434442667127654741255033490672496094337461813106946541819697359317760916792060975645170135346707463005843655925462306611584361375738750652369690616564110324106896377598919143680658647131656602612147213147764690772609036023487172916421038309125614917102530539888885391900943329646234001775159186604248816655143546883546321423516157240938812961664392282946888547148899483418986764339712359241957548917425499626987618055647038166690636377962457773363809091042717002172145637595682555756490668612706751803316371642546726565227294554839359342071888041265135975851412563982691973495646372941794880250652101941632054805147851138525506273819787313447318584937664684764084776663256890328795750148772842554444509569572660398677803715757993161989275544855515817352919834496044792474671143730442128214573072590768170427031946929536486976537387974481422565693213497833478461941119890210450170820680785090821765018971070534396859209147697317732170190257974182822311273615000364392772918909790970395035778539712532527917969309550051477196321933171970433697283128111910501161945392392498868244566474310065630123767296690961057795881771386511085378679832313421778164602605078459006219077994750627986723526243348106480657976693896237657072192460362872761473790011546659301037211197905020607403288165346937389252951972300605504633823500907440315217517888387255628541098125028332807734169548021310561859459275108939481376638982231253704410143239298769954206539647446475093982678361980637352810299849861075109595495934819062541639178900827567488530231815563315347768417955768190723894399247204114111358794175457412481628649518464843716072124059266676216994164712425202834979449665319350064953830671474825343602922851465795532783147667836190369116352935953142979832855589229459026874222223623585641838409565871478211805958868735017662155264312606302525835611108027445270966536417102842168648954840733974387061195588354726770723643259678138534704290474964924351258832833710612813144472008541783555791943129175088242663442585935438823852191263434850575810230664420626929206425157232809993832706772177485770683709726274221453958593301088530302384902438568845066449101855924632880725315934840055968203116291648326835676385293305840511611709448899047275808559202404580077649446286535463931187093067134325117649813165760471477365932813384981020281707806179267959730845942530052266585943362025842250912144332804899563568981498470221230057492995702180313662565273255463112794126491780018651372476113951954048132452855853409799270935030132383441460783794619567870926178063124476547310908736235853438030284007592757938684098635174706968817367007644143011474668095277015273651334302036058173890104235943595820301512895293462218320660141006855819483754027102192675721664746811000700772737782441378101744387212821724755432682132448437379903527665708157357644507879931037095213330934758121825109644343476268735739834446673899568461924142473306551203507936545685109395091804015336454336281073033737304018320223193698131944143909522838428264112127151823129555087353324329367960190201109151237984818865505543707515032598108385341952282292469652882034841839263759657712217190738899772539256409705866410786240128890697955537682459821610279259024396802830988586341235726154736617967623261497948050791539653150056011453717414989843290533427668018888009903685284217670475118644474573071312963795604707428081655604727328635992369071051863976054687338506958539709407343745131035321370792766525035216085900242095860669343261152311294838036570930029711960729869649167959213287244167595025224965857946295696967297554606533538705559438601022201170019552941204153010889951228065548960591426580464050142655362860433827448957029083167184809523627152675748181210002673233165647424481473686926682904312609552414817034768988297892594058762566028136589599821505868786399065966767566505359258538334141786456508784488851205494179269256569890514180706648470357451090157218676241041473574146759300316697190903684124349719463161925872535000229047023964604190241367075184244592621573310552310759884773268780495353641526341504972115237894364062555036851968331387851686071156822899126243842049388075481815355954747391777260914180164716324707010223349333411273144438049096762327888852336963255237400346527291171412754915477322663083430737834338073676354727219275651867218214200871884066307399116005923957670384676631591290693601151597480203182571924904607804090424596192696577687495944958219129543090232948575985267088022899771718245191333509585429521375258247801138812020189188047493320422241886402249083885522233109984059500061937916694184863748265626059707759893920082966988894845143360147923476324010674430298522527521325612020647358532684902608944983713971573470044238277130420427482224714786239952058818549418131967129241405530527540396983964521223341142721381621397693127178029296674466996521836977037522814106505388956909562817277540887865279928304570660672105390557465437205288586527254139480129863734658432575137792341718275284021440864537101389724695179522231405679074864516991202942521575820082428118440257765463952895383635772445065445138121615109647390511023582772851169607704076088967617305650582909534301215691692931457863463751555903320664344429223109729254792283815720481238362025619348002231163118657230342899370339544417160531920673766378033898434657666056026490011255223037366174452278265317960765514894050483432010101446342113577685730990044511262414329355794777800865604909450706314621387343762867090612881150051645255429614178672092887592390116844937741434517822292245734069754218237300187899326485598439180304249777889864786250717498450297542704108590300226595248088259167900650336438006581974281829473576951791151986407352328718242813704500702601940641782925002282997923028791064543478037636727221700117865687040455210105970837874257044833683006983864966261018622112809775061819368600769695582062666106467482167800205802122083591679361981405084479367034790549766579100621766210787371488298196322217193487912628718422160089553896453180058460748109441828274693790747458366865007709240426507008863364366576787477760879364541034079399605198540945636960625545773687173535913527105378496939015279095760565438514260265666551298795001853009022706603261566288489267647667174073827701133725447852695632685691192675212928232361838304802620505462559830760316798330417313060599528127563625409905732871710005892229923365690200293622544076782933544133061538571175809107981141648780968063495986303633018115091975520411183247946821370452655478673466461077172255481680394461539437384204162952919161595634523323228361816441113016551522601823822132578492110328277998632997494351340670571327329771413947353934580216834157732029544271284099848899971421915949816892337253322710418757567933556191932796349750543842760253024002855709581344829230849986734923540039008261977191905781473488190554133008112268285343643417715068762026449951905214887075320510924212490293600574990509801639561625644577412427226246130884313532384486909907443903447247696196391793442729423698529179793353763216054766248877704870127978064179582732382412072849236365121050959996327064443133482169719177435096710995560909939738318865206845341956795788914070470411511238425117801483795180453568678065743771737750681745152349625291822065693930705901921492779437384329052703221000580344235517026233648709015993304741595646687845948988561382500763533876457644177729135959313742550975387707798459057714266068231660828944462967091789836270613728193234926779916235739007446611004699054483531203317328403061719574574789669103655137271234813156070619254779463212433556519826875860677017030189380744355753393200122943235329064284266339925617176588668223986176484398187521884966553018227586072919891861809558490052537757265583638430408208629225900099586247456081713602213018755655359769803454780778773562235646450497374639312918770494939170120156081405783401243817568264014277817910574847490117872550150662908942583635845731423883308620134558482667909539389633386628358890473940163932727274609950094732430628836759626234727366617390366080379994018080063032867601322354897919703233716270226523854704783474081309910162897221302016924000145587219398121728775008526210754559971667584754350842786026485623547213464390214673970308444349327327431174007768102495722077742775136608442104346024471325985666735239902765734077097091463392809995409890769467881689086113811709885299412835748324204918230610364009206000595474997848785482186789815847831832675164761122207279441144473389279064605053624852062402040669280502845916019563797728201215766364307333832904116276863202526639009361541891017142890764428946006126704692260291879818611736811463722611034775564431801144256386471284994330312956023759291919569324402518423459104790939266167722975643554421519649972006513770456365269667144944501578126984636038584585420408200940616352185713181224293869286956977543927313395904607591409713264493664102967589295290568556450913244887749969874885545281209412399540111929857243211770085904991414008362049190135499970392869661836192678560505358360824187337592322268437509037932870568752939198856474584927867241903499267883826003902379090537828652802517113347980405917128445992143271010605259209717945299699286751660084142855056657134755651062564474005916212646793887973871680568260376148651080579431847405356761795574579347854366529033025191627672039180371047336251798734390049406004530032865206552278122696187022905626686678754182418423371854073487567081467086122651636705668260548078469692988635143617104938076377471926103460722144560196170146112609879775060691500481326618785000208128890078920322398522914994009563904620964985946332003138314764343616386894210972645565601164188850721241420306235650202286119139201276596875078628785501512170094390780045837435651248212197994529404041340931069988696429649976292822971678598100436194705626011395435375320634797912381526736162183573201403749339172662706286902591797539472961937798843317068513201539910620562497513890287689164737373788220788751718824790388747845339910443454679024943658092958602309357591869416465654859397995352187139741617233570129805165963587807038490221859234719347507567960865863677503047784995075469040269818361176219438865920894379422914274947501223753422906784367649679841522365207516842615912777624488757991065033392905632260969154214492326664144430899963870179184103670189301753236851363723075685541031546757067267882521426795406927351517604550713085586028231329548611455997822483744191772514078647784251768128288164913488303866149192118505736520289307698380152491969415686885821251522971579544965658501575352391468341382842210443349134224306955083310833089816778890748090816992548810483818343484351030700658598355941815117104893220803548472867124996881598998179309107470826021944196829263627908656268054722848205803315539076539960627818058261010655464363959348871472905368703625058792651999884506578394146413763363301052621687769267915001675818560534037200447524348927047501898356877501301660671730352870013234385231061373954241405146576592399956547059337054163215772977616220758014009524564215006274458437145656627411024505208653326285767745509829203310954014153831391544283526486143039489893288405198891225149914357089711663118157619744182814178198758277731795314018816970962050164521014689043635236608024539140367049908758917981651575908407211993062939647128764191280069905292097941686011248093979884522282023487413435867460326516951315514427749666121294830137998914714985619950443147034192566852881504984432386346960606696876653192678481932368361161649159420646177830522792441858592391178065847607632607772004883894941720046308510667792613731375447952883810549779117615054531713445474423726915677440098326550336677984762115134414810260201352265530396736386476158723245237490098244966224357235073441553290096938208360130832411401857343598788569230298438194517150068652000586045318417705843089594914747508746227110219413632564925950463025012849607416351567322328792553995567169961389454548491910847297787051969191026974030387091171025034792648967563881627776012667630165682250413397086714332122137032555801249269280622761858917345986599610804062715327578368728955876307479932395598883990988058970617812657240229513997185321640538168346063408804090307542172657757440713376745840302599034568584730005175049205559640929981016376973659639270613970897121972464056430128209248949072948986176269612274544022597393015069822220472961627920991179259351783467974534920951752112850388868733353383651195480031573630958425444346617203321689078069701054331654904574592569718839427659370934923620775558806974680780814879127223680099159440464105882493206316372982370528128721549127511199540282354863185407151781227152826509210344207019455496130705897933519876968783839690701521800377649699895542949522611196984664992003861799703716078153952504558485643381574426262484665513094802594043546983269427660812172511705510419724016527996730386996516892397579264508895121549592341276197841336634409001115107314902185096599416815896516560687182776480556934665870325570794113322076332609375335056536504965647301328403665667677595681318589906916297272114383762173323894486441933083671431226035855759734049702140317998896799840806423269547217082272475627794533162111263476064116742243336946776075637634067818210261657938841348573669977396076691051400584355687915339368073748896088098038942950922191384056845707829305446443701092316128683312583666376830543596124883338855258805741762370988082671491332355494945824439237047461001709380922902598761601507733212853883025744203431346451994045178661782610562735117944674006847877365838191888058258394189130201137473468639539478030515473557173765372635498174551314983599229700248918149440997488809733692466620648371120104941079790879695155637473636624343873087010887152873173308410183480113899228323449550883198711919613982820909043475807831516189781388565393730084623398048659906927652624263565127685246140292250017907795983320647847401580753922318145434980411184328379908668069513572387761759004660833375115986278107529980075617835688789855623992786065022961612525816798160364674299279853144190146792354875109888118417922205973113449541605171924877850884741025928454538144071835638947390282990561308393378007336669378628664534048673372255898933764276915250182805473988785809687449678575562489034100321737968571465176805674437763251313190452750981842321040933243063217511054413104599773546072076730608318109967087834599228146891677712593655513633509517971840162152109481089246213662566501827243187506789891900337250302204234027583333523996803463793254654057886671145383911768025036652901353809955407842515745008514770309264810442967791268867811612910043561462102055428120791947753669562417356149085463464440428112926552165609233823679530042619694708490164535701632766887295775998009934349771491169147171940328588946296762317584192762428451758045501247525983385887964189816960734785625046653484220566207776034168283848900779773213590902311100755365790431517196652642899653401522253910757741581909746354443781660900650909526200211303705222778105170976506800915671522692740156298735026647399675903045441533864710582214969925904744501379028321263462147223718206311511966232369536887142769360997155938486391415970958766001434136927969638771421686043258389797551201021299726001947294830854933903253685913015873567329976461291084218176215771340853687287109255121263170156518142514959097946000219990966634632895825301313989277286368631068161042465893757934356969102248368888064815072460655952887120723389313613156602840117180243960507573163349951337803934108222934602835398948172183357200267177894353871625014384719824724221698933202031944615134857414020503175842191465206202675593138581343221087276445991747890801746398894863182329436509295946093656762488863267989546341296073342708562955002694466605932145448508396502027509886897412396968322088858583010141583756622105772365890263465803208037469038969881441448362131258941253931986803442547191319056322745822542965596068916825498168097091488556920328916235322074591846024946042320059395581823859836057383161935157398807249361228266076044093506659155091633687437094660152879616359436861570807816463528083665802844618309361682133968877837552301767059358309309131823337321086152994236408143914502479860358752136338556670184417528641512006176536167721867365735546153749785130071661244140878534256926508815524028892414169391955107571291268682698489929697324826951190213786451207084606477093418376360207790747280344498509071998580160976220639240577081797393969357730143672144569509175086133055115477974063787808343478214992301335008036970045031105056491449727087024854841438116202960457607293121302789794117225363873020607764987603690809108044076555407007158898544693915394428534286584601092565719912095306438665454366536086188830017260229540725218335543848115261065416747103316930086580799972613961862968597254895425601498716012913658420842779279375933222031467539548874831376801479010859823265692918690418501963330872522800654505986139670010879831976664525146703265511797024751703736283075062805483176679985758442170000139106320837136482329389364678661185699061289617056405516409214903774078876721510589073309733486890186791351559858877826420927323633168399619662758732234747447567234268946854052696523061180344172374335705763177636821252073563356369498499961301948231557742191718621223515168104690915785651709049486248841196677175017566169654221004398263784220349639072497311090642130816304233928908258620888171631075470771434306892563610365858471342265773325619155048773668254093105817764946555248783475626404033899554641749001479984611148486071503526250578150202673617260374705949731846203110319517059714403408485600342511478441601519935819234838502738152452455495722888823976428321532363778619903709951357917853099509398168063477442874561778382429730528691048991961106924926213438095278661606900814808465439794044517244257885167117018381979634158234639715893734096076225806490213304679323001678364991407703267342882978220719942328592285396691529413558021901548859413579878576337614537503380829648198297964438727400126129598354126467088096909868135595880373419880007149992434657204975729350322115968630776039343171696709559586457652696174987528452025303334620873563702133703280770224179920192747722884952935732845605534650513695327100477798191255956004892811697149050821463436777340522564217514579888966720660456749976401369545200478141675090546566578866793666007337492915253501607765088776766484637954058271619259317544911015412250325956529511491946444363166208589098054299775427573171944527681804604404211424351812925822839802378945403582838213594764373176013544105991938731748537313814739376384382042575357413212769000884472699595189201605744614738904990260297235374217049097173366725986957355457878290604156520285138776297364080469365529240450094490531540597437508630957430978239042396067521716029583470352680482819196439193463076280661280413383985304237500891686613920636391912179682032370516705282605386157033604359469481898433453863809381603430025978996946957732319621091720026829244019923264180611500240948121881941394718513416718529056446000686211445931953728981801650871164469421837964657706738462392416001201192645792973722298036309003422333900613218461673170177070776660241802198225898610874720821239632552509281431962486559024573309869560631072636078401570342045529807216148735141977417061472613124446819273570618773877384216843985469744762987055006733553704820456602441246157562893702827518449990238438390890543978759437211537579135199052992922658403303650502240490940592869777947389196390407267990544602801261725438739070403130027987651785102494119572957585121144282746002995271564754221530723888203265770049822568520358090757072942367885205964709355481680302122139476420083133435881928297775217045691004139902292399353200055341286159037680276871416457737101747335279530408695333427923317571647577641111016056889252567426572397690437774866053186582066005373954821109655338853020115171949420637877399365323197569476950214003502327700883730821144509094113819249336885398293187236316553079852236624717016208392185877086795328814323535440757028283198203732971821919428011840440078572534889760180996758789926930032348493634420996880564290299285163148287795299370918271832908958598570114524204727778231887221904069314697892500219284160039313057332775179998137030268672356411154010274153125986141061471344027129554665912407331496717133569970389472132570303794279345227990309512007276667752311556272796502495005929929191307297272732531409577948176831815667870363477159434408242288276896930699814330106295202876517076810577026279224006505582154983540944820685697214235345326861994245963327715406205850572070761276493856290574323311987432105680153580684491184492433878949347805459031791809250995617267890444088889369887898423530166197899839861041029626753643368960673871591454974690491989103148723505213508933160807607760875083986135628425370124021329824025067999149447007528624703711736956785509199376455079696383718370714719714958811488811536302544699038674074796953842571806672515134042208855595219278904656598402323927546821379026629834853153997443559386406919539694875065345176177497221647819566327124380569096138257660922609002705844061275914583910436449964908097565784384865280418446344211975874993294339672884741592809278250498300624914353810270656551768284434164510968135378496152176306384769508378596955072876232385136331341582824328459124350088700630226368549709773515086403535929092731622512167966366141492232359191849152292080208160141444157674677835538064026400423931928265064417754875283659604469988029301722439950678718596421243132699371565178017118751330938446267023724932184552239779845839174108394931149712431497121518008515601381720826648373913609624202844194882049361562135009993304364855717347826157796866532528620905248848147253904959167557778521076186006969648428480175171920578960570983583129207094542472271754754400684503181482434927478023586026372649477396647309043862257411151831871766852507481945013000515687914422373592382618632693793934544206461340917256692971259669572640869037264284372085742438837920070540134752819005476895530462198768322061846376763239132894677285120863617748701978245360298562369304683037331414832053178743571326090063547979906722517136754580906560823635793652125622176393677392318904411318332606397952659833194256081727424660265005807822625977037756899615036317293316936787106221262096541978377567279774958266176217744904331357592926442375676025486434520171790635985094804582977023733301489957166740846519099128739248532384443654698130189231058678963136868378937789973956472911502373365268321580263272308569629417556672785235216037910735896470726764804137035709491587144774300451473700554625074853459044112669674903852695063774004942975028473505126674982743365801734670462328851330650430017708289165993335734026429113499343240382601642164494207099548267571560406738964908005436823811351971717378808726100271665465058301004002763782258707084121992116100210487194880609643625515562250812171173860380596269728040391462609169237707978456335693206557962870566327076466757296583649529856800743361316544824896406341848031870955559454538491869967401295821725543024900502918698651312213172842723421240294405808622070908407170630942066794462701996323354930431774311568107511203593971582795737223298885757126626520742335759598172289113987475900810417335246795175988141957629820813238543428439682643391266936892945346581171680921205354556434954894434824459970742017885451176136730506107827195345029502567608229219152969966327247869349126146097696077069084556765961143113832373042754937378866034474181294162903393948304473021689044974585205963024429582713376569432194074785675340383487824745276296415726959132460975830251563079731981042325282016101182293327929013325890540633351438564520598988390180313600815695260980420199461287678507501189989391000699779428897520172445407797882458214770889715802501142011874463638575603382802785403946610871389628565293057405560960284572193778921612896983367249112778238307274452148828767467646678050835742956033535914124379725770839709564941275231620016918543159838482546901132534152897119668508338658499980939463260149225258600400423190932552446187695759404748782692847130912252293605305008055459065846208821889151611182903789547877750280287972008019858728765648936271174582131948136856070045934136132333337606344162430980224640310664731867915130126389003731911334868348591329702637535718107480131643147097219290764051853252942967504458034904508091964855432335714215019451379485902590407399569092732805359467504672700617168616152951019669754735837387688625924103231059644867308621872156639954459347493902407246445626910039919432508458913725299378267837751741939284341822359471847808859507666497829218011229675831675159422658614451831340917628402200166326080201562876578869755708677046222004893309478272258962418340323362249288140533948360403336149345721323491832929869915001570142033867028929564498963717790741912363376709359833350302463011177110045080414673501851674046056262915036433908265922884583109164801241684794839142221416628925127329765657825519070098692783665305497818954309461656178754296291430494179542842900589519065909496310361304917430804266786146027951579587239919022614926781590428724263009505538770090656274441300799001368108336979116614720975342014745925117402342333017810506022702249570255513794194958429691305944819059906912908134505820707761075601650995060812281968084360667867012956091700482264823601034592146730914826987731916630074471837838223894098241635368547808815298078194062958981628543098564712657218009978594093270900057182251392565437126874643942935747243580752062206898722861315117546376006365080559412663123156472633085762326705626321142107118001947338894125550892365626678094778051711983702763697402882941996379980274001747686253267780510914893913618344768054457769746422483473734823085529464024485969657742517984111292170028272088619961121703135884027041429378952437283029599910471561854918359818147320999800003098514884420272304896462576335923400783520266937684531355133347053129734959335022952638511009502890525825977461728220545870066591824464024455852087531664043557813243034272645518057468209157734170931704023879156134500574638947859624608774276820815675462773793976725355310028779801936178130027727510031348474508589443880122583756816914570342230107008454330580339522648123144567767371414707058859284285380366015401261861474911533207788134182195081455419626796757059402122056818503609773052695155101360962729139013723352452589031851095551899956431142151353603048403179706137599321927678073719593949471781571968473216934536383973205547054076620549901799829028578533010559028809883577841675431232192628102586038760138227230192164864616197962846667613430399215364501759617138946701629595877114371955100136043227020083866340504488656524766601291397362846708707039854584195363826302401274511689617959996749694980101067188656515065237582917180272434195506539226404105161564814127879083730255871856025796996687702548384453095356102797392944252227335723815823278598452134637769662370304643205685670632182775353696766014684442822493199867652492035941717606125414778620613341180326482459342078218736201242446525521199400893514082446338727079186051956703789365873881662406621053055175205883221066753475313259380400378900994885421272378293698977448924469673899782677715327241585235641198169416959625437859935396255313629903890506064572564358038159659228685099536291469945036837416738429189478407192202867658487468818671857943954448555901741340534652399860380640539481618516524677919490167045309317527240232155269581514613673279574016373788077632110862261456853540662633814371340980532632475078837026460544213112953038054162081954120896086658536308307560865444311085045619743445048434681607097139816724862415450891588580838666320922700334219637182431389702380443550139589366228165229926924289089735150795398277071677003871274966793988944844779138400360517316160683177214228004795666386901656553820988374074428497911933110129621343226188832984793493829136047948994965241407217811091012921344618965780387035375582590930184324797751235953989679284870750748242418658272247470367035815699489154027899985866586613210659089928456789236823467530511965549225498078757624394099057153677423874664144723158619597933661640574385748314170517707665014638677193576042214378027795399803230951993350445926052003840436208541435029067161959054240423090480929756795524749686958423429408258044260150499682510928543339124029647987587132273657921612041273903855200558067279656891965439693114942888825701892180281412422810679628008757567324953791421329136274725751259730659896695863675464369655706519869604591623095287658779997993745728264473031822042766795536983581432866613831949415314671099101694248071888682123063563000477180824420050436018758560348467431278211321557997807688986931950314813581388438914879851458193332433182003979693810933543132794256305408821072349444391676635179454570165535591923920124967996335330283113861474610117122279122021787348212828879979721070365823500938057309822498724008615309799292592666172156416063312258088205288993319359627546196765254229425008716378508581531044218026606642824454318317534784780810564804711273092687054726021333886085452104148427512936415749457242452380187405198203533395693148213386045096040132155347365487837521991751685024548519011592250380090234152336653135284076006642622272338655339829561610726271485474769629943657324966904151337743577751601273272415039331792904417137348022316648128257000389450789615335652469670325611597167315742733999181386297942545258790124213795028389040528133363513227956191478505183397024276016072601928283616440295690233027252569853863925655302813880358537594301079702408812783178333467248174979191149279171276240287272267538373192242808948334426655779133194081104140548592298676406817368072631986872880608742728437304704010150974639060316087718229349421426505089381820359442701486582194290680098894169788890811332484842848935571644265490003144531051127727626689173881869165565548025896115252268553769659905137487036729177670518122116037617629633642186993910553286733450021743644101516981913214477814682283119104898120888279565430285139897715204763384698754890607263155304804475684360972728598320607088161255957636962134254835094876328098149840523016607208610462234669860452034232380016098332918142745402726128008793304304904181906189232727672041592746503785488301902128344649234162172029153301573235430310993101901805320724559541600962152482889101031320140360109386954080292226066611116501347204308585687825342143574893568646298650415806224152430173827392171677870777052073604148417312731878405695541919140543472347318697242894007659029341859693518615535680499925554277189924192464188850102709571057688912007486726991801225341166315508046849360402005208677261777884365320705355883326978189659279303823773109612032893899080982404524777657577051617119526573141950697762711636636409924351774387813263058287046477514679763620404765548653616879777331379044563114256381450318678413909451963031154447394735532759601705016793320769942239407095727442102875362660430807173254848557984253616629829368882931028852147747145643160701703724662744916345398266342563439315956118645719266781708054596000907260433521896782789754219674664957566487878942458200289754478028219182400815475750681834321280367687310806601983776568369812136841189322942027422600105447990874741691667754954494580813562761476135912988364184746232323217738470761000895806611578469064725861651751371056116977581179947971657288511918887618325416277542690983200690202880408066346082152367288319496341891105364147159688089110622936954752133850529352510333143731400400554954340164203735605163083887447034045244749339430088044870658563606123019745942739035732824672974512376722459638794830608998336261399741227670941702097021016702930223011420616290610012569312116658705438409478190649857335488663894872516670389939959722899477425864795327821876546843827255121776790753181373202616904711645393000975701703405462477672110475110389817312459082190375514450720205421696221148385815767758754703492347428915834881464325719050962955161196392424112120673501345203902048063020019139802135780344561235210199986484230049530000652867278540437662752175004914852083870492738093620519100370245242253644525295306761802020876193183824227960787810004022490963824863582280694166905378845272627452569289300270040122670774405804983226062543400974709059825656308015830489844394508620079718548288705034056328125369652225457565605974575339775525012502854932690887712029982631768537616156830775474693475045459092660262068056981681693179696013344684719372125403972216826865347999185039240967275638966253377270327171144741126470861516925431450644342383791041508349055920200552977312113011902836624518660382789870177131773236908858701570161557559232292685421919099927585402737632863419838620297215151044915275291460505992682800811721598236353454363813544581288759148431129029587411558009558272330598889868982016861486392319467296296275696890174836007247120983939307372370480892762371358015368485938713313592801762188347813677114522860419724614699514902080821538260879205157443521902720539960304997381449330610186969940215437000292198357077599556838914388160779822505437790534325342859819819668066076330382978917538051409368177034868387682053103946294795252913949112064389367510391483662929900086499854826458751257757736520128410724523325945534807475770863845642060049019287179550295288783196100024380652822685190043679676090125003874356548973876299291643818045660213098050298177479952324710593511997973962160268369606397719344908874481346203987626425468760902938863247242914669831336351058242840806334159409072932751305272183833083534788101997379674769251336887010194762803971977052295808439995380135432910257389836945609972784070101912674605727108172560088112752000222399847460458966498148760635021261125390469794999449007464252053041917736351237393527022440589884494583047216011325797023761532778158496717008306724217321539614627180887298879010504425198890214928551252309838105584940195096368562781975035682170776505923031444286260536803984020411915274110892929251221004783380626138549215614315290265674992662810646761428596432754479729390457617613312857249839645173619187941260648035411257028393506766388334516084425985704136296516908323498742651431724668620719183411328493879933759467532172649541192372617701667747348460433264769626427790429497491725592086300541541295070365061879257954714217915873920211467614567180455477108999822761666830833313474567947484231993287597070355474069351751172127314846689879489394487338316962690551774655861841110011727367282817696930466449780943399138086670093846671031568353974145646947128110705555947629017767827399202222379836747874396502934651421102859783224205922913053396948609040489496847837020944246619444311046730408515722580366451404757937626804922746565442078042871911527666221739483926339375026832484473603555330436903560866900558475490674239979187923807746117128887991120740781714642132256317057533992882719561223006458131646451371984552624728851849118028444252992537304162345492430006571275033491306016271633721492815496542113248446629417700837265417746561507552204649090543122987319180534712485163405424514728737693637272598352806399835989740268749455961352805114734501595409509636862520776562779084433266610232834485847757606491447008297787613885798675510667235914031301867031326645886833185742521283557184427664386089849050708404630345970559655494788690838020631368101924051857497722033373988026328825076656187505282749115293558206406573166988504113723904686386722156586069509767179785708349395393201773543155783510020786003868596960144296104759805290975310714438219309559321531136534080909084098404121471229085376085966018246500391150438917847978770595090833666525187650963404654419658969235877125147460843789832533113319460803073840363887534997974369677482275875688022864374690920424504308557339738224398574419122407648945237625888422798621049543646631366121101386466073775667122954233604137675378434870914351431033063246079820243128457401591448686676831062494483861020525022410704775115398553431748262666096537269026009146934181286691947038672624839513252376743410071462345801078207631893793720283703645437010985526762763756865025980005655981043038594311717863172371617843645734261032168316068722783380039700333330448949902300369326566374803100701228321787910695388774675957534901566741694436324000684531168330257253263482402472709392940492015231079500633530636275824327797420454855607226372659176743628048829675774610308223048339242073702403784892708628928410148340083955095000372495838198004307406387123513553497891953116073588532439905440533137598246002304262290972518652090738698181050415758131224532076845079227571229438591130514274994174831223247999239503990611471088125743523306954247522244855531719023156391771906311235452869687023539454784133474968638422498734962814499231327404443790137584514623318403254624526425015569556918163054354621388451386061030849292507137123353900398229597057693200220834232625312024080499987189271759764562340810857106625071589932404737959919301051105208303164095532188488757689118481103755597366101757687939617479459319522631257173290926183996631722116132615429606290098154293029323053475631029509021159120257844376567067761398909788322704743544353132038070436711729253785650674756428717166692999837114301834058424000699967211035913099980636718671818129337505077877040485465619460664588467764702542002194615561318415110092698869508654428615887733226300572231248188004188312839619526266163079121962923202207832013806728327866760287914111791273069710532790718767140130980377383694114182362708208479185330524930709909211628834529918573227312443615574510859820236121219497650838297183865355672820331257831838981792872046405036762535116946199574303377986650040594081006216213365331727202298436422534162646912975460926832629046068795633889778638164877920131132082339350093304485744786891185617644661546926369277275649914329282535643195841172943202231715878571959454505586927219912229234887230947979131666491469742811780601944107767847261047931180352460606516504219934627891507753128773736227308398547167247497120782954251425939554255305850124893216506849860835420515684343677146117074158300716378343528192889252120432258898460012577722212247079341250077378385411346288111558235188908635187423393126727449842856751692720345035210419190644082205551999896980619694443941404590256532625795750312958805939674025950771370246620079263876481863727299038542777441604293799093696727014273308724316544343957013047247808250768039744589693153323837981018030648393560671302754630025251683175908300592416380461754547274231658715524940873959342414157321120403536051316238987897499377617803697541487286967166336391215183367958821117082102418389934412929656782800481625761592219802835550121901507596726747558724085460558175734417442696614708513050759195740766042609372067004872565855237237861237118015873116655908381666068908588836142102460566944774954950967186935786887464224170504526912547751203301109756783184111435096447768787612044227757350339101343110213373246662234367956521789634303459825080313745854867349451211722555097296106296011106145110289400722023055693759599071403146073485989580077625754663814462424653990437776788062767512711935795963082272585373236717131519118002542193238854412619468415696292854894535897218597148813576191737927653552384597044430826705697831767694679457688425790409773425047814260199833544465280060271630724422381118835497813304902395028702409783579533776002532107406771029600587215394185084378404433640638760423725823734094815274049981174779460877734647469882071922222311148561797829731157694319385678068177448375936796136941740555847578299773924328761667842783589921203564732432156932874968154195486528806851265756178361423433081902384292265193731394153934306844584865394449172305153091419505884424585162249855223418217236946028581826754463862773386936779507996436724651367661771057173018562820617429724430997540032815904374825330187211013243077520007361805528095166932196017945090964935339704151868281567640014380940875301387057737794656087195921966355701077208129239953183942459719559611438039367008021374010712592424617802063869475038097607481560992590420821736390075086915754629217859650742571471485409055103930726708753499226185590826580573737105902536256631525820422938598478856030537541296685665092142865209876051882563862596249399116384646216056977400872428331630442087672615559335369425520701544983091939486783409028048598076895932789962104873766151684851483650810532458119880993804906220125809137234949272544829708844871832583473831245885274569689389615076002213114397692359951224560861017761724386607062148863897472720797525593924313313050261594780835226327182471556545942590094779597189179954502826062023593542775835433969138049049455903872489455980851711523430523737218238704165764746075049293847867152561945456568057792718438694377822995134350139696487787468998623230309149205994902179620426022446151073135585873933309266297743554421662722407184587106271180815086008614498140286819920823943044817111845659790514540786883681399754107704796592353223794637705007346240317982726959150358608665801554259032689820765390880286226169020141440075788772610613580307442593071071851403577901129119403711348728210618532841775701786423993516030570924415622573849537726607723754078317246795989911199499772808901239870692343055027245057759296443947591538650345092709742526936170892983224928231810008059372267238426210698157811420576778422800092313486407194138089530401008306750493765524963065129416114489675031341771365751361448928840624074753596217113270751172451247291418296105011783962798098853158175919777454246776646773375386964945721397501725312661104979833064641939702346045696327916223450115585378344452957005847294601029124989414479142694393983865789847309469553973825043055277007657975229841384356523761091503144190750606536336964282763691991800998339904841541137396679857848101839941631287922603169765196060724091317125856316573919775596637739794451402766320785905723838546880137258350130760604642154067824125103497128402380534938225614463010226692959378508593988578018903286671410992689092353711507755715185128897568058618897319503066995782536899827232866559654759055437146193733575490401401233198700344178017745016155235518796044471005994105022837397463782163254745880452487714000695598427900824983832626683770881544475172179874626211289321414498406267414175074922075145511944611806293226626835249325616991471811944055385088041012708280779839794330834148554596722217467617653229455954956542621906123113283256778147450629654296655446947516705417407073900099921213299594827392253892903321336830554435166191525736630699694787272650609614454320993090707605202896296319535167420830543338489935010838689221815685323455298390328763132431140823053235785446515505814145640908979454946429081648779194124992218343585848908124005102412552423887243643523155474853429626000594690435494609931498419223226891585710540413691042287446041130605931156218589736507627515602618060738308454606339058717466647700051616020044039779506639185215264695430736574800088815469716021600479534359312944297259103075813906055950092536156465562788425295092597905663552311563699197805336444684293716951263565226741751227069500158383217782490404281451428947980586157550490682876814508535841625339034799717754110735761703424415863868313396758993340243661404038877973903082491428964852349174033847540239659654123088160977267074014787010482247490087994980086167285837957349678418715248957772682391624351164645131159817600702514568032560946794949161087812748250686437823372278265091395047781253305077781784866818318019037496293236391376348623114349822625630549141705302319007368120519153760058744152289703492791924704606541948445398684876686891506680401723444456536485378961640916124940768057565405658897222008845788111974847090674776676590313255629127002850156827200320038441308729933734028713941664138611748334321163729296759562063071562634561800779736580855293417350658822586462560773912087128461939873581333869519391530357179096108740947646567184327314999725643700595682175599919552759239250155800241000450621775405401999435802506195335375658852224647414030583228487635006237879643766399912189230584316385125644291331923705221548506205237028422869190366323001718262322689737915131485205491471012786499191619950278271901158467905184917356671176714976027032603728872886339114207235751285133162169347618512873129273165641994471302167359292289204381282128571084987618236146541669812821966718759899390201694463442032183658468134946277290277479267067375391095306712940406390888662485056358193480882429705852278853295910231093349297349378284805384923282993575662970169687824839278936810011332180393912231099128368229915957719601496614941023651133732537273402984364461122559199612160160384462225806774821462715245260331487784339430819361962828131119928397820593732418096603566560698911393417419853050076162347119154487719413074637998089409568790485645857847763147961952147086350048771408654263835041764283144632241341435744137928760091694342024444295227688784794882326595630655688181793590774792312856939070254151518081976442431038320978786867714156531218252436223325939249246649770503668863349531210775017406616132946747784183778452701837117563599124422509522906431175270276637052394843624420474917407281674339363856979568268887605913782362015684435390643435035574455619746743836789565586817459268180528108275040529199504205862419765050547397931383387579170407966233398724705117934979780299582127699335498417181560806628538679346850011710291664355585243838332620744626520271042868299487993102423578501514974532419018532087452243080319198907219189450106537411941023097462606280644972151467209965322718451831094878513086928624350997890661971050688479125338314505834670584367461854912348020020681462868112991133026889995073542652914997229072962854203423149184358093966301530915389410572708010225050808110141360676541951495086837571652295115650604303929367130296321071673917115733894404137651092062508758675476092016420563797287593961515911702533628362715269288039900431795690240647258086923895318741575085588431615964070206401502111782260469819354781190241604955788983876325872517621409819138181135116516309235728717006155049822648155530351411214651132927371646477118731727002870186866681759735928777396978690942049270334803259288537802901185186516680874174661818607139210255680601592694911571631939364199804045713451737862608364891043993271943816287208900964488245396518574859333536754205441394863172485671772564877478376281844843172076135486094198629006835808173330627059615612685936077678460634531017749375756135303415411939882564383493171049601558876496296247342033430432965095222621785829300241431780917707168101218360807695000830739379740960890194908129211971332250721477850694601666423536186944920191922329420492502271824511828409094806299240948120091770715207726537821727080475185813661748198402993545128977892329977999885095254844403711950151895416927697446235045392889167514709277995102488394878613219414351831541192826098215201790758242209381716058469978769480078123231820859551294926221141438382747573507229129719117761019829327855283487721445162033457536711889843055761916023592754520258537744159154247483609781526379909849979357564470985848314735634749759770717031396962557736788824231883439176002199036335929176823914430701393971796603971623991296156551206865384185101337067669243389214290361379551010835676307230331483510298429918416348922323502862387399000587706727136998115223490481861146954858742850176862022626126680043922631884004673047604510431307618963939763739835069080779034492436334476280872773508954018688517508571698744623172936195311040779198439980133610087893741722291968608555979737442189715645848501413397012976883259841759669845770070202757349542039984052910889297451830140922344107233546597105519885166283754019233894666509203483090332759857652430088448586614487739130226382168979828526780524581657760646652175100678483417360704941730984946580723620448876923283369530929343073186111348185158536577048295387564610171588800145228921425224088492488450293539613583093082612070506430432297576709161362453190636754443888295792688903244441730305487702348309766296348880764097797866891437326045986347605697881208642787236937005844186382174343065884689214066978058494598260229925009907756578315496578792340216095715664378199107048224826662451590006650501736177262100465928993662018255241521058729459273919582440577378828125328169070106389250012767061215769227654406003179612435862740927759819599063463263548433259502826209540345919068574807713096504096617447651755237244643236456994098224637196295123733347135989670072440864426388539495840073392436390580701652101114736495381950995131713565459271625380248512879503350790874033570162571257198403223077614927337564034397079151862643797294288583132884478556510579767623111002680535097484347779174717036760876085148493566242518570578380602297128044047158871233982837939468316157475539689628441931095587441910167661031969573224889480134236736619946375193625109680722780163223292727477234925781312303824294253827089466658127925946139876124721174954059099389304101820511084038719949718554007425778869489731721907840315384756688618100434117005490118775629587966385427049264536383178431386626546198203109480614313327808321459826792833288382608757203652995997783729817343467375311184805697026583443712043355195098194992484079941805489240091608188840287464840921867816532904049879823386717126729577508234266849036251490702095237295978447016595529328608101423895030713470399758647236467168826550936997724066039454596941858713182035150241550074917820264536433507776724016995671477317328017279528727848790532437994750204903453289825927698791544718237026194211829290480556331452537745243154939662928726181155912900127336767345743910070161395552794683839172259388449509068927276638147459430042593171064327757371122014216172482917891911407091718467387198113214389627631774257403171331991666311277425124758372152713867927044359448947115986844600280877234244681789449059436710558356144648001643453653005142940351488462348328659950294082751228194670626032485590010374527820278298692492911160148653925506937651116612870693703062233139782461691980747969916428291265436756997197485067706372478923118611350692784578656214256345482164758454552215544314117940764894155316444372736913902880957590111316054770751662456218628946013723843151577137158990422375105683647737282918465935575136520427293542252682917707146279484367832740170422007614039663527937254835756571824085479713161816247264667932637228337424292859239495741968898707892122208358011461190834394103555759602101029228950994231915908771593324507868814381875517149205577284811544518388789032564986831282311617010492005848354466749779624690884399485343956255490293166782613415604102850072515371451454775421481364109835988515088076024126634597741879538968046709781572376860973922304599009950498086958842582540590684758386729943145825460258634064727107500365794911446547953200963710796071767383936678008221382055852997147384855424956823166261464213471057179699676419977523514100755656029775244344104567485927321689626078108597202032466814979928389808158407561298104266238325478204132994197204135279864462719619086255795724150278600012974434970299113509317900730771851925980355447036785413960815651334285947032003304000768279239507213556028615615371631710079811986351220613323454295158203768889298252521194498248176020452696869337768682800797647469828970599398113179967395044141938485458954730796938685915322524386085936802583904372230363505082569172101369368312298074849613045806178875451232458460526204079754909924697957420497078790960035171041662107100542999786139012857022571381491635794797560477516730040723016586929868336367443986129715423029252031948855737310652625006832688924868536239949028352770877154400063480936434472428752287122440193039867336797801128183399594275836202218407086021622973249917826714500082625422206093316311675582688570756990158059400224843688334725170122747309963011000793413784543829710856623179491720569620626111277370886806046030296362188691791124519087988810189355148760926820818517043625785156500459380204507755483449998277488179695060828257065161158398925515647171524158676272488486011877578334805195475241746341088765907908763386331316023916767381153991828819843761127984885149409378887985994429709152130434652590147163592112292531555480558999454857924283971387897616937502477055789002186915876127840202669311701379552648900188670800470259087069657315498087641599832401240750234047494321610809243682981832678661575849800235369589835057036452055608680337454990268408948198710656980042787421926208815553860782596207794900716552712135596358460836553685979216342911470024272442926143803398908930266301889541886762039479007105998727266198366411329258813099030837232213588380276502383978660935946672023001141183233870483638054495992924657964893869449893719830622140180536196153462008613464786735799176383361404168788358304072236767103678880820688080345221539023044615704194984330631506653121607883599039145175799432588256248159738672337296254988967327356935753846527131941055552964852935657289456334405520309165763398563984983278942640253909767163507493835259293082710490556435915114456934642588940907332193869001578045645114676505610731024920073746103610929637557461199996903905865547029830343017416695298916781199395413920594970176068619759133489448549890773865649271960298297746797082421153026186496113232869553032911634409110580368248065745888468107852089879044917307039730324281615906318671019218358196766429574984572442780241159201815466220230001523595426967308456473427331156074259280378919578822311742757028442387321077993831300389410385561331064959257898309192336097215140189771784432382181783311649814260395122208992513120261521324589926546441518181665425118180809617686126164954940994221926643562246132592564237370871399287624471057514942281115341790453652324713938115361274182870320242761049127266027217777519354924256277444572269520980012539351903912088567203556298698686210362635188754027421840832288566778139783495650988815642033754591610146427748057065183485292859328713630537751864738192135699485252435790752176520012537770924733380733800089089773436589473460145290992285327644257558988530078078088743053309679160839830405430482935567446995606554914171250255157808726153984658266072123174985649973606885979116150563623699529229880181538621170205943998026535273823738420184621113862229658392514344360789010776452161129725532632811141370000312622923964936054142272435191978681653150275322361567230383162200897793844874274656721674013061956675795385578304243596702344022327238046979352421688480742537130835895727114942458399342111282849164739477838182156696550604732997731659964781618725721298174399637082301052208091064699786693307727196869527545895525776170867568239018360539217968865004316769549232618736573260014182054283544387265032232206921516508598300393176801136211919357997274088203373904236701508641011981409155438598306043470129833657198593882057499758920425212820054572683063523808135492856497858103836826939563712216087422213565841296554708656177758632439274973208422604832332218187792413587478777684512303381334939413710345600122716853357679315526331078175393169821135353995269232787640117924061142009401781401925152804826828167879509165150783677255651318097117150596756870320844056846978623427781527625367952673690175124042701807016754842571319185107114886198125166742602782094852743390506956662960871540418450707921344385303022827030813792860521656265034707437706260268391516580049929097554359942159967668534361408813323772087591480132355017431871671195361270650969548459869519741099661452198721367272421314722668483424567114729723723834970052354348174050879151189018241819732399467571036832963782814878585592486404806668737302503563983545301431691410262381648425025596144711121689546218396504338037525539999840019974897622038389996861041733036685260778716532485639506896205419945597865328317499399734394469316891285543729614921612331547787743011313927378654896115851402978161375648291426436793749674978370219717536663070219323035916919605591328379935416097028052313362467435122112839532868612983486955292649653685616310720507880275662733457583495439452279101950583280414803457802473227117493418485380259584060799029240962120225392573367003774014167735807117577547486166898880532892548363466470195616464806230138037778481528218402469726871122452216961225117396619008570639653914512012799394632033952796005692367604979081311119036269371403133926988093889044270549935108372512855759458686957597821963507071571556324493762647899574237978482924550854697679546732601427867237380091475634790628795778953310843403786367114783434738366598992352547551728082659762561512356379207349020874228612282259773493297131653386252800359862069252212058854426055696753170077804684728858370166860881462429568981574625557212893923041996556683364266954378943745765278553686637876681379147326726737071980386817546729673221075930771391352807536046963950787654248506654506131012395637863286131272173835933143659467705031033067015699817645437742970988854437591621305928816364993554014450397666560851458523434914065471327331935015452262170413944235699304602476621778229341751447742329162491212492323318043809489337980495976144605556114373651591144584845085333304368907444926021199391224288577340615314339092211190600565278055317884114728288053095073206404918086944169562483636994177049314469485897492305405752164236008256419182632525322411092974284688477749387731043281748866395262579613498633294268926451485099005371842799233901084697302538326300442852155204684868223565183843070913321928694874910955574641328375858772034471690373531492691450628586173066095917911631862553273627248083202221079732230134390645679824374192087112760403879293416363377212350479689835398275137440995786630868723177088267580759810331199166221671918793346047895606578224914836561941671662436311147829717551963403345714677808676716834542511714393134182139749355056779474078925305425132117289341596656062850668051994798977202788638787313210673526834471982749814142360668127688614901131086444003055390803015213056931626205174236428491421580534107857281501298575526647705723342449933559952385579653001298368871000386094562304268564542196053579450224594546348050492165325578771859344717574026798499570840466773813700322365197188432797893077000763607198222866628487147197017240605004422018012616497934222521181920070682871484568077805767617726131830904500648037425300117601868591105165263244031614184832312299198526913146144590756821443210866768199691613644519850230393174847753147309725537503254719250141345538842007306318247651852408972515294438951091418904294287182410149745369839061948100457319389147458428107722078282050368786193023368837919321059138746871476581338523246386650658831080536095298009275627624882982313666982006807627981865422557131408273019044903226329837556986456044437358135993840313012154672933540605688536816170746713515214245997050195402824549943422345908066316575032351629520901770139337294963419673491911312958280597348152546558109068481971375293750819401928703382624120160343592353634948682896161709324714739593809811963927081903394365181085274713291109616482742113693378709834597733078731106573779207568157851761370652525899860680262929032183978102182589093198767908530398686627676950566939550984145438722973796903926323804275205077240849935452870761106779342475177334532942064431241377814076648282298130313751249405091823600028604460643073306327974732202205276012619889147113546513816634415421029271253636684944539403626347768715672730605680434832595511318539333963822244156530016755661241315795214198624732400536299738166386271220417999023259137661575443026893663615724079798410148143683695288973793371156368961949756202751640979950339577918694849500112761045534074258821100101751130636572595329414341260056929566083531059651135695948824854221977791743918895710090269690027289462517846985313461298007592750601034442731824085626495712762031565486845406229531048383940093364118364447555131806563342866193078831213583118977427262062624692099197501430029398713396302263335064791001520915118795725880326470558605411678316067492615367810613341174461612005424967315013673375124391763015282445703571707218169570681407079746102801438375723423286265669466158350862263348536640420630361743796468504610987033897835901569324193798211902909122043725807108669713898501900692811369655428315640031062481945824669690040024680441638506731780701862932175591531049433675528031183017816620434915733948552292053492591657756661733428297194382450023469720925211288720481207509271554889023222512268565211968222564487383889051743224321004967755107382342246755370138999229828797777839201457150643926288174053254925257708004945632771176954976776574775294216469251328279206572726296083519085394201997147318309981962936373979267348015154415393919047251170299442729630452821696649787604693540092783465742976525972034604032919494573763221058873169702115072473611603822879631401119138567254272322334490207735215267346996267123279023535542868102255363417904119844987527093707368466474527665058432147423738222359855009643009728206266155491615033810997687150477972895245122039358290493042747763065605550149689382275873191235738562617753018236951590795401264974190416741643866680489080565573738204608364709019829801772555824150956386247839417681367576745209042624396374786150632322027798155132594155190968981488737516499769631375941934994068907127277583445785610340078984271393359915399409265807698115979619331590742230538896023112528435882434590603306945281940248768298558606784905382149991141890889934713040908843341219970163613293008776659402084484712696545058675088793484411924628595952980942346666846543620562035624888246536468186715761696205245330815044714902284690444057178564757427409230856070176186517009652389655928532401018914599581515152665374673228974963633412648300385231000007147746209830553115027189645239390373260534971225227553585774627619434284633648255894156732555828899400910098934095997986424355880979571103774700177051869966718363631376783307736645458791888653173985841801334381015265844700987732423226676022843828457438848698298762788019101072395705855040057267789309442902078659861306709810144946533398429190113296928193513054467934633647800842805546880779380799086616637219830817502537517946729486006084193066061331409690986578618590136947695130804081897681982941758238050331784651420853076496630516491786922950959371749450264405563827172468589511158702612913077192182748219835087680055304312528448621067975354735063696861099286395425909310723984488862024112740319780904306504470661419387228244822970547277771118994979340103219854205299647299307877264793463642548022628028012666475648248583163134206057914214362548930285522125211094182165086757466112810667036599803372407874730890253875334161879373326333803471527655488567722870845475844478708399625194898778822381297618319140023092885142318902315735047782668028441875503441290849498319252411037825141449902444799905878948147845382027524040084624616566931086212233954149636552785885624659786378111567125972104774886176627982648470866640234342619318805502231884819016319171877468118883273275684674484723286888403392249054246076881003711468862986154898583616367882046006530360739153203651376398567209607162079369157724927303430018498836637042713154170472884700260909606078222122875014744514902682724013849394538230968181079629072079979352538404492640478790981431351119272677553422587949248742882062575933202377639225273420445703214364342130153451798365751860302731298658897508134546491005921962100777391002563651073249951732906371362859449062040520190523512589568250121987019773463317263412964770552682832484411767406422253243672690552585693239832929908929384316965627654674821841053977198942997420340636984142353168098001924271823252868204512751036785472423797781936082955947016319115412974782526078489930530237893641387525025780517908902350972232269751722516013869516024602741677997360162886702173071861737834465769076163016184256174739334947499368323618007083326506212037766157554599999632833407801001214490387291093808012522529618102959134026921553001898287351571278771772925403837928941531804308035321713400305195163139640863556025749555366231330704035137337938451644938375876247883762214891388894815739519001244339651719959675231054609268449327550293385472518877338534829064591078587745637112994999002226497789506468840075679734462551562415461440247943293578519074888691257958291402124657192691284334350552462470571254626018583584379904613021617910306885919912617049190891549602251545470890714519755836449828236062944522402389441688862655141272592356970052348852417117732781984132212688446899687876138169861855141058973443714934920949167057914675420662615744044799146068626692319369986634625840336851354907415440044730241877825168871153034388502019648878348154150787314475966057685622713718911076611277816727891718236752987924634660485249253746597440293595677909602440583466722235604647800556297209114956272285490329881196621428435803809447478294658908491758793378079544899125758608500222983115143735259081622059508921502914645147958162461162540033829107731038892902966392852199225649388603928636044842639545216966487519392742765630037531266111728363348834994532428025798376062730279028018991383032524175291845318205042033728934019040786276890943428090326222173724724250292750887887294089311142637738993067228427689778861385054746957701601073513741782171980749586767959377979031823264200079367178323819207771787957908194745665083775816597739510090301158220613930214141977866683268717862647399577801766712250735534812397699898519584078715644600642106675390670487459635757411118583433226051831112338988856032128958030878369651529053216282526883686232731109987939316881746044874079761013021008897652026682009925876390463932631612365267420985985792320450737231171298150059025149259257396635320488386363037417003501097506824156869306880407594744382628597691161218103785408103122457756277798963856208812235789328059549365094936275971538306683322737202879543223875965728729986418000494261164991442726989108850164332492862178194003760353977299270343627181833507840029253607749692104780988439618369899823192912856582958607934005329456533237436271177243384737320766725140942390442749928931423635828217585575551126566420891266624008470923139999552110323190986741805443875952568549681258597381707294505694846289179949167798438514722779545072305347731195498640794294639214065267820059890831405413279970811298628043683892035187773024455618122250734160814252454461824438530577806528534188368827461214243471762000285127208180853156701209927809569714208195166891855984390387456835446910261593137826728069717242249622466849037436939945207811083280343344128054403531221572660152521856497312846634359901856417543113749862014710715219619692825719321578021124368668481900237259156893837726312288183548775078714425038943647869102883582951457738727258027645479636879207614944731374027303611082926776560550427345925287569299155586807367397947127138426399314005703526437140248022039515474104657242511086524230480885593148264773941860963733136979088303442713206602573993437365703147291585242683947187890395082472690381886446161968738272591312260710894316731711957002418654670434228776834127447561714008660507368144000867342954439127463525287872627679703920167024000767318747184447113938717142981811848065740749493163412300361644123402391253548752335256031796338746188038382621981679639921820436375461420100989951550754103401927325176299377292587616768788879926124117242604418942656581960772457207495480577571142099439187373363860418054913964649819137781407769741574185604477893603068131505034837278563350918876588098898931589317821362594920662692616360678707766874369943783960211037898114194172429443520203419619649544773371289994549436041091303749114511346752333741469271475346396506892778436375174733054322966224908044762381613554700613619302069171879581764677220705245537004169392247245482495643288322824358563856243760403277859544594088666376156914435517256230146203214271942995053906213110221379292083978756739861410777722086780349912053362016700269800426603676112443517458892546381991771316527196849170944527879803499365499374145053837959745505608101439288647829165873458135449676550594543798408260653618560085098855957540256863135466493222062250047385251273972243796437693331712558487198407380536549886394922332853006409075004243655475728820628003656513673236894521280882364302242941979257227364227177540792115730959785972496938729081367379331126422956401694078860861088448671344919331869669478725293175118221240573744355336569145408915493751722760050401747762754680087233877973657095317428667840087170880241386085784729050661632392768511563179933150454785183893887395532714798575223076872456806601684382007720205813963954150656513396203527527770897281684947271531984189781085504431545696665390896305273241616237541516409854083912319756026196464097073903308179065776637616925447952922718173731761606177886121743580035239995034787247734549842121175034744742793947554666881274166008796251213877555817914423133609099751210353487565920493940516051754126307276659777562514212617534570122169338373112686937848179934508299192231040600615285842621062004229144574390103555798040478124583162426877854770153832034114681226894050386078681238266156989799554419823522961256153134645761196241226413179077410424545677813185949539344032518563105144311655505384276056564796256000207549569057263399429010960156326185427961139090814478185311908589166718056436093145056191360291393691133642808795385058377816511938408085445424045078282986416644316476671304748411753274752482554294510746191512482345261079985186773561451828327067074403653262886286713269849927645113281151851970744248341929224484548684318890456738181006042642674404710646019536359451004307658172082773806618480332695833706015448610747650490106654510146070625285480816411753011365130780266158006598814010176643640407404916869380878695963182482364205072640808087327216122255327557631768522425659438077693992071175916049089510234193597919938503412438902899031453146643025850424342960725375076879039308736337863669342863962961287539148762884509819425445762673019001995360594903125767493055767389107178882527019911975109717285341432422240445095411181969858095405910472544532388493067709723543787070763983149396752388654460211067041843876529494998647308205575519770492074935538429699867234126421874053024335670986349994469458141016107475648916045240518175910375506878406093606073569145694177257327522080256710683563947788241873430036511694448682565522385319011527786843516788664034043871670230013529102224187675592143418768987287568499771865287155067962186279685938864197950999402766603733509068671601319240134705593680748320117698603172563384949268647829585025752134087680977691654883228904323525244045015338129969774262014818806820468363810202923749075365038136814009786946150532229272342445112153940452154739362699255505278137669579442677827907410688995843491119363391163559131794443140417261085033620299962096374645914347771400976470426327581118083011287310287718708904611630448980789598319791760915229644319318507777210479031392181817537175552393664101953468466999480849274488398509186500858405075603781400576023057415156030729266662161044005478364507880785055181734174527617760524759886012417435476566412811662642905540153118236596107757213342933589352275409281582989809567993186918902188363938094716996115801235645209267254638867638582679190832372269523150268419811662120519760184700700932498638555875702072576369328210397712027785475344475893657922575424249396819127211960073631689580855271577996830493687542600520724872978995705742554253094117802613352065756968037274707054367279402471527900921677968504103066512835388797340776120839465626399787561383426669841943596311689224694239930491701556411683363102804871204967610024230523379205467349183770275763098488941015855734928522587159124995111594538011498627434375434649367788422733287225541355835597170074825439487450331594328565421720794543350042663882814562330764916278626909241567653240935227582880688450154993275614731808289475962544160550558640437716557166562195762991608013495508777048378827529309672502857492830991783240739654303252421228770664774172149841499007547890332203508429264467178098699881345731466537983999656426470315255286962570472097654932434446744613545436598148529420815305947517052823791401872353137855818651936737348165836584409434646499033169793639758038638697840882855902054861729619330234683179301998915408668174222921295476685673241921097071668579921932296845636360197517179606466541270950004273122450162355590944828811332192137233899880814417663720545391782318451967703520257967547526927447660215936839180899713112463006629775317507185246676171968790686467572954804482421973051799306907025195895376438411652032970627436916491625929310341042818868116546191109094406925436333212652262152465065108443324011931367730205472818517440993800347153578337204602139494081654212233027339224556319359578711650912008626089830691486100204810059253140520489124352260920629123593081014158075422950157329168161922712297746456328056227084403570712958437949297480166964817623398448587494693724921914332894412101944525670308514056755663547240877941584322335834345276078548813638162760725988117817757057049668421904102868064498488175432289961533508224044813636990218407613701193533420656678103403998817207128907083066251797245997130395359899238041284376896975318720342048409547134060895798623676589776052375053579441107687670521792548270678014619961975182980975329653424740999904720748204378716430067461080417022613453851072789184450521278384313559129569313544112394267998330598082321439588284436125594742511938115950222840508695095397703100982760604195927273429667217291276896022709508163190587114056170687702796397274519224176786130601893653000981029747245249503295996456306985305994997354155036828451603125303320318412657152709749289378444415573957338373746712285892460257723303392634147565395682006016005526542679992324779761418123609757682177137404048504618670579964462325744313323779807345374924910543288829183794019312015392853844663317990397125080088072561346543792232178980932469296122464775984499705132321517501912456763010169924385804577324043237547479688606299848361186846151273986320525663082870712625475027722670031583849599985045845204598856377100933893633164417083388019558615564875675392993868140735473971081459525292910797901771382412025766953160505704612166806390956159843050943713796373202704317782773975521639274551851043089863167726021364187361609389166131782567173174128879827268141556245117584756409761150987153038387378924238323232550582166549364603920879963545877178320220056684424084729031272897944293455424248283589648889167290865528447892717646839569097155093923904485311938612496384438719489829269102432174329052741040529877830621154878266773556953849068341814324138540521094192648012503754492733254727072756511830468154529141485285432506456430212107022367922578795091392179263426107102023742118465186820634771442780610617004258137412440046868666584189160059063362342231826505022404336675583568723232018271248077975845959739437779974911928761565050586763439516484535573911921938356417700155141494341628494328933739631678441339267643745686375598918974911648100259685757986755076700543817705105185572378022170709994970794980418133001523811408467702442148715696910344728689860888140832670260329423529832628253682526736403359908787377066191353675889913516247880920385791944582226894627590955013325150185579694118831804444791940887739609109661422901304816710217989628424391419321584295201913078663011838776687215728382725997112118504038292137452913348689571842639587980066941207972982199412477188472064190816851919109547882302208127244655583224913008599853212067709895618512784582163404525398047039080252030313469071936261220093754263039626651468008605977594027200204329425932657893996207528008251907753067517043859575758190604434690891141509282715436619403197727803995590966858244811052760831030483151672808080696849718167856030800536902049641301151246481473104987526911074423149646880882308095698097610837865812023300043575008919844871535151411005801080549794520685146350144863281858104704203126887605340367259472566144210072503542359048295416274434298904449494845139696638856534380374154529508444868390795570592387534765650795811612534664287066667302525140265059432767916391990773981416551112806724324325620257840505814654190841132794536293894196300615580376133654462706331901724604655382632092159681378174278067726242966809257035846976703462895294411456602103352040017009969288349982555890810809103939235342853099534907911087089781286006993287689345847132640564589652609227022395659898509113840538402592484745319517329219155967681322305373523529763633713913920907043284154016924696266456740908180655648536758096794445023282462115117848138484431778865237566351042808938411775751486510258410895380253731112550637130585150363017448355574334118382931483181935763037398458705750508568419125868346247312188370908839810372131861182200269554708828126232578254663879525015157872600440078390325007723608367331475800665578063501920858371079496547599933387196353091880506027405937514019171390662989233728660466024542082985621738230068350238350151787737283869750645689988051195257392595573445218863337565343360524999390454816215790325731510182146273742758166083135809434616798434343440512108065897908615335608510638207776794982998013344163334731267580596439233331734310500285761469502423138732188489745595146309052935125716063082836986714325833579928744625234762161568117876226198726158097239571414615061219230370119395357062650837880893325037892462281685873997107380949521713436504513918948043857493595209348666869426502599110037182571817968304656636494451412940858953250663413384446618257087796710387900275932541252250407816869272288307339088148099741368821661870721743986755998967416765896942996202069288231495565502045815872102860554687524514198692327226133787422778974967539403102923217903954545214550815423423228723368116972549350767638131188615396489088081311001764774337399886102752600345712805195348547981257576305332687077410330189193626717428766865810942112796966977253522045690803591327862631644702885099958947465348822234798966447249178879389192289704801513175482158725591154520813235455592772784412495447892076094133755541765328217135158400188810732144992969830116989566064804262703620530177317422985702872124087833039887776344817104555296810492068469923994482868673951324013404012322748722813428568259907177896905684974797713412491471075252234809360693960427128269252686201680086841790584076835824273339199018298373813518028558331156359528628237818219162402700790676219017573974471548161606661306658878595306549685845636819792698491168864877345138678880057608508390231871646546313818057288467111603588370412238732377791465132492177573231387543310626558310770640414337251428561151759657182693827675520432955784565694654607085505681056243148708327086267017456079546705583812680477354002980328049095093739450688808533937126100455274692045327194218289646199436304907132365570902187931242303458174433733142410555031739990528388154667123985647618901858669201447186722049732908397763087014547865972379656360632589696846175938481536024729057110994607934243873465104057491697900556252670606384045432321673134702317261702462983294442002843306671503013348520759408732437476161972751175845586652027641846938916810636093614727180132868380696360664852516343123409483389043390943512323281299235478071487338374060156784238312463953454791009127847535980263707905501618482250894393552118059432351444470988220828750068344701870096548165397067327767664606281612338559966028993110370129461954133929272262187291274694116174501319792660570341179982780587369870876512212081639740793955945161181589142790175911178254289999538207281774599007448376947714699001109805126120490480166966921922024337364099728485983604498224352050624910080122646773830276075232676339603781258254742352059600093782528533092246140688147544985269341043967992959267633395229123378153889497553607131488415380063954566533360353240081142054903838020592822313103555107168281649527541735344595146533800581260425378236070158060380487208110034426022868478460669979105013277760872045656516307873544849489286646617774990271130185742040924332596859567072204647201911599796310114780259357222388581973830342780863745868803369583410285046829975672312939770610569041610271757663048370556923428470998582070596464230661016934812157209508354079992859957078485951517412843898629490690636376885710253935748451345173670929362127944544495488046567523556349880730488392478928033188066881229053744469449062923652608420274449558508799786426758530085050882470066959390684155391251405962136181671931994564399785964047889360837906648898331217296699611125605955244894663230516361702783869258444761527345078117433706269240978832430193962086156765485504844112520905402307449797667922723226199494426433561386180172442794031257982650184044771499622443459089238631085186029223519516721874225026475403936160045277529264991176061483185469776734691518804911991983823967213380527843668559014124814328806975891414146448864987129500092483529086006718233291676855183674540410125736514235717673908186245684000784705757788717094175729920182071972704056720026700493548985668047496669613330198282176600885945879772400041213324061377684853276732143835991425374120792116539214267938987441417270387744779414579345789970149275805589909913075283740984919515904683306741008437450872491122493318164297127999040984631404084785607395053376383475860235779577491605348094901878011128014279166879141104200271497910722595413231562178533836685857180639762635765681933054065631859133030139869142861058145711296389488531086038036652715093821929952916773537099911905148216659972822582431930583627344423047534298612213918309391076287988550095366050774755597711449983893100825612091397764928905350544526943908842867974711734435303526173955455936851391030608483874669256655693909715848681676080633633690992529375932123308042239912122918868023135057554279799887945643764568589461268098138322484538076227899553642877336584593588219285338321695843287705766752653825408457871169470989335270115715375199426740192306075826253863406189105077831546263943609607780524340310642634255077485689751694327659042901374747554860036821114179528421479747931996359335823104984776603795134064546953003509759917814739071089546416538551287818351449460450244729716719273250158524891072829916530374070207392016551717787031199013333155877672248614797726870895065975099257763486198752826853478469174106062086533511200759572969026643011154151772768589839217456979285236073383248801556548682424451797893899579786530226026469130304978250241610422608575652197538847825365439182548794673037358634388401178235657948041580488361337654342617411377463019480903782557773484834624318602036019065919545273817898730784865985488914592888943713172592804730737916289977361149260747623047834447207352080094273207875997635680881253994048180666771503985052590233029306162105684942550950449876966037752065353365137186646545444865931237527976669026636075336386260437362617978829500388939722860936919938383529580732891902817230165534362531022128281720183208730631800317924657057080639694441241545234622691524381620874776844636571291367146825040219938925874741949490524132665063139501938274641146614566920803916345455563927648987445226109013930006587579684178381026547967853669750097949640413520860820113880999368527818498639663506225096016829454305131584564775053151881641844409748115439116441784537200548723254086056905428184927990732887353364880386909267884110142196548258865063269607602169129460811767345937770515573825692428615572742216252964395401323446553213327809356897644135614678598819199150986256341102546691561138933902753250916944183175719581072889801615555780218095161711110848739077045788976524321376305389519141522536221993519502666627325874531939801970741809082053036129894869432131286798720403907161540749840091370276410921926721656431609095425359075376096679185693442758437550477971414806173353942343976092435320288183674226972342489203602031410064938521514453713794674791405061043448238901867869055830543429436141743585740280252038723799514949023949902428889622897975267446979225631927755547781121432006203710278502434737527150148292634990488418809069514560335443711816745347421712370514381998720942703486313712073605813831169484532003521379920548707874449383559503775563844946772492219508096437928152483783750671695735820718925152140004709578950072579477015150159808288367350149793747440384957036668417961194429073689437064685564202423843763812102771743855913940766377243114518832145656501146279296225731743396204275206704342321983284169289673501246755180710337035196257731960664842013205563502037660616647332633480162784027321134544646135435070411451262973113936780265251495941270503830606771561441648684198405499846923585400236520402214317894771140280752152703566372839782343118327832859726328157837155311316136246215921495581127422410574987903127710068702260518487890855028154840836681809925209772901646835147911094017860990379822660771748965341139472115031052589780982982821466460702791185303384913544882421837063434228067827150045305191246813039079743664717469817439376611098581959337676867894058943391504305784154006729179470938710166291711342359044043298262368697509052102769515256390426518017689264449488311173499456735304936876764468753093971649872128600987361848568881023818482929577530462570117515916148657748371956782127272669380098910569270400990043154029926804750023359552837507360125118947741000377661036267163478331413932189997951645622634377662337024634751509471651685354830572294560180014953814067034679344291665349240186530479753519685638247285591098788078292203653024744764293445035444514204743761984267287340049616307159668130931848356591025753280486992653399112065142480019916494357342426982310025026822804750399005544824321821400659980914333874517723391787434222291100567127306133002258160246152484108248261590280042768394401508430217276103875493375925134285527515224127904163451753861249233787878256018587391796135553811660655399825865933279620751177963484906183846563051385000049577426539935726274903444644684992767038559485157743547663121273146795122304417473356356431221882426766210848632631976376558629491024953653197279449952900999770862942407483750756410955523178249760031455681115477026544658346869476453138927021186100753174377383996632874542851574765798041618478447721989574240630432360027784847512096189816442262263956211547835567424645705540492709401040410976720308054185108124217955601276998684146581262937035425540702762491065727456310270020367358050376752041456283546350769435253079419813956255616476438279890969656495791464322494024639536293950586049743129865681546175152994822064716148717877674954212670734344514556909268469711514543336082893520111461318209079257617841180425322500690426012468304020561686034611248704018317857850391895917949068763661578874298901226343649775029034876701200119688787046520167438374986824193590568840779089309218448404673805899979146297083467364035537816297907276461003546850029479560104028984113366062576945183684166095903595473891797836747316190925400250062786109173145845086846979856217715888321079865669267544195934464081848037413775828041102227246666401898862972968219511535228479558238773375822395536208843355481079445398108741971241288403461735648500465287190557496842386065982042621544885383622802466776544175012033154991423584638114919310076243428831709665782402740033620780422258632701003219524843720198480183656423275749620202302541994979638968023874109128912483522661857285517284641947666315453864256254977778201498092929341960149051641675756746069537808710578530137882112042990776672531586998046126614281408950810992621694667647138679833204261769869680134895171421647899615530774037561843056070476628941992698748616855297998874238926082393213139794531606312414035081686029934575672898470405115547573315989528583072617048625823885738565039847041587536743771700776394598627511597824622592379916259348851974478385552523287671590099193095084476694041838328181903552375111364117017138158806326200741792725470009771577968314919682967557135130790443985288413607560588519640362531674542957797289991141174721728781183572213639526572581243647024415031751809946213274798836853105186712755232424879992305794576537199510885666060875798973856616270093922320606557606824042430145745417568830744773387812209666824003814567458600052915601591294830695803335064187103985223050676932482417588889726486551753707222193635683725051886222210169108409825259668170525480547154043280586334184632739022630837869087289195083200398178574030827965584096936573637214996044468578795603857563905809759146364067419820260663095607142981460792028618603901096397042148176951244622257778938938897756771938078938943810304288052639199223743282963507922671570167982356576632444360412277641206513618242167308695634258558578519451532318385308612498489129913150994809309703234242144714446185350375807099602525041002351374731382207032843187446150492777678520601070862248417414734590718668035594967299085008546324236793840498424336612788046380971399086148276846872758999498036302957513430750477011543357838480912794078574485882595860011981761303482910276247980761088906265708856574739869416609032792077091819555841908159166687995792315729469973796169895458115574343918162817602778442759932630936945589407501150866695076861203973247746468860876031079484890949190411212622153153375362139435699732118587673983359676563558089742192064233990237652934822986499314508854092390932660435227903636478383212601365696842124694973144903707438001156458675564549832748658803558146440769982888919313178970177991906072410839957733290172138593728111297173438758178542736873227276571572176569698378128710112584260881869653862713676134514537728392771011570055019845476495961425271728270543146479781652651898299680794677441549368626917996214418431252735306535522570718704059160375324169036161256250625688280016207424744534699486324786018301579904439094219765773915643055057878105831512331123643398435357888546581895453822400504085954964217567544491312134962906822682163913955559826335955778738145560974594958292213731470254294823489688291556593327157027199187406926314473206414378864863649369417270089577688659849593320718325107929180720986020685693363864175785798320435390175421639681949986686608893695386438275789117731523605156326860596862740576360009224748674653225122128841619348889416099368044640212538375802037058466337709111710630207313030582664736802439649848708146309260341719410317972206055972644697584984755393232015729320200074968837382939213010831167128108064792094709027213510901348567292606058932215019123821277735347614127503635984968413671359624211304617387981171313070927953657803060502214374845272360559531681379205200423143489108806443311571005517556923190594089402451532111234167588700647452689856303307723220563371413372623561646852289782814194728151357456377397890527322496090922585113147770155533367096824129366580041627351240624082531680110188180053759762045251811722309914550624892494486340805819295828552430936507141944593913635825104382355037838469326111142141532191122326329075542166894527205201754803725537443011850838527120562894350155443277395302339130067583599449199594688014779425952726326509250592770665186134876289458027434934751431345617389276707132345546490607372653934496650028272258633551330202120232544455591749430440231724224247561069321140720212744200554901486420651257132356294980606237020908212248163157883225396765348477744523815654295669808656589020791985308914996627865071295774183664291705653346095377853289067302811968332438569593533151836813234503160564503124540492811345708410853483973042568377969012697171396252906350952904886961433975881099605448101656830600988534608128840479474601225542674547142853327508121605264912954278798032459787837338372690575324322145542742680514295975421857141848390029614053366910978166509902223824269514405074389346434275274112334848758894767340306839727885798548355035530696332728875133445352024944475757494294744583970722047526371780953406873901825445919202603294418762314374122154413644449371807196706709790799274592840038701167220977259738836590229230298163964011607199123791569690163164015643967482088661920529241171621373213188525183873344332417904012549574760297294447552574345446441454405219958651289643312491138013569574887848446108545890089082760628065969674355806623835875355173978768674282567491105098581519319188863542774387040679860472041160949447541680613679155272392820754259780654404022090287867785986780661593090698642287321732178538132119162730456290712712499410537199627576580954311552498472478834746181203475647325961303656054574126196957693497215229064481138294630024346386037695946195265664735999749066602366381970721922777657955952928048608055305421621108730545065372571344118190877602433557266271524796808135708685053868928771587164614856658834072505044003503100873426486546170170583231739852015364435718694596504524811312430049326448250572491039093783557981492182174956621528781805982888370584556461587054841949145581887221955866882122479617213593399655885824396982361516130596233535710172314854329205151087460430302938683921485412160200205871385049835818864520094207663430354451838482139171375405403738295968178674151562317875821644925444195509955436486181822752111213678805211753365382340975255096186645785803806638662738220082636499600707409105037364728172890721580952024882432741404802162149085013459169800258038328730584821187960586543239728393415506894325394354015783354029583046642156557265234601774240569521540942881859234720453599726217071380933574710849063157570463021176864821836213294568365113096424370518983049049060515325368124413189767359917908859958941433454825732302807127556273826809835409951608460925242015947699384622107548440251004232548518576832986726237640416460133147872390242267085775849544327813259779351119096556131886271209837891889885611471480177104948661077315948354268050990398079970125793067452448791788266191478996366326832401758535555585544843315079230472381356265993770579163205171619444161713885814366260768136778362653658779533022719708503091950780465676369875724674267009144101910447323821794559626422183615708691648220113336150050833672716000554904471123283011065042780676275407861443716983536117836056115646583887297630226380185430355553886675958915004287727085167854750866180828269581431939839325598669725009694913082022522122245314096532778035952804577480067802194444644808969366608936903657934224482385150676806926239634973217182418772695284198850021472163337839631562069837490069668400670155395632169815406530742421831483984072534525715679842865227485846106199551160947958469776776422569205515764499182701785521077156769567945626158034398005435438480893649769948040815533092291255028091225715927874562732702772866261144060196573057303065882769171751970598881115210129137924312464414926680016330740957559142420126603079811047761502788866196787900955745949175612785591308176874701629637225352287964315300598093244596965259873866847959702366073364883045157173222521623278078063752628483248369828084283806548258393885246258585199334263326363692267811974643466595934074913345377135563951458292900390547895608465920958757237246047402054387490233069797845564596083183937420488872552212902813823480357736300965607293195122632651828546905363843651134239555414119671522612870280531510256576128809850831482111349280289535180308919551467830803064519882248280461169219065130461667880536990112677190803484783418583933096750778620375795351381507298659707567897904314034561721961429836242497209141787853776359390208544695041786446917125997884678667103013063578320178256929440580333412113163014610180655296698036754218111215090412415937808229073357434678024961014683133461972220049759575891735206862943379854088691259322117647078697018310809261398683482068723930173331638947945973131490293686973112397386713691760987303479935492673188522983604809686732379695502861572114447270013690342949299319233955209986326305942474324160898721744649084580198635046013888133870945091736457569881498702914850059885479230053320343020514594292252660226096874537249336124472078952253955161145255791572669268918229321403479670052489636877102051619217056019041706047665625078233422761988715831204909744649047155509851926527534567754069234009293597475307981700984769621196116678180930114533132883239172023612314069123797392381703521192400667081132702455820295972979492743013155277861285779463545710690122254859204206168831757676966744910108587083401670997262403370121636313440487575086724261812560128470536578874077614217149804495093961059613790143788717904625764777000722760827902718711228884036469640345242136026391204342608840087918500341076174069720055665155081730189464521256474033684501856826890891717259370878948823167929486591970302403181616062427105543714910292607655747801454016164700266576131354124337388096541760163233303384246889526715439577306734948442412573826941957573772764227496316272801624246975092162549022345992562635168950383582433034356210017741357826343249847544268809762824442856738234324972796398689885014319798983553766143010646021681007356063911987014240309945338670515783520559063185497542085082263990271206218931033056072350662367898499900995463184940165819871617170484747678587311472394100871750559675627172162412579579890519460777062752785389499926290500712652171704986451944280758100484626747918064399950359668309667833838370574537954090138593584674465637652921981590715970431491025566750888162431923554254998981690703403258758649843607485195622053720091745996907002849118675275207256800888314429868643601668210400316138354520761646085363744434172625378295409347889248717990319542897974819753750225427414916918741442379284891181320188538171231355178082136629767470618709121047694372259963219790715114599922332192177473753543427227464043431149165797306855749129328436696095600519271218315623550872258319178210053496753846955150462905495481504182592659699675454085322272343861662007845367088076970962773697478880454322209100340163583493311545618832977445289866237609804238070332416949227591105875560510565954271557882877718521011587956414611260855445229794717402237280879306547032168594385843126489995238090267850715112231496460466983479399599126377370111241079226210705824273374601643842396860849746506496580719126533953081696842258616958083858584811216279122101431458387756841258506491296984258570786389800281062863354566477130301261560806770833359364188952210776169618328489083525549941869546504268842597661508403258227760787207305983972472624315432854387976036306712799734710760704689646598389954888197109383793193756199502964874815739678364774228892126433895325041144906486396323248611163386222552249976093674046139122306833643583488665540117001442277366643561443731327631888059428591240873573441633178572876842313458378978482102312754717485170548025195021291429803586957814923725521391763591929012739591296416141321534424219869191196210498289343030360660501290484284209097135478662381784258395785219748706838417898551786163835383667119081877587862390129349844450164597453819183601857220663387770931583873963115136266467962647469457646147017879841569961701670880914312078045164031154116656513745344476275210987343647748417114785874295221147984023407314158585273172370478292722710110512048071277374354829274495692961252597907525414612704216525288114230340764734663963015150835059390110304202552709387470742851969797150052893455302748582699504656993595618458273509501004122968777805182477467148652948231991190685742079767815194427181672105240336533711440986017159439784095311651633207217681483275968645017143139709034411431636679029314158923767994625689711310480697226442132013143382467644792738222167124549733578742571177871242865178064054700978956364404090515784450177546651705198488703376680509458683473786185084659597972814127369235357262783572080589948268232906865723955671326123907667557500748117881026870706873476884536551830566827288112846302012268008805523452568538513525845658246547843227264615559690294552141203718305520195838876577655643844167885823821759231427659359947027781997023961207122154982297244691037780737305486120822665378750773342588971439972925526927923772738494973780304910518793066523985525213402178510762301619535437357327749720107972583491801762231240503066616954713135967824241605628569975590758369274459448050640018472508102390987971067322025915279480612638069377000321641529098596839714864007499446337530491835753877734249350785083056907145516767137191179745233442992662653034419094948531964515873790571597422551892918004925971265129737774201085563895315089544216885625785576117240024705675190161605643955547931043602624823909543373138644659717100371245313047661538473728449054066681393248910305669992007960384280539077251061404158878715854997807995760301432723568001374201577701442077460529930694703643544155558119920962715053973013339771768968256353784438857319427251764555219758230709882816939537300404341178989236684901501244194393289642849362079894658531481998546438080188597930827078967391469092650866760015255222197363823479447277713372917393028084129137577890947862067753588072463831123840217595878727527733945757100580782299402834011513479126434339773249551011167721249865988367331014819637596972681469199329727008451524635818193422819708949754035403885953888058621320986057732646728693813268304963933027874947624173511473880904768633931273476144589627411245305819269242266041255567958340094273373187745917260993661170706626890015975679954722336777978047960485436619215486583622221039243554595557153959928115364501211612789716274617909803281164485445507340563734432381847042874120215101133461754582510561541414386266235899418215541773362856032606217855874520449345261398820979711435749824085025898502090462081134010350994381904348541986000301342478453796711575114741970913527137542705507984248966308130538490085760787210236661673760184539445285311842939119715919734266237878529650875690635696355698757516322296733904650608715777272436802672748798977295609747378262992364974898123159516765155372253756138803698641455850704174226611598099686625822468288172051364799044756197805787781901569294205428616429133053145053648260883546007535779224869909462738285640042870314790381281004794333928718818192062386194195430229196618008809218506027256020334277471056646341973109036007779863384752600989327675855222832713078599992851423107268436175763787597293409181217844590162072859476175228806782080665918722861205757781158025170145591165623668123253901211562203946744600907995898261196071507428435506721909237337612980566075336929825898714054198493073206298022377109601972771685805544110745314610169552144968029249338129056703252194536128336673790360840144931720037385206783870496633966668146559115386323471929270241112099308139572164019429495666894000287984841891314992262646127754732724454563931308997379503640769539550908518071304522635957501303139797050842641347633818223862894625287918121194783389627256444414833019241467826206524831977781249591397469068772339088799164273854326298854484605882194731253563352473056433636693872082622285019557769513993910466393487809095023514093495857511699193562106255246177062540088989791922943953573663045708368277740052793083817693946638127222378145124384330801592289317005327923567984002235672924644526483650356411722774694754549381584736841502134329926719967498186542293567939419451610475311764525371373428962953831183974721917529042716759210979937677422487762563069501216697267395773047155044994844638270318862782921650325533801825799064981361407240725991063284140781884236094031303946770712627038449249853268226294020093564111977668938297248321991434122719936026801787310097634671468050445675744731487827304996090760758318992699669091709765245964800992976872201865677742753760640328507310768112745692614489490831907960562347855391546009903625908335358742454009747293301069659824929991172957401905235687327293409003462360284944352202446916065376420667272729509533589973266042371439178918642862124925644880068773980559526175791158705974900490072416068548744202661723495761216655706737402467381759349398884513476680177662834140486042400218481424975341421381768017066347962318981194437070643762818719193112742385657429722547977389284844516105831971035119417171952195990441347156374739266035863652757980160067756650309621376718097956426871726089741534064806781649359889053578767492402735656543993995394043978594435316072732126250827057643300429305910139276332792256429397964866166743374713711589559702413195265312411089442353591862613993556562442600659621337164162263085082133869665335964446001074551118300306711995622491957100574874169493685431313382693325339262536531044242825377938078025318445349611608899676192139704084280217379616110824974452736566437812713745268818892204359579322071356329086011583876768189450607902458069060734148280614635537822377874475682101358871058673482535989599062471464947990176325973485547725380820469665197279274312914720776092493451991417825215931345860156236027716421334090122210041472171384122599932930786654655274317097781359279328975369775980062970602321253190804322864050572015862589657615010919521250588154397634757069061682707224735059884952081985132216599166261650058261155302296577133422065739467193492543070220734476998343643074060142421780155040300670086104875846854840622046298495315821500197294618440947406818434884206768822476029401344072658201215305592975386043239411198359901498627762700715863310166107975481161374775011555258352480372495134061240695597913908490283728079186787042911784331906449412205358001957868949588670805218555146842175763252534921233463185710461136589611668376891553344264289319922904188154068930360096326496866359528950157033615675229805344374334955694082666284746916271538781456048963998618812267546388712546708831276822859828712457306373206184642567369754105188936935686695972234889475288167853179799399817416319554442907209229649457589964156666225609850766982252374153716154105012185912499315041412156984192705555622852326540395049112542757884469485540919040951178601505561751723894676075605714209144818534580379096302276360600001522369289193025999166795637777383092281010381394158273633205950756821015288238119022388322023798326640802165179898089889622054326064986985250816928398782203897910715268038073565091659766477522945389590092385266356020152825416722494632646878951396326258800740489967588046419454763728714862028089924762413899713100982186630393935545605389003586423304717873242042689006948466444590296189049953800772521239276424528375564323125656792280812067941133823952099315931087068400266026441407423346723744373066327530778960512961067417797602229712432275114275656584033350611398611563492978976218311269511504623136183299171730218147310173881855895761938358331661753505306129705140283858955523296354641670115587940345422293643567100025703392968938475800956306146728498769139308387593890241524629516178930525976081783459778681913126571503951791331154331996615091027293545135873154952207384332937564504268981671181390971156882065878667940838364747719811339546543551871322714641377008629128490682144132598927269329990261370394497807648591906838732707528929474433769777113800051535591848795739525833045819814257671594030586721056844938177183266090740806224006577174573751572035876681064691466523561147000694079757505090906353708023042054119943364625183853585577429467956831504877288754222239009001445439804450967313070744576863858209521972264531935723827529110593753380807006145305880851012749636528871449008753874052113275744655467839020049342780025137210200261637842313098472276480722256905303883434432054503297764399882770549712327798576824382958621937649748294283904045206348557667172022494283678691371415913533775878557124926298059868346470850834158856292161382744160431746192648810616901588783023887802637480957131757112306831001470511489862181134931666895175751044788465208174264663903122806146079742253828271823394907904540726111008070257404234720228778357101717089806971726665350787575675211369563879955816123425011833040162397792567980457714195931279112475457603458839849903888897706458449016654291203768624955418235757629149062421011655485255718892177065825306827958447217159097268099737173320540053037988712510707726601434160264057507938268050055915990364082287481570852334216187330703121309769387439744884931183304447716258373021582308984579742567407208896957201950091118715768729136386627851919917893264244687087796505507327779685393083918322850212978018278588823845097937252973942183209466553061450880551898899498867728761696488833782000340976249718404728349714604770381311088004392005589761237006631416142686507927108671406208255181577306236372760767515754636358673785216809995920692091112186625289798650211197300636640748661224385513340788396537398362811943808265099076939269255827461521585025670302781613679772427475335291163861147564579319779456895320671722539940588252729735043965937056800402994386501465555140363027854436888400872017258014940252028561950985001765860314421981702936717634750065825386397102785923340845363218435097609056458676543779830434305692978159800656583562260363100199005301504755522586310781249800793434955210313256406066159593074542370387729984779615425984741063032151016628968086452240717181084315284493981998350648067176044632385066802422164797190765429224384459101563613565458694828683654940683127732123920308595769022594730292146933648710614727441877892628763522855555224542375219511960426689248508824430275447002381480883664090506171845068731775604904463263993745124045747722962267626912929976713020104299403072319056629372911735200878827994890596044701037626073354944531703698891326300997125610210350854334429331795984364563488163436402414674937640374010860826827791417160512810726446216528264541343241132003410625084713701288324825612163119942504959871982588188611366126726520838050029989706014979034430902531468658658634058638861798697573827801474135139580592214957081579893378626727271335553905669864112000642121614382777067773709795088842197804923938049712964243649795388901342103600906377761975144153180256605018449099226617478173043632149432898853305401334756401345846052938360659970015484768873311239735706495050560466701157910183160082133266928999392793165834704010292364274833278295873480451399783962017079913869708624249569820922449886589489366617863443405701062813155127980492208708804375448073400976758606209232985802491579931408908057506548436585413864382515144868231957680143059547386049591601963617624907732015730582411779991281627487229773897476419028319489330020142129005072700145712962289853145140916591204579771668584619041459573646039270304516104248182292290687713118995792469813084725185515009476469433706141303974136462691354704892852963295604460030641542300005957846187808057383054538512023955054279867481984933754471004669350715007562056651988871044466821360540022038545289453479509125289443199999356981435123930604207414966382589007848102144910314990151404496323429348915304502097200992199599033876984657790232891341536430549153630758699652776452277594947959921182289020317284307385088155101783882096586436290461519415443947821428373094692577611991000073033545264636134923584519453668794702477108994610995279010283356631063946413842796631956419976328481667512827063505337231318867979380079353276560748142396157579763875338557130746111420378783051534380418285752450667857794773826770500541896642946001923988802127944973116969445178730067799703491713962283715939777144206575784504897664442928794879675265594955652692287460961127026408387451998982740564612541925602205099851117232347428214739810552985783152570682740784166434885699792511259308057752551939484931957234786147987894574315888144865889779813100373812178519844387826941299195709830067586501276957771897898969180200471071176559794922977568716083217310034507557867268316757844969048613451702305726445823861542095431511120889142729694608579365605474805770336606537686405705701655687484302723137437351276952075442557888546049067275836134802578802804591222272264608679233777455292789998521008439877341051323528592239418081328040443886898420475926816910027279326702187443358017998702158524600713243861012825284432446656073327009257147301925318194332894586127916778448409834682932014806559874248364050246998893376440741157331632917827657581439703444860999268408233562332732112224811728013097488721711084951768067796821659590364725801218375657935670892193045067987574793980939744415977335392267824405429532343683245085381832840813526082715843587493474427377094489340222568549306307519927630498089100370968018506178348760146719609088409824633715893397934694711035521820183919526214996947923335956651762665831079014231094942723377774517186386513710420671718740889838066898042106644244586500037618240097423018238346147478469018853753675589287484262136592210201517523931751373195102852015643720261591278096731225508261204383679774167879957643794933234593569679510517603428788769927959747955915505427730762069142755237099095491879997081003021318546584543263667394835060312920857858279931989557417553071128893367372803642334322179080344317166756337247928010291267699894028467134106555661559253764997728248460371198948987546055393535761328751336231704988027440229227400089156428242392056048363965627578760307420577475761303786392282908920268164808294649424408233355718746276827600218367371198195357054265202506709962893404677427993014618254016545934644562175311190844678086069314068660073960182240498236213519975386311665280655819178306383574661693307053568921227242683136675987943585817905726777338767122539074729579362226728335879998697510738443549846999188224583031681799720566124400071104873268984849407364162066139666756908410746791170853948286856101783795562698242056172647561245547725023266698295689229939688300826196348376086745962293777876360152445992506118679913597249946402549300322626836993076929594884978440603308985599887493443046564338726013446104791453610259793163020151166268340111572100460659389815466758783322351012305542747070336979511794039697803320825618296441451326578837252537867519118761153229597908606349507552606326866050983469792303839761170011065145663806593004557278905669896877518469898189252526516863138726120150836194314403799907741382495710075145076057696813657500275678655423941484096079338293507839653123674360766531213974906198805401884625129196435335313465451759603309525448734745219339133466667480884102083433342811071754265526209245522131403204186066623896924663768829306513621256548260566130976644121823472723887654875009154721651851823449805875197619041734870711015060633870662515685877516820729136691394707548359918314569015538043323744596804028930532592506366701773116315430268028495287926888568803775837209692096180247661236652326414305646528994029497307278477015094435156772935963758545260897508344580318519173744236795791057311720298337572265000858301439534293241808151939675644734478639142953167984367252871658572843915042497979690910581460179125702872252504189939680453034123309097561476211144360951699419467735353479379009343980490597935983848100446598317521207893372535102503919607672368840251038160647622748217191478225973569181750906332858779180169970439873519265199810273017836184842834400297256443114457337416539414168053893349116728269272838916601648579349409130837599143316037857359878135642373268728976993147139290319431006673718223153224237752183224446142862245144240090796742867441183427991472718490930332858436917396001135626519622897544747669568158115010929402756212097897931923944521384548908731493928492953226206952600823961460796966229316998074988616842753374772435828355559573994888108763480484666740354452637311541268610610261427496492500246773469402588853602731159103211861940442254416038347966231139744038362732930934192372703579797102397477783437973680382729251068362536920204325819600216051590216066320889096474911097237231657758820463758349853080166235210704810946326509119182472742729484974888363702560969634299931618459014159723642358004368434478044824519721603716691936807435524556137795311840261589089159381608870688938905832088838283499592855868138072785950667768911748607261194783188979939410960858950142729348172078399589180185132221043652295087342450926080243301329362551892441665523219189137854479885626525327504853301475946398422909893588010123641729017127646105954333153448379306228049347111929574809274731458394142004125545028969150967473227081410121790847389438312266860351506362475872480513168099329032914017222162154936912315292154225672789655220156039744429893334819518856407803439418213005651060671199409349300651794426256557551929914417334234838606135421112726430541376565821720153918946759435060651091941894113324137648622415681991034107512309929662928740008164861205263980069466641485416010987015960155318035409255925464102835166322332429432852446744465458884462313348368714312214210548608767626028385763976008901377159257138086662165682984321720025163581685515932583116113136862884140791934101243404173535274018128062221523313542548536635763662452459032560066826848172420061661845784916296676001246228434829931982511559111174190048926218952668711210397352490746825124454783261379045613840127490074096877820525527258889127038598229269622776633964156566716326151240462531966302148332226816052299310324100432712612788131767110207261302005428554018528578877531295797859487803226164693400394323079294528754226654428088289402756408797478674272940649745800814988484747495958745309854056050494368638370299693435915003210635372644648876144092165556267841325844903117189270475235393816579087084306566198795339845914435619437322670276705106674168448612191291950677556434260207211512872687912111104140659363547162524993651663056302940893144730550149442929208447974502080128720624898269045120242891578132575564939190344415261609234283896510909930369309435053235003451799511557546734350226202209957849867107200740745663935064755716084974275527859512725611978626324192426440013282641583857623541934642541750244728003943954280864503708708956726411223013452708518922613197844656530600187403397604830219264960624779969534197426381153769534710811618658482165257103123231855661253909712027286193471177327034216617897957088407683547673285124374097080796112854143846882764527989157085102303820465012631990118026729177742850537172690740312298519900932831214541536863189323292651438132198876619591768725007021628316166669427889497832572638137176226039985015918060388806153596209085814136998995052648185116137170178446416011452622751063642479898145052327439848650195328924405209043968066588793960503958778241949936566528059144922464219519009661997540495530788450812087866275186305147421648519873687432784533817219343448909498922860950337405547206254801681114164492661077764743053056235186000776748155960915816840405814930131386112081794666767493756096996992439472824013640673059868916858809601761741223227294840446398719948882068716026415079261810871297370583112789654164043125574610650424373144912924948437049262844863770448013067099724272413336146256002139061831193793448569006268624689372828282532887841025379653826851798779245556473372066647462754321499464137011661218876322084019201748620225540502181460002187847077434243236119400813809051149140404255023601253515627024053531700344369687883296026605356604237871569701247236458731358611514133596037977614002970475006309489670913262934066241301516456817546155615305791188276971846555093935139010361277205412120367622965840385946233749642847538548642492432659659677699716908211962845871734377163440062089404648505997254768012239550826244521522085320194274904661374004418710140079478920626433352175326205152275091010373906704047887746791733410208118280627798188837025698440081581099581030859251136660329595317234510276416342929625636179843461755720170383590653695834097472126761455893327832878458242212030418434292377366919236068812242565711742423072525324772205449037224835968302268184663220156818038652221031281947468198669587594123154709499579377455277497638484132204669607975009880335538043628751365418828437350368416229647092621665065766970002376449385587420406120190754550355724544950231202003884694624681461487580361893400290579969686755398930052388900999962501869954335288602193092039763786600496602987263267435943270187056304079347588440609209031844893029858821743364800191046495984204266080116747789586738630702081149882415081549189216577439062329177569602305727062604823893060016508360107816944120113576019521074119327775647368480022283769760650851205158885666289987958638332254641211373584308112046655762802635284046673148760765186199107509070804117454957990478343971039113559478556537985283034417663283656122757467395450948021642965865798702172876316209001779135762079520821378549220522889451128528039820271995351827007069333719503463634611482272510884748785080879629554512240728277923880473195401463215356341463219206019955222460470523870404382381520782162254749622738343987471060215260602318933310599662949391871819921887496091440547742134219844927453760116001562207952202502620750172990354261805309474643898797982266612973199682641029477194404623918887328952058440205494092947629085433027203492090533218607925205663008236559213714401779937039213751373174687737696079863662223078137558156896023763113892375504845936044197841437664807322232187823831103630617471095745778519194490683794327998577994974346835541660857671101101616845809929000778338286191633482044615384898993897237837058415318716743654627674313008058227398321862226505169550511740533065936970722416675863141832416110332721320272180713867554273945761893081703264541785016827449003905325822539512718663377121592986449173728853090241794057820926275422283566011398062270975533857660103078316479666521492195480035987784748937083259953954109367062500257877779918385379120785517594502885653196816989198183354336671543182094307789558233661579056172897711658429248257926091267748312308974033555852706133912152039023523509630292263636933894623261281428204513892181691455660689870958086404353826914646996088581014716447488429478961065368601905124123582557502553973788491065160182136549570789334073941427718279582254686227733959644585520100932334058996500039480440607080487271361919230996965076046563070901271798786751483046570865912149113590839028557235428900467062436931220786132248008935854461283847550021882997263874826893881379644357549239387962967644741671683912904330843013618708998734434824985797326284999789881544168455351359961694861359265618721197315456831368832577840542130136554107589827180395433768413763519508020605302789026489420564914811290015697173750316425539061341200890580799414203871196888672260973375174617634260802548960121578384707947958533146352637980260832048614938217923699494931938351288436028471968338862786857863372119403520508551974613685461975851204366714716842529514600031238143348521838943919369372964039847690330982341452627967208906018187736719471718892917660623717076423280893520966667317724073137698981594407087170218956039575192983099525509077467857144974750099039672220807983200747578336293899113275327342993786480267613322124182909637904265125260389881009435335030560628748777656759633863643612166656300750740000768914593891517345238061711586209536272972992881666685816009474199291417273202839189093672043347645519816832881569566586690723445835608783227788570349429429854821464372215436139357043558078556864136401182059227896587474419793581547719614665111099681539267261296888745198499501690663171692477464943913231635070273009374740853266718841770430815340740034264597328264845224039947331792069488489860030374906867497140283163557299473468475813756848778595006909717406361061911977573899076343534134611860139935392511960299121381960835822046208268712604565584915329903939751128522049717928566251847300516226636399642381873630840940105917195042447674139596856161863993651289319743838261493737391619877974375631468844869596728094171163755214773696767378586345932293881822123215793817123460100133061605984739708341099516757904734257500001429925529609894929799289886638553753910333163352546566532664695049598700808653574224976250913125370654190493037887427590694062037871152843292253034322401867132874654881123820167583320983048743412367628961602375099072472866235574037161299566857899184381838919560010814843893924202372875545758475677503623827149304583512259730093562863610900193383932849873278424886044245055258730495463539158439504668591151825805835469146206711436480585841851382106371640678545917700400759418720496048775365681227230194321574517512485362546616682300606126138779805896281259787312943560926996025888829035009475139363508145725347807676515261903017782003050464726836153679774102976076830454589932099649234000775280322042955255437292874839614372013630247944786956832816098823962774566335670830047976296841799831827705274262781416204613866606999466437524328256099098445344657542681441433206902338226134360011821807303396475551301964439617242163884320787773667515459151636797826271993075070828274118014822345736199939951809366816397361430629154455328720558069716092544218617867952255114554329597037496936714390241519149977340753064158627337214018967896016584913682460689158272712387549772778224801340460869418525602899418651740878635855052692549380873294126226104582341177110710484244889585560183314183113810022526481872562863768852526849811600491314337429308751814677139173758747168237826757209895912053154253125747475189944326848844523908846048283159948275239433391174592377945794454819680145297665882165533512217692941509103277681363388886065810502640983784670577324504792317777160794059249551645725779109507847567090799244453340717545864362298500117130280795311621745136351549779183777532188689010233075398353711399427859185232564517474024664615032579812559840131409377980332301186633491891600735120731104744775563251747242511421739796111160057435315664340019555579630621346264679570993858853512458654842965230922433681582840537640176756626806430397144869584650699016924965243040428716207615300694703094915778342599986373332302403116287909582902380857324648362771835455552232703742582175756098778256656018729718430582217510097454482292316079781462498705031149869639493372365863928443246671283717394655464793742482112033865580533561934774559574625003901344788825533350605149874281716622544956694803189122236386335972051409306528474915053949027654903186950035564018859404694089329632060025425141682833124637670008307531205380814116269979709794293701524306814556798257057236831279462388728752902710671492450741745139855448525340652511687836103214842210600121001709439035171571839074924837045701762486115508091840313432503845666800262693383620188105140167837111659078549846713776671546706173895050889099665845923063157739327127066807976949546334522237341187916656835633433713184162557822840830602040211984613067976474901031797707583436442981394495154158985307106849515339143068445227961437995408113483320024059521340663022731116518029481747171023219652214045121946649886927362512622296671686616206956812421538706318667855248825638880649309998938004070049581299001144948889652766174104094770007582264081559163823947713767669264899480646429831627028118179453811053779564210021989476737313629031294163704189312548496490553196497943697958078003409918345366374599181591178633311359205809338850414851286309092323244108659613981838310253925104623257590250656983827182104760201838278794240457754009102752614143441325590317860785982691520367104765451456423113277170116274841888370767040279783733057891731245222651287205852628362769154619429445604325119073750229247497804795510780810354096323195771180059881778731776719705877300442117307154692438781103716081731700534142884425880130027484514689613917023243247654228233151232036473464621764286837757569937019124250334619362132312405248460008879465010749475430573677682066739814985612253628946421935947544658351073981990131647157154342697010932232110870317092654057911739233799505274640654532049184818122160439893673479882149801408062965945351686676332588148875556812686582435666000043356688886481971083661616316445116395311331203302870399782876393494830401081920236919675357696676666309177897194472363109754791600428397467686639697682414251099623788492095196403299519184960026502099896243836986748835750511724035603884271469820081461434992086285159058571086079052501958126425746166870448222587359549163865122483191916296653543459537963396423099956520228244376473099198936002689625023427772992466468061895539384177147345382493694657650079428954678432289013675971246059777090711980431259964102051070608492039887270330597431795800702163678360605818472738446451175062095248305547230116686486120439414924718956416824892023225190653784313343468293168793056553596076034437519916225868126264837537274622001896469768178843781635801677903988087242736461364172084299431856608375117722805681733400430803425169985868866692783445910053896788599564093982237908685218855837218575835596038133074765911944630598416305897686026802508118991994684345112082179666138289191665089604615925098591026856501580412683632148429207748284430039611950021489844444442088386278479487868343896597730791357847982288780092594357119075358187038315915162930154517728767356903349939234988914133104620686408601023803171714386134053144141161715532040205308098028149680663854997005115021705870685045099906040694147652806446040348431778331144101802256156459372697118554613417210628852921262014994748341511698034446393314277323656102683432234330723667243553604108221412152852199863850870383444116178506722596107174358909851945674422780168388259674954757571709025111025345125183758649148172523359048801107395523874469389709711217003510144599312432997814911899179963575805075678454747051854264733500533825820685214807442159854429018266249712006178988374786013852452887020754880379781634189824582748505577764425308751865381548809353512339088605964851634936122062158583871797705380589764908095070636822090595067128134596627808019557224526900182096183365975246696741933311343146009859139542682263996112824395164199921221830499190485941751643221090954536276632615908350372949763635835194972631235062369002094355564521731248518440935880714172944000412484902178103417431481464237203407511186259316532678185444181325693873530030994971928764537992245495919502831959342054440691024958706933954806824265417389479149821672388657367185479810288005302943084071381212919856848090173062083359343308559548540849996143063800469186303666050470215576755885635226983598669727519908346979100819880071039116933322513190937998505746688570595287965917442293805433938334214615728256175258301345229818276477153965215086441131762095983500571890837900481923143338296457054907138226271903299373565675438806914684633157173257934950707668333172248918440545797561838043401623617272792579991888017610378919489392636589974915149015838251759793967866375651343388519299496662728040497347032868868979981408017576443689133265343934198115720098572134194920292806421292973000518170743419194238551376048992637877031993418577886374122924562198302222317112209659574173759428157243594008885802060731869951760249213013902922445306751043742368903421339967139815806588658267059527241462610134289414019608095921680271862338039688560320942171111210784580435090671113257051806890653753867125936367971553010952139133415023663265991525197867278867291020667631172621705511563212413616073325468766399276846656175157581012400727582920028298775459043343482798991485999261889965409223561682274363875670219416929447772752729525767406746657118263405669687352991389746268600627552925114262642323469905957086519550779414621052848346359369129872149328273689874397077377413381814583630779524392261284246967409658024244346016274801901715570501689429315332623855460921571119609068494160061486605566216302489043454706330556130807606129925312348643536114663986594598148001109923335770277302850562929955439434229335021860666637034401157639719905603862048054221327573949404855749230704187332081443712481310969496823574005958272880659613782871774121729967602287081727223904671099195775026811421644519664776993225052425100536312315059630675800545337455010113651630655831344057136345568479154893401331222052259144029191459855417582000656858653194714078439918490815441641103602649121783810408275157697260861877010025902547956436602533378370715552114878737069895471681808317033536299469759592257207531005262523152455313282432943949008676756185313261179590341044435709242351354442013016664522075979335093604052554391733368617945235169303548220729985070363122211932787914414724275383519815231486158636976593725217364576330474696987401370763614763168070893270401805911441712726994748715748166292018772338637684585916227855614981610403009311629221846492531425435155239012742961238687239563036270024841659251815779270759483081775929549618925489281148379133086744932496249957667507120827599942381195503997648152406260169945783218189917699839572736551733791217647391861147824769053589348198574046843326777328799189921300887886335788844768593059187361058637749806543510164917446773444508142865193519625299541838540538256320677995313119332640567706709614816092115294918806168955426693100829506464829394564341390946913988561234267507386830444030349971900218172801821070944508735121360700081186115211747009621839236193488179361699198231044393309619157155915527872139506515282923180536986777402044370399683702800861305000391667914883765484249992557920160738399009336882090690491738409056466228905576420373211239876495760996204887866594201985083518198746951834492927037905015595463406369932431665321502763609415304706826183558902898895751038610822348342065723232015556905938333572596169814332827623685229931780701842544192309601530504130205352344426184976033187219817129430650877563866958725157934557304824270513449913181958738573195972973193029904097664510946478229417028070948631650232595932642548944882289227602014501014104995758634997164265929211241604048776530723141451681397898530191207981019744027610942106058650980256746712255489488262808561158500622778915349919262405197100101626083085571198871725214518524560131922077604032133773712030293852207270382950999342456535804101962566519170277468867167872242808846720597219278868717330091618763531947104946854503644568149857767776266997474394628567760049674682339601574182682812654653221130969272516001508453447704872997559693134614288945484385793978168581515271994998499673533691997794050461348602826640113166833151299678384284186231099934881927595914549341923840892082168391640347212089159492061955468511742002523424127202559413167616521959097419966660705843382448183942605365993994103151331757404537760117427374810700785761326268745356156908260840656132087886384519182312184264730248508478867418402458400076060553297222847618910520935415573095715743263432071406582624060512018245046882204934063627807973726648575638772004225526231941997491889878847790884879988742273894449309380840078644614056057824887138517972932514257126926563106512611882333657790541504995999740387102516698799044825674764202420117589142386830367872535392487599732574757747344091051307019138908498696319517828190038489937483925424524931929756332586550419912568653684032891531937916805566957099448629236223353667634872454630318903458391622603459878759710178472554760183890493445843689496040572872122209359323172072705700910256562949609698629097534192088345950413000822604679120667502397671451681802332702640175004196941754775314775107412316381304850393699206088013230024378454274494297444480334470320720993835466789908592304082006596759756285463003510866502812173487131494350508562738289604765560287969614292226345728105731978901691975692375916832246726163468196051263795881537748578038603849816594211296255650657058329293594939906951069203846912289267219597577269187713579213208346229790684888886327249469058573170876501896439196184176532238974506228833531153342690968509424808917385828831308429507598644102178684897474466203009114843607306288356163611396033001019878312053495830957657961960959057613184023014496390151211804991387309280979754931458310202285364650059798217647979167641320947292022725538823391921948714302546617283964601561022433629111246891175832488800460459690035535992768456412546404981502022393535090403535402596746438925056133059393104752611506222333890134197898168272053410084993527804721333713159098471533449101691010066521464042848818804154034844829893377876651335037499845170548011558220388312588431864262565208581838694192861846238121783757760674127386678903106874617451664595303226485565524567683454645223696955001983379511792418204003578407371178096853896426965518337047694415591989157282038214252379037685630153500652525611399817063139136772705472149471227879033026089452720436387801214596306408302262996102638128748128131041598372072751274022470735757519510809862841587802546507215160406646411825292269221711927193742835668800976474825891053635573969683682266621954459159020713646145964915941526803253050117660104904651154835714154358914390779557347793134794971480439281876562601995160692940351179786445298760771054141742418248233534420303785154379251388067330297420008291408976738777197406425871502318321528858166407442746888222210648498284308580924753968817666026433304837443202480771808986008915095899511515681199651564914056607412681383240123338034941497089702370349872896495304975772988796841276625547739920025274051598940063824247834912667293738705912857902451101260605573245038895308727288510876457087664981878664432488498139239546737992759583006158875258632258175636306759132161987497302626439411632814401369664365106882117023606614154516843358828582791780939833848083714370410707504560219675556397119131488629567260652586949111996946241431001530816002590655378102577261806763851147625794649317591138992099646244500860706878395565814423699427426193396933328501166091162071156162787238946522657901104947103151604912538143832376752450689946428830217419663651185268219828977164699195477060795168528516597332908486894870258640235626850491639501027302137767915898168327938079171281581500785450064529083608812105395115153377233434472524006014819537301404980624840568012979607694298430828070663601127306244254775579736377993290813662478590070144179913503776725484724250491676114433445683421328914518710932196952871843786806097768091688821203169086407740715261255332603430392448631546372645853299540780033669208899698247046368499584828085097613210889013099441246708685517337648398691716634280067612030588064309216838579776048635335085437310855661633164702744155221077257355923372439207056999767179155376749030638203692254273691008832142424848697307754394957000660804653566737538707727491049635065152174077247524152066649361038945544643352369796488930685422703253170552896009192342653461506209751534300987294213593957960904180676202608089206038050642215808337845125126698262132417030917783814804004877170606086135568858222646074683541603104801734728171689325938465535753196525654085032459790646108595238849422380214479425070172972993288254144287389725492480277500083209036688915576380613013413796050112496582825725773865000364477330220542424956154891715926313030618552587552143297705235688377349704610066894135175965926756060724676177310157246876514062642814734759713535235327634023476522903121960958149755526665115245082464265623443617595427209367717295726254203852335893674654061406762576640812570633800911228812130032761398655538000373070338898350229767027916287994480216389938524801019672042672460644640595802495443320786321310831334131591512385214802390941652386411052685360945703132581960080599871411787953151879215357031023580288419151294912482021045266653259854956156431803373837106319185570487648919814730331912583197739063986476594185034182086772880438486300413146815672750731777602947390080202250310518623061138752806627847700365510589737495514976004272256822653094994764947488668266554999298505210711952356168737148968315055007158768068641850615303336696480894281911918501110069531442252785612908459190928583515666335365884584905695480335196953878951405606230922827790452561709624949556713742077252129705500794748529799590213872724591476544953100082445808910740983360399778810567174684333408142973998272498668745593959896038829923224046937693877096437004999695584310808266157992673731829576752478128252716567283246885847758600506190695139981768871630435086878260908790926752544513404030965494699875472907440422104734693662768092969371870321156422790029294477311719871920259965586345513793911953715398173613087876898515939483756057207312962874157532084619495222538315704694142625345080443872552555378955302290781172661482638760520286494199487980622334064775399248454106947609878568528186368619985279593362529953849196899690235080772566227499729126961443883475327774010071894982591284723620535438324598155486535779242215777478559907639317817794431615838800443911986166800463850071812805313044978256884649112700420355150474329489429905422069281867227473204793574212565828692864404335830800313514599160874513487036372335019144342843095544690618586137646174114398914685010064018616574207312520144816631969791798126607914599492476174505553431558018814605257216741561098272855184174692033128171074145847726092983354846915491496332641292411812468753058834262307557843318222900772924644234597424347057517032066972841592734447661136659709083322245755994650413343700297740610003372574270117515484055868842473749826615738061467344349344738866654421929929335593915576689133405200235993775381596932359903031197634029615487850296217361827048797340077456228688828571529598315015075797891937131536488787378757431961251371724622625765881825030876470284996849504082443866693623266813648200009351770508079238155447290406641331985538625763178288325527323350899557363639976212451941432489019142102598297679044308201682938105324529039835863001836611106456751159716403883231097548497190531352501572858659945520175961834581371074753921382466069732492255511908563941473903667904114086684455928106963671757270477959321586594069095283635059021637510799742072866743985247972427568134410221225919548061987939855813664633529746067506601283883518505034582639285964788530323894559661942445892927539872293776619718469283116102161979996665639605465187173600802557694979420941637637083135703774607294790757253177699737807877784818985781916278094114231771496168287381992621251616868843554384252017810329000635487944942238009020671577457214698299329307933109940768773522991976861838059742611674383961143634587924165317536549319918136685367242960634481407082198383452631030445242152502437446666813184626334641917118323826679413854358361863364287344605391430121833268958775616349020329113895587068713437757071087454914838873062418107267110255143022691176037232275373864456669492686438683614976565342609311511291481732002155868483118110670702439692009017660559133655956900074868524831475587171950508642426759060351231169540388287013658969116836051864639078731417014851827767443390091250581255757270078319719998280492961117134047510333488358621312844257526522198399766723657504952846790410827023261737053323116066495721591555079886977620616115378141146936175858138998664918398790251471789396827068394895906454151800058708718869518170362122298812377894033929200332717853233623001976311340651030425166815973607111616619860257258010950206057017557876613163458810512061170766265877819570470486680043545820593784407822916095486412541219553201586852392544767705189030637599669047796166170477832049050829240270621534483950808346733971268091562731647900301683986472620598794724405278986445391687380668085957761634690441893726975204412829087239598301066314290819355336618835643871602208252355302178493720387236776396926342968732064316507979145240466573327775165829234357144175210427740561700079751137868177638557743998785685964288119539944752706408775933243075221641216169061368713703626478764159649108787131775244649016038843676582910682221959765350124861896621797849320897341789942058895073793249909213722231215624870883064468941505587897751374555769008100056089702383369139364092275285274099541083661143614498979305367385203243991587906271898570255580470352594250668048267407076761492795441878705339281235715250720602856647122142829820989934420815157763750945122309230641340334110169331339992252061416161117282139054578963434006902388761940442302406385502353988927527624080493333833198245980096409112180807974262203779637272579032918823147254992041440878991662890893813242515798486707965793212920472374503251635530967819895380580977215431789289665534594707663331409882511956210271083908296302736065154425515131837040644128242804412821995281226593686691697633415522744900133400781387962576773394705023563174505017587926077593805822569788669835879108588759719006144566077969765468201806737061819226358518498148713392837413934644489970652646266017562880369140945207308088878779381721951275041489274452071470079565438064252099860213699692392081772095353676036222896964357441356064370193468287913065350497604485581509631766021051783337201953227106029031521819722199169836677577310169345624448628978526450620139466361450708466233776575429226642654680509072629936548969489533034028578410876412655836906250503466954906129511273328436527560746155963138588816407434382822138635832774262426710050896872347995748034484055780765480446843425319620024290663756020326707313253374021579703632281715459039121937321768653019282414581257096069225466251404331125047762132685125950412356808469124413424751869592089262250585581429439462797756770902768421080533541613621241054475813089858976064730421337809727996644514422220663864254969030079673905103061323258883917943888087707423852321956652359922694987526090539828691503706281007418601746467559290971003381311013145858040764258840088262151849812147533149432278702285302303277173834553108857810418483402090315939795304539663481428031787682880778367063474872625850281142839996866591180339767433471618315432229025477357136709269854550518302868610239605765576753484425397515849502236608155420990767021000422871262861882976922652138095417479252202304141091142410601143863438292359904186401077443760771571595029443188418649552505893385376223959399229709463680803429378630289714515146540613227802175501815969213705940322047499497149762581307046170625124094652576543817882961287860407351255910768675939796293933298104659447732708393709554864415940727708588329789471395634292586472337275830342349685207700311025640646108463194075360631143036791751830741367520960720105164400443216391666112506715677864026063482095740355169044275296098316299948015645691504887697598465519971989079865203392990420060980421883204306316151325717826871840966460174699158745170998257674442205191821489272600868610116202954887573976072760760768013025135560694232435493730274035129137888230364031406998312629230953554619733280136779988864559438595894336092826656658638402092315519578759444378029274209103843005212347520799540887112943791142601569238773741317327033088239132910559852913104746200916670327662576833038412516252038228250323675340031491023946185617223152424620918784507420497050040753173208567606320487557905988184846201304335486428851624267073738034993957630260948319591344279956108079320186610506704459167115684335140722430750713839850938493417870553642305026336876953261293774149517535547701798375746543278356447514214761352824194998344980991543412148400274455039737981655319214188681760120997669524287199509812733320796081245606454296121478901095837951380993483886575524254991202175739359187374668655040189253644909137836979716939586845243064763792404578882531741776192311649387522971929914326324560987433474855433884699745215029888404248348675586618214577187270108716092808979231154532963504304216183442582798785969027856802915082180083892459044607590989742520590267512810360471433764334289696647785018994851403042950536339690257883718021463913842291624175741256933358067122693854384080162853601557859039397724826315225956929542998821276342410594812219644247631528772469092642369438778912253425985859693912350843744262863255764861894674450689158153248660549004239135702952901395064762773129027861907397697537371405149505405940301664361549488510858824361508906716529596739032187993746695934322868400134198874715087109855660102610478273750303379985217772224003407336759293275412302576415151594074543876815618601378408566994621080841643540702777939076685689427951533879480063080460902348130459964959578689582098019359513386299984774884233893903957066385328146075464956776767742866286413890777853866835507490586381409296652526339679937313456645923418212338518823605595513795927030534150119844439247709050809502326429971401947344203746744595453940306304976956451485718653916454970383520054257578162227719453466270476875036599025643616576575718678260118304417723612050079640315223692055591923389789919347040786718792897745124341863975519570486582383337111795535349211549958299547078994555860043341849947380533040927088860883839827767819986731150975227192890460606623110435473367933151947251829837447695654274421852396994747231887293833415061799467324208876256463720093454744028645156728952832733424136113741401690633999525603283328436196368362973054729547137721120595541155940732167309177665683793317746743471806593933921129376488094279117677828537098116438906633083876221221921360811887616440414488442488835704100537074646148813440614313364122129788854908283136947734321937969583622320107031438402175061123835011249179490298536580619444246679181216472378316451399234173441805305205906485449637610533002121917018047763624553945289108859373627864421104462402206642321632437971379589733840554566191996488710412516863325487825213064525446998001968543030826087463890896763743660376554474933228623659665509196602680248856545810862596885907651107391558276615200129733900599065044086821605479222093404761664543493932528709829733533666926158232218476852382430682942384711777626805252012931282525145825514306003690608475136995051620318173147925987349818283730794523323797656218700925289019705815617300081690382983593315329861985749348442026156634207667554491698057781787378168613424047234528864305564004489081721339172279795006436784662209120220188357797332899162537755810203703112969492350958364335163058444173855791498981455732867722161061745685513909644149545005251876046071498126615361248558301690884524738428186185243281102774289571252650911712424497061582814602815890152241765891703779013700239355156379951665789596718985381980030416786697317839067187250545983509848805073963360590209769793244562474654799795047443896147096831707587688312777498218758740011909589520109255317096673516891281660822987533872429563606900082399116369258101755365697883437836585970678201393138316813601072316633483909450118122617801250255587311105373778702818470654980184757016478176199307337785181915320184045168076988504996636255830327305817259971272045270514753291063523350964397253748566839326118787996429938561975006868516172180922440289170456944561516891513490031644713197607533120241703556500326851548902831276310398227475525576526372096620255544598185652303295852494831226367561976808310186671664927860079640560783757936458785179404163559713911538925960008663911737889490502857795874272294514472468444956019902706742446531800772780184304370284755514838042943923533053067835285925674415856156978150963745011451291078373907725777103596865179157087363866414570851263719371443512452865060838637475128324789372428588843601662849190986372455049302634462001918893198190961853875015959442331471453459448962638129962633050730268203637289387303671255954792872120690635046080348610497041841912266518245274651873407746684766478219112597295618933861598709577669970052110312898921904720151669656797427351693039833335396132197037624739868268034378255232834084984014918217727164558629515232382968177359846617713957042721608532519809990235503801282663970202299178943013446682231378937143000355061833862518131143757236878758739712980616501716878906646298142089249474300811232589611257067955875397289152736378894642948779642956660321377613913376716882841021726953329256196521840673868634962158760125850578465305452146908228127454526578925905508939273576345010709680945557508688305622427191048108284343853553419728307588476019309255612945039249352442258738998339529665392773974125527246422609809732151226985894302008116926577698050893633379419126722260364239421059945959893284912980680262273829475757478602348503223480969609451145466020524642130770633052076472705052760632638110178075671663268010520409143306004515522595055692487670862100073374725210193136708994731908791184833294828387967255373792075524958251376690634540954029840965046668912774610242830402426203333521005179986856938096484474661339418844329102258749961518875808594133186551369437262205974091144922650318220081459121596099691004957369374738076215507487564069978528004942102845484195241102336154851869563980588268679581884026474220200802487824052685211394347475500453436527503137570528839133725163307242047400803350805508247644502412081636266832475166420483314290156716892312521135695311108839932115313875420534315719672163834333671608452477751812214410158083156321876907598291210371289389841635996043545955070793923028363216842666045997276875007795096113967200402919045693889179577437692067339467981694919188725050505218953308523221142050686843472791581144703979199639278567425320660501289690230790222400907669087664699587332734703442053624594611274691850767615069867660348984716849145265360159006223510825514673163687030877879281292727911458673709106089497804469773884849075957921285575405167705082188624294411067461206651210617716536664923476807984021311505901480957445808485167931937611576824057208018953568179612801847185333274424761009868663278024580110625603678486419950622803881363252242328758993472301032059579257365011233058032419299774778690090588368368841426817302068661485086806855429048855922886457089225254664686835260796146675589922718465473074581717333489006019336377787830701015575383382575400768782868657967222253912911122461791798127867616917807873453568509775013185175695501213525975819673001545665911333786130906981693756386198920650139994413638364054557864944354618369189471769392891151239468542961327139084680837079506634558988202630222375527869287163418630287141714805852552326121770231351005226304624512739128356365915438284034965876122424457631652502590421348967259490246140303561854387148631100028104172390733499999019780529863171277260859438270795589179005452425393854971892712387868358016886038112627130472240102588253862180092255533463168018380638600628585013129734116849578213620819149187303382199698818170486365581115734985734159802002875119238258177834513598711449961602541224056140516957722629628001209758886626944013793850495971789085794780914525226830405224752121455510187751250886262462051111586205697282303042762715101503089103008482117437935778963948020750963809718421504146446542085407298643872470836742517063996418441238096636715703986005446070030541031840365653634396554394775866262282275254679835599471350241885101170397009100961297946046057183345721074676749022749747887807183251537384363812491529297075970029456409642673849089547317422722050472061875549130495202871879223104167996167013984370386343642002484491454012728014841609946225703386911595598060907218915526670417512059951379645136142343963406923376814987259498026473872088761874480077537291152029116779955441689265463319193541917308870903007277098289738054656488902113312813127884843136172075268753320185005605154517948456030296544528102673337060610181821949827310374322184001091480183026616606647824588539628981031949991128988569572493393556386090187173266668669344302700907592219013416731318899257270321988261952450162290605939428137764730685966415932656657141146766671088673739537461608494336372319199632202727894602683628420931023862149342324166457751891680086434738793676754805262875047022008418172527855665268310693873741583081116717323153237052507329621016958797669077561022379344957098513179917317402538724319140490258878425575091779863862797714347028104166447996007282247575404909021878066101022391768616625410681119758022142981702770262154198081618619638082116324804240140989588975112878978781307454232697216464040728349549197829405436683153642322431235213917087406752332644354307251159252812003034935257051855444136557732251475801218867185987957537885811824793793525619866475311245058134718981741740553352847918171136312392337228326598003771389303768614433512967983546053587356043114225144121623758690067555598019760695883314664195553325329022699671943496966323019707158416823545300938135302881668443391145661182138291287908436248318745932949992298743273115880292666601110762526421348013824975895151941202829343111932611205597030846240940833169249794647212848986677658537678061978897387719153687665367361217636814291275577479396755293958150934870305631972055601808993350820259069382124961656077811639564342660122219299366192943881184758785064174799402973348194840575319821097117330269388252967593259950330562874279610792286396672665203874751260910542500425758855328820105699064884937820337186005078012617675535847662496573429028058381788723917533760850436014799969755591607744830335535992493374719403045786806909444769472679957297209427050168938883260700702794035274229963651663478177315361786721517211195223323104267283754449850010108666966484835433829665766046187542889880951488062431394656080762409372582231812182861019375468441687938076899008553488374755425802549775000818017155018036687139608039121604250066262517678567879448864271822927102156756913228926797980713929515523541312506333279911011976354677502229434325464628855804133673849182157981049814675802996552407139531465379249488174663059387979327329823812897575093262775311672234782963315903237665854435350093670463867555529206887718391953172123529691577906099820337766037604976413491285651851445587171944081157970217712877953692225383032591763493788879694966654450445047377618454940212451344039536917330688398995320649457910710973957520011920249828461396142192856117279884075764276931593845488090764854484183112855955879736894119285007547758664463700634393573876059572911840326795677785583607699179280871629088689343232745274427461864380670978957020978733650521449726412312545325361178213254556275969756164425570250484565824129750789550638835432668746826592358521167486735973325402066664854725957295872334891931777353765806222233734206887469268257858625252789325503235721082976354492934965243391668010258168224978915375232114305159158570863639806987325594064401509506836252554003342525030400092755507276908510152935154673735385230412567084298824591510940549062410473620227916633183106753671429233057690576900469368480512962232176388806365554358344571175303784522637766002335333633828488760500254422750713455567244840855315866281552896525005464104164266677408844425081089402892529140455426036578256971935681776055575091861470706821820609707388539534552784277287772819467885225755931573494195272383474183078151479738437432199252624871296231074591392238877300243820816739089068203947681599509568387941682850236078768764489174831627407647251207727172658466084079349409539581189812835005223840874881968314900575207013956377896310339381282624479831523947910887577614823210397873367655635280692421885000612662360038317187844630623341165925735516111547208289659706020685233728907374879836046303910208998340666145226376162931243328526018695704231649136103589829838002094467799625380660966810831036139922105808904485990352764005899190104812304591107239482713422313974888778573303661279381679272233631402904979604575932077877371615951106364124609609916055783585593664422703852238044165019538627320926731214322478193281935118149983691902043913736571916703576267089010290486119430524356608355897107377935377880474479160795733869277644542151815304236124823978615453866283597676222559234160197615459624393201301528214505533466239981562255149295064875843134961158535975529104709965583775643567449763013183703404938825851831249957166798792860287212382311628830364273646216136363250731520764402028155316082621972145439630612584493998089046400680548290323165137322339950236587233317404508402725142474010269920628833676670525705203856548518730020909763234448774666541732540188539653973834879276865425071922945228821584966942809735500571058415379938736594994916624600360680916467716200348251494139592943816613361819651161029876485291602761970357408447431481622166295231845567630351612345266520352833600166407653188659375886085256248936488350543797418826389758332481750912249216407014552368334416858644587830021743282754605359535949410294738699223228684831253210575975717535444638977071245936288300502173711140751239593521005871152544976901919939792928399249370458912138464868985818762208860716893766342064196603901320121485545791885222644071153636434781120468959894059109911738103711707803435852125197784023786487820769158239316663187710815509052888318170614256556993270392991055652766217089789166503302733696447634632114080408427068441162555515298062748847688916862315846628867042014963257857501621543096159165918848581466165254153990414930539201630547236187574712163205454094676453000095931210950552226459629483976938067665845668225484392000404183346195501049795197207966368750846173127926024871539580482522067296873699479885546031476689710616091541343410403324905358687282943478288297465147943460936122433978644065451332473761927991386011906354168961027800809011276304313968451862297552593035688358829607527771564742616167498294920725620138151649306667185473485108727377688951439319350851896747906250753973018657543052377505114578078522676916834143229779650404753296744513166852461290943854506607014889078366736062590229279604948057482357925026146040164275458339257404441762149281129366258056673482313957576338557864856108786267944743116165044388986435970115929241704454189000523035111442128070808963014982883132344009856106857535633209736878149486222277002346808986884641570735082299026099357861969092315703191973302874008266114208810888181816939187883551389432541106048259396121253876596624353967904881573527212207660885901377173586403648522958745813039673878272669267109091816760408214555009435243650448506987298440655704270591493751439298422549028329643428735485574152662988272814306188637963448933162839034446393603586108249098258748512424366111055036270041510394567971222724360098774506417030490381778286424093561601671016463374359091180164835327770177881511433490113301698278336086522161197160759633788434832263171725561068573436456161946305935740499794906409996234993580625816764584877322248737898343094802365813966296898151385626254386986751766447065296575671387553552366678034931106756838244433594972949998247049995313967892655651489115753398323538764027654766487512623441457160846585042352165759683137578497496630156658906371957752817108659382250357799509050972615493202806312797047582146902129258778961644447115361286587839878119043142887729264392615089594276854644331826050587535981482801960428439996211198632780194145844567494014858275523251801680145731987625420013627980879644628038673820603791723040724289477668390306531294107055968120268004137060504385344329031389801225885800984244919234391960999341558493622728495226454791619330222511322684845169002980444731488644609200034831839672383311297651017609551506942269206930223641525482402170080837956241062044860709353315789462274814395674031888516685612363695624433207417491737650484014774118922959888249937107115844669575703032421714635722451587142966549861867001949182967714389578122909148218368626264046151193921516996561505366868113025217642848633819869200352467125712998183038925463670910155268822948723434502535124737209340181110484006287707704842076005101334413851066203422192068272600875256811051760871138483805067342821991252487477861954017710236715566526909574555345177058777656552526754331872427545244854397617602266402340442623777835927692021255029567092120879980327632917109529266106152941025501423452545949121691094697016632317713966253016484244517496550127173537023910049723914660126915870677768633102084349502780787828742500106660636947229196653374700742935225405939635509237120432659421236946284561857356097286357442266129737650540687783449432554983548203856479800167907507199833620431254768049321756785449952143999651521132313909390127086002131390865466504088742307077803223562454955021952600371026869932335447357903798432309612359742089400809798470418559525467450881855967507200262786156946566055625133486514911604831260680089076191281802919977562063200694013544472662616800244735247312598754534220323258005038334412679631424447139144928805647088926991057436573404271425335537221650779134796624686422698759713540580253166327066026097605314911572380072635516537765716958860443837045841456867243914779836293163233134766798598809372808611265558746623890307442392018650739838337036855967699973591188072523896112057814026994831892990138909884514373936101865411378881931418107631752646004307949687367462880770720539725058182075798344107502501468562739573610258897952197550677633769765612524431522743494721423204133764661163053972281744811808858790635311057325674115799099629818301225003618829530650055143655100798853237856046798651928011809895496495396475091292677532943561361072229185425199364945596265467353010725098149528676987424696683969740221520784877374378183260191520863356750198471811730020998773837796233253141548542776090929319554847099385858973530783300929507566256751562642101419829054357795118754869459523571125730909006242171807053370308308188748653650896932613079174965493494335266409334553026683233661309868255258403833463113265562106782617089762900813514846096521551122486220738075661145047897107916104798212664926753836479535835162444068631383273816638987225896044085135698575838498691529683710029853658423004305504132407935907519038847880854666711362578411254423775068682146084951679424695086821764613052569245467184886681422351633581553553466672773368075893656808548576637010699081092307252489334298270737677262488622197991043181099340108442192431819013597714352642296310470834120966954657584856022912485247121811534212582156076612719618741452171715133220196867601905912549539174680248263422449639432188398848991394957673186274314506354880679654428608219734138970443454653042966618292741475613506734779273091913796299144429710176241138252663874898647083608093750032116541718352034684424685182279430750500946047511121059774417732394655341991810979663730028942628544494119886596519618610936283000743161329074929420149259294684914173882986106631820104800567523267839337458923239767854755685440927948993041567652961402918175833891114470998322404941082313079124304940425021383935423419913819041848865898324591766496955572555689602332486668052860454054105108880246981109778638101629909852276640276054682321026322895270651826822188353633669558777981900785714472324454815981838354218281757113550213129150688235668292586523293180907135915410908894200451622647574059953786352133377532520859985310102403817464584226484163478305609594941944125484934403547075374271305865416424810371247709864778392655378763402900942527588813783736550069594217088491937005084941900390480387767329826967585194570671098430271115736440322317387772698581808104648992735278112563888931426858211849820457887126140818006178996493159095607415772622359148532963302011314912160663982266412280824757911524298108743704382562738622261105974713242037514953200152456252651485322265649037617301435734936394917075936633942546554026113624093868763443712201447660136297980345163030199814487331720831708039141699929102117278666893786932885756359080530327752420700987111340922451253576893173227574945954641772920644205830767183283332869466462763331652367260118934837178735560350777294129356567725666969489042718716723301054811312621670608886112619413829538833501098009147603274728473138079057756620272505265751116440790865768122046338087124557284628956846525975200869705383555414517952344492269502482041565298489494139527351131466039202931959514087018603962285713886862438488210455578114916037166145486374450545861551461510027759703112834765083776342809753987052519013205037637996844794167287692305570036076532797764779689229741975196274617246603265817753806957625165012476496488225564474268782340521729367299569669396304896752219426256553718521009374767075446968589542919259727194503314526496749275637717568972759584456830634272332504078106730704640427580698818315778100940503985663325678676123570591755695939182685815392683790301517886483076917820560797135816102468379715962639470842201270338023206166089988075749746528022763274862760211261855395273345592616772907695993060618867375308793849980870617480534753142483276985954731663104905185021070995753838605157739869557798837396464092814394061376475804106924302516702301961701185465341954302541767185062581313845408421976644527232842158596220777468805238231260284472108379924692254274103075387512307375318710443414877346661272977621452631119772498685070896867728889644807246315528870899961846702588696582157168696294610631339877114186062319422029279918459307289384785893246576582655855220737440983488072494277640159750028205585181880638358078043129426658981177392105042403269132184611094890310438807390505507995005716298112399573865181803068313330938561419208676721470309066362759036818164967755783020745821655568504068044975043441720552041865092741118202157920576596907879416973553945383284426936357338528581750509410277049089661737556235002344343510921132495597532352520403808752580745402779598043939345642716562166702307151547489302450208372865240479818170529042227328777765688878826414888620411978325834650184858164898812341048027403600700583674615406615488401585537550021665114850500172966858599988439234526644287380349698585849180321184522590439361747846559335302212280693600573798971405527391480210176666374145621450355760690684107429521709062669245087148766492901978917927202097258408065926048600628197852952937053267824245550997633161159857023058082447437036536977044226011215630537840184619040374146835226015098370780994670186444144892452314507533940198703993206944557575855002592823555012064837755073752174665476581107935958118257103046182845461671447040377379167239758553165552431702613951555814551926272623989596379472147216541412789600667689444388410230692612602524053243937178229720427883685903664911661702812368072113882101027660926830705592706841037861827378333648612946591504079794573661540389263803119547092346501601608858172497860422487159818471193841151538524442960426027056724851972996447147479745912556777415787328721048114844676492047983095041236035340750253103932759938414025942088124649127962059020513957489859418509835616147594630559588560895100378352293914986831503179478618488027848281983088419416796056464289128771391323910911744553741466549837081842460479191602035567767344571976521475122776679349603697829879336191956701269437021238700110914283417847176263577408020323079985270571816933978146791833133663164714077514325009674493729761076681252528922502341099549966323812928200431699733048366006804474628490816970544190904517773577136484683683143853628435062561654790520360633194907940686011403439541810042506618324031177977344740769372708418554391494326398867111507876547087755922360722573061551504537480061449885113919530966984815433666026568396062921884147645231795451717432378000998664212508818957223988227485689082000077752639206274125050698062662441376266096929494655745698599763407015798217756739348193005489578631019284387198776453071427021408670240523809059655150748822546363022644604400343164556621543480423793296625778322350679966109269121736130091966069690204080112151270298721301754790229730374465388730667654696759973825033424872703714832513465293447958925896488037200875649293692821465518106379301000267745524168855853041026732661101391881395591050800368531779059145459512753486966558101573409763847494657187682356336154131920451506970961570010061752995292388915886588544843463665151485023144882554806358475172970577327341329685033660541848772624226427770906282648632005996421834306277048943232977063499177714396259536699287434414395948519008168503776631898282993610715030005728139494160135512591280357502027609130672493812725722855162830291152263099950900246362119041167400631721105174793397936841711542504588459528267736211176014710927500495346882481512848906582470883749828360334864970469908087662065867938584671059394641695181570225412118921259974886975898136905415728880563144865539674545363685007735334132506842126171808255563558327471941237883522744447676500666068829896252082600691701543247409943216617144194996129519301760737072109772556700149710074471427151434491175978388127299554440486517169990305423524696433512398014881988240827482731229091865227468451415745980822219046099320326639593002986926672168280198889216378154213208702178100831982560189401016236137896305618897465262179489480881391778419946415008976280133066258704133745043107269823944787654320428509278635882408936387208068948358293150046271239381865171270051918878897408982359184170186350064198700228551832635681689090751026926233803932014274415066208862895683516332673798089655340272969058518760411523599120850357509216703198510087198347901560084056505540670046854159134611150026811811460238831023567270313511794306109059826648173315490433458084534264275962305673398882537519201714145154213531594303790329001567134996752182109052321456017492951675880810171924830618598981168752690292741241860089425555406456703497144957776911245496108914202080380106806531926866659945464397929070077880499837329094731776279253161259849202005293430576016765137854803247447495718742420734008717116596108607599922505999395662600172312013536353039268421202868893735047948244540001027901224983232446800240358311277513588795948736459603035009838117695326591850123273605016556140017083541052819854009274340570798766556109601757814806326341250786329866059173405747923189173243264034611211331476912808093412787058689790491756500671774027188173565450008399314807588880330754336566388616977038507593897938457036802678139978250012234277732197445336044540410237442017105882033134132735862998789297685317757910675380767471143876222941143716313721890794189514766412480204171871704072732452131866428926377730844435382432923011585061173621290304886804052856378813372402290600339348759248563300707958443164384256250965985849128723443175208204483764761699087480997520828711106517297304220232343563317787475727259223551733081297451336238128532499911138621376028283275954278745567957423374579173174561766835984456643648038351757820519675822591643525048064428766723019885057965050028002780813002978358539147081653073264316623008882941848708141144808739279761196924262685264602375187711953765136888912011355852489276187409877336624144775139362814348909068340983028812786053393116546352748756395425715445113876587507565779683310091771458194190419919844865981059258547857318336083929194859871565358113608358235930921756605254083745696826205958558582091631390721440932085232479907101069609762089287886844116328046316243106001282107578845766288981975392024236361751129690695533289223955073335418586505540705632165321571941702538839094432949428139120139809951792571610084135859128852651363280594351299333598333831319355317172936360254834710415833221241589959668100760110041856060926357822711434957157883143960089813589310600592717285716303529682885504189412319581727711478499492165365362829574947054207456356782645012847862715321453144077002246312063269727706440641518457024529424365320562549367105069243673157107399430732206463843522725234516770365637896584224317696497079163786210657221102122882471004670008684751123560346369926586806170064423097192601800162700178346507051982112936201794657982759162913124261229285199080199669167100655850093027371820945212355854601123151292479961432203903987062109257465833448761881065496782861235806914586356375957449546762049652459657241176270454863955014184208359135184680578192071674805583929507416822867908170579499872008961234285870936128245011914926205008762209653631205375901682072977858910870791214461817814354888922105513332373052359484439848426931080926095443215728424250616308442407914617092255623141409608634477873662225589041535153615282145452065602764461503793016586094984684879725826043816320162245309403267192137042718369061019516025579433787494450570125638434589884372441614807456025484368346248418320028699961588535290825944137914617230278024259654127485330154967909941283527908242549672354226747167856961679218445259995135972044262964064527488193063758849338359350009959567433583014430518207693048665996509223003184685442792255081275968294888743352592536989871344281376255189586336745316749681507903142199616820800013033280698761689265185474943497958639623499538978124278525423634362279144277550800286054574284758952752201403328411397726970939841216254104782342818575343389390981182063199454838065580972730010218899819986903360145121824752113585569800756547585244202893927442741211641556868942664248082350937410538537741819154298138460031966195827652964856552693329073317336789037770521569237241261142405255554240018100831439332453075059735994357271770329899023739323656721707898371751885679322257518952238233925290530796473873454818670342630253365984167817571380522890223388412991542729086554162033449015755552868750290775125431203884864181156673373550560523057359218005254740842992392829501433747806976576505619269078398433674645979851298239502197679692122181566533051834973412662802711267301229907447766676406622216613724507674177487269702121835063781953705046972682963573530744045553258996734851169262581567932463027404307197506803290511264680357292666617056254135587165850216603561777117731293567664727690139518471486284058541987995459586894327721088836443432588452912256316218784001289019871141634538890491993187410397112131000564183619323860499359267162027873538826732416327237765008418798328584140410062854660573954282273554813254437028400551686992775422790790735502205779802349544566750170623971674873649776829494924103404398166067381779864838297010439999907240639311311961156889110005101830696641036755900256404792436259605732106214909225480186467629473053989478260232857119189939611358335103340220243497604804253535947948191126521510014042336965620726031511642096247079963861347760674137345336254666886136976558430167820476056541238141183813999782586303633338573802489342777696459893863832514723472114436799975518278569231322903721841362010320144821160997629830891857282674448514078392483364006801798098489773215007440638029230059842198491286731871655720496009595907132021251589997964447139254227695997193247955964053702398123899851204109814705268506088343919762188994719833290566188359999254543752564700147440080856436174752498276478489960383419395732676419276784335277657858737215697121149921802259399464490355853555190230875991581400600711468320414587639530432866315072645549796042230776492521415745261401366106395643842570597800314527985601499702685912779632493486024282993685724938330799915919078744638981782052054861386552959487748676874689908996393224923172719547492403210933236510904590099068226908182916182661122870073592039232612194643100620533541842062500249157934279817233821506108377851398289222882486416955598929149825500323033945598117841489860679328922486005071403568486136942208117759184095610951511153032254590905920628178517184593901372474130190384130779172732456367038874811295199709932001763480183288052346579636653582981645313217191815141892111965145358137301565056976607759642131074445416471622511427503605357383875834676926772018710214851336989413853734172004683834802834255445122997533802234451970312817401273496000513288172121846328195373877169970194467806718661817851889898731936242577996950575901572231130073715954538466085253546081499926691793917104911775840154953628407643786252561365185848561842224480499710094608861057944887224249039965641812562856231195231450189352920276957959823981444029913672356614752866564020474732772001350910238031673430213966351105380784784216207960531699966074342499949809607058703848023621264491131060485743518198641423592635913375329099026107784963785364045671045323735474213443482604767309370444392460505077680313763759339140356858153117616539691072234027441987040555603250864801316083782839502484117862009868334932008248373478746856232339837866495911302203826356988822362231746811892063642406627060339789050732762080179135521956984961600616699976492498610047965523113980837157034702865737682216595662729789949903500458692518967108684095786343559462524117894970030435460408954404522096932079953248504729761599676912733044820103325301985634722838808787791254158088894705653672934062086982314082637425625568326297853488091196232978480294958354014447597026405731091342237339716322350960282649429307283578389428221490123036151647969612731109184546634123790103447970300999370611981597195337586090980521470958000526165198026714982212580055099428091231132763312511076032365455968553001234971554455358931708959870970280292913331489273343650882798256479927497982838426287980733525487587180024589989421753187154206799228192096409346875672738826555455431392732186508755905702685524554538991200928339269284964895747199817344074257659963482175126604397951300277186661463134487907267403145537467894391281045593262851551047908246287384618510655215266306122489407590102710186801957091114497908623614788812909373711183838980702433742279300426457290985328053336296324661058984646168805953486714311841401348454625294468677591067485969414074996671405490322666026606100056055294611412025102694429663437665032985870937618027999364281838171061984243199619577444027551600794735528164364329673763628902306775986638931788354753203686315329078818061137838639528941889361055222385301363986802328910658757495766154188297667506620941314789197893994701487798127540124841955807427919517649675548414422811699847356419159189847610832498568729656480255994162367755824162776440685553154696500628089515093427109577844310570524879008526406823446350949086494457929758239000004158206511533626522187239597218563630782849471030971190344796606907594165733013855728535256220491463944156132918995282096413634944907242542533801000068569777592573499467058485886339944024139494726980277225487330720940224356393714742826722129229638954331901445827413761474515301788617993235363597050335529812561442403818627238576237190954692283091913359629968795551519694204822818912017902574187947600482995703837605094007601873416977768986989963678196399432312095325550753035954855723699415374192585273918129506377668066046154250529329754614408775806235195212217350913155076091050076145173277146541019707890389366429572401412849463337668250419207560577996369234664253104208652073316309874995218465861989696964363436910040157087730930551945259344719196786330220773078317514421205602155343077988327827217631017971904842637631782748803194258793304083375116017271574847275069834921159482527878353976063835763950855922228901886030258969909521264534165825579787105752156799568362626535020630728705159957586995954072542598240958460941963967080449735480176164156909679190662510256202697060513940457125344686671217008377109159752129569419129351781166670528252097197572280476536126389582690666197682764180631798933602640618776444324910424160406844168380936686461487665754866177258130808565787995097172856056873757075386193246252276692562691446792763275873872582369305257267947647198527748516089588276875825679315770120892741778546414802559389241814720612902473762838163746596202282749357464658084288048505197784390820520802437721298538010714650453666073005840415223056538272775706882705355431572612441215857537634250436027169057275677878525514253487148429126602492014126744860405485149876408695579443182077440683596508626711831262889577965946709465888851761343613591682946902593767802111748889791384963474415590496888891142826091038133360958736202882766569498256945779144282856149276940502491974538346682409169879435058427092057950027248491786375443748915086043029652736165677927500811254775241729405230006884348119538687909268777280969484695321134891724282938629590415246015952372680760482061278005837458262496477335098269063524729596841221413273962280643250618131621727377448153193375941139881951168064096598656581313694742018335563427288774920238467083462534961890028853417824599255945120285663356770227916156640356867527742113724196562878316871000124633716275069593443865653731680615914782660821052604792596438289959277872076374634941683395666974473743830707735266614063157036161697101378214478188605019625551934926494187167923514541002964335019904071520064254505077344828696549866528471165559321781685806753136317452414577284171710263401902746018411087438938706314054781359795740026001838779267273695083345697758229560221614038768383448275489968122955699506522687628292515078752977920997146692432412720289592586653883778546859214635826153069816503074770424377683351553849732504116954815053599239075913323742291857183442433525539254093436749232358015865952547409542068907112185461432129483674624559331053310134390042588943131572392729374253435622735267172022882381470187285805091520701826665575578094189628432039867240027793576938828526618669958068389232848982471601722730419419028690246990645622419594246591539303142993009466209397963138462472993369062347235613246188850285149209149219163314746385210554740651932735669622014284160913115260876119722908310224384307498541817791050313627795871693283127189233150048896476093860179757976359051322902719271716829794966774281096171554813439552938777818389824620740026344832623956506854257432238902998532712381741091002647508101186435679975227299977362606023736786230224902919610896703634713648271262630940891490538812680354797114492742885318588187193384778899493496969425026237958299078972989728608399706664418968445568855954647956527040673118463183860894641578603980147746847051640965765481263679806145882908534273903095096978351058551919001543164676132165159616495555838526852327587098861821872469982764148761309221669139916926002736030249912110691350494268962538954299153966318500266381625954397062987522176288108420844236833032475654367638073422915860160264094740609771801978401321409987420928240202157956594179087416269963076559944170852497352044079542766442463582315024283262076631257837717658291669819093431250514297167049914324541984072679026136405135400288693326875121997326466544135240293563581718410055643443412420629683075649990997840394085476696774208667481268647806982285330956014319197841794140101386977842839529354547850589150643161519022062774690396384666884603078013137053796431140448990911490322754291438394414813451387960417465266703932371049886665536431856655840168863488535546695005110584555924340148716364199202098222788950522722183528210430746906090897876908794855017110833839925012114952088295145437611012916834435260326716473967406272501623051631958430542677509389752076634586139864638444620213299026946734437707113171634342268995516844539956533220684129748492452550209741502594942831378150629409893651474981293334539320954111698653660104891310385504828380127715215065960358416584541536210327771905951871979709868265329978880591254661407696643839669632950427208520581634131132606904581386155832339362369393467049836021247317737346262701586415571464746507631548145590335676437496775299603671882879790781217332207509005448065083269651766795937180740203457110156985548105768713139478686477373412179070511307994830563233503809118359937750003189293513735646311814425808441697636221279295473850454418327799338565679946357654427859292291111377655493807164180821046077074013013772352114166889382367489091141181138424807553701485576895376342608875444208404925386993236321173723131109955240922868097294609414596763763216155896371505776367618452238183671924703664095556736573023668522152723841811820189939650105550902383830001578315888530677964177101990961316947225086963556080800956558747606273592670347400966434261672368070434340050261141979103835358511338086132040748636160391702753511009304955548497113750105401223876749234232674488472776864432504573448810959633197523996101013069129337055639521593008637747354855128233206346956962321319840444203111189307025400225385212207319543648334773491187471904028807176184629001585809540376175309669773870680031120025732604156700830059018607028462217873846115225915892094748112461547640384029982981969721384578833123474580612535076576306343523204029679851434755270535803589986224159702033712849100578313639338687299208422185678513874469589795100088325164030121619660012001465161342864825865629690905663420008040308624836849159206337301200530178189356425827583945036448150262510426376701704375045811922651057038785247886470947560606721760789396043388019236069345178316135988163040354259611619173616919223968938869663971451166139024453471225755447070881289720485446278463831439576493902035403301029114538703541461411876955838034178200612847910328122154571365844845865255435850993525645420969226091645235211264611483626277893555495870228466851059173071577935565250303194485382315170876518491480174067549556576280064839311480228705040973030097738946475564023822439685868622979896385746787030967843554037515813744681660651667081517722758275073577478636138938856076028121943933590110333490457630788519677215509736352254509062992931415415448439208073587507489869464677615905296647543774277648414158801717682176118071892165404969363071768127739420215110935776010551351962630521600026556548534348752889271630551095069381348828733139302958950087926438854727191415492243745735858562334037478989369281043177498024574887826764734424788518808858956274151877645268242064092754892960075143530132147811852266579769648312411405984903692278610802988717729943544799948358140707705412012906844385437517615913519718122502211461013106100353507360732747675502275623699604348379523498781338287164810422744754705111510983513768458906597584631781115868821261626614409432183628159681342535270950796545236776529029446971227099898770853184021994056387721282529240683191753337285770634317919988200601201786714326913676258163734593252143915344863357924258619881944153693645551601846886443693424590821197164759915232422513555342141882640496710025083290323331882742309285147875033401411011875773675209836915238425764598970460788126716331730699727409350284581296996961238414908012546601897080377036543480218724111036607068694395077648458993160993445681722372069315538490893795029148982483180914195225190008957084842606618751024380014421186738396945143077763038615188769501821179244786499606049477544223521813306583344812374548640256766140756545860529283415783719526899641799181277598671099327351243913189109050088602204651925527639876794032884866684269785574746406540390361378332997494499755375879354521825095137052277359558338704740141934608982599665625769891473987082708045075666552139092315539396455405106382942328343768076421751577502895426477348949922635329611185020426636376969986953507871959905533451741049133088681957080504037181417206903477355592120446040340871013259064707990555627277296432178122206071201031486132576058126990828990858482816392894841162087490696086849281505439893580809622202797657901056280105002340405276892447513905402872742273873791065490460218864730189420569524249625486954625731774541509819978444917497364982818113312434055307752676055459279806951744037912360213405806058256317881621166018246800963635130224303642153853223046258513574830231937385215962038250702113611357946139483747522766174925780955603832905013273654556643752799745395285074127290466410916927967820673316603723611675623163743041632793430002050605622665370317625086598619031412959112624421101142512489741242676347361444663846200737658426084234187512275941322064015934340419732115452226257452188495701413212665672140911306428286411941539739781990616349353261261396973195743765138330124247654364997891285272123579820966740020896926734890808978196560232806763884241235726086932843139847749700195735276887960774953645595549694419655749396065453621218977139269355260065660014873169124128983123389536902226279098822148637556474851528879726026448921583931327090583593301706111904939587377167758722071494134398294220864765792533747809018593421831887803958668437838732016808249134759620720323206349616257175338221355994153089449200419557684687237712477570939427456250233542789622306358793590342350214058793989244917430809871670135549306701714361286120745546435021161102387692946997121631528674892521438031846425806767531866915285576872096388879881925144752364893696091177032524103852422194194124649836291006270699961318649444547513870690606797232671430040631508942388804688391759890299700113588588821410374517763498215784846783913745867445099883069520279956484169991335770812399020264692415218317313791781467407218896927614977522929006306891000685264556082283825509271888020245646969795164925378687720298888238749203958143210750013101259642525456619008211709414219951957125599112516315228864158859324024386245412152847219150811872720696354666242484357937982028237052301041223818859982374815632477390593837421801365043056740222545380939695075933001110684866214282568989598424987762801337567320639952542787876898946656586940515463174186377661719955589640222761806657448059956014951129290277601299080997987302538079397391836013165189429828312895762231685449813948378271780764979492447538915297230940885101986278502168240373003145235521968391366471027859344695048473821966696896277219462198135870410493716400090244633474308296113824858179631470460918979296569059144969262647008583914705273828823615117039638685012077846146492768304667438221103887314389699703056759575685026461572421021956937742251803533735454191704704634580780452188587211209571582681575687711051755354688495232508728998083303848780862521740302313226877224396413093137375874054845019548697703965164741845026114525683342942084430072567608138842583645996038801605962703047068613951683118828227786811459339814729991905095663592480996380381475412175305865405066805413982950182929566384019666515362225842213330596378242275512738903332380475438973704304891354022553763419753273477888091203608415029219635797840306018186628097962599769987735490804744765069877686661631248550411470317043577522304748974561350624992583575076697681932714494663643241611249950367820559766089102470176371865077691645862995861617926797033315091252732280635437796249651260362780667345937439115808333785566778893935968594946016348669426660771623245926711853189539025113386524937909869349944368608734467548682577803030913030422445194603328954055384322231789032525157537714155993971787627470542415302200648504766530354359749248440229280736335760792115649892665675343771680584064744603584749120113866731251281581206405586812175204862901056473056457741519091122202482479609269172355702145073308232720986226509638331869247524290542529196016610053336096366202231400408072353408567922920127013389518973061909029182162019304027290038620679983765447418901761718580113765919413757212639441551134421818228120992288257314557946486570562890431273955886121723528700439918191928153191872421868480068031257824857529957840349543431146358038965618183695203003687840866677380179645994363856873010928234232946837228767458400958112666536414599886301432489054014450752137878542718874461842961711178639277947198191524202304632237213072118460724036765337442061210653006379078355575702389983978197307640679500544030385271751022843444108456571512255852910669175547645785487202979788805579780347058316005426492523051358938822121146511369008174625453875623184658899517480465887739632794002744993590877932447590430219941698626270546317022476062102736987312583375720034520175370550036274496932339167290185540189183759459880017191012988944518876410530555167194092731624299039844546665921591531100943111354432645562654361246568643668750846428224663858495884937083378987319519327930138212923444574100298057426673392973729933881086424106940168108985268953945256076770217591694169374396552074928000437963378880731778053904407309369854898282389380317390620441755196276140581108270896452456964394377729826912150951468427661299828414742550602410427773027522195755334061747475572400066283795263443893708684650416277628377971575014978103113830979636221596949940601763432632768174093254025379928876260368271399118102393501417460504042297004384973864327150726781585093181226163121821637890307925122278623986907483888001426191114208700436461289982931653364963293018504369018170184028047870077588195031028643911315419570770330528707761118832335809552494656184661723962267892784372307316717816349352834591483460413190359843553723787754888967659805329785375155940192384812487852767936346312666998383043760668104137331838090712404341776432059094031551651947532969892970244211969323496248589257244721896667775854617371191919009996482419124544770930650141271742430311493726249137489921728590019104728561275666985402169893747740160865088939127784163885288798296476005156623230965047292173203204171172103597738117345467489993108495763228902932408673955104993921953249816749234848668775999793336021501200691982485177776335310970965269844797855423279092279936131297313670139487876404939178215624268352681246099023734277669094912591375648331250291422584435686395072600322082712252885742952316260953355520538677453014972225078638464444231987317648384802823655838944086766366453186987721357897889548455947762570682255564325712115698551893350530351487851642854797795621719937547280537671157026961825520372203705349928994440680493839677559532213060451232407213885359289772113836285088604959070888533976335222546600033287618492055184853446554365743050053121405341068435597354662919872331237033688369069151601686749555949431015935301217950188386290776017425888642351100998428763190697081700098502202829186403118179219366180886172892448239244872255247814923926042684560093366841754398642935273015556276077556939809521857313949660431878125612997852743443237593612576120467221546597064053916857958034153677155741095077330133553305671778161150827684266002112730354718447498234631214836494584679800615303992447330117526674197177258443324405442100755537400751654817624214478105445200984925643254007529448797858177757597996881765651249880266938916241275095268397306572423068551590705802967720643401006277541951496942759738704812605366438385867076385614596181150944617634863904318092499098310095073817520676977671067244996004089629824664749403288233511708649916884909527424641493953342739291930066082749033670510118824628324982788196912553950514445818259478237672188156694455721442036819443144725695005085607607187603226495644449319908487668853094180745093593292706228879256116170564523987443476456659377752374049505149883863465596192937494539105680000952600458002450793647826380690130235326120371486571176768799988000347691890919610743153552648728349365512844803200390222884151503884440567125402352953486695650219092403461046764877140725835954631746664336632729224804960378053581057986185442028383897162345702893635326337061722250558784036475911093310837156425602303415139890227042067041754901242776536401617118889324699458383366238164003773060689690943864433204951357822757925556316701522577262876083684459784135967019621303385087504823737161702205320104561758442428339647993262379666046954955933189309576827902979057659826520535881486003968363445155729137017709538807541964379152257215167625420620371549448889201154326695745238597230244209847852645096171493254780241286897162827865539492921912952654209349927713896576896841476207017418903472288026649788547773127774121020151313352298474064703979682592299669870299281051747572024320563311284524656838167101428453157937191051711457569901737724628317382912044663430836849588689293933811648724397817782738052436826307605307585471168368142173594001862111407240373638639826647034510621304437908350925564696813700075412035923063426979348354088481305218647755080608344838022027941563211714902210079819805547300407330819356924917078967390341631981084378419836013104269049197898513204655751542931918079186546798944437743046705647682170633421476859054978379083099182277362724909767099743178719242198093230324955476593168039214639572408760869457069449029487881911803858003468401530724198239175348874131975616586570966878133726758106096022324059764410269752638537212688994973369731992644692135973835823301351069951974792367202992383009153632827038558992481777654639573742202012775294997086717994794049541997295120833748753654387608741307081157704199576898856887814831909357776763180528449800453649239165078653884857053252562499674233736339886732494515866297662183747337607214873499900864753818485378388538717151327265490698192825482989057604948987197550083900578421937646085212240976240754477652956037178257274989081416724022522754988109308740627135536786998752153938060181822670507976966526211840050458524958327912326470656174199468926255174172062407953981879982108912707850400697740454904290536158414007621574294982488385943806184970285687891363735323606946076977926582004123733094271750016779756334015349079177342361968695775039937165749271396499802679361233742914682554571934396564753624195147539916680454813014125328318721380581031451908648029633974635613007669857409462891277462230478996586908890616825681100485088970895380382899779926314029344546537975263216675413333957934116201409680430380649801991217246293862529107968802633924301602266996426887425947409979505669215011163309883197519431120387151953669278151826832663051960799904847999311473279141005531159413825194817950224670417093315981656672181571308887430708799744546549387355186036438901040449900009503994589649104403887933972663777920701202620925163209715604248883012790816684403797710567110908497190511007178122670212869710169062866087690252524850989164648586019568762758313580526246240627693315577900739346941925057490445805061394832366983208510338039028127665357070817132075579191257616478494192471828976221371416415195028843093591806235410190169206824964243779632254291925205203526355141322604896755880827191165150993343421075436711705120332515194088640315070353732444006616917078032090393862197973274663618399423681556027746599292435145775807865193678211957570517291323158503041225033625388767504482628697662883446375597496306703252581925132212454276814430753883483788478859323017967027410435594634019509628221350113176964759713409087759434390035499140790458739809092941573538962571520579353824270941700484574276694587767319006459145391486636738205602391419992347905145362359926494919475608868404077465811967144854930473940877727313590883939998360482882664218154862812349404733906870255930767755520880482638919493768675481744479268484526718758912249733077383015819234399375789260592945869370579862902083889394841980804554614029353019990328735295034041921610235525876052161775713556960501433890306095919796848774851534092351945191045887207007411870950892073618762184997483564654894751405503549672580141774255847110996473120725513701093896136655504612049328059293381461451609308444336009525138123590871610306449584454308298976804623466571837385066074772233487279853764269341360444371292862568273462751016157557098934950407549295742041637143765366424722566981659605520193254162475819673313074002958073435986371131615846954138855468231106947952038662662322415089604864575146711550538322109363946745949417288679378692675052827624080763468641781489911807311769054158811323744756474346887174023203766105026428780475587739885955758109773702700364203814146800120119185281285927789249007955605774653310298760982673352301085422233871457610151667054694451029445365692246182801869040164956253792175859942569875496227333663368300058708896930199977164677806709260604214185342237927561191859030769414914859890223292469303529240063409652605815080075462719699592876042258674752956880288362771765802295389675965692896841851191958265672946425109945212218716380427550517329409874125662689289710660371905638734505758335808410358571777201420063892853535376265023985077446749584322624539307972696711646441906082174699355237931456377765526477096521471488152771189227526643091723051144776773754554115251608253316522195073086183960487249778606976090207362048090512743712135258366839664000466624665617192533254171867827311509856780386014606354761384214125104739027860681872821909919654081103396982245506095072872779742675902720737926559805273071676259998591450990760367417727317521811798890380387441929081598404184512621469178949414764471662273314145302840164466337673544811658316320778586762045834951888444269213614881246083152183693843774161364002179757960547161002474914362572110901541117431237594173832298339952007273679976251178838625216258808864524663668959338878926945472820788994463028360932802082452880092837814943096745389515132582710225196867320468396402457417913656254296006349652295373233449899782985317368820368367086813253966658091825403437789921258931534538626381126666766441158013807325092539993478897146800867315532005750524149702308753783405802094485864101163027759413020426936083304380857233622831533673394071139578089656166190257470818407912237694927673854096886922009379541902988822472342120993830524765690606194339697332640580701455574413342855131459050175670681236981122913547120254960972567047289726460711732906527289653189177158764615585196812074176109953151511632589668156830069354287914960723562226363059608939161302230723201260628060010288066645254587349781405254491455025859638355832098616594113545746768395730244417503750301914541611410106495243104847500647477589474790682772634821795554314005456152986438941047656846469506136982276996093101910532471749160196359597053278860776798112203547939152910668403522534951278774873023482395017075485208290031713824407783326391524652678449421824455792143479660232005755688013747064210742081289145873897837570203786048709182521028605599462984022938351520530768661038884276308426716701776457724521927512410830197839270930901234969451667728602184278120347027250324655938500288438143784884443237452174204396577981090084174710888823640436049458748899491249211263243364710980215183099224302145078754938937917009014875920960333113740311507107907416077541932540738480011706362316304844716048617084901877733615611920002362548690015705318051263286054559418174601132518932696364730325368339188131524368450446157786522312023953995891833088651069795542426098693843064746024312050838296539883002632497476904458158242207861727795146666039356148160957157687547856984148489265560376365148623786215398818557415687126850960367015998726434769423613860236620508031277533236116242521204654271281594817377048046559822111304527774820442819325022119783085496704648885092504274533427988444739316842113133439239985235108420113960032839191604182507662934403107786517256477548175643184117627899446520749207663432156548830968026649724455339473861325514085613513045905908117823014722048510190440421046596897292345526601951635308536378060102533939743545391061372536115282458165123430774230135854093308204409405809088692251271610487528666946863053635285502696913330634705402723530716888814884354698605080727150807424556281333497596253109310466616267522823159794583800995575009023937268803428399583291276332729984232166042979958040890342453594292732702071269387465301890620141658432176887844839794785718571466093136575701764807736413771559819835896584664046198555010959007603254965382016578037722685220536125367958984989100702620804501992771147092405029852408430754604001556708168088404455598735036807935746247088019654485854241464194365474017732326635655992842490117480753325182784283431416548533231878977305998918642440729547417232295144290412166342799759443391675663964929650663501441866428057293826713810993352696798473884273773669530879564304520054214706286676074068334150732473700576372086903255955613635055860380710859393062835702071845931663476769360319989465052245211173828694013174150036648747956295067790369508844633644453472171630382738443233743328898818855192705670745186979209931070037499430458428027723057660249620578727882754397617408634554933751340439536200871703509857794219812635249895554255539037710227016027308955857607929356038799317461315294758383522649988275100644378706281871760777440840677229063564191332632314347402464128800414538367224888472150102891152414093223492622173141275706158150091008071203005851621331778809645704710799338612425166064198886930459041270261838445967207273996741317910790570893665230171512785051237127358181777849661341205765826084249434816539931867128462285501561887750460427359443234081086520829502889909956895874632762515267702434426885081010213603489115231169897567760267059845982936305484990473581910324831095323613399455573897189223025836699752312480406052252387686971143150809614630603695003855533936743381267334444023183895670173254230531947484393852571776251146336146844228169870133215929312607225156154277752386877499922149321073245838131165516377315876880912677758397607855513728156164793040758549096311520844936225452408559585346919487222353054249541719716508869228336900449957492515556557731491656609272950307391201734943094331308581097387953583303345494134747822431600068414278182660739469051114837283910738032628861586766366602880554278498271652005845150296480333794673887807280055070860292323958633625861639740008793189087059217203557047229760343896685222476511503813806380433745503657856202820385941066974552844685245874039549622999878681751428900490128575518705704496385764946475129968077781301368421752028187423326757157715379567231326095930277643372296159925298507061798563444063274361770802467537595816484567640897883235717282154079230073525770267679211001208673441351467966801510534039155782698499514576774360874219799527657641527473216866950021047630218215870097682020860686589682586099297438794485633176979490467202216314400564342087583656279515819980618245384449241771504219084023968300828558060489281995467970797100136767296850714854022154869998324231863807872984770672632521492591002767965871038079023967313690268928481678211937827786232196810046153400537939681664430589547807962684267720776858560015705217991358094331813686968781478605813667736575927710803045262838468626676119446881803816557132672564165302153947541971781991309143692251640893376929413754298093622439906766990544803514422599007784999267829199344751003970593586772160045866914291326561508540857909903063361632338096620102585494759627020368458710646646766250704126436522335049055309499738933191747778916362175264540657055761012735226003895176264917768460792875014769542667356456608561605441214922986637937630879363744541900585908327236281247826122315498109608361547568074630246194434263323172029756336120431969258987694313155318713921039846984841651074936152086003238999116593378717734703203720815700820520491474465913645846593579781631681419896137398835236375322139341454827845399067809992577002862164879477864599528508371209036926372009844924585223374783406560158874268629586220230988107704280200421618236366967235586018335670981499180718863573703756325731501173248653775937221341548471635005953709223204748791121064803518596600411579902094827657061810332844333422787012871620688603507606554681134681702933694499699147017414742049792434163905590907714460656601544057638032798533201103509365969787608403163604177340307349495396930883286784745545978509886776405019658317642575779876527286306049437323731580353893459031394009408857123459736168302000661430862955142840614745591124032631005816545789167097809909318764854254865824152563743638697005203893308170771320368160382499400080513838004320095619615432919359866450848362217323997800684834406015781902479107382160206009710106236832459014240169426786992086333223748243696121222841178557761109786567041281068168897887057538288547441242886145578813539448050232509602340892624066954616295189980060008003849188920326888834230954817093649955345170561162835698368707460210112785143868775931874473196605384797469128998602324881676072161355810987225470904800715116181093629682138576413795920838386925454734439647253246766625326920091318207193374515364258056310928989844391689994034688693759698586804970749315832236652159522430083823723732965623967508740898574683575705092309954610835072569661525044592385091785229149155599505353683420024364020207256436145233832174598798248355294355722436796125885135422182473091754803050180773618219429652083925412660349661209416694288701037301192310596503438477491783594342655464266471099754054856010568122269459083670573196157783633694308811095157657822553304909392432356326738508540651103033000349310624952605745162898756807515504285597015216437745492794940044879111065818842210829996526583027720446374926092496103971509727203390114515996941062409497483458320983760193147972299933682853901222735969261666432254187000779804655147687644099865918425848536654402999271844479204897764593301527036106273691728938044621073086014098996909223628172994571461547870350504902159355880458847269189215481486839372329656958162372088740961476434860836373202606508662034177173798594461119922200988414886738442274765792678089776399607187907656600882722495422756987153669859939880771562479826988017845878311196275986990451660187305527434955886355477981634675525747372914672057932528391638356324609236775150708211839844134428841690157769687488824363140030608166855401095060462386087413877206534536135937242443731331212043226436386947013407253947833753438477448850337518941940246017443127415088458099485364290575127857903280035175311685352921503759907501087282007290966706501620691857275630323392594854303297993293039633376760008380541785052599896566670574454286011848943325410653287800091586922827023255311686600751646262837735858817544131569793330950201116401463043626811244909435763260225543079558058874622978856077729798189784623868479302349363917131947620820655329641950963617898213298915856886131713887475243392583153863765192324123451590054236775347672884637576533977088326078726054812273676319183890676562296378255095806335323444438141990849639929690574776231001909007591656864085974443396921699305548270458879687730883211759772960600770086399553954638089728812653985776890663163972612703734525849456999320254440519941378473740298749002917557140570233646263444289296824188873556667385326058336916706819444013460257467904239155321057878136587020927245477756319482825890116120082634771956549065942469883040999844697997535525326128651627935685457941189402189698601282575120950014412544268126908265941972980082444439545452986235229023743354667244238004515178288625384640430807050801612286396947687812780277083894791581639781674042898363144773701945751350402432053360845858541483273233257299368781566963632251647498518239430080552637542216638783589708732423264298870146587127587317587674957514425227654217325559887487419795936669634955538529177640484062109947767119114535562115082828544367660687942657681253780756938999874503426679687057487777677902823098990218100499845237689855449987209026857432110967826521772992135962601154515290971803048691915867497090332722058539556092750276248155652354801380022193882051504407253848918526284949277096058614485894932095023409185424937089214933198956717230021597512884821571784187871162208127257854670200130762529512592193367318121648898025120819345396884227545118039865864429241212392475807055230089462920084078639758696863676622962598257461789632042721486347648363543537099535590385473271211184282422849963810750094923569083961311921725825435321547478759480316973167751220865160134185559867628249775053172583388029279197973645225520021258469865991838442609661301712746722246020522771669670572459438539981889697593837704039504862160826307748187529756276369568541335564734603228621248877541164261212635994861673329391660724852240894488188831083085231799401212422670902738346624528774429755182689887296758321628097264137806344443401753835908756443421907828231510121093143448755914255981947871213167759341642800544832813170976149880938457971294913772240062795201863078880988014907838235469254681995375405847266212810881862836622012961140746625284794810171079434459219997588643860580374403957949152413523034194263135949007775541984925811254857639413622460221356248516235361086048034318509558887033868507607373070950473913996398130612889698835381046152900810286024574470860230406612735215491871828542090398096025495536733248795966080963654404403993838007766562809426706241984800745653623194328746978586916350002248471793250970729970358719689224287963676737154953881252518432729383510596476413817716845556807643643972214005841992836260064227350058668256221447862419050029041547279201538388677964080352127963850688021633351488050566362493900817634015591549152540845670015856396662287600968488700319136550856011960216705301127451453203293159227639671102669530616789711066907009952713764531505855261376711756743351652453659410704544945664005716909143784282670777385150078199382049208996422723767575200759617449812192455371660849241504298568497649060481225263054347050256446936910967581400400699453723337542549950633816257093762019172196105225489909326548009875740747372170380840538036501566460665523739115797744346675785785263480238922218799451162671607258196321448259391416816716496762474395935976690751225156041935667169439956839015367761834586727693002855254013362442724828734275636193265975382307730621847404075575947457514866050382767148376333374646844182653614386312824037391463107311744360651406116746564020982159893891013874684573389318885412853753077382263393928824502024912358889724948905912996132508168118880468384102413037803109542748244228589198401509626922033768257446421658329017068682404826211106409713271383408870955293944536205236533361844684653901499697684878001183335166437007958717006580676619924552322395847094664267840114175536253626677736071551518030219645091312955183682152724541876463422087152790559949659793357103720617874820127560116249578459966599709151254777964686184878002219708950765137000306443989735040277557489866247337741813536079730956449735604543242921956731453206830797847551227743500843983049320501599916036033152821948468478604682187992689296391151009936536228043776519396832384308622188317661233118895026518432475689489868453541018375282758634164083599095162490129558039136080659625335129688649460142514993755481666833314612498439683292016283095750950296426167295650186324366466880199969277131230666708500644281400782871716843097730527745984703523953951420807427653241094455229615758660934164845711731959737344368843336870719766966185246088866198053992778847686072971168424063418705073622989064084611565751153119563895407579992170360862383980790049179625181891262954066814508116206014706875488417643786111084367000844401596358951696026986777193564535152118227798959939840927525455895228656825794658643349963751566014212296362756952896959468459902668782199788367418209027062673527552906565990850829505179858991158493117848569068858788288785007148016526253857684815983248821607448186949652792117356662418388570633732076671555791095775033496187227681177131092001035643238758135374549251344759792013607416376473030850947866013308047421790464844599667939330137443751806374851025431251109560979428212421379218514752491753326585027566792949725320918320044258427152819747473897967140609387459115576655951099022336326254044360739176776307628814754450769645215763094761706499956990483330927508699676591885550896689076929057882798852312122916332094911336135130595609239965040763365799632958981641888325447347326234775959906120718722168845114122477841569933250147200839155717350083165476623653929985717763392912680466536774376143778924654616793582688191161219749769466680228021569569341483591205816994497495026687137362050640859792338491253143183362212038398234676273305720279995131135860266351703758095212528855285752479867954670366622557131234212813498149698526827262487408769644940663041801206017673417125167189995759393145713582355363876993150635131074215933889591651702692856846925671415635747292079099980765225749346820541153493499408984764756818743011492392859997081838110135149293329111302674993178975781716421418367954183922664650603090106295207931844637433362772474653068092715744253169824043575759142957386901171763608899351519114519876837910388909964931054145021997899526353436234616910060005855821489415468570987179593245817528404220815144802290802837618974498512759665565020579891289751797256855895229232700519553597166973268685741116041531766946794218702343863655156999075946146437125979001799168099789891802568535849255485744380217170944708161257725465584411565698315503832485563304384325100030571870698816241553388843742370089485778281089031134935793325954043862670155727095001995208359475692950021248278456615455559226104289748057965099325509436449505259316454014559404471399535643466042333701861300224558247543385608362618939985377984975162081273301310433353957766971236491471985867379281243021658252842538199353381249232532934941042913016805553358413076435716298349388800930488554204018428978399646385644507066992272933029239739804875163246528694689405741873145872826850708986106535155332391067747759448283552629733598916540954951596299958432960444784897090250669680016364366542591576040502604072424279215932839501423429381581910369349576056260174739173406654080193507639397724487043238199127245784136516606360434088805815780637436917233340669070418580040618672940605091841149217108500100513603312216123243875966757261788642189615410684268702618052891146416777689751661616376366614170645080650286380812498686612986757435642920222435818550671211369649699620758262445774729520796220360251264611334711368778538321840421223592457745096112375514698291003575351871804843970763442357743349046485982830252678987382098860440886222047315245126212259772981411029594156373418073082533613711691873963952440346275129082409905567214928075351375235548813758425161719387976902153588863202740828134731250292556544019244037532080242129541575538065536047185860630529494008516126594332002969898726826843669145085468385663328872723205613531515899765849247404479852367647063861117800384647234994400081592666004776367107283510199492775820312556619138929522889569834565309573753412682088889598192989713552515563614140229664624198965559679837420375242023288704312207293683276444358238248778791936008931930838585682908844630775704396272888428641023523092338663137292577067726344576575805103877790400694710036151023539774104760781546596612894745019349154586160101617160963449447858897051103923039524350960779212156432073196929182009751131880160800766465631368564727856452954535342437970582460009691586480917138859763115177406284571993188829279888507127045299006088169356702254223273878854271730765320037483903106927886816979331563090240936997648639880057888086854116936470829825599904815262112387321460039851581117300231117447337335771290705158985711011582951931088076048960652621844035541383425666608801505406174332151772734701190539951897897525429670130002138069466345282874190506331164562397099422436911978663185803427741348770261145889863452577619215440951281184809328807009106175225273081973146258463300899694414177846615815438540278456657869097137713024725998924261288292377269308901694333804489989478071354218793352689814196826306383700211621495282636161458897946801546195713827134883214261888669052055058741918520248170462943921498622768903144005936025796750211416542594238340670629374990503303053841893389159807483468883347070431308066433011360830518062639545355990480262185670767437641853951727770860162272835879243585403439718843363559300686271425451731303056482222990193043507204018784630185861093796787360542026346698310617039703022598988650165820279058571770509662891614173560422987386759814066100184639845832128159002103054313954269998193534266490761665642224055496096910976032676427296413096826442585437645266593157849742781926538246209531987303387592875453852156635674449935671166277777252952669937280023842015748799543294427021774662947802972661994811888772488314004055791492274640424773404057971554953462880425228898829726740983939286617915801281499120473889783604055958431736040843431516071097024515101987965245679477692288610572872099941129029516342511693912259597834042422176516323805347611919825753009745544765157286894093601140292757890248159854173199447549254519467040522141167917020254524449919723965978948659370562217843350541373526826101725884828893509101196992968007863160727691075857524168437734753125921547665631219733171736184944774663775800757794677558874348145453057107987372198310355639523305736607314965937324668073255708703796361992022929991126094828362775790619993293700883664987517414665705792156646855096921434172453459974200835390174119130429549997488425061095075393646949674823889563562392651649745772254566607523863305520216884860981017952514358939149950491618652393441124479873416204589332837523487462124008363969061035054165553326092281298297917395959819492781809440756076068991421254822716326112186852946551880105250826198414670501702039082758380638688278194466230145470643269489845555171257603180155531330088088135471233202821539321248561985880393548838700691999231080486363692937544850468185155748803783383503868462052722799874827972184748480166451647131538967017383658736761158821802114923164134228002696492521845124746455119840609217492781980726775666125933966305919929873540878021131952519583499655719599371192560010675608850527025350731987008432292430139315940383606578940269205314518904277311600499119663689120335667401223903516013631637814956511044713084908671147835562165412702106366636384494075538157694208267701063344533095968529364015029901498797982467421505102190459023201712634846338190044621749897002433207245635664770868785598159747383993263006750451621602316225835047138187519247152670426583629928146104012948279772508301222152004909709138200865499362306477726802052951193974536143887817071084958768591485520762407865012563754665213672320303224041527288334353796389580587463979711994658716629617572808213761179110174570705232085232680566941676399986834284031695166715814278352710338389914315186281673888980420305548382687538664354595102694816858404361132368755883416929986602175425062983121538456293780042531278597324759982467034069076206345464402405345401493227121065049363938151452455827077069724021878471009307691730460239785466421483277906325973339040693345175801739942198874694387431551029559175489757224999801117551178079130820868847718510966236449523819613557481658966780907901472154743725349642401808330083058406707883062139901630817814839416731224995091693348881403755946652200487304833969005905929484197740942813558537754119424582598872297630363846739976619841417657140542246357632102977059823539712742253782003487424699201641485435846365306252395904127075730068349724883151759486209690198944864161229633295436763648733205027002217534477924576574371141682488252936623048472881159372084185011033248689372644083307499664155314191417078482801179209121486252391199772632138273335608355503711500374507885567798569524548308224397053307873146070696644833412849635512332156083779343505919285422596659220991377174570696248972880611951343924311545164402818618299172146673410510119684902346944628121817628370111962516814704320883887408646791022350782267246204528734076869230003535051176594593374614584942806037672215900668721419310935352814362527481574159398408791375945459707988611306428586673209817404848498687178181046574776362222117118803595106544489559293403575952400640778575983424082802467294319676461249259924595880669248855773945165933601954470537878155237393918771226605532867531132984174992366240321639425596168316670089291176750053684150845420170359407393837849791359246533976840430831516849851251577512713793853318311535524457049974331439253469911361188552001241966387097861344523602560139131784678534630730675988769728503855743214794433667853911779831131291746569328174929930179347504428508420318670246957273693782052515069441277860926867545126404758035888956708822058107452470983461799437514642436936254450396838978103834770714521419630699772435221640092746678322871921444183928912161118193209552406020052213564216599833961382773442076820864191099410706291468277750152597740285702204688294770079406919730542414050967184019262081517782749628413319743301248400144041921363843389930170992949564143384036174106552274520883502589616784628475340661228325269285720905043805847211954644498381874779063147862457365702437487965032800916383397319583467377261286775546296677345071896665674770782711587681304296342112233585567025970504008306848383200292727016864801827812225893011857290305479556350791128256646685294855541444898157633231945075406552795589796043782156559830960800939490212537181695617808740164377236009538924218322339154520952789958400265467263979474460377354719272943788017282675466973152127692703754972456744445816702834201124247935310643048575123665401001412004042213587519116712511292019159352603382238243251183461777872905592360782664282610356341163179289524400158250576170187422528416196393637632270923100209012366926373236528004985948171079631897343616536850536199955647425501408201253240002523691308867750884402189420115020228631853374606113293668608640604367339225263830828232927040097762163292605304967192214024853070940455548681764788537702403836173515423229343700312379922076758257337943277135636081721305191936683003477132176669456190647621665032089412415821027963666049102411244119308022205095599653189148138971269194609530651618372025289116122610046563319877234236930319921444434201593119076045759052705571535745732614624034474038974411008680007130620215360538084546095086081358323861713517430446311010339364408038174268170963595714490822652551649270139939551935715965674635088927167809588707436613030908587035466409145219143127073059897051673301218416991793332661609793073261577973529208561961820135321803959188954043759490357946522171828978514205836865603516997037156876404234488983462017838845999855354009711537354190502841018788208685203307482380977635865672581786112582317021112194868879649277714228702037103624434448707603473051798060834404577631780136455768469002616242109738715354829117797939391739345971037036015204025197685915564945798665269305772250584900310103850167756735869838521628549458590883521004342856692445948925443683500101966758549736517748102715165195834627656411320257630671475675801828380944508802761960690233887783375705241103836377093808661571666119013327528515956996496214241436915462412146497901120662765153916574684916083434304921342901414627244798485275090552826346461576080941395487519913547591038421731480884002851579577555475446461430910645539982088944780989969957925988392250052643072113228124473874520619133612773927041841293452326318853886903289118116050071702741271977315537627809257457101057063379191396092444692118122934552296106662674588336439824736824015021129376832978933497879405425622489663080589162380567149136155250025782258323335418992717795376364122170181952313593517812947265383803687348223559540175580495608910068928567222662144844348906562458263892721027096094532511216265925377762499295437806690193764404475033571456004845124881156351052595022404397417275726226011402155786647742223766053191172521617522406639256561524123554790391460139023101729969808871965767196724911625247822539882751562464979439509940051436087363865643640664920078050069022975141278297889194108840522617616747725847874078740479209947811197252831981059128237136687386937758253693117326859822163702090212383537331034164926660095811569206140369038324445552200709283516200163089789203199244089702349366194261098389327572358235118564058637468963407476647486565376705048249257316035020283026465098838975053063908188876703030880064151578508976610347924057719225531609259768683843893890657063868597131792837802574428647108265797531258211462866203937976353166170073562182770382615814961988725829807342996710999962376892255536701298065093529880962173872814054765032009803220212445893022758846289557624326627922262727902809477524503513914302320537336060409188691108736725215836746037395026451090402466905888869364274356370672065719708646642005097542544927160010972404393738938005966584315930323794077128854578605314042558013608937813607141932727647718559989616896055088663566882256232252548814457499187395446312412524359429997247719762744172536139251831184578199942585899814462574190293819463923600410864162710983866110775930103367526975765342246058932356749636393322884199179693480348595481498358715920310453910468306707943766275588460219231940581586020229598144962931732542473676344571479191533868358386802081408967979342816804897625622854176667814815411529730049946006882948106854437090541869565293691083834895621014347304334940974242374312140099937659797201584180032674253288384748531866220384563726105141330452126885787338865155730371770391253426968973305007181751719555782388312036626180959623110501780684015976007584878025155147714239070585289357265296291035826321003353646171814455045132188244965516389137984376588612815294578850436903267959845462012794174318972137514053164346832821291487322489149470907688857849700519123286964430376613422130988422321324167594307852681701267524902856224801612870791283994468651096835705948556892674888489516299061653954110245072679749490220189723072544753275134823330954314441191858544420188810920323258001148227765602537078205654666545744413792944685583082390773610150392103294117112861842841919542485794513505586682842138415013912889651649003907655998936258315309923260690302817120742408245732110076826302583072204719906316655246593806081805488158415711491402362247266328403256840470310297229114585208723682219864262193661190362100379480323597122925474222031343783725042180988427186019200197102974956171562547163048024660217418712141910554472434054996536095264716317208454586633261864408823260633685844348020029414265959788798067342872763384542314584612870176995094343539315323154188451896180069075871159665062357282225422752230723179353808746649277078841879102396785954715693883787651102134897140898209336252046101803988806722656258729186861306121377846684358387606359017781308714062911732182419093876792611253042535411817304382575310438714016078401136286992514252373904344659001249007885643570588796930780921258634256819928221344841469209466705455243141234345485980383116894116033244431132018398452545297263736855174007066767279485947881652497375568664360332430594212364128527255757715924104350479485723876926799696816621446993913180779349662360776915080569643665903717709351940133102203579431936159291626557280261034728792124015444463506592177985901920347250303672244568964482703568258603121540398353372433026791674131041495313008153009521093876084756634928544644591053818028810335768967354785543573547844067402673247799009666307134404040831964096994895831871673996975429718937431558609978972609908875539080778768582497345662868105196348785254913436256205158494919508207136671452341309240389729336301629668222962089602530380414860941624699580799172973612412686554241547771543687967699306244688271798785822084896999220314300132896819892462341687988377136394721803436269437242717388045685824288194821546751471158413996704223105680065949275807269696003859158593105867209278286216059154943309487898030099549499464649812726038575396102623287747593328381469695588564650728731102901479330682476253887562746391702875224005480810244799468987304054837643178830092913277721831333740862302431084453546654037335948277630774205278578180706914018085429158877416767980103466909499886953139656541834906328856393165259649233349432422518080679950283916754857901658757272626054701279212021245891670891249964757921793915666066628018132718575471081399630515550410914173250716720829344575639846674370527313614149982798233631709554880039411605647436667096305886126535146527362264700275622018756594552598741478083282155147168439926602952789288620322970813741873747260302240044178101618108069675260309596547161169326718108652372968561523866774500401967727321216114498511823050048355981730939908433191931912115623947813522871920864085579222163983855966153845015293489735794254005261392647054976587979360857469613303481377789223449135537009810708669496110638149889354594692903617964509719923019390590394863551024057878892146105137595142316836960922048785040485798722751480883885547563026821173009485117166610708618517048445517786986264143700597638052957879847335086044867862273364098492474299697989207706795715212070423394077458794647720325706318560110174232553095845069913804903502048136243733477883715396949273162868800283388697444766485795364451947008429449520726304337071498764619313553171827422490621848956088987688000255708305748798467484250512095375138795918427359174964570745236794369454369889803321875140101127449817444559611350053320211766517043067543621515617203263826795564697406315904346759607826888947671384392451859903292018644254136103044047569252650538875504780339930089316348048924385448125540437789233442277472931677709599595487961725776535159575489156400821279412594961530577782435851251196838585191075268507619285361195875083045060560924772336943617153131012302483528576989496270667386612363989988350078621722049553427992671977050372506945355853099548876647950434409487207446573090131164639867300737241980405231502878171021043862211575049562090311760086101062127999690332844331282221812397003457381852154667718925382055321112446657924646227585003445097872870883300905215328928983660128407334644520075857921765265837743759033044003923129347150180001313382808469035687667634881750635203353764347110429152397686645038445771744326894427975200984809851222321606608443306113733591638860678276776285607964536931748545967403502480032249452733740012457009940457819490141035979574391525807083007025979135869747032374696881216563587252243539421501661755898514220653503774819288056442662934913599937267989928142469105037293930873763324428235654383363350802723451997312520851990173089673858876435638945491602903983072970122056851118130780365266649053206972401875812865500257858503133139365860019521239152677489479503157138912976434499222516666504291566507197585267654359289214872340651517480461360811641506190017824778396848456740730053868655819371034724427864659979775869243237773439522553982616593289857485975473858348221341462961560574626477965020801035390869227774313607225557752874966899189583676581954774501644697001701922057463760887776551669715835193784465292372470412236823127321510700892700636480013786089678585461233279103613974109126260888400178413618172027860359070834341717601646800479800416509471308807334070398846392528555052635015162256361436580167437697643372465947046695057863216353022183526946037291853905797610911437904599483537475019505551081302090985270565005595694021406296776015467467827985080271109025922031293370331281335667153516164077160285470498192701541470630690636045519197668192661927433209779425784400401585487123075975603795227236351502064340858722936734871612416313990647948020586391866809189962119263624922636115560105947706626893886697675984833132754384110037319467778141776247757635516273506048463913499157041518560556243652275258396154369899004663925814861286161131892535135634198241228274767524714035110393013475724150882200018520252458459783817681361627841891680512876060453743619685720604766017979074973148772834789267402048514800994062518123211677182533143880087245696172172761870563485173620433460703119437022314483964069421070687264135207332194010036483253742408107776113999877843966450322944280115071912466961765608941297498192180228920295757811960700567562085268256107364389398371989296232667855079967278466601753526274606075259434269321676648534512491595818189112499620032237700483151498402940188526418062009039079926874610616996582267049011632005322758988704491775673838422527892033525533999746985961543801677374460721209034645593717603442503694485904516034147123626326810632120502873272805703528079021296281762530440554127630081172908289876806474657356309139479622489444458294887795544164490684486098061444148048573033875140680216267835110006053289535107009151057533550435220239789268118174929054029404225184996110524005471603445276985218227328658821973363864287340959316481863161038435454093246488583147820506365848679419950117982687823570551130568925464374190660593787227119754598110729691782974123163386945275303913768032410791016749092045545522033960875031928723396335251295638661455313380580452652237998202420662217877449564401699841736263327678072520830202019029786481494475688487281451230508469299471483217544720169363691360806411309311758280816947934435432647836744191414515706133248074821177896193153130137316772323514108046208112728770616269174207411386207015272228448461302944841103410775166905942144216179218722855061329156603281291670309346466089041258851198423678863929187577752003988861745980753471992339950604453877639110785578300523587116222277632586868249834219723472131662249400866661267489008726201983440194358285050515836495217042966012104544405922315008023154696116306262653920051222286005461001490368166958019902453190398667681211475018658541423750131051203417966207572813938088469006130968279727251576865918934605430325677067644055089741628957655718657406646328822867630114943782406084281226079778090302781980953486354898976268390209760340658600211934716469770028900166036594089104049486182373520809349936729757677545502523147915032448667183498943588003538694617883528733106925363802830352096591430463830760401702408556142121263376475160555277732619871012947486610444867201017508476992009511687828026103398176167703005194317303464671986918784814398945105179151800910225812973913023184171420786692620554720608042253602723838656333072124373224745021038545550864660541004550372897823052904480172227281971943679571355000419507187236604275614194849626639521016483764427498010234944529811308376227090722472548226858973646258868003790933069299044063294979701763688841999406370450354003522045660233578539598047750538308739871480812851953011674200407367137847768664165131145541138998125558489630827621257368738009432073420783057878543260724516965183116413769225495745056993138553280671114054302052165098823261806959967313062376396977235058404693356376822313190788400185157069707792327831234451352067130180235476179328868927789193779138728085313207915338932177190956135729960048483212219275909237671659437840840343070711975883571279866699972118499863409673758221250123381688938760161044783355415262668123404830410686881128970848722390417908875868292910149958956414721094446550803146538720975993861532089221753121413897370535155133260798376706717334236209634589020497092063847709971471476641754398435429441993700002220196749969783352230909155175344623132221095997106208705077343013643819876132469887186779324442725953980383999909397930410042520786706389339846275816135219246758171626699901911807250769962979765862206061193701178532585791486906823908281803050988493959628869009087877647985161831135650277387274126857136599362713768932074719536446062520826415389186737862530132338378041880240715622961956109191779539302485231417525359203269036167457187955179706290351014302148062931144567510859347222533848657195489867479175345195085217821909834122592938607252495011776925518722958009063679616858415221566582266274000903187942646769342318025996897819544906514419844276952350199205885251264577080707447800372213725583799800519446216939071597114694886425652107464535850332723222637202906177379422342383728410903155901283115106699091382908248542607008018781529022278136964916374337714877081893059869575654750049301091089155945921506988568189094304085848573500917187593877668810045693494036720252179740121056757871173738011050942199656934277277603220025972010987921838245055185134281571833230357190108551053487620901906071957721799737396547113054164259829685008050192436110485075609940094769770689495890690579471669946080830014005851994566843557082094518646819976627791859542577572980435698763153584800775984889621030893512968433625566994449609666319497398798464746997849227793263952549801131570717108623278414277517437310739283916573643070787515974767940186482613527907446149191036620976513095057539925852995402656520910753589652982474804979796833521597452438090660989865076454938432634206602497395842248763162770264327718958565091954013263009796255820096422661071556038259433788230938395268261643440441743740734243042133434841915700551510802439239645190781992637828456207691727075245239560983511922683501340530474454048059930546774508107768141537194047920034702418434185855548165292515136568068773815679678343608078617449792778384420146101643761723275026096449088068773211168402792881108070048684200932132179019115640148965273452368272757157149479765271925675933204701665143404445916464929805797816475187404378946967633930209016567780131086068395272247733273414957569780002683052347813363810361545458750062596785416959296659036822396318819635176025543409877574208756380458348390640089551438263450310171165661326360841977247422213941462870178194921140715098088895075246427706178858828627165395043089695264665450286172463139111351560229629025644064007451100741815796251736095463597761906472238537402832232052342694351628695618533426699517308159644822133452729686392186365138791062244869421044912921075570423498777212177418523383115541147282838927695212635277930707079113490056454593288125759903942234601524718541028494092810070613470810336966168214945144386590132404598767897824819709362556869397908136589247227500313414676593828145376116312769090625220655619410871331603716015170676967521461883507783641461173026716022045040410304839233180424611907037206327641722608905430501150493647214302560457513617565562658847180925413085861802032637735648375510322529522441726037110255286498268974624080991389524244969509959516897657570455771540872951670638793534929075186734092690821400131170665357389938278973868547704806789724911765045757858691546120191575609498589676319490370644838266325347722288654690233569678643056036132194045193144817473568616847357565049492536756672618648671892182002379392532076158923092631918750149098090511534922484669683688155101094593293388184630904515610210268785946625173684124556731268937767453947482615832678409358791568338460236487209938495889951847522296131622826341138206889884443764741404105587521554546701100168675957801506994621444886201965532534944236019987020954931106709337551478436820401669765949964754565849018595118209712009242795416835237906200779578394492915275294436790242269887522087932154304578086167632583470866242323834156760177845979298352018009410027639588606769849890426054125393090370006308550236687903498518867005552664990032229168841279823298056558656576887779647606635125814496078799445998989006210577688816029695421494159645334139385183711597181562454096110265728958431670359748710003312899078368428076267555804733381828592781291879464975996514716446669840804649807586050147451565638278018187977734677535430116243771579817045431689247112649213085996100578345322225345226564272351064927388763828911644596811189910230285200164728997740725342091854557670526620541677100249737861757138930611994410325677159547134638717805357435894461820957384562804672543902130369981480402343210943065013803435690513512374387067238090885849481114084975496481395311951256480376780068946752419007955139129971764702233470108954387500201320502292771167634988048028922924201352378788291926131954000690650953198588076579757807359388806866039116355233909741643866589393334457432473035985820899627982723803451720793602679567366540906345519832646725473224482451665937469943514224574311352709365520066560995112363170591545779332315169845162005616591880357586458156358534378455107916440018283073374360266978910764529835801029516086305223139896355776549646095256388212575107814729912747471872857884329489387917436282582411041950084194656202312981089087840073905226504031076520610437660482089881116261725320323280093345765117784715340292544308932568912977773376393708316716286689050794583656014982511027848105364104131344379905942418015295779311643899937250772860668477205047079946984332636211861048658922316350690986846850256122635719302098760268922338323099518935874596220613330937447182483899002738966448956435018383700931428589490236855247447318825094657229136531919517993763962452679029934063504341740038122669711304359988660330681781505934756323113755878121026039276654462119727255039974615357110052041159005161061518980266557940409485119736557061899342389284476891153636515179404178899030240958826244396730436239604500028394795819323826207215200599733534617860444115378679359918047275734533815464058448886153432973978311547504780266535721225203129819450601441746958334689688025179199845861535677679276864882949296967353635407931537609254132132318198279309002836318211659120305732175845039766472413335842604209945083543081382345207213281818320922207199702426424652496518128221592856975086233065625091641759815295110131473403916696835170112496883511470774097255611487615004816740457807716010273836353818424833335450037911375260911886253425989858072714956840651476556130326667014519360305002392299216647521734317274575229822183430899600474265463113219877444353985771320629036911953757901071055581570239759683177018584280783846246218327169724643694339275599208302902927496055819311216270655861918175321691458243318301899546879655171372202265390486584162894616256545411180342827401449031197043056954473484015313152410359402040428742812774787332943697589321300278554974109105966820703221113567132383005762724407895293347406139782238157641770558849457683051756930218544040296281139999787187963629512814639419696972591427848208094041845566204463850519192031394556981466944432514880507958057487054357381621138145509610550253387606517376280570678235655680024434146795637750893267697987133462482846936818459045765358795141015837353176860999173697345028426639853822864641566552465714271733470161139020478729160290617283852661376081758736604178980375754789265701106638862709318248826665667326245038111794808430315112417226220064733148322425578748221002007380680620509494830394478310754552416720918478742802308343716592984646634199868835578348275597798257575331990690357764933023337712292595461523968479280944180883895314605969229052235135803000388292831791205479912259663154574826332586774470712334721604052758961800442130163953649024123542751216698832549462209869086237976722844371861915709391307004088185129516864255416267744958680943872549065960605588640222169263143093426077535556591225299738271619980935193244395172991618927400826553001341727484735598255543963281059787705670712523429923853095175234282912281963317351433260583864324125121887326096903049227857971969739790676602408657779932925719111761668822064854738610107502787245485281874153671253052664706199188587629698817930221311571069987227029787477533085956145710482899389132926781159611432285453682925989612252183853963174262172955052780082223613240381453441843522309001305618332112727737089027777612373772392441152908792164990364529592460411805042007421029639592160068364125194559657531195658732350308343412186445824677761936016188347244033137164789063748185322623368868982749084836391458655975630972695475390168435458140555566777125871431340176044468315572141467121858433957436887488307414238569252243140396410883322864407260833976533164217105539923931224608508444749776619964766431844216779283114604146900866159790037339141640321365337759753411194224128249389639948447924359196605676905750674741678584762267089755621712946745391456426354070737351290621997719634147072993869266533083039416315173690303464332100388788383707852605920642508335442567788161921520325284835448082263594730555516956617567724215438353687493063900621897045871980485838450403358364118236836511159704136472716561282583081927929483943453412839085888262656091450857627021929451664945026781233592753470772555229175089964416049122126097822314475756542225151753287624268752962026035010292969327345229364981840794105177406649553872230840208271144981709175694116740771450763958226581554806226524769903312871189090551662701434973567359872075455389454383518553093022293963490140179728124640265613943498024148153431296114929192883880206013513855107867431488254590842340353658582657187136138720530259201879674305578191317748570261354721610218336730103402022205761379599233002824144322148877795671474325956696477263477366642571165019616782302067826951861589087462234148325339941689272465011986314490262535267562304193892054186960283879433707111875774146082244329277197415179716635601621337028429482604032402446045314808382007381150803627699139830356973088236688036178522800431400511565227035255426641887204582876973326760195874434137524326219749484939076082453917377123880626076016510018006138350860494003225117415531615536553273451815293684401460211516967656395310711173874016534912198996292921421452371879152158573277789208284224154652688931685130982972930347808511467158266823370316375748182279364692369955493980097447098285453171388445012441201039524400600645093040710614996578424903280516910695219326007549857658165029373205205258741421547922185623292875079743901871606402481689087541088872781873059384263185040546376845592509396909781091401748454005454655299846626514044136717066878711359464662565639048111639468356696955919733886867822211795919025803184587260626660294773928292484879912283629214092844757283273521041404520634300015948228029388392914780855881022750280958987623639656776609831646943482603998123147669373508987976606024932812299269922524231399426982784938485184930600923029241857001702212851473834237896124590485217859606023704175686765916873980088849931638245340607650441475140426305233847407230059459174589359895197597590133507181148202973480948664921149921226923383102352338666500015676414349433137790423515922416245462794436977090444265875865920262106096162278463030729729133945000335458713297582862851842909864303246559461558235648540100012463733523343294336473845736927925335845999329328458145460248933686088477682380410267019321411849369682770341809106291771204219174575232602805770874923278115282431625450083970156331387586012464000957696002859389213099279573935215610213470702423810150493328881692079609616751343584566034730613478253331219474758257435432300000252983890980772519532187390752358499619079115107141250930907555036745944843713606428416889271318217629679238781553103392154128293907146380915791164970021742856373712751889921318941177194700754146099970465192242622603776293562658235322793888210053332499859108241452295867603440441448607259315617008938104890964477394623280024255796522618333751890397531312577946199636771004554001871282706456306690262648030177751593490262117755258969322963214144105993601050827427446080730800199495582635225538923099218972984903832171857700315802695863348113712612205898788801763021381935117884353802093835350169169210715606081616323532231087837331680010981920414444595521754891960077734987351871493562215303112935231802550541430175252076589327682372289707509091978901380061605156946093003872899315098501171347806616289016616864931315598033435383451375926939665317477833921666179452532529473323288129912658954983054879512103647674819364933816558143268219007120008003004946658996940813803174605713371607430324471828381341718780790184167160861495502319140205221347038120994372675782399060146498897426554293899793316760502391245813461922171822274736914893689993580436577153572249127031613546154643577379251505188184099807959838580152714178959756234491354885802338636322184112180424834161313121853420453378465836900028935635371409472170195780217372464755298075373437930219190759397763100421470278731450863502527424796661088089147298569156749708318726626004667006175381822086380415473965815731279179939160558527286640946760314403632944052926870862151883465434542619003043778129044998672395383862407646451934239917099413202356150286524767422765216646579762261419527089167377149013993760408679989835681013889649059688172473111372562820112501432240475599436142686640029802289492274924854859111671270854023784860597831684956823573384343168594740575294788041629468658461863042498446343209096574453896260361347568744370648180412376972299880225110293355513880133667742487653930974892784796672518726371890719541049343570389593663297217528356337688525966842943571609047309039510321263280502602612749631217642849590875548370014385677767439058197291749582679730681993680290921903985216963190573116610667493197686811629153758085419864652374234008692774688185636481098386870072814879205151699043590452193620684588259750638667803064579700250868894726865410597836690472635143160030158305877994740644052690230279712899687779207516958184623836276339637235841299998279667205110372215090856970542629713130516545394985075625453741465396192389316212807655678548371629602032747463199898367564370318690894129316407053882982247932212991707181761296768370567866828082565188923686171470307287765411747962026767206390353765616562505364596719463166024193924886351878233265500263828747647671639427968105349399300257062143067580464424702463861414894201435196005348207177207629106221675774252127118729505797395849289017671311434644083624729185696809011078415661520063709812599057691212637397858018987784968696345666839167826805378233236125411059346376851476339936766872190931110975655162508501296427222547795506421050502416850205034458239501803475136055695119970158165627985631226385735359460622075921295392415487986048633791628622140117858850729434868523088312382997107488419644805547004358325125374103706490692658023918959023248665709556742992123404925972612181106217346233618986776067066220403701443062097469330859265097558210828087493595240047179618998853351341157484411930062678005454213744813161659602346453717751090742936749575908072699074704399717593686417663751476348965195119215698753854227014774530837655160065463673111942476496903885425650655181199798403220687114039558694842833661125591333681105268054023389650772821639038486735996022091557410508583717334322781722712738351111431733179425539444414484919628977779791098741381291808460691238740613646473982120182699499514117603781909061549956570520528245812006803255677098571259676194506229435994958199084938907491017888006437785225368643594487741854508588341790993577798134751933328450203257134280887469807522813808588113618607070989412753832777364967815882433120112377494309721121393620712333239249126117826236742881723765898441395679249580574510889903252599507151016915311505768881734254424079478567366884704119458543515195809108835864319035778921506521105233232939637719579843481901770730854478274343179505936187192346426678126965211227188708032209783895218135979501898415807490350817386104578004572537067895682476533472206953040115357847124872063293219932420123085961191952615067384815179616763780540529746503858479919467704614012209539762421137022434825050759159232318100730642435774578164704527447184925817805520209131938449907063202667255249617282918178141188110925133793162883241619841402899886446288043712697535513261316921440882533735757577376682603243288953950561364188404337270160809942151842728626533075159032900144577633213871388620208023460458996002630837398752031125842949573797445078623710791689485887616529352012269811533030000728566692258844925147740831222452082746433060517929780196907835862111733645376594305051806202589810719540425646735263314442037601765704844150854144630666362935291979644875882033723595289097379883296085140562208336696774146182898579684175308478057001868907752258201282052508954515174558845939408251827511446398056792494862724235593447192184878878358789988847623699747569178196127418404662485207411620585006971700693686842358962830035373515216481217717916775798847119471450336815272472113877620218877156813198355646823434090354881608569547672745134922929935950464434504613022211879699517233418508961578353630436848626618697833902525718474160777098974536248394296491488311712369988113193983934666323196995774172563082645971302288328357401556304280304458175387289281897601360931247076266088476934648069233325920661593507224588776852073335821810254533120538635189688249056427107066370095924948388362675519500217598591480460796009331401973766921500305649972410823396147462119909949370196377098089193258442956035169787143990216773865634565134902629880351823156764405782500086896492243498296207005597936278290494080693518624247268938271049963322373727972198750239890067046278132105150092559068668327014405762477056801411692340720375515807583862622946304199647123616067849097663101363541884103127497753527854250935480704231248636366806858984893426197073558660755597345849927266710667556600778450119502108726970512996785897444906118228321382670633600396104798688767893968690982676499567998633478992897194320098928995918284930656811787612544295640815258512349116524639621888488958028153091329114082294364668613417794092432895868575330967525111677741311789241808059413649546432413533358913976231648235394973401053018513452896918337697023782746936233360870036828124218483906132880759592902452259703911764670282829919827932144859477983762282453187702159494659849677310525930505190577170027310997947219257661597904776182563189382019849687152262526874401310424319835984917741971868547746114506666604687346523469063905874150924324768841104174166302654547674173076759252400226021479689025590855602577395642387808487144023575421368923616122725528841936997246961902925841557354852179826355117517427792596164156979220437619903349350405712137963443536050702875355448347374314049313390856454477643219245186193338888236476136454559685527438451315833727067249998173361940309057858488535570280324279440532828052405322377435169711509063266298615880750359848720819363750741146039895514404953844782108762165693868016011605298981873735700953634233064731421736851558823879762942077469793851308208776658302585404435151811105132174243051277233582875233036520621659786153567204964661279080470530499251202353186328207371613788081585415769166458894471532969578011080420677431205538412914932118478958552789539655150315602915541865784400291813700387971625903630996159471295327594807913485323579144319902971277107703813138196671329200210163207328139094227270956583189469918988554650150816261895169218501225735866884975128760155641474056722475469094435276588534130497873856906703052518190109963490510945153236042834714310878305505622840837126649831115821769101850904073888955255286151594820543033514836927065600559825205092149897483111180793604128406906345734549280073746824566249153192801474104730232445261048403931999857711567275806917636977751946668493412851269669682720745882792387035279096945788151939313085482085383167801182861399396021486164255101021446580642203082464058688113364052044500475400615250478499354143081969660221936874594809757517296042138708232097531702966095923322563159672246643609502410789565626405630801094231235003003913842846515066578948168791408913068365860823410864442298184884076399949533065364229132034734536376767156124761454737052694358003389013894247700124000659893251794674535380620246076886932771167076782928972549212304203326038844450545819736003218629416479484678261241835270249140534068099011260377503534381860991354156353856964378179517293194810281056371050466788629161109349716714550028033666869844271252221221761912211581090871216051922524334623180286060446687408517514968699123768412470865088938276694611214831995308203754312267359874753826032418974325554686462214433181635508288064276291381721465250505359762941596998366144511343472774459534444680999661077916237432163367365153612311731784642679875051491330637664434194023268471003258377157404372449911349745384935080096731158045618889199140110687821069534733875404727853572390734546904931714987239181866756402557224944041656291958875109538359176685994644133319102719468377162878836436795829355894802887469850043565981614375872782319554840804727729370789967529304964387648442996084579203355987848825754714497504113333431726324432930293499758799903813511162179159649181083502757361120660383409129673777321005753591159739166282419260736323760747232404287019558048719931526793044181069924325849524980657530903809611406843095688942923199119209808878690184111374661661354866389379308719012125587770036979887302819939281520401674739638641616131750192889895418889513105037875159528649639037639506006250463946693789035219903581664698267071479592657548951078309946334398537492202158445256755352454093266455170196664885975513377554478717437749935456697238114285786770781043109696549276558768544290069494242899919950366186696644135114587434931834322564079127634129885484420221066961234709739711963057763344971286513880239166928179668815022447167630778920486438121885857573318071808565297153715018159699557339118034730398000599208118090302361031168734693657035564328050922277951404905202427317594066108562221140468604902090076317945825039779329529521864091680822673552719092469142804147426393362704697692367073224419730976044386445545057056481997866073207326410418047546891816298862807473830238672514287184943931979146367392011178175555681659953357916848762583646999151116735247280337776905538922657135883032428242185436949849931325455610696603080026567897879495527139098029511079753594921884717697865454689592156598183992963971407209397886638750013054350744258158314730225853805387178506164396963777976320163783840505513814263496139181505024857649651937727355695130373985704283673292721553483273509555865341228987115247804017551693785883704550737771807128486626791983744076444776204076307507211634295835524366083832746443809559843820393190772507712654912490783341995798393689023350187554581579804343787347193150593696550884244174660734892100296276346291174265005640560085422942341222174079182555711113585508706850918674327475237499718912999371190166720232798379538190390722784685483047330693582479162024274151945708233961342611956072468410997230191414601386319480037389517423259854200899278676935079925004448232883030639972317009437343742708605164461023838940660636061818066625477556872297822790146503586344527700491651319348014061432494216386406241379697215772538016678383707642507714523366469290138065793555660709307764859559363131762009769757910568271407800863550669596233322913346483097032334112907579250248934573077492763054380574728851104664952861226857151199635624241147995587852366555884070685908943985888847845369028338915979937680101760380003461095976430747369669584799977725360481358233098716232813240853200172633727578770553181932155968900353550642005382996327864253975181977847586275296357942303713438727666007762293214727248097052613222585287713120732336394595472537511476363130309967223689256263976741915057172601177833429903999572617166019018779306149951011007156204446123510923345577269473940575607268367728180311634212890634601774480588835516013702526192601321406475783183066342809407835194821237544939944758293146077154115630165730187405471017001205955960349416410622673178852780877560932066339191828084630520107223474709924036926778264866655967729582410400432398145960095749222811275606592144211581037258311187520718017728579685601038587457030057362809526167978473175747145728716691740354684148433371255740506258266665243194953476802598071762309601768033758934773178029635720248507711325697164623191547086636277888238423002379935514992952060353847884744239442665466114054869343960881083502418523102277410811416282487326558599945390823105906242356713334416732598778628566181104597690565762390240692800715908741117662519096719481602199539566485259308581399091709111402049883012726556297838803180731946859095541168081501126974160073869143195453447138629777368583378579187893941630564927748582628951301065766076600623045174137697979363486949543929610344432974008300773462973131189214074062859709932973063776623539407945365324742173449369377336884666824061071203083144620998276815251227677377859483816137765584224424719916242757161630828117250889327780751565382086273425626944646566854222232518575811855696130172810004005996664491910258471535127080382132683750145002934677897511248253680050487405177670392029239302423275545844974964390667214559079880214383725859137066085776525440920607925151919064915325848932879229575472826361085732441379822658647857403765561504651921044656711639078382459162882791932797491526853057134559341656665670706461578530011539824181387984593923056727382595435262207940387680653075573366372379263863416571989533962784378717345525095343545446128461860819306843858932455930894029067105752062706184744348028263316980348104391162437318000660430059193547429675111772017665824379824824472950263504930264109936055103182807520322408132027331967248921485327927036939194946679973060708166151928450121429707464878707494366420949627041489286466765070274099026946393450741756221739649036914567383027352808742186988181173226633183323453926936056559294609106889849938729850308904386416327170054823037295548659340363915329174800914621851096591628277332995542509175613108401449203388778506720311308450048683239763955437528216530971282815187290061910868594698121272443379845946834587256938534572000273394086660008175862924417395835978839782566750675949097546623621987554687706603635698708332941880877976239550150685772606007456212055578328258469871984404667960956234555837069847231383693182564818563119271352456554957052489425210845638583438600122607586814592190501562775587894773973757908994538082382752291544996610801368041288873287877629457068877270169657565775821282247558353684730173983799047477157123582985497244227110570353966087882189910622226521617533651581814355242834003174171675313553034759283575107402882237000179750910409106924351837536904210022510639782225364058311749960974476925339848135845821094677550870350337676347914522640373228332217004907852625996883654964681386101838914296789594778236952140818782344893691353640837101295315060985735538762831839544533013160457373556989857964472323087202862389232815980824149409569967453195058021467137487549340012313355279785058305852110358125707050519488880245271146414035764043653853418776776719394721277571703222158225068153026366003903189347493802568188215129060260037029279075206108337232654945642330580001045144140348686580685433958210967067743184476292847182028820604723010454591990665987063976869250949500860528273971574343801768202814336331713301924233047342339100599139612796823691608818856615884723785497724399409491066503534374686091874960204861410169760731288358856655697720175494737929883493296568186313011469763297298480338006851313037390612586239336747250750118837343769947705216535228683104199828955184889589923896717062590727200358214538278578954129312220968756412404071784197150034891475407500010394404346218720679643251962521164250278179742454834005693212734120354192025591199382474687300117100664599353255516763485165662939595999441155057463342483490167508858828212697552194100044157757425293221687482503040148767036943601825007060796287156273071587783163765111514841557586151092384667741592057725397724144157341472269857890531578136405646882164577695676577674370843905940055514194130349458628853562729460175381543065348207095892236509736803075748588381013369006416605173813157064677092389676558465720202343594775528422122110227757146583467344369761777873270085449735146507024620672191443495066104624624046776475407929679652719118427978710670516043847151539941439094217912838861515355200428198514993186112243780261716910829989808227280129048002250015595904587478613379855683629107937111041527608940593920685189105888759641633989878515605555407260832625453964013216589656272617075597046592975142329993653874556848252686017670540385353050234779030412794447157773530628674077530836647522816934338676365172974539447409003884033028156828196781425338817545573157724478001625676884718126383778545595660255815330798417997216191033362877499953298535706857643151110220573655350568722873966859770664058274008627033207232373823678972884868618343494236212589863662804452478356684524162444369032124908431390356026491481539959136165080097051240923521981506124812397661464808609170209417392949938055192776115453647910293766577739798826686943686604610988857021431499825722032001633119590034155538893860666982958630657815339248836704194999308508018242998369025827855228135092080871399427382404863739203654215776474524769569632936808102439784408753502821502676133238948008638001310918485099249149439157916918049774665057576674543609156591212374695545626247651834456412209675863154224033156432899308974265116011472585225967393799741804102068887522312663140760298869114438213511262046516357404392364583894209210674655521885072699319843076415218633665735005846542636446749309055334891548199814418570939019654342467357000458658407470159344513826083708624274894865392677282783794783683971119627157841899404999504333175115554532222039842900925605333661913436540802674680143797115273298102285263236475275663823401910036009983514840161338100935974406145646542340667837206954537556787767936748681909253067983996391701851630579450967974002985094620285053034767106394650565335407164197397434448217461496884775307153244357473884661847429613710718305292951728686201403607825429647951685237109882270497464181651645416709502618741104245888364800820286139811517224244321607070423757789344165480147165769073033572394364544698461663940909141114882549131046204663371166000712873500014565228209656072488939177554777123009354609280722759079341973672984396291023465888506835782368361996827293094555658965660836170142096263106468586640009342897846461031516659229852096066581783822099059486278130665456371786310232150499521714896262856026819010766376365990766949061763723124965764135078567415895522152445968136289697834394704999289897984822074100357187380081589823903046149807949485063270825708650553227499715486896126290454918906745807628612457923833475719470212755726755922999237482228360450274781669282377933000610673094748631467433462008223476689525754273038286370901242240104668025477491645104189029199264111583665699419770798902017326372785210566131735831615243714762899764836863724222113599647259656452985164322616959705237744944285202866405724782098803147619744425790270575967986311789344061082910056380577901562853392050056818838987605066880759726657377996988280502740798702930645845929924781677254722383738124605021343940102488624182548618811505758660076880448254053047177428679057746502922357749736157188734037144483385848378353854616266757779326125464086088499615103963381566688353030755892133597004961405291655606709815225060681219807874410399226348514456536610487654134674942523568509380584143269975814835576071079448876244338858842391784402533084574031174318313116736683649192218126039733969347176276924452401667099700825951619669613612534102567449685869108833058723299008232296458854899553095000519933711502301015253027532432107183435950789528044005915722492579519533345257760703417177457284700699231982251535397817455888650070514965766876015820419908744913442638004534077153318753021909093127744956137491677852718267904254258553668489646717847849142562466942287143514687660054348143720688180580990863272872906389621942454679629776434017704673620023165729351824674561270716317816811996233097782742901834696868071431967545794934505658825393903691192804223699449720441214733492907514145633228198421346854387477808517519041417466700051687728272788448522700401508972519177488418213252175091753086082541865216502319417043300453223622858010455818321660016309829709367142160265209532011886317182630470187243918607137561037801651068494931847872105884742997669586427695155237415506800032246958541068341401033992197855144643824582423243898693424824615083060453948115865395483277499344890634508289624489146357951856809405876885518732328533755729431885120297364558533759226515307050934811279759175800106393995132252063370942112474395581326707518313036461822035049942852477992930121824192070286711514165758164893154726035125882862608180823375027570060023591667292344565777854593711965045683025777436382207120163244344751610010282910548271670958556686004032730747927870148635082883395927442377600235633487534287794922366953564091418578091694502433277718811188121311280654478927111290462114562342707747011787017665010944974839780272930610523220191814512032809634899343271473844796143896831356703256852921076711553712998698539736316497107743014417732668970579057413972627707350939115374747003238670063172918621268736666250533435488190647617255376678878731777238115842087104968009663325368177197892217039969515430038235831221872981896563992707642533451862968395433980721372557805968851650638543201957807617291542342036186078050915733347394318171180776492843498375275626973021036902102408723000585464859862427653904010422947463195862317325093175387666696559967478326285794089829040355837580532443398084739607194515995761798624561206479854011251212012606887220194376362430027932113471491407128939174286515154249832290092144354354543768854899156199748744820415960276269096781327233146762581332475316095410088755644528546913600139879737528412449575929531894100503454838099074166827230725912557791340820952030219366679140945322577006376631292529457881313746600024865674009061496955022067220601851763556410106643187550990310923144946644245646304540857109274815507661852034324249512574325764296544291840353307544784079328275104554630658761503299699056549374635052516676911808928486093534486366385007778615001227694916945799895296841753647912766058589881890805808372855596150242613031162078896632937146005329847584230861797602002186790312148854127100270717632647287473243511954703446059738182228463976958190969402612420289147799296070330401062750757579254858147381918958555586064701761484219344393174273928018777122836359691932311265476913137269989356635857613996806074789657100023353063235386232848981174844641252769222873247230845476855505307313994273982064437540471967992356245763716075593823565671307938559250224975507385006703422153052437350112553138521171129737921293329395977876136707667362884298061264146088143418993365074143141597561404500471377541660525346581240835186110818541993606285666738117072545305325640694632928746326641605164588855506481264225048366431305952014665417069852092106094281718650722658398034761372165731209772593056837487624102136203950082630776153194107140666545748935173391873427970432217716884656760870023509653768047191925403677763947317279799469332113119969060186915065317093140097945587224090157121077612248336448575765434059544060509997229561217931244042554371522032732094953553234385669131725591327154432785742343740857423417902905989755580732235707357135522243724317775084327532308378444411085348836394833728778517083228684238061106121284036355051428126939036312448378969512956118332482623939930550918855402464911939109935149488121247737120944891097442662060409221585819938388212439847599657568132090968727080409034361609217528712098123645374439761288139614022871022625364564806449465224875060641568641254201596365737637990826240015662520403730793139046834494908978623337572026738684429397529971041725537705468533080522457763320656783512836031698959739508937772303358755958264810713472417070373296483086273652553473001238690053686164533600547883853414637875347753339859478040785074102591747110204772903725053430991536431131960703157284864315997351251085732188419943835134351262148315911220707455540113812078663545916949976500530508168048278964549247038432760340128184643272205710275706176962300487037126008520006251947192933233649490503916851927217846881615159395439770299443869930632396021042321133766749493814121355221411303376646957627058202102630852223741805981133492353527137648004019979092235205412434836264973259590701084652891188967484340534580018083216074255391886284011272199272479718309230723327653671190969297535976277451261177277264590390942408906735616338898126834585746049981715798222164920100282572593530742025236517832173064580766384220483944616085914453399209636725284208802103633580635956958028475553221782578750664063004019786736689491776576595966650144586010797831900191377466746080557219686854673752848949972933711780017643198785174060062130822636209369946610636179174811839660487312332510823123454853718805862908862383625213746061707809492062999093348606453979385100995469389132709306265889197755927106433228955904501690924087761843906563430340772520598251186288346353687337722770296819348620558228217298384755849953845521448857343442505001688384150473341631966307542571516245351025691627241214803256149015451536698531198968106777846303728023833590254842673173849057713629771753876497540215008641570950481845574140406265967844538864776306499075310815700393600883205260098421091913280771888607813629503797917348963756036956722094439102022469035449384711994946814660603993580399350379343667302515482279577613732050233695576477809079624191773071544506100270445036687648371154297726526582594885470189459747639292299109786305304943319652068751579224185231812857122868004894218320680162504348102264733097669935274909467000416341193589102743187260512142077724959551621443307997858083205727768467013451113810112008231178505886393646983568521324178731764627685221877331598754239122207606742507436329369187277947312932522263623919666783171727405746580994733184162131590233555263758882512359431191229390537557903679562495017847911323546820640195123609838269079657303825037582413657454772106718952197316072272600476340901643831182061852076054818319379533960509054719770117155730152519278603435245013763960786159558313937068330445854758471635093419628209992633240669269338908200502770084697032636011596901624584150676591533023875455381082385307060164588664689519770573947029949021310203370052665053800073816419038485787713553333690411215950783059291227023145215964424398129260480157258041572705169734393559386325675327535702364780082825895569762676029989949481211585450515785169190058842444566463541229994865928356254493669793397229369132069394291875157795975013009578583524504035775225981319503377232159719540747604390214855842067448518349809805955807950611519897664107249865900109508718292679993205806716035937449472196595659469755778044126887836120361017167957054041508997120038828522202683047919281006040232224504011718315349467557137937685907318111179454726930870488355411114804515690160181009661859050680772484882622352787080803235422366053825065580660444936985813591073573974907943618137241301916143498859449371384999377805337616325323844137921618572670428410718473769866976032124503098356658353519587575891625056158662758825348860853982590065312059516212160069100130696179645276660749199354967571752727690937437525974569308389738626772030411621211990467054119453666743766345147428769020097347173309072499955703248660929695943827727417345524697764720731030608224878929781385848435619034689834698722961227441333377011618795160041343544844441545538503225023019319219253683882211591106321564500096255898684725410591820146481982795852102122630378960018619905936561446007119899294301437891253673856327541649327368953070886043569913584854487717773766881064005789544963199831194997455076537809574786793656188475455062023880605066382469481981162326931867882386597270655576090002788703075855160456500152642175655306536686877983235194394218975474641040430342703500187933068372434187718062811686188042309161722020364068803230258921579730230683438224287793617048854119272212676320307620952895004147293394989884355383614371138523455152655990492526654112393150391709354541614842421954943835874498507833912157238090616887107762757437831666955714852312083137166739843551232902088803629237588643945348653722057864591784839784555124919336006826001336112425924642679988503665604579550243263003511237059464680794931494685185382263815694570335222462731156334874635071572489634418912864931674670983108740118887934258033546433884254223442571501703110130259498935676528412028421627055012976765155075732740580267221038728298414370462746783796131700509381367067329242557050531101673666211963505611725942329601904563108725235117208703963511079232761878054147717731316563048048310923416922808625947620242460822664819167689035907135191624827500737430771259830288850676188264129737967003443445719999475211618213887370290815121773566101836140721371214912375658442517617456471765435717663381839133342307994769457524790104690219780353740301715139888798087344533506148131203150908144243810990959410866828494656620745211847122950160422775711118611532886638289614922449450364455944957831496594508341006709747705789663942913558860378632502416919638824464648471300752200929976011461903004742021792989924285262039349837869534653703799371391136472933662737970951734747219652582445536230563567772004730530000897700909937880785343132908292190121951063463153177826029722386435584069452732992551759928173219070673810676924843416894908826713364188020194893546866671163976687555831926345103324503306717663615478115251748670305474229087200638767049995794025548125833526033442074603288594706992234842942282295376553350256902736294980018645834845642600538975894569442477197198236343691334689109051675034196404188755481224539356105148750696183007832559346537127649561455853000702776744673490497284745687061933443658331516875366531814400297188264200573476321721512167917070516223086389185485024333349340544844986903199845998804518066671347828378351406797435034545979930841338539402061086709421144087781434801365184277681018242470438242500081384195311069335729677057491948450237097976331660116632896560546634542460338872522179409207602540099108572960850447264522974231986089344597418005825772815148330380694162030387817297952488509157975575379325688381876882115441576464362471794694667441991714448449927656189973864000835025314087929482613872728718539919776615212179807917863803621502736319985816088023558233817284149938913627756088300749027924599917254934281483303231709123173213582545964266167084942345544376069080555349341753626203321585024660174493922610220212487619603965178584067509261793382791392895227756638322757493974415755159598540510572607229550922979319604195963578305872240753601327060061029622452776222221934922179040476804777534990195997819692490023318243645777437264148347364152764451053634409199743340487016926678814753896632080337620524281319131068232517526632263178838157511594929943107825258489149456276196804697762472569098622920377455978891232732602171570134715413052623559737257512421891639551888657447707241862864524144456603499419188733820677621464829237881427991670526027565995933449220633544175929936309293232322871652625536761171532807290224709337320335683603420195038464639723463251453410874964319235377576465870077323167306082549117092187126855199059895068560945123726279766030614364511248072891393392696478580144058410447557403642514059125456677174107699897727142638222517887191788907865640399581130882971841413264450472811935437732913356874724133612530336171987859616125053561079881936575216637674173402671623333720716819388931971297322368515735066806273740232712253579304195345540330124716918505993373702367146464442838248579765244445822979786204166339847388401694477403711161715771096037635706418840794884339674309271912387414207178377312192743382648884208989855742791076321614822747778567555837564304688857746578905596689989359986796010352881016445375678333375922161885619935168232406945966842878365328525461441287888744875849495897651944263242476955396650390418157667932510676634610977437600461643405683757894214106100845348565257714880907635680996131104484777781227774174366502340676975993266914853627603674755150383308097819080204593893479812404588522007053943065502343167057041523777778177734046797864612975740900286756046985071215824982941408568022394467991183921236208422518549282084892183435289064651192255510033932598728820749680604237617927449228606637295385014975470074969154577372261142278007816426158276779816708475430291324896322020897162015307767808830095682762368799750316016252320519577603387392226045683640265119318206518470071790175931090751850150790425004018241517152589069932774911618140384247909822600382269464732307084476120719225197762888143930942604100825315221753294609479105378212175007290158143016450137322924153453482968311129040576497383850927744336907332812791476521221088390788829397243487369678698556151026082307289067945854969669437741587651056658411473416084467332391493648457423949265957251246291276974819348776938031165349289199665302430309319864155604618664044815969807381918113709344607281311885071111660272876263682678052527342850035169083233800129925145945797546938970551209966749160655589087647711073491532925684290625729748258735786462762183003131628903100977297317309957469355090791019888804995266945997591271047989429282487163582616572722478703844733229629330082705535008905788051043991394509354012289403522102974963561986383279277027602769917138835278927309507493115714853242381837869932480565000709735566310194542038405285229970828777083249438032534263519268954821395437319105565369682969834752359375445289317095855426144314837388560506055045479571835774347617183514428796797437922605266163298569293216836706237048881794131648700158777429034798253813530884035689891470677555364883219498140372906885667454139452123291440470231573300391092074095338853320200504487739262544425290314052093779309830201022685965900804951610971228400624897212855131591787164700119396671071954646929370082292528368912966663000777804618968697192030519324151707884068755684675353789155696372671046949212210868606628910584535342268361249885268280345884974620331730067617146340637179261425900785329510821663104096768631810639628934031762717676854653944164292127175652019353097639648128661717530332977999598662115332058238815027565346332063789862105449089102845246132425519730696508066267270875656986282400254935470271043218685550523737685165729910594173882325011060707075217241338400328187224081154478840310127375344228104482033931503614306568468137771363897474840268937762120487942966277473342003413286240769386619144264775438732468572813770364514478197720782627704344522026340622969358902941504108960355895676656741814412661930355733246066542943965485287520168876586059798039008460155667557643176092728477894397212735740438431062490390012036043531815728273820145483825771915845924069600437816857101520337479584759335730874999043585147989787271090325285367110606349836435279792666175926622326002569268582585347519995902600006196659633925144267212815549045055897666711736431889217439569493883379884202410716423066926520994451621922327869290639618447789614982695552897653933688102097728651161902764534959433242433369641793046577976358429101071638566801352025605647275044311516736288358541141600404419737867155706078179672696346860639142436746107798232064607946974914786897517920675552190418458412734684410431300631981569075911550425004797006655969260783751163668418525189935524930412638416187449349749880174655342408217387347427454763858115335347793098230848521049731626340358946323673210291726970029349795630557838149330614415497095464847052680272064801169569209531547970598741357414577277463316968860324551332138724243579095448054771269725460427875373626366284909732148060919893848432263900721036440070588274715374082463417063648255165099191358624873799214924198282969418554546853549643483060692310823976013003882418371947829958829889184606067562371602784482691467799652864344384256703161874855039457863067578041826151306891689016279984416582143545046318356973395241839403513250277036440138652072650575812683518316315066465331753667889323693570049505849346700153056363951806454251678600484094973497150066941086676816752040096048879504063154750228614727970838847456705585832196584756649406399278680424948122054031467676220432325758442255970593830472512830250941289537090687339253556259225717287889451594887681375093271323343281293340818181630828197523875925718187563845847057081728487240604370031539345146000905043513615928674305965646274332305417156992468373508490946954413599581462999383691322371180111867753001186912594009663364228184879410263025084678745672349044536427597185142427562777707333777737091037593519767328091905329223324045720642671702816571895470379499668246828513739103168172975420074752492703561615153998785033284429399472550456846881207582206665523316528678300925774176526798556438668562111712458831111612031161785223699542817664435172024603089534745450462701797862455439310509438329904947067600238755107892412233835192970091886554156323070717654359676049135792945429392863465709932349780496823081793111065101855985562687034062418054153480489838274986560607455992516646020440736310983303611401201001235055926138190212113584296452295247700336536001263448233915558220663594993428761984965971238904184994227246378052309729118793438851019955996695713894664963665990252983355979430679406393082815802689797773938505368453283806380771437509804985826479733395976114474638692582574106797632940662615687361242846869506691383479413549579733619124684075216664634545089969171020595652812760264518639181249699874914048188887209991024804316094828122645197617675106848584299615931912386863465800541898484954203183117428467015452905829090699263467575972911476628566112485624689645407869737207066621055384704786306560720285441889405052855953508228517172781794269249548080934609538955238448972261302230494402891804121337864697783581895455741312923945922182595317634870210892989652745400152127014499120016862852383177284413512527903463839914931966625760733752550603904906781441694535770615028798217449879798051353297642393229363282260286614740282889473353601367108796086525458582573873180644006285185668743976737093166144627973911528726746324238977976130583974445414988543717244568133678264752801557202531494710787559809018097552281123920269270554568833956410068139292310574071905327113906982451218137601441616162259119274270087726413147275890241009504036263040374592745648932915405980080591994733172007658151700224065785781451624461683318144432488753538078412767942532687199006359081567192344083734312214171924310556523687769191377713830278388199802440479846464672710447601707355715879459825039818554192745935938023893816509750898988297211076094757307388626490374265330493432575278221585938312627106301178569654374442888518398244163007445905892437823111489972055853515111407066076201355726443691429386732919715878450061872209346527499130850250811483304419553655476366093230299889612266953776835955059871024692513273301242988926971754568604438419627854810315746403512812378826918927966283277785589135445138935931610369746511346312265918651318537836482779580330542048195247628948509972322623697927299481934814194369655325035570437577843955757301917508055044514646727068989563934199239112290511818557567976597241754909571662151652732960091706080975847720998859745176512650441136765907641812784556487752097555827673981088567699445357013143882317988369462909711491974119957241046987592287121383147471537378090091078052514173143550866188458081172006872722531486694802528474426883585370571153630341653403772540498538019649379928854139825052969423130788588644666110121296866979502690485429414640308260458786123269587508432917171862579731500872415647426987003950187160511550435473804836941271192717668311736842750192332781714561899712116585988464483226944166382784241419449010262187746713725607567638648659563488951537289487631001847062233861066025750854340869391826480187606881682158898340505929996899572479427766595057048992802613300368230302211989580175076768540947446661388911191267188699052107456550902619467554881471115663749377463582922178097148481615759127361570454750097671790731596242360256068622747553144682155277309759290573137087036319277346968134268349431656203415320455373929969294824724903966956550627776011610893186928167566549834090923509643683530134087641565535064599263220154078578917764497685397574822591942828296146197357129646514630185605340045997310847932277127898346754870203832685949454548717531308174403525682791671777365919696151852659044549819441036617622405277560935524541779470917012138005492325905307207425116714699918998087672115946831258136056980432125429266380759591821546738252848798840545816990086548268687643240452792322613768296268832572739858205856823324085967453412155388489454945652230128550860614048630379683945933096806390032380786246646583715489597885274108481863623006275790568426210307225947018038510475062711141931112090276238144092840107054496448904120077142079704847017788685269558692847988825605741560782643131463985061032124813207137703013496019386340483697297004292339174580975411515718779755763158438903726134957538337495705716394036823022750816805066757589315050574020813878636841322852437236593679115859815062333542538893935258968311752636290834639068536157659854748917353682255427839146662547344250886818460115447508676338873294918560648033823564474216915257635484870739864323810466440345529965021501514214256573352369916093399502065832916350676780199922747002821337780037537694430028583594389939764070235033431640945320795003062906628612890162015709612359285497193847081614170733006284928212846123759695732870580235164771056762917509375839659367805644688457566353817842765003968655284929141770397110460250013742358436319408924608509154534367687461226447887925323518497321004957048688010035339503610027509090244567781818136766499808125652256346302064962925350987431152458667826095199942550391994013455151030316990607610757356832692656252430880449353939558617943043872576306201432291274685580692808153058661416346510315326513668414971942385026076009722372929873172465314248006587610542386222398018021632416005542647218348709376621189507350280253135952069662773604370750644535892586754699979781211555679239766473455017076727432200970660249249882588847954884330397868204340671205683300047491813139961453482450054072585788776866530784847951428972720389319175868947766226526691038383396000298335946862663768904341424283378883683567943317030210067837942016689760022713233941632341419715680668325624984737358606219555574102358753975023745140007001837975499289231640767368456870324672275466130615601104399947647999315942881322069325958458118062133132515531883044758793583794069142652140695717784541785631450485930495125391644780234529745650630530840628176920188864591910869104218002268501876571982180848979227312791104280465864643766902089762900327160013245704029196674968279430241530099586838565942263152020679151543062173002534841856290899784578565902749219441451414150531750458726270980554344493427212843723379413294570891550823802531068696624340250800873797679042716978102299034821035021402426940740799843785538891385574663089446876625153535488086456206054040430635947998141586967267712590289541126169312040820734808132397389619933587130085832085703549912219909067892424979679206905906672930567530845759237798368428068686020238693705945997801132258003215576996788103146409278989997625328536617555055974224606242525565376953458058151192490493112499415567996648861584549772850529312894621719184269856236099013340956701601906096069869109780692927578584201797456480608350479233784195764271074490059896537604924632095564780691044293796883093286142769114362513392664433694972382199317282738710236803180598409641747327373603982651585466728191393810552652792309340470612567627948319787274746970241577596775567818541452347166392098539273922423549821109408334886647908596712174315995519861594755949653026500122719723060244421453472870422688841447252629066516979133628586979284706482774244188701330353582942792616668894986426045942110645726896760309755349000827357034080409118674437737003079152976222271902726972293493340415596410819717739441158933442335180866181242441965716176381564016365114055106739845068720626116572739555995003222766290725594862174603203324556725369550379655178269446678284300378840373226578567944749196756041787970192731043502486626672951854057957638733971619770053146321923668757338485503193858401551352319015338810289716195060567462089371880919980238005733168262295511092742619166283493842428224946894542410559471948373661530155566580347939423517680587663652531664905992259475665651334918565790597565036452216903602054528376241791135727615116663233846961639622432494189777558538733153324848862560170124387749153163196329875983142966287834266660149166229604555816393720770379212508174494955210461107427746760431998434320722216887120182943557008226639315502203063755691953336125850077757701473632220207756539013187917723064478731652850107592165829934297264684043236236810441556877288512987689667016121243631920539036249539004845223424819812958850668571992304451519751799703283949470634851509196707976849873335342997382846579964222377137863310542764028078116641627833594919547651726208783798844595039910791146346917178150840571990306046270611390334506862687599037438209166169462692069135178447864747611307089236781970718297916356648253044350217283060000970813697478615199538328908308538623008414889724440606033133357330962355672010751932879054428019900425269876430672105707578187441647121148204920516132733114719978797023028459160561897651955626475737795771321091241131151479883324543043727619967107843583556204348488006013697324577125562749633027553662697002129681181654102420622976931931607991754448741819419291098997199532682753426901992900912477986245460356522273104068631369743061294355664017081804811671507131506752160193631718216215433287137374400310897111456502121759676986017457794335328962257977961918558730821990349049578350825270809027210930695308052844592294400476648741141580629662581267914775524180070044345149455468190103708115620630682921293774686488934217821171405237197454035448550417654580250324209439995700040447052513452796132340650232733768289010603865161471534793882007526826912769225569883550702650152862621283094644711236944717756714207250551793891292488875065304913310341492822961521098350014185850075064984431393645918875978286353939263223440572650394770233218417620772886953617960141403649028722127047567711823922067619329944227052550232178050107985234134988222393994055532317198776352424676529796649152410794857692498224016042304347091253443113278493235631376953912870483299036225464461705717385085081262462539619283707040154473566688357206706093547473230341221416327575717879409101139671664069248281591240547864111095879346379830606986994922324669764885600386769286108532896293221354676922768553969487138492143748760170310757440112289592527687411920482065168866859594953884335609907136877811977073865018650122539543730675037331457784707380682880205803544481641146088096211686016339341052832026550950948237888394459222128026174787323788735745490020603286568190576587344632654637468779632039613371060018051212037256294769610151630139518798872959963634827133473645722610548962339078477618959882235314207011135108556974458023739302551316994622906990699171878959990155107104321331647504217047140686334450781243819710967208255821252255938390565287061186789901225147403490359706243111886960179869577095313659307073801403291535711918410240002833165106394823868746815652449881093782767468570987117631804082586052987394658453878521962919862525532404245306577001010382708094290796845012100406857860242709001083587612740389965496775000596597514090032057143533782276199287331725787262430379651127164100329819056782458763472193665562120122765795825013562472411816073656426654628445085298710697797625634085039316792861359906945082271930320609228169554126691987594144251647294683370179117467247856731104835943372548133897547906287582727159753877265709973862442846035213405909678135404120806585447704253239363010601984411648624975104728676027019011383066660046755954085276618290427807645500025776151306422249401145482573502876341141754304248413639015534331588069152952491576991630152431149051131239781051249244615590606941048977176273060035086115527339784213796015752151929919067049729421133231356937766475225883725594227956486811728262354418572838811956978626755143688691493889703691456928048125315887693000166118181642687128678787016946069627078801788712136703508324571001634734322700126836178037066538236894327170834827746091053966151228380813191192676267193615931413064963958064837644717469103967560002742895458968162118135707566213931823881219973235748994712746304665899941923136497101449636701330607840159198853210905368692518276175137664777209562893637660368601232816612648695146227786811924934410199698152246737339215064566491392698051534368561315119569965299911358364790473216531133024266357222589204441601063164482854815206209416990951495545909064561965354282831747814346831143671544405764596755179020766662134760316679662829125168227887854395160619406093720527421630596357394953935025007273243429557311613483264543304779837918513090058353201879025732258146980330064959403639326497423321317824195563202871671611489407833964798467540486497295824850406036136486190722081845403445637681162520204096529778219683448241466496673804510223046352906881116604693651165622983246104028472730927951432742079857692850881933853400417463423153344963981155874662285808377738103801639424772984567288701015035103704797120170333796028099997669603787796087246605025393409318063540438014278197491504317765978334798565859549783032584256609508369858521340591391178569935606123928751263847126807026164730301173760242704067122326948225902312945877224389240610733963306972298002286809191269768443549289079986378824558987137568681775652937465330880145539029784861114811026633290751442456032819815843890146384043289357090940695184506093710568845451554696092966417023260034253174790206821744659213754381869187438965456558228128647556407450989888277069808184016843198490740147056180814020841420540275359091895639712433966146560328325518007486357616840537944799470327419297133338096015869998712918966248830128959456607893667582694102113924059197250583358657526313916381564786078693387785286049021287716744142233661490389152718304531862026627809260356004985831189721812132835033676073428238456957617826650529529585482137963334190476265514457094664661043605204569661197200329997613668544986531982230291510612039979852453648158578538626705326472940463193968549631852161744512871581412105130073592640012452565054294485526051734245397681690665678125344029219321512705574452555299227636355097273401593268712412497296940944572535802032020967933863806354835493952822759799940266255447569333701832828379283199878596068402899239608753583449298285150270400228464424214008067040958993270067077597733239382625100760431786343664414482571825360667876133697189197695125269589630997326490778101334844954600157435475070561173155534045949037297938187869684693738097661772080935216066449973946472025471316365748383461109967282606087185585379850152369847735445518741789647832772405367740544017589922626254915169078165655023412147105438830190777690917445211048530203634407191345427673338960483838103164959968898406376259507514120814794782833969476630879263983913676537167298331895383222448496645805102623237935818650326251572167119181790401764352395208832068271343912944093245423038418544021908333810590198870017495843650554362435092028255082102021943392790279201896447799830399446800823193197090696107741022467523466119770376964471504810620195417918958231129699664985417378495964060218448032429941286279866770458542028850858411407247097658402705215582641993618405996705343607187746819874987326496357476946416722652557448203312885176519916367122466958415082279823816227053464243282115704357029316226224812236673806443492755635238895955670219607314085936895325752355516590439591360100558854702316475072562305341578003492388375820849312121057065281324418340638128886361000322633634896348157664875942885442327679980424796711020930713665832629516404114280030261071651441085103138926660978270711489849379711810455997633846592261356027486891428613954654644297660495756759363824623897782759922854417845193688853929246381248892176961210946129515839949207389832032962029454159028801701896990085799349212323207486660819456567654382740429977437984917620946314960304217800583433987596127923937043957791570297350809072996107292440111197464277689740312472077297837241259055363809078273881329230831772764437773374070102328724952902432822222572434493221191648571295720583000177816662693830758052827937009977649394098873123333836505978878857052171161544607682022912989750724296973296161127297270714306767321950185535264871307043849484229228638239408833611638132730147881774448671348893130012932097746303161069702069868537570886653017906167636506334152023520705405770300732811268829911945698207060128797308687017638456680150203698918073686273545200336102057043844226745077484074911150182208678800866246543651671337738494708275865086227063082947675277077180586747246715687569357224727645371898119379526693236122921343583327252441451468991101935564360141021114969275830157994548429231757669380209696277494631851836933785531155939078721105781885400249005209755560445465489129816992441404339540537519789969009206487886224033686609447938998882715489234176179693920761661986058201379682774044403392343700240522330030790378268089432496598594912783367889766987880405329416047113398878982572163203525727791306195774215678950788638223674228001646122248032678914740302385354701661538719675542491844472097272825185565831614977190432415343842689420254280213667227769427378425625353058049561949961437847784877082896425431838222889246617890220683697684323807572529069420358433304300237171385131291421797430106803453394369824224107753918107256139916686564454723274455857066952854282025465250975645843481779447565254419574699857637642034040298464748175363953387747971180335184216900600961980385219778245467449213734688644114682856057948164421589058325990230347401382336556031993109058985688611662255198639304881949249746637935725369725843279060815257490252857216935350975838994156622190459835757402131882541455859238474365169849977874569043885727568813476658158814565331593048734541472797685004036603909620456311735993332998045624378624736578286557296777656183090340790619213715922936816167767278613759074822975717499317857479592035189687731375777634778900196933491320391260129531103046033165527785906766924140736531055939978187004583546399810282548838881700412648794569745381692984627647679394278242091863461076625380382548954828664832422944378619438798425193052031583294176194652275413699158110814667208968165006724899657127200719467707960247556452069249385298304215982551931212073239904382048235529905055075822541512620914615086129898748767977712422337573025301624602617981499840436195952471842480859553530148579897199724547972375669209236523081088331816643623703261542071309097685446617041638656419261898501236808597895406456807783520553245321067098590457111191893260254275577406684648193804509085282122213353330877726833717083537594599992007871150209630773328910277219147823005495607962127866358038281462480682422440484097139556781962291605838585181926692518189729649342587545109446300589306108688989124797653667886985040073126399267334480023055931249974221522121827453762155403920359317065107842416092181852163501399760433936135246978025282704239934572849937671051285048404879863180528779129126479235503087376714086842696435505502785410798730596408829994630147714798022231849140092813912374484363999207777447363851474300261813710494478587585763041018680969951859588072117588917112263741039944228008412123147866646987346507649697943463521919671176043609546098544997500087007546879322257136035691632978646251906633527891074949580129046967318626368115208462370367245908098409634562287491358360071519043066589912915567020677152511288843057155777840315703548581794991150458885674594851483797262068367837512605361663285030834164621878288032391858430429777365757807828590757429640431021475943078884638043647353289149465834562796722454637894495204569147662500501028069379630164595194342704980118355074793125603889150113224446600087990416821805042747401101191380315841105631407753216188033096261851868040263787310814475004668276968845085024275213637873329416230226144664370649455662676848961617809274841188199314543657634338249196097458296945381901886053946504824568654259356014882899887650327594195546919362662808505223372797631133357510884662019578517897160183462063530562510238851756798806543499610250854384033474405588757213222515176277582986405305042781107653979074845051646310664997454080988972025205930757081892945508519829484498608815899478751490742552388468494891263042133505075688795757954011360900130607820788049754518364642461214133097489180592788929628850442069171105208810081301481085221796926892127392476451834900020255223055200604107930101254912799422149306500210927999637628735705048467802537376770546572330961595082468219490831496333224730470252120776971218243199380088290547511059860168799951544065972147825719131102891473626707186800870754799886905649920173107609588209645165808852159594505541540824922349068963458018687357684605297826212445532976492839224664640835833226364520742468433482149293558935379519081607574344847645217860206444502300423056228515385175142819433140324948792426139146129567302441997590808625171829075972250405769443937236953718571086064644108171314759814897586459285010357635176540408947709174802249405481138167436660844467546432272386567789406434053797389089611826368893793874733535225717331967406513018080388391361402332557776943977823175596822328991281071415388549460365429666311501971660043211093826946471024202759938184914001924374802850169955905270889140206431168807481256526065422881487613696251090379780716991204281021089534697148399079413562408053333781876618005425372129181360301757113622088433993391169021677611425917751751444855714215265482543363857147566929098052348645147964549586440882539790288948944184607102948284387337098146212841519446838720927965834103456257844253312001137813858579795111737096386597499667114095960906472745459845446329166175297945253856866653579062330184898717757508583799076063083310697658968145197959869708250794223245785769791856172548062307681353625866146726302765260446451893635034093278590089705058842642121708417012363262945018728892093773793129699467550626930538908587726815006280991215864967589704726830540563535720368102392524435504558009778386361342495364587600537898552520108285195327301480386128264490862031355043690742394819578074121154319405599458404393780615013033188219407450332338546835055696913728824479271849910271656793952793372155966140246482587160220695182594820697493072216742640151000533734181942921602227964332574999949120298758245435095985087196082401097533351631205872796885862027919923048080603453769732224342621613561283544589345361016790228896351823350508499504346958304793066915725050641896211525582505100488730031956427084005553634809761867406369624622433964595910806008251426252681444352612935259085890789805492733331989006490290522058292142216690568354462868897391301434699476278767907775281689360246881553465450746149803737446233158448874942660241329551388485753592650956612204677188996750620104269676333356365154904743309626196785754729257584240670977269270737128106624843647751291614231099846038591694554917176904721503339565960626806935224362670044323008400495102382379264117526485800294022334020517832873698827642598020365399087160551554551516303173136581612602007723851364168201638897553921684100992061954505344091517608043538392634288484480135363429557928307128693558430947757183009522259554045287446422824743237642911717382002168048252605673366678455812403313711244236965058492224594163224114690191054274576662873124401028344505409576610289150755804152008007475186129756047076359709275429535280543845001093230310019902495701016282375880493843722305106838425060918775135617817481670465659789638655799257993393207548215376467984813322702004810988474118134084591354681676942270188726394764730545796200760362482130455529788827192628590082892562741725218703409269214915802510407521011515516525799265790155988406082165188789304440943206243125695995351423545270227541235866252810631455962320721653431318732417917765799774831023838165053966425593226726033247786754317331556112416366832316747808351294950422857818853995766969409995370381017551101730203834374934823141228452474232877369326183761062072766512211648713861595562287967481358145739473898464500604027274996876506763438624711669060855576936120236464082616789572598286563898536724618099805778236513275989206784173313489121422697562931665399823807985290601912224457474780523593559322309089910027424140829807008088642054652832663630194419980855087096109384062761104367467091195101353654347380307365737755724084477006345375088528859351830975117562724972433310001008251444074356236105864677286617748356799761291737101563936342771288965783200203844489777001480539119930807469137924100706291382383875526236495118322777265486373938062221738973392890985222563974554868213626986694181576978959396307230217730368688699764083275257477766446823227953600955156468847768350513798778785060695004794687270420246315353473507383316206022150247977884141092852937979414878277372064059249368286753139072716200324284463735761971163244186071889912423528792821739942952168627642976057243845137031138364393442064103913228016111335720627769179591012745422540565719540456348427298448592835243433761644346419820868438447128452223630086328808247619947019320778506176538901561326534371787128571866558426787639170289377371365478924933918143877529073361425291459260399803784378736775131229725960302298367245652344480852601098559632814230908896629936723739516582750384944097956149044337973983656791999057109035841590407646392379282285492084286307704562424189321093301992075473572348140018640796798966591550139944518905818032045315912989089943551959204641039451211391251392593205448394146078222579205270832663116839928178650246338309578864104452630465339865470476895667821904450103873201049191184908275283407234097499229384620684778248450535633054422514050730812276478617980787926404873012200871919726579363667704802298410910711512286946105285844476905570889352800254806155514860487645000553098280230494569439525448276022537735851140630354311323267249604928273013064199358201881640273345215402161247316428926110385678688676404375692985009218096408573735861734450277734163106446542456235868291141585602629002798174773014224244891911785359552262462420771748122672609429205538675638251756950673504232595632045874587336050055735026408536602498651769009932407930178343033769237961848637083306500334271572842247701378092732995927977088240995783084178959284209388712685891677901056068544467783820001100491159073252158691720948889700162474206422585727780851741783467284485121192851373117842254403756861066888327109275520327746146370297771504831925690580089411928409692527389605241327836888854386150755763779706153580650845716076083575827392242824887068689766909654577014386732555966030729103183530924026214162945450864092376419257600777368153531747769372191733628775779717575190653925629646396715793654995778649979595170208811161485227170293026538358845981973697538802436034980108326350054730664863742552460377371844928298160491949625043553262681668841758257378579602920133250593343144390382082054875205387282672447091649362745929934948108629162440276825264090326438488613831047383808247340949492080174854167097962136124688734944126292974669379085402586584209059612658128068177919440244755418301528380852040539137215026557969360139379120744631604058554131458841865970946866437898241048067115478201515671640311187913995718032822559249581377895116900052779079291761095123351664847566362463890092675343066788707823464402964986560030798083730822379242883555717486303534294955603600226796762460147575984980119875861099695587272936065132966555748241414255643607325663333113542358041893433959761086197531116468461488925764405764508065213614115655038321983588498560279103686165051975360493052654719745594442250077452250349778197631623737939615555483572810837398328732229956987840162254336105090188475324601772178296498145691505073348018766722656148219268152010937024382539553016866590423043811720386914832758613450307146869074712707404192945910191541049771218945119731115184254647122532511495799283723331018106571463849031782006794653742477230293823308741250404130029097178521273029551744109692594281209544609615759910528757415610786295577288899025078638986935063227071141014933799425926102523357622796505252986263218251897884379891061819081041849047770734950331263288733456771892332766346446074172398243982066575512462101000855218874865163476914428609357122119420085996428543300065006362345928040347289026776369477405349485115966597103610676951833511148631290760654322177813912442876791915857298026186615537494025137855613626895257193609167702397448539790916514879766063555315001232807478907413463632204724704661526965381528681905780300008026754657917577966651481448403314748680557616746136854311658807337774404535735016291517414034136369946723396034110668194643794744292110422855926567800390412686079354438255042948073958985775083129592054559088751415481560566289783786135734820697220632469570313183445539144285663401301183547368739871053474436057418804819629416564007249842499419259197097366600417539209293123355781417235650268498447609853240922255763151143667794906671847935071955458240239387549590907027938617312172990663173235616304158431836505937522375864605025274405793720769454531327733267016032620377509078683872475855030759754070773510825069882605423910247614806645007149793329327047842427709613611012840612562595713482512317443225952955962455699244898535280503333079950224691337375010193701560970175249520076307255241187147133297127646603000728835838873549700454163982377147483183820095695429359152739801998083647430314989190734361841760908998322317642215180370537410477105871927186381557960135482797943815446633628204651428357564391123640341526655129861112664841810192243389476161456912485659479602296879330908848959877412979976003082996215947055320183874036003858413316623010587645862352862960584031968327924878826581687404828151572178476550223779404879404818215413682224836450818899938245601416386917395739948974959921865706581623569434088320785967837674811343272745280062679985984219109759804211543096181907174255383852725743520624422180480956414450986897964357442369128159434124800892924482493512518087657702542667269846348455654068373230266880492516238188983922375462107034164529406029847534752641395517506891728726833012589358083946728952705260200617064783413900182888727552651574848021516139785275151015459553497339072561044508791718245307352347755080114532994991767935757240146963624542071009920354529896211630360960620133589193328298624069533673927307857105595324865861324323483601073529139196673440759841877744526412241400942920071899573425691125721597648760307952196796763140545314476096914012199928973659204861222166387922504239954201390159589809126107243236172725270018360090844058184963944882822995945851505038109649707186754448228725365720266486107687795271324351080257006390910849913884114659763196351604265585446852277676243506301061152905239554670302744448764488997645684013180327667698264779057539571691727126706380292441446384612362523079615033790295645229397122373480444001082132716528207893077799741774734011736785546525470197188557289336439917023600182768345362398321937602523159309166854119591626021656500287504063776396439385212377689123295792257527439987429654026078655769377077571314666134388075054689530555876989693373126788318273587135685707888348553014027388537989521634300820975815861547370782941416857255486865138173115995291541205311833986397682397547183479008230866816446023164265414718528370304121097816658349567369849897945545722583276672016469395977683738904458875633461313449196233563534502168248911442534738295326333879479001009637829041646729375204078081329860224771701571016531090819466887999649963131553486669558169307762415396847156271512128993955776977014881891296376164502096001453911875224039792396932861722583303127744159082494300620256471909031061507702418238692272795061979387048828356030820479842658366075043331570226805492817108883575019389960344846792845959001031681486822078760742750215413993459215454262472630876876071536842416611308397592302045384789572928606304036310163052760341715207164357612321303274773921498957334866608362448089895632606845957881625639287988955594357198748450752735669363666485835054350816475198478439663926155938238709804580723264473243585423195325356977409630041410544931860192738024955884719391697434721306605971529400038796705492988585065208613053223305207052868242258853933239506798253325308734779324780114998061537373441394130109770486951318373775775225474285478948730370417206070229558523383365727428025696392652151373428205113786208749050717975064311384375211960545139471858193524124286035378146216734266171996265806418413254758426907482738517074933162004044357183566172108163561093034699500294952410571478419448479988164459866231787562671244032484661912801097901091088609336219399809295420932594220880643019822121817157894505450676201994679528769992752996784342270712737978840161913139519404198109416782920735400410929467047905440663809751849346947808361824468868853799586469139047645215224867580175493684539364356519277176387693409977856286041876346892949718893374719634144614732852780398955689672377680105996622797718830921458945722425949594427266022429127365779634133510158304956044992951694720491174482432245674569431434216387152571691711062991133173643318348848576987638821148969319324873352723488835412639864434993112752060742719931660704579090107092959663894612703156731268241412032579814719684847841431301513423179464393072932455247941492594032488331879009515202594070435056293733213655800608868590033416325131512220591269863758630669300811910692116519236571419290401591624384800395603832029324936755031637325536111772914457852247973352142719726991028423546810045571436874594051917588005053603891127946050623623569330137035957818308219234599164722353238965300779650221632799646934043707432711774722964788302090423594289497093060231917460304162706758011577737117838988237220420527553294691267095758683927290189929533874068537356926853391176810353455520101595780151100956902086632256384195392085755570877078509228643963686411318947671166327875673559518960259218362710488226521217598380227590899565398601476287527244744456137193629469421977790838390796547869796306434458213668405743945730279072586276665152802613160882006574514146124563586649720004282645036538576060997955598013630222181270732808676952851203184969319290065961655708644727079897816752472542419352492949888406758692197012767480464687143648617868829021762587026554097738951081402093003021943851114810425621586783137615947175020537240371272502931607678905489906505271482192623988234454154109579922528736032609839608056427578454208563099892943441026201641376889481161178459227447751244178977106777692882619058872991001112347611457363661353007024297725238903790459651328502509434432767348592527943918703728442977002083718971266071142888819696422297068150674951149392705538266619182214221574943058821639429830327852380873251550828433384409359443013678247841512664883681574665458865056994909137144897566470132531550849431943147376269321915829734834341878251212695273913794451180462962873912469123345456216317244912304687173889904556319894185463245112328165717449404249178193223488417681282367351650895393323356066848296430719495818588154020501993146553166368205469195762144163005973979354338671880286532648516963682560438953789532260135982378193102452143907147968594560689023445843718300757771728671893454024599596418934180814318741557544474824141159599857383017525655819704984208842816493380156486118985974648331146547179218348362285260526727346626177679388329731669877012112096237420482645255410240538913701551109947079572708296810172972840706102209689274919350795608297087467999614531070865605103564639129747653639952632544052876827780004217308152120083313584592317867494576345942085640299554516392054401405340688364125028297767398398852011193820778421412920704726134845265545544101222807738405499693117548989724089155674337841039839915453645917811904900146063460106547804125474028532050825283530097877981125266684837836561065553869100281173171282380435492762149779197340319251532032927416189693981442121768217135486092923795899046966374001558672381488443692064803626717545799478868393636246010740865956195718693081109375328374111049181448747513110718833081530359212476617937360591353329625936023190732828986776850398255886806675919868121644469891665955642969260633311993348082126401495594839742546881425346723471133142743941901876829111276684524246947701794259064851782694733965919742812715991697199724316919602130485423498784091867071417094939043030257463660992927938891017086086381597466352532862907597753554167832055331173194462275464708705197868675564861749368863217297269314863929020905341799794771890924841459667417928216123393241811221272675240634041690634293539304163462215210150374514743688111604398847268004141686745928224902144801285092825930914167707548757908001740585307278472174028219247320685184698499252273998811661474094763798507028398210897191715190784471782122455842201726576076699045293407141728339346923527126099731329037453280060312543492805532169722984250736115866350211821103584548186633377181664386270106034924951627564069401432310124935515451121237927633483231064268960673891512437209035031743448642254240053899861849529968771738536889269430714561094489038813277281367006933958421850161515155907694564610842892182712267016494873940814778506010912887531627717432854404143530627432259228896763059794218948444517200304920507414900345324972543267112659123514588945983386982686034094774071050264542486435103509718966100991103278037242084362124740988904374347277328978456796047965115108867325351615605163739690422680439714014513604661564067289552924768440625796021829091032952408556972287283009378527051562469139897515191725249231934776581085736436854762728560868347274355417062319995911256802569662268496843836282879692355844237621326670291707361957252069020627833494615576118486235612719752522123132947818483213415546138679396997204393737012042914210252420632597739898101600439951913590686763231780707060630503451124942251821076795768507579479991412625372108646007709077004364321377942780447348802957432085004767896445966367493044908407819782378803395265900342959395292346263857448440059089035648232336310464016819388464998222559253400888292689000231160267389062386735240486069253576862674131050937336226251652351020665110399853318230095200450845094196421401829783173584426647665989017625526542718138774740608050093010855018254381573907944731530301502379280383644522721378450528389884463841848571327301476159556165248316411168579043219784518690128080701670523428200374248976345257880733097730711961398292064661475903599738673716308404789968485401467715020816940207452942116675617774273263547458020741385115091951216103643157290979220475940693948385851081662415812714328816732204948643613899028453852859830553473803841207466375024695566593841409317712417514163359837522376279300165683422171257607055445303044616801222156964646417256422401708423795347898134585217026327837671600096138685999592504707419518184275643957586268763120650586213159025433191581202997990131174777658394021491234987325227417903824910453770288197768241309023945077257602491263774319937434299844135356941772170291909399943970232564247123503804924049079224520657022504183734375304064489883709574578217080038904507902331176188409407363787235795565485063804232854470396242651073251326474201546760005910557105958591854849637390774128902970491311127869001364642611913267720887668275377003701308763135065644028461628268463626434947142581470967093124039284112328357969572805044749035785512548205514994942071922472479267123450510687941461540341709159906918328406990580474849955137512090888079497244320905312201998270813266842602704902827849409696992063869218065092110686298440668609993440445560350923188258851980599999694587114845372640344051561579593746089313793413309204206196117397409647704855653548590566601412212022144550681723827546620986488375252994931388582217037652369930139931795031116601647040375105003562554656308567319030540002841812264026473396098421102266133164587122171197313116757483581090737608296397918976950936100144018989950189719374409285357761006053078689679984478259262619416166749634722686200225500818575214181054921731963611385844535729150303885263927391061931661477339629586801107318868044046353288096563551911983579863014356023498959797497601953631107597097510903464023775675688891387969940083979403638456932319197774581068776063212268486785207714519364582677063615887271852455874688448284559344611210506675240098346437212610561595115433602863785737543711216099261490748992726745113550407654630783675932179507063173608393448255863073532477023935939575580299327782674674344696035582522617903883304199794742994750749059700025611390266392694249718613433904301284471857233382245509957158958065848943965712995741139205329820679115133479227534680406519389837999514351964098083164787172401190247036988893888192463814365098421525514057063493565466282475567676138096899676111829705682277124961640037905552431295336516701939433020457970005790177345092524319797188316119580188165093865155008389839787621852621909620229312570574458820274516449076667528305679616157110119672333905380677606259325739072390055276169367504980433695867393566350523607619699747141680981821462607730079536624267238921968335847413965835660807299345142152432355708505357240707528932084285042560178146519563425410475038631937297667627071063799664222521341814701846619330725699257747801523786743055276135708316856427806410115656282272693957253381937937690998584110249565314397022790665326082458108672951337287589328972992746477999631692008510856720168264140958082306311859014531546815964792202310781815098921454962113805591438354740074632173284201393377786055516122880129601237113830475489594640743884688200443050141169167512639703039309495702336578274878254642335261663754254733566636826721924751208313442431006818646652542148075813370828392628742721862689412303053073932003150221322403374219967648206582673836775202473466255906028117235824281928485353921635207622907567452709113678746568366959733901149475126600325186798497020023981382459802243563064478992327800727556735637736794882186211138565760936203172812511626676557656704101282444540845980555599974406410337860607712098669988360627192038588482201576221501449860214828633894760461541397361931576111212604210205700811296329916903179413807834338798038023172686479763741337992172235690915735137841930056319527399249699416103832868368753400259881387175650228916971343333451377478326783411326361930620320306604494858248978269918945139368262929432394459579112911350151693316209607984993815898224515176943425297151045565337509975498186022479329217160780884141810513713906246516838261967714767387207818269992750694320696459616514480728515173891937062431792165027466300303673938394409848494979001894864370025918601657299151304307755924907154974244225173969721804298108756807229964524571918857749171706402191682876121767226865362956071957909949117187749103928358999653332272354417997198620712832267732547589263072257867867558467756797060850280587470747852451112549459682154865332182582472141540740002211429363479350681349982881189239537998466954944223303622831471733311844259082290966724946363433930111515498265456834454232171101874832907324808949756916202524184154955570318992893216719480500448001843898967364910279056968957283164674952832230235635453636071400779226004370627955613576775495161710412711212557130856498959114728810327965073783931472677528943837715753862393431578997676160418035878581567231654987243291926871831047657149787250647774350463799799597747040331398339601419857998352940311507695615797199169216232186836882570813807093509238929381243108079698762553206950983059838438025289502317063281690278678595301747876328145121314375236177965096979851056794803281670335188817793413579270544381954869419804847486192542102181735232589481635907914683182938844493462558493472002384532246630361335715304139845737542313017605037786467165597262992062579802385541311010864680194220884716938202770359593475653010509752844520660939842944938956276564424741801404828874479301333702122773177241205825859096035272884758426744251630687299909063354934106403359257406221329925959708767764633730894983095500849822718742353389307958550026231389637815309347199921959178455504490128526847007895289502413303777047426241508143964886426282173522080357409901334320805666163842481885791660759773677379219562642759424924902958614211729722916220478564980815391009706180477338002006809254453626248010431145168730053775952394548148538538564845190344607600159723192621354086929382098953245243227558946910610547855996608977692153995846311857134381672863477401182590805395101220106040726349501502342554337550676096162810212534499578738486768757847513622896520823411859978435487617627189299289505421695596243752751528193332278534624414230750147944429007177928250331538593044168728470477208203684931304642670299147663149968499358903311303902102846244279683653024816394357520468747944919820638846368705452480239547475786421141490550962969553049060503689705376325776841910155132516451034979742949069543299192274160013005157911974022719659388697299923562200547787679855293801406314983887326929465782983991684139926054066918056267703978005438799709651688968953954904524066944847129218339202796658336506351013534818583262692352083153506596672326716684982625364510246272817937768148579511846689370139115875318321697347901920827071016572072092287811746458611669760564815049218568132197292663585821926090629339153271553906030310847522236765658565826312609024483688107024587439159214594367413972909802621655856244834291381981071632894926977820182117936294180985437091261385518786033443793794392647155906887531746118179353139452147192299349767736606692743000128587460407936230603053319325687625360151765474189434601226240959961711966122855600596209515097753101864430901609653831212967092145947526400057814072029703018673158114940472676573275591597026739438935266417676025914934326420069463952120182080125895921018796566846587367256619782513985268316522826730992061022868030915031345982443839053133924655383247321627375197552587496385088563923709704703472465250660703159315430211904466162468910172357758467373482044903826983129556094338917585814284569066423249477102165304483233811535789885994570460112058629204841136280870859019712485999442451026195068105794949796439508193186282943298632507526126424535513551033675469726108272320511312579812736754869745154590797415030844474193932655481167292555635514025175385904423972539262513483287697714749596721301633565271619475852599936695508537248769149670966242943953389287798896073405688387728730402430759436512887463862081408107390014713801581470940935764460528363492909422934308163250967613230969766830248014958971069811326132845286870898845858066654532858143357314184608224388239234433267561538915953669443234648484701001290363339710341644911788744512541546444302344058588576923687945375984201314126289290525595775798317540417180133205809163323942354765881361898218649770349583190531603706679171325882261478252839671628972561241995870632625842253943500471100107161504507307098757443519760101406467406004613539765678749191938632887517055396906358479613307779851215099293080707364772241478390856336636182940721454765256222222227823839479920353111636359701988325543874676728295422299403301764914096184376063648521909858436718400017768345840610690003610224391021518188476080463310470392787627769126261157985935290674942986172396232539825734354466045963684137715846141909813370627009270006923618478300776690501371612758794440371386356049502469328859538282478710791895473977117419195619438488727297565200347516028804795894571616877887078023940261859584998419213570421552700271562196028524065949573734282209556875099315373059134740193930813335439137335642144575643364012751393905624354027691126793886240754101774986982158128227190891651159716186966855192884770413219447020872028953101455428839276502100010629028401244787891065183637072119181825753643849154762438910152419314439575686943843491996559496303798751037381326942053725902791958372597151939792370775620218142872714255680323843253984019247039387778088009679560891119786127056466043119746672721024046198697769809270349621570595874611523405105240587003466860937857542917313907971005167412232857655940211619653899413788703120143994977270169870496479666938717454672458530133176525236875804004411941488594950522908309713991860917225651726331285131321503444919389201245427032122949237762003710554237028788114307090125624194589820978676618863759150632540306481611666339910837637730794714213945990198838621486672111029669321405379591622791531393949886847822042129115775194880387243605133490413649471505274499593758484869822328616984000833867733987094638110642243877752514084050468082395583157352823944010486245989308931105147500157467174992006658280709934842041158799819111606824193676793535711208667488085666921973654700337367482305780399081565732391079838020569281212867645910234397945172671704713303200427593757798140177789898500271309216200099579000752690402819165507525674173024541528703024789778239688531752565121780482766991545817572320400181177862698996642768644302947543289102236300205498461351367228207328183843036727002178533850569949825455608316208799214276525894019409479945343646104337318705682422764752012863768514828983285012636587646283581002850830588322338971969085738671296276690609662514242935760913065721503453541666384910615762569778506553434631096536229205712730955671338223919271357006425939885167217890656815656457080701931127398649801223687252816153889892714875208674724682125845101463082567074136454285494815510793125728354957101975501647449754962925151791295917739828209355802212752938380535989855827662141703697296652850519589519060997459720241269600699843273424757978329968881123653335490366567000299522300570516222265846463463034914984373296611028910526776290057163015324615168264835641411586970739217153095988192214873371238982737352641502290943372445728980479387494232136111766427946401287236295035209817190081322078002154478851426208833321094480876479703955615118200612727922582254768926245605357544114354963839606223684150648228745399584024398783282553067930678370966952116642286251714996020277161134649178947347694345867743863825374862351643953429740564301180949577489106282388242612357012586089268616328315200818755414946968379471113936199551483306129098439090468890373699903842655447259302341567096853542825819175420694092639887400503471060342082382755036910882922611417595526291474782260053279293064107985505241687959723543178130967756082821403793622146703308492430879859279435817034278112780076764992047550707279569141470340938990649773491555631823598479178653927274233685471040767719892645233918117558679465033990339773352806532959304248433986367460664878579464855421362290461248191335032117215455684246270225151786443864990758490088201800757659184165162609593891965007995686163332439201523601465482180706665511948188755374418935119029140120823577993863855282637014948274297851489844369254049763383425562060054531828996280194536100248715458817718579771251548316854106564563264559027449627145165111688228876118168725920639715742013861564322316615748567299432999901326593442998660859134715451570807077211688117308280208964028033354630800179355026117233145322154672994824559000799587115211297595158804905352631633341342565782927569726302952726757906114655839669100388925684007289622138338934022990966193316234486959025297249730311555643533915135397213096204273975421884660830686162768361390099533787757648173414508300118403778142072918977738955829173772107274961605451103137585851564138147913651433848591931667351221286332030381695083503768639164366843842850352515668503205638622830764325143980056534859890188766805892000210284751669526828285569745915496180105929117386118668509399394225067239893458077910252698093090033894617737036892216514922037289785693084522260377007362604293524668784579355009480598452309656387673440504510641962834154599547516717568244432157038843376956556743543861615876506539774454475560191801188989295457253546542515683967868225012792173928809540511922559434512911165545106533267560279622665761913394936463830753802861287754545024560809134720021226258968440936984163479766334181397485473132345017890809603645745143741621776668767173630246549978629641973281083496844901213140431425154513091276409175610923016660694571981663306719476304307243727346616816183709962093852463771821516909279493913868133895100495565880583916741982374361632720051770650776223328958315273338590012050763427706845172267559932838848619456915250265684369478632845803016060600672960304758629629722735522648539481104532483179378847839894205844371530211445103697000824947443561286109496635151394735397713424688421785523724574163338577499396565912884962059047500335247318477338251823828325141907340960042535917423201988448256867434405791801994376333521319242396731374395593511198670804447736194608011834555437938442366658861701179314159825207967894039149739243612574833383486985259755748943466335403148949287123001941906310427282862060969060110322682732136916139585190128991825097939097013944666071785395824334204120465160997013732069096890020350378310922695592026667514965654718600132222709040536981733966705379804798837895363787040872781497946086065467471574460623007093964947940813807482230838548824229943441486324391890898605913939818863524744078625489111134441467098489609087878032170169459382001989219204389354879333722540873677652312633185087729544408660933173691537815577581083618134713486705742679052469296933247694199644587733652409278161187784100649003068833580512781760575348763706261412325018102957574340290003981385713254830443231127298576948308579471775986526731897439959520476963062695059622021144114902755554541525594519776960235347186168284431690894334740614668585484620644871245052215919448635245297418099471651592293285972817401840923608276623820532523810860757408519666021723893679362514073247389376068800217741684171217819914791805169023872220651429589548049715437642212891919843809710350374960158716460178821290547584929450274591259864123367613608321238214392546107443926428991501861491535002023933972587554012111373488222099034004035965345508944069307059927424951437280014846868399093603052881338868440805944456295332084293832688954801798963947495161684492270824606827366788719165740356376170894846028837776783993730061315834849780089629853816340508284650017052714776440898842848851327727713269591257198296579957806662884075198732515217306070161314287704878461988271492012640854390702403627221905176731876181481205368560613494677418689307396430572619194759216254336879197890580963633413682065299277611900061552139208063028026237074547667087171848355303535509836094930458979183943953013649611201930843192997738900280692180401923384022289422378685720539083363912521040140354561453490052014298204308606984620383965345905558260709505599460095387097813819506797526654945146670156154856776553740688529433491139226765700493124668580172874872217400365398803960230003216708447179741331133999313157444255325503053735327634877672698822379455503882101312756999214922363185352365308756745092342815671370022237004262030789951697751466510952158243617988140032085270938810077693175240436752553069685632815583781941467260523520258422875180043920793373598937240241581918479546719474381651823994541081847168488375611997044418038956002632143648957497586652802639851209418367236668661792413401409834083199692863664774760795013179564556370280869894628844230778453424142554012986852490800084298751483695819290914559495229823497521769182875786841984239561888629015982507468062859153345544075961839260025869956961721896250384264675320407784757082723176423293491495305851657638186476006029267659932187637087784016476099012753690547517601471927864826774139768767531232727164110795121028142086451268197887548852703110682359108865088221851890888199983863391257051603450408252300449667625722988089341552434808335912612566035978505538691656295702239176805427763446722582694054922200678954521484791077737920600846673675062472234723047066892372497926828822498258828677831075000561278929085383760865715077515745192991228448229791090674093787244971848112780756565265780076287700938539530267388334659766130410097893790188605676062708704617923151268358898641382986887062314945492385171714391773511507356658395164032945872326258134751156328347888737822707844648253887355251677067234942617488329221746960812696127719255776260119897541406703564215041295818680409075537853480024614432586452359731850573064300872719693432804970082402295724772355611933575626521288010862044391620794552738179993610908768938342327616521031261078009836633010066004914416042954550691681768871193768843043495828561835206174114268549762856648926429545735283394133678420986592395638117005533175104348062442136816451582888152348373705855972116394914594463366830592614826400263856349761287291531622192116849691312881770398022289422077051392377691425973811803235359590332599929738853767386838951853277109960546391456556318392854501002184707968269915823922783535038990489634769171658093724206216723297566748124508993540703473318567510217869164348237683383250226631443776683704715412521315376893873655260061654208038363386750528751117114349956774170270003005304206720501905803302874782600556386420122361922991414266847505936136897080067313227262335998160792625112259223740370659834891241658177631287109492438658140716308170417140114961385109560733875921783141732041164346345707637242138228175405186180485753343087105238740655037811361058184077951741011996804379377724700516868529839647559011299165910707468881448820782829401073382900947885046101889964029357813248138848538695894542860294049793623052076984721454688965006680080883263784356874150381340873376095285780949579619705265451243137026820327757185601870389292217629545445553281852057706782397139246726533914984735766548762688047282034681283339338000810501449707882401259721052398699673730525681450608438658213269293118621393340590327545563290678853948293116738339574846195270789813309090610014121074034215390037082608868551181267550489318070052593641215450844631665756860820514177676129856900844983566299758246357942928323679995877428748798605455403624635254835559172217429053729918385172187963054026945251563948097152144444220943395398955013196957052717652620939890748542341416047551117163556487212946805766491505998149588540731676293807726709564904505883030206359430426773719381723601004933417435650932992587545713857372989972883488715453317286013991292342777889101227754420138947634110021101479262271703876417605568783347798602653460206077806352079659323528575398379935393505743476925102302945747646532878477742923318187574473125530336636562437348222037944852153225881232095971036690435633876290723969462335756723345999332175498121657644483985001578037834511538173220590504447758477794035661357382238687787329891951420433269284737544937179254488308460188007075621536476756680685424828758734962734490286415996431625593940438312835606598215771117709859027700813825151034001788610728578217151456617818581362933779254895301711142373535037789245502796092533453169984539005005056678946619307336346260171893201612532801386877424029659978265985943447320222775181021971711229358110715113881974149730013753889017227412700716979380202942102149787959007160037085322806354666650427889872496496995042953797703632752433741424926147668485066381032157539035088368939102478181055914261517924514787041248370944687558045681888916941548905462281668692867695466327018007531958874712838019752732110177315626452658249050673472058546228322530605215086736895961976070397231265635783149950341402217924689390776663558596175421616623853190607858945506652111729704640122519283870512497290419831490031271941538822406840636900558469135765464644842549638963761349895662433477435523482438530354786374620730249850567250498785544327675412220434750450312812925161323380833711525716641293894727164420214144561630380002147473298002135896837788543634577053826197628371489605997648271385283963227903460574694378310947890272153556351944900449999066419640169105874282979492808148458526169914174411728550470473630549681896516644620026876448000244685122910293678578107208692758048551472585350554564587715397550865757836416233781379755866979006117250801896357683099745304930149398706824143204628220070966375282194236975794738284100617610920176053451448631347962166524560526868989980461753527119862288609002208957906713452696888498453970243377511184306892940422729082343221291674274727386797709197705330957882867211529811232935990890221661429025874379415143030583650082921511854828995225831298692599346370224070949521900836649495744642452806113630514604808047299956971793257832673394288714219577434994352078000419215828261024549629920946042993898500691324086055499105506690388128646801273103004113715267040316594382480643760432530147032311948473506783325265052174748307793287060806162230464153271761983754570513464457360898688089304385113964117903817003657152363439304044033342598465578353797903897837558138881957715402216282086375749900106028993299647711087238831467295512509074551372572997578668825771207425964207862948297974466797529629574206444210525395859073361208666561919905016129052563538798394117937603381363222083496934578671923794566624645413704745890478751244320115914112299130127646339087191811215363665856167512518922150511577772341696152831534017650917800727278144006209454706389133625940161210617768349703773090107018698842757995424708348101009584077948576581548654527693816419927024214440928222338654466172581010279941231301609262209000162791138906008685344429008196256559592382396168050506034280043311031213987753382022193622703996875982744604424079164560401657499411583601527907341678303612385304880643909967352991378174853079213697251319514885973225282108552702239777691016710278163196963926420030439505258487522324041696930339973784785445790307591310503423870109273532743644543452957816812401659005447151537515702207739470539779201766242570830246822655532739666403666209402856300893428654032276890246092501875005511027866596579725554217282001980283554523985840589969426361921942775696497898606704555053438261015999774183447645365554612322534176492134698392532113194881167706887144721127122845596699468848586611530250356020030577666967038254192035405914108890308397774196997530088281841683161248754348211176789832995599036742968586794352933928599618728713751978582732061098451303179369345698566396209083054265928159113090546254206296509977520193727018274187101026451943965789194448114666255420696496426626467453814137730651068297682670509584507773800805259853140889476906743430543042426458228850278237870806831665012459882543203828260968803097580804141567412597246697406179448987503534446967294602042562458593173236670850408864818452072482162302790645352284079784201834563076498890478536732422134677083859415783888772563399056986850275104471779972990499901444061756100290355339516506364352822034873084544790791926427131148538409863581915118383960488346763126966063760063501807020350120079060255954950020193566809312638372825903698693458395124867733961899472569052372496798601847627732758509384097532291241600527908359356078757934975425035908049243699593564138427188312165332637806480975114781583824635013138856958846079337388545627230128945384063656797721151541794564563090642189837053551138266996409700747407709297566603679403023044935301658209800681013442126531422730161077814791382989314325630965995788525280777821458252265047226792244350014742033679688550148392903028123173874112505809814901386373339783190772859348714669101508270191154426676974945310303195219793973477668419010557316397861364067130798928158489450368607925227922455008301070960163601706429284808941909341017434928398364426946842403869745858149340425531717257063712600677839136314146289018930856443740232598832243058192628484617672819538394423688411430988583862677292023807074444519521337407296641571584555578288700238439070018588697599659081719906633290200791459070253156383970516882017922264848492580597487056817090071808700511954314861310434353855726575524850033354088115630103691735749882936572640765975140705609095206685111683132045377675116189839326285535346055034166702329878759663432921940316618616183261829799302188044345628146411108233537802406767096558918624853337991389548983792031477593317202793351544307750155463824174868871239980203531161844548698137298622591782489852091286565936752536544417622317224131625626773887183083258267652106193557797042286227560049705550901318161566811263940452414264224322380748399256088689902067963155730451879399337517850711291081959663833665382961627808172282753290469750309363221334324426462732324162946198764653872002154812350819468113613127842144563443017443872440257631111310124948319056781339162095300740698180480755484345404524139880415103167991768635698462588027528916453236423552683403573662249585039929113017317009431854586611975154317509470951635323464044803100872353641059097361211839333181343127671665031305603169382442952189024574200577715750411952504483274735306228830821691585316116456261007934060925054762637240930554201245017780105433240640602317723589791553058311008844832046704142739617000387452495393722818026369998382453850995810709027753169767320709850884892030570799703530986967201562298257487834950738335748387248039661365461388311398575827163558718663646706935032931113430837727445578783208493510336717989749941237792912098399607298824079142439148974697892088548623412982766768963372219536897850999826964729781436105954441276624442402746823839751971403984730401873320677386655000092872576464366589380116708100651431971154334766136329048283139174650362273066871296760681186638374519488307144644520653339601489606090014509428042375547327102825863732570582997328218207966926464001380351906586391693996940732619665089143155670307021596308611928308480191258193874360960994600181285242275845903819043019817362176145367741245100527839210632292743442187994182763176572376096324976264108440139008607666235526802346739558369487998163091592976002175940859380705364016432240537991769493892909180567435876848905960708100715731536634450187408968211207643632579613946705205559251535929164764952670597722550279330075245807799608434427567491160080757204817308989276928734611984601394370850865950716453287576733464435139725922936921518670724289550528726972810888681872581062727701159574936067093795422790848178772444120868262650168931332983519361782999105878922441105021924728427289615229536917987624161887597344867481821853836414899987882415477994679986051262456998295317138169757948598008056168469828047922809374399426436834201401051189580923329791873092339583110444259181553794115200772245419264081953670393029044017141549264863186287974037079526683717094057907206174632800591864118543169235288523118838255898250610552603965401279099767914472643843225684788417996561557625414206418039518319901475806281197021136048618327787127569095282374008709469774048168844475171155900307415885593673274848262965403298104689057615859215220715032145639237162379834752221148386704984159731188292707376746117528591449997353457597431645254187644937508381418540375455183931512061707092803762671539141191661215531841773080836157486778294158434591797842631493485923376637177206480537035767365531715909101665776282731145333092661463994304229953754893221751709607979036577997958799481035015115967786581399055504106401506035908691252548300850585222114118985508511819684050685019249696771858352108421140704790051818555225538176130744056402031989869467414031736203314175408775349766358478739480604689924191911387268657401881844907445235236301860811463889283495265431587657810609200555080537486458792952468104069798157329306294589028598737403466111108124813405339235312941757482835438676724390920608829611576868284334268317042310305870016327782768706913119025481097704304957076095589920368351715423647686230092461412858780420796087369909028597015310826854465078699263043992294468923455851758670131045427357117204014369838452267150464066972780172511056730897802253611653485710264234810787894244862362239582066002873762472102246284260470084901947587816233086538371731538016345992145849700312495222969570363143644861524646522094929581368467578278825093245364023455090131401158675511160897807676648960009919992092834661394564131212956235663002682617957593250161935790979567933418212609600317450864410005451992912056453669755606710376922633627855738105851194709710353670763671801423030832897256077045032044873594975577877982582429486716957243231207809526118030681439896113382413826784638902920106406459304079701535211946759897088089993842278955782613081137603529452314718625304629520030601459611846964069862671101705006872547339048832192024198137954066198567920680038017888382208305057142304095276222613927011512654709552120782822850557154926847681792125968731884925179394235387541627785445685197848181293006305958863798969214577903632362125846968874525274866772619512287881739322871559963495435510590664205464208998837080617957195810586718679629547239107772309530874537071792395410236438504541017115657248415522068285762935887123824802699394744872695231692415354632592816557542206551541748970534379231024187135951864245425269291699651083751331554814489680875452418468037797208318105682377079162804262500753812126445628022482210393869109638175577531818966749296994744813905899909912554993647668081280879421373073990395760676833022834850609613250188614143318554308175182510115393895300306090907377640051276492726273663425943266954733881497479362544419096484873047786708170127571868942299988977509550566034741078609213445713990635738145911348057241846786602296327290802757093999072851404452498401167177736769717993952851340679292117133489628689890523336599660220456581457330881237996037515499679271979245641768901338667055587873761294891544090376142923050137411506987216761723933557321830426377932548821043636842800011058560325133886340347441462290048058774279724995934585548722988786782053839727034783836936692681891492283880875447339015370657076303109842450393232420470728651496191616666992953825436143507428663352246753732129961274678077224971350618284356486157873127817066079952677841116929660138834316688824612026609706611329936846682522182343912438629073339731353626145934091872694314121508147685909164597871176304276798367758501043289463359758093693634034250594607430664784154719278038695181260099966386223728514979071521306186037784020439724957655307580994939404493873438961756098508787982290504702843931554947615095349065463346636740645628064330227345276440767830365012706431216592091553278411662257012607480663349761748507717184535875111820507848243029603148135523599599186009766332975308570684033158792504791296426337050854020265864588998235498533626660100927581440940318235044459320613030705570285131470264549081266030461938488074396351946132560653607709559098157861452410717936746285543240780491852857416067159632710541842311384582127589241845437105844773889947477854434298782376807336825497028295894395988688627301303058326835919018451900976083333908704440284453511585282382845812062908863486912761327044734801113085855708406311648367877338138011751717389142526136255309034353931449287550838825558217295791108855562425394180161486998114042406734733484310817268122120370351928432419518625043439265051374501870158231367714339581408416644660939885889375576362172660630123287595612443165863605029346549087229284768218232937934326692916001461585553837867634174202453003572828816420663339216949036589356628581993165538549213310371428011258391306287532718522685752435911862500940437759771615348594394084286331069567768294508327103256096600017778728335361770756045453138409539732894655166904508933349266356524376285661631648531345388284852981804359789672659154679941395744699536412221451151245715921607342002240657110463563713028529275136274490141203949727314345779168178519549350856024293815853596778616120039620185413563906522889776638908833246749022440739458750591850417050020783324235914202465594676778401765401908717495335083714951902108048522652339422221527343292881789189524048407470613739424229517312827555435505196078255954229693431616632384541914494616883661761948797563372560583710887331203408405313658358522529610300029821804713823121077800532246567146460034704927830321264390912658229186960382972139205360196328321592980550827328283810176060695810019313832312978214780527234821511123765919256299061428474646844779274405688152681345429454309542557635851340302568598206539544906001359304869330690269463380628597596613032377075684870252686677143085984052653683961920154388054666688765436196527062288836243522649793268609088177947200305951740234850717853940725759469903378204950754267205473683700387488175599173040570701524624279881829197990609415248417084901078303942692622428101155287195012255520023900951280336372747745486800752746041103107946818454293945336054393905325970839289960812275191315930282217212583035871069150665321740662078917685958703991564146410567490648835246351106646900352344613987957731445954719278064249055233103666497502575847223562506437793901896166063876696431922306626654390452710872321860907574039664778974515355482888209007116864379479085136815618950471611893803120055215170910951317424762519533668290140331063144296335195920583487138495099402210684000328170380298458804177848339440301107508962426051671130540891948349749538623314238304261430198681776141798750903541511953996739483969168261110261042866726960157896792511760952624436590187744402878289775205148694265707268417691780620663376819179404852674507994406709518416125838990978595362325403656131571865114579012592547598586072357164080896074929235191045595378330504248356569242097334094534601972588621935302358549865918470349603681971452967763675750372185491675771192754589763323874526291196401127104294067182394900710565529718515900731657321937802766826004827808695338247887925895703732125421311083715691643963420164542870733562445340092871719783558976722203410817029627168157958865140181370785662549656379577638294804333217954435204061006190356479512848917495659040169443188970580907216943441633280710330682377040423595393506012441964090329800972666124270219567013835275869328236489254890080301406126510806236375500151471474462908393231183160683091116251420901289654772398724932827214884658003975883093799807638397172846216819316414447048311625956101216293461093765242188822998866652446350524148381351213939909563972270456582093806585868203155056319701376439822849990478029447000622225031970238689507203523774509599314484508494661495269158906611996290065804748505142745437067469410884696421195900230607762786929823227733603324830366861613675524914110305875229783188499449893868746126127087418812905229248198638403791927458351188455611892918987050209373138552015512580600542066489083346189392411594160565109702461942383317302671328299114310395044914361976817829987795172544101769662926399361993738843096823571148399026216010918596417019659146854615277402108785640968333740843333631642147737659358393146090029572670761435741348472421606281947201813965886202594927008067876721530906402269462836462439154609511961158710141490011434065863448488156901510440647710594008549652450425513037046639077827136222497611394925867806205781492354603416296192343720420461453462541027063728689296386899061600444976676471168385373933580931895288422764639852492029824269386957490795965136900909706694569363957218677279579982231396229584937911782932858144505754559525164881025188248037804213596851381886199843280313365322182437851453115543938097278521016950806865711887802133781799996288490504328736396672927906433711131082194255878500487196087937081183032541874245799664356875396203367571087854945255245236172271515473068840130024200413810271541828322673783796646894460315155415935014073708787851014793082453207491232246121327637857433437187560234399478936845134543994188126694472043005889176044986705556838890263616776001696766987718452233603946246693399448935797394302564905468805078528263806273103590017864738312979931782779982908536491739271807761966619021093796465674676990070483284997973197456610999090308208252099585865224600173626266205145220928335056484698585864530111748515402056379980916251175402897050465535694302888906634953675529393734023359065136650550916951728055107584752328391151642273840606477562311178936328164424289221294484265669089403663988186895218191154133705170473693829792709901013899388305050432088935931222610438073912666746542814713836715130034981358758259154046335783632971354118193064454692582822785756865696192415958802232630679746222228417444064924919832540237036143961969745527612892283959943583294684107574812536893421622622263301376115582858543265915669335387134402295728523338661404294280829781610432018717137710888033595105359328313928479425976752751615892449463096558424283029248342965546935625639972109432765570876138326254333376097025070135574531824866568476667560543055293132040087620013676272291419607706867753090937945938047350162037344807544699663340169100412646502540758241809614502486315421713998364765890854199894516704667241516546647279891253679262031565083618350414044278897932932836643141233802798062273294808351412443279235260352939130474360521691548624216364482239340386990033620630800742407458358410706094691013945357294553035600728348710768027072046107376460066244064674276340532055949833485109901435148368935552039701088436019660590078824528571565648620886581832989258793755461559565269353286894176457579849874593683995212949257967648225862147808361536663613651523310702963336688062689681132966770686504985493133093207949619710604186439114543664867653450531338895479279424949762844320752043840738579209537697156810802809908547549905373415365486728820139527370153169746895405479112223036201434389780496749715633913605402624846865285629306518341716127806354379512303145883515218172622618336092651599307000252969288973749604303520790789638881657221154255515722021510026869192621148498700542603250102685163041636053543561663050067327826579684054990006373177405619487979066633850628426796863054266720167196818722005692334433903594522949442599163785350493988677527714384275749460936344730148502367728816412523265669221021623503424006151943671116309776978133727887209202698806105932825902934813753822647372404802481528152061300466719620704724054792407879960383024963739624610421158993850222675519944505006998065591444359501616580448840655508554587037578442888639850378734551650003932564324425457492401306058839177078787349371961301183618649339742743566661457179331595521294644164907585578969006344073555514089756126882814606578406772429917162856847510587417157135502364949580464867681336025290650378983247880453933485827954814641508342000634682855696832086587378331842475678278559038797250894816343176960545882538988100330080670192684439407539294776526409391532507068952906205925948681900476114009540837575599463448121871868557781106321270922452441097485452576663219300049722025879073762510241344890227821564675586783790501184201526135454476607653000144826144804835808774536095502841059799846353591700459943228759679070752951096994604448642290526345483632664630482401337913945686040550129275158976216640674818439608513128240275800377578946218706212338125000013785959252316427256256283248897639990007896781185190207185157445950654799518764171644169026788607353847203122550996005586464479178911999701008211518830694266648816378963074969395824356565912767059893833912628565193738079334366033756868651761943040638241126695410562931502969429781583785840755495288051924576891689803990093044103904372289980005781038827467068619619090752579602813929313086125834546133017009890345061093298869511519475586427963856682625274797710617675042987505661244735489668116080183746108727836674896630475861369595949459458024033998943531146158117124692275313613854614037233954053653274617167677358313488529930133236856572532884325714690616381182412297006229298086417834319747237613967156103850816454415975247814716098779364425501416095091379224059029916435129629780458879632814487064761355318482027787943983738001054389387685115227774905895321235507825067161675953092443880928816505681847977820220226547654761734109231841182395290443344983944003619059925026921620171025049183251228172879843684945586773539629937377945568921683646871643688933805478886677815178306116451605924742807191007975629504533719675374265700942648456461642890888303129657107267625403444011842551999733009987231033796831066642088605258819390617117546290217509841414778753065861283902453050678416326323583090189167863247912957602923215903920070209550391568728866628224127678569657145826794172631888041196139702808527851796756685900931715640336498149199172577835637923440075265765749938586158520501923305059588602965533081211256258896837487622224363778525896028052894501660610799457054608766389070366191584631500657416525955690634688859203126993934399622112023730529377611863982179044203604215249978499771699979743534215740985352348065721784783787262144901427758975290652447292708062954679979127724065093877745122136195377284284378642871405222808635079541309792150246047969462884791977094915976930102524561073088689330748432532628264346059107300937902768692848467147706717372309220373355051421592448581288089023172830538656999994472970546657241218403674638820908726774725119766477551582248929019582982978820742758100357460655385127006706731972180531494543694213749632823581638415670130374916269628912050833588466127264630058997016709946176411030938375672254486360874195238952378310713261691158370262696215952841501492188292565828164563044415279147829671974202051523220601618214756562740399804052909243753141279678678569935221786664351403377169590253381393418964315669033835624067533178891378952754410640874284014584324804570008256777236674698694343002874005771919413167637059150273416497525565445199118003460839634863297052382480432726088590919522170201362120784283533520593022857178940351563429691145636398744070006643063254826344349680556003017228168062290544388611210263021284186330228376738981603583124936807937221840304865447427676311576512478677950422269008645476413397051279830457946073659417782280513638310219620989455226284923615628249661706835523294920828884171514897817232882265870388761548168767586724446667455976843473698736806762044545545314997950021071568888114732310889623403807572152487580969465170961372055668825181523016101720204515151178637472991379739638731542481271392103109081690567001245188116994631250005365534276243192591047236783600371737164029532613008621490195004225198337403853631993682613862722400482829796842483326042854580794975013526393035443745196591339872024375039987281217028156156600292795674517613557804035219751462196936817335542284847243944099144588352511665538773338286824560699002560343024359421064928983838038488664028312111412559636702699225806127033631081836548455117366734303801821827065793506038450975934130852310664331486875057050986614852774582582570039648726706884047926940622691056338259081810948274131073543539206468772329045257036116948528157368408565837301058255630825822712722474661498077129354229730408075852787390162248158895767480681521082919399039001194001993153326073813251725187902977979416683903774519447838267534471070779792078779038237212338738939670984875859174127114664537052860526867011898952467995258878429729202629236463120975709647039689154962854416367426964511967434091863734193580583244484754647082731946084717250965558494837864208927702614460121034623511569354842292511645968631573524996995197110217892148551464369824585093149218162266747739600487475469026546375076044852380760297322716945693778627099842381932617631540869978415411979996593744403519625241560773234394264091614946368816744862788048539960114493882161070728120913093769609554989711115418087224179561139728083052840628271711598044151701190490803264774378341686409384506233943561746730576070676100165552299707767773413104754540491796291341880639724820530944555614103090009260755405120439561465740772267280604269032539785173546087320149956285119012375092302350516693827310850484305091807409992517059238092668364342790173646750719976813662318955558076611301015912030366277945125353027063692957784156982041934522739981407468526466610590436923660005222775881135091839432827582447782903367149185045398843415354281739001115444993899636809460444525389189915942270503423649701151248637741413660786558214534434634099858976583876409675586143453589774283764528994895493463759356764898574878864443287694927990546290894553541196592004043863207117573526126804330918409266771848121628816479390685788036090767557597363364987222701915854326707800330593393856034035161591271206528903568236299077108025711846382325130412922364263934558594115342197200070843217963689861124466728128109113102595242596013604550007315115991661467845608973074308646525983750526476139849316891459253183181551063144072629065940638386410376174387945028146386897069589359644249374180439999779688280905744719931131375137723124168558373532273365797141054801748802991745654724526165479878295790050872694874594221040405924049651524148723036242518148639986002420419964188588635762928372631589124932544502844860807294791880636273414205094183490623293274542650841950518716648104306926823520965817504444304474178222001479620797862464342532370781384126665923411158785551496299870788829839812192529650774469167818169440021986846300612615889234071550437380537617552910279799702172180157158684139753953899602621887807557216190517368883362422573314208224432999602693782902446075049834924532993046270970160514034625769425308199463973454105523643464904031745135984417980715110976555934193612027874389443234373780216367613469838101803898520841152508624604202344600377416662667231542750744864383039802318039328830387431794807824384826738232223403189772053642475188368045478946764968568805310459328336346331071127759502840250055716787753970623958772390695262220058930936995285766852129791132032144421351056711944934550836664784416695435489166085955472265098397146745467637979312303158260798689204696349423971519545155670653911332095528933904383681474464085759489358457064698762189968129708668535159289311649735784882083500541609427513901375630751627226965799342962041167355256550104225907283488226720942881513707356305016426714640958510600825576488451932716078121120971492463000585728734597015590429517970084039192225303435140742069957319429634911853035324167263385825860058509915950469039269553138885880779527860575395440484338859068124121615505474804149829767672285921007981430459104482482016183756044701877615745307093801141490087284731140766689780975826017533326749220011397376408133321613992077965293367100546454477783312710998914693831484037682491517761357954216453988038603328951836667861177537887619582797611989620131368767170983987926551470784945347694278812907827315823583390223481930451123112153692268928345535131608406672050739805266630724062099681668393708932249161067015065979736448458807006141903088030430664974742634188080757257511159379955796495295769384921229445389930404322066024862985628552878074466738292425297970111296904807262670384312633097002585127519086753931523509962779063353318636874309840322670559227907603377680301955543414852118671535460123612634263896004036198826931434567037325254727325256120087497813283135646405001188299191217988809681207223288353784923689571744597502026210249912428680543240071313036590476899013225630601458361799171028418866006213948292623175490487439771055257035579659621410061568730705847067763399121015229459595186655491164521537731361910792742074578428271398112548729670511238827096600766868698229796377358365231162706825322931023503519656180786915479292598776143061434418536420663691232322686001087058180271544665202190563020955244558508605848595252255192529836377454985675092413628260149724011611099899683873452318842158182321748894412632341635826488482128560601261509896740054865509842561590657411578203253409301246466425856524989909137879901185591160360871551434041489475713837154060583178069845491538995470064748594461780590006090612954987417020108172237026521517593905029387696001101841291999722790909191363762308800138992003483211413765801605439488340816534992489241383394553077137881145711216390801271761712121744333018821894784319344061945124048326870662443548964462620947649742753971498693025731921506658645661596828534590071037242190589670189141386045928950992349825641407894286481173016094807756866223603877816871469372873323990227121783001524293047136128437251808546808646153711134488476506610306821559236349069542765582071069738877575787967424523733982678907143684456895007137503674853192767144742096388008679753696735707185126397147270883460551986595911292112236958889744532860379432542582438627783142212235027347797291749734141596306608313141890229940183447207715186540313025297332310831649087642825625403256237951537802460259540598693260449183016395482470731545375532905801914888548101961293439049283987614815255543050594899047581193358043736559603294988352499134663240696209708906319556673485057655388627928957052610425012616607080185912795714705658489446017628283283765229456767268793837936210279671293265900944108355601276430525715517075769641248042593525946882851668619729217841256770339573970266110391044683060352356028092108859992743450461494685861975932494766718578202847285401514820127431047053293230978702138833726360776475481124672592621415156819251740809850736219289732203199051049449236935781566746510926266569511503138070034344676748781037709738456284439042719782359019654072105210985695158815211318750083523059754261751176507898417655186627741584904207297682896564860130170642930651147055345685652125151032357085449770992792572795735023765641931297722871734792645555821228257330038807206489676668528110649902632457088589612396497098258167275081130687364100392684319616538655045020039869002126543893524068844756925347654432488585442579054034770095743761053143718312734269649190332500341162274691928601364174721388529251297371544622933481976834389376196846191637497614540591111041817068014885048923298900448371649723117757242461531550853882054333764497479205017208312464744261254780687572972690202260397988976074271433417867781532991144670774384686002624106483065428796775948543004306513486566296848866954688102979980561236229583930492237910440957150846377449136886088102204459952910865193313322572727935836462748009076515741114888347626023601917136324367489303674496962794238727423269402436888931663400254606330740696956341039512936232738068142296583340576335427554135738229264433433370861449993085415773379890332422513024541163941871510601805851903068582491758812768620450695055774009927135738343560884880482158652512114900987210395800437343361269390750975236414489079413125007502040319045129022715998704142609250374316700147131097697125277317767288745758631728899670467008348797438345759113564886480988977674396233597256329355396784794547975457360213629151747750852745920539064410819169506771039197336730954763407917951790832143336204070942339654838220376140946713980055420281370628340622593671348199162626528647426275410160361126968766386314300612123049584477122949622013029052860774650806571599122201605828444370818830481904472655585862607015764705450469918606032014121628817351113015384404752640240677453482725368723656444346091309459354698003340141302590506436486140640449872823992467310274591910357466238919617605798785899351411876797377199726664232579454034668754065399120861009097261050922815787860731686243744891050838510795650275170162040564596888530403388524011003446687192407746593737356105161931885863494597482893358333049665344923931958773962882999798888258196509353412638388874352428259831152172165831078612508048423222781330736586179091517827889704858264000873626222267325743651533783863190743062230192288307131139456282788821546305388327549070438641356126336740055058172041079234954580858471248597323162495452684946473528714865163060146963212776788390411871625015649177094845749721449735383296952092867164373373515470751104138116781029180581250594554931838006058951614870041062976399015556135072658266778871645145462053854847644493216241204312275003032546796444040099328612459924574920778257886510811858471787763744079240228110327188830256754573886329927535392338499216429714298827931583602147831410840722766401011592043008863487457141484192024368290480597997860588761021369113506859263392029785750921969051579324508863760428684047028493007444959474839665287344196622685843536009000308403820710279322299305873178349307756951872702142785243268743581084939381840630146221411778020348714994724030131412725444543899249396261738104120370067293445683154499866867872436616219707108167202611722170699181836962276178774187121439143732755889747886529498802192108028726899309702734254789974347149680104914029236609603412838812612463607398905347075182039066121896860721849253941316498468666387232123263392161679137241184470241236652151836893563690265920022456171131203581929595038370062756639057357693865019562629674490427835929221477410664863947847231616003503243119356435291035658862766994729619925881382009210331267227477507644493939921812210874778799125249136625252224313864635947028244136806963919559718749524763575857684561500603569086937459613751483891043801118046354960824182812913223965056798172109869763829872657810269301054042245545640671791920696451769127226064029818385150606107141382977643174499586310563905813119783374482169495881027916157748784091562443140469359112431592781122816596745140293992738936366860419336461687244344585626182331775361586049199088894285174844742318680362762323126843256818925160500554768043742229926745631624628779881796401725244964907626291349490051799007883241722539820413319055623487598531320942129012797972356604549596688149962028203565707858929148314534955687695487979320799101085727553400629343665108225432790209788314474073320856126834428775005358269539246660614838506481858865578476993372392984471972547784612497400609313796015396350873781970432796211714873518317207534849836373164600079286441046852622278358157626637221846443081435598687457373223542785014048581148106976255039909725928877354012181980215238079476097791538283782235516717006793117748193091638739942045701884523571862424174689507067910699660760178127914072426122876737121413034190251628899554543505337236323902032503914577501236881136071959882414119097278277324026498365196663414021280153099224582086269184654280995059467381328290649179437525388814039346446976289234702748925170851852409995217739941872320273330285341907736197839241044614495059660581660831445721552184663815149673125146062298964423882129888779658991201265788188087497457628483172798517189635047149265715117819293504766924831346022632479334861637726463255003846545001441144561492025811921003082772775822758675048934815121667780439821823706449501799175076309655632753489733261547991237853731840610378260776364217449514335140002108817638973069652450395905957633654304948319723855941580547181673070458532787621918396830912709011872425316328713676306441954143389142665435694363177553104242855869836961905101526076231921634799854829694746854876818695609095958151221726068713189606966728225178171020363325927768778209008558135421094751249769191501616254222565669568831077209233207482998627352637944141082049706220285953465001150234710289889666502584136401488918431000879807334579655850681332639438632936419256258118367453452933247195245284063784647215741911859160816796770916514539989900507671057578200048165406336603498171854296294964356482731504013351199800415814899445124770108514920188369828550577399480504608060188679366079447783509623870092381790246322734939600783849777744981790216661157684521343802821488243194578817001448541760611566812830459020196509484076282681914608083149986550644521850462332920877053218956983182573618936337017736529276315601207806657838578363700264217714311083100686362074338967829561721948399043416284901237930287470061535624880932112867839672501645392230915868506467250388985404095528452960027035367232542357716106739644160581858916863118086990817054191569633849981793195212648080747515529718042413570003219770988389357372280804708471500607474220440277080561495666129389369506731329874705723259851101139557362465995126307998233700267046874111357833817354257615576760050156887057295832858866345877452963467811527911826330656046723240205694137900147764293622204710429354165874350128601529293487213751781652333915627745778362535705279143523430814871426854346942367288142707538962746777320972653644527769719957549807177514659605932882771955720894252662912011606053471577331821182825366392680778817577829196057748673813207462923760735583305140917086669953188815720439043684116719852447688551887826181923435965748433466610571612184954420114538617124829740214595154978673869309192106972448519613937021744405424699712048056270549732400656129225376982418851095865899602049537040981580509074203393337211641349112133078616233944542668804291319749708287901138067779631614270840958057743402634506676896707363003319127972590776891478589584056240724933022138910820352788300352255480032716313244099630974137789263405417324388078479813431409766872836388568290029279752138956555599863501231969282360825130494774950829537715597445553277089302032456460074931291694611706783986930755741502291135535871324328062206725301577778205161579837349626504248200207941681637415127738720391043618321944533465765605041442895187210079085678182940811123104389125068005617383293204898143152454590264947035910787195713169156961833756317706091117518370710530349409125479641825165871486152222231627974331703416662641535418974616783541103562367241468634192554493785983404383612904992052086948221030792546341397283130866051983834955750173259607766404741384133628506255537689273922307718712880952401479809328917135287447958274800160820591944984671987572544884641192378244901583919550790648691911895839269452035262419738253177597838424303099157399000422510143626125925812405966655377755489352124466963290897225941638681829169240070028225131672997090877375316192426226366127066011487995197772209488584434120641583586086488396264420436995992074895125203376546237173316400925875429900703402729685462389766616126751293003079629952795420315233671616452351129497955825024822820611438890219942931181654598020923682227210741144611704391425917536651965797225717449875361983577654105958545280290438467995010834334944072939184300270442501230541025524273139941896611673118976433887279499099757430830929793139943380300871073563430511227142608447214395151926046522139214612940932433759047993217169504299710656519153124534220466821943385240615532270723024277194546550903924925067278018611551424785597611863233601962231027577414866415601922586748334952317114020895664960561771545766856034670605701311907909420756648278714294775965292169015983121346792013150466962612114285861447026364325559356961946558858790732556147767094079859049512582314686764242718090061491209246240206334663886295202599969349893043767020384899837756011373084971291638093440215801107061941583214655614754465592222345538105131763919973441341134585325234500178335911085034264614273809052701138082939855193133194362372048556447076283754253802918605158609027252399064728970207979092799164154399591922091556626122391365487738449512868019123923840504774978316170433599800135459276047979854107392100027877731967005764628957830050204303689962804115387155368751658595253499624365931561321801642641919727382797940146370214498635979241761618292264407156716954021324945758130757060217762834245200952515191125468000014439159639619786006218848495292880319908470377218652943585430423976196498949390015565247618085524246820631773424141739340803920853611645606884705433031325720519137805526411404650688052702485861283827506436433051891818806285925912585719097557533309912733808250531030273212800960825461123580706931143606510368357106938183213632020046055171205809048482946286497130216762826336666058258196329185815192258025522173540929894046397259390471781053821190336250153164605753535314503300077382978573944501165402714708107736380799339636630171900731550865538736387555102291250016468776269732725171767185116094647021951829680393611631881898586127964813130074495754050319854287243423476206676746600630470783335679832245789666703033813158737486882215564549263991176963438652643666605007335281908811534871926251701086698687722055639382079192914937386259109780516602327808300717783746579521258881011568400459830840102606689309956728485526783314675012290861904330000065784167568166923718810068938933611442745956181248162369938248518528548416027668358897908825200554147728334981678140919894481568776400373623657510838581960435392055152104321207419214818526728297178901467342913866340826336693141402036967370934587494377520888384445377718072167193208468252505494302881502360396773324436340341587803662742075717521655623036545765063175216499796923781917069271332321996953585283507397178710932041954218484040386122918388624266066066928828897309017771142382555702845744489901974354658695017925329449617886481336130231103692033463667240903672511568477828892433737852265851588764135187007645600331721739011778096646375272815511948503161499939453831747837225824157646427715330839773347458325469326037119060322973007161235130174747103754995187642442707682316835330639402348279995614109047010322331534825092403454818792516950278338807430644286658270542454350146758625242959774899849695963789272600032661880571696975340045155422111371239247492609774014262658930266336483714693934981955048239654493406572013545159558434882005538802980964105618246011623199699075992375710473176865683408649603385414746171516894017070142530658134187563502108707131904716100766250715081917217963842356212693467491421583515171967100265269814193785213418536574613102632895397136019995821426380393747303338407237166384938629443744814466145372462263441334667326426284296192194776894260630927606286903201620822976917396017347407508950501119492203965965579706900885036860120987505717116613115198465555289431487387788439692028281244977959952629520460988288475944357943045111639575877625953313667510663315256497893717386280812612237733515046264902243903767075650857925123246627500957396262802758232709073071141901741926325229378504619707078117944082073398394959230017293377179126312630593618785178617333215960115027927650764816099064171246619562460257898821691580507207968691551469661890428198425037213388903173567077165304529383027238363252204917846134128690061404884428653473731299682044523995818094012203158395105111462068621175166117816644586847829308657745183944471079223284708792736449183176506509476424781195633274394312230041977477129412160721089991931881165854079305721904073464866437009822322619018497838931073861950720436248528008949251654041552624482242420941032245070248796959096055608272355262184970403241711588896131370793452498399348730949757635173205436230659745739523085604508211285561811963083479860903830856891583988371787924274657267997822935520287453829481235284539744582339347989821219532974249197927238582365442570905253732442946910561996057872856625492577394205557679013623430031644162488991076775592228874780101038875110221409834552525459354251171571205980187609309235966401141890422220761962617591131454658727566924562372531752961503449349735745676987852684192142695678043799832478501847577297621793148234647582158244978019696792771376001236657475804839570189010519165076188737129804932411585049554930811279507949515100778558420526081643241441894052914253319841298847915429635844609290896620779298082087316574492366149887222641441757020343318216129518589127189773953578196562009916484048787165186549791864823841237828028375226755234972664667900637219611949545406396475026710824627441582875060538510597525426380180381377708584200423493183193226137268850640541038962720404102239777347551225223521706666522298586743165512424677845014388210896034299372481851683111437630845985476941858559159611318045328232235536029137849219687256107081536135036790165539399563485281811226570133277010302746812552877155755288632268005385394406905727567215545174907260489757920942404240401116216441597267851677830606126471588347234657996213944205332122950510316058080782560984421243315904918491283691563649424866006337545206585451515477205610258314658383424483219978602450195086869847591925562359305751754797318621239848460651065345805908142673970526654247211845258283798511736283851634290321276289792487019393551863164180199969526224172679051853633597856362045002073614853598390876308904425337729223356134597324226988557494698272374703560547682077908565777015475237698718486961683058938746401592696754704314068675854454179988230401068038361404416995555934294823995145968114223161902636742586151071998689371211822988040941120364534804284644413207795222710632593614441055818094322961985701853143067321567675627565993853502575937942555285970480261701193718868685165824395904125173392257691668451459194842163930757874432271372778671886281340318015099049794966521767560045111569169527385843559234890420122554951741454586010644202238221955122523548383284433476452093548307907993360337326852225844796319242676744523444148472534202256195051073761390896966971042496023467195403116067277756372402084007973589168300852606871203388513645853071700644004085027652856068717790630382066356815273986383220249017663307840621305241234660036871604242356232988392085365667559529777312949116063013481642462266310544030370579865331872413953385550273232993950259863065337443847565186370830835145810165299507443613965927766269801463313890496305028412457217846535268606479512930156490829762824553883245182250806387945371381984117085983445293148787399853759284053925905389701802827701511591931138421522708785899921464008528492652701470850978266555285704657530708605248690226255000191144149044480059405060322100260864485536639015319800466895189716054116399235433525328814328871237717353412517507523558242832543203126651191748285331520901431446842446035257169801206126578048181990068401036689517670705187538737138932177349573866406845301789040432536661159552569416931413717106183419881199875674275186026451950828793574685527688531763100706957220663558731597504578810868259539284600148335731342769232208242767917981832908604032263120344603541790617266696929734025945359715571061324667583304819322777465024589454782301650682958827795581067792031153021593916887813441699924410369100660827061166346063787582019987677399333738344079431230291647848701460171339677548581562835134195378427866889691457317130772665441510118789229527667418882246583087988634865721941723917785381178531385377029208666810407381748672681217876825438265015338241990912874465853104530292383307672855108237316093583431069749191059026291393901801250967760040802779751228932877537952216901443464704626705875805802729814381149683128532116878533982880804669662467373308306310262708248462189856120901362720192824408135094984452687160297181804777091294825565030738917072707684873977970974802861516238859993452817927616390592666322952538008802595147445952035157955940529233125461481509440759122400107731602761248546462181168679568411308466137725364015469825033903979018695802073190400135211677239975748074719037712428797780337838490277299413667721966402786254654452014598211836436447244315129634566805306633370210168379271200544578405162286136814762745834362064691523972917789999903325268901008683773526217643501374758029234988687046777921597221588079521564906990250929224696645432450616816075739369174498521324980422628983609574475160002976442803326261161251432275843823161058041429839966479876782847166662039506855479300598006275192440842446532575139692545610133710190974865952908128508015286399603426093345738253027288866625348661448993950832726733225748391586424910083665896551223131159579380786320045989054093079467119324020452023464590484143989556807800140005020831210377828497273577321150631700351919071042056450988565546432040711093148123748074762648115348186031212666728979697126286378263923767885071665536037525488046843769488401514182779692360385490627108573171132805614139023561057261107929787642200349796791793590740696349512330568016052480234310342814352504656939243541869779568894050137566732411723806677623230932401361721414866881506890592618453910161718201312281727050812159507908436699015265488503092693156973286238386155949161930438706629351725923126928193120140041190881709790899578212757610213525285655255792964669229418719732536034733377088495581576626339858466065506769288547145176563913369094954452201750841988186639387150969240648557978524586602788959924062315523800217558289785145047112157858157301763714080495934824347582696662394251345327957294763173826894688273665333700003564250394900904229211910272467867523474349578897793701129408179520081275517068537888204780600800363381969661097558855384740093636691307499994146208544190995323905252211682213828398912726716032554339385908696156827800114254542736921057150575652078694954713184395909952233037823507719726603922145737890189877919225382626675846440533781906505236461977531025676515255419146035898492560026793081496110541054399148060259494966711061391979071816754156722024807912921874515702973264894533563947420492747460165776233182458229835567666412736307889574619256721539953309454161835718076169884546509558509619064679200979549231408771265401627660217484531344193104145179674944484475373521756197223567062213630771504039263244257155299089077952201804846167130097045758100819279736408516143518877679624472909491758635095035830010166795026714522617264642090408718391402783250630526681117457151927976273063489579490863763300632270956539035362445932412072811008160938329762407832212232910793705863031933312602603932304700369986666332608409872158975693435972248040488906011664123271691020795246308279030368754753193575852042814970347480075658216106314265791443575885140529094533148599104353918681871794078747789151816420115773816676871497477939714189216608759874870967346882323344082391194827335926541622535453967043662997383462735152149935573240337035904219098096522804486293613781686598178711980987565135731315922090531437840060823362701747464690748153147429473746777369579327538294276529811806926063182080120666293776604659778021393932162911646462101210304734217241653716580994192228884216757915384788947402435057835841510323466386989713085633070500484224798808084681074114944124000331395470455950271246093776916102292271642426041678259666983824215171118487750917552687271771763616053806848165544325646119445244482497567221087892770827930691888837935388928538686723688040005501126490533132522091387345792488039246996470307300384255333417539252464229318757587132260699130735474203609507982419057377318684445995004282587667546223453635160782354720809628884565438465511926295821347268754548431737373507360695352036286312385752036355105775481826467509882139306465224043031030081193065359389621497826717137267348450767501627744631247729095236813213069581598660522869739405185210215041091796333968991514023196711494192005715017238310117115906955015953196691976850468373989849480260964180893233413749505576992733109743711623203954841969731813922336949419680760276756303056787250237143767282600714150469802417171961710093127746974781265359410907907044566910650364314834184548648303078738843481850234714052226083227309282893578749193036697214465581048385248959532523173845828643618035147147628274947519795984599940772285031338220356158677079380098652136359843918487040666012463869961194344509553585226021562485562199282601785162055915633146658106788596598950965633728986961999801036541536955671521315994834300399848079294721238501148726137508625030129143598890055650252660361319918792701861426730994535199040253360356641787861321069157977199547104581629488643899730961129681674014798568286738467381853782714809824809872148360330159638551469231687995288236512676170359156410078232855442130927039558241009662882495223489030282168960536720361827243716835106700157336243708426748316884855825538408688472037040969118039412987738889409454225072601232703904741546800092666675611094201798290745416334819360214883170046422959958297047334991900253308595562714383752241169197243295892870926706718111375552568503894382600038307778322870027205670563395342653714197620542026716680418129263728793694711087713101987655064901452324100485010235404908945344153474982615338798863037055640423452307113423444899684036793598113842846674284768461451534626989537575347208793899583068859725697208580194572219721139602759124357148926227640166765618991097764190547942393679128197716811729276899146144754980282575561737603226276606996655729357071979087842258672869608908135839235785418622751803499228311169012570912984725534327410160265266249762345489475289758984171999122272464430764250374205918093855106989699230024593609228548099748380274185617491304284262586154691388177355702719276194661508326009405666272599250006201717298858051786564183907059767891577426679383967087812149667485853718099301014566714369098723196482310300405070080593799797311727368018635482439309043149106402243145823070114027814060363565297335177057125881144804932187021101002461411371962307169302711646472940990463298031476709515878867658487449576306377102082188018452792354701321752005364517967441724300738456530960922307199959649180884563525592627570814124687176694490590131441032458736683834976998105012892096124800183121516822131071076551746214129380768908163013133963471913561324947507416200572558247440900572245086522400420169189747061071576056117500752673152573921827907011954034300771315198159729412508180348621500335077863296533917709593046657851900225523320107749265572028732373601809055600690734570824034713594954446026488362123261419693543475312416118887583033352601844006701205424548505096427023296019136707563541125280572179909226676685663507714801456578929337609246666365888003505352088391192220272904228430380172110484258144612645055759497805082544179718772519153166446239372555069391558705552588003344578438487852360233468968923527295477498529082026350702390822204528855445805127298099450695804040606490298002194223473568522289849068969151062076864157442339592972693147982732517281246194897224166498331820607441743836461357942530817154317875442569734883164057411044137593565538713107874259055868803734922486727051886841542668467022379781229997521384287197899450864104604712518180952325584751830126754955881152766721367339135966369213761616159641953866629303957870848608396484799015612891987864022821995793046343656416776638748751929965372578266251163150275544078266565621013019213437770562359720159886556734341118081529975972833692015799162067143700683113421041010715471427096950765104897126000792004650022591921170354171776296941227954156703010566250040012521894503425830417625674955870850838835581558539617134925541482419235129514252654808006770726042346895405801668003139188786363394015912870110107643994375144744302008654825829223219684332808836089176716011565223161441544038209097805338348498558515904156117392764121740658051159171501765087215594188701910281258314327359752105269219301729983408745049682485382123622789639737000730570086104289844577617557649119475545671341659407810285346083317812063399586962175714608193588338289552230065749749429060346187980752690169974701291772017975224965292166883299583817033177383568253859420414637227626281876657254812304928438002268040705039082426035665126832568182008665511391538958409125368683612234138642243229463856884864478773419489136252446822270391841922905809497931711289420068337096737246894156277373157150825625513304134727804129683366198484528223299643035360754450198139943642050424449364433780816494799332436812274214466013757963967957765262780463671461798685858504078047586060198469065442734055922545853955898121382488776180881123652003503984474640369720009580535152667959930768734278508114506585542333521727556881672255579185165092994271076045309367388147000997719079371888592866291659197025039219547721283328009510257114496410416464028550896218939767478056272829737194300408215776210410294292239316048485589705243028789491432632662264767480996118468649720272321475460052595054973392714033561333374064450040097824922650054120110961742783591112870387277610662889444847191947713276112661605720659599628296418719229217867022445253746886736393974770169023933232273691518125884790583582474830469143947352274295825934190412744865137980028771344643225191890824904199106566974624083420339045505357261740757675099506911216126199402637629165718880499906201474137445643852692479252380565495124348914226975394266785634533659897138059168635970900170515622667422153926384386824725908135396003118146410619075305651992262827099832309193678448990529826519383783658057163283066041184245896084175871148819710062980443811027421564958150175455921376738542582690476146239092000640244243641027849214429414423099085349602423841883637875508153702795781337039027675074498773857287916774143341176559143047871328710702649214946886889077735835579367215793222785895424199425634081553819405107466683380540152995979811779939199408236505688691188677643457556146441405985932647696926319634227737173206428200072001442325224633737272926404937122270258977886186828582042805134635257023734521097439863405367787289190715699081926919732246995642490273073472640266900366036740331204427817458635743293490691568240307603800978567632414499718316557830268658065957415396667606938705125088393472277953693672040784963942489352188794052583779297685961741281231780977287968112472299881285276628179400011439295116059546635475547828036790804001293772207382151160331919569403920076682627374681985173147758031576634241319876931397257987015110831223341834187881977933774989821753950990512917053159275076310284483709851921105090623121702882574978572135693113177036393328019215111429313312681318331205791645167882018454829391793873492061915123517908718827997115729506029670043917361201076166820229191870897048779822858598840935041531047815835593661183607037255311545369719091523547926426154312588522476899521886757540814671860522593588496342363476064631674598666222932070292321119102489268754359990751435111989437188460997479772447021688311123234542548510955357410674108909053937483600004029394933677282494334361837998337887581918874777713155895451812573273183984728230635361337885657821060752114453308360317644247762995083369898610341205976362326673415395069395606101714909750706559230001309304215680906532005737531093929380533342389385491543068514755671959623706354223215602149198385201584259171826239177731615554482725861712779252750263937759728718629011969032515130599416570147359524910864142701367106463099391352047213489119331247071021263442534251328523756186037206004177197977917384918028041402642278431624293349784015965535853510710600342693621642680675171132252542925987239706898458540502506456016904270214962483935587775510694784956875206730819224926892138847588034386285405111001658784051659161055735135699442125009529848206579321351386637109845109178940318319104761966973659144807501962157539406576092850442930024564575585512950893662954127190317044650706172850740720980935149790839504567400645409122574485856846079926317774442759643641250383345839911849907562384189209436697455597130871054314773317286999598354105944392344778039194812668200190795195813109863099779623619198211358066592057769600224528857278384043305252298639888283523633612003721129098497977637288201034163313571711114759935160187359952951049122617674177903584289409791177877661188894429257894595872854653224123203254706973102427806104788568761802243166780386544081199960193169963363337302491889809706388865944996530193202625352341847894403183224614849564809781441163567282622431050752029333221319308605523255465669974159876245748011331156771444877852235396116787350660813103325528204135903677873728666510744016068042865032340810752613752646684846287375191244200894631739953785273377698124132296530843057528001154699961001070017854801130753468169874967974069308033220382708256838997399542568300126768903991696292850058611108595614300667273582164618869111104820955819707803670874532732062560283846097109054504360736613538469218052689812121385999650512772530477318618656926467957399229065213745819142585539773039991938868371924106598846980187086649660904083130470784344286732648969682942574066584758609715240996237204636750115557090954850205872926335399959533458496877517242199099785347165747517884840924102648363264611703475218615357818954354542879345129918678886399771622305359295055469959397289097040255499495503520791978222429191135816648046006711691938802883441001179873728153517053353982830143494884477289946870487455515355995066130384384096605505042140795646197011708364991027217928367765322820397391888038804724493149946615427484353702307887292392060318622707478238090801694249478918720889721509311687717223020067955451327652597799317523506920576270471550952529488008418803177070234464235996631659270885127955956248860355384377628526951301164616434876514844038846167637689348131085943551777383063121002873163934477401316289780085752344548896820502245771607888691165669857473799572280558168477000211400600868485541248746173391640762179311506039285692550712229852594843778325114520665613444504590311657083388406828318060623819525002331779285262418107897292368071082489303463226875405260780674004414636985804875156269114638353046179629375818238834670046878236863336564418377250526824099174375754274828737991873856271867953833273798743612626964266723746384447345217028469176595502066805103583748921237804314901629377172708517065922306645768486169524562351625450392687423960521099520226631158135859259853749065911786984698422205344698813776218987911927384948605271486340236538227159665690026767772221083524907431708830735993459556880919282038752207174094096618485626315152732478574844727290031148454122011013386310891605970260052323398901584258050025590692983230428801573481954561963420805598472087571246290031913644627756759952456095889799046998072356502760296289270048868806557302182141890622773148531035252470396374827495408549494568857270529471059573301745844173492869506999124832019230441501803895452511260167298572318623031909472695717302310520068305773926408514822643646773848105020516092503072509223726991233265303956520019797174337349074079409411555613750761218017808453738479757364809660282917342831434077173754699944946970396855001661308624292243315197195990155935924394132084425391722844224870391008252216749652649614939620311037799731795634979804600805154320673456292615355299494861044397105769552796348651038981620211491356816386319023801186799896473260246883595848114352148266289029477846102746399808856398689714507784790977923446507584608683002226002968210682948942383697027633288662357409881762168307913595004307743335024227635964274097185476924221409991722452767109164584737544496672459059457033633972249041168590758411971650840249428564711387328218540522317319349280842071063404435027749915655180549429409617538472307537235427457987099144637762314917290963993641599685385139357184832402992094080553694613683576158829552443484647165959630720587576217383677132421964264155143738936883761961335867236994190949297211974282510860225160004785843070967426657805380808824710714361985483197405215937004558318679612172234158061153020442143877759320098694502074131246910439944583972060228175741863804892480265841450471189753113783146836279477454492378978527681397191075584746416368651408762740115472459164064237419033388128617216456115981871533304569975941307762927163304757229875644415679289863194215067946277307659275856203129600360744058898262223925945006905786419509761373680227466544379733808217263390560464908432320963532272943856416369233275394438547939564373280308760993934873690731475823831162060435554257077057504579323796896217872993426631805321494766910202624402923037839891637750209657648848438454656718597068850309735985519531650861463636894442250874003023178593725043410173927886580118974178378749421582527327583839444165046339563153420534635789693296583785582037511461858970242296743206648222705876855599959571130947636085485674485297961806825522498767239591439131442321812644336675060413817673178155449204838538295783077417219194810562150023389854785904425549604094339504111483370636764334617774787225839019884230856644340537771089081619423539116448034417344976018770496187349249655209279095809850352727012513812826375897035334493721376220081899784787797247072262676644529639304829787980842577983034690846160082955923448463540501536772398515739969964850623885734842201529419151873436309189914637979431813836784422155136620255408863251163124071276765206399267328549361478588755108168388424576810326393290117633208664583540952761067143584508852852633428884038857894707263244305548909795406042664379749769976922636673583547064730565681020525048942851503647356204747946870036187894380982323416841302212386636229909466977265825175693565435371144788249413143560536449347514645615350034866818303490900147440907713437246278001661209814090664828284798714415933174746872212931988945931652152356790334045952547881828095459179714271179500395307144530873405288261457674755911439640894954930787993837696126403428959983943412054631071877564036057403834589985299871636326829093038973890776951086545099427066517497091538624732018833363321678394566799958476429449443759371411344990336843382392771815664586484511330332505843573619397504687484754360056449372329174023482023274801728925507336213581751512081248288349448429701155615097967080601185045188097936267533788292474583443217357957842173832687157691779691073639566663508699640906477317194898963192708179712923678380805358983404887537632132783550585604292823749597857479258151304117215333106973842771654531047184450908668647880017446324088261920084916474252128710184199051626475228468878104777440032038707206607067595581319342019597171380772115494673916198968694477580715159797941747411426092949619621499376461118073504276073542588147094048606458324098789613195995279296731691801882350355266404815102959514943778316435953427408917739519693227875912808380368938082921495312143169847598958805563530118834536118696140844252220143325345534792299465775290565008445057880138844123003004291389129119683701340112624600885326952683851951314668179875782771311003215184482867592145762909924694656143306739844922710999542568590263677032075934632189682457637124823394268484706253381222778838207604819545402119938506933709474525975685162695487179520389335634539744156452464847887529268754871644070438486732791797539521451904785155228111507216597568807981828044787669730358417819565482177754565143620312843043018922162350896880759705550975125109775486273195258929690787044279046109127440720091195032728446173902875694033696847944190407859384068213025564992004502592998228058481547359663052142521104738152617393312906494339684985705630520763674937340952063778332831228097806069925271329171207836726690825836606996094365573611224112614676155776125470450404765623458520013108479450900958201287658609833686529086693011430670652833187795236235545930459984847772518399289158190638647090466417011384186049018959936270306682101474037682444157951732067440222446679023462388977542616687317833905706933548157400859228731673971962018236944984348803734705885164749028155740598235548523104251236117658609196359464925164701982819141021972984729213499034345670575731590713629228188996980710431387068245066509904782784097367527823034545178636571936568968859697968184899417416942416883083397667774136733192621031253560898193487264290393599829281699860221362968732848383896587831809864665679214623561078278702021142026143339640703202148190557084010277664008974223080942574001223976804495270726867590159788083231621540198687960646472537563377243632532941550100501690118001033549982084183484011474205149473355455104588070174216816228275541303027073180609511191248474815126854241162319832049615640824857731691258947585575781600098561026051057542715557110604366292674873657686894329389483735068584048349061554617436041648361842606160939143739173442165441486599190754792612776573004454242436807819492551324712081776480797962375281514967714246423883360208971802882620608186755182451393269128976395567246034130193245418744472486059734179033424127906870362489500727944955202830260031087410402820838157032780596612716046140165294236486900451302806477173831126348932243816943281116243921091277258551226211072898351139481161766813726518388376577299812224631257181840954637011124639068325098922128901652064990914515091119354977348883808901595197303296413552314853005140088956626840985999181177519068554089515926169138489073525491156175694619732501761124680120856063458170673606368018930329850613406109880221008068094265997414376093795631601048631276942939045615588057861584436555526366789950431847836253196372732058728595130261837092217617262012639290884057984474768697335829599028745326198520512541960578484879206959258341158519914064617009825696625157511090407778339303176868429483500247593216917263278474405899912625529610971314915082615259626813235424656518473924074390269014577051137847122420959103391226428288469377537138604598683460227303740135160389716980464087747370507257331455458080461123703813662557750555879501292771707456220999795102786706438698833267888190584722618725993901615928245954203802769459718433350452548290967946181825998066317938558099446803673975770532990445837066159434237187307101742908623187943193033456813853216478496761390160918084623025136149285450940044491899345240462285293852996920407260605872784283835567383403653447948947107698696821761005715551026518118712613909657018266415646160555447176847466353330583176495514696679196100954225333339158576258532415144122768499015277486562301163780046963021102880384423834210484957004769301458910892688240782118991577219040137329969226757908983632106165358411817392769111577773476474050596468692407021310707431184513577224756315592314965299404258991613841163747486353067335031076182991315328704172516776132873519303156241874421156053165658772296185880678054563028781434739238793061081764394540602946055256519628691473299932761027132904548638668854191047279966784019720830676969539773906296554169910200211204022992570592290939543948807292581074771745028823902181084433876659354462341659637652320104735720754354817743915013770668386851001559209791285904293861336129434254363531942464856000169105998176230016785097335480200106567527649552799196442635276260125059282133034336400396358451841587731582031847074975342359788951649272697138220232865809050594205062092598304687797766596359984244014451909815885886164761293586772149470565031595728223691095893864687042757107352477624972116953483686303360687465550217646554956701327917574638307820196795024678196408020084092868191664440157228354848653300012697915962036127120387282616999989198696121860229572706854964343348456585679633645619727107410599246336654189828764564444988027933470021774210824384088788746162850324174551169085758909722741246813941379732997431634554683026220040695758133772474689672732250645964133368092033512874836494987744497902076139927022414850558736538402423019198190983562276642908357038172846643387201241045840973456521893273748473586583504711029788733972499835700012005083095965506116460621371857991640990464170094229123420070578207702455777393175831607060555465942655688566537467430801617066834463941343388607575478122634101458009600823633726834555769530674658017428492773662396147491455869067873168200441578131146601095869909046097076206324283500196638288820915790275154920858962793091367380879179485557744351317497595126101599047181003245864040885661389184465076401828226726453617117834536185024390026912469705544361174070027624404888375675915071205556268375143478716188905839785497618680392189224501355883538450522278295754284208324584683081235829133942483818566770921291071795339020954364653049459483743706963865724880337108175478381956193749858217335222421160723847285145843126195362552962091854067653679998933309607765237961044962404816229138785637652851132486810345672600069132775114345244897431435578080550211918498267691907488034976365678328535433210992545202957370076189363019993211419233506811101136959090296721679525679388789094842010215096977935750143317598792165281367366578301446242243852259997541409707057515635966225381659328048697802053760535217310212440744580775421245284520858739127107098119987038506729051995559287942966895431876462164493610067997026396654150433767561182835571348926914998697398813946912808498663405321018831710651402419313871074085768716331042246779435995710164067547112965529139850627534894982841113066479231753773519397747219620093030520344117071679442771387323750085386622013649735278043561719940463530784138976153893388223127092009766933989614577100297951537472524063366957511953088680074257683070491925546748049747318608747969558747269953927801978597052259983675855505063495582228097164855775820905908384820968841950590953920852524820615000200266551324065214264116679254018941435249055384458027846407341218505398155951874685531188266608149830547278017979086542011970414163677342922009042248939545714218876681421457132687995218056061549138621981453527897644456727404864421090242210791256279146698986625706418527277361627849413956135364572043959111873111692753828154262883629127924744193167337548019645337352448794302606267838789253441533886726353459372120277647777301596927960860232080297592561324294440143388372027609100405852086961217500116175876090850338170453264497723750667142143120032934512228612853161833423109121163923256444121833892575497488722265530928613844102943343182695585646044530002361444804223418433926947111991171556917578165173519183338894965730181348094652773407517532022951058832920416794617839032258451827303407111651659252527832415678744640494872747334343184041609501256378867706191157515691083858644096472210626877513794546413617793079920977798805577638367010670966990526844054529264784125637813599172386722815126257726461491115341466901525644676182618475784197225199302985978037118303953122340709737464769988619905149856054064678395300816677311741942442136432868134188305490546256354243201129775821065193943133213870220054204155917562242268620744476199065853987882550921191558197312684252567868446074326991934772878512116948047297545792440057714056895974657549184706510418318179021571594896367935620316590378616153418090199149131262376021899205023382834564123110826112866379847669970940150614677554441277054073484196128575175023648761867794817023403494886862994688657784893926540393715385714315110355469605000546881090097251785039320261571046800881677304015704896884774795793325600425543311469791411120991849380315231678975052475624916962771502571204766287197872342009522533146988255354452662050347021273944927211733046069714645052814771025451109761470919277857187514459210719750973270522903764920114860372413451721610815741802688586926940700269519193476387675900259595758261810351069625378675840711882188661089923648661798890057748123033698391991155363398030756353089164620513785449026675245796097206724944236127418367203887444767617851002598181470679806514680491349176482490747298471176851638618329022427085606618837846246174378930456222366459214983784220205440783546053555814768438058521152656616525457954769285020518750626353089918260544485118373538030147294526850173986767505123740328230834438928294573894505649662632260791118082858675235157949390739437835474813252690826957072648744841570433938367037822339097773569539688805755460409065034337243411838439119472597769846569643449131563259453244438867769158017909930950416118158371278473839424058441019021545459889194188450975246253117433703551199801302624562916970741358449166716789108064096039057302160700898719691537270866832795893886813711599158388593342511289894824014430076597500776741062605470187760835351010765026209414968994269469141070946970911171250835061891071932203246879841375741561724691234476620930355633201651959437682815585091422755582108950531597261073791605653975731660054243509442191027780703206499726619360102949230864172373265135537149602700474206787363350634322130824234350983815932081688103034126392588052329269246633836782126946450323413493972903071310962915011358838020732440028945774561919808763026299532284854852715751789605287020228953407874236211614982189109611113614036496143217809309135816393249759962098723866075872004310951234648491187580814693230286716454006985563524866488547419408606170198746655201675858785551950676759391859396395250238600365852607716344015142777495522706752210702616171249819818557836046454491622589209022463962873035057710654555830976417340191815778470826486790174663831154485261671617922291226857351794342954705659769457190612065482736238494484287769952949363120629498389982477851117691634556385456851346446941802274307365659693083061688013609610403372329843837949192140320743428239615386761849717506204456913965503469972281095345476367136331335465575026822114949847274085819096120435483230754589609845588406281994075241174988720361030012659047556199184456370439786237345637330876301941469825017565458623048574266682001735339025363633416013269642676380935014846477580553596276146019708462268600330295501059956973399930960606587089670558668447680786606871348024568724890076258520286520770425776117321635865340951602817417547147961730563022492953941346852967038574365431766796358259802988801331237326143187143126890546594443517159500018157153964410499090938956170853534530474343358022507366734187564148773832920381920756387018924590769104389714825411451621066286262580464222970954166244027605306658250310111558422804656886375697344676635236812453080347018592069880491678055347472363455237963260985307104762001581400731489072226876649250718012187740118871524556279445350998553394743286889860823250180513609764650618197174480590306200973827041709495418400808599670515665385003998632166781375165106006607517374724360516825235038729695408018933174072928724552394752306466930452455847769436740655293729989351241971160684841268291887256148004287960603040853839301354950828653044876687403794285240347245157142940692692701834897368514130205194450691866951920348909002951570542041105358260082402322208480258608738822462717440342978824712143491692864567511676149983776452322678139641716175209661092297485626285607178450955957081487955685009210663757668250912370916358687203045943810443740347881082471093797576334942148162705630111190710785776529813407850869605256081264425685394882261877550813650544371817125101753926369124865118908860212963310776098663220495296842185462110958601919715267718218526149487518750435706665183306544809062134067077489012366524814002355469159891087458694118528602699892639602520174781090551174031699270532640269937722180423508593962707093081056579238491331967755077166299607583248875584027001723656531472523708616347162570127596506170410383639126384389453571240321585595130963200459439576451805190474472127392363787840407584390437132997361019380300036386956514501904040208264780151153220654812793924393355800878263346918961335620123668085395890124715694447219994375418505824461095414019822879813608122803763926510024402752980453193782847254026528968433828782987535215370776608109248019344894039894307268556036825096079368971504336000254338006476922338441322260966831948931233319145428000822864185749514505476306195155785287159383998548308466383427985707799787558895561755599226250041949122055951398437873582298597630110314247188221498236966740636100093536867978492315930974326147080781455235244061416479627903667222350920260739261968006473217354165405040858318265721603586102027920459885035098489500556778458156703431750543546561791583854341124940363000759486134165185551996910302088652347340467976899080166005265543545771144266072273823413504730110794768728755647476669816290488271286112921100314631904346691399808917824761011164309123066573439785763387030722015355342882268866636136426694388167034804866540553881560125286946968761636300588059792472718641325285910481950158293669159225946734176921772510441002121930851354910814803757872203091203262333426496360890042129966455469669273669935400779749159802493792550682058875730207216734497377092570364026185593206701621888102977387321896470221520313304771430077380259595849402988168053325757465870491021208502486083466214798354025570534559094153326418568076249337691068235828230989473257221487258208159250808333164789255833437263935866006260895622158540304402023796563133841896862081069550712407959812140025109461549039021346847013747495673983676640949610136350623082054364809695265780652829956837579386698260867083323634988861480225259523561295676285562791335739059980785835817762523471214320870743267629064203277339567611702094195962334496215442875280446230514019316887890815800847500911131351177393590142019065661908519023654473263660247755165762589781156750092186824345808867695284238317061109128175941464543294354822857463889048166003650092154750951967499887447288922407214580702186070349615334662070033354257910742427415777344272650728000319620849846710777577220428034887711880492791438822506105323211423524603638433798226409469805365932642529343378346089381756448258364601973720851480454790777097973250678746068390582387161710026848771430591037167472419606214898552732775663355224446335825136179969464249202874489455512290685518205050880561836041692303926165807636059248981760464265485609885309447144312858926613353580234877041250043925380546448652640906444111147175243427367373209739455937836882609633710041639420926053567371848332902073516212790434477397900953041211171607927392851168351706842923704080205010891253264658951738030414552286268499367702979388640240362030212109683615921484405094520690733916767016634135512677956034401487464844199981365609321213422993978466677107781085883420281538079555855515026916677650662508196221244791925832159867081969947106710989932597233181874885387176077877149838311559541465671593465271837429620288287481030839483986233644099828709709308017611649410218520812519969965956191637474449752834006711546738680501379713837601938882365751453895415752633365710402964254238764735827935187056668662437115672892078679055823321192711724772705156672744058581272446540601938162353307303854213459172251356336980726572569605108068152385275557363331050083501887919420077522599526197587731299273245971265852184662772615266514720418304368326942495236066908689056253563347909756484115314494778424050010326769601782526630150026646996648266619165259394003093696505618819165262482572438604604151341765227619586088311430909407176220738248568692862785681582094359757780736741011307270174158939160387569972586709376345159469016152004210657891347517252473694626388076698022733707432300549826649719104661961378922023480458859966990495143438329638880287866981184122086554609688020932968894467473509665152833276834026761616881308777109273311122543733437076014815233315214411620236713786734417996398659664622734636579843235616549533488075691759076353586462618559863433151164846511061379463128969722853410344099497994687403122190387718623493018260785439779853189278377076120462845748265764703583343641272555826286109386215941225857916293358700296285897771092750836457540251879072588281693373602607472096446959014327502714062744985790050716466603991988663045427457837442178453825777058893476034795966597723626905811675368732214872235526708134947400010566564806644942619166875538424528787761492537547583742920718436260810534677120188136598970132339263795786646924562502201979667393342546436344698213436552900310732169393865763651195930303202565396098761542340749626903733711622550363615007604382684496572487169825258812524380707126665229057176506423831651030205139268563697516718777297548689882923029918206252442221739590979057711838021404584431866648228444174866009951724834489250252883791333057895428189203019379987614494066891666957641490290447916557733798183741429858994829383136682358912718180288694709090194415029359290588685451625786525575544206460945265912240106617367103972080985505283459810035558285536790581036699556199693449346072979653972367932301851477728115633798865373164411407249719868701050361617752680144758149301186936063429491590132869009055825470643679431837094403946446443032260361327763971254794507536080538304707655051229487173661866467020614905027361219935054322455286143600868467086039056059452180317935015891601955584260455881395872073519408267227244516356663780704817895916532175837190371248788697013901979976970524188615558552059353250925570819307170552026934645992274885582892578796574332125752174990599700279860935540518616106870944476708802441944508537676528378612142921488982511596028610368544528028903245430768443659205562146249093380755418300026305653913019754513870586541125623132610574710627186362368371011305185605979290667040004342620374642386967262112892301450134886211171646312850700304001678673639499784129161930940150566225990122687794369602347069354219375843391260243157288351398873317095218491214846082049891197796542545536940667574130563366215482560799909062322123564180243424463224160548878651030983682583109869762915763754892600543484670071321370073942129964218639304078467712957425447235435019565695702214147656973671239287487252960947583363644363306759768027723511804609673653525797232412400882869159178215392977077347942121634998881208059157832598526516278864800421044965051466278607099700218239714356685558837791327298071975206425003350091857299382804210107454890775763954818167228491605823104152821181342686848967561087370686438887681294743042677670847616999761027313784309759122769417559381355105502713330292198178996361130150234538003658217652787541827971620815030455168891163134485666513764719666224190910311914970312125538498643126243841697754627090245490837138229741227981625861318444461188496620273514467515492638646692327428222192602429919562964717338518252642959293818029851315847536775918396094783926518935086040506976024056507172830847688968013818793961109254521415465485602346924789744795258990898956346084715748196346657046650697254024686559670341525394003529646940774209877966722006650293010370485634292662295524891024614726731585805087168358717923453279735265682449253029910880670400211821771775842647581560683625242848184260373257354189588531250379851864131092717962017830572007197663752035310533821443469638964371112598314095946407154338674199162584863660595355535417095460401890945336187146750190130732928840485458036606559770485134469654886263077992170380701134908729243697751430612569728446789363294752173951689926058242672387994373648468567567227129055114431944035407137899093860715730404844337233890659427318139059028209241667556449427326364873468903508072467439930050337784135312405674878027186374267594024083902588206245074407832887342645437047686427219817409983007686217815634926741482791319468717382956343028449617937347064487138932930006962156019757137453735384545757927166039242679608694707983771141116862387689401187852490150184445885463800595728555051995680543862980193242117336077621870356599658349809768556623328648655438908092932060350327342944836035193155454084608361933673751061006674942879118378991305818586932159280137236167910825220813332904645433875503685071117019221114187485203288175116730184490119218471674442243064909521541128256844394517853538139488162252473597275396224641348524370159567160416960604265913419740735791326333647120994369132364359054960296253299968374372705636299937610453325514865197715581263865078204916576813046449142924348390487020831222884938802497459556777992362548058091862825753544092381075152262597846299466051171682494007824093935250061986964558415649922518271741724410521798984451477938951032608468300122423097910347150286910163532319383605373761842415820389947026113073217466106917467344175176343750550409159802295862815604546448667353652524900795293612740676179775613985987435131528442643249742538472789494096887049174866322101945902715785011052280714344527277103216085844801145338060083257726878322219648612950501795826220103874746207998283142968153551681707682537693014942048766983275714166248739942423415326305744621067873279071958968093761983053389846369749635991410172756460305539037687976245231596268305551873333874631152435717087230880832578203158738843174120342511115234471089935801170564767069745387094079891135708076861461921841173630257056897927490539424356479035454440821188746430125566277603204537556544327194798337094246886662130388965194763734836086979581848525952595499726804463966002284048023082271715634323046372359624875846058869206961561056445192692004972744799416753140300219724606527281128367075965645158521184801436895597276008698187385888954902463269644191402482442851949895111175863423244805529038314908067530506912681295478245774735191035815896261253419867861579982974787816293835145893682969243437777128298158758754997453320600905891868972893936582539296144880749936885119521564650238989153636675196509708835201628114929701203387594737773028600797554195024478669812410591587014038556981401065988047221967487031560943476718608816028237540305055959008261774974794783025872889036851898073038762194107497404576905937985062098936706405576500301866058115770657049063155352077460448330008274138875085748736433074994299212690074209164320226078352768770989757169031575443845514996673057320071637878865684059454647681256777466026750518477746954271895980513681339849189417440089185728036853013270544997998345019438847704316911649949447253871850131019971500919162957439117399428997811020968520399870641013037312971060498610898236348766095512652598820903426439063411745983484490115188976043063536964752359389974080784900081355346154217768380514749880935933266492429254715785610584085846000445806534173685361640622528735188807381272029405604864308467670290699134827190712498414604745763771603267461834895890799288241084001238947538829271500315272706064083879427488062574241365897601800584536458200122110775137732576748228034885771914758318509759153333456071280582119846940001773737104106547942698530104395796202422332091821940850045777713475089843619968799145627054420536500430603259026538605402161202510345553279686470498868161135344620132732542206556693620187832774950115353933153289562726094239509669547354389349257577457454728091595352670240028107818862627727191200151207360697746100905835608366601117347630115453800358294985377669612573201013168799640864306241511538199689672730484516892668464583977551416710914001163104530817767554171032472947398370575685071512883583404034573966028994333760183538472020851808911587621139699624145034723706279780094948258975019976990763665267661638917163916158546480495730433222667476711174294894865432327717637714395463915416608244864738834621494883733340336184660482764345563017435751440153060159477454407676257729892693553506654639987484774750874670228414337958295529293621518553259348687284736037739042817192210308421520713921723829415171166034896347095734650706448824653511322415898229313685457620598923846994729630124751965922110879641515074699509732510042034838394669714680722425206166451882332039356967464541830728754223441478346838837959470524129158359262363403459260689576150846743791770208093952637208648307377167968190676988046780384830851955447756703075967519506345569870963549707214163968533494310833551036501465385945183312725141614588920451810324650748261402533003746078475704592047260649790946844501086723917085791234441291283123927292866608423670854589923277475570515137192297807671063528121861915446849799433574889157740147148362276503609447473118780867709275440080917659503508456152992398868102896725769291320845843698543062046849987537881562923090488595876572259269814346380478044775140067190705759038569252131510587458882042689983106735912429107319315863869758219159289645909562690201122726555762652984911699923029891740322885485179347763091473275107443735545608045485379430070190261139737450255090294690782108664670497448349858831932286772397841111789494567320452536818288185471501055297359385208740935162492220947927262843432324415097228955253271995198576026045815788389556807594756053402143971155078214426355777421927142018914097798809779644369375879892670670381313375117963303784346087765454919911833391782944246625839035168179072042767382310164232893309904058496050512297812473619696501341851118463565652333506465264521532015852262173224074195295709223582377383626382521071562896393330889328347349164773192661335112989101454184257255258971009496016351670459405295307509716094023458113980822496228930459169358449208514557662223967386224490427993142303200065655144169173876098169154088476389883383518665084357316926985887413182676292313365741672305266412406119516860225929433213601356186999764512841639734128391857446856048432256847030591594324222966609168695725116227409084807339671049355697725537352049780516777979795549246137113522631986434879251790133518421156769835579255951246440263115993051244995694017305748887515101718899193925424117658333979847771478826008246127196802775195951030738913767848599062872534584939858493559300396536046479251000156893137522132866826550044024757722305925591829627515353174677338948622222128762974687314923018955770757139145082691242983050366117947280513664950672184967275728018831385001977118152425016338332147472699580769781059687131319227315884984305220766714019232003359778497605979116550832659533362208133500639705483018390105787540940471077701002233692296756162383775978574453190493093316000327471269686453060339775994854298731324102128871110045212234162367767488300069896124368969530801984970028109741473976772064184231818381857018896226277042235889279989617044496730117815138723316043792640321519291315442677950828254930669350103474618607093933373546441969143836162749350543360238568494683196115639085046648310845344987555057440600194139773216152552738466131831391880446841188528718829593755626339003287239001976444249814846634756426174594154796992233150509318503847348961731021951781461631307368786765680696879361222472053925529539150999826684978335917377546327942864087395678632922124421854533057322620623525193662049445739955014765494719794672812650532204624874484237657001935508924146282152707833201422196631947273107337986316497929567949438441045153741150812131793452661836625344391390707161353883162247937167737744163299114237171021475124429683003847725435429292488937545909567322801966748947395901251038573369262037424740464661014789191344025686695606699068058191095428937239463923607064788799047017193097020507822071663943166334882715750675266791661243232822104266454673809404903806575254031341467178786402446730271809970864463247258844856638756431287675619132217423144492304259554624129965822025132708912696481116578317054709810991440282688019488533967150584669689337788550110819795215599417610771929178191639516800892778586890008994458747124282169601005661716712563339553873098602192070943529236027905224851746435538683354738037652726421948960572540671830035126937208477528146532169096945649936281376161159691645804233349943925619915486141977222821446562676389222769713876550294316256900909059338217485473277812716642053211472879396536230428033976394466503417755910665804525623018755912722089653303888558260482263509148659494017321206882609702208479249831346180743302233198672827329357947716475141841368274577967098125431615861896850904917697728352314125305735667455785740267243617293268822230573695719444324171761931073832192622027345360351599253926926160804730820297270443578432070066975486565305421466818998881590233340030996041285752940737025828970591214823829290011318365230421805170446880582913168727163617141069450961579470081789263348187802788275400944291789625580294549131275939488146377395405726575975378891360426241093337618388359577275069114040056259359833612052535863537582347207370703589801087478894980264518006867933276770391660588552193879160689624837011684527456303799499589485643286966146345176582118079598300530887001648306788976256607682651137418998500335523894982053044573048494666928593115795855213924479315288779645495559070501121178535340204796363825385336360895131471730922490542249501745942655462777501782451849189632130879850486084475516541177085580535405310072394113738358647035183866980737513038863791049158344057172129629418188408833291045529159332430335812961385652845305534339559598881696084270009188625767812775371185348932248021760885049139847185872672101801867254996624892062919979611766889376626864372848583128410784757693174019697190995513446587000312487626325715242391507080658850482054946107074113725715189027620950330688652242057737581801718361517846209170653210227331785685300069578748708469187389277461129522477962655564314301926430699273726998778409329221146234598408547811348403814463734667587887535446062785481552477014771993627644659421694546286487437959293546861589772506328710808409461106169128792055766276148895071970185622776069526701690366067530609908720703999867480043020219922618955267849706420348140427143890479565729816765182488290670138745734966270078630273885549504700492225891248942046361383800460054190564160865352881119517890387170164146222880260905469133298443048769715030748373082903258775418241602387215824682622508475938609221762697399439491835070141610476192623371499755941411634118525388353783828468082737428369809968719045387684765517541956573169966358016718993281809905258133021235217766597088041804128607151937304845477823412027644779382508983332824791909688827490530651803717734078564049085631447599229598876430982698588814815779164595046173135393714175189692552574962713310859988494529568716746120154991808075582091441232041589782348025910427167937658799016698591107296054045833870283379609380443394038856054210536061520598930695463615724607417877954146107160263135353896549059776694297613077526397422372667857263112420115120185866822923254254057847460710318531686833802971669415007530594673744038187359050428114525909792347822852561428897190799869289466480745433689092221933344857706554999755768302322929812533476692663123609500470911875003850465873320997528462195859278693090045373065217579921910013486996906094204414936081081569556261386194879621158415136132545638853321642155446225291210321720426315495947216413450868398895400632102500561609085886610173627211988301454855168852446852388374731271682477702777806647503213032348829475115138023642810987910869304518090276243380715221357153497685420366803176107656866163133714357335358817031861036843430888430335302473279122879896958459199438028352345289999854749409019941409745454791405024415736535159891905742208612461227302846042487329052588661402369396352563539365507002813372858310641887267342883193961426144819370780356100953477670282241856595073135482050344825531858795199071936278252125918961850666149399811075014987525234829018054587232898532952938914991348938024881868545815444827764462683748999474457713818759810452195455380962225389744890649046909058146842587910184605706339242517493209744521021583531404989608587069613671542796240423102103740064638190177780469775549686268110512694571359712673684821175542918309447134692266287918176733962293275611514914148513295153693932397662619888079523854975831805427225956024467880273927903561499114854385471502413020878966114130864963785538096188159877795045602142379763201477395282066426062982295374387095659270534845937245413084743512527982390148699403456826273982072272552925127007049790256396402855341955276284132124017496070669409480072845117979057331504130993134590562340116027264753742515359401616592362349297353838178458545264572608064946272029315596415589120793344629540508736613165091211249597252326450385661099717090181960332838312889786221399258506959539064762146044956316339212105732531069303694410807573513345080167616302121077318229233450942804097311562024988496255998143203651837883650243869148372811000792022008251259103187101078627436521003761487298631111973134652493499961154741585233857579897407780952244419735523745693349266188578168535026749887389502969616258337946827167613859153477888247347806317248514685947364177988695031557982379946684117080373835251935340868128197720801055638923801068444903044860922048291888434356370646276140609168178977123306743071436792228796424426223855940774380450676783509363526751962631381140572243393425524676889295967458380537751201511589654057134084940186009004035378721492934396003922325569043701421477529990851884895812977994421660964546183035495120286250784265077027748787962216409813159150427291600388000898024721172492692894506823085644615731457414958440888716583238674611553173501664419304701211932834116061371235862989697215066979670689525617420251640759005551289314766583558229387958434064831591486163060645165665158671524763946251390046516646785144252843963319183058421178596574156857366533786459342182613759570413603967453440549131234848294150342559359444447413981994964706679189220544968620729546838738991781320672769547747039738570870247933500393450883668232900844174280873133438480480563172846985081233288683385173387692488473488082064919277050507523546495014052181096084495289223797950513364784085887695722967152428764821414570680036110667553365183950996937278730528633180233067121937628050815206800788229723011897638435001802632400636512310151954979261877844270037241756695820077141466803923796239650212332636306759557103878580039124046919479502388624133577190720696451049612030204877126036386781274683552220713665607116282384601459395015664695769511781252252367411824327095791307433621035363345332432097520422589019337699521131214704071456595335249939027013401579454973608649291846369858815981745872107120247724384753580492403925762202547949115263482519066866486440891358527150172200925871083744844894045582102072897074903696080132153062769757877551765960479073151137903483162988691285493345247700117047319042777733123958542202330478974794265060233768123548858026418569895277144358656652906094700310851036581898342387616605853947849294481909840620704056120288875851206062692412524951499964281599310595582218886453725778863801237695561725670073644385662107709944711625064263149702008963748850399694810474179806577051929732833567434700846466440308766796306324927378685100938806521230427550424960175555141728914436185438261676905056069263675086808857603326168260243896770517203515053359580935013045023491892427402937608902842196242124272364169009585332895765898790930950173413746223120861714933221189344817805325085414311757951097596887987883968255826671426397877652871536270202864582068165893409093550751278734190814527470895803187701552269493587586363576245360549686011794738939335392980412462066765751799832421648045253078437065671058753039857429749482529224955031465365189588550898160464371210917582373886801706087292817971375189315932174089562855249689552460101686161967704346618879173415227551864706610897055246434980250515703712530179152850913015236565693608227571920678485248444195381518405215895613741681230476597423347505087344153297829252730406106162245409125707426958735093088792142051651745293121754380222815410900924736818468737854817602451313791114699757536394337016987040591887398120188170599503979463661145630883599836198053794720737903110472323728783322929431686395369122658532340091301000280380429516764649748597785499479131607873206229741395450823601478133916013093463576289912117318164915297044264933938620309027789900363857035876349969514450155364273406772857248480670694496473356595812712015802445076342342806070874693793754907600165540806909877851749713941850348619530264821244487287323892026230145734532764271577331108604052688459070356476742176566631139316836011793698761126924205697663202181605708777895647867641445693453242194417666380163296110421263043716831717714725883237596885857607428090855455032676875019754055470617258781829511782525107348722524026655934419203866528657791715098926376458873333529761692903132641628675346955682104792536050500394638866170834266621008134486052287077407334367160377319189683898335678257130869108647141995183464310308195925165137800391986346098275795843019260242454748405980407492998832346913494870309072640080806579290411176540020686420193216504594782984586278622123454280563566197610264301079515105633207526153819535868840170158125815427366382920278353344415167378806338883965796736987399221785044722033486398651090784309640141573339201307810381538485741971487183284187435519859464110892204301927240876974242093561298509711043133383728671349678681563270333185632576692132513100593737241303438955117784264180703109524579783136383544307367951242024900458875306165036624638829031536841334969446870632208578735429658086800358491873923282823211440020529895083000902614288544874756951329127731694673698353735324978337643994603614862344695454517576125743986223060172610014542133678407972880262608954632292119983703570710032882425310629730073724859217222907747256300965288762106368533060051163971233834401105913860405274060739316848102810583847208866722495050413596144516468443177380610141529356049190058641562762543799349324676071878603805926554806569254127491471311006976834645893994953083825726024632501710433873155683648921523276069324838873832320176454569572174712643077448737834820299061470375710065202659052582501196836402178941582242834978850282169466156969160867879514709672523737279936342728261930898872909003207447300249971206854787755447767589362386009763267063829171306955515708026173857854518104279790553192050533418371033658361641987407133686309014800086761911208879496239347248929146302931968226915922633151673733842729849060474696224415157044174438659763886346332137075321833079862889354581219497916390122938858140401076719903553663991502182524154709874384084493735021316775543815540044316953617319857664222532459894302014779167706229427098469713759755199354014008954917515834632523893278835859564146872208283055579180559639447066389987043283577423014575396803914968260612937653686114660190206588005556432706589462840487623089978349964130962677572498955320990123023416995167424177444815560164806085561015976231479602850128598629335156010382601475984649961014689197084430220367257819070632502921679984603805343141430199424495581449770824881724624868820531044103786439078137900156080363343599667024816601649014572094761936988105899164661123793347488648580076852724730258087737842324575555735897721065946372110515695980298155995993881897105522112264674110326354205703587921950156832275884758280104655164828132207396913399091407215809909383355218585239909681714649396548576841990506935084881399256286396733835180226086772005366039302037799873880728307112959982021042137161757352616881745829056103825713503271140914589046402749549072586449261752306495627917049816483719123579518705256517364737874162592052784224104125505670050422196429964028169762953256023705785895285959386999781519461842292817109345796620687853208129904391368238348903112037620798606160643542867425995855348450759391206563207195377420213761599260302637661336166505952932770932779542626086337213982680210657856407590621644487525707331122143352753079954039343867984277405821479923351548931414763028171235414908902611557058703589235605892012470480250813944365839072129387702834288318242858711262687868477745676549202891535394279071252301605228809068587705718926012893168060662102603393955247634751608693202576499430577699434608417961748306635061702919974101743446433706112549867439043897384729738776455990719770173420706190824284811304623041687515890804201695354975852359027283563648375655087358777890973862254934876648332855104690677220645556181257609796737382859767083366974167685230318553573260844552584379189705745559301451105565426522719044302316148132963551211794614084244094015993051353014526522868300983808143046002508775692164228058860379565357334186649309891718730268314386422078203211699115330496308807368931406517319988605155382011457439348155561048082888508892081933176837568593089491890310911718415390418542686164162457268574131808101316895333676446787941966548079765889593370112473415690277660492498996993167710091104198086580705674689045770707499819655009000157342011553632938193396960307907106954872155198689367278368923801664417024483676358159518238430695610953162089845949609061646059073262317005191708874375568940095828174962478427339025132754526274450439559788164939738459254032300069751425716582474647081171795935988490641864284635905193645624028393203668522310617838395067678358864910737548636449943373616856244484199635371975745481169126708677716109351699547743282933743499349920017279414164534833463145078923599648146058168443398197241748010832173329660935805030159755971371764755896007318030902948221780277418194455916436968438263507104237231571009219597641156360475398357698327909298818230738941075610431684140597306240148552207376370011211509067470864866943321967438284278710164127009802146916519505778717754279758211521455731869530880068348609995157406846326322581718899751799033807311846052397597612898933045010986533923545784914663730093878830730542875280236671957634082530892866742983408979513061531729547347198766075521826942120627975625626848337331761995543826471395180406509154298651056369834969310855493355809858644756583634714047355778394230303586029984542721992498336894106485863421461945561293209444945747536308727651485241433086808394100500250516702556661567121255947450745710602548133535354278139449933572417443649625559453986166134362060866092554750918575887221848403674009289297679004840256054012669709324606513120073974611237802532263626130174714975747176683859679363815487383566847758014313596592945713500473022435588370946883950050564982940828188785171130796246001102355659660443544089744067395581469438206321596112478334770918152420519055864414362528879419396107520894864957452140415096158046914466055344159481028030064953524394043913103808913955532114596971741511524197824696721837340888116790359021100757949037027966786768195809075118145617835863060164941785347351366088953018918810710424558879593710440021952692114132477736157756983161104975942442318133143033347659286783636429629763066414434306887952020810929477497493628351085864503578464423007908814955359152998500413129086304915478326511753435350891942342072355447255389917239659195685799763853006237343011844795645837789450409058563838320964279289600324930719154066426029666643962738618393448339975600917682906279203696838319293985197150228103389353879147803678502611164600128992308361869717025599878175295760258506915329543700396048620106329135064260012544619469610254270256291672090171831204196312362350497340803320047086271064390707404172714119715456812983050819688780302483248926456773309908255459354948744296308703895936355898506068731146924586780951169953897099228960904689675225326482562457916688571520364159352235516901155375026887711886047141240521647953548727684071723024685174566941977298205035036815896339259295696017323983146597154526643044681773941064576962788624098197973257316582954611977496591997298780406315654684987750400651664118606761622810278389346551236835090377466856335861618916908889777162105308365513613747980718129176075665447055160402824329380392671024890141266712459664974095142938236422506474402937656358343530076793525807899914846308358464052479288658516407469869131652309630370736898562334688601909676430765736526737221464267532108032127452403817713906830335151449910210260436468024893865315704222361894739161457116810284842628986977234276303806957912430677121093653636962262130011567160719973795192475506784109190919421430499126897428858109118155295774189386001978829883784778850651000678443200669078417682739345807365847444021194956894278420200780092416573141430550634869067367841135403697072832071268484044751073935721578538556192536920004855323646428037240096695726440435481874203426131777443383904730227270075977635344397864241188712066058356306585667504741038460965172817645719925536033298487250437420578291200350387365397260777994170711328442777005525559524547870751985123196696567509348125763659724307784542750369505913658712182168343649340542380521086992727766193642498427275014532916715708846033403836721535951183917415232270323636077122168386915782418405982953824293195068115289547489714405544756616635748789729597677422531135603477173030207237367629322183293524266376622222630820538845711850613178513052201946589989851548168032092232266956157875147510524021834668260298880272523654026889263681911893724739434698367571559422298633047909509353065972667999638761773848659144648219406168531105210616004371334951699310052696852232820519951227525754866707104057940504210696846027300303766676904666097289780749573868413320151427232518070950851401956954444335914359719236443170010194980677787252398883501168690787176815303531592144804072464549448353892875172499994638463106550577164357308661774176851076047650285513641821413696889197178512435733185467819099847090888111037070565414547610567187658687410105322694942597270479898042151329517173477577382558151187440269829475717307625274875606194841328599129015710099244761024192855570014948897256131314665747599977700369725535999245663691508395636062084737979763333810158888285595494152580571699185101618214881637039702361227900697201420386014324867674855283966806337612372488509311137694801737304096292804015994614517081353832447142147525624467299535541336123449569416226534115827436639771848606933300421300677825408994389235003474089008727329646716505415016747948902314187737166981408286530604720213649808664394345359271547080867338244027621179618458889393124590964374065203512057401158524320255278264247923558492905750777778809510887435795626327225830142911099932583022714004604343634188724309473123437036628960426117842553587922720842585408994084491161729579105122063459188273782350701358609416084257933959531256034603321107951215510698902197053225996170205792815109432878534393486348534441368398203307581158058696685733684882263932735455413950916793278572538942308050663434648804260556800168800751969150103793863333207066835610022939453557352316630992521684642093366044005892877164786789136824287517452611214520444711377037649718404063869145423076889075335737084287350531996037026433692306255976356926650938038952380530708268644326985330401111955537427496233440633402024265949658567923873684995233000634612289565684033896272157651540999685978493209035578570753852528703820196758998022561320237916659252152604253713835897906260426184949187727116414423823449118752593570328435848868466796321658815157069597632861151528837063084851728772930362929165182314451840547764361514689438429722414647650944028233680580040050345704176640478656393181321687779271793396367913758329008960509784931954199902396677860056956659507803222827982768287212483501879849095204982249561801553512878140262989322297988125498277592372104711191791993661829616375681412631666049253218226474086447374244292603500263769779579849782918023702801081698496280172115955771184318546849404817975045968259779885421261768125373392943005124829376996891181557032866854943848302569137058730975382032183667182144242588925592521512911049924860089358781922300360960737030549686738920269723735762300147754085043672202090146909661638151648380759097976944317175386679050336704246413430249819904051543789040300574885175885351633355468858762556540344563467236769468567602648124280762933838401731854148941629263472640922706872707085588927776513512481225733459591637064370318960925826580109400607563128644059102377969021910408717572078730758786519437445231138339766491659371153632901928316718444336417530708579316709207703015774072061293728933458893412898190775261066327787720424773211018198717839150040854145420338977200010836070295798632251980363324540322273772907364926570975267975316726026688752407694385946324593600075492054666888858099369279798934907630767137173625620621344772254209113461304068216376267392479270281402419812859892713055082365022118738751519582092378803835646329422158374565040265975790041088569925516607616846309907063072969796144952179089604338199690616412188963634477893221765847847685732739637270705801348528535128705400614473434401631159880557042600572506603972920764346661657339536966938204189242798833129931018664057439804644737384008287446941152504567703794695183128341891772680674224418257828845483275479028100371609787206412736244309754767933228269985917276829451401781754108015791539659781374315196802861133905884392055427443676850799135164408686516412562543647729145706173758319531406019952784038091069735405939656916726246737742617400292887964901567414828722019437364760864147694251355141816337201281096012250666217025352272009518172077604060480826380176634686630717785765950380910050082026522004358108305802165716594996370603827233395961226529675948926165946854223984934876862087793529201317232826060643471061105436508769053773543364664552843225248362514827202385421925247531362675323803385883649980321470796037999800651220377858457248706507357794338586138083347209969779454083770622554674784308092126217131540133207464568365806635517323346524932506776467376747973107152586467024526932783091109858897361737965191642785212974392059383867948952498917713870437540281329146382596998028351226140641187552137320118811804841133841002610730646828784847025181889370195405701888110473426983345247245819671789750297210891257407590172952800023825432881488354991678549891904255766342231985439566485348933672756327014135171543255618166374118516569618792997397622716804921259263826877123902818952495594674355057431510146378851349753590260976747260658210003627072957888734912080414724858974711154299220268171001305176502297706290680491555707040287260007532499182071862869714604257231592626683814218613432612971190325069556266802322032501597207532212680461811840196908001607023988504053173906509297791183013407668846288689581722808688807263895477096762600125963367511051575516559555957916529469783800744064382410390847372234846688689731417203696547257719899233719001083349317962713103393328865685484259730794786178297002597678494891654944636573926743538372195190365025611437969462240182076533733248949209791032830672571351090736730555918759014525822314937055470731376144314025305224990031547395060875351915120265070894968419459098103979517481615229099857062256201018934103089060524331244402639039688370921155726491711192048267619203279222771019441724927781076434919428107204937511550366463889530822804346098513043999014476579247765391085719895817012687414852525606332326003130766700203603734670826556355424914119194371810545760788748641828217079856226048940157344739800847831471203497917138719363162950128875228618847441991008617186625329305132684193900974183462375482823435845764347777138128256811030785364414406555603266089624951016167203173777936581091232586634960490925568125911014690283056255534477022699936780848335198924656698454343185218971301443278785430607630834738979383172921146993529670322967149927450616577690209014466953989339217651392232507706175463490416053556054429790259640807058089140952342883315149591177539370705043408616154250000536265099181248175258761775601954022039257685347826441793840906475986429619950785261557001550817847094329386998537421242870989728915559023778103695863740809159266345143193871445317316052378218903920935772816530924981628346527306193846979545614989198437595344329334026640881100365153809161113455840534836965433117097584748249996253485095224498444847668674730023471544550521256875975587390742745044184730139024815120034446846406634853865665266519586904129543552314567841273848459009415013588014050629212028827023014903264707739904821977368816692204696750291388092782568833582506128509451878983872248500305814068512673818806385801482705341485286019247618788012264092413980508238217041942700783693972851150644612011412460030295639056512270222362296869795273257056668978641332925082687958046948675676911426203405822534573029067532156453654064308162796900920999260830339169072017409412772757605198919562095470102601794191647961089966254160191383713117098841416502047054827177360048806620482441663219240141243805356146571068605404857608857188694158134062071286908400659586353121452526479670019844381116354503049548714523428391611887389096894261601178463246201161870970722212455365606879500331683659273756217713878564543211108869542338066209272440886231992000506995409965075631698605347891402250317100089185422779314650684501850836007571709692248952590078176158534912575762461577205140351702722078197484241465580190898637767410370604784159758238612045215353869083698162073396556593538826032062516978336033010523428442887819260515295005138086868952964403703361304421841664775428071758046855525724658812780612681328511439435253386846174753781748986458073499527482021111498937705745670195297841651147725954741849564080084980452897306227253827583464653643514640541162077629431610137333719020578353594728860321653676628603432533275994364754789085538493081663748647018125427406165304569515121239272400769936821959344623517338093650577112026994737743431988744052811489495257173291403696046429984201231257946425124418497732310765823063582881212757972300727048108773825387120965888447208748058623895452880390001395252479940887593042279507837199163683854983560194909019425578879035583274098932348063894912644877132938323849259366844290333068125422200567830867623772722755785145582862314017270526104215639497438297797617697645371074609231584470823694178240788568997041458265030688576386090093114752083809585131326628978157696088588467006490402928015504471622700693994169394524185174524205774275465041212159581388754372571298202656588157519438861972754981110920668140138824525717433799338418942220830256985141992591634107526835157545022761281658233880294757283448249854812989669948991969016716264662301545624242460125966069593447959761666017065669750333818925962408099770261646862203248816509817319333463413363044206470668266302390796514875247141138490308111386230201640847396714649882157310253184324032346934682644421605190897629177066218074058997676717394357953176100374288347508527245733361872561880000574349072724568721183816090300149061339093365304280882613688619247162029692203459275762446202155283304633852720662358777596477376864306588366820362833908578185730595484247537474647561674939021560837148878434690274560914406180963948001317920728137575259941378877687882229467598373036656213735806717967246078953091110011692794799022051444704806678755324356510659525951206923261820042511758160431398195204573698033473233399703416220383793227680303837953063231975565813701683963682894723547477398098385920997576594671555040505255148474980100159632317871675155458713803699237853517595706154879284731873720426286098254252515790527871772642043922490194361417283965332575321623232346811720903382346517051287678629256200288571576041502029167603995425440081721923007299685013061096156339938099285746051030014492424159368269057810242545255188825491106734128669956787741909447428495892065770708134055711181938197098047728239856778059981730830448660505654668592758083481018229753043628912816579778410085927800755984845137534004398810582533239837484409859108670757130990977631936438787910619877320258093195548070110912319189860082968208695899505605279464578100035728005124520201263868446430000336804188259042557800868849408324208298375697590032681656857860530346380134662390279392257318515251998444170700568373986868528282293713766164191085966727466739907890207556586244986459428179632922318220639858939875340449441758359071190712864082487573385129051763410196591785237059582803464769118496331876588988526106829103571079957265997747010867124480033886489103512956678636392887103057172028950510505226605105548414236840235987476193933298992403762762373350021331766605243509661444491158992148469113168561558648536674571052691048104917335158155724375969987328770824178147149516636189335044217092694773126229918803245775090558817534216281873464130078925198617079337777643405021826933838861066386418442821621490922112070833612095041060035027847983108512333181789774632406357569217258181717946741830971299616439931472623362064932769830979694752911199420487294949672431591805506625117660833511054060190742185636975019948539986577841476744004250297974289175404577607794251750771468282557032729811341076699341095392682190060053688062042828798031799921670083472893702390637172532509462412751650685009643008659649026139337830703873297287949793122311250481949856336954455947387045079971306874219234361904961089427901489271132078649946458727396776962286132106280398553256775796670443620963656880886173161457824920532000279465664034474857605238179964386075673422135743330082036984041010325254091668166644974279754688232942867780388605493036802849604837474870799915253856302059814267292630067887203337211318556163550041338035678157350335941016723035384548969451599154183765164274642434128872926335903822907935817441282728177581198169930706795545602498527431074098071850030842145915793093114864127366646599401093970521188143313628706243880940087320495161417206033433474119741041580606495756808116356933961071883879130747362261915015838509336025695442497362655149083157198663380123834197058484599095238563654643643229542323238829747272500218989134887395004419117964712300045016850474885038250640511751872746262294061147750400286953219655455548893970031371448989412694525061613747002449946426633106487932141482637164719197567163764852781555834837106047886098920844123184772009721379137914556005906875028255744523718816649626832286066502934768826227414516910041594577908257611043197018340655767571255924529733994064468419355022939886988121613717180741108649474602568635060084422240279564973148840246458686532627269379909267190718159486839534100391179464202741669726561627268032249036468669732237333551055925983313216573957461664645439498252498212455508264344701096648974571305989968557877323877197489646268114934921035591821037223563838038427781886977576267586936515606320288561202472065871029839442815582556361696516727832929911920509845658441302860941709444352896135265778054948878883105500172950431537807335133234796784616744062466938407269142011702398624339399249340354268146802049808262689470599722321770812690186682747744755986935902435765521947747700923223526401227911126476607715941752290510490765658362622786026527539289193021208606846047953783160605275177777745731680673822062165152572128417075621675698835305971686844507316531852349164540580117042823920160584662323968297059098482553907011826109194708087502613923371440037110862311379151876154294216540643292498246164535486595213414968727210728152088567076142803046510817320552141854338488155593415081143833349214285656191058774386304301768158954626091080049815490104692945486272334874282059937843092500327340816456287639586352201369806183146142893520971887371172650051978222524236880641476895079666738040173016748345164914757762439866673780804017197633710961932944188944721383942260149686479102800540926170647110782556204629960748583483687254480605092944799385913326959392190972752175340038799115002769875464113302184873631498344862784545981016326917671673369076300868536396714098126643026109061170824025689177390909456163405045777824750719159292320123460301763246772936748160289844707449599349211007029474320472455098861257615373613169386216323763813506318046094234620490714625723756857343963484189725761731200231517571558710354022161761724687554939132205817716082532256448564690187149040636919515776466325380511678056094593327616203068601507634480240934609369698066432249869071288541478471500755928017485462538910540747792990589113766128671867140398935941924462180413415585727063641982846827641177585051143993812648868224550030697582781707139152444484482342869337191733114405377780171130013727414991575357439362191030621577718554575225325931298837863199953265350795746016360573879072775437616568144907546688642700095118839076994603721350142902513016733767034727077989228948024048703857980731718202794745489743192535171482435061815423151143861764655950809289401222803134011654420206367011280247824229154976325680984151366301928627489774229447356605626588418720665682834462772898322831525537488026233043390076576828622053893106487773149931032783915504880896146154247875395177648158809972428579760217047899159629063316081704616342763347545197332882479548859937420299186628680521691264739396647678812094396432363606071953035502716341712698428067446774359625650864178362941828194728853371538371801728708064002153818253434655347573148565122036727989990409565049424351651242823232100789325071896033587891338852574298319852267412432449584401183422093079717252194782462588949448614544553041845514672553555991207617606851840730541507355031968955350198443432403875644903302904283447179942017115833859630637052529531861846566993061075357980559387118323792312755595152788264094078128140814703036359993705605762843757198645596446632169447585128804293352532472474442343786749300049324539337405715408348970418977042777171018555294308138712333770718979074322691076839345501153442073076867650909332085387275263216304059190478573378224692716180241354594162398441463964221781532406203633596043414099722343563994073813804611430294255918126190106510608538171931015290430587852929000514438489570983957207398169162816078605870701264605948423856756308708990227392777108893959162108033423450104709060183348876958202752514327532134386074169286666143843942249415344777974102701730944839597548830781347138668586150191316142953703951020356454993957870107313669135783972016769347621677028435553723867504779933596892755200820462661659657525011688137954507823267367834076529568885005470877558895228688719465462649059688137686267470420464490983288808713089600107584880780562806533275449242608942548421730478811132635376242969566519605961240055803575762151173841580656796270836446888326531419485616227335851472172512225819393526261752284845322478540422701354538966724279339080051108441524849056581497864070247816826265734230801952247354303617869124093586370551383459296747925942780736148889301544743819894285234768887804918801689748980052207489718172860161039945461828085931762232903339044901897953612948115664828090103323704138536876031057514864433985254201840958657601337117930228559750622866705478776014084537458046631655678055560076496496281446229537248048096736697146847745555972924257709409128111763142323247548019440909236051027706117426477214570147080231396507077655780938050546699856762689862948145537182302951325516015038064595035144216892167561145094481219947422839408107150047404419182480378527196940281089972655064364057079085426724398859706691629372008936180588604564773082404969097712639680761143389344603289779541888131385210498040889734424185487031745164604374808800537904847067624253061456355563084398487703774616367059323530633057932846467410551480154854722364107346426730681465552211467239765080573254290871734729404974417194964673553782115085162930821607740272734929434319185808622853177576408298319833143592132504217639067226317988320295987359564452417898849894482899097863664710374077607444859620659470382921229993422314276705598639922093672015029179152556914224649063230424743321363617122831367821013337737684985215314839659185109828909916744427746597178040604134779476652542871635509884799148750830442714486344786437246710361260989016129868227685640281233500388779171271004696996388249607419511149993394899788750838814347397441701078997903476387995968422505705897023578676650274500277285239829652721733076222166205425545273440415170627592858480288734578702001760455558432582922294774171384246667522359351467141186842602567869058585379075412665496372566974457358235364295108400492673442321735916020855796334127960638281049333113044326211371291979240714107802761667542257493208278309307927764993808485503515680399293308184289270946955132129826112490644353381541386236861876945577621648672810513578442272599069069607423757019969548017067804715706094226335536195270216293319886202726008853344331833462282530352911649557852988634511053803743604671155174898915488192029775185078442377142960813339042315274333487142663857498573226379941330439817434175509720172106310284633248150729443085013790862835187537579823878550639347266427085451587004214125197814975598778588604808268598859160622432594368488132937154861248290282959818736382416026054655674846400136701710584002866023869576290774254708447746745318375393215755305124766537562554288950240033205927801493001333763808417079649682810892099269547196920349259922668687535030843340369526301948225950933247467512873849481416062514575865808946879534546112750851753775918756166950353894994976220089542275264986634167481103496269318409574930851145353167928500168673294293556306310174988695847147267053159510235168587948011162421438086405126929989668896235535318439862453128418330859191485085694280198348729535954654084439510470591700691031865691806107539535567925243354730365971559622133239290251522905607319917126453394467723721281023368141650863268256499713700499555064991868928916166786850697459978440524761472808264752955483904511317924559543617828045813738196354721009975672087251664860022631258869478436347210878399501798893559554936351127934752080621973444750950047640944125249418285466952915308632311110951183199041806058819722522362722972491547533033311808936031638302801222068903384187913119803900693534563288786547082059049896417627620152402898393098937659621783652363354195312490414580234296825022352024671221243451809807718964582599411355230692697930439100998565051770497641640305120644317323920508508564348269764004689728203159964556727666524300809785718798557692456628424671329986199274864172866805734813342107117220683358260235500817231667868428307857030652132957470027083530503113643888073201198180148453107298402936917291213150268552739264800497148648636059308785825837489155379127019435519079553196730783916309960674137016712678633616978924580948208990538670262970930687533541907715018434912834979481021776721113830054750381304506465060578865274439949459033877074492703542462806861537958108771597301602003802068629136437998729116590564127058564846144349181009736328931199612819999845489188748061985746366485489186641942375877150324850987602337534352360159911549955760269506633935074321477906397702348264426859298601294777891529329375671184578429279782789415654472087356034813692857885038524262659903646337014246902200078538708794110186685790413837565979741448145219557172717181052006170636474912783010806156876105032643831365345812063710233523182425177930960431036358711362822892405953529979101477642887016547696532190433539605141344939632275669253070474365056533340505864112270482130094082103489665181966354947161693994351129316468317479373438813204270638052469522386361751172154122827706101233129306902602067315319439539862083073256296193864346846831650081252996411869648616853814231874143848405664620382518720556680481682255072215468965540103034842504235971065060947021906094485633116304921120487222681515234347124481617885876002144163432882685274742390256911171563950267573308177553528502978891763549955633614022384542486025050066664249519153165554374723703195269253699679127810611691377151342537439217936798961359606744388979871452947166802401578712278749826171379000317080991109767151496069964936485217677886197292555335217933735479322946868006372240727221394221711760045825159997901914285257435833250979614687747202681947088539315909739641992753472573707770390804775426500848693496707096576240941989816271280962139663743829676714040766897314229771478498465891545335913891040643955735027883905604808526120966333336540062311277943219820592706093705931113500022524433513597775541565637861733133100719530527827728836230978564854817811227970396860003127627451979991134131724366057345807728609192992040003196792780989346497286421338569230698643602049499830138490418577678514155529173015732500643109164322162185491012173345976161466621312518582267641299077215205284357371772085342788692215797237168821007013745959550074699481748070566805362816947605444304564776480904056662303150798760599634905663545211090493358376873970593338618575600927517908604814198003719850967974177490543890184130584411626013457457797269611675288120579747660507140823138713107093340389366238577650183501144722571544793568602379630454602038994550836053436799656935729069409949816872625087568995646655158901997181117307316276948485777450432761537286599213574345910735958253204717243567988971610663545606511965707052454836583096998589783664043473491690474907106184432802554965894785350853875090726510003613783524494461025087835810546768419335869711553408942212046880151791638494990526921449177707570495561947330879576126853139997450959304514883313448567810633205418619840765342004619387190368220089173625403571956262974046582088412193895767479359465101399623249118511062805474039662547743620252814633026623037583871288545154845941146776318257627465617353859326769698250667560773204113230992425606233542197707545240893966215627573959718676498890984174261646538575253436155116590227530174083016800922359735117528485529249445500512327228372548409190028809261451328056198048900204276906120247181385931778568426707312197401779661721683304010539386093180237571919576974844902388632342366039000907645497359808850623385022701294282928947512036525472602182877496663619535498278722575688351374337399691374165803614423465637912127652878032288400699624565335416700128143483066139961310882558180208712168199266065721181746641306549850193353764093589567940878498633505389574895115047060059567426895267076114114216190424501620157348996220246708698261127226915803857316113981594127066769748245793022337579551308211505819240045136171580762634081358594269209234584749650599189512988975829881471765288980478231917437327433183490729455434738339277949396989984485387938362353860019817736728105744383082871455819082733143450297586551217076476258459895818704787555349084479260054470790786440834011568967513339555729555579731467479326860834673748258673041370157182113946118163775471025903234555608524949351865398399474998260325187799856532359888362681424569005479323716812047468911971050685636024200818475724253572534005272074978112041098346949337771895549636522735302750267150709418289077665861857849589043715966648278866829993093192983377558170174913849008434371005148302769813726117982965030216307299005536686021333507872046616576822723625384043565337030473437775373595826078445189835084038642798883054414924529594696619131330903930490581991564099514785447397514561617832413159291795819209827334932912343082753694628503930552267590669451285342538852066032329292773549979617553318475028705935980731328143715956733930940072120180167095474848067479074678922744496662593869706701280348442623667437299661414187315869965338333311118426838211150707686297145224113397850793202482060416123154470246343486024887085597354646835757246911318537906378377938493025790306338878688702284974910855627253089560780112858137534969603573661146308381441686774450886307889034923056108979399491888950593610182560414386918890178689574821451502247501492341739875231792393578302937792363677376429685447725396585091136149523301999467104035542264259706543402604326770176117755221473853211228644456404189982318332078396009126159561509428517738962317425838314883436098620539102420870350409192461389758829681315240825008689745985855249462659270315109360226778990492934620403728781881403198281661423611241661750346231737069416244831050508614187721718651715678122266869805159034020105066255966637087774934139006019121308908203959416207693753942738951812527108819508311537110302169735724916131453142304233104829125203591936441025967781989982492274185259857519794439376570121664495446729714160812179747437693141169216633860966423706679815613751814125348571604789784536200961442531440753725558955598806682354739801516007482339650218083760270346940486455888787045083640665932116308365118848322017338132553934397080710427236828471170387428105190278148253339282123714428461991228438990545779753161497828846836530383877270340989996262426371245874552757498254945803746163486508240019237476241663714744806657827470904697482682645971140668189239424918786304496873805384643976661988444475107998203958159736739897548856484078298158865691158803507193984975790542600352050949989266587003802357892471066692816208493905604720057418036157165048417363799418022107155477391267425016469084886718909314159146956257197476201421831345455154081558265260394594717728621406701022932150765390858777528577371441817671957464639304358035162514081414621887598253596438384537595208400397565350457888825704854256698693867499271190320490280170540819909843347743971568938382585554143160108348430455795085514936160232511455110639345919994152430073150039119548537739734809876951581144407353168828856564245269561872568736021815291801309701110522251254746475275609383235788296795143721282245273927101005566756454877773879294099719366157678524826496977111041435636424025029983735153233031257604682275253385078984320413468157887632657832922946474800499413774765117613976188674303007158801367757088378877850897829098557149602226689198121614545813674954443685793739132723223300165989524593503589053947839285187692097427467430012693444041799996205044846180848309297680208729251090846351781152225678991569158851544419698379569939103359711779052536406382617845930249171564545827733381197909583253040375416942875775768796271088902790416957904899372906688652015006430366944797230968362540296941515700052741585536601998394200883925407604701639788255503876265645940909153324981655378130234904347084376728607457777470073107760712855453523524343906405647478427957496546357670423583496884845571892737727344906468200418584198153298958002754789971097750761572629012378473924990144268762453231260588206294350992520368489921477002860185264555221968724316684616179997124491214683281535047164705171672125364007329170131625427090146884379959083648654308741562822919685028687373040195697374275663156071026584806710301471493073294490727869262882770151073673511983250102467598862816160148360270091407472156739349877965883851559549164932312880906179667078457185318769040775896555826416053900304014686618890520276027639940359620485777672687764672539982216495585446127846788287701694888179990931355325073389654932098023068518306019141462535141697093565957265347554612866504271452093455740321673915120369451492899152785796663198879937568500729476726734106813622535390339033032851506101246702388868343022750230721565675888894149135608097423968007988898194920536609131846490383347733687809392828798385969069376656656735851479133307938027474546922203514257932871447256904924153645832148131276636143333723014737387495089295331987927296631371501437357363110878799826036350179338000999138494294855170082474997172993576558247625659378841206652909408793033879317385015479592127166178135419159856906417573761844853925276859799174721098085960307220093408507973958257793931158712964494006954471397639080562665440127388616130636971364433615846331408750885548793780380389419142912913839721350998936341305950759902085145766122740891150762520983568115720574957527246852463835081851962256165406993358352978306448034712910103258080929970798948406510953435654040547574551338414565551087864056378994206736636337119635493054634468213142636696367155300972397295547393897470269819485558142774251651847747320597079669601539507262384446682977769235840707267322316222462089745829831211078824376496084754024844568163572479999852460818874605114963199280591784738934714381509633759915175048860642587682043014799519798352085044585991902039291922723406685871487033996720843866294275387902693673104371409788664092658648134187471757537354518763028306162313026257466055389242923712418928209814092609398691735061934409520059037746007817331884505995256348574136023309113438552755113524716929656087071107794859139969366291820642818523029740864713663303136217068862817859769738851935726529354781575005186604792640725249277896415153753487674635630524008544624823866301194454145691232273947700083319381878035778209063743956057103844344256832533594524917602196374693510147856878359529035262420101691841593538673436681452104263491606858461719987304351653402000841764119174231635328300643848952921149008546499957888262765731465795839775834836117465728621517436559500348217860970034260071787476886344525912263180543183916489405870477790790798128366127519309059238852486247184699518761226411283401257692608094792299039923418676948025782366348497521741699926674938419466736345917649532661077329240416323650202748871400058078456173043702355621464849205824401744212433316488531664882044191222139652538192114769383258630860343870103903855597881837136646593182833223003798474348483936442767924483375295008264340420410162110697481804557827694114301156621880036864037351406420488398357398601752594293375149658434633062107368789200945764556410485017866194614438616058029194336579067572440630963471193074431215892196057421287368016495049867217740001249088188689117646672140411109054715216044524495431057156047708119729722610093405644294752160420665678742718349703988856208686974333645741344109692397033794844117633649217467025540167944752434609939971139334306959906651674546908549224605989310081624611185192562346070082039054751441836434025870091968536588937291428679257669385452929923755463721148475698509731367949266292006574695740875094622395978602159238993495996794288779791715749787473359854526082917101066408089359402008606691669203378514230095697373333018607292559217895140610195194355488191921047718031924502587273402316479265287366781786416367969996667371241723623650567285005606300790848910312913446243578234012316871720294707474281760358000949063863386645020090891807201505800051288153250817593029561795189851004430769772241305463628597176940325810770777724832236210327523023815117944838973366164513160761379549119580275188041892102233418981442743528497440574820767494213284097172713154386297495960891389131620051175086845535678878978482130056964737434536290557038428650623851728888001229273222696781452385196496315074112427168510297490698323091634589787477322596538154313787048688591046899043467460428421541424584322839112332633009770900883673401401005299211011064579316240389895966407235550752561540949711225608527669191370594563476019020661672405857395656440855163510938723189770406381459952638713451817096709904899436731235859103180098748154776009726669032120772267031750745053967243184122947064352624543583157094831629104844705225028100508293924327232809037104621012683152479463228815663002869301708242795970196342674777623143208364469218684690691595296125880195852685618178010824762951399724869018085267120422396850442695453967390095221880430151064684675657961773938532097770005709398016276834999098425403790964497689874281076219576368685699091418239763071436187530268127840794291500544708545441397068623764955671684216739436141924195134850857632630974887292181882468744264831704956696924666174975600158511514896067037846519755450771646043130308940978584294868749483220948084488384875143125734613533256613230847894882092643325833708957853842246726983240565202682017461924030537460611841895544425223745040810214751513148298411856556015034681567925151433651935065851298931425603180175810471858328741157260341162649742487260962464183133230591261472591569790295779928760418742652013074796241630572868014999014960981469958297253093420557836218624175367088574908068742531282800607577406793503094619367672742392415165792229743742919428931338976537240771284495740730269855532663840363468178856416516439919241072930162652036416672634665681994976395781420633669051086141961336862436233004126164769238776417767118324947055499083170995867454723313169715294993588277189800423046247213220791288763468051888399742627858975437385645373292829885886865097410758336388702871830670917791661958703525409182678805174213931228158078457086504538256421209334302731164650273672191444516474184737984341821477691745796322380929324974029581241390403404671679035946734254324468395816114097462938352879327179351336538176878618967409057131939130963855591568344410576067199758928252791379080639281326706384552544889550225250436969527040016016848455245585988612733191115645523627834621794737851401896599001340519633047183802657010439211884797834890066536324647269298793932825326398344674111338885053973379666105821830631799482665717286364356230628403030168890458418527349962258963432604191957106571139398425087657997539101451323099051258263061591230160875598256413138780330439677058404655406095900327686446287552771371782899079618144686508421366852116584802553584118874736609602688555886906961658835996361166393373309161550562869658141572441801914623479093248687847383379026372232847126038764449534983452872804819182442116415110360851882526610525993683848094843585604240063223571378393299293452008245968846833233477871671582550092723090344727970165664600191654045432772297571929224909108373059225389844427915249388106429483847356619072403396707388718821266793500207764390271765452858269560094658830765654060058809241850365645891828389794399958956859969362799969704830132892363265743719263977027163491819445437866512559806913998444789824263295243191424956118045427953148065605383040360505799032497941048139162911599468993860076513469260819310579542397574036875825477459215867759480318046741105817929556786529601797213886409678222818523787551146388981952717983405694170948872042455497117134788046874550406704742813785964892529780508205073772853089703319644767586465214542189032418556594792978632920002429025653992502638441436117508224286607286578413085065552084127658333602178071669650726149093783083687613227996187525611393206898752923742030451535307171372205537417878553780913653028253017207548403689280850041838906229227612227520789598501698587611826127117045324345076700793547570522015004678789614482338568980210733270085112767306631452162565970913561543126533674923396965262497283749031754067630980832991007642335413023785921216255933907255719000238838429693655978561265071623824040728964472802270683226181289111090164909342297187964483586348215607840242958443157724022937668055898399307527414659224130766783211363359221010366761119127536231100396467432480774966045306349770672384061545479968512882051246119271438847338243410992979861914652216444663243140924533917282430092845387013907879356043871674943936957063478538967006822071825904285749903868496883457122076334288844948544320871738062027574897952568550025279131108055012129938225890080502198284820035208920044968871083118511926991106787458436902625116735077643215523322553905463029716591413179270530149714327894169121954605780494101959676548595474315698394489067014006428852618711958534148634499086823114923549521017637798170732522397343515244146974811376350797229249414373971858478722261013729379715376563074624589627017376303099093164032515282432099183055145801446024131510879342767936168883276911967430202631934004221561259047798205878899266845814395807373638053860547845687585437637986049661112178609516391765560211397651332502909717630149738027329416848740957515689116763954218270766670142056882098039949720710530538627615432467432877455817847063268816306909671335424394408380539143895358846817294019150814690368272157188744661564495723843947324238249075530061616887230268245953308605127049143348208207306543104260835463044317504987377190985282931671043952670719887561844080873910963868193023189658372728483372245035561684732098976585173901971763091752325475112904704316925659317143732582868237494151177084114019727882333007040453369901560080276877384961274410195531892998718868872329963518175631337079267163739849895429883729450939298499785811869862437474418656484755166123070832915890649400401565520760704515713811754186316888511427602871384857909698727890220639225271007369453674961732655676294999121182150286806915469444947055727296001950771043199542332218224574323260081265742406699438810558315306612978557760667071762721308966651057758458734065524895857895089562425162295926577831252844270198980933118326881010644714823184216091547576445917588896052912560086947824274466429904106322644540540337631868830703302283336889870760469931362290957195582185276045101446571969340425768551549260835025245875809684492509386511857870138047302709412570590258685587905541595546488234888737318462382527560933155910642475719957678918910955633939286529753756707821959210396300467092200830507800976525848872094987927314738341106887833084449584111946620153396693254284432933730321812778583529215845720749399627521666055673204668011663628902635993769202734499589104614093557045834560124171786649540280826613436687360829691863626532851600018313565443918658500193458545930412572087696152602712019093475394499694454017205633718054235554503646187051826544342887017253445471454039197326822704945117946212226145415584971293693253870336959120846627851210839018662578837474370504461083018776132137557613244172230556942161250152853981888788484776160590114541760100894625004434107043401327312067864760994655944873949609693093425804946203680761609825015941677566962393790524720329403883659938128161286759180101374891913465052836459236310432278192412110483494281373528872992097185574285961093102154439826232676710591319267656544593583843774668538613762792332225720958081869407489388900239117877884330262189759672267216215909137421460275318296848773429356262763842565357106926389852666051522308412522672105716601110703324396317526344205652855000521052307452856411174824522244567470200871599734342615504649571954418341540558549208122735974230591146921687753856933090755802805044314402747363138162990044013397796777039010345522995268885942458440016609701983305175234458208637033959793668788914809091289649073647465004241271869748378413928229375002076336534833301502820110085412750469148461230859973249351481061557457261135124370775003534154994116272927766041823367183235953526972452695526646154095418789798648251943150583028454568450391851151632839232042134231781282611016097773973193341287616594991902361132245860665134075904196949319389650953845615800411386499928775336501496721853549055255492538775456913734555022760823552622547125620381778494459439905321820459750980969314580938071762561147249396181777299283085331614135590764104851428039671899272582733343927707387418759559916910108764348683112503171229883885824207086316151068847177328838760949807005264463817443045294758845576555457070006198986700100788621752062635038882885045629893191218900796165147234134440489111559155297278614761575407893464984289591357430256406234766948384907422817853164213322278708035692016062447453363696805179955042760747856232887109673079617801110119632803840210834723538095190881257624961984839581300611273306805710849630278405578932645814340514184287695662922998817490170256302653057672482551100106571216617146391141384441877975994559781815449235707727992878333504724871839249903933540728243741251632068084196334817639529275914708983455881157980203584116250753891059142179699633776649809056462191815202704441474552475411037158373160265314784234433159771178550712918758683134530650424644199029225970976911857472198969588802645512028672403218831615528191011707760958663757482019662112177570385309340094155945684954687841944095212668753497346292391849309938637059558323105697625210015318403807637127924907982281872050383481919725230058244912608469971890226292987242356733935401864784294560265196294348369372457296382567304091591292322305785984137885644258543808639927263911260553506245542262197681895040898005056792817953333841578890418624920889945884472695672809876551840981504548901726993464145862854508739873566156842676314626948788453613739397757632022421198655673919037700391830733464531310251170913742564759400675337985857996722875145485436991518476126536456204991018640214667803586041217993295211880717484157871955443402594097623277636284945903387493150917975636653635784031694409560018692561570718267769944280031828206347493995147211051547559447123541535039879716883643058672813150666421905958808931446966798853187123155693063350031690092479577579092531453308139431841633949825277149138975081887105524566521126133830347792776196355210852520331530343413446133948822580407367915860206846086559482376285546421030978582424237135215295177073946995675430087316702457673694874993202585085015047625958176900497317620944245143729075877042483700131676616628810113446902948085563294433232985848795242805051034620580968160363921159684708986947456461360995274322280086273873865801807036358461165003320874844533900356581582805023963514616074381174345868999014908733905362756103327711496729563143157858650046667390812152275143659961234891999037757633901600210230893523703610230731211963448756274417835103317691494106561784019258121825388753116069639740111727184960329387013359179050533018747760398024394562104804663230517271300388930724796568663614013267415819001734250372751715725486736101023299357926501619672111364312769521425640990154830313439096352455875743951289662344718157407690528388015325045650502609452826290585354998992630734565357768654751706267747275621740041651373838144388532356023107585635281064613134959301608074926375599764328447008820108975369774333059302031146802152312902225817846432354180442101753859256214974570380809133252782986322740348811420697797531259995395392805741425409543229454924819821398601657867354301487159940214560591168102263749110300448427413576027840774779879364557468751335487476417464716156527902208999270032270673262216493046779047989733940791106563490106513754256138042330043650894881198579773618275147982510679469526346196787234781554711894550433686816079734497059570566048373398832197554279627677313544482448090377580418990960291920286139373205052326064397586645585152944009496586362860174873016291493281757062837339772385256368122315567093085460247335173665989613232994178397627402636463643326438950882985471077507260754071570073944894461286430673559454283541175497077259145539429476244551629426448698522805316830060368293137335537708375109673960028121611149996895744706332797769087991749673932086048324711194609262006827577267109025903504392786769399545372227082576120150302757099862281474618194625529297431060881029164233335019658273709503832889617144497785963773428998104431542404166215421154641051782887608616909290475528924102243932548635977204971634181089623034048752207251595575603429629350905257938664124791997005481588609741768796025171101951104989380973151791843507948509917145460422822649071183137461449532947037468162512377199532848723253353339894437027833967199076099889008349334687830368771111261124564999635777251076800949001680662899022240587734129606160199071870821455699930955908365650974850446864164057105929556610441575284787383203959392397159101013186877141811471622459626856946054697428622474139309724213755407409392925248440285130001959311557553273174985609818605963517724475993531181531696912764459827163159489750869484700383106939866237349427583867075015885804526398674039242619882940141525302215646566812219658048635229152409435942455124131917425231432317772896172517331814077647592600979812703832813564321282392606208215982913453967904839543162126092468150184899404167984595609505117609711416691098580630192755083098365326001882097441390149909611592086348316967992967226081968881107759497921319515428128024688643876587318494096715502398363300846585099529754956997445357728802076752041966620364357381698344100404403365390512533764123273798319526522135426581418319393785011410259975116930417142263430991112579338842325152495771340505801029626092618631041071234876619475543362107678755630573281846096808219229404662734631375655012561401417522274540007670742220579416349464099693745998945610191688294692822045495581023695012709988955930421068810982142426121693130889778700072162221760629367503434299623033639736037120404516204778644155792335358636152454993883870716952186273156231700470851228940563409037974777528045833188123066301436595516204089696017265579175695736383239786052501047115530395144944208648408831208385880781964952893176252873207276267476210506641679981215873925195512688477653453996540637965649320815182641700269878027854301124105781637429986987063540036856912499480954058336787262930284204114211814379526911023775865127223081128006317344139232711916441627409829620133652350751776965609274406330763602473831587313425983897677322879108590453341042320012114920968227866264225653652970660208517792623305473477774958310877288157442446127969336209877450442538952421554419252984064816681967419171797705292575381116619841087767870397767973584475899321439914005816660523105817478705684951810594092323397775380848103143017430517681076306415579116762842864748657007993115326838250815654216659048611023143462426273216662233303590311384317499024024479524696919903314245941470187899387073021151831101500610752825679489378688637204014084779722458661578217597531468460170770968439316588111610892102322622988153087705452234754433063737844974582099871492269481199830138409495362011700685340018372726568888547583524945588369155881213819007193668533244435495907795774228253005236812852545378797011508270916193265091955791656345132523028687325860559755442737370030261093297473155993285611666201803768041848753382678390094450155171218631543519292717565668954148448101882732232304512153048000907351455600982335618088992458199481700027572841344436593369939003996943908904794010225105279391280220181861147557780240274967614551751603202724672636590640084224837116726135953371577547610895837300940544406758174980898962956334539349686036568676243804978811363369141869594059884494144868390624961841642449542797337706548067380275223052598880705632258310908559987597568893570381477242511657277065905979399530243677146878221010085170518597921624843694422892281713549808383782952253664519185023303326643540613757321887190473674494432973295604375668738618224357640050723894603837448535538011415493882647079546692624348407145548733527092477806062066813293874620243137291214455252309220653135507959733998339902860240118636509971183659963833398570142855236262289937147215928290778348747656662979924871019363084925022581350465769397960744263793906308039862002364577614373475460056039472238449328568618490838680360011739217060788661087847310988590348490570457082309214186298175000936081227177039094897276331097295676787971745339955000833228418411009016248309762352747265392616606794698049926548103192204928224428181846252437058417647698157327327370141667623910638549578504663925215125969105825698010895603988812083736741536324256990429116780091133838573337411774231175991265050008800640379672505634529429121467363763049180510366430918824837051459935353555954589555538941918353683597619822677290776670165646412184538155401226204054538978491729453430206234284952097259644126612245221459753816793075003613296556583405477199395194676097553220617732011162897339818140360929315593779125164199316889294973007281737060074533321853368146515950226983600729277480466938329800085918684332603601775520971793958604833420986722405065917013200695211299925989515479452068476259066230020288800513015854270721649483496528644363826277985932296645257303761208673751817060369564126939565716896320092410886748510724750348626053330796101314558514005954987626936644375066760358415175808463106813539691578699420167071165159791583283356986313538344475425897268652447668501797758789753971999334211546257586071865370423414632402109388087876142198545268575355864631845564125984170681039981166197374122318960885184756132024734713189940678647842335894395533264170612297486913539674930570621496771932706479975242348623029158621933621414918466888892870663089939907668396062681519361962891579219897855033439800582993208459674891761327734512326827548107657487799256050082795040544434558963007107120913838398090218532000442948956328522983330511012016505572876902172079197848889948694080408128722201696619944642821612952316825208421752004893190335013448964393820409446872362291031235192096169223406561892751059534181542752381767399707694148801890445432541005333272283385210098808007179290994650484697463902661139926301508171885110759639277694687208201809036357643797023151201928368233655937023372977330072467428510932461008820152278693064969797988385905673674673690838737451919729401331181022511526441057998116366762879133759603940599100063346026726224221495866458046643824409408990283154625609871409970084305639881749002336242492119388176259672912346264745689885994966593730907857487291248729337377284316952490527083142690822128564611708740427915718400059134297034625998358798268754946538898164822702451234662811558821477147121781203785663230904516904678271283083670855681973900092017740088865377765897652976217177484085289279286770155481070487820347973880516098432460045287659632739451678561919068379353913911438665203082349395093418656997419564417612991400136716293215196178194592465721407177189986703316498433505654921176277968644912268806616133674810571090496502951008617196543437056532368882632127307265567229468623519891526058557592618478250335218174909011149097940595804200230480054808531151680019094058079958042933753353135711546635717941214598233857107976087217057743827631633194606832443472533292964488784050325356570452236559434651546528991260951490490682215716129579192442285416190604398790183787612975169767608293642359969973911117640734179719712903809321545883193628933653605202126279070307191780662013921285533303810705051041710410892836208977452204036868479520331918415055084465133397617666707636957676251011671652940151971781446942014321185279792023229103224235270250465042761711803476114985539708342241363709789153262748508922388508910660183437774951610347822181374014038915732061616736409811179758582147096171673371895835863578694923199069874157801516042056120268912959953679519561380637066702674613627066050784812538395220697147750639847796244548144911795290847215104191813479719873348710885027322892881017371881322052201915343070593205229927241510962729596222081047613209089862347570138581163514506654294172763487607751320314379625376665432323605681184094207795456476684951765319910213026319770638898492952129812366839121539956657175045888732752443596647014603460971218208559529179796781844701542028486475934092010344934570349438598118694854361596075219567570159803273092788936471407819726054298833080211454734245876492475550805649236315578785590808066455728171598555305774168320863617640640328983002629491251600260727915860823753460765979964968544915962153529826067093066286118226513751141511382909907462227670901525974605708598978376867503610228686350232898869279719096271992862573421507525109683506403647846516258283011900808247193643348412136722492431058066531428310218850664619074238365525177712764034048815508232717911393464119704798788138826268636291457765656611201176684414270825873031266633836959979481148562290044739757143737711958320507580180275076009693953983952149746645428917436632805290751405989046698783830030018823223351149767134461272016345922635784781667859944057617125179386650273131166829042873957862668838658206463458908123757560072492180370052270903529674678773065134269999562259670743086482494844922863137050768321224808488910514078670073001494774617638862124893826873518264449131982159020916274202742134397752613546367942205453897119424090021427956840150672706953672280959507244214819422714175864474979774536402700266985972038415368088685528064953745986042147232368403156843602386346888909735723038292219842103766014008320897013090670415063993570136413852230150934292972218474868903795035813252451923818781603376388526761771711887658670044954508174099478168479269917256043033090767547887615972831309189899812830089406165341169966257753359403831862319144436146874596161272620291700055032344658541332120478790259143819753595714371004959988839932121342989141541826700140365112934755035742200926814004282534991568864125291131393823973152998425895660076780969842693187499526993253219907968343555523250855781964032007729770860398696502593536539943851432241807908417548860267179351523253937813425522087889242426072124033143656670789462504318000772925928718975263565821100634461935663036643023228484747039389811560435982710410424803680484573810879300787750336715934773468219874295078419648246327650425891749107419304031111172818092513967048083038764710850197629755824564179272982422309871984505047819109061175365470153889242737961273601753353942636146812396913492213442351627807882240645521674580984046470961540539992944020638468938076528077928117894317628919893469555388026492539572820775438784397990246150110510968851681596227606212546663032544250386832085797108085974682738396071860682523805288683694242616297045834533253087379913880425371243400573393511011391583034730121952497406057845171513067777100384950149914737838145023365119241155973375768277603111695264846773665403392355735743145978728325498427968161363405611684297370852554966382266435907188147314576724089772478876376256330026184312336326128260741600625840739920222212545728367233609362723326373772305068328279040197876266235009225714057578652382055865958255195028735229199479186570877685388826661083262300258941251107304771326764941589417416790565767353458588414462441051701504782476742807599343701909999925698796316418386563471100920339908113065625626906272728742261257579082989032086433626897035609724061373698848828160960906646474005026646849419925497117577493154295507145551992964164196800424847558663748569648888793180723939046097410329087436008149542916963564378122011501347122368848367465463820956772451673049616875689812409214052006678163111415790557227201475033754938495463082395720024562813002102558959644991607162814137086261043849899447091415543394872566962002944973981162733469258228952892372039776814530452495319234304667557500418898424285565221369859332710928084615522296950141514726329201317780099368184812508089549491833103186256663441349789374542251940602271115826118746117809596026579014460275980859468295169881764642846285547719784961241140772047973441820649048533026952937799232682570803732891024215526609600861640264956218917682562459626836646197317633221474748587387025481198269560795625901320175677314740303629525449391361520347422137766664777880921316152962126205964395159889150547898023672276197757424892851204434800817367482348214202722985798367753907701743237713370702308062036244797158323502650075321142975964020701776065779108165566748983370883163078580903579174078021803352825272406830296578091669912400162507629859637478718039022039499049142908125978626920265466305617203443270105256088463380117099814284203990187052812999101331954699160159200778988348814895792512351714644174304835633101977562966480423952480179576153454766910731244114771726730867887717653009748169321153844940032047984193038188048318294294306994395109102395391301795927411148388628109695004465765264240791777307467210095123712448611441044700334346436573354785500808963396505571986658994520815909306195132017881560864557820642692923514263981366133532424441684790440309594138258758925000422983253149989282926484978598292001113998184829244275309934179269125640049199352937950848139099412367769295428799375005151886656607689831147849172603755163518496123546344835429775044738298881183292084080778106329054983327554740850665583136570981647822611504088462354947408503773307218900127701675657524848537890790952975995210651076571423408576535983140813034589418835016495678770356680072013411019904615566087613234715996939438226234402795475897073533044487198642292605479755710567573298960295018314996895038445289959743193529907072690010319122636754377101035094577894284364275484092931083972168780737222431940579210022468935912626704634784493952783960377705598031544793856333443681669869387800345111908820743339613367453334785226638208853795904717661660138532205464669116379395176631059688549165680357447587448031938933095501434013679460971413872795314844391157358683038927286148763728013542832603803451497231999185505993943782133707875328979796671346083654897387475262542683233242516892915273383275402933351998863787496060937890035889191240394624396598910654355777157139714967855270740596431837086392322001822327819991387728384160830012679823478747225970098655646236939506923871708837892295821301071007594441938981875020389993116257703024320545216193922273689687137272726544427859629333065638850755649124246585697794519391340244296599702236075164398055218303926240795289762402714900071836791296518093085429771243766023280621820864178977550471445241574377683545401596680709592169842359136326304681169567704139596790138095674884582081267148437161054197469387049535298231720379584522521432886047905742035291882327532425993841558563360999821382848882951272944209450940812325404130770748987491889488969399960987224783330431234429060188808169493677392345531800087098849609654603160154740804300055057998368274025677448870601076264152338805736980644086530085759517435722706003099798780516885041377747993161117849961113234395887396256742524864765909180919397169082170464985896574687034575456912795798015954447521203377940339726444109757853965802137108098527503952481128027269353122145248241662730871076529657709408218802687265379908799061364740586315237136771205747416685926503536392818790575274495605746586070362962401215503445800431165402887664752548868648287726360957622581107744055697171325516065278516671132476532997178792857843782664667452469381336482609968980276223873358656999860654705426024536023382527438102060158414514449292575859277285535339571942395683815824915555135716972331305145317082814484326188955482589935173399948542755953591267143823444882563943830524443210374102806381420575224746921752780989414535870645269097141882944515803187232642789592916440307842947999742510523142312531902294371642618169429976550554559207341496212815009637257190553908331206421277049906851741107073869276443568817086573532071237271366704306749112182032302751650214399007298492920239799126952709008819095925721264411673384249249892017515249293473205969463696562857483701389404329392754928412090823457279602766331464618897093096510980090840213718460265098015122288278364381730843237751527524046248525639636165179689180944550223529975429617769249936776934074261835783829925177653673992373345965647473923736085450225332571752421087199165333232756421051961286201223192504611824957676503503907904044918733021687321798682181280868722884850147847895157586705005928048082406945624461745818397401686815295513114869976141271536827700786774072860094342429952963964942742818066307870147525335571203872725887017757273376756053794477285175379121153764141764817798791166440653266018123599747231072472663157625754147384322129852646488175578559922276488515092664948079332135213186519458335899964777456326189753099729628210537161604719855834303755216140057512348426993823078402960983986969815566665475995836296262119502964844700651981334830648184643821601804525255274775106688347249799182326789058809076618894777876438966517341588159878511245544576581487314905297715161853876040483660741888331471268946639272887356005483550190027843639304247814211177388473990390890353714061145969356520943554769790376790148376655080618559127874761995596577457972758731809782512891403475327414796300640021933509101660801266567657242369750320028335234108783479475798880421546846925705130256304383194645227245713445746662737751854832057655522904444670552944155440733059388306594857875849613069892235137898414458045523341389624547210114202043459917140918481033040270778218139023044682675037589767568457684744625597617137834205032973846221772023859128789705621967052059991914767374174401777357455843306082448041719130473099022886208612630026988630760018647949042089119060745704502349546848919141051998827591125594846777012852348081675293736400416129543606417564075925296769774317331097803713802685838798946414112232630300779000243237325348841657716319977975467075847801702473137630103504467393191408282315538980304791366554506919482366526439744503527911537479903067353873440692652780144740794767760132080719963794345646791839588237055959064991899970710950186659744995721478652441317655624983138669087233559101407866823735332590671597008132398849081940646982831075638280283612955991310957030661781620538750995362119224898944845458745437506041981184977248890449815072066983601869939341144945212655388550517646942997711821807608532291542913538328895472635864135180003383820266503438026033703646342654072959026502565187105500805217603274283361951767021732124704694605495292115098852401383444953124650727582320117760761096657877319302672443787105190026397123080260762471615935280184371506014771226901540717562309070284521547869294568607347536007712802120142686417925609904630851470450698100380921568975512972374473145803872549805451639181327220345612278634361910909964496757110685672595948415207722964128990250534086652012802974581938299704847422911038722058794915976802807161102559223796825878140162567521337820209795124006136520781672403151668407198141481297305512389867820115108403754935375250084033238609164929073101279718637025327498880546176192544233260890735594570338771280323031818203647981881150515435378950004137632350976276453163945688365482446877117333756624986344093542485362426675738545540455216853082725810639348367286453130288016763381537803276557799711074402975868147236935993521743021170398102641119757185398111905825422597442359161936006430818728090322638166054414296352323787115172906191619554101426261263650797130604473100736692609379038576817843693369647578001744052631581429652900058099093296200202527019659062842191350985417170674608427632187707440106406378967441473053041912491154298994665135031751045315509552628410703529673118850387515318624146752715723685926460399525346911132394858805721351107378641904063993994001065200512829595447363571969760104612258453701264777848410361865951939186681149314746590380650206262511716273909358659997771707381632133246865599702418628481271608795107732188684294561053492262825138743234916254092228264637962729128954171899899263916995933756528082311521498986212475014567042570223255558772297010611089435665546493955481046524232061584909534529998517717496381686598959246614052684434476319939926266040750361216576030200881925390736927362755327179394337048671718200835487687646580039335289624448317424744697034135984966516904453244488288157316370126403165349291603886607513290947969816052173443313626123042122136339775975931758010774624846392715845268676415815387854152932472414886256481171444600737297349228351964452490412965142582442950087066881637065029107112547977941309728905354166889339528528103032230497405329458018039527883437525599316591522516372744934074654990346871163713331202410449063383409536934652944985358351543681990336735133371102834085536163535796722120504583799722603225723005016133352441591006815663883695979421585108723183724169075365979064526661562332850299483087331386936219347852656634450304746820063429937567405308993472773185111683180850161783143736541454133604336872150971194676972713754234331211948100045843114227867090031260058631435362706297942842401785516116687570780967580753691530912047031603057632932089414263601153143899200590957214887704950823964971060681245022082744267443448966535933099669878670018101660832039960328997101736515157452891180021512333743153967444958395750275899797979525472019103573196779081695255701882824928773329257743863760994817003134915532550725783828933007127150368266623532166716895657357990709901265194614189011246722010256441602308480189819312749392035570616323806249182202890287782021247893711851612980987821999239068072681609056568314558388387914389099215845444996580493585119946902374004996627223425769737894199037822393781484372342960035199335895243206048389479059539018934291012856070398322103212792808829674454197449455074107336618595562288728652477698204591280020749921626886771560243733058035636096607306722898108560488047130399396009533613903235509255844908035046059893654416674877195512860890715621522899685528876196255546130694665444385648491920663456230054220806552849196453299108612897110613786865399493186030962888076987065276566470632878481668897215501900286429499267552300730742667544207042439546138172422856195481679958556655650978298246009823154692556990161186055317100711677790388652968166112999926146044095392416960073935986442592529475581360037016503413962806053708578438248094687652959776365182506623740698466921609767152843244932295982607300539781549169378527920478913405989275047625359494516435680120264321590291262815572799498800108970837228465159564925939013695395829542898071028043263868386782987020945385371409704043416392323814025838573823440495432643495622682774480884941249630383845874440118646369971555440087133366896758147439040609334814196695913537900339284672160466691555373756549930805640202333409927113469326400406760945698105978333983147696510172030407260871686258536821793758247558398825268142625400961760470610101601167402209251175273707335295105772463509391339429593280985035668622161970238144788731084361193093538304508265559271524750481168731070330830909563691088121744724354381180847114312622478555277190618378393589085886144479847825368866270247382804201235444148030775941285807189680744705246866475945702343735215203110519971115288330338335097227019196572328346191190241222581112131446997321981557020778734382757882821922849198980705200949482549932691260222289244599711509219811651683677568479012981621110562346056031505480763738385359193024679946245152697681388998033195875036638361118361277649384169482396665298528128456325904121115545018362239382027038666322164281321446774386559250588931324478481495533468460404097885161355272401046333730584156026191357262530722923729543724640374611175064934962601865654880827964976810120080364631578752012384217929253037281299179365896726894950712048146335285302487546711617244586107807943161305821368623848481347289824092461683357008077180940585880098692523783996793994712261310670231180137011187360511837545111928396273900697497819105671128615588467062793308370604889260107504124774685739607985425917049489829224313387744398355234036192162938179664990744114802623468044372747271429843472754544612623460311608149312806557884521053229287364744717096037420658405314773224504545810696313396025554893824824790556898566086509776715084680379460621648458492741301454252253397862457138093035235871537536429920775083542999033427126245620086015659354499091991458063326898966198218276943050814266877967920378097125243157523835610253533399205642526959034329392474062582354261424534810369706959431674614803178504603717350227400748026763114152766195532467593844741925213952542054533979885423233757249022712112154556312977626191831970777253280304490405526932501459365909058502310776968967010316983016478407511521163168349489728767702407757048739988978125402586961610149230252040375811310594983380905997093299067466627703094684406135664115453652255354896769470487222149752802074548819286238065408906219081845303543447809678762328920073458123786582028478284309725976222605177736159856768639003471010232857087769271296310270547759467493712469474854453514005257606880179574256887328932148761112027553468579804035605119487626174811892465825256831992600597308324246371938207699811519383266705338843813083116871968704401023646300769683375154827024423612229436850776060645523611915352493928425551487308558427563527483363854146193978682585432549547276818394921349456459777934157794220679653658763676828822844096781076706269128984626465401296230013199176224224503990673403675259509304523220511361406787263946953579519450682403209746451938476296572921428776369485024048292288618220265636475136620882569055412417836377310600282525754107934708381680969906631681256750248696917958873219734417695919703700398834776086333020114345702423537395580674795687059635471661722538246375888831464600581786251318979784769598070365019942277852144634334479626448483032111440113802543821664211546226634935597746028657795229128250382321575512572835447182937885025380057004492433122373327563160036765111119864070505022735964196062596120133948936491118508206453860595406183138633047987816755420589197552014617110050541319069919990983141436381863646551126000194664084044076300250998705431533926556745993761618934221167385811954940770566878270390760390230638682170720711609384781049566068451582417191342332126069358363670725523604770788889650377818666847024466629025512790922199669451890953874082687802666552618036216783528683776944162956899716468922424800294976744124823002021741808581616643603313157532284687566635639480756224628351607909064676800724049079466591322618391968080667229026407670038490183757388323815242883246019554829488423337932231888164836515359206038290042171144710677997830981698749565395103159858825304958080244581663719948954960234580708848092573418828941931022618179946070560802009007715193879379945260491928378636034496556258400615276788856316532882589194425189134939571569392696447593549815667454350085595479184182377312832839846069145637235451361098906574711874209610678050408823646236060625881577382740933938644731037340752446456794417980580188287978784629913603083288613924388623851680447266615897823766566953376231576868005736189046369384206966522814442222593256002621468813421486670572569233606988432704798286445239379194485062202292748171013909034927166495667765817388496813907999607721694100335466095396370080807941172286093781552089511307223549079160752588088498781696845865961886422452865639267540849751709731107642003705858140247737762070808042906961230928203595649847493727979866051762336558362506754162136770308759203953346048892833198447098187791569113853927874897583798074039486387374725059186543039699391579339048482648672092221435942622739590488792081749908724661360020052743780587612270598716410115487884467429848733149734315821962425677980417154764060605567879901163255455291187794518512950781636204599479437189118111006582774886549726407107214363650473571960652577656345880335001099097826845026260878199868269025720304033503535266085422169733943720389376322940463085571143986658772082514719270035050068192929440656413429170160042633361246249845802334521204623382869034688195580050322505014411966083302422329886986004040750872759196059168076893924260998780145872173304778287272851789417722895991801228181690751494311240583710104819542127540016196235525957654592312792644027139826937900641617375819711295571964432496863342400340172897472311817294400879657920921019941227241943840718912018460038473717212827245020628756504449370235766414538301913884645368601111458847940280225370275664257763813205488684110219244069285968454402670075761810350839898613159695844585213942714859621986142812436673910159250002016953984829481951187198813578790767594688195490110687147789388097958918323434288520721350407069525758823108421067459572627989520375481860594798936137142668668133738723614757289109756081161352070541415772722641499908817059903218375356236595746275339831549292295954107258345851075610703584035370887368360649905236563630425358274137554287764501109330200376873247197116983287037495493745671569798760772844873160998370274335044044564396809741587937576373121243060387837026625105707596355958730297498068238714686367832166882497713312729374858380631032318641488772856150419624868874475496985680688366248069733060667884917448935687632302795052542623691447065288920000749147035302263178195375089149213364296692336877415392022424207330277292408188704586380473896252090281956396634810561222182042272193704505280169621984600828281758054672417239757004708414405714502670049818274870787089619329089591606796244653436324805706388439611054180604202642700626574831692086496221507708800152561937058916753556240419546861483835691111869192155175520253299705974143905608890913680049743227232250813561465056837216838017696079164421169143110557709244995175908881331812231242425887045709555430783256067255650647956328406342464881735656243289736051584420865156833218968850357617109555734606558496999877759094439295438364736167626419785488095336118338044054870694280509416385815835268023488262847469253434941415569400141596801568881823417096739433049525733289644420690161388645882819991092738079450396739583424233684458577616671622410134353876437597288726703989978056107245306913531426145751592902933220232779079780558554479366594853471226916132552899860625180025953263077171582943124561534181912956857361801897415355746725539034398154061654117354499344766210828324598560766499520209230822455438878161261607531168589526789611812782128717678738540240106477628620348012971762449011535657999781232490830818640477305202040768708862801046391737682435888056841298681581750381382943149702259156961337514189656304662288359634258483040108275511640402124129882080985795445157345659059306475950279646619087919864616432061668026964622172162682758415724935347182225595051313264749326948267397195697826096904242697195687620191969727902675059460980292845365846639650470792293494513553084393312425167746918521503340911001867928369365848756859199341990866026493131961160056921062412309420618192656809857237583907156937177681921491166999712983029011268634264674450039644055199737832693721560852664029753748149921415857411672244036695217183553298114794110115694321703513688303259834254534502976560640124499268371242828403533201040104152647577126603282096202259432689494735304404002467357653667973893868212742035096993146340740394383452272357205118671701974340063285867350707013183539935914223667055407254840530705475762334602148494271414556712136289618121629221270529962815937564604623529928038934010432506948089641336456509979888067929946386488147165847041742979562049197545947009108514914714475213764176734354962023997106948046262056728331545994246570122349894116798565149909053075889908442316085375264904131577300613432246291355590651396296073288472949130318547121913697178244178831774171495481242070315022396059753748684244223597077158479982560264027898182025290923533803100597138016952011824800156169834572320611594525868312307909562144827508964857288790905493535191050901579275035267417049047361020893937537236393404515952135521666616464958631530921591527609279195889015103631304937783383976490966696964883179271444438694137483352255296355589681160256370804621768432430475646973789182838154546251836222053493556379431649271419447004115231649140120276449790218099655235262540676338670956252884380021712012861926694599604632673913610567530205637170171055722035991907554670208335469131563211052642587960982126796075800338658555664333556558171412137937760275672696403550649613938570698370356945514356566407191512747027497184957898781265624559423620706712282644346701277946845173483906381568221339518135576109798146617596505457125488387565902549179784678883704285154902578108999134672222997513500846952632536830278068075731150850272102878617196027768180061055280065489136075554321156511579202816059508131274535812134275967791083967990235138548558105219033297445574106617665687059640037003499847569717722231981518588293784708293993737292910577491891593019543628713127810147444770063132098538434368535811412717793601179855893829526171141280172523026417124887214300407451950478068491946767226891456700656309456791807370458195587390388831184756081862555878258163309850787756379823303109706928929212802947036160557738976048560300934301783197259699491372263154320590598739227364445750272975030864745589796308204600852965579579921664000868597410682612263381349339446979462251430071782267488431264711508840336958482462003194987911026350848057344581293223948975796295996900280754625496543142588489035695453800351152671577169232936929591241288322079310842221867958669378710456856034365293932355952131656504706547961561523695475491389393789874762531165380248942199859246065754799436887702566122278350650869597059943850746107774997412996651444005812059878978734631598103344152983405059350568686689863928232070804034490221898182958767970798813661970039094145341239097666864967241041635912992179191419774427614827734503394682851217283580738955530080348094343582609372263424536872485244449245323271606990134460330542659801297724717255618956775063969150783158790946332006939344962040596551941080834663527726747126406011544806330911806096366922164106640578712562238512234398979371100266913277493757932915293016633027105282695331910270784869463893731486833819082450941315621206111252689831485480653269355109063867567202495279047094907141257462496817335852862920382358876668145831530603078715017070214427739544072179246333682139126377524756030366161583700283060737920567590932085130287551942575183489866873441476816198976174852774555662950518649872797216137350467351568990147424120715597748989225702334446038262193716518311405327299262779086850131763874725942412689330744282644249593640096005950536822200104848891240663805169589300233924167364910944177648454064312996707008914811660620380042882042842175536434698427098429968198575715797587931840789678650948656308284215773137940790179788057234967232340354968409779456392376154813478977294125302542204082433554022803222378467470555357409618593785730101483476468030745565322499135159013019224664539060760996544287188473084171165637770493839903188997766708955056366408604271156983192571572374564719127698137569299664382854728513631506299481439783759685039412104496007725507138518993074981089014727753218227578674070396119676144943763920086208231538710772517753958479811697003477071624169844206519243602340917085896840350153627407808103505860136880729388807082602912181806035162625794632229831216969467238305139257206748580287088461568373856031519199824509986973487578915768563672215239279811070107983258947783853482969691879187222960879870463120670321855559450513151841978059257008149271655165562937459438930027729345356363619257477523266594665820876534686742358516796336934250530580313925266905158058369018298150370963046964836503987882777991778275368613612323643908872281961556032547181353523562524225450111107541220254380331097076538983129406413509710547901874588483662905151165673319272159643045638040015318227193253561652236706973564972200711040580558458120452255495480778947168362609338095834428524921756343805663360786498489123914595007271194954136017545845920999095028294072063513635977063571806241655245028273881947327096721214333565689472319250140626683071731699416746146692302354798485016224042663555909774351253181385814617909849360835251681276756862555958307237861900556427938707365724588580082056399154707140733927231394161230719209805413711177876253616247113001465663013810837217611814655072094471622568088441540999469616158434847580819229671145320408382010002616965231504047754860439217697883188326647550368942062668754744994811510230825248328144369297849602273350996369023714960529650064772668963489620456281255169991200290141213614505970284785033225064375145895051627366420580778750297487841626889977883871447391648039564550103079943055180870311765622975086467627413273622718254366133214377412547864512072992331660051971222409972957962203274930127197085503345620409392069013755294724423844721909680231989371060352707892635648132101972233408741006373827717564066221877562330943199894994273231372066430464098435798059998156207874670983495307072330057396693687019838322100708823088334348295236952947642150775047371695050993174117993484275884686443405684171867561796618166461242959702638428487119531602471552416487878316811545524296646887020961679152209780222318434460765429071936514283475066626971025891173959617755760783331966876435424939718840811295977669008580198040822575196524054068735538551824276329488460250657075751058026154490441978573253836361826174400677397061509209656304290116701568646608902457630280929284135054863528631466915897531316604006365660103907860819313804352488833083693169687395319620183092829133842917199870119784006366720056558439900441735877607813778450311992696039134891741050664313863364594029820996897613641720479263579508634121465068242834184907923960751029513537212352306917618415370761208144315719230565241268317938708701005474993263025132376853973099813347961981971338189526851125038591551414360007480182644351311894154191350981885092767929568084907498812923232058394423454408390960644461029859560308886076155051057082139626365457144139737736471737695819693759858328157325448940257747995715356230027017952207958597088356372525411692566689081174606447192654652140593689119334624149003709698225193713728846275232546340343864162859527563912824039460040911072146472951123471226313249080270632310150288597435446888479537481900896723433214325905930323906473109791784191529469712742637621283124985821481228058063526513941337322733463778563926925155757355849518500349781689144001232998731063575530714101465168662771967399450846715140705032023589566421489885032840373177249736963421529808309814787515252701499531833777972460854090654010253348913669539218397345045167570695086178379993537295018273626188186859349018732545523324537941341509080553730548650285949014249242417013702168152885350230515051681818248990748110036201744943677882712904498678165926668504245126500494004192496382492732942390252408833665708339283163170247110005709335430371177106047502486446112941689853398885949643610913184240720537548322490659798744964809040144285385995534661150259619176919188246538639846641026016030279599815958014460902261961536637089432938016359664663267814753156149963819552395034796288300192818722778065680330736085381926624975412878732394429796785083494754381830549701645728888288487046531252001828973752158301584729748040450226003842793336199167597178025934965376969331293409520199665297586027233963590100428760728682930844634309505433680924760296964025092400990823777595926267902233155860719518002423114561508540228191131256088487942345913915235809325291685651554813352649066486964351568512764467590873628126119393364662598712199345502860328203787301436335975502211418564748908934242512736564988011712382794602351257997482827134925196375244162061942662205483172353313025451146327319855701941756519490409470748027306861967477275560320433022024820300432295547877640239448239756119295237223355269840350444258668181640180238425139065321740376722729985841309918999067040835654470833072632186840517095985712702135855699780418533406924042118384066530531412686753237024371583707653672079186828768209726294559559462560964319142503245597869269425043468786993430571024159258054422549875555044593845865847523437732820847882617195498242659876972476304401666703427541614798375258616327481849435628010856476224635957725366548490073496374471533351064466179813311806434990128005297904353366117603528211987207169345143322287998860725503460593332712242354970524669325748146080095870457777491320222334684028543657695674440806386957793716365870097484070443593426069356392901020994386158968893080673698835037151301286606578020584344208823585176384686776122818137233428432240345151555817449087548209982889675166257621706351194867366608379328236254215833916602775008484259515717427123476459944073951254593938817441926846282078487412051427323562037029803583743247724979603163406656912242607897931601961520514222779410066593053159007200915291542391869345396822006014353294209534991321591766776377091537421853811745025430436630940229045217307678187004449135876916843305888271618705459174456135908116591151528015150778097061392939823982460785280204501423931139508762853361045641617724212412580256539785552469326134460387463027966405760186233634329055198161185203703778529449257306002988402673016993033676152585262761580703765754254658183635154942603797943127129043288601023980606241942944422761348842337498268463640217799085707250413239855515798796077472665374957507482706502151505030366460358177600054673198760837537548018543744415583999272771541174940347254641725182878606245468888293193332167525787277471379793555511375190776169578020691758356855301799602616550155606867004846381051010416669444585658520281375662729858302742187432451818656797320457195162505742604940947701907000511323157444999142879674261154653523939113525199503555161422389554229957255367798481260790538374533255590614462101928686541936199135255682884588856129858028814474774473066475252726502075468258826419827843432544474804355880290995191807834980497555655897344860657610385722101010427329900429331514483049844664015255133473974144234274048158356465541466392374902276375517750742527758524091617721352218276719750968768212414641287799076420837110803495684371002069041627163478335205368860178197821047915024290705023209825955216013329241754030726608743570280216708044527241836352868128645313197971151680731590832497779840626952588270497939376617660953240826274891958913618365900171317683949588243065028721552032299158435859460789256120389017526052859773154946463810864968402095859768472195828979941011763632738467801208566403415736154770879092778608382727395346210614006186965804732306724022362450739662611633142110778532835400951098473454588440361053477170686062417762171692059081141318790404401983411607249714919692191325580613959043189778604497043560364229592213206826593944540827253298672030386044963843636830613418867562198704137058331853449844309972658201962194783271854800097589386277736942441901044257941194934930114756139812430249067625985879782888757248419700765379086495897058978392561360218600755567058148517494285043541587268431295108939211180326223657294611192392317276861515337500252767591066918982382461183832662334540796562522588021295850504101191058630293630551833889728617471296125442495854094175123637934785478197135252278622956755758788709456930680216959417253332319734480898187085971196555674349313916440509944485738108788192064851834749615262502121184473091922858889185256944118556451595873958293409398332066020437886679923146231210225314228159770835895018158791830107457490598156454578449628067810901740884697296144936698228750299687397633520073598535676962015770773291208634326843146884060007202249090844446675641897378712585522411928327869833999164683401939455688007839769889981340875656972752906845556239417361218254188531042561802100732604723784337888985323529703562787449824789573100854136087666130542236885226967915002906188687882937830790480650942706350141936175016648448004371058365160972725460186083416830032219504307061438274245831381041122822305064748907038365680027932044695503603584824479817861455144354178932915425968743087434379203109632579226845584051506908835770836356437974812322601887565072873990588359014276621102711374041085661052057046593049551499051061264665183520013508271446853785722642204457223031485484290343535973866388071277366266185769766171832882706160114558788923934414304649667804980860472289303131470706436820914702442756072751562446894524151889082053720024323895009171236112075555449623350229373964110263272493218313981598161037076826559194267954431418155501830049411043341788599323694859682431663195863668531184375980882453946140665682141646693604754239047218020766747637799174195770440992319077820124634519593307156904096160646924608233299105066888480057613254495912505102198719425697763160795395531927847126110415877672921536404712841808713761179421208634155980747489321664716564109758191523933994515292857088168770596101572846858488782899299470956753895579848309271426013236741334374379036252324716269938141983163005610802854698240576300991322337485291036069392206850080381533061254563596169644264301411227431847235619546408619874664812437255783731250830036560883768338767498494090508457382372907101903009035736748145177867006998955438004147560948708984987495841242367258626904835637382235895833615393024360219618826411511654418959367837931050837932279416208094980106657180435092353218952865394733740091907632655114685743997543737971931928764496775547956328547798328494529360938948171664483861128483555667075423112291622787261444578852819583467605997659125738837735883075366773308263116826383330101797777240187230541128395621717641251066933889376216801203716366304950186537244000692955807604841952698361716180815043672624638308022058170046711615694750977563832686226580503833085953529588501273759322784725523020275082331250523986431961273483826416489464697285407215673014378984157265238036542918455839572433811062832652274690781525879401849110279423946601313525994673978842839587473404435276910185546049198385839975810815084173934569356459538782049236813449025236154893403277164200974555503256113471356707049704240201667988217785898040258872790715130652053489152884451683770730739481922074516439152787899684500199694888528257947433459464943574642251353169481436100216302182399644645433360907777452672687568366533471416993679083224227529658707056654489560523862223299521034922639839615205460690208662110960004128082379598412684698669618117849091449126184879727288884635848451767126799973167503610555290988816586502453435130678587155388183811482101028846406466820804714792522734785319420160759926453429467111440600776087427881970117692622156281637159647815525755009070685151705521453383918878539136806867507055264401573987414245803670741425509765231402288840242836953447184746017840439921896043777275665071568293756857896676257054073207615528503027675670735069851990251720746527842490830982443584165822513327126377157291447070392924061664764018701600410307408748208143970165868757114971015529236673748679258598121041535893853006916578187649943231150062267735913894190201000810032027970504227039357617165112143230594423709140495813281182023939437320229347615385119629224352416531757865877283934881768726627596300208894026342838898466874595858957606754321429738772351844951048943729014770395077200809461700798877927953315272208291930598837914009165438016398242285229911602483397617535559350245441451983569479257938267806945388539392030664681831952530981592055525254376381296652601384365776070118544258052850051602736515402227346166099682042126574904240067231426313164250181432760524205523552700906111712156995548013956549680575815381742934763430810683134697810071925383987442172626705089421121649641624141704305347485709064660431186491145534866911441042437302325040749197034235009255568067654859212123015289306588507410701500299420163887245531665899480121906609339702036431266184598292184498409594097125102652168175515725512531121368702488909011249625044937208478185428502588531128424846223388998621875057847194753460436752259190231551963413811706034442501622048880232678348507817812371435376633270704505173635653331717254654712617002478700294649253831357010908457813136970571514814982956979138624677256071878692518617869031004009876089806484104468470523610086770711687763775188543528898197100114858503734383291595341079564839318777749899696400768832081379433235800239845783592522689165935512452606546910888646517456915546659376165200904950235438775680321589495796204617065853516721814411930640625185248650692085446090271528890648402449457025750132239747886660781909599820218198085082037652288188898914352273212824286152991291394897017572793500815082089117291372430551715927174291659900358126533267173212294568734950163095634633552359997436161232283111658619287132152476154648101449856283121447032394374311702944127670556795169395739566160998819705328758231054111208233337217467179284415776628548561988594565996067165645117641701141535157258780455181738281092332991959258763053808179415342054343982945104935539550223610046730637117162504776897049688347090491220073001451383049516460955485844938980719920671387266428903078020280404983686553258587680868446767283308687216357990787535546176603118825756784756016651630225202841005492186857441017234549104639380190609692624821976716949710670911213098325330013251341979857236739981285862196874130233303647007355386279048528109839496633421189734446771406168191992551062993736433430310891424749529706385595556369242391237479951607018292022388291181539559043936141672692946457205557735450332371296042620123852472541217413436037972280692171863003963495191955703206048778494415620635025901968576827030213567577421406163556196835803863895537620074010195219805358728112701402748899412016802596730474116958416787358371513089861919229997950767102566446557924528184194894856365216142768292129612028454616494476166175044989410745002986544619703459641029481217400956281036042151152875785744314696639096336821398660098022590490556071417650560053248672864804485245077974984280484569719386734664372391429473417483318781296259413542395772081161003037791452350314620826524725361449411452262464462113187566083110176679609968781212036332144143383051640574723201999588855838262120298542638093069047700450058092231740059119706480715258471126366594072454140507674366227233558344925413085147821303866548251272704018307414513363165701558696931275479034721694403576685031849389726576841353851901595552462469099322366347158370203719153342300787861259403052143866754298497899889754797025242191370667812888775457879023951875856945916174681339032920164041390468200822609984612283555696902571510966236335887642387164543560985027549457703285953809132020963793138083273858768125515516412130308558720351854528214570314713016417335813922162652007115114863186777164537686047206443802765882322103077216865122862343250056326932405886827470001236945090614619762111228329755818137448688344970271767432213506313160593512611079811746676671078492211818376120606745837410801915610350759706581469853015021929799967510919847937389569364252410587346452294153100045957532172760080728781546791986711702073700100011755898334457809921658469272206632283232005214835808043206340187514138132584799944366368481379516231826968718677110889421986264659397369249858334947192794188841355269554523619994541831723874712089489206854197954515093627241083682257978718572201528705535028194842342245094047663739468327095719236698811378352187155903299775261987635777293818881640373320180817089071283746458754177348891523060369289160836341032167769967071306363240870862386567252459804068974045603460721886489873653708165568406768682093815725353428492005306771918584525586303047180753918153554555007498871889034165801116951088703568354870566796937421362859311954556504641280108261892895136359742815304414768606810804257578368125941772138843325738027086348576394121824894287197759869902162399562888743682961335428354140099317929274223747953045975233813189281863824456196321083530554203728984880707025073333946527099007141213810654997532908474766441975981835006675642863446958672503676437613613984296397259168034194562964082247664780940437966446822216060413704248132386624217654741453889004257783119854405601545020134687499333314400673134638269847183779288275666518630945138461203325305209954537658016381476177096811968650551968001829961240282246720751991366326690085128991026519518234159776471961369319660297694031960094207505510154951028461370182664412711648829916610776976983843425996307351910977973842605005494466388180124180647237051453107674885464932188615915435150143875256030741979957780052323660143604559526099317734086088934397051089365168536434215891194719251890014943928557686377903000390294813466300223146837690534115254191234444967888556858649438629662741434494916521824962201612219647883176609595988617586216449305304488426774097719415929195082421836952764247476735503017684885673358932013476400155170312488358022110779381867725681014715071192289835011442487648236588677203204565589052374073277224991258988913094509137270163871904351385664319514064709955080743894580702576577500251502718451166738184938946624915834548996458826477174483616998363740249399643744313927596765465630025920949118826432244757887454293462608501028088132355610083597048242414424287034624210778225206335848174928188140595440207315660072546387374624317357103666389119879776692834002926214506897214610701882669006212206492593407733044448124122341012813080524452761682415878139984000820927508654383280050677135097351167984808487729739722266070250838443223595964982365405959902556702398697678279561728205874444178099289741205348295409906168159614530685595022781969882144465386962873990372845318961229770890692076680607915414748967711687291471151822721672266222246784307105725730179625588138203872853967877398932397689300051850358156116390441522991331050002181644803820862367804408446821248683030820626682289478516689640274571308795269113656938796838459104514990390317176829291686468274245530417736763282379851960661082131279737206967744309865256302023554949636363868362363561822051079112088651535623567235164957711688491736625350746580806013175036349948700400438241491872065748157023475008789457395509836167520636785715002914556687729977674029846355109498440788729115582487632650514791532855540012546843106820505454530640771797977531986110142259703592222456589347377571464785412109623132668776925657429967455802021238572996894949917763951239776994542731349148800992471756069212806669857722926309955321112332939653258180849322376178841728252268961377150611195490769788121373064660377631337103799838977735887357136570753383685415910525056353633601903183103022353127362263646433696804037234120309983585388937486041950275189035071375752598471240740422795619191366897439406029845272409960044005590004920263566189124464006145346784615499827765193169988070822720035618845902554514392355429640852474871681810082680201068641663447447465702693266123121446271473574756741081359783537787957811157387657554581274480778645609169937139046719764093905614201137312922770155100741105945234131121063384529814443537085724862442380702960434560789137753792200927521476908084522951194692717711359950708839639770734897877727593161017209508423145952796420801119210453267598944637277582993261992779975153373333587247833721800953029391170980739165494624220979459417353287945616403588608866602859153187468499747605748338404268031341869472740431951094229155585597184415945312817593837404540650045760714318969690747085636929330296494566838952554662973481780456650868625832722980013195904239218883848179176222264735371527387993373518084047760272598000274728375522828207876930405448087672429133802939824538997069640828681462522701580812088534490304712324170269622251661857797904727366157984329084787430844041971249809000140009737182940103673131728792128755389300010196154853386030536040506098962687787365061833753530675402378333452696682543750418092233442230038635685865404045010113074661600901427828648987900565440373521795171641433763666277118164660781228815287958945307895747492520584451573724197546767478599815805634330250681398428879190706614832928599864610324258044105332428005058379504877027006664811510713900516299501497865840771227320787167367491672085135709341963520704460073248686824159460554767213966378162366735163566235289029022867681886026267481994730908039652978594606133870598338915340634837996460464371932623796591214406394379694215456400811393003276690358681479737251866666502403898518075343077703332687926880680011596406690160711448454360524402079929873173431914154759563030797739251512466532570099546171378717884045156384382322212339735791442315963678432715244847382012034375555462953124011937170782621782860408413954105833007800164370338360991748343321237876951659528962036693664424491699119565362123091238022551942714786627778675973465486573640029962754292588620267970335176870187631827427831557557681101387791291157601185136257041679050230708212660096942027604809526205918718938312415395325246315760999298810949284792705343467440120230507449585761930252439064873303760621909736514245958979512857457872523475198460025029651922371272851601306639687754406066021592084352009510994618853541714667458066303220160477303383183310925662863559605239674533262664433732074844083161267585815920701722427162657010201933078531208791062046937824278062893620789050987125369586942551615151875930199965426636858945412949080899871351480414378917197303617993630847382496113462866508074851709293986194296887940844362639164584018550032377775657088497200184858844769042957194292189928726239788319660575240955856083534332814537436536306190934896249789132815115082418822078916057598728520875937857204357083003988487473944402361492765949242157433093415673136187685617993080110284633824768410974046047604944982053230461430625468384355856478168942780883811885373509253314679127176357964209914887411477809566859223586143776220769869183551938596819048775368224200141141809684161007803311085532741778042436477238921359940090156732541649547406138351178320417110688056820260336802218339907999178847763016135414422936243517174237088592956132328516708426562866565199380330000888914895554876736005554980622072066629069211760749551968693906177092362924649092743636050096856203881523345277474752889937214806178862374571964896080238647195057500064236452795043959023839406428569942475528585913367355508094088908385309012807739196516109093342739831227329631951743159800561982877045967432527974948538332319992475870099197830889844272328618970047944695363519479039215146532315537145659609310079520968819602010367345612744051620113466459966602702172277552581307109004164422928056260225997250344724290527812800025437800950918936599638862294648136551251128687506840070545037400519497311397399426926064889256631126974363727575885624209809486540346154026466348627229044350579010292465684553978226608862170751534130407365340101703757206935985126274680694156625191058770178795935389582862531893083020469137586823736385035651522552009987463764421264814196245713161254428359866155828571753246047802186510430279549857174484457348614071591582037949366752018799903491407638283538929848357083415100260780048328367911709555208273607825361992451400827827317319115240073431958882201235540665562335974579420823272381484423688598930719239761368971176832558049189103465355488469787925651031108812342628225260243976442252751499539313074817493111021915973807722275692895177242342315681834896390628685805932788703697076786591805669751272871800312685923212395530643670835189009910963426817816832067505569998706746318077559450869368060109126423345801526169838186427845415544520218453232907384242168877295508893891843160930615804689334077234481860048765847340104727465328656902299543220280706225198583233360600900986986385013528048008525206634887522836132964177561489491080547457853977714196279114690208860740230611768927054796760873645121588526921812929391522211378955275248497953458157448440695324018735747504244292605510465855559480542494003437645909890280645523315224606679608986993453936733811071285216953182970134840407753058089304004564744975784568431223693412524624047834713473582640223943472706238217612826852434513950818456465951546408629220311368143911660681986340055758763311799111704373908834180233956610666699123113247040591349785591220124211616305656407773652178769135959593720194108033004836096373858146952875425094584846107082075396099849070535374905278668186880766563388437778269616356473398786198912837212275105626808798680479029535518704243273378433587286106854786854322433679088058097282243420328871015765868198655497268140770488446626661321066784826796704697739112099194500118713339967999076294018126551681458443935711661299834691563906569715334129276311149913165842046920879740561938813025017875098098474386317130508861953242118073661054954779731882081899699168711539925036869333780822361021355798630064723703260298203476572310730230407520817647412574476871567576264956782865282245067895322493259132543463258604596468003602007633851180906764979422763882532164578075517532735834796502028415544294411610384480853107917646644261031507952360127243697609194755605502910021577308154016616579563347761456494870028176060275254090626739190604630635838338503432825323350753735740482580973168791272961436255707434476991298184723985435612015171639333357029114472967886651765564091301495618908191914667881512968823835137012186898692436613398628077058634177263562650348005730385329210664272088827926391986060956645596237375067496111913339983003801743309412305050284978453713378573385742483388148261013729410587096813020501716437023338896146281947411050780606955064102801781888644589158211101659177163830768569044208849838251443001151263101350998574715785746565734310314533322195622723671468084277022904960166806242353832453923477212036210856952244073316310634166828786689260997691295027333426939710925716497882818024793744517156119567312443216381046887102065341858966501487848441210744701740857331675831156732639953577785204543863305097400169265352372500442636707323983349140307097666179930302514942987157137221941207209052801600924541673224663999237347077321608330019672037208724243218133299832682438691254136146502074099693182696436224036684732142748177824351035242384861429737741444638433006437596772732004260403355148572315898715212482321160820147863245436790161678580348080627990675614009511128087387920322867674062894388564183665513984564622503954065469590549176458516124220377991592654287315081474955533109601357451760188383946787451787881990422456422040722870072329294196176397878085496063107590993552406876559634835422320588707785216226880640575627991501271925583620399711451832548027178208407640557467038438444492113209336112359834633623892082936971533802430946722551570717682851105433562376370164139011896812828425447398064772392713597326811102933420627156925123137514224237628192573843397077449025319838406893526478645245332301338755981154609470314796231374853459658701364216367953609183229027478656676539787608039375985209875715908576084626298197921218490131492449518158720858895385468164876210827012740134019695932701233144834609395115329171215097606978125061041728063488620545471069238296494732223181743504708137092200374714451088732533743524346879608779498232015032282461549768223314964688051310343108838632595968721175872676406589145660049221215928223474060987553969475814912766180975402802001291387493317737152300945871487569671210284602800127999673902690983135375078775940594015389131726807025428723583804907201170365914208973584154186724982108618254748348364904013560529640197546193023638477315341671195265232290937502012602834487239923655212486745503682334312486094568711983178533566594091484014896821975763935755882354750871564630999964166988501358985745514369838234995993396956874759102919429211244679317875928267397584621240732336433373998514064284343120556142737029515287379717432308292247091987605689439805194726325569014056396574265153280785497434670186554831754861531786859137794085466795301476408434500141269350091380297795996695139920503493526105782080501083270758078546964614069761306083518113602233235986902682531485970403405811706781304900108946355200027742860400162820624221890160904789502656582511926955163606746905252739076671266444638754177112110541451741523922830226500608578619861245100978755692484628579755969064227680077832179161693132725225906738257726535159506275608134018706134533473535727734004205705812929203582345754647894770843008425908245482920259206335542136597319945321193614589736206912510921587414390680165419232948931433681406500722097528605473552897807234409988109734608613436114640929561209064281492721895705306313451308836542823392195311593531494358318383571109439901989313625481518423395887874207885286499764430491058890778757488669437259045582418951120097392247652684797373116840156479166853808547069053122060838356670462793519066157919629799296021912724130712665642913274764626991310896786879176983590016625484476404723272622980390779797561526414993779460437895334545327934489879548045090321553389225674018558348288195522293654190297321421963686170847466543809380342827371138175706108712595826176980169125523970504449335266951984939080352525292263354965440859790745208299728386612932604861406509916749189151091720642158485681269889676099489808935866149478967692660270307045607476689682359748263662064893858403374627368309159673681114850902564480177781117743674020279928664243089169687136656970603115447039225630691616912551759960970508841319588412009461344756452036341695590199302616521962914225861594343432098605284506533617005959967976334001428615553197894680047827157590040740099033105624434585864131288136009511718666622723477725534323283062676767495211242163760206164712276290712833876154955624105740606961633889970886318219868952657378374311355102890481999994371048063037950177154246525649086957391520881925554373077648725383122637128280483191285050766123424161291159804183501258736082215058640248733590479178692639578929601493811862326776208566300460287478167750687833858173612549991091928355283349426214628667190405439525786814195895317901711490315134528890440326511829496385398265335680654462054437380888918737934059208011871110027277342503144714456802751982281589214235632969682651061981723200353530389423399253570825504481084695543501969231442621403398455799656294796404607753109770638184110119708924093342512464875617029664972927655594551031628907685260991406870778892749980180469499082053092478834212717078016638612968051841492338313803382275860617949044772375541854053989427148862414650103368904806501435258680005868108080739787330777388151082083281778253373903765357447376835184249261391504306961788669369032160985709774962970756299899080038090511146572837434634661218998205558338258502723603897254159146076918013486095312338484416155199660863277085529648202127610224344590136991945434469760630171027546218957174900205967361569721236123641955726267036493892020434048191566038320271059422189877955941694022017140338203695495798904389424223018051161468032492884767027278893196068226631192849618772809101106711380225566148354240528357950521901367988940844995576779044408478782720558573123235595688132955075216884427119814548688174782628547666566003195211666021634584239139023459674953077543901137525124238268487634220251727932726876356901437120270740821122621936283648060583652210049843700584549321750500460128947585658044236190703695805881024390066008285473403999792381688339095733752471209053274105698129643424261625297096089201090020890081359002464350890356268185954981589897803369926323217712795814592388962689339949038824621058932322047905650979496152332449694156567252930538941549657624616435182789285619925508353846202483020447991681094300494436294187827428130493902212588782154860548253262743171752114974757662305381986721725170116459609820268926538249818579913679083822569419757356350159465587361958789383403312382397001299327607263802467225027941125187533812914073362384922105194936458513025666146353968805792308030830807623527549206953042331598364836468166429583910652619811611328694119111499622291358669539378221693852716066183884663827983559927703764350621627032871741500913097275194436614988279454986307141115604645386759454546565463913291030662652294035828892444643833681625414029707275371176304555982551111546974889790640989181718831434093444416716387020281048892586295985817437152748068532396135548409015898082734645986927522492855003560984445320606095330702503401046978952818014339019075988330920426975272812889964367815946637442796762095229287583300868125680853783747126861737391403128492595624947655478514931105361316060182180978585550231992383547330031796727721428691104674723763439863117033697738605093857032969035859689111272334697803554103592810504135294382300352478419144382736741443702615775594226811053044702333179224676021311298986387256997910053053909817985904284192112357193085387548222929394346207992988695256959899263827106593851039483853823323309840504960639658066444686799495240553140268723751463664147274451370892275921598557767694494398284600336058609054648196342688049849537335741553722277052030401119813672464988316395688475849460995319629625984367019333134098469372368878406799775204210202514517455927949891013755948318474810156169325123709425674991115352467620698968607422381688132643807893868507572606686902824091475653748415108840002265778281910373441285436663260963160519078828664044514078093969507333382528375492023906522087164496700042545473374059691155195080551052556488911220073453885663415790531612524415578944832503228291059685668695097511504591149920139571916931958224707948715762939254972937862988848892488223736041986228766104402428905893668939688490837366288340355250224190113910582869980528196636902048447104878024233227404123174371565140997587831234695302166191874507913672830056022602163872878910351182473021326953911717693984176844084423564723241091250497452840331621766219234473991609465907701741185252492933350596206015968169443701867601548386888937009504991163540764347039535295334219336153402230099711079888148334271259083406686649010671963943954994793784377537658878523715720094697397442069431317900067841586944544829304298818770489050259865759841660585091932541155888015988333492477904098689941415445031924830324418899396948640073307396588599873588527719062453584421576648335551360999759348701214656282782917185840342982068917685792051603144582335306281509878096460231587470239296463181240935696926391215754078517171095752582611964263961222344948887711241262723093909897925163245379628007930156420002221581568227693867609707779112225591978001052765754342324867884191370606500377736049020018369802994070677979318472662018148182560796141052392629982747506711207947654099853724551322684752729209927723984360523817239460232769808016916478950790316547679247410593595239075482553463554184086739982418422562285232227552459038392269387105958692296000605343880412659022404448175958858843386228961367335543791365826405136730841780827915696561624273017746673386542099285435001386813948484720130050678916624015530688929792584660039365332057411595874145008038340056875169554962348975751897376669635593610322311700627049250268852274530201026732449036917696991106620161403666100256590290612000904628196565089161629888111082719007866484909341309938091458552315475583515219739394434937913418427342749063177165151505340199503721574576420681295692588294729639503478171672068308597724313007494319525265698254351034769201682135870536125716530472891933354162275262391570166579781977055617311583573867908050536638410175370527039805591963559887560000718398735581774986474117160225261745470952104586674359950988289779115950886664518990409938923054380991448686656905033031085755652667973138087195689421924841801362150103592356968558610410966880904096373774367313330035095399991862817009346751411674452748714308863937054674746869767114682872407213975419555870154963705972049447276942455280522735208500600699272113918219484489192207120515834345594610380858950090082470693089262562319465706380038305050511429596808657684236480187739334604701688454096673797475377230895178163768526619594615079486284485018065447080124871876711182503520827613130476587035415118851467549422698767402395454210310801876047601697760564298720054229585697461241983866226991380719900542456446291565653677081548156656870732962991612795529505586339807353464701340627440066383255354952376734809227190636440834682466839142544836727216624815500717435850571001130839694585397851721479893816859376097090653832236056978721872975318417643696101732438747332194706688604152015026591630080597221485725036102703661248831698028367143230586372223007161649030174997893152486229299023750524946620256631680861590146886767970166900074808536556054810721445089138716322399625772358535921681814236445766094051340289239277993340433730839254060963424238220262047282821371063250782404647959932316364906324355483812280651974760590872188384704820826818148187452249063406492053349993348541692998528980718208422771479263947978117006242196497469418833650231079653636053016698163174346298539080801406016827575301052265642709991972347557047869798367063650898849439329491613489916955611636286276876244084270227164383531653322979127546982993548496215045762334980690473947205547592365138209348740887341973162382991021534305471556373392618350959977957983590800490569267662613509950051088940010553826834037810758079486552917724542248823593747426150472582589471154799490066333455561951020504548659545742991456797547669595177873348787016838261234577469694836735221201583581132879651280861423277147123097113382889988084860264053400417339952510531354228987419031095254943953525573660414209660983294275129883912126299577224087346716579051729875161046756205877357219987268434312093668658531783336578937999414911048021657399705671668776589612029368246770813664004168917419248113154182073340270861115431413055891179481819879902832094007542114276366026768063170332756645880219173063389943245284770726353354747449004530584226791712713216701545694522621151834801636794081439703356800436636221489290187422351981173376264332545060151956248169597267910670055554887333857487359915524594066162567257613310613476753807892551571041480679808771680842586514148112196990587578906856540370111592861283500924266445942744520082558518600389603207504522884551514971390300185804785894739742678868015817747244994521619247142211397382388565834903486673868346123940686363713077814714818116572086947394482557659465566853099618632964528796579454720736257328959951810174254562342343914962263064611953918447715566834994278958025871632882838041684102949857006084189601525425235922799826669527140046497167443668316673512705740147947657556297375565275472494230879555421330655891008855124141226156082208418746101125523605077114585930928650743457523499889044395804485573365580223385169188383594523887619136103326989802259550377987657395649966255614516935044004251595968719590435129448193669220315152164670560620140734324941955095393170894996546923689877402441508068780533942964519157646164170114461448978688556403537036077521952675580581080604753039928130279842680293658067610224519306175192724091457925580437136595866511897195315997103661105123103649058552701020939508741930938070457536685285808563097098695484924427193452276680708028130886314973742401269064846693709548564092376682557675870986720672762612476845768700635374339776101130671293585661189168847081465892200813457858007424614706184302844799063710521337051419334730238258025809130537287905725843867057757469448037098546522384588668309717320194475649796516783878467728218513229070750473490907236052369789991250385674161069486586759645527726595037352968975421784116693791364963159592405662153955517550947519609126513412406415185646620748766332553350389055174332783185774623303525007947240826956494989835289928912439355938939500307622864582074910058804167205768128280001014210599609681911853903701854678088734551844106652077263552716459323755761507344000121328639036856894215317113095761920258883370659158547882899191248818387440161073739734120479338839762247212109125482055248251621068324655816807934167226731131985998452527135319001117070128375170152626610925990676206192103853192767939187369203144062537658175035387209293927441460599910256555772679920629178096981284526860905067388973274792940826074291994133563686807008457731800000460554105270709123099823329703166368601802571144725493853544499353326487772321081513428305194983342019473813460372980052630097807567700496053656861511873464027454600863418646829078151990129006215471155776987451204076438725538411439541019417147529549980819760291452332843809692906060549094344061732183547534591585720012943906676231023832254305714919984642346412624149831991627225250124322180475642971446039076218288941837319350722518056510171058661005275636134706016011655603308011282000375849249805070110100208040031769009485631101339429593543579700545018090271553587492336012866386829230909930702997564341003272961156866833211536702471946823363394749409278382625558648368007918625999363358715868837114661465159989544935594211221351385706003285307111620132774814784607038841645880159059209733727149023923046657805954556519883735776149442064239477956164377342364550916264598689530115240243826930542134522719867028054990115389997610079347797394179045721618580649813283528867326189980386888260352326491606638625284667345059149286454677461019482967415748846419682817990325635583747769143356314998960037465561403625048888134840594278879813946941593536467908026890105033364889767335420764777495496813785697378781383084918756004922650452034433540858580758220943815029150515579741394115222178370744394493611988373551810972145257673652518322430756689300121221990141260715407749814448811460115450335299072313005566139029103863153778192406843334706267022361102234559806578146997789655439667664198584161766638806169045515665480972198592572848911726976844534210105880258335721323636393937775445986267739740358396169083703740139185211033101063906397681303064402514086603593513801753929620932894595926080840969066524396422639836047608558579048513215630462990558404496604660453744754305896130049472903467135664169713141788274873636958893558699270450121926793451367767105046050259621859258789134042837871547738703401314895347640285804617458426504561414495467447813835179100501735345679331585036020028122453101930919068875822309578462797604991503640860659720287167461321553203919061951930340127658232829184098659735869347353162539062923340925066930515479166336890250701631542747320628861616779437297080580396980943461267761516490388215121568846464064357436221203895702125415151188619318929634867895073923705639082602150634915001726422230227627641978550092563819196345064527577955092042715417496409040800636521397387809297298553955094625969479900011938076246386809953817197354448217929454001364133788099617805342956554237278261859255779569644178145676021913889249860709498664836928439256896663195111420956097436966066085049412108498450828480357309898409109907016946099861606306721242781228950639032963965689804048316801315388803894087179316998146243488892126775452316384214787757203998156971253202022472291413598577397363031448621239403458476135270752639168937366904795444500399975440328259392831200178232042909290046051351223032545410305282350667724175422032590755503318148373900225694104379934731515223643140521118876001860224831403611135843638830894520601350846030931112677802367054562310402613229620721991440375884667332326172995667291258896520660142797558130542929391175260093541058721067944847799764416771253021544721857778535277906529759256049825885266726329190090962245750338930559824555773420061953363077977831484870300306059104410643220826308031432506251141334620350872662840888287026701303896226351710931884837338497155645793232168087207328374421695882128706926498790947082536651089465402970168288232008926287739474377034239099758634284271281376729305854585242691598621501672797121091876599777415747787035829828813814006357370217860422588360285150571188751374463171437526356943862954596201129104217233163110888146605083755580800050207696730031741295610030213245791232790163565682646920773669745919289759462424428124571849437482295088401475704829049795892651539650626891141394412709957761015616550757480800469264700327104728416770438753797946424112696706739977158776552909841422932191697798056256975322330541237707198839676448635873675123629849671694362441802898234936344371536307693668177117976191049890753158283726080283835564959797539980532933973619154392429232578309888096010071806827131850728594563241421873958971911579435061242421880665529355663458774780928405256330606894645703471539080407690444287255209829187219846781717863952307372747578373508695976732067657843906432853849903355430522173148799177296061902509234366641477577285575152259093221280554546500815936545063871843923780838513312283393080208668676140227630360688356683690068646194027753467957597753106681779756893999253037264807802034021148458809522984244848221127923136702675476131384634915603607594615327586628595282346670579418577004588215555742837798379900624000461681607479507063761519897654181925826709376507876574724120860377140113360614611190054862540942088543814637265514633737121981499676713901799109597658408748748057746639862818004966862630359490397133018849440702538151862164391902937248205112773542437801809461283716570355714674317224850935331672581770058676947506434398999473041216995087415128626077426319622699998596900548992088643870019020837820278256968252432083534015412757616395316716471128256821336260981361943898485935256698745328186704418737194515812312812934305934677134465075274439795879987431604973878094872036527177920807402050376299424161694615046440606606806366781744931537247990079270575937070763821305176210514951973299272381723147979445116996124622426981802308554719295366432337270370154507039319202792211487764799381985968328663556053883272205735461086162599588949869252205480256790487714369302693536740125573156262419527268133762514292675102390388873635479632146337068480246180383364098547851795342652233416892636548328143388468653845877538921932382204016946172380483881646400929098975240382726997803444808110594869224598670763917204848233852766832274801783878015806963076299300661499054136208424286057953601911351355477220523266440932528702992641638461796211585648725953010922634199886784204337870492088873278347608896950576944067879264605073678156870003186792457884163759035589738770570006969517391607378762291115680040606393534517340033766122432266970382980126183248335051425838934701568913166284116387914441953296214333816922555851212205439370274788526025768250769097744917318007192732078163007005258837340894186635706682564918169290899586533401449151646018398085433730303480948513545587998380702586184070777659466701611391541549542566432736261848921983985473940511197087054314824707606705488595049499978038343915659488875422841377976396296351250400511216710776491926104825611857843379229358845761182014736440683058278731025551590457324645447712478038662913997270527427201693649458213242787981267908280028800669709402154785513542177602273601888499284495819655181208603564136253527341953214186862293365903764859171731311473204804228816486314640944209810673922423825681282688681891506045644039798026534143985902192471943586911058271722404859715042243512648050756405684685351400114088247407755573711367729660325219667837142505173178497996157493165253147234135740612805297664603395324757574236550889809133537542292786589457190785534557166489934198667557994418615460454714617710813821625179427261270045300868744112111989969733264891681601879133527135604632363578252120965398051061988874461379643928640633159473492342958161133119225283252031660903189038167299516673525780838253873574318408633289167451366036973142462495004010730124649703877217867903660736785861581495075321201165022317516600781019791453908876032156760048753443555178980176014810533918388326308411831076007303536944275744032229851351577917616305113322280946650680401069348285206712444859330423921525386160213844568429976709553331285819138372499217751933036576967549552807171122359459552348111615358525287762296538856871769257255034644584855247963960238348358231443557622797425981172230788316304450334689109397282885930123028115465750996526662163015771889667298222273299773770546477094827554005435524176501431026590946598574745617065761537502696151901217482568679787630267806104791116303709332821852920494918515886759381873633172509684323648591855508922796969836546021648772463763762559545819353741514065593075881972370287066557126718787437177752762810136336602475736666918630782059053118261196489335517243801642311932143330925018825792114171521831356900946069956654421082903264981374862681199870290815359024687881427040917377574252888441975357283215101385841877307807517280950066647128681345120302216522281520677984384160692814194040914960541074765163129142766837676142085193836488152483338356663920194122110719676138476134834832114299524550561820370577091165029790368725746316544182495732027044290113774067408112611421943374008565733740011890508049231982406358462087242666017102904922095442422247089857392136970296001601519389376200841539026458286140904488689053177969650556750647817468449731155400332028345222163475495764397617303038711947005017680274116659787672508878989284349882425497713631704320871589017646836187995517703756601963256021755959784754150120436921441946277365142528192702304549142531188030984518151774332419709252221587393396733591974053155461648481329438339502290049247570762743622243277515496167940337700119263133720737628234265887257909918057049719669808333431142582248801597315531370330217494995860115425908397043912880418533040881674924161219672611364741396645198651199782398396242622126353861786676457254768982973077530030329991803776271303957576254299838842118722747039565329137284008370096963237454541838475029189088819857305938512318922966191283745292330476812194227230556558934496821572842014627608102129270847899460018530726716093626134065363087945452478297404397581516159520640025163551790197528911453886017370832405825115667605553999107856795004200442402485111000294143565251059229030559433462474021523422539107807211541881900186031388005992777039237983830111220481929584316065260756041330419903909942606670417189042626722313146076571540111104875781567807242468490136113998033738979927340222025959948068569927803407563161879204100168563165157000231835277303828610876061043009184629090757757833158639622989035252857264870183666150647810199846358577261712954156692628961815867747252824272277748264964887598285145107937779699724838226583524896598629762118601215929086989784586452912528968785825049973440143352902762762264044214683585218247483134558030074421500841442384725284603945649939461975564013615439438600224150714955852840515263932898077827927094329324423502491650674744840908956150457266346139876587087128505800569953915665768650995214092481704711653898769510471170603677796617288608909342177651001444056596720396143015374253901073756632395624358934508290077989435584733268596323699147728663021246098779514598446564314890291733998757004579763542468076126867666023853874032654960629412095570747220291644479336375867379531933820878962943719957373768237402625087809705734479981774496084857641622504105334940178541354756414424955569717721040663974198292934414126257626596237685761448844841433747205588702305012719665595115408807474923897433146386334274708750425123867513237940759438180982029349329461060139529126495154304197449020208114626103201849823324897321585274136321477083880560994264792770597548651566716609679514517847070544970593505921257736663332556163055458880346682742318540889843214002557940806384729560954883547724358073549096880742291450191808172677388057208692822606004400871176937355131818274409559492488772797827822020324842425792050722812959273428614185192646525538256746533335668329867298972076115281086458418418733012748192009616693828512425031490025879446689897062732407471024841248103506780302139484133056667620112524491348219919226581149943186707156446141785105978101090587309431496140242221769018076410540273799413082608561460559037902410921503812175092930989369103381408180438216511369280092778771729056107119515838707923684524599246425814934450948001901104459625406065970886182798190809474960437987247609572716274890146674884678332598764851547824876988982542293996301168434243710745274654229910111229065703926550005285097165282980583601468467103449348604770396333693066133190235265347138074978161701040310167493629220687361799624591114810859034263870912789670896389271108771612987111157387790014638602043658872641583017009527880350461885845096818240569393267408291271316919057984636332408081948540780117346853601144739391791246810023756990023365325220090412870744753540659031371826488942997060577390582760272791540615955415601282064360391074892687535246791959191913278900254046810809412367318571586325555288727349726991970941870108917510521102739589867747446281987476481789268116178216435418296210762406400325424039542858192730601249274038566875196964711031428113229707304494183308698205402073673093013844436836012552222118312086739124211100254283275171233956700800235391514052794759213441119820221299871659258935011444288337130237956873809016372821815993479959192333342802275025440395651938532254219501496469882170610429148494150460885197295062972879662808599656921675639743034718871055281916353831597720491040765325420859182847322237856659680133732724654556473219533671514437110744224328003592214303476510588633399848249511785099456029182802921480123057831925495429872820857352589319125152877201574827715710912012869773850250751471721567561794489511002447195219381175221179534142047019443587842479733758815445983694629796136387894129011124746322171705369295812542059770443108820147156580161215799609075248584475958766183534269888369814271305499303126949315424205761814980198008790932752582078244330646861666968512137977754836438860844442760818224904018091415389922853584627004590747869343711677297750264547095237982955306405973615551051900720149540146594174906073282179420559260562189727257408878246070426928708699401010445923439289652523983327135485975737065688477201048159041578921048301734436297430250660778806262444750426058452850276822297916028699651026469780213239868524123150623919251750249279941037465880063726396868169372166668758533804765061196354768310706769912458635801346033054542111136810764730555365963575154776292209850859486942170402038318229772764408941214544231407835784752281002012662669598675466212906608594603371519419768500646696353908290736610248787457348021836781294419787747768730912519864908416855665091241889575538335376643084151905396270829406020977410027071360240469991664982884697097598711285996828008041528230562439176097763539904888126650776162832623213095292300711858816953090282117952700249923409904300678288960470583936334616297049334095118755178695280324327648373777277910953269142911687300935512279649076588467697522587524011093130095046474013866076541408397020233809353920558446339127545161996431022634807952944238933648330315470029618223340296305108156770680852023937382657883214150205459203049442387319456427551911644974836559137652690553602000065537379462397773260999550089667574594076832353571670162726089653766557395614061814302324361683845851986858512291656079189843163782936138124287183690148163566043082425837238325516449326119925316597551250280337665649525275275034696488689838207713400015749516494155296888777454990529834887378022596373912243081126549087105483845712264524589463977835657863079136843243842591720921839801986287612252786759325673784572951303490764640554348861078659987002347505798572649794800127763707118698723359034250521371641670901215532501197796483810438508441867405319964406847812346034762589646798212000282040080489723897918993490980775458201065506684983026779878768425500291506314239723711211120658926740324549761312988578231517881349433558779988917882550173201734370503771635757075544898644284143803288739127529683854271725970626334651443417579151052798190054849130410255702457349591319388113039691122547869879651353683891743134592406140520479207452442249391477097727553690171073574160254884394271562325725486368529062992956133919386221894915778225470897089688744208004818675365927142763656451784649012228696446053041647573913382528011270113039269710080648167528633898424647822644035581399227690019508480582529385779100108434164019865058538729474071718227652263940447057230954809408549405645371788808956300212601078204150680513449786932298442259851803277953975798461157919335186751199716168286238318727860119042274152652567205765516409681956732880053175372897743180545449307815611484982513858937089394824809330836188518277760443146593324335426405222423125771874217619098034161784005543681452788711627999731869148991988920303968183227101543825611115170477989155783001808245698579735908052064823266814504178283339783599857737372965663680550453000203825603385187227841623182804310191225790561630745486612683287705830330909678079844393999189714722652664613586364081700386306034587412880279320058272298754408395538933113014698818230981591954797128977970891323255776913278575559859246965801602888387003381203668844728094798824171617698399274809750750435768582406731615707630518584622105625916937971422660746997968300225037355330739313975066066723412018646081237728496268434366926622863763267881400893815049914801430041301239919978817736418693708737380236378515891254665119132088579799113291803619173888758231721054842653571747374086674224130396295151817975219211507517024581772177402728203678090091884330179006840557989214316657884510095440539127729293743389837917514011379517977072415485861414805414442464510756817822395165216909297406071166141934725568811604211573192573138840580269358874495739452175492804595215409503624454685877619463597002226280775611179829573677526936991532079033232231224745874140982012306319440138459271505608002679148061489257110134887518038269105154085525028666437980265232567310121439493627770381229023635830886811273160791337653949918399186631715983364290088885426322052295524018309643764526148972254609116759538404579974184203883252829671608183939286127796691629922990936197095730711215447171254916858183553374276033617300207660083898688578537483169382173871519861141343797900364104080852644766130855090566641199716428739052127229041551661934326214231105326593967754020649471901293446706344308361790083633544669067115015782435948329715912036993126608319733763240280804752842358941966439256179030260247037090721218843252761276728631344587076519775537053011239624958255215992965699226599077980367082537677186510776678482556031004759887428870430673234069768655705665938409939996212047125359030101509756323567987960455623465339679074134041218340909537480288135509011456793366759876791967033124872860638336309632219399930430237705337412405399416901978162853921676607154414292824288197941169855658440818119916413778125759286805308677705374431617299202053839799349938991883981402976294416762875267013429736892210298950059593924663471719974353143912876556500923883577747624374883402873796493706911774861510279269951408570841535554720320374488552810142504329856274129786821556687813542965482643715189313611519354657584143192214919068976088518093497123064924706148717902401412192879619934520153197607076044001789448994515737473808252836054722263798834306718220078455242925946704621791451249025125428531446102523061487888732111269624189450079929647163736320011761762083420350841146561549654478612601913759691224663645733314885188431963499731955162900736686148010747284566218065795815851525168717837503174591550694064692008603446006376886466287199054157364872685923692788344607119624759232998879637203882196462237952878957034145907181350638370838468215012314713258065173684931723243446850145078335406569927960531406672704073386195615796705706376375186674422751357094802225532474836554243752695918733927539788888590667971346636085984270237777871524626638552082170921833881967746136531448933422384958931152957395888789799691902526767498331065724477984359518192837744052076346565333469695048585589777388391279570695306483489033348169101967904755383045729810468143390439068707051717661806506560999386844930352511290187954396375169267288616166604608123091519016616849400493483976256318415511391712667712947935950909565728624847622181646748499413055212517388592993318541633809247946589177180056233838932656356909068475951952234845242312208901817896258829841566678059124512219528331468943035101523178018783524018190308964646694606466715161652472330437782389602781039452391450000331102015805670448856541375207232481635265370531364256564345564841506275365924707222874708733599989172243364341028691745846032884934625428570068342199561650221066508179778771278811125704564388319049091172489792302321327542992135336529034705866175911361394043268442711746962353757601311603450554300575873913687384600770233439610236745536524041389947727479592959722351515131955374935704886059876622763779543794329070019233427808270760889839102355754265985218223684029860113515253478448806211489483810287610840907912833449451077615309876468196855910688747887683042558917851611121546331757613739845626104502160209816588715900970121468988148830564786910027597248250199941568686918071068457121268305538985915723920270534106692279706846976756697847995664889734543651310700515734407863522425470792371525485421009758058730777317452170333299050684133866975497369154797867743657808277020928092435202729546079268764237266404935799607825169692286200888442189602965327719276425728291571551909617356122241950389910745829118890123422144894162109447591187786161070593542126595050891748315358632498819353623676552943140638280778093883559710929027919897755437293341045377832000700024942009068454140176164129533606945400349435898129405772428609111083895267269220948039076445333659909292415503176302454040603982608012210793530021494908414320534144660190894654667809490277756005679158986964969265610001717046642868313516032118312180558368356381214796840438589504894618205506902581998810083514383155837733303262486733502182738759511936467774351893054055979108784788971464354965994943687111578668370783757234757486958270507039320643774267743363399457883770682286613902165508795396538034219107999276913626272789207641680674263410086052670531023006604119259750119345724016025206751929005157178915303509266378250682320855541319903896383965516866555249124543880523759586881688499376740292511329016790150281438059325117734262820645922692471688354289956443622532572575955256433525598759286789027135195519962126302234484916445262273580995867011296580147136694528876667261749853555567972518130176911913319533764045842756962508652870756325696037414486853502452693149623829161681361176316194535191440360982321921900780492511233001870262449149793797622931283884770060807704072616987023296243645479803871910196316562814855111154637998800128300393152195917411737504369689718012252060499144307199706486829675302519016833330444919917865785268598203358565040404207977861221234791180570978550680518091376907561696318055720693289946303201043239123716469375170251229128684122833178736601523547584478085453518098488695115997466425809976307627880461894179078547327010249672246207850554140571875479117129130433471580402910028877340140949236994403288956373926375224993033323563148645239838005125221289208085694107800754035635111510912263114873823901203418547086674348875327845434196456645361299860308172721066047686264672127016304227122027384397397120546656968832411870191284194587120526406004300824413916065290774790849142688512676811315483786181918327945892651325424607226568829012895260097771381109595163175793398137947491530431498654561201095291181712908996281983424351568390998724996489132836334578559654566723369574695019011273798454448882993246737505350966502619705673397071822098528739589197774377757350844819694875218353793891284651945693975095690477905686340662122588693836916455328533509399228998498790439758022545493440180800453499012218555205328844074415059731880883722973591667113865694798094903162595689056328428926818021936606474219554838737244748932427244026329471044019452284058292952768196250308874906718542982877685582933193170920977037375221425308971393281208468598061787641229093722213859835552417275521218952639492394645875558761212054459118773553479709721348897346767236860022298379472834570173921298496493186711375302790495429575028864955177289464710994406791357164732968952803518770733771814168860541002525360259580665357433880041427418869669471184013429708924410478578192302223530874274290446949773858500637032109562499836440576810924549418129610174977228380268892305353074425623596951621887834874569004731605875609492291964910704063572298742852779199864276179858481881060992672850927956835830780759641816978919172625597991605797505377587686389947582084875893478950240814182531054921443348186843931742019479297762239423182409235487167890571503376965040190818856482076399852694029206472435912748356027424962250056143590980985198343167964078648155185271963879689060262432818132289815191621174208171746619264846485150869553433945298946429273255892173913497465459261659990393923282437136609222839166280565715117178409831883358193797519776006876000594373655121447376215053573502645981582414831896973408007876916045549721252632381932245966989179641503956877086151209417545146983196984276166854220862059703850672023601878130551894059334049828984754314563547762481282399524476483962731832241411310485656469618717254180120320058756408853577692621094723495014153068690375887249053108587415130183301863896801974433731956032359496865188482879216071441402670800170750787891048066139089070171584180366304973384813328635971990412498254444478667893822085058295748748541816256146913197533573714985479368786953617572373054253110615804818951023401796480751572578634558344966686657631522785372100323455180548110388781174177371622123808141827619983523503602853707725704639447897605023897797932615837347365244389842317530962972445320998146449144472695584740172307999558397537723404530761053100898040819771678187480310858603384011518371434819546584445133515376993780841157275980771994380184511319167872094844720994863388396429716222236594049000014753104388202730584099971325997383513897999911820484588675180304213005294393798117858186034052098875211411099158206593236382837490216351681399222610044608924458892807865950707071801007419080959362066018532943188979958235751906395165990429665696853707872890223884182106728084013499241752424759224427150523871720333624205798227805847670735955549258971264810669166109386333595965143757428229814625353815433437207445393119856286684213261268405117795119400825059438098471644926046004236790617162939571586260347166182441602836631516177316392725701253526196387513441948615989221130019639384651071454832062168545460634227887275743246229616753238882741045287928080848915666236121265026126417836507486061300545841354105415320570501183395272697216328205502136339311022144339377555268286681985202531648533064331828292847831588827319753644488802603334010199895437356584067534705640318249244701095398405304750657518657234306073357366100712164338932306433891395133114412879843364891968187911140333233130794871150411705861411837305412721215216596945405762814910398737072964814840572220126891920947223004189367121857902072846981406113323781201100755796064008790217623891563023049286021777410987678341032353491983040564378024176676741728875100295879165543109771400226631889298251528271271426696044197565550783907480023019045793605428812609616818421669199823698225710547313407568658066108228625326534573187921553517360014116882425868273913339187250182254956426580128612676232383095396816170444387722109937416877727080556412856650189503225118790706459482451883467991622920362243141049862503991670620332512586277688364986107204451084560194779083559257629736514472879595818423198901929303073958633717351944017621605371785828549293271263664466311250586289687434265067712335079700932750259889246827114392422315145153892507375264809847762488101569711486410372933756186606357836269298114909573390478191169491108005950220372264678010453418887880952412598504810455130159999203251554024821701167006264429454856831731688472917324290616896394627856116001890028993763820662063862571818593598732999649788423297294169516623032073836859535605260859867758008284722346638251209104873452237642472630938062958629801860184333624228708103228787064301388176053836929015279114408444567677360199087712275779247474125369775464135578205236998660153866685615110280120858722373650412569315084289050469508606797462566865759876401362769985817847725513311471067864115361019238033958407598942633994528649564571490842490703311253530724549113427524575945691900487820702072482363786568102839630181257284317683828478902243416101201096449162378858532610681829798395920698992324245202274361083432256195017691749734402059343157983270765309362122964836277445374204803646357951011063957381692689386023960166631098619668830955653329046576656349185286618146208684871140334420419243827985552337049821969358833635204314221124287931152968188283569428359528899668870436199873472701370129208687559015495397846032894617396045432825990946892706475783156229592204018387358211761035361900914592619062585072693266799040355521479021312388436099756683829263822150055372062626200829800197728875815026515164486626644585427940382928817768848936336033019497863971739118171719886572861660092013517434104368631251123653732724874893227929385391944072379888738408677020199463963837293851912944431590438538408642134537101877265429815288171515156872046069696802158112057428506876527633909264437843163017989784738541791342812358106046253279080149579703592583786245737633474755413753010421888818322232688418348258360858002651705289369268976312649727598426043060636135933210571234429995962140046472487453713841512208739575061380047221445104687912058121227797300602014157876877703684601087573649715940843149836409667181769346417678409094517215250044976893711350723620362320151626347734596145891596361999619585275047757153712591730981800055119578939575536049145571366263881944986549245632224676494834168974706159056032563535632028372653968205740731123529953990951775421003011113434555973600577937581832516116782015180640259757280748734503712910699953495604227676589032850349242089166003830393940176276539662575396568571712153688661977379393350070472237937066097048624168941561637940038864356349560378227335956465683210337528098492583482535538218436928030586663416043573921430113413672898124804860309766908610712594952377089727430916813105065888107280275423872051759617097946112555090147789302665121533892207975342755501801795686958423887858604003445415435997210139211892239167300540373073300101238465062680847150720104429255556625229919820492524748440138360861342363324397180960854242935616675387073270913470235077080689160260158231466751705462478982735742998028487048729020425011311824809176434747179825242382389073960246498306103420965745158575679260133944600860284771437685590223309924081047926163104971306078676675739260589731905722880081852989068647629934390438657543381379158914942993318190909336412264551856856320018201980655200201194327325475682584622307166843731050315824396262942872805466619356246996428387357997620926754707777643387075130991094586989136258736485217587142843975389507880445417870358161989976812843073615528515574465091326655021951497850026883961953293525219871449264934415481144582796020017693956722392651686396191678065714195573290498387304573843131194222294309481920641524828882576513450781231862098739646521337120478228289278970642484596111108856661121140699226560651860942189375731855629648039418685488877383346957225635201445928540598872014445424089934545992124200010887630180609804237155179171007942121656267271181138619051058085244673617300402408770276613580418642496326249305307020074927054534550465106745397179299958067462214135932351311984766707512704658243640253260950021513292918583019701563973066508806265090580594469272060696587956980448939335866647473742395793463144650161449228546990676681311963743377040015152744988477764963299087903603105378845959445385260676142590819383903863923149555270795504444280103515449117890945702034008270287056724485426689153172406677770118759712201590231857474176153472917339678823413887167909716228525940639214543671151551083167850216611329028508675468063383003455068582171866342514564968128193825024478674425173378681236440997077301051921889788128967155541722121095894711199803863959747754489262271046442473719374323372204400651973651123311481037848683458338323944940892384376777483204619310921772716938826583043076049093399808983798726923436856142447597922474369003152450746941038930081586928412621528141763726730219055410422532348195003298811122879193304142766261501167283589947192070935364675428145844011255230360090286692247648681990036956932788387834943411266411148302287332612326298988889334160974757619006508219323600356245448641289070058469614471713485738912990693885774318971960024184108816391170571162701002355790267291718587236810788968075383369437152532656350912979809337112940827096521776178617271811242076458248883084935676299613444122491504131543795956555936458666337307723155703679859189867570786726357597757782876630787104529819638915204259871714570513233334512996964610925665757027472196573323328775956155360872439397590191164101780850966897422582218323461918163465108703062686577925020617851282739647150411552842208754000939739110096844761296061582278784967851737516676631518385870721974886303847660581420382289723848790487941102564605412242586731787204291427378507731235252113680806452750977201049757741373688863326041135588859023297195341407124919774174172377592015271195564216309272614307203380556709553560133765475903212166938623968555963381472688186474396603742673989457421290217637682304397472689568488251927118313018977031558062461195340378608288277047139651919674444786656477589089016191222685183940117800986921524911636846123763881588284087952654301752016507019410895667129216492966344061987305425996230652249029448279525165831685963024746654807632392121358729749495443475393851153911151640403234466698248522793605844094018601042473618204857779019521039920110624030389500862828187064665202105203069713891727200925227920337097074112486720854675135787943792910320578081692589611395476012447230026347564986492142555472626019936904931778211047097369593152764718015185395547627139893811970314981070954535900733731192183780751817389205538725482155870877129187472108705631051783968951956640902328497128984794911427413270470330035693050315223043639876010349628620549272971053030640971934413640854012279940138544253910042485104698543056916443677904459929748418981135509673909820071177113636238669611370111680237499441254256231225044349805613565508804228999818135401548055395101627003948791405592916780207447379643279283029086912402698175067243411575504559927442721040206078123283508577476100835266057077528344258572818089685762730241377614050051055551561051608645875066407792370461765944884953101558193100059686969769815945409467971766621755460158977548800086719645727545985684848748953250534629092689544388786432744031213438909598034841480505708629406043012116511638464878587138751787363806047442338022322476333220098664550052522851723641207163016125149586078627750804580099408086266025878953799320883168646725692847565569688541691473775164301008146956291330133250843760075509428205865321789304261079422135295592798450375350715501469801906631164334787143535438484803792340717037680940506295905254412121019808945740439719003300436772230899315948352408599647687065261981103356872799385175637916951161415765753344213095242129416118696066203480184377256082202392027181841524567927760248615989128499198007904574338206217838760625720718796786586635697969053769951775114576329767729077820884062657317196105338861097946068593176027709882058678122605333327576821981272085218589851236780670244254968764177814211662623602537154813820648507458098819427976277958821478467467195360493041919217303338015293590279938765269518547079473981391954670964129984268929730639446275593163494132124072021018560651033790363918801139129977763205123585556011658019602382977780170755638151328926018467379569476072299276551966066564055469692967722249040824293703012240592644875018953527335518363910389347520402102142916304936915477682169709402729040350539953056487583855680810305785095958391213011439446870562776769149192465173714841867793537521946157214156886565324533800811464723280027068047889018896281639203169677846888030660859000099919492230222019265618247498207059588923711067267182612719069448761537702265411456864221725565346437162900946741586627000342771579295438412289012235074414157055478041265965030983956144726884752870081548236808805459379886679814174478930961672480483062510096286680310285371811230230693906251028647279974677145441974135390481888728147242844017672019708692696990036164014282757517788806802310191428592352251720113651338533710439192616584062511765833900622241201794450722193826872439990750144967288314837038063007127891692015524346868936359937967954589795979112699432671502517752168126652506388352786807261951215565358976250759478674873431967205796795655344150052377475015031588867155754723381393374208272519651358377485413678244581640098778439244684739471173662800894179514209713362192840947962636446245311466274679755279930874974252368155675671207168712697129818812805892476045987994089010387269246281595411665875370790098606170341225876108666838652864314895232737478908280238499680836671144724462077658570447841400077483538450046900915597782561992944053036761759619868822041969060333575516003405006224796939980964636405552523705920771808144749548297220359617545594319501573555244583281530668156919670314861256657881011503370069483229759402664886222354732323847761147416904955711704177181353297072858996140364363326536383614231836716976860782222247842803011035734731981068605803009982993063367824866911335782338840076107293326650233035898407526751367901894422067375492142236169561615363643113384135946792485355824097141154671634655501394350760789346952670325935822818034449511880652605652549115881453343520840631499422848996965000228701833415941844666764407405618357516273262694790817665835978149465833890511224108683617563333320436786213915990921605396498120109769141357533226950450607430789688878382125213884127002207099072882783873788771503117783014803041941552003514175208765502470110158754239521512424789158934735696827069237272227999905203956339753534539884678399466407083900177696389375199589876535829710413570400730512216307900968166409232315297052308056486612127962699257539111768100158799592522032481125152780457270424243450455047946077740686500660463455776252254468378187750905041932751666965482020032253471645267839921140059664491756386047525869132577406541153455004003908435531814643706086880627075097445158274700644960631831515520223954787518126761931881511481190940338679720253632652360583140903956820598535820705058699273055170978216734800423681659081158377453979262950284759364078202034727797303309948011745478726441440254827113192144744840508610113861846106697750386482246912372349556876658575972674457711025637973337355288297672635527748164392713428803506520567553325812773208411319791488871038972398486342240714231557808485645468504870508703862098200574288679117032913577312998338582625164019667580075798575053352155826096316254261228089455762120510123071326480461886628575493739944309833633339459275221614153862952675965369907343021804707082877720087413021471608896061950579123373582027736791480043074482371653731929274155170536412901741159357257807265946507964517977950882327269334820202600530084067077036289270696217856104179618615328498577303088673888707518131552319092080286413370837701115272882023685233780949602593636776708964222549143645413144917025985223457672606026275948518493147236685816768055110029764285328878210382024265977144520910053075378229915807843176399263050869781069031242192001825886197001327132620966164368514474216160623486820320959427890791740904273636646799764509331601641621949670661205022910697210892447946219157452863156356080093828836600531190517241633115967162596096118642515659016575942038796674752007862128567891310077142405628068477383891703564698429534254949080063145754949615303961405651624347612478567250549502582122453053965766151901829654927871204694585676945921486967642385353016834854923097522987919928957346124129120223116727132215566559194715171916760228024873419593916437602737477327322774841528141694309216586966491470980531165840310814114384678967134203636568594893812150520429137467630254616549234024061409033263281071826695623721209283198674768983799897620396503558238914134794017207307776361485036793556537387865186555514528821829138073142333828464573520644476018175420237790020467989672220755602407041401621442698469693199751663904421153440721911878913095017287259953400067558376088486100589385637184774056522461758990095074868205125825828406273555485102750568291446039873001442587753020497659249902333117551589541508668953979372385289802452427312894661641687109142060443346534441434789730669000359834870300624371114027526119744267651078889165921375087080148072771532202810188006493149611647734117092712126850386185270260099783712695433615681261927738308532815518236075480063344200467735767728402181201850918185779812702601170082680043817433249544748504493180035891284838037436879009883503027375593914621513502237859051748696714478402360088044524848171542062605894028033627076990869040657470318750206301293095472410700113791251327063810850250293639524991010457857551891486745201116160185201094620192506705032325609495603071069117073761322042575042970722961043433911985052952111130662621880904144098305041633597950472679552079946027970939920265841890955739851071447602566189872902774696549737279675307894150787944254200011733990884783012498126979347727595175440373690060273236533504976366882321913461918378336994326636214407188582155973357825762666308246352298033652612284631920725654508707113321437285544134558555161031773290948522691679978468844922747925876554793550829193266869687991840682598709477935300456959350391857015584526934545683635273121456866821646026173257236254137630547048727137612189779570117883022972641034735346839712387456721743012524376830377729156094941074352732967296675004687342702550313362766191217784130862941127435308378469052413604888153946452687143794833372173391443147689930762708977841007762457254464333448944249960742111693754895829600004681726242088450922679780554999279109438090493557978677721101688712507075748259608931502097942963171465475016277450945325435553571562989958729055454067674447604548510792400117689925517277756874615312936556807992852397449485599804055311646411744610637912668887998211563974254732210808547847701705333022918109329378238898233780054039914669991550044722038518987808125299216410324590505924135157287987984517074450457342142201360249307851909284240132006194314535972324413008460669597609466910165414996412014579955210672573798439895492792305687270174424150479219519209241430763004802791281499693352781482673043926985391967785702527731955542007810037202910815165922065606663134776963335835200016624246580134510562521954159123213434217074631014711273596144262575589589468050515108918301858629701602010122834882790777318476207252288497710284919365216862649684683894058936114585920450865943951774634009752767997265110697021908125146985337956661992523966027623530239877908947072532947775915198296403619224805417129018445580437747144023138725866527153889676417159476766635126336656048399617580326954792627881013229035687040655636046441905141820654475139718783866352213220536478216335234930821090566623814485645866072789861893672084870426544565712840722965301373840387815491603363497015654547333919979600262462511846900942327700419245206052792866845163876450709577026001821974780746640331497741081946290245448712084412160344610150675673956720470615792365798108448818940038832912295089285767957597478427641094792575901927543272385724252782839275744122540516444210995168959258603579770283188254672836572959331887372861367595449030078444027924543784218495919690673131490290681666033002640612897346514736569959049874446136915296075386488480937205621701288405910784144166323485179462365354158933590094563078576662181389523232693151535282659606703843504662983628680432972734011509017938947486666396897361950789566616263171565860191810459355525229620129608604769277047665095620135032706020015578435394636094312136115188167870317105001264071373172424499088663821194428791831734712354552879403070460882127960167151554850103187989363388605763054855102690891004465226920136050905192181627029276927117711709287540138485713130741802543999586827022964397155717748744030148350051136103710364649187321518939828523832587047658354158557524993466417980190246193398430984055370289829373748627232564588729877830130136858807887056954830655844572098223604919310175683024487559089648776632285573818495885892983586823734228071453424295221876579497707761895072120604134486813691262479564221820847755253768835257912949770264878683462280322861018514208551903609358956363916407152683418571229409359516760610426942364532323451399727683445494425945006286288692207917709174029235300183274140934906968530848409724180392031622342457176674006260020818940057949054383555646772843824714143588347397667271618336021926334970104125563611019845499089035530611824537780037552508154115399372315161868879479761059334074691914534017459602302147196017686316356826652798527364420485334790434603031229797886204202316391167536982086538582667040887839443350609957161019949195700096752974531045796415389566672780533876363635668502305749278352894599559667225577055092081993455524562086596592253249385914147478757603323760696051435365819971613407009450663754015002359945381403116031877375586101699405368420624794304729129561095289113652920954285640899152320659513598243003711976981980879678311299340372260953643336325055526934433262086424256588893463767038527488609371561312007791335553747616775608611969297893886120614356085905510353321679024369805232179288997702400518943107871591295054101938864461684152923127051840469989480109100660037924662950576141867116285659006692390806786976718247844356266095012069463924093676417146141441627522184668007877630856859608914392566471655344694164952127671865863728313191786833545087233266979589658069062570425857783443949237894494163452264011830027072627459417330348116027489187946256380961824057972354292950067593816548334621364147138504016595040334383190590398131252810968699919643194467793612915892221959138415548823659494502065122034743316098373366842275191471755239477493462111714288930121406015167749530844558197071790964279064638187727528539326031510671676918298168212886040495417040433914625553223464308112852583956254339864626610162456771156690588198619012763980034509814671177298900615361048633285748586276253327229933694853181846064348847431281632629959266529336885587367124233657406505266025027924224779941848435131098023946744348466672757695915031282552572780806776467034502066352813446189803137454993171557455977560295363782319022123753295837872802049839658852614889510586846466294138268109110873746524937358134268613431294904330349049581191111352593181326870411147586687087018873061450215106760540819156002197426168344818856421523463330149238212077531202198276013358217032102221141906328356120206527529785455692891033879243283914121505737511391100199827667903303027837122708455374589895180090882299511490232827579305208365498238865143250385922094866832602824787326947003697872620569283383754200501320456972987406734441555204371043978764656916768823062332578204062771559095376540433716622595727795867172554261295023488012251739590083556164647289434691924109268614629777883883228174544393264723958168946898417948749254591973083335838843797554315777046561831372091864523333716586809056162623261953565291243663286249924297221952882258926954313897556859030863227472728042516129857154349390309314478163992604109001118998069952478304891039556872245517636114904181142353223208821716084825602315489570640884645860911067676220367299664914900115285858631270138013468365022205981809107581127271474499673446631262425663527944367751856339365018023487342823295180096276242202191849261250211080868142407557344094578975365644647917817794501974242018058088492618035980131173420363426179402130939951463793240053642585843925461074732404601154500459069872724617272331757705874811516883233370951434055042707347173530441863702849359051582808156892312065254282468425651525921646041344552418392707833607869903614108365847822313903688332062953570777171870771523241721104578714160365108009243390434911109553114954162754479873393810961211652066093016805787154311107189297720348014780050328370468678460768211397192507106365755035208306148006268224383974985770903605920510268233605838337678495056232722198341162788296294775542548681961193203481500163580092911397725962087258800828829293157754110104748783378871672984272205420556435067598876037385639450270949113352925214493229245880665352903739529008206370542029930444525641009400646592940444014270975713962964373046021237416799811221554954100612283755986782671779177778065292079822434668439400631179230484989803615875306898840393252429498585595802877959871717154715879951080072663111634007896271307576069363500670794934655168662828816022722548047325056688039560881157490973211054938762677572008424550618607283271761046652358750149795672835880873553515340403935397348741633042368771510740430715396024392700561903431849815577180657384274014575608318839686908820587131543013839709315503806923629396320053073300664702151369401628745494133873994484226625826370117323284632818325983124865407934567394964388192879084429345863291260726546823967392875670582526570166303880956026328890047223972482984022624938283978932957730585801224872743473761295058031922349039161525106395367062741837482078733972203050241904782416889485257405719967198494486604369300214177164921148067051161350704182560293747670874264897092488408472622254201166489016493224174267595673526937270553837626266635291953398268386779521135986200219934374769573752304288157906005783356005325862424051290833832330039959676178857871265790486455305008042207910987995895444476347663921154871860528011352898198631047867348873416754203021499489157144829273122011404526803308237572014583893617851823640636145794071641937078521573977702715698169496874352885614674980082377052442167526251240506719238156392482422573593667234652305178092194804396611964162059692942738413406093314978368629988489818335658044192417966937181836784803917453427741161240360071216036364089810432617661751993536826267072310962739733103968016816638054270902343739468638880825823792518393787308820730718121608481906247628670215935090741649146829945541757914739068022111055154659599016301175827731318679426456414690623341049472436366650202083523824557002244319214023287477592207346813931812637895382107341039003113037731549016860683361755303221370396993288745650956354849816612408615812573268233643316986615364153832961252028355600017321295434806673126982076761675093220662679142420918997202266790897009166906815818797283142384855557241868904340130740998452425945865306199256464180892061375750484825531524573370124665503835434595414265748031392660776940506369729777588387775241492762630541427422214121976889841743054119731568774502646192320527705808637951869527397802098276373703525010676039666955233552202023575382012523519863022889996152266991028284402066105012138865198844872428884083885797487670041085093615831641830793534900393467591559393986354795929666038017387676236029557849268465645163761170667895124879249099565937851508187134473001349141730105832312806382042882013083118039647586238895274160855189429942401140211489074928383074639065034100898258783887720454194286426686502230587834877653845311318998811647576464418876575316713378527054537615833529403738649277596654155384457360082333465769805662145515552477459955421710044993494691309922009410048184438215031888439551932548307221619277408343151566438877817041561090916286937230371613473479199491494228122828119243018561851051316364972069225677070765824024410984350233111928525049065420408727370617073885000702933726049403688757099892475446181376581637902569146754741240778568475363205566126653785996407973210243126983876898917047821567759822342922082249427819821838507555871713271250933833817079814365914688163276208566607237338323943364344753780217328306863239895088616877597654920015345590529815161577686639942642929656684451628492503744279470986090524756490827412171701643577168651102646849666683913958348388867128456726831940857961125181674797885848461834198195348474654940893604994807102237478716251722772160242071188638661345769251397790363918165825201464138089330402493968309708613958632630870161797479152945909203240621867151966541680147111545763941761276990745385105438178982329864820356235999967715956682430439360067783931087855821096786302988145829502347658729532076749503136559685228197013010897394675163782901982611621372408350023186133865808000608680258767731602762391194697710849281966736162396852599638035517410424612924036535063241828808226886743233227103091138893726009257237304728207746142318247067642306562586870561128726068729646195253917417945513642651084064300237226137092204201132958593701690006192855646894486204699162713998750503133977426769588252775160670338933607148412594176935772340808348465119111612747249146949633720118201576518554060531005846740176923891882480366466112325430006811323840781753759075121462955307088238385849732091887324474044949097583163170032626525750610207600572765242551842994252592090764288518235560093041949284798476891702969106706943245527389508922704539880921492087842448633024878408036416833947932969996786267396425208937723953044864445280864574483044928123984230906257218344155218595408794650136241924858696861908086850932441578870296460540914600727450327223603985993793797158855989161986487370249804893790268045745654504426833210425565252885514251984958137861324533903768279135394071375819052157059413503596049809494682689706276653192586243414904407955857947597654654278483411652432510262617329413976110729155624773876706988704666740564351141734714495595116741524256880908000888120814724792192298864322251717450972552440738118531142519658891713087343198079299582368035429697483902389415405267323546710302533392350109520120616095788138693340040896602897597413612569200098179402509550063501484538239495888132387635529844795265885619816780131380434524555267432997585251822584597006210091324694534717331814989591478464812429111061428248462341285853943368374989874785688619148103609591396180329329107824616506831670752816157169356273727283312653203176393060281312482666277044761797349203511099417583814995213029111836771579473555261032763862258128363928243763568598617659651399310649330847384409815526148253757459652114037728344930820463988797625654776613464472111404905867217946154742352154921810074352822373704989068436943482349040640762023250291205048512228326895463615951814585764576298670498303262882474091083679680043874082404592287798126978588810840015814672493718640830412550562025835107990574045230483543104956373055271826800354262034936848273249732547348872903708298371387124622644202694193442805482914607902776883318026509001593356366058521703903988272246555743942855947763057056154539272597332180116610093125004559936181757165507989470713065639681806003039600758179334999366180848245894714266003831424121249157220243841848365062867572695421795948675809349596395745207076273979313220111215495956892713392517825788093676454661380020514160472351946494693694960076412773125329143950487645031405644273125242097171314548561659748554657171371201116522315337440747431188817493005451284876574142184574418260720645564096148670242218946415227772231248594700278857791391119918432363825059727724470288720761073268883537274133805903147277736430793573472725118687818350417704898361983643634121788790634948538220997596529483981397912709275911577150615189938332854697147050532109295096882929196487175292041722489597958093203209587603112987716773327687145081935586846955515245404903483931397128709607490656261908908209654553200950203130058685699848336105371768624967767861175401265000973715775324495756285387553573989956310179083710646697410689457795902078728596006817583569143475078133368863512677995107089538552411821714138538714994716668822539755096910667164390533271139521842447791503666045427400415550364470289935372623661920873033538948047267688825180946405144201422775938842660197230498696390469153737689180137919029601232706324237703999418796962171670241137968998603279246906586465597025269059561340139356034222171068665236045083470347155667987160208985636570035839151532666013942996133142473355742734724122276152902980176295350466903905957961718094413281640883646560181687046462645333566308612613825834796118594193199569541260699736027620769852506287250348474918166167804971147309277044748622694241871655914308875411532703197024372033171091878728765557464629143521162291173052260758104271654384173987060619545564678834883165981158007110509037198523158384529514259014435876357098810559395293752380882030530886664618145784526674849967267162911388526228581249395069895762602259302586447521356656369433127442749618567797068671034099604574857640257420378388578703017769987774004709288613085451528983229051610892117048625349941078628843876169854443114533740224515686022241821235772598182843367332559004209334055668798357759945380926011143492672238674534512461387698772545825416338381592479865028381391842525388937868265009170093576898775738011287281851589698046320178879784773649266576032192977450207566650717745280779573473096676545989373989445060473475963146136415148850365790724926724911013920607667353109468114411332508093765905103155405660862545487499574585066977069545209635430406949745034451755157080547407292799171355887964099800318071053541332460339626682813646952426537729449652341951546015952580785110356852034769070758946059895068148286764553163165440463787526148677662345982341895450135668302120439769437944770040994491572001826434938924008693517623260804123399929295518728249011593374596407711277365495242397904545169292143705272885397554829753152658591155304106599420981648991108150362917525705379548406441823555925682538305888558459799736822345183747624444396898625862911598619841667505121437419235340950235700135186837386546794850073084127466064874354967515432654985377057742914766493124136230028329977689468113824969330355695106029445284150906891243116523189201879439398548267177613965734906338077991656096751964024774247658379567918104062687684981863688516621741613858482085752267334569854696986472029072118908190315570969452764015500498947708719887834657863344134628936222433654018621263115742607223264833130476886391757632080857025134403269307934920730869684200985057647504518145990463576050618165264866567154740432579119362750759532913685937526486977458194937404497213329469944707496327379107575149119226758329735947191735272640458377939632867705643921386442830157358723927273658872655885074384375679586561382561798708026768519545800735397813870928811858694255478805300487035855754397988546001059276358360566493758032102315848858859820258192010081094881204634835810585933229627123161401664103371321439685438701861448924880509120929358768662018609246000593530133080022900526742492466050411751093829479670232882794031008998133563693157908514961789694917957649371176326213978564556590069154230422152599180535203934539123079660981584529755621039820358048021049389679157998485702295685159286844832961677082556484944694881035285899791009713483810336706207610066037040479132707091604669051312329224792935617456215645621072841500351876968707905435881671901278945312547320745635217318490736268345993079510105825405685467084494894389652191368731199783904060495013324932533320360290122027644779132681523820925922181353385382524042817725926302452395999784029903181248829846095890329868294051929037964768473782979731536634022653404110253657505991444405637217130067057182340462756304389370398208755869770906823547702391272894794007753556681625219000400328839888017430414572290693307164970324315007558309098072823681549016106877766062484683332917341513021674214278332372496875102952481810121698169237017115157423002920707387600081667894207239733265102221093490271717151154125060100592923265953120508421461026400368325210776776592002643943129455722653209286263569020753474333513874564039349187754311535748458646542407742217439186943763888997868414164065448725189747228652150109319765632361292603274662336312807447632825306002649229509270705162095659888272831998756008083659117416383852857171555875442287138659885304329549233520517179572994794242915225907142863704564810302275115958009002888210351851098484931391508128876294690469750123008524240183623545280821604242665674854830865518513586042452436527015155656525991484099560309437224764381478731957310815598475577378643669965214377319706597047924366351372466277885092587461357760132585925529455499455991191791717997509362377281425189928739882211185259253797807010811851767518670806880714878843850256271636544814115686902106945864909323935279759207898290958004930309475789670913271410768992283629955742486464435404121522821261528376030204555894040689098914643330284129885352986003161398159553511131979953377573652833852256562624564639865105490379484995252233661909618397334327842886326305145835939835195059237729631557709019662554888827264859295613540062846159526585220644941533228398338472018802001117753458370053309525313699680956716296265450303604116731237374315152387730912079972142902013227007150337481393312188883213086192322690591138742854729417848072763998576747139893781082029887989975876765549449348765170813211518447682534903883566871211874697906100427258994018869851673795520092964987521368557016748133953268823755681012662228775961702551885535804280544273166093454677563464786390040151576516483180509595356007922952473132850989997896705377388942059342318221780712394264040145893896535070967399748679014346471520612337891397617552359322939040962081036389469278780471764214272538542431920568960925501739162253370462770822815735003809893032614968146460976613704045966713921787384472151133450945063770757784084250577523182295079800992018864102097631618778199656401703883616508703322213786622688630774413662947681363899459267918524100944466320114345544287581401350286200583967133793727649106865687402309445985774771365582564658100083623450085163718928221323092112347908289174211824241898532336154000374015008089127012160419689668916405821444986234325462176460947333816607056445285810660672305787560895019774976284870787438837104596516096667597362092765324394579477496050646377280058624818305648596988042091745502437238419274728109193015046918301879932276191778675167244254022043523752270604729713983933644261241003689258468042004325393336185329456919329964783775597564792988233301230821251718635595720048002641833803168288469065592026333817492754249203532446361810587423612353574576662872616114440315142705663229078537547256119561553811517563405005300725016987883896456697351866125909569790918773243706221262746210559519868526742582758853696352160591419549865198110677021991657387359970143211300725951166586811234091060117682903464859276264212577380724491476549694385473639353215302216989863562806308731368754456630208045137521751185213252253872688944876374386623321102729909694087666632236306524353005155367939389601186910270951171667449384123354033435676738766446744748440351535288794794091798422029148513803139065144023734166751917944188311438496761910225932238519187453028664500864892895737921144645914034663201829281438261516179935109713638176676673684182262471401815729082288857575834418554475280959197483648497162420720944593943812695076845309419939161480501800194414492507941030428478811185888479756968250748235639839749826266244538070887213395003954132201268234538906165689529785321547469691845337527662531295388641874611269378650804863492598729028846130705232458250381407839568995661879704057197800517933296084837657372472418964385313114808837285887875176366238799933889897999267440895911336052991059623066561535060338475927936726580053956081915798872667150237480445419019506175841171228269708712766082332008682260123026161274916002474419776834456600470393026172939296535003459570250310288865360374287699748359542995498641669625049090155697972391419011966523789611883250915349146903202651246912730466072137697393922462744253147959299476982073525210900931015131699174848120124365027639157344471085361515488630612024006858443406159509495714216426951668250554862667373941906304080680580973136634993883500688824143369401327941751875308629639948808130836373799731951259359984585056668771527054874985430442696208571202999944910540672494959234622896577692282472810922922785486655410564534880750517369570628325987598323126022894643467839806234834377327600753391090534704754947628749618559796047703498359437001448716983993641349084438657853402320116579154781030659427803183500174699916659617489143767997705756906654144907614727798312278901424271750765879965979023559086364851679395078449560738665384544615397883749582067080081687383112261030735714536808892811476877625133370865819233277880787043445788293028422904770737545907948219108543586759976946951356582761612203390177849537400857709456217725012734615323054906218536234713922500687397278945440214459355280183408611987187773564829670383733057939449184951213355453212812545571526243800442184424044632891707454519854158632058289762907545758226654984660941870354452920692421585829370254636537624118832042878992992512036703682100316082918385403873316263612303673489586100369989106641716204580350572224953464322959705479366042437266995523533820357057882960859995273867915927234757002935919557536801199399325546376828144542042722699270411261407050218788517658778782402306820144794774287284634997138300477812608033901203276142619288609844699550533486428226321807990262375815884091154104861740543525301964608878855667405188131961574573806721266497204838668792507764118462548329933982428145670214413682294314854482028351465002501577061192856864663442195203856423431017922468374214013428435965735270152334443925719528201103123221019160544584437176651684913648039141534558354405880601286903586842757361074450488170235932161644392990968903982449571683144741405197107473887226521635174872476441485023478690108581538869190122966061836388786060086908345468920604269482544497069734515728537311949045601956855897319523282228247086574546733367129458249292736376848566447650900509918842076826474131074952260297050094959009548194046140320544020946684814716152052504483632419197834205326609354494622378332338714310490140160502970539086383644633088375276997343068668103119459053674933422290062972729732983129234076464596517672829228470953646094956165451945589807712963798217823533549291650613292297003184966924134411275737356869243523064756666168689438533102678254466567136918543183352545631639886222550929103860978221181144585229630278739181957651549190575715134148988672713867232788106513640628615630094237576699724588174879620282515719984967468246518522746780591266375501973609478885860355412337955365708191072264457835475279459349665947300998041164097655478190353297268787597860107613964950438066574868338281277435830557961215834414070092425665069704873038973756232802401372354561657716010240522430488409565397322530842206455841641373009852157692299050770386555567072282488034795983689525039255426217126159541596303920275182051316157145929170525755227131339671644038887810494703488712007667327681681720691495187816262544432274314053157647693854032236871753744955844515605988003656702599916204902909332278944914488761943495265664443179711730470346728051136369108572619811489874451477448108631081962316123807170085603152079687338065619166806461426384235110318441907156120661476905197908171167462728136628235362106253619952942055987150844202325604365995840672106137915979347282405873543102975111567311286174361800690938020066873001244590729552790918937839605839955131795073262295568464589204063762333350535887023795866000654519514114280562545952013818084677970587028131881914669939721298541515955281816454026274171662887211306423582783124670884465007695867160060466436297720174951530007233618042634133856270413856821806539795106716603062983952794385638216327666961936605763437299919849958121831850208416179148316608697175286875326471369914636307806072174447534339531690121517586904154693230680797434425908800425288672599426595174727894436882256065364338401971391732292816030367381595741865622553689402465862422328318841206905689820187455671244836210304047058058005083923457330045415343213752701748484229013868224166004631563845575491723186963752222982773947543963293714040615810307792009913510784821911997626006888937921764644659449192321966534566787795074780175453801615920912318866588977087303260938753503971915597726496668828051714399014655592711085014764363821856329608013939612941053272839558070030171300248486538379629443513741989740791314830817510892231868984186460577750793980341394875228118818416155753172595331531663464369167522258214698958835897736500890708760178417063580979918254476465396927697256433716754197770189309157426269787581625440984129713525450022034644943515360208093584673158363048818926929020751522677106745111262624329567199715974557117249898716445854193771383862251202496178755791678351812150862866748189052851779647451420614072444036226386706179232044397031198970642529780944306360980380902248400228044543853388158825314892557459683412384990433988638947701520729113283857374899989790813495253059128656395038319123629653081417417836037743089367520465593407096231511377593265939081671199377571893149389641191631277027735096327943737879253009315050189619439607575769174386425031030218764026060132319760695144549860030482881871886539411488452291236086081341453439520757040848341251855966509881825071680053922116732870559707721089922080449117923961711857242615735116444366191817287993192633732331425834993917096238462297910686940493672978516291593290227113195033702380472970882546612727754893682168462965687578779685767805786281190843931460878223086406684509889655837592467473270268651196741631556771014877576488673931365436628835677188402086579588106313288117834163950867690788960603965616498357549376464548468289754638786500180959273942298334090862477971624633045528738861364892764333241100630673163892955121302509758595260447429208983502753287174199115168683251565865652570932498557763514524629913538376617508444815394332512950789586378507650892624743373848391339804202757327698499826941576038832724609869350347032810292929801992943165603201432869500589744325356022060882300384612499877582689744425295353811967036341113415872270679060447984182060188959900103743009132451271800103510153127181376956180359799744321664569145457216323566705355022078072094258545913560270443567991855102868232630148703959938555242411238394330379682605750804384035849952478157545254567832590967893242942215245306096273066735794473327104752109390793493097990260397524929649020483548414085198945093726703544192886405220283471960249537155337105445641666283090214402582674372422477335075300096832860717071921767235345114971154480880319404038694431923254023379224383460809143891386364639740964017182231827228553314866809308416002614379578816526498818374988374626969809182567822110622847667087775939748055276965382689367456776081157882118059659604270227715125546225708510159982525237064868353697019685736981858752452875558587572687093502603497217642291100853464091205002598059380215090961907134701817586633485520834120217020469341418255432440228293892582117463974089806908437764328229357748494327406044554110652245245895621015278454241478516446512109231568934474234679260852473715784657318081582471060964304068311345677224919442658427564109172494096005033772408231525340504374810324178659469721123673669414568725996166482180636279322828742549703686221696219808834335895941142668591638815013036801594442713969502368355631444442946751608276111757897305221843414782091608300466763058048493804068686692651144786354499159224630663603053124277063660294918408214417741657118566757727043162407540071184390364441172166156304130908118318267794579917616220082135135262596007548530751614958523760769839872249586286540337666963437798069539926225960854898416143805823308414400282404232854698949696017455305944153814546206122918508831598956431479410625139462076511240752722610429965376164479445288708974074043657608898952060295177089005553487931459156594834512907978911038037713183848437237575962021881089078190618065367288155405889476345627571255702048219547717912787582625256019187719816656646953201534423336667373320141785302844569268289413319614866418705525557871848601300412015002253408917231725138235758271118547092719693813972442866466769357404104409720812011617284374738337910516164548126945267994478895640549357659456305191066281091821341651067550267367545284418144355995487908325318161180866051962905763906646247813062830334869780605164710282928224362006806313321798445371203669398622313126530440681643230195391387371828265658086219859822372942247406415622423402557348365312020431695562293991888766212383494185548749405642132707198829856940169670005910733211836652542354303962883149121393201891932156804506479720073603827738042274498646224008342165612733216543537986066733098653383563392477067851471660547843777561570875365308845605802245726573664430915620269769499345180484862420537840471438031925755782772798521048043433981970985948146621464450346699532331866376340408895530287107809821037303127578993720443901872127504694235175095389261730638578256517865070654547407838154868967451755200893665746175350440240622955802465171252082252875767172919349452824550309605658458569147699391283117626275494725824988867335538072694910319889872029818211474356464906342973616102230607650530677623749609121414775562957286419887141562132689771385561133771543878017237748248539290418437540008897308317018091062249797464938975225844976795508459768649854792398457342239320211794999358812558613410440169775516805253804628396428649901727757167643768954694138403612211202156480848749659535192091963893885842536452781372338705149349426810486393740373599650794820739161143475034773722633169283997205963162344832433435542924465147132946035765068233927803939732350787618586296222651968531827072554636949142707379858694079009587303021653486717165360824282237550322421739970459899538778456082016714295554260888796681952179272703823533905551114458839799560435650297474902651597535911898306467078686716860675479807678295051461123748746138743306281311855321827706638138169098540306627654827835903003796230426784062119329110689878411531460869287276457638965852493111294769787661429057663650562656235000567430148088866606861455340928662720975852939735032067690119391827227343113502108561924296668931490383313988828282222191222262610063028556941165560634210039718503855106578832891064539953576412912634637995949264078465232502362322310351571059220021847457307385185698793751949576754164254484505722073210667171740831014120384676166442293101032148859138026149684338575023935328653207259565949463975049841846211510261848455619691829125926253109948936770940992816180519134543978778933105374719839664894473781290749853414063396780265924326720368515521797696273014846168500814330246627585780256223442777429773125905290076581312791451115808312208946268992723141912554012939228385787623939342766903622573520485914097342574931541174982384375492672356752196149874848466761947981029533938111191706117072955399785191230951825419880725507457845138121469209788515381163475374625512227353081387769199526957802699580965814803235288419587625448407401404720381770185363918948466989752682766498441334308744851230323921094890140973794827931904646371554039880916984305700958528712547071623280272481709079408096083840735635148455669723745856752173793651748060975463087549896896955444371324350495087265332161665891274184621797329046175569974517085505690282334707359892522206080136559557351242467766430636018814413060665829764813681117554498164720650687915289018896159770574747441803437159075428911968282605303988899625375686120806455528127276287002937293543954053484101393897925783029691695035247374721439249477859416497813014003495584046226814219325650302639453669893442913849174233209524651507999068962001239777244333198180164133581449409348444833832783456106414857241715345698531320807137379339287171654334373386380699857198389433265563118014937955924734423197966415087259922725159110510928910509502286426892201622965610182075423460283349218918695672362704242842553040964856985126095270741216274832867760371676784943697863097683844956253252134436696593827764882308936380852657473659725340715020743662840757010926551059520258210482437640054440988029675272210600843768811222972321499761285446888763799796671675234070538146646083162540731568676887186271889271576688312262231828449492496174966630901809513014266792514865859540352189587998496754486927114533626840726065807610974260739832138784000665049562766274187066978321007477402948530195815892214645264054565964270474981444291994032262460513207547803858546910091678467942328630179350496128453924425501293428110987093418774511942481203202969704381572962183276380666967031431145333518419136402205054135011640396458307977359554139984550224462811685644034671605815715131401496988780580888935269307663917211995766904183661255325355187763885899578227944104080156251910355053443436891971063398523715719820850756779295400306891324814108295879606206737826200213154773064774736459889260105033099408059739584549993832649236530221237594490246449578462592902434436973674564900874290145927688986028297769728357539621579078364431542804760525432337976190512643619890786314546705366332537846013951945650053814485977358487954427571625917764234005032417048060221206112720561538730836195201576348682547812376169186175104370691168745395772560243160684877095009275221162570034097965521864820998091005865850970864156515620305749658602436162007914389410432754402396646339133259502300725069660145380474170740454869914582175182461941669808779112725485316995368198402445071737467413848590930480695869865938190319008905990949935942669108831813776902378498246636253663364787566389217415782032803042002468864842916581354505248819117685117573629218440700840351399970266430068451629332848481443088890521124466020592260086403209811988044991632463132662801161669312832249812157675727921080056445773600158662989401211399016876541108512745239451223202194705440334286283562032451588540444607785767997613435961237989932146779567597547972555657725366788714857351483057291823401783754381151477477781520189983233620777053932668204847873683448440132290242209770463538887728996791774477454998223616396910401638450941293447186492714813739726821348190401706106792960867612358332805435010270960518102465509342157287818336129383987205379182908193924925124266413413125606035859350231678851063835797730347966874446046020250443575747883510438007642651212839735586424646117467504636774289320266571186765608785548081149148666127416296539805013288286679782597179838398570320755402359115481716100965733283020829002167733567013970609514917504781094167350162230942416824086198474586776334672646564814808311422981700542682428733539528300114463206937067113814321003021899805958040596566230326900562274125328548704489382837560357981036709189874498330381292910031828140969227860169475929269226020119301097783575633477734146253291737249752142025261536805411417259665483668491014709927863152146967023722485625927734776824202676386702751565239001398263502759277043220558913765253735910829013105113883895622851550171370248331652233954530016566122903276314599026096094870087373976111533295921969360653416171075090525584037809578617648218408647031391829852557859166316906419808969647224356173443048889949515882824825454475098484379547609055974606427852950904805359021495117764729414281597266402012583415012473009822943158128133218045129841131395770190905460263863310317551432960337806859429357504650360371339938558213877602704456341913224925653184024163692074361304782876565193896128036185615149088563299154573516108605116025036712026275265853106934649019829738409822155060192823617520208097072934437169776750373959794043827599878744014060283066372029252576435465795678109660942249348381700998377594717886786007816092290039238336531348643314708309708994801181363128738453449658470048686681194983226439338855513264670004101217649654664477089041365867587907071749688728732379852707429106183306620211457678716229767354608819914637188479909022045632517320161417116505619452279663211942612890053388311522317469955924636258021046266503507749261487370580910573109780928786271676083065140073775085660303327270796937806285316155618397089096722753574187329908723610702397021009047714970399372729077042277256629315965751962575864280213938615407191908868820971825786641628645251434193963844538450061481567071893804766556363815744783615053983793995212422196600089368615165723660194396815677854151687977461517713101415392879163477162989436599002882777342110575689305413590400040035729277235846541888641123456980234824978867282124676641896796468594942478901057832248731145982053752606089411317479470104665912147310487335173297011245809580667392789569500275067459884492223524216825982853261837883304045166150936438030861390226430024031875089319420809097545145488950508212012230175761461336026206588875385354678198388178691217292466465155953998828205918140354697516635276581384306929988394347549472094182580140305737357955404700451709135526968500935426482047673113366020222848838069682307820543656998682670330104228006474480430170743562406014067395038542425430471491425045727523801298512309118157136724523024928749204421189625369874380435257594420937438620922249317482574422859944140578768498800867067045639883751241970399439485100557762392113598980855927847065252597291934472986574820144149001850978993655416513565819197780428231129675251669775220937281740642563899261622327304089207737973360878994683914234899202282875334790332664767971477650990745521643104476103779716256317167476973432992769484939127870449369656424074402759537897297920572646744594171290495474521106769583007308198278449964170976668129226320697878540395819210641466577788866061155658569566029018151191893908125013247896384024107037317224728008427843323621281999696462278773850851058102507090218139139287205089223304576171405282005525473217863216596324977091671034173909038100955338609733969924501761693466534536283265885590984491707977343306633835901193609953645309917981820780624859290344688971179036324989154056370254224775417315001593286950302858140427544994925489199208225508884841432480330066063631624624374155734103939702095904936758330025988972802261701065733871400973633857937569640355082346424642273332322065952124572276893335205714879775557255824075480157498467001694137777502471889531350741472462950327274672932341918288140352905144574281555931265515546715790482308280430995689664079999551526781290133421941139623328597893691308483316155688189267980411011658619656655200249256938050191442340523098128955313911498507112846230913899571338207296453127820632002817853908395826304924112735212372746380966199977490511628582833145245666218772521929259854212116889785075375610008473421709154743506226626707317821650979094131119320652712693904587843651701362643237132115912425989710029408182199093871829508179329509687789641027038956437018877204861503686436186380169489316600004968760323521162937611255385429689569467011395597756065106700620919660812133370425000472964783882225071010579759045765104818829840576955643996319153170666886769870461168382790095670334443371634145628171545884962999159654456940660890142735200043485050130982433976756599391350258293633022620454638797075105365154813571856592472304769035601276230346796298986651804728637337540193012481666943148976200233293586011392280212511730935014496380032556536469837956048583671812784971950357636106325751723855313419446917968046484129354562011176762545590537500022455166400780734222656280218714595937768450901097890108347086042448009739091513695402646634484029383708844405630089111809496285423663601987331777351488789279296809221420992381595159599749546767548121589392378365647278475126427692488140118762960324627137258212419645325503373709090669346292629197437476142754902651800685923010962665474800607112344126734957619154788436345025268837490510228537487251216507756769220195270894805853927991342551064711906030461272014351873398056000223289013623895421907652152498369932656118341616257690971889903210459044492911335298201344238672158464350848883526439270994547784066073231972825861221622514183375170978272510554015022739401863010682601213552200710221056652223779723308051305997269330011303213715438474407036667857700115469215976992317136745505447467480719964975613396204412929975765978854877116384309519460938344058695964935689824384997273194683968557925602895512183163843527466918379837785594644510711541999172223544187860135458271172112765760796621481803114928449155055269156657083348185556083700594808047752500435598693088691090696311301855630042641316075912914820235703522696901798117837707713055433563392281700134846712390203989590695999927237566608342405728206787496411483862247549438700526493118008695223319545459970495336037094490748108899646147414869503095800987219014048634923560736580554799626148099683603405513996630737313879916777357121750950936425681000166235854255877642721202837735876841152379506930069977468308849613601437893985939419017273319571403568062638711171716169214761526733299786264224864545235541635885537673225697010079672265647814755582619763155499069856950172473424381491277636703257207508014154761396218971521448225719152128805126297405654026983179590079301643223408494828605930395959823192225736894358655299635582401781339267752067611934653584315678409903587542329567018036068554325313998779113164811133694843442195938260464914130364942767945227604054385804461622137267034839023685000560935758711045322019375714365056753244987905983701926180343792606719364622465327466406371339951439242660898250581924316403221804912847759791519966856247164167266040193157281838184808249288192367822411995033750962772928783060278538061606907343854681274438366990341147758180029760373514958858177844513070191411747741227552325686376266221646315166485762129679656774578057459415321029455934647769620750869795056259916250325978807032067178812912344701865287295851543175786851296076231220104463410894783135504713799643542088984273587183018277079565808380537369361787456048230039890305505358480900851920476174746872309161174499952294648552365964565067680228135564793290185235405976731297712880267857803812334105348736440027785238336633381430655246241383563273227693803619099161605971422111855773535149644895967303224058145795204033394717181723272175716129547527408536308838586090672200713461694671746558930212015997660347175714991562035897946137570396344302874222718811985819718747932481393346605767700312068446412903850760838587957057211852244253301194850123877235847797518880633216042240809515873398237326214075179018238379086519430383254965540583707146868283356760162777762308352445463365624896747844664851192517875152167784169634726932267879975749194897314049127016549798372485935665954442057816462895889270963525142840798232651860223029393707296539015870334919107643291646009063124097555352176399593524815105494631729831032008707714379051154080773426421405516736283117540785968641950289887194557672935180927242542324141555741630357595172389614565509120821089695689582053861408142611958410165980359345414582535620225497274729105490243532758627175200184625309869136643971310489131235004377613051030814579638221257632858701173711422228677350487510836544339884271399747423787523331494586415383659485812758372586203002079594958831552586463319224685020583528095326867997018691339284250175517533573934920783262884520711643613586794035148155568545905452496409095612081179282693063327327141009932896430862999879036776980525442194391474573882724302313834904950485743348999066197128696097254110616767780602932650844286584520573217105365953490382739897793237372745113103145831631654539038002073896106185512939037020597577775728368340920001441483792239894635049565552344224340538178016611098806543545711605733938285446794598582604656463455290527862434194014406332098236930177269146218002757734179739261497369300884135927060139517642123362187314042376397991529343044983989014709820130620517053052739709125794716559407504755865528966163213095143133860507192342556230116255508901327801537864587493053318923338216018135863789693612922714673798187178038881152930185346944883921102236960699836019577765103445117080509939373085234282363922140038054933625110477530984686079835122720219052113901117865541025181552849869277925466620436610111776467193525953387732162785804916328487286125172112078374620050678113664146046741562399390871855580282480063264322792274910182465453277623065256341502639224708475344043415801966870296552995612645394459263248410930081725644974653058101164077732463828780979100538499209046001083224830612763230934309780127541980414407342976925474249882477960051371535164064174021014963977342259599529173245082917040959849646153771529259090400565479294126992779664330337421451586917717793037479329230195864654277211970016586596843791401168784413506535957551395947475008723730833648575977037922162239961368359800663167798426125993304328556031452508407419306087429740790317275601038647468057001838363118959244432002737583401005229858459084107961539272206586973301808277544047928827511327507841614769355765362349872767115426189938462774580796866674083746286396582602069989552689389868352240889491370564257911821278094885286157986948793046293727145064462715607030540090377487000203729089953166077008778887597038693346241379820419239657754829316938017035515816316941044718017599379264713374520643768400781694572460546095144900981635356474589419158832545811781074770207211096773182935981976881975765313733201935058661104988533881579957477354146099804224310512600851319762159675912013447413156392253629430171989187444985156012620087854147370274561909828946969457194189298845586991434533294236808169375127035694334698685650969671185224323158914992615461085287879803328857543027317004643977369215316886521205562161049600450689705420114507413871663783272981032791905242336511958373894558571363300653619766854023824868375880497590923581813189111539574099566384557498550791745346238015109179836768969940332001975157296928726997168514033397676704543470271509789232521616643557271319422802344856576101762712819461741510395310913892386331142549626591703827732434110486662753319233751215691124667544739375070251279764508358866268993539257622673463954794700193094024660363038562358719980260407120804956857211020218069397099767900400401812634373565389352326275620835473192937253172495782652590712582635129711828596125780865095521701800918738720369213425463909227167646624058445855133831241027716905455220477119225346742255421892061667573149569185852182476667171862942875002170036484474387259722891387307199840888157372841397587976750684159990562898179326063067124532094281272467536905553382814219111886644832184515182134853411112620585381646523520634350514087403569434883537708335291741354879448624695994140899600931210094222358644184858809416943198878964872881117056463206647664412674836588804162837737366895919805665988820658264283308175252322858035624988873025372165536555055977670551944653700124903370624464148623519580317861755289362448455708359624662216604311305105944559772836561502911246468865825962705176710699962647629416401084173767277690905488716679203258369993204898319367653229228609575970304856232965032099282037505345657618933114734465075099245164352450110023546343133940924912839787402566799613754465692334172448165402395985512854067284199281607531178813647977443403320976769155342573730008626494212551086977067831496676820823627171741635555164091625309185799718927007904487785210923664461728247039537224980067547801323497748511545091984952198928587918133564322643372448377485415475218370857637863563380317934233544918896828920804721909132418496594537359843185935460290838480780715864909304902719746089300644343708053418755247683622833211103070963987423413039601710148404536385153959830671920859941129742612013413086021189538632651302840264458072786060877043914227576195252191276720294981491249909991049337207533741568223696999446284781675078278201112680913683005138193994163456806528662859967881309899724994781489537512730661505050142617519430432949926607838371141153858778505471132720016582736950066645133600896040171174075234686365012583411629982773022394711387004283022381375783178958947932628383369876124947470937036027219257197424188744465536469595635983979099704518030307698975853110164856667533738096007318499304429236290006033340337184160760580819639146522941058056065363005211864823108736221466227918998708873328169983842539780716490147411462145793814144527007693821326253938866133279658204471084292442986236938280160150015911207425651795930001715127831879766461874555258940224864965408688666827104164219752232278250815288862294485269681822008998070874514345431044757651875393973087955271393658603345915053542091121309989837244100221851988133373308941770100181704598916380316132297531243362337803815522047911142822815847818777498650799745566333908114086672361102440324950472053649357997727094040924719754564746873892864102841194191755307845910613032823646445177191325451029702168499213660726781211919969885099775162943168311377725559107955332563659975436694642174934958062677560439438111643628949776092166891064684640770833790861598346899338105909608693970978344801862336561250835491366533165030142791898542447598077641096146569134273772279037594466701675772944730133071266643652099008555524371755427417371431152279985059096306809132692477237857213497584879443976532479711731273916669043998207589673671715175433511617527664292743785903292155319947961063290712757851382160036131330229270927622471283289930178595311230009910809224110722952609773474527755294027868671057517339511616584714437160226155649523525710466062601373240248807094111552832802865279659748366498352835060178546458148833881129694964890052089886925100832522899326363515128275468991832136917477786457941960190667207570823690683101070735930767918957823054488960840158508013475973895305062304332268640504618525107899007119344787177566804823781105151568871527093278416389853551032452114840427212918703924563062070058625661244460003073506734414924604502061145863415644026123622411900583862694147510066835653879504898784276159615488729892484493133754496189935512849673077545991805961546290884349100528464374837276662569274952491745903445921025949377660070614538770059428174150564065285511332308413532104123834779657047188471882979066104199743794562097457246221066908403476964514808734032394442264572299173205986905752249099615396204586887881348752151802061181271044906578605284999618645323239115647992805225456841864245552522117478710651660421738304345276846502192547184210017249917015801212525447604852362550261387295421883183856675147591964431535559189098953893034051114035778576013600222013875585568274490794451557710169217939034883413982668499149779437367834378964523567992819373607313750467299308185910875223805648014583911317948760583794561182772209947825335540010917284494268925803773218304019063146732875953618763485897346785892785440172131493422969551263494052941913307322294654664762709448853277446211172809120405540762613266600682464691718915320461298761856608669881958459284542610418821069579103474835351531184505859631805520183151256885392045322126242151065123251533809144042056078610963561219704451553937874562068021968384075150478901041262553320386048969312402072408841507609956504902016161613266592774951272981790407650662220918347531848376805023064965014292143310976641568242745769416816817944668353856314811978953749305880816310982594578661631719802424329535857404305458526614475580788371342032911930459944608969989227010163668042665426530567694050260929776676562461540508061197403918697791194154720336974143446171804532185502736989523594430945863681090754011817043249970335401100747490135160995718095312791402788948054124180045412971025042427756147825397081837852376367324458360772608173391735461392437623539789748319456281778305967681970321349176998345550299660940697805294976152105884288352244433202943818675583432443271386923576409852432206097309707983028344516735531184172317017666405657327232113329848237786868928254409490479593743700908973226230932427418489319253018989662877100801570550878785057016750585912049201700721594301281252772036288723772858217942975438359324445782514511582743853115653523617708531498932011289120091112259085575721368480804869147052194879023012343851338511105157753961577218888482497037040885069927766578581646651150563895918445563252569094052496603733605788142076060136567914759602902321616363423162321830199803682863183846590508189018047523620790631029462353779286113767951505524162232478630067452817072784852884536383606542227992280852062750036692421167930073271372945192879319265465846017181071502577136977437938847379330490945413294869104779100649565720304463372521163336098250991476872918704196284948507489727288002392100161826452398521497164415205221734741480996173633877970665543347935349255687948134133272077090981033081760269498004520926834494307201237052358861454573446001514383650208650955170660429282930990795241546715115159132775027916642812905467555553115349954278499224616786276122762514639898626195545378380298666454195417310765446201507529701266132405382915848249069138845600658438958635215112105887001286326621784086751463795648363201069537962229700853179036376313657598194921289114241399778243091902761791516570774338370033511009703915144678146362538882587627003868965895472265394811563753503013330383440120763426285687802002770973629275083541320910623862235926473898311903984399019145248978789746867592170183240825015422304900148451091125116083110084271607358196684762314337361127719625801890649480763600965851382749835902712082809230218239475281318773103607526644542974091117763765055605973498657252299724381575588443146721567257590102000528937077710354355959551042192238671696779701178388602095507799384556450801654698271683371030818651508064603609563035588387384931439341230484526507188671012267018174057555444436728692314292106578810695420477705076530779625810609282820914014682932794716978904262848584870308794996401185315667825486197233904789102419116711243494001965110610728539120261611964539127379955467215450474050035077688240559355627289564399703043928091380046876409594448938928266513770392163272967548388934985288803202781813271214036078306835994717003704160882619113246297574666391801790983270296046201146699554361481913467400236420972029277001911001374824242543348783845858230875449009533408906146778141019431121492509583233918284976345872738126205770176194654931828370370719180211908969837053340989529664351869451232508206126535914177704261532172798908708194491686904746770659717042122734178310472516443025882487522524679766736723995008273762102071334544106159879182256375192157928204084234491329924103011045184694694085171439412836991550054178580805783623195519418526037740055815552211728262917850180606741944229321762808666928269140233301620634523874547521176605501587996598159793376163601408284309086103967523149997375446760116789167784463353098798150315396483908386613204502870424013303160444895688981011659212881648122286740364073323661030347622275223280842950569036410836258842004571771062309598443672917513707611657961861745365170121776716867709461460863475721715442169313005380120462451753904056401015614727573536045757806360118014797409312160743664393756148061239224404070368770010176719670445200950210279915045334162601955961421369358400736973470683138089878085117087089919001648159926771976723168638840340245295342499718137269545118949476345657648515114847526824111517670840857834408136332111785162754547986514899045279801910282193314018792767642708585033000814075532956922999561075829161416538213665699511667865794857056661725934764985235278215813946912845287540510887253397026390556783261666598412612982262674868219032421094449533991312920738613599019396203440133203805270536381642283168869455223187314048470032651648454306166070895366567497801752630963051701529261789541040232809308622963304624951981638325567610390263462792886741107859841874388198129478713579595088606230841995226473902952674857726092104873267072460288789208379309017441095265034355904401169199925134465052725371546443957425722403591432499812124117712906688248366228578784129571819556659391192509401748102270652839450223431701817997611685540098276097150525690050254027042458905532754013951531197373507630872017632750592997657664880864890561333348180714534328688574290403227739159225762604936229949182170893729829575533175409944166017821253158003810559827898119327416371065568792978695388043804467247787580953069075132705482233667468203711212073782986697732658890906004285700214873231593444181439433270556240175285751973950576631949543128394810756994215668990578148191065556024218929166834771110897770977744467370945431764268670500507002660950691354840193574130343820628528036977399769306988498322195023993560762501455505693520206045055600881327859232333668948701538680068991922893860460637615656311535001264888298394529453613706429800011054441866436873194553729602581494960742658394740825446546692242697363323681321821582897154917689430258031626502337045061585698143408088804662736357212998464207712719112181026978940060440297913084116104796970414806439204851111203793624106637559485411398997609120175439808211909223911092092007355496007023337964554422966564877086694126249508000139992072576301143485951962689505255702554281964880899137785319671165921549680162739079791447166119167273094236143017686643528389928749640958474152824221287867641481793275679768269916413066543368485867211488518201716727195297310295746246494299846481899288978581075541741751252649657713665649993064138932715173413258607634443942132128198985322240200445076818870805877380394939784062093986155601922559561580137459670681949444187864431456020072624018650475311828953352583685081134301668628562713212958689279407833386226374763371871698965677563909686291549847347262517870690442790922903823950047104577046525947734010205115533336450684234607267659348905555113857219099655415626788125098232988781498897765381619286427390836175728050328380604773633531746572913910943927114202104434244162879640355857671267403233672396931620493243341329528462096837370929712986713978339068189124324267495382154504666854237617569613261955483412218771805985743409543695912300733956857743002465027507394426529420122859732917937858187964004281768885364299606210219236898532188581371353516023081605821702340313381664658234863089771598428937939755039769943038187549472347717588740431452370836868600140131824082920106583787181537644743334704865102598395616550695844709151079467505500470469558441458248584948730526027824306239676941978471984206472270100860026769404677469142905924202822395376734146092644615367054494497457246017730995072471608176190903066743330805654050915211159014301803949851049846967320195124589563873947078212927325478796782817408035768144961483788092528153465348425123179282793826691223168753136055721822917815748646197774172787834832569726818846456814758945855766745889692248293687558053898466932557243388590095207735810730044636510694198170654572268086844135151031003272372074764431822341014222973880784981948772529254407944175248973165921946841005614869605304741510565455891796460032362208559698269982507691764928431961791054247818419884383043496433990076218119113183522346999421370782322597677338677060484442670025315081046726011787991274049115573075034928833080207751692669692426478018234547805103779329195662143097875720285222961715865145798773078594406973648310720139417861820363824073749967084548532447157015710134774096567821829244857840417678612289864002240919928270497699227112396971604352270257438046275450631257778918044070731238480101184978555651819987224209483383308925270399494742034443744623479515393947816248520017398867936275776306912281513184376898950851109457545699654604502178362453571316982909380570134877144404382688176501103532168606880556114133547783766270648663253814627994868082728091816489106689802280264597883532813926517266969877496812906169223561921975613900904295612205311763453747396621542517149587392109690348778746896140756496770675207810744584381418247050920374485302466679632760026433578208084197578236670448553171364778248934358081324359956841010353668616932155657545305415008692047592640602968001906491006289407376800278191226054818727954902311046492719217151197406109944592243821835512728858178719036861219736642741367861633646760953623914702398499482325581109240500323662070864496275357946225250790256631110351405855676393047508582226506370631315285955436751559243884547927134080300249861178657127958710973196549621109066759957109008690874666058616127417962296976945601290115505632282772531744003769190360759300780581097820138502683454532753960327411362253779461906051015235715469665814863442140737178555340778931482686670427207938937133370138305510056412456037536091180368457436168650690235304934449562606953712195063748464842200880159230482376610065564230427739582053664893760436096430343841913314975840345423703061740259444443275725930149554806221444846459787708890232265386113400707910078565231382310999547964042372931925320017782459346639335161285917327906410412321900123697199653821112559089006545280176605988145751738848372038482981690118113490481085269281255650448076295228592564904737756193281343799003847582475971713700415817860918463822274405517462508386116482400671841486590759500585893603099887669402945297190320323947607194251351539632599138652102195153271009457389408362930611629503417021031588719773664519568543315991501656064987491122641043882521758317774570047956768082367753096772387715954878276758443267982715452403089056511760465741455033151807513497904899931609558403324420428505232754519834536800728758400872965374517331683072194684442306614176104756284922284953838649788996835634168551966658433776098115913075763588461446090465129572705269588758159518067613678161913141294964219760798145338107796887796072070846363540094399514365928140932792296186917201040665575576116604776623375325530589516055806477924540206631148366034773428603839501695620520008148305643940592150642655349804798907616859924687549782425852014138709242084659661170513980206496597442985027417187599436477362929652326762787625060769265696348315318899742396330248615200807914756906892137742389438688036846122571788808231896497667152435516098954376956763497124328174676134564900648454174511607552621207736628083902265073148142347836102011662554500319533433485139435243899446200149302284192047242789807966873452117890653264787982835930376474550871009305730460907160388273513085920557691968162918002506768152131681211362182647026225278135282978877819326631070052121383196959005164745618062763404794704050749711860559499057562830408107864359320642260211688099731927382928376710812335264504263415727350638792904048785954702851007348668037179679415537649772357071935877739082840785154106053384464589853357457951100987917243086529942394347210339574295698273747253792619464925774940822392322829684966012368817636739888270563981569199758083117623007853316216055699301835698430654427418677970056332555002066576332936798137513431024471286025895863472511518593641859188599533998759855951695679100316272423200368323482510616382348807599088515134474397927410022745066239973624854123738052153370648780765519240680182282053451765419738977683592042551899413396673871015803542805232690595864723927962316681840314224469114043107024506434987808318499690410445508757790640336869695059314799382270787892179005035283390522775773669475363620067793284650983920279531273137022753137310704994837371721966339525170077783114671740834795896601717405341043659795126890823178430958420356832725441707756688336055191088185683252604810473145621145173516266472097522616345551594152520544037932300867494956960718502954953764087691318565268048370306908393002510589822651833174641209431649484236607645793323146255473446822048799024502379945892991092030721138324941108911532007078154220311317936449487100712914996317624451301515588468160213259646058172252667059944226305360114865122596335880016296541378209925141568657336029143765967714591152652698216249095031067067180249833800511272463120806891850959084920739686400409225821953090472064798173890185062454032213222817912745404086896015298537184770435022188562261061601522499954136632746859038752324091749173472431845022935739082264552839152263744735396047930591514588155181302352298901984603307428560956227021011807585388690297069049276854296654984380495437796187264594223180969822634570129037063974805902109370616814218557225228868440679904838080680899919482136203761143464632429532395101413873611972171528339918915025686319327811512235528222341051750076286827192617870198822417752709990965981724252675896082110679675325842008447020356386673664461002610346761528183113287981844663307403293385712805185952772777524439257777019917781013478729475844481036080527564404106759534768251726920533843048713414937990434734478779380199578762895804861621932488835588573925768469104970378244416897134840526974581609902574222583830632084847668334323191318025201727219237446785053547275389397977712525116349970376316787590215990834215375947366972099257717504374425142737913932064945557044004746396696636487660541912027580631271327990171127835050602128216579161748871811567784069097833564379931507886011676814161837986861891193271964343928067615696454078370087560982890803269538089236876511722605693087550603843434646481287179882225203396983388252125773624883315937347256863405776173324240281896035405464183053949394446317539351045701884390642255697159650632558566901522748649124390623471408278575833534499731725047319404599355166172914568751593289191865728564602074590428865215641832423733162471012728945854596255552861189042082354684964600674774651671594874838516296753290658796467612790740783827925790060576103135457678271095064316943690906274059078802124257796184775535932054126472799886222159591669238304104814887504867261801239797256951653555600657768598720313253712591762630869566048297442353110907409183453632700031137997996248505428310919710797113953492962666734558222783079050773320821581847572702249966561737148709548912759142870398410613348676903974517760398553199666197379509909710103351098400971688186784366019797954029469888977654221096088655173723895482439871183863429211804502609903648636446593094362014505306496698966373913108797647465945942584856995146019993286046446862382557361993392544913297391190509664277845574299326690981183639848096241493149879413203212970887809013063943037401712448805483141642263759278500236478472261639808969652311032178491292049602491057095984623730372160018326324186762234845503830689793831519203685163907068608638337252655268958609239268126962809895264520072676437723987539298254635288939195062082042265983333856894449523327894844899406531309734631680425723125683018192150200237172948208824348684706154181754957128023029217131436464880119394412957199819226276224265903922545156327827905802471431365694505951253210489814789951898731201678572663713066736896688598402256400426031688336136687271471647470692062506400506875381572049917932354695684849246852124184120677101712585596389728409946811226627892666042278722357660171460861921526091226558790828865116943139370086349162285627586804125611610991958667431835760885563025581666810879015631368815156676554444687999880382202974536885913274526369210561503266308354169610179093487336873769534677475873523693237449636476138946551213183285175858536129606083948442183540365495746695138054251578544136507909062462771450960339208126428969427950124964920992758762001235527564234859137593161777977286936266738517826718592095248041794346545540103572468033917537431540553722445153883717408411459475180872485825017549438590799396019364933874102683851417732993438420113291849237779894197398248236488564568371665599821833374218980507627532286869217157499622231708804556327149578387811569780401790571275299993699206934681466727465265616745358945534749486800602943098723732787056812999153563831120174338690573639455366800769060830988066837438699832625926134888883812435784128345055687860377270812698716094257246572973484382599484210764590302557152400274923326529427448872551401937409250921597877179512581502700158661440760434967084289140652238860740959515796358166726968617547568226234733995715088989976873693677230382997983235243845431320974296215241249311445930571510254532918529366584714230192847426556988506639719186346105273710120498485385103558421429193050419975865835161843754411760206031223251954263638371134900778809273128873776024056139035401351580549299022638863895829853843573589938598043915044087438151253233765523360104695487094925806163099360382774110244361170615228475267160438810664996729332878859080501930446703417379782632947294213860657887410201429096236939065895719040219430203020537980188288454832884665782987170416670459087212118754337712987585501569635783808015543256412432658582580629413234960159353215501424058308823253687353594775694625306858838721522920256932281378123180269168824544004689143094448118762365804683828598349277586924813749834906811209168370702269646635970194634979368854303999151707593220193661321475279553181337212383553663614825490817679336976703544449469903805939081976010823853442138848046832455156727013994477211858003899611949430120759627053979363449221540684547427677583123750741957892569172430303017248175610075403647963014200769197359430935248097136357865288883853093840915926150024897232892542100491262784587419015970059010931325671252957261722246005696480695028861487294332949568462823356262427351556208429802581835685893018174498759160752413139640091511468471151771422094056659314546692438572130029748064225576232777618351133084828285006133871280465944006978283563898537941126332036468519048211319113343241250584312765372321104449663397805030005057313771508783348168248819926045938402874835137666260742224043206958492770718785766696915088614584056195136755725914023175592993008390047318791741852399448141088643969354856054814067489500556410968800714207847256327833777719631092173349953116533287081887717373288988793109589109992413213449147092577811432223616116550809391681711328605583561224535915419419079215803654938442089261583254033075096825552194024281725263234416208884852129870138462190150536516559074653679654187825885642915678706002951214464272015639991334975695021919206704754252602438278123287030657052810688824831918777652893870342237190786911777858616672727968394701156198519227842790485299005225984653395949924181423512934911543761188317389814567300145061182714834504694580461366148768846327957320471036201679543879612730252937381170600259948936275814227092358077389243702988933776949972383233534918328919035300244109727210207512639860644873854196842901182343427385419201866052380214629283415808143828916303861424955824755026209665965809249097184908896236021338911980905280404545824111612160383259085365484997949258124018774015578407842554645089153931696544022782344441336683813894727267521152711653902914464408929491221270658267452213882747250241139644243348889128457610178567445556561166403146865030243053087147912805840832686288002669606715644781833346899851756004678184026078468792715902660937048586988942910795099881090894943259280753661808628246465546565737134734637050164639640604541093588962186717546099120275662311088425472386645848888308817236552106175445472091532524224944889924698927050274475194157816533903725613612238046017176395602117178815478412543452069452284469006158231880525997377878318587632454449887867241551680989065079818128202134799388244839461114281990084443763278294470557987034139059607369893001926663418963260916964735800627569374661249567851397084760441651181103678133665879069803695133142790069521919563167688102811444454168021416554185368991330931145336033828207000447159699211256169207207851495923059520624310926886835548387247450051080196934960494229096181485350344294409079967037838720099714590363958024216224721154616557836323580680620710661672497870331353026939825749261203044428603516345683215872925237987788570161714776515748126980879853277817699889436637393891979307122301792468005859781675585947190469671597232668841619358207281931703975596912286288477763683135186955541045716184339482129838345522777594207132106719351570852590607175386686553078021999966921476245369504751586155354118993989829424254272919864469275697879672406743650499711483459429754341011772522034896815208045072993735324656521384218236741099800974608097005354637154429480662818631474974624813829824687998813220947727370615865450639220583065290203075449744724003301765382566642206105294756446637985911874034472126189843309638865969055257196395580398449171268532153804134295233049321369601466968877406192210538406531605440629133393531710616904031601777054078085431761658975842933254775236199006927270672296344858496651068374887361804900305990650944507050095209449808506793451078752886373032852745401373312277082947106858513821686485014806848125629098705603678918487366309815136503404826413162431847321405228028777604276117380229089754071361398696475647270125940835108439143061617538905253962239551515031290880454815702559524715872407555108439846775558282585816636649688801454694900919721850580822883895221518694596915112809847089350981534776365188292750313534158316318613450700968285496578105470081335897186056793393373223983297521912935178216896570452070533736925414689228287543158842777741019921192701656961315739167511122325131363499224263381201425768841994807702967863463049422826010600096169951623215325076239842397709220142942360993977455436207579788641181821156292747231674223740957713424766428489745654735281578790280133315018864643677780177206525591262349191171531847325637567337169849500300399602026714799606640363387720827142832197087677316970345672195834956035250472283841132651810873107258583286114696057537325381306224406721427114608457075796978846231431657475422715798878218467559467844748964594152782306430938147174066723863880644001097766728187198828590031722179334297580723006413561323743158854151405473251804867776795697605720399054331460739053565231686658945630784696020169421647711794880590957931409665948176331659373709808099496484191471259404137184131288391901618480810311560662378417304016706619057123446375283636440536211446280692141676187694317428623311345845064661259708434006283275891940538482954780424249792638540290991708265331450267627491402943657851604754310839111080640267084038670025871288183025283416716536902711843563300875745417096927399954743066671077925610752555668379216175489967852670662039028807311315632253440107110119632110804118046085847958305105721263942275209476952120275133869727301767259030788664127879704900230775350171023414154483711102990388062111281376254742670119425617132164728956570738499617941104759312859643736974069495256817088719034085157516501784593067291068761599277213268597176664247690000772914977748859352913568803913215243637418876401308618496109407597655974995064351322654522691484900092979236247968433225903702628796442154327788929858227971617120936849974276938974854969286623467191240163098128528875604405050976193857062334798361291932425186757320493441021612786454271676234380929384583592117013922395293075304359137047391359230590013289802846206192756506829833248038384381410677758964610174978585496666589462978370468985521269852035147012787521270186825344537268317170561932555589034477790473713072461479013962780372117837592291777959023978936685592708667663492319009845600349503949728249567457242584838652819344525299000682659853368054619556794329306492606220384221856732552351870644195496348878936334827505237960771805782744526587587722353551549142650889963097633178737290371803849437530788228222336410186401266143080366462512317308818948761765626690233676784640805862273205619570487702760402535969353443099148498663606231673062629781501080800457902648909352715628196464089819139213958575633283191688140503776590728233307026806322672212281376008243915424326686120064261939783783664293912102394943777697965793511260841274299790174229559734353823603632031992729157523160617297242610613286924432338102369800264939695148304202305062919333051357194170131478917703463589370230655760807800602974562312125499995890296395746415062803437200393984489813110538859770374696846939632400390918385028343873106783056252549086881499664984872780608276858527457809914618790341527827991999627738611238600268285896839249535546293527664613134479190697453254956878096727552818776297721150314978243263079941891987119360809265312789563093106650974356097024730172984424356880264824598661153459453058804679757415191487385668442027542918727790286357761272779154470935871314706609602114088662192082769125261626078781609048530361387030279715072953388524977914667491339135274150447698630534618069006388265870687152231473644891407516431957590599900542388033271151043351847055117645924680452771479278493769229370034108647230646899217754528699690733696176422381049513753615096565541289560747591613155044242454438223286074120246080752687384519612894434422950573210091984385306163533885830260876458369590557037636507199211511749807086192658534716167450099857499282460811256902116388822980436479170121157514516912120135530572019340721069474399085456977245145246627607463954598118106399140920571164290968472697006556546240175087592550717680588882932923843560001943698032514828823509031654961450381867426328420678516498864061970693927921780641594009307727623378783394187630546048658866910405298712082710399108476855577676203905709072561504300337525197928320229580129734887734865870833243609282693914343784796003702010319970246815283974608976467259364290621832355443517010554049184228516814058822173368840560730105399907386354720500109521883037781606586070392754895665776337071450384670021540282082973819485537163720901665169922111466552064942997648402466623664403016658593685534957250333326206866430831354175269121190789655908141667070121792695099458858739947496578675939472202737505505135366964954760985630243923337797832208543356755045746133088553699674755169168593695230785515408557598748961207063774253512006408504427660363649635819760184572512358189444969891021042376122443302947449457373359425394862711526189181884240631110249360568862288477300792196047480942086134500850420030530527174959581997772687099210926961011239846034621777443515094320585481430179899155292783206230945664925202060582843647209403582419656134553815530541072313890974926534022017250630828015062517133442643304131753915986601011590178702011508795504486017557049574938533110622809764077726237440905288773309816024337991105080467246261196404720362222738033661343829774638997438790377053118107898516483308162266077455773988133211289615806303127276457362222408699331334277810114623984791951169960274844903259989265972980288933734848727291399016826706983490493378549462091836136843174644074682691813616054430547398449879633635839536372386210383307921087280177455528566167774447047066131972097214784553863909329107573192981345972940550469524768858017124546887560521167531249463813109419469155127814632719803490503746276172285448033857571358276031282976045963066924203443448966741550282123900861793623965306316181488347885999604667780535714641433170043871963802748915924769953730881224122998463228804100581874113941990987446459788014681141171994127766686492620364646337773133133485775618213960488684709098289358533707031029073616381254071312303585796896542646805620425813139585512464693687690650479070665951410843645398292315921260777590704021586299438540064649506377868282119664521790332858944247466898334454386949508298286956634010795281240790790537814412012880512091357346877533385876419290268073347402338525885263521009381271464859977427948990070517389235538416383841705766235693726381096993693507221245125942300621446957894952403473227401670372189670316137759978117111372522995367475453512734849975432975452653957149418570595673885095893290820722727165197114622611132616373034360802792674292294845467853542281580865904283008233854254919391868647848607341043647817290810376469422305631383013608920738766651457059953060507115176915900722303912259045296695139740702117194320603638320544148058205488979748767855340058728375346234808718830752464730745343568574262903078313928137698963979856407406850384535379126019908992331014010286412664780953240193534415526438467379401060955406259027493987732318726254342868383401969773371459017997777473311360966935318582563176516998919484829165092323552765099794480777613226230292484580881812012028556808202603295956495974014800345544113993187557361794595897650429048695702971294111612002412243975615710976361320427617010227718027824752454687376883074563810731510557281021952994578178830710238368643830814710917730309165483616332494562341007800809537475616447572211187948779782285991818142725557063453263576823109741485127442302982020139237434021523218822264493497334738157594924574497391671837854489490540307400068987886057049987640753562951454175670407839680687802971594291264209069929789791757220722226546678020858796034628482817609216456671453214122086971475924834344087157442690210654357304309915836791233732196247299454232370003664180734806333510332166619083373040899457888758525600317132070831678422745292949522023159163245193132474687017457009965931532223278990237383413911624251084738833814053595792961802363455295606806461713811785124046044428859409188757031769671787451386129583441280587663604466841419674604853622829992293971307643580397711772174045353823655081217643998574449778398707786732982368769238110427262211460087854582326318562155776349922876011020222277664848912101401552985359230466146859970450070881200088518774127368191178917780488586218031412553656199494321195366572576591578399789356347295950405535272369559712321386196105659231391515919784888628184641402295539171140729719647929900470936409265803756683532219636948427491218856215407732550156917874823427431112640910310248387952799508268963252789338520992290368527925548253760290482237591173957344073980410100289167597195000783763691861799405340105533169685429282543372220284863461450764837382007650590060620574596142583350463853262796798183480434813945688072035386946627837762119506516265632773457388520222644886354515565592809755178827796652905579756723968341545806985509493548637092323028145580553503570146771488026391140160517056524593253180032115643880815994602106714535642038855393691403459494209848157428133173542960520793711679757205590777376893253994977257335178207958008802757743348372348688993518797660697384213727171364957017044526240877450696199580258821717978348908898875802432825853625245529084143220707969010175877581966015823405331668247956201802653992613076593751332491827108068433173380778194095945503360229937183200436481977123013714688611117684121040695256898961211821483536161687706175503365323083954190455652823141924442299043895940795715142775979237760244896721562679348712805661194955753535116759686219345618225001268956212467532726418438470506537459904933521046977045026876430670873958921566615944723507800232138939524641422428482375561269543625853833740647223357375588899596970832743334126179410310993797328792844056910975918265448633938359503216054868383851607791962437067347333988351835305334387838786682154350716469558009970110124646696520169256274398044950110173192052482543829977084288536853801365476512543230474283430229955585233291916323757633575238812049976468282028713161741589389156696149630452810027214052776158365553130255992423539968079880215531055128517615682037815557730983140324668177669795466243404441591323260567001074485675823649252147190066359624603660571080371879428432173609649175621575126150315525877138310961108930467053151398073108121356685628890384740638548808482991741315851361149968448039269017364858648053629868919065409538859015670837979483520595904000983695670649880002191851426679136766062923022768268774665195813393232293003382448576346716982579412322884748864760119589371925677018344847737351696507441466337347904088235653738726652246826087938873246374062431452663887787173398861696419034074173713300870372388554687933227376566751331005094834826184788942245563554260324626447296733948019495085700966005038429143564371939148929331580813790218896327956011955432899523310659953443300817741191959344343325556043364071969971997328644638812249874245937335146824960093209792115987191867905611171104541310693829640135900903975724589913965338025239296561893746805411765090610963522462677992783954143666586192069857116510616252169317903881297400119938295889931115673491190397355817274283799652719558310229042826324160406844829178054299018870245491406478571589934486968294089091409918402945542192026098960481332688252441986052377921960425303702412502688131577745602058588309930536824748315311024697050766924341604812292173933590768722332949514598657458701724074720136897084528892981087917516439222390796461990509996745878099493495833060497950988568907307651474232352102923695946887738521263696312528332404040679974279904770466523444209952594342994585384944207165734869436273682149780869892475923380088981963421259781926452559799738966667442272552720685264020580636701890919582585215983956203657099669506728927076869949159138059025277740563553235766060930944103753573055604691666558919678942884064817377097710161238469531167276447994733214929839018941301863265656512989121689807714481087482437344753745432175822590557030801086411304746765418069148563028564473830723037592986724645108589604352360077283137846354905789651739530985467409506137810063183943510589195644162796682219363048227521467260600120142115902106757596494280067251238588889270911020909044327089112196028250062145074177108845487248651792176664142592781699845055323623867369268818588744840294443303009923811833365606680021615283510117634742130976880691086948772197658926662803825133540820229357210292781095015540020833527121226403126944361636176064683011923619758057247224823155334475084948070762562039455239674038877336759216333093183049835382027057622177309060231150555813004807128451920321186369262554174856694090207716478562463052511443451463062001646259840735436086432215726543324639140995751696293955077845253389313204702054320385132868738434062637013132603350271827202746570403150067760404394563241365852887650440803343458784104091219584436331249043506660737609194319721813939082314489019174976751357766707592211981337865502985994905884453123138487032560710576668922256374330006008678438385124787399242751566686257219778934473943475891395222967808701160251312116708464476871876977191404339928260060053568991042542115513863707402804854653686865154255300056419109960516117604953809544928197499251766726041784899810310451651486183301547955223692608790955569616383840413815318866812155018567120699204114230578418542688623126044655067316750160146367538846650514907314961900565165232158674887312136614130566413621612886191329659508478496797585237376911808194967061224703826269924382197614921680157389568804397909273922733509250328463896431094542625293751875463164687927021342844622495365437055953682599556217290703757979735567254722591150145434383358036082743080197836033985509618796045140450267354801283977518831043105181687008832512985224330146346004698221973700443493629943196810397917087478029398140145862025957006158653885622097071169650174692009686141381610016236244382948304277293364306832693924719188559386643400407241477275712721928780835249206737763586731444821262904910607060719671108667568391516532973680977103957573864222939891358162811934462016077328013763197687318671786748774559823795415399219813276172274195979647418093809178782484664309068226460374472048024988316845916846532169988009841178999888744108681751540914928853924845148066054156070663706654021427033384524085715110199722643386071356744707788716013331633441949206001440662758478553424046471208292564984904121218431690666304117064062565190064909128708756181758209933064581163433801123422985928326624113839527595009654480682812183882462246337829238330987458993119377972864024550683971413208277307326165173422412532972244497721719566099276462525098276670875724075663584732183195676684887821259350892879621783798379343322841438590238598008343230956968570840131692388195359344070421710709916458084380710472157472849227714462763064811455783420469350754008299175196634107412051872879901947414976511795456688622599650716141610214854338689117252583795730210946617819879761002530702973314541862450106960013080593523356801351230889313115490108283644100263431820526703240664136807804852193731966370963158064410956674498435692598476653143264917211534543386690635071428871706799122336568086093495873862890321273433278725047329349576149620881494396047653778345963357940942059726686110120962123124339718863636133943781338346613534937298736969194086622676399398616652155206168700749875786957323189142236016458441692062898498364440859702019597999982923739456322678754461770772591225841498653926919617130761480916267770595027602262055002774380912412763816409033017133788496693146614806941548097371012131092306053864992799531215755479849900389611140965849110097339830109494098179329701921103901657336323621239562304381670213910644289617571627252147701724160084646765857413306798698752949188570297163373535799539158971142563077669372974559750784148910798762755693332587000999953791347401583152588272766082441387805330360655033924537625225669622861640604006766879513113921017736932420000029779252317108052781522422954128477603887703974059795450324425294526814106988209875822856502767466597245856614478169827160000444579351766904386102715566505243934690721192637868149944830019766210935617173047247186238497800037255177275625939530880952604547757622405995070390572944880496639407942102929792281613047394974345980203497862868480710124262003963939705642565737755794441747288163668750245267383048131636962947259243459324021430737818705491309945564703535773174736612049859331778923409992993223366406718250802160459781234234301438879617539262351122476831099599852160087290318810431709265497346342026557126003525245615403552815655858767166976158476499683638301993008069032627414054088479912158226061617193148504556049338337747496774556827679510529050011428475797542113209790516695686582886694424413321839266379561013963992066331790889299889366753811294073619509242057638623016812537077983996353737062843781725201163394925862410205026034543901920405202075821004909234069353509364745350911651414791867057055940531456776168708070230108212816781846363478215605116007986682733216577594995500330750073465732996754987781705608337473439863595598282565182326907632909666603105045161530647418029260022075803688345687814511626713584023098750283017750874763358907985957514139942789873523471198148041697670675374269110429217331094491763048586820638896776122514099964316807669992571548805659261589603788983569305187471519133390918859060687552830212943683996169575114157412761642637954423671410885466193151749367314516154164611949124000407801322399912518203973075742684816067197229089928609049602028017105624467292747739116551331119409269521197299919070494994438620743662621686946701670393086337185183129895413434205346613414631479764237619482893193643571124537886407801007246197530407644388043641756924273168797591347196862446693212502927221785839435737667113934440876587843821810223571116744847819914984683821911412713587813158526578101988514895619827511990140480832703380600630831119251230514666350612370370730912415884947342461907038085374854006528153276234888936719752554130842735793453492324792144195140146170226312698473964049623046494347591862699592243172802445335741444447525120278213468884751691077210939193068495022145610140290378784682684372486165108626684398665987743584271489131554663232909367793158911965627053393080296876731094232296739198354207212122172978037268125848068151566262136311579810206864137572249334355537553502364269659485037345672654854743842472885456929028228911741172052130439404037009837602606189120393536124881172595691554505836763884665621964944178381137148251565540648072380221351654613360826193220055982841341062670148933588830674880404886633283463001931865369747104556628837701861395858070583856576124276959709545924862916305334692290248172913081027822486169421990508456368989977267130322383001063148748958139360700674040857762190709011032402810487581987188569541205298691950710923383045696391734594625702788928856171161408564708855080128713685705995584790650667124207372364653718369091603077268961242708023156808922669152349772817106868906376679708121794077430578706506609151099023901018146561892652388180072254605017339286038528180126713885012018406899872666433407344745094471667646011597798193600830148062214623504933539109488986142116171042219248632150726596110424979831571237888575456815938047153210755327268358108730030753009269223033238199882842621337864404829077799803359424284697749364005947986822515974466290011435307982556368301242550209765061587871503856922341072707590603813940847349214974706692952223095880166454605435523529077421602866609422012316771724113913027588973577923240023263323152141241384031846852132925876844850693904501550818310735289026376435946960235206456026461681749849120902848136768251666646516323724583777270846632757878036308939255426654025317602249480422769331445268432452077082811707588137919986062445913921642397185346580984024953943287069351559057580832455526551999889386068534629490125938885807167502954616076965455009045756095443075323857504001575376080327683607367539931970311852576155103876972858527889869650255175576001937011883976911618628997148189421071107731199403383012470828882355607105069765185699325891528773333866025266280674024549621641738608070416617927093565877015053957516150251943963107888149476099035775802780566930950162340047588802203249665040983451802141955139078494208967229706345734175338470060614462437604197573418036506617680946516009282795450841632153939774102309649950601635311236097509847340392157912835715563640130059872916625676857259525501683962463813780607109481355762331681537228787124320665214830258518117672605890932410922149052735376633856187848453287766178360737481466781268194642101815550876865000203823326748727905112541601521206425761365196774291974830545258868726861707361501036555106266101865384961883324788054664067349347719606135392662692271116284008198075584663096106443861472178849916676123957160190185782413976768692840847321873793866013529679528832788961009313517992552606109629719097055473956909349400643425882152551809878499519167278423713749998146240201189174311778862636039571925160155004573949899378698264709420550105815049470647928323174663143985788838658812304686898868441914805339194838798882243149821460979170309862358443244188972759426824573161615696026461930616786304001379020369552648024861679969852841538980116045982203727171524548886928946566692848789539605730810098977438896212371369225510943072207682651866253397223336553572043304648566547166744674810016641480128959627634956882956955988154751777084589720110751983500389691922908014434011801416357570011896054150796670265644143183431484827341283965173397961230916590906470962219844446792189845617358028733823197670201277257794155956533540257739184446153513173620838589467844489005586540099949410063127740987011827910254251037963916029984826689185881681867188478051710758099251443733621067831850006452633514471265080995064426693864211903764987263652202802124816506334228259806877758205801626037382639563140954701124797466219180501248862570936242233812550614796128182160925068093613194675033267524020192793183461098402570536159245754102280053570794646031280679786572884981952782864109328511601853825644072176265941290705147582832166754944142500557674356238195597815462003346458103239880303320901643009132770476592587820948717907905566872618552400163660033388160487152260223465880756840454414668370212985971458547884360945333076999879652506071538538404999446005575992152165348101773367116777232046488541089589120507170918513526315937407600014200468925871617021883766093270393501639149962988334543515374342579710168715022924295809904548458808178140154221497936162127517979747732291777562342353741962300368102524830602632839961248672094051845108197612005625236476955356728080107084307713582902849147054916026632268916287342605952238225780068329585142210671560065109140350318839492887530878874344843392273237398308531419907897370935415477391132214484889915753710212519961687364333917679311816899742426986677407637262787181708366040178795893927795548621991429118917517472002745046031538089895227934531430491640736745152607356504293543936776107177999083066537379049149474719746538214368104821482752218675414433598093182761701220340968457110569385273482058177924251830438373769641490158720518168936421295571383332242033903556706380955175533369754581793091072445213517745881310505925594045205445027497387495359978326036165635609798312048209575575409643326458680090044933492223213922230520278660181847931944413407675079443783718529481750631716706056058286606430049082687412946800202314768905464006749417320194891080308162338270338358367003103471662789915126090818801247071146440929910746896799323939773760046270985128739731341634615692456442637979196709502369060102357756590781126978401961175650102427932172999467596347883004204890135191914216524453306327205569600512810977214936698811273398668642010063842957318896748361410610715598419949725579550870167129151077405847067083957736787863267400981934008490239907021838939671576418982514538605701395498085314882692619954786964304789571482317419178240674287419513686561786867455794757521484532599780012027387810697563013807402459791969366045096898335498002199444711656342543233183724420066616436439678075438698728336660721940286088893090858747357263700555103792272228967861226337908851777765832099228293662417289170940021303586955236683536160776838562889179849659348561966917961571438117441445458648997633421279734540777878188950677344049835046983328604538660462619265616981660137783612640158325515582205925690474921065052332341072542580996264154653797896563475455889497522581457772313328909711396845163549265673170966097633856581028390656565389168827745329568431426746086147416103171559087152918874491201733424529597493586643435877766660662720912280157851382075309006134056801336432721044551911411871180901671204280540993244516487470978033292511922444797666025474806846991103469846000449421347006300356158784818173702226630927610673752664275577732762162728286450687729058905140636122203505657782727754268561944299759506287857497832061323642137366046352067874892230594500684294123561083653276486306113762263371488839243615092494276775767980402713178807595649149513556221851507883524023351441402665531888041597352470700133408350131526669079140598465214032296175863921068845170125196429721577973803801445137448612112492263510140931923880555615516228382299210040417917028118728015466787494343649078472356713974495969395933731095401203351806654213424311787928122391945325365771282139304520380871841522969822398910181178808967423972281685537071357725526767778451560572415951958730428237093801001134450573790832913230585179386286115846885743693889404251729365987938102016949580316442619703005269963501595813336329139079524822779448230366908137515557027776411228695816124418815707860282932908383725226414612348415311114097579200384852957483334626509149344920013468893420939382532894807415236401466186398445067649786791678257209710389957560842965010281004168929910998906316041826943045135009983525832817975776282079244626144466066508464380249155296853039736362272402247199656385486657325645097430836232465252094768380773095189313313146065105448558213263870980590424827114205664498086703552350049453577658189484525833763769910166712267924197656244183807632270833609058504599205102965785685434565255574107760387856180947474337132618429896169681585870150903514193191001782039042218667143440192548345340109587990434984081432328141540546630822939023436455105488367929096675140054481850232241387771951518517869969576319948408436487459469633925221701121822199365533959833008436841837286175971322582446857051104085136977492554174001869046875824873869830887019323995115992651444274901041367966184429503736367524469532267626848555473299260873380049922853119024468078862395776898729281544139384973561646499188540556755127055288119873421556570470466394841824214989777115382362247170749441314274713459591803012503077281618268220290436182568190245535862259712299975562669907070997652824599092496038424614437336581349648666643761800789842056125595374860793712369284084900040237617082475557423265549853689558459131398643293155117300854465690698797565766363011847641563980309522363612777289441776347717849206648485012660767164143387721547627521583917730276778994150636668258457802687944107950393484997231377525677713256847038124844338310860361108163017710848839515356487784310621700948136911673080083677672948521534539674332155684636049028502421971803445703797281521111456388221417264655226238951596138938409200311236183788195792736212440660077800335509299768003569476280784892890126869752156900744881865478327836577574030555448113375797319874152361217750381876850630005505576428226204535810330063989472167525922049251573051542739192545079449673104730356876466446581855788759791709335549445004375873144777498602511548099836228211731709281302972110009189329611214158789172856012014194652640471718484911616091397534316638119515304487892649549971178031091634040410173362374111087882537830219978903808933741545559295178614880219825119451256132696923320966726503555259789854130780872908748294816279957107775879887099788503935162553947566299639330732379215180859384357167898664265986598267804042143532893211236589768716811067660483496524913557100269360120959974710976509078833392490547783306261374338437940039880561463891284342441081269821815463022247474832336480423073736636085497172220352530969454207501583364005161840378204013804387258564715410951329056714000660466000317352587777945400679133168230259728619219316676735212662922205909548923318772729749219377707274826323650242450070046121989423585852296195685325172040048244430879367954181594914755398181688618767934003615072353776214922029106727838883132491052876899221505362827492764132385182188035493672407035468475313339467143431612916548989539155145067840600725582757691851161076340655357119581102733534590923732219600268385714180516348016949991283045075106362370321367493606346560665807430156041943442024066995612990125273719026601744391565735220815856726417494105680422523511147596746763808944137462117990442989450894076350225918436962261777601030795855789303977029542984536625948260758443873298490003500164210938209664541647693004168787682395783846478004207967963401012605531026307837390541913773797232740894278890877979789110814254353014467100792848406983558055652009970866676062746723688184399717979420492604184460755376419235296820893652880503654023598718814095012939186463604487644016359029754540647871500159662316115341746380629083102187790852160661893189456237558436235598570829354014359856372495566654085603746784238502998787161925296755124793626498297722685607415966816593864160171439264567530513645815676455315905783128503014541918968860821989711629889316527432145184444866902078066918455619900223137047149003292038508755701514877816314756136396446802064976280094709612854283272591043250618551116868378412035384312061702488372962007443989260263912509654581682007985915200224945917729392073896330683074975981384782393522077355672203684670348220727617856731874463358078773818794141764444679078461701349791064237091665803403359527531952306894610011086936886471241702837877989054467986670610042763250117859116724266726802767539599933241675676481186302513113819376139967164385221535238659466537232312814828255141179792241629112153871873268673171039118097851964621017395408056852849533217216171083529687297870351371253208403276460624720734673233593048655335140520730531602684299792253260466624293117542570920469243300438358292173113429700693196378337549530273335183692366340007457397444118190030200698178994591067071307713348648873492136366491719472567840947779993400325470996071663672403219132899500430807294147632832268918059232644546360035478733545353513646354615363899704253061868232212298096303633588751774725513815127709722044053095481659097908824781788628768285154187276102607883693867555460281444487892407606693480880979668274457638548324309834727968570468921562082155468791131092509164060134345368638413487952115188351411926102546818827332885644672926801415928136610804753534791795715573400980404296023817304002595846779265479217983268756459267018420135269329493681770559645829107266972476991063893189613595283111976824333178843003852948474313072504012774486607380927476249145540833243763928278340911836069139611983093074753750481699970238590369766268711875723161600523990063739668482301575678278991092651246903315820117476027837663412881990719143475663255696308960124343421400792226012177388887765591330833007168767265167218775995653429430436647345264000366561194179607171853819222373096214012695051621491032970294622622616720651118267711627942918586405359698559968331594979052928349764192938477414292183881989916262244162279404609463847844574366793002048936223311552085579055676249464215903340820182526026000123646872948524179627451667190329094525370131885515458366754731829992180716549306831627216843408287256993295802742569148483405349539135650781050353823762848750856727741059887456428329190156784772283639801863025646225390629515538867364955630208879679461388821364681613598536661597145390375283218707245113012271405469282544187883975832653478380267798292765418504146113807610594312560838142533740724123749154614564712870977313811230830604933631476086698597846015885760072069024912515007195171166722304948165717302151983367988840115223511780831188453072857333760865968732082669247269760596998927370737865150110312932378734600545079325953944364946920664035752619938304789640342256201370612280442045131186680963037143969610015526903177118590981671276099706856462688716367101652278327080648336640997002175300071955624054978468748348932027149952012464635338958770266942296594517992866855153481361140367671610173851811654223366944173697481135244176462244496193715110856915444782510068208993818827759122608958232380315240987119230241874524047027220070849434162826697538025187714413360168745920979378697369743954402326679085204204526105056990292852618864895821885737615112429353040441045184441761745391304810554844528569866124033620926253159703794542665728017732673349504581795191166770388739873485994033083566952803322471564376704426518845274719585621765906267705219579134072705840276263915513283692050587845814737744416247322286721447519813818449227558647510509259440252853334641935771646500734469798769514732688715935015185500126126100658821301810500112365895849453354564692312644765904354039983285406575165543240216606649431195865088475956604713423560227710416105296122529703631811599967729127161113192225189602790959868100092937589849908328616559400055284446985807954441554092793197992269840268909144227010817422154118108693841975984663271530557788468713325353114395700023502503840460042651996672163731805175623653251179979629590503901453960755042910096188841811338091255962488543789109423951232450883488670880977905112103079432522324008456322950930572859675442105561316364814118719182080841969326192453636179264676546876231982723553214427093098279516421765251655549065338593916754871436429802632191125717948848273657102561117110567169127238247151319504668469516635083957432983146169422979631585131162485413301319822007166078856007393282091136476048980731018145055279072704785056969187831142456585928477821085369105231041676589032535920983769829400466521433427041267342405686821412497039873873496310614174008488609305028312951723056082721312523265592068592898223757131101504723048307981766989551322887727095330665529787410224642981971627704296743064910901958876251258868216370479649510914382929759188504029993453368900170758996641043696606553105480263516244239814948982240240240812018113483346345364880143472549308478566089426432151762662143184873789289299767501389846893841523134783267937059418538848676307349842040812706690976577323874754651471069140593402429748079315115584088055174204746664946651489001498402147690814988526134038637862077340225800842899967693034781264153857632742919262075453879682902238133032331340064663075301270800017745480112771909331763428245147695033321999141697197970128320967502084697656188589428494952926751259449645761583279766390213102479543245181171120353378221838061426093515016739764933601983158913869945733433991162643182674308202522652129633468082329926982881698440910113906720247795909322726479148392306005103391649945666113121293903550890387095484852263697414497417049693305540331099934394305157040663908897899524366303660330918689895500315881957397972400696099017933263151670839877112526805030075832666797228931699633824876633169013070214164459829741201215851312712748388011372099408025224979895395337271907912220201899207259611860366578641829294186198694064721461717027481540635192793591032196512228144124742420574561403184026303969869129131112036092308965178572001482341879527119303666173887784124439935419189699140145429621614123718542538228074273736789888615398627239900596042416331042408970412193536153858707066753107752512434055404138704038115308656707843995336161609982747007502932666774127499819887992336490731132027748053025981290856858420110713727755635657875201242631543196398300935561662443392390558660428559318430767347827844469632769263226069745124662361089889463887876656660754610796067791873971013588510525538414742435220833325913800564899258241606013372944387487184568416929124407209821730897069387087286113443710582580270873071407257160641448612750930290713396396900113595494749156823614697860214114002423559712886873641093253638595550890198799917894495598241392239542696976050904547176880774765265553607167807986428577159783074634540279495932422865276548579621165156108884862894073289323408731031896724118553292124059594653033805072110028260810089584159792260615747390644621295024324047336124741001558927495841562382631873643006077333839136571242155614749287297082500695394697904496412474936634903871356660290927998072760091794801964687578556811703258377628717529939974459232651707491592796304862259978544650077961181308203979357838498836120093450159967302369471169765691475370136311211029178222046612922393202330171728347722768577746032185491593163229810249577573486701859323090708344428199655007709159544357701980591810789581149272576998180800690222244193930413639017223170118445823157712772300077268480551894188018843519710841798761376389473301264414933858890499360854555522213926302581378298062981072907015197477628276940942745642022032541910688536805372757991445476977693588189694412813517743351760749912862111163276863603692326948912956177342542991000994378641429911403852526014132872082778313277251939901663654918568272585795632437036693726793945022321356718719452328339048913763455249272145944236607899774048866109364410147325571715757119147859629544921308096909876887618883016803273462864489619819531640895108563827008647497381768453425906876371003869514352179476907569046738305383196063032673511140814568545211848769027646578165488605369060825489769888388035343834144698666946837873958856588305608006837156426116415025912120461697455854834366019960361463051077224864214108417699993358773667330755260496865476353316320240363390839086918801169245301131179081394369004690783733343425033720027004834213501486762593828994975442050873630283677947594366969856405734002378294592943068261975536555710223607358182199809388820068304944407887327200024063081562755066131655438075688715522264974465075674809290034716301775535281291375979406904810184754938371267716571107527700734576208885560022390170611722586858379119319252662020109424196924563760779907259884563266533132652890385811535045378682668669729562829421770684206101116158239730106458343747438334858011693013097833017306717528807429584018537587101621431364494219446389607781246844849376849721081265492547340821259947920235823144819827856078318904811854054651186133773668638973303230781994011818588781987323244385216288958053995921578144100480933540521025394869685017995661361626024287726264488111703841278957478458645137186699083963466613260086700049410444872571725877172145220396623147444700619855811752046825079976818323675407852434385248786801782771383538063398138455340169599765944811515701214142772501859277096303457676675546324026020748397752294050293091434581138132891746194072388213941915291502061387858052905817857030801024248212467220534644155808047961444380733038122866573990818674612721161738773546266340081029118563843636677272226446701924073338945472792729048898191015559751748477602794886600222361121311531959961976600867862518544738562304893489044048103300549827600843912962027455709080756023514265346020521760353343716586586108303374484014420869624375543686619906910771725816877144900570185878746772048804852888381961557104811970658882548982295078757915316615415033969951638934266197312911654612833745376948265362178860111227558992986306036301396064819879234357136007031855439105293508439348112560612761052800978884274287368998042958532930420712501120246531788874709313119153936003382981186112644158686485588621776494734927264363688855648119961770771212792940132163443926502677234038546718250017438748527921853157224430396311388726329478286066588480263192852261269595346370409690942105692803341905418456699690697079626912819034123675012856183150629693416365501356027666168952127938904344881858832558588073399912608882359776102226226520170991595281244327442885975761974911254706896701235026741687256507881539108148757706933385348055952925247234954012959358683029234751799249376179892455419263099242139113567854758775402866864490188907169131679201273546802803659389460762044304269611053469490742845978822266754122413150196388218587628766944677847254429561523253053594128107611296887458191576704578217106138677092297229648600068085838999170515550450040098241452072049125628835302753302017881649130606785242817537982842925444238985598535364705527639789831381657667916996101649581301298448825235656929228136740844604854590748142323891121752866203079236779737201980864927097143450355063233281161034657679230496568497575737182717643258094683661522664121290439420456813865074646533532286270888564917321014265497604590061405388676312375208634888546684965970699667884436471109907048650539320623888226204836966756874894651428195243370448734227915689348926939475020894549176976505798954957303737300090860514842056997122241830856273196577612214396620994494074186879532420529910498175528959803159276766972206802805648984462278553907002322835706654316193267978008220241986587053701006940387148598757336848157166302480815918766185181114865896746219745764384116541448218601865300341914492975933059443051808839436192872852153761383813869626283415257739357816117391540730098753983025748659484900066182148255471562494016857170711104864078653305965412514700845224672072754528714316613004415409547953700251265023876945001375898093563194880352868517259475722144016992147749254339362567446538546591970218124124287151850804031421795626795271152143034655152977999338317421778242192550910470605833750625435427771958503560564034488990427729205412303686054989938480766767661493665808302264472798247164977017902641537508547278356968538662309475783085885240304002411331591115780836803228854491890059745863182179292943532139601032557641250345284868382850967005940104731777821183301806071746177261926490730335429517562211752672065313198680354388124993296841212770452752084711939747953062600937868724080925322482082562288799834234216693561276613263899065369232456808417955981172304002301563982213375502953317754864433602160160682735790424951669855357094731516484923788537165332448361833542684570292667124657191234977444055585787014155527256783036370527023026989327407814790598010262614353853510381280480322702311607363580091238410472326716352850564669465772995525025833597138437710921239457820231145366222095947766141417265704471637403333705699565098829210024985627805415997463287574595089869667647637109819167910049696606510672967626844793200745392298396571761007541562185841094205608363520674336924020070589292203730618680297308240071693200071407091546871114414453832739299492227916685054533457831841437154344342406138461952086263355860675686989606239971835791626270484298417122206637538628280583545257238430326790223433065862443390263459112445366376826360325445561429550798078713374826788795977490729530678718677840630999643239678624283708896577529442338523031427863743157824912080451703309867657955862175546825367442157848184263625075000282402382134172882509790431637197892354707072642245278777397174006585005836317987844826050100765753922841798025328161558691520893104527169648434884224395764247446989142354105144231348262868124199013432096286219328511219936815337943474163620275981033799601848630857592640156012049161172898194353756361262582709572585664594229661299452085905850916023904256465901033909776580813533713759941919707751948810222173417924280447362013269459632092156079545266017797279210374136950913855253742050568041830668884590304836684617334499020429619288490125728341179410413823102621627935241681921943859314541218730215388070962470235484921456034573422906683242155750934976613703910405484470959828345721990159279472473089424735908830211166516463367718905444126084415068091857403589301661495495102039444233884377295934765292495346860472201807376969040302312305890693994410038631373823560511607100957932099881343064156364255540253099036623172882346698540813835781240555536888268691802299483180860545167444997095221338932167067939063062433514760657187386991590281863218589856999772025042461767767823316389218056911460768812387145476670515602764177159262804000058628211742624319915328403119159942308570529477231348075639123293828391464098242936842494367509715875425989580054933315891328802926232137598130460862633493590540533758377875631944841965319229483981385148002362817465887216986575020736136078744357569717572286265479462182794058910121248900967614271759953035119603362727033876122689256559616053940051222273481522304178486629690535862476167927608189173447785386136998930876493703528715097729175982696012511855486132299676216324127195744773820511530622052482749547758441636772095040023705025553229984942104054176870524018735725007888998702884491282997511329007968336020044520189434680258717932228935054223068179219686969606510527623041682557371084900336442729696421399051078290176876482242546549124933425651198048825454325250245791025102247067617282626262297055423739157599715674760864442541179025581229148709551088966857624996866537296067386245473898496255247192141572600679479769847748256125583057014489123064961479195596430499010836083545083073451176791637684249938322972487283931208674292982237479379491758452309226956336276047524707931659665041919824848949986495356102036591057193509861398499380992815305988590791179428667365360990086219505633791278650363560850122226460318919467280322449632800059988886674415729389284223060516697321359919479773770938099020666397328763526098753236589567637088466960771377726987631793922321817392780718091610600397235336423035942228906209432912876961670294568475029487063868469373083689335754018162568054796668819164781991116422622961151944587724852502101889962113135237132705088226577404124066052055241858929360988315760250921336408575064733079072075790874593360507312958764260501788132128523899267510688109693109481146441466072716396377524642925111384621715884082323498862183920260674515814215650983192595286592110393156199140512453919547070149959457722526637222922141131377607129578439547432514333484626993886564984557991202435751111452012760584693165625471907313235107014596159927477061913534915936567860535077163639377313052609717590884509773131961618698609712193343081303067678093954672526294171558385559422720761478727068294583438821597622973737947994045004076458233461228554336003247866289137370497865060941426159698131579597481342885214380602736137803332144732366876339515258509404162253606971078032341829925312287768178053935742365759178134309063893633507354740882039128270645897890133148902510776716833679142743402609178865062466331896410888087399149217070055021827968436554919408915948885720781010692037468286123553539633195349258105270571905655655466464647588616201303373982880957933568734709665402835148296231821927571501521559020609855809763624833478605666550344389419318980787721770089613713151964866502291275349265559923407413011636223140630069742552159212151094353909079265043886582236780772594758602326771336169021534961645754881029264679266838910051686373984127093159256025791278643931388608473582755333102183223106969129462881525234836314914308665368396130110764781464950110355724409150183491703887714773163872762011231194119535448970003231204163337217672151237791462521582383603138545607428050861604066438437533313169501667448759368689893031144849680036146538922067840346504719560463588880016020321509310008993961075265111414044353822603540207062533231141282453247575462114566542924034071082197132594734765139796284347973661055219280486598627702348549970929417855463773515834139542671602836078530173882627266162490990136157815582271730845976114328314314857025455892935137391033316910615103192144487151038677735556602972286755607424568874095923241038919533606424712841809254398832963663438439705828528380022419070541824705449790551415421605519915270555582575475646122677097628619806574448505135587657556201338187840533686764625075459952272658984455874691563736705618310131246155795001332578693733714312817529686232881997918555554291660252275997575672717858585048201149297292557459932021493247066800363726615939828770957871841067448915499374602538624621668249899250590799601997754675981028796075866139258326199643628348633466194483419141646719782509059719360046216600574707486002511972380571825947135558213391047285980339033743865222095009806605443524972010395331663995127301702476157770867928718734994293695765154848535442822464720932018492868500255920696440466410873633086510595234509270528103315978338620117910730677313466808421584107501041985897142236140538836069272972791981684028831065979522985303960104896266906312276279462170497284353493779358811548194389378485514710995079286288691119108770368536893178004903422291780233619058355230225063055566308816722739305425229514728832110302102074377555895152423409296888417278913808538748357360654908106029910004665472696455635196750322109687238940820271263947354899488189848169415623377860865597370791482558865639856530012548613210198442348568547760191654396364947899029719211760727362731033342830813987197046097301814728801712515445131162478316337481937597914595484079536960354581430668667398515604746557195054180367541471621698529252302091258595367284170925483611962738840493916957531542532038008002276782640359390942227675406033698400559181609295828874461284027650643337235455098911728399556106280138697390190909973997421608720531908947822590361459646735225571334216406168860570652071806371987725054737840648053189140231804165986946200375479466574654116227721571402483512640537226434942746624295194978341535690592300867090643959670449886423225502242488080467384722874206828558940194735789707685255092108910954826293994477029997364320378952056937432008693627898687360656039945984454750686088489763715934922775553816120895068138957961082137079896260672041565477530468339108864507717483639898407807838389443651054451054533737524860031072179779498098746994097526502981310842533697480070077572616439809963484941343357352034451140570741595479014687750101999384182763798780084387697212548153574992170067028971178909737989320978214177938782407857401163931153016585115577988124500061937470813215337116146042535441012760367101216415051235171486473035220978230495052897322311685169045711902709302765390260546241278685153568027086951229865799788271012988184321920791616811138765916154613245481590296186533873418492651302384327010854812106622148871748180044540031416402873810014969828991464790185166161199440032570629474631035512890595735174379876311407187578617942238052168693527941584311860968190331481896433972098985884866701499461070603616078110936777114290528962310146731995963811629861421881497666420622127659941120941222942438435931479841909312645458050120283116058780777090481798742270845305603220105852895327949143488256168028402722772174202607278906135549794754407301191654852450320665165369341806715210816397415860047667321415311433008715290615923528655452512529099361766707434279419355631153142815548411151767917922453293659880882662640098298944417838537195762475418348478375463275059774872783994909667013038401071459179983741235184515158790444722566916066892661703150784753343240511143055623514932342261338680791024146080044069178569914856766476474306778229512614581694462576403307638093977501886653338826028660912300128330470705648241791242305786005860462825276688316774535624024106824093583225088501237695504622971462209414219490504299016556204605448875448542427656149301453918021062869425287430988577848872763709339180555111156629279978273061954482285768543959976224491593705484830198764648972846164007112894714550412337192387212627777851315156727691477497337950936157179440234120036747230396279605339309650862026656430117248889464162872797365628329575001330631656197665505956678671542993457157729471421468349203868731037434008280935973734932461605552265797650343746212892048902915079864246920008601517030750754196653274568869645441282605615881010355572262317363271080050404648860023792357208827249945221184153811350704971773762604942422443522902806418696252317093256009518884009055851773126359585840980673410184618948251134929813119930570535641264300886759609876790139672378521665676644241488005819248992353990838056461970057981558913637068671809926463570547367527719385721277531883708929478509001740946147066929198634447996102746827656252296669879356275598966288399523359541937220547053115223473179764344657161991443933564227048579378064764376619481056336765395405012058919647571193056853669704427415132711542237060261112061452713631485450768863325033072537869466099380930473591136810616766416116272192510095625513065171505945722867342457929673078820151140792115025604291031869606711776461720802630705617316979969372541746605330853911590249434903877303824796751163247820501138034030974957606081704152062465944209221061234413237099574600793885479731862634775920726663014718020123286005559384272608599746690672823707139793219591949787160984411613437071479052337655520350203119214025880552010976909111928176044023384543802089351401619842602408298093744657517897949864873583654820657701397028516467842014880452690549581595803164260961633260115011796120761254603903538751681741495820468310288569110735395213396453303720460523401428496248700446332427687303662984672093412914900710260337172798096414858896936042494687939310170256871800016947727702771821124873253184238870445028251252701088207524618346598017721414156176797017113290710594438287727228474899511080329017421653028597750827537643613220890018683886152429163990228644006205011032795449640333921417384419709903564398133079996592979542041142021811118334636136913505102036333950417224768141847280122587147223317682243500528340101858267029405654849899756001395165426668885059009750283573522998227920029174294912204417483660756778477643918216752489365547228885518586165223137035703676675655495031701898625821576233380581131582567941208533229080254704874969247349843778556589974547722821362092173213213573118043741480283270612340587233476853597274570150609527330269565204917905773229855594227476323703719482307438567605124147744099028202177995812986708566589041157347284129913336552811645121395337849526468993682029543144543562411340082960793256355129706604384277439577734123624440620797622133672306106884813729122537370197548350329207498033375256148102845743348314974072677358044879922814002439938561987200532524294403762912404619309205019427235408269926163798540512929334328646194192710015048595108367605017118016103188511249527298076028420861447587819078009589163272475798384715303842029237742515144873164401559134853965732180828231399721349558697379426054210263946801561316340177813107120291767976432341980055045616620117906588114616773763564066223546035730186968465812062338141735329117480848967194768211229648918943834372415732459770335573213185367483446874117158082311859062164539380869061567286437710285878394484336176348527268186764550404979445997669509016162026537782806663094935166625223035637453987914002881691114276520460831446019665309796838355016331892523873789343570746278616563695109609041877022549626930884996274509363252415870463385618426767913284792352674277532463020407124398168711050632773970286157858504358448006699231608341333370629493649439392951124771569799571992104451587413833194109490999055437847567798984629770353722248573166008207568813503733902724133995866333792089114930043406429441638654129091543447026219856533960061342509482556740788130168300074787626748816513533245384119467196897346405796877943782589910863993676039823355412969244841198827237495424822639793280055483828782796195781366763790894164795635123117441224864178058678897995998799391639599691243105332088762377707121729036989198577731012340862301668920991184070630121500339409112274923839866870803516026003039687633014661446777628048579129917562669506773637928930409391590444322245617965310686744701095360963470780882179140577409586966281588988484793230029395386065532523268695973195549130946890520836825473275761982962608521533031057521378115769765523752851415143677741817600286732470381675721036520635616989621492018012817179327573281906248058808774055291399027120746784393057820732440179674283700078746569025588484814627558283198357307886048843334431518245730088606538421892519026197716905745101907609995127344462326355445141938779299035738535144335603726030213911637321537595043412969237863724987258340960205947823361078713395138093753930687710245487912802149129505468271807088425070160918119267140780189297599404686676329982637196516906450866922944598068594058475839137824574579335593654695510252922483183345046865633518760859717917703465997637852923465565903022124031431155702314957860381385616887408402293659547095208422141512813783542792058187370136020229882246534763519208613867100917511274725415964364741932716367267499086379505093558241492671484955894589135609575626920457312069839809294933353462807144302426834971685612880540935612431822765153886411401508386521992748498265235424692103443123712686788123942616497402906032244288472235293097219731784764986678018367895287570574630546340884404556451775994819746456061544380818237598307779403872538350621897079643076944148224065611418122605469028163136825882880651573353102746711523809013532046452928553149742981726723792648577218859489474042463838305738828887365576427106645432007297565017516997006718595776881352109072108931294187319666170958790502199004996167919979259345640405939377920222640707257140784486097254881742143348055050819714559728819166703816414987076214936396673293416461519725390038278468022419763064764862090809926223845232380136300238351565057450857412549993980613895587928377930760572471335802439527727010762145249247436053301641817474969496202164069468620419564982838374835581339502229960059985783606706962241057813819541316795087604728197158757981810805486795387194897177910563620410897664313657134102114346708058975707309035001150668843900196649774879032458612735012828702568454769310916158311522534113877659612326688228447613337250440669568215648844618129273093397388200750677258364389431256284414778224181094058219214635354257343412985835560110347666290206926340636823210334163024163836152817120772649549072656720950223620892904609539581532845418522874909629164051705676322429341256679936401677897867958777114501395813505582967293502416829025851557474522865687065980340558249287254553142623804169591113539154783605130355018502968350820974380111578233916178625485431722481673927973667888491594986396764659324090206727981910689886180428452370929433196536017915875081361388488602031059168471073891952856362881168354994529384299466803954151574315130335190593933392146825931477022407870100220567336907443091206985937581814495847763690926953136977943314942223847008480822728364029008003057019237943511898824070881682552221298804279926748709490938505670658300237342385486106106654196130579619810873468792915251370575595528936609851884368173826818047466690808481358066556417565427335195721692135203285504429458283349977388878845829066510585233024996415878104281437495805502470112461490711827369242590898471979535654621549621528013800931154828365876127596121679137789852785459350630447570931255910088897161473685897633087486269436524680853850834980604338929533950583683561841336674566513008241208695774518372891606933590988538578436554417616184020311713524351074440705294077532021480042881529252483784480487273386114532931135697565590696951422573838440783297981134044820583283124718184102034330607447365571764726459010228208713593159503305218035840617323742713790790729348745412694078590883696408501780074558835646039860794796430680043747642072311344928795878635612592541068009628032725303511519169279448194601813407845323317116403862221148635071004757020079043691362254659240361853654963605999339451450036187879729211289508175618008121914748166458895461949825712894241473727438525945264743004201808129344578282606584264875178313264304312250560170353911400254963245932454532560177212579089157836985474648562899272672799976188268318999738270126179729787813824138260327874104715346494938233024402440082552799951311730313109791828347672073789145283084497556104111756466608562432649509709493133800813170504331032368118692799967392224745217946145207395037248556822310411288054978700015631513277129752457531102480453708952477564973645990859144760203880857776171922561123613053914947778712520287283892071631404427193835660116687278674212094549565862809094485620571211606276640615640899443156709815119841294139645765854113845655464858084196270601797168322415052269557415457062935195367793515305136153405656858025236244469138341160495307406953306196594646098430600683369803131589312525081332999139225425077669222702712286052609996586370380233393529892650775168920311452639564904222368363081897620076174192851100558782688927037799354214614799213714197050354473098640953161073109111580599860043418371880452206606626601990187895543816840180115510580903898868339941929236326392790665337174779125916158064113859590693687846755326947527664579527940479068225368064139653198351872232960834971856502138184418572273120821775025447663792503770517358728414916942130571125363293304541876146911176896804804875157343545823596965880118653299559460935916266433295858052176971979468164528719981850356378099964217278730441472685039569200877157979242912998040588900619722653632291234867425139309666791954496746413067625187868603207717040279189023112475369025888918814623422445631987807071266809592187665048569709404397019447462717070198522336242724759265991108356416188264261551194304774281661235274047345455453761572777830276189678768899197123552769160603864728132505713325940278799776038080672778098609576379494470512545476542663552760021810122968912928379598781996860368362148882405790980263671106460085351802211372526793588853754483222153118731530604237133557482047666934743713983529003072141312306325200019999596154911262931711466366874548730114542616677099647204520234935343582847925987537771414154546963190792506363170711540527503427400942373889911723509600794509689717432984633694600133642991300237970182445078462826339451309886638553612485258877950309159814049340139926949630389194364711687986046399867865455101726720213737644974940053611675772237154458368897448722629685442373002407181846453275282019188632595316521149507497571673262244516808305482524482105656043223790982151978131602189537212233401290398338750312398166976875522105110878841363791144581083619232997981987448410867031072487139191339808167538540709249871403972383105220014383071179756918106316737562210656926975636318269728690664221401114363647563543962828435358896371268631236336161702418778324683996874688510221710586445011524108423363036520761032153433319702869047562549710334779689534693653750981353920809191474628091671113163981642153806341447816600069428106498997293689291911178209551669090694665300307440344247180268596456470646236684993487819608236776618566714825695665844802107322304444468133691721943655528610199998196524523981866317336714084996653708939155023312855881808735177054236816667525980959439195672945705893149360385861624679389299898079845695292447480530401582303816668996646910251786660381690527174658583218784732752479422943333133912741801303546560347442510358999799263082920161109312525624781090136039731728089896997701547092712312674188742430658290717061995013653335674904625564492753537842239176797862481225594109091085443657728448687378830162035954214165807561527038313195609448579613720462348497942747187381220760668803718753333882081636905108669130232055783447342224344944985684048764144078324712324691283925867277039060456353646056065744194974297757701350438772504777933414250261611231572853008162402981451658628346529694177671172103835374471169688721151486269864581179396928829935654607672623782724858246421292046150068529767380710687155764392908640386146721501129333276681480401591969521258532728550214674033128624932359187112759396530333494936552029965651458181913352496833912074792693609996712255591909748356473443923130967309429756215696659630021894092623602219126215132058053499909721758138745407335758401667448007407059578140822984869559269246908909101224957902933514797500373152027253757419837589328012594010177514152304729964292425082241207352591148459805293811228776906757452335161001824715464473868265495721489318725037646797586127548583151418981983317045796966812553213205076025519042734611008999009343661192951105139615501141409326686222706231662684849506783223209951303511218861481199629152579690563359837326773193227802846097194033171162410401048615805218219348203295590981839907530124626801171419971052046985948156412805458147935771348464362054081486664067269210581734279177601210385098635014240514323774349263584958808393610385279622719946618171610878214615115682545737021045483129393893613762446146391492888466755398687001897600903003284426805285340955430079688334051903277596601648386133448875053927678969836587597940825564646108085235779652690413901649030895177092395527668074434783201525777492341992587951549569385295057014159066339189315857924942483088634652356127544869324675928282329585561718197655467027070162299978482061105321410155626220000207548611760250758299178751961202449172871949100253193747068581181810631988708684090918273942831772452869502164270502946114641072120625565118982778941361734833809643703998346349109050685486462755402885625817787102234746914911477961273958206476654754205063403481403887463225051125731887445258183451849490942453591007832360542135000457792324158173943020794846043335976474114089401245241034328106921394221549585575109910315629412702677954413152302796607345804021209618705988975204579225322997963007610303925520733177435973681406006885606499857865054059416408642487764291256472906958736134538496620494408725294239248192950549880313493249705209084509496351372892806479670820556057033431657737315402044916004115655824103025920310986696398534843932120396773597230176172665308735547771527161191691499945049712122644736777785881881912233322828377867008576827022539384774185717050121585122334617689406058144229157159726815872499840805892374977907405996972964937762042800002361326851041273846427350507741458020525858079701103954597483684365950403214546004175962244206501464594222846643677449151092497301712725840488715492462411508103934712201234674697979082508085868801808142536445432161924729738389657332624711470369368898601285382964804621527781091816202183643068512878920648107705970021134390620758869740478907644076186227207737657537317563224776947699593797186469641199025402193293910929025326518639917844479677948264573994079751706285944472122971684181125188914834222381434964364296587397619476344186363640487419757033389058644348732560102754462457347824823667282244074660477259053106369618772103877031316646313162001525530283433314950396440930083642630231768016535604347051051952946029712729297402241984320714547737266087515731133673563996326403712887768185994257871075958789418235240894726049695624645469476917354087961140406625661629151084246387807334035644713639642006277262636643072604471374755760734553189568047653482540612349065739980188669349304262757915877858977390269609735394843317981982886322265461900313993921275069065840876137559349074825228951297803407795057353136142915272265599429181100421600408119894945760704152072415578874681986490058667757545148773099591370331880984933851044460552807940916625095492374460615375830891932702035834510187253818506206225521218148033589682266381173414848229565175928018904581930064637047235503061218069393981762532676355451717799991756147884118325697627400098357915113138764032895226430158352733592889634255092368884160518451426320469669261551832934444007513887979341337981557889550254091343132357837366052054110695411718067937999798858660007902095559887114470547486748632802966027520559527155894212158886239713861482161092408769716575868725088408386733693159314013764921652497404647939722570002270948027911979632890445336960355245500578411565130266689726838874047862937850597273069651424381609500669754721845853900486226865315049284523923044792100735884532169312416941885884716727113117898176650308181855314832485054922228382318648086611534608042187672731242892025677998256040327203747175038039216177219742487520293871334864664895810241997603635746881031562731789007773406800236188101659992866301771848168310921841080282335568212604920360360420698217964141831566411279195056040785130086381741772056228714980787730343601583264833791719413932278348821672034696185066960480863631223357340494136381191135414165217108877854955486758815517545900769335490262456353663346816071214956906361918167427412393991466513041279577187697309247236974284526195186207913371488005632690297714998850220595735658521117561043131055754437699477412066092443022489689266202476717862084567304203689735988571173898157213974499916732907150675410343279485173568957768251940783601297808440677903074674089750179931081947810378828702376233998883807458151098474657903908440395810571530882190505184643243405655448738474019582628169127424636344738750904783256110042190638470283250106611454808925028245720695893340909205909805284448705479512887466224782154630076930453861919191754332525053440823190280935235746295420959605051482077406929749371133116311050917672538160467799790514162996921377663307016108584880568930803304109168695900069016726743283801788769886368637555610074684568199152170680323834389093531945496743604888606630386742587375687733978727743922526618622948474265588767198962350173732336695600394507081098663343238963966441931788967771658270420498364923294789690906539834995307431796963412161569835048879104162909220101613091157077580488993976289066381232944086534996745784186030970065419153599100530402500176619842324805953312795213221067181942095405941548854005229902760958077113404045224892176681459827047436771148286876366219512819786767506924284518896101206713880268016778773203039406940311724606839939780854788247643365220412768370402974785364952339376969226259092413788030074877702472518430940024162825785027174952471425555652141413259578337097506081898425458148220624553851738687366494347810741282850915100110633178666143113174495564779202856192963038075623032219645452660814045532190202274237468061445580712146207702438719433906079606764631047810534056509439025240841570918929675325494643456688209975058380356265461572293566601111971701277210684264340323139785442702141240743189266472506326980990852984440352906942492029842747307418114702424713431069770172793824226531469683200646059688014020868598686617542180624140935652882274496363233747171530357024630019236508160294295292362923826429326913465974525771908784700920302649405794251128211546202334015824903345629538202871234371471825040121294477288387065851638876228706016041463964746579961889077129774558420848314969496970216227545145156500708701393087424603211365195713146000761294058428348034573936851534989970316347209438455519957108769833784175124287403626207346219765904166960385581091261527017064485823055283318092425763297937376056061915054473191250032895529561669906140958978409867054807889358284389096400984379107843616661959190966004416812931966802156636762438029836363645548464539895242195869853336496446943086554875051757558112395673983133157291789175098282269925273462502824040986331290341048426098216333476885982120427627536086031978686291884648664419203092772694300280663933739929176971576448136109182772773291333399114312090368085819176692667601081867711191257160502154908771612915088341878962261693259645670150243694663568211367360416331054956962862889794450501417298329056003044468151642324034548103858770153857459728866896972271635871752914325804755071452735597097408654305634584976745635861902322608754990726811458720484232027504123587517604080568379222644039305940867572887458065952619434135627370154156777583348036337000790437956140722808988675580363414594146841547661947763455296780595741604127823242224741559088684096178522238762993253806116707214127390370565885239082523034531854840175754460814280818057612886487564703324022662358904002890605515875501148448684581990823830930757678888474142245431165713037237357010552896766447090366743478656151685583925061180908808796186276102242335132645522411549992179058671779853413211836298815213004567540738181114170782699242057690916468360971472042910675327678437980394937651501326938401844909022700755949863758032770591371223215244562150705231420317027417744981467203077431955707688232069998089712192310387749983974963492165375630382901096265279743333518211725127410747408232260321977254454853006417872325357493215445364370001156003785613553231485740242092056222464570891810577800733582485643947977609733353078803044814502866636299603592143813410198463648420503851404861561228821628676278648813297964510061570742289000231801742935018186197823504432963163642255021727446724157571990818059412097349034863068790231117135289316030588350561494428614320327822200260568422663159186166692885627691675605216539555814373049082348115476194060519620739555683112930474125545044156467554651259502168940557481429515750548910537274052422957083822006925664230259591241302197854047546398362320835601813025930840011543302643936229568349372380447187234480881614553968428691489734715284979601208684191491913746856051130774235582158372960856759643431117445062962598625373612504746067487612251005603802149081302996475513767841861506562465371721615259234331941296247457697910853233063121726918266461486420100456253366764111845367288730879888496911348054054699053049269839137242720208849725269051484305278181054615041603835389429561847187225598497650653757217022901833831990406208576486138300804283613562105186923347195259429106783325179313449367233019648375355220754393095124946946467928605302615775775508382860129741043347336723254543685582506112834273070154162007688067644300603638325269713520561922756704490983656146842227854474235885677683143624271354340717952567746300970829131079673049459594981426671385862116797876121008544133539340503198716006998672408626877759656854025749539680613250310840877982693668094926545547222536536974683794433121182096666812967818848164318244921856660974212868377122453321322149038785398490744932383807510932684571451200719608279227524199803516782874133704681135998974371205671679876294605725166806584158392153375449279000393435629805501215549925144314089178229424801125960992923424671885196825872816848644534139402840031174451339484353375004874854518255120984585190634915997746179738169892236444041300417370780580827740788187546852441219865264883335217530176011988861738068039116068769839186342162694130569277030324242785876585333149244019060582618001727153123436044330189926773843863153433097956839412367867493778334926822802088663756729199691195602598005343882031284415541697220937958348259880685441508601049050732682112230445801735281612924533309681998893687420119037488866103312400893042030502753449779715532696201964825118267302927879278188193853485964213174557388836748869842245326989697665522609436049111418416892535292518346274152630432838515521617604711267203952086665745151338874745325483258629106322450433811872757416950897279880652881281955699173481597093794567316630707450070014680607645669171307211532552759019231059549052267829510531359963749060746993677717474596678483914005742239743121334028277783504551474116567073828984606552337245059156983329935116734752047990378118462140144711344406130696373506413735532352047302652955256795951409481847273007930214135700074291909559128593848558099656015426304481390379080535121551462680994473838854968295665492542215175528876240730807390563276863072649884569363207463555502675675674145798375604746823875395690089583013863468778218163721571148774683908163304726436814502451814382768641519974578630873678797262233415078357621704968602485334298075707472927170131472624578642210574959924152717644001963693438493425585512592917174859571146964319427771512337166651162344311987481760888354070528946833408789353812316008362632582952433736325375685305556324725715076612287484858409726275900692531399570859389685012148470926285181219566062884756938073515957203933714957911697115532024440896670095577313693772396995336611779034647672749520720913437391507917661252366681962021244029524645321018672589284404985733942317087152479223255255388888222720458066664895306804158514843475961435594009405883113193068816639515321369251646450486803971752548675384792294310023768894505554804020689009755486172326846055621812111175049860693201762253935586889946078502138100171790966201591838552552677149192515713567844094150970125468607481091500770536366309000574542957711190592380485413701788078267185639572830154624406075512786835604317511762243542479145977917728255705430906291747992089324216233922607089717731584006501301291457848271312817611792344141691226232025392038158421097936651101878464721090617499852313076573918434674324102244451306029771203315732569013419594590881820284486102768638881014147190139783587976424722274180714406188794242084729495531407288189735513702104220250136194324365713349615570666275772954735349853780060283833746374954121756381374306479704208231082415375759350840954520541889341762811371326760969929283965010003302020305061595122727156663871702155267925518944026204915621598951386892866587635409863094216451292700903921499806880260116123192119864896703535618702686415934920158198784112690850730593502188827347224751636921605231060003811343632078842253666925337482552260802055091750597229967187513349259434756390035097679522633377342445854898343369352056687314586221156606610341688299561522125465413926187177565323838490325706339914833840640579605640188959308128684202917414749686479072423763446408846270744846758155526337774598055989384297317045361800343571731369711282362267355310390180352863205490637494281838616242380777403966270244613612739965012555079966657006763700771553590597446677259095363753592162390222011878814566012945909749241516859920893335651501796318439276808855389666927097856412552829064901294118013562153065174775895423357199789525541965925082407203684630348554444905902963596456490201960078693399501992041572891319536402414865788037836073274130996947656838437497895138959426908940985118692174494628384627105522584037800772256625801367889802613752991285478237811457736987940380291129520571858317788617114448848294227337717844012957849799314728573675609373149459863803411531906043548231863271648269259515817776919521821327480489652399838318741226705937471885621138419765516809370085613532385728061303717457499275336945999832402158971501174168659816043841245855402343398875997029035334661055295267346053446874488407064962834104734667760072184972094770849288509672377831553292467349360616034805268894834382017357944142671730106346169361150578616305931033536169040967880677930958576493088545206269466508067732922492565015169149594425980862200375623479964351058097759096337795960500637485956455347534385068927405020375668483084918300245641339000769653833010815610538714092411180283238294430464522218550448527372488938422950909758957141750287092579614492391921812753495103352931630314278546329925900347930778132987347941422975030302464542096194419158084118187702343329598720679023087325090518026588133645031253709227221520846628198416395144874875128852260736028043481121676851908885872489850705024411623984662594746897911196940978720988821354243666063310036020871831318098440851344093977312431131998394232127812244008330555628564503773468669417090235455639998501985408884253596040578619779649767454530694577027617104773895097560076302510990450529925382846637715677683414696613121051659420822755298625363017836638903347123576399120312428860230123513081084201054771649214051608221808593246966763805641987992781503690494212055349075104541420161382504572207670711083587576523833842822040311558792965056161264118685772783539850915779846311199307327767407291149214919772943038237056644078106619009191651283905958426701066260130123443797850808041185885974936651245272478277882083846850087364018417881540364267934349338005671755514993254480935914390546714767704090953984747857518775880353028657931704432734548521757000894285862079761209579382663481248211868787504744281498175039864782734935017868087614065398365180064256158822270555179094328116554061646964776971083438666350137592345799647094744435091786280903351823434054319551169257313627263566299835888389085204952426360319047625967115204086108635015301006520124004383973615015243162127524551842591702439827852141473844398264567462618695572701435042466318769916318512577066546859915620105207494648586223584109026324409687370196726385332895797809887562809424194123812181851000989640702937534197441934681385405294316477669996250695860760952296060728788877967465636800251039146368381928963272647321228709145236631247141054279371321149465636259098481755234122171180152827395739669361317696957676283135003969623524023576250620061561296931007384763614124949951519181910954669588359966116851329894699176808730430645430333287171183032281013559395219479532804467886798933015596597981138312062976982435157360920193645622698583446673721184782405356427999548208109393072800039278834980365452955040177905924147041603486682614504956642596494959750454553954177539015449520896875903390234475490483151270848634508110590383780987828059046916498070639719032342427615687658195162710561053278781515754692572255844207692343602647568388206367782442051716103950887486133099907106939484292312873716167135596945220692722860841410640860312469308509194792860723235069558520919574175478301416692375288820480939774627176051754029140606972235901330138702601906533231292266255158218584782418431090437870330945872082056233026775519351730431457657032671390412560737522141284781677487399747569760585097436136551656427734002189980373952509245672447944809829499891780767842360838159229661870163408129426463401171219487470473236755670642297711822939189561807704039434321037247986024324756511856109755821664405938225833576590485497785204217055452229766674952684215655571401134575801062952591388327867151260469582007578677640844920365327212702695384926424772859031471625880304235676191295715034323446052399517516609342031559690147423892819545019085022427271223450687332406938858139754678675722757251870933781600576896476419649112593850927169397925013035752621010626258636601844437440769927848559088631578192403988719805318450317979916504464612670451303277632164299732623528742297118673655204015648796241534897573381856287674250932008282438431697842710848901666533659573820054735679221638272983096792397433313638426224634402104840334938500074681165856442947718014124577013363382609164126959197707099432410216599119177624391318666745897006814659502117507704153516030954293692061760939048363000098499508645389342601940626397803285600004822014008927772728746946272735603188872115581938681560437390453926276928996140138493748396254543272562440931288170819883091910028098692861685158780335896532788285010963686275978929567301254014813866946807372657942351187087545276836563091642113827903854525425682453554393139363035220479110750111144139729020410275492412269444301583928477895467721459973057049879185972870404423620906624310339690326530381554039637792883576722259947514318693548729411514417637475205791716959696315460290571198219613942829052081737289216649073470887201219271552183231495383300372881330975099103551493239417368970894768512421045437246762998310138742740204977856652703405052123365520321977117104096046836085947754903822838062685292031356979446624826060098033683542892459477019918695235158180025755543730906395525747781356698776375096958773820170829544776772709512052486540043779496085676981288992261112341497039359444560437046495864469198698630614887802109568723144939472175269304188159829797667501972553307747253015029817953468054491551715014333570942908220278416431927749382092647813640101502529312874208508500165316158516732474218997520919777870661402975063107548573528493525370217937847670363514993465979920869715779456051231965506486918958081377534655885913176722811175780430373657515533470523036577075909791590751249213961248611979958581973920403823704359220829266718043023190278491964201589610965088857426183090236890339590600579376668761747967278148693157799564894931562170687274455140191296756619048833917197606238091544342906390475239990179504009827179649727621759364453701735399549956558240679509078343425814523618269429156319871102318820904697199081120404794853261346335536455853942778687545112501535555118415271636870113459546796758810087297173888347424474566584542249176542246233796171379041812841132673313406639367285205240001739727965788552368037875027960054752109826013112755529104403581721381232887438580018188742063646590037613804631765388906093199552088895498370716920101993161771155053872880978242251988460190292366198507548971104065408258318689137843730084571258981482967628275356092406124650669354602910117803328263294663868526844019359965749826082512939383485834535942659854051129757378849025626776776581029501774558950453304455929116765734770086300230510886408065540137990493721224332133495810661014391023932991715905930599309404109135217068780657360481367140020308002351448254143463862409892929823539435797374851098729446966320264299387061853628676390477955864928969657354009466231817209381840816348665908086944771092945923429290063834156318890600912009053854971620551967355589884638052816186784183412599621389618704154497522762278761353458841483964860599229149576654369609086142962810885143118862335939208053681220096846023327754448978657352140717024037844501776110754768884031964360914369697439292849920786952693154745909981461691866887684912244058020608654925080007029745917698212825778288293212617076197684287457376202948741784056029611685197124158644543023993417232270247061160411297068612810153444126141364622971038268385014985269954408294259083536729790598588168213182744428079423012319814154570713030326237613193542973404117231069187632494914398678100225296350713200133434220307548681725052606750301270653035075530895431765515860675726744622228497201705825489838367229877732616064949921616743810838861406156717245072551370912615054798522105729487079388484680924724977856926552481759991554740087871949013043532982009036558258195945145064736245392361263531103463677430100056433202858298715351171711578798825892424376178329976259848860200437636011543424357579410770541701874884080186004096432893599095726521269336008172104476913152497442445206309487835187939884074165454385719744676284566276158581666801384123440076870240972361649231888156596350071161700027414153739177986617278907933849699330949230666640783920785794221070939177176500823258418734933638422435790975238462369357966779877016093109692428516527288280250515784599007047249748194299935130687201381495670067713435456157178622729699131452332951111224067018099580811122187878947321317184016850901528729170127806689045918263303874501965911821191069399870709109726606291565312003888249432210758196946219401437964272101831019014708408552594669972263968551419938380439385740073641397968282336557392755892707708156178830515427352898040162179500137183726783319473076738264696724404390380659320311500648473305733577865556548994262862959610981911007578650935424857055454564269262083969718515417115726483141307921760404904501466166225833787363897119138127542354783615833518654475865818636521918116045223293307045991127858531445383966188366598900942479438520575942861644630171810138615936919075913411664750337259912464566900734100373114572023116803529377169731140209293181173090914101780698292945281373471698143931599309679523145476473076083599938607723835350756526906143582588640147104361102382930278931063913365594653109072615677569761856146839513944184001210109455146858875136557038454011290066087863016265425274801974242780692561235606858460298096107547501079200542029356915330613222468845949738761035223175573425221750370110535269459842047594937834303619938670778596985849536213070860613719866430741388791975165091981414588182481000999005081169495381714645125073499339916221928493535701625482524325735983651832959355478868432837384415411859119624459572460688051251627586232747626610537733151367406584075977024119762588980018456617688568382659771090180793558165555294930516650893216604773888461430778973592786933642234283837867653320263296555916162980844602517315974195175750865920917271462365815007709737570819907464695694240728805315164930607864906311124051609119179099646250716801415789090027805280638824053499000686725090661989840659454356696135004428643409809612727469962957601150919961064607360427739827959637281397078886013134345315473804204591690072421749692772672143752912285933574331228108183601278967544994580619065290654187253557258891275934599913695959218743418739588783173599484716732893076822197404732164065906732441504130800768681813127118770852538858382592549916011038803895507557210872133975801273803481569661051928480293396246282469916653494788248405440690155588521760781283015630918796966733462674819786511677439724467644096049488393894573175081286123076728283949149091757787066695080646589861626701552332347758334435614725908859200379407574853014937065033316907293587057685542683187126571186881700250479661883139489240848461442998487023499655998427108384572068278445913969689787349759391253301040585055630119101386977531580355730092761571491170365219442104412835901467261441267920380085892270154646891842717488644336303558157164311874655522280534932578180461395657915693601062097772915120394946249314003160301951598660349571183033227118261608326365295584857781473138747920263385678360327471412009976892053079046786496808874011262373995277620572224572448079292888591784624475727433011681348196882607635651810795572734521354514764171788108078838773040483241272960738185013910787942943888328587078240852800555129225027917067505845866010022969238287567454315531520218892994228093744397545224741135036170726362389397115173029089330236450753434280574900829061423754094628479983732423570514161570059679691057588801369542252414973976218943562527106981074311483202977976137075972122217045782421247662515931301186121408965585401917406844604574640561420714657663984865141369495285157086407436770217693839998553159999922359648363764340913971117542620759866766217677619171851211834751565785128200283711006796283665336926597032479210413658257540217002770775343987416168097584517224771874559969680017603081471431450986772227994068850684591439698157694888529787197369254278428457062251243662384760981912527747709952942380595394369884849360377644031826322060077569598440349294372721774917662961215900753370454188842304016160696286683326099879822187119148250987254805491486856593767372799024794873744355898728269026389429813753481756306007938096423741393554253436018816694352758844474495656460708167331204637392653951240229009212442746984666070781674429725784185284096759429066950691737465003830413335598533154989724835022099876206017757630816824271710427801474528879709575127724657754383598781054345288318457915711738081046767013817267810966219878600032044451452859478503201075298666801220546538505087056946876015114383565894507471197488688528279545737621738113578636824926156485677938541920012554355825833324124223430017740318965734502147600938515521895445631554841509275497392122357688556195480094205701474047082925343992629569129346989000089992164974135051152328595036604338974721063178729068101560867522217806945669316468615766488812724039921221107457467797208554345146604339445932847937148476394649015529978033671271030156219868620674047325180434172968749253582207210116213819164164450027954276984543200116942738425546179178288095933527729729285975227036060323848743754555507292344750190411928807030128052606191397009509884944941299319036284294722022044420524849527769902554042988077767755737684717066718866050075561230758224860203972937830329229551843303896619240665701139085845420846471742748207641600293526047596417898976060028726727101807649508501179289465003484876529757548144573350647734453030184891112433546462283810127265572585954527606124783289242800424454395761583530814183658638492192456885453368767020570716966049841310954685413078313066079703128089069867050959054600260819710604197479745330489386882995045282655833834527679036462690719899851449213837151408155837720285598748707597526263973983282039121307563355882220000344237083082849229079843379153152352286828728802894257947099638494560423997005807979619944321961441809666337691680540361009256794852950113404926716378014320991589052887936868009380693584218188370186820807599014705034384832680905554944923171335201313687044504094523087961861777834468317677194341485928941243205279498011838782547637265086372922679615488729852085675986811029579054100982776611213918560252572846145589328527674236179547424274686813565147116082174512262169668830457809435719295901258971317048958286849334155694671918217843431033517707548843908362197955535785805974586684022075872492083574178232521803346516978997248849785831859173481531647446310795630871710009086470652126407785591446490050945982226693415543601718422683211489639510179991341394053742060415886192061387602688410719116128834868963381617621674446365120866175564172832864844277387744266100084770853490620779739592109688143503198247855400648266858076776511180491822780856108222665895941906916270032208981479909536891211733741115636614030837270264768324843984350241575535784324404647347145969627278167756468258594578272466906030923204810690893545201675080474394261473334842536265238661519373539574577435047391595824595743561733469513659808940029392928819630787998386865407033849147296108837756721329451291635156641967937690290344547622233016108755177730210844570129502928284655994021782684817912729611575999958983447689429764897757693875653752134120332866849941687784044478194901233593141404450335863256347808371348969016783139913205904294654515513866612463717949829392916218252387898352213693376431319474885114825572762063131628448490535923642302989193235805526913406579528003992982379314066201083843190873679159916416178040467690148839032667064549780117001753683962683233708311834873085292070397290741640882148709714240184439110818397856783773131048428669169375185982179364698122410647468087822349455366410338831767353755514957650947371882887195356826479455687295737697956622809028147346693189152760535820019287304382279841380988362413712691001223628149311754764928058234005551143904376435573936011831041412981986819642444725594297066538238889093572279101313816111686484632539406463860746776148964672819273502660676966255516789394890535911499229186229985772290825296410772775678578482846260406852437416513859404641228622318919664596722989454255599553329071130549484629668964394511848758162156149067749614173743733576800863583493536209081904524242728492895740311817407588816523647092770490950200793526191997727820952881890577340103567340878416718745110874965040792352208403576628506418149693230833097782645018667525848344345614693204849548649707046775434682639812887127070497778805287957013337666059688127185857895001097268110850152356766517587115871645593994209469012348501048588217355046473414379702913347209982371459875321691652613092921618893617409331358851329743368972067607371215376409907293719976237772907814703217971887683364305159252031021338236896771663461032325377438846648204912328372451575855087068734311654864428648238604003639608896901691318981096194390441758143470815967032386351050083360876731412827201373112486676802423202718225748444741264501515246414361578597249967903422203099074963527973109765667820042984755581255234051431310204359173000702879312861749066187761112093741262002437817057882140344270075040060353055934600530527226714637975712097714629057068821716193346351558395860906714234884111342740254950051727767373543924471815887696290290211658681193459968087138135467687022904335874309021270870736666087274549333396583285558706263097632675645387286378964941250648878208761408020864609066612224177392133301301049479625518586138970338849056947615517536460687446002909440322580555666323089972083177915500518725624072348291546343858041931954953710898388153305089628703570634013770126521993536044019267356829848061009497919214693710441569502579424268177173883527665995914839991398901520582298474603765219153549815481279534487547230151662740379136614765811254698596174275172103453153411429940609934432055893743802500912814084750046586954873538489506811772183249287773449174395507245163604004247581983120964962546882345607505966591851444600955705531556993196136426240937311309252792903625524405872004635408985866316948236226359779564603260004930907610916096019393590199280589480902301463084970972435021924603335114125971196655475928890532280048932644310456172025202721961325746556224798733583634533695591734187270169700649049649563700195526182594658853425203288450082391121495913509813128652898507855847959213987428473851449068054139001374311545053741898119590330803112402088695806549911443158354545077164956197988973064161951558654282269218159917030502559245979209950754771424205780690481266991144359337759604195984720389593668520582437119811499077073199837110540938913537202151849316919806505773458395981219696951235117884680014119688827078274186074923254470124953579990690469275229429257289889351555124714252727439581278893292224722839901246621823217002594631720402721841734219768257550535320958137924743291843707132862319806444924961718964219977359041755069223936803943818806873940147201148671644041976371207889993832725180333129779509002855956106740216057798801215272799663005900202504808477240287432007669672821602313892402180805868425103959051537315875360546737214926341320737256781824925050046444877506206073232223553530983778244725119947025394846491944496416225429722256128022944623526308095609331070249339930678779922495604492583441667397635714879394450860857078628884545294087197197199459516175792885283683067653150685318016510436345337873070269447624534008188565141656389729004076356783950014302129395339428528500186755320425915558344504512036206052147758240628237497832500109147714068112696139548355392553960324008482339923463278378300942978375206396021927777678184573663604160443614192563883523676175739308606678803975973103922030895007968547894221225516012105596949561077258940879826192251149592229023419669666641653156079846542780313236079675913258168700842631480907506115449618347765300462268451699803417492471661494735442456056077045530274076251858794271800697051349764363910440483880150058997941407763863718905672177460034750221676320323275226580158504194086639591182447904233927188172501636324931542597303013706337814307589859588642616036653585951121908172001713181793175773774871279782184385895246103206155391227241213053103432211141148959836955361154978961630880442515076343779114381177724643061325840830174271115752048932919045725089342222020289346082600088793115314769493079393854025491692617726677957909686627275965008160247612715278175967160550949758112903792897853832383259430599178384958575612854308949535344907740267861202044783935887220316922706779143866647444144333965648653924226360356691681657062417580416064534367618294893621021637082093144442572409013469188890471022066741816230984150237453243118562357612702993526462316208022387376672919524858460232295214353995272514504795957160026379349770077791424238106254097032949162843495189885746785114586593047820091120475784900492922572620731428703354840978541624033510952092911282585834495522080398188786178570050222613381767508905108325606944678713910960104672853721850589799071497921301522367722223904208130064770812439254043624582022383541925776231229915413714959163544902601781142269061415758509446353301249534676273404311614819288106694011230267731921050788292775333869878888657798890394059445634123098365021917845651639758648891446849052522355095665324574578669006339793469725658805638843695966344811748605196229261353608466417882379558466568518025228938970907277908557869699617237805855800466349535571691452475227565775720969824956995830765952516782368945422675806649800811788575169334380592324265219702615669622218959111286791748422060585026070339820141425280112996956985813026383828295928471998590667016551987324896132235638181031767515801512175933951318524141902369883034725715680957974043898686854703002015010060627653464868074547136387783182707816388687431355563676196764587037895465581913465215084410137584748133816818891467700780014101377807545307082249605853295313374512113608932763578984426385893380642644276964891434808099561034007525948392113952560262701236462278186528165036145615316475743066888669031500463067299387389648005476078912882277239566037185980186601511549760352554207065704777467560159720707591626505743465429387870537168370279656925110678453252680079346200320936240052519122539418987868960293967103819459110147179902741880177195969052040173743638863888224368676980205758708916583582652224252995604664751653340449710357627987349968184221380414913255823816837614006322101765515553500083869963041839789336915873823920767245594871405575669447136808152560636543676592665472307553304579770660041594201728243290543327939258235292007489217591428768901199719223034427664941709583699470509634050740325270369901621282978262165809600620025604472166706748314792429449191807798316188925184235587176978886742555540574550442924144676159041461008420992293648080793008986810449802190025573708291076216108399837746212747770081151066718341999537583140671181541435409455506445128817131230945977377330229520506298004227701836240287434799166461808068341755837596281490895734803075564487069785975522721376648461012553322656629706991816256570048545738209027773877706351971029351751431611415919334472567979916841921353034937152990969431887539511363653460188183719350752571759881934579161532586635393440926489129666534756469016668890858819675368337676304700059119432273977200995858061102938406605047637416316948194681666370817148717839204118751465808506126110906225914233300442316837916442219888696470426852625685469528584585807245492758924912203518818128239214072358276129419910600812436395372361442089112926248232154730583199290822204156902038595414156637232876867374034356002162471081175033295622614439391342023239828154809535146595055485267713145904596451843290535104078498476528899241357396903861958973166671690986596585416529509393883863744253757213526000416167824869618497520368715618014713753706453541135383031607716139608228220773899408583500824101777900394741189806331484240140348651845642035133063421207341856828717652898139613022513958942514585532944051654011176481740094937668035208585276078494395233344341598014228175188310710735591546868829643515901666343929274163458396096861977656814225254495154983961415180261762090426064169509022693102444614492898936344789759133836800267526992988320136633332140668906529774315274405851697779630330247494080269956047448852967966164614387178923403120263982840038800209449921832965919850102124559252670542608320661660051493168864002388414948943424411201426145860010214570316862802819520362181649645415408037271415323285032943432004227318344015952950200550933648345261209475089552907113475731566485839987962004839240690950181787579869700515052045757020689407855324126789570438494920691050767587712843802220957341528660173368868863273053035324597165060916231171477077074020299116975871825814606403901661555660165952997756689421130251092626108786210074271364997344242035084112605178105643423818988040077676164083644365660800754962480440240885825558889466462894815837021202664452942274223765312528310882237569822303659152841186417060958010196151987612400420180461429003566710625448036840989584843607967216833013287990283658697308034950603916651013872732804388133559334307506020841756200589357047208753210736051892108029560039098883148165404855127873954987552828653858805953688512248900683428999708802204067393218318078321519569541449815068516081213510695994473375564271761837466368101361203401367567000379290258839721926462528219145179899012256601318075064638372855727284310964402474538034727151428914878610483030403007146662741659783232816473464545703354217649563019168711278910642189229912697750665353675401601394521785860297105968175547327318007361764544024728511089322567009782827238573102770419280313501630478001315897277728522953528027979680961858433376441399957087306701546135816577821143621939701160007004908919842994399081252527804568901768000690880709670851479150803865233625308522910060350140876768699145454464543635978149509962874609815495864200167564706228693696178940475356209760860224997529935871189462270945277399479186178216767101489774860818663221571516952071517616220344368766944888412758206808440767391658707536253472911176318464093618514092472842890074057374484177795069023591469527567791548412857167446644886254285799212626068339580043965797294391881368320200622122078494458726837457031645564630158669979952678046317334651308465811738154447647374861940175716626434771396538827256442415737460108885866600167891905605639449886344159880891433658960424560116991722109628419428864979488767404100884606495616124894329776339807520053888358900604671910795760044112226039787971330231104336263932821541468338748234773323002514832834905031368948750855096171417007612915290507912792059289310817641444147780367074298780271601105421175598281407224110127018555820530547251476411954386881720862370820436593695768552552138773785439346737653299648868096482458788819689011103294274067676430733715011813670117416586000306108474714809333545036268269349173064641090379999571447130528131239781888925620683501549770639762561723160641516812736296108155634042594960598323810349764068985478260938995627948720273557912487742535846491421768539095253191049582382099370454221755020146286116396846741295614976316649208977705810672380939904106331418641202538963567743647483378856479785077272162653127106412775970917298612695868390206561027571989690639121326313086394991993895961869403159601342318014761646109995619610117979911235725686249429538998918875655907381351822276239694580922137742799219841125448821384549775998608326694082003005575310167393534719304754119526938069907342459441799810622170838204345549990146390574397926165330668568012061745365277421408665128423124326818766055153308132704669379764660359804308939639055109307130387961581539459152805761479047543747101922824151868989353026458217809892550972688311098359575326349786842945219120196782645988773626272622075007320730665741051833686060671874428025670069154365594678162744549364928966225959873080158755768332640403310254166832049205825484372764963477902962491758559154445663818390675391563821232381323414551225881979283010239524298605654069295540384783695747799062781243152779154798078200547639117107474283934427434332919642221433201650700546609884684088619330681565701037509227976959333946339812112226535343374806342543123405595215363034112431559499770914226428718327229605186269819400124774094714769702473936991550397042284911453918971096970346173485870799629613323891005196761263316244089542945816225608400568989562640865867706927883948047215260461872911262357544501439618957710862459730092456333240485909905307590327961233606662289723648470807770399794852176264562430470740006404161064191829995016365926639424151731414151475174589329508035002253982220602415089713244999704370302743623861798556202042518821268006352454607422717273090792118380598391481283141585844137409253514607211496347791330267364876319476798559651306514107744515817228458357740185142655771436267103169917334317177659684681759225062282501276272970349012216103992874638642346643892480444933638450391653785648494638737191233365193762123871810961793534669810735550324524418951073145940391652537784818879467462671345208362036551570289026484784945000522147005784294690466286727858474377573252676300870699477531004908614437186241704761257642705214670812493628536309596283820343820917148688275557313682659442268267349860138426639620401755642282014292331775334589001558006187096422094825681137336346297717135968518478830551323386040012213325584618659543609043472232291796422330872119925998134731372192759667934907947813906395926433742967051853748922315563801974480347247839880674090916065824166607943021228171088524119438603661155136391558274541025403877349545934239337771044903552520168674977829514731080087020659859889798932214167964124140388041834953469816942928530503788812514191410131804063489378724637268129120875584253961223989791001981239938535539258587103631596018236282308675701231367569443186403106582664302440499319359258655019399319650487254807616599781095215697928528690544606904831756533810837093648532761190899555773844556748667132054526869285028215979593853765715092458229143162469625706632221318824954375247677514159266219749739913791340246155698140102197271072432138473338803262804711487622523056694441147141715085849944483352345330769146254905260615377681117769035098021703802105198517709423221784105682398824866525617110869817813959396432880651406065842301663097179123851773338149221978214340658671260622513973826806006674365285701768529574330407182366177450692653299240864475737748868666123087171910380450492331801017643649307213099300414145179205251346730250807679788847422697888764468235182715968901887365110084136863210541719511644326488331261612638299487430656044210865922836812672830923243015819638554263689924550699438133025542040184750831952050458518530150204836492383163563106562235133583456419583048491221359982186557812845939635875711385493773481008267734259706471036791146803740883321750687084276298613034906168934270646347341616632130213315755307342651654393110851774289063552387585112060050560810168817333896139380619168919384228019484054030329748046864441636853843919969683756424947649168549562601849147007864472516547641713492434562314724995189162908216036571507067723022520891909208352554758218522601522698161968030138852981932220327274105306153170759960199155086226571726008681955060428312407666267638642171138225693004846780308196585556143873874502972553633999174718405945653296221544200174572852735278467343468748893155234452975112042274351777142878648980817886294160454002499622092964535644315673910524489392774380643308742637518605468159466659658078631815264420494116509208219445534236538708238780867918245525197096555305378424310099946185269065194555215415469302517684482303716075068014055520111332064983168758359941970909613529238848768456894542439423385248000863039224697751270546574936541856396621165213833915544801543429099078856255153709196482919271897185140596125417403222743682087341306011028367130312014721862167013004265621393956376436349849013862149797052763673237162016299558576278285152656460194018839307841208841642164886350432642414427071582996036229481969676503470940642053637310996192009610317672973076630698868000738689929339096371067283369656980125680244349090639296026003086330599497703503440877239934002768480295971910599892406672071411447120808207851170773977576507546940860388234338650226740689572473766262227975081247818508593029073587978013378229921143930258045625593087311679927169203366040655668434824833550811283807970989919334893991929417942464495491431026026686356451454003047906056612059951872857984838038377186803694401119225607321855231976021568786634700198003289036911504957956570483219820048245295229842283448006615030781433976410327187779354688579125945613910903414066313827317695909528640076894728793578654135783472734659663959673476427721098570776779969400577290308279589855775524972760319979343086652476299552840762153334584899348898615988559655208060030806093256204247081059599418056525594215511308946624927273931468748039669256691626115242529969207909659678078038867403192656441330837350561744209952498339623065298368533980368231374497350610481994428979189157796746127979779009104221742632844324429000310305676519714130682254831747945295525305423168336098408508932408417713328972303901317070162474633788922851808292324868812958033049007365247094515589198808536940777764516556377497597090928634850510653318642591451809439642779786961588903029698654558721972661030471592942411061160886745214365747706899847882662719628518554434652395031798651642159352445341786938703307821209395403202551209030108595931828663584106750927383077580581272669059387319444133081243901681621088059672893774502304655096621011996583670420199242334521430150354305058234948975655519295349233544324199069742854774030884724714829259449357507866258070963339917062881415311931093627400706344403537451099826902790326066510522672372980339097408808879273695029524250026099081748775138822052003287508132293072006368184321239752863253080107621663251733419705389950744687357481994469783282297712278414153830086643078762332184891192863636316732462933529460868347425865924294199714902196237582935499238465222428346662689861750528551646429708804896867458340732509059817355734738289084734698745356793057796822784084714364533241086072289008083778543279292013899641327595665543860941834160694651287115577654068940757998174687412906290604778861149832430813064244469749885144398477216636919191442223611834668035284459194321544751522356172387373203325834064718673552534516250279340366097256681572847705564948461981870271029286059681648531765277388105586084977224794260362109288160988820589332540369034162931850301734059631157358777485396883661773770449853760732191808521382295213684659501871138344827606374605724282691675748396247796586882894700468790644355867543654152737332260284067945765167909597676172231147482406891946685154262586917920455814931449123636396594198694310596886694368828872209598511358943806622416448250489802110918514350985105629142841622128220857556947110097026799033009330050242939732140739827135255279609928423241734553444243638647053464796944406107473881822516525037418697921731458304757744991071114305204459349919647812755846977053907517430080091708471611666739196678937547274928306038221625171189870252822831567935042697581039275263614461294765089144965616438648547040380784367291635759704029608870565335933702029444595768461389857828121103196834144659528149466324476893728239450155733526752321602872980748656112427163590275118094360598157792519791883606319977093244782055504772478714296690173167600650830753481317119847140522788498549974686935465007963907048770492676288331180415137081980400221838342074742091340657781522444257324005202211516688556541927437282301687587356446654242735299545412898922126880153958233679212201058511624745221765239074644328858708031791582222596474515133886216221370438138397798415217774609962804461050998756282528176329777697445124311470323801595054599891866689594965340823769151268224413018809338143017879801301113211815942228031036251287117971451363868918137501242887125423717547635187501743873562854399996129383897269481115770599924926254544867484217145591515201166946135283017879579942386502357477770148325681430278758287512873913627954029643807408916474596208062363777621874817982629483889661164643346918462177047550254238902454184066555893110692041711760450917933835717716786729814423769786640839879555367105855161157021559438420575263874841273968438243647723354121601480896952244590232969575818374314877668481558267244149624708742506323875775332729858869764480929111810373297920450490293309996849725751682076720171213391408938078251340434156886061746172834112109283075163693319559516984260892746651240437524061830193577569884334304217989809324071409858763347202537400295163900236411689650587493384336209976988348975318747682017423544665061568984008423222477702707837714121361911314832506370427411547804181996561421013956772366634237512665420199469668208222197424007558865681126286882657915576659374312225596848626059833385226633191055410695777558326639712116748005812649575909229410300501411128461317738306114606159837363694812824060510819551727977655374513157135648255231886930800835337429814970907020474227541256706481717231931388933447418333411595448149575982610998075338441727205218082882350710950647306086757810840668487249129334303275144474511577575765793276782972657305034282547415954911315480395157602470628194867827250606686859437634038056037269193611888073002302195940982836001315114421538257299245791147985697058103749312074172098339922275285482880410300415994693996144697864628557622449189242869119218899242360339239590628490317268656575440591974031602972848416916392880180330047643853667632787407087896432904965671141358053998935887795301073706733031624528431667254480728004353589726218302808234048675710285114949314345286131509032091700106400726118712632263119872687690576289578872098889923221602793344686357070892312999546704395295068005671516226235634786875475983097220520670732251148625452903452907992438076230957193504178379314071186975332209086962626656601773308693538632795982482971554374464744514790222641921531083242673533132411371891580054110243581752860995520664422842664550156734346196375751477833169056234237780128359533107428700570084213314126946625886980941036708032084427897603112411083901636823599518876860123801081870378027687987325145503862567957181135370841969981659225341212294436646755362080206398824565890821676004414304020651793628464837773714901382209090737321976287207463007460860242007222148760349177375688072039822057993119231627517953532404093131423290761046348521021858290438074304272587763592485078230272826185810377403223717901271556833531091873341379164611786804641953309499950604887201002546840615385697972665511471452739213384349435611209356106276682767545997758094494971925993278485351657302778165879727119091475319468210852281643215498965332275058643880172124150273993442926172780165983630768737621407774138940813362006625727496693596045859422601274992645598495211599223421626981428441679641625196258730212986728755376526218996433647441695583766679248287527586561294836928293113846546214625482640359337969498979317853049788988916162691909804929391951166174687900315020854236952077450513364440981561495829961930912798646144080396522433687093859909599451698326662394251698375508589903222539359337036508000661599188010979039502786938999180837369615118890979385603164402496525402400813721630067345475676995662651843596681741684744907658140225314971851808457908688172733905371835086595095095348294952863366136345994350049332427952867355858778581783407107845332548717166440182023259921153192875507020151300126233437931158330961142746452910341474960688987931264242306587342140175038418557015186937431172942291332630878973156013362003259564718987099508476435989164539377628519980181283990774698736842772267841544441604250048042963850824480054414050527811937145327955821383430559154335629100342005437118573128383304889501127504051322696937132957548583026749955816103197497712687294269632094096431549997922492549379950560739121749072174100335443337499999626344958048576618781409910068356998850768982552573307065350938251295603913974817795992651639685772704369403285933313636769028811536890273510820403408956390283635363653780427413406520458623430728374857438611737717627585914105713629317554433785572283403073059510813603486155404526595678434307339520848082166078141489460398321974551452201290879212417600201247251065038972809968584539949915785087620147054331930486024837079013019241422932436337753853644998220370209233420728434211395435403392672104049703938047892603904776213029975581298245554606057616765418883983411419033028516070561887936097282074616278111685698980506129405230691143436565630189912094610025915946355226184747839619870060023212438400763250012589566391874171905073119093203986056455049078539939652853279922995026644129314857846227144470119264647346897728795524268843727686837362783104971980036022363151951808347737963086828468417151848078775824360630182591450336992440519895149154348978650323545351692277042586139960603465829016322974321631572348354759362707866465611087499524458151378485748031196214666797203207021078738182331733547270431051862385439627859671959959159897149532442701773160558410894685100108988274280865090517460122701907468198031222900698346662322420081204767204994629941560660399990641573595166019364021326871386003939085805274110707948140280525214073327892208804683342936278626137573569640362902746503464187657281448417254229137367504120516425505195822777596332264746727678485629539060006025124414908835553535606132226302785892670563779019258362613419973947491234669386430217229470105498369879942046609960059324545482554429250863207510892896253425445309867767151800293206584465632281137807953046603208068080080755074537030025412893399441344484688253215584021632513362669236410991647416040275135375889466387486333151296173326680662559498206024240417598652258769117584695980249282081978045938998388605990268002799702193659926577679874304126997227593255154675659189461534075421318056205149464950877209308646765009079453567510445662538846427263874444872897353924992669418842559779635660056362397481513866854667880082116886701667825360113731096156171434940237404240701353384414047343293920866784001807968508802772494041903444965137799157610512739652425743777126457387574855270464507143024302015164456987232064839159900642805817410670624828266791231478923531270411475103620927247416225509996276190349641908365387742017289972284849886968138059649308322747401407635035832152754663788338314727586680814074058972710128265626479403810631383905319665623253620016060002879551707005053071351835283513817742629082401840003029581959662354333834752087142040336007254907972712047884089609199371524550607723574067077286833180221319008361730274987462420583918292644850021317514221649114446832531634635350818338340461816687045837451073292560724275486654040597734089969909565197137818961502974689691858483937471274684352110662018681163366565498982274186101864715731981551922710730242159636908634656781035615907175052412824207273403746596731497598385604597252747602557546315725197512179419023836091989657831544824443709470086049954914519840851188621140079030776453569997588859762959544686278894708132966319677989399992653493988627042310397339190988646424391289251517843565144870939746152060987110682741833823510607734976565296111204227703328306393483040603705936595093974666361602674408744194523093973927509466010242451012424221045496106659649786711070547335546374450651400655421941200596292152868716487855759797791580146088077532734965216791525454401545978030180912479583524832975022782785121944257071841917262928074074993557260305636505259335989907112227304783497359947761165891521470077255581428193967753766055907404702520685959678140564818135864819986765008725079130955388643386168983329014037969534952806231475234730732309364063938080605546765438873833202770198323066184061170899884702528600507043586485359490328148554470092796921877110985662126758368399759592837503631475410796291782276554430872026184589242223676267235396518138857330324456685395990411499490665430404135272932833526669851958404070028071940840191398489114038805567358595815011434723109710841234919544755845219007684588852034592636844317422030561530824770999381611549390084344270826327677981223549233808010881498077892109267028196074082537157410508920225001235859644996662576313733845623300482787266075627565070889333311411680269303771375697759217416312867328681146461351119217001416920046146831387938201728288228522040119430980317520506380578295907417976748427151034047013061977799900288206633131308599639439137408485844609319543755290253165867731244800906903766576806688551539381365184479157001715279347989826198787593790024110465947353405970614951904061184731301362165632923869993249242389376360200844193899802806559135146203905817593487207987043044628645830475062137734151780928955371659259050786834816639559001856955288960587556311488480501280874728156953198830607053759112214680600327851447498187453583213169385702880567378491168264298110717317852939996985175618647925933778086253372981802899183979027154636228921484787458570883051186628964440697310808674408718281032243645815208237105685010161386013520847725654900666118967527145419376098309007743934269450648580272116019983682134339137195742557870295930972135486472720273382656698462191476413491154038471140377193609246348320689501891408156531644011373610519122203780414402015904653209623678735994275899611899709931137798194538755699939332374546827228211475966658423683734216867031949862973910200503852991656392697485397575904619505088511639762378766537349851276030089982426614353810348115177014035921934450478704709458125478910060256008522106808363282794377137049822497369758968301798115837480493174119175165241204707885528373009445068434411906642303741532705595919266970926844401379158967032683858274202135078385692382380835661638653261914883780262526825778236113949427966409771757954531912238089298677747186513474528013678478730977001929085164953994798982425560014466554937125047471609108930324579470556608680351970302899752563636960273531624439370527794939492185990400884553163061245916107570385109914348742226203866210144367873330062986386792195611530016126190674840532258020979225661621950780260019337842205932510819809273128698324374079449225204418944004578808298859349765860067927699625972806825290099668518528274543077491415050919278896476567967550570264610419150411554376134268882123262158057322212795622427839058353147517235742053444349449095551128899455212486336168073661725453147969855778342599557841161480519723146202532881035435181325975350235956881682304729510298661433436767387415888575348393735845700857309779787676806225476235817967205602516742524784428434688957557630931356164903348151746524330923217757898673230153948747186833292109713230382983999771205217200848167328446352678218577680310426279017954328072666948592862953797759813494168609271125302163887406152467206311864551535550439103498724821720059726995907220981475038430512752092285805024716355153690920924665304458159487353532711146757632679881015007181664940608625194244600511714166985614152766990048407313621272438218230357993208085676735720372346900575765068968667109506280784620771005865303993985740895114279384406765002984042434793279425559976143722984322612698492931052182276799669117814317648446046497812721362646364845761127253709345662942525160530964784328331685811729331750356070432230536359548787823972017722662442214973461818222258248928942326157994487890567418241264711330330053310062201267812573632071528886009519950502515956247491166103257427245027081951229518829379967434344828695041693654101461578116729631146976604789239666026114637831877756709081501681379942720201537197556966622743848751598350375616454266857758753064532840338783101625259409787142891311965247622228777444284181258606184686797667165731408816589495381516311016218570547896414258889144852201862312680376104966718667427000223056396889857489005490477850281369105578374282800816928558045638729987301736662957648695277827759571270269048962137643710384566059827272971514402448494517928096332256840529443602964321663427442445933486168205705346373358556101012997966478805465649802591159297801290056145659466334204450715521319371174272999964270069757535379921706835185282865514014682975727397787367121517059942873954703577455021413533517920127718258698605559653072909931593268950624223598332623972799638440091081968279762440727516309013116398152090043379420494745358686062469229193239796643509811324746290544323642952942947926290854893423539711027801983908255874590334797947498659815477500861979376347421451920065840760390291131819117926005382238725023695439360835634605342247228025903497676278697781979215631844154408395611745611183385637281479550388044879046847344449400514372938618176835252453110483582329649663212136386905643741807860290492194654382310593955217689009328313108834086927669078344539081107429881446473338218146979527017155139574494876096231263662081612713211273306273404404061172313941829249081239049898074063862112299161028317508042528473026567364763648169694480554839921989983410549783380496899810376119359695359529355530565029860454277972178662612068747077193873099413694877284915274065850646382976541167836182960198489132117355281804187663778318039051434531214026263660999971213709526994364804961641586045332550932560882328419816397761877824364980781838534911574800173047196085953618766922876386333263567845890287975862287721144612825207603576208817805645256171045475645424480864247747907292771476946590345885819073025757665002491625887390898280004845268696265142931538782172449049083438455204542398082077876853711402187194976534784141567056040142184868390453824936427428213866038154109797974206935338393442525144809185569598860611762322575061691069311537899543191973813866572603500020591777155296358290779715799965782041091266757295345523273114329804978910441491362347805392766646617907404516077316124305178943235237264643431763004413518554491573558577495666855367942784782545816742622534550455903966523933057468350623555514746410437927268206569030338512720289249491287443621678328078864391792232131420742680943300796573609421467140685985308223185297298907010457812568224729715559812388220860404107074746499603576353822325161495234835402704581768445407042087183836665534870207852687990968364704265310632803718177543931913735511550447166057786602276682179433828873486815272977017156504676131363231318165205433039119069944761169148295305954502302288502488190526812854040537709975505954357375184563335908888795549178437089353847645948585506187658852901037175898456240754299826651198373053918759008408337533092331774766299674289800763831568745831339894743122947354291162494947370789285494549168672286298720367408249167297451031445222175468645820278762333659164637946771936515144891472944083855012312388060653912811292757821716165823625279296399093257028598678757553745566318050278900157345555152707723648939492557783481196482873116030013974405853397472176958101262648104640957029140702964379560090482457082655155958730278142962897939273679393549829041182914059689380891364310717135803292953796451122855857583118610859464993209841593665932076822106395121161876819985759038518593885339800736723039960910512049477842388709802857979693726187731867608902829472511607311200463247920244678363014374870872803118334280144336618028043427129747592884681957733268710895057505682677938520612934105707623253840928770257494856937751662445134336013061602553086280053849934625923040589547993072728166767840879196212215587846966171170978733973122383519608459407345531582784468011209311803281403310940033849786680101346289939187444705945820452783199316127367245159701413394955828644975607761632344857123090097849493406627912118310975071474009085625509101257241362605900932017462659854658818828001964469954970721656746516491366839171527661910911047605223014646353521500511309867672207948449527474855981465381649304973083967912511963067588565287105499326206470117552419227930760730584335159241488126405836266206526987482692150187190251079079402613164901726348182157182942798388515072677205449856951944126373739173051934162751972371575609755754332254339562876757281886950505207767222584589450039276552371519276509622362131844394275459137172334592030777807365857720256966362949728540201000407958994561976823125542610395773967666975777147988779627861152333644038388046600895926012492519932339828134153225397594190178597130664418528334385120471361086788918507721989279754041426013581376660364822573659153376014454689351570698739720755884550504934590991996885046083378705125080561750579226232580044150045598356282587511807964046571842540998900470243320749843055381091772005235398115348969134392795916310959519329454927158575050412895087586500201488064694430580217178383675508145758811997084116396037173513968981144034196603660314915701345873940504411133536478892240570499014642228047911928965948418023447843073644096683045916962562448502708714056780095718918110387356528656626216880866170187037014359368929513521815947068208424306208583989400278085732962688722610841999355350698726973950591306727916913312213802638717739834373447959935014552300983663405361087134862153842956357898464603071517873563975742994433049065332786986888540123532203389987551811532511689681462255261959717112304550077484467151371202248744925146214124829109031545217674632558914823113186969903553654796904067216877335026324850057777692981558927365778155826725732554097735978046628554845598704417529921689247377725877356974057614521856270105880921577240605386130490119737519555844354838516898918505189125989311759377065682160352671367986493084684360089293749415022864888239402895152881870914591924870971484500708128159353488504712945883606977477819611257250450688453788899695285198788703717582253317073758443670609723412823805108923900872181887831619882694241286413437161399992296621979322010564129609328592893003046043745947413347314546531245835636096340286755843017898453851197855156321908766218955531582201479722427549293027286388714244706582460168581681367569599596156240656618385205148248332337756193628131642678984106501970998647938492604369865141699260927317100793231095131785458617807163945888483825644561324017668367975321420338179753610455712693264879282961259982167797545925322205295586037051796264844466557504032292156034602626100725392185794484698612150555373979489090671563101952400100109945312038914713508392290461633711358723455996551739262881927988325556835679210695659348998015858793617434981785020588306813192477718082198178084086899917175644363646771402731112375914330502049108566033386115437077296565273161150741920271835214347780191154964153966983116737526658858165834847301288630003771441792186117219034943999949532121722214693415232919825577053193653897887617422604492627873229196459470766228798276540760627801232387642175713448968339056071226908228558959975523516039970559226413413343194679367439292446191084513883344699744546796636500643724993688736544359720217205936364019809000387365459915134937986112242707880731890474646314421371762835707739351282746016946260697500482733752532289884338580416314069813216209075279323048086098902281678348108896282298409580238642102747079647923107063272933758417616047270540065257685695825346965004714795132211804920890440180153978841870049843841675052023015372737810904721345736545403246520606395411489441891615400908708839987105821268057590077717248410262295569040084401659652817710663736670518703805407375041369705993692924014973603417010856429718907517500059242392233173804654960680498670796274251299235665678113813305112229977459247634922908820885728540916506050966709914617361472054185762180249689220278812261526553958639278508900824027698616859103602021470428252768098475162525687050885001804375747750733660888279710265993303306798399366930695803538993944378459735005834674326415561171455558554984556178271491093676306505207273324568758570756144479545202316749529021812736033006532924748559370182075414449393070533936643174375788404310883639288397070081048864485455024360986689165029662386363471194636751220906754117510547617407422230503485873607258445269781831199267975352526729531761101804201540195720458190206361624750028657494527542862245421017403244609046654655925723420902671108457914064937531628625221676090877355103282272795860295924526620297960866508926384792695972715191761638571465505524525696726016741788801775688586652405469070332070487186630997608137232646834620194073361391367255590976459009277821475725706445380931540136387283807437483057174979721517575133639802007183791266839043445807079280269106822871465415202593362181238588684357087325944748712692642267453342345350595897225587726270372854260149994266625797040770979829299994152906931491102272870222369644691709086017061777580093831109399899129764174144425240008503496316414903268408311289237441117849496166044196091844388735657603750604400420561945002853960670434363254329322870984389071731867705666995490794313552852577239589556814846078999591853486530860837659874033244293495564805805598241547679312621301551240452057631124864690636884365672552254985872127998839370455433937415459318593460880213342932864735017320826329806245072494606852934860448211511087596219934893649792884053908040595243035746913440640644126872904463500264253303589555770300392527576045318404285213891571934212563801159144626642545336445033025319040040829669816937760939865342518269991359139116809431236203096104862103469952348759357986127088629870234838373924973828318708905035478002449866002036215627637894251522656483592917489595182504151687236828390714385407378614455771808872952696476477911869891225152385885245850666217795237423959151402164547947091265694849955505462691795318810185939525270226601182213140868035526696474148978338342164924572070419327323937928641792598302697082086489224663739201298362874196981630402586546886166598783436049354341265553603727929978212439922036061508134477830913084436834103926804234938738808424668666307187715975113197846168825418076761669324546056216186036191161641428085348660837232088955885176811883000772700687250632934522030991616680173917560157305418837693788450006933146816676124187174851766964086806996704014971761283818065121785914769999619281369208822998408397909695988174301573467530157473714586706672585221172219756849022895662629037039509689480960570311130996106870610293458810620826161175459988519058549942122087928931212579190812914102774855912195333621593089946300138790291113967311860217033107867126737364320744569275793958238795116451029681778580870054688394284357744068025129361849111620312242032659611725786515898682972686281368428072333598356131411251932086833779053694688996122703314045966434506152347270017247072463196680067039145713356722608397888498592882922896922296907492126127099745178140168386437944935054867488736931578331089972219181367187714428219923722672679190914182680127833664885320716391684042700854421556521575701084530630073742156608175970707394666056262563670857657849805956894569884680577856155702062791225795612475555498099857356677672857416720076982484829716373158380093388836059446610329525409865827275509700179762637083073299619191571238479293390162737397904877898885357677644002799558930523239338397220967556183121711121303903933614216263611067767825338911674902811719438674073487089770522428895037997022280443571998549217812267594290208424737417494628392759348692310390398047301948458699288558238616896445441758135821372289786684757456608963739218498191748064274331907883407549007798691415762437857023395917804632260697169308981173784535830743121019438376265392890623420945699854238130773833889904642587644604156323880842230712065560459051463243272327244161506504353084890445591560653619987244803792662564171584639106143704988619379251508947355573994549078350895517161374820853786518628913570288667377678292316966292961907761243129029092436052479839328424358207039792153150305704510842389305571030160058766176248734195084480840074601955962293905209899313520512939910147284023465610561798608770033008911536712312488630420768379242701809693966461060399103633302576984981902873788042246144280930699759388891850224288173206154030689146209426792027863952262471213616757253815767100361462114821728226851899323538157168673579850873921135322296707278211280219412174044082125161985734138371401064582292075204343722820116442109358561346634752228318920486788445047712967495428689399627019427392218377550558853120274550839659918430611509163580193558923503001363773260881090926259831479664828308439463285383187180427061981114774409455416945169319729228246417355483498035162055983358026561774255987111640634242605613477457263078686911231361910919052166312835111129461442501091659968476582442558618879364786958389833765258191691384860508977367750992012308662100659264237577596144184800600502906247312425483306711635368233178808660490083692427829331371897667969699440807235688224492955416317922764310208526751112083084899342026934707099931715032719119789446212659784456269943946263024979852348897273667875354059159852904043281316700073580823066987616868789389118713792877496730665661052327909473796359943259944506462251314261021141188982614292048904304612914982851528748570917647867440936109417083533885352127235281104438229597942207901674036072992779148728185093291758589817021627191582536253026600842401709588194282641792634950919094741078997192317013295727518182270999825918489383125723752912559558263988558238031102841156380420915779503401375659598615532127670060494055986719747123228128302874428076040935037745196480406388684384890587655477418124904075606158316484720659555820195272928957718320598719684593029931646087005258602838255414873530059754008657028210220766028914084134518106671487327229352190504581277424636104497154792146736621369517839259593003713020007073183526083951811891416776358170783295015740123740584765676179954973372762021255486269088907248204900024281229864994472729265620857710053084830301285620479596039384817198551398644695637402607073290849975358270891266464770021184765479054746893373429765728501394948517050135342591424777064509966997544084955447194745203493800644604312086654886915312580646443298977480047985126645900852298343516831505765329891303497281447469022202706970957095877120629341248238572911101483103902256090338201457912911646086540313411283051282047987478684723371910918239606055142665724318730641108695955384008924486207825391392147424927479253313286881065986429016780854531713281762460977276995843128016368360646769426573546053559626500097036545866384155237896595799417998550825513255958593966215597699591616919057200288409046170016826307067887298557897399386715398331808395029420501075003275841496636679145209702453815662185425580737099173990499155383388249489053191493917306179411486332360411802784592761742979634834560003365806746597016833879516785642640152637652095771698665356838583394002012225163499890751679547584986631871812948077086584786314502718145778508175847565579602436175261792250236842546162810184327638847459392480623970881417699500127727231686994738804626290092456208584588865381067554973132061808329298450399958033612818776681653504647589492583833095220349670390973328250397903371653897291833675762952760366625618038606575235498481236241256959511341150434526603263111589207420995000205244554661018285675903763210875490728251389333700614162690359806954835949298350322727981907979762164511596066321434292607393599234736232308646226895787079444177417280159028990818387804073315559426217677437776238719947219695998602681695788186283656029931518088123224527819186525879016280911025200620559983807459210579354960670981343783823625278949064324240253822238294184907410190596154590148749530724931365247457804833801233544928923535365121877803270143191973745628211919661412314150918096230810306876997864328082818588733725649643019291252487516783831428083865662206734469686099999625868171912722397411514221098860808120652919444500690414140076278695298184530594038908263986552250112683294195961829736802313158590069448352886324933720926985401216292338796107761186151763459319656994905268195245165841036572128365724026535867991357537508456765909765874330877974584572541159124514103092583601782074046187918272733335423553736819334716320364336673874198012744027598747255352337953715902556280749859529287158714900265148299144263038722125653496223070950723765669241732509844923103582943014010120352021632298509219157287438821250358841563095073807485853419172690377771660602099778386976662517069086657134675543335715701335800521729160655815030202197986683462239269000561851133357579765019241837469631387553081890073017224457859881082969657678453292385419641349023194336260071327536147506622314548747958813811321752736415280949909106095710521755740021701796100390992094350946348516664662851269786108936627367399556257549413187356824690382750541085099244373733003156310060347391448940385265996537287109578769380845205506461939328722919259061419402089573150552897626303470773394317379440687339014792085407713576896958607583886499888501369256984054468448280003082837189175267221609880506664912267310600869260617678251041048956725625171615634702366315614330843755408029346504628243709050264957818037575558598886067416347228236505286002373042260200370356494195834855501632543619917704944883516010369715297418877378022744601925354879667180312197376668005093659473485728076648622768539781945303012322085797910409909538164668117914917005412569956527107955779811590266414802195467985371785350543301674032102742404196166323187404429798828231107479271523834492847283741047483350258309363927059931126287311461421339912790102455347944600601660666441630000295068686948392457975299864412113137575536956409657479846435676259774743143527084816797730856212314295941265728066392670930968976739379269555404174704922194484336346460804250417987514665661625037782093866542872722406215972761076019370702493751979908985375879393600659228412663811118978532120894798653755995466813002754719310777974401526647384147754434729139256530337669224456080029783464459495716169788299662121775688032087050422235807940510160027835676919331500217534129114169770373773878718988491367123725208268839071515320781730637214955328833688704191568223589540435466384259323226306763465237987191979832766427436840087447205221441052253797620116036042941719175645711055904826667653539388035915469067798924227457434712322390607811531668047459172670338618660314730416116695665337476344525088291265920568124858626410944655002327304910038346504461760480920289438492790259176716906998427993715827930047535510358213961557786579206209002055049888095606431767078223986055256474719262638645224032116216955576288459323268282460734094056545230494548429428311299606971084876472620435507702722410178107453236592078496008256907996934704414485708962579197062406507637393513782800098001735709342557448275447693594842376754718547971032918937623086230177922207170514910317406337909857639370354035751847755120625427274856548465279695220877884635676855473928000539524586124135757013161369583544179329078562085162769390578408383315164227288307684884648287282903021544928328848511638651766643712009712307174699392402134110674078077926596027649430723012227651761203578797214857658978137711612077658703416195031356278734489946114134877637258855314257815061456927700460965456859395505168750173368131157063552189039343882121152349030259510233731958217405246425350006890697517184123876627015870194007534112939166048210781171805268854320284567396486352328437849871427451295977909432056369490410996408867038770828804655452059996062316239399082305880431687189162129724090431178266824543284674883612269396275436698031299381555682089262832252194050614360752564150356441136762907164205096354963819754985306017507194384903016534468616309022318376505552962045253981853443789107396805631326527859509055164877988150490616969910380054625569555203419591292261193746554614386508504349083435263804178803451681664269197201578634409772429194063875502440245845603375322586637567548055818921543689870765101042525277688813473081723565219199397465969309560696828431739266294516129063165445346798192711987851239439886826449749712790161448516060112108588300653825744823665037646377262925944775840337496669131573061941951170920223331256430217055705798695893708010477302113100223501601957154623413184740276854152546191939102866895420281862745489609498310926041252034249354531684251094367994907954723942877165097138255267802215151043605293531312688651837619897513373863397926413893958504705902551835905104551025244854993429143997260309987549120145196708911229006147341950105609925710061199295271495258341180059533337984853706028384469694771157666905010687666519027143621058240692184746446699382012285182618020376251498211239901145258455797595571172491280433642554309064074872156066840333641266572502091553687420477783615483709721857353574025148038591044489252233486442183050248122174725017472033645910232548800161446791216499631714298524522536351724828338407178427704649854764757451404178087176911284808667563261295150468164066183535403378235065262074281247100148595711096569652980318620747496817518380602254787759500562868228862193833535200551642771539398852272022794080058199001164791225985962805430952153302930228335949457187123583716903195804345428260847679185439118214203879476778397794411959625751024269072651770879628187201790641079463704758778888165354113304985111572657185576200609605208752628787756288009043752324247379072707391696527535022362856032815509843354395549064605623286979081498587309299121133629273294236981730242748908361941799798333026430315945354899833576828634411790812863220896938755019033286850398195715258962868203527099233265799014225295842206665929080160154288979175814077662910559184674874852046722450306639731399666744417357935319915863591102773833427516332128369929961563777089248505720452792721063005769650692163003996704932036689168248712850539076128984545748958405165399944631451015805522172304459114651639749187536708340294246704581940642588592163120265348530381785075874405787972437227742478044024776599509572095416780050864159444323495011833653868941268306504872996917019516041313824479537318586604034715468895721760415926844105298665227112222682779020638250871460031531981802476916780519840881559668080782581522452148021832562387629416640474867905106575045904824333636689506400369647547165896551108357365065196257640582347882812852387241456732274526732881020760441951150521575500114776889530281289603556674679815415946208827288410540863968834890708130211591281396823427140387356641505226036599090820686075055423559767020971624324166307631214521919797100047756281200768509746863937348838027525363879473728090615364396001246704792081945150920062143100505361486802854489616814546961594091900832319152774925552042934202818367647414461420081595991541998312321876536415319977904849558630292286479287401752754430589320649917784945741127920806814458113042774753453745956602557174242649289885701608452876371351247171446825659194592044274494481655000547082735598471585234447304521082989513400492325070235626785196481854206276075957882944859370433268935598078216104513091671729116062498762447924215430641724176486744976030702313053469943903987843323729364355731676833777875105121745633589433149700329171364616344075385258239824447532419713554314519140392150548887568067833491904578316059657255096889848750932151990154832092766561849202182162646406867593889567673447495710535086019495629663255967026301434009590457062080065816930773639745531783706800876097741795029930018336578223888747469183314532616222762163139303855978842937739738335075573320908710471988249871654308398069816175244606707492294123657468792880224543127616913688580627080667999572432770645261149268951841878052671854965198501436706154127207015506688944957280993298271307052760300716068958805543300776292185043866562487940425971186610458197998968640714255558149671386638271262061461119786702540908877404712237662046228879528583108563931810759130944432936220069822166641033208745156830187260341767170051224001289454741664913054557781082527717143288618408291405611173334436103314960438504120996767122264102158714796771334000954794083412868424299264429076337937425544308600735572261795659401704486408491609661844674727860509028553097517181202347563895145650454271390168177687089996604642972553952652555934332588827877664131955114707435054924243323329470390494810905295297915452291570005739814820825348200726377365003467476044336558157021181338854275071429852121662014582726861541231956939418931858744616464165660044852834986001214442361264206812544573286675546897893307294794812072014939265428480397498132929241459518876308982605872448294479938574109886128202084512275926697572504730700035694820932512142253981850581413213397864461707510325296387066156940103261526168096193144029154248761025949587669792489716326385102397360420240747990660764105393596227685003479732216384238516279192241968390127948246206175291354788213287442587010251681792867842947471897697059351148101037027969980311309508861027733439337347651139358202078361003088548392460255194644959325930029810620731778241805090491730333398604665146702345360686492410477290225239252158590813359941461817776725154095211386403878419759167947927425984488722841525380006434481096578112219612750834929601236172743535804378318289930101476561193680338179579875672221412676822522694486531370712213865408739028466727516896782520779016106590479935879379563584887004636506888314526205517996681844337593570558820943779892229155571746955298300522362549499453266341068023376356229068385973409990354384316283825572459012943098441205036096482735331250675656241049733994817851154909630194862272591126277566748619726188277826296517879155078762547322981148752210648396859474427687772528440961676282352149995412150605756933873723172787933544956125541820561456197495875373380562605339320443563281067496716239892875649523603502387803300975572314590288650511720825844173517098772359453902477675551457268402475910415815747067939962248685916706638861848942855749321567727672419764789853138792995071184546940540124871702594013891757512298821776627720802264368728001069009669833714109313819458346078388036547964932041786824461430129991877963544748756137980694882146340092538738930983083162357671138979529111468692997277050944267376503875779952401751573667477085292732495518005129349247029237784755193130850923921370894973841193432094299379189935818994079278669373241888416060530260309439166141741072536241438900987033716447445425249446210159188890149793348337020438873286876652585759852051174164099928353325735524478989815926984533894854655051326447620606231660212716326220727622106544606883902307281664514390100253239405405550669757793193034324414025534282043152802347749458799057292502548491198400941861048109860788796195211808279498146683667469602125217348725994820726316371287535697571229332224555160397995212756374543545317522452317976659745598507090433630962241891201578869149285009041253249083696483413812618595965967242228988803243110960435592184860050321331814262620294807099118008622875441507117227971815645082049326264728842121332890802718073676679447073392357826138998113192321456382790464423149615208612437718484765387457385842142622013537074754735127370863903695085251561618873807616288536379087976792965660901948785551431537154869503718125938354123689032835866919614415361059147125221396224095316181506492157316085429952728614641559319474542480199553722325876296879632576139600554044600938248755188101187248617614311808869498826484503024834109147597046737658756011565958140833639236287870591018913330530608812309113175276048458155803208058910186958699901365091692850534151304420827501075821542489060537312094268771477384019520030582322275642716073701561570513595094965389536568251312537858142824833016593381780454175249721593573349276581125487398855590769441381664569517839442363506706315578875217914622645493796609393431867410541757869626114224485890594113494401966008826396790678116552688347903225363381779257675768008385235724189730103472135959368761490980033275304645141064806746976926170469428569839207523365597154819499887832986391348747145272187818787514405576071484554715832183448191456861985874207011767404648939093328291038685451641967381881176073824816862056330738260883549615664419934673180516887531166313071790942420530141196769236849740326547061471678506932734382564918873728430302656087741953255255368143905112450507034791613324500088463750525210589106906082099177368857686521426244315766944145087374513228192507768902398511010972525555305145862893512103259413876348169403529106825953532090132960760935498971643877142536573758779368841201759674466041087988724590552075468747772280252752530770217203730195465349801351286066604368761812895052939575983217815653678842805359597233977262364917342562804262618585678752067931033000117071325597319550983800583552625009315623720849108107490569796952535491071484284894610885342809545228826967829333996659872187254601206757779982990248636114595617383183256657012730137381988314986965061845325082514986885492345008593360878404466849325383896797212828976759465171231854359961388419460614880010186332304022298156339274656438739769743376519491796764625412084267202159494760541860425523007605992938674139898082355617290220605465418655563822677653349573976731096633028124310097546693320859482406599284002915038934245297535048371699129518516688931511069961488601367618119710380433483735838472235859749340544158008788080786426423292198552510582661317822331530931572192122306650610874175315042279221278304277801604418169138720792482213504888987429338495255840706579340646154488265727042494685152834049420191603566950063128691910473980081675230270414027490918131234123259120014252705217830514744932044794480373403627209776046769020584201969220962355197203170464001244003401893082883602173399923479980872283341495850483737398774465162819632643785052504422672638648543205028862084848448721692626319924216485458391009027162405157831266869896517545962335818809645933469320722589084059328159871637610457334266228527822161468725375957153555760132755936020343711590126639747017340055805765916452121763830218058975863859563127065748400809392972935462498964389336773686135206046847399855680894661756289951248479850883358960432943370890110795499571291027654796710360775245701690638120939284065764166411420939667571317578485779937109165224565967925854288105993003753189023092857208645682071039094069781195901391286732214413257532781155865965660996692617427115790297447634723704913887428469441808536093618370857788695364728555142370304235304770239245911935661086176416277376733826263365469593020366067954815046816133786529580585218856287063111075022773046239060126637327922414850886218098632109577436095447362349492862099672523295581575898306253912572869508990930198479675118101986460828663787939044053609239671874383435173569346102243351121946767666149640287717096782622724735968721095866153649992983965481005701999365521150967130324453934544214971935476485223638643442224958935339535131472044619977165986604137560308069632886491044307939450273544802254784729325260452041791833623787692412495767793278248090004285449318632594566937908288991734858948378521713318582014541952545278490789813205252246417022393683383312846809695825396525781752592291723748844910818815125705023849760330060277611530545095971845170025004686502407860190874491226913742940798889632545421963931092443960991537095118512019334561274709754167562168557626143242127061927183980338101787744820660994468355010421979623829554675510830771619831891162613182943350972386511627238089623980894722051446354073302651300648661688175448172875945799126832369030526787326863333521393087215244749003960627859793677231826937588399413677748169478747070809158750916600781995672118448005268398938815707419534352514039909375300105686536652044337220754930561505765088933624503868736192665009201579605594821466989517735835580073559904751797091015552807114859480004165411040526300443860896453012340091493480428154923422632306763743780163552684822836069063958194994669624503393301110591916317920654035070122733870887419848308983690234324633887388338455017565088556771568024062670389510088649298231442669173633848895020188753052111888501364552394075866402344009194656835105985144330261544881922592142356868715616468834976978658441570583740118510667739954369574236291314825261505032153600681725250941598263808957049820870393628153275031083225714184203772072865706352790561291129134147685053172288037275309745184298633331844440000101605940451000757754038114035770847368775844335913317040210636108003566337412999040617376382666471310182661611434081649155822924920543673353224931628959748224070752927593411967102709131752288795915598503366571055909040110414612559778762873315735779789275572672559693061110731391988577723293752207077344800155174515098266886623318269730283288166909787543726497965180396801685270141844325175160771644183833434169767190510374155134445036312798210964995912396993629742854743003728748569794559453789598128172666243019595845517288561055398428992427533155853808160678351034584093149713893895054249318161930662099407639443717687487137281888648656528165387510954593530020241504600935880819879759567794326146498106365386684243367934525790127939583805040057395495189506816213764181549222886187690382535911727929327332353216360864796449930532753373446446624732219019591985317203335111905481324752043749316562662375012764185542028307966651413050223706424741413934834589642460907752192258905360958698941090182309629838780184127549501933283664807856857902456728439682923103577830724198803271884378229281171578535255518552988207380944526885587548941887613199106243099968669638832774536226398232433351388532881673553508497575123072933061701068839738309334975806740794436441466182695900802899594514323649237461855408282737653349042300187696992969040526634319591233377990604801713051003224782925167851876457187905911931015043508015793036655165232767089460482685566594727684976687326938313116150256983905376974751066165612486543452551840466718802101443288210559127024889032286981864773555256059788063566040122161144673751861570409013906635690877273710805764344582875227347528269117103106786608046273999010783254488705246076603207700548010975177883393195481604150425851521577507269287126839530836276596454358642855607758503864771111340630875114383079967071488670173932340658622661055643742852278439872340823684315089821698476322682137409481485868341220356240005813235713440005845452715791323829892655746713149771804018031161298780735289417958667130032089787713131276089792468164362263484190504489000514124327576926549225320793195661729446463748974912775903417597748788429619606300692605687467895029827529716253448309952711327945880874670600131970324566196717665723365570490246435419001100575164483946041671442517227670102024776149009571496253344240004182288245125060831913904886592183034845219996582283410107877914921465717793611156423616058987616511210509467967388387065149730181966052277571695723372711359901543592806895049475279802117099743943145295159710886376245966120253299331104802773765370203300238602305648291839048299053799821040283904404050636208616923611531098617618868672131762965393146747312643864238442344382215332303803082641433137764560595995887661080467354339631482183166326763552020377592644479878655327814561508866908646873874943444595008230801273517183263033312777435785238596010751769955343081154988512019198470850972886082924289547633730723884296815287822803723839806038403126756072393416490819260379804778393604390754445335615027457007251298595710819568568234878912543510082755962993062514316239843565708196614988339908356784792375361849925848786530994974405447108643803504682270763938868906305717244511404548664715404569248004436267978282629221214866901533927572900492371104068174579267274297507522099120318723722098753145327556548667904365200316026650923714549641421105011952542160380247348089078529238734147232987087386217011685397243835191598023341188064857134657431488540902606044632990305003283220335953610863971421875905439610420441866739845673702411057957259757695460082810486944922969676978107999964659575385691857884969178654527157032323364077831059808000263362669633516067912294659788220912303111400126500110453530599001379312215371825047991962600244877704829882142969591000495208231141542572312529530322188747565547565533164158353898127052062983426451928363128782097660941201403449020912274154227305902969168605995487586409501570424485202222868518700187632429464133308077802545614916868439126631788233730753058385652132228420569525711745492771910046335324413476339657101325014250785517709690741035306751240574935401698866717773532366772917652541429041236725681636120112464286987579236570944704680723202588346722041688062681524475621874623120563234568699701123281347842259692671902118992335232524862683355189555817842452487040385803928229647154741030315006111636103328690539397865107124028082427801069830143858661771438648374047375093899156786761385674600896082768990597094289530523909643966598882057770445012986173275820579054131291600338234934956349218341333195135770933406612982982580810949529242099007581523139417481357271342896631677036796820639709250147961113791949634720803794521859480028321516525500044314715789512709012415701058357095994346345646145381979458664545438772871889617043684027223650206719257528785464200021981184273093481419415942704946105849963495239583776989500114961428525249499649454309622691629941035636651648870437876836268251756005953340810754950079513128015045933567474467251663472556027173898135587044779928122787299939386552094638032223992222503237171267744531092377605516667187324329498078955629986146707446702050096295303600834469318680074382097294444029942597188956755690521393583600367862471194457947962614772933168942591199436158745296752914228388996186733683314915844355721793367580756124173647144662748234728631230657241176627047158506215307753418840309236074421176760301017998825846658886693329678129068444688174580545120500125629466745014881749634439484802436658918017459149096980472204469211775137948392144327677698566451816841420054336241427057282751976963141168335233243505162760581109589931188009165690401604229620750486694508254692381264546336374703170649595926769428207947402923411589405479246659385518782848237885521172605151066541297646136263295608760003372884459613973967090641420234002561883743501671951293518869578011441238356142804436910405814261448947680781660485954728530172085370841735463421279695640658142840521861705372617750144454405526622446192615845808146705896916346177572715670295223715843360657953356690522823880317349389839792221917234487310113491959294485759814546498336273464531592624558276481761682360167800645258943960143051221945476665399495056520229150919493037169555653600691117533446940143195987196578776393444310493936350241446261045680792283145677627435533732200091210477524622790586077628865621038222953464641217157510604528491296631670030161806496241670846212346544948488084868031359295891406798787145574242236715779649183539056938145657815139748398193293029596830443152043513059908100535408099784779471652179408068270248229258768009997011973901808960010860845675961825224085739845283562550844748326205147099319105399494032430586212176948704456263846608589741328505753439889454974168780019156512747721994925122814955244417811931276870545158388289480132378194238783522757939316553284033872500199317130842963070355562388219219909386382203855356614427740333218488412636320522985334492409724909278525247154062455870303372756408999784801709285105792545196451792794543419869135092207844497156025448368326206269979593863504626061340801399684362387090441788362170359962266658070983627480321497665083768294973039975433899093184260933325058246815802963924235072590028115044361310401595207342751504754732372665441701924032742309358262087226023075008523303639955762635963449623508795779509364797186218356854543752493608583704841001516411384115429101279618614693165922995963692770053561084052583253975031434183881035931773136668480842599722456213195525641950796676376509262609866229281369738023721009975466110861110874007444016968191453866465641854795301514822465550570248091779728705382331124424751632177652253352566201956314671302817383611713070132031946261480255048304537145907785345670346498805228103713664692280961093290321406060911646595901466654201419339153019707330727622176350301872082218987778904686359767218890762044475646410718972656728898068628907374014007328330824337421425962743530313963819757317781792358583038650341281969704650158495269329384568070997965574005876937875867802753844169679162506340009402350969079939326087844478381502875122804294366866788753460301185808608702733012778745863149058178569035802950977206595465428817821375932033405678888761122053272880558760565692082568597384911350523522493650508492304590688390175194315155713893681068494479291350265712170134334058013388533089867823074434005237294772978534407827749346222789927590100411331968268774758258451552115582246788375231178430563492968345237833518284359034308838204567157893759928438323747527064483976917175702370270113082601785038548094521825746502578497108235171883109812425342739310648868736490323555710575362767955413053079277188591325929735995186606102382283244382001506457991514898466984116885226533330808352558722027559915281552860936458229552267528760694197768116120647377827146771788560236812381061032417517275574011496260882637404630531096839324284472603499670852303943739372431374615587623681249662618356964959945033313209080494306921833889648715273292663662531229495602478897881812588911054627817597243436677791453212409694565945221241427482325679879672657504145411215742377417278720969488948183327254006563097545055483864366616739293423996717553825119517498923852259813289444782850642182569572904258707537104918507060801933179656070785251843501622139667677921416612081701273173526572571991417575513041118967601809405824077757493634926618682941378363660005055915938523670534689601198988463961092604611602032823074694406367067232560870227745149718795420771626927990378209978130949790856123400426955327546819363421098480846490077676616654185244773233338495060110011056748685799819790692726631138461151078952877785278681429947589855718510457941855756590341651020226547863784477560981510197662679854881993429205116377361309337072297960541429965636841950098936329482976779625657093882393322052982604634880315240306525612777331303298480727111526067081628149949204650801299164773286576954746191169863722005458001961637819134542278411505730448810588936611898808030398688912100697622119241101677456489143865737648615633103104992690841063950195505930333763525765680982117201010615383225860905009073498804094239603611043147496781031970133335574819849536744402002462666718110520941125486588705256337908596969958070269297978255392821995129870884818070755874852796880836927057248822393061996904087412586519407925159378120128616159514723531690269723043306365471688996369794585560537825531385396866682133668567656783068878127689057444270416805101591509362900735995514797482133000856558391054186776288962920862661221894837989163906096936941884346958038570906404036605945860723825756509314298914359832798537456156694346136790132712784411623544030562937233656628415429746252249987366253543360441205076354251650830435164316583719406950648896611149380452784657304964833327746560735352002555046537759836270528316082362728378710916289681973918242290168058622604151051555443122159819000696012956357909357703624663154290575215129722323745714459151113753213226376288191323410528831163235967180693882343511430124375449660525721243974953975602538349603588571621473408001738474170053435615384188418840612281565073955457233470184802461700254677698628009128711546124248742615737461897055559360619917560887465820388039998987943393208716069572325300856254490536955990165989476288778241482826794690569707049240135186499193611917172442785086751748220052091029772449049038487554522431509782036923640923100327486613709331895311998969067439989963436695176595464421239243498614266895483196615255734959095110070350005870944866105596420962463557217569880734588721550333970013383510209938331183669663571856150625320839089295027630174491897802246024188136413574726100405245313235547279440134812038266101047481258605316746294271476129684673066690263658082776476282544086245641563800701039164356304320884449419187123526024605359494418872230427254245517196484110321164017375910899126268532586042645313113239604652113321894892466785135951353590062658452688816221908087822602884912401234278206588626234289509060312078118755999625088686126829736773791636972989967263311363449675338936944103997907863077535183050916531312721051406548251773415122171257534663656449775333475430068640397219821101912156650127049766336218639236986775718926922664620524175478117000102073757703023929564115428810189574997269211999278268057081117612948375629349817354469504410088883178721737582065823402859705841845684200748627878923249071628811664333508121627924987081014721138828174558234496321317645059185752879530500305187195270805692606999881820897572811541043598524781842982396075798734562979954993470678528084047859198148656256021515801482127822996659175410910474072686224568898918926190440892176330453366812204949503364638876993732975510080540641055467494214451538010603963375759875975886228779090849293958848371051050611844665290235194201053977804690123490802532766974865904948094643060196712706147452777671835593778222749107018714148831904608546372209911247582128903459875380903067770323622956411043173550556481163466470990495769354952332775338996897980022975507568227047377599399307369414686235860754429823629165228843603477695560640856483192403619762614123902744235401255651826129044816084299186640431452413690158098254855527650864811984669494955731030170900534085347019825394310441963406606164057449487658977104370087093343510404510305785755444960617645393219227852479550834028571177528918570138067145084288686317956907053872926413177312230894506805150134450498379259201901683821021521392746587589347400876831148613894915918874629092492083518064055799936926531440127028993897097485862197125166598215180026478656213932481272921412370761274539806821618517500856709411708245656500111056541631632666247407487464770310044785148443575449440863222468909662364856736843574876014335230352540928947031731383989141905787220748988648550360970426461547215100439008500760692637740736373232176140590914067592071500915345740192465078470566877889452751122614483827984118490901386276629578679424776518920428235843989111632330561567311820040506174468444471113937952307527049023007151507996270580862837929625683693440749270175575860523196041429252172627689487250346593367777398988667801805914832891666543466447948817177623133666528974443703706650695904231637375791591322451259609148153274959411667450770543255427170962327566198995714931840014860528559283144779792905587173319858063234951998943474540046252822092312744043511402732339803456092853879791273195222734675572066602408480237867677380331713881613647139452664989692972255196218006775695697772987802369320842194910962622562542250807183517379557694823707111988979901901700823643066544819418623656726399984837186690282988027228857635837125469109619535545225114642215668265186361639807188470541583602606784425119017790766642974740269372340689825215054072059894631792932357978860894897836679767519712180330628049078797300199152504801363967947909747851784174686235034016652622217989425532458369698743817604493648489140776291618845561397835372250028558200374987831942918431314621418201750536632055225671626706051668134322965378534820486453026931103509473059974519988233368137382908912913305121934125507442139853424164856733355663995114754466097911095435523883923317799191800837886632955606437354622673792873590519852939482744008558464848175632908989548736589556551304501373260228593007831828396802804676185622449217235987659749310428098573695761205719913002823824820558864244842350922893615268402910009447784864604363500701902713890151630513130651557475038915162332385339675465940044309031325192408199060098902393539780998739836510576555687755592734211467463633159335435191599593087701326436852415464449633491264591440135910639258961957959589409585401472844655470170600441239684381098179021239133427610408438525761976888844719404279116820630919461623348323840752906531694375179385481032590386948921251754934205519754249912753804854837664382517881902417144714259169296834115715683333662594481925898051759764562847510452668339937397836087856962987138200356764581660826963042607560409597543257224982839112213595644990655361585757297374649948002863043780021224512388932680264115897469466301780423313660603085831513854449106966672184405950826190309420199011580742426790660162714456371007210271950609725646143922208474584731577532408138401512596305368906957751167938848185471863748762100640098148385131248204335825251832437010676599039755024319341160364829842221222180461534326781161814356088481083538628439591867381327491287238994959750726793111910690615003852846553149173866749934829995436056229003913284399982459117731441629921770145060608423827300901721362310981769034603816825644161709413177348412926099046106501034076317096376937882078739967448539078634696244567770412620844676373417607363724241503187980702135996643109601290428481284027870632627192994265506516468747280197955693133272811642598900619325733342570948593884100923694320854042284153484865622910961260366482988345934658027385466339279322944022067927814624966740246202398876893865753184109439726690932008115987969841902561963848961654286743498931680476742711985444186404991032058274466759114982919199440756183992037476719610494496255647412201628848710452411974395809391674191061219676572205282444311187290851605984569150850863336441308330685429974405522968167346438128296542434134048036526383181344511637642263284152250024424592524051190786710413385455915995525847233830253490898340269481428118164962573484312229024255682974367578416109053836816586662753082132268120772243277088537532204160312497591030725795982544107909158735683699934360555480808406316193302644847655686522077286014197030663434628398170313288922305353603724609462355595037082453510082504177263589515969646631544902072696421218586495832165259517433647207518219830201572359521420322515247684238415077329156236516628629293674912653286584371585621355636812703406449603254147829936162871287643746511950223036179645639615713786972708897392397322698877115766187630977017968569248378650108339459993220874383650648936076655112316588198168627542012577462338620301659867005072440341299474244333609288325090652634827120522576038005671255713570910440093093773336776584465817415021470190394786650859246160366590084611118921554736298674510771320548090857637800256068222328596043801422289121429917835996352052974249078771946260617263231681806007089317422474716494458358415853813059909622086855299527922832552604032215968094626144644337003478087063443692871305770087317518842951984016430506706639013661293942864083273748182247588961794544723490514216593539187312304534326481377314082277790669644829676292876076851500368280485203630983589684187453726350664885968074173394934742074396944961514296007268491239896384443454770374527916306625728125686511999223836163196198279048989257043828475301189814647125562818364379456182638981233159350992692143479037631758006911058678420063597532206758868825089156075020066092041522572548402767954219462624490221171548244869141261097287759341074278527390193228908347137772953947345270811955802115520271737033045103601377993559475480329384560933966765164694734686652203179721402009806830893907008123463364185399988769414964391641879105984351205147816275849787582946242509801079325944139009146506939936586936934487701005350076963034120458491892085708974838263852154004155462318221094027762681019980567598146880746467568545629336776339307943369127156734388283790332784055462478514905653698433988286456141617032707554891923896484084399323230456318350694856858948390005098931004391791304292849831169957448690395612574919649426267823180228743333288440800960964367889547547782227521791326409683465300969404956131353909165101591450823102637121459529590408246786008369464681660908429441555392236122115024227108980317079608641689583833473437027328428969113753758994425320483318919718034118064697192477748093609250779922741850404885392490411980554375923191004725505834815309035244489420119054322925024201660400468978212385016798666048139269226989189393427203623758518611807294338561970954643799287839580764716233385014951869490637869113287963093439475301620654806500825240171059551250283420105758737034652683845713033154577044447655105062479770956321265922326652860768528155151288700408669805073753372887687517753615777469750684505402991910704367255863802494514585876796454589669484295392070741137905015339386902906489642907907534787405362421781361049075706259228107071896756666372449890917851148494882086721706173579492503565901278837703691699847563000266526811695711555150047698944921780341344865904051423449097150958901386019368159932751659561141564951526280475975605783279500442417281431688698970286606531345155553303278697736303446366814666529754755079116601385266029794639354362258626045794662895652894124172204260050406401983056132123040929612335318559946718530677228234493111617552521550831091122938465373426698081573602344947964392415560151592157499196158256125067100113943279863038407854153088401999476905717314833263503066071855804652466108617281773179919136710389830390938889848733337616814800961328111332881777879942875946848089818552796591850334850822664759851201859187730811177870278204020689819082756979074621946784817191084689927014359821569044562645402522519133942396177286109754702296913614854414643887725295018801903173890619495557967905214895448444727201988528301896683929538183117100269199268342800714968899226972733338954280215088752201159294849146648257532455742554075579391035810521735930034607845881686046023539963690857223097993422070297186379287609663380294167502410736606875316640118999639883507344525171071184637904540491080101000700863078846375939010712082685632193091313428368084782810499876472472285556617402311785989982159951820468156823109396176471244045659515231570501080027338973533578923018066680539072351354514256196731897661632287866023685499855004363525945554506892987946105002015218282520294815209783196850805371963206751304338972559795318548041649441570130737418040694709946075335472100193725900761728245379147821498999243514526944947179621898738281016076338538063070907559718638380063496511101300941423186477208018038753741622890186151650469817419518621754497916346075556949170010788220356492324551448951154837782196697392914761066504170582126222005185933037152249578451231733394368595456040370230354970069667559646837061835550595922593717341421254596246192084586825064167959066879512888170678697884421948363079126651943882296204033156085442163658862865778172744841330669797203137425627779979313887282460390228423211010589912467900300371369653669209383180058743309348937590637280556963653259163882478647042606181419076507946174443454023035585393789877246704168302415398997825578112492032780075730568379975293933307295165944074044302800042844016551119956880338072107287736074248837148931410595838941515820511059156047240348620734539090925740720109675386970674757070226278838570150958348994264680065745557197065106299283644678794616581596578229136521140692312096240239238746101213661832606331327283139444036432606779478861850390828225360598242909926493709494978667891975135386757178911345320901206437514665728763154038486714286805070465076760331311182456776904060322905085395559350215476667735249521538570247372913460251822969665050179720476077973680626269307568532940974249140812346064406270082125203797870098393677419612927323004014228789844539417179185038905498965672380040002081672255526898548305211973765024389183597921521233518845662506075575755814028604732932446319823094318614639826903446477038595405829106519922697839071346456046554599802669890295896675063658743569908187525162013935478673067955315980964891074964602510148686989604226223813569862484086476550164254304183014257062034080835556039040948734267744761810215415564612092407951612276512952119876469485301684454960031158916770375804816900466784911991288420657708544103161001745570038326305621623985348653104701989296602407191035160828642001961566193023580384832231497673469797363808723463674479098292751042605732645644638100912195241479622090555910927116507382065564431561140803457197363818000331105632428650153787777261894645044659218034045477892276830602890061746098781548811084014401093101072533238025845512240679944364245519013603486653043252457232425479403672390137927419708967920645684511895520158490328001930604553300150477902517639367307116421407400727034600163376662964155346124211809318640928106143150537625405167545166617988900587815562663554324690929067829868836188894393721845469672280586320540917507403705863640775616859700194733861953328356030873271176218887382779488106227081700313344057326198626283006964114818255161606477832662306065047570642164043115935409354063269289303657422265872764983738835397412489499138954054411714029358977585896188979379985688299489525939479880030644891816832832183882936305300281254088521613191071075744756368497353663924666714228487443766874739569522072630837002086106034006727927022364817926039995255984514338450855232696024140587977374002850371771236773112947444006028364374415074155557380871878606277153584904000838742907318624734693679576014075940925240231849275862825174445883624749066881873491160560374040118732532260199140461395580756447558245456864342553104374125197331965809320446237859866270513668243065721237396794003463363624599132228335480321891146037549206118177789534313065064364594340764252357608153260264541061990662477919836149289718404179227311353942264869555773528364922088101573093800701314200292179205065329523498330619485130317723370907074759607560853037837277357540094705413818722173442676907708194263342680261961491334127527893403195222230492846140517589262535762090213222186297021511373361602640077998385726634821611314302824450771593338804000029861620204738308431752695522284923013430528444373704073978955601672600791030248479154847285575902324693156223613530885970274756231832971262201091510682997147868769003936277902389344104791338786421561919159470374136886906637246363706295255858141604656902862226490633713957548591601274988491317812765730527111567429068645997501334955804654657798970019903519242694707329360460802915979550514683814378505252802276454138403775555752020746485294275110914904399816616850612808860278955420068555469508851872609797262966990118619947327915149420399490945376518788741130642137920330582217174769893116765320366698929507618982903275978702024411849970618401165238448975297867018283405806398616686234009938521739365746225997621266120889660166993234374452065048185034762570156070272352635889713423797628628942395972254101512228065054695445847543576560093198796287913737506311841262806490160539078063482326262835538176008363456074494269624362750259882363674134621404679883874011661844720585050471065057826107034779859860384421327312790602020527612984605115478369887438977468769456937275966557662088252477217557880967993646218033549329773911016370916594150179581740159918819685589124153196560498520414604872186769205545274966026197334435063300800061211563462844119754304063472700935648676239914527206572506591444544823632517106680823928714153251850503197075398160800364839004156085236143568052128460707747926855470130960128668668925636286876858030978338824709035007519311497794835785675399014859670517281434684723918459524052816261928060068637906785673061807645848821086334168997510267826747573882586214257552421184471754779572845622010260045728320254209682215853078730433324474493168939608533120114616793659237832219515098580067936337406374021151352613015070519875941798422794277204976343593992571894583188759639715832839540875503875507665535402228738965268682413134521861677041534452662887456266907301300205940863673297074588298823730018568583602339718669831498322849790174046923007553319652853940557351628699039547296995282198894137286827225176669539533163972148697581591636107668248885772700018134434217623214987806306842609052676201035773616142079674721415006397122098522028773229394608582652129576558657013207465920465850247424524465086876516822924764476452612701273037246126212289359864315184704157462108212653872536814675074517431508913229429369512321987219201574540341012244651419654572936295653675512261282624538641514353810419691401026044454957554198447217526560032451862385253133609023275303467873391978475767628378446300901281453604037189217972912252913563255205108895349234909806643789166558357386119576883925083603767932584697945313494927824926649444716065961398175930857117347255571791747589474179829031664209737216315630210150655330626382925082765011891840706271649129992023077713538877273170552513733386001352968155896675443261508423153472534320673971641565508847996970735713508626943746050654623414163044087300582388499345998306772129148141479783807579158256671187218899141454685513025823802188159497865554346682043768306524029713739639001208868472289703116002066053433078819697022309696479492416494261364992998376147250020118759983545144998733420296506664201155526843147276407436398345716151670820260619786577836786448943064550822367314323616371995765697788931104453228556758701693791836152735624314661902979180224439729927414283039409626455289764805310066026973928301242834704831247913937317791467284003739745573506823571032549585277331660394648369005131958090474564745759577170955206059613785412547095788058855678872380371628659969408577607554178836355301726709286890485144234991231694066215903794831238662875486895218959001321201120111561568600994259682350154087837016946139192565645207488024440216273635567758043045730909106409231775764265343718423598879626896117232556751381702201843493115744751016192377792725347161364432938818181864728913982726109308987863726326810628047075266174200986421561075776975569565029256498138186752941295306193564386664550560347401917134125248265083960756185513572086119290745951758628641078578386539484249346084827244234303090092111537170230914329742556890814195686835701910094236762077266336622122755006791457536428849162640279451055486055717812816751113357743546507474730007411465782464547589335204832608804442226555515410271231464110065648262843608912452392537518467713799478308484967967546544819585711110524483613913605137513289990460950427334427243965648065286305634608224357644070725678697978507712746663953993038732101593415676524784893109305472429452670747288537429808059747439003399843500374135728095827211834028929955379745942507673673258183318069791405442590215607304571302732826077588813967115409979528787621984880026259293346338705140331451577648259363709708482873058661597253752407593796033488775423051596505015918926982893566877930750002102972087700967887480341927733624044708977236579917515436089701883200229417790063219916951408127937827368995023094861066710381995008207890442498812044560710529023314925163476618726774341522917394002599824593171526673074630233843602371503573961388287098036706932029759930401021249085656808366185742253521381962120905330061000399615005850289296356588739632340087499848583889105767583682721857191562881443557101249131736057979578334163331560411878937900889779090541007289557187808924029326769001460275319185925132639915737733907670611388162982292526918946019062369653608405192286786782393049261406142820210440610262848826834582164608737192984834885142241299123744650612759054779237375018217091803215433418624934648136464356429275066186810237521454569123571841626473505584320095140040082209579887145538769128446911141675891089815487089379273202300080980810346819371314144333729013162585943393244727600079051411173390879965911658592611003511261597164795203548676267015942526871446064730921762901950274065907679736195029424082910426437521593534697987192678839242039072505416354800092851342690940974248336769500902921906001135881134632318856984486726015293497871259722472173668148203412189493186297378487936681988120403353057171622733860647701482351269179680575731402594451340564015782673792515000410044359635267874094327907724767071779213078352177901817088722573810840347070981684321582571516387128853614802706997007109669959208785785473623839361551736251429010237010227301898273773245746340002160408942959175369456853234878806561721347660551368819542662577897067561290057049554160998209919245991695548439832276751492236795018406845715975839894774200479916668230703514832647279461134753375505335362480555601424696366706335101753645517200709750068722218633077532451363002284344828486695547677288378039305127721733320130552901650674553061498917169031342858507544178657808932208508900678406542552211843444289453787100694645118663391798523640516466985346870389297396327941373249490148734145444385419579882847562247120501029326972406485444223832492168900727680294629002223814475525258993748804693863144347869933608505966721255512910825328809861384784193984689711325105555206464978897662409709716150978355642590718150016539637324515879950973451113846458080282864818181012976719152048080934028657790260811355405291608184834623641309053714590459051993574861244010254299529607884285819823926495205313712410798234235838397815857899250464097519326719893333444258978860129477108854687257076523668755911823257342685939724893650834748923319898426298897469911458606169004636590894669097408920776980498300486860992882602070924016630931217066702347949958916004087341003291042872676310582179499370168642569714131254119686390631250151379529277681005036834788847772322167644723254869632909970085404313504167178690515161444374232380917853340705336664623411655439096247797779047823032138153370950206926286984286296229393359489497416148768393115882620719882204931647672814245211671179005713459394562536552312310170457204460721844608495223950480010642715693198295047703260984422765706816023294835859016136080412882985511713367275293635385529095920075803069271686141927502202352430503500853031892982725621185607151774202905102437032518270132990075213280893895290832362205466169044274839685966240961041287395171057604836251503868798538271163748141336105611707031826557123470748112549908409829644211786543955534884553399224094854161201292262764379162788726644980259707294190779781522805061749728865451008064936434066497717283498987465391667196325687242371113050117301400964104400434747002056846945162516914876739099403947924547784974663402423801966369991150906793110805723295289087667405592718793674439072405822241936894342311071741198497770366000873687704547416374085859571322499150539305391082379444444749410037225128051737157261455874254427734770456877347385752025237323025197912369598881918532816619031113210883260461805775363987212413950465601733927979912988356346017725189714388567759102158346341751563275270812885008035566409771451000774962451188106369580243784093630704540892025269761686346955539936514511524405567672238015097517155423471844602646527391146353831522332757286259977626770839080738453800764214080701613672133526549208254377608030768654324290685270427190851000362844014182393045584283338100401087629515141659407297633161420229706132777337102215570445278384083163148042127402636724730108303260852032563458429576838342615029732366172509155424862067040982188940718502518010693690552201694426202970290775935878763401314174279528966270909214200229988093319834779303421451668660558067016664952077133128974392069334517897910648095145919374588045399220636002386673203374972340149848760262760018837347827687418136335800866594831104073577489181888695404246591019122869903349057649979583286354114230030987353942413651557156559246468921894870474207811362604341450843324136235445062593485265693530539615930119045922937260826518261968113944850722654834617301728902471616495827315477263207711350357255869688458778243819761733873603949106832230064567298725914905967609583955815522354572591749197856034186006605011610127278404456128199932280006207779835117159168995152616729542544980199402927911524385735260971135624581505366890902054365369094104027043636706233994504898506482243577831080561612472761413361923853691328858821284527968856564502782426268645081300471662361890289922496863486795199882066206109038388852374763045146669582395910376378550145412831038496959568612644881985405137171202689068755421495305878593855717559656483585500844246650348714616792418730996857936285930787124154447855934573046323520735274867567517246791030760711907548359296759217460846313709900500289415260596769007685088176615466492271417968583020448846364119871897593874454307224339735641052883607887229421236876505878088031562116985477743907187979731547574327079163461542611087567762477369625513719587939973326276010818504135184755285819007497220092114366046854275148122653888567546333920282862640043297819342608134748233514313884538736866037210728259004259048676129973371620070990951319453742724627326994425734070476578832466400053347948025594002661973551362485799018534133654375957706273761958566201668486642462685218942167493723061990978380557298644522682422598306965000455271029129189977496557291544284368253152866972305591842209207990260686997925074821597254141295069847479062930039485552067630053507861321401328967444481979910979858535511969003328476955614040186462782239846802909486875178289732211403437231790304827772574683014195065876575193623360428226802984429936132750392760377121997740942066752082984549161799242551933094177056063685826487406618793095426703695896589501290874181943963470823868882348694925432327992670107603518196189316211263395520117227990847059147105511772924212426164538332376732685123824922917621082025807501315501977680304963970828196388881092172387906314319156498223900725026778151769724959467147058537940975682705382541842768491662218845576902335002178353815911087045774357238903229662007595776519011761449624636541231825812923818209214273653902906159267624365083387788551880265481712233216040644434228718157586817029969941243137713303904335626729926903504439883556231886604211991787174300060255150581948120595551070669544783979577900929852629048959503648848614853402827648403973172526596777132148228017632755465991447902533240285062143690611287235882497463085439147109190363234419575924759417772665380533575290516263110725592410451630839827918143781308465965085419998088284488569005768137926564946612751147228307946988903763076931351261007988731100768988245081572415042408770376763235840834735571350514644369786471135731210209587890035522526796019834373060951464983770196253958249957881108143631687161114374608542476751498003028451849844569940201991055703768610019675907079623209046084633993866213441802336957543633215571188613708952404162016181435710706864266630520286207218211042744823589803697028087920969796110590838407256644087513639126958598790277583024814221658897985432437377429693195856244287312874464570467064041033984979361480955158691211303437491156449798995341768346069497793784504986841896110760273917263686652370123428953788815918373594028510354261559461801206076455194032315382836921309253631598942802656127831625468049258431005023897952470543411785862918291906611580378745507887228162985230205366921330569313470629699931744382005492957434892088906133063088203525671686788891661768517549955951578491988851920313590984946877280066292072646981303719138580515117224586109418603451868462908861373368141049998083063197568414230070639217641707443963106151654548332867440884133323000679130654707841586383511764736574204937500926850747000767908315651263835524889344835915475558331883812888407996008147798295398668451607879516108989497588827949811372680999877982909977264094527311963838066336941160768312947870295838134409869512940925265253684715629982941715332475126583442503842101398386583705643826399165941458572472454079220107354235802699517221543158453526945321661319752411328130903083442426751743048567025619053164172474234460451802576481122952615878763287123472616815010621764433347162022112789415335294662362634776007381722225347035912543539077575116632116132623348501586275999140540632565528053026746526920372347725486690621647355494122434399149770319794732903851717472103633538456523333656687935052083022167128749760373880252672931295603679112641553381480780638532907194703221768405615724366981732542174813650656638179724907028371465922326414226207428092732381573137265579331836598965472549021644987542380210871762972997425846110636895165503393958580898275684693332775534346084829093158395770553562141283165819554349669181604337270574785822053962547538964430631583205865204093330955883836024813212110825933535249771659778142506777128733424401686438085302883974801739998799392913292007020549181310183564658879234834589199048999811523269574080412403266348995512201905022648685614908604950298933122124491992044888953468042461589131130705448007797978566520893356571701749614987337636410893505256579851025981578841060086173432118112491918401628166077917101294969741191913942455691008151348286818313584084669254960920824411772361269691735635222857759720340348460946052309633932369887273517788159013125808043775965866997763318619939475076784934661662105961825596115145914624044365642553750745026178762729619333232208944635817411282979094869340053594950583654607932870914404628801225439787874224644019766091468235013394655246145885936068773838244457986010428860966794582855925001155415147197148601223646126220817485705782511506479311254955004000676688220343315667867687609052708071531900754722619787393617527803575992012474750380223704868301080702231475140392077020081995314117450263050304808331284796176989804197812429228999742441158509540240746982187474169527675167698433270481817654644929370969313238587131889032967369590842809628917241969448021297502017253103026902813317276511604055752280762379051365060144130205310390073296571046608331538217851606630303491104555558856929443558182390936374823193449528831574595414905826729613435855836579029928596961868890377708265340256545599988092665289853048752687796043195388650152003681798189563312331928650158800288808689813414818635707378316342529447755664762774349027769139932621587286594457758908750258924318815249070991612462680555555737145471469478918544238402812445951363262521616397675578009708890610837419330848081698071353658789618317602199735070529773051084186005906571467908518368076545862817785508075110552179868051837876391233143869260786388586082854672910312565171142214198566540706963126790899842238779967758044961460031167899473732674954297711430687207248054473261737564386738355678203427893683117652383994120089100729348068515712506707075762278047877333471471955208329927252000871264919155434916333811889590090487608108813791008761255002188342387574556999688791108519176868762614478601745741466217026975275401734052903100129864429171654321010173828401633613259832540656572002552775316043008542578874304746214464580622307453357969252468887851675390405649776398179481493503126596500214522752801050571135499235922489824351660470824749453705214268875655203029473415405432375351630621948317370852059917363402361848395384671371808975304568635659056554776092105757408178463857633013274422067496779851918224283426310888144431610464653443862472984196861148568702784844142538639175696762997851650849186623120984331927666228150968322708200435254924518072600140768145521531186310395110123316279795373186415507954126363151017595459579872776522074401337246664746797293626126637047027669112517407064541838703688357978137965510995024592235588177394157742792278298348219794547871728842301533468651223455951903201223470616169863421555615871943970530767278977260811823974810244205804204581308989102574779048727596300260764931150954186880525362045155155115138503412716058546878321119649010334397890976337462469466097731129742294374438606534443116610836531521719556415944089258286464866289549150364047043004761783093287192516048625956630394621728907609692703342641329308472758348472599627049180369871346599307317089767410969138154675910574451031247357666675046892783577659154419330980021720451878749095965888940600980520052310133569737006656787406295224708865131143764508066462904515395404120283468862626061272827128354190521525749354174910880697504484220500778750291517785767715093889394211282363410173475332810663941288087776887940230075580228093836074761188184529242889323523581098560717519831736636823804157976403059137540611927296825891544255107428458081438978391562410603668311582648687664010718687550107843302554713929059724205244536117887418313561349877331816273579347538367999292808435812222182021850560523809258819945592477357567237617756528842429090522898984278489586070700250511146357754543416156812284645784445090112662186517419220473860739198752005360609616671979723047648712266120820661777808244367437318116921486105117488900855916214693989759397343709092969718623840935864515836472918533491676061734393931834018277815423615434102119816336528776895955261694306425176918591481844628420763402000899731482950211861241494910891968468772153445013542216826635912651743522908837714727046480404911212575120246199921306611000632638950647458013550375584087545196468233454340931999058720258524936723901892249494504269868086747113080714921845269112527314841137093447438035717026064985510658153758803741076150156905809707284272397496708016443822059584951218237013886072023293336335462537760701273807503562217114309917789362143248977462530027116706666122335866293433832406961017424312629996499559052145524502024312931010051265883397963579006295395876118384375452221132554570075093195051820494791966400020142410199181847509584448629585701589652950564429906898641020403207248972330281633539197547614164896270903092843455948863975408950517610077926562534584863861579367379121596332805035441894972930429106027421264943742294602421443474536711184948470171419627685289415049679862977123821993176693277110136708850714024445309089938386642916443881755163867665767924751778623297000236791815371349470702068730594230680349571769533997165777086573368013369915383731560729290709506398474567784167532234442903928806927414129278567430243605184845056719214428122738350379433711237008233468068470756157486264508032223651342836737134449061041306868037737970358582520832706354997112506055117888709130448729389862838869011050917777156461603905963260640954112184994959557191206521990429098829687161258252890750788351984076668404665235732977972894354155838457404074930009288401095607784202705166357745584329701051309547089043838477261607246642829056955682799140988548114794409917813178868521058181977767573319369858963698323706020025155635517181083972442032756049046367795084947325877103566459445847210440437539160365344203662672829215084877788075801311341391574604301765445757628863841816854394540173348168011475023813472961818417020779590500083827715181606304277093695313883977737847338752566482835448852417088987556596161011813026611023931928375436906782862675253347575873698472288241500628911687686141991472066613653668101177177831708624063079101027060512497862585093562359005334419333330924483017347730685583823902632857160400977994068514098329283787400277047434869182361048395398650910695235817705285627618542989978938507174623177184255111507009441657643992436173345084134614288176273485044726002289648547227895663360962436887069652337437249648895267817769362015338543437000587796996249148765125078276653869626031539282352278127405696958485869890430067464137018793244725309355308761084770194551988089619762847883397509194931707865369165783104798075061165990399948383733719575860326523009035153297094193481117464021433581294956000204859014349212225002710460476951536642317179849435208413806220009578150810430079448518763205465644444461017426293499280306140923378306219606403858643901542285123622308925936321270883765064128754438547630027533983931882718732865024601087654161447486011958244032947114598985710760899598770193082999386159327898370640175023386413365736087937396551899076651234638001743590440635323505280503776503243877937569466745954610732359097989007737674428925129485872081242174393777708815181981514289189659951562307654797125511087004876748278029485448328151959962702580085944657885065793178587007944684512778922838765613193614620371423891878437877278449399143778915642838075243887469061461719997203874796707741941555398225435617044634972634483451252382476291273989607090798478267403055163702571036955266826735116377604814955243727289853902484758850008321437592710722916707367432359978645172167597189071799907569531525778542314654091348575920276415065931186602541114702120297868641848763263032629450306138580769077548991549609238903380995294466395977220352069157692057154462730396641617869762685071592393829764899755158474013873376244777153893506231589252331845735658211734205219011083991084465324191906427032171514456665609488491912282071059237715141318754341527791454604856101337110455463588703691105052441835374530263742977703711235784855188925611219453867352593806414721089516212881790113445974162786423155467859734809237355818067806274013809869410382420757717528694066350530227757295789586151567396523032015407841184106155302742425700953134917244784977275611869356278861062932729313593747076163271520457671173412485155948661225064119727025320087377462069533995490446037431793322076052528382736366410439336975654905680617528195733555888374501442867522010250579077447898357084549501900959188343964251665410554414290359223260386551174902155025994196362767827920725435473374672916840962999154509219603548757243567911736408818017168676235908580441730385667850490243747348162733775806736628664645755490259630613737589897799472781919137046135210638583272579595425751063377184239369105004449405727349422520030598687180464226327810208947400068115981796458838643070852649446602977088791152036699674581217228479294933334129040772951551656746149072753140603688413773262846394239637497703118630003545345268101201846500402062959840534540489685955428062862885992395195109810263163539850023714154403064940539998474344338258662084482905887654466117217444053475782742931420469493436745268989934333749970687663399338202824114708134810013254550473652534674302305085142495593081638610275560125553160927526390635344972340136510899847800317467931165761049395089856917471997459598050838961320015582657318224817555501414709222874301100691849751603732208492458052382499667004490919524200816509890066761288150073848560777237514217314777004413438922576019902934716705932596104626241104292980455659590250547603102261490389151861324802678896699989062081040225497780228647788273564111918597193295156646953533339170251119391760485850656113109625656693137393484636758621481506502421149244360115968285184457074517094500132031319512214771994785781051725252246869484188438393916115543837998840776177083290032266833692054830247394826211033430206625459287377889744806746447389792243263655684454572829181602732680644450440249136782421617852502608858930047494846142708555643278260676644859019050118553538905126345375908959625260842729780828769808643830338296124217053568683535587981844834520108844340090297626114153871019648673792197873325613471485061612468786529688879701190538981971494041123846267887717912803183487565656412321775249791482942545693050403242820901082241194058385523616950073415448455632025111669021395301351901016742424943834590923199322608616611975749856890954728734294097126289284002545083117359423275745138329150569695483037790975247043800122504725298102021833916894540463082669789537226008771419063663985986295729809501072231834098916017538773540306897743086262811354950880732490281226932495648917463260551865917469627897431564241852222033294323692910192154340577332604522041619029045315600039938894724802665925021890854312288852188169103986297169279312156063832669144532248716718999836678952596980342474955828510662434603889904922896151390637116253321395881450685580672666335034688569348397445798266739152320748211237508815251670239202440260109799419534378266919730666872360695925496263458421354446967476935651447039019418064016249042181470261303273887403637023653798030681095485549602074769692985797284542276825504280703663468297290311338658184083108585872542528879009438443509232206451644029992332403261207063517790957293384769088922109067233680207484677133037062048685462516390790078339735836433025499751280572808225418305942031215624848422300931882949093079970277137934563541904128886480395842896604049579658685089213140379229071545463060878443190385041258243477295018593571218539884224113283749150111579230824226324756392356590015606699493200464392279716587341067630375123037653839459592198421005810742518256221355024457669224049378781121485208955547537173775436511334860975871262076581159514514570304462321870180466392869863500903765850987516554069865235194699924648573390444273572853044340671711049207937864153405590138915339452802417607320089489202198438425767103689511974166657225226434507355764792825604534866085837568771051541576462949995061638269309861914918893648600044039587168702660577305969599962318529354426190997174246738967442434309754275857456097340553822058009375828581854156509485337699324061641606679850207319746130217137002593287658485619759129938131996861943677622310070431623791587997396771693013556434965048778756205718688170203429013978457168962900993938010039163219218523779543821348145032429202137395259019473707912803168753796583004218360555760520871902862755564155805296550430588801255386776599184322536836407914258880107106640954142897810125592429951475348646857257384745284370079081553600693646810441302546831619994769642485648564222739358252656547456495706206741859347421630855187770608959957063768904180011402954066767134789622745037601656803465309379275956644981289867524163270657188053949825899272733885890942478907517079805873665814741292393500401421020583903206355678459515489665472940580971048658186806617248681583873828006962736822908526566423679063535784807598507118140935751925086067130207127866352984329053552288067373366695930674264451546973687759103945085068176017873941359716217604054609023930374586507798801972071984721318685466625182592508821206943074297836282367760068377108697679204422716899812381729440830766436800534858415834396809043151092040480429805297211783495095109990014041436560102268521660305504689705374680727609171777647951620171519697006587970232663624423155640353129437829227877736873207503167882695193813583413631050865155723704736531514260285254357987714675961851275394451683795843025378811788179957194424974367593565739618768472608018692970501176048399986340431059512386700152253889476186697552967602637548440866544388464834900100902060028954686981130297979684826998300154424404098215722583198529540573694668331957316411743160820224021252577146206209581003253770796717901660031318418075032192851350445793639760817725511443879257475297276370357053133108328035687991169880232270797732873855662146382540517793508608816998490482982773310704978150242116841924289067451661148963419921611701839415523839751967961894596169977079364372135111685698768116866866088899049849897586314512973068387113601336339351475206316788878553852280419236802633402743433302868979165132682441438663638795308952033762206204699487535562639493587394020706329924426224607545253275008611692438550248595971965771867019603743436971658878870636983907401256192012351821312861978744795713972060844951838134800838581021536048736598830449298799355597332895415365833067304415716221406923609545900554493324550708703502900824878185603123695052349097647304192243599019474826336792585207152765063006181467958739934676840942784897866109577434686538702124671899521698738590691093474875773835850306916356557187261956553216019624787503900897311875704927587882291914764980245158069546940057085386947539295128380968965485652615650406715688759062673461446744057799410504403624742563589754198748294389302173366046577032520598124454112688796199658542452556692872145682204385538803006444431294469412170157655298116366143979970551529455145963081698925692869159155418452685209388826800493532659200186591816885225478782998275948187338816748334929222870250052093875275885908129669886614531958386652806742725913570971642486143686024078479209068682393813179666699707863312397156570409534513235319898687342798019039674007014702584766237702338686355498254962590835379022013482624850481198698383377468902487558028291091350079783136213929964375254514432722738105670454113157913945397973589142377371833054010416020562545709482332768146043111202338114602568616804602959810697322434257155550492088904354355073885926045548317805432062032223920993927608342104240008365783255426331117762066672184495670012203405513279719166389598233231220250251338771766050391344551906411565868376328464588511247766008957453558486648453000631739479629443636853108303870849775303520544722273116083082138085985880801188201720562365276291155832548220094445934065137031552368913159800180670748436266512874398156178819270187914146565645841087043126618666418738815491033182722802547035388507992967660011281991997659978055327255846093846178937665364172073998326366702830558593905677383483257567762018501330312726120703606287839973734444237613166120110746751316155777961366917884826257729639210278810185482834442180363394272730162631079386020045454792577518669029011978754593401868355739851645046429371224891127563035716449754787998326825661109200932073904711452242482872169963486111429653076381919487851069345358907524319450888239590087888857772130200533283714869881484364645092928542932613345901075802115035734877734510327170666998932334427234343496631648305066983541368873898747813873404783869268406877473543338222136817684457307306018957506999147287233151286532359540906654179856459039405858610804887991840056186849081696897352836707171357734438634968737112583361239409851664411338381032814955964178476978107160503346375064867961593619690313902845593126895308103053752326146909503853738593555401039042444632047167024151622580596228959601031060287561483369957170041118227674655222083622429381560760223241805606484215604720729693988586979804906281978437506536021821970597350887807468190358360153515134757292536388211978279007661054718946429163749356412256401551944439006957693700333437248314991884760736793941737452215971790860347273625208188935139566734202855583187693182859371867906167927641681937291143153669266810380085657914109826005753731273675622637436332583446693462884203768084040210563933905904113474004536557149534432990325405976123779668583715052659044975476082010336344986045658691426299893638381508575741240021493255722444175557667268410106272094914247577428645088079988776443054262617522420480285082590894149405665895254845423366713965710615291254980422105330679244536205011871372455521943533395972238791049424116418573924179288625667120147187319430529858278539801327044561943780883806643687206389752829676632415829771793362777243542904718125196322297930708428808801775769600606954299064024974461293989550087562526307650830580368597196272559197310429330861132969950041533614336049301159589269801111356218671607730960604560445344782938773785776314091706953130873422901814940097658585227795087491281226739828446401648248855765874021834803577809346137955261913450115761780171736343510705028956101436269130468657182188595632405862985933540799999984421760960154587524876718406715441684575335522427046741635810447287924534302422025821716280443517071559355292077896593526485112777513044452204668751200236093152974476700165611643584141383681079149208600973045813973606296414426235593745681308738308710072057360771290859819158635107437152120731949655015315311419623025613114275458550890759350005609946489617488454446180662729959821826934490060277596648442473364537006234350684443814108453443918770396472507239370044127449326736932584662790882984163226608477643316896814956568979118649609554349138633432865487729536340695154281498080604769695605523971018060245487855769855667878066250332053140969640822252671405961014412060449222366758239555797938358116426835097790604643326366246074536015187391954004541944606463799696730186400037592826818624551925327450189587217946618746019248092874781561222627771401474791036908127604595541020343602132840385702112317461605425431540793968368739818578260028972226818150306653676982068602174079374716388077388861602780936849613976527251342808961808127458149536502049173413700481307890580167060722290955594664541453296114592535292034835749975890680895795123125040805303997232419429568558852409404375341406197141293080178355105250658094588685534739273700886500330692602482981231450596057293163580586585024640903505811425904295610055713595914269444582783861077975595519079252732374922306590519969597743864114158801945211924489642323670776176636067138838654359186876394526333421719433146485449769237977578559711311426091854070520020517402358472540450331233204111423416293859666023283665656207034242187792294594873976269829286464663962388307326362184400581880819946712930334771728249280767618308729556052447744625300826087091649907356199045708735024991266714959868888674170283264981337728698707777981933866105378294974028831474697992462233032000683757661918243044726992452269095004487539831397998296369088027775342024850573072549785418155726271323421363403244833214789480211542206018975794883277825972659950893733712025019480568360371141016157190608025112399023073733625585641175211463461183975841070719404033054284031503867276358682523058181242364359878962838098693261638585698853429378381405219627334100553252929470895439631121178040276668636732481129944174607835494587149911534503940814396337203400850502828809380144181816289317675029851338480553753164895180969055003692962430939837709355353640850006304698880222008959756949650050402577027898837408922311818106075897581222468939519439038733102173413110921966830960599411038675239571486423544900196528514195210034549126416974954183883459390486336604585712994931831117946177833527245377159520098380562167215156515787979845698634261364524979630001786790739806638955826600566532573928918763931121773765896571468856584737884561879098917233688310225764604888534745512202415870744802850621030504218848143382818127344643751164502263452481723246936797865104828075484873256372049075627843913281744728830763860092786394474554280066556047595885067688421720718102976184615875115553836031105156647297037573608158775372248896142222437018867067941205978558717897048781383985341636816215887053173808688345079464473615250150380872781651062679376644393982936028787485283164723752449477745213252352740006238206493687958178825334362806249669977314322334999687394425824590597618044613096972656534593597816799974867328292891211352218477998753622319015408259722557690888828147877803186448693337499063354666547284363547920318294296258052788253838221062512958019039983130052286865183182685968863091325435507488869199751306365322785462128481078944562147557501628345452517731811680173296526302923334547293576113808957811105425187784860181820048571138343189482977391600444537756428934064591187702361404717686500307614708271883022630644080622138304927866960447292917507359655217913515205375289111019480762237023348997226827541200965022274131000172495292524821504510661728886097761778759649813658565832678952892865170229701964161700380370507408706041829919105196989999158533917669134306636538176170474537281886711284974396590240266234377292762304638696039822307270271034812157492000836632952084248759561563700261517626372783770807034530944867835875840672160335595901667789887900311165804481206241928914484399115063662875994515330057068832651016659722589412213552869110511729222846430681670359507204587861786255953110150071484034646496140679052593844466815631965675598180231082447212400214198897534039582592008455663460565801427278913572888705901426096757951909914506535574437573456016533371268853966166515906540079249146029135544703252061396347069477299295233144441983236108275690198675137417059516844757345069207503562392649862961954521011832044693475219356442889023691209161454461171722726030655830458023031526396016794306838491153421403796585039608830025443609860285674390229942572235394101680722660058795164809655887982540723881135658450412287335187883423584651504540932830881078966249633138258464473620809143815082153803291882581889833912688334943164893574966222258670013247865598240535878705561574988790969263245595347472429105948953993532762120684013647458219003757531237824957991574365361504247580740123337104999534858340783563744271903583245987565896344326590058933433644437630741591841882381059880720820747387572764676293527336262043750327144473312677999111445634607622556716557598503201711332856751680917692609425810335817646757373559744257437822762752762101350449777862331569968438741742291051779143057540901521621980357766739317384275696962950654498681771704440216269658947217941356267987654926958575693192202027884108638112233484382619080648498406312490884564673466016175614004665426664727306770325031460577814404254466176238419851179325658633973386453198996842528524199552941962640434382121548336253199388497491236469499755086086376368963058484099814099425936730596359315592669644658745955136887388507474354626785958569067809419973284439537514609046895293516740373677029654271346139915696326932963557213070878677555197100086638635739890196498304613581279901656937260369095186779561788660846388676232408723920630730498868014908403894350692008747149932149547716720117129736796356982780468177681562124566488910143995880854703052668438439486455318253924247365584993898385577706145927193875386623174138427393889850367823456248134093301946199953545104190013937975014327850158156230789926029115370830649205869703918086067132305825180431252757307419121732219979181392626046851042197013380069013411278198392950854660883590623968225576838790079048696614844987526353217288744369970652627924496670683463010713887067244257156759773018844660021597738684470199183550047323151962501751618218891159059805253820815486734317238541315134395604595494578910918952693832590697206140101353223821699926571708368471305569880911806429235673000287135817888085779229441447286203449308463780549627353920885534403033886200183130607371921688476741121478020294245977072095609991835487639899734698064282553367627158554555733464390130905995996494668216197144906702585202637971405236438097489332621422663471781061255398588679620143575386217869677951756179951811341065077197533808526914924353758739536080896404649382095877114152637496045206037895271148277728993575118571954683690790183694445082745481867914490405531417387908059496455131513427225558126269815750203983056263216314694640750460011596046496449024266867382198034131601168576463770956692807651796784729913326906625319059505582632535435688145303560555870625290576128675957568455888359509241129849345086042353356349282924848810856283874759262479829337810047722250257694973798068070954896336058822730526511998214935173812481179281344138768420278840478327685979408475319412722412664690059483892315156137593538642034475634156351836270899247603660666673242447067266703625382506232452838823454074012554214255518184247966453863733382199260589826720202523126846355042241995330559002929607723593306907089038231958258964659420369644963063026322231342391009035120167308251661759296929425994151194534874013466926107584550895244522673174563056414747272085338750911984519404926185148286797844290477438498359326629795156236525858354330394841709789484009473227297472829651528311845403166775739170141652344447984251020708897979591514111021381438293015439796347982413129260597312785001283560242922303660465337376614944409630677746661336452739512080293797972476033429908241947117366950885462786469070392215031612042001464311234138890876440219603946376322540722508657682015243768653364337854920428228459186357772658159436351215390135503958179129327054256210831227658362969493819355019755418329029114424212100138648057023626094078201597187666015277861054362600080390904460181756466672196487132963029554270291719880165267671904073657084252114665238596220429713035142155992996539145065689633284284554432003491955754169015198185222403897998488041691063528726789137168729065180731588592099681213550054263801951249561097734722031841887315577628125953502196317698240570815513871559320561665953155458011618477403112716850713578346880052489855963562660067392791223698766255482025420953149346294159030858967243709676904536375201487700515176073003680038487921501841501182106556187612196284464815210019324121657840860304577401918057664388666492250520973938046670143095569484310890387408515121314695762885235234940900021394653786011165934126717033524092085869273393168823943144202280742428711725250369088826351968645445680968299820112823638486244951527867554371565789047323624963848650630620910701393849306957114432585983430096583010936653634034016171398409008778522691026549314585264412110189408312025308058208412415572794026890212235966401043664442104482412195904255681536412661927867840351263161028131479654969275336257128116221122503113557306634807248063974685268639933345799560522283529345007849488522593166130223636285278552941179743263989733499041123587489829361075942794147556918379160436050505750903310589593150802542502771281237623587322965780730348274544034634335793098465736849681172759111487250746025557528310458300840577405124518985298058856890743476224569780071596490911842136243024807652925043333782697889770528344591261618236708489944545574970887461069037876339553995970701466003262271815751212647015628929151480045492074882635524993823050023098400698156488061446972894847170564348841157080601134616749580560642349723471580073523821828727434441236285274890110705093171910905880520088605574484276729558976004798809371659314122442572501440647140018088738662253719974450036170429377563730027121283472710965220354581781463056666656833380505964446208416217806268905281758857561565612776723788050583940533134001785916300976421151313405627641533891403488948265835500396816630824571512000951441927734628198789461251644204118415421747782379381738411961912876400247835410620664800561352232517355835662312355056657680210368654210763819782317066725113581235975821119045598415394264721719246724879897238490326458014151636901707879235395359841338521602208748150155014525729054950659520071051330707526801727273202846929363743772071909317594957061995783521431488942534183714215811939663493649902139315012881007652892048018701559183497180353434814212553957720535954862310357418844008925952875601447198571280217255448634130487931814067748927342142501902001815889607456431603642830177487491613952862570742974042208257993651808526906401569695315735899750683785387795175560237381623609088712244141380963489985265976076126627341646077624133286554352426779909191767658230359833644868838885942598229832128316829841140693391546787788042965625992623948639180125280349862280061736517584067487827469195170530538787514960126660222387640210140838177531852325268764932877730236597786925160473608960857357072474814681821856398510426559089680291808142540874485323299318208558083863492333680531055825063877063769419564493788507383286274389037814861311046772365270247277151771716776003814151876896983038395872281464673445080611370866980224504678133975619347924939464440940165717063223926353455386761875816081421280513177576930020778280022764630941940263391781264506710096435423661962198440023716383082624262784340612500097420377379537918679376663785820265168235688414238326460305846824721880197144571543540640687096582352280087074746193258672543676618363416661196368553788739597188936204146505136998293218503211383286520193417393315991226018219393043933283474097779999105227193803477717586696244630116452139504184712706088811043728804060561186214415960813805074386654922649398671100325125975958064432551204806955412897287192954187289241777102360825357650416783104959293198938253331795372421748454473152033941797576936264677326892013840571363325431991644219542169872341217827455112203519101870135676946428170712944527486720481384865603418352103186898429967318324556329884291632083307740739045512354488744406833652449202527867775383867566990129008199228219619543011675340033739744028678119045925648981512341905305288384311151460966467994479676495021724700468110437063044408240056292641949721964397872405570424958435637551000816646217065202628841544766698534861400536034665671063387108718276886683468422172806237878519979896324472660534758654306542647593009683858501939870315823565122302777403754059136256032062984314069371636576516702381998482526544592506725855810038656939514061860586446041104269086562512454000710786193026733127149108988011388523925184951101967111666765895592909097618908279682101727503127930163762684008904478367999867224163178259124186373382579365195088090248269597985711582923214293205023053213721266725621773374506216886349194635381829667901288878447450409316163699500431309635185605629137931632249302517819964183760900537139329537035576838782619110569730792437432794376333213131138613191433678035195049138353461359493397474903673439941993303947168180588446347833644535527959309635172462427015215369973831632198228535591275805004618184910101265852407351182415231970823318173138677118634951957507050996798228845402312300791735512584575601332316315633153125068107259313235777935564557876237689780890801317930994052996489244548748936818351662411496261851552544444754065142885916396427762772782837732339948025793520285615027174112194676838779491523784659404912263552877247474372635445840423993823316210687251437763926203927548638952756642324545148763266368231636692381477421234911197792661440568347653580685351076147554533571289360342128757612208315082772112786425643135988821512076543573509582721085668484147937603609286947056772151166032723830764514543522830366909612825395146846261690372338254060496643036207834962062597799796027082279601155678696838917079461556567430671608396405051997631833480804047619819197015086765952740435903129374041218913063509863400916959340534350713754790717306258700978934761150044652609890822391053011307257100674126901770831511627622263899579919704600613757549201216018396822922159128216751171069715935427609001287728130820198199522954394404674933742996845622295608153707716863676128736416111650861258067230276291802872753947636005623564039117414634262158723557093983659666641232857586384612273073229459722823984180560238903864978060651135103884746419322856850080446943948096542110578167554233074807850441786099657443992950624946331489561316291530134462490464537082846420654790755844272785233227560559088707113872933633323831344486953040627496974221486131069814347977528423566087547736782935181697907096192435972895137310785535309110770097659203887091430477325270759628851001617727060136939334662026222430845407215199489842017119543169168794012402420982326942820742779996598850955742299832469309304642069315580850814755771561480125137487468712882639293279523800621033946577675574893086519446052130835488525301969078112513510811305487654301329773102569007157862697049150888644322460537881188669264338230571103057845757867573380180781798242530937637219084914368309264454170199361200722410966512843464712368371162104273207398107909257556805173787411322833875467340136622241174538729793152867596840658760350099964156296582392411821839866423235122605968750712549399013398637571970780103258576853330833779324012009181499264636925568629095924265339055395571093532364652262796782445214449884280015924354442094664063354500125589984248670920808206253999003917528936434023304145298971741230639566515147196990403642084842919914916343174882506302204255173932710865731251331878937509015775652646915277489077737802394023490278969255706438944474323447596712955741278459379371932726740566763372878639884190206864764570767460837123258854412244722258989782765525950047108168166392792954800137976109481866488458117558357776413355304045301109154461149312058088327746130254268287345604898030355330835237200386665937242426837006692135212304762196833319358844150159676392684490388698413751163160216276594818276013759761540708745138712967310800144569502007456609480835249553108228425693848949967622909637074316391180109931879285293960089056446488926273355130610047623501307298065499907419387561312848850361615907566915492970620577646636971421938715804054098688128248753285683843249677725810344475714563581512114747497290872687788601139802747037151223978501917673140018610183611471579376264739553020279198337784252554165422679941693154165310257208610111200165653453920649587362004571921682815278746875601257321372868074686720274043027385757443605766723773914664795138305464940038960849098123678272916983557032025095607148040609936080462802740781465594016235449090081454119659149472265376603068760472693722425956861382397852071268487034261760226410051129864047156649186021591266379153046122768000901669565637465523645031275532199281951688914511204966704226552197705433325303972069489563645675708503283729499088289934959966551441614506265336107132925247897629536208619058381134921002155953693712219989798690368240655778613032113544582853648753039394451268412847396744491218603704914316494522847780890411002752277053959464154198741835345080396758070043832584237572236300493883761333005394887064449784506379275745921430344266093486248617725001340881957313295466608649627066566567626513028587597592186227550741788117681809335022365407311726979280540114290770319916568890993635267862406937810166103340650801033400263243299496182808821376186705115168916519343489793572447582346770906419306454957511509454674232563699002368535806518976768018673621369946845878798838274291813543794506570494636139866735583520451648234929062390816935037975221840534073085454889141147700480903295745337223385897691024101578291071423431900076857515665720371833126917842388915896062455414638512133948748180761536257097856547920043171659863838049328914992172729245158477978498956011763703785680548083795019878201045472579615469836727920195191188359355119380082834817745188393384779536302704555693221831949811994946510134689477287117928506989555366159723008113377110596455756076352150187353799807268894139514485029123652824775362123606410258965769635759914134133257830166697215344876269383307536862976626208465227624719340826160053620824017818469722413522127142868504841763796750392040755359943140065881667956947322661488171771375227218620276039045335473757292095735009782555313232545937271425138164109890861827616980105743956710752798256912643206893339686032255444401223417174019010685250196036392357217232085398159857357120014392024852797007522910038467154258853773508021206142866068566126921513751773085639443860667297841322023118084032538815248388280209430609005344937032108384106191580775429743925907197503482488010650506877926539341136725711237234258133432754938914390146229221158762767509194505807097993968515245594064509622253480363517685742400905600787081430062865053200252742891772179470035516628160357145956666718734038470434820905900869813117738343566158227489809814894415783954159619081942405439098491305744200057622969886614037882432229810479586523167380121823908096712334673314354803373996243617627077725786560614051474381304400408701529429499867333443314270164213414171607656519433210765810116063109931221009089624597126803956770221664445811524122288036060237479032552131540890124531002557704184266673045906851704020990148239843737311965565186840061714875004511225430864083321498613095705101150609157932923729757601476585862214898224269478856156908749803315375140418975849570638179960695660543850273595237111179257123657211117388164126105045315521057062420579050521564919353417793338957901700434279825976903083011980997260866944726333782164633900363253708429660908407597812068272647220521807283006319499343320317703440195759933538825161200949411558103379652854345789801290060756516712127909580638487037351083780715629097815615580801036798231180117103812819417843219232205423626678517586646800454245414509235719132749530343271927006741082294567469540831784429666031304283490725876832163259845713725123488057728369179461133541507722151467912687309080309125323401075797251772337659236897949340882832126416215718817075702336791510137403459081982455937527998754394081088273209862701252795229386238237514562820536532615615310948408239989469577669100740804785371335119370640333022898852334618632152647130087015792758210824916594786238836076759896720121734691835475896876113073702841000314067674346718568211151110825815438232075114269792619232572510912193049082400951363691651272197759371145137759483714643218306995098729541248594997370767541451965955985682751724112153941314704697774008424519154894113699048850856390946146463629820666184034042209650956127862080240718175881056866487216479867907825442066687772937634702460025604602432382300383875738262578934824943342857181470055379725446813642056506446166053420148903136929600394101190631107681474749906997090085134275204176586287841067610632400959772423513364405100403530936341012382236607201642455525210414503329878465485970592357329713317017323070097938341355991842185918469050918490843746601254356291078403692626754288504682640931930640499128755885010949122003973983308855992028003546796500807708991845190120132021595808830450539502075773427434431980134559697384672609183962155015463317215782022825974224156098464642744000472939501689587461164995692545785014078201208523901784630750774200066226974493141363883981385710774421640742240822856633669682513848714166566540587576424131388905593187416752913116749875409706302167089106346421841733960650552441890200687919378757402740875527683190964701208580756513660737360800031817743006148108707389079107270249570181827529941768355766590439048049885221565748373743347044185941017695676693561138095869576439633320306891272825476109087431013308598957908915206647044576514657814289821894386586836227066520925508244356089683002832133259062188092948373742006944459691486849390967281579528116621821353195688232879254147777199489244959245711861213409303969782959624885195078884047569619893062365106458617508048011623917501170074151822674125972838113709035955003951077385932513395469521088911942322356489515660636880625242217656727284031065126370154340930814716857009500388929634022974990899369932684720055362905084582116470766782461705692812116104980162845171359093732640494124569142137520314865223761841377769795255555595220774367269788655633577228684960361030292737059583369933141923558815267187135833249337336458315507081879008872030886642879285481128632741311990460623870597842385451735940032810458844944392829260603996589026586903334737523650553274666534848796768515090394831273203500974555999440760598087021190860199967393545480416593321180217274505742666712799698291939989022116007645367248289413188992443978650161791797119396432721083307142181151440884991890874122262844049349276043448650017072545154941360017814629563069287949493711717710446565655810276178654941231195509799759689145221886296264119163783439028276902413693097023846731951871211323150105148463939542266276153032919059617390932439747411796459186699037097416836872332529639311035504741788525780173164721189849231438770818282698299148419938486329685087556664509206077618196999361212231532645778428476305240568665813096134146904453475468558570324337478100414371622031539530201771263515344133729183800782756538786096824599986658088645472737766370775922418001795452513612167270870000056737982173228390276094317941749135769760679577206077409973922940436122110321871951168204673868220495174151319940195382046835656119714514212646132562438819491544733932102189471185673229802408547945301235189505105864154379318111251131410820800377253712192032715781441572598046490305374650571669644333374226233938504037187071204486287384034185134252731115567010023241197767919160604760243836844238623342925141154746026787261069129163575059849886951984863096225802711480119088325009486939911148058039136565230670669638013179797575327446325653679186257304598184267007288672778766391281264486643562131090764906721859802869241109452910076098695573819076711657844520735577611301952401886176603177248904655668084793166534543256031606932708297916489412430336037888347771741454524325110549100282407521406987643229849485402444498294929994497389938805123956953208337761475964164357740380679388510510128502036948540322761693451835816854775958862557113852239779063030103752702602484532700645379671819297034231205680685528867255213400770168833954372104901627596668438493462494730640699609440661476012665043587450138374186107641661231088869042721551508041575615904991794270330928351815106972551128551004151336383835495282718025863923554805596245377881567427597406266872654478425828433992419161967654271341918341281214433041122271014633284074700692742705257816364946115000317317573742543789949145708918565331001958807596105138227501799132858975231711087602288454796411498470720365632154409986769478851152598405614005562848604561017326627972910254417569258026434039561028645705710648141749408620712134024972242513439502030368185002557582411107316926129039067432798233062310423790196279238090329450122471170805537136791402416031580028154212250254064389989570849302523420698907831896782992134722357607164131214043020421117164721255701025362482769487576570846011672319249755449638137827278152655974010622438741430676545652826268277998501597585800230150893989800739450468473531959089882776007319048018637304780492214526196456392814470092425845432206295594924837832082851819218457539529215753574858860548475137513987869129103847450464923116633870525627676430716512783765859110286832901588004498692958477164544503296986446877683016907668712137541144976848784218962000429966865239196456535654452229034588169082515814228722061980900556528502226117971960248235415066140164025897193991332508002144392512373657366996234725098501401162065329350558823470815509825168143299816065445989306139036771673321294584275960866365487061417849496431544988630416292885815024403821723660825765252089812452649505878166974098241338488498778369680572131697505665243265674589388837957027343382438743155741711710854297091996345766920363737713073403953025877337882332850707966380575245950829842305129043254537597136246990282404149648541466625662231700596857166134809647328414761443804742533424998403911921052287296390343258124936270089758521989278671356881625811682372348789978704741314122690081054228008866337573494350775138420633752434012536142137177653867458331229185224091257919003570292015154040930851260032410439515358391953640763522854991184227231782116245303151705856794168292912186502552381808946746441729435787466348842555774783418689002353179992237882938668412276548125977314165814240158954434048424459066033608325895758884854098025997025257050338138937835368946044945784196332645494619886319176896296182604115760005196868046615621773197807249188587514611609636895722128896727058904415198304730454236679848913764883024411875794755036930442974610643118638236698218737666765969089388489749443444676382256925397931573876667655002455210345855997697989794200904208771267007395991385152132335290964196421535164589777783385840987099787745744954831322930027599529886767165653779208783840838716068379641894884860597750172571804859429463860314571111128104423159601793291984054211516149447130169224606597524583136683807699096581279714458743736067288470889454368004622519743746648022852927194956695931316570759820851488012709971128180944882252398770772167005170996285160565886317101862309900222224426611099344900953984224645116194431973266280864583997736799109833513136319119017385926259519164605177256075551922263331169136285622372029708219772137520762738176558193764119433953152587045089867322925304441272045332668954290564569826161571625408314604341886748547556872429088041073312115369223483473941005980833341022848868830392369463147323719198391840927054358238057818999603279267795653750613906448042166158002873074722384521107724712408916660778142217029369670486694084890075473967725048233830924098266803377298956926402742655484585327602736741101965213253088807660985657021111263598177436816868010150758780698045574895261430452362978805815523749520124889499415434027985666529730100273100654367374289880304222246906569507803191163854675385508971244381379256036150778023783815139955315773772816058430225518244508978356402228464216853830137154108170767107821822492311450022669370842007773582925370952611446541559412999602757636358939198635350962250730153198280257235920140128317286631192242272853292030941478347315187613287852078790849327130038387858385417860176106386573255081038331803388925432260333219150290247399777722072527144082846336239019058994185038845353272727832198637126049783442885977151291880399269697368199335737215076702669641824350317129339494933738763458511305468762000276968956611512817027698792561032269762614644583706305602997597389593390522513916683610491315477958374796548200944461987493780960166655078353469937858733112759083965924844263906958171141361027574741231770325635729443055918969832099447073173028624787407958709927900556773151134829834317405354355723429069771154512051112971375478242768919600085564204156075727561271359495258821301334316156295570371466691857117304903543780295752232355890486866348521848956446227872743438965653976168523220620913302053592751900571998955621070158313360214931452335375276253012141896465522066353531248072599853359800369312200964854913641714681221620586249952545634021533829168945294008143753349090169717797354535443503467341946393992359500409849046353751594098912950872243301546177754145648092013414665805748821861709977819970087423997050699424929034821846396747223791323053878032228778502882323256064597788342928204221234173901783924780663569507646203021776851445151030391210897789395773865181618395130350128310796459784311261700491702289477389450454838720008500297964695492790017502616237804759076807889462010214337446808581055875859375055302888197930163879313351190704892565838033074198761557504000310624371063165779333867337471955744381415750894917930376533265220274898082277879407273030698098934402356009471017601255128835293739660437649303900438445174815376369227313232980904729315013517978740778800061290267281698273996195185410785623184326219246697403544591946426457178916825323011532853037643603639156546783369316482096763764115102317726966524075791471312420847627749770107707653978524792433652737129849938508658001386571948662878077760275162771476435546465966053823800706824454948988530443832253592372803695906395641682492001448571039787835055910899010274238095402868184062817052630631294070906620925210521439757631053060911073665664694165577435973324463123575257188482671766500970421919385301400667550103611496942000169118941496249727389523597639693254033777207455724177027929906945702909446292400332759217858722131755361265479480759533345448955167532773975214109697832264593425025527398166377308922985356439070847630755786954340861293479193936594819696102239895334743454711583105884149501598548515143160011968364370507558260512345165375595157890784373937503837875712207972878231148469885402735979119745665869543008468625649987857315510691521783216764992791349692701485931173619595187089581239998845545808282769328589174453069722358209855014531177893833858964193549023699202464110940869120661577199240484174663379556893818201657936208243820915874186791387603623842302435772562445585319283788008721412525892607525470950608027958604042245590897616900636371526890926417678601698541453117864624308066580897898505454789500725575667947985109126100398338723809725092699425970540650207312522477883422142499140552863168215123222882030973147284930603463531984500130410596514728935716572597754549661510061989392314676829428394956085443490111757353669101914064958888928041133420656507406145914321854505301718934443301706693266875307730558429369705876323811347632482751754454516008490665739770489874290292048122888660789934399891766984442709478329849453375695632316008128854228238531903687106230575044551579706633376344766412367252659453440232964573090572178323701924244267941517367923146592903507996973525079863647775891091256298882950649799593839510761685411202866722717944384740010619962746222109359025931858514307177638819179690603920204001559214089456746054243727484012301428852129171874487103103022873525905406551340318469478955487427698072349625980457516216939880755819120577816393609666341238694699479362869746628283560154067949358433446785876434743842374951580006945789197603571268091678622292261686356967749864951924888719670871559272103326897614663073081841085172168317312787441504800718085485152777043704178711224510241989874632072602517605736810908488558864433613801104941023743145589078159085245494513085237473511352030341190822120640881776176315225776259922952946662121486930924050513990159933776368151252804548093974704593565129541793615620781102740512395995507022156153690726268279252934542518955093874062224018702353151024630182049133492925752870676115443410484953920316436920659749813538186729140529887098433454493072173866031398232113212896488858767033299224381611653316538195318767114499848255166641087593323024558202727201955289526225335448636148610113509322673108213238692442627500489777554093547174614260504012698373292717272767740797086139252906491218423151612361925034107841916440697317177860397130007606064891821838582878831109021166689668571280562240648165981513434508565043152687982248353282628013641347296091612340854915322747999831194365408488383632961260708793894134380879193872826355933341763354933931519471850033248890367878184075826407128814539667659396425486783799438924770789390175105453349669953116433995794732726419478228702917344323554497095230466324323349245577299367967055267669761757290662717244255728652204798516202754461068001181486995096344330472070131733460118279023548692416920497509358655576716636955061764086904056800354246115667095707244263342467015785687920272999563865510943608378312026147517091923743800013029299577947468229668742867106741299929751158491221301837474815907328205759861252513282283211904197864373067433038393495802308557658308740671906988751829409454845678565955487759844810450748144464070832390749866568945006618213061760274318848279200577766228495698206937758338245269895965527847728454816993136122820942679323381967299466050668634113857239692054527587501801208328904746641937886332046251237637342106061603975443351924322325463806922374777382060979996710464482582542763745073159063245914756481179421066539650573526549769436735058271662754445230429236592452722681352754827818750708924462374126940707676443152437022432383244018228662520338452495830842124767789741446120004757742611527543785902609692988392551340866478687380586215891749266791700680721384306298836053058725339112358281100581586528021695069902517686615947854145259064816751087515936413510338939344076318085779468618326564469965865504877897224839405168798375076803008549732415740744650498414960851549670472626046754130993880884648046966109115487561238758127056174070640015075185645758823352081799879616127667278288894122247225187334896717450337597023355902317620289495376703809025006470100608681368811039808021721062162227333415798058242510766376702113070297606092672001752538735875909252836214722927451852313529628787553611324780274587297616462584995390222472191660039189783139712354088808788196666943410778151150931998320850782650735351741715366301893420962052505966027115787551481619699584029386293693653513259825718087234744468651743765288131013806469488078957595641922101336286264063261590924684765308313835983132125992373015375893294931070464993382577192183615625638211773572982403666321654633464324621749112505059327298316005157496410906715127363059511291366567457720623100838942217967267974106555775677390834516489597574336768954950635921148393183214802901896363994490155195916085907058690814333886042724353401200552521609307869184465200011527183178945266864119705422979299929736647516069425323984480989915865789749112277608190477772832987588145859151811521634764352640286970575515133274704589745643056476505025910108147592798968776795539404346877232793404919176285860523083301704557724092950687361715931087781377371344993062712692483109439741304522942103076524882847021167487915520431298520365341923542267972475310262918816045626270200401508364831562255238429540928484639819862431774127352405395949557573330920585119875382565651108110593403077240351750015787842414182383166672440617707960595960960262363030422873963970380290284998577807041423522169276149222777236048856824715171492877961969564718389499512051806303067338611087262125535380448077126085540394487491337025318244815797193448580071586320560465056871229066901436436748061088113753340937368931922130457510756291394118494095739365669104584774027868021667656827600293894073070961014025416560193390654033659212414506223133315637200895168197952909647838981600566360854872089842516885156349955317402785717654485192370986497982441128480137906697697548112310259700996439799090372747952119724304887299928104811694920009726839382068890671462333440985886789688541999711659010071469651430384498685436756063496728084338730469697889482805046609314540532624614146001169256480037729036737839902914305577833692104479872182285673721897290601114044071865394642477328208442965442098624565251075019478646769990177286390713884296727916265991137666257104042139219742306167590568787047765928327506114329511849969657103980204954577445983003600050734151474700865248943888435081609217369193048167041415984914453546575851359794923866934575489943253909096139904889310172437695244352587232822460801499091470928260131170940338357488550913234930956322539949700677200007763570443451313722971822260918366818213746904629837491482928635459858610380849796130660659928345996952348561058807191978118608759516488825846038800746787564575208673292850811166863946943514515711316428517057616840236289654291201918719663023296303688646480324408417236478403272219174495549693040652660792041031328077773431718596707042786405743480897658777240323625504269967909197574335522735817676727873681509279010582809335060919449874737799218701314477648498783593569373513469131754806921040952597642698997951400533551486213727997558437071971605251507592580023880098552487085232396082631033400019301054856794278032149604081687349887926216357672726348381890986146003384086858088922925120048720070856231757284037816782422351843108793063490897344851274369583778684399137209983774879004164523143852823348442485425930352238768601954837022089140906297197227784984584930638733066436116975214373042228248032374144185740773564226996924428136968769451913858896901573461687861265218525321966232829850702662391965355764809715750329656876465862778530677889363740659595909829016045609537133809415854897320529715882915699948902008672965995375875463633393498831988888912185789883115426849585528646372445576563218876782414853927318912991947257624878488446612704920453161905880345370336711315140815117907497044373359000395478246376415085540678969527404533902927364147417523025042007452744307981878843904752099602981317890063380727079706024836956772104080398961841811179987677842049044590258754153298141383277476895491516156761551198682462675716319480339534387796726874279801030063029404396369263078084920832461270279615282415483269239844591975514704413949221199863839055013145886844544277333275071079251072437992558434952827021492084299237061731580589090722356600553039997902188461181719616685948377316157810479738180676664300077633201386724827221047441695437987530710643553884201142257922316970509570060870503204665555650909391472112629083814803507676420115510004995091624553723316504873912084239404181217629233670799050942241562059318094195401499502852985233595066385291340650467445826755210064113591003195070855990989160581052620816656153863531950721025623186466206197595605282730312743025175220441384658365912989519561794117995601241313114092984781356606042667210108188016681882753837534333972462817409700805404314601955354102793003761660185380906076141038812319926036944257731280996281954572761603363195865106283188290322142081853057415744449197391771856749959407140152103029740624167122823115495625132238679304559252246414523429635756380303072969450267638253708844557694082356960828082057397937925238262123181842359360438291945954630195261070711701204781335626316262436576746679069724937376459724217928096322328684131865822342761600998217208107354712955112189881740019664501259644000895969565304357449004264220438792714178290795184206862865974461350041846386238614816061728229742293160854127877390625083250952823674617338613507239540120616972147347332700814639582839060276982584130897210453602751161385892328281144360808329546456545411689206891614873398429935645474603078643840123276784770078860239016285390222279040104621698987388174751767360853220963801974630632242139148638118512741969270079511021856443841575877682830052647736153424159571947215796623011440132750039276182416351932965771581713012409754263264061236799295315723397674596474647089670304211003637026229513498625872896611653543212132892297449895733493275001743100830488753077343600662441757949338245054701522781794799393243787865982017129653456238404636356088688137013893287901305221350562258620897842605718133638491685385931687402741798541821490048132293504837904411644784833573963353499077965839134095338835522074240045884374595509579214328784315523756126020662572112776189595139002324736557060513278781031518775238827318740730493381851607937834520314313127542917700938066976749431883798798456686656569957383963560891688707872307236986123612072934904956047899926966104280653618031014186860280118307854440831536478113653173210207857873733849327109723008007994106359833885362051946210504276746568150199280011325080872972237552448127979158947019844691493341732878709411014469804338399212196640379457748481282546518249901574414838240111567576955438023029811280675734505493890074757840500275016033935600601569997157472010566359888879053352349274426951521289736811646229689429799654639067331081374387603067571084861887451718179524264390594667133745889020769570221313222167742634606243407665673078222572511656793050744832111012662223115322342362233039932046218302302902455546717094506085159424574936951827061705279294772008260587723235233776144254993937869441134633231618942284073243803719545261031013697400613197408819682257897622009881731802551829549250085654773257537610296560464128551131437598874821086515438313090829805672495155173965720400436541360406633399666573014850771309184257735448644039882826147346424290276959091996479625889859480566405740195281464822311944739100009211073020717927490134409825656421564127646370496325059265836977553138632333935675775102761951117215838526385529568515956461666793266850247819272625497315627240484880092294234723895059902342309731647998106809819411185502692284903116444526733774392287101085503544473297822171833583415543269118993760278695208886423998522051533705887725578181046140635209100722944749986337156297808913176913403390840552855664065093526522349124442623328486293843446996462529147319518782159880787998609160593394750779026199323641208489101799127518519857826685237598371543061903064109620739372152655899627107176188877972217602353553923790140652296463940501625789191911840590437038421282640758460087071897863720414355319908840896492423032525359595635690578354530402445335650388532341351705974451430434583321272687007771288641781003904465781269206932653353539805629732978456549642913792309432568298317678703139101976011898914067574336171314206180022567577728670295173201270213644750980435527195658615391264915070870550786183681052849322625756753634853639917863574180914255180893334349031542731022776412366782907749672621747458475725007343784810080251239194897928123114344068642844294228262744220286818074673247471811711594118689386619299100707412370088273489383157965574282356847423285410746288106441988852140003512841105733070366440607364527047943394698123069964801734913519221917686480534346999404612644977085478240543858664328606779886893301113361677423103623484949125716344836504132910287355514430093604211037669100924387311844725130792073978613962722629423102128818088105769154704513666248923575524549520462453189783318066374101852273215360800918372455559878725781997701191446427365620891795982656380952722417895822955021342323172707480406528203597770627315123719463281431217489400171950242223432454059109557628259293098734698639133437816723502252788793187986090529669017152311248307567863058001421849730742033824017118846240024884138350556610695741931680235561076232824711791090645734212127016396481298234977176674019346079006103636977114080367263442603034683634865722210107002988600162708525078813002432233627578906609746468737726380030043458225498478370444017466381902992007424019221993607038742746411206691050803543598139181281348184904555116404530150471880023207827076726428206018231694993346523264904225153041660172664073222538125269621751528939375955547716594766228238470054749226521048431536122317814366421296023949354970706265913148000483495758104871750718585370630960465578261878273861031425432855894432713925609301790314005327129336868575354123789150727845013072106279681152411889029420754419093766566296234101453968942751211961947818312651180199744220026285718624662715602051668098619484460319533712893546785331975317742479169188752935214896745865541882297908999748362720703890879904896892216514572651491622981243889064908278573329150958504799352897414495226902706922967968614471547853758744287562690280316016067874765480046119423732245106482238510630458138316667558981104135196487646720843199444889374817579075819561556447074737919343248382814207175845997922035608220930704715650706486111400961708332028334368116410795228195996063941339904149038467784887599412988888456164648557593247022308248966373383700088618904228931474959897013176457350870532306672345516268021978820470985315802984699624846321355290583499624603991146640078649134777707065130186865998214724559596326919977927757719461771399370821620966857697769757929478500297566802458479915251726332402457659284365519264603224365294018538210864451371262900447724863597235174136211953116003131858128119082419419265705112499587961689659930355405445744573391250936120539091340852514742191878162910233871570217312454612406271667744353855572122297078861481799685992414728274441185835506891194585767396546671963352696114552349856809294069981345140193070865875006284468697532694985195914412260494425716949225365068756462603629734761692191629860238193223227107506104342956522708033482119701642201027680018976553305117717829035154340384889778305158773880035111175778129735925271971352997115465140521448905100011538980253720053646229516935927228433162898351912418847645643992565098628624198671486000110634377115990733006550926929880181383598810704170957586249601097661569638338351325833336523342113231093982199491476430929297990797147055748212738733928104445430833009946250890908907137037297540193667869383577775513230806589321043561762008107240443208874131949822985356913255603409595483719224147372074870557154327787574989848889735835908208650737167681079405069073275083133610188381456671186653939261001805764261426554095328476434255447963840741872676279087597084135335645486728477859103700047796710123827845699199077489608877614256306472800249930063031613511080890076884338317927936721562126269770329399891285179235949997373674668007354270607295396771139821348718750502504250154431338234544651672114850385081481979831802069528204567521944686354342625028547396334919710910686886269761491231584092356385993559202507848384414680552336709504147527749667027162705562353943436503874888059647054512272262711930215192529321402258476716189851717177259701009033396924099227667431948460217726554794676866333378007503317143843934734669943254515934704274003892570862170273624900651738083708271024753775888392473188683566739806068221876642352225925493273642667963406817025287769964087243361128445874008961408535579561359944566572860967813958608250983893260732651272190413310294670535160527675042431220252154100884750278045804054047605839953807379374325424466160264588824660504358144488866676557230969695459769460425262400812356641415065042052166327918104550500427026986661005093338293969066703680410513590981807374841185626559255649670401065296958263981356240586471173391008250844887681308769673008208400340030838291244189566011236454528953531563072676346234764745494539557426403574058724531995621601576676289915019040031874445649558852572231857484142712683373996061153693936518331527532201180997853711143128426725137949883474865576073811106660507320594623726193253489586536150931822354834668567792605610142267125645617291474272867255460299663729765248235117633016944964114407783684279400882052709112839969962448097049555352159121918824011877042190448251420682092140562377456896893964116593485695081428192527410479021679494354438850399341446578525902144096129120551504877604802232615780963869313155789653016569404158715155654199713466538799421459803957123884300040082576857826050094177071073325020741877600532522390388919118413640877340267930734071036315096137749120847114113228133839354950021484556696110776356221604167252808280106137513158844949888723642310277417187599598225572139164674509612094332458190515124900343368742959197420930598563385524631233123938656400291846504555790957187787460296886397727010420450425969390240833691182351208307557048530224374161055158979407086135532241973928006892444248085990842321366601489414050323420485833153409976357924160473781352793698853786189477185881947409733322219962396326447034279942217060990063680700647556907129721798884767993377970280052999668055755591163928087701248213222036470546918885464800032021687719885185425002705432654637423606077432654483625768672518526315971836607762516106024072544954904623623720625462174579333815581798675720027035573057331572130720348519991465607015833993472392016390269312740153748000737151710157265622307095558866407299697803241786239494259354091756969944159141881294352550020475674057926864822519649060906397537038479495420998874568706750570618572470220730759929710642527290618053797507017024753770060031053737793853045639757716553478257736879747297122421268809873224613261614916994583011060515659115466943191363128102158120302802437599015464876125953226160999321034270118184697957384526944803606169731243610524244973672218983299875861722599725238678673711500095864774280898193274395934576678135700823662380107774181828052875671849127166288130658947863150378581089139403351452470257016137057506887726302849709622954730970224441955482434601163107291194193024062913360739525189724124949621454828241755093813091891079785445859282385566597214434093346775342814972629815241922394343680664292306839665157409101353747487282895526765212537868597174384601339433847598315543953176225918326495941287534255235156028137324919455117460437783229261972277017770517600904365418822404857872825469497738118226673712136829830180607223684784994595575618104212995779761276456912197442532259379229376838484677466160263672553264847026453954101729068876515277791892222919978524808830772686727036928472559920992769563084601179207637868082247310590391201176745345034393272524567942532611860261383869062090166459580883341100167814581977305132319111182310817947225420593511573030949165827956402862624922135710514456425157664214124559128424962956798299570516380229966140594315664139230821385685047568326566178440389205242255321591621574205286051215198075701421753967301536228202777454421387922647332499403067961533520970422798871083590456758640309557932507330830852862069292765600563602945279201573462658874565538401824129946526641385384727661660686117607727379212187907028207465777190637485576517267653439160738745432597446622551868240643157572532266717469594931853807457782336747344196873977332530285087684260149631021994404031360398303644184852994320025502623143213845766645548455239165514777964176339868905391274650917281470859905245419930834277418531690289239312796162780269507234125230139362905426050182084201638526535687648053912990490589483368022465703832425035079027571474391497408512575790902849260090913520530609486533325974376418519394214621199341415643834552696299748914988068174051873642008899432258244093800895190145940109608709684258772672185375827235968486769787200842720096664283810546697814475434598202253452253652455758943073800149447728510072347574076120348078177504457897628891607145166262848326100851437316436129960260782949306801548288273848751329760779797305073279207207260606592287748712059779448125954698859729543736241911313507648429155452054174776240365061837960590798794849592103688464690573362924801557684834347069495735246364993147362590359352448061647591682928962353329764739812063945490733002878238747704436675150964898227750025745680682831893473944615201380793081872809393684022248824028256225188081074906768119842642843191528119768857102832716677581399001116101888807883636180504093580237947623871438624191172867899247513359737546862654990014739811713435119411945339018776850219568773983788833840400821569265682731713143747458152399234143482799199453402401272715746767367565973183307967452885678030795357284626171681452878680050620030447833524296127964889611037908797293649546953569852558165288163915344112992502055538230644313439416798089738001300281032861652800776792993873589627692410105851248073785706143304882210586769072612626941870720904503096660987948554173336864682852035504692630551612974338290210659692696611451764325843963623935191146824993918995622793681096194259721954456013121504740308532789203763413189181696316788439787332574090850715808266780718056684211107354339797314656405057006496494198197041345813469127121537702003344851669793795318154751912485636571535504431132401365734946642612639492788297399027297396622196951374557188026789582844190441654529979685857468504566443009027860480181872737264641504110136223849953005417000629777995901035797592104294599407821834507980155065656475527582439363614892851685020271037274806909643299533344528855127075722335092636113878019968935163338922774527942614371512842307805116143325901808951801988237944646962911643056747671059251879679887959029009181058574509666375495829997208281346362473901775367799959097531345914901754260308503411617852989327141053998343778358874956261904373357748305145695456020026037800149124032819472696450576698851752910098882911705582740228611846520966490781492946381929141651572501481570669718199208704353720434532874752195420739969174956158213921797578507228720487237866921925441711195245563786845820771938228275227651390149541106284479807441154366639358774403797252575887305977955777929277208829693251185279211435555383873425481406570036652292487745326675910029097785478709974845384735735717342481563390484639186091610789523368831163148989058184800780191998078122762989894902341194789162976791102594570706625334625397228081634201715419843206935309363292316523740219292379940796717811489150969882644046782947748027245464579831492011474018899626438901515641178020578979313462753519581935112235336757913131749806563259946525497041090057519797981940559994588915202460351851233686798209396581487131256642083619173280269046709043822516294554182501487117894669026191599554344328750160544987279921736628010487278212587888670973342320610040569216290594317144250132110683965760641561179363523000452882564843763339948051981858951338465054476104055390949594122569783347427375126996915116533044415910550402097487445474026202070354749987425966731178504105463751184148537075370530038421481365636125651977982149502218230944335821103642243713135308106333978865125719000576133393535647213442439311487315329358513697288123904327302203812072991021300887667179998557407500407826499279410551116856057743089600797233805225465705326843207643199596025712930276622086087255559898048117186644353684609623269805005880236255693642849361655594841480970900947967162913044305838631213768145147372987529390437652853442055300221888239059196326927816656452858073608758171030193624947981880658328824844592331503937086195786540299081745098039470173106105834384520729102520168357275968787095256273008888714556607920561937361453869697321017779714269510273718415973150022669818500246445231309722084140853056004148496437174041509765017881415182752773987751618992308719418276865710962473805480704024099397792802588032420283303209759101238222202260029438224649282860191490182338374539744100119070344821078603042187532633378984451343774851563882036275702821364967505366867109905257222730771003343139209684299896121066218459460306110149203900523042115813571324012944738173211933832321661244478067551187498305363976380795740629102888021454513448182643989253893432508131069808777816435772538746444218183246225018465153793272773555337724043574002090183418666147677672243461640495012876563330591953944458244446695174018196742881694094002338441824600589381777106790025274409062042758755842724884721217287952664517175137625613167913663225589959919317592450742431546385634082332015184823978095510357642020381549630356972246150911974476274774703887635465882804255846552204882045740808606144880750237572548010404108723325686981547949304376819467314535816425001456892750118989857524032204727837077979502977331648912633868866716960665176857327991531477151665238756872216017741308547993387438830433183035868276165250615545276967366004855732911630839923363133662409731734398819035338230824957429770504373849417388604337502014152085411607571872858105345023817156235272488427565080419412404354747138897464382195830380500586246163382276101209744256998642104250658285945188706133747243781627357338620715812271335816359862073396067152283171928956085406261004699495442648276187786334347168575527169003827873256682719691057063905611126069047530731023328931666798774573721610167817690819768147932662610513426729641759115449514491717343920056251717184847567995852964202860310206396079240007068025057384955943494212760822242201409310579464266358062364274896779560005170841556931546916902532123049207645673739215817625607829573079679439722916075023737462292438067811427740648377527455480820017488221834574093236736617843853206437002672331432717666212925821826667632124030597138446180028135825267855663096401949899895609550705886322560476704524647258357587602555149424930127197727487710257828304312844042145639845455163760036870055984735006950666791432553561590309812003282728740226784175075674403799501963266273009220911840901608304568430298908653261637462928694891011412774714952656091687548666962213095384353480397152087357943234901001247481081929690019435953485767095799385446924331064157674262504901460344135747511215051199685550132380782119311326333858790136464895011267902739005291144955102491434957883342066649761446344283112307140451660684017645596540529500652362523573074381715874409693251568953817999666334983493554957947780475524970067804597118386246090706877373752990636409662853738083492593956285875731660901818246963558837589515240351201966584854767830990990877692815115695889710911837610791236358690455235823298853598829788898119306322264306543007218768491860253776483097057379432898918268563828679543225716411473901670384230179654279125315704939284152760191208129010658823698932012345139272512976499640023764232611999536001586436604591832349450417349024792546803603665009383951177181326407071844395648765582451271438270393456914858436374241728461534674148055651131808241759902566821908517773158687022204110507151308573302464844799394751606600343356586171657595294196344996486657271043176382404119708721074941475631879088716377623339980113046863160743531030208373777401220470094213097769963888591610548915484290796238819253857828656552793188554148879429510812284689881045697463785647620501484493153635466531360638683062045587296463143453168544384641977897305961348072918141903205362701638751462267292763236033880133418332524944326044556447018591051094891689256853368154630126502991216739136422163875238786889345561704514947868029707744837199351433687137770614918905875156201678179227250666371166381350113025092017755338516109206758274495634335049922771477968314718298400526898809534387650400551550872795998002722278011936373393430721277120375950906221190605919013564724021270513232100482772573789379641301790156765923669710804780184107459465407783507344442672443700982697561310187781724337575401316524237490555401228202130178238583613456807078727323844269016930643765235426648606918227299925451831224114850576794474867229538152658670730704163407650796206310388462769316268134602463292652224533550213595088055113072544141198890832992848404498300827007504211187928548048285728467715191485199279383373693122295066840982623133639122614372301777560500476660941111225860182473633949942556965413160981049790225518215305888662198499389448738090850436472377513681874190589820952485711816939795405367137121208996008831803394261652900332714615248568394213514243602434422664735139109102824111094589627806151878593764582643452610937206059435787187152568771369685778145666829391525766933094574760801566623933068978858008682717438397726100456932330318531697861021058081670800861535256807578491599097767490702276239521027196851512164365740416152704109732666502090151868086794006169059666829535312280781563477072912143945151656464269196664719256914123178121089123902756909596440184092766113532696322391093418422680975650501738713663701950695914284901544791831763518256999830060201741704495705947204805132456178724036443725689702265939396388117390527177188201124688845916713336377150967127785778639462496167709277653137065313010883575268639189509119789283621477286562122141965678107922294548204738033634812116306045474703427300819549699346095130270893096951452235772009752220156603050507951256835797617831848857460590578711833039326547222109105616700592651666745186222181518415279798801416512259450489760447965133284856606485834241209837351730659945460472464762790065615206759118762914510473063454812142778731809662660552620474869803674521949603476595189053428641157408953584208236250649382961045836400408469459110238165207789856681434486129694808540403146669670004953530021755335271758013750330631859735641193447253184259616032944350941338463312710257751404713865000748276423941559712381817196398945839270082514661421934934885176145387992999160021696450474163288094173035881339217429200265680742929464367964219078067845636870073057754506506073091154483587602425237925607631680332356334129043968823418429422320594302588769759816696492897891126049607081928867901048760519974594008790980054121466560150024514643545192970688059600710723105354833127904753934913847398215232250544401465034430413377977630239353496108547533397799139165525928348612592598626233398176668460312284416368841017269491389715135925039920948051547809959661793456508956531536598344213863767779597310895681695703256033119720648585332526719906098765579010039692984392284597776719517402250470035161315908844071716335275577219525550804243181119229449120555532405649187925010208015817648778186644470866047992766109263559645457133569054369731411225137855177678715889571641263957084027753510129759243308884549848352927195980830751600173134800671355527156631409874635655338651270492988164427314199284178193313760313625245125640265235557646335298082804165817414724437611258310853562608143365587766721208645190568934146544651830357167391527798216907321920002485127050999431595188821423924130842133535648237416190286144196547946046290633903088471343573296520546867733230847628899444665741630387060760484244995587186018839300463346350529212576778888679337024912253064502013491461027983858282917516794389660882056108213570475065585857679353483580173576934621288073129174017781452230601654677039279283684661042863421298262394734382199067874909938394283358396325913356466226104366733712859618913996902381827500481514030514238455559038824008011027851914120570459081528670165697146641975763635143377377580232932543107150902195652001804014262400247837001091470072682763809011112520618776766975958901276722627724847607491708162596450762371634764776705537212253368326219192797819425752075184567443069111166083919309867349872132620994693264913365508099544176421906703500467930673575593663038907972763187546273478613703852507477243969812393805281862229753629195948369757369481925345364200332374356561396784126399432832410861892781310606403015344978022366348084722058401350941882591811432865370633011236056026457629038546905262351490910521651550953606437684141210381220188291868333566297937639499093937430159996640087872910037353756343117253786276123043308579282183543919495984622869788226656316037921694148860824408439173165820855960433118754375475622188875077824159207620340414287581744076532155825906295777810310754682285623535562284222959665138811341822241057679835139653050324201035374207239279301536263354260186238701592498560969657345249961444755584027940810447247470655086804722185187061111915039095498655892809756181659624102017737918014222996503724705988039724028767291151478792979996862861183868131778972279406988899622435019890140982342739069728667653751818709867245278067591377835081167934656450919294304716543829418997032851494738994515043655060059402161417710394217489269577506982977443392309570083368753941394832413581686194100679152646695266555651918351778838371155568900455558241046623409700025046765907364473725837049233686058557004925544806675953735886757410635581551440655176800956313912118270108076268969078246085885037213797863260747292158934197321232386200326287427918051529154811084943021583984482212004983433315707384047409747853177110665353479746971364698448951755408372117940051659447040086760325866768371913744399049872039500317458500144623749168167916459241438224414295196644540889145601358531190577655392885762371712949954266192728397894138024758905977150289958994607949782465229666529881075392207528970137596964068781729324598917979596780031753117190114742985125374119289617316724340807282228575473980209862455370058007661713619011782671432691011573156781577423668902577933220719033899334426062901111588899425285185149333073508775389935824790670444868334781525550887877467987376808210978480759974361255282579240462516912333133022432207279190560621943393202997075769166689000818810074818864261531516296434785238849895374050531910232183789258930850931169124378884267393128355010718428120601091921241087356663309472424353343331009645217427113729820479487912271368691705444150979759657250577656834903041046758332776556679739157071790483856958897450329652776314789959112289220702991582121558912398970450299860237030372049162903442930783104588664046351380007564869591336994046190756372146106479575085355527392904696517998756296287067119010725558904053704053640979788809828567936377718098752839691230785884925433084212270695856028167186270154497210770382261820873362549927471280031929961714066283403913610153682649321285353027963255455787561381940652864233854993978425663272422554411482908031900805909842836436764814487009877398135724434244924323009669366627531932026429068036720448863431611505415670536768379701388676753953319453471170073113471180794105942197155645983231250788644509689676970019379468904470597218977225865875385782877912569399671829612606193866433481190628947510935575292856307285827769368596158487332855993352099285351513439424568430195389465468333751196875207545122976380215757341851651420922956594675162907024778451539794811666641764153693284771557421691118480924016373424689686431530156529240887567179191961743147785443019008348609538238025948462025639594648603551069483799635518620886340674409326205094413453119761624626141113516655648181250802733875498011180967004847147929231798231860411543231161950396274696795560278273672941983461251959059375052976673430230132447466542142408890927963613453080464523183186019393555605503379015472658382395453299418343626809041597670790253703074582996589185363494829712995469479824848583618544354363607098000773686078022708255906814488727382428546208942493169864044083769170028883344319465158051620179926758897278447592802173055380326389354146479241175626381003309796803409154446291797393001379624779532333034937304207199783021624506991050892692464753867535143616718013823776058272948578537412952450991129694937926605991474226058842852537775755462960121041219420448169565599182750853725808850226000374406039143098910925605347369624596895063245151004196933683278180033576968766317314004351113825882871023646402057122965706412787368410831265024343136796127434232695936849339176841490605810772926972361131580360783552265151236255526598406224168263802968949933622493282629498598393979022677657021350918317134455733938646919598898557732987279246403711549504997458942509169801324378167169431962513040305095273929339452725979912232480071655512638631657259761090487392427095644439429372317490916160354531481402942985573108800178264368166378586659693531989378398540320132250587516412293254971059110116125312632413051203972399030152256657842392549064771627262293626627486739379637420306075269777034685755649858746989739563541413465657579284066253430597650033893438318044853729952039965142097795893786920828989542102865979255980317767052666594542907532702991270763418921861880861119642972775470813176036218062058565934348190803123745712947355785085304743197816373809057660119238182581598163903527846456205647983573228385997108544286128179338112090780407569827147187486179927402635637032748706877927680733526486560380468319444275789511147134493029250755568988918444270363391571444131438316292937950903019689238424840456470065821951830511265931545835805062515810264041693028449478363798139085217557360088975763229778116477956743937911669824874426401578633553308588058892896219590084329384903705332604847306895836214482380798897834130503444829116788535909581413062710319398070957690456785561965481558434149137536039065284896744876594651443941545216683727322431595080240640608066063339374875750914980003196165541798137141911700350581405020265636052549321827225809797496959205402843362707917650447765948720633554240692943975645340167696016848798087512224467734807471838766979100882272016938486724132937879129728523373173041946729263695572553557300204840821445971099358327732072209133684715643601093400940124174956189438768424817501804499334673679439312567291408282754338240114171541292054559560667569351796480856351347346933552135606176369768475505585887200532020042175981460996663429895775558797353426379995003855666240327463253766720675560846420814469340345019426959571862665475254990148731208503150193357818610130774077267590573961887136547723560574412478130557942943880651000897765788246145136182087430454603016564582380634055238514345246309625524374338916567239697310479634537555730668218513585540129075451423769177035457438526674620319140019181637012632307080711057671898679348042037635947109803797804408998417853109820876667938991114444360984120563629131785244372962173176025287650798323579042527202645656487594637330780114718902581942991905408646615245195176059610088334401119959945826618873497532688342647680062665816084989689412433130664419628282514111972398295594422014817658880418783826364549788708911116501404127214173128072160608970809173292967401604545181870933317524454840328366449470113222174497108005818657368980881582120254044315441092981041165800228859618859333644223221254935236767363482250480373761518334433866190679272579008955401450308703932546166367314304835740472000121351513597322037861109169631633885168189197479763056949671406828534222835718736654562278892248921620647572779599440357559302247839196403412360803929772856640832691047900026160896314675798945020597275456119821763070391469985522049867373869911386261510269182199272543172579738471768890426845226953643575187527208127361656627913113893974136495568840954047160648558253713710514060479168159649442638178399440588093873927698600948347506722883412511505123345441912864108822903496489844964323739068241238266963821806625812203107576809014649574904835457806724778477967457128097880362696189615544912503435932379440043687495058950623816558153767899399014037078633596613852240207925058008141675545310549427024495438099224618473435856244132050711016202888832750735615025717241773614418578186320770666526652170108480595116787572550310866506982053443180138094397316222774374858190699634914191480169110855402889610261562770803068510978979687355245008558743354769597789237548936137261670078188501380943203399491994889218388536743538476835032473509499957622964140605020462875612029742631032799234892073499349292819462167587891126667878326339641181265091667801427540834271234385074658160133710586835766562378847423596097673131262288822568195920579031615347641415178014440913538142468090635801144229102306911161575149672669300508136946148711843861101451702444742534508075349917069558673142931580873183832656425731749313102823469280688352174257801876037651103900537016640998494429501727532014298057319959416960163799028954024185392480012730059310226802981646796530957011301027082040264116021369124001194416869796195346226586114792312337269393187075956379636472218095106128689421603778073440153959114187659324425955633451672917194272256228735902689988524537782190947205954511158117444401214380175535643592249616044874534715957361995607483411029985849872245325917913389392657845952422467076614655040493584236721180336177807096502722402226241243993303261225732930107966310080213403801417898756469793635857532696439970593983020462549394122789675608362515817885675904512681667679550652893567275525278624570665865037288016379358185652447578594474812909179426172006778302437789215358018910582821773996430577413624445235275513244118085537167058024477615836857799407040391412881328392018319712276080248232535130639639305564959902165715731166786446500478836692211665641230623191880414739667356078966311658976644463980664111614098314461360445265664078820856411614717229850450672563428646390923902288257535423112415801163136013835414351156854100444999690831949132955333269913404756479124239614114691134026693674573003990075812258829725130903914093035437981394547195923813327234849654402666839312280599100913698994639632059618360561175338459638411131882842032624385923588099288747989510425306815667617359104678298197301770546574855351528041186230405953509515342606628338544497786315248499352489442280075272703660769272627696751848599270928741533299144363044650496926564648154589199079459340646372726519825359092110973768885011072363768308693179382312750438358364325840808539725539802360640365410679286831124475291015593402843287077405020462724950683332302757840521032325010244340172491663257124949839249014804957171538818823149670398053796746027958866562098936557252690934814879285908895548812261630814610754713812325069782226359969688513701171921941565960340267938424252967164253996173965632531474650641978641381080340596490309991608127589699514147948367089950932482802883886062523213807710777282533677393527820372919273085021329751563418115642101161163091532177729872033557116611943208562795021097060912843210826038204490159407462655184312953889412458993259620752381048255889576307061154735406111934838115356773406949628984928828457030278235956245969399254748268428230855036080160332599255483359751291236570902378255579966577086281542843889688103997699810733539455910389768146664981400930588524182240781356123431983927449443589682948637632064028642195559729361472660521979219118106249776263303259240529113128148773561322098608436608235236428047124109624202196779116547917123684089525435057722864168437825934148421085407285292229978696874141232961423405655151457838952390764957738957582807095822860790574218907342707032817181667586611618091620010900425417102393596009607891017050262304948157634365835039512488571315793463148209913656719938250997787763640670981687523042235379288742563588441984550704780797192577352874410394929432472183386250801870218318187317033345023610723383674899879647780317627693327850149775077059230874113115764474601684715298434157659057005069621494149335316465688980066983212383992684545465781469550517173661100397700695818310182151587443384268578603410828826478655161507844872327115166616233259605148111147786162579137306191388632340282256516041505986754030298946745237853722585577824851365353177218087611445901953692226321024120522175110409778584119290810988669857347561371210659712721186170020510896347496256069394221911144743661436995050299057449249331987302937466709140467080246085598102016427383415265384426981904578717893748222540259926850195056959867844467372183533195969707934597885387819252552555510255480718250477185222722206908350664152656143267573038055796855866549934673872407282694156409656263242500347840380533267321413710435103206286704951964039804490237776719518890106761534385677185303380720740322787537399793095633156947491918691535702983853408542248207894868067088277119109774877000192170763308753070062930924235599646708549975721725351311558986686596017516322566629160919145690997103426974645033857922914978303244712472754632787170012086509262539510738196377071559767492614199245593280417615012258712281734119334192839775931090012842783727482472228808076351857401595430980520877417022238920029665646115738295914996240679354115975943065550714112011714344958083324826423667676665017913794708585362531057158138383982569552468122107168452557615916384213425264303089902323440244943580449740999212688897856769350072684990690357131201879876353511100698228973428076450337687815262617437367304377601668807198456498808342060946539490048520156053935170086509117309755253897100260062008776681037943448310319521263353149542614813000636273127537989419772085843730375256516225926393450207364057112457805436930377871204182176293510945885629277372483177645640975706842561479778781383132035453521313523136876094746441044238270037188385734644390003488803915152531117161422117809527977499277607972546936624353095353849015387528985305852845484639542052270374932472036305222229658830028826975654726216441403315281657845017129281331437543803851305094601059924594065093790894097156633593479733253603040964547340388137829606832904764730125252574834752486178161063112469534879318638176054384681366777908442333782220670360398919748106623950652757373104446120250644117724799661831471810599800999376678252421121522861284881973530650981457454252280722239048169654990036636949838211224921243415897329543015146922195493960106403334771046139500514688659907989037338912332570095055852631318942825364425352044110126636557355705007145999432775758039941524533559582402300870342893606906461664859633085767550155128453307416593451715734139459318286261684508661991442263345919095011093173870656306172153636733822652118885893791995663858086856450951263876007639986971569992751670051660510745117290224298527488562251889087488471260274746414580385343343209151993254053585763098175720321373598206392334487237556745300086509826240137237739821094798474300557382007373602120359094699446309082187684833976731364633774967018805805755430291752096671420107092111016925408093854767984699514286678360477235640098880907171632569499552540150883073570714748661003250993822386502232417660760896870291650249537993152908215000520011552252291013349925810981350302902679000786661059350382885616231079617149571558762951303062983997358621495037649023637666416624150186679988800084053657543882593437818898139762729826294497149859977354685917755990328984571289556449597190513352405204810951508573285698093923290413264686969555261079813407516208349847397411494415671461271349791962607677994531285899506479220590419452638219186279033307887415728874732669946432686493679859498331160143470732370089131619552397654014104221848399311697550150773632136817667270282966199507620086348418040172248318483700517523625969045428480941185982889571110791786240463199680386160363225590623711288171730646522840551496759372959267700520559345496677154073472839078708249081838181615482676844501668317482641145348101763960529103465645734411335453509878727316110642691223295589567195169531637094510239738716563668132176789048553371532979536165137270379952479195680953738548532866368746239784883890219015318151682327668596743562617327797713818991151920091991779098741135742491489122183083628124012849448430294078785229143275282073054555964191309702483525251731111536021663287761531265134487377952250531116878297601267739487949276198868056888352258638420622690410589134960173382216740995326150911116925289021060955888402382501104482458540234970767626251772761652613556054922499509796046995078663021191633314340199108778242845925164152429585568894637964166963740887088353928596008207078302105876072464037061683748642887300614274080848819905540752746438549721769087866124101282768443105622831405747171279352839936432681513085379984813571674923364230214634108799632867233094351930642607203065227188632646555209585970444313559301805559399686706892915846134948985413379163812660886364760683524869139615711445974904563588294414592543025582174192490697546366097399000655904430743746394004350471504344574474253926873466362943422436120201806685697026208897889573242398434957872764141025449431434318682245952925432228207355150423380486262683391261790201532496131324554426138729784855244090056004305051258089127077784457860734785081026791051776408401586957281149740523972365677229624603969275263994513343071775794090689562195320915924136377631326328914809824296375337283221896635712549327347637973399948724081418471292128269345302461566436613258387553559178898565839865529024132690203113470518671138970210282288122735865131266754954543340907669610852288556488459744247585813322707960543725998508710321217373781854589693009084374689124802333512872707826624578663019751189481808125979246204500958584938562490088174920144910054599294772348570639614760739175297762071538450456956694859808887752035988855539530462949219649621802745254197989236696553350433521808813956525009788993794508610694130060381243023535746568739486239982024833743350648632867928110671361934923158193228937502666775975066946526201565219819731456079135794739807312400441623441625946785891005972677729921247978475201709918116503677099971144643088731901252027526081701992023138511361200888664446569587353643479347732176198836111385457400440737120844132011374758962740375190120552003819911840874899047011146800404994925772848746290136821139896506493769710598396563085095475530649247928478896907093503310189189630981749152147604547949681142207214551056149430834024357156657857450858507802485276244949268742875016531482554115835765013595045398053929602675078725354511001625440557229388482345354868892630653509693492039517062467760916334631698563956075408930592050327314687590444178685828236585711546635923036016679792942467669533527979385020909167906933429492980085430932257536046009637489083377150665419147906483051469295176028693415170599629331948757929813265106906512048813375770544394374395597319885378807640245694651940827655186535475897250077994700214122291254282768239055648705286943013780665529299361100624304445137519039263897199006104169932883313841082213328779417041524027197328982348635077697074087265785311133626441062688633357945366516622871915375763447899388831959120284311948689584203430960232087057761331682127997618141975657088345108419529155522742082798797855186179141709442363019984041259538560137131854066036306623362035970881877944205525654717616319545667044764098627839250129739668845491746435241898067032577583466923748001849369342016982339522661717065333288811376958004636658021467276313533515941296959572402046205782337143319005143164531304556226738168478687774449421918527579456081667011217866210577727336760112969175399991082890875333971541830161839395512087091148446215868395928756456240700877361233589929776998699303017947360228881829453446277635400523633342969536604552078380796465440173183990385138309550439759151964623729098861306902701749682410894585600131441474189705953227254797816489258924175129975133820008344945884449066245653878198196757359298585865316174116924406413861075879583657774324174135439943499785487706190082472569058225354026767308169466041669700476477245612445965804180828345503289515661491084665601835335166312909814904108321415557256370298156683144747671392347829540020321057223073731176626339336251250285372234365296701211416354669821355412893955512940461294671393431347674759498773179829806624857747100423181082030940185918428216820278621177624447428626519774840361548304819404361023869506932637042480777267516508736895739550095412287508327145980543396034633917333404165993843632146380942407624098649575556704300568889887068642977138264130695870494986531110275261853211685720666571466131692824752575784844947844919910523251928750594685905648633740915280253948753876837910861468008814088086162961836354577666645294956237190501140626565063180592759560062076811625020443967795365559262469169929879796747764084991443384649956230850770757588156364947915267517455981624854395986072127229689957434857886507503348058297424887541651574668491774998578045011929351074795592542270289134097463379327477916883965986883526897377345896222310886443618339483905531121505930045640490097283358295811070946295565159009487058671790819732967925443152443360722424741544595388721539827739117712588599685950498940743033698704975188522962179302355843723806829437271927833352704712686571300525152138942546539668036545505690777223158441547822053816865172904340435323766084962366758608830344959456805283676548334544610087005990810199205350151158336820668149200500470887424526805146645125435880485328261002422866073449619659753518638229186811122580338754409931224173228435630214001278541832209562509588827073933102360663599672737355717288359639278239241282061833750839070359436941400357801555491960142483662338996982854006594598640192186981403719192205806082648814253401546060818889597571527051652625615756026017771669439092093438357044230474693449380128301016643196797427485385825944001650210010554486870451808526481899118154361736273856220962754585072047657955056470408729727947839778012977657342633867901614586295868054395000255752511217743400535530718038577685381080838464385780679293126572434882391611340876336364860774190068073757834487240970481062719134093831459960236000295572638393661469090792668859997885194755824920732232575143875363216890224859012364876239979728024866397541649791559265133776178298625978180199862054227103399797985991817320212250312995854649760485611587727478306015278938667298142792385183986919087905837902471942539577059357548150609434506253078419215481223193030924669884080992506319517184510498616450405998186098199687840264520022730667713693035763423007525426763491857130703378418104953863111050499922235993399271578201430380798962389143574123354977471732504159750174842777149132494154598443848958179119522285117581046590451211459463405346326900155261781122729492150766213412401508141108032549118705428596913530140812421834311635493813744800694777955145848401582988550265176680864109033442908162256783981643025771048734746584500841166599621473495116786628112598361032842290880361123708174558706758424674107179784791550349306566140216095116235128929039187024217115433781497599135677822153725887828578317561480508359239678609392249629865266627384043216904125370007718835530786761677241733261776636037341847166216096446301482833830100377360301751454862355270776523156870876800165220463239052350786565538126688258037509839841234819192438198630425383848549338661363779650455687683277379396587103367824624209405535507162565194558732555491479220115732289976991023414615403681884147599954498359853395292327318095368075424473210612253717113909882150651839046160723518681433011880263271911707917687535043512160503128944882423667205363012778498706450336114463382201806276990809890309074473269383178667476209602056814248209955359986209966552964810011352482649809983400189811947371650270662556158172585662853371915103287618904761797013573028555383678226432608377927197550873769995730026294946302708825405490902791717800245305319675473041815099260486357466185662121359967930564122373205016303318631422485262460470268095459178801124784259202988452704577610768524141539231586767059312709501313653032808935827557400428450842184314846855996770163511460563123888982823245436109620959091836452299999139062304124046935829216995299502363336154435841322859042405885849169560078598800463308560473371039271341445411258104111518112316243282157450242034241409215425736313810740915503461345355655021442499601314423500214332313114345100675580505700904432653986687897825922136679381722206015281807895354036542203044198243146416442291825845572765597188679993192409662328408039095362254195181023865335440724695854031062170638429484529564009693844561339772242830640607858280738928762149289973842894129057235670205482228183318857598021937425091556709628523347614481226379955762982404223670883840087148063531724111852385636277920952959082441273213875072794665583924805701913378922671506436120232833005010528160123388641319534530994914318902178212159150835133416718409161043208866054967077558847411190263868410153688673235994226001865450238002851116868850972350540690767337816877552221070249168075154444112321645961934858709490000120527558002241693414155176792608260886326397158013235158234484847166929615090589543354926140882357161520680317017461844975308414454247678568088367009372772302714307658856754863927024156775862384687444283421428313017154788887146764369610165273715469444693067233497928002930476334926709406551282469902944482368750439479947481140658148724741220359000310337725957513708835053189917127056074103820564464823162597599674167643502063034304318993344225444367877445953635067449070711137074736354073027496684210280424357650808994584870177128370616378018967294823624471632129654918212690572556849493984219194237924972780568735728485399974746429844994249992458845819456159284248938688604474354950035317244560011939013511004949910888272667969603750362725175984422090034597577666596147882207350763779534948084216884978742352033149213862435731085993338518467190340685649677915656240137867139241686074750245216774205881158137302856243629274690336299715255393190861629937330801452927506587056730515899854885455396987954568088829110324265904016839523658794899858219608173591607560678008252472638366599024282250729420875644937873152350185231009549517211275685844987230963163944067720132669362164019747741917798982862124884582764192578170620054511031910823053397849111568574966691769670502985971725007491871966222034661123821467684898386360161784268108722153079121265779370450063885081849441315834809685894551253745106878121511244583638261025800770028683229238369061459706065857498132062867565392138525963061338383196222136901480716912584897415481246605277785105841349998407527176437565336469866397358863173274896193470798527123108537724131157030897769574533776728223556711364469967177590754980910625929388993746070436033356289055313351958033678789761777365211215932785945057412501087289358980156641536769414645718699147528596104756354374100750873660318692995301258379322057995391410884760659331259088106205181486136892090693736724840278275516987179565606091174124128205287740679256199606626923520425041663717810387949884426338325923606887977010115078544275568028481616682638328655079672503002621080327923374398474816702063305458269954213285638902310969033334687776561464636133785888285524924937539613623041112941398859178377051838419513670008520298645283031126769812427424451654227708994403201342504463360470047025637529810695451558853672439501917535609738367678335652335547663618354423512790444360490757612424052894022150215114269963398742671768368676882812534101071843410932110627886925425266058493299010484658967222010828326087888984242556603493203742361360002761643440527370190386187221654572033947939435622416760960802667959957508024297016723145890225988703756196116835579298366487552607924206250280072931897602143024926442921585516006328861195730760301219199277569288357340181584699096200639927096467663588019427903692210304378985537055571977168632003718654146034785531355599470800360082967444284408272763585166982706765914367781503449647601641527183470689400345101966279415101150925365781243282822072976559638300968601561398163340764865942121919578106109026593321455955537913163133264559941943016058926281218952943983290645837923562137217456896455455153856389804327564551789583104710555209352538700626003677150961241613473059256873789499965035177332015231146569163463117163989886671804827335159430805849017254908026256273786901451860766348074082328125337685937561501315724094372714897734224017362535158038399728107563883594712639927646619794759742914965366214710546522860247589777821990284089716919582645752165554157335148077617397035763946727318527658009391592258895517719973151186868284779682586700903434727714275614221335309256693969460518534927908331262944691819174636496943740117872454885158948977616660566166268447117236087295163365477095360635058588399952010696792663078913128462403174404661757793937143042133935366174564900437776723070568947483497438602296279226116788285452271860433886771905467395300726744140609303571203028571599042960334470617786097931932766325868537217476564996847817122360286634406862797219086935041717786596243035286373583795850992246666604207296442324391643610223290532360994775863639113987865654924451594552764665512608210349149315359987828963837104626152960785566133590962587280867364211596821628886561335802571267324922679094532096286923040049022012848982276645307974263049566004726219359869168477254959959273139092403969713839841198161373108931102357724380088169987494224361064767348306658121923066237677621290539551048914667170075902644028671027562570359813169267604942491659623808990151971675430266557295828226166699030248020113084076636638759598119855206805485929368147093611196985267567891422650562857178549042295717288037419182939036576746136204756910525995782552289793350102136034717658035696706967726937472569809637072475800061428819674440746813460447266225822656857061336418640372050144749046189376033944677277083204226561371514182098271642566598927255519932409548770814507312005937405222703688177039616965343428183277668039362811649448350343260802235801889447775438628123218005868158334788875468069266977848676535320406436915967955056189561825546818130976989449451192695883254699869736171409900563383126103164612767797357976767821123483711110340828814840101251949214403933493720700436229667187379108827449422047751917108918868207502592825265734974572426762012849753125920017779796250354493630125348683421111489937698604642714076801378194138718254845674787522889298588003293919405276468284049000417517253976867104324776782966480930647233902962680704521070936928549808241374282700900011448800029760366469541536393465338386611738304360384655848400659489209606790901902452040696755214491620097422286273095398350926227861075214890091963828849762660131138895337413924583016707793147719807977022482636644604741760102782447363069614534015718342873405161865251465158499869742093234124227158916897564363117637349051936399109807678493773437108381578185998336735588392243070518789296216650224311708114586077785481359197489356159185664141091935552737306554532073656574828528103996940797214738364120855297672296679080973539925131938494609116357252030799931235637505366323234808366018984462966804209684095866269416001391537975875980649110177446166345434117822468453119757250588353699749607966097701444322995826566805980814359366687668934097727936972571441524833612256394855559466555389959901070376251919910806465267046102967744045893738427575183680819657072591488538292757796846959542040102443260444277231870222047408491061916000168412937603888501455458637086833352911093945581374811578876730744147343222041303383625080297847585981768946013972091587563664618359181963137702623067319790370287971584376204968881636376292208687322225326376836775300123623266799955836215792117458786056930590653485310386645544082862652871666715427840382556916154881262056987769466426892578687878525852921778904697434195917679281640430726852129709065142894857475731412648533583429403780470709662133971239265505439196067635127096382929279659938035384783058523069682919873431641323642035904654193033251150638592850662140685905787170024892299346438877840857870994909955259185807197866750060900000113033503256901530032494105479321643233418704017812159178215025225291254399285463646544184474657633028839972734115324610408589339392146509577750119506296222134230609281348214648168379798354449831998512698259962282464334256181331686355148711360707194842181542660648901536836935795314932090431619668257255607349893953183307362504849352135003184713878111279698994077998618449709935201306993729437214735887939636059073974280217613081831630847896968475221058816093123063746532462113123710946455840291764704533784859283174840230284885735518895078068294532092360546383449072005777787454668082431985719781184716865662519458269491314594635837217174574468405656960101325391515038861086304393232892566762831164146844116649599910791506056051306428858075369463256562462794990990088388864512698883516937798885089994227737241544781841905175622092518128624421010822377298167096950153784419084764761424785710355127213226973651742147084011256526613871341396941889690626306621813430864169008035516499740177543437600414448498882000049970170683882495777522031824234085739821585243702443749684808558284836327440291070586975491964087833840234431232061808457549005150232673271952286636974015035738250662598119043143482096715277970645786424630492048751919171234722887648725751467535177872201687091831828954050720517416749057492451646226292657902640587418998496045694052702576878169533785920981448269931516340858100353085126634262468343402792022536786956048233286496362777289686442373970465826275552266682982757452127281544511393665819430380456231410734333310066642810619315207095675809365058969496644446660218332966018120760647972680678014611708310758075408459766932503912746197057539339279938023972029734781775736439002765535322076175634785404053484042279040266200577238142846343773095229072593815661361453704915467383477064168180572700747028009427177701307621626746939245329094859004439756062308401339495777102627178859139821713977891364130645004843068748329013714296184870735253200866710620100049475699100484170813919117836831690979271949878682031967927095067016942996492929838409643824912682260615483409946186363880506372862922507285261103552672390814875245314309668027131827986112122377896298348725689697237129800040338934427232605257685532057631251893972736013805970658583666915579019802814441791413828849928845892822727968789596794827897434347378217958046935810722907802708416270991665023918587672155988327960565969032403394272603226689158570679829746662655798012182245516740672463190347577538145213700417719426172338077594692568476549222542979724813473340649798357333869175957048400183436756694616901416438799300722498130726615235228159579348386628854762857068607769295723331134453576171836901693234846116339484669356532767895884067900330109475800984011769611043354504592140686792458634434075927169238052353484759414482623742055099966546239778690716916678549276840363854649625530942323273137022973647486715660718485667665686736876266154531488457426146621983109252801223979202573540138541860904488507518813014625182549281843300266904872980297104108750193021757708958846733085867042670987957317979145455989676527905382995553073348486369512609103829630663614958860513407737363656382568498501503855705501066340696341701151230732342426264735869267800554738134677818601828442003222864668319879923606142586921257999592804668794960226248921129432560372936063857319739416353937265003584201969847640886944882120411840259523216631576741015967470393181557244527495383417653482328568582870273901751092222922643951196978285288821471365525495101865758489055780801114499264782512427713065098624049835659697821771999622144901327103888061661352076145426956390148547785273070882978470912336080383481993008469208996880535197688046111286639951119718514382888176895299793471521130979244661254208927722645043942342093237238631634920760321315554917029957209170844564184992017387195092566838924572495799397773281280144436739041036921770048725380017780756197134890867335332984859621514168125981455753972924656546209598162892913467582159506578883866483347941592623750927677232294377263003571665514338029426795548008212255278475466538679667055495659422213296668007463695553404943746200512020713980794296077653923261578272682806188657043939398086019258414045453173028881591969682061339328092722289571499163310117848375861208442612462232269375598660899793726571718892558160355127125949859261994697405098491907358895024438340496001025861381983147464896806641162302236334704678913104765635997002856833044589702719244700830160022343072374586959378484170316185210591447389512237211767602407765624448663362621223870455125771286757478149150468784074423029375172281716982187700883550506164755739961528407517825996014824965901511109600343076243407605379747631982836337982428536801099488790226686976832231639965689262715775835348646070140808762845626457553406626155291297274436001132439115653995473249328290715953844741748435223993795291984405880739815157548505836349807065469743638541949222314865941844457754417185777207611313764376049253157012710954245134955268047870132220050075490196333348973339235955103602404132457821285590638780250535745978732320407235214864683486796665251910550077719030678429919659225912886389916783167689629191429655905901798229174217130678030901988355739260301922456679639817234138187664971628069822532285429700950044129823243085614317804915546968329646616025957804719502643310104918659939093470634041245709555059174107504777931194437429461859995153345643203344562067983909161464223627240341557058905609782145851889755431093319584206809709843319074129853145039747577840337285358098093685736882273075914230257928501600781135923595516523079627865268040126407116271468453528726813256139958994971377597305500841192956155079020701438672176538513002252015399259827444896831284369111420894889394169662180432510746507327015351036565255283266761789123372040036873608939188022809672270757609657787070001025912234456353502639894283539828957442722958142693044522206253361231475005116636291800960966216727587911111486809751147524288750657157025184118747379378811387267723854888152575465049447517885227812018230888810676762317290959881943113113216398002647478505671857510918059564622997598997262758361259931264929135446448985217614926820012888364732080870526877865510101359737627573310053142530515201113267118655351316506141162702612740886689998131714922551679558960703114666776625502404815901106985190302975911078711487015847507730837494194874994452861910962245216544254625080150996572163062405067558114922702429667788565085072450521678319828820177615241640968933318011456746870709478958650849448269536543096625942913536714166455368223761468835578907885930011252063794193202249628712945615012104053475405920741012124267493166548378769281209377512295405425827973564274663230446380776702027494116057925498578670339725172624010431523827699968462222613724320513488972796218109695513765843364879431696684388523390225281221230725331015115332405424187535378551473923400586124591975692745157698702688400757504965552704158264415513323271884984398201669038979239051648778726864156007206843787878973483336334566886563913949931343125118449577415361400070511468454417166657822167230699389606449436829490997838365300392906176619125816696405142762112867531769294679181315534952299904252053037763945550645873548368276296900265981171046429660488339067019668895702117946227843302119499391514986685759403893598711897713369923830392637865939822747252894607891678355255522146889553581366719521149022308785336165068834398003050843824076160406727316980187944730755356618938477750188653176033201694901632806299655548066466784841047231642542206663905861193175701230868836748272227939525977609632927054206175885405762041996204562055022701864058709824390040063779849170790794626416196886716479686686654189600000584779981812946500730337035987205946302776688607827078676438072273823095474126310748178946412763453867065161764085434238224731985794584529134820314445804478903845600338734229251308615562476371661558230011271646981720460975635447851021950804601273750054434828490936901947469769701572099372596833078387716995337871792556703653144980492736104633633678379033768563172862214549571178024033295483661346603715425419003010728799827222814176320896699051563288744878303404533926281295675930654838187473149045678294901083955425424382833515530780697302007536183542293813464931105563633718104525467447806513133719016195680663006564055061372517835586449649612282925187396619363193392526160740217962976430918320139510839328187653778766911020081410642772939786733377538672258241241161436940386505178062167380601176086560907884965226258822261851298894248861935611104379809402315691899917803939079835020563273066099393444512990469792751839801215255354159497109634537888937511730401864446671719387811188511487323255215823985623243802084428104638019589944549770484330617472959812756904574930164491611451330083097122374317090083460156141435395258811730701363414600106425881506209945060905874264769248097905738769507066282752085938350109203443723423762885622250194967876757691481521487345511388026620401324099231453224135853024571639634180309945158889447134089798091715225520089155853586711975822118535612388451113135289215572761658191140230789557325694903818376626046611027375472443917034874639675167541997325239432715873837447532276071453827214704680488610084319238753294116743877089135594338687909319346041164370854088627402584073494150613329884199087052265631231672478993963891067870892566320695966661087694409507643629435420422318141113157748988422788200934695632882014874490654522954417220322036630751490451046794956681210080748901250734433352248067051770844287531629952484300179023342721360854320997121257287108642416812160392941811620387266537566040433169859056739683073150614549533861046847392848316250192033268811725187980824748255336794611560528109610459239901239506566136228448513718860701073061882719432245522518826509238689069521430303585641390677322839347555371087136379592082175753520802546561756093857960263092051314044727782031035224330405147123829819674383868234367545007818195389843263205853317366043905783473190408071038464965671237746163181192827116456664588376451837211594560027500017739834843994056862196530355643163271091547713575786499383880159229773383311922235406726412658906309016941596895005479368102253079693943267176301890723752506703478564903512548661064484245334095400001286197679880023017088258797564274510218740116132621342199263367055273960557952078673475563059280532180896160281414343676944605320882545150106835589322642531803860843287455127294196670918426329660489909501388346787632230631223114582921908977075433701753969008007159431348250227806263456358354891896605420345694096503946762169389385656119052431692907209815283688772065826997739338981473618397452957722307410488005678750965047665577221538552642360084201721463692714307073604818064606295072268018927292529084326834472983472912080662446896869420270228521527570364650207206511268610876578689640213667079219728567022139518707095760976279205773975289484568444400744786417160825756415097790427783280619512031793565978796189813339941380495535011832260029834096404799471149320560700747286239588110004603550716178632820657210407956429604912013979035381714171849318202511439885150705679699283788086025372967152928586099792406598305784249329636231298471423907549399425856083435820552056998105141311706847095575483256254495269835577164153908436759387149711727312742338894428567254843159364496347095992202890048469502336014611822324709560929792807925900844883202449308919968492293821952470563277737492957508290179666380357705187562960424312400397984827516976733807505581833816322911376116616820826214122007123120738531681180372419337293075947770314749033677606944291110216107565134617537927959088875265622396434573658409033285133823737743820370901388406076433533458287454602426889991070243476259937897560766412610109284356081758290835531613236539147088884282920304376097487404223522576306037133551206353263608672718292442695437065670505908455187233491446815582224593480846392614421967856541517214665504709366167554761889684444319107736668544417659574382067329644228662579698129076400185694098833429185258086548769157506615546490466337660321099047245565423737325949903435150912176466488675461785759108977199341197190509155170098841034649786398652317493274664771639071871389224855136071810885064372501478359461693672877270716268422762127493942438861497606672616538602025232307317232604124923878577476172146378058120095536368688360537796094914456444797027615879788597160126758645317946931079974226879410628604576365855551280851034420025262836509780314891069291609858736986494371478155339539964934905686694400684441747087988316972598283670597997593039769968834905373144378693228359683460191304666951425361150686053130775406408191851213283460082950974958033122531230311582540654622311744805409203061793916148473754821859799187854486528846128584464836508505216362901752551733776523862824286688774962818535214514309524661149875029004710585107890348200797420348938015306500363328115988816273080743051542868872650197305788972007006036465914740981529468013665350872044575995280736125824871168857257669655457652217461080745547740219291764407368563985475379102604404695001861380129013933516483618153262187630950294515527927183954326192773157371043515376461735093222200277449819986183339675495143174344808272112878522347838031009014802509343762291884068416057823452488792855487691077668881370727952792628354550333665464198171692557424887232961122597723376672824567212013838283420606133299955254628690921376500120296460105547714903586431889141212812127521012186443530413371962826594364580539916504156862399976805367183756159220074525841558753269442469353376600167181173917680527785732270808240016159433596365887832405582111158706454353584473767665468204526270659508561265316718216143590095929233377026172775062573947083018945915026454012678992539298554392709420314215974702850358661508380676696437239046432984320430740883121221185884175333489345781750800293768286383578152157027071069736044752972207398997800237749573011225565723236451520820210382070285870132333249179358860854481131476484940494334741842991966695941778574534450036651885648745068182512128396773842437891389692611486551464454411072837287047552830542364835269326036235673324894553081852537644178587109550998489995776102824558428398386777671348745099548244473123225106173344478676665867068004152005002353819328739720607751998191431004003332435027408800384599282958752091514675481994101748878924605092151730600585444500254920362247797863866072536003103045208576302446928361793284443310633593450921079861798717334849290592449984136704754633283731818480067974207328965353314764598709893368026804261165011935474369044643896885648868805648370881939456109698513382690705865349079526793324076434288190423822300061429382173339481208721689110171747637275771686036701414007150581671200369207262937663386631824696530214184531062074747549269773396531294513614313377383450854368151205960251915917557513664179611429639821909338934225557492933740830511522016319713626235806651498614824952622988952272989092991790708250775813471804739197369729088374833545119483213238574857474779046799345514196981146817017602080206543124682709399446613330885978379544336858296274211121409999466029764409907342529162980200747731599362090167835388340163275996949857015575816714664421034006511682787528949489233487550593250630210233055281704264934340680700360451541775250029648319308319093930231263437487190721833298805589660762168623782053992558918601697043668687119960834428648940791559811337267604201531659541161899003733481140564546201919739700722891044328758358834450973570057510461148451675244432636249024225629939321198688823093292482376576002073383097580060338032829734902637313203642045222806194536473352700493493694945935985665572241736003858475255271623840465148523133443050706699715935511632970784320887128833533684577176415138730321525777003209412597497059124389607092069848295187826103460557268949776910906928654406216283582028066703777048409084654169782605914918794688301955488196611042727036885527344346158908912024758249205477158457362427541279779731384979962027810057115492936004346693188010373403732358599208486119400655764453855046185393892229177280335276169554472920641887875765426388539491757815036364209832294074933242455830779384904137054956994980893422795043075000838916599516408624404862332861719223193448107767605393907536511623719693327722736867200852772146104335778847232232569999269718885605070980125230805731048087811630917236114107210243802841360229521169489086155203239422344883332015533976577880856745199046092938394554356152764269878514178728588308741241747707726673593696605666246431676472128305527290760474025159261702875064364302297251094261413153240355448903125491901705059205783067708809937435940116619437252789534865100222092818332995125503480875921483025849794811298161121330536068462791683024643126544389287486904490662408774449953294846880759975670117433781850708754186285566496955487972259569135906453977884415173738664819060480331248595383458362519284961996531798124850439986570874302090125150388745685254261474615512754743560041404922523527171817560184878850617042107708111374044261733629043333901157202283284427080275693644076006157314275865678104577272366043874141599065571617552054131213693932875901293754184119942800283803856473727453518538553455051861177553992368691501919234074450722396102978703056957486974006696246168542943792763133893646545788857276620913381427259891909350212070365997551590730798048004061516874820477250316671764120604732856643363173921146993197124529508168685495640308456160120160032549995358994835460702158197935348656818628288141056706525744202491467953241909813618399642179578695389753979669206280082443404222655871510632307425308851497897968104239001341984493146822662139694870985006904818946350644333604379557614204824416738141533910688837783026592184199399777100486697004155465318783488476737767516832557817011363566192671693195770018261804588575460781554600386909282138343458567574900563517356055614438482494458636944001021644729028466734754996530827994094143841493151786673800809427591219584660462740272161126158271601853580296925771288148688533343349333446311533118889773357006624486266372002182523748359567647711520196068892042766082304957796829000759347172568642569948059720646732584260852567502042885865956320073541884955410967933825954145509817542155655111483275569375398994674888800290444411966868181238079697897736253746180848885523138783826754228816784817721310390594124794192792723186938666801293180679428157614864287247301584948400374651355397332602511258027503402001089746054999238822854834200069302053149503946194233218946505930520342376011046904727184017465172452475837184586114462636682894833622002344113663379825292956996671743961320557132792595710601900869501465818072177705195555435990956801460388577597524443931562125573604248361184672799612587201295384059894653821305366748954624399510014902581043509278069022379482979278710565345685319366115979311335228181673005341089006853915066493157346646981251533657422144760540660691305810776828690711522958214011062222221816403081488696716951260060655766092033008307625367616876387308744543391880719463906431075200151839985389017616877910744861058852706802109366366146428508258433585390701767433006946805549923207469511079113771466511715963008200303107608703361631605733157819568743521080024994579865825896272614103689475412353329427205712018469417707380187001206973324624325478946818284690022249530001851728120945231719517681793819769431111607122975152406715088786695690208807555973811517504624966477933072055181045236840712876886130123651682076642334907923024219922566503505047368210749812701779858407850525984732050317654808628285505338756765983292013496517766005809865918068257864616138506394828022436478861227295741022167085626864916700790307888795284413345556710560943416246479186588881131568577799440360757232682102334582562453020620299383557775381384516085667775155796825515972124715276347329727486379092700972202303367071437209912227405835356901161257646161186372790347043326030130183618506594887898934877001569499156963022388547318754528505482526928799843870454512438361263973332793676635441053825535354406908990276914097229764450642159486386684243023667169180082776641225806644060426804883066544766972618959518461665056080394560176895584844689509795921900673932095456813691196873494212180393004515356542345628029205463754308436343951011923120120528527878536382842507356639278286266275442885982462454200304864233692674570466813682514759061855576843217862704893590482986730678858810796848657604435109815422785332526825746781672740254582580354178781848996301438016093312469477505805422999240995760844192052297696216464976950594347599812212352563399473250888080593319869586122314266345293335491571764363053231644988562626486877336734024350335921972376474020348152505459030769872488659788313138824377931259002373271392821147631415152447853513690158817568416457341796116466840650848758570803299725523545936336853716881839114633601420618915411918267005966293728117123725876521612932245534475345957570213034010474655485809885023489661911551825260253514054750769727257819913093235562786633160917433722072283880190903246990075626809870723890187228972394405201596288039426484700008851766987610083454890576410062060864962560519245695258808017995749344866876489316911893346581161443580702944134424040284258994813018390317852562247827040283285015545424908426740829480447600673791370088755187418087635472153848993288233079533718913257651545225553946529333525149478819840711136052734465791095664870836573035614430744929439425645818803429496647891017449264667628539472227587871274758220098398694079285855287113372523145712133546486973244848525735037127127719436915485720341498491224823810724658737844071573542523885704106760181399302667382853523677799231655938894134292749975586879150547449071458339216735520085197518478787105653738317172729091181065645851501059300044520966063898347157812203939641945330154192853386638480006590185066347751683254860073102615660858413940888630109329902910167482496288869964628447094301223240236579460477076204935240771747026208185301222246924575884574464038607837339470058421364286524362508862755956221876426529317291689865335552270053465631225882937244437230711564104985834207806859408607129808722953758349483686969686830329186465046842207037617817580266905350057337551257541321451156437761494728560843529268183514610744480763477691922040953450739791589592322410624535922822025628118151490591619026825948218837794177567750074392420240619311749503883088611778129619101117084088352261425784769255711365313625710366065499841995280794878148050027554708509313915580869470686374256563657343357458710173547873721889724253352073319679320378451370028248545998536952567909964572971283659343494655910728072088271298190237873317485551000828337277058303657530175175564368247665063064098711458675580040396824323348745146827979740879605753161629541431871331558880893930838621289739636562480354779900478218005267436047008501886124025606159244916492884379589552675289620047206392938767999704962532179441007630733565239195763626411145722905413349574133014896770851862449529714013255109905150760016461207379447379864105652556740312324784367779050403948731100991575315255279961480919229453396529021214270802192402508829092230977507362145382112016998736326644478149724986847821222784249083995729066064465163012905887625986416995511634615121288288344467207866485021015548573590935197020506919012827050451428412153590569349516391740361408009576664365193421641475011726137596633314868869827177832508800082449705325972420569265081214195116270908750878238790128752861598638147013310699336541478360286664527611445402820115571377735760515356654669683931035154337936581348721435472011621502728827343509457896094601598527133289948338492007824124781757601211944331706562976785187612713684696791046764635124997045848122433582566805305250000691594356078626745039465800760755330623826694053907334559535989093702400367863049343903695585424332150578709823636047309419658939930223395999172990713247758539883913558766377302055352367267990094560123750349245728308345985667136802663097192418631777496981940907753137727149554249951048515484877373696060407898875438357991254982346797086752425467909499353713140976644216287720562546623267029494333268557030223707267623188593212403611430475700930049129126556419841248892064181946608703367941573239174734202184892120201690982434730146519852937051820950908292690901553413478842707931633685766059427774780445733522529143526303106068446325940753968644301925943937940937545001397523029760964792198451240107910885402272743562465481323582990636113707444523776300723240521350604512439343470348490005043968818811162694486847322362187578817032598010997606686254917803884755678034681891836895162291904498532293945958678036776517647790667068869929612495048410667078970616171076680938225242905400144955286576545148167474855551749249467086244610981252201593061676351224530697644987537864511022242866583250573824689493569903710056929701062144154385521325018178695385085539814123899992180164888057103656060612545971650379190418042877818492047427943057152487367166296834825226057829556630060251962741771059405686978835144367073285303318970152382478818715726189089392371098836904904816243864706569355085478243289929335585614354690415963272455712309425512977518007955285825238148354489662635907614587811210948987313230945971896326573590895221573089197513242125475059869179013077522376871673722372216459174422852705964599892234014365934114540123988192001616351318579885653721691353972900324183662280351745012803684393629759879237204979665176288534552130685328965321711869519532023063815477936670501524440640198221251536408271420174747081048079514159772972004387131270283136514202959119951994243957811378231493564980669904495910552752891847331548368696937422249094910667994328424669513729364415922746780310825888470449795982568782396269042618585317607751021615305146025006271902454188583633414369630331835512906046713094949114732110730092038062598346953373426735598005487656767799484828039573078862263215410835841451684461870135435009631788093730355615424095894572606482840248288856196949006124559759702224409152327179151670012247404524460335406013158218884631622878592511616496428336284761183903828432133142210046973269897172510312379720492440947020106332420822054439874489190092492986565685610647578851207823347834750942090767142459402138091462874050507323349456684676104320362192620107006355659445572424567421397058406646399473577339947370391880408584486391931920928812722313203070337121219401291800483866017836950354434229984178346476133004766344324749318336483753761383636914727107591008114886843373165668312836145108278435375980952513464511022591168882425434778946122232065099664624589919361725607878688688873899867444285165138741725254952541792161029883299282594256823566644315672391965229078088312193655913185907753738322709276839553724578495483595131902466402308255117612599021909344825391193102460705363519186465223526140586046793949619174655151201059206474663343460340094318499454517790541232011378379733061795130633432806685143254921130821731683170914378801155294663837826374157749264080908839529583418412162136530165414561214742978740287849125703556500747659090421178654768773653867919131826121229326725780132369684192299923107248816898027139393153089872864229993389686388546374041989969832253427432151260217414644288669426434870985046779007061199581619759181027389952884095983860296287297840264887457946024423343487817793292699979354556898738290078523226485379001229052622863531213782098880649280939676397349439829641932675630598419151738456143745425633148405547428592456934463562290017676107043956079482809102623982162331657205249792837047306855938817403861969260848203469688809130242965210480511176958565410976099039190775708405036838833578765110394817603413642970815203912418835506594928142002604191945307130411588107811802260099936725190095582369192661368707156997222616341044641441694016992841864454125505170803193945959258551811483021783651356336131969430295309254148860658970481384708706441042109929674237858881765885818634648199981624686382568438017216239167017483083122214470131623988020556354076799190320703289461414113413004444345630229945842151442661508245569788914565105860442965734560806917566879770694505729227804880714436825331661134808714731439212397924276351667258856823525043088153796904031261972852617484257614319996390435795938331277912148368057153552556512250621414813992477955879055397666985589273736401285040327193574869166954049552748412830067505299504512896504425749827483452591508245748181089565100215217795948687206676113968421894794103980981760221869138736657890755086277491251877774974221532450583828884147702811787031201945130316184950429299998604972438531947427362535497090649082775883458743984794492598027248891029516517950642393263221673338819835721831852769860774969963409558960467059535387378904417455226725918030685971079540734666541799255854588891112734041260876536559604464435098230420017252552012566904137248620953405441393102277617399492099228692942953444376041255557057923565971739977275637940399775095616389506733631983099872593948051183559783224068204822689705863949377184031405657960148797524421851410833366093001234168488709328634199159364076014861008976302172751746848856598953616729545954757100358403714431715129410561127017897568510458360090549466148945789832795885067663131963311348096624825913228272071078427011345353490105294808033784749387649060449909905819606930563556279691490221395220875210731332069436047179449515656919378255703705452100457376473881431414390812244274481034168446851131782423454295077183414637562268408684569960544630686206967465310438392925816523976344653056384748181787424495325748210952403651627685361661161406110298001729406273168569210110993532569796585592250067431752791653992720090486216552320056200553836757702829400040510640505999432437554170865089871682772130080790113364535255054408259061736169127328660925886082713633781809507556470940378514856277362328136238028165809081705939883361549287244805816406521215754638802164542212985927093882608835453883115544283716115204792496649768611363566024164586317371688460202141302213739494408286730308193724609063288571070337116575914774942469484716273178321699864937164572951695719731304540890102596139089605086789160905002717539937086926141675412371254959940950144865353146179238138894896959131251013481870033667199657723391582500566219100876479929869076459385326505536704444323637724003760810801983299220641736766907885574165927278093172897613170630464724456459413334545833731940673828043701644447450351497194122676317380713180997874137248140905749837650493676717688254696993996519982955448737526956115641791916781842880487744982987966438963231472564825687508315831615338149379265456621402343730772832003242382839113270517499279494508004205403339916006020141280682573268993363453590313831228568451133607833856873375574462968340126980001677932984707472474991107609217375151108977981649525120466897222422650389903619358918411695279863388940158211885752022958003059881709424519430110970349482625013776787737551593618035095374440960932737736638308765385633756715288957263537876825169353747910324923774075342322841425164490186079986055555717069082634462612568139894294554327773554179015759920853002564830349531352809972319791089674636770672563203176144792756968603550296233409277950016843790808600054316538053121625949846720964514599239899293553844879024889629850362485448185782675774916302353969540914669877963540691040698206709565412575509575032361143735905511204382085571373353794949540595604818279097105157908345498374610921805654168287552007280031172666423780105535280157162815309810732210380795543921423576177771147006739565161490057878059694731702505056430223283677458990609614438905418362053684021059482472906951313206003135091532778632496204581172196740607567189792187006369727549684614618309640285133195868799553484485702501317900682452088358548439738387542375025098171336539652024561543298911545879116794964660007076455200052995710049451178165941003048539061728095626597772581092600487607472192187667578470713820856651105049575124733636466116296671661554940021993346870857844501384281724141195627719117263140967901430201383453357597222722446848829900907422269672239038522881554869758672122935437675577607889453344017387730600412214528433719343550889296984738364092403444880662008234699032516505423692256748902359062564337954486927193726947973301838833215584847167199416894123083530339129222506180222175835500403210576591438199254809845129530303998225529499577152306565965539644649640638788772870084794545251874180412258826683489057025828753758226686973498328193771546753188436153916141933222811172087036270746846715540426205940165080135835097206735268532189284129823728577647995161721948913748793841731893612704891050372990904575368439369985526574516848992809688173928371970746635037703965773808928908154266174941157463580569931852573783498693520543082489437380873197949976510165756735265012563330228185082537942503895707539758722706918442522367889913841564126906627697945729790385838967286604668110034635416302640329463804957976401145799003333806451955429479193121905242956899105767208117540314050429062657332105025202581495796755241040911667515323884203341482500162024724748743165989490696504067487553348281839424828859408404647023781713052049439240594435975892344240941906391394089552174828116882735544980069905063307744565000744883792743926087428653083991637158727242439568829891853962632540598117913155238230117854264122392038923726444289495227017889496332385841178573417666261500641237903687601068787526595842961855971455770843346306482548411477377006585287562841571156640499711383114270007487298608181778133234922148953456291670224792289969681038608111530355591327210659067252900792418568889317763051556025299146793639457851836914347989986490503992721975474397087944513264514745445245496143725294003369653295744769886314129662014395213084905763290248745509648731817736714817915055756655779402946816132796061919787349593064534251012699671445961405990325015884581435134873221955817780548024937664504193768675505736132878090066054537296639800557320788902144834593889639488401767919186248677681388101024966728474057299668883714877326031889023140835175415899594577689101967168568467677732473161324675428025283851064437122946998129652216983536277802589516894065174495146735748152073557026161505417118224046537238077057990788164137935717890251837439052939577556085811251961171380309793775737686685564796636744448251546934510896624066232565727051132797454764932647712026318778017871098304555042987211029967223989574010078924962502059461047122747571867198662995762356971394395706474313175581262026589696528548995999020779405288312256389012865293583739532728893607150874628792823559439445558148017176553626704043074396874848792992745956914909940076439583888934398765313969204935593951827429036042044020800119890653950485431616939430693463548317690074693462030823746275149053191991105933529994281707655614298532388172729440190321163175510079382537410504905479538271751754746733555292291040618481963038838362795385901799676537632689893181063172797537075464323403386757938003016395402741408742228577205331419470451236050637956253442763449615579218688448430702831668277465600945636876560541860661239718369375457986939434872014817742399907594762965865626327064585118647166938365264188455652647976887396967895140317070256238187883742131852599431264328496181948031356322052584387012802876402322826013507271442414787119910456704065065230149985726394353030181894285590451092838694815034095615991175494015746688532325058572340731659546721182370307865571016416836655604940097065460640567706401100409482394019482654260098231152618429883891172547743579841241594897335690906761819532888874975079241209630701899344978419203377319078689408625107282412336310089947809738382249037356801053863030641648963498094299468103529695143615603225018035102016263884955732466622262888730777100211798416425412780775134647063817983789865417468050096334414666210563984997058987772889845702586170377518837336123636227046358529974356743632347092474024119142291589571961692630621130205919603990770256782858631108789808323141109548500120121677759591717233591314732303817341806610341410547380935998849747940651454065336650437183873637349424023966826027318229311498301528510555601294957240928638812264818970714909759601249368647908880202721187412244617913366381145144590726758957635841223396577205614794746260530362422501415276165742554789782630029249272770653944527280700619610842466009031719159008429902273874892166323532900912708025047034422734324851264241840957973053995698660486252886907599375754900304227806482414283704507547451384486329047661288781251322768344985701186842624403439490948444564379180130535083624744659073312191662075034916286548657110432208352674511705326323045278078751446624283415368611164120832913571223290459154129323322156286849771309439978030492488170501635882187723031683988760319641442571884889961093155887709718585738050817812565995134588040771974486481161145071995354117546906562591554915208398587334560161518054561838753262325061563501913678820077388934713882486578202462122399163585477642529180587216080606358325891883448742414965344692080323539931698930893451937745850062433734426499288711238224386318809714377400140057067495885293688914093305352446454503557407174559404445216043001331583693243010829324655886710150520487200099510896112233728144291557648075245003898003680283856929963273774567276415202941517359541062716710096237241277905382388854439323898190412245803387138399573223653449407918585492136127036036291390027074997458637397905599279529526896729170580413493234293983629924917279816541922208442246432726363918474109430608756666485722204713559848522520901763101697352900340800662902977619788414617992587907996477646560470494961517816091344196357408368126519140830952032304452903645596949353539689198155998121741581778844255055507379574474637261704596500362091861363498718521572557094754020545318239947914772400172725454831269101729981580485409461519982170332011983599135966465338813302185951636535932472637240985422845191918707233394869705300509597034357080084349783785610581101963692909590743980371402658559532410748144217114435956360630359991452727871221007593112882421135857787847493078851725419099104272245666885809430844808288363072140721503719853653361766024570259696584973188035372883224744343334569309969545970226162725038229257761045421320551457929415186440772982026167175302465372156897380852594951200996276670807671146170582997203073309595302611172180929924673967497887692954217911984563316255935655841913585290481635080154920217985515066513290664398755098303515624289302986505008688986166903219966955223803426297118939209421326310604831325350446112569095771648736199275558776206588631981856971163498768973088518711723517537309430792846772581116943791345732520257929072657950876387675602400961375613513136848374274012127478025450592061015973481689756776947562944314571459827771184114095343486575873141710407695143613519341146140627623332312077617248514363895071750922703929371237748068594136572194333491204841385301907657791560933086800848569480477943456641884591145518225545847132173734055877428129716780223750009532825589531792601032882941522570087870896471377271541997569789734259158456182940415645752785824034820434613370871420397848207472151038540070789668491652214779517143400760424578823885531332864284401998385630328939185262712645307889231888177524331092521842071987341911372908107757448455026293005186937910618069889789751805871653668574759099272383197698530044897019559005723584045191138871715436240805463643143044309237060964327043474329699211599546158064130366017109976598943704515825620230750132699337551491941326015846235922376284950761820054333072630244444055895871734761969395817846362949116824270172029264900160320823749575180790488138933991022566662646205479173271168154055853728607855640457160229405845379872205999473455426465337125319628085862381430705432163165353332148161495995001596871016239588912535971336260734261087808769401128117634923992016398047432452914180132279689166943556120405147103341431606400742179459952824895356530129360296613691250001192117390291017026225218511610197018733690315371114432938388413052659708977192318258303197712631044746248888106900820182476699307479847730996106602335116379786187656005485726871667890004051876509772044380248800214545981931608891067402714815863640880118538228620490879611342040400038438147381074189094118740407043517211937184349035093932262724299892113480728514830976315243961573165922280702923252241840471178726252270591617864829349678726884940058142895583975977701417621102632742452227414924076611144411508388095870224705490419669295785631053234026384567363236882496621910890415341667126381659579639593503671740958106004995379459414038938472027284355159688013891531506103145607844750932907364717876108445392055788695965253185119613801439085504269700031871189283114127890341978259543430179308363466641338893231324995725807800108847186188404172283820788204270561448541594164800602522436581935467535857936702374356012371639797988887143893179524968995025790670006810945702333368745486781517913169386904233127567147367400714469691133502449640593697275288311417132847571277268245017756576566657187538100613710155399145607667753356971463826171757883911207475037444375067049715128563877051203794176068891140807230452303896302489236540177303239469411710356327489105275445226180479663503880379303403953488154501674039757857080589238808028375962195860865013585187839099135750453036083975194449184827720669869342778718135857918589568178489792320460439320068031090347143210378924712981377561992779590493409702810283604472474515564488656607370813586570289598288716727736736804706065550822580146515436142260888209186177004449724375118984824194518312764721380596034559105054037377187138367658860015576017157161001256943830373164272131540906030194950567848806412866982187316794781951212924677651191569237036158603358392101889545533136060378764555424685254922336649894269133726624693043671189066799898043169472620331727940316650676281429245297473288613985953077249738226226318817562548513568667243729416936097024075562868492452668028383150569780239297337202265683589065209717805086002700256426478386203488593199739753950396913324426502421106955136836959639465681868294728250407520024981186382777509712671322369749404753208833375192615802852497282027092176178639703722493442966740709319297816180732108617421794367340591825659596593541719575419097244607856183112124806725066212791449028246268625347524247557316898183075737617864228275775607535851594864293178210007062865676058826732584128684501597823725387565946099878812953712515329969989203769313807521125449026498942155842798781096845041063996024184640716559382548320228909062394222706762294129140705399013486665666875996335887397878118616969184170586428940155720702915043638870973874735723915506121402741843817319566325265928643397961122892020708995270446626107566561678477952091989070625057435836558330294901435532120176605374160875679646016297366093206254125350838004754371647643172538525516225890546802066446207652495155644957574312998172204111900875231550684385180874751856876733517139532804445294400542408557030985083608117827851992683483242833188609495852039412135528824312164431604690590202033014989804785561853931793868247446401063098407154807017859507151391578835628993086811576271632706387809895807453994933768012976301479292912102521966430457109198333856741742526056982089687542653158384266773540631484533962275777600184349163773789608110003534325981465300263018926808902707982560852559068776279119698022860593381414135397330245018129517387434008766285213250097553821204685446193743674089132752482218600785503333311334357303786182745465735671494388987918638148948983997768025419628759512104094703476944059004960229071360732006252365862077768176213510435916126884101781258912806820660714792720998107366129949204678129409538169475759030617027692974956384395178277175216848517619442350174116740222619462341444787579271530997109904047939248524111069118095023721038712520224397234355140868744784428381604300262401705400439185943799821546609389844948714814666071447239356792108060194386658272015211582545477474836725575145660061035793955968103639405131614302152787572719897078889661391690332665715482904284466524394347237760688299615350255654898512219170471057931318437979227032593024759526741378256471719622579390663708965624522627329416148772360263654708350385614876652727316112929867279814015739432017573963162609336202197737081510422999529110410169911175985603419206503369192203246633383473487320525758891969045743868421890193496369472541526499370593938190817537196614295311372926842024934388801688712098514714152487599414653490916298442625011362721122750196304188269230577536821114404192275559937998292813082248352403215022333028270571771511030594768716817568668320885608992201462760427423518065669936268009034418362074913904806087754571507542130624797363189926658334836581352236745863370107002471822343881084721011091579396109682459352873765712465607355102974737465943370877860390830392922622351473507428797471063044044128427589565996617381239339109347662154113409285397320467278114745866030459414874166944514689056123889205869554046538262914390752655970072620058570187829370861380595027663955395844552086458846278497372676700923732340574244738761211792419804696931788369047777487771468853370593135972233304184214040438082544757010528342614680317287366192363517703775987189765681616216310434194401418483938239370375053722976161498205499924221823773597592645554266213433406916430401218539586390200453159363196415993947123833413812497973055271022206532416272665315312228600721074639052905074603944200022231301493550359313562861862268426314107748421476156579224245493439600896487254524521974097813354915023564219017621745508537748693538141295779815227360997417801648458329310642989443660842488900886129733987995311033955519610060945052385439222900796655479833708984938386752034083232777467319930077026827778351353912312838741015169204363675567276252262215739203026080632140414659630047601200807340511349764003322980652442524604118803442155824073507356840081294481727383276053997149030830958029118808680605697768048199329854332368570006028235713536242567083745388300509442877927095311544211748985613371986620424791605165813142975163630381320462732803704500360135912198336497587836971996084507185876137290403974637521079489626711309827867439677936479030622229270057934840772277573675099782200198945168486824073136716610316773337344817571224884794305099032737462365208353709973286912827853022950377470083406868676005806120631601612718692455652625934476184224731358696234983291972213021526660604329989338068684474012868857856612634016568278417705842957253686730006712382746831521869468940432726644728173835207090625824456637441639691855590583810861712935925635025320906450090388794425866820099562109906476399389872436954224185218809502159413434640888606075004403198650317021440203163714816859473338498697701454778356271992589364274812114241182431274670905220959901649829043893983122944948067137494183233751816675113529197803553595816528777741956245023078884173353848789288738664821596667291401923089738998130991420733290019386218001486018365080074484354185568305321951366770173925652590071714312989882221029142163530383335501612565053799590378633024888656150628038182601480556654242454820680008669175825792507917127121227766080244449547127540242182366808520743983677447035769949577856081066084750489744091898865508959704692134641152427681316140320977731717485612686002338694923801408685920292874761234504009442205214651675462498545279741931123899811262674614779595526554265746758731023242323423368081985424043616554011349006887595140716371095525353724722765352036849247333430101953198090713431780027797478807414602198442874352310117539594444815670607130133140092745797440738670914825264790565698128202171612203157011996992166467599789395053478127848773804887893472228039094345094906226561831999266094254791524828951679163020027298718758039033551143365782414117360777900011402087268454602075378799179938283289179487510705464226304775560514826829210910228064720421700078535598796048005031529427799810264528939049044277136970952659339481911283127216599211920643334402089205065355594653576560942428016959237328534112383176545781251943831003373000701634455824344579031449491509066890951087607185517202900199707859371184192643514748740536708277579058455168481357758777229668807003587152781184729825795099442911744379473224065966768271502612591085087585893645042502917587779319665476179944417524059813083761086266709605712540283452960422112383461320737232738372741317453793662905408315026277411721675060003132730176181558221031904377261246619675957540671172674659990029158163857666743052035695562386628067862569127230266926005179186550106157361963536377392130808497881568015217508922323148035824901159059325205172033956544300391610735557610196927184753219361140432117588002539785413206044214143816425335177257129321056456881420612512727402886427933872561240210713748927325874067614732440485490018265026938630434325770008502849064022087952680124790036180702773447962576620293444673366384892027387239232523666704776905012015744636588939446663250420986129469717990212827859972743454682793277738927716371239293504969200448250560351111176329693946817565442069377300113162874193666406742269945762383770881300834682082731429944567950387770576188837035176484158101766831868011856460727927468525361808731818842233541605832070881027571121807990681901069643915828352949887625018437816927384043739156001805840689278570337828093519787825474337448631429134391196887168206857321750378763174109391868317813076297000308824227843019831515804589974506492538705519270955670424224022345061600835555537898564474425568103647085499698874637544321210522001824233255166452184008297252209388752495904405624003386840374446412293863372018337561666783195409110719422713010093703646254411531537772009878979867237816074367252349411948833162397751453434585647935506354052299731645653696122996872146738580183322109671465544950850420416800321292025027156949126753441341604877219523759618708601913801252702852453227992049833410479880810333104271476136007945888560407707784488540203631411426752116706283876164368346985251491798206374264386824576136767288099505764292732037412684856530402929623513249485260341396822311302015658980139091147453712917804433882541278795394721013693535837864333110772652153149340694941153843029877201956531539365593058844599736999692957801361927992853581159476575372859182018160110665539210437430835298545730980210199624366091267687299978717448303322833445677949312629596985554695717576274757087937749266595147471763827204222957163474090585029157548538802786405331528922666992158398344616119923582921841951745314676101476858804591118456284624814187874272055589059737840853692226190546468603952542217569003594912725146110192764980603171376105921275799541530267111609631391277432918441245047534356308687935887262862919535862403225754412294816204953218463998954108541772988994179895417668265311709276762073373273035175768589198350026849294706576773639115501652331614143291789148012838954177811410910451016805652286490558292547132410523680915446634868774726993165085222139668850707240782010815328485681269884571469651779219022469637512014549216881143769162039156919840433030045595682542371492737034458577763237996179096496184658399238506175590896430121715572753086550852205018928900753888138651186047186652066304548219487738614246470543581119254536633393542690289273155668077853228235203047466392081211697446414240940833814363989314920676077351287609831968762412228714973306339108248687831636272143092267618294905580557061282794379603936921090304220665913422566210453444301288842955791588638288426122036981328213318843319010527165554181916144130165779820649542653340118980664446764238305816728761978853996845206882843042678515438186535308570592528066811500183199393120834974232807002363481632800544525083350892356951550503600509319576445296757131043262663706320251291292946105806029832011880198479063335875611650827099544640143997074732703057832998401275612162385219520857129100432785098043461318141773012490440372959899335798039392012364019659733222589203798400811685919528310477077741606718523484194798873198683682512185218857801560013841560027506117778348070293584772297127001356963106174886756025025765199144714961228272862678315320218787138099307311072784794598173811418280905328995804201864024439621032260202377291570528236009431198373177990644378608311989984035901385506277391451728795650829651856128906982957400085067625080761088230476066000177403984756146308443569999904656185656225235812298787309406842950859340814015549614785953927856163473978924235194478755046916958773299725852879954050731423375021042787160623241739483030685970040251649951279216793470751420762322082693486241596685251136664406979999423117626710486216549896826883257477630725917259620883887351583178286274467227583706787301620092603553145560656862846849977061509724658029308664044626617087937518974977419156319145184908746100416886023824847265073368814879814754469038249967444833233629138313488524279475399077231758876740354861347671693913030745938407049474196509865477739334004087539673216706748694284186878081455061820764359632874261399497886824061927708246766341684282174663783193435319953303752916158506679179814365059120082932907165928285148863401826954137739215537767516117074336178390125262896213965342796050873180030128050448702210391073228847742318316118343700452319150348646378608856109363463365530956766206915340387531709474481399911022242754270239713087806161069841935842614538870614865976763848452773843934134405076514888128147068761908615470646381940674202749575903226286738293198488549952816936020803496999964359211417576649618879416691415824737244912019477273970854884958038832475981612568421511081016424124063282404901611292718696972951233739316787497714917761491959267864385214206904703945864521306529332660888639709500395070898094124843995753663276239920087739300066840188672982676725696823041489695158186312350739426350279262430259869325673332795499562687268774118663943191513165372643951870620364097523517243496612334683553214789080854050548970662838041100542232279092698296881647164617222586010557776132387275275804804337278210576393590633342555732174127898393974849249133244240830488494810375683536869274145023381493057849642494268347976723722317869254505365203154176588572156391487823998165882664423978029123749249054337783212976686595991813363371316994773132053352775852843950556508886167653511086212688467111075262204862727719664671973791229931022311015036779135530188399261365430595433649924613552450536827454719642425779342299347978694713364945412288067257003980407435262599864286508490375105725965402520942343021983242401896220258638097795023316308542507254788162929173183883943169091632681533148467348098285663156184014106117353180081716603073118593915544906331240455929488528611004067876345093661668719280074497632274367968403685957999595614904748399173013390653181356662286243958577034393709031714890111403645898357043300174935194042449743819485524356252472886426900881656939158035604037374456059565846854645377313583060609974442750609825062028283651998402543614199514531486442696760777650469502026676349028349237876341296943312198499356842579200037601248927637323664962901499504783589556835071541510548605531909685763149680279143041940556307961868887388281086791540845501122787700842215595567119962762161093165185796770828125095680635675867360214303922661715443820603208674639564108145708623011530108973931126863100371955303396425806989347259070515103130223232023524744900082771445247628978132014388498855602686361033808584424783598631052938189588784729137960497660192122034225949460257424029055054521836359546295928626706136295548651769728743079149123418145246402560673604137892813044233347540210562664438538741869617219653973265726359714802437976457216735897845395223796582517008336395335169486859642473544561505564592167692403905288069025680522240520848265238064859820665181918986722478746263120464929707410356389640677679442602605100726648639941837441953447792142752533000907823204447486262323822712780024819406831036368693227370332301654880135567645756777549524032759845007342358686543478816191860505142168582436515571079596233269033764806655594704047359668705084154963841832883369239238257740712215594476067760667166058074901830751459986259651806431444727948445150837788988245360668942066034055898230595201691919768094127314388496198159035930904466088311876589612577051623564249064570745139546118638083714036864220283332240823535688755076061873615146323082007714814223466692994506142175450058184210568331622094938062114259818345462616141347579831891099114041252164962358030655914316118110907629482380535702771022944872785755215143594318034520420559819793429960413128226080085442980137675618510315076242577536249075127617899481774553375583296707467763811485226939641784199408158043929638014459457105963964032875331617719619816234542070415213265615011220851529671870748664294647607140674784230691792619549909454941898985786241481409411691337321105689111290520361660576007334121925460301198515348836564209708517276880779207538859688826777479514826410548549333427560753873610007290538520040269907228917508605841817316757999212414471039447373109336201901221205682151870476512151290850599662132395392622464386839506960537846999269892588748637449174812549183092522016528619995256242633590036462262895683135069366173202859752190515931973456279034441272808923202600505255199766214385836957145387554498896102740016175723409788712443840097521660280225745705673816506032875673743114130084662051825342316124371476246062225809858816013619245573241652562440725520535277057732107143914113635479682896788470457958896560394916054270268482886091516632274023503691060097104985487480687620150885023462507894802207770153587651635603941145946494485314326442238680924699036387910226681643364901238545039894168286582934189865999178359887275509349854653697780317859354628880154399592146074702797682341377782794809621534582198460867893236526110560047688633953507433629003567051396866449153856420479299711057758326648665391979131097178854048866527129977604973225322403067259133813684562121756148810697652892528961565215547308314632993049374333986401469097267849961086882871626445842915117111196845174412606181018337363181118898565320995383626685370942366275926987296396131454270149984183544585282395637938362987212935189648496741700384410640676883758400613171083759102186324325839002989264105634417889077948311583159307392934182775830418853335055851811445299785994981232718295088816205496583567449681977435328584938277647793665306096121156149344961900190339585524587292681420742127977819056494469974028715697160003661116182104101910002203951323853627477962848737588120421278027905806399289935665186894827651378190111834435872719781108331858528868374458404379541912913229860861060972968869043236189598571682073454481841634799829387110818167975381729396002759815790432708704927586932907547358957408729673413093910548058148221126211431447681506251065390627336130877038147202858768918832931090334774843571912988779609616131158529941533815500796000541007576531040657379492383997673165145296034774350401847958211216101342323601778895986566662593772971991679877021916613638940275541859343052814313918996608150600324809401606068559020902230964522210274772860530588409427103217985810329485863181151787413771593115421882991859905166593253150616234918547187141378634341311339629467759137163706159460613236660436501513531597898662562928270491901384665432940716388044522467203560929956487267271543036874379866328848821210790512531328391415850595835265143990125018369142912130005562332183036686554607215765481777032436026904817939442465179945815176727715931163173854679311678421716096829631404601221052775431174528415356647218518443242764095181118190490213418199288023692246284879319317873547908171938533094499401426249800923833381976502323934434620553651486478870360926533990106151853158466006024054237548820621404948463587014319640267217713313603563602087624547418137747628209519014966151850902394729789686293925569379837246256495300615349501200966563309142114663329538420780486647447288828274261039350598835720361233061016592301494568042806584539186963427113713207430063412549275485698077359054849057803882304688947752049206976425242560123315074733817120689037430547985623586119128283059878156864846593329153368912919946334845641382263025980648475016978014204227119072620285960385650717297045936311241805169458413579417376841681299666186081683730181957759273068158463188145812424250917099163820142728380929529734574447140184987806951730116603547480032475701584337183480491787285376355766153286136469405108112647214729991578516269566191915957915276301728808818063210661368022062156755910206445231659624854813113592835982831763282396246983862448504286178669413115878240661038499752434701581759365517510198787824530819350828500918529221477347144153663939294570298742277713598940884505203195815362245731181252336138620926431337099114758084120326307445010494573600766294166514747371039753813333688213172309949402204195097039697479637875568382344239780027997845057600077281437350683474675318258234106611795139970478085637341152169051258563370566947221070432231724969731765923963552272574476887180750571157739006331347688795204246850726906344436234143529166148922879649992690439283846161318580647453768950176625583805317422471332339166570074297185040672667548758490099982077059901166483206160923451901802283310592346114388237985381014107645800475672940127466741349980244802574408575509412610084429452679082166461178758743405568587157644584449678223630111738189205730501420441673056121166427466361272799416746549317322694373859071247741649789402406386297839199844132687063813800103919761072553745361873657553947408196674271467174095337891993737015719531761516840414710516408736973585847414884954911517506940199114021741401284756646180417944893361572760190186052252692429456636265028669023213213829687262152758005189220305437686716068773658743895734752786825433492354359772146603997338628499679577417423661724419771854681693488859788698024159425135778022686603758622922761490686502794918792115023915290806773562985291851818092816849951743716656955930257588036208162383429225124493735134010369349760216395183264679748545858417212664191491499402862244330375181585260534513614770243118353477248147347093232801518186535473277415186346474802305501140649266621714557423369229695948614636177869968214100934850117533041972506237025912674180331124021184485456323676069727553831861456392465841222351463740558664757617374761883564177580291781284112835907981482483873296783891961140828079713114403510581961716714862666596701475450581333614054049333953029333302679713472018321562396826343562814437217068878959418132749000251762261406050778560882621596396083461006838166295791334052688326984616320609199279729973173585208978688626102453778360481153245063181313494944174064629083160631810716919442214753577417214489275369928089597767349480454375714916930850704140723338154589132968624000645477066472604587809908828712251757506816591718070514108591345492985506578997955011846746521635651885392106943032996133080610850322137003252592953156931004666849316255984569943919885818625923396922599893604287360669822977541032370631000374202266223205205838866965609641175087428002484761138775023795628918054854904331696264524950027826350501252110304095058698271912690326107592192370548983627338086626405074506934211661933622491759306154406504822774142625876555889576494651326736577767179811817279984010824951069404093270326586322999641928415292421154876660159440243040524221319571542476578398373353626590294689178879977668901897026976987345671937013475769686954627926047308059943248052105112456844076504136689341516930204814257766647993711508148549339822903052440876962453209215547186092430015991154507308080631102209151200746757788914597722552474397364205768009522621390789598744153634223213840034012464679324906675405849799210550237673426248061175500228232795158333151017273819942196525236271845078260744115460539423925161962026064410901031667348294353383169829459436300931054474420519123820840665327318571057392107517319342825541614455544696896104137994441270479848039257799319662602674030850532093661049603947431473938906729113957536291461192946480843486471155020575936822183791765797916876318150642083889589743481549382837414400239772935032490254594714038684368622473450485481080239033102706549491644736682043376548933026252231558837711756793474260441351682315456775541503031748008022358332811050327219233925062032227057369871129500622243657676626601916486862620939349254309285255095229579787133675446686990619058373769639654119359598233620884801651741373962442420380181991567833903177826128723984781337195448643015384941088812598561487625390978983686141163834173552683172696997181017697282430442352384322620139405772022069201952109215764962297507519444095077377705083257827150950375530766968588723005756906947500068207874926251510796237373610157937574946907427905481497413822538097118306157035651977529446984873064478214894279723565902426451394436776891734378960913653840863955406847231074803646499071920701221875450954846062644226344812083831870037784803055042135449864818798757964600135218482573301134425730333563717753807869914682101835992666660966287850338688517001411427652717156190073810777442417256667311581010107105583498715483924156823322169180060867637389493390087943771477556862208771232728828082781633960309704011687142643721373862442275171163872333862330687298605547690850097646729834928011392761071210854752176845805092837729208823739301551500834234404577471142657570746889396000415903490189432425598100454838054314366878532769740237613314736078044781385279708311761125602273050121072967272453946540466174874929366853849478760809325134306382339939034410728126781963147688512857126136987924346747722181634281834413834755477925711435451774971279053607023522002959443261302936810104385957106311659732804211283445807768087258724635283205017551237364810697962566167005171188769973671137387553909382484483239979147295539806988281414614777473620072351946777336246834126864605738791347454383699513278279240833954880603652822647657205185429470384688316336185980331831485329728669941058460048377091306838498641022957376227541014181278590108328728762717808037718377967649141416235835442854945251005103306881326974695157116202218727219985829572557399012186205415625996321683248173288795890072661495057213246383056257943772715320922270545249064229492614130111960556469528270170604039302561326014940636734524636344190373067742900460627015036028356392865668902223776595927481528608682265346095158782781862765061011020118356896252378409054782099993905570957478394733007657027990689225600419385582196173151931491340911310114758852504111665213203632956185244430735461156928017934875606942591907896812439434324797972316336434700110376404804989970850558316191485489215525006953061368815460200467164650133498205505924549440637640856971820835174715868372884733656199559670676556576094113910105650696895735180269759531928674011143021674066062881627795396310546621603617646955154649528232559648180143848791348603234289030436167116444457149703142158320334997058533511591122604165616503640413711521400546058975030038762049212708905198358481613437064765023788341771662296706663333300216867176179787011070311128642770618655428254990934581241035469928273790832544445131436112167871714073246076268365335107511728509683534416650102946016542889196920077466224255899406397962499589559198708149560337167115803745864689732689580170279665186962359156557731500040906657544259505802518050252718619176175577506876383804138764073988044342731760274845425918304873765087396471392419431182119442161333122661658057070104268819310375105991673952767308292918028161619713644493446102187977056587932811537482034806854605139076235717714544412844716888108170646061984715693156712237667450724056189134323425758831131295624538786154112529422542027839880069283884399897264832178681512234364796724989249342325512499246116680237301487406451302889238370885658216150359375014602830745965437040132762147989876594204572288521246955098953417454396729185169418999092193652391572478789419656657356147897513690526323508494171101980595082635580828827411714430758086979268836356356831244489521968182135959094386368595637721649118023670103068917595878687367038888087217469282609596910600663182810355784688785838478524591217881674409737228280135444984215575923039634911084474745425770280132363336230512738254566480019745895662786558746252016510218961159189507691712025905288349091434518157600062025779090719945179217056817788324942212927567311127996057068118284657055757547895095142301430311098314195572645452951412896508596767167116175305583784558441571784850151422805108951041886828079461524459765445777880924973241366390993151264812402618729400684650399933449404957093585391133753810065220227200461955929531068716957436442039656417366252450252920572854169634086494134771029817765643296367259477529689478990084875619883443484285343815207300852867364742768688095270646161560639515083174949841014359482274608471513969763471976731157903713113947662162968010462875529044507611471633926662323870948506711747743234370823990462931170581710865252310614900685430600496760591183929641812542453516648537137587407621386850280143055214202203184077524433258576740807553851664042237167413439309584782870563930969672378973377972683757812688380214614224377959547623470161552192978585856068212003399775554486865385341340100349397908079022034040696738498395766360798669816609323876738988261426128591245000665830422691889612186591311166486174876055225674464556717118269598127436550140315532183075934892302661564521132488194761526479667997064550018215862978316479351174594265508899435951722918471367002263587425924660928911388159387981648653637255540527485120310743076832761210717244995686023850419418399836748331178129161543580108411214458686049625632889713097508929237897798246101963095196311668344475363708687740957204810583954780792867221744131197939576366046594385053658684708184741717069210409567375767203717655711436269974295284610558216816403984287574332093462220976176412717440179451742614338884136610185706259683880993473181427020229581177363221573875545390651936453906156442337097251228433804995513591945504995096400415217842528207181995061520338550863050839736768187311419197071075822397187621481989177361577826799099870446985815367015419390348044077372811950803370768273766929786663799252586459838034628394069805376600881256914323673956831862765280823294989483010472916628836266666979443935119703748323772735997057868994326243881829757590761744291559243149609471700081822599740578199659511781600202027164644280198445750658217242689894060961962458242964582646191585564569888126759150726179064942424987240065741900607514042975004926910162105532406935446166286806453639082972548150731981953097723687994698767001390728602206215414283476022111571234492524505203250287625500647267820024804011712789714629728409000430682958055889073601160852436447069605275288130115671590022695409688476711586463208165169551903116030455943201611582877163816746610746794799405375811810691031964055985037838943965790553702347384200846089034268040203963084433923002680048717693497647886075282368090016164155344854697029770012578293501237032309704896760781055747207429012085793591058542789212495859821100074825632914822767853373063903556037618883398131725114299044955657273142824666023009546556959485034319766830424771293521562377967398102981746521029606018758847518512805150670585997889427608880521498959171778822009195087952792591794203512704190277381985494547802565434219510134696650884377916359751976193044529689731942684044769185539864212282950843154131925852057833720985696153654700221144490828852754257448570366088945297809754673833986068488617072731716820786407711475952863696548024974998308652602566690317143357357927470125209899225846266640384504303046968491251690040244418493326894787081015117826369915784587838900713827584174534183276506712285870995391426960180482337208856307385068789800068779728329700279760330848733115303798748404425830492176653630064479255065042672465789906187163818538318731485174348775199691058448859063301254594456341307508169486209284637844675275680325101035559207826166828216408245244002618411660374255884709956904499502379164042475065990626683232651747300351220641923742314670575685435176555915578413909889126538159599757832016223850310260921550458120601610012166591274491110282754882336725092590943117339081000862998470922939148235722640529067133515449530489896808041794456495598578139994459743920153836468297783451101835883497992721528434354956933332618975841817919197646618493293659404721228114033571951452138610342614189542093048857263650254572226298028386129935432017422962649931036516238128876837708542838339149307725088246731394356134334444239735662842250075491924194785943894927459926936603291577033017328158642286349282398170920527445848988669067593525845677916509770254201185335571426971788447656748606980295626182759958883418479068721509117956510648959308828150382473663479187024120830325958350082691686688972262190815784717805520045381278964205183085337056688238427211782568985045864141452423211060316456722727255964796093398827844765525268107127351613182586270475015525076661523052148852820858712594749796351001802349009326176415980013169087992786821374144244818148564760527692411358877793426153939058911125525757126701735842749943619633326004841694616141845515319076958098646897049813359521606278147514469149280302184967403945310649334997340048488422975262889448706896543194098093519713826910411910604580409969064658425558415124316356022463503473250052464374259957143031834269554327884613103991279952261070275038544394180992271606607143520590104599727536222471046018381677683045264100227656628252243807155026888319745165183811156617211888233848993598979689632356995211093264298005964704532027364013060233490055976585030374627526627257401766375557560200035472865572477216806444180714382653691271858889925614814627601316181640866087479861903519029743346449947266471032165746030868028602615976339868163752182738445532759304314374555021105326496354982185471118393647688888666514312777678116477305363987380248807887021015825021782043368913754186348497013812016606502291370781363156578278928247732676981277913647960802863235842149686327654192500393004471142260478389252077958531669047984731381014984338444428057579890603691584086490469436160448088365987249381365872625455193319528052501974805216476315045804102974650328622670011222209512873087853632310881841504671263578616213681657485700369969970353918091943727095779471058978605472473601702203230101705174264648432398317391038612100943309702092795324181881247368369365961493000590919766833150306042306586930288358439354322319123197442293423771517450041770941592122150882747008654399114702208824293640815200452804542580043334164408751275930226112668969261877332120437285033242076191451457414890481180952661908005332321764332463596478805197159911449544897953712510659987897921241602637381796540905582478763070591520500539945202439036217530880708220603300004161766797216340409540070923203658010488196483534934218888597203902807180549974817470767463187856302743763786386379867083283657978119411557511026507885563766214635235068122880727071775634104063543712586909808421826939324410443113885951423837438409116700414720050644100593955173448301373499404948891274937940948329804618069073118857716268907461252629516967873721596951422785019874036895939188594591969833957594398310747769987829209780654420098392685279147070529263694522697764749084906876169947398562315725844394086919798447340724581433458832945213029199001111527954207352334993661570205793442973972607982846070893293434355303125087267153170927043701083420684987672785763186635461852675931949590661899930128594506038056749598755667368541268326004458638095264874841896019005251409909810743928287727963050626127384766013844086451565524661471888161032592416720617910977773485241024711857081539792387130553875360453042665408795072877507842348852545803492503996473749582301678472881867636975193379497670949884329702641926465897634354091424469894137946204512486315013356130575560441163859984328043225718969249575370982359957172870662114269240074261077591919739128138807656655095064113869403720689792112414125276380811634293040326034596572799953708068593113265543517633056954439857747444448528469799732266684276191299201667114014105212055621550098726886100917970386854130337019964488602813707038995502419930980755208721483284620620971675865555020232585391589680496373340780326407977178647290799357479147303065632546144865260740815078024111727741136283342503083158825893327271181562438851137133524368964646176736706378551849528892643001372894008623901376717873287912477656571913988572542418407136313911500580035678395320125851080048833004763152288176488776218163528813288481605174790860408862758403136590185727605109246654374954376549816023596417998828624019471739469626415022298274611686644109355434921431478111213887744811935049002973958176384609492589424640555979432795432595578897029780221165539000134239440656212241477467262258372026787962186195384877823999035914742861655096561235753918049578089653481725295395074009805053569233882030349428895645855625629715646061190356819455130703545980655270544794466081711935800537252928524374111994904333670602880636901352362613112561925885119575800453365165742697630417761936158266617760816976166238884006099522067470094528782847551792331352946634990033151418782603770031525500154260512519005518397120540281731352258524206619470148080886423330865179470080880170465111048830533434544706852842620242054023463851217640196271250856618130806003466017488580808825082575380936150522043052518763891207488891901947490917993563640230931503516582481712381962372901692615796638699067729689767609680522605263042924840643689888138895882030837370323543855074021159848599067173588981863562490966862850099700979699606306580806156816449965029804474607510499298221067693900617956634386075913077222404636179846781411979737978998570780608446320649482730027268971962801547073658206769458774571252528929914025595311793112165966298101697263800511569392286027866818403121955077848584837792217492054961062549771350705217830659526681350940487887148113374804447157810181534041833132787241679296850575884989790920009863909329468367609276193571259052546672196426705457479605905210507959771702140091539833361073394063274060706898481049715547144417675499215031167477872378044715178498927147355248327403101013901332540921958116851507791933134381322974828989104549682197900700456184077152690693852325173781405279358961773168943619735572097875487841922956802488771991212924881674010629916693124545738673359753385298977413901955535267280420982216591315889909472372141783720336622167157334995282637668212524847932893618250753113386740204405912991140178193229340651725946578240232711804143736572868037343993026688213180066607891187126937484689727647500949078707097299304369957478743380426267442422026585784226726357775781858281228431504056534465624414551614629630871890333927342372071943564827354078346167604057316839589605512647732044262832357371657829047199524686533540103903056347550341223416385786711880511897742784214063190535207423231420022375612436667200134668653248073482235549034601131935310667781956697776155779131063534663957612872658535845102819818832438027387775721435393008679429234269949162186228610094440415858326536402162212258631616009744386142277636255475941088389095421451478295563381291819259122667970435541593296826250251272957063336396398414093346396460005470607824936381403687379477457502258645578246042558547006439608004536414060102840529740149961909990919915000780087911231897267802094321933396674116324519009612818960910788993366788118911968893609110681406139871599866756697372501222310934731572397111596562979534589084377367536197947709472517921525715816336453545503881857037603217009643011987096533454390609200688524291262984079674776039910019090048605358119929481459183649677135591121179395167950236163132228344839999882491737790941207108484234681647601247882938349906696321415249139853731488311707766464140410210761939531521319208056047628978960078278174259509610197949435151500688324224495517276282582253200219774977957819544501622073758958351235516484283345508533886346670676175816144940792305213155403637519573048030488716698686740469541216051254052442553408423398011231203411178520396507485465577084496065044248809956377650178960763636272897851123845661901013653938492357265875983531916321514090693397530597250531442012321606497357798916652438710760067212938984205521173969992059757399458199030425451875202072439621375888620534022177611932555293948825652267505484323350382103258443616476643373419253146202669976068120120728270163150816015256393171570674796580905652797621305592072662962652553290805374010119546841653264876239382320956172455516471037558336426604484564332169329084520620646331920916501682192987590905740501793658137032928110027682466638394377642554177010358737186887664932615640892432938242252486186384764564457340730125416417987384963791193573368751953336393958260822740958176513080896810727558609512908373430393560467886818860960972408010275411922485789886279690622982023161316834994070053169004171989437219243278269298947595199430504199330603934591407176552903397285158044702246041134384785659269047541688707542766056477242384177484885160905870868906226186963457509439329376923266358218543763693298463053906030088735177194139214757930289488282711207802320482308005968172288216105913664334143399221030531098784278143298548789312792086382950645631320965259858042377798416880911187430647293463397728915262645580670069136849036288445028621589082940449250924562851974251049499749740230172522694704355507217541545724631386027072820173182187419127622791675213037366671970621850060784531325142475135990325705569472573250291675296939221850318317578905351392749854130023443730721623147629695192693409752629807898479252942032153161373560989856484471937258064017989752553296605904043501935733376916375548048229146347750394392686807007606071892437329563397002105313051884621071591050243738668474112371637483894032159483723039541997776973056708810634838594368798940487695113884589127743041417602052780558482654693920894541516839033574745375788956877725648113587886288260747596853796399007821065800362336716825246252013045841117650537162796173807103662986717859457380190144000064285494178794237187240355258929810446975528428239433372369518294931339764926724202044570990760135973227425346850237495620623370306494695917795323796842407655554271738625019493109296774594467782499388082616971315492073447388367832008674668873724698718353682182873686576143124359186852890615800446589841595026716879409886708428790142045137043028445383915247301141869978225067198722083412442406018603116910032070170080393565822991567967501573472470559093946499405221477956855056766202287459017755816247036297330484116747252492284125382537820736676463502825418735867924054319285716286456528789556991689296684355754682450952682218266860979460406639606457353612522864786000063742207401286308820931103925980757012321588066486718392437556528703497611110222143600768824541050751274418267276608203288980787501116298390610556722943605549323879774078313266248185634866504189075171380341925245142882520569755801290063002490251850981090875383416963763118606080549985867804451798925774957716205968802005416460593629137179483951707944830435640387594247446462797298902524576708052517364053808121197978209102592739567721330567731411333080025523733461263382769979697989198348121173697659308518144567196917564688494987920658677313845670458115102425684369839305953540738769210492021305722739707246739921215109549273805264551700121279611633416038497844515512799991808128941362999883173549654400354581812352280045763638119272165839719879519436967348359069441223348935464132086915335823780369999712172624140418452739410974196061345218512263558965738093556026920054635377948759040445206033968670362314152649342761958354528726778794486978182744248855644025121953559840540558900113083749160955984671393641383865971772192290501718561301462769241644770615633937061395107395036383415864850778628635277611296003680965458839619700254137020627046501517369684253531437539608549859769292107331926151531987733580232118155865212100337968135227135539704052483976543518561323612008252636443930997503373945057688914115573349822535198818735720403251910359389196057279227608824702019617210089102570178772771236646263944334762632861764244149423707073703623012600401177105715772878335019115103062619402021884076125932055255920679013598818408480303905938408968731679734192869138372864172000272717051879345822088373297684813576789912976368577597843875198123788756141921460508056213223285339571105700511796305002614888297705906983199169623833643988434072535539231627034162894172530532969997381162364817560492037905837463229084964144546242296945893662117043228671361065468064787480937051474764753340149998735303707021153892746345100438560093751251315975724267371681018319094731602361313963643547954011067585618005695632876566613665264610235496863094536604876070056196791527821974155190271371705875964234308423876703985281368612450226026412035879596098192106896310729683886906087545833398270206005874576197041726440844385204953300419096880805838826222165335186692255007696242313782473996094240143811355289463204076359185415938934232396224093525240648512089487988687621918672515452659673323877900439301755921474108171195064179830043005454214898414775821477064755693520797274195585675568642783023377070008196557529770616147285160004502374512481726196334795172755444291542253731449522608560104691306115220535308965798254378486144589264235641777298247111813036338899783972998125815357116041451588436530651526138316775068972058990464749285498064566973017245480483391160995947930637680194562780474653039522537703084392213954895307586385440788961855939213033924863974777882145860616492731765798590246156102523877113891947588484521505655041248914488280252686535539372619119194381669456546052785424585037521290807962440670032196445026997109425653255374984711774539258191592082178505211942099731877436642891248888716065081834984895935842342625370101307206608102177590367817239159462608865707533570423999612085840314189478987307980942813296068708443897884864983184969787526989169063266007945934062878566756902294070192664786328410242110319342608447131633638729487715763788550099487120049563096896346979373629229954448060306784081603635186674749398966250909467921032449749035297701513972678727905702152915400076931041960009489578131698414088193413295655411490073569450177689985336721178988782875833373215329846322834969702550300288277169600114155534630257799028585399787948015965337128624031696922627392700217051286767629869996623824312351309927760311309018525998684085094089474519911603293552788907188117775187660728946984107177130046438660048687127802429569526862732438739276500349281640082379009287884053073816975748579115611503756239630160220934717940827170255932304506798721586322627999154512472174056328872940013199514366978258013915891099828655890520091366382926617798286484379085728358307878730599929633274384937698910339034299435769119998455026954192135378797427638931751969829257544037982536402635604677344531760586526800254215120119344941847667481572834046431615992755988440923728546357324144689955859299583986397031066768470541156677377577480792046003737836648914809301633408112970450151810615843467684607200815035985344927996311277357804913620213036224579214076372658101122857242233537652950160743873475454514866601016049928751527268471983116233523280376719817203884165675305189594820864643965328590711232462928122075506051292226568401840721383150371855322714841630954879356625950253503757617131930868398507740849081866876708731312311283833350335995765560962562735766558495939065754891412091598870425493756822881786662900462151585847836799447159374208919577264055084769972610443376020766790289871404837984204889159667414630988000975493410781929012239456559590614302965641871883495761975376108702491237115875619464668742894359023536002444991722076989839319804185083687153998891077392188760185159658979715579981144193451928647358190487318340614818789425267255051522794937166303804285613973078922394523829780020862028197531665331279763174747439458197436384668908464277405403728881676457154363333053817027965217757833864367472022434431584453512817181717225253631900861895217466119922098446169516187051765966150375814348036480205193471633647545391524839649935285142035833774969414024248796831543943122736223894426853467033479658359690852788702070072680544836466752584247619592252598960878789112478323177857874426543864933279266611660781562114332949947942893992525126152952632869465595839939985844191910112923456421149481445601751861750569282423283920521863978750978683865965658344740076567078720617374991893094915835633410549400314833233821201615425471514218548664523027984723348780575504412663541354937442558594002744766739355679409283662079959362590552695096264346642752021020569661543521032872472757705504666629698233582590543300787452504488390241897280404055331256192229149116915762686899874377093460420564172928055124489249768378270128918352398478935304878160789754312073565488017125777869018589257583120708309130376371019845152073804863069916834816625410720175955138752310743879947319269585088365189952667686551017110427861791671401412878542169283794343830197400660668693089201240854817492319165702423092026431837617902354403986000691904320689662761393696043170320797858268397449496539496877398359249799945728993490468323997346069127760013081541119303660318822128891055766254969585706279355691798825322380444247463362242579619544542456953025778577055928295342217517894148600411096967931001829105342255055852620032757473218966922670742880549104612540569446441600963279697634708932741566616983242927730681761120903827843567268405956452403508099388044638902989382411285790961564128976956290413080309712420405960248196978383752558066869146406800531231965414752901128890355314365340776830182542458357721736074020603285509805022815780344918401427291446660767415144888731226999366391722121253660849698036885404961821854766770802021020572171371111624387309049509562455378508971720718102136564633508054512656553532491063714067665890860711430955027298504610006890495891550242128252692008027579081964364334252912786964610913483558232170562361195500317415141085463302738741649586381478024184549465424293204979068714228966320382660944082037983019526821922640716971481922301306410670300668366248257889576566739974892784232515001901309674865863895496907323999461172338059596475744769161762571516250823659348539028699361684742757986516413713520136393275332482318382236811558635147764011363407841524411809070357026723224313001944358091770562141462537458869421422968387321411933546202861570801626219012338476598401388195507261112602412851868765377650822027626132253231041657052003422584241376806369485995463058798779689911002464868753782584882978146338043950461897950512315250995497020028775367114277508554668792114306101221410847473780694823087826611474297209851113405384865756673019139497890839141621199287230837470151409776284596086362678677937422631379392354433301799209608494095402157947597650176459439294695311997237413336075310598089682486585898606737694717448626633260759498437568422580949324448656565139971621092428281441163477307458176307366583822543278499860488644194373968082955259799187841526773963227442003316690911837120099361801446180629499926226449759102382780788277893882910876117857446207260867972753355613003151910780103005103678542690668108295650751777112657965071310562852661876300088080402561413013441831436411298447023986496982087027558173196918514938239438741511884326833556915419846778306826564066111946602347293128140390392687207905890255267778263947397576640655820365686640669941973448857800937185623420877499889577711447085539269594046597291771567221186845564891238137242071317691523670990870009650096483833454070296426305233059655166096503540508690070024637243605997045818251770628675455514337283498076208017261106178194904553767099489388840989657305788601177469048167764773079125144240230036815211867348364800130219538311295443021611241556395580007461663637823278699085340838076677509697025073984302071411926092230764824618829639097375263628861991868679873625153672214802990231172576703526998348480096323639612238255840368095601871325180160690594785609804064011052077741441290482255090096900101992986035525193590995978588612322064272559456105700887598769250790192720553574683069744156844388733828768645738727430663663144637473148692514599851927379523075253947320714158353390696541646628654224533459243262564943719732385244664231475973377318376205306444097238627379963818817119691485905282272104445532752466167841761865809508820966095251115898184172089760411688388960584671347002006646598086638354012929684761066796711448495699169580947545995040076170646667442257462417385285056213261399703024736473410037196751138848723658637391612441570961134306699503939181081372437368094923794973992187340232725522923010003079540940862576964346425260191967349660655271753662624445666717627312108239648475880438792028453311353589765297058207818269566608633020030904411310761431438927726063038008470910455278634865777002889853587812751308749974678378238355563640620562489904521167083471081056743993668500513589930650854451305390577244781237453074436969815657493231654200650868378750390039198314028236531149943320133259759559859316616830646292227539428563117762410672448095892009988590218810006703495362563570214062287720848481548867222849741409099799116285199254139401777096462408288485087061347990612923981358290969464894247438242614456608901680186368439896998322365334614070150076560381040904942055714166327728686025411197999409567941717802004010073859270975695918775108824091688261569351307956697134270059009210442753672365037026074522340280109957582474724188426806570286562996520942573135508072480855987852494776038513759878537211971330454512599334281211854516237476026644418202819362997846161244801401802853092945655015815751845647942871164441794761870369982044574388004888565223039827114203542109900062080394325187285494428894462632519460008742022680617914746301932221891076625023927560625041918157617792144572445174891148629729329323246983910328571316164024963751568767297201713174098749695917553971782756895499691243871443474498880777164067328792791626198022888776967235920068762522554884706203710067241828566088863665277408251948426964192177273348107732217673060537284409484162680508703229578861372674507286608611172130687714480970444290894636685758846128962431350913372152562676616610736693249497367301625139192392710300061657623351787590526505448841355440705561820555571694899935936187422707509029138349807741421826735569607494758752960319669209778808853649494229296961438566528414987308193544343753568936316485659696431651180212474811900834167821395319147602299870469388710695262441468863235101653238459543347503904763261016996245630071541736803889142281594115735043807504550110649414508041083183281946571650709720134535465938282643378488607652043755690760979164306752955446899488549863416279365984710731129587746264546285498714211547111351827838634734703354485139312190687711698883209652657852111511299920251038618357607636384853632231311450644949075890522886090522155584970243039311555231807637147995717737995569924170410264958575867099893055036236534622846176018387273691541749320461554013633233226244706873106465275179999212475318932830897701235033293219047458975863825251701839829046689319956364201426682937904002011282959110394088550203958931922309071392438891017932187987101770628051011166211483584474704525785830935002990679813287822842853266445480943841732624824579857700612504598055145530581417609874302819164519258289671136495858063618427896983100833255075683574636010631062803939594103458927129828148771781105849964608298315746468387616520689390228714092094618792128455463405456095428832550820860173227182152718480946483823432045860244603830721398469871192481643221544266602056796818148810213724839277247382320954348831913523806713522753184967795065021573957757840405580789311945045009474812472669139516655303680730296911963339824060901769325560277753641214673595026994867299108416698409443228756465833682011203054956483485379198899780682353028896097844395105005575938791069702604358105878601945200956306800515195415179921680968165169072292642529564023867442487571955152139258983552083561567867718115390217100705051409590655706472334012025648017235145145966317685301033406960057803687970542568598425872701819772335169374522162869669100577813649069709201607686020067810164074839230145163421503329731202607274482456669644731203477538748947162717971529372136355970583858884849515070599038403527602303308479539800373075046518751568521805394330109137703514951081471457724476939424270527132506678443342206848434223845255283656641100314890284574987925289559646271253989457259514274929794408557896420466728209540280151008437658365822057689047289170354684988653554401218353660238354779893111153974721862949793082557845471027561723479836269965816425405856920321343401686087951533998032484984957377897641141565029932458145195450139450976656507260051983450430260780791451370636600430874361516750690172245566832058461647627447287110828295954024241769742404616210046414310918938228928548900257280840838053346555926825191843543725183460864387469675758152786774335757953626726484816197403408407167642408526589589174988218250439750584033514878935485348590377669126094156057848131441777385096387270067297394238882853650676559254710677914284480573467623732549312823703328104744196718733054874849941197883194632514881597378762700819659036723479493449166967053682886758768768082173869956716793654855828158278555135336090734609140858841028992268875357496861706068048860398609392028582128182723880177687965242718067695409374124046185693857142174711688014506433419430272722544252210443645916239170052563510526308379156141122165214528761656459576624442839955516116356882228330410725547444573078345221329473799565340820271086429750180706422317225897949099490352930246810063354144003893230243691824363179740487859083333094814333995976570604671193400745510913673930248132309987663506533966774299059652573100281082636155190894830396881910095373396504737261136131370386272246689651578421910627199833703121072446502320981884152912841431009730488089751228068238431151895434019935639135871528607129136649692577866374456228187284817097679903701277407687449766740605937403628587343018894915688350357241757787133636427172024134206926848837133712413416599580811949821305501323181273515337037593890681054179666636918537284865926089522344196720847208490277073561738934881045641396895112894670703458121515364671732295723894495606501755081056866437612961892515995888948292615610483209088415714927614737799485736451550480048169840044195354844300087984878473119124193973136742652437134365209840762213295917549857763399272729518027830754672836646868285663855915326495007519456428414085428362814711925913338764594796615248559064636933087998027512198282299663605091402570647591477216073818382681411396280996418807203248127483256244493938461722510956199289606456748357631275641245666366741089649783592009816871762303997290185175013921590263253967077081350291647333137639014650732384081881094715251013292385339496858305275337346573610594263354296965464747026596994985424995934920437797751954073781810432190369777629780355625966781348200673086871719919988164694434918800703054829452894787938320423888786096752729620620839142988350694395117112065995759806426152734029956390381214574402302189649408610625650678667726862720285817489158420408536431307010251585968725126733053188613364822203767936699103659211424236959761355555403962588162288755747144366104933428703199844595354768386368198373201266432234421466373883500956860014433174758315645777470616058385087098488576130655776587004383204123891847920473395708754857423646425852946299775920013644988341671155211084284296532849418388808733603261890988065837095144463765643738185058247482681349485939373973181311080584078914225280846322180746422889682991242695458120339214114318642656217183457095170725548788547920501892260229207043945090064902060149686248842164186712048742872623734052900215541879482457789074493332582977563973174429880118711446345110667893562878877188101872578829224449452107118033429285416223199298710131935661255101679063958423357781512452456264350004699534074947190248102846709710976165066909783105991586872274611165272048925529704086707371060268980915170595876931122769631705479638351865908413018310690416919875406253716428071300359966737315088437808702835915130076054400223884441909055717079626156901836034271477035742285968235691971652634692150271862142511338946170079778093054831168935425884715054232681849723608568639495674618927488299912195301305254175984944148120785016954829486358244040555948428048169649925883628921990946558945110502623955519935204996943025954119426244931592164853708318021645928302264259916222787589535254313129030479623473807582366470693271866427978601340618030608183502651076817058865520530856776352088951203307475666010382468752225779630560237802141342061316522701804941634102758211339781238835212377046187707761716740086708694891357200038585357638290525514174344838932707578950770625033559475555957425699004007585937058204687744827343767180110069829206544506306694018929007146220276299857788843599457253281592546901257893790914179445136043516595648666016615925247234790186485331357253972642196807670662432973402855209183449066248767646640642782477934868501731869522084808973990467065298075247685711024100527807306191461379763266935287807758942387167779284452421769663499587171348092868654925003141211211207154872430462245858345935794844629209594713872083758009372357084005740018776555592655557008431360374972353086450063555408511935536740310058541493476810891677493847664136260940616289329149009816066790402376031249749835784311236642950895447697141106247487982708460600168605421898800121005622184257034177831751187422752497007281351593100362293053081007237583248324015537217953004770978841988037787310687439664890451380452526015659032853552670609744943049825108695928026613777952808545217749897747789650727837151728653760737494524113354016301565751842247375818138068609013903279131745806393200517048954639425069338453836362625807965286736763865334480180355803971916914142567388454416303557922611374150907441699104627172981796530040072238406653676642270122203235604559122666812347710419639110893524750904035346809975970846218458624287755564989351770393257881039364713039143497214783202926124341819273357815045476148181742285346332810628427354757290052069999679594897049420975535950598375911665994447827288722665332710040500237824208323979202252043673608629773374013018882754603327314524472747875675488680742797659147412863324920917001841944156566163995489774271127738372970075453484426800812729599506420176155278881537398094308352639383465965504113674161967909294836656224207702834358102098762413837275363494378032549170110198694570688866550127495110818217731629519092721832281010401080806254653987512717713881118724769370849425434400183359189498418664865955587987488867300976447839540225175257728409573492842743241305510588911706367112169498158803466736497590159142343755617053343676207506608287271111733346708916219782396260789335249749225420433665838062744596591695940227437524259557461550756017411381292454263331080774507994523658219252670164593348063106230070060249671980742565316018300776763197812912258352658638749087193476821110019931831405526415828681303918769634469984720035073936265039254866761766505892941440037679974838242150180069037816701522512441370885057335466263824492319940791984042202921686925800060218577281094543789840169180119748284400886885741684663537321253249457609674360758942238883111711401355657680569713255656410031960556765139928664912758277327520855650075377365727799482457740995783141213499646735866978191758306143706559590766542749422159589579633252777888793318364862350043755370291301380648058945392193357012989118562363169071943236433493993698964925999964455946120067230050283815379171144988331717439958675230583619232427360469315053225869472717120267019206934266780200543527613517506990839856463948368217261781808885380686063858437406252573554424774925022037834071365103004408434305950390951702864274136531098507344305138056684838477117323464821810919090319876144611937746844311479082813216815454015189450201720786539407665477035602724141979738625426534657799612206707625496926129611015229118949067991237775710079023405752377596378305242390408037116328950614882171400204843254728099129021635164578359305958557204437500860849248664557716823463990186531602105194856385718636798110458224715850931233711545177949315147075350265097083267674135010320668350043978802738147284816216943722230683369123845934540244287517500686681483795853173320207452613614965694250395097467494138459196078742789773327145342352799640097263427091102136825240903646701150625500365502797466193502224288224347936188919868309230642635545061554092248690795805823067428824158421101960911274249357843811562895932073211789435244688383916184319602175540515577550210879875223572416463134231096344505268732391006395199041242375864249154087833246426260297247607332217250828692582311486219399251920585158760296911445552547585804711449686337480954797926502315569607690781384282321400641461471659413696346742322903122496830086658454950475140864407068386761041391959430756476604212561226806109291054011073559820797795635814013339945821613181977074272778027134210183140554901868805285659145516502839697828634621268412008255366135139094564045413161430620274422850996955637604390448051849341188153166012791302161756282791319754678204212228539886662203924070830862340449103082261812888125283960766784155326683439761984943573563153904182967347272462123526479359474278011580912334109140039386648167378293387552799421440691120781066162627730756924841767456238601438819329669493526644088714787285082150729559117731692403572089581258448562762520808966242245481607713215087270783466239316277689042434916657151212205205502677545872989978783737197453910858207208092560064780091997414432384016601935789486116468127168946934048202033840338946724361208911582515866235204914230988490220401702016442125820669604903600838970844519358160582798544600313750062410773573277958226421491850297067642779817192104186174976398107346204507137593827398256919222587737432692256708468821204971934953979058169738383533596880683509179905931593164048757207581350383494219106747747695151461687425119588188424098515523977435860604004664461173013922245463137367356261718853214746356613994021112717728281583953943388594022842239408064242165846931874888221036575355193864265253601462904472759625803380671448556856612290367963199442872127268140957698573563427604458740668600099743199577437888122081594569690330382522932106238519284146145056658631647880091656880348783331658549200018134240696745744411673557967994183696657921231373955949400970591419899123387015450029148056452631793606896335249400355363242315399276499487238981174403389200266889531368663154153892216769840089528166946532804047639376124169734476714931441960098943979374827695851428984921291704833737724670237307620975591514079016777807222426046398248853945767456938249204988351866700326696876761920397053603932644793874290226570545701186233460508382695325708454290735072351969624549271739382201367039302170125673203790805658578068449398852720687943149766506246163207205868309400591868838111917861073609919368166641379561943114731124297347750894467793130568593005104138026807871619645230840070140315280321142102549121794941391214756742115420490807717997373177762403914540887364692762549985618164598084265661566495199594092765686814835753055841229065303050771904353952041744761445269852930634621686828335753151441072722108135210801741720526375384108976777899668862038124696389429259855105445891662109501589270320272275090021238756903523782685408371255117612775154571376201167555414342142980615093170559586366583830181185182216428522169168123324759571531437891200752135418992991500979894454838070061922217850017145526415851463571987543480024478733528910366026688988328138525322977657426032351428052826244974122705293912937140261295249130212255238609376069733067781888243681025266996644490364370438012730434489658165354749911717619870903941582408176642811834758989525602819317285624256069890639680433944613815708027577949799704474734616360778385696670475586466289555243489246259094468195611732028041208378223706909915714233067136764303344825202178188968098634605374762812431096180300839876725145723473409796371109862949743196596109727641473720700137588763192140018543930382545595816752698041745346810121403720649661010391970730539912787542114477454981900831847466455048229741369973269794408227001902290756999027695925744239354290954624434430142409296180639007989402378850608845292102801284661080651906627697764811119058370309018372503194025137282863565285618118997550353911026217922390477133305668011396039269713494253195770881848223713675622430958018982342572402914733048441729735237777218512832286317419205040506141819211774587787953150261207034328410034362978552943899474350928584175338548253107777473813787326303947407190318050463157326605411779378897448682024657626465866825209935641397346582559416601270763207589973795406201817350646912294076765723270144347086413863835208114806378889156510128109267894563117480194891280012626597068148247956479231716700231327694312352510639295129042604423360839120147565984066455734971325900122113816300007719437555674987278045440974400773010298463428854774707813895470480793612121846726762792873493910946676501610954099593443226378267759402913490820727967998064189619500146722650302119484804924811754837476538372357861118301704079430084984402537658051163037000574436953212951173827208447664450599375730391705287804391288070097645239580024611277845134089585819374105288248214910586349684659945248718381839876775636222024274621295566540324773702454537013701828445760116358286205966853811101581747848453356284015577203896679546888669983447751946310712623188870596424437843181912690225724164197920841073899777180495174328110468218333583505288681403433624234706537782397442157542313633198888625023111616788771400866968848154643896875291719520016439137753751026027210988334614194737251445398243946887406299024355637321184064449582587055216662631255053598810338678255674995800263714448309613434410888944372958224039601509175745103056603511107351315492209031441398383896473823438717604321158883189197727258996967670432488184683150397317683931497573117451845428853822699849385388487449937650061332026496097511373850234188811006294378495923895827036876766537785468571943902874773226066094477011624077577889761453496702215255361610319154070418601698999268444626939982329055512071902036919610577685052958968148950054203775360802742280961128332275212669800882250927126462324032480602690459501977201108735893649249060757291567249074918146012985746119831508430481673477855991825877462710170578946768765437036117062515219744937596738453644993600080328695702062126551972649662629882469019444772813576737907709758707904147823439252494131144127545297277533364335098538959091817175472476813932519045714163261449096446183120322949453312936479275258647829640960533368624466043254241385707505595377699342222461375082955434439382160425188048360058319630963851955944908298515849452019989572486171311805170209600271784865386737490953120142208413803555430230443330126739717873336399201831608494859909378819239685017565573195288040760833760512719809523834226666696613705439493682116298421450452705153840737511111363546497189096599272284343273160504778428254624390043461559371567023585010741203904322344053329454629444353537742043886705154932560404853019652670205526629965699350428319458726366071744155512607610725567186499724671070352201323162522587745300999823188697599445567944216858690382177610684014862590107043965330413020443010863223885246759433487867507725032215351899010760201355474014057430213388538272781890888960257024581187132800861635703731104443515840113590716164242032497307202665410664155539396094666733835115970140877438081061588264613663939087493478940815113530727799609912073786225874754443409479387679526965833481239856654888282080387157905020140881552052827300251081251280256202464229005279248327603635124919703464217214283999461776665737437434609742433227432567953344879124823226555017948536851265334510636266134445103661476070294171499280246140656571482740292469427714608147796948356361954934936809134352551085623206931203808941718886166012048957821056328372289480830327166647150656302844519282200729781043000362218834527304938392483671597262385446439657468299857851105904659960990609833631153142624646172193408058796020105047386566748313508865475724987220120634827826260696348944141289428072767675192265166209292590140416686105965313750342945803616651452211818389559171883029475809495466127895588318214075805497949984147929092129850043913415453165718051807667573116512261497709144923254442763973433226462761318742251378368949987698905836927742725707141197159452502625740783768697198747086120635368910369945934636898947165240995518602238000310100430416541983010640083438164519867389961179748766452719102448127149869598671041758800340603364196661889823234049762187337134212289190925795516729542121854277450970866621303250402371904569920513595317848632674398468222574236884877094288970285191928956615414919910733957280755407483942084299461674478969278642153243900344088710469997426358398283959912120786305151998121589648001863872772036150372169101935865219789427047457541537007762953744988079539724614615282058735141639477778430661103494255463948188507241139424894179064116392022618507096581926170497507925372062780821060116392741664211948041747807121464562076967171428073959299656104059211840665228363455146855087978571005179647569554907834988875637335001939272712926662877728647817391339197545394947980776405510170969617611991293790433131908671528460065481489438611168535755229459860873435489331531964082717178038363892396403383766170655026627936865362262368533180089288028471579334988006319234880241189391198327715709765032683020326539471275338080249638108359091953540311400948989689609267098786489295380776876133692622557036637116369896336771104513080697817844174177075166272482972200619822948991961304943882585410344126521915053387998778444499336445309187583509827943431394190341392745807638897785785889025397265761246936479726523339207252819759392722580125337159854179392988609133100498578021417166623029731089737813099889225326661566761063593217266259718275285525113861063511735175717206556588101971235796788181726796099071195635508190632032010878602068264554117337333268889781627216572296039241027276366024169248062250774692502684584459337731197344826231865851932167369797684784419523271976916097467057104206032239443084812628128166511963177402367901274396802589964124341480464048646297698183550023631255708308798757856162103966766302966687913548695482381678661641606244315313233728606770193772762464095398291828390820083790883436207600611466199050118091756664780507309318407422057800794981842773758425452110701314070752575723250610252500557954485249427191072360473412203592191867829203263307008404641212126280623940348409912871807569733729709931182471775182485222240157026340348452662563859060506575276720530080321054985978482121288634847642412785321299686092150946120803466264380996013623720378537757909647603542583843537004593518011385814076240544348417502176206351770399797877688618112487130103696230331202999467120835416492791670991776128123656509430993551354288054058128831609129644365120778568541472941882675833712001194597086795727222136175936823835016716594623217336627598766373973487095177785130723650205844530699378330196509867803340241276742100016077013585082094527289442224884501328778171885395970695609784161443656169894656149443068366617687138281274359176158694865477186386164122962896283089894166986436784601047486802006852793350687798874961648839356701161195874693803103272275820496514376467443180122824824329622794042124748021835890695263231491431773813984551010621517206645306707997201026668184870040780160744407058987619117360008280210363200710999166751719547344689329649883949941465596635198033493993974873220931213684998950909091064864717186538832821327469209239487536675074760265174584227044225324966957264999886897583423069798361877794306629267406146739127195941445051237597270798397511961127855064936479506961859033518841155621030030599499575504021336579806393821686243780308595266190768644596788679231105742683886310519515671940295681545869136249057633555149916514346874338544745281288398278076648630238586667501954035678447897736059082255824089650276341326640227453237024491541218904293934058258219270019515545976541394964570536905090500293341850210528479473793838021003622024607352637819572866571442491928620400427907887718016635524937706757829084836575828484608953328354673756484849147190384429718762715977299333639658955418062422173871038023487435172109661497845840481945652945258994066058737043153865233584715565122193050712318137855044629866313479218768226557247103368450315880152693156439298109482822502476777609583605002892569219272836263918264025926250723616023234186153270128820963435482824028988635722358241362913963599962323070356918179791313254367785971039756161202883510299251841297940671536017807248363395761645871432822141266201081492641946797318624517995297199212408194520430393505482022562773522491441389393909521153256130203353364407487533171388444292038635130742653160583894267280183012273089835234002877263436852002613290370657995648188492699120904941833942227328240009775321676645634104039870137141622527980992436035507292166411539162851737429827915828456265416624928595775991394927888865428831404552300658903726579569204390567170621088257094202748743251344863919873504942147241227671734555213168628091325724933720685705982603184276575827416735161311552647822474567863791058824272611335394559352092619356867256548787156627257915278561534431968009403384764661168353918854115669405158715183472578158379941489475079789805368414361712772532802539610274519639074118384617031558068332745181656269282269579656367557995817990798994034154432194914435495729820314663738932677389571300071046373964527948895254142195044252405878201849923576131218866581210387242799211474806352305739626209083459463693321018904370150130170798713066874171147081057876881782819840534291407841104605545175636295923300025697553921561239253287208329608060590247733000996955719064842427646213873568007278216717652821028775966304262175426957857795893546844857725637579130713703372732115738734357114765327094504468811612154820533793242442065584925899785967956745295349055734306933011745465346957270662680116528593000117780738868256592461485316116134196957943395504381403701852801307418510350164227964078067909461916385974936412258499540284965050811143709110214010230383994691353569105294695918415181295734926535674093424315277697544329489311210499870876262956250824642564224273863823987857892092914187520988014704893405773152141671793164424991588164408660377590130446998724998097369900609892422183900469461376137010949319583492661060252843805590452954364326916087659389217744172741784305087395948858668091891588210984709497503322088596336211193086443569659243794951133388565135756109370985015935267138213806415247289967124448592264553499179797887340567471470160134682922279668824989662828559571469838276507868070303499541324290535476787089281077496296049866464781952609793314702271854030483446628911371063977696399533553246798426075043201561194719053901813123305267325105996604983374724528912807480443877816684310945898773754980089891462011734608898834209708268407457020715052530554486560441157503480720857392376886789192276220580769902183558110816130249628534798376899615033823590508054832979734268967362859240493054433299849197280749703309184641195806946446065502422005433295327384993244983607801965673181724262417500198734451283607114013657191194957921817458568179110926440254392060750113416529176213397091900509836036960596232325665173432785545030191368916433986725599195910346717423150656103505630849741434528862809370511135301244262503438336554276148960191811488301900565731974947546954636018271084805152094151329378787564784507496382240103647522215146098414331359044657010797077660052830395493355164461042491305863386504368850042150517897221388876727425621182588422797310121741862751283786674775568109496172431925158250815122300431221351981985743461357677522307768201210740653940529788902654036759928467767840761970023885314489354789266583190313015587576993245648476075019541443897513121458718833604410907438877529631483658639449478291284773852646058892173457528654723921734898446597199280646802185036846265410276609843172250632286577939376471408229308152420967899924541838044714480198606490454811861460618619401045008131439981817284300135740278905899384076614078769416561123136169560581842315145392902132407896276281557287218392822044999229718432031602471045724851693222884100746636274815520938555351460968776577551058093010572147576565781877468666084011974171992608907190093705723634873491635907569451234731614868924293000807759773498195282450187865944674180137472773476742267444078018719706157529631000732378584332528465664475987861431338413026642751319617962752931436243724797372204550017097681916080708840430164533788471705952491357299915858908385307930690992917739441096821561241872299955160482109828933382316769216408712597206524732085470504782203364474608643106507557631110382119184498211217308807520730873118400496172575225192831720455217372641067068686108171503148432561956862641839173127508943971328605117212553450633103922316059084380754033424154864038568313520954319028207302332252143176622607054051207124941107372551182047253984730504304863718038058452335359354046025537474231166541494387082819958606925997710051971924998072374576236101361610661836168605804522317356717331312925988764953672468963924137207101348425840538363023192150706672701223663460732670618549542872640169764447537841727533338495597077816152962838192794043613190573551891555549257981128165252923077177185715333157232654984745092254834550666776960023726640758003189189412349706787306391543954191863163932344839918838519054971087297654948779688259319984929330993243558824610789829482485315101319920638009558439741374991239571851905854925968340956215398037017815759219912912394967108700080563223709966045759797390505577040248055739660375729644299658870068754782601838145653496438446450849549159092643922870387807617457928162539933516123286726630599072658474836619055754291073704419331866131730603620219388157850654153507644804323801214939615728675791503895231757895476635217980846991758196768912182228452810589068184234511816981019422833086487871066509591141226265841561873799899362398886956586957322387981888303120486974672583972637328280741104819682309454997640481348308397785453876955762037788792960719697118301728255533462532825087041494018051215509374324040010234942579549825962340484780491768201445080854016765904667950560703413269680759621924902221942331231115566578543439433969826448569313288485675188236168362736755135337960881167338447616519675029029734342531594439077808560208495839860369716170504646345764319415818037096321276268246754637919053586426657043439746573019918378991246312474452173979484090745548027223007237726525593652228801727882914148128362774217702058334754945197371302493975496140268619045611714457951218737466257633874356965864149728804804698031392078529350643084437981830606905946653604098743989829024734811068256198262863662553296135668983291805449999164291824749752347517125000346320444331160146739599921532323492315762954892910388398245532174296364807421049445299601061200618186428583463618808069103360033124395953773861411432242090035286412443008800390236377934022803114125251495677017468690633079127550742398809488960871727277540145138555406175699774391580086128874524777506402745399849534919247559056260585912324454615093443298220913159967167507282214775355060671248920888142249394083297701002143720441923360113233367997151446860415651287858281790655782817610232751470541712109796811605006409611617486028437164993094563422568605605742099137053301851167231502995735380368316850561986301593885438255907187555644234613537375340837396431816286348226424319996235735523076466232679544369258811736732208708036899662132307197358600151513974570926480658280229397241498576950052370349063275656747885188198573330433689978590311805429941635594054259107071885356922239291418022586826824018274264438250286554007228330412525175140645246907203564181314707272700174787103518594466791384349882014680854524168212848842421606638047982777993732289630740666297153596419989523947638383244769989952327211193897753612131259865771873100692764216472730341292043728604709835805887930744667641821018557528575860121047188713290052552111821106156611001141690038649203885843157031686641877566998752017377105506584663586151471305201432185286841682058221171791296848272096166860856299557940649273145356711477099022455838545928312061233766937686381211224352211950614556145244579749989330380399381549263245409209196364413296948672303691612565617248987650431394991739356254560070257749277531676451114949878836741321184149090728414794455512083281945825667307322869798032348533894517402504979108844929957064328846181623319091412564142556634738593925563772167112748229020456169233705139181158838349255863841787225975693126799877355664522421416139574518610259818817348257994831894825945935334346265563218814544083772290126326595514165536945220341699363567239965130110296835813928158853946772352586687036619087830099088254109935608676848434103465234698523072588432655783996284588977761914876420928143230341821291733832380631948409523323838256209745922369650602465097304918578004549333408356821929557423947539568881256767388909701204914251163671115322910764686063659304034974424298536848923997367663165918446227569575015920159985278451883649478638987308012747476234270478673890074711136490787233960750516418434319453410601277213895598438545615228559822591630379484960364103035594519577339345606787236820672229006011365414199007868568994793734491369040077618366564563955308060362112032206558924207206170288839525616941846344295461261245359461675150404057603412727112215279505856941892092298377541517113303987402153104456907836704339331257823339177327105372303970801568032774451641074393247447935601607000700822004772847491438486343121460835956591853349066332816052743450529602435606883427148950219611641071992513517248918136944708719134327911139163942424385540538895488484946367946184586423259806862629528875865883791544746217304941581400283470475958740490552223536349421955515145673733765976502946509211674705487550747503515842233837090751779044654512393830519910117687011465219314357333145973344318102977604355148661481127805933349058292679330325533082335186917742996796078102064629569757143355280359746165705934015091039855928645097525203989818814792546527516376053116712954719811825184961788128582940506673670379218498179492775815330980329901585387783245415827438653665561374786321645361969864689065804076640095596644019099584160487529832445433551123649518282461021988741503548801398473864955921836165275083506302489138778022541476148296904888042634366029892058997120826200256571253845187896677894382669018181993973236806981886778044228195921029626288140656295502823814353957056537708167204939086606965284070329046052436000741223082304935088633747843525270220759953476294135237372567668094817658535462062192000618664731926603985029664369015842838622863481612222554885039465922691393204686742821392556777967264981020234038558565737746866212070130996672450459291886186085592591012290897999825554167672985797683395113984351031834301243475322720957552013654887574767673518843929965854527135912858189135826967965139375237114476328333334422611289249019898941165085139011044707412049061546043720579702622890111021742586210262005207713929668437296747576027135991424826279297442606243246302308375151746720960381423304101928710412736628216311881669588569186698411905551835771692625741711195542727869759414663629776644428961238910578012019283173910975272606895968887393657954669294743862975747578105640166713481433657008934545598379181291407539488987596558079334349601279182770627532385163811496945686909509587322632181563216662489766259840811350804535986635946070897101289825857445995219295738143308756867634412099948559115865672723949497622271941185835177144989112139103243956254029092238861602770661643408343440128682457406230647218039726498809597686209697555302575239361246768787142656878624817786950061416009887429624606655989007486767477243317231743727404528479735740866189203187903758977208639942819343853760718256653513492336505820907902546903624868601350558792705815714501479020438595951198032343411850910796159651353601641967342398384541240068406726303621881668745553258412515754433423319083341779445089843275386617461981056277226627823836950000595454291958618313950092304782437905878338138003441029918565039222845960272107716593296187442843012990808999045416576953711912588609916199795349188849393712436036832722087453176547047490526175156073755198511847604476811870948534651067751875983985222112335910500207749637867472624933925212345428607945077207472383836430671229544467570023478692159173810195784828700789952200938216171904742596802633400405788955403665380275808745503069317075726026492746704817917688376842192994573011430663791929756625889397882541048781684523203914683528183096808079215552898341875808259947364200679341454478608264449670773919402362813522087835855448802484227958148597774976273954546929330418727043949977761499812942363784499334256968659697147719458725612956003186911937434662400845500210916418478996762846873816782278479026925285188860443153872947641338517212602054138121891853497867448176532604760958946385849005284079062438440650082432970622556517160968008118611344747231066795023457502305617055490531696837376908371992485313644936556826468021992892186849624252476711835875724214611994349181225530188277160046549565725140151284678499635458617022268271224718395755740043116874227519930150162374606980831130553422866046270913177506446911102534667437571927431497546620407355748087403131618274100658259591971583167280479285622788980638472172512520755018672058410539665533240745831994688063988992827851705990498532907071499622585851916628298653920749497201287001011824782922412688520417731593923514303989678864867878325843853696763538498974564501921624551523379928202249760832500063722348036826862393120344987396695647940220378156635613132933156555102668060708603079175777209474032940495472804344323044881188561308325027863535079462627977022388635721828308947072871062211974891706585762277382575239240675973397402426177042652861387115819836307745136862991548061372255141866795082282624986987958907112449790812352300618193047674756434453762536812405480846486780647010327490464007677726865946464987864203357753442630039895003663006918511979438670726481530323754866994262272313374607553735958511473135290641598165193717713990718412085794550486119008665975061959306505532089461062477356163105628151850555931224017591466655103809504469934800837359427676144469323108628158824481154937152173285419591119956179287028129383825435053585336961281909577350167454363535378913431741195047108316242268033331771134456011588487889769617644004883444472123044362192659965756901158009745036382574117236214333824690677529283635495090695136975682269574479454648883986348878313042595305531411756257313593351066075769069635147384960792542565294797387767723919569636958484675749434987177973991254139933732284974835852749550683281401313689296954071775825575100586705141674417910903346990701272089129608460138374984469452530421307495972241690300808239383785208847398420538503150331839009982041235049865919573792986912057652050575031545519095193528000063299814253386509636574925524072085624036557355272514776009917249733151324078765746343624571286107914453381627153644304338471338010515063561580443376267696857384735174979616876986155538522301989421971028060523938092875031938729532470584846177380231759455868186255637639224015292768612208690931552000238950314917398549128007231725969392506343113792032087408697364380343213627296181999671656430081437431950940836971694748172989819226919903266977268543840325142325803112174747833385345924320710201421042158975827439058139452672370789874810529880277512247622764515859891391371015013855832173920224894285462211369695885592957683192429962777963163403075869003776822163327408810282375395989628664870829201076130381532424248305226401042019255466138875131847777542741716974990668337407920363236638333981541968305625397281447633479291786376910863063655682577851012755605760691613235756153451787021354690368589568651986426718136783855002663668754095307599057988009594249049621197666293118938081767032996560647341706298324605545579939856450465315116327473176403250341480283553593211944289565025899607962650678878404402043439059246365449509076834976807150530719271190630780218235102382458072017767966933437083992858858480813593735758508106684092815385032302641210098296416984835758894872941480023029958222932600033020278353702195738401650262602318550656269596690174478769572223920257121918498299543505954658369336573404990911237595238947516989541123524396972573607988368238770574179381967011216244893226984251724724838904284670326602426293607136718333747084836712553568760179968305425703165603723827612735137687044161094150302235489150074229046442075767214284553929436821454340718328083650414117458418062237109937897433111485821076290933859591234491883893599724895895299533098813618929711757924466797442661671734375247882966419351919228991091992536549331987693787815651856316527522634828568910846787832188650281387213672791454622535814094502981914813060617862290593738070622461753015604259806044770719224460726729523227228065519309865757870808730136857809789056300577476714995904555036825879778608414681243317062970759335690533987002883535119552680543789087062310236965256821736109669533407158361875311034108265071979969572660698249281457530465523408661349534558437753650869308633560038884247215797619188953724259598226072140749658770232993547813049653778824406180271668821765837224534635926580145734369347006909925137100262312794332073013887845631678180488693072989074516817156066411868114431463239988560549235784618816341907411306797383275311492052992794836024925543569797569147734747635889580482443631251311361918518013591152195119889952730360802587261673622452978295045090926312212747580355026233363231956584017223765600093595194327952094262016213053309270298332584794552086920081335422512387807229077883331119432627283886579037912002914972542910753675413038476287212023835338817086960209446363400644483146105152919293168239351134951099384628570141513403621569626859957329982591845451583842480638938810577136155964147612200468144314422159585702724927435467482653706976801408627269845930655345778438457825224143568174955557652454603998294427019374203702426067315617871926757223194727708582195114909762046079084942989139177043654848621414100103218332564469622264981328791621723726084216419959461609312908789631815452752471647140415446916802989667055962840931469985181222776036731471989100367029928521762470600957059261323441770660106356585107242728175834343677456434415047003385458085406648629410374999153356524789297004216464858823316730065964018177992978399214513314459338614796660356951412487911939546763799443182853202560270796020827575995859705317838815722248350486569534196727118951947966714609420720734218385767975755713447487125844004163059397576340905748009917115399493794043661991990502073871877045452049974967335127545259478371899899408528275726946301361803495016504752169119966504791472013763599855803900433167159840700060015362157701556138826608441162882421271348485814815781297221531301651134587999846209014759318626097437333453129938406770132534701313621600218211263768167700234065981576172814730680008706542170622602156730114531638548922615030039459678841267869735970799532349383111664603119508483708257415824435260715048829051054992866474030228609022307609099642392730863118776514091093284495343654064912079295044447169266969946453985016264801678943171711194310127657185274702915067449300729295959337328716263731386319134384421868297922105032606512328260336580241032756219086474342139258974128342660390215573313731225166751638081616361279228478400738615459480907127578531925772972702147430108069002730379927221099117616978893316840251279956034574323720557999600741331842531231402310396252794333749236029120319397060305767033002157259439384706399490776314378814583361821980017293668297918609248801918691555903608075820468678843845600128103725468157144860797326485822496950403794270066300762130481759477843652903143742251052730686033400081536243182224635791311709618857751976129716659510872556206321064649788106153332570898531627672503954213583705436722085185095526904501762788108212088153919317693858563458979083730765843407939006465927129855203692001795486921332916738803568067699805274177596549106607854669169417431722087625035638137370274119534329883626956009592216192108559725485691570731655202035148907181820505897623849568668126557127594002418249891398876990771691890954956956420881556932905637685453259346075697553685809439395561091258929559767172381190662088160265918180111215584119791001815502549972277095504831703767240403894397516569099713309805482599815992238208282015970387066410817434933004357514383043064568052048787320265438064115612583526243931555571945918424106932884719437081753671682824594943798216695059103708400114746995469008408093031769525806782724689792445723392148087930249969780024848890886236927946987483026202139050056338109880372184568532948776685930064192247619022370886132212459901673163536984979617397092697690828765462779229393953278532174207805899371902037558124058929408577906892565999266633243336600767423965689898699055232743549216253506035747005568176540123480847346505018820120650470181891723857837992863083987411263386539171250835786068532679265645597655941011041567240547083892751530426363647573548672918136136473482064188599994397041324175117732378799534168257713973876944352534750458527952889980113561528359466704154843263381098808844099837624422095193682179927368436604581587310158204949266106195980729146191733323577948173396218932114248142284817874628752523113045130494383340803459840753416451381871648955483377332923113020467803051200678583629962257336303384345662626803356482668309196188063228363709568702522361227567614376459314778247636261577218529655349382248914388325865388394831884459584005042534233624800113029481577909315171214342442183838276701241133808292725272479330951774315911931022554551487591445356288141362050476764773115747095646657272017590688397225217078892603723012474292812782138903902072474587077106323410638041903048550014879719453899450013357270606480480016771515498090508761664624744282057728825253948968970831580926145451838317028237221755893672775005500203260938049706108235617797062224749549364711577607528932089664054035709569944141578535723380168670176015136600985337557162028721653370698634077376775655076943738231117447674471325794385265888639304548189387123996423221601681762227285297464031283932979011654674070239269621475112335617641454314896162589936259587826110547527952140510909729348215619475607904579735795068041564325954001803127634767568723524135033156544716107388657552004293749580665056599582959141135540218634091988261489348961735926808739227032093479548933322462420049247743663845085986882632305403735425915134853880372950405026166953085348879074281853554373616861107964796084819853484970409638022777951000140836762490328613668712194408773701022965783731672106077691721958903770716481274573926639002690292018914385415463002458035578781310141875788428094337924681686121175107076983930854991420212090289790889687670005793469354224734065014979233014477782597523176624484248517112402348929890230703000106551554604493961716137692102495045045311560850279624566101264388023450259855503489367112593135478668115324748131477678089000734580651671938673934751426271255588323196615196822263742228608490867101020549913727240839509687196017802484499858582229911668417774116253953883716184677479053761659079904692954701672664141676612355733266997127315499618082847691392444745164569658226485790976766867727179073161255176719756765665638652981435550156859450559188865363053360091932417732673675120476035177114271033264295351756469728743940444519418670468180332133276971364694496745846862336141014475910797450709432065647869035351019615625445744653936165631214220728837251885907648835709340357206880380257627094099961623466179895142737951119857648393264955277175167263082039575906972849728449773398535118786515266637593391016678348181105665187141496638106229707766609656647510973466207048333699744541815395786048288412983869679054599680602962740245595555608743176582399718311714486530009428687667532871131349016797925112240035568652434491047737931861830928630919931537348951369220860742331829052698682073888844618161550305700805918825169069339986119125701419159607242333733101681531642710948724267838923613012244906594254770893678605396863339933637830772127078795769488675065647871336883699221272163348393206994329751261761069525896274947652516608930824929357959977046495609312155669455868112292508006076373616882713637582150485174431336243541916110097303513211243952533932691368313031378564882393117525835842087488550815918443457403199253424445911983873904052040120201907722661885759179372023365277799652308261618357505089240887947638408552527562630402731592783283643624774012393031175414172551484551883320007701871222078837725229112865367336814909331935553791092560329535671058034400159182647228911589796517601387821593963895995659651935236650339325081947749622518456517399664260814414438178449085707519594510876641967170996926825360324012999189701509502943911828714051030940920457993788375320980821020140496125366144161386502727738389622182563489017188996715492209358042080812473623577095195428542136469403262287714218654220543655689468662783231319906736730262745180526597540135231353058310264524370586797263097081693604447165111786418432703144404181121993539637011496217336240440746109919107885445221372388646485440384831573690217915600838618724072204756983911052603432684090242411693226479214767241513330791081678769862115189382930331989008324513780724458880618456486358571164362634838125465471883417307516901802053117180988545807599318439393333936975636289604055893540800208038823846215596558865196926559691071760020219639675948993843459606012265975660698268577932703787093024628080068925273840088299814968888981887699562493737437873292976756025733204388773780841370251310928719009389701168443659620115172513557540611624365956472036582047703491602738811837736213751449447939740649414889859487446839447133676158615605853902987205408911655220924889481074991094252583827895361208073936185420722163280766152517365080805356666432549869440058998267408436436371837269441202716320639546338227373683251190931824073894947684964021730697354181132993591921686743493438747694635565982527713009871784057102929750618989690574693748854845998896362645932094195998034949399737603201331184079233827287159973159607583425854624133630267911330652672658911283886116150636751346610153549507977555918477912009839644013100512699338897784841645130474160530703938872576969616188181252364477035542674866536897011070568932416128917375813424585355304807615993659231525274476658795619700150883473077460969115538520930368189612522626526792860721860584339250712942015954932122153872585967081465487189360714279078519813113337620919029479785138598952310357000496495783657731843224509892379660053104481378488828918591319457619452010396100840709654647406066828596595709018575579191013057743163445182065006796583200646248588854791772970395990594997300664569494658181793825278824822648045214468203545159866091930417167469495193005992870086427503002352611625970788319714910731800471960147743069145358496964197607056382131797928252909867509239388014421441049961080493004712517099149598181416883349814024940959850172129418180180388107613259335660520881797607425387364709572297716247604105351439824354384356274937483275782911034269393852244663505229486365455980431828956874194685359753385179873685429565474032218887914992145600238248707953982804859944827407194331723195801384457174428114722344048452846034964931656818673322348665360622049765137747692357440283983166257949104884169866705391546444461774479771631007972714628769833518413234283165953839071816894753464138957502089744162505970231659925251641228492586340106362335659763917865546408647094645531872167596331887365289939999077645092273547470678354306853527188493272810043654854745026774804959918379476277109346886480587497513183947536563239623906391021486158398827580138955232018711217131425910119443594515034370148561440085374840458390249805531022019936524957825219696176536111296266126968407454285239486781666749589267680640395811762758979169039551746846726561582983218095445987149047106462499435668657905852998672318029179682064202451404640348458941939663118978516627853973140189535311920584755045053683142223295153066818886850827886297745304617584741829083972024191526718729157952270114711977265290274437798247378576968296807778924781118997534553459693774950057127715559845395154556809691608231935311878451624385566724137501381300542668076548392645432774336398220875067654491573366336291949536530831523089654982379416748017226490022463429106703674871519403359347362331001413536231250274896198050114894054407309776179924476512479396196063530108798457627889827036952887050937603712363440294718568420987340542036836222103413453029016487024575805184107303655827757374595759718785219713145055463252440260870506329942222493801115095351880462655602294486176622856644470823387869169025199976871602051222106540059072781571352959153701578171386455264366556077527412920161894021757735125696924592401046252246000660370959524727612258120641040601545515336145302838780592685087541390497193189791572590383305066879759693923578229991782006829623514739555485602553561588620580454598426801396694418146891175110920878628685622219923744782688528239499922629646455923492364409257139052991140545171353809838631167880017909378944149841663538779100713518423374309439853353192071298986450091010031447047218871061756246966002188811118314521796351575786849717498147814180469987131569835004041136491046190538665581260167983744333094946499375723448653351981908171651830650689409295392963680601373587987618285262808026428572813075090826153909535914248925481228883438971610748364611264202639507547669057778229598135882034138459659111583271088893302283113097160413695859199725953343509472539592774763578215758761364627650241218271227802235334245949278914469803422292234625070786874600946511389837300013559356210910019726241143824440363674989987707444594102999277129537327294967857161122293583188343494471095117655912834547081469306636283610255701889382113600863421152684092212595676964657316251276591592717024691876943021064114932342532270359479443756449760635346444699776049758437046743455292110547955205995712996852310576266649857777187519994861165927120031614257002192699318172120440086856161604103257625213526012335910964503730268164418576275992578376855489716223082338372407181493677085290129833438840087743659887384269364336532293497417696646620888629547425340592724917497499891061476477467100720238628071437330288639045944791337110294994247805434450177934210081885074160403402084940109022350338893786338175149152951243788545848091205845749364114731664184539500851430952562657399157554191687762340033655152827099732525441540547820635854952793335824102380733142607780809695290768790060827968782831121617689514730821128076286960967639777940844684040501172285329847975738240213612976727126686705131698289824177566501640169895426281601821004611982216521354347857631470880654853321634245176708943112206635282213761190652240560263155605336612534133498533346870739004130499023969824904685120086926456889590488731473012916824724223588612293995865733043363469990926468544290293822091195813601895512375486795331713094959085758458572911671176198832702603633042817597761362844393747543452484786810727528328579425030283606614171033017723255947488150037134963643658074670743780339676456200746992047103954179851731154857425593668793474043670211976877480884572955868087360213814266494154672217337714036779833623859510016613581476911755100278280454299371434037344462335443654906724897617854509301071288297117679504570024135007019505383668241195213430310239589471549845669061114572269990887695467573158699525421469532553023069848150986495821278134647930592959892806251970478306157546948165315436496825260691406196312732171660056809092523382057229584854514631502536449891581265508616796033629381182451200609962570836144314331703091669949062726374796803174469446621505857252196040946468077824417225846645666117683336497232097126113220465505215488207051597706736394276746185369708324692899126657469887121766488928248698049381745381624684227685899549700518199803036588981532411237139181751382926037869415151972075113939240983866498016933412923886597133076044857245946391733811354790883440891751907552172014250539167226220646553740737201049422731862817245565502284972434375085926476614842229967615639714625543678809215153314326422556843082483903867195393344116341856941353449936013538089453603610523861210984690977532192299148432839123186336263920340184275761962984816089779906240268120044986688389349661429350044147759459220012594184468195971959382347269877971608789495496399227468269611560513338993593469034952708783672555270919815026877833041827181075639927606299170901713875533265703042365548751030072457285545617216768381635485395207128027861686222709411307971838819136448553819708527159702472648765608187579689816044467728629870868924245661987559288392283127196623531335600907149411723717797631678450651171477126805942533018834235796172321188872703794577343447865468810160298463005021153174452119812877084582018903862170813824302089264474710825420977034254160102179682747659145720176671142924390475501063428362646082410654330814646540187301615201075896093150468015558467783388028952053459161970067360004596660681181422159066712279171323807322343354532947161271620360552955352925200322556101612227903882960673183737176425708441830461664257385212877401122580142636780349942333490903371465263129674454534989337727367003676755603469830415001909854550544866511485666407795466939527411708385587857502639348243323110076132121591677800576358466084963739626439522460677196162776424455020033043100523930859394319985881903132949962072877986291990786612072954630754404901956965108820204742747444709999176771351228565408618266791093522374966694567977542799004656129299228006293687341844843399053541189969442722053768874301628803511270776728213867160092669723132750428250001013327905146723660769249716271748829435338292506754899750429171959620526466487403999624431395252099288747611758010589357199985438384098162445520391529665489900482059478851582583722386872230457499661899625525892329916155210499120642121189409667897107509859568317219996860999981486223941042567268316394700919290711469305093761562155977436852420341493735117523388039426243043029501624857657793907726928092444405375549617849868945000940590461375132402337457317978502111404463027615609621686499992246141730156038204760300307982182465478286646585271804861734376378719468390834725484498772625167344361817000578031879548814403725053564814637863739166950043325740080545639963413818998604241917701638447093471656883924477609194507912060475782119969046256996521691508636028032110979172296756768877855626295573703369285915013821036356012105506593114993162422008951089539066800686688250979188193249174710770106334154066175097633973537149697294847501736111716303044332130407157713169865835641656223355216875024591150458537424892881149510564006672910431928170076919412744368516163260101155116231817169593672159541915819289398568637787284145861956307882909863629241958197865888707839784833337328033686319038788137529828252667021223252921454502553802939704680461001096816074126435404096712259207455503111581228992135528801959012576415331758504125801886207547252454313201127348610898229592902586002171298147906754670727887604001857222652038383166948625864995207944244771291245837968187017924003200655503586939787598573670170455622079752604644906590343611901625385227898981720266772783000871276603011301465040436717771035229532692851023921512271187266904285027004004393635524158597331007149300032662185012817642744092099875144626515387824652627751312815605678005749167088766176385411705460437620258992128865490063236206646059483430169004067005548949764873816714048589578760977759111882660566335056571237077878362611801832057894925142985733900146666112734314008211183864075370385937977134700901410455047044417658846478049876177582603598842067050213130907631651681855641108705829257298426118152119400236368372429387255715306406888570318019055594713468312859335570104642111409327191486351537085378681321140570572868382519003910587210192685348725787426369528149705530824202989734741262134986856497723239795885165246594474942532704292430516379103268333902684367451916330178299660918542188443440637546521176100508565146128762167352223212604822864822310056782285957080905575320609088602182369524541791347330490532079571614197370819908636444473618979013295569865222374969235463377626826746122775007347758576217391688302929043230686391845089192236002874396285714653478699625309367159843411461451603673615643337916893643214389778507873239910733792548860408916171962359966062445496131409878846480094699723109311016320739414522336809404117998983909146173556950961296573760752356051141844594428936682235955459192233871475569967023621600319999239213882621502392532935528015884847280321740046385360056545069398654017672115773505333103313996507410218126774265770793570873217098383319039253272325373312730997769532594345341476678259328970271654337350762364159609471315075839007038325721490827741845716923309843383569211801329152267450437593403094347079510402610546296287838348265197730992780128920430602145546104450427931417950601206985143264925028825270557953897385604658168509166931449456617665408922095339527547631860318777707479414391764476770486722494749654654533272655087224675201345467503916420692460140088912580483869320799973379037138947569034073808296458743016906117656118003970821794224041803912819379689875043525432514731070683757507905660277087650965113557205059758383242879769767373053062829892237928486244499118668271695764348131489385842854211654217862126123316874811425471958040199405977944141609018518085133738384716155571137576755233654988264018837798759412645557057762210996852519870023685138650579249471372110244308613642807856047707873465025105485150952804803051278512682798135266079628057875371669368733636843199959871619415720419713279610949812749333379873837747287823514592455812115183405870883622703238658652085277215599257104192603314564279888935401796135153163555420031659624715943115413833325121103379080159994343664108140457585707717968081409379478646335189593490599004060091830373531795945136989170982426776309861748920898966635851212151550462965876271866625069431031352692269968381105035122368554154981131582702796255747192712859709301703946066725566630802018653352039528450684100202744083124717444209962342890426776383180937710080220119406606232049171884343537735492606889068097018153134794207722240892046449791407294506540227467962731232744970652051471034965999607669836685945912873582601840832222253193741075596574548686956258855765826860707760973048910926202969503877462363052695669775943022811208907298646408093335454300358639444704325877822201857511742742732503487819034373905802418671593183498742528519839291186183362196713870593761775105305610928002994340655896048252334309307783914434381881682765875347498336144806964586569449342813709799318612413993190631050579931543950092909628267320076416804586690397306544565195712947767174607131101769350751535829829447864126336389389113415791382956920069213949642197715323682996319026347411035611749734613554298506034948644509504109426351244847975011221245292241017394101499762927292623291344890752966211228547648489466500366888575865558764102029724306785438582454415529003090574502064714460202165860026613624314094564190848373546634702402685152134561066482646150082852073321667630911705899027821548737775426937691663069912295051220853016223011657637185103081427073433730757566576886448333335772179948137932499350872012661997359717006262660529886192999888890104786420344945055159515423634781359986172962790878822378381827422730856603536715449376200733376562568424644947802299035682424648269142800899461356024825680406004324621026502015504220504711292724126783251895151850365852610984339682473917312848982934310427030977341157959950914154530324398123691867893251402103309179704346732162305890219837349077657404183170729284834419613161373963404864850193671543746618411629356335640223287440072673727212332652952085525636703530267391101059121007284054260735534809230489645533423802620553560535184460716037539929273743950255039038098193719569429121203670133294749343212802554738798085785577337073507123536006518937398011397173918439518647278250564167966406090881947863151685319788054569834013142673705749109075637167635536087674864745763604712495587841824655676868844807745591391211581522328665700531067884068853501530078167778792297700009095110677467548663255926517933068372083803675901545935809808201770223689573144770743369975831132466574745699728151825895319857067488470689680524799668323791488700323101459723971894426935561799888738856976212815261490180338825337169405771485059811024639257159176453146215356049121171458063877485352338618803061797997218418401416018473537097581507677921755400280650755740299887750477730851143088668300190587227905075536231966029111402689580672518176118585039078573881593441783945772830656623280189284407842371341109990491269499121189115318586570801760852758951274563994375891735654901436294265784303943561745015506221708711725400057515242387626698854131613885908070674464393246719156639158745395915555124297251968003314664352017305049269679172751385322329734799533215853261447441041560614839321926581004968155976468679349104624689245029859959713320785687646357006203666996010215899606030700527948676945964726112105228665303009230067692903535087937828132048099558380376257395197773956042875802905560955407213820379659978209681988266372527012519943211926729734778073543942379888909264165754994547567486821522736707959433736036362809883843372592111374900928658661030958724755239382030624529867023338495484161735865340154145083545269980399364279872264417582793964892390805503957553428755047103503698424784685241902854559735152831582884164147215048451349347592969037999300539379027603955101400418049886536524460051347011720669259887029261578764099694666223421243878225038884536067878662292115896109458989191037582071460545854966714330286041518912930434160844817805850931045295888413387882219167656971570598181159277989820743586880351021175281114807114124019268275717050912055991033558119445307523637836669572876562471874471922671816117236023178981551663278598310968314853993115468956418432772119249725988775286310285634729961648142043408163343256664303365636457434146158967526526903443887821667111242591278842213620234951465622199370326955403751267516532905116647457406492199843264882992469247173683394771921738366718047095081457706843431702493780762879985225299598270307908458205766092809002422741665220913743296727875045109555270609800346993140762565849551394210327019011666433776310617060826175065606513259454162766628330656671794927894957673919328566066880751060766396476948189670319546605179755732671923012708048175034391389727003482299692677159667575006429616140653919770540997133432263908923824911586584863951318941868286817876720438294301577999639930145851083951525012252457430789397994041243010384308804267794952231759842218868421515744680071969537041982834636001655137475148798053214083306135337843873132803299819090009253333072054861828674389485608727976989250846652397815667182574570782804593974661418630323225709155374227051426189557433589309424167079732500475390501216742509627783091434668954085950643531600356193553315916660369589424791772719032160589952358732889987461943311351814863295675880635662374234633794238666305465554265876500321098570316874553977125817676722154328272126956219325137498658515749035364989826981944164955707640424018210701565345537667731165021993870026932147925647214071176805363431720846853641304784615836627677924036847639199691539877159604648317052326318682060469387724298179462103787102357700279763356942222658132740235401195039023946398100375963223353044935109642690466057826825612104098374952960891244577184955378827277061288583206709073403623728797599182168729263520250344149284104713712815765254312343741806394427507497865516484677822352896387893172416278703734352926685565898710522110368105921066206991985527627464336025752270330259923006896816144784608956835371347221598803765673715211488627483879368809476110075203698584836290859782224671703805654129035612605872781396205457184884490025987172999298791618682070863599392835777778040794549081210578225366415219652503660887937449143529852654910281217646511762663244425093535571512879178121627138288115051589898926559219901739906843020050232951248517511683067407794028687154435186466046036561855395291268480853958772511344755000972716964500087193259818569955588722002985310891965124989925081369437285760749011463946048655011915981344646628251525589270542669669979607824202614280712397037941526895221451998445988630162868144796286804486604453007291708582555618459189081518228093838346191548209485604273961793821571539383437172209098141066518627488871346391005432318700631414427263332208800217047694959474872480429864802502943125070501425059847796867869335310817963008987349638142527820912720103133900621645636146305144006571548472069568618529445422422284027209771117410845639150229582971178086894467587332037053135937612156642852190230664429643429571618163132387435305435118317687890217763974654938504830199478439860509432051284435330970460544765599872292519774667281825457685368987589037036321487458787378397676731819754025100147055038621949039613708082769598401069782150261176349393226915198727944598475838398699498129687235294238393133402963171721946951345196952810222828294088325330113300878261864515438168225071828637123651489037714306116331244510138949506405011363594261485051938781109735126015540838905374539107640729689928651890098176245569450571576687581987237622718108360499936267122145054442904903052321045260832679694136964234857440214821509165946466118990299783766205094959737847594891799034233259705405680628512469416475549861347090927945616677767548941742366450792827345961444662973705202795295939365591864848822562906801467245177840529720349323797602457048981956804512985795406119999438906059320391532265976859334233497151233822456460653839221891814635431714574241601570559064606017335810452773703064203186757383116800039173502210836381681189382404655271693314450792557631781930124448094474640006103874463970326545968867710523738823988206983476385654068035965315684770659520181230909833560270019492977607401669371874167081391637244297678960689481427343992331166487874818186357944324375327576126997462848980625233568700831268989926439262234577704268126037767851740673595346926020494550482688833539694131771281852874805928014264093877595816769419422631000062450706251150982199083514037221546806056061145726092247458696589458696730822750517405620968226134210422643057406145060616250848491618568962726273282573625389209342391825736082520809719695134388775930941807714059159246651536259347002923691488486709563508298785565732717067577209360827928884224834661200405353543445220487812074440564573080043566088858115964589920759972671106927886450321032438137521453980687974765428067313513449508765735144349959358775627406588856177005515863892153974053041700095403002475864354828852751853171746778628338400857544485773622301534152442848339600529409381829092118846651748788190911159008090520121804501421082831473676350741604233914557624858138147716892468413349760558696052046818269997175725899061225360694187611100119872362301283415997458884264077848319644949301884716403296212647200058732036759899927827626928929651984300787971392740976053181751561599076256422453015221649312986510411522412391172718207459294423988549170824053064414772998042657776703224138284342110990041264176391029658082463404781443688973294111434949655269740001260879691787131259044996255422796919865777225496341998875680887969571204973689481484457427479489893586143724673053258350941199461446929094782220511968512400621441474095231663975300684902793859916101236648006149747993655720975873730333019576106958962868480216807696868898936436619231848543198926152683526081141604042006935237902203043474499623538386675700203966967862674934013448355203457449621790995174826799131311823221570221742348864709686199371709706620670975038521395461536886539181839311764545447581582993828147864013944672380317328839160223809255341937009397406110192610419796502868117220811160515233406702942015875985422094676548306740986930863591365946184613123599622933220507249441833467225908150016185548381483392916330472189357714288880554348600609802014400772798731101732674702038933573409947299827491545920765199293333641686349203453188124519360799086283228637464580600353602722481366483732094194624575675542915991912040429117859958333193668062631931996454628651239702060874626148894033796414253676613645385610198475754173537681932472562947365914486001615035705193439162983692064043465831751648937604804175502589592958593092110354777017919240889067231708489040005942044679349439658069764828798737652264335788542442156931759967847917599592505561851314857756484176948770897833974955177673726681553684987320248613145789213642381812038309638936280575034156986269156648187975385043763469638597162126071672083096834087988101653217916290179477928963106446440148661984201563114757049584807378655699312774287674105632799551053263480312293874992211802983330117009469111030712700940720067942485798659747882770776200618176858586469112399962933611255808379997532926915527520893378378469908544641927335871785833568212490267410745216700067593036103718423688092550053922454304769347522987368463493496429284435009681454527995726843481258323620514071597051867610727335946210182769897997229535749422980945742142357343938310258412274971373809152961070403524433745770213327101008051343617773359591349125865567149725940348605914459970584900403131884048434971675289114448650894826548917073967748639263081534551301030314423667885933462689341848049110240984106974499461868799900419721457971411963184970241404357101727083337303846239621306886387517627877040907871415609757117839644989217820471122682354957460473974936450213135411556459768114587078046129307614494461852408018604617912356526597954847689862845384495056390697659754376311347100436404657184581853448599717372540634631585641212959568246416523396881789965476992623658718109857976881139057487537498959563499103378300723000725328788292327389627758415859915145799160186633576472208739894623001984229617712713578541039639609015429620776431745066696153981893314392455039891679443477390549624510640442552560530254478797429301855934115801829103393735923982661113137673902863267676504768153761167392114043972605462872547494940883392250023836187922684002712898314313350825585542339590725448348084209096259651373377128374457484812667865735059066070194866135672504726703201085480102090693059859620403170381114694874863606536767564263257011397025925265262060031178922009253271771536256984532872416660525082565033977284531676983918763131567213917636601589601874425847440577014836514692526076266202005120738765355062312140134324226288111171767688765973199941646891660398722284542543088390445193660946087553096333100993478055807387717038925739802271137421144787367631353684451664163447984146517461058125299538478274834417760994724991308886282238478207896941988734092993206893395553901088590403558360909526035417207600118526813115403059599200722039860792951090433830121185960259453284336757766523934554968576083033546883973153180011893176189634850650302033750172600873871786630991618946547111551037009579456371320026172936237262867618073702322993442229966057676768357681572291874381955861720055303374569038004303730227390474777263114509450090182329424727644362615176649965271656718782909038310228521283488262893097260062898612163434663671101189257294433058776559227472050891666214405600209809096654906256649588432524346676970311176104896470356326935197193129048768326376044775514476045155869161112086819812641005712524017238498272287105615221010945614558028280823913382936410289510724998815686035648839290510757434470674889817958470441936387756110308784368346970690440852946715451426168232056701482524091846629917744324730053849875687813087992868460573847971706212836188174606331776945702006095531548210514330194085545206582354738662589130969750883304420544864950697053322024045631014759029955904292367745433591712241827947191604365303695827297308551879962752429254889447112714665297115512844027848029734072881052876902088396325586399853291972736256332530498351604950781092932235119976677516744268184520505460258197851991641229656779219457523257283718568153498177796755366458997807875297522864324645395408836109263282647405850527471295565518739577982892606157233894196209142765267123597792269749754759174084014175499574098788666731032756659850601606977041678828315726233482532391232600528134874837342392854412998291668291759312405881289808391774598701577075809734344577865776437181578014829740628441349873932973759045695630899862118812088241825478126508794417549663123689482331753764303306616728639363361147396517031520735889059112506509709073637712780345129698720397215427500692117334238132059876294669769497006654399159586541275189510973870354503705681194079317625534866114367634923602225596149815074415015695682177591283079025586257958975797343399309536322580062894892428731302696607606231956968945995670808509002592272609857344131199106670226898379624186307217970309076781543169841683896986457272088506399094399164318678203351126510465287440008747037381156162525614687384784356539516141941281179642355321651592946640293881502209999450586787614578455799718444415491885929489590695350071054949633284146451352142779971044940306201575699733467458325086088328486088879227946334593773073003948093194909526615715292914236530974561722538542133769896214445243661718799857840714317366126078272803144274504431663342381178455985788009833887561058970714938966559002516209434756913308901941588691191131085048108263141976691539409360745238609975524156212693448962963469942130818136517462987538458424673588486659267654449775935374340728281605686856714773702218642429602507597315682770915826605179546613059253450578078448339380970072581285582511608802171899439519510713189069823164000816711516804582669260157949381458496511246253955451263251509525847308943803411128779363237798885964788842534910834135978563314322487646431132918275530216915878986575446933164705755023877444859886787562742904521660931276112593617703245785298317122713099603795644072731619088996942250130557583630202388998331179625730662937168140636878514869106300715932286639944518804498772205503531343723199475152897793830987571428882356901517100446580319149183303728259000976712569925644565769254995517258753550497012535306327310294895429214204043032885976783812090332034709767656904050306979618799398805958536765768563012393563302970055348223360624649804134502000936402954404480296619964708893917178970355458518512594680487382864397520875846447846325278722286351141350244651042581925359808515213935173392438021548957885037685037344323491993062188591373838188080177968250915897731667396560988170791374737837711566068310888867782276188687619150402077847891833203265256151795547484777033740729646750940261113719621248859369183059927037997284019744298374477564241722850898184198902459107153334915789914884874874426032518782251432280364147348671771923801596570945356878945159585255860232260717777654331984642289082407492628078081726210165448191497295284413096579228251615757979027872731099894678868191714160127027900234349290352479495697746167696793918397696981091360863640226005835384324066430859119099813015300913133635462961835948882710168610251313937842936645555409879917825144201945259842036788162200308422866887682939354423062950756996837359260339989682169747245400363165710006727429380250992161852999942682461214311431359662883191878688774578224397419782608640797590387495133123962688861016366839867856789989699161800541172979519453415869792852666434520062153675796987134939861853260115159978261854295288005282738775348730651721644857854828282962090260621247436067960348097086319771996602010546714648753339880615415218034400302661777255486270755416924496110920067964779583418185725234795852249659582097828371981712746348525096270730646387415511934667581533835352865163169232112273823044247373746988668561527647325347046409729678301665179217666151405340175616146289769958440223728137558136899955993041505168865649593860925180662849994535951827710143026849612826911565847255805387765428584349497410919934018438165896209751362385527808633942386145756022458180820920674736364575192980987856014089689707627042787370411188491759737381572944645117659462163187767651285782370984879846183202657588368658845750550805791087885226760663469716707095002513806679561952314741418231059652995561582110976430754152745290855209479674067105627628723856430773071842715192153807213867614502376621001433602811625429090158771098809866251115881291179798729675971833174888201185440909182225943667112867871743238027847363030238966351353823676682615894997045721577106791023767002811040953428584015749297111208332245335877774655129075505459585067011232843760374511806909360724910336959549703588852919090475356812617866871356303602548577140837014261270169522344762561632374055808059117729877431804523134108314141392157892748119184808460389636745944236248601215831492444890636123568231635797325865891593242934844337421924330354293890420439533439053437803344754436174167491080452630402381252044650680754393112596677999646243138329930579475046666222033974852088116026420588384312915282428485465960528176378411351049034784570566867349844623876873062064972353515455671134075488221152447892503684357552049477799991723207265071912157695862373550644697955514748846547820898039362335089409684542970122213480272738003193004247661441100854579312449275433878353387276662107888311722356906026556283882875528036636400531994217277361861535868809121789227497701329771403327040929947456012138462875218839152764419642542207951276653769648526495233822355029502857210942512745223077660709506650738635129233561723869963856666447876013217628253766001605440749848420345792872783089069179266122093387669684818297898164839753256539890917985196369751225589659012490839436490057211473608460374164977696466187201235719304256551796594021997516843476679255686932246108588720395043290220611915882886904444735803988648183029277585817790223010222891430191453171931838682733605816289639420635686950775650230679122461772836971191751507464444139822525096091030312290115514035039066256082158289168738371214966555376437360938839184657430160251920675432564670380879341006181469788006131865120390079837980661440714710581448933853406955952777090754520631933520562214094227260605915450166864650561809114666302962222260757332046706596733160638799750995779517458061507963467488047379301956892569870241262451142074484201323884585659877283980981005447102337883721631773834580879240482281313225776261152889695864317043071365175687343394169694661451077023970292777181058263123530172182167993288588310314574395326498244269190790238814070820099453875714287839973726930747440544454853688146931272135085594679296976509384101460565303996568855592659795818597202521535085397609956375331628650323247608677126615261823064120611995774575241545794847636674398454480698910522600469572424744929996277690151983418756460813796337217770278348291804525487906369468901287409959770832519275422786683560636938988607727554852071587782795081390427698679344187751003278087539974383641515679973460669183020043981935941507881059051809461937530110444340726221850478549393756779458619622017629625601181418426116700002712545488703189630964653909596315794995108109861142324748262228429983473790588940954592665026853344029356294778538130542127115622852966280134451110147328991483699376444464189672611967153456439744220817124598132290035368294511874801035397360090452970012210453839559572076487856389412113361578206925223457601819933260205860819032195414119760606827563634936798494236216485060169749939520335599780263841105185041683801672850283943364051804817913267334459142022883527841741100121592320275710557219294673066176459965121772306667408938893272930650778680288077352574260106126035922954222725115542324107799188798202978241335286698923341858081573022273383594942796057177613815839247636697490396725735378561923956979769023406596341860713363641142367475055069987800366095784024875199978660977125640152155751629031821558500701711335020444054079819824621149317131798053376266348329944853146568564260769449714114012713612083402217706044810307957436410000136900049739582799641494430817896574922514935413879779765050871806113349383314061387907223230105547004467605206486081910047580507478207674567358257697965086186717375157046259356237580768962564774440633532230863846254140097357855823671421399074365666316402195160653516693259578689208205091965071077768513140336421632882313290990051661404334534406272203750056769533126630753503848997412983552679493450266309377427584611453924500552604844903711126678593948195958935683601428883055994308219533399482658891865542701468662819043801759477271596743763543380576295867289461829958117792036493457810437017086486001176986007293791262632586877229604782141016735807851187006386268461454495003551033308809960863390891989683923128254507421320178130716322107786148951751063773059813783698129309456625122488087645801342278407425632916682972363960540921836362605849673004257546784933887258835090092042867281776644649063028487574117238843719151532849606746585253642046975143671945361119084270358511516885558756236160482809510303741836445495943249946812912183826022821798555696630771852919876821559568796075981742691596604612415132196591023303663945390118749153415645098796152237096013265024776592260595884900157333219132113727287066291860671995664769770333745097199144292114940286631591635120676568867540653545525629594235650892100517634833625278526550539922520908822772071880501786226389885123167629874180220676814512704072904841328685970632740175149766259843757034167581067814140380437445757574659033158520403262687760470872076229369807094914997493705386484626011741131616350799234368006508327585418962326256241868169971126447724971229310480633204113203793660475100826598321567775297287609384231895667405150571104637306686754289034870368575508304847732767747628272975861805790975717204103375288107116912189067618711018469518137590239062825608920731175851044544147384645519007696405591333729399456574022893691524984084287476815462073932252887621444140178455309487171099757741625533578953002558305123770658459245470525992225914291804967409560721845580018408755122501074851402148500091802897199547046317009507663524300098613669478724961808864054958703106090185496479036715416905405821089273921760876610826698060954278708508481135047891390291145340182470995069778859594015322677378590729643754759189868741031966009060273760645090878293160052067636421228229391279993736565731537583337061678676684722004408655628061002638576044448241887393518582864015533199171904384222790660048535422755800509232224829725721808524058617991427951911591502754439473443202903788512770619907985977559120862245342035965030387588110967274993896064675600176193618411433913172350739663499390725251068611314709301370472167073236885601241003144401477478499967887845471110589794576669504640170981747217215754565618456653576571710149016751954843517817249600751362868533114230363760823181051013130982912509841808000573189240297549612065832119710724746282968792862409261510562697828402482618909624309894591042274774427441135784245329046401986794749598602107700688342248010532961355182925534918323537682164194412564340567223776134329278569589017651889452454172963227761278472387060539341003801875422203463487773429122795713251358017883211114979519210419564406935254607208576909698520602283226700070629008378533252360574121714280187767508175324071401658383322088926126151079259202067728676593551877684379160167815719958902579668609026852254721821971102295580713474737560966229489829698664957985013258656864639582864239870249136326401040163597447390705472364918521236014883723192606924631432682197646931233018300970508353352336435143267362728803225739856631286138638214798860159063954898024798205796389713321139458516302511759475360597121932112413783496327374960936122007707455724600493284266947659481475367202204248189597322818230214400570835387305395497207217728487981699183459431321863864395813703787639735869807749501753666712169020986869397553498671587358239268121244728007009734218773060454616477266957085881529293826093624615171410377845917510572373885306535866686776969998278071444521181364055583324845942964834021648329599110612192461743136950803119700648485226673569483316536165478035159505629509726187384021396132006890021054956841266706232678207990706938181090105176814147374115365699852992015493098890149032800364162948610785626521464271880102227532014798971997684753460959026045697768072790214482472166981857218595862572993457721893822486875919625280097328438724849649892755588629020348817330481450062117726916653179328308894534268264226772929075664521365225824609726000424782096757247844656759603167598324711025766002285189999920457046675572690108084589897564092765965362623821083199636841824224617065204987058386300649294165246709529958490300160284355499883091045297668621329953736136721117385320105076700474754304738645377944238129670692624031251340372600407646174209625289969528896017553907460260631067907753404850844199605921019096835342632352241855101689464749649757283490206148802585446537057327356251823530981691440675596359088448858991194112682853823858414498777048879337977121008902286011993629352992778905623173383976283310671720369969534909784726502576458925013526421852191264648761519819564962199385524518525542373959490823150182491311168530511937858048205918504329009196505074883575039701373441339941506161070809387278073016756825685102297059286837402648076138416377962952681787746823535903616544963928445363478501433567739372287950819030445839594811755441354139275189149188588501552561471779508446851563975270890214596909514601014088328467290546361232517674651785169031367276129153316439384482455222766405604277709834373676497376596488539949372436003453256286938307545269356004685163245173480346156371745818350014836896044426379428524126071858255212115008101606507469524172401302772695131938107014484035728385406698491243897327449034862053665395366138922034165620518491874142487119821457602509475901816967267289004299069114276069785200534084892762174730140622880290902721526343452307998188647838908092702230033742265021922291976499464157016577865103761367611790077611318207377921482562588183372335002026496923466551430989683227504846761937106061304501849242689443873570591297255078442492975022759350899758018454454950699229927401157958580487355859391296856323842504641343069684208595361359529982603871266678358227831830814791745329739820154756538470262648341774540542076865000375088525792577383771821774343187301703864057714312698166495133670498812491210138472997469205787399969827446650158882996135952598473173910999494246914943497868273671145868154434626210448344030212285169324108134551308438490784180318470497141770539382123571793517241617000501278082195813211864428910632380033858714076381318066571164230585959938149172454697604346598590661498200249109509384735189545469725804906726671960211590624761119495724189813428818888092740404326449923992661040481103691725330567267156889032412136480274886451743695245510576917609356072887014269482219729138541027474486328710950859331839062740855742413285165943774938752101604349997973077528670821987991051116279407294212594729472233250829165045791740509384609984916773067569185057730551479660380475387486318025355784874301287206244910471672688539592493387743126583791224835648653248202188607683949902321394585968335786770431756476988913714412630819354347032038850536853417446686208452742642500310690513219563967818460386802241161278047228984607345080669505776124218290986240161811005671677005765200225542199643581175788416889800569810639100731829391628774209200094046215096455490654803731705705870913473088501850194769090836060592469133102690884068126615580237160251432411051851828578262636590953618294577549947762210196780377586762219968496377554356916602097274355627185006622870487033608395914088683618051699071589673965338671579421643629394116607312578168444938559245135678731535683318213369439522380299792766669747363973516365517968661396114564425705985825737166074934246321548392307609391140733537985562708678302945951214116815437670340980396330059225009144662940934735646923999302729487374707358863768304342275233163208534701103412443677203860795402794362371929199400888895104379284340746466966811137942848691524784000438504765570856768805435320010471881316014895265396485396912648645832008935617274241720639085092748429937043346453547968280680792824390159309355350216261128189824332838706754111267015062031620047145857376204127161809706526931317979904881709349957158433059979151730228845999970873288639881846754196906825219322451448753547213969172548381251547976232431415406626196096764862950968236870671462156823069970705401810680794185461561206335524408068064915762495579207219639061877178975224372952639064776916216229899315341471437021998059771289538163600426923567741196213004527045557281751328382635536341314204319878806071828964990598048926030177923734951049240725837307707078520898203601398095773980225540175737953916971330272934983087723072784258710834212130093743482560888918299523648659040351018894719100841290599532094424070374635388077445987282410285691004042801232625513726693346760692100436875351753069545140176820079487825152417661710621947247873781763732544191737553951696358394765579731655284416599957199761935684823748136508687234808144323605134585746058828033873188050810528349378097663074016046391846109618523563545735451875992619352931181615452380572151421072413008725752643409079633004628039996539185906884299185929155369813561444585691426232225426438512180339034110216413749734513603723810250233585037535940577249932513365332079039677732213386909524594394705691692036719577884462577879525730052102774473810705216953698573269662392625625714058284922832633569536967517714850380747786296377930178765232613377217442474311086205472592082091249675891753404533104655983501341539801879766614561556661451205852653721421641517681036229510894034784879554256191887130996348592631295800383151001431653311348544639111089464095321488531032606530931175282053342536584547550189817349673792668276904126761733273148782896786185849698903975388795895777171446765785161740326697844377355125368695876709590490789729672034037682758959361596161056589496457020062876722413356494105612752338833821106118481426832729837671896033024210869497389531652236550903006223279459143561802828638690514593705785179886523157101164574947988677204741655381382253714125740397248179774518187592853947109514082955466188971326310784849749363901480224836887901681196032263964553298552087592418483725964217590455599318622926010911147985072479304813139526546369390055956540033399788949976006849154267931154072742838336631187306618212404488849370432504724123293013963848604990807976958927534671610151499320618276594080788238338139800242238956469757024790948222433134708885799416161980435835678085346804091431948650663323536819862559954006246016930220930796028699240261325292341921551889658515669946891934455162049253582097801356632287194001480959026393717089718721844660513083765087666590768435231374055201317966601509658826043548038399189687564452587588051926086993238730776014386618942201165915127221637079529891514689276752329913876881934818232215905098251436263306079581874128528671236918440717796652668759558511400081841744924110643786445694620032338110789896699557734645792844753565150894059231089629878323735945110871338599323181815973623255290517105418960804560240160463235383121943705408157670564118550064256347005344228722141095895753187881244923003568012713364669955623489219560922689966691080869241065859026710655937311349724407133334724764912433662785491181184667060601707553287322748037018382521130165011700899683809945875785137904358078847774738438317907661824345912214297999369310038448374939929197147004316292432657880450940559445717306517075778178476222611030299628285196137391731923180883813351946748925808784267255132022826800119849286904900809741774069571705899257606836463774925892214997736736811174757341589922145163208794404353980412337821587857562213384032049056272496113957783084119327177102016269150407053281949528678794348516416055735173138963624611283540223648505774967801622843889203284396652877760688158480316595446742052361008512269510595789444275388625535349501942035445785151031902553274183884192061455554349163801048927797219698694546371616645125172515107724622540623524232357918423520951527868388736620285000413938652688948194572029017305877721263644741272793094226241872844448109503946172362546693592124970477760802703823196730524351655293888447848722325721415727942307933289143258264596033323171154882048042207267829749816488854290486118307608122363680945236941634459002955341536604473439946146880920488710369661919901329211562663272804191805590274286442482471549503988566948188496889673423464455837757130237185600349317331590078695074360918584059537818453712410887650735277983998857171056538460348267949004123574792372589827223146982856195697239964739595771001546970097835572661768219753587247848820197405799608367970039010735288281525160279454027782914237271930252934040500663292316906226303993832227839412142439035948948883900563702404628279876081629812592990212194561855056556646008740883477658053739419623247434705136216572864529988659498251236844411129243702353032642802199858325961106008007996506516082991103117179620638475059689633607930876158942015879167981404525364434215447442506855739859897124113443700568613077020803872880683278554225395020077220915233475835315899516675908172757461220845892002854144939148999775107789442367554375542978372807749892734950127444855467246330041593003444925921484692919874238281562526588624430007750904353942087154479900986667327563833709315647103293504999525560274620110063790942791615709549696096515771479064028620467923001077231434857802648070913479359350381302357727074146304954589777852531301904462154875481359846215141002417295817601390216444194817291805003730240810244553932291743544028013702698482546290784604365237479944848575705371366529921752790519550101152428270954555130753362840161654021671739265356364796338853252114349934827998677925656506817532061577114229211669566669098235793573368895400146429139793265181959296514527787744434227556755321542780084910784531464734252115923866582510702217662386333977018115760468622155749573329639592423972505236412499068585201043845740294198543668896528257219615430218453232250309299033761793323950354478736274834869187261142419935864175915846729298388496366901709125188369061011724546737127566480952768449473933599336045361541075528805137610944180807224302291625516557020189685653952020850418410831487873574210887748951775776232253900163761545546487135928680506983242597311850927109480944441912210832704792716981431867580327091787541268870364950379088240575646174920951578246224355967967249343136406732562800001026320700251618910752376861363405418334284256364006734900134164857571156836241485870703083893861977967235066651672825555035899369584243695652688370184330666628991756864028026047931181200702633947951673650922344108887234175222984587133759237507584774834014963509095062562242344684559946667586910479014259294773041672595561638974642757878813759821838587834406302745411352969911820347162185790339736867245536072944675405270097107257965310872637023772926119807097535354851518677803465221907239981981390829288407453246366469908442960633446864537520983890698990066107242464186046580061790737058937708602716185768477838490644439801027514643584676689432453645972401986383563403980360264346068433677657983106884072619047404882651062884331983887739072905300452125269143038147094050308665194156361706228597293570324920250779903877174318061087686378952230623765051832295318393657540900455207034777234959168864561116256395726333111717546411278145796519554816768304626157444336403637312787556939019946447797886310556073096508856750181620720519374297773277182552913909392835660709241434745936947184145154137081925400702709233078143640615903505049094080494461906703790231988714765131831188065859883481450872242584870956217959088135961322907199972340230640591457031787348544126674197415927281820856141061706822086474719683873282105320670817127240818255199669013491458233914043915297089463236667963141597095144047336540356013726141276784407069220192798788521733806856159895379080744052806618408489725787491122610068492939694073376179099164204365154049780512017736483014230612554188232956036352192185730385153691497159210251303890577106378858448671088318298267635366185298990170901182031097418156747698050421242596161984757649692112380676434389805065021586522806267748142074703002540854238988574329707685961693800938560495073903112475073312170625546639389515699081446789278162461056051199238492672115312373875977717341597131095679597561370949832821434805923479135417101963037008549026637594643589835642832638617846116569557190523474268177982036889893226690545470372539363073822884305238292033439579287515604263248676922803529159506427003791080613437687760045711692927319612895360408766972874925404241790776578531575071986510158296983911030345559394326050328581313494044858844351812119024557060859541850154805485163009123875737867452880725367366077616814978675487364944281706210782231480860430346215967634494896826229584460820595153985944132813071836009779063120232534444688921135435566576842158110361233821642709490309110941147613915241961265434481414723987775681143474989557226088793614109924092122075768028074736937982441491231553825635934303035064617359926472653835364608152902871796192958030125237756916217471453515600938810323791672370378719815371809802079565458603132340089623124184761051544422599995282525495486128921304590449719167805152522709308377605698823069275447751998734997103521426961161043430479184554467365560176609068649621114910345671302008873713003653220286995899695291670357095230313117064427150420627377216297730180351127518689586423604706192160192296005396257703052484618132939476877538754655006979132580036689876405051093286562281525701625075004355069425325746343647700049727047761969787112095335411505081617843029066066576531245779400237194794827547413974925809147071961871868241387592914054516811759236052445912590922680225976225914105941961590564494259802073282174106541698505489360094598470546147529983298452189470726695407940670073317922310789056935554902874661100974976495286896480228455713552534998952971508043863354948209890047486321802194388917938044980096852863681740465818896143763024455952964261890298841864372697426445011372050788248711058077317522207796681337234187405853506148468797002510351425193840284667923981906193632427614306102102959297964472710197239437294865746537918243812688172929353680721649997756315376641483464046194997853859598443521885062460479753839480356208109947296287300110695386386757919467228433085448061759436365278650889762456723797788080624509198236505004583579061543569827951294790004731968103454367741557267325583238543307949733928028412234593929389200512994252521294266969570719343389853458637418165898618045109075912097390043857519469898725677694604596312459421658235557207529067725811141561434836002537964260302135792922291302230521441647547788758717382078216966853877648344028691963689271348164225690192270481328190616605172871569927522514063348221772134282796073032265061296673471805568434498618424572248953411761720249184564844672389027205324840995512290888120876777388972258108811305771712117699193473313545464678865472059333564754958521750928350013306743483777819600922496158151780250729587175107670721874471800373685459618876766567909579947450470884862247007370241221697398458388391254214952649080255657522281811854046231103814679941197000094834553351677076739672865007998799556696741551261765150446387351887593498263534001430309757904760534290244525665406485601747976588749435754765737374152086343858129682144913314148428638025536763867580080172955686761706993389747850556463672838326383274261206535266540589013681473512316860677179029727881741640246893603180459020123123520667927411065578300222477394527610488543869089250030602146877467736001930305847102598485506554233616869461267907574544530387069047339200977771976255561655817693643385486244461854750641571112205161482156565731325459965259146096455198823873361084757278862241400202574091879987645621435401100612636924460529811906744911974234231026433559562536025709916717593914811950410431770300782973299794312614764752140716399518032302691901059272245611684227240292353898407870874528691107851532575285344256002353194214549812444616428022148574390616940563746830385286262452489151981579947908472338104707772861610995978002164511090919750401989789981965099886182028627995965554869070255693493235123972768456509890094009595838163081974293678596653085097323389032384554965617233029185137460939103707251993765659758620311577531130070202367589443498050169018010878719733828097066673420812046426433684154051809432913489367147003835168786158906845002098434509175150261135604728344941052883464091451164864680632297099373876036039217304808366533865752495782746696815948957020531753765530736175857018083392231706348658396383872176371212818748258370529980842570762187313661316466015674240689061181692745369634532754665662114066391238754325517170908030773116059311999755895313119445283691328092777714695120614458233989229383302883010931828468283754132671222788418832800489776291092096332199894645775424663288778216565353302859966187189895864768010012106718145218452938493981992327916412551997400655077046323813516658373861497778793918698502676475545665230829754870432214701457652318963782881465700738485329843743593044475353662150904153554362984206820484304771897383493413294409406845435540561760829125289989968845308585561281455963028883917430201431192019334404751203434046149455654662843302090257175662038326597627391030714070815700797707620220200908022162756276325435130812107942345246611427196659101400510668219591261971934845003350932481039853142727472571563427084816521883575423103493862060275126167794212711981646715709217193031599674272924957608075600459417155434447868708567361698042316159003793572800164190240012760965602860822250263909779297759499429562056589186028142441837768198100394642223111384713725517844273963945976545020430465916245770047903889594650895448784259216626769085239417623598796023843518594252255432640382612066352440474328187219898134404143450082601481294402738087038524064757074975348316903542552394128824621638124674552135292003589608942380705950490132909165625805690421604553124377825174098549669331137194440922748897684067461469681685627242316235250776038073205029699311269268067540136868586448441577809592801689175459452956656579152983863581884081672687489043846898269163090506291499689589408812739075654767160402815588711004657977905730087814586356962659060378469974501103985487079891056804526582845005344585306324132473916780433416599633754737183100565717446135842481530096201500028381414720977555891263974938061705958082325566302300683219307356614170110235337872045955952082949374914335522130482780446185419528936709764448304909550589662383161061927954009507287409531933656495002332826328401100183056197490516004499370993508391442164683429613422325400429453543218124833458574927177700649541317394591366077488168278082022998991774733517127806239263286542033079589089367055488427810563502459895491055849963372862613900695324192566110777589237474945983199421777174585942214286525225814052664198880644005283833841174171408580981983815969246112925037498335150318696733625908118870737421292895941113467239898780241687049253323413535990820907166808690631409918333829509128849705054032330986687701389733174139006006298016241972520689171293178710797971551504511338380709897083109313799991781761962936204426791279053550491732388456984922831295445307948829714905057625403682772381247377551218263826815046322799693555314372555705087851945627275728415900068823832337116238279617794582793907808837424333639790242761966101555248407419537428089219278083251389947771567830413918587386292917742222197160392058306889996297185382558393302460796363855455975336803357279308992763179140799471747597809029082275811377839820549473869060873195105232481327817767456372419716019408536685610741329184869419268882163040787103007973684445284309721045341555517022125637532149138515941408785230722834517650156323470241897428767446687366058857328685027963492556112871636905986551045916110044526674922489603662123523429821597065381890507808225069547892207869936746313421810553197682099934018059095098952221359641830769976676982844377825648709868603817898576788408576352178533159519213656664673806984832993902893639445351381585483746320782465694083977354574597403665067301260767054505695901609499729251234807805717677243804310491724450298134718161542276585872653111151041581621774205890914040953557613454429147765968769200839786836834880125224645474531318005463733116712516682450093645286042859183696635367249298245119919455006258041579539687456795771341385121569740473019063173171484734930688685715776392102288081184702935400586921250355998317126054437116947450579256464497332327837454342318585251770839412141940620727188510476585711721008887625649123345290313772947005696976690197620727290120684802913295170809650419985827683717411136172390423270081548441953973864570605177138526304532405144303192053848392738344630113721786782985332495744816191048848640165681170106019516159977729251865824181158658282535152313898631369019842613463830976541832294349450206250211921975458705191787174257315282626336956896086637759054985633770703426689188737017125690455540327341018040847647805268710357675016573710107582515681087177705895543155227093413853310593138625420372471589686618259811014324305742598034721977269026609483848870541274533686960015854987280195471962520670154614947828310891240592532166292629784082073970833198468369515642059976065155658027262059815052196798793650051552735622902762533832538355910702621056823518368263043438851812089199600189128855735231164681400379945329688668157802583757911278456048652077542829593354872810975013810450090642943252977355518484099705944382703946281838458571804008356624162576592582590003304336409416060871881160571317065417993118505783588874842003608283290824562960701613547479972543154258513927885471679698034443083183687292004197889193281561917246880459023751137058193071679179463840796677888975534484920716704674736104158655563394252647854732743570717377499211084540019369462704594864390391650322384770705337067332845024741792060306718403196250123899558692511236380020888276967611253581340482779541414471314681449572363948880351643903189794649866443290039778752937737003255557687008431346155599559406941504570796900792858888073704095787970875229271034357412618392053686872296557405205740784062103356099486687724343143455660444776296444364431151844429675078591529005967701655014621604292194519146784963444266677382013731908990414530519678797495739528116247265184904377694228230506003104703413965406228181170494359310087040184408553332144686838929039941649864069366408384230979829643990534337844321586814376909269200745481019637199726021466956812629013394407431558137379617383581313743652750993264770972364760218416239474128585666357154345801377715578467463606386291464684078922683663128633846117306859490228347434411273967329033765012071079690274557230401373343928980805940725847051705730956039110486652990330435504434542460054081900050079295787748496710096596045460121792867276813108435824872923009026613043010334673887055052970479982759806388673522796203103047417113238420440060000709196809282326263358950504249554349299588985226500531158830562274247298922196130647437225219839659682870726184614644270253799363943926307572092246181307508513988349980138889176330869535749269083755446696094927911023534361581341281112273078948384187282604436319341888965956119195862950222454026219729234092450895329576213544838119784408056234985481375622201713048513330822194345559759161174756564785815554501563242424982710592487208809565079939421249685332063685814796634858063554567129493131187303540480355642689903014743157247061264467326143823591140753675257926495807059258821935822154599325712810864372189627958429526177489322761908686500862482759352096347124425452523940308650845906473450965432505960432976266820514601151621588055735925715442721525511550812404726077714049732693961971202616235664151284177194154833447938436582321454225293166215610818013990346739345670602272881688118519986392366951064333970569223934881254043710258114171273231591029015968648505667275933036659383441257505409045315516980710031087830444667161106017637393936781121956374025044880958500138639181907073249821690374189814425385473946521305260118326318825396186244531785367477154950885608962029896020061103379769872375479805205071172321236619659617880722686513828789984360981538338506847770109583964696117350697715366962283530723529778026892688645513456236429899033507696724537502426354932939681974311551024235498885113509761823662305811218251135977245293199801523930715602563035959424946082648112605830113128574117520583018384197956551663661376103765073071711776494439564297092684474673427401879526415292923962963417101927092775694869255949414172747416981926844748570834980096932810020408522127625703427576787272805274332284532362046210606765884307033127633616294724597681183552512327277975476132567412808966177218697133792867022115130314784544111872196349036854914277447727017328875018563002191743630697049355113827219368224050389156416601782462525665764884441743983969154306214152440194234184757981427434897374526286848794620135599729105925227510478402313173000574153878603307534402718869942796006884842601103169851491673829801445482775038285758197057250014658401398564048790783356179403109582260142987207498490278193927030279000344053935206784751867811130485231789800145667415679411227742747001708097401590970871204016686866467341425492983688689221173268188447022956063011200113487915417020954328119911546286681720963458169861502008683410116044348553855663095483821783218725721499597856748615934706663177713133195021308366377534698140270418228990322475495099483275005068090247296044671338134863426071777908068874167899566902915112166123386114215422271809556480411315547973819686818678255331533114493926956033768512561690745209203853659186354224877982425290745749817185400836925887205644535617153042742627332299778602967003965230803568646920553708416854545534835354292921980083405678002688592720788846896943238372357105301846338832404735852738416633113097624260173276330592461283326774210067057118127371049908331007082834800583004366605020595919429507701479187903786138987079523829433841419201470629092102048226547343003465220015467128677542462171938881196652782055529214958202068225161115176503553461382185135599875866693800249583475573225223043023665943597270764488229932272939030143657219063855611530337148721523383008195026254037671398025836442339592462470425125826722193884169761342224324068230987048017157256517114934855509873406169602578392194476827615162661319505308609208300940795971493153007805200252517024239432063009798579546849226198662376741419527356486085211308200198204560039470257218384127725068792835413400468309151633364491917589222627501956887505143451271979491009852247236544968603019504666147433052080429206766956277420683316078531726702960847021746252484059158496484391728136667842974828345429280349020741076982715790568461211645568164628660370978092953997217391002889748373004190777858117016861429496305663180010681140355944552044924452581850244987087338914387852231169531207402715070173125541253828680918886238909911797502474560741171187745095772566449291027479780056942823886137012986733111549461090755557191049822906089486915506630863033598309079363124194548535755507359540104930703682299374713325794094886505128144344628953297843156932537619041270765368933084652477491618500274749428112600355184079520907471963645298155503065766659257058103534674492098084273450614950956901881038226870053626934970555298724052429530548388328485760700525502837639207310224174790430818697614641139404851898795261180143967603996800571226991162887569843919886086759236203844008314949658117743424728044969303606414039982949441726609390620216119152472939277987344151827465475887926543126788925610377439220296502768032970319894098790795106872958461355967387738907782527465091854705234201904030467669949199459772356970883548792560328139976986392742239886557935859979315866036182184978365260986071682661628857760462682111227679836291815353917158505204027197178446105715965365876230124341231423332316915480901767621225702257578837721340476086736840201452354219572159344877202745186398161751752215170491485830134921014304361324519310386444041778891928665467696891320741237103232510412335251626941871701618937910095842512184869630278708147230519737935873820238586959079692821774032871498678983835508535096167710891237401400100726918890898753768062556737990056707901360433717651132784879717097620927946658157558609848693455375900830715958937054190599079861468604160815927134339326913901172371192279845621010047073778008197995197971563356417506315440055909661269477090581613974994609435619249480651018314891455652416750643462369453396861004081005215215006870392959300662046246405576534229908170427556583771168336715503384611347990045525171516913619871271700676139875468065682248569319464530251136356686947932667192888462523315247472475415310980713520366995794610837740460672653458444369052775948042079561771802261061409315923726182812550958531614023518011556845159362726817101168019776143513848449734400071546370075828581227864740318615715224985239832391802180095908657724830875904088997413158431810942039743514477918467685831269199841155791329792858181537992899089513565859908594485630117091597773347376059880281176278575833699272273992403963628389860787245357108123420039872294002303010119419879417940345346613014558869186942963933139803491473855523420627536029812941092803378089338008179701884532031970762234563811249777741348181272185120974749214145119426281381457537194351370535743763342991452487267284968308774975945776376135860850150051418434757249213726990246708417532578885755799831857508527833961727423610896669131203477743620203437026038270864698857926296907447233785857594667908478052708267346742741475631234156839737973893598496390158264608236337103150294785401369616672946713493942092084752746535117868154958381434381520085608204702249890294454944501472215902480986318353008706894044765520082801945509390557390486810966199271781939902723802550417141834347579398103251221970145009794908262555166396007818292891036799094848347663628469497243930837906036317475417470478756853206468268505981323820595390748848962629728572954149941143664873722473489636794004471518601262290865888081534680777679561817174352860247590296854023365175337483884278376532174196909490401031859018597439502102050233786907347154355428211138235523829927328483391289267166170226830220322936076758146297067008488985789728596625641484553381350769834870245964516739459252796955466961504513014965441256198949626110171319116200364184550220362110496063962749733059739521045425302038459033827742086056128780563548826398263304117062516341698851185629395733446417347029195875680547657395064878249582742240705461416759637883664289984573226770234852639731516473511900609975090942769054515182428753579669224104486963633363696777389766270871673914176077100743828963300454967565816673430870213741787483068088524002128831969269194468208712659329937060514581136776300868034305049241711678074685049762147791956782017835288568419993023312268232176009367945269639086276561144427069957860095112141373267272564239497834623479839106589026160137769262124788800251643372287367394063150466870150797118882467982423108752297973429020759882584788901747986518256402858004400625197926649586448009170840552210545916341805047998372548652037562414830064637397913496030089955346500265099816083660247383501597586582721241502256372901441936846764145224682009029696172492198557063402328552344034679315092352972656253545668192176019614301337337352213738635816345697463018425984283686646606737861265815829525508622784045148293792777175084012179377031332943708802743896198731056452794146590669125743517547918912388656295758725296830576334525619223499730808321709482515956571379476727614016655737625436155316849163701130365159585633232041829074319349671366261026397263978512472574416099180656683300937652535232980608405086838527786346342169862764763424905424676015656821382230639306122088605113855839930955756653218339203500672101459280689468133990254177765687914696304106588309190220952759694165569122758596747567782310781851676535227301380989337714624472767968346779459406969483846509548461163819094796531271340992229029640475005613542609486246696056673653790545519873021064162087954846792454431212969739895777686315819733871232715276933327012610649478816894754061328520169977973335417291341464274514581283741395782337380343178935369982826233209852687604773690670273078859256168921226875211631343172477123313873317597616149451387367883457995645512751908041452320475498210561357406455976002316819015609921323475259262332891195275468552569477881921321869922139743641565843367480588209146565259458253008715079811637094596636418544054946462856409503260016406724379258855036043024258348632872597085936916553248443104049397888577208617638136503878125667283699721095766315026942951279300214717780688288096333476101425379678151602036509194532358874279667694304454733371509772747033173127180600504733187986066651868881521884730001430754903174639355509891952721632394056279187956709725497603006656628250481755292312599475247547096039720715368390215357695892799064142196249629233500031829276987864162340707984919447272624940963675347092487330179307124035632527338054856600941558012664409327692384253835238492085438847873087858432804554252240690027067377354021812318276072904407949177426483691545384611187837419472604642029120836367681322413752063489570201034298262169409557931837993393845770299664648881387071021560971225438314172381350061265915839640909939154252902820328062158008714755144052112590723033888359527014487765053197129571745879688807108462042505983848784236473139608708468151750588404097318982410911947969288202793343775829357704080143847275223543967372727972267887385090636131107068222402355983817447309215887698814504184619070098215649766108470202578726725197755844526548921182945501924373089963062612587469890719664325940351115964523190537376033419426888559439096131506659126664567997542046764655147622566874722718895072717167365896626441807063708258407600182386411838514525095360723808274626607441718642348055042610733933904775703874104140883028842857310600355528433955181848296129110602825389915970134829647700926586775009163470110967239944534929354351149294854319272375081230092778533852425161543591955432349830657907620855934910064408903896898909655151238681661643968058316993992766406159124684869019315910231888616272302829304507630975755983754120334908605070853573414817355318753835572322288419293194420888322925083868426908767568609810641570245425319199445163711032417680866069437725898721196376659755319384357961902903201877176663454155761878286298485976690201277625084358344656294231402442332781506199666926630332072267706518881358751500465265320336053213944787371884292632809040024919104433099325711750718470504472491368738067924941311646100383018658519835124324685624186896096557662531131640274800086668315943065097876734035268389663928322569169817957539067505669208336655083368559470065546695316230838991507944124821557508373458191629242286404502016499029052914753616311643597067751254381590790269925578346828893694067763270033684634281913735777085466723574114618673032999150635743200933610991775728788152081154296687244806008433449950411086375139547635524003722092238476138750802055583015287649116080236372643709053812178028908967957091710996975647856435527608067571455458411193805114280779806839499437762176323129013578879991290879592810820481692576797784328984958062183474751046643815879604405509122215176996950398456964950933371881769874581616899346445279768415141628167281911759300308691158493177443798292036473180968353739861792110886355643497630855223975161482855224330292403096100957663698531426151003873948126700345998701419763742473214338480853171392062089380957168180049985812211478852039314906833296928283271746714317974817441320038886759397015859050288413134397366132321766273457802564694514806733716011525231917785251187675707892752230832517997238097952266754712116398946078520612266756828030996681388504751774939418992140486778638513987914687673180522070946958049400194644560043795372382525093063506036424334587868072946480658697889783682029064468685471745169097408051950420080127706359409661662779790588570800631963658473049619219770331858693871203778724881838228587032677524382554926695599855934081931288858158114227581119691570326038282469104209950606391600839978659653970877072645537939806204602920915951182584290621268204982923986842311205494332305937891488191871435336664033631130674637952651972507396251963707887391450040415445533692178621654158054324183682467130100327746711861567951599929378273572281722496049910496844158816335789116928891122950479792717234677042503681635783350342588426295431563911964185069566016270269773544796312285624431460720507253832927258896783294769699973903195100650021064013271847126657522558525829460219943380179948023815722573241395392629230919005865651123203455243263878177717806563513885060657184073987646866540891402123179905181720980928556981027748435347398950545927823833386894169896477059308988212535751321706637198349669995507027436866272192382574802130737592529824539307724920060333281961920678725549795142996209521520705690129908914272688805559806849719471690167701815399815928255005268691442820053158879727592984875034903901380253360115623273500764519067483147101385016911406848921130130162097514304108835667803369589536525659659479816959475986190081732810269399675783806727844825682015912006087023562737857098605715416232978941761401649490608008343501287601994600888537226279175906202544487313797887755050333131081830493722107302840877781745229770229640922490487089833999549196744287900223677176733942088701866425503115644071298513075015504096235076101506328222764880460640512401362387606207869877986109649868964672411752156371457235454254417311432561135989804616163899574716359430832011599000335710926036208361169571279653666669757193702308646035930069455152892306245552553311038517583382604088641494077069325874421842779775704183325056350764519167062221879122738350023657736258158346261781474167449718003521655358278179585551925615634703768347007627800656358056541052789263312618397814191364725845493074946091222797159333267790058303923213421983613033652529415982364462424451951759375880112875164116204078704283556479011490008658506312121052365834819348710160903669347045012564381499648774155843886460142934633440750379287214084214014868534336999510296029678221501324505999892581597758044128412187115871036046052052005131987885048247802325496138502978689653487866461418579518774025417906786945092253017645754362743723977451754760730654091995408461776171790228159358933813514639609798210078354774205449343633076306502381785945308192137913116847573321180059408315378928971509010544796900895705246529823639100348190292599428117788969724343007424484812824632240515544603508331557401344445285283439695648777000901164407487041354707882172037388304533125399136104127990606611742513914894977024214595660497516786848838628436323816474754646049627709038229503325093314395549127309965653968135242468967759623013759005810514899397673268418514153934898686593557549455414951987186843035258814876347398431721986145332701678609254005830267132852714735135220800821881450354671318499624534439359936947939695284020482812115769222581084818611792109769176576684882865232612899056106212841029302484857059836732552010513459313732416975147589737259335011254873179660573563918962620140040409955855067248219395320798949772371582675277034008396733189940504247199720898696784098409031684071617860132583933242820969623755491805527189181115311592519665314260961018133773811629258102422264575450851745860568111779688986316847426090713923002202696729632353720087385924845322608455511894933574346693270657963961544955988028334241905030030200688908197238861359064046847511686840108679525295548982993583066337723096302716300486542302323703914058694930759829015656575711417084401205702320849765160351451262549199539512812645467493698817300343062907000584516289806909501229439215036333897352537192699792910580868980976241604090558392216666347431767058679309817066802116741999777045916898850986756045431580857299229534712866077653178089287654291196879928945425302694404710675062091871067592360593598750514091138927543270357477641003171691901976762724991630237642060529907846288873242712002853542520896945776320520876993329939642936999901700406439346715540618415519087155495583524937401455008382230075173899544020840976919734319962241848648592731246836732134854250427037786734274324420358045175746947847514566806843056655387831177933570514268017440032660211882244368833956543891085709040190146108895888263717945315981939512510078901379391069205052742748215298937939168573434248734103626641281467590951475433616420314625113115799685346325504102495987455398723176517097832044994529124696829420632666630741980671187314519686141169292366019955695868100232587493155638923962428686118473557425470847005018055434625972804072085891569099560406553887856387606363383798398090311334767270522513726825651375963448153624039883619344411021594346793749313639864603231132701743982186028262224234019753308309829393514741292552081643339876133522139810802736518834099643918987391169552933664849778856537329785228849999621065947032029569753655966573683746302535664522713031821041207909296575816592313468540207062337243824319795372109113845862471281947940264350287810657051915587965163543487004755948633360331640010507502976507349498987809658518578058433145284771067181635230870400889994176477482359483539904219560593005603842578552477964508187480250723551259693737143354936480984590361715237478628022543686504532411866535046402941728371741142468660661145447911890319948852078717625629500545443601444018709404620098201208176506855365164092095382406464073325478122800275109646046034712949196385182420396520779157214731739452733461719615544288880425150369046819035167015953354287397447704704581499091597713945199751194585545526352753883199831548332666350387768463253568379053933546285753226568390033968020516317851358835460739053110089737122771191695143079185446658882618862479512582615619960763664242900126925519640693605107159524971022329083396203545407504838307950786923034920759722918308686148410625774261379412775101954632948013873925493027372649592612689321270290957931095061337884265495819105897633656915650046954579512001219545299816979303680250963510268898577925884919865186636985496879859478264554138077265538626365014834028026624707157004098231688053612088141369372361038689634315014817808707168794498721779621027208853392072308542113965258743326639437518793364827686578702854322166113336454770278556760714789514408886995345579735406653753468832594774069180087702017374636512722354741693576539343164201103077253880177338979661087444298967024229219497243200412920741526241399138754356960444835188397052494236655549905616862838275258739600423450649822863793393082311870540874241471947980207590954519724493258587354528264320561157142919227139327240322567253583824965854599402922202321674692991774402521576665076913047043016262645809718882416188137160397942304279135904518419697836038828546645367838910327369452807314503404784165394038769127402868390846570086338334220122057010765786001158929212402906329269430537482382519166960653281923858362571283974866758342797389567914049754643962442890930799655597983469643892891582067146990233299156586977702153530739919201586357534089865511424782513277301703637239397518297408695197499507026151554550685593814442162764884513628635492286762968966358199299538666061344035506606752415608158885136335741725421023083411675442084231819382472877602115171497189043453131559909536853248067026289475618554878703573437993208275558896623356023099378893133220606504329887986146195377864290847581853153064410077140390042895403272477159824251328165748710930871345080767411081733086965938846192112741519264920069859383226423382823378764142554676810254085271912783186524189344215564004575617832421333415116735289231667864958567725811166132640041397301389047171560120400664200570253419430202498105258872868152905372374075814040240731633017492606765984362459980733953210430807886962000575647842052550018002520185393153350595633553574704704959892069158577809144142698683456119302821882459590645006558365006518787768853425839950476536199396928987426677904378433634376528970927476407912209725570880723232978515773516686914599288642075101207507055047969370959117334997471882040808700331744572661821287428842440560705909387584790775342980366372587338500461317573831293789490748827269408150191239823008646180060662260158243536570082379539847514567560792246662272999962488897737163719346026202664053827654977520770791234546663793314793930418761416106456219803799700060224570335479179891095587894967522242261349454899215411661350258316456436624457504409815556252002252778710944598035331992514147216819966063076586829956587523980381861598518924086127610159190651360624384416220907808551014134951774216024380432013846227018230594574032677841932775038950567143353149856809773666380110584657445285532685724788346230372146359074593403068036032316026627893631839394933570789022399795522155087655959037226491349405336121128160295288512395397480111632097889903529497135445869941107901070357354747598169387780252180610901679650169597075192239024407843801696845463119184097419777324347043295526236335398428233391089369941296915102262071868124051878923230327226366256586382029351954550878834214939078625900174037832156549020711596183905685558297325764588099148283892166676411426896405133220561132050720336888182072070485291792474216575349682930275271343385270595527697525180396074339068502930453005533909577629171869714300824615253357632638850751421844770092879042632107519400036420332980046813736444943324977761681400855691423366168637525418634900693021091798893692174064738363213028968111696813447345545538476001432170018240810446178929014274478422635117156459857790990254559092368582987329925569726136656498896697927212600187135158299175167352912761083018911151914617918942283643083839639086525132337219339561709925981120773373817402301081964353008717227649062583357464236325231907127032727818073653503942727128686666487804962288014037250184347677558391989771135299636074970771702874442893292496133088186941692472675153825232522933761945900342659016102742505357624329132798877439182501181859992963777750228322568435417496785080917557112546381956310081045822220422981702140682702835409737530325900612610852489625514324439798288386525061035758807044207523114552400735501886062596717269333760925840076819660565518008731858995811191077590679624234909477148106810675959409286490741164998588254714638058310764866389500794876708847228478507059762614388994722505414969026387046608293568185210926289070007697028909777744500747687744217227036094347306890170238061007157219372358006130167985371054385942277497820672430583529651296019735314637013262197358560323381209216430218888993488261204074995674755793866670468728416468862212940035790695948785047595506317809298430348002774332969277875660685751793953488191363217284246386612053762544986680691695210953633587854197260879027090524824382444375353215682668239699890178929306441683557601921072250135380226607001436464747998002096919100407606483941952320409728734514797701297268672720419534344928878800338488913544187780130480949483439303904520989076618438961048186473594778656967129739103256962213501287298946666358119890179258848106206054057902850406277546400888745872304743350924345269324292620724421056857838912107901410316963852861391142388922800428693338980583481784839726289378763051274982057302393502962073552553026803243461794360470027639229359932432304202660685715935344920130687543530055551751481903168299502695513493723632699876369466019901719548073037101788271174842723482452439645601606468317162203696056856872548069986353468937114215528916869551533625466119890100729013387439911116893286511422301267646274119788928352667590122813354705955016816290809452528732008665742613513786733890748920447196891656379429948212164766197313330417095451537700573129722920936093404890897186649091078962736899893395871838822206680038665353917129969475231390047656600347906299236599133282430300527210375563521879517170651196828468406802242301664176669878491070750566741159851802090875322750348512882035052046998378111822227234523000867227783053301026687359764495632976409373598584222213296577778667299256298866828032543214790090550690863101253492076501725093418641124399375758232706106718452909990352499107722093889640940169736390326859497580615646365140882323461214983155457517655614360289946375536216800644981890752543000003640820553226919948812333615564294630005632567028768989227517202900877842831230186142357690434681402317647470885063863282977127751126680248023939788631014713385140377018426537351911666001399006816677978949432271423842973696171740308662545889023224966508605508756329636852864067911664265350141880408633691601714695893232092588964354019065658767470151644104071076543222811324681169762319207172693070663920674862413056392947894161328779193293251359361780813771809342108195732806725568432894292589609093871860683019309847210604468014811147120168661368169855462532514045041489097685968177366507225058829191714900814688405176936144288183231677798183167331063673911413748278048831013431511665205865166746699504150422022209712438142986724865571583677419729677586488292208713909912185948798071586964232463252939871857441679280329967128321825848722718861654294633988218765763834261260518864896275859312467407757477850950725381665948237671941345254767312674534520955980630041198634044001488810498899091352758782624358801613776898220334538506266628470680828561621884465284411533534520735151929581456273993962607870781416997571355288383082601380579825653181657720385172782950636940185568981933145608328202643322581197487348535234903646137767282717847512135922795354212451160488587588842032192472763113325223814274956734237054335598005979590696535237099982670116509714576269483838432762541970871123858954579312355160908942988995463098542582210850439835358997332063365403604609369209018181410076606790089866837832746058259869540277686875966070389369117712822945479459516429643502217866249321499279311622879988352750864250998563394984460256493581393037018386450631498269410153512653768848373209702619990929212234827719392490468674780692816127733597216370101528699173003385933961927887363169648212863327599987239982515886928092091967268452160219103660836861248475271455705239882276311705206363809637708773130011887594788274315883398023053468263371464758789840859025518344061284534028097958969185839004264406632883934202224967234155492979265852560286730757194269140201040313923719672796339205325447107522862642263045322831095072685229027876568591032069839129150738519204334070708482545065307721624581087773778152572236897744847946135602656099032564257201840005042106458606344197552593915245052564720075742555116497048587530452847811005368751568651907404373499506681563989632051336626017824418591783166847941101223611679653407223963244518097753709082526768980054223351130753351915122963460425808163342614345012235476083198038860027796539090331629666717722502538076745078218785560938345401106140063699198118012336491817732556064616799833490008842687498654713493635309832937532979453572167889435703859320220739991369734400906518763603760858108043862768174824962757792746175844319452153182537679186443086924325847291777850421320187470857490594929578718323158476530513739427409406049006754710935647325874673736965804989290345601479942115116285394775099213327466572319251205279804252947687065045049567577995757682538343974104406189066854201914481960199465133382992536399174257651336764392734000404111609780235589849255288077102468525789994942044998834880213301921273344286617135798512872212452912584463236166110523928854448198576785795053174487310065058772112293304146939533234732244671140039645997687296083658316633026853778073602803671374745141546823443060413475333864694637502870534782278407470761252966655598076703917935459563981800476041071563562197913808163800118023650380364264128439593270950670981256614670116912339491041724386424956403038103412665292367573903621261628604834574923896200806366756667612507777976943860105102470367127104885794788243725285303556865028360066735014494470514477406330393927589331885311755992970418457107271910702799654208485894402422486940008606969019402010553264837916235161145776896550225386068072784278208686548755368669405940719592214742301993159488884387742069675619026074383169404501564388005124332928119900340348518594675770410648777740336256919916065659239451472071579770888638643163672624783365075830875825015035737178227108347036320198446128140539199999348220857972445148014854051292361049545265504285990759222342837326840615520759378630020283061087016338129931062523301296379793711228550884683649382514174181212792595699441352654058553243918135350557842250625932070555723402015016690959792744660506044408930511503097439973688513823862205711875282925667895800862369994130463689543582092930618128821934269713897224677832563973547918259425323136300658663863597402304199735309131110595267036095729020268302316842410794892611938847490973939823069493406942457000270148826061419571665092028618044286792877970546581894737696920780163231608474588917555455409749237520189711508571272607850894788351381049484062340671455412906814433610368462084579405964445397253250185353004103723667024409394291176261569146737039654647979757658603252623858850610000009934363938278579209432496313206258293617249897202305856270877283455321696625619428724918251062175362864471144738532853005271255524896438270475100722674869224478110128574847278067743061544280131083701366650144112548891594595712521187536006443075281110910613502641298246436017980037576464058040453221446840991072383979311502801645017396932990393330674615720938983094386979110705679137754031165136392717213507990633148742094743523518441356624863224994637157115191013797259504854844446027551613460831303151456047985610339115291850595189638846456156472425568742090546902293020923502881403745044487488135602577871219349494860003038248162477627009743529516241850741145566948212754030333466065460213850417885266403587939776633715379795952807344954778085128297665843980105490689779143037488574176277499304484604007621523110594755023002854037067493026961733335403749082043520624655164396872612118193911840530786429287777721724296709922200369920217713769911197682404442662285460451862093568152209161450908723499042793029087871404083714068911407032219043224044870113639702327810304837454813265749195418708242647281266670801451106030924572915424951021013615882971542982009611892658427062766132437476627472366537960307543773116005776578974672968929587320146043473073016244027495156826915264710508618413203611897857480243687240794421675687262073471254907019215542606943076745617525575308794359503128527604654650875758595671001314797620298140417775095188042397525452967986878462283458535789775382418636461363011355024295016728677677027514943283398471426126986221557442946305637157574416353386068977767144608644297729483147078997494425101059530551131051872318602109181086189337062386125452328766024305540810723126557813240277728682948585923626770411576343189409452837352051664366783889246246637677882249771027334434670826049358543413544738117960777668158120091215386931447319849948647356379358667397094173979437588189869051938334080307915441588976612022892577410652799038022842787765601424369743055413522989509532288613964062596427509596200144868287059498782673574489885217851212670499987821210768840246974337132952833721309793900119540801200048149891601533107765780471105417783352838260167589417638101169812111343219199277776981620343059377560655729843532135926013669553841732214325874412890266644119986478361401909450964942153523527302755353061115184683511363536790957696364323941855194011249851991496419269544153866163267387111389910791070214897609650027178292497783555440916001453720084322136954747173927667427391387883994066062950754994869735566728157538383784339613616811576060165170294058008971249866467170409918660276694824601170074375312001319317065885641852499765709480621437668107843466442661953742686633124461089015742558233705577394433192836519774154435313187718938970320867999037440161134199829896765323774718960991317525747707012170133661852214181309846884823175565289703080438989138364532325300606792115937743812206576966996260842780597313120760515465346297612217535338492841439568175014520668367962202027562145127100854610747143166263603372570328541053777086722751483177658656548056711954230600555517081192119021142864684475633295976280334720786605326453933299861567517268592737845877236729090149201634661976381846567908261790716331610124570525892929814857050480582287221045603296073646739146192025028885956148133265254295684192324427368482021937381197214500192414654247126366761429888617918336613527397099965277986406066113842558865881419996955076491396605977860737287847036366244046399499939974040611518192224079938044946048748145813488992406171257684307619821147281666853026049904971365587489750994670213427119715996254751353786037258832586741144416852777222075240677870857133164343128909272717908667774749420765050943163234624968878460610280021569258479669671107936704968885117839340803851279229719716024676150952615248123080678936836656923449655893082546435957843740302978164096816188465354102135419950120324188164274910005176903184661769453120256332739109509919561955223512431080111795901294150836515105760621922915477095205811106795979852604319450269179492257897253543683361904074792512117069488691518501385973678601355079081416441873796208522013934756657950268549923238062149719788803764911696370983240203662946098637218341175212723812916836344851012272991633326768014393552714524054124745454527884609436151104984147880125694449834155474542422039809239996833233484463762256686262893536869595655739233110139716451491398762750527027287129697020533742604637746035025956141977007635823215472836991342126622087388571318441769063552208233971300629878730666092811241714400513268568249059156356228876405222734560450766072990960507888355851687056238713030173251949699661171464522418108834497143493162273134540627266428548737580161121867352605810367933538845485787778057921146355893901498445228164452083936302699224863403813138694119568891440171907291475117410808471351753401454421289112029977976975857213651139337938602155599688778661483334062404505144592738776263358887087635577945920907207682370384464681047240259018024516153734861915411603364245781058564744521622797735670201721947230500385355615304489466885312423442384053966531983176289316423898994644307031779838843449088316572700980431855972769476530847524780295564319961501962044838324598819801351169305586959727597739550557529260485074756694774295962042434429533838023639070019991396384224228767942732290161815818288249693924206892169059206055280911370439399061789121645316913524102133325716140295238602352564656633943931164632374893909575232322967864751000677586639228196306370070797925722235710481393453914476296579135569965579158400584344035837413756578758986997649979618679390122713889748889393900079144566625306996926577704594242240429134029239651433102365216345315775357370722843928219580571328914044937708322436574321578477393983662877923326065506587362410742674899516963092493410801637108188707437378911546194682998633140968786841494033720723237792729409827061892731284525925460422449187382305688478070197515354040413160197440852943891182661840148123009969900919681496697591913472855851673277929098829666025677078529328383868045031206583885658170676979471674969944455800445073611580085224451009094851992847953873503003872567995963946071300710512142361491089735975866059258204775142116677966063503154947592769513217000968359498257818304405233982356000173668742673644428770364912748480048404499971073243949922505324715446324141619004906602430475916209985358161001132916267853803741131807244289200768475542677297320742549233318481140614967250968179695857495808471632583721828540652975742506511712215613656661354706384368361109141901414416571805080479296435304279363572696309940972384707068479927417137162959210005587865794960196915075872630203693472583399196358551600159917368464971969642650999816760348020451555350071980829793001913633512663231023912780614848881165524722628454713818314296440767498027246924839026753744593960628549046650482465992322317147212655969305120273028841501549657861662095490282633084002788543024199108092891700241107069239715040381615340638456506367684885436879645408696345027932646982983583397734057394518519916896187575933817120387689620272069014338669236054085413729414921370409379694403472409012048030992532354646434052627601106952364874113787683738961040362818531247182636775650967966554369998219043084868748510889105522525874417566736878802762905612839245595043496172705136400445800934411910795026554213012176771211587507065092682284777079071924796403608283859030858592160347078848028498571699663629396000406296894249228015255299738189519233288195465492109053894753177147267055870271189345765831633142395622422950909394506819556505121538546041350148909045450296461531874856121964254162792413971529756131611628212124798392825630219036128208573291181849101217218058671135312448186083354428319424758072474133625385110980362498683371329260315688883712727996551334261149188969537208813422277568708184676169997551782436010255692445939245900243552135491263326371128760992975106489230642447270065134787981373525962146032284108559981794284263133299651073999921994304938286221192487284538009959832742295275923250804881707110270894985937836745762327456572609914322041688805726930042448638498850984652391842095283279573389812465597857817300274965164884712581074790605379992873207326676763208187443238119595634974417652441821578251216431605453454324584134716189984833129401198891529194315615371910241161482853593583867040393741367997141890985954728463980512229114488046842293536043887262321760088506510187794637577819947854702087111455880674413038539824180244929835590473217256910106951597842585620181692439181128655129587915459652780987664104842565385360449929088159231664102350324476640892224429624687809628259109419455789393356844840382615907390581461319612219012225392375275127509510921827398835400927091749022128859264134733374443904567687807916896252372560624042210080827620685418422035749464644183513788031615150730626548571113455780164001150463971012429662758817168475457089031579743895944873560826699141278168852451592384469247842451122984135175718771422354754644342670404047617207041618697316737023130360494178770833019735804308534566545410917643636597148449045791092163178668585386817011954977489272261485906052332437743159502398023519825951642407416916781961888336834300844602199263249238199941093287567060731182780213633676588903592371760767870764828152078934019516349717579527628901766603509870333411507200705231757877751443464628185675144762363250813213395128785366219998463900888312263666302208682226085332982390788702137517363966334211918507917972381958784070556966058631581380544909753051228745903718049324757751661295581824964869263080128252867803067482246542481365095758268585624557313948584412849581892262411593796436299165828315320469019976857999263391663337528011959980246491346651824463355187768230802344125279740257197234621203267095125273817874214360778757101594787153409011109774509393487497432719881561304292501760888687127435960407460420353172983340456928719947481437759093058655960622377325888579468866684290324011057559226205299896396215299399268366506320603590465137632444848065792133485428644920108667910054109788783478079493181513403703474468603775700432023462999175191242226825881449849784372410480724118454513046570380939032358559131734467474813918144694469164415679224490066983628058316951480655732781987044095853897648875052881587132233646570362397797324100045602604260285169989625556228545382882288153828911060105533518598792012281665459634587731468861947187275540914236682844073284247026615458308893157593624293265742310467794823575332767119537809480238175263408763485132944465924048334664022085056769659860281743109741306789751303794240811463698457866360808997303238130599670274992280143721004123722676305124671878353836871299098392785249888781453137950744362028293333078950848581687367689854360329051876750150203381579658947812340143609712045505209576625802119145680066735470099639425236904520533398093820589243961225979008651375590664772292082739887089774891295665841128385877963676322445490131824321589579778996366667696792800025424445777635120809991273072414445756012431897877315407574191872346665150728131281673301828088312649219504269724340795692363903612978156387810848174729853371096249416792708570468049456682844492785177093155402747968762512123012626672016095581818625882666493462161663887144226358975879800979194340795350405494203525071845535381185592496922109847631389060893613356981274727589070489884977101027592404704540239185253093076913826881942776220152682104343463419159004969731110740370906156485201589782821409824040510371022168755029263077921171776982895779230518764966250360522250427942888846115824886307323415620016259373600886239938196932218069827344478824280439285061365413816549308989330040255792702397681229537600117247240203863777003473344468806757654096632539232952856578517904287832691123574692135997004688102267252739628740863509299572519542965847811008904807873581633771848328255240837050485554270155964792854694246219455907100781620074739558396444880595130938236474315581362580104944851868168482112469089318922266212707815642610706275346199279551852944267366065475054347421556830282932477148892800429969707137457634739780310622176037309285484679448610014833773444235732073437605257816676348194455019679918752188863367139197319108232714664520015510377051444772356981451502565196325017240959615541035638205534184028869286931562043197334139322023793575274340055658239666568996474870921414132628774794620109185534671292904512185785076037504652968933243365367931662372813439776971856104944056182306226695344716960982386629295938744393510167439137414288435028853356215917452472978770974666081923649236465195688315495881427213201888959482359726767487299056295123679661747096376035746873438468816441155060520957052962285049495749831820563317633732507139756590971465453934694044078934768493237946606016699732574357797713639829002407801059126231201798789996109900881975465648338224797744256255013733414375983104365844360675998340751479958764344421934887096969843111955249006958801839490545723339884580669847551898693754086039276945108645471071522241012103231113137593360411689674393358020840063259030722359127093498376006619646703718786064847283172701914484316946764594223212411385080166492823533307424293883245557531877718171107243249158032606420916758696394847073747983994828456773521091939187332875731766644708841845476501375847117297802404049479168227552798160311980177361882933868526452260292787360586599270152514443304625728865443454378225548693272991277694588370554617334689495212026171429677480042949735129967314300640907348995225970322634816760648794447820412143866630555432900471270454429312091533051140746061800770096153423261136717384069740694068170198847186993973165410484304615743917702637745553552199000146092262979058971115511369562060750029924242600391282190182467471781954599680193351689716219009073292816827835099632686760788177438880137773961477452073662784756288703798704013621915702188996925897430904290960444046748591835048234576381911221996027977453736040607421450174572603163178583451251150658992834114594952118043381400362032833486522411359988729440038579745833014097665095392710999574916157833862940074859410603375704784528670021180401280780155460717435256619484940346864802411397932572444840079129884535733048848549011445462254221497173229668077521532019005524069897948514982784746919245145918717730684551217243242654322807596263179175255194959890884433128888503069931453980303071473411095379199842061250996484518014079153520507912272266355196001392489786665991390533992638390062178963526392668292779929124258496434814082305804399947827917778155242915766682293704422163538581047433877417028243342233149331021943471101798197421453528153544069447833654333494711826024864587078236200369141723898519988734059880960650684801493316761338429686350891269460277447720058423324301411899899336651592978145637861722423305666255984795703781757646554799246947943625729129906593906220906740453582686585454460379108334165655115324993918079559180848787851504892579996149083750372850522468382776085559192338547984330599051589138458007620476486724572571558486563003962485003192522154256331903495362058554245555444520689830366975036221882912936854352926961929110077197573859235334218000171296927431283383467991206192550827875724390071914701447333857892326492115669232022609260179221678264167855490167929650116345090639238004085483650518272045007528906700657701246486824015413563736123478768459975969083341992792046495702261717882204500066851763350496109732639476710332676666180186698219363956150708898569832038647942328308041803697198913968139271260413510964294933712454917190923370197040793377185487794325618511838625507897939832014935584127460031868501588482955618287941893020211287749147557871851331179133371669674738691821684785168694767952668738193197481531875167423858312233311998652065175611415095928936863820122265162569812215856920104057568447595111894077903713832178336804438648724657234868765816970555655092892029792506468705649187199843889856856625641260327557533168250266505428013880502938407688523876036095534132087892149070559832962930445471820544565390646294859992545943601159495218102228715141393572094509332867286516883165360421014879459894919649213222228625037851189033763352138736304861944220120910489860552972175298829286875095905982255308844133163776809295592750231937095191450580883006236269855180427704746564683896540788659912827991869198072077231341769349272759578347238980251518646541257606574833345712052493469842120253552281827813371957806232005321357518827663992912500461787837559402950703243771760959979881316475108761968486961871348225618928239181201864248913902146937652099969300286043004808382070237856375296711044343332216524897630838608174796633652561577201550968381596656908380443673443729044491531501650530850771453315167585519610543367041016244199060108664472032182495440948477719860667984623067060008897161741791118471259271804493091798554692398916265546167394514223622741610246126280326044515293870819998381956999980489544933986387291411854975154701759860515508112876197934774820394313783080450362608312118161451278382453815809533667099331518159210782026657359180415768475506191873022208618153254080658064474129565430921259588064730398399463152273798356112770121362566776463563054712336129397156104363313978082423838428749748827448918157089765935568729994898488672595730449404852243336707334690291793622686212891200488287710964198303403528898168630844605242174777748823828474215602554414780324024741133340409094149171743784935830398364747759708979199765142840475031361303224291043085545252240641890483997647430768103841076149476990314128839343225586547524357733918999918386434130016865511194473668869970186489639388137666517233977291298659351021036099386893552338327955771283243891162833507148021658447885994397482148056799632677401353718839038593223284392645144067036839694753655465803952649043321700666459351510861843460315805268302188197330243134836881677444552868736596399831337793624459280716706905219386464345508722283457481658275368671500625916223556591527302346306102760442922819016084913395676163269775145470838159790096538279506449971655752397206795194420802344104123370630993808781515407391914905216665709020231971366346621556686295499540674540631441200809656672264331875072471906243286297764623696043689575051488209120276871502009778882537434869247540421937402047089541044130936461128786458991710833245638895893664396858726653242511604271951363396726610257455342755066162803119748849384294070621820562557458763689101782027876181010613172924703891416159537052792805277342973693178410468399550889553599149097420720367244839257776365689725367599804550225843699166667347168712139844036550820781545904282410230797881911024862323605349488664003805133109685814941468283152675084145288405078045283410609228749825127326911986790006338121212661652705677209155518888810446036750828310771190494366693462809462133289914351236649016945319319005419442013960110290192465590416364112556482743141453646109391558301217812657257356877520807088915759351833450747855057834664859853782247248788101381969155881242300648779917194160786172355110424552609691917983210883413074680701870192824700099279971443748160333981657952860281281565932453273373988812430333378702964227373088930770738438951992507356609608381497019832949459954073440135605925448453378249011178198269987029926992389486912364915641502656506893064235854465583852821643488979557854445368434560080606740022556163849030067468554305598275008219583730248591279887400907771663428926239040067229641732659302702804799791048562278592066415280733127059399697366581704871550226901778677128608460970656224528098977554613004720700062320786392828853261334324747994340618769477188656865425487532592713922260554050576166238215939266328360892860787783716763964704715417262158001774305196589942428573494817020599785934747670960764615626796976297483343067905129145106844963020901785346750815756141764106602956069696050296836091316841332630386944909326485928642755284025952469385642826583982015501160645437549889379349370296416751801510493310708014005023376717530797635694097307853291142472941031307128661695385949045139422475734149457924542140401737967292806740009565432248849540576420180478292114476416408119701814226205723711729051970923750060104939311377357144133509793624639997892350356060187328689272627882854650021030648194191219429520336178643546078245181636775455751008201730659069612214609070285436158321115358769643875695913346829984989480674072061264731088290207379386458594784847900469572308368847249711723683025752994072925822317990088047280989884216118993187213042596249840709717416258744752470707601691465981966646180117290859999243064380144318181982610037992168571282341618995877542413043777383634134231559721225867046303794999806068469523614507988988877208946726705038876507460452589584350339601573838214354067298091722726317675464995727180959615127897866958130692023350834512899146597440977360324503719458889683002392100037586527359160052316072216442840522563628066158256953815768371826718173788735397882475636714369566603499412504917981957958382396568682614076873839984240448030516598156707661183003219830801927933756613690011005459408008006051835340562293373463730711442900423053216327578560752693232502954035392846729337721482525122214160125880585936519143678018811759857892117372329630431647648467452407779921919129599178704181705840572042591716492539802761691485322007024095932083271861660052383729857342613268578281215201834802173693930553439350022546635962875173763769046318904900412467328548040131004063975044794081059197080467813704944586231081087017260433970535220371891992889191216521970991329450175838564675292440000768106295072645876002722242013424107792382177888644825691740166144887938479723929264484229661874905679851428962130507136018024441061869480007979530448954713164554041483378119905143596425131999848781654935431176053881060898552656578792337639199363367259655810841277811898290559518528179927540957324427913078628610166144685598550549905310223227244506541138953996077659780818502783138655990075743978330464720304452559687804155360204588762011889895268303914274732009495101206513054404040477639293364619768416542667488816711939992816126232886140597245134219098564334489699488798592784096734939360103599648719003757173450938109216660222037991633979669938382520357435821367811223075995579857752077572382653168475556930152356192829978447474886025511386475882961344382339102230774675602767814156524616290146442635331980408508514387042290885659961386017091106374322691691061104975666249153293844044131454906042877967964350982498377911060209948933258973305142660749061168461698195822713736987422245339091664868677077222751149471742590483122508761822301994778645092334798415575848322096918255257560149611359384736661034610938844187785729115580285163567465653166182513639059240143015256140155895813620204042942204277942830934883262453025630275376857749366668522124482188759252858170305307069931457882848430259891332766482927811698402105361193267045944049075546216239102383818631489024191487445734022943146118957311873945096678345069320782217781097575872861046287881110939656705420329160327026142879642263785727235148286519416843393397193928922063233992819348512384582120825727597004229754684580337481518742234769664431807374336474802498184196315592275905603526940981286597318765008302923174532113311708439378464000677288017492047716829121893747388988655482273376711862527024345412505386335086018571079698212341516871164077471639035275645131067791752135773385897371647658153652535230247575417778270882943255749971429754259667505404321185466201970967246107176308210976970674554479059130401670392387148801559077343358387361101253425058212096652541607234806515932388474476243074168867382189973298173057166340567471381949160802953865097771805086384351107005883332332057608272635315960836882351852418140655539016511121477015118148847420454010544344768485819955865495159818208780301948129643648410152402864689792652900936579562127153697555066132648692431976962365300787975942795907766867900009206394008316372018859528898074761258379206782156581571645756150325945109554216243104273837385449088395697120440686264014983135712218708117238890128646299256971063276796251138251937265200130612992164058299055197096162556022628301369634581751028510526612907892445839296081381559619627398581132896750235526353255068599191981638640622495082233303578465093754870648999305919166101561801405534520249129667538815042107581800559714244055884807434485653967048702847565097303811661929950646295686018638303808351299174572215077923443172952437995775099757535486733511195933646920456090026562643164984442187523012642913451371107306409453604929446151766788432545263695853214985197662070708126340139453364379631065565535889337376787100313054301704601072417858849298514398063922222747646245428703151879424640755204861752583542784228931723149296015179731736990570209653850359229776491092278245634622323250687745646691686014149785567177678193659264154083704583059304982640680159615392061127769557065903105385071343330733566175747725161830204160373212207124555547424251243065254698237395623321426653130787095699852181245837337415199881699462283491928231964498905432004759865206800341299030297360589974168359344993515668388313540897875755538750155878082747185568310610140030030533730511320168458032661912995882936382932506463066211842255634138597416039874347406056923968677805633526506160889295085416441402707671779555201443707388194125250207221044856740900451299654263523151502258644399043540977942571533825981245717884583052151583680259478635544339623692242833213372657592042931132389248899731235229655442354740800277772882303988343283437613415624786085382586747524236432554812906802687681879200546838705939561489354454588644707518705917324200908039926070104367582695489499656419859946373237674654551697095496423073184924204609672647721818026121472035570765879113207678472796307977101258095244069422124659313690638255395954491721070893870726765104970615883354065900461547885403305429418195632304556438040952448009861052911887267241135321891103180104218225167736683972996585061084282877316340837668777721261416907627877548084595963895616358999479430685494688587388272092382535964995332666022777867297915411741439046902401071769451304094646913976077836525816178286707052954827016300250938748069066352551465264872285994525917912474242105666834419364780867321690139179906048280689471566691580407937678825402834914388030712950693687594870739685424928018850118605305987292483630239608087187729685322547044471759417389258160090255372540874756950518585657869742878526319077308511076430846541947386861359916696474909765158913740239449983170206944751365967181822286777413080362788483487685919375731408463003506160080473914192079727752593968405287964281779403663111412108724253022308672130823489355378797281503434643248553393320497146676727786075587510020345045446948590537307155795221023444901872943294593838785390918471450685512851232691148654153275054242915472555346863166667147984986556522531416828807419696312408753660783956893319844567920248407601735529699749462827948611378024196545712427435103251145454604610994225937525764380166406357322442613237347471751016795006736893243922835797480323815884616417938804830556727131138860680374552577361824827220540061060299408837755059525247337618802269634536943672416593366013176842896194047076754041873332786175150898334886707308577250236126821860144236121523223196038077900154011861372624927904425880537485952244273741429430620394477315835920222963208375686987166550451084199456441190036314308618131476936575775096779966593407550779278189480728155253085981663365788012167573565614196584180913540396284879468479559107904438731538819168172963071265879861188957983102158189638130733872048674497481671704423822207870349788438051476859691309266381312814133101581990632906126181972049856231058528462984024779801959346727155279734886658954664510879926725941867327093007588478236900265594804835398739225610808366213115921657269935504595736315054019415725271041060794917440105537049936063384113109809301655827531913176234910434438010725178421393523011569416723992755950375502072918332698403816178003724948066570899772754219786286811259827677464257418911569714364806034444080704363793220193726357280022226740116888488479088349564464953192441340017819392187507056122718553196696678834608268177059427054850696352075086960084776764072023723607476838408093309311907509944445967286733579020141869872705223677398006042023626146789328468084202395488839374227700438447784343476995781890453998518354553058770750151756776858027166895901627106508191072067317093331473867101410150327924471786149442644248718158241282256932219137196912886484637870863768046206877461543792236198614510897169701273634935124331507893818125446401693832650805003670303639219830109466505776614333333101796795341056245634257737469819260989491514765901504863514968944181331931714765103534636036412755502228696218534905360977180074490251886787201686834074199718531186897447349835343458333002581653124129395317289069969629619003343142411152157445912648837254402117190616969678878758683899388546752408575490061984703835898457724911426210429676860794587563046584405655142543240782314085861863315094162467616729620088662520612649336916550780935180188796060770727271683085555787104503221999867783699538636607898208865003626424148084746348447247372950705274629606978306026027593702486865208550727791204969239056807267797353689326874579917175753393120089819877789232803425136201374769246514437822438504534355573887175715135791312625497710648868351846504332914315056452273653127434856524433577990985463067303641095552773854066224518757343424237919510577568494752056116625659619588284562312705926614996596980850167980818144623611825237356972336161775547029486835333643660918680889025298275974849311126765931272158641967734281514637943981486448177208867646867671284334054762204738494439355881594898233813999762180663815140693222560360477823025098811226050545026332112333029674601449791181903064893587251145738934960771867231727685150271699400899009230743411530238005786245185612327956057796825760758221734495658147128349333803708910263140555853437347586026819390068189831810396519138229064892794592423951431437197740395030202677246392554241825904580969660661496065712970453528345077620052920361840534435804284995489353462509733512366251958534827345894269190669088868595635308473479685304199965187977991578873300996184435146277187999425952564441246628715830639327997872480452196887255737112204893943993680640490578497897695025284522541672771756042947094812535793975547343092572936637780375398457983409872723213303485788248921921890874545954527186884896718641686859843775136203809436086294805640534230365858389760650853558058883579346636559121032600356390083135353181164813712302231743474601782751116569653902920761837723580074200345228677087075993192817480674869963272204787448376850448468090045356052867133538037544421138840534207220891663235920704824860075048834292788005786114069788603426421372313318481758574121440944046679848584381590972011293311089380736502860300043150336439719330136815318562103590720278184752541356606566549571492187562646968042956156667035558715477800134840086881346984078859159869857399370240428996929055276564157445323484638385125826212532782854126392954359886857881147135463558569668071133000410302991561415319750080654772551252058967137846794044124092420769536941814924177674598868436315324331824366308820101065851831657277901816000083515654868597756890311776381668387762910325416679044899747886141146970862704385546520383211269340992650660475183963538379186696752678027896016543488384988745603056993693892051049433771526507337950264142324849083360533152189995002245882096393738743837432146350399741581942919703163246114173683484502045932284350754567030238283867757347956049776738728285996561450582465577063852310804705210392124909443125974064709661262915306850703665778313848692057063664636815845899542472324614688599932469012419405520195039590772892368914895500626077322868374907033829984646425082484078987552837678744064296935277823695199195794114911927689404266125307372135326318700600538138479390526885823701286187385131767206382632809123159514318691070687456494753939025487674992641043553867687013648739958962077421240588336194149946745538535966185342292745176890464005843697654394586331563094537549748498893849554887088480056116954602620869390693190204494212613852816764698204633304665244693644191037145982598835168829001584406045502488619244089476797944751688454954475805106817112968536921613007496003376585684492611935940881986776979530860814480945199233675375925760412281663781762712291817159267344577326380491063506179914187572084744622554312174668744418060351218570021943381865330627770935562521602817681792585785533529015987056457079491721750610458443635853806790147347098096793053219983345865835377235724028738683079136926057117442231360478577443511047498505423913574983783408268212576314021390979507013194506140604728204926749507386078738438716953353763774481844989622005008561452897201968166294661653156568223023129559885739051592637298008041944206806782275765792698043703091744891944534846610915902384348286446404329233145337319004429537936608164777635495878776761892512975436737682502890039179152949748637170981981220577744380660893563698247513458494548240709900935880634574755835413060495579533252004761460869424793565189019034485659495468005422016507454734181163095632179104400250048271760346139176081323864330947461343272278393672620472949606761921015862347862358527227890655583467782976859501207571024000905433015394315767996076063973076732934436304504435844035299181861966155034860680857385199475761996463690478774369453810772557210801654046779095712043324026843770578773142151118727361826197610103658189851530576988527173553352196262608082829887620696616633714668460417975817197698032925206350698602467030472002134550002499202262152367973738607078859394504106574965259647542134999863624100908176821221970766874869998150022266070972242754471172301716426764889590973871223018272102353552081037791630503956511277738315550384470768275814540794865844670900936084291937966358584828473728747038052567398488280223948391322033624443320417451755232208336721982127821336832704591096406945475575827756315492492217890300741821185397477209771611193676240515025234222713465422801627884867925848717954368592507956075252500513219988421507969247309646959252987678215576105376159485675620044665943623908407327348887414770139777705367860368408248298852172472230716555607507571107512080566096328192742819413219607105638879239868250785553022198955150839188254656016575180409409985708795589573103578254466090582143686328579828227790496277900144400423282454194605811313154328729675088833193736399216856681438066133764556140717428138722463603391260644153177031471624135884667257990400071582785871582416526194968944510958035691064158156511290083728755720143363746756150050813970047473161581750098881777674661333151845535258090771372833600876885451429087445429319470973968730376308154948146755313312040664895798295760897984231368853395630732773948788369780846486628488139985033896393557356854736671441432116706438855198838326785622143604641764251766382771514045570531020992818281114495493174429348082163043752272728476618374374685219503234823253182296257128483168695958619761686993967058453380211294340238137612721234922918410616279211023636973093081787626017488866549407405299078309630695904341511628399380493072422019018108702465588642136289686048664504753344860608417238341394359434642489136530551513882670515842566281061670423559129389695866920584368294927709990987283231225414311993510830042229925397475560613124264859179128313266968434130288217606581381207048953383467850245374257183804970449098541091045951515160607496438246598553962945680166535416947373567834882655250737958337705852616986696836288551130362736415397927916706830655620731144425584181865304236141157495726947996944634699512026777103815313738075788554158467086580225176597650734430501246075907012254865118714387014694116646293086856435902907676634870760191954315769757770752160114988155189829472451060143819892804195494717280696755817775907181208379935180525718801547518583613488653236349514489889546400024860812963245183864236091289114236868813879136674993660902065128950752762208514388827376383251484447265777303008191454402675002885999561023970704141631337349626246694986142346111618361194103814875192015734593715815732025947381674623778132945392417233820547072357188220588608931157931150183320221112333296413768628158198876192291310155279608960567787845532778276514234422762944765843368558752270181597258655894601375216276405955146827077045448560476840117439368257195678023664690194097032754070706923149143101031347236057128723758100959309231963201985029518676204669895347906934539613748165861453862698770189030412135880478926547998558593549645560178155457860885592066596825607269731079180855220416158371964909894469660152063165440087801715764286149484688714318738857627750562327851139567004922608339097347035005446232710657066272487591883248328981241564531958067497596048081050185715501835308516498073054236185268305347063634888529158983073858202777792444048873749231752283360212687121390111215272357340675929530334673671938355707892312702337163359099964317856509102940761437216403045213896128969221803717360312059082845074045820094624487487982469830678359186117885658260535694210702346825428987623747880195057136938396973606664503294038127491814694885269641042867026622165996740668097575937083475282287548710026286438125160990965311281732921381978360773725997420581852907082115640899476183103435174028435310393761278170514750230096542758624042404747118837170637326882311427035127488489058540636142430977814703801684558119120280203617345438562481718664413924335652596430354642297802005818953499796570652143516870736682102864927423372642693576722928563052370893686112827510162894446809787575821921409695100075746322408244577985421887334071980158380869827055397180175318664731186493338652978146857378953748599629461913745417216157282345858386964120313259509183526756591373283019277194805487478001702956634685271926098548805466093522184516687296651787179696454262130887692010856814912990716324404061985472288312094728092400843453938463106681566543019940287874275510619355696745201868713693597751366543663601695985546557640150130361843022398800942903851271611419476599485126110818472955594202770610001972295734322031915273793952528277153106946555091497136695569968561406961916777442056153756586361890856229430892985560708043966412085922414843358995723551089425465680115471008385576312703100432553190193891530709696107672788592618019150230903547593276426472350844972092470538463104316155800493990940701674926359329598769055824791679646640456257023713441566043668904698679924580473132175842659791538420915692263360845835837030957010774455469831329986143123979670097607520497708877792252785184970570279690528348745660725789721764939183907196089517011921328697118328738478952991027364204066884518878967413903257008059317688647022804268965527629515411453057777395058551394084791641184363323068817944194365394854163690552835453931809335445191043636660372558164946668326163896978468913453761537790754492071703282878483689848429738130777445348306619581383785589707641917178176946436545109076982883041193278189964728782812290981117329808886840652086321358977704402215456433635036477385035170671859283527013641586299888482612939391525204820970122845773853655118518470228344553285477169187479434421215879476663807713956891434273083060185738502143616894394416609825928056245620197547336700926692954017002165337623203469320250701093573051724164532063208572312152440514871645721034047932581053356266298456018305152895729217083239211502281269452952379877896450188434114196458104380298354327943248750310024602714723455894437381968215911133777594886217178321991919334226525820558294884952023326230576666316364243239137975405651272209522880838870902588573136923839329283516391373085231477646709278236885311675468009807966641386942817321955471948959197942422865096615364989968209434610527032982603168334364604844719431121287546222532822791257176655247040935031306517454252064529415360406215050392893109066246930101779356464014839075418915204770690665246436964525656064785959651762982264434757203370017377413623413411946803795209520573983303156071152180399068470184128502209803548845498009195431355537294388668595729255339649758629263903479471889963141097470423673958058182008729892882288078408705933983605750493218168577206755849904539976213099906142996543156768048396626922005386426821959576418705217725606400284568369511667787197160809377055047830868601703475531122578317928960117836004432176364499540913573189521627454765449734246363662919378675264966981429872782876087021017267085051529043060948409182086231536873938449568703098623399941548047473308668908853644744709925448254538645025137825496054554099864291336853623254720673997616909580573540473389311384749645978515830516069567144501414400192561966369912052101636268980372341418479573179701723359166866724872610443745105125144115609130101757819120252396142270567759281035114726420166253358468305579500431630463933664981044254632415306115834605777318981514590843154162097479518792861449332207484875317195323255026580687922017465113821825539837869110559768355318206335865651470111001485347141917968252623087222180063353399495582840627809617975845474215609458270297767454777444432654482167403089767093651734402013639928672967263970440080280717447524663947767948563842866078733401018760801252913257487228513447312176496222216515113294320689258427111712726643125001367139872116729005236731510708340035883275686231634373238864703045522491886317169755932610791489219919727456882138322173992603350288590532464785734542638686759506299691095127265530804720410186482222510955574790035458655491832054996660768241275238991071973362649599959072867653661801324069390110292325285798028215577422048351967450183109362888246561415308666078766396763788207416890238499997170489585922827623988213000570350548121768996458302133572345469359271487218533070648813361751286360904668904478388931277500061886726555817528313234633783007136845248203558924046606543476321138499260477985985525736172094205891311572857729134712922776053361377216384486012854593444864421105749099311809564860670509184986560987401669439995308755988716201977138433722595159938234870985557759346540973588837321877328648502546365817934912661355358889464292003063354379532300958714892009178667933534480554668544506395353119627716995955264928477913462685325325845043053817729284896460477097645737738621571377682131709975650282681284244196744296454983357705430619146605570667243633084655276161058628515638580653257105908406599531370958921830771463257703441701333256053824691609292364206754152908066296891813952251840518914079240765585649391307820830009033410289539537244027650994911435917870739135921114938455972462701350482091188294874412167866719259385340399217886159109928136754764104189172437885564295769972162466203261723049391506825025438264551456263233840143337913700650807932214401221723372358187752067577878042765513785096900462001934816433220845425337366143650726199929109864942906452702458769623890921992768942404462395502462522488174842333767002088606601347500026772655551881774793032868553985584053611970444112232178700096999626361193244954997245955650498170827718234124848249914385237917888176714068466154179866263108496063111932275273247586904641320294334086844892975156609038972772012681594931185211634342456969635602471271166933172442625132127646516011823077415492682156483730869856151784680512405632901163423382275556744853614475677046648154566795366842785189843927815972273282892806763401071138907959530157152834217033707771216098521548034793756609696231698588667135920808442851033162626744991449770046132788047688393102704524935618447210552774233466034622649828975229456725593315556424944958728405182923372331538538117260297592600810948339217505506037492229610825384600351022041216669142616475166348596274943354033948602105062979537928819925510048282346868874864125976230931256734054482397310785313742021948482974277003625258349146186010773441621545099056540297530168337286892574996307920066992646912923273391625739176193353702315274401956254093661999503339539144675153540399204790036858101604736316625680095634812715801348745408549823097684892174545754507044679162671568951190428880390526437697478153011710562601791594084499409488821857730390264768639105943133064914922116382860605936625961326136305843357661274343562989684600089732823953942741136759575893970491428238023656843997602587434198138897560131682122052907203214564297579199003081574608718894900859487362727946482865882205585039191926120186340780129076007057895868851531165773780419574790005057179847959008366598164810002568636623210122715332765268775188996550490000973885977416244524539033007002237148698468073007478611241145947119406477948165892532349133851695121398371465287976345106346505453887553344445451264963118380505875252942162105117832330570237792889578424955384299863105614505336229551604671103876231583659630348068468610088284785190750325239343254238547198598668700496327155020098067836758781646608844107139698803348916060763069938502224085566861831674895219733479208130882778050817899409153798400770416265212375683386853870603555243331040745455293998529052774650459857619974409455514514701336546988186293872468794674327238842720290293328566324465527536005822166443894610376434937624503815304963297161121572363296269745526867579730807235528432886753389543636843706446950370333685740908488412059505589057339962961574341520462997827273936478585205196505428844668082381791815226721583511974113905199598684962131217198693747050977010160300721408386010265440506463142742537625077303111238392573512575413869534962245194206943247967179838589437943625628341256922185727127451286495450950395391391724843043745430420965270694793419152063798608929053623083546896109116662235336917273340717394964174023963339799535552237839750452024852112829064406820523546928954843021600101032048095186905179011385118210839471521023118024718566145963237528253775623405143011732024410711119681220218402184030522348021949294493532652200970071284601944808947323255457263459843713483697514312088085830655216800220045249002243557158887280155743689178919828373264989907697599600466782648721644755003457054676079625661797049137410831239487180752807838733701588046751722545245642842948833979630308009467398606938851983888438876850298815154826948143647603062272175431899437040839857106031095235310289366670861985445058680024283829624097284129031634318938071463014468166576141978732511932238050410083577675540724042700808263757569361108529506105373710581355132853178553527894880251200799791303232120668294018432233124899784088394510176476699954163541513661180404973692017895016698519866448051594489045853587891964477213901096161855141738033152793717553478822624315861230028694370994137359515756778632622349861323201933678174458644389455315108408055653431592424094930607363141131181151280253548785673271762669912663686987519868699232530110624576042817030850282792759351091963820023152746644789792576937457546695508328652306657222518229374182468967772564940522797078654738837025727250625841005476874690713646757760216638561489913026974170307626319596150689658963579657633469694825127127586216406876311062971144580067014007917995774550031271280702397903878599545442892717109088268301604209065584041186966803064523701343040657523537494879681065897592514169890832829073814174380628367489094988522668789971184831064633626426590089642910171909297593358132035885847508754155338123359737248516590058858629074854866586453959259181570375274519761661694894039063144571943965312278426479879346072598075554869862769617152028498876567429545600093359072007409716011599754829979321272775842784432345795325825460223840547704362743091596361792025402395919419575489953719332376400492516728836896608980026392076757558813002502611802442412463144958416937712503470848854674269960990148194782345488306035343698007896962612944322416851782958857794072358304993345954493531288568720135011292111671439262349645362129218760321481298512545911606970438363819101503588620479494631041726110941741136281483721408045390987150842024714972923229195921590383335894838751866521208723544768357619679261899875291821789269798064036108392072503978153483607425994112641363701731561032391020225796685409545439225366640783316877869970600205459822358970044116215384965424733831401363285259581633212952211204035374151414094241738786745407316539936788149458775055666429450096431888497372268524486570554384031531377192475771069746869130128684505816629980939797366810925181169723771196629502955369352927005730425177826478822303363529544074766444814989694295758101286724606567128003264045303526546979075705437469052750343347684742038199968242072410198450141063561069989512958095198378268139486202630864647713409904897154440212826374409569355129712265367890739319674414378070733432758015616123933589885771258890380832067098547960951454967750105522066493759066265368253017763915821752568308296219313138044049827723743286535842235664908722182443704619616968156562899528666841909334376247582213919529812360568157426180656490803138069072014086456559579422260130253242521448659310008985260394197568573700046993989736804524533073217543037232666840577297918169388609132093280240065499379564191862675758812976541064863724099841756112350734143849893750728261770476148393995066451840174564535681079183897918721299027775335871142363480868823250998450957328212224628280958354955594384719365018618408703265399544045039285069216756842442121960496090951206974215079935476104587059327279601009504505949249067934144711563637504440013345388926616058461271273677477950249824731125768895704793231876492411175442321236085669632966585679242457664589699565968508731187168126338873278682992946639799173027220701832109504234891817711799284088677954983214677350032531449664874392744765766722466347621695926089981514776810099197229163981633259068040122071998508015812470871633579078497212479392882357951729520753779546711724615694172463689050534326007716225550080780261488999189455397592022201325313335728171959328113541061750360462937695151858821684931582541391079887400128067874222605800308813342640389681848299044297115181521439133769837741218254329971442569166824612883620638204175741677579008047905158410985712624112807678446839835108897877457568835603740474887341835631225184874893208855595027578451001640922058908854667080900312513778386890498815776662951022853833371114159765958400830407954778730068704702166095048203919203859538785501979280367293511252760689243834205529741017267166050894764708874739123794508595527606742441333460648917719679532209327290310796719236026962770656446594241315627569814086659799928746076511832336809582737776533388093422897601960711899085592876561385636960085478507705267892137282060824718510737709892434278590278394605203883074075464899807518717025966358937038826363827148006812655903977593809809026596514849549069465312557028739932519124302904133520790959419331223560099216409611277443371951407535115997731965735363714135255963766509670144504628910602370470968869549113471318848963900972467355562680629740057308610520316270557055761683489799280681096098515665864909154845991480162727449779158645702414637796977972064252144482902357023452884323800934417052699220750053505461838150256386995988535298014938111157201273244263222850128451074051894130421661763277967595648701727616148811107837834126438050925035194012400801208548445686894667348002740950856882433568700847208923665522646228751165677379412824351396294781438275603395961315450568461333794354075288834250083290460286601472969266232816494353978503627530643955214285360623981408167307135998221261218667519773533106596237565013336023690273522974165166522669292601796227600357173110283629458441319771351594889643172265506709167003299840602092766563262476455988803901157592537175592236272079933690466460482544076707237585974451181608010665487738517258590050444818739328336400814118773494072196191316535621120628800617805941230843030059244271739352850134520747335450798865878268418387081853495986769602686202204849525463024170002861591996222173598094341070475137355388077480636293171988483526309327843308861336646689802977127939559434826104369422451247234045922643903077822037085383106653777039347237202475618939343267548749976253996935219995650363663853625444624266426391149958985233729029651523669703117435700984196202713164289068583387760252839349900046236965584841853570113872316368728813144736142697444735044969571443825025936175679598064863486736390904731862545600834052137644118370071539431333748007702961654513067199027181717541576429527209798397857660447534379140050608831292695463478743507562291279140527985498209268901872297152681053849512526652090406012380450873109229448468973692694980831558508529174872900084304553598613012023024427194886302700114310784185705743389993330506814852195911019483626561574387304207770471712010275898502888755838521064639717552683869368797128369597302244658693228178434400723406158937764491914908304397864538965191018781710036798778019260941374005604375662682020431321994287321104249664088294659584135811461446351728711796192161635900447080127581813445612235379338817948476926470057670667578078025946129582389807265045981474161107638643980495423365232459106414112152210809404178084170653363873141220195889672193021779566095242198675619574752964271439034146476946519728049359632623110459792676075862223323366406408213792301324496584533591595977804496809595190325528510268578477012249518873437734319920396036784333428102870763700449666288673807066434015941143949072897725759149120797225504801373812722153743696672369263737618364314584424284253079357093802393005104144785226401342252966735988275400685291316237041583756538824037791597953876313844132904495936478360145014280050612100717688304373104110454312068957113951178870634941970080381554001869886804751567166916140915642036847482605858692102144871097919735520716450637453306025274531906733387903815147453225141250398774722959723096341080641683366461749198586178450799506040341009644551294803911488825673637805630714100613439701783528744084863674119009778379968985163810955915449841837030834405014375330692754318616788419072962251975887811015679860714594227088123820336220458251094700114708798318395526610815701537789110375275660251262046655165000328028942649963345056333636016149550422356478144953105643358314643197993867794580975623441142775246781919422227871737975730266170356323145306862776576001052332960800460113748336353486329108481695975845686872972237830380269828987752627900751506077358579696876107452455736768669609783087605257386464889110967908521221980105591165833539030910772098437533593961649712225140790637592528423148445216838184282782375584400577499717309878285129464904543890490137952497193695823981096270911313875515566766018264688637555574831773033996103042113748387260451617973418677315050352644290748286512550547057585643291712001236431757063870658461425199574720488397619415670223084635440672935563928013653503269437576246171635550139774791344369323325746689121757374548426004893254428963272160991869550405163511921345350312493221508667799924423928791070380588227368893646991686076484502502474614755519814774093890782051237414098528235758657007276764009415478393007564659855019226242685930233909208382264794772223127672690768356604289015948642598960696560979420688349687706617446684449278701124392264756711622101468169766729161854295678869092890406862665101720199095331843496717163528802570252408933194969555135176830910001872355065565790939519606268974012253950935204295205610147318253334636857084284338423213987034228941404239814780102875231828131773261336717945966923734768168491465632530482665890160221585608505976539625326129895279258161512101715570111603524982150327024012399372405471840847460809424290579310722733660983676153704468623737208521724228531240584353864924919236755558703375996039805033964527204241097563873252872093665228491855928721866677465518024883743041649069123826369529282526479714913271731713809476891892765832727507788104920011198597406558619130616971482611031367157368568029911849274508491962362258759398355104705953305439515112247132565649589672659469285479553760173531940640445523550764770258687546019254304727370954166335851338106961057154197158018081559310977691452466119798774696000156451221672891933984275924833635898561838909912611561005217409043301780601113833920383242977045563946622122825873030497555428880405923819383783597588856829152410527475594450393004070133591451923309284455485086578065465816944144392379555552513580354805036385893161390862389968746444197898844068499437789813435641721290442279442433618586626695502149161395599939159926055508474792756845897397133292777696916520583722447812203774707065999528037285871849247402245728379678528465461375323733727791816899314494686313195266878704485435089405827670619602277446652070515803384594675178918483101558468159325954700439138721310785191282911122774852204222346733026716773965292265262749559601958272182267485448296685029217157704101052209586335285667968154698031130782664340554984724940317703466808645490137082733319659819726075944062562802167564828917477900485212593453075821030137117068599681200965406726348261720585909735575028677372286665165643814740355624552426568882384875696194184488759855647189166258836589809249885836764938958456125520081295441883896667880248290930762651163752833824231735572008059553136084746629185677515984427594121576446178097114255298889764350501025436152740321919392692546209105741096782078289236096514463138405254860346103476028804046096281976885150806126021561475418098651301394872756788754609132817824771856428496183245466459228176545688241307243379498375631084211489748432261095154925260805569191819208181233877106742471132532107329355518687417004955645888818120802348097275438193684203473450223388735583699414913714046610406190120328639002857786484108065144020032892950788022457290510805434031143410709736203018013575424013252222599949676634835376248732017686813748563672587972312527389224577533352960359925949577357737481119822845630542733417840531133849867607953898184870560208464937844242986405921015960250908152273539126803613417163735619380643530492441710241869680727634619970517468705768143554925359787693494634977221620335081502281831163002619380272276471437405801557474006917683512084775083728025681560163124982107381673280643352692951878359612339046684419856457379685356158672062481822067516476873807515904131900109033923881212563088154342260102864731698164185493098788104054550677365597400680510194882823341460133849486050621010545499946926478463427533873283383832201289360239026490537262612188937939845575106331691156212576577597066600787854726970839731523316599725732459914997983742310041567385316469097754407349097395522224666168284803127421693159057349735840914692922679100690851563901002228076721745914413403091770209773443828892934727472742040912287367683262722556435865479185341094226330335610339618478353340555766827595951222636179280400045116760712008123157707395659172065121050943462440020935354529307506319513244660645656403025558169299668841949723603918467098784870914447927017162660050915627928867589156255997327890049318717204620227146490600212194970196212099390088194496696380405960271313142277118136950223347914475763329971998332612644482617018716810325988804501840075850043474406933092530604906143982760661774830031309275241575468581154633253570237024488617484225943192765600172847625829521870167060036393095811143829711350256424888156986541753307080191483007947067632999714591746069218482696586434930845422141464769584078831355122887810119825462647959936533654802199232616232173950017351358566135007286501824420792591304481569879344069820726615435143471340695865728978180587012631782640073903440784709689769780483750270061507256041472795684569541333318351950618035822620329578665645464526917019726264473456196511471912705120862983468395177749452828602690609870992850371461943019315515517209558778306034260422328486377706179554516731486250205412558209934744049178877141308528973810917010177576843895426346869715787128651324652719172029223671320115660708234824797367984443226432561867541292029586518746078136086174011813507125030617898964316184966399465372726612515460605368306518561810255053069122085200352480914467153864267555593873823341819337457535380905303450470488863907647095848213920472889839878846661853165248097232481016678315858487985818735782103285986542209094222780622582113947087132715851571987117496202520947687437059019837816801488112679784515057380029512315228793506385072107502099454394250650804755449393029567673574016754468561008117237549829631581542805989325689221844632223278013375099044345653485212422990357683126918453564110198303591385731126603948522965272786739486706654990614642097087323958627251714684734404038027324470608822296862004971013264719327772404313403642716238992788179652919279380061407358734620677364803047596910774832935222799557714049942257254365635643585433777672707697611919159965841285062277933905031454875183372990221252741843238672296640616161826132948053923816683727420453621198670620711865740003842272429285890036361352692438905509314506255846785845846092426146608732040507026350154629307981101172580605660920680611379199519899582170469266802352391672685631748302862979885089408774011739838447441871486419672878581355098916851294685786530467525580380621007444663066125676411234505309862316029612479035380525640337846033343597430845459459565088782458159865845331747715035172685921660677390711757756598404854549866257400491230853186270302231641248102671031791125817773426950068175778677504370049458052608997930198642173058559108622232849477070020276486309074845547088522555816337671545595737720456346893189521469748070832583980969398001039660701165904436813142824082358896364801621755270910902511390664816818220124948375099897234785633535284232600042014710507926876758422610850705862420580589785289346011604427801063433176121789106982737878843929024890050738409696782080291237338845649846861168008803736087356492259691591008062470844501291863985350317344932892053480632210355402133272887416319459548198005863744213612529445505315214952399176053308578290979824897450630113100316943869730797768635962906471713318720691527422620980081238372186298306638975082521425890392019328310056615686617919362645064347009226870945278456484113231113020367497126411876339345561973467116366890314543358619867464108605581340507070468421930604186578700875923231183960423494989353223187815561204051761222234857412492133631399597317363348337457699965798544441745371439055305307881460154300508874010532249577450727992347174888203989095579815248302045963912851188476056954513950129799896404648929321558666015673549304653053727082191391317803864174395662205428861432555640106466582137662828601395083568063783290120543317620508851443381772147532191974692040887639548486195133596322563651425677292199431833976054563283706879492314268055286546067486136601592993413456445413126967397592564461152684181778129699785882353717301142263299111644220834094616979634149463384980111365753155177256041495065824630883535464910918610353081609720156963905107770756078694769112296570060777634821994502593568560770403754319765614267385423135653202180999782800532385661946625045225484371205938684200162805800795084024167885565542582264669340179643586755851700657626861728478726926464664312209080715606682959279941959563915367184462430570513351851472338698620411896678110372948225242394616657592127021638872630207446111566973978718645632577378696936798810857479891787225327750760742892265953058435582056102834470783584403106888182819063660697633821102176284312527847862471633597447081788613525062039031118006582478623403633507046968665261582627683748730324968266473340642735359712220129839738399619047392780475082309100022197727906625171889054218641100734771389958981191022633606955560205136669850104602471252972676522918592620220889957480172412198477836631718574565985653134037612885627861812166766170091276563434257031461842246394536719040602908103738181809182188810614730041183656816747018600752796384686890052818904617801601779681063130628301269169314790528224796510376984208984071456084906385319695166345193390843691872453206281718648464641253019340327702449424349054769825569904017332586714363513825932646398274731605385670769542991270689471277019769600489462266939451230011795650325978818079843948100336317607381657411667753372112956489834591988403624470327487454290221177234014563860281824234204082103198937218872755518743184912585097686312013481441336214352791506696887433702941684181066829506804288357302802001101371843628118344225031360702821761170053490351259511919028263071762573934747755909307574853526810506076788040530063095014481198496671056026855493625906573090961182080726369060945829955596832839433864684336788984109893011395596457729815062956731105235053848815469748638783841903791236136372806824801739671683886831379420757168116683190905523029822385438516946171751226174803739616081237302722238108119574038619195867385531794949867895730402547352062603887903103926061894892457496749993638324373666269684385726212357011873176505684163847049063376426050797475518085729842217328741120469309328066583256425865610421066318565991683351577905254519427175437493607274400606393452942770653003775693883048242920048036287778865969514241289052407754713996845038747002563508137736772170725517175199243676417604429005161293953548021391394493883412043958535134294528721373938544905661583475272016443344240432107183272457878528666258529106035314337856838974870462198416098794218112047127787979397034320861955698595238588374622668308974696361965283112699788133767772520321544941452505235270501346375551354089216651409195388242565545274154837380395767792410867557964316849078851074294800344427449518582467877911531035511242302234496527445441518624620333413427219334953311340465270074820810116925115360474743556933514630216737519739577694797594312921851035513973466341878994541907905580268611974933799091347428487090066957555949107139858821090196077552760614955839749414040945905516632030185600791999777436031051648388178622035674264655768278316224956611743288223186378445175507315996922462785159675945281712483159846488419405997277382788661901881316964647524597377684109630333162191754748419512414213730850075895079843123666123578926844907821211081426652510672783064343175905498392850513750288696049387064058457796865276637370171845082136359391139457589357650344378237688181755632354180677420973262903358890112575229518389461706391579356480276247491390590720787835796591655463312925018621296972454313507929436938538873033857946466175177725526015837767257169818889946069059246143073334483968672210229529512782720580578163631375465769129839276584210504886579808606716510997210226374319716683904560330472601310751631981437072200180077157317440782693299716891670884700696796560488956600669129156875551936338240810742705970608912959310343879241273035105475365493012120338298087622354916190158570363024249758329657476114744856158415589555760373677573506450894101506060515744019876010612342353146376501701906428666003456275360520684290383618178900244946991195125135734149787729658507110713313714256348192459184094988515834793502701558541340197763416707481602490315354962930657991569423920112409275955251886847849627332392277056976097002142437142495987777339313598902269539096534322885947714325549297657836531807113451772973610629777866171006615813697185062507360604147262030607689574154432834101471119424627930845768274949074703489793315413189767376322139940411285483510095929199281612530066303426999153467691028718205016529172931579696389599935062268509437691121057686745028920538942257756204682780277086615965563461997356429411973261249301617167183997155527775061116229918066676281886524218108518876337374167568744346923076957145065091621338532985384060791969069225324060389887766960907920244082221512138219999785867950534036634592688278934583354083547325202043921047005924917748852431550987235630471798264872249674094740827952879413717940757747540332375110423877409628341598442997065585666123330499515995029302492320770830723038179295361012068719811145560141302494859923016401425503225110109963863737813635319432960552110426261563991875275022105637737238042759480470878751301796623774293092738103079782144489756324756535584453120051705796836440931302176938659880045428567014160999759880680514671529300527271475873535707591682807712581191756070783595453398873727616420617851035697539013653146428601364642327616671721310738587273492393057363284697477745788633616292751679979866802584330534734223086683538225486280241659769975815465765455805317051976110945958427841349012018341464972102028496064799096390644697774243694149634699249288953615822607208084611299360776785774305297347649352685884516808021494419805551636653060304543946329163731873789674035139766406349623860988379214172119237351022846963657320358554024132769925090524441724983495169579509147840636426744388207029728468257393199931954780051229524093360932220008951407675203855187171458901730463363245066026825219061853739294650183503126222553215027234115646261240617239449299253446117933213080925416591114947778979522195580799404188219487019176452037480264610301257136074430181956551297675102001836548281358277212514107198537453426785474660119476986545404453404446716339729764538356522462442338381349600938735023736464788100931481829110027457429804537575862553653459662368789717013652514240008789174743032829629128396398935792657281471735434355794775517611633854196016912734540896556541893872836413188067633071596293916826600725404796978546729136064333478422159925737786302387165385543619930101970741161448721688590907830744064466082858916074835797054505199452659710287557227112673404678399063830616568231202950610877421107179885121256831053887884782352462877948747548837743650403784342030979359615502174820914317092405858071810063247183991425808932196671059228608703101994025187689445672983070690789924294114087566749530394107564042340686958691871592050509028605088354899925409109884056118295506757128600721171828473509923134131589484560091082955313532967796177625255693024147204322721183639211229437151042344012765405081613119243099881654383479598731790340248742697989913761210730530580098167285155428737497048584810375503778709393244275224818799394039719525903975000596881642887623662318681214384054657680236748521640254574873795311849085205020280778036546754125205252044620992953454814686572941732141876165986933527285554279894101138695417580486873054604563952971825483381399689648860165244404536093627800952872497908693304349301957721219340982361111678687774599226177566828527717587009883377829080965734124602958379399625784335846473399896965857375792335851506039899713202944880792283086382385970933811963032017654362366930278794814114792855079781881166184866093232161530299042888360536391131259465586124943549050316017405737219759918007598112198942672612506970342411226180361433677746715794588674152928307299404301574333476032657414741400630014237063119117992764241827731023110719338157435848438371349771524985043915952643405345902516937018732324913237317605236782797082126048532730588172372098244821078732987287519029858114508575248465164775174265988990102289228746206877765541609321536649083385932379460979175270714202597865689609268418358736901726009261926055364267794399206184734237832090733577552219339975824382308727932715532482806862463255089828778832775356700176381910603980217252644263378615706831652112108654915931100904743457287257319486271254626161393081862920731397292490001981974145693322014231147549355815991839795912220220253262922087768612723497512350853131269923169854394347380709256103419277690693794146617295185703682803673253300507954627253559202987040802193863097055605273370818802825408719312221825185297087471223889182882503980106483728386143114122132041171327323769769933664850774032304085076534548337113830524359247891529227496592875021082652745966408628694616079882424374071901904792942631426180604601759521595994806841888084998735962697306420427517169496768226398028192378933961966385990587441975194270329835283337879654293130618583262686393782042741443150404847583021249440665426391825880696933189296159862009385455712377700594413030030008523574860015911508343228124834185330556956629753932242847209889925860457163077408944268516765099450892414878672784244478549033566353464856423450908875353480161387467274785839425647534956659669795591656984792246837176178420279247193019832974779144074499079081407735527177471659237403056493368889133401676462268045961150354082883264049701991003737961395152003673349705639656758636997787343736937700299805735208015344395639016496774201216061183834505574945551470104527942873417050041338344617445311996360381386721797962874501981789256816113993134208527470263626756212952707529637308674573492077348573833094470800342125151512567313524131678827487171580187030378731790169619962938254231411874140930048968958027054800195133755061937327760479009779783828322420644470471606147284921499763597204583150708892682689282454825881705085397031568695139825140200960457739455389756246470894599263076715692658494933152914238142021687758261366422331544303706245854592006353778943679510991551548095732227559954773635135180911042335551884601259221959813667131034490259781873411294217653695411694291595545772663562501915653095421708051870434713637857320447924498913668599184662352278240164122931596014432398661841323219757573333221879936083516034663906234470918578882031243725521791369072832690364686295751683700552122580841390994858023810130941345380846277079011762151652878199568645069419476271525243119420753877552538814132803133059758451564951698909037669720418128099659567860585650552379432759501805292149736422115917446045068228100320585718919798824499240651648685737969114047124422294214672683069919902319579567707559165976335880612579861934447157973421917676899127414143338147965280680985182940361469739553004580797419158785658227283912379442269976291196146908228417441417686322255489372775994249204919103851270626648790336458580551302292160930429889070715845570701591481585538539466326761009500375277722571467328761281448880181305772934978967865344059692000861791521681257156289130167349323549186990970290869512834198544718393303038428906456206389600359363395690465130287914460493415149117752337064540109257806918384192112659159867168412881746856657340795729831274875673262312225540687702024723599732567906629351737238861321281186491778629893826783712466902049606986166326612964474338045943049361631891090951458769816848421485321721188813855694351172969182204020195567383079210846040618293196036154914157589649695281225070431742638238130845149771783341887503110728162916286064143971838066811107583509883152725954662481051409053764320834984568762923352633347215620242254133562725815048814961965171052924856526437738749165402994638715626025405336092675354136229341403917690656533705445258163145659868387239865456552836617434451738771421110757066878361861252630601890465943826632561408553244674225120652414458391679986570981707301850718207203388422234134563833865341710462654205333086916607810918152771573496003602203276419140071272195339626415140164856379994049807460162841015105460818788571251745335436593753457346977171514115351530162566915056158232707497133329926067290578610871862917752832986474041413240258094412582710182461808247125343101154412739900935152264432957681129299871741541622457713673907045198855612304112079606730568452564485880664489204140585701912394540373208544423512941087116836646155165488339048529132213032543614252529495563806944508270910386442146481711985205966888161449161339003489959658001779333614328125598699199899370235474138935641865020266100966795044374496113262730864449383703340094226095728110564170413620654802968592542490499051545149138994202073099812456011904680070784929643473907428299316438187051686521765732034373433946078967414759449645333463117326833903071634183902518013460700325818500640889388792206854331319823194681092884517220441773975417786576409827216033477622815842062991526754205668249866062061996650235406096684147820897376150487258790438914925056788877889792610818388939945376364293188029267108874390188453820187131048997534736567244310147995083384815786187117418955625711217219702262839723740949556915894900388787416509782253925692751787343506013734264642106874912028815333655935137218396942205892801592735731302722387225585307375647578597120461259423630730007022585603552029678307505975416637209330413376444946143182229730938031126010148139545713991023611888431324649827134673888469473024562635507303650932668725784499604084145485311064078895043699236375770092118159195024051217381397163045453041210108873130062658971430381270432767037464435523880751805003692532657589561887487435247844186377435444495547312155613500750732566915771276988215640201447034078391980828980058591385751988179853055130283726373944216843572136722670428131790690946048839633958479073013798133456807231009926160625838080046514580252042599512527761349571753128399522096198796258820319839342044236919966347516388064839401448913453660707590696409856750646251219651367235725920247315990692251913101765511823582553715121631934093033618308147724551735839639905541373062655212312438240465697294044749172504397361234930112971260060010931543042448406497673354702629392559037680032191094012787800892764311306721996207722295769437021340028620013596833692314487093421636088752981962901208711867812318997555530633608174405272865401182440782178075975033532867199368114820461587700071049190037996496577790901667195011905306526062749964807280051508660553517747059852910214947395619277407617433471961857051208520571031229991599665651484135755891079953798042662805642110639796823803955595848651931076850769451513471998741262417217229125803633487748327383383246744796815390239424584967863482078549050647174521413441359796061525915339331058493120022577933368144486644690470261034020628376207817322789954508401694111149952812840835661821491108042497547372186946737962197705525747883433382009837600770623901621811877039699806079444988555308578007363205628675428033971610718167689921042969188453696773170100504552338443441329811869364868918991387472348740842288237037211810386617669667946753738742051307473311231050984382170822761411569356342745892863876285531358634558803902334835897672367260259365303743610274985748298701815435492064491988926331937980348996331047576627941652964574918406012033895924125207409176288519162635439206478698799548672104346470403312489039902946478328167916742797980040241634698323672144811574574534681425418654682462585194780376286314793702823655737405150191607475173027749130416369564101319260309583289639186380551713982574693445933269086565070246182251107639883303448607095636015507062347968206453085598698525306325418203527423276727799370271167233421283646116847835717114284546311560414060479535705583330009835222495094379557109153969036756033888630465344157827963473018588969797432785746697116144022913246977302060469686647795656848577135376693507973134634013528482478123941651066697711304422691207309392498448704699024708712022628969273812727165683714941495503966577332706187483347154852470539245856635624203449941087988774141230833865482158709678130440112680001517714225086177405409805578095901380144775011914007138694714644411584634666085194832724759407863935027324051769196081303015073842502146455541225343025130632203941599060120266325345375435204349545181816230233242115662715437266596309161494564524773900345011177896418365835262293220537720171043563050634110641711457255324176013845928575732100465225893335199381749006575441837280730605270633558301862750011397221445722026618082541352450724316022133864087151143404700340168815714429873032819201604189970874644212295281779780072254119516969451520466349410617206787699296915826275133530859347483538031970638567956060289224818354958219989993964662568406855447988355786691498986745093019246372315109078581087448236807693548310568056663480947443493319600406798275535115154511354159663116129578879046710835367275840744410175192868856746436197279261912796101097594619324615637101297201265777767348907061614694089453219455315274659500230373011720581771012397477985464926672386914744886990492475931346576306601970136591767612051509178609072448082493439292317840088475237982356711447240243689695169697073881070520175834302894262581640366545422803103858032331156236432558607076736217970134434160108146553444934660295881089222425394326933395435378007954444196061914585518659913572558963674087081999871116078183612109552992643512669313255525139746021994783874294558350960783620261538171058017899939098062428230172809595935816534784850913153159397752313121159225534458611857559512057765184089595837945163894549874422264653601921722736529649765489705879148267013255521889831113010877688911676158015858648964534925211052709243717400949674041655372736466902353422502151777014861466395815020349107774130706259237755300963665893195856952945723233933137236106753347050487153222056609213127553756218285030669207910453943496550002657596031101108325259299080920267341455246624244552290357402928326744995955418160634966522427642840036872166972628035127029122182451747118265790573608082207822524908238865607295054758391431888623912295907960293073637275580608613838003183588565162100490113795954935673453585375895289493188248861392181489720979333620908279761092157713507476868354308441478096832318440381104096539442961052787448226128501921759151078302172419060467933310693189746224868514943297422589031923478549608586773294514916724985542253791023705791710020075944947509038078851311732298902567564720390232454000249927875335278537739097085692938113170335958399701849696621417910371106296286359940843524831522234808796864131854891189017516736651056789996709491181114172725578129949744561045359954780406942597331339138448369807700951217716018597030876084020962873673838817227058199096365419928573251211577307005862586654263710578192636242274446485072637777887343455029954079306973040749598384512851723326732606627015640935549687395723491128090750486404612481725043911781952845940522757444420052628251922964867000033596705165502906567687799269582300099503439930083696649378495329119835614431700171327337140556107818999481249739913025838988227117179888277318812136693956284163430600089675940847650375247265359927278409253787053116422213458316143984098383372652210323990318237122983305931043237858150655801166978348079977167404445906339239329120882510573359876662388825687296876595646400537198378371023785813604610753513078145582340494667123095929988054564189226920576543981110160344839211133608129503298448203041204595021995917464285494430472767151504803503446000404490899269527968917256050008237902764634144878326775851211922336510441710429421692181853691815541279328308119145532838079146375826909677351073800482869899968284015126339927466581462887520960970130394950832927065986630396259540249915368599797616461216059238245388938146376025672936418939576753053216870836982896034296935863017703471148183830384608891651207772477175419800265705020512099524418639558189500748673810080657129284040045824663435078421911624934714696049165345090555094900711679695553969857644076062449486552369668548274535097686870172360793898645857057684057228713880506225860393774768546047283500626551625103213652587177566089374635521715924759844764340290142899235764686197826512949911459438161413699719429282593180053398770148630844349796621615760350999967737563207253707449721151656727112266034067027196190310541184950598525375514068993825181598536503757697553194494925368601585442281515269765286598803951941690396962205780460496716304479289884425335842093338202277716748876981244665199617001114965173191144757491110128439538626903395940459168665852035019961868301948163215899495238621132015237157047081463500482192250057793644813726333502118762606769254550378305175067707151762872143887353723812975567579388502886013078311051371352663532860496291405797926086279926109207568639219848770760533150719624205775319111590630698600252920436023733585842235882401813188458891080920940254930217781501960403626605546735854541572797683415235412023399239260927907873206663184382558982421948103633181441327730372198638675332085504614063406890378865747615409520036812287666644652046734017561837696276676269918149339368793347685034273550441562223723466946079954130041389817021558341145132973451875786780976095894160154830318123993167430346980766841124508749986050434185404938865027243466104300891860324058178009215396737113237332499112961277550213167576321647749009155030656585799958864045680544869246024442824878693470382054423851029608067211066179132937677946387731828533888832459435535621359329480702763091911621274665354314457829462507504569468302679725332209941342796786409430066789852016418881017551170333662461556916431104154580221452301793485940092780021062556161361235027639228332947161914754357685000469504154318242568693361796222866023461765635914916632756032718711716899329172424735660668768557542999127750768768610152473692661200801543917257619238484480787248886192964503037890254014116058678668823563306946148210039192778689880234210442119607759945685270906851910038448285379985968033352140588521435640526176016642759580768723040626171712003817896811372476446657429434977293565024914665191760476133983650046155461260861737543261734255580095359201063205227801147092632036053862954587584322803558374748129155826947857165262269274695752198178497757326839855262245908208325947676679650660823180726572278614141151545512789208605722328190823110450143795206003007389630263679200691533753137696115815461333902699289793553797667137390233177933910549755362918316534483795753326670800356559822785137210309977917886407399250777412882260364137090309194534844362768803851185756263679204349346914032178843263528520639070531431613836345861557408889330436034172166501204526226441554053589177247859611986225669420794043424036781886705489794337394557112739535265902573727058533540864734109248630020840075926855456428545124140168201759905312976030578542044718485818385014470999208903413595688002107114709517793691379043111232862997938652903545467119138997017361609435872909259252036760052963189738666220743347287371641213522694792601162370048724192152334426142058135629673619929913674241148827135874452210734607290058314434079372312554098987177935652344860648678927685950302347765161106701933951470907567879094646073239249485688682101017051400284758607315000927703997091484415025445984530876339198681192356672354328865406635871415148605426484348960373722383995385434128326420750565682788533805184506531542307026095866474551619309911993639310537723705386678542041571803736005176792941188366675519676938799269928230306970060364596053541601562135095693249747148172148280321238909940719757196263232160450303821483917207054688674396966443447382895897098252911854519146732883996104007918748389053054603255402608379915811890542378779003334797976356412301455652024972348994220941779510503777598121836931931096181388752878453416737387815319527052719274109045314486089824758277150584657169127677865019973171724956334547612854073910558519298954121313377892387148602488202781059200766694844223254409388925207911981601324457736039516768219237216738930107693105516745490226102059878012196632522834588408098874636400446192274780882019084344533970185235070295661293748166417499607764883267068044413400657488067968421738673882659560546885930475696497867692289249113830707200375867526964203529988396709349191375993972938343774544914420929488235483951897228086849449308903063006126618543662781052728939811305042942842322457410938001585860937957941146283190219972175967612442281932910444044208034179615073601398324776321905821758689588491467028762687710789992049288082090127546942889155604086718622067134336548661188426852628405206433639433099183857668562260554795988212980780356422027205040480893597531335755423892783962876695175362360790937239319077422599446953389887952756062444152285178141538317204696556432296844033129878740604850423334088962558662366609027476739170378634085529532375553735527472947544236247182998764657874534180228029628332164567569243027164624444304326111309283532470139124020798679313582574971321384493025341321086969860758701125244556204935664838361985846391239384320170058548409218252816683247966495878100346270396395716082346704006029334999395951695904628118964274035193175596545951121387022133690063500417431516141837581329243805548628413886606184503715357374112652249321415184250790455202473438829828803468913769281531548677324211231749849798847027234217226501021864311830516653850256674140723762849086178025511093645791229249648236011129600457761343671098348159867788156813938351544410162702085930677835908568889270533416870765789728856822300023334622395161727894538540382469889738046399719162661870008107576584942416700195476638432169150774813283252844347726132362225590046041004979011220023579787852300691370141727398950660840857894849591994150383972766559333741134650118867256401809473114726379745630033062433998455465721292823341130990339678493738524412353564710845474828387605566012509120772340110195664683084287731705276295176410610499315181768403506129018697239110077286799146756819218077780451885612615130749615503361491171329234949491500564600841924012467271719234480362380273592369720709640837234287233069994505889835220393435947181193447639392547022574231132009057663622199994049747986222049115649584391584969242602182451289080629199203032839756035575251918103502097337419529955882568837469904416054268600413614732893549583624332307188876729779519811266062710709817318230472110331644632171592892649046709502266006506247775899367282673730367104521061615142456951683481645534547992999462537949190475045866082229123278424512489025803441154903417400782379567325807827017925496214093535872362877116334812780876982632582983477087193147736721734384478590869565888350842783988942330795846774579609650477339228963772667337820893443212121824438671269655038005705342096892759123198868649056752445202911867908613138038296278518188624913015678106292267528784184341362075952802647685901428255281445307724616070597515168078069593357820721799496657965091849290671327393753092606068055748037960635711991779916966330947958323870001760186584656465415555176851839704421558659766796655070159618568243435307316174945262328251283175066435819373872340695159937311747622071978808084992428930739863634395528379255172952493347010011067250205311212431843267824665753622676460669542731721698660919114670631976075567292479416810539529444839185735822718798132174454523357095207201710268618069199370325231009281644467921058900945754353514550901826874025395952491550318607628949928658291308688054685189738050213105328188571010095920193104037664784776062296476298636885703696896947543507175735733960833045091466815571479522879151380506002805827223407791089900345947477537734905145931274126090755980323986607118637032041253105199817661569380418078713679338534522548751290519839880425312970273230871348850641568292627252668032678290533585809682465328765320399131989773115158359537929554442302003503339787541590332199305158813558556808951434357805867511347387263452479542355245379508964834696288351958829356300927270035234260261889045308357611698374928554411118432061465858912787846777903315031802342600550044657415296076139877629157462838997938633100623493733934020957287890707718694046455566798530653976073444269107693488445194100100906117191466518891003277766447550144649342054342857728737895585372993123360326843716076976988125140000356346697213431490330311029969747124387898824919945186885242101423253850262024935535486654394944661741820446756853103025393280548623697684561876788686626721332256535355339710127414796905877583760301493657782703919338492120749575603080346656633013730325505866816140795143749530061237641949162695863537564475460189402436535877453561128459657512250604178502247003822092176968566377292757683973715787254306697541411752048748811109786912866824668160169280441218369179588037259230538454864962248228701831889236689664710156321750438604596550317849534081751152759355739260669711594299913453915214080583733714228627364571866587667496234037850914947673528621383799966332766363771049974279531829723134946377631284035569904683104231973568246885344712371175954965626874227700408234269946283265499945297189894605867140090860426380538233225915459353023207412954236890118919189023070975050492402161058445432875338489976529740892058970326706089079851650525018093607671495437727123305172375018407548409636446094966622883360767415713828000180507489781668599434297091263114110077308788715597824305694663252516869312653787334400448652394792718320752271078963999635114826230108253719909533822564745381908341635025766874128501627453416209394936617348116125179220720248571085009974072320008647482709546008326120933289652682839210009111355470739427436143424362904977501558020707662950703998646700196557611311644821500974182025633169185576375413197280135873503203005661680727488090729846572032114909402343804078454807251385081705725015584145226349703526942686105769820190700298120934236619554441190923624737851007848312564004198859951703479130126748759543175334556378751120514911779414891637385939913516223141652838309848619716451067915791805009314149519783939721797884412803502783174191905388928164686462579116441684350077615920249702136701577910978171977501550722413999546807891092862326436147974954985382950323504662100941093853644325245791479359136554975904982420922833685210577883270713724197762034977564103398560812997405351515709994420919519679055791551400391374477610676101660884989178500545372429860907352088198579614146513835392524889298198908431330247357623733135010998312400080160329844215802766166215037861655436723353101848185235339081086136878095859135315189828918578539784418279653008448580313124942825441102789286931281027242262091805950983975053548931284202731587099506002128228440444670616646446296158710495904285368409018588011377634146312464547247259644724552556322090412300186361633138560499438449850795056426063292584216141914113661794587051463886914952646639518679773099346659995921483255076618647437533744063571480224653538743234969074098942659555942198496208182720343542056720113322205157930348631456048983322787521779156311478418560623683481091656690855745147552020196246731250598663351464239717821487018406602878636820717097077325985961526343081626052932557860016632940651779946862142324400500217413878014901935183393627559438980105748365167478038954485901345894220033949054518760584931047693187724841253546736393260503288899972434274934409860341020591629833279531663158472425430778310398173212450201283401053330502571204480605299037746873504358091897349953682095727737808838555590345952913309090056027113532908171802284945369243098999896466384211211156536367978034339547138682901572181676872239476414809024586005908513782282527721255632941386251223625832182359009664223862502261264073626922125056902356992032957597081814289483425171228543007976125522567583348749592500428134103586187962828283106320830579529203337129583978471720145548004212933687467437612350937959183725740466200867914083810561043395561761646687474656404221388058576513931131472023672767321417939195107137492519094520178189456807306304226181893097726067736316510140859343943930800105113469583100584287875015538040121230004915901602280185310974430696020045719321606614531542140310486509077240232506137257189841735783608066030802468249194936199093021670119943904137076101689535386190749849285518061318583101589459370850880482221406001940881801155910453667448110925080431644511981730061116295211121602331212376586655196333692079477231268085245797618023797779023679400422261533920460035072886266889411078188453338175910826560824268185639941888843827227249530890675584023039341811591834280564649011614706436005812410076118584708874883900955095498173610065052050118616617352836663810556467327447761815049874397800803371105160301731146182667796016318874265912893548671422947802536373281902376701061726636911603633237549728753853045582145499193576712221106175509070531868898481792889006527339232844058570227376572421325466726579091812004956877178296141285407900137568633375253784146913657221417663296808213916668527251692973110614312649311299658434191038068585056939647310579886600881815425785952104069554536482297174945997446411724123295312656454595701706355428428008535241977920222533478597598437294587723015095746438829104223044491848046390082795018619438349902104787733269302994370050692157955522951691159433129606805649932631523968931064850692392550056420682301745933766062720025349861587769424973036566468778245605500151475849014718904519100942544287708033957479893416946235932298434448196480782001267249318957726786796475506507871197093678998254727509348376041838960128171215131371784953890661894794749228522212979971790768260981646026753076818596012371274462823196879879881022354952677483263620732725811085598165569858202511539811508056826814465014499373972365724452374082326725272110772236660488956055937905533316212538153995444331323628452786708933307201702426945717123587783303229741199552922812995639660121305145679781879644306538884643584406787075780073016474608009698595457519232956543524069861850384273266807256174727255245275920125202660069042133054387203995968292196297088986922157905654478389361030455264317821332324966702136022111278603484240734971591673600901411961302619220710286923842851430936909157153289447034547511736276982131850258237543242449021713127827726872032488985527909224247266059459746565695273065724536528241691649139557599101468213245769547132694415494116903020578991506734403821082737654924511346558183968919936899397037426544753015859464407232594157304028740256847089079621705885530881304803272874230202535734251953565095519466337541532121626895874174926234928602729067055116701010978792618005890278663214639597641425555024691410081594612290473101352052472236809035798571485830969583624297522684551762258361036198038295735498412230691901494837496359926085440423607935070140209913953417755071920561747773402825159074717263325082704849954897913587696424296512551474920672347893748770535114319143168653285824386515327061888181115251602845942102192004667501533347671549947789250890544862284920648482711552735957701382043190949528278532587072236623670347595820386287317817017837447041645520939448695897467379656061548462302925467369292840660117209088154864262720130997070987350113639126674932675201369519825291592878488384227756702309449367624822542563384230657151802065614331354136889930871972427519933469762454438844540821933490443690621585045496976971042612446703713474172215845242406356077190210230374308863162257623923752752939588807184247569855871009344572477585952562162956460909552565330384679780098563557574318907492903512279737252924448642752939178353435757885824970543794904366233952682476689780163401488015659361573221385129438332236577357985548153485438822210880245476519202203563717184464184515892659147268863792027199835939094441133209206241880936393619949371042971568305379169479729083264911119274019927659428789832570158408231466074127469582157381812420716778246770921611240304525954282924565242921710420567602020510419495481918561485898627986869698628491961288541624807482439261168459696862499622180412663423501589030370410746911894197637354440797842201409488963629567121531303863825758988642301196996998928196257362167262115475791737053360250999987943933957070725123246342338484256640394841711137281030037737419293932564239510861884561837167194536168318651460937970715575823941191365670753433348768796960767360768880997389757028289723909726315756655702218025648147787537567470839437305099856827636161279236036391650183273465559121776130347385751198830670613730908093605168701328385240193858138775981689751814986210440464564901332916215356953553863907509562335226718756776887936969902072143439422480405782535835789564465146282858728077305392517207687810609767204635576306703508931321960354410247649428168653491642908158947815843373326231579582481735850037785731060095776200363411166241949281737606909445621902833415287776053727120381584921700788528541148217526612712457091276493950497569061040046623344088410826632199471078585248729574234355821435297773906313889665102494360576905445037774220461485387269393243897304915890808014223368202398115560477797232705671914353951880099117738451089782051062876390832024644222658075215093624444086993521587522354307433645254998247054368773295725216334590910985639587178198257441555668786869694750758052902419780783646888665235296439309295637785433456374923132491136508475439632408495162487079276154412648283786495981620670995748190551125629072016166472786201570563331040710044056879770491604269519130182310714653931598241973765069439564795886361063634455082513920437679818045691922986163388198871610696597440977317077674769593541419628448990791587660267525770298949183948153366129864074398961013769312868706730538372153439930858951999302036069078744336034900508404612841238924708922594881651217631334807732698872246234424779007690358076510350342357947040772103622818335719531548082629776276594141949935980417442320793770349428338583580173180878953848629276839063715876345831681138464112071857808141350711510555233096005294244849537534024067967301190250053505780990718488761877198970321130219843015169332798614470957877935929744773820186161578513725137418965979755069411622146663313686837400152948884526873985607438204243633521908729778157799676916074933984720552259579787169538137093273778964278373876239198101275844459176458478998067085909945501134305452705683991121395546131782307618232977240709197436989790351091198382700786431300991391578017281161143039083024301329508641087932611487352092763295047282951469317603764369972104723459010911573124471666080724673785804158851478069393931007120385445379149921381051249807260032196748584480475318958956414254830684754114196848408511078369321834320602957298279395560096573545537513795105975176119256351122195816155752385509860744063722401806813134096286135106160437591076906136527042263693722498942327696746005991117412476601211697499986285198206642435490784708965706694958301486903577383865320913706780979522687087820305118137730133292612254042909879717267397316718363378087875457174848519203519265926578824921158530767432071590609787469622786628271101158491403279747263113044979283786025275599749657193907523941403576512355879533678672705112858650979742367629366619294149141123018325138945305094693247419325539560509587360981306711767368947601076981776501115922418093073437738176400040301677768390661292773455340841488937034239710388388183763928492152714219787327892843877573471939702622855993293150478231188749426828236880098211699924284316309697019688540365766728084557506962758218299611625787898343618049661329487948279440425231975306861143322810886651183681299557813703786451750697712667328137022506053977507527857215219281121304133891221568909069200301036342851150743796059950831643031085484770020805726019769225753680058343878721556382070414141751174045207530146550987579016124587388159673416257449826147971718691791508569754295406346216268391684562570130528602119889268485498162253892737426366074344067887856603606269379889236679151091474335570379003777402170357834007879882705295208081620898815137776198193334803934202570310828448922602902167715956428105466169747352789776709414905008145449273528094544948116248607224846030564061896954157153165415029445868505696647101219713202876966079725173705314068090920480269914034046028777862407508909811649994618636999953622781727815542197800324203750562042648799886058393378840821769296692096976809847937126830048508130099403062730817411215611678668544493490852581343849318514637587157878335905297022103859302213523005643729335370953503780392439576880816056390167228782708344723529000005163496656685236426997043043670232619564945275396110745759548543863979238824295522651484646184642185746688190873758880192171387206103958843795326834269254182906810051828755431087732268406646180080866647990712296613524730910816015242925538609830712633105616498553784210973923692783612558844168205319414545215837151490051254006999391818096588881517610857308574226921057607674315334867807847040976869066560698519098571663375340313393708868195882517401092668267203491052895787489878296718177172043709442969564360129892881645015925606852977629008728006853170935029326873251817642263605712107889490026069212901268913299049250764073599840458981862422903884676303619474923093980207021213414716644633685889770349569428694152108045342232731452452849787019130227849257665360893877386746664840211905596652617230493452276261825761776587703919058163262575617410061379298810561919649928367807966606835724954906737352580555723125505122832774365512105161230361533530921587755033087760583397441351993108191640638949358715098276427493073862143188105405811935272067686417355541846909676534169399877572285410916858781915310616943752385518538902413760707264864147012040012046433604220212953961110009201042234916508247610090414484882353432013430421870560596519712348265056080403931728026964580536826078668900003710567613604949578293731948041374910665125902151471819780053543195472451808015195807932090843959433759968545229414667241411739246929858128287099970565944437685829398776119359540682460867908995776493283184465618121484797766741078021147008926950486037174371078193547425288473215520201998583117449242472599479971365402744154787636263229527553377654658239289684257104157157275583044725570561428078990419664698382407972299224689937980678516306506521132620311165819396808004770912568914429413888141408628741710684937133369429505346928611171272695807680742161815064823192212442513611592241547067295211546879475261039190160360100285676522347852544932087826053425542061173236844798213169737123615303505913224455818143873265579525862150852938600410747673120038465051851887622255287280567499601475390679445295057380440766246207327688828897337764748801798387285228230146283781181941903122493008416546777370102060328549900136718901831006132973598660213966933006236515793026124883517323335270799506513374202863675011978866176979762921462905513785370900989741659428213850228656720459530746079690394056125014361914843940326828629912484292920633396324245482253430468164617099203543792898404856237108947162637548551859221896626353850017822903871898481776794130721943134317108486326320378435272069527552990078767178321861831192940899754934864575592992840463871379375070064756543075315666971680159627380103807651668852772973223621945516350358279050012949846479765491511661111262916211390293789701117558088074945080205348861466018271087896778761406146724909191560824438661573804050418130712902114541960380982903508933918511549004835345494927693541440760390219711528688492651101647821354443433926305407158539410236439445589516624081558286756308159263982772677739635275992774211540722654575048115378551403694273115556019034554701808295061874182392262368863883078026998899149219581987879388197516198836431545845988438352036807508681824023639723780776453385657430784630742474017446528336116535709927284496778143128689813392771433238455266953482189795264133350207121824630404896019346587311145538364353329141483315387569736542226255883548147189774058060753836123706591735376155576948653783930907844238885104646217479446502984372442010527752098501314393918507777928204481563049596889091035070460052030671358363511634118818728311751975953052140226806758364422333403617217514818552077974835014779136415364556029037735631039515305486099900213014436067378616334330938730377697360504156533819626140469618849147283311127463932248615388963951568584827966027595434699685462347783613014750853250572518257700007667350846461036796203391888059603445231497768593918888337837465939954547668581195185217923609717832102406229067392587233283730971194628066014464509009380138863638526571957694889248784004493751981580394988386675769067941256366150654991691476454499634794417425976534085753715690577580486103905323738484220396220729029074907419328796069539622651706567948776859790872601917270073100967295379607635144177960596748351123814008282109274741267224441875697989334298227537333539632178848272064277151836406106267793842093589665357688399546336823583311797345704634086978548755139245231042392918862238877401429232261328591306874117117228513342099938945658472567534152256103773170298529808789152105272696269739755859747795933841353797673271962644072898627125899383867267712825853133138634603077187655611620864796233138520557326939961996109586262793570054263260188099733660909025037247852076492703386308886118277969631686967567169773755409737971764089260137770179167478777841186995492524600687679460195569673101148775195518817679775683718862555933256866326194747260807262040457919423642139163734716104998931638218944130553739685547032653852616594086105550464013425816705497269405296996347706936788194866901142442308793392745991675590705255578053353449760667133465972460664713371959299895919133142094271004778447189520639759364945736251558207753718560696784802864390221948188393763728290710719683961686715570116614251034740516990227260530140024701355137542855910624232044024999743018106756547135172356396856003255858887444635501676514675200694382267659706342609697409311953995309331254654250045842518557057876157775333253353753161466883676654960559988607969049643822365547952102804473671124560211802850654349611920727909627468441512111746517187619246984983387187763820251214187222016364182729536692676785346984611830636314990794688202106514873517193614495751290712076853340454031140000509970706169456903997118447909958521028174707457495872696006176183915963372029023437377260114244284159235125953157762542605305904925441539180551890154832190976430971291809811579669429682811101694226400679095329922289167409110471034267524260275145716182991371052752465208954918328389562230601263889229969305447308446270693621792706358057047123487998222861927731513021971333257323025046143812016756356785621701781380895588972645901576288773732833933156611905630066572989759376248392319412343697841646011442098807222401299293302231290652032417371299358192553078772521248449594076548678909204847798743668216991530758521839654129769687001021202173650444721338765168045463430406511287757069026814229342121484637409988110754952797480268143843960087800365905897557293929626426881504087721538754150172509276128863042750231057425783181068454109285341485285209930126942273077127565826076374744363241527991809213261325464222623941768668133156555119300387703201560371610325761934623646127248724246812099885261004451223024903453113226034888313163652645028207983212866611009909339343486655969949933489434270020713418928194605702977115289973468898818562036821832775652067199490957620091917190679867759109345255842039050843137247859104677442982866664123492898506280124333235630507831990849267723804183511234032105164280878015343626498718090836411487815737660225598551731764077341227445232564713808720069335466497043252383191982233529193054799210170626877193829025373070662762637174819243582581131880980477221221812809794092551827653386070491004354606594327811919719257224877757736596727799922995897275557686772953115826470134321971959202759202967191144971382246196041429519000144935476931461152800551621328114912421210449094055098421747915889478926446378995412881647138754060066228560175390551653621101257315953220450263767561692465036256961607378303686564353885577890501004982998327296191492986729215971392361045760796315089239310806916197384098402985491556743735677081742420125566977055865759969313888738026096255115898238867069784511189257305424715809487374973369125538542743861001798341267554739797901451585121948941500861537986258740400241529723113135787158552634380795406357564489363827727868340229339161408806342759375924727811447481790423298221741999883658321226507254530458111743697899957746438346620132178259286630884054025178410712737252660681460368748001881381275899898803059453912922359528665353759364611315933686029494650373502346901298272516610192145297501461565705532431232424355504845293766032587599128703768475519188410502350122528450075008780749948422318735686956560716956368999087203119645416115485571589573738428172276724166072554347078192246638203696246806206565020937375804405448167566173473560125693671129622305027588285104922200134609236644660134315031691216660654911852962895601378742016992235337563587391659936784721887126891417054584784326300299372721375142295014183132585107917846908504543384103868621837798383315635257345479354686073713665924838495735199426939712493124425358180428449286335830968405532502131964512039253160786310188387144606167959537281374409508841515374015308578970801343747320584374638537463074258969688562304822583572619477682399718637799679493475689915071342469163988916709063413152820455477372492483628311357478247271032146679816295407617710613062360154252110703488462626585469057036517143882558093173928919607517300421198142959664052362706558638720340533173414067460483108044749120745743751372066692806453661746332112611446472859145777668977413687168497061659405354535151876425314492623572195117368084692332107161121029351191012733705406572912812235518051758210217143325112357423781750040200537584288627843838541304129574772336047189150501300880756860983771714909310828346743775751844860704581356903600493693310648879649869778954488231373594168141576025776378307538895719689350466692467059916473806021526485151318629142235648258020407990712958342830087143949853754708986264982113749097858244144234049096065512629699306733780019041647465583879395892224638663775707384098888983169660048345357285878952835914530422787787250625136372145180486469396054969375337806706370159172471978334423513333403821977205126104876111957001332937592164705360277724055871822248680033807369366535073972015314065274280176348460559513484567926510490187620955577423825861365284361985167919539667595839986249881422504563673576520940162978133419093504338136220190984676201006399225099166238475859458994809745982920954375600150970641625980969601657635212712398924469281042692527339538106837569934827331984737937275619730156279693618919102030909736833305260871844331450306570856030743858999674991986585646070291385219291137512829723494397347287195818578634627918382420627370674725610989708926551221730029929149086687200518174294236386465531552070163358027131013544110363072263169990457099161490268493759273052667267501659309821479923723907289804151657959230696928696837130516072841129255177470787666990895544176567216755477579773759608583919591395059706191273999393033209762819291862078284039063576281266432736790051417579379204321345018454214887218657641437260217939542994432670668115795245576184057524712516328918947967611484106251955436280338256675337917170599268411128599974131992230778511166123555627961390548929334008599895820265749950129028386639868346151275162277738632552719120311346240266610198062530577400820460283606963480309724055708119891716915497853093485963909779514290866483212198925807277018177034626127986954026550261830544949413509577718872773743966212441875007090889052748364994624619214238969625636234587009038459660824803296132184425410217648193605184534134294769558761647974211989888650502003017857646131807209452376558886089622162708493765735309885017463817752375620851330492878241354871257152496675930197397141385640098600045315318837870719801842357303804008241887502909606364739061078280869435701503706062718890950978306997297895045267365157025024850260766603093056156827694614705162154509248666615114232665846110563715754375554990112157994419763074392812713195665727090506241111203209784067115486037047347009628566429601188486740985989343569366365076574972460518090925000982765795244836991261722323232344915373782944960139626031569978791017793430474097879038648698160244164772459486725999781491719405737861543449358034432631735228158387494628241993508968651206728017261720857342416478082970300955271857177211287942923763116688188917477072261128430761427526120475921911599550190114208061537420368869518095438776420455086420111006181365406278904406338821198376613700277242492599876343214448043933065890593289957559108733193340908911792641215770794110611535424317146415926944979445705184257319499131288246161057639284925915601347070651749036603508519927313695024233536846884849454174738896860375226762437121759463962784214238343695530936565364201264057570313838834537172682461292246610943670126121948570477736092049808684885566960260436617191195351015511202449253871943861724426865854794391329434430613682202575745219586698451831012321344432086905438981667992765687609765131331219034074912782722027286403165687809793550135964809547677978290138690272291190526189333404107070321555193584605223235556020440363382126034190193113577116612951682181774542407665597811103223297928691421991696727155124187722502237427617180966812816495921858090477139296345085465741337386693624309235045187303149289692286482703130792383413562364044035583143792265662748093657647367142539749028759962598214291464846668203869351131173312102463520603622701045445329687271208232700545605192752247919359953831776674766507343057499345774978254523587747659328350762094066933971688440641097085020373065569659256302952392208681635358281900565859357802011204765155214735812242996832395006409017815981025146602153662082015415870135618128507869930765631360179366312358199844763321665395371398850774357578274317177119050284221518810153516866132490160132823166176431231509535406327396977896545820820260324538922789587062605553262918293079082887102286430550935394722898252477369970386812413237570837968445818213399333567474090634711789334623836104913309355690229521970933700174537482140967368388879574910750272274429061784509003157729148075436458528818512878676546082613456820682516062570560675459229704921007645265760176952791890677903935125574147307038968973323550867693970519919935270968094420013905999002302567947874032427606376549215198648117475936714716968170815176177310344970904923580375856450306152008310081578681646142709306152284286284502562398718562855492805452248664392736888632594877054554890926862644259600904521437832614829082109459681587064816422954472171754092963949372638202113249082718533759767633924400099076919397464418489437363437420612906750742098589675716435422995356814455005611523990030437892455702638039025259470963196514417972336005330937101446350186398099915734680947197264216798222612210524364296533392091756498320953846237590686504418973419259860523230098678271940989429005809850482551611789541175506100214217411570187131379015046615589641744479467770788438960972458463810994687782258601772834653251178072183405128681869688081705696567974930231606292666864691139809349570004621379664919005641545192368563779192949261988529306230957829113742313676422410967182929476171764591614653651988105048471572103046912970173873864729727768611640433605834133724182095420905251854515728062824396939810212332792350168085706570371215212192531401658542197963875943241657413530259213698617405643180701855764862244778478227272910886881052481109631998024116264282801856691172330140359214595023623696167710544012709330183991641678225932038901644381125778215205124334195700191793505331584209748968323211653174352877192516555186350929889449630883100163307313770201113577684738839424118978218972696278586891533532393879325779104808983112030722744326923283889692652957731246295071167361941211425773580818703701695559442535438535845607767016648106404157584204183524369054088274234804594828577935079818613024762577856108336326440655525899025999256796905441920991728616021204934257899477961692601272147654587092380305466549583032875363802596203026518746094879372624185888191405814782008416506297074624823998129204782182277884625766978676574400605823795963982544459949960988120444834562837452189607314840314644425571372652989448266149455230206253363445734046742501265065536844339316304864800256100536476987013023424451870617632228801619916031010120192212298333639802021889660857137317554127236190224787021858740945369651278350417343213737815009889684661734017655783341589701468093276009911058890099624919750935012254689145960030182954154946821061532722159377082950421172151548659796006918615873159088769913107203702650165224944646808084295851990721886756961720783903985693221619275051434057642828673999638662857959359479950446335945417525153590183675951312209108143805190720860744411096259066933159007345069482710688784172271411717568243469577215563652709411698687654976859001181063493334028359158743053038026961213630148232359455773676174247323393458416562687262395377207037345001732973012369086997494544781609797227315062484223102264739908906608940028460344196885539741004414392351088683105122822172307428826145893619149263265105831028051361382130519154730262220002346010923598934128857834129872264181569546881877212113782400313893222693083007769145624519223289462569338677160879699068405038831453198765385194602836035854198046070401201538921758271422094079202552017862382159821413817260593856429155880719131212285447667524307221168134390190650262979275484180280966432141281041002834285729447258320863582677072722480248922538430363473346822301293972366739607867124171278692547225875432132837577676998450793278499468930419008724323735131172531697637198461144178748440220356791849903341348468982487217454011319746565493723195530980292093726595635021257218095551211918902908950811556829170766010807968729002820659215620255683758690505375056977488974782876598980807184351336436506208111313780837449442495369998280998197359927634394427655310362508236883893545953595015017497384109040861832969441706934640803213385521424769622124165339663914962706704845066493518691270584125185938780217032154398279384509369684884175693382416875801976895345024096242113694419710393847936727916388306613317435930992385483998260670386651530622845873606629912815736067265566888050627140243066337853854357077758136680829979603765302088574030902753851880574668748846722774552724222176081982177369395212287719412385387969188863709368472209081700526792194994724344667086267044759348774601860802026369450158578591649329446831863293814201862870879279784025991277792123704607923247428529396427249267738279047696408026830426011478612434226752629360520380144165695315370797925103269912483514072140107308595752645499992105230375180040639771640414948107886602229572618638045152122054613515678687542685462656895129081705992653679342101040414816311818993748377358956390511596747521583872372733820124875009641333612679247454074038916998016012699534743568075476445681661499744352611611976114263873068337547389624331973069624730243192615640217365165969239817441285035150680386612468246539555561736285809019180116495303689685454595245793175271299542682244498449640031159653439402691261086294911279824273333287847217793205174721774346377795686388421824540794297562083700009732430661882534511164838390229188182599342547473658495261037644689270997650481920208857524721645134497441147909027362225195581698062774509692038499032929150649501242403319005327421695143182249750614621372611854226541563975655824538060057168951955983084535196340120142588947381609970326529819756557141598916883717494767187562585818907305029356140182527888429122173892360172821569995739480964726308457383391469061623793052849954619145163526033533938151113764146505965153289485941758762947183969838433282244663337847469683192584440357281758761782833149293008925857566227989351715700688107993976622411021291012931673621931457422059674750770006997590230609233685780011223650750149998668410257506212319638261653401403385563474462901579647795681696305451132131244508041839558569096780436800011606268758431547657508580123501184069359410513639951031054531273755158837073535167181790255250351461273072901197594726671271098221673712248423012144241446455759292495092028984919301645010982721019067563720628234612063164616917302587315759165590374021609103385474736285496436938601065086003265096888585021694478833649250553594793168419783826641994855791536627646316411040307384246061812196560829947758127223300581474550123089463996886647497831143814326085260339250579032793559052896347158415148854190531550029593512620719186082814014142233523407471805333882830487276987374738361264996599308891151062484818003197006920906844285623042524801832163962608940403822584695959933521542618979236977794761778187661379402701590282343599841561666974810893864049895503927509561830658703539350400664166676424278717409854087645713859310615520440309254005969314497042292407362698789002107449379852706985319029049994837555213301137965296213428146693878051348688620293461038804140045508006666462395867592772702984945223305306052952022766497752215797748930813684785609451943426408820084843111209167990412128878128237130070140463336228434377315776390092168470473588063984627763913173325753055339424440835210541142043490143288089429426714735935798854976143370375384355005524612034995336577400275202451577990776434991332399290849879697171490741584352479393063167872685079653137265634303922182117459354621094840827106403458245552479398997241076019529592118042027932488337199444758241314397945959672206505896158529257536725503173805816414506943221184476196238575007584173186667869621976855364484462865051477045261620175225820834713250357934030757504622298509277372350343192318632957544910219543180184898637000911367206158889195298318300519138262812915036221860236888038174240230967394144270984449985842698623391628117423374652994227492007635442768330026863149902146240818261432049384437672296099545059309092586138344552298935856110135149338257974220469208707427025393206055011879319667088059398432983753232408323248598653117978121011933570512127934309565981148457390902134892742647319784966410365637491372148583758258683747344594173340072139605633340543041296601266501188049064243351138695424667895613075886062384258470493821985757562585247853866591983588769554014692847030212474621504093867121143397516333401691439747276169914888341668054528159483378085398081373561509391042609904800540186016644903131263486629313564569333505448220274702024247667995744475610395487673545550945345604393365977487070478307347732297958256434728033900697314520034964251175008711736119358435633471258855123191122573424697779396757162288537850584485858707606273627542400722258548867164529351271771254540134106238023345257091395990589681647421285818121570140709680726712243242235609312386217523092000675877119328081214457480272131798676190163282461518046635177011014503660623423960827870433117175322089956652101403008328673452846400481340351680528775949087994244824556986958780480093970511918484452360289250696623977664737336607617720365140976063045722798229759965136648057925178181222300469432852923473085558149958178627777338942389590277854888895355200162469400151870232537635503970234108087951270304285448707356378058470828988329296150910545825265440930269165833003581094992993085881933374641496712416021774411393711677491255317727688031801583662153146396839592644733714307698170261760744835133229684940232280955399381748882357904886439551516609200049802636950384325798635492016172219963587297580582778413008837815917544907417061822426174980821521202288195107029683147774304215521893801388991251940225438840102181003731304483398537466949123748846794465390535951719698466864519828147984367446298432519292355138949134191043842160509205325792821862212603553280523938757386298918015894413722376644304605471385022376769913544161532543572313004542411934275777079582298876767536891653106271340587751942262887266890254830046190074332734831677713381191840351149368766320173147381932509518947512207604292741698602397725925762583829718045035085766344144668238508295862453054072981964266230589716159239000659946667879831342912356413414531952087306537889960378181986743376521426398499711402509707813577624131556611510116055679146261232062159839790054091539369607281604331453562435792394367447972141556423647364108211867726838921280773627342889659885624092133104385571153712759254461950596358379730051478920619584579513519842638902368132526034637161699154568022428703325729872173534318855780266375849819878343680688392122663128758548243035750059278244241581293868498012345576380144399944342166799214341724572414627840168319822866866143135054472523959057706190843982367795663596797099609666328739754077859847096441290506250571658085360871345785313849142781868691786880256297386958888609020775250300426617694374234988286692839439214155600900801234835792320592174702900805606231883705611464239594644816790616990120881517557092972189908614253614769835896594359164842598109982104284634104007999227855667686385825162802273689976931273771203465675639608516586866656152009387264952268481130374836232934972195108298566553258416200949567426330168006652400161660956841365554215973783404170124613060616519226688523627416219628189276370821536182596571085790198671716610267973901740108589993570073808857879239226373302781574090833428326121665049012000856863139646653231242064696875860442567371923723189603867144966829900134927129341831382583122252692384250129983917688578323479180081579748494347986158840593364878671835463619193683503517890048145394078753334956728712517046813888790219946652819920465894346572514339866730153788117619021585602086487727227040143690449002463364183655166612150591912436393146654987144356113144452023475460357122496518691091242388517100959386623472090309911311076733205123647069620809844921163178949667563692119685438511405249832709167320559118313531370278960083335258303639938633949670304040505344709497559791083991298357641133523408874811757785855095645880270680480995065903658131480300300829021799933031579503992118888654877335584938050829861492264978990899333744791771290645334835081536976293571429506010669429422902295424635454065276545769547702378358151371814800510336227230551681840165970762756639612619638698000002652518482507225355623003963305271701693963445532766327404051700033432011166021957959564249183188112588673935297536105606086804144825022729399809011990705543127250164334773901956567543575334802415518649041725285836094393621463056536646255161976132745084684622230636043927547107281400342494745895113938091016960415657600361082290765849176980479439288251076251546119827101165878614533676365924718138950226374343814834880932098972947325041458561797206990083298146068232648638878563771527144687854700269968070198170533291557119930549956547392168004028471019468191267555267851592526727903319327711995183980729295100146082149227142118327747290120357353952104051054387884088659631157813155348958747526229826173627995781471098755677423802127385032301211624538155406750267916567850753120391060923644655313047865888574889052707162302398365002849972192467097451395207383358124993361884088739163128080527396846728246441615134652286498800167784770974680727380871634591872858329981479769010720680448631041524859973969276887292762049111944983584013200492775246470397269211876157743662245624517041951571353125471155222561538282288804908725520481700211876595099515615634116434343160002263523563799475931159950039871757921009067434260102089197698689142102932570914776796642616942753294505868695780896567555004273471955218321278234475728348795181420215731519070112887491486770929658053520482508825363830521534218673415579363016316745898509709590495930438657441509482854808453049366849748042117203573248075778446556421319591835001243417048960826811997984983203913717345012699037295258312957018577721516905286991080021137565416221272853755154326683265102415978340070438824234938361402194516313375482780539414522112543100464441362690246111901625019351488078803682579647444411899394394700416769948834408445317718081843341534734813442599689242754445189251007922038993661067995632982653696264632379366300202233514882785680020223616464093147364332272967063480026242152751043472920576624333674300801071139347923724278560603696133406125536988555181574752365264145758716374787998270319158529145154571977226452055825370020912632211523201341884123844356111588872720443065072293862395302235135722649715168328552698674233312868785716523869857807872694584809562629173615960082561474155867955806124684264534875560873175304307420837909889994847314896972498070747570612096652533986462918349917092730302262441476687459331518278656392253138611141468463477212852187894983697919789909317730459377841283724257474572380935124702375593911497190214485495131802655131436225672722317929814209163361647635278645076858503221307962148657152181717935744960710954809041109409390252645643837015237338191025351772887322776130998419449362317050363804297139905834044262817094234699237067223373018510132014956346744829163706799289297403998489174477180409858147548744237984192272760357885784754531014743887157326826174606610689567784264462037644755290651118792762445726732699826187151766054084550021745491330192646328488537919208735580476493863704838319055340157111296073721791062095752095944472981012498997387890937995252490856000145927925723447111354786751598016652655102302908925804929833670191550263544667743303483987410099405261648825349258020402866063394945656599173677610604793888102786373798646822405077069156658276305959798828341438572455820340033870696528804266192305895255439572779600231929043082393709300587321626146564506742206666996302559215617350840711952866535212763095645852899672661210554455081045230235511359497775118679255410924915843185097368981301065714810148624740526903284607658203797832428481190936770302038265405107768379998067134432032248312535767229377508455081901864997076570637905370292029019421219663494878469664513760541584428751888140561336630194108947955501380070801357253599509417775774522960399630977737782364133810213996063804969005164312249314684416861717855325381868791039986396778680347468554493303741234078693499048283972765992274380188587657986285712165896176767869348437923890461268362256131138346006835723382448334565173005035842130960572488286025408661175384291397562753144964882361263406254274752588905018254805709668896073667253977537305494091145900624059073782943638265175290581974351325947509106592165500172776002359748010291386338119770718231264933589370463501115709755039275391178139461378326174903084311631960961836638108911032616562016292032024607126174430989801257154463792611694333614304317265472299202403697031415809072316995799092187000903836973062821654607387137792001648817994222258923323691904922495377917696158106971388666573742660341609192604800754681996502096532713813589753020626915767939335485019747279113968267728843381043129577916627949629887430750918691441977134397216990323716407952379322961808141307232083700141835735769191125853200751360568490639829092453468772363666480462257325152562824576487003158562082490192355824955695741288139426689126279609192125833671349528402549955618824085447678217850854936763813545476450967387195128353683431246753926882522486311887590790611536100500679750032628201764414371739516785174823460365246092217958738226034973195456946831600002540222368902289933243337169510449688485346563843877787364932407628429482981405407229043650322181824990624000068061740446291976174143963061105437916213275737324682958516750836467907974194563555758853169510550545071709692476366637338985696846773885630247056621415649692369617574206489441172654234134780941812889114752895027825097876036662332219974254188367894805978725589240026948890336414901878978147988131148766185378679240496411343849404910611288846948485866942472555160755600038143565100900738985423204454173925229601096592847855478067564082327659558241761570937856404952693812283982666018196384821041072451024817782524229824504701390190300065402802063847410949710165458325608169187606838171279887065852312370556302761528260524495662658056478198163483225128426009957897505764134057662962549508821301807244282943800404345813317342918120757307044464166343650441367923337406833990073726883180536343058519099987083177030354537739335691039269825557779288264782931709191098018859374206976270524632943485627250777607854565014626200600967111338474149798647242226425031879529574594547978721375933526927837857207313317374497816150338220978497624509865172126330510063757834696085503402750136384795455847612812253394483532896925169378644106183783510234790469944916442226967621842964939147296793160756834636296643001257784065822041579437102112725452806043975442284024400272917895929964892482690865969018685961420837770774976005848021268858494482252721717726267931017933269829570030730311888551626274622627519827287004046682309077893544403263187795233720504397465531206891014485772361440624941844823893366056556076293576373881206152676883984250626839415835139737617561870938863714670327311367053659633530965324706169766213104215252590040195301423450035556021632795153297934449072481501289733154935015672912362727920660179071079054301345647458587007901096673827796588419160454010995836826668607080313923294993899307606367400735140406854847302785844866786106131292349707662563040787520997765372839304881620006586686650677171421666801428199121952023138682764174110043755445873186948824037326562727611087754840001656499275696798502174456477483548043073668900352857906800007667445226922527506361559181338376447789412847220878212487520786159578198158771819564049780347963664431153181207462692677658118825466152211136109365272367302270267761634698557317251823276850137974427093486351341529535195662641885488845494205141343487479572776231486671909708661531277490433474429210196328306709221256872195020407378453015461482445663852846380081504034706196403457135576346370707768054913255721150455401708684743901691547591401151001261548242091856744495746001287024259267894819876699356915726145500125085757522361046750118085229823152788688444888967635137456054093805959527734328744187850171411045599018847239947799037929532164346827506424341661778805271502315956576746823691354695223336333026477880857167336315991592719934413025990535838383537764952602608929688547546992096533899484026371625941580081341282286164821345751077502391278705403896605331593107531015473989850212980008316799839319821460792806360193504967277496006752193764391287916838374622790950454919524915678732772451223136864369189647134139447737262040339045480872489630146508546752254817842877071647550359830084181633418699621531148455690214408859603538901178606407218086283796094866064141857830669217004921709273851386762122870196469535016889466501510051662452913868224604347752076130143936872431205744980292083649811698280210656003765027085046058024692402958595311980563828345604066755685175263771068948684018638576348463431596538341185554324668855795396234054962325274204192566298626003634851115509219707286597326439624620150068107054452637197420371312499397242862675302277984782338355804091768038635368407704835394052825079096987987427444064663823043593691512286877220294294969258389497486121823053398958361378132243155849838433007496814677208019859839315494896283640560965805559251027674126034403439202987310398825245936091802167442304315574021113066845872762822053026440069424919347825244009029010830967424734432155408447219816471746522190356689717689737719822074067227504154975203073360575265514516127777559477239455798926499502202151256726342831446017445797212107794240799746471613249113228989664473499559426321408773260035199864470052399774076407576196550852031159793376620305976985770987552918229956472441666160026408707553243874654673839405410273692569161888923275211873492890384152998818178424267844684085565226550271474845615901231185264111733548997083234935055935349729085822701944905310463126271075058997208796972557406463100733704726600975492196524106576694331886099348415462981079715227793125464083718092154063468816658084893915877956105728537192633903831207385144807667637801575295382958172979478006080608468691402003332978616305759797721379007936186490872211088889405232225967516030407277229458808686481583427651814661247782110771708679998827456325552603417269964141879706535533718306982579314494028328075094974980287822113519518576934832093150488731799586004445323623624023800628371896839176157198592421769370268292597964563858091533816854013756042379259282505384633978006565505660859666877755566723337262422352707632622554890616579344368267277404806898602358322157530799596445839780701306306887369672206088818977296327942681487819345119748453218170108551414351182164728116924920412928404774181023305391357891503689738201716725351050534781843630800599283186084635301850908612693128495025329264659786048089689365715686349017420143906908483305098391445447314220241574503598026890021858497474548972417287632001301080120724019991554173657863779819484220676549633808300672749480370988075073963388108438347954632076370544397887626974243511280667874463365125170397106717291156173438916594924770571419568292404828878911840886168913571307845283593926673079779441233881094707289117106252127104952638429104451319637555346401367929572800413126689323300208143697819892151657329314286757135065534517183261444632923440348144898370257310930421945944100072917352349965981907516247594290876907762210404693344827120243353421145819455584640734630506407247872241909275866857484617200304904868819905099161775499021614645942468553577265282097319364333385800014957063593370641372844405245278474858968492035413400281240100669747273570351959943958476151304655840153065060416747374193028801898273471475096151596863895997041963337378040126762000402443512244046705585826026368178583218298579720351301718182669396897199558206262538451678798613317794241538513376808104905947668712437662985874257948818050230724850210072394203236398968520325030871832349578622256100113445017494272483832962237054169523581615386150613489054254195295037521637116696097311627884507418276397353335719496443595623142341420188906323331858015318077598272235941015933592848386638484582338581678722990289156266805835936890883354359956454168017442980709122844108892769123743363816857901291439717194108575758521088138213638509808473107801199698991142000778433450546475114011790207852517216299539797992006085348049547667694249294912583717485123011056522673584907619740433961362191924460896892682111291580133897089978923995298383558853858251547028501151153325503575308756782389651376360903509976361144015746719322553397303655194986780628493539356715320683858433949599970042985069904633275825942599203734629407530244485075817648622649275389808238284305449837589893431088794785335239645486934477012815557776136761854081428723498481586156996744976260624548477552062176516408424264640887462509257027636082612741255072265091821800113504370350909512756222009316403462352247057046607405984519917515071189776550914299228559737007793812250850486923085153517559412282580150931026945317328105775328067836128182902089655316763266108000112794653452468410303668212468295702387260194829855973741316234309653363526972792558104548923274496218290917711196380883744220163564980152639647946080706449869450969405854154487919918160510576789753878317341005579513553358208748644846245859205063355119332008785639828361467634306606495220244446944606071091050866059576348607341514003914436648377604073345683875003914747399736500112995283426471505941786235886882384919294255598135489855380896143567395911253324686180685573387535078018218693087618101051252917896275894738577608524249049523952217334148805110050378293663306411516194500194740029932623400980858232380227231332083931869024511514592206300675521411746200530974108455693544544146306238943070666004736509805287462450691808576231137666548251215722310397242128050838339249448060118111972161266759807766175111236035615874761375367521943936069768808312332154332596070221949206746135405735914198859997351007424240945675482740467588834572263268866124651546197960923593562791590726630618358250004391514272476594310582696312566883373205536558448354811434088815431858332380530865913117910167869565580681544308766313949744368166171054696723935378920713281108258133461154599831318168056939920229933240350866496615035770070537927845918578783188552385409604968601764494070954972195626653790511334125148198004497417467442450293783239893380360873041195225847137229129543679828759874725173096139849543094420266223854419011957067047582188709376557410864104186462911095170644054121485012148992955352069545960750511084073428708701000891586013152832415784625240383692929579573754213832722765312308362176303634522273172127071183373661205910588329593502960376411753361433141210960032763643451156533540519592956986760340444333555871951804587507706663286174985442969970288733648020465034043808739974212879751962614398451917560377176691256394462962427675141008957481581444220969778712618534222399641942179713846149748719635743588145513795538199377457339504574486867580457179173488445202323411573637772772604560182077046078201280024690371514463911757070726803569287247197355044927132084178377661507744891461086984739312806725429485744126368011425620539330804658039849578942669510832710406869048550093954785805848892647416083309711283854195008908934601061970787240419969096400306960217446476345785517678150961315443567684122068123606635254048684757701123042695678500663025982537274467287836150988041439024657437451281280394884305147129911339869367085992629643183863965483695728428485642329635980042503278985606218287664719711392700356314921592218404995912769078356299879041045945471834557414833525957322381170578583156799565926416707079934300007398812125046140924802195339579306288600444496501799976024607689476726288370453311245823068151980353319491298861972330048668789291517014645240734184583189689688948189193334890329456555482100016882551264224981768090668912141632348876914015497414297225014417024318722762313956610395840456871957459774620058103098735635201502122580779561126441586337608399873684541081743145515526940006623534215702830705952573718363592818495290418034831079457479162001550065198200231964699546627546242003706647142984370193812843540138141851607678044358342530550099155090251249256397592057650585649754566980380338496434946859467832144194258683402026037534209315247626619177189423371847504232268221635100050304850594972862250953093955417957289323093137760711740534958858789406924771868972924883633313374510347614428117790392413901503001980923978870713182476751636080318652777997489866573762996766186007543508777253368423781779638443090127316565330454665436749591985817872666674130511631751088961987674902521016415382368254939551545642187289981697902911328008731609327975902028540519124345282305179287257422414125612801455501431815872392751423181424932110351859894883302508457020408435599777806308866142241901062900649603238634343860402010518727888211307453432941164216888708918717914125384780375356200933528559160638679888413752727850398510380602339537208021101173789329472549348772550176238233641660950517203988270455230921149010069889494128801894685060486241448021786668506305223688141743751456606244886251438530011428113050961052743104200325283852561550510213863319052390806002837958472076043077998697406010858783457293792012841286761351853559980179097370058369390326881925001515591696779943662233790237080607166025976000361453712111548377904335976396573865595087652577269563179995780854679533743747759756994150486713525670596975586440096375564325819895875071156516304895608469083302780449509861510118267349972280360359088532640755946222503955000671043803158190397413899774400652567084545746022576232920977333403553299389431365340820598047440770136665145209487964666450521589497567936819361561945646111804530610481768358873901960241858699845099542292851427365077910738920124688871678472098791607111833375152069733091002123570632590359312376292391733610776094030880812569682820036999808763580120756572750484795293979136778991525571345030468964098712943249040169817989371117549143045303114612153633514465004945325067392567466186322230347339488688722707982129903416765087566704891029627949380480074222137213036555324588975437139285106626366921870724261518554908866439065071804549544605478717229346730530053620779289079545589077404698539024228866787583683720284248319780608524399890315081609883534367718775037090961506161411432053553812560716923065889515788674033413647908148205247985000689677770395128279101226240549080463207123309211486343243339173943711146969679545825667017839969450419178104517925435630447590375552849340731073260276913239400224432496146052988358818305575686712248614885492502884835827324750627166149830246233336038980151340081930730624564919774982821306358177824591211566437829347597740574068872969706350261182614011236347795941286533884745298921483922976610672737504204231189935763748638480247836103813362856245922017692990470759848333847801717425457474779423613062031297103056006177711932074145106677700105242500001080878880638258922721605329519482533875375903017607258234241103475604470880371117060134343203509441951249681795970316160929021758977717441198939104194247665129895840969420790594868804212629455739489160639342947203490995149724381308578995292320281296126827936582402444103259622278343849934666196247761040711512179723357860927600922230047911944069210442310855589572597892257516707875876812319882278580164666784252379729728926316678771365652511981452418660017802047658421019504972071600690580589781340281167284096476350084544218144001096145185025267462192661041297173697473873642526293105780763095819954888243048568600396991208292075575814704372692147256478757514152305272051847680502201281525166196743605603196193259961615820019506018958098093113050365591512931495085230447681576563653678902930975540567255800003437354653970355234367219198318901324115135767397204815935919485263580638768022911531463833913537208050400030442078242749341171430332227749335143852481769952773258785466756636544997532033982016413577384797453034231493675715212338622731679894232665249652165836593345739189474807574903565854020713031431341338385102926599468969684691704734602331397891826406831211750670886763298365971238629503361843021353218518975399585607039224064107624583712004642892483477606096369628671954504623540345866276701325690744771546184174754031026671797290572459672227370599190994316769044965107747066867386045684490438461202933145885579683308886816708809030594990850598207724208984403907895687288507715125540087854836883389771826330294805228159744387927833833861633515084319052217981272166959822823880373371288402198805061545406443964183982055101501829209131884933630803590439919314839327411916539494567497259953435627969793828361481392221616987192461992611992815887831615154264620416474067061749002513315975489120676703649613399354869425338354830502310153857827552493080314305629147578709278583752135465747403001646605253056382287544079239510970388012367340993886465439914049770758889808753529246801459184932973482451186086856302204068171107052374942184674412507579070124952941183963207393196863183883255293904157589234259882913958621849081733342081003070641554519178690898761839833155645014150206610430814990423612496847132683946405416270993983272539049663820054658226939578237638145832389203062098601041889455831849105513327190191467583484093626863304090368778470912016428517411814695233935427879811511406780819155453390000711466046714178467395730267986224469618512839826035132891413687944392363452721896415462216756566892614714859815644065717529360479377023400933508346859743143712611968968344181853034356755311328990439892775202559913869188362529504402539840716947340296582257154835850257947027405478488734650807599509419666233836640557412070710459198826413924275968508785684100727994090311703676263157078394728446575457704716452629760939378497458766842975577339738028559708398288873164899883360921492078792159781925980020402121048184675629911160476877603922940509528154431421807846576127115512242280945440735212459379408178905717817221943704944769632025003983727167336323836916348345673368256526081888098906066022206656390735053079628396140374333124671194322794200413041012822704661319262898077423421839502385445160625867738169396513035274280277636920794132012102677320165065740595586204981046853691947170259512802110670996225860971616013208523455598048185346020515053822079654915532945461124564890539663221482641110609468453056148872280885793196859407836050336997237308056478224307579438750616137808152843258951132004718377157137624631387976481022740297514031225796394025670079723819904234961770399292255643124359282812963042461090868027257829324084398460295511121360272914860151830866922014483775053234733608521162182768398450308002388886947765569052300506472945214716970061271287516897409009435885405105087008534279862947083265878697974135106608018623651321462940784814073935864025732186422358522209812419318207308843451508493507633325520849324943354800940321286203290150164557240083417286019974438023984681536462661568500535357574977366174845400719665445091742916913240339539121317091254610621301915477970285196028523036775388323978633287083940567808373519251409676521546633308752604595939930596904293774310798604289095786414863457035810188617415730125291667470962689962267871981090588134664871843888956904345021748609102389115123533438171948687638118129788172106311902813208138796117908470531778559508955700338373037554072532118045762192264092637503950244150848450658517429090632148655230917300769971578253019481995006125140966591427259356761501855088662346317003326555553056421550386666192827714734050577600320963464886042930461546077860593493455011171708182786651839021132300442595831158854185607291689404779621694576287324278363152422589812040140272152935959537179491570357356922193363099895374201560593356860983897496306560102521537704787558901084848139618495506423071737120531120463491429572503955028013422501099817025239324406642341237888527504673651838107881673859185952791129739970033290668706791759209072215754740862416878799716605435871398880763006697313051926024142716378364561385514787375567692002679801521994854251193378518140366969659777900673308657965069813285977883376036866098620575103048579172762357826710826210288508108000281034888076191895154248404233256366154464067070924543777944062591029068823240491317051097655322292343127883268862661659484042147147732891586114229028532021724069571701540054564228282646462972124757282728646926427819898050898988343212519521869414838746382995726737351260016429902365051376537745333813434892871029869819679470023137521341883195766292814024604803367453584709971051653269730182878029930875745397604627869662172394919515289224822287412238739532238868243493659397200859515085560366979420002351819448346502171751015788751126489953313589115947931983830726696998947320404149422776515647926766701803975335571686110685051872596201594001690821817951279435101917932108409014523811517435878933114970745690103132516288927746964040660202791913966022541253026853958805321304294932676276528822403346165815691078741768286131383708702874621202438814315704428030536476332055657505296909135983106586117437145197480090207864974441667662346880024038250676730523353939019035024963829258172831628964477098198873306739236874165168242990931158515230179959886522588414917241176195475526015165643327231376927824399890949532456152839477393073176705976561920266516993700512121568959374154082651646201956877140198474325864214957025504146978279327516984449570475362312151675983828056419258492247962323440688877760581873219157832361007309995437717925575206001722033278388258152135518336156499504189462134826438597674064113244495883589744591669304833065555375709301855270755559759399015228834353162576733921892172400279230586052749535328737375925657630803983580476336168834683935569180558104060296450049956063603168012128443770727647260603573633157163943354404250761990945367017503911384731084785644236600636975246958175663165690361172577894345688706345267403240574294879243793194845648514646632263842464349676137000817583101185470334474774706576323303812872398964230041189621226642625853097508559687374961154141865418510576069308228371175180758276619624803168437621656392039445735829340059292870155339333680052489532104203393411259661540272367256451186702667613868832867387092286444943394697102316629204250412608281649722072912159031695932339452613749466834070622088242991059272056809802942167672182989911883693300580519694520444730575834589176561380336503742999836551126009356727019543718545795353386120801224292553317243098622421143497553401289870307061567464684356998521331136033907643145321588509802212312235433578226171759608693113313395778143207003920131283058510630587502575274957178951470535704818516156572721535124676351159271665315487375108802513211220327871109222796114884431886466169518935401317630886112972682141497202289452578815016676872637000724862112257168218307953683327693434923332947192033057842365555743079429612442123146705192759483946950978806229007440989754781019172367340348215495139671042080011229150984065772617991762768341262309470137497643248645207889129469440073741645608629492861278817886666586484532998853728136109325913244849990565093606959272433169276750932099611724590085465695551578277826588912995301096987305632264370393472411475543137201995057650152318815444721947598362196242861423409491297664490695935130601943713741448945010241483529182816754979371517088538830416679694782075094942734661722843729153205257396686563430833470804284517326168011544453125533739674387929612816886528327420584938042781517020996517765886012147688090428388268585240246480635392787345978599462478065443870677809813941102959041500696977377168412209092911880537926121211165815368193142313766337775413645711450706168399330280525481004369812305830376670204733767953938833784667578079127814004340478883584982111783165921459240725512755562346714723237091065693458381129008227547160494454954582871121807013417951231069873998684946428005415483989095012000685364398830861052187516032739250167689735629703647089867799435973360256060944327146650193694359564676125487681275376694339930107490144002224875879132482431007072563406795386205560006963035308718342527225664833979117681035257837231749140680236355013948523983260486287413729151732699053238337450987686715805813304986314258561127828005669852503497178960626918819028983369694350697751573692775587929922996552529511994467661723560135272870467320920431308835735800641491918386028856566318044273050675220173169698834572914188220085619066341105782695627882464079529432350844775092015926618510351763469600690557299278535371493522994036927025508170434322335484640867480532680034654520090156908410527522313811870808360750836992928322579227140562742830407685640723682181028642703099646203408204605318989815206866865048543312752120017171438866568075620193675011766339841402495106473805839001213630729302619770971866590505250759206782735367209425233912906131034335873575123306667737474524474799272413123855822091093437436283400337729069355547634101232598989745359126811212038436634600745483810798160833915494683901034688230798094537419441526159126366718469820485592813277377056419418790577106944300855243200364726290230679317127536997169021057494435169025991578906710234512262875792704651157216625991261398275234943086906027960632274846502628000345325917046213073037876083127831038920713786781022377611476633559950237988230958733770260686302516599907538224852240884256072106767180509819069598970918553613481709090756830078531108285836936916839379053506159366367703647168492424664933317363474885431918934199777337843854602713247608571246289161627667160192098823751925132756719014728313499313415519763495310479253426977749323388619126814011112947705349995788355520593799844714459522081543428157772740320949060672554925370365378482066680287392725320775303376117455238470949461422790665355402828060371395246545495218075838037215714660726022277281949931675670071825016652198358192448200533778066212942061793469158151067320344766100656335876574329228016701896818330020767619742788710806007911250720586290301019414349505087160221841650169032240809822278782364059435652197591412424046705393425344847505432016194494969561491948437580571965632432313416031051149982753018623451389736887000428220588639749175783646600093081201277230384303393061048106379380487967155002087433474825765450559755187061222539428023487370523375374820636130796061945573262902468048538224747108022061826589793121029589392872333873494865914628077080272105855574352939061251815689123213778060153150130348000226724635991376522710660032961865550008351574105839492672631227353576071909291230404495079465481665018802875018979253657755566628373268195703765873283212723643685613064589819880673019115450935241715175534414054078761436018839433113890457240764733093068653501446098083375295758688593125295574279574775927140409778154020730429593550057373887072805093331738614341170204410347343091596481978985544123515992001495240529563675243772481621065868526981369675912145390480473819136517352986879568523507574578218204108884808246054637431976538882460651001468922621535079441656970324184024405513546912541210204999818456925556558457408581696819248134841735364124626522548102970781879960163777344217046885661714368953167519881798431832212034663072390267567637599909274347582255805036575152581042599718860548497320569518216746256305163249347831354656105716007889663900475977959458137368594765358842080899928449026919116320350294034294312303794845641600755789874548626754236775901352487153406351355463619733457502123271065971688967925502817050919162589618180536012211377711998586407085684704657855110705239241712360089548986840312952713374799710888657160919786850234711635928409892738138970652938362284352243378114346334267850438045827937699930172516122221729981600315483636884575608121506895998773379337724543286711860988251576741617319880374782152893744298711112716615957866443019272876538756155505957804010987712810654541368053044358646409247235100877447057868628713234361764934257140874884746626619072375425984169023229575267814499096322976112024608039341534078821585242263122433281695088549438324220632992413075108558425722930394369098304223382076424875149703992617057840192949316431043148615994793710116421474477103504653317615801939143337670897373314960408634354136221274887347611469605722475975172239333439908834012057036070773245529891778542227658807021741172261067155329492110202744223770648060235832265732404398941054624820193620259602869853135992392326071681654151745291675742476972942406265135739879664712348295369801626450568664711561121960422757650086448486585467851403114047045887221610113003581936497039419972112929154692448864406886218135559806064918270336808563072622604074855570136124788355625331056651333974038764178817885684764265432433538996931578973273952632712566073536397553261229660742093064355081427978250793209887040803342289533335384995712905956671549705569740888912966711026513898146395816593403322949320063017158077822359666978468772968368759211852621544953719300270431750396512553605262097935955346474671336026949256740500315468950816183392105583242845004452930525963046180852345251523700973792150158871796812820892139211960045382992374951538479982410544645115866570197579084568080400953367544388217084910329285882268418610247854455309830260796797289920361374653526366085379326589694610978612509880804606879380560106584267975872965444923858275104401041641219756853746819754999648822970836474100705755401403739424135323564175009847612337163038074328575404681888418783578993546650068313311799521482659403957790985725424322070401955552574358441503108506720904127155941831350813727214849600040083403103643084127334834868132186489030521007021759089423284358291726475624631121549327326854949272124485179934212521428250061146230347329057092677574184383987005441557859571313228953187914217835682543498046614605837465657474212662471407065815740979943281081843200333570201635469482999212133713056125502128868316393330006394192255126931624869793062764863707291711292112710458974739657376994720546948612568430802185431650202364505792714266077078447821431137250492322346487087325112915428158037747662618039215150713852120682599304711796058618258685582921654979857315420638493302942225308747523363969503986068446352338608295865935264207642540475736531024333588170573786945116308464002851709302210945013763682211940136515606949267498851341977027510170352532178487478353798317571101121293002103948543547464823830747275351643224447180249443917402983717193326832428637725620274187150112671191249869360075099688399131259595381240982250237288431022827181054740935084987310298928403688263329692422199943065205628936384497402999456062179083872255135039763633512553287878824151333003970199531494049096495775171861838177021647870351246637946041143250379348362489144401808732613987792957299613825031380589405694675130532390252274547380540159887518960186553463438002298053599777630228730001025013159297332284092225224010500789882066858927127757871011065962055368242485774632727796384848424549821050706946798467706755565518601596336139355597402974761343520222323224941862949130453889063926176800792914114553938609373709803502308131877722784438655995104183932143514428768942424857834834954981862878804241049358576123270799927298596666105251061855127764902709061583635657420139854471678638856889511250792140688626863422864630711313973998805788350258396864605054753043304777950652950795707248151858422309400796186338452650591605993330229254653909036621837102005654110265069986649670097622545373755177215915863336492150976081868125499425815643531300176000298487942148066664633026703248506176774672546717058257861204808924116182284603310377709705554088789372558162283085084182599656657515383147051092447688341960149390415098991673109842163987429396656164673288874727943082593306270579659450966273735958256544236651454207387628224397170352846846790727504262298159555356789356165301031333265020160781057339764737571303893602517236490484881634105942813188232084130781830770783113692182742816215706202118678178059214913555829449095493310321374511999335883810383971187797250077280400154017452431783335307076520194573093872795404312262607938904007340042530207940777932461928861747048219363378785646793035434502396451079989322062417243535307631913123108206584187586169027355360800102394341700977268669308249777363191024568606393784424416697492740489830969464739556648475251879446273641469608153329499698674956778677336238132310064301120262029826053131325010704885621076805009631389247380272626166553047279792298625610796788343037876557111470373701967114682181283572333622893037163936097803601280552070519507059263273840705136722315442396626134755007073046583049749055695788664470522579361773521543583370647410011081547329621416250874185155605959760609909028914669396528992945060228161334050086290014653212167764716969608653255406179041835184106045794901316165034205051871182382542006126038728906291541656705984660974743351457374794436120947468268430742239207024001118277732461661120145269751387005259825029491555002153180861950475160780602607720088861244624548922907244026401639368634899065140688940698461791156186022179917101357869332999468447133160852692668993620006943184702213165645080352226644459452186209142289695532668619167201927700069890261436538386576283176209797550665819005955188330071110204494203232790778704797227303537039679670999812922086778354018354182531499301811530474142233381673259909308735325118897923277248194982603837855857132219113524030263906702018630486230912439746517800178571135403305272289575760156930431835465269890568159989937399487842266734170838184682900252096482306128236692246362185324441135012120848253074477153826296516677427440990113977365086803139074028816945660160868029238919532748137695101885994790867479753347549938751104592678586691447153227779913918237478660081908847900383658845281523252136857976513328092254134146396766939048239555770877548854899109887754403496773898121703773156196865244568872654289191661605628803014190258684834881206795027836817089488073077611079412097731428058184673864328524738060838710599220226747521675893243564334879377403112553944843820266908233038597504662545806315305699191466993317559294111119672275622022534206755201620047297437556516692524733712301364066699534339139016393858210887636717008775460027153847718742560609357813942835684124011026522456892683814702133999361086559673845809963343087110177828084414394891910681186245823000784209392883538228526633105506779545263826532501376726691421512423016045509755228446326629048724115115342781088838307653285826073274847348817329868752234370642810958671452914946745899313411371357639531073199168971463719136748743398567180462634232449045141454590083358135005592521912486013540743263888111875497862687349735350395248014600440023831824557353672889132742507129338580652542206962419888517064163732602845037220920486583580518413885949066828448753296368946979789356426502117138288396482767394627780715254631073229799610452868598057255893995508472709919565124665792918557478258226002006510651706820407333686708919575195832211102844866143540695094753523046355287610295659915699561839211962480935816987207464172695965076693318377140095977034756552701442662760380053579601858942578788281362515208346440240929923882710455062726626339439605982667964322841378325616425960050624735676256811660165307701646407523562731843292884015071635706672221562837272166335439159615655616712839935107787267585271855989991520899830177640268768899871343327837726988425656339388074138102257437729819217690825646487062258538713230468588075483588055576465954824778979664280583812114461711256059457972308462676254748100465947140888884014631222912268001376482610280464712783898262102138702958038636743044929310719173803375916698836821002104328348699588524537666662513369493970608616170785927612972991625778508339174947000350185967861032538500827866287710069068931952461001114533092862201715252776633768763097501214316325533377073898957782916089855444081505202539587929616601955134057483545881734370431401344024902751282832987605267035551703372133469660542316790874726477229908294384910754992224393824519238423651447168032299832571715799876807613494503673460230422419431890989009691079400633422866945254293174579261568744700805671796987674252990250682758685650807284924406355890313951287156733544616799849230056852518740862580111917797532498480283866709803291856681540611982388747059756295649898090655925099541511180243111091558866369214625126366951502347460454536227143050060213024570620274993457797058669446931937187712158319472774413346410445909509277361238596077341303569449695666951224722511902703339931725178275938602860631084266314371289815780114426806116179916402775672872287730567006587793731943623870716029186727175436285732753633400299369713965818686715183875878021529884011663569128275031208456202175867924890691280460089746999953711388727253038069597007988769598071054588075444619101665412785490854546015167267670918881291305277000441444357294789958315688585090076915788849190757791123193496201804284256584116314014712497758775348814944546006492160325161289621187949300439890772797723365832828663943120157518649474853572476726311725948250465422943802777350510888304958476307011139052102479059505377317947096030133876105612457776341796407694748641210598256157019625316571195632073231620895847732661463907875839613876325704510026511442513797701566175951163982379558298934524543016262391340846406394491910458568396886886571881883958773347326787596311179166869907559607253139311989382883851281649665405029317952500763351483644759341104152753925165287794509370750617286839972550064203482180730454802744818000016426983817294956457990489912703311903968548362607423253366855630652117792407398411144299034985678002731220674584314104627160997035388923538361324415905221803252677092352461604157748420717441433378420350329845836989773756975444696647927982002764386697065829870907588777035993825893094205876801631967999163848962646602195451449767487622865320061896088456268684046716905120479532255553367533871828787560030671416402508835171989653305325630636575333600429370874940261308231116118795644625550647856277950594936368878244103396858448601711714644543810457331552577435513136551029723080286199402747639974474639109561274236811980405325351228221014117723700939268884253277227443184805610994254459714054230078403732709164090543343469506564172524117271106318234511623059423396144178763482164626828000668760104481374688346980850684996395487728474014525995282827838835619520925120067722684568773099213740193817325069224300088335779381065892106297952116174710823487321041501699001232342000042902135371865813691723620147076669916884734681809409390827669169821235107948022739847169853315936988432522513486834614570670203649467820808816720538516209627242517972475161965442013666208720170452736373309649700669544634643547857542605771168493822667011297421894142206445599744319499278652621684805010443834974516092765265780879211335467258797264458230447125968396842001139985265967554067590418457151911956094822676674400822985248137738312760515591456153187912434895905706039933747593253953205484165523248608900177256479802197423058155378552012872218397415012603687520071413002679398924154497073898259677252518451525604383403598512284156054791550826409668471327560091895049862743298613651455047736130395803331876140847560762513602583677319458523389432600689806187720791983484280235351277860292429514331244609275660763298070176872232010096496574521217606731222115208615595979007960129580480133773229279063858358802569281826249770338740534822098339457463129375078059155028583953050120348069381862905157614487448909750868588911286414985727323164536240766558232295256833548882081790691522182401086367495681920904141346671076753538618517837596572916897390744391424292264394223746627320958148617219175931194917923508621189189741122950460394446622444946288830507453568394172852598696561511253938226468535605297512868721043054750858207005674449839409417493447829523944678944374389101523408522832196645842081758968319404868200795989509981469308948679003646684586947002218931565689446775363716046066204460163943867686242523602314951706221316424553322498638951830838863402386146001312737555535014796080459482704390429931598484640763967421931346262988389554793394399417506826897324644323900911042011506328557981819700143383666106842713665395693205633583790214739398791748452128064226181553739502092377769619941526750548503445156949532398114246881284932796021822035713870739292045359648022429871862538025213706058627955940805698457583563136900377477023054790400838658427732860173232393660234927784591143525022062653150434264272491492986558093631978491132178994053275327539606603944335676920548551090003793416986203300335084042017882219383893340121612088244652108506908683114665943288127302577156182402606741070913562035158229039005820183738659207717503698707793594759959409920040536511686828364575522523330916924286469602703409282438666260016657851614278805774585220626688158720446149727884968052324141700009429292670043154095159474578617780947927467064660117708269918379597728973287567001945605862373534587428561452903566489080138207315715543262909948567179230465204589501773635606382451303302380093524630590912970832417714587942410932455011582079136787613405202141638547426560352597916741737851359852925115732499000576723314160060136690893390496672304722710393296550988400731375417326045196312552726700607414163915777469152958110554365144240043991070463975005386710920838046260185690893862103891071904624774376945552180653596042075644077787056015197271931586893478593936911652953982397771784592099659955151704854434034406130750563875083139480846358404963379989554947936134283189078579371356375955827738383603435200412773941295819154388948750153724347831838001489276795368101885235527542513473720699384410129195019899296429079504097226171510789789386757913623359610178998703559329282414744596589554581747774865135642071941848815008763682748571952948030003625513276499453570800612363661118055825161845474581543479609744242702973748299868160268760456502001642920035589430632049463933072980609782556320379833136265559281640673105477133222218731888398503557800899967277453013753207087892739008173575994489970182707349975309983883682285186748387927494562709771888332461556984052658871955476008899375657416018515054552698068602860337780573651382942682548825764042736597783861936033071577892669143831864944408294086919681023028999235425551328829717334201225195700613617112327231420685058150070642144423361865784012286417326525408753837565671345947683336186761224018227325959478413492041966418379743026585052935451039353594009317196715279372268229749133334359024348815487634976469480614662202458891255193856107498083950328197472026830018387836333928076912151129809061885350171609460471837407933586588407683703813038891921667462534859730348884751162044500730139449039510424841623969541772971953026750926728004386465157133811125212383999435978259075723900569098908154260245684025256154779311071002151614498121770613301126188993686163072407065311530931128688074473322622791697580264971543143601551754241861943920005521023456858066774269645049946015359456070810447603182014754732127228226750224599501329536657657633905299385393304595046976115531907104893455141629330665049414820607240835712577544395270904427609568845165251938333433152560850071880794024817306903255613904721310470179838395725611775972878022309591383224848935502023117215145888135734180510575493337608385612575938277060088225975383503717452895467942461532178396306218496912304599891018115703114485171024416880705062863870629493541662987774289189344724507575980624359906464567125937041538457556009301474172005583434109228792270628698633697903886584506108852707104302073819677333132567483849681889676435362022755847261946255354748680861355924613406085046732240014415230974681506247187254904410326746203261845006938081683555720651634178732023068466125214525014605824933737930602897398185760796553169170025353338099851049050853270933542713459729842540144079635648566625695549419871833702393494979255043429887654878806252864736669258472610840147235239302472338589380281316790248728083899556032829647780276678387118274259729709675898000638695941120040936540353132948092196956304684989941665473641052781050479885222958577623192099989896371887607854215812214897157111917297609577259876233452054895340506348704856883091875211611738911487891200628501217682014838563552381198201856626419558711715999863380321447374437808542986862578114712862561742665173840381422848199510477526125586998968745714688035718459365372813191103225952646458858740800569185241381626125637322135768293311714958853255907347073622523166169788753884108699646598721757945654076107667551088767143637989790521441331708662533300418687212690568206567684680086152829301717809768764126751747943719682477196895543992291328579105384708731282380269817385444655508381735501368832577067998099565054526742946707218829605071986578796056947067865920694629355731524300510934705630455889071266183168073753716316352080757557295998104154523497816529979979239539703838873665303701295114992885913541009739743736406595692359355040850810085884505492857261356294056753457147716227795924798540757722237474822106771286846387932826079515082561867347057968657659585004078677326257857113331446136805063853483122196549960729003409148629821376703149563312371532960476384242586337801602631595314297069358513405104913610258917614964450478132016857926678292475026213180862509617969501416768413825728157238731296585745106008092978742639657320767791992381604224889766775298582943353904831176412273808904957003228463135931058836799248911047957077885931373084894911785324407333466612755167039549795260379062474530260711792511888283888940014370749706045868221365979473365277840170703419600042862325229459596678150871355581626002821418870532190758694644240413232392500472112175268941661823534722747153437402364528120567719648693760518144178740803797897606498934634275792586356684115361302036068913780789296323281924740118766841134747107622284732160189614847266211783996612543260824564337681084551320629534547563296888371809838323158990940824135509802858389568604561883847227633875467122017766792945544130583703842491330890382986253692870981919061948536514004946032032525956916920213173536383150282314285117820842302965140550100794422945693623252264895446154396571884667987615813840521582890594290209318602358986525428644560425302496876960067685605395169219255958552705966544989223019829603676443831746226561774391780681678182146951184071206220095224789251016230183812598039186079897550140947745620301960663292398803350185441358378260220951178668469978541874085554471475056121310452622052739447806265258290330827287217302548972276448866681199457015783674286666790555582143432505847784932914347227534007397649980903077079324423870302601161625403960007521645413101644731933604733045944777627994630071728200561794591398291510222340080642568294821609731334687372009023443356658705832338410453502246724104787711101539286953776882808081177350778255046488197623979517944485467518760811083718582720357499974381522469760010270793589347059735229655915973215229122139344685002950180060855783105488060460562425348928540197130145747999598135362818224852028887115861904968991980146103266833722717174361937164352093750575170712832255994708169212194595661563612879287957833579733195807343646500035458534446602577681565954720746125959357346764281418001744334892290781616126655261302581849029448617757545695030061933485086378882192217583108402052179594188254542542646193254206768054663527791015792414869931762636303858595346334213276241192858157050645566783681438349744414851368206488844874228622061394677878023001941655571244798946226441727299729907706558256057350310072768429501358618573196871653447804825035510503457313176604163670456209253378283214616870970319076074766611847170421728471878001344274923290169975755561184417149353152698791032992619423546370810833622146547854151649710864809817272098585400681727708369259669456343242176602854995952162682728370822393616057429160642686944006916779934523450590809811124869030753005363460668395874734236849534989664045186603759502725827472658451587606883873658087508667469090518223724872103806484306268702331907291417210784113699170569510959959285280621890058440751717020789683539920595481916871624638962947345695870260582551511175372555487699755553487629142367391721274699412106606494272606798912933832058635040551199437800904803068947320471698022304934792627934032743832771679923807128038882725656506471099703083772012794732780771498801293940344382128954361207242541578267621750110139081076715132061251145363769764651336506330061397457311974393066620038039150713563816272127493675036078422100910974362463455768029529875199601467728724398633794747135974825554730239408616919114184467202865483695492159699237493770118077248475108962391130228169956038291365953801553454880780900479275796631539802806931531731331957629876761442012418541994292798932730754075279428791689126579524254655814871640902797218720384643626381549320498494834539849809491218378878926212431765101144780061009944054508740247304836730720588070615290080453619506464079315551541046535385894534816595098037300901616689906947369057777196433502230212717709447130843202530442880307829547705594327892688635016398116539436749491664904193679118996128695381864708188134050168040251537945378288969190793645408971952779161388724788524832884425881603764284182833716961218312825177028930478369021977783779601282864611436676723393906786202775623985051540981739527276950643116215988704329225647395647681385624210085978203571914153011526627783316769732644792041442826664941937392362866149717437866934399167931660531666920287247633167150799244151410017403987508145270222893168717621898458595722206110723138380367591687874361024579241306905626482185512125584725731522225430747152797163873998298152065163094461479092877670758198970406355297180173505507782813470473456791372003541789621570028453260149313081153075970751511081380548055991190761228517727918304797841202209639259515817248062429855953649662198264101005086675919508347690476814584872690254488728451491675728851799410139183780386978087583505477138001562768845703489689165392632355027884390252238153214030433609861785704010950717625570325511671792587678802018994574057235982319409906770082330871884425703522759682424504511780115148642665287783585472642654203524327806800149016186019813748738985988398696565880083485296460937140259860110438672168717917183361011605955212384374345863838812830908114684190251707030041818113753955430045569940746235118708723083687117034532848610626838900640365258357095138083655744792410188399740215660648116451653017863417044380534069435949905429260552020901615261769583712518085281499532783662882626414899584641032692851577525953325489973792153304119599634834972299483975329344476084832572007835807863644083997091447800479735083684597899688663655428293017127139116951203927240546784845195305959595265127891090234633378855189076617971496178948976150422137411736376893998223353104054817440872951084917147824418428885080680053364019969473827571181165548505518060603668436144454987205885500231400067498480374643774824524561091027948741297844672828126140228431323408455655020901136889435722876096603064299840235376037162348612998116779215653073985921583694950057538320643849570900175615594176550564412542200544605110108033799908206933014149819843277803236637181800170292964064130512863909117465724900500792383436171683946328092638276404372274543854507627160811070736736627577449322784592169484540974922333102144486388463900241115067378361115683355573618874890899395493155824624552310772692514327830705024430732715600809998209860434970185989795950315885591934125988451127089340428585016730341099707984063940883461576660248693602212109615343757774173227663700028503303599962528457865627516364907038494879545877179456795562536443070511778784540772067150667900994234624566542894354151523639608811308656594404918099133249622684695143657787841052927419115454501919242888676355700730077364612303825490065769064173312007230634650127540325196689394062052369708463986465775152718446016611166697564674733662239447554785042182304100436395700893791871583063292196396587817418308787174645643049229703180767590828410448229826379750389841020173674598390684367005953614507728284107440126290256674868430108656081581567823196373847027599686133800561714353521802310446948879854300374708956506331529401077062232296752386868991293671173967368295426902482054187701004920296693143732732892022114135967332366400720340428917761407312461606269647696552887386022203108260870655205214724359179328235147243873754554826625211222566823942985092533434205980405432488474059953517900918260932757990169259881240917326547254138140656224169837236994878434140224235166278279218665976476786844279215714831151080225150794447950945251070680051333746565848174151208135192429772626263260424045600371091082973990895348107864565647088138852889715880524703852654108645087322728503428764576123665742375713089807971887132554170444612372038109833975838019613436023978655436266493969313092069483113616116415598666679674784965133880203491636667750809242001038983681326446119193662210795675668233637046704780526972874202849108793176641766618329963887019276825023483834284607479174783212384957381902104685909779766464527462600482989934724208759763064153380930718873864862851972987974478353798034806751373642984243301725147074824503329361737721214364101175612036545279456536937897959210836866101951088777747557273131043603162024312955797475935065535619689457273432205248127096254621512998609198438157581465397226986581186168249160983734815300829679771118112837760863415189704698010408551278131227297136221082505856929116951362935926051039155226868079209966786273743277299256301866319042788869393319410972682729696231066406151708231491358108788965598741911683177084216579738120744191929194387221609424522413563995324586897228739587123443708194951934800271585078060033717521248355732667096575834955783992246516530298630786877211252208063281388453381499351397522370618941469271243894602998405784085787884530317189282255846969606229658024904480706251949595527938503724851276199302514603262274539275307067188697509955781140110832278823384482969455733646183630171473420862453576001163849080287743839071011762466808833354709202159453660731511115563598733696131572888225833881274764970863809845147273475626393345581903858314356725583058986720663051635819421717523874715028402725924525388087605456781787065833375329255371677909048226000577168681531093301607841089468576745463593860131841188430551027555974645933279571629074283773017185876242266124600004318764226781571017063058286615707837671523286225321325388810325768325900839846243842861582060642425860186904032962923285061205071987010397721418710538929860543252920999424457180051817706958162740272004634788091713964956467707467756338194270276075514386539246113964986316830914648559730341531631702029915458428112357270092382909427196418833593753731478492523914283652931726375914771210079373689360449696944154708898331799707348322058865600707432701405625424759923951098414456778510274532539199860650597319496871748913419129712489933581513362172191581789363025062974202558039613554700279729225694158264146473554883232931906909711109960168722528846639340653167077990214110643390708187522524960994218979387417809398465633017776917692768256118182577419912483090531281237530654770989322970895625986804748060844614858338655206717748010760705430897070761754141254448189061801805946008309354389836441363642035299683440950022160033326919472170793242304548114426365956805244823932724762750423455278790451675290189052409104664921925465359762426102110175250248740892510988796363476958804746285527681474965011780077991041286702204983096389222520380658290372615704404707908245869692695206815918796139568494758175034232997186932442421931500054032901134987761754034702885663671461478714695292114694744166008349804501940875836637602003560104017087722034220524623624608773819691999026887042834385547554193671015163790063818679389679604197506142422769721470181150379237920622986937455470143711869143049902887814764370426787230202140820319746267654432338033641347122693335288348833422597582326530614228473560184614313138757323003956689759527141871860693407331550815460680392406809331899904389616583605225209989385251260108943625696119018941454210405463016292252705008001041462250382324091020128233063759549808464207439830139240993535050827321908645621601678091735008160527430514150950730580928656976268051642972062759024524344597577258536271039133832478802961517279371927996519876951975241205757423389748708008825272176413186496316962868724855271698794694255053714093205040309043220099193510303418941377244593768038442833755942629589734571524759935793246218389040415914719346076357640280180967354018131566977011064967219341257120579965779956575009106137035100515613944687502531113403008913991183824267360997619149989541923590901476891720438058002885913721178035570803865248585068893760346973252367261429777197582750401373517490905013416551583887529127656343314318643561744607997350348248639688591399407088319775279096209138197086501204806341697521297357043367327169204675158634505058348804025136190365009292843204958483319043126355248850632694922880590887358902909398410269982826622646223285053778078082338856632422393598970372659601251304548597671964392233418513205258656503242829406140966251281272948990058611777393531942213497951096682468826769903513262887788600693111043935643403141398800335185110661541742170815715910112835097996328269566311530861794191393604449041634498933188376417488042150343714335370325124461941669928102141279026436091352893764188818570793847467894596588422557723407366677306974218996007695865333016707968166957999087845751943599081862303524147916978337818652686986950816437939300507444653842140242502718429577573118299998970896120350965096921619647999494831677218191814159623611774572611131331613856593539284654682821240141415287975530808219314323296675958089895641754575046827302987619017545978989725976968919226992329985137712860322996852762057043889202840789137103436102553035752498175566071037317934212541713046443572031221474352592892341996960582718667253430903694465694468596773163383865872268727437542077165509215226016351273999731913758095277470443985288198049580018396792957684739514691729321215893912573378649829838061059079523736531302871003656677124977270367001758541274673894969408480853802706556770822354795088807013913538530265029959915637591194262568199446888148814210438449042387071304305261219826826115511423522146852014480924436922270207951358316371014061576233283567379647779561335856493836068064332413320657587493115025326308057375993210506299937461151064570701937580543797838427170822202435722447794794162477831111561871258921379551811824377450815720792550283351602725514966020174738525633218929098153031060761319564216837597580410400589547325871158343924330364894025985855830472924514441066979572392518120448147786273432773860666024187499511052126331814374330086528367071278328865887300501253256873626068258007471747295135139722575353508644216784023155077203096663018051310023669235972149279630649437281383064523985262839603816916432476283797874288720312597695464676659426650497267367440576462548444010820993792776101789907403817449239103714398278938740820156382637825214893475843595466403860111780634108838812180170852017407461475129711921197999388697162329376785622889484681340719343310417716400188754987436113891167806454163657623824533832333663370213264955442806277104990426134566949848995165346654375201787483736262899680703922749005925090103206473597946101367772248270001085361504986109897328574627594166710188097356333155129217147484809356727361629632206602219107813410438838247409007156521146247807756382883938525332722791834051069817155115444313593924719648126701547659068484129261582798536135995694987798800352189722995615635588830365226399929960628040974518006547969064644630980185824965819520358563367137012502607489254584127091784504057349435920202031459032806655853665315659717418665654110864718801662086327379499129804188621498152797174861554859611221010404520602445274913475565121521569659782731485173651303441685144106364944029377612564020818985198717078690120722555451431188967089336898996522948230795750107560954133004869888096965484565874377251547165027097792229136929874985324891144019707075406309482344930209329770849544709886422899947357142013252160409346174439974429122450109851102663093536206228065823998196008689402893015938357776411709188598932994611545352022699177696033680061807209454383774491542244981797494303664856300165824805586977548085359415126197573848967347017395746954609822356326026265479391996568915950263472684807993815272280679199864688675337317345601955194043633909133233075758453496339760091073114865015057225849644694957573136337020931631563579117029582973299772820634584936198573944838750327981720366069490786210161512449475560197761566433237155719585936782135862693607409761550082363323622303498678698541206281885394105721173894430126330746125034804113949031090622958683214399142607203523199819650774341020607252404801561129744772407773770843318830610068569850011413922930015461489786605759830498164382981713260064438440347194476574460602302917469909864624526574725034909332005315322400154213174271566378107108419382710944067698972726772408980453797404381296948993068331858715584202229392402192476277537934619619378385682880959106521331150143873398298821724288430103797022924610956384354912052801662903901855946124334138447334371205958978286921949722445702390998369830648123358039039514891088292252643713442589047494708671418731448425800439219537292553986701022302356460723863908218253457571168841593780936716014189577989038594836714702785470884652054255909714142782668862553198646576650700874466805051808487157059237826075398949967668586736199413442470172671399784026394618090441325467468622130018974114337974270685452678998155427051161293925731929099113563053391980597361490567309606210143422179120985383758153068684621612133438996510900331448835301877301603388150263461177885869971387044927779916495302589171152404832392617118048066862847848201479730827998329504033523365422022439839976633145787472833364539170496068944357082821636676451911290769377230323378713673947072978448385676326410709939032813172349592616827899309450416577676077378717675370865381207554129024943176916055268745016933578481502708476376633721102117814854471883119284567892752478160500295592612550643039076276281900684993623894324891465549073910141374595129987008418106723287983354850013195325412303284792996246441607461742353320558749060054225170096725375154466559152301150655465754236611213691237560568840079817730942419649032990557784053244083810910351550427745401950438313326211312441969758479571988482359641748101691165810536141968170504295617791685023504696210599280935690415854691974638636519813114664278804110545089806325277067531997874624996563215850466288798553786663452209581497601019427240172764815823275185069184869702281620183263511980086483336395771926991540692703025829779499958246809187615082880292008387518592319759543116972401895183285359662392606159281302699387713011590419389304160847803506988122130868326701760012162456181155450223921083856149715912587574804618707798367767437363700843321173104525767117927824298042935366326498886641715508814314696879343879520679983555306486733883040506072540138758896277156865391101390729447860058460811739620157784665153175501695764716916828069478424082633050350669309153966809507553673114588545327680590535515890470724873209584151564763407874842891651218694919100119421436774514142232528723348959609354272009260511658036292408223202793371335175743464488089728428002243339524112256318285708736350428118617720303735064842206515923249794056261809061149805895672358100457401032424891847384010966926116357272602934887958890613128870867725004551794196318017281904628412640307093785136042315578349510389366037407814670571076748034223706340850716139617163616807774524103865394675543622396654594653067421669522010570453610821414681986434713321365392819203028045714766236516767907776587239150052840702122337678935584534972033730468896350472885021220717938538027752522164750828321710821426553794717910713669395159365277480944324534590195797238658913703697858422205451337332322777860421585302051669066487613782697901581989815915353070334974386631078085483540153349846276760546627113527329968342305033861704080705991633310644351392364097695005091580112084243491243620184345098292253863144430110797130707265778122126573045364188367682634793395405549913718313993945341110014093316415316913090333915466721854116097321851132790056811514461038730199253363092134370678419903226594512731336494223856632928008124899242629716601470466632357477812136079462779056622065477296001965571027728221283325585292545490896492610877716719092070098370627625068486252415587315024798940582795725691038981846952488152690857113962816556738290572259987398642739532463773451628991173575597839354511369351117461704920507960953350828524682801730283769863576981791519070858890530556863823628403859838551950165346417983056730479991615197858504971477113829621089825975263410186131191076137699617253552223431587934390622789924853369834477516651887837488348089916471431015764948508937611957496422576543680592322700201868742741765518725683763587583670048532933446522204515975991994605595670111925096442038679743592102636968014190219669635680126952489143115731433927474422807098726615761543688421434018173805265326709961766193979560360899490917377933914892968961667776805084296373560787032169694298506627403083044488109085422953868647803563844546377831350522326265329584841685636838055855827108142242477930939534417493873783536470098113603229865790591872251392036406872836093627860254762198279803476191855372885084667915691139145674496337336879733031634674140050416976351825954658118899367452725748581531383178819144736761447564447488740440944910048246972433902552120696171512555613410089512947291245383620720919694409881698459240398944821725713791470642888446695935478005814307231997854934809143022326774070864643101929743701558138855728194538877704980282547747263113914330087084836453640280335046271242891671327634422526306544116826784267627957577090610852711495730250651658408012593692485503514870562486281594772863105424537327564144189743812927344180367882569884178702102940370005459099887547597285675611120964390084015156320821029932858963520886567229644644032628192960379145352893511921259964969380763772302016423442182755739424114343432484894469300611998915057300553772085110738185725337864917667694869069315849978708461550096619240768719712452776720286778335542431451509188982303837629525730677711716994420835558150269187389560853421627252141336204518290118958874548762937604894449231858822957975244363719568256713398760814501013941209724643066892173416780952331924531700775167394473662359018585601287285484942237801014331220236464692968446035152070873706235751908268908839411081572037435039308772143025084871945545184215514607121756835461308636858455579447942627569538449472700607838796664234636109543814265809036730452949625727399080791861836369784834367892904353937077024596428719188158729996122389221104984846073928321611595470105793610912858020101809499566680757707550233286611726782066567948315167401114673166454690660153550036035800750149479835757864217940185088675915085542013236413962464724600749095291953298842944996445144428898992706566599036122084963920258801953001161895413530557650997179283690003412492164411026293495817295194041911359533493893467070052613861711319781052802936207601766558758038155274716600994906933747818291518305915782044699410254853477464376794522719124504621754201381941589413743657194463499514184512550475337672019714234350071214241251693302810741532899185732619711655142746725089045108631186403298504185459560021982291847726438973812442398850949240826170549639892938779910553624591020994293221352387453655276510829528946260862532058336613532253724202459193295162852919388054417277206770992392940093752461949622244721689917650864231713988367415344966302321449608906926620210012089539289105060117491332871632031650315538151452624167710618129211209846977528723372955057158311594867732807248677042604416654664006695895313455342717749812593279189520826054535744832747663966226383808671855169515563033113392625098482814894999997536124976958416639479321493639655244814462802745181235322518276871936795357402789359874665111572745069636603921602453571681839393673645384866463853374750502310905849266355333985540017476073547433509886993430991730728986756683860562496122564682566311781626303878524856470974543916141770996601749233916024905569304161716160606817183857725211069799565603737782543290107499688601079778652646594180553960548418563165521274195607962843279562489654529369828756678296619281721129381569320343950067351615995767170627334924796583497751628714701621358955944964642399742557257071164918115723558333580085836051665073510068165645808949357817514892554026628034404698844364596991068328217858426540963550878575508791105163662923619548819738608278681972798482772104313381864589860807114198861547534685378777511258879580611051721978602018208623134145045993250327105081608657762058753899750634078305769539660396497340197929250178490661039843175463387157059682361531681269576734433859060549127164291010336189379392472035138658505313999418833003823565125888193042548911799057372694137915678172862355038230518631482221893324447133556295888921202556573161668793990779222309785817087790214190522821477625939356832303204828452701514888508075749206889650117127975939853824573618250652580386681239937170613623940298928008181500194539130929142304421190035822179173215745582030822788947437871745237679085193757691376318144991265576253003768581611774132835406210265003221001739027295577071511301970093996501032077017636376533477195462431977313381553329404802349221421380339175206247976514808623919343911134785112281276715514705963782558590285583548426013888351205944035708239077796180491629367029401340406195568146015486211053719279064189397990967617237659681415405020318040275513498035300728491905334470534960388711371978665150502443073963336291082154725687120755769263949750352845824943923567165981706636512612365491764074076084861564049596680937102573953632849675393756543400649517883491065673665365881207781420634413855806338295630027102890049846819409399519330262736345610154064623991679836094287064362759499356278923720386209335370555830590906423369698715242644850823620800900564472109330163553934827539910453771776284980729487428288177063667505040702513469843077955439824432246219867654639237022164075269127423340552407796078476295092065082435758776552087769021215073654768435298328150287426994641794869628084412080175448841455228681866860039269985191577454632581871728391861562418182880206240495865467344522142289450404786956969497505053021331960029961906989129847085690267553436122987564687981486859362501106512648955229177571207170865885034431937598659608896582460131978001860552318329934711283681629401177160532768367561544272821047024843876591825561868708307521225919335537995354151873006243806169234343980943164413690540029648084364315747038273833027255360958352688454081493931236518808603272770968667960835695977774379938110763082976624809019331069777714598824278276311562508934610782653302087452593655685424291610299587915746359759830755908063744792970718895248602431038448642505686481520353966158402585824691859823938154215326691168199013722156726849139553987516081990590880477844553071671551970550884022007652915146771670753644316910102463580510105241438579249577002510306082803514676982650582917157012366657169316115833033712894488144819165468071536923173780504362000517312066163323292497383546674400422917090685189897702634114792341280982080839680026594493788838665739436817967937296477432033983520197571582804927460090193490679409364811730174090526562546552177519148388044262862387763979965272640678466996520715737257904906769831904090404976309915662715786988559757817438847062341815641995700765471992598836816826746424800458818490740434379510197334124564417378956619153219940109831157908026998829384353982412295023033300257314490373876152077217911656529275043983507787450635015847818731719787613347026985354772717864793997815797667086538308972138917921552332022117989820885064754564746562259757089235621659243775344995402990884467715371852502624937718646747186354128529147164465651802211870806926283986938021768486889256545681559709796320707151227186381203490254012014118799188409128290824631233446119970798737920743310337022975264666991106220528420590145001785047742964896604750977980926966839319271286153660320121984634510889937689931621331059583527054629568238404210341218242282769555455767869283318690666889011959914099273626532304747219855948781847649779368466882711376993678322863510794310575952245994751453267074520805378931581496728948967494660190790972845138377459390579405594980992854027432759035600069051396593878830587167749248378411654724139155799405174238968571792344119082599069222166239528789519026180847295105913423866465773607305063671675958195121648806062189300037753394626012816307804533934175886369726391156321104324342467431474008333993286455028366141737760054970149666647533433795393077970955219107467277047871838560309640635352909486335523865013723434337479352541960967724177479845937931825959563296245685979632342073712114113356157934189956193144732246489380213215522762118545480491555348180229990056701432759784709470426118080800150073770190195462385899560295118515210289533312773538866427962442390146441507553923624862268992264728873341496880294087079674047396440845328923686744691095488365625628653325877611270068531200780942130536464164180491346090109129801883508254550201473728415864941215615377125225485284217887567839861398170797380826539786947614576152790153031900068990921569791506171093760814125193496648735596813565100790156857002218942328568424560680568434089627508268157722286315359359324067825432844663595976995818817631654056392500656156777888532016791604166127286207101776298607433740570213929237094478483483729357391260952508166592325278018027895392639146287000006564504411843795427884088916436548430927881550584032531190448179534739071116246540489032684055872469320769255729256589064302080479803029987833545950985787653872026415595130024285479571300347290209165513854251451907097552523434043639685325952907500133224067001302174146358335250983657749383032516289360365442403536350016754717776347201609983382236244922118503618376811623287986893057293197824325971335004659791300743406119555657835417575122041450074412481044010637730100784252780538078853839506331138073997230038621120834518627315001295680184970839472369298843049774199994157683177477472840728452999972707724637883813830373862592839958608796194230602528963584931408870205708626618884374893260377500143189203652165234047985686017902235642353219615296690982888399762000990017474086760577697437612391084062556029636195367117089660679621396300435250508534571639735971441746836284457507024133116592152960592617036347959772228412537960859665311838588067136523383844696036260687813208594137266135115916775727347879993675325559289726812558995773047845317541525663015377864097952997264930049590983937290304117534418748720528869144272549385630787077074553543474524278325053066477695169235369366313167361212962834239908377640387220724923321452726764255982101744083204904384425178448115089374115201996382388601331484427967451211586718301780004321574278223259766414363524549703268582464597147146678292100351170370265002887512200630745937289107450839994483860479008292253360392352652006655041109599085013018795469970451898391019381526671167374214218541263886491010409721790416286589565262003337471997318741333144866114379500008597834448807921473802296852735085509169526837253133068796872224336432200788615744260529234868550684598359753330252078816689944814846705536694077351697807159033707826341327059377774957810160351677832210188362212308979838571317558054491097843125643444013778458389290035145726321345232740352248187220293404137807903947516390231235481584068597922943260183507302638443094636717370929848566956917015795385181383465760451665784934163842780315791891677362115503763136404131524415582483100819447940726283546177091590192809757035814303922715137910347795298652052214106448984531489486634419779907510741720591281823666343859521256151054323775853093324167851976518110643092748522896553663659541254347458800125351724179041960533272723816667157460582549211989071919995141788481554318968208810734263293182877484551220844738645132906538598144297899881043180965093862722546004615347106523924023225074049645203933127029031061694686275899127095777863843886943461866538897607222354509451015050283602418172870260810419401502594205232007979464904246071459731364083193074730615049219060600627303717484830705320822377631152611423579453039605877181634701766247010841012894449039984184868702490295382993191060924132004076924395124718726967496045491496949937723254134268610249972266162661430890023468074083849534369550602920941522375917451231378892575210413856602612105899702760809400889752786320180302597339438817963038603312024884081147108182184646990125583110826380861839540146635558944749798732113292081075511201932082738347795017380500232299746024807589314600790067321158864088291844031740878820298025383441084712969162046435899149827951232593598311680238157139859508268691587918972440016870107296183037603979242919150989657571432615202534999576493437401928227818941990938479254479721600802851838548405879401826379761331352496619218195515293627848718613619887690740115625134206224570819386620023904763115297321391626939938013447851540641353358345591281170782964425011912265566235497493693832959974372869678271670625484840050127605452768450648315496119143827267917774679202725317123848409414953342481101200576074019484623819046879316849107866716354586207041160443170616231352061976426714366720798531697450834094841073137541048772001211303493433865090996749249473270089460763172419823258165760582526511957222176265086859435929088747073104538314625654458470752781614479769094131798185187107379898905136870209156040472447534082301512379615637264464777698988170847244363768804481554836833937144890231984781313814233067426774387716808159428766170443406043954111437612903539834240803334290464033359316308825985411799177732840367305747333744782855998323809225631705389917379004713243084000499039378070151548322334592385215248964701923250379022052564621729384619300121436646856953844415489411572311081512952052856351747840541566195513970484648907529585903822377184765336262711443161737773509574017814553525460268081742481005578038535444131185761239741393778426777282718473683103711551247025126495976985561444591514463397583287510471259932401389562326161286014868097437357306863745339846869298592419211892809708594965370954083248922497734964631433518770765150337739205768927874652264728458290136877422165498851952757209922189312606807488887831126535915431687801299341675459849309608170215939238381439770359384588259491561114584764716978864327224687085961711415382292679770009123379410191603427828383690667069406365418969714240867405501013742583211122459090649932482388138618182856583311687581716802023007012191490452213270081295315928179672921425834419595598938886690287402220185942411578029116723327506346230207839381441304348089993095070346659194737188529813911841891765638901569472522365954568445224479886342636695438710541850378831696135420493416156261010480781710361374951455052293034896587965061400298115949781104230738573993426998671525529868395868089746862341448525690292947840853593861792193711432210757945713532225710434149501105403301366567608064933700739861241643998004412799259596742753773778648757149882840869259074456579296885151449537175906063311816155733593159581617203984818161755265433945879554323616396288583857895286853431488819225393466383856190618617838923601744474455573864412174911394795658020092649095268485525345703402557848538325230745963956256751404868083272558665082682846430515195415003728930006500645480941770300150756715809466616753123972765070769568559755650062528453088837645957737509039330513831331431114270933991378505363292293621781360844425817689689677904470580353694917776805234235448783596014920816485035386062337085417340346274749160833742699705576565089401007603315604626036803094807355954185680095042772648132279175328753638206599108107696799236677320502798919252823969070068129738554744827386685373981819678107553797992797172204255430203327734420865372113806052595045472781269730808889253999681261482096119970213145407970702193047142895693833024577604983227039908207464906144274255718453713086091407326990616833449382231434736934012717547324164981171292190251898998868822070276445674287693674221427617992053234774264381627045342604786203026593196536305915879645967068796494672169292804064782620582617084961688848835544369658799559795383220834491745975533428819466978721748797373568248554655501622137661936302986046073620677356170384994390443214171844113734221614387936084282211649550536957424448713629832149913590401948088766745071473533754561111983378388179547801263060952710248048544778055643242801453276527563719432313530483728282583429206316407354044197309119419718241245040328391329597777104433772768448340553688361750612186742750594669959710699565428824595315284740936688185440098825975981040355130661242400129745964727350151778669608439825391082156877781531979829335352201765624612522150739942334882396414366304768558698633071904489635224177729053817600229565696269711102990197140469264229781392884445762723625590418124829140735136345094456295146486425616435931207759298156327581885844420002265780102142382326965137190688249633116207076413971954608227845186729104682330855169293409352168736793520558603807884948103550995984780202419485126221988375465848853304110204967768535540200718278632115034935421925808171424290243954080865542979463180604873342987347986897990390903945111442479516615749847943415762655583091361987814546755551989997625834474080989012119563194069860011610081410405280264598208289904323561099414631674571340215107719946260220689355191081755624723603904483226513817041372352882832329119123725913141352984706721926979720786607232107084833889975623345608443904334010797421007827599022755828699541103408378951604427680601516486564320391565432760268090610663435268673887418741705511824934738752451047573438528704738453244769473666302630939258554860161081652059572251331932269755262016466130223446064753920637366534077707519515022834136211814077066586401183526587146486836491388828183696734039572471043723605272534086325589062217276877105661212259708660380700493581161042229219834348768616542558063164678416095669661591990573947754541253840745740260585339643476692025160305621826544269882187490016961276179361972244576141642503698763520509037251865186125969736604860722957471729305255656869760541885501546219154489993977037812454252928795990939153396008345866044110460423221625913913329857980579935893049268435897492754960599376984236349753433261804656044048563242355712472184139012320391363515364417106537372604511812942235196914821551879091917158910643140086195134120275299981350266102820798601256146637584498253614407873441164151730811447491478635674575847465001049702837162183212135711581738160233780433665419582859862254774952088940882176711184392412219863073864563292975967949280740710742332784962114556234255037471313312176904599562673459678555287021619577577853300156172504902677172017013053192764442314672620511885986902652089276678811073271933894391603132272499517625122366871030585645506477750220230889524532451999213381178423202681344900141359708370030781568970705060565943239607037220973693881963744283380642014517233940740059504335795116931955830601387263674658404582818117208842205562363384987426953630065318304541869023423306564342561055793109889770436560657168812564072332579300657266473667788157096053342573833142133564940770234479275832365212489709254663568854458244532998225841226690841066212597676952962322480551473219518137041408975952495755478149527306849025970390826327941034938944242030658476017310552595027519700403707126653057520739657746285547213931531121101006326109614658781693314125519398300094857159914023996606154620112822762832723524441397663472541058250831717908919414016549463182477750464002561673236032710482587901522535139009315330716194385262694513579540740445100007054172863413848017819205391032937963661484807779904958222579623753023852966885204292065969606352198234328227117288294403639975380637524608929922736968182116317503830338049164745642138773342364964037660878134757892744442183927771892323351360170459938139022030732425290332171537399973296389749031702262104730863918220992492297017321284166724141174690651777990592625031114621664667246143455267524209151686519181112111003287779822103588218780989142521689074526659079234017729412814920179114748883878345270780264639656569058328878090069232493543736713660965749867277491231941337573576151072182247110408952120601662200012018395889910757621864311197142254346789699502449196347491946267288036446777774407081693581264817502818656793991120035530424760482946259742122821327391626977024534144706933547037659752386102457383036205545962974573846814986810588460110424541462480589063201896140545574801359515144233738170774335750011055695967744726715337806487475851284944458777010934982830311756645637674578437998243521597540841840045494531324776886076731334283471976453152334306290518251194490149129281666124850807937096967528476804496366362906033420271013855945343784795720649142303174418949102708144372042484312863906801739243489347191666314636193004465077048878497541515987331630155701037610993033531112974977173536870265536453396642116625959845277331787351959698481593962465277211416930777156400139706586010364677511750550962669409497465770815507335146190166163265994314481538847777830735593170350987979553953094142799861294012479977999937971734826518042354825810170918483190913210059388413681519111442962699561387730314858938231838249704391817173927004352539036740755551531826029934178584326697960634821781027531813415679425620245251532668516997789273237702075127730570501030889943817125108904423382975728619463043343174837500972153195992566007160818832610156659662575834622315865021931993422746427393139084053542821673939555138888105593883853952634453075790557198676392397781059524877385511542181984561800785534440829162647403943369262461226876071507295670366717666346433112511148279605894033334372859911775115344132387590209266487533056771514009596990527247159986402145756128446789872609775487867912883786728299415922707931540437911613216219301812755705720935883625123385225385761547995498374707999054537859041789627943254606644852683992814411190055590328847756108976021025036751453922028323578051718071025553262093545431852191361085946889013163986389308668486528590116809007690203976192290098440334042007101735105355186326368738475938205244987509919926198306798800273456347305572751665039876970386240856555702978228446481373683952582514256024362131521710774207987704065624437408316326494187351187928515479991871090510298079640084265628502283077547554331549674346646599683164623465686891992923722308715706964478231299954147324813801139998541294008887823204380379650449837953080428284696434146196652667803728258557228629885809794519402931295393906869910992888120443121433439890929645768026978241775930181940455218385072090120406324867779951084059458938774742822092955507435827750868660556011088358906462520381517190344680839179216788589674021770570673059155602881261097001646581138245757060207328018219993665529949544068220745887758305742290192481918106038691111237913444871079938014378425364199131899127054028998400933651571836897881160706491926277528424123391425590404899158756257756165481337208145719116286078702611496233943677239062890313884487817297258088766000038653363273685680525361309957555419711983138611576265050790220584499002511721190475197501087622792364600653072708457827649003237646259303961762656049905660827457270270403169134172790522925824376085363862621774461180719045449476128006391209940847371876019212086487250278044645207986694001738445397937132356299077540775512174366059866247631493070152688763665465349329516632573273479249587112172825071814652191693637849015017855761943250731315327306021993391028749904002918631098670286704601009776030154903115271701087455241616032402996264673366701071514222823560292263073539510262279920499017028219899559355028992385682543446365233391602378327235554386806830067888680582519816467694444630865922157502905844000396811963306084767501919361035372753002500197622849119393613252861928814713165342243670635841548209466349888109035630471023677948992674042139323425164583712467110792251274176649096945674429617479966784055989662142378139469326633866087175739514247698365368153303345502579558079062872180739429378140248620278229520866270242722283728203286131206937333622364361056243748790358109832651961511292857723946404069140772108070987540991299452074583730256463741375066219449198405226726689427245958949584246587833501382406393282093556624388211847620191487095647834689830274800774633650193950723228991405088371437451533136780442097823928664686291217135134776116356698798894028952186374427004115572365397348855649808820250290866770390231983174699742478696189280046559683915531018822502316279207966554354392001027676385498437376542775226486698992479552339217873117028560801779248562052287820077080696162601299503014458000552063346117134431573535115676981953755775686323757127567576140910945155242476792177889987752433653482054414511714845981922046061761801674258007390142521602271158671876043956626813033002365264608986532943315734638574802193503792426591328315493948494734661874715703428652107321838583925796804912800603157541420207439420493464258590044453673065269942896559115526209221080922802552861953264548578913122641955910274218471202452274179621473967885704595573275734874423442263193211546402013255169733514469308639170200729419553035528796627290536598696699880418690332273616517618719998279816171475234698338407836876190351928641463861249021149018808684569242117480833260610150106756101141649714420633627635181269409451093610270917143805024764761972943527699872548283713160368740675966934743229013007392668615390535173558821025083434329880548145168329524499720484791752296272173022863672653791991839158591601358108117185035398272715122561618993142076483330202011661932832684686716099993241203200950341135177134565614215842110070113072301937089451636721076787405339649193204985902620140521360112364672567012229836154959038650538660565540722405004378502857013228383483276128686957437643889850064677382158912817918266345875965644597626563687268679092579046113595768386150919669407121065306918866399886396112549324446568440123424039113379901732362074467662182942352195674221432656294342736974711690332557237914259509513084423129191944350560114704364954168155267085621254521364914728241708949744355670613716905087977604657879119648138356849703516958302025310876321786311221289321685164343374035847402728378253967845960472694263822758526025176183690725873437904973991047210359763086998424740145497916984810083633121864883795429510321544148014949976176649189237669807235917201070023133034966040349402217965306228575119154801535529043236028103199152433008097313807905323607816989566774525449496882991336169811880260490584020484413344965825397097179319640662432004500487804536606592943853187896590325423904774472514385769477847893859923513419717918020565898019529873526387231828401835242092593446814890345038091813871672911275124833874740256350487269468204870327070890885602378110491031689125949880008279039342239733930454308628534781228483034800350179914436151663582321869501427348064112197807601563077379370368607584950591290731656979058329349030339988301616470270355741184426658527280888408897746861196793988778143963982111631841703721902764461378045708793172305240445655570708139893547783957604067206466101892817782084855733854991562869593225261988464228608221813609549648730378136281326871553301572978108161305934551203125586406562456290102452369509574749755919954154607760584613072582307815184236068828277956263725890639379059407628514168362434344855325159867408534594066049542652685285136244895208435681362463545196152290592593445359092552621753096277585772430189882313292708927744023224374521283744064831221272918409756470207940444887734434323341866781805879714479836602187827300828472478755784495886925554555240546785929920777642556337377347362046985150114933715997952349979263188241829320839447232966936056281145091834360228963532097508239837437543774820923140692506083940128621713787860119509607072762400775211116064818100618469408791817731085936404795601336974974773368525703060510244255348120761771348953287508222740720203388755717934514295465429543475629923680447991381360317278102306395271472168462978502702745747324155568198247399572418656696759494496347847708938012805854307932884703891968109630837164620085859376295799565426789105757785595534046867713975260789439478186478638769870941287847532631141481761417133556594589972359147089625928848875633403188458671992249822568993983509776279643835029832382999102534921535609802007680472045091471600451657764125058257622059540027180932448768346415360597485118287421590432632306410187461424881469298469940957416471146319807073080110024939519628323169693424374728722700742931312370508364116653864605800061591583948840876230175177824822419750988648851725869234275332929225397042734454024266805015531357832041622183658159784948097003910116459261255643825495708144579651143265769017888756056346410320166094009131215387558450804918682328980371270779170840230409903900016509184135106040698839452837950289054391423958206173158636123341328250090454763059653966975640921215341404342815845264516205601016480954960237327864677245578697954796946551068233104974412120322496710666444852043194761494187727707572481996529408999256264405033663498188273426506639167820597919472557882615526976930847737042588957674036782219468485343066046766951549579873350856532957343882482380529918395937171828669962435897456034438596710150614756138732535099930147519397482058574609317758554526719124664513973048351800495164035343970899026561045038178357849115813454474381045863244064575078063247783185285237109866275879667934379132232923761444491605476346617667019545306663600421438713285258738031918628475699438640848325955703168317743226654029676807440644201710049004733350420408453477268541871403525088441515468853010208306448604776165935937690712290431035777289622957093987156739506247788632336612504633852065957781506811885520328308080075263263683343299806258734686407162683814827378957508781469405766370187398251598798920681091440930320167709945472906956133887267277835490260199355394451237189193804615423208902381956814518888138033346999402971633909413474054922724321446514345020603696353311988098603993271854334853000581205638000499544360923490528180295402821909084186893808590436236429129857133914325948155873739520751764273396913101219121815888756711771963125698984308927712663641893281989781722284144692210635076453848717389145364137914461635661928750902054655572938545624235744364039314559910078219974346499457980664688809359925527261157147052553558472539706418375146279737457032070959062317272184222110345150859348657667094402362481441107530108333502944013692903541033501828392445057688045647840161402375822548323870004051324957548025216495911849266499262298417155511581147266866443122513415111942013342990007235307059592256325001437855695076196242185403717300624229915362080487221465006478828491057466441729051000572206576028137294707125108299808034122557765238104149019010554601733411773846225525424038895468724797325640926621303374470194031661439917106477901475260890873150523067923771486278141108571393533790819405306277974111455458961739669823532873343349263198514444199925251282981149995639420997111328259845284987336778081246935374039248262534769048320512816463958233745003097819550357639864433026189765918792129887020889755134431110481512563502608305819138740195395727360701168312073479214692031100282080563969545081750799491931077022226959093798993509599635732318158127346599869247637351217846015295741372579925691769321026137101692075206805446599435815064340500334270425513755447246103794457774960796564703910745142946061792289081364134962184346862272976383579553047309103803129765145493191351303443355609524314972742325971779081538416499848444051002946266453427823848823930808172079771673242107098792490825332235370789304909818766777217896369884840690003061349826760641684972205776622662456241750848706963443003113466922401045507587709077874789590901492479685787822111545636666353586552276986068078699173577536221577676180174090169067131746838407628729537634841143161970556894220439399992798347014626355534091584903365902147772077171064442815934657577719935689471105072723787024111050613798257022079008642604622275781841928671437214151014838208754049687994391551692294584289013621602234675997520457613071541033616041465345892837041107716309536270707509001908582113939828242962941465317280804342375327222204625204558136088160674491083526237759798418102524684548129930942789556888590177537043739423772055956963450412059876761601804050452571936276830227518821078879492238480889691407109800281276729000187614332012563264861346575310251351437797278120030106043298824664165031905972758237736897023257516463851389165161429666953273426616569393917205408611931058931785117240490113586886064711798868193910682823035241683510198684127340311652728332208184801202436238574712259659676177684801794100107955326234016669009894653519547287217884154572358305519520062998902099652921814104114628333607088302591751322542767487624555887782884466222392492709577809439081078930701702907676695776450945581631149839424154587690479893496542047315715954139794325544173790037299708635459954517940564960000177081198356155119082404779051891428323179410074805026181132431094017098538956721470485204764736343059073708494054711111772269011716183056926781386961605404896966131885288311094261956229566759001838328252979649355782739669443890175649499915673990224568139493597546938488724726364261668190164720529692289641761714315834410844937974739721102648634464271024148433899467211048464033252967083890588208772691417993189020102592841604741122695280599954105004294949605048080952626631496061589000789817676914778746818565107595939023118540192846642585254642370430002756838769812348158696869367649982116402950126657792610441118546806976031637139769887632545845023890480531873006625306833288478245689607535985413858782000986956772870203343654524613069600567330109539283076864112198917809694099052974780669375125613558959146438019832219573371902951694994881658367039327569443696194186176695680314903596908926973248970577169672030832618228196443242331502497248875514844875481362603361140411451038453769309774650199707584536660159202903186378134668788228220061969356551317461754675586154080841231442129385875505269120797034804393908294985378461550555362892648067395571668559260256476797847437397139342724582508423382359331298064183907415053636608691005766669549571337075894905720525045396403745704234868661248449508222145695200782005792961549912629257944491465548914624557594900472975145787019975591681697616969198884541126301433212549131277493314223562803142434864173571312707362725698053449425849801123594429369515539661989992126489503066124868328088831905738615343632916567881083759260212548864024602275705546855387679955869765765468493935764387924835256606769381119285443332275496142178667505462158732977960901267418343479541832748188993069443829089505523062627805273569543071465620865336819613924198557057644518505348346284058195967305160273667440857177683087187387655746602390694671134501703996340906736335913291585527565658548470248752641784030389295445987096030767451547830190652558762229645397564685886893448018256843942058749602820830116195637851540068973626911501142615171716184463990191600983615266252063754947804394301222179928762768177136146668878624813562980516877286755482910083568699560493254265475264920881995244114795425261976617403864892721162647262238391828954683629315309008948491764122007420606251300545119826380822595196179431203002336907164119056040362469811636568490936238002478914459398703772428087162054446594142496125159741053180088731426835214212799974976788429318994434440995301852903951579491111538375276698283769584815580073604480169578206930815220748212017240009920304698027590010121236889500620621177667936345121814103224398312107761892319007117406004480228070115372748459125743537970475991568346142739159548055786137192575841164051751075752528158607531602826393849433714554886043190388458611193128749147224684733520860749018224373521246537265158058881995171994170422640499386528308287512169467088112241002670855849248070415764515913183682995492874193775393909153562267649762257371045827013448356569358185049577131813457612442508333823946358850391903600450892137472914853165903408074754308938102637241384419342994028507706375284946069153634252732070455873650920875795803115589220960121089020632455995324296653720293461535114232022287878327311199182438639161266675538228904212785491200464787268143684428873834919988538568310529648012164517405001324600666043729825544793181267927045414953225082193645059477925812618844959795322749701713410658575442796229826617239892951620090412573044699560110038464977027758504822676080394032238144306794768713762092370327398507675674300633820142173196067222857898949871362928473704420880313070060543319225942210931239053317449790203220841284661308652224475635864701577098565124927129727926473126070950926653370304748867389407099793039377908891985009728477519332894523837342425182478087449037296228511434606984109393987499192832347750777141371311709048467263645956834135923622244891848460580358218074054782851742149560478497519405615549530508071976515176754395609993006277882472431215118299939452606126649321671248678872153349281643342324279805518596243753625995436521763917636493464137380296269483592976066252845711911232957992502230875474907955521223161299735770209635983499952065980243936225737693045524409362515573064255282682834662109322600992659282810584241768934100447911835562083580567249962913024373354002073589704368492415950453538153173103945514335492501854525157829497214631067241160826068194434127141891101422486414982037507439664383554727340455014596332396298240526135728262856981878461642395286243293725753503906026137460107327834568505029516522943031416854160724059251084219497303071603939000332744903152336383732596708305363867289302839231267153691612423029470398566419329653590837196724113598737443734537630676391865967552446825727005300764964347507073263779368396881810493569478242437321126090582490273339927037693864215677411750770398917357427505340099467175790664812433176303385000188310987013040380308021232067946477870858774374537007946406872411664118511429087164011365578985028404044820225856454150948671321504756879575001410854235272679203920159321358178682705356165329719937568393931362655358331161332861248624812807592351697001953572724942725639885730523545187226665740514531256240053756663289764076865823349532610339578465154666180669156453398757780194479820708710132349759285101019535576089757210865658404322422290437586269188872898866072052678908277715836222147722506479292719527955321299620108123845870033065463080861982698751905742954025641249447569715885525522087363159265446419840404675948163178058967082990863090882263736384632803281417279004544909404172000589762382126722027487385307918395270473265358600421096374255546571216732851123066806777093980516723002140184522716404560907985429768106463854034094034665691791437318493058643758888876390222322408528571759851992445728147483036483071923734137060949287933487326326099295163747934873410670952571644576447336001160308413451412006178165691355264931716026509488496401551711656401172344992790625670445540444675179705747703898083357778570383288436818066335102964199674346772348119945722815224199547157029699871361729138229376171940828688264860390442698423909908121111703697359888272936791919176727663801163611710258597119140987432999029873330896117143380035372889820507670660367389814374402031198826680345477395888326391023679460744715321390806661015698325755084896904463074132458699794699156897618559783392900859292443996256433998018020161522611729483641885004777229103633523470613898542812623853826257378540711496297089701124655961074222292840271881451534487579794784589878154653585055940554773067334450669514323411097153625808591516655272564001738385926454549098955434140555972294923109855653196242311000537168489018056605329446708262618448556622823704318289827672480071304288032892089108604353001801359874801839277627186866218488921138033949650345635886850999723105272168065509374507369422479979722224916437595381846559665518607953606068946059871751198104417400419917496334229932497327081192592699650788332778990992622816656320929519944432443031451650020461950493841013613426460841467729524107092549984190085245554629352456901052687327338747295060153998919179150699562554948318823839121879041929013261003012852826314553090321393910664343932426636028516448929012087606244504404804756741610773953057726870814288245648744799228501314443015923250200504214830991559367341740924153931099452324713190462264383648898988880643899039847678488009704725485312548125179016350948756180703155035780290439856367389424899252872162017422746695358638953915778543101673002230601322261749260566981386064814561649036956401803970894677387326689940981418946724920472926408625707496525001224523337231169285569305196441569071196994041645641561997963067399761923479181962955913373299117725249338677444834235149271855132203073888059736452878033437961881928467792859332975520025678841025896745475231025617249276279951803413614544439856675710393674593522758801341559593008890914293758371077461286243454432129823358461838206103251818001155664654485917063214509810845297053946331907795920161990489366506549407422457733774126309987230746235223430272322195361482322710672911718691859425776250519472368761099020374732777318084990323214064132726524490870825973801362983058422881461648730498508769637630902647866711244482915955286740128741804867651431012638304800497195495653163421504388130094854389092858618322802881098604934530907044868586494127345959451291922352546998259144052445716419026954171502691101298116938578114838150891673857774676255145174200830036138989878033846459864375019271392179635506119933752279974963612174383057909000652068322141938901701536268553810072652790827485128980672941722124179241897385210134649294956098107581274125317156478590832344102208788852472894191801806360002203853406398394218524353212531236186239818578860668790820335526700890959443311657919082354896517548133675153995741304161836746585367947450122650801538120172269270656198735586945226988538138006760795344515643015128190450047663278530514807515561926070271936789648103933460548010642293229278443117293872464502957000238460954476194979957855622798174500480939047060006003021132371178171001022456570582584187275500265251856754109972926961678585058206144315235674529864720236845403473333693205662218124968290291568202710843377442494102654283140135239345715100250878114920222510299971094601688254098466014947019379646907700627049334892469676318394375567641383232449083146335465558396266401741697471217678496301790540050398107806933662739243283653776771963474613600399929438281509132976405447087883650564352977555005059988566555394562651577136713863490287057150742505018344649252195392516118183089921321812991536750014741450871930312528260357571496584239261915985877392820506059324575720990472871718915022244452270368094129728038078424821041770560863228972151643058094597246032387965809575930815539363800247972171768117122361092562109604882100202723319700524426259167940789373343891805306184719316209357667630086632971141280270948531498817197754310575838357783363159507747005009941862348241825285733935383616012447455728211632777009631320329643749398756559513237389572564916959248631276271672388133342341283461545784754333570363220654088851341356008161122891297087166275985141200524091329700718541428901521324388621905840734123073434940168978218050534073321586003994847744048445989874802346449487909606897010166477336236342890236578056298831252216234260681652614277891014976964889172325848560256871262928115768822902364907260232946321697145591189303618742282670055639300113605795927443517457436364605057178823041018771686463955606579697054221820725291321578795741287807911989400677455353706514396041220251028015912867670367744432806820991492807687178672898351286346014588307519533209795284636542429711539230527649713710769193205712078985733261088615595807392585577621367659012514203504618723212095275181558732407025921891360020537359203521545380006275979682353236008317670590334627830223908872267643101571913343309320214718196219015192293636172514495212668989110334192684512470766076898303758193162383825430082964395938903990847601171884846047707250280840006838874881856610275129476878127659788187596423422176625285293780793780313236045885719937611079064543474534674078215650391282293303252904458439301409190124383490789579182862157962496932780874528058455315893516929957709805274831720381144792381688936597729091163000605991226466793800395198956821576333840737768878241607455465387852774961682730247214987098955691898304268721464691590010755068197572318875524758105493631591696058637845650372963437419134493163653446880416372021687636503488409074604411906100095334458459972854727702515885745719848183863176437484753987843942164922984165181196485468441872491490920475061440250741748747244013963683103968287311496350886899015109231677443420385938197698137501919161890669419007910334018615685555923664893447814619688265876349274518778637405244280566224252459169034974148251052961728783192889984292123659914685720140666684472479911084997651210576862865192988109685288565015662059400640754546802647314260131240808966993342791299866425651458809193343126350478519634393732284069557176185652097092885372269880750110038927533884567786152708270564857118992574153406329591577368782692978645195249609991855262818882517047116967045239397650601084712310430882253660801403606733635463788091754903106289706430036628902483489947641159105564731564407078434152294203677671004328879498761980924069379078167106855437010076844678817254145760303022828069706865518148045832306098906286891418421697948065151858538531163475379720757201646599272076399520313930401222830073950337900874509108415594055091727322351763019917544382052137834029481409969817184222415378387270073083900561521705358818855242846485705776941369584664568836725082917860045149803633489063451991959452643933440485016677114234577100310629773096498824030792182119461583388495700836314339448907104838796730270096815466880356455278790402424615141801820109086834740134131998369276161132491313160934128488317311802281899072039470103421639962510731321064952410992367088157162128723183436703932844931048936094573611224620190462877535873048714878316651037897901036728124988468147455829259431218613600989433197811730331969615157857613752677423363928604667973236398305856773495310974895707167973130544804550107408150651848927266696327380449551178909595550083557282663451054397945230211103069761188836018038836241432359596704952878185118284523876797804827705457141615364110080035929228904452622937749158435610710494089460731397145319141296683950961406281961511185705822697114818283664128250849140836655780404163293496284418347173431243163454226054134258261788532163079165701754466423008140912404525147043215636369496891861733972355731418933025526810447847486442795085371437038151612269127603980634592769830662183819521037947773232817522345303145810254960855252953002383634877492454408737415834602234766423082290275390343163733834661907183097403213252968973009966556894828762054268920359661904729541491701674026717367502965219981505241513859655455541869653760978516201267064957013994987636944318999787943044145063599613230119616936642004218119382415921934625526014353506823854614734996878459141981305151717962432443346097270630218312873880455278896003672280757468849314307063544102439501808030988453881620737659938783401754698671075461279680772419435435105044008503422571602366290893130540686628444285909546815256112678548287152631898497305251418307961312341497410294045485313714950640387079104181233215499875432662252185742456697329483346694219969190662219692423124146486593321097470187758000192463820450925469723000045243949269357479019072928606319803930364721767629495905871367061830479777430062204810419116627015689606003622362638580377164924563776705970653719724057888868706835774921980517828655007908000871236234547354092084586313251942674324895363739393854033427014821202679800982475042725255115486892515340748330015396398147540198499926941877884742730899877656572803728826783424191576267245969699671173508651050986581916499746321970117882261606020936156305650130865014619432787678201230676657350485870132716099093637484577746907173269700266967252608275484197497192314148552763182786399158914150645510987037194981341719183378403816067657741262750662440868160917045623530088169700121925035918527171284914129848859362622039824806827110857078866686780996955004871674576004852352075155369203980303607371309500754705318530843818471763190792008310237291922854737742457598353254355960681803965405610282491239994221669677649327614613045333939494913706080251097771232684429122413281375968288488905291583369164210287944919451644966353580607680003644403459780023442003801301492702127662184773447647727666710496411854440120050674212123533667948135537680217975620253630146278172727605631801310528603995174556009807059075257318975388916147257141557336658473416380503444248551769826202905500272453095011899941493353582018711670844243288854012670785599913946329841081538324706874228026954933836795149839093631639441704682711885075398230231817276600138386832719627453776011619776992708214630190581227612296685270731935036198320923644879056553133718902406846939014090950344905265697078614228323982064730854910818365373894169023247893895821346774864235942611524563353471963006811464597211218845800692583761886007071070413746637305642338409123363122964703507232600288026766180317715384864844260663809301967083648637283236077407515203536081937387446375633915428990097101827800379939685615839703560583771918985313736839651939805703788061333007509021228369472011971118912390387796308142837033488008695358993935903956638470081990812256006076414645810575313070777789645370736156009028266126302073851769927883799579662735900921855765103208966672627533089937975432822109710839875421229117020318088133738252927187537095120157977498318360934244962758984223567667875762038501448836817230793699347110262825697381374154697162191569554021104071380878167998112805698701303774900215356419626729341463798191386319666861711795229607314889851919163702737706692448915505998400425219377013072002658985733350662785865932230048751418640907602854287184890900073046338653243100592858372010829581478637482505803305372868733049473723947170517567556956010988483981674882373277042296180400784578957052134884533789769827611429297410754086398304965844143878826908471757669882560717195557092100837411849191126386312933726404658450945352626090374268089972847285356039003102640868493381874038404797353829944775845614441628122628147315326197234876482397551746829985055736872104190095559771786029676162632546793456127176935237366808612302526368578334382498231252099009509786309558752759717959094916707410624920610630607257190310592248147195718624548142046860139618792935004512879983301677749650789496284813999039691729827081875305164022791283176365661873173760711033112424974482837056975869655042794313165050334997134811264493968152789638266250628114590915976785743244509094953454541373551178495776090205972424091391927852151713017428951955600034097764460525376667946521919818550036208926119371449124293961743220747961535745035289323244246737139345111072696844100997616225514194260289653475682335774145594975152494308091433415194413798351858126157838938591611905024973176201098271463159894012561589481640102786941532736257280481533753531339316012558670544325627599973290868600016223603552665777653168169598722649248372962647384628252563252459049435647404851681939250601858595392008346453303401085767786652042565253816139265338990175006464714890774660796149157974124444461232197726666958614043087399095233337947156364630278921099742501596940273157861976409459876988061211299774217672152902410435942043361369142741856398141380692340933291790218653970690555872256628329147061093370720180547015744043922682909344791138920024519204460316050066866754875866087421946891132555048922363076724171196304064575464622488131252591300879651501681167759247380228704387688812682901403790095015413258806677688472847369659987858828884309700234222412795134662252872366313690239251773507923767489604626008157281957786298919854751848076962688192370873724188030718925390152131484154726626837824439542033729108784677246514552812187385080566634397094380717817982318813214356760110268479967723765462912763859635462330593217040839622641238322357671271350282664278978073425039227242186667037525985418610261310552120029922452304819248858683706400672083069267501994489014579871415088064804220967297292797715248203215832966437618958142178496107846288469946623714831511224613779839711748140160688765648748964096301804825933067623015524454893603096735913889482726095775236117595629198273120318420355596860648105018221677800304796756366460122131649973395148837229217745454424765703274333195600651899555064681646919075596709056308411412332248271895384014650039455444751500377719872808692749896071148529954268680728895244703243665572715490962347288258660177045813806400087709033323836112541952795936956624492096124967630760080732570686601546785118027809363485319741531077185499228514827114213789565237366646332469414917505858873978241700525980826149875286246972298667764702246045093632048020511400481820340687817844475019408057726836373793718804298154293290692011406437328796144553673270340659374808969153484872472751406308992878337305443610289168735177403597595804574589471749207942038928479654641754185239235625848973528306242934324610417302074312375250779467174171662515727663034394027480915008973039946102648936380745744785156825033770933011870074443649369719385439908706103742367467442543231117947707867584589070893857240590397446778496233195825289939131874214784816468600442993325918871875407221440249432050018253028836882066358314133268799154399503629558751787428670060692775330831897235907484989745803706123984444662230749521653858910771253786102097200805844861667637728268078765436507595879364481302459420486727576083549404493738953140845851626610183944617119089428460159912224009389154277087848029001944145998780554246828610982628474150064705343572769641520439147418427578959101830885389606187016563343096711401934906378464201627522202941937635261273394127130306398317843854751844171596547671653045381143563343513256331045519608697134817018234939406736587851751003144254510661298418452585076166727164570248243811115713768149100518181868022374766404383541254985465588289885462405329771134547644499913890776068243483780511750251823574834951525154446560566478998068525519233439198595193953958201729101808254011994111105731356206636892970449163137004945030078654940920253718241036328228056379469540055164575631888863253824595580390625513641031782771194341459228766243552912472401352917036557248983726025702778953956869091170106550052711475732633746108666318396319951828114029248396294942768912065556546632475491396478320726369486477613171970002381902613870996051039137909992408953386997590871566976929674968472307557909370524779311479436782520361185886110958024564577759986449920007910768951507457907018618481659536174501075675309129888541635280156265897905335530708681747047675933366167074201554084348016070852547919768404296941502089495650363535755768531895614891198545046273956889718423954824613322779916483228468845333734495885350659566594935633950145808070903571578463822465046051217567540115960781442728424411368841060985533745716225356597705630336686902158531649825520964937272212909814727560233819012532417594710010311741388680443950336855049898298240716589513682328179246552074398514143751474735779161650343874631407726194498008452749442957639623653299308179885434449824332362974344561734146484054194203202650098156456327775083979900762248903710846654783634459544920372052376399673512412828496487970536840520825677871078374376639439811884121985568494122655659156929357102878979368465681133088909213189280843270379350002727863189121502031618477950229934937718415273086374319791552618716708423147145784456501304768499290362799162249552162364518803136967877661289523215426440902084823559645431704415174435845560661149140550304783156925207093088806507988919282945216279944816420155821768913163528221302547888725406668324112972156472349035820930004693431505110435911648337543421673721803902134933821931160316187618616210473298053826375546135192482270915140972153057511286626428905919427875566004644060984958405753447874715667624840285065180940768271091170590898683394633387827652794340426707738019223364744057661593303748789970718762023860507397266329739645791186902472026385330219986668435986230479499822436996264763248059449825439702903214464068705853334009227595333790433632128999420475989151851976836620738525148139151450524483146175209805045762380010075281312439389610465636868591806518855383928484795515975052166125570992722171152405822880487211167500333614833377484220791884505494930013383828766522975099868120996568786784498438422193460172470245162247095255983946247708946465322626864500563351199590342862573190014098470595536385506726221655328982433181571288165474894173297470624301068789026998966872977012249442120726125601816630421074340789332592845670336875332379580856237105293376308785314995254519639922050981709999944082400876049101756487865953313257370718760221640675255618479674191239449055659693137318245898931120563291026741028150460587691785405929755516068630570327821755487542796138690150108854465842239797955208323604035542062363314317073088874953601518289301727143303532684631229677124398464876659084486278542502472305629426011578152075273421159563027622796768448623763491468922257552570327393319441567512308042513028529059751566763906631289464268475957592233142837699579841084531103645091001642409704127090326297412130415671514040660405285127860819160704814999261311678404423036850205922770706396597468535892756645244268437480899975719511502623942067885888061436897264247241698133630470087525173063603619856590437084408457196401884745843560690895304232454387665357130372013959373321032647047472562077233512356341362844976036531497757340516509733733696197273632667544292453362731825131448557189958535819240375699765438966996391904498756976498231410634637713696891438648247789373662993399260981419219305854856030080553351931806361973158090361027321748320277121469891729110864398833188002417695405668540894926204657735541403534672407714318124833559872842889528244410025622195264463118324849851235820889257258233624094412010411212062011164933409137503149084716294974351003734690008946631249406359095487073457134873107702181296772330711365429509391124511998591032611843010127532718871438725700054284165805875149680127787676269841562374657751278146785368342476868032534509914724515546350492559658427572472599129687371178825033178582777299343098746010440679468100507769853879098151594778119472308971843144778738702077283065668978061987202661570338901288163959511469949859235450326654366748418332940643930014291020506192041523257749624502176708666938450227895063141124845225440432568076032281671240739993329874547301422515901462962586730298938345822097839241423315276986098687347123632772727060583287160431460958150799629528186948661768053309210997426481925305363076600916769109390897703996453834811819256452772944043766061065598066289659818819501294481124566402554324304584647457792157696475083252757629091336838634751653755929611718673550734074884626829215237555137869618203921588709546881744866951597849812567340786067589765371402677557052417967017566675844089288557160224535638050604665366815112397529040077759186584572082685406227705485495794822426503339006438270160216734975830865007258891071505201623003112025544964453928410005162903418233226964306041176254367020002961875567438787628462150368769707289141036626234173311157217507893279108834749383767787998428068798393509930594238171136016007194705811650389981646219675737315001601556268743019084606927425701069649553478430622890908375540420479451815791986618991939631818251754516397190051272968251102905024833511085637838552087451271143632792467564186787692257578187294342728670480893909048490451730162846521579044392313300807547771472724690067346080426318650585363899205605467124423670418797234982094036364009935670305892872792830913093242189129692191046646648787228957376245144184709856314366853293367695500408339026287586685701275152825932971081762324269480877780992789893912426162402870357085866878523766037544062795007723707165111883925265362252461344775550894879470701685853157624270929500723396394042659773320905377356050362218109947589381763995840681148675681790648134622869127363700523750161223958938847829475418842026849765554553155615174944817467479946710871443845035635343987901170122583540899310576006929675177581676546197750078889643033696130919547930681285422188442608826734907912960618942191864650212743289379513513796914857931924115609357928527752268649499776217530675392176781537755254997474875025246156291510401319697933542221210310673965628202351967523829949046581954427339170650757984031483835673150202528168124045372197710633409884354727347964288381040213397965014130716990317148532557394319881283976984708761488832053030098823737596695589247364312375387208848045037568950307435977286598587904625276121294675081603672886857559895303241419852484756513174210386138758152243866444043947029426297655905212398443013160352042840316011295777879293921134103786573512958957242187414177549983098385420642444106444639318086874319950904724313899515817124465614428816360689030575505930553485092442810802823916928325467685476994978185733350617209454175647679378527380968409010574085113697507348634847367681309546130887714023904819798764919537672127718793585447456873116100641970368832806713962387254891225622562440629303578953141461660569323608394438381421811360482987904368856698877348299494516078874308777469555994068921361626533684999060442413250157453976579755103053875783588649350255014284512654250624826981248984646898271105471242573809149343697163808189693522483073072144111459531546689727026233223216086862826057895171458899494207111807147705146040222662131400082046503639479073550676684427512925763893455856232063348561268151540736574421801983888520434080374187004111295835509171326525867552187039789319303968972112953973663574489551657986266506955369965008724993011246131155361885149011210041324126216688729884941921806278817822895540107917820079542572753672667370598051592373156661994702129462010948000449493020601930254796441805850741205276110012958199090798607499578068744926198461119229477284069159206418309741271852068414801235678393185455936574271811311636919950764038300499674424557509955148994867478040308882343656758528497775281923149722993671888125866635410177884365511105914087047702355963010063662880705728187314524978762208545131880377603339366189298839845914813711224609459480653924708573606763654921694204850246941934150204957623433615400517750114557417070884453802912856740040056682434466285351352451304918635248391295708612758232655466347623312085517980722421001574861266737021604750124501301149115214902352184940924749131029599244091703387437763866093056642772331889335516856851998565074875528462320906666254950308906485942898268929821634247196072739619616337827270397039018069271744896972477351977590293616337837348923558402330889210864162830572228145597052409062292304197096485956864073849442139674791387265611630960068422023356180129508687912754450123654776541122833530010954970560468968699217048359948600393608455819264041628266746156380400056373695926586401490928000071526750247687586120001860606008669758180377048029025228670531607000932273657881819535415504445593628183886491357721563072186183554819641111098289866310801727442544955589741150160282024069771668150182404086002941809437012727390151843955021903786362844132185173574864842068370197341038812364416427767828287981962848819306775047769983193136594935823832122592324448987167388017564340296040342809641847644674138884449519761134970105397686636477215906777670648417345656248727132319606712120250815331465206819946790401016510550258722102741117422212915819381741801520747189403412153582832508765659057969427264595435897339154058759891426232979752822097424821036117738644091052984895016699263836958137799476735836599059692153197175618639191825377121872268613248816405081051315685372210590336495022972315665589667209328664202813098834390046901266800949124296851863564935033859336105006361593655311809973218030435706394687111245771923256956862254981913781148435796555812230018119982782577746433434381541839828968554098954960230336232261764021762881295231783407352930840431609389929862874751852645943124325785524509792379087787159714925634011224911212201904094038075189790579867398179934754030349158713263446016153061396374375869519889660904637386129280939072470877281802308074026593852842148698247706983628952768628702917189344534314626942507706372564607981850096354537180844015187858980363099729336517513106064527189863378003409529890715923477448250970097789799074937438951845233276190218120611025718022359090790012729434852299939958581114281722797723651993760274105302139046382581368642541514979849480976691759014131762834454865105382222394187231109110713241547869333315422280868860850527442738807805310221673959372835753697290266118430212632956057658113747693692039827481406134500139002909468002306815497505237461097437636652480840350592099537959397208506621511326690381605340638481307588511113579915425959779635358925926851093230529097479800867838949731378597450786296812476047328639459716863285996242860852943432451194784681245397406392111169321459464293166291834838821499862632891211686948274641835939170063456115918971202524511332660654149663208985621784485440352078515722019605965729446307212217783520629839252377839619854841856398881068061520615519847210903167124651295901291819106654523580955486835897302634209599214122453332350466300728969918949345055793126724435096316335589181795562667712082584149778142089564290777629117314286838037136393196311460784254641638466166295644322364595763026789958932316639595606864577882697787809922946159613603443441977936090109142584308205743145610343384588796861372523888266753059185907831822557972059667144324936590938918739801966070054379929371268595171911508838731939013172554836443803103187078540980484503520149710958567554681237172802770450000825049828547600655285848058773269598485168901092610507318761829211201869295770256180404270368158387193927049137235901288101029259953353660428814450025491379999003302476876409810730633000928111163562942954915850182414180695293382126469403763750144430239891511503841487784994727676736202511974997269816399243650742889859174195600623672004270051172916729741897072930972394563426993814492516602210876683622755098763864041034619884570325449262464224862622213721455746505938665848023915410467622678276218873403897739442581750416601855079392411618910312096596132767216945631155903843764535687671357092998318897719649527278642366182069005210298729046805001738550843843024583165451984785852742683782752092277639754971089996089476134014176026511614015879547759183889991212212289489150283967542388297861680664768550423341647859375145550754064232190601057423795129591450608930702470745484014922585421994774947030084603754503760436707701264992045864870486252017256058380646111791688841870792980205026051827090935932527671684166619480992945602033163510927287543408868417221066993912414601277392894367732416805787296238914710141177053671161129320832860912593812490641940350995927253702129551178671936742853605974464118833462209965224378692406375148155018446007876690267449846107265609525378376737870783157508309407612291612499974816571957698408571249395909897867175666401385953635649211336356325029761804357517652534211781099889331807567361424997969283155198231126708429719752237983082974874044718937816837380494237808393486045080826422542862012059641021843387588601231321287919310354409005817302989129360980223845893182605006290583640408455279042502413833161670142063280777362146626605697882423664591113796131766795734875370692625435672477190469938326075809358439022742101507328844917029368638582816488631030374753543814040407398449402610984910296838663645865918166177215109373063742955879637561201494887149599597652160663219102754126842139684810659803030796365764348281911870130274176729952146394470102335921086790246882237593647692648618630249125687935225353490057131913814129391734157899526976541623406043654479222228080098192055808935857885322294884973605070272366561714479480142199442772293180809472542246734728635417939829543863951911995291965247180931422111280524072868292009408770037586185168899439466812540841248151138302359122843273726820127420453764432764140825589628018335573173672242154662452418978388103380075402774707394932719522457114779508991958613659801072032584795918441088068359806985028810250343672889434164794899901185151372705590825120134749966544364128517136408668082031952122938952047732161938509567416343842986980935375251021902720729633219428528593137157431947371052286322218724716041213907682085061712484686629249421440386306748578151962945023430184500776221230030539654266705829891213797642214960331422451819627829603692497075027037503484079547977009440643762034862695582182784026873347486334467358471759963765368154028318379963364613497740349155010806831875792544001015773888705111712576101580862545790951280431653813860100454215573377171034890489005378389744240097853095835812502324117426666688850245698969062234112366557764424166715689237111176881575660695465645686155785557695751132588061712116881983271066086663035343591408537932937656655707163938758941933882032165944329696017868394217075796274956885543239601662486079021183340561212874295295291992788883577859629783311817161322650343113413222967283201010496360595921093630088229861990345248073981190883048150066923931026607818528746737992560459967448797494770929594878920489679010861392385993602528887546869887091679368124232163759369967046531348378147464038428764959813688784908806721866888851676036459415954325328876649964708496485186699974784271251365274371534135756396192007412059208604839772647618182505912643878061685977928417658320812020666586440827654230112475298361595796171787917433776242983678456675732072048451657517676822476294933253349407174230177532785065478041103534633311020923073937951488181203282695481829394184334391426738682163836671658444720967748040044328550549751337266403676994276210639456962940294327008467171814573659833318454851705718421217368929126245795925071480262114449154730431017416390130199009636492457790456057475478167300537010208273729611490192177400503485559789067759897834114661828242238176731556429241771060355915095262434983163605215324365308814563515190016979282612797228857433846317028927233059837737979352255077684805080685667065349356357539272318127040204556349717711733513682839727208072919518100998561260885185756968062652506827413959543889007890049593018488334509991902807163640660356058269536530009368571010803418639772716707172954867394267222213195960380373333189438664132373651555729680929599003598183335436917378709423203221679949987456770311032240532327128657478285195365074883920229676972017103763160249658853901988530631031436869080683755298527212973984775936019764738994351477943822786071046843675100394117213676967546113490081110302761087594225456968295243535769351751461430412834355145660424944736530685432467847122161739252424963964588687881478522004849428038457183749446149650071638965229632166040278562326573644078768381408930941028235044236261274807424231029950657858856366746049630063416147497679814057575250433960215895134021217405325941551041605704973781394948014376241396091963752001297828208327819683259988345284444918622305743560194299000804162511299424905791318817590037283236404622404514590390717716855288240223718316805197032339595281965849540292920845229434730836322260149501719372517066314196232764101764169231706218112410736358934285060087327449519296815195302952385261429258443144167820310701213512243163481064024041450060550600041819767032155060157486275601671326566530366437035758036193288467148365367763728545600261266975306985657513253608468473325530441641017753326002048059367167818484992310626782325334257378559395861289115812868556019232468384684199947641235469320595173753641235665104273858373533465313712406017760934463390221285729752678890199651361673418670659871999962022382754981249229484823137450106986614880567550499945208798794771866521118812205748160787375924090464211286909388045372898718551205836455737854526989525951226179436764416946847773590035609021679429755871518022001898705672773081812607768790920635216893591403101014012253866090777885890001696012016836513713694180487297717336095746014743933395357747200654151259907878366161947008768288847384133662376801603302925218821592403719831952308413306112760199099670656914908312427555045389182569758068154685155466714143525963321336341844637025609537278115107208988836345611328205728970425668044357115653304976635308503155942777298211210967367037026819340593115437704211286894506771881432809069968373822498920119436730941847657148849251507902078546495139152742954979882587235541542663813651063866240252230497345982411713031274073114923634425696323613904825829302116680824690784973728532403148559269334922984548470719542314594908495400913113307975562651073524656054631521771752211366214152836799035796784145830406528914946776263182178897429231265829485662212388300019777247902496025935435645160005839051455671571300169151314979327901458110988167424171824552807408723401914634104028834159741298410509471702692364393721176867680326683355421283532100516402055667938387595881110657129496359179894582552203202638744334228163777259310652600475309441971158720872004453354128020636154275832543146544017432259877462874069758717138140978650890708741845047140764188252504902628641886305101813236607780449592667805789952320404549073018709053689428015595158989875272524689545946417596888367103085298045069058997068594481815282916642779247365950565106339893552802476915570802721201605541998060618175177910949067635846987186083552816672980224586831803210044999923372009324489904608992761635685767919844442541231717712009102046806791957011116109889624068057081730371391526535387041036142721611269360368351797267801886441892813318368778678037129264039024708990508497578126037242048971394941810412191910157962545555601117091123848251877140356081570543118402119156582878640229362456058542529718959648468889379828165061860925663812647790076482674303398609589647993796345191155360559674304652574249946986983801104323711885646969647477357103967419187037179637633837103120218718310804927810850531896467182221458263096959160547432103310984582994531234424829750763126662720615873235910984938319487958727176558983174213532957867172949553961223941784417179644461301425885691081404943235021084200993359403591129121474339252563597256381445286784219300855128131574424291964013023527964821206266246997456737379147659885828697301813383863115580921367286856371094210528194233458650107538647295545608651462245333426644120660113636794208245319098633646197426128587871431090891792018395554988327075942809240343433168529017790635314248842797403645079056919440610135771889871179810119954658243540081353220875236581450664020701503639342111382503658410653095641771571697591433513374316762070205874694440613132298320417374036182976058299717666897640541827124378029506075530979065136597391481438443014852232600389096016953129817986077723439914436333577873243628468957014865470726082730508417241306633670814556217254317055907905347428187513198655954731929966837557689747777684466816900364877997286929623613448826905757201706423970716531062293360432233129248670101424941212946406860889981883147848014917234762696757975872855377943074850477887061128976055697047633660045517301983745774215547065148901241246938196403804049865177166248075679851917133846349880117738573094963105100122724532016558220338026774510353641516157974275519598097041316418285111939634110528013751048837595475912541458680001958125359543509507854447053084562653544011793496505866649166542138381106016576073414708057201552977506263926966935358705596097719075260217567237336470219343966966387859474092642894949042849455181198784778014795940908751457374824224548094186976885649675500874810099950889048188958324215692088827955942480939582482063329689156073154039153343435688519564172782711498376674433594321373810395725295187334834959804540965712280905591503275795123262406192754923101950847179672189332817680048151703356833478730247424862075550692493735636802533038339131509958777684748055282961438316554126177398829254782908056211759771304697342503081378717072469178459557910072658824458359136492261991483572356300650454531978322720232034533403472092052463652378275658458144728233501134443697205662404124479545735564833388309574911911524731330029083273834831273886395093012205570433219628765543797017013945644477366168953698345805123143900839191265502677616106521024839915610498531262570990555750847091324340534543022015941004576757593516311238887082271859600368820852650046619395902922867896141928679816687353552935469269064656977763597788411791948897929876873250389034025943330055245775994518338114328610672028398076930852947855008551909005250483101263078433815967465041860739052459189561445142173097908086538044463936558461433646664027544964177713730832049882725526164205337319572335818744222519852744422003767490448756947878044569780874686855291096763321100472232569128800568004461364744030029592564976781725744265122152865455383960624283901013789500733361633994438694402437999615190373540286539584921933957292589045601559146970782364904522252210962595285296100325865885973345284951848849055473019609197794593030767205742232650379353813286092438512976901102399153457735366677656025305239514245314990580394243310314954378600549482753143949710616252190924543412598768608986637260610621318214582090299276598147019485167629447188704749459063463926504895216484558617136157597047942521355576651879548513916749997561329430592748076132011537542600598275579448771677391677526242759816875344967392277101537784701581391986163015765499548917768385460890762390693251684353671242100723882809966975415667900343525240641153911787567985858253797389541479130435651775068684409410607366944467488292728753320096999737319531956027059295732159305874095090245345319757741825646558700337127797951935745326806979710684048665019958443439779912656363130810612359814549551862747004429752081538648091914017086571950830223627519052789308903753299559415669738907850298812231384010927230556647575737472123042998305275928397311953431370933176327111384505903645627221927313025430508262564929019286579609184876983667412951882211133355552698520148808951427295956563953199253518318303406387295932282161211691432569769333400921995423086680310668635720259782918721188885291359070695945842380700120744334839577102084587791595266130413489225924423068736705922714998102681456918865981306069105171020637082703454237378647223614871032718934287799009972198842346166652896512906139308043620325767963327399189509480784923271783312557978211150084958644103799394118231449414235070834690021652068686799187735912005364142948349071746001373162412821992676587405799256949276864321091449525058066594013430021639761785969674405586041365844984109288822395136243257996284274640167917577438042684625460783999629588829871425393791511165067066879834726377557546527020259367363559632777512237223550369318551567120545585324832578302206664724215246448236061317388876151698407188894964767438980616203295175074277704032440074176961651584433128546392145415759463423515543867955789807925526012581996420652325917739034360440771199681359388019162097225841451943322546084275233207851113938373717653685576509581259791224277604034385996132264496777790265691870611628124261068738085633042128470885224267511048915355863608691511851500784253014031306046718408714965992386867128225031466016885150328063234700241022664078918480831943861131982616507424351893081909209673446356718884875404903969701008611714882516131625913568332374702452312894531405649323463542404775567310120414488822701043919594991864824679490512107302983152902295445990927681727007025632112429868065156326121700255537648186828252008925206142666903269296622227924508599422933239994143632981348805748170679611627340511013147143584184135650896346964468469369747019713283043634735080779080724417259332085510741524400266976510976096812438325986919233950771180555942102878977167523612074897336012626163425728717304325151198556616164876748201933492789169514029045929141883631485413951652704647861256002029874924977107176975181973478225383333198034382283339935492715762764823504518404898075398008421599013897779123868697972583692631875370264607955088291515417073281811728326812093563560606865943372464394019700736011287525300984404166965635815274434545766599526317327542171236218674183527284885192480659719083029774842399935113220359781417526831247140560354590061894269080426789609852247574765862601666370005934436273819811455785458430280908433980500632121619425262847772931242237581727284115253933466106542692760235860431711045228835044411601761801090773831713387925150497824638547517931566595098467358230196103093801338464252830389343918319374246845088613643284052273623461902514180475873491058386057218689101845123486144366166697928059169739868118415044570456560871368627691155139885898114478759687936720173480170901496968631701008824775929804197471539792386922920868031867947789124981957021126668774757571724123984230476422633859532792686910161895103246173802713680796385063614634407948283291266872501131054853627116229391150048650247805178047305713744237257249710689847098800312224177676787174151287491213414381929145279755734639567720364234620908204658359315334039961803619358818005564036599044922066502472680822001307686050215854662653206503032649233660582035925435386056178517856708149393655217141301842307963979154036825988279670970469750578113202716769122948352859186915490190463936614317133687510009563433236742614829477478470752053552105657708678594414521626580537875918479121017578086261426647268786500913290642896949348812634773665656681731770874220341403027282111730008291157591538175370087474801222050561356150326507567659050746596777965074020057940030736777959330416530052907100713524211355029000620321173331247944820865979272352073900810879350816075072124376913153791969845120972814051097749495251233807558864993170101846070015339389319378731462025229855991464872567346316884398796472559286453533305386939904191503716473618373574245271044533443477676376285335010865448818018569492047133164266640924527278700670590329919658729126058478906523108754746212489997191077174682832386997395086163441824529037760679465955108077229559409323333316607591578640253244026103460777922598326550495282223298379597240942356237688453872036095514442841541652622153896161499169946134019992498084007291219548605346602500318384190686074995042223778622094379462101557297546881260763946876983366621753755499764793036126655063987913971874639300799751272686293223483347460151432715757556366684643875814307954873265777321401246695990463067761871881979503423121721317930297411136742861215043611422363563936888232641550004485280617415910077236471159197022109604994120975306483706430352547618042102713557171372609959394504738111089856400078008035774284685084061148470790471375560522906540659806362528770345046592212410900444527735441975969211413847785707155988492407457399458230728514722473932542260858735405196511461465195111016489297254348614737887152250023468285792662906090742750218139442697100932597573173817759979634318199404340394551948421966356034865207878990879269369801197504326624132003953579436159512743743331888115489530849558288624619211473592451612126025095484048545411630910437450458990236478986610092688550003080216770762467232351706339903278643121394640608362804610452683933299697784948361784792938096357426605747194609961098639700705473119848347772085912853093132159873515610975300013626153676144569791520681492904565400015359653663563222814378965418366925327067938847946709523113192177331751449628599657177292208052967910993698364047539568983255695516281843347128040464253727185587916347286245873616140186927117139099959148690967341657318142170796638164077654138475039131570232795924743052817014164196439316921406624862373300286694343782898054057126610432532154300901982928103894794360886171285036129044148869693047370020542335535241830312270364305295984954418124547221648212883019980101995324379453134329268623300844896195550848925559339738190976001193242393594191006190652558392123803809218720810805027315340607235059187024756256357556261489265060082800249098268714677436280114995212789432834891275241305529987078429882814352985939427579817414651446568451806881564292669706005259706511354621934894414972744203793146092994482881234348346744767142333823694837969249188268518334839213851374445736442730011669403055176293935988324803494339011398756918989825949580351148716577090409877544078276916424503062558150305145805918929870491429162920989470659079011708817207420796041864087444091855472026996557457241512481901388353528549924645913356108449221270033892974697908606002463177501500625813415325779998085023432935490007005696387657528319087853478498727669606206768086609347372865784658280273369938340122926909798078742035465514659900338153459946595200199461031851837698060789190260845772903119991237669524095158998922406372086848403051580858814700216762973396512703276504660701492235821398306904501961713774917373557251326341707705662937634860569191361297839720953451642038795683725523617394921452197361890859507180351714231303169555835852542313103298002502484087328492331125761231202796112527103511617759666657376532150795078336782372563583527641628395063244115732520855687913454456690056680521410513144212617463534724131616037896656252586195146952588726922263849747122812967891227413958419520793926444408980649711827534858249449548953233264670165320249592044412822324046252211266076109277278787254252500747607024429103928513121975407083092676940382324198370621729475010632996257416900347913746146080162015242445921339272358136641145957798345709631189843081686085071195276404103222298579654369169094264211314998675862761414440723757396913346658324403591239590406595464023204237432305254000455659834523610528771867588640497698038743351917537614632752733448887115800486121979612598126605306917195625576418002016741617698843775337391945433684614989228930337190615171271901405875211650016693739603006914355274726232638688515260463390953605967981504975674358148644577094867076042815113794466955655840137728505797471968046997849315959502702678413609681111433165924642319790008807055988848425902980168472234398348075747981244435884722584723821499500558701642928130514168365590330123417477969469736779609096208187686644971325593637610720209850507265313315747861240484977963714997043746856842716892539507262228216429669411862437551741931540131112333330662660288311264909593767018097852810923664833203445229390609457345487563022694577207199229658062921476539353187732636318772186378701391956727010506142549645296903125381601262915529821764916298956258232173622421867042738353288799909287601478305680814830846390629600879657571676833601426534924392982433450186431035884947654685227432887029718007758386904992868953976158221522883855082294462353847747542840147408426859831632623178846906680062553938177361826315409742650582824592861261458588402825986235733998886092608590113161321059735855936712699821756660286944645893245544348056599065227672089896765128029094202340253906147534811246468108295029876919236904337436242290408295489610851343231804513718228844685760514596203418282158873004715083027922295530778148675637619354963836905387923129116507822871724750217329461697907133427477724043350705476981255951989723282423589638675692471285559293850640869089970937468894674779817902178774160064555854481136333965307552736220777230086156131955065957647141731163449241819600514317591696717138455419843370967535240698476946418691285471460673840732737110197161993327908447295992026420353603330421249812618131305325477776316106062024881404160498274736456485098224901887628456525160344912321056139501549606820698428916276652529141232974661522246192093858974414946349209823535880159285701204890901364282020795375560759932352143511069182886874649488925072418889564935002021852062101483507137860991301044049194698691710498768193982766389268662697306701499250910235965704927366168806431416197549862490483406216076183741750365955088632411199753064072967071766544813941455771124368136997642085232268082176740414838575951411330851748805048204915375436389131121579572856193914956939160747755865982062404408130876002248572725907757896761269839062134381541186148344736414509499761291550750979465516692477857188740309878083822580937508345341724356446953000770468930797959180528705983507245753300501249843273219664972227867558767859799800829699685226688948778928061498913182052393195534346738525205437391145584045527803969646025121188083543398376256194524474518308195740221592564685091877120816400637230225363197723679068853291516998214428671435914870697452032860213128363135373775268563441939748296725301234141892175292558008988896736168370001611442664322362838681443819560514964713839239574855925467551333577286015358189170131575924571338447336329242650089682246528814542820269880558072049592878489363935017529636213070903315819801792425668669068354779160141265152019603385057974342319045651611060080557568102077182080235557468647763780014017691437341342041831240759603382240757856923606713867990972173480237682545661690355435869826658617589581431399366538058296767481217311259177127781392372390412061610720017810904958103439952988776019766036699861872277154696830993673287185750451655621848239811945431481328541709982574255815075280342887513600363353582530013187721152331970331313877127024366709560800706945705857005075565834923914273303276541188039377065633689053978217852621407369621504243544588286994322350638721712091745840452614773506543778944831501563094558356162991294128893193243693179266968446776928597365903780526014604356996707324424517504831609252144126705615088102226334655143170621335788354646451603449202587953389666875085939102423575515801338419558731948381139542113889127705456567059292238603077328837843083743451281393684215318812183799604970470333101740519968647310358082098669977371431072357802691891524815164977590380902312225790519160088407167283864603422550814323697671117452901005839753391549324143372212328169898273933832291493158568223195709287181669083900582624533128843867906446267473045500524243095963359357936653686075821713187140345533324356158035258032684691976724857138857449591274383356274287857210256400566947867479476776262065121676392974432814255936477008296421116177047756654162525361345385984136576787599906290923331555574766473480261428702347628951320228332334123967485633105909177512785598652032867012588257800195178624378047714175668089512205381703166240048253582080393771737335842718457362130258903672274046160547543507971325753166398136568850282462410159920151491708682201066632986092510786626918890112891982421876939483415370079952198538642377797003413761885540141229387955305963927314086779763067272507343117490424738755452500934908475416197179406929976863635478058194344827500697603628149649930657975101818878748402116530163843900249283479006216919866062904148750929854516473923908075629300103590303494070155963961376850023064494751625995369583909498276838716744923674164228655888462547989639425305265686581123000593611862090870732695545456239958159679299117595655249057361468274396486508785111391543929096805966690086821396034365512537244406314408004133362437174081514878257522959521635023040731245955890795091181794509783969452487520980968686339349577949478548965009939190238588821399965142224852317044540257503035426332109484154994907944612375008245453896014885299702964381073611245641002897509643167335767250905299496692974512267163510705839829489436516569239160383141079397821629545746869673753044353221187011609144598262323239522234122061660114972545048931903885033772372697434832297477240373789735873639115879662413983621337264673039887147100852124286888329133703333418329869960460572070130680685705322515578168189614059992819158849211145034037332816387697035816801901520647998907991400222294214188848954655336716469381911778970202562444950376721348677185449495988409363349069664944848267506782535907515458269399814123450329961634345271260727679720338294568177624806847867258364780449229319127184689282739593280500996981293515360672990312651392447931606489736616711110017610927218024327913400541451390269713098514713949148334063649713922480604365182400570439812595836027348522160080593233656809259195759642961672734026921583498555330985438630488713022026881736958733482423252886463367138236083964965372790340865456320958979951276920322187849776270168440558991435067827057411071153214519744758173348921684401483465992127503909168379513288404708119190524734272897375195696255086054619526723163626008244118382135041847618112274755270986300758817657406814057145003547444461021409301541772646323787368518362333091317248225254071836423289950073639251782514362000946225185924814949555570422744001495943889327219138795853134303655945352086014126717410648410386482213359907224576580885187043900604356269890948377276068914257586911401444391480449234565313863818472950070969095965731211233127724839447899560918843341553980998570947218693102869342674476274935869512354452804914668306744406683545940904922752656365714976536041002907282654804596649887589933325394909973836202845272014078620529243031976956935113113918125635798024664918849528659720671938717838807730054761543919139298331964840014588092132886568143583153822200137322289107037197460437190658111390654234552196411030796834419780821742798766204828428117588029768698129800709712307734610903187975284621653531531809254019577874598771256437617038855247687866440279956663019482731990797624863596496732846172193208279723990949703461784141128095281999852695781066610617131479068265935006211244387547301753920555655040933399017188739519663096744193298848056042554459688065313092955448582011920142163302002685040691753244363121109967523113229836109289776613847881437454189003676746356096451351930223470600048468563143172022471190023935591032662135543599633614026647358910549230418171978425638509744378114336744186335699981033640327806375791508559021831356797023752272247034616269351026116955874508283036207356085936442755393714774071878370089559464082422084291758215988340605645767286525686178268919174754783986697614893632260828353138138973393239548758335193342592203688862754390335615322328747810240994406141712860478194116396259763901794192053170513755730406305883842560450745477412654925400212061843587046658993450083310812696379486987441408778559754299516292655591465243882508124307460917232627866243075511824723192412012655714124410032610643398184611474284638021963414050078672245904649851235688118516149329314317846169837353628639060307211565762509287934375073992134773295457443976807340686558925500088138501687132745412993392384737186265134525642490544551032935829476532841129016774788579902853885487366654207703214888616985326650789483499684456233737906858007181869895184588994418485179645854350686423406443782306862946913534064032257821974285098275732567214716799225426121365916940306191317716825344045705885644101984332718906344108234396961686734954290716489842944052317961769184678885458003699051191673608905082078097697872077154159198277919548912717883911417168379412370312640245897603703418402228033268799743743190418174040607658484776035536352246594831961909771998460453500006027557058930474334054197089014722118210348657792136331038133580576371754437926678837696077169071872594347080596477949442264484754939222913211244266905455316282042395886529884386778198827685785852206818368560429078435165296077311738641046998320899214911154955265987876854920948431521601178728063900099824773621423806487593769095283394565154633621316481493278676223840426941918788126626673670436087534120485807384781034310710834305859678946980737326701171939991871035351707904522650573669888671004466833579758194766151347513029917619478670969924976360719282801915267730571426747187057253052866877421288889484408310640756783800348842515319083825959730401008369592955074723160069634464222805069341116320632049761380860376372408962782789918341153992376097025320491448667092628674737169663806005062363545397321896301830145260334403061125318285638091262136612665943545890978192149339948377353421650821210877932635949036566965586119554909474445699896924176610243884183355685948461211843617842302567267059557560579701245440108978237294445716321983264632442862130343341508202740632379572433346255906347734704395767529774228455393521847275487879974409277014011472671889534855249376034746804612295824421775308938072144804315779393714061660764327405814541699669879527560239222180290598124840367257396948518388296958923438325065436225616392418757583837065592279160057358488261455179206548739428184512611590279991503885214216929586872060565135576841117029772330140223651527428672145243587416186111834577033986928083066937808689165515487042232915036905431004246480108131874629190250453016806484904548097273526950032210395343450844790763215518887677643549037203383291481918383772503025070923449215838012930274415535126289553588965183302055667536924068785054897072314371141011166166393731503418605434902098982440609860267920697090225428260625144561106960005179918247176184264500918714264892817639292543271279676874387150900537835465643353923606143464049543033269928127175080603169623719378963731477583998355024399041940906143419559531937423547022258122167009905672454925166484942253966799818770537663626474637543129978563960878421444425490795909706201084566846206273958799305777985189260019253734076127882886393703185938753432851102441923196813279189416391284191365553881479007003332399494744429629812925002736217460993372165006349218336387700274260531692586924973495295329048055928973182058048222828198502746205169277310240034009687150160035556474848242953072679797515707012509088050437769502850327719349671415911793681151724040214872102893230400996635402464501886210273730018160385080749382682810131388502603811131364449774349004360917357838491006253252730245427507331278260840745025610464130786724625892186958383437162885062143741821901657495003641072064284001401315312068168121337699556655816804852431503984033676277994673546971077926353880324458022276609095545033851285140468956822736423378019251605063873857782680372786157310608637311877108929754160670537852597732536681596805833930011678236329750845234576954025212883955368038038709038233992499065224436152135314818707657432985726199926327425470120677719332697124812469523227202395962410197977529547363232682741581120186710552985667969609513711198474042092873290626377521457859172534874656978186201595638900848763592843518040464050648232417636473096717456123040996400030722271974329155114723050472890689696313316317016861016639898235037626224063983214187526691690668624066729259271904329365889173967832996944536820991885536411710763769535592477698938826312051266517580319182139706655628625163831829713636311695306040604402885765160423760946826683656241637148774443589614730368991764877853437933942498453345505712628425154616358686830357007658524808025485421282581221634033323043703050258962025742022924111012515620452739263391739103691720548690520773101501164150763171065175503522578691013435487762156692128970934161622304770607165890053762714299108912428523390610528969712776412038362266414926584006620864347855323198237263275137376854895846604887012842058646257798122348273356592913712642788861638043653030423620566489569379423992968502233380720298373725489703433355866921543567853207315862045409499799192069263969244117504183844242484053878116397203874295957837275108537244938342869825653954557662914414586977215522224683416246023402107634473652606614593164427388989841863474840099827924690095029144966096844986338050525672814746953058880480017349156090535244387089337734984083324819839043820753740739716800098706378851677490925786472004115468955377337085182999185618608301970262887169209337542878782198819748445595984009360909261964416303028005817902283691651344342777822110440821839405933647362532031426447940843402874293610086634565707592787794238026814679845975281697014669583900388739603367706119247873819097551019013123544989697132121146549556083274064622919371343648921008974865125251184617796441364057690136069466575393787615279590597140618714884358956826810774221722626271571664740613882639951031159272606723552664599596324897088258512439456853537813479593315115320212127675941273791270402125802383269245175065797943068055628665528208996813729009386521506669691920103869755425410802485645014365470232602542317357953184772886195395113893119680499517630211469378384149869190457020604703746325472099746720496104154310309951957481658653510634097402396583648192611813150371711567607780562912675204079802754119327341732581090525117480849469807967116919227645964449966609758891988060693643706718674054582760716200439075700818871641796072699262478735202173240960621196366148778777421643989563582675196640375109061651052931394721501338093158068159975219627137373106443466047762034195111996133588580131412644137341199465504345631696412168285013402191152074924489513910492703685662646883335529636985725476098868868816560073511870013640784007064863103994333783888347296969114211258786061254583500641087126618751366491964964382251425143768158165595291045165387528920452643400897247610963885063461837097377469997712664633932059803579679643354575799929367332321997012341556006173414265584011197018595226801837006585912100969422150936841012093571760859135313345059310620218044448143020504892743990844088955826428882043957008760021821319641364395681189116901330893792370801033714927537157970324867540075156743263541196370309270568511343761191427127891228828409787704700976167693443300857505323861959972388638500114151238402131900924295508580192399069081721924868894392247591737104716193281618473882290340832792890916836341099177327300500681694054052988214158969862252109555386447970959633867889590585281228665922605284354897855640106285492583800314054410434603454838505712596522887648064502837687722182028191643617561693896768817963799695438808188062287629619210557935639840352330494695445392877836272124777603814092068114540938454262282385676899230747172038162821856543845891338927565843456681574341136766038316044209987194585415680409014602252374954081803469417898566662455837491748580336050810233065603465846389825413637014166764283213284832383298042373791430003330309900404767240684120640189063819553577364415324785957062977945904666509735153591240039576471760599252921253783429530734054759805264440475300248577315874419722847403418147047165005974097402417674678730045458446757491228160127291128155672635744964002508354380564052979326262173554260304862644019323927753324335478642345564419015890905889749378702723894970816363049788153837362300722172657086268518361878551790415057492377960093236414864222159241929940272968765726510005922387274727159812192283927956990431857151351916560032486931187473320900828494932753247895198245635626518661628478663826104028799306025440373706168785452544036842364578328909002287593133707796288768021970971558627057551311786377876863675681691656248023036877031247337667330655707763993171878102469293137670261873267857947781082511034052963509416951570165778962615682252941592712608318374210926379219437386781026033018725236589137466479297849733437418607671391647471589343225545316836484226359008454838311350215371282008727622868358575734025116312973284489539204022780295144905387487256404727174109080383831639909232995166685389576856725772484654868716885547503550211276741199797462652496249851153801372664073829236550220205090908510598110169556745392422357002611852055592627009136275660449380044704954646411468016935784848780584335278221558318111307042223106160261377197458585342754831745354057822180322454790096184886672385217133260323889405040259582515521123028325231059919816995239296547620615338267660354923362643787181929043622530660001846060624781633427708595045576696356003595821798971460125651205935573922892574069429094907786324261798520526503651077292859596380260843884147102399434511888753512324457353319078099662473762260843779831854948252611966686187713985863484818511158077683732325771211708129431692554487712862129425110195369602641035544017777648052432825763493289954380488840196211226273108258626505011147886589068110058893985976068681462150078132945170454484868725605489984967746912569257636606579646614020280708240324455920630175140452607266455843491335814726249953607249963090763992983084369900336445561311912517740502038958258375324333631651691037763723821469858498204992225763566387919458246231848525330507542629497803121421201875603103858841836957454416308872321044416819230716497853373924835061941330739360848430250428635375922080342304075951740939869792959247782107386188578093589554082063049208649118841143559565290005979310850353593180411736794035851846549935744963259876274111118157080178297661000273198806935024717509007062026919309289746397033854171056265410128850492931571799986388485686281383576727756565312914758637353573226705671421468312337214250613504017784751188677645498578488291793496565867421126426452574861065138460957750801109665387662925740477635372010947642038010208401339426940698472518873897684771224972303329354189548545426039677366038951867980459460612909517412486794906502018910677382664119236433595404536920723076501038541484744074339528958127822976211023754406582132596135212616097606279253654178772473991220138604069313793830446051455016813258216084600047254986293874809640694148870134372734350447773335741934545019860645598344974721238458196318766755271090387915948339357779770590457432618268559093446813233240625532669730661108911268825726263988353871410604593996142746758364241968486337141875092893138909841739239661438342177427305929486749805416713969512838539091959145074655336033018788581381167423869118853185891772269095886492913268812279915602400101989847332105936606374912362477776441405690679633841964013765277277042918498397971534322542178095131297204829490805377993794082322243755707397089787882202679800014289642720682215521595871007551017996368653948270314334856828083337114069037799977083065300439511724813775301538048639439052465920210790069655289636901890260958197215301245689278244294227530524413097893983790262174503902448051434122935403997546798141356035037734260638416482693086038378593938970749432863236139140593909939464675796510449119165570394197574973595548689188692055199798799164965390407444396210897728596092035763877438565150139175788064943986130145684779375852686931410695993341130406992065095779154539962165862484009852958993945409795683244702506747738923923395411071176676132562076974881886770076737450574882658232817811062155553392623749724789343345423243119582441277662101434927099599786645977518432225976063778138612208163141961662081831772555512406572826630290479333593647693337027086772893552410738531235944139656316393849492969341754531193019914752771810790059238701542809327205267745884775454814398104042801340136146872753073733532038644662482894331432438423157643677013927143606504476902879911414685946075152477874023432399192865406868051683261466258090387420731385523939153581181702523720176696749419613223708391868398337370732299050069536438255719463556787515320026999764191434502993394167660467102179694351585560824581990988500501221923630302993156133429030037292666156552179946925516432108654993127017015383740073882338986396882917260657731705669991267608797507159282259444649203267178186295448618015619495081457334064123995150194691993682958041389051397003375533549715643044310632003976978032369507062023111696475184118120076824900610037355900966327127301770844262330951645506166182525162609420022414798217310536032104445182944695397449810501998132772675311773744914384710338359475957494640258170651628023219724532208924028746097292706709749372972791268285907549291738025016482387661049932099103761901498698303655432077764398806348129653022599176974952692454905733053234717259009887551249829696590875407562950348109763115747094441623953046894779517194803451862597453565092186651473527273400588862557888080708923031207301928880831570553212929951830147596419018188676756739351690332005322256384804870327399948290149984776451816449414393230094638472274776299423263424820006078112918568822038496668716615291753082146758411312099882298274132884646800355263469762782136579851560757594705850387976683875497221972591224871783829188706863726037945107138567191770810805450700369248046147039638675224284858437706204477294784923496704959375662893470997048141490355126081617881021639206659327177192830380813359931512867954136288681620895278904176115557513769797364557483481656266545443103629186979982176958462068385261167277544946522330961020447243578625736986116562308181540091664640549890345337704507665791676802266232333000269405369194514887926791995348615147295205653423418867279058628959600409960885979545640754775295222203468207210322599451495139663161328615660547060423741097050444270896573353231177843869606726123678817072580799014865188739547460337200401159644069868718926940992215432467931514251584115875819379420243683536137275300485783456720496584793892469319867110860760149381908879627466434141683546829112593981831736481652168971873523740536035732931325364133312470455293192772106492307011163314508374594676450243636592905386463280885186275092559753056483521452505158651501805221758936436103268345396667442173220162904167446563059536472555509902721373651333388402115861597545910347803446786966570404998022247985031580198378518627164592985135994552553415833460212605499973404998310111037958483868390910355569090564002297356844644655005410293253481616428773928774571946319905067250123498714924086299586396252211851582082564552910509689785658236539330173322428971560395683182097799550062375134537156014327081979489653206355330669706775181418129578851689592702712168231075119693488100038760140665110450177777787338521496286561250939198429777964499107345696269333774131777021427653550204005479779792946141714991676560276484207273914847843914092325647023330136950843284895065812855961422120905558364817501215521236155430304974891262059237367805607359817549364666497485625100150896714164340182739560371933754923041025699655661922872158332336736757071771209543466596608024439588437550513383945569425991106053802212951411446479326401095375619194530082712584256053710068833367240334572255985680184702428399673121138375970174510577998066400797166652439592554517015704368015251623425099200576025196311185877721326628950927337359578098309304495015274267708719897036514129249080986704771303631879306203021081514303688428585874296708008756424775752583276548445935642864881621745352815663729278629596781167746845862790794418019705677862215358413439014854543945721338654666157506025084012314375105448009019094818831714074320642784657315957364197022809260833174097369545421233432835116518931668699127825757545214235912873515015218322258194808844210735705533453086434996377953315917621829103501212551684708476963544994893590420574184228447373336013613856828953585987462956488863916108302669580100978322523751979852991249907499988766208718331374377167802501088555474440752467233180156746665555125596163060123239813300894732555922379914692808635493291126170270690172083159337993594571216090466575093279665674623306341985485286196561219224161198602315853310160238043823852511361099208649866763825959259676746907329278012294388754007716644946776629916720438293250402888933317181661896882336856072167806418474739703092383385027168591283118457506080032891188125343697662150341410994948889299305289922662223276492535229346193144066927357269736155388110915733237347338712175086906343457603886345196063162302170373923133285529660554185098289198616374640605361537208674692078798542952090363455763272303500133112021972648581624395934292226927766902024631742871168680021266648555277361666763997601233360979081792955214468767855488515867175489522674661127342476193702216728950980578286147005110864050531810200128503124347589931401935363776668512037611768390490175738159699308884972463513907625944227256311335969006122983780458729023670920705251660710755895183000003253894676336219395064946585101340783271223533081953434915128964203530307848036419576193126920456116718509240042847862677620505374847345519597284985306376719926548328321162937703441122769032542951835964938220840603342209768661746677622461351682219194874297501391519059501815551299196129938712172179852501908282231535801606709190054437375239100786965314954378792472832336953965568521383636445914367527545295288650918045411313723510046182349899198760201402282145871653209143601877147698080002412188182836698996688719427767170122679931696981546753274169210186043575547884615644629673101055608624362323767050281532397149123259339216173482872497170787213215706571033142175852297432598688881602490088112303783480425159962665266355279907543328634673196856149553019745920019179799545800615742126544820782011095568290348839886465268049246849029384920573591697858590846775045868417556743987632693950345264884584238958813896820221634255288267228762057741373677286369551558614001995527116452747169229714625348182819855154256013892955499829085273653734061027100701844538570144227000925872087013714728569280505397853822843836909549747253009657941320113901599088334329072771086826926587313971663502305051880577169635913580921254053661956363985343041131172652525939745135714567659030326710305959570823871588381044229175640190781068789187878828749326695012717287989968135294640863718913098142149949108107677470769064683629246009053687753793596629102083076560433191292273086081576145602489215968162415029366238700344589672316215725158429879327934921256157028910506336584811010683707603031534319065877947301741348703914573428172414723484587874557363763526194634295992945013535748435639744892868006309502019377955571368478301915994801359912445252062171314178855681613152344096898749222404170464104946324806381525889556398248890192017257865046172085556535876063126218292994578018936756304242086236510392310493233334661439415662711413375285676599204872821008146157230148158420996609608097335681624286854323883638193582153634280942047253761460189523885370928365842606061175141950439050546007973952866921657249698631297546663873703300361002880837236140479895910795865077548315436032488409434393513899906902407866408989319086070404559688979934239239670395833598185420457577548760175928778232664908295976696900249796432784653924051942463230454585740191031072806423658952952905152367552822008162426470728274148790913974559926743695604102659928250213161198150716233119912256354915185052239644786807369373952868093864536253266724293878120076867795367103692846842076993063211801193093774212592682379264942108927912128873545842478648454066699585259327023966121644516054410969391387589063117289616560266740473373543659139951516918288814653391346367322366535510622586049628961895298853347264017379588008534438080684487552127985087156500859492064797373913818745412379135554433986121582794650928035539175532837445919324421163123141787970067862794618747499384931879336829182534728473607222392992225405246709491334942287395267316324633379215060538963054945992773576570039223268945495803200290677989212339261377215937436428921485602843528862618062680023617926679959597118176610236787760743151051354456739076581806687455148047352517217029197195746830455212601512391336015234678961406749035968845235704547135178299576743546809571760016744524827832969619279295654329705739894650327118458480853178839583751834232924082220767058377026752226661694944343166806818454825177592130468140046069219318285294156254401184785004717622917801819140313308590979601215678775600546716173422612403560035591360766757534005692474294189887591235586402349099182010724173884168665352618776607476087013020902650089168629112121791572303022222756327927952351170781703416621173151414049308001075426751680209950420781409962488617632238621322767372986613090633079754218423854907991675555054709837752226735132907922944783930911268645386347231468368666282830031695088253868483164602937050932298186431463747648560342958989644795921759602988371282395405301698044758658300248833607230084281561213250463624133931408617556013478391729060217466600507662199664825538774055858047618827078686593313763295300874970388447461733553819460414505221790223667216846158272020160424188901831084182181622938178254835911399207793078368203722825778928172733533957076740037580479734434861637080196870066786932018765238045620542814947427433053556824099961442917877318437124644321665169214094258658836853157702566869442573322487337000051329723727831745020440570499584384196578912871700886165362469899653220386673289705037879522723164322388701684120666045547550766802702723068100942848006829718117682856104010777110188889460676803177781725878091851948687384146888861062579112173798788731271516168986496488446961557558767885788093548530058393960407573744697095558466403056191978736662066082156881600983966350820756519198008535277709711775044955379695087557957820374747260100521440357823868911109364349201814014019731894072110573786312839210750215218025450815464902935454997625167773481730510807377281321147330887451790869113055763433416294225463439272909502745031656474484637546429013302828100989642499650584155870682014477093351850535701920172805735029907759380013476370221218848555442917785030462007209135460406847484317388316622090038767535796545247879696925934298778674999592940617207210503351193642884861405270502024155944802362079551273931594457757273236952403728755848389421355862037490872885699438833970216357079441436028279829076607053021863022171865633363004860635116683381308757301117974919879340212324050522281528556358537766595787216748379941834612024988921635167398036769432167632695659086233140235849278214246658599044948032260658455083366683509831860345595225739057547208212534504274384356357573303393199857990991827554894303679722656942289467710356448806007686395143359130317300411255790787386553159975578288844205744336647824560927138453622703970754248875679377097890195975437094687496271162523147301144428450041552724194956634945352596875976418526100957834641300799709528204667529172524903745757622676371639126035480311968718639215774164473637378563479156149676621951833444726194554883656931520215893664971064924309820098705036388930887854593853988291695734519377832827056573444298100159621426135187564802002853748016222822470915396144738152157771642076901971305942517756143007625918591258878402577773087376932218368003260116574442222701549231851868921877348555146822398598217212059320224170750580347808813330367848185001388782931072569553316980325513884254258175578919907069899546167889027569749974398598844571365307677672825845257823604929810643528275341719949211279516477013916816199298744560510563623670595912432868322305796086970357716295609227868719343359560452687594225226773050215571389255730733589109058908091595555336542943610401333204493775142136466836664542909987273701385445535408902828418752674019343175395174695113707038097359310802205181502406945525229323378649805315444848483688262619578237056876068663698029711415796972702910682334731464711189353525896316307666397404805456437115572116368940551538095411746679679942679911514775950357553494982153390368415931759619280846694940298310155502104232462964560244178426157945856488348706665460370557947926749346498186419446091051534740033983449119572021601291837043000018040741061150417637632347933690870916900312411851476680605028569614901250124050196272911199130312119688769243707109811132215769508737595569159239702515697410703122299355497171238664257328758533938331434129701350835696497638496128152855297133671723062073189801279590369230674322718848275428029095094179799373185715257468995136527757859189308823741158594996306330023583964499125234771522218911446521073276563358235614854994434136953495784225285921204489314440285993461206023294199848182832354893066566230470789051616884743782684167226276579028555748720416697322475306800797414390882086410509493136809113157555748340398942320705463088527811470884043552527681402823328097211540695636315966947361913656210953212118131156934976112835821219573730433737510959378100000353004047704398772675216776802506931373764069532995435149930198105056522214886416984824518811065303397621993567355695757109881783897539658585211609203000978791244412638085395156165672050652827114800965518958398008902195949754081923268925561747736403356257959862546611063326541981750207374248291020907946834198687181731818742350862687609903173467303595402035602325615660225652569221941568990739257099313304998741434720458671823939581498878697982917153034236288394901889564011818182198274740045122811727796240832414095215987229700839363031390056436519226233403214159404637062045878564815269841655528015054223344663779314424834910430879996576582024330408229742140999429641104774153493754064286296357219632156696586077033392071828536001876300659932586978095377783027734625479312830004902462729182982339776351842165915257360431291358013850120531458468299959394560391549784943708950663819141832663265117606984333960870199606755551892355153358714412763483776832186719825151263020804225880203677244435326423604943040527012669773323496088043272911902579589613431404061108161095597561529085348234513448983610464415247627539113603042117501356882192775726785012354917432246860404058431912120032541981503887861693884721267905694370792871009361431414631962262907393082126056892000306326286489799698141037815228303917594069261840517810709506585207832961766273359844788011346350719403393952675006022876307200516213217211425514333777747246685072505867811092108618444111034227891350848905146345766460401813241834859242721514976891363205415786788877467702751217727014502687425568555189837938927855619489415079257661076558277395821979456345787339407301842928154292667090274898629466102229277766397317223148427203021161779264280129148183419355205890893201946653849893158774085135770430462719563173778646941336612858163908753361832664179570039885931846528702835827175249761470207162602329048466300536153998700148410266648069643368517643976157838933216519114668392444380240181461800298101027309082411117658577228024835255496219631329789971152623258138210611675915470581786556136576769681070307265996661142242580345928154960035330697186088314919249512595428558616115415627887558218482507181927649898663599721403971310315926059739109382806702188704928495692154471419156976247676743508199374949225930647851025678215319161098750480603330058121977380418492865305284978793041379544154939065854531870339826130194779005777571456829074939370581659593904354364719787546973995513064662291584064816888044349323840542369611028594964024167565551143723961765215926197208000575718573185292647481473246707209957194980097406856499814812683359078585936557977797959591552261934226854477639332345573322798981386913306701073064007308681777297226175185408233902277449288245539681656282705688223943927846475420841679607505159826278773341178147210922782938560051050932057407286159296221664310307934512321517308701118337247484349278195012459301562525045649807972750173712588149547558231767509920524556717875136766501046308766244073912078287727389049276757599565690138883096386937081284266281108634918123635193519821688491430333795756225932623246696569914912585954335184208997048095015056106713588135591100042367921093359658778932661749384011204817527027306195016472857017226131691966753409033686855838470929641159742269653679309278265330784672949955363279404759552853072994594123539724866520183247775958748367231696311921728826529044739172976733140701906484210987027248118390762746540088274886199768332695850789678528050500847800445981765879359067739610349979850580144265279655768082782889473866892472094423346356317283546859232552147318955198775124151839615535131008251489600910180849648256619111643708908067922838842744305873806281551511208142066198619959538792542755940960579306782099341504870583392960764199123643157178207185750266669019309911552054382391154579865248021183718099574326391481849713181880447055417775750941793379101664159858657551503163954068642081356302198354322807076515819648784849333520958817510681870304876934554315647627830934206788469776317069257705352989101846241795432693937535475468408117622300589055346168233179378918534290780166075937004355456627226105957998077394735740993848576709596145254897086852952588678797061097682754149662126755538179052981865412331820846422914161150907899733077489452062194021473677677731455840457980148952804900615939438569725622786277185706447603730603577098402623685290403234706612922223117620915988962473304249621615315873146709223498501447291792193309239662436122250658767187523552215783855712960197948193283681122702402295359746007525647215824282095559009293346088478456234898497348162079801035783075719327055403042211629482488464257669214674298857473382156999667614636345437215446466600471342651247575900217811432257127971645351761258535676613531890638638427270216331586861430134899447265825199668993795970133414907533250772282366936976928091188784199352166676767604955352576103465256190615433203762731803658968364665649562480733962397013480640095519215441764380165687520180082756048405921304718964165416377331861118226262380535872963771666956160817454592686336583062135135713007246693677969667347543460263244821811623543758613847287769455733057398457234207983314695415443936250177737000147450473323271227376975741135681164428228574839435439338561504020788579855741718758230612382983321002226596990106744188629506794820953239788195753358513224146493714804948597206906083051446574576576254867103882210229751834184805609461660824663766193851838246863825959425644718999073399700024417587650322002519724387243814481997433970387091215598007032753828606027338511199663538556925151763139103649339695586430854730085545891779119091317700970444190076630897446691758341591695761035891345857434331478492145087757601865294362876004837413370822481864764548978935080411865345449922091196017060617162109551275710821340069022450206681448101282357057428938430070044712913019966772491644996988449770911782179694861311249488466674379154586384082056897615644541112480758626538357708844304159009055664282279383237770143114991497896068374322778052339057165185825114939595573974355568538169731897212998869002079179014859422770221370073755994926811304759328620265447357028725483862648969946851841884286352236978705382378046210489200782215012882142092648100673808464468920723616427702386352199711983226062418282827480369338174451919847059210758091146381940333738575153424857459854655926338288458733780354172150489502346838535840254050376452794936786016336318867527028943863482893503127401563165725447885905250861939843175255727437975900429871130130779692700281861545871623993747733722363620904207838506965554609886842180165761762108568961920438945434435557806422949385722340902433980599174159951990954276374397027400124896301752498745335928489276391994805056946079375243048701610986287988974472574112437351120979091651391418866823868477259705623346594311466246901201348642906966441457921848792591343721151332910201286958810943997642858974576372013275087664877919413392768549461921638508945538049405795351711556468153181913649336041813024903256675120296264882900664243275722671816556649434241585963314060523987966205246297186705525776283847669121916604283301605539614123726306643612317235378407645962096055997576879413082697900579865025323536887114744816427776657219162936767241315963893291399746797918313516391322202645734984965085651266191343690159672029373195790084224216249847924899032360440903300895875200883919021955639426296850988352875699381978119019242461860207041623377113023030797549060684304389716741158040231958890523612199672182169008207539014458988908682141625912664594373169718456652947893047520959769440987984706036032775361556448496982268309837799529040427592364095398474870285112644045685620055910602563820202519147778478835118490720097627088950527986385701878401224404416637491733025118974196205858996643212818440618924771779772013703422704009593565689372412283839899969892633231613652596109576676713725267365966937824975967729392256385611762550397152343711349652986268776131362677125745987233140599993207888167612041690898275046933380369325364579446212424863228940042009171239259080813830655875954726309957547736090975725648339275430534753488379156339040500208916399745508526281146735494249622442574547526889722047524551639964022461434291627470470256148661123685834075148660055166149752861037087957749027549363042147701657390038119258501935696113925488585006335709151739445976882904922202502577944337581594639220572501676978867764434929141665491524024815249996012667536780822519826609708185697718094126910829293061057958777034053593876170134778468205169538633868010260528747274707161416389752537705655029472297666049887540686812179543173008679304992486311566730214109294532918704508048607280992509831218911868482663274395210398832475609967834352406366013116536040497662796718919450161043600111694147054116217563667007005650547082136073916530659536791301585489574835315118844596978264762322348323341323363715404942686769029476373733857604374357757371947178901194504750023002938215023962406329954784149815883693315917428476912451338156209790728431088052030740340652702557756885554913908141469330222986346024710008735636536941823007015306990126591590979620122243346680144237808462341575353290601515220060654348267721676829860756638170125171381349269532923708199198622031999479002908808058535112964780805827551562964118505075939838926673268570674106644294841892087640285262306918699482990201202610139365059428998900092528004545206080285954202956498696522511098284943239398341204083714212219516843276193205042210695163939824526234975873278021558072063968904791407030928582774510222213889961033238541055011868132307489798661068847870964523151358634407603660735925616512483767279060984226771898176794398829575072585860861428789457928458878943630418680278914648086410634841023482284765448436271918523913340618681987841511675902209894715048007378322155830324427933792948684730267119842798964440321299406582296362930579484675818962760358790473043691352793136317772180237137388972345885549279932098489160833089366544000269664575357768926712020900218130415685945778513606897039153871753522083479878763218166979790091851746274196238081839559557517841382781547142180924995218806747390204569017145478400167246247549856900610867135109726361969661732761617577046620948243506847606171762373220887227947078489695550668288159046628766467766727185018336097238857449877022116911138416077652626052510623683568898067540019907105346065936732770612714316021933489408161827220394294283580799484828126144211512398634640383900458765239745016400641318849219192978901652220611846228314056965826312954314189225751236210847652315496672116063489211961754945321637683117625303644233029431540845996833567109955083027042337565486397115264986499269659696491827510637685871643918029267565537246830396611087724801151188269759330965158322883698309836642768573096322959500094724621074049352999588518414357772888443403231211357939345866824573192207855740194485536677472253481821100397571689000953044273255840645858231599402381794900043139025431319173515989562489637491608768331130739272185829825134587222159629050908616837073226150172720771379216556097998766810309288188178118418439389999288970576349116351530464875210213662506588249597945190260548958922244720383750751568456662287176283675955348303410436489424667644779827227385943402039306320442349770433259945429296051464614814859613931180266663046520818771540204165723507677655534239931287629255364338048888876809057245786092211826545801307975456773639746942600933662843041199586613539072564316008887995300210823708019272169583881475650183118073819295190290433963763135304390399987880823319659452644936981334421127262074313940165998933204549117406682923337365928008774820332315877071776348291764252215625646667400215811971945444705229800034607877083359161798246430276013456512509102530059776624461669862396513434976532311481930849210501828265369688335950970805650240840691744332329753359035732064776294611434749403278137590654466032772683932459273738923507146477991848241262147293361079791602828412257118087609517103768893384292011208859658796781882762376129608864830783509742460217977222499656817261518117399563269990271901322088080860661087858068497554016102917210440477281732144624921148918173901461186017460173933554682914735460438123777086723472279848099858882610570431403520456160267235853321300298343488351445077925197876338276829057855389286764429003189590521110862501685521311663012675491913499612698127835615616182335005091663709581716076072777523161998980712081551488808397449531328212456390891844857571898165761156224203499422989546810261789374758267280931363863787445086773738313748071342160151906572988055773639951077447995989924520994684111777713383670948853823266061669892988107392220268400554254905762719305341237382770233154123320503071867545320489977148447725067217529447032264778234956884779687539998640186351370228283182742747435887700784629526023615428670154080806925024502930347839010928237235209399331380658676793431630311374809571165866013890399426835893901233739304528593967176732555294240508959373959088532333637433719417016673747537995183858670590725357340686494640305331253572288784913312947160153849437159697971861110496589852594797713262875151677006021604939313355826585027860483668468740210879579192145375949035938639779575983018230439508344220202846832251407966692771241384961224239013880870878670890729575459061274317728515081352949633935577399097051230086232497499829410379816324018347881098067480333106136884643429478681265694457240997029916814276059789850367706972797869135378270710694224692823840547126185523470739795608735386382711858494969297646468203554609878409507852476976351347943796016826094152238948418876387327378845135466267906821930846179121553645400784381023894697831366409411375365730619551037143289311836735027127241086584704127890481250212858284674687212800872935501041007767217376993216734145180242242027593234163095423332826955468833431588527327676046817488478837213953251083584161393171296531720841512302242860630286861375829529222162218334110867166686544608530820614910308714679795350007269690760410113039194017148493332525258541668773965128546205312724512488607425012339243843674333762058287484066077396244609936705151703560309465117030336718634739741880868460746834106732151755207101987669923671827651804644811814705140440235912876258757874915476599661531545798920443656226785988504219058415954619539149292049775119794611654671420194469541350437471473747451560738954118896600974706370772151846516351937057990842702229105247031391582051960600929673531200286009744774763637281795635979291595689691430725977555599384963760889693524469658134633815540463506580411516957720987630953193041634400655453357477270430077323319068157480874717858696845955252873382095979115174811587402591607782649433839675560994603913402715521387828889881557202790469469420162290869855315307699538919203994843101601640490591606939335683540789263154182947285345917779990189781857427393034181074532790160405375790849719500893881527510634026124827012207846833326369990704076374298964136197165531394846101285903449042543235542917567172899129443721917254527047232313740193596648156647857195232376414463064333304922682820311860520362521169241556289719455843436964883650554455470442882627038648916478587163358080620157729303020590131425217218073576000254145318505216540949334181670615080381369322026347297440080564133662918893268419791918271990012267143959076782633004096878185753115460599632186436940302536417339188917250966747129813488139394990233120362129778715038662932636932273315479945085266416563581635856731846015011681354249716152665066566415877984962142669894600662263864729167093326467196451832210116284617746749016922976078938102355324040109320760690844907652952905792401619394975334819824943774346600355674253478273790869848639396227388282273571071545119349662330494369665514762862962975489966255926876178526593292571200364964663269112026909312366556407763267026351323825007900822649626864690316297013613150631310337341449338358302436250279136820569929089129185962603007919083660448448171457123251999743005383176069341885706983125644220819849423475596708432562500637826920190087189268115693175761174120174277504790586874680783012313993985336168790893095248851389277375022733147450168418793598431002809411672129622419892676196420437365484942992248745208601170525999257288189628772317551501618499606076602279496790546444966235092710532338448708377277115666856146198525214390815312756371290870646028996483465741701423893109592394808720897936624890245661888958775064577484118361004368203628441753507970351084571224210123868496923895025941116090686877969706693871896319339942399385492054232671114150299886447437275554940085276410766175417545907676511873266359431413103466787662640279642097604696949002321363149428755694223184029979188714606682406897904185839270005351190423085987687988259924259402620825997427314671354191810913903834813952187164282734375527874251489628162122636605297252839884305788887155862454836194682574219350215780242178559728728717295314570153656279080009205909156172135447012405586315828125105813080652087485689895681480869542167341150917797269012479067229780222542167680564737300760125193821463658785871479388303081794804507110422202342983962335651665650941696129882719326072269420460818971521013986450136512149039010553720272026358837664076140456517003522636704798930568129899086659368437222883086579351635187760824521200120254926630634648261255346472553060746101789865292892984818751015000916215535280294289135183442328702540290720537673804540797159820720250810187599276275117046094358951112221857880583256763956572176275746499758868288755207240341445749521250428149973641534710742276194605653295807485371723325815702884705811948224077146248483024758611246863723170026495341747121809060068523642984085079086058678824294455730301563809603695857428613229774171575109101090521990477771642546203594979608006331098682035044278320176265909781292639947981889899089267013702732477640365023727513716108414317447958703539680721961448290274971823515146185076660959409669313175028736824616068881669525104827078780743062112272420701625938890378466111123064490426076331867632625632991643897907552138448230502768104277741689203608576141395646149123587597319130395723259725156426605258989798630662837165729508484982990779399864415153211991490966416243818327189088666736267206948407225803387151648093859182522863561129298493135510751843716869977457898979645212007338323333863565887722151031255246095291723384053728421055096670761186734263368055442696708303200818175656208164295457161608130757645152406421330422163913757634082466497758028484754660886945038073709448388190171942065738461661090865265932528665372890118310319816464259723256672155620188261011464628078823011168260119410570088995799316709573170902860716971649741508025153356977305680323200513375257850044529309777571493364058845461429412464934496282702527873464883850158047273840414713075740590480614827507290581353342199012039597694009623850310730223478156189967621777659707337788449359084600476188105995298778440271738813620850046913979584524921347229286349917563595554133092199555342956721990217485375107132197778865334102794650778321029608496871896728175251502166873716715558981619431310951551046675763823101623477206790725339137343392155063539930466116655593856020644264328584110436289288194847757948595697967213353226925250044876693788050848016798412925424568292013469635014798684065016305132077308049037859231869196039212580997323269960074668365203730041904646669308937690866070938460985540139479154778493234058800374201289975921000687352263597134080503452248198844533729654027190028992451457658914879546492068607315952283994297360809142200801314047083674106119463660291087542257627088789581168421198202642349179018322964278996135681883284943109908199846664507856661376787759628714207138385058341584238876147675734465061220257844633931749115729926566380985823593741226748422759099574922486438886059786734023649928850915518962535548406299302597602413286748261842964820082901443126495712721567291550862759378220128972615562052158069798173656969917414834937169903340396598557362324226592319851301823025196146902156414736084419415866162570492790850693069712536310844720853206776151153821839997910326310884426369932399045395560604369643883048612030208885312875870102583404672525801697126371804591205878410177455909316589523132448983115432435444568980025518786215464349644321576666599468594905638878663706020581186031364864689452096665937909429407318565519198767842073934884060316796864601819489551638935815786892600928383530039277333500914302664909617891930568538211267340533867945044098731809634710032151638718564155404096468885584544978064869942320085412255772603264807780178171112486331282961770079421630524027431133744433654627662320926485667353563759454006885334455691103575538739053516539319097089908416706305348242853975879257846673011817340330570685216534120257391437004745191834819650318100175528281718737747652042419051696805360641468002369927789112604297151705810094763006763443270505325921453221223804227150627615649789630143288948891113576312770452142726359081082786160725638537719054071018285933402153154591325947615647273025566551351157733091191894381617298907988011853616383074353297029097321526519016728647862036575828257788785364526638928542578576844777202576022240479593860480317232149497891168718478774817551224034806227690478591609734485296984688421956092833899127794203521585064800453978430286233095349446111210488392274880600419798785271690168773344483686303078267092423724598026386834448629484542148352871050436432965776729683338145158082289944134548464349945989367979939815759800310049119189924408742674128932741235594032150667881226179230150050214905248543338558941715768547393168285481290401348832737079548682760682753815092330375721072930473113972460643568874670113872647518752612443454306554622745916143552415595998863833108471885535068558691604007155753139944255374592946942860920927145428278315110502037052937734562436668275134790784923577950786353309132864663627027617135897140678957407902208932417508512482130743031870989230493195055158765959631681574005988086609461437077830919127361353659845963643837824179302956541846286605493075243241707521820533283602731350630772679283286602417276022442685515506741347834902083534797260748159790763934871927590373267761381340454324872007747698114019965078100988855867781959575897345231649785737930090702087776997297473307538789529182855672070778452704607136762161385942764421017346338928393457844215075653627288661909944978565382810334561618257010523112515522615358239344711907562889303826303920961081219767946851704497837613255728440024238341867694677370223271507293944667636584206186127506343592623529987107334890730589019354977802672280918574510213733198584744425315909681228844568603173524419243988859612764985715047551526194817348427169814798465312575504618031387401811849262365633684715256779209401324811047309184518600766656987599232675180801425076299152367991560110600595715858486553272022235100345623507474937435281301806369836574828374098194675676673956829655816886315846074745795658369937244391269974139089076677901421051461127365710635816840225039883518933322837132136860983398922723311200163125653777966225161058184243418332979435027440899628988801537982176135465563751610794350736408420711397528360621287338775088784211232355569046670259964147046617199193910289232996117388546047759448492121657898430091070612614622945129285574535190475916060498751158164377675369363118979619314780986036106679127386687951909189559525947063688068217968157520412901423773131921885899001808859911883031941621103488054344445265558447774302140080735745914923494204125627566554266453603841550057045239613464077047486302507411787320297177818962668969453600679809597231165918583199370519409430574064700071311395393548830734472749838287233063098962427728190439803386956169688060535897947455711810897349787054542131250552244397514259249778304672782043614470600413300715857111726612023818297383461798762068550118762909698722832605447611316738171979632922290572398587219036012842746802208202840985730891485420717004512848037592328189807587956889911519671965370628526726261880684585776257177318397134924855537166889936059028434875687353527563238652864323450525623158560957618891367921318894401036405007275839431108903978519176605488657581873326771941855657175050858235813763254257314191629806302776698484300153061179396030054543006438678549470483669368165122022414452157887567715901576581903410740259504487774499550218730238049888572826317078099308366332606993439347997665604047174239781972013592769378356352754833118051563196284776562029639951307589881632945731262900176529495003865748527991938286618758176205842385789021058075413857721888116618286385679490345647061746345549572675173642335552970532570741444222037463069687504262612181706909029803431461479171197977625244448745328238425471074886482204230344668659288812695964773828969871403298772928930316251479503709073193195394414521177724614367315746309122458984883044969377880403126918357619422682121162630946604055543477051764060364179088569663462106759206314041233915290438886201936777834523994049626121060397868504680092718203678756185717239741682781544972719423142303144133146915806837660136235344959693851111179786080492209994486893220741233615751150796381531379647956137083838887150317150495933531716915443423392405631678765433209754933131872436478676401668191235575294549691910092220012402653189145116337934439788670234969483821911937042264023625723130700481876559664689624575388410234702512948117951735605982478160952954471957445554008253845780153274705907657875528202653354476899858855891800226068784815099042491639523012661494370134176301060464004402757790092768598720496628927637925730647809179261793439679689568580533832629097390564992829102577637933401748923359156062546905279984739737265936669203899912124029823307291427434715048815903932377474838376051001029262318218418846081089344286831525074042248255364346665394253315899309231360710875590925014568259570301809352125342492830945475806369366746093644205791581256914218647851565964538550403114102383892629457216186010888686504161447930094559082457278733549792297130100907522814177140815065675953943159842521891090398694220407431429894375318627779399920945131134015893273443020423281008643055301103196149646355614072215360968424325785021390431724223001396569685818150693434161156949772987741790691662708619649958247004985941707931608545227159326254941050619470588213239091293468500630136004060707415746426896107878105169880628756542100336444724402049384184200596730388236851760098077210987899786780460102968303661223651225670426079239774142269086958583010621649437431056552980692811838156522628408919960486366065033267425038256008203298882291155763986682107045968772083402784765876469822085221540148695781713049138904189779700075138146507749364063950059400547496343660070365056300001573079212009245093618649634817268317163037103658329991519657285721641948134828132505391996940395812977474948777936594867374984914601602614665288662020950493151023803348037972133481789269608940578648006597535607366798457045422008505433748188385114282643447677060866556642732966851937373471805647742952204756974649889419186250690846477948122977555210562880680772667295979473921195083805082067974524664122264896791073357087916923478297183891309689418510729956593821389654254985468928392599432437421539478299778984934635894905077583567970772756369622680111812043071341960936272504054923057053915231317913553082470399453826883712134925381976061673188779957359194640419444955491822242525362833531209275747828968188827548447910708353531090877166895504798510231023440491735391425501289786965088702960712407152020913342225164272413504134192622414184651528261469838962391409093419605445680815327224550471068161748689316130683595754250312609810193655318424100385241938252456915700310517655806334545166157171533022188010737715623334562367900397172587573104216179513537457908633137851522278152452407289076819038503961868349529631471409294377079125149727089838179828374473896157368962600374528954143414303957380568962351532897704402112937818505628465599398035571656313242007105534198035047492502122616022917233087137856497532885963492909411882017380920220577783206695110976350100506268913185126560812021415931197877718588360427455976222249770960135844714917036776727574892498090406969433758588762267237764585118828159912587693406734154716805644775847099470059677672259683288948814255953491901154763672833975157612039368462985842260165092226689611894605754155239260209982774976885842322868785270002466867862605666374832200518494744881661898961557637720081923578177903938646906952539663457831666400506946396067137934182946651932183954689376811317094578780996250531014894986335774559644850938033531367676173601517978040279202667861767236479993315272437904957722428144328618224026005419252266087646286764325130972046260584913841505833870748204240715888726373796637459516499843951092496805067069266641823575820908443483514098185427343998981518635796374076679927743170614585942196485991406715645405803270341396724574016224467664282332351490407474019808205958710450582173207463542964339676340880580503515663389804378348133587516788565211788730170680303082846445303067283932623904271039436053066899465305930483648641013281912090889673348659682272329045642339667099410729683257283660130055136355420108410352232870495868597468076613503325320891727207271960154650223153797594948551024147479914157874155166066975872947113300028708562016196481036818871584634453062079649757630468742831823910911871700613443710294158618501428351061714923571560356563951172204750071461988468944730018765172694001256150946213496897898708421945483016793003606388921155641366734667991985675309320137670534509130232014625653622599945650692143342075427031902974907838679844353346318182204278439877221679566412038983154128868836122659504217412288129868727005926689819982461938565271193249358479901514543807952275793122848872022624418310462021459693907028440417935589000444291044962454319638164326934459283742428779740557210972227717570233327441831071195925061772788159679901313920009676102450939320552144463250004818603281008194285638375454964984013187508311019831362426076916418539894946464137555063881807178063586739608424462610499731998136746488156704344361451946267009032975129008949628150026744545585013584539818305548644517653721665512710287146175906569340128084502031747661751930790577610349588915899991610386598665920402342944607717199032857709066654859386614705078563518855566308195601862764234342856425045640850828127145125685972300654962817009276735313993018448842311847207648829066680123327490565859418643371036677247769504237562957172749837547431425758327583846747035752028341663153356922648359821827448195574877819182282602342534616733273591864026273284270034003858411458912198864137263497168550743841595568523853546800244364267720431523293357784097670007101755418776955371349405467552110520484099246507083474316136266183093911864262807755553972805482723999977497143335096517869445048063465166162600344825391373990081819210196452653949260203436158421440718560327856521979620594734804910807144958905829599390513908936649988785226909607457836714691725312916373278743649160656965940282754027047193361012039587034901508747819760352591006387046593617501996308668184363848610266780018999442431587836763073400099424614151157448287877085512874318331917146873472317933715277452039602096952628052038937938609278702387659807137207291549405640676426750728358206436718777213367600781341005815493955196096838395417213465690695375402885338422759611390807808196291348588956026691626255650295711249456802482658663493800974507403024255142228556092781225431609708544246493637636111606514983762520794111726155900562912759700945946453318588386653206632293635204895077204203888378599130562100321384670233131709061018634969286106271382065740541934181543230357300782393775527665472911426141262662804467785374642875380669295343550705409586931052592861357451680990809225680854674107928011379654147199093423389442102923183870316661372333399300341573540701623607759462366535525962023225138550297813180041325310560727291043073060629881955827322382261867803975087457289867358416079107616601377844891634761425898940005426848741761729592930248675109294330072930137098431088258858675309629489911972767738469707246398128234223349183029164301307489548758503843089961594026869546522694380684869416021213920345248133779574614747911117783605350402733705452204871330869611770169119222110132946905981032409741458974687215058898478216386379290655754725077375415396585280480276798578881683583660566218530074084055924061415282777260889074900618472567968768721273162312460579706871003711247519952862804611191973792189040791285346364547479954442641275487109759932195001598854941615040138534285457733503851810336274568565051275124050934334052289782570366764735509171148319582902871074613686502310593528265443801097076475427598041902371772212965486850576627857813618342397150306840923036590519864117670140150205306727115025316316734813802260947023425893292184299477415384741020492280347491718895869002677868280040719485977859368604018423199929413203169944309622046449717083895178484288647188916537231262082080499524342637230447931708906193178546607117777989804870639426800451585868132592299715513382553875536615563228490609225249125621825160487284918584536340556520674441259112253348228633539296135347739994824945984697865217008453574031568564018846280658209856050182884179836651954265758474711055961198114663740916082689861280338494845020133918749455925517526867821933210114105922427221978940205015827052274393170307511573438431744379397076768879637559594897938363522133244718574034959620121671773400344699303392421401128146690171750357423843062710436359054829525237527427755428563093856555316627352852062735820969136394835628810198135943449009858344946377945961463325832661444368368452634124326220983761293256922826489449026492434302735224469838628456572523691904966601653740007002436647097457969636932246486202707351232308301431666608034720410926593809536651293119368041220232916241312951531326323477654433524905311159255336569538957319228720141632140231041306779549394223471924616249231399917659794805114748785325952260242245077047418152851346422108177029227395634842499804098160847382153018901055829291181103689782634866607689473935782882372230696293881744115419836010273365492012527638160066393653684726751910254630797187172855039859887215176985256870671012892233780297175887074201321657159703728941446921843226865741451023735018982462555514395686912900509443943229704793107306879764468547056916142932775417526773959959339208192362119627700114092132582487738098084759203524418764476799514174356969760654793059184714482907113871626661610546641060449086144280154922144427791434560179217926636970199530908120745369185944437007432639080489859347335623988385228704479080088442474953384597146821531588852847786689506125786782125729115422430581863874851031839437106871907109988848172571465153717329418694967581747761885604816887645856118194549419072363320536548166752077414424185357641122448491249869475588088487852903676963904687482120932584843855862905401267755667178256811848918734914266301153011448570300724049739146776533335699870158828614415940319930989100177062880033419685555653218538000319550157756116775980811212876176664408298493853818084015823607881440120490138697465809013787916833153840507381488052710562281047066962868880385130711292816704810393359279335987388538848622882104268603996989918382327731178710310828967204776605018907382832325396093111302969444292582204882209068129965821696453803838641104152336622627266251470965372155642971744662880566737896774409721707701176186240778445053326997425300691331548951240928320758367694346753233163182508573255708610125338827120707560879370352305548688746985513802282589341122788217256299616770647756229615672155359118646146719309109062303191755179452306213877877069281651279603578209749766283738617695921958088631284882061447052189646257231256929347930974807149960334586314349549904761287145049441017470018374151869395962887573678309500787671233077746053834653465725474840886297283972665511747169252156458127381120955208239714644475301741545096727975858936573917609881663511266608226879389813568770273944530427381606054791719066673113338250374632883774054256330731666453508354284580368173475048733062732753158032431934634125868475468558199138797462085212440563858624381969929536745505368997937831434782073106041506684220765036564028380126159422354391609251891027226300589270544631439990081345609545579337747598346652322905579504770922641509694870481914778126767146253606866328979488530808526193487760223340602826087515078495309027022223991452207069808519693977410511438956297663436514481342764230677407878341786196716326078133327186076896502247050470443149724099905507211069759679561030952827229843453646200309928626006815087883784295751670801437745323464715725452032389820816824329185496986499241159893309479355036916632212120812783052879530397152500595551860109235425768915658289692939759863350738589629955755402494889679753955450028256088475390744511241529433020653662419974830473913359240811700333566346598869504068344724506819221151360811603755979518051358299021154081980328164072972243071797436604922885174282364260251817163917558574592958663756305037247942855945642385257897275332811755608334912263739406213876622143209279975500674726565160031730506536928467731840652670094003946782761305335778414608803302648899588523887654478764876974019710986656871982171256217895011248467364161977312489024816033969550682632893419495469523751115046784821835730769059943336913141489413349233620955288219688085786605415468075459690467445115758980852514909957721572662392698131958954757593147142207639360258778596145346624976161582858216615023563650680971255233103928600607519480151720072572105365062806052166971386774950654628100210328323032921935778271781311236994742419124738281890888719598109510242928132373077496057809734760033926966559356146592973476505040546666881666857371724371525726793692323181544517665469880790658079862636362384146925851218567956356319369293812828277287121582826546913325816631502768461281749450695893954660933376383468539280334716963208562320204965211707313068862380181473060645000345305537267323827027727254149557489937423568263467068158424932443949874498040569698085274232945546510591083298054971378889561467260622752593717434048274539972056767307307588280359949233697941856882541852957524322804841023865336399035576417612937753869642963543262747021242117926695166724017108483887346698638659495917934562761956534302630217884815792860019306528319549521899838667692047103953713166202096765797637613646233201127501762421096816705769644337821528522302221372592932391194873222488354941654782439145745339463260014495729248629784725850373664727734684592108470763536673486393208244215929890120056221433685445535057139452808639899787023445606644835185121322658115152450275454456470454197130976630300786238540530955918004219693271802636446689876560773410529729662607563472256656094768604661209925471295787821465848524103898939354521450247568446676020177379463906349738350374879019302730798642372044091168081137012256817538854101904734060189680225744259580342190588093026967222774990709665892478192226001401009753694227343493898175906243978631835667569420689193746254463915666838336082654177094199081833555677522347880295860998781127859360263003315819766698974036984126803215974796220133569684068336273479912043263917278275348253050702200803126095849718666570192587216301605387962229439062679195169556603837938270352303173098350224955279616779722227035799428628593861413959468108072270932860909768963219518153553794375160886270958745372696973010241498320375254039787512905775278708684367798742645163715430496909102927599210693102908956079638873964078519256174353138600973783525071742046779240585523864824897409867060483248619285211355530643909302655705334451017802815971742281759964729375061093739159150911791369555417411949928579059632019282798642968777884558889788554509612408720534037780660733051345357680403660245897072348971016032296786544707544631492358255339717600656068238218497901020196271190292500584507848773615209326600770730511880497032679754055789619746380996427378806780098470835351207941367608519237824541142229064007498061618976209185044421992380012040519499850343375669369811498810297711927396888260722436185082729556278023213260660186974432447590697463495121057683995595735490419286658237722656400861466561315453769987277935655487978424719432770820422943641966882888304095233222447429906904425130528892544139078644119585751418408958889431431280444620962561996775083102203655912486105178247076391534530129418261672642121697659633646673771898199170632990604901066976054766760641374922330049836187693766650331884250825022264120826454594442707039080296171820585551294276769193703850425201108675600993634006423848848993149531565399357821599030840997931219483765179531095687092845230648885079398249186291008721832970373358774359626259861346013116587843067747546265963516961828886125687008006593110162166282379353370013431350177567047336855785460306049027763794531545918195117901219026699905736324564412864422369476745549342996197796456212965533832689196738884013416590807873845663366804938815625046712387426410499931788785106662235326853689856558644722090992818299877921768722763153117032959143924885600415026163730406434157963835122799866134056249401325252821353458645023643480216484670717045764195621718959412898296160675365533383083701650507331043957336115242877303485128040118553244359075251968055124165901773358700059699847874715703075418326131515692384455127155301982767643403443854901659988583550875222974501198877801382665658511677247536839735670418104263235442821146704107053425238089033467981765482357815898721304058752754396112911806755232910376920332119742671527180222808026807225614308955191547160582936061327809473067725794506441867480947394712892576724355162506696031314418356607990110664360360729620724123172461060348470649429989588350872323328607105409228168084816954456888437238209099088938085248978970975961683876209782945383486934073741511446951639059305486896939373785065927313538547721585763691789149314276594515744336141146045773173312697489186233106408202425857794746123150847864240377323621152136063776696227754130241847780339840704679266432941293967153950218369045393339891586915129794565363650567146411249481309266005146088013733027225036374213523755462881604205711134128928524176390022219472485231933369366009752141175778754511513972398363505596626412520446609794901993487322347907338769612873840972660558583543358656931461927657247495473881902892079513273018403719610435223694771718184688159367247154021218315917955623213324183275294319070725393207798576077940683433002541132411451743752834998289626164749760239650129958236107244180406351020839312070018771743558377632871512231722406225816981504607745542309966620054136381851266875817174973187590175698331329459224929407134322663684261490397345813070605403588991085955088332071848088077338804450713358216876884440395999539021040126274058095744573922060407857978995300949012130156820560878651912645413262138319963924400660948983721379651827185191577748484157047386462090850054359489157302780932730965967878744659481115604465273719223435064798970010836281008366177637193443242584898495155209928100984353355216259967937672826868511029409835222759090347950726795351328914123753198709014939404199248860378030459903521512782758104334411252593446109509035425172155082034785296158103092492078854984553866611985133310451485398470717963178936934294580124144707440833458665665985497520430185560829241250927893202896914391714076420650262712775422591438769785534472104305122459499811370430763875571625462690180698865855083580891660000930592964466326605200844090021926048540776898807161789721842973980744523565141805126359578965580019670806358625657443111192442918011222939792920934498533174912200644687959714432527528679455028674171508072165762720263369616288602651426259439792934301672772202665307135198317234096388579601762640911391076778932035447263425217116443817850293054473939961163868570194334423007852590955868048136670725043211303726816417086624252523803038148997723607569839888177303997766596842884032359066294294974332112513164152758048455435222029570638390538917716624995258581363808282674779848531869306010289582215358916073270164073771548686027381789352422034146020913482658202620716129418539942922420652892281553645119727517295264201031559729024733740067110504245339419259447588767972873096859362965818444236856134318499847003705532558044305313982488472310022576096759792352443931378932197252446875987087382684662607912511924121988621174201232073770440020645148872166928256576558889130665524652008655362331106722775448758103031580230181517759701086867486027169751100772324911809815931220447721866075203684580938683991817736678148905682289471500632292166859371261457055254849062058772128722549794195288871739698039263159794685697540971419068723267764815787084477073760249258107902388380047473270951675820436382128413864104821925306497520659134945320323162747621201193964934571753674513157304411421368980754437110871333026649517447253149554917190788688171285342316665878727309081700241827623763853370625140854390311078648150610320607611327204570945685266962711081128014243450268158579715561632101564552247176348235955314488871437553931414605315153008084290640915149723775409468840574022453214777226318147724845810212783354339595666633961430250524918697228245142990293939361776746000859993862113973254810809128113460538499421927565103205534179771384580409075913919782517307626448269206881032558357923146243182752511536088722261830487317083117488627788252616979003911238287995150233214481881162190061384319555796947345599451030277170619876868361725949711738271455733770996044022255073616735068499911987004452748904503717479433953453003936550737433606184652045028528834686101421521261402454313727537945933175362061890041847731978219602258287512585877623248361775280569064279129022154524696317877924225279343744599356152701925442502563335558340275719546452721050511298292979064183434885552723631505578325673674844155571154438488000282207746628603658246061105876163893314863148154191435987458239418761730118192371769742293500167341289979060553319997771891606645184053358462771854356352554100009036797188655094194739781496232124574044970377629418157883400007996705998896173633973438770674476509784562819074937759258919894843551308599384697293751233391247749384088460060794432761712323691234265684391160372463820593501823428776202420568647978758018183923140804511976246705360644004782478445101565574783330027188778771873135161719002991620175509152088659793411474362077593309637340375831062876996216635967810574354451394865337964318379889886495836183097106986187449835297685909584161483461156570966496030030140764726664306831652899416750528195581723033541569402241536023699852387922479047988219528230049760444112464829776076834883503202881716838092135781520064504230092995772122642909583607368983375747935260032280546532614230943226566383326375446441926680159914809660761740205734513760499231321539409132969057483338629989028480079550366834714123650341991672155897136836084843004697983742660169798646021527986434417255869477844738077381716410154203867436312429361186355631146145903186450540327370865615292535346330529601484286620159640478527449025455751540105108996110731719562378833966966299769343564649249058124076089741912218834264868936888549578155221432434494159234881472565216103356252931841787333733005150415426059211451068247140223615749862027913351058958314782145838233297107876708532823125371145033217960231030821572290953891448117990355304438082007954230289840681055446889489108790225777671398725617714744221870021241392537943449330035702522519019979296536720702791942387641266535370241989099078820134449079343803224444295716926185543485954366613345549192805566544518784559752762651918937156354676941034139457150422169104332546836978514294845073289527155174198878383354242188429180706625862420371450019088964877221660516628786485201080544149800522671693200134976501825560934255676302575086502951292304221821024123426612570999924778358213199215068546149121544064194363330417183943751109464850455133267012320719478648318533770643422792249632999451118202523695416510675823948684892481982744312839093358877140642553872546568781339600918217688820591622817415815195180843442226071783338900696950891946040447513383774427561758780614284632195678977067304449629227428138468453896984996441732404658922405241789487307046522321724735670184742960522864926338064023230469057855005228410274422858696975141642893793866885015239130322705203495734719006071554362759128692154669424147554908429142336413933437928523004570663169358694742881641451474148597532031787104297460491427716092061351554974269873268236340227649360991268405800338985465600511050353808894557224051020260329992835364544054070596818899529821727843460499710214442412052761605984842558990699554660167483905206302444467191937359948469347450686703475057680407816698852232412145971579467894934076831319628524686252317195281082971488662547717557286382111856246232159457815553311315394188172343057094286063884354380251345937875076245932168167156248847305330656276143574729090712594235294316100708254941318483156803503192438475198754015643183012494915482356025133085603007365514271529238353626553322093212584062200084413077561179157525928606157544076099443331665939039629952926453244078709867418451621073629890712879866256646772922822657748738417702005102588788424570612099704624864921372848771313812893510089830748669255609469761059165271895911309811161360147796547716135259217304165475005702006861047055014099471808629739159988818307504649597773605347997331040239726612798158356656730628121609290322444959761934394399801361242122987524391931157638899469542683719919541039200427335373572421354749325474933012775378683093544882377234693835447892172306384323193942294684996494488200896875007380756597234297266207962622177521458762484191943500732489249377844017316245285137643661053084972468750600519484013702359167629850603643851867326237580429730559879578602873813880102329693882738982163737429865863902572224513404729415071176414776494201439333101283746413997980507146557076313409591467347931955820460311376705684184571946533539750585307437032040554848430929527498343498588360770462447683888571600169451467010872337293313235882540370788684365824319475672923493269542616122881564755320902208591910313067581299742335885968253321213038534479206626936056658567629253609883296372071009915488413170923553073635222358466609622740649889479022263859269645726613024672454007934916897472937717716925649527715614512455003051489508586010127244221096124591047750749694648269457604721063295893553653134394604066622733673554741929250024797148231041648199057249118616580433099477243462339599654661896680791917077377097119664708944118265878678271363464517279306670247104998158976788069598529394550085796345815202693928547408769025481559082404109244877268145334168049117900910155551175940137723894771844027383302272955807486823082877302464467441635683225347494107655962158538576545815013389247190214659950621943117317525476223599318426897469815481908080505758427141520892912556897981103901346846583717508479175470750044818661311021419697991706524385303592933547207020249215650149844680810310798034288439587869120182371216951286105543294588017772503850265676176411646724647684814035603902626900992992056031579073757206021444749914535602938912163246004927557915234314329522185145922944772927400508999692457974437016427151612721037958220087402900306210027582637886511765739219519104716905872917539699463576392232901297798064280746671204976466917772785000588123558885019808714474760740944070337317917781749671247895669043881060646060864076171905746861191117769162512634022994177613109163084838871257246899283752703310398404131957162157322894499793170557517139174428932495415350662481133994141498776444971213463774765956815411284962002872245053957665924050157057244408536447477108056871219899687252153660732271178164908665181548386775462207707865031942536937595658932502852954736139496915973158639432455189096422800627007786732172227681278879974254959716331384658353970813001021830682586743463180626961398721183468620241661095312101732051667318606224866460716020659395566929082436111166070742338906268793888161705957096671867141660406277313728363613519118404756166406625486741416108586579080631319872130593619864448528560225507110212154715037342577957723351902569364806453308048749240677920382484272944976378833655808063298470208373402059739172170913549514653751245613477029917915149164312522160535475581448818342863349506656675678573000257648851930710119107695745599817916660314265487252318685015593531164757901014853371252477073131430439612333252890832744303755765430666953700584691497821520696428988938766921321036026167138812593990839281078404628378121917119088692160397742745211278891502242466030589095223396348449707129238240593271402147002221747460563654810995283437042089172204961110585419624710598851834188495228209059972510943862741871794476848241976516648376455368685701564390969704230444361100744103074331038676146009363024097601133450494195853159165318602598527497077388376438187995764653242025253969831938298149472483912838732020239560927932959447209855102213902808610799713712637448560610676558684634376749860392052801203357329393193239446319158719370709436948701602055131335202103094974292660054182521061415586395389566877109233535720037568519871705880754089113396288119383548470890370367990663763505910169218681732442311974069139579469164832163567510658673826902958490592345182417615654204974126689557434130011270306697213064995945588195985477591542129381686078665101146537202166642490821683927593493147945420240922862110743470504216961304965708761993386578712496287819368814290914176022385554123116339052000910123680927801870818571140147852431477030255311358556699952161387818998549386483751732938655458483645946776026246238027312717306574357086180337153502333006519819027347012949843332831402712310930191810182990773707291034000166091844221071179003543113776566407168096340232790609017819312245834473553012292161447996506717495657218442381314887155212837355202862051495267345451368024736157802646258701889894531309913779712373230771989598830395290526195387957308145918831986451812996838554459631801008383566820358778479825692061991373163733656760323270493961942828773912274356539120018461374624291565651445221490872555195950962720135774454259992862429606549810296626767778251794258069139767939961541600597503801612494372860237122112960428460505392962475773309331237693573500205149198491724527130161727733731327461373033744353614736532418648977145011691982426482853087231208776620821697089566264656019925883133697831675874725254374489759572002995103624525413755754032731863581793871667439141104976843285731154423104402548834733528437680068498265835633745075978592224372759230552298158422161388400909991440202840291677836573929934529903767407145213880276926583162038870708948190584425675055079168634999864493590679707057356951121938168370952848642276168485199526447624810120053564634418503473312832062132290404988309723755917620143116029673396851479636130846916405401540813234306630968995180541299726006955322448985441717701895786363362928708812442338689255431947936353664697459141236002336047666301395177141633042823088995748449736063639717256310536836552317242983353713271181900029921120287021936480372477692027253405619293516902337659342742132805428063391720716179649335731620239382850577901353125571747542948097332566149310674534111588654129832174541274797708507435789917337807399966031076826219967635189092062125298498897761059231556881587885812013824285986308344411938043197222284354393523163752584750047031723050808001916087289138452113411256832973052822747054857089806176626626665903052220275793513631548840401339182888630757629726726364500255914058193507889010711682628920687352245999455951641625049350588391463325172291516387915540015030583604042964102692997879750526857990890244783485128860616594625217070477878166838458387709276578701921792008616361198207926568237432215979537207153062007502795206522088756847770859591178689400956190841659859387252992614530203651751180421110107450448418348128550276242807388704154722167224788728517525739565547023852752485309885484338979390240094997905532745441020295560885210642273541103880834645816308929923803064724095828232486737550311952314914741394808008451639897203451899271772328168307737797134809402667881566091214762416976378708303286950262072096886212068704852009564434200086569170713316975587886893256993814130023947503633627647563185817909788145018558363839424625938767926472145394574973725239630115493904906500392119189322987895418868337253399193223339481273160992485280493523121830086307728505195896617179771969573372880238338080357285463953008470127002521682570079424293999078200981252443757550277305707995491857262146235018654715260026537700757103012040954448227795435039730963636727213809345330040307107678009728164117329478655414224654607028395009889634143363537722997507559355853426714333296684681592209641584580190683054697886465815152901713773320478937735308911968024772295708563760749529218525160390160300145556218938121475999218765156887771905887434897267665045277563832558778839974164629510089019329540140578416803028114249688529551522580691794519076490894125410842253194955276686086656820015091237762005242092522487192659335532083280886911996157708559356685984059394336463445334450836452728204755280070095904737541407272807111590913675045828558173860684254958526149837955592060475121270114645112387051109966713901041438102944859856006088738676055819181464253563315558088772947728565496010957199070998565889910114095545865603130211113349124015235445985091434727623300796014323338267413572204562296967747770424157250920047262369011756139586429256264796720910744637671344805368079856441631196271905941389203557502577241772072849501508335431650555730762165972208587631341148049475824197920222419842450091212383999475558773671775739540041416298001341772133240226940927052191319434224974174472520211980562084891283558409912232593775331941967662520234006457687934156653019618013542687734154733668592745408792914221191195228103172401077608593310584101691547557335994530473388841498818079157652312005308695768074238626955711069722003512895375486407217488925537004317625617498752121778668707455654723933722718731580262340598240466916485414102773961769647152159963194351233900719174915395011416299286114051919233731399210305666389725924594088231259143205102778804592129323083879775134205036419128181409733308081379587242977434885087669745822249271769070006455396468705508207464432152129280327382885891457274599349960708764740097171000918633339142979293124968170228610373730514622117302349666410575861627264851564584107024461364067092605802825778492587637709019838600584394004693863602152311693440287195322302887835684846666824464926714645919811960489975536621196777048454732510953973788293434040996759965708407781986464323049069200967437138847217761751917554137522850171767247158815279568908443977348447033756025343125368002828846714663365120636267165648851104960996453988422295510809381390726969993049685960065654236570313825889850060450295297576950471125977698660756610253289539361997651015153915207905748757645478305849519890796361543421334643484682308638657760280193996876039592695516521213426153310885285644608817283289719522228658466314711708216843098296187487793041322356442549355296040188710077541194859445564502041054971279176320223612316982697596335019700715121625971144823499771682821295178795407706606033481538467448813474048225279533890542572631022956298985796956504150259262330529506310362049055985013626242654714785792473958229686087014694365219766813367972362431615720872447879408625782454573290645500913529867874719791358068040652842449508578917111570424980704332826056034216290227585072121152847761402333903354109176774112661155139020462940877016017601724270560905679359835874397314259175551672192231744802547372184088911390089271734833702731455421638310731237517652148704149538892330846230668105886912245003148836801421646488510481952817069759441900405336393106959843094699838387560212985855069269147086224242065303848930765596236983357597035641711456056563566479089179153356397285144377791945631453196569141918267665902755349573347660572843823383519985583425343720334142638241661862020390175664387156907949257581274599597936706053932557154679995540049287062241499200094596320647155567033852856309653142467307775245842449662436212619668257420850398521346873912016777709035462138459829976927002497615240566221795781770755343574163126080721298511028969213782944364048713290555963939449308489717760041449117597242930961648896379473700912516069079361795386305208423428879394534879284583983978934316107639681821005688152293301136925546866799815040779707612269502136154774475766971790227538460220129107987919065682786634616165117661335036648717957672495202593919734604606758232877087393593396166018436637923989381791338934396951187668201841001550800893760973235943787381796954054756746337865556469919370381070501740275883169666498520703266079892521931728120443850584936377840854221491843120232549917807420814389166180898690546242117898753719757939720942978277672346843003624233753243025218476634360444951882618637025573728862619043542121322783518060209254060895254879639524080854300996767720402562003557373354506481473986500666143634102896738276550394176159648031248065841353697939192943849174765320605379383956290930162454006137165157247213638404518910190672797854639850281088064405420032064808950162900271279005023420734021313696780061318037168789798183862530500673011378282114903299429461276267485813625528517203542723040440178832011598070649507596074466258228970012696274583635620912428924630506069787441430534931008840730046916579321809293466168435130945780644335170496709980810708459886438507625002508851084318388590501088402819734024428889064919464805755401261993594407773482448797039123923067519019875570914726203893741806883461240898987844825753596077329396823561187537836090386368610697085710971732801027070287219693218218294587379139341728051313682704024881576547440034707750973890958491644131322176177578641511317527112160445197346420861985855627424307154610086113330125890392414785253573667506986453498237048653576155604224941578232484741286002257975962461101402488612310703778966014188261354451094692881592348287108704233303291399834335447033756006038047075904798229940176197891837433581328007619020851398035878484170630086524680794563212415076454149989847189313251704647987338155810075215828346151297675573312058273656135228516864665341484656504414883573827761503068374862511858462095744205456211004164649055444200753047980943823493302021769342089610381441872502121131735107614643706257072009097315921735141890297610801868582541206232449695737349363146943194655153786684134077259502650731415550937310214344825130933148627623262787728707935512230524980447470933270511159623458720743240818835485086024030086235502902248630296954955311485753200146234926510515025959592459803707555271522610125288718847868956882607805233972528364770311844889861647788570696019924316937691911429886426901409962785586439926531227696844392780490188844541627583294034206662417894288918444565589129620399420152266188403164736637207945711366758066608968721012704365208208762283738013863310510065642970430881642489450960578901518403669967812659480853260282068703253047145476982601122461166929816122369398061114392184400697326480027454939033551129595022529030002648062991464824859179606766531882650608299014741692851514172275325741099705260996784105545121739712565281548790529849766797131515543369893009516833040298931965304175135702818821144330322474508200243256365942968245193385042349723406579425184891926509714738227287059306683170730759447455269838191899132057996734114723289545339282054453871511907381595523984209594319341253965013687329050928017736286785539888820767186474373585565430717025182093776980282645676452610551297359711440362063426802700255831815065675294936334156802699419061902803564282528724580267386663742713623463015257685215789900345953445863195740350759371460896764547657686092340403546289250048825993565041416093523349169620658621706625734313359166079054367162669845611138206152080035700194125122261021540254464970503584374754592240202715910366154503199566808301824285903111429048533194364983607336833283523002647617335590729429078847790886959671351430953942059354299547166577939522274519763896481267135856329185446568686423458571283995280286686065682896607712193093704389514021577613199337070582572456626394011356701100753118367372193063173574389601921430140904015294952261928825659648480734354029219711730878510570367336815154361545547323515528872813499964227550907459827391969007049772891970075965675342916797003719353114272535141922982056873610232020653404316423371127777483611733652542552201045964203022317012126537462950068092917144287845762269104980052478698678164251737082995796081910756973685830048442549451730743544426022818011529099519255282202802965002439583060386546939853210330811316765358895762177775962863650226809932141180222805908679959438950380884815152131964893185112867622470624077272337660064407099895954685097275419277642685129608027090894164923054795136663250201403482981129048535235140015019444785197151487173778672445743928516022656862708948088702904724980428890944571061279694189306814040015078197084326731099652255598817133422613568799847089733429029373267642478523792116252400913345241703793487884738910597180905771166461823696151480848340803177304763976673355819151966376534795283853734683038583037628371833111577316882321870118678753203647491864398432381276354177994726740720207803335014591440599193259223220680656315976068591494095322844571689526831288244673544281218387970478188062106382536611525644463127392318014714184749154451736444089014081057352053232905421519864933978428505934047839784830245603274204804008063402076693955930918776352827111764826860769737462320791562622777750296931547250659223090927020348160859040818033924497098905775292975306580298500843406655206250265154322455779096747788872011313072937816736749554432154378017943795107657127925461938376925029242569953275951160888665373700726451939869741047204593121915202577466709155520268983572130649136430610497401305897795829798053635863659708604704914858908963894794196780468685077585768612886225370085644892999748212791209849474413659662462719559419988365129047550905826998533061506289016925787505950965291706023960236048558195882526569393466880345634758586340388122039855814564717886750310933952800911936789656318897197014585171430029555187472624506949641903339361934197217607282929933202596318816003135096372028877965500693024243186763253904035387551291637599172695503559080947557228681612910436519160192494794894130479868335244866459139236100723014994501220198812029432373442674749030543867169767984879466941004058195087194096699287182691405584859887588301906930598483788903418043822091061023304214381953534545099088762257370432543432188969413902624848674478356613155892829233224649956893836265027787846753661028587898398720308191365875451672405619143785654206005339126834017161046932286036025567618442532794734345266491876480813621841241649029534545889787242956845363877688184336688392190885068310493459986381187015847891825473977868334314256880596133936854493906992906376475731718828094322119068194422510704262565353282089392123426194872605218647117384174623386813419949436091252874666973683496793267525854450302413969637546764576433246174783395439697583686104819663450416884407645565915434338900973929413259630154174833436159332207788200873258399522193067831790746492514572070475321214059481907248613453289096054148916655660356389599529386348602454305314715275667633368731998444150731543944006106296618725937393974076868921871697816209512277600075751054765670693041183493466953000755884773397442789309544898057772567621660417511318315234773266492597309032316545829631872181406552198170170889390717547487924386973186108210770334391497953002591819870845429106533441439231497850185841749809014945454529890212573402327298217242341514761095364970399770861349266421635911378540852996237415182710790539421695779593622617633317342830118997283252274736404267068911930475277573853565975586152543475658486940967216917523745657541101695653339549355022031565380075791467350696080367700931100489704988503177256806720715884604251562887040372879542520676288242588795067205936328550289530501995416724296102319451384165443384346322022914969217852164701148332996956677964579300329855648297325423550251851786224302462072437883177288969476694816485677797622745142590256239119636962099777734249069939421073820403581283580252067840658069208655822737576947884483624381114807773901719416138383646528844506693038135663221611069557539901364174435362569242305030574381040394457169269840196288442163705472535239288110029831730627761184084964975140451271057506454505591698339627339016863966009151258675733645296424215816161013750208214402521833889369205396966322144778163237401984020674056633055867293200971536546843328719785649932514137046944793913470248000567133564449053112817923043629310427290910014240785269641117759232374774511239869925635429457685918568356120034131135574590301261989625248880776585991770988983630092842824330375258678662146188151808019922410214544903181578839663978784442917346656583020467187743043098715129675597023635699918204943917096370243373068995048222956550835819700789286283759609003822058744697403979462095828316797164074787075812409658131037111261543086690783670444968344991916211567602241095288542546116019050056240956918113381149504347162454947186566808375720009035760057517975377383689085816942875792727550681557951347509669203350505578362463953516404598873600689807729733625027563245406297542733235462784924771834428072478415436936256832879341683324048790286515888135040297502716896252214187959171048786503916067196988212505334295386781676433175884947018817743977720829083464518895977672801498213658496111026872148610576831041107777888440019100707031125613870463939156115585411218263357474154188638931809324906010742204811674724280853355238267452840543362446797817964432683247817997161163981707915951047397784911240955754728858085117711874013067006130827421148819838365126585840324136291226034938100452523681009916312997827524762583711066170631372719506427988599369758975416752785619560778129713223755710726638685014637065897639547737194322117534704107809737426641542752827684810481296994230272882562507277159476180069066093664762967365226525411147453080258784465968704116877308354070141587410144449396911784632452847790182974692369760963429323126617667085827196983038047605186414838124922368197542502486719053197362053414512750126457618358228404060832330274759404841767515040336092973530179261975881980481176080067069988196080344536733009726459627992082555685460862856296591724766349536902494615965323666350389495555270940762531468817668233881496327318989219419282152155310380984714371873053118503206903535403359088273417843213944279244669816269610823630652470919760006416470403229835708418227970657678995574338432717249576672231061194727886812156207135455032516785671415518842379297324772753519266024487819589763574245493685058598760084784704360299777105011563388458481991205964131797705352654892401385831776707035955956360042756455743324358023142900462392972644711954757767292419709167545818094992854487703257941048909522502205659521028047378947083150958527086806668065147102462702073880784517629559685629841273615707052657323235372070171621847130093910486012752492505067503647638475748045225194757524849255543149691575730896811812400765887009929780096630690342252219267509548808847640569625945979224692286582616396130608471430050053651232676857185813736995473205533140823902190877190164641216086820035942716805958044709137945966449729546876956885181944429353240483525309858699531004433736250136001480563988770876255956369148895004175289419237131477981216982591098612694073669715486902515812868468131423773754777839590314147457020559509869364669953344402198054282181266720918567180628415777289351667545512986104198320348237450140602159846688597783246498290384634812299936327281900008477986076360106621457897621510882530944917220222474230174680051153320975623527155257010845509000315285481957678672148798645410225649946107524582189416953016111522245309539695360476263453243191567604094979126914371830177627107115760768403968884704450579157688809707958242133522666603060826708513043896518920571932162950871858075559092666960148835521882579173044573072099697767786668257442803985232908274787818535165403979612332066054962761965473947521731015516439686820347594327972873582519717870909647280253754170846743552350561476529918294655629362763823539202219011241713042928352268223597364838738933832200308169381824179496982382559804639673523820742512971861193117127785629176299206840927513368626561287813572335264193297720167519666818647660142673302789955917796010377918525834497773925639348971914688884417844226411752137469718500071067147994360375648296934888462635884023436695763399692495992008221199520962700094904819986314711136100621286695555081855572228123822352263575375835011621667461927292331259123282245355842703127118986309803455988145698470487686266740939501670513044323686868029746692742059569867152341596722554594072748793183573764851937567702381718077951812607875459325136085710559656119494917072146796276948060733436728355812858476888077301971606373047992063820436658936070466495604482036315894993137487671951077452613040431191085247884713400626202639032550628273448603953828972426414317203090880595471093587650934777192800716389364938866108509706312151653225035351581135935330786816370614908425282383586416956624024931401432007541535119510194282076617698352460479418146665996931055857870048453599009647320859058789210561760746348464541044991014802221868759277538796080828186770283174082671084723541519882924636347664154345661067869394198628713529765793008237992099569066660724195105977733632115727782334138401341772772369166375494390846964488681311072935715411930128475502747581333723749230237152769709275032541469096636382617401983692826021517472025825411711182013422971288257882339676122685552635057760204080022760052181261684308275662155711994630597825100617799807233876929483918622080015075630650670445859068760539674392847514997327531993781957536740623463409828502793730852349261231579707177444210117539024795737790282360567310244769640787528564425526847866183073740764967331164122382811830320896769445341381628618267029601261704577741977337684212041197204734792032458200814709981723524175988966619014197248063124546985617668779199378734716768635713629914260222350560809504856815892771553730626205179296399323162241832637466507377428432567964273114224470492982111649427398056414994499586583210633585740863054678267833461692770599296738706197519331464854239562665463621864876532199071007598541438508749029397231989756142801696106240809465996069307724905628892517693110281243211545966774682949403155207613552995617149695149653301022230568705027200818042193388710001862900801956741296312103853688030119409993383701101922142807772961720586961677371446160425243812020212294439143499427119693263650414735256054657824484901327930047000476514838762054361662460370718601952545425770827197898465130276096260172667139007222283520425382692919272290271588006097827027356820023901599037814883211052072547560585853673548395066225132260472860972305406703330276344094936868244582782254735896244005553281630856624248195541053949938585455883352759154163104725637069477811060143833553143064032888185310225921831600140662846822813314614596510133925814911461599482703741115368899902113838823728116848482086718728944431890972008509728383832938632416537965029803122773579096135949302115672203920490994018800946449931976166670401847795191961580599135482510901174727353385380726050120517253199043657790192047849083018545237939534046017879580397441730491504081036336232518122353005344506957024632818830188351677718292243102454595126037670712220781270372119848726165633409040657687518597748244195107295234229457305113077764952947972747366926295642222829288761560420294249996021235956634500082460168332890261512068808641875931213454507899680983902567866541044543033778493991561880243150429431928593412851099393299092328493372462470526083225255632133864536694393779228027946070918250663639570389596865568587306269090835139774608418360576428090183893634832945168922744470301598250995907368363044871685248069064319764941172551316414141413112705343655998465900438459479222270661649830636519333709474128261402349579892412964647503257917540815035105669336033104778797065396678297046323136840894453138662282774087427388473439371921396530338387321748189674939424410983212600278234243009172250313991890951046367598057948847076375856884501175185179167955237416863490572589129545498603589625388547890045647780944406498927518966546743355531365665665969255577563505862270409815383142240639992554890759900675189371944464202348491188733720529038157325702849585327301728673081361480995512086973454919459589416389020563987114106201412866847557402448838733887733122351444618966764679759353407837087602019432930192550057541919144936868592811720684069872058453712406357933993396640769406976989437244700195218742790242070454995735265669854783679699170729758999026569711401693797470045168722272389886142297929677623166380661072565829973695957545141990949961668274370951070768859814208381051701505793559602597369980543322191166632722693620676377800869449093543638467711083199557027388384215615687699433687438769196946383852987934186604627344476641738591267344310761930918739289961018948215566831840638747310707944644170098150667439895903763047102816798562205412389030324216038657003550953465535698798706719300855353372601532690255545443236717327593000547738924863006302012146196959783636437236255276665329601564311561009188541758460100118652285051000870753366845783600610351486580843876629526665965841989731680279038688159441358754531762777731425668325439890220518963808238469026891348123187661730211493632386266553764563508232788045074115075043992752842531267500872331517218742422739472140649029260423795749595861061458654050288459459130450904974414527414538142682520923347457008543592156030823563387582036475570606860732864364164744686823048334630563572799505973509339403197352265400980643571998573018710776339923631648076110614484475295958587726433932609316234136164434846787614862749425452177703864485698582395624912941938247338656142628182706885876532718303618408345643964767465281534726856754645217753879290118694610355485255840243205272146349856118229070638521677876671060817377296952983631065109182644926980712452874513885089244498564441408998501329819330642727645388779819697582285018549718261117397545715467166596936635444743725710422472423503258050890170116293947620855795420860743429705261058135180071911083988253167097660219295379357489173130675855655644780243334781688194060141774512958310385114272255593408413808244618677244949781708674591182370861869394599365698647167917818314072087605991085339937517503400823690011218966768314081345854563797169866709593280245158352078025053547770528581555507825126353672778141003316113859034424504072816700375040234149555620617017057599850075804456707432206568291221601201051903966270439656400898200130053177355621433815914506767984453822880714927726140735101553571598392844474251507059041297020866994696246616306479667137544983726503232278652719128106861251785590900856052399288429530447956203345400135520741592316307008672422682604528025949122196762961256034655612502320210683255642845626749601613166392013035058205808015046723971613025798715022316280515451469583774708210370742826190424205288882604125677478227990238775786134021773493320583777764275944417032035537937342093855208968125652775800616588335678640553291470590157963496401709650291526660359460301511569585226770645789111394253827629933898009058073140280842467561410856671307974112010020003358554866134287497240702624328463243829367131967326175105519131317825447645017040283581615685855209159159683107110379375924223567940762550829758123728196512319940681795011788940517442546987408959997951738935183206382676128086188385751456471698181442474109462908377411281831574404052535151734793471219315272848110588074330865064548423606472158120479238385300779719937155939819875793719862420243365831385187645072142150407666599067957817603460425436111978295496499364722598356820379733946483519172758063244137094144926823450724340981292537112871052558680961954670238111968804625295764089823832662091988756104714522489530379314575995488510617379030675236573854393404835574239344937453950157450342929878943902763620437431349237156445684939681929212087533924011611823688087138457780296739342236377133937163607668005667639282208272388961516305134318034680053793968972964908767787151982467572471710526588233235434768920213697443714540860151314193054486078932393172215700344306937124363182134134179061758443214508783645465754071736387010352420734839874915904475901617312132421858672237065246082772033029609072456212150181612320217542239306263486764039612285741410391216732421515089901936369589219719974190509207512466811892251166424485633787099605494250624700686439526283648254733918913658337698350446348896010595894371871571096213448454595243536107627810996969013185501757698511512330643547402127534407062055820576290699212374436867830802657549385747936660824617471515112965986408526604115377431435093738603668546987675957267022807124724719043133861741702206507055881210973485575575761353435442459113419563197057150679714176560218394556285778319944028587266607432148864638568099969004890154714965919534891176249928363886576913812836174311056670573619110691820429260219094543129368280878925818298569548666159814180782642915317625439797403358472184680291742458698393599729470834253591260401006655850798114006493170374729288739469024739415521119523907413217573549566272038245517776029368316092283380054949307338355147594668073540604211404913614716489223267768441760462158372322918612426758476922467275336484376704858843796126383456885174000646651684409753104807472253574555674822782550207107827908286901362552178960018745513455880755370633329401688977291313797345214357074198982301828974786114666371298024207646735501676796263601688902162748612509088010623475721218965234350948266714770605772750693794727932852756061042516277488378006047569520265747761240382303262881575008098955368003232212442085356591600871064738182255821206753758578063512778301457409936225714051123982065333201715490485696639943985885166767314944242877389572057726993712125033019155115557917399389426733366636226805259099314296948229247496163630931343497170258432860183334057437133760756234757291176246940990090890816417844940718635627279116671014876840755050499649809211007791375313290115979010225550955016738297922491375028171963961184451009919998963508556522696888307396003349046485945509580514920287420125148850408839080463057339512407567268186415614583729468440458471196143737564204803273923605249507523520308542814663656784176533907608780744881662137062982862938654726870814393728387758363045274433303820417367765107165291411997142834450849206513868955845187886433848077106161001588655336280662228909344434699083830789051946896577635430223199320190462670019240095467628175301126469549955043463157728015218901917843346873409170159418173244562516515031399140015938738409419867821207998758443484689934751688601192775847871198944922562423394497351085249361975852142330245933972329319779215096051653536558336786902562004767747588922849050941785063205494441426938328126322869353330023745466921497905712110084397622212657680461561888216119692791708126983783985422481661022749232847515270046608271322745035955260768808945919321055099640476596378205725426214282963108221238576648956129607936216283382195299097047426027587604423061936454667403059521712031163359383086582040290723111228933357479819116835639870493500164612936037136810971551321701537121449720164434604779957439499850591322213808904886295091990821989808956812125774194253433677570250171538761734674067854974581252201861350149962666522119347740742849358869896650520895204052168105993218188023019069345315200422200284510430152431154787742382069119075215451324563344079155654114375147339644224450661513095229842885739582805443741132307891657758617868492918121487898378016440799827881310911777955272110914832669317418031698448636101565593968135708236798701977773667811448396045870317628356387555198599463179248455141859195967204433698437939691902826686228797008654260586807153243439520638764510788107376698877251896702538055429653148099200385714835999408749683333906468382350720665446854753674187650379962279738755908983848659193292672426569539325129439629941805265347833284281722446741425663367806320535890007132343889650792720579749019097127030616717207425313377028503198434412421641157384134436660864922852824200149005333685285015557148555893031757076964616334853964166155378900200609704324782131464971557049678040341451469204964317033059141055439204161404089072358640512294124254465785556406763223655784964900038276270486421929826633789286410221991919802706512857250725142532548522180017197214070205023257687929663052172891081772540072728309021047170881341335455415567336785226156445831945244853376858502475604655999501430781126414928550668037586836750799070869050299422580466596972156803909865913561696267859038127434814588449771953052762190352376812923966766782445661617737488788504957446342613133677256883372753560920752577652527051328252575146982365268625248979425853727345997061410312441056798560268033968402558718539459419605992466480414388877497249206116531873557528006146565557152846566866625843994515710242124825381727821282523820774505661514712167262817398828956560161455329051909787581555177334130389484265956486041887533354948538918564797923058858490722299098336345104083261976541722828879014558384063130331038131325339320373242448782369190093254115069923391449456215858263651098904056009143671968190637351212743019590319429442911478392263999463883732590534909687277254063709452691312202313110876563639724103682135480809646598554979308772380204990718111415831214208765245719967387352956730731640876881993313174862054409467627626411133838867563348088921732023804261824975327814878098980886382401860929593160701932764585376984160651307991318601879945439572575255776197512435903761216926068720711563473509888909912278441953188451487588396674403348937894979744424485167301149276682739262525215885544770296807474223288201835482130464073080607757632093921461515729547703455102004170170788881879605134817050868581807392533318546650143467957071279290437409312057824530593279328312517577741515581533210166643837850508244699514483198226312013987071895871124239536700327809517755399494848294624143932459741372132955641834600238637472672639624269064740150527753911114224360359586393383908474050368800796084466151976781372023144583583502673513963303217511271647566716884501978156259897959652970733114450765320254000479161953688931363769583441374782739463790958368339539660140951613509557613463422511416463114777336125860547241395417193257993377686705330041873060329861526672869037559815858729988455546973854694553617641386295561247441324225207714679244774226326694333810843198456699389496123764362657368954144740103884589609451272402523288294204614945178822442354286051081256456166624017578240553603329557316378666796020736546818109038438333129979200660270601026156077537299552147765021499345477611263270448271191787844852077763817842400864963550250403047620219413129751888117648288403897168142687726867980209744558328666165480043334237944794355107427002605544826557641568739250366061867327788087592125809690028305101440990746114657668332036489815459932957396487739860928543127950312253066428834820870555255472013712448678133377556145211392744188556654999192026930097790218887285775067661874942986369874301502654956462386540388892999440132057186731269022864301303283494832796981904925925565808535096178419143335518851791260400999492561709280976149130885097636122606575224527212314640455346855663782100098333137065601130168134761050826783160754121090329064040752451060512554913641285468231410475633131294038042597789880580155747186427779500066906904614515247538756690693573069917167379563368579696151523450644800514201827026358395673226051861051723141754119593229914486080041437963676756178431338892613689102502371670151215811219874254030525194826273895528179189779933343775449162518516674288369764333403013216387466553710028347275287766414157579074032492106693285851437292107905323079330498955932000639436284210759130610276185106157465165116200428154685341412362555399004134112013833890942553976383641381069294509838185052137546543130135716991982092104719673384880607062295511789513373537059780401368563052181487443620987819569742910759764612023454878889304042407426830227940265194826312561037898291760310069835963363047756105982324853422788182395213289117346180789753321355032089437579871561963443418914247706001669915190406190241855657418134716951162170449749450610069931050723101261271096890341683997935934629611698135580381014543532128579623117381317513485942215538405331131889154123079705239867327175860626944076208675100898579990937345081848752296904351522151129451034924676617923746352813310808668338069066502674364297837366831862510104981262239161181824250746097515658839455798032310893211465689819634484880053284919174263220855642467182113383859274003601803565467350847078813274552475499625687114872072885752398751644340299470650351222981637197261166671736320502728671288305050971397968765615684725840775720930435163536686555739198496530960830547217104450740187653370169185178542933434285575483380297591161963986643947092648728823831156389932908648489835816848973259546275258245098023172512228628066040523791139100370923172189366453905474288078236229430073034669341749906282916326774850460583053411533084655665405129130824845118229571722614106659694021510275097347955066857917930627059889061433893414500488406303653477441939807168637635959276481150126132410066250225688472247276024074773796258439782555247140408644458945368107411250631409880303068886640445532022158393080873523585434345204422859530072978297616435852350789166042200651088480410342969994386515782752225838329054185041684205493816117706738569587489721799965069411216712454604026660455836527987446843199104354210105195060666455695354717589821132947672569784893286194185330591089892587738129761902896165855603492700995390827011630172841916733329247804076805384910149184809076880232258356143750162390826521278846644066948041257074028760601641637889003982629485937767030705279468816855753290223424940628583312188466066495676014316644571165237072762907360986745812960657545289805501515546335929591271598606709813377243477956099100543293791651016598702999585874680882992682112360675226961529535339393433473687068927731370783388626122243163558611166758781118027315847598508069356247179409558780639561406897608903485891124409751986807682222021404705537254688121844975546107681450278757313604445299657910749573891573918607501585448375046444954091817128358353898603691866888637604397612313519905328675133718644774069015612399984925489493294803837858938971441094698703373733719516563749440525854413779178442868334668414446940062404090161293864340468321583962958110804367104862247382270483360825223894220467038489428227403554233298197053780930509807644006263955276456435863728815780357612512507324318706280027007436765355619092949498036006343506975740174742923170947746011677366764853123486273646262166447862221861880121407922725243495874810189783319868911498492652501997462148415646171767892932997174464566829811438380961358497009318913206752573450126321616086421422777241171737060792109953869284660175111391625152895457525136561777236300331286767441661156222218871710217270237801934071538416467801091597508582323810097995636193171544064530096364933850258347167379777215803304992098551032717781510120162408622799496913888597863748683841449168654066081567117948892140581993142043726980557796069512383220213121734615506724663718937548770419894702525189826588091903736324365650169917552794279653099245866631918902648115136508101407227007679830955268662181084455063850597111383284163833186008715931923322338934990516812574688450324508390461704715351832282231569260440988179081991994081265456007156832724758702347461068915995801667577849876528252719917380982000846740384215012904748947602016476591637838883030318330256688926982913578278843850716550350909197010413497577361313712482730098314190613396636398948743367140838868549122505577590838050791443747792216516825839249501938041370166254926858694880094821996962389492361019792077117503455005200211138325450394044217522073091668232494555125475703689883045663488527872399006603634163883326537903152432031002350798526517402108265735389391977717879408392428262768808639853114710007557970292765972781524965170414886648328696802916938511861211990712136185191497767706964349462383258309861166886546620067349784674918353129944487979931896220798429740671660990287892479065719704808861392904888422132701531153762319432527824806090428360369399721929372564651977044966838514085243539881831147800656614790640699430096940118809884310876569457629723398904990974081187710889769400672228916213442635309042283562183144634338901322438730234112401994297178061439260455650019925168301386913302062615483766766917818220588901238921221288505082086512069471899791958390248796563099721325604303862265588804756503443753893787934137528292962775626427655594794312423375570101084383813690974422393677903601254062521405629024343323545077506895698355231144668676509194622703738052536991391133398021437352860902654156497126951369610732977043005397639990388111787784509217162094377549409056702656904032814422392902432049226718554526669866224762443450184963100666185973950897492215422433468061980295535034937587860599107299235371510844898457647580110502216113833748558995622995541527816456647542222454129590434869598700287378203697848687147805904161510466290434846906836611314759577574578768182909858113922890072855869761475877384104596761748834179295013508356067930614782901157345310339427369038498608018494092012529349435215587703636966667844387271754380878478230337686474988031947052788933592240482276792465134215842330046088612654288115517367810648146681207746034967219716097761403760006725244380759085922800933838423955452408197677891786492671248212557718043681346681030944251652062798743843436025448242679831242539855729449158050402636009808049647187642777475975976330325614440681710138197434082861762533381139207619468764663305443762742430087874171195049508265612169866708459315707347521086508050896666419262516309863859513851421893091528263052155398300792670779359506578477924203309125180036441741191394430363700507083770295073473205228459714497767449931322745529345723570409561353514898492292183387790941494399610469045642587801494758982183627506925420408707322034477166233519469785895634106485430690315079540245732098500633734004796334239717081289301227271934961240550577187649765550219740383318012050291547674901220971017631045395260223596435351933663307782542312175706595684795429669917099131368585457274308574665725023459194299490356825255022457554276736913365135339594378513299277311365904438676375940059472047649881085187784551389715754897556920144574839288516676767583187193116087024968891776872526127571945640295442475794461310547441598766459983424576110831099037273394886218503939434600288194991124236335032669626640552762161253749927800187660010748629724839768366705858824376891896401548070578855636445338290296262181362838613254600651357577269152061059517461672287341459643504958232750768638991069507038018639974226826631430579338267380428980931987486502753445489978662392785615594367512860622037623264736344175606011420268853073915854857267834833121356740636855362127411000848782585231422172227488486181829426738795833909699832681897719674806241740638211164717197021886418734730793478131663051544060710773649240089923834974833891958195982830843697761667750349755380910505980241225882891067831120802098791821647691894211774934753974876040488591713892357754392196525729510798023565220722243515386792193383201280168613738339620686868928720495427560720737062622368456119424327992530119711859092436695145530270508827764134553260820692540623562144816388214232614000087930595848983392759156496442025661203760223880065837945232458534279679664634093379136162967784325655023196146219048350125617719580266429813069824848553526380690920140441385350903756259493044219493992902110282426228966143607264620381852852926675477388354166645622773493031881703176394094759115427971014913984970395236248393109110619347717540828935221732241869716886201972531913154516560072106596641486724191792099135948252713645165106541888296802730735494225471185943398495852645495029923032558694882989749394366120793972121364106904702779752007166302466644347671263390374185980822600055405596420101173587378157904083766079271778125170444101490098834772444701824269307461154898370980021516969842022595961563988762416547620689745515685812726471681581039929813944099465985122236054566710768382550338732284861351989182040407706318107741285260563487721363954465206008057909781763942180695383487126218099552375369276106901411359069607721766256054462506102952458922022779860908330993688844924772963365668746749657160858123142115989462355452245961151418163188922153262530253339647291560378452163451127345522021559547295792337393430238863055316456832415778990022882964638876997187001297859887341675077029987201332889638044097897625910368985567506437615583120470712549914809665616977482870096074269760107022663265265835606226655320957935857753266338639681518296915252604000103262949448450670728090634038769516414351930267576281577086049883933944732163262725549955665066823194611592623615731938337854705003375330249860398123667532391671360048810330448911453032520224784298189733840920515614463596639538614111538021671594403649233918431983317977183853898424773760133648237654273214702467500689736668346981909659815967053171298637145908510631633754186489657082237965697179280420802074445908353718677411274396019964336049134881190963693060701433409607382388997846352966593424266017789499198627793851981599228660337547583611012100005568997286803675735989665429242790346839708997562407582614552644781940707969525818005202791397564853370670831281240506102791681882135231382751294309978139860427902445214191942733928887152081992394639960196149058076313423685954209432852469269176683926223917356163836965320881654444085397358437937391903536451388489737364607798322663379338694695366457066114591090047389429589363371250034772573608751396903074947033599585594478691506584403510654574940083993391044922477742296590283849295801879076914926157079235776062495612445459221738776587134253892967027513069609414209100191902858226674958031558802723096906495078933037436972885189626346290853671333021407040197972578311948696738562670302269743566101486399669622631553546368669538288510198155313089350513455372400088818189634585208928931634645034855141115702003630408753855755692532657360642915754342090886403520899764379091977686684674120824828223278527393982206250673459070486406348586575983400203538010954603604990827488061416239937347400943889369283077130265214024971814895463261178840101927474437914050359267496143494759317611223996686456689104658412054950475903643100458868755716818437271798461112719103651615856818878057590739213252091490210290183478558390172465211162370057687257536524747608753390880445532123337362158711415496312188350058323661973280896683857121658208413534573664520055906364234307008620691470337067797363922261234656797951740452788469225503282823055514378847895236721062207964285425476616586014842138324364590134112735174034825904800162706417245610489084331642103117386299637949008547547797892608623250146596243682242485414039141920365345058147439326163846211807904211309461978773712586869917645063421114771644335739510684648625925511034700409017196478124086182852219114129861116381041277560401022130431461144191081751601304294839520817755590818921731124963672704916375971770250838899724700663163061898128691062364703167401407584750510592974005959060285157786435512806057750473227926934058224055627627057887319574975238477636488957093073345286100408877647299208214442747749913869619770624819907337205120327289896018244167609376045468106178620823657603754682325216281722440070015235789712847541977171114014960718590158471074371357114684961606747942625339022987334058665491541680266105772612322532647902134096476951294792256697204036204056681086263469508705592764308391091748672991649772577646092630624587414533435726434377121325857926302344553055960006679427670080560104989738540422688374091790783367111858776974557873449541993519688787943880280334119366720966692085810048005660348754612475159262337454852377819325683928143186052033044943909822091832048293708502345787925960210553362025151665876880981074577154508800865111114450423754729648017908768758167275334933050300860810143425243320489319224382273447558701503361346832842718555819514112573378955372749157789704934326386254241412548491172396144262879817970380955194517020293648928105333060615560938283301401752579628744900294578032363780815261181791465820417266318545892716744356869638689007721110512104097308880609421805633664396214630379609817041639932216471055597870221416687468804978650689352022325398475996165150258278452939971689245424076355307580580806828444328590916789650240363571020913985981803476237984131488381312347607845366576756480527128327210732133117964996273567864156027989141292130012648630478685457630495996563791622075741428177272138543597126588294961167556275407497723050928117848142950976013442317980871521441597347386728194942490438620456405303711314452234327355938852608880222719400711116731379309899224016327658986874234181239577269374636900506872407202923129681447642986899157707082744825731366351705256382047130254462995361284771329872798969512106557740207304921766226849471620328706880587621576907614558813223263181551354146157642079562566500426735580175977422503898071386853987325359542242162611529224196511367327473178692392554987782431875241466571908750920945212537060385097793925906955309661984013389343466273960907333140720770039767642234630874800482708147234248029268415026703769807312658608677315577587210344058755923502429050571842324735853291374070727439506099508495971950645206568711478506825339604454146978098437970103959232660074179463210555724694154052802340855574045567745383540432859044178422218554297779884748088299636016542109284382664013762979182883302949980696516151807174029331296894638912785897896038198253298594544796836295416337514508173892881187351640841671677418536082255312843473144004424586658236046723247047135849569031597372827507083370707226084333993309554600572785348589799477666957892224023949944686759909746728406666056398729433332851360686799086545890191773677978291554441476855763552340942861175551102476439410809265933222704214214868261858185431237485153112619211481673317298680484016108575613291175292571591860221852276530255893442899702217907066060911390271107947980939767370130855761631756953609081882314852149614343887473168189203807369100632174407535835023602336448813725046650136316209954017759218923520402986883175866468568236360369625157481244243577884921132099038736983151072208747117374313998687064133920727780344727206671296341317839173561490122367827150258826726741069857150155754905954815310320005207148882376185825048948872792694316856235460900564608813626816228376871963268895050055955574397988024792020519043919451238309550483971270402826225797790444580920793460945421737815873762296338194729358945918789226112096066247930409125390673216986972794410917819732527753131847857230743982714080871950254790070378296531534035066898115748395211514805171923343304728244240703575618867967412046822187214159839028724027625954497166846614829095216345866294872791598549604902128650744812109977330344359907110863767655213449959556303158597007717497074877468777173188985760292104152230350284393913848425539319671574973602973505716092867017860807526424932620790916791544885035585897053414453660560776751209098306344025736256842718250227944474878480440720722656348215921120988227115537802602233791872764957220582791665967798902358903574590542332001598652165363128817126301198626790213632927405389673593229345955773002416169553640758600395224924122328991418037149252937495723636889410084637453565646845762417344216715669462114039580974814471698756186747598741140501252239879830621699859615844734249012000021661192341189571463625859364291395221751854180424600934086997381512153484659667918330831857552211114958409430591555744895007502160754994796844658056063097329412143473446214082443085069703092817182220133683499339430363068974669606843432921820574703259838744177626190913827228054778814398924755477541778839819169070931597109405091750535305711183052688233968474719018438205572791247823016375032688280653067809869019162973990757640846987826011872896714736457423059623578113001551728524466545539524228383041030159048096021168257451283015733182669519716194819820890727017654885323545925621090938605807648423185738197086888054740957873340000980393828901401496012249964857725276210113718591837956852711186325255623196125813381847906300803608435173901819643620499679395019650692945392583415359984055799944679861397554042589715856916688479088500765956693711645371741254707442060909128157506417878866886025007854095036182842522264740502645241476600459464158866210312902675175324767486273761964939252435134987339360536651994830648837650692288585257368324742019599581180320773347451159319806001084399548958677330946669028187341339923867768112820111140362963007954709507809503766918296443370611134112034352598741361132813779138411884330519194445629841516686547736854561429714806050316182829088221963704589297887628003966488023230295207909263885992834309088304665822502344158627856385104885067230459923784921724128002352939504844236743725377161564979157751026616520980604131802870192067798264022609332887561349025149664846179959700043706708613949331223129415532601776046840840427717726344147920921436531182118884282836597390557152195490378804831148463772678176834233387937558397892314459220766382176245901334163715594661628171720793302054097682273298309701886019812899643008678722061576000928141348149317785976367558823221960421888674307701625601997475720090835462050945256634328544181290258583659264125833284791733761649693061861478562303899763685644264069904302853846527853742106685032312653557584749152504152962753677901858006997418761202748171717091564944591708516939792470782290090212549866877159263364273302070552875553372990939424851124885805047364346851226168683763068719202293193964650521724409674966470324647871411825213910422857079087088386373350392695225418708801518276776682159423120200795486389340504731992958460765494790428874110711474378399317283457843270532805287830172873877023432249033303730605081136266095597366639115166017661094560805549155917719648405906123309725266575574308374910025576405432742598501201390369785080812734954725837143725416815737144015061042064179827083765570309484679028197655713094261207765101634339012740127862322796071013784402915187679288177085634022577206609873386735193128379143635645301778277769908460253701361075362755827968360965434039515784682511907245415320087382753493691696051678338689833821342824386472903831702171042865126193074126505639355869010622983494252763755531559744745372940614017226858541926306480211269714409355127085390480359176128151439518938485057754803558776332967672880910619653916071060291316249396156166884495255174550053907180521188730725722140945278676492594419389426827513764798524495994199389235863022083481887195292274136403080255974818456794189450745913079583895873308557335980531631662267847775771864006505821610573025381423281675920054234720378160476417767689613789964798169691911047855234767864819146481837700242211034260605168639531793958673010288703817553562497310723800177547258499405833653242147438866809823762973539029949784304719172244199970141129799936754810476384861826444763826717450807082529805162229848711709565470061851518221637833078174054226557825696764120520882647730593149043575545093205413226425350954840519858806720538183759707027253791050217730307600436518167102846844193121449296785559079672828680265208599546615530725914825650091331922401289522031224930651294681578325754270402549891788992266874805145436182527539201528964647844294333449540883443568786525782144362210281124625522470821803118804388711316438613648042929571637313845058536760615041119139062615936104242209267819443988094809026172869533762978817995848981933827923020095515652672395297762483578797476333741225206295381996692075180261241203606327206182891582429370349551406186167596465171003503161116355905362920342112107313218183040006595095509861488921237371349668181863964563272012683450867612699450122502369523777387357827880530392724119098236802273103895713894529174596685751498570690189967307524441925652953027555403208118135311097948910808258407522553318310585201111135573593795820707750374509413985451239967983030711548852113444520981021830433041094041975744287819917347399053160333809489195483867020908434737168825077619696598443031870291423766512308962661063350481294626727205786926094177129941772408266500778031539622795163639808450125377028011206783524670517528225243228547368720020436284226021650493525219369368950236132969931550381409584566529662152533337789385238284254228612118436882977641888389365965606610692184879456313764997652586208554235560707579781049265654152613588165031189203572297698986735259494340123701676664442548090286994119302741635637172899485930104605665942007461335335678180249909465718358212260134267467271319126507539362074401571609498320240850170232897247741488558066400554018532640358999377963541061867474197991188619854079145193559962751358010637779422776642134266843539091685834836895691090697909290896260786424859522654039434927575278207061423253329855896264422368011979485971665943052883565877276483382391485865008669592672344051266636182367482590074066940852902103459362930634804646556275112030814173890275507909362308362817250357367427294613932008129580827403965343517160355981728256373895511380558738606359341035126682557805635753009332551044495609848854148740752431940072455929226220235866860224961686523260159769063756241742785375560882659321859439930216444955171909008972075159961614905244802905146522043769294378721626705165061273539433505660460157838629993553185685567013034283414447494462798923646417366222952830043249399900511170092144898244360739997915068119656938528443164630790783776361224130889348569247561764721611875364244258649993937345727871838925121287429707936432500277041827246769000384192345978079327930725444887351098296341238422906766238421559657041529702285416870822649389760906105172125089174515870276463845553610242271306906680493964448784377138089381060435605571654174148324830900005766247078397086774179671733147478585084405064425672370873851354127531975804234252343465187545216463630618726739577395077287233492918556970078513917567490354079336280514462470548287122877893546445020771765924939341112934724240529037392587976905382447285497741942414473323444315154552511615022384251206870808460818781061670368472358061787270714457778332219763919472101983154325514708231831279690589894881227430587300388140267092055197942729921327554633304745199758435720326701882020192889080243040328814983032080157917597855217875985197780189759017709311180427251965079217685401858582152930376202506833629768172507565873211471147395150825649454831832625382640815810679961181415183001656139206241071741697153737402335578609907717181183985494104314200099728790835766364797965486152154347976342941137119376477794239656560994671298857943633480299817304346260036001979112993055736345912377778078231826700761933636328458266567016408962129845332694498982426419602182294355056796025101615499117978814273845157250102095566149088907731237996855056068271356352322617306662643307819761596147313907899756577547366435642631228919441105628706039632520823875044350088129639287120160530809376677440545168486499789321037250751871865383884121788120580758081185078687893001000954676427382529028874157677335804027341234711923334954000758625994241649113439027458877070806290969028767686682094588249859161330008138462920313443664160920816013686892279273248461869191760584983556580354925650571722562755986376387143266384385952797608866410346220753994976092590201880621019010648387485277920641265482449987153422363547190796565261350991735591510000804687911688789752942628285604286948551198074128831183139834307395119037529282305736334030076051661579993911804008468901793269552417161835768486484332151912972951998091132187372053571830647134831968135206996533983274833558602447288594705358932670426480790422203741209357074164134435243068846873311710073532928092097182406673615060467001041389291201131225279460453023704214975892242165341004018706926650146826956899019615038149911429391820614198449063876430714756762839575924253781909621912309404267251238685546838402311024023641724900917986264022041294094927136184451373378224757446291711196646369659796986125448894429240358653416140316676514991863487495687638766573321267198097511804223419366608702281757995054617694250063877691646644937604029053210266553288811813856549180782212818684385202174174353413408363857907192980871400857084403696510159899843300854053483067573585679547260486016754247011010854158347890853355079676007279913081852206409480829473847916249428520168849197731444147408645694730231789719715363068180083249581974210684632642836357430479499761937193067228226788242195546080150501575186555360506580404662290471028128345660076603479680722473517108486364740369330748601233910153127000193803556645496850698251807810998249074598165313460330942474331643003142771570634884005620757251800285622412852244347294854540807982187280431313197298596165288596436421266744637759742206102156081094749148731060070413091634418470166845840787608861266386636521839104921525389139635133658763467345524531143304396046377130008387208152592675721643014126619276826911909471443584759676857795974589482132131971637646645642476245180402978920164983741582856430844695590952837458260198242021004487645380974686009724652095788111007122244755136868888442829626829158238362481458828070006937286803560288453857217896340301119711722179221659945188421395314546800949540037574463271625031011090428336469250714470651866673275032437801515001317258329466076143810107865355596906043060428557136736742642689300334556568480652177012819789590395028618072772081528946398405548777806030974121866499772817127488577485747027618623382995273637342621114671003193432443919842867125950470605891685825180708246451945730609705760905069778232591160627067986528475682913043554476177476720092078126867181779009270620727368958767029026306765256514740099842035004611625411322366920795183046981100139126104667222143175161525451852678305011324294576843021742207183241750420014761305789336315829287068479326701024579124588033063018480081308612319040420424540822323639101059995661896599783782963562703049419126622033043549841143414764942708272941450174985697279630563974571272762982914088919955451778056722872754743880174324063040175393966947292431453162886674947027314952651905498894572590863191565729059737761655284343901152412634295381916028100188437373463492075633919620388212548867923653395932226254801970417635635592687252117010722330893490450659999879857393678863611652502038914194576774595282286581267189660846491993931468682298357331294102689826837440860400713629127916426611642472517052692815606486882327653183402631500277878515582196936143181392019299197600076931464358281959448505243699925471948935680279653455914101482089935299546762992513439586172313580682171852339421879578274724311811383726366184842491053345055608115246046767337030464562037242487170036406688386434555454164808302907863812460879125051423673301672805686002631399783171701805437249184385984686772812845079976937632612392901055534548112906980557910150443121405379444386764628058254173372206266671255238113634371927116694273678347863340094735402468292944624011412162743650820832857878631874185115398508363844292404182722190829524508465446234324819578891448894452421795158298997055511966931964965871293194063162044990283757106341884332083298119623444692035790530414942090215058560890895711976581692874517483988798772204542274759406111228918705831841171659345142290648127690075413664250414374068268894453175599061427330032662467524931551739268556058935178296911373587528042036577611510193028509988443288879306883684603171917594691056587953100645582452718518316095220056706271314997918696059747881351656045870189800960678436482846686771681972895685090525171424356168816675774230161696440281107300116049781569466835860488656200713836017167913852522231493709187892976115183624669680193694331605966678420220640189667989936954469763418226717792146620724995281879935838311294025577070278459544880689801275395183177437442774591857461850023972690764032513416583581116846616358824183618403662364573235168372111386059578658961066244397746535719482926021745142144311760255110823516749202445419542791704281387576356181649408341481054863868421372856077031224463596553661756777021201702566494051568983334581415171469124642335213613840560523839219987593484409133145951888503454287682366395401715296270707831586123068400043243423407245076259684883854923742371840245477601598788397233456568500287973090886696360197868393346716908173054537907445219496139631082005392885401779541544868917425484920204924079304205452917643352013081649928844204991413250159526513224996033549282629912592135574559072239135525663249053315060270499096638446611483245684872865131156499031157032934682049110026921182149011430982881550904678100591153463042820557119606431900225687416683594427561290146565931910669811232621005090213721840077506194749397330670341562470123567203621666379193698309566228676364233308307477979584177187583958248170044350006926473990097021015858937626445461636628191593915110684703551630422138468283050276660279746932449908517501414066610349606837230738170881384842235849044615575161343039536933356008916836544136426143455571950970918785792436680079836424448009634843263588127053875440133609552248614215193256998536009665690888908732539635768300148355519053774760509006585732152006931767321347378777171474224451076889862204688663011102562122094196179910862732354088400425074381383460839184039356130335078278615785610117782473801396056661116425038060486345305268205537095698791410103853550255921411198609318433254836236313420740028123216177297489697123810660186582034235063553166103699888916729762979637116369853102658920332653281269251014665015290580588704948999831860586145851328036962191819332439215535567691747249771129872654962476492392366353525540151727199377795708832078858752539111639301345344242418624019674789133850062889644993993835875247838523067353838420671324919807478439384948563867011077689184335684713995914861462453409967417110768237562742214954132474063163726155720018686387140504127834295615468413534543169814585255048388029960117455304182894381957030101726427948068062230395380581595062652606164006165831148728517480471530406771231681070922977017984768688381504124019111815850977577626294194341797070581344300228228010508578357160109739334679848398069772880157321794080446321123686746761310494116055069510602132597809076354443121985512271661132242692931418854596105235045916155404976658938418719504310019363546949294062649411613982986563389504707475574272490925177775976221121171807483979531171969386637561041992039235066266949677163218933898962668925541780489193496297097576577336291466480821094198267861198432946628520630130834504080492612243412630970111540837615724940632214311764342723095234614499699973841611303679515429548316412332830953911646382112655409316428886635355171057885998990072856796218590696047483358161417884414073043379551527968435425549483895807547465585020929715247037754361006449127557402648514011993123140619358604393035573342030652790876197285381371061110993714230478074449540373599043286912840429515042577499594101670543040751939990733594102519220609215709602572330227420229846311115290661342801046933405120990443481605638332055787741870244230156511210392792622943300925118046741825379916454646410367791184965501072352733785802790153112165721244550241103653212919947275156270773966841352301767534784132863313522109830342533349051209513220079495263707850434473880148183626679298782408004384547980094697867623029404015673939464430850416391524186265178502611853704884842824319141001945288288677434844472093415948312837913381860818273224059957180210151165933553403300464280112657459404169967636565561835724766333114157468146553184586991514116210445713579770854480247417139331867096911121706902773213574260469415231195676289315991237040836983488108641365411465194653959075668521585078843255061417536298089543084440225306200843724869503991068125877568908780878204461720556715722057461335973495819597073193808403784398626533974670377816364865020572040234455108355347917874631231482122457913708813958243956176445944410718151199025259052226158278074001817966167929647952072467108577544471034293592582135520609856339871851244547716137288908686528070371612598831980806439831119861149146307038099574717828013783363183795506553685915957027103989318114265153419885247807668279022086502801590120778410904809499305147259415107816551404652231673398553823858210484602389542252254499128812764189275582797583603993109504553408030793116346099021129505011620386116290635680763682655662433404389169773469461017746538752486833240652473579689552062299918031720232564730623328273215444430532216395263535645053252801934856626450068596879303943925816439510702838878735499147276481277557431162683556392283777352304302521256507605585875511760591993805250400451819607126764029259727365144423304421295095332149056707684438095603821324996289522154347466136462877891934115206531957539434866140485682907867406980999839503959700917574364295790356810440604101082888257185191118410283138907239227030046200501122875363384454116037011082676217863941813760031176763928842682978620627315443352107944725522408321989811265268185809412312107579694448281991106438468496728423496510960966636868448829426283016676705635245240617457847469401995858721919664397885687301060292192355405178357005132538108839624805312939867044833541617868607254605108587998445819249206405604951065281958365438375624681075567835194260732146405557412487537472264249047980695285187916939588690179607424746389116432119441380490604042211327219805002375395572164036475985875433528852909058758273106873529628541928209459367818105008196051092406415353886171105754743370248909228898451221390555160215921862136608183929138668069798849099088774395615631634198944501118932313708621564056957166528677555565329586598207859745782456410403410859304008025674925804126057267014252584504690064269347370546387438061664800833776551303144418085683191041538936429977015975911453691267605402534242048056183548092684264430055556714019010821894769331917918189631671602567294528975389425056640980051579649453967616481237002097409423381739187983926188440720413234120130229263992998094723888717669671146617773145251659803908284422456894464036193855836496455899979662092753102174461007656260200398647781192800152636765651085310237061818486838013341269920768176850304205932092245207787298391616264826316584248712389948502279115215386429508230910186805989653948587028055990655672794788929425308285306094652508628248233392373956759011332697403685885263861699048948728762804064441557052238192856113151844487053032199119665614697543157616229716898232603559847464488502573160448166184545731155872764652727892498352899837370485936674782998853840807170202868627693961042220821262338864558816755466861251322499639171631143416770594312157661298945036623043400831831152877423338832522945121576548179150191869115584768020891582328599529000416739080316276261228371944779989537227897184775622428337925427777573128369486357003365606488588126078959294011587950110110737720513585017090075285050013000670229627394059534737960567638723280684993376017202037694822952859520452424906318868266544134057681109145816613304261682102709356604882848192500675057575019778634691206552833887130443933868020157143844703216008253975553555744465635080758230955716679115943606950275729339917375018844443308148233427215029184792488449266109270586725056660188085542989900029006295347541500709228536415083745590296178360907421179542333008932442466887674416974238413871880577172503639502848923258494265554299595044896552923677989885323317887998604430951846878826732427536118693454824061871874295104770815403906132182009030370800985925239746099598149334820607833617778209659324587731488148595756960332609378965030006073913403866951853482644385599929428151856817842291607219813991887133517978921385813358063771738066696130594175470165145412250086611686622697910364600032034341480674148724102723283074354490306179669285987206224877926805114103722377484523074275589656990593656004568096937700427103591687903887771842211214565259154244838073866338073040195610029612708934204937792074186605237737829356407272827350935573935347734756069587971724402426925983810909316185433624099957073111476427955360133059909171000726215012053269834729383583314845205670658207715586371948954204628560259972513896909503688886265436640427940695731670559311035441614970064207232388646219472550522536061246264391130285659154241813167771462321399498008843405580853223937762323735155608204877412350762299870524931491759541943719583393377722117908196091425850134151693104895376658201986128367342372524288987817490793395975796033009506902234422412614109200931347150009888807307462245178100441911638148768579056251557523149749297441274527854553736774505022432937950166097009762261014379962975095579345300211851233859132190943828757259443114456165752789753204015403112152719278466312129904279562857276381691139405891783314627771481026517708797394092447936315906018968922203097430895517968663888307761901395962528940086502359275422529551562559288229395676353563673291855549739302242603941518917632238803304628227349086728163828573209927748202294507602351454090072367283827307786274630823271555231853335469230963575618972721999879779161073131348156690936151033394818487744671774060061931179247541117475676261243127462739718643536356298737466701988042578044049167038772648308005874795550696592255836436731204631156444341444171838896228901543611831583576093882396951169697725667013772188594393453329437448928986642073698321458047627600926331296013021557993666470576423041360879695299181296963007317195149521170676285109105728419668365046429363176845104664678713853871869636277613344541626724360810475010590370857614669828556655231685978706238026509528296890658879951808438192559752006583640931674627612985570100497143575859612285604540615069623602237557572431663207695633925522083021867313912767264920189516063916235612635813401609722894664835775102984736239511107887449232033603782407071691243201911843803752066579935074190193295936176291312734226859222838702316809746465461902231109301829451712318672773605204384202543556586687031649577900136279163121018971848189507346554117836432852411223156228686892954731317583460963036631683636277868770976604436886897223057917170027259007736523182770138318642452574675183008508066369535261791701416734748409590913633714094445011249629634676221255405362842853551299440949873262471499182770353557618772874081786442801091223963304962325883738631548967757659533116009834634849050438551785796817654707065861991665002673978591276144204279717061587895937460056294773034293221776401235092377104849925667632860512844195857380633423524387930602278559098482734485437402713546474080672266789848657004592379057502300378794677916718665556199900291876658646158407964613680493284133723636314287147532998098145997015492243553816785035523017075955708723948141716236321096541155283649752218481622230363903252478780301211135238386308773455025143854152068953245828859368614683678408322236658577963356533991256323974579735875670918839428123747296796435468516473232553427279193262600908201228765392550989839770432654663988241415399917293056730293249486495825486030217387670210440587241751995274720549952179089842519729148597856017911702372082724462789348203669542418171985912740952164929709669379488932394260284825138318120958118727800512173738338823457988285744887964500099834190889080614494867780572976882941525518919325778707268897444297599177472061676186293187317571477290998785077244926953832218258561174520501229528714888525218778453442873814034713767998474382952540694518842267100692766540836482811817155572550188796571547463348917866371248020256132292469546142316840125658549506729983307848584538903185098360740050049549586081036603643716881731203179754959243491580472671861951585210280238389721588798799081952393574869034598084075191690324192214649388913658810270807787441159315471467569781886455583578982160873591540183331473071352718668118748392076043700647381525648856501111469772413635136788102607127839172381359754626138557085817556202512621232317537838739309498015090927479578535658878335941727084969868350751052172672799404000980062255915071122723394432676827069539963199097302867303184359738014695893446553177159326434581908213544670836699896277985764005728706808372554737129755872886868332959282719093201904015147776296680061653097618324091723663143557172627918387781599303604326038372649715032426926043540654816467090532113126633879810709852632129052356434490207076109023417400973734611875297688746844995336655902740712034722103650586115601686863043143968084700285285812258652917527350035902654038621707927185593380013557104500330200998619053408759668480474749463953233953156031601008802106015497106483759553825925835020188036557531770501818109291141710876203616953300887704106836345433861769088117131972548727089238992052520394228533325527470407195718602587898981385368343107232924281445617755734219590725831513884300098229340846427710032409826555685031669215173103495041522108431758126259427279982539058658752740609219961464974139122281864697399328225415657565222613304598333134424974210240849784719689392456250083896261381651481002876135722253682078133076731599020581826639020051578291016548833048271614595067220243466667314996217734388756918788615591370978732107958971692201098993662916810781516420817698883294097480188638345319868785728423009820286225112732572116560859195515082926672343579573940088360042933695555945393956944420589011793138423074415728092127956058045847730439584341075105241393796827563004740805391980245049546395634535085814665325943589944574608670835894830045465246006082058830763707678019570996936633061261400200597999031508583781396659536843078544113115413766208291032098141666847548407297847886281094147077464168774052212085180230459696210133498491710706245027723256218362706828704004635711100759644252550444778665295310211908981122492803453094901953215828932815419210099736221079846524109207840612734315809028453157413609016943905992363404497325163504336200823118493200556756595645369217538157365738349410671274589435469409411732059073926474444522598176129709891337273960065861210902210250168442838508861039998008622304280678405836393267099623794445579554138781855497575401500525080192343449672200146329974534549978710540260298194812254724553247642152070882880996540069358962670704609024368400265852940129124888880873586789771844072845918683583091231448068118268478580447763146264448336290546272466173741704559653771529390048358481610525982368692984695409189522614826347540638999832874478970171026644084737273519257569884736524667832374529521323153086893198691940754645839346743840362276853891888807032637322389937461729360731897635546828237579526324444058755492352462768264800751372183801220854930131901693987673368670735349993195714445112940631999157429317763977305609416634062193217141219315374602572156425867332456571006800679374890651006751849380556721404483200610743250818619836112427269296653749128121700497525302348130563769236714801387495819140248817818932019741172965731871698129358376750541207171395282510421246822261839358299371676205067589862480082756675595117132195828649866275265148800732676176157270418378731516207485769641922917959991533529797297834961990767170637040811024074131688192900039984302524906273253086132265924637764284139390615827512285877109947199432749337483208891367639693602724936311241448374606197754981149118548627478774976775453720749340596730065631199780530198169468675852132300788573884628682949735925440368977302169215239458106604835500310286328604875652052173378651904244915692649796983066428851733105843775417897114893524322486803441830878223889308005743030793206229515041485786708917772867313448172334585264841095692161344760584657850449993575419982161847652527679297457203404069929017891945140006804832623490957000627351796239919692403996862737109814800909377159072776115921643507893591718886035502814720819420042448027438179480443845879956747853608562425016131172040723901154033069188754901061702081316488329900814308917130833315219290964061870612877844087710975436720077940301539079260771417483742674981191666198015954087850223519053078643244566305858777346258203956812952483419238467703728854314145664071896843217152167239750247691262296339746845609493359659204269927918046635107866555346209165774158048335845479346245466146907112324377925375540849650219136144346121699623475983015364015456401658594109342585687800933323488611702843666420777327765321530969009287901803122941686964574978789902308047813631830837057804677821883060796735958808713802723419308775967598442914782519131816727264735790371503808231190789424619178403515719932448690025592286882811160180554297383955617904403613210261515114410562322798393884035913346519442849062918199687241519678693635733157403965884019858855236295662665602028789386088249610869045108403212524206623570793925061869699701612693343217535065839215910050501870456171822972447469145023101779648900270415339148063940077741939570144480003167966326472633922370589902366692555015167045438283830063952143581310050545210091503645065439257040827495536747177188979099252336751761188723370567302920211993743009852164803886409686767528742920909628834427050648606495155196824263024238288753585995692100254712722339972533114562408813499542797382635120199498463791136291308436173549164330044981965080492733456752022353150034350813302619103352488496876517414480103344158943001805866309576094709448294807305645562116760381276588247906446750971429075717898710315989673036964286865201718942414140140553450835368536937799231916017025130152452566604100407088725559700952508607869406424119997737801923797884373148979543180727663185051090798373795065856058127076202959489373908284407638177151556424995748869949767070606410185608610732687563094194866941194155410298348076749943011519115385807660149173794604150482475955718555042952800650818645490096442100991080724358361391085837821146508668560095091589097061915924206728363793201730212439835972803098519871678926592978990115076020988701406121410473414055568717643159337685683407508661345588571535772143166458409431591030329044920228400151566578889062775537930804852153943942350865743323977045750180835090115163096249908191809190036570086473848088462379220887949414764038585614804745214399227109998882462246527224983935478540914399047291940786592336547927979451624474835371105113941885442696908368280382133936169130122586133027470990385389005265195195637447216472697972809714835726645282833966434779507436036549821557284341090561389979497310586734995506461884815083155658294311544264144884004166184327754941584953439451392287618536522646539080138441692452123948195488948589797747236092215458541988498013204609672891087252473043789799038420314743340608086224123076660648324285038161717966520154363880625925468791179397356560025072580211421734684478490310949134637775335167214767857964006953981264433395453306923062605459532601938925471906902629637221995277306354354231467282505960089216145997163386686177545141027979815272783175138867356975778496469739666305971914801424861552578657995373019902998916311056991073050729414757038160523832719079575750008088275021818575968967086965808258961131131409214290513848837903147300553947398528056224627728670366576609583862036040344551690571105409090686194345758115054042146224208580000533337195848387525086990150429604027751324658017768489014528180854129391472013662895567228465164610092719876862363802228848236566726871429491091733711677573739340520986913960928115285269710476766397241036639801039790917888252084941699660078990490513204871929078246512923927165135993738204867970564442997764951236054348423766521401608674537331600539227154658262933391398179820029444688556351062336703374228683816688959947483404740235126631957945996599718188899511081120468973488802499738748475390681891536540475498887307187866835324039983686851670541977317797636043328983788587245188629754304806237962346819699345181869329675850668628625856853405585927652250827982415605559028399029247220548424834642751434528534043792289444749003902534908684553878222540163703991999619108317861377769993586219263038036039326277065324355062753988068050404840392128085388632952861562506385787277733879739337722930187748267711670852465262013030504056652030025289342534672026032239050065523814818233211508406133509464674820989957878328971596658290040333567375351778203302808584848020126502984939594815922166961367155056221810332157551855734310454372044694588898643549660336232853800605946372599489790012258384540349307665997508658655109525363223521048403790743410462095345620902200757036073359206810601238460979162857003345938668384635316308143394409730013548462978804695559870395292390424520893693190182078294097119422241885652977738672009474467138278757071715957920830208787353370217425792221647172857988932458510543060757615270431859285090016190906171847968348542558615119534535276803273391079527771927034760163741633657996121893588212086022524335135176857710710801930234624808334238113532452209563882772112538919264056372075357561519157687690262937594117686103484717571989488228666199005798073691810067072377339007652321633597078789625729963620236356547851279447830503119019812074840533743756600084869736379860176546301162403692892894969976973450205473347537725906490341525764207297181192895486874896985849831630580729757908303651314672153978640945757043101427309140477508092728389249696098118995018108825756749622980168786743336465911560890613571860048899135622504177188458064086146260106175512915935546784478495797105857423269715123064867748574940611150517118594576244448437858014840316403235505768709160605439776836512102890838578147783612248419164503800304105870346752509200162010833792678795989058929043570096781851071925322524747704984040370868266124985792828393506178976303050083662524297644316913343666081248402108954707224689343586168279806322391216923243323546143676066707758406522886144302821995334407247472902595970631645486018298307944451247700846418238664694520656350722439317366257278248069038119980135780664941178457608857907096529010526218803736941805067323320859459560008699606466537953955725788984225675781956530095620747443740000002739998940398432839965139967377662053396996795087421505829839082232476559005342691433562387551002078263878444557560265831202726412944418097518379225991681278452493003942050761055240370611867821034013211364623022229974944050744984706632701211538433258131991427761428183454805569245111917125878022344203644336064128137006178905400304892708731069440472603033060136842026933289899770377884552788977953896139168939020577048191943558879690855826900376952445980228491995701431279406044372262642464287368977930090841594458523419248168899782567600754694183299151018286533334675931466961719378392091917670805253271374695336257926950013255239490470126019728125174337226478756122100480523383989224884510236684248953724799360588289875511083963762311236287467819680620675164339858167216454110567308377825838822849453584364147332617464447788037306928429810059137436522167024016524235529070161839181793987537985059296799383454457891427805528644404373481969690924341992748516523825253889204662040517235113845477662440341214834013229126090231782269780433086987607322402978583859117925953195235716104572269066693819575969073264825119202954087547680625683816365217999453202033229309677971166531046249665296882848852353369334111197039419988431983316220568364192418676626922666552952640153717659431103362214203979658032806399012047419250779734706238822951557702119039514002266798665474210091875095290452874669391857349394902589121659940433623251874567339858828013158583905596294874140183975835640093745255665247083531331402011356944976235594922228869589881127817134767629338560293398975192384522122260166437626172240185591925762715202019374417970694338930950695293625363497108634537251550224692373339854461358655725687552378802550167311734752130183916721464250297866438030986828205305670044090742810404338827504611781727985359777469187415216201181917300504587531880873287720835918935788413445115018227802364904444006950850377294396586278913308668058752030203381616202489140296380684193644182834662754722932987102327549624803219700260250209730832295572644112726986136806444445547264210558202383980107129721680292845591325236280277836494044494926791089440997077021897401933188599142672254532218025027886194900290207939106698905181373087494492794487287115877266936749322256159550853646875252554097976042735211487907102990260293601730481570479714480598682836558719368534344292473352114610850681757819037855277753655754595524490325684240732945801970925223595071508268946888067147360923525622716660977747336777149585023009190480298324237104407664177812652547290801090548866919885420535600031731266810430442236570916166393754875248151436843349390221764199026080811457354385893178007284323453334880552443263188995089734838855896934244950100602002982664477084346601428923935724761183816782584121767673393543792814716796539970757123056161777416592142020327780454469126496850451913787387990986340418339134521632173720139376886300791402193373409676862406277687827841145661442260992768225521975640998659392462773242038534837369876144535519253167418880259036432430445324262459880082286045368082665167423189674879540754701102066565316749918845457233736474722424411536950223016423133584898042309041803010707314252675291919378013780223211168141646741063048188201485477179483168272438910901228487054494296016119462473537529674173702838559511590537426590316689713414199674709697783060206306815803514156716387761542073673725532818024312771085197037256228904165548734640908185485503689077959646960693816231399784931658197042093609484946758147299690897348175457268780110053845020662082800422516471845648270883226893553602699717375733087535951788292070455931493222614800224542225615629494346613031232469964564432460093430028794081808962020524533464702869954915264414546585188825916977013720403946742183830467604986422826065250912042290179025154756680933661448779764196306711754704868065097618429067903277765445137977233431581970398539350712788324931648915279321631450430659367589925989821883124193400966126439819705022015443747461229119545701268647710702245674164417160008282787887488594654828480810461808904978798133024135259809019333013296304767766336012315531061211108953237348641252877977889937410685914206411510547967630579782520133182207043020713824673796987985360455925389540096881308446903966816503467554080644538581168132702222026270066303920741265373321547707499442417810130821727675022254107432610816303997941009017706087776188796184649018783675395950704555044668721657554029259154796031050328044285275462904099059810197432316682547066622811245590682814772826173596028609131519251063157761804211614239773737274234807141439704056380664653389705648752984316213639014355567061018552006465366531443619695793108571687117400350579159677541683007108913347093681517742438810834144835761336430520590408280085335175568632492044360914010950141994553702307978813233042091287378038067930819813224768421198961424483289808540113246771311718925724823296048313816362270330392114985245713398103200957723815645230740994813715560098563222980420665230382746095599955222568437058037157526895713220163120838396911988252512087862085757120896446954367767186652929920707126834016598998848592566106261450028694173340877170922087925200533053348590577700969496862519439214195781838945048511945822583617588386652176571220406122976935022707414787598453868821700065540018188690342768557017788968072150929429856868970498010842464698883850527194724880988546665564640333042036440685275402524588839592061140448451127204161523725909167881535632393464876972171350556989751575402674868523724437612667550446169695422907738926757661430881491178657214001702762759678969996006337225781361149799673027879931080699002449766297623503734073272866315964821936269508899447907016501601428838076775851078705307567749455454297127492621681008947983808968369613455551458804164331246731412425890164195336764628843277163987610815778070348751256558222447046813587888688375047071742252338139065927280419076579845600718471200191095336293442339754073370627021103525145828514315560400579026982784901868569962013531982461100209462360378163119608581686872361231185309526609621646965955318147049715435536776512150549997935449336416623511156839252949698877872434957758229221667871134504401699022837978808380528719291462257789650040540949570379878068502295371860417588434115036054004244732753087904137103778106653914784445757927297468453008899839980195681159322950896690713281800375940112914915804189566749974870628521098817315738312613685325202630174256231339681069241732355790823243311445262495173779274573035772664053215732697706834354466233528912862771122260963545950817114437334528273398078489219869587564285724423270844412049026388891065435827219249416435925106532700495865680725259576871777146263960057890347960269116351299246881852225481397286645475811967987502832722119219917722623344798244173770720554358666424972154255990404936963677206152796922221018098753528863629716629416339215493863365386820025427681247232580704273126193240757873264557586213038817151086590809088159437528833528484639840298030416185929574355288298272052237414712671910343938897332846752897529034330253238118186920749196438052077241971528722175408502354277934113647311322058210326156333403772806751116178271355134143903199920010585208892334639210723864623756360993925214296382582643107445923739346636300026954491984956539538606705889453451081504415281194974865124630261539920496472971786893132737820996968719003488161553207298577206701825635657725631799762562331007771707954216834713285692006812090542222800623698637361162919940909357924521397166892187626572822614846480944568971520148918888532349051318760637569700870052235417953791448605577884683746452226180275112281378283550311742104353270143088793816350057473597813845509836274126152253103468714147824522812186703772902780160651068162269100868998367039710008941027715376058470936267724412994543502838076366692717406085335991717537788002616289879442440059934158740096974490831399718334647317890874070423520944287461436112469310676967824769767909076280218235020674388537556578146405197349747819388952823968286489515805163531725919930552480621648612695759112742099472508245271917446649351498438635129370587490553492188453283517795195374014708800015307910170947512371086899117755836015538538853626067758200884317274623821926405978912482822438970481089683519930862477779315392437184561367712111090264052666982329510117165226789453526247313686227758580710156779572765227594705449085107168045463789722545978675554208604527598336469394618102358120717258994987270076401564643669868602969400531034170202817105514862581086145292628138112528727332578316486045510185772078887709563097126102638062013813963690782739836593995096463467229516545727657293529746155902402746902004972576151109691846224815525295167127513268891280990513196768378039885474634941109068141375499100420379428283568981227303033603148078474598448172128951376066924305705420735107723320731060707235084522504861317118924587815465455712171038584401144575890019481723976637293823729936512631114743697050680721834583266512556228274749871788883120412331248478950215115179969343940781726451967313125414114462873463022898991635773663256047516936739334089030773482221480015869619495483799013414823137673359559304431668603112521764293762220473741695367362193953647718167487862122096838207628666623391223864041463358835873253516683609585384372357853971024276065708451290650433846412762310413497211954491269833111402830121704540499117340575396020520359246515196778462410309262940699082423703714499319580675431215568873998124392797689784873765241819412254082702718052996346376313799595978055476550011465553228255308014655859571793829027731155960402519576821183496762377298305065691487440606670864157383941108453509963909002552998201735507463239332927886943329421603637911946084427846649034667725384324437634414009070432552169583750018298890258489292682572821952036625521164371155861306893980216384267029275587815097727759302409992375819564397763865783893124890507360496559263370933186418343130052696695642033597904658037537651586700353346511062570537858165729641631173340653744434705095472059022222876556208320969429194179926596106489308161695266560699702197161712514740723383347422348816374636684147976704946500567697901170143195750546007942365054769720922583112755157884552329400290536772982943891134379014377309571930084676692417430723891416120988927664321154291595998334754910923090263063833869776923557560582709003669870333552861757647424697748102964179208559513566552760781872511421439706106278378300119039069329167306531297129389812349940344118714260770642396533380548828529012333497243379354794857543838342286022999418510389098792535626368112859711706788707650078683500113051703376139892445141514162920372805036682156158491385352786010384721337410540878413414145411172534914613395193170127611731544977935749808424798563599327287157484261160111178424082141911567167663607414397615971882880753464642208639433385439124460852695159820197689295126071114409869472996238201881759173872277745680100974645688931052148661422341337366219728713566884139118813899745017879174538099308303617375994818053134080917815565806796639679054803868282272570056441354108965244543413688325352589282184309632282187532451353720884693776871371168838882570588351363415912896086886511610451648935609837270436902764838238588842177158348016883074153560518416154923404490736176745841786798557766040313583477580801159321445165753632282563934130681265414092454981869877325580848407802792837029787168657877416042001032041491025715248565241324617249879274308036623395673397571032409554145608988104734224676128630751104029805867205773256010580525877847453311592737351701666961648702130822918244706898309213413448098592870191451931917582933621131467694138523192901939364877040618724138970011937919453483200153321920173825217062696330360754648318389888595466049439554688549977717956048575913635996381737334895910890858037750415124938901984819851782333253587627728448706727427962306928519146994671849838974031430622150366724663193303115416865813754501200407613735018390935240003942075254991520499194162780252739453430053318581808591997589065014095764189854448029695761636639346864571761476834156553766033446555851952033543440390549162764042765821321739900495177705797309952677381017148888674706004729698267420944038552286272764889061044898242841013466937130035610200377900506378244012878124772935942737473195357214874131067897427743581136779028498325325268163583438717639169257261413467114160211318816747783484579890004880674248597155844577950995004866833847785749007116732754928832368147952166968805061026104770603031083482926419961748047847767545788122355845936127044347750316560242363057923724584605277540446670489542312917639719794325073592485052183788665713968501329139739901155019603151368234644516461692374209120929575225546617639407902631307683821302610920068470611790892776507777842472817617534400257555598024715670823515025416340142243812561533986192197599747552914035841779928372531769483524515459244378197661104041099693148718405887366902163748975017859814936661475401353374029585008231852783839836783393574030800635095198752379481036130702453236477926300047150821918326211108358737735832671877114543542200767372514646622768309477123599058008596432240756304143799408127959266355814747709233615242866175631173093366443914505270964738417530721195218456235863241306198009560814392686055820771380578457235521429461027227954561397099164730093617043265563972286239685895201254052107104605244051227640722475924579547119840653191224675459135242941502604820489282702027674081901470989047148223122449690002038338931580585934603058530085941415501057123433331949163472340801248025591672861685669376521659098178310264097893595461395112792470077254812005593667041719432369311980311441932179135106555686147196984956821532901606065237840321649456660419687181283860016268056001397047784491544344830894265244610567333072917906960210090293385949816224839933072373266086625219552520721378612522552195276346718820470284994512108072097077749576414844961527160185736948549324531833349763955680866962105566680017017962950002058213467630702970694197200679513330809269097040862037584009523652080356756848188992154978876298270446973205252063200646905404684237377820695286363923974081492257266893054499282286503667756091216528638930160861445914486002546647664159825835430869247334150399015457092973280573367791749519037427832486766410894868533138057184120415745502734557473127113078682916902392969626313746292546138578753403250951969089778060332608392291524843132351680009693997868878540717663056605792942245060974341616747981207762639360308784980963243636563651994162224957008624200946808555956903777871384510232546878816154459357273886878021730303339489328436910030469733182844334852265741041713940505290216420041652073557137339401752485758137582321943328781317617927589397958411931821832423799529244872545862751935886783970611388041951574015173286259472144488890426571561564487922370979022952216294279723121302113402587341181994269872211703035664242839733215609384637779606489815624147302813466450636081357674193696040174825226722521727844065073456206886667642728269541694955614887164037076232289804229703732368874670513404897118900083635053012434753702333739545190145506541783527237990573481208730885635161105283630967716631984298879526988777418543642071400086899369068487050340445497579450713591572714880866304821014970704128319147058500066645413604594622745107060373728458304534118649947487537847636105310721698981292051064049559884865702771042415700252795440581493128961686456094142512935713192912570868706844256558304083187287719619257776209006229779825472580895427261258368816759152409327413419219766530191392097067005741604787962116164162760726759520102028443445423437365982254533691856693395300533491978255889241785151008781354402624024265413914450405739478630136915617485865951087575462942146064259913395532405301945838602238029732135376834851242717352690139871205684447320957035663313835123199754508789949388627993361679426354764615157281443631646864300562193272764920541315354928582648415983359388080211537925125591179469636129167824781959818572323156500498819057341042690334146724080603591693683553577373341216867111331767720965366323653607710326125874377710622563789043225279990186129138898298033421108979673440793860578841159601752796782482243293342408092106563873957768230019928446358575382323003321076869534949668569392779589662625072390078499677431161421607964645931228461778157957120570117653468418688899694113655652495368897824660339578309288234746463877552389202913564784960728243940862250894363615224426695324803293829508181304331594889407524942635399054857996272736253517838255821107055795497894625564391547963440366190209389718147830357547070529130583967224396273113069384964808871870293462990602435738975543151408481790434454105003552914259311315249665324011114773034590222535126967646752127640689082057019546107521097636863329228415194558974748434198096477004203815182181710384543943932478997971739864722590208403667163760207515889677939496070317199084673560977748534731338544275176320990709224302207760628103159659014768393025635360423257677999465144776316978792839009909441866674833100899772383290995524585762721730736517167988980756477090990779833435755149340460347930731560539462105033755608773152425921213470691282907140905069942343637846890780138791830136414810437457181771832499683693965004040381145410099073714764316094757572909173745887420506427859061271970997992342213938702530773933081769848100868575503564594667268407614098801686305053715549445368206568504785327779490481328307258258557929743033028203912584434247775600947853717787055744020019704024866910759298848361159381854705353886458164274107391087270367202520023435793861731575106581214035166848158392192991987935758613895057508759938140148689546949817465527648361778430895706154947583857787396849779122011425243840279938787585500232019461561313814176930087730094898307620459305480461200721860996958020157110723667334382257793383884654025796109305465357162758502949024101421753796414955031320411906287007476827736508993309593791361813319641680761486997614046101835413640460630573563878619962444496717549047278417014886072133207428530079454059835487115206860904657674223944063338291044058994821253801241954925804896411729901494365877397719682579324242532496903936843680108270900696086427739203601667303706326748866647438870196156271427230855942514851015841968417592187588392310672686757055656482026562865123077717111656113832909230652025380695042187077621742219884687777227007630016749776557831348206689224713372550959419132053016601659706864367216553388790946599120166880971061535362427225808736165500503633066337417709326951468722012466026121591653398913638735051473014916605405054240660979089519275555651788626035843633140186595936473899785168082933221409175370211808904399362959101544343543014149246829407854987873587718905404317584198854008397279361984871922560504568194622865574126547285980622332257114180838225380429072806338998623671977576786702013632518711708142128716746502843698954698361016399363490098875210327207324947824224269226864218494796582276754190465801802558344238425209324652137839805066274936914629933525448234272418877948008501871926129495157605088978248776011438063017008800443585136757060216990005859374713456987069830932752244104890871202078600155946854518098861781422330168081554539462801304551757787143161210581353029185579947179794046408470454164517072339343972046144288535086171356763522305919407701276257514458290283449698526444420706751831942792186460568053472539160173120000760645372244191149125393594851986708123735922350838031579994949755079539493149992913759626100214192065866539134409526081240396510840179786242343874797948047397549563015856004745305772852594269677448995685885202069660075340084334281708070189563097499430249129884692199265995922287314820213834098813930150919280715552864833708033144350402173170518763500573778265157025994553421911629524169724515673554268758532156565067230049559101713958390571853701573864240600531710401920303100549560385765369642427681820248734569447669385007829135459164431532838257745550949918339426089129259101836924323728099954813822522881593841460368637821135755391073624868068297485562707870911928163734125140732213535885423621814909715343189649831748961807428387368520608063162530123258158195569435891388412686789210890705507414547646594667142409750404491424956542292794896049699830724111039204961098239340791936905661147389574836732436873173732050725444718953610129306112625990188478136304346573840874088853781180781049379755898132373001325099322638144296240860057545432337790836884834226044269474539517148307984581017421074841884125445024801821955786124496190732340368036158943735189559808810715257819153266073085148595872106401400243439003324142945914152103420687652948016053787182326066568217659792908505998980688973574273253970838685764204384180367476207320360607368145054722459274000204623333144588826544379435428594638604684525258066065599305823833038143496541052084908128082201521802517996787260172103512831719005191768164110388018430399492299070212257745288930867094599679290859806162846727773006333321332081295888231670449109509917332500620972433610889119756630405509613214152416712461210315244576679178634327697589481381165975905463940890318246131203510156854623573739042931388057325447241582021197873907314797466360490415429307439524067762449573647457525109133501122962277672721718787099830067006107582689001554991486410753828235942214825013021291098413560298354445295291970137242102570351083324392722353316994450739127532549762616906143187767954956678207244226747891152524840558534008744713876667922186275884312797160305831008011332470740395962760163501051836000864242537240268067305710243568634916915909503440851011063517983026428346674056641548291186218569089545380515901421561664402366401408006317772471868083148648057378903495745042574959945936966380145120513622785916618518197206489831400348867873746833263366609298346185686378098813938264733344659079986766228587845581659305727086239280939399917145665634971561585417339868479637200076930071098170840051616838912447940348693347188233716026320350019880919532949961309137737809953978387281129159133066785351443935556732981330554850739290549163470103516934678405426483604632906941291314171363019472537022648291052372401101133887968739526306796686830985229710489256643496407557017423819383774835243974148809640836110328489370088334280406811692423023290154516394240321831082602167306533791685419660271141023465278190176750413390141183664115484316934742697590459606950188600212658686131801884422134974701699937033380638427256824982918270897172831818361318851404305522294167685619207416624691648885790786799914990373329940820463490454593619241513044550858653895884482041467191885861850797764503521049339501481207840121485782033655749339750170611428407218015017031276360369648035319135931379519257122147592523704165261869875634507656107105396687160231514647803567565646479833161633133704484963196356879595968422581352424604507569691714474550517958452765802963985406684025916011484765395320223436783008889557624393661474712204637239322732202295797752166158348967104215633385843431318711906512487012135693317139496281187560814461716258241810052883087182231859410429871299838058400235789917612078704630069895429999997048213010086355198995577011052523386479837533863504834741304888210904199364682544472339477850960303018127865363456758998627337666645335350326252788600785757653234268474020646534079983143258863808753214247314778031595306965343833757134894588326655608915186951327988814041732840193748651763201005464796629291997310198758246492986712422292613070427609353308275694458545556908235486150437729038800569560643996955012286988851942942981484949315199655626202208155477697998238749608322753599691480686945291659468937316341155675327610352375523480349749400106686148106406909044376157051037360974535297811014891202625523788445458139395126185047885264236369656447047858318550040538228467921742448227146976174758814953630057481130446775936117583142413793708593155456119896010920927407775775519838864206723628754817530088170926021444302705967685583039633869747163477588461602360849164091588748170238358160062014364673424647248676516378354323153179005604574558314893315067721389713894411181854549530252415363895186994316775027522434945714364262401983333127090442423542981972845898627912281875520865099253326712242509966164887079293860907677974542456502862700051692567708850000568682636308030601053055362551806533929627175625715044355465424532880813799930331672556592568002879827230445479011366471249868199546976522764592263582105795854217870366621670432203049201741263368106189483869228354346357799309494166121915292980102132879117371689905026215144289497878399036541572978927872747105760032269097379678790180969285308956361921273998589997012900341552530257494838228747060706769208995577058123534154726525510972940610297338006827780950765155131065611733343065023505749439492529170114082762927527861254551151051805269992980086924526888546114173476577592489945945279149978973381387206443580265786399766396381961712003787368405986199056666768437634124122322153238436982009263369436076018308353241938507270482216505340728570921065551739085190720294136453063237789008457529570375200149975126523098396013810579140511096330275921504509631509629462869101666753603688555128970995631201921686970619694287652366276066868039938756504690928569666935955493020979206868861756782193257302471879456119001780842245064638782140875802377332870421781647374207846435647447049406288195861445374000851362720343508025875408993331334219346192186141407625634727670215020547368100591064808351579768347701621727462180040172555869100644592655080783663316083596114719589956590728748031167068719198359806231639786929180199786111137665350939550659225352672724137225505249205410616984043558768426343006205119311200063644130418079163144168190650542503386327718467841548437558524353000117178530691849386039439336262949071288110268993015119808825095660652578074250670422580170035620471407899683080356377826403779119547796094763853035774941434115306781956471447444568896561343757912704438755267871439709130569005429608579334183948435292679224169581784207023849428122752039447070258219161932268505381378145869313605084268747731300338725691661140686885713072774437643842255969658776482350010991652660179496686219762632195405708342793871703372189875989113371428573883465636368319581875643459815095654437749840124501954306569654893341985666355891861009052883998736660843389091486688854428671711790718611053933582363934148386957876611170164825430983849833543621252970608648645796447869367397736144022009919896210318194314273117453957037384480392878432178481442238529929579593638825506370989100145140296015622565064591576613321819140396928386746461111717395031205579947946784072036872422814040897121813897346371884035871884012219067890041521412611672636625775217658057933153367387827978222178334478998051832454949854842043190862319914763554894548258712194792344844826823488222365452311232693049221008370286593096342295755691747878304907376187003609296405553138632250129541196939276757262649457260099983481315362858234678164328173460752877979128000716643731878187046248910764484244418857652326535407430711176702422175373606544820066340384629710668283428932416017946930257549799159215211311224604548605206910256811123552544749941584284968621441804364237504876299951952972311935303958941514700253805842301000348531452637853614701603219961323999678238908861200264708839378986097270566322786214376608714197385651720471662089934858207485297384751629601263850186771157985052037713114811996890937229810392773326893246953579691942327951354054588574715014261425939426325909980409426793193789169588902255959685287838980514752402401173935974864874478754508135805199552711041195306580681430422674584634411751343558914460557941892054464035065437042223510290753208385117006012077740238267903700475317960990084348301956793744307340584270852887166275324601715045330882319931022827608628926298063989065868168786997711725102289854841958041111370655341722384955878658931326412393659492246113254286252485798032211368424870641925323399894388854229224186000510663368960721197278947550096742524537568738732636315952848085200162581722373776737199622054282780808796340324031394213593605142489213701228865010043379760315343274818615672795349803318542502921248987298436001503397175792674413915454383045949255805131721740307038988048249256435993127215706336145869940841857728022222099229275130416486933333869888175873314363471453563280743451342679521565745654125629887959323416979069213494387947696500189381630751924199697665235346484782623290418209962310499629673863417419617716423368732940658615574681903212733023779766013853948229404110929147452350024771406821807495489533059045206730442288193236700304319322258401951711034610568916252797725709638401573602486652615617720170016971450147190408385921848467594801312805961754239040181704795702983328190037658612999266033874965842744223906154715347016169355770026095498443383648020853705784281183191466526583274506950828713273958555487285153931668754331927387262302006521268345288435893245973527806971132826008660877933594980144597178740202367772725656679854784442949702365250895500936550962274654550538568942469626631902777725687248329815004217410089998187595052920201911261982491232462076965335828652705191910186433537654191731841871530284771383132745700639894576703636102355300729396328368324141119741851587359508606614997735529054654848756993972690203363748844367889457274493261131638833376107941849331235776786819893454435299009928597014635653030338542621457128041405969739235688796330703002750771379164355861541294374821380367896650338570307177265953981083946737461555011755380364534770647451478232405520383158706633903414540318359182788995807768594004549613280525526795326581106060759578429387885510710846135307409329903498519734691740663053235890270185534421841792232825246301520908078726188011904900782720588323728751246387824995522260852275728644596297086663866167091852794624192237496246526830962148507137166660704694969729905902929794786820874056087762975835653262512656561863492890153980896990988066601307901916942274161600199577697107606399413638114151957670381160492687369172101374384543279012502003107058565082712448259539914255623973177625367807255952711818917750938077694717481390576137768743357962762620990899559571553341641460146356471346894398856949417961077912893347849149891396765319322389170544450213981864118638063425475976550524090167316677608836843677448022668984703524823864540531494950341460742634072232007978629140323524380404916901197149293768188944212904036377788928120016306159712718408244648714273781030884028072458250927920294032958670363846895400558465759436049046620694936451902038982959106555130795834287641160735465170226390097646380155295754683990141923337501864973463921896883681126819482186937216206430559729307813715492532778696784074888994361997930564093181106670361115686610908877772917764911678266801990866997464517717520735525273460069237712774143897563903963683896513837600935178689849782578229693505652345907459663272495808473895808140499763414190869051206725402946702497697721704773531124849327475962461742147377821149913402179881761422169625525635655285107155678995685867783890205193565759292762707482571066176401354658954963975785278245059698490655694142243374823588801572320693137622130400763204232767757979839758437266318240655551880626378065041435707693119990882337188882161302080633541211442883033937884782000461868691890978408431022994438589804000075912458254377033699191482795464706201267053456366108025491908043342391010269787431730061739555117783493738564055651788895243947480069807123084010596850230239076179785638955072591166330924854250043059381624762912606722374278404467908149241226216471797819497430094688878328828030870184927633996811855138744775262390002254682416718138376524733514704584407725786536770926869880596872469777885731516132379896595566681177336132739832123123813628024841065940700598274342330399153854610542255905333194330531957201973943692031749305587274262899295548244289985521626214620379857599167751651738476218264095972616267641136009840728461676005260224385514609983183227848438246583861632328459392579461768671039405586844731188266206374238754534114103728143200875067781289091592420796182732551984080311407624460527862587375702402973567523181051833528423935549056137325440045646556690167895854857775413412898279413917561957874947217257127503452560719898201911059020669050561707218987892123514397229028269241078008402892392302086946972860181670299093083218311013673788511654000669327146900663867862807803163979838645831816875915512755484572262152966925614185878283822045380546531901375791550569816102236553610224803538713298865046542918533060432776548807004296093203741155792197226339516190841765711930183115073629194773583487227300594064552921312509738503894617167507712960386222060945792399000536834335638756375208722460221771790213193183490918934331445846678009043954564322476241237531214571638015226139694994828621727735055788833873073346748888901004536424693759706545983624388701374888206816710513816869284791368908648610569050092517515413498231878707415179537975769393955737772625058707099230841656744110639069126686582358233914518802992436881324072005909284316997806666272199758207356595382446147417132527189714812352491029811979462067806814501046497464892578191589367717889331594943934020827056684387508903103983953455618986917383722323883577376165210118994513479645448860524159597852434916292182071433474392070775944537279170209553468582870212583315583741898642289335706744391979797547775841567364633441145201360418242775076745154798766679113456067850446932323294992742124043766495790736176848119337284191727959919252384311477675753165825277554595672360529603728409337887638153321276449650475184949316244533190359649017383423016061691719401889578710571786872828954529731745091146873086711594756825719516459444040728353674460246406400575150126021913564462499593923914694400500018248011798732451154995476366649462383379132297765068140392049297603124692256977786790991856022884722515511514114445517151871802011724488187393551589582948206898694869523238245003029172300346280969301819250032565399541745147797551135192216376321056328827588943786488564304919937971580447173072970480014992356708716316495134136954140865671483861536828407801100644793119024753223150937918774949905703594066460796380435412666725879488338363613724449596016574385562137183501290817530336323105606002273052947253495826583492223345797196685673754702877543363222956560002163992173794847185125147253692717073821102357488943549956963823816308457079135127251825609975692809385915871791876619138643978038517446279001634835459063601864420451208559136074027120513068781029383790723953757461405586254947913411467172120055482027566427957298099089233309999506001726031382400429961377948799745692898402976574558261313396484284333508634885664136877632359678217677003334196318076716472751600571240692088194526672374940808124809067707814121193453285938698274577303032026381268486203876548388598736730830118314506551548217273260769311377392774659662935480798071246350672020606574551585977931744824494492860675770115016648810431591895369641552735555768823962089084164835338617683690531594423255136570699492331754712448450631413053343074124630732447463482955738392125738349366033290243291366351922782716610702690758899996016067420108583278329558111342031992204548672065927043782192642362791508066564655471664515522807136493248178033893858508311507087376019499244330588467601585352193882368579732167172477893017752102117417875417486594270747131626935373694002614802092005342382629953885869997453853257196133010675563708437094670949247434783640505377974187684864801382460415861344575211843269668719914669880116720223075667168452335611328893044782502459544180461904373470224832233472877744645333138893502345732920283207883559730934550388615748301653817848709136781498947402014730548381458961345144704868497802347172750791117609354275952834217077391668178808465275343386137159766979921296170061768174016052150863947988990333898114870085426278267696592990394398434448190903495771485830674090463947896640293002490346962767418501822831221311458423824222952405299077346969226243596819681603679796864704353460567088744154978798331210320371575914871512616450551212089000828405422559327591706049214100431533555524248819537382448588931502878372802380272337770654033667918759090123262860352468664113239672969859448143228795915126587617624595162615040449430397228564918773189053650358177330020242659027978064798005901302032859570869991028873456277210246482929011409044034727835581066328758939693628813099733217663268396349303776121709044338691649863302895626634264876936350059559076815130326776527360127267322898305327970422792723584009995812934006563000605540431072698882367937431507795772978001863670641852857189259705854426287041117530806365227114846529764301386351110935169330990019508730277209722388140739767758707019955993734061586572737228193958800762703940372457148281752641239721191951931830172506908993781377174547823706753334073030728587295964571210316391395773824312317698706034845208297755068180773492077472287046120747264188222885283720256791070032790950487085259060755060173767422312858320612366817470790825381896607251879364289435090278952204141298319069038965349031567420932441550477465938962485712241273658068933332878921857102145883734501681321371363012926122523975899904108729452256989522946639625123443326388784813981968169787919217031498133359299415360717433910410190599080738415544430384261228281528420544482219636924316124339589509704891718466791126408079201148821908535225074263161709279835369805263046118589844346632596724628343912480053206651239429313087254779065146348807006078432731187488445645587189631504380142889258281857606661188095370716023797205779536946298230944991511671312453700553440802685654666184997306555733373616856872257937248596690784431524105771294907687724368582302932096744026393435194041808057535128656821199476463578009154346073328401344296549036606505616076140918976150140861574271970927471116870368779155484024106418999166491742382279438953322202876531657835605015125237729183143815181537134789383088403527118536370564041487642664639408668353688807829900550783677897894825096786907890935491447911565138886955278484885308530090015709657989953347135727248582889515827719999355127729992022219427922419448351279404341131894209120985143506454362768882599207170002809055383031356637034170084622312098536774305563253570042235955882420063600005110966801399557579461190817768952392310914058329355929219164344847961782321192611156668060645061500835588434669890303405598528714144140935723404692333178401984885369655320113200311111344130840553749680512527228599270982786486437856223945066099022158543904533519689255348045159212900745352277296298227898131990123588311422322669345088865588627773012314003142543923395149096692159925182465036614112640342129932569580613236205312246923249640891200034570392617572701564332492990754508406070359351705914021422872183084065801694441794248475681192250105555161769289473669414638614618465108004234773588307953065755700881297690977769267836148619583003385580018139713111914017161152343727363174762085970011675767491416452378244065872294063136905976628233844736679873769546196052285570582362929092494589119696838207156406868107785884463868332777026363206079100067600977934812761464866380450952681766108335200110606428075566130944153484653896609024864871043936813914035196771099839573460633782515372943506511387988348958903972798090370770208896401329409052788127582298009478853926130049733593371689262247964144839518669884241620739015362980110976238245448444129996585238954108282909319721069345543811373070020128140075457182058426296162808286484771158773171121197548476250351896541341433147336252409315119206870570119955355661199851723272801502974911072798168901281899752715820977184260746164663098475864035701550146248154377799509870402390645435122500821355956329686503214302286400601129370592323851707218426394051114281809458616432092402910176516941372631614481427766342017370506735194319834703634631210461282644567221713311021909831888720056899701710040076937873093377869543407572458645313593900582898104947069385638025439331468270890546367855791631964917026003417734226549124521348069124365435126955136957873995863159889824756938086045312817001093304943564116721177384193330685587398335089880450219127072415799791026086700611660703549716323438164901587980452791402100721879825210508360487753821809191322197854949917256435638163034957934964443587356712110827894024269712412541232083838290303139205020610907376877290049376546846522900048540073420440652832864178108280232777830991437656605322227101380429723764947860123234272276978250379818930753091350014772690832385104434225295354930377502298419413343053606453470750490420775105852824857981363480702515940295579186811055557424659122213055876482718833567270543777356017899832930534127584236942668530577883336797050508263513610849105248485811474220614847631745506214428896757561484206487529283331230751304747236401304817509819316895415438385731782170446567434874505483321678181190086180970852238626969926087420294639479011098966216326837211878902156523753038466266803017742145002259632007647876514902653949438006826089683322160615966479742545564760099055614713769738526677779045444782587320192188934718998734092537197396436539773509222410118389564543986808675942004305991124653961248545738481383465903287922803781594088974895182761319984210314651087668478077917465686748239069624725777951137188436570120796687452328441794294280854566332195975109017824889140694577228081280977846159373497759120676745644656592058533864315266478305640522180812033825252709274102821068211618762758965118376182902655523461798535561885095210694901620345378919937921115696727035662256992677159355305069838045298720816224274974379571242493002326809709510045256811619466163326051878435135970995015587942601888646024009174081521186284629616907272822271105704235804074176641579979648902358816545771291351210827649929190781157095154426611399241814070823954375055403939210897134621398435509175945176100665819206339587541336088696710958073032254435984711827490827282777600255252495287923601814336424158550176710078363128459125008765646871298706891795430894288025338418040708931790116112690727642218597856317825646029341860691907727696433233405561575998118185152315372866391897866233704552579734948091467568713461551136130273040429681389602168717058052019571397621893018276492394415152539954389048995417610555642371960211827024417511399205393761229158636348031837395665237824615416955961346165901607418514108815026592208778956698019645715633914240938100898173908661310808484225278272103039367609374630732581795118595995506607342747135674549802773655396346595166433057510917347804464409474394126874828221068187854599290686405095636456002866236389567601364826443750727381541686639594535528872116294263467095374177177845061702273144347263646724877948851172990125780279078821112835189041486335747986883115291614759654421300339707815085643603466268355903154122763264558557254675435594006625949806742882658237011346233085728980869091404422462778111466804201764581737714642830056111459961335750729121518252215538300538000385500080679172117860334245827218965714499797800476931810173215587322525383373289582539612288087270893996599550408682495865492151009074590472790627660021594555433392588813397220958945778194813150183149619251155534135311548436948500474913888274948374444680085234996250828384326585035917486175094693864148786972012652106565060557401326882376122810418465310636375662256587240034450822394296344493472824478517036613611361271445469108264989921486216628541292021026280285475410964589424230523837885803010335573362380958743028445226318319924029082912680596595066609705362515474010936550531545028922511520195280103802904354178608724582026877671337128409410157271861936560676851599694001377533620978901848227013937488138685060371191427648716079646154196657159156218869375064371742863357528775216887954999762978671479710878973930575854592478401831701422755913852583019938793433265383395206788989207083555767374236048796711762975651016257490224667296613081543658582562899723701999720979531004159546717111287643035123843812802402953456805184658113143040103602006288925360908878462348862075347585891033782149827964257483146692635502469384537991125372871337085842453568550800101173490604358230973095464153654992492547303142723714986699714042634302448616069001650173583502304642180018428806492363326863448099667040780904488143837704363558236161797276930766339436906153189818510743663838773055090300844376795517597857391384250057203594706751531330386735605296657020032235161820841459330111016086849878371363576550867972693960050477747702990287715204190856019586220613032693531972365278497233057042052385068473529211824874717050129005412204883865004271950861107492276717067819177319841550450994385579156240823979844889453418493821054134858219455031491159928025002551100763214348772779943043310395548255354024523555389320735981109412479170263976443561445378183680644098908242907689640072161082479946079208282064023991388424859533778862719135673031742892036233038181454871765222402148881016543830850274400040681660865995964488270385025243620255563295993687187306018663666920246452862087668589124736452933715781039266301829552104561766170656710393507617671246163343210135578017900048257528868684741859279502649495336406829811559657779666169449007846903929100650251738255545318807879460070284681817933524072527834772924759149990531601269919892138711301992202664087925237703356638962606766544054544604894404744648154934620501637582825554109669306301742537093956534314268669156363497154922068970885679184259452596212926538971407741855109316254344656731950373542839054447889026637466879014510424586297026437497029443622600709433274681273134450741125004761259965729601744771112317083849867552001158885135577408529462427383587308296061451590704291142538381883726321022500195460120884812023720345165299431676553182301928119051630605007186376033756291089608590115435597491019131065139129503973243017895783255888681382050745098669564339381300036703424189035897535671295203229301355455147600551006564569896797510379537327564299533346233568297141636932303587881050196571403991211300670090598893937368334252927340876957994163936926647461718846130329376476892665057779358316778712474158585361381925746413440390590687497258472666091690564332388487060807501857927754109844901594461764060769496315231195320746845812377181404402609372104292028686660676820489112636174011356792454868973886424175180627861409370992831208762374672727873900264713819930460580190736064428068919192705665852625816229575484717739386855922054024420554195094335589577286609718887916660572341084724790808191563867470388852661109975708434942652196558953486209202037606390694654646633742762515398136108350449369271633039874780877677090677691915620087816435413629228239212338902975706695560113679293937587832626950914408281069474952573345618089608474554763690422319090458995629076950972553330994747156965247604413124990291942921977713456385611356955674286369252754270576488487098467462386990607204795442055270914426005023131311346298486957700606944091397871077554718159667919457668983150414059046737105614359594683742260032462421053424208027116613953847417923214570041924188392300144225044515860008291191853356282851121344289816197804178468517129666874128244012046054281846349488222744578734892785107160033100123316891866317035930618744937438990858399080063786564323307264745107727119224973522269351941451276823451656210755803285503589566485240439903589084435999975184266683387687086475641959180321610862057278871804745730117746217209238215276515759677016340465167116238813846686728847603479177763829272265800490493473846976482772445988876959745773386005576065894329348881734734087082081882581114719848216761597964432719219777448690819737767095379197002290471350586270184250220219252170984025077925127201618107752289701707093555152924889677900899552112229695848167578675093438773018960641737428883315209141089972722531529386078178694971583118582298489244369977277021502036641804608237578924594112390949148657653125865353991232285719221332271033500622549269459222917368530233218732919136515050756574503430466482859366884939554073444049187816149560181666314973788805048172219307921787819860922973399540035213470804360086625598520418364877509900431880578101176377232013524807491483531241151334932870748783326740153173280235621862623183916439197456315762000783601066354400954483333101506887861965591191333843843015348627160242801629925774591490427852880244123427458113698078202718721766331595708235701932835626625575159082640410199895767347577383620989326212371887112953474833738295227444685880285037657713921018309732237341358646788245179937933590088936772348655578886397124656893922515810664985810941947128557103973413796143937265994336181500131686752244524577172918282435861484773201125619373700824792845511748875657989250184321295217446742819218390585411438766439367434082193325077797190523982785151006329267501209801007114700702122904729453665338544796343235667069831715733945469016440151004585982099428185288309487123919201919311639989793464838791608582737732328544314985124756627809083319306875531683684030932591055110079468729494174075689219717057153979582249012122791265151181276355087762908964273050007137782585969266118933701314245739286092488521677826464467609778125939586881248162691775598824685387015967724338576138613428243166855210752429525741562183127439634917996309115106974497877882991693918681949383662881193607576761982970676041604113319911504606021040917614500750454221718795455034600427547666884794439364318192870029602619276540888626339140225835893436420189997295927760088278230960382683156068127728372561466144422522120709753407161261240000848563975861047579004162751684741950416992438805386611929994576546687128325151447914176555298841914095616497857366310506096877461191928552905020477468015591996508248692624075627714241030747481898256320996461835158675592407960236539403911296338032012147568962006459375360553057546315642362136422749666325398308247304082457329035537047841322217301896699719019665139235460993174280220138712227201999515559624852276120640732189453102541732670146666459233206587505006927245248220931216273642071281502089833656444124356404592432253111545944846574809858753882170666947498718282868121570466181167659973866919538012688532088184215001989816495222288497194683886868426567248837734985183182459358637043139360022515154031439116301230257194241258858290724214066535445429714873317530705679844280220147728320504119069941064077650009654620381016761725413471386693001833336317852728855199563008600502690107669746227489509269587549563684816753627388714856551869193436849169921061510441266638969310471891406011829528541061367213376947764439961645848985143716663222588490910506595132011125676056265021269452965958861188214125358769744525055130552614397919885794248660562545733702349523144134587441805207799459248135246828813551420146558337466906490175500900637000085845125917419821548762562592197198619399585226794102801768368589092130737326069946314353813011885862434206838658609281543146083460401668959667096187833113016974586349016254198406610817242602918024233977174729904775735140155816536190401147511320387062378161067179748234025970858606388496645166628909807883714812728117881338393091107758687984424640713291894284592383254059279601243733218460383112687981107158441341941964203145793243482101122727995955223762491876291176159860901568939147384101514450695707313802312905488446485577998714490219234563264935437854712860582444093682453961663356656522063727901763946706864267816110760614327986492788396195239112844886345042712108320389358133354555508564011362566912131285040804558585495639812765648845331921915161983514672708810611456197407765102567790531764099130914045491477916122697178090499226062296970050602840604191993614483961944615518008538887428795983521354069754695906860234754128940409812123186096374272953008761545314463770935679705584482127444483383095366176272507826439201346518156458716141938918760310929371301836640519316054326936200644659644433353876864267669554887243961547928029726409296457851730729674322691049152376333637147435235854454281901000014227535371180552759706051454256489549451868698905701540971213188630948226757858166469835135708227020513435059631191320054020804264595849295087758749268959790421036844044497203142614945186401526753804850538072980831445498465099030774390906625478203891788529618307113824342308247529364207736083827090606708742171555878295631251344939206432224699790090155982293224397963841238142654550088995731936917183975781707583898285582665549406467889376375290127856335367733518709952637237468589343606297217337747915689017680866660357200706579045102932332133265928852540027201099351511071762463624030930999028239899246799680917769863717901289703133150313823373358068294928035411871946688914869418363384872286897420007628651176170574568676291485562530397886912663764902548808891814440140714942935271664674521675904591767157901452920509587457742064538405273127027990003854135865375344114547966710767132714523069518641479634953437313091644203045584228107412778981568690626735476424745193174500849551691170275917051969364635262125038024208481218301035809643846521385736099084894366082948064285048150680406437036727879001564454801390734354968802328622605813020596480119151901971880505659328009169463394876071896553392000267306937432647756415372202498001781230188354399597076444960678262914924663578053137876709334640004056899218142620738198669118195608452642593946847387026152968647107635826538079647115486981493103033756906251668135698197320899645806721201295051328673709040530652654846268021745775881303527674274577156697345955078832654478684103321924284277173295272787186849474571797877506691378573359520101986193147346147016528720611544818111036627172809806356508161929791978715042143604865702997476923912587713184104253047865252001670333756020812623828664121634211687984124845767517271976520265487727085931780304642693464584983237098053413378584076620660774988299019783925426417994500091381026252768950568324832028096868619341293591075406162139401743667580527567655582723554003246605200807688037260819185456493791724824147426521766689493352654952601076216446804488648300283769929939785503134667177763050851959685133051494294315360032922055535652791407222983824929644687501858432265575715996804599931360031020059244331065991292021112424489250700212570387806176995424687559336679131363875177459142537067260550074656500440576867523074113784421892104921913824661835432487801402208176457196995510856351672120774945564401664827752185189222331014336834717880730223217252991682161709269219577299163680149476982163168595590007995475084295791190163182402995217609222180941901955065619783670444912864543074613991098015591497151481263336860733205944305791381570417918996365789099595641989531544497795195739548503695980347150208574953238061640204373194070408992469755386397554892313994664314755610051686549562968326754607496062343803028409691695147219217762571031119833684324380976132017768879823062408195424617196836664489723627583927537719187689926518766443731398758263063212318635610554991549731002030876060265522223688307585093009730666892028627170857958535026813184282526396378845235483059783610653592329377129230824971001807957462330451600090293000372865445930100695077141026534233095226652730054792844308227169188284115308989108547675445338884924578805325098772506146909992059973627488163333499245607600065395517017258376549372224637032311871166510875417345529985588733884764744448484331844666748682853582601000674052379100594969350766839856956934149290941425785249412945254624477019466607462363590498378059164497271983582549933663938722913372797123308114718292944229239946029212247869683344040755655886753570989488741965775199119852794468290105921565486296471204029140473670570278782946504396016897961859714389799450225522457927012542071983572716292041161434033928002052282571235818891043506738986600413368651042751153378049213780860319045719861861241002643846603931169135055855450043507680277580753660060576962778118816373983898638224632223329976015094291945391938028786849988432810348003566447193341447435594211000367828621622780519370493819116770237228321115411282162311386586976171107608790666110385690452509944377009621276110641051276381829869689126236791110749146923289634682650030357430035381470077001098947331648472423783367026253048564688510472768807050381993828944744360301822427312512988581249707862877074716280842860485549515571955889366510524600017506713097278342966741535747831634446479937102180669293344929900167130728036697246249180960839031637079019719059784037239148274603253682936481875107375441657217191352143362090903800817720283245242101276910213868838359438008063688527854102167034759922223375987895861925650071990324376682072290418766484896788798613673181154057078540843882012953153710807591700586723558356198402700810379140872656993385971220383298335159581788365208885550952558988893828281771777257729448881170711720665994857683451673556067897121346761109444345545736936070291852688663531187738208382868310469123311932490997662685735911198848878789442337700371096464107758599991235564744736868080041946585833362803200801306415905818971481479955289917048511446544114135535191845581142246807978849581681876443059132081123678262115699903209889303837785071558572053860000048562343498119049583022706965496952269293451010962507846562444258652405293479674576544224123283258420498479338785020830959538245326666067620984164892768707955546462566889094329836307368060894774693724319828186077893287599186655796368742147869855914680124695292099888669262932426295044852424741329002408395154727023909732717478032922765976522224101862559148913693017087704586275731438212318850987173134857395103750977276410097879099403671358449130634968940781806613920302628079362536626929520395516734102706522572034834410890485599568257767405962042765952083541518221637877367315641785855596870502290994427904976678478655820379210449503451572518987918105599255032363469005468428890357506936124152604764187048410407949393555749583224011812696279648112829229444173302347784691424193566167568869618716896889497598271943920891842569936258519481295482961641634291280485097019143797135207685859175486407783337112350450078473649929691984475609978329956469014442001852754092402209267816857905598080539291485865760712486138664812934965290284996501570552259448564549013639693257288500723323249300439581739480867809941674936063843295073923518338084176587020805739501454791595201796774670036103203451965721616277922916954347756875835612544641239106282929220030710684849444327558275878929795828854391279009492849219114592225599616299529049520484607124065052243640731969042407885337819212309576823809678452459768540328599512533484302449322270418291844237452388811216551076641557506959677333353989938827688690776075159412179441521128393071819546982466353947179906859365598767572894003217534352105409208105447274397629464793638430038666960620573465668092882602363366916436720071625871148903849590804916624352263831895876724029039755762391026071930832500702468333771511280361146001313619470407127364201300404349782431789266442698179048659605982789824201380446877985274314315218625017529953250369511038137713772472067805950170348323608699650414316253509317198237969206294709486271426622489106365339374695862675636171843791666387883914783711412091050944346299758256084048995645593866353682273679694226908110426055376411462709904039851775181014444439555665029095952576272078581820124870757989949338941285298189184023352532691119283854240538454844703775404009414946346549790742247702183338355579008150356528090260014893359080834607298096631972115068091232655492568869860123241695610805203093132722043344482918193958469691779268256449833412310526718139010086389061677404914027363189094945434815305074695386823310257691977298373969673898125324435258246966115373799042390612394581893738378686380116732663844332999531683541030828257067865256039203485753127517852520974297067453916106904533907902471045466942703383281922651104476080352657947593894328299808671531521640101644057751814353126047629917664681671678423130710756119651521005885254400086407443027929730174426174643928622430705932218162031888950354776138247847732454583867403161344033759333044899448939839907246723142217397044318907832975350159100658914318831283271933468682453038164749011109706741904078402863377091698703736814794803096363760078206613293849753690055406062606986821915691576830247008056377537671124716645289275825115852914066783679455175880450801784214864469732171293967631057726896172908521988577420625295028427581852950341780433519119202942125907137014457701909891568219750286967938447076816032899431726338638916374059983772275014463362049666801615571061315316263610359942030626695381437646296168734125957399178619280099085780816613899825519618523688985894112585550962633552967798100408717226251712492220277521521059610031177378411090642729754970674584486937656741023578377046037042347776530169912126352276449843916821189954239593427879337680695547015715281065187491547361604143176351386227545544211788748211676524699331967807706209917363842753694528432456869259544641650607805150226682601065690321515824127052770303201090891080584038623124635157840033364269637280888941521156122982901465332445341313384401931809805208067973583613876533714516630709394651470016106008658367798081937445034444506408162551490308532589274070807616967143649277328057438775322496961879446279463711436680447672462753243141180480032266978929189954194586130697604563212541604054981013923890030023919617537432136631416350581686564955214769350215299469227348032628993819038013418485732612946837768114021584221422197030200484410490470491090836603892317586760374392360661615665503955227178293232283867389288558709465305060562096317412495134484829557017104567231203734665843989409021663727963139782076514394800805313749523412370837223258959671662682405968197998865229240725167733060393975846636439896463663756702472147230049920858273836491614699570368520431645822719159868070337708382531924409992514306368362055985081336857758395952092896193353009071587304884618672410408819261709280912978465653590767354095878961755381995590625073414025054415342711932410618546231873414609228276318591545482942167646791056587301154309923858703098087837347894073116014947454048437779985615897505903190645217378523916790004159412869508865651947502245078637467978520628130353445453971204848791659309072651020433287354872461433493772901284035226206907121011664766399385391288373613567515356320386648341973172120152426022848986432361552106701578950191947715792334292246347408186444700823377851312413736058220665153747084188422662445067533119328100255404876060272477306933326521796184967293018001300726063749474465217144496505575849820474621584171555715274427009491750379463431749189462044152719367414337519211126803275140841557735407208980934214190094647044930403273424549746515717210208353655221025531882826701420374598729986858930668199624650557481361783500008168132305670042527199956260936652976555936657835183234604892476442536106040947958840512200991947610011371644128022469139277412370035212638602482979593700449780962238036647599354433082769084243103041072502401883287869174386687609063166632591190250049936152340817751974502205706300823751535212339617774059929604147177477163575309936398039789548519093180724470178159800817470717137845795394373094220577588022897971347746554858825014756662403385051518677162535567267040539182832391377637309048923043147000381373971775647937305933599790177122970460807894222463387214845713886091427850968722059493155049022754498453347721211059338170310284590826938689917292138339469868918159571626179444051963372836836641871825724363033035289128041053600407790869600569572369475238027459982210524110312520655508540338049089318334651977990819478721426149027674272703064798077480209489117678566581748552733333870048902307251040492530900826554527139652766085002800686011007759989601902760229102972550378668515076910654294460514095043822758704438463987113737173797892625500856801310416752363948859253610408293690606735742569288686100060382211589654998261711159096494783339218119925517342125634267614273488483733908011864906257326277692727516262392904443345656892759193478102686522851626424812757516268233730748935500738411290850971777390397125370728127707138166656793120616311497664371750241090072989399141499963967722334848223950748438062496092315556357131934181882419217866368840073797320364012287091037169922575427710799122821138524858895720630707301673395450620605050663334995375009634204808125937805838170805651283025386906074418737984770166343005211403290042028111869268668538538623504947599166241369781003523563388715726911564910908107685757323643721405845854604436357892471199474532750388829120300113842140107934031671696715791273501452180200042672500861264962746114009463792593752202435494072888643847321619746256518304628073032750076766938361397639512369545467181706834950739676403931531974402945005982485660315041681679646849360705734837567819844869111688649589288090259795385381854625025241379391314935725312416695508740640887298754052340851251606002434620472662765137676308897521614604598314825591272366062275910295089032323861316683191844633621639491499603237169161144350860383886355061324351564081104067114979611713450777135437078408701912214481349874277501119596876306040387417251642634246812399624974660578154111118508012204002300449540369923207314669249576702142659137922615807706963412798439059056501652335397719500450854867723962374162430887869018244939184315675284721574172459685347557410789787335467469928315425877602419375804371708541828788322949919072146041945286824533986438259536565115903708490782380158621769126202197482862804398709184074908159421877522934597463226660580639920860977838935996882237329497300506203843617963579077777912751549781539083592748613043590381796551910765332617637442823151409422637856051879725386198882482674044237652248466129743211310666265717941602994330748689920092499488170134004366665854707788074107943282350969814258455978661112291305435063157618095027322338883093151864799865839500545310828704205008155751427463760016240494962308754692342924831916127980556108455102857521938901726774584120349026745021959311377442745219383210177529319550944996919463016677202113387742636950370857972875525398536171061348023180082825959933227422320632408516870259577939791754518855445582809775231631349008832419262655853301500580549297309220814528199437277013544301890645035556460852168332785931118331406991490675952562852154867490764890412391004071219716856657243430133444120334302574654672971976729719783037005125192450089330474089148352615792902715368122147830286104221394687099557026311664134566303425312697323398210022720987895413432700263980519928008770879298458591732206055384631170038790388104371531788120049068843323120348439880182953597186543456041349740561315491611690969022691721017668608427257360397028080562756715840873602814854131604342571719278454877813623648939252526454905488924575728810018318652504193874941624204042118960983684508287696987527940503560011054782980547134248550927485638211411044921582037031502035790274077355338845674671446298516419197822200539636227525997651189346410202350939880156102856288935007643753108129154798199187319227735966545284753785169339162816247121152888428754826695424733894720855025675438699571215013697485596126111500844214554770361221491284431908514923560950307825801271288405300593237156310475063324177265845263581521550144363897805226742058383680690799613683662757017741860001715340748680929380719484745781426375835913002241486697958501421666044518117622997094722588662927442154125054070736479911587410275605465910812059031332023994135646459552089109465146362876351656030860548986801109717416396601484483276863433337103565738467776723933899421787462438908715955249260507859978885392487502778563738363798376459989446533341494839962438422052739804038748225793636772322326017393867972278580264180681881480270588896028122285931848891170046884604472296599109921548183254013979595541516263633618057713547756677345248510808645993311777513471881840702309668981190555126295601087702318156487296494130228256947577676773176475573455359163453617149580488764776477201603183357602334670483796014334720604299197619929583521573838059427773410870238466015769235780943041212276696206112177766708119150711241414728944362346419652456362823522706624836792923330014696215941091769548765438396582115953499197245463322087470093270850389920392880028007095237754758664809167538506623654589364861688641145709609929414083919501081973869416115561656588999055200738273861239663997274425388998787528870065884172611783288643676199427971955516237494667907083522059132643916202085822721381703010648280894440992363592209261437346025532111897457086078598107741007708129548658604344719481722747518964872418012983576515966732484528400496740073269862130981728590322172867309453814079470769452554763516982040329408426344858853904565324073879324032397148601953780128550232270699283348980043854296243080158954094192037075966757528874701072808194299337253589116211746664955089420849343953252492299942152738640704711022004187518649650255911187675868439198158591644923729508602266485846499689645930824311660817464564061009603803252256736094359999240033602504714598781874873184740029385350486267079533983480917031806057748138979995252368243262976894355650798000634473947266939367325431524692223166423801458250678529038423808583465041415291955112873996673205972986526691814276218790787855109419202320868205362912209908602710121092116437418398054169116777377465145553068811675709745943501336186858116204949964491005505363827041588898460149255388261014471169280095959658605031444564228293451205210193975695689508801331799814202188015217572976023360016953054921803761965285593512054332045472260204379467032834200517716087068449288847876617645193559270985256751286161455371027247252142532065720841430378490224621654662688940918193657291691945301985398892803596000527278846385174933611910167367133042439826587690964931087842151968626529514852643952084351879256162234513756391006632702231669185941295402507124183317142444192673463322639238999135816616277251596215893934975686385782777483251438556601364948169110411431311745582591438248564997925699769416174299107654932110811506108306379108334471475338498016233979519172714611222991453006679291105729526034581309679035931352858038359000500925867833890007937914984369028275069850342339885930278387575307770098429325889785154592470613375165595673872973384300245815636433067133007896326395131724831745009216052037972544482324603289036322718958747201668909488008760564262073996817553324318402456288301663368379816267852677013858511018246606778850073247942618846248857354638386358885364524621089988523871767681689631513310920904528551132191918308112513083272554509126406057817693841148691339426774614046023934979918079537524643060720187460424235364628414244702144432065824108980455898004459776011840786292522719762677504963275438877823583342549105963472113150172705171883800789931978708495667589123407037298149144782053902486612596306504500919102637455416958771156019632296414960181420716647672021327554041774290622317387254537027226951331166920800392807838592702146147522894893264226220631252434479968155149377786723107575186291698088316222408857591470399868330309693771665026880054668291678488170898593930213231388133842316147986655370758905249614497542200608615289169635225610618056540311272173822810078680184178671313787828893747609093063339070978947035578212014889440089985707166112889704309952050222907744863100497476584290131492079480088458966151508368504787966990989236868326150122834291978367882157224408797649562759086599091371959176830101826215384776158620275106098621789793355156302393033093978099150868580795308527443586355542986733455016531196288371690201627611228496906509536132296758455046507992829591350372082273863251016849295905725354644396812176907171664551122754676033970618989369059076775044788722237677574844877375099372846800972523380926817697073803415316358938304301641660861198389840421919057450876145064074662977979064872376290328984583317849495996134297759547086024063508630125948022027774612454269349150576856449110574063726972196608966837751384304116690736655485888212036965341567667461157843694779527772850442825576755368291461057175273533588899620362320765615465322606286369293273210791449828380594700821927008891798521525409861066404226948012555690946568059919004245602831585278118169555629440369151777284490182777156564763591895108954219833819774663368323957324269873074036218852601155269337901300965300166031985649244718510097745062044947566649817888767087689747822703374549378227990364033981927695478790543766009863193615807071062882522394375880085766579921430495358819040211134981269823440524059057209663848752165803368987042252186549092360155846881477966130434793888450560072139628967700483141558224854310722627914968237071969061690670544266821811394148649536525365578226840814940248573647845701343406498989424557701046481866692282754627818318440304412754997015720800041858149399495228460815942077696073976182928546577398043576723704205400723506443215562829398577233456778594703131928527328475591981151160481104187596302558041400270883327407185308854977117339829275585662743324885573365173985123496230519669594628899957744331176924944568434427263941432962732919072122911945618166976301237199378998961400298460567197648361474090882018113095649253396020045502946837183930856860504055804594590849765160613656839640088133944657565385307295219599124001105123192506781835388707063521635368046590816574224881801582250419771648754162952475707860298464013714570917739783315371774758434015836301117436252829082040282755652482349791517665892965263241239261689199163416272983395684306790591157342140657995678018066810464451210841339102578983717743021525342285522401770059382504628828433004915828496206470096478127811260015176077590474038979170382304169998671936050059478557376511979345458968447627835136541050475042405519477130771521832135430967474758381188677129443766582462013643327708262900229419409246994309742202789579399597164145357462520641364085546971095481378000393040568464064854086976400696403274270297031796598724452447108930653988216508349577058841306699136738511090345368312901407302840282091798584792959586363851218825822234414866843983079751178414423725826204332034941935129339331961500167053026264489827071939790703841428997113910960378603059121003203602393855987960277540837810076616554822756087394133355994599075652937963877374340542687971700883253076958136254587418761945050135880120727921575663076170879961002141146342380588703095963091044232606999303202133462159681159161527548986656450529558788346335866534947164069732964854460333771154594704028242657202181758751102307442382393035880295891207991943687610982034515513248886005447070113857362912656404265487493626328848092133315251126412131742460229048979593779434146110277907932891317887778670012047715292234590254890878093895592552247648840117092974861562799637027083754886725291307847747818659907629268325680756652376649641834117121092364756436675238090465943873037770466246794149858707655525600913084110968660017529479805323108314004737534080876186927710847633926776114870038449112986461357785690887979103187535901245434379805194199234734714908351838008926924033898263503022842672649270075931889326345906285782111859639459759762544418000293680580053678588492974786075039785009468792095045473398752383259804970522500144389506387497877860736885952163488753390531945583714320657079296017982195291489236065666888684275943966547960095067133281681360623143690093224737840916345834512181419544268406397164953070026370854512737589486337627539659442595502764582749545375796405426604093672274020632257284888763338982980971380700482414306939140282791584403680194164855150615337963358125089678002622664832488551277454232894420797927728914613052581006507616628875258154617541888975619786607938292865722873573081444697462005816390328125857549007931415187559192442422606861550848153734675322075475652417218511787720276423826255528332055163591447960132373254810911388501773135995858394217111657364881238710735042553589947669035002629560372059735659905903705017942983628156004501923168132740190685181542073980437099209196335819267867305902967092606961111513490408402857760884337080602023523953729353418206815474948016243065328827113430675321006133901281810913852618585564172714813555444476170670733497426012246396025649315225871556796747155944311422311028931304009280099592991693795637867524595821091759160214340026271043299322404154269035799929042440079940727931706165621778695181942326461116626950670590506039765085825769901637436422479559874553792739209518760843173229332563844639089117631728108086396337253697167530972957967605912393639227935390587495793678828501887422677462469720563532832826276404187948090368768104718572558053606027299547145218204412970110256645853462896996540788682425164572065591068103251412876961044401581408249109445355332984428652502875374420686026040442906583656811534118565961641066741450083784514838368045358159904536328638012823753466451485884076257559974162859001331281967239606488574252848274630852544999843535744795839142754956295564701363338127400835948434219385278323871311757576717202498182066046346370460022184878052264269333930121461122581713593334467143875394848699597086565581913982071353234047350639667718405913286908226154814774686950199837576625918169178205564010636969182758300804979534343342211909881747720165422159104126982748637979510717635072062580088514670998921550458554184131549014035876650445638736361408603113044894164442934394153014753802391615473396334346379194906443920718141472256742977795103537539545413015468680988145016391934604955526274495393383430885886651138506536234713045133662076000646305780002048926700815372967092399314700486468737588303912820882250164740964534641951540434733811276554870255220472707602580548484861825953060274247322464079825303029785578368016880607267212218276854863199542929828678295231758527768549026671460028924485544466301888552419222229443213581169895574526766686774356447634748233535753921575160844434866600994516786856840628495275661815324260404661315599598108621017761555817370465711474958028574089549770801976188761144178024105016592001058132431378826439140926306643352521113260881434404383764220311381819036246882151972964039449814508759346391262636363142444028745599237359762575869638613674304711533728716447543472215786773439405437827949428980668980724406682606482379165277547072738581371709788952328142802856741626186310842486062162399648594921698973899336177304661348759755445410673496715677574014877214781089192699530864665427553397365704129680476153278043102680667087066001605190281698864028570029535713688611445819176946547258478002433020005978814313542337337745645299141904168862545642482425504011499569477181093911518690489552548501025042917728665624630982421561371287620951647536193004431880858743098915909553095731964347141802662346664242890013381028585118673637719803256979237424858340897494364216480490370109836132486018764289163030111642921255708711187811701551790092373947242015156003479676759443150237586728527322183570145427262942486591835287124935086148895348827532559438418600223717926411885015614974311563397109479447438925122194147980265061575695855264427293266535078292513442527355471465297263279331551462769840515947117755007288165820140610425515309534255758660309593878444842932230331541032115728823790470003752220554504917552828157417068125776959330347797135916419309087993024227287507103931391803386060154687565370527541044391413740054136387115078386817966398478646158070914966119917114981161389997994268904270715396718847262852485017069882493855944881603050827561351875729350873421002526800639659758576032840376035742109333785345580866602906406402220273585578946223855966982988254079119032942865081925288122991627975244751220589877373986634128062189675040983710852158244999699632810105299575364619418694674164835722523168422486102489763376152475584881719270451399981395701483897176349138325912980595331540031242231830841858627177342700156877765935518852280255325306186036447832143683835462140799040550394398676793293607169144657915563498190374275161792120348650326311840089710357114232782143315994794522425632757371285337272326617930968268993432322353112265529359804623999853166346532219630011292542860224436014742253089783418030256641327305228074858771637480149938749513370021599647378797932502725999164944732420344084361614373278299884664500151914897804559647252906951009204320746427339644387296415167643738651771729861536311165559077536112139927303220181459536195244198698281163494759395190524628662040547787940450906004818911641068177675607172224201497930201839882737236595754692218371455556243081369125129745004646537140493043527384403712103723923644617645632139906314812402970102529900680865494041573072879704436203516571730380586659332087847487710698220298064135340418167666912280531378334997434211793195332749926263617287692751961204956098830759010802209259841837007956156986124344308865392932824399520368993386872249827813761017285579426265509247502328534096949723295558785280330780996504877131534244945118631560065902503958589349259662164863870474435990440224646266980930350094680964044055224858716870879860978026632029747972868693289420664578914609380779415809046635361448363330982621220316322462702596972869283795611774267996128947704957537873759698382174559582800480813032214879997828498148378915825067927543151716838117467344067727214480766919986139862819848023694806418099021662133780289815128970727056072904553602477454342414233635960538311179529557501552277624830563904160657820513200342986604726551045278182567190276461494831558344547049230404498974275072949621269086827171111570640966949846760771692041504545931298875944260850224671957199347675191377235468992730834576559281947787327946580395833831795076726110489627784927704369274952528681960032306643238323821169887130282181237563721444425129707551864039291347934495180570986440427295071432696023645674513668712264901263701128442211465723026448204325236022157662513975652511393916472998383136091675407279291488199729499035622666309008969192886866762221387519901300108549172194977781735921827563557721761039104506304486678769146855771471379623166409841139165776034579268285024617957337330722197499543443413098783940430326593457945752137202916755679291417191188140464208218501853590262187366251171957040573153035155529104733994093769635741246360031869141416817527012363183841377230324162818106945962672718734340006218860301069563900716141383714911428218461415163560970826592502456908266390186766761300353843379753512189232670912811729260323316244529998136907414714868402000070030518526399929894331943724051087611749624067015731025937565555886114109525487565168804326018632762943245867663171190284082572012804190954675143870715401190401676422727853754657677878140052332124895580591218748749022215971588300512843302392212332236223081924808604651247190574436197103335387168480081766181692796945339024658239966830720567790774112970586966164930781218617858515064697274254486893929347847636463915472162839876638636312974004465760288489768785649885733067272352587792521933193118553174231634776895134126642123993878248535528024410581549593815306855886144289494721622127928959667585255190218023454124220918787249557660668176672541063834193795108472828187077698283611329932687553546592115425135247726923691203014374845741933389431182517119653407006694719873616926355202671076153517307406491716726644756219341942413456474535542497663578250899792520672964294099056258408004602912922677872787228665549585676048128525033296025574969097717367842569675733964020056314579866692199897538191022942663536934437441180190155375942978056011626435931464072611057430394708192207761980839650861456451978429103411686943166851040953402870923243339327597787692144497867967104480354545248664366087813761162009248972448456969635285333967766854618311865500962606165857871021607294771061144547474369388742573668659626975253999195839739921054375044441984047879108375572128690499532136826284603733040913153732772331769412750356741692093589831063142516967785230164283248411135753031361395587629717009856130258129228320117657941181452248643504264475601021064362500845818093870942149645241705654236543996197814399229557272197940413938398427115644717725798915169104360981568585890282842735767551166080274975679666823417588463693480330459064567198519974298375634039484536480494518124947639382004407646541343546598651668610408321170466792564811961059818617280507080637808091736087494730185610981947404325490943548048339577035362351043096350281700257556314444996854662206639144268490212983020627553734360478278018371507725682491037133354384093027621195914747132798856173679105464650273517606703364779749969364565777554412643880024504382393595186267447813073483877563962144620391725018174893625964676629270498827189604390220073728293730599642453148551004867294761060171324871974260543540458826202157611733443223883964780342089497974474373929995197204225275040373765387815877076362260818897298594706868165401881163408512430256713276276938460695807145763527902859546646774918652564758413097227158375691763121792621365241007085401589870170656621129653896944141879289927812780725102050020646051984275915715064482614185787026284211127103828717651292204832402593457804578041561617388279002368778003353243728044253378989362580539913029340555272522153742615555433991878426398312770314782641308269471917802986743577230417735529166057871004726529389428684419606999391114645360339426951346143050654834365667987003187103085723052704687253130251302817337055210227057707356447646285242314531883443942500148571641362318131419753820968204422137222952461231049121400861735807353057378773202619987489031697090854771944359577855602440662364098975746445642792045335640004673625189660905051408874220385436086184596740711653255573956779097731383144188048780490860436949224902405842527648165140422984612702637512066246067613457900288909256028420456911527084961716699007568813049562298961563277885353085028577852644728349685895260857955982212442283017706624290845069021695325786709766251935504175091117028789779279501099567368384390868230724953176566798275791919873329987362878832064738513190278579922104709789295641127814876698717589869461301863200930459341827257593722061026966430636971920184996493843551917548654022217457519770482255376159536609645364307876921069265143707976535984049679627479783198185977973721735783242089397656576216082233189043576818533690721827720205899573503065690894938304431679540249805954175515427103534110869622779683046341157973424531156820270387999159242581205798513010029615214711287748134631970501214280893001639241669655165585868102193132482704181549046283957312852447061268770235312083937769454923277502486553318812831261592927871741930402503842367748707542211601276371320340929015819334146103953088866729928969691297548188513140614013534995741015212270794617954498835316213680973393379930302245909178911207815254740403440018752904451088984304130840975294962202580955685710047699678325798046996589639032272052813381000176132528904937582350568668020114261927352648249310161668003618157661736544379143067298852455624260607549663933881566219181419358669895056186966935970600600054143663434160354435851944032712785895354291107009929834917971068720590721061099673920150036822132138480734746284375861677558121454062662406567786059840895754692519602921187633520311266705436971652096761117111919328176722628724695895308012352340380584063680313553973511171232030532949768088228804163785607759048845841964246073225982265493899408466439020173731413805364059849753369073488347896143168616913491658468107170493780673416450662423827935302156569324434015217213025648655910663498665948960851337649898409690631706948918221879923022414661583116713883631291879958272657480191684848415062703625178265917169939320277366871795253761211395042866727828294511786618884474404399119197008855621247139276894339090687798824572569250303460763593522685385844131628188459499051842426057844334612085829583842466967592172402784336288897901134751972302466228499253337022419927767863440467599335605198965472317729473503485844633413782894930851524731371612992557655290334315257687458934792021416876373539162184539491884939167475926975412231041742698874258577086749924250305600218543145641288508166427389197312587660847817235436468273836913685712597952935450814412855376764981245392909018841872554639293105111877351166178319243175641976059453714716168154288104682489948762833207058265262114759039802367276765886626813247424228792138196137846851867135556363497305810147559005568964867615979113715477600683300620383922676700407738800088120645594254052310683403913874356008581040168104200343357528672860295844490092130267234561186737015208193694724951611276635409840554475941464967400796801489701467187659080635206238326411723952657273145726418160089729835744802630456141251483974213603541370656725621829265267585750694760057456135719696830367686748992882440205412549303646326252890186007183070887447456155348703621304003876494798535092498995426845940102319545407867745095175019670554400850736536635577997937249197577286043000633195914125193518388937745331752251202366290818592378414519846046912454806526891901425505907323427052939516193466057517850450443983225232914273079473870118837858279812255433179751592222471568420743076516396776129972688283186433891938697372096982151461718715346479304610962752330154688834552487584309463511621420033862400908495628053134758208051494547559607293491243394568179671090456605954265520269841160598797690757262678962357868153829520377000143674724919162814097133613777124253608181611856719270162091405787496744447809217621657974604355468849188883504100229617244058806691616055381328695882560563326606730195414957668804673289340167965040781856030468970688098468068294132392139484251023630834855311419826178661675863530899940874286361266214015798966891743933721945395218828752851378938349301317762140119990030885231055825785079455848802550609980486253150654490454344228289093525893695186216213461989874688689614385292194599043529198727181821163942357983882921725699815772711290043873634756911492139753415414406013300368581870168863228273589584786654132601047342071915418961032976683501610074136048526349498344624395623352466188767133974563890727117843335092502381803383846102298389800444408747596944053679374211309724626957999863280104673529400398387949712310549435587554560033883139118132319621848785007576295510201519687167994494554849433210246103197727189267948520473028267179649423428047666344314589293842307767450411524979198748201389976728003687633804341035366050528975322962585730829557526841710710708895093925330245724124389198236155751800743319110780835885236273235683782790974784259793856771921652353844914541444459925201313695295796423621280678112657405269850029820379049969350162752869193339315529472507687046376220158005960369151147279515278882425185177206343154015324959384061223919262526510347845513169040559820708713017976656776182763095589231418218613519078722824859538877382969490158873199086785207450299566587388362556654357220251140244417066237651430878413148791394324292375580636570522757983160880149195194800710116059149637447654605312747532835777197814410029671398294151744341729429233223852007597942536435790383069365722318443977942424641033809167612936980823077140402231723012141386019476345665807815296306376101329584469966322508906551814288652753752624266499106322044729941189283348023540807571901459347130545107389040512894595386050058014066814551622243548062578245269046613082495591848976041735084197999809188326738296526076470156138824807327509990279911808022195983511098452448769014519478068370727677854269750906262219362518557321571048900862213000240243819910928270079084396237371022543412654154846582928042271074904454469839739532508246220564071714390683443542829720153616620046099856906448599882669672076040463886401856076306172936567100797967718398977040150616706761124026057228719891390911204908443694685717557474635258335982238112697493620053621462135443135108528291253117416257223121529221233479931467390108317566268304273036886766504687140222141032573119365898653890547692693171559521671594132603020408653771002489657637911312339480944161794852504486845847057704289785037748821717132764903094054381023033252932442461000148945144561449690455565761816728488388546480212816086673877067944204710579571972075710316802907025487255104306766221948806104245023002964815882977950506888148569452882172955526229595794970483762453357565581259673649615652647245583141137702533563131277968209738958662240590195900567349883803212284639391342002039066042201778473753998196803015145839760158140586190780205197711414236505961393546969136161194275650439803676928802670980738376261753211324261478911622381062931881101888455139217977693004223026228973017526286135638089152489373741825377828468104601729501821397948003182868161597238021776072993486672780648395222029740246419190689192673099639233440482598278300092510451869146254126460257724952364645710217825391653749160443573297737727278882604247532758994533209870396617609548110948313114708078074852129893608720117848207907788041130263420462462805743784685089241135791962482883095823560029897912609908761593350135027863381526637936395818496121307004620804551418388465596280454792167278209180331295813308778805029816772502000135786011578038483214920747267639218484902626465883456639208906699746947286879591998642575801367395520092233483397524590909961022118538027927135667673588042750794768277785128798688762836172022442572618801070178984940184987575851744897662974476679782420469716688249431321321722351554493259949787895621356104714697232893883642877720828216664467508764639705169629085132883454346109447327124147333374459686289456762179682727122990866040790020042027930184595327094334965824238474183340693979221169250756706109357583662153575394131666281230633423218164591865771302898430107914293442663288615516356673424113252061592694445255693670314576175051711805797791759279466999675797983167404568912162144782921935690917539324664991821620121628670426561274346537014745542167597503950482576968599098760409191200374864210305898469056029088759577168250089491991081196917026612710334060427465711674738061942190851167983335582815655013945116840722653908951383469539741832180338709865473866564212775943959110796658369279914575261071151848253032131798950154236979510856147176499826138602848958381128679625564302027496190960318759543277498836043207745509087339797374108897660601307810804666768577159911629669106693976767113017447776221794018376402855616099173128449775264170321353334125130475847785253818223202777066380695429001105136688745475598498640244827044437964323802727816745923784465249825457555279354453333336464729410869332375816686169943420893992695321805700069369518013271576319798384414247139027258060967122230517996036093315769432689289977187728428711874929774440057383541235121631325488376404102009451116134171996416440788486602203171250296234190098201783411569381647381257334499614112776707085029511363513249080836200465861694940824628292117348116798136008416331657815538202732941780866410522528736482263503512203515240832716287442886638136240162767369733624088064331597769862259733820317070076247207040714033104437640795163844857955047654640079990620863665550025244258790470222403406952056960708100402640643433589167242835292883164302809309647030922169690484561285302059502606192198628141652873439717057078887433035205160853487117554694341543216155267713197905929018406805727930626855736211689356922378128585602330732001597159411958548461365946116939115600434548079190808861083347601985325488206005901976018699050113621396675832229724953595420456889700249442770701771071523800199227322097734626205353984760946692901566481180634657870687206408550444696627528522648224458450504044085568536090905267027925678855598970488751533812149896981383053036419976438371533027337643551981993003643154204276528562484109761905647913462061834981433732659254437648503091500690805253196207468273512827651353805852240271979378557121510817103724932732104584272793385936132316816971101002287771401830478222682771881128692792426467497023761641841897717502693114820062392012208347726511326249272976475595610788897838255751524049162531108252031026969298169552257856008192557229972566498559630696779075751761457338441672647539719696058006142382660006201405199997116669269317576165625296116298806723561657021081848723426228635530000639125290411724006321960822600132620649171111160266228555475635549319784645290475504074637113360956972507990236060047844070774489048545192331692387239291263848666951920661127529265313808957252497414461492959555924561973006749244769694165589342221539133481933156602906169973136099669878827491312982008113371928366409153172268237205532668680157182880056956700163402832323493475977273005465836609479164276782224894818634094693589838909070772657312435294921930764309370741079956035808745373663547954322331457805203790119896081672560499875779772014543523026831457441798129095896997634972280521350561539225340207506164771884549979044084547226843321290924273827362489620499420466245589435817535417373369652070779048551333048510617880370907588850180009293500465383358687432375997537373815031665065637257317084338854634913959104614793481155111199155203080988107220006322324341510204169947197835745013442574176076328112936293896234067923509145031287719482042662544660207544516163194501254233488798819569434056788533598870132385351828859971193887979746463864361350094877883865191041497145857553805832060612459007435388524278802031284585767734076390062593607218713718868390162327204794961659326304364453914208750558622271285112385303281425272436200051203562596489876937615742491616466636906138633902310371212419698888962260035908802601234932348712901107917971666449264506151201399489461590196809760921361884689224086040852358934205085339416970314386493291033616670747264528134448468962711263782913695987827646622217924551088973364456201816463372178892714432861882005442646832719310251191897471247659241052560552368014260032702063136142102077207549614780011227885245709219823328759996701707385873191115649786888604996631068488702517662539004705293406858667762871733055853829804487202289165849379074755259072298302569169585686255925588074147802122457785934402931789562581280971679811319958391707672232029908803749556397818558666890758198935998526154457285445110218020117770972030774612800917211089299936547332307340220415128003012424976046805028125971199101451989954347671570458297752503820877921315405456796573011175000869445678264806131904163774966964853567535726400559443213458191493960709159809739909056644056909778277286297472255691884094903928911528924805496320211173528185433797292809454974676214846007658031651880979904021645011956153145188981507300739505538416755886352193857976648607793413770264006516177329230681638713070129773511816056748694626843362389522553693708577988799755046883004366178504488231999814959507084772837207333387334000100049226798324023668683969420835991938486779241125767533440649365611786529133892539469074892951482025348081282120087203681268506939310289545818749060535292333829679711759212197201222412149030912935376997596384292184999329203321485342671717985686038831620442272243058679481986544661193455153965419390611342435450607105617177341909706275277777210918793140447723460115044309457928999362591292022675982628132250121116243738827076600732636126757408011011683321013258673418048793958456709382760140916291677432604567387397984142469601635438717544072657465927346674867267963301685054843128629786354593811366258777889133861586519945425412804608921169396006857333986911688459055122884119568035622467083246033776810916278961929612936473978578875978700036797725808981059855857073878040977500219373440930342342190454596503383231213095963848641029097313603509315093818132572579613379894149425961757524243820127186727699960318367889726260844188252726737867196116472007174670656750949309573746131270219097975288773523376646539715402924181745058400991491877183372053389748211285196712798093605127328795108404113652935986874723918299993908388265230757205891082086596609297270886510459177438901146250495983612084536983208572878374880755475367211396830452676321194990517326067042595929223893293818007506826737515500212398717922201679920395460599094431911084927041281239667981717747747571016380015521091322085417671016525333276256211022788569121440311883881719435945151947227162453589904748260143844403891930256769039445202193147251183524201817109010383109636402476482681240302163278044136174607435962735590233065288122512784037039819808689167380841496388536258702253045227666008709166324632075156154131437792632360715345384091543116205871608085802648177498521474509684556927116547844307718132637921292723916189672167590291314578560695247762773764395100730048655971720082055608285487126586091870868186746446994021861250351930342404621969339555384355534372441412657286816165488642286275573046349591795991141493136693886317463777452525586327776656876809770186665181090788268868883006517428192807737947462906368024683149861086874858671289533567006186596884765720405369669068850525762962780119234274290481274079830206681061870739873136406406524016518608417642918677892135590321786833102503412319499236552747559606094375758654662677995961672753497803497186625389156042309014592418186994091125910795800123822276741707733427532688986549960425893418958319896891201202125579014814196244404188436146069605012797388543390641158371562078245374160650969377483496011052934724145654571557428918880005972074570737751682516932059297772676212973094037055642608876224872394796203372253184425222567049343370573848750386103033921969705866629635316089976742288375209398828139463150670207165438084479505621059168709701997996271305972305833165271479797945622112946674784175241626483870807463326869684704868204775446926656281402449444500526192295973492952803312593973540023485377207802859579020496679498395855755465699244073601307993493316903287110099856690532460983726583269943646185677983295334153419749768297156284641145537356644372190494980847458114911437311400726929880445912124397473967029855950560053689079860012799616922060440727778388334094374533199207757825913590010378184939230730255029329000558939167696820965022200025725589862358684084084414486656354742986198172671660843092328139257444117325241179727392095534990251333437381751200809261449402004043672478904438632209353932720941265499153306291814966580510916444727322398899830844956642977263577812613061320076404995827076826878490673350189487831619931537246444003517253363997029248809731023789266775259153340177183413440587811794008350456131156778913858632186910236245543378571017487810266783218626578364951861037319176266521326653216046017901731495898763901456095484066125415383432363418366714291962277915993980879396027947828502679014398714469155438814052971934341067801208926625725484970899156675752923281872831676196948323560306657843779688630596483405284793745109890431741596093153568688241112324025427364840300642810667403882468099299628457296342361685260025427676641266847347273513969111756580534862773518926354265908508406543040478087231225798315222609940679169841077112139056712022604276929574417859396089582260342103017330706707426700455934271510475352318561158505246743483998173724696779536286883095701570494183985815978756491708467803283090573227293298270733129326365078595355431001989523397699775484708884717942588838925196308822334692183270340291204068860844385877105536708102238557864640439091002699403113871740696217458513129573419289099788864831704695291450928192227169757721783941021155396704086986021360663436611174287512323180877790939202886279475030793134616426773550749761449660466013373301583251733763272847934726205232411248562670186150237631271246751507964429233177227256263029300746683472350708970291384570826118179885533930948883469248107454716328059164673421666145031628565165354940004810179179088759984471613972482068231275315781126710809105496316590256674792359560043557447587826347811018417360348387640156727168522142957120532586514921344040934137811813362795592256773511049658162189664872939820163859345659627029078976226886167390684336444096808191232059448630824558882675442849437970979891601556100565849774323317398649869078442006058427657822440054212374315480801132989946463320376067148098581989618234622526725121009228756323197061919450951303854317685724351527792817480403223836339066669220415075625157739438722543823544075121334536229498341495620249468079182722298350917629677920893583212173889491721628354775928532498977223591928910640451966440356867772899656959565335464685595311913470993363784439090319022934881439429904295952916009230953695727119004741334610013144159961416409830548364904102906849578043563216726036907646111168307955619785352726848602905938149630358580824545108417655809934914435529212303572007571043524626731014901927427185805082938374155662895570394695495295984811267785437770590721886440067974962365183783459552291437656692183130452960795037518976774113404209011440621625237539738016854876650852666413734639769584675424383406447724280652723880036598865777546519969299976811476952633403332670780732675047618384064843634330011849279378839063273441636772153064728299745578290763695637497583969182041533050021049287391479072827413374330725943516940674654827222152736994806817694733170286780502306582432081190252725501813320792565674960757045194606280455292580832569071662914987948323754983635633860531478484114096546236986249511639521342795655108408670384752397248926328613807656727825731191053907546962026887189638997567611512470289660702397279633755830932965178672488704369513733305235698227325375583514140311274833654970869604968483704192441092515070215869127369610460774838881549958499662239690932318579920386525366122192467953756272582835739931514343482151874210587227608871225702787974422813884657682080881713339293257910798759855604728014997375939561547220286955320872092731477217090695084000039299666777705538480559291226032574509958970754251353531218515021173045715331133499830294414621392572933841025771453423194947205606049585689813499598979945829349081100933705404871178593782672784362402677166086060372803930396052316113259666086243474097037310659042364239756909861945555952239438571394296027062931762716222625822488964361703281354810799474546187820241493492920998894152563890411661515367113600574138945971005241122218320828610219506881496623785481688491669851583644588424051210281223894902829292954635035693987781095439931979703565003058747449155010986248923963041886350654766521367038071873492665886060207814774849527481725986821826441648632100744656381373853516283277488633096965286426265068861512061961917471574403510415229313921406870237866796418533149192336223277251975220406950275477905181385766895096240499882120973715888583085437874328340946071416094064151611308956081429584729819600721369285203959620283846289765936303449219693775483633131364313542206002014862553412170852872920688733916538680777245900565151410094027351704498353847371957517592982864259695909060671013023925276258736249650653490124230443505625226890652917367786753823430817137970808597953230530313843843254500735444594918436587467564098707365674099089466119626217179596165164458641982349810836268625972922676622640837658199811177025781340032997470372852432157509910373321882796043739112416626427186804251167858948557987942029176153039391067264096885756454098707904984898252380637535930426579384042923188473917930729677016490105550024291724012834656803733606569874645872166155271938485384948318088146172516159222598365167840097562533825842675150336887783818660987490393700219760592416037082053533400716001528047889901925190898957186042915714119955700953621312733017154871292069421229238797984755169392998000794664664604335469285983345780771457771679410133681611638087864221514456644101006643859637915731730837284688947017335292980278898375430665976882695842536515481200504818481922584423355603945254241450777388585772263900656742216719045494548005342675746253449806622666171285795516459473334542065674818512200761265316498880106871727885003056119610355751853726138492202017413980414866407127747336766524263309637921819311717121435314093657444339995652610237846952123444020326496481670340019072898219434272333779148804434695286143858911860988596639362566341188102841915363867853166259677369114313485115094465338994787806437007337391519041291061132485660000311296525609438134746719591496412076790596389534639772176853105538280813521804701935006328422243336581456331925788583901291887449331507426618602424478351631327922348435243835725718327190733624658291869733844903502069209641864830571624289679907300057631043034170531661965382553460225681598026373377808510240576917712688193095983425695207059699978854335299345151865185827342355458987860171991298269401992379587858504444226085660584308390009012684087040551766792568056070574492621826607186709039267740464829679980546701939647007418256496930730367672255418511206952462704195708136560978520506863157046548011080610819509275590883769664387905447177879497907525066412021628688980945005048069883905872427130538000530083868402059087939141231492144337475735593143421353077036155725521064362847620938688530074122605731480227947808121195039181054659779447350853730447821887321183174120682522509734128292536415488977999085595873463188558980574376243388345294136316989728271017641372208125314702974418469634337413435861704040869562240108196940266522737811931474787730092573518624380853338577884396390103080939410635017642215357861961560489242505635329074992629062493256643365235310354129953451584015407275464759604514695076371354591917051619104389321232943677855982742308436042168965878829533619161416095515369290457794215742862597402211773965159373389363573428529414248218145410974283762379642787198096388628158102760819828519079532223868594515768416433819377140874041947085771137942252679712043992422722348861341893186457303967147756478237380593275991813167929515113325637186841728989531794548914117070089831308766218196778519008833289152562456510549418601317720923567665915228541254871760392642983464304532506721608686513094808815283485894578275423887733143727643953391823506688320327033843372933857026165552814427043300261332344481280276642653444701710689655790686649476769617334888354747455641123663508868678326205590793575432586277814879067237433348485455008178629959186612965105398870797152816749514210679917646667090880698938138335557902777390274055976685532720688501238592919835334674602787951004136592743734675982550217131944527020360130316347399093465381742004283165055625587356965517728494503431011883541994341492972602693350787897449601177085098789233905028201351263399981783094370156183835366095358258498374539199947127855260042298085792429966582276431951287265485718025623530919657332294455579106353903394765364216828881093107308748670920859616755287927988272473999283362481173191148890160816026683555576950877482756057105670321521009396859873552808921435097658963004243739308789127294281198456355352940040917185569016245871832368528697250588551185335742851764473232182484355975201894980275909829754098444671528581511997152468089622843414736511206387763727297615298870564907817571036951567255569651295991821124111049236650522100341877202501299340023427349126037695945851444450893780529678616498764611253632042111860373942257049904509981761024971558514306323452427582182880526302144807709770559605659091702689373315562541181461655973343106838205545082717936817837108015104424076397259557957223619571274731553655130728187543812311202715026266531601859906350421155718011689602063432478627840923761498356649996735120402899481760399327310786956553767540752185869426055068324300849232928564250972959142780232979718349901876750835502990442821740710257952811766157117387822930754569732756830637258180776279714578023312576006799405604108158824907415266374640829003363883263644142730686477983211602920651762745094307200034477633713375337549917198099848279036539363108487921886526093646391996912511144588578381001179047693813212161540935729403066276666544567127920837095117121305881993045872323947489612508957208179357214184729649550124063508264396419929542164127837679852708765720651811605327671724335251468898189732135174288005719402607635765058461249082149250255126441945534691447033550557294416282584530804668899503914606027186267293163762435617406809932692138548021471692496753434341624844658162261548914729964745109896928586463226264227255525749071429349259656775738588202922499339518308927522893771597113623465829583105410581979198146448412234818947060426013532698181673155766182567108739882222935807762414756550979370593871637231452694764670976914960152254997068244788973285203028408165084863737003299637803943872796290428536432636591492234518712637747873088900427578692024322638494169258639105406473421243676303176872555474471834330526292761387611990006751664376384691992991867064060707211548271722565901099438457041462395298450972711157786234731999970236971003676732863542941218464747523165762524554728815355166542673069234605327373799761035248810787004093808974936352053803303852808832340933698013539156569985745300129735181544304618907536318341910870019884869303456010652016938387053761755170587090247673006621082287998895147657931392074019797178662710339779010010129318869566600755584721535037965106990788154470974409766178435635841561381371986583891647672176915288212035503213276706540678585096583311233882813001459447215655091298875392933989006568905796770137801517076790779867571773874166917076115668159098624217252665173663733999688435157951338016105379864568224705370233822632857619444527816673624864789255660978387385412189047264500383302810180108590848625784488818268849724228723017171886265723258818871920685613844943356901521613527996973720393088177497020497067384179956733448754643792392745351236896286867563299383825477758559450073080474289443137822043703320663200519362969861030000901438944865028787630518463214779523471464039890244271386016790744574105129989784778637482821649163426934635943438504055137469946825782758006997776599473679121168554269609442190899579710241468451691992810460176678416958163192859733541114602816681507635612002468051884673339752561704212341476434697429302165575833362398214202966120517137204019221903769209529062083966121702433677533614358824643387000026278388899593966624011059201821302523717448990839908610177730435047279126191824731130309167014153453439235541754290825121396498722015235514847698575551689256662941487162475270911082873818565163161860180187395600543076465322382155328987827566257493141506202112339726468565133660787072415226586368272328622339969751009946166639587897721449236446218177958374430167145560564735454117939964840813912902811645955815444409962412421847653996155286499259104163299431640384267404536198468013338439898162671918824727025688890816541226495702670200957193486209057697113535559436502027055613966083505625209976482939648197030375331423123658327150170764497869254754703380098423134142981264072767117551243655184756406322961515851717082020964103705312945611533072522578361079448791996332722920523778886987203228203771591871839529468291797856975270343521086498748025411622504499920557701025561849745940178823903178040729170889939725367694754290825126248091144224010124609175754773102374279034957176516731645493677553511491720884891508924913432492682174620759714197018695221985165667816484868126915280006195856029234922390467115045713089266059030246860978483117962176660430740144597565315036740064704016098319047994111910970711640602266747417838888895915882486035843161872607644201750261099119467238960352152290226264302192367994018144944236103352675769147223627110665757218405341817935665362520329990089703761150390914291196762780111663027265535992214685405816026244475849877281935956724240889923204778336411244649421666537515785606408755993859199270375972043413648136351554844554212558512647025494089060252278794007942519003052174165358012082658411580887090654276430358225546163292190064543631486659560540522941651198711435280602857244602305864623789754296690153155681894447312175418998209775980111205376804225248193661115799734291434754662045445031208939726588209594930209343455615206352566253202755407304871951747082002616596157663277568024431739250322463988258042456267819372772672198816024158704189004913283568226115371590764870173333017989294555865004135766525535628742185958347811476372484404564192374502526452771731966864756642033850315742489972617862605315692582498854955021339162582374828354070399449887885111521840737779902318096517679692119942868279452662626457823530210612602160372371250960896584862881532083916448323901493783145077163297001834226448569230141851495281107752612805006477064947878379065081212132763887345119043941278895934320063326534688554328336326386683480206302112979239036978019192460547388080364887601699369512758477427694476322636110079410694454692105121919732206004016705602555971718983751519481362206000507311898983350975968678887747972939541816998708083227282643144210647345363906761470133324490601707615166794002355756227687872638216952026814325061403305627266350186744522409607347156806406094185892314622488167721382759392773626624015999645377138477614860777459373721959919638862839286387686404568302691936013334056642425448595165620103118760357872467353478274310503375423498437920730919720871476964832441743998484950257789658708024937442460932918657327218867174004247919312931787329777487234127059508942696253358194243130402198854287268975917663441156192939537421568061274018554684370643070963162249115440364063872301887828907469193103042538936449285829031917644675755873926683334257733540298801439940585900565801121824123285351609138002543369374587609934406209393644476098375568746683355992542350082074416078555687280597292205294997766402000119193474716313533978103317780735046086302136761579007570613988099773292944719065004314024633245760452418008461345857481641855673199997645240106818928631182754419460974322535455236089133494990685966441410130611800547897791895874228821331306761107548872409134009748236222113196680113771770257452679306276975168057775195445545345577864049147178440096982277921132327628821167335253213687514982948028241715017709946989372512836004550645370515530139062730567602710653091489519035780510231195676163957459491825681525788757414996838610106721624098287350847796160996400363559753216419066842691247450591442247951806739430324559084744712587694193675346500887402260356602974653195801395652774860161605740632825321386875089476899444212643116891421362068607810464175491186993810937740622821039735540055576008345612522718397785740952669048202407495343838587939815281366304657624227548369569669811027498174030314588548290938338768164514577584071317236184837952319754487615247078694860029070962971005306208472010610283788964291663521902934118871111746214443749204545211382498087846919415969093824930743898241351524822429054270091126293927418455480493908847110070284539103229170950016120039955895934480196628494714976160643782062458170177762675155525652047003443737483389881981942983209896285280187195177699834997381559369857252625100244320289193623403002683352518783450646423371699992027393436839151745391512078096437252980968822864992679266246892558078565269387124130671132354766613780628241275837805241130241343211865059617299913804825249210334568348391557987615063562104820472193396907260169518834941680585678765195197011190536133397757391100542995108471181047721344202094292449138038519399814197685525160613988245892883687354902912075489523844067149324181301116497300743025115581954756467573257979050785734125880601019929543053955305329711492701958751547857563294135586177657578347802278286478986180330590298679238413184065119391875378160703409767306173537880740558689327076107277250976531715923230872459387190017421643025458477816410145036566001534385632055496958050667596369938221727052228207430587082005730047144240773714240896039714372803497345774229873802155750349661678091288676881148115980441666247349793249595740634034614434176065060853059728102808030159418452503225654765863743139062106162586107229429835387193844914681235050527441412265580853797730524125611612796685369119505857260072183213091507571071546761048973965470382933460784818452154871383941488680847241132874890987941439663386958832027275063859356539113256775506692297783998526800622709495393580204580297979293514675585135862939878275465856297639370547700171576502060775330879393664598965813821666499082190539272100578353014985389145109531990718198844871184998889982587443323184468185813568439437490662872571344814788404884980806967030138783335465024472770784069088592189269211567840663088680004274507986230251629019097174704557962061231625052913434060481280429980586091511649499459413376917694766292010632153729106183958372329972533955086017008453774511084970157041941491617537419364469466415687683970802716164799693733881062655583123013400137967307345509095404690143220597124531494080859876820034163743762562198754750610974705583828941796296418906928803303281505096067965903678680548508682822997294980618222531006170458949373356874604020400732516518923497453374745368213163666287868495160447385353644656644151335956047539571123649896170950314055022091290212069249756989487138629954633211136466455715382201449677753046987192371513820968543003108318955019409123118451273407501167972731198538352258160926196086081519988104261910530793780990985790441910279446573584932521365053597899150953950871831738338207759582907872213918828060010764770774849508853721134083856527463656590134425617196092080710820060345029708964567079358022485943447236793295834759736184831873187312887050871314127122832905943779218271333493894720135022200953078532299731809612921059414712634517780242792070252850166732742997736302914559907457605084886533518311548366541136483994143035112606151471594841717611568937682870505184126690954153132237464766755721178357389761040171757123926189856271583211149366772832508465188100272844158770659707753739637194328300503615690459392356390445513535126022135066725084044619850501530581275661232242119750187338001890334647416654865055019765968429649473919722669580623567964566367908258312835627954215908577048129085554924219660680085676639427583739753687403169648975948921282999821987281362189020473275519664213714826084732828374198137287879896910276865964484117939046043541842130648448712965342979166488472650332359698683161236440395416853810180952413034978613094605638053816143285187490035483668993061740531966428688150619565938630109628444527182783922274996761621389894339082322625982410480481513543912198522220292896176084871577358579079938847127757011137497549013227420901596067509807028864143824322269042715201618730508390970510584097479406206648083521757723169250298599452373367354684145164862399874772421606505624112351629946389009003929043341085308720326723078941557493978622187844792352245302334090801231646422725463077878611835720984733438115141932609709782343775983118777191110129213973299574639610796036228215112658036587764393839490522014442150874022364140822357543764811137562447044260347155242587883659645493272948098205469295553947612432358252249838037515410545328580233922161796953711082797616895162304899870204597606303887678225598989650156907328825182668279641563303151324207511063412788034734233162976844361326078766395672583020170851799797985161826458817894007551191698917495606142385878119299351440420200801816959848629958226414796355411987754845155083589103121753210522600701843560940338098578562006819778338461335070210269910181172141908720310043566963597846478861220203339899232440295431371586052014094393265830655541750995082313814743987536572728872100262419824536332088933663296300520265946349470438642156223371372018852771198209456102955726399345933257637680367170306536498443974103312521247194705306295585460853479420521644323416707351410451164694504125591700883859018189695275218605706269819570478794930145299071106761651826912372512427545809488915349328513330748012846702743367847106169148657122839180067123377160156360839091306451180036133961999368378170152435444367450321813564691162919460095314513726783871551034904851568970753592611954697227581436289587699323195113355528167593616034193812768086162900012433208723628742951489686662900954263760998074149242990821936217046145365589956436629455626904433669389647934395605033005930367458405967897674831782699494111779598213881695132640451954875576977133084436499822119457468219685424841629731116900389761932046702125376490426551660958793633167157011579675539422946155075529162702890360487890381856283083568763118965094504107442951681173580552607050479208173351527449429361051531253083415252283192537315262274407451140005160279582192372334892280796819388209281027945453339548430898779211042193801940942560130134494470353490692163780945573969284899064039903533700383271434341735975099732509708773517761419059594383639204394709468309112365262871418168566721915437204503596722475053922773411603896039793054544052503006046549149582956865421251769410450320313466965075637998586320234494599945383277286175047353128525379040364951885712993027237867063917409499644958231200009963867381920658345253329594846953541999575902161771516009679241148464183691258998931540632522140095337437919173004698094936446496709507715160268718670935935272533365759292778257173772440936396230897997278538676193646072013166901424489406443200849132072216412437518253282740310244684306474437470066322170556607285766343513498948262265288316769036749992211567606987778150461201282763585148107024224702964106131121821042995529726258700375219443644978049572631188867627851004213025314441126491693772904475203970034595075305421692449503421600071624713332182889176050486834064805451453312634536215751262432727412732079696620236242822966856405212698677109698975105890605657601563710147171408133016503063503543164226806263589264196482501112987624391187849205080230853761567669950344776111801892329270347009209177947707942436374638689942744582305241475619270236243904544957930626175850417456793712524998361615823511365635369276304292219521500775781442596983438843944630397091535054193894745439770552310541635421357584955626894493300190052187864175327430391428941631071394622764698510150248554058908977459312293962035301865382900518989523251003670626643325367194657644043251150412576396816347114548832304293973610796937575201082335367253517145036477377248951179309698046955668421932211456733166946401162541303517459417477638964446289225675505814761593786535333243430726227304941503199014391176916531208741684599939847583064838308089790608110041045082432166106813363556741963526250921259298811596263909234507374912237067492220340242305126497907874247731230186824127883520319814440628186401170417071853047316383792580738943245445208068469947366755187803747497358755048960963769970300118880422769728422457296003768655275470824770949155239447658024093411121494656245506905331507599784456676113133280115442079912148763659348713700166733621056674402536362718847405446905864144851338543354719271210258130075166765906345288745653340880242879241205426510165757959218442144421113017337248530984423344609629593291710679127854717436940207415176096275029772579443116606249019634770966112850306104937326171994428710981826466358926945627287290110822010925717066115369477693032976282304084842487611652960101678113556358442498673411979563233550532321760457655645469887503250621361396005743186027853511616979927574905093751986192790977230916000936688787526807699867050849938179534197578430733074573468983241379481589738799436457618721140632675049429828181730676719728382430023327758800018909231488091237488080634928421247527399926040338242722809120975682298445239037456522088607118120403690040160552397813737558213683893240372384468765121948449210418737220290557852542309335098439152484941798977586902963377761640314542408756492016330425436230453057792629543165139955560965993781548864946300345464279555280621946395109574998701817754502140386091362305505973718953808008752826271699546722259840843791839238697936128169373713896051096456993665172151361004959538135947402315138147909790246440357021440038452784182849353937749845091855231813936260189847634295551869090795946751593067786189762030673166711917471115567731820186216072805729889265806881467658012588067018496241326287871069323348697012757305518795495592432833706106688596065779909682298987412330095782539857580732441133152909469357532541624876250431749991080115361477821924481270752053978810813402706750215828395746034814270187391517756965463961765929894354865105696625047137353880916978359588064978619021352347214678923402953199198031952469175583483128029701751795079788266298031923944681204035945626721046229244769556023152851438130083461378110044109317807475627913347499373989874507396991297279074575075339394232123254149107468376262543685962046087343914236977961724592737223051656568226726736094256589145563085092072794933048326253257716820295721648876248894768532030203454537934943187151608656286168448999950228498949891879894913616396991888373308788625636590374797578843154177784400411695994686952016597531313200774211705154787546052503267195740094059443415407169911995131356531432879460347288394221495585144953039897485862533614316021920374538767189785188681263201722825093602456400603069438778477149073505489713205959515621093293726034805977913177969535759759171551003098100424656904984967391673036178789254748261181376680922733255209377654160411075166305467218197659569647919725689016537635930735437695830432626348887490917448555237891425733671682578157732575398377712843247804936275175387627189943726190723891813938795867484181453301051522186224436985771819391057788280217949325464557772997886084164752890518480175463360144414400511425683772635670091177986034911605462006601092462815329084657917076536672566591597903569120837091526532185027187685939300155566638291115400928362658106707396734678848656829483649870827187441898427657905033905962140507725712063482728742453876010171429474079132594216919845844445380966477645665312826458686022627781636090130532374415923738133574276974276837808925975936736973395887331962212258082027470117687588615167298861427872703588024946960724663436820394632019866136898414448196657719062621461799976231897817303713167521753119140102263964238034856609715871721760551391393068141815751423602535072429388891191382730569784407363984250764667804502512906835344654794303096893634517474641255795358587212004825722804568787538008323130900068867402608817115476380330437114029044665080751269175716641322407476786150472022054581657452063189499031834572669538388011083406177481605496727575582685318718103673078945912363075989105726094554350812011561118901300733421303924269037640534011003878795488755317366951961931647364858023506525627130297641379268252565202854310216782896435746732117731451804782304753069331371167040405769768817659147686037061482297195023068893916492484314294849543289849082104860694805976894312895795187039282491139563351893160789038213097829862223595764740987299881269672759327607658677916872449921379891633387349491433949193153971008970510573894519419696517807484983177381654066009128409054617457449128705483670690264119396502240185796229410546118557580132003641662256398709643015423763629125328880334826414933618939507562018880136286301360139710972883288517683485564036639967450632193580360059676271638114539859176687814896829889319996076867708479118013677012324092696237399930320716540083706570698579345270920166931910444187900277713151453921383050206945716173514689221560541214352201572896447286805742120042943268799158690403900771946939468087438115899886747609357954325703408110612526235100060136174209799343180288158531603543775642598057196183229177101648015574549666039014707936233622047710506762199364058536481013925438135422193654540994676871297521758492612182416604814769013706261247264347084238241698448605979383439986025679010734404600794206351247102276357874373245381569283315531792412991364386225762058317845084297543437116154319309030736597465721828864408338131903700251114764915758251275709497813907870890199501741171996289870630200741353925985994395766544469929958116808842493802812845347028134450352250938055921676627813059621966650294760018850749062601045410898688854927984761175767045772013730732259426186582344105847112848316846716625134018279797933357153957470128141932091323528765643308750694127078284499883791888217512625257561028808201550344856135836707261740648205313407745650318803421615321696886891594637389794451412276725625353268761873515705005828246466995486784771700540234588632945994209937400692568716243112322597218642716060450348722019202118358956587165923568323466334661519987840807797963147941824463393361785527442566500859857831092690132649586404746255284377094132770857427619931673740965749798680465958628739756151206922640728173841879038925804846619728912923761527279832105860759082087126137688663990089326055536239390891447219606559025262892333674216929199590207074821887828162268770879080568139412041364494031377389920239482463073651140580503500053710883107709048328046208203292799016754303012570409535280330936580581439597182668630194234374132717314739682767734796500108423146569779083413410779994922587568554444797999994304612841449505332817648684941062877385145566562139666215859414302194565436772756431502521097526387334444408231431947157617034898751042378574595459064936527713896778768773870316831702448889939658581777558768089898906851423011909553517753475307052865014230872391159879644539970752250870543817867673797330548621469698575370204629689548606673300263878804922413991189798256676914560930483710763306443147147801469445618562060413307333680227666555520910635567893784737672682925075370005364990512972806139027511989950400815425690999588406707614406937223159409676328316426442302474533099339817014682700852236706692197661281860250307411505700491990178720809632563208959684676585608721360650295219134371437183480824115565777400926257698161656433551804401400993556753652133632533659674577006525294735010701103330604423983490555336348920868536784592768701283880945310195795500959381813452086876978394285150428714739188987913064766198726285953509630246886894915567843209101345842495544949036795735353668857136117133758385327798996419272130348420953611923409003342400618610562239231556632259558546791641491767690179359356479856771053058121445856098928539134120751376175558667807508546858687674128539245244802481931638375520757536493425056166691253885791958762309455955242798684286776604588548880772138782662291639434526316595129075936263509576234316085273691741462637477992474018361957971597345268060754025263288436112613190223442274952224771646702363934963884011435797149449449553815297115427878097309448581756925886899482667745222477978331417949644167413859996601892064230682189655393820422226901591843788362349505394841920671474975594114560438310639954523925525231909040000928455487960125866636056685322400446670850785984358228846563052397051316657758010128425860963205953116890760140392045683762152433066392174414067641517747638220822028354608007048256315206253286423981311981088594959318291394961534129880832579651487278023600207804581902818405544333683697753329934578491947315143258936386909743758692279917716371393565526170538323268853005666046533381702492230465654983196702217750934278396151107976219452846182490736064617559115433606027996640289508857726978542614456358002633350348277377782141781062216203344231548284983827000968273212435350428333938113554187260616650939446879579604293589854360539092812632861790024462999231878089831967387184517337099271251229425171016055106585413118945563269949801579837355456194929681773175438046398479697409293219097902558309328915384765761683054904104719164905326591311375034183515552612995428869677405147502835160503122522682126789497538618604387187983257437418347164536978368523056611884357234406321171991121182694192805694779105948348738412079316191498901915038049777826740884314905607576864880776431723277613761762617865584896323153755318340996538563493894073129984606130934192304787385703769126078213912463812364383295644333836943253744393193010327634222743100811615122895203258015485758983368898560899232525140266107831417779225376414708665439938305130118191289042522615137953549681078280796737327285986693182231771132348016635175379486832392430738400413974216581529475276673035001492597705607138047773789527114967316100483502495181105534667522039642367270677876655446101103270680069428057624417818638804875143106069915444769629746658468190770581289735722714945846253640452689471088092305478722037524461930701685624391018993166679740775825527883886464002529889738498899302162849322763692882083131273522815761202828914179085412429340053972522124316575094841331122576405660160388215382400839800951759412177896630662973079310868174598700958035579450583487646343951854663107556267746737150676753844357759450774943587607102388981871616994645692081065901857387248372545991915183720417754904855348389307148060333576133267275493066557814761413685905606481736438406282188152543857170633780417921424877589918722010603519912152942229739060612616077803388130524484712891697789038460615126397211721559814083913658821040772290688420712325087861566372336828026263316307730315984962658303653081096940049375962044631652641495265081337445402782209396514623790411065757019486939683940846672073470246231142628249875304877713394772574480823371662635159583247406444304972117759999106945430459999039106426702230049906217967644843510167311540606716376542107103595104795049220373819600931212563439056823041692707310404955649629979455498649267807369275141050796106532886532833107845710218096613456722908795430579274898669483177412232566432244611223786865111335483549612896931818537292815735336521951421660732703414606882493547397290279309905963001984524455422958836070228664864070819652894938745719665921311597132256229858288459574603008910101331381545163243923074621747765533234940272995715989533740140197111539626247535864133632378213218590941899293012020616438748623067300687874658552625272999814173420897827531552555548315505398352022126237895419845564470478048353526164045940687335470924345725052943160546455384161487760759243638293138511669463007595690697476805651866496042707885720564225237190879197731036274210763798919586238566583689866616957092024063891276257147060236993492375760743621932595691742526099309314084427964283164750621915118823679527360555149455946786960905856153018963928641909604476594385101204454813778292767809958501044835492905724942652966421988928834402261859242228260065214549633513229659004478281665875308388152821936386742361961666782101070383722867586802175168383012159854331310892687682026107168164118752150742426222266860697908747591186254163075883488711655892024794351306963859210530035183537799979104483040589006910050844150614475606100159012254871133708383984935989512502441080480088334142283418099839574547390473575064818754416831949062489356249454633335110546833366396816917115394050897432005587737422038996231861715866935598755009956916287569964032122165531564353001630533058189302120205594576482345013772853388174911968170796679211770984937013177273058255877838183883133616435788609155621810517859226392722093692947200915820987548083017465743693975358578597210400786349677305280119351799546300394430967388888014398279879652985054612805584307350884717918284796890193813275188606944481497786157318978827826944121810063553344993268793854432819868889443570629621550590888993749346592263313377082976249447708270799578884914711573923035289304839106272822235375436506642487481612005991063394210163691452812043281877567903112108577731230032578546381111361190396933324653900209529808360283115146665382268989180438743806763861010995505211850114136053913063681623640408193410983185481868604304480846856460813947447834685650230147063918922134157918252762883613875630871306798406757171821064175264105066948285048852526373318908433490658314258380907726865187496550311483897413418942462922211378085846767264903008607641587889212078761480103832796178069769104335216115147423582446206637830004473498795273334782378330316960566927671940462528260933714324633725177906504644109744975347463405764621004587204441204504075818643912917671454976614780992359095267935336922120558028858159685325402550520789418722099847684531425500342402766918245599834048419336833099815112429805717438526584845947677659670763089178674130637653731971275421168731503578638128370935367034622699378031928039392950038926147587020338506925950568221113335576654453734024273544097472727287067123576972873025879107567269773075245085064184717138946320311084909722625104406212027220662526225842726443454642480508794268162168538353927553248440640594076290804146625732596339437126568604633009642115084366427168590063594490506253359497479837327462596612498563724089215757712209882958106047319484067161391950979775876021713967287007481370962257580497674163766584503237053017754204189904184076959271130056458639641747444638249719907381219788234760158430932762610946512200384176483538036784835628913853407702807096856270511391509025675449986203900413422526722797991938341917602820482886688943853988104131317828014043371910994229028817962472586966914238757894223509545599032080043281698289407432406886829409203060265752383097170877873260137642058653357709298183962464978366688540168518937385382810215891583894738741998050664936706391386602014122404877047489944088758195098754815052552324421229697295891826543304702174283573927939196812565023203983798872645141377373727790086401185334734649291823657561961607530367840301635029791799407491144837121971166848815068043418240090733675301014644671083061411140572186744433082599104974286899170817655701115707449761250075440198853015093443171495249330222036728778039860150337054311605282750205679541556227425861293373829061998798681502216899017045157298638462431639210292843242808241571979525781100305730943657487795506896107127401731278661102671347549035708924160437436251647234008913859699019056700598903467293608439475925456228199718886871106764346668742802178700892063533057637043001782294275909235403436007066246827149950526635322850268241003919038753736325674396700390892424436041149627155464915339909722103903585550311670473778259191585957907466502895215238956345346588565844570123138549353125938966799345658687244809787124687548408315698378455111200135617218926471705930983475026323366150433851374445042372621242066015912940011711432279853598939008726518599061417711996308151923346732689694668477576015851119104272665508620193134283117436943915475042187962937227002245273309648561221653863154049563416578310946511838126221582139544555538842596572405602364561224271921982809564465519126500597366022308053391345519403184399389301401969955555794345309411211847286198503966017173542821919871547356132490941609118889825398078106340512668637970172123957519603213288464543685989757354395406040868547989469730494273463471656768151660999825528512094660131517870874322856419272033515906009678783046406151272251086064059962612408509374419732757895518191846254600001487730459258483613509202475705357767213945928387367559928702410143937244453263213013212756628255894060948834853729213084095066419827654424125713576897497629834367879340255836062412721371979686091360473597965497406197932805031684216510729389748597465363056446942811595254846714452576711455765456512166947031655463376555925805487009636457202805958585237559192088832895166423345903590419868517794345229839489273074345741972995657025123200108696942103131683160064849269883578197501450923242476211013175936673320611176164998149388735253497958623402388508689417120752070092071948522788713072705959043836800181966583829906855436435674668892952926510162072804959244137070640570855290131690685947407516071377010459654810798975848415343952047941392469851155422325108286124801771524490894435123706364535127638284144924534808902371067434261067577877046346549950511212498800821689086869457811345291558456763332080877420046701664096513628213444840836111361807571870135164128821533010595086043676691469456800548120757222943603120425906109096391922120347341886020378033670935943307361581242035572033784344023081498133987572007800484951893489581260462961192978575369192724801070324183132673121023658931608422429352517924706411762850214709643343950318053033091192553923205259082853473156745585245464106179211491534914034566565877217098804450908695630931612129833316478508131079170611862335962794995507648510880577347067860620677557515631281576842374231482842201506348703178956958124755540994354742335918776865285986450092667412785359856895806753237195954777010633065127417515436111235967227003938392220841993484938945926935440824135547999955482415453707445934065855226791428871339272765715963674971214724679950481727426186763975395136604834905338055238056021127674826927290697839880981585956439337864392779808642400042029166763264436660192628453425325237077896803553420154323706491902724799949144724078291020603354058129669766947828946805268783977468747494407977035661307536298272775467450339574864779226347681043399334851519160945323599834302632603813208623715302314351008330148629486871295433514846486751901659523547838573262167241331412598964347596208470200945092401608458492719722871391703665231316952604179297914037297414695529353937897251114317877161726884936949794190272074223409502179730312843773492005169365440674176539510114963611924880417018479305709380540521788056901250433584618842373099440562717935943883716708024089193300191289271967992428097056662968370798552670539019291987072327106823764694348729382153944679249766919486938577150227772933531862957179092639097377773076911659461488517860736549137317039684605765763396606534981791338658111546406127499661614053007090441918922935101775697565615774301574909859754386041621682359370876226414351214292642535882716657036468856494054274641855599744678519633405502343572495857488764151481848615429035056790176129134363207864705125927084659950654830821846584203882405859464840884567766519277812142048299942436547959300210197108570290748785396984424190787183613324760619560632796982836159015411878303966100361931433922848923115296781257663666479983454174436060696046435989306236261526212777512654671529272182319725100339151844902507424616596771343376264025086224447818856038003671092124029766626388753101848603679475845011661220371481373593149933882227344340511435586469643996735103091872826542901749460801874376345978929638116865438806035379874012284661859682642569035682544132584285844500502465061149061838647643237108264401316228081129205281338273125187759691999667792408644436394972595870844958014206164568180520047443821173156258063924796916639885059550732275283543202851465319331905738351382672304981541113138847734006636871346503039180003953934908022068011729885302543396952636205889056263665027225668378830688250369718825111872153484322188971624287978928302202957367636239563239252775347283643533743875907894481993264866324076409672255698154803111372520123146195131805763261228930947620652695221318800237250030544711053498528454585969519074712168120466139122691217438650438561512762757447629858915815194710403147210007083115495335758298589921729068364999666681817388684502147974122686742821676022426996962115124379353390944657803620168032124680935963951462542272985801709553575713516591851566169971311342381919738962095596886643967953518732940401166971354889061546515065720322716394013067477087485746870572207688439747546254048038962280396261106274336635957673656113363636162677690821106962315529656688406156793567762843555307414581754739637378789344358770345352384697573289006068411877737125113994459302450512980986181856940052769106247622588523793748483094517187625818594867747712049815568718334513048034615661294347420985825007500939327822783142259286047285015151575349552291928324055223214148497539407389507710097384853519255611891108214502348121553439119991471740311097056470010467991310976435507143328445320005146006949303184731964294946617096615260851695146080553776881463129849358134720018410144508228988692044305648162823108903152883854275288572997249730235925967056670961608347377573061812338270864815763074201576507548846278624827098709508195989715679017006365723523130269509085737943628385520204034792240464967587511114225277715840316024720199171170691056255000355796536672313471601695757080221469343879341643959465658247005130085007442805012846845203433431574691670087050090254551588667360825136326920051717838630336470464373100243684093473872831864671695716223848293716116638015165001277827435934757706172494136072027362918101920126191700368460273218553396042328184356329261333160997225510356087789206502237322339462005488709439395879383121832085318797928224839936803749076224611856479640281746293596464181181182780729702045770880900393754046132073057193039716343089576016060238829276328786200014350265981813677237931320912049427887046072436272927004272396961608577754451476974802554856954336249960007334485727673479629029961850934616577525145684420494621080773671836403158397190394614682326371555017078975165764878496639458303507139377529402452414033734019443718282617066198478842931578151704407671900510605264097718717623791824777937902044910132827618660159727489306700619551061935766679035995696943958165717323572016131367893975955608489253032889027519319540171836500004569502090549499489241803647643940009956232036542929965860551661544788282104328485998606561154341388709759371771741310326122913452989241996931651436123612632822536306251669338805554300990486898745097809409795391579313248756594608089664302353901090821748931330038787649364521714782858989907963750763716535076109572977089915645975112369960907082846307617791171089368586747758308690781017855649946258194081677294326993943060889325300124861151424655577620256643141786700679027034752214009867273828392178770573296478552114535963989566612752227765752987128773653478825199134294489979775574961297538351743625786434473405405679732751300837615343902546546068270906429896383374868389976826316630068423793016709291633067712607142828395616512167232110481488654484814220101004613601480147140840300366604529784141948047110217676178272001500110746782340720835824604020164496801942617900623202590565434233372394645491058416476830729936206966227852427495184393629674786907122447233868302043414342309464838221909115120996854446566915506644601972240651547850814912257597615604846440708706407579948863707831771377398375303562894075876775612987405248191592830826377014761714499765501556252333585253692237070668842732352545724992818562475407156289918039652877865390541201742270366851783726695717193131843632033240047986198416688819884370121720160229612567396460821515437105402775383889053117517617988343463741903000458511127918966333048637977936950622777744927308577222184145717311304555106851632580757129442904383855752890897999204306513478741251059441150321603625009646835002497419027789666979494337224162248017104599463475051537965092768746146012279311607423044850792886978020347335699055986344113734155269883381216465763125309871137583440666685321542771896088090141753358293177394634164849161489064752201644893720620093667546892795539117421822531255477541582152872710657792285456293827896701552715370358455322799969978343275670609504544337571802845981571456134352947711923224127124023991655535302802766724189909149086611469135482107529345406443331133927085506421569516765273329365734983829982835436437610894007143183614594368786889927503521501628117008843301611632056316449670909620556926091368121655693920903496241819709271858237287725555300686244968854398303281062035410159951050419573156492273022881501469612898870268769892765121308228364209583251555164415535489669488813238547128541750785852337163893026037497360733238411960475024255475072526250462780768438422899033605757631990701851661127198680190611084005459736392691296917963575822018900151395494079183299509027543737667841540493112559010147889849730161596694786677329861168446004135194250844821704197400273753702429014697023936147324256871900143416166101494643796688208391652593277302633827860123648049031408129276699747875952248265836303634740150922979820004088515096487235581662269142454126775593088881134295306867006935566178912716368316098975225562464298513900648403139454612684252560603820205011917592457782971846749015234145829078767918416499033310301080930266902096013821946800678716381827451929662206735387117606400872025745409332941268644992964161246399375080079930678970156585561762139490349290188938106096401232478108180808601900342846949757481169499850843193611653855009522208207009543771439411416015832442495653583069362376635379680376652054852153693928013070139056681234845781754641125985219407663363577076847936245755926831076394482079095357030448605536850965517673809286663103956265075720224951600627861620924209879713744829757146324279834235596612897154271300793553722598864109796480757857219512613753265194305372430130710259801857506169167978704791232501164750027039175935089576478854911535216727406122562972768741829144600397623995135138055378354018754398774431340599212833895932660990830037586974810356690432502745698937961068412039920581288323813753763298940771132498251773257750211468436967777813046469569627446762769111850002208145334666810622934152569704410816211772694417185310495500038345326775129563077997882711480872749512936949223935682656859360767506825967110741557144737092611217830681273259365381854122957028855781604608826654589242248152716553997963963025602780231214410360702477259775454620549415923528036645488152485414231963044949998708974386103980655030964548257529423708469391183421552971708417433769835348803331406833212531921684050372617224748969032971629254740852273872831508376408133664307667209508482265063224072384543738405401837708509713627166043461628187239364470066653396855473828639152337991140277339657433514062522978790830351436511830098882278479332199168282373082121747097440477648722949709301245456786492804376894855653795735248785815551897652657649031123243749431870706962262373260503508030136529295304934123177854099751156020164140366133406546627750371287490944215171690655741299175078765731715892711842785965928879845794324003614361922635627877007791576317928297839921223307368936845763206643097408900037078799047610406261829689116944441072785182007548803009453028145166808695222945744209043102654325160899743321434128000891412331832403150230220710262180563496822462622353004573541723454141492735093257278015510165265929785240428381331701315897285602470631793337344498271621942173574854078151997617615395975839461296770438687280188752457099366880681443391867200172650293326170997500155095449040513051486318164069282689818220533013215838187326536577132456844265097546078242409930457350630150484425084056917613046614917728350386710772573334107234613864806730827665144182058035591014605757835677251024651913116387913051709438109906505704445450897020490609946089924117597713241475645010684847300158749988079076044824794706576077004795983049275093996457487621403589962829988475758599040083579079756249712022731725378475472864203242782114245018315106227355388115638580327706055500205096908030686595479549456619049834892066646854468539449478577443072361714034154074018099864788818243512200881435307314690750725113061357728777193827626344028931831535627221952594722857629206175161851670265962255730029192019085075845502377378674812146273126324583423055777442410596146860124146158788502067819397276155918326001199230770485203843876953159828232810764372674954608305459084680543757869781837119920655571018468970128331574235940736643609354757187468220266523546928698715324229605367555205635599883813653082025782190290615113072086027508008119668642913661361502875570445554184579200624780790356988479081355656116051882216488187344069554150728003719412263993078212600553960356528844544847286675990277487448723984255651606283278516780757449479139205766143401097341902387962590924034828763632444497099825810881900606047708722855524392672223923213858688015396127429532350784278169564991551331999265651370320837469125730382288469785196626294680848764630520866652842231467100367621551804419256572443188247950283657601248871334572257717375830090644437023940473208524122832335538875427840119816696022740480824446341565864371515612609435557838586589143949700104686602231736076753922117985676742182982653901450040472418770666206543434677232936347212584821541816810438704817125200198252605787612582619070458267415134972602980989537746202247180828017703485325480401443235054641567028802752421574079616831432153952922276612240812146810751084027510181523902370323606664160976732519306300127346458790136892367066569063073220109239039503962664013514761761452164739837091340847857610808708490900739210477890819779351530064384317184797980402851276952571452293146727583869197314725356710700892289969944707596158696682640935623335771723707820582967684279901656748461596803523946874422098586991113817048742248383633370401167871769214690139921541669236542150294318725996104109817758047748036686655508124589326992578848122900261582893951129680819598254206173811361048167375682765458124002962289700639859527795752657035791819685130447819320132255322899852248591832386753752057969873112308526991817047881171337999715109505264849643494857312784119269183162635730308727081753892170200860540140104670976250183815196268428556569554069076287299679348453523153817053493802994267384792477318553603710698584482499425073857901815328392010470555535489389873521856661666154617345140675165773500634304631358448849044092246058027083843531824501679759263828472052292325735821886661015217761487969808481415056032568430296108516182047704540301979106396673944683409534032800007221142493721340034498683630332468334045436494743896655274412123572100585442698209267512522150484821108344460863490480150830690719279589526596675683409752262445288753473906400150301344270018143660801824461724183423112773878716673919191226324136139331013161283815500952197720457232089575859907179188390169907317681409506253026038963450633830192849062112550508029189532178904008987837323196417968018107006377557205410845760053641260979272108252388013097389944606519586177062868748810505939753306748110108721316846029993311477071785030430541577086703909419267274196174211506800357894128237841407407731512113733166886457196186332759306269930023323961932921664950124271653656456745191815965124577032582335296360207319367312387643979139777483213638319189563478356388265301299664068146388583590659012414738357229293000085542622436674604724899857548520641602773153160341264319829071426540249822735891859959734531852381956772329522249753621818598418315231686966081185725327598331326109673820422279443022167014709390320017616603712722875437563725182934172314263963921604763829902962239114522543887861501619689469849175043238997729691971907818250820347720887127486782858818675210206524226640341922126667322458682167775194227462689573143879668962842271365156608037578791640010760982016063396675915834476592124272382466852177010377441420632595418604837221855868055620294198654970091644465020584630541442082541771672370622522100394479825118612325505822852940016747182019405209046214448524797265323247908301199140991921306196670949586310461513429505734196413963430711558402039740904449258905345503795789621392055043482507393955949535560601339483656321184196079626015991486012105547247533339796468486612652320317235866768379960350758858283494299903989032075856600603045301534498450388425040481439492460010229121977630598493259013368815278450048633296567120745733382255369054982832296453731724963562306943322588056130580940339033626208325201870897735818025370072924264897495844145284140178640898861621615832557116366503668748196720522069340877505375567528216746333240879255462929495020340805160749807998164385018668485613168445480400857188757486673407016984288761122206949332621562252531582242009325785631367938215205036181672865806782887460271202554651390819154419977385608421610258641878570364462698567562541781189154513179389796158340753154879973123677856658414342579354239080265811312979771842853944173161296705618488650758459083479435453717598407202114209694647129647107001178458695311111620903807994330084517413531937384358575713582908839472148790697536780821584404092166772500084042385315253912532712176895513554664491878241705066719250991094748687895255378426790695881480458635451765901430315998155752303715649742109749294826000927785376384886659454015694828269367000775996288616711275780908759079004017914550709847279346146198356110085990798853155515993882171289580046516726635765750427138685763298733767600177524409482774691113707417051305901905236662119157573424628726784167891909083675179820262985295911814042324547983867992089688930931084635398292941816490454636423010885824469743850171893793686451637556559758147000714388770794050923284532165342026968632079010952123132988883114344827289844517706720537075020111050621801062838781576485695748769036423950354850096930615346367861264681706196629148598147361023564966794732974004408980732004977538343323182617407226899271371483958393316465131208502448389522557771474382597554964842518929166858777592217357075209723256068350250149810873416276226023982159821678216837859064808315565467117021536779166302852200637165644764911411733441562979444616900931414167328114752198996399168893613531388057308020350139051748081939930663406580667210889301681760829668785794676532560103691278570970232041761339843948636590361329223073196835057333812829963030785414405388948302508807742177223602799128469148524357322454498884889104228321380403262172541436533826379404031975908327672092682446963555972932344901727961821052823851368052232457878044536897274134360635512338936884385746183469868382064349880966411170001201425065870049285647966001296852404404968205433226310787475545415012417174969310312370322685071075199404434516951138645163375229572153093329282708219514311503917310204614258215433402966674814523185492988187022756813748598600275280905377167569789087706991485792437618824877609574481015452230391737262696140988581918311482780782937795917185616270135756747807984362794872039037616066834556810525224838671526749959442031984407177036077273797906409745987334510117593177944826377397083739731402885174028670094288822088519679596580156681789500401848960952787882167676739905303407409142984438672901850320522909014441383409948543905358905270232767383136908800878229317787856963288689173300583893829029255884570553108367095689652762619547435175787360264741933519798105920859612425144515309885311212055041709241515948143382110935173131969563488279523488389424750631727292223483988206746046866415978536281574490437850050820946579159068770286067299554904707360946258412895922750803872010518845259219449482485847887182959331244613838096239354717410837263939374065278071744060722717922013018323713243626097684065898384934616828557602453229631999494177484627553168402992900646214375122969653572386975431972780733042304152247318227905656439997233405892714655401592256485350111906922311788986344768265987441582811362755921555513884318872496523984732197458758835624013731633158640133775384870265193239553896038880117149262493837572822733111759056629849674652327398502010352724658925948649555026308508814245397070589256733156849595296825757789488942482363097799792874769562421580460168506142814000087419849943397910697468887241256510543977851699399574815118786258279938017357678640832457298184827203503668332896188508296646252316900692513402512649931836372684070914715138263911175853313589923971842429145280012626619484814928004314069690999262472500359030571833415919858923075414179417841467609071944666082619663515003608977666003016322794154020327013257260217964007764622776626369328875233502597182156829446470354085309144621393278186611554402113151657263672677650267248802128258831745555016935313012145990608202736748455553074800622877305092553876549225024084710064058795344154661590196201001015218160118594374549997050677298157867577282249957383697428303811429280795005677684965837317406430069538656721395911102023106171215269592887781019717358586453101828453210007888385326873277741080733820362744443294610656541240539418435175702505511083226681148561644173656728361248912502647392072664209986692141843645098736308505326450584540297361148899000271460004636151612042943904555744121594465469948166599348692412467031637440653735284409452144338309510977805233282285302225142433181848271853412801964985665375435845962253601564743448290798828693231314597767072992061196343025181311231875016159380116342764751865396706143149075920133101391517612295911154808894886809742121189811592513942518835710934018833917659883460312765489832716121612665010434679256565876073901755461087770220758900807440134767074394608074735536095699053493938787807428635002844726381100567777672123080553604382448275531516904066577508430022275520857648849888874914685105855524465366600337197574689464992610276890860363389941128710743596917877217754024214306098428175909730940195230857960495205401648766553752770012311764860562678309765684342944803777113028625533218629834650182296162767558267752400748602610752816361710419321203650691294799921768566502700990237890931605167822300639913157387384903014742874711509305709235385298861849649531883163024684578990392132464678062600392513903383118253065047940663745230345938910121195601528677525811467362537826051563379371885682302458445085143821351556844174624713027069813357321533719476710301658445566011913767226262819425839777220487990432840574257282854405809861927803184241051089519973309644216930037931491810846532811855011021049476830853082610097221115635879304417805309030718253852655730920014675348161176215536446492929496931416165299995453879106376659397187624496343551238440151101608437399635397078407583385735459421818619702098567308376717434366149928144450255292172368754218285032443146812276856114413924603059706046653557443324295035256845056921338768917141648757510543145195374731192483713182688715257638541368137974741839986171823405671179901228578158327846329559168401099027529632196423508091524543907973586781007894377626856545945832734138471199143479227440745330908266213238079762776999027571316054444687672937983099659527420036855975117252071259575757443187619000724476600695300210669489249598555810498345574194820771669430128669178487166339587643245763968532125348137160527823045520564566555600429881786026651726931293462839481703792003931472316340882231376042564579783474080481787409798353159084245150994480939462760041569857381223993114101861137029675738689840288481706164103717027850403133022551614958004525675318593019499561472343643835923172311576446724237867700273135549451870923084045279563517041563798695157158015820955652504979566133426920215112658186377320571351121525976419877107361985802210646956968951432851520249713017219242940213553965690123140571539603152138010325478733527079141082290907673806460005673665000079881068055565316542391055085746333177080709476786967607271176713890801907074081096088760915687442739979134357300091486247049934383606917851963530215198314867837850204107697465070748008470281263511882342072090393860420889254363541573906827038305668978394962655710074426023707869441284065445974739070110400296017867049214195261603847685343763794595972220937056266426304787472205619465065903996710632334951280918603011959227071937617997262257092150135380302081877318410639098917665224374602452946708982495722450490831545093292322728535540211745070513735057321528312930450427285175739550068255696345422034369169694340140464300262003356259546635861185264971251127828609707639316915752553379718793891564597467941350726259075227951042636990367688631773983616539794561649268267236428606540899371981941060739585359862311766661923375896345645952917146819832618666739392769407661134571203435839210884870638174961511181609399657227703098770361997698691772489557183449269675775981173309561035692656817496404789355229965617327488144168883521756846916298152246038975077829383640995071173614884297227724013931318325386272580606536128402004598129912182715430135086312817651447987196038072193028407719079542544854722152932111291701294105051679880858666258323905702291448236192991308889292997016404582242864228637670771674563395332620430561825452637742477220955998020421715114297286913317021589787545613891594565060572176641255841286676383360095827941712442618560022423333504969311981509027828311814935405959873348394642781279878112138628224773118096858185378646462941109705585137622768462955496537779190084571734009862993508285047824872136975652888150470480263366422425576261404242378296324669395433842915121985126512364575880085807292204082299534730534582566760878497498379305668202488327894206868141201080160750764795767566531864167508724450100203501801455176440409297484032480202378796113461311864395570346900807258388497924605592469271696574655166655228180839310416272625367412095952606911439327516163492300389834578827111397729278660879173571366006804315492002574363521840271450638172772966993766538784427408719629366602720732291769814375032904934783260528276894108322744950333912742822796737453492631919489260815703915361901183026151795917605894926549759450868625818022076471285951841337054882206916470227392471439012510811956501889967357320464002229248987072429032814342254957463469087132121635257933696055322499295186622754516111337913382368105448175826553394279992376620020159800914036051711634487581007409225320674647881357765530303792888661893417096444531462620977659207006779545877257466480039912701736138364390158823487724259970749534050617655577107058544616729464545186017414259152538578069064903208274261860162291727751544331401192262137138397515418359948819432135558619651111360123167551431500881666874792732797665403380920157153659723086248781640114248440761542089036289582151314298081444942420159163687032706144815494130599399093764954400532066262496996152860545327309750588149820141723846591795173561350592309415861735722460483527199530334174004138065875091338590143823452763015155952642350915516371162090747358599904634226779513863599785653477779484213925847220564691781605818539806960578373495348061247336512226199468444692134880037073794705419424144143020839205213795468587705711470748871606659929012900158255862621499992807231704052227330480188919928659911612966442452686999487520151230270847318506446969088381501602802599699819756895105917856758006470440307569536922356163515254709341051012192059446244525759193485094771316427544353663380841980868516917014431986394860218469385166630821298976762428712430124125761702918113515607296436197932519117114404594341059450736164960849658257425253970258884328451300481734520457186158678347556255667362414065890320862483112180345405639410210693652871606714557314237274500618286347419694487845573325635018483001643078935289115266463816157454543127615620421619647066399599763472591363266087767452203991745245282904005218970313083594770159571381908639414865562910360571386141913356275185772695807701233563091686772288002657954543378066050551895507844128968423838729422624597795990893930966013070411977116822101302142624657479737971224021171300546955414870818804982078183869374798487812845917441721180896938893526926786620233364876903335027892773095247158899700775279796027884684085969196797363399179687157149632456600551798677833878219015505133078790596087178048735416125340829503406975469162955059674299224048540573999658576778514512001855401622906770919298695766135183182547346695515321355444669732941086286515063168022222375347783395711481480676829810068876126601079118092952557411849995749958545440019782012687357507950530210181292201449984174163858792410013741995342783865560530241448941293060346595778017929544430678749714129909526376831112703327298704807469129876984178930520984783536836276048561833293365223074988838111175951199397834493469789511124053371696115182321950972179990842018422823054837325283348249020069868925324209768979829147062729262254833348002675084211049342963915492622966005152918935346532106085705888304347561610193321682163028503662244692799830542197503136734751319411382266962783932744466219821048828914024609826775654063373116196246897446368931283086367325500411367982776462920139979993632560078117834075286314306509377829376147222999589006097455280910602114318364663904096331101813803270660859153612382599089867820249720533364741094768941184142658472845880384908341927305594025727595455691715188040636934895007599350169798517527996354381122658261779260607932769059761180870389610265563276227554419740801821292043280879910377278590552969289200224550207682153699052380869063278477309982106652101587794774074605936416563329983641052422454316595508687525506363758017462978682817476282257189729893292997313299472269317781362849051650082459311327069136216518902824402268373465473981524328654438933020347556522553630852519624636325196857055076050737929668320641682552877109695808435935627938023520047238668677613953731717681368127643501213796567193710141891881888561754052827656360058248996857239401663624244801248720263123515293038528579639866192779861093535215498411535762863201266205627603605536401193868582938702187477996285794101265631700932381558156052629531522874092143202046147891104568327590845025269461389246417783641455116038294116925753663472696036237671895849495245204323206067387870779980309156970750203920186028098001350200937440569894613893359238790901181870816012324806408341470919245385245841826141926831845468753042837393401304704955981363448831627528438364837576223989960764026879197831386353161235089554174334993781329601254215342752176691749520359115434979332896038920723646883347600631245326930723620227170731785952739718086968953169043926713486036824694778118189728998334436085855786051950566310025574373150097059797455629827755417119885339999044742913082660558484050881438086021657381560018132579124986334312855579452718980582176633178313778526401413104309619322168227579548213446317793727031643115773436996706935193528238795417454021171083039131474061812710380812156326124016606987911298758776791010247673487139356553420281484422195459512555059151243520257681791707355615781774026023635802480823889663143327481340933227782882377918516026771385335929416842676242982254760182798171795946442979925326205829884269351266270339304604853298503819013562014579352141101773517167816956036783566020492308701647802283026040845496523480082806868146620632713862277284650278144532851887991917005818051752360934288936749909168381184710126607131353485715183659749030899695131488329549717171074372027861078988664116938976080578296150167576515749421178022388154748391180547631175664494069231769464466421594762898015421816042958389754976520292593117303208477446980485445500357650393699198679422408087217556196857124665002173647753191205343211168925582806853990167046151866481174885560571162739618778810654028162180541851207172448283483670911106800669518718887267847718029192139520333761005567844628588567645692216951984713060750004180837647250152254079296753722052413450945210563674187851638072357473033163700961556529699040346532098481054846483340064542281179979241691209309554914169999533041973427839572867326807376057873022260201145720309425493470012122040158394751424282531133202754051723227187579776130332270252519160398889117020657546353290295055596151578804571962165804480116949814522127892128406086004371579685541442133368406142453100749828108757174358397775927944301139800196627687851929168758182171442890909105833745224750234160295733671698154027300952213019519628123822470605060418514052392614924023997940986613944490326971528024006795607738857448080367412525735854789826993942350149856245627112072921835014558837074952515372879732595828820278754887112754103327648700844728933379697663539457156889852271520214813201447994741045497228110628032792207532595173256913043331991013418446471250169928347524555629657373388809353271306044313450164453312177882296608107137761539959155441280454363639014919271922126094226167661998273142732569895720219391573490087913237061366098152077731609591091243222183383405912512701263740639437099991746978295923100932368287752272606824512027172904476376157213694773310550110921974684562197399184500654104382601561554390618177215000007760849958856281099405341138394825334348077140586672806269213590000794600056005639271569859970861705309728117297574775993458745474339480532623777982532297576146488072932109287891942239564917702395420899050797902004530753998805046500065563287467712383519543727365629830178394769612034648013681104539920636188723795290648208309447856181737787875083767314543528218860959514301164046432491629028490855038406655436643996995887562401517865244435646340612870981275454720315805033753661289016918152551433026895798008225716735413655087349477430625405553972307759718068582929415320941380040250655259146804932999601635350569879154518429765122128523101810044574413698445528096028186089119833096404258878165887388588718468986046483874795509334376245151408012902912392544575362933932179706874645525976248361186880920070274368892129484275767910753639169859152650224153001983991340867299546448795159289769434794700796466015336109313053492255811197272086525523551101161088219328083012169385657848230078760066320529022384179970991392709499201159823149844008133935521370808253042087048595564247156286545100255467757970230498657611850199488700401124291208197553737985943438375847661547473328904863512771863992649524240592651424023915513984462832732546890583360792202901546698768867676747106302422616231524002068554591516918104580560001222452324453171599583811687083304449790446875207108079887416790466731102674674293670772189284374046083421713355950741355287701078261644861394817860177687418358912968073038356207341789525010930932604925863788081483500267657523686166187919212829326792842935462068276326401455698762209732266354714624238871403499755948183277708373310104289561747230937346880749482134500887280608119927179720394169346895757651849975730611941700602841896337493499801548620053320408004965876517321555279330200201211161196733810409581774905871329028987848767877653905595915896279760571497572165569144421972799061581487656079956773480154056238866406657174904791531697774921749907473162514623963717951597393807262520526638645256153033131466086396312140498192824181214467665094999650791150459148188465680344150941045150680707531444002832246977927987930474194188256384480539104191048760716853417028264816072692805678961812987188815240749519151127944071031101651301410341198442828828793737039334597807275476174317626087871790865231228244903861318969504947457813620580860422351724874989323867834294151371461335386976231508289450530672174730755540543787603919615573183465315502867748498718599896064178597926096921015466338235629831330255967078174127179851348652857450130027735658064957514937082755524172830493799643848721499013318591341633953091284736572349371072474812026918844812399783595512633338247201189134006986157895168841848558814631440351439551779669716817589990391488660531905376312678082694257370733642122196076785564179443411143749921080381774317325132434514227415498637640815285962316587311797915050632428963802437750284571155558193450714329200902882555214065184830834115696534877213931626667795072146532726817538590229154313229988399669871710230600114123865170505668594313860468402186645313726815940083556322372289554199655533689813083961566535474200236857932515827027243779299697803225406459972436025183017008082481177914801254520146854131864267877275436877062376614732209067715059300664445087641163415608446088301834334661036377014698639320672994057812966175770666166551130102212939271804419750727066955732129913819672753349755404216400451977410333394791806079171174350355300351650073994622827447080372269502719487841034911043850893852015826172478613300242730269555800266251648403545025465174713928231264091268784268732222930391836923966101604042579366098896188590464303583672861333676559531485077575720381111062767572054147642829899901693842547413716012531544298702965014532345295022384982952417659895419307570754748619493519718250806090045795360384097657192854139098980130005324392959279649042080706014831340614023494870003239378873718785214705793816869973844411939687442940719305954893856210464120212621888897291329522201744123124445608056792986985788099579401220458330402135106230868935031614203833569918634553531266605486438312010709917856038978535764494875620843042728555332578022906997996839764032471965665210915409646660037883836608533913989569614908101650312805407774166877658554506361330103700899697494079575876078286703498091208094923662964564992399789972824808550467655796352425141302351003959306443710522500660187743083083840459168411526625088447747280346316657625423446914196156284631283213925238022834825287543950623578663263176142142861253141397370839085573348370922197381302995172323530210267317859756052463290350867040033703582320747999557171969310008894619209474622393971261481490717857953937648375976166198227960839609453061266133026925257844912839979078022646665502713272095613242453695769043715295270187951171525923062537285107038688107132778071763347088305061271186456077923814075762375035626022977852680206476585577683628845373577303039106208115506510636052708890750599608537653656720503126171012209877600790836479988947001019337782403824238450140432618356825862228128051833271975092784831219678612005612411295359849177354249879896427972562668092545812253503998944708714136198866131977351129129996636761090887036105750264516541940237538056315317516155285495045737164270551273020750276494611699728449265746157161972936405644098108816592097741738293949260739390887744548535787162843397823755056913366389296977373191103290081953338088430403769082444554323606634760928166422646641791069089928337056855273572904002765297696630126783815506808457899684193850340860496212168700179189823568308264927835334439005930954382687086277803631161714147137700984807529118894960106111166630199804117239575987505608307638218939296337682695113394632456088857682608186587093084769142102239624657295717417759321365899807175637610600764032014070627184684910832719976240792318293184870107452217275333521586278160336818912528825527453579608380873795556270243192207945113260013712714244131940563697592225332786320429324505939400672574318412047158194521683894963968878293534991027498790458296254517745846406923150169803108684264177913767035047431910848046000271692485652084237774796395314461720138690981467047160229660956635385019410261622931008795538578063951078826752245754556999965055904412568679651765210589122602142688058096822691987636931073281130596378561370772659533891977465407975303567732400306611766032975312256977841558956473259293751206660041300103498565273379871778427955161476529598657930036793818820420235859277287572953954916446698780216060010326344307322714719646416478100673004514607618989349449065835642219431596091505120789302471728330250835730854377659406172031596267240476291213153914822874855733749687945952084070728582439234051164522377378257883467292874778642860979758309485944080596713071097504339785651338309629650420342294225895314622314039350868572520152354533130989144692642544961085108497278078947999424538972382111903104825617616764416508406356222413915673886061642291610381758030834331301024396168000777373819017132571263055214400374741867503319599047464615963838191695607269210571431845391839838119164046268342778917933524391274053533461932833350714045221047529066148985813821791963907834488214923260851035366081907747356470656913048014569389139448035248040007218899724797013348065048620757497711252499311618304028662989676379141561470343043758570983588024110405363234467215070686809171944485290655942000113792109995110606750405227818227007578272800433837591417854645549670755216677672150584366345549203901972911000088075731851544537342161541315442424439507690475776878439501205380721566373345261001031959899914459941058731963818508106117350826638291997426982689570402039987894340054777047494875800217599879973694938874481436149136648246737781767331406155163768119270936167970407467981878135183875891010148540818248015781029114443699642833027054555662275361410253362906594316748059198648615534262248928661356346452434755408036525116672466647663334031263864436078170708161843964508206026032225787758796292714531590809579397379494493852575359580237557302760120704378061163459245491375739201505500312589162274111276547123104069301904467652449799539664913436026776258229992332954889609755265066766400681598995969139558852801060234079540576655614000132486979781396763330227760712270617764781210736616889709451726622640033153891335447746550161832801444499946454937228051280501543905445310181226528193278331498429436544400799635613367323571859529794598553892523213543005219957589816023122434844708199205122307409363452488221846566157210698475250241477964342563940050818783484309036519615326353240929083084034962319353126958556138596866613462076215996737385571678547433660127643429278023481687029294345624391668283948986411640504236590706061493475635764871143549518228373673230130426890454666005049883212052391994884019181827643539361679678775943158774046736457412509987617090807022324651904018299964620945814850855945727209614844483318211652682171582052068796632787428237333417678008681109031199431446504194393327144768127969669481993738583531541773074875859499899856207432335196417867128033528441722985539676791865498843542241295267730552112719071744620780951852757459098283027324378621720611227510546501867808933131353682450010513610964319063714336719009466335477416455629467749833235442071588087041080394082830084156290872903534019398208036993755090780611138970970025639096151411313311230867598999736316978582848554179148726297426082735648953255530972790240857769642502161958140989810747707443987310664424208276301124408796227501966542351240339260440270879316881776201313024475683380429881614690148775367428942359425304473026409810160212450633393042093944351259673839603543150355839706825790494919929192937127619299105337598798739546134071642898445533024505211208323815803457871618786042580563050681198444606912624083253207542403328153660170447619323546430028164485050644165754396489132138812917552907513154396332553932551925839422656628107830960744618679876210527187735781990965457602717638293090724338708682250454422849914201737434957116217588404446337695819736757347880567156029661163685344803445336866690277733556004535564334053923729260030800115183786610840751703697858197650656073487060860745614860224022942369179096029637476739736909399630628566432649504338424226577944712820775000211723295614536959437774741676027529283815894118856609679530022748746312965170047243678334090679107504179831299284109298655844844536332170591885622643038315378860712441171069371372888440867891228709811912953597866737867107668964930229391165409108249211196823317017019130133034431121053983553343311204407361498315110181616890220768062329913686020649537983804901876487857527029231769574087820299348057040677187365144376267675114822911764368355193049166338898642772450143491533827519364534928121326064887611600176369551148268677651233622967932829554651369278301386478801768298119486008403955289543794475032886532718913646266022457967194492940208768557741039760638085683199822658010975555409309251047743296583693344838867923323784535293724420620647581833684138568529881669591943141128121153230942463966359757170179201491654444919851890691253506601747601755070055067060352024250027457339370730108478204924855182977550653663800947081823823297324364380537595830337831274867333301295912713275488144830486894302842066594595638310581793727339462306191481168191368457807475411935865333679636072311484889537976096652142339622809422058052961122584167483150957862124973085246838756893898813697083471880231926124216711238280293561762123158453554038362678819315409613433195026809090709712081807902567265338870559715399622216092453853872259293447766924246976129077399378194026991193251705551891593503279939057281847149630415561530368004321819191574458662612025159512989288545750132652743340086960809896202581721017731138893301931665459236922511047480555366193645925063995335869178038676639907208317916441466680602738155180192721795204089406854368931195152871992544961884251216789347852676100190090091193779689103063741630769065733883614698341261717197906897032614243529216238134869186766077236014740181529508812569787069808023923005886866671664098118757572744137169715216043440881241153136493314283577947188888366755436084220260661619726989113877944350552427110213324840453918359709682450779931117751648826260637133292091508525728857708771818940434892016259710005396095501464425674659652665167116963301714680432307463631607641498625545127666836082283608923498094128829778167918997975650554594876677041246197080057654204452908725611788395302720345786967350626521653420660104881654129463475393313407071509859104948971489021986290127717987579925113238067910454011500429965036097240140403456780467992004397983535472331274121971842289785451602499417306470140761793914181565067787795205477044185738701569160326865593870708959278038533325685317134458398092153729357907766608339019607397015305853397465960778549605308966504551601278742935194585087913885901384962899059332609767580663424127354626949785985780057648459761673098313423456296541196954130365862504107815609705148265789131650935194530223024669788913025740153517694542871383745233471714836576839311933803014408105567986663552495549068310474495211100571311540602573336537904509131343738391110496153965351985633568418463713622640426203941425365663964979105756851169027189285851360426723350437522520544091395760731328687620115002840222206172197961032892518577916069384684628059620581619236003259513665150963136302839002371053301952265028772198139341975217284320465058958977744517006080620028218474428975113176640095752790464448462196070913632949924341412971814351886406894286543344626414718542281408261023807977413278644155256866982787290196625782994634313036627783737943017600330415339457783602566130038901250890564246838082827431875246055538119636980524177653674806444401178131348512426737504084867305719094472751032342010678963302302119708348799767316477005805249563957119296018716284313985183665808123943748839917376277962086887031752909674482820676602438959010441141139872792008053146248093023604588918030402960845295074881520762100700016250912459171510142512153791511568121363590171993731690753116932205230044520101259246247026062769813424296635774497443880261044760340054316510145056287593564098654557994956958975779283160362856053767205314346435005993913409889623215228020478645226480520552179567317948322887202811720818080834408302735167736786800390072267039143011072618028994065770218445098933578491836133569975146345631705569102026314956374470968069427584016516361843935905138120108395253931805303394192782521656781227509338727846758764038520599099725927640696596790369401076680944276040641572619578880522865649570927636167493032212295334843140816321512409729178451840754009670819985387342826987964628833440010534091191011538245683589681429514486877159193130969945641508777961054196586250773589794108637743502946928971025104024942267480418631269082917339162202808919444206896795477483803473585090627458217972265448129912474634166358240274381970568170715032151733452186982410676667250646920754672273226294333920120941032370853648396150386737732176286745135642091815380387939767082930363187254799147873077331624051435184349140587907161900184533875381553645335854391082996355479519055111187456758069969625667602352353464217732985063138969314033031061455431688619669625106589898823299765420313434877547885088645743424401911022707579888441763264831764664631237324142910271285465660638899427510519971283621993932859419143871702203430074452986223489666991916880269423090185488289273660197817004044737707251817154418702546344297624647433310054752640732913590498887489189951226822472174333298429649175669440611615601872538471178475342102795013955152535948225511650637666666212811315603082555834719843597736608939800108966547391553602954108154494173027347984108763998791985605812454059413478804663820720057288651008389042041788673809380936095880336406819447235174888331956519125893635367549809365866245489187485042893672316200963236914072324746021296144926591777877936129619253768382069095417163606723706028122932127455760660050516690162910648979471343683352044447274504429510643263007718548555391685121640627149269995753105128307743069735701524658531940143055422007989904912917923754223059900210547386623317645805000809882741901696157729989375623646261105411453315671078554628292243310853161197688222324535490134890882706255583290049435192837696026206458559320185336560432506713902932731645138549027657694967803017955983208540056232489123120394234699114629831993228338985335157359519754295789404476938152842454089358396552989805185067308263151162233722392081269038732674674554923684694824231099557435024246485331986379514784104150873738068444830061753981234936529689324168796352075138734090736812628751430732968712778237922748307938891427098674686733159645558697677016471316856442917539209093507681691748772596365899379530833833760835715613445377598124688635402368553392155443054008650314541846860256628367096350492502292850058676792539280372768774165847639369978743690870693421811963436702612713013046515868018452127664311571635361005539840493993992057977781914270920473932364996489507037314866318045703458404111434441695575843296862803398189171424568009899949622702618787828026251341600914743386824989718646468039101469597974968527385312485588489898797713908836044086265358367147545357128667750303026117571142249159278435572619633253225826638745226762537896937170336943589970121249815920160065546804452611426930339143435430749056817718512046550647451766228824003621953107975962729624503149381413326034292108951652733789276254940395113473002488777101970781647786707592331705336950421075855663552523205457594300382109222211586713661752385108694944565933219993726489973945978398652249969564644794139382875521921025672317734915347056314060345135525333443931840197800238436589918199693625242337507844937383429493122606305183114341816510230498078217004614258470840331326262004844438721621682156115845712850447526565853107369292557909137409337136042155002308458806955708051168189504551328413213146082163802790209098735450650397496141606987826203167848400493562410062766867028721179617333966919669249886743527997620097400614260841881944199989998659697706496695184803008142681742786211804088525227131953827882902663546536495525132836976734285776434874358185304706100664364826769105830943489383455990365944896801767859275369562846427920048246900688463120530965033355939775620088596450135908972983747186637671198081742915915546241134040338283902310395895124174084986921706251995820156853629803450395078068279391489360225313053767368031280764688796831541947819376272709428278351991159671615388825227282698301718326321838294075783642171677337525401521478510020297003943955015316816916210334603732999658805763386566312129396355843944652189299289551963746884963702759973456252330103038757747914874913607457146962080767275753785728434644877055873090350943114582808683041556410140522900408215352129452249905834801797377311256553084616000774749009696126904269639115752086618782431158815637701089112794945186920281771262011500234033260122789246824143531440570350088207265489927341013961105594631331611964448325251625594564659861873814278902155602357044127678313005814284832342110539886027508155979750375120551624769176568549701900281766443845506256040990882047953997815938601914735487791393865491509662326667612081842662999810785804303964639768990701722357111689770421778462450638216643404754638297619493202220738366025229641342864577851862895814752045341100565515187766792471956610574713135684094363386056873005137268090578328609514541050490954719115862819750092448784751425076307863764114733646445884262479535103643546432864883540517740455208264662969834893335556243847796559350320933993087740233153078842081255720310307790097093484504249506163802141192536321135988373401030082212674618094106356499044896812929839076620009740989815378811234529241672096617593462091994363923492109755775760641205111772340081984955533424268072643645634642882920834338922140540303579176305296581929962347048860481708148629428620326171497072969132135239847835445707472291928666107365336029506079026657655206598067932735496053313650758977890729821317131855515400915459389198350175917564844258015455087533461750205299729944574940486259954262925849042329386865177103090827936532004627008338805435977493437433628821266684142927639611902482564266794749429128521565170229731472198750094159511739343222881040759952901204388814918580951800991401482220005582536862524618787092475655687966316079994611471581821249240875185259293681638635636370741850124698219686618462038793784503323207783138858797852767330314773178195505886470961834249426316523173010102082584796775027461956630958448101424543568120167890777367806945419265921214295163845758104273646731360690871775607488303188578606235286157063055756645605333474408963025692126264937090079027220361766234301037068911960668974396528933395667517600240456340700666723104762855755641095909676164537538372829485899571894333197211358611831944354148891919346460661987071395450024908130964311964846716642262110936515164733681340967370550509890877376537005012871964225076246093436873005755634412536878022952342539594853157990178026571844210560607728686516238477804181419456319419217402222545955489667815630017817114281422056374091820376538635764731580615613995904996155655221939779744344275439613383846411601787242833349608564219217343030703850560727158117257349307885797822409458333128710855606181460334132548525535301765090516815710371524136343471767467570698389996998039302989553890563872437496181409191366884567002227425157466095577845364435577357465037943973745135054541288444553181403410778793112893956479671105183103919387850968257499535333724536032523167354819232636684118122930398739855080732636315373872067714963521825444213843521107952547704670586529745820551123911178406407235469393135480561374526820839362182551381345508086078443280170790201756712324064416216069835082489901979541559745394078359440060085280547083307731907720835700325775128010975728276193717888127088859432448087007223166898900095716343330345927009199391081644156801045564533991028922397025297036403616550918003236847320538025867185864688438321709609439358097394873696630456992638485700650734819000381278942492889642533710357281943223504694428196036603178378356227801300449386306027932614285128385698615601913968244842983051139393594889473546689797099633634047524134948388864721341289824650990094443240891655716203306195767165708882171381899449177894018574225296020543315662588134728032592821734015653777504800339388153075672804915652966357712421191614754566247918977440110900259186722235234536759521860256193518294792111641263966648710802613313775448835946572508819322743727669844042111501768388110850418145611541090500074036463492699501262408316176044071229136010414148546767498426105615315869047374695356972689478758093662402119921118096170402382831117041871980320582759185831192139131348535876678350800237416511098417322423071576420881279812434722293460793504860140202010920710753927186724699413963223037866852197772508996322564235523022935699244619623027626773621128174784457606207483654758592308909255414969581182073199439606216706455816246210288171277209949621099833750402062395572302538039316237137066018499720591731463395555997285566090334613473658872997462510559567870948302962499693262699428920738643615815846961965556896483129869627196230448008720181840290100178928577796536597010889011344510260551327167171710229065683915711156903114226789412981149781824387561224874668333773431764181885444911640307720377412746801191391414131917974025882344423387760128959784266524417355698042942196936299302017460886667453720382767917742515231494576805600281065840764490992527605080485475269550678352663043345525157245141357972348238960888568390112030532569486400009894447104919497068905223591622877329733098492537296473525625779814222564451985367823194672997490963195327595982434827169973548864543360309892433826580557225498276839015801316958404153045813508344633369558444285825746925327544854411166259218199048038551135250047770264064247835189955470684877257143352603645708397395349975540225743467566043757958671960250439412356779072598158937710519673601816421085377879527971106025178346532899462915156448115247171244378183145012871032806133647770824235378768271162342419454497422853035782087762030778513585243752764150315712318429606188616492190289938672409316416459032687015927796576721044936785131400307284963254717233741095456060852014076410949736073221573189208200750774376570914702456489138100465721896910001884418803478769955469843980777263967980630006500183898359081295035962300809112673223694916289358808825708178691860916434617706639608312761510962901556062039658791119689743531967552860836327942696012759933025207220652540228428045287641594496459663365973688212215114528947222222710390699099954984289250723878837923844190074368006136728312729468442888148172561567038559966206226478566491201134518842758413249344828409514994347014256559316842463736471684520761178199432216808206381202746502117839254671932562227549608834639895551566891246184390078108290821434740180100298905418374239498900569027883507203250465411323574443243039216353541996489293155769494022846661893376479700691379870559508322078184747344577231965076250534557899189358412984404868598329048202761323530571508525074002450417309189513329590702904988134489058567180087198813451397936622105563960072825379509191055239021102995083737469802225042327090251292620561835243664319100341711626992687848747380350262425028783573366812882541469375194389338084513699486247050068208631310209015249540061781834526130574206632240047009230759550576506561002317769332752663434974467548651864228976576296113907950461793457018393655176180180594195958624367767291774394931983750512639993782958150001978339255334286352245288510352229636578424610435510627305286913711620973651246241568263539517353364716347920955724727704180210152343781406116538135556505530947306589761981710915930895802659336374538405213368572477770131532740410784149039648896173856569874224355895764289240963243258520704701918268859767946701320140858193925642486152926822605129946161367806464305388845247840686507069261587885275829355146491620458805726016675918355729116666945349156810435527070250854211275889170813607504868780504141722183232197197672788422842136068821994861150020255322771803672184333232015828564542510654028933514159742499632020538792131884436917723475971201331260594620719874197668250248454084881213273618230015623686820697658041410580495198481042709623255808360199801051956014689181654296509920257533645895986356836893627253322307022086298951463774052765293588925202585795656963825299650010490807630569776364841398536306839778184566641524290567139556476983982424587367294132178589669663780410440917855693373533419231137700136498665179855514741301459923417592872402864244746940265760070892764482814782082910117117556945809100274388421885408936308537690565030887226158127760955682496776340709920671273029448582688516972670028042766286867173830265101219792854910880958279374999524451899461981942237870045454895385016963846886590942882036121878062593030991187382628820690599508317168952431522373235661641188770054146284372622782289760436525895254887383416485024512041145797014603286145775948363324035821533211627172095298421587571974088867417824565711285765769718455228797356041663089046932862764119685920140232880205685170365314259629981317093247988828129032906449635700471166636121996314874584453798216638984906104042818121560616071865459525881399424939833659584308494486154014466290136457290691910232667117157498169500344329895138975259119409500200406382092289590046461160398073126591498713421625340643916136541883202949617123122600042265188467800551602991193311561740788524825171329888990667205458404166547699690787068107332365071001989534138371056577298029545170023607497167374145702362439266370944822440935754212169019389070068575025205488664634685034832338758159008001014785245124887983902510583481847556619135569510849754147769335590297833448073053014959556414716217171964878729877628533232365649395293252170567346391533090004930499364970608261890769017560605777940087888454869525158998832370127685437261391042341935890333875319737738010495900864524119109474435180715962571177556880218878273625147544235390483561885429659940051904648506117516079376543987271620842926744967498101539136934243742632868000671600209147418417070617069420746436741692855695876308691446848825721806987689376474567149877154387108441132038882855439933863496754772166467834770672391860034614672967920204322654221041411845312726946636564663655262557204213186238924640677403295891859739904347215273673668606056294110587830035827573613289941994040959278551117971223391209274961757642373737742438686131220480830574412622130686642646413925756389168975043729895517844217030927456703979886261289587573711882964945860713116790703777901612079017855437002752895111371001708203773463553857769131651662111559494495386104350243834328673950665894093273502407359173604401482631176994116844756826531681871096089951254211841579720848840294755064514209926877583215844035095414564347013149343898030607640578564513839798927094853060368612304842436058762908264425505370212853595512224545950138403910991815378040267094468663736437712909574503750674516963318807243069641612559612686108904298190266738898260974072633834930766320903515151690859249996600517792288172615962837007620608428612418145772787243652432054720905525179427982691208839147711967791440057822982848210876319271593390928183966256657059438719716049073727816165171292026020450515236613002173437155421204514362730047906067852538565219219401766273301456683742353390341082485880836372364462992077436645948697217584401774184665771273304590150932561007288112462393608432088127610075233320347197103057569667287208308796824521346572366254522454424012713430100425109473035360285523812361912974133580594786948117070825226534208877325972655628708417457416688267278749110589311015843658364196285916040963572296674850641693349950840387396307049893503151947649914207058442364994144541738511175430308938549223514114297046008943379714576344789036526287367431382662090934317842840075777006665955669077295604268594692922803559738033876520212899652234534209051796130099455077333505913068121100141444653256890834579570117041837203520502672566594295195803116673510606289655821628615712466312059381232538112446241388404536408066073774325902948598046070535243454448225360811873032599026716824155604404017663037791429706798699540342314380224152793494155833978927671176573491260804472778597284335051792450667542482169702935939111740444428718751215892215773286856801027587164432346308381339262773701221288063084042008064214830219342800413525993275971518987114097821046891695064976029920552630699023739981708739508253358486269179163917933741357571367847689898221507150863799812777765250363695348105633741400297997818206673453059754466932002136195664595392029083459581663871586034562988764226483310095803674047799538344489874861628589247768027819711993148049417318304034481058020375370726969716568581875329872637628506220286323475126659068835674252608259411386389175882888611454932569791527785684407090282493330809563534467825883715740956342498566488107910458771948110395505198736050464705670385439805142616708555305747437817727327329398427950837889756065659522929768921885529287724226338080029129348756570633763260571791517121875667524285206232355458349488968858257616814562547754575819285309313945280909408047876821459158884919137384400531421830272697224836041520726155782916612688337732452741886562233388968081282467318512638396743621458510152020636228935860347269254655132772128140202283753984804917835907264324363398034512208703337223358051275311132995428294128275964417417984710130507503791189483570832238441621285721511009155198834977931683347535061356011413986923147932932853222798506808442371312573760412770778330823172593698073826985015007148209579112524714890091038414045680162139762199303970158713606367156378050292179406668451309519188520417731043560150577977156499438895251721405400416442598211379108559006950906653598722118461815090490441531766821758772633114964158337690975630574921661677409036306797040546478510222588267725555831883205444345646481902717126950610814830963191663810443953277403533010205248873619455466228203488314808383952167692976941000909466597512424924720267385653074716711331474621556638809278760743797627783693495147835579977677853504372200311022208135635667640049561063117164934781389783250750940495261161830708829695077236853489076737907798342657918930847126194299978606185173675225750904190399327993297340310339423281689017988383467333047737016562324790848892249774860807027701361738105530413076681192821306511697306623898721600091754285135165189074760933575400281110923482569869097874702260227317436578383215633311151283883207265583342159013091128909975209932679035894672131030056802354086812056139231283203610182613804070761090107381109101430329671113971830074503109724195683322769464051229906155464110193190688307907574505664176780931071132664870475633669306661321216616344426768880190375588085428559471721375517016242112428794783632462658826157257768817078600239363513844853311022800541310872610238316248301059622799727965142372514589819162307986833637578070898944756576283390439077338683363811574841643617706951191942981783191200221263097007428326644440630525590556046017818356620470109959493300729872181463211335291440660431516840289486843745865057585973895940787436233865499969388445024668397911033023085718956140165218672256230807177966571481655193781407792430437321574592066541488755258459591531341295870779185912452163390830672737317731723649893061910405650243450962933631503614073910499713079277280398231286797308645506234194851326522958173024132185764793357551800885859421705518628251130931441886869750472641453309502717875712235851255989705978368515845216409280802225871310926827704598389924798211980906364188472185269916307259863555103278837942585458915130685139409322765479535036351954812885853345204500242153945835757033158187221421199596986195187312975846943981445091164668480447717583415970126913118232876539563547278921296100539098762482434885061261126950092669390099976055466175988012375083696264265387956489976215652273782751641323478229857770222363365936892040371173293137500344408135634215107305994373326447841606161510215940150722294646180255472019603743439947620525232330148284014288373393486208479900009872471166078391063448547319916755963847212339026616263697303514214009689290195968459160803600749595633596802551332431645789987902267093742657751665500966182086246585810025916734055268479210072221504562268205452340444578912705864630806347214645972432736224307572728188746464714245263097757021293244183676615760938920851863698733697900340246677146921334739365736459325748682569971726360131646036218469022086448772083367435045535176837411650300876134162860881394719603044031833438396903045895474092867908104252253868975903948694118028781608539274860457368960007700341246934304718880736840119019373462615535051778356521652022507014350584501353880084283410317314824461147167389793165029925845887024880111419780335540335371477703356757499816945464623267990133390808234523908904912290286612467018480371433514170419207151613024550175809924494740371236608385522534200476830251314574533191757920634847983978636390642167959915166394515446943783978950924425819553773881307832024254469602978840237773900943200004358554597040742593603309553255364123371517816291618735180255233140499656092511964936992766925842436559356608964662309066896254936499921730252538727814212512860916417802567841062758861168728189699990589568943122582238126615906975258777690282353236490867814495371889160003332523762858590488232720711168173058222941349415159615213869011536985111896385737248957225315038589041132604939837406192917918026550392965639714117722454329440282332971937925969187607386114485432501597092255252126786007756035459371780523903632121390081871203650935515610344436136487247491314110625571819426647791574893482172784829011543299418395033157151790725668620592455132496855660813384178396512805326751964708936565477752317455502673620085465013476560715449190676315441934138504390994031291777453347327021036398409344499506638098478705742127891700491509178850656837431940771079653650917762941755184686012363586641889223302433798798658073455869260683024496178759601248263628785858080725612110753757550189722039486338739957404045828375985243326211763312114380002203424127050158897433624711556856833549957548488039464577078516111783219163204472926373428758485764244621947045251639295190653096594073023736574913152254873676424118032229296877512501347631948964540308419048588672023800313958467912441148324963262400391775562634513473775153536004127479384238082125685657284965801505061293573481713869021834365818136891213778807865557858764878662555333155171126041556400664338992399328927504458938447668763652287307005392540590183000201462169039887704849936608258971482543015972838021977302126046718246760540907744590983595054653048130238587203487834732955249899496117796134212932779239264598693833119601487655639090238677614629788416624172331340158646210743572723204966338517942786740065040949439785058294207534544988646031946620548498956688497320537608708017869086698454554134749094116466573399903192159770954717583585671805811147207040697343164923614627963184000999730102063989802355994168160045862605238132292780318176611578923983093070658585459998824668341202232246407321414335169410378836994707154157203238499340224060892462938788832604596291921848120107260577422335424945158065952577236032992034364634925180531343984419002886085709996117316203266855183491040392490776031649258152272689619156760956255017821946081818091123331433124466567465571118912111040798478590508377858907658006286384573288537687503957444966570823570169590613230382618239028538786573083165020018610744876839062079001965020731085836937636930614921533627991071954986735151369204145205962207184807842649366516844949160541980253179084459502855148208157858804663232817521183124727663014507416799241373931365222131072428530350495733847485502734570893993868596166986671023847018774703345831277359407614993710106223086044126557869070872358836240924649073160032890360250198899038732547869529131216680800313935108547113986404281239358260887130839706770815994534867777392785898538986032628673419182003254341718103559062899385806819764085499546094695432557659928763373556427897550557117231141218449777420663813415360244321041859306921344331897475943830806322609254362118176836861461080354455333199815622498080998743917775869934195067268586317880984366300912808332614716320750610478117742907913806429076120296180816689898461357068673846529475488748721835470578541021938779140464940703751689526238603592218081494167189146442699220187980805634756452144666506117772337528256135929547725258781476426199240462929573093028981270588742901552787446624620853626871268168053825451000803349563174668848980113624164383505415630807128573145871243003921950020462120068833807657177269285602838976651400179237391679665454046665152839099200332353037320336255794249263176575934201074304897155330064850207418710803917868875416773230887341669885567045824626147018280097019111878206872845389809492461788719701305343948373515435596685111230746282573218933865956882963459211441976657606400007631999786202952314397191203936769431669854622684542246631355341263928966714610237367522415923793580748658331267542591042568028540322696410630516849453966685885155054653377584082416548224741400935129116172737057108652475998408317313733599232289267617919816602793294692111171035540813032991749568513378387689795592614771720084615185585939027116061964980764803188878888378889272767891970754346338205534735598677471560568125137143210519070976063865707930119335028060704750100790148343033516059649088159439008795867110186429744444594294648436121424600416265191576932195911840364227351767895750615743404851274309219152324835319898322043927624682757186122600714111935199088113574073088008097035445861265093651742959956850681769397009839234800846059574959023243295862670404008540610870951198911609854356142737565728405276732937552670014582628817311203151995119778238425508498223711782205138968067640208311700360458445974541265079717974209629452292459591755422091562192800062460067390480273686486375941238513734596017360987786439195620873661402697150801415126311874341866081325095649059667434154766261182449751875370000550481260837277301548506881098857984551702154739191979138259736914762196927469534876901615498267404370955521600655654543183471993855986269617593828833239677972796292106302037424465319170556498714664364367127373099377535771678682530265697705465411096420224111831247294468338052733325790144187536163268654126194268607981355540241474009365340501542629654002034450024777416008103405581263522402505184071783724860720963941219917701458230793840413872768841961816181235906956151606268455340578550014147418266858603693452681653895417893352149003232786739267318077080702967524816726735189274879343304319040178965998971172776929080127455704793572993022347403690869398774022547218648871194599017344394848718997358490635660785690575174408648880180657090240272153208070038967767303177797329765239386673318649738707550937696025461405882013432085291659734287715963826810472411756515262110494018478291681358138835452499690356459376317283858640198139204978116307652326109977720610295376229339009065658046824962342371412938489557252875467639787142089834102259284357147940990809851605552256588280808620756746561206596423637297721118367780948431660341147470070023681473292985711031953771017022649504358205402058543700941820655088645890006024145502555740807462775156891224333640844180775617124827605660061621124898926050579426817422515716465565303651894541725145303997056915298787515498772814018638565729242030607478044066888844675051981009848166758031223773360126352311509527876334068893615158241907381855618849580561042892439088875369350260914688335753646177801820185121997505252512209335050234106620222626355557219203946476280465448622079277734370747762895228977569354088573390355493443623315505183585242350606163691883544392241202303009558827862280919569313351690388238938947081495168599128700968505554248738491688224266953767206828199555037350589236191142082943880017909251891299313429082807906934329851147386641366580370003303629499957385847094660140880605197010314829811714753021066272251014876948413996240632918477528172991968340037273504873348371843515343915842068638461932922637239466817784732419067226806545352130168285990200928259009779442299993708661892350542009103908966409108614653245625556258136565345808996866993460814100181755989291201501364112664384678852890955260057071292738224957711296275412235493571124644994338075859818867137329333803078896654442666765438575359840337456832960945473941118327100712888151646854826738254958637078609533233966682604253477760532215767431898484932863173121112654533595590615573663838328102405039589569687940523340618959827114430430446933380017834086859721065437184349827579106007205024055556051563778848334247910315099251666080405286728759508274920353736742401443962455372437425977418731625100315384930029259654887536002033726062846712151643164205632807817909719228081565914886959255391070717857148885229918756891284787207667465825112961868481238446648572236512759565636502060329460114076566270404824992083279079635920703791372924875818095863979696975727418119912503412532660871473211144861680896431179027537195872593011925793293593184152979726988902610863144533176728083231389061989087088597971034278009906591344721935797569761860210782190273902206763171169207806108653956752413464843788558953711363282205025493775036687021370838786672410018170266701732563589237957767599913626011803045273607593875673611003167102781844824999155035456367438553814386510224867923430770125173410637783429139808441887332659736486885654203043563153682193330157490634183961222619505752434896887341263285008408338972958491695343782328286443088707481824481998911150017574358453247744358625945266250482464166327927744359437437114865057732612361151829038222831299116737746510861373122335776639036027111230405396257128760485817384332884160933722868044645535365396087790277639805220439826776842550404961598262073140454039782352338025930190417843186906671580943236775079867845246583084953088002855887562521853787370895337325296296533427136172039607126658887806742966457702579272839052411245374092440742099413568886622436339326113629874478600995897444990960159705966561982442794269614557481714155437722177529809237409143802576521255271492742582663854324612283876098981711299632484368449259452408487276322388651252230124562965380800861442579312778698032058679251994701930432900914943147442255608843228651823580885210158727178982744934572791802572555448182464158213466115949135175791093813510985745802809462892448139589418175554845095734801641359342995223832652680685626125490815953597383626587093658511921670260855498437338593112224928453372449771304437604835198030746368827266627524326231256976230866041254094546736864307157316163562090809000881002796187926219859196378553834837452653971012025714677946238564139995227149260908820458036500054972811880285351254523671416746375671070759498986900703267450516770495437623043534265141520181487697415838362637882079667357924083275462291289343519994296780341158630193663417471861118396605301386377628546138114490666242616573779546811215331251165110370093618819403355279608484741255851319954875423030676200404264188214534276950638344061984300176315214018522503648860502744600371827457248415578619323898796694710585359734819842998927571276724346438335094288778755931207058074806408970771818647965013825587588153739002974408371771257011014655198430741302932560179736319241884355500188694269994143003088534645086343987111831438741619283948419074107317531581512780482160504727064493917641798838948843698244845529210493167572187007162100177992129123010459454075032926436234878249788980872261237872800159449105944360830013931487921254110667731452207388486546596895416790725930757657810998195312934929020942831537583782191426252965512141295037900374927506867901193683777003867113820466128809719058756722314927700710040302993525125088114846556423685041126220318766262948024232621268932680984524226367113629324581212491256558978352646502990274949426550506692664963573160646371788420753394779092986587185801610754924336692392336526503036589068480338798648618172475705209693228237416895605266590346827291658454442770164831495771720879429395953888232485600423721357641344133380594256511854611847394327343152814231775668874807954038840150052374836464083616464273304749432618416168409289598885929586479878451498757634975827847584996853855141423424750847136191120124457495003256299693183884620082313434035834861189881963731603930052999239110856470283087979145343205692640728856792349554965158255359768042919994358279169886672269598025246981653070553672457953477485509924447614509371261294912212110738298678037122489284439358645642059565629542097227760186896018953118050801652612878005789421474368397992189967516691007039479188328280263462983286361227938078259700683443292068863455080616501274735313659294757575210006465157645268475413033907331152207334490153336071466053828835945911494898748326573647518409973182106598460237055309104222190306983455948313065838551102577486102574152644046064217280609684560340812312216122634774752188919680885796490746575997447850837213109678472569641487483330259414325652836552501962537906990916668433188759462106155923346381003082181137749966802790828705507464574773416590573588706851270974037218178294142896195987298649194660036444718958535764478613209545125523898773618693437587725010395332628759013191546180148161941315754054976921770952572163924125668656115060518188930904039658832098510201659320126557357165119948550061105016545163135268157252801894781574674032237988601273510252869384421803508700706426272035262687440071086752958039902967039074163092575379018048389679148892469536405720456985605673121130901229464986894125125376261557291403633638959024464939325368517211575888342597854737626836189344147970422845814080542392019252069599924269790418525945149988614131176353588964372805445202586639335623069055209026778024659676414696745763919887589550632823048169473382217975061883533948531405724029678227338385159591379300129943775538318979500530113599923508077409906822032126239865361860682670151172354830180967902523238609315246211783215061218206330947543369652849511610006907071822632330733539119987860258712172014956776035669273955740273994682966308927148463727463335678889426301018948220750591194653993996945530865833430598152854683615895024890825798312435202781167955780251072674601773360023475816219354706857595416537944187988752366753154404427309742677119405645778878205168705392205245940852088859532309490041003544743391909893008409420047517238092755889152245724626450946213764007642732823925497829323404650135751997104014472139117854116477727809338530706344083921435326500279807273307526860150581652644216508297799349332338245543716679752977128325791895343784625051533712825770301013725188694592839289913288419478914571324832545257058611591818213215699244682550212827706238313536262154311482458604958430471269573287057024401924727078618040833588938654269152801601247110905806587507957890614063113625093157120244241472479222474443765029660227805863851819668034510697737539962860338815147925911517860090107130884761573513455213342740432405618934064377851798181678354415038615653068660576867593828989143847541256555388352394340279491196157026117641113098368376474019195951661823775018153618686926175331260816414614357141524123511722922991200338670265909176266850262338392942293181604641470547566163948175424515023010788529721164353750792524818013908357052440873809681269664697593889360094119836099390434787674813169672801393671219087917046614336039205579880463049192944507873104425447469067193352496819144989919289358251085966266209155714620446240687545801479864282748692636724699460012726378487662940543816078812128067707840292416868057285577268198016975511913965699647753917703595344386173486844474068989901779921803714930872272916646822000610852783500700343075539643420293788667548259518308570323186599259044909550592623438339427834144451659965910023399295813176088266772176088132294023118923055845670299880726078044195447396188952882172756093514625389190058070342898148988194761852320627287831374093298104933277785453473331360455892666632941014339646557188073403643013972122569851044919006137257547947016724302321549821686050954548270759086963727106066941987154448162155849573189396015063319970925997543722170178640080308209263571704666328701175784639096671852579991040439250734363230794858774541210394043586061476891553658671702189716217558422155207580976144962436191563077712261214018344548702046086301919107287736944441603731287370988937128185797572483170901933967708620547103149841273759673143774404575424029433682306162083693096155209538019791068030842612331783639156841480772095387112272232960534241549571279933778644827814645077117056662784118302259338058281975181665831045166186367112306261656270263259118555652768675753721070743765667331882517924168755945429848686339277358981212659667169034801429400021686945632102206522370167552260940427365908750378354033609776967887621645079231681895420437606004685773141344782993897394331861863263394274482269950068103046662059970334525454130847231106812094271130808571475920017203767402005074332805245679661060362874364850595703948380762051964827729075642220823234449090494004756619854558175041816292142928955092587885109440937940313126725146180879755630665769423062748227067553104847346619971776961309680841313566392003854195656092959190427333683557391507132414466653701000009838487069426060139371022246262955700950728944505842196717338517501224359066175067782314334663296175659624718574179231950182842886148156567048962523527602756696842311190339315654180802171226462441683820504444083589199199392528082972510568668111547841822620462456705505258876746371454472372861864403690947762944845057935198306618818221297473444931919720644326295428878860572618404889785817542147022562149488868121730522482193672894635456865319332061246092679126683163616571277001829858600229263833252692657244203017476808086753123410126017793202074133758330431480163440347732427682005280680514927042642011962228764354728857275418756034057797314924920791351303453524601104152907975718854541220110745410040264527096741647560947833193001872880360666428635033261106318214025324308212700318027778184452754952598415104552437570952163761177367486239298774337172738499731377247331506694517562367299058970589504671940257438426738291005598933014905555767300134700297393936727022951223561910934629417522928783969759624411667154708725496408906665917668757959796894852551133057486160356863233558573304463917249923914220868373252777804397051264656861824335675082472297729000948002617347089032537917208617176324661531323905367496243312529062677727795544843101890552151396950440703438046854284660737364432549992420505669991758475769465698894719021318764686799204733082307016269869965835652350693940270809882650348099983725316282503503849252742757850726819622904341546776391495795286436818749083450155202449875481063056654392233434353211256661871504944484411085545652153037072863108694497182749898151742686383487899345572531901289980146608047491627536272237767051726169789934564490743298136076232951984165230891820925507341065584781119340594894930682804758032140054609272189271749533609190391723033056495437982759574368697204724063561663017500945228150089536567491286046100247652578274706269427363762178440895637432789535760353736465159327791169586890822025871286466399171606112762419066529558039598420459209412128023740526742709577858099816502388503728234509086655886198447082030810902030962443173893415108972237996789981799334694841894107461822476216934630600482803680782589886060479270370041225589763797496275606472379509758882961343400936226974382317517393865160520521304399918205277251402256601414986235500757071381103542943607534388879855143131521157417864056335586278407047211818507261140238462593556304438136218035629176679095165493777444093537579008688198632042851816108732009904881559440320422737583680471285603069852769566701945867388915073332310103893139716108942655534668496850509956915875467128730177739139078265020883827154217177157458037609863691320239032725086424971125789203132834767715097851168018270247329394697771270842257223684282899301022450799335522620985967973430763198623695302675300570592292022602641222965938338867337844160755974365449406336855295079526152489670855081102074628232468818972365373390449703340484208413280503301427750448157379652008831043975843591150420247747924369064560780661766335890069706306660789157870894607596437228619433455759634901105158652146986374131448563289020192800643912015571111234148271744720812334054253241514720330126156948491914126691189438394142860391178575402036030184225709079599968973399785462460951819092910925361945918021144335713963142309050687953791530510379363928389645473935045718187765267022255997654730583986825125859183907588707075867937822849772372214553250576942322604701300471327693013183453546822331757710753871492398562301562263988306671866827042382994787071581496756882930543219398034407292005087309361093340873637859157479240803579385984031339115869484820803201968252420992137426745979518019448853464834365834789229637509406319422509437076724714958464239169088684611113820742075244671457857429841989691151419670589578361633755763779092671326833462882764946934344396810740835785979131401494951564400867550134386857593356037665314856062682506483075538573416722952151650189211884720696543952449259538889006642308387009182283129731425216900919086397372968407826084206262922519841751452583167982461213907987529362354398175475359513717968484234598638961600753290638858528194721287303885347958449955963183246917333335868410803681891469993307678265585777415728463117082032133712323474188574051014422807058784286597978804739315555909905184725049252448198243650359899294591883065583273836623071363274257570923135168390447309551611967468353598667784496913414364935401585654593774119967580797967109832036485956502825936826383950584413179386756653024752389985243662722521089278403914513163194909744739984994630713776784959862700058329095620439247520842290494959898515774089400004403594654821082702249654449036778231648356499696574510835885030140150585988084624811661560900059798038492305395517599489430848624024925276487244296231754709521062124570862817582571229391283121763971139521408139453103346855200256466114957321634266782206527285495899171261112086717487802783024579654735066515757718255639095305863668645984987116767876759269068558939970296778659743497100964357905726682494188390135867197188440127762639473842540714272164191540427426824466926058929847820175826490182767023942849696991824320372615276266536982422410431646536928783851371616338129531987314497768164513255611481885277235306374518832699153647531743673609433946421539193419539613093225826799931317691145297024770777742099682741548376560121949508437812578953689529040035628543899688839203805540544713773823927550623213581865063556376350994135728354729739817843732720737272361594024888266060327448330712757651056272473396617273581065692157826735362889516210408361882026878596896750010186154942036397705090832918368167033046541336808315903770172477627613674034176217398671319114733081678986224865622587525833923224177166597117469661925282002626742750461894153578065543433792736541362835002663482693877198577645810607185903159410166919852248871448249314954834423333861725932016368275876884020339624530523697442224846950875683264812028673390431498331560624115650749418217632899903609931643642868322717506950481613976332441296169973803160999107065023144404249564618465039619855223941132679099829463895773439615160917895113712843232758886223838774454425158457644288773722845866325382794266449551164002671332546883036572581689820629646030683272057307746111509908350575447346112794897814257072602044491046849258909063014931273225317164239899412645894642092617093214626436414612680420178639152884919655697163486064020470589860862738355787234116879398059715156450846226678427056277036958517504252719037447244272795037980324329251068570531604891071615510525955149894662648568069156959354106222263655607583443413866048522621100815393071748457230953885424880582546390164880108485265771911707798597139337212710862738336636221177915189772041171447574884355927115276754436341881491864665221042449292685218058060986894378270861580511985273011229341947234329891980834355827712767709713664778223913554608974350863625542128979141717955422009025908137757005775987300211045045479555834076519061952603629498669852965121473654297042885501469906763547156015424412472892002851032435104832564122811343547040181966196122029596440540946315702798323579141277148244638725470350716475296176893481000549872179337291891914166043196591044654578387111824952589010932134105656047110994537628525789650700021068007789347142238717667881623937586132076794145401880461139316216436811632324570216805010298552785415903387908165525512524017888059660917186471381178789818858237935398163126444348637373320383934313895719422162733633202106798945043768439346987929830241428993471659893931903995375486929021701499364264177090974701458187501486829983300275377213549911194653860850356988466348720002322920795087912617147728320714445595080546892464452522784495150806234885611648409265667592132301969887701394126268432668125954736759066183979576604630822240783516307319002988290333325070290547471605268150891919911576213151237090394255645606334892113628417197483719426121460959471150892836045739906656435029417553898502812509563999266969706605137209627986230069021311301246743563463008227836924719938919375055645641703803013663707175736451337144715271263595346244984571538316482100695764555408100256508951727757302992569252319767086018585878055423118014044428850755382395598770267025244033065928796902729628327554256075498154771596361788017882273070679710123949812434281873443143716258518060324727607873595791160032336245810538103713903682726330683756716551969988712794424898680929237885192837587244819119687068302387597783732019278356852844521827599509104294104015667229590828910847309739951309377587255176991894622335319292686836763542506711344309897415285597065117350834663533886924093666264505409028252688877627741393047729710490119703883626186744311038636549223646397165480667945608881518111326617950156391487240325489312342074960631103996564017823214547836514978149965880474344143160938286300331661821295057485781529014656698136886451770570416594614905850475292740732312224685210114232946787712566116884096874469531006965052787172616224294726743762185764833762734873622181166035160909920080288082665204817199511358820701866517729224670999432424713069812983723517305044413870307817205942218264090976163272382882666247597594673979403769921392487590101447633757056344904057722169136776652082458924756986835612635669073251069561409631409173051726245482377864147411525060028131209613069901748897417793747931851527099962276183325777304071690878561316935523143437960701118754984639469181684912269404930876018036587071829818871756014959063808288703893555200117518199404893483504345224718697817010211748690495252263195180480306936292831743614826190926970574961162499499672878328973994647291760773316143765625380281713017149193068774175205978080500677850912990271165967427602809504837600352941902374100126051362623319564440096493026977389929162446397137692856672636841549167270378276296166439313084601658615344923426302052933939772380428859052600118736954112850251427410566184002101335083930534779489914380276014566184502456143564544042957643773518165877916958292305690671446503023767427094440488164184808030082437406045688426425261148310414669797614051595098716878253868477385859906900670764119013969493675837745879823920989377035044331401562589534068373370226073666196984630974801970036483399056829676818950399709186997143577025953081125800429939281365101414250210064609106413699897111558134812423478737331760974167667774863454008510958988898657538506691351406025050293953483911589091431813409547545662971438730230501206706140689911573970626833198751080245115460064032068123718084189434542298407856964637154706615046142514771499418878510882760481658726200532889269884412324961107971923071216460408258384260472726711188449676558591010943339448752750280919467745412891169776415505284049450141059649409801373963511854910654384026989971323079308145990681199316624338827517355926667261807175953336885651207198138236111303327787961973169680288741817074125974708157424462501869472098661810618335383498245617906595336520141972399015596003009283037728068489779206435973180306061237030651946863052714970979951318654815099360141096460968978682451616080473791867586888785847589307563152029274052670564634671182625016784982648836580549183213441072904985308072853488056118600659405878079940854677382555501840222052095199679120438070967649317702453090026544653222844687393309312540838979874478556947431412095110879389952860451290166946751699570727507207788986525458943369778071709474451515005586527465550355317826090247357610308718497468286701890585532286381779447287936861046045253475334999812007195015290954331365242829252722281976837044339555155986529720584124741280630133377904767826086213784434054818737449525454369886049695283235876600166646829295803149915192136275926305720125569716003349227105921819966805961239815154000011917935969273099559198236669538718554929982671415734269679468773438672422950188257971256811024984552174205874711368374661760844072686994579815138268400654226979741180613896006443534426684323367916257151010809200431122114683113221582122463423241198567035214317843666101841883353214810099392875926741883419246222334878007689202938136917308146357624801169055801401467141514531285877837651349485935998120116492916718671104569216205726038850084265816626067249153356323215705293610546193561554226671874653505175834573807165388635341075626098351158891424428321317421336906062166089620791777658597727412885136738116796447726189878394480323258418700379260398842398685400967050108741238624786069896362816859950712112952697293234926546640582552529968806033018458716119548145246096588853564446508734599750643165166311204601158434115106896343356975289667632233756756600063324648817285557905852881782041675420807429192551866811671563218233993419372582234163185719159428088806299693664256534985294728609778564628079210383893794304170216261170803616686175574503403009436568981028779807766252674515347361863095620981937686335761880583095565099576866410021067920206228988692219069878215059124862746832675874408369187468146549387564683701942866350452365717331887898051129711571180406368595553417312873152836009773870189498774890348659016824269012515769451762773921277821517522103209742943654553734642741615464698293846940963347164799997267810346034321192826645920637510232373823713411306700680230692380467851445584714792840861778208394432514689021222326025253099542507762257897365468570683631807617884420389104331905854444207149586582914255964460353381930539895178167378688016175714279800464762515329741103647949325505014935620866954058057268019164865987384341635542399647722157511556536468915044037651135237388399743764670413128353403961554166867183875987920700839758725805411913538135044895269590635031078999624234466571011366687233668462466671612044014137289598257900345308903250733699766560939511450626932027636492284286003388273456274662804892589978172670960000240478365688818997928165652681077750864155653208370568608073924764972892510685423242272234296625416148754621618256658717648089175787468534291582030905202044404394672191142644741000456234826146739525952658402110417901743877561231107784624309343393980208543245167698864505143739446308438819477403972771327699060605957062183533593339062166059533280518505391851110539255164689873796545809411891343559800153349670471288850467631801278475410616756053409263077880930649370372857560761194019441082645967787550352939232838374233288158497543904931301120733638537893908276413836088162138214251669857382732277553062343513931764148639132670329727703298039263033713635781821227466630031017180452434710333091992591992412574137364443929934341222867367197479980807909391821282989646302837899429818380889996331598165083639548090782073262330214943819967295362037042030356110045207011532592307564482769526470900621397079881811635214196518994768702043438012624250613876366234277564334769041449835540385567057551514504336429253202687386521587901523913284437121226538511791845350987259764741088725067307045917551270581795779813481572513327948495323965024442323942905699748139314209507515492810545626440256253235012434036725777869853048968071202911045492140600084019045362687392752309354432637549675788107046088800961182382107796105202777931446246346058751998576615423829097024739247435501959575384000367369024951188060819000043322025470549430221455893058531187543441007047314109628610574004974500138628699313201541018727349914025902087290511129013597251177440099006916374396418357134666869073868139443381923024862149789804574113578224480587150478236839220337507672649670526587097880602038359313175968190756381060258631507304441775555624075130103141062173012678657383452818326038855699083223207288440087645092267749333630067629795211840050780817647619112202951749303419245920623053328018988075873598892040754534098069021033910043901599245589494315189763504951671624054991737063615203266627485585303694120997938438345958474889915151807564034319647293735368486230493084751599634941103116222807078796942218610327868648514064887157860331174628174152719912406798711353974554136732927539743841209232279782266580243616674169728266761410712708944593695007128092173184245896778680616496910103730684310515509970420287297004671442445171036424010945760480142237665827691097376195444554859677585536302863538222010797216799594843600696928551460744731914409056485172999026331582094923244192879656981323361926764985191602478699281220631425165779843720632957655341165225586124858300972072165770457653575130595627389955673264429331471094340453867784920821684094781855750132650505629636471453012201434799215189577333132867606823395052819608766930083172045664924315140718114303532510186930540145983594113517299121614810184523222158514626492985145820105192906807608177211768560887957626767702953010640133150212402503693859731281885534461111302039900995791103572005983152842409918528202473528701521215910969470939350315803814017339042001063048851243349148808611670504042105527667323854632937444169830920977748633723085948280100632537531824736864915880016916599141999855865512961873242631896066862861675421989098860555574563262732891420015141088188315165337608560196328635221605698285864841956114525578599346372963384463206090155325834920907975868437311602027366641639368421349303031848479334041015454495638686631197920357310154135367335104993672216519888880742121924376580661659007569269814976307803466751600731580084609306208752113599793850979316158478828447017799597732588231206640392088282192217314771381324500670244582195604400162692623427260431498248037931072162671416612837176769258011464986750068118153882458557116008977057114907164740730428065950334904471193990287439730979018106088494166819862540883890640956643586846826197574187971671681222702475373357540873034829623909829932309947385039367150625170674620090465233184521355210035239896440452785713780223374110596370211908550073755730381182604098471125714649607794772988816489875670419389428670299159034010007862185335531978833210630003486386884612879305113503376031802184816824271374216367316656490198656683333920396952836200117760439741476005518983507374965339025643503884727072820572771915503533398034150423455040022389416567813359892369389980707417293470236302719609853729603862054670435219208844639462299560729717289240533732028764303553107400284308336696497941019357728254365918004606749997259804204359020447824814005034012765951261137044442379415485246306679117686249877839952908946338499272037164657192632902775938986998350176607348139514811842654304419758399056617060224636000352023558863448768839814499124156942747008343455895716509999298595982743014655967646407186642544841087993135783685547912544146426493988168527590692089828847476420024205634600220478909982912783356770589088148776901775363034949996867738980969592290523973800017315843869632571743221836846746661958207440391246533996596469462029665679548697628256637860907337001340115512188631598737319999982820674477963809481323249851527911406595116642219089799248764877446377400645799171600876892270341391958090709282533956733572577703278572901986611756836243878719579790026718502643003646096507566258538364080748129379807745075176606031003243729008413153941476497978781968676634755440758298656994531786128402023770235319701464325352538976107212464826391541694119707037963461937501355319824469482282176557053082044859794516984186733932920199055590487612614610136805586463678104609173354234998793337081200381632854356570813774092489556690806769591432027957006075353966269311805164222155911268628494236403252460094309962807055537955836042099801248876946240365910060728136464229980919105217967348214758191589970474295847049800045777941045429204737388549894201847269791284822282089284499722553911090403071595651921809490798983424324656659922505922750391348144219194113324001622457228779568880342661708218568126388626912384113799806098068084149914419311500786844775987381858807838188275706096158845082705051548829476309957131087535416629138573991313024493485813176735209168412548572244208847085713153055806050228257422376600336163317401847337963882537827111103745885897687147257847404533077598087080721150224109332458354998365880758148594012852297200114171101871824233002972502793163469024491043520447374859634699482800108478737709693692141502918865611677953030985269365708458418461930528212098013765105789693457912209217471541220890106531619485424543724329777504955428781522529920150556576703952069938561733954526701323792077836316604005695224117361987590316984313851254113618687283616072815546763319476749619011950892321765741172940324158509354195211502527633737049749734512457629750398487874008028903174031170858045895728840521434073024387569352456659448948432330077781116297404453278806490733198375555200794559457006613777907822315319375678965681605662770608946958502984264541409084135715850487827250171638784889800076054002335496547010177020092771776006386129158910286769959339211879017298945559189206725541418424157336330483712585992769666244608795015510336775075388708775361857471838488473242830846838782021942081968277473439437203028514854700770464737321981732951753091663938018991355819513861745497605494560497033703273154442376955272075948775772139961295215032818480264221998443871602444863065424506660546700394941118943310153418806135724113527002379574015883438822456393384145204944432173041968793522463622741660603598264115987154533696164675597104002906201817449593031155713218666944013122917737120178291503933415537529380362435513443555510990821804461280968455700948737425370326293459071575055460309132863918263206671738161019146901968546487718673480628148793378642773573067579384147518205785103186715897552172499817489689398296867459243519902666305051406027784452396516098681333493907353134207351235897395236261133814843700856878152713908889142798616268314338039082336754376689365685115418264520234872627854539237693680214136497933414049577287293096379706087329011178437672595758609576785663040216544343064564411994527883638758474283310431450455312820644133393018611440601296027655527973236339263059405648508761563764159487516071112447288361000448898934920517039152250030883142756769654025645532310859021329433665785814890357249430163329639099151987309589334572253886820836071057154903963324516046612174403500185970810408847768944386482811258439044138682741837710137837875193712362719958120486472951064359255726712180183414453286070878741825415559850009712017073578738309181408943770136563278010278791002794764656248965663613450168768078479966499433895644710590555664002468026666231916267136856824253501087010840070257199104782325126412233914692854191139595995615113122610497302531277479728323502455703169372899509340396594670264117899663702532953606609875663333876062126891579417686236443637462065255111679043990182588184446328859140311772903809682603241873610828424095894508812301368213587490505864746908050949925061313021577571671719300562061071895305125134488210034391308401411285269209940073023394202943571608981585392971279492551399470563299253448549553401826733406690170921737574074409402103148965442256501223105427085337499618905764849693714667599623414045783412363401397114371847817285604741585883694397044924448366191339223442291323461660958819160774425668808111094913941600700163287510923686904536653112796096290152188297653973186215786380661057081583106085159569130374808503488254159280411742797826731903751556479966847500958905862634651484208077198727183253249353382967631953845519498908052686340442716756889402495947760657623819405823725327245291710720405117194288024066334001349412628829991611824049806084866226908283044628948652363728098735587544871896782704969336718290351762912517582272017960389956496291622506642285803868576948023423239661525222188494291726264247189091753651824359729295202227903270609245017086098792556753274225981738346865878062549463413469249009496683436278171109942193960635603861240623671607664773086593581888454542138000361951910836137915977163974789171351383695618660491463139226023247347770665897269314895540684251253057390161254846531539522407845430608854225692838239492124326533979407228330914919441517694532046570456254221678890618365418678040370696915990162146713616613963154162856470841180980764165116399395596573901009510461154228290315336352922014039315743765733375880913449944813017133493265300940257937623185807942820646813510924042587096944334512497528716511804072532419164600885987166280360800316105006625124382376310146500674431523935509507824046489949801874270514067421029867929647780675269523840748818377191027668278468957121955073215934846428563172906980278628307751167267319895999498588585763800174185377603756564844750066741536268077000964951681365801848856158793364526641920476695271890511413577049582716091358048032302283408498630693602247414979134978740502850351240062110670048373621649029021103628105776215939017093713203968853793750811720523589538928127737244430175790044555726249872585468956628395293531490588640782694130603546628904784811264482049505724678139194130241823999739221070539395605011094997453197730624438420494761387458042998063817642388223229541860651540943847664761960583970277336944419353677583216353412696998511479072312465369135013991444523344887172216100467685211961865942699105402780178427121409736133042005523823892466795442993690640873171154588419319285386485423616351060461470917715429163079794797067898904999302778585239599018259388434862302208184752847099441267660017353495962553694474418443353137835510743992317669313408611711091863988180772853039688934916645258557961211997732198136993652669543776543774541253475897627357737040648812457254284673278670883845896577011982914520670012441033679788117249513771251038335774784253971089154860405742464870449834161764327727989276481069025097224673055286349302080997651341465565849807142808916393882689383658312387325495666542821282730692649865398927914924073538229882517233322652686562486378178514650940189063233089639798448972975734792165218030300728549108221910253025774679039361883767356027899481598309278323936796620085540532657202301894494211368867234589318279334442611369047298796008473271030873604738484960320316410932298892182847341823792010182242839729163222329284953518707759506287962147152351229294662443228837493966498188495219115530105456912039652831028604213276648414422486736189503233163123343518322667775111471239522724996930661462815991580624373184547343472112475005655825490143214373901332957972638779892519813937339369172613471706922475917240695740354885396840919121272073069651698617773265428125682950609984178789931490364035140925010603372031485540871719146468751857165469918982173890880950759079366085514739823437399388557417498448817135883731672900745982914070415931842738391284213947105655747881040883704733806954015332340026379409392916598397214311426157012193286826792218019714902696007408279390095340921545311024525099943937478141785938498554687529231370364449769969959392379104117820251578031684593166806606345112499577908838948073823960494925034526103624869212947362090613280083486561633279857006694652128288184156525938016079456192720968792212055966455058995715189709554306653970625216338618896066125923456770061845747237641354682474918804446052629773505241200286045126605125018876816084269348265515517575478007276144385320678646853187454220015789174090393511272891781122741461617030376273989994905890870702699047202153519642779698062986071682871082051536231190906763953466463503695908262401180361433727914572556318305210062230358810088175065423074678573553813760924085504381630891926071675670702454638875020379567869539077046823832600897834428340883998689167029935005652220006866654996917644621929395461318907745668732844853660378490311235934049944366786871612396228986316277745797925616436923923554766197381428544849994813417727945295352245929199184066143486230475159986818283940572769732487078695897629516405601725856644095654177194371247557555891871542101270333421470432167360003341228635324054354319657420913215338362511818708078484846399872573886320447870632615134005973697108016210760784724567773928963196473495680812912652242957826911115603660341047919509355606352874029884731203299786468815545888581341368707317253623413287142222155662396770459470540996517253330879012745931739915465908758354422795800031086197851421530601666062390861626462499939702785069342726257360349560458892954792128733265918658548484584287967317179998452371466329591287040381132442134127183188615042857072642422278106092794270035416583753027061558750417140218405339220037887119498100527014313847967179287243528677415945054419300935725213779577122136519828432831235883906362249771100089766020246680198463655882582518942227155324843117525313237573525607307356937044745552531448050070887029577165467932470579875870922380254397025966476482654623458547825887117468219416979421221622022982272347970486698849908302058152412894215386647788929866387571731302159037014590383730416399644335571587589947543757889443487050737228589161418009165808501640569365759364452993852355114838262547643115290729280881572771042415506655025697265620912274988027041170163959992474632377290107926075925731791338318790423895526917966361494918764002416721309147366724321315523793867098094575283982292629540469590034329844326316404726149282655763774830359919986670595093320850072351496472015682147855422711619602002087495198975209881337784493871796496623358388641520262406169501917413550051151766381621154210702811659279339383834688782883452621665774641727791922296019230579983090964450183042701529190853083507230271226713473613070383969628667908638693248771244889084795450316562261907436553703683080671395795783242060183412761666645471571795281549550178951978929976477230002060200402557986244023134524011767381694620700875804978128743028399182903995676197084011542828320200290880805258809882197176663796755625833768337951858595407710024712039811431536640834890740720184695274952002008266192551816413243510279335029335611003539666258073427140294921154549002096338505582857973220331019707966184649622776422085126465403457806192818967887401695981300794586281876040461983474070567656185760332014400669860400073493384779093580381141610798098746868050278355604747019902400046552632445628587294629856204416575094962127909488144049313826408832356597616353036799219851469963699016153071575183750957498474764194633563782729075640439965672859380428589365084287895993785311300336645216789393428814887073645083566234538816594580922952634517539671757414997427365699906441154280422198222805708049055806545976960048626936370855296778524821488679752861013423588368977588856427621222762210530297324706991684080660017342010726903944283161551845644099385565992752941851333081784231534233065057891269724991737352504490499506045420900034430056381531732643617833352866225952517461472137218644564641319364195527466684548120201909850433795232835543188500949582145071736006644068146349442198516524306992904507155921129753614921841158747384659914587360802012442965904363455146736120383165153540725147121389012864699778637681667259728956658022547101480706477438057555960531064480859722874820968711828570510116205385782366521018600448176972228769942447862044551055040497342608178781499584693571698103943360504699282916250638989563512084395609023690488327605402908937407703060886135852943768999292792303053096408370300876972519785265564645969735967249486565899668422947890342335857501827893794139207990985596069600084523892709410670576326034452563951120642818448405121717049912333393262748325108166883797616126199494681564531909482898260021180479732853100595146492268596832203006102029434621042879113091884170680951419495188679378692060871616249919875394962509899726313715626119717120652950325877876646419864609447136448305446137663631479761233543964341659698369781382608192760270707075149298864947259698567191408684505407884974225681718539183719364634922940010720753705872873430829570520575374055025120912024533737899816848671207267357752454665236391267200430651886773369020056324826745147429948462606474076835540335325329170560839938295019317029426104022999700933417611432373547390035776801234494824439309242124040969275512905342592042628587086243929366575290887779252902290732476591352326343037257654956412623246227461466283448257464113940349745856283945826532898102415487220355528564021235344172822849035927697031742171075046942827113567292640295639246515726903943639821831464801229574369482167734325595552694369262902037872307882711840839385915360967347252763273029775526972660418234049111150173267282638358232121859662587341288611161839207882496657997387703541417500971715707190899241797990452547646183569819715870177509047612882698015588982045163866718411886370757452637073382471195661695009324076237778046571594355893759778873048337693630112793595945536837390744412203832750995337942094071171439881627807799782088330433695062041665608457191990763971794340854164074937959459806243515191514654402664888196369942629636415773708969610572029770844697856246911644288275607870928000183057027644803774380606537129984005618816216955758335087395705392385020791450837656728821077210808604771698822738468624824518060729079662734933091084449617989071567233738394430087226163555141193050671584387610542519913192835285189598979283688707158222120239844442091809030228592937860841081263118872884256197686721934239241855364183954796930397002517865755444056009222413329681345768411617201897043343688652475384527660750603332567742560171740388768794493941385637451046983942209378632811979659019473479190504168393344776177483122355115074802981892699011206889931651848173293577416204983867695096928428958662273296454221219126158083312269299376899171418674503314284635341463869800532492361164241035094174153979832690619409731048642838982066286475811317472838080938763607398911946774111749737934490259114738296723078647309077477136366036203223532110246387059152653302385127170287132990367653278978079616921208609865173909356977363620005777984246609799545489338472731375792845556097381184706485074477981400371382544788365258274492975656272845731212252633335610935849035782213373482673739730734030143475362017978830902819815674409311052421947801371514590589072181200603288699551603534778555652580658823553171415128543642108838692685629479964440277807416271821140383522310801036513231459992586038683393798405481366622130573494136142528942787938760197705572882624031139767130507366322406463254568711501877370635674272616757178966402164195089559879618366843255262055501673671721142154372003821210679998465178328628415955687321783405831231062336222240701524560420905044014502677746448148987643415579483448386790586856534529275775075426261179237404265666332102391759756188863095743125469120620054492065517409119150865497210134814960679156778403992554910729210619725616204316847213105340580199674758139549558117592924670945625420813974156499551411676824562901126266444158289573061603147313009479579884580580659578787817651600586695528412645823999426343567311896220337486679781606274075718627626920433170839537494782550687176753160791539717003120199768650555569222521624926601002498230737247852838697914127224527857568302435608472674700480907958983986221698206902777644984911986953827447509751982725795617339371386080100285288601523095007040178979983968729863927174423111919887611069638690271832070082328495686993647943632337358299639493915021965875173812902624417778593447058465029823982738432680140204065348089120449811813122273159290357421337417281600759502074620193591238994133812260489506180114324439463687386260828078461063131675196587340639162549358770801096029031757279194545329585595810593862636684779463751040903891956172557162031338325968285109459687690488435169991453662545030555004561593462453604718039204497200560298945782575963731402713961467866290968875131168882743282115064924710136744736132160520115834823984565096100721395624532364302349855534687894091208112359064654287427866264454123302149712751283236669337068815652354896865235085569268217395606726419106709709374435029884924864330361074812158481830580694506670847681652018161703728279918333988453292576838816476433928932873354131366380429909969232156061550619555284840473870813862364458549908329916142851445133335109004311933115804114804250327859930561953177572087330798671180284273672314365162839803435590278240691756615222447283240716126920289563438999301614885671221458070016951404398192517704358212095201632111754956982169260710670528015082387757777687105058142630325695763245310207869606708540999130249095536248122031289651643743967825739476251980545681032471006779189437383502579715762947889594607539104782569652021585363774740000398108690985983644888846158942860111863704144598856100844117496034274900985141899586281227298031592479569072311447112578058825401215757273663707916433542769963064889416576652087495116225925964551114930469407515168872515703169809782573169799284514814109158417261755647359910800642740578724505615468259664636372464582965886951951141161388677495157114771917014168841845993562889831107974764745903203044772748106328503613013011331168436323831546348329974813515068179825168425447433292739943986457661537217284832678771184114409096708897056338130902579958368594144136098524390696282929696196995970375995292854440521488793004070920073890140570655259471404305174534191938513748592144329940865954777373360278729542489800499935630257832291896490056339156829898735988115969434718148225734957915826801966315750710085281838694721999091680471977435631708510967478709725386226217575927674141680043735314241524596469491684168788224854468291265391339272806633872920529229098834227782357234523335196988088107932490235271743285738618133123751800529555886856543682474491754105067524501530017830038131986707476468136390103122948960475455936289150545179344183360269398956486228452362920633811096134324773274524656775626795552415019391231587695588069193365142909276639659014184992905406252096866156385708778062744464411790481067381931574889171225877242494265751153500784694100508510184243062814494292062918956186612024134364096344883577158670561789319742799587866693744879685322232738366708424284966811764991659256289353234766933524260558910769120943548712052862446244988130144329483067979665921778443442224129321603227281832416779526172671499218986522196819540053080765051658648873388207410222435574857266445851152497792341690949322106215552021752387552654617959647919126001384928597191448879307775965851528275820036326562625400922657460748793303094944967610259345021652819105211062292195429884712908963646311381849871891878841295872498797032357854925252824275273946292355258548682835898348181135165160409375876351182173932997492528798939282465066835777471620665841288983221336078018290764934765154258674552008495753394387947625919133996974239431133271589962562465409144107186928263204396614365781953449021941224943317612294385563910640650718891272437368643311137481256185018669785080384317315386517991067395509294381875717610761672919219861877166878976095971272965902994055305184359763717311548604340074157699626457759932115001062040183244003923278943741249979580297898619346018924705125261999930168950533404161249707377077823562620300324184417795447673563946878081141533590664632952929202422596909483945498962996702722126555376029566455122238378743899909765922692407709707981129673952347491699535896938207043182070244252243257421252798212814750563182029192850785496766273863938491053666986031988647662329093434621194773675203136645877534178898021794532949361758609845815583727945778338685950685939543839414298875045144258388238997953552864017595494422397611535107831832712367496856151491015621072613230516244349288208211958743842608927456048726282016651291324329062910669544458174919905412842035454579050117960624116870042178136417272277812719034857446289011957055654404669070491302628906814402253081920001806848228909055883602085704225512334019684283636673708614634492061592175760593168951983766228415958349748231071108141408210668696552655477961780449129669040334689153777548763922611912838710462361200988461131798042408261173254099925123958557191436133782342792351568991442504185062891352128908504429163861353718253390376958828540042580006522342999750020288698552309072396894527016022335460576447953760365792514402958485604656899246869940126436871248622872331100092073210350521467944071428433614017588568345395711454539915823259096678671648442818944219468288776997193158421085810128701354636168864910446693690685747887056820784130546410170679255091786187394029377857035531460045523094602788505012138949376117630383114638438403960780042399329643221138146408432802698536052933042859220765372938931686170192637658361818829228199519367270370439971728541500558959149162460471569463752101234037807462421389087438028876644636948042263936903909077271942629330413229102224351697549030664087464360716204071708754115821676913123673842316430389551879090279861636870425981380550028590773622772432133366105787938575643159063048952662477872521567701236383699902341363851450585633388130963690063331814863655990088732103995269482025348721213893042570341764176451716532442828587443834891057181053762573753720179929801275965058632812438701631120621715631786649738511967430761789611290972189103496974499829589513777671955827632739830395961302712948591148740775292667565552191061610689305687216397913425384928265118671043121361427024511450691399836810741849433330352433298044819644208328636943553267515862494330195197999003911097947703996743411795852934813866984818949966278499229982000926894313831136199855768904161383575889909248005826476378715909425282169500686233468588438239130967277200890669921641844496870593611940025065016673923866152459320907729092454677419971526067521687431142374799792464748184747683811772352620046324051443558407654323839956498853310266075653823854606277525226919409637127666272614745532624956629293027377003795560670688477618381023225669432159671890239010966883307148182921582633771120484801239821346806552290561220802977821901747376476564228497653288169979159232047569165650206938467264145190439813929666634879823806746709958905697959318396326432891574097899391386958120313022188526497610388724358099475090617402260242409085346403046836845281382721964206360501275048195191148386676682334403525349605350919521652608399920621919836564171579330452646202065906851866683958753396790408653823683532306038631304176422306646026576297677188456011020595852569994960791690710236697018528002222657004838074922211937954189875549443639702046598448581277414698358069082937891018296218996324170970955868891882835599679588660621576986039612420652496386089222881082599626756760619204720946405277318179180475209964755144589916015841669424471294317791820161156744233236912371958769744059459188931997759921860130375422064608257455232968469375298766857815816421864158696296067677548716662015426545499231414847287952369583825696313553403030002695580660216597721087210743184247326607904903227023457200959742462852063168494717662941234413790568934180402644985100311549281471476623067883004558043139984861809232989523958800585106482882879326218994682272129423242607562250226152409384388165069909841155052005541268379072572463560922825459217228470943953294532266395864590275310879183825508126541107101327193244929588106177521444039073575709878028872920348149715468705042352670720906919088459338601773622218637119388969485458157992418900095325178491057020062759100547373759653774289504234264585484306702371137914477646416488863426282244780227343223981949272364700972918923038297867323877010893374603445959853811027892893952163677089079451546179641057210417287002083486145086686016556470125874514163002403806172770136947829584526228023566966629905179010595144731383213767073978951021868862812381387105536337518213727591086790850104029144850555753614395850613669769743842157322684003946250176467046956222113750910171937216357854151956109398151400549528716616750464594372425925553766319717412312735947188176674601534019743374119005598523048430174595847711607086464627921217034692065369641238784148023166710617828646342747129173048587956988297814249651341368396082888528357745133969846252364028943929498293559315922800099342439278745253397526070018278549141284231666752172543472674549904089161295844733534398382854605921639198407824226798013176373316399146666361953201630198693137566865378124176711860920328150750563144741518949162214072819062506883436643268837105108102992808565626155232867292758950475656643340063046725589199633042708699317443027487331160229442390347310431679779512542365741758063310347695686929937617931560363801822741855790702906332298248991354160623425368780006391361607217660675854252341890130485516818687974511652757194982291759309054847821347985697540302405628662475599200643596944360564757816071971741989279510820232160564573714589451976131420674711744364237602272613362702473013960538432969950742946215347374581448217459897260697728262810552473778278474881836290193549966227530254172246712415883675771919743805866293487187167997681437371220912756550895493483492245814187976832700070231951669301599641744796912217762864119619256565168914068050248957012701137687062058373043137491485132577169373654761823131703090323523585295648751136922567032888437635672225529184302041253436186538053090233429531044750486902476480838900488253604154309435701675150821811244531827140264524792628504633472690208643689107346616092787161183941443329535695975032871616763249700138827554720815511782359414067221020933206752269918607949380625173029830314148698231274700323381584548713275313393474264968274781839279586620659917390684198625345388170151252499147688534619439703983011493326206990425018160098731048157377495657745193335104776654317299877112218520215522041424911440002119389071273477661075583340826531175963277835763774785170585690891380356648834375277831056020817000278442211038567660740384974277895920403655730478852028509331487029035174570440188223868757225946975464832444985607202100651607305722558456197163730566579522138975980617902929532963715163061039363656142815095889221115359381778965169094804309275087181963272545126383995171265189294180717258696598489984543819574189891644829321836787803465970245673809063321153526009803914664561302657226129555609080689654694092664492005231678334836138895515485194913390750842876606629060726297979696840688637306962280968010136388369863357201918488599263840617770635321016064847928421626914519801523011799878052588872086626178229843449658057987161740843496217122286633395076407437862196601897520942474294334905984211275021913431474782580740334612056057425363195478435243782373081025718902915303905214423394594570908831634586261508565262505845871198446264721046743270391856548887054937765615282809365216355990547734822725830236844736459090996398013245752942608302346392484781884596630868950133155161205247769013897315443234043699375753305421114254645511446231876090560759591410319722474367270050628964043852687838194315985289522077514320914732313976476487598688418943674164123428485013113406003190045124139467859955812771857605681389698870423810211663099441820060984643386050414042759447756025034282576887604259224264251193687152222060849811347235242795100699093477428148615163050836128171283822744428982212616990626973495989527065275190342744235493611193719424102747108827579452018056926919022451714546753701656909547764506824428823221599127926931660374434814388906331177014360190323795160010351004036137845760307900993336993449219814115715413814832951354901019071780162271105339240324621242989365990969641099730406103486187710871594956478405426152074896671966011699778798233853162561595311391282156041920761491652145159683496981214248364187193011549693180527433687598862273267972975447182865108755770501994708929811132311713784489431079378221774128342964766927138923888217142139549151925168895638769607230391946595764097974284429276576753006741913373186295745166483591035994948612465530139981449287629942416130923830462765947332839692840743935733161386480043918793981253425937240149557442760688902132925062847091533052584321015180506975907702889198449674416180509398073988424806211594541793583618679974413618413986090218566955348448944877260325249339415199588607217139019496109574762051991280101510793873347657493244358620900692542147754407615127248372212941253419478057003140937100355104950702347811487778209866433696194265181552235964458800904092593986518440774850926041924728522296631935529956042288768173717506057061819283611159298684642805889544512688442658783926025113762280209996211553212206158789624574015193010088207181482978165321932004146957317932362034644938821477046030686901496980689417872531300909151137302246278238473153741189706753804421544190332981368295980955333217125295343106352743739361504716608314298637353567289069058909602410285876657522972900888538932745817193011297589531792365414025094204502667085694945647418768521064592313583810321565728697027986236510687455868630079774059516156504439932486567941043019868210366485612887258324523502745706088604000695566562235246890731270762462525448691505766049220997432021226153084520121948602417596074793275285249532520946788913392958923378392109843082863030082417490202135212430149631134893560377794956625916152201373982888157170899542816736724995688136330145010747764616114548702698821227439804089180503240944738049803607202267638060426845067537720473313047877932700792882042947885438646476956872327108460298737690585415605619216752265501133067574664191243722949359784910299130988438589739264439546653327246328123277486741369601837155555028246905464813387614784064370733353811853153157033538212396664741236760551013689838254203853682743349656272674160306973034204080279001894103007717176154945213193726916496879879000993538029061511442075362773057972139132614672623235146474746122134001097447171827356916848728822396877679510934694165342904449493416789801472867026056430266341356470223246538852610072715974440221912075479986285134011301535585034952261467929578984577868878066023573900042352695146837235911423027813905779090058433058316541312282896065118355963680076945191633587132691351240839132821343548399926055848078402338604361465970153043742225653795736804021987215822041722468001241870224770822739166898391165370990548254228458057699584192182403698951342553366515638184014398023105700018590916391212296545168712679356734141939860578506072409791364964889647598103646246862026145351152971026189144563046202307330366561151515808441743432131065346439166789607764739232598757949001698594341172047748581227592654382200844024923311839391862586945206626300914727131182179961292927841567648813684638901914792737371225382602321150752192019831263964452633673482626575359559636820903971769052650063949011072051850933402523719570048351193227836982491291005138927467566473409957249472654416254573712945248263226001745906394790412830418143594994295581806942983888266145846471351241250236137177034013705483072764113566005956340340508335214458969697253082390576711552290447126555339166048705762662605548483001216913207362252792833644533581667354453438009635993760112723364160079781623495158458155621773224809203972820664561640232755400863322093045782294314096635515661515975770820939451709453705607831822621915135178187980177153678790800448073396466646840157489347361005366682452852451370714166440010905498418092403014795973381121797438273802418866615967087063301158714564842308785538759489531154204647645350907126746786072779629279892158093040700084339445778936761724006682689699773947499091571320690605007390280218571917854768581816881790054324797719755704916071137768199758510936788131766403307660444273007851869975112863709567565510978195753672474803903845288831769071159817701132044890726163341550864261253037085488366635007770097947980642951698110000628808204607544962050413235232813140040928153400684427693078152195573413047283208044088614384882563802598115329824133467774795836939152910853264331960257621258761598491169857511577332101488229857533861242202489460427165298841968312357601487068902002298178858485546113833250093481634799438967088951479022095563927364221027112698385014208696898711689521885694260609659175832839549389235535536116710832144212001420450434486138054516133629062416550160359454369926811210220656394295003639123944866619120703305526076865796346065922750033085484339647961869703509890501137472722076631990454709156573060463767291841410411979267899988397312284835543357808675811193535089010950987037376807733380395989485753909182275359630245555938075095482269076733029908006662909380424474496055528406663328036024128258855205190546849087050069938880189105576196280060292300620025266441165190996309601013974736176063709339345501908169941111432446180155221608943333970700973779958621586211974035488508714035718608131761120357627645295077754680883670605946027431594892817407111506038509572960271451121242540913600445300926500713461339896258858900196243653956452083250498873305023476632322221391793709967102735061252474079458746518743502535107120555046535103836213472118474714613807447311221305321705357863648360813976710700043695397287057572022396463894537408897019389309115679841891103019056789140503520760427087975510160787833235077732623689370847913304602590722331213628730308783775291421887163407866453366528628583398748864552711419366856953819737996297992544905599602611629433664715314704191823592379214658850270791953078506532151450010193142687463559454677138722989517254805992889155549879494014397093712246578282334511447834411921603509501504433717333996466415152825518122452059518936033553746713526097064279945416234642191311812795974085426916443975703377865398179614210259128419443602792145684577804507523550732598900675830134358414980974210280033296561674364566296886261516622548192335966299825273029972680993787529291042801937867318324634594253743897957608180734937179114151439584749950328911177642309986732379662373274090548751533100732614302316457507270463984206705582398185759597552009393613145498806610148563346365917927103705153171449945094744388031571453534907131868266820955481719204041610105802397742739170330055051478327938006754129327255861474369216095791178497219084180952440040380788157396598334657270700015461610308768363740049854722818251046178216727819166329192780670255178940314231528545419445252443127743852418706861191173609209779699181857644793830675781483808048853515816841184757507716468721233980026836361421305324041223068827283731743754413087530932902315099673784455133776204478871565882247657770026875636001853501697580053664392768829579516307177352447708250304102188627161604904102298763806981741499676560759347334562210178828710599034775934079557812466111377003386465521325704589111620724550556040816397428024335587794517407135473757315734900827627798813487609424784916263000439231990136052198259883456886942158251371386239195770041501015984618062318036483798124016078326789841989424455929000061985203519180391673316828528833676274529338803055744918201246136294021666631308862050772915559258821210445244108340270366033417343367832751191139293744637889819012457675992201139983642973931170279051788672499889461340263207193084168902788639498044710081922454339316095965899969003426018812852515931419446698013305336257174185046441512344670036481496008579365182471218817056169639053305788622874961711017924495480884914300039777255606903776053237284800843769971456395119903640454026232354170091921594057596042818155241006128647421115312908444591489686074287963245220172386186406267868848145701360494836464527627284280731481175816988567019305782623497413111597833306028248544016032631042313885997748524758564179384274789530707373410875283687308950158760919840003913903712276703645784685007726036838909886012214728986637834943783017115951417034576362299154008681344887355296790895586168658340294864362128466971495710514035971967558906855868958995119007754001883662112988109591216519110973755940001827823138291706429125038827069078857508726038060187665369642617878244029509010353327719980049106615359015972193442849743142695551859050584190050662795930794983047821644673455744760062073353599644647966390388685215321435879161070505505628987940783250405159497305582055044411523385125750823889842505468331258978725532308140387289685757646926779280887400304028767538252114628880301641682398934582145089297073346259733449464819794109489229645747539023933949547870183283213497578755438188920363299475706149249919938433863755195236170585461877385642726953192439168425384132619790112978682357335234435204676215399410856883818019314121565596476257221878720188743954889176668402637924592851974877241938295969305074612484254534100692408263935665990057312204689295408913460255246192001311046118210418758215764907445163064157693107495609592260506513364511020932198987913156837900915311550654707498957469552417470184122260609512360148572817715022213386280478229601670154846693315946515554781821747689220111867584222739075591133107898806557338149018477375830597710079767291487419420597968513750778582017369860024168641275228126952458836606978668061387564620285898461994267075619700045470338400695490680772427743193348588116442226305939843296475160798450697190766399096311667000623604434248460891307203764617661624101989088781305473268346478234249044144590747672417092933083537036533760221199836136080167804576510515960806336333437433064594741531959998778865751890861018143214197664217796402854006250189436873644007260065857352014994501541433561282887256934731260111463358749213835042119717787467221665444615051842149775434871836629001839591806097342844418873103991892908516679430045818946041243859733825960464904194086862936847065448611285473749506742090662354231289312734148671108655535050378818829936174996058454925093295625301120924087033211109581903029919105972544949047132798827312202752371977134386448129074102838623802534987929514527581729271301014744637389600711724735852018554133564837863854906240281814372070912944209249964669526553463190914377164705139744886344386809815186489729760679358357114149751843014125080261324043952449116329213042948960695630957338614425608843452013241604513753421216800762224278920041663849193596687185917556756253129446526514346041150800250407561484247480628472331172186424600002903727185178786756102727959073480542560035316906973581579491432416413525658008606918957969994203840777703562244270094595438845766840845637805666197631142752775208335113895608329671069745296326663623407668604014819662888703942266753982697164156037234239759788686187665136811245748448604138940288389568373734365187977358638080479722224107457282363196574978154341682739714485668968004960948874037874293069446000022161529303394391447985330075778793730202053620602090539325393103924914394410789531803100413282613975798215822114520249032811433528598869036310378472369300349258132034960171557511775542368286624943718513875771522978317390647820225817760568352163312084974507399586081016851436167833136874517953238063864313030793092814919871969097712893948462218358501480515897014367478057117901603433831024194984884101856001960361817734565305816096189632628270982612386297568142709432648544548171717021428920873802749339426546340974486465856853266483793991972504631382944490696902157467880865744830863040148983439684172744363299096945485108071634954387456042813906661929783874642674939738907340257030270085121669506507430452448560606020201010534762292338768034412548874833798571222486252113014726197675335492452600608013753937484620572012140719211542852917282676314874197146146471649487978257510790496515629988563929706193986805753362367287078705404581068366786138584206145368800749394547861567263617862439010592560622535401258759148030975331383611277302078675254721998820733468431311330492686544877597267466482136599498535501147661440247927301504078946971287107855348566463013725378026767246267860724104111507229870125046067424070649547200405356710756987662443667999406008020786259371193038340633731028000166379713661577199423538995329593926469314031523250112371130379195810816019483698362137744632019649497180156819683845488426016967265418012382765307410836832995996430512721470986110545850375627753533338310358312426740023317658241978583960154608249800473066295359395459621299807841855194614123624411389282269309823171124718620329827173345631650345457358803987781042985281067677134297777382994845907343610024470929180227098218644079219494128943519025367011955033148179521248591868795627667850266156278786463259450476024153890503337427633329469961177805489667776166754164722002926924353186363352036124296431927181068399334885122791305232228517159527527254827241883323596146076356818568101996162828412305050702754975304713831830463894664492780935046127599220888933728233395463530054316228946397684730604351845499971833458487032723958047287230408880505809512687194261277248944269006491402192126646619725237271753173561838262608848548279289603503003555975720337957297243912777087134817442949069053139816099937755617322399304752932136193853184068872554052121061527871193586146967346011248361238492820722324148158073251029812423566890395591668389303827718330601162209823206963901287721094348345010857887225914470086366095908838037560947404498098118015965890992791939234297722915145263707159323272674875473808284627658934421031318457248577356680726341091145405744311772019187016033501022563496901855964599560570666864478246472582572477344213142367134832505241132802353217823448630285848737838811898865829889585493121464492410801632757709071714480769477728823907628357409286950512005950624062007444775811699852741378151962301837378538152685189667117135970848387344323384497680450905208674691565115135134127934017616961996853094354942311571801030804470537666265082571658176850852360936336289498513638641970026701169748210499049142344523476082324014623045065306936442853778196279945676228780315421512525650513112298831362146529405831553649251540714685230391064993621850561710361637977960866403823237686813664474535307520666426800667563684337835997986770118325633292689010011147468322775816933777816255479342750089048528052288330914410783864774103467922231901497735032493622037858436149792400448367914717530866937877725509946656195805821362752480482979258563838249575344537926431994572783283266666686327415670404201389411402607033858785755583851145470131324544846576648588017753162773090672162353605057640245907313756251556042488037104270890721677751899262829737546075198842051898664133865333679417837301963110966204433251715395779602832023408596180889058243780920837963311527440843607456202105382156215717511884478687707018061445975323739453838147001480600547790527948790241792161258207304943796336515223532785186536728496370575103349384417917886979401304831773998765333943439730795026250421176832192952784855759252558938589770502032752889865347697692398040699383285211578550668199036423354513870368515727373114042298477108607376551196472500251823232551143329335794310580221652613200030275970052323696552905553426419795231685458935919502666140565154354471371887333206267324234312683619207451347019042085508788618038498791651432177693956539583176882303247002116599180951776188466102690610289019475601688649737222901399548819271996349662414253962072754908550176801688379384151785825813653642953343825971169758644251475466721640565895307721438300538398868938059916735984907561506779385205939480973035079837456534931516076018261065967778365510295951028812739083252734788419978340009602157172707833622200732910580996091925871787236453276853763071888864901000383213269700585129935332312414992279040004101777828492408800383777905291751261164018828350612130470963752965288297461356193447551069378584481018348619846099862645993996462111192052943960800808477094471249627707544012598148272037993349751431868188061702002268465107892741702210535607891537003783560430503707248936132694801530177696499358852246962103455381883841305530505152819726206159937841378075301263768012802230967425427628043077573881656763631967010572078038671089965718156670069493794067811198139727592462231322712521469621847306128858628302649249507991590503132933875666711034858819331655165199297762260924760860829252209208256401412247127785884995621736988323105267420759931307927765793013479519627239543724695886024547180267224340411596154363831405777621230328066421671945142327700657580102274481469506623480741155092425596518451198710351839731619201153863887076928634858368750477675858718313595483407695188596730236888303756778844492932542340676575192333704952803593678452754169739114641608247971215291177737617533669171858835400166911276678951422045740222438719312021362953383935900530463240433848477097746887500308111941142638190660005139990594206682320062611807455969696386720757020630707503836088802489000944771987864868072096773426331722003675732200533246721027379684098014717884154885271673945657700910431549020935866504684651189778515186171337095621951989986498885225064107729532257856307789833022237029735954139652459819132412216444408197929789955396352842977672471634705891440069257557506278549335974165635079447630600294822333291700924745591344505718438770639147173894882013824080901559065803662111640457802204732120120777052429109897171509746557045960002721662562419822980623727885926690195646379719056683532417070856824153377679214021712207533676334360471338536262371528574030598566443407060560754790194665648663856647747957466514666586653785300826729690779484709978674070892677868652034576988895942876303835451253398380914211759662089718556606577930588451324618785295343776801235177767018012095461942684781501606859219276843865514058813927600965182676162694610256546820403379260498000490744905165448372880280318217057007633075804572363695904845140972165836591573096406062903801063541983549704165562914507154189707761928333076941148509413676419635366896876368028027642531727164389056764327952871544377821930160870254219003327084439631867425948550970926032824371088624789621808038809575012406580644177117479899275325763010912381017497112211511026538124043479456505195299870907905577147963594278130894841885971680660754337482412573483026875166388092475135302341957880081343108021743798373119222837800462309624506433162146929377311258464875712359516915332182651208485638628227736506404910363577317765734312858410503301689029808970195738020465022633242936110079438519902548534799812024277922125661734612416641480582241694342428215418624097245332354680542568630858908237180703992900396532655320808935330485519741250020313060007480096120584636398600821911654949856239469018635365437401644636122585388444059595713862955302275299292938719685982786185873075894112088244369749163557783284071083561677259235283408656545647641013366240907041215673059487338578248435905759730105885656770980950808628071190865580543432588989730294743930929411057522557491355805543191636152365803254987985685075809792569188391865365611370372822068863436543353365301343336167542518557607827974582089467875442189659313332475197536710699611674558052747426046494652982439291869972161620637824861302174523877086613783756691715267024038673065688040324788883533046457084427743419765577619075546079859981350907317180687105500878007413003601957000833650819546393783630164572338934009297835812582187923844050948276755452017974787684930630155805494049497051261871780065540614483738201381248654991240677465665742888932071347959874587302606126705877327251388570602423910706253082204566334220934378330171387477474501273854752166265325390314685289932916014977277244969799374277060100424495784862692716119222515525477156889254641155221719241206113313097007665465867142272660203553188594567891823738477042782205599632258508943924219015621086645263546408346143921839326447682219084305269859795928604079695875819034182771715834506756684297393013420694537837606101566398799710993153307631681217790556022916363975333575422063867354466589398369480919235981688115879944061238826952014902159239202349612609061397520231050301289660964637224118258199506831576095565866393920383030776534029755956777408446752701490095112480161655448277960794678116070316706618946461564869369060531351841394799013708298181064483472510699655466038570029281152642344580728134896836979535352687382805815538688219462562902591853922151564296958824185736175592500706791100309927569844192715941841435537267219049855102745407691665719464685821111125182986491143576305145676498914113351479074551654849519635344925984323115174277719575849599036564045344093238747200467290159873179072543665071961528614521256614195052201283724759752161939671320863351104217956823550843816744813636012889542316748896059668553144260623211385970451695456654652446979864823032620898435133324380903476884151092192385657335884185332652380894453166100716177629621028989994703274172921410253454176536212796797777448485606518428657761315093520593093606973363234321451752206482369940055200340399082602528662626363757334446945823515650328400587866312224140189407763321500475685380109745809423244316781571563123503116839046158413121542244422961825680683800869127362671353332115394799291861282777026735325932293648910401200484127612997106301119033001346356468019891244416980334274643380674682788778458621699587733585578736520173260718539954653669816094719465555742227587147041331331358796969562891996561645582437946811008169938216663192304647506596525718590126600486912169905532794279037876234688214619699615435945721079264170735535762017148036431007481070524689580075565520889394205246911638949418523510217226458948223428309620422290802033862863656239461032676261782452545606041059288560785202670075190974015490701768437425827737922221081351935871724838875413522163204276356996393831390940582227960735425215403283386437620576070269617651938400133239145752184162987861699145152427129044451826058760673940856434432740575584090055670348599093153546092204383317266690264435801096601321217338361883986443501530933622954240659073867295976962684066255792242379250282414592181381073898047988539327634017745952793681547473939289496679717253342096649120398160026321710715517824808665801489996798602230166184590841067650218270167906961919595304840620947122177904271738538759561813636554403522901327318386369142943735786000694312519329577637575443334949460497350660210719605731193910822308635344792272077299650463699196838366460100726286264959959274459372137106095704659405173265643599064684970260705081871266526210566320084232448710145069156892452748923751656240473246270899081203732653814680559656105711950518732809045377262324109071780486672370921498685911571081006364607541587233055182659554287626483110346883189904418505695305748797230906291700164193228526828263477188329067407688553669892409954630288100033237474676380688028202302779834796513573425818302209767992514850000624090588033365529627744459126218657139229622818883236709994954667098153735695527389857621464101700851241810806369540470796918075998720678574927218173889089947176513276008331563412999433021200607709190350783958863009129889155392729154835995271977001096749032172750385426254425748884223748941112024619383612803229335639455658706808367980444301082535834826638464281307793028704425582968411737620168833946673954185263124992479795811927680056257953093202674841790684328855645388124517348137447776351783827609555624325585621440060641243270620931266109224584166981384553169704176951758424646203006872223172956267632187282725313857163969858764298421678749442416833314370770402127687676441338226722137632878213735753707609795167885220044398815624585264707020564317355574039358845261511269054736043853899777692308047958053573875431278531415004725695486454372865457418602846173685813963724274799884289224870536170061770225349345946610835714093372154458022546273094254815292569027267988407847922538156508408766202945397400094568661355858284827698895204007028739239168699683334507099843657422136854295712380338862331763100277739567927683341662358489316048239883721373829587426631465674860809308038629742399458576728182945580886444404649296600414444705024891534105510039282435423208045043714287595281927814655738987663682025982153355773461159091356842928905383983297642569294522308493510640950117011602910586757944915293829291979770929830093032699050908224200479615301661132177970059970154214170998107301148743297784825161491105258388822463163826486737418658549401293123406972301610272556309359622549169472911570467978596283986578444764308144267875759192921293962518013074683752779723774265611006288032111698104486087403065463971870879436413363721440547413025222282887062595514730174048651921140290498002325182154036270261588953107150907269089924353578678637987155072653669608523169088348439540566495681676911876826983005988898118986793361506699059699524519398849634767969291017042061647344542249433216945283836929282107964148027527737855640427295033552094267427979537032208092240164793243685089637438809348295062087855148923945012278921980943921299508763977139814021169506001710258254091072849272760068381637366084429357643246098123426104910583401017920973108551575101330178575187868635494282079790974571349921545685031514773305268799010235718784061198212699100300591030447383199072985018442835908321675878152596372300555296978418072400792471070222051912401589214974709085971772221276746886085943667200742183683052349375862227488086673149457780736927609641370859077757269766067689696807086938926883574724759035618051224923422263007049015855851040441468460864657786882399224696785316694640963541983788762472706509704283155650091160667595629431618406110993212548229639071589586355961849938892651575008102017709457416507710567655960233478951239373203274138734646088362281051643979268712390816351590939697941390779413197133421352913628115186089304142396561815566828080042082691228901916862903891889423628977637308480095580577800143235109787445680645144353455693757633079775817693095036434103472341870431581869729677581972476168473851643096076738131590537230376523500326590651170622469106998484241828285632515798215239055982629216201938105431092562570829747525065094270938372460904007437624694582389333754304712106687396922015320122328722424825611959636812699835684705357994434975184093231565008825292385709917713294573663911991745186488632273000653251188456583405587924916240486517643067328505369600300406782110253611897982942083581021484002003641766929410174394574225546026004401898702580983787148254576967694565824094584353108780993981528292093747885688265863905668691178721763121453546488069615640265558730857123657425538765744026870714967351694155134430871306871649891362046065690254919926210825355872392971312528571187927820069079437751699335780782913012836330350676644410601810511800680062735696638910299744427353469905470183108272502272092593890071493887994298757548092512680033918007916067646788725282199723151366384669637253035474202345092797489038890664879205234895581226354718917568784041595811365107664117133370097693667734013039058320042973645170332376480938768150430884580943464605610706258419736124078265868613163050350483232065495896243246449891399780394101378242199870354064884801155833602606137591052679878982760069537012906282543619481379636953518423554119948509281304390947124550214971946990855380169170839035211683316466150068109215920225210770437529179587713320835858911897713299160304166314219447034393796661439596669736410977894377984342782316049251612135131449317548710876173922010150690278606539928385546356377367694855967209718619026747557118865632214281926615059655209358502570742340359747435996576236747697522617015959562860518216414997080689218208441508497166234206270224447111873967719790162560071009800664858179606152737301488781747279797521997739129506437405081661136548725149837012714014311695092896453082687597666701396515632926979860610166489045672190039407568227282620581166093359029451968204706481801789202771107506596397738287472516709191011206389146896132157329697534815749806778795857508976048177027375921678533931431447848281420868736473014309548168972784520485641079922504288246140097115786723757593233388174548535634845516073199856694835153484166909922361135817982622546460477744720751948652349375940439163906476879580405759730589426946072571268693698496356849740203710209310095734174523728732771273359641901127714816291915938444448260167765803395057894242798869418919556742764102661959802587296851690044708390082248863312156168945464133463853683583523695689532968495118154497312650600091059311667855865845074479465986815553606055638012837449723718454021168780189251984903365112653895126943073560031756871184940955103542460604141189943218747851311169253192344322838476656458525493211338037024152033819171180352678075434142908001321485039262653428107830824148232889838490024129807770065632209749707850531236572814662647840247596306860468082724850421891534996362234616682873473832642454434728887116075773352025938730474443174663306577085732559902078976308393662079627591711409712099855622207853631571726116071241379377861246256073248819711432897506375059165352421954613139645787981969961939219384687269664207873420871629163987257012815930331390160066571594746957798880499418381817671082789931160953150380976077179614334658352829592065336550798427199804623445048206521625075978095574208056815846352243552286237922305389064904324090775531581501788908317366232731199754065382795543536060222537256007475130309150696956777856138429692238817929852640117076342506470126338527963146234466536821200418217586452274033288871915703047992584744162025497619084502663333374048111992556147393306241735902311521727389146242609797306119196905193689728482058258903277212646718917676215589506831380089604250479031939317542688378683720354729896164886819744027210208917081733541968020442318241612101284061774037984508591950374604662900743746937994170919596873772627280416670687642579979165320946888807526374623889596036757518443306282368749335977975322284790014721489139360279376471997515140890286436079761503507028231299630081593153953345827805984265585679219961343376223975511167410957758092334074600555970369007732734903271940217671089075009273572047922861885595661825429529888861895607996687354533431305068215478254299518047741225928871758739807057164072727334838984543749021274867007617133930647826592616753312049832128660486575044202427918051358365494286927945681970431022462188827562032615811509576280784076576090903131468549564537099416259324900758247406291247549940065445307629076748030180917781870372930581579179451020344356420356240518009762519846900367004478643019207985627179231129334215907615507831422179574964263379179029999976427832819570512892743783251750346857942257669466532645368976818191993344967775584873653267333093939570180575872540385673592991895687153505924673918825295557447773372266742744205391330736417442553701489708273752930938040199155967393392507467729254957184002657688319634584266814035571111323514512518601481672106021323976293243516066836740377369948021208966835965075832263946293956498219379492097167489251026627310129688565788431306765523090454552688685803148304604740402263336198255176912849209901384425390349534671014606078246349733351020324202886952091581535487592050995868784827099117272648223475957863436537403360176379044971644364154498362315190738523918706540459212395380942929406458026887825312143715756719275105425895120851191620000418471663089912672894981946915104859607493980800655848453414717615433554006156610280135690557608190537793002280259628891479648529962844219474373666497160917859557939738186122679199057832645339857765753610481425730888288239720250324177101534453210548125359797467003123755990786569642444704061392031905685650549497169018646157560406061688302951772991801000811960314528694543151113246872617114347472540602480147222009259734559140344838065598774874865871097968192668315887868133676782524074493791557969389745488369491355980544424938327113195927894807080133936306216637934667794394699183002914297344219885263751554261655444486475683243093953279139881813627476673620145102364057692100023030409300655877222305028920033622901975342382354868248024033513828324030511755386038075695728920675408622524269084059373004690981765457652106593200683613501506300935872619608473207906956229417586572042876131001399864972315333684846307234766236416481258354755951194394964511471986416170877029684084640482362438838454428409127219899745919826545300939581254644568851848298573267230622090965952340087755526839909144592636155410214176581877216671414440739563146415656151292568484081644706044850313562661564747177851349638298036874156192898984855736314958412273972606851909229405289212867095606933892802895556340476748568965333412042001441712201043854167464008108774283528564082298701868778022521484063797610195008718658791786763269639802959090226104435349323759420672544095982558672981746016811763384875048679804143014411904339552844753666450159327815383149706099038318162861545923228199721162096454955013415360582037648104322641491627183046451350629779477022793037452741482124206379315122447806762364589335879786490129651675518473865546060410074278533409332567319365572170864398297662692096701352095335075039544934713554645015321578697333775782769132003847864456601457505868794468131659793420445128538907536537069773339770333799716057497465525097921427323751671922339418113769216517641256745617282622944029605826089685497944029235219555661655197015975227932179293860387071696097249701608584802791604686194835582101097871673475901784029598197260781765177619308485498631743450805393769596094989761524225389744113950863983612097604030325781221960983572374326036594972921651799182459193351753523354506246553596079843129222589533419176494744082229019549340709395920007165763001897730654776094209672106486067743238127152427457217607503395128010832596791842583830781144276114439354812551555170007664487831380275372552553074717626607926699341667751232907038174407578318295426831437693360890088533859137906613240080529458222203892836361539380243570475796065341656660071245882456938945164842791189208320466240355554900048402340557180235198780482249253378618672411290688572284013065226274526906543880679241383810177098586134355357920289640184651809459110906184283329319607856686079500437041633568855243807908496844177917195463414621810862228058142226389625504730715920764354550016222348131047871408918588037930500031567124979207985545044017518058596981867430516574640737918751725075346649986272006749431095529546448490730372084530548792486138379054703671716868706410377583471893227284882755217021695865564947647441749132448895702164312933033074751637555350786542463051121932608150011054831486576271862174745495671013166384354109558325788498210051854177200533360471267104559437782421454860736320671725847038514106621889395783754309329899047350141813768656636888618336648049112058418856134945803467503310996521042927136298168497120672491192247269859877787676624741754332656880263608950779191453213904516957394247644706591736881740057015354799528454433638424685034711194987663344712505235741152384960695639292050475012817696768019971700207772697364962224516720202937963280718088313740183322941917191386552268655619439802790163494010165153300666163933723997456095264521381438921320222792097923729728876381852744902004128449114950782813093033405483724932398630293462126166954244668271240615717993603782683610898700572310544557245833564168273527486415381753191214829018841314006027037037617251999591886711091998576252935731639278566236455846640019934188533746638242777761908939933774527901970048400436799502694164291532012238776475531452745875497619361959371680772637458899189384078708966930804530590847331324425115084301608406763099676587707373415612654252166144048013788045895218818548345344842784023071228562865602395701702679947104364646734504982564342727217618490816121257510721998187114529766818400300352175788799208063433191236611369531498819604088201437615927545472907920386594247094200869850863528549098708688991653294161602543787994922517246924308540415201469930787704675425260729881377322474026996776137093912853993131059922551284077855460498291234314404930211499857099488344266959359028169846569176755461194961642456966932213699892002370701272189330176823056575819260722052771421480652463987127352591238277070622893945810664474635730798307075185936142925927220095425122124576189883411577700913406893467570685493187031034582876955590292760338585708091597502498982725358382211082097171730613352755903397124175872041255377842916668648247590333597057230182300009722413235189256717428690801100143426620340680262897254643583713660517696153421462704809915423401686193128850401755595286678975370478275817825480087419935527659365288692013395228786000817943360082735402002201185146512116878260939925295220160981283204338211664001607023512403253498779853696141259376798295783925177057112518775369209246341281729840168671254798578838548567331308191342224798089072284081281496503781448370834265541762285599004380107823670328636266770203491182942599872925254135613817245156476113732825144647221940896322824551557481626656360339310861478963884013185491255830999307684944700859302416808105377266040809465311355837045564950719114925528070261856227141818612217050229626365592741805222186822035819781318790440713274126964079524949130095447989284892618146002412309112168289919087797465445696513581105226937661884687780291478700492564550863806065370956727701578670670221772140056088051979751093317226659357608223248808814921312474042469965423373091356572199032833883862603122216285736224716149050875882309378857404875757610110027622880914363103498319896843621371769760638936817466304868291773770054083030719287148567615343924096054335950835868520061758570401305893698893436456125334781268155472626535530385649085167001595643356536663643707858044613516396154808554519806700616319963505409099990448671257686313753714202253671605321230860992831751818573466382520723111484264570286621774771164782454648210068065439617596514098873435222321236299769221306445453419852447285776896831541020715738072648649325511726588172802965351455358777373958327389132818920820938951242001265490470111739826741802335420061661791690925819059547004009414902067038983303851312848686868810464319646429436562743180143115622270010681601915469093849052005553144127808643649859055531589212597964158875235913301069744072355271842853291703326312008477916199342542304742049139632455362108647240326558463145715042090927003540133040267691779829330384893837843633391566235530100469409434781460226588430370266418956693774642713196531999994134692659677415155341859648969663821704904115592545124406163146456571325793300362458051686541890875182293302712014147480188900993369844932411145300948143222671011298872596579938825524580626229044086503999709447353133859715815876886904665277484205890366058268062084159716476150471476724231046861862306424613105743517438032302514524738805974861437408392589436403644168871346136646540093824780387063241174063924237992726139939141776148309875513864870243556977199937454860420649970113751894205656721929097614985440187176300059181169365981450607852450625593221154296963272056647625615060323705993082633711879997974342253079970981437645722892290817058814946370452173841105296563766163733022332636603451772260240256881327662986009848327273612648354458547888239975138400037482902832107551362025810314817266362532604787949547059753574139856847946082408103194937506221365727257173443372053673620219200927374797038751046604834790002954985338486782303587509701443200233292167005952768148291272574995124173151968943360766046042154953452126062213648768772316660713037798127223812314149678254223172317197846811742576664142617427421399967663169437436619775635183363587239922336117562195989448671226165747985452683942599293695697065431581781212297763025477934382650070034189835495412932018043837135122865745404256317208555770543171200870124517830245571296889416157938882686099170962620432100145076636910049882477010224012128993333334621254811005099373068257237129205109832212965953281774094299717594951074149188993921112484735195930402939719775181474797599271069845630456723464549319337310338881599464540884758242860815393730595555858721916704403192044116183427616616870895886791078430442849763466192429659192473929666770735514814839509402121544217211380855057720233109014627160236849187428676226344585318525718022143046459462724288621236906288865411504397522587463943501335849566516014378989702332647124355367151935906184632025433244722364085964066645800055482712591137019921147102333198383148548059321846101717296256654055588812410246259606926858997111394478803714000328760941968528125959659826134844935253163882389007504743764601459525880856467451644347386321580578497929943959777846320068646103466620499499950946032352141131963874662500280059658664024961192889046455287670038100207230058113670019572142304378477103768705183906575657189837048643063319342286904548573532458240931362085388041820606699470068925948164821783264515493391118962451205282285305808300078080722312457192370281742493379289791935903864243630447329128502284874369957586649342561623291281002610163942405577562284803212696156219922248981561163690213710768160885751334443237863256606907294826168955147221884534003404143829150825201412653002070907880395345147034351513838559397757524483245634480168122950711418416638843290511060037355377830505898091850659073892985855704699383276668373902283726978961700917104824501628100920428760637297068933492150578371410986507425635192375776487996898369090209177033947434618716358250484272206942182377269095358272505278652208995594900954064100029867656232226897369385802197499711622473097784120235645740453121533798453896877108249635458777944143633330786502203510262952824094077644262841356919730755110691675496919491742678567132854354052826493184079779671983023634687556692290076066580436216327956590083975934029202953140086777262383825506610495740998983163315332794449473344813856703605972838892876384384068507877794852003940387214473960560859668089298532732078742521672906375644926003233633034553533670060836762249961325973950299534126117692983482948862323036158977253778249720841008159369162238250318151118190775373979575628923479764494052510648404093097320831733756103854273960362522101471845813446377936819877293103527416997722943998914708970860467946238042256477121379741349285350719262182318493447028700253254977674878948294293522618439787545820651615217033545836555697014425947198641301820342799529412919662140574859086139884856277915112452447773852944189926300999041744360276744808784438067462207856961921940589452750064024659319949795792707582040163348286566422847324318960509470952407839784546510977604332802825846825249564912241273970580399241690827139367577214026698128526742162604573860339789064546144926306791975038219543544090230020788093541651061350465693298306708588494086701721563100911879772456611984096922535219521469375128959076959312488383081003180043844642754268353371409425904261784847822204510001477270964160098644793055335385634102284997744787343125191865944268491105738829531003460330762950682776412087778290207849546813014343755997791067554304170662916411089989664315180030942895882371304955380483738383916759768544049233859936083238023755485673141737042542054073589413930925941158542433537558193114295071672859642336448175039879097708784134551240109202640132278458532255616903809434432827642442553107201633254028206968674226836964774739722620935695580437651075972018925916136354355620605013803394275780422180840422009335256622212681688360940931689140162243438090859979484572012309154651209028328757760055887628833599898426762302605130344667725052425167523697944638749637520306453845184318749984881373675774606322855820939233334070493286776283481282129932098798648599925762764666493324534808167347676834331308201668882800794013035976364361889110106419812601256681112863586052858236418001202621023062573979180819308269453206919767572701353526030199719739905513247265790533884071404246094120191323323138868121053857073044608412079969828000094238110416764238203933663544327117643615759187112701682224938687928040331840739958457945447481413757288931184369321994566483479493888354694958118643544484684114595355390941903216131762032530589766349186558953798467949853498805160844367718316213802554429586168148357699660450788647244025699454871699783326889082471023078680811030657174565233068200850254477816188049240880360303255498176220045250670299180627336925757792328209869559294580254115284836946907209243668442334743475862206789078827419924966219672953126282056700583033783136427790879642699401515504706325855846783018886592381089086320484297332123698390000146734821399644156513950814531380406408786991223325931458159677537499528233866818257827562365485264609651435397210798427818474959197762049108219744646018484046817566678225175526976406932927289192974261851336034583794059434155220729919515427141800492196330221204444120130129700279613504479488029269726058954313266047452498228596529682169644450480303370960418284660821054759582334439055565352281501797477936340631834660869201144373120130725490074398487934841616604818794919363667874011639888902988628378829368995960385463168028596469135226204708803680935635812541981910935429906801437546663796121401841585112730300232024713170632951643983988003669984894468205335814586654431038592476544600608582417969767748895121291726434719505497871776261324183503859830248734180526294684259798596430265178997386394598445979857513782210963473312292929288426386589905433191868597334906424399165508043146197010724560035966951026220124931883928832625497966626482005575872346939666954978855073741323520286985153568467097368068530729579818134100864962545153742018238901896341528755127185551727692176605252467548645334099210595953171721197596089339403982669119426937663908984982858433455339817067129305566651228405472106936219167815333383958509377840177959626248731192329308857969812914961721930261713408010420876017967297653268863011868069769098261728476562210564683594869699104019588476512705671143296426294593274225532011830386091307260979321017584769471973611800648405617648233208464706246047431875274229365906304821206192313479399723379141575576149079201921571130890172922350749402383906591121022631336289430986992603635824834075435724764128082652732431912239110271761017151820187291764426562175014637212189784149232928466373803597276350559634347751022406651009298073302993419913646596535446654538237030382066910800950296402132388059769589439726376506688085398152948085559510565483831199486684996736601378489773681701539651668217634973359891483144585263710190315545747106710608002246653389314531205772678245764800245834777445445926166475522198606977290642919164249850416722082040716592769132814528590802506002243227753396887798124266030716115548676693023274709601355659053689451677631023050762713626826888319233853392888079216767148926848263231327528738181071633434949937342714758494121415541504410278830519987273196860876233015627636131090425929147069475206490980690160896172894274571482818463754175220922663194937610261331803793194902644907020900080757171281905382921613185756958515386423869122161565111952361731350085162296457018310801206124743898438446454790737012752843278391074133783691240010186572980473732292762933592474884706011702383917573686141279124076925096766858644585779350238823434295908495655893235810943940921381793988839373517156554411179161985392788436655569190475487059515379529715472774009727900779851378544228126819938798264287594549538248146294474369837292126342892781082603071115647774062873167610535068353793953308144158295409435802188459378527366668268401956373231662417533180001733183053800197043004981593670127475928473532653296628654272322136133781460377883336961403507886232524622911951472379355753948379199449379976129004384737524755296889898925431712122653090327363878497530575622454083440262897806759710695726329151965509754862117447008737605126399682988790977695728211053947946571613531962924823506280501409422039400317175130437980348180069989655116966921173077593206955196753403489143252833246637369096787177804762488527930783138791624138267192128734773177159874474693790338637827238909503459839102673968902173997833575489821375254469629603172118636823504586318243379717914572441574349256258391232806751923395236232473174317561633754975694466637706645109572335829474791933202450957657444635951480160804146775924923371847667604590036741316420115568327112441872459226838675211093779312404791611480119053802573899956993670826932376233045279235249179146811455036622884538823717201354846650860204798876706925197723576353969555789737450823692671033559630868714725237856324225110723880895804915731792986543501789463962756133561088427158098571546999742633022411508206077420767464593377785766647354329298903482495866025196947957691188442995275562689788431559313530223455380740455996196636244183927241336083238320196775071873953273471920249481277110865629010254657895680199496448672825969720001074425066467914032000601456802760187734629343775895156181148332275807451062114705071252139517991099383619088904435069635098711467647190630185981436004545526185393913595992016680379918894274774238836649180037308414754122297042443087954426625808580981562724453398965486225259834834491896606911917369767902691744607008227504022771371572989598082009405556432038542838584850231410302505727304433113087856132250991794316125712252542229671779703950999876437438319543197779247927173308954813633993621625488299994021536696041961665916920699187776486741897299051771527855054111979666332678374202269996531988377062725501367139286435733073898653503845562317677503975753559389654732133350333909283996077133927174858261096923734488874620785989666306907189268011116263202048428013853085515993177529027706199848232393041580716218619311054958624070229822984111246941478867512302578783750149982921119542561064709354834921524987831323832426991940419791579608032469058529905087507598165543880424406220942012289432951078322703944957319081329364508703255057815822427882815587908519006758173361292212532649479339204133051931561011484037183640764700883379029512728875269626465623174928600671632699124138287060177824459874149917502149716374453075811596285762416336379458143801649333220324353228944042893762466890240766723584672366937862785703577526516059730152480665539886005783985545507238236954611036432970491016604197651683770130263069093555715353688237350567240695126888001698152246311652115416617903615104906460205784865202399946897363451286786857836774921765340704382367834409046324961391646879548003624233695384849483269670032130893087074006342499870525418126045110527351119975701122641403108040240775752340318542767608180584789226268202136137025858174804548279557201310355391534686568384747019137734343840806400455246371757620109604516685088481842198449752731676956650267756888205931815784283532794480609647262858636851398319713058229977406747134570441831066074370477885584363119185975364062896682592893978143635391631967696406739652698500957786571544175408357600139917701155450204447114179793285524544387376494793463098096284553961150838514565287819730337545875670100377843862369970310867059896082236770781005968072964658821143287591746441342675050877116968131518866409942785397289178204787991231633809133171953684829437489357246987906916982044383220444207429710829902920919069649578832475576213824435111546029184078777212033887083002966103961071389616403108202047165945877109589281722286272187845170834850012153342467251265163153044001937366967081834642295028342164452310564137716932106262024142564458453658645628568784299980440366485329428534022582477512719432265649762027296108836546121618891551772238605940602222036925791175145505728880451996867309167666967508888751851166261969802361347709686604164969094327424037814854441247292335651059118990926987744818480694528696427166617857075406794316958427083943265324387710368146324153302277764758361974806079566202753405759146413418514505563719407077626730527894499172981803467550407603782802904558836960482121726569573469210526877654163349096245791221479372353096513760542315192963218760126840591783448244595715873858025345584380669310436018660700214372814763905354281738194110812937223919089219889825027280866356399967696248177031220151686631828244396573244238923078923829552165300073894746579467993950081025215468654713605237896739949276323989492220030893975566519817975056108622290453056125029769115692825545124754219302264490367751499751707037270512334043786391865897633857013102747306693087324791764618937223285640773948349960320239205414039395751745490151489606250750682399984094706313193587947296958311148845545546173343522395942163127462700471474435031392930442898994018204006925743824945481223396687870288343616421860492955499369964820916169124817828997584152995869578516995150091736399652012989902984679469275631190639776728670254665868627073730638818051016678335890853880162599810519996195780032120739515831061863589126600437722412864376291650023784854346931957700511824374678958407212863263535260106304383238719097567365334007655509123542783396717482043293369473091529656434966116971992991363684128562603589122760795588348007430356904150929534360720120305140201058372645218565961500842039044478006416507877808994538347703548881206269884741797891036364879954412494436691102820419126597292483233433201565695129735806595612160301585203711956794491691508922910860599204134576708829956692704601613756297927501379271547654624896748338165544350756207610313165035961241331182756626922157820172732599317445060201358927189193915811738725837770603392550301655091352379579799402516398683439081366364971205137135916765755344614609933363494503133660759270043967206133843565988267673352900783176678933664289431106966980120427109196089863532305095818403970343321448444432943278000614933571133073620480998945028033515167861257503778598969799208658800060295768251188054370303836240816050319842307634036086572307915631218494658778861849414235778968536497530474099061050622032911101697251269694435745134350689991263814362769535115763898887215702715039410334843421495679955793613491784417994916990075695044041998125386800622655859450149357521679500244884379419170525012979324971683833195412180941861715389744766498334121023327855128307608536597825860161526737316719890545163418693814002606924382619402334058243717708228898863908641192121471135712383120393107985898711402279157945032413871516536497328605658947646949950449353693952793056595980363427161008515051450254894615874181352069732804860512243051648590601866888255439226425285653137015609939073973566762742785305022077217201650331658688727344619455756136188882953041714194183806648920827871914910468042174584139077977686861534837424809673901043212830267930199096549225108061302769527114244941259720520303577250782161720517877514499069699759146306672022999437019422096226667538094514794501068745463199558416339875397980475380442106725903501538862635557228742282400337442248732616246308033198631588953657174468158551695823421422112518808752512867278352736374133833975552822536740846666154904302590870357859412323343863566000790770892373561087423266965281564871947265967333427412060725247870901739301947451239328630346126156414345756282721835907117061953901452289432820737693930756096348100904529077400422674050831178339543785505145558758398923061880984992473561333758943053629184222302671833338269229594605150738361016613903158553042539232055289245533385968441150708819212532012371198439444166751190125179243467772581468499256604601940541614938282624985932853631177594679460821265512441233590773983254771670198703487719879900097138829237250121135912352776627625970199975816337202710086203077992834398961356361566373710956309669326364185076094852531934308145930110482863352607529638063148207259555703206712090815811157942090440696107838553764685217053686360739040562131136331872055366915819909400621278341171868775799685938753077301699638975255005925194683412192408849162427888490621267897293336532528173238693185565509246204585892597799299530681658210788749141902879901897404431950829845542195610124172178827098744112648694717967026471188647193735076146519991147379572675588558769690270228129861864257176199656207886796996800244955614728598377026634634178590821055615912493456931771994201822884126342903281064599185674186703779390087802570769925155407359477514715137858989571453826076396558649748955531398551975541048978250736747767856473319474406988017600822169038626928513574476330217318686286253550652143438483303279798437961219717785806587159248089845038423688883562182283948267956086649672258527722689553048283610794091268099458643790856677976940249053507344171871555447742819109289974912513725424921973215788577904081881519791096018547522234896700071072621162557773664677365031423108862210248822006988640311169705209941046351512854228646679829967960293590669502664971895273902785528714523784534510194989859563287722789813573514861537021385947754583116803764506058771261616971323937584146587860690252760840766140425214168085630320677037521853523164943173572327314462346586880897365100016234141837228773561556714146488298331921002459418407557180238031435694409703677461520077345936479382926735168082150377832283659724072524597286508670061443468668558146655365360895139482470711086150776581487669757702991685598219527990169288730935532323414662050812681104054115120541906710927106842884847373575190932027914930763655676245838125687786138586100973035105673109170387436873771406988260479077927195624930753566859662420776339914226837982672432507698246321356146068375203494892732609047147257847597641328605701503985692244933090489872176849342875788019899084325081695962665668446975902511465545966560186555415847543751186491450401027674157361566829823221384276416222138777443503095953314006013098234909161208583562249911813774120347782701271485182835855829151068467546187515907215660279505922509781712723040385728657096681119569195847734546035686830384822761703374714347025382677311130520432023840467977860547522147314839217429051188828448477155503048341215395032119090162688557549915899713144097376971771819217692814864087092402797651438585859615217511079426341393727321262712316214457205982168598725554836164825443076224904315061380055087108792025288440930875889775741664364915597969222006545126686699963636686600490848894947142370380757983539749999888986733272542117296495470035142839011727363530228076017260868437951090099354488044954935609711623243918313215461952682201765298585529345858218188961556449744365203533809903937213179188046053679598469284567558382960276809394397581184201537598188324783235118437623225473477581074643481518247612953952751925157045579194707695310781555317739822104285145163237373980474968868270742046984906183273010728076897624522759643900816733639321511458389004014279492549353113040897865932893039785964277127242850286087694660791263289273198297674303686689973102293080725853274580782993640616163281739978891405033326819573149593554039874081494001256270187654496143149127220431428538448202977614246138012776442917632767114248881342363203578080337043697428680249400089381344672336163088153101144117699882778175704785978986167029298978877191295418741061592488140878757464005697830050060654343494020390917536612581955983936774745931665493537666809030261170509684057631676999950327112575805304631011728162469714418319184775463666875544154790335138513524734577942300071868017435933797427428398940377118406100594626126179923063319916801229579251136633280884526671724792781932362240310772282524715418410197121626215186577160575859721686750137077817003891595342111257219778804652459564857836513227920898109047435281297139977914419725178442640958099150448735451518667559115155939919008490275277493657528931532323972732468640272449959612237575796421186656108634926535891309652687860185432235755714956331288380785583016307296996162863332315070137443760306241193623799806208265354597521114534131325679640537507382559879402485658069616452890523175219667300847452315131448470436886964867556541931053483415867859257643413890912146867373261337599177693502391000108509077193199068346576824430006108025500511049999033293212347766983637569416455670472931451866988746686131729280417723657014982424496504464370032992978189384731349551173434360197830835295831935151479765653530992791629775498699962981953362928607639292386875571486356789519625965197331972783438027128677610006460146732534013759016776985376280091695460080337481597295743385103437800043306234523612617522999093347095452910839303700485930303721300998780395769580756163094262341547181352995528932780939607384906295176867822742760894563100139062402945600111228231390675311582658973583104537202996904727260050345746451685373464850083913452709937190765498718323227916845220057769521569253104861987089326311506147454739050501156287488479132005090301132586922477411670787332497465932714782440450672863118267772946857622488471484863715472730030658228455057657882019178643445166782398861534796425477060015010846557645283250370764411011258489229870188179573958658292888670614976846557783829667120078745357403588932454302202157519618396470110799884488280248961800848825188917539247030080076764697014731258511201908448760884372163347813482504757049054012008434743988210553718041718563960283994273412964710265650970663052580353136314699112270568135479453029127008989135861922441938072948827750288515588445518605765758384554084373230423648941465743704729158503939508306121294620880748013181750929912175094025983204973529034938953471957766824324466993778062860178749892514056992118366610753890951652748619464502841637707887735368952668238336462207569726783600447492550639257853570158383248860270834759710769332575302517131062524015410250765849628686793090475225403229134241995082748307029679683236459537915063665188978595306538422030805586366612726962795816317176905604581693470424687323533297199033567441554901455246784971972433719733198892960848536648426035618656264913373359365675215293697416967934615994560237463038246422936569114735600159661435527204158914446018513627533642433961391850276760506668657883135187002072867763872012739926967035695774692298609818252175452542055088809666638876670842885003305898199555661449482524679082105682749955886443067731754183163544308825504391112970740113186477610399169839593098167644008211995056118270079333777197098512802383805284149707006431546738550812752400914339675600512185619648803475999011500792449862919453939143691338405409467698583258206388227418106747019984527639859013042111908617171385810827333031512246047504864252347366239246462858416755513319853946555881203310107149764264236788010902762515258590572202164676311381953615670993761310914616252348465802634657112213592944286958720557746060480248954809716418553502937119876165624657440993900720598820872510254939295511229472940383403778986216069780406995279614879408726884274773543355239768409193094523305331997026280289854147569396883567759170228728550601547646671717521089126626232235911122674170186010847639314783028409187250468056197678594926391430404582932640596562950389841485903414734394913466179414447413967363409269697631453678294870172757676341803048319094357675469542493583327216087842237881201164540491180013376648121572274408346563167198421417085820479913102862224128083468219064525687373058079682029052337017136633631080370639762862542371067996045890707741392542751663887520529841629880486997716461209030559193469642484079887294726993715135341649426520232874108657346727224098939703911490568165917491374819406988878971358728865264149068476426606518436001613250853694216354980663751787346785086313904044622517010032784323622964619128404348653326799533530589003768688040335254374818064393780389752742898046257699923126175170123490674989948071045922503772201151152939758447636504260805620071007222688003558194552381701395780362805967820754013097359839117490027454778907388168371368978443996996577946327647943594237969393665285562031520567463871174131408666075460244728779648122462186450970510863907329704916444761955635003831663631840487277421366303425207315733926867209770302125176739092170356145618724581628931474468813210518444472687312497258859062605592350611537589990695329941765819370366409696678530694033367199218628010416566296165853909134319556762903110345015355191362966001091028002578801932070582062271370078701365495095498967494593846307039305585361158480986362568941558072499049774631330408118846708169930127960626985244094496545836893932798317892541458194141231074810890986632562499818689513938432492239730436935462941443538210195909961391027427450643773582946970474895602421375398821842430941582820297918288676474078061546327643554553739099019848681449854416914557666187804329165879729205458104932531976671248363312575714102678062934281986653998671452674705161440454422699901700302426683524074498071712034056649269602704446665939320581280020128996717450794021515544706839905497244044091548945877317796645905868516147951503070085978617955728018582571830814945270277916798661767433631869924746555359532211326533298943259103420161115880824045305390671868422787844401931224161400071849964074615986461838261166772256983145188053300766272892533184271593329814046116432145133369105692423897138326431732896508449634590496441349223912990480480227786284748623132677605379709456715477668399791808294103023179410572340055356549529556729372778205846484424591813319117632838302440948971972156645363842267077044224735801305159212512926618851937575570881314358766513655982027104778883229328862123488916837113895832458464208241821048202753772305296714603013367988413446239128239573671743992897548215668553930811470068216618359114879161648469421144658072096632715059331287146286270936439352621747995190736478064982105787707178645448300304489363009635251032888177813871441379975653538207731474973597512903067710475049592779165133929265945007184887458454008049147465223162400560483285771724916752703375986011035757686863687219789650725077808722140979461511176919016149553085612523061545621299603308060379431031022178227665812864708376199550193747909939540283134770853139768291844673321878525151624254744995492466872554534096713888334114966868462242341779019327655935704322926396357248246435769474277469269317604471585254121902997713484146517769159885785616134020224704745942551982140567951291483119038049209395140722716601544767833474031199788259711033992991415532030814224568114888964707463172699484583849152529469723271169737795088195845979255109726498542491650613591992407928100735744449842169363386291148924006068831971328082982163883006046651034029649915276184686080662838975009117310772947223274767880596610295143126944731420948993350138777218424233278857341067536767418963862964652786042859546294719262987790571021886684413391595950037545381446188591817148553963518289674504142305893733341816332432567547823956277211080838534084593722592738674705675451360613346748368233132480561013723082467329495111518149864689987071604545688055562374646671251657476860822054552881700693967569691080385432548585688183098494465055282658615443205877632963075503641346213206889979956902296185350639951370713609414976333579728879997997344402233612342124911376128876132701982551754028072845075647622851302118931487717777149783928245545314697325988545239090226956272628451182547478326394131372814203313878543797420679669666071925855677309232891029565830892681257909948776323289296941343753243080586025197001912756228594644698193645753240663483204076892729805332504757438217188667629352188186144105706856402956767504329230015976325886038702026306669306667838253090490214171976786239725133439102539498438619738541972174335825920173898287187533972799023816065629633500104426009153506027840351664927109120338557095358691964586333618236816967417203225732068554489177504701399343816352097353116495096605756836880743396541124451428443215722861320990271740333603572097309037106431878608675599397097171828825990970529119641879690327884375553137594897320137649112713447168731564146649020035407307301581349993759677911866988037476918406818434972179913690185780024728577672471607183127392343824199585957244163690957968103951428430930662786302112236096942115140197249203731263189260451899962945278081792760370903067825939122874143197836259137792002962871991164658430246141259761894206271578155147334547725952903200123547309472169892631136675372954267042461735388526372727519559294316370960005293002246007183081750613397737435878705439841492344817233946273945463672627388384458820408183490645159642985594413048386272131929302564562816110869816442015779286894850614234353783015482149876905230961497562028734125578540875892268887434233237497445252285312209184745066022881174878846557848829250339213249797148984593085271606534671084153285590218184954848330183915319552032442020492899104910788012582600860913823121151377315836071591783001805289129365608898263511884196359443986596622250748986661163490640175094733500284369443790474612874122966396245037251769226329229343835571705067187535919365606003667364132814188581372756996668700985541671823935638665232588875433444789026180728307567182075280258972831001819378919934443320980146445076610828793596847874549176793485312049975091992651313635399781674135192529828608849339773070357785527262556837652984387561809726870385721610242297927274429152254060843339666160965112250784283572948505895202696333904988827241749479167768969675579852134964183246537965752449205696418547454864413850986384303970798781626007396552546873720474666094731539428721218225284181051151822324473490535244626670165313437675334653542888306895694702189179834225026152612963159621806179005072385852544820267254094226602754337768722493923134217519481821869036155027311797217694782611035254143140661871280454158913316315612355073214055316680130919215201429045391912382826587131254343585328775753618866052441860883530140552340597105962669403617868023229783466438096380216145050952586714473883622218265848993552637076940921507221587501222236052515548772499167594117539402611622929217782948250776153952793438083091117299858608838748025421264603423695740662766235766087581021059042727534117954666545072070598514260728442128669741407769646779657060330970458409034279423213611438413548127901010731219046204755523111286927714234575874987003846758707550631046020577196736452268758832048315160542532325184878238593543339076583406350904767360434120812951842176852771814790857264079497111902037395253843423676208560420064303726884488297515778587432774740849225575355939760826050828426235246299512843443188643660407260318781016181482481526679827195677036815564831339295429155565627465665540802182504079482492909426991497020096434447084520090588003152705170619710508211269349006188050582033931584466668315315607578473813755046741537843790149522214785926377263043092063193014670044262827197833272908757609880717462482837203137364670393443506937390266569181916161976448457217109313345203474642059328509929037810072541184472837199335721301112708921100071828061605338094865713072517556290806392646269262960114241897553060365532770370080883950365881451643910002546601268183973514165334441602754151412625882171055692283804215266545797111497079277967000165639723411198816521131521865776212499867058464826034404245588158507807051755558897617086206621613890920828784861508053429265177968929438499335357228982785172519065845718117051243310112484240006660680737199927999367682096916415635741790093513252481682348705947471189235955249062888046699372201708295417593607698340707549169209015282681709140519646472441195696200310442694182241051500682376223602427771274570072848542876181936537305641574203938206097756974663911622120540927852152228338406127960686705953114168717217835686349627479909598399744971085892836227593773970662035385101821166677098289078597230741905633916505121537228358138988285108608528177172784648787316316262641606749368286155977709026766839136369349504321969065855951563210815105604558829218139667179413281520035070357103807019782544868000948630036984694204713643385200211922085475237853835091216520033325763145431272922022772691384723483849097803465220679531742840772431093829323106687907509426904179763034474008229281659271285688984423948120743250900474661727760916029237336070048028029838154691949264698295770943733056898478506032575181705308055585811160487642270596907060863682482552760355637379989391835696408661653330135206903919586086610678693534205296930195045080385251027356249158558564956753830173101533769204181659234825151095950107897564075827173876200824747145233383986783619204706480769626621069317135909011942799334130211363731206538984723597659391829564120991491520469291888807372729187543212256303716499102666247076869357258060032372947829944926536746055515663533564161099436685709690897553811703071737095328996243145052634476775913440368201077123889192421864817012675134099968533715099123361701497059289701924321851049021537548367295366076189121939341919058262101101207611039314621345731381002098623493887579066296636799254699580679656793208652847479963512176600554409697351548465376516417345287145573911456412197721005717608242229914984399099590895439794391755839126661280558242991461743164688934856380653618304986721188000575993670708858758002540788623274286404279865464714399914416871656368045774792326721326040245057990683281747333554432908783211023465262369407682607430289867274148398615725513463301692428529413633016613987073625403371954952518144471172405613227970913729211076031065059296141866084505214868779663961801764974284613065939318141740844755983194436382513218361491363233989941084224888808840411708112148137183702277250353184579255578724324581593599529520100776520255069861368602176519827899627245283302793118124892996859692013025974175467623764870686360322568432782844021179840368893469908769007890044352963098484144615130782879470858036466384694092340058324076007887974161041701548973535945523802821660594819102509942674652568193656621808648832638116827693399298366945953201835261652619951921222419642493587293510551992535065112077885485464829597353091119713608504683821114416942019661319473152556244210457253590025527975226701131876153636934700616416149498058590584845944214125415300556519230069572651558526153376750432121890619533549933958549020421449416193120327140885075621636873226947221354350290292237029660282105481014538601419530888156279764212162003729806227484932250075820784742245839248447834924132537506042575957642664978282896294833617160360900328480832006476369740784277149586949597477029568555247343078320298390991032505572493123407778207367948465537410272524170091858533771247250280636933549682241768527917943776935009972709096828049534795377974488303533841825730841078489388900782345970739988926726953410119554019455258813805364700442190906686228399248210421802452558491013952700467039262045764324180091772675138274187931306968263783977157434684323604796958426676107699964179072782095737702401494124701705337411923178040661738030100164405219814601912359518255523261934474307600001881753732725243378172539210500477329392152837121242050291046519361337875281720367750968111995189068688836895530005705839248125667330810515341840814675390081212787037020105579485528736908410015543861486722124335079620377775249932619086360137210114552418517667999344671305008919273984634713157592129767494865541194057356813981760439210265336315126157564239695448548707683558889201147781385573329643404974803582863613221305723400992934026521947385526657068758549066597236550821136110421939734652608296802623824639603071893488578515478278720832230749080460050540265801990799205257056626397853054120341525336087658864079060356588079300839765009815417140362790112990398301597951567496932868097628646208969989760886786288158717521754237669948878868478833202247508461627502991818258375101331957909485791653158729038102353060460182471790930221159697835770114809114566773238577728831995303448674255587321848787628570368255382242204543921123556730130303799970389553067932695102881836575023530678572463748626645004188803840808045871926443477238272127471256544591380739811377176809564158408715285625640682022619262876694448960693509167405424160853053448011928544823375032383130428878659165809979454092274117626472403439327910309624859458738106967645268787017290062003050141685072113727010346109468831394685001570723016646162739267833749706948975790603408749661787874937307139455124944066848496267246182991828442563793679865328308449094234797527416663759723653877092440426882229769593004150217045170133812350809749114140397133232872005253496598115005887600855915892677456292485181671612989737466036611945318859437607717201603378094988548717438857297412491972012698268638756957811047673721658904741244188507448807727830113789020820618087246479261844110803842057755582100854278869421414111851336832080794182967141061960014835819368739915799396899808588602193792137434646275952569671143908404347368051700538437730523694147583846067631629809714074165536486742136460775803124293003991828915988307485691692658302076784189212432957358248318842233367475163320325120922805295447763645078952588829452013280707666132678701230184282850968114374135681779403873454035993740243110391302347863730693767550562212870270447496830068786239616359595218750753282199201933845710486840636732451135724690144223603380241984397079592682709856550380746088823273263727190895162618038952402166826102613461380743993569458259636258168630309753847713248225873119450205871068261316762593434177165996127238106017490094683622622813247952302358837547399060827591396242469248623241106149338227410356363222198039364243129636898440837702463923779835198820476085491087573341879929292000424560775374785360633533247605559224072902088576131917300549021837822522294734850624558975157532300089197715995345629313438013844970307838287092021702516262151018025166673959433118723091058568729626115874453966027340679904031783668115239454323875978003020274740327374555991001980237921102050076914677420347745280259656745992328601795312593468284242505725382967766593080057148763092368328380500298685814979427661573032535729489648940461200279769974821696406910463133922064982327921426055968625785011233806625629378072842463175968862625977470692047449286093322690765692995504595532902005928809529588988272819319906733102342929347883639099483085732919186325080738435397139599289448838302307015042789770644024529113751354373206523649741300125212401754040068478542272158402204528675915394160613008621119004028706487208981257519302892055660190263007145666515651042492552981479816701331478907643283073697400513532141766427419347725926962816150054526484101916866798697531641007625823028782184889162606452423080149843939945242120236307119483168943625167277750337618542849719951719414954518556582393421566397398932060075883424523616817046047010610303745075410163849688173302755477977341428529905321836477365448768744132493390983468799750852878300248322059977740401002429027274128417363240796583162031774659137883940117055278585567389713819984743021842313792288636918886481933074135914663127101070878758811005929044721927185755610492805614483427756017796474280251161868882714968105968594696920951693788882258176691265678109059007958399138144653527345428516822671229245974470901848604618915183790142927321264042259590634749133870157897134700783326542391922912899254690325475811225471990116378459459392496416612559708832634549231727689279299785641019456267139362002361621796066264529290266995460053489042051277218722594635609221371932802407498856869235978992926144605130358162400311307731026898292515865047034281127243690457814108345734528065990762943568758712111740016005463566158233494904200678460046700294692444687778152210457439748959950517962841039021593908948879720781290150229487250134654057657200702057303643690647333940697542453451621923836392463394488783045549125803836188153018126395469828653070765574294542081247837546052916960811612347849319983102772834810782859436990679292502757391769793756956347209781898811145432991277457567836972233424332514271536170075370403284870111831808121872990760773520347425100236905205559813547736576683625712437959232778884629653930295982851267988312474722683191273796468859819020974549327440361749223350603565171827278960547525173328898168912436310104815469410953455287939670846593095443765455712097780854251533377704581515760357600828392782333384956000075917126999784269442558185765717263637284604627685343507265684768003732448922534850002250178292224998222258966309121308015749725470810842582816007954574795358264083176000581148000415194839751574026506112195319104771533736946429494696572998574986509989733060776654732279934975462160640417674946402381916234881144549745610004418691308012016555644407358943302767136973119507362120528388799473608701128978423814354737836541851244556651128352021630146132051612618960461771501594025955597149882397499426868577827936197816029656372120972885219871374137104052672157734301763961931802831844294824919848697749106825875331884932255572701878611126383880332901319584194930889129230942673472103504934691424604847299730804212027021628603592774417289845371846079956382718800279205722507655870829272007364963961750549270590243196892957319037273391240951323344901760612501528026084958918132983285671993464531784225555989791001039571361192719655642516032792979682095368102278459924616100970728147998370386402708797748928333662802811205566964342275814191831262776961911520169862149363005371913159798834062722823000224720150157778388382763852113034741594352716397224305709264160538936947507238084514640668426195003825630583210695094766549383761874424402193779362617716404801518964914524244164719068123296792585227199014685333048421625194586654117308485709438207190220187326132717856136078058247199495354553035526014139749018205430252746811404677866434996079667507574597150695976970667496965025036329411406539162055782292305190108269607520110620844999843950813445588124708661949576720679897831900807759251862895738325209098468530140097680459842051709439073841711247905068724018557519593727325462952109750223884342888948818109673960620992208173633363866285993241397100317398086793295097887157755803371795838999545058004049939454954347555692203338183656291043396662088945200290706318342665639299987119521998310155533074433065988847643966597093478445989562634561537824064545975533503605828623239502308142526607748235394319505138874962986670270841974238040773929264870452048537616655465674742942158380912294918285389128251058731782406450786345539849664069059982039660374110605443013977627157349353647316332990572581007923842106585500007902881320277942882324650248943703766810661372744409740826405958353704957692544071409990777744284371516143165277898491854104000494181743247705361572156997162042839400526563723155295539022771957434800675939640231658872800877962560867480720687702916165315131894772779205678520323077598093219717547983324844141356011284847064671409841307188793509487803940906939324849647839335536389616384761143837999744616556082142419118608196321733753655526827839579879062313152485146015535035769623262948488943432706122012659806801110731879734251059099744875177614633709939640433787472573893117378636665397851697250219523819050580379960384655365448397885094585744627969292665884889277455436187902339658534707985984521439876884782670638101882285823132271813179249216784113098750122817090455579294021523030859888697550640184706419722848957631243976609020422734142641277122141431177004176052975368062843173471109721576963347235104083555639558473306006203634630634521465971572260549194738820642833444282717258268967617527819492599460799418951506001891231581726604027017180721919407271153615460141863029642808740534754125966380541466033095602809938121081801266751451838480017544272672942122745633605241129437428703510264757712450048362907664636358488294060180184889414698611521332559880776223754223816909429380196739303221505152084590312657306767298922725660217879376635128005846086011181001009762678334092132457904795763427262774905484881790454502348800427118570870142208744620072850897762195082133284683885713255034870455317113937100244867466338346929705645683040989454173322945378148295293173583555553812931230627737868924879362123286990246947729029171940042389113392796906805729755757495977914528720694798230694164165953691820338636030503004945611065713719470020978648341288596965547980817921412961384342881075795451821556346958601709272799834122418375132677671136796046652914806933202097750983295756096691855303493295254441971321163815958133693627836131473502451868170306593545580214571732120710482121510160026454964750953985325335016522496146493313978828177970033205005949492342657938627037782696201071588514459200852042924176319700464097805727522780505083462452327789150947305486512998817143554606115945458271341697779218587314135173347065373594330288933412942000657041086410526861617097957160027361538017652752290293614024763797596093381238162784257511998346184701617036388393987750874586113996813785462403521692538649566387626892263921536748594630605728909049190511942898175269200490552437930064931287350053880964979341963496678858539378137940656758846420044460788669246275485264016737318239555081568430616653684593025888309962101495226613241081294866623308925241505521494019306733663424460009886370402744078367433755062650589187290697034912100430587006039170813821233536177920121434716596853483617477339325918716578313386661546212471503251653885481075199389276795382339208797149123368015168827399211029307303584994073607754315761515415463787337894236779373884747301270505741535599562520958337508407877915377162532541324674488834190234675307027260196604349256159552900740531791952820327957135431920826471016979254575922597746928762823724644999200020792281502492366241428034261736989571420173480233057908094883759651903831497101314473389952901660726162498096821453374064000876438225739725298030475567037803736670808716004724870918302168671159727187025446092861564062224498791356431334180564351446258901904001289520679905906373931630728535532617049196362908445626760691908413187290566332827033124668960739271292206906051918927130306836842370694283782442162113730031783488088676476047701181828066138129217036562514528318502700760450772394279843284000995450469054067986843354095653515963007791341990723176853083409204651253477405725671222951321944579623266900963104925702002698956146998039563008450940030273715398659558148385443939127201258219618563079170304088368224303987989598320697317885154866346226425109166735996827907481936016242411782952456598644427196008085411682250421658306094600247149002854876195104351023100310951944076998807677149544594418487125789726368471074391033745210427354539980403977372713014920154754910287590655288423802855890319860474484278773159980489221495291590116319093930147581346748792732032718704286905698039111388100320187408779394368958430442498344157796602486071006465332670387120074927070733320205505550501967042994799397522912403281481112768046268800289287787140912695179482721793383519318454271605044841842980358950595816474306117759222232849595503948600558529349535533801899948808981587262501665898040042492677952487929368970853199894949935686388345570652618956077721974877932436865744469176620850599347016214868271706969352081362343015219797131191981795292867372705783991923250856905712120134717276868672273837273140099238701478223946591820164025545890350105630439402771259559352074452047335771883558475212254304997402739017161922508871427385730506078076826891853978245959244504105193346554851491212358771033000356475489034444511282311022544808634345554642523252583850450854776549683600568383088490300626901665409154826773118590296203747378096897166529323962943470605364041730919522686718576961214977664581608093758303053031523091992589660151328327358759357327196189444263943733751925334727593063374478996578691008717989892145075766009781242336988824738084919528962145027235581540085947878027680159482282771156157234262846679698378663830933318197506776026100712956101188028578893513730496933301570169270690121039383590693536478271489736727125054323378116826134394304050690525238586866414195752759132339725921974231864689583663040008541515903406998457985865347843851091357222186168832298525054276305213691027406104202427849229935232334311765829058825409575902363684085919695145362202845988422972244021206221196170898944513833572447631061334145666856459354530435941354115289101572873193487510439011261224157353691450190356961263305168698444170894535702364650884376822433109138100511990996693834616557993717878488109797872261521722535666332265918929700481661561048958812816025030638596784959286155793760133594455825490465547076791127133194236806516492990249169228857008345755560746252878384049847792610406197945193174846646398390819540026547196499191219520486339193659166024353807996317197221582925151004532794306590508543991238146835029351905111112994042560723810850082943856191276644368969872293630582375794203788949282744208874245757921041422989304082869971472550258608298582223027999647570933841485933730881880335180566445780758057640191586551917719983188119081185152785580459670960447641933882456160537588573412649248250968434804828300588443612978080254617000966936281125909457218071328944791805056405837391025364746309035009272961578674618987146023620794473486247097228096325562251254741781029615602784640033593470255673667059682820400602317443387134913746706049664638914040397449811022295295235764072170817994247204073504753071590869088948204335873140529711181522249063933466617573932120265184465755923920247782641329128275108905571022262386408360482848736588883185745091323687208410841089450093081211910391340280304613747539011792238178354403729605799281364909066098464815248559016228037462938564111251888866996017122192625203295567887421077394113553470093558001828019409268574545810226240991564737655628740095762327349126229097737036954249679708524545598066116887792040238240189590268104597389688006448249772212057145756333500719332036598754117955803839106601021448430692978599210036332450324139667448699081796650679359259146167761678642128352382196433089683346198350654606481152154885346816795866756836731673938422198289188008751176943326555334919513516781119619918850774932438357288551441928549436275506701697630491455464192328424422099885447273177490713783119488221335003404541851814410000300632133603159026410094603816279066531274136774136069209995854673207888108612868546523294368876153726212931990412986953956444736960476162420288115211129350037750905471377947350084180188246603845491729774727395265527401526493095316217106253616958320713587182695088259206236637294466140523624146760138480710050173248272724851498865817904290249970910119984846752257009258044712123221079283153029142196809539748411066842398541934712618116023581508623110792461455445066510868904099824950590996757044441164616933971807681249722086939789149646000337121898763889282278284538281813288952039414591944961511780186466072255890210948684366925866709753947980635347093108294882831675172956973641867553037181445011055548603018123123089176812089153714485847476572606181413820152310767965540916599742951799751878633942137719024333341622803930799302225712055891327841370566193035438698034839495010279601342540636310084273411374961512998237688064862045104568667109366776573391886567423019425857007254050518052382547843946111015691810994896382763882282224931903342426088339059418881083880290030819832171388340477414343877147548909101884571608055104866303629248918799340817203999219674232860920997936790419668008099953742312931703256243890331174130344657882228140311641763814065711791528143933982904106712501074791770674335218625491676617390490923807875138140392050681521584287444863290418940657991370418421725392835781079304317641465205847480830410134182693380642107919385502974658811732122600433272875903237512161610534928268552624577706546392269813306898246487863780909439823250554603554911858138801676752739462871798645907135983003257914988341925900038112341019656877994040539057003086318611988401139763588121387332782623056416100106105765711901636718378461248729279506780709905023586261799935088676507387736251613833429165962400191939318508094659011965256989790380423228368022754674526212786225944962790701372565619655198439063923732650105062173195643836484411969144363514473391431544662197750680363079589368068940742229290521404199864361329489949886838913728017927951651256492504924655383873167174750390968710527134896007573672778877166235073120552192514678214670337630654202342971642266719969276064903013056613452407992064656265022424568708680928762017567341026006577573573821864347027253950247675654320717163606847951076499857227938234854099804252549873554481577721811491506376022217421342288997756133515796426376856535902465958213532092004866594952005099545392119189719369240255093137711676319794496478429567961773863076818866023236183001461411620327103918794712559079704074378891503284338028033326784461206459472536349842244333606211042152657120214914362357787893377428594280200596882601612970846883318328124366025415245291620779083968149624234955391440394792761182200721720353911626383717581653416674356980607968574622588379244068860345857580244479980330534899475115673227818907576620913332662263431095626502102884825785435784636275330981622861743917851220758442847839846090563198006166184466078463920530743713042652904791919641911311964550230132103510550454388788310425779963433092545606517874217207027936308394241114467652244933046525725544320916875768359720966257809062702499178874158496793510314032704877221245177446505619757518985948730791401072134471053792946697087434550157205454962115897998384746141826867703059992491629904242187194722203173383478945665605610613877352649366955156808391865991351604585359914519243395476006957915417261920546754067478827606724863679758785340506774092357837708509400043646529304992528582393366046529705554116112315504879119862922066033683397764372891482110110594513368166397659035330056519371464938630085350782045828507383873769607034977875922162451920450616692050308969049481213832223604205580042467024513489517394750292371689727275525852641788610400568798173590665501097383049823974521190439262790466743120895471610616095380120479280852758930935604737625592227377900238542298024510355875852986448881687816941503847019054134346923162607030987187099302985595326868014827884212308093198418761253947071882014570867027965690420727838285708299367401660240567031697266606345663749295791495986400474782436911293142604493753574651666010937670707668875063757385510012020525028993076627827623426236605020693103808522259848486621484765517847800664267624275252005005350703741896033463825121220780301484734992034797821653324549696125869877400730600131368450535937518635738722331612617198951349304215433578179455527916129452651389279870318290827353633034838317343571336150614819291350513523942457588440514011234155963889392605117752617003323091208915964764081534944083229948682839851556847718192081286017544337108611744020863604202847974435352534742405913114767569482102066915520264561838184330025871668159514497684439510871073771882532899417871420775768686232715641849070646577317800732352171106994859474456808754904623188084794519704125317215511889901380658908242858619755045178792933558346839237286117094496722992844320992922049747831991257449331754626602103433916271245138857509455815565771067092902747285790129335129822789191262916517476239346104002535515996792829791972382576783287832015080081086588962551056380427422636935275822183270566564813401576186186622704908176365416518115411344101319199728008784559408730391820965881949133627668638448683744216292136465531471247904633144078249771316413075653541258334453720761378357920408057257978567669522685204798332246815264236879600234716883885451813593353979345011556154451401943894896330019543322566068602725392998939063429724189213195997877084289574673469814527718324381040509165976037660959422718262655206706744491481286512221479329790857588607614462930439518348892552010920550395866435179399895211956172265499020610411022896689402443695233991610319246018173722405099077711647057094467643033070925231866849105876138006391056389109365412120288671647943582496719808779100295543698601177088034251335072829523583332857351110334743827993838193580764396110390898379247500355690682090904665525146589072279142521050467400800210688594603176183082035484355933723534420832628948555414388497324332841544962342808245187965843727048946187322760801053213698853644273147753137986565288591980971111297380879081114127568452176401231920223547638333371763155622729083913988447077337981717856132166615730275483470549071798431097391655745325582714290840998276401099829004977528751371248870637614687373517097916285106995274920667661347400578398617790168051198558793726256103915588533742468081484519407209166139667825415084180301249928533441814780337551928091268635077621453608169609137695413686289815190177360769372286398363339831399604851882701589780199600957569621214769995677161352933667809243295987643622676228574983592688354134007950157083438623577291277774215863596403802334675910788242439523223538559532429806450257356802466739507800564936478484628346148417862738509648561357056416026473152948613323478157228457224997205332856453418829757405889940761453937169750644256016896115668012745634270787268999325472533650854544518867191524560521431087144120267336349081549222512472022502015033961230159853883337842879262303109890607120719041845483572312377059868378954021259625339368902869035907565765616345298990712450185801826969611231016996048182787118517094272560236010508408302594862467272461705527622537532128809515504379219884514514739393850872986892298151861421891571775038687929792212174639570819783204947204034882316678801465620164964580539807158186664650860204253526631846479238022129483488897725843210487403739096077949671160315256810489081061055661713765640418773410071079052713635610802587373168886547086167909879463172351636797665233191950618179871699703126131307475568889378928847894318488432041510903254726821924126075527026633171015228227654898262017172200526694667050203591642084040323046315686033783712885417351987309114534914602377292605869297020392553723239643342714729427010141768904356313273649337888461933908950126765802686437195961024719518661274413381206139003743086676466332738494409180491406769496001521911283849230236886854334469946560031673225531703654438654557678135721914418957866739681780279045582508518043265587695136740233946418162099391682504373586960073187837049358650272913070111559016938501471794237979505809168693009391181523590626101783662607371794597061860454866837579079800101047609923642443877947348979527959501034249703351358581496805553473427917640733099671770993274054648709853609856317144230026833440132035523507696623845771437301012624960588580302205776734277070980400459912034622966738381304122872755864944259277779438369704558278574212150885805643235370462620777149611317798553405324022190142830551532887945158803094537184172965929647143153004255197295706130471244503699379127191093173375202446693929126117555051144249337936889726300006308003757551820278769400216463101088983206911505451889035765697913695233040629338650142451171681649061461030605902103009183482382191565132149777334245344534837603871992004615564858634271151749007615211768481139818664973036187129440649359850039324173287150212397085841618416051162208800747245579689249496517281484780413873397339253001116280181325380127272472558630793896567992691798380161679308682642137590803047948256960058134898217767179378048147648007477591792338303742204151475048331669948182085777532810255199494415859687405830016991795007918619814962951413503821712956703566304727559642795132117228711768853973276903687510998277550385200139232111565346187045491654492751962519065545335323546931050395770858334215471255596916633657899188822541185761743781622389958846042238885621041113234471218385951766957169260372075484614234931311163798994110544310920826197569881643370048872804088653065514089760268078134023352883611281431915823056910461464645943776143329206802511781302433098164964952641378634958271992809636650013124841125821690114563953799498603852978837328596854233549026929363487724528769897302121361198971730774205412301009351972293523158123611505787369269502779000323187306463300789690384711434751772244606448147644879973142578355130785080497711596597741648955050552604753825593473256922455979467526473062081287214560512070781521374687329923224192872047032409240542377441722689293176877437955864418102207252561716095520715883082119000470570763760775106221253800637305021144672586941025379769656898096232796448612532328139207529301191554259001170985520571539973542309900073765931191716389585603356749036058290587699726088547489802923784160396664794195312933752780756762013315708283634549648432030285838665856876655406062114979670643058246162179052424260043702333202582416497865616055218455889062911730194385362576371573614965554283560291170695109956903017569994627664596835992142022462164200648160888637975701111752425191092834213662225523404072107217207960395759685506093097530513297169679382276173188470109058912482362226761487122765370620510216791171433335097792645659772016610783492662378887221323545443108291500536063840459266695064490715177307840005472876849233512590826462893552055332745072457864854931400689551860589010046788074739918172994303792538146504283689169932682195032885127207633727179661561427881633817311144403346824950103329316002476174029259562745043443280387401689263307432757408635889784661739564870671987091489267292114445588369860241067093339669281773606484099896920343977793028414295352378271456910990480810367167619075014810279739818550226001110914988165235435363146941602691286646020281569898275007852169128855846548830278810953230085044003142998837933151353083228423367233807646088581115758764840996329352368212134218356479945544232334971690893673152725790709220984734871075487686929080406075177986342435505959061890217907690902867004032457535555428080322385541633148493153884083390014971343553135582510039595214527597149794986580494171712424829500257225690264877051306960839579575672048336641704306022466607996311979630032425179806052222225767405180754403242286433380292431793773353231754607979461507645114148169439409810835726069178414708888304399623443071870536888418947964274652128376727958365917648936614775867894888810674391209119529779702174024263707644510269856092881311686162565297355707640477934845055527780661587904290976232853823538181732547209518307162549743788748539604813991085094704198653189957370931502035823589318011212514776715854835143391953555399400447433727472550105087516431185216513297553744037448191683733204517031467123274976547505683616571004546497913930109581641381802434439490245626468895455580326038386715881601287638873463429143232768251179002924048777859371302615502918695063171957258667306743129069438659997688307876822295971377630278367449221051086941981317276448256140076881962756852635563460619766590954803120561208030257182221114352229473456097951851918259489002873580288655312996014835794926628235159962246526301601145792914480978652943792550655327469894264412114046437577004003494544899966561219215965182856688524291582414000682268650418290997310061276381862078816094413260211019344907987590937583477576345173034588614141270389089031449926382660021277985755407644617675200500692000050354603220020602415161004921688710285174103807248055220174356371687057928750110897792504715850260753310314444059580014461559608624957585053786046808155318622644710711685395183456070908566590289274068971402845102288476772931390206080677131182659709737668458717908315728104560749177480656715654276957054112988163877552799363136546240197784716230848559047781085848193176295136817262833962903361673669944985955501034114096633163271843212043957723721793477164908924130000519011200135179161857961316845209519310986700309848490993991348800912251729401014248521759184468794859639354698085713881943272127357317488541739974876821977982540807755489573259878390119279507303326635704734954005807798434027077173608707590346656292595532118799151595780502092372040886810608304649925146426640385064004591295202119277545772672526626921515552020698539247934712169688637197584190992530337630711625565759321217595161674977317973545557712004939540977501200103411571631075226230925666410170467166331821268733397659595823150597188962126080344183753208671502750092379339256764685971839582382879895100767669538381203203979569363534811928722609351352854979829204378484574590273463843384611674254217689626652242407882076286142455325544389667121585238118084458028890733689490156768978291884320725624856478431171396501060303326373806819695447074236560782109145217915044725433821149356958352508634102520608276719664355216004953988206104346754667457241716318563394789105980784694114939391007565648278259008705315909587909839565545554006139899668148888519369874981338542180067860549743116979011703699969280450987812401269647853071348839836949215768366358918151227992118072307219152512024864517208147003814567941361398138259448067642717454539567582995004744254263749852349012643460626403047103341607448300418203764303648198658126999690740095320779481247508515858621412520149060768723456496497815491100399966997160106597392121007661507109759454105020751028558239266854291758407842494719298190270390490023135414326473658102399558654194225278037216071983635454189251794807485734543484548152393718431643793070818821868596155205849235008885491830900354877152591083351693138401265808426856923213926891371636271063395117997410282539906840835101206614306207298164492531050983933729018460769648419045240372605945343203888807811995081937078613334120888753878430437067869439095428440604620086291146030394758918688563471698010258487467410642088092309899599152985789495808159070117818491751642895422846302462678603902414233333221828477142626269412728784053259121078413138120547435458035151168550893420405256922104813853825841120018641405710933942841621216709711796362421065481965599137215578565193766164466548376487575860568742534443500005795646033168638215669246214114426495482565454601601904250956526685404991184012497608335047314124196208532243685646052159354214820468919150291409846336493329514354631459689323059914645147663504998629110950185489572875461234834296322348390710148368479253141484161982778501422876730569686536730801931134712009017556883342086866497843100715020204127315845887719080598012406491629669578015655333263293578244286300249527795747593034691795014391269180431324537812132459298829749363979756729175330249592912302989514259342263265701249350309996767608348337649614430012058757815510142550416617688079968410898507450470152621593176163972102325230087152243137283769875671146475290404379875976799952486940961630873395623181460604870901679144554748189146568769345694050184966610624717287111131147373252292605699441067382950491180771832977523345142823712599146802216557477043799509261075610091421226933559516825739051083105453572940553678063020125401057204328296295788369522099624728986866208513161433754109252252650848370213587858423609369880267662881426221611779100890002631125927570513201994634482860609146071985013540797329791859873716319002436237936585890986681215821767688307457651055408247350355832676381910880517518232212555572193309845247883805791098242050236568325192992948370191637314893771276347485713739330406789175030151982211208800067172913649289576093507424837431927112164100656473372998329810804037728431204789583144562956160128078758438081093370020392213282639668526736941948561356136031571103269963877893294559849605365780682723076945880762337807679067719921186397601097841885673208523792066305870479682393282415393388181178211591038006235432720606958944089252240070651155137899584409514497352583998093277895972072014971831306198402640079676399950004320708129217084877706067243343085201193000389000162448077158124961101746050134324046573955093826581298192313749773647416121958680192683074119815392728509370474384826185482814703247263286058411685351419444629710346193370780513291879120166555466685383740466604057208122166413890454922498955445413573772924165801104264834760060619293778520625414788227954941566215321970048407889415647918517638316047657278945759972115360750980675296290978851976029755101135498729916431448015633072168047051637725682240648564816691401438274812568695202446457528087024885420753616072348625356145848437796100539231052935218480609357755054504008924082761667595958814179921807972003422035364277647196343089600381869681465083588599694575386602289128484392673110841496608341898532817959245414782941182420501977080099606381466403641606936078217006897607283443490790959045841467609566976995441435864070837820348118087010210416665595600636444694421507494741190038247115814106990591233343841684585187340116142578161985345465832052015296548504959423058921871291779623244628706932344865123540298483742704902698293876241285114270458087143558576791285462305711582950906285759345668874987927640526512042152848413739036592060570656716318580869795242343611277915359946133081899678132712053560482549193371311180736058956452687737824053099482703415058236432241083827787822046202725698596703464556054394657826149086802468785905736626065040070289605123730543475520555936290633102486925227258300492143833703562833848006742459458861931836256506932868586214251624578305774072908716395346092765479053682099843746462533383067641490816762600914328357397990378422413619065332092064584544716113618732731675199723814482594652881682105709336571889231102529253619937041838106205073248018192739354806759238384712934668410402455752250842760094573414687372264993881411638467770871298704009778735299317469856665822808054938284835530377215637680301519435599063812747380370089371950844855939440351844544801117567982617564529165521228714694478335066983156003812167104865852657366192046088155148220275910723381735061373630267793553859808159418639153034399824994679722452389466982142507130811267132404628983646998645737207791811787804091613071293143022111008797299168083899857168915386182275847076474895390725841303305676482885396014004339855015409693328077353427925650193094104374870660293730664679689484009640907653688176176104724717058752385359338787288044983323856718150548773325192309670103961531338897427895787482489094283929033005461027325517574359589409665140515631215129810509617087786481648704538612464144712322826297162521043159463697056995788995707223274268053309316658993781043917905729374244771370362888636734614794487720100938464977849935463267166560952479158159812625637826179946980359163955924608470545717350465953880928263481193513221250828686479797627400157738833979770965377170735796024057168111689961079938977727863946777620008989799278526032040620776294513538836139699431377265259281809458999905135430191973991363399510549788483227031195793648963605824379289329434670862838988205989423405087342557939593972204310234513542993289882042762119942643310421065200342345277267898531038463896969630487088019831451402937365799312703774316754943180785021841325983514113403148577517789764601531136413855671048239522892265388130223804144338668668260145441785018798217540155031417877490130528945300828029419923193506580420730491833606225257884756412118513374262200713756202278217582055454586042593532259114081134975726566703924184681436434980114819412073344963497290580944712803044016876218215933449969913204420215554838916780777146135189082057890523284162471976767288007746497789106204535569752440724140379412944906944273336890087973437199396031970361364146288454713706430537058934950227701737494092451066130847937951145630473030019147972262103244644152472425916213964607189732108174411272433179728904819706462751841921145263406642522666185508066595817418239805779422255684851961150654709721154411810158584110058526985427252259622134020989252820779832721098395563013542267539976968838690654947729946376058889472605383328360245175655081252533821339055057673547608949746620440730159416703883056180340560726207922178638885190987460460595800975430644290650037974071309505374617225251743438457109868771624480566556695374435828216646523369444378148425625287933297049308095845634406234318899838886728793702943573946235603811729682543260210417605287518454927611887675110077986172927049517183919138230801730424605414911188132538929126437667453803118485790155844753041194079246628331478079011855735143668076982004511859985813786327342030666493759397115476558514735065354602988235149959945012107872865655626569995319110061041855578421395691374871846008959989310736712945062672003440258988716953024462237927630502623800720821508269859702176003918169490279117554394371490839759618968446027858131858459893974748518534313330430018839876672496770482984035896440886546882844871423357943571414147490731915668655684700661669559070470703303334846208916350246649845678894094756185292613160901306693291822678611048897958012833839174330461445692192643806326315387565233668553662291955572920732840116169815082391236928274744696327437235041745291096265077936845908528579968575163768889004423212044669360718032513673199371272912655616882776855849534747144033520907672591030353229182749235775837097041580564061755335658601022750557042413056125157251384147763994303668960734550049004660996979049192142677866627600749895534115710957965207853234283687732081516314930190765026866099450812806545922545125486943911095714297695711336836493382778077871551201757812999127840824181143902533097269874833405496904487119091512466741096245780836189029748014676665631123124700150936443915210362720570450356124909413929585851599089691161908610068779075153428779495396763286248829916678923731151265079697957895895290744888061069442228949398569902982293097804909959093504243726430546081535735230178608070513257337473594372450958418082344854118234905088145978614053648504761019544167894948089308928227695982950582207076729365511736392977227122970330444711577012639440231270527143043304040497394867109508015983314947700527280042538014651465789627047385402031388065092443263923609365543972765283765682105995154424424077748118297827458773205095760311124724274280391032830743791489173369632617595134225071454886524320848216290665721465802230191993480286459567351560559217689776858835435693028762414728985817889646706668992875065754641677520140239516936091725409215204983761152367121524161436921088405924168217564919398405144694051099760735295811818416384182596414042694514914465262013772883701137916793596576354421136042915499719158554519291694181801157751416133528880520280779619547919707794649880458542243102280482903587623010866798838449011970921339024993793445101387157719178834455497502405498938248601532057274285295890197002142052295958629716464756521298936612430773532011083776640855165515659208653353364939779405080315898823956974385934828314746592894828421294446684619813552955121919498195325284388273572176037603774766732944245647904449838884281228644195294510018242068769919403515003756607522596931203844678141424762587018674977486197754276778120568306215963157000735544300686780704988000778099597397008786642910807632844743825300709593301885818500441179087577914154593913437323701034969587117855494041310014055955572138368610111110097118426658892618695974289278206509917011105305703096338796466843091292935942039296037581691789921614899654514969127528307633674766001481500200361749715756702837340179812309335746004847144294903550513767064484050546331339383930664467632478148872423864571213135032154898271553449458030483697279264021434952983191681163267165867398706095745495520286703956674890737819861710857619965593471454092061320108143044242826876896462943591391438229691295792465461535114159323773611853261544848139181495533164889661714255840254063703340857425198638913578364898712135970487285242913834306093268080979530621378246748566452819629881404743595330013345193417600948605325848815465842779511843717366659905485803920788556671167687990743970579717461461228817003543352702994402822323857637633916631865919855513315631730788954094125332322176135487596587863612370056958844400598492564568168687504095199904175350712890329026119348007736158858839138708848248056312219761910120302256626494334326369856624396742272175289816591289738758354101900148351824245355190819522628848582941986400654655456337306776321748591591040299910534643744317210660132397297748883061352508784169696946678949533487332282095164360138526965652075311896829260675507274108266642576497278046059115309259002703686875553343112229754738366873598163782859352300947061990348153470554753014374648176922501612079172900159730411508368397223366171454165456305817239839192703715855299597518400834519561118889604904783272514321208674008498623111908082876558519226290272542704095003674112468433377328416479234627632137374684279365062075663616469482833309439437572539481187101267300762492679987623701348090328949101478111306546884608746080894970171099720004249159135000723667799026388293398788838271156111606241217858193599129676555542231481010880087177380002236432262258769626322720894961709993148938335784717713663776844679881405312302026421465628924583046181376962644150618406382369829683409798122122701516675541857322797438392636902151892175320664030637233913993919384755324790806641415166340324784669189164920556214871438777590415205096017132885967834397826303342061238170778898717583628092322021139958063572931126327307217384931730376115273439185920136184385642335983995440744665856147066875559400038640023401440328068650684479844634109922646639718178895676460047454940556288621317950803731130892133180256734007788848760288950437044873457700427268273321861773662744595267436574813086870692028160898733163824474150354694910762909178096302120607135139853788531190782875146110662423328213588885957228860968827128238466727290346630544575828958239087515797642717282649113088426983548851632585012782772922196121402949078904997679585592859480781234705697891635160890863362289747578282153703566437454678365325218575114078914149220296619765489436414204631748065584823227254686541121810502955126422760113298744688355516249628554021215162543879839984461670446865718292157267530583762155949023428105462162095317041581742356842576610744297710372483320413055290966634861943234140691428954722183430605375948792717024479778395893863259257359529301652361316405223592981112176977602638476968567815569728307053930745802005297706674754714292690248827588647842227066470312629603661635908275503264023114290737191160308054619628878082992709520819933291695168860283261957089876374825772202788038218079421441212653586665562298788110697310038523689682835587217435428136544885016590175246889274849062765456788451668517223836192220842456559957713042943002288443578060186101567274931664153725917348697276703897701351505579854671653064197549146862977362619088671493945230062002048015074672525210785566100864778451291007405561856399901690555663022901695105613084518872690152341821225392821591104696729639575287137497435612343842738776495295383712167080851979299343144819759381540878228853552471933001394813391248482893773317183764042677410326616482677170450594620224439137387454734208722830585912804111291583374460682249584596551663465669259537987230747981693977513878844042164137464937418424884703138095461014478434543414416457163387149781983329100444733811380634026673846621682382300031603947385628969533499535090790999017757108994234847985436771886262951776081922218579296908149086706634757171153670752291142778425529329015427352460827135295619329524953747929791047606265369746307370156288438101531162930754594872381147294836761999363117583503386053388077925164657007157507384962317593576006797839711082112795030273149687385973006931378970998799295602588571910826414932230626557249743068558134045377912914107208212950760862170047484477289256318819389638850077434286417297466751063067011135216972819098791314150223458319754687562417991206431418652422419037562972954905657212514089115760126351849952130492241690510692868483112218591710721277571178632927775704001217163956187810288655840493142709017265726199070411038439516690084697967091261781770421176470918223557370323955713902144140578757745110729623978215569167654358823169469222568778845630238128756422633762511081666771999980060410723541711602394072073058649358824305865118867429317350612802707377641492366747960012781888927170144456704507255268117776730810304812137735596868947603245669838782275862722777895331319639772742522186975860950667337102086465384595153111321573593548941298562969636840476264685195634689917395243667694334573221746916657989779334695353718811766112926768734291203207521261613238635186685282671502125196484820858579025636566765874622868336808435676858463761161250036961783268614374843114337888562488442201525299202974608069386870284956181624911946945284251450608958846885811507562312566233331950406947693167325833721956841872983412887841220317620406322254805202763846234273577779462850697708631408642510901289009054733541311613165989226208385107280885306478079788374760581062217936074346455195789095700856098966696328516671757638603627983729434674287722347563821570762690165694279586558607561016394865536362942996288143603386410352684031329195912580294381045923593668993936636148433809562234608984968318723829410430672820575358978173359929248045393621509442801611880029657770571204397940950880942335795103601815303423324026680477611868701535790408480895338526631821964213586284782190898323083884302487275614383780829278036178804062635142368360938331338424982898194285679144320907394189059350099495727394567931018949698051870529368290755441693428855441811026892632391875818879109526795191649262447305180856850057737107866415827251112044580641249938147773052062908398617121746304223276431223896030691798252933397763747333536693455851104181487958880699663086962265473107380520789111030283299280023627775572752881420738850155055623030523706248813010252726958168022645335422780268685654129449583705951786382837324162747260120032742404500511717420591246731854504333474820800934170964024086050191099188088325089692228247645998664145546752949749840861681666831392748235181923465115565743649705136896474355964048718791761629768079311096333456719018224386737563572868814413847326693848318723084166700306468709124285684337142850468199463524779600778867513034251921984980947621509903219755772431271033115924560584471480591003211358875305065429105512231210966860952037855179310027367768603288864863517223843600708640516407733148658920296284119951925234366122470130631412869574514956249366641796375832029785764714716967313232638883402249807562311746131177980446907623984765360568867412031589424813151411796773062420167886279748644467429821051961089565689075088262290551296717314171036862621625569973560592655612086288391474908378887132974812539815963938196638973880544433669110941691711475805382459219959103755640488729089931103727047518270032602442225884729456090532453799769621619877529512052711262444872625934051665528686265081538031766232625857291665730495157368657965029721800615431805184703077001503994587480938150964347371772923515629704569392764682079974214508210356860642756414500974987872429699559135608706491552513906062130821299154860568153218670560299207754764987198443336325380797599702703549695594306119711538151896516179567118725652679391620766975757521343534954097477573349007841269311875743308786867714654996570445670990782575093673686096772994384033418598036832502535050241081450530532742933916684111273813064279396793687533649592379773349970391532290413744899688825270365153819408996445742263337119141838032195195968379412953089195648542250153677017102908438322752217929365158038570114345965275231002785599086889513126635597796367046445765691396843925576419213249874836133450780232808359399922796369991245266212952581856829360780662058796156298776027908287658424033570355018802711628179990327085196777067515036129491463216280941011973689486502577388875252296444017329143974690103514464176093559250818435351458967131478239423296129918723920353684073589897339381855130452460028061001863000153807949470544988546703354386847668847694487834972932468737677997012150030348848796336195385519831339986186465936426993061621099484077393585461278581988041185619554776440593479031137563971569665267330014088465868036865701761214729099291064636529708187605958837667799400605011382524850171744422221276421878756344510504294772923311671323046135342232648834081605659624299041072003565017647889555830563667813842079017225560167557705080012405590041840814971125430697183257682662285786854671495625351559569375017744771404939055297560917122140120657619176708885568516150520151427099911071061384383987799972500707005702821384778108175465909020013329638626800470695963936685925961211251481937074785339443312526749861134689088592369298663308326311832799071620310055831618017081029297858905518720875332503548686206403907945459498642004927373263591862354511245626261620077612407862709633687821404795519018823819850261854143755163020300134625993056065245544562803921495858322469518292353084320836044213618350984675058324314978973339277278881938426636783466285017426324146189513649016711616174485102489305372006622443880790125734667243323248941731771063879526093255281877202180087561886885566832431821692771154133628765363081599820808441325292290681160582750677228886508410424775756971059679796914846888460947242985834485700074401242358909881368016363443760159930081487070179945367529243618634447797979363872544098013309726774530185687071123759450612247759744475455929708871029632037470385739328798041842942622817390223997730724087038570253260938244773493131180962212758175225050135227387874215308957875961376043062939886241785690937426620490566542513641594082569303156941641707584925833775427164655030858046750250854577623921671717641070930015730036864734630390063192548219172956437676416623012735446902130105258215555173357046321226162013463773413570125649576576644820857349347736254356856529531764395423771103530060542113681953054639671798882990115265161184733320397763705660348179484515926800028686625424909205854974147183537640391254050800816455829139308949358991424533649396806572576361706670177380576358305817952317871152826619327741539072361728993643408124898827271369404328376714081468665856865949679689688689197752696434593081548793427467320111136417584267004350707087569255405893234214995628686154083200101718547436455984327055271315486799276669207857924993330115569962629514321219239726231675969776616252849375445069760415608052645492294894368261776491487601076742999392524018481815842643571560507053411850899790956511188542383051665279581520476219509534827335847594734410571501428816952319591045180527881036402740123699552253773536548426778732648127136495007293577029546072427367395966919384846731562451003619884806194772340914445116293110783781110512969361084795192990321259754592731769492489829281457930235267637121143431085675077589651513445399943812486494959790952167689704764589318268267410015323958365611775332917939977121012280403078715394701059374655922168362946155710893463096889001004521931409602092813727417811819016257068487057637619071379148292821444945237003236932618930514267128410966673606583605046551540753776359792347462866048398790844460201932388989714608634643051539388020298834502100114987380379835387581967353313202901087562538573887730946781348516001684982961255442264222035883241059933223684021432846928513706842957402710715643004852078597221439412558388711555675572811284856699063339034022254261912296345718726420275434204202656992253489522349103952239447586513534540553469792189780656744678592352652485212714442666666644219933667936581209814272834501923492371513542063807715124297255248558354317677082683415183639356077018460761532793702770228269242409261991334510307852972261113340317652793268984149289458198717715223886248882419752483022374658131100453875137542295696620145201728402604470789266193569481848210125810040368982040223411800757316541483408205812443308192430810675254921710865611330934952508599653295360941132159086373800707437127325440293701233829002059896731479890762802789466394624248209260054433622330413263702812136393448497555277783778122589411101995480214058328122094143671141643837210832268374240635532603179042003325471801901525175195621274621502886900332024745725800944863451870447580572991517810949373193483344790533017708857749900000481091660666129653725282002622276935980243256736602999658372467346276238182881437726134200847766188887866223140703858802145312212222250294485148173507586392858952326381637897543568130719155988576902635576484705810624765684037950479016494979120466278104436438040769599205458470749045546169351381625435476070365733750415249173386066444965861138473904925937207822308485780723260286738929309179668435260922592562921651126268856118333353872265180852355604537102507472727705168249979846908433082586573204052241687459017977920214371923529000474994295883354564928137710107020812954620175286071627727401701935520506404284170581737849728300773625878792328644732496430339939900577164000815597527461820895347464110720357357140652477825576161174645637367236939720194683451773976618868949283570266745778699084296116140318144068849813719809281232402816180948453397600751377944797965656710187411792101252174907108999278417564885128680565485721001627146053570133499302772304428625319262597271619860494963264878133752104058081583742285486939518322751847629227301334246080620238645150350567244359334258355968144420300056215675088929747962812506051405920194913740604795404211453352783024947208499820707884571571174575283258309480587510151209983370932557678306997687604321681007738966772758853501502334537549085667625004709029743390130099570779525392919838286748996514648757504201127301403087572652173057705141767869226061164251219196383669322072699220545839874091016420317489300280179924411609780960099125513685429465363824730661421823814364640814535241514373921635629544152022841800363792388927341834544650033312783718762814427661649138231954594887450952162541133793928678594542015582482759804736705923278086600481375084409936957176629905700382122680164584741699291443575567448473820653403441919992290383569183373871101228954060509730343507404653014889054170218764765500018911814521858971683241568107385419390473284241313701295643332803409398036441229478446969158782558871086682674524354342433673813215959079820585147281409981249330568847297627434373639359130061622150020097667795284688677294968438908020225743475559624046570030579564185362447811580088227371249369931717169808606657467751020767634730362318479164106198420839708392799319416363334568215763462899469505832744768293273912273835777579888577356994395056259201442584618370923360412485328367940305600845510019481305458933513731368785464286564565081557174816901921899844819236011270515399407335822773131211573306229295902382456153809884409243210109849629831167528385031213633696366736582597759789677736714168866062953532701135843921637967822210362036777781344694870816591949906234009797266978630680225003531059963602397541063590821479987223000992704804686691901393795912548202570718323003016459103134904594573548854714549384889442025003952309448141843705740114410109656395042702229420991488252279199599210613642303071532397770773795999922210356888887612807050136193012750199389756068875848377249805241732598774075444753117792545084843334447617330746230776872676708862338686028818254267373744337541392553408421289327323307943026712472324979204103978668021045959908122240007029289646878940328067681912588676296082294149048735886561476238131561014476724204105864142327562800131747460655349380071856930019436337834011573223166486090017354386619598071164273993775353144095932427879313011516198269388825784860425229275663841613543328768001717912218898960538038972761268135229093639174894313010860596252807841877141030168088192775036806095886893266375966822794628542117277629436498903426276392795871587907766337479359896737721553307886345852199143911355476109960618174197099107836342396742782667562528981268723328699450517852465903510522451390639322008824477370631420129933850427529640419527722004897952420641435113538398973240842597833449013313482547175339467937913156127645800382973305312475415050766643221519336779636612747418518942284124498367369244070332035824888678779437264346088518571094240964399106268490452616487284190927365524822354838356973263022388047681716782250800116476239350236623324118926020089554418584642529611704667483725697108632381100665729993690872813373442807657276947235803323475923238921101122376721013840464139961481705806428962766272696307763382425920215136406620203983136878738437953461719948662428932251622604543049600886190870569043435455313085913740622938789856333418074915043200605126727419485489363963264586821702749029984055072962339330761402154435932661594333126170328973870099827306650860856966741225037868927026877316648002895181525836508213129092089111453919258132958239365323382775739940293515627496392439823297033864244929223222575503612332157877752831115896868820467164885440168818137078328240351244423235251346455025940590870984150961087405878058089556382857972669639859304618981400261891367359163951641921955698292532112642746659786355616137970552862331842037526507792775343919959162390955473576560007113297360852385784339722326944907115410222261928859868299886119211879707738762585419240434666527912159630372693502138871836922579629786426000864168327284285091318986852260044646074550856442169842644103405831559714391217930034358958403396482499989527886197292953845324328133373918147735557386402525669177155947126966373810858154445497476668628784635196206133174368429394775467797029116504861778322156304394325683246706053494762613965736754009735261053145578396041023872288576637839109476274391244785507315866888594633055234690088510095843695280494183322791933809101810427062579539997454039102492876450958092908317242220539941790746935546123725781924966756534337849996078091384940938773726561230596935972707590498033978436727924528236496813942720700735405437859594597895591450091759841159907761414157718881148121748213839296807387227147995014975247152849941959035025542940042799032861571782876875140027865472402121498018161647900050944557267099862684806882095871038017973021217906990222423697027325791353226648376498690920682955992722431155094402320433436549831277992563867551429869967405283852700308832117930874562602933918335982443816412694848431856321669427958572048747169803251928702989392938880209116891954809706288227089794120817922149575646478312223899675338593827223159072544764735342294628263397169719431582200915462411491069254997735910713798126306923390935011036673485537155223194242657793805808518763323494456828428757486184510063247595571455827870655836334387714999400399339172334873291448554780051974876666269310496006110489823283070410951786713090823093948189822594149029012397167397954148106133858372870245298653087985192248838750128152754206623715237730450138295630328227971415909921872243019001976284744132519693036385220575525989951388931793095264973360892961241322324310271155121821703595316920457525059247756194316004303775230918966952387775280171712257921505117806380649618168166192280888644391293348037634754085290083995739960722295253695331838091743331940349725629123503768620823582754066074356180924954410489241178699673030521389767734818120139957726003288543540885711572132268086811441526258749527425452905013595099521995445681090232899700513492115862254406858899767512693755060724122573315023932625236106287453469700571438640899770097527692640897587665208811037828515379824143632241460907331416430233113063779962832162977814668291612644484797399864981475156492715916262239160850136287242679996346812004307063284208414145057265117145490722479809312750804453797388736276873088932875883639545404349349928289524747704009701965771739979695072209098375405188888244731047661052593308321898266811197506417159774412551779632498297222088240825892280997699672370368332386727878472226267726144826596328967779546354065324547800176836574547987736720818338481461060654727518916021654770472192965656587864450839281615115402735418191854790296086884100667759097084158331216462819103363041531209056091907298155120510799821145728332388990735257941522195384853027217713888614362673393775552258800817945895690897279247322741578231401142751372170599247754001588094707041131141176795038312438476285603337743968762685825307208130332866839016657304263143406447327064303659849183574117306802725326940047094288415338953852714930564653983020139089376511233534809228948501808074706604799660170508750861984970469866840152291610092674216175456427689346086780726090444412765854642525475850124787470685752617455636510271480631806616082742815284446613715241794926225954220933089408033897430632042932242083239309276915183436677166012900810171515192366228623565129985888645567961362983504371971988532764616965060746903437119148785169679702163899826329901793778182818025855961424930905651838256734611794688423725850566497113048308290334578081294064019114677843427246003730226203060183660585474603729659535186183699101705224566588151017570242366202518453179304420838725924898469806507471320920303722464010219246308075929795176247629735369492955920752222825934256788410624412578149385845106308539451506288221059866286915418712783491827397364025417243355339031574529328125769758243151635947992487056766590033634491422996643331341618039979300362149692755543637972154541035261312640598878569710056042389963262846693923318917660724358612666948707200092049429869223058870042150134361114348392339423318045296389138003779139978630643090401642140793836945451788052866918314475059703502038554783384046726148984969671641591569866406909216377733874438148780472214062780333263711557783811119579155480938112949162916917012930067554599319201166760876967314213169940792273946802028833283460753062067665542119269926801050862074126505573700993367395034693089749660536645794557027595235637885766333310376617975046475993262925978735893595891970090249282605867654207017429967125040393413556512146393924166638105920918075837160092742175678239042600840373958322007081909316338711002198836851479066649883527246701695667333241262401862960167204267028771972140342021374007434636311429884818354521874445049869699042504194317508454541162128351942367820593471526404336005304384685904021796232158082459019635565788384083321322922779635443682951774377047554632583473015321173500254002892131655034448960935829436276591585164505165585979345482196337879554514898582379684097780594924392847805367013307948647226892562299867098415573497833272402469474327463254686822511421915831443174815146046519777656951214744288507779681281359135115521668835772883390483277596330899367917655723521507203497068087452403961853956202375742146218749313509667802627586707930169674063993620714682190189807650984651731335448432511915731774801901920923293398628639517141466573116801981033799542893002289791565705837238062283866028215289737835177484403807554900307932829173409131349171576887000847481685762073012477548603846149191058270818853425902460394259444386699673391915129506926215510885310544712765075265654277415373374081513529226189244793845107572894576881078071942782053177304305576525433934590729876218935869356595466211296610138878620568115184140685474256143374062866336730802518689506358831156143286792087784480726557679101002906312240753681519738936960021365827477749811587783874817975874503146701448705854778098945356983959719767637061128096748272292685577619638420839862012592533868751107032754981831999319350767937142585412052929648100063465748799354459894447978594997665486800968421872466602662704906003729240604065866358847772829201169060441382436820845704723015883053106133531101883283209068078918510326174130862317651536882769615804749168018305971489441627716306288533171093101673543497809896917594864022865957426413934680081784572114857564773800953268469572187445835885336461721162158345548528511651183162035197340198891516062425994869588895859464463150424167576106517002164086072826134734600104986771104217740364705245357432514651517593514147225978739342667280665036152811312044440075632498607337050771905334107849349083758306921642335507556982993538969090277166856211682214756411497443067645376049590925041717093177940568634514372609473397916732004462143778272242355117103185353123377169211149431472393932381043940826961012719329673804281077096179629099244248884022934784052508938058143978976613047823715018229318412997134261581257496524983936531985653307847254734550586372161890321848669649893567138100560077376862196329680123199563143415212483863175061032034724865370589830188172369811077418876164303495141882844419819580002546289840480665752635977355473863862537942188534850189631773206958025617060881569268028343211505229751052686050394230529559102411920578672155182186052776359881478483747787716875153856350770920785704841831313059007781362213971071694512265191356623185636545117108289700106783597434001079442930372434302805778165643774747729811290051915010700860667072273836939483904953218938986370537898043772224746401582757046854943497453555888087916866631630849579481507046711870334317871718303948031481982269784095844298192978921733406905635638490333908145941626573109771450888794386011762493212539067998560932253071444516099963084927276235214951058577726471328902679959127713959784558748843992335374500363261442991310140683283661513857720312079344062170398507407566688115641582865950132699890434604832430873212062151672087393997845678604288356644471270451563021214579145701539626671309719707395785440763440580311637886624320924973870191317399780350330284777031166450075445308018128433826195414692785383893103101121469763364478422844836867543255149079569407787671099546448828583680200865868988383786325071718079599107634391249247219801595247964650381459182914103614396814281910679168838737660236179921956292627828952183077835306954471231690788601566277840001299832261700779159055501774736092440899930827938637071755115384969626442532880664423783107813416626518204986400143102584419744991065748979802917677651668804067865558143327145292559855006562156717512198117041876421242018063007871403799091609010955846194210666929696878873626892994057003325797669491589751387614067530934690207098031278774749887691191428528290930638364257843277642720657622044953853949588460017301218162111313820101948233786446019565159318762161508813175800752678754283260070341804408191055593909297517903386694316308505134916961928517309116574516379851596390576145692486659178327895223079678995777879897959044454279232966025059011062950284517400237129415931328393460969097610407474573973324915772112609683087687917896094937339678081691982853862731075409818458169866843808835895367126960425045171009336542590736067094490929562350462794447743225667793935232261888262251822734290324429014999526841382219387688493303503252015704461870014901158592449645199006040449545059325802416518483293543215293216535778285987039276295121898568368424076564148566362322059514462410073608738325155845579064517003527939796841575313975428925880476258568364291383612563159906204747536572565231359497906892545823095008758977340523064196434813658923114509399059140491296820431184752921417837170249649353339610836727266746628715287463835613513041741450916637051494139726577783983623585689582387593335412299789520122207154063110653582475156096404230120202643407501702485735571300030244540731283062942334383019827810230514616279655547659019977741920266629663647048610180750517769610578161341072741239452201253582761259491230966473411040140637694707569531506917378223187608385308117785208727385861835516427643848698914132369721094910410415989330159522163629133423392547380129839618786102897020806928733417746730759490452505344758313595227313880183381445469557450774880127638093782138078016528660459382486020327676182433874887699231746668471924865857123308554963625764989053631274297339371832843657823749816892606200326959722490876039822995232087447990551948865661278100765374127360662165234025382594435781864694042669841586256879716687682003217543162702800870782905139293438631358991272282830978144048064573383551400212111395256456031666982605234243353405518911384495497381799125616445968571767413789020617585603217375123046861503674535618002379108149304740284102255526041471252811127343969781843996424863885094148501920657083094481487083475121175096739368280904334708181183700298384442956691151251551304045472508327847764449709077105541069187972945177497182706783113500161087280573591021507416218830694546571832023384332596374903387791801169324567099436878489009081056317163638496536089366464073961482886156954676569279290530464808386472197532465534523432949598829954944659348015967161317224052706867244026101907736627686451636859036720524626705948860860780897763126816833293365798012376081697620182169465246064102189442233658916394447397246286384614589109032710998054294114233101669382745212748744442482633728122441836141863443894170976085162354740446610751559084819570000840558369533417657042690693514727461566769134510171355209594782175553640686183582643739852413016279311221408127288589536154177025833848205912646977645771111317889197387269258897588388133983819542938403205269045447215483155327590088964537778468644293062535584282989096519579899604166291917482267980196248328386039674180409522993504511058229310725414209499866810440475702620216466752616433263338613902546927295427184870269037699234992144897176129259630188999064760070574561528547231536667883914532842248491089115918992091241569413139611315843495766677049542481848657392197857668542798100616217835923384909072686383010558435539341258555388919876841994636781166513645210947757173713283826032970248003319429079607027423711528524706381017359977272387374417808541584137390876031729630333484682126327510804850778957873670002265936974138147802433984815218004166248693276212836880742478524046649541011935372850926395780821388436755534263660219431785698558171610177393155919759513156055225015517115130396500860109616194358819630005270727866613440718059819736720736665324170477497293600528061465071098046792179356812575629691440609961202778490783105584816622631336728559086430747940789059248874580962915740640435203269512810404495068194186733982649341140525182208580043511749925549425510951563247237699903888639444204533378004246067757250582529437575076925643306341063976790602356641343627062662806369098859554747861680211415737863865869978236236203477612475419144774227597300268013704321384511740030013808604101076298621740394440046199915473149301633305782773678912149185066727456178135987963495166733027194131884719098667575852436160294880945451342437027240155299939371456311195039473666429224633253099879510292301213849431170160549492247427147738142589667862465981884640860622346467184384334441322725409004209685949765210964151370874242170185317766518528510546270474094257010846378695629000238052054509112635963057831197577149488530221031330664381051433805060160289073098845484335266491878155850742633315836698863350373435083596256983530317756908002136378368243656217781350414452393110734577500551654192173179470622703945585292909897158719995582826829490682796757056894285563928857020480788772034046140350401184269505121380068564001461606553286128400407236281887561625581257349427258581611514837189923184209250935249745160308957414199244324934784799556190506728003900074381846679749592473135710603330621340326259887297865434903445445421635287040711883535866801141669817522508620467291324609860191400284710021423216194422921101790573150278954837566117067283377216141584185397893793410930844988914739912262300744500194960404539655905278005281799243509897357290687104556244584013402738699708737013651490213800201861586067888268992926789355067245164927709362310025109118110623346348486655054907017471914382457950683651561244495826786227868390283854301029447951472531160457904000207731292779467386355962178342531096025254041797029719667838838967323339165737095210729519475530355705275957970089410616130411871002051560731950085252892995653062137558428944531475021200508339792739634245384712790177515570566305755487213586785890391368004697689572060327923389739301267968030381419103461301618215887282380547436500374426954445774193034579867069108399671519952478046328599030474385134891069361788220225618363582215522442544978826231533391583157731435686195060055187009468193471735715929594996973485435359882432838640235433149545737854603542896943693542238988005036457932443631959914153560118784122699422431820138144710754721233851997477211129322104938060629192507925498564318756136258234945727793027174062803404050089890649076426706127594367602760024018097948693003538263390749559093565064642647099023374191837789422756951413464772691739755559578800968942918102348640807095373433459043428567384938575568358975623860880443993765249496066176332775504909127971100244839940222012116455177556643545202904400225391020676641546443039778268521715410369204933357470328438645201797519896387825053560077831377791664674922896182724434377420639754799626449739090330634819959858149660527873405106409291200506539146299635868004001352650459490038130729821281007421571844603817110913193466881450301737219568201508066239731932437494640773914481921320465947329607799904393104183878209214407109056418810817697569380889816351839568005714798327968087400828449312787002310248991379579687600772836327401974539677371524888157518461265585754655744358031435245313112665046869013247174567228699839368846882906136892540327614618287671198877163875104253733659085314390638211503215396935599849889644070943076812507720213458294752688947401730697737995406144171399680634571795290018983989654781385257271223218151889764174833175858454633714827716032693147374847300538875350724651943096192294625462740877083506841882032074094809855372279857047334014782488589236718886829097821437267674169010724072122350816411097548778192962263394088308506266012243501973584567273984859426843356697928306874339979718269393754596854067454653153526061618734169643803731174007988001780599319765546629690438339619390720309910771447362339911038585513254080137389252718548187368834575341194774164544720391589662959051448805265334649817415286308137100670439395940585417744202541899060352230343285104332491082002420177695676323646588541725381383524682982092444052028179433373472015652680976482732722049138743224642032115496507359138347468677576041724830354080125439602826981829907842687068798755071747839959467379192995644203865416615873245858104968565731538447662733586195099614832083000462541774020647537458368864573938442364066674856241054967384459944381260090218416446963932031165480833189236652230553191359006317342048507727922398508146471857984626685863345507497103674472320948819862678552828727281330573425274614683785308116718726278405596877751944925004836572500785654486441499160182758494707672336239855451410436085451033168758577065157559244187435901447061152577503999829562375226142743010295000292116843490479203263496263125355696004998610418667935452391253575735462976781420934624756470734774352974063389264070412726995137811694420998172354082992482433419226372873322737848442850366815514588166604366485349919820117278026286188424791029681516529315210762853842776331321899412874597121244384431485616437784066061127943606933882800001137671261976192738362178482149612119140927631745919694373815350144263562473637264445236352933324619841628804274388787866982444772072301060913084037118958933917794833458554627594009238580435710451440020544604235430864382346781059569227630392798730584843555627351807120135214605011432576012832220668700744805461597748411763599523131758205597202990931416263236711009428181078057249540042003426173124431732967008402701126609122504524915860859859351781201914266127522194868901028829308683344843043021867565884371529368087725169944900495111051392259993428036491172814355019923316286449814962074675012224429831296509661573760167884238813529347597874810760289208152686037695602435672708989972367761717718014743666736466385149413478823633244177084779145810427359149104343336471425754833355315005304479373274572054594922738769720985573829977480961711298247299672470210947775632190368801778624317976406141650591845397861444594877751774106339987579803641190787419397051938190419391425947066298820709218004808906657680506795667067134420625337081006210734727249046043193446716068116964816453336839076303424771871576763705962746469099074256157638826698680899240180942951675053182648695091731130197575638201989473394579578819412662037841956784562908256064276472355422238919242241107938066128430093474422535193225833877097342282209877010391630483407105705762765139547088183653233187640551745305653521940487920309094785682386511948360909033986603550496350015178850848600063394465049433506861960117613036525577160693512178519095384284230171641000712415766805433651449109913268644634241984869382420497526483794563271763086357028244495467378472880889536801516283344173558705539009771779384296376133121833364668261530827504259310339896948022426685135792280486298577996236622657759996430155319750470542797578925086186666114956560267521380026635305026432261142198182491961013927048686156643351314319519344231244257780972645194304393070259338230269943995688688375656396732008549448266622918861635962173333064435472061643382692049069016361234913439760547918207439776265716402877217518698437546431352523901898610800794040233387487156392991851984231526105409734353944188931811125524288295779169315831497296173367582219803504614906521819342031654208055532400542165632500114342656996389150901720434487943889020035314045554747786008600608337879111749137254638055569922222860786249984333151527706270030067264737837157359475300256021447456662382661608162806777629755687384012253558704080677208485457020050892709340496639392867133553732525887919876833888487957570371266025891226988558140129131266796919905376672297290450295867624559858318560879686279487703447996257685172048768781565719395532033375059992523581455651756008912641409662442566285323003254055939899875020808092053662497707544395327449883548283357032496720709261793086777655930670734668057622235073576315183289209584881047096718564935934358243920399992685167647074763923280617322007309473529339490985016937262217913186115960018843237490242180526814595327039503562169516487782288417363982161247347203019673503363472017799917685535555055053151723654637572974328871506489103157977444041741151686343583780415995748272483865329689833993582203283953576280900658029388847528645507441495058554418577431370170012422689794069464005464701671233857289193811326322137291887525606529382551959114562240201489030687123839180081803288364918526604310906718526791561436735782149399728308826356230677121097957398371328348529965604529578371759719939356837850853294016592063698397771576595897205700489989020660495873286406174606078717407702594132429854273623561942939291161302067892177239849171698431807841254911410773134549937127295270657202693031833746389246785368261523265893750781368961498323853300338915874938695107407396959647838567849941137141067135442721528740011879164791481402760010805795652209396572678576223885918495913811667891925981320397646696496494190331431400068204305207007870583595902259593804627676560209264124060441663967110667345058228946775946178312972591728186506986522696191542220836165840387587555424718220769391014997168581417032151361486936008730824621465262399589770348212920873653613650298639114895717133886461583081903347992473521015484171038581887064972815183966139789670367574150552366558555031297752534665367393746193418159889523006301892862398425359864329679047105087640161931102795051876949972031708035923945234232377001585503524812020531044572198690980661360263170800444163952710346799601520179657756856225510613429334215105745459094662316010166379191890309530191800736204539042260037770288774370835726920316686916699634550520781508435724215271116638876516094143012711696623289771757203085448385408385766381810531893340791140989556689011439759731960893228755080957275490712178918183016608649584796988976496173343741687709798022037531693616166356590805856995640483249932959553711712906641422810214413464851335381629719958148029145174460160580154555929745497083945313785424037519463757903536345862617943385349479405606232577381603543135809483466951018313234201660840634534374692082405032745516480493727957828324428033867580353084280962087162208095007900997872389139286494442880635025885733411801631435275300134438542682835997642703834919602043920433573160538008885214446297089012012100258828516617746049851605843316154479585674083753156188215529936574941014082386941158053150923757953096277224277273733078398387471686371890156967152591223176620913413174829805831785889613868352483494175249106299255415265272159270726433202078946377232454848127883501593422754196580206857192182902091030207420292228994527472821900566442110315154691498868632411678819721963764026787867820981972645212800634967627337159601570177888086217415665581744973682192881241764858479250349708439660045595170386011336414784802690139660252144897994674739337328663768650016418038204089348328838436856499053826146057827522751235210400559016290619254768578018528082699135706714567824932140373090963271094243174492832393963573696878570820314306752959698123157342810034714409145775126754832780659661828505203032084483248690097058641169474057330616642559189363831321313650720923966279665348168076404075998448266333146230394223641666912338974906332648614846211990032744801342198362032694965611058915417226246340506669546886546665760386153065185524005753526745929268974750012156938915317193277621504165722294115429810290266017358023444963757730921896514346490855425643439722372945171768272307065160072027312526540052687820326081854610474756127971492162346988224304984018411882475322891141857727819543803906959359163658708263387850518928886546461117724261010333887230303155892543359921996772226222085976989264960534480659336826418737315308783252541260638511130177370834913806237327993789159495546070335088443407472973742187452489344390792344415353886752965470217682567637966686412370124965738413714043122185802743937523856763732630235924126524040461570496417747444195951490214608189191129107926996025267852298709380724830295894662698616589440430107267198095645720488095887586872711333902734879322981021024407932472709082734987249634132030371294079080996803094969316250798674637958469588322744599458652870185906009838891476294476580005442931356210404943323175431787103100793565607470888900509993847955626704559198104936188672963957190034328502970960914540547440937800703037513045135837503370353961406005769464201177909360589445783690423166400368864908981265127416581442726351280758402949300529241249027078746528907550052561900461495979195549321847736212811453070027959791191046200895548285756301716268221935142423927403923630731422170538738491742651029988479154573687971043630145185339375941420667058629881681918950780542782990498247507694031015236713525752669633103733120053417534272487104647833207927265179945252528121772695154722687206134178957095505639413463026368629460303562906685304790338267719870009430089560768581883299047874057915170799406164306820187141195866205700554060700239351610907757840097963728285437019076454187112933820149438119142086796521771981998973867392480683851578469565348952808724657636876257481230787017791108045800909455034597125549769848819960603305522680328504740943638603413509959550128322395289873787728093018598131341952359766010121143268392517300376093483181976334744845520304678024973436417353142607687266526694234891307381044932841661718294537274378287730747116938196330453588849471600261131951791088320901853603712725539766089027564303270728305981259960651906496208992630746183231554825170657130934800794053394888296696411698222546947143543401927917647100736914966572031468569646367254060985923990935468629442300845841620240979453312030090571261167017780681457765953298474820818028701244811208840174871121149909270534499757944081176110566477410053948051822855477650543973608271922106277783194619167207278108313446833571342551951098391779769222721375009700680750430709313787581228395947975639301539663368994706322319639587746662674742786211826921380735782689372261228043510452467979523381259475005645179464865372183130206277241520458579986561821344123072468985501380854473196968954856257799830795433707938018469132303711241065979742492941667003701320352887285502789650771362322291291047060700148069565135635597438688680521721705142362978911079629609089838192775545297105049498485974570386694401944402514136919419407135733407631108486253233757297887023180832029579267862904266313296337804958038666554933821966180801118613008590362710431332723663065277995045172188564704464466839946652655525575421990984363371152203143935574435550749395903837523143733289826873526959067811004273000982950992346308601633453814394275316443597649671430603736518606857096585739196654155165921995609894896248797924245868297998692324451913440158982490693190421691007151865775131856603100981817668079780939875642825113462389359716482520895441650308071171165342067364755126031475511178577845291050420387698176938546371983697399943149949671111424288709711063396627827389436163906901912960079964972866449582339408225986237240784183657961135373607931828748018764950685448698465734859188310484555696118669581664088208259850726589825463078433184602706870805881390643435702352446585236199956044827379366325786767634796487289953979364541589177143111134631627525402345195726949291964231513163565701979430893486726238430331712714173510988244739016524972546117403919926215561299445134850013497147300692094072784758524172184516451632768057291707036206236764484222532286348391691655633966768988704710740828884865486670586714677171018810840831193278270410438387330334101015814348461587273496320725554036455769016248514812494639930351466131526690124611734052351757508249483887098658125038989961557126648720607416660411087719926241963962556118707170898033355268002092721631827993007627333810473107161988226457735087211760696312085966120416414091008360256450708226299377304165742467311623755153764975028183740775123450950045114974539664923809595193100777979945194850955203001935017710422965071083016199872604054883572121777005370249549447580640794628393113182288203442259041631376981596440787072012104957187320240190662495838362243408186961441925196598192015218586896186582322656297110075422181310655368761285397265959346868739177700492838555247507522419837894543026868178566565309842972940108834447965979085254921740818281360439536686029123484780173892679978516536070407785123024853744035032036207293713549998371990602666932745924571673244374390726817942750020447963197211107347171813173162720411428479632668493996855193730441726425857710426998493153402892051834731544209183013674885681802847147911712989005157986455050438418301221797786663521759010912957526271803430739532219963969680914462457540555970210195510564019617343063946680258656477082087142220764408409141820895020307732252838030680663102291687398907547354517142989899182126516519756024730144926209745381708189605456403255113384220699188983658352513448779263902314540994620763027322821922209937949620379939012412821396589726432752329945932643224791521712832909455641623298551198086091790852154535659245624439894954136043779402108473896529301375545176206083999583403775723787910262127116406065833192002743869044162461818539985358089205793826857939723306094392392410602958952567288091646518153880532776426001274594537467962371117223302171156719208323103612739754663211238636559190944938459537892935149677872474326497942407700266521543670214816104925626061929752001471343665085383079514463946137823768003174072842045058871649411367917019977819330714208104639301069352855182471432661899653267968511901572676828555706879310241430336330821830685502690198266178179633353735345212617872691889774835123386768403095240065357846667394281268508862335931334216089038009318143070642291982700108203683635559301196919253828076944344889464062219197779636029726159555295741581478227101891031667065447469249831442262072049796101053951746987702567506463190816169639692871119335560329316570589862249426874069329896008148670115766644957890800579178850123588681533646395740379174814705991921787652967612510277515858375212180928427333407593794636680076584222028807715769065100732324167885037733256697356318633282791100339537561460419065901816879529409880569350370703229220040517930626059436660940909572981552510890613303778099712227333065808677244816181199476324799706201584628898298555633793331758025130172036094015492847776952398911653510543071276229256483010889410873323228010114594795459571361083606268426604322433125081363996185929473091799265479682933438236008017091198355608547126778371696139212063716298753095543649207026325198765759452658323803997729853650094914255402360992299373778059144262676456402487316549823050152126062994007910491427965386756945194078333632634778604842010124627152059706745080518926573838963492451213634150522224603269958551132992948839717138675197953951566128206527976553354836067573498538221999432348299374971492548550495859541377463882841673739341087552181276126916245496509552915597972401690646064968758700014024485446659902986840854041544381280251097176821640358722206221528746267925117612172646581782088531160532710768708327908271417982501952103326200280722691818304266528980899920170393820782405926547981663831864021484645706863873664057238877326115052674182601230217687611610402008698726015468041385489327493931361573914578310306205479848947943160555204896495306556701496873356075907165849326523507104197576494015478592946689726170487880677915212854045251871174405156555245458282372464907950000146086589086989339293272703488311688946021955092972386020813707904484527708384203054264654602384596392172921058535241578684097718649451557066224315692454070768309353837829979386648712955673983869813179068094050822784542087055240467590023514908465393122087240818913120101728923411287323835289950916638504038994123652764448268821025064015614449756698007486675279666410580562521394243568378551747875950600443532131155783625172793381359244800094107669251273981237878672980146190108047273969122810864002488679904107385279891694158964688293194478038404890814899323963817297408396268287335631425142804005369864978731121698399056255202232027495688789644749249997458205097476479010449103626411181469708147556037810550271579800323342221292401889266349316003050205316707305261720162013841922008346444053926710935029136114928815722076341763260269403052391254748305673263899580425997908449433210482852588066576736271314995009124607707915581197229562550780757284397572266388136261837284773641603757393150732563010083901485787008538762651672695527858209944832732454193571350139938653138878222526730955873866314683816089312051593642532304886615838967129643450028505507479969958649473111891580918847763404002133800504401755961561221993119349194099916671184061790419131815750274917890056060458551043303860464146175461356961362784410927911946610625543916381043632192958318509019120834556975823988991768515670635777919920778801989411251923148032322983118025250249281693078191912035215136471375806121298164431554527268622723211057874342654918667669369113244279076426270218785309731407621995818520191477627506476186138219926330048272244724863487954730097102962674565088536621847086674856780233541135986868540298529820415845834466445656324829267846011036994776474759563503847168592095364007122138473112367357189042229378876187997417467975291614581887501840868574435642921980614884373030583159112975258911910258326920572666288629160684631617813259311106904889614564428306857358449457156238285253814833958998561161649130441186042217197781588962742063606705791369942631922359666128983018597511419006706491603288920936920534903196019541566940965935096541837826129965296131793549388471916781391214485392566752752961264132146468120453194411842036889888775150915593210195724952165020431837099876441691461899368827634405662219452719953892845256571792827389813730087857479617565218213543422105144045579106867551951063316158417503844866376296586575959279904840896104207089212280424023370546799711408722518022860370311068424636164779185248613686787699389344019904499988705636828367031569048218569202455249994141897006766867285447324620011895509639631151106116076334525365673028373366917164126026814190661399340109330252465877242500734002270696118279278314441545354721265152085382052582871983864036763681211820886186885217723294888838144352839939229886336727636120932316602784183902598008952255197948836259879441177811136541330792986908838544592577814577039244886721975999519426261463823976896878587202068148313448857805719410309083760786572942816021628245298654506593439454115255540679652029462765900668009358228857187181322708984602816327320599711750620801053911562924723133055674223427120956724313043583648865497181421696303000248482773498979861386196411051771142562438401367124150378586191119792032212258386784701102515439970245248531089568898419949840083799554673677917044112889225461348190252927759137536979755404519679981030447033355618045238261936317655339847843502336250968542847366471153298726220519481965384157780360365833413546080726603097731644336581279557348371289351730961008417109793816926714613558097532483211897348850582008124158092417355085813482107427468321794641376353687359378747584690187078650588359819806198896553363162248727877750366113721125368113191505698869579218678588580056655903358187610676150187452323725065089455168641560904232633853751946901891176605972141463338547336262820711633189838067556520510604875031150801109704056501021871155984384157195625992027565520191965220269418531891254075677234848551598300948027063642245671113523885997269675703520665648689481015348458133888788154149374889034190183471544736664378163014940507207452988950537796388100299209727096515878470126420238432812407984501920501657171279827983957001729508666960903988371568643851098708231454810705091036532838374022052000619364011637061762272213516258119171487985244137010739834324624677865218174613211663288177462209954540621058165899923399622588190079939063223551976519117131266688667964312527864685763061421862394820167485985967370947665080890819899231523876820979191245711446332910682154174780333736835433485587503007587068193657277438910034937168320171057025869329436454608831419144644011193482024646770716659881370657081196862224167606922783279343641659222496703494220533155138252536730366889658977623193207987054975311805877897126409513595398161048216975950296725255934327142494529637452215883555967290761077866057589540100103783972592067392316505075945551735377685975122469549455174144663790760095772659410109141595441181713613112815942193437097945134404053784361548465440728918792145546684183392871814789203779062004985658929777099190901242871845609816467940523756380055652887159971093300346493511302912687552472401026825047216639138314811872184161425495475347942080088289588854303473403636552041641843238173829255092383667646832756159888710907738126608294271034418764860986589559985102674155527473061477549914411729445385766234031247709825237277802227250424566038808248005681575832079644700596628670140766205426772430158831293311069713665383072624661219387959648590860704396224637309519194850655638633327755963845128125706988302818869949525078553687996017695653822978844208388174815021653212346301181188084393377532375028383195424698198869589134109628455800537506718931069025687154480191159789278491123756186137181299812223300581665161486645154291168782650428828529977924082179396380385432482860287204428080114711938926008346431676876130080055747169195189052282923165842613735308856866753910251141898338040131922654289056989452574451304069849059029230082312901785282484202521684823090931117575655027909378860747541584160394073543258644505823735822699568795080043696694729570607369861485691532454212476644179638870467132313179423367537087355809554486066847647447509302857905671680132278357399429918470859695457241489775107336295054971095999295944904840407345370858628859604261304278853102405304994048101221157801255514566613399142525533333361308164471472999904619734466969180553995624997343062863225206521146745683003607946493205756712446244837471338079794685125325983424514184029748259413992903301369934783319084166316876511775982648882936641167705567101171779582354978383170787734217974677154978548086077093170775977551197493587189299282534890653533555871199760684650985697532334482566950474984816266242248927562686162485223825257170657443488616340917006507732342497309500924786447388256174920185985482674087942555621149151316922366157598936257855970371133164726972383997877034709288391460462152535056703983940029104812036187840592080175811823138576262315033461191445463307223982743641663135874804492930919408580080007092483793040038584019124355008933177354728399746029941680821165406807264720040261842413502185575655083711400123549130165314336407800364824390306176306441415537355956790419972792232970134803320319926856491270368611732843709982996435344831257946073491979273766060847978568580159623915342450371547199353571354324263481594682856102177149053843366798771915435464164216694875018700203487618184730960419447176204225529692985531799784393205352314516707577247377346073174579357432706604018325774201688932703670178632048091265469034100394432324964125879677016704084629740744160967148654664963147770146930481262938478368696741912248659198831793644980160841510767117316414204163363320966237251978331945668535232511915538543357992315527881791325792928983786436245014526295326056047566834405113813306677129591422124683024671921693944342894695530495779610965862251584352293524653873256726468389961745073742734624152831131019307864041627395111071557138447625870867910907091017245242028183016753924041734135949470663325810335528138462247061889011874503133095849966764054266443001757129068102482041538760840985230771900974578440885469320667907262975680046693855738919883472275283950374700120655440761911704879903628448111474566546717120595212219539947392554315379226232600069486234573041462319062260421590143873626675936416804919306729616175888256923098803526749542931837156026447038804141916976866991748489892687660577005412141773336848045104085663518249983354957105412343636763277787378428670287638770736063952451080457662621703446439770466715199565956326555048482403665050820052909551979504576564047508867186804104615196481890043626969987254207644561750792990203002416863409883537082987175903099300794256428375781663164987442183316403968804406848504203140832664878515321779714308952690261621400990542012218843944425968805164410424918936755604219666598533564851230913621049346470743510228504700642014130571700899905692830324733886765200521746034757226819184754905516323696502264220352254343667820709836563652414740497468839122453646885705633996947459215718719493174147038238656470377317477635131565295223209307474340285320927542315849432078924645524456712733079756383926388012940567132112245176877114768850200149490407255074269050202031305712544065037098838576039301787764381703111595115776131531422839280823462424698166277955180326548048910048305403209280138143881066125218067457037540302451997231891359782685411307887486532860367655800769784412331540820806648244971341984953100198920294969820668368548876633422570075104533594200407144944520047282571055551424657449895742236994032966819739521139385571513606002736696427358453036580793133554022989337320274734137318714361652922808415132122713802456576066086574713198061137395399757330111998980637340552002802152447656195248553819428963884979427375789752949234690477081392676807716767555649149251007295585504871508495244762182903074931313222440412720577252131716438026601485402842910374665473035748495724289826570141393282602436795207855711467979783570433829567519142163566144773143095745317678384453086052149391709058723329113211927107612577217173275118323301730528299381380216317073511554081811428932614284347572942425492082838277485947426499173768870818452842364843721042920344541013054442106842594742443559352251520201900387386325821301432131758860702005228635121552396988256421192814199190784672969784647747529956723418344139672503542383187348856312204146775324915431536491632887550473938130374342050653756870487497006327042313226162738033321361242284695138367427329413200955082770591107929246813217243608793825873862261886666564360527824504668544147302151878002598215594830841172988423281237882750774701557229491209282554569836004864102863847077483881378482660503595549404746740709828882714445161496057648337896242460375514536858336624831040573587647390858744823605860198755057304994556495766972731349947900457805062301603626387600824349279967068767486671373909980515318782465981248819490381846799209750164509078483377179536264967367288024448684066704787080391008215841547342724305692154927681318031768687598562126328293731481477593905199949856470391293623196895545665763351086143820455385003768184937851903240652308968733150209147498204209898425896019903469784768358798043849593791112385982100733658097364466876031288923751966826122404255795410631398932839231278268212767987415524860746970531483626040537592844675678444665708743871481685822716768643844002340122274645919994189502664803165027947571555759927510276322862639923771834065438763466541261826124318312013014056138508430235479413102284211212261943475575181323557102361903971198173209128908260453927655907599594338774482417779386912696665995927321615541190690646840960086127912267784149578473974466234718815372962730756997274049110873277515766531532588753216888646999351870633331421438456758933772272774578992649276827505822897044653598329245307510354814848320626734871409029412098422484128869069139271950449646771347226722361590795345442094489077023985537821756525866954413133372786059118444319529461566515333100585178107248897663104599712313151024447152037625620974192428038846528648931046987723659012866306330064636319883288062071041614350127872748225956545661459267112526118103252047417366275227028064501200019874365045083938554780227398723255102543432530553748849024129646105223930340326363014010645382009281782048007027507994341800637580732531874962053202253168520721608475199499982136570514496511085061444575437917778770725840187814633532665193802441314604728867270187586093909098941846520222489298892988935044521482968301942153181277417874121869242829079986448466070706688470893635401275209468204210220463765433977961061994257545005688248020371035810281094017586807992199499685453159037925230583148878297671658598420780544392118425474239059448432644074900205405533904080918304309236352618705114714811639734178399817366644189578150537464485854567431331884780555483372950932216959081640347331916007789827089995939632525316102336749237083097118153102518052239587870283921513901505471253705491434619080183960810284989070708455190943129874993410136577126271475418946733936462948361067791888602777917408461608766811502460638469499537747260555922516977952487030975330824218601002098476878987734778603627186950020514702101412329701790053006615239276015059425093803289581437501975636143490617116023938585057075010727946442690582196994131234145729230558101939787981406648926623265232351210370121529330621673669354464907253416236728079568653230882736916647392430035996325798159057369081790807270830855396514463956576159512231780507856342830152162437124836682677800599819858908014012813699510844746569361734987280473316414718716309515986614344480834653605380044100233038529681077924814617711473065087448034641231737171786938327404652736100392212459380271010842943509671630478534597168118868570464029956216116074746706751100728675350302354385411847699590631284810165863277628258461029368914263758221406328352580862371996583769546422900776417321384362256208359887918717556319749608461134764787100633690186623657613072502231611719959085041453844744791972880728430402569540906687763844735972801670366108098233293588700124651098758393964694194378729103309273349561314763069091002295328944334126636955043021170973085597588142520990588981481753127202934143261906068362652616152263082363887116289595242209753438211716401168229606345422105327453934583433802784501952820670906030214328531155291164551291694369925376918703018854148201951457354681165881738120059734245592330723380376027135831264721142803441763064005126221926963542948585656854897644767337245493890285441170949366460262310349748866343461725539277522952946814233259905040797160941438962247450091766041445120312353352520350203869472678890241925446990676818776971083227060350420376343168128971783448167157972346732248341851881179843933809639721462371891519168498092499804267857842652368763318437879702257908438867661162045345408832341550175071014375164692109015811874512272016627036156024937761611961930481734959952759070064764780173178082402864483015743599737231828835485887886708495172064968449137930351573992360708103327169244856615688974241629966673840149965883303364705705475296662537864620972866929241322154323178811362189136411125443124586990390478853070589282328282886397063973659914864881776927458756159373914193405404076361430978576461612277494883199819759970436763634705307110278448863546550094343704852143164509798710927753064355512043117574291139718501861073118178486224490448337681501406355026900561160756408989317287949283044071752509771902614599700327166862180749766091849057252801791087806605173858266115652550583188377821872834929368288425341894859452463940252804765054513678337126013598467139254747849040096535342458888916923573432425785164598632817281546299301211969003141294822942414496884484475488827702388741439725298778875561868519877685476445392316609552504684063951528050314993448145844262072364506574080024309454071182912210830705807235070251431090900215630899558654154305213411284541606101475516927278244872554215088630841573169562382155667147793355112017139235216625019543970842828589256821866136250451662650045355921883573288696003059157569696278395320641898175455031317701705527020828339067560326387097726272296186478335592584140433529213542899950179769135094053442239649818429553169411324665988323668117332963291136974976235488648408640810587175614544719022563936995987938523496163773258891966389109601303393554067760845720417391820254492601147247309552133587228622797179843391752374850264375179277685150457041570527366914204130212345844570016804539815115912069719449735929498216402617514265355747279909341056462742962194998290599093090819452514591872898413427709454633083011814271561871096754192753593810086873414171210696158696506374044119201638255905061509106890547778927875575276265589072245744886768172319830852970745376890372967279186241732637357681289246078006417377986893830677625012654025642621473219521184133331811114576736665533802995574994416530110121015896238419493355966991893641424293358541131646936664548178812233137628400719505184888796734855466415810846206650505865865428318579743900493852083686708479977431358774961243382143890267270422610058042996874799323254588656333120514072464528333878788265219870785881580792557602234743689569842417846942835759253286732404202596628874137456949970218736814227789726153246511028465337342680125885323431187796668867326625819439390381116362342076410514904804435673326493917540038567814027718956551549346951889878768562995321085968670578565935486533992735217022647547577427395195102882527521467790500157837778077605130883254987510954254340698725878428569261432545825928520148377921651004610811891299642040331924633816806169698571398287755289680339319776153257457564968213344185799273321271283310062106168197745227169866024312601710742413078947029107720644342105249297919373742728328592012019592338620712528011854360333876936095666393135747989004480341451299187612884727977845461977657111327843231784273300636514083173975643916294879185592083465052920732639904522894407774823449854998509410153987098309536294933559834275261848822810833463636005879876577468739801668743909846069228786978188021869524384383411891665647244558607803386075927781537811322558879359490165880108240342108356352640109703519310101588822205778477055869164203959783837801289807156308059007151190269782345897302688269061602007697018982595138065405587461211230520862911898894883937920230607907752188072478924383154206419759450013254048668561729125168954518358140856036957937776170084424116621630815909544166772115000217488136670480143248389322247969354285740391206008982565103152498321634653491709460956466596164031564614892272769017406604849182957715705243314142765440220032275195695457570962864439231768841832938932149575925585244288987820921273467653485019063078255267108719091584153245666298237126108478811331293003788662725196760881329403708774490181212028845918906059716663251832324844391394632531791020448251398814486608659136736456783434495711030552124610596062216675793845223139001181207977046560646365231723844897168280339789500869166233563574485510079287490364439508289814787755631957132846575693693354106927110733856798126247828621624639196389328306808593610996845750695369266468706137802682855813983913286846733017842486589888097569626425414492319190066310932618743341721441352184334068331642376966223686205593158307490479236265418240637452142753124913373224761191856725091136628653371012601679604184635496264680431782703251692246445730470123622501255914961774577418187971114778097401890701958467630585581280457194165996784333019455795524529467969162293024273493453074960751091705821778607839203267887261416918840300605103727232010376727886474629861773384460285299781180868155293533004876870799391530856157532530998274544007130477244604042691081973996251823562516578246278201621947159013958766759737329568525313786238043701276091039416317954912780306336234361759956127790647260459573347057936196287934006991687637845458856782690081255076592568502386175839109065101858706672653937820214824439026449822094739887314640714654854964818972172034930952566193849462532045859652884250800205666135992893608799811236977605769805816237107799212444244647626850198460321772253034958573108207993450839191941422538810334241686183467045629648649365612613546858474586754998458596809129839170323368119841554706754782581841715015006268808449362566124139095372300682301770318581282204792504044755774686373342326867508640937631051236673457328250698773178006147197776688612217148437032385335121286698734344124673869271796816672654241238125964140768075427579470571046622993956099875553617234644941028815438502654355113007660119038819515111508101242595628826070915594962590839998358912635213622876360386424811135638922662054737109427327540052961047107747704601270573403664447221252650734701809480641783058828258775116498170314773200873102457949606212170162525647616970829881482334053303400720341251405768014213964097631114733831788953119631797680160014095120659290925533377799521489872217793354565390191729594375121482247883659847847680389351656892803258959974074868356245704648588053267292637915068892259797083324170418623726005327156082558871271621565535835567996442557693536525518231090179597306162167033217905128487822224272502992130538546559463958316156600298988107734898860208697810960541807925548417650441657109160721642350336373082929964215924020961343261781338313393048267702211919140194010426153020170653382849755994188575506424496129448542565426768226789635673612737499915370756574347141682620945941837044697019010218663510331868244694497723264651535434097913414759129774669737023103008918900579698821992461977593488663350626963848020251492393275868720031379396203813756571379753627201242961708057949005084571460750069402837624935666284426504272140690962052279556429150893494790011952475726581891351669681640039240056462414287435448915132162254095249883430015393237874832283883162848059067960786649595861090251268636924396278863191874387042926618925889438273178529472195109135036423312590188587349688996368776429542287705341375270745129624678735209058502455509045265907444897930395793102964214573958018364212887204672453572871399960663542237578924323376212033668595403715470039958267313396205513714059742916487693910452575551439790041462187472523537865109838427150736298233540787240472924328017287817498165756176400331028770616112785704790426904396079550270620580816823690576272492046260270059303391585758886480100295793855717894242890091635594225871158927557136471008104398232202499305892478508443592806717051491898418507847919235682295468159663906724465319166146549227256484362124932490613370044866205205584340846674809132527775085199262709278012297931398332837482413274694535338708281862061881606811247974502883984289265384252073220588616613329059430268276303663263563720588733965167296986320361662058491726030036929994695289066295358062150425511543347076505640704921564758498492106899818426697053765483732504568694147073632172146725635859905471302459596933551554922872729166579331992562478978510836190028017904714802303465539761787660314349220994940889221616144586876454209530897600851789871171929095783309626206930045818889786426946141744290761355361024414043390211253628292102181827395385066335071884069633940307634330155369468021461892734135642804354703708408968667978778961767261587815880316963308416055938703759228396285980761405748283324123646574956862244860397516873442842003058939904616702663622038665880180829354246014334198566105601062504564272732622493569984320576606977409851110007727965343124322479656491641213458065628873672695537370120990365914240212888114419721481383971305241024405457310679671741057322015072102851783688211344726211510692263293761064160213505643896661372633453496958111745390667239715077645614755655880201158905259028940909214969395641708952824390323099694625095942498916100401301152968704147670405084026158682453732817116154280856536569135538854210363288488371353949599441293664239909503494838902341635896222224742486222328045512815297518891977412063707247017447899563121562891035953084403581629899164597216039339116301919939194919298706991741690955485810227737999872424774771823450589133630878741691261943288725891130101367373559587978390605246247734659414210639003432252182096913442337706181325810374088744894745951639169413212155077438544981220067922245855233482619927922874925315064434588180740429496817946789976220137256605460948515724388610553271872311993514240838014279430375631984003340918745092890556043778681841718674053061794751281321874147205397991090990147786465856262741177796195909735955508504192023325467482022312220005537543325734385432533367683824933906112101933799857485527386385654381195477129259127613706713019123601491157453540893584360115174495464966225684792561233297049485362826418104208509029067145473114818358985606044506614876562487089222635159270174723915664475210753380184881731701141290386862759827982608639802394211260474289640201985123469170387834237594157073179041805660103191243650622493461659960048780786427694632567287352404430124787708922305310528851646842536082081900819433965807016705560939483879491250242445443947310591061778384024643051574410306820693469977692125949003507453670588811579599131313685413890415501975186348069847349748447556137227333767916479897754817293200243823216261816637116718925779051949740662581924338305644518384792496562546406448248882258441275999203794805991570499460236896923383798936879811870685482004691846961370965218605078269026860068805981913573890923958411113999784139545740924047021606569363529744958968854527671120866580255395129447297870537980745815288515127082921218802220774690730704161939602160730246367387551999606832176359882109365280250264648197581214888477425161569575573217641874169415136750790636372007372205240944070981213105103566195471191732836427391863702072375048756180070480599388254207275247661946077493832321315156753863288674186967572025846555016382799589661748716874146498214124198937585423902792817983068878060015705247938751588722473196430652392556391907788436789369455907091678171378437742431234731645762427119559834471333854040223896552538166880895595646927753718472500949605279387549552138990533629586315996499429590197662332866180793325545760247376393209812835035179967043991648656499814353107576809421415546886811965046017721526044226691027268415727876118218705154474452987272194497462971441790612486738440451039049117422545036281189793250332315162105684724081546836838341854646512066520442797489046484263066204272632328542177843133253225658979329123753378108250740305718264099853986750113774942557799743330930843273301260207761173462404859675173580646092674180131960420672373217872491822842837125452290256562417734547379849141465557294957049519366371533263414294391655271105575132983109436306670800862145882604399128454652153815213608848245404257780804100152840278490148838994656263562159989782480375850794077616151787529768246166467676169241429754965544807978673190952556010173052915123025599971002120223427558117034482931443069212013908179709898726045485118592702898835145873666031038719090340029153865194040023175512464478677416408472870046741835874818432357901242600041112514022896786239629290363115589240194147341150420980580904080301889221089151834531353376887776710939082494274611254601442162223616593147644022144124001767993265940410000726210277814832961715442916999164606183085730762243314318544005889516767342300938837669689804136837856867541721359238375012181394843496282823288050396682167181745961145119910536375942161452981154177545040516737516550422557756200171113410905640999779919434904268572774255392684903884266908074349476469466358636303874182860333928843848527556728114812887954024910802507909309716295398655112334420154283857906422716982295806877029114735699457530910173544269421790192627129476806619312609940473634462404778154195683182383388183298964597879595985392093444661861452757743879311236519322766571127054938576818232278616904290751135593847640334255484449081554361605931979265175829650932806053115358694325242186724540516540647833268903186525799850778908367005614948117832356901606391965741234769577589058515949221469401930278065877274816904597030862918795320373006582530999573604696009674512321758481489337493876503279934628582394877852960951496813807861758001152216928346214943080765228733602718534822992827865539179171649899961565400418283527490134311763074896344325429312977594909910219032002514615249335179992382674555063531641251636911493607421745071023201819803086690856945359514739895499240293731431230735807897370494410298017183918577303333371507254348506418433398764335194023572963672737095604478008120017396525926329126996727442181037847891416633043256106135788770552981787807615121916010977000426594853866263681888508394522788638764444648182535104018604415013412517803822474788317475562856672429272623236360452113828694837107609315138809557809163216392189423847218800006783882600474093840375744566503544703418511751111008563770536457418365816982748386772592292978193053073807598909652229267606970022194265465933861786663582055134804119473624306985807608553965630712903826136936793976026413302621833764380280943644818373378328970165934035986611374200755609782636924786449579795670101132841106132656561986605587997346612840082072105043524804566595318700556865026271123175320612645097018991795833161501639002613589729116741472798177434646195406710794759523567633143135571612069533725365701831274997639408472901319434480750609175326786981267628765197941488307040864596410056304399178414253850604343018930812749978803504597149417580539594660932918520778875255113916212888784420584071192540230423648154783552094573613620083308608504208205831106178951239164680875800048585513586215072760041711753239077592053585600976813622515221233365391821730459207117791101883503826101822313585884309086415153714180095341746981230512105992477319102844649023063999789490792817355162851444400032125312059183622698569929282697129001052101346996675669889433154374931744765047220437441709963610647641403650920843021624801437203859900971789928011930415444330106452362362222834581354226509360059983809218576587206977623458639845433206608714438027912992671848087874132138572162257248081884650076665749458830441983512142268751836698905624099084007679078517778927217998346856331207765322541140014755423120803600757395237258564960011920957975437639307106443279437372832163787976890417905967108613744017189040202726017234818340792734658482782319852959783038475023911909138487738529177864943455093436287359508961334766772072979732227587225347614227571976377356031256047302464459986279697073560564232230550770419552591435477780308856906920036351499527255206556224577011864153376875017529571310691725765231907764823810271066511392329093467613731333152723678893102140010896280717929688764555800893596329564537455049388137180562792895586279751050175525697357686551178963469691217247652146377317442911153473505631713367360821130377396081817644002595197822816270959896327117975955388300372990606768933252593402246511655664445974771552932803866262962584940767895936725333455472482759736197095426768629472892637515470756621863816407974801566201998495848712061995137191150433855371634714464797588597371061731307116628467615932695585590499565112287795030495926142785889229202853446194780352285351532605378969497901960105315706119072830550230624527108702130335433584674378880496836311098553066328355292290334232227020542146314337532249790528291352103779701078205888399827525736491995312479049674580541547003158796051507611044513549647833545519072074791963396503486463276505336459906668292575781200105712682914994736840831694921619186983529348558809824681599945525632723316057637379841145574956887315175155602752611529503759271456505869918511942198120593294138038491447881428532856842123380459439367913779663971302587056419358866558493038790878738433473522206413754961749239308808166232048624138718246558268292437979670756169181688156490110088811776873544189767332714198229730639997030876525420186497117815029084491995561501794321957287237976128182071515637931602283026191755982490950943966014011417166504030444708215860626692356907999697652553490669118041197982272519834163653748141446947255487559645458212132248728408312952136721704142115438468458015329518512314499994807237791949353058100395026397806596417320597336342396146095353674484070130484089585919486210998995898757073847371951915543246824142432184709515871484859441050355748909903979377308905204511640832989837671233926826088635550498704344165442308135046936649252818267363481165604265719017354301647952339343786770628964600786811988623431568192559331900144437308621274085245973460094522857653781340153186566474006914544448295949348057948314475180625503367049518791380280952519297778870072035063260215802689245903074430614328314129140974316105227645469553879582286956481214642974984282587378370764299343167173155026450225938815497396608069301182243197335629492528517487305397873667605141088077361220659096308828418583483098387905159874514503689320013058959566587796400926425005316899720088440865388811062269702295606425701988139145907753077323889706077860988441026594775144842081629628639796064945022368731557311314343860338738617914140637687780042973341655225292209302747810052311731281474623564973345479263386880693339670286325726552485831327757291004998725884661634362590758534646680638352225104038929221283705985228095623992578123914886406356716013165864849295465236320168145959507950665926550246632658354594738133043528435762488613827323888526301529112307704351758594896077153526355846272029017338407809330646493214574566100502772430337969312904302210316057679456835711347456453998530702562242513088464761943523164906093187099991657288382275182938478715682389034928003257901314494362957714560850855172099352941674613067210010741538021622016334913902995645866124567667553564551795419476309237903051709866529705802128499166550411379179780166412109294707671200211415771339187542961660924801483636433387036507265880814898595062074470241365944751521356429492157594962728420664279258228663765451849119134950793126754224603904673569445701651230992124298839954584530844061485505604247371380079325395755496319871180191392752753177098740087948890995397527839885309423354086150819527088512698125409823425206388548765323247203334689054287032134222315837992919758723107836650404950367403286999458295167862992388542633688296537116136250256485793967284001839978990785603108068516725240442574563514091649864581902073530867856268828108333139612868068152544573670727657191990521480655423376717773280760140510324016466650828829558414585610707500754461543535054785764334688722165398632102989708548990156998194109219456503781033476362335103742115977719580699055474976210094067159324283547271548076727947479012215030869589139911580657539759126395014457400205543706833106861504954637641124144980917988262498779956251992473873144136010548940020190282298013773799951016587632799424370282881109831047623773498682752016773914022426053939854719137763351706447816747415816834227281669136342399850866718391899104278839565726847103627104242259164614978161273069425231450309203645811524109030267030427143028184219892642371510705425388623644846731820927905242127048672886439039683117891032316401393607940424633024002417888336926264712289553998183132776896490936410838609992163072610919448049908687095193716476145778021792599506793243993832132015009822947882610522438093016549996383067906767853848761988898771425057884138912399627782585538486668212328655624863626306961033704980338327897909974662116502352587560595492279602407115738021523233456169827398117205692845173665127748239242487370897231630441428731473146198713745824869730631711330035926538236590002238580103777839365975402607733563846040725169132923996978142821804838764765265204369940426648299390772598610453431056912439668600964898025302503489644910358179941784626341110564772592856150331019382362588329806186237941261403439163420215696428226240795123127101037561666243356690011102164072775131715221059822292657745212893635796450449205848480643865980089211974444676884491133066681264421874245058294321782940089328799408824464773470516726481428291177096012545405363392562480840053816240613793063653714322751698514366998251563844507907951727112898043904293127537819520097340535057754359879630210488763442361994165743708665674694008724601079734163858048324854992546016721320251068958056570885797657126443323055653762454562760269797852840090701843590190112904406699341206834936137978389423813515964446301468803585339415453847653426047040493833084445876598991991704230857254860731316585680437837170099017291719945937383951107006666818782220053346771915508383833827706805647670630171633550197079962273291918045618529304134993682360082165514919356261376533677268692580691894208356371156873998721687814818086644079461936155927400734074547423886641326202473913147131505816608123489367151271019112273143390238938107930956490326343752572580669822975202970316676018543010991296656158893681613179190543414233469695018773118633592061200204832556889469698864587341942485490074625754971569845984296686165364448910465218932885400184389901006924645096229004810073328679494532959189762758461311854321611500733366642982329491377254764752268392078202942912674968814005698382952617687562456869304998829467035315414611485168076950298892591815362448247723566520750355383684602310217316004067644525093397650989211851325156498029722892100275892261899280691677021829406413549999332099510356984584795973176026632370997749075582229189452159341512946111174177160878949953094898572587070161772211126577001056011510375097327486614976204088382490245034405327415859193261285338671673170755274741086403803347814846707640665966596591666618997815656719778335224111474966438837245320601858294336577669882797400569983611085647008662578581464419670176008283914477575232042542926208347405952468689177032568397132868295258126237480495542775484016837147855761121927451555336395192217152160007072486305941296736108369442642504796870239845584116683281026739487280543713294555073335273669377763221085999682358447133597644110023480674847582095240619307714151605694144786272708691821055667659765088412481701366320696956880721179218936800562717200523087847027433757530835120366345246755623227397808134933788086785093624117476611855676478199988221546629209035732004154110548074896936959683677111191969758850204533166227396621329914078856058146400967890335078216291080678452621265480896966866005629562106260645159143648353817622312859158167582446243102648466873724051985922267699073595265764888883561975743187749606946010615206059267658213257143988403668512631264175340658692743084460937746195865078935794556103731612385233481148909807635462459861714259706609604842304014460245151531715795889586857729165730074716318099556919736394713064365591722624998627075506946995443008518376832174766996782963282043722115574308268251432431357056392079452921086765492824725272179758026828174397544449241847957902318958015521391557008048267630424823425422049421160712064973533039448966183874682418665823304840313537768064997516775039545393736119936744380722586648600564300714364321011075911927974253893641063212097566858392759892941456134081688611295686199933702453248386256222458118066355389710312300615854674463075762685869315361093947686103481818983224835155439784415299024605323871919584984354203822973003910873779771274997752168937461031078727999000100654444518654686618140983743445738807003759059045255394776318880922636643849823100277984013124132350982419203159711570566391442964425388160821119613648539918421828759356321438815122031150393195158402477659427594485503876970048381715849189715546652891666224669613722186380966637627053056579360569952825206315545990962225917998548449449332341218549160171801685895676593796431765652075361723778494094262794255160520016943697232109863025399545235946908353235552358161028269605505122689040280702954219265245486539124021930821010015611798387548621598580136923304602750911080170706685207117251925894728372850616429741276283058714336011513024155181623944167026117016562244123022604064447876064732851197046968557492206290570638818117371915145081304691013233081142475227110254758336158760159433491890492941714785254991738454917992906261313503145058055522805826639985820340189873992460970182291048280071690603237539411725138629635327499874088877252625263532536384536692299765018818010043520911007733295963509750592725299335279797675433572004645196666731474323895400845821210652592986472119806633036950063216461526436486747597149569103732974535277053133926037446594218601091864716708320188648935181407023171199062191979075333481828422014157893951688005968243086897907970197257855780382230992895069441802352547186228887913837741656823553068569761427185227063494508209034615325015964530557928533705189726322990116567725556567652835112127440650441399030989891461271211718550683091704276824357619791977117450774950250191825229134225301873089982153815482256642325411939331883708569459719803731719625636622489397818169351075323796648428769919166736961273252892286869502316929217172589270239253928049214281924252666487095770871593875658742593330824819017350576220603102350015893406193339472997485526729957476507212947010019889787678538502389382918466287186046158059011490066567835706583753272663123364549538825989633501878073065051685318879915213778581122542204534711445094900812842620083466227764326257264366755176059628166287091342996158097478122107861512180082976703851882945672949536078658167682816831924379026286757280041963631562394169390444834069544020809475073306126638251330403472703373110795711580200264841296930919589149330147723387563012754748097398743100590543411999655476239628804397210141921086738653387897009780406133434930940565775362855550772516861636641491180569390654533537571623935411036842156423580149622380194063142832172302628414134276271090281593324119143872895482535803025870737764600928643945657643977080076017592030467445045191715310068952834270188596474240104075749462883658170254810616494169495744439937218057649992810061439339077528207929111262412031755411527450420273803912892654807413545042389689906587514564667940906488042276447923969819681318781144040145411054330312057324446231191883765140137757008812078516657174791528009155684798313470116458499283537399386483677671345572138615801173690849675091855382083371677587275576587275008118776542870513964050362863109114984491775947483479593520427073001784683576966946935660244851829640322517874408182250666140161265614176321973076966372518983892605083456070695897700699503912014022053304743483759263109376036642663904220049923516034254079417166741665025220314326089154423319269960287008378044759869254750438493885199314998222231382651858831751849136966149354098457065744168486106081547971366514754966889603323844958645707028454742655111336888130318212985544354662411124084616903933570472993410665455843675709854601397970558986099389500514050785951712180435833231990554393937977416940288462484383889893638636855858879984654188759135376960777058020802875452990340075337928679436178229553076950035624275817512640999324176776778895867792072551669953748553093480780117367863974813574415049733966838405983618184777986966908345218005617211644325501471870399997737294177691291217202647628405092789727275570436247700559040236357080703892910967040725506185130921913052359370756048126405164864565662044199590044700246231376277405543556283194893438153792613649018377999377241433475233429655892214770934623072090456349432412829135390564163002571910740784562560267960091042616553732085597037129429732117174181843739710201438297650747794908265155244811085446325062863726088218856274140168328692357665538560310385220335892826344951037022592018814842835585001836263353683367833831444181720855330987577171426994155379737887955333909835684162225875243020460085721463209546773239886419331385731289396864664188424894919431369099604888254028768515520301750694247203463580462463740777840778441303425395441562823867430256645969989707511884449700505843066301557442561344527596088207705264674793766673353890547832444898650965451901945975846253245523264451189482555436078729531972720478343212942807949093705681578786781916609760589942904787093910165382769194605113694144829696076407041297985831844455416053462398423823033223401127760235604210403851501406950228195178606322542048019469832807577546726432392642640398250279579158424182378701836981506915907011018233804156790737925564415517344983671021003172259581711194964830561240852688664555239207381842134528655713095266898646528602963063415670215390018326985700888889706117087328187196833011711147129771252299436116871572098662448440828390244264553075447551406243550972196169545104757492011897201377929932123351960283579184919296139687009697131842664336592882486882438052271747447672136749428805872519630525224473932819232526479606816973027297584502830769782651391229116412900535033972872377902901171874387836765548185429660070486055898652055799143266254092840384950946427556872097237866809702046939995532418734135120785794177646086156828196485319546215357355171467116711010220358318207912760147971870058818654554927512180244892507255876967982819326639943237306735976093816727132930586093908192420675675937590856632626548622304445510720533309537268047178961051232206256620795596583946025263428839975423840641791631359181229239433269674032958213991592115820153586044582662267972924655641010987879560126858768199053410321118164877470701694674182150271107299649467539246115576382010888472540190861280833777016740416066918108827261978964307415323752377557885035059237397501601420224144929836409417832945400236782902742027591493163714364664889912511608904183779105413780259775161633018636915591498632245371554729664249933935571624815976229299052157692531325230400927355498968681835356853393720965823873631012060356365421431529184264211858971344398464882461032442276408683682836482837765389801623845279394705722742029719837992028555656066821537419024608465401131528886980810196791539955058793471635927819246838627319487058650376666734390306341271160674372486430015255021758586478213815255108264340570669628067201109573398264046155874143252008492559986674986774306243611491510764951078120172523130012938085773312296556854968762515922299602976024833209575254029096688855673346284202618320760050342542894050089037310295674891163606835474902888324532540525691542661039553436686483842674087737238439505195875811229290680137735474280555207211363001502603490340768623484706060590958331149841690469814182695687170029472487015535691434773849907708878435421491950802721316908913383262507731203436128334320259405754575176760882781690571444079618239751518945460172340575544442815860585979684257374264585407669569444510290510224501904206927047332101355206249195274990261686498273660298202154837344212235441077577478004407181327252269057450678807944326181456406605154721275256627829377060396362391810561213718336836266429304889202376874736817517976554734699987880777841134941850375127448489753835640512517644664023699949707572957071395365956573663252166104869300449519310200127958992189678280616793219171881770193550598931633583290649999196280903892648011424405010863399221964352713546725522658351571494684266311726099949692552798818122727398312643722318174629226392690433915193819374675439191286755940296589494533446247537491979160273249574955223920274518216118279622062622568186729294843980001355783035727687748854080137486640419080566270296190164027261593342439824888869531126872857718286800577735214617103911746649114751125662073332803058595796843299587083078604426442028604866243843475489948988483880657586049941086399691840125680187906325053156801476550736770049728753184388224123061816955266961009605725745681670485535195177470236774777379428179940308303667590687037153943056679875790810810540209124564712562484016716381608677439235493001530352383166850861405302221325903174318918686050210251954412470861465590318372775537055973896612981311575510103404649367349019644267103649851951090102940891598825409330871228094266713014319924201081840884286244351820480988567327690069449191018473529778581032789979949784772184319139024813977568732388060736486248215220165845611273751522393884221551817928664410500353396277848674023455134736656760446145743828986622503196522655282844020014814457594970696282295536868269472226818672765975650828188463951416790921364842340093297642586277053396836173563485163663402015927198988101250349861250197971477133235577070412515659209853147854776700615580942886011044920558453701683543134074862678899048076739225834165317937179950907551418044584779320057901602140515566819880800638615484808820899686921747635140973377630019291331444609967166361579518842137760549238093044367282111036036812081374726966601128562779313829706492221951465790488179151176446952147329662046057190155000087701948196676739148864811779896632585055792173892935686183794860284634009318776066871267907207185457741992185951963514084359469819715631886331129510033438169820713242572996723837877863176740859475618160780537579669026234542296948474761754119005913472536965489588609066551795502490276996909415088290382574735365737858435700466678768332809481442485019602046679926422292230082535687326194995472524252576642909120911002198708497000311304098443980728571385008468149766147467392935724425798661694858594115408830890026060704853962419989419338826269855402483404271053132500539721564114859865526491545771653036179285197621625177465095580415319850492547453191005779659311735925754731524263844117933324617919495543297208066853822393390235550437251986226287092637746679550102134775466202178990531066656625311741824949653947726193171702570845401842472104392875069156549089295917420010603797526598268566625209386892894351556168576050558472820134707709845726311958509929639996959491498848069830545197523720559203531225847234995675732387322496522180375836751087308086303174395313860453236289452543518316817904182278838610465216456234161205918034381834364905836900441899977090822281973205059629658882840912917624580641510074094725534241459389600035534183680061907616272427298654960836448627539681563756559864510470178798960357110188333772240351142096436035222872186090387886822535112900885738443180213705315044497676139304752665327477217334234120637804634303624598452490744135212965398712864265598452059324658488212888261487967954041996970584368924127827652188785420588269445798757378461704059905742980410648253719057874377900538970412856712868863666085820207562015154340045931023291286429039789806342234035494090912658679847388890195808476113448922595956192822097133019727553154639801030065359250030898564701532522191894459618848330433021190124067027942805028350738265803823559228626180898857770183106249357711758878136393748105822996121874503406460461170422804565938149067662106187324537180059221998602328388386677554899448905132232740383513503673528096725595850719356321585399931287884039374813072838359566942134567707892088812149050158918057230776212201999325154109983318731039104696819577704756307782176692975200619089840395763240147570589155091122101444638079709926383677604546730737127617875672152870968583807576224218261163278311050795656438551280917810982329623556874447038915665178835898352041118455257050135935367332751747195923288702543359903452226157785851622538619700064096310606018089500842692379842692693925169976631513935451345164622245307059150722631480373651253912933285992793313886749369064300959562895357783979111746520378903213342630599556933267368706468292053873998944068666277656997400383006871102628758505997899347950145311150076765324750546339170010547922207188970288174612249560865048759713173676929433087369213015518935727765313268441158813657146155343804644016143382576596547739181503381332283795453926153281121176998504218679236940182521425434608237010500020115591750814172137207611396168017743382112331747087282187138537368211534569017867022737609123037470128091710174345866549582755169377090208981275373927559985091781763756039099500761203626461077493246731750405220158845912473856275003626593658486897875237122220899517295096286795900407543614059618216812547909685233868902216415286017596019601080903114416021235996502064882614008293101627938038887924742167786887793206539018286293234018768297541457402454721926347757064774926616665947861067681913157499801941859355982722847349532707955579850094444692295934121336958946375170776303214989365828821281813783213377595424849203289883264141237377784158213278682138585154344922541444424185798983714658235179753240946299321934804542408257322188895292519120789111106933772888945054761444359089092481101879406865357048277979962785440555113579003011992327061020831390041216256697755030390144722688510360995034006281233254177620402109923918982329278094431307277276879470878720477251759433673046622092294375892699415638200862523598341011665926710446985164192644582198734477161125439061723811631732804487779019410019298003790051273150263226777624173204902235416834893843270789429269118118416663560797108138316746142533407670517266011248611032951686105079354591670319569714208229001998051698521383162937974636729887774246665952771761051396836742768383656811299428901965055061155857324180373740028325474449324721943328699440280120268701262061678366423773902436950395347146031010575592710688556867398086565844483181661295808351804267789676020306608930619527048118792113047221102452827842249492846321812436395016087813855976583119626511622239147102474632880810002510564325938358149579189515737104521227451265087865027318332400904709685111987006073835342005559316399068350421634277323519400129484188550711323714705274176936526000211160427179957025043330166676785939236423623648522136272549538216501234833992655958044566319893975268837228701113684820677743716293137409049092009980119344448559549087000708956246947632132195900762837278764320016689620119833539497520859290763925226318044193982592234117149152656893684217864558166133593108602507680302747427789167687630903403906618327340294513625909423548212895862546463507573703942295934747006348296929153130719898034328670885436655290799293750198255164344032626082095299897360458397233070887835943668545224350177723819224990340555386175450740033458487786585278760091725535937756446537452845887327703409172320923482135364411556135395864050114914687554342388531171127417456534714091906998087315412870899468474408987870621322226428004805515948025096962842076298865311872135796908847750840004107600898051734731926011613133859276401505070170210968462035511210948298526350667670439391386537231064136124590971728958972968149356039084190811721956170474428491793628917596179183047147438081448447812499764690944527808537961739231083127845012413781864913422137701974422178518845922205621621592676760998300761052622535143000554121067034597877401740481127502488177247807265208026931665497642477725126003334355044844472580080984914079532227005938500468031916904825443960412943856630604632688957384928714135516377299820300248036691197690547218974297701253398443904576017839941579268021769369663400215369880940656598738913536064843681807769451121609245273211566530783317614762093961273655739898943332184612292819780615994991163155748886533801797725733458961126991168127630879112644324658934112622037022772364241558157859574191486643710236813649273766651054372109260278692364801434586513534227715802851499929195422797129261381933518113527734761018974348929118885273158740891022380903311623692331793717616103948574400421027157516712303530050085952420528830936091244443647485922915638883818202369935412224927529358465877623144597268731044802831975548263796521162460614188535177014009224434306630520075993806133369235788617906948067792083887193915721842529786906987155905879921123529974227132697902974449502932593875628748679652276737654903168029248718917212011728529139063025346700849800069059632119129839875353625802514461551907899382966225501348903304507847446583803691476054349577252195064006922035196470461118916539753961489346775729375075267241576788641779859333411329896587497458294363056641603680837355979723625383388420065151060881214285454420655514022657753147195250353054799427636349273286098929028361479856792910398027887908586709931914360210181337565495907208298760687676409273407173901194270399169167609630183208223151768626169104236263765054319164684245102297883788916183145436565752978853786189935931231720984701141171613805162284890324073529056101286312153565354568191851973899990412838275838511574661451439041657583670316141245902583403816712417658756688479843458642312428082233572353774857454389977740520475923240437826261893072713869116972524822216703370354867947921313608727767727085686743930801323236924192067894274076948807139828426146412602706474838158712421317778755751691570506604237658688117602195743121757012568558447991654493812205729309883074134005710056923730140981705155205485924612940590826866269990396023751309554943659407245342558854746317666108662717177394745235396913128513296531263127834780808677800451439159641649079569968809111086139782989361796040037027674821680398428227129062488813597691568683286822931022180886596703823663657735008577859585837165690825347501082375270125331482015959885288226181756638364110876176325303681039996674174683745733409720140346309739767179863204980790199646191248263563807461082051051372084710380338490474928160973005119292550115655883526841724878904320440893400802503782801203997542766412594964319608355855820072839871760716795446922988163519900104443234057977765538721837467164300992557500721242262326040032915419194909291063380023640588346780605982391306634645149080643267148068410287491306880893459228707552264071316792701577015399530986594052419278921767668977286817114637823585287983129204613513946659282173307355806814933264675481512095589044182319253972255645640279762648250504075759001148877094774836023330216325132100770819245866626684988124927873514837698851102660636064625302126136438625467751992206871663368273744666999098328270208557083655781881523242577169282402163031830089521207706740842694204223521287119527017495853909692184844195519947514363945357975056247204891093336933530962068888419852223522160945995112278567889129930937804205828458010347013878810287262055874470920814743991724512831841190049425814303183603967155013839663214738659600752165260455336511494456175359737808258974135374477924947026165212698001148183036956026598138558984045975566847851500464652053101494610418077604092335640995085502827353936920344471087301858076387486406655273209385098582888881901268616875137040337535177642381735353592325051092518432776172253036029332882199029937577106525590176910807143006683266695189540177518489470957518815100104535673071670648810872147585146793283597687406694820125604978292652141757673637852959854239943325964103557978844103830369731928032589269347387042945001617457725803838800816668240583712282489495610859768905628918910301653215359607006312134490050326821584014428473744226836796901641803498252861792220331455475111311484793743986832277972818547102335055592031023001998496318717623698239886470704593478317434336053827441566154348536105205009409417658660731681890575024800595946045976146929408752455756135692816632821998552828798769538685015862777345856208517188700677744622411697639685716714557818109878123135017384893564987463278986234120908747461290824157877998334248899393081500962265296364876280113384146807840244577338528984898322751831569574576156792852896280280061497890470105513037795822119360632729158791051665880110840035386953781068445330577629817043502902187629013853308621557044973096495489883154653014802230579212503031566167506665986637681126548649486500130596057893845564630599318418845751623129040877455994158250802088579081710159950821102516899281361340499373609344455508526533441110327843863097248677131902950840971356264355691597392191857738387404647122749802916846261060705599928766706041190287651857375539715217720044015205696869567646633763432588920732469379982439283309222152072217531984968642020624980672170757644424946797008948033691881276453172385188842321285353215960375547321065317878247992068937140071289003932476642258875112014320039457090055787102479133059685463993448295173722115419457578981276911252633256410082020905630468569079976843080437185592327532945721256431385377650370164845578620247538196393056880075915813294825873341975432915980760079738439268321350481183612073092708172084786428961569961736307466358048479977333297170858418788936469409491652637070183568967571692665721444087649187009509996290016488643317832430435324042793590765136957092434809382818941047545130396424407856052970442028661224699208425736668349639550290323595366006185923295847384334729747419409727877295517420963610022538309781199690777153666068852238794307791724992025224365690410389726887462255900674920570712366903542564252302696418783601884768573038425113726270650526798996635284532025913812804711263989184075472326160469753230545748868374894274564855201917507813688070980234636390086673235375902907851204592467878872644295000581092447329662332234323549344058961261267392184005275566985837725309539738183225399229349112038349188292600343383920330054278104694897659791276031748307585461680194310249301272439269625137560286364470155687903631681491947397223290065864199129239743334395792252003872302071956800922826717231195851562073063979822962163480490704728361567508900697222052482324780695109443070002723458355596362158116642586172967011915873192120258330573995318114610489699917624206774116546177559458226513751704497124714581662475905184183775223415256235475742927647570572816188553496881546836477154258607778600637217826083177841088566198770619423643064377290383038980632606501192228886122834034917608509525960358840835149357605150905950021887416571487697333735479678690598351171375049650602582922136010473865438587723668141161897878935786360821486343305640840934911169075272134192011160833126069213271526902180483734905426182929336286236756847621945126179967494994494060945532011480070902746374437452878567249974725941320562895162278684622623223035243496165581791040899775692065712344156123318413447076437534221153840639049358919170010486211530137530551900096937422269657798098007033881602161691902784849732923211970308407412022016168897934498258865131845907451121090522264316442493498152877188771272916568929407382450190931590041563003154744443277345682544493855797780975521185037521294824037683785312408385504270516163123452934185240401473207683299596690006281135660342358928190233635973028570697080066877667722722218803670849242845908845224650222953464851952473315234693869885412030333946332150398730874515913654357452019561727525351951132393681137284356161426579808936283014021722751683859313729661461249590464869837778824166010136109689465010858313659893196128015421442279727805981262874620707392980761113070205419292279659898506013092255234491529729399895483898377237310575428214468460608901740708758190008837760446477999770665527334278444930349004754156959862603687235749895381806208857930977678150892873947567771623264562747167163601431510834161836376563699770823137331181623718134566117739038627234015370442266297672415307232738371817082044331006544543053928377507732890084704711121922197308591378620986773758679325749965006648355291454917957609942932258540554393794665266520053629284702240543210094307442214016955304261276445742700121968120001633926398729445864652154670426051922068789414009588969071011550314506576016624053203468524035654025540296400471488262838639433175425496852325981303127127295774635800472179654290752084337275876469940757333500313927877293872096605065410456823072198100431481758865491387625151280015861732327225826051080810865900194211597396513211885717492488040754186277745765237922824196379347400766981865056057583573752398486372684498487112501797137357078755425046018972061754173953571441403995659447327980934550037460493880349037366578399934037603579549211852146452516069325401416480105819766424930098028328461453336063330702866809185996627181884674242388166109215586699656321112043427342132778274605872676339086141183341606459755729372739855301488474916006404234606220770250652368727341208558303539422853401352488689656034167783669486662087237797218643461945592111522648027664320786015198688779435439791517066015380241629903055620402249508683440218690659615756094356855316774394984082498181703498951563183374597748536714339775667316890860683282355520874615977518866554136415146751736284440613358239336645048712237524825208776064164074133990745076568298533620546244983575256490329306896524193590486136621349551549512849402054281220301295953918833289369102635480276872353174615984455573148536286344764960635875853206979576439755775547476548125425603366305012281216720082508059064307564009249146198994505491253418106392368710403506917846711395532890359917267717184103585929811712179420275182955101368664310519054316455540410245650864858362998866697010895803517610405103331165319149523851072841630425798122788376176387317993195801031754480514151139690814513965476515090143885501555776197370315772084181692565112081932872702699666806604306649598377596569602923400696734718533271544282445331240746296800214693427783513460650330556906572151171857401738665321288683922920771560755689373895509855046262614414371633775978057909597082822060881687894565446405710374081224871822090707297945364624088994152670054488534104859946223704773215754631944689207085320141139449525803323376909898264380232792458249363618435121873178652113301282767733251155878167206826129228440208810355210353931347580049162742520705394106162452738844345264906901187625715641986237687296542005796148634015886982687202080959274535128339601215605719616978791121190619286777924642304506254215338697078928485159257778056835508257205265120872509850281203660244771581663596298998982201132064550966570628502195044775424051030907548392303630767959818276304243058203280322953456861574761500946525549117574813663212485539239990084963329630513347576994079985189851056991300830145020145171800404114620855655919632570464739683198941802033768400948005119901325516681796786786712524376147089052682802935655829077731233756283402804313425365632495661430831714590517944346743669447167689537840757244173524986401486283628497987446114246347590232817909787057469651584994224632515637277256703041422884093349982896954121879301915741598493047585337784594413953049146578493912882883440084941191622417029911800075092518297603592566715751824037197646316843137983445131263356664840189614202522831120202100035776528000460726559897293293382785464903041594030032535181750879961810238732164148714168442659630794381776314031869255155495073709816367254678305693020352595875570568034641778775740040775541472247869600328089543370137262840081640445909470609778023348656697513900183713510906435803630533754884096253751725398227452229480810421264210756089202451801662905202262824468429379392692265707062978518314883924961271552412595598181490146894667746158621879761216193350957327785269130770270613707975376801632135543335557385568221507642476645193265440630703836773456206261618446536728198343839158617174016871800018489412325786693194573359707577319869154342158489836373687578737199025502249033897102905550476213793234381008690989181385582079848130028723359774587681396751930130476710197680612924108698372088363378767747651308890057868432475831890520597616352170146236733559348126599533187560792800366316458895280125703918183940175805674844715153910250535961459167039469300682782514728367650892074684415176613017161465686581626889050688642242781336163614306889728001045980302623677099543953554047855711224667839838252077335274956188227669393090057840583270460953267584494038428352971472853440939185129370523130963162760858602446902083904355447642430970163579541753216295958729109247212600200129342870729254876596261028206775765178345384816531276590497727315212443700733576399595770334574039913099898587599138262076721656719854370211417235281883268403283580904275395609088458411503648222830715731401534535834869065424451251046268282921029247751596859371284945553927453437509022765261088285214303439403989801486846412471273010657326329111808759483293074633922408980487511767562696929900888299723239082252135198445803642841687172650430898404963415081099422798317310527566556980498232812815522227353244122021854586609078499418424812207292384233255936530463050028716635960287428051592443222526506841432832469155386204655201383570857088649976849000788190609611021940220623075385378593241162920085297862204626351418499121962830295564835758153704752959201173508668933036975498457069267391388853278342744922203188114134361171440269440861187238330318294136705727505972080994424038334672561454345609777609715877023324063888307678703906562038162423253084563203670702083451048178591973782786794847516016901501621272110151380901838296746791901484946027366457052169340697566716914602153320885727222651382967380825493751939226694030856094066441899421018122235316841210215191614452004735623915609638775032580269314162543405448935309874576493295495330539749426346180344458383170023278031883012382030847093557411757905220477070804588923889394668389912110343936908150860619110914440775959542750646169911213369195398730021412205319898877253870717626665870437825006493449284135745586747170884885076564600336069798527960801373313186008982445300875450113768309090757683083485809999901832647868335167283687612495252597364504961660150999378095895451976775293371161029281405723531422052271579323122449902541081472701632657081003111586523950654429295654282208097274858837122173304965792583722518665206067802877029873400585196686791327147336275895756702786505445958814794958027572834873703246015739410887161897729164012399051739480922326237262959207544841755286190523342468926723956641747593177817728913156351025727537617689088953167181480504211619575841013701579181163267531023949548549566338186890884974346622157750283169809549068862241103999722703945378254988382320181066738511995599661031289394455287486769960658884057727912997296039264362805056642884213589046917216988997923468190249188220624922105125583262354707921728590583423511387877986966844850740191435350820063544518903524331881054965073897698057035019431299743939593162623207348491497393257017325066149719280147219816621154422109846377845473736431426736946259175078313765589086880736884669849975639922672151439122792812646908563148696063233882064393816018300269069257128403163891629304016296568145373089598983940383172329952369663180024593934957761678410424228348791432902048425790837137328554607972953605358205251933009376601613942777920235399838167645728638183549546483422989521444310106652805988512551004769923703910232846511162749050032969913001727013775564025009533662433811095281975714526023922775757992530321407767713070429260607096571086821460081397009153030098758980957941304505813686763116523889714926800090465999595873414402894215954460505014059494463568241727042562557807629170437680340173679017432188619611721350395947073299065472169742003988755517070118060366092068626928687740234873475427188187649643596091517205161416314143602464828284121601999600973868544080233943579750353929404531629510066217293080854819393976085490913710093379878267502276858618681631078206118019441350484635114052864970206943751621882465387889258788779142480256872880318296190851319003807468982809727581996286847940179141236539991656542438610475998644080701096484572471268722645192024690597352420129572253325188279809639445883499107528606776333994714325194995919547935561934573096806442769091426859780111636048024576548202958610826146207983987466050999115434703203672569163499359680280079686856407886402740917759231813760271068918519757409473622437121505926843064432526973801678464335557401767279649812616432074906755172883549065126224462007741024288405321243404956054797883228216899552485103597542116728655215032178922556662619634828907561803165430606549588022313667266245858157229396745829937040046540645142858809016533937462280563934597230777177618103237710229795265502074469740529553984447400183526207132528013776048898020878426435045709598115509329639921667018730938198025621565028490371508916127186921572065411554459301626147876842914699774576887162674737017093157433390803967814603293091602598781373289922116346682370805005023557643258362581120963073770748856954941711198334075277632384881585751231780133454681406307949928362039993967929964712860841849426593064475672591973615545889698920094855720506169224470003440167421689433149892987602772400869124598145279919282570906742987222237447756883733901157173727613315198291309823262113984360533389180937301429199392772903555146608492685259671775456523679528363110142446876539444941248664763911348898837101661446318508134043349626032612165143245839798753227613870426614629653401397900909549414981500406028421385369913576939064537742831186783648209556861129701567043097535969950666529127878597852238136982112980595190844283624062724675583906636425369865399041924282314083023162607220481045089337021265861058236739823762755190408313121526848264276001078036341195626508792626097530230764246691258189842396761912113813529336496514169858465402517166852896044112652739135971679018934201989422357895381124365527478422691564863414593218595316201039302059307211891205509636070321734384657330088464742073539934032670170810700614009838111279693987214139616425444714466632490156908612629662503227651677705832021566357729899783808371091108189405717737763301138601534955262514364968710778702337666325709415509710155140274409194744789337081511277288759205473727327019381417678553914648469255452339773321085855897821843768955398585759795126474647069487514142754010101094396196783299947249397734980206739638813462963696894266529129672715822222304468141648642460402126173423250654691371714856064605917209469448114767651822997190156522535601169524622741179188945621469677378719519095475261571444074960802469252043047332744849493762206233656117381200065404488544911610453615522139784644140288839575535325606251023910708942494271994375695459343901932243060177022537185258442974405779158292889872847961586876295523799707534750093964142153740143740693635338335214274731928932685583062842922101970254326907101171811596329951766949033817707129900021083501768842948491179008487527251768830251554623359108308380069687227148093351433436336519593839325806645981697541061033288208211226633888086550608633056808440089013041665159272757016155908296856287185610767928705018047826412278794167628018725365378404747964113256229020884417254059287872470354663438844746325672818473449833617718382720748902034919195424819259004379656863220480095859888436630999208665362507571251211006925644917095262551233208558653947715484423616822358133557642823589963854643082331977282295552288787101369545468264156887158070372171765525436829150153423691309132214229891894249172310792278296485621594108004970549454023900926476402476529659628391517534172639075297300009704541863007524250877897389106135705978191315690747274435854127476217856390994320598219038728006124521839004653573027159701336531310134014106859407769358536788977049001631933426701203559120324647890737615861402492545733785716544773896881482916338973747929486556399038571357960322410615436270411423437592305487567821858443270805729633553114853462594579925928064342225256104769308753746645325455485140617747034883291059992346484927719202058468498403303081820601350319531276171994608133461586575257088752650502438623822721098972457079649549907531083270126383978312256055373824892350494403711927671172124283506104111241161420919741082739680663844898109558985334583385561489460422692771144591849099663461947964066916028011124849510287503731060955947140223901144948640382116970219307619477906181895539092535557893521095591158400712059441452014646636891218587501682165305220498638055475482180799604451758885569435755054920497119606149919673072135342056522248274293348029566138744076926602330764501411350051453206874739902688022900110241053169384767145954262495510737929937287599344461836680930669863904048478567437625766947079559274316831103365143308698778749087503198567201418957581841666341077628133454122176210334696387094861991990001545534462299821298725188564285294789054064083569819895584853687890365060434552187642555749756918033494149746413628942277007856598280069292897303525161077869277114647891927660537226847485373808042197570807295936727425825836735281617373903990951126386932377492869327822685682383011540222880630717771083601589878010689916240395692315818640953130280425896366948117808404322713506934321565074067785420223447732151779087450169629567159201029311552062666976875298118898286011182955969723253524111044649143334489393674023422485277131983613901623577944557226264714883676601511753912220464258652158739760479156415347882188816769004930367193321228933795335029998953172781379974312376419346075094169817936952741661862540273561567250784612723152754495203769063105348057181771293096839319971822398232337625254155963121297451536042807916056157976494571590112482233038557258208803347629907054790244537458605950133871789121202785786492934364672029097902659500241332896782597136661773655803212523051935797389048163901549434429538231858278622731446779503379025688832152772359450779512671052064522178209252343683167498135401738184277655351478446768914932769434145891008273553584392680342099002862649616092818020119925147130259051965180184182590323274189600657472190293217532817497498970027155304462405074221567698051484960288800934345856742624251635593340348926958056186596855358709176906026094465239648623936245692145976366216839988564440874941899886198401256491693877299345265255549514054597676714313595671950672564267750396902455058453517407850568214110426029431386071235599109310413149342916064679335239059649653178424417288353730202361432379274409372835328710792657990626664992700172846846164157604833252783043831654376516895296830728460613853833775987123705585601283007769264122933726811976433068396416911009263709920953432387914660712160373012672839235366228078690955959633210244904455115050660705308012604350185502858394678409222721067283312835924587275135588896763780608709595862096823759843769287237910095862861176671308132722637033267943957507921498655332101444187464460745845394071113682256958625148590439989799829328879709953053538878661173719992088475817950406616261119256014183919090507793239078295731863297056152453427738793408715502786530015869909177127403131074774428840830874547178827692976911880062922008059114867750085583612125174199220706437389117101455028858858769165733993332050548449322386471767233946232226855686363205979748761499711186968920001889653693695829483802264856727504636802074802322795669117836448957097387850280852034750774019729731123298437013361531186743943753506972403842270139237159709008253100060721213337466252724617635739692713929397418580566052736371919896073944455466316137127331783946103259229843401583870020747183502227449078680263509646387605500358184784534681325353343594422959010682073006723870782876328300700684468356382336265603850949168338680244861908719106570121613647433827589757627108358296838537394873237540276420977713422247066338018135066412314112173012606133446642140349328484870713852895360047856805454411140902255483743148463168954120649747420391392677612729913795165078733360872655884701623531774517399918958362301900909453402107373083928809480790373233379227080785293830942321725830893082254768737399528895653842076919198029871289619957632194857525722006454602862237355274715545359831122103326736138123046569238738676179694860635587366545551647503916475984826286454288509956677968737872934165839000185420256021604151349463770316067100639264389095135474206321691587668425134551060491049678446747695441312128479143285074005040251821810474236711599060737609311484631470549295586874616992122989905750836545478900755863401881251594963288286070735255935821531049163390358253496822054027637013894069375536497323452297327610160714963428400045526817705181898538263086117357037608378797837187211056360617771744234769660869030024054235614657851242263857229392690112386608345451514627099804299667870449223943572107942648624663318770563903643581724242263876675914838633674776572273530024069235160444589624175265898329019640556136064235618406813028360228767468042795657113925976193414053965566510763424789749727045013238791651100989166259214922699005616781080351138803335148852221241444956651499640772727134093636172258094939350718946748985599775646765283858217732942887860734224579874844493865255791718915489278769159999225005008730148237892138796100145564834218561741321961152620339255167129650829333060291101239286587922497576259695168080199000076618240068772742069368005773535656432913219067959966602485818826588597333952726856161079157549534767793851470870154781320422942965008238797978973974004067035347203089178742053799237281725305060481983016263431556554280275899488358924759014327402534600059624349918600939023425381502065319633560332856492930865139081255969707233178538195557898001407846967876175959981444660484475613929783717862213281778028965298575057550007188166394102322314719043960939746270692155320794149362760120016738922890327945219571255563857344632579135008494035522945519974527721525545504032936375779410669810990764038771868585267359736421860399954315628157688733039440524079174242802534174564254775204030568527733694563422971662798555269196726877075999895459272881998774839436061457414946922004233722371036161196000185033563573532747244607300973275430302065067608453010754166021135685344399580941883295230661385304004685539345894224181967163903187557527743816535196662514683172972965216299883567527139712076718971018321926958436569082929921242793942373101738755863257114662444704880960027870979602658085033566416126009091350082556104935805107045772987003626538145347714557577760629156356838536552606296272839547262898162224004054366538987754356543204180757530958331350841554393070334413163655518594912077506011621532907565169622588356147586133905278319110222882495762756528289320277098266576529367778301562868317071215981256662946057047117843921869355916431053726597598447671387492304250628858551559809898700501159911314597656002940916199041095300471460683930245783313659191476280323399044621427514802890905850271462313887145648143008252823583643136308084801066243326192950709981159188200448060102028213047626874051177094386325190970218675026284520370322779794735748172477135621019826672550018218301736663077406782879510375425920565737504887408835102923068420429641868054483833010293034489962847590093204109734168116034178308395105120969472054717183995215677616112028348143943448686193336091979237094122931022988397567841056749087716789779311918646457863424239259243958104276521450160557034380198331393277000466351488667177015680700338276355298475468880425844423276527635671411126569385331366083801069941088471092402300279349782964893207118988248277007020341697086887576468894106537755765078312721499499246760233820262652334245732008540318286935805277898428800221171452003890468596787656959536180595177441239917864794638949955679875287905697666248408778983768531131602859893055103202592670093794693566847472094931243704816559573398107843852408258612072783891219856213230561423576909060429027908705033734917917539064343707831051271000768345573425375590287804950938520920837440339160898443805913710941424756936170440296848921987267616890488444428310021623920693435923216694793738828734358876105721879202648604013312381129799348815528474619784085821533055044470878736032386863020369373263459735320856454992771134266573386459244477137389480627768604625800057725593247670668347124225867260272919733488380210288000834963377680160125305479103005645618004168397312480034189899383059618603163731913973557639802426668727706859552416257052295271029449257745019901326164946404522967785262061472024534408937455822207310279111132821780400863791262180987403072986949982996140963500810599330825712152744821683856172270442676104555787038592670585539492697600590331993166268891183510572746160322964503073378105172164500860250331498962082023553806896115570607928275029263789021611326243297600899437393915461501784331982687209239238674738549817450312062403613660011023254738340682710015930436451630076433762990343671988726142374332976636938622539512283110720795291472928124355297277061199935186989309851661363962633001842927667182064808364761183865153486157833832218700611128633205196120854909921257414793308886693321794702365987826546527127531178645230273231044693653471960891735659816959854963237540092028330776210773307792084242167669828861128646185389113744391224359851309363047338215175438841291170576830557285338853548307471897854053623067241071965725939165454718344980870572941737737243474050131477943728912046840337989616388171141006984802398617221029789726079446594446157331765318056111344776110004286442127998999118119867999814960527775385901908776664181622809262740035730364414711534366274766772927014265911435783903624408135020655341343449064414087994360807806443409916185478821858252353322322181621371834217229831386615537544083553662039044232649187277038381361290269283423372995684660375058699837072243876910015075644340854796942981380711512789012009740990848092590405231156545380120998117440994528054843981135051839772006966530275744214173363005103662822235493786575212328265049399323252456374424192860469420335727009776067136144695171962012197422214019718825978475473832160443053804969390938643901054750658488591500376705968378136022396287506781438452407602023593450410378259689353072508269331374811348259834862425670589979780374762137694664194983640445156907589849226484360728819406761302996115398983465213011000406138828957648476221099040109256560972219388037467740245485887288623053929695113665789551025555622440364681147880768426562457084978878396349794640384301072081870282627630097229377143679755279849511886513490769438929193510698303604670504020109966012220516932995954096101151981397516710764771644818810082896962415549747366089075739621074961068281979891602564111302089517781291927338173291291633470731623864912563633610239918780588929094549768307670282364816836265499597066787177783287900321279762881264759433492265566709527402687656619829462999218056647182631225998148979779866408888558461050105867336873198192469541505636871171382148027811110123954845960327773518646684882224103186128422963435074649393508143325540925425494627749406686114538927470632555739333377501094026490234999444649042767644537210656211512707784448580836462996497038813839481332628505702977911203243120209315263368370515478484328188108482417097677174431090679507123795140421100581385226363248402165450714612120733965863942319411060923806234927206781653210295781146363655512093177819050537605347526794540343928423924374747084697293352902792999077855508425015625836232324272863534136978010735355266247848743450771536956880826017063077239873119533200177333291082152780831310460564958167000819021108695921178639888586330066702586749398915874473463805974154223762209088765082070418409843985825563922911279493220663108057767209201252902267581705131389280632083661442824636234177304429407426208740629544518815717280706043042321379768002964929260957344899618353661047714938200303094917537790163173180384814166546582921442977035080097808730569553557467139012841359174711554688789499629129565894992854313149866456665435152442421858070805173608151716540782063304265116760594409447606738759185249593167479210439675003327918659850137719529130957605664189125154235593612865853251869675996830862665894132219370009318747243567517268467908649881359203330941077448179749000337669707197019754250407044407647111727656787199833216456596519402117481048489509978735971675875644453154617134886576847158586919603064937698061714668334166838845597061647677751278248467409396766810080176514592750358365229453883269870090941124850891481012326428657132682884621434578762596645006297462686568617633453496821824847551208842290069997630505807857545467720416290913664118561342066056055833417305740715514170706502119368418793980416728807358913993770549722523120755285164898853787304275681119786213324372099430752782541582792165708804295902722259676045069045858950027477948919635424340816475048920658422632898231310931418993011268426312256004896870181433609402940562956557442625808427630608306323810582888465432782989297091534389434389988049346124768185531895569490708520540756953048017575114200640413869674110827454108262432181891775607809686404309195512415104117759057865577748769094001292388613093295226164879046485461118044097983632555666600461441706143433444530804240039034718027913224767261079492622205435956396459717564331322940962210380697815330505172102555231161160263733664085345927541703135380852923716976767428152439714922034239542977980218729901662562239798180909132746735862160304468257240480588103187508056971138728785200823935626657340435012952850746753645951864363661774397673947153337120767298171449223999144810214685947419776929053955671268402121040645691116429577962190088880058919593932271549902732087212279476984033103843661592079721890641843014253664342178739876842846962195255150416032331255855176653828126458492927906283865323079256958183674526182500384771690248347387328711442882404630070747358070918656767431400855604920283598481242545446952188197714007737234093272307866246363279136076368757600373091693368514302916015354895418744123083024250635435952308855176409843247528979657815056435578075023244027574540842948255530141001886791356807136549445308716709503540935163118849399272325644557401863030916070471390829783896355037098830142884554490766227548283182880401881670710676857128267441868880788606079621221748613022796472018800972036772177910903629518875571515650303659806549812380991951785544558111469412860306102803918240395890658501007062642490385777871661960571231659304958420708671302517544714780109005558832807890646331511742650486709825676826175291907634469719423514397940418207052092288133420410297754972340883749216563934716330509598041926692934223171876807396143496810504220779595153883745114153683050731850433219566448066506161085522122306818946793343959632312373454346951941003898329012066656944077585012043567247847519289545381393697405847910009452909966321809828013464274260089176097145442695408088009065823118778188476279004388073583010252036539246810503667146702874042632552103113777301557764717812922153659076073936921082196976448082839709274638251396130432739140533136909861669291087556330571415284507480241960547664430695976163286903115766120581364444442619425671462290921442795068209372303446668128256856587717297961112630951394732106957804518687482103354765031901818209398173589465598353498700204939237064864059425858069436361978424869205703146058953541158294412341353444983023088512920558000608336420499289103916494636069297203915742033997746630117392414688276027633273128062038540233454894435272779546208392890892978674181710127922429068003264533981239502386031198996070276342343141742154691605448098730100118530277697229665421650166295143915215005189942957293081833766336396426868884137473090762479672375836662970707236252147051000440016328179409021970133454068615660923703961076452424069413865736962022609273816256342686518861908914084921195715944616786232296867439017327187495661206009760053018756774120551560722330858073464504900872795139485458166102427030379376807558899909511494956090538615447722738668209760307012732523403104089420145442337429586524873813071176841224872706558885041234715230987630755140955872073786888798096171395060352292717752800202004273975986943217351590858299861402361451299180209069391682252223722236074511619885230080008809747661463039644088576441488938406705778730986335206863700702591193337165640021484353198876518952522731098541822991420062635102539720042789366913598361424309012685080827108810457978029747978317368649368102952063796193731075102842451045162996290470312378746729503052710182720974531724966172819892959511687869525563362628748902562102811081887392442993424378313244206756257910825720351763701373497563232008206081383819692651702789288100526914457869482047348590433950202612451784819023492688773487428800203615819520493394541847041642427818683607890751026841840484608454088274282074419082899345957137483246662160566688909511276370072619274803294249789278038786810997997434679547578147644128246487739624623131969631657150686719270831246623763296178302452610408552936328648038131231835203905484850931652599855809953480957644175657491733472710160955207109472552035478617834932009866710732651117759281841614354284442943177562070816207662149690975829568308448970576551428011031459934274404800613936694182753369825092723320076087846732970696432269639120272651272571674018250294271782351027518527802940065785431875189482542840396574230013685976585125093946175564898991851975494210073936773373927567124231067201875788514916657419971050534902259719382749873027144143489301447756863804812133801629191084987405015626888786109381544370384718870849775783717976981049330022847654315036671063428004224304459455476173940915170033379404575191658574471574799031101046895454668750415979471610498609491094330013382854353664391369103407283693411107403010183147758270589744681063167221963003345120384636831384784248028020616713394758357837079256015215095462680470780138034649575686664409078161320499240506672223089105990184143803094635865303080443969365389275177499546776392657954087925957862873321741819665660728693725183977332963012722717831259506163596158187761648778934134157498740509776579332460729421749518248086058286813890036394967192374699180604366530533723852473516166329848332901707418812837719895974679818895014648935332419541452245127127362327694086246543733238115153108316722611362070672567257750845498786500312742374158374858085942651474692114410573349899695438502554242389042125804694364043772097201469865022558166067918536742631482782052092161632805419843937080965722320334597119781101838188763882804547113403745062345034674712017996204181283713162507587372597491331930699227830541104623358032407055877823691049556942085675727876370167912371483894104116825541296179887287782822474273744182992151880508131607460988694917582855353822988391836799323552954539453296709170209993879795036036170661521173132621795511196266648442670885121467223172598803407223207105433150904617385794345628136511560719381573277146604663391698130424529178392086278431523195868137533951398753676845441425958851625339724772830686126582018038968241737543891503521711060572643292143008341811936746185350171655995108079614483658059493278444175241260741420694723376120800869044528323867393749100107155327209562084143889197216057323620089312919852038922125719277975096134258600108781192289493526460404303346577540812889501756493283495149278725516596483906264527257826292988186773436586843242614507420464582045482578857160777447363396845849852404288837368288412365926205051326889688240826184599543221530746367624221819500194505682461258388271517240016968748364432505273987932010831971541634162611225024465689416181613119654231709199020788318536084981478755645073965236347849469261741358935961588901659566396850177208251124113480810585276368828681693812994251877442950994185822606094575766430027579008244847830777199184795943327048703043372923128827998847507205286499635754465036933506827304827260668166535954415976855049936163488622088787404256317963704547151378051371010336003313832118772977296667791772700488722943166776567652353310889825346722715736499954978632775644984540758280145690105733336387771056135049588974946644011456198416395196386862116664565783027107676224992752215700468901159429835132338216577369900599980573595279628044192360617946320807122144924282249453648000069568666082885937898112097475916884439849907872095401418591967836317935032510797345255126276634270294351637899072008197651114317435340623131546795620971848314767275285504327818145474537946716717747167251089021548305145036148805140474868249015649283746439294156613614439064240193480913109744971580300855278567057839636543567024686922875180418876267390785151533776297844276597470273800354836757332325445340164966316091950223849618131254010439966108370145310749472094625071843335231696214043128716589793645862259744214047951052216645551558733686145948813611691828863555008013864407707966827926589254353342800410706628646001665125510524596641434873823709844442292403824639944704634501382430700826096693194501809395705375251078951236777510407894912531323699785459970119708614959358213258100835647584022227069865234172391424338237284938548259132882608054047170718456648577970250645789378695097050039927058387857117363278624952167663922461048888298986619733097005770172881115383416811139796037459351193365615531587859431063782732892298312324282922764414099863932754153535921191025218615833834367133856922575468003781159168235818169637119140323265109015038431160880926596444120056382965574060004785863254034896650973219892312902618178382432821516635125903221602043934899109276966966517957700547350574886227008297673065351241757286466998545659098104984686203101972857490780853667076564903847035723103905045063205859506352123624289010177704987057119848306908505952918386034364682851983992565331356605657993002772778791250136684535611307499773602634441556404274840997588968945131349492808883134367998949363806013650771406820160687478155138305181938511545472711862988538003664961945357922082108016588939215859436362594542033676180988017337862995460449103518620851197895842428146079020585505960709805620608422468416672852036895533561894691981152888300473179672318481847850412150505731083713710402748939455367786263843043791875878699567024611366202698313117674880591307453367635699930195362137703602981801170376258366451591703987857708381053093313878471213079333009434143986964829300454721582488984551857300097630741864404180074431305063689248406282542087702009074391927568296225827826310616196012644099160708027059010346988636920784195998922510980988054938110969683843805435552468587525188372487375239117045700912585805562225055150733263301269940737404750545792045029714748495021858755751960167501756317663040223626749812099545322555638674366563177541361329167796506171009903338957314202568977591030991007892855558153967248854838128686780948514180722063583985403256013744540984351308593194301256429478900076809601737032552158850523508266221300645410547696578124230317754637224275769129677956302196444716728989319208079378427668684082793504342848557468201582781835017347518453262377437577203590858627280537914102528616586135203465735231929065226415496275929538329121370968986775931726377672642460301658350114146194202610376023862835998694394219501684067222270194785022089912886293549009874094305334089054339860601070137124425536902490162727576365778771990576054020961799394612558201976047615015670671264034509877022217533829895137428881375463676771561404407176854080330824939804503830086848222954514604319014314296453183118956016040010161849915303342422154466072387356182046827866982951389908800118675167392253326105273903899725414431970881975673414873363043903634489602934660038717404058761021935037801906275438661261172086519767479918975341539378193091474505624367266963924307945548558004703790880106926511757380446802287799775350689719329845186264750607919378029551561605100351964084020118923330727625192929661507353724670596747039836001817774448887123564431759068033467392849005942135322547864168923570535954706396294838151371193498575826806496153505649196762122954494117531428648386511768300710043199156365863663910200004644330931958118011751207438615442588588846394570845925797517240369229123027731719742069927163430575700259138478358327120363948662646267347019744628543196647010353689076351244465550795915202050977442673942328285816013364858540146002824761731814544613854452045941544463269408785935935589933977631518945436339620458659118732408080724472633742612824566758575927164884622274004671340740960954402923141927841852797385627495992484988204670473617084576437825127517249099961973003515662252330532034906177124094166358024365042355314940403346790455759515396207288547479059465913473232174110839983040930475459961861878987186865602953872769561532126092324678054987597177488124333932872301965728088354763493844407072043803094549474644303189635058841608562522790181747581487751107543840769000510755746464182513545752169729367121156724734082702592102234890131445699606638182078903438113155051617956417415422391320549233372826409240445177698272219029918366272711228913900290913339358273779095870497240956058340429670001335964335003603611977985845940552357753200048910513094933761701269399321622554622972637495975330424195087576321206412925562241409771364585558782532593035040047204027594300222755586897739216842404345944344991561317237503179314940484772813354760195246927180147046013641256273061746542770497601524136487129371810690315169336157966427541965009426975855797275082272402425002915684298492189654702810461237968201555999369627103797658635781177539092148560211562214716973050347210752660726958822543508143497939020341278894215647320956992942176708751763674363953541295253408401746620960967053014076200265280746456695308508984528302342123093335669772265288764602491772135351609692121475465555211196980457362740072137219756347840372528365729674889041762505094204902391869600484217982107419592812704263444896324793231364968856946389855849500543925735475321735849248814896333047144313202407002971030649167990539268881070875288991774135943095623041542581845036333956614337433286524421028349899674386039079831205042182076877825466187480191022838189372795761232668762759298710522492796984800583273684703731520903643670378195032379487850336961975320081020020623998367756818095374625205814077457857101518167305997330999311078094818061595675783313683943471833996116845455473088395385576488817773389776101914051065160437006139266762675723550088618846749085780473214643038367446698064349327653051764244870096623010722720387325690761246662066099557044487648820569947419462371037325411646529845500947676519077464924331008765447632957056303538136651856241705127208312099181218498098873118445030873305538133602325537598525849534608200480180126487799532866933729119072229528178397953737361430008360818183132102858824498479670186661611808498781089862008508852516133081287063546890625108332877891014625948936727796890374587535061637879134870786565160146640157059793542718855528717026809725983121709451066488732273302481289409401464186580594442774617787192788735424695606815609084540971601467335069507639317633512582673582219509516637926776072332063006513938446676628725964378007726258185494387541041568590641123323771625117619200460512576355668207671287944310738120416679006278628232628163197018391876302370582163305069050949617254976413488601747767788134602687668145929451115496263006052033772471007667483876504271610464235450175122596856269509646343548419181203906753470741661885595458790758085713727132485602777986080775193563095297388628693243732396310126854959659364044821876210881584151108683310450009940810562930136547742355116580581182115949475773249855277844864277894675892802603588513813112040132036725742855394325721228019041893624602683272206257341182796043321513396065609978820524140101090356820817159041790302766797133769240626813935312984130844237571665758699322753029679066159771958989011605078887490934114179113652258624118430412187289541308706796592648844458738478206295197098700138846935791290441307007052190077786623411961207452841017061559710950562377004204411056567289153840159565422093370547714651909103963388461010132163123525497991246218464159893001395234501148883584593817269724202408151500988314039237029362680532045876140704872027696427144907491557752420101669232020932073398858704180875962914922709467121936081628444174622774305181329035684595694426527945680270099239912343919315333906563590028490752242667766996999477583146437790179866526358632342762428624900234607450772688880258069315171968302545788807256990334027834605608719119663634024676718744981951812277997092233907221572612772233787441022838505467260267552907293204163530571531856313841939422289056586322444068603803194090008268384219891652747093604274343192724492731879950528403039721461836734127487107472547855446948825283381897016483748361339790960230773515643679615872906122979426761165714410011757036223859669248650778418678119502748067428630372499465111953149997875142495319693939234766365096915398434014095576762258949239147093184710549395611636124029214503374301365076242795289829764938131977162529669308087694133427338396522571511865617586510437886288179990022475559657844328088807657248258579799404793998998171747883899352691751119524022982206436786395754557975273235113203270651560384323445373022895642269540336897025562586977729591122906850457022643792879956546247380709808062991905468721028476344011458566964667968837053313049818664628733456332467471733351642805402464789243181330607943696531413403034643880127011196648624367075052516710704086855518911243260530821979805169529631375050903511756996082714755562942786936042987851087330671341819619376914202140062810177852279000816188599281890153702948805557265651274066449025423704847141714288876550928504100812496309782190575301917585676485696484819068589798824027395939816880023179647841860237317449649399910554776119657654589468870417372544947155563251052474877962572045475304070965727165572386440561722529562604473398388182183950347138407243663369324617967402622159984838769587957373695336702897024954709949733002704819382794336880172122369974680607413065844824908599065366189253906875246576738357626781065426433690405732399931566173423812975607101045492234441707836748776204949697787188620183642191638071898423473247555430933945068908790550692594794614381828068645359918421842707076782632012054296313468481333247562726304404792325119743284036718572129546446232381709390983759383614388934228387693240844528411361980571467338102620390490850401384018602773389328402987968646296535250729214071638819511507272334750703023406162538488055155569775479723698368286898761272579459210985778028845075123089752931761588661482700229220541203017323865618210514222456768806543610515247440244592201787041300098967255842014211096356828647391380182840262748385706306759310102021295655505167874682864327414413099218551152331459297347867287897821692865854744482077364957390137607891541413548062275899120293217171624485755447256577670638638666785683085823319126919980586859491061362572258280921030759274604063651277062286015738772007175545134368081478660359745184161259943676407371136298972458127270137537447311446961734098609202798409104809047548087561076098809286649472744324669466164691534793111948794536413304368936620288273405759632852484596066004307293466991685909578855113628292644580903366717492044870954589846293231676917365838784087134446645753826626268460308291815382944491337809693255759996409493995452881686846866908349603345759649392423473634001739284117848735479974454290609517728335664223309851701658292678455922263783411644795246470046165576293648020659668411907231172596525343150655519541812282330266191799610724383627191791427215975011355451864419550831979292149449669783409703411565662357698200282933937325042121472754062040118303117575583342222844698471665282892037088517134690879594211603726058294044666899063641014666697993372314190940152539936149083267046878524460488724830726283808024363550076655394670266685059972540996409382036837738697848757626109019223173972711204233830087817558640905692994495855694291440366068276710204488936194270292018467052174816367550631582551808350490305229899732307702097986551041277289697367303951897126546211003709959608881442267198016508583518532203867217517243416923316542745039449537022999759257262780364645272390502518486389547826100171217435949999301540057347424591764555302138076051455697454163698093454927802497340322440895417186584143697711030545461971499070565369893754050145548800648576536278761038012229378876149608888702411634678313604242602464119090250589299519027554448273869593742041560902671326076280148253434158577483429242133081626566609679779641939100133791464646411605037057585601637361630859568166150252403387935739009098127262369237197105045048850948326731805835558807496660498292502247354764268878905694563170192641097480549703060181084117182042478493112200696769330076178067501115554621939788743810547838826508017412666719264325488711980397395455184418865092171995642128767992496105344916829478061223480107485084724063166779532481189369292907526761873091297837736880242729150592421801891730704083783836189539778753154785907200053414011947283573695275662039085054321403837552344832546392577507669067857891992708958997055528789783701666307058114232053014540521395286047191664170708371859074827367744743267077623711236843822298637118622921496015758891009983096846527678257092403342517549288954764832709008796789287091817333089067827245453574599893900143062761047929642072133168735884764884461816614586923721784954163334645556328203027501900289146664282851249515370886899239730243095745430279300337889421424044256176719627450022366219175228795422433018794959509538902399254739050169353946695966255833807585396838932256372187655123987255936584025210462897083397944264263698808477162529503719891221171491999596376467682843574185092153408801485019485957051284799444401444791709952995327515832561268836333938569991523512738413427862898439550973610006482671538821373597612590648349774245595990021834066174927890849000556471571557093618333521590347996661509722440817156210309148911235844999202784940029837292793249013866293871198297657858992987742352280392635618170702303590210873855919509873889116472735443295876002763688191419885382516506199403879489599868508969295730343600474686918518414342103648451350043378687437372999585011414602159168431181024139620754889913848226668696322098141923133356418653968874743367076408226587550508864016498929791851735384253900979776362115460791369340929233793854320699092570953846759658594272513344658816827269612080552441520414375408300462303787576119302487957982423827640099534677032254184728727019418914963878731734125700754836904624223410577654175139227847968476689143193172843135769784148281705540312778363402736835817878042280082395711002696727311319301810659137103814033621324590895177497440312963620207044772890913904020899860402470447761572493085409379368570807661203987661120811908295342064150172975706466583878133137664062313845811712692092475305235361842822938946558875877084865643379401575248418091485291485667592387749029381962012197528651547494563286490006699076308351825771166826944717987713749220949259272438317471650371870862007310053746015437168148063684780112810157856432733081302432384689200159616065698057609614125783060395643948525334935453640300531557320349922332347858164871422110561155246122011732026518297989500328714034063838152099962954104775977955816727280650163778813410393721340062690275520090623412135211195337436033238032429372974154230151147259784975654869518411349770526728832404774973253268077038485407662321038268918803839664653458092521543269130119414398912289564837065996544700861779218754416324757850861770861046418983085676659070787838799167644679002743639428149495423445645846859393406488527448830089411696146077496350003090349351176964363972857639084627131689539412744635431632412470341481191131866256585614114411520767160134599328054172661049854752001430874677232295395349450621958543397398006339756226827727357276469667644763729082754930451881612227219845770715060736989908105701437830404638310590769158986403604916361243260822289530825632641548215754280019525764687271770550542572689939134286874212416641790168819330968393257287116477744422920869037691846735937318269810816849892555813783189888717728668758854093295666868198220876174271774459383752073113620114524176724985685472646481705461593693670551219655516843547244129374871236555793082291770861930840290492001110110557682697495016444558253885320181419668044717853471090455078578403590085676844208015808720787946957407804265295811613698709688794999830445031955942926731584230787831617203078527342720132979494652954156259683737610392191026579500025073841062862904193947779887368962542812931560778946171310582446363899423412044931844495718980655632571459026151512228695306553256979176035283211047556290771754767455843355563759338355138146056009075963274498323166466483841966336626750226029455322178348451330957429237111010502754480014535659697856289047398985923737504529332301538612681674022532517514358878338704831368767780870118510037124490095943915615388620131000604563288143068228174292353525834959188093026704710416843301454446566828077412467285582410947644311986694420653259288616463262173250390771281149159126805780876603586614038133268848103796325535302335834113592453874210512610619703010630183073745411724816320995403830334879885984133789355308567776595877215873096100833737338377679712901710110212895682239569374433843859179197458425890410867745586146886309205600242695563164894154170363735308281117041071348558970609487644019566720941925744901756622970962915651173731203418364629844193506801612441855515450664719288463704668582018133367005524234981713602256285776499263276903846619389069139719654097110980622041909130653696040097037346676046970350354515557245186865069835765782143430259510125028972665701548403570060272190623891882723897486405414753579830837094642746556440499210864489137503608036245315614457339828015097024690919122543300808793716185389852103482538195773114251714083126524204158199325109066631066377237916823222129366186183596601899183682945386628787607880869447177361081020678471565572891781096562059134124429906953771771325665467167987089085123960515080749675874630889449126613487697205505759526689916352651367723218353148514400219660858564402631927624828879142369889015423581846577754073771421730515707385615839262527620494037176615806681662367841395083180749839825457450787660892375069299636929518611242949347955016327863912981003462951010900679050766740792118370092618849220478739216793768122147165558091677053213503490413824461990502972227028388286524706807811979994548801488015476467681191593798273634748830808717615200683059004818362570762891270335316028678854189900776470125658271368281678011191218099927845155900537817749469222748400988347972430859637609702455964102000593031777321162878766088063960949386855658022707619759766637768307650735795952128746642964031068135180988967895126511300508501578982708669934657740558783820809746128617115954485031541904343762890839893765575082261244752180315109661180803288256668455719621809493624929946137917183863443328399328988441346830872976784690666447748840781364765099972298425251447636090775114736121731773884017071613094639361604228302676014403895926144879019581557246576007817954365676411065436948894470930388206123247430566242527192224793100012958176735650266900733477802798000386490892484791134577055771569986223751120508735632818055715470692544686971239447359862670533644609435871515048983233582392370061056407017123825042234420347025788993411177553670037741314676556639249587680235111466752272090391194519342178535388489032793846667856291096786501718119612096960411516949167454881990565503132237812992369017573949905668168427627536701572624195318734680800695773285754182533865238682655245200671804848112660673885997011493765592806161297710446601245381062048328750276183460344784945033890986617872974400268690803413331200869388342858072881170749599615009402202277204487162979220866325809478693237949117624164134754581251423203323669470236958887444356249925775343189269882170333024186816842924055995041689642957302692087869626788286964294947718011168090849041101747039126656512131741474530699637946303368015087107742896052022171996983564020246039282814744414193611500615718775667886664144625605946119167619620738651789300712368734723703234945241722853501003722928543258949256304711850478487033223936684922119800089725943750721635603948334282447249186181874181054088317431625047940930320221394068125547936095031875326930164643988802288799301760795340613088593916789076280931878113381920560648897826205430519058451412279402802802953892730356571673802683341144993910724854160607053829730278182425738022412863940979759948904491559639780749992861732838302625798026897460512018035389085676078746290059130887099711840320667137046369298146873699861637992968553683594918770575207220094172074292338217342348441924310597121043910194811641340183764819541341573747096258044381812434074073527450482601543433050118079168179575279257537965796539767228048688730337835346403512978745430979965882722573062295862677493511441856952882185149561472671934763319543940667217074751907407503410740656185151143757058672511460352969252409170677196610535211288452984154118244061073028478593152187899082964693092204066519961425819993606813450971737238372710413175900070225901517943195474911629542908002030258046275264560886304725643373616059997000697262869690129603800782364353824816808315226032303989126802327823229298165215954897129538164790844821732543295786852764837611231796757980681343936969900795552730395848992381061267837133778258883029667695610262115931274682845131732463585443062053523662179065678174453227805138620741862419790797216570812782538908752673516338617101760905478345434645212911051491098769109493936716002652755273944496160050909289729145744634884387985517762198120174023429249699309329291678718929949007081608997073030396868811145513034183020486612022430553913154334031448518406032572279198299241780289447215626229401927098859920906687534722355577989109228858927213116673169228410572569889991234741729603102410904365599686739884425567199238127803662415875358440509164722986982827845603950454994931974372835040883746554271458374889781975444166266865264303183640844259992323757301723250191883686533238171808910066193803375724826887458221291549067211243109532112959140887470058529995067186737329654491880620918596812055943084993485838922858422749181500654585382833539866199518043958279896575963396267603822718121365786891541613956124204322529752866117318010939994324205291388215945608448237604193885469051653027312758030057634679425829556948415377821671511961526043159443902636202335057911594064278665851037591070082617588856266647782021587257111033884752290973177737112625447094131748536618777770915460847495903557220844016599473501303100318229397237646137630629410055763204056332187831249349979587789961270592884804545401211172136293034396668435477835648208408399999919925031188712920846319187792995971263668439252468658938020389250139354526315544786012815610377585376190808231736147083202567033617376225517180013127117476889109358528069924406550847878255456458762889911125783299249462726201444152452929902496131263277604631272297352037820540552810279837321289689805537204393002640290115498596857595388543731319411710066785753765996373330632323769320006464584850742311986501311136200380914074283891281390029649006848441450358197022576728836889150698094323925849023501064393204393509609271760031202997772519879458411023163838537880965567645613279655632866361421450696905338412601630145372155394892059298303400279004079096161941379034022571985916393639092233853256258168429124193988784306870219019485305472315703946487208284475181521599644637188732992556482620806998280193561994283325768738380397565201958463875876016778424318707451229663537220663195602315258564711058190357664956562670446990607980742155819062531012318055934811765670956524598576380475639905999565701016436430795394447937924733405979921140260574914008845690648781696273042610383438504072441488260905611991987801382038198406645001914907707303451399961044142091739261923824831401860984532960366127456033613947898931560147677079034253617893353190371463511771766245352216412863504579450623064239022290315953057629365134190466357118044640106847104309832519744307571271104006845562111610449373040643642458284024782975762196055586194390038675600007070743078180868421261985201711811310064382316065049154508502752191240967249654282544757186614576911257873996037025221898965720378809235199215719962248496826575948746934707366918161748362633311998523144629285433521823953550362697849405492587389656538838895704015367262597793737167378237212414118826936669325644561388882463126094733836481806779004480627999447282842594157039861531788992848703551744729403041209699023469647358253968136857047277762510804254639715307469957779922274389624458894711392445479807691165455581423710366609851172753184548317546661332882957044137431017238403494950239080297410712943844430310127585745959889482268138635037981656472076559048909270118017100765203433754184934216837259845395542183192568035758737791384401963044288127080012947367693753145870170029892950875304048565071952451292461569814324253175541495605839726381197236902897559871908617291150271584295229985967837266765793073511314936382152744229101870221286281131721118186267287866409410589218681268506767875543442369445587672888359538969850256920752923362330957280201337460225786708484043195502000543782580481710425983200613952594856897662103926939554499353957399857158201664353431976944566038666727955613574331231393775606395524010745495855621812312582503183441722868981937928415369581142233621385654048175617278758265621280725851516644572550898674196952785911834833350916622157893565229193922746441536030897248824721966061548672766393599540041915296098214191800456398731966637394551971007982723883894364211856337498239291477814889057049398001620115091005194365472981706201565396180896378444070109544586803181839495346504027187662117734866175157632293091518201393616079978147686248366518424670226325167269958606317769674258959685780111666302485505140972569906613341647864782314563130238621727636866435803727394788361939518348396956309338440935351641050597831883820071709765941761709837450270730676996317801620801695361624599829879707190656327122158851822776887098622278973260298399596803992527336196505007277321191789934376663379110544865876340868742440376060991099070808297525294006032123505671366211203720779443660050835702226168704564656346011515907964350250415844814820837550852082612312762954921902461920365259558605339634754861961730182825568399751350701589491492712763201402527705278910644900543817273894310279103167382584451591824907228342040956521113989645627273565816448776778176246601998357268903088392960020561445273625481408717801628322479790541535299024143738796051991723145656962491652144226695680367017607042355700467511581010861696018337186291065058753664092217721260449985759318975999201246877813511555603701965916009764047021863195949323389448512693960241941504002145315947254629059819340155347591143657075779908799513567320885192774142651897867790454434130209576273256782634720841892774870087233726111875599649646410762782209221213429147454516334141879487697287757282674726133930234483991120995422129686560664801852724382273487427725990533447260902863533202573300665635541664971449334736383312291086319933732231019046760690738314582385696949400215230342781646226103093953089725358428836559868252727719373199257446694246654769720281682006428328799999703155811745830571083357457194161444294290320879663639853195412244137756126856514142410360024543307186795014450547967470445442022857609036497256629979681484593998465304464721895144192475438002694243828414120344021556168461343444399161032426666333964164209273981034669045255124432005835259499590304399025040111598668560383283354938103987837250645190077461869605835347331216183661907739480302117484693987954206448664560243849850060030624823742428539243594298812780498123242504555754167577963384470759496004986036706482943509157632027195269545205071635175433652577404605834749175068198053321991248060286145416674548854546064515933383294500678846199940501621195111485921174633494601758887885779097906539644943079044374069379212927392798634303851238892127578774687774930574345132887107886202559844338275764732032892896637208562105348998196288034180083420622653631447569355480908744303615919543912910162825730429930340877352223137071483228703761038672024027577242886704196516278390504981123470359565189596660964663379655359375433432706761597809578679708886549622317402403300558874144389736251931871070600622734548802494941983115075143643182693098819796699938192879280518743151295402814282813567158837941792045708346819477316957536061149920167205831610625406621812020310784363178878153555650978161800136343768854720592380018862956030768642645002507326885891860811151656062232663058611714162412378333265163746637093844613859521612469983932454759217815380603650901422866155876460096404058142605383974762625708566348397041427335638764325897075813836488554341073637423981918920783215126542561744206502500707958076918938337321754400981959260158134863211482783826936417730585033580393061112797698117878507463949947477961246546145832990879074036313204014654697361995527927963719628724466917673720146012622435301518858829369935966012613432383384375203654063830061279656164785405296898848336952180695450660033955184647246735020692746670548317475736988094773074059832023136579926446864724966761417167356062937710327987762686791129816522339035809997668306480791840227629973328368689659191879306001591779989709273585956247697968277123112517338550148690891150803538572048206265239118831628706038655041766372173348187969142733563591093957293894444275012282104568436433513454725807199622047317340262168018751680784270543971289978332761784193649045998550491524264395668214900221170762230535401304760917616851519335324588998120576025940410984177780426982958310755310127217767582199317546026807054010752956157138049752177469350260807992630183558409985882420571046948181868879205468515390919140365897907543138147901135287003611187016690392646684532466126997485346382797439718862189497534208358283863191024878513822977367666629509997777140792385614558606361167836553590237944387873351573062454535341695973864889392636113399037481500503772664368056850402861097110662001743669644640021326608276312473162482359475295049564169283800181704018403263168725400465343743270830001750923513560323636476066777871138778157465643695288194090103178523528606043717266559607689031678243111170847803333100366707896101531610860500521554224781187879480937572557413618985590995931239933369129068670821808888552827635166856320416397952723443469251940286256939356909806432594839311933592522526022904561018019650599748528475870665919058241914314686850838084586583929213483967108012186487135661292907903507209143859416208874009114384707586452409418683661172219689392311328862169553241063174257464927166373303962893849587663835163646706823835402772809266607006375554808667942162683319009065853828740613169632205944244860895390568691524054835178699097726370417713289404410034338237755780097058938358486979490273539338424287476289048660100481783380552444068507875274723805191173576194046832915432810596307386633942956448756314312399458415427945172486355986800496168218076664645241989459293906766772088472696932688748557480221598324479200394121078451318689156300172262888661033763330534878993017505758335143797716562163013157294992806963636789737653129423466712447690122073776161623316147190249754189946641821405215270821168788616687943174287787149012636729793522324799805375710624752272962657656349428441315333957660050893103131802225161665093282522378990770576758794645590211477526244804230101923413176162496873414445526062190314594755061636789691879852386219295090160222728462772338960382429629749952078859699220256983456552786817492001901369680866295446880355915550144206037620319717036432068171506277861650789125413317697212597214478308290108761067130491558391880697726369066213492208047722562199509691721071419854347767121951676676442435565324312968005121907947349913924222185195108257003127396317089032176387127340473844487919305382427501726714854834349881519287903678240577573490838132353742052489920793099607800071674022771809848188980597172431913118221439053858100014914219572607311359171821198399543275962627120823821223585118905360886458642160076444318636172789261670753059203723879054045085471135354732607563615393130903325592032851235331364903476165445509087727943512665215783303609594352724936020507630472786761823322694133215322160684960022385297231313058756386525966172669923946716797803561748642680617741238105044280863803946678725869058597584443470103097638132565544211814429952627678127819965912591140388016638133133121557951739044371961552647039845563289271015377787203666204373052119336283796540149575080045179223965394960662075932149978233593276515235692259367248117889026440603041847243987624190081721364953329750290895512407982435230006865799536745613677365364743498518029303469410213467486182211823052786913985737587682497789014266826930097362152787022259303342799013203375266814899926365956587292092303535578405582201551384868037122528185493978219919143621857400186313489836867621454100367491150031454037625174349833955217919862834240333000930872239139783009193987037327012315358692844225453180807354346670820269392338195846869574721064331178052457225886024699214456908481908412474577719536208860835323267745434201718121323597523561569762952436253093977305027605105546408170437567665112920867623780169603564155466383217056822361212847794105519302333842196603932691527304528619619259482854515239523780877017238893954969722124204395149951136879391312582564220695346260005206301880526002305328398907794746832939587750201353099281539757328959249199531553377143668595736124302521234024470000074300500910800432118728451388545458337186782692745974282082998947588313546778877341183210791984870516878514157355190170308465026170159730116437007165405861293329965607226707955463987223650104988589863604261503937872622881502462847705983841439112733366662900794067961683298733285575296333490860664722849573765240977136282215756736351635697137412680066551600577517772275090881754206603747284806301591631859987606892640690282726209668375333094818702776465888619962889281097687737220229999063284751229720224353570438893528524991549634976128996406420149220611420812144807818178884150627263751530952446530402461013551506555100664684233150143162824563163741793661614890434188674760976822913260529627586315887608584758078488836902427641582050285793291663007344340013967708067721688482883935923498610021138487076566331065413661682053020635718105710338700716119427587479036858166230925381705283083523440057683093596487554524486274061566290606730933405785009206235101801542332669567461564952604386498128270913645763102974230425128416199980555101688059340777256686510518321184187827311611280827135720086802031521575347413637670669246180233903500387869925087846217539761857228501443069697242600964979490942089574083785955633241546070626569129141098002647721929055223949580904515510563553506301287326786126299503030528665184976483817755052995064550541024136547660542979675399819212438924269893205173054099895625323217945967382439633887239898041008632698752730345226130165836115916483374137521922973314454055330757470245864567030977024649717614203915477452019222955707641366722516357837283541151622954340233476252008134414181497979747072646639296077118591181231375097168628638549219627582521723045050835051066669665376148463959182656175948882215976901866590150980658614307448118929746281260233478037040027886704626178703611304569685153899803895109967340723273622485225188431415650106645647279633765102687654197035230766336049635165343658870775577502103121161563636035255280944039793894756207784350968102060077373191544825508465334571795272091905558424436776585536385929834127281804560277549881989881049338165650331054159063455207259553068113020156140776794775822983209899578619773035180156093063479420461419097360154713159113334398854402277410912616616945170373419520774315222823540277161790373865692899761511818495319118938890225542564627169670545216416635248801106550573215752076460019582180901908522488059286767205151139654941069007979589238786625439321028904157698589373022009684287154437907354382962260408384887544299493387779091316950463726436779851862298221888991727965730756036129044124336493265788662782025746307586067846495949463365034123707171336985400982147807900625804794388186039576824916694873676225698640808244764998971657566454319091779553005982671760641988456422450296140783272832192702431934949431963420614783799555394104258238709212135343473040485723695524585613332880638727787388224487343001036548791465871648533715792217418260403798071470121328028242288118701804603592891736832208455448751821780044508733866187025250587751745111794405735946255254612856304545632573830204799065824419019149294873456602258904743509870065397265105782818398536616903267311028542550836037952009395128046976872238174099070975620824769746265419721433931982041036923801933016720753587439213567699904705887972838500307800656168542192946808241927044511110922345207295445758649031972807858341421728633269208454498797336075769883254083059527596790044416013162694760206039859743234879492291109927497490695474199694411153975994029147607888094137739644898520154301006511384432216609042340184063848849358546645170320711771991881750066122941212326421549217620918473584657933012060911082524636039450196036085909092705509549278204532036602388763463887925926128446201838234734272427006859263798564835668263076522133118378167778091615792878321541100155302577958458973125013265955500552291596165273243222746529115541775643590836661856329428000011265256349821991412650393102542429027226397963119121144063664927293687101763133949422382562256681468511666908640203869927322997493915321103501286313445692726101798748674898651717136709391738240592430896655213145216154964193275108846711165900367820760101844193845739384437523882609805444779593312899819876749899856274836359391602811363585757042824326413187270787434685480735972450923046867040624481704478378172358438196392575270056772480261040836827091201991326397597682211144034192691928989914692892750960913358857022822707513944414914951890296857784350867676798212243004309374233678612659543314271124227324833663279202849562918042204104445163233805761870210036711392294774788870299316811901954972996954165797446316710675390461672230214782606881678527142710629952581629989371780243774074524611586550174001300138902326277491773086788017532564652621915335383785001265178213744711532348033163406676255590982724357896946695494719962614376049488282479967559192462225206537021868422147720359233633740529171160196761410392796913894081316203398671024026699307403121034654158448601542983546534407594801313513652267319318678719439970639190142704624695660012119400359405078044825657239491797697768271742922970354455177119658314198972164410898407949912896014958204188329880131487893011830209986347332623651452110950711570019042363776900820535025993050593292860488454704594727030041578829427001453398015454088226140542652266040948317291298658941559003917143550731405978754532144605055336735565807444088828398941059897743538947924775159057770255639536728027192710388457237250924498502106599208104603474028122815770756620901676410427153320146743727302730449175846445863046659200624869480626722721433130281117084194174376439210327283475680933110155792326022863626754296923661327139566890815240640308254202493012594243960286750391451003810286235839744531031861554792634507197067446693170849790049414145425532152905629142911433768796101273048793249739714733048430788006353388284327542764957683814194897261207694153951643651356163836634300822692726022673989345844002823646601322692233453119094084456993553164310245383335796313186634849269131623728228310765850572748243765952479191393310770703067066185914153529464850473887186620000260878318547144599706840744054528755174943356400796945483979364339806910251112769774369171324108801448819016601826233187294941382746571599063052913866395946094233912183807701752507331758919153219027079457776915068658184488320743556549901394815340907795361668876139659542352612877079471655356166264049643479877326623762023402124199863596978670925286712866780145870130738068005905323538283225517412403708953041880246590338891343187874090065212778750228305424762308843871820840877058903577510590358881085474818252792587187682123050436843695820141195096014828602716095667618016890154805402147061142449377212489833128538859072744470242421641709052907450733251610551525674321498434255916934928360916594718946696518363983326302429249005775428602824272191427415680537924365053428542237320332325367250165382699361022017644710954154377628421102888474470090783854860176859172788468815590902790352808917510915917796591452431849477180862471774238788234923305035518033558646003401807857482679657028469831114470910763708838622832880870092184998337392177294536782048518538608672330378908074772051935464989091679651288454159131831478019410437561183357694385044662151645230817024703542078734629954904972199178675222980616921181251626611677979862193638825103653132257719639373743392197369557267351468055498315423831827430886178610983453951471330263097765387790285073177482247237768472902453186386152899926613695617392741850675400193937103859180791191226682607654410526474157028476175187750232958975989331749751942344207211648223344261702061616436464579389568022834205751837983062674617423113631388183125027261830795210212968710914538383108455251012818740129512665429909570736685887987362179905284303141517744903626350844013851502291573577434149214744185000906326222265050273109421521424698563868487199672553794794630413126910443129778258164828535562607659207084956165297947413927469691306116972729067341484569075777012272450382076950886621888939777760755475634722668438519035584332799059311022402921626092573879262647149064911833204155259175837592752820981498081882021183075258835186216713898901965450522644438759202448925269789096477236374168966178180683598665011762566058989443036772520353341017547540671341447050344749972967730953055153758802175366512155508106318516331662293099651635120571719254665025323526267538076358781417482067495201124702880638983308057122488798980651135978516526745355622078868096773329721525388059769557555065119050109440316544570717092390819712091633994836520992128858614188637137629846560014279112865564521027629823609980829913278951179446228972343985169747281589012143438062629251833522198117583256071038988696510922382099527798756502531497997302261921959644348677154266868427851097069659798811811241545265311627171421789005660091641889035054980979913882727148854586803397006126048313241957444888765771656910114736905638941539196790993735114462186963973921469076183572189552342366675600380060365008058818698408650190201846456142532154302031945696095642075184005136663718326845162969328300803627487779892610086272852704106127807798045913045001566132387012955879127250600242723562338708031135111060823285842595411723939438556803468399854122451422683042711300031597256982542360952524076449365843888877026963854194190331457141722679843653135696621547536089389513938871321410065206790064424919280031916710314525653269317721858534567800860825208181470421827561707029438221385236776602934252680759136224764725346970611980735828260926879353937344441518711452381626956329135643456357948509020189009595078285391149464735487882414257850462908731197081925465584424907863746923604902343481643492459442429856867229404416791708928740269243767004589187808122252890979585504055736131132878471467278145006659350187182610318393934154102965407845620778184024524285355465445332461589835822715476855725367315497482211939305252353412604616072525390260172296691135365219858134817714565032295356854130420695531163447236632933297333741628277257918207408022798992036036183091723185091553929920654467003457652269124584739400332227150443472610341362658161216825042678717377625508366547386509372350553060704707395192136162113592145111995426204411651836162587906526109154390590294317962655719410957553491109595355571554760543199692394593801115732726940887601946882977062081837211566294627244398295605860402936307065645953601097742886097421352761185325706032212561412104858576100847980695897173583122428165475479947513522325965484006001356232500507880700972059426361493872957103280255668263576926855558610901135131751577653993281497387998669235148588738612530055643182227637709854042679781351845987654958793238794551029199077054079579380511562824925110096064183165954708752718757281010465245745641168751909531544371642968389839501922046115780263598853655712471890643834146814724428370580956436584857055562970300661931024946953245825478932420734026290862198119326948509412829969433237625058268831678158337064152463415761157296516098275842574821362694563231386161611657189242304330151385921771063266127795940175790958429309009179739639730226972903923042379513557695480932361689591662577743718118788678883762420677235235294257635757804993192144285164604346948424831729337707103451283161407526579430355497119471926573363033890228144437273438190818926818958033422104812862445345532646631761316245507806911750134011047857273912226205267726870909450234878955565657687052498348512683474218548376329717746097292346472603067819485381637033182645991160980441781091641453582794697822206678540549283509045652360712493164033160888666107825813037028886936800921045308702337864835509048760633176462152252619372721650050285430776802175151440795280159610447343741841420821387783842564728751591353229672003271130269640689455967627872284059401139845520384180612475166384840182790750150869232250217629991477776371933389726157020411519187415051995061034593798380313792390446983928144814889471768341635622470476357381282835124521550105067403482414815615106913563807493744522323670370145621895187372512011007627256069097734635710719055902644689772074846508030006476614363964904062007306964562854246483343659538861354201462727239437736575964159353789262106315767277006405142220914334552879918481414356622541000189056151362075474686083112803281068060518878481639954909152450334861419043406373431537976398334655421934755238103836963152712568891269278218545298625671498315434744248402683264144130491382664949104878775234536036712755680491510037271307448091774362859687204679019049557188132547389649692148809867559703135839843236003124329071117159099173807060791916040875349863692162854335308775240473538348943505658978867758514328211157473831541941046690399385521421513660921664057222423857652726978967944011883480332404131473092617985098156329959989008975523420550389001941260211223709513158671098930356293542074989062546681014988680541797352130127500631671124854036155794445822172581130568267803846030429631706814682363908369917084202944512058916972027131723111573312886413359437498541631276087418762218186255316392586598993994755451714666649990292119306785514241838235310522655518812157487753618968595915052039627231204921816926785282676271302921604916269044874489988207328991925806805762418868737446668658990916397372325804621091302488218713138666366276623528501736538225646305782072775662824867492254379199349010934223719278223849797415266803686472203876523520257088719049176698094081316768042614611459046867765567948246445343677497047017670654265432966963213052381607447594239426752053320911725180513470836267260993620127213848686860551372280090456226759949384922691241462291392795312211814656148075005044146835559214058528608051288547895631239354421557844716401101690023310696379645498292606031758921109454031779244156218218880134597135357129668282214187385713232996914097145268384485603606183208846471713718435589663609949647000351151287796639762848452272458277663923492911857221043249800102139792872839789944273641638128060571200605296193065573168997160237394415858287462319697007242951247211503957287385509464973348153144330459304585408319673792299116263128809878752309085710849853215402974112094964811396856353634579534528514880172710519529608781353445549030905630353902322470416236356844087787387936325186568581479329482622700926779124326894410332339352168944918925089291287153628390223854181518683073898786348990182592667937535038408371897156908896156837327696869201107217800591563678198200205269199320568198770911240363812525413170752732358316347056989922078366850357581343397557079481377101727497291628234011312920321012074736281347317260164771699058461345429562376304816455633485288418905294453756190168560243265469867032076714548846847891371086262270308901522074189704654598064574408005892514962422253902976337103054823457818031990720953359023394166830064367366620879487612803137146006649297344666243426137635816169853745610142486857575528120289889693364126765480741650899030607524984757956375391198987010858369930611317961975934944216949189699953257417545748345666222268874520711913502068482896834966801735307885711876346160621380337176377052793913672339123073296261395343366481637322231710487748785135502780354659380135275445477609740767792115322635413891906941660879254116280865496556712736914879191807687883675490612628923474028858540168164177771603491509451615180399871573198973319173943708429937348527561063956083739217584757299809003759092764008710693983453633281591130384599302668604334167965442212345916582941839404623778995515632810743977121208521998168664288021675072513350189065202979292024999869178356712483601089348258454356008935228687382872601701927914593427787175134225881012164275578133508163984839972074986642483173735376125935477589063406786650592459193330641076604802097047852333675087109154151863509635150710956769922889599301552979653160810354238219512226034679641206855138981452493703279586571500134913804779676491856501281513108307879508744013778715600765911752943602399593203391330144490911013533038417061675430667076780861258770321231574499837843266732346416853261761128545871241477580904907737978834544356648801362362943117164812497313355147968626625942353328180147700014858769050408521197039045066139809435942691052405694591714561371949783172233531021013066757748922484773078362700273582302508230794018877836086182698343810821357588607581189982732267744043012625047345098957190486175253385377577744546849851073411435570775994353100586208936516965416261404961745248828618973377023699704675527416737791846128352970288159461070646357746905218749718943908079418748840476447937487456928149571954785456698525223457409473885290380419486080178095685489199086351840638007794005782521013835934970245013144049885576382628606401377929946398333335229111894493743834932226156171575593035813828679767389959745213761686874187314999753970067054312788075537671473829163454488297856582644860614122397227178911470303704858518919124723043874326563506988744852916704208549947904251319185305920391485838896426283715362651931981578713537032975562485051482352477384110824935950292750187872696537676139723352712595976902535807357860710888500950930085571881764850511214758942418949469247128349318101488868670632193824429769434234098776092212699057870939097272035562168189711030745982737150480794203458765809008913881257556294441585641711443625425246816137644667250379532383635846952958665448119103115460516483660682290434799482719352434007554344704022816866654536460522257728293163488674483259744429163274800152383458325782774263032279686296676014318176639874924655455759850741091080090732384578755197019745627011093281690314613036496474039231562016316694370475924664052685209334270756593083347325597135888335115719207242552646284595822243336523039326562719872859767188015538663422380734247656286283152556950940736522912832285496003271622343356236337216943971635351877584980854493702190016577362483004350964938119512044763961483521786427720519395945697326129657242430394285652885952495583665494599876098960394010528363416874118019057235227872595563339312804314627662450434378877019556688356969237630832139074169484420490528867793412982169592292343633418474678554519547196951102888240174847390811888646204220857875645601140467684564370169409282680119045640355066738369876177868574285082951327130711899996280636097523592275056934297862146248582882981557188537280498274052029919122745930108641141809689112734232556688786875777110859837187276369009542307029099803395946036609640977961885585608876718599809348620030925768958246412896183395475025574918460087309290926280640041102974301892118020065687266984076862034316071079554503337134136207104207409279003799835500178283124902029836213387571073847165083396456316072951312492773323995610111489842071482691262763367720777124928156223937925737645266664922965728878626726872916153390173343424768552571601383333477056111785238741207428325207959116924297798896536952438063969987248719286390222944604158545834970783821831845546496589582977285926960049106468805635059325955280991545284271651874590682537877929668653334786740132618620523633376690687236842166307815737649867933121548401669653739709995933106624094460580923419275498835940714740178496440484000535877480758347334305627662860225314670543424266761008846560231302383082805890903017608181783964357378938200284140281022931143749535771499240119253321252351659694898579067084726195406493002873125903535922047276403196312360206645360414813761506748996332200587342831310007451437445012485798643277611520209586993344002982929391759522354771508365895842222435574088201478118067795003029355023092938714001212898474335171315257987944041228126246321370185017769168902083457416084292909672412301029861308694004659412428635365049830854152615589103495491162343260263077764215189076234572244598803883627831628657147994325619954244575811138967609849997091265227240678883479935958796650997708457931724874303054595113224174072227023393638399917163994425719385223768820916938377132985151279466453888286564273703449999980323421648322446784089073595590211653448338626117582093987448503239277971601472900854481557761634655090893032864732003112798356142615054171036438360422638948011567264104697740155350011753661265326077308536890116018137705031327607123388808074440575083245388183678310507259067700626531216889193793462352809652872798552694383589089370425293568516369383006215833111221087863275807064823525775087873759501444392182713590467012376472353017980973180046117893290025460410470124546619469655364413512259373738925000682167408239924486483901793143938857567722961157591080905522176173018121676583455765673861531876290418772746185005159165199845593038146515693030033740752288613224941824184990729878140004803706453180362145228005954183160651966093270614292485273317992860470272111958888094820561662153663987205613976873975838083738178682093003100339610817129942600249957160716599807586614740685164920472680724583070297633924869681462030429713601406621805952053020221142385312316279553245226716829008534652382597812263872817240610079146532176886407002383173122621107699177016104656148265590341197439650107750502570273789599540324878449314154660595758946778045223121501293487193579188562325682053058939112736477844473269657360661705120151953308393202215443393519368337050933514604136906234630300324260009633611217773142528199533226026247620091978133242026182437332327450555911871006491099242361732010283166573398209109570721259911047449817295020955659264199915683904577124597584621544962319833071868625918855000045504432923268332343639144145130389566405768892485117773783167453505125869294359448205331355536160139207482518427286342362765903588489349550571898030862442115472117048602574112637765994972594732533801877861822755848574441734078442681386540383480567242862107405407547877752582732996763325989536328431309464907417773454214062837122597862248347401547155872940279013293912661695678576362897310565231630298492282235965855891586716399874866907221255142652469449997358760797760301818920794543565807799591926318670969522357137181714284878933249547764312218534876431250329146010165974491933790723445462211750613546245029764371886583772942274440129783973604999051249359514504292028448324896961639281226295197777272758034828595369655586443562896327324536990631289686184743625402514081042031240825448925201246312391720675945237255024382479822284913652572653190003244580085072337724267586477360090952945222619729429153015051389948891538155849158909117994066469546295809718716997385694552383266846615667596400402724629197094748965140916040868528029134200763981116899667845333935056326693221018224531572481632281874954294563851929167420300281814615819640736869307522839367690108434450920095159590908565488930312149077801808364605980111103811128062882200209291130656458519389261842052772484354992010256454095858185282548590136011306025863854378779932953768333418357163412064997555242601703948713023967892566092892168038857045538861030651498846840069799371554215933334381931376061136920826464277379628014316003840365786437696947999625785503830563521811345229843167449018705977476521163405365843088576637309277289280541056656961160909037577506134820243908899220655339753995842082373256317407630697335440075233876344161740115997667783615343657302447914338876171839021025945691025578392725885135206702373504125133191064747665665770707997922359306969012725433178909729345847176633080568548855143851523031876790487388662015511352658308260553155095501682242516767206704725380377251241399642318749216085637851851335023033808302815378953923298083529844034795506367246130728157657316474242701943777591590095047665965018171774300651378277659240026361902672048361990170807146441190995345386592706327458749930967526320679122452223947348634260739411577930171453615040720784925906237298480807517988520705827331575184506084801438160441164312508161502836176370034736679267114976539043542540897687055235129943637118875370730673572458231787914631746939216914252911296430199522812217488436758783519009036139049461708539729510017859740053647996207134316605826106978698997205646153304993065428070967827409027028071966925994661420760161206117692083655095296797510233111871897676335975819553102911570411140187301722168661584506144625279985706073247778950629664417122040047194791245462417779615338012282662839459377698266457620203115497541278262598152204529386292660808209596226820890118877513957949070177525714194214295461550292701130401856120888650497862892114241782324131163630748724198412025694331128008150012487484188693295635424990146466012080404994166760260787359390879611871715990216053707953179113342848445292802679414118292647906958982655693930584523634501304804679879986297124875013028553694868963479577403404946443629963383874904770256077929563023789437863848712028721439828397877790684472676853494646640328986484484875127585413730321766606014396748219601990802392435120360834453668716337164092428907052813949878098128583408881134582174237809795086570423061527787267923054655552801358361682263270125946625693248042752380940760719880461266519648379041728938987527301922596716611203910649155662805974515609798464626891550561427169900908748019118789010987494448305119412318818814802828278775241777121729469193960114861432762081887105571435882275530845203645650797675018353481561978527048606689121618413484145404515014763986647573869808638439361602929024855557811483899737657997907494975156962364385210070354287076792457604456124905080326825502635588358991243927901855525696744387092607120700287936641162421451855658453798919902417860851411542473420160141277794798522471161585813397804564238608136000794370742086650479372167135795027377674576567624094796961400699459939801164408324228912102071593337721235380837928952347392232656974674543416894605731637998574634471279587952090514083007907974338504091138622295231906836992046634222639781043551661123101817911651208073108505055031320746551374829067064744304736015372523607967938110042025310819489030283153681415769125414333512632098452226558561364574268786912292290935194028285736061394999094331863291699329384292916613376388223623972518978551561331335851630305477934209835549781866136565546418671243200244813839170822688807258409008791599518194068106228248874535633851667895080494156008425435104247181277810853303941506527228129110498743976411546605324345339545714828994931321067565175737940211367364972838926836151124388393144707597388267940096841725758133227857860153828260381756021741463641630589887123937452564397361248803571608198191623679709289343464017271527153875181532359497111125861641668203907034300198092158852444619593877231960131430155389422085554040248421020274822460425732797901026745449028301673635364795459319151284687744244417172564902531527694637309535090343249973471068224708314688080529557262782317458532912169517238955738344674597151537939580831203687798696536854770801114545435006464444749370561310639853191529110062650147444952836490784475408267855672000570585021771936297738325871848087638754334092231760670621751958356781564163111303714472131753896249148072859385363654506799686540788674692428537896326005564668293315561500608434167073673128922736607360322718043112141458900930150149683377158351764153089142207441766900798348548298311785685546137133799574989527174683929658208096471859139793602089830382856285901081803510630651840889783678363719721831577124766250402764715564870892645271921860314039567962422600658349750279229931163111094041756363664987787864474244017052301686436442311033299107229749043940052789982146904280398747980890091085443726788094524808929801927772696214073739977948355283209874086037838737112404389202686879840149420394736265241017991913888341699879493226208166056354584765677405982353096802641201235861961232195568716275708534935046168146420392528083750823681979512226591390791044738081026217264994663832825416946287158948802969054077411808600267952662895740422736636105833522936928004259569183294919266514796707373965241841953297799122640898643924998108323042043945196930420508513889746913044515636358494168346530770640119239552917040945454443727649176058945893209395398046713660439648700510734577596174193313186764460037772077407223144757730646232023219012315687658085028759845256580658101557773144346747729309691309667743247201271523607037060849159860428719646036990943211019624269692169078368731436650814044942388869877317250963291734128591318725496046532880721600088946249232750477063934346203964172670329815313454804828367642157280174786256347853722659047564248847059257711242860598389296062836268033410848193745353319131421814489222409573180114552996195352404860582280928408957623236614372321684169211787044914762173957461002424998830648625147134323656382813212137535045108256015477016270572190286533451979651864281132812912114927150144060887666662242191575978747014886373766356018187053523445547612615448084783101940547809038454091141539159919101655034919679082124573032204131326859241356041282538545190041433573634702021840787970851035274725633280695214353788523060239822088343228871409812276596405757126846325744222777048111999744135633366105880415810858579847764705470786778985844644167415285384171269588962458924363521930733884519722013343921786424020499684738683613573159710269465411633356299113597121067892143721706930922725603652178518647100739595066865717276988234255889387877061137148073120327878481644100449833509791495882640200057945532406956264244409544108843016884144789089373411840662533507337346623273978766845549073855477907617470419230271352490576776601166540196571791855847265242690480996820759773773964940165845624580411707825789401428589354347237592867476381343643368516825508763478892290190183612788806045473493903064679116548867506102806249008398941853302166568127597831790736742878139041459697165254048601952236651062369753925060735526762378828518204187223280570943446831923139580462688064610167333611205651564811796534658346139741945192168341488489524583609759174209872978057127365665332581619400741082090516227234465185782553865971923096603279105348795590607196239408112865302925420309858834403807903103966025605623798510376621732584481418149972404324239204582781139897277547268971311891661793411044931880284908862293733366781172689789702733271855285015103308277572508003940148420270463533868875369074684570273092360632481156068851507337112041451902670820651154828289013757998020688642031014490680981467978471147619009655023742857570481387827080059678114608851064203173307468215658060625987411378474434347178106878220073845530359855525967818283019114436959959520828548650609253473617144163201363919723549168821905753432658584455714272196235137702901286929797055616031432923051872946976323939295240610510337719466684134947670389395398106063645023077890229584454216146344331546901010424531550243356189800743049730855479725906596775059120716834655135263055906020945772899021020933207478642200834519894868080772470149264387225470759358510416626683110635440184530955927359997498331419869291618455246166856357395772894151684657046457580830207449293133988986400109140139494336604235380653418591776806112031343586320310683614489203840569534315680674783198162760406133854523261776666386547901794593752328804923149744827973821866673733181038617162315772801299324717819365328258616749950229611730442973830215577033671426804340402138367745458249054641549446062620387366343089365697595480236245404600620007649288436550831987511504665490522858827064475895754555031816047757437639891428781103483308179047330221919633221786376505530237103721032303730028940423894939865297109166292506576318964876335017923984038521912344296488063646692037563693567332417261795877894067299616890643142238020120638389272004562440597269229579470727475719705614978826141883435858809172484579116953077098785456694129208910617293591030771240205574113282111520204636481323263650822987673206499036063081637598980355533588776368960608287327338866484148839155978435249978687503977334982510839510044060355767647397197186019385925575826889806525542961010322284600141984820326516160701443455268844385927321549450138616908366653418943039377727565886272142997849843320944374487756852514612388492336072898693821804231997521811641099065802016323721522981322489267076061643724150300993156436035373948447364983613368661667523005877652286071950918890065876071955156150318168342562009388972136653428250604825726518535749831205510634597826548720456124656852861301226900307228741875949195235240543576060046547568905007432543420949353860484179951608863932620253135542262472367198990951067695081034235970407471389258388288165272459259408147942874859746844723152416606154436239866955964496800740684135698801456294707728361719930706802715996464091471149074539233616038121569303093494844961270560217390687891081509206538950368561018956067395530221680672686542574992463299687508200804867434426842930956903633133621911482240079931526904240518848299157574885268469914374514571300201917573274132797680505469323869224530311924611712768414875098646952590230835374818837754931534469964084731148096613289284135671035310007104110557296135171955218369671933989059406567692313399299146835205740404211249562639086528913738924861763664530525770115937778575854521523454161334377331493001817736720157857636040742819068854662551393230428143011395452123147934591368916687521031582658501115529102230567733938451324945049362058506956772011776852545382976633096857822294339657933430830075343744073495657655814701614319276946898225003569923537500397584909875997387008620245543714397782617908935861217610593638050978082327042899755989993115859974501438470206576960951939079243553175477131100227538533288435446953733218018615084965137131283292832958143972590433541292505296450850493126496722916224489477776990021942631222968240719063133870415325345794255664281567805492169895390610933960237144235955786235762648062997397203989346127514960967347349296457726489570133929718617268426700111833637630697276391185643381360694590219007214784482300310382556361815821811729155343829683623249132504924220197559900002535162900919442463255398921199043631366004638400974803884298915446408193746278464395966364164194866237278539333615727006779735367571477037975305425411020776874837691575558824103738176314224358263768361565493061312769623388638758092665917754199718122362686581187466966506501048341616494904142066931163671711190325536210742133826474125020525988970206850843932378614035374067582042862954630161481452720438492465738968736250688612198125301527572101524588022431136078028194112872339970438921207975110841198318461916736209472157173196776972643419525003535919042910172480176566319121974403355164302440687247391282170599983751643954421099992519072771143375937506102183950747656105289523878633180998470261543517758284206417815473887333989044375105079693618196720797904604002259987382408037732844246101297091041930847105543195504632041447987908094815705298768205007393778800615418600537231034773392623776863407025723239193263375112258098805944544301662795008477098829748108505210742558464056641855236516868688975555637565180062933401509585054185257073669711940270122820389762335933426286627475033534118617008243982412647966491626397991863117017217054209306786269767862121535465646365868258798484988020830146796819082663641744964934624190760311873932805598314279449257305042689342719139780615071604061734091195593323251397905557105629105791147469824162682776917637018555537424088945132973737458559322731311276791243796703972263827024477764359930410364856689771795249044109146847294323466744388744197979388996917255413636673622996973007267320870686327998746895080636421497323748501263077465861026324209574287779602385963194102563137205096313295541977294205333456888301451303291993155128484994052886230268705593934443217027746415681654820457345913816240999565560974185092446082873565360539181648895318347398677068633083410681482633365730169045944808537711789446731348954795102735887574819601272611166348475970035805799330242203989871641874330489261658733133269993578970693620785568534281020459280317497719428965253160742556721820461230921491468673188479098042843331714191608420690429788272764884906981411160078220898430200869269570568300603567106918907262821185861833390461027145540907271028208669051788594171078299688823581312923383444169556030007728124315784994118682548264182267219125910511438793106378689363442887437180649133241663878781827547155321341197152416246625441368984692502593446801966069306838937053920041534454205608674880311362991378196166951067507031517656683370618732062515773343059712001481665964878764488129223110527791919315396023072711180814120554045300761642540432766772970510225279778961235654682699867288952703824240940841303018903520994035285496502057838707922749983696213854504537804075606754664212267879097642491019120184821189314831328972989257773756397364771699982507879409814070707156318026673619220953524723066299560223211473444605721444315445303856417400883468056960112142974717006214201272060390729063720082927686775687884940926764869251157594910130695792749948335275950758617585745992413945024081489908406655049654152334363467160437549715562324791817741350780874718846041639394812312040685171437872375867260075969152596272807158623708132227460601990657323995617397920629166107055593405067075428543504056886293270902643049679435926037825235650656961887931020772438583446989358803670780175328440363402525703670794800136103369716509517467598600863345942529468437885716524043339451751654781922953728542972688108554224763099167170888096742359921829231254659970620792743647896938426834559935698622895623538545386755588223991189391285791802036776572514172917184630745087795724709621354625201169088202813397384058462643960247156332348220412693951253188692409313600421672971988803313913044030402015977517277169879000386172907383433684560418398191412008796741167908186066974864321869044823580283890597162394885166508270137366534954831268052449080634686322250828031688021284095058695031881850935086564092036258613146200831449429329397444310241236045078527781426930918433942151454728496373097886675438762718793124707094390574690088079606916047539177782092407994753177755378770089143441320869822024738171736517036550160994999123560432370918606789353827489694488562530538134503606316358125613900466364562350568320709383084309482487208285268126239068060142151811925359640860165099894506354230147025832871280573332372476645797926155302307046225277147550420640683966763330612440801280873569242905943586352728480095738073233244280677992746804662165144257316588900035780220588691735955007815865194493509312927106879642772986637734815223118334539119246401145623983930988285507610937226485482920400770862652430252229618255616716758426717885537666907150824701714211571259685213223232310837913791216465014789870155468280876591683388354897937080496375604257581738892296650646567482979277110983998364548341414533936715381221874280648887318775954843585986476555635195572351568715905117852271841104615070420766175335346632974199758856566610135117030688011782254243393430822738293089550397432596043853102736797876100699644159360515698256574015130959975695580657623518719480781489092911568332268684936430968116427093994544784662466825259397935655139721586386401344388931065035396754890146497315078489482444831797767518222495055184248581840189780817393180113099004717143484640031857494091372156346694072099141999755740818095520256847757770214633320855742781469159143958267162556672877574051521827554210480275374737588528930658718877137293029307746533509723580739680439991223886084438039360518002588934892044770925395160991297837953568549900086723409750261973235405217790762039348489303173075476930533008115432971772965459558647431798172207142706075579376502529174070586797425439515557462895415156097217917615785982010726390145466148242426748645523272473583536932969910722895251933885622921827409058304508957079343764469379032836082073183008402553733005708492498225641734020135259309937780956459755947853651845205227315323479359752718549704390786573280738361684265450880317124075066137778013921663177206206909207928018660527403531856121132304887264589299340331444846264667766925914925741349050946348088886794766028126510936578575420088067987371366426284909500309520113737102856846677493453724330899794437141696293785271873738072224601638451862350217379120713098364240287079055694165983948014243298955703878015193161170002659075479121340927520534670322624514711245069987188696543830944760296925408276760961266060922809788236214548328608018430753558666239565580467416884232186690429132885863889519790148428308976718172312126698936987235921552205108339553755479845010386110233510078891434697904905542076328187004892125311565126435655332997934697914490163604889618725819551590498250738052175833377148811738972585136599241296856878935635569735385443729020503008436429780542896280518367467003083105339042111781833988411612765146092940612741097779601884624245416522105235108589991092838273560070656127471591601033559575270848667517317154142822292175464650465082883862041189134041487716922936796996791644397293726112293113302301002416225816120984190479983599341538856616732134791237408161626034221470683994569515607407189175798533324720653173657498998510493766448010968524165661270079822376651198702584375587158443658698720168462514989470304667615798950497315203274259373797355344889343944788630030572517838213379273020436308006154771443506149161035169978479476443274306425825929964723896555362896502734222440440684141133765616468490065350934280000906824158824332480433324670212537488683290939973712035717484639416695978013804779932147015287780715061070266192112113492658486188727535489424398116866871640994815348126223573141050158619325883766478456810372020652246847636156420641378750540728340143058033874288674777716466600632053207172835660914010863912104245257350740273504974927752716242739215233221036834333386153017299559703883710864652041031579763234101580038227180114004418563144619259757396725460949922700532484641107564428571753308310870416750769725833844958941590516689227864277285761956781315997547009983209254026398349339282651074087353398860408510383065321699607574572018552706664054371563936791439864505945542365118726570328010081002379509209641078904184457561277521506523132565125453077563637303852410941004699569639656722009587517477001672086182655837909731722478509571948229909268263275158912517710586403722350490316631362575687897265841697284696266630210567465619112391066380621316572675778001831233529373232763514662938882982013584555124490020055509709807962336588393934922926460657163657313422231216526395150923759150353872878493536724090991739777199640949183615652522920051133645679102131298487281978928196961488125125249090481790918201696048847462609701171515349792002863858711847320109428293175062061400108168341315246099851011858880890588336732329724261557854095600738904764697290493996852933348128213165611459375263375245297719334899082477472464403582350965772401014357296575100929400827500344043655839909266213299694358275432386122914226752811299378204862047074936971515440639490938471719231108487025579183135220288669949697299728149322309244385892600067943982253082666127605902401374128859141465280424153718005895181519984242730197054118879676373108660310164547545752410714902648050421677488070210204125875785109209798313510118116228644571510371464905391764688539057256156866375259264734304516761093584264754570870630344393927500360113748674506862409021182489602470768564069302744048686703927313072793426457842740090476552673252423706428955143116922869606316549011698181221647156707574746786409257057489822946805926082974125082038449980591861944255238001004632669368789575800037417049456506329662603011763080152833651386334274304596525441630701453514466196764422331473784985126627666368122071714329674057611951390564579325049568100885302113638229350259316189968555758277653445703978704068505297481705305633537345624491171335259194348670655468883110680445981043248035407061288529372116770097643137257130222784547576605348171799352618250468336651910478812389583887862081416550006670458083465752039303385547569034781948460526851206174283901216271608507469364645228055256983708974278392838701910887609085208999624140007195849692233502872746549052168446176740103751016258678573391843037142952817077659139502082548844228334690813864761611031897062091596003809414733921774234820858005601856140004665721510882864333115146671057957126304069693767709821623622944390978921767100705905459033644337392938555246644217402379167989084183494419094156199716599493426148011733668371094062410911994937365208983903750022492223252923464299181625445436002844210768732099798807098897341323143087062038024884659918136386602952323417953247159041045210831712096043479808860472892189024814376346207027054033426631434315318010605439061489460672971263779571484970068191408643090550799833204852608794773639320568595987417122916523036798746229093224541285420030663389744072432451837891380772455965677162335884720476730583385058879040187584810738540354046351893486574717113582110083567432697072223319044753581024572672138416223163980204602612409109914796666456991249862393589213294762544627630235701713568670487963946827858665014867677638221186242558285633801194681739165550221993361591930165035913671303060930188504364635049777921019241682334900495815589483356264181009080652691698916624179071368040349955040014974873830984473532626513701078879724234738621285071066381937590119473949403189582985398709683585832320859194610756861867348470657584457085982551386528679110710183028390968448878470989489198528445400704378157211128575048694263130145192850504796609109124717588727962978336991836736499894844851574125654339130561678392540349494846317396080247082797481126125497833963109978464395872474481725207623357618535462100115933259152138953984792510196169293168975121901138337698188289128317425595442528569881820913137584406892914625294794482215417675651858673942530549574644782217768507980836368549062446857707308440497655811908979472088982289993933329011971491149926509753540068896367228231167499852217486798540388454020193298318077503540653397316696026124074636665535556723139648254782196570586354573749972039415945103031401239503501653559316446315209749065079273792112104656918326599527794012741871015985175921265000260539507827584065298209892092094517898738573962679292450360089772749053128197345836903794504158789182026889275053795580346498321987615545544005235564177698037141217973941450569280424393710948138037510481081297660100753087082368164241502074821447760193777204066348678220378496839154601519373448825448903884973176048285581816026911116547223365301716541856112746243542104631079076724702935092214432954193713455435137742592265366251331681603110797060623345424861784422758279751404829783832505503911330974366426531715805671393586848188629665005999448579536565416921049757980802304862861817376366432143034871021412491264608667621416344386009490842908079118780575581985957348102211832105555416071287271492212167818082158786844100279150339860890452744415997245997500756915449105144402190290041286045845126177546306121505785699815807189187858048051058872154697363650977495798235881571699918379008005724350549689771886896443881914316759042775529258948798028401316354042429270356725451339635508597084404116153127320612828827971839257303184498220116854791727537981620739525660177427446878727497935334047613806428537986779052803218132897173256023744836834876362706700781756742524725607366671417193702292664826285533397812313592263266176229552925467778627726094854402280018965373870742148235642473386116914528572387837443735266686528941124003695402576304330900057128261871288719146062697681654120464892789858704487694535031969478955293299697932726527429477740381625241209975370800206828090172885290866446657582166287578169779996770554138225373514097709240326586415209241694984544005195613788896753631199164273756300031860492087973034937919891046818853023922645176363950024738057685313795148467923174103780895753849735292130759116878114580755413001285368347973752784108677573173679994700640122056423349704363067537674054047583809989576352978884282824028035170254875021799800970258151371578828539107615768587529622555038391216691999876043878777552903395038306446702736679714873292961267912823107256212842749247776065214307686072328198067954557833914001641194802441324087724512765368223134239812436893094093123010797065027613473797978204625430739455450981668869522594504202473586334193939689520164994756629399351252009861861011503358925559731400591902715436722666430358161902969005033824293783869488501222453617577906254436681400458154337895562768044544116992527164149610239796475167992832912153413571682155127206287288371196978709756965087106123193824017334979987812290594193620240361844736562953829941387711429431847157889419051061074887337903615855082163549460021749464486624434740353704573733150627559377689435360382185127506770518696628060427667112112622263629263638609088589759401866319135300137028464391123301454480548184907043233893451473769425334402473833931409590847922405078603393750985974428412481413758261887464283500775704579445841120181532590740934967171381077287411974932958786740185605362647076194018078240760549396670754842567574051520343850081509477568413595812998273852703414560734657354709877993838156648907311575446967079992242093612094905123980904018707456548136496095912349661144801334760082121283349477439007031745073476136248516504831353630344625004544011539213625727104433507215677004426167461666806758769564749423954088083679628116573179573628127548417335360380814096402400969978246211906804744784684057386566762822728022759003775108895619532911426764565137573091596383664224264073719141883887107049387779940630456457297293061267582681038929248434306900725403984132841172194055472581610153353840880222462039376672124108629895867954308091783048547898328693109553925331307224407505111540220988105534300325275253370028844569826799619440682894276110588760368378289496718598987405283922247166762189874872249523997666351443949614192037101557815342739310044242413249099386068439153158847210232409839559328957337219514262954210355057775524554232194838635755578493845444950001683796828230490971100873374340134570698710533366316478086745711870435769359644959361257286906501315552994890885648032909331068491409136510577006633042045595773742834204656248672552083595788480635449610653504495962168107012260150677574446146400742560659748044464784723310270068733913891848342102232656682689489934875923852718014497692015728009314289619401573037661055457333199638013243928151961679715455600264651797699413663862147863844116295656540498568612219411249851464097567973062257233856683109004368767056310732315894812684000791000687968301934825020903343431394098316011989689404900571597120095970202813600753733465072035778497069849634744371258670597347591109204076430951499583076782122034100223569894823601678125772831193782345148562253687891284700092138964906132283408078003869392611081179555846304326001930016091538292589506023237847472400772391713731171972972509748326509712889367153170986235314067128956560773039088927015657825466789785394497881148509283132703843812965016388429063898684801495972732246354968897361785190600731317405409899244259493053017560267918359529084543606116955313796658916032483378928438390821054760102547767729540470326971999201084967190105313933990767373874222358307909333093481805262563024858285942602196504431742596704029479550103561653603047485672955123100760760967926461387455193808356768230770210597358265329204196741113712058781169702046908310868559289681395011836119733965142093041144927094659964387188806796898657394742646656587259117823860923633865238222566017323015206600228421715528724785492600989785918298642291752614452217722400371487831997259750950974591714766223202356876583839944772929795044194503797143469591533843341504347213814985141918721594217374605849449675079304138445125710916519046532798906047811828278854346931761355420304411620955754919627818009495891042076828049648988207356939467742582290483706437581202225171832224232882379842132428470522235296864735705560296137628144367396505749688067776521587590995592448298414783283770272818461708352439407972335621455421636235402058620951553089587065774566791099366960611042448569807567936210058307655616672933277661211812712689852716611345917601601005127570817358799030754787107252506770752601908480559465281023985236377227565956980208160998116802420807529841580644454177571393227529421635731702614204835723121525376652612096429824845988001039340203814814424994539763138988400009112748691995946234318226232688746722424824772749409770874048225616696398548348542079856973322618409074501311024204938207930020658208260876604538600182392146260290043077035169372549541857490915411375915886968217431655557290808032411240739351861821536733884051920564862395672229052422773910572247513630594015239520425646303799546659938369222936346494831663709252998417218340005612643711915760175889649364430956389138109753677835352757894530779150288256686877578460934067298694261954979315018010122963764136012919558786284788249235320298480724864131611345505993120689114067887087653508967392283730147476009387155495654639672559868150095031738093307602538285704822497672624396208546797914281429295551731854164164505271346577723588520325868325001327193479262916110113847631455072735203450169226609920408118738932606218521307765738082329531664430693544958944475888256478919610802423208609168077106736339935741588933638605630685073210850868298906276622627634220863410258683425950666055454912037746519371972610687524047366104762483066073098710205423683805757540843044482419219291286420249599566334088301726233793390426475111913165311909539159757684531419323822200121059947136923561294857806075771284730877046152901577525421777341860221545667530918345718088284042979308998391322333600169054796048076352768018774262441154225020651396638431031533010144219153397131617172991828526679607429689377166685022508379012845373941086046591912784183913631306820334552261514170632535772116264371743888343212872104421103478706326296454396294186934584507096147040886708055286333995734245458938159196045502094389863628585660730645013445875920915025079790845573065912736444502547888418801142940130836677650006874680224473027709648757504553808424372276291499864359963918271038235396011044058572376913560597053280738960207232432540629518816816989369473204608503884595241106325228801236554425592198285896676446109113732275387676521390907588193136098884481174381751171705809926709720310338704976047608792340615263568767180532028718027743304508850932120820342072744027258618589545432146570103729913264681758055304550155372596967168236084156005636630429210639356640150048469518010382117065967514919216309586777815551566000134122849223413329053710419115302058042951175155643454611963964841947099457646088074391802688991691461306636210816363520943068766334415649878885968687346682913676886117057997481287134138173175222757364620527813367071874017827599983662439804359412648430628805790911484351348878796662226602784036220512097345813848391794612430506790044893855420091923675426216303632290389878934116199165772738199590091278884464929700176104741493935554678406055381330609753880601875392362854962191572291688753314047636340130590520353916430957419439570399994231968890973722949083253299394455379519236475288541491891968193000960053263585705843309423795213340835799206070783995591324009931938890519043246297839998412706560143805306211851329462370058497700975010964371473862743354879582252549135181753288995186817384314210886076872623214933076371034413047065092501247724183963773062382959463453081742718889912019751715924068556128335301028345735144656050835441713938363108265100118549387044048498253954043748828390900861023419562277986272951871033695599782596580008999713879715663302624228827184769357369069763057311690927247500387311031718277153790686174627350069643443596492261290646850686549279719336727971933124857101837127912336323608936668989462316340970421714795712326192146234876585684045894109769171974181769741821995233682973892646843726294816966521211138204451215280683130070460074564707960343404684609073178438511767062774036599919042964276381388212362173480140097112633365750882074071933899485501325172194885073471758144814207347059732341770066220237596420109191561147103691847142173302038772599453777046648732241405175158928225602583352235660059648048290076613121557983310760354393584650600169342150867981429345376452621520094561191524490486571394515403374400708180424828098504653635379835797161389171352428366407389444983938730720190964584637204772533363282133009766588463337669065001644099537146303107239728373178027037534495213740856713007098875266785298283771252661391163955415605157289814531876463143429928350458801934137882796194861684377301251763308889617651403455612221112268213010039325190147245575931622485648090631140186333265356281551685972678845583322893482936061272222223348007912312509787380865867400209788663167254756220416797095273129458076229604940537750393068125388890854119540446696685457738678275709847385394315044795170394452461631713279560056067386030382331721767571955029517961165800902745316517172088928231551950178130623265927118538631694814941113984136483561801358821884516680486888636033577309154821518179983207927510765355655046275806789830753269195519018644623715501513638756700121665503399854271953330882112858792469184520946339354998910981733239832683632377835192857684269494370907910809819355929523624640312002978422377778826120837213767768385729870976988965239811653892170167925863740989099837136734613673079015120195131701540552314378043003883197249889582022486410346762738068216071505530674201644957430349180452610402498402313493983137556043509904118114104832320585584148408238077251874089987480946227166528838117141692337396272535398983547766629964489962362942960574058079536693650005088002991701434572906107950936733824294334678485859495679328578297818187555387440796256281911700760565713992162405641371026224456471250311500565607476377096205332825133309052196625951761352553124993444202774742167983944310240316045592543737502645304093460629485171613882595835364864166094191082354893042789541784739055365833420152614182162295666637768369146265961344708610987300005619603569768442596884561021199364861307144695998856739439590609548900244801458199517178453492220827625969669836024218968538503502778010805811857687452802217808526358315570739656253315626398804390050557120102164616982279597973435976188933433615202073660328946311000588779925116921990135845261503769536310905025801749416464953935994462749889818099367951272028543562628848273634418481150826335139224032133634299325271768712582226798953048990559641882710716852306693138405378181358647885970144317680087594263738920806983963337858141870233123262261852496181569273337401135508850552428769512139609828575936992413359105734258776790036949486845890729965824089591853426109754116589906487338304467544326172897405688710635078211189458173768940198693893841180798363793249999894839766890913884110891165099323882495910060062932711344122003733485766442014546782618573449141449883872965872151169682200494853137724432614853670891460248884380414534036114879272437667439096596810560982052821802524548455521523584954954486670350854566882010391481560728740675169732344412727284357791078665720331587002806901313569964232376672149271906153024541241473851155304341747066586315327067909137661778992719599369721445719782245534094815941319089208768495558760532487101913757101476679790926742278295577115470998816906075582286074607687102693243637033180647908084409378866960845201895286475009758350996992702158287552157392389564165854172340452331049861940779012494879475283301022799043620302216843730588890808374367241893284825066566447262654589588577911653826777318995268286406571816687603540106809011375877981590551449717458494332351275868597544379583545851939246570002698688591646010437739736910738148945040237157754620409649841821777038559410002472107342915972217491564271909584946734464514638541586082284269599196543110395259355504064770892565719941856995537824349525409033136098508061130399982747220455130678472566075751188826327239860853136342707836637231357345809746080984978374593857364176909765751236352200190391609479026199357060027348948655376344235784013092469979637270158892393383674418536203278715818680604829292452952927412125628445117129277716714528857823429449356818067446681083821990922068709204093366694491484645413430868654203117193220077605627435924714127669788861255876642207202558481070624607528985796639661188791200812449908002965495019064897094435839326636021793502803634658090515650075188366418801964452570664068750094608235203457640662897681410557670241489252623863638636074076801679241197301078642902363904400762473321884489792073259944258598657321499000251237688838407937844064508929431456696098273942276869626837958919483061244438294129170719424650511094842160674197946976080819753259772708169284027801069378049929369312970003729395074534852408555261711381879092687015169715409530350147624229750311180907928995693042471799541193055921677664296607294141219883965632269830538467209768022627977798893064519188891289818778863479196999148109121551160962463681588623500239312387113914796864901951781671888538115896433330777030920706039527931403144922860258196947288962952352259521183834095632699259015409820735257243028258343087427902802916255384539229090400590924607392495963029548116188227964945020455543127322710873302059774956305788338203885282830788420642268710565223498478356998334773522002959136718326547472585508526253710555017723227837881347035384249668908012573644990089928998353702433067516681275460222830528661908398322295111925452996721365476926212763401627725172235130095781258529667820245795397267653729420949940680837718140027547276884524089713838253975081005343139134551359369314783263478566193795135952951484387148191150293423730320751632243728827418883306677969893429998861924701289648191230658382737805112095502982660549809707729913263604175717522732159473746844655254966999299154368912488022114462421837088504818033101802049622681105434996309444484780175054548516539604147074604095219155377722453552140578041295481805107789030529182408555427156737106614086792353648192818947031683496103135801555405309622848823770580372149762516013546457397305551435507211610601256037999254403650280270926340265678549052128410741341972882658228161997344778496446537559556794391897248445268802347677653789989617946055489905015417558011750566368225285461191316332765803091498403495378108382547345270503716841491105647742941365487050751468641997396926221386249407056272989572695153952130631782239627985833253205763206240475459535914580979145280346140703880183600609506802262428491492527513459547766761866504487410663943548605997241207653152401758972524370221722345360906925467931733009047152273257775228217604953212679719845676298703029647342634263584987675894413827541566500516463247614047824778261582432436244947320249579031754083493744706223594455722171853804995540985449827193769206235944206821908262119732438570154266522881606063019505468278033643626610076193917802490099036267246915410656924584804665236416719378343622466225440840449016384807460291736119346585511661948947402246286761650796812385583836939020759759306003871988485573669319116719312024577534892918632011174433323666765534186277347731767166344927141272278043046279652326212980945493239302784339000632749734661610405155459329195957393581496255209764199560501638451935503495780074941937957474737968478752739480442850657605916123680983687036510916836031397921615341179345201314672409768362437004065637899604832625049542862083554294898675835840546174263969428808601145958004121101228964513051145977683140524937507947651350899158515755856996665795505532749785101529965892962752379466437967071974129952426499371479340517479368709344885370109745608500489485878470168747603905887908189485998685640115256214196241107156487927333349987451881125601356909628186648572669146561027156194674698427750956129738314415057982175489582041663697926183342560314945621098971334450160444477178352900862804149607834620479297043315720914725121393887660268742694280381649121908861853992805886596082947791681876168809874157197065873600385741198037470483633055010763790966369326116026997447719817008722925922071880559734288162245038401990254656051155023291345275086902060300511440216667041565297498733989775179033345459274849397031254399920621468957700939166491867910405551387718175450318715991713185724854142074116763072436654112325941647760006537005445121122848635459176960275051493986072424656027841950784291154386763079008315702482107803344136410855738751559243582182296545988104588576274740797187056043900680757819661708394723753575241474919121680259123393456560798144627872695579141988847717705591628391157170398908174736581988316844375747603255557619419453645855196589024901186561751419417085139036394899994530437814016968063980566629013124581349862930385091125631960584829261381332201248966364700424536224176201531945944868619495205195836386931703978332296791761813029345858330157180982105342035181080234156609873975471826123924995579818701116840062288572583993451135583953311737957657311900425969948018913912232167565817686121191521233954577092084298835047601007094364834471101757593269618912206253918412014475472661933807086360887223752555862955456807420033405189924586850983574183928916334255250274099225357733927067999028868631939129754222902557557712657568370215780704829326898641061346327975737045779055198233888979584196511458009666960723737505638781868569487362350519680677489847062448828624649826051946534220537016860649501570752186263283518207696084225598324908413998951243790126053167555596508639792552221627963348365892072999885180356913375723924641655823568964598570018871494592090395216352361203328618751464505074447115195913755191355039460788497487367905422312598248440396604772648006282903116509252705769260904058434684557339750102216954387654778420331732735162456100126833454630762742659724809673149031368700910075849539678594502649061266838779024500186937109649382494827842247770182240076234997176300336268234217009039351312421372655452553282988956870651230697123465995714207843190040297186561507086221505783995894442976605390969025186516368052803282312860765264786767953677597954657736405561592376800612043280096640629989730865430489777822527490842368440305501747428740832068199621175374107519438343455449713193215361337420978808927738754206060205074378084069741534083831479922601671188881571715903700164042642728265357918134188266901197003358710562587823047598917067319241448066273716873322290060744823198358078010557187670991665399300844644770809266534640322368781395053657423567226389783259638636526386883944848975567387322629011840899810342374199065413064977468364810084211293481683212248531801514068730157117479926054376517620566700909735568047374058719196938544259303402783489770329663846727567107868362069680524245745867263079756209284577091220548038260570335443679193699962642997270458618404669453450787165574316819421472853200156362255661614141269839658371907249810016338422241884797076474009320812990972869491384099157888279064562460527359315635305082640070611057727312565797771701614803552878554102391918424449424987231150930244532058563232654408747460985315750104381495915345676169731727320703925322339053019233673970575574047378339566516007423207213050621332088362385798109984507304105926626030989811694712375748192980027846888743125674280983959272912965026736407117757534290101308447385875529172939771307491080159472804146633758051326945961018140017872131533157244538446271742185481077518830920023082365990807906742775720880578301507715215737768944000288269176591963903771281091425224845221935206895663844335440655707055059429521095263160239996147597358361691181141249429665598237650798206395143150192703180600323495791861928329961321568676225369641830240015846574958360869941284578493112338974231038803566548616861370221599668563686269872862313103948478407227042316755355422111422624510354961473316021161702376944222355334346338774581019935900431159769174096928398800280764662898009244023176713843821732212746946525391767381385777037962662412516667911985829131499371748523280791233654508658656326413517822519920400377957383467225767593522282663999481872370145612908129631225613529835396767353964381652656195469263406615611953320207176613939419259934304281433078703794140472483385532022515829669293469567497059622195895724581524113955681116883315636609742695157970781335379310474099105230624775024536696227072855999850595239339863705309779939377612599832943435961784131168380688260540387833763696678617250226249921283997242232301926353133249019103506791224546362127859666778266644310173035741759530246309068050672275064729793210869869251659403782678370913777234558368384246169760449006600141404463413503009712461241698125701679034468587927436658833776238860485399883729534180175574721982095311638193189076448584824657165672253730833416439057532017099614817518852694261045231354315514315184723979060095900607280313784302817630551338151546377278803525860117181576842014886075446985274761895124263013747907405370400244861490568057660530530248581594109015567368075414798483874668123767665799560213356538653861943015732741749901764308103041834923188176837849308009808605053991545638473563974669875436443388908378105263365493037389532558697611338781753166865729661054246487061879488674804349246557188586388336981860731314481577394228739941135917739711042526007107644850793428186660549690611705196452739760284259508412002003092855155795623050785813059491117314459124355636215859246849064790881549805484644759191311225996037528404898408324188432395426507893964697535930334988249917515344547312395974219579386848519245917467680734574246100868077868434150329368631306210619706494674155850696594384486550382277553075240622994370383390800578840944308748855480955373668080154335211160738332788806215300423736631704890779495013970898634376833460778307038770496615282634717979182663328212486107919711556592276226542067111273024746977699434929214341661653859802130813100948434712450316374646900086301781041417346891873440801815106496344089210163477309402737031387268476362841076932639275560516383192828590242259302101620972058014199465155200840182328791217100181585612584317413623779263906792743498945042563880765467273753698444666920196572222709536461239908286398087615254604380728829597398295506155857386693598822329628607466166336105699270212808644434808368561939916816099484726268102114719640149804085934371325698047216756760823829982623589554103351783183869532959973510358832190534316985127142626819919388181507835594731909490180654563397918698626484535765395538325714196924229069499678607989301379704736784184589031020242655427636692597339522685568554569812021593067838936365152291070003101208671249223564694385304911938660628006265157621476744977055740511300023436369962573529138560485344878165295235120325676151038588985562376561669333414259779374024406843164202512371790075734745626293877222477850887367078085485117824193483732331956650807334873445908973558453904723452546964441624321368069322548604035647895958567104908480988770231637512835361419323255419291037181012383724619547128307245704312855390818058161368874200402051124001602726794811927754532843658067539268239112056966856044711211933760220001176698987250295586044884197370442275917852482232991834357756353110188618204641685651843100849116418156560793805512374618014535446829544185907324067761633013201935156639903257366413729284660620947873095749249428524319762574642653954688564548850286252437526138045874383704899933546745714877449180151826418521762598986070900435508114989467907557503276130641045369093141364546996380080766537107718302559371400808115098199678363167003681895636615196476623365265197843530564962569349935957567115384818428482118922153631833260629465996412575615754097159955774236438519762502876930467424028067715632216958116470843257376645178223946236421818164496562761271233766574745411797808863505419825000125208954574501372853464701306642127125055602602756487060762312033729826723482835376002539607971942178224472652092766382393237769439660822104329695313332562728372622186695544153486916919246109361095538758684339607402494917749620582706789037311132954585333615206498395046914066909344674234558248244146125323572007062913772741361207521057729606837367377847741682272299611851339799501443458533478503484503212885409109014146091386695535023240736109347493863296621015484700118958618436222194320582215985145356098071346822411261722100642258953390100683092607708601922867571855599949120614623464299094644021052235820539381842641173327501647010765864175552103470218555005397924413400813098143917379487437660834084516195157470808692381458321179630452240619278823799856589661555380537918646835245534981314572106677511957819000031323803206509297166145754683959262188051732123185241592599445249917983406299622061733297151584206125989641627365048915094210909315091219723208473050738522515041649069611690567092615845084307450386744242338712034956871495618124699954532076418759097899527504111092269334559431448740525110442290493758255709750169983911890148289954478194476556373936108891846810144319620981087174977435489381085060519932909049831351418202039555129019863906387488304263117650237193664547569145232398908442781659715374413066445989899762644866905656344399932582825141918371232799382731244288537131349994025445295289502685304136765789164001052671710793854634682667151713289374689997553762856905946706885078207474788090849439171859622918494970512763333428383420513919181921400340843679988844334457011709577903246110404682017227064706679272898963598258893837432894299205005347912755152086565962704081714134919085356103823814494810094618552567522473437934502858731629839048485413558325325631708671962543320246125832306290796740276689081655539081042645771508526113635183208508833539291048333702768725314709203476486873714757821186407930089332057453764767721441133792285885261731716419410730430291714774754466931887509813162459839171352067877411790815006282918744437537680426671102119197648992277164975423982620767280079688255676339056267767028537586448221119589100153882282699477425225182050066610306945082335987311597610465186506479855875901894055535430386864263978853727211306449061128027960089305015749762945810412275498240277757486542395950136112114422369412779457551149670311514208114421940242958776899358096637657648853538387730736533441516634325341277876102417081120321917383631343321317430780627078570432926120788891899228061401659564142996337083089381811129360169366964476700969014915982738247455875786218016260710137774205124378214453921370451749834251624086624818358237713622596828561076715120826509640078675297036066100885170096263179704708543524703215838700841918658264662278900790160556681059013256296430103147743620636609853513428907059764987518951893287083110831894092361215915394723788001266632385518527000516581532665089279677190627082699088036980769497330253431880046862946725889501961461808421187139262760323210042158595022282511629752853619241883057208645120182748916771231668676163909270309460120618950008128005881825235836668719871989886370181980837725190178953199566961019400989991861349509590402948203892886394584221204282922407058393786001270746390537216407858701202649399128493978960329155848737342502026242106166654440782197568788097239892955428075243655735367783997244412006263134424180612880901811093660728926828651262125988307645118826717881474718736338437202880857869954464795295812027924917433853326934826109311044826618346408056511740122374666892171271667607654157361003136328086234950198218762439516430550222898836338719082372410166436364380928467288628125044375043969330225113390685759878883137357002960480281149678552903222298679051413638379229800159389439754925624643738425896645376749611982886980583474486689806405089470065426424775311656420008501622294308815599210166366488739088270805136737676492950682562600074416131559606995896011153946177900076724170422159777010378789364217496246114314840366564364507669618427095103289772747511255519339097957576491630724881967129386249268574655886682165693576029005634736490658133957836808829069351695693342459207017399983172103123767935441279836068801932423713644756100787747918687441125060028310828715466382605695584846181654500539710259533122350589859366979294303719083448739714992802435012687956724016828567138873150157184450963016951732012772164148095166231003181860965022910553300630799909022445788350819538752054183733864408723763772520621189422854178506310654671721732642674726047078524373615109466276905082783977221527607709122766742757790910921661684569517404298891717971563998598007695977189848718545817472972780862954645967453110233850420612384905522175772244804819559203085759993378894247744223530163987363411503588505754647049993610872493976726802990825079423371846258131397455751231972751565405649472410212713200031766214415705919683548910822639848696845222301173268543946435509230202421189518788715319641244883273156338045421046349939599128640271873582714369251603218388162902513191596472161185961690987913749688488031245119748672788067324040652394312839056188710198111147892465720807012625978742903828410132211164191893115566164767959757641151113177172076944058429695063792517905101650968168109369500265089059769945511431516092283220609193117928444768165543483735811149257585366403085450534400554298081215742960570614101582111377173100149372532063500146643247116652689026056548192581569793008080219164232788787258802003797940258090646879948409630938142533436668465374203535799832428469497254350835526321410982564331345275193481944614007110131741357690867012327226723888830564654231481435019699532265817154482513918563846498501980598391816920352694397636816743074718076112989340999480766204426341175048491284985842774583652118069533259543227441995045941659352647578114191420023634302781073711717723439546320478672872624428452315335423947610898800697403560458665554565506595607767159208906549605103068667909788891071119030197899305900089987148497437654652078208699667247864928612805564349124065413416999423847535692144551779725571847519625236863763643013850455619301631344040422305058851102122798690928755707062212491017236985840193305321000707121011619692932710680598468599404370233054861655379553592253312317334876293965876218191992538842817999634996579525982346636717418150023997435609120606497816877277225985770704300522054639361401886905699163177430789613373107385189401908243162609219595322555641486414646667994147157103590456502559867009427027257178658232611525938648024475983719541656923834695495110674607151301207829919287476484900701192409304188238997108743301230305054230446123789526652287022011730280078329691315544039447148464850789300979532772528118963863447672497197012327511334563791196247559587896338884598677447511035700561992513362913242783348418010351279613592555339521642631899599562196940514467085960822442415838225340464732722337148188306892583750603522435187337854893235152163706223928317620693843985031572601853689097872778495685219840472517913202956265871814815975124808469240829764735853011505971512880919892818346326334023363893852678746573897923128506610344890976236091391912312742476059030595225374524256893102919362035245760367625696590779994951397742203389871712541526622525335534221436333856020872982187525766901180897322653815277009980290137317861298217816782925450749554147381712326538808970276332872196868032707534627470324859172270129540407957595220446668478339726278538614273462438945782675798209373084065295956008713726994643650116466932865968080063283637697826780931006520481140899613810022300262325326681031216084071421924374246438436343025287105570347309100221589385464390944554161904305144630186887909388405630679335537704686123047156847059298788504248430855052844695789486839923727022278799669702533155037515739310667201263172164900555741924776072963532263761839284033256458423586105499396739039072133689561270743508928675789964449652465086021694079909113314269663613872495301231139785090122944897557437847366987249671773220840949645886699990455688742730819945716949490126169872323274235142859285002027981306500832022469685615643494203318775128904859340712537822762581150246511827270599255800035631117201582188170549247058785066657040065117376534122478048415009239017403291853619897997688809168508030136776429891922534155170085678011912887508738508726864875795958893369095525583328667321307495115625188010133276234092714615741711799039905634639478731600750016235495759687734153427375823111466497918926424298411437792125828120276513339446876198775621781328128159872094139021264649728289007254785541808225009564704369331644278605719259634853377979492614535680724106451523121471939197369293423589085042515524080736860979601216377612141847447019144818376298346509468815962682880290704213955862964201625680860195187425941518033924684327393464220728930529101715756565434110091311233830304810069600219212352589970757530325676871161061410411974877983245506081765859608858747414677254934808939916373703376832589708439772969628869875370349699144458643335308969790132920455063153498813644304052018188314167201655980753026419676463976522696152246212092208686496411491740265306329330460972645915124087583719205410828984975394115636780356031637571594564091148260035434719486311858704786828684092538885204404449560003514537654317951156301393672786428226513109189993121252171917475940549718074083442266672381484907113827401750416210213470335771215852888721354143407704340403921710104768668651342281590925804287816330665209382209637972976429636726988941220545071154939163438835018533899810138644313126060855019430538792466533687477054186431347089755137300822484588050285353802194374201820935190560948432791154914281881533947620279724995421624510009831121589090547212432508975576781398136079102543191270651139049727577822868262395651126904196153642893924329113638151946732478530749475066910771771017987070327925866681204224215544118593830636853534105473871913552090084787166510241361382543844805951527719918364409918661560765319328391457009413473468186051509024519604531928243050527126947491106876385503764882009097912269920188510815455492685320760268832458191302597889022079046102947233189535791858076472995885166019604480632310276604362559723085878635942086410032204724551396734177207936356358722503721573846088645229501301898352077114958272190923092085798876640958234400358546180512334555078093137306905548113198391508141156771519820144188365111946523415742031090677757184374033861790659835748965396842538796518977177672719650625829767248544252851041426359104490374580562441885567763548292398266052357404961861971001308416576098044681290824196533197162043996199668022771848174916573788641389689282930079685097697961083333826869465362973909389947950595194131220443734995115261327158256492853049365996352358146898083763266386486877054367774203240937420540987230182570809379167966319264590152752639618733010097033014650884495689616138779168490038760957562040549486081301192152781612366359510660494988873863477563100969168545923642316228430252566853138064079649499603610391672600393330434311264286458910753473758166588149775684750466039128279661020710528856789121389420140863874427645229332901498820495351864455756841028616875865627266796113348033007765627659659410817069896543180642709681019399252078924540282998502167194929184430598543770563264443521310827434858111505253946206867314989235496019183800416788755882139214123955851222351554254140435021897576060113473739708616707438161031986034303408104919893578925899853405528995939721199966415323597271421720321082958786228349262483636381082736293097067583100296694721029478638949260055865208933117808190118803587351261043312195155543031304511743218501710923830769903444388285004342741683690807646627413409258555942262214446581348075821733213675759787279907476553516145954333989618711471285551498619264476074708441439553545038118353490368754173547243709342838016218414957145667778953298686403960693198637598061151904381609565797081552898295868197725571186117108515869264034568902129979710415159439044449565710124668958063247742253114810366673046453248359997631121917586177534531775713539966956958600847973745010359992835710951647258367718031996192797912731475944205476961553650678086311989813862599785819026646298297651204854358813573605138713153263221491762137888836439811807956518121835328061801895216470813977535566291386139193165607973794171261607722977933968730175761134446140878555903895671344862574763942715442805415552656494823203948203926477669422567574750230225044998168483026251781129653520634112173542067962276812082238583429096901966427714168706889612200486251754947097874774838735473303246156667563906670320118410486689214708542540732002691210214318482207989241979884848364054801141427421180035568279931307143151361307390851651316158832640925401526101111518605564544275888467732321081330308185876075558280258332973655878973897978555464218136658434224254976475820003194753500965592878300546101376786803398696301546974400010529513539657518114256044816995877990937554295604741301383967608542401275691494755807892014528020191232239988370934130110002816013371602958706863624152742096665370662914221817059907223458938502863383630166803167356098419403936571974454507798565714952142908896632048103968392114866618623153055851170075700061714859614040863588609110646463693724840410884106670801438955233234653877769558217567749557092995107527397787523354291550163849822751584684528644656184274770990907712504851245519741948724447778981408753524561635174369899977045896993175970218703698659924667411266621662716682742399654100020114878231594502809663971859070334602968751317881637872442219954574531594275918283574377507199803821323018355943690022223195770754740027288359888226316065952686365808278712917043711591901413580631127683439069444071171598821109534873790099540216164891450993393087809707438455088363687356428534376662705043812230552331431130151941948257548209509744912734156601100801974446530051256559719377176971733708799907633472375979628756222964070422169878773425388922052778026735363793642979589910269000631444934319246963539244492730687248253136396740910548453385498078550104399968426619480062532088415318779607615375188248985561417749316235501458533496942621239749589383888892701047924899966349150606087299102406689676302755439627884541901737731821053336489667296582950743744420603853354827435556226886777411862042131048072761687492594897212352885531626094986982555244414268905467155459246338295184155136418687520248170991657667242502561290991452772017989086397209328017372011998157047393436158201767539462031862094534493172789578819625831275005746722253601879858270993277543698521768015443070271296364757675405598337145692615519096229661816627343203437018522204737451248138806766364539008721381439293092360014875272719083545127413591042785626852432491989170980797578474969877657784712467420089674566846601848807759149735090980174208897476028679369389818374109168758996206943534497229935500943825128806976272153703129477883150161094369955703834707175172707221500039090672479950278494881155745599748485554089780862183828540841660045136002176003196843602703976277098051458225360896980783558371527374379265701543871690426953924422894320265640608343067236249768057069927507419857300832270435781152384573396976843637854926300277550956501359302874030978536007625427245541433362014535682561578279207484652411687629523649605593245210233997551815384745332758594010638580581248528801700432784241697868952531275790907340516208822155277159580683341664948039930376051405618531725653791097933386485967314602561934577626238289922761717337364750614708012087618283456668083736280941111949346263747509648736424029054538910450865787773238369395407190714209462899896145769678750955521312651511121859647050248955278218955834823046038561603922321772923999625779766471966275244558831561967476891461126393660901029557003245725253827534518032953203403013705547133548639350517638224281216682383567584051671030077939192516075424881979925782367995679113409298341305910968968209802983963753999374494048475785988199967509703655828883736946083932881312683623999655641322395072112153108042414720113230440589488750601003848912860311571766551554300180725053343383063161961364914456280134727548405117392222088791706392225313646882519422616609866681403205165004763991805891244044249494727468123809576391881122281666984362428308794383051811934657770940962565346291556891486393966432142209034180471650098157203019580595773298131753999906229072763574074980155539654105985202155911022470818157656211045943635405591992533224186577482544819283229079582613531756867125639215214789462224493633051605467748725691667054235269221428573337299789985604731372776837963102719146855538733700503644770766627586711979122876512953467935535290482532450765421956122016556324295794220870327456909674105122773665298667692279545036339146883218633390669137138159348457082041357227981281774218761044891926611638599524995976557230028708768937716144671871157756041960568431396617441997427206179118842095677109426238291150731263227385229754630940123283150491565370050285596611642231213243647198187319027332665863779566527648913624269057153112584838735274276762252350705695063163427024386619859579355775584468483274687735057073215945623275804537486975759041417960097835702869960824956972512751585486799493425092403625768353663753310841221574516179967432857036219181034751705621510817606714446056251400849879243842444053874988669948078905194916032484830961998693286291025562886882900032137085335737044287462553640187675901136672294655525201034712632906967102746921527133795823839610605475409013503397688863931559727266987326501855943849326411329149524356970428426303921368705957957769401494082600093301192639457607561156969401191946797893425981224063638754788116433766609529353188070533702247658291534212849595720572781376655134586904538666471212395023290164221056799190156374207308499532318875638618417324471923973347193043106975896287202976959273474954693038345029935041938437667171525513155843166256981267982453138853629963716208110048424315159951985104587539391375678561612811271225461230771749733480019889322685430228984848547991033014568699549036643019754058432420627645500104119038003810258133217763440283038836654169826824327633674318853065018692777027318060402877241605649878989509946845767342444782259132346301906836122139476866889066332766741322950873346090073598283707791848605272512127871881332378144690785149706533736335480938107570244192327165046553956130383383416722539364737222525675411413559978161983961147874377239915083027431484088740935391475875781130484082494671018253054185604113276275934059826545190401417504613474120668346463840565838897389280301838781000455309389741506996628531696930097785072754385612858823704517211381064274587702033962831961275733086760484340213702249838898123699195544741384065980401548165001495823552414756500326686953046743570644626235986837704946361035102804427185184061021482560704229262277725346799482641687529604607840719311964376356283717215891198569794000372063075000253186424028678031649527798604355608300973823401596450919080582592579983201255578713881262121473672985032949279228273685331334816247838518367291736234296515398873515189233571738319925096941716084551985644972037942264828444798969487319124697778995757939559329210229248800090816822009615510774638786317818796900757479837743111001882400976026137365687450336986277860155151118508649967053938149814334527408257483891988508685773976397343130771194279260379799122409896471290103001331990257972330328790734673102793367644715492429447354781637488159789715570955462048122751879384822068332828422334098725093493051294616742161199490059874464303247557944439837424710355884213112384525594503949049743809053668506903136127961609500595900648227807154544414568434956994434579580902597330222243934791627409078820968352078952703860548827336155711650384497492571736377317553705231766852086009670370764024977416407918925259832949406110937028821816236897936378226286673903411116079102852492268783824990442222860928353043757449714155081566281598638641724709715711938208011268639269126480752373320615699800662786232623447712956197418797997920216880852254739669695171159592245434100639934779468242198113955006447314733214156928369138578817868755895074122648691226678768605920306652856682448141883593365047760929201394370782884784633822085197077238711418146514346261652330583375288951872547195705383087701726746642810293605305015451587436938086958316614678049046978347021583271692534585935496395843997042346904262514334635065042114961719414993332411521622861976852034386609597439538593580261013115009035380945333931626631267378705058180179334086893844779700469955982648490963034258362233051563681005226615420269178393814984614701987167471016066647746429978074979488225737071418116781824468875186306988401885265923515685244017889489536293927935204553894572132286777110850502892969598697568243467187007828109181864994213369541184684657176398625203840341487574780556627563428036741954343553981388437981361368338150073671693869676308526018175887324418477442443854033091327641524705842055138029162008760357193523518531014518722717684694307961190795436985332599106759494715954458267240252871613762401745904130950143010690815365157470719249797262597352313516691948975203402822787252416801429937319125441076473890407669953717556715669050550888704078507821331681674630687494743555238372133240075908717509959128918144377966831374942504280242817611986742812628719502333239376923187094522642223699543578131637122296462274241679357717850867491887176988786936777742370399116515821315050891407698939942309142860733768345096643516803101980286321565846593553895517073631297680462530842638178097969989849160434072039756684397895887519930006971372569831678958368546236667579225640369446301260710409715071425235017485367062913581916763268833964290970452508572659526148526762748242467369310313049049919446143285188614358406955416542439180413508187839266654757638906090686662989916953760736171070479732702446972788984201194395299120684118599361515139862040613993681346832150951005453853181185036865825375317802668061282072058249851576762938701604502745784271895230449833602181869821172256737005038381285791726545941193716272649169647180596750530078770411834687323089495062364666334947636627724590039930867714810569110841612681265122046032909178952119297406148127708400858778975074495479455124211399652603870470095165112576675821795100489576483190554431624056258740543935760174525169073543209326051213623105551339364407886382887411529807434054905040227096304337172752969804335426726459219806573610423347908464987516358666951810075301684528633327124949980418644481467140791413098859570098420927315429986992502513469888606709782260744416944708416156898389710082585574416109570494514097190880629201923236567599228941672488021142794059393000759760271820088642104748621524122321578276936185880039658618285355565227620456520315461111563999644199788013751066421074212508722622952433778266402763274177567291314944560464792158396686226055521973165683849434931684554148244951231759991359578533526203784060462114298956676098520149230460933984675773692525255143596722964549374056696256463283173293645963974500687549870639497988139365118637997458200083518616626683809825544820614869276879541426622581903254470366211147297374302379837575600769922860387574364655691706620115720563051214481842071012253036705763293417917971184092330988890461746534821358414142199042193001721216150820279962251871819157146209645890891563439047886429374205002839355536655728865508766197899133929218933878584346382050074464765374306018353040230773702164704594742132369602111010831337383955116615104000543032793027479950103693904068675243889080563203905993551712906795169755857619677661990061008237855826442769822662259019523111552267927291451373231524493187729556196530233091932012726881874908205673963570105213688983728830351036791538245370098395541299989032072572819802085338526285575805134140670114471781931508975597341240342086892871713606146243919864788754034390303451169045362698268805382589826505439241879921572112944151601542752894067423589255415957997738739613806468429971610251126978241540263097904343000816309848265549735158852372886669658320878092524038217004753320693323293514369491036633175994808854923046356823025255504146512733049783775544687722422809051366689115848056072193425877442556772077793668911617902605543279329446807206081013567342677500281749530810292279203347909693847715506052761920777567225774992896631745330681590335619789041708094063926382466208957917102373671073153391543545049518047509048998859642071710307043224038045025170575522053523122690433215144070324357658576108087277799365633035972557967697123471219228766681879484929473292160262242282222713231832733644842621544613067216480374938519074645039098313180213791002864932908575033747373962004809286741836811932062211749061248253927240170001960808663682787317043136877958943157006047808248565956318561799562572182868483964113097396543390179762573656596660270202047837543198647169503835447987911160649347102299014340164338807319910080262699874998668509559306204181647326930368824008627431136833681172191774786951186873793003920941573132254672346207218976246298140947282397490940237950795239501180029200601892816907522398931483039697417163556868633830084505598970864556244471245725384964102225548828043182269555637279531428094492789094420104911167402427202411681751596006104470762041161078344754378338082621041597131472144323193449748405860616318237700759797782867514962002354230163590908444216505353940525080583940164804074572407139787752972372350519196867854391755796116619558768700912842865946141321772824864476931874739665240848633057107167780946508915205691338185114868480908879413319297373352938287187009754199820105581194635206712892605914796476941722896967597257234539949312859572946671823127364874294235748754652751057459380920332871884277562169608616821331108693253511636877307514855584385684816450307636230334792965550220786344468466986031916720507313467758483962689559691945754349310358423799037449048917110823305836146122754013463815459520265533900282882497151098203070502854855461471383607960088790497927045525515496100881653330932921233032176930176460887830465104557259815886609715077039661936496499541033618808566877305631977449984269432479260066843010804286092885186343323408674581651580712835608083070054224517128184727020870513888710235834587764739949644073694587637069851079945116262896863386951888310914548047096544417267396249078833755149044344773725084705932153770635373180438033183886212612238201643430795091771884977868952986699622604052151194563944121021298073403190913520852407889668773460311934369675029160889295605413425094779496741305795636766484187579242940624884258601546644844957139875361818494362546229568466892769225069628969394275348507331262847715046506132690594744978886582890787187671600908463794266769432917738422947708345287941971551281695947267043452516158231240674905161642379019370783730416116305912398455354634164999746299143045320992521399466315523453663501482179254654433871290613480482871662536085643038875734470088665600484425852924030594588227896637931916197299855969618354393718135843166060568800694443263676654665991454207330093094112122257115710062038840571068454173520684471677665830103218958414767570000007953725068414832398373526728811685733757304787208744951043907803364124265090731544206292314253672727021908282166141985687842811548664007702010997930937338333838051613332078223196903921210542168154436191651506549273849259029963820511838824439942522381346847902935081604734562277353535555151169070322702344737879785616773544211473503814312941460661107607632302346909454710774959477984765472859994021317901611641456470384687684817818703289529477744456329398348719306388653858939632079122806819573505303487929504259680994822522655870769086246708384309194467381972247124693672012439446654595936368210591201471201163289071314168614010278324189031867836984656937972502158470548648336655612679583227566253186082012287801827310266509969714605956828602643370980319088435296942749581550471038195709385163009460764772497735028148520552314391545081182400677517985634359536783125662710009763299032486219208025892245930511732891236871809126946037078526041817215966975382794300097524567368160309660143058169239270715696280770823667640596883736700066850489916279209960833412825687344542487606321634540310885554565635441056154545591334462307917557981926238735499319768446998801705976178880940786063917434826599841136664152346596254279811126276504306654943907798748538634259673381799988203898373485590754471227058873214981901903927564573379154786799746035394489834816833347424994441732347362284757003415204739459580299709862028935418319073919506533632267003717668715020724439342975458912073130007877066761381297131502616998382212248912520006069446774434614614747472974679101857018794242820970568405962430300809358774991312017079528961160191978221105082407212134725744279789093612117435200594538817601363474275892945814643147450874347641671468811119274796738538691284596433774392644287817224711336491246225788643353897096432051524222584615063209514145518691094648155166380497514527931218880886045078388568632949859767134704088147572434095596045617900935112810889369043449681048275960689264439392760348231718417827268275204249362916868237665748267678911240829860192368544895966798646272871861284632700889605465699208571674555745889636012011737627352387242600882639612397211302506509075345352460745591730834716294658240099506761184612539519309334563038737434727392492042735862192047217756967797843021405284741225683949282745171179369335459369637742580799012241206499802236547553358067573598688423656496021332027606658517685015838652880363201607737310681712427903469663171714612500973595108601538275917320931592737022300218225216224248043134184004685604344602544257865538372066095649389592649757598023149887748135588195683021295037923712040022399901556695302907260378370243111515131254634390454558406485191539196265008922029881365289616324292849489247342640630206825213151892086596158368668523157265667954331360886937738079599733132141832650891940853659279781780737764622767263230745868296974995495401260289793478894118097234204725435369253454106709264545372580587659553645791823603957596567070119429896421463991743226780119056677616327119439431332282886767226531971349914731925245806497693861701386808407769401869406636230782069895530727040754464634089035361075312137197154957819493044134657415505501518476927338437676026531966769602461738051103566634731896682652377710284194975650997604797611773531998590800866113912555024870162635573233893127391411290051679808472706876469606581032942045869783797163865490801314134694035107096221639684348539315507548153221215769808265013614999800810046712351592288653183525233531483594571639294884378630987714153451290167789003547958142027510009431728125487731824735056203994689826984326016711572639717649494367999883356478835430027112879128758299629026300165382727364735593847078014753756418623598370546218818444161212783288952411202493214684947714923922817567130589461903145441210802896685485331545058926675776674907993262714119479576495172125784739801347376842188469045756209950571061505155679206859824382089188657168344682966974912541290419557130694859030343239023251328334955406426658914299074860213606004313144104913023105754046112841689136425710807095307408347048370057532009769312497925118661463246426306183581158221260156825073432723426788386056396307855456252451545148997345454207262977100276851275199387332617028041712808507847754663011968211129207655818273748910910251073738791590147907524427510909905778334174947351625078680701629382414451718778408733437727582008798584520963082505726283490773477740016284910243383258354487839985027104321374911710175609110784429327320941413897407559378400782079395176338353387841824769662337373220960105860823924023525517528324793370620846856581886009426498085764027617622321466548579161308140140594012826886622994598235422993714580589480808042729216125974929780579599190074613307333920091499284992060341558339724880506305433372109846712925306904261428663748347168658201297613240544283344076722273195432751351586370972406023589221380587240119075597281289980713885193484923243500526307754697841146807284123005476058826821960729282215943802256978393388917505292565664081885319279760355625807156035358499655731214496465160177940655403017013794393548243288844316632554721243383460021140780107972206681849073459897560608323024332417320658082811804971488650752205165596313156251578437694562490650401122046648298435249851209360232243312809069879376470456509707020775071071418093333301858945766620282271087739193198728933068166985949607688425127948584588006876302983473042628190814232452002066533025683596025477257451781597593462029082031000525408779412025078814382517983141288395060430234054116135552234979517332827219142876734969837786969081099542184172459738007707151108094203746010768749356299331923549366597752802389252379607382601190045382790875561871200253794518611707484618902430174132991208177650607629086445919263098792226303985889183514407945288005985016401219917730336006261091696970928546522323893935786214179446250776827939603176532705455890187374593806598275843952821655597507896208847710609841813809835777122098084453403957035464682116056739729154999358747263228919781609628471926274395087368687807329009937256824608679718943851393701339861088597892988150568047333235347833998206640935173282024629603867447871865046040916199572103659008001805992253421934427642958604183595263292406040559483801770390914404343328226282910251820156874643227781902037934108401881096780974763835190253813829181274571152387575690624729700993164771273841908711152150514629240490256487351025675778558941024679578217588297980141205103357087510751912419051728255545956254776463814097861438566557454297991792914588737367842781816007831401683311698847272446380532259083751876689982115147590569595084560695734870979934584197611139072502293871094347521789183815825692992721125763130684126918784276124913083198091531208476343406126821755430244795537042628840244014870833508613889866693026548512912757167199728382383871197767090682907600114641959719728552801223497149046680591538924115853847998139774432105332769342394894260992911186462017681569418540877460292405130567990143964943121468344299126848353323193785172449901599390693681454439527453607220911166046855433631752431763810662896995960950375220687825402542153895421328026715529625877973246837200380170707313486111667253301187407586315010045340326874566611999587717662217046290887763975541773202974918856697737181927180092776940982804472716085530041895514846524039294577202953469684866366349174972295123300710152466900972220929652663520131802647403735192131830262777323223584121602644081192898364163463219843871403057925271649123357656615032318861831069058706318448774217816827804805067337467052531179717294010167547569705126199459804316102427142006956310663235833088729499843455701414563102721300893060420705027781552533477558475262652442995590949084048756845671939007360970819577492862787303157651097523620140361225414528428951966086021103873804136020835981651747973162700720679597366244947892377027421588065116415889530144674554067721757837095355826292302650383502274334740077460455798758565792582802576685653760679001054088014827429364122054747614948271101746551333308762887891054257516130332947255728915634386093951930096633815454587694332961991249194026621883046302805172702959560791731747144805230081949820870427550160604110297933045827423384002473025968268521004425825166775779354572684630566777479901156225749260951027580309134940575152779254937444981878434206511712655774259969740859917081331982601012635087012783093548495865272396687665455452896356290927286553934017043420812371680088776666717739356277841457454951289916217654769459217798738322733630784902681821827399483211984493033433688475799333706839424918265218124962457178839357206170870438918390214685288848750940364102327084111107916005376974423440252653986275339927615919552376142998607327764422221345523772692865428389023765531040922348729737721057405347205215825211457619392243725996446709042317483886061234474320642819404908513983669974668060727841370808812574955326396670793994783144709212963203525816611465552061867277146455165346593149765963546157428536485262773013403352354167947189184759444287230642262015851300051600693533098978643212945389964017004503229332064621747653344887550478253562176815357525829903492939313918029640109573553484310312986346465049311293001723108427524353394837501331830221406076336304424221769069598544487679747018366430041986402662120209024997619215965756924165840124909293115021011233875610944177649598998564078656850994240412950313670163360234626881643287592069367994550354381120172335818389981278026034621892579501453764925569905586057405300389942634128028982247568142376587468487598996504098988884737149250200119321756781351376089541895077227898697013440535628465651163267926064543874386204861260746192726692840855137405009731286487594839931812398709048540062585568312932737795737807107469977834487017476236791814158098495816344553899144016630581091781730421007539016755133327922591811303076376681341302418028435437866443053590857020998722163459407467114599082107028680762159521436583318969293937601248420010567959628208026163237536648913614750951711352998071779063150427298921242835639801416054654781070448739214007997450923036039713925886244420053464738381524935081514561495734568980315458831440795678255447948538181733273691987974407969147250598225808670388398548133724333264886749099646122857266753642913894073873484836131711722362755812027778258873903779327928891867029017247916096943752876942362098964632424483517916773968140624990871294823542051014630378188683761333177922434703119370417625635123558676449235627394981075617558180045980096044134587006801762020510266032809068565996020471884626360003233155339219655661716255853701218148343766141525639542669545693333262810340284700177106997425255277260121316060181753939747126021437351131859678446997168236430064471531936780796462114064905819041587198668458409898499981091799691537413846302421052380939278146491997996911590724240546396815962448734304149256166800447188970242473464466100022068534565853102408894870953795027556493314694984604801072309406465763121142098690248481938608406073618572156696066728387730040183214905542928243367894653270114692627174914810564456685015910681533409566796660043016226703327682524028845724315091944660969901277127982685670040243026016624595618791336766923929598473051300137153811558357730138643639959870916163231860366655346553789791243921935439058223261191578439071549156627793290368498333856624475234907945765062000488209332003251261405903151891037086064921663365420338381777661397220229093534313768439350492716501011619193344709039006928087567928826561411741500070500816567069469127851012373936231420529860264809413206964519270183072139851989094663840033424103342659800126300291955300030088475916895795892701049320603489891411879477866036934499946004584781088135334005699573330321742982650862546196018249232302474751852033729454463924847784915852389479882105664741096381336294026099144807555898117263925488231751602744437042599760074595961848834848680702253740691779023576976447396190817436228183389056699377579500346385469679376113657500235175837119966829102283947648475274681669042979559629885934849166557155919190422148893239910995811983971495984071466902236961015006046679092087460132250182012237747082142031990019296447668909944544365392930963010513624154457265251559795902012922857709979048429350703384971024034893135455894922559503657173078395127122997662823391809801257768071168609393840938951704127680066573852780816001410617457258253605249322943852364289851910790143343520012131455243255893916909470698647976161004181682044526510293760125029042584409573783066548727358664915857873086432005253303320152092069616900445123831479074270865957165082823897339671183091156994016323960787405070004445417368506167284501758309570309064907235331731806674730637549310814580839632033551679141653980776038239596843581402862815469978125724081565357359935549391075562023188098006748295751257895339038449528296128508035090056718657449252937628533471140459774301577114188711671893615689629169669880978706617264193662761880091104954507266734919354779738933685041475804411167419088890301461095329807256876007711568624382809387583166265163474040993762961019373500875904310953578288867388876790635411821942250512910524399102357920417682986917732248814544236065351954765507443803222994720477113732486604863002986801888941192292176150235922004250247836089109908784785232658806700684084423345856094652698889452421883277538641959100433751607672598327922944860270021277797844267167205364885433082998536415211873888064862028378902633329293504338366983714250180391050595871038789093072745879814673784486170241484913202853878861076322723158893301923345651464537014203923949609282245266781738460753812390379573367010067364307282694899531970955697095375712002957777353293794950324897091298795779219692642223663431388480074437722543516031530608153604865246265944615698805229973218083964382070990632796870062821723567167246281435575560447243644745893935753083795672273269754470935224583833424385856129756918784778475502331823567648256809541169104619147244238994633336166350155218241034574128837533243521718251092059286828335579495647911463711081391645633974895683536209568475191838311339195383193098478352220227853157712542577570019790125675782906272257435615638161527144655558816393529535595441327393033331688640249973419945988270959355750172869877198339081950407295590019820068273201003206308150695059287531056498315743938823777541495628793092065955978725402817039981702305240020258423919887574441933352528195018305983022195160178505462831157905829232974619337778563235798192398234580041572135014438844627573841360641460658762055403503785030893847100960529702238038390091842075280366031511291424307604855141498232297522449491805650911389654682486178795081469019368562987879694054621410140124392360291515982311055221360530439618914232662317906918400421632298898151603845883203517389826705945382122177042622051574811666522821698274147484956811463755493518134591615184041252266987002177049021711193922819660511220381106975396017583373932577062037599919050840947553734292387145872129855137047593064443483956744969706292611693466539251867558601258466596630239409307563426620535021798798711266987400881662652030796960228500597839074300359111567396848912084936553141047582228433456713611913916646057068320411363932699161001585083712071432703127063255626359882594806315698418115753704799921507914837015368665022480698702399807210477292055449942653630284450842925704680035259012276319215031804437272974036798652423114671075412353542044436810187487148199450582453956460897310399418936810300997981799463181732988097235336673292186514342121788963286054069579251381853225074984789530477617623340242892570724088209557581602806178741024427328097854536618126408560207702244608628428438485973298748032073135263107317941571979145998503435589087366158009578500440096865021518280246064713469216238061303293112524502318987139185672850016557650443395748428832771236884736902721041021804191041275595968012571217082755807930044692428467390784148285181877518787104608439873580719394353901680687604940998718473442824816057471392405680809644484302038903124332320030041949252079578876768617868479904580042646237306190425511655885039057772665085543952133583298453965597840066923407802808958592574429159546032490609973087634891888034759595457411870949104060287926705145290333931179548906044088681690891111140412051905848077483178575780647474545266407862718619967145799777502058164227198718959480478114113130780110469539558820032508210112266897394351119387804014028367385209726069977060552447438756047151811075232641845958350375692059056192696400977002553476073533219424721903394381611928250627990895222909674064558022929791155989660477626701001351105968766347996120009618412937160968035222694122919098652793025492878660194276900125902172148801751416010747401775859075074715018392404548084030240383162024518424685293058137927262054808777043342322028350450294283230884482002546759009003821216979102529012593918392875559345005135488763851091550822921034464916767611120423682115368088882310987530310403006875497095062290238336897247838677094692739644938951976159966586605481749084054958547225151943804012762268097898514530802383984567768968946560631571634624904195989196767814894917087281363925739930883473242844080476937653824288082244565319666777846537062550425719046578169830027455085549640502233022909130810348332585081662540003107618813988808452210102614393401127925457762553468948054719877417751952452254126631096514352869603458321673278817273249940129534356291502444064009812852876055601506277814538351903663439504061990385906441032081147091431183930126771571171585179179993852444334068322039919359032871541034878802423526286371610934250346666852722605982353462119785204339501453873457878198381843724739470777887588026213121040953583765098182214414705588223671188191911247874333782583861862672296250695260436594537161650838978148880582992888140357264874403876385461782638734765855594679060506773298979596443497899655783815736005858486357902426777791038248954915946312292026681238622128431694382630336406631176651106360411801072754855007353896568969973344851909815224608784627203030288559795820564228754830788048430963929006319127971670605407818211021902489018572458371406410264957306436331243471793442567272147056964744013315370607105300722628911792332828313641753687250500672386605748684611109658008925207146399033306474631021937222468438282203036432528919113923624442911592084440215922993088962406204427434023169933178660184541204980866137601954291432977648448162039824512438496168857777174794620970759793142186900906596485031939541645708973359116982761537412285689548703480842012171777686253061009595424267972114711755523706157103536661427343831938697122958824066019719110078003982481576490435809204661415630188126258032736593330168273110788024257482518426041139911537136093421591648491423260821669055899102616155717922991961174497068409380334780108412587962719117015460975160143760370285013615839899662015107008943071706933979150300016010465617461954468367309603986352156844452293830008036660824251467954981407136849102858789858962986584918785568134410890134641296883945501760245433296641429946545568692594732972961481229382585655033723068047534254970077771772785880596297696259304756519065749007863465997758438396079449087490581598067782634509771631081677346826653711136210738043064831780449409099900043583753099590502847298722102136512981010322630047841503689081897506821305957337245284481658257817477233207805346315115106832398586865673766839198534567249351338781229964547860255162195218130341314670858087789641090665704129885241432148846315665106833941987419267521843272648612450243638397960331963651754685669760381487323034342260823662117249913628635022072572848386920767262360191813421313148543142616000499710933080964652478010126827130118038094104524700676333290896627994067423687731639021457928355518291258748628032970342855832225094766535798746100669786024699737069206422195713441216652899861092675692701453889280744656171351265737197266056936689726324234439607715251906742393679767837632870099488261468083977510982819784164930391835510494634051081896055892384709127639773740422667967891705148843309892209415590779825156442446383633346376680136104779812061383039908034942169588794960360495063821410188217412154281694388951027422179780231526383313236933025197080295169939695933961480968314040897589118372066070828553329339296751071706555537945888226388013437502219376760832327510327303294894867993858623251757281576182499144836593085399898287730763698711152816001999054679197127530383801340829745664694062284511162932588059172162376720998691937665342354388038332066557086016874116794695037627282600520708383925558362769840493458597073531257033522347964505611571909641467673347735545734910422113472400434756483204688997729701102779699616777175372737697964889303111200264952520106122354532007381183204311201104318569621612198892768118288940960204959106525992651445425008051088622696772656433581202328669267992868654770651839574479294299287155999347772582700177352358777996964293453295739158561637310253139735078225840319640520932346874611608130520720053588698964332848042048290727576846710328348613058123816557406057826447341251727485252661581599237279557401652988068876644613692843340198990174077290482996963390959658958252805686386898777049034814054285582221298253106994294571354305248943889844305870481723250871105593330799054546056471419466123673168343494461906032398606647161356652958175140817980819651565695534037406756225601944491075881212445102047902211533674012479588059028526785248925527144459648139927547528513295765685966293057303783498775716348735495039512266236725726237905918127310644513954446111918573665098029036910061664422179976099578255385147989118001485143228934701074128917215457140091231564316183265047068925741415106780489408480624078371166746846395366735752762129249650172147145112771933635174308663609758780107071630106376249348889287905103650896067525418139726171518965027581670709466706446531234764645201224323784394865677286319845823699063938596207184938365991926354470743067260824264071927203221309997311058698569525479960032836163245923794417304417384402813740115838340252027252239325663811028198685958108537926537041987432573477405098684246717994999319806131051304530143405944563479688435303013893903085215284939971291741813565028632010813078956622235950420255806897892400458072981247485426441237770630432843507412809328405085586180435451990712294557804350322294904961750193154344517420065238989701853906658570911589359839142431018460258830969718510542798912383238671882338488170384531976168310304100516097886662063790591795267687244025324514274739791644833718676594808756597163297181612093779955870746667068531018457964850185538517149682351958778081037096410715000021326229094647199288625535167441297805183039930590201936175231878773021692861079335568618785570445637390628237008905035100291400036351972711683726015136757922481288241846505370768896644932148230352325258486477872092828435542843190698037071515475757187529726236630435384919290039870842675079217632883012372059599221338827589813533840023102435463514266110868782603049924041478214026704271490611840474244515316042196154177327994715597191859681980250642070189952076288314937592345380410845667036027790401168944556381197502600149629732005660002320963905325846609910848002553575271783364472082285551568943391757039523906273303789300528367130731857072400319470749979762789899504915219941321751928925708988950702224218077670762522280834394100893798441717658415684130297824207904780494411044392701405130458842301576419657967258981553935544660253716333543745928312580723916558919941511189269661520505006033399069994832313459066607657966237908186601412794616543198271230799230760831618356709178022348820494213279772535523319917046280145997363439733177649467971011897698491498305453545231630722900690818610240548172947155120081238013589268156989716562948151036949211011317248442067202616713545337011374352538493011162335008203390390301965252406158739064589637862988380228348847003557250709278900655725759463299790047648591049841394217439754423630084331223945135536670836368273301317018624642245929583031139122244538425304508028884349847197214897535305427539881356906406334936432714200458084068245488667348054941643345936107117674326611225238293829428630323103094564963507764461792247659421124663665511063104760741898046292975905539599093379016886847152076227538475015204245894707723942814417905414339350774952748445257873248716549030125300244038386262110000735427834007022150894520314432403085978645515702149805872375766317839026665876536300609115446561720699179099997370140586804900208023819700307734393723093372735549213954346115968999242349358786244870962752345580104931295711197876329697940786809499903302456163299070465050751933180244248839504880401561930082300220692922057328685550279599167421730562571579440818913102279619545020137860264730319332515975755063612777314690290356060595890573183979379805224884119078184765508781779941514876925898974671555797040355859806516805633140695542232219315471820054405075289499269924840140152005406325305123258391832909404242075689935025154749625779987917773152193072237676902155690508822057562890621013385991989401532970086097302330388196591200947057526353054626141758294549315397002182649188139441832204788462311321021531349048445055429309718462278956321566979963773063252105310247218076999189084844200677156643573403428264860486637024112557092339118924524486496498885905867103495010097012549659848778082489651363189651993458523300972814808347828192276028333320477030105900322693621606437865954346054152515229302204631298027990078847869217520090679849393934182383396798524215160915574974125024065938087688812813742175055922346288662253408950922541039881516508590286749972951303783964326586924411162777982854511783877163552253101320098284431768220135181285110807785963109047638265259748252138048323903867976000264213208848992018488491955938162024596355822718166439419082666521671196017949928677029130948196157470448838702659163320600349103186427571427229877346959832789382812904504097394440363030637958020262010868404667421830516584335720573183133991657303375588391130476836709728903079540354599074362905838146903732919107829311563589336863706691153546230578870631267723949625501840985848845357121585443727161595142880178572091077008370170836422791192410148757826111442157044572043872893326013231067654516222047803533728480378411691524242613554004529189816546219636617598211876235004295988404460692514277080904752176266402294157110247885974000979390950338824154971708966225040270163447230294457069190123683580022205027704427553492195707302886400576910735939569867496015713145245678885064283275272543269700553149947835159609416851611590307279247648307941164329920769173229265979660058116548092696330815650018830298127008332435683524476913829912443461413541603578654994729569913558316256355517707671441056093521722000258203209400012484669895736074719780210058665159773691772979601558144528151147305088839141984687414020925251924333359906977893849248700533121776648838684123129359417094145363778504115043507185220709688094773304681879056202468847380436858100595361805362884169183153059597963074453053321156234576521887110176706860091592406009980899223631359899755246175546132444129645178308039333982085351306100329471626752673206558020039331064578857187983997090005912340909460308380731425473470621664727641001698266846457926480055483308856149925121822408034724122648827609378425805919571076023945775774644323582932936367988421937575862608028352531536364153665187567408029816579733516806224024406181495911937243350239204024887513015039885780011983549954576448894695242338969678759115919068523836593214887707101240061329545108284570709667133603211763907523221334074254143565958344471451997860919522112411519538867051768531927643404351228849678791947022536108008100090079664838564010751505370759697431828591610862158615305839486297252367303873909314821339573276189638037195799046214237035570124576230714932607711560509300967473406221232583252830582610061297646427563092173440673798151026999103483445490196506191856506857025817411997717831100873908829612775865084098859105465242608037399599076620892428060240519122370065675170344820761511585809092162372030545656526383146684648890439793777526771237940439189504306151416053836605595091721646727281572549418239968968152862613287579588294007081810176739350973277794949731282517060988575723490699376874281002768452054778568360686964655861732542765374362615856040523860284268679256638343153470235346249711102956870176851205535026475347772992031809925271768645297481798200802419151487272307494158714294500247468632161295143899614356615770727926122106987987395190827262783038206915544758795003676078895823107199177629671382617470724718686006183800568365392386875308096078081972084343512353678753594797110417119847038737258589481250235973769559493978618061196210404305908828672521741850087455993212992223269424127778919023511693970238541452198552889290114362150669644688939481318952794852538842568350430981746929658640157458182493826643478879181486640719319894754840295985239366604099536223946024308978934728832273057322562947659768868157938075680715706792947345197012916806706628605105357427961253780730959617346093113837990329395690758490968040764770447385236779750436758954321616280013593500934254175089124971503127861123627932655954255693478211085682196114936276555277927941205297753798602847497251274769755275509861348359599498423604366087241931004090719000315594383065780530898921047505060144602260965164724888431856904746657965866371432197140387473407675972237671781937920392749321249463265420872975482303665608825946842814056747997971954648813777960424295945676023461557831793264739132751821240222726323996163602032927283908469245241937081443697208511630899207870077841943238738520198987465546781483017326154212427628146971199801102716391203387574352413980569581908011734319424291300595465276918131904684951679666063459317422067100787170406034134126225346460540480160335529391045713842824254722738225718663754117766740506362406156453651788197868698174012848638657550070019695974608825975771496957729913749991767979252130178898195071799907769365158605879269887663154575647771145413777429055403920241193746556772493100202828475062439422514305592400733883593571969948961640647064634855238964441367372062424250925373611873196147494405731516429116577693831851388333541195120442534765975275872172949775192731696985719206642716132791964708011574186632189592879163706991395896278412274683814110166319356347092792167401041746651037070431309087496762954019372354808828542365676104680650879140413209069127760591794149681719204349234022984930576516938429468389739485450681293247232790704406669118034037580666002025256233760300919351105575097968017839021187823239505974380768787077648246764883837089610064190846139152966430699481344425598814983626581355845559207519518179594047586236477017868744241325117708422617851098969693569400327867435906964723898032690165580573697917874996199322844749572448341343175963728462843808525281831498718162056012309942908523971996738185930385174069915351530432232869075217046818726071472963600816014068094434885153308735902576421762593202332835673269241157488653363180215761867473869236705428380833601335156908170711265227974098901564052527616792756926816887459747725446885761594782869963138272098776694884485548319805299274226652378489441773443455596095895606298025714544922436034822242058317603122012449264582352352391781326857609236698556448350140993349023371208872377466482068972000224775335462073022129325177449090680887406318487740040699184422396627190620748909889972489954683229468586780846302776704680022219777013002904580804859903060719111370586889417457568171003963118860256403912571508042985622911374710289224125221660706119890572260611781145143301941746986627541971041320878019549031718754965322520262650559768389830211874921155576495659510021708738691930801869758360948616402105310008329684442912747072708190505731156670327755924461249956751678286192352931331427008563119599345902080022666929094775332051269218825303769374634694389297385584849051883674516662967520836326644687813392446942617727254579304152533399777322748420746209435041695132060345374137475373077688140003746015325378711430256028823164003771731719907195214441644571440983984637092787067299531054527689719621297289217286919909501207044573226755169998756445635703353241131308147562980942558474494392887692902516925606213597161818101517310972651022497422599722255257101060458818764705722667517759980516107025945790882692945399349666421830681036136107865908843699054104511704408694985225358998470984959987266723575686395173261065968607758249145039446536656237845721498847557622608762288720027036691608909203883483544071726677760696879088676934013252445235139602183631490922263609884612636648206333873961571688221209300993589288363481695115317433269212602363194825149847092454794642909203542887704958753246568661490473454327649771608779055445005405350274138797755618522675298429206527965103978187213192681721549090696945583275581757635176114400351897016047695249541253057774218726118207524977130659996495734126664554095634037229758120724003984943981179704603596925399929410143096766463488764304817182593475989387093513414293171438453168948434983693457049133266708074084890282396156528110427418132566087522137902859970983602457421520896135680436422987842256110109324637291741214739452003453782417367243805024764637282616085165529764666574773763410666312082660824926910343589649392954432888511174184134819958918881154748297352635261318698968058015044114836728031134961752620056881300585982573227793017498231296737303061669991995995328471102964033175368858116207782484284414364837423294107478861924178509036929272043995695545010817855465668164685429430315590799011277228816342884777745124898704158501345330011847108228240172597118059473672095755879517923709444076535214027781976430860186277135546145679819704784659400561557459059785502880380169512943092354145046528870297107755881151642297819715437009843310833672827190319368857353495160824709763709492926988219222846615933078857840285523185583629050573215778702042442501113680954370587818877577969276730786894677115953818398092112658558055136311815838006059909189950380290485902179747508469952557498195957956918414478507451165382022982170861516415752530838552556930386199607046113735290553129712552359250053784182688371994357855127861741185842212057997230822226382315512170140103703892131554508404781650204867030396928243495001856932412262318415722154184107477716261391214354920158268135748579102458923246554713508096589784354909916025269087906057417908436402780602965057147118322505141018329044070673031419101739714320743730630378930002224533018612639822738655484295190932837614756683976386434730287835319002706733275044042968395408298527529232149099851531820966050345923403741187070750067248372992452303456289178908847619858761077381062296315509445939889373094574354499337833835723391668107636123971937490442598737930166309175039412346139066846563946639443649608411640456863250732025944486638668525068815711905106787593451643640313727064906913681164169414679289751593753456971554535828396619697814368690660487252472457671019671899877865444916574753770981732458406216782989077251073018936304750696251072207704373396546018607661426960680092503502235610677699409054812988185483343011990697923693403576022557611491617864399971269565799205763872284603510594066111146444505945414285817190737504208994738243600092525369376070588004479792780981655073182850599099241723031970597699267293062326837338865144235003675568341610844078635774349040188371928978160330881350125356025292339080848710444537859128848799527073214335066028975580588750175685129985200004174796807224915426762562308519818060765959249451755016047574558202467067891392421399895349245735191344902982418255661406205843080719506545730051626223321149203116166185952691633938084520699257222157942667478600197016681774409785487987730666466517558319216541341119162586015345884717519982133391335049897915190527011363018126834492053498478960681877154420204266823391849406985524415186837827965377296291655870504496967429939103119235214473791603987592236864199830576679473462134691150721486872538357920060030760416202880718829536558812830293099890550441181603129761088662088650553162320712713200873270656535764621713820440662440423489753275991089119877205984901252497095459837170780939416634412461874084018216637298255517621724244951501718676588757181683699062692506295015573898687809696326836364072377061066844879294619007161638167354513044314740647096605675550110989275726888836311288243842313909427729274540558886982792673438409681534110956491677817608740533328691189271620056152469737211392137678128033298876719767934326972367469307639016599950654801115739685888051313911767698358646871058828086168353794535475571573279686483424279203509792339102044499254728242035917763198225820220299881236893925682909647526249049938716575964371158023830602289472238603580831700185099613390930027076439632901272805949532500873244466172757545885184759256424285377729296652549260307859221425811419340401740160328329160604488187385653136458766833149464026543394138616130465298730851543697430945678425918702266979449454249004298686689230557026261523412932091875486938394151771174416624734702333360951516658611798074633316879423695635841245380642455970576338516033158194164138009773347214101413234327408179629292900732414822328696682084141532308840025660451581943747362123851564707404358228953827639934645864440726280609557503816581960127786958965758219933773820170330662627185815484185197350035887002638064062464683391399710181379386152339779678012639485801706397543108174723718246210901039257370901789701801421433788018411610220580223837116779708200749826279687343593390815724954772941233725229105061982994076829404517702966039241731912459092381276107125355130902578203351418161964697103288691259293019448443475215026924173871035533173760779460737451377343743426723393171049499821884965613701605746401822798491955975650372270444179291210748564712624661950190241814439080827838053339018756065278165436558296130805662188642642913650882438260807889845152716600749716853234690294422752044673361310116593279764469064636894605728121839503509525068253852021791991234849334793077611611650659638578640682571979481303791440061724119744727437818023687013042251727831804743854946671942866721911989977187170184645094721496027777090875919285050494163157452901435369552299559693076574556561777084062723479989667508015651098448719218363950061936923026267245671022859708938676058345213107483811891553078066605974105864435280670730356629788296005340845222717250745664721304840889416536339535219081150567305982071250244246324281721952037806858007509397133777722611287795051108585661435838537081968872684832267173054846080789680163914393788446385355517345929096254642976813892084959004949126873270488000519689115144091154171772676555346923179771454063765829340181907179768929632393008968366860050700492128368497008776385427613496725489247460868274655820447816887374007633716678180493366225623963392938655785182771003825037550904997576539075523869348884128570133751768115248353521718710259599907743318442655819348199521953831185937218781576807257877504734277184975819291146097129344254719649457747138649283472703583388331474022702587783683176703025432466758299086580779466257981942878442717546508200222327336987544407111366833416137051747229240977679519656772037539538418266777116506700320127944555614278125559317437087771944273545536697421868064520050167045120512499053466623824835043242683889418898989388283764865820703747011880916599214589690787154135131329557387680671284140731196780193756111091853675758664643911006964382548079492232223670519473013263160824279018407149380489603812912978464268506815741999495735521569612300409180237312306907982631266843266181824305168750069712542618547442812006390129714969865727855935628305839861536139884347663620507846764667714445531094175264074238517982927890972184770536313210143293730548523441278872263149937326670035751739056427621623673828809410886741949521887074731035187758551618574009744527092421549362624472184912747455896023794055213739351120410244577560931605734762062387635922911154436707694126917236977330473520532267106346481425893478532179365282629305063486944201477891412599911356375500485497606881901866607179998625365269931902521736399645938918581965516784924637601613325808158882199916075292275014283118308055267964178510553762939453289831748894530152739024609766265969208225165434097505552285780262921375239353018604787870162530546752615899411316177551888143576895928746022004478789241817243299982940513775109810621544427418890846121129247315199835461279458825809776475924278466488321654850735175384095178969748324410950494262039724547257555633488643937058321058147739883491111010795217643270189236876389636985848907513943676478653871024232780537668353655385938321799613592329296304476824959096334877458638620519276364201548827750880487005959200242871935624476286281473323680331235407555385911928507431545998291215987561623545365974883132979366323290592257801468370079614397390295198268039366246193110037261226939110706640306246565102736698858344333954582861099593035485580242315507727741051085605851126913972240136567209152966081516457629648727932221786413031971978983519393626348462939802342652168389669035119571586078295131024363672504997472776675702572372211825992011525297961976341879334095508428755962465769130014562510209566297489782330400003111201155724897343267666072642562128719997630580499907844305678441211814392464442556005709520574605353529562315185407715559707235596538077497746450666836656627503872629672042999930845289753084769167353364570723085242072900933475294634421291872529787311293524539670312401809279663457540970567159298186028781378304218618023803130921951253482388630482291380978471350209143586619450963687203170961466924720989195200494986297115446122787401787158083786916321498830779636038121810106717172171178953141606244823682486176600764390848616671467655203568203176866825774484615772645778013615647231081896395744050661770774854561969506815144634917922323138532375545626480299603196610026159155470391341300666132251085151796760387965209611901929650380835706175035534376313510257412606860511995811208746339975150025181870857587788952497018655168782974819853682646879867409789449434097210159856106086885837055982862339171599023320773046053881832539824934022649370740452556498351180672258175056855578900793071778492491177374949779599548751935195980833747021340310247969232756491639855032006185890854017961489321236913097584880470814922923410784831731993504993126459011753040271335909990181997739492219726833490064072120303814523625831525544580229096208741956550157958450775843354507530287824783405763274306012389116555688117011749127013780716316561628732120218692961417008238515424279779081565467351805365128433294522740605705693228820304832653934118602814957648944335931464261306053655667239281254485072879427700820527746461253875910185988851977144634157133139630468111003676145616413829081673252891690143549094587550991961136455582578752091133437538957571507850262414909425637621429808409632045529025157923521988055582164705664280497188293512737587240281391382557756587659211026655806138025012379285863669987614312949798218280879939672002702011005270571299420715440202223259871669751609365608480947149094096631762250145873149863709158043644593895785331527051452037744518757672634504054930761547478742289549153342427305291461596075583745500485420004692882212520937016849343315274514098767780747478786740916549261451088212272331754477539737093917454684354119360571750782389693625227262110638890934311321992227960024231000671444981720486225417849597031981932937469197329523449399112155133455057459233004431659399524338523555001929499172068194046838663113667730484213602226939157915755664466941431716408912623885325571561476015852593547823524607434784582618321627299643608786552749981911356090734884103300489998822178595031686660102659039076673685107105432925117961446120348466495840991661784153085058699683464790984528580939824643807337029150065887634111437447466411620797221946462458615892690090993877048440112855752477978861587483598218547166972886114887617477002411809737768463430863864266435417273934288886303389952516620696978521684077261831753245463068747066659602969980301783474254782505646296550274898379913542679318356531503085869606901195857919749790376426988548215956520568262678191009084096966675182268144943974284416463049394912281362467237298518047752856283615836444289183031414370611695656135595496985706761699927752817132068180173450338267876076033381415467720774132113437943510610973599687436709984944120783597456921006581488228918359057649435539156788125317072998930183955984736382959380812467360517819246960156784850730673893101428608827858337473004670442136771873101528969442952446680982167936028364971470192725590499158102289227453427806917683434512996035209815882828809702154035766096821657898326335903199191956984000786395746531174115836724493534098340211666621434748354697374386186468612948502305139934138838312336866166579584276681920563485195789968470458554677488672337394091331099704581587404498149667899479475104789244563232684074776132113789565894445948897889057568015553150817916260947197102451602218280815824838366035004625368401089908265043116273994796055964004198178425224954494625326840569760605795676331623403784730297658648356940174661031762921721010681431579517694151895304685377105660114812040728238390424889821242283989101069939163137962918690685661120642880648765010173596884444785082608439127873494303256699450179645613951084205826454791009664792544568275773558933954190345460148391426102923655399110764258424121664591461080060198775520703202034740029298942917832610788496789417177346063763235371501638554726075915237178589145161424466819153450396413366627023564384700621840935336925249361181932559866398736855781781754833804338218658002630295825802668461165546114688865161619494393222497905995749784956933164377461869213178418540392954160336577980241079715041045357030678755481079736903680681307822194340415358691570112398332085857911058960442402199769653464376878189625770492967235427106515699248221860026708137015235465671294758307918078815016198615179718630664817650279545792783314503708123745151857607049184360937761942986936526477160859631415925739090438570074035630902767512069816644819734263238056719223659414769085230761490855439965384710867879598094776311087205508520077744369904978013956236726637049264878211525766691700046373452057806412550313470307982677445092911816426435216971505931238783027024429719215743321085786865051017417081809166575404406087374128726765736338472506987443300031999306532970388770203995171918516302067554590053325845280071783331212578899343414081370536080721933237451960386469472829242051936812514035443677382962520545163966533837549793553710544817592310796638285589746730674882360031112314962656507134952788665657500178428041154625889967195620636889728210823186262480179811757382196548744649057052537852395971471261699837657470404811505519890391777575575818157920271418111095161885855944790168959601342976262048491044729962297657906302684898943273227522770965048525082299200620789203434742059060485211493148308302456931845503626081933226162373173695620470953991443034721397243794344618141755799193142623650919720932909412672929562001800720239750213556480740538650469813389629437099412178143504677017452471149529891496599243897792701504719704296007383940982252050533477735725961256395238326196480677147047840070730317968940964917330196021404066588087019559618841118168540861361249380741725153968328146662287995656965576622611696483225960286545504582086000257233059798929116537441766979037457640647493134610954328116733331940429642676296892048916547028907704587663932228414157057269934696400883112719331714925962507440472480711973420869134159918053878622511016341421539708829961055148415796640547336304902053412026494398118487029083760338371869049962715520900266573612713427225479698877229200939889460732053617988997753284139303479126220366840820735262689773468972970207238064301491455228613416724146078975600241204802297913728159732475422433588128487614228891232297513028019655689311372042525685905182153836124658661895654530822535399006878307719564772927253194831247758676870827182420888811491106036196389791508654541395781768966849818730642581285473370542794206966302335035411679694551962876913437187912296516577709961106784537783238774420998030253818371440170031985485029992282212343384286598669898128243286272951581736203151113667792614949851504924500420359983241998434210763488713507231240687555201109095418477964219136620916727051404010652890391241147080771532745397869002082794321652509567886618214756375214794258390811355072001056663408946167899048633321816138797444504596844970982844208968238218861431867915420643885681702162961978792600925543859597495942050072404092089458419476089031212028835101238748874176156333871191786372126479914843949482136339883088952412686414986677864274579503901822951939704267153855870686890997845988249539331140824837121201866595914676868824715555820510115232299002641059241815164194372529303430001727049474699346128270422987826025501903313687540895248197764713953546973894516070542811290119819894818070942952683353984553650077230722568590569965852914359017526443500446538300613314651318534017184884310220621366163849463574256167727719552073765688601232029550291156587846472222446229728879782195629954291325907111201126665081328797246079522679924985318063728784960378258168759152715216470990324363224480247693070360583191958291699098456069566285836904309877093652157508343909631824198122534823205647670741369252478804808063080141012412053094622954620998210456848835459889693143954347746150202486662846093485793414032195692563956711936732189346535759137886836685220490651359543600278720595560499577237618955236025354129444129851243863115211833087222352068896541528774285877460781142917329199395687809760076965696272985408699239277693856815433506568756834294223544918872469049983698171020674405017970694391539129092239958924286922804330043328135091170215677520269702798742913653362426475517743382244890162814063520931918776865488210397720998232510252196811230117321134390377182214876589801245916139701190067628301437920093964957056634368593607786848492089774306568156666505858013449775329776546718066030375011275656105780938573429987950257135150433156947545553894310015342170762451996049605945909162020129431160327663576636144653440410382838276552928137896848118162604305782353301333358552798862319763717742756171561160803866483931671064433358606743967064250958170676817598912580515243288153576271943904927356055527615195315029544417016575086749635863115276390489639833125227010478416734885597314126385067782321578277406093441524306596444333297768237620194555715271561788186412928979778726681885189782083461431993470317323918947848731979021632245020627563425529143355645196965572759902976085316029246639796918639953521362492921927016690812646948234523824608780285326434238344888817774918103944903019757639524180963307874115621514052063887631407628053343955402452964279616517184512898589879788779973731163038643265531801552253455274119702134108801612072883313308296540136434341793293996230128622019658522457583406862199016721175906341465657442809767074572527634090045190449936216908713432236831145206892749306412070787229932152552773862182405639837499292260731866554427302215303971739549194171743644124055830878647882881245379541124151129722942648675134159332345922859498339611148141996312238610199485135235660599514833289569374457368722745011238668356686487126759291638488798403721825860290614237943279223341339960490815605986823599687671034697123266448046883137032304925335913717913829389433939624827157056457849775155912156579242910746774779743629147623515415350988771961658114397851256065155521434931077292665198613478258865294583917769426802122715684392237012277115624944732330200516216291019080133636042768731813195213546697252165262018417187100672243716154647662865136147673717237229079509944658915725104496475175518059623308906005780527134062536497581017162458577360064864902302993735475665205613851882032649018640024007557185327177255071426226996998281717677266273732721321992504642437577537561498728886978063297658469118631878716787762015214892695682797724718491586789981801431278686964711424110413084812255040821718888717167979898729999132637872679515106473122316339769764079781292985218980521124206721072587271117575085990036185382388687137477221016539168011703026603738162092098415165396244637845875249042672195374392193842805304525702217853884939389933645791078769121814756227418918384616932201402314925121545403981358350790205578306978525371598699711848443615587565785099384989871943061694622529341456551977232717005371014402524366235643834361672941427745113470490843153395937960625426446534229851218689407605484529025755319757453292042076681397619741092800106809944971446622749271161788461433124988092215512132930865291080782169237543134465018654947927775812132060598412679633157264076751244995657243216418903275470933636796928791873381093354895557613753864494284745239008139726081169570887516825727736041028158098776147701061173549063006680247505100365365608629517361365947958716682051756362789580808501659837666861900074978295499789320570264901355176459253237399740060381155860258131373090762132389686586647820642284553934826803139593216411492908671989794041432274248650775888381629680559468337791255911638106181939238771347767386427288681606611359426178267229452566906997207084179847196893514722127669438019946942639862177079713509660858228594568609101377141776607800574937843677657062744215205719703855409491260095870739349280102842426153298296372917466624859531460670418867542822949151002156531169713522082078468571710061359903230484099661164019329501592335019333613516700835227671759799577908181548389919473292726323430410012998367818899783869894753798913455517331252344197393511248148373646419846294104722980545685194126714328594581822900480331438627903472948369963088644357468347072965800999880402381593623714728494926365674034482079189573750572103357494774105884195305859871459808652234529412121921809319849924345426480966644586335324934684045668308225041679344532849291415547883160037986758155695098746163302430270261113891680699309467371442705016886073705126076283750985094626404503107727170686919888801428138003741450338071565259737752733106200225314827692055684225750740764176630409917002453921775399434496448697034979693442031960728495300190637517043237657105308820978061187803826506866671655008115854523140955066429995743430312342111884927168643872944875436536822750856116010816143659019877555682441892848481725144211911264116476617390472563356388415223666502068474691544636675912637655892632623966256198840015550675561143844950828283345621774638000408889958759243411356404040468610637413318163207187131578974767353635130652759792234244166703669393394424840439292149919957808832211189095765117048362502943852269603636193911139046861390594742334761620408978593987943414363219585785594588347664809423224334504963757991775703635807034858867166870976535917363778560271885865854322555027118456406277752287277567010221878509841263261108489426218089520410604670817443690887083622300395189950406476635206255453571618056393586380848579614421936195163027907898706325782866300276783282686206982656464195548531021109407276634147645111575898822690434862340934257697128754704889816913762586193946675916810502405331190796208316937141104075000738379064154338111820951330184229901878848061231928142098617178822184973076981534533918589922841364846454197637540352028689163616522787409268995445559108738167388478512781010222942149986762971404308433913402998759942419509047245022785495326016497302649051529589993932192110516503972144293509248368106447367284869142550749907824794221966874569022495783130634242308954433919249811786065344240501786222143079896860774744340099256759321146567517706766556525129198677373849056172416386819331214982847253146138256605053279165772563596451261665210414118618203902648626582540636390171280593937597901893335692447308119736660435286696536099130036317149405132405025709563670273965335128165520921358767106956944745109597275302327578520427973407094094923290149908932845878799979053977587698299367117891326443783817531726081138750734813189704961058703451983370206167860139411992602614510656772552622627390212702877341552275430862962054123455498688934428669057016900468451985190919188205565163697980242204631725018767279819797404098609377953394177665930720190784773853938584868181918426276717970837197608646790601623353168442053695264726433545461576826966399360422655187727957719617223039999313151406799189240045956757470707030882799110670472570229581139212048356109136313297452274687035348791719296028613233630587256508098202745711163957336650720003238554640541148628868982832749699466369301477257925131180340787708836092713854707411546084941567623854025717945564276491505302164357162305545950483032814870632277512411056777856947767781359055088514202948087165758597675104361250587581999246520888649130431659855901293708057088106878176602287154433593618482216255396145100101110850378879404685352584717845200942526956154704759606503425069778750441174920781142765046614966217882351994044256524021894107422406519585883178205877135052711636192805941352635424539557457572130084269517693294138478512953286094217844751402824693308294834451396520565486122652049637521170544632783548600050063588266712031688608718959397863537014332112568358621194262058374191335405225907786542275203230436420407786729684271425904940401137590912314691584564772508618554044581723279511308740781978307695948604963966041191996781415882133999308241874857150240496401129612528719030397845966234894450289632352743742168045693742079522417658696663330875806067494214285105776814373616717636433794921097145953709902119205026855124071677465780857451056832347639388508880932440852253688676881186580605986375690776289615191511835389268810889122743292288782170237070597674696052724286063421312679369113943572965577728109653113516771357105535784267734095609869576944963372162758833836801369492148061267708391607246349178492812599544906814800595228736349043409179570126746422368126373328864408628540124694406650790770113783698366691766538339886526352675726307023597886913373274274523434282587373114280053047711387319009320852328593504382143172248209030172843875156425402787312097273837100288401846713360203612690843268428164697871233399142310308940862314108141963582586575322709058556576167777466531818609541880099507570916633400557892166403806741051820154273072049647780670539190981504788129724498908928396119015824471042296757619541508972932692584481615081648978875902056955720106298601815333011898472247208522607292918001829975220165809369639817286411490161180323676524965805565534413371642210046167431138001555028710532504527553356006667410034158786148084357314953169023177711579124469966393414761058091577532156959525854564253633222815765927559492961883788837432003812062436954382670921076154633291931606592133830165178716162425979412082094121286494784819945830583920322082768891125939151679700949723792436841805706916235976820114854772486863091591419918786245172666870213377612649139063632744178435076101685246297108882831302700274096802656235414125566756857365826674753341873190833879174707681798738623958076192536127658699080131003501620162863075028445578054469304996479598117596742020859587483277368348558177602728800605523723870215293034138294340829477362784546937208636136323313639410143473044761383572816186107877992270957459509297472451544200295781502050564287365058096003558545718878591336176325562779920967184033252962764734393949203682425579059594062397988300807712712574503546341808169230133496576172715285822259284078874845516094878636733660448336874838972134387231111029849598594833241022594165997908550691028719692564986962004810943593093771861453927966905360798091736417309451068331274514457582611809037181652903484990755453557836291947674918755715602045311720937361620069504323276645842714967199226444487070247254795815331520352666569028078433834142328692986042570605438443027091586005253201518406539871155301336842869581388459753855883331468906635185896796545920179429467510798153209565516059819197443040643648894005810687071656031329030715794177165235024200314347561572791882510826586772011772381610639055633212561507853506841061469934145772976007893302062003410005377424437287451157744925114911811430163938438450131615741377266717281706001139018826139256231065383121531475553729454273828589124199854983310737100467986113117433084158921520426367168011249138035637791120984950020317572040978064943918259834549776448973318704105044530992448932563333307927211876548727456433383760931671269395289658328062938533011534282650483284652282632037918404919524251727112315380567030116790777970450676885955221489132205548054726408482556250605993051695471511363261109040222548762688947698283021339473599886754911364940737315822296952555779405343905997390357864247819548004509980165295456089648464674205519359611748701236134005275018241296852412779362346742734972922182829887144276443321834635513363255073637314874351551843415525768953941719871944932551591925833844876292295474499672022104946758275125644126682895548083924099617120855757618545420893532248090866651103596693183093304998684655017087753549319999233711558321322754902203125667995429845065356560761776190029848898494767992167580258902265239785768517465061305625818545852118293393172026760372418668176177232389105064084436281678367015974846296607750912255025878373759490993633104057170974832145372794188254936461404655705415272971907798899584180325698939388024137598038049958306589301465839488986820785135632478149930051771550453203930684275156915609873667567724694886220617605391197375428860680854525540163236268142923932423589104912290337350727191050731658690343989954541428944263917535297457545838195509510568517532864989000383728100472659091649866620087294350327882346842225839531023523758604900259370813102132891145735758851158832493646962207198318570494243184375032934072859843937645358700772936849370153901655821183236151844422206012762984646397278427322103876561946777317350222869020810528019021265038906572570862963799703271602599566025690274758880014199114931329512043437112131046577837208005240028740028482942078904138691150955328701321831239435248957610768396439634134412521000937199103207145957338130114736461547125638905010775006940206338783285091735569273888507454217667090538603302994336905302732941064332967680058292942349309997922275069293045340928136506768686152449997095422954537640619885957323957535246499156553282879005420151429140586388442811241297139281130276374689716757218583450338639550668932112921128411820087027052983882446103768312344333335687451538691686237875057380508182553138634117245792205603257023297639300340669048577881612895379133911052744243891473590977051611301120955514991274851036004014347676295540622148307925546826339070275566597006422737063468096358270048210060600236945295843798727200122125208731748980177571242639294028746535742695584703619700658196966198165816172536764934682673509539290283053966590294649751971320696106884278757649975932247053219223628417961789081315046571809796820782100714544071301819313286873941756775241180492530167862505337328883041711021752776430664838426089301471019250426025542839380756800776666727268326265360819453997823895301921047258445379845740728284852251725516022805306110069567922111195198564399768513712619155596552192671902080322364835973710964231981083839444682383854839115196273630544209538914905677659428639483990542721870003451361534918545339788211173384301224804760556511345992130712386587885272477651577176760637486874790547847800221353959853995991331689480526701325904258270833685939095108176313506424373986244121139924685577808657479339075570671390774526451089413834714892934108548703932498091680442792106469291706639541375447007149439376286648779260436174687324377389962755132690894178219796628719714906301679925071861889095201823914812095570303832890867491199521364514415489779112554246285686262922717867915083503954987527579428393422349783977591374403285429160978096405062109879291647416032299576619971473284247442979802475640341093165824201829606485050746270004294527805644685440677261520623777677484973128950209061650183781001642686554314313037856552181519873605509633405037118934052138390460554462655848227648952928669170407793265571752573541920240256299768132430113769574744717356114545356929885152183405698089928455292210881418992285255138774578752352014771068109108041672510516776382581308632629321280293091455474456559620150540383461983019527384887176470544742506462423191327925028023671337654975000320056656921251010443701831756448233666688900596776986452551379716892359294914091926901681035696058477800931871691581315341901244373182247133184162004434680124908786798114089402630340329233498277438299947691930931833916618325533802750798264603394444077862929022436771552126916932918080889138348915625313910492147748134736870434081392785631392725769532167016805147103679741937438355450085367679668951768891734620979202716190241740917501795899278650852554688413476438802828247035307148278391944846643372823597117272844814397990599470500862050313227391720513593551672329161116950266214881469963823358191511092028840330016450109954815769474482711304463080138762386294704125802606425813982496704763649249850572897294999277243411910718252944728880447069297180183175482853666513795206836055148534469341315975213474627481187348865707864793857392318972110459615351863972170273874931508657427253035851737489215472377891686738164162257445829932287904444007598459341021719831705253154991477514205325188709305397001227763264084805089466904656226665844812095661338431178260810169869624991445341971096343728678514461681910180353502049517613315452159971353676826287365597397630361646701250191058547766856196794849310218398373614642847777220620609345550277520562510528778898965099591123926978987429105931762979992657841457600325820515296405440818927028007487494412245469466291503078241269282319369285912878279040929043679076086249844372482449443082627997233102149736757947459159100109113642258791823405737193729435252230475886955571780309413188658561815186316017488617687036643688306820849660134204663739961449349497421812573708851031957381349519792354275905457475936017223012881677125145598701051463880123585361356639074804149707896220513239285651485503230475279187959011255393498253327463209115669049794353799719939856682188999896514062622145455040783032754630944312164839815099488642145689738417202142560223886432879915373624083005070929727649015931473401324370270497615456546011075834787186097383467283959139917331223120067852455676087723967037594766540254902084675789557136446071566175312507270542145777724995667834151023963272872075587548188332950999078024006366446457217623938560029982628738516935640876140357972341387839199983724974750572107139094796887624559806647794663587741200299554481676317639242223439779914080182543998817368994472745997769412329345979013944157910427284603084413579890210322398698365137422530873332170159670528581840678252283830004708296062110868296655630637166588315611476213642743588504407630449950511377758908599377309294035231535252057461441761219665515528614822855723581537354353526427191576446820143202342234402451312771597384031728526606644266133223255409000336127098339783622845734180953459445452942011153299364122348949150557269408539078193070802300202075015696557109313360125975491190418592911964284130710032445760887683913970318455976548324462633180595086638064783977938767009671872803254484274514825441695644928213543571208501625386432283909039856452390986265347552230688646245287875647685458956010376174980035766029718284445770445304148155372006520669770231286767801735019401006285281410968594036554073342506686383592007551404853004638381585732454119914528649023754337252031564678590838787428864431677448691698267655825725882134292479779671227757280417742543359248469987685048522438506275304554789739599084532690639732248346939794729410747457876688451120095270038516260285398418702016197899058463934525811649969344319644464878553247985269605946335435006067829687849885801611957153909264952062746512906941439324834667970367550288789469133988270365151990950479746080996669825732975244649915419749721516425767603317539142267295663446365067376478524768224366353311916027987217821781616812770868919660463719651296509721355394921065598949042646238334572858528243650704398864708023282590334188621183197771092778011296479410842495252214688944861640318838903674963050749596856258058725758514322655517588538423123125707727774525457474664578060486966766560418477049009660325712239977752479757821485148421400461697842244328443750657825098418465522852838026492350330869301058056394291812904340368464995696542723730661893735455024126133758289544908727970790068621871134735429317547826088109456308305985551700490647916481856608320376528799236608000832309062795833528401264877954881312570953042142600890985640429427179825992757072769548049802801139350024962634146625485167716491443434977668377835054308294397192183664061291564857682898193779501264466004835787557377308703625154879203474025804297014231330507414294140805615147256088590617497026954902072757882938461293484953950826091928145916033655317224839443871359203087541967443516792314807658295731972035561849563310275223605279598644054694552527674836481220509435685314532075770595357048575006228580219803379115122591542288110521305764281598212010288629997130742785515337082153381407171768088458232288260139872200810181104749396915407461685576741176751561590154678866232136027967135983571051758516004633287747061799285467910637592716877529504212564868428496932999317002399921693182647762187960137859945003062667509781665062562908772732531964027218552472506659647848967755120846282799720901396021895684578435252658008892626169814654463922140922184227215729443655064444736103911931248488826992593083188946661191620906248136645927882832360382489091237405320011351024546775948517621945414840095639553045033355499814416835616042419251369760490900873014850494822655259915859937196196286244461762603240123113791049287847687847258798063544511941900885099570117507852741785953650716078090808777851638083627465469990384782070691275401733019523277997445628591019249835073328186716366129495838335959387983008721670134895495319272190502250090880790449490330583878563577897959177200392605957449741415780192220471682319835948289150840905182281023314165557503296481270564574413687279087514067047186402101519809790177157275959111856163954494655903316882155594258344149120008825248042042127529225111308726652315697090319036340708317376915878537166846599305215031334880560012386338633488960940015628923997316841213267596444060432439469662827442182334879102572695139586059170913058523699477814804388164462327645998491355993443459558870985190893455880548192652544043220246091810968397169728242131099176482152572435519737637909588876250040919837491994152434187730880476841505537219372573416924941384630745086925950247021727782751216136685675666943262083010917604563629941168019616638760698358547503031712546832040730181763068707028067030689803893096714118597612944112519635504305030399554260600751077524754749902426453020496684816370814492953728871149738314278201245669382414188551180336909607121191174528795271787249389921491254288654312790847958373917238491984175574844876875783333514980455354569656475742024261448829099767460491452472918105207451422893473841948577095724006444452047295876523531640672789881027143797397698558768569013769544858068886151654433387150262777063378671909253427447121551784829632656227353891557843324218448846728530234548997174510283951544684194428576693485798130596326983651590540899359252215788414341172610540544292663131048664053282335895605371489148125126332789967418377366550604963349418470159559238655359139092847042829650474387764637262920301421722586134801163495370536056434100206067931371016312824434871771069768713717096051774027293268946068583516745002378453540923993288242804964056437176321010830457080955971912666891935454034762905182671523839521508546506672201391598031227008869491595893795443999675199546382121638679732459403567849005198157066549989191874110172616585424346262447258004723992784911168843279313352635588630247066674043995330984134374408380533847777329119233234203272878277903422300537927427923705565982962107881684193637344820288179802272439349937348201755231949594946384808298943202812246884851688879511351916200995709759582331893633906255919439673956295860020433798513059670687320300051082287850394869046470416823936035887316628618455549531386876620742796968004827731397464406049970601595540652065406690118690182576105403154514356231996565487789510299491879044402626380291501827930869506578086009890247041291959206155231019958458139663373680241260745099016435866587389539331986649448517131728006113016766125016864102500574876821136432282220220551652556923571527700355511328824969121420961533714553423959133649952104320308056419280173044969287225151882246746955904985683225084305033028714080229751068676932347060446062409724008582357198028907249069307929038773097284006031459673711374705252695237872617850908677454197215981236359646164878575162565307589538907075854791240642288618088872459274798322425402968534156751400315499185831215455379161039158514550025779761830841455580219255862612760793174109172673574488041983173098486467833820392430171098273618996478211010788735268713711078867663499323624992558931527542140699091183172669424501820964475160638108149295517929457052516736173994337744443307208442205540947148607539328347515467353788611317191084201337657783383899563596011211518653595962239161116793527585303716014737926666571021635199445870112141124815370900844122265130715816719146529693626929680022415958879650149254966564634182638370871095781262611668820920555391958114744959360196633503040125321061515089092303553197607518014824356712410232836100736662631584064458990586569272417967857045649233959792141125687417010052889964097078122776240940245971538687469183103519651132777777045102077786519965753459426963727868897615036293076571030168087433011582321477185531911738546323749313697200414700180039321082428433195294202293996372140113655723732118797505499536477338310372374159369108254883419986182868832166395514631921122207838749509290951194624084295571159501331123084110208440480931479528516821288460578045470601484227324751361026068492792708842485108460969044647421181824005252298664518834026521915156660437055717203878168224222134907118063454590942422682179918801232177773904751211092108228173973758580195945228571196339636949621459354172586221387480466908967150066429131972031726155289062358031858671645261978882308475559116893989606250328749228415253320182950308507171523412858746282876887450843382783265494906832528493497611746022079071974664709435132382735981903184390586149925128772149442377924219713065838934218408956751098898878889023391002599673487030499452753333871803370317523950936520430065544240127065519296443883548811912829685898772565401749393443026274667834943978976195607511443644105347575329778417798014380190472523952011308535590646240739615771472687082649789356797794207896617310508173630328529751374047922879069896336672236696462449739885337126623764895684272091367444350423158159511000656598239460870734045866470877153804614443137055299681149901260049429030690692798031437850084869215646122842429662162372639264507663003955884083199744161008956295308506110276491880799308241247913995346584592360176438752365641049448327216954664977516579427624852390791868045380770500934468392242648263919348931275637730471593903457294681638346769776200734178361970105577261809242379768409530346779493288596672550871634475491177873040099137902449757193738775580203979524337938139455894867289976580193282285983961019879087280328783842152372539878002008566066102585230957053347833622712398605367002926545584232702113036197567925747224004919355697866489471887794342129245196327057090872370289173682684181993764072208063633618439079671952818122593118296622488878300560265205492426478470186432451136749222270037783754256790242684940068184942476692569130539180632824973145837442802426159310648306634538443564198051215161623419097461754801958935141450560440902570198430976776279893761884156446406893959015877454138784941266586899400155457729432933941939817452251065254380656075799765757377373890671809939978268094559304885355675132080661365297326729372918519083154567787530977168491124193348221408979201580051077211977132162785770049733768757106045599486007093634458143404396907182170988057105657896360225924092809370695397415824101078182537714896868978699484499813938551828950402827993345620496391309931943910888942977848247935658047382770024447924178984880861806776868295113410490618524566346721804346004344627234417286827084383882396320486218392231179555666925232861695297654239268416731494792567529083333429721315469255028910526581448084274128304435661029668051017410655465191830014577594068696260704289667485236196024871149722411109471189181080358248968835584242287697683114643170438609827412524037206382298102519991902606099676944749433946772743872776195281495182731634596757199228244553566353636465494318723201727313273539581225954755772504486156412677884108183750764497875018815364362254113012964706498664887071963655523049221795473949481279018545994995072685884710498464174231587712420097514257182564515034444258604466814786319020924976504085229776263058334426962049390179437398557283469844031019490113331737475608297683844282977083873026989411432822543768780376954651626507132002465748719990187687171814633406331317507894832970319753892451115304259458821697498660939634205131128153908233551472919498384632006757521236820592294325952522982022338897096521952161395745106445423255537176685168559614788844595031623408452110806025116979684789804130129345494415505041292430255130694983730724106753814385402913928054325277174516201841779089903081215463813444492352517845164716529461075421119951502096295200072259685499516776599107229241118448013811312641870483162678674472452294289191840156930504277391822286154651210064596166412511835376831775018583527912850678632149304367123124725564850222764094367945231219182676062040011943794218500855613888120089498021379749947388391222148790374392155416392756636795606132908416456245577235899329833643397805955245271699876250085353456971258315228819542883442606387194207823888445806806228523238034104991927688548917538499569354742922196352950607481625474896685513622136343009237822737385706314708139971346392511024926603930712791621703256572596081013886533277251294184650869237559481634452729541507185163467086592175659008322295759743866198259759189998934671074375494044491689131555374189616895828828430088895702219678692176173367828934527615637069451896918893444616972847887090343452457795799818542629122336709299396056713469026226589278037797090647581729776514577960751012233666877990020387598109068736854606259999045708312231816499971809153125437731589907724767259860508484398169773005256338763279606979814557254595883704528511133146586242805727992566929894453349493088016781859000431283764847017186116507041225084140737192650141684760658344088597426943742992322298595173794263634603113257155827240647374855225356258489175773037510835151424224267246086624606784172718053490226501250871819808593137864586623468632199136110091107022328666709639361085903574014906936250425539743599958806185548673670710704526275630323967080074108660059056545237465063224056500505774761901350936040227401243115026663454902218930520283452210426611713024480903742727038944314090444570084387337408798340619771927443556255053902964710171055413355902113203667828070719284317057320127982742464668103469393760139916452202112300639624711826849648422332406969871149100402033126124976312582822914472098749464150948245842623771129650394705847703851037052941032590436145707163654593661569626224487408410685990190541050696229669636768039084834153793371368715453729102246114033191646050508890169810164570535488544095882331327686423612698124343067587198988286292053815859158399729220117860605710742066147357162861157622171935637670037803602913422988843021763773521001514476941605373627798332701489702931984809427709717968561978736105085366428557577000705471460975196406870506514697762294298348355521387699337486277956226696728460442113409485869876372848697792149856960034592533844184556333514486938237874256016230520254111136520609557122146395234438435776585486767060562044399231533892851952584235482927735345804121886244051300517326110230919703406497147980096349436066571069390605808404543858088980089760319390270402532807329530654462591287008106344527056709768743543706206690767630116698180760278622623311718046765060890076293747605523300864315189160760591131103234801392862260682303874865608549297572373156816987740571885993175496381433847928978527616652366532638412131625483351459211056019453425009281562842362432068931571359960173280039117273559051897812104907502409138461660879745289482790308388353832445194550300327894913258730015536244925136139175755046061946232962757547621163606546683780170368792333950505728459658980947883073730076229864594179882254108807142546323823995219944313423767228508048545304163925876839374498267466196103597354928496978651001402274873396495591397445181016724777556161766555302734296005241543002198372502169864151015602253068613770948898069081769727204371424969508955589507816796579655752419387264627567977124336795729460186677614982817726881264342595663006382411291269880270854687267060903283302979625505412206974569000115731228569181947393632728359239478347593682752163523822509950626473579366187661696077193256041692990604323707468421666294163334662300352982022442045407769823467699101159117917967711023906377778366005839156854773875120698015849163961277621539731968467235935212740892605190845909364754527841291482896552939865847963895439752131213903196669762212451160341129015631643486273536180078942032402962579996546717347378986190085300296011582069400236879705490812517286553380295408585919324776917694097567905083834787571162628993272309715617846167572870724084642293200124991999842673447919861045030930333039881009893741068418399290862926495790945483117419758907987623989316159566999688644388714454058291314265315013170866533704405303080780634890359894841943470254373391644482547883959572580314840007862733472444531570626693282907847543001342833790067878648776672539737550647876902640899500130262456029589359057651664031725780017665112619837891380676443171625388261941723320241529097886132488169859872024440650503983878436382439635450078595271314331673987206230146655411232857415969816665566276004495312002709739050385933503126862110140426130062353866284515925263439305354056917896403943079113593414816690260501242861480375564779379892168502884272047839803507167190401374278599615331696658327045300643708603392835204103544392100701097379263420446040616644460539105574095542452401100828931246875746913436621649176818419355791911867841145692904819744081923780076189369080110607139322099881001355234513145759177901195009321886270874109280824968239383345635547755455534233366898158541837475557027905529033817019006676873638043475172641422561974196926835272501152604644076084194873627256852602166402931243653590382041640700813328191937216153730331972362454575983659301428545002365204068852716625115170753033333917619447219726888826953554708452982705513783707833683408029580166324818238992239168825144109874144390593265153617188713283395445379399307817766538254109645898492474852493516296931667417917915361077465527880877800352843071401558016153757566973178499500768020540526459068933012181634408649327108909437423369131752848558392288887492318895262858806261019057561876411278376508018293402199605208389148037491575859581523051392147324467916422414954609342628009735386095895296635724712374921583990705230295183720282868828025044696202046415486894922943271861424633492615264271863603138257375353764983215939463877536907298744838463350118966188060189881396914977344551587457579287778571184332443715631258219053911054725653598202835827971928523530493837861996101786629335635306559340345949405979148188974027645778172759940579374795578545906000449220015249798640288979221171746424491499437564824234227347667603506344678139200991659898289884761805884021628298806669658131656331073068992610466391049937905605624922162307023911371810526438368095200585108092681438097952524174942766319387709659770440644593641695019135645682000432844010745658929915048505078286630456974212443629323545961268950134715081536536658496854289158027086819017794240212953855563500728563301224537760051765157336837663210776391372799406291317519472783728694484140795120478592032306565282521106798170745297816448261757340184014700651521989372989206437452545353255209938454238609075879724210168722760671166139559661273852243251953423293273358687365135949158963433351307750480323823238104494625640777652853559034148528214602152966973841438134380939135110912433762118569519142595170491568514310884402153933388017374684238993361630816329288355611362597965025035735075501200496933294366462706328869873028898580299034643466349521995236885932759421621037789627651171451839317064271041808155226559619384605153007803001770818033132472859289850390405635210434779582652726447614518220497271598120868671442624597487117320074838328640900154780154934841972145938909230016335131840125721568721944790695572506613818612872582741546740050606685275722646884294046889068466231046644260179710938370231935795369248036651757629242647363748198124345874475854453947420433749870749273248186151133772394492397014810871308707072794838079830785594826848331996573371862899727546641535557469290855693844152741965983327620821881617513640116075471786252942460138148290075332550900458034189852758032619836930844808294247136057216926244930535414449238835770094376808341225123888115342457153583304222278084701281628045822129851530900086180511275934418070955316426990613928496219293970092346119714056937089722615817876293274991413426325403807221192359384682410829310619855270366506170794325244706696065629159790981479659545595041230571518370666212140084060498971728854790413599682759126937694074536048525632125721919117229799527157562136961505385341282797025332526261396858534156859123659146318131849729714677741044249198743156333565110955577632232434638073408450729496363857714879482885894346484355872530150186226848738390242357757086847584804890418864825324752108952983368931969601631017886553742956191191087246522153058272307273942256788832216966413279023580201221248663997177561627842436754285126298291883575056445524591676123593927250488695958146600750188062083354236285003407965431002316450894440848152051794835410722807598201283267766836328267205917377245232636791639380579007470517819445103457333656861464176464338119027595353737144700139860284330908571965326871749386657673466240194302154340624691149847444573343676539890503069517298675152184185365620737433477190428263688201431213717452455003436201449071473255387815546173572537797192495048676195514282651912195050384581037957575503183941087953299548980383892685515071372287717357441716018871588658239751949129967317264284734764070791458910811106557506711013536784899762583065858256752364169431219283761479314175303840170311504547859894523280513159138005843348664675151230970969926170184400025118095483650907694613222067279028289894016425869917336396572102761429096086656591542423336098713950479667948613853341385941306074557617043143982850537765740604624049660628355262625091445219030977569197341898815025266135860566683674779368723303737478748728695235715791404516719615213860207356910348373396746577655839201340776939082008753320327431966230072933665213319221307293175586468752897300924087248008815164234105037840218349977205279656746177461511164572014222296845355400992166738417398963273562224529513717578766568471995513273986573116976424842740747175970160176238979851352385680726114374351592690142536843204553048529582518281548773650316394798659087268553579836693434290942005553743307790946605544009791789190395794946543253285145497398075567590837569563750296840134557554716041063413479414751076298008669910722070434512244515958988262786982920853087403871160701247565202725536011639922580387025181031061200405080201698465968732313878286909208369055436250269413537086375284989666403951267883846076706499359247065122907245549805701444048270025315412026373317926477860543186296376077560039048795089321013060955896516817439973635874224603263193856321696440675484990720869923849450125206189260827497909126900882900410495680486426476044989319413608660377146789526242328486809649752724492447956671157548728989448542087984298150196138512249419900127880255816123894738935457699489603793825471866314688903934855740668217653487268988929944387382352005145623140260677769453431730853178272451018728128182915588549723165527598723405265452148893572995679531269575446180173122480851426453707241086292005409561080108542746849136281986003571046120424154187657024503973777536097976712194045877670404917496910182755521032502123836624353471427483425873489190139435454321247332206868758431017860154404345596107333573949842114668443032162014531087335750291447556855627680968883787189059614793820391751483940619635597060385409352705590005611154716917169135197723486284130326146053959880699432679024153930622830475408177238430793221898672281396100666578453930301908413532641472720602728869938279206015771508884784853700306054614302223812566804174983586105981467825772452546970905114408961018864131989461877382096237443086296671172587239489966899389911410351728728397421619407786236558761540958491578385685989153428439877638578568555390795371799144964791139568935708724695224211475264225435947134470076579557585200754001340704072792387890937554967506339684786648768256319846932425824072384107103360889273765335163536065972150319203769557308132917341475936419304037744922487731198954617127451493264722544759542166530144030385669408904785496737847778702529294357869389079910557274047698385407637631186285787215963830192569685340918296050143160194424802411181731368564625838953343241149708737931962660282588198707952196254961928039940451427856898822197075839256975796210182827720722504464423112945113882866549414398065216919039779256536030071455782308535830968923840929919680898124779346731025026893908431591412927189303510842169199353971766517243600379289216751202989647090649993277170139097571685207518262168149089336238308169055566186640044881049496643769476444955214591086323234447623772087707789839688841300936018393814623875799490045265767498130096940112338759539624714573110882355378266625867079603135665927103566170712360250765746793640294614564725489733993413442676553338848013546529529289719196190993051223040933699623387559549876810891083007166974103920966479186851841863484044551169807611106232520742390935739325158540223367807890237019377399265227988401701921775242159475527644490974826909698158368300953883688118756275394385079335801429826525830421060063035982166553400896749019388399359091607153766589009675216955279951894781484737981372505352191178465419285252342410595228677631633276484505458816303567829210461861849671574231663416594754347825977387922678254287951763239127515580984304023591661878986537341182005984440968892522609378417080901965514837240377335735243516075634311728820032333371463384491217507794881557303952959401010599314580864946378217878145461466899381180330490651463196223742212636914223791037688960439948778015899307562820280681347967200732186022773687388473334249720584183393674557637107435254525082289688226236270291555213895161865566340326220076737310820529156495793977543047326306960720430249212165007546986820085958817714676552889864648096885276611646199028983356799758105610764196654500588052394220336315312350955784534754027061832343625257716898173135544400609963179086580110531955834320676832799657684411528206726916041571866086513916412001681739476819901191297190179927485300397209576275720878251433587853011991783006214223055273099280507335148299561637594140310952433624310195141150791281324187840211534003918370206955589754737898470876104902172834805439506004719421201284527500219644949015196978226974080563417776673413450634698046693861314097844888020000472629199231507308659969390096071458769404462493656940602245101898139131453857366395852618520220584775311751452227054683332767112287356308005366361495477655871179553084211979160672368237076927478138512874501715418141724159286498742231719472654801378159137269292174641209259734047167903835997562169757472540070290188869342912731563914091423131932289140674468559951935165547291686696942308968236491278229937564233429943728781443760715649216637105478065425367172021396903872874071991459756847859313954820014032403046428319236636802791080003978261393947066493624945301550105253189421830898953912315050341817348408996811757404027394865519258858480410310013947781481747176885898989857140478927049813256159699339657876701565345797550618049673415941118141410950856740054582648296467144856815299397722918795313356602288311520797465115505021691024297999587666095469390160139707262553091232480514591382512147962652246211177452540719310256529711964827682823677336821807377356276816682029764445620702915646707468268871784980746458399663017536655599935939657495055044419904445856662631484518891613529869002611101042554526349767885130645754727295686848057304229291955852882778205541982992964931133353477785910107764973713465094400158370158385449050408789927776400916148563485611286139312529410217900517830851429722230896524116639253676963061608900683318547171889607450043684243277318726082568456481577276876185048750749126890756634216914181399252151279099312411253844207999901944290880318963269454999280398159936531749559434919705778822501758802369913025011809381646328798701299067408415122895105655170529465100330766988102006858793934212392446689613258659824623238945464462823895005680380106919805543978509711325201619484045065325709265691597221026610901101027115260930094256606875617578490095849241268589161256155008474302676381917396664583561411728693974441991360829722376180729552407920532053866476611314859754339031913906818420059143628720233601623474874509551806066277849030368437108693073070448533706208969989766094201412680222658171834893934788881165044156615487003650089386106914136018876942496915486345714588627118626389186675962665208042393544257796554970786244359559501161918911776580276483634044692449512379899319982394594253566370347519924585540606992258241312088411248148248296034559091699162938679011556680034047300732699554726174888802922037545014428041249629674631628212723924680541461991846975925427636754582985190172047487920551876221807935315348945986085467570821858301381446761974072141851385914213796278725864252903099619930467406553581296819725317123922891437595255723163176887084898226691744987635757899635153511984291826678384913125320996179419391301786256670574576926625680196444984636065402707019076500538207604564286305315001628661932139296578754188142343450350846470980253003061088561020209886168895372835984565904943736164145328176736859124665552884866931125789604286410249218509032674712348022067747543590287721668749609317872155849597569047720806212615841872482670908713052450341157209302310264246619491356161460505702837270258601847955259295742063542752302230149206257483743560064137935503595700416627735086968117611289413743518071818169674277955159040263198019683046476930459898494498551474139836211397628103103654906075207204307058424098849543922164678531519887917417193964188859368742832508113613786907016910801264236830321599999562547881446683264784941813394896725955648200295847760665528205645186842228941355093965877716283546498986253351551452973236807477672725969388101289350013336262990866758625694912231983397677500901417999927009133612295181609749774845705168553388350179306627765120902066457577823428853865508141793506552630839263591186471144512055442942008135514754813636678220859594533862364484147753639707234125331614309624307235810860492014852480808078270865217147417005462922848821793399170483277600650865955780011077123857008468624470747933849669336359221747484637828763398425801809079317235528769945125714535199907764789936506859575562294871820770123332776794861537994505543186436528482291940843568140235037920386043674594337071925398421345520778474110467561667337235481504974905332043485857698510882773730571629346763684928217645074621855272107009523426890805418825745482347000748473261226686880112947027037692054016839547871379652533706731651569516287369365471137283843378281683924367066541417988632200785307949071056373444506796234507188176376020047066701251540279618350813874838126389933435256200528971051143101503509176673651019016502907824083045938156279395335063324716207145701657812394412513496247422719314739536709455934239495253694683708187881324993602565713141031936921835982902949266286137713054083114551357611268198060843102708269928105724630974312398296353840490206811421263570873904342886410064326185963291173693313072282921293961863121143027123223648122242464598952370644369699520110904559633804118272934432131721455474977220095157608640324842325225675127446931437085156884808370057319296361411279542155150785647791331934890890583514046020253345319652705308226903770054648494075633712027447526532616844079375112853196854945009337621038002628561661287425021345273066800381607786185141254239712794755612019249976282267883018285423287682743263520656195160967787673164276998473385898312376041365510124716328003412324763592729336137877388682062706234032630745248155026040034624363966280633059856459711419860978197542782767722575786977377222889789997640224053732896699182792546795633060793198506140085340659266707408404996528326129171775102045614405901813207001913639572379098865292194866731612935553864516569034049043116591403646083778869221230181086329049012575680415599901105668099217544002247225525194566979707565033678051484166990121326562541410413785584838967530278902411804200584957184274916826891157396270015832452795237385675118720467581302755515350077091659800627851250699278298617070966735541919937598520731211251891273732969966284152913166910301041648874857811710921023002409488901088483872238117420193722288242704317385179026492987085741272124816696921344025165619763416133334494675115994592928688426131669728250414888234891699310132448443328014796720687054677823587254036811230210505534056493520902060543561156126311268290054423949015173012022073035798988970620146019929294547157406062643416121499186927494928131662689458556092592607829824529289743690268038303747613987260063181169837212663320099848636342877820829531754232155990062336494006579541967569134823764649501519893274912650673874747159174909281670396691779794063024731004805734284502765923060925033302850884841415460436335583791438193457704448158210241749178003261011528895753438453777372022583542728758229267018689005034274788624793341251967342452149240776306240712711697889310084723232926768872147438115922934054014813698177477988164010359186566870534282679495557101852951386298169031991758302866125493565366847701254159354510562822908807737877601291149576578879875198840632004412305369462272766684844180127452939543177328657321564941946594375869548976508824669542048865514453066021425085529993480016705775740718954906944907224025656494313549380689550530620252170139128856864018308914243174157912422692654525208866412327330182416031470213907732802877021728444052352631101347241149535838913536879262111697884000784923005097220500638317316498030135746302913059693604636485441587661326892340022349198675957286888529681055735404726281487410933296949308294780928839627986717559699839726863929456469060809397638222866348899835579476209470992868896206734060772359675402333398127915223220892378293790226219561481842391841632051360089770608804552776227476183210727744963636885665843147625557077183897415731882425536656516359498862471785998530887664241649560283277206857275252279749975733020719491956425398050151149470289173684462878986770408267924517630533199588368286159754372550224612932514280843195014495208731262980467014684048630397863531177761228086565962152061920699751446285646176140908414854261117241058243803664902045368240544947526784975899762867635918399174667256261933787288445658933749134510603733694034293836859763047538761415608924878330246122283479945427258654139156099468256859523152379540402353363747457603321021424613652605718979857518284717267883491877382759211065390587730067971928800174389198441002290848906583317345049159189266820371863912835026483484005461643981396637009069041919002974105322431675948917280797030789281111689397847198273731131578949864484068104812819397567987659553044642105711059239072897915911182785186840702494753025836459764796723903472404273371980366732476987604565429028365952644726867350429374421365301377054592582792754929220942756632319002752046078798126143809481619938211701076234741525257489895285502082998627934145124567034844251046332938602759967887487424659745335193294773764541001496778408003592245036057192438170464569049351048287003291104615056099204933580512686980306376616940131294470772385773088862605029342708255256794561959099418823480030892050297963488299945467897103276687815686318215760002379517480206209833769504359502568134464131295703175955570665123549675671526484292895671641916002156092817268385616347495038365011326071497152542134352404202797435153610278953500092852139872000023982415942053609276761093941367313510781622334140237179559044962826824146692229807649839837825190237488485533940863969547926054789363669344623053611297751165309465614186962041416259891209635949935182440639250874090556709090384503401442657878697078514650060788038976204196812950837708094310070990621540169298952255033331580232568526322382207005627144895335948966703566198777607911890677295019773941243676797214308978820754058961888375186599443043652630940980043496453156886441886576734681911866948742081888956236884103987716605788077359613723331443931312443810963473164337253457617627241925366937583466560316656763741489012260877000490199375879903568268483132475188853039285704910432794676321340086794865428241625519837770809401616058641600439554274383081448039740057193842147192623422318249330373976660040334480898476340962711616743869288710048663717741603856060989247731002455693978247976054665147880088242500513883331073042301539964000413306723607744347926677915814615737310909674490783515639235672287522330208350991370148264610223813178563659704042764125833557401531993277231664299383437240122503424198568717475782776334639635746042084357500067834905942877853792315957963043926351594528629691989351109141220043657271730832391983913410843703370543650161205441290946872940149842608811539367788447976784484785101741978834630556802859792105046075434380528768533130268030947489867637584586556499377949054426907742578656075979668924340418863180788900637501720894542620685836587482061868905257820243046949529934947951673780386951725544651939905643407836421453866482383628135356424650713545623208692843259082171458991348222415541720470891645819431361690014065416097384919816308810070460168537386669513217065045278863325559383093324499621547566772469274240169639889187785422675885469297971887481421280711484997836782960613027214656474884209271118876735055234418740402797999564220935184754361020334985810935484497345172719928563616839998247742539740242219630092180028365189517393427194517562867878070701694970184916780554489648283109071512907049773364526373315923471572222022065410250088342518996018376251743398066626756882229802449874472006667997365872711234968231950056231674342308225315318935017550362266387889984319137913580792208297792256518209961780709166690414707430101410513865456071712135938459743858341281923791515459610825052021351003940109741816295890089408675253713341138245407358347099114085076142953786383966268242702680538248270724156250639014906644294788340041996874848914220658745618676702246334502034799595217656175583019969279259507835899465754663927129720553296844599465735990750416877977111195280147049425996345861820411987074369220515220920903638455093958686595662325172443016949740850903254091329370193074753268333861604727413807145035870628529346813579785049029525023098988946172900139985251225677524424576925807613763388462139682489579794019614965416687185106823794887976942699722067362550025643659560232596504992018759752465364732870888106924464894738094508559243819943289235772865734711365142654334520942531086837347755824033216962686011085454841005510566033632304061269049128014295575304263028860556795821667871107087859738062179170817773292830150283042976419808586125312122167136724461818155274516674220661255340654764295122296034310058819799834243641601075430632308310241848072421955861174646402416666744787185367375345148240981167795248276036507799642895006305146220852312357408915524786700710067510740592162203781825660605957311706515916521487604648678480019842825366368725014932973413584152634145885030870594858503979155161263435162016648604340990915409205852017193453802690585067470790014516596864648176158946791854996527624240984759539872848372422564887666781446106084332517308015605406194692631752304295721778197933541327216486263419828137924118698681760846740894996081415564767167309317532545474466652023002863657546295308988169983829170852443111331506575582340125760625079253941050090744761023254270336419893036517440865193851051653778857113659584177249384549629973800848062345043574064207451206759476429775727057539124874195591071969213680786527180695171799756266594227371571861279349531795243025978303082918713998811827180624754846088834433676683896859751547025672281462288450665959235657309048513429753731427988102128185931910347723093119506666582631906758278433400264717030029333269236976642618195787871259420502231620006301524525610991200984912541456134727534862037552864784236338272458160057758880209345095941863758053448095218399663454200829993297702850908985533026281089657304952031601557836283036906417842454861366038954211597860972601066399014218059331116284913098857995441437519938552049296468106801995417701886278739443122905400083776337664826320167949809324458413854716254120128675876320490328703812821267522298464884283702271614453998654216174842898464281608930295914037013100422940956604393305511610237318730302436547104057553889031578453723578120729013009278950980358392051679465487876066090135605991839222449199333188266566522764641672284917884065441822853439479415450578905867141503125338454015954056508955584662815701748423699837021229250867733161605927566607746915246571326995210789890464468999065134127336413524721607502646496807834933018899493044803461242719160453246790634971659808070663133261609275281457970696206022207394719879690980153536478883179040797591492005457772429199785537920341600422491306052256451603394449849889363422054736649946921455192944975653790608633817588528629754001803865561482377522868750195629097433269172490857784596661559006774372750880935918466644733200985875860839746989388129847735636961312239660032825736227687198949503443551812327735017326092906535755443790996454645285441177280368462842230671274557651539202874291653992533434060178685081329715594648690901696767177893144403403593150760672445627617330623898281211943121654558340374570566473146476850667299596518394279736486010322121780111350191490836464038628083365867316902658717564969663868389516325553991165984019076074789910964913114527241823042806968253740285019913927676399222928243374217033528603003435164052206264878749894730766251854758156440473183998104422022240203699839654788006737138763344931160731558295485612206708709654494026088806261262984326604748107803655787620517509215965594079659738521761199264651207858129353618747441862051588790792866724602180882983041915710571907782069194522226711102715171835412036226155343315019421204005725012534421420644746123949575807099246087473871342573684243616931542621049258074355911717735529818062077277422417082879790965405752753947354652148201490327284046385138898699854049393848664196982348776366905832182653614240808990572801620066204060538583986609711192676881180843931153779465720009184865662451220003120206536317011120399740987825969954125719539361456432508529210116343935531044339188954465178875321903921611847570858202942827100008314237558866260058779567270524439713371753515839681656057066474200542135099737197542436023326228258317774304395384889305127775810827531693586169012491029020033675573229073207550964912451011144445035479558043449510489358806583562170907110815942827736665601267638581662745992148886425901097635132897102084862898409688395907335160394349947825442045964386754923113058797426627589681427392928541142154770096221334261643896797244154444288155573505395986684535516419662066938525654504154343169534599295730904384330814862915676942934141479769850268539446352631441664925892195306222261758883284272759812277186887255803401408117090000112091606995679536807054119939582617419816400356919945326012371022762898133847452163101679362844935403183426968592723640283913641801702543173812946380472010175365716288958649221674271817040628634773842642009182971107059103956512005732830218142437275075004514573502974762481776034921733086203695390196876953484245394723585275363430989558350219609636814461512465016110187216468248273435886782699441940465597788231617638152409029936477649041765869923416427660245358140992539473350434810131642632575345361687440235259606545013820459777115816945468594064453996432592508144762011572254555837405180075238153422455860584312814352064770757042717613157235483522044354625684983488607279942881585487779988404915809025363145192803264743103057868378339999287586272957038707553286488725659606818766543950700039053094198830409384852365630159609669343005446472796451997112965351695191812614182081360166240494968233474946595821838879504761679608798949607379723141095223731640518902708321185992018400847171914890840046728593786835213174631696334913616086033919102197108030719491752062790005697702667670029612626719680280639989428323328603485598914760088204233552885019006703234250915679353093381005264914586550979791699898161443399897435341028276100668903504276877257216469543701577848543114674244912426875172665823150458386694838875506654075309349526595541136561571436463351025751463917856722374332201472916952260687640549346391050586829947458944659821687319761720179102176491122817090878529645491537738452513896253918978112792747253696484191009722166681376078330946537674529512067335317190989809253128299293543992699877898138510893148275613582586976483989537184542996156275007731568247229181769723966065138624970730136182460482333123889312576043379112218461860510789169956973153531286484998799483786221691218743940528756165339487203523951841993304002447005620194116757736367596251249534542909912774762859552294264527116473999832499799089526698884170576529597435904987814154327195511765264137535981847603791480586884983351737347441280681383055022224568870073790618879263679091654146946816383479479490439611242956533859224789477453703857392668105084489393626523755919147173710184270172378914834978610888192197578321807707694358225754193337791818578158382964380218527788550769402539763933946400172881124478913413894598274580519991756587613385636112702050782230299238180416062414132025076920854591661689216183247017440359090135328716224850380139829776183218798735850088641429738784547262695527602045948855647307435929490988643683480580839861439091125173281954184328822397290276907471075794905044870791584579071121978272123535943287881924421167567860728441793602908223766189383802959328870337548739787703489024232477956450292765987358856460300043582014115340313952614590802513962764864656046306905580090149279902479312103002523633297640726846846765529049937087845254632471838968884584344234326544008115450695138469265145165093484966622419067722813871986082484483591490624408313168160960549442079548063155419489543715034298017870395579091331795430225312245394181257035872375567470913478149269091304925218019015286686683167170116250960435665427610504152093028139288234053113805107117825853093680431034005047939369993433651546261118683905035762484295077672934172170674553785493670939862325791760478820448845413337476390302750124533092224154171940188097418430399734557033213125063336204619129818486188579370755418906095010718708127610031562186625731380799139107016363892145939296208141214476649252227892505461489288256509241890809970752050391613983177374741099493326394852092945013720211266424819173348000052615372989393939221873979393412300868511932636876630114428754204802270336473162253991031311187582481855914627179502993718944148676833824721127641580996211102888686661111120126113651760669956196702842986637423886188056567143931082794359045525807512334892388009481789860627111271921946534698361360265934984470585269601742041455253904086196772986465141782763389827961983408787878493744788660328544777047779088743073299835160527733175059744518751130944285125110237955382402703996359729423370512154577571006020878437510387121804650233012906916238407722410272441186544847046805490752816801272539496525869335467411546050945932153979437048813665805602629224484133954202677167324379850755748657839637848918108208411800033391800885793112159571325729098982980168067727794519299797192199907619488972438279215770786137876393557638420211685680353722381302181395246894189469512755507264905356097620456197086641554797909646769983892858003966095320369774446724536500129912769655825005567106270010827984814063847243705402410899811811346673352371334221541869942055679456090946991991923495163481952104781300797585311943081767377707444479568936179243458427153573207230631515497117399468094219064383593307736911432979863249005953677883819950904190268228902012769844181529582266056557261344700068978705160195936832128756522034157962436507286902775519822076456904008893659867813099343340911554952008451796900640766291756080925889383220253867973581992940202233072552230856433127033135058030249107465603536939304132922824761778948613552518381405078961763962853313740983188404833830368944415715058225731090288980376389097697416322779237181852116935227361170879194188031041981331039831128739885937795434368660626834325969382964393981598453855432846646405732869999157138666277382854943635426331498163464903350801217790054248888155181768970728578990998332257554461389542381929801892213965185464310314212173106680899238202045724388290415000667478537502053060272705716696435696611604233854414133747223163214932260327086296139075074985602935162192183718879447136183562301540080830865839982999373229780782294345522373658486670592923980082267203104474725452715371135604905013028589648982687253131623181078190007426811193483811039416828437199245361158386569175538230484642372221962100078082813773198255090464641717046720583417152651146985542557291065971574581891952558385087210467300383483231819517069234549058931646197872844034980381719826603779769094336627498794601976099923490633479784973745764900463373967666191766560877248367213604526316563055856868035062407073774876937434923289132069386567319644585547299375005731328755016264350481410884055708276883804804732231643553463228986899695003684453371268760100512576999225852943606005159816360288191794552657413556182616709217262010336733352255043125149900399167943640314106601328152152728137719664807000546023199784834147809224844311187402579331214235853298242489966610172771263933112222071365206529135485967849351093675520646558501088091491944608889845223296991356871702826098447417358635369796155218878958121062231601363539248806674751134523397770496327520898821383767464949886787316537889658077398573713053667407162268815780701568240566577157379723723836599163659744956497415072996130747642894362930272336907933612659080524904371454262732444023504344608909695453154829862153425116612584907747947743837285728695025875521511852133794720924555368131099869221154119789699638645503157513862289351634772421930313178968267029199448488545516489906645002434808386950441558170431419050425676025890140532424222400383208969299415995219994605482842604640533878853802618611613801744790619623641606873335078025992118415977533742434300210350256853637167122187988056007629556740864032652053240073457464825316433028695040994620721598462770598954509790021569225426102974381635179559349718715760220184162485941877186058716952059435394248537076526539912059089777744410848973194141052374351716226510207474706759769359531428962735895522333470749754401150849490806182710340234686806382940481244609471637212574297557249948259298823366849024196790584510367162454821821740155734597864364216260644119149503428559450626372237722195465868953613288294797983588216152783954872756698863739579246007860206205505531150871466484075682303310253344817205654303107353573499951043611142045916666520778192571059160689066341561100547204796573078729167044552464978570277853759134467546941203595780778383864084357091102586663192212213825544404599614733931026819093163476864029937072531450446421758912880291110869396374717959701921605836900720637925419303480809344905948356632412545978935892489744006937815693429909869168540325719067733850231861734654076026581155963088370478655106477348538749468563438630624916191591091203332638273885337262823925059273219469293004679479467464923007652098979052068872043900049328144713603979055898962089303042481307843748825830077534118692568383370966379082209607644463494745368757061552012560607327808662016944204339138322421826212889429951090892773859426959153935586923541010943589128541735558506605907138929443478691695171311294168059914626484267549942058013753583443014669471565394010029079789977687479084216597751862656188969808394037418353133899882144975367529681857534781915898881129877779836620447192529926181273745694908272372812927425115676475378175158423838419884187353090402016371929768924804288753588926224211606938748408551709602527553977673996953810622667380505010613763985741222488426274794330146759608148942760972141548634631537630191016164131417857144552399666508554178341771959995452794329394484162570872449873840320912762091636937185175429934738754338313776775462041295187174495403274677633578794070847441327045036033557876240696995291882156943687290152720876431171780024687043003437959398598802080087894425227595141434711189231274168736707211543528777965877458256469017630450177518165468565594775950295109745505879037730476772944285223471493582262499435657472191125414829538987140408714940475533500510786907509249666790065799359748683161049316153914391843445892832425144799587798986548029284149015531614249767361776182897594574104385661401024832167689881171380056674439166980976887281817705463323932122457161546127647111039744855980473317040894903600898547770202524840712259617259440239367366081190864395355691766799739088846216472805380602064313378171698396133689144449825075786097943450784078282692796426158703336377884100945002386132606964156341251309471222377116335245524086642016600471041959455132859090755858149449038454621802982197320519446042188097523947808628677238347358210869566433721812447019552944016059214183082179182612429645410893634501987237889257655702115948700175891466245123734405262609389427461640089151356754518982618226235093608331367267349653283128412337573204124887447963361732020279543668805741021005072354777382180986143148867705109483195723637821782728269200296878962753679719184682301644982866249979993473554025381032878686499578662572115156216188941746942700803143137843177558948137650841938311862245445831468140848441934678758258646785453836905728098336529529691253652877518482524262802878787463913160967917920811714041796873176532685843427734234917005134036313002088457012506662228357435851533243737253134727898611211004524084328028368022843351235990422272752814467532296291956281291423449030206614832188350121143907403701455259013005385559444344734255994176578195113411539004248506283016237778785783055726806985915436247210661758348486679487971920682622587282966016696579512401570319534770712828534314941998503351689688411588764371800826207174239019725117303074001904315229852264192569638043276720662040766315274621054484968204848597985835269691253068363163665225595076738175105017143738307951899295892346950324882499540068124625717441550234127633243962929499893887896965158641266894364320306101696404305590261054133612179078302610220927813324328655826256890957317780297461161048561484467324885413557189411753639289654856015229680008210290065869121424790252028394015705299942187757082367930809587475621807854653568763767640776135332352471455870999304832190178241719753538446606982180702347065253640911340302797027487752410175817107360683852145796340823417606588681485862774912202794818566790391032497643958040973905259337807244926344907582492230956203078367325529416674747400817215994118092421318742331842017519969085088546169160853756145118882684324847631587407620567295631864809172590451357828815016359992743985589380059120348458312264605566878028388850088635799018079185671955796341812249405378991198047445375046043461379402365328717077581746084672614292450355575099454147175249744267339939193141972356981995431857366473881663886922531536762956118412672794835526254788671595686437040577031432601138108422160342351415385574935320721476295958937314627945209508861261831632935840653598830287238618650599454468507303780224931376413296573673577896138802224600024459969824412118013623634866830446178231559552893646696767064332372882543441988840678625032099373031138088768057822634270334367912234824707478867840425835253162916729156222745874654151596844108057553600152718066696902870764828582746508274282208768288978305351215785520442725207003494776229151853501179328925862459009470124539913282298959353274538578965647015251643029140330077376628190644400023892752685272025750026220023940093065678314655303718340285988292967586399020750805115106310651414418934011868377086397885288033492945611029892966580331346595772308522898398618833989095965571971858074240245526273726898350422434059756232753125550435267328710746259493118792151073641361469420636869368773965018334530041173036043420840392790669279512903878484937911369843238255629932786427141507009114442539812801307213867421532097056317100395261147935263654708713681444489251946788880556965788793402983099818438853011874732584509458415422802216926422437111620709068961237538018165886937828502157039172941852093441852964165548934743252099541299443583497849119272352417276651739805538211491848780098170400915641711519594695243540278816484109685688147716431543154789037026190941408084687478128453586277416662672973626718868203675911939045593982311606851960308673342371957546954106235001871621320577215792932937430814700200100064272383451927771853407693840823120082768295320132013887400747953700215521267247283160535129195500956518064222147253414092279367267076461069440831167223663036866048961288496519127586327112627112245889733987815143107544228512074712920535089763436182516187481018267249448270044008111181330036252204904424014511643629405821274008377496566766869528412838168442463587802988142820642881487079933129418087185416202034353871488905758314184678660810885863321302976649094466667376428928792971017124859739224975702376705481632286715644801366069281760716288621172411567130111598937069638294990357482076431813528079051491913901406877662645391185731276722473108521342710902295474240678192120174082887726334423822694243728525935409385936419418956810698524416066480071193253768562560488908999763651975343769956914872623307793896397667556631305800717619474360097196854415945125866936542766673553735118759026616559919789200108517266423481064069756127309847023659346424255544561291832515243093658426400250939125435849424652271459343279985143903203391539928989728917749252187838846978340263415503064180487004268762620480397442105917202944435704114520121083552803187091389163599025731302083436490947898570463748990145141071861621564221509053529283604367516571154175914752011718434768871661830902283319337856162914532096166253122518904432545835584093032791409585735943951285160455118405373311001316611779478001808222074828002273343288017137362246616657232799395423475822956975891924433525398483044010628494727770453970105869827120471338313150325515901404306935329797011693263731341000082145863129696650610565347942487834223902704848778618333144419755256519120995342148605410981834834344932238400042833642577683365663353987358268493363385924788046923996065552584735766261145146845128545727194521468610301682747921572764239456001154484641580232715216480883176594978174113780736074169239284420296818614330730785867917251330252224752416614497996730307753120777674423228633260390521193741687687738815858371685914859027188167499050893041084308010829280613369867007038740690303717934767157484018855379284482466325266703876247368014821571672377652202668802488649431072643993362593190004205875940327083535701896058645142190135175718529801870863670956534400815906354343300935273017185616967185760407335516672098419500073776056227734847665501651378558475434742347955987756510400772195148054708995942570364398949351558323785740703613620939408231726137506086092981875737671268552420134748982677944082573355918056974918966135161070948254040459176324681216837328736587653345416245013323866247354533350559906138688295354938769365339566266513205941925287383502129707091091486863889752508381086916253115696305897453568976402217524735274695240841180401999070492515639951096264050200488208446125364294414423828616953898535387805810563694714228333450472688080315028550596483912025827838426213749883046507924170168363734014378523920580244628252195173329439469976730188860013198093913535026406312797187363209839588234407120366058368775738413648394481414259388857682161802494209155279937247924740231680946219496604823837932839088509232949036177378999183620460780899478907847747609951553658003493525778028271413341559946043358871958641888037777345732504128322489797314906547763199092457678517641582300108294943246666379021189249712076171576314933291594136913251196145661395916269706423176189620196137146411882548741964659744271175804422377032424872346800644020537019382277266862023299789390282112609371379976753417101096988603934767759411822938578909536755801014517073421171379196677448435296589612934376032087755438018959755202159162111224359266034799996009773853357159066482853461672499011406719947797274231129336600019566215932336713648754047406513431543257558888861376464658750342395654413548027051642414154568326935381757251561233857284912714044913871074645726288207324872898222144582446018458830334616460200041676378176564966023949606109482509012775069898571373160142876149879458599348031032507576946364060073162141074168254162575318737615911508043645701292241293389290728754161986460657943848126891626307742395012872211556698843495776520150083722348246745369618083971931068324427291734078544120858719293235199742983358767353098939595902438322455145930865811390408462100219281080337968807192806713014795525010076467724149682145333478492572229630700634965508000256844470598577482768714884109628258352590162296007829555259156026886640015373714547053915555055703152546472136425687505762058816152650931522305360375727950644794548287503018541348209246934776565650551287865579404317397696191362139952044136608135890566933969294866245735361953393204489322180923396952643999945453844282422034027406034195713599576790900817093759286311272800301717020241535253881196273287331320698365086450340426179454209056519463918631753565489929469876893667127923994961458675132231768695881885754337553323390832259319684237744324543044622453095650828781292959693798176416551207234367557054891709418631142137706252974019249267147944201516700190060464713908217220256207847331998947886746545767069677150909445926834023945241003095680403718189593099237802478856861456223866573310542592349679832822217232428008496966071635909000551063832065080382443193113463971629064261713726110953178307344787664880833755858287764037288880497167085166220862004851865407538788916844161941886367430081202501559926243169439258998800699743468225087463801882688527909256592084713127005059459650197492999724657716057660353140080516434264255165062621317093972808370891933772844536436802291638522359161082411125457169934616588480078073878008918401958219073478641829615506048437320229495530041638474380231755341000753260589498851571974147128747790363442802558923220590122154390673920808576328056238993554060811883763868179525233507922567142757895278853071355572480436455589100578225415281858156241604977010589386253306618629646669697995979372841017033942717966425571721661377879165456388855608429143196280034987649280895266068925389196642539350281716456821274834221630379139075218037054273992387331303716583246885353250498965473193521173661067834365031982567156318497648667934399495157198673907390757208015443434454539885818956739552984552527778437774448654997252421250481527706112194102487027246065560398868674319088622530436016145854518084758771378527511205350573033704547074467703650557967315881406892746048301368257581206238189331887972805363842391274264211106128748089284840632378837105562354315913809126476463503592711671885057274429244346108822414176312325538700944569539210671165274257086807191011204096753120020640982910126483029682690653142596349957663025348600069451165554778921892552939600486595104068099865481341372054188871324494863461310800911684495083046738088625198220909145064399255106262341199559253872301532556413253235996722458783139021599154628416083270487191795796644567690736583944003775732537718910932784079939148461291592032852738825129023025454417503414358950153362997984220986362965527038579082310801720401842439139996418947278012492937613871921313081367850546457626480548740822802755242716369297596452633729728345726027931970823376594671074207048397470738957764746897748452758077986985902652642657128180744450007316172226917045146437412374192652775443305322969936203426375766901515243799097551375935589819274581973178249081376074724846946000383939527327399551641660750007848658702364053548314630735673504491909634015141632907874583037162419830389797931598704824019183998615243627956172712837964424718356949540938407388918235197699064003866389333237848442587137085157617302251582565563785826588536416845428652694730111829389028621334675945059578733184296870192072621480807637492794966848886616649514492679932374698175295633542708160895950625795160294988402539416011447016400805751385162028806670292161384218025914991316185084841051653612939943764145097060066384215045985149575337327256476015684540748028406265193586787077539632333560559911785849957047366054836139565229678897577769552134417316440403680430415620571670150838885284042990521846844913216672505095517274076001775054433777059691167641572397509811370061521020394947342694427560848290985157788791502700759669754286277088641459347717345304054109041954221218100003831605279495559100199922529359403762944484517375523977723215445654796912097399208368397789376528789323725098266959916583226499594708439166364659665428463071152613097006696090783110295780246228629691295541581788435613155587064419337140315850031951212527392477005112721004900423223745567739096988607650617019710264649130519853877986476662297251677468860947606198172667869803090361022873562041767733933543024253069152374262463188303708440983612322043285352256642995635304346391979801026858169281760431310939611317652003858673636920195256383945363497715357506253296433905801779360529015977115632996324051653145310342271949981939301391173715288380269780702754317506523058873876262825654672246224446223485204876790346761771375913921442379729734706267546304308045997428471822457322261553798919486141561359144383850900133124175195491885519314127202125526931385913543164740731270611762952408889100634414499821312376551190310398650872839310272647573600018234888625369040673074281492354985282508522202275263148677816688748265613870193212589506665883375300655954182717156021483368318289289727138699421457937108928120773832507840948211626936594342607100091952560997315465240179937213204170383741973603159910757785603233459589013344119777204229326565330025665635169944402422267516143772769737242851226011218068010492129829589077554756575306301267675661878340926078094181217281822002224801181781389931312195740767215233238311167408568782008182203675805781704776209887384149037353736165037581310514858362525417392216552655581594517671545625653308356461470841745722341600867922053582578316819456176043065951420667750136105209445781868356701514457558038531673938558477150224281626962546202364998379072698544210961866436893666168656273124199461155990982272669998507500870600642690437093049486302704543243575684066712758987717729936300783364473738776291189145978731346532536894450515500345353409174816637985040091909833414656066769817677808181703242634973244785011480935600789141390784416963983450953173237803685256145549641960746870132987624315046810691140873832746358972023846297822408081062355597345679284610852009299228502957468273519128280045329530147260116421759159059418735360217846849682753499445174684210829862907742213682203331005143499427417251411477848927749432152011207346500722113352402597306666028660644459033218086156557460154328600176647232474482894889534436423584866777719080804514460302343540333080928053354790422069514181177324190292619168359564795300046494321828990492447273633592525153415137243358745873334668378862744479798876055749066497981906912461397250256144861407155634390351222687064120911834971791352509781050020747282965722017927255114384930314287176970843661418969106870049962630841549688130061138388400765507492341665900351175441661153057291422936350883606460636743111641874285531261171406479644857791853991555387949825015353208443679154507599645048448571213849622074832346979560580703239186329304111590462918370538531704007078734456019474704761433578707770270622873826890828912933185965998720589968411573778353894011225351256558211398947815913530608218238585058272655075627939537211494443505354798538039377664933264712325522064420740703545002346653418451832623083377189302023459544855600560525494322309430810181642308330568081773745071236430503512300156624133085321983383851679746573228466622742116103690914907554485766121578909121394478201922979616680210553223097276238685929070653270775442256435699789375871480061944781178199570306756760158485253740825784646663443691456480833421289241301381859302403489911381302065421554047695631743058919387663451977097425665950247009728011638757742299445251148815017042775610145112959003866204846721078839798990222635731589559449473113440959349918951333213387882396092178952264283833014735294506266877354421014058908407934086064264423351582592908232020516505494863112379058870474963830656357560838340587181113188141968895869101968508405302045388979282653157777219520205502426737363550029266689156906775288618680332737780399314203916249491875805602330187582426990972404474041326014724033033387486049446099635334520067485065249451762428172923938804876201677017629354454358554736714843309399366910406544795341744506159116980030598305497135090748687702964527776464101094233106328552422017397532253880116267285520379690598516110444813582905531339913104054427779369589407869471855130501758400771593515420851857360540472380568930057289730100733403552105681383199018625426905812341728927804700632311290630237222183699147641612978384871029971042259241239947527352352794239341949264220869163776344470534340915117811216245191613709929012964769690731829770517022654398893113061913406788675851936249765786792015493453460856063074819891245108249314343072623791712006752538932043793161916878877762312931533557495645016286460160419845831691878204962199567081618228185190768362065764141912444610359048210390682951481941842033460416519108666635223758232764665187743246535036326682453848931421110759343132881272128096729777415114081913888862791845526079513551044778007212482830363681390357875861301173588634312054186234744226907573532186858034395035424046747366125897625071765521381298130682895612605392618415915607761349640843817158551390729713227552605851766547877843435937468637276689176654090607337744155296070183982341660626798418197064189702573803088662338599931553499680869315720281810760474233495911133932908560133806396841039666264786065395147534359221858197415277568914512071635300268073004998461581186606959870581605138631839495944648183862732760326160143745866924122420147773362823061616061075196043114057313675204925329734435004678425312231788146338736842593898265873825354424109529102713101434903665572539422931801549578465551730562863767130166277226199184408674102487221554816101413088492996413762486235399610928092453295048226926469118884647241300608222743245894323186141059015257982964441735769201836422791572111091024858712126809156668903608143315966967517621213660985817065628150242960515221691841439839909866033670641324714786915287725156831263984963905957824451221501189301019866031248355327308173497008747122011949190823479307088423079022426529252951224465000916089344625213787295149552291705971143112609829035507374044381499832115064154397081255179022172889088506300181177933159031746284803185058194674261544279943858584155839174544233174560845872781256771304299566126781815602781279530988235321564799773504701949383609356716471369087692077655130767018139418445267821876572480350296196628412669667374919180172087858091444332924205682471781329899761160536429546643477941346128389946383384226888132231944920167579146486982658500803053493219638279230974008724661622819294145113989965497549040513848515606354141547502582934296509682810330152015018810453067734136848257561603738518823190794176686477389731908813632012903005799584604722657987483116468002149260591502299935181359613113932814206893030552417837267899193057392083417007489309846397234111937496389765222185410066270887625216313220106087174537175754368116637207411616621474240014371076207147718287542820368741919385631251314792401971617716883275828257220316892607813497655399276989119245866944642513050150533579756748817153416527693607738163496414667554346631181848197504371875167842111231469132221088434219271284896086787874598006714488796262727312644460743523057476177764780760209655968251376517317324089713990883725920289730996921792468877744228946244704732231550759345812519559746975272656812728026515286581849257574576994398737116561677454961605360340280267353998725878033626213450718589367281678022880734227057152616804720994297925066189510971516081830338208357860734938482684046809890667577589827084127801753393435032971726165147546590575943204150115891410846729150082877973262620355817346025567311080673961934250780287317734553466784795367495562121509956349115306666620281458536861167859773904326029004891595992385952555585018226625165227523727939224845099441533553494058780451899857875877428097870437201103510607642838350842868928371281796901128454513518255395283171961981069014302383679245370311950353725974634386026309594585207383584011145173412010014370471573006693045919858541546150340593762922041908582506703483924857600510411693487610059399219373878295065118507461832378385094329947612217574407235746253372083371023614827460097229281644953489906689354248655544195195026444745046281724309851897725336126252252276940619157770377718087897004401829219270641550750142873747016625440586535086554691277180620233869671690981890729955323686168605088833569546846177575951854575466727018433626680216649210113916538392821182331980702503878057751038201592101100351378406310600319616327013712938272416970388236388293094442319541476653011159317956660982114563433026158587929488366894820099769356217864867605364499381122885529380494202655971379051000952398783061561285561822910124392444206288399551352043897756372631456533293318426886172390931243880591148805479394212837899826265616935324962534632259609990220539582003657496895702973045450422625330392994008255188047352031451788775069604946442774037089567705144870502051217598925434965369078972445935757704226113525603051747508379193442109625785574578702855326440928049030068125407090301702180619154807743034482006692870145781889561384816644155278723960230254596150000736938383976482018242861512383229554566264408181323311723693557621575470789648317079757265997409849809252947699623396112606553758312049315356668331271924993701282718256410462593186946055161244418735891946664291757120958697835687103472206545225243115385347666967661476242247358348875516053600081835820120212383867677011019855079009637665041416238412000996310207119763774859837277427717735847049057000647228501972331784409870983720256560804019600985965664949115340634401987782486884443752312433715712586883083964276087182090866063188309729964271941636389825100042304263558461056678599257563570242230597653169765276425341644294656199287491403597667170352084301397798105660186156653117147125245452934238648955237946884892659700643045009551891000204059832168641070597791270644378365899840456059416887397154627830638146237794133911145059006766758867739609598568263234042504684737251480091437816293150399770765544074646017462848061146670918470916788812947662544756246361409356450634423362888873215530368835806247870924351402970779533077295910956375248382278283369685991261255265645828143480072779577633280977895795303646143993407506890502879048867502309571092384368236328402210739019126555469553276038676681004453555318895728446583374282047077151235592965948562352044313899404023113805659820197013252856622597525935482596241243229999638226506134601565769071272555463616979153461254111048631830698426311000197748255470649976806081427658611915874412663820258042347925864577251726728533179309236568224882893847992136329798569626636956389188116517546130730470575908849537951591003679482177250339313210335573312249046932222184869768441816812509982515251666582606991025903443568820742071979565872209253384772267411189110338698539976124816476469199395964728529467228762157489916425370453411767060444743003119716185950354157384342896361710188811052658673653167476023225308313944324423671407301391086804000713752575040110349144776557259169436304054309598813587385215670077931164513404568111433600657721834412333471634401028858228692634872786097120626097829607859931021803518183710521416467981998639047187173182673355368860422016503589830452676758371782266801558799040320274087266040524504804966292490333307274319182847765663977959801489650704886883724983008900706018597940286998922920462792059066258266678399264173886769355465249372160820490651397488832279715555211758503468038081406210796723742968284071936738629869249180305374474025789675050524251930481796580864416541214051792330640914982910880859986439006444034370867769853872894354095979770626372327854007283832648143505057029835253382278270990922291123128730798922071421029987830115761395850045409435349960933032205288301708541708368026836009406878911437895409952119456043910107465128768608958199539189189021944629558550457086288991303874404926979443433559643322755495193041626946893417910864297122288893641447316661279364860927151307415535502412968034323841660194620333808903099341873672039062802303168856719495559001844877720974342147520403098977030412767905156141331035625552845335761747013782618906896522137218375760698325188316022554140893084264765338711088975231141444011908004602025197278288761370167144263173507204484719085509269718094273130958995115254333208073452537422823993798536461820506087005973026398561306929498676052491620611001139015343083778019878040407270497117867864410642849428209316287282254211718631126814707967629653801669756536446245342683526619550367228789601022527140222356456491125077299351071017209325886621128240044967184133237403139001024443506608115459808137417914331285178052176141337594995108869878932572210332881921643235506857560262493348043337601040465394715721187952413040187073618296631317769339760504415695647184211389193524969313517209216156037564606746265020937493221329681975349804077044759965595947639141678875583775439196420700724470651033611634309491735486875495855845962340714121485585153661756579467862852523211146053218463532900586035348787144925662432993204981972798097057108995975963174784570435513987933503820197483804683787643506636165286676836219204417278727435422784392623866315651968102523407307742244339576525655515702234408479649029059990139356993441885603015363972775986168425990131003763767707520118838323417298773806993046094075090583000068726560870518860267954322532608372675345133818816294885329557816089326287737040586346329848688681397649460142634324430693794076085691854027713586996732073879598761087913793783656773584917360485463710252324539365795818690563434156015710289414017733489202278087056477477975813040297018832695683939258564939509340449375492288917068624021409340365007886137885467324138929090369572993724683754594580998911907570645871246459152135623438903660460084374685299068183763849392155467618343822997971315259420234022379189612061178551766330310061246027863102400359496589466225027630532467056024948490845045429510632096934981177498389760496361044648032742682059544970826713162447389235356850032412674121956112743845872938339063827958450382837405382864688408596342188236619208013825869165969452129286626943179387413767261500339236726183297043508900084016844595166764766174083811393485213919879847657680551654928062346677122363262914260831893681904547274580580922815761321172187770664127898760098152457600649168901032243134133826389443304276885163897293827916009364137527782828328270007410774474046468128695484346816689810844754725110890617772609135210350385232849866762273449468589158224839864415217743539806900220730421308035660420743870845789054067872382890536785396555609387128694187055607754842882618951313449560442575213401353331484136736624478826649574146062832587009032108026152312384405662579774861306257417798621925307703013666292414564518997481701584792176110321892979396878484263753543061385310969227898307982659660213520714564107710367731278330318153575590909350805789116121163587080954014742472328388264862708449148701691064181055864450927318782752434944042899586071980074131347814904900816254859975723498609024641776022394922252503758510043899022706138169635139849133950418447666795752464296494983791531904506161084146006036112627039652372642690667936566341682961473466146636844385846538757458760976198223150981230594843134324531503744642997449374865339065355711463252921342508900317065835529275066495972104501841566253918705549244697710283201071830489907038743675169334982233999692477606877739198620225526361131194424293183291864868561951420803265866958695971535901656423956490486919921713606536059281923811227629814792544914905510664187141847647812045116897570030725659225811929229405214045727393704475246629179788816499712699872008633022277732207657851918745744501730373556871086149842711850662956049917044527672030850552807090658106384094759164544389178410113920734623576547802269304061210438457904046554902700732427116279957567690905199022466489595555318471495776102463740197087151692155460158563460842419442537248662001787395451148988747462172407629686316001580853002286494578194703817018411881386882845215011938228302499729476898491683140830251959398906196475557694709026872388149643647680525433288806906808029989443700151762028917931298126371478538970193199869992362165250764808442699704925763785636600755810970361529193223025610032111749839263056083369943423480456587052631808463769693491499745688951139822609688720318739180063599211740575939981280323637269904156408551282865964508470151979594631502244291412230475488342355928923647051186634719469989309033084314964642765476819111756429175509585252527686439780370685009107095908334125683435237197630420080717621139569462780804981925680217178165527599683622089390877975918369772578048392965161588278868015866445671112181608382806286392853119778163454470162245491699816883096142156590496189697031611266409275365804427571521628675226177171231165739808436954934138507399293102613998599889349641986752686905730005611873766437445026822485563950196658572152203038990922871085305835167668323439847206908199597387760119836875939727803625475858358887920539542289533825409587408628792160337540772003929498685133929981685855568000670398173934135822419112412473092001282612903322730075823604063901314773819647217019542115854185739441447378121330113542899478092115499877836279948117839641113927306081466408789285248801071175005652201435254492339387162654927500327311811446138698526601955368550101507182917770841614883049710321172525218041445644341549148433108812811713209568435886801008605652802391572871986983834256021816800189666166588782063429746059974201423297610657595139711642092900629510086572223477954949170649537803632488706331591545696194891411437918717402210135940987051116791399614902096315399613126762211796330375622878575188638733794015066743103460418147926671062504833010832646994455481315390603974783518659897394575933033974018243837276168784367267925636792959110462860206623140255533154062151285230165645267287100715834267362732828800794786334631877100981782460529652146347251210623678401238212905400186690780919107587970475365427217697188247494625189279042613684653148817329743649878476169723396887107088440129877834197835740464434667529085207651949818964342360171997611497245142729694019855248142186256890795641806082754908692453974461526068947586462054531526683141555477178256252331888098233142903369915794526965660592086435100528883794088398985897618956791927517865519213922457173863824834236575451934777646413366402202968985004998219465401984582964715454124439035411102145811455293437834689119474787420289483635983642632649348448621442577848960509539179916278017644761493498097788731546194802715939487390860137647781549023915024336369550441078911436313717183048189760117102099658176009547023915669323462245985267258335069257234204792182157285948496864766036474627577359533286442911846947174332768256070604715819118165855459202747889400641850393691882093219431949469026287310803982312391116560856598794960151728531315622314332020688010160011720185490624649702671228624628939799475089720965452472931286715044091218235355517859214439822861794399913439696924165465585929470614507171516862926624114820635691912406010258212383935241966675004467147642863962500433058962235454634973432643500546258293666634152764044610813181507507697363106900537228683591411235768840240542013002054323586163776322042211702258826713997604125674299141666681828283388116648596620607687680011636286476731205963206383518515446272997061322945089188912364362009710486742380297065209311352027615539371916896420044487500146390039097119784517078257872760134040157130512456907154288515008465588284321849568094154682985524393930893706315144803765046845422356373869085282684148072404104336250802160989955564851690363815665152260295528468195752485355709145968338699981235823545481161798665387151886736781097417433025991717382299149417154650142633632188177446580737115878539174065874031806734219536348572791773391548638866539440618419235915891624746788381359508331173214746544923972741374205689506700013280378614435233225755863102273722723941389579414951433077221240468077833002472621721693862027844532266824119807293205064821306897488474049999160289077730032773308668297588415798386980261294519237135665697801609414752116518321492217448386348532038938786421481961312780004943282838357697177648489619643351422915088468536882256905048684765342431758621038222811138838051211534507866715375604828432841045650244146055151431481383714858239520666465266129550175414910390324462618053803487036398366170267351448621098057499681714929875499403289564580101165453337412791021603455808206627093360100477825848230902572110163633045711494716005981634452774914337302733520323411085989146164028301222724894822031165721524658963217306826045632932351648774859086138152380603442725656173703470659363689033960664806293017866200041303359347146611303831322222165985142185743219334534321429837087709828661648446706789072796429748589950411579860363631944631532457384119152529083108733816332742493013150925346620541293532513358117313549329765491146240520410744233142274852611629656902402448778816816409785329014404983845897866446628460382860161729319813551390550158392209536377382005829857018350275251058644261963468893940736910012277909450770901377571008061088629472012026501947402720334273907067379002804631446912121235520835720296407046050410060147859498105852980815636458321310384531373756795607173625699012813474927458979409662891916040359338602976248042518918572656176306876446789753816769307538177650618643413240841181490642308296999748623725513812288136648295867467390433304866066690795329800551744377569028040273065615455525819788894852850594649811329958318722795529568839793231409844084024018968846130692508731110460995982259868192691968750255458706770993594972298764423764775325349770176391330408646217953093945877445824941157173296717290679457518225607712739262513866275880239951421010581868742279423429278270611766736590503272457203256325936153953799897972663107393902447181307766364642752062951617745789691483776970583428837780543835793931067895594669413368105753300595778403065398075326476021266350338409238799307976395016453416633057425552630105785068167445316188017568265550403242520294529761165928744434440380282616161907572248470077988697819399451932878916147596198401894754621285398197854897811539219021564425708304915871723228555743019505794747989041324743045485151818026828910991376800451215160634241570636546284574072941101775890756277827716877367212014648905201356451990006796415646654279587239028161359231723758086572597111639490710800721591502320925092152709652732031230060848792461141987474824625799262916929887204533371096401531521781355699823260533419728831822119612014552364059214848903092694883013862128634111775084900097245885423912329459641623236276952237296729340541740821292594969837166480693507694085451381513203664870037898002416473904076232768362748835989154592621651151909579192002853693244677217371133557186312517097203446381600423918871522951854299112830057990212223506767392127733085515929836455749423117905290914364475374264244151990995551611529094129385207974680435683278256674608042419198400680915511857304806941066680247114242546206334546134803542053379699594277414606874103432835982223528646055682098959344069942125084146153593902888653404741543087066011777886747669117459134525641283467505814956888146822126309201281596580157352922474157788356155065500665607292349102973191575838138328617785408827582658683491274296979189032627592245218163628043418214078438040176285515216588688198941798607397620080974160377899920333244189288134790486406268615625817994369369967076506485982636886083967660521219733544459273690074926858487784117544425410671659091329430260126731950366411122322243330754094400466317531600625375550022220387578557166655460743559236981170902148068563864259713560327654613415334396144507796182489380840008591245179068967799230605036521494012683435593838315247756997662356387060309415986805167164981500450510118949669381714274565118645759729931168129599410228421526051377099259140716013091233331275005875044462224173468643401340829289027111082944132521732672065583716251970157111310873807962620568669353880760261191846258082081847122029170995298640137352122453512996715277379348075477056258364782091457785718185763376348925480921223928868004581550646480395368755290837795057532549397761333873948905146919969162394902088258242075573114826714734711725632038841051015873536891476529545907298782557037998012913853747189036818339216197023496489072871841661797951619163896884660914714762303651818438755749212196515040617176049310315426520780880393755002277655380070379569305542559425825313297773708162277705226262888427494990569191041536753539436286123577206066135787732358104540133373412215015261834613051588188540997076638791647813383860233848195865350881208992722837397789386807929287740233537641874795999455781467863242040586323899211280043804686706899634990759616101328105999775221582249492556460238674106401362113343612090301221398399476474956031771142039159462069335713511663424643418787024538973344197884594065285770164414896470280869469224825448478828856271080890999756560144089489200492649754515309696797920089729040773137559789855673637450892480921444279483530691636309849435228462175159388419318754485894828409316564666094336531955403280645620028044608825766470633056356372497979187814349791997246440750982633904300104281971233250784751473178591207857501714268277313594806733089606049490794094894606641973229209873204336390343720977097767305998321057223364346986383675940164745529569615252824579766977344814482935841441454921443008449656713650373633966110746192686131392870236074689724582124335934247645495741105897162653990005792407579026975616577411596080450610503199982941617388126890834013239602899306435373500788708676831835757799457936669303372117416794801550966074302002089255064952552164426841275536434415385243573391652756074035042289918170185337475762579259077716625409901414916186271597434796123469767485439443392533129905543977149319983477801098433758755286383378493540221603608763592027440302325245420107679535425188130441449480769317680802294922487214942058694963698418855725153463836456037379501908732683807466316326106487180343186640615579973638252866342291211893683423112491462210615682979137769906556355035083726301543366834568144414368669526189876766559501795968194618163914805004995461335213988231783423763209068802292454927492327830247853202513254792101542757630495856439334357854670416064699121436434746202773977992581777111242289644110143110464642502521344105091954984818983678404965573568746823278308186152612670713411210228024128068850352585852964401580050647271165005682114695003638587772018181729088513877031774458331464962097693040496162259109105234991967889727844924587801107995370098863591396661592255562410038155877623234848717378955161540414011625507341277543492118019093856998387428521870629927437271187677770045234850646866441029211166023424620597229736552923763071584967798418735376483927969851008504135690593603488195031695231030478662903179722942613615421081687865009497806223936761751727637215827406390919521162941863804642278542481489879334816645984257659193765560969923438731779250488367331902300625683865809274710463129685438968101369108599061181414077235815625130858085989432661769416973018584205612853306009973880314905189748031153619488182261896329422888548379273188926849420310077380036398306635862184958375518198099081666480047708257869057652628857482451139498395084919271390486142899905992874118172554329414597100741961950919460241327387745350240339319723598585303993046709331650535651233897035086739571180499555149299032588325375993505691790164656270547783341259518616601526145638206746712570834318790672871238952945543990862793846366108716776063990105848797332125847780923426838275898696803581439316155844319629207736169348303704135115566627559339480821740629486003606455899502324676167182886352771087512624493678619230125561023169678057425454924522515944515242983520369929360634168904349276900672882403892556080799711272107681812145826008680883000710860236405508129412102638765642498647362886493059897844881387518648947869989044200786164672983979756323684961229002636620167062899406692531740454546526283552209657062272927277661830677197769338323384689881111955161946715227541305811556677902138970284513324726336779844554145513157064647203782760173988131958132527093333908273736932090511230626288385637966877082043175590315178347351255468957236428348777746584814647450562892146253505296363986726838971706387969711589320656882733723453320879691758025750196425154888680553129919130928583572358192193867288049150330227252908607061452323360287673772180392183510516025795853234289876944788702079260852797842494589619467936775981350370925592177600894602803581030916894988732579084026056574196719280923102404717824003003305299583041802380915794661878480045234513059824116585122806820920352191582433215832849408203890688682933825816072682597530480359582209033017214171282619889669892459409545507248007124864548115596748730090094208899305942202421836328485461340361997712949807582322550025829236691148162385788923667227234197512027762487071073105728939049250664306297314718661204091988630451697462844657997811777766115597364251257254935437767613047474594814802728352053015412118228566964688808476228139165298299977147439444491441727057503956893676791105956273287936876972248462381516012834559411460996529206064341163007501246749058816402057471318454273651789210890556166386318245839614728125649262356773634610922535764169326603694205859577001536253695052432307978370827673056822102448005983632517541122143940863119531630591647292330706640446352347675945387386933808286219930837010824051376170883650544968470362768098549390596295186256673137344444072320285575911756344849617801703305262139388631574053880782304435281478813333820890098608149621514004162695346780843113666991468045671661985990517790798892801747109366817852172200153179259198535562928793933156809595163967138861704908148464154560601674903975819666714372983060661746974279971229467689466124726132016782570070572620967028482191139666100831088104949812890107181308011275081843853335047511993728179128095589146973685537247859752447606399865680486741610792563235070738601356543945488106759145512618087006171910027509593229692538096260378551728714057215668983439984888289303514189114329300493899371025443066452543181451921984498165403837838403367908465935504209446889240672085583544523488840840302501771547350138105716032386281363882622248760894325267829248476268063341716355991081903651820800091729005579049169128377137513022967075027954473366579552174598956473728043617202970121000816079944373566734015006184972307834039721423875793050072521809855457150130747139034513091197145497902621178404637034040223501229449374198313399551736354404163910753002543754393497879293014543264517709888530344329352171151460880002966179959269413125464402234161031830068854476899067478989642838618401375234560062979725914184025028145433263277850582775275635996934522034372099865499223924699144083287164021122628494035468150889484685061983677491609142958337752337909048214888578491014629466324945068019440907836014364694307226277477619034336376140825659978828121001866792587747014434438258052321386052953491918276392139210983039811455213965509996813093586247932626024445749980786410689884323444933544384968412988463683700641375874672045600221098604692390908529355891199869414267809143784503985213837027017476955770991890906400709179973220553859949092270356966054005950094473996579396722247297926048336633580712116201216798811849312358954077080627780022195942676098313634997561935848390171213808215535179547520326746285426826959446131788559630871940849224186258891213079737324104120900784316142201250426745020341755498310449872052040776682511007784247257721941688596207892513574251567541324364216815906236568757463346401757190741481297888116132575496016302522014940190473061010126238740184380389165984564692391317739522999581650814456171401786221623421459099916842144261413758206392593084368002537469143875128571207433376267366987820050975081709940931476859616749482185227808954332930520797841606957370151172005543296188605735586286093911297905136785404355163526938276348013316751780213937438970731047765205090689770772818986015852222664898351574509142403747446331155231307990251551241928589582858601334354154030716345586973373276217755405411112737534096056270109707456129185259047710821619214231562168115066795406897841373588347456414469140760550129379160662382025367304232754394285032827839538093250300254091817692362935900918978910903550893168871259379413560357895875321097875877780527424095968757356042729698758119169835996343542224427463017727193191308288916979773736464128294280155764765744079806360787769101648341696844365159475731106898748762034451141963211931436571320315076689357905925305493024075495284906042171415823220514412458283314952953103131700788784804301464287114027794756395407273491494702757821205506400265422662406866018175850953166177974448171753478633457243469514575957569612954600958094884612250732714510517930122009209478141423349491332554789919563668614827105795731581953620616503414380201888569288119035351943232274524088922876560595419534857301504903406817281835824063950841005378077384097852803493038415357087097285894869102670603132975020876628603228431424614528376095483894107638324156843036010695356553137843589936457428768060813241631393880638018505267376363349515622745495412058445599474651143537504793430187731779998045881704330092338378755228305126595651197956950280129478279449172010104311813904921624313824896165858954209154818887064097015876512368873279935336670336340207769411767411578547545349346250158765140513355088489906370253304531127402644658872833513496222277160949491741976982545936766745609119900370140309259380753174678212036182767456615816253362902434713559280601578259105262047329454760835810610579847233754656017404128777999567180664573412188967470112749702184215482443789011814441698192486157581398291131897939632359813148734641628357948799959050716767980864278093669964868825029757899672653383315297667729525672858386788218549275959995610093935531234817959268777815395948075979614231444757805541562542941039259654312601403622152488648668490399333330910319926687082217560785114954847148759154983041819691369841676180209573056295956295161286086974887382352788509674825182921591739018951832395596718863478235087794807848046836871935673940673161536634099893693224615704712369375283760651156418111639718525023212822811325796365640370112909622660876291555536809847892174993416122212078635371347893189392160559078778725360553847265885992494383325262834170627517969445946800448624361205381308282769284530266470358932015334885749941012819400344433985803046681625256815157627989305672185071214342627623222965163810690447648903299651605324296641712451610831372060252670403213876761521630009696503252988253529129053617275112974601398731682279168984390594820289351011188951519302224211644391810809472726586272716426450936128489057732636799462761106782755022512518630247562696917568232001842265045969429309075109116318727934699511310571761863221999992602528367703368663791116303022724332045513241174879621847957858690159368658946548189494717354797289403094215755655716397426007146932668210202461207671566794110218898485116192252803442559485411762884304054171938183362047385441420014842269237686953012479661405147757766315622925633062845216169400153460214495708667795052032431512237990038141743273669270983249945733425448410990804040425278444907884015034876973956943185288352854474030122509447704994827101837056335027702753519801457808006019171382311156063581357885050093318037523170852713305736967485125703394060428528899411306327204431452234427417526395250534713009133299766446736577587281017327430881991014215081629277747647549158092031918224501967912542517058007554958859266940231241414516275243994043286670506792964124469686301798846724882852263157388281309664534455606780174423150549749941064000489456776083893021602273053683419808443244265152317681447006111532009041419518828877398623621938622471986924178484851956733561525927950854089273293111886305196326513339016343552675453026669567458086127641061113107230157824051539055718366988233601061268608784900611007102740257899843478311458324980373780219566442084447586114853616414270561670776193388618316631615981428522451376707373285635253973995696369593502852541274523379545171024533075694130772281949063322676205335427477147155717602747396421357918504287869047542394542734297493226994325409944177455054468893843484364383472402259066267093218518111799501254490445223855395043045164480745542110913393325311325504377464310477560988070078532873516446752000582618771823845503916849960401165626516118743509920086068072399029583211858431520428006824914769606861748351241622746913262975649234986446883785208661023468039363178473229386150794852419752503605938613101883000398925635998417245339114609482344939977824826841627508615747826543603589582356801268050999193505570095200551148131252260400629095625309949785375191400629985553256885400606938828969264429686922387192254002592887322464963037537980893216696802143260068385803442569249260348301150345188773010467405125619782492951540423215644537843752624747404730996260892930448383320461664702253208356136247031419275330258066167442770342749253459093070242431672833822070301041176045589090024978860391623359469555265057559728929121567646772978958598837925677721492816359611084460748939177397979725671525587956419863069381074280157426962229229714859307871530777825473857565532313474875732286286427844008103820610045339047242266805499072675059105761409359475209966510685178117160221993163531827385099868037538904143529332368008054162504858900624182995364364528737143112864330514433318167863391586351608494884251155623252243699591858227299487704455798751516584519057745561388055615126842473213185944799457026669620063650243508245717523594493536683669584501492483465743965183875630425002966021058718316199092407588241278253707793856302633354988120378463466173867513991892041836526158233012800499556613195331591850562744977337913460761507047588434626047576632928371246626063906542403024560941199250598799652280954650565486744788941620896712052905047799495976432891519611496241823753146613749027706673357511170446640106803217764917808510548782247802922874993867136110654758795357026167530355960522769679471626506064122565944574570476170839204232806767497491617092097656871858604427774015019550013756116998538220689495029203054643793754408053406989138923587432694967840977439794492990038634083024405015668915743297191681398662639813483996257512541005361476908841342246118673828799806707015474893783521116838327012807040396042689760773257084117409828322215071559557616048023871008468824626150360382803732886181006005331466817119179041278403070836660920434722597476311822552659512118983924287731454898505578399748755697092044897600876311921145875069300822739796754902538749462210767364070782453699478261829430116509911679578417770494553210468380886833909988320087303591778042227918605382371068324993502258912384909119011097991916563057629614860722719675915146334093006165544182704192598252123651506539113861328897578732430510876042477284697169047645048365593048877651982344835608882889481752389672911343114581222761993611603011914447847001880788701149561301540690898534194300041113037737965035455059669462169010228930989872203872883397240339707068342490486268540794712851720161362764395809082117376884754971279306774295045344872491433040111329260456523652583962228177838593205434016561112207263005773599565525897250349101897069406898462132877358282006153063726649062123957360775950404450537756414020199984221047962157015588822077299940415342687880307616684344605129912393089751188290923306259022991173038781374028925515156272301124101845521535728516833222902379700924350761640060232338271901304185717708900933800127289682519400720338879965216656443583532549361190893985976002821925356754384995058848831667322893870872011982077828700264149950847854421828714176463655282040975732902626724347459034455553594663930785391327390781735504637282338460252842307576001877934902949050136999015216177203587287001302250623257081704364712043429551971419459841704349762009120155656763655464109532336501960327450762046452892095289032993087482963913863821760478430478436893487567985648543651067028530777090821493784911808293418402471041017427977326812971251287875571281467453098018287867471128927096353906331715526856417011293487615383722144782999775522861249621326408019736847241654500520669744725975271826539886540914429780667137480366627434050161830565689667011398978443304257102707205944187264892885234445528209750355416599568974048869195980352261885776778049842039015327064908564697207479565038483277432886324773145216028712535446834960586431979619277609183189673572453582910384299522109376346149410840129640426285058347298432657754980972580686337365922104979606059397527490655427041930509536679490765081539435628180911527785728298286337624847991061968147353507334985253148109589622874994032851169113285142630811522112992242744001407188939758482568945172435950865308367294029594539581728199327700717187035216880789095588470749500200741479663455794625849207829138594595787736344345352418734872446613232951415181212080789202160490538345257213259954925576955977306777791394288071145685649484476973792635952722085942974303656791316687824686700301098163863980709681504735201050847511224056888454737731180147316619510202998562039340513839477906290117333594683148597321916132275119208579162253815686161106893144148628968679708590294778929147422123322061897351715844829345758808475739690877007088451121022224610209789520212790617885466755550627947469123796454655960503811013529647864780723755160373275117365008042116201943099573130908002723768436573092071377132266211127442630432095700383309133137917940283390327357562487290301255155047551959081165435368624422321505390505836566655486559574777805878782618586338943301512499055229153353796614244133622950202617856927004632359787691082372786894153906938268602093669694766399359819589190461403590044510495438599836284259487478675183721944550892013935295965639529259432524812728685736809060296611470397694742495176860994479642295652170631868427514009852725565343180431522011457749182795900546680271993997338403596950493109864665939582500446931873692080401717277690156559685349674674001618367898481798247847602571529375903390465699118202709905619253568674532392244562858407576838498524327512131277225026731014082763422901604235347760320389322984815213366875633596079025951718708094696697006834562393562263284917532417569411976919562035287992247544580318510346989019338102910179772774104770487766457917557211677058622866405539457129790069029877999236330534056613434138234977922733170255509244942451472620810693274663819858723349903088344225036065023747201483319320775054363009836486100099533170287667545003924768843212752876099220359302365393883243203064113689436694350673675360376018035576477182742923217754888912734949659637941363014581943583600734923346042713784827500026496465662166728950694474897136391222971867613439299891783761690460872697405832628344909201533489703237558119732366069362578187010331485529583230933690735614546399176304460667013164085091426068410582098253638972553095500694359045581942192101544300116208243165988882928381249648446522097933164137947989749927716155034163132997461612003193847198151282658243276088781848797335171732219738622466685820313515414036032600390516719544883777049437484036385353251476488968578697491256118267593555471030098004700211806504321918352873163623347438300728933829583208097701390385650441581439670874819881982642129441255651449702589325480016318233425652059940286014441702476761451730544629595803419535097281122307203669758104639978046381058054744383948788049684251820899403961825753082966810825588823290660274192645836296245035140267014865284518215579998153720274649690004451825354684216903806527558309740008101219163313083582831763094222966848582221100997432410193229834904197865314802380475812763043976324030489005223392892333576001551122964769352776733810917698418285400921469856994176804726744969832734613907877053907177921375381643328199637331662350956308794096396425658311354410261903666619293879778831436343995427073926450862045878344102811285916549947637488611514230048797083650233546229026214308708036660477810994847921243537722644332451151501545929052285981767651652862813808554435974442100469491105848658113898249908567929795818933971102763710519420199839917238665759797505883592841264662393585316070262534064826429396720906273895005958253812843585126651977969685552915054135962409534174657152845764947520211680648739738409059898094963710063190386568464769561217227615825302136494385639034225039393352775574366667873080844432001632727279154012027304455022266972029085609286427530548991190266123299010960292223103446761409355411784565867412635760720852912791046186409863952316885223754222044402578422801101557867067641107323329271099765865396147875233622290796487007247501734396340481430579698387990700271756885399781170078531127608132761376900449646216577365619744200694446900753022948364103549178625610385348411214797162729632569248157160319286806330439270977109325154578858661931827959589239676083553804565744584321124547114434159500095534685108855530786631586642849371682524400328154513224064657714414693271741842755244800693171264318048138724351023565904724129896510810641882838809119594909606223268981982149870252502798991124278547613425643645144782226371550349040228577456928657119457401835832735148941811862788573057314607027770769945402571078030490056119793735509666908614258947007064144690302769569980452941115794790598929262420366958575080136595866516932898818359178691437346541032951069000853771548669522322002811087840263790047198363883334210844054452556202226891485950418897207419523559272425072217482526178288118880338972499463310819084547811083365846786647542738275104583010292911132299251677214309765861398887881405750974066635949968809544139182925626171132872654471830067811696509958209419937941741110036224122751597030315916442553670739350274077222781576411964542050267106161424184832371992216319294632064078442657204654324304783475916296157891527972575741322198473332672059578497403006083164815178845995853837377430315203797897049952867507113570747227754205237081479976510580970266910086380563789804448998198335431996477779067111361392736887289423936270675044532457648781817941212958778727184053059435252625925077464423459504374108090460820658562703539735378865719280911119889000575328587763201151327953631896943567753821522313195356384285693698255469029394954943145421574156690754813105512979193518202510600570234858209735554802975229686076748240182503930281894614374982062912669348327353063412492072382829785144623012218336193866028123503928027552727485181171336519264003601737287275059803673120707970565261085189516118981964482654859034848139828886990787278377350658580946702602218605202603436056873559563250601512821972795090862215995955646932798736973122081262731288759159113110794750466879568242359081703573047065583764150868670022857038341617431889483518126209649075236261480188781330315650210859705908693112885871153337058393220045472485533098660255085300926011287294939083857425642174572475992654674238556161798876673938661715207498342815504535289902022959142980978030495627231005095123839435432371500655317437383273701818187166164045682240053260504846323260598073353303074214978479756646290901808586406459662296211031440482828100726817200812761493907390212987567553644619751059923879415224208384065726197483689916640334365973846514797651943369078262724210285058139293970361305738701958337239836116937860890706383117123576606326161946254663588694728923496350564261582970743716901733796965208957037061942642544337915798230308426356816213745231191638207037617196448369262795409722414074373620959044371886015407634090245327278361050192326089903360562551091672394223213588602357712411450693582258635576742482552192104204924061262822844063106836366204101549375659853411868375650931540607108173749986208758121511511135509715962220231770329291751988621869607990244125137242162101993771105436410282202015470305832937011736857169213130628077548625837260578757277263644330906168342303018995128161183559656308768652637491437890680890098564734026518377441888989140178997773663907590826242680555789785598851298122071133416155441355631853614050651508868537306499410658139844594701634700599249881278097282905576058589392252403938011296859440560149651266706928592976718389426759830481400277428223534803399468121861405451802138964722787543527730286317808627488637618386771030928730050981121360184514875341773602082885290763528842398838081408810446275420794083335759877395464832934269277065187844766114366503000467408008308837243250715608254131160137756702516201380357015855309493509403320710204053105280491492370598382125944699986686646787995788121748057741422666945831274656700228618398115920873740010665810435029829704212801692470777224843393703535580437163357561639782990323930628390371168197447990529027185195286564824247701183478480096116241871400984094820912458850952517821380829500294555690865389663234829976369829690542982783352272866259062594993651234912085379070131340632668277329265362471783800493287444422203223491103228246029013714997553319531531849684048164908809438040728697980768108132471282834391713844457529287325074855445129901797930747012111498719862760640914008488357103341680431967881806604564121770462915459896415317830620615663482950364163378702317866397521638637472056779128075008629021737570329990769850811544707559059633176099737131012598474289403285567133926990480692366492562639679181809522817963220332187571421325599168015724156931053168235212139886865531362193115248682707540239681081706773168614658334117999031223851994475686675563221733727230593023755996911234034658069853062346404103134720441027447396252848092497609762669307342413406769937092746316173958739804917633450421602928277607728287181890088438722944270921319608915838478420219159359851639025737562111265982162115168486296599605815328181112209461229286567310615056420247813917428706505895636724675567955570966434782204323709579298735159169955014364335080700144162303833025416257652603482812391130774770336005697356924972179390617444319222496008777438460523624196857636551261780937012345771868352297981267000418186429771364052855102840545245502394148521715181279757366156975600589060522187500248549761118685215053421741103616318172923845980254875353180413848596395157828789554567276186899014362349892814023629621734694602987526572212971296253768173746847644171227594668217865016608325918892206955426697297955294568005743865698222958137310742384928164085825957400615348832923657198233328192312132788494707370311748269509505229893315333718128717051794665499102697772245936623076275367387573956839271399752563948896590764455701349614199255922857136210223648894037826234176583992505512705653185911821774248490183005516407057136924979469548558546808237157453900271829392042067535589159375383790999488614081476533980901657632767362272095168879966176436622829918737460468580909043744147736566161733611414086170079672762550828783465920001120289207316029405541891984979435598010633720090672007712524134751791748028382217056318566420297348829490900046306186637223641674693497668523336055275935516999708079147353431395640509104258643754726090422570014061002009072024452110982275894016259047037952916421413291854932214239925446503329413180582565545820859079104168095893782926153423412200336140950014095389578444298417548878255372993710558195183675815179271138990507660217783007258781713188813701927359303950591911539884838715840030755821368421148971442357755246003110785399749607292103823945380971206569535626049929646814538677150539437332376531616577233370983543952045327692344238225467565934899002945583292564857350289419992341268042265118670242333231915829166006692997938189329164309740484017857534734770357495764638300612147942728371615141770993806252140715670766460062284411852806143358132595004982755398076435692657691019226615794622870575994950083250167219482626483271799377507265733838007116682428649875247965845984998064322908276937432553012142787990087938540558590676478933051878006401762861382799801812219720970463417806243298018327731108229621956667583236756346159434960573363242611872370795241242986181057830144810623902224816895815033131758382014608426708892740558405815536587005989719352508727028017253062675435345381890476516529752103173377180161354822131985429005214839967654140274282532343693922828189662880569722495692807026823837397935836030760388872635899805729420761369997313236756820627028837939899734713512640706587816787567086343729464630277316368667238815519554970408704550713113846779056332482607372790683641988081775686203659005963804200709223379391575575361587883750084102339798192965759103310986930482756798542798500412698761776288418631472300453526392429750835355863975471346920560607091104765188653282586906640253626414460335212294351373396569873013737838782027810822727457321548075354737073086809358904564112415656660395933586355544783796503195293424081561547203676902577253521948877362702128555280979779747991561416102469828393527874698276390273347585016332113544618650390676522580945276666660240789398810072776273295229239757944255135638070678063347497571960942995590779042203875694866786222894897116889801025781354879462364083127241546885572407483927767228355321503718481149959914337907663115362040653539037993354253283371091672440104474749262162946769616004503529796703265560281976389729205465498108488116932372711233803595667395318799815718725421376962538689729415492877401578860245918405835814458615903858041561543178606027571975752120281521093131167006274680143224197760107225938671780661376538722379799518046020632903786761404108774965186602039755919614173008495025646343914458945920010226073188808899813799130767558775285232532757926415900224311797250439517876334237581861440047547737491333047784105257327042135105689180154459956185165009155422711883973123827960868033040404895638343833094641295515490587121610615030304478106188614439939980135369688313004704378996799253632059797932262999713411615586812326246979325847322778364271995861041934310606061432928989248103502900205357703115829148871505280205851044634625103555004367081491634031167573887962715410631850590363836248886197652778581815351303808618674784224699419569394459633087214436416082312927330137533447302005778990244001913829575396019877922335910006678227204727639669965406055393161101178968670804453796056967190349144979130755098430764140487816281121975752004833988511879155756356713181461048889717397598678479477998614324955533387364109153125751636752274336214603318875973476174111947681389758235290649487950040365252758438310164892157005438675859914062619995212258338526566716655313381804128331006213147518671918465747202061397916477877661267097513075060535864233813902897083080213981361199346223324746252133050997459463918754128725180947032581080152202762091847826160058027759325012060983641331473632256971332061793663815113010175587914142980597571880914466637055976029541103471813295567917935358210706394591151110527299039708050896797809459967660639173399669326073898440024340835082196847378275412333377112444107513734410640184971594358777157648915199383067037426982698115200986233487923103972621404989020255787527985517549809460698432153813207954223374774503500106078803268279206639317413050378374144122792850558274681696552875453330310918486850874944919321344762214109236906141758563092482407594447898965107057101303509432735623650151576029267501278366105618879349247535937557489937998935492396317214001389973455775066936433507365248606833972814290360750304316625402848751539093093580222677149652308031647274241146597647368680329724765839044048767253527755111028739560268910046361018301645838204212680610755536837218624393512245619545240840640416091265407744969736913723942364534878692785759922947787052065136454897458513517177343518163954433786251714987259074993617327815225957459996771732670979310041060863128152890660573475790396073699387076427396129853822376164847596807822244848290405461960299625331203550649056480675485180726399303083371589405659607955897582644744346282384465006917590845382747815087133242843336230880313057516902617560034134930646105531299542451702614618437094792212780297407177957396917863707386856347750896920413901412345989731194525096789076746310388076925260047516027545558392477986984343580893011303224290419303243134449057734723802406246974422380738942150690751799935989436267731377000904452748246515875645071794991582204098255545299965966278672579994606844192998851497132349074336408706446670757086072908504474903590250443100570380383875705771148555295411381003063717063876119446895361883435441426965447940614393268235876540334995092108637262664976344106151797141996598257797368103078376594769258139980956373131190179678506614731940776549829417192943666539107369780791380859929206096495454880666743789927213295858134072712884506009290269121378938775520946505387582831831251825826174681150539599240880772237697986935382325918062930068794826505240461520982035095008311767418652033779301536145715960404863474332422033243724800544160616982466377371428581690515780984080296664366710971892881298002322202938094167437501223679420447771743390396019931043339193275468623580668683813038804965537733519207089612389192574760603942079744709291057975395344949241619018164970763342861107668173872114811496459214555433838079495066224375407998479117098529491322301794238651132543741543911292918162930620750385489771557894548462234146470163970681758890299268506353357518014329110323220381631773333226478502808836747676242675206217264704712960747294961592531927612905032485504090456024003812893736268169487222392311788527250990883936729862903072998486693193480811434001251619319057830761365463360725884888292713602306230539424881671724961610455781522106263539920573983781309317659573572831873736599016214907079276053259847413736285214792599004342130955087521139769796772350430929950494410178646595524307916650432328997651092290501736501688546211713813960895311687817699078163367636481288402183879579343085790729569408447169091071285008610104646991455465275401522462249814158788537090812277187777676811732881773745969202027140909139364408738609566996089603566165133024204248162761051628724269865645843052601944466412594189646455084200487297004093101779907947377618100248764690429053929962718431955842228990398449963292860221953939652510060850984094026014798684811709299515352124494467586769780312538680027162491655804736422438865426036642624185230642625112295674328794658265999753882474428176189790325915040977087756421847493091043765731904921748166715166186762261407893710819022347502771348238942231070343365765161496898799767335773987373243493320925278567209721452654037585848699253320157576542607421219982017744312650040377249533062320048349697250692179154481419747672546885557922492268017899052780933008027063759311718826304824260363631718901343249332189590150670786198128739801241423696992814244897697230168801458434959129868138161753194755593331446994367111835898057132188584216143190355175513900760725493304933041061398117943518920611754901390455224787744884080078099286998564452351479047822417293066726958626735544138425229852612832699646903942794551833802614374942892500606985311502669619276101156764566857144523480065205513703674849456192805596594687320072267532087110336739232000887356250094040305062476589924034193776885465079436933623588983851062976767848056006945418576411614440827163206024966902739105862401384366137552733082363359457521370842588065456486565418113739214450761170410220451632359391866391958770338756453450020128610437406262604349217393447303955401972150430714515714061278540820074638886831439584459568139216934963859771997878745170798275498995022901612752233069410531705542018025183775855902564721636089415046106930459542787900223997412272929963474554440842957571112136077519424146402110345067253450115101288398254899794069945345583953396143883709248006447975538633232378785812552386043522459985007526106536461519820780906118668804386465793667056908336669661407319135670715620541341808125389239148540197222280480329185840459735645016739380629192911495704632269699020077968848030657588684063023619882318601468692189862487218554422923368746680801768551670427827476689961441336818919606636820668374824135344856633296698139421171703513733938393119348208329147853323200102559799691364289139808499865118133321605803534350381488673391856023258593093362397600657526748572442444336033747590748249354208410166386105678275289911393023872210647238816817227180571765207563801235754136244008854852764674954655202220129603201392448621575470305510946623335620654893123851029336548444961584185868252433435378125652223345785680848630503762167253517871162748905174615941373706080836156772063009792318917488479683468160529119652439634883820387459494575853737493440758047833448385666572762875668038524624556131822591188829533021404916451212164549271742677675177200858442450051080298104150975513259953346421154768112753226926066018265010244012791461844008904581552400386748987894928362917091514564341566091567859840198040248289549814260653888693769437811939851636200379307038205441431882619412189367950349342577771645077567135104293119376914754899946259035961841335964966672431170610727396978941942098688426638264668766596866557044344429473112422787719213405516432804141632835098285285151983707156462041766844864118307553818461179958033220392426421271416665367684535156270001317348952169016573218737823342845202698907976454932914815556092372328690636595115849544276952251546014988811934109979283326408520548661588870477263940149469658277320988527865955004105663273086661822501071032015873745223678868937788793106133039808828567432117651954371981781140611068077293553079314217770437297387867983917936315784464431552450261618225937938449263863937394045058932966214890680211665327663839312864048384978602341054438963292297654775166466424482104328241341911158967744367459832566034948664614117031663525260115997466770500089245890476239113637842642107064909366112077041445987614229058730316746948926248904550055182875081265709921532031806850876047290488921085660047346575832569274430426610645215819038605810159971659272563714420601765608086236631951930413915313408716530853891224108404136070200186173955511975252465960434364020346284146291972380839894207356118573035764781001682567434215583282591972143351628139384204805541497645058945379159977291013472055825462431748234186877748325850654790252494845902186316706337978496920751426885943274366941787845030310717502252294287861406293467854926806185863340379185358147060817359109746075540544788618098686538818939498042618579830773188353603871622572078028502329907158724238227935508565285609898134446920757974866815220280583991901036420384824820445356871349992115061977373000480983694753485027453251926901169932825962107054521082780676807491155488425786807181293755918150989999130605137417019721133614923272625332095074574109984245769215744121628107342730419120175162108392813866641345762859519718891003931980078455014465121059505618237665938983049217247861751707506656214574090141246875603805785828469571430852243373312758553964848085155708013648292889280546530760828548971551849877287242043958998122568632733848038084751821477242734919367792071017382840284326207190827689842055831894542076390848955894704986167226833738468282377353925769646892447500567290120833548150008758287020172029071387561981388982597228157589693373989539987043577597515634085110026127522141542543343092839262035206323112313429342889708691995086145278832007820553631012673194793210248465969827672171501709207594811262066448110792817615708224846511277805035650047003489054492980391801336324192088251144394357573986715428127657878540997463855969074851588186074819251984489981445518358530205505361263493804823983513806575442702570332650719779789700886046085075097979555342405375735548944986934902099646232061064464869271537846189979803039724715650390626192217871696155103764056547952936631280364515927361243418496480312097496007730406208425684645184898032821514591731471526600044572579147402340775248588578922129745092146861222568224006633262578394993520142506872032309395995520440673888720853892733787752185793139684015820081079572770263154378065734080922871527689317849005027091167458028827630843208175799025061801479706792502606030459763619180020832365573646955353886754014132790323692230806716717731596308331963509693406055047931273721353973770901785542179815472486445210254581712324522531814874112160820264507171114214220177068254509115340744867562940718657593134673574232888504758011313331238994960987384357380404933188696724800044592842729262984379242895340366822266739429070976936941220361962893638362762225993630325188517323399403567643461517409462984232420502319037427559366081072938959512407574369279161721105099530938837847487957848778539376950488961868022448808145034984478355533215584444444500139832032211447379954567525041039644620457948115297221445133159441757248287989792161300766543322613204509453444878037378856815340674177207224683103133758968140710813334309917630259766314210408633664812019013284209384765048198177072371870690689784889768642961314471922604897601813574090279619653095873504028007274877002406616853625536402549342882048349907084475594602053882459296644029130342985321996913093820104923859265766503437169935391643286355095994345156140135350207646222187535014144512305823229793341483510357476777889045457381403101833674176088735502522737182047784156456770049924399327531172362775983528694681104804095037923274154331008344755549388883419754571742554440549136254093220671669114775596632966390428297793793393117038651935605787368862725755355481584957151268961672936672815020498858206162071975911080586271136875354382860834960009317313070743449875826042302027902181326803632248245896582169229609537521891712215500069272170479483242252907090041712683448720836664080453384472901224864924648042430396925280941588668890050536353672693882992499720079506364753607428577421568913310473894231395711319183600971388799372090937984302640983468218454169456631851306682705949105694285079582698693898429323082683507933389870053781584923142041821698476537227116855633361334621105862682491178416801505894763848178783784063336859109630940451138060489327306103000875009835038536230325216390783133033983695754913232326019844356466487153199308581675699601875352157651790708472469700413770425486225724327623606019616223716727756362559474313991071440034793347785200228069194624113168437837735291061297395376785881911528018208597319602516810234277382796370034730429853687220004007030439640702640999065854986802497922537836200075278869541279079202927569233578663068333735230112774668673256876040029799186124961558024043227389312550664936965857766097751149162594659718442033612577837443907537068285692173812382141841497560199632357262084304581502131630746944660234021039510796480514529881470022541352701164139282737944263835889645859427150396392341957123522415035528946064646661582749599726461739787003882224545327979631303270799013022904995173534205404013051270677450868200228607130096087546377352332267469359377851427308758197874312200782415999203531455761757078348949220754460656791014267722227050807073281577312241330166569332287120740507987473290538160849313296300687634657770557463560100035277978083945210503307901107358402377603886467081938786391509185901156220316288083623646967173314441849036069635483579945939033029317703094294541092173090449572423495573288657840392422397554010090013390290326085941345054767827358885816547393896058302489565434435331987203341606388178771267619714904854761411534228019461115357452372925488604131914536801793016425910263240310654944105691080998843564330389000769784497280595706903516977044738247471356034658293294487060746021940265812149076036639209746786009003102657565152133930675597702895678790181996973068733571744665778517040949338017643962491789267221191179968401520944811824103900565125177701649601976533643106805096747640487044146842960790993086935146149217773178036391458264437468697739455466184524274675349002827667664539175529125265120006789607798847492882268498771993737700787601770329917362091470596127861568929564227262541229050134040434743771422394903946048291869303612220921343172268013365640466637654781055971905258336057597720843280348492734386365736520338691138707408371990343803243058932320712764085096915811080185898419219520417459993745203244015817856759661666578389921903382337222536888207241916371329509687650587505304372598453463184735741835577787651265871159795286580066566561380100298310092392119677733505954591143344509982474662081626835220528591453351206725197097403117953227553155460471683570512020266166105411569449277933542782591485595765759157753600220672414966035328633314795387278173512580135487143564228819879078640206816966283342143683485226073492466383346054319792093716455226658046692001894777062812552736740156822658322884737005804486467982553167878307207441584197072005441800185897070060194345283026196684410638372691033902448757734156660834746944826016122204286864235066795684098321510752419432841554042669742113288792576087490766364077009590531766759175459736630769758845762068604911258043353633133472671452256062976385638575361318112483864598204532292190441918560243933524827975915870047015149074580703379972669962007416625459473298072449105210239089095266751208245281673250284522481308021235455649656182061245643734867466495782203403097310058965028561907564761374858052997762373236498322536109205674356796141568297360806026599741763797740706549250087711537754184166799439001078540141604420929086138283508441928873559502689865297704005958303858206933787908958926084368896671337466515035716566472941113168723501888851708051787962459876187230017194558596146109964369137218628193075213183965432115243713404405763046493178139646389460572960784791869266915014325081795610302842163857428150939931885259011529237032303691403417870977017680304451045644233322781247048682253108538292592630572809871107007520130185304878865966492459054796898592597084550822753429266707936073300445161965447465028298110572508477511244161656736471506071462928135625377647474566600962198034999206250879941189311968861177567448800420655563768857484636796057319530343578079063538183837059682691847283663026239814806025172916810125555583631133743321671690059181440969543385781978181077267989192706505246638865946702997948065605899436772983674125330771216600485506834934914015183659657288935829459470724992297786542735033241179309573603099584985829531086951182941292238071916438795485312901709646906976990088166137649782056728299368574874626866312734841594674252959213504206688880318438485838233917184688224165241809790504367185171331194755058366866934444246174657980525543642726352396247775947083154224696086270781434961989110418490634551197577064988281634353771840490182423668376660122590332395694532569737375178786622671031577326362133876284017578605322318692951870325098777121983831903779820910888682172193270781824183687176394583984460659695293338999107794430859302182776662872009951668628804058298882765004030629523898499803886881499029254566476509014246799516213193279073568699325947523833051362770471266922606522829687557427216239824710733779028800107677570677510919549260744527245089799742146473557959470971480832158008803116589794207308335529857953639815768732732199277707693606106320680984983785403048473050719093345698815776296555383330508460984436931407509282726643220782399927981944072640571643429553657758907436649553733506371042461234170982926219677516134886942531215262134074683594505733404194258796454452863671063411649994007595788773040984346543192888937634246097158870794025397753437715001077407771727283857829532616296997111673915447368017138052908441334142385141797337776563308594888173213417638013838334775327035741748604370730379318276172666257741457504387246211176241081403015005844990567888492932754703366616362229377787967673641848696785720189031354703654661909689153054703769072146782250401528753300703048318112952986685273081405607736621094667874801620759929872439304077211923134101718456499301202948578451733607479003888853005253513824505139213957524911515336219122885394754385955665257080727107415234843912171875678264153259690239113326945733229064854320817341276115451314798605013594490010290653750985614509634732207155898868876998184885410288130863507753752612103550950394632959603112601942956295195388492750411139041241454037210604287677794642992542586377193317681018409841349512794062070438494188539526001215218361103193233818469979841258894110251875118238131077656395627896999567669390623360382681382117539466924104676325902517967865066721409839083636998661933130114392896773556596655246006035410204567163117116558271215073592679165077828982484117753904124858772621161135961903574893647755330318705345059939355764189847632040098421736573591537128458754211447550604822876749648757324644161097249403451591975838718377637351258843209065153350566043494267919835398850030363515936860720635430466516839908400368770088940092743422985096743987032473221107941957331100725252233046102563241186279109407399689490631889414086513785405241184153578829564709634000489913081025916215946056345536703382112607326636384960470462619230052294515970250799144217007089235417792837928539696378202645044837720151351262619853304842680475662376670417099671781593706276080365113405328449542770939198102408410670828166709060181839297799128008864428661087243051965988373531511369102772240787127694263663896311822155887339521701303894592789343871592806521642381332225727690045555122668725865100637832480224768664235291802538598268750406139850281157130323093122973324486281136555807631764361682118197876712271213393069339991814110939781200196302156636883194262847043964529705164395874877062246862469940685859472983784129243198890675629401103099457646341400776438121300851204871367020746807957034535997098379391833146036158989712864277290882145635323462473069876262218192587306519284495492881182388133209676601805637549461080804679869489947879325527801547577301981105416006038229187090125666499589483714629989308995394335749133983758699974614313966129885741752368728281948861500382658732389969841861776282051660347023127706382946198887848068211170344743342747807003416889140262849381386398521530955263954531226423375752865637128631041904678290213206688990924580417608551057643110958894767449276920655343152208124833794981675171860448041677891189274135571608211737454148914568813318635734710980882477929333181538504668932245973982607744114182114770697743849734160622665004717957369859908978969238721453990713791030551566426589580705495124374715156002420133380136555024702861360680772098187582033092278041976041005124694121509042169926727223313962849955260746339171997187542866083618035872176008594229332155103087144622704985965880530849415504464076205423525028201875384436188245504561312209120053597126253781312215209999703422340175875439852716377019482326228374550931377996017212903149160151959604506625112160298566551261245402032234548459300161210229186441572610656530403136880208148137355316959189334891164874847485049388964691390182733809550432913189565142807720239565488947892265464659200979925667033934822184454874355542616026150394110550502916815098111380196536530692591490607921459241619027997660718113480579047484425481761373718488099891180490122881070175628509120938970607945047310474725537563869426034385737269560434068007896641750665701962709993201620412336200004591259799633607837461309699649650791521133208640158247676514851451074626473655766502535765803324540051862060195727611238628050544177834076724293026852302994889487393337431895535350170862566670469910243215089368025644851842867321313179517189066536564718556166740072561941651901497112739937476640092778218316810828465810187470608029677370077833362384671125014822793240893870073206526550715732867335267962269518768781202262598928016194191220891165540024856754549463306099824020628540257194742335654686276739769588559520841005713088198391799160619742399086060142304622875065030325283233390905657535397727125297425228039749160549163069563976411330716986002668287131599784324516309607526863347795317469182098353884060223351293164430701727634138132053937136752705907466876482432098996490858971482739488024560855447808105642739177272315533471082496642223408539330362757615231598931571215187057938050772220479671174107595966831455804744765607082681945865131547351210281662351265903542130744465232954065523843108888704931259815488283365003855589923015129631336486015264163255379858224242581411064692851506337189023715612946979051847450235640166927802611689313298621178735492169858268347614646636682501076121073536989827908961181940481716911897153406219212707137116585324707698434182124100357756057865455615949072253509332791188909062226367693911662793485207486197162127650194964466456437030864850590278027234188572916950844246647340859096056733678485507736232582746706620730733785190782817910989368446524817704390177163111149319297521777609076174580294344280834506332565692231066696708358821084743381066403988527784334948355410468788069578329182660352669908253792170625788841960179248275554188827477143380128687167108363802668828399276609578024943169520769828693420147695727625048532053659831587975622515002864255347898236762068811910525398550933968335280247022411421897264296462963970491933090039547527054304499020813570162254466355696929524772448407698342502232964669266964273637254923098565717899701009420116098952657602126507752949341570345805101161056389634733977968173977732133872806517063067787809323370128076841165318970470841362940825091273125688390362073497912236526263602615849772593800933204206500129905454727223687353244425035869742814962575020904280981441888148829966071836914286784535813602044444130379595398312093773876511593375616739128866299650889933125255546200294697228553892427326515603058720428488718981844148777845934402405281017528271542106258421768011469064105088961372132603215057056249958700062939491312537823970414305573929407748003013178334020368967508338674178696281395526020897044275382426350864134288526780250382785420099533700598188943355046486966989608099035294545733328107057946815266062916368940716604170737159361107897381047171516495573284089882648455200440073906962252648225808486282413009023980823034242811065494368038672969015265183414654206257019632490331249797016268702333265350793848276986129879500489833687114437395476042870609411282511792829893683276014457918618753651922117352943661556447497880875792167253603398168755317217527563377540314265922713004569684520769463984644773830740995588471685913279494799443600853174633707312668888505041809237231973369869203696124145483242519682658739801611238792940907456730081209571108128142086155370439094490401121463634449564758292080185816181004082266289348481425428930915485799811258259558616677207941625094830442824827432865272922388158412827720841968861130374504593211974087483810544952820372400171207929497056038519369295601599609641715152481882966890076828644269912505209058519212046588022376415081549575445483291460842287108925939120692336444824648497942802083036827861588042244965193146928823767854994886283423764453288713616643625576402913251082204227016760901079393538049223245451963041860704623700079808329264835932552663334967334782107657762014758417312824193375781091510492000980866027084035385151666254514091190986130320168731385087082594445623211066963990949093215911636308673106394464158922392350234667021219569871337554896017404962691070290312257100201021389353758612541080845685404365401243318101318816413358654911874400173962616813971145489515280229194350837313509672791965524649995722211656589364458003037195519880787307472131607462854030635352728440834411777206522630753655576971922409433307730441263243988215800982589998833801881334432222710811426725262109789451642935670576671290822347747913857907896257069474100564905900281458318001142677044037134897824057264228872170369808092388884087836105725891169232762382291745749504627346541346535122136195716111229595956855730795395024244266963546287616673883267650182159837763865878431347764644818714273627586616784798457477034068411262963048478633225036568772430748495089231008120038554503024486394552640360399545620616200395374542083960013298634646395201720865874248998975107350479695124865813397244255888024318614949142662712473528307360584015806172482383776976825695791287137923297237769236571206958279609150668397895784876708956814015605760160191269998075220042743399150876991151338804338848106687630621159132468954905063417198956408806665564279401536179794455364892121994744032224013752642878811262940094824775610874037715043391266187726856533455295897376329537771121797915304271681820572496516235825353063111194180976095207332892261514980270803709756732845317497364883296879894692751169044692558518937733170255792753454106177007952828972941210407487796682969818132128204249698668727456029618043013404963372792857541982836950794854137258738490370290123877454096242903504078829533130148301957255782729223684388045011830052106203435596277287828085466955969819503977744226387664286571654039012576283407589882892325876657046194096304623055721265423469907966547481189404145986093353931844373822638063403305510240238935190344232024723483372707039179844164672561272545182203422628705864365007330469634437145825152973196947465886412339825427005382536909922780956918907945763200041890134447755484892073139904864893185485070633136199049474329778144081003074062462047531769091868151312929577991877680245953953821759727808859822887552483637892279604120937200477395633810031803082893133196757517418964627663008590117642075600118880532531414209481937610773000160994316835366814788045542669188851163515323003256586229430751138430937055983417405414288160912851668910369149560597432990144352842643492123724219287281086600825335060854495431839458091564732561017979090594030525998665437150581229966165823450502928063042185010110849444075777565845437495586895721563860344922405945445752736592867365178164910571424386684871690616688000895985284418539329363583306927831391450763908328073778034557698370576586580939394162020370022729769469167344798628007049453556480829586443851609273571254009078236090072080204927554983428632972613860395021427121272243054781742909453725875756558425646811506795829441675756900551830767606832674502607050469389767163113420199630294486664488862403218998128937021236954457849679219135932218096878835237655047317255228086022342377538283745783354445080971515912555601899386604351354180416210014375611555566134802353562102082605839565711307194376361079164774442011638191799043639468208197576784973930738009427052785484005006476254246819262655856149689857305928009008670140715675641787064287675243172315251576109996940484224715708112490422574769750565495829877950210787177030772303396379581314225925711744763441507722619595358426133262321775254637524330513037109090956056437034122677330526122222982494776156265993220108500946946120684213417650911084169206645870886233258228731098866542451290101967014380123701004396249786816387670997044101479347638281735185652292181227331296615306940964993374840200650748082113577456368981774878214670973280147111498781832800748765113031868144689784904531418526119690772894523880286334834430377829244359569702759606332146314594781743756637072011688144723880181344681997947997919873306201490741729631153411987513494376887574036767169098517223606976053829533357280413144507592048590100209277469836266819584048418312705996459377370435392538576854202343564114550477381978874724448928982404412373458489701838080094215484205395007638514447354217862710654513527228815773292610127190033202702617757141995649955690273588538292067970995444321524732572813466394356615071178838691806406912985106218174976602711592918976960687528161237595491967525183519320944561873922431520948161733463000758748151501892582458966314003661276115062849641679634102114860626660493053492013415777665345759623596450400075982401830698489955547730419489959806765823362019248642440808209834914370960480047485890707476263567081458114991697451432301904627068751330104203853007944263208593181941093147885636450385281756268756684015036179210165844152244687477969832443739837877091749290811181914987163571938367375917127651226437203554244911405439391193336828419925402452352225310193438364782455076241650948851156516445988069286688511524615604647524848961535024573318612613392052087265306428842531057532267935555485173776905193564307472243452039388029670259024581890646159504856792210090712264147232970044679111642944497369291903815355609527615362764499205771254281604503575068107051246228041650100990123152769344673375171911480842431461569056809041205799425241139984592577156363261245700585599746845202491168876010768418756881548521000386925667789713632458569348068099479355640937677715016103534786494905937036093105958216479938539491525904278589243764606717412853459817502092015762164975966423984346814404873297284817078452636610833115438679638508392956657671566253675053709960553217418520871577096558681502385467104737136792287852876784519653523304237130245582013204498517240155322492671629204963383562894726062556938889725796023713582685400149499801298360758855480915697217203474514278309114951864196375956928027675511028489009557990094075412812458971536911230158692664321988660278569401340996866320396682255536200119365547279107240512995345888715811530395557984243988793552205313427918488415596101756022742252890711311624972496571608461987684293763761608123264767299558921113987130027790468145404767912331055976550607483515586590558738380391276590706339246411696718605339952953989132203694104658718382482496093223822031061849021468945331032259895174234783905651057825663665860036179954305155776257073691488176667675753384174298964706193052790877816393143758873910452604254998732047690967078856589089438075638712402135779408673131702971437909979112804158016091367616128397980300991126537803579308416952602501457901598468148104837047713029005155776695046866697707901314359234544860727169838505895505083412724893719075870529658273739630876658134422845665047516457555064052207657727703623429592559971005766303022963026422934139910246981043592079745653069484734667463008671142921136500002159631393319201931298127664451840629173772346411070980775260181647126173601453435064984143399437061637059798660383767990015764252528647713268213318046120259416668781311602021928414617416261410970680462796397698404182665442686042732989389743039007056181532197302634628200137053070136318007144794629185885981889484823103611105715641789312845737536900059180624107603332190799325011567201140662557331288232055351712573660552706170181668662438256774796480543026320696003492437940196655614981096795020343210953055811582017431043554626399583535368724191325932320766344463767883085619583766268841750638401929188694523531488021543701053207897990264918505148612213914217323796648154683027495576542598458954583987627525871525189896286045389342126419761296730844606884785264960529385094993323562655729500765446656666664586008263770256771353316147836959737445196356703759199496313635287536953975225620073630879814799892695515563205877730970818744163599498937138354202150191038016983055307955005591095824307582937987815247205510714974846382363884328947742418499885585136722812768353271598773999383518818402562442680007537432784632545316953323486779061374218444067159404944682564306406006761404614891156221975547647109447504842281888588721783787875006043447113238066122535935962268985950251862858225095864237456156335872794134490397159708124962776336351581129501604470959342985481338167664705519412081194348929845620358977107592834759353726054914721635825958906905143110331030611722016773398019204297662429276108200790551694374422892133036512189344882698481279400566220718147433515279909013108501140294394627152120865235703372185799850754693656239760670280378217710998865353109430912096350397641363316570043673321493922709465653506049289338376285327430235161474380386819490052699086052593924348284641286217425191450441486791980923485243622553339838074874571973144924470976223566345850702085757487859215320029598377738667955483599775762970134334641749270988134465285273220206011495949728322315427251933976678167056486256729610411581646956062652366983062114046014115681505197069069781096731418216805459167031375398002229340933948266201573648366111286307824905877844238492532460074231427441768166803593459823034225817872065915290112937871857907768842388132083287104917017540312570505931201787275582158325724190404123519771545175021781689880384161758657006661345147744918827479569380905632266824935617172680796824295554852089912359243379688408992694782885145235925211344684577838912444738250303019338236734056112963072360532008977814766367260724288430932628712391778936562993775258615530894247420547964016377588417624469264471117909365815818479437918200810317202927965411754241678982147333680234384691309141552168787689663644218748523390410418461417054688171468286287093783229367172262397797888194913856841021045963533758897084592513688775141667415239041389436081155967018130259600519402546113233205240326302914659208717004443818896882017429144414197525607716628179325000894399899545002087292652036113268034406874049520383710461295876341002426354052158425500905826405146201120358094578570217179258404781491886733804635688804157850158699984631823114048692467777352231322166752663181756011913864355270242842179671487297828817672006118482018413839887714889979366155429942759659182351317830683577356108167132848653920586751484528049881976415788309756408739822872887977062836597988603039108658023423620924050184809738390074831572557211728733681490909997676214096518013731316451333490666217368582255931323095334241992356386804808269478415656555167191125955649350727210645090498868505530726664857755552870659547850139013303466065584711126817819882699171599280608054606861088991371046948417567193791904841977356330948403068757145266274033750368110005222897513262375794606932486218653566550288463347011719653539324984633175973448733887295878009613299580587542352680572419053048180036670049642830065851229466530743422570813804390019787553450256137529794540354040588004330341155173001535769845839172169849984068880921095369424764365244642336858727961519535307729079493072969209798567709168017453289524161451401740081884902383321613073458379242063899283862271239669879639626751560691473672557955996802799222351574817696931732893158897280869624771159018380311449130324519628851513933387467843219928163312174918810361491256731242700572845621681585386615316779757616114178634993354477437515059354281135442638364853585969727284427258149449170425023462973637471851022419184948648201742339224058513153046357572958929634731825170723424037279608951763854027231464439806761875584144474464930144413824577332567906100166110938425811877558036694275198057619817526596766880672786647600358272388964107377711743569996176119922414071524379235896995297578290496806628145449615234678620888794910979682151642535976232486853443724454271743773964943367365594944307051716551710528096907057125389698945126459600527963967900197452014322082988766204973459018946683885567578525686433056291048805197619825538442467088678294830024563092527183379269386842212012662517741812916593314690744069387499353315216134515134467777949622419371859514458347282694585904940597843799437811247792941157090790935613450391698317519424517097090012048941649728997225617166570442340649735689625824650521411454027801841803224850408823862142882165122620296275472344334852675660656634424045694376539111312738608074621634856643277221270492636446705194391391453338885427545590791860227539420983062796919474811411993102462732426900653779247540177678327731466673224042652968312588435392667280762197610439660830738228902641897943463155687015537138809186118890349270605587204558461537285156424040105018648425214210694208380823638435875803342262376640211151188868856157268064319066862340894948680136578094715635020392189418913373990927695731287389270635981832671247417228586573676845161312913621602627948975441455817152296545465777810263867595458448152079759008483464259126820063249399638844443094450479882141716927958637449984123059167901604162369837539638615913899748245402788489457944874343642683505812470864878482821399646167265223047178786743503589069696642167901803494138167494223971058145970940710365714913692391153424374775668072824789560061450708807469550897556527045289592355942129856378354729311844764325661549483950828892629157047480382943510397979911937489370461835602276391772225741300113753984349311728028796088743792874394022676029376970870720671278628957275773766067723020157866010539904133329062999537505051407752064341383718381077654704833691304558857723534922879666413477934299207290541914872626507078431264480711583352968665407579594284776294919441820670540874421646443623012715860429726905668116019494898054482016101862507419193861775549868642001799556972680769269845650457750280706376640221996259231781254871010375069244755907988196104106147668231975211354240796481127194550861549202456430843611824923164991690875277880124206458930737328822341906497890855348058070663122121303353096719258827470441639697943860282657091380785279252404038918012721645323965298000720934525390181223135936791965265510373256468870274150899212068707833246689339340440578925351122119536307564140322928316584133700990061476412469524437726967264254474842481206086230106247049619027384475983696397840710651886659178660625268484979934304446137711565301191193617807876905992254725452921380332388445113790537456687909219254726403529294506139529012705335313063888727807327360224857136167101277383356017365236792005024484565933398154546589444652802206191630311600953428686705138640951423793058210848356004232897510603010451852011408244560845498700729200330907318932393601522254619322906196395576422587091820701341711099107572272606335446167306919254396942567721950419408163665616940393559557916440437127112131474514486053342655267204858259176715746070227944351933717272026917543313032957251608915680885760516556575318899239472991999811986155429688168157772636510933092488300487282637436600341080404107111315203459254868759942738373090957327994718578868305447829848581564829836768864458060471667261117460072948655525741382568162826167524563831825150175526035785807850886053475623951931751548222454849903947596404941922652496230050395603218388857524511263768116180940235263918365315292107272291132727800849274839998116625761960633576151761180057014226683789768846819889547719140599007218961220679337968933039491804472739337153024140929319925943031953965299604457163610955655207641587087470652709275278902135163994695103629398340323172902096546327334073175085184667280064674862233056580607842733006403966624189483177798610197715363103950641376827781625025395446532144291566583074390748761027881130466524858495604542161804718027354046679533945013023127202965380890749942154563172024295205273286776083321150419599288465275271374871679441829712584403860275351658448147381254976004977415597166717714224132847732294237258978660722632662067443217621985708120223613360946350286836849384130763924943651574496815400042576593261208784960386909152662927466617834910723055796941821856008781128245490770353473662882224544274091275513734746135800552440858202434482931735319481944468978394840800938636653511463755436195336559602781299117861785801593680298524647373592798859850946044658337847807094283532560316645082654288911239563698269710560284844763529585109845833505441914647730104204214325637581284640187456061940808024942376475247330421120761483450960978256221202680702629933157547413870481201389543782510157497055194812404624304114707763387017511809783900528133788462953118491310678194572949708856949988141348422260107272627808070256641953263820440097937771373389906048886251450869201861436685804238364369249151790778009130133869679403584732786986993610652994628385082409000871216741497447633415383209604823540023776464530781342529674487653033980386416484274514153995669463231163172159897044914416180230337789993089637481193613319102390402003566729149218804050181107952625379758865582691051554983126443815381006964372357008839507793037482310203523389355566488678941781632650503048881578668184215874500934781506310355170527563103623717776016341941907297280426308708027441484342832963764399381156636365484228969368012671090194165355574030620804077805325164178781062314389807766854872448362631836760208367025589919003744520964198755422938581074178691513218001111938755333907410260577522435311619805557847849416708337737949792513216843764806942667112880353913782636078543913577875795822385711773308622619601638289717967310552401432408065946102267307577397972042422206072505330793227972434238829454541936234053973678034584214328964335892927029389544489851058568815367617447500521294325865295360371977118770091992336879448739441951030170850686202673746129900140463600810911138399303005353418003714202693522192352222676177688536090287754871670751408857189482360829675680428680332593288171743643920159829634545379480474333879857456422125425832387408454889504398653465278231244147475963875814443781382709091685480264462396832573372431304575342688637809490574099752147655236810846312529927174814557479465475452656908858751593501399989611860008983294012330980851725103144857311216151308651894628777849627996372999175437896666365803081698717168771343289909110469652894632810111553114438052183546382229807196040392675239683706197030970522742304076851526375415797381930329669285312621173514451328896841461336330355593797416669798690491387958723384633005716411708655908595397116638570465594305008451747304620433642906404164119757879384353703802188093925951635802136793454549285406119556881069730540530290561030557524905734857930517417125513437673884772766030345825017807309159837471215515421969780457105790671322419721660862169082952427993442305882280731359368132347221526453824499832116863990552553950208307428353973924070296299967227521465463107154960832926326257213297520954727208276448661745833455224064060963488511939333050867384688805088810172507321965662374944850759473769418178451482464941351218377187952770801253150062154889273181256029854114858713499251786145289339280435307591334065989212368799407435014458751987015051359496848574176893190406190579517836179285199055889922410551220178584324275549609626110315584879651628614526003125598538096864321018400849236886116853749336689091006610364241912861715073507080564140197528050921771542753487755315170930009569064754218465009579962000126096043283285261896395833497001375623054980520276285807063991317965367769740489047756332653256112540375243780454925579023245033137191618303577757555705678316762940964373398723033124260027750585526019572715786246561310245080347974725040334237553026524593351078959273385992594201670590179918614996092149184591543191916712979639228680521069747253809049323624714080679105550672139526099490817408868580782973191071214521996078614898458939529856819392291496765995178720370713629954393999574422649338909563619737064593650645630835996030361947460673818431256442582316516403600384460262790413852083710250412395662725377956857921632590516008591414191527660887291477080610373326314775142638375258847287950478028329897378549491430283770270327623059600849928499677619613511829021293312831918896124865001941313607921609409810579877566174652335000511726859339078883944378640872765748652006478838926266002608521580485915158775668318410467361267112313508973858633313305688177691866718841258730259094940679198256385635853133793217821042508753470727150318029803451749912992362551918023263909080001573981773015574582163770340852331686534807945248954166190544699837793413507528876803667182379904454673885280050047770617894979672606155535247298424227266427056711849131537516979868095389140852553468852515090588986745011123130048812634868145999789928859516393895186374416463441182470143263901288055602465907470735813700513209058149993487927578716029642557159028154265660001982121037385082012376048505943622506954497553446119008439545368321114057856743641967532035810300068597270497074349538999861227507426022011553628371399807864882459537068626286529470114416941690957924159499566157548766968207463013076022003122453121374130827121889580976437232258034576588374894495047784074689057040585445675549833263663053412745366139869906820161186396960967243169002782884080692384012373346969168896726334898022222981863791298139455901017485682468135522453860206949577657713659349390469342583551014760695977244808787571288271582169221502679901768861145515115588903955551722789765710122450576976540121945765788858647432904137079800601671051607804189836034616654587496175681036810093671180582825782290318751605241613651511989172012827931126607144743582630306725319578947331810712402310219574055320726631437035842058346404818280731707235139365697908981379774201545343232181869161500962611010349245238825947811265128768592393075175114976376070820355428616966033720151785452879975416105839260691632080056440383951504674886047810018010681813228150041617786154722333516009344391157230494340169071136688475839842461302165215032278808583488107812023667304061924026316068328124832735318340631040781797829482279338254393663380967134100392138414563268392865554719465129149110779011663686449271950658712262530369192436225896158763396915117847269536590962765418316111467749548196111993602465789534278959586640223403638714618206623162251706409111785282386155410186693314898123693090177879414790575467104534664457502975461441850086951731783505625340179984104800165763760170526834978368568543035474804275812547908049333595029504140430636001046498582961798819753429277854138106268260181096421093777882810442710261746937539362944895174047577259920598254440647001124463298081269005264212101104701010998027040018114539800173333206316788428174285587457816449655332050173114601896147605347732131535490553819424942158819676947156215090032533489082103066239881686510591366380551091859747085889213764556050415398972748178884959211814093225826200038781526222079978074095036622139487071987369262102627433416557737932606329296452669328491946847281769987021452745771463326062597036664567743765225701126904726059897224302488793933671314745115789234355901515197187885366306437769370690463975139681827273358600681330971900772941239123497195821066984900321412138899341260190306021414141768611216989278687801469913151576261601351290328013961291630401749453799337737460048451346755427413533466702855492664016436530475702321933240277381578485411880810144701925131844715049557829835509928478445108824892933079063004909643093523845795085429590924822210656723390310799366427265714799731817032286038118022974585153696584652033242809834547122532219068846715045168054056940925115313105509454803848702154259649267083072168757579266721118475001035535579584066797378425183076866586344259384530073275357935658830320339530628072570782984050969904915438967556776827917821309733975281943008413920331025111364515679001080118202239093326558611262710959842141142526857629508425082410400188312735466958669439569655532242875963281761146168752491374370779042284690744116347987554787886494770494728336911001378630858573273865729185559668974536388855572004738075557322322926529943215311264518314558706287392292107264157125855555346585554656551426128132619945365314506105818869258471906692412679031737317252336605545953094111128492096060258015805273707462431036049802205968576544850324672682135628288382248546699510892865130815825358916195805385447255757278074168082810636086208650261318022757803425422952885946095660115987164498511482749616377896063287971982921871239045497658862029379694608345407477611173406047589831735176187082725887633852853989051786933145115795717388988534942784701372117723566104429974597602322167499231859839235691377564639027953465676723924484517710646112542984447089768934160237694589777037033529591582570641896608154425203373406079302186350549755860575760328799282553976067479678770127745633244297278254032087531632733328283177821065132246582107888970131183278046998243307221617545925397128463118307442346934855092633169433696555154121500088622982546714196834950126961575135201468726102448313911458255182261290531194862208796928702159394111458811545009085808015014619662280279421396365417393820588576264800189659535836558813532681422783379229179179537774395043135809190890850141959139916954994551190143426880825413337804748959481223039656896446821115289351334019022355179227817160884024356559603252011350781374828133916035531700080072886345947928365027400690523686994242524751633486035154564713234269797282832511242219757597977013938414046858311152366146686203247577488051945789366089944066254176528857901027869517159434231732117334793944157656180287555442993105958484598807911565561905308691786769972697812108955622420545740804186153372024114461715370998898941695026108690546641518981222529099212606380198169851853428446452326546234028210014640613396303943822212748149012029261201587809922445007861410244174027422357113804943865682572234496414023682967039133321260459432659339042480342335036945438898077367319499441155921421892189194028549127261461065849201957618161899287489767679914878295062111191326867782840924358488791370501511578827155259963528844275153245176604290106919656485436811962900985679669997388063813582191586451001564812059317613396535121255964288233580370499410232898529527606862263892181428695423343431625021084089879331856316826312531824452732124758362387619843116924690431182143707218079738926882143172607280378983471529078439444939863048997229787127593379473522589729547886148485617001319416579944368691466745615663154999865834110742128732766781913007374916257794214887376103119839521715236492145644726678807657922008924720831747320146985546193586882291104881388237095591994345758408475171503651674201968026576987652048336946631602367563989440140375290391535228856326780032564051433460610276208857861854391350269895643565244326020929669698871073997684884403531649210369624039222296748187228348620994664224943042416432890362061700166117985400963395485992516012503834279108642708795970235648208881026689786114611475032732789771375702375462010306209475452056595409730577180821330195236345754725106775545430999726371102850590640795499682749962488511316922423862385953080370019123999968633247649834287125848880126856246978423318868987916286512126090165718837799078408656226678474814194471496234904242407793687180042668763882351253626912726201946097449132545180284003984535692872829584444118603935706076630763882603488960789277024839297004384077204605852101120291770418203232168475429311981668381310227591732620523786344370232920259847289128860674466676595406586935366968841955127263068324702337154129349452270536115331714354862253705126446261767545589130118293218753258996632899919252165909482032602253448920287807035448049382264547464955084369094287348704246987750289766197836511726370522857729493548642120075602476158770885411817340379908812400886296715077760896271710860500488312645602044434990807044326141612422291185768801549269980342342803575355562476776781761188890871073503585544669823478316595846924793993504429132747936127913443646691461763609407330180999665331333102534094673178100908189481006387596838928143124561140099685814247502791977248607312083938336452175212943072232771883744734248477800858791697678665828224402737365151810664688489504439238192138033041140151830237327735447046412030938289841714814904989959737803170924302254497406413275895147270935920842892734068955856184311694135959895853137236170655821888168624319845775401951797617648223490222788824729767203236619361048692907199065251328293283814691961839540614445346293136665956132362343968675628027078309851587795646224683836280677169008859028439767714380983376016543736719584252186882885151806113763916387069371291898876195183711322556706896128850070083654047702497230790428052313203678978107583500872943042358768977865610320048318414800212675112546306743708988827315334337750596414903694120353620299790203438880125282271072939768871399708744658145163780606975732299355130150216317317382016147891617979475421453446678980773454554762457168728870726275470305273382781167566533115682389573184319270207483357471698516201834621880690081946419415512761847213318200870147462414645571773386188698795470008172693984954269856607423105492006447375987928341562580058524540623568716638061924674571114870839588004110211053970065769857623205880221348711373339025239219450532096068884255347272424271980309721413419461183176187194093381797424688514169686667722473272951861112535568137532473212193551427333996553664458268366312075029947527143565613319100702876670155092363974547837816369302517517020748094027791580858559625125446675392601341986188764317304376937466686967840994918762627957161885179074543462691932890631885543488519217086220913917628522932555374533438755456958924873970957219409361890043984507355090979447387448125749921490620203974399172617770221488160164357765514621133585870889167880155425195480172663260869740715483241553318288598700805347521879912569349539601195691390436090429997136730329840413033358229650704683841850940137782552051984129004441493018501160622101821955050688919850396148587784942948620940890342469094257952585025971342193292018579287279321306541682513683966925033861330975433419179438771030810335186447395007278742091326694858774808761147627033388915571804156356603734163451554311836256412114751408451811203069147360901469145210558649829925095500956408754254185009880095631140440921734049654389872720820553943123402581135379978775096747251212603253275574053150579475507831496604527510124342562486000673752914535695380879392783029385902676337949639014449972198700080091575645003019870423351927500425681256802288875091475712872391373570581455290486498236987965050648015469340525592672376027132513146202437196810028889889985964172012826583719162050303553436567027998246366253877495112852590209489211336849463336546949302449961811005744260763429255063533183054360806167139965075761607922161215971288196586744156286572054950907018235953649096894379752673638163098172594742708420512072029568082587409815601487655620818316337549017803126667536396277160876201067546907407297197311783167643549460582771863215601086413227517278203536605415576536215476364937794712109367354044049438468672756062872111460637530614508973019153998751730929257012117554497749489798637154905168395994584714707009025910504224394395949713552083349147715272863673935600654216919447322258013294944643258355722957171380896477439322960616337173587362008693202211826969786497852885027902511605604632380043668553782711218471956765738224777850789590384471008076334185475928799942331296792181421543474455864405225206606366674515055403746430221709463360841211782889149972137637884925148380367075028058865988722470340082482182847092359409902836606356718021819680420174659858452960800630758547272664648805045753762701040109252556227947700742223816158298500138453418255354354184029253699870073857543498958563699426238139089102518468395588980227517353330674072068616424922989720502672058849319882768288558218077089321140236602761176906899453534710502099777998622789310741584422306266644046864247544255269559529569938143012774386452161537903228097712033692186493774572534813517815339441732783925388254019771398368074462508113468612076969067689247402744014594072436843878859644601560963214274401853378721452258103045112213075281250519398316537102233064882599559562158104255299185110415673081977295340805105521105735530351754665535423123567714508562796411939199102769402197389445719988604767871617266121474147517913664948292110103999525998313047759472882129128608070542289055253536313036193197266471294527767250303245549596557570496847970655612893793855392312583610679051348643189126309569440985099293205631198248737236821507425279691383622696293278468402713979898062321093145951139612123011601792336231695126782368231300644111922913475210929705725129597973067686304812746914760785524207245766425682278509565876377707829557681425644354132114512525161253275215266736403180650238769302291811997084069019291706665436635559390526768927198166521303928942885652819886964930060406260913905789144572181068635482692090963893934893572667186649970185530557326587159389895090490889577174990044266054633069967085765859259509814262272757815207772835835529760963900007169499865514899415555667420999769957950041720613239867672137214632607970316632456623242310955573990283780218626017886654751444268087577696707245993394916625954579833935017869679826398288317569570043621891759901994613957808924134705838402694016364426728020846090611768243435044707376209950955767054281571650997740890385299824753366121080302524978622770338762220329591331330555218500782138591553307685198282021353818577528477183616139698292213968962888871289854584657092216323800565552292145026451503645295836425038662878749353990098355907452772768759948603337160366891848535717156060472640510928950817145082621269146630475455759758174587725029160697433113584386542337050303300678024838248177452531241723330396361035004337253383191222711098241140960620774101846641487452820912246896250818238536986285532094744300245467350013721736326972151528928622171532518881842750130783999334914903551780670028065578272905485838187983112706676055676240446830122103942609112284011071894245061794562184799798582962038157892502279120633926522322120650669697303052398194301167476778870049124334948650330209798950688789320689454115196093755416311519145165344953759353716536740761412410055734269389360768812890621379445864669417112656930369844744781016680598249750908247834180909238173022604523138171988294381905818678125632236080264938544376597503836895054627898082483372703736165139143430024116235154730184073026610916068075989070229556140096326941501196866884733704717543166825698606687167861744497664617661394805845374763264857312771017320525132231203121629326114002022335209621709018469754586406520098499247612456342239473811828457428503699795236549092371139561850221951205626235446992464084600681576754355691104187948982867864792411774098393740910218950933788525875441832020086153252441182563926422884169279338039961067478639516968525401961560117012792207255840297825870808741510997760422021651770498938358193162253199442686480458957629418958242165891002944578322531564889496309176535356569468723888300035018998250877750374855313127966777582029295324624949128488674560193315041945079045718830963902666325110892889596615515365520936721272209172346609255036390523896843467192265507603082137064263088456208131227528786656357491774751338826036440867443251791194981672545316965309937522640679956649424845354689656805228884690708220480983036523516570535683219982370834626711373458548093289013192077668287550673491231893980037195809141060831283770579533589041832927287020305707967524117972083961981256906578018720785156295899350270490499123794717659838092861094577228445255145742504221039100090668169699580515039380086541630878519561611577260288727613147709454414771729395094620127092494332175036770222052932192748827557296449781208168750577140875630719113105543133176111358087087853220574093542723776944975666339766728929111427484992981355469742752047363769706242774034785785140622092960709227401743932559237835532113998454526088870634006351621399535916150095567044256892954284178379574153836710940593528067091375821544131076927276701334197757404130805871055892001251808432441259073682777605524668970430472186373460675780402136698195033734379986162665596142910085839128469471246147272043513529336040362006199177495562780073935408956839594585996741214403663338180590253029488786892358374003027423402791019084132116816235406793861326941296900146564513508358512603666438161199420007999166849884890768184985087828803164074035469877485448414931454147792820151321249205160317630370211995159320801233462555642981341218855293029710734866015587848375065681502849977380923972078857448037794686589594865985027910180928258040581808670091623839288266603038092611467843224855899659742349785278504094418833093628438152506044765896730578456602143213892448007773887895284717754531601793248171381062152537854668308766147821930541135145571968973295862503763165421360265507099582968609489609298446940894496861490742937103870762236125165213319749522180152352946685277236110467613589624366377234997911070904692047277284777269839103218103381348049671856960336297293709599503300362231682118033841177106203428552898528688782070738521701110598841825258743470467227727715927751585637632308807356390925325372231619893051120885102263812378153821162681074971691594690637484442397011115869679671303391419670711330437898807428268845808482246429252174071681442641033341762872327997861054978075254583332100639276567558897241041931408892526514059091781417419732460981148598101079019232943748322035715821058649950672058408853062243915533209735896054006870306543013492511249563943642444157982317802816715421546450387288327153278449330945623114134972654576196309316491283164571079308883178802795495209500284968413042033367016487235753403656498858571636186908940786675191503076890231393993160846032727319873135788421225814747027498825425169653980828233649926915974544807829176566831974542150401340815856300071759934952025301099597209295046877017075843939656885317703681731066639885091411137077847708651376491031886707099971457419737816084508654094207375189927180707766317634564492797243278819623687900073065471571956552835801431408401488856924627723949266008917073068589457812204272866007303069963357427778491057487201946055847679915744770249544352034010540102926903192386129344286183208890299060399805730033419248968342011237695616247795693121427468993395015584132537855946644760306893667962502867502829452641738336891721735496863846139000533520810607988796015835874284732989349332501708390832512174229482055566014977313844228133123901557903430283225310360275473293708833499817191255544610881623281617730529975903608200705721107275609968755955488564916993094547091448249029661461480485858436322414154673765759280270975577740640376361010059831598860747839838257395899147804823151940730287997741714522526061061441378430078661794753964461357041619444735805116939933621261643569880219624305711203751642790467013516796383421184374726602450806157047602928414760360250017434883241530892741860912987176608463945828550237436840411870937397672848561373878384619521678697039826197264397749595231463578958310256097297244711098273636233409661545904397049307679389093735757328163494319928197750119611345842409177604144317898383073421953626785112032366850202437027166853937838057240556178987332045657918301784954187154335846115816976460012428416075399361911702014641272860358911037006184671920122665439712389790139361995671558347008661663922876248909594674972894225188342021293197327153280665781699023188724406832366972221187592119163314211687624460180601738878225370116682203187229096834808376963271008123351767689397887319661766377415245923272189805410387226146146036278694009623876329098810640675831778853486204425581051660713618241992530659889710187152327481104483510081686641249586167534993162698299521698061714157340503656352916108872218181582856230991171162730507086309968522421670874510084461851428435231270735532734983805668513095261647449789822851597201317612666243487360838704929927748899046313380952642939366377770168692420892256996457314085814159977506101670998162628071877827269644244686759642535348183834604328525326876265827044343135340623055478131143125397797913641830630650665315718472357009209237938825973055668760536305730143276024240970101387794198787110822163346725348804940327451049538937449881991823328542430521729912926380016393760021042686619825962240787042158427618245941797299575649734683990620783705633804627088396935809929386920643165782626889212002856966225418040213602437085123503507799740937612663347208166153034589826443554731789166358133018373894254283056128255076407684441443564826871855995249631420677325671424719658857026651902329724354531725202624311664232374254545836369920884543456309563549386531425778784400051872391016520376702377473919405448043811973736709287694619692695759316022237162887628732633392247110820815234980428920900101362801365416967838365159330093374309034382296550241722357852011479079994112068293702134712675589175071431312233439322068682359471844046750244156541181854235165551956254799002429335638043030129384023253990650393438453715494721274381120454515102343409145199480690259051531400006334526474156968073263907392154208749203827256900513319468318611900071084345111590918718052986911939427947813236220166603838647043369313568499280321501338053679266754568662917826944221573400121748789273696518741485725062594172399389083104714704562402067988289081041265752611606864465800558731145766781710378762160403804567506642591577928395580179140538365405986734347660442692665443702495770739151793767585760026755058935332870566473676975960443223074877977646071288611720572272806687696187942124594487388927918567516961500682772351647912312388249028108775727319959664928092588478746798594202806656385704954861791794627979814009753704827797680742152982321736187104645602717095183557121488236954549817737114907882914322794357815189295835283109161057600616932355827060196383589474835444943231193464555639084315529678996560257999325764349017347371692488227040784954349948404603309420453482073236328526517661319087699332333432310300567366364936251216974710110608845159347332968244613264222452905817604760100839675318671735881799222190748673997751614271567026412949838213603789456306665972813302296146295586250665534483934038945925738789690532507998054501509906768314363740290709467297145722560549070707071162149196372282944579200150735654110931515876594374821682834060282205482331563120721897631440672882355669768584681142346702576880542307084476377587245131219493125890650561822659490268650112810713760860940900981814607658969615340047682928406880387390820010374083073747630456703007701860551770944823810771493365780876913478678739804339127630635103303772518935866505340700040467140978124666265920834214186680831057943398533178391557860260283060544570495377446045296774953299079745013696288858652327291122869274465850686723518020104625338506880399775413173607955168075988776033976963043148899746631485030758305883117557564775851481037695611358529372293425895762391566117359037105357029145010447752724764123139995574591309842460163299657907892455191721574357338461671893837081975035430766197005943295058318754769815195855287796713950656842032204529542877788719127435890816030596724903182984270452245169831903018351176536969351782152481570110230848697248845558579939029997362673298785866150342691344974894622895690527267140020180416439454397021839999164873807140182980725232067668289889156152801585338126108793747602768153814933565099932198083118421495279360431699044908962574626660461812845052730240142763154532101584612739090826489558083176448523621025223450876273524638433460854714325326842284193116318756859451405507932519959085800443753449149719399785695434049196333304750436881151514248515156085142585781043712677799286007228672927581825450623487291458057096169754375166248003720066583565897324725194979044696681502799002492930792618805779068743173428872104473097653640015016962534441202876164798410962954571298555048267068635470198457424655958163478188906850196681107570180234511463874880872885759736298806879098595179705983924032369427875459461703003140468073420524616427645993685894482872926292460303112334924638957271852621832867369126293411383181049566782694532317129924866220501490501869174196566851468563960073239492839896369114613866724551253813983773075287096248067904683384508813218249898128736524164878723227611868372272895793202050021176200340017131907036468151260930484319355998094506150327918206279835564713158403408728452061357160389206856316305681132891023567027679138528519442415792906505765500635596454868911868469214814849814403124200368244234484083874087494184785512907511980777882352498358199056090819632453940862936153584532616484047759633125435331133287130785489793774985718877925513495119909956447565532815660189315398937003728011236244487096695520558424005476757300655680673830136954129416920191438961066549973174973087658840960416537478205976640043520638293953313338414351756455991231251190988352241584258705522688007439270459678210074977868200012605671002456492953995736346277673964772696458275564491336669706733484664947565549719429462968708876063445664052971420005401769279292984223604008887967706852834843688344208142291575539390460456743110918110050100463868504739070190585555477595981870267005849606749564647358080348289844300148289138385477166260604680127432804238245628566573669960755463120820979761186370883457128901872216069095145929500235994538764143580680151291715564664801474066120693639586387818329330938786802060491811285364479049537176925830905760680440197820104424635621155244608963104760795555345884956125326044308984044127318158370667915680156398462869209219178850495552244771447632001330161760078567547002829171011855120742987260570972950331745283132102316789314377213499457802066852193148225925015188435120719598938434464166181582842437576837533004488694166001996970884477691372110673846339832776524552055963194708454077871398830049368873049892229347034369638458560847128474750937868764877877923556927365084658729364983865741726995184582154594307509747185315994819041516683460789964740754388982711816308851443002110978672078824803646112345182779768341353550510546554278958852209840118958793010912089923063325365997484932999787588713451808282215004495637977888760341553823001714501896767842078265597436339037712754388441597812504051963057698802086652768541600852849287595893558952141427852369971916580545646043123622552716746376451365678218405929685899243998211396010423814328310431151101814054399711012738845874570297366099713502289378286966561354568864641160636895634708798537921879477953761093191067585725394094066646879762986782022592466812742855519544660759801759238230120401467984901662704282579669669751643893140116625908254112517892333325995594725313610600159348817268849175162661476384472885736877681706714368929200873975006194804277218852817627619387751239802562360390101499461412835230285981674163260375629161150264368290431344229383970322908682812373964533873875253220380996968249218164441088783139122227821295242756177216519532782640779752781452627094970787744855273949288098056804241970200550651900996245818543875661058147986853950550716385931673760387603031357648657406980655945615976635253964378079370252271655014604842321347429595718395351684417130287306432880096830998318133597541975238379453475384727420786901415725965666166676972153633464402952190653194858239599690527975981592924681368143752802033750142319037272181450595382153308091791544014195327921758329581620629683136296118815507021801486525661273198491655480326268674859750791798652486686829362975831934144395252225924536798803935881850357809933140623550821366491780464825716749684442947924006680823507509430272435351164029831151817377937020020607664728497380435432035527927007722904648474386098064183977253747638744078333708706789359340892928064201420652833363948711011613464946602089634312421602965590763515634302948543626932797548678401433215734659053380447103301957965940255660961421702872654118483284544730881083895812848035675589753698707786473883422333006433031395381416173382428734778830473546508108142139842354295456075447271995756523803068057439994968062415923161497513176548868774215182378943159420043244398477228274906604362673687895062276819102819767709256292626530472332014985157260550665708216632303754092649225282960030734171382071558638559959470338863455293676831486595820396056244394751143826513258626812090770786188865007255031364191742717006355983288690749159786555343362545110342375604850105711286306611207430971783248882010229975889424435843227947129536776205012625200966694606661055914563293136305918333508935126511166905364644039768337549661012161748902829143341501805419203103129134913579995072941137855775129806534189686591722026515163207232445088267802054269725879214212193475500966873579997414563667225273112319920107265994824982789514165194931365208268944366957750932715633289777092552618026030506100824581845957538096761481297701087544026513732852909734927650141065180510767962208322109494034507266615502108137439346016433943717181754623550704902814628561080337184192110121912523479533184448634095745076131564230877988840776639558426024788160612768510660894049780408195879076971003642863855203162509479933371796609999501686710829233150871122586409991807322652157013611826759633315679686491734424892132960018592691853341882635424194631099015023378407661875481911134052248349086282836017082447823376999157785469573761858883149700828910117875464953662491191584811237098332202324814472550199200111460254650000145832574425926584269892957052379704938748308347871965933908199579932273390329512323041105252384306622921565362153160807822444974846929728294814595591606094545931284542055874549752916000513109863064755247274193451160257772442551269138573727100865980440132012991787742747590694568509111864491804045110346394977881229213937571579240644837679918453599726843427976153284346484482289606926274096100260297660376725102685038658753617283350792505349878837846088688452588338079886099019870468497861724956832425583905585979826562364098425218771452900485940843677400114815534957853102226094676358073195201012643033146763706764182133758329845502784114661387720276455357691015221526214374116641671837560941886681934577161418819119270732947238378994144324377779306268608506822210386716401501639440178843463481225162168823917456542146200897056399271999925531555036138606370881904896188439885627852360256460997752398657702021707845156058088398063853297214651477241184260321176916201364632560466659761810907591183399400585601124127714090725585223515342514011447804434342307839293911780024997488222887365025676633022553906229722366619850026261024870419491600373583646808670762904980414738096024458862039894660472093957091935607394848915384409151651897212242506519166702359656268539585416884107870183297372120383021261101440553094356578535716335207920234837770524184797516073047902301315847843137869284660892316729218028879630651616658042337871579481059264739228037476445502822966562169505290261278673409526509385332169379921359698826404901713678879258057101698604010669397779729357162054019044830648632174278350780811590154989087775153798341177230299896456951460031608367131868031586647378683303893915060062035235151432116593200409915905580616780785490902573873311175221184141647620538922588913527957310249048013853262045615912134253945577084256210920861155503920030311766957616591075172133511975301203695736288404059753453911012181943553770744744230533708510611282802156933460676230872744655921688437613821941300092511878914396593555207983326650081973339591628862359918236329863507275080820892273096593484582018084871914981320904348050062880937136181594573220147416591528739351373061086898658945107358471792786668535118610829002719974783399177519001643846737600955882092685837094447716380756985284091413272198488710492699920708013988514417697259662853907838131436398346865141933599042310568744200086376603195486203383100289849453658880082095044667755656823524908664123869521111678970674778331712560183680560072458891157678048528343253829251053029902834478179806223232787912102554570326203176559444229901785791972228960570348382071610445489246186479524605830029178040836421238030446434273615624924182848288508871223272045286833058781991388417789149967665306046089196243535155788182724099751544516441960315379224251224064922082695479844816041374938886061693311634963070626763272912613282855553306089120152450328558709456853166820278070984402748529263750653954653566001310616060157003034819745780473538046666502589363151656827538038098681922035168870208500100043354579773536180132966253395288179445174942085635128730424990949142249902105850814480468770769033682917774286455135411321446221593646834006041901971579043795061617448326272648465349312636149958490001215694423214617295842484165072893321085535558398338314687811686589126362680525894494595436085303493386846441393932011927765798318105725346995951657263543545303442866109009321850610651485129311682418728616030331916040380370217661438212624527570880641936747129261243464993899589160849026582985032845880490755077367804858002134232513704436934463802361079121372102749065358754913479256564465729796435905968496619450105907438919543451458034868594186708455330095259313854687544045872501379031302470208923545227011649995724367093576696498066550199840696657196109191430429950159698746078601403734271206061702128087691372268160192674271371581498451605094501846435308065858481147313636225585475042766749964694891218448731410313986855889119907456795873641873249200722732442972092658731170872870958574955662119108827339975388907701042859970198269056824940323314014173968885195456623618647697585194466732007618122446947986271880833482422018671376135298029537182912462270443853172402324389737128977337921162544296736192104871097575433873648935923635259840987020777057475729983973904665727818328583417537251466372712342159001624048873447408537828041091405745675979130870882823391491831800072916335055356758292586503186345274990760283627360185250020323121585977237381536412903289619362114370739999886916772287609782025829770200954704969120613712785396657078085568407106678178283925803823363575855567651512693759185698443300607008168721512145756282450533193578336261998144916255536314384678730360932048727123759576083239775711019018722946244276907993947144942999180621673879831678431224460391565606748445085562450287116931666882156069182983547806341608140483550234055313947604460231667012180599388357384222497234014421474353533890841786448934543683413686949693155611144134201463006052786310634174332984556664401259729671014964052295261992600792371627956417258575556960807076707229279702625719154797038234229256300656766473383088727190629119182377479109150379444677543683663608635179098119880179497018528477753506033484410078153241101815781196082488792055022784087172404144119208410714567227091932780903889383309057837812374433180266261071276336306241075893333389959442993537652959657807783675440400997432825879549617866634290739739467750850001042187043920455195922570032078518612425489720446728351893249838035372326998539545972895341789037132807496211283243558289568406998615892944073589267954008329018780911177647902860287891613380701988763603615235361894544700396611308610527562419708323430403111275783601225556106160153883547882021376022245166164998840883893666526675707191505188941835014471737352014723489458538813782004324248829370177655590221256808177797500468339754442870426595029183954877376734649367423391117931816883307112053143248516914142741107058661254237471744738614208868667792823880221729630925113267568382381128194596867554484575100539591125290874320091814636645284279885876033063113499504112555897308051799997316303400576835441835352677183023690355593222126860491323280744650496381345618564344954051034706483761957660169731218513906804634444669148554813221834490838951041461052350175027762928666975443187536877254747017609711378203073393924538418009845284385777845110842807450610265612863050242032250357455855529441856165361234491389897676462115170530813575347232164969051359185397906216543015808172190258009502920533669684104424524222905966525806050291686739914793186825613557929016871703469086845653965652424371573093194675844779483077759602840098528713684209033273829371693379646776354673204892533986235011780865219956775269254582999085315455418543915329049643212774814960625247997095039671864014696731571597813144034046633176252233474839024907088546966072087943782671596750822826549486518762715616547637349801331240289433436104531427647917653708055577472353362899380635632169323523534227839510838572054824405187378413654650964342626049903435843343860705685408704877074422033161961433651357637706051655467519126832683305603649971390068099651408155727858649895586569409849248053413755898138696057852734934373723801363051220315138192381988680267083293139600176460354531267955805477417828217200262742558080053461449268833627066909745449934859351674875038233517548905915428494792661835670675715115699093096565499568265401256743422840429010797502837102349184974454680024443846312842927541314005555347772421637688478100003210828221797970370608331598739885807234359949565125990500116604767368239372411306008394614094501471363408772994178730142090716407019756763414782838187698071666082650247128900464880981304025294877981651893836816902040293859885892635602161339391230988697850932721504357345030310701696446838187898136136236560150538800225995308723613195407166697548336568791037981021392834916850794045983948854199728094883492583542233247273579162172364710579458332485669922157085538990590701298369981738208111920780336953385018468034009706087622535394304175360920353211420567170161969872156523882501796327947793847356813272107208748311648366706180176361069562172279635298339085726856108270462539593156983741621456839188105586793647895008593421069015247239748579301696543178262862512883642003826251972111662067171544972866851569300131666153658754537743508571463970823520341857040647716937274824963861536547851161693641552932192543818315854599412704496406751687834606632565788367795718351135717698015931628334250326087427567088039488242301031662506235135566695786400005620997938155091491107666381283609106610185498625148994254729698520198262361640133008727720745982377372684233048611980146307550939103503250839053413785986057405521354617625924576161926735267900478314251150211210823933428764941405583492954927033839681734200140390924336855489748420625490332302459182536151109798722057040609081941994021701569650356712365310737892757993362058926657080575834122887496590930310645104737871624337487072873217859618520313972336589372301802949123968588210576591736489960694146989117347845649860635665906981740238053129757296651209816970413245212624768894559029581644679147302277944202000750103197462262991225044926233631329982128719418398729992386934579582760268533831046304170989853490120638756154031103570435803059304716996504198375977341685546289527364747169358595022281407216128049824502292003429448000138841401697485284267170044950912422393980565722977416086857437636161888975172764341568456845729696090503837548782760307868992271521933558143750152155157716789810893270272100206941350237630930058620276990723188814507754606030391421649468867340427255896512445979257579157745370171913693531593072529747813881214191508015142900207959048365843965248454134156698107341660574972845315721799603768338347737292927608935172351969570946263925587003336167243827139983479963066385279194566116338857182053760033712647993919768934458032891675809453143567859328552463328207336924495212816118944495776068940691908291324590033431768461379162716872806057214365066877478875896046894621601975044998954486120936190853912759483786148223679901763004884632380012234620714380544202978238883973989343096037721732431834942482332418269214553021770695601103187779143479424978671279304207673358123244117526977039391459766153421178339406710485582454296612725108068110459902294199378090721885148012431852773651678221727436119203414163727912269595748701671583441688180362956636653075124983680984746003917483458341354910276425222785693986746630026156157770927676532548065129756647110199169689394746579948636498390931053949336537610730264351770883862851272629156880736418243784810770244107385584016333844608393202054851206535034234628035841377708761919736621153559993183415912372957101760414745946131718158101211765789881095296477091887765487466337086917835867389307060450525707395834718444431522959743484346787183027364805639775738580720777408231062311209770727261660499848114362984374878764562732101967483740175138247580777375520427204077710284914996379514439960733135530269747041745734975558511821066546612268464406249159835174868808723180232843999252140814947516327017135033056528381936567996204098897876743955984599887921050358350436641433311860358360533320610541456815450080301466733515104719333304781044189078976766082459685954308813059376627353698595159828476451223615912113222361101082298880880027864470471022895608251332321341047543639546378006285233525785271040624566618136575155439232277906322117342458358861918471888081109619302315617916258766935786579245390652540474471320800606890671432210365715307058983957684525728786381765069701763673413408838438126066372793100369471535856875181876004033139311322663998415057161307290661225054540885387197212567080057922908141692198417155378211250979256997462254371283935285781188973048349738602426581417227795531232310416264640200501466306261100932291146454005595083648110299552854457980075376049436670620766206246736840964279870159173837287835290879068171216793812802908091601224974479182995925184114471313263987284547272382736920810086352405190941957297560270403908311794500314572400663202407418386377856869073655839582756915454521004214474738898568778507758447990882143073952528542714104565734781261209160003719959176320329044501164547790511890151152846495579609535595554960067151146687213558338088766153671490681196395219299059720747659911555800397230632063979812991640357778160638623271003640515000975208763433211942587906733467669160452594642907196244029574129303787814250428201995670868883178051018090021409109944119073446609378108482947043356989810139821930577922470749092422087471024646227306589041603040105350034273715727924143370454163245522818307946090102964889939890479310028598633855159543027829036286728961258845668767601074543691123490770930275805666345993270981908125481784988283473292792241517265593350922250266097394733450107920594194338326280278014335845833987130915151184812144724634842985196282829562804318655390667655734624890945923767077025728325659685300032634549989121466127740578311648135705811537381265401407492449474222141317049203857827976556035022897762402285685567412767254747567394876815604482634592446016424136983166351562044072211535129043659419975936165108823129156702178786132336845782924656238687546768360046257419372541122173651255642263328227920809128659002864505410918963096288212269705898624214144666067372863293863397885710852696234037057794970164160784699586059434839324674995209927361002404351376101410308930997914468076522525161683713363264107969840905423053229407053415564831964456021910614738421816691560215307296596046813698862995684724182303549373486258221158090925729826858240181967363559030042112585519361710672646130288692130681667002577896582614701049696039105127893316900559576174820461638442200454170224694079981865882687634329097384137930543291897501468259241429024556736380829339567992691893465866357423224893877280779666517323965654798999686885150511099664253037009894359888587739551695385167154628102005246303176331249159222986438363138620655658292652080093333062171239724383467815828819552466219554201099817467020918182966348198040836613607691234740468644197285952662853540445668008034631540035798502167879480162632556540346536441992595483362530239478758268483724160841439541092451145550186085148838613389618384040466335103609015813189983659081680964849742747224687543191226983600021675399162166698128532178953889048656889858454391396594161648580856627572908665369596138611842255895816120481625429021588322497592544956182806532831073658705190280296631643277585335182848784205547933733354076988660716550152137290702195317627324329204495958276195853833382109892723833657926490427221220431640843281133943885241885723297351738652963379289535117650165010189652389536023988444642692449566437390516613845402723387314637011710971884294504728184450140522342192072839245486354273689896460744119249987698950718671195245785975405522218997556436033629254389429704483789129729562103649247069400355503868001562765145077012294372384935362848524808811438768122052650737406351706629899751418258599854818183795129209561723743754158681146829224770031019720729900615824970873052370139555300955063610126466071766863622006927159049114634498219135774272942530907233628504335576736969043306450111853728016195978486352258147002876287738894217629398524243930783437840416571796883968231906532020547093453670913550062336654358125695781873329386519882327959508789358536185250897528168900937041108204877170959653239781581741209895552664148496328365056718703334891471462174868584581930465786887375744370023690265478382969145144124717435918802412561220650157270464039898750011490628735926471171679880489747790912579315775687569736683257426032882722986907739697720583770594408615083096868364294946622919609726711085844126700589037015884663219879638936634332800683105542384541095470992540357730879593828151770319589795358203027952750778135397983574728133724435381344117889455851937062500932945046596081411421793071051402472129927125492223878486127300035919513981323485313733516870160044579578916968127858190640864719926419667790838495287099422330453132219988800352115450892545773191459167886791592678007111839453261544969940929603898736090761131365130228803466810105091159397014247225465986530637143834278850765811419310721368831753099613622262497480620844485436886516423104111811078546203891685430768385659915995054733138656095389837691430689056609194555500800571076165214483428185475076137961941275583840798865372177633868312516673675888899424785583744188232068543040224793802324324156711254310488139360551769646869067831249278451386104676792337859564951923113941561130971895459870977111825591829061101416399831730377907334170783581777462517240436214807585987252294936899990112155716254353809073098265601746069059398433989989893771284844847238528537402125579503442058141124644641084662983606566120678948706583245520672157221357285981773656645341972895171794845936538288406385363690025866455446944338566020770448104161737020904325461724787621630063599792356647594046552715043302540699643887695050019227736770777549057688049826148197054481221760496427880362680473086633320597090683629325882982715049599732642856732603645320342007233182159342133534943899497972108683445694250728638697287781333548886290294248808449487010840839836919404420866034097699660988102811260778883454050823780556823949852811086233899305718741597351195273305879190423175698125228814638210160354142149263465572331515902473773509614631238056209836628758640884583002868968433549453177337020602089545020865819549582894285743218406115309440127199685330237923242321591410491187757002633259734050334988834579308726023957893155813971503447869581457331534378471775826543166443165461413998086882517004241253532892875402937729250720989297636045120987340349682032104151001076961967131891548756604924953871962282485723953825918902356305986367488089555539620329536872693335748037873921385301318607968380822549662115739122073558018048741480157205978420786518985852563337027105374883482907198293165598458990291100878051344886125786333555085215438486658731113378681012982072840648038704305298636179995933876237240409177176994542327983134116068965664523175779918236777741202488440897933554074190101701460606984915312328784859547459394329563632318173680557244709719534085036013251835235541439567441806691238818501612756215699108924799097280325369180514131892495079870064828770641136622732393201998095373672588011685320869442186014903262494320157777557363560414323364792549779394903712594523159456400076048072297581905258079386330410841619930801399318319615546142342231682983812161544632140841360296250747972706738778339059430914082707219099780094798395534723406867797228508913588958699501924179187538904427320898108967751601079847683738452924612207452579505267016686810597870645518986732371915273728018571335799659385279147145919946218008313663136697787860473086536656664242654961874114536055665479115067382802720917213491361593100608275608778894604353803906610875672549388659094836157826600138092251977512782862693320992384740450915485133598300831586094207501759468161611905788618116986076468759894271255772976775066803309636402311831670275836766755303814849108401767071930654697631831345645363990998785693058631786272974573962218577589922701516775952362586179728003538156209595577615219009507021112412192264626245970306487527269276524729378791818248073299691261721148082624092599952715359211213516715098139863563750869889605642553915594099593196013603079040988379812674924377434960030245892887658570287050332291098380816569735458898141397509548058706815226804358144422857130226983451699210579317341195228750225314525810077050189989623455290571813507242524886302988109071403683760558020752600277592058639112224651560511017113314937897134871038289556015708499649819818296460447428877398143741142381496660625536496407024941875907919115682566365940111830286058215896480246019405754371246038625977392577782295962951863916354045404652102131746257592247001523755436780500189205840570612568888943520990908140383172730501717644676459565590350308131832392226147538453916523091505918396190240102122789555540291711389404434833616677380468094143158478937578663542448704662657010125945043852445344242639969936606950794008119952997886201979614323700103613609861584501146574265605946264996259613167783941312410551074418883606833119856296044487283055688506792655620855842317516724152701016296453895296976714065022292738802478680570558343328355011380107170102989839875463814190010064855645897845758080176225500780932937001552507273591460016142066073652182950117996838686788672734353356187333483250877330627916137525486766392066726097496825442250857356741906844425144573136617820766788092138750672678474686094240122190995274936658651425268687727429412081905153318291169569021611463486348548979640584695371349367749708262098513552008467871761012904653406639952888786959239005985292045232355696757513120220210669942194141027136386590026348283888947668363732603002902214185120951524327119279463861590402664295949003675056367282352674038576576493858512483223170743627151400163255814299400986505986402346583239497400480875443289913806353283227183799016219685861563352760810545182542174791782719139495933025502131448554654253419200256862841488271796315686694160958740264323464263003570414453433540954227032114090402307754480527273873945701691525136210889551020865310882280433020309331168147625553880073865420620046610289434989216315533905606424786826629953976209016339909182892568544697244778185197633181620503480812337067283935848666936721526996720590397438155293377418558469629648064634158547823991036170540986453191381807257827062817977083831320083635195928009775962538628521141518582610624012278977577245032579364464656325303130940036955115259127904178626541575870746836007060664190454579416700125225488420763213174031389743088640996814962151678062439192499600712136121971959823964225820118044409349021074933615223413920995523759358128602708731496558867014383720013328070624217467416429254989986021017969907127884392591312693922101275288683977007435523622975308952120794315151592720947767398765562370863104999485977017604144712653188022646630545414815125974879511412334746584371175867289332680722525435922380570160328760157113519219906538755560815626567008487077755270363127524333389393778815937548207623873630236507524309500677879232763871545893657317715737162952520552107625699725554449500366266118287067623487376907214875728067599468826313504039692984492688689678774363519891304217418171803531671679692161478916256206627265949377738594247186253328253652568362028253392607466015945971853695405398030197458149452098268929380635989120479307716074562823737508264518591250402001682464594577827077534428034441244469793167120801412877049298080424450153054111913408587505237888279094959672382056407957036901384665269424843652889986639370170064849002608929316718900937394326777858094320908679787442963648837661214281204558902193749965262387310816898473276707076316052672723885590815139277248139979299106633700179849757091635240184223485548108081323985775856452800853082125444128642101869721986648827696576421640002164196546573904698223719259062634643441789559458743027764570294956246230748911940983503091383639502499333069846142708640502842513101746700521146754033094655451608254388281896651773986654725272172022661087874227170178841545312138691951422593594496772069599441115053141146810019729268697949291668881506782324413162576295512845711641130698119858337497644155233018666094203625951765439354246060001462364355941446633381992061317766390609433341852526917122923426433721482078046401546315720686517943876348661620948794500580161182608045590308406890110102909534775918069666102480106057986256024067454965016064708678975801594378184667910549269165589676416364157981588152665704343933982701724142535265951300931816363979141603688740586168476834069142246125260292284892081756932552312818583287495863497935590372889130659152881777977789541306077011761119744662069920085541447780490417207816517077080274319622271929994517499440311086066601138867550304429504529114202910717909673597961999464032788494439433251905546960073334389753384207308885952648225836195020738793261238656562256166997381306335690647785246468469346781829061396775433795255534609881118300772792977639868444786302012574649548514296536297685220796013702142029881185373297653458721641179199960802914722739887561287934723420718101599945559289724093308245556816480979834671416387783839555838271768521694800022293133652232034404448218765541669906953848132598578288892823103816224100896720332445310407997729665608148663734081814809634623796966672573372431538288312434102792052917732461450868242992401172734105307766916585858000353419341053729681671473060821017929553610698545278657065667084276425787798558059034844295214562623671788985343411889217293236724733495807324459720586217628404247431507289070860410614151926001264471841977842867379794188503444747297885986793622637440205698959137344703782376718418552354752383810268256843277905537516466208384399682985554430690587784948353518982227997104115211967543204653269757901202533943962522624984352371708768884608481901111558740116086009401871529354586993922074835942167261118493540750819037110908100010840637382494943126411707215698434867128741506834937499923706839611857730126531476765016424289068769771145856895889805121466536356167108510759464565772838712981429864464216157997943647437009284791585318064869560593300906235570486482441343965920165841155295273420101953197658140420362719400985865880985084346708919638434917836871422741382582195244505991073076370414400053752236276698844572687013873172234509232057377632552308361536925920157088105174533398036502426866668732599039604138295249492603504650381973687302273419098683481785305312417837147472465106147321142659463619663274003594017642933254193012752011258440628591402930279513492217464855259179977738751820160380084567282293246125586216066293718590249650968592936494458105844001941425921999571479203892615109225753394226685299452412651004054472039356274111671328654078275940660727960287146016494198472432871509078622701710798417967222331203947721771039536822025339388510895229329381337532848501193186493886247725690500306845288486220424524508933446546511592443881215230363783402122120438958329938294695580064873684781446346945075586520133391153431220662809627058285899524704932286514105784674853290565327998524670992445125200627096206290951680495527154361603521105688872518971561532737410979893952366632848441021760026185933710718531124586942203586098685225010868772386875212310409613264232268522923239531571249338837930371978380071402535007405586649882347683637693608885225055640091453258790443567054199502300796959257351512167738297093214897619262873471016669994594460057799365681126226625089863225181534597205073185985035125440367356066516021136199632308737534476700128039521924542827310034940067397397191495295569281086003522464568638481241816554512905703838717075718821611746754044912184627221350066297283235243575837194107904592487190799776333532220278681409967326552890056337161060160867164750754912777965413911761346993320105423266865681643965693545355063462232988677572694050583931015527470698477577457391638671514355174834484604283926618071362830696387311202624336979125723720837711762943149993551928312151651087576661263735551767854641931102846672466472140358660637980557380326361794099463488337436908161819097117189718674601913594262465313509668896770271143770827084454438269669153357519122163524373766639942889041888819463496754511299630837921861765357878853671058797177911178554669584676363207221612063859816066883391265693380045279240802023382819422011793894192444155668780234890598166381312323292455966960124396517474691335747159994893413631779561962640531709107666364910012478363577249909289218760968385086870790744176810921042171929884210225140008223666060650082931617334882525142153961235652164766252169758099431170515875085203354943371484432917767904792170625904404579279229429700553145218762725853380264394978647045530226540913883602658777985036117503458905873058248973430269383712519343747816745203516641570948011677099023835969983301774472955518592394250081070862603420975729228832356856360447352918999606097396116934802655212712863200466524014560393526209239463889372662351747657739346894492867330183031041475492227826540072440554298326637426878514871178639680803248333417226511163405720061420306972102448955191721037453714450687175796295098051292734701042640094325068352122284482874215156327976059993329718139775208016662574587506905139948017283279882087417926235651862169443025719796354600280955102703484956755888042248506886471203945002007571408783736294697821537947447797079049003200773432810514870245418172668181715000377878157939636055157414391570188221318601000684006950456252773593924712233483647527926026220011536546755192340763739503805424111439438079289175456001598376042875450653761347896521054962276104558670867995226713553614372113922905004263147676553621177573261371537193030554961913194004803330060538820206004674825752849711837952297318900924294228896010201798846403132670052638216299474656378328367497542065269523508057158659635326468105991912883434062418225432328297112966877338849961199509161400121620420933491501804449050474570831107668762716011510776261502455085478298609045471142462631868252742935638767790176856499857666971162072672318613152141909131897621481873129092239292765915106660432432958025546355841174578787979873324280581849462794110607249206854537959345029333815064057581270750298511571164989289316938028883430784824172142305647596717170000267667244227045488604624405820269727674613254879343497212620869707742956170480933489463190887734974606344183384325281325326076642321380665572851997695563382140079560078369554112977223462075813071271961910552621780743347247223215760413907601224878785485088253760163911818520183681120271888337299821620568303766404737596108359333340311466094731387904349432159964514448907794513035884788741526105856159649926885530929992134081248183034243634982877199952827616273732745011853628682368116105041073749461808397202119487318041831744289145711137001336638001625071592220353509625648264527220173701660750221652611603734199025839722287118337987756504029295156313800721694588443633084885600910448079380872101860896579601971660465308284349141679102397270219481920905337505188991937748123609937142879065549694261210263697294752462276276515021513275994126950285832470037728216602545669487863619796847424878662354254481347279536764271779978415086205806320765315764555346631167788888832716586916374017076373079370158927211644082861018082543750539041984928494968637269230462053283682206046095339375185146872076762972024206816400161127924285144853259354903362860258009789744830247839221175819876252411062104390029622135345871584209014362710553889220896425447182753052649116588593366003072284135823544486139951075399601083670907365560834645948196827276453906248146080605224603450801162291184143241156781933003119582555272469084296521878736834648490372007437821950038098828240333572435690026327866770002104186416021067745233947611496964413171208080838631345457316846310389888258026563408398655604310339833839527402060635132904321012145125669892205166694865992866769461824579131044573484094939191931598849872738148919875124987738183390158800492801429121088906307013358159398890369484490569270109179563912130486147174025216090886515340541820534579672696883869695933282333350076739234505742954619389626729959897919162761831146672984056952044345196277601798209600307651332703543337987524298326809057976499914931412799510791328657066893820952814889468474702012794320100213404550301996317076263570791245444405556534330335648942639663874026826294950596742686164629807120243808218487957053406991046742707151667189848228169806078121364477128240612272141295077209783441081656664574319550506920376846304634676101134554921811908227048539850772795009707105344052263501459913861531749674489799832435225575454470922045435532064396238022906269380232264673195805071687607040980291408222429262914518650863480218361914539077866870106075176052280052343721905110337249814277200415186684279331494671414017823839089206920420385868274496903444789545627039931900751515275340019068141774171491582715462300409036097524198967304939200027584584932361443919505477134505593588162096133773102983577275222143001933815608585147719480131540761701010141170389575318212346592250897065233412953207751399723732214259712388789761957116010445807151496396958258092604422669705430237979328682497958257688440851730984886134133528934766096938666265314602211954465727564515802574334121262698954506382168621963018865979579140386457268201902729306086688120409463285998877993913636256720745166071216673451456983063417617538759498891344080822287797966835099548957777186186387181566096596638140367517384247011649926483860681324013727651294691591870513698205728084478265564305123617744155447382487640252525986505627115285027036552160062103476646367985293561401389407151232698837990340969679682107983591671577617417371593670839734608023920465860069369495284488100972078033967540593739303430003668674796767382647821910775918307887531156464788852678182631711254469682971507919846326726011105757556582075835233220186317956421047011416078058137977036233528604361160153863626981520462647099841619764081398256215483784105270687256389823650349580273445629789824953482588974119954645054166343062073297285579497967517032776659777157456150827787088624922669298789491371241437696401927089204111057244599908332235616677988170089354317005537716355636773952198111389853956590855161303035169292292531547520269897385521687150560556042650153169063200450526856591369171616300748862800016155913185274047226651402444931029630238973408194526338622603717962023748385517823720382598638369215715742011824883710014506501546306002556184396341251675689526617670862352468887232186820895416813346642693500554624097439912730271134241434172614375363013320153914160047309054094627695104255415726035139803205066139461088755506617766815102302750392687961771224182131832096324666881798217962374149754204821547673624076019566797688368205399706631826442365603692841656537374151374673421893364406618225442100507365640090823763514544998397430357671225970495857462310456130308957519065156298212332207459857324389518103009034663602768279122424456850599889298871354649817179301006511368368419835520778826371188693875889863292673608269356911836713095380442992717062242022825188651669074685760453278513221861064820461615136077613260555751693659956086461078764547118977178078571478195285658978359710172700617478239038205983981775850822244125086781630250228044975230268016631301289758648727902462102490952628199582277003191409865134057702567001982907952800580018405916160749897105488985141691649712517387742343221310104384632294417147159920760731728883575639946773082817076290091051345025646617957068635843790840715859910062904084162632538659931687030954837802543530500426851890847565770568923287930364843938491537929549016245127817701307965359846753383876927532754744671325672659133590543121672895493204173726578988165686631773126687585464140152031539849678918385947947000735290825943263234370196937162930061392636261091614372988843692552703121387011204515697786103337327963123840203390674377187981983366661315915573970551868352830802818058187407054319106042787195304313320009379758235988889415639632021633369876028456851536383233604026744227864746652989085652431676345607674041759867796921429189494088599425073702357971179144159173418602698809018214705793523678833276999875727088451754360683665872496982280964023278166933103918219320847687669304279537353525881562954342691355931231282031445421762170908439055386973067047227632081799275120881906754529636971032616574465969200424504123877912746707741359566263155442013811518702723139711292643347676439040144033784188645589273123456174271179784278199254472804678286428319504312895684471916188483452665181814963914607888251330593592391276749794370868918632732859278333069326461407899520584150198503672018347455625881486042886282474144365868454413889518664153552547160663369011402091251221587925367897686210434602017516267723602697379714245576375746330884057904023240040098153805896893113253774625640821765946900665745886430397509447855674058344809680262391154788980751631712416559507087861749278788313399183617592202695868242428114714541999516961101981276041753912889735225258514256170892595174849827793422614452334331597862949122429373201088547172693801167279836508181071312729385761986443264137913671628656672926746593867587143384453867782227300590367750054216575285672292713739892729557526433796981056670069144755600096489736233982724926731066605062946571766872509312452593934145924078968261963830222852023875846913285349822680315398328338031202844724570252573613964247496327674773786820598558651430171785211404971523941012573699162012611584742584143454579051287721825713442639860335438375812954450363886899082813101056134319175063230017428332916953565629279632591905525772636056761634684037629735652449258004070023691481248123830613004308218347195433122918672221034460633519067255623841313551044891579756318645478494645496972572749996705059822642529353427624783534864635644231229397911192104473331720180560547255266629405985716225385692019226870896887611115906065886877960997392018694466850223751200870365851790786184617436638636978747409170781793700862944618047329183678746687778194267999676194854488243138635171678452142532725567975063089784975654582014367910559768059785263348468789453598610626888048327231928133902019381427079852226897842750195415617836100669026671940379152699204708124509233794344134513269911938203007363500087135460378881211809567520933746243652426892456598690556970120078150182181304535998051824354555384031916099419791675275817625005045856189122691554809699452168001291570692608650581802350083269880192534726633623528802026401770502762745786715453907663121508271371792672161856276439408479599693158375142820804591902854659090575809678215260735130184345174741824582744132660695241091496165774696014190964897111150862495439272825545245487607419353244601892349551339892588692422135747487337975060367901708806489334048076588686641795533831870704459277874862991920749802349249516917752827028013255304141536870628875229711038166141119386344976251695273509964948663987702482819486521927132979523167603678652504691068897773179595207560057569344214254915917290211024942934217736533718385346487631790593935972508549277109662264506244791164749759225301624455865760070779046137581663088333246680044563904803612741843301886196048784087301628660919929656310554439453689391206461181616509283583734739874685985165481176160854985499571681471120906467670622389335243757138725460186846338675692413299519027539417598110740543277377837892783444514816158805734847977563502382750460873885047959928934986511366643756253216926796458479868059532110517275760876667037376558923959192939237035683526963044449926778936621251711842172604986842189433859104346408586550938215244077746504255750982780740506680089219817449661065804779141236680135715429879236786929431793200505959671484576479437148387104244663777679175860127726116029272512422941195058047953701407560687193466682193752951636641416031015293822293519367416751797817260997912436092086353538368989681735857044229108609016733406620242225815395640984535013615151357548295430282502845026837143472119734959534609777136256838157729408864131327782543258906797060407516665143753850385982271216580235792697661421542134306437693485096915650861714730506671791566476853429476423245880914156642484218271460250549776019222782069137868176411234546658989002402697469790220535619335706207779209969961529695052265752168734150843667053922562796369841850514629276482119951211505594247889699806880518333158522394010681938039599188957664503965545819471807778444335800774511821196887885189154792974259399408467209217751652572342109994161951800510320298879710188148587431516688538199255569944057169128949078638503514171811187086747885556977401800889268893570011554520835325733368607761021503220232812193280076731678669914913243957825384511625948355312136019836360218456532276947413410142010913715002103606740292905448490949372411844207424609017544715901071592305624406064176085044831008029460154441739631303984868005461005118398465797352131360144656066851182360732689916984282763772426885057709737222987285587463900010316441184646357734396997687887127349801510186196962841996720327868081557893826246819282235859642042658277386238538543920708076839986725677450910227451603884802734897005315743008670382439862412699810813109014261506320362881767853380331118599526006671672562501675092078604899441432517032696084808351681324110336367187443601427557168303018219727146137826688566389734690400617104958059983734238354799613126235503800309662396263894455949765967957176014831479037704223089851385902245076144501176017221954173241245788888258926061982176919145450801972672412346746015833712417010664256094002644334556866436390812378777377116322571117529831974661528347444200200720706218106457029404224856952000796617707813121911977742279873732658770663278962176914138104596925158962256651360237832287890428704405093377187264259343153908095233375456450316002160129970026184831829012843023767256174742362735720039335876047107430064352739160830710576950935071075233429776899317844036760816163894162964738097883607649049408620733472283034964677196654694833670421736774158109079199445459324895579170095708168212059048303265764322003875330996290593061334309592842824698710130044769996199558660903857259115373991203812577176237184359635325102824613695056896284425093221137154571242844320761470584469436956328955505964227044688726669410635158827345974199376458632639333160842113371641130124527878458803817506620171756178869003450866782367066799355257049691097645241565651670455069107660087427253838635090522693273999487645503477138550028377560386748425345426728976372728230755140917289706644975853502357845834187626186171247119895583775943091738702520894434331958394644781789023089867431888825678047326908491255485570187547170527905452191041787929176220365845785914249185537992939640557472530658492074852011021230950256743698630844666404936928646163785387394391238880569605723490683478895835132511864523714389268604467416515276124716207215080359378647274508395226959947491030712313213876130354494962398662210919067765471962749987388254762560424829292363626459343170335119859651933394748037925248955645835083555694445496075921078491242827743219084544360678711907412127661809922307341698052353187809125441431917045747611414829887599236987367043489397649539115883590942090445397002561619904186876668722491147118054599296145100621003731537536626846285870476425180473795350520483978874326538867290111465282229406685112236906186720485790554442336716489649294410573850943829021151470350060732422740877872298101222730639785017734519696369530393045378872881868415072312568407632662866494827932890481484530105015150088136834289857122640807643958959875472252500114440753105170758084728242423553405680989600620051112560603786683476622202683574340886474690282641780996710930366020539808762711856658479220453339425144357024475795665910211522580435371750175505265368211510106397660120405670431825932963544966174393335295858181297733243586095069262337296856499477237612307359339082620334157104197330422364472716783976138252360992285628551154297022660246922799035366505226153796784599028721790886942613567098478690448811660930881624969895651041311083012152346456430759232173259961325069928250242376285156617236843034976476013647283959076068241625861482077443488841849711370185030765045732604546589503575431970402124665035587355422227622354865320642442610633324987955210387075289061014116681530433445536044737154480324683012140959528877899604558752340192221814855486500578038979627770766596802131502997823041764349669202855486975176161769574716273327675661984370494279274977845750994717580922591097068930531077093396722010180975572458989192051524877191993495011071512388843617135718556419774013580945188642979896094531587663518403520171710741143193617044979653278887741569553145714507585070347864109551273474208376341491385661991920751505576495184524988005242182504505652450689937017275126639110380956390093173469031787271381876790035798677927987239226654778481696026982899675455483226837194712760105042061938759647479288382508275279627467480445750101315419663303619832048529873369637558371298688992654585017196712799427260966657663994516161410833927203620651453149703138487853402876083086615911970578943690159340106159651996627938472518701901185629529263111291758723554509180867782765399163387801868523405510543993378987271494351742112881276688891566816546360687626307222155591407153716542382002066772777841646557936823910176372751187834208437419670530780438687083513823324168951466553594079535550688428143543029559304989007998346731116142834561094925542969967046166057798962965532338131680540505500868553097942487051073709735815735428233692932106868881264465021713289274574962297330542819485652103870084231402887278070805704035678246086326009076576592035203413528766225110246167406468558256692919540843517006517797407827138424381495753495733358417990523500902112551503711070215723763731559569751895371427095123820752579750954091227268524625458267317475853641578675324358275059023608991355603337920207144277020714443200008709981300578731240502338100573726485921813133527506730397130085529093607098629757856041303165150764447979787147922655742873839210518674491061168421908366699802331011562120529165167216541224698934081101892816633461406350729512494685644986776869351091744033737378045621165378890280430295416177941928288816476926373494039234066569027312403527209720137860032214946284640027899537946648928349103009532815602506551802409779715788808568912480487042607197032411966672290205962101713700012978419886606470729851153338353415527230995471797843601677868152695040430989142426878645996938574752098032537249783049896514160480336767030264059189856518109751153509910899383418534599672181952152902299754112895525665944212119198029920648939152143161839782366391558544082343599173065266496746718987979185823309196347111527293579035707357467762774098441246903895936609187070741639694380519345379005072652445770544903268560981187190403543321144006116024694483458181088007764890441623723163593255671347969761878848588228511930826842671280353374984789332174416346857958214860923192285917683169148823148752997520340176764041171332920692920104403814678017639113334183531192682465435936636467565539001583755699464311638106723219715338288107650077077420163181213545572991058034852974621145539509556771258162988029020124523238607723027749248719878123096439139741006182787302700401340044248122181014617318061380533852283059337101527220082672038285286088736819861390899614823955108656172440050416361190556971641283639744858998997434991054722253013994508244770807505672223598485536964775070283135026195650278298331406638410083712429710712301591302208505835105747705448152709653393628611903496219902029397471179268039221222113369041383562706820570228233887862143765546207604923306277597734194343054594725727323630227137658000627303847735538247018191262042174077487221977881235643999452643484702720898131324832192282759100246483541121525081318729519235978103595204660497666644731949414393206813508678493931594847737231752080957538227774550698546623769363695029613345440884679515993764061720657844697674795641915594161678905536261528267952988610772402775133181825935598670013893582620070965208833439194902694235823249777868582211595008453280376538417408827673211645960658592423093811411366663753697377691368893953652062182346136168641861696704357223929674781772933620254735083524634822207116559470587453608901163062231669724200586884228270944247679416500639451326657402615867367134932832679284099909646588262627927065123300875797399770131756117458882431111964995873947112855216902107880583847196280036248403236148141425946508152452895316801544122317030559810587727549776227127123336627259283315574143381684056829153464266738303065911309323141908035523383876819966778044042555769361812730698828301515913060415385932534085135162810510423984311181113609648144086495033040002394533240822386458034353102412711882202700883941580976681558969134562074747064431718284524169021602633152420091615572641954756085198980507576165898894132919135003847991939133113779173617496613943391582545383724313128590004892344700402868415645161086905505656717222441910532979769203246824654209533852243031637382266619327315347037987890919082336274347921335535299143266765229887901451551625755964419832139812073492333605104297205224640747014661106648393502332292243891770647498444281512985990332770469752134794339612291785124705698311117558952022989379848833008929458643879101624606646349588613651199544946521479291447230765882391090971775143803162043656874254232411597593008348905267138679693352160527259446690915370643463100240540828708079847836200361314656881027072963591102509542663089361963033380058628504048580589997306652748181198083151230958797799117926103041978651396757959919687915663564621822523210192587069695437494466533071332842800396014237018929619787670093829588437678124201053898326068993317942261107413062082907289888788756940017077457991735677313138623671549084876567684693327390155953912937714247482201912420733484132880547173359118010996833040212549226111588106045022917149031303946844704073171950706295359150191789691831040836917435394171804680797069135905990250828567247543220922808322607794445697730368288106626195923079819786709428145010358347638547343305878886199573010526408359619318465131028234612746904522804065503806966790881240842333375472260612439822138566303789620693203348686171009258411786533356880497731548902796434249216610360842667249855990839487471940704584702012072495990371883248544060808150720246099290950936045683939977448147007619203279896179642947039582801718922620301505961699027076144114134037299337079423177880219284414938899559137437745129377556422159079542708066645016614437644328166603358489389475414861661164139462422807340824617971308171264548628236457425234601021183928670486490026320236344303040137413886930851564992935696448670847284991197021565491762961471210045246632691300762464305358075571246078074111168642057964652984608071424322205432199807588261093716050661720231340413942365182667077059972442109342924646108473666924278410733589518299363145781896867075907779908222738356848662310017183635603010489484354251223991647467660311410920770054351605939731843523406513509533310582421707570878869359686396593956564686363653474400001025891817438409452618294840269751354181264996261185338567477441674432944540043098259330315001267005897508257791269547715132237468162121187047773256585345629053159831583554837035479793801035868952767834738654495071576229296678887653130012476706875622103999098245672031880964006344921482028574402689817772053438009726456873377827020005659238680771805906220794235176368899936553758377822162709091526213473987089977558733146393907111368104035489489965406953585810736731966621041564651418014863695301180861514407323290618992300773412227175902970855517086798089450736907281968502640371711122244462325596846446196595750473412570680751386246875726119194822019247384923251124024531879807105035521572062260300100139306857030439548815497896650584221468217959459848093294682767244316228307935508717426506861795110678118093424559113542063575077680029723841324279728174064581545633845105355513905171914029255060817076536216914404675895909880528829105623090128351067311216993037755533659060526800586129921224519359784985176996918888358964454283919674359969466054025537916172831795425512156885762152028893381219721833832841297985079619320838141858464010056988670093501729201376106274998270193806983387909613893235310752322413476467067993200987741365994181538851776177144368948229464157188186135085363474043928287008365575032397335108662218813772115595182409232481616945336835218860469717602961339232998892413486654254032760342818262698809235532399091004721081616239960863510884159011342003607424915622002003192067660052983739470662798140434808267410855866762529344281242698664351489422565261303689573977910779748504693875997679262783584270663168109451943108415745214683071891066686772352462555305301469022421994283084245543802348719656369436532965528148578281187791740039723021082294219222606478492644969882466963183487262324810776769279729681570130823030155789627289757492879815281981262698622262502925692275723063969382966749414145929655771579940269041706299464113512099145182320769716572961899851631861591451080223761584371306248084944918256198636008607013542647546224121837384078536293267571647284921304409646916621401731686776086977622931299988720488282273457278092185940084738513147295724554710433333375697302799666090536868012630591446695616625917614653222610705279775409957434275867194657780591593598152949115259973957622546647612267696611276318579328120677470342607920356697921212155522233635072148100780830799538015671515411969777086007720027348785794168981588427230425087165464630662912796189312910532224477275855410908031887894788266321503181898904271992489001464950813967678870355234510986725341747152490830872274658037038138832152024401263922712484636719360041320544059239632040247032268322817153296852648839800423424349100970463657511871246939220189880448119755008114119855356092980724710172572671757226897916079572077198868554443214947317231728174054257939637005093036205278963583737920546734330942583155661384426238639346915185709435634837546723282472761798978166020479738484873424786252454912135765602071953381977711720667448397498943986658401671340695970224982619388048612546563383112593044137570117069146197385204014292088539619036608251551808022700873029251122654548278891542006631626067853505488467079721163127557867782884018343191577166349961585794434625504924799287094267371525183166805124158374174292709761102317229909563691163087045050616306070289243777440722253661774961780267574623306814539182500830131252634115541229635055512823641983904088546673198496556261085657296318143218369915675576564945300013151403017665472245215797481393109853041755129430669229205740175830159247680564953568287159919997807903267273425462613143821582137995585244675260023776617509654901370835440056842462397700134684423743622976648461674603783549766773014203980190736171086508891536814153779089729526105017315399703574433777198728150687934195972676366655955833020265324049785110129018636985386429293484605325999793918212146152526318302322540743308529754966682566478039626575492827953906805565548696361586366960457661039129080085407708462543671815570741894257890493099008132102002243051457788307160773728576812271050977430606220709276064971498771214820124584592372822363208753035116026082826494478135471519755619343731044620278315594272462647361012767971140253507423637207547125970753816725450536801572343346350530548462176519010261696762399698396267670762541992303585730462383464587992343022668782946175017730098774794005879222745621889524778616801312409206241799097634964270862306210156373717376727942629103676936939057152801204574286464769700014980633637158447697787806057345833876183115762235046251954933765069310135136725234610580105906967627085312716155288871681121717035542734419957311155883449998555810508282729842708921314835294297971873933520534645774048402486752329744786387778974625619730932320782699361620372426406241299376371354318472673656627175259686198489974420310702687738180333737911534246544292713769756233305292320598024281218704973025998974571756563964902520303336923652089580894147424760375219468029893048098863582802229215080718940526196020267340913419200458558501616857264075877467162993166659455690271676967039141212323579321328030712136762279834018818445430571685064142102397570478342989646585615913436379123687304518422593603657613860015946024021237124471225960902548772398332066325649754294705031999903665919201687969195800598862699757778954634271203563711580048226396594769526586786158264683715119367874168047518930287026649851726711970678851818519787467103088380333934288279174230183040766080933069841269182583755669170219771573657938657115721572689335841731872952054626250882466687793431586157823396134271283518940482382700586847339791649140813372451155880647686000920176629154492246560977045963376246217615966654498220155993866951416644637488167431125862670804723994813478169382371891905181170200795923973258550143584064256724227727085665372884066370364513811643950767829821410129779003829632049221266462042565930682313888350255827081701906196039215967017000824743408984785783243792817842667530018614876552588275603671725355386198802678581241350731849613041178900818217874029432991166396288719590279715965789592726551581119767920897629003375362225699563960532826268722030366304444743661630010282728991208445855867724172288153393077956392941305439534982199500469838027466301435212136202509160611898055135982893808833167449771338258439236582531544179272306834978444169987090042907064510624688044939466315825344683907031025481550668554204796870547076684120238254948729148506179805485974304290557048278857014089514911325075708511345007664160831145097291358850125196508504567268461756282113858873924658864639124913717524911325408907112641532185793404434896746746397880044814578417982862612257836361099836054848634252406085386165907787214195244874625025795607333107040531061616277008900772810998884971964056894732355000816206867309285934881570305792521132293696957248966846206280609498291051465601758269718460447264837586811739159811990444478362917059704356725716872463207028130140570738246606898069034721002025765068636980215426056751756794737165758789525810076566377541030023528248684850806274954855767586612629831715546978033174287949421873758199390636725358019212412013095273490034107481377789979737990876126500659866661275138946136597188067098303818732979548088692393421841367504982270439061722455405482584214042615377798292513785110686491297580843964256323923550986206751538006392806188239219052997839618690639273060001724965607415669841892036732779431480724208924477751842780717486256500411445796428114180253877721657314776406709677842615260213371842304476003144424689027114252563577326081269913531388979817949155041726602331318888498404670704288346979558380168952565305253376598047085562956483509887874993555748619686108245493395446860923475289149456580954608701050212118604466825688120676925841494662303305053391295176216786341687021833811345227267457966740073343864546077532012376617606575438291670907141315703964094982974889791296359477738541864387928410149557578814294632184843015700502704830740895417109523499616573468131815897378453629350037526479619085662215694112284421808621134913560613313386063668782260500772940174919837081898857900673734317998752392940697325164132807167030924816408444976983243302892129452439282230885556048178613696503019672547465790593668296838917802816704998913967940793825245901310731222761330368919174465997039032842503541084531769581719177375804492954118810091713198605554374575837103126901172579625966809975366829786145486985255785375308523272954519973164821741884113204639299467731791031530512759943309241268666748180477835616458013941232098230864094024212110300267554023802788091221098563014698772597456600892213277955200239916554399714441419982899434358118499695018978861840653044041243105302517913462269442942827004448735747791955718258075097750193156619107010217708804269476292013759616226357543415607960591352740048020356002479829381594500700734956924556274977731162145655960197132179475371478658989371663856956442451127584013267543490431340560303181350068316274504020688338983446354633669620661472947137142413906837677144850657112561647229364141654797268394080752934889822051642675006130463814209982169985173618529356734415447118502787242606742153079391273217140136629776169711889198928474099835025004002859649760715832639776041805462387473257582483552448826098461250504533877585809398335488035067325605240090320752604020857748860731546296717215998271503514376985129665560515814193188985139817696211352230699719625894797156978383968364655903077790237033734600720475563553630028557648282873958099833771415895915597804299089273558103333480102118111708094431905177660296297628255446917332317318052626689946656914064629679504799637957947324912966894860710839037059528479645428378639705344116757558437284921923016709138634167210392594496660624298049765598878300313019056166791441007570811194293444186953003565920967158539305102974333311207323128463530624206020675459350088886153901469519718461659481541558238233795856165662630576519232456898822610639292484277163414914364091779522092822180576067218535659460673990704638522557366552852796099973763798414141189829674043384084537630765576774575299665586013239142145971370931790802327636240583618446088146928590778062917067098251047726564322106157836819618206302506310006577458258708407717825849750669610110875945000695528138959342276968797065874012762615432646684642086876072668020399222374998881227805603014170849099843380212717284690732812741753601579713116888686691110527741184494233566822123073107759622962568197631799523730974031830974385992673591447410203344715987844245477965700565353505994189339011611558691417010325464393319569177120407098129382720291755971944175469744830050515330209282579139720333949944237032483344204024727171184607048941638848916031016826973977121120257980029574904441183911949290025828583418292593375969926003348208985902446980547167548695504078012247241700178017909106418351768123032699748975533329306180195814880977841789230181057085475485855287665963881475248743313435017264788858122903432651522515292451314458735145308559919891411708513707294173641391591790161552826764300659809689061981048886095547462485146812335690277535217915860203191007081059253838814776991144864911707339354813504798086137507985384244129372559355378923190856916312900150734843788084000347917594652477453760090598701324257408936008621106620712877868991500376322100576508324271903790965604371137569159234282786320398348760796717016631703033772188605445404220565526492146570538567941872502360511346703965762030744200536622554297775456630901601346532574185969402477131801226325779672731367457478631476526655541690935925471539997252705025338426395744997667371768437020365385975381602443226996559047867756478293959205013073273355094154812181584576695848909804537411408324823918185456616974442787746071055686379056853111769961997200470099524732345375567538410640001987248046198239828687667463762344696938804197001272557447097117998759190593412468000779012567534871344479473869324582303563158892612207979644440890738070144825714356283586599143652212379021128893085877821679221723628778554507190735890899364707711957434023127383659998806195494357781938451303740432169857044212656878293724133734053244474471965726559486214435578386506468037764639163053070195268370332788726514493524230903735957316490364882832719894001778036696233229149376545143845215680710621871133026137844922712449384089829018433954509717360765440706189885368909397769462675075251184967850558072618190040581379846710813067096624399552397556874629601850461695827924652716634066203782681779578540396537354897454445965873122560990352913053442114054268199850211463091507553368984802418305796948977207021005446030320432922697355793141272818133024851391870329490140295077926785802108511561034111753362770732770104764398695719398859212459492919200547510267912340875511693647865166076170664844621645549763812567460942003169791940058933077552076181872851054034116532095511840382590990700623049834286236723034688647893559724789291072771350101193134166290320268964474244902646332450690999013313780559649952468357733398220020592953752639812611697998467871161795352016543439624650909359319551658880459230293584342378389714137451192596788183237627270219479090439763977205549386407396943742887901820852226025379508223795604852574649111165595801884075028453069474163495277121740198659756033311543626896583983278511570816406920879397446239167923181957439365034924109861289676435255728204238860904533828585719807699588141166838285168453822933282245386152172050369270095553470845800727526007119632423349798725998769165968498313890057771647038201680872453829435429459906194077018073010877482445940722460043998599064573929779903085965925137360119550590967579144043779972668991586143626943043737140989567302542348610796374053245322223340190476014772137604082426643329644977029392798072026418695793590381731394133296154527883497136192879406880401456064532094061642303191373285582457331525732060116112478752173654577156631792116914989342945046137909855009045810701205123710903693014660157166256222544870885832055924272471439868202358811135383620258329532947767897407723467922261263302416656739533861847060581753703474062028365963480882279917850445036240792157480773137491074001784608808572199030094426886537827538366491783754718416990252572046819822041336265022073661624105687448741618853562712228493741687841418346479278395487687208894540005382486294914818675046960553109050027764235871109928087701105134658595166021804343097826456402528570652336416556930123725530843926057679115427345133749778932116121996064899866315620934722600439286198451972266741855574666935269700523148937802590622433972021660467228123627624719100297084278115706515879566207285516941125733549226719595754261585068727368129108313165705366232154668865863565431959520310113753030616700073128210658496040945855580457642400606491922943601622078834565482040414555963347324553026041826316461853404495301689689090142854182325358683926589274353551794663209117187766695189379185541260559046090984633450619918067880271468173122509298896198915265389349022685933303251422875901050523048442746948456592835401901155196953315192438605024694756283797480278541762807680284095483397458921494559146189690623809914860388756436872887982986890196521654561746026745421962810071192248868008051138798148675139494193042802727985826100520516565322760351969548029494235642745302065508152890725178257343049368076328956297704729422662925544572092671373527423126796330363006174608960337153180059283509163693899295795954451903620862174212235394307017031982937529698554818400915332185637317047771221909917805674405736041863807935518200531378560291889185805477096483282587579973447320506707844157638371039202754685948771739761380821984050875513689733148892764473518153460441836550440814599772442034780167968621933870975834627303978309247303469953236389552515241511510171759519479583756389831565775353425903697615756237134156697124993898199922832543692496318767870200929673400390415996894257710857870542368598158011886919635600743996342204153792392127967170229921013460863777066857032517054818149149345942039304427711460445433322160654312691700818513452838200223183817802419194025261007602658882181494700906967657411523172183495202206002584269494638007589863507595032782817192532911274980314449944892674811826387776639795741400505158177279063898773401264161670672046674231932359585329437131833533964834415997312965098985393740338955905931303942286642581655636439505333960893992126702120182175496057212402649342046004365137684241771916514197757434284963903024283187297849080883239267599415750331828569766480252182213752285857217789228158501754102845083474729462544317393639780651749164230866593886560292359118354132494862669808950041747438733323888743698181544082057827067638348410456476964241128006532155061423182290405512926944241396304098292057331686654381329523710484141485232799189556080438171082291893406031501882606319153059574904076606963419473945156501400277615150167332117468463586192694780848033695737501544993470220680236632405539160356763622317730273311033370777645928153585013574098457515162178148049931434087757544038788896857144409962047473777911700493325771275076529117384016016259301650919833345337834305501459504485455904550190246012291859854627665621990510010735217494800321914684133507632226645644998512048322500472169760177527418662993515916226043784266017097320249879752439643038921677506647880137097441599712299740055571453740628414983444102859906320262686308147433400300828479912451351817610699905191903619366897032508683528505522068598600035876968492585899793220848521016512676921138799417981289791505021656961422968641538127299197627733960463467686363361855574707239530280541223597726284987791565031969036426008302049549696376689381739459796335866307010413856648076222616156649785304351448272917128568998941401103919977158013509712281404622901372250685400782755894964545713995577047074374383059789261557887374874100994036133635577857230671121254213560337712789002691138502747675469335940564213175171825591949693951465232118143885066080830119318633372504966568990287808103305630263902132015565293743587746672302121765199794104247028690857884907392485409637204629460810998175502886189448360094797946635026582317130438893354042228047112921131736438566215563752373180258266168842181837615713084410472373756287448200329169874396910425302265299557692818442998462450079360697012543602168319623612797384979330684096697174570451727810921078539543740212461691686940830530071116225352032017383723158453588512953063207733693233023220603931744630719162518444676461065734888127103271163622715664166311773092711303258075282626188988699441988550956946093915846242846471780760883169713268093024253234827192952200137530263749212375104096525625345383843936651002323890430396588261647571688436157216785103173010727403473178446644624779740912671795263545327493208208171274796129828014132755088547641006056453637440062428500307320858077388401634321394846635225974610733010893419698677150910829349700053183584614737504288318395578979483342608524395602226726861619328241426880721811602002780663310998902672221700522445222757300917703760796113937727823341519585841709918081818935447729928781664600133994511266464260557116577805520687063971735422223800170556698493922659128848612380055989285374967950598851145606195094845513419338320290544042022547867835501693784052472496763938378421899969208270079971177072469401157620606366826919319825371864984132122063268258473896979152427248005372940207684497051760309346214997477217934174642705315180595755830544205230473097927554135526334080420672389827905127923744276145908153866827978837519422350810483124944142769392134283411404061115911476452868424352882806298861779165049448081379244217154490090540986435763968177519763875875326306342805591867721517186222233605085230112000512133039999407784759403997791236298140458283081559598998718965900338949259234148776282261901048415999440378954837298671504895337073309389127441998461938986115702735704295247144355641907139647504371008127667130558133600543055151042997721062520836527354091852880955738854312909513035063266197772043240655650940091157705603150760617119714406787844392420859552340034225060225767433072553083528437206435023244846094535185452258873589928305252957474788748093882903760320150470543878050468253646980770380038482289015990155085048656100415775722654745885930760961095649983012945794848564929688476638115736959953305697025269497902037604463249982222948325679080404880994472027373750715102708679139655822119909180302427929345154308224405509194288111710249420144884919127964165444788102659431657597596074708846629446921683837056171610120272394152414981280460951825958886237058069698908612749140369035525743267010475437614193738992344485619330637154487971948663017908361767415889279915646572446915232732562549671529362066337763828576576798701792153028903256690317813574299394247170954202850019321759900365341699285392775784167152283233801889916460233507921512371703082266860491860084258973292755001628619831393911462860663764443996547013511537036653399643268805204720779602811661162236115005550424567837904258571191203766237600302770224531259045264154967963093410267917922299571974146418436955697042700177705567769385505763255814351786954313600256574885638343283355136984929348318301063767226745036082099756792180174820991663412991208788861838062242652562626982501383287354132712612098724067419093177652221387714186355018791724682971380698692047552536242722337965889053401322614329709403748958145656230586956083936524380381967605193855543724421367704965323969846816157708169614480833772412995914895753879437668275916947787428149627615770914561115746869757949229902042201758087277619220403900137879791817089241135272614965782980889250024007071338343899798355689157364424844108632852664092145209169458660409415734678117791507900557914440085286711280916082126868326795200028723023586701177481015638349775535422135321078887077442075771283195234971150601104026698192290064802513278470333971771345858943498876554714717664522419033331105742964765345061462826648270739940086319509118850874664146719047451508649544260951808699715169494820749413054228862783180515598958505716659926881533328084302400997730641343507872776457104207949404552892079105287640162076716707768063960321639562034581456383446956531120434948473592947084315097816717478112812628832565582033634898068389086879093782956628470659659794361454507397857561950956380756240304058341788884007703888120146483686422870314841005193084523467187964421802017161396329188059423938139572648569334259264530407038090981348358137170719588892876019866914095208598858693567191047351848866345948423462463467407355833689130746941029534148995649392470077309080666778459284028428964672562258947576994740312229569585260613437708625195096515869103082516167150399668997627560537987473779138296185563326605823563651711311993263604667736223117115954470368816207878689339044255175769514352877244960840778127887360644907343343437222395259714682247264769527513415703336397623534536210986937003344526935493577376984425752358407084826180808071388489128851178555383152504629086527752869747974039551654385622021667283969264796843118173214145688328845304279977091214710171886367988414377489293878106042576388769613705854425276844389751780043922387569575748555129653327678742569092729001490244005148988414121246802213577095355696720320566674211803120583369197497330070614608479263036966004230481676545303938042166787198785315594372878909626212069146608853923663129568565015663557864655103010300153623884892145713037245601943244362122051170588112603551870973513907249813956461818429798016415132959283947465316152466172492012150193430190702084177908957781832466397217504460546469820201345782792159237853934753478551500764428462304934099823892369466483750336542559357048925567434545488774256162793901270291460857178879529436840780077310675672192878110528607175150005415276483360607835408383483224758884838944914860492426928091746224616925624017986707338276685118813772167691003567872746168226038306333638535479009694647737826096203760072910273558257636191002074821607319543576305641488301778482062888199261557907711778685890427075353423668636715519575825288860064162693394567262940777101915283037199686741324026301024239814436045200991395747332870783280419761076726680070010998780270480719397464415710498275435057935918438945614216414904576681449823251942870696095018537053254154963892653370248346297993455858282683429048349620678683538815001490262176945691309738015013344287049920126858474230599316041872418820034060571084046275952833950786665170435536848022490637566383618214476970420057077273760041791993086094214498082157220959929016838123870447587065757179917756567518874179030243939638754908143515522997020450130999377612041416066600444398106280784239403819174894482189373637789254574231742730076578335564618192714508595941739613147191000914908378858692149239944370570703617837009511483631711309456727354517154798593023820195621307126255925769743430688912311597118628903842110895492029367420719243641851020523900050477637245308144367352620062065573345198129216582477855309719497359796369875310199536412828005867346438583396417330661450753984855532315294676139595714608092072755854981162229108221106513185010795374413336077125103245947420497482536615435386250540144286468846791286085601574853443465220436201282594558267046916362873240311246653113212074342489750494944782709893362051154799324015670639645907671850237905920005220328987660004764444744902933116552936360839904816625124132693738845611067421993068976684150747870335250853750898100324030157486538550420597868434042731686312542174235601406635143380850295410058924656754317226926205832007964320606396170274482119662903115600054215299326932940084878520872901388667433171026415305301406235498333933742588979288832482374585507901735998726228436694594543001596796870411782604069996204047894129690121901976338273142763533616723801070081049816262091465526349292277232247023630785552207865251243850513253462576870637228357323390088530774769734620803370024982851163581903329880614331940736081635509513219799579384275765252174199441785294162056520281509689822133521752944689766544938293690114908630342574469683107922782125531377840684557405472903415844515215014935469214806231636318000012653127681387177605084282904471975777391508531422272207298717359016327554709750815106351528061354359321341576742866993756883633135245115065069942850103179560293728499771342062184639270906515638622361357392100855699654285267044583589800118618826059979266093413289827867470262703470298927234951941031474430788966994790360973940367928229788725893684503572304428182830704388258893152242098721449788613103100968951880672939863678228312302758997644937987538785685241798057043012399427884741988560845325964993562209300298394476195674139077065605543847479109001959724452173826270786581789616362012816597594556945402171286259329349988320554461432091939176958868578741019717993546502983360357433493300377095143312306928896913468578037553092769602852573845701502532503341194442848413150424454365120535549077565238865875892589648054850482602665020588883080180922482924355721890626657624643369400169618478396882552556469839185021003467415457110177191433609811261339173849066685278383048362147675037880750409533383824162460273342743544321974918381424095522534449549622026850719992988211254874564536316140254762153199927781118478044728671055181030775254172258698143667894244038903961741571686993404239129815265772483680012929052863309214032844526341713689209975684815406749547555033544932324863324173859515558959281497140668931311380910344957875593439311199264165979010171293267639673713207279696301440342118921755026465951413735259316061622470996020393582685818559360298212656474231849583868785126368572807651374767327025428204576423891947821860397022269021454033472389484529945318859564552533958603341937452284271352833524870811813272338657983276094868724481623474249111049826475445318032016698295729912672234367913505172637650601845530533115308649200110775446598666753424042833664024377795233348864103997916821201163966775415680946402190524517523165989105217531695162540529278342758566252281614326715487608742369627625828853572477043101458970752908892798365922414356354472262537360134943670664845825504201965881400418231408797742197992657057870090691335356682844388892389424326248287933982766910979207756187301817741033323757029162117791941001427670110533525860315901291388688666440796938877477696037640424941105058532173302784976444080947650768362584424152434465571760336733621907574943822573703133999891044167544817744468599804484992216406985911069784576353621792194757958348572611618613443851642273385872041306073289353758907188768069351010795459401708583627715775157669022041792360753168268104336202289274291721707777165582044018540744033762171049929052520604571458219626757128243747165795692938679954279562262437139010552669812066444850843239278081169741279173141192404517388929629519430599695767701151095632152239070132991259868714500892471031224104398392640310652551585949198042273470326223237876275726386424708730094085978462537369660722840296400840917877144991747409855674555801141391417621985195126244658931904358383249864528169354613077012980555239107426501466895283055736489054463372058640489506475380237984944665491703288741393086264693608724120241211061622498477023422626437431517342867613777488389800255364313808085579118951502677243629546747645135916811200536632927307695717131865653262060308493226143100559210747982110099733523327821049612968536568102089681518459420177135737770175429909345051315062498378361316707272741945325932058844359305351267604907955078283804492982101958381871812869285104059835509040834349163848237961589171006429890956358170075600381078509736594238580659907618344441615506822179799583037424650965930856432642882606366390098456440513587069051021051903714640399563169748043938709730985764714577844535867828013152930114855086982661619893080458541747180569990065744920785479556118857319734739821710419799940345284213949461231785471878085982859120097468178904209781559849559359736613911469305359911584417666451405291236368060124281168948970306778281002115245545289752511038247723123113204649750902354528468319278509946535331885572457660666218870948135769136194529610246871779041631168972548225396184851394744074431785249343106475238444666009910651530437216589354521147256813043771401801643661138653214962603173143944127901596868591057582470778793584981352883870262482455999528381613867542212952719239068789821199402097309869817640264775753721083518881093167444335630396979029662224081432957136193355633351866684543971838840185775161395783628546045977980315852635342969875257557600167103006040905284023152694399568466519885846660375867388627766881739182679411788829946727291875690234974023477981264390403787429407988005470301240133069376060744704110442011171763757027779019585309678821714875223357218278953973655429715889158935595481032514709041221812882384037146073721037471132696601794207237421425970976852503101443556948238315277398581276908596499376711935689102026441013133157007452415833634596555617422043138885863423676133685500490589843874714325469738602125769857188173631977817881683693125876268531879844043376553990756406178979833449993149928812019672041412200457412362888683262728482540898990065228842442555730432810318350174623658688759138916658044975302296027669099984946714211354983486303709804761392035236853744582511139189655552131163343164752354952036812022230944060309745188687419533587639126730955587747873000299792549879767120922367973335428663573970624386706548681742609274292526478726869911766005614925351739173474171603830137465831001814479300074554797912834329620976602919501417116595482835098604085544210626337371606772008375744042326673926713402409612139115562385688759517652548389393773668417451398598015619367953998820121236442918063302657508508748993741900673365443097244902114632537282519515636167694280155844083145024500128493178862206386804692746171961234025066339943046686036532557847643793566888835829843600265978487422665899689644917391807940170240358329233633270705383079660421558171102544431324587657721033066438874635082862957630466527282084878736092054880682046718998736468800711900531469940153295431467004558350954436455796389570920380140802112895943673710556085817944469183805445719642747010979407959374436645473963813447647434747846715796061490865022193144173798572021792607235699840347084940260917086579498669323315549468168878709399771826685401563432196562738055160365012508607664308668456117809621752596470819314470275966570459699601789966821428482377762991827886719795936835244090317997037985635404007638981000222631303769838403736806724950066787009969968221483067686100392233081910978052448455958254653625932570823001258684618632201708405148188723786077070820013669633407018353586155628297286375741130638430898417953930931527490092602141309464320330349947665716247817185329632910938411358402198645880456005310328064561669542951920989367031759412574665223955166480895697678936119992061863146968025341130421108106558736146201411322948610323154400530002376286436738837889767407819121041726290301868204263921463069611353717013984733997977912523448547983658432488597570797552541751314662460230378661664079516908082719275403097692473474698247875606275027091457655717701588764711156373202821088669224268310653160684709646590602298569785725963004137359785130698531925693373996533904013716681874174683555360453102208684369895720767552845012284128494916220521813770050096433532034560249368795049803100190600377529989636056266610633962690662191155523863588945836683284186186086765889956451076323543525167987299586737996089704069329713000517699841639811507268195306989302481488474808391470858696581402977366467298789443005975227142569603523771025834801533022709068993609191656163180248681503337152327429436928042975074982906916627598157914690762148021210583556118185963109110386176941579105150170149887418110217686303201595814921807928494925362084628668065241848408988323787598288959363119048993852812423774118150685942421604484198037280618035843240285393556718330499835449101285631273992616041184707920439513873939166901452121261151741378163704112384108111040708524835699249763394909140432427819728534178942754941292760525151684242372004552331440314545845542210802590108722930665086087551382283283768799952200551533054989528449802021598011916650952013420480027092584454803793558443640962885365943085140513834812749880321093146754930533505624656429557024540485478810384603160954564718126604829623936764441952048078682480159505731629758979323453731413592104374683495401109246383096564766808304358951318240898475032833271966120209142166242563381848825985363674697345814423708669373985583186029411132056236292424901485089498675713439866816561574860447878654287378025271472026304927268482472876372944459764122431633649358672433981663760159985637122771230951607116060781995902226550397489972669628927736808343597059395252283668519067387264349319375237543548475883386077024293373873744737580777263970780210511883188001884428752084167853959950290904896177923363089011166682226617493092423923622168763555081854590824039504446958597369318535650771540804738264678137802909398320106478029967120407835204048175342422625469367726287737353416941642748853473009267798990756492411852413738405593447119266574560587838163169422506723591888929093696414508890467159734597038007744659929694533965313778478326592442147714645858062902743889553192289926835606792819364459146992400729836433608457593310376627303974197966520084350248627235864651685786704819596841932964594654096505116775345692158105671926632654601194896986634383534925304472057996995548495772687851324240994779193880024191047497903719323046803310529508009247074154760634937813138667209509974451497742659385902935719696656364570498630462478238256292883725883182900319660906500080400891021686718322706656499529012826429610323935148466120827058719431110450716182672993813828200235770829921953020062721148133760869974227856734107457655883049470863031172242975497467197946655860306445761865751474624855153071167184340259336765433802887461720582584163471279678288692492558684143871537588928346240423464392523557857931735178571509281794221467959422889616797320648162728240497427011489748460905905755065759802859283246382210921872992993640160993541147897962769222310617042328122835343142647692862447334364404657976466124199401285625974766810548151530623161746002148956628273429724467059422900421942230313243597601542185602375233438681628523009140379058775607091215737138274493532628833594184110964037347195924163432372414328869627604939789525040431586749894988101753359261352398077641225953926429152813258968738506320570508471056309067743583471479325776924206337952488139896164586479768304341016853390551160052854065889823745989297760156865294225984695860797758601266050952820179399331177439007059473115016830474341506983964729568839114102458194281926805173828457566760555963491688692477549178804909866649391234199902862588122510279052061526367406438603593308858642816248480308756197605618270589217917251238909604973175920732229394542135078041613426094789781407039538447678432774034464147046450969897568766041139907322281466038084596010496539100954201846621176922382534843714614849045313026910499639014972229447127939730918816607780059393647857856946380988016966866100612166702820069185969725822182507417088552588910707270579751358340648766076005013271403989729599969400395980844642719165102006221091511911541615789628956412397062169603834504102928911786306478928926811932194381937393142484174045727067114920092573581881867545882806086143679361974111891641411809761100217314882627092289703663729347089335973208657061741576495315440689505162187458826063218124710096910344082482089822911112057077601799837115661836064966102277412750648536143226209092484487840784616045050670730817548728153147791117677373466412619448161166209452335476529201821150606078721357524232462570896936958236305504735410155382610941949183876324753912765540399808686488464006034265351928018178459881653049288330922636951741941476565264720554601173001811545570079669489302169139893391132196913570019864839635786099560733473466502188423683114389164219439244768304511871813175745185952869028741401218693899974482034431096809359229883015280678487376278999517999424078549807745780194424979473106901042165757181257944173647815555596525577599014506171056824258233171445913208673925841874161561165588138537128878953727050964648639417348031532576289407744833350409767164635802122642488772815270967853500722247171022393917613507722172055711890862427993403811572537945655482525356281570276037865820026713259177903059743660792815091183731715138859297522218327605275837687465922350696805129941549801655025832470307416945382416851098621689622722135748934366014228497770403665425656473439320562662032283940291886717071413183800029056642987041678763439196274310135723043850927411457552314930622553036593272359105450673179639821089226174403120813858678807187306015140533388349283717648664138051979411648510247515872378085873663436640356390355258840634280877103602204776930586579385029888787311164231054082079103343735445446678217250327468156570992909408439679979834850603345395491641801738185465473274706217487616974466255278962029064972026245806423679827470249989225735866372014676954250380777194649264816535973560269201757060760140981761010691412995763851459848614694182079931883278881815853136716306293656521001603909413227373774739415137216769262282378060499625429246036566182509692208559368304643936777330417622084865664973314233666418122405014053844963556921546685421000226155887799932780706951211736011166931113772537530797768046272746383736438037066388948387639203983405565944263861867724489524080954744820254515813707453615761377517035617325787954722204714389742766266348928693196115762963056445690671697169990968019403554054731275760095892108139341699138181995495650508490927754425797019847015131374003308391374907649775609011617341918306610784999557506177148538306763976842205456609427468214648441282712489623508309360656046769105434154791775168129300196263864549089427022111689263337837368807019825388280114145770310620395806574629649637650550248086953111682535005695850847193475460335238124646967313884942325345268151180380007969538428134376379458620379673926164440549086361566179116601665677295400830064240030082891612268109703290686583256826037500546311422266648809438524355721681342767938050940131891134560852823742059657227845994088117462545822325730424977825636632935577777030752717649497747459193796946404418380011966544851150947976455447541240975775658563550846671592829521710579720449413259642227107484972446953444999050566130804057383835948009758734702011340760840042773343512293236762729468519848182511453087965473250459488702347930879054296728953582456396890748232862483597756731713984674107340403983040372306725445393837856908789992882247313768680411219686659598500382679613799309940814821356310353397964714069228626868260161763950768548033066601068085197681017131921727572369106174886033685755626325109689149482844301691783347192024866566854082275489471092042417356752106924841992879352332688354087543784961893861366068842414242251274635110563817176003919249459550301824055537899119784947495798356936792828343519483653357551555217080202645766808117077984409601420543966833378743918009091689443813664052122861997964632508280257409118458122786806944851357990001045514503949769409567123002737130939447356098548423918461552433109794653888887440442326563478691552090009508666608037601268525835308476016651687744344553661214908990784395212661063702939533949391915091634141309153205034766823965799648002331669629784216705862261959560148768954415283327239296173123915447476859811517824122879755506604463716840194547160549977200903303468975971129592141309202488845775421872716280327702327237011535509277919873198081333680455760140337164685190732661707941293304761325714720452500057539946015558676593915400623924003932899840720355609974119875635742263583459433289530766759322875827437391555014361114128877941183025564830650712959284780736031030630867452708919450236879308519514196930929058177814723858430706671194476153437268073417673537362605297786928564638395334783380328639849621390417833838960523678622869366747315635436218347229664306973969436505494334521554259587910325844762847379504142613668523081921765629182061290870191120727675226320672928977754605874365418743922834853137810628718854265771074139691482336444352840593270559838835719068214964152806675653360678356986723089016877523535259322146212635606794410352601558576552942664976736392018788999162696252679853362112949136924801190355447127287365390700114990896076643821763100137372218900574515105292124499817016209345649439105679034857883341381987064925889125745287563139406469657941385242215138077369448953573629859533790058423901645379133045461519853056941361003687947404686657443201095102731854180591319143650005651637908781281706422346715450159564651908690731472811655965071379490711017110962778601489497869231344511123612041347359897299706175654114712341442623960380558915156260497199432092412389439951192573677702047845359742912111347004819081263104171528042151921080236574501297520822833128443338694101963941590868475485717506719254672172667617801096173343194878635664986525827690660008174852054072132493464781425648222457539216569320708973027602909960813323983006783288015938510433697428770556357340577970553325796357454139547099281808115760665707452271179173988914929743905555061882550197704756791829900355959856649982173541754490737801498692768557152602257291280076927579561593853138848187979870571722511416854490301230015386615225397196940608787816284608995040827715552205536155678921958019004940680888361863089373766656091034987269962606074581830037322245317221643612780158072073655828713791679158081301934948763573286518210223963949987426435469839816672813017810591276242405159080252217198582495670871592731568243353412327588320486572578815852881933769191912839938194342892704375941224156805457790561371030287142996205885275817304155109742462276994622739284046430038568773592555525213718945932895699333383328278590402125900910198837909010730385547991092830015989615219790129175232659809110768430967123894752397426845288908031066573382785862690217242390832813188303159196427948409905573374624105055250250944996353681957356199779435210504564395812313356451411748467902418505155477147160337242977586325147454441840893759738520852300556332613265068319112740856073699225626491703320101584990697458862162073627469775109800535768195736754615767288091398072208516518770909688390546558628335190017146238943231060192560385165971902718446697390050461822408134813875556115857063295101687395919760738905830838704452667369681118483023530417788899896505612576713506049580675380758964241291294430082473477759503124794129220263902485733534172177009634747407959370285889033066738494436980097137041417720338884249453072725967506797095423798769965443089435373044204281765782629456630092621534719357139008699284354956256780226129211776435386477586903388585673176766634690778096338443061859780913895328685455806424153441641626345149667514530253834098784804377874831801620460537648360333836204122697185142422219046602425575688374105218960588006057835255913446267230566005391132797372351913332612396754768305836121097969283941909248029248257147572562804384395555563875955301274513648656111621407004818231057207720101548543139685631219112259337324643455968488318857040423814458337763224793499375577690679326335934790325525002135352231220002260173080284682140312485007388859025382896967118309990466432542419955077055945309094815391674366731128015777627960183409859458909666450208037971777599659334470418468924134412078412470195261482591656922786979466726186746496158195567706717701661085165449938302387506758416867941197878470251218169585540138266100042426989108680831256918066008599863213084905163627885976383371705825763698407243757171854334299059820322234083834154600998477140789961356213094517998126895704102306586465013840899446232170461312815220116928289394799140074663506739927940016787658190618205291785305884639288039223205918572277217443567394083804009285240590197166552743353108236442269007816551314462064538880124692582236694819883988434680083608745655592366548450057523297328639793586775638742277297865371092101670542425505975841717479178869476549387079483675622981543236773650103397137034620890185144194390105049866870254513797475096067472951248476589108328693797886942126651975362800270647320070058801793059920311801635364457289734679425408492421973091353817699131157792675254812857775952528393355632250143591211303539347928224988585669849510884620861581565775797771291571289990244988888749208757585913708467510613717083686052084799754260539135838589113718253280312000385327590988697435065959681095598079438890152477190348780795728319978085222244095320415174276479813348454028018678236245616197385456722701846463074104499645359061290185232064203676253081151045633726080712174913127824140655939304291371723813348271530062252368380379025876956515148254854360672900525969112911272452020140113352022491767136729205820146991292177851151855680195173820434373992777631663239411449703043132563793894887549170024482899704552989369866570734774394696992054930862877559065217411793545534657466686772542513919579018577046579192756078684870335585198064388313980585873253156500045856163668258376171089088687982884544130946260073197276067888392147099387669685189548097759158947466544330980886685355445162994341039237624594482997876062518012943821821277409798404093150751303697019843257260345846591496039530634198280441103526561553633368602189700832778482977268147745035472639276632073259140988675722405970397191146051606684107291267946560927241881688684805591398851174923532200411070062172846865174571729900301562252072039271050247440009820785437824477103171632411565451775615944373425823711123809405162597354286118422733738220671416162021868068997716855369840034490622850765578908998501428013478873930563804080275625016281551877225318304279433566462902942854542701699747938630816040622481429487909517967808105106454785676994418114105451700655206481714309470962181077901730885893498710568507829073689896848941908015358453685229653239493145027895001474534151688999255133384238923373211881879597821778160678525310586354533640640235926850424128248502770436811661491832101586264733333235216812261298478737667116709912316876379516384027395630958195349487756519627828367650964850425638587241267021718142177877221752417409773463217592272149703754784934595443790132369865905786991873316243659569181105656736386160946892312512383592482154652619040967513640547706723608840365253054812554363260779788526575647496465100254465681502829848398230650811411094522665753212185173675389058394028902814267922215292174761510657822451279019412851679058831337336068383632387265104916715187775722499819059994733067893765741233481881840330187991127574086141836872920938481376246164277978314726177159514880157687701680364814833811705694569820129870896269192045575111706865638160519833996428243833129808407720195644616511306317045529464018965692518928146881561391384078635437605692659465297362175367275363169303098717859240095601849680695744129100887600105263826673736083921511385589269285283826850366196921857988891300996938039074741234921130449986271342899119300042901195209784331751705897350548548722481249749042558709885241589672477199889093459836809540950131978599135776058627066148253244891355426390880270167583848644251675080717897590766002621398688148599644453719301749583475168656780853868283966182340509516906121641723368041001113908083600692692989051295320806746258512195953771818258513745916514619390787790384558023768675656623446287147247684384715846357903427500671805408986991221277864306030616726964645699741207395414192372205766923060418453276700471041441424660079559533868149712656998534311594913473389152577332840674300212540589023122183733403259132935733688749819932643319341758008618376309585371335615340879909684284302191277768787936697440490113980497255828651143557951955897587853810165488091112494912862922392442387168310687075278784716169386503584687941650600484183732489337094169923789180676582958738015052266311345148705569391545226036048130963809045386686412453571899815193389008690660129025133489360866750144747345823705021777359602435927305225320278611995834283252898371168563736408569189419631068886667081070053844649031893225627823102856184589568497935520486930069304533105002306886361172736832952762631194480117671190945766532924919762150881639662081722693176417620780642003613976939992204888988602804650077844881302617348756528942076966668363308238738160988217389409677791224061387261954621790020759844875252137158696564256129226781497094291421332933982986184777667746731935853468787559152679453136983325516170526870748274159230864768509344784749321950450794588926801940898048482987780813215441122345193730212012820199597158340827988692878642040630311318297248101973657325595892205272722305425529589117975564102958678678815235999919602530767380124993216138579910040859656431364578605384811188469249158999370181247244312793359319834966867880867185647975428501919334741186029036035545586106281813363533092902899030532067646567180417073321063522625153680980202066240549395654015967367567840173458926097790186821377320981186534655126628996662014932670653643413740140588956180131390310028281753240439818465223741119145596310895787035292380239373122055325079534783084950341709340721315657339083961457384756510463807120778538898337187131018364717831299763118350540264666345710549570416853762972492369430562881320097472908966671766354423999915262031092181444309382477620062291988191836211004123181783189166478192452948505193502668457606461896411328802591643481043526440474233031933063294995758969202292753159307958904405898466647999163465922631543374004765243644982424799343014657392558329097507652837013476636575644287479103605693208930488256981676397668539757355882353752496124321998776370631612113353088168877408440703068002894793798213717999198576985946320701114612313737981776635416447251782611384953152387039662151655926096615684560414173993333704580620768827491718615739953882664246334540079350324371383755600748899293189224511441014708804867461086519179781186263941759143194832809490884829458357921268372139023162440647666254603936400939201162551843526231467452672942144628694318627283107937092596226939739291041345636086876934809423825999460201219651671599398346166310461690765804174567020987584981141452506211964078209712696857958842889877258534105818010753254061766066939309912253555379724347177584019226529488379065832203956994446260436017870682462152984638263362960640182466198277083416860692819129622912293869954428330149634352195124912566785393503814830016753393522030195676056969274666259477438072866344020567472061779076658266475647028886419975211009794556462214749254457326496074879970529906556027806762132641756434163483991573882948269283553301777391480692059024182075279770196710338489364054808908224603864933043215148087379807923647123608779011614828122658980779773988261714024632230318428317640023670448070170604268739372733655613282985762370136108741545498366417341018237721463731406663418816017347453713740463762315420287340008846644484153545293132117529712179410487211830649420597133313820191042859253691866979920142340502704932672122539615473134877690603999637601450240929363812204921013932368437904385310474464345402935419472573080252380032328821077343285025723368376329266688001566898295444193003950192176215379949317440932165583178584366783812225485170600935373512343540073982783794424850735251510367941752294366440646724355656488590011827060118636476695841696632505774641414670770360828491803051903837669744530773535044417893037923046647163171726872014005573369882004560808855169989717451142440636353521840497339797968422301626393390087737933529568379226881216267338343876249702930359345407834635990604688563790871377766427870610907051779974453634912382248244909008978312246829671436986766733392471793894985153675785913961993929329028732059667859958862082727624288132008476857875301935637543064757918371176367726911671280755554912486350156271149675009123639851851867779541067986447345665896449557246231151007773924281878997935899648967971328074155763505087527514292721167951225724677127826506994967318194164465176547602261963863685189099435091813012226317635743572205751699543884740251028284120998473565655739515102830495138322389407801412194561673524965983764206980474709771872249257902059817130075195452898245592113231639365028163118963288829915168446877265173339317268879881497297377987236277722622871888186327673222628441727589607178203477190891673010427122463616514927989062989861821091489177228892833896714847797330425766836280067035518227733853097787858152910294599159315249780859523081221998873923200498252079775281215119644006813191076669100383498286308525064338867047019564325544367087498070228450143106816612813745687108006204454916231243421681459906650455169043715825363365763187513653335425961630871593874359892133252515259793933000924740579198911262015265195323436448144843602404309559253136414721906643319299306502367937734937105760439521486586373659509871901920711075566600533655384860589503554378559227093666261418232904366144808491013942903328497310315137304283184888385535833049638331639745189522162721400708022985935157116114701595416490732983653331290643467973432775234569199396450620537803031758027635265021630449233872114339343524193599068006216988822714539715130147152856305239850621371863730221822630360901628077653390876687971956241735795148925237352620552097719085902239196073337524234454032412723532516042460384584837106823821879900063152448284514827807182683059887914829686074017815903367505486420033495198984768591231352983048734991728717337551636564169305329784539933188121414060820279558183581137737576712205670527633275261391799579891898983904027554078108510996562922262203939465154998711443511661050805522808959898207590115364470714306045505090108435691196923042260836619210527229649986925941690402867841024731961492300731051242843753993587878109940768726929835720858011929652707200546118182690835447050562016432927366553203185633899559024267525903513814920843415757469733512493073449492845949073610013930613770621667160466046178000595378852517011947153453920181575750148499983800925752452730377453272914466999582608227914736872099620853196205052973532013180272080681414154982304119952620907533671065230902822359878610826498710572179201975510047290342370660722259493564324422436770495498751951858917246517256291728253181818559139360955742778891253398028772121769461524839703888011103111900711387072512255851175153052214007680744892443333498790270437901449093875714075981569478331753247748789816729944872129351208090524042334309421348410140016843951613245547378036738250817053625022221414468132880388675579864473714579720545128899303251310194795915789866254919528246164563335463203073882075542757078233311955840790261254213665028756021650095806084532199892803764922939800847388181224232716490710829135646100953936147804461273069664807743123907659618797144216761176250213486070472193826605438127626440995869343576177859219135650424785273537878035317894649960689969281795432021883344413528838072725437882915937663915766846026956601696214228507635278836631722745298170063849351547391092928759529272017241059293683428102742406881211510432554282303580033942843877708917979683495801898343039344849823157279725991967724398992729848480924193019888825048397403672236535548827914499421512647480800936116555100078066438161466903762068285157227572569945766738318816951838950619467943746790452448622756296511436149802529252213586565123812299297304576700535614389213851831538323185063896965497597544224593266965417267386144280770811099859907248967942336560067852745378572524596298034368910567385439735215524037422421771838762977768030638062758847954943773025150808967433286417836410053927086545444504226327883996238104059564110425852134620542914988454917935818630887063883252291911359803508966891373868478170441422687379309248876239209906311127180328512421300812302517678045056591312457186717486004990218916389380561955753922767492017644580905155560464047561895508792971945741319566946276905789472620282891308980121064769966995625005338512149782264627019802874667644365796382887305836183690372489525345356740463105480364318752424870242173863670910300902812150991912306685202149649765458137909118140921997527717196768630954357881846346276027106937570669716555615899543481804247159000795027376109685019162757196637401105585759475090629667007058173280869408316337145607579025433409164143276557433003326972765971015374798430402393558257175066029287609352045386698623851809249315024512544459410998776465738122357956304605065180550124256969947874402903451127458424237136411696886060272185759266248369032030793499019936236631719822262479056321845484675212478680467255601564813235081337324087817674342001530010901451254980853944404365007545748523035505218075937610502894363120297361290301863591138989567114093652445925942614323224485734476621025568616733697378184991053757294785096495605769010906112531051123301634251738277267636533185443102566527438425585537609309050578975293578669598155566936806252968949011270011571637672544627397613061704163198205680792182954057039251214697929023867459506002155899866720559932043570092890381181798824549314992139836921967067791144042851949205620386048754948144945686417607821989194531571171493565411642514043328479189985481209525940530214140670267388603348251323840531896371930608758915982260789310941236916134006083520999710891258093665824840778299617747350813672271925730512893369852980671131359546154549342077886778695345309083269900190893158784645221682126466202615577678996264173313826549968351792974700083716500814896860819419815769611765025883445368931064835393659342809259940099222059908417487137629396811805350690940853800789491385383684507176882810550288835283732463675484464228765285102726066185791054394692063927608174687999995516982281580677506003888201637566060995918867643173113403990711070615491515035134044913043970511632005649889750904275705743040415073453932211116518190316836408951869347271681952826861428582209274673083418346917007707604805542929659885677163892887812072215341438175992275047545858674949397616632219639065821582115105690579727357457264351075691070127366312747940929135756881483775666544159025140333029664036433403037876786730465513640436274226109448826239725553874527497602833202936455750418633960507280836599172655393621747483307210824400876275738685482696500110699546043933055532228330788295169097741031132753911577677183204139590429878322057042863370404347133018454796744578247584297023700119932722094357832664325453461847974488491254467970334222733732407196304291133410365863836893523389587798165375007360776497256690878207962414288984149282510878976463521089376974708558123029414736630358589336702226244526897724637905533842849258809116934237371897538907829851494043910875848267925723339728260272222136234521293608925992762630659762466845127130384453231221585116445538446252066913394815024395328688203483608146691864603810844433281574088503364408177039896070493308709673696520287891656030151769718412999304255334536673861393049097222601210837772284713826120581728614546419565380187691172372883087725428416294294413651518947540365527865818879693578527744700431431847033140339273603634730172893307053768831505362359305032339976541664562472716800001639999419886014048008695487640858928683660397895095835233718977591884302864482888884862862808102530978523573400160400281979713126620862945606418896877882796653837525622328883864647456278379198185871346964572217603551173331558556048190915526236548245374884584387837598653343519294318224210156819334908402531580246758435598022322802618704027215698155872887241890244891179151896821295691990783554645480606243045793094954157511973193153813530542029666790041419462369435067360807091144676127797205678271046478463081056415019264091854763783674022397551266468576647851632160950382792369337464920959044131013676208199984891832612586479786569974528332252646143015720125143823661528919796476368310057896382706196764210607611989387052922605793264688526640161083883078432617269953084950642390546236972327709346121737035601379271061254608738501894135367086758607502204990400926054084773490460768154125822521214972262883573937890171862401256997494972031198165506191684619201888209723439899966844528186027869453562849140720834415265734717084997308621672256669536651666217847435453498264488228488116698295085198102560323774975587049708162687453081198512825834308090467156962293446836040547720892349855958913554057517893752251550427901871449546094876155833720845929386505782250065618104363803012657985541882457375798689434708175369104786099991514496139565179634173711666467965230878476269151034202645628666852900093396117954989128466788298548952509822722087908768676979565991420070444563760041437394251398496096515097930622169665756936517495057315172127451773525535126382955787910616313216069274399216422258771673581114840890798580328556042802441151843260090698221558136444437476594598533201120704327463113437980360914849576801789077902683502604202734323158538133368112176558648323918865732931212401442647383564741519909468482766030803561275870498536816779218311911981276900693534616912009459749121586699122080399960267271400882166903234461376991799198305918003615130534762023732267867952636979132203983850171319273727906175914715030639024553074430860115354428884882663824764328867175039557498972824020002288383950297247052625570167685515007236096468217154653238494214150407667667208046766181999115453163152424241471001665240684685878326922749661425063263321392562363291804871006651211016540104862570143716432941664031071673394928319497127686724002490833037596208025296531157833194375259095681760642653132194024577320952413748397637303139653744958568542913387774355327858442103232963575414547092950154991963218623685655096734490805426491687712966249944709930968198522491361786168425810632528057104482310947678897870329624876327821532962365927039277844217299561568177857450948661742432754490880164418757001703273623045741849214807961934361685170857386620673426877016410232081517712061341180996302657486020153913546420827070042662618910169917533983139840467367206419024943120283743008179038882072106009967914420852299579140391988599857470569335499492530231121741771492324348906296947042854607749751689412119251026922850142463861679362688441703725562518452431043647296157811667110771361258394968341970171927582792950128080086756517995919981717173373518924125504241360156725245611538176462599580037539341869238302389583532125190570014321683526232328149119146926864854947042854995814733351529818905811116545253267898257952291525419671116636262232959310953060551620058998555985064553678154380818656309976886044649365630044253444740063349689609988132853909164127909102268774323456204070773314787945358677835194735504648930798341937753078702881732864006400227515185275370977743406994832917916469029412601942667243234116927656691913177435565327317436248540542538966228393262190309926713782504157321920854486930350340746439047143970506207068719913605597427501969130574190723372403148741832099523577774729065977503239952270489976206960458477259326261709739815522165090032486402919966310209623946158027789960434995740009117994435749253985906608956850338143227931160909787982958846200244702929364411366860550870315252828943039507660207080950752077489072109844826102814925990901232366696416945257617562720133627015621116243601503457463570512989437460316921103944319479784049740542623219084849406858459252565257409807394942708572948547685676412941656386262071184135907871534255767242286135452104615559971751090442665183966172072684087336966215443576187505785241630804732510266305286636076831276018100681032868511351097706969174423157154474264051575664792256464896748178721921227761413499403222711484046687208405914145789644702237764633026777851208100492545525821364492527497463007676969916459470304351739567711850087608588699767653396440030468784591726699596626265325711776900077088681906726149080968811699582472307373826807186259976343179472106795014929310732745553999226171797172140748192488167166584598218695310681050141270689969317880497091431086935967804201077806079641786151764135811881975456909589149041631845407842618779134523211470239227096601661998794826207324186942865706887929895082362558069283648902479414083414034475449941288259820975024628829779888708324941576333153722957696589697642240770307007929218203406734570356330756484586553718084981592029742333442779284607252000157674247482863706354548807660158891159835671020026698235770293665688544877937999410757920112147599524366664827915231222165225686545828773670655804809194157219868130438779087971426652100115704503061939107633765120371578807583841142937914937278216006755783796938230926141314518198251588114446517881387563371297893364972197978401467271625063282555427097981589790416485281262813098059494949129803713586937051501637723554807979896449810563577778106201611411085509922377908254471145521744662015954584576038713995817047677859248478359116065856958971565218380334893648733323930622345066233297593807522066396779925139783110091522503711924938366378141590845119048332914194280667056983963135732402431971628157805826595109716331403046231544638329740268541884444120491718244255257443895950385903240737202453208332343748900996841490756924344418399148289792522747874578925915956502161786049283900714372213638914662150832119996865815061396061607691846908450046313544312055212991088499476950619045649545242095426990883212285104178358375517444086105019612798553872711167256217795994444755092190120641356545570365701002519619780496540516908920425826035394480092318496727457273388618291697805733091047879955076660448375535371652673373403013361612502275363355054749487531904938613168377835675200706787822165982647115147937226128390730464915167503566573345391618461952309627200790216767653266123284709907869806148357274009805907415537868292945614457718789335054155057091139631425701223354605523769900358529272499352418558036202711876941195394155327521223559966580580496893503096078379266855886448646373927342867298027595489232945756254042093127134992281652929995109024154754250624825038476921086850263806992830456312416657637343160969164936696460944863803572225357053483316375987840113342279722984218137033631194812528594904398357620047159569020785606313160733273859678916291843232818856809381963559874995068176176481643934132078651568566278054319715931104876639185290444362627055330208628324073270962484769037997236793643422381264752151599146501544994405034982656515937136284553797158535538126412244909410742930101731184332625812734858862334641402233153351485283920934776094348370738341125913300105897354772157338250291267635511841629849933674230572076402811967277454928401673771417404995284203875509897150972648610938599336988724722483839158316155412003283306485281316139858120179555850886286254671407462405752874799085867008053993141586725608259809588412445970641411206731478169709889406022684563275798200719570912956628725878864502846970475844585341462823386366043035263551359767887603408378687248149847406459319063880110172425726334391852021844686489800909355642948804858511395012231344088670307876363851450988993134725301880278402929053512219860577009443518068213071796140531078312205510882733703759994266105788230336192848551179869592018481329260364902189784045505424612341871466019036960246802687450748813928935175554410702857954426186970393417800751014847685094792393202240241884879168272756650073931399940684303291420873241764260267047982672069926166844068815300802013500340390700409798395595860469830682687835803340080864436925492887384067698754407057099837905748442817759269831532715532275808314046318751500906260502186528964159531723459026359023000998168870072373879001986062608268589338111433831713469185332212395731253614073289584265631784828171832348273680038824020398150507030175372119499229240142041277487357674129065774279017653427527500922269653230546550196763320750659316365611575664728103440311353971694448331375794921348632401425599246846418005293860768647690536943698919936693946169485176908674363381426454027601821573078635462316593571553242889766476475136742966229718099670098090362854366376804508028157761504614954492670357819117507149779318109805335801386662900019679217648477431420228226948848633722689058277805064101178374837969085392813105626405219757947772712063791704850718872642397021799704876605360922597402713816375425391824991835856940324672099604962059354347442807397665378032654862620705010109672791933791049505236660225499323993281411801026068882259189660941892059767688668864812527964776064672900352196589959737766255032272506432896640471775913263006353995024893816624023025189595883093067595256210397952789446281972077987302946644415489389509904579187981116809461520337422747160041651528454007598834962075574606399815755955482539428209827845700316024067371202263133988102387433145870158697608587319913926048457107729726562124097567032514208696001948607646209344973157785190148697244583850558127779561240311158703929533598473190649072542191198144454517607148033933876706516576363764623916937437170967614595240155775736748069751034396140778232575727824490311042304029685414348857817649485186482347604314304898572121875063738647012080811600759490551856704593396053635788058124017773163813904689072855721069365861284283782348989577650247427784617745100179940381308439923137932714484225158103179065319848490329481576825049959275373997557140333771609998367711989860940394235390389430919210706221504870468586912173424224281563637640156647143228123099754949464085519713652001986208799341764148573580509570683108043204644818754625113241915030436000794253494709062532662272608701968962223091682127975730272314456200798103644779372233507712066458867940070555146428723195133020057939927354019500028245755409227278883323154090248191365213054056691034777558564352843095978251138489891620738092229857896003713324732297017822488758933234115064519888462987520273473806400416397220787999959732742577832106838418494220379435256660139973484816102268437324217471961672075741901800183036180106297845864538584458724564604203299153244706244699232847387883348119517131948757601681499740579527158675558657664179372377256523710548906693925072299620538576373963836459053930878762352083318691374357480738959770837116291913587520002847831973288120864921833075143682282211717488111568922041616204613143099721365218290877483657871445426612199553876346886286331621200830622451369079344804166977765067848615879196789757098528756816746672897201652384527347635784541068654006037262479522765652920172668979738429213123963122954932690980342613252013118484246149095491598608998505539537333029670028709202899183266716177798051506248842803641606039021511189764931679667487145251226039947015109712250053980729188589356822387212262796692510059818165245514510855591565057635895567770369518942844820199799772370676371437346765577736869419128433498973929810931708241997284202007323835493997446136454879260598242028576716759453458788315418733372655847552986822814393167124309264734626141515893179532862196135458004687028920785484968608290349491377823494049781976909532092600775550881853029455577498504482237121659399483062209865675936726372964658181414639246123861647673196905366748673502782809198998455229611285972164342404759994822140795409852715463404623245012660217686710591744865315637101204705046675401901781191514846039728047082867392708545315102796347739604418500748279981623986790103457065457262249897001857593594290608656383209165713756107100919431558769445019354652784851020840847099405278302024818611926303118281114768608106474742095575625794722375253558700854605903105849861726117388454309229138283407337704783107630168744649957825576716759388258626601084182012824842862860479047392580695997191353982296368610602035967145355460547536564675228911989929219150892731284025339144253251506193555994073246029748298741820987870589367575176280203171652386807538040141335209589093009312767517813609941129924429908017440608970232574580095843022892921077947547349621829370197505346248712856064064005384255574785544264795739328454652534794463100112102385350039954067861084583400238404935933365862893859182449403216990887084215286122987619343328787011722595041658679614730100604159639997809840896247572792987818835419189801649503964516592252884391139711274595810511692577695436767573750700250103314944729518287754925709507374808942405820144484828874775075357163296330817585599009109437718675925618714425192802238076110024190136670144269200858655686864679859258861562359999915030890006103972964004250280238619572431761738145152446773381970320467223708187986116392149772221798487788134647202281036472927184287752556598204056517430805759995867110158816652712140040392863201725808249831069803576608158713490615913842731744576422760522903677760604817417355781569898747317134376312469934485368327514347462131352955000262336014225771345472192810960507693306128837373755633373474278132747138269807533074513174728919623447258957688557096796066021067028131310665842040289777128792305312117098440072787337368448164030307987834774656596807828336813379047755598283245777040120791966784255591444943744892117050371820676314189027721502733384473400865797598218536651500921476084286423045806837286165420674154353695398714846781142240334566133469762223910310621713395689130954876522275563135239730392558028628379499608932643739056568773138561200136064138070815687460432855732853231496477815720747152735987243933103689292742958139713576002020882808805401281568126281131234357760091343202618522576660771693074196770123082865796409395572232216275105048587678191438884449917622072438746132123178490769632474734237320105843479600680000647193185640877241506778221494081168653704300706601690831918676265661144289822230028008326505322141442940520159278818114681944867636015484216482660107305361890364853898000715367593104283721861210982145451579079784168564930156552638963612531014413054531755179844885460560271423066901785223565507636135983337167701327747036472787387623140463772558859982101553143757176765118987084389982510132640807234814842956516163004332210386822775808282388402476312602528957633256825667634735833014262318412081158069422661277735363805335252959489507898425520285467739812286049863637041771550261965976129431868968038290705117623260065779463518137867933059619777104146134698249825410005252556022000441277567563440653254961941817117280804299102375419514180007674616065487023197441398922383065406119420205665386834292217248513226578891934486403995997768856276969374637768342680057553214777189463686854481779984227363814331910707444562721575850450941211025939087832819003669767217118873621832766912305627115180380601046867185415886918007065298755907905512376765832493361183859021274800468896410597342428732114558780464684898182219633155534492448137013002513846019189354309299281062006863129541354808650419928414638347057026375732145934389974536694849135963018420151926721107102826848576511239904099077946999377801309940706746012649375770591606673648234199864928622082284863249642899388329926263891405256279640646116558900557709974208519964057338664512571096031699358145878450408909065364376501533184703355622619900524197050098378248206423043595497529022058577687471946606616022445541175961074641971280045764011737955957707210629016973868688976954281290471324849878429355402331897760370972602704557404620215919063599669296852248512836138118559345301112537761939075126302287964860935491873012662395636876725283185027906221769091063844983802437400612044269190512867038478802780581842382394851523331821745941544263198722026649452880430214094794479663494806629576116380571581708442713722027767759858632476886246391397050593154252355753218908028404024674854997464935141992780626359581532464291218303156217007810847333279758593416928529309873256135641777476078671831556555212586503426899565506605308762002787945267202426602692760629767930146743415538195588082358681942233990454080528692705448785145290204618148669309462339959715106698632165486488900516705899031089354060335221892404443224245511821754647773788612700771606604093669644937935049400329230535894295498758419480339681745081639134443250368668200941313959936832014812779292633015412809683577733673161535808447563525970017757014362953712028243300749632900903518938898354145728982903334740855162237628682053713587194112729244091297053280617424372944612037018587077527160279621895398181766464834091336050557210455948982071992742918593258404148787152756977225656620692925334311964891329970643451619955005019306186335626446037604339676015344087135266676963613530267517052350623038914608176160397535650829853420754894331857134517332099904019802872499380559464512820290856377235064132892713127363942792137809517285659476999727293267012689927778788716880977489768420356160490863674982203886435098713799843726058220379830687553426665610277626643398835339621615294192573051320772448926911905850436122343329713157508798360444215784938569825070546758332338865427502036015723655997355678158362691376647785107894553689589186498501895686442911977199751977054094088987723122283179380882691606337636712779823566654984066018808461362487065066446024301218596961282008677329887314825081558427275261290731466966847167691838001122307768119404384564733129950491228194360296377861762446046508353979169251411157556101858394378120710745090792574631234612129651816012864923795567687543779977868063818698696992450358989751479541902623741653111818125714404653929923006916930481246339177310377275908512220411584275338444780048084705537725899589410443147645756125910594489409311457707645292483093495904037198774750239504589326379963849068565252919411482742090213516414256529910231071684360486705359483982516567270795160762998188133833251060084225470311129591723903834058129873418527623843294168782333207897488375147417809511384213724043768616236756669918187758148846222363384175728886939225137506433624742001962677250993320406032195498715566867152324726106768517679979474340653146535340539992465864176820336941927468763964326037530547325824744591840045200269331696808350561870749918160577696732841726230780731647312782472549012920405496729599163688976994902509135937225355276428716464625946841962148283846672503020895284061555582032556941054688012025976643987253084789625538711522409864136977610383433640898364638119783342616111610930287463963795708635299988317940795366203285832966928612161473665506584604108604079599439919679193243120512649719697949633669272690164781448437409280384632166954176055176891152108656535326483887269515413210194810263082256168800133454220146671989318811846750700130267145811912512046216822204114985052194461660727775930999813073357847908312037180218188243870702438242046790019664323515497567917083608252286916279741969420179434967270909825117795918969544562544335612434986237097203460002836039520163208869489003997510818799189407578722661002517504735332140817126408504340256608655737916305339902864439325326757928004409994096101072564141473682751031549233661420706768259201905458804465611204600446649686627197350804818639374311922230223820282599546226845310903015758389620116814682628954350182549642206669901176696387779684731993049732779085716927410408885349956122246217430515594132405891930079726735964735252155476036935478792073764248038638230653909480882848215471270716173728301365019834106203044891701317557849826024833073310284855050352705714681573410543930321777724399821333658075428999913889132381251557703118766040178353112914278119833533711660772236818913332806844846959845149872832431355138498533435817889558978900314634593256670764259485868303787374437562196242875679810376701592645642018446351253069362111336565671197794760519646424135193332447715939487773716720376574409374841785398290630524239568450159751118141908004675437946478712711561073280968829741526598566130915997123419915414424033689925021448057053326539963538510566666402451707732414883440955264610804198527070336654409425780225760741891909311037015230263884422772770880202503433734190561321178063259304709851790387207218102012692426702302534162921087451617324380454450232179226176002447627640681720204227169682270174699798958201959443028201401804850372755748318927979240711487959343115274159934459404062752497386962427940282257422357998355376274501000486194417536260275794600081357582377185957325318267887728957182198504754728213144667864113751738523446833317453869474913091132956725438421770370275409777735191881315734694390719387696551573874532208526996272226879990236269826245625757554268723247398415195249847486639576714811250976679640339471049275913937219840553685356833772664733213134799459589374225196009451408167381558589059158960675788411395779949252768591850700067493300114540209944911421893782849093359631058524165399261892613968640662161736634187438364258835056501165906110789072684066209197949595181801553500927701851268987031908340024764808659787445330697338262706726324388563309054648678914248134701917764384342085969952046932766703500866448998195648394856100889296151948542519920597214298703478448009913416113874649867704035078052121637899885244004319724448615876354743337094271977079510151903508983672882496741145257480492168939548744547361071641372203112809657419729075946283295501176859715349779730045121818004048600499529159365305190081329204866856946613281702322531749227482513445186533302658404961151516953920958743455108318001358426798870352170292165665554502765659110583070781699831211623231654425556829012923825038479748465817094170555831623909365481993447792575359981057676701745582916400742188683114174433476006349238949736248359199361826163350443394277739652136945429989002457300300172371092439841893039565429261314634272114371136705051964315206359900760887900454947913266655039947975208957191582770680961904077764665686667471607447410499879044104424688683316726238326514873464558925205250831321098808845050200894987405223638220711702334426511785314203775904255502417382577381327194606355200632098909085088244468463570922890270202499876255618198098638453303719466626002664731627581410213680573691413584795389773040655721158191524834359393311609836788112882780983685353472578700365433073882420897847212313200162441718855422425466646290164658377180922687107069241431847651570353178832208635197265447241790762041552593667547424081619244486732347615165653584274824152530644990584934464351678907786377229712361635472365994987129306899537745987788139730162532918649789542044902449774435820986681313362969721546146180997636300634595460794809796954345950663638272367665848983589615431271047334750221055228896700935922073113650109975184317342666767800730690942125862516260602062000454217202452612829762092770334059382974642534342329286892013505103587970137819729685631933757483002341004137115782994219469914217921959150963242356386525690941256611446463428104433562824309810358717460095363455193730566508657032597776460746381303485092572323129174922055394091613086540147650443332984349851501544222052656634261957539410611090870681489672972800614260681996404261783878475988432876202300688640863691533862093308405253147992256569502444707447477657866707051058199389200135969683563069049691623025249831481089636662350553275515263109071437166380538019930830115752199887956065542608892552450883666905934473215395125882632086118787322365285048658519376184373093704683809811386250953002138802502595274769846708656065287770844241506271707491308763877874464933054543329786575377274010947718674083937789634125331108668830799363642706459824422528869430876603376086395238147157533697238742278071461811542153167737216172985817302745721173078099576941263540895431559842161833110623865218105583997153238998000916904135502758863964672023675501495770684217853609486754879215643675492833713370409291425046539153343095538591854177732055609704992681597600494506602530081664452834689901978123605255037501378020436840752527804408359218881233649325352912310159593388929347540869195018839773147489202000072403608575345382207401848752340539086524708415348141372276116176248156937949742899700568268310946805744117551929759137403794944812902694766570490438657369176696191904362014533830847581138966134392124446776698171377699932729070173664294933328604733101788869623040716432312645911394726731701206736526577930837898457175686394392199263193611271953651242474748598244587426049074806223360173613975382505264543981306873299845659467232410516973955666421708585385554387345668872003390478336004538354946242591725707034845697865299619225159072614225112221157292030081191766489281597015030370709864777768217339822997932669831762846354947633210287794379571299946273052945359080969286357272000380630963995814548273500917706617831952315821460595895120138078894593622119621829010396559917930507012787347023242936029977389368491757410116929552014124309209624207245237850548934047611576052455978677302040298200631971172946064834974090506910863341408115114920377063174396760893850487139230682654579591750643028951850021154100373584263092226815245765091453273470911604208429800091516550102183175544397076281101916591388612488718189776333535526605476898986576989083116279058354626646743624083606648573881874507056399123862920389441616506541491775007482553675076312058469073606011972964912357592906860162507500427905364892769168698249483626347863350948980472699311070323160100851747241714696059825505837042873748525284001807265281995410010948324837690847021198025598252574504885768976987343127709236996026343004671830387945169079851665544078861785910423600450080835947272224454087669072819401914968023254937070824852020520020728110923943282104763790525284112892301491274222357052904334724934825796394913249165592354579813226224567505994525643813788792971677293927958372430987370439720741158799716003791472155435267149867214990855729964708883270680310813631776090478727527850187186712706883269769318431416355423195053050888106096612698169558917533243389060076041461296741584878192811329536103307892612980818228053493440709091058929537580972758816575305753737037293196804785980290268722186768707248127141042419975581191964699782843381540048519438489684317434003107698311413864239300794812390429263289800943951533492416521402654119685667469700696844172684623752098695411154996059408637247465624636670137258167280157344677428497252414862739791647868448776200516462715332406669565212433707200284350904158939245478296499715864385868280506264115533057311106039054307688853527757670298186895662005912017955497285912823839617547348475707536688607315110349338853860881265641231644716072255718072111007599102485432840751132226164724052794827487136608388184993405052614328007614217554849151811371991732821967184583690068027478396510900259865868093204325785142828321898678564624121844690227930881155775345413042674195093037137349958723958144452657841961088462314353887668885936431083027817543361476243115547382940635181551859156084483712606099448451625416269234257158071050422971750034034584186621986626978826515495530296874438555986293382453347451601723523774194049870402282288214311308892847096035459624114042900539456767517133833966245441801878339743250939691077277828247026474022233918261229860465728450304504783325469059311295876379477355414511501205634292203926910216091191209616348399298053681459721227338604320306306455441992467110493293296105353168993708619586463282210983419021880554856597929657593206777448259100387070117674182082186009533031526656911315230942632265136283834960252238710876535504714014799321695723636148613112790074324183319831114921401472741223713234033102425363474536671913502696531268386662224091960477694357466461106696848214363586196974379408503743311304178737129303941178574797548358205400353126876022061101149705205998365357363485886578591791940521418086939012892852177914073562863907668588986490093413946404388629364863501225059903580234975031796424832247997536684272359901889376976022419423466010159882216957016407228745343755539978657674630663006200312724956872764321709896466189843804537167255882059418216469313734885803825537548662540904864529973243949669814032942247727127230020751958694257738068491752431750264354305858116656370817866887004655737358683298655318575742385741069566694378879222889745038906936047901084669378163758452576863051192396817609004998327324702724824443856448688243872877362591354182060755119018907831588639270515296278020583097019414322998609671990795940243933354978253731803905400121243572764105821242383796290590496346904491550213370565057034099830944097892622394382882505589309939673509470815093049360316456393300442301412119612638640402978486918250791390006717803725569642830785140902850700789502566756748564723178693418592944591483837483045558478232647939327499645198004752656236899074678314577213902902490852708628905920513642050315163415976040763952304205861241794024122823883891105378721091053991064329653189944989307064093271840240308903655799653490281381595506112478198089794075700204657035232033595948401279911973837092843900731156175827910992180479162232095723700654077529263620484112097383851953768114495989276667957897534340424414368085101222973488506581104779986816736074885280966361305175905058611527970143822162069138522779968840844719882079786008589377798692062591013224050747901243723616589996079873478477197428467061197258817243719203527791653215889521442701784837923599671023414823377564774576453672883183468876691908459155537659824306369193299630343249922299650077162197248399409089978001989580603376983965071952563226269744463372124961080192663931053264062030989734411274942159152854131542570615268591845803412215936351976690317779866426541684646961609983524872985230002627974074905056109507198276062357021505521107162553225552706774862893385873129119438165670717191560637394343322472293984630962870655976337751896201485253217238538845149106174236146319956220035750667312499334159019627841598449676296160218625038214992345691211749182330474570050043865431249914887989373601402158440390734229876697439561592530142818423442301301791927543377686019008691203069899090762991718531520584629053660666854406183630351876661461018690932834591263093793523817024876739758778768343310051630699518504166585800738186718426046181446789415363472134131206973943774841256426943832750765879351737243259329862192828956875108271795113045304953798297870571862729016983390322937593864959992700805546824249708696074139030496315965495169580404368965043460594962273052470470967012486459952841509331970307722674529591643371539146161813510427203330760157722945451198277461830877355108936736419563987420875956384794824861503245537881382140806178902318610683171983516500710639443147484360514863122929902783395528817238800097579314047655008832446023066735634633202837354657168470261607923899550672461959789674159382263141286837308966223843875369482095170885667706561140069908166817234787151331152156566448669241946475201582028306275627357576001310473642348810776109264884467610298011708586240962281222793857758456282322740855269722321104391424323126022093126505391126527522608791982540909697350738137848108653077870154921359156479954033041573497714445086896206894625881627667708317489061955676566881255177349831356306074120625615078330397631242508373658499002958246070442438626548042036126203800713313052738160880649699563068911130315009583887869159195250483416078137657389724279981852354746281664254545967090628368103278480163523171101104147641093270347169134073725263832728996587281744410122796979396595431562538492043521747440723283792902336366043029316417509692927142365960250797264251228339474717234207817064402766521696765873030864632596351720193094379643689866366113972904755620076686506762667407173567962286909637006176275413070583367049541699431726255770537271878757286540507727838614479367844904709064985210432203402971635079971199513006288236189811536434604910801264760126226956910946553848248997401554606119013512815416854150410894059162392536046166752216777210331850076443905629061561832961763715230986478423504289710661477625798833736661982352164052590250197189569142271147192212368941984664720642480502527658996459928678368178453530360252214598224563829581289325084669747833400022951557408937544916525663804179946866011738565434386035808673864799237127351989615411716798664607271392202084586135363393707717403152166403622827291592615007229484908158318710316561743260548803946670619176612990258528527098342781366776218350891755161816491419491537993015311307347016457465091085493756909904013516790948537552673617188969028135534709653425411077631882310417051381906937754877914365534217466163506235894624255989969361975521119664546712250640718358359448432007965856533069188630789860351496980236293510196123753182360167826330362033737019475189754587846476975287442542168955553876459378617606961546947980474232554058472104816073719159548863912796967170042743604404224863272052872468328486391701311523198213277704714674911137626845069530180978326914530885467970366610684885418138495937068237877308889121334185786519287610792792809147424342412289359879148224890911878352755810898479562700920128790537430722084739576381163640613230072700047171686214783809612662526908965019901301599076888138098954169994583712398534003277992776479757794623739811436728594482228219830641849873879254027630749822206689139695995083769706573365230860574179390055940649400896187083526186446056811860585327909031122366904314648275140402762107110462078963558142108492112936850469682135483116760567742783905373740673821603018249084105142273457882975414329046858601838573063355622620182100570818607152492628965518348314312743422186864325743332319619224772195995092993535431465383085043828550914026988050325616514687925108083267345183811405064217910571548545359830159431315969895852745473946688448949637019388269168871058948402871915983700682076579462556702319398229156709882145769920108668695272568501650840187374609411206985122756217539633225860905261064703690894020898752323231727506908781032785396306493063107295994235941521460451936411696550106600817198026236709713125363986759319797024880355746629409747039293129065366782608555872383816927573206374419218706578023805711774813588901040593520118270005568861400639108204059677759515903890950248475115450170432874846947276107013361202027550071568158584312546568629460599277890226262397719905548538703768178825405080945191187045294448854943146462417437151033168797897185182381940847300330888292916444978304768188781921307873335692474546075758387247162892035450233707669222346779865044644868490402580963753188834378202059519103066420186330594837974114048152038025288228244746879361486153293029863410588131265184346706585313511347261226251774452967478212876288564576332367587638180375664390366478066581486309318627464235130603910678544255918270328832525101047970719884650592884751975975701264089211984994790032165447351533847063774106593497954008344793848435058489435414145009451478341962063982758698817946545122254649525807234510300050621061573227176796964756542509841264155807895764381709706132617825957005873761121467441047224510854408145875146007396233779253251750219204820943229490938549764484813039984913590243709434666413787219248560580420344531409322297862916958692836513138207219606430720236200076614720845907852257638363289388698089374846050139508687562338066028365050516133407743681882482986102673834819234079183017079722819760979848907172352389066005921997021373506095161482154032072788503562868764379579128807543656163167001595609379449174366254337636567153471582565920680768935512089356038131110211399803648055656433358068690588133888816328339405875786142495833942752934365613038166747444314104061431249131205310107924723877434971775651232707656816574713245192670240210820068078048453858397247433121501778185008862671027841421304739446237173898755294288264682917896688249894129947888168666558872743210263446121761739467695786287906729500921306880653968342811277616031899766908247416103400430856278116228072897360832834134041724077441588901703325731281982442014821212187954002480885733750168027503893979448883486987154495133160140456732732382032410429704566468143701758192802727616896420596233199861124222620174886286676864545609948250114276026895584559640709492785579171759291991477768460322403018226175227596346180064971211763111044182141570009284282338951587924324712434279611944922485963289356238080194013349425782409845713757604071889173956389452762625632025799260118553496423532229604961266302191235697106438142201291964264457657707568391470402065501655513146130421814707791033123693537037415040328657005118062451024208565330057042419874393133896071498685577521852262664753473663288236095106791928554531608603396651688799792426950317660752962243048044626685819112494585590312655745266106667862084896786049639956056220760868287928189174708714570584546476107174512591114711232441857247853146504463617268080352278884431707115375495098919327258184942174587454470494306030738072023935452307144715621411995301455903816530458008153825629431315006675326407129922809475649746801605508564457686173802627896621724111972293012739242645634857927864476605316393384819981256588660136084566601186016760552924990469293574855540439105247412528577895569193931358659907098520414786726425988912780324654516509738895074453339479143994357681402562487601969364329284637042922050501498622923921632439779569296781543646137016447551720532359362728301600947131797654480484501410244796538565402942034345124819326697996687359346579071527605385914347901754723078595362782151685407380799605180154390953998602534159081797771621936002596911447280176766591345319623917454058036588962641409289316322536519059614586522159938541386698086975772534024309598765595086416702929720423351605636585595066439425663597988038312216211653631613919176483929835919472322058833140082922960461862245345676484051462886996558268056929377177929142895048728635713184755347389001626783416452259644114344871249877892333043218032133618179042037775746620314576615499028899431847410697470861385612406428825593406812083716146687736244555457655846264910660886030244921608708388133664985213403235471638084562113652871263522655834494941033534277346521932266695597351766636141228794644991268450285740951948248520175876312855208363063135155483823280369711319148020865085424276692737744079727486843768508844975412934828851067459380800265719481258366550811308297007849661108523407481695373227457156359633899748742625902188235975311279749753478603924569351442430690601643323121406549393314015350567184357326102774968256644012056745367050345209223160021701757268894825943887834120491253456551616147942996181656976267948640036947388718735971422574312358906998831617528265585464658682362431361240949392167132090052555888794096630800128049364530781896665791391197835008721232366638977256656816046062392607688580903926183307363284320907580267791621792602747996023940742396443959125117312141882377729348876728240096118366340930316984964609488468103820371601916860653185870708044043083057486605992452346904377057278630748559245654371789586673541497732341050137269472666009829751944983774530771429576751165512932490570351498538033252447304196808577304154736811755410504686779861537666086857914024851665079345404177670072466032219677014461500047967936238020687430356805777782977307647879595022878788123429011030065859557285164696583593334847205426310527241693089844832824199876555164009674001779360501967522361196185094990470634578559085151172983373410447992993711804484854809904416562622920071276087035109467556726358845053767646994919475304655283570857004321262450138786270053720603738303983992599779425617652222464678027757293862010377943304497405307744329301564073800808298765095952519684285351585290448073846970720487361788599639763077225711258967109253506198250871009655806937658551019664904092272371970169307954677897647204322774012135351609836703468711543013908200713437484886748494279666146888084765545785503362401022927854773256441829496847586755382406977258343941953570405501833048508840297076376202757990619897673769981819079690273341990336622944653907198307468115424670411881276310151213986664200616184741373548282066811299219160955866043363665436231954981474763829653532451244001101694502745730480079342976278520268317101804250228721867115301859113678182505836770539362123812890434917633342501455805053395588280397626143398540087629630273124659138604748054459844327126234262245992179504984647003540435231613385017336095341658173813172976202792585110971158748209370419602760676916028274075196015995860795616449394955383670751051796127816703655257690957699688131507615426202458434310772804227163317997511023675011590225250396030609130858287023324816528582493885223305322016656621961456916931339518766345799845449181982943872472157088352983338242352580227089386615388692937793925573233850465266862964084055743476937580073521340381332946327556716627695412116132078916980839792192963476372852041039818802456832719142435191474917472981526421972627845844588027525725465354053034575695228309536077416875663541588795155294561229344490466859100053691387579484775681674244150147518165718585446100744819029340330340106359049890314987403318084538216904746184631318005867622294557873650211307938706882285235215987548904849742672106787470571525110998642624890441438563597850881047305182757289984801655003193727907916288440251786237175886525754377322110037143509908149302824547821789873086690139832859777830766401642182530776169222563266798972987001926907824133336035961138770202240217973298697128034056811427522226296624362550668110835480849299735139900857106688413973039877126144847615721027178723687574363275925363365400042349142932634526826143356260360409436076307519440688742870214757198605546937978408341594781191431170595222641904268953932769321949475686120647983423724135649967229583120292753643681779252420303167950748618311567816542302015700394451392273246884364308701181654261124049865220849001816272650282855010163330827013328616316415459298389875396126400612134293291679669712818867308597725622128889473884586936529541871895077873666838311055364849610115825173595215700662963973186327909950381016114673563464734207965666218664575331529483406067493735742556306550516069849880642960881677710928157253128571212159788446605419833620644483581548077164997622649720578340517089485435456758513324936320362485443092189134531057699869942650327690299729463567464076090379892871250161474172074719644179071040351013419391184433631640543785368520868836580566105364286539502170861275369100005179918572351206045728075483125313780380975915019569877908937941198550896524394178862051049683574494822764234470356058386200622092245393828496084382166108595341680384006577039606640334014734575976006007856948465354317979554992965807257006143280420227805513106583411444446221606676998313967656208734105699975907535828301385657540318279145975685336323831566055227870809742595934865020998496923305947014277241750676709177374816995822200814599564009851981950894356464349626680225816032247090958486263738583155163701092087306127516784597679283224750779556618200177026880683407485055844648611983723783316220927861640023654101166012461687697495269807394384338868471335892964314436084925803734409179901893413137988536400261455044080795391324655176015516899876086261563169782451040506021049244771211781520983838115558089543695026332096392013733051485530942321069326940828802181709597268765257807451776097479059377543612574054993624786176464613017232503800198284057896780993646342663013316880229226686898395604437933492092562576682108373032486628122074485128775873974872012951854023337074812267836422677103352646394799532795731827132564296992785556180655601098288203999868836726782618295154119329455322501710771144843206919537807716927924116928349372524013766009313072565401810738559040756937129422139795402765384697401583141481395607324249614773448022941068942631718317242006556762901851034782231450514429620696614205993307322837438747967370009975139291598643627932292785801075512131555207945482237382092792556935686830292275793270229750805700434346926902423470073461925450529983187904596713718442946472016918701877603085366229099260372378429357372124317082298741944710038098278617915052545366680256903557158863695169532126728797305405327915753127151747918424679908080699290511478640817965121857557097513967850619952596461229721156873456839851546403910362862328321773005011904392287698948647620572525884269825017876894482393093506666933499053031941939400396612388010307201940980079903724592863174656472351557063510475490932039262602116820652073894866250100851082674674419997985647756737371382230322951181831110898438935312334095340392255127814109943926465265556981727774188743553115888544796768277724401679630514567633814479987993538771508248193670213610959287648079288309902085366661350367370430102586630772176990922083262541447437810743804502192818452413474228317102132437104190515217999385148459337762505258690822957153685054421103895758606094233302314124376259984233506053617852167543002081156965892193352084450079498658828987677658641714873998822758771463178809213070431138869414266754803887275346083166101796646450593718324021369386943613163290336262659308130411183457646251873936940498472316897197425139326878644922639322045760828981368522286648646175556443083173232931615265987552705007673043266998953761093182395354108538188728959505949357988089512272960798780366361926157512898767470693019498560101538881305851542572353786818213418250020943790264868371360537863785339068204407975752030602264055895945504682355648761626357319276979720032932052280840688029373621001242564151278375196335674345671500440043386688456609987547287719479170391307545025691539374850990826542461826351112948596661801451315499070617980251445613495207063642041160953629010380536514561163824292877784206063419602250465064680606227419587132376530043279710527144687414156747457799119340658537324039426076844733725716501257831799382727657863439836734716160933954321748226856768756236466610911968235700115561175491494050249702148302969829212156205462528663262099454439937021672729839113977721985339452669202459372247920207091439925686235174755027539776300765355720165611789883408335994691687555020596025143209276377764186564549257686497624612499950602243361243312252147610038491307248962088956939637144983655810712531878241436745435775075085165280917274285286788724186174850275779379481184859836927623151117675110087922527050732385210790306047663998713336044615674497036431418383454131125888908206608830543615788049885107774643085617135004189002922565319777539889818881954465547005656349532273915071022845552041099007820948688576724338903711126164268985663767846405574703411754287950236514602648108202473245939549530887630038003995661338613980220441405521624305846353928901494234360813310729902604098420880970815342099357151145447635617468063147896356722218125901198887663170468462717788788532232365680319500735477951561277803822376095320570554228614688255039267989908176796111535444028840736227658982486651838822486216455118226996040739006513089535661278926179550371913673178265824707040282503072079451562524544577335095078677351338569178217155843149100412708672933136807807327469461635320446360676043886904801837884694875202532710137685394367288304087166286474418394670034271688793808871858747210310593382341595666848467222617442426812261680307937796566887214005633043227977059476866367435806694254720214536116704649746724833808731699959403125587046054979893925344753435645427757018885516334497109297919688131132139144964904629509609497838950384186695521593550907467732149392424131109076296945592511022433090718805525705577623008578786295417215890700451515732245658553229794378172888183163485797222919432688182173135698654983675389254477746954483371042159152679748283259741889378321444294863701958422266521403847169857288822435968850935369032378547217988437310886363622741529096493780601241160208760308754817122461699189938423179083828194011181154791767532104921995723952429237293415910852455353390560055777760424848398889617362215821215739298390272400224808114521511737123679728558990764925618926452927577713266979137632843542102508446147786297103604588002954376384639069829401959199224456369227162103338185500196806477376201003952800776665606780133970100287000624473838515450503113593217801161818188344766908799379329685520047682485746284025190615143612470384582052574523706907875704664389007615584522540943157228832826342546784009241077375787266996345968247151893168162747817556764862914717872412601062690442790279631388709521924001305996180065584422636091164900397331091009675682837714223496552434034552703439476127467270593069683096430143043966978042725042461255670988940237086789201308730454282813987646731674828423926305931406024601448963651894929122817798611483756844975381106178367966578908561836878801728807293337905906629249732696930588666750879729238974490664550692235595101119522266479908602197163639578667699138327721035056109944590732722689113906871153522380427721285805744889369859088093041541148621111011304784393772610030868143785625939202253111648526298594773152218132256456788066775302107728497914581335672923720020519870601518642784388414971539406098840125724723510163660912210707687946055949282710769975049973585161291145699157926983406267351128750114099621191448422560389017641822965229900081165207150401793834050275522767151230001440235640901587486467328172417045942861861405228125050798441068192884924158394809268328084873961088163587622535622029111442911632524506614517455825733370133267295779639038094003421431530874935619049960700430268868955360798477015428809949825626864423814530924239243756610172557090039224699078366469320924979114774688739630867034764554631074697990711512878963771855336567924931012310302884474456742435333794748549691876643930923373001353531366619739724711551738307128551144926730856038288083158809708321749481696614072156680045842608017774929558317630557011851107702436939614353986956814104369853643009966564110421238498846948115669370249375750957195319539909191095843912646133980294225528173891612174708456977243192950972230444157499652544690648748287082040512517184225540304758040927786164394998894886897128683344108156686169905033465165733899027503872237493215838481677349340256851628827316681474011311910275017763394553029594750845386209704942556568144019783966567471983495796092348223555772889491595726328257666446595446509350290364247503916762338591446621280562972768059895137078986764263890373880213510953404104889356655281555180417365866415592505869879562268463736915293276999043398897775592026623743949798067998720915262699083928503557107127293619606677174583882202850745411673141278720306924849073046407722420875364354300378904394287268483831090074123675535722339874085237016983303898859258095639164409814958551328478621186126475341420930936587497346365058123267706040818891702817845282065518026963453272824532212656599216618104975711422544440783216633821601641775242961994981782741861839630424201817093131396081342235573111961504950768334131095561965989056184589831064315220927289740382294926331636527921495795355932434546639986393135183477136347717097165800009786415610440318788314688377199014185878376260064302084644410639714582502905493813090813243072246243174752282115617412751075405928130609827882957360775232752088183192597541785413183771290472403119578550958361952479611669643319047926068664252463275436181634568442686096607104462987844440162314939672847547658768142352930728411885797680244345474912802402327173099755232903628099469107156622986480488702052034885631627774821264499299372298755481034942484992088302401097625220044479857051869979504140724425583425327027269391790137351145527470558278523306394971488766350183293593958129427511711456973335258091852359098208029234742569127994759226937375903487258380419841445597276566514774774339926701020528091584560349565999024115843698981829854052960182604114674865282698949772825256455538662746100363730066481688131649928343278502337948521093254687208838124166968332336114350583330881476996779920086850831154150040570999340006044472486184078342552533935536732054897444583274152161320471422264936043190697151709084636554287518025051002750099293230054995045566214457502430570026373570424032934161194694531865923569850256137169644931798286629667958324248410972115401058244449683668638546949724381556273823890643043142511226016792773016432117410838530734559469089675781122203015985983941537079594387956894899806349329733056760530969533933190533060495801771173840024822298659668396031291939192363311668821499654132537285190964452285812535387504458275170317855471957469990269040257092320936278496819820333226188260020103583522328818099219674407289834053566254001493833830886819545451734419445177747293196900009198071264596363747197857420228050699024348746241174831417755347365393369364828792791621855280260939234630035044744367985560037812344628403227219372505295634444321367068076145286638670728970539032222898934661805209297785594187792179872732858459182881925063568780184896300011976938581778910030105263834580745056013644870938044192942410476027070411216856899370865570640732663379254777897656909563822426299749479506982519462132636614396069540798871162797666231586945146205968871200034672687014763846663892133162550979283856299922223175814821718502665637613288142837829074857376499083782426412098950705751841272167350797541980475639655737693441683358658222022363205675851485532222392145846479465549950456160788306615220406693148171740363228189588889037511231906748147108491327533417790802227790210152383089491014869030370747678013718472429072905884743045184782054647865000818797118925213470333710905240519760647159601986437234266642129206556932908711491084374247826420592202341078575429271286445740332791597643874845020421630623596796449929731995939758240063103990881755374775113625831585282831260809717219988950106688685824958172918878080708171300051427752541003577830493479527686310507931920326967233460700150485652138120972058486047973767242396007820655256143770771985334783805216989012538548761107522736986067356080073608963638617079835993657579282799097551016070888182592688580810696699778338370139424304698887728800713196973239846625968542424686567496497774203568633660428762828842855103131053594689393808068918736899647045877266359917064410012866329543932408067088930283823601896647058730492230348522570154174995186854369146505334074932563611670318874497122333166663197070993706065098104886313641168330611418310615574267323617967876092839122971129190531199911469003417556427000603356142157176196018758747260282407700001299908243172476859103084585840447055425196122268534130747583472071889379763754789594816386676275370808387583248951478296176800256982627745019202800773062703468730767757410026179315617075545498034753569603335511541542927181497147359051768783514919039364532356827361133292579917617049953226571648355006217923508202887065710028758517164099532846687568109323694487526999386817452628348813076837640285602193270789013438724730413092848471409184835367413854873320908765831787445170732705399392119278542711863376854953586503359226577147001088741013034104699251994522537532597998874000009665760673090638722227202396915126119017859837936126061115637427306875630503817468170347953612927363553339414782417455150240564704920520051353955138257028177468190448710549692791453876257980424300046346105695285571575287662870956802670533273342037369963598148279124424666150400116212383056778410809963898872579518620230019594917770976089699529032984442216141625118249061332109036651940203461095993006177674508712327726326789329658268789813479390586405809931284010055189199287211706796167157189146467854704066054633561508968630010348649201355623236398448234110205538244816129578426032472232439441948171690259417054838941984697388446319194878082937981897844351417260735327218469450486770650596969312476158680960646958130466270303284386862301208645050788092958211432821094436499853679813628209048008903654941383818000799070198052196580015019628174293067847593519616354471129673780545055951466052272689694726877598109507383035296486623389063980032807062043707661605419157880085102927143167379191679493250347871642015833603117500505679790227852164442222078975201183723129861877933324022445812184987444180061587709483815830750004631485222792954699626404461347931382191531478129292584990608605785743863483226358485045360082252715805035820401140241570688859851688852265473067324953872877149484220845210028280325932670038314195611775034187422615444363366287443752883782697072478577867491823824512758667092846606166103430939843622817220410516325419147474643632898618233478427309504109106287621934347584754286279532183658336602720793377530852197253909327835461624314023933159566482780615097617651921963671774173274652519109417242559062178927276046024388816278792559500520386554129066148661837891957586544861022819070217476636527075292015900640042276729067592955341650459430129465535797748855653330680936997147105665221544742545292617935064722217826148500073510945176931685286935963537561904814608088132242365532184936855445809075870820085392470599376519388016379763943644650582649335725140191954713903934821067370025763242343755096261343790393949632206513864355350729101920517624162451590155944068139189180151091995337391005980311990763944147682393192708683693910555028284174910073897645996061170551193196059607239889249950189501252312505336319233805066170795539114615523778193187936341436417416155957143928127669553517568966055352104579421731161229349539070577737453556865062088588484006939928476461193497650995061542607542893126065128928484262719693972394213841164919907054206790711791996432059131968176849410725139423015330756605221134576866943012391752931653906132580823591252863899683322206987128209182080450307510548782599455237907180898714845537366102047477160973087715232544417534275296953057526818113543867593422955018622087851954641564702782535390047291446120381231457741921079511292793660592778797543449507470239736111709620446513709465806770306291326050058178059701199893512340592108540240641996236140815618917897222972746730548021564176914315015112129866871627429737996092737608363523050364266365525164621317044627049969294092511621212077844820242356769278154012690956671868303175039135707419004464323748767268528674574671673636374955195131349784002806016884251216333909866781578679810880562444163560832068880855958405723297038635490289649883735966846978010823154097021879165745915266513639992465448613960213618903527763763952059210945559768873489000824197957961328853323035748660440025744286298424146620503331149741956343330574159480975627299860432788636269116509392211835884101515520226787259909072520966045189552515787329491814510931888433738452735601607300523164393857940575731062706583383240900451846883555126237336799597438048384880656640096230265252777417533906476299664167690587796938024304180929924491731373113153413431643508493132502335619619371245349899360334731242283648936365132094694123253589106350513829250010066156489774321623262637849495810911744292557343124845714622108651298398389886315321786667173694894477324588886617620670405016052967166222076365755166209993366827971466164865890804161591428252335303315611317550387304337787134523854280623993400330731878769911369499011615897246705110739030346527536450903260202494855411650748595632460812523517958420240499835603415549547724791057633221717919131208600928740053559793533211990451715741566275561171412030158785189223917346013721066887687427466042938684091260439107320702602766495113277356527805137412379479182340928087290716419897518337051507218500167887904983724191686528335669972050471633052627143336091784416487093759110095767802923449294981546925933456720236555563870168133654052338919797985080935974413865390244159080968534319200955210448958822530448048876314133626602370638730855532958208559535910622381001385480985327651076659791154682977561139409213172741943631852960112717499660276619172467254431910048880131915320791604113223734662315753941598037169434787979846837646195955676025352546847623166127435425008346954837053841991262472126510711726419992541872766263824882316788803308033090762499856095336998688174561699705114580710966577983588337726210335717676166927128287422624929116860108571471801802495368926582947400183496107004139987313540982068773630531964719815184956024907235173603710650673965349416706536396317545024049302268663392982451784791433611483906386483452256304130704754123175163911257300403875046217752869470895901625923867699567521624576353196170681487122848320284274759923335639563197393400034823903876060511121454466816083383985164296725243654681402866976041522670457580800489618259004734485919251814956377134430001249945352473935642537921838490527443315983221769371290581208463615476212188718874614780103936831621734361697751688680245442469632376755237885733916403585586960986202587005404645995106090340125256074847412790345569021824135135675021610681908265304791696174096581338515812790264494153971982090952720179302853977568263407019927527088880994398444089904550297330031277267308833323914533406748653469589369755219683862695312463881464215353142467442077101267590548783610246096958240677456824885353879730386189458037921710551938912725251520051948944990023651516688074457833414256617831948622609271977226523382339276647033117880193595014132229843460457861889850614730728645956108928738810386510480346932608659294648436863266435607520290947411429102007432334048880433955805201359032465552408159964013268333346527234946453759703509513337780539521513085221976609558282762158290860076779216358211998942143074386077374730093348958349658417124957292607308712454509971253459358515816810110912549129665653121407921172362006181768964558143802506913996182983029272630820396235652220139236943153714377274002881767972407369895933345184492146565254190454017051644827242543475515347086416058153173512574727852358940739696127584534727459302401332652714382598453995561867175950169072566514988564027949855984091568623235015557130543757814079129252724522360987934570320464082767545931934032993705050972063383926293579089977504034387922691740580511960055014220411113083056840830844194703284495219086893255414578767311424586302367014295749293633918045252504215826883344321860729272112945073704274383238086943626440387433474596514999062052979879837403203347476608934790554069212900381431135855483820106654856392529038047867102049356411211016315646850265056336968453299696443137182391665802487228521030503535835540684368439012378985079961101842100250432291308229700671100278322381251483693602456672746873132801413175971540905694803998025420041594380438454716120382060416035349843047887968778804291498565958050134290280138794358459383045375610475652795955078643976468638943091715413474602249283639210417089709744954488519379901646255230443541059825685103797741885641925596525115903619357194515325342257903257963309033874767814425507086464098338712310414525465935016189923423376203233321236969253829462137694403731182800157106531199496464081533738668372925152825241989635987147316536927354176920310517849837836634178577034589453260834765341140122175683945094399824932684249440577282032435551787516632368873484730276641158026607630157380379803173269913556412964838589876895221178183203026140470624323904590125029525413191309881807833133400571034327104349060713486998903996757765101251342936207411746852826650810702640948884724991662330957234948693977490980516753726129551178675219970525195073518372811107373564866595981713259874843611729171963639306454010061139000489973016898333528414619469598403729072911001866463677250115427603972223940476285386936053604688413313446212557726110342947289696133440092440900090889976162423088314804716957015926160859119864559914605751270226657350147402329870450430863826845383812398159299523428741735586309881632301438882398112244735139706402062133803076630210847039029120584905197725034917404202079909057498409837618829661788725140646908007785387990956504802523080339954336736203687101358692900084553781253690873727927098515370761453077826060868692626133949537600322867678627429029438960020849566754593878810169465304995897720316765292679306157940431272343491194826887642666049498447555579829346204470529403658728828507673776050971312393015410493375008579297843846637229368049096925222911291642483573080623097182474714177902127087229804232273542047295056685029291535432475036179958967908493593250611302897006341331642356211673966176243458266233306736654726822764439566028005718835819601146421350535896944256094346636565817778585459834736972086613458028633045650402000228329926141373498684361330235195479814628523430917135108005266380075752842743480757455130294863898762979788619136597151641355188192129572327167072671344184782597578905306434298402203804398219878801398757675036115301141925184296850870215014655878564330749764294828144436975452779176551334747337413520870359952025215489878628611532301505692690506265461445003619009488972526464622452458254131545074302991238388848290100290005209410747777029714715377311007638727187614686608674717735286333340701755775775610001008221239670642500382000188480766636887813446218847057926458610191501742205333420927743153535753777652612621427589844971411169322896338570323570415248116665329940312908157576291393592466256760281352715462348872493418884166748720587215310243125064864649363490794412526896212601842879715100100251511678858653522764176727549634107133527888598243719207493305419730082777385787930450676922832898811272375265803695305016902968068822858833261927309400247917148411045255530226797836816566906804525027643064851556634290016337488520340663483034433720793483387172552274588371189202360832153805286494506018050437715198772314819303879416719923956613927931863743306713226464036644904985715491227293492813019509160941737683612570532145429756863901790111093689908799315194223562487393111816115040801419288763201223956125534311000545358973490604364305098108373085645363939419815072831628874806892347237019426790150705173159146565556920119141277960671524751382346714358421861246114863853343989657580260203989093753681439532234323851061249739657048368314257338030225002225818127297639521375388528547446790457384378970808415230424048296184539181896664911991731216270125362819319048729517139472727461222650473079017020206018912474188920250680536856603062252824354334758927255624550482863751339927720538129775961585206323829486937256756521261695353335269824335432307042250806001375859375074345925567694466673140797010756504629681194453161163949198575651120518736899065049955790509852559691907801075412989295433226228194246296700811650935333992344032492337082085972727579547840633792845014647583721209481849611090523616961556063573159736366498189576150163407779837112245642627561734569105411225657212455367398585562038650903135304267528877052822790486166274400976356168420279520255548994685574573854645733595171598444144687824227690875280407133129087481676741699356602310905192255482424140273283587712207728376407706631765327292823433555739398055118485536363339781923325884976349336519727926805368087416600404093791756947765745619466364685876340568728506382461665869498800424181029814707027290299569058165293645789068320857013611461240366242314446710068679567386831145731598455189514762446542161577767640799591873191128153828020193357107598033892794803865869885705056138398404915317673171841773679687469559125798632341051637899073184173502483039343402938352044619659767577415864804321157533564771494252884997457306364611056187479618232889009937625600239876731315680736435320807496997116947379190084840062335609706669520890248481890863680247040201947009002625146352954742375719623996103257284479039953965904978117453363581613970274296303901098169866586444796293775715601614515200696966462892109113912462888573510840133104507525553632654151264888883820531327379228057035382274630088734873136941798002266363204315876748375045406303998522104116437327679823750947550626771717674000127740144326595808219426069075760540686876343197495430922091245692142997201986431005949335920143222434663148359334673229242914106120460723079659487012803131989714522040308325606721864714356455143408945522440633224957317943713578814221010651276824761857270075496903075119535662689674107024123380682335680810149160283226324713415964921521677025926338553543245533403579932374006833842240329215378575814197392163609121820196128799878104635507235928187886158245185849518247643631807017405408150983535663563009735414044892080630774090354061596238534654802128425066264181420523826119024947137150029971733130749905441689156085487563795278685289457950492127465389686394403699739050179193652204682023842408160206106978435050596086187117008249143002751375795076323198626515478089563888537838317279719268571157956706928721465455917905583004781056196709537466467957569685428938500461747800746587762306785342136334926985933462361566330709593409127724424430406040548930674985061598306788756995887735039901384630116983278289829073491407945700841546973719724230443360217746245208052185647365600786072730649723258368177271738456966501174000152015737312886818704819480807430586658741661633296562011691476026968126316148838054202800809507891290251919828977370756301246395637872008644340644675588593693479533979259307517522044972133069563648431204365958673151704280530355884383739977345777087460008320841821578049360469537635546690607499706453377567451222097905896406370183669824455390795003999579141805939220419015746160216093759646732945420377784781392504900014995615792094963095772040627985664928582480373114568117269726456151388251438963971794802598870489132867450944517634246562313177992710645703273103714693520080467463578446146528892545695931666289087426808919658260894522767174729467330463910711836917712227241051238620948863434000443748451099065532004695991175065454397623898863104787153488184986767679228845775974344779932036651741348575781748346505486148809983166274562739815127578308840560627317481794762380331582082612566781547568307104852620440572191962180539312916273975027985100718866300722717844061001270589428784191604773005352570977691648379028928781313585196150356580369360477778101975765046676413730951920443105369809805550200440006874584099503806405320806160376764817642187570412696841945772847803338795603358152865299713365010437467071157455275338543859426091111987343754350150770453360675718677421557889183657501431009033115139255296518514646815180086181861431653316677645420105060679481780458343625810640824942462322698640344932948157296879524541483570356709191125593089764401207541829558656259150782089104007796683005430194147440516846877400712007024993500245838649408391970737759264671770223437411484524403526455268378566808724412893529600549092895502015830340700744949969968440380351647888634379226785527034679639291035464878560203619737364453200596094971493444815085406221184298358951895732714754618640155558123437862942172478622219308467344587192687072922036500410269719539114071260679035746054374729273238712352778786310082657564540410221582412789688626361806346851039330218853903005862632510456198699065934141597543249260495545712052596982718662103309315286987841808780884168160263556058367821327695209265201489654539340858478318293652551164011836907913381481316820756408642356580341464339694948075838900874600900813768700651947089711999464647638781739764751762391786634213025990437791037623716066436555332463848103918626650879813480947256839875942659513331059370618353916779128919063857777947275418110610307544409943775365839143405175563362127965929709481017332783717135451883982895789658584981040584322591904697918389007001048345855782024486358452645524400373157348573660722034363706202065714970673775228275177506100082627870990505122307751345121151329911756811511818890627179124235428644968739651566359846822414344764634872834764290534726013401953274399488291954941882552252159112498046060219242284067282956725338201402729253013026721738926390224618471213088325874320146900890973311986373920319770646216507455505418806542146202554049392995014376374650658462316370572451037474386503994986397145365852073140615871124524568319278955466760499938743984987420886688910917678494937877057276335879274218077844114122535148862363241847408464098976757515158588109019647740095562943251052188716530535379109550669817733027769898872014709473204225188537615376095032169274861108961839261730291104313787190807922913369686449919457171869628015939160599022562684570395502821917240829159157856380418375621973467607236499794303559394547643722883564891740065883089206351477755090762953334982124134401856990517526513583416634678704606232240696671444050459287028058363615730158182651377058636093737208609598379411364084663181739656711690228884735521187989500352830279765840792034311304991222150004349791161516087167939491123815572553723820628460310782492856594457228310162251780835373304520934255730004496316838568403712442196762442527246965883855490552198532477315431670018257095150527467600420618481610834239891830122983144297382700773044344946465177023915196178664313486983741560535222389254345751867459542473387523707922887823070787556958402047405559102296757704110875169540518816572080913405723628628073519347818299484528292127755194245474980503174693933566126886822372880417991787928532889934442466885906764187258749920786867944581827663612863886914706633774445013025298935972618238242537525747958373289832709041986389952530345101277442703568434407922679532350837352701016166061474065258231684245995394946212755511066025297635963935073657633813645270883170454085741139766074070195940586594159242331285364542631758601310420383643223230832730159550381722277609827517410600840707541376012104063864941079531937801384081237974215181859482948899745055017719012803549024399149560378348906972799234042808830076212359550108965095826404905123753080734542364840125847281654818370265800767720135295254775396344653385436123149140146283509204817128561363099280699914381484186482214192007080555063166964546994474055829765144036979051079539071707424389643582450117169059820564975833266763975698217757316729646018650896505098850165589282179675444995745363856061846029577533496971445333412116800188364316711906756600951589400929810703219685843665607520940999299068876591356990778461850011842645816384728446201515824414670230492137442404522384531793663922393206049916777341664378913114889753892782886762008995154109413078795749920625657819245198867761803412969353035835414408466384497606325920931346404272104545816062329487696352867408797731222657984228161567942414718896185738884679433426507719439205944837437978462427490570351589184925504315391748257529981889662273947681673715094181821581264973429399825302759543857083977602453860358538867367558349503704016986082670911492375451018064243387650454548460362919847866706316990651395436134621679996848437840796469479748310750469621823442862505616687283672215482031232040987942667646097825897087060058427741708130573031893647250641836132733661183616270530009854935713930525933240694796287503681505053412739862049763070840251484183646037299046422450904145983187738585106099728104809689907775410048748365518738914338226048831908782476258282201186287435944048696061170175451644537516927285947044085116635108989142650563360591740078111063015291693485180636364774656710349083730025471781897989172447525474858350273665760848211241688211462755574757855713918836712134302689736132494455074169048695786420087086578202774219645556519168657091359932391103021297482634427937947524103063957778705200825203449711613872083427172469493247314097312401720013858222448098095498364298427705687769782052860464390416889604909968535917020169988071904476329701392405969916990458186587596593954904652790819531047054168216962573782320393384743227309692309736207755852152321067297420399137470630652571088392303143279460757494631289929101232563653538488497049249622027393609494032041864926769848044801160341236593987812667014887307461980447553362935346411351279366129728718421811062919116642819825976201219870277725360922285632221215671097487715079519617674083095878295998210658707812307026997930759012338410220622770894699832979689073588343928204373209340321186049059563174683702297712657032427331146192674280416116127982290051064651600907551492758075271942787169202933008026032056498495709146351200974792045389255700604064600822205494137899779160475512735762115369641128310779485519259602397048043287257586056077972414151595440647079505141607120999777656950568454730858530759022726918241513630112166111860018697797209972221063719339824094565630535163269970980393284749510054248039998531050017159579328750759281247420075447026052158907913131900589330231337295471499437117438446350730456722749860808715764722764260929130753029384568719805362564336413032432031324061540917758327045117318824557880295489290780152631852124855018955681281515732225347241502443030978802532803485418354317463250350080018986271257474738757082639316770670034648663616525741294264589545685710976880134626949469971233050330157953525892717364214176130480099867420538438318203647968891491882761058739140699957439030812393855199662062527409449418271499681507323620660851293156052451942737903190971949820232166962573260608064215415681256782386376701089712101067940470760619781521906329799644318115255627498541915036868335458895247294953550896973471019051058477567446145380636194936603560204311364111842999480506129470084381455146029682843754132050995331872061998168126746557688121301532971854344658932760347266482631003896919988831304273268790780633943266423013336363623718952367002636394119018073255839802186948075284327015726729520140613823158921834095615332178652034176993375078133057733910025492075936438094185109890202899909452568298244974423867651168834236586915800253477963154980113154747080092403887971669540903153640387716209530068536832320984238692706658995131916378965309982647813183600358110860653848840199489940997459806066334064751569478038831739343456671807180405220636054196794201122709624297352126693408648461830356282479879182642903530509684563653605866742155608349686547947205472903240462389434136947356349267957087110256762298140658031689233724221216441353177326700761873987357638932618565409525924577065170906721607349952811977040098335853615765581083678803777478839256851765769971079708498293997417948616796055269381507209220691009473594903337288968064236563795452875630907762099579137581213123152086579311697640165120965969905365592893346980236900102495391705258393622717360043780321058404896904717229037928664002288211931171902004863366031075233766705259680267948979687757033448409432999517589731583804944951327535112727042344502513025999205282348056027485205948449562939180548927180405624119432685737114791206281651951584704285172653858647310295252690669497063040373140307365752943207234297863055895007965818438215647520266954055111809554544166458142058029107703512034613679767794028286348961148548314571398798112797662766450155442041248585670121465890495718026676160043551340212341577914996330802453617181685859887688561778030168812482440872890412824569533800614736061027516686026435536243964123528074633077229039503381988572344902572456481149787521780044075067060232710688937231338265890249137200120918296029912612039805243698172151226769004286324680167533471929704663790390662711509456516757197212800262408422412132780197578774694943118045998491096787188869448165984638291796262915887089446556218080788497307618116312627084286928804325925102201796522241635555032857363402206449869783253653102707498778252774714428809913112555901744589820053392297449033018063371332845903798420490943907911815481303295949161016613826486489936507893693494390108233830786249817463311185377441181277600435711999715461990258585932238951315014311926740632153155455832555298346618928076979747880086628728730709588345847171631601243944674102857518189023788481024962688809906992086093463736769185237802777457045426842480502467608405397104891050105958632975355083223350660047772003737210084933557642667242074121786590601535468434553707795029214028266594310270090119034447606325998211664729701175899175711686168744455005067156625383514687488758090380145085326474412904728192153006409952607277806637920909985499555417078007015102159169308472333670551116475614895582862367809946148993635821173804695210199100612524073830073509468594837253486892939664832505136283281927335009838959189937071583124027696853467337859874196809401539333396911469145741253142876375108539223763803005906246807727063285596627750413969120801691730333335973311300020412149133386914378748385003287488601461822333664580982700424418643204146556364069361187917244586324286648026848334220787413238940928114923468468585391103509348256419918439185506400197081061941920625770636727724849057934573032162489729979103973627104343200534152815571330376611762779192734783923858135432295039075671084782904835154751320237966681522097253334511674589649971340363737802436648713044329978639725796490539560750528342994750312021660070453024115115993799196517870374032562557078205462212239698521062818473538321196208278888402733923211508148700239290063129623101486374853534691378508097608605280272606867253868564798269992794540592094227395396041001078992979292905389660673169722702121892205462319564610084928715057998765030752546129986898407367821968156564241064865761168741277706612577578196653490550374794420068980557211302070435996524751608857511442289547618592078997656675242414529540143913266038618308963165632472065966732162132516813991021438790916665293994917969287668842974485252197808309288322067705675477720822827611713790003100314032910714793148934954233488202201729269675111277385965290052065067683592303914358610580710140160560595184441878321601556758654857067022009449540714126939281050961496594757213221784460617472436935852281819555005428822019981299443544501969361931325208335562645849293945400538055654586185900045393455328465794964136526015305656965795794761824563969230362848394174141450476875811830823076203785564155986725903302534016327246481226127711632076641317320969847500389300974946613070572711167790797428872942754300578343567921984434700486924501788601478305054456248923551212246351751738239700131873712550700735562735682234679533892343243567615332998812805231221860249162864939452385157228275956838104646935661863423702932464247137595543501155706359005336443865267090845118796818816825109326794910802717378840746974133078382707770171632865894273791759693740549135206605053040618523713013239964056364956092710339033132347728727000775438474686106345578396881654948785206046520794622290570338519696677618239297630540885425470274237118721127159247711567424141679910153312257680802626054698078692264492884590898049511141413792869325196125125499117179683119134916706208608175713430124430150399358637632713425587236366699506131279152555039560409752785735650157019168805387582779941025403086605272190291824203014306836504676366384447263735472699519445634126117405396876593190997270639620928440967482508212127935068586246033154656731561665464638207736972345980149534343942470205122132444776351106317397312190765518274249248626399790102563111974581040246362120713490474735279609859587358268013869486758561498740740922781606655933679264676081971184601507892922432834760698238795768710726009778552986938228866437737111256841593940144632479811035816093011531096531831262334983353888607092879648880672087971177904554655598496976927055942561358983458069492496598264447093219624107242728210271370043492500293331604759948607457480015384004009805191994035384351479472300882318321399044168260051481016142572935159883936658599426713390362306317602138687573085830774681260840814509497049469552137117793469015911864264284207502589024174716982932123148062388220227890549814942904858440552754893445585690900357135910864688874263618002507279625413173466762895628214988761230789733837315735396927805161181978743708768389780632233448751223990059705933855723655739390173686077389812657861452318824028306634986006639797067899284599867367014793946963000535645667977727560356388007171200124896393718143301317293008798317373281232606667802345313636822908910796049561468463983851075896523435113721076836288654694036583485053260693199382140165441919614870987187875884659563437616960908807072397761958734221079409741590481538308322375350170679274326428895121241075262872063461758244141657375899205370904553730842989754220962892313308265843282011261952385340888968014527413513922294035545904123409054402726591670372700058869253586832980320910247498085538230994300915315197473756422783447018161388690974765312010595263925762517864547350961128984914514583436815569972203429549775802146414350502204551971930644173033716288385937602190336293546269291988831308799198773123546411990030691450381573063023893698271027177235750300440531024253116205524204412103260950585131876532554620388918494647364194843968469980531712317105372569170798014319017663885324598696856972585919425566719988498499518178180699540227438390452189871594779158869272252913291606971769062437425138258938907245860810306360171766356736384155384146221104283238228008083543828766971582248013042981880190656418824027731745479077218112686907660720171874705533462068141333896513614202740137024829864389280657431477109541643539041959712181464932436251903711716116346035143161900816517941744079603011595578287976128882204004893930830268351057050220470410142899177053964529578012486632529172855078211888940334173356965655256144285843882410423345810271785477420614159000275910106417660885116356989772794164254111108023576075515289902795161645946712709684215313231727739313864595666437747881477682053482876074864196854195786956276179598756289698113175626579620545689041484679549540536865997722519234353585808649634426402145660866173392763985400823905287562021083744370744809141177914658007404384176015562322470914099412328643052353297483343717837707225975439383679932790757747770730290675646079601416901417785808688906955854092671147616314391616955240412178860075942865134890856770091792357958736504296003207801911948649525049553488506282677801422301439500999569818368038061470213846186864568037088374644515864070084056999443246111260240407161404357364509990453568095545069449164699121585425740928210039976160162419878716032089819914946225125801206255716897148886624277388728523797722257708891282329683444263054159615976324382761863171582722510531820725538048241743780809717075694025399629149945196934564851656293800561145250528898261032313673799633873497839028669867346821197731795362373934506169053322133543253626959108150835254639737468183910683446694952036420900562477657701354005033341843471946926063233017265898396597178484317544394872563621567994496816021341352097853366343381107896999829787186987721174614130082896575155247969318045311548462077077172648905583917517013967604203724485861032851049625777800995777218932724739196809303175945151765725651236834532977232830604138723497410620834514071724661793322301871711853173823824950913152151566429914354179539603824781637699656690912236871844590331484858227869794267429601954044833055754203756895973541553126862288083404847605180792862722098776294158777947863448234434371929063636524898948020293825919773059479781979513896359490805552458113320034156054581290766997935749815912462258971283733048910107048871373783407322514424517404326463759125940419591743267158054289142859975271307656993128192484144995879844692854961314121385683573071038237185731615671994860096738907090373059176147679420235195965870734493845984008479297893329936023583456579034758967753501890492333612600283515269981606287730801428441324118078427422670324433127252393285456168418626239343651535686624119781071981023938802973704501930868489329645270346553647556325816753973659705774347885850700424654520763946235190280976033191550196550698636912871511459370807877091501422816077204912253008867536823106389468955674812338678279252607155844288683159491022395165895604159343447705935419196150321432750428282087641449264138092990125316304272191591576377111568561218932807954837092032463962495692131216606150273578868427289147448158395608413299646501361463784021897948564139786805862025859500749306332676826475005345245427728312438874933530932982236090596812528264342873014158105771505400746460480661295675194342758781637547329298042978269490538570567006387446149634111538112847155624372235318335954151680457092005496811099704009726535184487073483663628668886410804967896637075693295709141800215551902365720796002732123921531040830669239818520514192477001877925559583967256404352232906846348356830559764170076965933148593128719791060564623437712860239309915557242142151420475396006369746704708126440563838810357435379482725403737406744701539722061324443771568258590725260311463919476380095097997945659114188169520828125939792292753256478921960569124321692118142103079011505346774321987458816053053209929378475955473644046241809151728661092108478959124824007759591454234561550659040399201198554416152341819432020411476636673938736987428791794705532602402838392900986414297776746550102837442293864079590959683405070845010865746713919671664719432447641688828967673507815273005283492227204921548876319587942487210716188084433196354261324757841307901700372478143157056554594951501437212347732480618291099331853508149881471439486148731609371252714482864264791209781990598031616943039663588212771091659427113955328333581260698891948883548504868371581692585231649477058994822626116523816119074785571277890662055892442674193991993438443054464636046571179385796232529058622950901831123101823403556178893174134180101216582823439639703104952713101898675161838185897286947462688883852334499799404796270587088404730922465197879138038006284546649501957584249224137612718203772725485628179189916284834611680779066776871259263130890964290510112329465584150644519022542818032291220211191348706476583657909126677165306013581906402125346878791688323468052476647516044238046990726337030630953507901843179139319596319360615906223682852582940734681231994295487621254409887768570274744394398330928899846093482110776936544134023579355996753902729140289545043506935393936558771630264388880348890072974352903565816492192130486466936678538912229976475740157472755922071849777608665474487705129146297594312585477740079258246551366589773285192460309918550528527441177145827967902317821758060593375722765798392809180093408327026043634646869293840214613304075119483603131455398831219343199081971762461354058459229878581908499573232164095774074588328483640579704973943840575399607451407759734315109117056152877036154486351312093039202675392819652131396836890584239628955347839818359918928269338945748940673713393791310792203067788153271821393402251957001567680305752339103566791324808042452874168959250371102950328710139271057853453727960372200141992036050987614064544259932347793998916394100511125384525097600466357067878536514602371193891171938647752977842224381801299482959126345470899573033787298228860995406006510816929778977564851204961778019714355471227961125011720289568784668059023029374345344845826108777107345458697372790176490776547292098733497321589700493147485575752105803930047772089146778733173578853377736285439474126605250135379605472654176595735755069274733553676525406053451465445118761189972952642665849134487316850347817434542515260944417898575613513865030784230798912233259487648355548759187151862820805542445721508326363823570191544788615153564872080082449975781403534695867109134331915574631048471466087001664822588277137930596674241798429566617715162824517316368641057527515263652785303552864541624432901076968457660805287827689697863670450844898162181759543006556115456606176143318440242343330282243911879965726049269236665626559351029873981190904659696415214671008567769143074829883983502511290435802723509789235743339160481349471269957261580827729865527505802915403338733571765581982853865636373474074505165398528955766803526774710114967284760748786767357332340086683564480461100560190340948562208237272368166126477141964852566858467246191344827815959995799670189355655784508922389970582344584053622900887362851284497684276646831077153939758053702045588509302717749639949606021683303932957255672472966229468921771200706422666507613770056639234726937291784132425328784755012968862021679797014712883698229920275040131286721416335614695883105840147182598289873637541226674336065604835666110016414395048026204840789268063961404431587391072968968190345679936658359826244018991055584162487914252806293630872474662697120112201311306999633829276422633285396719618497835507828569589071279270620831215118135185163833023430687508616193128437475742435976731886448535786277938033034559083483053415481867346485204344377539009958063268975840534961652481011185344690841925853461723219167869083679960651025715551194118665387104214922793160246026963681637498263415188070643158209242888523727906966762298681724839302225040438613465200560527417801844619417392809364349063880179425494715910727988809670131449543813222577883531928695228106179163265010718015002569243937158485000744443871626366302688392016239088339223226583633334315385350578323873978542011444979976423008899019200421914751567955006265532743757880077746093112597510484982785654287182215642671017529101939755071822450605706413540981077782159469161632272893474193716690854342757510566880655984463716902993001923997293001580425160723179979504763249092729082436256368979303565447418228374635726426815189767699295916619030883322388574647630354476067479201474478567081719442110067829532172350548471157958796433072160975262846295627689966972100364870407504847054887710462849933956338678019686913150902156083345270607926149248827158711073753143388479479405972493227915710840112827023605357430859848022387143313811314881421118941183105447821570425254182603334482290131408896814747560054041117553798940048281312461119512150635637139502165989058409695062415112264913860100417062033449386306655458109759898473341717086777490373807709769399119898037719350273332636541397083458238983874443758715468523794608829111202177177379266249153418159908310243775333577203398115910020449944819268197883541455619096010935504786223249988181107380916472966431478962047551827452568429729313303667396417473557894775516162580058201943268820364303412975484644996095856491085661323938451996390085746306493776604321010887674063556015321914329776586866119317381228875498522825440179124245015883393325462783030871772600746901945583823361680740366195669981108003871880976295356943294337438180881206180582113705215332570473239105585077429965474605772232959743274788474831948224418589784784378052046574829046977791799817922176231269582420360388307823815414802311743284187171422030413189383084959119472361241658818784090737022895723496625713228696948527427855220855010510482166570826110120044680754079771856268264627294139824953950876153168225629633956015031501878983521904701653970734769871047139516316055087120312461394836032637163569828957173657841365199325409913602567585236852069144911941683567784437073335794113540864896355460262935556997471305871360060220012669902179083886928757782718911621255976806610382048723715276210043346804173740385343172976546721437036097082031960708643574965389423960978403995501674101652955631953094699588766664063849893000774836260042443072715725368397739013337960408633893446968889696260809722035277266597181020911690429122187770713071467316609112168715931887430772423765041700533222432588994506227985304084662016435396980158428370550741140573574799796823676763865961876995013647111852234304560059999780046288340034339720092257894115759839175335236078503567607477444666203386385109941172416476950204227758488702557096488706062499294333384374112828794508391456117230790362082760396000177850073850552120775063886845573192817936063039597144457516182742315060162388682539509878428198626145266170747771764778200993646548240353686380872520443113066861386089826773172047019672990442241061786578117869186924933330918605443971912815451264486095044749561930537529629004998142723125036598242023127309615655960847716333615758166573121208052536207511234926802790098811363531906559693929380639300447872959908393169746891248345405680275022763128393293309609066936434881436979334852461789832749553295549631941394093731577654685383396435441546807550761362704950552987469663078738014733673057580679424715582013949950118567042163214551251500483722279503494665892539077283243496447691884315324733999349545178926889110485613001047865987752022514962472299440902742584651198839800872495714351980898441124414615743112792478541856105436090838732163699684080636665706949237492912348809222755541483720219654496501406963381021401738986865575704967527551227966303483572264518419643054848777599820997073637138650637359202346652231478869576594711977445862355328286715147280390810850901421674125877786301819893155358760350215177664215660612791602762448642681931677761757583366353528464823238853686932541345112617578155770355269003537716121045217971455036994708506021599334485593108184268413800856998787815638415310777827096086294904098958655996164505063881714652742806748356894606242852188287672656846630131975090698489819734608449557695324926902992584024542316417887027818134804448716030789136114840150710553250059017401431868621947805785358483368564741536310498917183464868520626678454568342630131848782321648033518554985382066472903053299298736103409411932246543001699097352321911724771065714206117496694765267736724221265420556579457155776946851603184028730689726612998014175818215733014141951756680728981836906198355532658636119485420777047577696154151373075457028009389769086150319229303591150731311547317446750789516637360597772175453937502441077464310547019864103967872693209196704456917435940515509069611931079818821347512950237169521134145989177475582672661482188982509927096260217567224560896939185826144759717603788133827354527212632780427127413158181412144617720898152891461546854979578946858099433730346171732980057416032807403710640877965374125142539456496254058858464174882175570156201054292458736673294260110530781013809444358429313848989062321277360939296653037487553425025903111982720241696328579115802736293289391545362550876545323414320975245718817620119922294211187174781946089562135156857739026215716717651653442187602998920175405663155250474477166179637432242499236763567076220737432083857885573391538019715746008463656450034410517817991538976523151453715378319985033578758622604954347719827796198296159423407515888530996592731634598081125598484652327962389841424878905286906523374359074364646552567382328155142277081443832861351872441087940658772271337971740793636693115550815923194247586893458527857655652081629690126432203918509058821966777429996372251126559658124317023166120849556742882645888458497717623073296673251530501578264363518381502097591632426312741586475768833299197270141306065755390162311493807709540547507531011029401645364954971421437600018101018178878288863775386461356509139291138230784082660209676914606340852957928895801765109907555330833318512935278010985909151842034552495353538897216532834619624953547079897995256795962062690590570339566030232277954839686264210478841780139417058420642735430239871212161809225455591091451393623377081920047944559435942518275894914776010934359458358704028954344978247757718898304598936020869905583999081502892450220005548587841822383775203264661456484410632617149532552690380336471337364048199955817798079592443353050814552409030213408099158299087796520093343620426918288551900086262765916525840433201208673676832752976243527468339996588691234713462215252556664889058984541993307227814597554763340967105829603975262830438510888827481620862339042475120479180605295887792361982581739158989186961476099258110573341881737958402980079892598261962024718735095472220648072201461411290368418030729944419271934462877178148424088761692972670628901596010395309655225131801052261488726590334470495498877373782803534492524057845933315028271613694070383761170881463621999254110087775871779252064480929030339131985753272087123236167485388865180377967442096362943648314500107776469199523605690149122224855127953325565193173546333407683002577793484068244307768469142031754403087397490820395113369382127889252695615212773409807364338091300253121844590641456030788664918827204278727664852277506378161176247994951901104507458745487044537102915796980562577220923188329443381969258653655143017199966934982253592128035748630597534728370011008923009600604143301380785526667774671976982084225635576642229988301066557874622389967124834409279759385639748891379214130471112217234939454421019523541431009240562617652571372511851660517452568857440151440123401289912356142282223124484437988336906446249672572712644137397821604385960075629083136743651094521029669132753055657108164100473492352899549787978337011887952296840101195160961213832365957561970831169489352890720695195874128273475642509005244204926919373441253575439704855876650361570582572975326990774350852248168087318866749004359680088153132656061715548726811128059048082180300157829608176964844965834346333895964814976488796752473737986878673187755009611402742658424585466998048895104364408992032946023213364103156200705431467119220707003670992885613147824400816148210439382449070880493419766120160398504255025702471480373146291022599286215380173172217938004238779870789646349789607255834408952385281753752248431199193867707743082241082870682798788614650078640098131121352544268412107723464391982462007870391329588539587657609195003495632296534892011455139869111183336120171775590869775414716494883270759031788082222309841403990186601397870712582037990033333994258406811586352921769540109507379252747247973798690210640118293256973480515264073453239560460091096763206653757082419372227243367676983157658334322146209434882805598814978005605186837312640634119701686038174683261951578304608662484926897275101715174483341814624833400082727899208427878998237740486051722401302705866704586957708373592891033951144016934482678623619535393595322957826596595311037389077136526527659199295009832205594883519870105855546962249177682907320628389491163420644320955439637155498162504161424769536436609771820853856622523632080364111573318634565555338318643569242589935249858859742012080778177516786584249015144458794588366959088442678315729285430453483555765943960521467088275161909612870219684023915532935035294168893868219972701640878525998398246782330056133291131903969105823951953673064948125025465957955066110177655479513519814486120771330383735761988229282842677668327997049189479287731340000484185662407755537787890839928848564641508129748787228858074430251597418119318076760167624104300657740134177457747247141667076921225285437144414663907461581204510438635196382466503669316505522149626483589841900503415303755869926378342515988520601953430010620542770225526642889883997187620597527901879915013712139197280706195252974313310506439668402344445808776705969404444233594710440115413622916177213737015318470735210438633577107318403163575884929706468225360105160677967038337431367542718073334519946968354373605236003109650784319421939106331371388184177732940709873991882923871163237363274843007386052149183190679186603680835462565500724815367763071680586622872760838453208524269820509729036255341677932169733433086938524494789905027234140959414083879587280393836854677270163285612575486409819420599081664490522915503588904157430462752346666144428554344051581853060246678696119684823313561219050896800835030157707073362170988425244877561190183417033927700183124036889780771137262004626697530604904127800914977273228478952026263210554727212112148789413868064105713946262163999590079341468529272509546436465345111889645986197258797078870337473859827645536490043311957666653258110410534146608140933678870367343683045058231508418287019816631526690146083547356420305544945257160777101641505118851238385540637706441244773029899634040139022372939911858336214954054597662381271927014859515793946307813025874027036275292061947062901875152831088805644434202018893982921041359562342166869750379462329820060485745134681359559270183106856410825574358095128916070091712058079298820525019543413171488572107020983849109782442705912455397090527552339634792731058599297541994869581078241568833859960517416519952459804278816134991473456070193319029417683562553919705577102527138412747232903982442498308646844656830634522137721837832763873902778534678488817543868938711909462006282687520129527700322975221422006524025410103644154385039611225304245585462294757230971111492367535654412531498976332020434023708817605391248702291621706751302933927728362490593482762087446900012472511014785333084470612959364803690757589556559101402504993377709842457467240117306550166894426068792180210478584344971066849344720251402301339820981729054466229611754981788310384225642445271325264994533699142489135191327444764466364055132659999979837510619828153749243528915192358763877649802328760493781438066771263903998210018826347175098624175489971228815493167993672963547467565676701398802194217562074621147090178191442765471604851812297187211793681177404067032711937436674534405414288331059831210822007810270490381597594297647447955766715499730295619711178990561469953199993558775532311801572034639747243363455387715231206361232660651869896567715028368252002742088315453916871609482956099355210902060769776806669432251069831330567242121839941761928796532549438046255569011508875919173947835592068767407172705830376845395031709276614568205210230099801718361251385218431761576496742349205220044971015677204545046100591579305114294828964988361166490331972218255232283917564134441068102768698550032191752224110201018627848805828865362785163279086274762392379456053399857779748403632458207618846894383502749552716484038085731316637435054657758940866595929892880334617935044019986352598580490323205052790954853879928423847510005290071695768116287041506070881528199206749469967407493408549096575281426787818898565265785888538212394715175345182685658765849168753711242969258949627145208220115076177391874150207595374086973794373820106435291298335386448247590424187242208336436438631290483859126220141839845533894049043567780964935178296469518780713662434349648337286958141668517226939713969821231661848640728143718848091230772594417360415639422082391721590690455553985525689381405902736709471800763875580385235062966458763322476363695602823419352295028319336979867919809150462644174767867451580212055665466939927118629197291039808323639370060928646777996510778935042679806977643370128076155113724700314135240631674229679387438823575750158056153996748899555976942602459663445529249704059486313697840292465581680141428224080847866971506114731174488847535363237018068043585976550429114739537347623258480892334143907425219992213442250526776326572917194940452335721806230828812437288812303443375233843624103563427670724518502296291162172972447079796368087962312330138458643013000197816017252320532840085484830797482960440768275607862790329703437610569859760753570240661338957702909987708784955971216214349412381384046606992937585630659750563434966017465701620806836740035098317175147342929855630975827431513286534054448859563507197158442271742434863705085211990700506286660862338467752094489051976952170720150402414700951686721170038812985546765900885130225452624781268569221238384378223131587480779283944101385463803604112881601020233633704542087603787772126647237724430036536043907920880459313798793194335058180282699882418756138341429524269594351586226214787098149031595178618105179415645598812578071493904795627429586475283928178851836639601310895246419230470054964342945734187211416226647246671596997361936744162706167540190711085430130218057702906139306421517523017887646470011576024364758665284605686488504230955794009695302154208659473154642773378922788860158555232525295171223910737054303670373374703835162618602551947771469796061379343363889715309765152331759390367590224477293993379637803547199668507562220031199287951010429094996937502049017635252167202017505208597276041862588383393818580211497193208046114138104697223942644791767960934224244473702962891803026393730032104309352889066560088193493604356913174122328319905615533773419135247654286375209744791373539853049416066279162398379411332619084175987705019821735454612050945210194267368632119293735686973975121056075089194053038106703087349781499778490404606547166115628182715775326858280977115487695718878706666024502764901711761997806727282226091985113779076108912657231954809854254348620729092243782925754728951514853488945491463597942189775092856168774727274328739050577315260268537750101397184876005196500081391621725824219015207442976578777558793449880339621131823223513587792123543568709240642047627233646609596524653835214412880990269496670722897183124721863040539762949788155590760330391550944474343785609308673273472673227084851406445556918354435713357902983248371915162473453762812143282369258965884303438687678120043259367596185199613005203608573117283718700717514458057049348907829657442646962906861032986087853520226348603586609023238986208506332657622878576780062495735243791786005257230531407175997193750458408742002518038186445975031943336600161588042222374670342210460827692386715770051974570080591983429677198956020454855569805917541389560041979976504707343650055689181156036375435946013165171659010129895702223303767386027535514150337472042102561617598289508873940893100894093879562213881683775213254637433370315940309764142573052451053708875184476614253687305399413263255368075009294274305492118174349066018218211651892372864676769820360479938137741905592468512553349278541724755809798659722127746196109598287885283598621775834674454053569595894396836006972433925721695570590501949161500138629476903241771876765218291289647836179927690295501278563886882968650718766697753614348832446057981632406920135616045062407156462832721330649708492249743730000963646539916236160269399451826710696866989876461820007605327836221648762137356165879955324191465638307598847471947625809002794359068564334053332806366636142929617675167383911827313079449130805519314037828351790467660780871529532970596753505580496549927402475395545641159801745428994328191851829039163589585678017317731136931254734796945695881376745583962589648748844607669239246951996634311708921588174763088013119560474385378818891543975314080933434310632070214346967106441188952353311001773149720806380309211936843447790757625866265808958375148590067981746215641064495904592312322573143145507373912497634852298011559566889194651628934985928559300001854152451153845717789230119900617779217944757585591125956693192648435770095157307282577190792484541767057522382631200182879868561104486050317998505147002391096076520996523240680885112094432285036229449426049158633089011443644881101630502892171006401882104699361041292072677446245346850570866492129614664910591058364890937282611985893500974225392668804044673192288610337774847835793510073000953292434242493820893608774049192570275971015224566610557624148816598921173225354531922149172546344344292537484706553530514557660260091762591472943344141550631508540811823736120345955661040470326207284490519053836181502655224996315948226655853028763389153254238833000119597606645754172803892101347616209270220327034471651236119035504929492526131555143670694598229365685488125124212913423511335876902697492137533610835563657884369425944048088111013506565337830160033307966308262321749712902142930849853736478412864317218564526965785483765811643656513790586953051369503033959513847743942328333391000579672013789824945321422595251257704399720700387446631409463858053790241762767693873102753153872977980545319604816414816940613632745576593280462092051767805165077918899415566690204726695317631757313261730995335953085810656397235353407837109606371119352369917188297661694968615396838351246110086461055245875645510576745330761603659814393838632913208682465194851646262393273974201987959171772812931324698526154180291640187998035226936524001640624031316890187343044277461833009791847323937557725079532589631294904772823675856397277513534178644718860489187832185290106480064388625505450120110231355943767923234710936568122157059789214233536869099124913754980475560282199717445101906408587651501021988368067880407410290352393511026425588291924104168576024926833948722275767141312331087885808323180993990685064809778137460252104553897414930758265727598476333727787820927139288090621094107217619071168140375518648944888138329049194543508566091288922037335014286702434745692757164055059408529115415840825994831472896349743070509657696601991071844179646377128845785629599127283978733211772673658201104212858025697879964909107410948959419540305417724026121280302268199014827512221100486620502278489504180711255577788424801653163185346387414153515555666241857115783220031308530331757988874611164450802183120094710759728150152910335887204171707896922100475644939595500484462532110091348641600504480305736385231593876153371178376403837809951299373218349216092507761700229892471295952013429128686534876564834813560579868022416708859023858201064263360574775499871673127552901098415993108694187244114568311805569143762264279390365368344907330693908217639610417346016619747924267174220235907235421484556296986587052414911349602326086853914450730430911853277785382877890389676095689874697348059222558022275752725543200793255532415095988694092671808483591096077137216445695454799209358364934309927697812161183663704744942413511752763968865458994199314249045093901789285209194742317202371620052918365538392455355551582701013723914139466935453278618942944207712303624853906164971625227808672487222677618642344899587315673240567645475100700953198430379113355790539145516244004577238477983517067799425047849918922299657182526903830863798515828132589793216533428380256290351985896240709497579182321052599185010162528109278786355203016980382603399845204923782470469363814936857801248526274725840054768080502467117461832167681336182256241878289534175847350386755567917562122438355843389959139277615969010152549833776519147907915884110671994688443940646319797132283656366698007634537328996232464648194926456892830066612664496607268889082155626027965210721689274090211961829477737330546317350523936224606161786660324253284062333909766379695689048870927332431155106647509172752852319350087055059821621521417233088490666185554599968073595678296789277810023932877279010041327062644170656492549951914012821242587467102121990401228534133962198823638631192316660400021064793029407280436190985623642904763219303053678570968520679124216558923081185155007997716853462334100501325549684868584051803803850206742597652508329677406130201299440206156312298707584168223257360448879665502719872557784437707523851286528029573790552100484242359731373606234663511859689782410986075085545412906825080920341698825355628751625753667048399011945917013804473744724692106562158042011962528377843831486920572656801838824902173954404628365201713564558369833491114586847828208604646435824387942572202543892129247783078157816382433094031435739991212621039328789150916581371084167966919566529273417271914850505311087333104100324529528483568007004455965897897391698905615229898138175628525727422363149586419781170046327708077370800639929145011495138226248915265166905891195207667255910968745241082528875380259921479926370448238676630536189201329144465785161404035326662985797969598791110251225855829588560813563274075768562909843971549872047705221833870997750880519904513569087906018918411517734055247836397887124881415014685759967978972348914775358452679536837303853848056889830950015371913795558690377329922643812519527934766648719060705258682301188450018316669011630704778888528879485241840081829050942036487638788412077397223104781108819745072533522572693402797330338744423235990709510809752677006021709167732905372633830661286019674226186117700686169576000637881880965561670177640781512152628307003510300927331987595527279862833741736383370662767520100504108643547754060854914880559286721869494707152927386470685001576467055324084598430703372397342573986818376949586691431246252644113605636616203083577421719276153469117806365847144537682679455032545625502382798439116158432126380048930329825991715433550031069723067261401044002660678447844271163649092216173002548220899711433794670419530441186689110689717387535497862069880315343638967650575596633741930799409533659978977205755019835344261552950748309193353984758438440016033350551292745840313942058460121649532863268893414932262112962753168266474938254894411488655108971466965295586760967559164168325639163601410976843167022784901859249100688143702123234064632484387249947966977652061436787383630990467060418520614189977678605226352940744888372667379526465025317692635750520106932974622419978469283817341237717803510800316715915390214493712445073998729692639106323642445725291361901416888402962198875382039909501283378347073589469286459964995777164212784257306193458873656911203494348546074662344825500574267809037393372180996372438005425002923115650260377427571747288295942007984159896280125911610093938430384262554104782945732228526835170880647083239804425864780062233109792838108502372196970586819119773938803374881621235656028866753691718461999447869690848126413360596137495361922580243029131732181220101968490516670219539619824781341106254291008095597435807427886632185859838438731929736648368413134940557540974393329294273724388972353379077735603481658314586390608264914215587974297990448436852520007986294573725782975866310952301158049359977084066276537087524480358417410113069823041488922286003631844066322248867951658604365307840207089938502265786204955228123725996315824369753167166077926514176418284651708510916400185572754776587142802921283751036657361041460416755182935037327006046006432778188568618904958457487258265817626680627530474056170827842432326390252732676965627443557685422737739519151467311222489502415066345884540569755796343633349292091551910671194428709632757331903218885777968088622218220145542641548338584068078818472308787995299993156372207066608032103204653106810344129428237938690063682902348606808707379771136946947745408868747929025258597863415279421769002337094976416511340222097128595738833237433137454957512220134529529740039809109358501460768333899408835896731419186958783880002033161401241020681420551928775952875346749853503671726797357830158681720113394023398767286485217304998037930337828138573331215100263955028643218011083012743898990143979616748577610844720021507975262359566230545305732830156685141077484035160373120018493124819440646232960879075079373267406692578032675967639155027751318895704229709761073048229567414523708958945104883439855134555582505657992828796920455901529008343326305530668757956918120203446381307241628970796926246706571430553948146747158770144570289817666721750211023163139373883457295037355503527720572634716389261188858641413303850481638228855788288622945361201361770443270844378115208262383594747603019117160460051626811308199803972175172501727738435689499537984617569827811370707678186673089697792564232840089778502430027768215740057235426621512926065193302365895163732568909968626176590456215925829497666398889637769015760556192911613183016964655000239685890124587541601229511183533696632730792104356791298864833380861101905936318173009981829165101242931506479716788709347979232717886878715651004867582397067724252372094713419555184715053416889112773744483786893585350147037717193006362523859791283029863896831661610782960234243759260292744315238342959578184058644159265367210390349317452456300738374980880420523204734080932381323118255744850935884158286737463419451982527352299653404213257651910513280846839191532156717207318337049816340585729096001808493176586655052938137488336824064106034334720873929650098776770161577774030562247178572690588337556610118288506398690052819628333775982322844875252304601963122611776057315891032504761214559143588301678115516614933320943417710151579548302585424184032200745734672332686439504102742592909617545645396930032338264291495125402761304090586412018583821163831006901617706875810713683191222226415482502915198156112376595497256200712075423901526412750157885228841380869096129334155840663476081905982969723870646659449489446561073837532637059965177245885161232557212472546168105627652419824795111008448703546367918349008058900131300746783446490620594238558622788006354559810552765980764360964701920306908563296782137300865483239322940620720021388447604504954601995718259853118265813210256281252670273450015155743700223921953249653954473612183294974579700082758387682603675707460920859061487557024081331223924505525376823399192059563690743993176163717127547384032996289340210901630772815901533518713596834717662083850052580434493711470688071330662831835595934486068319484786918766853965373218766882201524612696195515950422433694840596883118180931369709123945043396302487456597685615963148620704171567698383216320250306793579652164437263669619586079016246512166212441446952572564738877316325035503399477283845943468395183565611564960856075418385926050188452503971254848388964703489148633296663762473920536467581053660676790730521496885579594460234167501952260449204734587310282815125018541741071612107362570211781668899062018562457437882227501016698924343648078381462380618440014075180417036297220300468749936012429688643415339728051727870262577214542733988854188597960274159198757313765085179419275373309877266485849425087824285134106599793409781703479309349598874866050077436917589783028981016764020109985136530625757823281246783888127349045187374779857233467894194914893257790555497546041979939266894601766096518495077300666731070070193314179646866086379775718272104992629117203863614447440980639326560165175249300507501247423027054264129191563538683028910322922175797717675067373029448513135759815025900311289708894291172113286501230016295750742624343377703254340687139002588280843798470944633427324352830326019989047210870652783326441578106284199360989796045241692497861469572873295026575633974562533009710448166977784231507689122656449014304641847471835496409235605460064141594088511459339409224767008800950583082402736804787471858265619891093849437580364557764112912610382515709939778461594934318184730453639370638598049923477856335882228511393998631533418578751745704941747761325883788769987365964571436128942784999920198248418446090592233016128597930460766017228101537191407310669082114174569599684285219354838811035978748845097384829280394203172833884354827606382395184623824010086432497159052326760645771798683837921985139783445199030686452150307491420517837679902192675264508625392461967105943636333909994376294837688517783948456696460024209942507416696504553196947116624927234790299559698574607901788173133704525947443632424029773842000402842937570772903433588789559495712176217417012470054693190870481018220029400068297035099917028348029188650075191400273938547779845897520469689635858458580264829058610442584041968234651975642524286912569031746257671157008489935737183909676816767334453864976943294412567415544870234163482510172464281747115652153356450074346745731063496681844718573689867548196142457720998021036646261502622426287240584397559006170718311619730290027363681477282904156515867050089071747527836350363142014671169665375900539181303580476596818510489858439975687180565288458891645385313921815653868834970250986019600496621358339824090678897080824392500381076401296182649058834121485522453551620601643184394107723076331936552737809981325245505941761454020025149167530804789721961901048395644200717426703439741412255990726336418679772359966496294850746534811355436615360685329237627760040515215377409529493030133310932817808767025282263727922542192286369818403101444373178416909420567689772509912422416578543850834191999354590548034029760266532068679205315175075236917414552838724761256208509444100808652036167314150159640458741167762229142727500589680084361868430931498009310426167355406725487223175352277894582605210354237492524915797880562929620349360681640360256594558287997678753624745094419428108297063670310367873893735900388302633687119291019201671005956998529799077395445992304078078964986887887832777376098410533750922163395315618474308943995055715898500578542644024147440874424332712711625294841526306032090696406975657536825222778169218851014178588552178296598699455079298607566124207163488437507383599230552489250492079576211357336044380069005546753452139483497083697876734925223092330200165292824607180161003031262947949360731059580625357591139018375581485069978024371005484692093389853755094808320026954791576422914820085070466477614979656635081587625389575348148998944301637389682005266918373632867172148669338486013169822039287745779416613181518442604070231735676248213679910008116404986270339236594198986419182854499979831681437581427776824914070809002369546195684451872528330431231907408215886140894520940274990769360605580039391053180102146807552823151369431476284696127088241559613204439517367526162946359824769538751908629482642496608669734409479930762570934098670040147568074931462439794142881395683541716836495892314604074958753167459304352906271013347798655487431600425729189222758922219759462453791794477533594790246327182037894054673975431098196037605322706712793517399529308305009478644013054125142205185164725822359580877655010166123988418231578325895845962905847532261083461956637265681111156695025177335541974137645689714023169367694692231539883442811887445493401379324006119892709867624165253509689811816951633455314156194996148195420972004945045449339283903044798585022035501706083946456737299136790751385926282185255122975667279681303332691543949514081475540374680948726962771869196814995005034798748768047432208550650595373882177200743999904373005079280407458120940317131255723500845960333886536926678137452027977242014636783083302016068308280037459337273733639677554110892106873470917586420627570259752897418159025305287430143191639028076697873227320435076434124443987609132971476724862091411236130351293677997346118644089499993169168083030899553875585979425972947187294112948538605842222783229780811553878026978481608542441393338225769571798262813260853660452479285100698378191480481101186316108510804642550966300005529338836114305628235348656596597610018247594003828688834394735397409266231540980890623655225688153958221204412439576584216540092617314340877302656699315382133120783050820269546215145733322871681525805213511014446215226006828982467149486193933948167307067169625379086783918317885226578623047285293389873648954961727260512822721110103438093111069280005312988048886869738023311383411829480950804564537613497816234924942700888021563025282726476325914200612899375422595445508213809330087773635244017215917285909200281374289575984599331696571669244892094026837309277124446519142675005228990301813677951887785683243211753696426150693233189047214748690469072188625972461418482194035088384508749281203272336609635496898368814414068745419586393440541097265005330756973748862388056433949371131880004302613049100002540618951014244960075043063754344783296961166336669619493400876641582501243347250538008705504555837721382356604787747635936660768688314139068710097797234639715567228302201308922725902668595763607167945934859192148767397059376572920309017920192122215868483882889466525950307570181993560441112107798736244185952505114131561127629750151899684608009145128401737543457419758603498725868771733061814608048782572983013280725486955414802784451462663692509946700514356683029568062228680419218937660161290403098336480499285296461916203075156263310144400798128950990419971032817889329269921903438242439904524142778956754441668725979481943681526877541821956775957813944695980214448754847669359775771828771703619107721623802157808515846269154755007033044375520393444068730147790220005741023686146257366188416457727042557980127073966673144107587692143063240553096149678924379765184534235486266838715054104421668677943007201295533078659672942616661188094631187624186842420432566180539773844799262698173729009826427003720937038127265275119699784632552015714234878872723787717248827828907949329867070559043420782586894677770336921589020860622966011442454861131018226504666006337313874082269606714158461070459350551217416241786799511979685274152866414052168479773131331521369792464269371715357241384335670144058599971171997015252998603580403177765626599159588494791949305551349237619359808956099002908337158109619563067360808867201077443421748752500557955241817669545169146384175404217494808605356257179113513835439341286015274085179886665740709415637850920879224649499116730848675213938690516930601193019944252584553086835148171827264270627281990827651206495598021387633415695604611773178462556834806449902104590772223002072779235691202623482545398242973292696517233899523012556138573722105893235430845017432018908722537169092977561734769861340997904672293234534253864120935406086015328084798032418884057283252690817668105767719203156026006778419622091124694158449615459643754287878310770440994746595903605890736457706687230036852490269614202704914997150567967714870163035970776523543120897615485560629208281825874697190144183589691860762583043313887450607653351094027746498138910887598191245888204653323271431145526403633387189305665035416308427532749575547092846400520464088750923360993399756098964233208193728772835377167106170280749644112605425046333323927996053479577510474825279942029910973173287922638876283393317002093742028810940740188824273535377418996202287263832010747645967166308938579196111250362118013059149775132715411300745709875248362349796797229920321384852227339052032923869221984168505183932998196818800557986590065940594493576935447967943077340968134632644969894919074605728129864719038650075552760979146389009367094996225280709559289136062715564798415642039574925001716241896509272604550246125479976577603979767970276929399384314692138549607853921214758852305941289975932501579870508279286543331614782964589127978481412619244760191059636717940478243393414450233249127457991668761612255578387388915259929031215827256228264576116738829489337379839012027994915289424985650255167060995065348617643538221674303651922744146550100360226149428650601171004546492186473076650826876450403452633111218831627233909070904853460688190306673060777971909702706695859535692943259620991352438809977774765423811926969791246400639662305835888005261628018436841410421921006750088852479392764277600949043284083720057740656265846587278902507484330914686132746550452343241544859142459573099643016782756085046716338098177611739874410095035338148801901776220998880372562474618353244288751665693155220002054748814679577016793792190173767691512398483851395532252448531793968447781178835657332918075405547516584434800618414625306098966205321659097952435020061586727708178011941432746451740093898063746816646758719101209005729867758677778748119479395535820803775698212921432690412965929750287892782259575312636344551738290210927957102527022239023931696017594338082459314117504877504596819072762119344260545158800641376897586748135573022089320045867526960561442811877358863691532746669918622444129436501918314872484794003295619068242891148552040512150517840681906213993008239655207386454570167278438823046700744073478404057720595996977382668865012150929498109930403994449937834809999590838715832542424053714356253711365306954254268901306798410353479358438049688754521833636473896766894162546076038949485948486231944031340354604097306987709086433681153969928332653714654604718308277027288626304323081899945451190003508786021317170820673523029649844231704601280003776515686511008793529636163189185232985443661874836108432919841906653166351468969942062943339803737093815179176182587894619667139799445922862199031961273712604997847469334277368872439709732170143468437485444047286126925675587176964938691281646283279837085779346535227325609709547215856814830721001027446110152826722585376847054261443333928606947148844755400781854886253245717030987349212736976380904813441073829751773442706659739637675367331354079403073432488775154418349513298311633813281309266864146032115051182507028696315870842998480207164504583957729022732538135306093916520208133669275551470752225159246623249893395710654909619797110502178506615442276903135089539004126856445735413895120885709105965914233948228831184322940942542408782903161275826313862094436150545283272815716871544805035072169162610705493654579455671128401036576122012509638460917102979857389021703375213238034430609173694085668772741126042078351854750166304400060490357140843213884077127430783840223995908268463522373312436972245521532508714968161987579762987866446526179157608487790495506953612470126194087610590124019477971248129035108753130304613867839213299725410674492690207855930199927340279046420541230918592158520394699837518958189792978135924729612478709251839092202256425139567709579704005601821687841191260917405524641806728312443498399619804913455779205175601837578246189026436821242186905146128884618227703337784829279328197221745854942117122655501899059248184821350092974692315468193972524935966442240819252568037471011202701464896460374558562229708262989187074340826885537254001557859209656653181084166316324087319596918416221823463564704851672263685810852789897681711108485373467710331593546205216882090530021725093598807697843854404696912806576427284280484769850865925732134746410121224409374711061576332588789948829096705468488463773252800923313363450510297597915446458903010028825034897923168508311064257420251563649183797446144184323075572136870998947459770894516752539510231283609167639876239241078634341699613250039532977191112221453718664385461358386023227746170166144914765423785242560123378752109199651443946333839099587847768824463395403517431823260687765769123052437479686682103579893780260853795847496385670688367746045715452596032651102456527175149771820881799639617761461968241479045264637034816357621151829286554131234243742530158093543913648312696569451462056393093908106149992624181025689663399989040156508792100971729287939410462150878861522513770172848796880117036250939199818283170005645300207330377190831985371315685176776777415397362745888393432709578265864128770963617277041479706542490584467016415591744708380039950848547008397159569813935321647351713991389022533088847095256307399690156503025145183060946128044073621369058151511308820028372678634773645343944764558718827414201178907325485907545666107170693395351944228605416103638961286005868287788629597514900557769341759186334604267724413539366507656487455745423054358215938399301611791527560672354962756910171119341686595087790617351899759083396136137975513648669662903960628574027870679618992808979500877901268044076976414114947307238021260509254031967863832894199578997072540068461523546592765830547597978932767190197894972828657197260163069579047669047115638096668628659788639790834145132466546197984778532487309217451851417483666281022317250830024158576362818854834663033696866197143306583731745360461215539242901004121745833561458226901286128865378282884475706887123978229602704975645311714233494390389619136072222934929469265772211723997535497559463371139829380103226579989446989280801072574536151671437875810422842464188743261958790257318968497868939605647349191336683849052767757639959203334703326190918069577712430975008906114747786481917636933587803997063147704483892710788943730306048862217939118079402119706201183534602641603881246987395710333101480629075821878218861024832233736552248894359665960392888145096576774364049515729443054366070735870840676095985984235626726987910509521881279722440575428094648215876744673008150458053471689261334672831168628850618725968713212295581515866562167041271669164261116849344158952347337108469202852126929374524864401075092611289785765731234251979748884836778947261301769314717815326241942456338209528130133067225161588387190481009025704580948633472640354309950865714290065128684256823207041826314209368701244642237946812336454035761226912155370879055060565742774176962896596931576711272040229590903028581597245533358560004976653600445823771166205237947658286413173372738498320946376910442245495953487588498111053953318734842730574138493459059303560784029204146145154811698672211752496162115944707677230097369824198908917412248555473233108537862321276509160214197899380324988218178937922361118866747588334109378862934085268765600513273805328368271394602380677652513122895441819471086138828574094576698778638585637720711877400902895515427529799958371949800554241345272772689841025280671703907552068161802663921929213945052986063603613538900111375092853299549590920431761466920390178776087947056032209845001550437348993037580362370722819326559650846869902811159830851886860173232274664121299650618782187656025870351437246718216124371141878227383841729507797225549217134631702095713541762308866765901322555077028226802804419530002682998411748083492303259962492314031367412600933292430196925137242748781263827499141918083654343834214755544588634328779191847944849393831366771350593851514785632752731522877501909900193880354741585291010845757785566920279013888596498832482493904791926258494526192805711641324707065667540178405418672763753426946670702610645132188478828899221284871514360807274433358525361204540905407430180332505413727347221062339763301284661415500721384922027244236022250876704647491972643680246896163450781604767374852818639596304440227361136280029889334154725810822664816807639457609094809215606595333562150175474017914574182850241061692115155017385194094830764946993056671952611801132214108511382183682798040747068830356264134311915288512734828782385903354514317292781516269074042658691136180282246703569193107894804520571597672307281663090043713138125941014689185951847463577648031699852473372566161850981310732124173828890611409914809096413351039721111142786260847016560323368029037518047385433668703364665524612488762074280671326247490154751573211743733746031878326802789358823474792268430952616895590582725655634311091692763375023661148896528512333170036296780468045098431420915732793909586092709562049313813910880509456672099136520916894808789335934104161038709787380333211890549701067020899962267915049906279057456478511738514473076095196514194611890944288693604700192503711863151063906440289170673078872035987162640272818469684729940294240936733068519620937479792325346092935410219639685474738627337767157901293807248134674980505696738071435325790755668547513358127515765418546843386032553211552997536878053720271988355277602080245469179048114072208132645023669036684740849746802843670015370796979768916731280286159263613641185104024503460895680851005700478660364047880901367333071249708475956037821832584005274292371150319988200419209278388580793253528737411244961968819484484449063390461954240854546426322823241852267565297437763221949476785812258570499051053717165738133825891533392316928790827123015265891718467514507017200198265414053288660248096347253919434133100695114291029009558597488678424869698425225133507404215263252853804400341146028936073300532657243459745352844192114833360706598415676396708831962103672661811475731567207860023323757596274112712195147015973818645025287882308985593945357356983761414060983011001321543769298744973479374020299628228437353716379432908738056661499969864234591820500920102066459316408588711213285747526044203012379332672379750023889293791556442258468094562648909915890393901019082328270997105772542672928314255622550741612130936416087592199941070342901921309559327697498455634358420254725283486779015984980421283520386511502094693873062588767336967128161519515253344996945971476117816045605045506233580373860441856624024587284533557920151404962546210009710843149714477931671069750201402142478713626103464615379424212821081260138246733707050426650974729511856011423858008175119059256935250902033536439705185057620327000823915110850896751446832492799725574638245502661469091288430491572718710048682574689548235154359708028994553326015929092898798523495261966406687259712839789369301935730286023105498910417384816909558243145711404271607413039254347229746581932182118364085878891565074632009789327529823966242811128606564266704631439587346797790926534422995232116898266119477729670253154906527859287063582931387987899541343937139294013898606924000633232837598800221530525488485831828734852108023414145808712079028266452499419166356845692988817700451367297483482419885403119310954693619196803855364056680132178728494304949720065472208651149997920122281856486510927529049388927619985740800224314990938159889853758053822890561043738148531071007351053006371279928754483576003865702158498976702545816969372653449457004189814156974991466433671804341179643840904462835048691463225577470737073284896799625608555385397357624837062756391185476399342102583751892803320493943890716196867131781566742956726190003993908694110559378994794869178963552775785415981433375655643583275292377331355342729260853849562414149626798453886816916022170300971337790860522012485521414064678650145813294482419261916648122429751991575551187872253576798327423613836965269705391035335332476961620624744844225487285734293535836701587121206571998239411913200297958505396415765301336869109114399835115054976528671544934212986978488820798030762308210974503402818676949277250794535265409028080982548773621408632762158709003998254292759804210933993980771768917722535177747647040457396359506532883766639818904881398895566093222322952116301407854480859725603226357984408957503775342333065936249265546053868792861624242110207619028211491194116627160289136987962450097491440216853042113136883245335535315394490801031731536663725544342921717280905889891002288129579988776312727305766914313155201765893122083211947796096248569453904567977523910094723228694142502124841389116364905002221057731517612121449201222596832703389147754215176320834454255626970908204288794941810286437962763999941824312122926200798889858305194434504995973604214908376547624118878711062966660398357250856667247908624648722190837131546842476680490360258875477595417254496127970432376449973024152744285660172850969479829642917050693974675281739445000297492790237037967493839316724577338755862606048740810277685556797000182692735723973886227346480404656939908154182240641003422845001068916500096268464033959677125111755202866744544653939747849559256996889848222646933786233539064447626658865704566679104334331994841453808839973611714511654770847896408016948458661836681891964001188109279489139302125612732905623741832231273281339740306303747571088563367109248295636627313554908453737312006811479799535524411694182961245773561746345237542283944839166191061200995518794503168049228944558953877189917215662852822881007884290021916411405963249871229110035211260255862178203140865409231992315692594779041650123307043222289775169034565828614970350605764980940363949181785112157943401206818410700774002583735936834261861872892096395826486964350857320257886305005556519237584454205968812095510947878224953301190137674742953221675316724865212088693823938699135121415419467732534178594899658850542550237890711008292384858326517020238167403617651860022798045017261634209780433990946469034798636864928877776101566532475758431236399873682608472146723367236678877342349461446824852539617018866777666815130686238342138376516643546388263792556335451805428646701322573069679889711747048884579815330094712072349317936643067794404797055193299473037755720808895056492928334981721990172155794743333179607107287822227824181192849085506350349178166206538066629881073228943365258832550645525716911293974994492741842120174835075863797257613021140681584092415490308196210556827323581339285395594443484977519592141843397455176582633518490290831110856849198086721025104436336550676803388377963895670010266212457421815052933418012106425232595020610005213380213140266100321872515739354250404861954675811449010217438794391677750931311017445212430341620217925244966508948057214524167616196378134130371214293812342835015612683149700958543520571136691434229816124647974228443752547416857102696797985503841916630124058657750957293009311865811380881999634476708511544324784223612030895627506454911493521808257988213889246121112681963919177559087987116138298485806617693646654359566661519767990344355172523892686617275719967769266388077470054147305987662336970311624918157729118936852376255735176901793223225210532112967997876289756833735019953016600822243966007805702893086530255141816939584735487597761342667720185271366766725257318673860995887971618455791119845963862236697111648915370670654047635400254222727687593588752473747399268025902677863820315603005347366057710099160164412186500221172120556179759697413431853906483553507544816172219880484604344378576768478295194091608893687698363572052227065389932908704829890674765716131157083399202584985850182146974598925245311776630606971374775748012767470171692815374634601240198667296102173005270194347214546964340764900258753347894446316245718384407431789618351047909551822666524243360194239453435634372333965561325311008825008505978529377192840122244366959791457366159121491737040332455268029875219408985168658732783020779239324175880173893644249356863392242565562799516461593204529117649438847076048566438868285709189551967596294296527234663042035042394516869836047710756176806564982695565383403929016357216129426159887503642600023329591589876672389055600886290464377986018642923570147704076513963520394035888570803561534532690940738892999548360149762360795489681111832107802292221407121443694080870748284592516700213108682532069809247282527870238398397913716355689193193925749883953102020826820903248024638465817998972399857945957150931413224723618454825578381952485880199030369128601920794446511104707095883692192857231985610182956565650741624590803861085709840303371905242113212628010279040769058162833752724015964153413229822072708217088166242610262841170752595676959774079247029346509905161750828760118817512832534525599530686445985765967657347135846441047721404743570927886287503508632479903421550815242720823734836784907218427428095616456272814562317132327338221831455781192490758587675756466606376466545339652418629189858560519200930885770083598612346684150527394979701795576909028804059607297663790394640837575764258352475029491953261533029482328928357424331746936609806634026208582748889651919766703733228671432974333566846597984134346743638796869354188500054156579294901303895732921178476395691885602369187419676800596221032010090356040789810247886940148803379062644082588901478662026414250958417212089397554243532958610525314127804921464407827643178477782087604063223491356886683291995666044225923912090596431703848443641671180725739582807412339235031466397050400590323362715849649427733970388356656240208424175850694386827600019859529860478661055929539644996086360698061553622059431809287668384533025541420608843494501138753243994732333696803235663004469662963450685296930510681848834999183475212757446399715701465099990729494349750768797989577133541591215993301532786978414958958611958613566620945915810933898400807941255265241043396158912002638546141686791027398521183592258512702853706964841369819794511025596002942289460516060143127654140977821202685182859422379605057599836564271494874397849181359994316800326626530907127181176662116125532746102649648367639930162736706389766271576783149642214925513212023413068464446493902779488198228707146078152469063231404390932706690480174914552426666597260747170390010486905160224832699308582446637310607599257574632159839949878511508986868282518243214171980076885974045304074704082353685584798137949168619527013568411212406374253212352297830990042425241184934893681655872647164591509959823653757000113529819774796253099636935608230510720599824238177882642517681565430397225907241428583471209418059599764076725936402541025391640518967600996354106395763876860469356625675388021816409026074506124839425102248757572532137105166773002337604334747911080301089427526096781182063481242219467613075485945425761780984758024205382003031287086071823846853433600108844584227166513598269710348592755773398337918607396523933401673817666835130033734983931250892412126209714585890916776028025680961721790119581028576512611163963654678621359858295660386331008816760750460502093238353791931538699677706863628721113588817884326972101841235300850917584815407071427190071973788425969840618306020555447001285671697523912905771497815746952024958709912433986375563334571203573134453882425048536416595679026013364184447413559417774130453618084949738486656699123171702989287578214231400190151571089585890552573073471828831582830317024060112671758383430053010108772237538915904667459578004357459952660822752231437235493632556559964236209647801727341176079229929458625223148147568611550794517152904680656401449857849641673440462474096672197425326157694861590555259298431050248670509969804029605349915346368345027894237244989042004546777185194280498207424090814593528643236840636547464290919903501689338793959572171663818195490641773393504245045192184586310717134420424008565203318837217523490807616802473797293091531558352013798649098742962669927631608254046047999114910559217668958512026366265183543436370722981271899422165704741907683211251219122241784812681995084344367950501093344721180833504976586813668069001790978884593888823438154603919945117079775294921735955477818144399689572061044596853177331642481812596481662237333073244365499281113258212162067805591455959531749988108659797205012904327962741317995073486754584889988358423571826735950983002696094180267285681271472242915322730237597517544497438388987731076342412640058059735745419635720661623330289462531977598034630810081809590335053605538688551481036348421382746537269292903331382181043752409427817841923666932921223459604484870392073356919012733180707609599979352335177093777847817507758624092037807468409046490909170280569884380338526102034549646883175573612344639003770171354517924526917629599090762747681399033996730375932381904740486567170811187798641484700207913545723006154719202601584358115756066997650994274615167382070575117280690076320996034085159223354502074509909436603545084365485745363034384707514057854058552904460441514980301978807017772047315834146019239749766694942610050449292902559450225386379016238769207236032191296660970749351067905161564352243985562143854922815180846522067204095545713416606810331592226380975967705923550898563913423316816939210411471629606354956073168168277529615760904875159852321526922860421641944998784233415374337785374662917074328345834932539460235318852520383111249447151937826303710961920339778455690011193769198913253775334770364339910974396966381564213263513548913796806508330868967310339438485331495004145367187567410073962102530214710297517084000469550851686454500528765300216040633519987671323345946939439964271364242348839467722557814941948136736968383441693804193872355553225091822675593272170050057480347210937045424367787044084813552857687111597376906402248655080263269949877433873255511037896502572464606083342814641978246083895309512784706334147183458697432988184843851956846386241611091421507354981440111510901438167321274660773574521504963793648155078481356349287493757107759780084516444605773005527464663149515563175220088771580254187228719858266265488820603441754995330227494054763655691757804045482317174732828573129516316850846714957182864343975624278841499583601992209075703994681309458476686936734394732042622922318839684282455680276646794693843782646783339319783367685061162276263473057007041706446812845214699856949348264168847980159987857368100200997972742187984568441201995434580754722893889766085849936700978919712784710199473992893151397952207986702977785131918941238548940390501537957248888795471353394693755821256626024557474480756298889837406512435505239193706885947608008805400594239761464389487514290147850440722122646845431169241966442654473190054018436409286136289728632247467408097297603206964436057828989580190811781095606311547704178615684836157504980094669513877709781340184365422681908668169602940975084386490038246089455038609568702655855677009721336432612793803072747702477226765139662792479216837716360387225334265552161180529642195770136313179621275372855612253642500125123455012656963294222007606499296227008028708648346051615266849728648460842513704737149365671722367827491949604237055937064417477522633780149536302497595110671889803308956775901355746503532209844502696787656259707406390265368178875108903621598778387214440456078307473601159954097558732576060542888889202019971522802205759947986729777211598202934515193176038365154920686486559079218657931238621835647038043749866660850444395352715834745156200799589869663950586027863212493255941338692193801738024063584858815021058391162353928306268148334918632195436769315631055251715206873131947834040847990215412059975065668239478623181361491395047880094283399599722906775086516351094082541622749278634586791449763214483182509530667359814896814884088672114529658149081398005967603436403555521708171231082662608765617942423022160495330770292794508066014768360965076286435825156234433834517043607035682955583259796828358626372896671129203190072956056541510273235364340251925206973223364321261192972108813308678375265382557089775674101531120343591730615654601933674645626505972376500922220432616042021431447235890112048891408302723598585558450601745101329637764630624229601020176023481743921533492281560895719597846477260623639675649068997180204355688619321266519983362710202249940344335974418532270850762706408072908856711232749592754393890423111945811435757644022417018933315746100385501084891817737910567068456140776430997508228628411900160669993404339732669565804045776145277232315875418098349165130498621341492389235177882960241113410672703124158501502813262553699131234633100542625593652712319516253844335080397852687183438083191502992803432955028547335050626114289283519989597304208020238564268561461258182118870777154865270451374319149252954366826048826211387718418039189864526450532406626204566825247213814276143662313419958900345311465502615985482379046214350215241404847694994781734790594991326545578834627169564382093192159720530744578149521120322750076735372053482367091338519991319519056451700186630739165225430668483694033029044910240409731763106711170281598785062662542273914074851700023843773793029743560133274699566006481525501186074604592349256227511034881080094831820764828187903312067400556500469075843179418029034997158230719136801398399046311722224990710566590484196382641553608234172105814899175084551696614492126616708519571442208240672179324191785578332376997906649855630113418299593029010792789041002406882159575982994520676354498448715547137258309087367776771936891346670721737721595535748018319929865069654479104148694006826487962042501646419980801310432036982495919263726717554981265552695356817782087527899701019165556660026423109467577629907618268508873359236710088918594685398446813653020244887808155209445278552920740392348917439235465019366387181302939479055214855699566108931950013387399573633409257252457516904868930678554343632685177017713568080194467859481564192226095123132698734635825926539881536868888585091721685260752252551390312157056845718752660629255151943948452765124635675645457842860060136430665758729603314869007653819853479730301509631798833667599836245076668213263930021458712096059605917941566468825530513567072668048465350076279363329262842738412052041347174959247329083829442868704484925637811495109050126890040423548015863332364791655650452886453483968365448847915717949393780358823022433275951893874576062136974203432680023460066894091522888244563892189533685770080571394685417125580190895637051691431413052135629274488923485786453593078894239434882509297151757816169746649305716671095528124462189343714276988980342361104780128372494227842487418572294464345703094892146907217885059824087978328930451196243555992282902480080723872938355379263955464479289670877045733801549476116710665327766704661753756006461010315077245052837129007605483434109545331609768683492202494400163534626054359662269191401791007505775608591174612584063858947135612053676872594674203089390748691455576921341057419638792766329444331113277481001300305677134075514644650961190901602513787012657554746291753310082885823041443297172568906236276979437004294174843460593988613017383589927939428541663620742057679083115192674462927335745465224664483599959993626145143652903728393385256192277826403139639881376875736289049017954472407394220358206339572870929482336935102345768906507091147751321755564177542862254928991120451647202028298412341417232594023374611240452232555018728483097945789088989813131701064589086514164667168196811002433920547314943792778312391445026350550467080467216100902615207769751334139436616676611308680598920462992741101426164761920575857385071216180967767892292888415212750503093464953120097560685572089172998106529154966268978896331173664709870312861961467598048560065656206759397972694725802299961329772238522789241526078896691706725415842451703342971114868272849042193030350968327880166207612133254598984696461632172319667867607844433279401071618600725985868112725126062414965233601257081611997243114987367050129163197653400738320480055636960363816254822275177083514559708846689144442599633769328343129085845970162052564627893173637928357049500675140168460750706511477045943986309849610272086295799648987611991032965883724757267347864916708081717163986051947270618324526104660346245376645671567521668937172949533169434804240109039549543628985068468226446351425251021096282931698416524495270902372734526255774300386106858563300874731018547085445435402888675375787014678804074926615796847888589662056826795187113346009783312339522786154738288111165673370979217002910961492978240597909084443193236266797628870846604837858826451361785448384646668308938606182999565329927857121291573400816816403476815066900271356809456013560964013318327258032098679950693827726195491393758698867032015746528732973468309953655032327933784313155123880420085621388486931672167019566591788971245738384452900179170808031686956517062288038667839023308287829332371517992992731543593874133475111359915723051021719817773853598135847509605423031904420584789268900434035572192760604003967703742251883697112777685651290959743182349125506809059277942599866552528563686253820281890340589111057405859183074614977948434164404406396597907764446554459471538718043410985570482430702329143749618713153885489067719141504625074592013010559526276011959811381723353633024189420073358242548430471867660841158277231196421228957058737698365797781150501166698460572926100573496062281762687007935669374777498064210286173963142352198270884266722969319584182428640611166021581808013413129771147445987672302932435060520808272603693273736902404435703153623280920210654421183379176069317734897698584805862210978485777585710279081367538573282342476243693165812016509938789096511422611023398848720095625950459263603782796623371757055787007956546312910200942058973510243140058150042068749332070898773410827450680237366514323879722142377669248461522461306909012546886375594561946808287119227993132945521867291755418245635702835213091340445722821728383335485844350092873234578027799421314252331284099892989534059398773950734813720103330873046145332721460038852602734655577495536019782680354117946238230300592955706631387619972186880951382440608352141970959382027044402887810686846397775875758356611337930167442142163376906581206937264350852994580500385946106886098580335497755889277243067940690201241046456576327406637226658409397772331382920030799708216379754906220162197292857062860918525471419332280691650213432926963139680122486214396976129183367426966946417677145505687481286868849928463086958207395005920041620911251089596193823084380815547915065475310345810323926713952398331964620252810805769614399509809718305288396251303246419738622474436815917568341141163836667520006343891128027229753084409333476844667919100629874870259591363021758603506676592694973886188481833160732780065815051623798432404573720034665482963563549665364852643672878133242275518346736756645121443584073971093153554741355038824536086595605933151678325545174954761531089836695477029372933832714018267743755700438262248417323157021380194601366355796189378512521359231329662693350603827199051110567976120420347755855304669144344168370435690130350190611541936707033933283262828585677451249009918186159714201472518689125304016950759821853487917958751957147314408012532650366587828898989697062525315883921943644253900907806278830046577959712513069163848003402045600856269890655656460735314681350188845889967877157874403786619778805897705969477578640102658667131959610234316301319074051282459808081785458746438053459510474760468253970888266101833662920696600045757598361169903766271219353245030012099552136675662939847771761963111550970226255652377742073335665828196341200271967498243852250044317515700587937146492202839892576434480074181263522196665753946973798548849859736906559108753603510580961979634747308192120065170092350270432891077579329926058241362449278226942139602101310125198214319538769089896880531822965152467845107554362987689676297226747355653017073548294686002824413216316293260046932605685359142091882282737035984463910140881598257532457083714581616775249746896223470438470035697616950729521333376665776571113078291655860835086599324218362082643661773423499284075786859376162711357620902169467821093774045354056514319238974162876526206977118592831791380235880737810502877437211535211219867630661874169560915677597376576303150789838602829939668411667189573651946809059461664770284279631791846354135225361799534520242390570139921688689519716716927675712126154821277382292392050575098652327147585360683708649222395881410741413431929301904774371958052617426737406745028998884900772885932489419340126845339894075693622288384613001949293698236671937603074757496090885857099521361020930993552429386210245921634096952701320490404728166259614852042720361574324400807550994453282311782026405382679567118688381246836623447001642541269810552533448679955265787838809298399667421448010825107208134238954315404862830039278077261938320502627097824101558485563881391675491129830635302823546662325296175211658351808358043950782120813496348928435237305693920815791358127644242938508765662541256592295319359947990406007483535406573492285832107241923049388021879090385907994727162484628368865042179758280919499637896722294427961420587253515357646159347364272495795884220326912948605188438029643050415296040265649249552887739265931697393967362169450109979132572806489536271051837982292236670923376744161726525651853490363275761114868755804231677958572626139943067855732263184721000713902437044122688844853792554623101322371335312349263866995437059969835002134936459506263001153090046456348604020396388269726381313080917171652699726272360916840866585649765762337130918891555439587575018695268438426404411596458032274206895039906865287271497556798082376237133579985824099093643788806424830876675442540664825992019420109850485877155626420110910903458633295628803826265940146680728036142766773526343812483200710448596690796306843694562709364270847127812912666690580218529246961479886488708580406759348256100535954270933363862400136867450350223427466968177572266195743768845708206357890561169055222145347445997336794268793004219362923339067982989526783515050378726001677382336720739970475452525829970880594709045824916391250569134449722399786128835064517110939955251712669767757499749799082231697819417323209833274596416397519487152152343716084109332022099438983858631997627042433776795123554102153644141288587869505113910187016640216808115850827878179763471818907699841234433277681790949202362208344127404620882705713370660205734652397859776069073929054181810934848294583270871674548663785318892684484809756107304036299030520816283723612320800098330523722405989158121354986596383731702539865908918289537147520495758685510896591957244861108325909382842834004934233305402378957576673664751677105585073897253748576581581174144101812712986888865792955279335815316219957413148348705564799275662788680897508447951027193838890818068683899821041713266905726208426998501628102266317684859225476856982211922689137138071269001869484724808536636386115907713457572357898650424566754677723505483853908755625806455446862170877391568874354869589432254180312497757016394931768247787974726949782457001368838409985195067576395756646102840861776345328399216883927291970044796162600663164438765548884544857288013649027726472836597953287909336691471958430437355911787807539898730360782498664519915588323243575243857285323647996748929954828559779403200877732628818629479759108698007296270635733494152901028914691719522413702039260832138079552652719269148439481142658299593275876430736190644917817279840404786204231903741190123245264913488552005456250993008563897298648950866519572433465100133081920141428556833302055447524602835328043010788482713731457040170727840212367546716609078069498347400128189306931198715886228956422526634516824573315450262732903481545911928603722000951217959127244641887281924506405888885495894259312529376202214281339028449735591867583845306775272809794701818861533443173790610145006163023628173478384459443439116416709605129631923080013916013215684572561033286049901933981284385617275828916106763245396885421594405550311564626037430912197244378564075071804026499408689580439197340697019721066939493003164188195202973953374226388371951770943107143052443529943381786473785720832647393848716126622434721120637989118787126911075828614108458203214475396519232761757902967596291900161505395742004091229244657892634478385544847636818204949667323901796192017660423679404721495860102603926982540386320172752824748450805174051980378690340632713201813388718504103265616794283724529828895699764206542429622520493788462539956378565081752706519748548578808832231214848648322787272152845952632422513020923052598719537691989183637958532022679596930898189641264407450616806635761828756714843016079912601708658285326786784331370244067362961684471723842850226012824179669448527837866742351447336004305016508672492296034397054219346847115215462476587735206647843851613588317245969339292940921702132517336787765814835917210199971061514469792249116151559991040511303219004412840325816182955939863417529760988422330102563952865082670078713525795492995907026282890447265275189223588428555095484532539995736101746655935775435383286489404497396416006362054767559570406441498454411318135802760247993944384394097452753385812301858963537665147741884748263894361745301077443774463848535786280119470766646982638839769302555951137847593031807732271212794501410951965088853202331803333144466094240523312246394605835933411928386667816235238627126989644830428242013489702686449465101275287595473685824355152977984423196403144419073943834402423971996399948059557794763798091024014131283824446298421611539315224593832424102258582812855930105019553930249602583686511671279750312384031951286210028114893651585653713753928053361482135233368973985522288798299554871792203977951008141443661061394995332976181758988008658531892405780753484620841828877668913145602127726812323623890991308873262980245536645343574272163967313615252759075412392726299943983442803175063268285871409919814037417390822303305082627805544907979006231114647732290775674416490392422705032414554442315319664444906222745178512990998962107064520428057883091961132134266874147157567647317318291050826023294959687808135371829902952690084576621226570509545253827894699371796365587792597827683662412097694769002853889308949808950448604347041459143011549455415807893900565304770223235984665579790938983353904663044156047226660478281160780121140744876491330739882817369881798906621293048773191609247178629445811426759139492496522409097599407902051688108363904271851257752583953180460557846573245589173269119533598568637987320936410274689975191800035694231069761897320594502958225711836291489502608602590817104300386051985947984210412359749808092778995111372311764895426885503509668154576972355330860597959812145660577086459244440986126369139361891703112825717406447204925401299459993628709668817568973181791779735745395764295357634764864783966450075738515505875478226098912251080034631026938621195231037894544397750211778321328281011914016056248005675871082318482074374542223356740071205845646998652629560963536426879387034154319530537706847203483585924097269490492701284612104112426057647439245519194637045294683254345267953584439131096971965022297527593144502312885946038889556727600856777187320498833694263741425378009901575933458954767713613323044128315703106081916411271260421508076847151929574033760308883761656413560684522719769486949390592542199599833664208939746762174506248123999953656369746883625878055029067530061192702034528331831791694704771785358185005429312054819374769622229824221908507344513741898608054738834261287998521952626056361998873731310229558160149701452043386299912192597867979376410060124459284868502000858485580735840266215859196857991051575070854473339134874785837989994983128744153156837697921898457498215844564841116511390568965741966239441124822330361452582022725456102515177409885619374194892340757038764692450500890421584163599752965814314050897113517709639485860097827060014527498137798163910328890659288990809878402088369520224994730009596482395922703141818245910904337998981247298222555511784882678590979065760963352437102728310300554132188264835161023113988991086961562680743582028332853413334204685534571694645126937419286776682694257871821674107863282876316859835079098121850865314693177439569445474238813790752371495415592201789494082438646853528956996742371055096776616428537903183638835404327638931165710623991250909866612509604456832777359817784975677532698990542424520061549608343108050827767515666118097441268817370575974009216761790172016895912453683400880213869619454787780504892181012271074566081633877104199072093693536737506476220036829606059407831259641382840969163539742493830659779643506163986895357943810349265368863233512853151162670432422097873330664984157513441434918575198158713451148684059471594068553035965065814232716763437032035458384877027448364845158982789851832539831820390430384332038245090613671993599957112594487600913555261433380889403059144314255185994590589210386100077172699797445596606715791928055824382696677507971541548162445642080321511650641512382856664293324361521345677770425442058921560514910702162670175450642698483083367046584479031942509999807609476163135572962747695010568379429788420048512474953728941122486399839870627906617454542984868195336802477552941592636890742420380093581169677704291697411584842238903499438016695932569713506881572685079953370775676852181063288776162217052866899324667132231910399710542577489932651797448194111305609844754266760063433742399047018944535151335707832075716085987269643348787074190403746094954052865842108788047779572566014552490446311697505520534031368859230305319395258783264978021058535359637601970095454346756609504100732330659054884507643710893890209121396632063625925835968711516280702021952356139108936593775210177712756390622696086772400228606284031086245292317463175210002131674827176888828568084092703871394927871366791103923345900381222805102612581825187680218804867396380364825470752300985820527056584420436068580402296462597388880462231759103481360818002734394818489737640041184111086535838899266233754488738813122973501231033755235241474730948165479916089045486096116962945410267951117078495195647571703628695379320170542880403034558158020864715426085782763599943057113692502863661350024217997607919909377448010568051843674214187510584143845807977060138658027298879297662116772796336429783156618787203259467010874704708137972737827120831171605137645071800147922095515548353334872246106546469365081572852442495840103173911637902439508270488665218494265396558089441669139130696789190177477791076186452435747912578948124526492769829862933185858997385364170096129103489814899421670017133664924295936571957446896483440779519837631741317706352079690259059814510379071072052612496700744577578394855830759703230936297316622294201830490459848578874330682331501879632909728559611421323335299036003832986289220240347898733720968719388353504171991550809287939988564863359576248387703796074360455371507316569186240762160745318858794931140635681945541402879092216345034280538664017267458355462097272751943171632754574566581658416408081750756208125891094184435846445792124316796780891336023120168079743584250931267988869113287278149675261762323328831786500563645398745164065666938991336983856711890805310638800941333426525599342020725489792215301946078249061905344709023217489528903029952561481214384153240481546651065411583488483732755643470985078792865185641632845733810488226488739996043905511327708556573098000675939174793341674710743870673891063685049998177042056875548351731611836248283969741835057485028291573311628146025516672569985718534073011591919518095767498537450698713271896144988417103156519165058137877760723161467056172401250108699543006288120492746689358377774839011690512009979724107901175234338992902166782013028913834977196903649242877908369069586757986144312827157257963392006820867374880415777368363206794467832180764056814106649648756275071513434992380790638481610879436040145028248028761881997734692603810898017486149971943327793862346421295511682598255891153994457484980381427084712538460663478080501452467175793357355305919306275223925164888514730739781724336831538244883639353387072075466994656973158897330799271350360587130015183885986372688446926212100332170279423164655124482727429738552268496185017975858058095206636222594478377537235385669195860239625903094042897788020715205556313830960204390464159593684301830314798719983159250635195919902747339583180266282736808300935918773352155544123230889727200882562016396341769385377601185230348486901150589442479676728408105104662059403000516207500918941492290628537297422014505129586221589622658186349451807004672417624653034388207899154991720124292628161530273124959410294718207492237731169200747495040426275846539850290393411999183669970494933288007732717510523612126861196862449576355829388115468411842455872755534597618686593151761459964287726807932287946337786070093746314193997705807756422337604763524568220410466097633725566347969012212817101291745711496134054553860632795795889931121496302167008896772386556120537380758576269458869527271564780009227174858255147733113013547994050645055060362283331581864254770104348026798515821242601123414545404571635396574487608675911256646504155991111743700907703125357885212524968105386081083623511834759222458727926097640822080739807935778411093122105154300343875079471611168678798025601699411909123789815591221090670553736016294191488235164972058941015144170824842515960466114963947392815368872739143056809841856071033006278459789479557640848830334036445665813770878568765084880064040338811393760591919544762112928444443550240231848819534904929162745900288090980499102733045069230754440894836187717905664071063156663352338998861414104027525192254604237054366416601977479908163901320185391460065418629010152634230494495499300025746392201482411336117370063530124097991886350971876362336665959222191174309400669496722953096453036393925670231144995496024617838700781291264748829414165050243686129473453836811806697959791469245365668340618497448256292610608252409016263675319395805588714447320690235831910169850764604203792873587961075201337409867062008862443060330129383012101969399432188887406041697556692139535946214930544344316036052715476414349011029528196470210062572555065870261207609045855703294239048329356931088416811592296482608191185559785745401835823266434767095555719256162813319263765324164919891479173007006753280813871692945991725418527888386178379927106046231789768410512538263978290543092869204860864724269587069866001061883177498562388401573798525946979704068831293609429869190824042794480598249531501133701503323160400958545807155331569178724143333204715316164405923383574914526987157578193848491872033685629206129468517025756673585382158515117833825099627341717174243266991060858893043961106518266406421876872322882131598848013012428982471678360058022813607341551875558468312864936944554899820438913870153342261945723538341970426057039428373932160870262168299676689270280462649556547096026372248149210146738371354265308429542844772108441242610957619029873068057239849464320222133605721980520020736221543612198161756695589692625462908916141425032293631826114261357504287369374734189721852952015939859301089609581834522886290882150028341328120437036098344603449404501462117587300682130761021497301083952275278059957057414970314097026913064619147950014437827097505496054443633724247993327417434290743606953024943982494064313610139353276766313025962432577628595685426986133132386798430164326532526067502213977344516029992508485959861521136759611434108418634743372350094389862994202420808553754207002820231617572874106009832516010194785827987277251723312774770607289044326335183134860228610757565060905957425154524020447695147457726731619033456838402689192673979456827576368645219116127957113359286659404645907312931888994764483252082755837128645381734444302638291290936357016646481927716464835627189483150882524524878242691661657742807305383267874908387693602664460712874639307625506008336363020537896295183421780501866213575388270818419088093080086772160788004112593336425424091768892429531940965202317822214784305627474950593301831686862644721001628675170990165062514136489288780399411742855694091755455810812164581223742272910628114455938937061618846961808771947913688550179391894700890794536012006402395651382357564491699654564205500957266619652786524070553328491401765035545389184745145270249924122525887609289190201285957240224226733145003440141695673120064414621280497590567668881441716000210116896262354882410312344918592141461448943583022317138252308407424283572036571419370998463086768745475593112241368674691754692380226820171919133272419114032105104931382582447292947087962616677470208507456635821180162653545187705902302373301896180600175746127365100820279975880226195271881893907788607966411523324723957787325576048410749398266131128740789455442145323624654020661942968012521929086380222256564109706821780283391889030858702273866377442398904039485751134267499503341258599446697856435997019966754154977421335108339167061129014337985430053194996622302169309416834484084985070269433650054944113609920398742509797553367181141065746857228265397580231961934106657284052164019095918002037474958118039657714824377832167622452148554135691462092135463200778895320740571124799942274112826650352714635963812850776645719191840925720437885015422286929323743072496002307974925806598808068699462827225719484624375154277678929534935059116316716571955833433741237921862199057830978567370437589052225916164413805649081649401532315294939757003955502546989440185460451804463235186178754009904827592273661433827071351321065115653923519497212974033347074170466113368547051243044491269384842790261879353085451303293522440995751790689473367245902203674196051745503353517668051140581713112953132775150566095356886037247038022372225727835641436305896698704720907557706930212005283871088515169820466964514655119106816987859110373802744938895862402961804619885370908244293424786307778844114428382048012042965916113642422932929237416092286454617177838835261829151438439466166899281083674285815163007370292291429731966728766538377799951545177936878802131700222391026069844800117874179850340437636326250920678225467394003276992741258284880010475214198592367197120576788236474767969974181943940875428031305688136269380621599238812077379203894496292151542097454135711423535468767988829260017151895005334171160056922757530609450617264515446213008555291649637681615295914225398208978081254795256375928640904212803714052297256694942809575030702374847465108019171821450878001784789366492145543628264937500744829358108885289165628930397451679672558805626733374273927523525986866923393323800320340816839828867786861135215056087418167294757999805839816263272632166746613206973088178174681269288191554364268079966745269238728681187818882323732050983668368685802498932687640397931087705493355202776109123979290442756666645492158663160563806105476143842796162407309758725534890042677569138381142404442682678294971874450883622111992644020078137935893813725123194693328990174590369010117020886047515946594872277069213945746617737359163015523041664741990377337461104012559486891213759360579566617668875925814485176249839158815546914573147831544002074703041555416296178018630067920942177340006708547237407086258170567893457879164846994531069340318621063696132340295661781510728961090256782697829658223127487626101306330399193354195599168414505027138378677782403260584673403299715802737113142124765358909208756260659890670991614505835673897616484596863849683615182238270706622340666232699200497816073189897541900760492603951489067643120751901952093838742653357916192294004839132644753011691858839225940978335995362063719884842454936064745605343092207032289885433666102741912027799882561914394311606413405902102196492907698298056451568449456727257929847629293660940575723928857485229644497159264282242163400267295279119940227434432792465141563319769722429716837556447530641913971408632552041205374680891238590843335738270632638853833804874487202711493632787590496431074616687986368859985354689600984266656185087391635931654805853336397629338502684864413405980968202108829391647995037166462989877843263853025666302179807984740974178636341647738224371869079093809262333556648985598117087593186254205950446499545302584666774933172682953973097119375574002101872400869846927809676309768490697052187333248064624460118296071916914952169515083655551994755704119356712853398981425027960707461364132703193342524533185023360581629240801512327484119639772412968349950035225314150990103184147985638687825463280780646268486095181581112571477121107335667357865681866825535456415575371240156677309968820844589715370533698772035636643858892008453884396854697861179166296103797314589158593731040205117217604364900970682692500172088830416628318493314888612480221730186602611300968028164430054461331641643413865843398093130317278713145509758068325923111348692356730722976466702305106692255364550644173518898455795433166019032022912560994730274757783027670379713545883630888920163118950058761087121897128877243041044610794655101813124680164265533442378147733104400246073443448501794574672454553182509050359969267988382498095584429946928808501714973284455779390300849209257795735346999302174756376276953299712744385678645374048617640985211083984010447678358663972870390723630105970933663606012023392261845722336625827011525074561505414141811198722493421933479086242865627441167669915593897353551475770457760778898328397478485076120497584115302053486280582702691738366405879514846304321052873458957096154993399829552668100064512079627317427810280863893612522049055608299865588308012810157978323019950392484072769572004371777582647604379522912717300478973464203740249704301302014671977488777524328155045626790175371762107685074779722077779861446138205807170697782331429293937825788071859529984057732056225680293792494472570419110099117016954436573804396742365888688472231382970303458930388162109609195119978393692562922593064076455212872960824672811975276953273599682652389526737546885721051726181547294181553059060217903611753030249616972203603866114705718574251135738832592683573995748482618925159412720064731226108516254281394104576441243835258296654688239308514614676682053633450645030606523189335203376830117495494628065853968625768631839404018127863496421598532866348543671655494371416839467305074151510760253750173871671222365656210231009740306211896705442905996255449070572973154765391622475741367133967573092481656784638079187305769345251019183751173148521019935435306637384374844758390031652175934431831440087748226749512074454478237403940131749798567761900442907856462908594087662388765049016047483686690990727820377970055072418988091591133257497596402857383444280695358372279482323031538782657613078677787926962724481662942025017533897431518441466366233079956764112430076550866786143086450631570474805305627722076613223995432316204104917033043479295152567809290580307836073403645243616058664380797432203759228928407409045529478506096936704787997308296725426404572278103117417925568181336887681642968610959084365727946196308619305965328744038418384888747110848728525904219738850000043187510317913873441353663966047458321656221423073488199040491856012543273837504196030974803425978114189988272760758708288673835650340974955399783494950992071075973484691318402369493108794807246463943521743222795783096875482782417778459169475449669709001816271666166264492058991631806882756096116492934291469915285676214883200619387830914923857830201033044651919705888312869209804728399944516386271149176254403739213244933640877786360201865160127536827483811901533145900916068173389607640210423978993667143210455940913098503025360894631767847620529851702450271651757853515810813409282331672012890041628304562230096496048366283186598540633854941744133585674284878275662701554476179002898675439718941451215282792534528388473531429409744645229293981426313172507249054511141021633907543313659464305695208068262179686737966641249244132437819826266618561402778732601829994058381747259616395165626162673451550742984727262757727103222930322789280039268563534242122567558058076448730734472851353687115232811326190397992226279418599042002884990511759091475116060211220937673199196126967244618382735407240224304064076511726326929361817070424905199828753041862909834661581355443918858040104759033443940522526333402170567164603804237914336623008948327876170527889416946777368318919490736571487848929849997514825296608617748060840391895101859455001691748918087333917595720757587423063077668817720406981060682550921531942390509778208781605627932985052933726990699371332901721080991572163446917064652232059571232930927192606806657760966207604178322762089798189825827774192303137994346209023025694511067070627469322121919693853766765686054423950607270012247516540803224763748549990392402079405745747865822234354516031361091678703820494486889290389655691790593751909359100053482346812396232949739685342604134942838808635875047221470118387773693692961598707285978609914254118681228005064456197454407192581983243890569684140940233153686735925523356180437586489956203748522175429956683046280812347584322273953644505788504345196703948973678609226985791679186156735496630775391648049965578794083184355394255776313519985863306971215512847481057066293739736129973482971895651340140807476187624163119221482620699104025067350238725504862631604256227388973364666093977706775922427261527274828403178895426907803370285645788361338849547626810485143242592245728031190230452114452728383323654126968199592989281270968391976966709583193128384146819919695803696236681738684195069488087961655815643128349113530337488557155608712101656244085376766770285520266605401779385387783696383594212539136623942588080641548570006127600309978216769981506934875059278616173681256422447911875034011898679090072835752007182235955603918066785281894615032324272381218587782603776412825466215295905179380340546591916640210742317240052535247761814850286419235214686493782425866645023304253007808633920508938062935423250885406100956237677457870751424647281080845173900013748758478082067135879896570555899626150405734157533013917268334515629499827749862954981451838081969401778762559536355938313782840696302393307073202602756578662510834293770181300459861491755565439319878763118322375227158551017926089218163320804210278720025098546455606925756497125022233511841129713973701659769124335715474757966010653589334801544350678302819434605469298953848076804030478742425219174316261014364453146098718243605141547887203545723118676690196594716506075198843317875719972735479177031509649714491386711382515655331261997067419370011632100632687890273955478352725899994427533102552437733455051235945614479793795713463269959195943593880505288347833336632917844205434545476866160563805504683987593400270810233387797036808250329205860113765633074963300159440047437096757793705885135974263427138638710407577136211341680204778278401981585632953841081275981482329782672900536612168681336876052464987074802754744900402383226362729711966264243861692773764201703416520459701507191522593868142688007012235344320055922357753138026788494695265423608555358997229542738988879916462551921763591228704481871414550879695264829052705082650485994577462836493967100591525101250398725004083505722871758400926737278014397970513774160050745979069829027365836435792335287820770285400060557410536617939677562674340125715737228879859080334955694952065564155323063142891557404198863383962067720415938872627796906461550599100166379644422605003551643308538895874719047489734728149981032266766552481718565687212890911953197970463609784220474604200771265472228222184351884949311283399719394274125598099207278183535123579798602870541626979694701851868306180353279552137835053368447882875966224807404164004156210373281443403388508913493604967629929296880339803655931401682113145794368694771236938158732203354855800501936655248619222795706740818812720663587488801927269120918508572685876164985439857029359810932545389937832171348600869192513368300363397039149691230906719433875399373970659842783922410876906612287869382652351565775386145526199550216974526631969150294159321247902829905467083650904876923402429311644751720508773409426045336031962546390647190905081880262849892568975938417397840804903695378453164202583050531360161892276054594130750610747151730972195026504673120583517519128147090577034331739638443465880157529120369860848231019048550967382726362143348297087149674741104986876800600380523006300141167544158478091916256917588316193952208499369827639540846129888874366369806604693103747196056638123480508578456367835869394755072043656102024318267648342773348689450830895830983432145002631530945621381601814684766267823314240505653876551107266268591300268817720476280223239178351984381751401404034877970335570534758951728717925000101400431841544266316510594040348034571577400597719239695814959245526267594400185882110945505441844228162730341071626089645422609143376991251464849355296044262825229151418565519526489048699545630775002345438113893105116469539270633876502565274024178415432127342631524444348977231286118120267158872124066343772610933005155985228539568706076933071410529347999949761766313209577931905413439670666692096065600146682783395439594133012161001096314565819202159233332846784327758501810639316085131196911034009852610921172531253632422455464755698826302249701235621346592510656142241912955874679628540484691340270841745235916663900956848500770529560245316997346106767349294251365184510715016426643934919153393449137220521711630203975507260979202783947344406349002431277102427338953522768425269843806115993916285597734937361622962690273523776755676815308608253777458262449869188162138492626495471865311561535163074004145709903303227990984052227624058863316963644605987289116618541796525838632584879313335276597729501073431404320211287482880864752596998299301137239997478459497087203149075109972409544480005998537060557459925859256062971787603471480163636553581519556527495998826679273947002792992497054412163239940953043283019384467611447161073371260527927476056283984460451596075352166782408739286198952383167701577811927020468682813530774341514045061637501076794770789077144031913234074245746216943705835304218678584440291673851305347902556425237030959500488565335802840517016680958445315410981665772806887315700182562958136405075545536690442644027421449647483912741163708316764210612010841734197237238948612679839298974462555888724441364133128110011246076401738257633134001478118522743789543598696504415962533969903301377925721740080455035178024130570501311730736628545168085255392523796467647940643644838317363525890463731391800399205858885973175261588585573348836268890144442530720325597152877846917693017948922677490971658462479215554184837393784012981671392605104428097835607187224615341700446116161625052322373380642249674451348016582840975023107208011055181713747089486728872179953913705098827818861175776366758123555947745568944707373464756803513107511809280558659178963181085134469528730619421631102673119920247298255395641188977419100964324354239341400905849692579660251094632833951017112164298474400844257959558992020448654812227980800011790470872325489830659900468145985699221558880488184040715904272122983412696705052523943498288720941563140311821513484051754595891397092652339855640665659991225104708662962284122576059461244067870136569455427526876853918813677668119262964850653385655312529847059917172065864080841537228866453643313198972953088851309855457622081013389470999364557674907622347799319605115921866464474181629749220265651340748286092179041360275133421004632762659957318872444392660902850215169766570782529119680937490766433438836456138809195669212924701770922418137251731100704943975802569722432173514340574264714512610690837020583643152830940444491672126732045762532117121257813694764007090974414851791950939140315070361463185544736039507150347966948359967339476893652540298089858039914817421449778065401088514122226454670314693938945407519033269047364727376222419713467430903562420669161838581997142960024223850281573768154121674714992032605561965827794916843506303458078867075409029451356791602268122009676603438669394150177870763553962237735918304646931871523237387342729726804637951555167452442580119288071278902600020976483484656875074326734924864906170706641911899010443063751868014840720485546598027021214642021107397654594785823947799979499258033512785941322237724248144352685827548321100064910690368557563563722446018633128682752426890470652754479546415380478264324968208518497303106762458723176469485307542515432045692635072502485000739079011722279847364170054578604249802665266672133541146052918926745928963707117845053748854690764377980816797794727045410086652068353671878705465614481820865881091806258545623088227417761385311865628389358085641503850721633189048560424398851533870943397142351663326083013427653793214292049594484435146137138442587557824870237413767318164556741703378143011456970392476803182926072656431216436046436932262140117568160990158424543900799498609451826069963286358212948515524144111748016466874735558030770255625743109203258601857284928115051395099653493746074537265485897676636154937304238108311423715350626530449896937844677505652383350114527077048515504263224189435198149319684452690844865703820709203902455775562623340459437493055067801450312240622910081622848613445255426732490798897405599737444417355824800283884125605480470288790902057308917092375882522275227041390819287037459227261103248531112355364697621748270708245319874773584887608062437119616791657191385950157178188660124820104110878048847652355681318391149483029180501607924079928818612199340682347039552481074133544349003770732986091530324449351311908078016646604007707231599806838155168350293592479688665418418656583514542005875654504027945445269382936868890561267263913674781891416388586965781315999582819323584683983104089253588304099031588963872229832481168081904923645298302891366754393669937474271601856087626436858078939836280107251112897753942169966187480899254537933761494973849185136296676979728041087560838300344151007947211501384131139213691089094383539283835771151961988881089248473524156616861135455470590134953822708875166801779146536009291800978703138452972180049087834489180656212152808338499772016086600561475779412269555956062258164175763983822205906766112132927255897969756965311309974875351671807472641584659177914679078746439747767180673632843810881742381962964657731953633013386584872976497694497920673873745848117009851095123451347052958089795630073961716236507487899655571402442416681157644833010585520264303100498333029424724992412553461545870224944901788128228239692123199640329491138724202446172087242331754968794238559708497878625469467307670251314152363121887030966902410782638369830286259749944566262173835675772689261282982507397182614979204665805916081826223255395555650715455536937200143961778848536693286898558264538047098183894974241902545684464247534657922499532382096308558540449128738587827342752446027262010474308120756720274046858267846994348889955599599600031794307391969740194864176542489607608799316610553234955066180706564931558922050378907850100111026927733501866690807908444233596197074139591993907785049197355862827384562220390799962316452416540225510141961048530817248470551814759771689286673479277447946391260813566235311821449952689723034716116245061883764508966253111248563984993476366804093437907185790139651926517324722002366200838578892017212749880809598683777121416429607788938092969604534038954777842612436786627885528190127056633445083981109498950118925768066617426717703878745984288958955723532351914449520021906999839677338946656426276018203909818538892681387370294799780535398947631027776593916112671650693014359388739074398568689993313196590344722029016278475591396936959332784032696276599810707969565062035430965481292012903235463041889193898468173559847888188452271195411259138742956658908528756967481044180369926208599931869448271563631271321503451694317844478902110485011056663219122856276555308028681363147061322642119006570108402883666854923201159184976158346884447574682634377296101727070051377733522537901875941567366172270869435657674962974439397557564176429157781913469673026035357132196034779335464631066182277282435170836266726164114672070286661044814322613993411735271524774333787348988951878326124667026553523829202995735554319882651569204403810801949414469329376988870946278804868046214554280642371283123034019268295873029571662304217959410667933464097811789911020413273631745437583607189005876242578712476218017661626101887708568943837750276797732730988073920842632983720898091949200018705509712605573551094887782693323675310658053707414767224247226450578753007614471534934024056103079402578592383616029058900480237517509622850180384953346061837952067881659029488240421278958740856108952164549086444091585818324034732493837329384933464469223107272762521429931844587119668412653583684816614808387463508868141127637337215409667109639471020885951979392556048930441353529500475067932176337256583505539533192465074654072855408003862974875239250184317424628501401967808705092434399302967047389460927710436886928479236388132182755383952942798214621905728782887071044505201856795339723618000490336813865848925032670455399755853246305967813362224536809585293634216984512069661083896624514309405078143185485350126967086279935332640740341820918685294920848450286144994548383105202887872037367416562582347777460654607531589169498069727936371761343831837659230833760066394597194056686068535136786894377715121186741777329394038229572499779253143147757625377152834597110487778506381606905208625393648706301501859245920372591806725792524718047034416369054763387877304559792387791249269832967405018304302028850383505396195099337814538877607953243910367368368436134693268387056968988894039834653911947209572629842330765247521721684205133752679125850606680583179139756198396795874145407762995489254749291011815895765866244767331882965835623749647826483265065410960524434622320663818046878272252111908803560077683313831405392983158926284516293838125387032541327252342150917693254767428969120633813958194609760551140702640478988340191305760336962360564582812479594862002879814388033590842732850803491276407856608270948313008087668749306084215730557461072143946196801158674707550422800926081688691288859559440213657795246141377183591063132470603052172677552909105587186111279818327417537025221465711440052071836598982825857330865765944394218587492241833791344460896452372930854101343467593154062924074684402713516199691684874770436532812811745320939365689060640388286553075154281725564102611042801930068606931214872859529618936488226449439661580205603780192711203842736846096003092849869211414021837916862169357745588968992905389630904604647346884910840840432248324114697444288344846726943733480129380951829299080141514852604998634990875933447832780964254867048804383035798501923539225853301505605174937017181009171556071782680845090213724423998606131875940248257601405999444391659115142560822390593625205219918346898626095318925398426016263747519635959727677147812946836488940067810523485018675673867980483942292420754981352767783908904533392624930313950651762762194677547682726319921254676692459410936225162304849904577932064790926797317800167864718757377509800970128505118744551976851962151932648883685066461989473864906407492958306997504243139228047321522519282253007227497961716570024714611878584479732502448684008292100954487770980624305815863811600310903777687105387356951812246766618123603408865787669063184068720366391888209989947564433639406230809897374707429166877311888720671759223301976391251609472274642019645854964816588500933796147507976408765650355975655813916352682870507986696365024520148635138675604582530304633533675281741319123170362528368242896471154258784644711007424159835558054839143204880283247886530748063013394456092506831100512664189584824060054333741127631762559660710246748000045887961970072026926455428263997766483554940777161530764244110509056621176978330584397355947639383743872268242248370251956725787715407655866671288918839292893833905660299541463305341668431887781725537173156996696235372011141148023319688618572835874050479308160890818536966922132471698635255681379868150919046284827499664045373366399817392059791224199753843110942714898921321663907603946597677524244381135143530154397308444156726685983495903981887442991878227006020840895353334881191594878025650219487581346309347680631602993022155287305745295690768927759838195242580646064805383459723080394620605885731049214952817081422741434666636283008268999556337585322331809559180454824030985972625033805982396434603971118870261498528557435751712088047559006570629130875309907705731920938244294228148866531833627754331821891568625936781725178009398933999251309626799966390503233477066038800980205684497246238543194295500391545931873175026383456968358571629873912209979964711654724482639332769009853477149954119251967185671060443918931779861188382723065998681798269551812607117471544148163498363340356783487708702321597421845968639300364563181789749961368477549790452102744395383469620342261692268394120181602613965871687067128408907595277756030596182377197604964826705927465595393406720648479298284635785267212093817133011430470597197667227974341426360672894035067724639947006571585577551058238086150181637600159618968971172372952719869424130059743878505829993287568658472565615040055378555077003413052315292999151710898442181607084807717242641576176610975551877991338289149458135410261318208809980677830224589889522772732189614207212009837415437355792168412816731663136854367162734085485495053669452281760683186840827772936744347382013631198261842309511869413020872680217423595492400766449792229278315462691025225399517688154639604607952240467195278760404428987436881408721558607840466243114124223309312200327715667725405681567555802970725312241065123759369268720100878508185643706103517131742820604628943881275896612760657681653792848503934377427413226886185814891496191253028652689450837844106359623721378482404762883539032180685035354026632030338093818455666863678972058419781542655077890602930785812415741103889644543806805293378971727449222526202187484668940041686921945847631849361980763128606582383712846554763336490054617362317860008444530637718153676796074760418832240404283780189879552738597510967312901126351227637875881089217437961384107088131537995542767652468782447579890652381125457611438752807484956360773289139488181143594388161206621145782741625995121148067629277008227246950749488614425386343393979298585700965004116257682545916760247739697476619273306173856473331902713717155077348684150991515121352532663523047287793850369117445362003928341540820993171313265635708897780402735955665984602088948727415952227538399524662808043556962723759465766361973976024466691106964267088660597755381216440549235477264172272601489800393338976297814362520769830280327923146193558004041296308094455073289203100119762833006417904801632271723883128252191095680210267624848235686064342102653945109455144898810782010887383188214479021735640791572456981827181563049161657434719840615351935725921935103247255560765168698920490679011277098082036757256506733297625339278413952934925782329298297185406994397741842440730386550921840508475695315034671351912429533279077916247998474663390893564040957828638790461866961702740268235122431313728180914321637239192695029097156865231047293808573481130374278949332415988114292886464255802267058898068462573608599047526574571624132675992844972643725118774125022046667308256109391727071152235141400093163834644451599381490801270864117553966151198920120754461359466448340358266217426964591337478940119635755146936243283030472763084977164190665513657418565396692297790032132044079277300038722936727156664281716970872635902673976642975828417476616987894645845119657117639694989136481386012083789127965860904617077759194702256294507165496904625071083672517585440798080410479507781367976168959751006055911206707834467483054427285926725122950430690249160004814367900883254198334846416510960439080757381740771899189306541663307513020885888968307006073383033650349656348699047422535956515714098694491370154916111959944176311661704524032265423731019643745725553021192797424274301574907079942829978123756040715878021031094247438526355357265737239988708467395348074557129783769496763498044374315642855388882456777941541369801121234032162270840515202592584936027878545670504940229215168218744067863187873531095975617299280299148423172124149642656861623821022347374805278661055643354546042120328730070973805185092252023218126322211955692087161083501908151001140254055487600159111845930236688866265312436905089382567778836657770949667392009973978922686793828070688492316859976302500319239900260169113285213804289323596670626979845591218665438896549903844546188025539812077169724926576856475865090274541536426294288692541235818485102063961497435131539955511136864126314744285349469902925967889187685857152333466820536349663310230559819892029119411002360383541696386741671558444679715247145941414211211285258394162343369909524388537093551853834020070465220766413275993256999687843538905786138987367261312600597743867789263533982249947708365934090535259716197633529484790608945447975132455943712966941319220727317935528438688270594369197546482195076501412132125509791270428928326668199921895080766875794591145609604906104040268316731930416406398453173825062231029479517996357900657526748349654064600713548329548585133850859150594979181471278533511818958309455189244430374702910071602822469363752881252943427801044830202129349419679054549740452464872334773168621374313039586523558424109808736613181671120595289204611144620551163426817910397303195244089802247512297491102565317102534211858721869877195110885332065188598419408622270242555318851728019058864670016347440810309469054887619093242030197621711563059674196316122229226270725405337475025183066969717111987517181947873978946113466212088418185387223112793543180542034835464143985314915252797302206146159647456560815326509071036295736131686622311022976263842947006520614510192922827152625224481298695148407448623322816399233329955096894558537446319927134081095041405016969904305053015957935550616003188367612118917646686273004935392247201961125982810364813394181122710503305645844472265626975665148934703774203571985795397021727207246065655878186900067999171760500306644410016068335817858396800072510163700472047847257469205691435697558496325434900871436931576244271234670743792059944894382056563019374959896398977033056841075657273002385607187858060973407347483893312857092270665821489189363133735785709669752358946108325732823472624381933993705654296864199506894306131995310515837948531063160597326025586391344402561934026079593248286603339749808928680101597427899822214568947479452248488032503654222089303419170696176268978674300894414104130375428057619216504129024595184641882845383299228549229058568248071352432178969572056550357698729667505354276317575509877960450899041337242870344485522579933175223890833779309060887446277904232486823248434243287386924720581068808723184754062110586571205466443463171084035190113001969457938088832930755722184218184247972662669976110581193818646795883169931303285121626698940325822793128351831737903497360790326310438132517179373943565033855215836390279591093293173471777862472796617438067571136312503500804501339096372338817377179152919881376136032550091106762916891052253564271711916398484850406468087550777864454973765208533486092142087622596976562511660741772975512415983258894891661192610419723930001059803706320693086770902962962530287287889185468274383143807602122974142797274282351440772139501543298414220445721432587102891341024400961972384713062755626685605347557096580783171043777265096373828653316152707240643683145288294533953652663242776019582956207497915773456511570540539301894908137297634643132572776855620020396537755773430968388524850773130854939962934602012517834081878417240196630335769711526426912545839044351003355689921533455176599186077898525177241816655141831360589802967285339681719558046867468609025017770973845341362021995731403040211535094020754705209748936560436044343991929668122890370900466823486482017950411279084859331855409654772722207978569136144102153274700851197491856019690827493723331822099698496364927008417937357972742641032058674261658639055652420521492081240463144373783884214861131957103474155217038837404117842188353432007905218259233783938213768953458807229091950013198482935092664618161718285437618556499439325072819333063533622766422640889849172844978397343765655494295428912913578803916716392865806339402511855065432412710410592068181523599163527390456619870950332615991776961433431803361922675347403278725945350347772242943884499388666661314634438347963523452856143575476517796072545341581900060895142769403007584614860489731167919908406434555120488685689339819057746340484173581425091253358745655363764834032096006002593535233689007806487742171512173056503617256349245998817529577474113974846022012969122764874055362298374871168861001113330611162070844737215899737697211221979441888203033899581852033493478248838279609285965364790647528863468617286383665075868597881656812501835031826429028053922335481748017147280303928946286311196564064220655248443201500406649463607293438004003086744280807338812732189824048465170146696223817596738265548210537222640668706874449240523187901092158918647830822634263219367742043806465366546756487426692884034905713038357502425477923331196513768912175189745075688002073537104209369841676212024534321829130106120029159049228301209077480089904148745194764126028719375964128855594567399885825066201538749461710021051131405588720856462264483374626331986946742874609578863719626090294775894300681787467471909138772905768157546796839807501646394536112990254294202930874161180307542303290604344755623411137967891669082398762980542901843135765782776486343003768861487060579313547663756681758578552101916960691234900088278786415474237153934065762213845424700029464864879228782073652853932990922360318636276862846234998469068207752912029585375885994065883268880639882534063101935764827994657834676012142324951330909390391397736718862559236392232737044713905822453125969182884613814426291541934433046275010316250277949128447576553001154517604047651301322469834571471428638435268100923014545961176603681099829989338926973613696969664747456206669550320849523736289509203237355107590009271045377166077826388717062358878862220091515060095230660180051225290864558108615299045883463018096016082728014790676398546064371687787419483850603337932280303637937692778184016568686881607256715337250525974236803058376428493598018609285405924692264990896333278504608167042294325185985760240126640426804748477459847890523964760114275261582922504761253270307279594778128020089901326363627566008448978245194853590306155845463469036968558689673432066395655419812132278984682346533561290392447007139416225912515207921334292863772835386553452331445379552875690368134273839813630204145973494573670816816415093687908836785560575120079503325851441351498129797032899762328645414672041034220424616315462290238305856725865924198174271941114257635358998939652871602071132779573912183198098654669615590876743239984771417801711040381869605163407718246514211439252860853909598714215358378002097766516846107569074584617590332826463594715678072545886595830040395060157628716583743252708242783173826571476788574350321895380839367113614437487391920732177273810409133253906260463831270233848668578062867258456046268737220974357594263242118970881387456421566532983273213933283155787806020556245935051421907272635764296079238914531821187222439336650118848637233337077023006897119258651590138061855253199729067432473396312319994275276915356563609522147759482835910515867186527276808530258952462209620116678273850093526227112121311785913864270027697348462120779091817894309147134377242300967867601626280451662154922449361613227468549400378014551937808421057332658002188705157824825609609130799806050289111469342269829492104046360031714728674808747398135043994215347969975597007886828942172976499968043226397009753435630969681583394989868435461192381054071842366727026426601946554140687515270551542804496358107789230084473388516811287623597221288799436380974666961686267164284788414958179040352518585678671526902584118176401290478350467026313197130387975416526353369164594522374312256617417874505191437827907747387140684906426427470938984598802048024245874830907859044594003589545200776729511495487461731904266131056944386528989519851950516463874152927697496517810476761637682899073604698816453231687372028944910097383021475891412569722594386930754041797378088366915454041266677993128772443677502215909684439019033334963121800068657881994236568284321145914625462834245523029082232602816530844828598160917802850467950453495551376865011646798607113579094659269714043634830100015087950915629937824261976517440601516343034061761144493810336473995756522228049272485518230030346522421740389278440581915102528897387673986945242190087839299861789776212058919865785609326260986405761208017970063866963198016675199681630101356518235294555056807652997796428456863523240532116369111946885328435053800007151286090315082288100149387701075845902347541824235246642675685259272152774203484593403475380641105403897580715192242223789733558241792261609352109023200248866722769543447672482538198745615537128280614511137951282782774434852652283325629655606293239460165428204617074059717219468397704032046695700752227751429059836621693881372567720692356775202561137521783329645807649544132294457559712660506391258274431852536536444448150760714168230478471163921331299785161574757050745582285833950478276578688486710599320745070328086653561407469369096692435696597503099684081732287408635604497369357537915508349129332335116759988594027023673363066845330395561633413186201963421048345433455230234737136945177580746061126555391163516421220920743973153761515379187567227099137374220366963338755996903773250370061851988928355207521800421878911369598306597824743585302302529762383801806959543196463044854064158969553974726753319492893769804686917208891210546500305300835914661121163016128278525480750526791271900033924041710203940583463442099384213424265168925894316240528517104314326947264014923887770218468263499645050047444611629939526481413464949702041621238496474745340655672989710172675653906369152026915372126382335129044624323185687699711633569200258727548256297244304668833172730031815160502403030561299402914184660805627168338422348866924886788592214617116666909790931315681182287707878438886734730839581156588800552217777730693641687896063324955525021843004739694215149996708813036845058667099234928004245132273543823423440442437254367968145251409298130298467787885007334264952519331717086075671142235317058770814199690391999218878307145395725582582792006659372958971734822291654232867774336878126358675324285677947823586219822896276435147992842472827189586656587791696549562458680623806263065530484913670712882201432403971645789313060589349229998987427663708122936463025982157963634827063539246339112721799050842951576760438967400679332927793736886907742936061391025868962148270327130739530783090731220152938674972201779027686473252202253609073113141795861634866406240759829568306613617855447527857010264093681875950977912449516564589634271663520944669623324796142325477116191929228847836908444339206032881621735958348500004864689354786596628782548348333258501659589377817477875725270360559912891737136497679035473078703374271202913831844046402782057332765689113861830016736198196938623878508143653607265036006676523423951428416411819157801387778570028028706974938973990404171148845460475573323828334267054264177472956294379900719262262387187907137777775284280316224934557667596535169358064768186850051929991396119038770919064992590309008056987836434686385764404976712487478384183675307724047151558601362637366381087391448228636854153746465119090374155726680035980384077691115075973794179128943470709734881702083285425823242753927283853351713334842851691665952617392341087670898518414905308496862169264414788396932175019033334181805392608832100921674039674948399316928720284983346935497398343329771413350742615689412388529671671653130319773207341385909566723219434376295957615472889289161179587926987928125273464253413855476724105413141265180439653978598858477945666134851126011212647280015313405299237259151782343985675428588549019003029720910120113575221372022683268322436592273552764545415649011887979788839156893755949146869439495955724641952258812085226457948310574227944126706302660774489733028408800458204920285016769181682847471399922539075342317877852043639758096687058746934287161238193184617491837417319842767707215581457194587637666867567854030995487266072362734020399672465819143914468610273746881065254232198085614757454185617965477859162928594815167487576379562809373717412389430011521193441148960447567515383429450954193543496523067577623058265801850445228148212597506020850262987117907023631083474260594071454903682801146673771295657842155699295466546703016738633795229676332361146142134827905253137628935293691215492403333929425622725627530506928094660903926230663399384568572332211325151961619207986581829498668685794439400629393034573988417714902302362549130709312496415558520500766572287780474800477968286037933631394175307226498481686560732024557583671308033442736563971072120773754389168013503718362437705090420162053869919657970486455024332625526448873380754888815632294142586740999619833871222388136449559285536322845817957408255487359983779071427850316049682471614740914916695307254510863062985331981734689664714232264149688788630349172200776946183435210740242601565101131980888309031627209009827008424248870185504469999387160527556975689491404076742046018447392057364956807636960282416971470402877331687681199944301137000946562464726460573522576611610011483069152136160014044242212760363824868189152317892746968843336412863234310269684114031362574203298816768458540823307906642799801564178859502056344154282456975299277687257937474416071099898861730748321320074807347232284550786608700917789946788283512120290632179931584956808874734027791786255604888326187350362799047122117886938339587144978957922982528999166988443205442368366252011348502315798102107134453150927466408368264538635087754416422155788453955226739019564637679390112739569891833866641934213447169679849730204481225899328755849380836730273818187538736628074164760130700643130328167348772321188455060177947570346403582441761555390569918557761182412313687216645102501194893840215503724969505725894912639693159503105600549482841861607520698158932454785652751126172410588399920841637358007473536170425363421984253076968636697356150527746222914950307009406315154643806559999197421517823396685789129339264510737102538616774427633200316406142702580400862666460499692125174860151326418664779797851072139226259709566849862168308315416933338982588060813018725018950920759122903192312086657296080869939259789226072094549948846890640172978319979146564932523419109324580969204629538164311864546507507097775835439417555237531418323301715522049807822487040458402712165856073702155219651545520549880238251633452395781216016330237008613309585704193403974340807445755510484639594310211058107415853196694057971860321030325705978143144007418975215811125538184360777891477810668733370848383682652211679387584079305783573902590450399265562498155956702845449307944293864845322382649424657199984908992020662010781067131038477487928384351209551287826501243254287413285986289868284771624145755532177343678468616444711974315499511930281332376303652119010180342072930372493245438262698503184992389778457857180642018085938580273196043895246092109578252251489809064290696829793292662673326521219855886558587193207457872837181950848374598473811554278373996533567455324023659662983761957791551362041725916077848392587475050098974723208502036362853341086901771134528335374418514514131683253004556634437513715504913619031320651322710793922808061495005716088704880332033348595620274745709660465679878493432387525248023417917873574051166249953842193158455102434128607241936621203072587956178906078318662440376511434037865005683745047440106164221833664634559350107606208519732711217458278180458703238896611531100641115461764408165645887238242710030125295528193878145608942129183376271487336451443310596646559310939625702604729383698065926346404640866640338636478493579308927034300275706150735326181799586712899557780876801973686261977460217082289399827977869047804802877318595067016022227860732603078739184166893686201745341397977264324219300697219881758041178233612216900791156528707522649924340883876450938014770944323953829782718887308505828755187390646376110021123105509463894166031211891513699188300707208862444009533158884423019486972859232084108751308912899775124136054693287253925000937083072070232849085016008691197761621134688093795343019181963011701850051538855085334918464691180268228863884143760089440426254573009000824991447612582745750485987594999123100226746755586234530964366785089478347433723978310875649074742538659821020942763875200618292603113971695682812742078339476850562144812911337099868328082795827798319604103962388595306807838427959526045279395237119849006800152022076694707624507758755118404306799843277790331606468320912456047416906387291571144870462132763454393798120870892256427957496752850463154379357946296799700066756787182420212745796725545868125379515722417013442441636407834093048742347170716660570270489713295497904754203098273419786129099356131544073012533496703655757824000826640378512525147960439560692572815409717237283229119126651321812340222589511377930541966211566309046876744221860171150517614291783965636085995843296007992318287030246697305122964537130663806696422332764596587706681246243132350055130406918574649412398989553676635527739134860030779803229262785269373681188746056887567013722785471659958672903047999677750509044731469588473489783027081875169725440019876256016896608319635127149197302320592084818072319621429618447565977797441157368794979795836336477441803355296197274706176595931490408455655523073004846468032982289495532549232016623595984622671372478543442107225990156613749067478534266894328639266747188004422957804002882988857948786644487162925850004661036166475730454160329053288522964285059785709223821805189772692864295276550509424017892323736505870851259554227076515754229012492539922567806028432108874838505987359015303729307294171995110547723014655633194566132391614859379589130694884619246799224369686988383861922869986321583306236664819690658688301762735351398217260309198220666726903320669562331047581971130533675792793268918897131110500936368371382741527213283833766057784190631884254472240310583456859534278556300123808823299724494442581231379016993504013238756511103191564386187553747851724691658873920928401831579580847433863357974740647360232053234053160654791729981265011523445703894976188983765594825541629416198038326954837058328411553541700386472504427714052487668652947031840234670723269026123083072211161679954773775065735545396534147199790511564464917408420703571851942239200606765122005850558624451062441391552282303559066772133666971327228405455731696513643739106542032992193451391726621290364147949080692855826370524244013782899431051764095555757886867365328924996469618411864895056984235093705552073621273453334703388123320921370841167309939623202345783438946067095832281934600560773396018139487611227014610300625439514696186645468866955142482658581911855868075108972263217554527237376817039644008719418050449876836225408597367861168698875105079046408549413669400083444941337185934429766303704271275847501610921992563214360134181254107110240090478762853781313188473019334461977826829973403957252014092341161145943700771500022667503786995527586856788752044694955740005567893883507324121180849489337983585032292078298805236975616015885393190454871987813679236529293574772156521549297651082914668635431127536677303684680037361425877530217731641236232245895598833428450829247259218482041386011654228670684007252080813734830694378065934215377476061134562559003761906659732100289455465554810374966938994058291949418679558428186961207129298957388046443002155114675048561981019319226221495772312982357357041816184504298596482911089958328766428304745893748912657523886482233054934170985028907627401482476626746012111574468772242452389753926154369288591101004704011144424514969094797587031542127158975058277045522127851689589689668579021566910909400674084987381662119054139214263082847867531956359568139031185338631334766571927467746859849666018377479340837185710354286603522318498035291397398320246082693879698189147458432521022088497162226914499949321584822106066001919496715473650092779174231899088999482716057649483821549699269050644759179684796864268334702823088998029843780316735473698531733167831239711703070382705644452989357863225193581102744325037275499909009901800418462333501331719973380387490742575709248438037910655659882359677621211609892423137365026798822701902828768524199412094464148484037395183596217396346172704967823483794572362460456551588553587549904955725977011400584579130100104610197603448177514784492982378047715035270508084792474646888739259660934870180534284687777296780858958411895246778091340940978842928239868635053731880702515532385097598079006761675029802368241799737606580487663300265453024796706642612335295371700442914145491681934020533411287855736051094864160561909350260377532516641568607097239074781900498095820182317869257700762210464424037357349274461097590336559371603002213586621377707023605482553120443774405996038527654358234707108420053187917736294452012797796537897195865664038533160370621618109265443543039155295381996159382877686321975718232133191617344330884514612406304548578309936158700471431353782733303517436282027063558998512456179765740414480132731451921053644940536669983657500106893274706517637395545581462772604608300931119971885670224784415610815295297750841273121801304306858469001124616543153780127897719206284943825767315080120201724009662553299931629861285237971322964841291162182093715187831056838634939118764390565175393253011764250495324897337670416597870090641399911762504992010781398710986991015489133512502513343419384380966564831602308533050952744568845046825272776205076443837914148493602713171851237593447378630832006868422231510173415680779258223925256238276023887140739133849679193151943961256848594675777652639573372586798985970698063987561578509815091852912690637028970312934224153535744769121126890028091614802503703130740096434958553301977357842147694136377631918956981274648118654208917064972461870899820711517635457984250875449301960172184405705620076137222048202114327164925992381845811003308359871246750858917626112335359182704854399755777968549205574891454747719740494594843213293075753155420895255727807850288421470222228511785925969669256870039422273355455150347798630519186237720765257038031755914509718645928672576866389286407556981092048447048534360219221015978496638220821400508314624491732246563396900902210155535958749106037554964515106842941443595967722268693878984905065144356429842125469174364648173429544622493560269929326779692320974645206628985661312850354429705383762372467430615470102044144616582764957597027641383426428818648992761614099822404118134054501608354500181385564237617235941900242948804111635160069924717251780528068019819745074903946281402867895020787001406343259935733810421793845265830407574561413863290299130381900995325533050248287429869879792071668518061656070839818840514950830504393333279563308173754819743092276391414292193525049531506208766540304856557897551531624728582848140875291380639689887803166936808265354672792436919167786031027305636192698672935320676402935630327888992052611266930111894554386609035649325690280280124048816575466280863645886059719550579083106823808331276152022656321922031650584479240939116933344014219266539361352290189494639939778417429670947600667541817117921667381433425977504726223092002668494259988566643245982168662012865302111149047323247737708989508946451227816128428800217645587645058798087780121558817344741218138689466029403683870532725629746757294167573028344461904400485996059435752009692323039458048421667068474489495892647836044291340400402694750107937089822983164159931829808588814803593788901161596383410812082514062159840189571731709311970016932286021932617124442576030942696494220424137521443818600464658107361310989354033889119127966535305249031345016401875328157719134401667175340567112171697074709138859407699746015864459884667102651028172293460598712273711347398988507253155185685615965784528670097450742457477934989765387008194303852221521477534949176698107437737296591187504739141064489298019669123510935487984308519688398849518371446910861855172076566936263723856820660193605599554137275484178402834722250219705420299805035099681583862607504367419148706070252742193885311183947102430792542459286812873393851142758924076921357940912169424268142477135180555781918636666580514478918659159522411639147243121139775272447564913707359188460674562383670028449169683242755367885979938356736942134383524051840233750906988435693308318995333446916798722254980986787523394358402773661500088507772374852514553494100734519013362278269771760527378935933726649653637869641548450600424601264762957502498418276652224848144878309822869588505377473810324094264087653651596357731679676583090203418902758443625945655633894088568038343367644069558121745912383478238853709174565544109034871961908366260278505144813476701876432576262839663019524717748161477988285073239070602637717830769236786002343595102995693420214084323300456649610858254087909996559583105407736871936792998657281076005556460540764885713511767985163363012502269699908831300244101629146532816155089297578510173161013905281983155264533773614458375707200174660779802348385469924890368909341691619987359895461427091086359661472780985055209253754245409314238969970346447856765639339394015015281938403354974560835694353380767455265139769175060789311439205543598797272558551767726220609930230588862292503436071795611944846270867990900381397465445558805075812353597210337634135894523000497405076610343418993014145137279302281399654113084087804985703078733009263562890653025781455985544230906971071635847278797085514598750907600409390812338445993326988811993266356684249800439265923731878680177543214937373342064711110321979912831750392193275480932087521659605330987420869879511970876897955513905432003744758048810822178974104238261356297679674556734564490899993094627229222887374763418709457123291441162680749297288988077556605929563957304320886744888701891762506403193680856180982591129177056254439470134969753868869129668879130230166513122715947071115762661074897789991479054499370278121696818981826703561097820735787510891145146337054825101413517744113310883450340465336502530760779734181891923943983790249714820399597114600271501848208923573104688098427536855642205114582184993101563978142974708675050233460248718772062777330338001510794644498939887084711141538905135528222839135523249246796601365298419366082061595437761043758661464514959220202340848280885122975048055015141336510998515229022948054748337421237786889110436841761600006169677358735585893822404853717598184661628955532220060867473901575592062890824695835118036990716806348731887324335190021612610063555648202300062013670395686125831556129757478581139130018725933998054514627354606199541943774701165562616122542712075248145399482898920263963411654231989100513514345688553028539884098513844764528099607514186763169294381466854433091968736794893876510830003534317755519869696579882257284515669921062924049049270686865523894357714378921715437960814973752600633354750871114013987128298702022295572198812614769667527799239350682829780243619656749812935796513429077020188508248873587334466502361038911813048467569008784183730116815657486232696844502995251227531027181708902638578302432977272292620337376772471858557737910814057679820084938610300605402210044277504506145147509805154458524710205193240831565755490877011583565940703754483888687055050663206063040207395038934146631628876554060357954463877410891482313146711043048838814233644557436112028443749637312372498904179592795025278023349524939407969959317694908406433513899324484136554410276065064003859057495429814863448473591664998532558395365337408295819084651924330575853462195130433208714547721932727946124053102331901824552325023939157341305306681742267175413720336151070442519413618300844254432857538247414080305576000083540313852516518478697377380774817191247260208215806319105379295346030893771501091542858840336501715345923027143376686182500400518937014862066191136364649821985096764256314733414932336089696892395844231468376828451552399130675189393999637683090107316307551333593229220566939824477614721912689971782881598800946848832038797841487991425187769576756381334616917210820641683309650388884864401438680864069305277778000574029702357859993511867861157342411952524402193978153726199627452718044177325938160169044089946063591857740545475265643587558737570152685591528859881814591166731177563102166725906447965033594590021358953985187896350035876649340746715511011134251600650622669108806944707859490148750578951395028354468648181860213133169908660366501192594987129543574913368289653797171030139176005717582369913030254655983323827105393845728871776433508356050021944830391176665683757371452118333381518912762987823887584641693296579953495513262004024597255454430890305938866508711025075663312089919619900678842739419246262863702815813738751325851382806252879462250891348160472337193090998645644969947412924315317893502221780475836508056018369361042038673544523918129809825468465881788047775254259367051214044971490408735032862809731659818898551812774670137523805106402628224696732679781665083762830207554728256080947768106669415931953549069568717749924225266529310143084634899680158956207438767446729684853868573038773982801725573676793432576755547947092497450827736683531680858146803627832226554527781535365439644157139625638289395050591718915034737262685633041479092200066071697668301878748241204858515114839206290410811343416364481381955680326803554303428520959668019012229679686464893858453370029175500848643635367577362531035204261554074842726537751057672143071032562500295168163062197922573778044827945911848368852690237457389583791190387197358231414547043368028028676550018421990375936142825189330871680190815561224965811254160860363308580168877455450802090750017852587913752310024822505799292084436047105596407332700122001510007900111213332588355857736710525992725810193281072220069682792031669852939646596662703578737930733703308577776101245229912879897018870819378071535856710056860189122891148397183013900045124284735217184626962461840566059306490966154542605522124065372769252538107094132464766132270422100366772970547075889759040684685436632599877567508752422927694940994116186464475360112760241681792942306360947118289960885002300427572922118765581590708588232717151724734343140409848215475968273987250842816109214011320110798431242337037583040774743895133413630713190188269344203581514599642431729344356454663310198650192613104122805737009405848038964091065050208161129149277561508294214813151572418061678663282641695901882501765199404350248726400504581671340901816955236675633750815011811585245106244551289869119481642151719637810815121805964713993857970218172207328266878601045621111635848669823899698716535792566958021591353608479455140523456589312297889392685528762372103908119227966818474607488915535282494239874150441695617055725404258525032819108681712503841781935947594487051061247855770029008459200761692321412937807156154907302073453435605256472795946890934897762028621646728330759330148720412533106580423101587599831133437997425559176960949342323972960236069620529790337368497146950777784638876351785801031963349186699285764711521055899064224818211906576160875565452996854637864545714394841340050501570559525512984585534497313553701165144726131224059793050062310735413498675718478255214806946267282914727240872366384539203509055014896511698763752766958667676684681635556898840305431162834729864778437419423225818585038747413946971180629058414456511750171541285873109410377148401128414677068498775501790475302681453177147210897431352027946511445962886460767042590520993980404986705164956213893428660133961336302721133626531753500844906363720541541960013913012510341348058255558959679609019108591144120314913325069276653391144321931876774181061503001768431303302489474918801943321027714153074206714384046197549895534901800584980835165224273984175115420142129067770281235948111503499816258890415846507632773792461574778909915938061973807140089360644395523851771801186173492594774779367386709245018195858819859858885482876572092698614600356098437667686460162808494705264519976641518182229041059718384236491544859484475405585014936522474059434240104117931830466549817213296701963685517934431850386500854319487501555633897963254617130367845853232207213791618490748073012189373804001418509421256080330714841954535808570624073853268810214295871869183704201053411346315251627219492694659965661466084056920011936532149783555174646939876467573585209151309092501694058847900592359186356088272534085454408825410219749241232158721345901691237117872868052906793166041199551573175576708858065027443697616821891485257266374911666288041826719895705297190371019682311280273187951880402826801060197671402840003206808375663823941751614544679226828600651730158596312788594421563822929443887894932907467241575270759441450137127532100680361304980782949128852631966340942706167804276079366384466003899573406869913061368852548502077057471803895181333154049929767492107676581004867187013537870390195745684060557771062424597662520617309949156027715058801254251722357274905629328911794798530134038345148086520471343592829329177075709587457921423442045992032890840371952654083162903164570344522941210998762844414344640988625665128262273865862395576066050022834337878586040892969396995281399760406492396145316399508346047180548617297281118183811529175510818839476726593021246360774263767271984631605739135306635690324314637546289587679293564933472643566511464851615578266559459959071929617364310220187116231435099748556740179831183045419003740176545702169559383453550321758576963420581982776549011215581452062785160586291650873378466024138977182907911199624640392320461876789744265700320514087649963171829283469212361683539873648424534007382372175875173388857296412697451770597889187995563200576081552358280076554708747817369857667736792194541087752786743918611301175456569650719909742161229385624133861425053491340482925919246766652887001063617305525266754692407993494734569328555358286022093883933140517502856073369946796841903081296402883385329884477141757634810721308553006053268556123466000917171216181609389617517407673942226330837071108231322737162072190323349245531577056442609815095097238025636971449921476987399643916348015011992896158957321069774502958489555987523509380612437415921903073997219377994572319326277822324881540713232249126780396853461925751247831812567256912395507201031341756289944003597030106541620205620579096534223454934523108273577361856289290162827330451114429096160233146205721284095723341176452629320152153393992883133615692363912755912291042141728658161614984838051849508085114700597748348436203585217477235687295194123998222094755569178972225085069728715154929617740038821351420312235909749115853222216620834766147722874191150180936282354999539781490887246063440803408858481277007341230633441767180881613121131121796346431919623683538009376387637553076216523214999215283529050165386544907488584797728955914950494297509935703117611857147157857837910122862531927372844982163010256417460927258089016716906987387393641985095633494171863081357561230466461327014433834948062181079969629854651239798041536466891596269323405079810857785630826157931886494097076230395285980258801738517491326378149321356691673782604902806843006665596874854557141192194651301919472293595824938504412539469355806874096242306702418573910896606382029154629081390206331153478904949372974687272396432888974102512424485139064799997588960621101960495305575482852133835942477833739223421992098080546928996352348374933638058475889581687231741025584660430066546054017325749938985977648562856655292670945032960936430827481267195576438268115285511188167830527047229719285150409909571095110938805243877506888543256425618418311017754008723447373710039719660388527350946696979568588436121072366612383623352577029507368092979550725449471253255186045723615559066966838115161686460553012457195751712975204109446122686940320335129353995961358418845521298408190338869837020100307298394406144479896286196975574034339155412291195045481271361104467351312711327702281899181681486069183719966347538985382450362879980787427035128210155818286062917464219984431074203006924838696589267118426519664533079552567072059676848008824676468986540003151290568157521632762383699208726836784861914902333402730965283055520274263676062934146908098306772331170998604903068957705620684595230199529141543871867737201361756544007787985097439042947198034163196414671593630725715632964868223132700956105063716230140282659488911907422413753186079280359518235475561177016150996606751578696891896355863416401148299420336768937079491452574449110935851957039942054333751884364675633871114012287769986639737357292551881257077533574305932280709627087507922337657709969208771300024957535767333973310405492671755098118845025650717621689174539685192143550596767999086459237941500665967494131404622962798703109007187578879573554415655704793216208355668146319178985027498940339275627707646101442268583277080235941364132978981399333931394733222688861893710779623571903350281365524247241728428061397024153584567326754590999657332361598935329030854141967222971544652415179492449090412542148391968443435950059871464845186765077615794380788866164409443024906652603208202497688178409668247709081568490775603106376281732850256217827449341623361790545012607362063103598164702435305774772810489737957347550440854571990582808884633395948492251192545845964623042371497919871525873408294024141362246599243131065950767202339969528245495163612459592414498335557225681916811067788788440520212844758709107705754953454054993849588226843374334699738602647609770576240815692519666379681998852780672310494950303250060093305760444596204637449029320016754901436318989639640884300694762934763753222827770305517407073939292908182889543115739457160323448357854385269898941028432705859569534161782308140262017881502231768323831087270033556684625475091097636780904686212992204088124144514108969963114576185583368134635175339887616031942216382238754052156897703839009978782273688639685434337687862613766478118302015833127140366194962149017393415326375081264519545465768738028602499274598309398146177445690291429651442461494425401777038835821920950807597331357720887339070876827270369822453909604721480783171197716156024756770975613666646124181259673852217589002261815613547094715190480314817111073995212949273748308334582862851543733696366354910323427905647879744835115817752474722648107059688797673203334073366299255749642394492734208609426782947099651551552313538954780880086775885435350330008059939395663506184527895181674561804297400762310394854392431891903037538170283852587636980517653272763344744648345706540675468741568915797929128455784020137313170420298071032584006321694630417580892713514506658371043617211641167768648467612324441249986114060882978368485213581785961209330125500191558163601075662846461489092917560308176081286374300878896375068044317560169843945446405402986525979910129889858968464305281950693334224481412244796925764106755427732016201023020163603366602544655111676835772020985338085820524732190542879389858333179895155883593931765909650822332266462417561597041402051604553160503482046498471747165081374808712595372012217137911426933656813645114043538953326949893470441228210281771841877279583587978194682730789577754450975853857630417115227657445436283196442926239895928361388930288748823979178330681637454897612368782693814462502832688594436519331360685427838566922624439808757016007422963247183240338147916874826043396535574556945326315539898946992011838792610855086131098057662715890553365772433845817228740672066249075356388558124470275599205132783694199328323599903393859196054083151827868937285250847502901139471508817970906211649995510974661046199108208503343677239361064528531481455262983259571437600753093334849093165752159455927727032282699117184377040899858819446121405865571122806795325984094378117803351460308773001913425169357757432386003728881006460645469015034760015966581036906360969762610526729427821520392178681723509878886632686333803618127555805623714862816139843133464066278607003232756564793556939076986268112543097519302471399723183669370948332076336449556287946196705565126778975470563264859452055671100444601741166005587300275880959513395338416352862833914680002167119356751282898483201518321799172612336397487688141283972865415388389420565688466880509783075516337128157484243647479900253930611938986595049364421154561105583636654965972284877509467425660334033445618857257453325417638343794588322188914818556732570199650522575287873972620274829123538888205360366306094758542876035442725254989744210003828643167651674633411791357525102372063301617544231275279146382170487077381675656596192966090705585013338030525813585502834683681760733565012739706784959938266271888152286718461648159599619672925118381259397899598975234724167431187056983725319457238698098112494693700281059440647663494591079817982139681602354572178429104434845175088245746347827714056597547954638178458143003276924576952710670321947298151193582509097876293317072384361164604701146802040797178840795032838388043529662419054864708151025368940293995505837377397342312063440536800106929480510300986343482433944639741384642307283494573576345397792823210276592804662890058631661014348216392845855650798754272113855552108973995847000077905443394598900841970132663901943810281833021005522105794307117098242786574805156333482533790211246539181168319280371478315037173010530391591884478002512098982508155437780541521914963953427348084190521000590202377419458888193180518464080931431789955397516152068925691623767027693649628573750593202201793285308797407274891448253365660322138965348091800338656219980956902299778631840967260387707683354529584844169440923404807410520496050687757409470023129524725239847686168520076281348257433374620985382097134633926641070437913590655107535278427483682043174364788252519430978677863654396854462317575405167355195396055292287732101869906540015146246818854274022787703681358907281712771856244259644217636966752225504932022334737753970211980536812726748821785749147967986989372320998757855370155191245242928041441168319276412866800727487608245287500364373440238020339189964714844252578330781084582042971142388270920031513950720948729182156771294922463551407417182470063814047052221206692336245995263151077657086055140400542483536201205883639635713745571998180397671303939103186158559859747446859586883698155254221157945178258961888217410887031576915833815285512476160506936820344513847561503736563427689736557844551889949343064735667883066210452105175329213694438942703493911390206999184297903335994749627659537120073171994984541609578908942970029711003616343664775477304087403376869177891088653720828683223631657493313258342309988828373278144441469669096946276555747009225644422720401607970510225712791560788432370123064547511546139378492358423652899184538731717930758974414145351447531698983379262556978986802044270953048340501081336266520463433882365296172569696664432867570318362102189315372441797904037085076409052006861563920449754644754909482675038214761504080044211585750167328921785042101462109115006791169673837754823503019878258583126965238281573343174668833792415250273572181038139117616656039478493226576545947424041217519591618388025803688930776424231844312888954406316802927644338436517691432556335902758247851311627207001575112079807561197696624473739614285714123179120629831075827440955022842175702120019009320718655211365421511434208525666257251268397094172620523287410022035801417519291584439208653883513570204841016297947623364787736318576683269094450815463378425943167291580576257360103936576799422675233627917205509882360848612912667037174165639605173926841974268713664064686567767626745751368837196450631068982400774048660031677017659275598662028264399057748571962525890111675820525090936875179997817839227442381440945287049625135258771745035784407866656341520677695662702829845670117979530034253566465869534161516883085862721322935008529471738335821115552694174171087631399552526723703287469787004701139005050203532935471479736226653287143101371484477282698059538731155887030413739612438466148299032314917742588851844277089391774313456526101195070244471513962056359074839658603970584392826686510475014243402731202657655197493773738160700021427892827125368687747286347570265639829719380948252716590997397465501007724693232561567815926795654683016435359713648447083594522607171289188560475774605866419004856070343907139730687397764790459041313321530812750168018831402180111887717456069683846285550700271509951225749491436441237173601251335319022665121632297163935705102763877632903411033112635615238656847075485033658165306880972592545184542571103880111167636305380624516243391862547219714272907019383253399426012948968314964332318490850026374768825870072742051662013107753317962971300246369174745593935889635010537304821558719600234690701275215682043612249749150262419130570698234170799427500951173223487841820897107534726401725439761326810801436078008496686460851131701373075246794184363011163127488994698734021782600436777624886351255141062897719801771744452341670229454419638126833928552403471524723902861572234345734909880116514518902993480461977631015015641432909231985774428713853756794894660349681485888861569104112948014668559421645471162242031236020370425497375160322360398909324531396567012527813960892116078941534879277093012038147609852264724534577023855494731156301916065410009052284863444977933611536392415255759953064961274648634287622722994695374568219008269877948497033377430293259343009910603315022398598432452914359246322222036004646391106226326838500343545373919179207773852131826198532182735350252679747471534074492316614332215241680955506674758083216278925006412515536349839921704863495818941389620954586670015304020111868946625388685107760055502553159177215190901947986050871046925607327428619106876532050929416291136862195007126125361558672927307691065469130264744691907966752337734489284773467226016298647693926966536655399910798868773297896805803442836177922242722746421031497893014671025375648665755568232995394295020781406859499173261666912727579738947151377537476891946578793650623585460130128506406024565967865552123886661599684719455203142287178172570196268179498399630099370076757022721748483035674346900626001718093825484417843172312792039067178261745540762543953691009920703451893825498991558925969744167807008928168188619383996647783340926990552564542445511651074138221506725166132612187668706085740673373443087788773796259998723437467954828607845467143823567929077219044492472146864739268619748313380592237672089207463126875324431960534018764640827115336601660271092606706763358570654941257232400949701850408966569555667285121750969017784167498279800992471428610567222582528695843939567666559848518867253272423584696159830041090442503443329798321081524871707751589982188488187138571059412295555710232777339925103970856652675925077576598078661902008509095594639647238107471888647059201449504704991030114190679672701654917484385637439799970024284533382669734259843927755522751840273312396213739618080856719658397163387259018495205801245014312695239910000349474150889115385804339194344131573296254575531404770183893384342650754484141003994845706402043982073555147464967159668196728253710010546950507193934827410493900202385345936639092126671833443448587045467686649652166186128979756853319684686966256024282402240149447637695391753676181463477482524559408858963198130128966065049070785281975163195076271586502006217269068353519387351062747527288083076225811746372749642756445808271201625112082606073212281480338485352652312855893803853527597587272831164440366418525103816995330687349534558169172414264192324624172389390654817025852899914399064349081492932832227872658465734125538589859361821470522032056353362053941424072344360935333999447441583629394004804738557341414257289655207609684033809119529676759050630764244852641534903273836551067646207191721202278130689346935244137791778082946832621924948562819416492604013974390301357720328985591296021949474442501970840093286945007169655348526249865674991431407648528549701092850497359050511086414258877875306732342863940109666105585027142988045502386171651873370314656517505942962615976346391394631854957275306245992371884460974624583654966585585110881342863852009169174883153734271584996073261101543692142332481855795295165040626256893661275367957231428517704133334343596873805102305781135749384280923318836477705571560154727979373285247496102577658577062882125559936949002195485094092089830681388157548170672766626158240834721505750648576058463330775481379155510046265947272643716152456034985410327426993310708021635031744908500673263053910405050842859830197757120311678174335649232295768363584737554315800699858683028543679679415165029656241084817777045304535730128035277357517067079748815074809972289888751904244147399491204466524938867104581386422185307116892196240600407807976774359619284932367007189015809887131093091072090012962893654952685940154678185813161545546756447016972257887447014771218185823993183254773302824456523767788724564740234188334946937161014109493378921575369322110675169284809796862499232760735372104826813409305580550972287375701628224910001068883930763240561719036091090969802123795142135331823252730126719104568207362620251724021814224045700322167932823404595493108058717456622566247359670566311746866268967557807908344731005078921295187119883084832863310833661154086858773286478469686391909353432698144073805959607005902778703047117757481334994850231803526504945426649978994523041239604523960012913151461731490449397061822147715821838029384102919292353948701569209501099500387891528101757984931637570600049808192086365949239955722197920440881291587451263043493463531014922850660496333768954935476765790970676502232798500926559408267112760802653553871653258353864990329653990808751192106596405080586899026091279375086000135226581321015977624201194787382111359435327775733566695761864256677162453440801055547245385274902603029617572507423443174288190768755391663186818892951726896615336058205329338349569470615807167859825868802788294553936452371916787193556511200704055704111431890005149443411096008815913479143619161457830187869448824056423726378917641432571884722241531008382843619834109773691643069371258580166439466809718633922555465518973160147370667967377085834058203995204484171725581304437245458055601510243335694724620607795838393991350593593128230142202569209774403393794368801992987097883686978310386033309483222187222586173762628405186538153883251363913859866656010971099712490370808910842546140146174044096786385612631599831382722469448851673881076351239192512097159789039408978984947767124729752893669323054681633150363321628718545347815045506136828291347422943286681901162676987824659818643671728797857618852213173052915092050854590903829227911828447929748413788573650065020391421696908888709921278056476927546301630379939055034066578387096314120345579501787253800280509185812703232068561225735782493563672246924273333220894096811693317818961456482413561171788732792601543084733258110682921739578543989354678175092795208038924040150151165446894317311323799506681192138204685157377676949475513203656984832157267954474236598037408443548496520681062870169712320638193420485470199729812386365896543783069864381110249108425970583936338129973124340385448007835986048061375482857931316510573445442848724574740684199897317880749838830614900589284936003148942382436153850205786315965403875847222507683383777551296571839147142904950468831701646510970664403698033090060876332753253547196941843319387654846142429646677333418747421183946401118961220031482013298141568169756050482022650995998303240390782474780781709433634699567378927326444801607198266167145586359571686530207968201145825786438298727461326244207876403282599084793546252750867847832833307549284062919495449285914200762127298912795628068669217946228217664199379224118078105810542588657291123853837969363360369647446164193240699997254508334985159912066241122323249823865310383999800539643825637894550864641974397355142963674466126609422159126265487576144131439694183416537946884495565973363498909229292736780844301884493000212160048434490338818209676601825046974533437368686310737670442585610247140928474309719732032888219573316373018921125282342580195703025277099948030409941999493685251728627890309057372735059190545289628403926274466869952036636509371574044484488015668164767051686523149735260399548152465663758993164370513981664611892587613694803627552423591563697655417683246553884916607073071780977639310730219547693487671459751423102014239834699665764093528452054701215663216003171305964908255018736476936806204553814833987849826730976440443955868035434417751579388358385561139846057910251949705589890514056377819527835900423683116533190433597255169245559648891722998230203601397721106084501278082576806430916882546273801252555228769679689784883529296572517344312952065397346259814207700151032797167560668602269980647633461247805676778463724532563687479841040516595153294452765220349264481680513060694335023636236381765424182635869267638572701587211236177323668857206824988729755497893027947380381885439123566024930879587468155314373845501370610418686236755103600459323770305946109560888369500428157270300461452080967047553840134751395804283472228544603060432140480313964948260609874408093136328353237653591455195725469138368332383679270618294541747301871598094824402745736421238278317216892496423941383217900708286635556236073709392179921323612916324612761424833820577532235771251144174978325848502483716652565121105184476483283536454276932734830150656996606929270745259159957970254399093126654534730910909340531730978485167394525858105023268126981903544553065393491223254149180745538243611299017681287907455757883519912786889980956574563540139700356490395039805640103758738909180417025023243184052112506544241490861057923847565525219016473892618780294466381458709671358583849295816671975217684839728477566935211292007823693778760473805738487426265943707904539229036298834621146058391768090343505864297690244788286391371516680220135014435154540675871404440048492622470176008011102949308116724037786641648444660545531474963777731141245632615791231921192055674889916349335451600564649090677434439982612064042743279184734059609514510738667810559592829126900621237396079611317723196555835814382186136460745669098235628733066238800337378565647492659577016023127584344589861055736164592546380135011182584615351757209449698206454996251809070704752595431596593667930692225589538244979262815796365033093022817545190700268392818530829999419253517376300636139479142890301053271252477604641079691705932422555485713210402815264036652857042327606888101615910647806475618455197219784413193840941940412604955873403558059691441390821910553671332307990198794523948958619093539107728949769464187068992606654115485596153403507630245568761837447763389717195132241424545237669287400266595430070286231114935106075556956440638477496332234379455243568392929627517972595625368881409506930356386954233230319821377140132630681013696616630952860348188285655288619964647844240004945932956418630106042118546227549063569415832341180972865352215666859092780269326021638745412501710076528564533270400469535651162590579879173576057355704141349548100861486042095994744025343308624800575297450239624835245996988534469894612333027006371478091168402580133602334077832147290661489698857285130169745736028405187236220719294436585077838005086768758763033823929000483068627150132823673499757737799711993552840584967300665547750298750800356324012224967200723611727780505160014800885174898148956993213732991009183344420741058439708562189979878901100650355172042948907330314459746713215529343841279320624510483430473653935153698257541413611613434997348399339529323873987396979732042519559515313304584486097041013438315108720038545900551073837540455088121358170448422917548011701883425031635487690407246649212185709204833556502136912198132734156304966649189823162757993231103533678800460766491386172141480124729980925602241816106357061618347798843703593991334373195874281134423673566452471734136287553086850116272602218868709030264416603918099866293443113680506437193252272196588546752924420961334840584575257242983212914597469929076573643772386273005454311066575232684681138986292938074721880424967328944381666961572394460423223469105693240694540815816412520425700982286376977307873935148332038794775231006713218172359834729422435201684776032113281342382562807405529004149230673068546523109621023921945561213089768014428735895005720157714776935309819674631116660547954056754285488075760639928854071286050822253538653164948280261019701949580014570857785108971642713254058021730013073023239060269533140553367609426247457190518260157084946434894975722928283044711321867309767168382108905789730626061644548457544374677594438724376623144319152586916092727998196138787938436567615008591872676666197543840764369640941054245712516929472443617004266729892628732349146733630626331771085456883895478721952059262308052055093573307276558323794319254193984294091943723055686062710527078074406810922638592355851365395968159586762534153215811347017826346621239680695942784826322473550579875299615897262381498525733516272520880677034560034232850522933661085537087513358409801742928369602927168545321074557184721299547264688774256263986005306143498383444176812116288614872203483629338363841435840672889959545085364856619514791014772499879942858016729216054358561905514727563376838930027704593088274979804181415141201562480869209977073889353907227632391750572762294071930333759733069815299402469366363548671194846754659134268900849375292131962791145780874980949067894005806509671293285157513445360396558918119777691819589258585296093735697459035389916134874196034255775216587541376771204276002529402884414486207142500790804928799884044264526066213346064988514712244008688276040023112660007920697015261685194465682602925236764517238126836800481348714586994623112802595250351745279134964886524150612151854866144240550613321728326947820181143664913511119494602140264993296547657172222848825265285405483103189316887770467327390983603709838929779526042727030304108784802804156437849503525319214011185693365808277360806834736116922246063551352206361714006035120057327815117231270737968421176022255449151205422008414649144336665619669609105822805130148754926306813630546504760503135976941710424472598470388672912329200392537187853758604176796821898013357343802808011528148110423725362468129132931399446866552486083989410551881771394809182139358818504819877670422920333395666709815744453394246911094601038071409871554887152461126011894280392007961309781806132860537378818264075035661263889375960947398789652896508716546483162266383385668709044537624997438756457075119717101566182134493993306056096547312581896870228908816176364162523292488807506662614394294044986872661036858185703201516406183058463577092028832887050693717867128789420606726207044391286792834437263288405119859880535088711515522264685785193688304019479182819952786918829804835202305520295191776785010732017579208370633741547950087143173529437471812129172485463259189469586559270514318482910174639804186941123361336651774004416067214395064532879953196724978067750542574983940157828120322280340145954456732455668537793200655319036482263898728191962196227877577415355313545302198310632752941465266564210423019089737550263498514833120867256259691679642454955994595970625499219875259778066242345512719865801030802970046104444022703147352432550064270486516989237599404954611793816579316818936131241663015433372454650553968564783815648466408325711886694133624700129302907315531044402116728985019905608774298872395358848012635965106940101354504224345494712279779941720737307500508845345579829883646814110249606928051240325897816186482572225569491729966760430831134289472198275991652194064768887621768837791981171846896170991047200819262046256123271520559951191325133993421130354142607966884058836708074743973945776918927552968000993866439963935919665465374272009053201929053633833109868733216611855702472389695961458179774923109675987253033624304730568195173955620842180217230412174562303792116187095771099512966145370573205206987004618891643041888742436442638894026731412537793666698779905899987626773687304218607073050168645781926013979279809400693372840549039589831505193420075092788860510529246698245488285211823641547601567105471877173847259601467502139796994226864832874424875164504530754836888847681668205547000131372484935179993294602950236020369785690909808298229851540547946877386911515516344079277425557570015750689790946006208788427260822670333415652829895938933501804742178260940309354050023746509393815870565138487041928902166004551042380327218718452306759577960628151056824738146045485670989091753893260620816840552800628815723832897728578532206844780641215777436577450765633693066520156179308406055640417180849808291480550182456743714822005768478954437683189902076421552618479519609718395089951715185815568585709059531174569470497096609476124234507274650702681173952127287133952163288600293232143120134948553162028270897723902603212015367436668624672575669737396937937046450252912823838694250752850945877010002554488321385519468242342660311606419253588141599227829498317854026805348171696688604983783107201592997510935759426580503774350277076380593086038734346623437994359540124023505416745348404588168021055911022260067576381575914754681472007408143772396753161354913097274650153981183822164606031303917435759767178601497022691197135381262839524383597802325519912482010572374336891965957460320064973622042971836330699361237563425578809712430256710719587429250166387300578481606132048182033784748886355009344557673962002597037086056260122921840818560418040674277438505271060217448824474071115644755691058607929792459275881324493361235959196436878692251652430873494554380819332349687125402772000715686730233717972660871216205929818258031936095223359750160363666523837250247102729845068700345870811101254935980994155577540462535737476990222501185537486007147635619116559391365698544511116406950067815867592211950498329726574280722484422247730243853227777937081380989020597461005281841129307710708062491970181470221782966154820878512894079121887037820503839247876164735076102042518562942007703938755161936986076665276149249791497469435708130822970534625679063023913561646363003944761281431311064468006732012679862775568386337112983593464583656184410951108735960129485885357466843517530134430776807657141053962882768215738947554908771221622967399963114686120131319059977744225953469581522876674005200384020943409241056438285847167772744973291113541049085300511476577429202620612380094224756638408286738385996418535598975781368498433621966219992043088135657050694697807243684232419599659911219465315666911868300705444512273009589283827203392574701102172397259054209838752903543700023285509480931927448410693112128698235223939723083720193609659503295272865528610271566071147331718811146393484529000888829147998107500931641740881761643759659790293214208166318179167344636857893034120919185082482744474952649789230094272597775963374699065926655216065114626308617411985511442610269626070981243224368863045733239345860688083470718229571017616234849633662561825266971570561145184988344619926472068140836870561023546640998552386122839047977279812227454449718471356265198545914355878641828612064928429671017305850489537727368825889308760725772495041346556409594936717718590189495494022141114848089901787831759729448134223251458588674950580193067023525986997852883758174914307663087166364121078120348451701084670280383928328427737536041526377806519751435817481118227061958522205411862248118380351293500822063876796750778268615521733840767131348166843035362027254746230735074688747241390364072263280818066667740194776647665972969131226136481593688459378649867513729591736753781926601076463681856640394336324838253044579406744006127785740622800879868335603583206658475497845303352390683084544551593186072649433509880910728491868370598965227891765415846438331992407866064468905581926531219435374265390424508510339468386301604721378120031408255787294246376054601347684931531641704015023018623679274528520384069748685246216272534943757476212662618053976656299089748965693210412554051543493427588805621752246116534890327574329981018310454024500195436019962800663249892135878338746683679267720608935934233886396876808168900362219068028385353202117319261777051267133011265169124165996964039082365132614852249393340108088727283378152983944845922820664573815022026259099505562383671475871384607298167519708534388011254467980620274985088362418404649090483734703382286337909538647833490125108799726516438652863707178747814849716202973699931294901892205024308781385860664260604239056606123018726073717838554152720316823402088503837951845491896403229413423799868696818957494177568896307726719853835202597344776753957117188369517221898989778888983271179997090447029750137138131959971228668619319186072300024901440901191263069418886357138372657074569388807725210253627333951402640812901471617664946485125491047748005673340094384837167789082555024194390731650968969682888788080867246584022107028956456030783483219024333344345264048329860441862899440693353255908174573232531389793646179798074547128508520794710308295770125142096624875419656927184117455056639477132639925557426061675144369687063232462822762687919116005104179912837310905794430148651231083256483976645849921709121746836913360556593023939675230132676844877726041554986985714645070239329371569174963396343808261915403918080439443728167328743671443946945576093368815621220555736359869034818184985802526636590941587229107779995265095459677637423632699821788756381169558962278023963840035163926310960855526518300560296479925409953688647092068361964156267775635242821198803861832824515364985847017739095727177072489335329061769272499839381013990749005406055779835756988405313925226869367794753052176947466056271745805433588552456469373311852357932608913442972526410365393836151876278856771192878926457176431895289454832787776994912548020565555932582920229056475270792903317375791795906526910422374823836299299432235745925052568066067317222348536264208218854565248185966036490298965499112727873802410971490447732038716707059801785319939868141585138699544921193362432772765558046917868403395571618113928190402249042947686377937939402191768259492291139354711451066775759526891554189723916925449788495257137866928300933487651445355024738981936273762966307104758161530872393878145820632863470236804395197410328314421448345551791412981145957235509091982780827251827857950225796591024621541029549912750366005225553439036568295490799916450410688635399574317826442506711451394606799497698153974673714404961599311504291048356293283552810425026933261246174288181417016940794419172484187941609089758320000314015128493344657504919933230308182769379557095351070479012822105142051404099651590982408084352671612421248666558422559859459982844712821346180961624051891550963200002488056209062871754389896033243422418810995722025916907712881790304498742162394356899641086685963515248456452832565831530490336358445710076455853843561571409234562819120524568997056403151160891753665940709181351881951372366383429563766132249661275184602425997907712913916519713793576332447493268877577675483587710938179152627433220846644214438498223073228169093431104486685506136695805116792159393956227841246551641116286933140480027633750017087876188784415381762329105734643330008089166002470080632706461617177268089861921285519001404878290512383786105213159532079045822869948850770847848096911696483556927333409904461584781168311089569014716566167049383784667849390413837096198859475470818036777869585921972499929478809238289460830233317539292221515747068288538596109835554499000794574081757956222987643255062851302287994636332051019230257237491582583393489450847115919739249822490807480196618327907813160879716323078109582122855515752649980762142006545286593648271813921094048717126427754303583013585826888886437021063561099687777105343040616190778485516599535216142863392949724419599543296802212460996794164351513958460869354319178838866713743858248030819004968008742011286010741636462518183969889199526278951593422676122848131990092252296000840299639968581957716144162638905081970190649314910652941056268385598197855337133084025116905154463190586614739363716649207567705250742028521607260850621961750862326947459839610819018367778189221594895389000024974310079678641107385031183202718073414352996131631572872444143218772878666185704008169174505582813830809941432974523018333501715288191582212522728046592777025222189839349755009775384581163919511598831717121963578847165098173185101665372321126816570219731172020058830326453781393365351813006439270114174324649265190481367628851192073375622097762930909890604317351416507374774278940152270441233115795963756244480496172883694394243642118384089972268092146562126075594844738470255559568971611596450944780340846642768801044418020823610815901128535307018208841623871204214013770053729552616578982455230050075139049616644620675216854811665171304056280214645295362772407704556422344305281727185026975804685887131390275785769695133679461728413987031057755090180124333305167331562021354724223288808017867469247908668157113744908829656614408617032925544589667866864895932059517086525884664602453208121711739750529043600995926490891480695755114665749498509954393710209457545215964864563806465980709920779146754690516812981481706092861199724944761927379798929502830631549548242545476616064382431809754038407959596770426109010845764108682856929345157211232917026155488876032649706601678778040357608987184524313168540507934145984012456585899582521288228781302557042012159143689103759836263562279732459595704119990750001288051025134419619485017265829028644951943223808647252558577818148424856347896283789031775182535095319131062023714871987577980498671616982777559171443212041652478397126484860347611337519721955625072741775850420017563322333730119811140005476854536577451741887522208794294523716799680355396090859670723271752627615412430853419880736783638584901832424910649737268257022001786610942795941892212037415385719602361322164899127845625500445943150296464009114061187167528648663278326493707172210413195591382295572348837071090737845085280165681594992568192904975241634049053674599131984582681118489850105741825757344730618265142228608684565759165905783110684473085062110325256563080120411420509201276876458865191089776316100819008725624190299901843523776344394021679402619367209973725321320902668240686689620689551066359228771088362575106484267924695131101444854910754844704070688980605472429584393628549714055185935554066162724531476282507091228395196380295911914014623901266363062186603811093059438652728041921654421633521984835904834269493962111332402622321237288780021767225551723715421996767176591743086220010260358073932320271611712928113468164792233103154743967551649543286915468273999373604873524039314342744678093022288733383280171210766626408429248065017713641149377607962518969210740181600779583547994066123333054740668205973964288315869167169863226262736611290854209678348732125372818257880080349995762884423698631566980719151089941346945765203622483829852201248807916855492020915904661439634123781167133448278599039407426855032912932708275792192801379495218576692451809371361693512348749994555048856967022081351023744893784544235462543628257519880677096592262331406076238517333054412165411615761339991024931447155949769115169890344413633840624595907161183628158479548412084479584457090401015285915791493659078692997824779520759950776648045676261227212995805664842640846174801326562378546973484861252373840087203533572424702309865470352088402651811736119496973924848261998948776554598672098211313546027556866952922672571628519577714610522430854742113292599338651470859686488129005549947059473955774780876259376357932913815585115656132889376318057239138115572330694217852464590183117008084962833206456292092594144176229878088812346441195053302962349929026529712725393301118640699261184978300423944526511305447161531384270913983558208738402039095480766789515000454564866784469533814492848332733459762845961912602543489525966110710362699945735088646802835065494281611739208384722401282259350435503332693542462769532567184467447424731288669482409217074113493253914763313275675098724893561266787918769975596061619890872612823389427802241867132792343667637936641540193167192251847378597561930415054060338665964092820210786893040015637452890756788348400461295791905297851455324480322895180949506431163301648827692743387692757905545465046776392137947898022718787876380269054351566603840321299044395987097465897769160046752443160330563112030701907033170097577015689763866623686695526454957195631707849083774729227187165331898257910007793221444116160986204114296248460054418469166314071488376817652665603240483549332779096447493365622250827663702136897466907872146292991227156376816647616825619095976363606776491559348370818236604001936060950395541884172325034990293275435863758639487497077421160057262900742112197855824950303094706877690074775780830874284088421687088465626205180067858426967101640661678354105299698772648531740958749635532742435540611567329308400513785727529880079222673554083181904470139883562259387296178912530780561381628334374832114320502166646532835241349866028955386544198860047561023791611013125082013496287097076002631053098174209890243799842732874008247060830359380818378181867249030934513136537613269612748212125741354979579333226737673583104656187808980082694514297533767679746448019704429747307522582569971191044970950583658247486122676746022709322497139638131625796899487238605579545450037205426033162470151785897837847604640388045872156778044984867622171196334357838813247681819321980451026785039420428556695775982177394592814576080137008224425654904134853847510390310386328889529256604288143592718882087355540801915049533867855158061272641454613673101813003866026466660163704264369432823228583968589529071478238879390753496102005357326146896273436242894649778857593503733336063154901084596514201535618011962149553719513245044213743486998434192240216547897292711414787502119350057002366955832394432828796286762623816464465138106345866706299628827818331393900436109413099356806927461130723168906633275379154332231122216119421450824486294678307894237985994176629234739781401448119368478036262318437506556458000683042658128727678809303816261212834740887298932521723816117710655242750201051361503180986152228067560935666111096784590960181262474513853962112760055882666094037874447758096744819953038437650910402433319751442529139051464576550778159438842383472485434518577759858917860625695948137351910511813720226059996849069010263580952184829354019496163741948261007236671343774642387154475437131296053211325997616721038619057107979593436509159401943577130994592140281504292906487132209436432571088532565856935740110346940526955495477354115710849359015559958220631089755742701403652638844893531488780816630988850544980598348781327842693220322402757716064616634864748458098986247368661709381501993069174461878516032878410454829465487485688610321981794423738558649141163981576056736719110518160981354413280848447091673061838566544575282846352193410215650488297412057019374976603860961384735076908408947200098360729695399306397116520662315809340204885064014124533039990158135861462996235820413231647992988342739176132045703796092008627994728848400563831048570120477844899097682470747036200118278170734108878670553170661932591229254862819363643560169012237764475316048048395201242138365180098172256326460276796035522052372465273882102649717983031759453149336017294602026873971695756813725769003877223669448822645869011528731931900641532655240901356407291448958632487664187728750294965532337429485374266963389772887312194208671810937138071452394068531361152798420536892432402470200724672657677406374428582642644190850578588699883561254956507971755761966099635534641675044739059237288827302503529210179492041774037724785390162205535153971482577825202261853737172393034049647114650317398065006183345345332542226272468197272967672753371640958920875580530949615253179404672270448804564751178414357799753032070549663231179236789510377634424158188412553713190441173565961678170422095179144822660685854319238188134989542822793428509417016478911185923535305861585387051095009418650958955382123722986285712733534886159712688635497316940292885117740044855803479480817599417496958722326047862330832536928199670428971845208072273337932467783850307760816921020430673448820166639860582592686719752866953965049994544796959455882546838534676979307320495559570383557961583440866047522252341395362875061398390012718072210223704343913459965722925318770102138019066919045222200770652995891360611919770102448627613900517729997932123778176894445510496639654161207185459542056120466398743363744602128462432672564929285412723832860797330122685736227722328555291614403189221275794189965958223579179790698747814350333908029152521859360272640077260089559137520971463573099077200666496071861981773618494602359522127781831624894361347522661839946569405950646410706711409467267353668151167937628495687690139895455469964886451325987657583294145293175292670649674530894831011066078743060961331464332269701789977207204904750168266309918710886688725844686226512853875712070093740407487618024773305036847556236139756859079590502889889566820431614741026458344626850504799762243967010663046478357725787327520027178057902714295609765437113174795386416963534445640862903780918308556016403391733350236121124403995563886088011940472398977360746536497321091400331082079741059040659272589356734550684844248066751334323979425970641156047269785609188220218355929237371581258601556299046904346577642392189550510086716317689223931296579786386947533899872237607500231233837795687425356985465876443527900551498388885830877505997789903984518510769332447004378473140140744270442045180763390437507762525010990172347936588750142520333188278425032550278096647018390918920973267492656002133335089967715810472743481685228774220686187493120253753671864551202670883235786606155966280496180785289070404613584222578605529472719502209601443065041157645044717561852454831901551188935497224738425714881419986390678595813913417950188450157591505805756201803561974820582080201687939573266832069609270296606650944004284725205814797071702399512749219692209943769134949422914340020188122481521477281088671624239940082834391548364123331251206049382472774651329869294018023482025885099301381177696107075021026640942649463050889197439807549537333542795397986870524148635066470778509065392111294660854905192232496917864714462914507590172529120365328718641672862574983404517730964054101128169954966769808064669767194830881374929860228897794411066895375908829401384585012079402526460395278073041988798035932945050639483935010189486604289737766627507600576913270999782944703239879261582276470609418614332100614791520127010495211162743177601657801687412388266240436766557513846266460412878733044910368507531924534504967557560209664673355710506935835052286487447583749689311311993115341337644948612695573585378851457147076349421701664402879511366597572797515538968042914583705672499098519608807253057832590258856683579768518903102250944569858520805973739720884685571110917865884195550316271891454461649847501764784872127516998088658322768151646575896615280158959108010896381346503307055956470441685830537475865584070608991356699208991683113289146257183455996357592277802312767591967138027270277241865498505274102217063508535063780937459116746277594795648119165914076641010421213634899849252669070864345962240959598248787175327177098184737291739949602308788025054505926076435435663030819492075293431421674249768563579899992440694962488754803489556359895600166963160938038107959632481976390173967157614627317903253770431962064150109758130501573543515318269898851445027197989778673277378453554930476498773890058283893536908375846213319495383488127819763219102270723831453407076764764761531737925481001432852601470676211890402615981611300081204963243256647799016791178640478827445394675035245264428558969985374422902722970478829439219246485225423145865504005788061268858421773804110257449074572952587108930555560371449475060914706886440583906655665200140456222461235888352386794979389398191196527661917523453898948790550078963282431523324990514813601880840369112247469124305804161892658280703018048532389296994505045473253488289511326710956305631520498745923402298985770832711617134458482371066196280469365090364475321946991470425380418925678378519441086883145963588538431672494634126362962751824701910893225221224664079125797734364773120779999840847507524029366625173814076853638869457792931290112341625666338831470936695227554814318161935574780181563795520394014591421882415162873232748246688839584582302199672228576675431466661284690332479762445935544109315612049884977079173003517858609074890065955421866711591588891149713367553984007504934597137164889997894631184447690924975018052757345357288866701996063117696816349316974519434880530717689948811648802952596575796985935842180240157990126601763785121048684706183292152721414806208988926371445336060364559038851032393472900373068790177173322549059611444174823940636239285287639579555438963375706356765829162484918756612265459050809755737480916085845991750333002940760427803392301861702706765056313938943330523133173214629157825831997790147590950843937596442764779846227412916256697236178547388072558864742825221205105419678798553690895123215059219000871204073460670968274879384103052312586582112951230808594180934577549157965083957671917620808895321609449429360008822474601587553794510585121638020566229808047576526981332480147857237760766665263095468062628643167583788434736293765816117620214350924161544983877923378594521001101202575969565583529132265193925652374653641766116647393523162339077061946165373467572519237874214983629312320557575430593774754857291547110452007617637738735804651850788836704553137818749218172328437380749175241404519458292312632200757683275487595239691162825538729185561415451540854279105870641237262039235015296723181275763319491785529439592693479974717432515875856912692777631614093781227636882156191470387150735846177183785097035647682565761896325936164873153878724313732415221458222433631992520122421259086676792582207073892318003411104759655980036626155841431915477552265349790387467884858813158574677729977837291069699912334094044733417347140468556097157788827024173989016897741751823873790907302451869120967465018623492352889280548333986385428999486728298490586709056057251075012737080338229258629811219920152130448615001384016199222443100064479256200308218988435316087654120077298113556807584656588808336319968526324156652886158495444887035514501837123835243384891941878321661282337601516640548539211461207575551063982112512579783354972321232712579047688469250783987651167061223200433774720824781587434335246997405334270373048128376880393218738983832405691695724136994013431343604950000795258436498052445656044764336438581913343362934047631465181995891879557236146555950509126335225471523202900913687604195933443120045434705703758667130674106080656952592158740846514593176035778374648944461421521418187502602990325469680932993474782819560407054994921116859173272364543441500414501522377987699475886895678746356973327691316920772002605356515398965320063667251128449621631595683641828440415890641832045392326931948356063011843282284586733908268689745494231105924456446808601146158374294217492749320789106843183300946163327694757909199099476055297821072141024218109964903575123197050631500518962867236904336103980029580899662478250950618153317300540261336659719408214623211082378219107248210281259083804482123056680541262583919624084064181178974898433813106963968457807923540830464017566635906266734830144015381809450307750656312160053473629446170786798740968645551631683774972606408120995841922997503293450924395872419660978713530684886236780222537334026703359996513266977520416357492015493234101473743778860740718967291642948641166244832236347539659414423326616223034707616138501154865243642858199178876461321666527254258477446013070152812761381203379995380142211200123321756484333782463764266315419214350913275391159290006678719304694615328319642711264137055718627677968607622116533594579076823771249350022366179959337957044087242227839127876526017076215122452050754880365756493734868739352311929214876282703319280110417494914884832421045147939663399896194277244145240551379438777935357998754280944987028663480302595296178212280236761260739267754757328718296131724366210232244321314143973567078140871538916845622422850440886970912032049045663554166249772534738593755589052271906837181158014522564248219308634442623755976594150048715402046460526437023748674597011086336613072352041790892488367293875838612429359273766944859530382187298454502166932150125421438367238729750447857791123225359347130464066891144639344351825077297973935010102565141796930864060449374835224008608569426256292206574511778646827353509732843769464805991035079333093812184613680422732449114884248786744233127283596078154008782155524022052783583229053649322225137082479490279520174252601429739904107732088014045755048267073675769478044021052811744018623408256708415496017402735074545897585053282999219588543865107589161740401614139165216136511761214855090188611000513814102741806482050203274255883397134323380183676892031873734502624290355996471789375831926387159992617582874144539963455155925644824355253724746840910786429970099338156237439671992148364733777349623499543682433201319166818256007411367161428811512977386471773016480682316063903974487757179118809888400943515475476606406894297820463425906930151092248677407976830824537820549594030335088036008675566779088074743417335141286754614653072991432299767450395585146191507956407868366555403426514075963926855145152960697074685385379499658209883990095845922630760134300682430317354652775956471997686173881645287183947791740874777682453859568078178508336729631508583157815744482646428263910559680815410514869211738826457919718698242836711290289616305027032172139140897605837561202914130396434982592173353874550720631005558084268990166510219986499256233030146327091675525687138855869346188077327353753288123537950306540259136328013335543453209598024041015511601845545713201948567253293912178063852704711481271018399273153023959495115449903105757762031940294933923074610310849652205947081613454524842988767186204855119965713349156891573565095233970898181824358610404793450692272680049832256903850761506688630975278847991282911040065738789924862405975136231565995980158971794723838871073143025840785281372055799697270639207665221607422125869866668701793343785615921477657090436527847400893920965909192879220175373702754961642483411418216395857778173544423325668517566652371201889764825107330629297714647654890430866651978421313887689641246742580932060990108583148265642184102020838811664827789601817814142454967141735516744398109499064950165755771624008625684703537376082980658435303167306533083923877648114906570889048261697417427928804286544840363148240940358116954430308337196050818857668838776708291401281105017051489221597306797677373781749569287760961548358878732485766467371076150034000104463426762873557643896627028654706384837965388609005919622081164827637311238859167638497309729440575253496462599648443619460363633034800664960432900697491604915697779974968457141627337174412609131601038423890197541427099975533025876476254842523939312774863328408113117099541359079536197776607275454028896715591581788260904804284787713703061143444875806641155921847978281836173803890075282733885934264214033046167116356292899789135889912900397324775883541520538575126354738619749185226844454223049785697632388405315810386885780440951677412207768468974325759295481099661181984556727530891197553074649134268052936551471994871812453766326435635278443150623150605273897177679203579637840293167613735536675030489289726690606112694107476987342051218268034046711344639130672040795120223790662658828177134156600688311659500975319990528989293051626116590028712967624541125871084153225822165832851498397407422059090987229864915670930528716804085283141633547040223440216680960451914569870803000482317332230992967864907053501128952288062767010576275055551143199902180507544227913862675372621243031467777198702328920381181202147369327560943058810491335986637350649692080095207751053756690296432191282432130026163884340430087856678469616524837162199313082512904893304497432812418539659910777594585507019197881901095370089780006422812537139120678516568981617281250580899986343588058989275824585920089645066142989603116828023752898492023943241675848265500701775226050688540936326106637262904836574354008096529544830516532296422015585998709194171708956284339173364376400930487028742258439569226604145190205293158655627076232347208454498554888921837969164063111228366884231245302701367781758032008589657321292094041928135918139427282133543358126834238113533763929102119435898223168846973625550285914480798965250565191084112974557297675326838665681630260797967603567508614354749356447869081859521646329871853272905436424680449771038698284525640042812984580427002767880025852705156116270724951069791462405553945157204083756130564763072429199876087237376291787598030922605845001961779527235047553268669903498600349929367197544376749003548177450153622246587213752713138945916834286600528211469798763343343524137309728730777759015092059725594985154820978471558717076951451436171894571702287063454774614334826642071342455431659768558260265410296583835030485559576413514095117337045490739817201209269487214835350799683695483550982154760206221732076987378989584315440685176008164294007091559913095226272680876834256755596216908408951747781959217443790333755864543367726256790653992424802079034173555985020658711182052556193974623468266047423168892093871415460498667140540239921109600152697679999850089652462174255793639394583063054727547996247177813407534936617237283272945185721691088598711293362926304218119563599750032772951658455769378827533682424335601419389479435876969330001686888467867085518237174223498126093043693818558303926435677900675263927591586101408985742506454533187229943547719993129012306730050553394180358267294021106609264573948269779271494847380396727251565581863922873475954260122956319755777224801968994777733986757286580049866523477606725369508045290476573510049651293302525883958369895744782131190709040706932572588209153288477837399063358728583106439601910599596282818878877042017164080317759726202578280029145882601262245079831523500307699978050427071198395153875373873495600553633853516688752664219466050316908502138624198966356498494831713455220712923026414295124743654823935973929717751504418491174781139959759013543586275298527688521352276281342249358738663425422607370920494778090299387332859383113148877983944556001460792964323005712348961567508993726032040528179406159833655256525181714540754919452984498553000100051513180542191361293802009242172704906480803325622108817716613655679441828390036599175885444847570751893071335577288779779997487481998053102049520226106530840322074018119396142968979519918515691580397939027588213820461612541052585768537849348199008311001037258408091844841168838176742161741389830703206845206701090797039942742367048841297719538252730403005052899400224921740726661444291693870684502422937485420290688838358440423844926769969887470469162891221438474914982795551680488896320750552350004378046268261565028140448620664228617159784279553462978946540484791845335424300825897713595412564153975666108614918603573265366243089575115568112591867339539649610348498194873766971578177636047784450183250905360548993614633844909394170573085098935252747847954373750690035217900669950436559018315921640642312582527594825703824845272967621220685695189908529725713291328061563523402818694811906682003937994684416731793553902365003241483677932913290642423341251896792774154972487466394942017300472738865742682626903274747416332466886919750949301042821322483452814715446603651830281077607180769534486749533376217190171793660190131474665183907839268938493409222725483475094013987761220258464422114826454326075236148525554106466615859996937073165174733191266394019309495055690741389105990994140723359379356201631469321380546753338759057619091183633363098900828526091519778069044646700870756904606712086996386716117132075441596234565608108460850188081680301028674860624028557147253464867042516114872588320712261316477527590844255821858267243349098009946333505824659765473996070715799235698749663078041228550465387860071831403246284026876724135109135240945487930667086482800760978448163571178479022994164749386290474024744437168010470324064425191715620991765158008271865446256607937169633442198452655400185054787220444355201971715860786974001155287281152273121559769415194652157892786711027260823922618393511356074106972912796110381564729629506516414094569411502659722785513559166505389270514039784276656385004416479847657799795708556212781389625967857983759680082333493277404475312231105560576823951263529457309847882129371445106072475946148201549327635242473913626683888994467488519904533450660392192163591023792476732985783769244074797436382008601832592601520496611400628600302345295808581942467842852790623628740045353117221273703137168442981336757411573372206591317524551362654873350277930423590322778227622257378634338639854835812728186047284216121179586006081173269874638861793860115824274867253741437340394018817039797388885573855282451860663603767193540248317097917929967205212258125828715508457396532459429165852111098690760444936867036021974350568184368552602085202765651722127226422041580689060445444186107714358934310345792750606573460891858930306943198503660890274206695848463473867419300974431650186396043014934308126820668608470385936281842705392981227663623633200452560905936808536219689960195438708134263823468936619715618438651314438645257503136704580548486367408281679658720851942986715928559872346575254674826846999884111067077902825337268469745836568244039607937092853325428463249434843717374449856335422622065612294713531572126997896432817462085906436844439917505904521657755038110275443206379848893268114970803880159740958606226768784000341118944931031196427903340971540117297103965396195286870935346741177864177512941228178775134348722148351810779846878394821061173408337715141969397546056432349700021815933272307095341704926758238820503285581835958494246427406273628402942863144083399773378058692738814974918713504612664847011162594474177640677511658327039206828485007822015531247113062749248839750676181414689668584848355758342690118800708335210162503619822320294294448260419666926653414885774648444049411316639287242315047773957200616095614451939980224827339198643828463752518348877627201004931514355771733986653709796895692509651264987934950520959838659453691902253289037208768788560294795458969043825951388862703369634207625358284293614411586097030359335702093567776687789973647879271300139524777622378826157605051013962021878698813439050118113134784738307468186015541934050634068478784294754736801724487211705056273236523517569362182968883235476441815534422027712398903146003095530560043505098258623484952635658611757983832788015160812551605727793590180210543119608046099649976688597447902959523275763293391681539136881781413931864147167081232637727837319709684681854710078090192468079467913913859995216417667583113109159744670418506062047395780241775660039114783801121325498535698540534739454712012845701629566950193676871205879706693490230259583634903471750956282404201759945409979924704982628499006984053484705293627141782925848600681328515247411778331668265219162653276253847159292680182645910728503238288952185248583564065030499704944645293415829308126133119673762907721446263319550973479504906317592234973654379902337925088076768596322120210191982173360447031728038945408112790625514463345916464282372970753036750394754888198300325841338674830158977834247813151789754240898656071825961327391605557651064408009364009634857262967112654447937417292150372591073940596326132977333739215625435844025503815031389151140101941667731299553695281374216532662592416393238434876098905275664328874351646111658648969119403448078762648906843766545849747336581764131618810782804957934017621335364088804846119635789641642249142001307054506494676987189701744012137963498733204640612083562514267785170685021790964254025198684732262420989516866318139525823202610069181428249334746063733815475812372988350419322896268035393451815759746295472908985197559304992921973458686328774505143788731293156693312402180381613575172055976099906726163557355934621712827032863257759700378099694146962392004863970750146755807629936643512364790708336677411300171945319612310658328134824777496119092898104771054766876446166918223833863835026491409870630110632655734010543794164983705301354763508019909145186205197834474324777720309438250756834702559588838288011825941873400238360441220067846413639081516755905281867753559339242975429744287528657905159581396425590746087695349864764193410800583970245495027732599804754651195991054739158361905248649760611457092039196005607607346142411088546206618415511522287233998483421040616295196157672422930182330689002784005543828395131429950820531615449960765755232327768157842858140315732346884901933814255117823595728499280999426717332794452518218671415448146156660638264020643564886906890968157743424242093929293259224143847337063231480468397839011772648297176851124828453018234488870074325449348458257579431112566029930228484242746402452412604518108170577230759275673524752845345494199906498012201359941741535536423193545472749452239800859847311712017992552700964415939006487856420873016961676994498856609133953690861693228207234766223091219755531704504587000577632315909977055791165773938013300337502383715377723438663957635757912859908928182433391853709343157817436880644566789294240811806330967662559869376471282196402205603033656208641040441271397139098133145775717642974133562160716982673250500966699737515026604464771314166793561100007290395535474988791208951529234292459325400155989173487880703615154283552294152915142829932171367110647623960622724012851375641985164803545929991172709366148764336802234286892188812663932690759121320158816185618430252330464128435792768896601290502011352432858454914297560817533959989167912975923475650339707324288449805456229740042379649041261937264464835843828014942208270866781657789517965530589317522910861736485424098649973873732951180085064213736985007188484147635385836071313407090776108357132657386461697133440147715084713782839958970153854736166711527863305986162694904076995532750589101808621087475599040907215424931107522219697710171557956121894581665580048555449618952028764149986990747148665796369736133480020864333650730829029048863551694414174312559457999486566707755803071731829621403751592615564048088683394689506642006321107122269035653944960167118314332917860152202899449053952352394057761582513371018132107746128294480482763258786210214104293793061426646196765230200384732022339651758313460877619848434603248009605414800267911297196819913148057990979657183040600944581418844721470568693623621581560153068717455362392492610095523980767872571271027773166454331879113027052650184914439160198584171911215909545534657179691492704936725357771449806150067651614348598892953775780789553411483800143342706428174243563846524654557877445312146988897084118781314329184840052476163077631021222194343477253247993333099984456349093832118458451843099692794718740920314161647430203296786178976885570530209068399181373835487904336296594982222379979285189702391631355791277802047218025534542262181207885880832528090713649317732462395643858499419047306122275917568326013200419949778993048350203040261734569781867124187617039547418668773429103094206242271013156552225092800654559640163031083519854692405608795871601386784036826575146567707424701877993850102761528397277063722194434990340465552261582406899643059172684265752395296698436495995398290722955893738506332498358064811530716586688762744764914949359571628348933967562647494938715925454431588384831902781616564706316231645155329347045778319163063363743548563153377226974736339452804290726620787063266288258630775027957911890418703149461635179408402978902637914439930558854986609589272112617787231169892030242095576400166822191821546508239402889687226466655665396273952937277965639394396631654064905850509975156886881817583011659756069105442035631593912229507181794304427318958475374759946251764007022457186852137698557026193926999802669338845346421362699955445041908618780402549399657477019915282813771611445378480631928582614023177480730337764367658834559251759322758544068938123341093219335525438722669301866724696541849694185670444576135058791343522262590134338316738322113352192148921742059518721481467124032204665376233561151242225121502077299401411618832904404101782439505462792924645033635515704311207029132654719084416174463368070106766261629282267741829060504058486473581986462659410902360400313524091335789445791688055551672197942540246808768734847817257678438148360838106846012393534796604637129389714658854306772600544859830034431325591803131815777006234747879219162118070306025383121512898375261329679597329877857068791032102764238325957201013088159579617870075371412368502006979078627398418465291525550531207611989657733817216171607716384051709832753807927023828616693682610245063193725598174181189694213725311293536573909957864139735529057771713959714606868847971257594021082638795923818311712718834343169439156451907295778910724562782834401640407229397487251195947278453128971552116238885256366754118161218420460210997947522489174666324029448410547249013926331616924823423639072728262337456370571470361009662098663475667407620419519084931171630367731416097101251642187746990577871942948109328549399772153312964800242763162118491186906756147923484020581241791071245094667806047131694426788692798222201923888496757618496263263879466755355125159624970878101201299599234487701755495231212631778439868490682946889718804477429114826098020394842131723262689884484602491651182897959745218256631007342273524744738864053963428733288596220499428908905076851665859464754452009227152598430003798680150115867561574906943667527802162895668614969650931571171235900390014771248382389999656581297107847958553423914085763642250803364776505269471864784497691917813532131425440347410701317588263697769096054233433899587693278785414067928460610393376910591150404587061126428707983178619566508507611780279907066262526489509790595081706842183896730763173228926781559003767644684657700694146384101959239375602708827488122807470616037363011132361763253316297503469273716078135500434943609462610997136309176426001711410425709463382607393419550551795077904367614787516779015763977471136048415287992109314186881610785864432468407925561057211251649521551525996303723274653513448196807155772257589834116140948011856223919924098735022600895280450398560118590491904960032806678641529199042468111790885182740960112671342634181606670250693211919363975183959269459587602419986030780309407780201440483282937098732864800146773587489996663538882903777695980411385879104135123970167824989607387015790128794791872340123151886718700706930278309739361028854249953950008913642844984687288088581581496554149011312388894534178026390036429171478557477592086198101264147227334853072752134678560442283880922973127248855325959931212408847863431498516777330410015303035268090446483409631854876090726544653087082533390172234454789558491838679276707102377245614460629016893999325152519030667582315060516602477780789786180138558528313585238438714900299838904271551874007817892885528296729626272257326509890000120088699870231553322416593310450005938306299220536562719659929627802263477641419945393976063407351116433063927332385273346498665092215181719646415500616691149172825944898218313417995947294507881681209076072757627010552227368933576612229616225956220049794468736326126592630123909602473055872459242100446289833977436526904692179758820724592696153433143507815149994060681629665653915804913262334666760492183240408150219570989477785975144624190174246974637547589209452308904956948105699902187946267629945073689199907149745906557883710242364089287375189813700232330562170367254890976172354482581179862110328309780069437686632579655286351817988633740429642686501132408017707722192403177209310274638924627287969266804567828937423695901403065654679673932955816104934846558086315427696084378891390838525050622700350852785774361522456037305040582887538289663578140828509525349689478059848511211957233799779079328602894928244655391037293003881627678542297696012615283903913825968489270502470409653760312676113114249436906227802518820812002179673266754402987810065032813205304055161493186337178559198595203354369594841217443129946951910807953108431341307991591658889326223175425957177755535602202859404006291878702072195944571142872026491784262331847279049870206180978456395515771305591713531618218689565297061875595966512113265640662833522646494954523670727771500466957553663847147213609059481591873804735370445831891739983491445559844540427567864894633647428716303508443571602892434604588827812949353392642933032896912751791685794945949657244080562785907356887636808907510119126818545860306681684804370620262121776905839692147793240734131773417536338435895300069247312023941663779538736286184943752045286453732164460534201293114665816005221055631172852975750888221004816552634899889467252135979468655523843048989266650246467692988176712976598824428199611663024103975542806567408424335967613323152974533867839927644981687716177894100055396498474453738985769795618728608153648296286461026553935293746557730519924127637648496932978094667214464473258591439279654647401006085341786581013658755069017793178822533168038505927278909672414287248430562283542945038939566098647495816486986787946072807842981784717854466798048164951650453100953051261325678330380866458585133973239272519222266844141702449181519151367356572328414486198588823494267127626753437654348461209792817638522451399962530361783106588905389304585633396747809740660137132304902056008299454046582027751007845701564856522894727548729459949421744663624360213687173624326612526674329973464765516976474579471409132200546818503855794549142617599111769134184979281219652714239532859499900034334826527918783317465082750309150110679231706564618587828232134659947044124589626121240299319498333674204552885360673467805095472477179408219816232365408157146605860861997670844155026073771988826235504827556452382497805521971412083208105367850916935506119921113566077372554529777196755167116506182589641395797326654098467149748393145396048133393507693632175453110267150182037242587431611821150068202190934130500219051986068902604953910367229445257988805882585408425549516926434814420005675045741927586191461296487606494202671272606701020010760631141511085826269240558199100849022312942451177198945152363759113307223648246859824965018619523096899652709017856717215535478494398120301317589460475432906895083503860271454492371845252560325231281140284036886298421024962439738930395553194396194566692889410733172614742190767150266263019130548910437161900376485356322333186564273810308821444867314247847082987995220852072919993380140070819012931870996307823468281178399414853632121671168175896236922694343542608322782181631673687021943371469755749869474612937845458459941927735118219616900681785239283784117150089717005934637162860748059520082461437538356855349425893088414640171230277960070418532004228936814035402674013131262329058815639647761907895504083681866166561759536874257633644562126633604655813504166426819449939048773632684737247362922791933723970583196890228191175083823834045991537943596594426998358608468423024203538163689523539430996885514974698445906202423441567190490755986346704865383911022278790189511519208876634688346568859628698271207314416022149176179868038795126947265223154572912786228449264582573847183653032350943909842741538298030868179434339353712547235933206924183647061989277499207106612194172804434254203947478579830282486216028537607489857239933273025661686422443646768103353064766891285503030674171842625748550506928715368244867432104333874400459960501821778606452861332769217220235225500844745821389808266919549120448258088450894865490421898267960790354481357663257632860665280785307580601122498357033013899359073096443130012858613148875619567259795617012811900221466483441214577164629249989741708891659821268271451586622115100426628165074397330048283444163961603355779147959194522384063001492012369106749266936616370073861133693082602741488127038246254867074891801845291767356770744482451486763817330310381038060035490557784688434764763889553180778779290410874770907182827755436261043180684793259539337513099841742944231782691998963251344106185665353489546634865648300897420096176193765990838130646722751024587910105241637008348164772926672165012812205404486448135660617466146868009970588098475403208465389268678314127689855484782857138075760372105974232728352848455728922815908471408079887358626251068618369873357540795078678304396865647101630846177625536894312006508153794411595784906476930518878599874966091474164601604514440102087956663518654106739064990164807050785400415053960023807450373301091998047835158024839316054269646413953651025264634321036155081323277915785698836570800535102833554966288171485020534967424854886722911677646563711620274658204096269000062341409871577331088667227998026369055178812383956340271426141474185192690321941857798333221496251414129478908355236539062182599874104528296421102026739870884945951263282866504430736235893591783060972334601722624485020413011576371788388404270935071107417945519938209203918142389964487887464400745098083646250287724751450548283336510397106832336422097011177055333908887864492879244005406445040166743512161614874159025381307953513360672404568277980446776198992939928490533580312187939106867570270072463191715486163059943155865012176079606738254486932966822835949678243167998515211095173330806468652340543458371192581158864225090393632409041930145157056584582801909569882820183145269031559860656917900846156553328589362369164587505354993365743247234456061124410196545624434182955625209094454869302973187067035025239967036815944633999339685025618858608303000019094852399809327080459177148007571716297974180775199808215923508089008726034408479703703658190688304943150885827580231260919065187335362201311312033398260946668607547512547603751786873362114768255819127174613754406714233273377653374254151566627535399530646952999123231605146811627142115398630805238447013237832260914746130981624824539436957429325571225395307471031896016052340486240194447552385198415767544851956956146701875499474392386855225125305096306204237948198075556549582346400478290673947164362458812038501844140246253804334970248413080128588391358878985190934799475991829689303049804568329709797107929721106887121354185401400148785957178529340395068544591130165864442501119422384604181646647172189512290289045736637620435054377769675461699921271695182161119648815585655772814405541300719925355428269390507426687391193595611056641824815928294925208725402549441754924988849721761901003935370833349769236556378302490632819238468657527200554945170701375436565151701674643117331725835283766315620677877106158711359021652061410211315866470354897655949355737384529900465023126518257724070073579389139612517679854819030814846104270522585788586479544133544307659501657581913028747747249050995139206564115303594407467165715173865863829409747062699202146824556333169840147324493683690867226581921578647494204841885719000912647078848330201523841268635025305924846034580962663638988507126269159208317596166687643151242470934082651498452734768768275761131396071364291343600468385613325234388579216248087389169151185207259504588301081540538093890555487014175255926887047468845640418294885163951089729981020790324466096310170257147248385643980051852155507650647509249448783924709344599631087546725758501795143863845111209163838342342210026044741478087543048527607099649740940950355775195677131378488839956047126472261280785171320667956442021890561266799292145410803249608666232962504500321097198190529125191654027382388649991663563704044197359962030480271950986304855761175894814281298028920445761195080855808048653821998481433742220157942894902196753266648082040463355811993674711994383293846565924535112344058020950103696495867942214622342885845676078643020759865224671791537783490735604092586754456438292865927862959265938463589770244817951846144989231104327719422334418715198184832276681205798015107172678460842616416108928434635118462390834177468026139328150292367449442684546361004412552886021272538835869416266408033583032711550278978897379625737366547221525070974908938917446954841721178245375643733973500220907489346469002840464129984976658499818405810199920693817284625294101807734400787633078403482542352721909000309864186394057309167437681936715833152376198658951751801140022761505961036508420455046251687642466344951929290985644511660624121100446235489002791806443295768772407878918109798067021765307963740781415916519864047971111271622091148455431008034416818703180901679309701603931368120988234716100642906671781322034053245665937670580112929553828089008989226174750548899466044321654511282509105375847704028349578771561269797912328936893617028485463418582003089513296069405500387989709380890700271943641665142096237162217800532714456834138644630958342665997219318554154856687090914392439942253451029181516530331970181340839050836202784443150919992804012788491139789017873729383662030519127638588810680262525065921479690856035308044200467995364030352650901521612607613965346741574673973249396384840157388583616821358029566188843189940006829940155870893145075088816022549784509935149223802240870019113511060143148574654228340106524991484521228053989320276531788202795794834447496481063623834763157718401544729082964621855032417076513173759614515904573263324334950084115068918032971310872195828664924521569564138262283699604779715284496432048017672903683262561875720728527604737150066486588145995747390205818840665835683021170330356233878919939439082748811977237543904441901960713171978092853969624883696937094804056133946347050229605000374962468031659906389963188475741671761220403345234987362371683364760674702754021062073919282467827879343709198472077693630839297412887780515315352600964980495733211326084475852120600648849198361002482827677330903162439749017764575240872550913194469002931478400660456609634452332315174318347671572930753403713472077302889421262158090767603385939557753036725913119380796335526344129203194858394053620796972434546792468834771496812541894348507536140402640989385924700896704165122053267311767316270010915952452039643920786077165591713142838991120564900363918218498522882455654107232594874896995145483796360505827541150754257047704202956478436343662404381478351292304901121070312026180641662679405360564400388639503393911292090377156078319179390573170943424720000005131972543566791235829384633987524026147426831354582103433801243381245569849986018101938416633490603596830540878018706420219436824474684646731401524232942964859667110710292055030023634048445547858418626999535593769437660922443413964893912767011388147300383941790541716936592171389308719305200512789110777119163756296723313407199019833955296852757926427242174525511971390164441407877766763067689338637537183450972452061231982650186547205830847559856339493466494317193807874628697492359192604530723320053178108474872200603178490100195789124490159035011197932122340484005783908711697193180765345192840625334804288421379599251573457155654065981721674306938931933686032938204112194908764463442697897777090149541087635783661412053076642635780365421635031134166849664899117535336231038123328482836547462589799694100933163764743861832283442747657594844046335229140487835680973149550447235690332546868910397989523255842720153506239405630055278256026923937059778038883072768595968548860810294505919261977506980359517987284717569206948888383289201570406180724089581711872320895782504610900453910571870269317438492260192732436838197811407977895905817177930867566279983265382810225393507275403464976981852874166452268619825945403199464374558358068004447579280461804753978450957664728564749330006075663732317908727707238969884097094338834940055249375061882178402838767731053650785052443889312287931645229198383542090575216063051239173578029920591478100071805454228922366417078370846263003920272798211431016047396495270023868758921152692271477451635408637957689445444841501347205679849882887279940007121792934228698230604208346085263311884653353806145036418038661748471766426264349392345320696998710755854581933952030324706863304868054358312131284957212541344925853394091019907400894299261755389213110914179935293334672215327582995646186830126015622485899041172647675715233705524138114990386285427421618307397334440973597275830797440062554147752071855883130970892205219979775120373646311758729942931841183752305204858232002210904043358991259331923399424888888229649364951846205183535159203272314069950142133331000596047432625479553487099594368580160452339766125615197949802281599882241551046822821298029818493022259974198031973958232210253907570924426131326092763743863448221237437981259966327832817292788737926645279974084759092986750638720902178448042459888585849334464878749160054609514227636142400448165689882784853231462917678761508103907376664565789007764638066694063882614343342300631044485552960525127729087943192924833143273988161851478928592202715206347011365184451033921844728343704460580985703319845879783883730786914398512298275367702907976367372276043948494205138297118123346686384909106073181929286608220615113104351537284651209230406944819306095970490486064501263384999697846733183041976565614992262547766921962331052398851877511982748598325210789446301401972657172182617906364354656796254445789220853015100690709840817768049734463044966061631055402311423519082428453610107986964516360013236276103385217406113151416309900897816702328325143832583051750766906799773765439023921972093315727091225794228112074887236775097868625149155301054335210931695860259957650299094329592554138493851246606856264863952727814513104658930610505044684993222333138251720471910184032401841750381087551626391644000306547104450749130010837538370291922460605215987872005400832599885573443816826740842737277766839451945315336610509034634801003966909219884406018143744315351222672661144563724104006447919513888252074791317206593871824930003289110336322796331617725729636042627437981781018421955080925705084466978854391829446883031084070395840629343062436539448884844192685258870685547762838545612537132346470621323701158619602973374207143096205277571809464571258100210002877755624581847119966593910446544274636081581470281380090011040347196162856706087652217803583561236064626217160342566013146397158857911949619460240844411702358492536810315571318565416665297124810279062971979969793754356588240752204809260171067090225433780408127974803791707716740590426505410857459523510624694472884511927062473108712360811830723799266746750481487247420339988750786301608980396076044115834397810706351502962124123914390128989798577596077567820150650833353019986466522885617138035566606271247716641940276200491146607616694175464778722596963148411264248881847146199742661266822933853082085606812414910633684824100878186704820885794081233103586296768727535801375832932147847006720677634472996106184464307806011477501022804128766828666869650344678137763840504236168615528013729520135650662729651304808765779482888528229341230265721458020969083427940228223222849867240341077696227244801321733263939713409577129374234647556121843094962862910759157898068204342942298605295415574212250117096579482580276458160924316739461909883560286890947220432704418225109728997040428896057372917671163926622731339568006862573188697128440248887980033399714213415638597280951535291390809524085279927195285742663626537839121757153460673648812991460564221765393046983523525763389673040278464406061225098505889539221719282295673460510016764957711696957734372606436014151985987046134867145667017362322184890676968881622019983435255006597659575479568059976234759789196115169684451033702909392022940958020032751618643503984609886859508991997475705065368101679807166656986489555182976287294269973918840945135369294722803800503082182175699072270413798357062734746773782996353282704950193285960683213419048384006923886975740655682195484879818947331496927050806603143292018297276212851017335363580819887838975966058248707383177233956875332479683230177658370065124486738878046745846150238176545418516550483374548017401816424469451997588074284784868764836684143625745230353464863941902480628341880480806140244048046068165025983539550134720240929899319930562225172620620451137257839185561464354962214783971117683937001727435915426882409527187327639319696627203562366071089253244638987646459911790421825347807386014147732661649075255176884307868529798332787075179508488000833249802296009407793326146427999018858758297885850574672300800111199262151734747912304668108003999109767976791827275735297157391238872312737096234414732138748829275429006067914988920551591020943101228482544584375937324473864567503778474906531382473490331698766997179136394960656315073707631049890112647355225614632261634419483222025986176164407103999786849910056460740199398584392254271169471537570033730070424369534761420497604781071982135553634538255120949925208423846375896063345034289683079411565298211766460315566792580579793306666882277945528079668038233378320336612955080024182572524396558093069943622694857951000393798033769547453371426316586278910300102455420570047192041256609131418975569796850472266333726434781396504421017181320878271283353636858538099978745664347984396026927558349245170199566562861649177352616782499881228487250232024701591806604850947598419695321195572134333235298726201108617688780603512952513896998452934327675599415944697655751123453941297524048347183391162471579565916564566831577392183081233770688440812092896535971210614188454605994028825418275893923845924849462106383997028063790629334677380720781825773182790815318765893489181360903458197440558817169603600518743921393782461679124299518141958327341370893476907372772792911602071774104028317523778283573011131175947176939883242262381947527060992889512826179515525462325349343753001684046665671205180268674191707995401148124157229723009228090046751661343201184322068235850956865041022914988967815198490676262202361586469322679679862929088674460210062052834353600062943025758487201172837583007090858616634541284907336063512966139526248595657345678917645854685134053949538874219813022371375191192915541577048235910369213608716412823872090330644165761861704916239862529221462720483425747327619662113889075984624702874828504317479783827276084816542077723373672677278553740235370986082609124294129974822421207964740767137833981802085707958375498973466103856916282713835402795454449605919655493324224654164145822604685157215991583084958157951798363518578171392317628455296098415155594493505641278673546087801439965488390235775905104409556432842807958085583303314920109041689676026267937882479679529939902134782962319762245751364769279900201585903849251088336872399243557546471794516173210771325578725140215630428929497065163947815711982636484755785566582644059074086329171023744349473993545038882639639214139052891027240024435023270560057178764667962263575463403826153819717334787035757598677226822569458896282101705992295230507248444559873302409125648588259825311661417400383921240547558125734982322849265385341760536594625334979999488189075020857208400228438102873145156931064411968262311029051484034115782159849373933022102861943420099717255319772581517536716797953939047434864300353963646100491640629158680716678242952821342792176242408814957916213976532981211240213694182528576764620399249091968025832455664978406904863506101250169902437581497703861505583324750119620664302266765394201837621058382580729068554821447480108231968096485979711989728897353374192215891198106622465438330863650553765873888212884040931725514023985055969564795488470536927019552398379912780490819728398846876881184235358196940058667759182803760391987011471149040965657173702317350556287645639642802645861894207472967713488477729818063283581941793005713471057713967986267724584663122692462950412163613881951905512128842759986842649307085774899384864512051840425097334180408449181213792423641508712592216624888276567749297475029858545100635649337640952127679277878419517728696861950342012542216189314895112082801045456297383972934432083971709981020643478919266159322773283475968348830544583866241564144757484903867795556118566282458319620182908530693632555834286557711684035381765562422641275520549567010142196386592022696779819461324526511529689888231434824371997753861967450214489787254160194461693937705766233564087039940051227834933503910251504889049525796198039687573165048042445922258140266707801343969309904579094529010993964965618074975970074794613641043163524667873669592914754400584067132911375609214572194326252983764669195579264394809533387465082789873678574472531024130845839687629063449179893587747905597746443587888773839091283007991870929850509826817272954244572342593506049207858984497800648307790097019465957717462601390751576573102336037135019565746570088393418461258496086955123698327328015367615678306617852184167534810490243709802475059559572737933500091011995405076108053374052541211209586457731862037835244638415811219928737064736227436331245002190799533775616807782228397423871686332307985916086308523008063437760845001223487871687106389667488640391594399831794478140929197629273990879232594341762565057742767196004490141149609009087618205616117926313768492003804870148665772263319472418728203849208823300390090479225880964804779567884813219447966941167916988158755245393783068070429344786347431593211530991169182826272543304660888323850979079901967595242572385808864734798574101335774389280884058435082350176223028049449166731147351296352393290231371856475975276624985023322530342379033996994003678365994075045682155306842973536465535074908864654543202501098344305068143067454994374507797035242203485004166858947096564540240475111700134322514236960920825737893419421947730960911592700608217860778361393517367488350901381378269535096895597992482767360073878386279792603690352927494868479352839079306566601386701033314769410174945315269871815108641685158825828170051574749092701743484194744761456005818751104432002365159388171821191785975212320823084606245608886405163436018536767252590817176614096819411303314211140559912380448537878733487677464474013322855124053731477702766093684211308821653947264459268851175969987197114772623381425883243437752914236701088431827097678881356896524905657641496271675477897237106352141000387978725885676138973517236673308565967014817004919361133260004570489320728421059649648042770361121183382296229856236805310237353454139323707735054516519593332028399690352516237144515794404588957325460047166741983807132552027040188386521007103424560497968442250809547135280342405866048445285759446596617598216795377909257691280212345250748004506479351760972248512975156608645025810565508830747298784982480155653199236453975033959905040272038949685548688696218888414401979055552084668925012945544767327488843773176010724223978103771204560447346550770882789703122740955099132012944266080390215471974652995200530390250253684770683447681395328990149626381529077386579811804500723308575371761509142661180427393191654853416862723163698648394291889197526175702590795888794141285309631566529950890643143524527664303751937113196135473712703182778143806699412464983504137178662981591122362609080589669108418702079069335938580892808277594575325338835915763302748743425293150408322366526522828451923754501617261304806370712304443446138984579307640767986607867457565321889608434359930738296305601539890229822939106379633754779656475757378466995432373896917112048951405438649036445284576677116483546686448930694514237348235532196457951509337915968260920031101870879262078839615846371943275513582022549429433699805847671233090843115097825966389642196412620535610945057175126332166711783744360653916309750886036926128978863749392087654225482948145331072112515676714199433944061006391679859482593682015186528949496880827618257683690700668939344755844932910489326766676130567267012480602519408463820692742064402780204309062389026885581777883335493022713183030562145315834541459459418243726249960494094784704562024031320131602452957345335445545299533596736562512514362831216414213617972737658683927873294001925798561219583420527670960243400146333849694859840242244565415998267207751996471133989378641164205115416347227006839491082519931036614081691932023856379118672716655938390789233232112484805441107346487409575388215137817384100211535146630144925154142718016292963582971093803339526316886401619753908784935106162366520197307867460569030519009424851895282857272811198119071431501056687056943955112851686141119925950214482678626566229336133874525732896748815591740232514592768040553633563365213847315621958694747741418600146672201395479960456523259047873312992856648708945525463212969824448438989551957499285048980887464993640943483407045266026766169574277889134637105325157382741890154995286799828862328150207733731649454717886345086644951979358222823759846718294615139626776869884186615425959553604274776607956722520711630413610782685171385406482273964591352798586392922342827072555505496366977358271395266431581583634596667946857193485432282428843378770921188784973540552827249270811223460935082505969816381427263224033880766850408692329529614861968253041818706409483907963761589884123401085935535142049594179291372960393932271754898358871391073827882574079103992745147950359584461799068614873021551003509548164076735687637528438346354715724408491795044058275674866065109131847633057228186415764912473182401908145259230086508753991792783261358517887243204653662334193824048407455093735665387454614827605102627474568891951159271454873646406615903929364606301624354304036533947909016645700024792113475522972445649709843965938431355677189752224059963331564188402749315004966245568086848379414539219949349052905802986209270082124012855124858256550033776878395579029315937833947649193510018589427097673431413295934188844071680957221299681510155145594730383985644917541068909498263569092524508602496559483681375364695564128556284110261855621427118894882821193305513414441722698329263218781423979485759426034398042961277860203656137647566015615724459367822787489341915875236003041345163458133735946832448058319865494854745398129560575825447711290040343349807159209817975142923160927285201976499419764003834232208646990619847095812498925020626650707849728335179107205694413787256515048288759620105354381328119225923560396168689622757498067567510914235680247284563288582864104291246897586771153258463286629901478287511888528022831713351588432208985959937607549490661464370021987449868963962754882684678939533625267951902296650902093545940491758678650236901374959499578960034776972807366584235778800766978678659813928852773660958963939174095423372289331912404243054270837099291728026594077441060621650597530164809040014082087004611907080502345871382870411851666528498536298515972329700845302199574139922006250349510772644744545356926728842952407385598725711454277616272381717906103646163947521257638809181953605692988982679057808335467950682145210024414469553586442119414383547390731783706969480451066866621525550458088952916786623605041008245938791943949541751102739413234486640512661769142788299070660523345410972987375363733868528576966961429945968358277023309077605551440911401960864804814280657158107976947654424279818347476300149442797617745231814976341016132475459824285129850754348058257623252492955208777413747711027932218742594374417837969801096571437757387902501713186177192336146984895129757551945233601416315028665948190801830438738543839521500820913537171742223465397283519752675908012629631303174302372263131756987508680018441307327510418131085312573750743897428662554489692368412555487255192313469567643097992204988112914155538997813151347059993597555213801779808476837919689908136878412525146061940669457743624795322950994172398530508788504760542305625288901064157526952100975135508488824336005639437736508175957922047312105058425334437645060879172106686705091990513003175710923600159666981139679013032331048714249486850027977318575110922750456789677085859086151656862321175969589866022848491486441386464982682608981166444033035067179293267802586794413736686241333438983229032445559800546123433723066582061440910471074346602498558558899967776701384154230015028753275485731531285791425382228179454299519594977628820900286867002942569602892546833569284704280320943372650795355605857410204837459323611700032601154285479602649591752940811424618600273915428666327188864415436447589872947176680420206302835800586245026260240264766390523931663916115148763304328375871141135505113240324153371684124715142840785956322117113471632926549931782704914817917008246684641367305482243078794965688286001601557135047904416324652177326668473535194651088238559688990718073224269935851875628958399939060152901132584663518667755585004261086889928821919425000083457592256998681803723196885093256291750378556081090214982994675449239850225797253151907107581221510779347577066611122031245804371098195497506519069853944000588675969003175818292986680677142433095853752828522572913455823463854295673323093358770690774469954860043279004084899061575300604628435726631248070402953531588074664447739787444126890490027310582560097535918795039364999692610724160167342052892371725357894791762362694195640193479951989045314413237434761050637327777231438270588479135979622859944557220266947690651808547704663671351187424681811021831914420455851420420849118377915622904702299394007138780468558860344837907932391652255850157846403326408964963798841736362244976726711496719043943520174727742286915538345042725853844205438395469584727065326573982026503608185981932824047378514667061084896318749282651193852029708246198686180817685034945883536061829064772387076078683553556520791169219989049530399841575872366122919408003393978648679164624332117880817909605668906884294075718309759719966809121675361706218765538695969873504793578690363779054860885652277315355078678856710353397336614010181227492155618043685597248722296288422394748763498304556234304934334285674123834202752904720510323176643195314101935530048841414967208133769120788943951312499324926233430641632087307437796757262511345565834589822814561619583096020007073578344035579432987089327390632647353565982876084628214059934302474378756241122945774065414363050241558359575203483514624869018671883906362056846110938124789164307892018671361364401399964006722628456870256980172470498077774639086901552246128061552322880429446170852170179320775906690306367493555850068801351482535510210487563637696267144762091854925616705567254157328023304889806713546891289927378010560080362028953556632142173977045878207744033186324860246306001903533054421601481221552192864489587242656938975738975378488016583486249745751402461543743528449308167027061042340224877646919004753686596757622780467454925533523971577216378340075992146855291069161863302211374018389038876157955315277452994900698033666110210711268730208049013705399918079959306684193924238644025942108495847411331689143600612260285306125012691861219146531511351869810381439183913622773226066020834662073502924099327943353050725921250144667791808611680009925630718718498056712808181906405362647411669740924843011694658228283251586688677523934504691942476449195400996351721612828941434486577112729921454225832191533701056347836416672509719468544778586338713094112687718678455784182732264072346948751183990338087796067152670260300444591687079824933485658707242662953912420396346057292603334345774845584978378508467698467669853961971032724345220144679265291913008735444946871827718233027952678259084311749915821536697897938930489672703762665017670608132299126283139295801438532527467366310054001947039741336472544055253112682197460272757030429184771075560326518883289149935042720621589540773278625495088659741125850939585083987816434909991680947413219246240528078185423609594954011982612399118382470047771489976085784689422080992570102147466134188384669246465509005379192275462400367020858381601507675440245274894049375799145226340132512554487130753388454442839628425630910192556047007872197900562172974686128755000070526757631135000271029987492331412985830195782345326158186453247507056968548763380360521185828551298758878678010984979588143290634176357593066183665306553190463888190886562434876482103642946183975865141926410141772834531616769669228331332278841137280410711959313421291373619588631263395892655813535379481469619219185194181208219697968509218034052120336244403978046945412076503741100644671544139943231684531451615785002500163748377231744998534132397172641575794537286306536684243429657969555462024793153209470773173910831897564059486857005012971524252435948639497025636052901273583536462613176776612007848615756331896905901800733118532716490482830288938031989743539251411685922004907982343071699770095516819448224861048432170462699214225060012844200897585673471090862823632204402134770058601328282625987838093555287389595770604717779726136418753888241544721488953853168661894313438518859878152537332147395033801951187672184694875368815626289559480498600472378634558434937646985537703528243014270135739097613290934636520601146030512328954576222102803273418721100135230576274682101150036205431497878534121734082977380205599207523850542110366971241926833824966894702022364694618183344789699272747146700149666160068974685947144366068085094962170026602509175512535656887485870130460051998733741742154751527132689194565717693258896762696413518574840753897630300964018576142548121592980737774222912369387335328106245859946148166003927626612569201763881661723043854279538309501153051958724657738623644168860098107443414938836365791370257426221383394041917593759225652691696555573421763850589448904159403341289920398801151141013687428169025653702806490433163281785091462077230429961282266422856099249316511519177963994492389750076207113179519620046035278191617065363724749481073162900514623202924634052011896089998957203739489946499536451357629882423029286015362431598885785778127300499138403709853184992101559660218317638013106696134964730600918542245181858879090578977129632929075271061571540626778693724463965196576505229417781529806468161967551203016769620308634295366805449688411552070611294607740007002984099168089805597749477904577328893579882327288051418425374124399308580793116161291300420766683607432038643481161111465883078758729473436993909055199164231747971125009954391015513085871400139461328793499392426045037581353014655513898190189703330261900452703946986605625247925900058833510653162267089797315266472910977226386763944548460213556130801931811261692016646880688830901282024616892334480997670675458483904670079522851103660434136036068674008622167735601646427332533203573875875896225475245749550557451771520809896808518352693980837669643302018740046903934609498823963293260577420630348526392899085383788704757661783358976444835495473387430871870798550976964882564222606474433161976798127308672947864224206847606425435211210720639680874165313426045885891790319969347544364437051308724265917516498746532683559841287072151146820202825116292271812894003438264528312563209822271145088736430016879624607196450942616470165055564301552429273398096494324031306298156628125566043668653331555546104645637755409635550354399698919652314921870498232139007697391211790285074894817939676065804966683531750389378285747105903242079487287702501778206707151069532213494578157078602757936936667801381754235282271421367974101979477309383955961217322997216054773064209175386152094146535781931982075067096982375568360790909433340138547393633888670400329757286711544602023497507974172021183496343799354909409277027392184617138633989839443111926455325567356958668365080214671880167787099667909906985305122837454640518563858542439813123121987584337903460758261652207112924064709134307324522441018334573576899684925359699035478678992701355848932664627176678974554892564561450752855883063523671061620522861941136215894374071882617128939491267028565556712547272827986834531524124447647010535251078174473801738334851699286298998440679731290609288810257416631492874889670624667320693710717842470301985964315571601931823521832563221117881044252290079793365827248522637080706815328306674125688366333920918272212094182456881233936106113199751986367465406521497366370116531249956410535260834601743268506413163705965012255800457421466116818584800103901870108645912328905916611918549946427490301395967021245406891733039755235741280120888964451392760564347669418631541199131446139512598172612709877049158225806886429855525702795175537972102664992081884831076291357950880143956693139448569673811422990490077399963548249490763446415057054316477689335252125009901133719133423067170096297332609427035197961236618216695018939205924888634401209835052426811891767670934022618951832562318194819652736502083300703624891700233242045516597615013250832248439457721379355983954068164325332620082270754139272886100882132208403775352307031690644201942419558213669789408249198282486928504236601212597229034680413329383599209577816810397611442833089465059938701772909595281374544703811870441676171277478936165046832879465127453802544331806581834791090702999028696413418290529508836962582057505135740718563999889173742211764459545764929221002206311085953089578006390461484316854626644720273054889513805837676619055877681093781637897314870867634404089417477773934162056667628910341611610735318083155033008457275612760805905018883681987513178989719902026898184007551010717667584318715533393204335524953356790125349097267601481798881537127335376406228950049492726417338923040114247807533867083805192162550206153721081382481413931152413100194672584653344331794870770645694881359959794713491641781911490411707495890761489439923206050200352511989318126828158688732437265229891076125520728236356985875124740168852108426514212076739194012188301608872524941194166062009905362287582390835077607434965082102537718576727112889665663911763359867580877468663077873557203128474632959792832405077015157092839908236836772360599621375451316366643590741468717358254963851143512367727909638803693036592949786183828205127569710937467742201892171770313973853665407748698137107910578130412220610826053786528655258811702366516933107878891368481017022803741586524404270992679774072121697573047392563232147137513715577395005209834978922339634307333078022914907501643877114817050936387460674588155843166453214245793781542601365841099358782167796538840798166039901797715159506344508655744126616207358259769971749322597998154417485578333339055727940951032971036865994241906319966724770400395134155466591102824601057849183448402316226023340572437108280597552647474869336080029124518730900332983083118989763918792254963141250938071358902084297466013573780780119745834734050761080899872071349119565404211412944825066207549639460121623490126532678560496067658421632215747078971202953212644060074779641326208811346177996076635618617912146453432443741766482403406372961569843804154296804725553549860923472043018482683382960927140225885333742108308362947722874161649024714356855044112748765434751335348367739290461736424011020050288301940202985420948441954704442335937035705042954974668901783384360155770716776064662579170601038511732141134979702461213009393410111332026430120553361579949253723874829781810169623222684404359110614552738466787109990918957941262370650039704871569854987514180652202325558172637456878191815446041034736791017773971888907202321741477684139725110327865558278311175832831853795517013234236466421385235784323588366622627125807538267117629552565212676129546168682707771890098932135303410939710627310926763901474119427657685102594403364693607113777020810641576274209402299992976291562238193978219856877423117062973252872776471791085771472920160274259289259162868362090224345099794735957006970675387634434445372089035549409829218537147703757568755562222576354747791175907939005032059292991456974804605598204296748540327679554945882327553028989750084566924368395815141447541245708273375353898260422751742658786841452543465420307832740228399310427401384641453940426767036256201926643863830395223656190384498955341575675008322475594719727626852425155541492535747416827072086318727894237757010772033713197121161673553110810762029220159182638195068254207588667305564400068536081324517901932825992800934327836383497134953619573706771283165893416803028092122628427355165418293760324928877304503815985396312047975187064248448019153944871625555488691439179579932465739465881672616346739388893021370697107787321075934102948972958779029305512824253101200683197707669253676117100232571682236959171983540870715440925065871552528145670079735615205987788458315357695196255203144009186014538906535469771403134040100147838327548657092608170744161184204656177947306116509696356526824005925245814191789341473580094950314049258859331188834766605014310477513043393246882353558188686915579273733178100605721381315995448111565677598252339241942690227387076323327939594271884622853430071595405155848767561521947484044370341928743880222904173520556240971879330331238381348852110588422323110806646692830666768198287873447853919706510026797674872311651866776001126830247589651224976490329511941944515238279402838657291557779648248732604511290223316010335569697989131098285527703386702795552134388452280209423427417401323679388922144327874516054199944557824072531184341263056919868631587107876045564148431909145690553572548980371219407568704450651064069505563158027670047157208452949007240994454131462172052236687943923974068892105195783285485440472005950440562806269100720638464227617892977541400061836412291135999839054197271592575232934426915580183443067599999533298166178275353289983440341730097497399075048549554952831586161402153038096355125951719074841124260103542869384896070892395216468130234734215794910441610513957075569845670585464445829905706326103482403038519668571378557697465641330966801234365274710750708712260855706970117472331924487373618405148991220403720729437917409611040029764703785017618401514071239567443061740952022920056894753589389603619405101571875661439294280721064665553791608970575168272216369797314404313720752753661326369013790607202451252852329812041728752408644764082993455772124631994202044032855098452956693733000767462174085315208595677010765581531149827400902987799074841755316863979832206085731766113944343135259513928062458791862120875346629949702990044430974380437769048672890851309233433326165684829581316436755655281853679368119244790231790479757633874919858482651602621212454773607809695962431409010481736066973075561060864644327451922524174952372045510601406597785730574833578281083206635521538901886640036167585268412036102465854799185050236499237201851854551784838203465116225992257165012564559433064817144864118719594572386962440576848209841781125450435662351503281571750787291745895532790400193649587668653800883783860832999933061621998083107736478356163053799155661197663539822677809383704859033851925560221010110828917096076827165019089888097688425974739375777859958283669338496376140250792901390924301062774222567552621626045441312645568090602933927956787303117132155815344752716565360908861446351904962348397293253089089244435093555009374771627769234533361149823925171877473171732147204181144881868451438038174976651600335299497552788897370300374303133109466327244175385611275713736387653660823843660914368977861219348325249114696875424285624466318377587082465541297642563434475767722734628040995745633620149623910275960624646618931338561955553763318484143818924603354889651604746067826304107868549228887701301895904959449279489951874252267849339293721266980840654589147885413517289078466098921129242991272779637522514061384476866150997762268018185705732829617073560351086942932967230113998008571281037155965365728443280801477731644091822851018638923260930460877532409418729658939173958202954521002076982136171259623565275145257749327242400587240469320654767090489082949078397491525359842068786271167237745334399276038585836148980939952121036660045817897418710993474894518587290915353477352811878996638220454060744681708851096952352939617774417661810104120575561175691549348488487047695158474300691862524413988493924181566094502290450777143263849603313175193616779375357892685679310547698879145144208524389403373617147377005485494839379059072469399733176966434363805041813693326564864349707828088613188108691073584844162628533844285860317234396598117041196247903513551509707905450515630889930510144709424874632818913344142467173233487831655665527179711452567807983632839703415741260313364370936538948610374763765792004067472156550136784605063971744192793641561687150603305731568825257168665233123633848547755877338156517982226615076298670242920070311658856450644170509436729788233898937198544463452348953742146287457410176810184003134917053573948947548629615582801156513189166642546027865827611102067491125449815340274919577461314998202053451174474202118423250111507403100971591712896367088193444327639462163354936523543176104611892447002572128517242155386530378135350752535282693012801931348423538806976732286374857438516601555903702717653579800659455169688066625011084049303511114323080906457762270906807881828086890678544494160420529630703997206133838881724372347253529356635322442461318511025449445737097950264997772020906070074911285141529974023746431746473995581738922092691686532821375509477427781578263591954173714511567055060118316061940064578339834635833163395467477322006548330826818571223726675052348195069926593469890921519354904450314333982733679022949507703314004855764340055671860713506662710878437974801055483459773425482182600100622517196543343253391032145251540104367157196742780338316424923201776766161962891777712617604108060960721092458504733817191050483543760680248092699726418972421923402783784596654975145788191487912289053700342970882446814997560649893092798519324360901207450378154946763213251087347451501627623942693681443128342423052748756812326683297213884403695621820966610515728733782854777591506620867234020567394040691615079625898334280977557800722211093090022373319483195325071415239332096796495385060710432754731047941054894415010898359036973816693837247316532006542481761848520526105822893001774326128127655923314633890599738011494741162762601555432898649301790028474597092434079338755648091595903211335622498873179367882874253306289912360516502206670480556478147517290854137703908335435317282646491230030081217133493759944819294445849014094015101032403682838215588036052017816200150353986514049228263956358789477847114105351070022650796651993831417926895760793014239003881670492609680231942885948359529745595234431490668861743133460378584224593182073217228420572393236326789763692759653427922031784846917186795802379759701115930536091128639625177302018378242918122913317976740086395601210196383620008188569273263056099987906782041937651493335711421186919050565805170824717285568409587427663442066269409299510641857809044801029293212610846879335194872564389923889306383435886128998286801021171979834661943359224948780186274477431860319166618053879322045780924289714766503200481320145595992578367360792238735625418079277296548253576028567597344923105900285635909406907815628843588047549964787305728453383762364015380877080414596012378925081308222366905724937889748156963346682675320953403045212870364687331706106051299143492776395187385094396790121772433563103392441374428607817583244844308524036083317726166460646575479675093350057642486685068357005912685420794901641779305026469793714568138233773285344797396736998450132343699901457980594346481112615950906225134082188883307993030033371412481800673752746113443837798033210080044965991155721614189019413702769629796552380603952965206139254730169891234048585776106064513126708160120529895190677858278313186659960417012624202230076327140873354691310064203942097377584202787574508010808206025782878383717478785450784427093304949402169111524491486440862169833143816633020149522802164556139291061662206138053218268789255049412193271738946365221664861867048350119212677080611416003539969305015958417968750353332574728410406589974106516759768983375267397454884120418313642087700263425019911166445202760324966867822151221196249692942886793344340497920713587328640182669364844919018128103128396318170433121352304305950449620507627223145326308713081999536909225812701479645943650613422460277864405028782355357700908474917241469056023514428350517561240848399730172481970163513581105995527715147753179877406466491600656471016362412107261188752788545854715518497123313206852441534711833864055269753913495447331582261517166931041347697385240368276683248697034272889326036892756325610083338832415382185124075830038041217261221423200947286199761055509450907010578818108511330687485745647738573231762832672357189211940798510790624249262412037348701651462818386215443458618766500363432927834196711816144716260721782819732297992059631850824069826317039887357527633765666763087302731054827505799422258590485468491607593300652526104106579379562981586787899152936155061253918360885986736487635327475311627971459426102061419205115540690300881452915609696684963142851717721807725269644053650325617589072187993403606715490500744989169967311607687095631812929841542097011889070249170732368774930576873893372179831075005157919098811180788587039687050971733450507508000233312751708382354304056319174805950844623154656227590397484038435849676509499229154651055119121513108055040190614455418228772771483752833702782377228519145559049166355962067446550205515802802880976686262753427491773400560833343793072201119423695271119689548192434725168567153774771144952322023150839334077354624798125197796493826567900691476391357992411671910770113854118176025489815587746622921351634841823960648543810909852145126028670167520546794958088619143165231421251664263217611229122699743404604286794641324373553467478959452270996791089229858791989996282525048153669301959913863013273641254816556194077273768079778436979529079064118062913069818252061482437956807935471348110106224879641224464601896800931607793726542303918844236907349316580649146582262920687732594662974896198159095150583370108189844553302703409312153089829880345415394501494152644534108222356131730115095732709919582463614151454237175489380231233042552237051344016007797647435690848237871809655240484463373739154497042605783286617283163077487763164819520500363871324212173572703575415973242142310268019934151496007481520032110838155563381535257280219724666144854769617780215629985582980197117641459690826833067793153642762559188667398164718641589209352025265975613499989817288775735838648522663429105133297323668182652643173850778412053233842562950877600456618736811706197958880449885711976845260229482095579016334901135819505075752709223670820825308713303160737069023685603511282798873215030184973597649630002773730693522118470795355145496133682632321193608901766888397312183871761016924260183944170973267378640121106622703479002128984851703608453365247982166095300655380329704748390055608224512907563779878762051308465319661613245968463435246055697663147838089351466247770695852145265476843408877013324247927464587700312381551472294429675940298689960702452133818449706420911570551680956832924538879597633956347637447164437716003202398714444647036657564182529618655817089103053380112043140959012829551176040719473245680117436770500875591342063983231932004144684573265725132886952091448646479611290580059050090613166137661969407170988694448755400741217154519934638728319719301454638760879078850222706485317505462150496866253766544989877458465809639748119040461694673780431446414342204825889601747261112297348808713110280113592463962439275475865317525439463529961033222847552186436450169465092902598174828773063427277072852515582527257867194385723845702573283217413766533231169535854182618030445401718675742286580553479640150188654834887829191470520669052251397439677483135692942055045642048288237636177791280851439427916376922975491839340810086678918224747069928839341743862150618188658417072566731670023354382610844015782036165761453621786474794594728054603207375256952457576420086669761854726700155068872800749895497486525796014753562850615632973701249664312826987838085094308136231311981451326588454097970610534587755775126633904794127399557023527850271490901577200126072341574756241365655181540199317971392671048572107476587598803859204406523583484602733868038327409570836090346198236843940972849865871655896287227762013446342766095182081405115338658590564673879733000617493557525373216189266138976493582783128644098882395843161768003919347347410640890336808498361952160686771794172068690522364594454260759138153904942020289608123032809698230848864021270531035383087614621326828751085038201549604320757679463594678635499982770901494541415607342976025444956458589847298180930300798991858508451936227256315519770907917623716226893075097675813979580321876858241964928894486863860867675987916518190017719048885153110357034084749373213097176560564476095055910223008393457333762000313265587346705786177467062526091606568763887795513088675757710270710115674869450080252094799084308470379884881441406139487447071826748183553825617781499094299285281339448354454720890235000549787178360061332135879047603622272403763372261266280298698465662974509883019843017044276494346735596428666133696783921331901131117400890949882173814119718723131384875113367619723573471751054506222052264767827743153594283958362532984043338031763576072662447809236831035597370873861668404587729743312072592499090630263314356371456998989129158041446098803681013892004651013990425842670234905839029268029624661649648234257774281192937437557645040602701811721636691059396419980505747329534309243344314671832041205431921121362370135335301831751770610755563290733264302508688703843099308044368626630956513685858865520026547475943339986198743612014115531228596487531738829146224958378271022681263683801403399468958281796792532766684016438421653713793917054085753612807437282301992200114494576904374221174008244610013890093732708799979271446395344043297520688057369607933982960939982910254662361628864298120796547542036033815832258919439235230504041405220588644147958155437310532368796580687102806135324757669777500380134316586540886469970219039743481838716196790090599966677429349398300875113018145433121444001726312149415852147914952755950729552370892143694599971073749237885448842034193941363733004820162455850412385842373762037711517977762197766101328307020838284055943599831041793604132761672358609491642022273964139567807212205911419031939694258720901816835284657591151210138299246831324497149058339198175987864384164794000667186388558484611520204521258930807469009398151110432983605458619158459456607192245641636542732211852802008002915731322515934559895853269115110844343258483438093544500016939570997935407286582233403128109835699637694291203600366037274201046641893876700805060605723017871378119366784906927217805755694704795137146367044027894911753563932452718113464800324673753423906606309087525229479445271187515127469563125899669393054432194724299013329208039952758740250835371832430507412728130398003101398667255743726104104024141584420042661571949143416312914195831562826148940399794992138034727855456451899736709078568319884549911034304330237927786201240845344527617317229508113687653009406296439097023978684501186269732235383403577801083701101811159215770424409835257310680402737071521381488158013024406396729068135695999251557617674955261833130664377877395867673276071408981314971848004113695158659120954671171712175239744868054434877296898990335614067870040467200479185084106245064633753053091678169060124502392112047519786199942368765364203613574061029485038280784313803050765999707719756593403753238759842730496164985202472375775042836369695458205412194290446651088403223638067289076831287632146763297036974168615113514164542034248242842766339965488742471517821180887667090064326066676561181686029392011825811731478406443644447507723705773172199764806557829227173893319434886718589268349527536355858145314324502033371694523486064638277502702967034806762951737144933351739418229683386858943923276004159904123176639889800054570894783120152032596210010195813211306053157194385817123877342874735793156354377223260948230322012421269595169672518111472533188807591178539334104623699410279602977270063210025349535620983242258540198217333259950175023316979742168535497603707782422761383784439761483102162444490248784908540822983213820420571917603687129850235369785564034092950525905946435555818060816287076242308073571187058261576591677918152142781657169195354336160971471830599647592311995141709581487830316207414540140787924528668755552801334587274558167322269054119846252863552372185839282150192407705752706506337394309698703385996614790280922792127240674396369107899016105210667377702526825911833320847825854971930501807844790137850612913621453091524369026539782549539014661982157092318349981510919719581768942529590827253671685148687384473109555382184852168913822555167063090274086082908233701057258582633700982756072657172905837637011119018829914301674978308528574188680677532070401499473493068915165611111477365472496597121682600581141828944485308111572649994392947989658685551203480304029139915874448978500539403203544937399269182096450149396958917618564151203544591566677888595087379416515990798981999162482212250168187913374177772255703075819365615115666454005561516136402150598938232146383665992781930348437109427409546598830301957303692247195146057788531640127786216480877335544598972225285655044347257754617444865151136179047407790031018885225312806864586066743645369155446907629470107183133279251869663388038285154122338749309321032000157003145711771653932588532983573713647852841080383556430943017382958686019992842977413050105709601536915001359888446284463761520457310273393781005562186852343134318902301100818841561332998438380055758074831965754213903791986563102762490579298878737896301435553690936286153000133030530097605514711619663367639947609189942290372925711393065274345908147246435858852500298634042439476696575797685891344139117975005508637380262149576269065851674161342878845576356083273695178446553653948513956679744566094282788748663184660285672216438415526723470540168449438162853062569181699389213461218126726354308708742034565922865142580134803330863161945530233289222775683094977342605196589512071102690410849836133093572315956288008964727716483786750654340954615447629923310955523316589924810828944857189413667056024776983141066562306041493600949745562753089781197075909371033758100940171060219217551866081304051947894353153951488373010193104361745725730338752196959399132838780257989815577750224471330954222933496073862765856876151803136495721132737521356570859456461833980069116490492174588370916678587858423718088804897144796057980013165459929103138036638223599168061159088521545610319475132919471086817044825318414584537919699188948886801938054257043560290328035048754517748051620316202921057414076540300963087848195968652696272920191713819657280438388994466112268363425134472214970059560619380940183172925979891988588438376693823025206714689811196614319177740244054416642170385205269597317508078961721812576459911653231060843219153487942043361488729913200932667956330722737221722423365881991781359584566546542720955482187691178020507980175425446557965426250366964146173784283089658099995481110805710104906891422439004440053898549334296722262273139173889580021078746243851384489673952924430502997625934996210801024028288435913603518743202372206983611061859171297023038340324532429885577646458043249522120239039257684906797993294869230386583991572765552564563824380458877880810117376466325481413405219602541243518614531853337790532478020324742648181246751560136399809744968077916832309231911300987949607104418318845802126291527403752835974247525408553030080310134394913695720871239310822094061061977378522811815383421405726968394497754036415147354027750533910552052529011051149769953779317237637524993290843945489483774535108481723969218162402585508901982048063004467957120192416247830757813572200252414240804373496362741769847696295185256505547790890411932617933799815678123306393199773626142880334412217023885151655013224119540698479124932648614093101614207150933599283376954423037938470033499862265214196190079217784413510061197496837916215759864197195669032934566764786729986710896940715326785384618135638584928043795654792348257278754363574542211340749011200387210480828046777192580568573285169146487640446531200675527864075967221572407931072387513666880348684429487272824357705555417258107144477639285549322014670491775756877924888307599800930259902732382969691568723859579225143010461363623192880872981019183900670471623888758475775841656327833735494568432114226498236136372275481604562445399914432053418408248186319939339349139850545524433891322501176804240896291938884775073458223938042558613644360680682772700122125496887138781834253476973971361424350231874833782085535308537410291386188899763822481438740070937755267926420612726057114924227136681324086745905551428979052794977633658173668782880569517303946393898065794155338552049811633837227232879629002624630155480521497820940304321423312927123352429359222998570674442753100525344174155040595810484570612542635087367880815582651002886103338403040334299115347891881474232177759003646518753168556558116519623524448779456344778384859026388523849184391752912370865028958613779977243808304027434727514186604120506676513988381325378343009210184030790690231725440884204118757244261327721669653402280380124306401192590396255259926826331685741524087541349094013761086723104436408609943803437702724880749034096983037076242120165171672465852191699987830963054971925547297392933588585225713958511619819860045751034626662079421858586887362039674916835178735260492170731085472087860198363126477129305532534991254872854642224232846565672254759151883868057849476262111062886660957193830967513495623191725487441213284849146304336233465715650887239673490374400005400526384786393833429513092464612481953095895225090910180700379707895592299024257047483981481857126123935608472194384099418688385491506335337800270609047506140005152385278157052367665272912471446566996748839419486001770758857364741646648370389915849837115154050850483781287502821223713385317275959736874588453683294686327210634090047835534207203974243868881615239359811762536300534767171747306112236138320967550309235356552265255219933295511620423468765647425760261606624593236323432404672247646381829174895133721913003543709052085952956500601935362183935368137264460484032267790875153683996951322635960166857064268059327021462353905886753579498020176184443938426585797309233987124157462915526579656464278897699097518908053625246518873321548932625271381326991327704869621954105595806601132973036836018875779254686673649804789356119538952096627470266549199658270633063451860375956222246489473772836102142405273315809391022001420711493625703464906836459329677755624654039713596619371839092209324351455724117418991327035992391845611946848358874311993138495474819348777374227773663384758705712081888908871289919916465185144611469070967247171072237998899650034491167685132824022270461556175504979537124079206297539652671204726698829015883522050045918722181381642446734392448763418779990002772422378722099574361557410311417697185881681813436611336693300911547336412127786409577434187237305681425903271232474982251167631137127530738486326690887786955767360008586678120691711751521392367666198899857541451309534851440246094010823405104201060267494599855752932804181094791312370049549125693770950334724803736477878619852944061711601476206447633705163793570486141553700905061642368626977468639446693863002093735536515449564725113328546824899008645723704549769369954422365437916381756733054501219782282820915738201354732162718343638904250536239222505310734522951439980006630572722581747811416485280281797607801970249666885816896679008770401466267164939548241655900556397605882131367034999894706266937100366066357224017583902470987972570718152022995272785192275324926319595240436163200980796148948509610256115154442241048615510134894072253109337738651771290051291714700145647873582434808689182056729366138539800386721413219038769214505966059643005173752939555075147885194476265932662096281417941430979035621613450270403028048361006263096384818506180702515832936770952339451757044187481081393286569087903829455968757045026846733511637814395753145127386456866136808824786676052735459169048999328304970402189400659369634840369514873270828975437566464487561634640977790478766306550865572020486019859846872136119415405735546346762973291729493461078545274115095595977908179386615946262089861950751830368253347022676556656126637732753521683884200408897764203113572507406117813511088707250170317210696372448567499905321652062697782296725567435687928976857615230873301388381897677145082046112409479234009164217207384188911759382006271309545520424724313003554944542989694119136144465293582925086706180425094962389232690642711840406409693892672654387499694494306735922080446758488575036944336139225261295905095446298095843252839871526332441986292898980372859077452215943454072477634836404540110249816148067787879930440901223499329130445896222938030824390431148496483665370131705629305532957294421992432356582452927014206572220294038126290647971449603262932148070036863373523167413676667003826603657077741160607727357343628264836891849673901729198575267490058272982603308885576739591734482216955331879079238321885451543894396899099029312941149912203620657537949950318912956995617872449256835778048201763030328480159175712967902559072610680261819110161217763257368610288901962989055246447975426883084040319114984819452581436895421252086783064462023720297084220274415709464764212764221571642996892957253078458560774926281220838197931834952851838915254370067401064718135171878755118783388059651179892855664983616195743259575477702810499238449381626835654628186326364471980434075004041470243871043620608266282222854994877318330632349447053133345204833733259901803283809906061818296390453657707569277900406182681547320171624079709529836951062236914215092894112570340124185984906555656929568573354956220592903128207985583691684683687855012390975368528298195951528595219189586142437218883847498506941974041215670410148215188582010315648993959394848616182945190248644021923033209049412093676672398168512678337655361876340773650394608151042281013067929349789689925100440089484786825685879989676400130598725753006231733739501287589763437923406176456818468651099283439599236175632539369096070561382072476003619460083226510356397377356665461716983332630001866121360509494137193154336767484531839151397364334729265738697127984165192447193244174788414568834251380240033958978026730432815460481136289584554177669534444810682978821424488221324057863805175845143147064443580122951074766811930904384843407759398068756605550509561492703689141317627743884740936820533447612993710720897097241691014824062190226663044644160645121331640290723145808691223390936918388593403438739174331496018125937278994668091373587944964874479793858469435221660190737820995050685792063385896917955205684515563146738105410687478951135181631535336940984928360310043582768501439226711838809244993716242050522860267574210145403307188573866648754973320663252528382055594850137209378629153260072547782217570799392983878513402319103274046686708868210252562531777199504082547104865438078351480597448562485524455715564971133681974359135470801452249010510914699713083233185472884863112880038856265186610658012239760674784500372613617961155830504963009312843522660711234019157322379824653048139103079193388361969951274561893518054824699894822967722627550033519507747276236046107751184604434140687416292021868829304882438037798159257604400666153344230159592419896014458504850545309434243630990735438072706997084688615761929563124083280675305972413181095847094568641198731016175002690500917555597829410758363624675409300871175581536589323293328026854373445329340902567694935927302042201100708883158529208989132038054567058824309652143976079542053224678473167766900668393279578350180112045728152497278819737607962183658807465955465670750656028206078705972958370426709737815039605817063313189489089841987361789442178703222966914328728595979493906849679193498819261362414016741906620588331090579678715184619122820949780732042613181964524273219610298391156757776895398628321737009846531329238239624479586491593307794826988908545137103167463774699431721906568318792864181626129459941414252590506070866574086715526674677669891159048189301900149390538980346768576153770648361167816055426982753790629752672701289635148070483170900433130032236239180445719571354775980218001477823908927829842527849599463635297323093873578663743651254014665734478250876697752671945906993983794376793850471289717173263744000630411345654341966443281267646593832988856197506298122802154826951767822169285424740460154937370068090611645555694895859275017349809530740293781839980375792620585685573290677523602034288245685353913947803949073713217347925501034571329482945593131347286470681955008894589404503089331513778025866935715298503286514141578057899500663197217985988248448742320059155653482068272274342229516531795909959240539130656149852519162166715656433460713642771332199916131541217538006342813477974196546424798483923081588774817550475478706549013323021032441082899066449900457469986793075406878780530642485691835755671254746627979660552118448187320130748910023262931154482009511728379378598023549237737855681579582928976275048222684742943377727733265933860788430877740894617538143402923416261077825895597214623640586751233463208237905136105275168391449489117162084594521131945992731623470509176756520093120580619734157024136281805734396119272828861745914607515822984807399752667224988630809217479797722896961388502377012043044030369125652403755303108670107274067590315912732712696039324811985786121668454308493849479175796361407103370989255575975067312973273089097489403869932956337997638068453603702384525411428087335566525146063984364078970652990461857948123323210633248377492566118750608005892671426796620330859724093211757070149627772795617282383024665077234583143522505279700950623318511436327278834872491285799602348670590040650668482958711741765909626412788374555106669547682323584976878523252596090188354326315039760319858114176681435647135744168822554404787355714429619635108646094557871048316378775321182329680419753843806593002785962748081289251818735025288860568625070666464017483154261246147203338664534100707502227232645078379490571873468409708226604905478257770688943438177127347824985697609900252741413323428082747252472288357815275166833932344645444820977283792796691488868300250809871496564924463154039085701092454884799439085009734868331597606606538037878120635721341153462243440038276051632541512168733117660703587859291893256765209484308086642439016582833746875572592224911368957184660620448647693933777686525485338742386482752701066013670528155231568034086804262564089134080465387610016547217570659731018416219202823587682527053484244360214153211571764791748510868437648117055235156158782750817505904184270545874255897766956029069669427661629056345867778117965250600358824521715078779980470542634985885413008128688973785300904762079054959630787438669608830767494096763625399941115145357745339424427330975318250416432973914065226357486124807650476785387933951892961204010618895416020495426469972616157858827967020744394058916951913995670337705781854955777781399241136414171242225867545191783794377353423852777402782389020147290273202327503839703458702991201725021358816907113500240732612864472019505934361058488891346066125420877887032277698948766317563928013962216090818741965635221891353884980912504608223848591521735568721587103782020156957891514402794814926054622663351879876227521135180122330162247274664732075396508042529111027732828110217430116856386735719676724225606648536640800682888596162065219183324852795942348305051583415028529434344674868212125032788217885221172237559458994851715859282005290589744371996734760257362951971302650262048574566665197887939882855205267935663948025774593119912574866550955520847394917848631740796562421015333616972356357483426165891029663293635772406334645357406501896414123851867197876261223389662118612137359237816714713879352091310141344641406359822167324411697936299919739225952790585483127847083572059953148309745640200861347406123804460302848069047192357199707359410485342523445564229019137170292988651869615832225269137942057014946364875797375211054816474566787295021597834963929464841964047770999999643896669527066217567070175442952115632498578739780305345848754634597094710477526217275617817439212922608112076275562245728878806192322374665026794573178122675546297468567987517527475235503637030088215636203694332747798826172485212108794760958405567975815354911351668897586321913728479044383172503989440043663516252841770676153719643484194055588436952829743574697473535889882154519864763869730772914895718581743547854681952547821246270640882154689012294256884069314619861661228163862437715523379777620300924136188372421129385611596704056847397814729618602929267695755317547784943433178208615631328333888150242415761935247118777452019642044865056892924527188257360494755233237975622984336723977227185034030802355435458671798396410095989790834929932895878131899400928894733102444256304548754055204044603243130425512426329536405196133970309326013231224874831097541851358164897224022789240329315264141802595929044054015709595924424995915154285350685416034566999868643702884006998675917132594059400039962067379523962464723993545660485515261259277080498235342052225090171797022244750025911858083655736384148935851487475380451357380443694419663160312788375792243624890999174616096342330234831811943416868187207565406128114383491358132114114339560017283874674856281651033357412389631575244908278198582290800977003317830429186541521281776850050686191727416748351467300196907029046718694023883492649050049698497390818297393116086195500850284277810324888373537744963917241343098216790820431467027998411588632434121165736354408883594340000977182042646596121341545256779099556694048346372330005005066126963223302022069857444800155729474467242424934955881151267508544886356523106843003026297572894843771374912653887445608985376393619047242330977246905199319078462095279980815708679667903650656153893572192394273839210964829362857743217740382509567952402954006442485628861134489513527265332493795975346417781897428590705926174704820909572448213556351713380464709978634325071672231026128102706447111785948569196316335526392389904872122457987606174690835615972745905267114450186588502926225503876440501335470694373134407731594014219008899292548273757378526714537225625717231302925234881704742582881207727270930163882922433736208722007027477998797847805848194008088381655056382473374657468201318058346931740452658312096518128020730816708291258346446969872995288384153092562024560568901420384944203335421609544440809186664604100694640508421081040690190455162596812137408665843521571044688320664463177143491429394996420189330643663500301499384160359821181463737351239759286089926626672474105245695358506211560899885034139420672789720358913581428358289818694279448604281704545169779641348203890873012932436236314575269008422635400216401320705631540872577362860424279030261463152195572232394330091857238883237316577781671852949395478980278376622327103431799623802129541445748309762100746087169506929577567255749640624998080091515077676641358689344304201653887304548923795131315721761254222501680642465260891329569731593622182607323451887695894671445663897405673322759873284848444976043425786278607408423540851410654157788643196818012780495266227679299855461637789928296454481102179917204661527927491836031775163057726802420046899652487506088610622593396815516938060499782129473003470181410208991510795264275787259069811077716667352450669569332471566215700020909767154305340285515226559188588140616609755004172007444373139024071357337390029355448029462322911587066337784168797028053884653507346909279249729149437244808912262178374575582346502152229540786623541740659017564671416025517602262012168779986109125394470632397179245855262195721642173087158397434089969268307347538919856321916514365852986313293868744276016567187753231952560808178576840728502806688624068839550256871880680426806115912243148525949570978409945593188759885181433050290552950180937274185372894279818378114213573761329213513421343867636182344841367603519502253945636896065685704870760849262232239887626452116625215372093906530785759201069718385687683431198349757656624045691467471035635667629370354937484634555796257950157755150005782476492544435522376898501589450896495011853144413131170499666445861677523105575569394824760217650524323282680937279143304614463997076390829598594494498136507926220579393684940973013728147251479303272102154596632737955489637422122013573192078065176618841959737409615046808297604812738164942572513672870261364121747450951297474373491047374833115823611163094444923543660831462256336208678484621400183993638018022109167749575218378135120699202190488383000713663997379862476247006367644430734831193221968580688510187448721622136453165126761359090593537459382300202930107373169124908176001933143238076198437338918059726052217835832961582546799619137390440359572001346087796461521524221336217044634418644020935513425171762953804090258513032162001888797888153179138588407052800498537759927490362786582163628066085522378413700674881245854355088440461480291758703268568570450991672429432179856077662899314324151207380990628503296722030137620754180479150891381469130410095280084066674690847282522173252324116586620569292168241542790829471713183685209297166948323764813031616152839442478298003980041136924111334624440695111192886093351507168554619960917863667589018687872520141667104246616136265418630323524198545290963242526842813399365332615460670500099281346090963556513200326193152337845011728110945051279035996104675467464925391880497857961653591444978495473219571115882042087931337803749126691236373539856774546012173162141415758833918582471471964550493061052461017322897683172283117017063876244324861868769612476841424399964121460735689574778244696029519113824977808550877639053673484596846213681433590459451723579527935928508288871819985532825753136524886720722317327607952452057403458538909039813527106080419512499897560301433950651723092086598784778223889162758352737428160807537360558686723890906483476130685426536223258608518622957574476008609917003369578852920213259153911121427276865619822010504463704442578529491511223207050786914583601790392035670917464020426809679268148702920431376572266627301159442643317143206763245748850470447282218939926926396024778105153879453153344272683233743204881896523010766769310505194385799849476996768734359104026130689341191249470132543657132879028479114693453876734883727060948052688868468109541271774686303473427778067202101926750270742485268094836011577290358775973544859051715056491711277630316987051634504431513651272438972389492497893585593465104075763207714405234682988219287325755322283423069157237716594601839802436827279499085501074995020716902538844545589757836744511551986398161773814447950553089732222391989717850199154371696069758195365328998986769801694478736794985035828875490530023958770102892266439589871017295728031038709679859913932568329290754694419352507557076010846209654406842306849190269132038187231256476257489647732413647681059015805585257462763987760180888316042696966055120036428987271136729233888071605674244381556937851989198163968032592849758950661889698047587484610956146077810853302472623599294005565944271154632504951420695229470379704521002422908954002919599879631577065423567162367478286312771765817335823734022616534390712693915549827109391551956966230024757936179383461467163978314145788165437462756174610792944572433953852038432505980526133984195020061557837491496706620860609957422757607683952683133557724099856788812221602560580100313929952757247191073140876300689324656501087751592526165180867199004514070378736145566822707543314380128669470115474646047753303660411797272277438648585392903605560057041859726423962357867948698214390257719773919330562443572322926364069152035381267380565784200165832689598720679586998307325343897789402784675344213808627014901285243711262168687125468541086877301309509190211830194842891824469810029015070598561617694983899114787932664259126758085412597663530150253550037550182536505638655711901659162266458189996908462199729052111197386817280503270856618380906298924742164075995737196471984962092594258579645927817467409168885075078328016362945599913700185042530126758514249381179590174252778088226387732925677653197526807026691099241109318379844801734979464213255731676819315891806999478888844217820282895677564363414616266172668058114321590011688239665297430259153297598577460799999164878636094334879458347411426001578930973214432645756058825994946911414504556240136532794937615904851613512308109498752780194814111105006409465939564579102802146081131542550856143798976620738592203282898889978002155554826222403289783524920789301750660881426662740379156816634144629634589414457727932017283384489204067103936719235674395157129986787937135031050600779580071352733433177064995748182516230528710458567788788563881258878119603479331143744299912337594941223282052011647510650196160608301852170364450092104039406669001752748255614869591669761026732879303742989932270540699290597535357544009654943398863730236346243716427349988222448845525216867026495243480213896249429620413788952914228858360319012917399881588803961950519007577008711251555342939334006389994925804076951803306522971610121308281808831811279385825749017010887379510769067557046757189590331744426181233461000457841353235362853181253294001929164985106505302120652395226197859631750098306450929761427356423791313618050732540763373008303219344525931965210710139839263116505493271778031723782995824839745058200096726149384295125618428455207767218965033130253445852967255869581983802008996289068174652963030358994519876766409317786665454316714636581448499235998212421147775707956736820050822761305731279449791792491814687917509525423739656301483177121538585374040037683259072200912949828863731961069960775365268069276039345857796980080402417302298315811130810120962433874399505707061300194198233026591936382143504915641152941932478304008366850960068699531535559154764023219353462257703345199812198581241846849611595326728826348154285399544744760751613280708326376998532245629025994764481656969099700309779045079596967108695856711495906997821491037644732575673834095849232457432246200875833184879643699870725631509736321151968044239671604344349953424667986845910558184401866231165428390480327732340850166737084537144279738689858133961963227963545341570001961279358305430370448906014296890480130766997113678880071006043854851689483788411093900506087741876839887578889508239585883897905316325583531030945903900791861001583558035510044278301981171427606919328425867673525235585587516826907969330984542988901734099859606554023536773974207116245216177519632390147131680545383939517461580623124820099180467648963218366446968489332908129492643330628231909235352096631581677319722246803896147340893074215657920145054212316449573339627619860653776134871572682969281916699042591736290679530787477980030915632040414730153251046074362136649930920373315504389448861016114259112853888846078345423207617187629938786288713312465976188662966718173651423304716084715472904811324594814543034842303323139299291488396558645682212498893005281352146617314093375928606480532742200761307260270937741544735913608641966503801878245037999303201497182056408734880817146927704713313917128654002557898502630730739558096758999586204928379654049552003531315281914560928011900536487011042351212075979929216967198455853704807646216694101805961478806430098582722630815567980815458677550784851210911671164485753605067265290461971191808837032293124331217596643297403715433355140519958936770569201017409802285987449528102952211690111624897322555648540396076863563560547395919687218701407231826881987822883885539995779730719140150962248402080304650542754912523985017228233203682714274338036150853202014912675472982985461201421260354919751551103874380197505807518170304988185628447412044826206607585190057611083156061491907816050388304781908001065821860900650372602653030086404996816970128171167963464693411971010799490243815699900635888729930285884642204197261897726386491634155106739989357957953832218302892973281853676722094061059937573867509055207093144042353776833243345620114280934314096577333796699333987850362411457978092976991554692970904753136897940047106817735161000737212723541917982848690584787212521643543402321959617765487370119719845278508298599450549193537476467181590783193840874631501272248833959430685173546129276422033461277882281305507216695377258907037555664447839373861080429235842269885709931318086054396939640525390468197537434754612245669908173697480036538216307947572580868977553980977611683042052283360388302458225858342675339504971235746146145921765732894725459208463236282986346818616306851206813014511424961235268952465779277417198554131067143506150217700672449808540526216871590501371229437723925348754678039578694659409419907869342283115657870149251734276754815398925792000118149294518400243019537998197380336072906370069134683436784903902610273554535553158100374953094321535742477881558113009958011172679623808397279711392353574649822696038545874998056284126772679584551149301159599691372057687112147225611268467146289970204539742132762039928014094728781542334707268928340908846657909808746418489477610264949864174373867406370580489328905861936613553537945892354899077083446456287222204904801354819824435571526949919602144324246998309556061753580072651662964174445761242040657988112660117207656348327342788392085387772965793680780567951013186897455046115421827238569476596336356932867901565290442931208718616047833102113518104143131453570630925310155588752869368101301581163365702699385949366475494696380910145461354847402615454680323383714299756154199544077385096667846161617567851868026765084248433279815957966285005441357973448371829531701475156056211555049751075119921725431050675962381412757587975533444441132937831751299899527669609733051936628709662447550945342126481386964735115126353756015403987897057751950332419501554517117413850045145051384706624106566235431333049286259624021802917793383529787853357152876439868282100306204232001561585590004648930100652535997849929730941283176794960184936791822800656996428990860077929402886244621921768417025151001461727842443132959284283339827867952864969868295349358856847884811859076396510319735130071321898498596580666391961334707870258598090654722019797013004378095746087445959562360613236636609616924416273956810314103686927141745455145345095635293067829803532873669344754587038459405129250334078515088374785360917347868623050768562502402175838727152440389607480029668627174813907791763879240391037458149957856753804801828767669094166345992177715055071330562313931461175104652010524048312234657541401602505433796839458338028877433621173987285434164763956236880860211668910772006945689562788212438487878974459472159750690511355683227768159086074793268019071023042302172459364212030642046840928644667555851946704786381956324002341129540796909217554773896876332935981157298738336406630924898774287631376307321647238884640354929222181911066951429438555222221735324693865305345642944353662267234600687015703850553347288043464459131312383450916743350787041791566527305530538790254684829473384903480049463905963844142153280737721555481376605090572431545243049451980114474943648776053798525886771957560570428876746790928756315586398219361473407800367832646672525579246124678347073321152331634823438322389419479135961136487405164151467356398253544062566172501305326007966115043132353242063288496292657078738783491217631174658386133338801063624488242600698955292926899554382255346016488793664669913159828464959393488528687719423798490747007493445231647320232718162540111570851101084357735147659632381003160603502179332840831849630869493367448723352085391679339882522242976241527577161961551646987624058702905795412521898218045248708948826487076923216337042269462241938977481723059949869683389969253890934086214515048812484154285977996234370965225027147956274799147498093956308205630583166929553924345869927901035259169881384789518067676283902797536031138556105511525788923892662334806940955629341683596509081817217229768144252035820207315389282398590688666831611786384198614908207827996659505972861303292146647497763622176372263284489623900898896310723207104367815200158312075731198833544765127132390516408953220726813769609199315820069176086809750206339072406696360230313145873109894224412954199902142344802109089870242435514117250868556173110599037716455065128287622243273647674966876497566974406656439597669489311286504074161478933657819723684011595848695495567090260542129182303912430040532023242761445171275366893793347030967422331730291014701354273262097111859947132335790849612253389406218476486492609829980639166217807419548375714779643763905559203781965687924272963709789076294065598488136111275857589645729940414639172670589983417864122422663645062742344077008192583091295546169334195522857715642468172791803925800243932764712346576903995755683676780985988784691420966250922664547133741349371220657922821102892859143755450090820650672372680046978879716144906826689005400325025582558546467916317072997809349122642136137918267370145325096500659965699698864805994676193669122141078033250381005378358412856640416700242896997810102752355758054316485480198725045722467122459991343774006738215482433573398565613190832702945041123839689761307833559118765691142091278891407037254033912262227024642599807753493368091087309889677387851044154671930408283088625610193203089896394978171504718089569418710923122141298276687937601754755925075838028173720494427570716862664452509615766932047623510148401696306030802308151649041180687706195331911535542714606656725581985120072911411078280986101364093410256074619760525851544635963108105227608907655423104318368529146295153046663685883431079023497754492474417396499400454004500077809996096721266257297181433626767324864424647978642832342244931495536731262804720281831768667848489486190545812046825416903708130208197277336303974127784210659548974946764193975395567356379168324409911391728146502490117946144915370430191575147783655220256954619144107060774335941826038323292176767252436310763873404653660004316245458610789075795588986354600605309824059086489087601997253064089075450566311275876899649541139644800195256817262385929891476554661089901328952545267848542030559218864572130675388489430856718905011908997753709820192606627510969213959980981424697126023183937414016880464114303781088855677059176785021372493218344009508564730605008302090396581825897896400636611613775728002478610303627703133803233917160751520603438796465133760338687211233400718591649253630757936466920998651636568035116482980949509715395204679277744933192747917610939386271947649007634062323805558747829795324197848499745254634405432366983512277884487615774006039885914968192500319707147091478114249452581089297852043626453337862070472258458424083690127765923553361708806873752735338279385176484187773066121142998456748322219544570274876779365881388810849530147433673554566027601786926028328042979986660263010845816368804834485651888735898777987869325293403892713613969428432177348002239499995777615935357129341412302024163037595128689552518316870615424770417096785472132406685938402181512549203095003245179829851599847827655357658337089715913836149634381570495650519086592357636597480079009510151725979273924742021360220535133869473754927558313650804844407822633566361486614842830867250837865661497329830400627532195430427663371128457867161096403193250649844884550011959867535838089118678354143161754711194432550841416205672385331586381074335386089659940035554758123342773653483209158125219481699343033253417893493113501133080035076165635457895483123740248540281188993217663013052766293577294256748266375606350393574823312065160178727568438415856815347997405216975531342802175109532023293558216913916276450369187524909289081606834847923590429710377589907603020994201314161796575790915281375068541436111276457089549134405285192085910625279622020353142705300808903764036536120083621394643412293250080857381263398455392307650928291368726076068088337841213351386143907485020339068574688920086883650396049277312411676270888483774974999091672327750813357822593372390227157837194455214681956498358549003589802571338249902139237394169289418570925458905855053189355871687083980188476893238224188504341422712756424053491952722616977804557567028466517840018490903839673413824557184396512501447971893104437977787023110289674143245460682590024564744294621282350172819271487008947988225354073097446013938139435679858405496576241213653372137713577095487168239259540364908723140484071254740804918656983105479255419059485129856523732367729478799307206796006366808150131210993078466229613898666032722704890653623642899350451806896977989269019006665765315302504444585665523264199554611260904823659304170010176201930368515530706683823429212861644829498099338647970413984706364150458273296477424954557323706967823480204449729526683234492722568501716587914257426896989490454122894620343702865631029419267859285132821482286424748041875266731174313799238203682307516712856808834347421473746109187862895887872532840990362048373579243121915620032822348967573490631316392195815234002190138036412851452265416362003356606702118446575328965696146882439805108532129474036175115309688834813780081122501977433835390331794530117340740598977558853878826407371999766117659596860822115912382002405607087904573257746995197347813779700622495981178025575591091852708325253092942052085869167517345413692241134050312583447955086054793060350719365245827949752018027027359287806021944028192722381861026988400963800942219485033014943162723918132032182800170628419187769519473078907055996243158350519861939572694030307480112400630350142638274785547509573571843145389204142556576994276975888508510891995278342959465806578119593176647268776828563785031690905239626051625385495051674080896711360839327011661377147597216569031197246470201269959925869212044823806744023633465252635859335413150558837638728058227119609510028630279537485416510681320327523916992190940232985901656814548561276682950500036626147109535756178668546044930652772800452417310471727913322579338397539956941385572909240663026379041517788212610335687061279996361235315435942342398389813219865149182761823446401016343003023051527771477668237170085347325107404087753158805127984142452870016261294943045410737501783584874532889455368169878337704214643453213611574293420102855770727675773857006881910362182800221736752539911030708597479552034274690857926187066452553208182105948696401818818995509696262043349055546052742026801248428059553313122660183508540986438281122016880727867520713809198721176916057422935665957075266218419580175485894748597485969726625513020956589071888888031636557678969207902249377763910184887658466380627148793163701179585642027445348172489305009527570528680126821544457947378158134524563649975047845806255382368470103262545185913791687331462896774376355167927918445525128110230419041092790004168896741785376480509247570774181628748688449502797559101076418146058540927339399206424686837921972070402793019632095301251014971763244223331695388842154153484120490795353117846350056637710789523531487080435004309528622768557142701395854997632193686917731140521589370695045803788868602493676346688908005262372459033311324763102895525440139402220441991175422020296140696525653613768519746303252613980361926895427648630003399853434402664490331378475859253464530591975146161627264969872589087730667677787871405715545691578625939593834043713828003719448137565655461701322156554544213346092215416532017528715726226816466148069635688437538590588402713300168850077315126736639123257338661713186116240639179535058388746397101484247119269657993889967653307501532223170725067277748521409807778884000084426199030083681366593602485955737457419523266299998888937381833692102039427078104198277219722056947486964211473693717710212300676940146189302581496692183208960900555452375078720384604140583587299175755046956379864296827134498722858557136449252282776620283894862106981994743765366138379180061414253874185798127072124613648434428737588337455621605619153162298126665379766188315247327922793065882604589193336504959970158075670988535291512323591894152621776375177721153530741947705922415283095294589643059678581997018680566915571790638782033051241555913472454107621664000412374405603475600036975028166010515846817653082423476892939453992098869980415198482179460163204947983836666314858436757816554902911994438330999044365591001154377291178416544139460683575137215956062127030631890716287192164150727413502309955196525650222654475952583889924431680416155207078214381843077794385205795595789903552751381198489395094384160120358414548722576841911398865607014830029770594759687931085031658402309606908211164106643535230890592962347789723745708317215828968851296878405054585879787369665934681599451134348040760174656360786492803912241698724936628408788142534665348269676411857194592029069842998261749984224482629056000089899476088216115467326556136418726972244032021519860874646968515527104912678610128487734931497150109751768082563387922641833366220066418681305769895400397231561249727564144519823695668651054677799368094070909938645124773413459743404498131315777856099750090039750336953197894226731882881219928422631861893962256005079644499360140779773169130618695211948172423035133482252260665056304656891386283158219097627039192897482511488640537175766060780208982267772495227144126260888646543123024283148417155987019746475191475412725727691177775459933236065448709399450111356264185660655566483905204824875677046214382124959651672974984353368149681168370072702018753749283795054461981259948218176017579457494862379409801804706484225037758225039342627889413735652597387964203574137958010355813422766482811929917737505457359949237636736157537870674758959119461292446111041314862972525428795908943586906888979939070203024556729881878251864977991605285489287866433582207713415201329642839433764267817689326836074260930526666691059251015110225318135343687981280259168157230789667325952915041498346493846273807849085436167666287803339065165372853521499804146823977620313289592585340298841189247018534642052625078014484819144613665401351952744420797938491207775354961891054482502193460661414186550449449519796419029883743029411790945230709002513095429161994304256319429325236876638058797106024469407979180807100155057553498011938240426859822898972312696065577321968598987208991470657528775589731159633009309421505020308414427798663061475065394888384735141659199970820064855096393439555194571179708814544931527875730852514502679508710593155042549241853156663500814325958970008097912799468625269514197262142052087939704329418705374539604097326913051892116877554933902888831579936958797816362044842015297539565140249640506378971584999977566303811756969134258877487737962203457482776451090447056533276184178115593332552765109839865936427339036773884779285063803410583722413101625960774208181651967240775594887536529028489518103396256096391666171282676083228353061214263361565660626955148122220910134741110212226082891646642699940726334906496425213176115994768116693437863374658490888619735821456098261521996589960154001165735418425210082237664695392564075453058662216208906222385920299437874968038596295716232884591509576876266610259252297245981708354180263240766780606544423405293727301841790282187668056187100684784580576291873679463013197838562207156806517085148849946048046842420357343609352322917000258257366596116879676852773631233517641170126632284303143092159389982902815356541796824860174065190571911619234209748233530372252145940051162551706506037563551723659208269021237068676880654150897734085229606979828482985762371836700380092526945038766531748926506926787319146435312130597911672568437041279103238760322279227783247587953499652637476425394417834616164769410090911499092249727303751140562435408410856335438707180832459137879257216634463455514018567046748698337416469960261391533661808777829971135569397534242458759766828188544576161563777472762013780673934050493008117660063818240580687550832034539828964828633000556511410022662496356414669878055850396456283220654299006333158680306781711949843300679571482672532776624041838682488354235010736373302411084432329892568102326604241248545166900258820614318067083039141776708016655419307541144882240078428782007849998338798245260093353205920823751816448292759825874036197991267774868788478755014501827472321511730878757635468643125787734165174300987842938196765341232865871116198031915051396159979768579680777621538738467602909822055195244852539258742351785363637218403687964128314069833460774077340393094292845556408508850031445775840614888680205957257154674185600877930086359934574040119406395173710167092241328581690010570762081175839131448494157703248784343934486438898646464433679934638668616391870820057631146913916011110965117642307413459271343130336585775462313196653207452491778150459845075997265455016219806961183384167115919524156064537211492342464783842997891208547078228242473637367142299787685817721947196041022533136236459661295446188680693899438353829001010516090833696913787298795444181038618761067810050660710888216741326870308811549346342221906424619107622008868884731741926733840348724027489484370738351714168525056733383180196755022159640380405062049612482306136700268748485253623642554694496842718857593142169836205273335224893405253529686369696633665775912904323501000805592799550865283527087784131685575969799439732430627736230476847829284955753225745514292845325748196392791736151993276495581975436317216989243264621112204269813290987488229960847670725490444248675514290927998907521319738069998126073684918420298451630883108638174416151190047860850521283447024445642125151460821383009978544623825397692304813009767796322928882109180080097678524032210425433578541044874935308743180519984254210496070995651754955051138159533675394162157167234906610060896753177011377130464700815974469621135648234931424152155863596766186794775327226403259235600121762761322542600571143094760882003524877097389473769840923693416328255792049994199056680374497304097627673524021062955727101857734445622182661966457932106654359819206319192533861093714841256504319312178457169052800521567319921364841282058999051450081723844288604589509940456673195385574430828917306328182573009168056633975062279801123653705857337119576915424438074997921889248389533565230950005115951500077896211509255731078564536343101287089103444328381320497860128322075530615640309455449708019756787497358581821914114237174157079214930635090470640322522931435511612137150033278985028115752425124601500515559856898552418354488769990478396952005475577846141888250287917051513462281546878285525384355288636544394782666650117196117626726009078325948919349364789166084704241123301131408224905532378993458695701452507280689774713361713337046038597239926236295900572295526454760007537516403832902966109575161081433827660566631190410520677108539299895219685837016380824965010920245247573118514181094372124592572344105407136771500887081724055239395352968044079111486080930150660768061893024584921236824060689814253748725167877917386155463207201247102073172899116653385436372039603364610483123969999137496447730207905803125856061598009561452622077761252956218401783957900991945641534812564642690637867422996658441024358781540343267429841509885071061019579490184583816456672699010580756786581334834662723491138883955236219041880643721303830742143556672717035443893274582374588517795065024530760285048638470652374505005274222247213402380553352575754893053738478896226188577011811390725788792370417335343631438193748406898289981755114290651805031797855953203391999985812562690912805329626607357387574679584576295747919775690817307492751720442180096768594176476317518559394856775117688266450475201379191186152237333887364555963825099758631451744336476316082513720456190820662315741674464092683122700767987121989411937511603743745421398080910542087632721572703764424112796098422089839705241681620460555584017493679810196536089872355360735939619085491865030924660823851474340554698464162244419109578027500120785208693400958887408269515011409449339031321116174255992946268632579690802312095829728624669939181811777450868594926707900374142103676629782146102377902108898324958698321965589832672621858067206748864206710696727147898201337782487751320760658515905944018386346501337263599809149321659106102613683331088350144894068586291627274502837758429241401559659711316292816046096821063351639796633777723780715821192906753920680391685091845738676014853820395244253482331255591109582164546348185116083126018709706056616138750752891603142140555738882072740482540446660369690621267381799408150602242191064758611139628805286517484714739053757349163778015352112499272234853277153474844570907241098747595610449618031753796614359563461130964330506549157445173539059318271550983808167017949524682996583790367107073942530663812998236983783605964840812577048288946728260800636361699437233973868370457565102671095954299149048046500177708031069864903568115838872526663839523487635534678263571828909933768350118818686201005603016582992311346992609943031281476807499712763428035285581668512568859140850322260685555805970620821806643250509935296250829480298644763563673456628515150020118644772110249631165794074421031750776456158058384265684408730917282099864446626009496476980960021911792474470791238670361724238447593190778732127237468468534870051215752167310379180631540401272688271728388189439867545029080051134739178693647253692487522966038784148335661284546052830638653395128433880828893414556920592249818691822496535639517612803379113234605356025262520402736954096007693417062600831811383319028317272350228108588230323736508978886190265022806310642620169588114363061468747591144955714796939838861228682326377390962863447690812982154756232832866053352236468429388129107782521071606927835218691521486320758291956838128250079905305449757081224748567273316891898328885899465690645929750721686245192405092552127854015951970993838607533418314968238369325800300864058902363922686567183457587036245806270219005347169964527507114161334573897667312975046611094845612260574747128733385140314285880304647378108300508214137329027835276109735581362892158100565502953359323287409987465790553752118231711898774469501680009239133905024572235985128965418644570756696151144383861040374165093326020332267196628371742849996260050981078917289815973852467640035759545951128991913565022137024024188539574278860072302733398661713089253689677110673691900709106804604258254356220752192156744524966593598101285010010696058159682136406816315991175831506501272966251252138525616040642658597595903364953181017580692072031714419721452893628010364397878175063592685437286756964650518284377348239873421532872384191972447253176648816166511684932205768264591461609790381976082414281330308245829730134601772551164905631029093298100524858924802623668330706934466054140194707806574360573970930939503250029731917153703073499120670188265544745271876783481457138133085123787554520205594538939003602708429220278640700088297173580561215081006636701413969856329850851475343620849522251181783267149047322698349229538091167388611873158515165826375381978008841131501755483481546387126438348564159271622555514838188558084667644412032698012681601183822941854601417518657683863489808934697855612717562377370661393143629471193889902445109263332900224430144452661276747130717255915579735464194486063520754468458394105900434320682116652709060068253591259943699159929825796063884812119316920585788874213110890766002650227540737019885479557107570102097944019289791136281158937436426376168440296409399443412385665728676889265784813722712725975555517807687668035275358571685363251247399465488901567894717804395054441068621132688161791042182931902522729070428544725360222983232419314576874910898261282621244735190253546616448306803293519199913904577033270900124948599018141761363197307809994418527218115215607439622778578645501363276241718107423013147576957380166618332720226038842651224448120697703940194046486934490649257939128417588543748251600043513176859270180419676188417542165101890125012091408873619282774658382781606371401279526995037519250875001048436931848160804384849171210996428053537498442255702528628292628814198137377108049279690821266770948008961255374480261038333663996010388896881432520112815878498666930954497316414212188721378415047070929749970273956757490974431027234730990735465420579185198986922096429650178977201489095942252674992218757585777654854548604413059378237805112242017036616832087147967576741586920172856806609553366207292184827582096172034597186168343266932245558622001088203812231583757595256682825213208465277971739071283361222524084989163698847380382809776557353485762644808441776773575584003277502410386886029762689538527141504513785691584271708553001895363870153931973853899667830963225289563354712641317756426420955952381126176037395113787938699757285194219269303687685169461668099775971235731103188296536120444343872479462425017118896811139468506986977343315823679152270911460318439948165622453854911435320065996781962349694308541877391746929125994485516817921469034510412460985854639873019167623988488054099905864320183416073816619379136810400973121311228021569406312413325709144020386061837145018824242823090417527727605376190739334803635930859911919199069551380731933062381947156486744692883716189574932832737438998216523784575522049079190307662797309923924204889515622520483976782611664280470312765229324409318280392056353306281193314166304883176945062705192381696891391975222895714523614858284939358949238483467693964188129508787752769400659217373641616146102862695399127567729732422828608395580766903305301641479338116278466267497926108359052601752370437141200850193342360035473655035377241178495054919649723908461466222176459851971928055017449016189473416032958160525731686129651534993669567864824182730749946691039353531802287405644606252766723671505652136885052579540430975587995194050215578571407562925788156895264224733788932421247378911412021207050019444102111229815554823749226813280619734583095427449380211123622688420509906801882880921945482713082063269112250662958712679255638846517883595958974090252783488576710866964275994128765188129325546218238361278085019708994171217958005786940016431324681159660053786261487392295568809694892198450852310244117494249749020447283667867399985901244631698037508929544380317942069353492908274169329486839751415475203495875544807256516219231786838705729412869159685197318290766875390985713740929183918342892718194298888104925732018545692849065703028008406266826409572004495564817808996093597473956584654267039429270709023909492288760074555893766537618924507818153685484954333638587184674169789857728871162320427075279294569864801445887353845314732448757443731438043015985445543097125096373114242811695496423850311663919769871832255166893709909434846912289017253869784036056872380889378947028603850424129072865490798050968332397127529554195445700193836747080638148053714759991774144963851441275258092978926521953060021014149816940806682205869555938675506053864623975483314670639744258357077383504188848435668924383707247475812066966412954186434324536363413625505334966475926671316269528864217739960538937434117084125256131540241796373781612767159557007177649529474245465023084466528497049263987732216131807642585423410622068182779198636591419227504270575579920453925821012538394088869545377428052681567415855009440297425066820770728569407340904040105349392321885456817053250097850107795837148785020286515269808920537740697470848389238411100192615029478716637276566061173712887061954815096355214435634572307846791970990049036321369638664053612252005295412038612937186066924848411928207009702033358251746228186032627171418409265346708488502713886448482044397659159861228427024149961659929144659008358258424692662719962360733000616655949812047546613082464670715847591560067491764413068458211991216551242841422957165775844448536941515954849768396038248571413315502832567847859460218829447312998649029802214331371894257984171673728419620876074081458313492087862329285826032118391562603638545680914854426413858137250832025730220577982655990175891036775820775157442835913526668008109722527543097393342290079453222763714749370822950133531442427084432639393793713078457515453064169311984062812667356825267242047319449833194927327729829704847961531750953282053828200534317268847766895744955737073190015576899255752493746400312009932853187057472682152454375761572413339963959533330336178266262790241212735664459582139529394631436680463580676304221058192872157451268964086495996306733462561899349895559702041698923843620363207411405506793346718833574312240602084823089683082506123954798015294335843840616439656294031874517317701709458327167880742090749751714756618664210326000750909101168807094752331080071189662812136148610683768769822683000508975776000035159054177530560060529146626823003345794814931573359997152186814333288188997502202138717121280555633594113148618663318152823524541107528807598777983063402007794789063581490539660418239946928792087432027032485474278164268551522406619375005414451641044387192274687294388183024593638004891950014430812286704922779807313368478938105650895257508811449576141325541989288927156189377799371551141842617272148347776598983766444602403452418638638492792015519549704752399796301230254657411187952044161600630155172472146097405417612449294888894535481810875330314507798588094635777480483969054452797818262236581770187229415061922572672196829062433165687389080479306616968199837485869772329131221162209434975111007752491154474305186619249049187136567719087696336617507774314025387129874493182728157354373707524040191983701107609727851197324283191098708402037998628141817576180616423725930989491180367077536095493838997611369051380032527263352932571463307723073527969156624097472824080524442139036795395020721269273642520375603481130838662336848320935247286432465190932718478868394789012392922598893634173606049731152887480601102595799262614215728735569874193187027848662797937193026115968827157193606714775558815560691057985169601981973057512044326114948904412431147190241848194968120104106183388510347972657825538061052612364449390558422343234178013360131519279751312806617171588444285938543684359300749932553146159883196434542520103473523291553618119485911966551574425462609554730972675752599184980191909104460839457130427042331995016949641710099924615262437343124148060533447628420488718559104350652047886874845050379212730718746343989239392412500339664571726620004408305374982339750008036729286355004269352893613412739598976454065429291459879339608836648691571124161739970743494407971075611362553044499866969932790441028110275638436296818100172965964806263021060359563230578407432097960819384351912661365909195905638501783676367854722333079664554398162324796579139034935510436180708979174800640776652223009408894017331122982067683283783221862017941562992467676609663817748618269719250052842451930951120647093260372061942797479015998726069610765807238348783437546463773553275360549278936805382155161317214752278475260050274654255995087823386430575833674350872210537650192988660127271285953786890857515569839106539673618686537750754092475606589527299007501238644791602103326290141472469692281384617571000218488321496249588857685773433898133448731937808658863509151948009590426501901768253273304240402942003474035874887551855480192881373250777502900572802291820722824793266225674010859429776188949312857751850848095056714581746679687629928006915847800606372281328471615985593549534045388902299050744649314269408062918741467627113697430189169187007317424209887117556511852624970885353193595343467969430233649011688888677089886709218533103122213485626154270444126952886564594896791922902899715600502024132282262846251666255730334018200768474645198626048931024919152030121961514211086658071544173334257482992639238197317009760234104821054111127195456712674649853389978701945901035436584961516644490755006976018433916485646859380741675095650000215476932157955512861574808562067245769573276318897211423369690753178163230915163845173901488345550144985621877485679287658182049202968736369393746075400276192650166431158342495784669545642874079685195571246337655749255616592815628404111652241696448444910876167838211405695981950429683986288790596793416733320974475001963080453839552937399513736430988334918154712968672725375415377574124591141822070439042565484242099826803121079431462194012841525402475555426811613332952745039889454491384967825554880771338848598977602110124628970523522149960311638468236020614871898177236905192528575620397768763972952289536407709496229800610117495793015619693440556689224652835256654066567561935049444294292291264600603609650370794010878220821600381645034504214091736574766650357520099201113608948079447160629000730315618567647932363810726765869017442944988960456501749931158099204667103934863913825492109225281955830587250876964983037691488461080055472222265542432428704811579330048397892990653109994192627125268113040536226620419049935128920448091876429375314282566124813673800191570724229776989168281487565890065702471526487965633541961528909897764428134786675134892383117701466695969158437433684756048517999367748179141610382815930584738107513862690472381335079025152727516440996627542595531147166787752981374199282315904734038152624956559683881476631450645380154942348297883554694021187558757927289140443933385014765960698009666858211114995593613496917915232019229525519546556277271734477649298096005703651347006874351809064551695179107946102836381087812509101273524878856078496668138870524460885184427772261281331857832539893824343127255996180036565193936636815005543266684586183749742891739840569811391817833329991295613034388155808412992473982822736451533425921285124187585131088701875851608118390566278529426054162579375935571539791690050770833420146581476120953650738849152432102196335048889682434666573239385480881513854414378600307373308766364479983508939416477647467145802671299737272033687318034069400989225480771954957885842024337636353004300757009031919350841742997360855663114294535011143062630334084243721378987464331568338254767125254180287003690891992372367947533154728323125106288331917862627530210722342114672160736985417260810917917564306068953718215382089893449958548975586946600600877053947974524122674497397946432924419024909626606758459068894935765351522447907101795928128268751383447313158457493925546392377197522078522590071478502305194998812187281826076495389215266829977675281935126333752943694533119948944006643642794027163229021403338592610245224821321814020416199623050388000493896905403777154147827276045203770838015352221258328671501200107263419507136135955612387731306507112952199471102631546918437438133094231507177292180812256365995247054118054172591839395653632583673196814077423793439933265640601284026962376756687731303578531825762279702923541571693825309293856170730202691789036607181950477678163981637678858841318134828956035062605031655902265937119948141899987067752776847850809805541382153474315374477883925698486846932580249585035194849488498839886179766612499846013934515762249938930479447574110059803336310854234803859543247713565081487572655236684256690613049480858115891180612330800555736675235083415705270605060689349394791969592813712765318852644439303030793927477123316056754538474492983656654315637428603483686767993902015815765781395009319565589089565408582361423804625620711267845181376029909503658263136234139832802158473560263172759844586181879694678786541790670074434072408930518858775784691651193349671620866825706687551733498099755397046111950817416778691249213870965544069988641237339431832677872443037300858387923050246520973450320817035903182478170639318993828266645188517670145417925776507501010113706338374207784086474037128879781270747222785767107479431413408169324621755179513633967827121744215607141593944551551680039613366130809711811597254284064487153127455651842774774051604350666899482402038234147549697888343337126545351517158017109938533029073835582667030634719874644654904554481861681326039683511260822791761017208262399046506185007976627737953919599274367115868705919965915333432024165155543876430776309875515179725134202959867467280716993570903016039211229082527332555653260750252557679764163450228457894866451314732196058650545535411020453453950616242346913758306508651059651818924240264606105733920404667446459322890136294362414952250402402920621724410631105704699762648082445871850879669665015907530030039527347695698099410002712624126845516883886616809618621329551929161910337765189625167327086562237588563874524249525709710401902209455702844868880418451473202895176534960667382555201430516531464221981407888904960856036683411267460560925907342410615074894639886489716060209441963763612296191613309593933794042540151304030232222798477127877261599768441256191981591494183485437885290005433174410093241103207535351593452182481667366198228897193633593830801097773549123819291274250394670288315123636984783741194018202212614694398240585104635849818970204524970481687082139354522550397550684308137785323003075782449420552974824294452950547049903125244781565519737964251739892280256961047553117317762916273119211290148923789039921189301093675516498740483896726082900901657881942423941650376652661719082125682146668464447586399089400081509213239982684923084252214574220156929766302571432871914185057941365275941370568297054017408850166732193026528798033501537159911107727521106995435711954905655298184049941772387454254530145740331738299876542268960137103440519864121259794860399942147395336109362065394918022213915017896367571384097368498114613190139330329342185924971211507939011252333611451665425675665595287764310430224908070255429954195069498439105674613517798878693109065798752674602943635564693750055625658300690800286420207748806326874746077001119270132116825498480419944314644683474567097714130839652272001055971480478704385764213450505880501740749344510327557621641967714927059116142895601113009482132381539847356214802729118584907207182895227415333308091683171479727711235588192090779391710825423383694865503965695152824414428352674682629854292579025366379594064754893108644111702183448197747052992827681900381483837684154301144303254126180505861673431318310382990552477411211387602923315683953718140252326091791464549239609327068471113700317679123259035566433909970256160135062190085893367239326153520597344857245362347401330768217230728959567191088829561795876598395376530870793471223890034778761603443154748744266905271485215406974817537547272440066794354407958447752858034794355169592618336333314068388200727918423321289754376176898151431268449399742986744629090748358472286119517559049262351079542841087918776342826808766744886045314643053384541257274286352654762886945489011368634510686413149604744465643758689612888940249970199452265796759021529703828648053824956315245784850585052688993057500188679701701089403441138296450321866109967959359001155302533261370412766445563551072980410776633955971954220008222571856760092737338458176321591027503816911466371002889758907241773838135957574570688213538126451555699077416174734236354269470472118508333694192047031806228383820435467773764881355869816112983384064186898072870604461302242343635529222819601175471105359099463310293337452275456872807671523653630744309149308952928723247508162659647712894129397549466603067513615291452217269178605028120100768796588856978642201461442268754875038231776517236115531527813803380042374157398179653725269305471674093496712587313736900651510959415158113677464465303416274524586668237252285024523222673057164649219247047761835542974902326194897005621114811717270746102075391682115403878927634886655609311801620330830664990671075702432636551119653521000323767941200917707009948269617256591686389319711123122065026325176888167380880860172717266728099481802381530518850319149392492053543246822318750979228926298200000299531981112366940785995439715969618829555594686557862956713018131607829262190837439081440905714965797543490556572798962513356849968270623957411489757959623660431115257486849995325113124189223069517508081769755672302358397682238119669501715750113958585009739516817900259020083070975032503910472368407823591042968009251509361998136602887251916512851158386405680791787833827825051362478471103602589323051447239566370862539175012508232751202968016349531429252755346021771387546823853066646853957549793747545461279374846853604905277352333259638518332582831478003812059828090248027728066831502190552850280458305330305915375497441409620695080992783381281476120217572634831358089785963045708099224650559761265376107573616742877828142622777348967898259812702419166220526431005186423580853707878152582889166098516679305289972759775681637994121426967373711525996860201419384145629343968677546893778472641404880549891145155517251301405456530774662912398231388179322262403081099020143716567766032114668065718652905383328164181299604229384864210911048811738286260191459221036648103304876249092985252789148754752174426252556437296760415481835697829877641818807849380880591345982279855609457447018487105346643766118282329699851694954907271811847171351646249862690558028869597914900496331160002358541954103028214286636776063877027667237533636256581695347705579811151146125083456292540473564480705305292986496040637260388114342844402761626259257961869501483203906628600393492365561696804761219390742323324467817614077900016108184890329349994836474944383751131731601341807545948735667175648260230936281870705644149526538214613786502116638809364305741601405444868118684700540013546660093154254185110420291203540526611585085788842837947320407524999408210285383583881462988088324335890816474867547066898430065748758180531856298270524542658851910949952287726391158262640349736308817730161912184463013049092964455521943453817244583763599883481837398746272452808293105492384130811073408190112115779133173468888600585409486350724756001578875589038381852270402897461795023316999092299613100478132022991785449462413105301537893118808231420010435893145416943450571634347890728298696170216242927693013128566704014839360996234107449148049086333590277911507866013586748805855707138710913132787266884907285955917728773851882614343214608037977941275837143399679821118847269593198374066728850382057229994672570204284604977436582309611089280365670068595224868904196153808155416159848070468151091026709939127178335389542739571457497698686416406322915451620788100785233677590924562214453741135436443341313364360406657941441841633062368981756407880461165716624914736304379526965203227619095419922851255697236910172519052057778983317678623788598871491525896988961612191135366332283419915173622604880218859633685720372253810932389388381207798721331366181770992107357344121015830260439554704660110615741111196331230694097174034836428436602725845925810398769439635201718322944812410443776827626878277851894962145380373916817778313810629832262504491374986235711810041159272059393409460214930040561317150296715451823520401653272819551797131165363021407771597048452986789200054017090223376461520332035032751171542737110115679626624698589070003046628239102720678756569040924056098540772993333979479262880022836643469783386485287025502461862815355931730066727152260635711291925199360996110460503522165114221986934169311800503182056125356742971823964070546474441046656273473561695027063814869595829152324874972688763243965605613011828666123191514637865732565014621333021193297296561738633793470403738566017215046432811481726214115957595319712621428274567604208323904170172533925676732575350897009483668733171413473390769150601307025344968375389812852303708548454080981107510236919640826049359815629212359756729505087286458265665029946865288121627375089997928570382604566954120903680510816606574121719975861941636359031272107701121295133046999171952266554559877149047137120204814046798777153703809314435604625020679628544436373287649014704611147191737430811041366204118123550786630163569248807226278868374630796803020922487478977068004417162335287479596322027968928711941788047841279082590762634443830847668499474107437248902239947782714409878980562614714691091618794036827622753254858601820487442725369745598498184126544930480542681309503521785789229192045819004117044248617962388647848600015062389230206986169397628964946965483561208505700751295141929118674114892845158407289910973389995649765610106323266982556103287626152896217538483365033027136683030835960697702275295793432132716422446644185559648197429255783189703761470229796847325663486109273909947286262528608817856838744258435837827329706342765367124930805882740121125639453380204445608453093330057980204301495598054279439851108880682337986495383669964875624862455035329138014576745920770209680090768124018401605669472174624379719821749934519479885607533533159830806491279252965006915090746004961894167589066316548566424157502442732455862451033522265016782871783816789415715876254120717673209752241772811828445738071417910042099695737269586666353452489179341883677688767179614767395336199639317421330285393684747391097400315626654106811701506692628670502131269954392619542839943497482507242945177157043799223992238224630162994327649987993016149126045456821044400582078844375362506369323425509852650922520903912441296845426088071340489662900566248543587987119941795385459676458302983830242798831788895280897733696980102765390433950612485392256947034293629931508821315590039915285636953042805559626820242542547200139876809189931758502737339249555241204764739104698190016972664683999496807835845467716670008631453620300403033610748968402024234441249848232365186838605346806236423027150930420005002024668961027241244201171734290803323901659916466945950588795535048396651177330204392317697301212216869209187132885843911352054371255380996501663672154224009126491837370439110652723043342228900370435266498473513432850384931618990541435621900388361738761454669810884340179279483686853456948078549888675708083274420804715168356775938521493823103497624627416682927636422237916832545409868652222424049743732810037112008473402341112548944691068284203006530593616767757903276541120687333918114644487868571899996710497335853513620583521881497396048426346210422155102956864046730618906162304059916325057054732175765984136229162587539352734989372326524541838597469372253536093391004128742811464984866063796199140259936470213998394098209575813493868477781344764064293164920156104093536542277857573231606251085427306381254100020573708198508959837052217077707945948743480509333942658707680579679396621582107246904896474978310669272547944083890780384671006277905090055602475264072131410306528642033200982139625817243249741238359119596538080827094656941635170050511726951880122848246200242707617387305388683802544054019203973638720809066040019708884589305781790151161929173691128745335621846797526311907677472958839417824652779826207083154228527434558243611466704262766132723868189025494189871199357741867875525065774434335250601988648427088409333587472731735999460815688327619936874810331758972907969451013629665689665871158703167182396435318612341429152121810545647544825703775982891207087009373810659666958656938499630153860787012055712505399060738091100358220241413153192931577562411745128104797074697531900391927404914571734545941120116974622725297662225598350615050663852136560030828549311603078330035424106114266123952217032140073817443943379418358658397879937337991405393188065086470348542367733847285504232859272970657086099805563704003053050671677061516185954239842658187607533316121825118427690958719053108726784688130148132466454075219112134079339649163886436499090149965976964576910460488550313558168239446894187038719554098606998582300932468922501868386957425698222261644228609196783470501495552732679115846566506050301737173153511695074438447718039845502561994586395486619647653780199804423192917858719483409391827696154119893413492866757017972071040782386525173899090682839473997431345537542065967114756729357952389743788748248985371377007379494163252235691240062116821733538835632672001312608506394779128407380344117230005639942495250256871419467950943945273671821718691450719515511438151393420513934285075719015553933719911794408151494690550286892450630711436588798662549201981462141922169987053993173063575292367907738637182187613746402563136468017177741752746276975750069205648434004610499432073048876512738937765085444054144325039843271297438123471630602416484364194368659362790531450539294712975743090145532743020942305705824519001399542272033454977363246966723101247631491344554741661257873013068357646436955311444996886999175638789267923167954093615419351513816629810128083072572464342791766499981279032667809061184948906972149317316334191804376751609439182762313666563853027866807755753794600727777905668897671089508281606230824584678431869439684042137547381952795709268211837355203688672067441348775107325101017945790964103968942171669434193664579880233224945626360849035898781138886674475385029673996708634934394744940565009414212401129761838618481519614853320836168861540216579561141601287963998284516635356995225926206348991254390049463664826762369106330189703103595336057691561552524471046327040908963291869983541387558188141968929890611249958798699363340766813314466855628458960795298840677502763567949443822058194976235728809527906644535640105620990745385212666937007671855562240650680822876946462719207044202257706441596567956041407386746096766092825913737362397063315688891371120702349768063844794112301431335679852831073172669143191725091571725008111621705534764693602420613045894000365066134065904705889622183184424031237223105288649129999501913048399874928440338166161282001856133175420112690618197806833283464058236770770172812172103837600845658609052278976216850369623445913346792007860579271194282629113908833965946560964673063651146642476521400676173521746632352176851578048330336241471591500103701515618963343245952118995173266610310330615290493285162445671262697678615277964475741998683435877296791960262830168716494743458143240476987774005813227546883304244319845843243243476795781116649034887451987901035692101557486159285922112631586480688621265614547613869883122499290981092876460223105905797659356781259970894159525560899894104183112223228109286816479451794047758193884760035023118905849987556576853866883653715537133981837385144439891816400908730802446791949441410494356631689696545335687794998311609377142488076622260909951007212353185980336313798212708116781792238215532479430042463894160371193304621902011806755991645051586926792975098131020276818221803972238804833461311873971654381980845748736391080275662404845827524311858032926037766425395935801870300303413112116415229558754295804770471411179709779986064364907851276335781374073147693345714716377858130083639423025356293450632359300096353283816020579894156401602410471426821405079439698583784109015615808015499569976447030891142462353499049034754606749429070534621413391908865588487636194109226127221929292450144079766665530856438776587772158639359280417425126065276207488255145422165624674377257965149026260313334794016975309418447471652762161356384589672597810445871404712190834849512218891759969336064746134337051118829692498541287238516385022187324895423879683461459347480399643875174127166658123205270635616466452762262273399173559467351112443918409843738054679607144439773357065058712786468662319904098190814269608673502503072879626368681623484373801052992580914389345261499073473158099809792699428268913055235336824908300317833518188571674730612635841565872970678432420116569227542723028649522133685083656648509070995872305733661169279784542583888124764859322619407721833905792432677620904398703268809723840263461065323440234715032263029184033938409702425691693813657466763847068113339442957244529571317249240557713197684057186571469621773784225605565881047759590543368941159453053321692687314558325581791523407708663286022163196131230545962757399176175144165488167253778695954995093911438425901748447685331994870580757511664804459510713634179385811518818737258860241035961235260201233170856566789530278064065221661764666678728818742861933661397041362746661766458778243090360587986457047854413201643091488313009613017587602776865870844778902091147167653955021864184102496546192793916929208476891922881982372301342338035990706773250246823473751916330462752252964631525964032006867379543894160317184222757420007333346017547314529294218491421378135417112880750278185752446638107962819053723279345173078169719002900484159345412939776212732081538573338934240679515389793417693313285378319487750618146557015337665146004829480687401972767689952562697431669727810555241482891832692214126102388984329901426269020368393586530127401171177501760267034943177856326797347632428167275754677882273902824357832730736828729513566281470484955098098257452028292047928689751805269875013649565574021039287261492414190230127352288086259204845957210486360688840585741753545904032338547899410882255653919791533051028478684725615472090557723228823857417161582631529524395898635786957249548016664805530402525111368207510391884894846083807260515761140854017762665653133527353502113228761547297181038544231341308661723105886634276692081382611366231566139119857725025708359250645601179445700016809850299554791334680825701460624258126014651347063999725027153654392949404283549861818730311324540634092857680531181537033303068943975001422039937859809991433751704697806553542370867053805527907980174784828759157895000881952638218663894624247503037633269627067760390548215635635635206004226655146793634183204392404612003955744863732367237399241186927588068964507271747232946161789409707277553803966883665460157008057817935303028418009574122168410490508658530771378749673453497424572437291268237560696280577469699341557127443846300536681351020418062750318691781563209804209944462931232506780584698544937087541270419369930613508825437153684760266471410204712344501073137217112576126444255496196855000396667913140817324889196875304459771647693439940568144719909571581399812344409734831066458303573236288581988813470566850652584421620479516018587102288121450826779980536092128103514967558398466986062410659617028008423752315681571219982195325658229839878033659505974134818682923850699769226421561006733369669919618989159664830140795603368876146483072595619935874687472925633724956351798844209842955658366719988967872472328134892405384603557934839864079871272948957505298448135234716919946897847762283323153328096570667396717475208423234733164842610336273402930364353843492614017136362361958866961352150308319117892287084548526693042313253851329233075119176077309858611825560311443068708721525554426781237312907984134171944895621322627334241341465141037022705291507423497426969756547098822985514207541114351189996011437858156006344921385859271423632942362350432405949127539482846582347419464319847318047756960659680833258036858044351118207425414694659642619688061185547229394483971520685059515214261838598203492531289702170703624992775133689980403915749404900425308636795603596767146177644921958387503186559174969580636149849414465437428540690179729338730214685936351393748097839687323367030113921382170079237953296249339948337044583573982502159174082917561936215817988684833961650351430150363847889833077986342596009131372445098088329139102257708582729703317131689965412766073427375891233616338679225830815905868865905546676404598420762459288235497636289154543457191835528425265855582768321899587539864452233608964971218088741941067775333800819933323726736836958155541192099369096199249650631582763760951483763233761191007228245399313691754274402336660414614506777233737851426091447672634051992517096636703751532120556712827304793925401361716989724292772565155008633202092662418829720894057149452202743312132685135208553830497306800049532003574126143413102710904331153593618515952767402956766991991596746478985136202738576019504364021492151798916130354454634873390519449304774876964476751368090801706525401272491047320122940219781108530827429010473841317688523145272925464623895300231411937565113921873008720329343684637213147412368564469689952787408840877843215991419550876029699073770171916945925445720269826601041679267869080318113256212875228875238159554458903907137510906665622579231540637988445305052302811730331179475609456570958676028250236078564390166236262942595064250194972460202785045768485037279878397760445476697079665013845457477645595865262152815962343182151331935967273392001691104473189254484847989415063740249684887630400414001498927383005038777755218820283219649243320299859742972327741506762479230412199214621425156937875915534198535981512822780664494539401435045003181879690644151881457781872854078742218466777309298036171812627001787158706423455278005770193170976840489824129041660993826644146599488641172950781689899975094144645104875275505405462794196438890950686015873592006807949206482478805287399620576490556615340100702156625183474512692941244336067323705755089332231591009077689482141727968240426953368208494399936573110593898366072756700908747711126942816367767578481376815883074861713844562628978141139369627592287585093492230054133991733952910191086409372100780322023845248939532010222442878729733217568712260289803833080485317237708290115841368154618861754973683176425792366375118783218252227660470392351414991328047920992719450094934647352220210947659058763489415900519309854758706564546132139470019614898271564025338721910409981399483224025316082466114038225019447859252731328852766850343497769976818432802461913672725492380556818720456078952909370114154620211802865238841822252344334943525745109766808349818756051048129525270624304498049798808179487075571357751871774990278272087912660921709544643498844485769978973440871096786586042745937722745181278283093370088914345175702883787398929299279155487138216032400528399506476186671582379071530962442699738265422050619393188258532509099424655475247422975970417477892038979293918280781281274571291403549451762911397408794366059424013880124348710760802881371107601170036082902342304262783832325319000998060660506642728942537503688310421065742915713688674312325559281099591574449836729692320480234652867512356509872312565740549763499584357312248167554548605257166708144017613747425868025535076599735755476549997015955753620460633013846401227945692174441589672472560514073590020163599254711798460079206177105206858398000166608963014757155547440454555574056702302293922243167895482696277803864858410134534001535920789685039794029600081400243377190624523530652452154285633461312697379676015904246804988144862625425319654281811250890125582441338429892036492666544824636625055464556876162094225069043924876109749743216129246938324015310902686547341323059722096996287738908883984137889635533688111423793347753051637696720118195716338657630273618402028202742423880063026434537474673489719344002820257641804533857821976098432859867046269854678864174427303730081460624999078243171182502940331718039817947599076703969656231186492703360202778041461236747707283587706879506205889146320735723514321457869586332797067339973329339947059949525482830656579806397927509121227166032594472936559309108820423168667973947956459085336246690781844230834022523585224116945143169715325479219295871683592465827102878907365549657856448649694088233784103881887350869645119090887931814595001219135384667910934624404914618329874598325138603835350604731912105548205916844563928288669819955622160936296562661172166090656250060676059602791117016505505349984212335151570994703695245572171109527633351469982481438991209012935538377498287746233863484928873894306384384920754651145395333602842330233584717831716522625751362966558317627396119350341557450715010200240203368572610250106843474727755678049769976681319132507089982525492329257883182440113874181169644255949070313328407749351215391874635511288951722229688187098662043786289020324244951353436417902418366574190850696121658004277195541054097129916638285967965870490226496968986618810063830315402097289885211362682887719552759405431383853355575014511967120289870133272421989531786438509646468434727193953413325918965291376555280846104822495659907265805585397519073514561676798252106248057205989310238128768548042772641441961043082527459409650274761178703152100818238139538556147240942556921011921105661160412295388930399737755473720608988184926713447572315025438016812137281330445067078357246576556090710494890466867944398958911285833860296888796365125588522218995968798710977490990061194076767105554060284903079307175777791810044047009797342347151950551725445126275725205463807998884416699046939778823055983940562376115545083618507290428363161648077395598614319738878163001340086793030980442544615263426518055553101831317186827349907079461694986163490697580286823916020596328183009363782942217100465595957185770379763147781190145365034938907047420923499064525254502442279841760682747240245775716453494198796716833150489338653705007736809091163060723046777913351541835959712429240335565672703612773885911358091050135537209202944705727147456347973940090027682236580352066750871142588430391264715688136248437299797309594507113171265629471880728821905271526792156804197133301164115037051321215570138127632995840149298983040887947536232455342142698778121901460638487197166071483436269707710735677030474986641846830794988077998670055564371865201811087000668026510402648178610426984011666797723606066073432453378637401969225777813536391127655057001079089734288286105213739798613892301016992328627927049675269602123604047227230454281996628967644242901934325242854553847679280354462134421147067467824507254097489156035061056191503438879084064431241514439794646045310404992884567413802237809394906936254318830365242240156910335126264843672831083389523873529186414050832298764606974109819164282890459075574602676482904352024659007497751328740022043597947024766875297202575835077822799781698625389891054648540476374883398222422597182238764170897614444303268384980538041389824529899583531670217996441377998104285473231177260238958753086188097392488227909893469557443327564012955540994544703720996585459972200892226726661045927487011471024108350921854887775834340375354963200490773746545576303261839463440942145973118266060328838486681885076817707280561888916112491559068091908589721478195232805966780393595973793712109606561641079605364273181356290144105595652485376619907773973137508089269159305392248317556471140661241498240831257315700011719020314857826711299320721042884443478931907071253627863067945051011134565531778366132900909645797061795788283910336148609501873666113310570602521730562594733465265513967766000815352424295345022769675993783926964222386360921221619432491901924827541027339461199940185451718017762462663230083835911869157448306077179743810878136445383295127702556468729020125014552161532534097023734035621384081090413424546014171335944757277130906405603696392496727119482545634787619034809304224091288826388619335717547625831216206899300958182417724392762738575586869907722759690745050548968929065922356312029549650814311958949058088006787583261781290068686410351692398123520296635633009151523685127833548184096630211627657049068351243552937026639588075194952108661787005867963565135439422470525660378715375080618744382140207539029656395668423094662461071542732093385702849141438389488287380177474434245842556165976986056971205029605301851978654158763869767577246364047763058335969733383241762992474371526000058438487637197393894071981498040098358035606877743811143184073481165025932648089806313249141598343076822017529443795473186451411132929130807335366681441337150179086922172676384930135329570544885503171794862461089622520788843051221904174518479619419951158599887880595447981552568557336859525683499033911492433227775109936876074670326650949313072227691594125656127526309653867951621134287503410846125951845101813541789296427562530326463605777879186150922631236789526422556367457469521499432240455520218495509731773254646427673208101536716936122309826631964963019153693055612208293410638518916080266805413093141811955580074621557687095114160260678752685469789896166684137899114624319216408980690459501002200908345322970683042987262826047275492079043360487463890955949386257088606616100536867060217003122939383246148742332628987712066152262185264456494530639127503308352088197762642069180699315198808020119812774536892412405410680058114996191815687483554386570306539939925736332799399134255906358396795876549100619410301250434911342750272176759026660004094936981829962170736824608999850116531969996561969557085700908612654852255931042977331781434739336050208300841935097404698942844477584903585545294232884400030098540577869180996204091873169355481562375424603733783246606938214888279522174554330885348237651465290902467346935700161897775529954913004817385543688843653243731049445935275759167984163350128004318929968645972570530525495731914727084703639457716997217844553076138870949366927978911883564850998746240993579805562073131673625488316777818664374325144669353775392451306648820578020059020275561436880665882404423032589643192435640336334537277262600397744379009373429430743119882449571793876665554259201168582797906922865029462857779849329638314355702628092686397212317763553590924381330926730325593167603368624027092123461264413041345331454198245612612772021372050913887902634081637030746616938987158158155690371822428939733671653553708103075525184538218155619746947893748937599337005531220521288940077079319518282956713583199539708406960093874690064408062962347067564776832600391486496878228163087916283603220880743777912267549731667989370478986366635854867971858616949934337438749781697660093692722530620651246043250467100175003472928136450412405275386735818475173679917275707533193883745185378887195003785555310888787609150677858184508726181706262741055930626280476171425882823046262179199380603621222683694194860227062208373100623131544619855350207780397256683696545567005453705784959522942326659597785336773037800092005204161945912991535401814719040864747471075978089969844811393413003737780414877176497376028395584519133118973490816922951080894378185095551550375502991843074357055572757411112213879337414684138413473845124070658534927539804175755141463180484836870712386933976326991744386410256588957727877699167959467886866487265898848996864342728316273144527076249420628698111683062438915321187500307717375051531156989105212969493540646078253032294199058765676839138533465664810238436558297189127352196568258094101733374652763145714171105380620826807674789875662498624578082935160088847348760955350556873170166664763175787875836710077226685402087730302357464752241507893827416042307103640101824019097043085358575012188656160010272447147458266519435511170189648007108831624485570284306482123464290360166925724435188402383496264005812531193688291629002557603738349378257148503355408950876768145820128563696080400260941974550457756782206083739065771569459174996161834214935652260254362829230519894328791262646569311631657116702338305087339666783902800324483684306390684902399312554523696215685482161786606467257301676974537571962571374982989966532864191102180406232578195781356494199424906081893924106529639066090199710975875785077979142222864398171011447722644166863109864949247138906592172621819786672177330293149715890416521173427579605438627781121118730578462513716552793786961789740141476005779934276233693346408820992537968387991902709441767238948083098684575941544569447296248895579570993893384395153769689095633975676340487342768611366232969007818332959468962138894052312973429885396336500284040422123146780419744832541527517522415540989883862750995855319227033576154781025460396439238762118885714977951795132142110568857999166278634470888098401177589376361207706356112052289459420606636213966697605133567266112306368419131517341210980183955232094375540847285786533106333761617973968246466692899797309270041052552082702610973907834880354429613443438034980084989903945009343620434489180960198481742919065182175776431117398140308723568641370949742544435506059064295139921880704745841199274999450403967721045381765598382713952882115001692827423514289439380082093186733446511745384765838027082962120606765107756697243842363138037426657703370349275961624312892013034675053346400972347721578838500857763325617602732842531038618856936270965485989929254058536087173380101138906962610236306373777510599800485992140259508328238082463898875296970564402566833486013958512972462206508651502943070663785231959243005229387878685102504572705995873337758723996182050017261500844754369396545318395218621266920391865357356960779397583681350615912277371191748805452654989108521941787912487579577983776012600377234560103711932417715909275032538800533338413867861712129390890629739881107631091505386808120560345959863891903541783693182251732752738200355518095179750795748681718188694041840149000527515592906013996554850188033366779200693588371021082942652450871188317227283046706540986824930574563003606897176040099155280709703302859898111297173725965610963664852010737517038654592137073243632730156317133093840186537768500350818868777111679320070423101216611634150910392141287646551646744982057467421494385530150156209150513774767660472192295798960477388284423493554052667703648275507700747462852267762827212504005775810277729699303482084266711982305865130730966707121288102234307172448661912740105921437932011344729074846659394088520603660535023140558995321128741748809600375348145973370323316009958866069971608487771348907937071343796083198529122687976934688867558674652360766057624780411161693343364642204461890800701280994046758877364258620189632399375449451789027639327358400436389766802278936995083155574469411176343108522078721526543107549342055666249637191194593905740117254646602770899583292831286882133001512776829964178127923223104278256680079325112222575247138532769828621903503868405437239937319025191982772351126241618309337827012646705053205210958706739841731242084643424399805009217338561002589253462601074926516008601207264350981088246536102127005192900903645942726485716816652156163958034492119604406596743400734654085689943059520160667941184117026183144724778852695710391937865089446034044961983355328538306056375519747370945206462838508990244573840094677269505422267417910024346848843797773731802140648004446454520481253399936078295449538766826771506684846759757289067671180730404983817419664267888176557547587768977210909991248669196867826461021230833678504100564167687608611973049659201864273951721358390075852957315821175552289377242475562172234991289045610747733102194753740154496776802240760092633899020657858533895870315951242133642421364846904834298188079663179239695150355192680186705083242784310111923592593871780404780021501173615395740953982573483380767839563013512941697130860399949464263245842058532303619437526095343111974585179656300084960584611723217858247287883328250128347418999415316807790477672717254039901041254104283760330105963325479784112025355523177629901817171672933774950702832378731747338224948355279580826503554347880440261262231879163769762311193705646093579670337733766306003076237268322668271501637862533504629009617305767827458170235576733524682845962502393211350258889798228901559591902182875537763668282871548249238413639101252943176929470105190673072781216900995804926590789468867916424235931163165297576394406862401795814919275990859471090279405669431645490684618666295368807549999083644250097408940169641352215047263790184742471948867994844112064354837594968548217505995255759779619096860594198084098666948664144228619508607300984067840812215752498440288660786189339542929098523428085154664938604371811360282105417189109144112894109714067173969866893392999975498404072040024263166096116099085233793811616151600522793054767914365907831357133453269821749049376892700712902987665799578083724225119550471707004264369737222738180212767028207381020240612411513874614352803515202226511032805579168919179884372443446729955168378101927834214061208117829428187868814400022764307827066385591292318831712422973778030597625504424816615021801520827260999008463905025082011743221429920503887612223648606374293057703726201730252726184080897082443412815290771311504650687980108595339336384641564268125828989588211349091384404134293819366074234305161979590748427103953788740852659195699412803018587028521059365377445524386060976348979084634605711715416611568640421360372847101207423831975917660383836706713429516560200277462122610971543209875083299957856473050546245061433527082864214967842830264213899364426378563007179681391433783694024511051239458839782230887815295879044035756249712422921298562544943792377895031046297348618378460932262560262915377937828622309856928620921703154878689930171804499017357474446082928730199091401456336358408195376368446395027421585164757733968589965121544613883589123924335542911429651138423140453770205952668181133106685868458654713081083921194239987412782436322547819771353332681508900552570964564021617369624599719046206121068407656306721756187635332298977562909436574428757886052408702541031250956172406137538284261442784680026102910165609082156532253183868722536145395176746197093762283585279132285071458384277701979180208572327762319579273966268994705259058115270617392001943960619261624480550996047855504224466297588754639982500544913758065901413462837446546378148720201531404833135087403056881679347956423440053163185912205462886754276239587265568154206961209133484160730628612122697035385219189619037738966827639489186732817322482963363282497321322553126889513351099669886419519817628828459750302140793660937899252658112440523390421365637309495718638193737547309303646116276792728117649536760025833277899279567770975217768679322798374872191987511918417728184292178441298848339559625442497285546261027800024709885930496793394483583199718954054900720888858950149807436016153716882941452035671463567909361702879086280922267919137755724942440626877676083268214159583990122837823471424764713287325792423289291762795730601835856997210144559216285338124168488147654831073340805078040931766028663019705860554655293732067793554796680063016857205749420953193929229753249867500288844602030138573637246023327167181940060971337360243995100596944437233735234973205077748184057489525868653403530064513281109755154385753011280727477511704782390234827043374829391428310772965270626905352631072008820948118794188598478078522488041483725634402677858094585709542942443295039149022738957674446085117150578347300146789295590006319094541201772412223369192668095655486919028602574639791574168457948828707373775868240420735598661758164876958214211568503528639706022157335085683159556814496992293864425245254365751113235685398274038607888652298283206232036889858970070998233785195425660668437776422815339422077966614352017220691119083176057965035541600215854856062553204220251346580567583686708489096918496135331634623027410407975380476931793539619545993846319070332825098096318584302808963756283126303058641316381778677936732324530758825789409660216892275038566411595619405536923738416007822503438691506203516674505346055273637525014829118070072496610295081167986122481342078798956445658695531488476862439944465344452544956332647224152552764263598842162674168657386394497045761099707950755133127993806891165292248556529849029251265160832187080997263997103666970190234833475826304462607496097454109796387768253442130399634108477493764898380183220166968564967142318243214756782826230403016198868321000288861199810525709661209695513135191942666299696619683266054790302074944611277658821987719720331588923653529965880636146537976051879272325556307771158528261490119979305082797817962957880516838864033497119632855844021373918081186041703952883419510380214480476806912512971938482591553874230881379765252008985176587989240551646315475984839379386709969797757151600024087209636146865389028369745796657747281982906994074583349696580167719958894336388995527674369537425018543092447360510324991885519033413706633572359731710813990159491912869742731871660013477883793601231529378561276527409537529462874424949324176854929098250492411071744893682046535069158007836211561014731443241172669683360579283306620529680275807018877470826510775266486511766750248948060088452450283091949145554191713863509162522283852852945836468825053629565050255327826189625927344306062457709594915185380276324572545912374012554109201843373862451798918642153530061286371778160962187258658263711314188532730933924629879901198540486071187831090938495399050903833948942032461721716191294086009507834094512811203680866127464725583728687151597298864589419853011152899034639543953554193803698390863135313854117772719664715006537218561314108327348441796545559462816628464316001120169491150983252633686473236427712517648256941362658204965139220920086767219377925087570178691322063669339811112498723894664722494097469180441985108341910364608472677633408210465613913273765259469644745128060219608358530120995728896753223471529197008862851807633749245581568449895384308165882776485970899198215399675358244651852015736423359163996868797831622606798989660102817727590463010136633642131044131143655508138474717751538190873436867634132741749685120685903506265872387912478791099727717950996876283001094955896701146558614626924547521984846835061834372689050732401951882722126710869155198112617570024197418190939291751290273194496374118111522149951061015913011313879046678735489491760656992597996225040354218716391628576416928451851417793916751166795508148773048570162521334917074849092914033830461140424038614566857059613083679188266376442837950296378546635655925813707000724942456726445085735285417122413958506596585371530140455537940630150094283247969192073120910323941958637234491755877242550946523324144799389633636796437608019304061440139428679542269495272903349585765176247417926902516061871327857521395127180789263007100909627564039587061073374479821542677807208149543404030570987453169929640751706030182756823826365109742469172851563407571976661326346238245734877798809015571997838720237431384131369097968838966668986428227356274642848743547153829231923913393816720932113170942682788336133607612517079837924194578920128156506838887135714418112650351872391884956377938586257308666715132922023806738052463648763265284458094325162955561592190458446728216338534137268441725412396473043559656899979025456990583252391178248642936815256429602253671423287284771684171918415221237568295495650488180022110656808175669488413178202020676433085711366825713814622786152918141447353864188993049377394889603763494686167972088452933378416431686662167701523578553556566251463534589679628738701344204877768160715408376449395342772948996740474411181092471329148226423196429382511108171228462418547920287842903820291148892251571418102324474693473599371825896709878998080334032321203252514285727135504735808414473345585124536795282780275609911059417537093013957071595214777116228645089733826237342090065738040398422729467215811476752852865469237039068039739580399460103722041478707070929820059762707178244876519738625262889066859853121627564328093793336828301782467375721338779626933484595613517301893398241916334564025962295053535759294304959980592625537967330336920453776371269255861659427725825872516233250322794708503073411652624531144303660203104157399626735097421988161793031341368524248419699646561384993816863870257183974340724444226089653949965732085441487754083690260753077597457866717013787726638331778295787035002297714867982321701458441300096364535822808564588696018221920529045763903004146116326293907601088396704404285042003183347315178944571649601453203385667651117412203054757369774137350395395865341771305006339469956348943925702661437958203603470157992771401627967033632978468451674969685367945798741958244149958088245845495360228713395074220777794511289421891604669232490341127971520752923072935470448089593311886349454673598284172408229913591559976418592304430504041964099893003080048052821036307374696521549333251893803494330734303039926873257162142240063819098907149202487611000859028590320765338502727370705980243174124616383134443280432132389884054371421233086157032576642637408066131220500605636801134551965961520041947683278236415507308855664441483673354091893448624590562848495363634884343489518800611616049694396640834011096944099126306700009276187211393761546314539650453008509003346351903084365683789707507774383370291778942023670448054290840533607994893577060216120387758005544774818448971225488756012700839951045176151957167545583220032787159206142632389434466284793582440894536129945906997559673820138407553445244982960287353011098705199439160262648566889330061320462135615924577549550860627912052789139927634043664725733982792029589557491369942742399878595373058431410548516381530766311630973973997511188745826050576044004836901909634097081760310456128605293068161092456058964420080957987437519721829995071475047033664783954989147265261975867067238357566459967051032470177469003598083490809669331709365898730787254382156699065144157256301633646733991374807413245048290562733954955868826942087267194038366057584472833389632621656445172554110869225970465687527344481811615785879411795007548104258750241691268037397619011916367184372274738382938871861276040834819306202458509228484302082951661537289178639984778850621746328745381311101762997315523128782461215687343458406204008028248128398679457601174013683459030543116340580857891165411857744156382370292231803269899062052046548489758635396501533125164998060811017448521574350532159212035278195492642675178993629194924366042880394264216820931525819463402050576854603282060716108568515640871513586712737684507928230435009317997126202259940897427530810425583119756292049052582316162410224757787926340862394359521190128543969404867402015536864184966546918125748126552114368534167204073110682285354505523192828658332510223017407366129404477708338600884170634926837659020981100724119336271146407948423007474876403974421292103092061828474066772649180387791487096730751255074396396445256857946879681488638545273170412162555945472910649991161188490892559021268469450288411994046922609392613234994891885793415030439675240953338808535126587403178865864452731341127239833593796274171367072867797906055329309094310700204370374241893411510569104293106122251330961018841649552640548508239543041862477092002781235919800468612794816341790028943879221256389712111169205800135767226367227886633561231707584826623490327191435033653426452394461432569762009363406682093253316671133628704505759754382683304836819411070338592291527974678229580966260483689341578881621700359761387631774977578045978561357233537660509817221712913514505510099426329689711591150400482193136684244118461135192312542649206227629887803204687997281191649464196757598477231964334495012916295852693388242928856256320158614007296936475554860270074570034359403930586140079525135957366218209692585307458859214459768983193940499811382378003407042946273205722313118778360000437337053927528680989802402584175374373988615577273829897090198373123180103024996991793257380486724706863478164184819989226072799450472935417887634965781627578632898568845104582579305281467807852626530228963846992068048377658819567271486224225115157406670372008301499463057092162828343086385769750610753438730165537662556781447983334866190022974456072807749727201557107438575400986815583487867258269134113328700270219645245804513654354933062291634176337993260069229772446050819763100591736842372802683657675240343402345696059354391093420966764480651808111087686201984424214173552485149522422404609270339283034177711304850426440764178737587084061653852985000792433527144460774700071540940879341855354569677270268668119748711329530973135939172717628239368615758406342187015035093857141462690501759994681711413698700420097032640145354422856939568993828364344024538065123334961723160532111166980134446097976702831380222368389081200967566624435032963808194564166087811597196475010957277587104250305622282770144760529579276092402077981512736440858925556801377983749252452772162177777764634574056317370868618755613483876132534401697873711022758441294645626119183262123346462909130948411865484590791015164462372307507543368058620304069901881887777163963856908762636761749218128806193405623961190300954336611596337056967763724355534247370997998013191786549255149889717725089662929139457563223491659371040716310444354958630779191100133789238996821700761147313925819127208302251262815997917856320388401330008967881747443590790124438169509643738884416800128020243839460610386207925280487270808054417685188738772346511275952232250162473144918329306962652745149157831030210391106484341293823008159834743329373252339237505980196525340436525850997450809887203438892511484667746287689070838163832186851315600256556351887225160317497637726368155374618800204607669645803794126309589067967231986067663224109928879882865533243821212574427889891719651351591416193302026682772785066818391523883722676396155268728865286851078638001944389085096371045350273300850988853230997117197039322017308571457298569844616003985023898979846128973965535875926834956690068492442974821484407831632280789237759660862346549754402271127376032144088558926768005628061926432021840035518713419890389501365943304275698703975795493718825658432127689966059691160753538111445061523785213788932648739778091290168852887041713721124343601304823280194447905985456484614856380301367497628880845603704481196871908107494133372220889425292616120249562997193360798202204941042398151698997665439489783413731986817830596221868333231517128922301060024353444868319334984430125251656909788499822833521513348142412178030303344712399525085917824646984615621896881120616967603795907285726548750093371502005246646025588873840637090799975254464820309367049310450646563802806935657797257578845892843785222540094076991385830868812821928633963553512841498558519717541610492534719116913040328176364665408911362835478625194192244674677640240819660634464368037228319259835133776762122934627819127176973835742475487557943633116291260240901059352142613023778103480384553946191799724809699769270946742974723986559096037266410497032917530959579974528582930810124076361731044393404692325608463723928781654588404018270532528479339884068527818293140166621979887356933835273364792801411124136698950044399900127102708020894199763673823986147537373808566793563176248086091257849446669822535733424336364452331615786993369039853133962634153940384048204160083112716761520168270987598746144576470991679377938536304532921498355577525963016578918343706447789553467415722390345074468559051401482100120570516211498566560662311980694981705459763331766539426714824008929313195138956089969658077155739170607470342008126929120383218771458174555688352107799636371882600082051334670129042410951249990578841290195687853167170779291506668024831204036194913271602233317282234361120962067601458287909817078369998035189044433965471656531141931062198943935738820048943125726128792808733329053348472019763720499546018124050700198710338061923930419430853631949031555148009838312113069036413723626170499695432610682449558256928947949211128379678945516609561881056380205438884217157368259581334916347775604390721606820535974329684437721321374184696497688662839975307476572295790486432646800638921665317250529992956954879638463382230049429488162810308031375013362523565272319314968118911023813776439796949675704122610493341782875797168941386193943463724434502398500910212481895541674211485981765980675241216860473725145587125582450870617950752962085688283384408853081386221186304364590578236688386085862865540721015469239928539548882487547530823701099072775075641974674482492790667134766556318254433700149782855282533502907421526365791269700834036259670833945526005338893789509198409292025477374307019682480069719563268959623282976467460629661396812094790312170740516023730289230295111393344223388192293950883369755065877354462980126217562878880004345902388581888693410798139634009989342286105328534901719708949677538883406115618111496182188335822868055056230934487338515835688205721193122237180012578700932208047431449210483611419026403074161007294349555162905796299088408637864332252902515593683383648118995337257418473553538658575197202114367974888447346197827457287021304238470299759825411351354573116289601396922032582075173577588857009692016183475692338749530734651009470156584422190321406182222887727072419718085723703118443345050496821141098249634583714065277726475757892283679122408581744356091184658614246906391672963533700552407350294950122737278430841419658707651384561027962402602843875532703118918484760267283940161066586080564258330294103195430196798809208114165474150818919303702916142932961879786434664334645900098336963238990986405127808999448503220994739714199386900672189277709325225971960534012165459793061914192590802246778280072825123942923240865696013976446637564998686401457155970358477025462107493711114984783187886875338935410925966371345244142902117910202107319280279640445715911717667008094403102565937872947639307058001147466197158168444968136394834286849192179386406323463086448237346498362669833866282545389090667871073782560218278800212097798716125840415397439078258013761581390610406312240216425617276967602146839974731957550841896838704379812649992982306973681592138757365290271661883951650921142734173146819055439094475828817515961138386216463307236217515312342729154707889710627016796731654875796606846540292560737610625348606025706394194169516865922705183520894392277902395624232132146067374230445479158718428319237977512647202787032959507979638024299562874489538995899439373275666833410163767506000141292224555397171049076408984249562058872849125106057789784997880252612960589971422719298350781024205145358019073336854757666623320975995360396894268365839400966690758679290164259303053855235606303287632848720328512768262459782899302444556373100744713051489751458944555123944215801013637221571318089877570691199794118691378883773447888600873771779958198338758638781740377905571264823760381663347940967929158111111701632436067627942928257358408342298735242531888575013991582154001915809960930546674486594329381411384164341327508329236221946706046879616411415492904798123238265033120208822527888825216173367230274680317787598910995983558177674699245479267140842807768699389058452367597302520369141718497506275875068229233599423277574264320966828194282694619420959749132735824945342163008667000886091181980506213224164782114805410769303153751308956335856194117851937589589597481226483136431521120264149985614476562769283045103137758727796134248194906767638032242297951762955151916146770258354826897861872882202852986130403492240021129471625847261810344461134199875129126876902609779253644382654850458731418680305590203558728551496469639356675053592260041165658852977036100681743347643921773321666674714914617173172436251925728128206928625260146350513559574417070016099053645326055860243398736655233812824296705300238452709666731517223730137430890759036844098959756477949955799013655520418963033185921460834970363550320687442353629731098797269667978157244139963974798148683627089002567584583960935706325375385815825410909856924842125208067574723667368552176464511862901947020005796393329942039461553168028839761948460117325402907119705031896169847509424360608112297200473518941084735583800776365766040391250165617905467952532416798265630146421936916291313720147764920731236397681975013979382809425910128589297397433233752416501471576864315239909520377391847254653426470939235992413724481636857030396649325800933456845997927913861301154925966978533261566581136688750027940290374034537926305774144310109326125945407947241436716819759507937910193048271013547492744713751332981964821788989992475536077917133772322238079747043799609410358620338313630780706742194396461518909822136124006262810183652068015446728477859421211878181522316891422051017244544473002484973668202439161598135326673040153925807436811170762105127701990029100751945144924855042139926892401995904562785476835226974345126346693677143591514674741420900121809991049944819026723787778528602291814038065577930445787314664440168570342154504829445694349266977594021702804370580505297436091227216132238149723466298998571617988727029863376810320589773293759343328176218795062867344584264215492935715482808857498680315182081699109960296721756502701998982367084780854013458176438933244610138716984093309991954169165106492778520226651291766492560567790016523037621878784177807761694518256398295185228801968786652418788316102952775366493806280725235495364941488302933081567569195766359464525791631965546617064628669507807953984022497928150009819593002540575521650546611634395496250267764929398799312468419043950308728865543894709188945640451959858737408349920122274670693629925260231505526032756393150796899259907172470688916590476246712164163110575099867937567898858420187270415262552258081870161343669670303265902745294987040495418042564604332975741302359982730411976800843191694262623168818527922486568365012098448464939740916521959939592216647013482425594901367120049438630998129469603789669539002474007942587276289448968450162338218905098427533884111506038183689924421109552128139775481396040187788119691330944569927334835507081691816620371118929372198660083002659811829988854696199411309086811925561387084073305792726319733606419355070042440870598455946754955072839565974810648607499601036665267545817702535112455373265693837589185719029236379573564209038038107005379944737400360148946065729358061296118548955426114209208226753863192416279008696825054932758919488944080799393316133792468297208200712450848396343553986453956705599491689332632356410926732242711740355491526108603260918451969129938823151179091789085997612132571295868820335401870355863968486769103525817543480722034079336318260554002612368335847984513522400901691578880716948103320072068779706455668860720811822969115464564546141181524967063682536484979731560940111179898289926290143644130224315701118966885550257851902408531082440013603942875604380691966672593407833258109635205325983539581707683855439179033582064458379123379976227315885212790181192261143026926763591179287549032575507389539642184640362681418231630900482045853793364077625747342939968695764055006069752399141806090841843622965571535735241075363865854933043896055521300787136009500607399212921929311672919390555668465672468620906387023048750556491923790471203471742055527796464123882123397979662131556183612554268425420150289136996446985751440554422833750637742290260408773622509920623331468471027556689742269706844822411365842279627335941082709340996442156484379254528907290979576300682124066533869037711307586406128221264912834427775458576419004228745341262993334182645845112293325682202283659720074933757898860667979431160876306106553677528970151224748453545499571502427308930985107902389234181168372159883849322552787830242464753140472530926760624177585262972047412738570248296047243607684692084123278964453901182549909492675735725344667933821276509200731128499671573090180537530451105061767234235069679728723951078186587737112389805628447994239961287881240987633161134747539215213330594505990139145166109016188446495116428167153411625262224159921632616450785872038510390954113532600148632623411946226255144919911665820101221160203358446538374604190061750848625949680421503370183894010850317314571358112982358687843503301700356888735070063541786557418658410647712337529374300227464709970225570916317381674441213500934984750303937676141555345976556342758044672044440599957696094185694367863466173240438369858956943672094390032266012362698779802681434003031010563150398420724114297201112672168133453328168001302513121780130867576854665931979313029856749085708568356224505879179714191621288010443875402759035146349051576068723135496819948498036191680913230466963389114901249092553562044984932433624342070755886940578959677579040893823344787321075347214629397058063681390874272059755504893612557961669159541578186821871665029257676477278973951190485620217173548200918966952229303903352131974149657401611070158387023421090099245800468699363029784728434168968515391862421941751010545237705572158843642571286994182039671952802692824118063150303016292394286595572274114782801588361396015257403965030423796612978244131494952436407743094819559510214264317330059690604174033489518806025722178692699834338984516452894560993106772699536299747660996264573415098734701994822774424559279464303143726623359180441036800380172199599792704228613732023342675949064336614198405283539954471899922297320802418282432117412910762509932883880648906816309561439330229810037874636194638437317679699654900383058861638327176373479111970540512043612379943047834414286902212030264591328050264029913305247518103475405837049021905964315408567277470381740202233540405795487797389006737431120328214688587218723469485390212799965846410783528422065782478131486061196126552276745957367745804307020653735016644791222326510507215547545404715430926483297509254533605962988151330686186147945810760030083859241545118723990011393946400333157574381518666021183495251842111122133575682384309519164784607535738804829040084599124293094440322671927942674959078665804482537589520321286174819590030950206179605853764953477881990359949530287838069902226798464135537281698296108318582263086013432441884644978419427136173350630285361589039478190425364475176944411497850899261865573619161341490102206658281624116603300788969607883619214578372949885620115290830397366703628110997937422067785477544734774444515757393818922674393623891531900762562142932459615205591961024865129687991094924760577735397697077304442087299748893643451466365580946383972998499549443000264671924511542846794764565178795174616653525844941565002970779132774620253980840201500648790424481712186694163186850632392700995059223367954630269974255831372164678902975468057043047452109263929227525240129259150032026855050606081571797691454330551109446711425543752263865050977245569985026403622576873242157853990716453003923031347998727649264844607294410037168421209156452800382089531826183128054529739968741308415206152410449647066565504435475623096389026908336808301136520986505489849442518937158707319961801044112844544722023695956766917344628416715544629737636967304403802756817004318343232127842762462907147565535378141954798661809318355596223315343528424998743814391005143263473769281660191539981124960236760459268577781536675311994553220056152851025086756432347711840853051052531017366467094934222888872797646646722133879446339769618108842232069409534029186959041875399099239167272074008568838116549165886133244534175583144875163484045411620548068037660604096729501740111421679979690134934436144629513331900235773549546405683152028003953130897367406537757477484319755735120708292468459615648237135884706030498560001179095682164103509789231166588514938432005196810047554387931027758685260201206932449053405033835744178552045669713896929558164519226309554628639431650048010286050220043671280457585322925119314855132038974729600714272127382649699990863454382111148213219176913754424974211247020480856012620540409339712170909660024010018899986443074798391252597823693283491551887478537255897917639839400982060198186488393197395698345484738973667566509038529746650475030196008263086851174240966306720419421130444089859314557948066726833831932979287991902438373507089527316082454616508058866805186197972707203144965222085442216672656834769547847120653001081710000066686399536435118225336275192705502269097958228781286282266620674071063691331257973814243578602248757955499468151980580441454965537282691602353444181389201838024730376268348512134802898427470882068348038760757890428320523186040628469804696178019670295977581954288817673912090997449718092225976312324950506353797007666600445666057887596306765522421220861990835147654567894535998792958069240205298534710934630080303461612862880594338926444128032128422071718896803515446647709069368750677265045729527702395702643512946688104921244714907729183451917007188357754059210538524193518255539612728054669957807913233727100099283206990925873474006082834317073536139394972618447792014559188392378454561546893700145403691728017539010215910225943435764498921674227968001945372774896023018062080810518577995500941331507629994900198034392046253213298754514850806033600636420333636564438346738228513303016853384556932937715360696565006033538826847446881443442736351121880163776898049048232168452654073285076853094440056347561983794420805514522684647503158817483288974891818146170299982273271327209106291612111820084390220273842339049027786898968429473454958064471399899361879211812465020843434778476770322000546997077104273356363045793619013355670339894415819091990273854944442694803711745626553259066962123006289606786457176089464067968678806782064940155586632395655651577524003417464997467745693537497846617407958051696309972957859354840740782868828610026929816255538658550455134384642121668919217952176792663092618635292800842758262959416239900045561995594205650480387454976280211529977853318110971667199883263253450577373842361702407395551989033492874662734787669157795327723721867818462898670939565451684341777420414141893499348453507732076636734260499825265866469420433837281658444383418832362541558380279264962212983160041706602689435169079739358397122588693618781366985950765682804002853338647401288405601234470104440878805782845589219925613922835534954730262423352732149145394497964454702338017613725893384811946162163491893053289524901769284592093672888743104185265684774736902174055560361580944939395248304197534126741463913341377329887765320053403682670780631135557429939682877076061978956418398689165864053444525503133812469122813887351976723748268711258619782471212901926407557099900752310570865429832833467498899125027167021468997792525192663751879444250689115369256334718903356747604247640760875556125776449185947220841409300957419432853465485947602620894385201508355069861094437675012928191500535901618362428156775877989677003925187171199216034353871903317091394574423143956208245229401303438393305590967385570018666324026820655953837838399559030535810563939898396544395183512521448176232651173338820710638768150624521482028579872679274343238971559876652251624128935144077589728499152360803314068717748365464692371359221324907742338470169588801971286963695885554369246650536096506783820286783541264934545397894191430178206181791466700758720775683587172318274587218408013943558281797596201874531078125221234474879799041301514389517276269231835248448199913320975235430327145603372261890647128231981734242826203549645889486701526092225073348247458002589206053205016070251114089504136701335958985981589313841583809028967864597573275839115166837356246429451016934230916331629418709848237493175338985843136512474999991138596597428198569499033208850294693186265952346397983938608520720393632740047419669705009172212630696049033255294777593009950977124032232495031564628595035512739691537179151638779624907839130952081205124954660060200505881486749904834688006201376074050811198446696661113091669985068666998618607810793486086800140869792710743461578920770067508357441939480422092053015446193237626693280669903473283822761776010169831077763096533339421813309805000227048129304221483813930095442017393219355372010522383747340780861759496645357305491141722230796512491685823460643396354606944711629246364179346077662965970959364206067861235099236476196565315196820954205202793258859205873603615248238318581048681576706335170505689751876332393816557780928129526006267387093483563053125397623421677737754039251895458680127603964352804693391100645569397003835513352722190475419592870956986970854476138696436928435885823626025830917687601765639434715129816298232176228234890920300187659283169218146793549181234328671196504484151533547636585242102771528426433119021871901101594780508269105304337987933928412752550665533724561848804991824412624331729743905882485614057264996023944216006828683518953617636239501015120424498749321912374607904758349113149965102696155345425849178641847343659422248090645524754718453040086992813364044498627099627645052939830421424715547865578502648396197962981743587038460212670756154640658708564221168066031713221355679919223394453347866905680288345630300347700937894716940925337883590031668372342275029040733309821824933238136349881676753530674648404582288595688335336228987705731086418911239562046929105955262335491596227422439255491514749474010303689428880924239215270426051569189815032540506314535392739782276367174681497264675613913034566205367901446239233372892117197865092040070851601543834495868527378328858694430222279108976385951591343505389820242305340336738745961784429280573062171052813007990331501730851998723022255769949299421969984735993278047183381798369655729620607793980820858612857016286589446364307227450537554372697020119393223276084537218270640357097764208714675407602278524910270297269482823719647900192944293029572001815524547195106994647575587516225010209892502548985471471660545410307692049362060107549054378632703222600187147303537661594556628955440453936799917489711015373340105503586645080992063332268353611840087449603377681848573187341846722392997414820532960722048382107911825781677636946115951068316892111481463644426691825108074091857662416999933776910185264467693260265305836138108289037805709008915214759295138071420441252034530566221890882218727418657941677509968190858341186484829653960121909882452666918122249464339043996188312003671445206368419807439710982473880948481757516624098801753355895813610843995601986156357519374008391654461200461110490151872878052554379777569994831298566402158553492479543684138577597714026182400829002881921588033034274666705023326381479423066436027606036619936646103236529882194062223897500651963775012052645936365430902422984888148500598669897135441869372266662653066588239044373443599363629764084821765424775846387378493274197791067065316617668253914312469423276285184954357832086439535501572257146925877494134458465488138684067914404523427958217726295047499928543277436782038788719896241846578158806998541392432905950411337665090313360024558016272240742994752514518873227249574620366869366438223797302469645564679435545024809037669837065076011801825071762224557729209999953303147286393339285107061526362442700529721212997465884333898125927490896962169067358025772455113802505281243595194508887558821922265277528428578948193612152371093086025574101303689600959720154489163439102232488737996413678251578804516425016382541905399460273571470055337284400991407645003497199908540220211970717320269419830081182990636450926204132253702499220199920091024560140290617620345538886353820724619860375760408405713219711582072559337918351234724447883587492560550323278583350264326652591830109458929700508636471655384755160824892569664453807400885990013269269180595392328331168885915795313955882372863444900110863565210706746528783209667334860496130063269883349516874714432184726084546902481740267836620931125440173950281251342762631361432267991596677878763741614670068475690980732081619278094180315107971278904653198110236365888687069850591448833801587267611409607239749365019251700076984677805758492225021104983941640342086791483835260585757938746957166636763989218358480013778780944324651631649378422661000251433184067173843252090924503794593960387933643883727209275015144984640266793276236101337575421557263185355820557601588516860594834593978431769360763327884581944025767036177441674579064298325236826458660516174265071968738935769902888947403549340839233290506242295507854724412124265874342511297676507684136993372780095689455596423294451459991538017746465920738144986382344260281110720041001955653228488571654409061315706226717441755972670934323121065354873004343642464344060918722059775817757270203314764923965733773424533979332985501544209534552605167302259950510381650825541956066648679376122534361552534937131897614656732594059623031029200009469700567013333076420258757654974954053387120285966351233190470548285553018148616162113331088810985724692678094065260212229236418866668870613745410166209746307564976073504568819030657604809547853221707545884139617191426466990183288476452092559971863971034600293852673633727478982618102028702327543695900361193668239979015478200367063051815718020936788832274130595473956973760631524913662931126180966295693181059170950954914755027434730721000746361197306136138670299389248382054563250921545173392064226950933312204161072964605679258155546812313656035155911542488711676445093238036045389048602527729653977138201529780027434384853716782914140456948350014222017681106751327864859718554704473873938278067844990537542928166955566125103645148685251527301983856080263790951823547068252040805487549277971025034012523027833663609886273896106350537521125909101535262237022550925787539775915419658444323263782844242775119715375990124449497750769114373482430904745960664782944391134846602721000545320743708798497576628538581700254566742847796480818517356924469550852668695883588298295549717401497372999738079118050296661834897428361252202183204926896127464097118696013256838315165239174982934793033840830020995819132571636269191928353302629224310019412394667286097028604384503195285923936856217230239944624904803619726345025031179312663627849656585233105005132664486795687436911996165034701032162413096633241382110205886410256049438980089013070130274335377972659802881127534623303756977823660212378039893434007163647273598184559023700039603795296656481155587836313695426676925485339977198781796473194116223340634478602489461888546349164424863702453953393806707014565151580383962061064002916515763666183263510703685779448324471158277452795132841597779689395481829573977275359540883946436546374337661994847480728744899219232231708824603672839631306889392668904672309282795348988299673213849504222657990871670736774528397642758045518369921156843839457838616399014297327790437521275763173607980648249739575484431873651926913496803490208427956568520775073321487588418117569965653617049642984298149670038906421866398320978302601529700797105698537173024812754882957625581126703206278134199181428977802238780417702118384145646463387954233217976001040507522139937359378809960383095194556154148235545422309771660794165130148813190079978978564758938428510279058413677083557156987021139608110535232577427924265467989840755676123176837387222992671301868100627476138164206452051573273190927355322599025894931370918028765442017198639270356179648356793153793260995381740939116754955817420539337028784952019033424019057935020870178465199203220275988627166326541503596640294813552915449813135984844303257524013695674943310566165944190659541037064576553316397640124417027785833883217839019522879823597566439330841517680717882848983951541979600850745730314915385446042979071761067318430322803921499456475341511960825044784489846314265190113781096598029108355067436088996010965325701929940731198325020602526627493786211882144569790859805783759815525093826195197874674535919690028228121455176575433821913118645272713747782688844413651022442963466383079236394101544036527536864676896335926025855340486345251250729069499638635931897207973262875494852796251373585275191489661117958440185050889128352061852711589932840820223511273838410477615079225605623128516215095408683443813477765808989531657673106818936526656937601108320750622271263369650903858251435120132798661359649867731272356535459994784455855500788031491979616540484349770000401446593749145192634684580686639345476131905524094223089026064024397350248244046934572260231593082052991194505800794489173828255038906142111693303307443498312915626249113647025853707554255392842856979750616824826412608850439706455542820517978417100119632541375402959888267891943642593160893357332069674884801220368729480290225809831725954419953344349324379239369445574928500372267035791015756519067333480077784940432109202282801100994005186243278893001124281209397717188852848305451274011601841696982899140186950516853210306749204377323478003658870762256549143961145532829913100823220520559923285776313962384004581107077941115368953475767181477389969241099966540974573120205885411355810333715237324632845904125831539565825700426452532597039731962991307994878451359494515411726172167840230338415802646276532753802766228867995166892047550363818396348748527597021320393632037880958358281293971131231209142515732484694934680151372691748376063168883261214065313164281698493703795561315411492420789553580272995134990138322949664603771693830573062828582171050232491707241640886707286427288643082554369709221944322152546209747666436997792640515021709995108974634156996889680409990812006360218161790825741579831531510831844675099378296097252384327519647082400457167840031550739392480760677644071680707413865778982636883474842050517873620918181077248070879548214849400880365050511636171586291167794756863073312479480094439539727229230767516896602452652450652534841502842663521741344214139105405821649902103985721792873569265622176520554159595776720516818595515321695872469802163082965521794454616323589362383590674283553920329347436305669743581516539487373894073967402197564889878574126826021460266089323623109402070068485391072092456862794311233699647207548256225989390564500499131043074086686895619997367585282671955823859600265103446049683313329501368919651515844845018600029027941461003108250719539984126939933916202193917077336642025705407667122555674129299656712668195077993221204330748600153483711633036361332384117977433822147474781082710022643081952166451082778126572071442950557406748786497162563065471350260434219989502868163512018509643693883665317115446103748355310317453523680001630534061529970347866371476133257942319870627380392720093029053438253309062868560924066446358455017240041402951333850980268713577299604159880369256826371880799046713386381429010677174839223944986603325244190953182103123584907545970433311271841451636846119266495773402738162109076387945116362353970503023401067510304298551535109788808300823675386475195861151754377196417349613107928300201474284203040358749845868396780736098410367071456123096125282156656289074609929624922528725751562221958508880819616344562999558051328764063952123694425643136541730740546568582079615148843019909690403071881527100671292203966556754930561472986910160542341988524933229600799392886009027236899123088885531491105672216888875392063784464375845823211312535972773755028571697271998260114717788587883340858626335067923340793215870474526442504079258840794575854825738510567922843888597543126183982181585042491612722857515190831045227625815962670576755993393441109732209542173448612350077548524695963582768990992140201343684974802256521860277699128561819190461335841086582200459813171026178215256551537590417918132206575402914799325048288206258800393710698889272212168246835387914601128694701021593589652984740896337257938401975239563832444745456018765864260502435660470439745407163962199315896662613215899962740148084358520681456609365021175472460736125125926790543427239815020316956014852656822430653491004235051609436710212519473423177174845109478895455462227552626928109795193975960373854609829654728790034274007000830320264493972178151367682742285652866414911030259793956888220577727916823782772957745168601113630099448477897634811256823265353077509754420802787766904781652893794516838616478350265003468073075821450713256777839913722268991884084660931475384186473425309174197709208736121807182731455834666632339341560257591437420392664474623967929377230585288931226755339180294038031417880284653065752964845642706864220247677856275313533081136680364344285912658049625398788075493179942057753051426717206854114796665323201053637788137754485402507970567636938283630036730056970581588300705248233691017467308692605174344707928786798972359766284038620746353863739082539000177517020732282211893345048352876294062110792520599272470007795434867621529338806541816871397555063858340016274594574119563941314895569048102953146449953109404352220682127474913306675149282703535115610973091141278301566551622360039153447396246273405691542479662675228351458752360059780220368050467925190766029427800441708769981983417967091713137841302095450875324979840172822171449777905699749782701185463538671741857411676757440061799800292355744943741666492769368837489822877978111740811487702813664309825495487967905953374140481591087150543397317574435298363732759927059513320408438386751504631828484178418703196421463261220595702961849429709207580988663655390529088597515864328442977760292408696745686380818442844686213168889735601415879015636038866721487810240649626724994555644659314681103417699725560085782387239583796821447254765885274917693223300110051079631657995405093693739227706946044196851135226760572519425990795619402892672917231795949146378643059516859607026464706747811208863703452967163212943015548882924905339050430477372802290272835148604813489528126924001934689129336783352981274256080013281314362442334637608988187496741101158767646830287261603097778184831493173493121179916387976480703398699925963571773774436334488226584323534476697226219551414829178971202624535091684423889139603239116374595767792499152877967005178553890611535478519132737699187781125774499145239390062660746391964368683752127621474335576232239593055357983353170932297633666931921479826702684888080241046848118728734541740686702741788240010642420744160031207165673989976641866960162466572241346478702243452908429646945509002944941088948095965500347481292694323912826494789218887977407627577768858191405435071933513202002145015648858176161686129791609850359618505463892595206391302406577891097427220379864743766696663445939497350640066283974048067204424953335631478207734498305082612331506636104780917256214554246428158417155185088549760020730879500322574314494739322303561558577629116315930290402664492223326065497908653916621305318414963904266660084271315472794930164981524530105692037079962349033654430169030362311644431631537622183144295752770447929923924126105838549585983089817757194568229750772081600266829163725736368595995674985202987190604414964267003227297910813757486801294548678170813635137742944741848702228855712405824129247711638060885668209956925809023212545972616984367140208012436495252460433422739904943947622363653971183379105900358400589876957308879480648652726093737434689658518391899192346108625163432429275574681653644381012776504943775532261840282303180672307573022580544937434640092177241598638661030018587485539032542304605672208158606485882831710115122101772646362437813909961684142844786670504191120629701751765252797082484637409906778476906359338273523530007913547394631689907110729751100586881417048568973994092363831434323529846437068675473345077981975592162831916097123406536617517888397913062001113918543797727816566487449204965510999414244224395078431742847379757695343886087933518734519664560308441132254533307594194539135540133233683285579208166485721329872684758629511171520641635989895247554389816939121603047889932258769638581385595139785571679315189509205834065787055149384089665195393641200170242200475697006149052166563828001612679063924841924613083601797129453317311293149121739306388627689829675855591066553170649407019028909959593182019236478073798985242568176207641931290803955240056794450820929737221655025609004414240010150592335386315374916359957304248937941250176492174645289878544145633469754392826864169402378632102007115604562014438187721030536071429851871580583387240363107159845652445076122530514424474911712293831255528573561938633936856657346143689672148538827177049112973285659651461856016885357037560411250830452037363096130054522943060929352575635134883116270593447679143587443861116701638827678933573129344470046611827990624536639283466910293235543355064780469892920097451255504111259733168584028094809419612897647539240346313871390528000763499792445007205390651276386928116488720884640596476268465105488731868726807913384979113679242756725071009567498640002670392253503406417182760444370796536769740051645584479371271076349410996865079600923990904061567625342919783420951666547974677484687976895596637932320251153782932285159380698899479494151109534582189399945871376686566885671796434059969068168022304598857563202587602643619969973355448780783136677075117500306323180546728244546012807073674677202240849708263972210316877677069206956029480922398911785094706626337791805263169093142702272915116554865767144708134977574910042790944659802875689834723630513545959025312359025458951774208177176514332014586054263524600881924850399031610694288392817989386358124723804170533360010624868905780287077259901118187741383016487244335024986294161646090424255302333961314180291028986372901001896885560115968107469109880171857665213144469170992740878370504114895850657371752397948128904977847516408294073738726101724419405980976071727248325785391911179371958485905820533962552928155218391027526003115144441203057763655317203501629434372101537149013017051130392631938382858852868426481692952500155284013148349126283327156854837523372263754314110090949025276219995960456864816114973292298270875245537451735349237424380111375648609012864647895364681951879160530825154943723656875970668636467823773337426921614665127974583260852211495929022604089513571104058483162638852872072233982035085836439407585456547425059721010263594232810952159768823399727522567878975335680927821673545147282372813725724680452858701575203659629357757006823670715068113774060006908191512702197875871963369246091307437099580805758965388930081993299527610012699264458761287650531674216370619998410977765230642571934024305218609212946215983589750683129795033918961332665682349709638774390046580650671887259767737332633968815915095875301751399309303496996794287282109108992762156485835301229761826798599285430299509855591095342462822409006736039886246792918707166938097270209929306088454933298671229123552312364724043559885533510326186536151424859409328218542014463297131788991267227546032665626592992179982512591669400776477486114458319012452780045938621963398840819973420790973675908261551489496653888287819149542910840884278522665319618428619968467826973974138639200996945855642731721990722104985576564478817325082879094385452694827517229064060330275650853016521280539588804558616739776621668415627055162430412642279631644569981224560614843594362447694297086346682499405675398867526867384008084639946541189017206364240804761985088484462342811333217541093558213623244876387958035952356281260803247699544571804142263812871342060031927648953253830780188445818730189094255255845219074922214142508879438767805087376038677561539385843986061335118417310833764984310857091027831711772570742293285414914496113514104788303599682016219196980095592179720112836104415881212960384723924273561324799741880350684268057154523990384973503821699861977442767071680169628707599262855539944865050774492971563198083009067263256086085814944393641832813069322580386394641045978956316111377972593288257844146750271632006146768474877313163002077682440212849615510626057052409265881927049932942047746465995015720515039908510719626545116197806392425425685652013357284911337811618929603062653416361769271240004667609200925951752308205368244769249353644957376079706680350241365576169871304152806632811463112007062277748325708030970592666436655140482827210163896340173543773142823269799733711223678940557580949236491611010524302693872347072211533780437786194416616471060295725001423623790823928222462566805359480980832592474980491434353891004681412648828696256159030169574407167128641006991480955967597391913526694769553792774386094639723088885024411624209665353578449549171354247517037540139668137703663148162515207883318289667711976040471489675633035043919908520672724126096274224333949287431359280676540584565903803954716702870515198392437015645597829501952068222482957597828641892948893251582597774959964488888202355193147764357861462881456885147400362419357597691217200307186414032863085839476551632149375244851303492329605700832692580806132227988458746259781205561722766849583215153177398803919627833254873175508683838804097332881813078222401372364998944553628926656150836939890028229729263736598523172894257489418590351039954956193403949725131133503081422719250788417481870627349298632765725525959760846081156590465026074935855691814858847510420433617097539591116141888716372883216483861815103049031412240832697607404547186358908432246960769257850723784530488895278916531525940839583743824297221670543940658355687305039384261139496044355836101954683460117450470792642553542820500704836124865568323434776347525803635751457938615277117318622082924761928411848742032169294729110487184093904322175773437890709718697337262481638456290927169379048404595443640279354653629308936316515803820744866025219289257980552421604050066318469838644913597764000613444162450655150727018597570885930690863684267427334243107139536785279329491520145094307308906472631636308254986322525652474933887104314833821087327319851524148925698018115780056697664802386398754203350464580658415610403311016553224881253652556923142517226326186343798378271505634457070056482662102779655424143252402617307202827789727668554922226419535086959698500498815048510824256689835504838368085325936101075104890781043866188895200588323068412967936573187909223213697184872611358856093280549383132636792238971829510788676089137322945992079350252188270374859520879348612352499295442952898307358580055660264602965858285096903929134177527881832483384444182566216445578171301272830638902566702129289446508387026536943705593753713021303839608444120273342817276769861402519873380586904005815995086511607696898175081740518612428299838602467603435654655813775879923760178533297195999536323946096452631450821271489072678871716238455013353479646387005339444175821868105425150722909845045072144693536722736164118423785269291636438949346701970029553448824339706186089541787896821132347464088127266591495658526958610782150690338406959088326931973353686738449241510578294177568515425813643448602813149533938178062448048118858883421201784492288418735334129316518452579428574134332900812553005759385155677121450908866735094967374195126656272354396821992732704198886773623315890917742546720911753856100455981040620773356359890871559190730912750343364991620359938284358231831558914680475959500036054516925932268514260842101392472653796714884314310500290601058085923286558954285640250676330658487361471445437054749665335371717569274821670173010596146387992111765306891109140951244204724966817908603234639155673265156905067666961576222651545482884359752256417513231127649562124645517171521465527262216204121768423711774905753881333661517099460649639394817592772170816282593576650886669443413774186285162019575550465206016286623415000827994877357014760212570769774930654133569846950909633699854277863756248946015159485932349950533150333067433892368528319883157491643895954704277126474067981249354863960104234865731712588293564682823895597807315609019720248584284794613653296174152851188120877694300158596064016202502338841809983950458860330378199904301888989980293381982025076032454336034083719188708331900678993489894714699127969774123210585280492617573032787935181972739668322025618693172565513749871437419834409239081023071277687851525480959189748337030932906160817735032617739220434092088233624331341488722842313250535939663311509806194678714035615084071451381138934583228856896408003526577209114958365418509732437420376968770781519806916316085133338564985071331158533502165242553486121231121772526528660553413994644086461273190539052560209902267777621235600811821370108304401690347665331887352069643777294949538470749189636238314351062532406098969960949233819472597171118163860875171983414630392217614231944171142076758798781061100507772995086498719402939245346676331821907427343266855059283531514250108353244186026002354864223155383825225055473387359601106284385412764514095780161693583671991507485948827490114810185528201774216656890601887826675836167526955815396738640182646971640218401824749950629825274177895680665456598681293749775399522938512040003352628950793416486223270841070915504716741742102164515002227293205968117502105995156684577445742975611433701066806742967153865680237566028767985713804388335272330809800917794686986539619127340799241242502250804958642306047011671754527974189572564859708536763591633985151712939157816712483623176438742516989408781967862363641623360538488186848256589136061332287146405114838160847322281694842887715690381724099526220339877230720861267407230249356086816985458947277253241220517293685510191174695867862985357369617843665121724751652998531780721171603361955415779325950236580850254480690727277545765665276431772260467522286450882945961199034328249413288151795268101891345119766303014899885768136516867637293994471520851019755787521991066400350249926672335618407419141807384028092147779597480104530422932348291914907284358449348957207011850973538355665393327593557772728296760975113980459081988136776672318583824626479724541758553307947084701855932824987602057454930932639810650225756669842472188624726488667073678314144791156499080836292316051351305918983703083183403056273816476928449901597921714995199080706705316368115327601084294256777032221637511251535393178841738548136211115925433131193090256641711060199217658279879656430789576916534954252102540920217815974714638320684843649990506032944704519642550504177064880535413760367706663859180887265762909800275388547499146868398444155747908476866504359544047282809701251550493592355527949010970235634650694513642680707712345696435483847658547845055113034547841744741317628937323908932943117948844966104153684783910682737359665201793338615588491848186514198055261630748765745783410806332011525015065374305776782313818077773433394928483949883028934746243730180906909094942135393793576428275827455210856372442441267646101762579241908323171811295940706392459117870116137384437913890110417213245382167232324123449176174455259509425765854441960528415800619676269812421512420362164078767979867948612959626363377539117924032187653348871902478082535224483091705464709510320315957718629045944795239377207974339519547354057406977663798001083309555361729519191420582119269279222026760084896951786096770588168233803219118349530266304914422010406751180298366634979999320430610762165398407952975018265022545023095105062855200699731461495049537873395464547865505180748274956215563066679507834496072039722373801634240634713291894626924470841598926184035890405829834628031356334841623337112649041485728609275222404311680579175221664418623644080712519008241158034377043049112713101086958808512811558277884707941833886449230410384459540682342826625850791175883474699361612475813249688869841597348415633204132298084133753181280092635296672631700740595265837865707427728146117942485713791765199417272407111351810419985936363673268774819491877397275345360226725599695127462516890994121536447248531578135880925059524254122446501349910036390506918595890334010614488973115484360594762988800858968231975965236852756256318330576701082640963881995247122038617670817739633691324054115135157419671123365322777796091926765596638332824016001650803300713889910848421843846334076223872757327412730659696960469715666340096238481685807687378477736998526346679635564924076022821401125181225926923219409579200872573967678689799286910972540371987231070000252317390038801386881577947241886332410657172843183771832717274304681810871438892189747977439632693507353280640819365266821214727424018028344910069156403228195402354440053360622411749455369420330022304926396570103349558291326487252222256271050498064646079834927638386176067981271445909363085423147009817695971574427469551479051312363853432322950915409479309496211144128765845800966455269509659528884368279584432157881224297060933386012129258418376128280511079999443891831894983395006627555370185597970451954263059995816029675398127919803118217052923768308425202276199015256427642397963908385834407046296515243089036352237998233079883696067549378019378283797911146887100291638498519192269311727158916360428567983446040528444364701886121282170245664996617015504438699379648571215882723200741199264953957124340503373419493447585526675743537821294454074972989623597713615563908910211979597368475673979375133971517686330993984361106794196766382102696117394510137230581863640651649697537600842832465450579981930652640574959071923472867310944091388421116150788354885636903694016051387659255108643604060628569532950912402128329265913110984142329024955023079723835619481488008872872502200434042147429294573628983931847278728877988262769858888747044519090277739617756005101551216372407774219889888688454252090247067515430450004843662510551818654306569201394095391005563804364135936241752953417289990886547257941056962418766055929484814778441509930366659636356362107869334312921880201323178868323379726690457848690529596513611510425587769126906062821100348251161922965340038871929524295923154523598002087449159788121156571627211723176959625318931222457555909544334089164503604709676846194752291637276717104765912952992196272712739747376080619395541897527515007164088307737555703566369854167457937518048854627856046187150485340568222229989445978947086680544705236126135426402952652390720934226073218279971577644382920401282563522901313826130804270824267276195752004478099812224977325230176069995166720478631925771071284480661201118454568019231547357863433577117109339673108111039804193149203491784863250840743915418401525352174085081868986424249394715457670761324128225674955853807649568175484880543088391078853891573099121576686049956747701780240619383133902267214793094933878654795404785304209278935194430975976124201620835418854797420100705773120007362854675868575005223468885784502955518149543022563207966199016285442534683993317405090781389083838504266790743102479377984235104013073624337192854107811134548764712078751105792841147227513650930717393035504775064515681149778365982522638118529393626821934615412829449561905679415303869012052097956337009531617433480075098406085094778241672807293631627689803707509604595902310900110118557989587395824003862783691128087557934918819924311565198414612555097566397332573203410305910206002949767519735265000499219109476902169672125874433793869827491843702515159369414877981725687778062894771019563620476623517874719426740301021598908322108392548149660517561975878289558481036232810833919815224069780316958870091381233095333791983150378002471693169301493385255405612971770013231818234208703836478810280772681725060015808879962342933205062085804503584317714532313351627334012073966888178914248163327349523236743151647479805172267891895327148896443283573687438364780081916722360677788445156861530250218462437536920281406635168393113119889694981613818073761966053809254928593557777295957418218836936911373360981022698796839167580293718024907461211411554066831938426623656809054105687217087624499290006436185298215918048071095877159948850148272970299965214203717028628667583968551730611809824317498224228752211660045071461257216569170549712246978107333776447056042008856716681681682828269094931849436338851281029151332366314635499469324841495205405739776398960249225612859520857233405350199573997200214832105475659591294866247404423470089714000058882085223584296176186562054272804863065621844182430220587719623776786024213746708953981660077568330417882120753951504620574613790394238512692580624015236365623369325915530577053696331225072124740563943296899171911419289936820921541194322355350372271455408216467725270158276523306586823551459302000038460578894593944671108511548536277472428839543055026508229827810036682042026443082599875034151860518209291931392419450093116836223175162557421691124099562127331355775962487191868784441629268157458842080224957293448878766886894274715280321523839588784650857009994222150885222789581319069591310422566220277270182429415138863758329180191498641767030106794678995040202106832735073685601663690657692669118367409429611308494387852660377995125207157712813605492298312348174017030223911983085829582235536962413186853175493745643242123963222843851446599900851408098999409950520610212660191113557419183175791033785855329881031544072619636836823914618575288896704949355287009923486690636208743494478378812283193060856553006766039979564194916455437865546592249260171964430282494399223487403115483023508057316664809982372773493291733312438398857906105376698790697547666856056150926747264050223353849639456817145593446095735600447697370187874936918210442611350322832653100351022788569383993439613527283405759848993413392688694280855124364957077260845123442013967445999120682574035495214086387844083235484981625202922318367031288480096781661022348865447294910734956473886307590076787022954798446152783399341419268764643702559297245090577863578744358154023738766179595732353291087653975736923018068731792636725059759593760250659063266541865387405440692313057878191868409316665926214015422784195680787473405170512276636340125106594486661654736615581137222466483032451027373516441745906757082290932522832663956829109703574718559204590951814922320433918079410263717832010439409578029178936793395133541505810003051446945732586148659252022890992767343241534739779962921453055177714639799048092157867418017403286908232078998647080156123631481083423025929494711210931191119871486196899771147972843022193858577812182517277534214117946165366104101889040860720158661484562048903368469422671642926882766659767030728473006344059594552177515387126581940623342761419786069901760849267650061023139398272165667255826197472919634957287781912659483020566519385706606097667293177446788594995087086302196746862604993988058493522931089515144764741678384102670501698355892096698455982915949111684638734725827605742315446151711066700901250406141856645063599379248257316196122765752006023499384743124799930448206157372543149325222370161641787365914893457374142871241151082820201606156718966409491257094632324338391608004837869295697321835824067095924698932277745081378148269125003002331310140629099781711197604575490987492633862852868143330492632215392012765369303196824074277156863996949642308029316199976997820599753256129629025663825950837845890209717369486343968215910094816906248713540432880830067220789854916443629863351215597272562531430733976331645931121246724285887919338260027905355453158169605880252280467991216812150276523003616233878400146753065876689774087031819180597257934363707116288482810495950854239737194404069996340261622572081548151672399530300347622625780945902506959512866221396738434536516849095821056684717652365120237209857441405465921061813315235492538985263583355289048465767587151724116397058511782834940768377482307709301491472461963007515407393549357681757051944401057021565113585769995438386388023025516813970720617573008984357479581146904279161915445933694752832589696313335861116272052735267865402497829621637438128381042325236792323999243687407902769154923155334370620323912272437931671422911123048856277224775581941518883600068776769101455031520988622745864473697793819915121392280241292654721754797149981102222680803519660548378361746347717513341105292580911774257386160338435718889678614235651600320420391088929380933162724365050942313916282345862098087930213414878918845027666048700583674385506879978217775878935836749855318381293400579179818028106566515406056673258492436159016141791769099047149373621522816928846733411144985397228284078172461315951679035376860984176637380886651324190531990274591237201052833438592963981008990856307561977836825661552539127926052519260761301823679820227957346759229032372298044241055274491294115734096266588987619180628038327627700612587206423807777793045608036975203756360425704716958192757874471732402159738554216649831021836517435917709734528201023387101031477553191288434605193771224127459894186043797507663208046979753511158811572449480024998452780468256315337836382804907505009242893141506122719965943422054721168369438037398327798771532657998941095646214413123133535731260634049475266866877543355610309227005869762847350269898614346059388626693587111295083976395169828994865102835230403799057208221858487500450966431656238586172861464514760524906735642139909809106982318038089615628255802924381624550357242052508693712003117920782056389855945004384379586961349624390607467351052732482744927115528531063382435829468811020472096609612280684894256413447327415330211725565170347402545970503757193249774250595052302846829343873566877213170766991938403430094087971662128810292247829807168301056079191964615728770382424130432324704632189465695810829584663149974135224555850757129869864513970790017778170625049842635326549075086344863599794631711414134345627210555341974848823050532638897157041375549954144768063021892626119880816289448034163743030597394384344014940499964341741122609556184552704237119436574738027496457154511730723784649152681900611785745061661278436987846614765363271362294844094513638664516449669317784065901319960333767524546129992364957380106194943479557816746399196923934698162103487578319078309848867483346533413195191791179455138910016423390847387151515396136224109289865068661497807250282446292875538727567734975550088925241358137905776928066757839553986812190192217802769571702772184970016052832305057772003122786317908745542864912308161129475772108104753657262018467387079995483963674626470075576087864746860548048095183638078090931439120867288724457800894259588824346101644507424643915460392749578906336521339705341638466677744613261408097373010807336080077399288444115418912208894102509132836062403951854210000969990386649881312670696919886652719257068358207774640390739856467674010729912390025296634133555447859017912893532288085778267695358471047901500713531645110635243282129869299295703742272394565726398603841721036514990484435180868921231788164761805331211439646582820540263522019623778033956233910696177657220135076493411118236478961409867471240298836948558231518161409505429324284935174856405695542253990756964899195802659033445670813087283820467623574473600305514620516260619141329938368188319638477143992087424600983206502888402964875678624168776034940644021313729320394430419473679079878318059226433986411252660877617716437758665440425708938826657208509697187897595113520614279664693494429543971739077762087970957334120719779171709796579671868276548414903096299810337921718346183593910581150606656378258796971509362407938035068945325192744002645358807501466485418564601357954674300577279482553507747483138559030679352909691415543948326321258669072416451926382335361161176701737877326251167226013785191191854238012301093268961003661214945324590048542444801372061694778937846944877934707419989478517386271798644807291434692540319081038067828947757363262918458902233606783086620632482913585956292344788157078540831360617375716631639596019801700216163976741939363485716656615313149337539845460391088401761904504785457633875138834788960797050774418842836859884273016477186837080782638772528368736215958803219517528198676280711590594988041310341156591453936599050461833223662482809110952620065849646103457843622485207864906958298331861161552297529535288571990172763149919394266136075918169081217644275154648446435081565985428702600900100875223196269671321912067324856221392257811441091658456335730995539057465689261461337215114036762563054946841981535063772198226914125665465069887123397051802984804071557066606595497910269566645342895648407960231562542495789682259593829294226238981652518818800409188793215012211547527964014598982372568489583751626756016849806880437320734400345636544969984290479797893458393991521314878506544260328437858585825587554144832929404191359196592954600479673021309513568310444227666988139645277468058714858494043981833103291360659750546592423353928495625604752733636689241348668311791814892036395509067724860706119915573192517661123027298522839002643410373261304150347671930960321286979730540866759921790460300325136626185549769442965801131219671916816295255461481692700516902026235304646854940236087867769239958948029606150585810194469173107877705764348109459827542400426284010476748879513492577240134679877672367183227342201710180042072706045173601760953866813768300371149626271511044767271236056009602346010049647075905803402195165397104732247015766760286364524915132347446527319228851166671858084635778457888238552182619486915719558850625127659549500412147089737864076190965066410331237678266266570885611862192997418886241141288121211336476991551510695154849450702983620612482010153615803326969419933445936893289658166242558386519664458277592039015604595039987381991564536320767214533653097830792207366048245730220233041848807921651882118063765607224565050683351853800913780771495729174887137780567133181381456796822694569750997228126685896366771616400626930892952658704985414022642597451735319584144818628849777282281859123003345800668144757466585020803105995432614636213876344464560124603659495613701432724967254959708133714125082506641578934178295755442695296085914001083184773662930354733046964272975966331017779221467432496014306763212338859814721914006270667519356592250296391409643871968362570985261258525664386612045976043218499419565462159599797434345163676860461684993019180573666879001969965618886666286361491838034006097915315906340315523785293900564826320040330415134998084977494088516710314188973393110617699925147543126289936940658013792198385570426787485029138572249127355095094670335324998793687015009749545710929239576204932671630947076481504499885285829135286775093568662590409060090163687384361817150181013940249390508045479872902248349540324309912855737466152876107893469419004991453590045342055151796535665369027447432895516589742199561129015832775187676498773386931631009668950410595963683942948326644109238796363648498471760930819120055968150768409861274656655674212806484239283922206657711381275531781679553600036924240057309791614181032203551280992053570149308523871694391331261240570264003088530415423858487259537461304387803779216732358370592685310052330154887962635719102882435758177590543629010811436519629521815513567903859375193944050059923607967070960014680836395843526183998519866330010898140417738667642000891969314441455891586347258124430624476573126686312920517515799231925934862225514212242988273880536662176179009032225348577472023172352819641239439063936322242999765575563451849640383957374159884222815141295126892694997140431718047754247570980814564660181461562149942145484471839004490051806521462535889595794912171840444670147549313756240591739281533761518260172984807338709715389323151740429977451417744292109070384574549328530552822031693836867735225279819964942643483190516268669468042213189136843542857440338694683497218700124141800422950831138615557584836637317365392070087530434296019230345616974134617574974159088891715694945492342031659651912936667628228465960929477648106480501189035881096120070567154814679689380973150482263314563053739220642693483674530937899857485147487140441949393282573180567940121256796387275813787908448766460633500134333662243626275261981074808913213419479884960614811821269841979999940107825149839344096322847943012242296168559049699275753939935274460633996043339584333787610301170808031704197946031219271962834182657200065645547095275311888283520248023997003202982889267385484648537054098106314054553875733520507412745112966166490581426462996514304594638012573313774469654508903047041279024587745317767147474012294374228270403485322693184027357238261271612080621493271412450543114135523413988192987625121959075153131089537334049984258100747052323257537685919481295374626899246763713359130733375431924721180731578036429799074817100877647445043495700129076758000557905348402603344768383535913310078718928477199991432305524696569630501728404898767084628558059768329249854504737527175069849592823952059287251902427568085765466069196566029481781068184841211737637163891037856541481930337805658114472939461308290318194545100278806182609149015312961747308310731976415246018435584344748216679787845075171880948469782033122191566692331705364855087704256298755059721012214220787398512557444052840472050372988675655898717793267593383958304826376037823093380452975492330958107350238932608025852568874429025388427225078805990572429955590364844634553819175549726775213318946441741898159885300182353710410323675287605981217577115448808963118220085549689241897844231457462795286450313618172665768692469046427101377386684702802248267446172072595458521231527761313044701642688396739690165819803971950859973948984640256768515659046952569656708016725136677943876074242625295654727006115228617771872561047263730237799319147769347388488486669810238610372602176932176901321674588198085199213010014357461063620626243845290779274953839585964527884834912780545252416244317496470823170140995755431203886707694020147914018869696940416617896701102765782359905867535840454326114839042759042733894952811230688151291972864918067563355517183474190352953833477331786035110665012188478972305220347506538344436098713591070320069775530479354659672580122351845152173281131981754595354367757683198181506639051067322781782731316542095788339203362788960798572788995426011379714042293197252569949150257595254187460756669910677416276628971226266149069748461043731713196755258998984776935265453229252371228112297872019817070362523210028162764485902202492358704663464466734045336124071300181783286562466249220948928402049312969778263087291033754092553846496079668280870693686578742645387654364914138452909515502371643788309016675911275013651746598695424003750117850864748408001562117255652403135456502791812528237586666816976475778784612511441765909286025790908159849890142773869793100003471576416598019229801552297953595388093904869000084656591960779829401786809818574787693751245123907409520290410078676039470271815938772872386798654923447346089977677865492450747166420739960314940757941046779497864669816977234705991911908949174893535358084553515797344856218877730002226352671499647394932059570758399398886727568109279203672137712080344941643086022137017599101223329035564774105560413954106356515477049807275017592471960722289183494492362348191579035925168313212532233820608399394338382157771334997003316286560080064692082081586773268166172111357181086956639255794416032767170119120827283485205308088263246392106200052520940371687812191358690741494640465432917374012289343486002597054231595624286303779189416297085151048734719275781696626516031646664550935026704817978863872423938976655920174295393961058465131760150732968602216757008215239197918767549559537267001425231113170453635244108753202631175096482927317580711170793375470484758925418690494012727426889614161351325335767999249160674106633925893682718280546857596420911855819147705995910488962356286504906501107388104142252180745100488897166506418056620682838718560598324462653825341942760931851426477916592239611520882179552329439124021675989813433805765807034058305619686618626347455789480442006088703858298459825668455366755628922930924906533589221296075816448199334932054501293636505371461567643005566865056918148254186429486158981023777152788496201641162804721913030511002197094080213842568072971074684187676772239907264249461520881060560323873002053631418092291026506179391970859525573919699375266922148361362775739058429845387904181612728394671520148797770995903570455553294014911034265708681242297933191558129488003918068071023505418733129293903019989022723512510533303198629472224773951901022612035285762106127912279367310268776766402270384603673683766519003436754564602300968319081160749192207266772020410931511310482358713699475459495498034501240935210960052062999139204096947539166591698911266533363682900907995166225793859031443109352396913997167945695129128545794797863440849043315597474460706887520086983499977658975176986942750083436684943141795624310559779969974143060005691904876845039311200831127909688760322620123749469225691737799664629484128541443530533166936315761711702570657604032149109212997790337605845853936184612476333786560398083078673047846843498611792659936166305773369178354819575225256303901789271864742163969245891702815514474605441866814406151057652932774524887275962219640643140988496841784541924925194991266742691412856879864712772864114782388826830832497115801963942571775982666874723584865133009506194206765042185787017054295343973120201033346942691529859432197472333029083931017943774843086722463920758837213856781798464670893986655524511223574711215094015662539649468486702398203487753766491205246663881331459181022686019915234799587949454809616529436623623582580268723630385547695105088788789574878191125842579736162657400265164659176878238654777896366883427485851917546443421823856907665720344105689557133787424167329242437451252353367503218609986205069844234176761280737238538176675155530097508157715663863337796104887481238879135498875346082625538397172776354738372551968719493662576640810599999377675067177209564052665793777420790431013361359096386130654352439490620749678727278492748822708086515822607224562527298926417698577342910173262727783821201266919262161546897507814093653531949808174637283919898897335304884374610978150637398550961827513602705688861054265728646620961909278272259593638323748924067290628328349332025669476704612426725534066464150241935934923638815945814781559768674036387473109289906255435863700728088309886201238002833597859059065265536372816614463137953405145933948315083569072558641182870713023228526683021561035384375763187808701547395006202416925145655967946359143522943184629296618494674298731495693549965573303546009431041254445369323008662368770040910171465569356973054349774220333059793164181203120987891757885584564292848379911239760778404867428328956642829762963437855846459978418042539997666816453315427481625729499148969776619127505556913618377619960457427541394078937562783310019509831845841787345090734777490630162669549456129496875740118501804491825555796258189657631931021518591207869496623643028332724622196644663456388441859516328652114663234499359315295593131959202915254579862516014313001271365413919800046326647993346620811073282400400504835526458759122419042289166234226174485869110289271516042297528953084178302652032416360599497333268451987252578013987782093341193622787673942935451917337825168680083519436064242283029683286352346473907726376948587335695115140289744314705700637870460085857749250680241023980487399715495976385850211046871021983268955610859853765215156781494815465854216756164667091767458512210079041089678221931580709397286177025700853106517659816557652704193907067863467885106117029673580893957341833993649160676259019003266446335680597739167735547426071225143469000764526824733946095655065780924381728966323738443700395387109336839140432003165773658640521174528606816661700218311315127298371475162977441579408491666326077470761931559461399279099883968765258502753448421777436897109441480614613908150018271438735817372098582048201657767344450122321547491858576133004177034267598109697811723361237752280252210996976606095002603450131749136413917784972186591482509138619698903543601687126251880818095600349075011752118219924278702786184635055126115916025482960797003365007843602649926051340310070834473774962716122671459631308768623571957104969400231566143699593881922484729707373600034016195562567577471081698474436900465501187658065351596486683207095381800134745284450735292995585202946293326622412704741169761745403932173255469156408773806256030685193756533531690683916045716618848528842757285483102324240948146675497472208965905741764158449902042725635691160935533716357864128160786000386035173208773118542679201779939295492152815391371491189899978423665893057975014035036821299872843048160761442866427055874738419551901893581184489224409365139143138794821100587212927654129194734199931100376936507872758389472975228848891460667864714117731625021725042630256330111037962426530251384903160752951014790005859247752425261965962648850057589802838880744438313750243011758833813401552743811303004838939246087335226541649321040283126131607778274114138054019039763999586584053539883817002700902382343326404801674982872564222881616342509513032541870152339152956261057208140428214820288695698431414256054856540120908961305736652371884034068556236975066738996723018353030741155271052634622773333842880966443424679008899099924155529447094547976209890627619798959685366818940611892921876109704527663027254821198566549639124396356330299634009771393240632337130515154644109639139977500766468564364992341467816594277670966777045171061977867243039658436000630242673754805422900247496084670831414358819690573069271866785013598409286635732186408562618999093740697103274744922267170213758281973150802044260878367990881539681283093240078187459992443710077404675745487623193435811830247781271355516387396081306821965254858338433891275151445822850064966240118392436892664720507555265623800176309342396026993514367145589718269059302631443466324195460643008238708351563540658424742883607458458032051475048404689201631249233328223637929999349419132944296393834444444616053366186359505081610131061312777316226859485562931158675561239334160063387825683534855800974722112614322684736209700369199008565236574912291185328463459197597347432046216832167468476870099401100471520737982875525553111942122117848486877418698282765728048943958860767639166397909278248801722891867288842553116827572101087624729007266760947322040472086324205069448130075668362278992990455721868393972155776095691389672052082755690390283148189063834085370943909227430247521670672004878405522875685461153485162675359436842281799397374642898262069451664570896259150537831012359106011805629763339999879872157906389403882501361640054649511140344507710207211640849948312275782397837716785195498762739568242699601925620031359005593496412374509130603756845002094804604417469699421480830885930620394696978896400965335386560864610952472140287045013880499423395090867954006491370590880639255523816249547377355781082746599087520016410416558432141911183926627970213115360725824481211909274353097528801912386374712395544757533271231818088165994007344515576923773244025915449335150882833495531307498821580431023443230151752192201708704985360054876587895214527750978342206254949544073593298321836349411844294198821082649507616239859593964928293939963172627555556323803432606218002838501061552787710154193067476867728392513937742433526334462606088812921219831686573066624841385867566220188586206141587509156589635711351309331398828696063767288038598954832191375401125744590945156037131547984586624994243980504555012425078387939877773778508996405053756902151887921449389729417535726098215827113422194807799624155050006856372997712239446764197090955867639349343322159906838375870217181846086340811774480097647753306416568872142662230675303848379973643545953657498146953878766973850536988628030818740578951294943060982767890286481569687815129628043841062126816437213053187765348121677504397937797944786845430219284422133080534397031912283998026691244190104015867594085500821646636329282607886962871812107939567659630181457532446618903746345951016765579400004830378005801518213443340617446833513763347531495306747745223128158713060614469254437672501107130137264800047540616999173864894803489614828038021862300630069326591685625421072974019071363233754490281845088430536835601682052909663086716545628009024178855055790224684897525907060976366908793258768366925157064167789513644196970052774309125801084768681756252206339626440217465565338607669505826384580180159948772703815021943739977228226748669089050375009172478073098464157540360837789592865348843186656151105862039697008748943603150461488161711593071443456730870121960813419118707621363440654584639664353473765963713082773165404700460673813062454908531519358374998197020056712916371737570202263084204631669071110514181132085727001142223764180282738816868033339788556483080562873763987814092904070824856096480068053303102512580780265642794210157004589279666396752233769289630001262425558275112629873158758657899324515446039188190229926011251516367415330341354506794142740641607148931847704610524826481561839235665227670141329071147352496968022355864792149871216440054636768444985870303671719546638142775217553645740828307929700741747431976468446976576566402160677118431680139524321234285007979645539659346005615192985404599686533786211113845048345382389623673775403486878441590753810194172836031384074709263706116033438413087484445928913846421751555050976727833406953669523986799787537945547372538123233895861495277337787766407368539162247010702568208231272782751090642345671332864931540385339494725301588691164413591345905702747094189147382681123846293041004588570774030487597681073813187952551844592508804101224074506838129496257013699934301529206015545091958113208640569837490571388247020548564154468058555066482695719997381520628551756863832741074076744193268873360826920021145017764552382645597756533947862152256560776859162734240995300861290194948700310876413899010417990043022160690087596227002110236260415594297798548583583441386975597781752526681679211247682239723641415334141288809362787545755927706333420402697182305210983571117247712094492469514105300478571280443859986405195431176616370646375752168773353537840492126255743645628664769215157796972560580685177538744280113064297667210806266039554427613674854374564925122875676591201982399957611986802582992482094103859815724549449134107228128797297727601511889993337487557284880945513556027290532442654359515651253276791379987104255455067581862907271438209302509793716622094626870224323842993110207655358811531351706072088117390454052249520412616135567049227184629043953776620289586216031559816856337044803446674762510324790892895956989681244347683985470321270895750859167568068938745414255740529428445918850093108018811221411117572986340945194270771884694692358537999833865753112287908280623146245351145872989928005208550877173487825472722187073039692657843393726018305952817647177556973176154037508527179374445547151594692759370216405888723596957303737582186655121058195158598088643071212239192301498337296460693007086279802815908353132113827555594790216449355207016105639900388222294314488143573600412746560184134175130179059965283268315911541876091027609051888667993868569683472637668765193537434404407099177008133402820359791208120558996231065701871972251902737981689794043065412051894782172483259710435279337499217828244720794716025411177406954171762360504118107606467365634442036187146993577797380946082348955596718604374860216278632405354220611994882033341707979523671941306772449540867666870154768051968630809716197006702850514837555764608642348509111173788772665189321424235677907651955836941555945755141160703776904810180724455532858858030107506984166531770101677365612711816603338908883864058809764954025448940953884073893154858932579185785858247378579799679300988878213208130082347189953070090901814312840432004872879587871653574153469998625369230163286332988364297954688061166780789925750552256129667830907818801361140112693122005472944064842265304049446892710563983646351132592906452880919904191969499508794300045459668056959819290336452406232817935817997552823001096239625108903575272901327781546230634421545244553874709116111892761524191655398901060951144626632004742111200690083122770717637479136874497079390041389109295144995390404571558917005519797383481641804324562732509538262904471484666522953354812280892908576117861228697522729322092266419390763683540758600647622066040086646091469228182476763780458030591019152235501004275668357136171283545829054099562706001466650282859957627221879837143297931899415443405810600394894118010572443184749367707777000201550411444479090611651904586064727395532837277569497680810767806121317077107667345135473250986265352436021147111417131631089249878349931123609199301128438563106177852136356340854513405234964420749894250457128345490302296803458879446405433753906610170478545741044926829378035200056180591025207780376393052355780251133982670115185040338661075340170202952095842586659780380320797501535957364002495009051097781088947081047619057728806215932751520631053223392319453226029390134710938358009328041900236831694198645474906914537973811906031034377817836561673189613555883239474602236121852498699256680873423456270606551939409279343113516019763053691001184077017351587556667982619436451914406311461932183633912433034523269487148297428004926598115692100664924602450813561796450594791141030720542964447341023115707285066445734767718833041827406193094609441591286377486591269423008483007610411409782017124181364769058835655349592359044295767104167883684976272153301076558724673015478174840344265669139891831017053804717670456353601944718094395767634971061277072135783048198476273972407136875206839311417893751511913337616612861531226692464846126973545622350911123576721894339072382109731168345903329462083461770624411331484830343167335161725627809264255239739945852466823652424372717866229411975243274704377691895616475934785228891880356403281554018904646013671146191920700322857920581817882984683710192081149930884107055618611874160084724193243666835189243088473376795550988125061638786892473214191563950746723766193025539956316284224896480411508909624881897084223696692142482935169534324378367645161750689475677786006809700772485209321042748702420332018354035277006419072266809828692908894736372458548567797557675911203486490642248046565815897421247559268116933875681434854402931556631233783856885675970178671397162859631274274945180102651197420983617639158258788030123403747275589882598223293020936665727079413142525921767273094647104304533490897952674660972170369857195658218324724562547623428756571728462287484775866293201546353301288993854782673172832296430441929453255009955961506210858314930351230796512280801022306227200980862059875792167985284823459785942097524533572347943023380272441326385635463891995945794488082944515991419780953632360679837521312386908403365984408596033406186147121667751381096541508140553453490774496122563627251503546405124393692935942822175372867956313920449730324704050603828314339175094602126725075570597898564299009505604371719780463007633050663611727707911969296065472268396531688539612232928005788411094652865485594136387346428363717326448013222881197193206815047215701998036960972557386169497919439723320466957713141147502998643302925084889314503135176505296170950062726404293822584263091402480113937235257359727808109656970056536964879116956788990759516993335778487389605921324867254088713713270875300722004919360209690136785406177003190596405749316682243502922245758974536126933447645419720415930648979153740799816596232513586504545811711153083549960919942673186732146219654896075865058284416931201250055219612942156534874404920416987773666109134411082396114730263733060355436215539560098043352251488355667159296968478733515251676407695293683693341138715751322592190678732160600144041915854634190301051425546164030624644067277499143364280426235254723522194595387234810923514067677445754221092628221359807980688568223375159959111460186600297483732506983518350970288101584998375385363252156445257907837099165894285795966370249865221125782356468550154610938075230768780671939775684573158807297564319851393208473719070750067117447133122787411742417958304816906792833575952505910126868028544957456597999110067925169211499305825789069164507833617829050913542713520302947432745583007410192496472886643123284027787133691723572371147824518420042398860391325704574955695689171354434110023950370919696749360839625969343947450258666047089641104403245225531667409954822603234655137571758464079041383556107892614830175883172143751603203774301537621191809337993744311698288303907681733986943371608861149467319750119321571436239192544553220009925360304775257318331994960895995682735374897470734926712979349379268728655900688208841215562370167080288166275998342705127031636353129958900977639003292205449320421541121430193174297269383113736262975605103166218061129348083610951319721752353209705436473984747899388055209369255303075968001554051048731865023493647277233479454196346979450131776067945921281305928074687287881342717041328746278084732007499597114982101369371785215588154390916166545462179364608169114265297397216937018848066719456809283438645144974560300679147148226289506375008379032269094821039252555257469113581644292475129741478398766155794943423019741301244935778211123740366020162809495349791714277930796838317533056978875851784931090935144520819671354112540152755612140082627152624979888900130239983796431257600065063647167619323569925596891798158212036539437189570730005162594662056584793630109632413639730633744059239466267770213746827021934892524505786261511402169883511905303526544086200177429200587414261922937439806269923005545438530166100536580177701682135815114194094152964916079378825186258804762528208275698586098911240684849302076367086407593263939956797258165036689777668023116644379845205798225536737134464416065944979114125687097862541924592144768048713668404998590134770666808639872628059037966487096251880954012778109096123125899338007135151357829207686204086829517268532368946365019745090243549638398233783163908281708536540891919006481874535013920468322218620220852226838168058249826264949001078090361936167882057277564067389303849257677240229418129217330438966278770021699974660576338177508472851374498562341667569488409235685456719166251827026174531508549270586706043478746230821024930826475464177540214567394044375901838447475934153224329250549757178892783407733667932889166131569056122301915030016031437217463876234477334981186462608410588936190556368550069186862780532515953865270599117895326674365582861802553274505017757463988950785858186710323264104484367535732873392400480769243115927836898042516183724892663438629237827686921810393254209277318167147177807754181218618584981707533405416995481213143839877373253183767708584658860291826337225399032601442986042578947787183805626029847400139196725822226579041518418300724662609240220614592495963669675322313091197473406011387185780033359044631048512478947588357107769185165652083293783662687294497900926145504750913122314892934299171841056017762393206417620414856789029090342766462569564128341356422089274166351943413189634148597202322209383907314135906674197862486055420226005838740143835119650200249375161716985427268001011502202379252856056280998001062450847949533906966647196493337027819980171319436190857232226501782544496717823910793953211789223189098530317427834848392025212526124621290749544383540962434157706647739622294456940670911685720599558304555961326626351490688528767633561510469316421044345638177904361827948606833201918134155967667972737426393781066380088613468712449106631437737166938740693519940865660568188338553102306340810305106540851396841545456280368919803592119341808880103029103390975294820358175109126858525736474907720329255327673219060952467346520967698770116816479744743354982376143035533227520855167136963037504631096748368070898274902180913835875299868330716999658471279528060367796646133413465172196672802548706225724759883989527149186803895450484423644047351051045753977294010480732212529737198147632973608545458150558219147760852445727551702983728936093869461681862998619557822894612284344327830456466657014030549429225188176930153055249315397727260558285995587824498802734431942120890725280063559499367823793535386170635186009204165259544620440213271636166140770891500267137457670097809519322924502201758232094922023055095948336063352885847737619972459990234261760558004971591931121503611518319792897544387613899955181347491608848584259064744504785744225736171636201539014214944189859224322915880940484768506352394273647472532495380945939137957323938474152439726436694439966321223103459973997068550188717923038364121619990767337651591657252806109453214631652492621003643448438667681338897818065051524042627711909167044885332512520322065470691677808584783412936895959246268383703750692179700700124763037579300912400539950132776325152902195436561846720541483991397595487789927952766655832612294380372712806358171990469739420833538671895497294666430408434282292433329915300419682819033500700106329137625176823805471170254723836499130993233015388394827542935322071469836817807890155893404885741386854442605555220885376338899363825540708782902583168354986564227495771849401796943436209604874984435823086310505930861612879399877692446389927059603389302543187503776330486428378049284223715676773995435103344671537184951299374970920689463551387325992172329220895336583955453152871488150060394522502010138743718995113734269692778589444122637134375400019950815767079046506109989634020112802703089747482537007805486063777623187846351529515570552523557419575427239426595979000759932691294904852328674972020204215512442942929169711831166791066067568613911367230766477610513929116919364131971858677041095709350393147241861391517283722172846794060160708945833146441465914850418801125535264555201517511521287247805046996301774938510578469999776439985685400440683824085424833821284763148306160985890821587562183192638780734481591737168544544648750784889472782905918428467065066317306844807703926164649363652674119661155831799969758712842873653025598298481044215208434683735425664436601202188951534677164879684270078662096704649163957255931460103047123945515830249357500263012170648315401845031807589624988538495449827360202377312570391555420676607293215749002513067155626599782588794976723462177939041447639733412554318501970290233178093628474794140106781929577303407952647057679723570571974498992962098715709446378123963648880729541654688561850988715586022975413691901085281573740815969402109589799691576087945633777398628241273762270064216802616976604666985737306238261653466773194812672597968725874005740195347116056147248338842416484460340356498781749758772141004778138435687810388321087333113823584852543292798980277240944444680808069855187064487195660324835730559627315019046731867927475046718007019377459497662490389826234596437034322227706192216906980249857570564533654391176206784587247239628203848992619625193987966249036596414283048261861527396003065296968712280903319766465305587219179610514727194719045009457902728085415037304957813430850689544947291342426356311225890903750234585289538733293041677632380469605211885779572432490623657218625578419230090643518953857142357826179840571699100820050591630992108951300935432266637178596354553821251078203284732640084833784387982297615814724639094165392672342171608662802024252513253256186020661699335865473181705715396562099232671645863724511087533247099032768375559863002732333281263233294503140048779937609049947990267184308643645100747504526873456609109804662139282110875541167591961247467772886115380627396585755886319837608919530348186985162545484460513167970322738771400395654843213575307407950023328776369985627855661242339537868140122216859731705918755250133464270616067757201143246307014862675633078150293398346629222427950396642956525509810762444390521509122612071674716014056632509456374029320198156543034373028881379707494413307581859178398731622413447976951399070762320160792043718501834495998061438689969038019693084675512704150855154962807953484054392213506055611811834576305601414383824446093821592056231229087736756018638876254912611904900716937811955943267520008195246364668292853891129963567175875827147995864695020667642291969451497162401711929764881865891151423708315285358450063592523509961003592492351802924275731311004775879591140768938525603396426265721370468403183241667498352065556246878595017857302834048532554129160759414407104110131296839883242137402811027739065637468562600351221621341027387688229126274754332657386823174749295633758676025491459564607504439694256816071007802460456650653879851470312912293098240360510251288048937610157467528835723277182779011463347660100892341098607200464761976475529096697544680916297928472574339589095771746872778410944027007196505410354372615467452802817892577830248690128612031594669330647412434465144500371620945319900228274793983219935772121269015647490541211712677066460689858016590196005387097344860207265745242966337253027391156996947003436815936789234959679070398431348603289643220127277965730235142509866324798509041660851866203358149941705261422472933014551886754348828380314232335575316585495262784883821910360968240504186808085127397874463902304058050354443335202842177931914097151547802036456127326173824333059027878949249040005638386709885010982035335034599804845161182136881421987579046928033612782017632017780160361883976769339782277906124347438829652471251140853435539772140545575975843967793050110578974664248096635471021775998262339227993757652768663248675806839456975030364644112192689398838771072155607784644259516938982481318443520922534410292597071239926416409747851491061879777689053540748004070789570935097734586553421619897186714261807193528081627696498868043800898437668001431326075627610515320465355065474923979687139964552204586387677168117083972467909292206261801529652101649713166176358381281893064538200226022057619481725574821598901723113117114376870576303012313209276994861472650131105412211652727412621133868896295925758472147902441816273469838367014726597829622438486083474740421497566518877850575127720279917905890178966872996103224715275075497133609029470893804374803800975045219573749624234635251802282403409645985410010339479196956903051607460522089698796448519802858151455859076089448002970006563897305007834072060379833025693750359176179597396251968268412157807058568403096787401062824600001727945871181011297347417623545567545197897892556582737173295757487789095434747307758840803575772662242187484182202695225469364107782399216315049894394382672295701314325610072789123513120912985460632665328475994019146693617619474285097834766960210943357234734935725278785335965311827085537448128680477330139006644100184967375705573675787250522093810052884759680441082108442339495610433480192092872908522611957983322647267624946211023500619489384755622178292387000160751345558065113485918898128166983787545784302702566557915760933279662266817471965257973826893585978867207803611990807772725355949261366694298728720078448428107871469037269325940650473732030093362732388475021852607725088042867926385050731399357984222750174894643192575827710316255097140361569707682353913568489448539467851379811466861675393994190272510704988703849985376330257383192385675525489459206838599934867632886471528028276009653924445692652066940059944060611883802132481130006735450382066921747269867478923478300371934641549073101996750380552099441639023992071645096288875492159525264387714351245116169055818718577786215007067848641789603918696529032240867196895093050361908193208639050826006856147084958794537966385454865106428946302641769819123536839103222573839254785054067649195424256386006918144008155135478031643820178604377189789992154771004205954341054720226275777869939728584931814523815990758451455650768597687644776886684248828014662143565892156252035985546999496846386044608029504512729684772683934035676656030635839110770482986685425408762515173451761619197788467563521724111380135278339161229178249861543147819356747902783467891649039014362585571710873691471826181912721470631711233422423237647709450252357948642809448187686295289141393891260856247530121276572857522328508886540240126137474828586826219546659541087674487082414960158717025304420963183659858092414658763308778381374157728351529753739493893407340789944860839789793908873338652407970908266916900917449295102297290740421904118948120198190995256914893606369558020339081946784870313049466556813692971600353628534781049765391185957343140849416433279711203736240113584353417675651180457408774374897090271644202937906810834315234838522111978089119934833032161179550091078395060445102868494501864347447959697637799244440987084181080256795606667930535194901872911531154210506065812735708813430417199851592747023690078081468550854065105720400181389445176992274571658552376711016126527700679718316112756524261526308687214341593865266417396806329518338609564998270600264265485507980955217379536742764838217948228686565095297576888722501494409312004282310855757248978485123061980278732442512494913852091307938971766829346148343003673147289663069469476211998450504734651988809150589404252684716343925913216247006098520084407578611014781120764233312724468110486249615245242160953430204787211621895244243524129205415743319529707152257751135659444149514663374084659087193400448628108110263910642188440577178746695858355808361298412717719609660848053894720154128645144765236418271048220423645541674656241904906074206448776921243508732750196121221816625552667396121375242929959939476875947672781664544185529818127828184768952070589008380411288867091948903635073355792884456289037965950648384274255263609388753544101651722246349561973884505944115070386555581512421357197144950055685579575973098912149233846711329278769446603655414048721252080748405976497212959541517219373765469181875057602073708589465172188423263288690194666343104827874268744523501456469860712879936183230925759888309651301198819542031966659350719417208700925340287482356575618023636093720668357764273524642089002388790614100846536068137189057972332781811869520138745837481781789857858534007111579743716062297942203548760289932581542768648165918186849090146774941853641783668685636808423166734204872299051228738578767325859981077485241030473709844739124652365699115232190242439742923297187942789999256281804195249202923325578650881527798250688202189291974164094535776642970471102872443848764600868263302871145917411298924038673614150725198922614012304304566610110552733879945287659897057755045121632256093402090764527289999567077795395615389378304358319618683707455352054326566683682088156022338502911253853405104019922650050043584123043187183025681641289552498521257006542510753431489048237926876297172916204324409413935349074485761137369764610410076829200825530526755567543281513174202200262495516067118564506970249108610549223991098143391816402463807651873761980195397282383962062497849993561137809568062256629648631657795728138522713567958144019364955752236099220082668226314984865351482566931934947876699993401699411515118810498572451058763386247347726444890670689892469895866132191285710752575960343570309569331443535717640988877977307328662356793028057858603347055417236151172011523744499870515680430254773177908843158398584382006427179665471023629829341251744147357428249601214353458746845741710173861853584740225336886081120604647834157767246277755872079309273867147526058387423319451734901460826462459367512830864089471146849370628604084647306402477726942892147315880763767418261287641720167388432082500236909290185157706335466177887169859735481934292651101382994652033283084896545731717802198587547269011192855782400533998166880430254515559859022592870724880114285697007934068571014623504057020626426832528792091763140642965738227909058658697346583390517321087633615229422137267688349070292897061713171900240248296705468646575584787532312034121392465056227588436761822821640192884596151634998017959217668871899149840724293333698097489664936479008142508846442516869533680481191946306102670299480271682905584584227920616927046714683622634811315972593581465515207871779646150087605353399793658553513710527441921077953132263724772497851382377841271002399653317971789592713480034299912570727631209075699054893239675866950126232878783543545843573964236237520868605260721666197307874588680963848253029024009939736766781370527386692818192714034381640414252267710432387047549471158845590163137658259711596233882846590973297420670517403793856201640331163962536052908693717715706947311503850279617763839022608497332545793956754258500784595511598020884567256987395026340779651143566181993129621429519336771839923399826428717604162940955188399891003354661355677203766969068345966539432736361328669888761236560747846316097684946080499875611224710843508844108375804524759254425153598036617850506135739558254476904977619922338580689774198596915570674618148914793697783461971444225226738739668410088738592571970509583621211698996061606412646633189948922894656434980456155629267532855445710009789931558748375185992140066583644962507587962326190488811407883346880310043982829465472726117479233296356509267053348343274625853799371338336185094199996765946428184154666574834522955663322700478999325777502859588194746740059500524701625803534249699997417503765287179360819573452520259264960122857702297085252273461639973714703468048271455238708415647009291091673984991062114670847909706260216425691748129011614134762693444651968849031065679309742642347114173982783225885773342541150917303746852030096487592693088828607001270824592874154969045383099300136928900792777320797476461929118401391986652392677027617299733281917093875516176494762910247755047734384102434864996008957307767830055814652285005799697712424632966784011768782587702223253803259261963389710123682495925911170931014743254290593574944364372350166432006802787181659667021254018376047435096441722015308188130245718653257846486020062491784059795311521917977741998334584511970960667875332831415758752060212450620800485641448777012691390894396775548944150764310517748457383437250496960169078395215923320034600811652124517184580458831991156135379690118110885555758750586539020776467459251658401969185523248304757371361235211058965678268136329032883278329295860072695491152269528965134804997072812662689819629172766358118131950051264406942919771756955990500685106805684721600718565423748779619183791141750738147114750648292672245092687046812247468892119485247448789869483478507167391900665686237212403068683248875888026104943522776373188086368667679747680068990460326188220434430654258776165495036556480846862291728824784538718366929656748022011143207560021498425054112241968125351795135886755407026401453209106317033398977075124798215402814203598106783092523628484017222371346424589124778754861071281282628380028858801122753076640972870769281093351695607987989973072619619019604464698594001745206085270717019517105666697266538224223422973960048690501516506868737772919120852325112720235982227174850822423551464883081502424265473687897353642423283876777717577745358916982141260673813020880051051213157165578610490443701674659567603986400385313605073802940759706052320110800027032380362115331776443769997435669377568738593867111345004497016744283774122089575438005774077533362432662166806815339630254480799499052169113316993220078902547479725243255918328054625857649364303062548636787825057708813901482856372316787984481007078800114472395543660863246159710868216575695343468598431848025827700742630040257825807258879765560470699449540453019213059718506479797653701698335703585323755883776222159078610733968480002822360585227821828132582859450172819715271675121083231590108470682571880265240392960392216643195194420605199121582119556165709448730987501637623868655734694085918507503563402570226949459655070676747605469379002332904131991270224631002056282295634094030782378083372918129677585417602287772076418828797413320688582463636666928045124402907562292596930354480034906662104073563921734972372997068540400481314492867736197765867252863069049341089607387144634033883213721684803566123844247825460128059819064985511151458379909853524852010089962031089032476747234953340647375887867878195676326788489243537930505578351257246479875845477313525009620620803076726366290863630420600730876407455923474360209017778438799101758807261670299825283894288721487118682730177388284668635566412447838050148478675093809623997336823863714599042021970671447558584293838371398747592922097763176090818786880833278197642482519267406377839329135961528955223395923244118228733160331429457124169374191940440065809245423191738234259154419071763373194038684095930485627274860958745878476178387379954494022469400173114498014611843945150694262610194588066959808635058883441293935486970050298283678967255064210512556947875776466505350570567141517702144144921634570588818678280263362516089515822960309685692399542984337200406003542848633880855655222152712372885228415912176936489635393274862462732127073986435077050483221044359540538660166500798902657812901843451831971840300208691431211309567626983935140345348430800492212780542496407328775877668334940112671993294042573623517122016365231567518234176641407049944715964825219251175230952547761681456776112510702289705669508359497316352647545762639262528985300694071576502763864440829472670834147972289869710773870410267976872332015197353125076935202298034755213647100908031335991899829372955993489784504169191214306097461994130974197799615600332051882537763503434756835546130072062345728941621413211864799263961223937123155078036750768684543393705499269667152053137548972583184872925206984491639317548599714483506515460129625575377567203575215470991726527615036962974951932653717231999904223539420026714746778013827767898011738453677667212314479753725292186239517072792411736496616198378265346989488886410227705657031476727530623376077426133582966602891093220538202381687005754959142344992044515444885580161776198184941652924549116352787437868642486695006608666829951013061677829708016516441650861624575208693147454279365568431010308777950052571555062048619175698676803733075005247008076506257832709893411457316133656597745129722617936242953259211604562436913415067201290557059991604136723441085531740665398687795768035171632258620661673364967963573529448576469490206519902888812236484377074057745583986909108918140397282324940556337231303619714891196564496093656922579444897699092973120436586879284509447933520679778232358450557136524598649738220914914690948479556648105029512192473291027533325385742109295488667086440233441953578618262036747150463920615567119408346332389145470867688896430752454198977217155555648809009108368012314614005436735402322298360029829823391935791089140000507578994953553456377174327354266599728802946940963210449280289167526852477966929329288145475093837108962913069565086936310748880396943634284015331989726303096860927646314220536469924933499847629839591586761564789841214791438899686340583631342823053948609293539193371012152562384905521039210448797899352793497984099276007659276263049953815894861761493843161224184275200158706014636086258018442775568655353139387423695662769440547376319192948736969207794330005063633088442603839803757772653502667611571878213761371538329143140138692656026301431088122360579588746067733888410836933323985722513817357353792674781075229176476805531402973769641107249092754258228296558767525441181006053338821640309101576653783306272387136535700293085873345606624833704554031482013743718405499836561810025129272802338525022575344765049989381879057779159808424272560611965187235918189854266102149565775593851577243954208938969399570067130984237870561617184056246252785060826231727992789952423772999044247597984829112860044552335792524086395574853004046608867504150750075250153302229470981965271928360520364851491180685581650746649132590682959820363263557348292408523650040002566180839744484838833696780154346240963760017899265132082730888884021547421949871860356429611400673277789567377738197711121900209008103133040914932200184161215570891669555376905789903624072654739027622898067201474658627429641725034673859443301630690710128614628126720600030650800117850450889633062876596987869890958318890103757938736555268692650997167190665594622303427316986141975683795168274566742401788028361866685219716699679452573996942367230765451103490205208461417568917193230023985954038030795668506667433582670851676369334813140705534982337000235197506915716847638545735571201119739316379720587007122060211009100862987533275804999323439914227295126760502053922119288898091163303416244613366082619552161348235677273139504548947736726453735686961745757186068958283325758307755987650620964771473301456171170033813101844630809650278988377365745945259366441457646605174444578355154869636399409906422805219130200129337528979048631005257786971776672385002401495900232004829487675954474598233687905331777710114492910893055483409223754861942211288262287389438458819035464388547041212106205282278065737774982618321487850448858631268719417383226731832449254349434244940090201637833203178961425013410574658289292987549850670547142161843633781248498503330671457115242413028986125961439778961330150772816087309991745302436458497145026419301895436663556399862482561474324575864861205019757725060046122101968214368139439089260165385349840215983875737679145781375890238660333650542084795530030804214144288207323996139746263589629293791852539767282625994142535165512208540100652207790830173463692547421887070760739581008104450468386289650714926289331632068640808106623710986604339423693523457429899939494258696405319061894137074992774400395118599891057037220679740370390913310514569493319951794971423683490238889417665328178537735639556247838253113064385078630060241960866391005973700618416104716178946223521145207128255022734405575971716230577513906902727139044153185303399615687813627298262440649275325850817537585253502216375522162349106729354958298493426116849165289701316027399733226218811859695068942908401335677395328164854825123538487051925725675551176060922711589693653136529565436686445797565742712685457561173579432355861576360364751466726812157821817558153305958393997176512169862146081664076636829997377030305314188229269968773851131791475169355794216837712831170844383248595471416096791094868184441783274338644369594754155524031548906756398246660311375214755033780417455095165005509024875728491415843351474703840764287065331815024792451472092919468883811166271086991840771358516720603598472331768654201587487608859541877734702925326259146083237209575285839533505407901472617766707141030631543836116578458133890873610012152745197769633454521557430487802913363343900989355438985493650176544608010643287654417306225967601540349941500900763842902606393787400255126478769392299732798629095669262666252361762948038165633848544186950202990078263335169392337869885152080367796268438766677641579194482782264253243294787298711140686354770047502542278069273449333239524176925502778468832921357191425465876744525562481096189394780448312366880920935095849676230090626078727025456959145982614018443560662991190533691196067822495291819332863461404835477239467026372873748665286830849039300060426035510116694163698757635634104587375242313648711856022464219216911499817557787944759540638950814050573497309944039111788877166378267904754601297058672770508007253483588462872523318094519428476364317729086190295579086673240472219940957261871132403358842929365283853153030030415446000273935869136496103113742543157758364866811443428202116850504497219300017023404018565613338082162891901576224181620738465458064563563065882109429865660694143393907222593779747267165412157813118055896205492315106424466283193603586030122311586189885320712637048109119689051807377262442114229345375440334595770100503401619891304887281241500459452898328521746185841256325740397616447971056398269784113209811304868389241009013267704144364845643883146629491386043552674374912178025445474476797606269043643974635882321870638730985011107772931362454724435882809298847966794292253587808561189732335340992715317314138165940693998009579238069094475902674826707445955090554437359256742019554545835760838086947530711933938694394982897598395501943531161585889083156543062470149972022934302963865199857315157782309882564456407219802234508264538547797928965899092834262177824303774253576606261889992410801545666145020297447580088720313349039874404711833830692778694443539697374748818567686619469988767401601412658901502935730393333896047930241561269040090339405448182194682936354267721171953516796947640232519887566268793786949302918300555161677039735689151883777896754200578965528921109756184401518210027722885357580551749284682469012799921144073307642946399404324757096379263279302355421897533135331887274733733290531659271687503575261609738076840895767146614357731566708706929433856787363343026176867701866100006252624029654412829281717706533627593540806991072692765238348156589269689382798018528307533224591548702335967096620233863484388898961867876729542661036615462426749627091818389938822956390938707554659372333241791587664447865961856617064983690058718041285816985930566421731428563925536801908419004314370373790516440540933481677422247946856209739293484710884348848541171345598681437191577033143590819705458968999353470398853309475022090644138472649436202096292505647345411414225214409389015320571917743382915352371321958866363686812107054030622163724663013288634856113526589588396284369076411843906374993516601484679102913876450109938186927764447866614968075605266705359574631056818646280380638127908189852942481470762267640043236222610018831966095942368184094221564250904371413878341689647470344257374529501416170045470841098585412502686496323126998145674179657372326073610022574201267904823568586885975468376138828289895991617889837923255659033913765201992936382472903963212250716386244543820381569201342689393093518652242038242790256073548868256406792480616934497680760595646234380899504539197350952038382396930023770552676916724685466452759357236990088591564462552176875901831012113617283128901508286219996059693295259248834394025538480551884837981789584405828584278435724139035104491542234318118405745506810230766939261540375858813712854026337160568368770709097060873874945966007569750821025904632016826489041386380706941192346282344286389881530877860498559762772115184651338338526581070513186278328470948677712364832018689566207953498175068413288357866306852780687039398551882372255221149930216950700450189892833214729883743310739391913996850217406517632107432456520102755248077214463173299597486234169458412838968498757247116950043028179519507574967852789258713994525549836331810248086557317568773497579830894394210019537900270636689674097267194988591664721697189465298021893530500509066613383206187780556199959816340481888782769958529893835797172463697346329034788907725854729660348638431556949513404267502830958245923077795672129026373104455621396410679057452046483089189736306085898416348111141848476886540306348035874091379437425565482048909666397982717098014048486105700767814359319661908311979440109134176638095017355213305160549783482103805604009589805295580933020796053894767571755135784912342471682797922449221428535994938061508329066017480151326968990855216699893633060981457582229246818048020453085966402235534644297207199369741978522202559267968475386762888113109199877187267934734834419706025846519797428647649543812198726743769660392425858063063997651741633105430217499241536312869885067981913686420311057447507781239720290328272510857182157684986663248291371697782355099777116404121646367808266096980145304203334554612101862842896954061197952537772694256927671022532557539641342460636317896038469038415350261654915419659519689299672013605887723468094299874757271268708790028766924010465298704077764650986264655057331294497988160828103407809803225509004691985303415511318531131204119686650296260846882014771334422126100951392417849850737846511167749632838375977835437654331111849499715879696809961926638616002416680892501658354640484015373212064802495834829583226375748705554959049925893667973271483000817569969654219956113227245293032379565025990532842635387215948828028450661062543910201330582618773486232226864609145431993452461958527518501434318846840390538012206263601235259337485300180902964269530897519683685687627209704254511378709587975435915831865086104347290954876225958615201234942106671631519885626518786854625708886904030289642877882091430182550100805476292421219497000974095962246159773967770691631886464545496358304400739820365422307167795076086481553477496012780014228921313462907837766300661183089983904210923362409048418520656977264571500016824720098493146712043716285647881778918545937015202198075448933659883543460273390610888138303594446609177742006555577532166216858136423842968636782841456634202058146914059488728767761152898665753463703213087264905709277656782772604194960264879977980663279833071659473972103999487483462158105224183829185908450868142107960400801606100299268320981239154594991762876620140790916749088203511968548521947115022676193123576217783985179514023933064520371855068396165250884147012991164001125559228408275021863837433859871108940654820168653507336071647742926926233451512250138779444621065296296835347193949296134736955645275689506181026185736538355225159127883104901831139722562851843321959133464173878887758511968137221432505171827607835754737207509293994421232918293312930258730688541967232403739929423432716481908441557593816648753346421416443105448225533491867531749496201177177676477279635924661194275498466088041543336713249161954225961887896404397704120252576026764491034415091238278672475037204637558757703166543297380895312991996297036269659554388114793945327192495085187643915806550497061802029448301332264066044364913266763321725284850762141634523968210434366671665255893562424191432952421236038288812068405467513133885891521554132943947499279460475994676641611614310687575347548391441886750210585903608105208543365753400629848856543245603108998491078060582828362284166579198683504875569091358538809311811049724350831066622118862490939509899927310670481561697721746416971326963223901076282659002335082470266617856326063805983851146746015232444922869498926969544127869637580241121418470996385568177677925002501276319312897169274125471026593892185402874351260921083751776994437485181107010741526418492770863973730570730868480112324561408612941502804048930431821198546770113540544413884060662294487443283305132285664950331246586225440441841160745129305476999724716242252966535822083262711614814169584336769462818109163061392080546360119653836401510826017379326234993409996849857532277380056527701972055749112061123904093593854651855071918716997160366122247060324812164246306103734966702274721456804918270625085417547372521965457261593101088812747531614632321072998201299491216597150347709659149128000572162646466128654474371217230825080732510079386624263862633568807015020502615734462613964072972999229901566610616071898282500156179679637872956267258932604913046625154377938290538158643671601387653397979428165694603723929601701999827701184592160091927991247095919340902520324951104760632334936138829724953824780418063529293258886275439309953180480467212411083999827349099918868419295563774970029083099790951498660622999859097030587406617316138798893135441062951277890761413814707366998944106783203890412813320005367388678758094192021792809683625641692297421091655719947265743709842311155463179436564230403874980946653124610751044231094395316717269858683323031617646628329189465925889786149922392550262493761793685279445490012743946869123502436175184965796772786383943424691678308126824658960575889024856264576726384993673408233472122973244197924000025915208739728875742489805568512492348373700861583655304646624683832723122667475828777524206786759670261287347568460691617834440045012021287194853766165695052624968094256735894535276571094740742549743601136028066140316347658757782316854821851213673266629587927889547693695302226693865932317304421227056582785797464868525625109921615446616206199260785522275989428732532986424487989567110969774602275420826445780222024622851411536876094068767202482412995253983670871116644980126661557083347801227485245151321967610729300894292752566811288824937674753767152094878850589343750233871733434764159167852889010328366887110416706589948494724398159593722856591562280417303276683626277466602485456374713914515006412898932795914831560077679684203997094194700876090969866136613498761013620758963487966075720111945881381496269144719929966648809127028001047185693710273149354767732148949837535880623876860225966314755212085339884074114780804046599689184169171433190866169590441707864543872547225550978482620315340681192469387940295150375925163842132275598529166285277517717563995710713873836134195424044180660334535325202918795154939035856865256909159599258118067027081078320802793194620014695936625581254998473240333847910058652202131051167116226906913963387524282936541418535242479527689916473581151883049787668598101760310321942517390975551601190377811302494388777245153438165617213584176705402495578132665432538690383329473179608196034581522728737074764208001731473409115794304022157165285602953328263941140775693879267187715511771300518502682098548916093795629271935549437974712884596065861979554014159754906223595452511629527256135528529461505462734146746557026604650595356482605730539304351709539770590428745296950438849329083512638872079462311542429860330523174714365305601668767235643169581892855708705581238674864986235998717841164246811916826001653012374822979808285306759755969451181746779987648996100784603905022350305605092308242540641458159346135529290728947268947831199185783041909442874443465182764650810251922317232711043692835410905942922891377656536568294212193914149861205349188441656663084766611547962554350065423830921486802622120222173178789112291378148667158931190412511807983702302597719775158514064048683659164536218372824654563360006972405819297483307391963443034598515264534194855609143788223259534381482289678416380394635899243289807194464888796127615920331938070801475246495946023499275850961410654624471074149295482785208733393529517561776093864913897525413607007662763593774511176995030481521694082723955354549247451086564316518175165766355163657191525172853820375406986080496175445420143195636263113906806782885613002001814864313377352864370431888465520437769979495642009409906742685858409868055053147556995325718057100874260208836616914174937412494949588142452145788052542308489900892966594544661979843050490766580791756479991446724664069153120023838148077654162961259938638933377714585087136004390317920577695623078580190760190128301141802333754528353606777910871059971301228346335337678661499601396971581037235035997562525202130746572049759060937020395429162708859520889708276032721567461765322025732632386156596821652906105264770045127291658667119884209984227482092353732681725125758382801916754187294863166468655790018219822450455889588585762985945301255504441971444331473168528563938497960554223844337995748597471117729852474745759301603986822766649819279057526508551040720854875494669359773466777637354694428669397819177236910145761919407612560872335334484982375468334743937594455347406250579006614490601122704134552739681154387490505844852100538170144383801241822590580545356387944520349813054231448989619755633330296920343431585649266419520598678895564294354684746025941290959096925538926801828991548654718139502202570966039280936074451875736404814899900224951266375747222972051893083779029777377274824952225832070922046678787982448440232366190952143199494019629665677048666530852867978369956695039832388782249728875751966112341679499918054144923792466419695481838585323718364879043643557290624268851040615308066532400485844741525048503577233930634599111733682559388453585891332803163836819436964269346236032581034771399104330506125673905035652189341934040912271308804346775111460936838666225004101123425637107052899633846004865934539813426299953982845172485379078394959373553008888704115413832553482442355043010690001733833145719952466140200320430207893260864067215637592703504898848276334626110162234592287576390739228072345788767868774421008066726874775767922168249962084770353044256459712517643117962072188561799509457333181805838281046154206765532482829545754460868963706665895528713148834164765638144083174003795787664501096306617544721027030672915524813612571678153137832571884116098134476672251610367133793604206004162111480740795017828896740347562650514979350071514817117414870185943353894539968697189139696964614199077112744123241532424855908996368434142658869837941432538714964634349792823442393361935734502604279555651004245719260362790504180632750348952170644644852587332098389254345812638450102352441331496688176585100889521374507476896853394628258081776114559564859813616660721227788945515681849664476913593451873550318813306038697068349749399684875600404095055771155056805171806337610840295022882524924891417362613625921055886984136123950430723297168579387542930596965032478418691934161652439116803584589020913047514676366223806026308184211180668805918036180837066664294655295115132065265994968087287154940166662567822821419723977724217168384189306254478146180327314868896707190179153216971622514194712173431381484937751251114070436861500855412273465257691702669648044307292774219990942885658438989536596509226300313557978916934138118310154894750543965720759002065888665135081806159779558936678100912906189886392267283119001293641558032176785986404845474711434485587274695184481623619520579594040368192614197162566556490680945829367021946241047207564533868916715163506696611556426497518857589002743980680896913416855991353680576840617090062197283177114632781770218056168081748112899404027316608524202348019795821739899025201422841858580963425091460844427974812520339613873940360763262799453201980922789884706704837525914676209042369575137157993777459924125023222766229438432068802124180439263557676861562162615526824721583180635895001037623953931090435368715285699561927941368385477291916728426582891649479172493766358118903115280317722718767320476894876429705502977739298177861000518954664843583450348802560249192272966434073740364745522453084619669620043203112141098399565534455966703031999310835920138485779050288608558374123325127167815338354051950142731854411040515252767759250506268031028314488056249837331939885789557849905204545498507849696769826275208536699405226714511204277847276459698441056404659803482023942301893380135540994923829953994916902384844176956964571792420966892766311199579160683048968437050499794202337554866856211640347037046739802147535014401962022622852093309001742423235044733322399233709338421438535609370647385461615372139754035210077287161891205359716908069882304367320269236979065760233340714729717365193068232327203373755413099287300233049446774082919367314177066074303469716909573365552071413913334036147128959129013145281421860075263033615342705337768005259360739155950115821113167452685501583143590750691043646549642612506950677869548616451239577435303057449558834419504585085568006421100591555652771044691956173381586597357968417070782925720787367531920348199003817384034027720720161154958415440294889438528197052568400091318637279620375665829645166380443017574647399213357421215539941692914388534589735000437088029559420881698956857706008769429958358130660361503444598630139678216903412280889189073418488483495360556286092547102725474936545410655664083662808248787928192282572911051889311189128669043886117418697435305641864222807458501363171563759445126735673989914076028688565741289549994589403302775741361813071432222402708891643119273003311346768278068204568687767277138260299334167343617111041406083209303664883168521657629289169568165402798721434677743145804661072689636899006117461440261254103600711121880436349158684808668230725058722762429620853245767537320186941851321059551975464775569015829841119209371939662820285861135330915346275710595890856766733494806532904489570903328348698022058283379688305823412898626221838812782169089684506327656214314013989724217878448072918596500756006913406054574345971965062982963718089894034140896306226864455742062503338622497552584257717852574060646419876442252484303514061254833536951707050295035058264857241844450656957805489480098658274914740565602730790195085832225438222531644493856814831434683271916335340769374791421116297479535196491885544885929491412197302485572150245248454025463339842410745209984442017949482584538612198512751111456340681540331945898786580730185207776330172257403572455540134519761435055536293214448483457972999415131390708441266038354451854778051822634055234720986596079305152386318594780902234878956141843845153175917255190981375503488922361820526384988264113478383550969406400235007122393153160996012203023240213405745247473430533345222534277706670885053070693157670381198338530047932430697795228278859878217189928300948798148873649543798204985775385100303556035108830665591857927195384185777680474845175239887770754365172030273995036216887542983198813668625325879237437533841126886469362940068608052841454659227518059906494278316582405470596230439209493756778831146893160274441924323529621427086380611623421028228029283067886880365935521675112047649318135903177785959149495787997365100780796654005202632380543292043674218426854138229053847712945336835581146993500421224001124385017956576669004301905924141044871499852340077404205660972344111292994583920665880121002299982842788374311737878886440889608503851717567630442674829341377416062063792803280140454951390594564289002767021339653389649525940503068724108006558228488398984650476717394451562502029522207172218718478315966734704354401388191722554760223470174106972355435710399122772961345261958602783230353904312791430148493422128122274606117438002302626581565211797157041214312077402548389002377167427136483516402790796378505166564327375117251313378206295466710291468038056523945879721018783555400187938265036396860246028852066180121814008892094389983676324917293526098445440139189633519038568455047774552419169607129144066173587163070971017852860851288848396820291456191478125545394004767730116016715340371746776399037438393898018131420852406626159367527465590020595869864808979391572473388839043089524088701760982995182335254182851572173748751013704262827818931222522892803951834924199983418478581147486795346391053322633247606763342845794331215202635396071830109160436593345701920578722850622751828602016423112359752213426218575605792652574137343572474081987533664824118540052053682186240198437972735374665614342067075402131758314509601320014202382694166408511917474951717215277533567743655895555120561087599858983411086216400504634561731898133286856214159579407868163684696455508718354120783186075892803645147314147918001941318724114201789038208135803680701577793576869374914372252119448728744939601008781793992656588225585499018497783410830002074096652305409615401997925084436813521337494251012109837941926794417542745276850923692268462289259390695661735590996331552874138584963093505463047621045698257137820340639432112941251677371952126524503348922722815791769331105927968139120980549747144128743354603586815047884892476507943124895249187595540724431348211427813222538075918584922303714871502870035358783067965294485951732275838954676214210265267251068241400844226579713578992898976343434458048935184869026489053174927317438706804966079585108545761726639157264100439035559638432117185172148619949234351075926689252968202753360213658534972673510579867942279375224704951944680714443709228804958751999625652985122784998217512130842505977570638467653522557924671616648147296000475223398922566339747601193915610133550095587287581312544928816534966050615893456478763450525756586661423381561947646458848194995002860741921432871350282676214384723939050768193444778133231496613749783855112849961681675251361997492279371494252988250838685204875830615608441092430929564386229920964331518359097030214420328736721326009018746772311313852214764144605192751086476957376289698743641251397837323150782159313411578002530657551842684126223842132428370363500787064504356067386012533504392916600092885200809566605976069686534355843636378368692251107857181903931512714773290419333296940053943811146349704653772120895391928332338844592869393067574788524922645664932114948995366189654971348033597847983834020795704047776174893271755682224126873194201880141096142272360728109735405026687070314749598589539185737708397751362736920516922895684622507541955434598700323626470129533478579800243796053412406440767929212655974402158765285333633048093167783417184680064906019718525795486610771627863943647372061131199430458022558227627821981815568761843802550770516636374100412396239470426051345880035644970553929176578382283439790430184496330758429701535625807603409893365218960062280832018355825890435380500846714952864346816021522483856145533379791122189759927624125750177287203274367556857513654099617480505101924927300934243435046428885965322217777460364174951285778069107203691567466936352595678302500818858759698671591222651669442407245950429408342462436049587090716039404999810108333883015326034454676793820923124514372422208919219304160368170047525838648538190153126579957264070464314054069213528269136880082428054643030086061007169181676745796151607952885178802415280069153086431992478945684875162792751476546389915225031984794084933915456263428509737973838362243090463280849870280384592059920244167083389465419454622484115133812554505484309991582305288434221438792478157373881498391501322092040064815364250665439289224187441404118596878737615832399851024623029709376383335138785280354589031236937689173014694753787348029777669928522016570848977548395890693777526943994935964703029162239432570405166516627282206367648387606691305113731509214571111692900747485721739432593610358809827774226165664453866026636368763647077060665617912532913049261173279707165320157206726880270530765216220365455392726134911191614207961806536049633339297489444329226698194885101259309228872338478700922886730761998414016951846591014151618813293605593393865799882145507772298937182729148557696249040318867827379950540402150482624352639804217794745728719539981134587684255956506455468227766588018802423944869574287038158165672060098727034172425789972296362315934759740153396114730154504848449724822513037866501253051085299267151284282259416860880939023696987125981497786350744908528495814182633507154219855717590259971506596065407223982866376971235999568775107836434171346289728721868561838190719531558328244418820436632079596894322387286923737246134945735893121637099017408498897287085637508418647546064894240435271744571859954053447749118640197926127410772797134827095660063159485324046024509067252030560585157535838695388307178346847018000933445738471120526905526066435985385100346507659432895143413914426549724807271594505595439466209414366629228184828597353961969103281997819144632214039776299365962553667258116956604289861338165626157660980696200520445304418926829604719215816400471402947616687821574259985927188553753812606456331823956215881304340008285665523070434671252396217688655568442049588196687782862286746523892639831296787135819557259389656412758257116512786375602171042655526116430375031128760202319048739081364455027254337009446051516966972246521482683153873500971875158427873547220192014271842824030890377886976078117215922051335858620763217727883003944997956280205565404287899318748116465961535428355498964663529205806416405429077509440179474170872890258252472440108995428347487083376931241342502688918079757619318263741272816263156768414537558376676856992964504849004954436126107578733562706981894093262434115104476082814755646941409261126617741344693355171547251069311026705498161688346142850084798049846916853537112725373540930402142671093108367126212702719962138694080835651418143428294830096783204982093959562002937970936490668071426869721113996746440534792914945481489362932530086725318192542814734394415720851956183143870592516846287160941670250829007324418956228360692557543368931093598506692914660343133955924516151238792088987001097253573488255933023022281444670999842533440239169884130151637769561631782482180278461806525054454917015830029702731086371338052757800627136567160575923124652938400624562008542758972300800170890282939072175984686276279557292835816969940124028597203875141566639644354255205391340419813586776313266023089794152241043030654008347721099657118511309365792032786127835007561428657010387637887860934525509184937269720466571584857903541936705034178773186041305040483797208636797089966831969542084842802473321077787033584018317481968105789382120360501321250281297519557285499162865316396708286182805514897936440658885925864946579412588210903912805768934303532213416258677278052684688226076762221167981062809537723178917708151771338659272927280284061780991416612653796133735952995547031600477649939565674459601757812559319992609178425901579458107694066962189939687196171113553600862046715681149510179444179975559196312165909865187168749604177451057407345698948970975830197023078639595389229604345021710853125208854513878561173104266493794959145959641336114598146987616911209548896055035150506504641282462166101426023080395989583162464591225565183716785815475408460145671738364655478190527588343420668913951888133113814545233011185602811635898502774781284946426075973111702682386865032148359817085764767755273379584153494349112874721651191236291762040798679844190994494262709197943444880829301228197900231878854117891576336614897383791082604132292979614577702661270965457332275325610149845158310914200807054502485654685559509388545353076567585796766767488812975630284181515553168511728934449742467475647807239688403194133838033354656146053096262636728553413766162520706956503156395022383757955151980452580650133021629116031413010868106469235073645088723959129223916041833219525095533993843807295203414898635595291339962071294251016269230005998852611452470341231961419528797546127123477902751514696980844230666447019749669433952742267753701360439333403978048017455907706166821656570902095835295222465866866984070162754171857996342760864995538163404974444479001468917258736979669189656587472891710455552526976672373495058954941894525536858551729676275105396243840991012811982021370320179480888152941717566753707394329400821749465677629653861947022689009667095473955856736675004965273171294309324936278829454377199643257121915407428278627446738006688568459392423832511971038530884869773094516015252922011791950744957524983025926238722154595021248772272254414676149035104037974560540191841525168878615815439523745983913905421616976542166367677327005598583855602406197173106969516336568544351538328754621446084169319490981177598232377005522535410535647143938628248645666511482229434958945389144216964314588847064054017001445610991095817648208432024913098111647449590511506284552099852825833959218810538525712294912955647178721477847327462033594955927773385475087191327299399571048251351974353662885541365299607041913910683114257306205638029448134350243895214987719420757045341346883622431996514300480302330339115864914119115536326358990913282411248566079380631162798343037501019874260810189892266415635703683438970677708976057902082339352182076553008029625003785456422848796970678848740773281926209697989390093219523995491074470386005286863232773556163824896517565513987803792592566395698874082808341318911799836405388472143112377136911728571941202792850608942744189829011171759865131680211422977488104309555137285282299273674353974425652112812610837704616461108755043703944356911754606524564147961526836400390700365545242573778011281639862223622719724604438202337280153318089785503346766401795642667016291579646026162472799911305021648176815667773696031356974759820224044612632594550007717269722235656339471428038073841260937531064571443863137179839477894953978392982745524847536336974025418980720896406846995178235797145249192912998431893609165719081191110033816004701387032958499088953712128163103336419094447442360821923115119829972168401631525897145006553879349640717784856941823685158292095720926327969217883815720747734208997840310703454934784346293424294677964229987424383303517131940895944356935411480389606383100358297382114060259734053021399086341255298207255477903586272991699115784035488653711303617001465465757491755568051109995650593458472127578883635075249056385120618914507227127565798194796497776723825053520141782081062461527864549340049730452246949925269760971013650061024341183725967735308895758467524861115244103070694751373523788134482759049020806404214101998817267392137340985925706763938463138524066591800299706551308068532510569844841699794865721532830761255458326869100137756534818551662578396711312517677851547997696063958816351570328828041276605186653290514951752294228715155657649627079850526703394309849346748294390995067958739890255731697479532953745143323829970526358143608415883023330153921994671928440734508593776455803818083499921187687286917998179143381848208643329661053997535569943271528886524793767144968252137407666295198948052478279986767798587839876953075528966848492460541655880686966470931128910637977100415318284113121832853668156958474093283291390130793811931540819224765431356467168693567200948948021695297503323480481739658785990701926690353808125173931231837061991221968182317698462601495176331777799043216266597894679959407054357089459461007062712368995826872492771876517965612178913770668803705627141100725608825081968996515280643414571035885243555911367855915580309958507843848012793556511089805306199840117351405548728169771822197323324381383605749520794353068178287071219996102084952861975825597394507064727004095246186827615323492925585126782982507047180258864269331773076515189465366658361215985412591670783866060261952487625408221379191216449633050987908280174750529524426473978196607303793206978794536482154118104563312748462405727153820235436030287954883323571243092765087325611399328082116572992982693594926653275557575319292451088962192753497569984119858551419330776491570071573381690821949289187956324603131125002619493315343220687979717260766471212350466175819581792203616190407651261022329563889292179106569507955348472390496131280494023624625735358026817316514002230893207863843650885574428044456417951641404264373437834859152066453995914727229680146854815671544736853534543150779136781926794862592141269513740035886102474416670960567015387201290952610554749821656560255578184528835294197532962975147872555566515629993014128012182694799344894042221744402379930529757240720731730072190266886784007009513569307391176679945102490834535206663706961024423406338449516177665057104844444141070184490182201894945325003289948861631648272814377256630108561813820152759784580114409871359815207729853692206013069123749255498613038616873450452021572253491679360117415986410348636849149931581191340332344340216320412893694283586273459810525281861661370642861126729509236854096657785167365791055277611603872707143425359911292602429629704237863562917375798650279108015671767386328159219121309783876912486870343846772659135952103337256059006482569033539282705924331485760243438367342146430806268527789639168019594009889105325864396319488518656380833778918963383630994565258345324865366054449591601448371195892914299018872018702613506758055980561484458505777489114472928552752538321268548653510250018896652589980392982080011679186025946052616847327910452337234532746482672401919365878469898571505079273738751071445770582382774112583849709535560312379648852723199094291854868302835339270461819664872695613374243724605699094101682043824030952164075896259025531955652095654535027389014001289695972911528890655090536891933644372907054493587447798002811425284803383433315837236428648548749842927581016829580598169871829049998880373516098865107398884104975648841470374141396714477717403370020522819205369977946700621251549252299122317707059382344879282295344089803775282657321364526432732021906436143978210189355609622169933505006540459633095319156381164561825019139153128140969855896692548048397783649219218667597394037325627821044058823598833842211739616251018787911558259844110688175980144175440303600046016381037295533298262500063634489975818368127352456141350863906160682325820686301978487753568965815142812267803757798040054564826613215254634180160208871768064165813196546264802890314343795124766117433408366489704406511122906851301244132250693408792795402155273523732813151012556635523460730461421912396104731846832705435652545900671100455816624309592569210472831654667851569576067183565602113054958556208428253679687099316533724950273029299482201693365655735628208895858521095106808780456361572065105993113143756089557199012893976441670184937426770685941093352637748790277215453640782463799434540844434820835565571351981649558522799445349397785501952343867329036040231966355277958831941074950487391614244029202944381254522471635561929532521243170270599065875312482799022663443768411594632274330804943091731817144788800157947977608700416527659484863877994143432306462163476508369334634392704441244278951525028190338563341716407992117686241205142569592618018706989959446399623224324769798564207406815273258370539834974184051300409651922545794359346167827856703632845827473650504076696936174174990615174627356551872126321831405065991705973001775627635473890071838390731935026857710174758607782794752633835990767120268505471215468013025008745926623414130167325842380181772822316539217599038557103751150009722736690085073101070892683707630158351282558908642371183675386816352627640951369530587511195201337575921109996253121430303384025868477061112765615415105474991628409367996734395554423406271808987465995248099118510342123034115509044168840780437353248519301207139289942348326392732694847068890400367038767716922366653670598324492802619920695431977037904243546338264053166027073158627549692933456994452859214728383994300989527031143503731248698160543755166501548442529997848600815760621158643716714195227997710684756301464093079083689715556994970418303045990476914836054261087536455613736845119066530450672303879555953410059609557099131138629459879006139040826845523746641748493153487569276460755906373129140231455722075373851133622860441301790791241749810607332153303553002017267357243913648120733869281870450140134202710673958422641342119596253255330189396786808537696706556714762499018817243438201983364671171344663580422841004775572985256821926721000524936845664459671255492365513668211383347739388485435723875203180298409682329013759173869426004114636620633615526396337382606965400894638499171191220586667096016996261068399507631929336386079818860102607074521967300801090481053124752110875499301679855155798196781823093955029778503957041723040967539643660428248237247182731962037108222446879982610923496407760144760171025337804280799074065332439007235448657158754386192672299695673281320710449098661684021204561875908615776678169317781097061809385759495513953876211842252552543951111507303236800922965224884675096837894001918671847177062811953274123969725943291220501409418961597051385975742386994223755853179280165412413422515593351123028127383995905885483845815285476532368844508860579429054056947191194917315346259184677517089898119374045428595407570158386390238251286511054376709857268571033865249400066485914513668301243569540902296683256016262779506932147784548278003998996205336645189077510649334479540344824088667247207950399986266292362245558227871717447808122936620040010194013922519734235084958452840990362036690139222078418069078089105160332690621683768991833763572881412450037928461132172042869844238213723752089363203450409742606158588550299344932932975202556050594153504925632381502000716038296101866230778455505868521943928122890493969489707347296434248277873474218233536130907394385772790708436086646520411029845602978510124777237789901562629782405735449363547134627768892312456382730207532619660002395712869897751935633423616711424559851585883814051868971177053914917217630500701550756699101694284559930688300162886020487755794349533457478064008391238777547274236610107369770656976076970213161217224095439498445558944626138041198466322979210982553457161157434349813829780149268319968675699179749834966593833582823617751683930732454093386980929877677457505648953591359276876383474768304976768683862194144062651277041592835397586074547550562991045080231162572955049353537424152887887123848648176890270884463223427558031944067251426131393705328408978494288474137121877136864477659387636844551329163550419003111365126826452482839634305973728712706721337830252684540382229323488083565005563208217088358853711946206814569322485561515943688280950898272579729728794923008460631188432537005272740574307035844215997990109359154050188262176864918336815013967903915514026500187092678732288561804929414582158513025460990790903457400520186407162238948536714591396996611167110894426684029808037521015469327247138511079205737634918473732720170536446124667143291570542212424958251750686586503002437825801869957423763074640089178909120258288392265219201725136763076422120393777294446827642819581351667360560087416535334228137874282356521752908613292415173852745682100617184801057752506887658279766218262876393477078215680283679824219754154935465070954439266759230254516583719743652780855706568156047278013916952415097779803991568792850181430552108877299627990609823672242492197050987898851818345499084109436963941319216609157288486817973434195957276402106676300818959808777373570962446058287627587601734374033869972953940338061055340498761100109632014784235932174436338443822198212920816258727195332009375966427183888154784660726936648256508418329528312518811425226660685362812453421599811643139905388254014247236102231357368077285125473751677566509635570736674930734194598075056236793112307727038066857553069606962795818128179153730484127759401702475063976893393548666849334625454882137252703035468538173642813499096146963128953439924615971907580590849231728554426612429021520543327323681892041538715829947354488978732409442364301235043390388384283097537561027294268541055502215266430312379163513374137981234549039084005616540977282951745135832074135141774022474008914876254998372063287957315379407493610999949704271489943502689369355098937161550287461290699186492971203366885057224476751568722183947075631590761200382833811361687106259637529170032339943560418057801102694650995755757351249720199622339448315272708432583665579439658708273635707439599646445905790053384655411804395795253516761975898777827551467229827911428867878066981777768118481486894508897901318284488557078704554330788566148908422292786388328196845131900674149516067107014617499356719783979715885507273615253338805826146352120388327286911590851932047028554828228411548806458798725232124156080148163120115039125200122941665076892695154427232039577800887430556581437353007008481235660558919445170534178446015618377095483429338654191730169796455178751834444560882290536002259784460735528724744791241570927053276753596930058911285555368278995115230418475439444380089991065140913550788393275156462891919353020797041870363982384589644311561001675147208234758937733328921549287972729637549264009003495558812782328555421639551904712873527280243128552366397648938673762230268187141407831476540036545835590750095942084411337712688620246626811051020014749132274462164105116316852478039087810419358962581415150386163786361147225407253470001129867993751826084316022876783303781555682835805025410208389382065905044228627808058534405113623183682842516494545209398584996146367085331962588142852223454749502662614205076818623441534222999060414561624380780169042865926542893593975303543141613650582317263419969459344817020349131185582284823564502348366647449106822436476976000370231677992010066970574475701224698120090380451293857164665852368718485331145186890903819410750585642788049481516089899519750117439010993188560165770715889252220989384260483302782579273537654136995790014651505986652340560195686251870873596346423318759392180211875695592522199622846467325064691610155370994181019534304270069284576622268284319939306881305286212830970222202717108091658366598000668122890724739524914708341657378676835930393265782277902725231253230564617756963055535253398464805960745054918959778593511164385059772547442385971305603882808651558896980690486709667009139316988993582880706673574439077350536647940430541792567983336124138677444333867232260142505112521672046161871690094202915751306310612868760736730561317572714304542163991684840387300977888099827382522752753677956589323574461720213977314127218418931097547629949376019295596638385493896227954872624284756424308665876158577352910895133606770815873476077002434807597131473317215461992736381723579821016620999253126958066155207245595082228910764409771452631661625162154151276967862548393288355105213058136583703266008405351662565748507097173652197493710390816708748940848991737851297336259572133740628143196563740010149059428109785701368928741197106903274447323345107312293545182496890675635164673643675811249807900291021234451323029168442892654232688761016342655168608198462301624578290766978191352944428743994882354191627415226964076382288435973785832718619064108043448282732646270863927419884355316768093757755859078674916839534295781964083673714970396338834815074450948532157778583751556561619158877477203986101381378801505230515913974349223910321339222323133361467771994677650492495516193075387272044615303178533668068070475740413669862853668939985801831911917255053129298796184194010132783918756241051095055092670106296082454505049949767924844470329483383760584050808841803239327066663813698969892243904687064655287820713416701339790307793338237130108621339216330220332719116168548814250930439415497121525070845231964529476848083582531159475747100148332887101107434941473351406690551223312884043415066386087474289711763780356239113517954793434057357123107443967430750188116872942984450835878505174488737386740464998665382073062345429663583255804785690473671659513417751071549279250321658531117057954963953348553701553212961977751121233874755042665929608170671975583617131678295803574493098737742101825320830789400873217437685025838697321871385523442240437168071503424834128710827445028813643626764667740706702512704016768952882192819487141660469865528172001825350071130866400137637758170007360777670207711925564501893574790417412029770384335149922140675999963510548158147119693918875387117854308215785653437637836171057624966980838355111864023473613172478372728970626605505843440481854107868553769842422619722183662095586713372937347986637968936108474548318093159746913798968172388924748604977465626860634400845019272459493558158650208690953707933225494754653727693283578487194760422066789263509155764752794405484104958933888811064184998156700933603721438216851131940033465479898094987282928919146523238990670029549030776271901664802402603941054559746503594599146411498539364989874286544869331896711804416795705665239730874385505981421410461158203760096440452175791807654149120220747953341296926248588876735324514394320172475336485344987562548216420340239381128543324581083161780242404140158188567071256100139001860272557056447732221906556011754066900558553480540344173443688810202973326415166560392195658727694258705215777378365650309664814668976237358538941674476710186529208121462591506224100667968698146773049095996747797797870810772315773948369347242532211260180950613957107565421237131142104973772275372233074879349902944185523768895718941567040574390388322632293197993864919730578680274374587852967034101533400849186743058379525174227629886335878288930315826770368982348428937192784984163449925636309225953103181378996572754642617884069291670483490734834318114815287351859993749277713871238025492728948545439197985796054638595445004353735141246651657031892542518080458273038268046251180328890848146244558305143883362767435226538959262180449371945965252009667040915270048658166781193312896715344428595392228248645391377123181220768023383178779312444192967645848024650124034530072520739814164501602118312954882994717497319828178246847874556517378516944733389871913999335910804595674121772456682438024882070556956723715747800140463291029659948589013233139338198842238960853182827917927625123415122838990350062129170697896887328765618971067449660156330109804318725409103501869546821278517279266821018563426649576738935991278123548039178970894803292546188841823748605093882409109690484970385262136430645103573380360084207260436543157732729208642173505497603299947721309261174765262368272420455831574259265553470612517219836391722095661328085550968057928560665424659998779227829782736540840052514159917705523110869005056323460121609205896760623158159662912867052894689499267591180655682235530968726848742568310543273638833295738142157297030267002998320331216793080747124286444589709829261934544304281810128757375075246670853307182107086812841813326213532220170494507363960363418631808410878230830173656761924821466623623426030255484288456995260670932800777937073467891395637795821035031269181541811302794801091191761360164804177877086454556715547680965447773595722710398129629482750977862006052291997708079862157827240441946604408137833309999664641950387408076688918511879373145868640975203658253328604275386212008215800317859638728900454818835956733668446794675304956249192429974615783840492744721140664945323831923164784207315554963248394798151443479088857919434492084048445202771902634021806630345891718021678372678262104803532043127531414950011125754874302340908359352175944759830847650786307821159254403526747366710661688945576879476140594614297043379121225498356426956932484731607012836716560262019673550375781553163115649868673117014696275300660694558300648967525349424204945368481962018289130687288973427145025637896965574934778144540851815744632591627422288259989904799377481225758852169921417991096621141004477339665737289482825291487234332857634780748014724347488380901846476202366737335419178927513460915015042094192808849740607774466878562381993215404872678588930501821728004000972014607499370479769531314890679166673569399464879224633650066230800867100975241135377129765784842420065872695578149180313878265043448862086204571187552818748520320028945398374506488106020870118112173710296672065780545159859806821711146610282374697513214976404846704417526123140322220199218697137880986065033259431667825567724472606614333892582335513111961442471422464503681816229750276096109243267589689005176582265360938647854363758893990937698865284690587752535218507494391361648136214252382328017216072814445116472865478356687169647830930029355657848046116859098260279580055123195879277548268383839929119977262343859649430070328541495417727187216008566857269177196274912121224431634266713171034072317609555004514288904577841057057617969540297788145412914764895478021617444005153467051687298673099100306351816942720796516637995587616580256330323227674862631725586573874527391190170821391955321788696852970064424252495622959290958597746920911218722890857832755165265035818793851716724975587526137233111214134939987159944609825225827330395180599007462172359285226020181009634055234712638457680946829114538939381690694523440261528246904957283847960280017985119247628400481062841592509068189068345448997617027258291590192388011199561540767134490134032671543079491159169152071060628731467489974605276690412789504855644288866667538494570391226147501418909708208893047158594377402209824588285718009544846924433310929510464824850867190050563670199663356988558254345188726002408288062841284389653178812338873159520830242269030269208375362806050406915501334334298605243234190213994905350629870005849040367795989980664669935433321959383906542475250887387164833060848255512326020686850009293191110232610550811262378231443908141965781513831668000894766623825634926033604471289734586625521253737722121491171716140812803851547075530747489044466470037875814566086901721718725330369871712591212635047229472028183621798897237494977063918331691793177122183132197755358070330426690703536031722567294648078020839983030176808399353237146328393291893588892166565545115343647386889202059548066886704182650730453972599562524352765386546351259644081368691742454988469197816760045261059192081473517839244693147161817089679452888140519775188253708704540727634841921468694615668086035260062557325496964139872815055070594748101894002707536325771866016928638725897521356191827763193111192683299132917023879877124592069406652548346144529725374053389299064472977247914836363873622562698771096492212089971720998204574197774620086453667606890203387513555437526399627326806992495820961907742849313731779471723657787610004220891797181016122575602352135628778171721188324538666794811702229444570482276392080264520807028378335589585628065662227052789345775742880552524064839168684940745895554640322506436326942970089733029008403334616384498706865262685845895897262774757191078147028475480067969110114707748487383118248062892130054991717890111560419337386663395401208978138652068675899439258096955798056293158908640356211097233396781451291286972550046216228448918386186510888256493966709805099714721194040836294548091355327449759128887277228528205643793776483021424313645257566325642394764150633061101731729768041336685098991405631411051661378083045494194343526326779345749757527314004772489834672382605194770149543349383136486961610073666465247735688761445468668938419202996893057702164501764270747770562890254364971872964531008567766870887844305424006763308777277714112322531452048573389993071841154656867839672713959226751908365511974081676431529224269216256219958224831157812838159143464359078212552815090652373280837243610085539769445712273037124568622330301163588271714795693287525974023757754440647235099138038710871625324949746937042683990947341363252776832140068514279151589506474557699677435627685297241307888075785012296576330789324252768133482036904491491681563974961735033960195201243036012419170920352935411819516456213218919679910073447926423813342695954351101852481413043518386631648163379031041681763604525558961346362595300272516763551400257972737603029457678946614186018056542505940766753073751764085322154485523026055593249823563533593630049469962373689630445904846793552494931572226615445991219676181109925708167152398875200342366209326208141709276147933573652988056567819202776723033515750474593585325715220225202179947422857701276062503815977360402126698855386124647956022781293466856444786851894370624477075868499364630710112527024626870193086433823869151077847404948737556009778546785000418764385455746606409711732379750120394386297408547520614711643277571799474986215193567970773522543803398350309422028360360333897842864999159425849435201976198384938034654923089666594541308815428119288306524190130451313755716960273871804417178089564651910170499210306042269869858059438009419556631535018287961442269153926228600458397099314774867983957965417272106328873970283363406276636097235146875014946354465872240723757799887027920853030651533489163771286006594005934526555150395378023346974184639139442183081075120089332316167917655590075465597956827160722252803371084485132375399744090243426438229958948341494653636757193704939616636117663499162661795040003100812599380177759852450643288036710159174602857527821369411730623603015506851026428515801033998334124697831770601893395314010695800923785301342430889793400598262677971892972927538515595902457765942689261703192987796589691789824087977636656029560757873573430124127033678709386298531654088270213744287090738671374450010970885420757542128222388226661836142324362250803350579489640635710752200394405469752364885672025026466892880901497177804684223427178415678338816699403151052897689131532008123188315138936331076089801118605144827791998092164081080824139996016019546768895299609183641908362003586497480018119521124174262387033822674794970215753837247989407385647067686140766519816646159210502479045972542613375622432288781638486442589850438560826801784601542252986313931137505296700319102098909570161761492465676202456109477313049582588055715450443565656667602676389505635449335706198034188796890974007146953415960814278305377570175218616109781877702587613519530921983924212560079815115088881106927834760386705455970551558321415887484590338016779859444061621044625293885539247259157669512511513901877181873268197401884232459133840823841080225347674417587636619278666654596799798363485446527629521061508163272988494124275186286067045120618417634806543315148664204446349261185112802132340676806781467827452099209615420048157078409222911400736518555286676850900125895275774192806960473498908519303494056853332571325231413569708140320327524820184730069585420425146281313793373849676231954399188838968899419825641020585653315816263961719336497881233861709466754542793750436436438161909342689420666290422363079600565203242371101344167454651354785229864817713347065076519310199371022817994601482744801654256427440064148336180702994531178862096139997419438211048058857996370331729081568569633581656292565700540853868894519273702560192728384884883550840876588603518363905482837917973416458871329990092740994077238028519515127767087504640113787821429519611778678214984864411488568657989544032933711770980137297423915628990790622045479390760794816632007007176315782375499930962881007295108812746802863588169944134298120476774838447195658959765746196890875765774424943314980563955647200664136697267888755269861825829378095859875560675402262912170079668109667629590764416271762938591711338521749164567074125388773764941684213713775170586005335110244954951078467015556633413689450825570623650244762696730788672862139593513881875563956262152153959030750928087044233156230881462450956429766398470005129085972162083680454024212445389840303054307304050811012253325376850832237996467054904842104065977010023812832796510009514448948926944479255318350094610476558972178890849779862139167811416177603590499013478669494224690884203120442045064487336863540972582105108530815371912778083033713951445162082402206594376035322355922473525938499307195686474022137027150230344212508245775996710028115614803313004341823476383029132596778263457441807351261218864018196964560611559011330585403333856184272843360995774903828195609278149131450928135564284486753159824544741807445755841578732334995677844068517906012405216432465420640517813260624699703269692278048041524535170817523798524848282192953932583569810695705440119654374433618884094384792389076982424057269213855021634561312894710262013895357764525481167963587740555272802302413939928211835610576615676676572561335420545968501083643050857670816619361017617413439348929783890237085725621501036037415391191175691683472810807196944460144703803964206928257187397048906800243766801569097785442916703408760467975707579749759631493832802764474562422133585064144089534312084612364198882892613481083805863467470274036006321604052964865407876045860190535945671999135396734476047051910068057205925691678351599599072926961439647250985872608773811442552990613261250055294937535000348681850702879717873335382704476160419701091358164032781248374402426722658628512815441916242460257070109549174502891328987495481610544282106135450469564244010699331547927869393130468515323694662773714001814828783406883651955819125724475060423447057030949203940202362770884602255076162399059047134850666145846736679565097600860771322691911108190044204446206497046299163332829412342819402092119040068043061958948636404484499479411008440999447012519604727963555841279369744819384192668092775881742201959641430872511068755576951892012475216779161420273059191587367715320864890547561781183023291418868505384360897346828266596834256489039752209913153967061753819482043436867673325770292590072739611518530546805978001897060639025371476967328756648909713520042743785608323674619065530245940717911568105895200118687696256699269671141762542988866942358425350239005500143420922141738073018595884402839241542248186872645818702582411470418146375595487592817877750006226496410268785687489309686717796378208342482922646764853480787437378792018652817303449395775352261948413836542912540851913902121527051803394817113033985643345736491993312640748829506571639899907032052085459224823704762051511617301234075305856724472263477817081299348568125890932450946855726040772589834363781813619520158717848254355586481795656616936577683418431988628678718008455367716273559247783051711529850057050957340038296483508561397332406299601453986286801959659650090086818326994783396854548342712792231047687690246778805922281154459747963852076987816985964056789884014615668405349838553377108827809851715394326477365132849820566837486392587195110028485816276847243161198243697358099343962630351107351109272450542855697810885710247179489442948858504264543917939145792187078316913879511457868257367856674382991484293624604503322989775125287186783781447205444845460647993013608350524539662438635998988998630301519208993118970101337570925600286893271985301612499904873131792619531345544808241819377218333651472037926800215297976291949460461597853821064675591163190247822982465637254129870691935095606879687157117809005516354315454722869313835678339197870893625021088652909197905669910658574574536689082355617487292769190679990819074990498736714479541248600252522251883456302499676345200980378943564782750899597272197965653050145959477662995231407946812972320429190543531079257408165254616075675232014640790471313025252095415862785444122488136395994191675205718970936856749183527509508644118689734073306560681213911520339033526172474594264459253528615852415813645410535829390092234900716515889033469860961948418202517098696525842789122880038475744776603468602522617975262121276326279404988701683187505663051362411704419272140832977143407769561661044896062550727192518286336108662847376480339224497745653572117033364789205367526109825137102561821953974791787879797995803945925023891120800479135494589226604881853966490142875255019013988463970619435546749737902116767082883101339174015362471744573813091342267918482407151434157757796154170652861750238523941234412447113945478589093319989852247272657584239107181659125233117631840353157307609819428209856138140249585168030318413318554671697183240122343506225199185441633132652918478255093769004314780511523759275253401660094300299686519463367789452453110838372917740620908613612076594196281618283075147516767577320052245648167358741743394050140384257010205300219777919610840541658552299094290434385561711987192674391745984168179504067905436006341796625107939873053970521289025268943854575789370149913980361434199530733678686228689165113005537446542509856770741217574821773970385216172771427093817817468377301603184031443919530370837598369238470239471562964436790709190386370641403640644082370629289762323506124650425454857162719643645173767614718780569787907666606182205198988996502497005709132057657203134459701066927426351692797189032796872019874952396097326048927194383570090494310536530359185523783470673547917137402735563836265021859158591582779774838216577744057051289184194709214877754778203422156650605641785855923987602231124331877798635295233588363849916319112304904382987175579905571348000913177321378177230396707534880170442444054349922067347847118125021542180609373774169631224672432878074044799745280600381558771480374200863626432785035958731701617721885054887903777953683634371297083608937895240422670771453585172596824698615203105927736606109928061835655152135231869623027479864584862740357737095102381830255131847110294334137129837061482762088881980849544233816842612266723605725630922942728668710839039471391978767054914027932378136718269171090651092532195987270357503519693348699167189966554436718090818978138131816745409216617303756474868431405994714601632344897428861195113402075113361214121359153239306621126158800304510508966182375905606552826338031990264404118449787086246792005569572189095764038420483044503692074636361179799497576501125701485666135610844432124259899956380678329052610357930657042391022478379572375311587048912136676173653303960782316475423104905695785689867445816288483434799649965328541953315492016085442945602211534307716304256932830707909589887149237660291571679399349544708764689999394427223964339394936943766560963397934503639999607200362440645159349567750995612986422412416822142860273501656119933953180037037883448971127674954367717844392707202136786619402306578097540580072520860819891520594060818739121406709389849648084225869436802893174005324660314380246828827888237818766262445654113834175756218568251368607672231824729550722084096723198496205821650735991032066500199509243071458749959320389134501387818939370807214724502030571570398074919431156384413188390484720427036946658855917470432974459871812672132920982014407716944746410645665965656351448209888104460212789342856001911029521044082169454169607345413019153271898676684307712903457695523308118905519619939682823224349444140272844737751569105941692567797651801698118832044193684051469508801739063763685269484867827760681940970086672089997092418260189940892635316836092068225301276835261967740183927404854888399873830986894091223860938498265676694319910378525496868347704960840599212106592397384006632645828811958256774364970220579281398056216275907478875567035990309269104091027226042580619292422916392396672325599461252826295226153787723773158379527666366260715824485048795689290297478205037995704862284410098337654843525069260056447260648756494571989538293206095928033122304108107708138768131266833031905908133593195977468408860775192069794687848095612462837173274732458611818374130574965081272709583202240688029808912742039543897546541061166027287020854467915284724402132076267490288585106459683695767625319929094895714087764787365307892756938143090396646618372493757619338224394948636577456352071187670536718638230605439897527150706486641694898384258115907817257936114268821652285587615073205075049112696262866133375716866136230474042231406465875219167929647102214020324476695542693000805681202195465043246351032307841749329294926153438939609141956625216548727614224381575959829280306767676374086319281734676673162270140614889805428499303348482938704381316081337195164310861772554011181126048561933886591653863331484665578782936011267753292754920493088192256791669688254883201595389387764965815715800374541256173921978132661044542963191543549701805064311703452968828185716009416710801844469086287353630116745966239017812527551148015868759575818895001569522485152010404871532776161891682454780630839432431995874638606190573313049019995851971940802313746799589664852082879429544400065025131648138558803042179813358658888664177444100238927225150151167422706616065110011507042613569542460772949321578905912787210072241318104178039528738401332906722670176011846454825983512831858166202623769450035277127350952489905966214633139987817946607217749954067544380271321802298364493265521245260994162559561864199687950376482178620044280489597997974912523759286163372710862752758089216181941070162450592564098100120450205372655998010750744288630494466515316485958546229228138802246932149990715141721338548256588479841367731416631645123492031829422247049245820335432768846291846286831165510804371202932392807425720849103220712634635965544632608664056032441243144446918756393059634413780166280188312763562859066207487408059800892057632767903497499659173667469907464641370067833134850908350641450575953068888618409060854731722207966193997698551665486629691828317697418707913284494854762005623465272976860494476120928879116115830742168110237917228704892160391873764218763724251817007834040930246182917564297265625831070852922955783706109512614829118155039988545845607835696107866777388995332151923660305731894579503816635209196012726795817181716362743968809135286628892891059942873853716859568506575411468866404006228025931457050335153401689557899395990667465895274283482514530624589083939064005890537226405601088788583519634604184212159309105144121787653890020080988597809214767780077224953355641438552733500656642367679540890242702878479343105568876353208190722456696259339648573383215049720732621054042653056848548221741089772149696173643185542783297789719641387083592280767455964584258590216266256283554279499663255312226985451169854233461946416219479120852586330825825652628117046359982571336975390517364325543383340318591040902017047476113960044086092907961898422843886944246746837215803015187235014301414393995197769639586430501421433474555629569556515343715742630042073278503991164207315719936262124024362600322292882879982528476495937286880854095445047528991710727787158483905226940623382007151363736615564053357602946840805575407142743923864576884121697983969205033637893791118721757479816231709744517076701923935229849847043505121441138933736633190843709375184304376576810950067235229779333081761948197585025500483386268515944230786816962871549622468843594409724889306174231750155617534832416283923863981354204038133314318688003169025085234905150461413722454612823508314831109874482796394981843661738507590955878332298540461876968486969180973990161390631643652620389162793723298154854706973452801722065182268293782831778706791066652260087494079189922076476515368775652710916600277054683612306513775394728487458102569864006090695332980405242301861572427180238654261342356895130845766779421553378577125618790254249452238626453243873391181335523364253756323055190250839340443335423648489061568775706571204171557945926451787989858736273770832846363315349875948930409361479802502906358508537469540447523672115814449974137636018430184851740501432375989603275363728508363223816330480639608962087222100182967698390750855205341712933234772635406850259200588766612619642637576138184070433845588843463701882251792472116934296597430724434439714500151250893993092325434504646158362144447914390955229007696219337631586884056524197018602380832204782556968190707889854064084863914515821700661145279287575487595012883217814506893186920064898500951428025719492804820609423874489972576612021265467919453157733207059765287845537023999292502777960020670712773322410300006063900328048474270129771803474943048527848414219386093128319905703997118363282267717352961325792889336296318981151035854929236130215058874491268563901173111026720879814769554716954927166384553443491845149142814108810196189629161322329783370495130588427573491405286363462404065761456248574837049551733218844599043288165373377941512922127583596349849404224959268900110467594281962913473399796756494602958182442939217485609078620231913563025966799727396975551092957021635646743260707040904850988810500084954722688458970319037432515355766438861071229544927160832677920163304202534369027716225462903103669012229364984360396153039245757440534623826361635065504126831393946983867623235222937412736636680889931534896112057900759402754694434104040174339308364694441298623891472441773157398778033800084105375128343981593004948370146005741394009600957384458308030185097935630479468012193649997047880489747469558590029281504381757694999170514757099129510419499128455229354854761539947478351306558986314092335215891434431262555837921072510731686349972737969877002420773746435045221110552751125309674889005040472539875098011840333808450863342465121837301701189080203991334869905328455168998088084185062590372774907576973896258066136748425728266720326431332017101784258730480636803198849282317336726630042684055957527912737391965097150007730185012343178796991093066714996415184674274838571743609134527248300768155385671129284397034638418196004508219252240734882844498209826925458867548948303083696013910292831454071502435201705963501054360261987677769005337843365183115819618301947117856298965574125366953746588723792499839609991374991723360735557103615787015467799372932075970439332264377033253227416264257568258040483104911883162926477423763179615008699249843229774319655072040756224161582711480347016293911512950750610341343441060852649405429109622999187311399967026192412881967170601375032021641799618879557481729463697562781083935461943591438028247237162277460415456038777269333444538152097921315390338161822199878927529297217620211802171618705602355264967103882513426289140350838195484416504518003445456804841169902027571331069356943943838212373631956784318610203375589488861924092034045481091235355685365045873547769654464399329571797759783058520579152634675891381323231168141132063550843148415256034710667367979192605245873760486460724663443928100485814730074709058321925833547576759025384342579357574233017802665579536887194440665433715207454757309202861359400760385418350497868791290816653279743123939915307436457508302110577145975147850365577923627124866644708572521943918255444525299567345095990213811734810547473546420399515706535566915356833568108156989510045559268108954469290296922572628055301801512407180219336187492347777890766518699039615220850473894785155949472262144998308079424548877623802418561602763831780014791980465940291102041336322478690428306926095853271486232362273391149380513423834742506918211697711845522332956221125226339783813302150632741648867254933448515971061480441355317172928505156479692407885297442542172085494775722491954045339493801958695505062726412103641483961873348355634184231090290515358403509074930999644931234121764787862609768515234415111856798594037900746280745533243940601889062557193413354505160589982046901095302727420364344740754929593967833655907563536849941091113791956434626483986325284058515627586359312379138678547449462881225557346540034272788552423598337364386985835021956567336456680865567802691279734094075754009286035111552835077779437879611015704320338774875919036618505860548220722348792897952378226142439407000156194435977702242882513872393282897891686196268306425491244556098226309484906730350577988971454035657451432204055330220061565274285015104323388273884638020868355409707358194472515574228224631255344459433295715796609640401541220439008044171387894194301661246139152314438648025255431290380238523898873376765454218644823815025628342712812279272867545364542831897406008610212876615058671254717060782848202503721864367092287379483911277140394037308526952677254410266682605356461408866675700676109512513564620968960667852271190653793030690648669917149638890341215895279211733875896860556686813934875697551320771655394469570796757465522073665553241019768598578818738166684260504947766723962289915148162708960547882501654386522946234501851211503517947361613578721231172717020919839026481399506942977817498410519439040055686803522442926846780444031338250797379989940916178887116140945002726176889249077441033428099199576556026912867520889202424153759295920346792451235509920190644465598411757660291276573154719534988807645549428591561087604414373217538306180625001156104734167643381928586038979475888538203700495708628306641551330486373238249146651443080200418139967016147242871389663912859476364948624504645205129484925585853439388841523883632961234750015731482122060417738278997036266912883819766636283780204153932002454069854283044464406411126181462429740745790360721060884089688354814576862267476778739972272071930230617957362745298835064754834729277728276188788844144750549381978681382459135120978041162407188833901856071906080387980410942408560571688769182054454704669345497767871646903284870472164080650628477805804543215994821568977215629032063696027551546791496521301406077235001534322173148123558090081436842518824920167239669889474709332236514972569845446200844205972229724883513115212772970180358146931687440638862427292655042903230769902984398362588520634249435882577275126359021808460000953907574189068468575377094093071303886584311745951412879031471579888804951401893488415325539098648403984691391274283120097630926698486575655042391310406835007954958740607367238739749849758050575889998966159026622686248278288951992573297898187151333588201381113137992100313588121483775014777157393028812688566581792455663311752295074884379153185362635418330549528886529809571635383792197565766024369692842501632033266068177261436950911640916183624174273452888381169571885228274861518514971018012186162500949916709399294396718917591513772409980842648336309625911802211755998568944885464038551890400483124876852782771564845388287624705788236433035509381922984943068601597098110643914974737179970558527198077545280149794608258136087639467620317925926610378341072967333327340246317346472508990977632690975974882091002772024923458605431178042869702606665325442996575891268989579908586776819904110574761508704577629794029395524379752925881883356486081641807648818990160807790981999726054974773081620906798807257288988087124005661888206644860370783941002090780398175364951525103579806381428956326506359223167435015508310031752454169622047966347680556020789013884425630467121671481597439199882417377248290761130414316950159246172737445689135559841254222883996103441921146962125667965546152974200413549791088642537589016391529759362648490330174648458736469978510071939812218357943002669913753228702868898083915119094892256092219010213850804137282456077851909092305330137132927343703718752581930072825244236341499746870040841415409940941946206848559096310627467591775793105312071472751630511865284228316143858752502082384735425705715897002824770371310492841544358731230315059871542942741428828366728670217599378503121909684508284955474674153328553793187697641565770602617270523538456477551604323461975959474792094026500975724368568719325386873243334980441225855190252979732563760109773673917804592983679595492068534504894991548075932400781962881739944463233542486488695053304250857995150951759133500859449749029912806546554836167049984637614812048558098905731321083306624957839541917976774073358901340814499661464317711288295712336504901502466123272793742369214621793890519269935686075709317521951848911820413284619670564379816553574498582825991254546328782531149956969966496351441438661393013064859559464183356112231969848411085244737077367277398394830255759862099043242399083205374709696460761112736988442843460693396696543771357150939566599619128567372407974066124221546753667319345869658327167565229898730988379831169110069098165802729822328400443930793092910333545976773387585623185785518547020747945797470635313395740370836800048849918825020690313622970693994272481873595590002006773257520106599561525232320020170695476902458134439409533870427047685777457955914122873507239605065480501445425066472056734308900707654296915529570135626068458534505316195762524293036971405809026662233397855196680259413845968074427036634942738934182484088924199101630210187912075345004216285739567824258090772116450541638381373777003210886627816684940732366111828668012770798152301543742972692235177751536855771222744547755020697824992906602888065366090277312012203183088137337816227876671165283628294621676845584602982089245340723158766550494632478267979202234402964586739175302034084513783675128091716781878214505616223926870567040198050266841563604937364571684121186351855023800350292899907917400068644243461477347268525895029147235470358430598037962125947762550159287436028277493777709952787595491451268254362237852570426827087895132055540100650906408962504973237045046714417893205678293555038122067898228331752904622755552850042089838097648728799487433960203087462217613645309228483488668923071696190403129570790676497292717632955910721804381817353311739875764837712719274908334330363274801106171660935014192942437011587299537541404299880364195517762542760617615370595954426515477555667702500406323438365983375925910325640699017233074796811629195101805861947829750226164023768706536944592596959556462151876207687015372195425687578251362550707995838617074138534616641988857322898005654500966746774023043945640962441502221824412291607813160112081167322347620935023346825483175683740315028626338890147925794075958227691799583451036990195115910831287106822229109079575939463842899858225849581718568537475122569695992516539679556596793868227335293066183078859168567281185084378535375732136941185546388853968010392165444662993526831249582064022098849834640549220486476317141956565055485041937090252105808471588878979666967102636604583066162473696604345071211531228384351241130383088708338711138467312198386272134328899286999155016390258645904786712120097698882040167310093787472460080855600577605052756351087821915590494996567719057502281227748115173045965786288015116075272684958037939860891708139367596334191954763178383834278215614275657303891756732274326689254903887678476835359431297396345708135578434716591168768088796697380367173754377478904832220803316805558463791632743747405195391631925774749381543565301239661090535585408275698814514788328517382707526159964390963495787170337004176270465044283321719365385908603760996138703005330778500021410346475891021533224519432964155128407800551349914423197820460975632041852622870401724804277802119920093123218584745505802969300519035601470981132921204101772168569288570001094678224463508150187213974563585252270780430540307208927749674595781558983443414928256546314514391880073602939965146775652845845641972618104336059451496915711982611475713955547385328369460594241834931724354987165634564196384960714486039843397368624149070359981329185987202294941588767979978962476655943552710122019760284591719771798179910265844071643939687749135238865249298724815577948408719448997679322076778490146381734751227730108161452336805019920851776286835816817303882170875104814411091349657107951526900882205362534969211254845563202026202755606375756538816315094557945407996475952207216799350559706705008424740919613440257730479018603774748120746151249320139046273460842857824707183828342971317398540324858532824169317385405632583544013059757391847741602655305987985363605501446643082496273713907474089686205795128650786295618985565833510390646005231249152523762162578777784200164721591158840490315375979159320905381574129356676901133774381872130588689297568245494834981229561331622984064886489344291185490567471549347427299155549724118218116191164098236044590902145228398052862225222397458962113433422143348109330489377090187629021052989059968599106433092566874745324537791597770530020391491880874967428511878360604942786539740377377269528116111060271784508606507457295543355049893569647333943306792132669074013696342910809237318180701051643104275540265776985065720399248174376265058037752735136767652983001664929110154093725517247470137828198349425075968782107719238953227421138384331385407039499774879299853549312777420799687600476858447816955125498441264502944524343690615431015927153627878660683188966774831318618702434054284725004821144374678515318886032927566236463900271598941461154075123702378989087025342922776600147072148280958168817193529148071753303039421019970596652911525690679810639875288423386056606502154294174254103210360564932456851472616741977089409031530320368451000143528003727857594662338304183016090683080562141698967240447618330135627573284231271107576817507863048369673679653903083402216771146554353090622611223124313857653707879722149886973520812698610969181937112844711064179917670860934263899008388573950645030159166006398601375923711134577870545526558711807942854470705152771442960053991371985179268474769467094458550248822715012731974531917139043864162540090116299432219932160047261982185424847569191011449808969742443355153991066003244982280253185935538459660255262805030182204474363924453733412206104479862902572319331011804997231942681159637695409418866392322031168076165266787768372166473463634830411109702531363670437577987956134279555256028753927488755579808298229565981900337644742135089758645325286077448803106624906950096255440832295274276460368022653639409747873433962908330591693454945044447128410480312228993058868861113454308105312773909450982349285164138453058025082749588426418009571645745285443202855922232534125074793096258400867898097224549243325519937994947709294111784153047611992302270628357885012409338106606162591055311065785066391475455903047514285090559464000802728971564715063332638276064345857787772650447814165663852240567561121392875533215156707244766339902061719066627066324428368287403601957681439423504473020105658301548367885360319829583263528766193518774988192251567622341605873143001970717823948929851994282387158693725864175414666256675146517658454713028840482006703082345463402827855908412096545321674009724112540470006364202354803659633822423542111930488513555213631248040807598460885073275664330028282945406221165650166836413088047688494133153591894646901359166173110810261698556552920238775700198532908160963478971534531875055616700417741789113439603088614117886663184414803891032418255774635354395698301813050172895510332626810592126976692652621589589836513950137156411782698553722955446006539425729863204710963713369651943106232306534846502378279695653598482161659290590153124103585629692405724459597958510393424902802148111134223841686741982956959409158578396294131521129310227290161429010739170037033931661454407508618037705538450393048662099896790792544290706829201071156501499463643394881709098084349405382055327837248358213782733389457737792589272628362278940204866335241848869292272453259345254461403674864399079578849481754516476986702791808810154409150596982885243366042412598724733460942600375223409290466739491066670316837864742053352831242278607571267215860834624035257430411559659186333308237463746758612987729238772502399704103921782524974234791291654927148018905902544211872171876320045600894375830790654295568478535505114780923069067915413477408721389210947088148093842081336190578719948888738197410213485438622089434100504200942254277944093975664194901768534729902098297850635463345254202299599878679758538127653346920275569888832457810702609239759158482474701943667588010119991692726644200779293413511298187670767321249734332529599627708379355374764912791185735171054278256753957042356883384321378176368005361230666977260597296901186472110251166621457152180562691133340275697164348909574566922724537364034400874961777316478140054416009954626996248005349846666112937632571187431406170630678371396112826181895114256293499963795016729527698893756760321233510646963572548957972337068542093316127946106723614174576631755898296356543263869674952311802620868295481835157623825974167167304630160029551858727154639339735996537446250214668894969757828462227521302062471127417345714352720952248354519736475844254624754269544904667435457533033368436948709610203474633043472376640977458312188825555692115263721963748557490906693809719499852518127931436632166162473451541214024681580400570305714294939676336523145896944297805211147417840821146946749396738856316223736036522604907923887881899360742052444172506284977827141001045813094291206547755100555332171059761015158935692049983710894096737560469651782666639516148011691480523846853130007168006333355931035581401513372279981122333970211537536007665404519409649080670859624979580665790998146635249097379890794512428247799633467736827431257276461828100184674832523561824937867999729522217169919496849959643323710993136389350095081720303646633648498265837830394840885076992838066437814554370160119102467463520232746198074078587318239543102049136150897545308392960037180322421441097115407176537377343030769424630951014464684690883235942486212487253200483443005916748294746129696968818912628985425700672671246084631450566635132986755875950474370625040749327399912346409448240976847693267724925921582868973578640355889410044736838593714965032011385657618134724343617394335350917009249772103369835429493075658442655082141086993225134566597505374239189114429405938902924729818440110468331553557289412519316022429107040362323845227575039404340855969183937048230914661005834700928932576205607666916535116634610068997134038613774254239559154352942004438515918716313985950382376101366137855622905928663644347443903949452143964499352345433051193099503023044081781263790321149276072946909848571078341214106934379291178524442246947467212337932090148552120693107350494796264277172606589203820678740973790760009164197370199039951431476856402848551391689763431049141349552411017193280175821581976574095814737077757377107948666112092740887804298808736536965826403136907841578720225461797365214940401683814578348230956565371297301045243354327762318609064073536173359081150129359565829301011197626297209964361507833313449488389082307988000319684685922271893661949088362668767421059150487328475162837623220385743105395554641678577764112785556406784415813649337391721717631495133903717455965271608513148920863155034649939116253294850807752766825805526198415413579562709726816211392967898874556371469430751200332538189214951226508741270804180111266971695003203568522684116782578232778166975024789010338028452385783108389719766820067909271530044552259556620712148021178451319161856618181425253534557779942525450621269494694739725946169316763100440983675667605152168510307024008901490946951748607961758657049117791328576815921873189235945454973613302237533143112017396833164045718075083020392387162137564476847979229816251804249692922001248202820343506685984485415841406586799668027692814563336055374248592120220551857625724573978987143284937515044387723076656973506606160216776279749602022775180444063232618755748945998797193190660883135962271963728696635692367798217230037439294578978801150288750457832216794138792196460707996525435380524196475165554899624646865460253521956936830816816533596288154280683220449328796449827551594738619973326449272330870637803798429165763444071729488544828720101515681852048185733463111067271809474849833062404865788630025990385649749454473587119558889358417835127316898595440712458299139994504066586965213001560695231392359097920673503319715940991853859689833683228125730021029453534857148768171891516352516801321556798243855152479965024186077224379258455178800994096430929328742469826576231264257151921618077368551766685525247335927498771754508191687382394582132368760323879154609587479268040864211585096935438724988714757372966907892124490829034911123138480046888716113877463580662311229274633384830992205501432386445031261730304157219115187145696773861719734403131295845412774071253924170096877271776483622003058617242228012136659517788645885355522865483716720217969448780063126523837369717513405111838489972623737521028656575193876029439985998217563172053535286589717430840878807910678033470591331069521883506380308600399473208237894945417582450950732888856823957221074195501834596661371685861019082763011777714270179649070948288010277110786979332248412535710722538171275712851638185630494845780063275780836949222792167704503638929853499671135796612607795308617710299533709373249094754982095165308439845747153721857848878004661174116334560062628778991886979894301927688348975898847022063756553278249656234094858262597373612154036789488114327898974842920580570764623901606383580638189390202750383830352785240930386130488897554225014477079913445743710809656041383772443125946051664466244255860751668415666458983872742006418152198309060845168868145870218853203007951938816184458667446322634250605952905104567282398711797925491511345735556423136804064835490385023540258671217690992269190913302978872299374224715411483851209559482909217214277281582017665560167975443196404923236070709509094795389304233303248901437914957091297884513882288415058180364303661669634070960908931646428335706208235622030971763576309786124431400085305147382292006179636110873659796256887097343804170755471011145467577848967285130508337569751506342393277784206154785728687971010626886710072055480023910818347625501312215464376562417025754831401004837067994403752266569877582575967028270516881229418820132214350149905914894223912671883097181734376501191106165795998869660925727869302128529557205703708661120259532955144962614141480504116123985266606262295447036639482311008350311075054522551123136335455287771715126613040162163948993284738450782393154449826058539804109645303469255380180226650777599783804986837299229604698198564962655220501539040654210777241540468009788231388677241228873631440967367930149162345865608617259830945130659352454585952182413336122893602051197182212603944911890051803000362828976879346690757821131959896545581229680298840092469764085584358949839208469705622772526316779396602921807661343872485766937411629560028704990467555946482168091090640558181471310266041880658318031923969940474600711359251821348228890712214261677164099394529314121405015086349980772946983321483826235596465363920845503696093225060743188764713606410035202179009331840620692921341626607681767180525106097483963935170012648892780199725971725667921128710582441373439672685590460702458820129494010285642644398461603971254721834271301352044046530976259248323780110821197471700955143060680234662985583666794863035834598571654374359066296437368441582442689336246884645173191326709651829581770806728067891211772436665276494099437341904098023662871983049674321567390700148612557329330478525564299097514803077585210317799067859503527180108997073305937058254025573015154370445655589826157111242976101628516755396502465103157896142665825976352652589355053484355143930535698778969011462418148772304742069315009315639573856054797273540142411883088856439358632672825303579611682196295351539258556623557352954841646201663501440465912845030269203378410057353689359589793050706927540290295421889785585439248828915501664965407606757843760152376422136949353619708387297983159910901392070180974282251547490339416692935430972076461596593764638858422735882350238423613862935129880125923804641863573152289717935816036498239537517567511974327805429883346890200929499846417654922904229217920424906469797312895809967575115225909505795486938821793322514680455491451752364884738295390106440504518828950085216327410435287512428613687551100590201259778590714537474925301022779994438854074605906603148360473864843643688711253540064765443298774193720883794582641537576906433644141238654335216671807426579002968115525873162331192837996757787242035405701692304525358203733012258555991779138331039216341898797946079007897742390768913670027325392307515868274392468719662389605583855746716997559789363916288977354514657200713031245208397951132295454336461585879761801905033963174898339270935881810711018435497283311120062890386080525306562932626836350308019899771810230348629346069101216702909126770607584896780264660210938382550223971431316206126128199206497529392387006979003009352804078307412053647787448457440907779186942785702620636041743751486842295025788018347199718708164097743746918605344263256104925020972939874202570454253887646556534968866292814701979000888590832385362316415008928117735078061685205744279532922572715425762066429243378800589840976688068300480389664791633651151604050421493152658785532842447092593268334243550413205117041435255315551847789111128511760309836231696745329611812028245465849933998353130290906374882487209197633403623342743595344204997438699176471996943644443429456372446426201405321161907339179646860322841099313439148570056588043121534516677855847580697606593912721069099657861035759420644265669378998549003186895331876586443631503644372993733373058851399426419330396626863506358300699997181782757045155730351055547229106572227943179587918320215322577901424196295397085711249835207349812414877388073511029559625641600319018593386315892163057739679509835747883957758429581103595465756344022901898628757434038344432801719561794472942945397470778753586705890743218841761068624353691106822556261569330928280835405620066971194633339120212570303919031203655368032727849824299868282994261070407312580861827399638141155851756179647120792074899106183450305529651440759583672278264276229473985164595926797629742278258999929839320081451362002022466227078962830605651276841905195249141187407995143360486130281683216147947615005014197127929901107135266628972680491788508116315362523319729694723549815429349967504410024834740643105644420039340303139932981790889298481819539587999484237838959910107158580406808848807314929681821663489261208774862901951845697580956898475551605939265786634171553656079347661951454357154844216712540037108049709408031566744134365958950336420835142012697063468406905773905124753047366193487950264130760707620097425776537499594790901102942038145622381266921912730463973098287755155297797321664766133954794489292922878414683410847764465056389099203288549618713563014193447292885456007609594562913624683181427883373619196021161917587085063616614252526899383519637395168195783878242623872024139821871281140512944890356658542938147171147610552116494948231123328100041333139023822659532480771511992345837155957064423873842134768079501240023078311567801835947154704184568446895174405009906667732001850234855910150840891874377690456246158286438077641675629289110684093950448943314006966025731771229511986766637988198968431032687274047581293035943891157322424907385211950171866264295066631020305063463995352661475940814050045435608450619080326961420971307842362110627938009149220287737331009337924026501826134732268646637042354882391391841032565035962094307077217928357665527090856431112709169062292760150403090649562576126726590663208742319671659810566183289404530028968854545017720557847870449318032482779885866191159352085455053623173000126771215776508067410751940460755777914491787397977810429658492803354727348809953388543352926815035478676624753122277799330592459720270994209093964499892113895743478072830577856672579830427286454460126420145780918372243192804401765203912997953435761953814305576208525912400114987874674649217337358234631699945326045393956252576671283015038192847253361244817425170820349820796016874220972937615690265211657042541791557049640074659138861896793693534442181671744173217226216695627884998563933424882944477833340835080932912184430605706261859048176053091552939362647591667407079996089172713062343878433025801374485615457915016862026420986284443422646257064093457644111519689819031064302715685369099811833283605895530253996806208159354512222503239667352469979300305332680537238075159299251917047758017775642951808280176199028829404417601988009785190142177574829842700362234068402929993346117220772855151213398595065847633519863237488766204088780003157841565119008459730761196397909633274610558504810693527097488650328095142563439214296561041808110786565331509800594408613737963357070020140102505333573882539937976774161901731602720161707517108034676418610394200367931758512232337469829775487519419696255428499164185440355572246608775462047683443378176276366323104229125243979095188276600768787079383438478401741755710068812843224158792125143954579514215668514482330802240512281934520522293925791517909489784398834595166458482090734925980467747899893425211922775398286959258657885139425326371846316859696359913176471976346414473020283463537003486893049167851851581367240049887220459454473938542690632133761065642101985585295083941197186861222501768688791658937021486798870187574920807641161329372951009115117687749459556366241343221753346490191877801137480913187704590491938343674390934914385098971627715309384121791991315016410461436765542486672874582575341740960677973819082813360388414964151879966319359125067165556367525354698165697626149515789637669836914162236845649231878219888452832838285754653096177911397602334840787836382243513591466417814926939694455929484764709846717852502071935547883612311761060515293070265944813413548354848148273061658885742787755279452990261643417912418357769021284866954775095071799895554626269390645493808800522734706708824910726917112085516176333595338633330983311446377280313521704745600045604339080249869907924348900946982901456373763957253891317513401259533428616012627614745279962753228903286882850577409255207520675588171481190501030894022073032271499070225305924958027141434926506556664006964706127719463395391763062403821778830249921022650920887985725524327988368892805297978745953515990477411077788472464600255783222863751418153330043869043542423786537624688250069152056577377959111728596621713497371984908589458375030876353186077887111830935888086943316592009110461880497533956433427755377380807962732117309546904190036311887965349197864879494109069457935941412099973854545178564596758240948677608798447909734088644133336809073152458163170348243948763961214746395995916769079567928820078402093410066269413812981644789143586680565386912726121050633259570818702777945632742330454786596115714875479053313622328010308941792953249894157371094646764452883214911689758897868246955965562188976121995126704518018400714653448126436216888257515694456849676515620878140357334763648951107253140913030815175147136456754770492474618979210715166973580562924776921830282888564922282513670228737601543797869203350342086851185835964420518382180026097271477326897231765362249399942063420802193873043756215327294089599521460913199330191064842045625198887166500048692198026938409448253500827073849341484569536332810594872442796868755654068859405127866879333474509914159608876665603686923678319876228707970289765076951904063292373470997834727786865383302368527951281906694973078845244755196673290885184974288446202167049111159570858562680081976959364617602685126122193616433792720490093981902414719974710826788095081813806668883488211088544937778465412109478581697440440816012544018586070428680208465594526551911731728199535430004349956825344356154578850530963397462724755129863272168262852204602173415121794969136540253181944943489305850366083611230327346817009778047062679059073030227674497799164559140886596921576489556856445572011221574442072217240152943148743364165047010245322673711253862972195906775506647120924021144583967969080296341821355299139308858993399416174150862546160862108889474838982597528465052785752236999658805887931129171101444958424309524430119259368931741636775364702161615049084797111333791325476343789014810183243306734044523612025140901224936559487908714238514709332151860249609807592178134453212721242929552134306405827776372843201106828049695837793968742414033366679499893596769190847834544813825527141449113348936889144208204454298657242852342103197999309257376628028446862199683931835817279868921431120621039975974998549651458145312604525142029720549655224607064824276883769302726018439137392543918262574251340342282830934229176673845297541528257286997766205007060372620948506130431905304465793793924619169305683490750636882973636662160732360232908525538694877016107474597448530397129242871396140180050609173780134284673107222272875000946330975945448988176963194417299527059637990540343866101317828011380459792797663028151422268098064375779032797801772218342745245152710187169372198618886455044149980156345969139137965728824259039910839102080006208325229240749456882376342570220447682297572929997150096976040144869657280317884046996100645264522100884363962721076196563421467924796699023712871073970764456188080596988150276215213176155955973654031039658188539848980504630766369476103996312015182510821347744463632397835003611164614121782734483801087240654817669748577167117587413841735501108347238154844651711705747805799037595724225683101349328347752387678828835128758131734109548372804495923708846627797872495677565137871344611853264355781498110723532093726443895003003639720873792810287143887907329574021661960741764571475921647885972172489456254522468756275271651921600162203767087749932892451230749768239163032988798179798322044236572647312236008671798529964709158828088863474233188029862339884126702398492415939396875954180963270065211038872153736244375697255442073574354390618746108662701910523143398762416481428018834557704640073859775688094916762847162499770467769915583756838614885433700692910124964733083114360071963322792676291249129975681087946659297266518695195458380168752575061985672240236763038678749737529962891387444772504701025472893491484749911906458753068998382377366569704122316953065878461346978252448115941980049071307953085497941111196086109445548423409459253353836910449067914127216622044250133438244657753373701665457971260667372960959867836334101217066233977568617259668261538580701142668068073759480203732899056174848923400170459897073848247819804994460185193806759443826231702865812154001009336093850533281342287364964514645454722819024554214362590085658120454353296263396931532835443075621594047105444888960431972561888607546491085250855715588162567630206198647019614559633207461334023005434310260028802722121770264351807493366719340496558472254657543127524489924538505078546926524735643526773831131637238786254828444642742690599024623651368533102553299520322109459000380055615109716484921942517350444336925708679548790158604047231548660010304680502103947956106935694744232920266221927004157558754024919458455774561741517115834150679664417148467546672225079380573031974663704731570849019826540169500980515369347015774819834747841650593469110577310067975222684540576945454873474370012913807190460065491605685570753082831019658589100061235908553379398941460331886590939871309050352765038556513528039577711938789142789991102880982841282837414819073891960598142985590018325820041918761698267952966309031927872149997962749197110021142279395361941121652888012149649152734334049473331451741122214632094844917900213470085276324461876360020807694394195604498362084185830922204016872852006812005626284555887431959958054778945249336552714761554775016625689723230470110646304678369637593680721869456527137075574295909864156564769786423157515854143556431311293737833000823847426825724149457478558034688209247774826254251026800835550137382477410798901169938078645809507831087696554207942642649441272116048760828650991214957874998338762183263858537357026118054792147828554294456443245923719782793617840865937556099017388979996680562761387341386725009977671240320959689866580084494331682012439500466928567257925133941638172572161922944837247746349135055038686143912541950784955275529801806933549293307821049398820989848215979927152773411521514402445705316868360611065695897163831939787223331028591516141954070313045470780608104592375321807973853412196458504427989338443198822504466968468002806906980793067634017000166404622171159268463643373344970527634020606282830874983768591705771293718689444885334391001766969943055540145831978664401002822713321788341363347996205153600578923975165554144974312234047644789933602396409939886641560041184023868390225708662458898194306931241142309761531870336989766388157415615429236773102267881157448006486646182457829768288418387440292157485732367014176366740314155537606534451662547883625977491281276979760027780831451963547731322870349374167698563696441967672746638796599016541051599900617940125318747107422299698965639666896136845088086122570552701949637332107373686085656940673120371481419895712110342075301002241094791607087873479438225081854852715515137585066280090292708779489823161731166584977476678947496875769827045315377401410417302721626868086306740513692483632649285422205053923649373568651598141109102662486441924622164855619066065004633175976336268144037350426772763975191978279029841044616844072457734033163247777164159391538073321583737507458105885598962570445586505362595592330233855589539884650477885616755485334139810736213176041704500911579033924449277101074063205987879462139105171318522523978204563233345218969439340170108101618446454580997991733483508488432676192988281186274569054969117930331927717828569211067290425250670552550480342905443853194631710911493778975685056300772319996490329130488841147699464494515589588092826293422111649072771483305068720669821563519213850563738422326063158665054931079700079955412958765196344464300836175930820156296509996916927514031698715104850204889418424483041331505521751177763603106226435317966049469691005185484669923043187038494735209013731596047562707646653373063351702317174718075561208537105646689543888618928784103003095004228511634867870406559765486350166832288728936765468849890792268641381126271514447196653471288119857313103637942840454794750819803422644981914612725833011987044531277192278687650090351926875102617212648873812941443664914953763957024883606981440754438683974085787073857052247236862022948387652861205059910833683230281321872065688983325823796828226270555152456538596411009538033173762420634326136226884651689729499981437919816349291167128240790898081760626151970399134304964870519772790705785261266662052150632602739398956204493267622817127448626716273860048648225154842342889727709368289936324928957844062789111368943574902562299150014821933880481264527423815935202707323101781329104807694834803799352203151649451488871508014430789313363557654034942502999335494129066839657726988093719229208937203458382356931891056429227149402092124185144616714682160225028935295607105026442110235547027142269533641792218722881422517535504205259598082478462726109791995630889996668752473212101035866008164851140363221041771028192433204963267065403895329566355024452555031307906310397265989116521219149467261494811695915901675648504354376931917946593637199056875387004168712636098725491140985983533801076842718686723385369744987954430164233782831641748454839139176031487466227923514072289532412773661272406227251670954861850086551112822416142112286248522678136426471240036744793352480203877381134591108267851764089977165128972723061504026486190731450632792340338227520227717578998612095474871436252331064223292725541003429551340349282986062672416908832794023938206459399195837792690512665132913528932025394617094758099685349843368533934327851483310384138900723471722942476451373571752781546397483839623853300338789834883967849875459447727118095025276197693101951576111823442374602109175593027224753604060612717941311200474478313612209778091219516478879231608270845622120799431026370859689923034374912802129029591723224891064571677829160257092082854222301357976345024096058452682011169772941036645857350355638138405694860532256530458807851655301759704160297545224057821858361977795961950765803835453290348791050963258913987354201987249965627250938730947783795266182645804441312902925639522276624298497407663035308661132147803431470965788993471157875114634649168606192670987138795589986693252136218608782843821854893281688662422379264099418955577281819764132433552237943386279358205122745159573273177869807977292283716226709487113282227475118533377424095623312523049256693588131049607937971898471395682030856834105787537057753167160778440739285648636261710501825933932150915615810177442681480470404668133863702877930702656619101045694002218532016212897897568065203304393090892308779549334963851948192985458451087761805929425727076626532091655693300497242795268180949772944453250539455045124026849912160834432467422127974915591114141285328980013342000078020121838109325636837907326297990413914515670304339580506089890605045549612017303870798038579260801067258969982635805486281605725029258205017624004763290340617946701133816911340681571511898259140188309900320731503870943202329044689824441361138030232268157627285583352346074807467078478362174188717488135852653783074332933708105726016027284949309758013645631809736073492475286841083730544722499286533878615980153775702466742838170936789178888635460499024595820220506816813950869344158128843932830492800876232882255512125500419173976880657836657560844774949311249426561101023695019747081100098965108796895324396888130945466558945960489323268857990548065306477505310922171223136373754578856659535729853332320997613828854535737996064214505429063506670787436486265769427885145591987480007510825727487995510777056609058333126991158618772489209463746504861534820087585972978935044603355349387600438118817153578647845490317153005876279886122050809082771624470113923159409935961444562811286874630385568089607187944869728752538020877686127219887023838992984694193270725353227414073043920972284054073011839218561723037860048189024964964555086574966873605201460023739026225768152749246632748931285886112693391223808106221120072080045288708968520803411368079385460686948682496215690971036634693360040608595750820215465595589135099871737626967746816609449712145326476849469332636295550762882426849574591780761260450856429486450751340179868257443136313522544592475742720183885296431936918975370088329049732586183115809295837977068155821395004963035768329369554627476202276755767172306086200640392097989019049453209574928874419925326475680461147710620668697896833917847724924887808870342211531059874670973033460192124119194898409387577995898933142914184431115863956682915020176622425908593944524791662202283780339472293788984765859397837872163707534505247346338774458332393230610015764492592971916408047181288985359428832123748913250501328932016145607440309063596967916844655434605778976210371856962750129454848013218728954715009889227479252018278077484128451718759177479544201147822636396469588174190836197568280677711280867826816795356187254288012650754596113313365673178532100713609490242887439659934696046335253193108120678304314178307262826589489816777209221997878314318521417339938156139393215463172818510557940770285070949685878983381213894853082769175981284687730059366426304543491888085747938839959130241968187726038215694790799304281908436168911347897731010329746551264868994569067463940421591145314293242355566312124990247594677824096378368530013157117872520301442927889209183540189789784293615512749369765831807219493448474641937539277195316926385886631247412197796536631595136264754337512533926014946912572860285430782582306674050642069814289418999013855166978690412496589344594389934965124469653461026294026661469756774659467692399200666040797256141199324955592235685511667354793525854440594275154018252361292299841215153240341107075293446542614880799193151033617355606016940441898061615976425583033652255535954599246527432782367403357055084652129194983387564221767669418162137052123495023638739546920626040207906245710234662182112120161675936910262549337116914602201315259237336903751235014427952576039209505441143392318680534748406644058708797782074373084847616909643657100730019565299431086602337050166808338515898595523358769782347810082755273980441146665592961903212134509794250742757138975341987152265905036559717571435191504660950078910200306504228551872820374802738669307072604414873158245896551514826460203879730228714241865797279079398279318690182472185825794411942015497657974570373531474678595382618244285616462954367639248022948446274951015254783291961110357762005328966982709768008551104421639491438868219374049532413262583665568611285838226661632789816179661685202797686727863760997252376977418085721797317318939166336917061810107105526890830929053889331523855089737686641229162110952467192035121313302771340560810034104030357746962993983936015686989406554210333416324588050531652541056402615850407823878081116085578442173226219655201226619000562691894729630207216688024327810764784788735365274523598423647221765264302911850783060639062591246194838261668175395092636294964676151455634681032337680205524471497447604756246016038466505500755220624841971651092700791277130235407616964685851621255714485263869041159375814023760547280685757996541097505171825727468880689050462303654986735784879827374057949165564654310290237514750919598593040273466157320621190260783842586319392120230860269992833533033278889236082946101915681446511488792910680684440659426117779746252218645782399618710430432041809316930789449705413492605601838179616133010283813840782211823305826648062063675154987706042797317004409027486521014306118065674951828130546218678410370213082114055688619566612313035504167797448661295443663790905964843102132626078313558465361976134761892667604779234220004762340824649119428665824872093607644428867652611148286602872556591142534402445904352914162445357403492101686160146782235457452966482259192444843552156874504885584409710918868444263786305230474033858800937543438456153070448100836788161891734850910912588903721901392628982695306962324858379514519653033963078680268178986535482617787516535568680782694044274018569858379434321408150551608497884731707734506325577656642128702760562221857453175241575060159113668243093872871960363445543880909634433424307102174706126150725067971680734177520051733672484265275900345708261375487545541508824497368187183253454147656529727965809917846684301443345873828601612118464626959517783301343664735403284060854551586795173362846966181888232846453888148316432788737046268522804877437225140917841122857117223523774091775056214068562205518146700051642724900249733990695181674349521279940770480192681491908519621741922743232114761584873688858697572293701426419071550801376462589924746349282091403097991827789659340772447168113039250879515521596694114274006235629136439132610313018743027195316143615386173940407167147644955533525079769787730629423746063636489113239142894371104994966694858218771049704010692065847363890220892475586912477463177243188802800097041552860636005722816245021308700911956204126505817957853961866081814583582754180786182211327906530000687308991991322662541668896416235184808724289721449972945695221118645888169348349596027131537409688899612895927729349895334255661964974987830713738610465845082938763467394078949289165385033813973380451044176835111795653177072010490822775974709387344029077335443116247643232440968514232722191567489846853479108949634258995786448590410121656645391985761294080346028284977603368673450548722969714182379529963987615901192487597862660432594250563950134987628122508207345009806284068619353972209464869010245020282083346039553398459289710026038690777945283774851848404688296414139103062156780485419392293219927690429625348932880163961864484313799540918108064129179051534906448758184516753346721379399277036342562025406392402942303000064664017392896345177867695609775753013813561917129131883279158636499076985546749062086845440584966337023655237970939049619788061271800655684006739185509648912818268008713877117801211441807689090279066733505011715222722733630440665755415613747759237567341990568727850601470074677252154661963544146185201203842579322547227887544824211757578783580509438064280386065176481551897673946547088202998838913598813016795825549198983957563157868041053765051931454599554388397772778207976790965928633487432186388094504426451107421080373364742502366127358785614071632165488232219408019187798913962766639936797080993605363256347756137123373391948769260227803563991838424627321966320826884677206099231015660245261195557938427824373847543018904657414467402665124717344852052702924759637812377588353921646939727062015133708113513849943057336145011726226081498731176610722617767902070578043678441206405950812582730137706840203098999604553662919094038790199151350858961220369334699682264204964052115444139952404287833841553089338203058530530839093634587450579606273047316812620135314528690493827638696801304463512343483663747602784758788668031340191608331876764973716577107557843289798844979977193049090696230129494181119420856181427624249171456150873791965160059650924543605898191380341930987197302287671975804473050250015834480797769551850775571881694050341037154374061905281956582014161908513051498451319912430270088033453802721223769862686613493491281862752295083600727909458274811892149402315024876964935853374853225444752019353952112281719898256891323349259492058069132425393561273512471757573636652043538696789105305682464226728532295407255269342003855869706494967120330764013481158591317309092840724514804788967378354696289374815626655023796112494327416908378725178082769456900549197947952100562643624181205102014051473523894661407126796837847202570396514362788724830247240836458713600738881318083158629427951079388752480929578932202932913388258700550211900961440329850842637609450665670307949340061882590707794461379384562902357159005187336978730652734158445720043387533581414898170713116865690831131477652390152897494300333734937897094451876980247752730805156605567161603904108602399091055192430183864315035343450603229754966426984905672000507898786508556262313172680116648532868246207038137900221715159682968292889022845580643598978743756364561514327751302864813648531998994366451293465077657448827009670023181289198343040662341117326116997516113646829438983877546699110095712829221645386334579358695327208663128493386931446120470318010799668130532565988673872472462375230574699915507122772527155379607770636165717288752949702347198736627029149327774360169180820264575184797984255883445840729545660150146110515343585383752419967692213574028021712124050587520734154071036607756488153727043622074664781145535793256609383155450603297808295351625793456184892316103006578885097022498157502779442435171701974696940345836817294015060282233128792030155195128304614456191817378566509516528906362562245533816111903358154930089881951379468427112285964868122677816623320600130849512119309438884991033543057454481444627568310530763920886159397131895472813804776520909498644823533624387832193725678468248713350451932123993604203715631751512096084151494231082425042008912425420617199148568296068784726680029026970851329732489007147386454204744991064523804253572114571578598104765570465735147980824753975168863682359230190227799722108811475918233704540805649350977146503730732483519360064157855896741676655140549292580013878196773017167040502774252432193215707323268900213038089678600470892103915165461408702769673698249958935696019407226857440231333231139556596617026703399831882712139290321883032758886378370215229457898187627533117767144564697726310578101070900800121420499701979357461871048502018744186807986369694248151878698645491786039003664827097919631258122709954526279054514474594887961562787086646623771003923185677753018850366684972587637896172939050625678534751721434872978278455918511106289746263632746344982276267866024780065028896684844536813882272481056027547027621664355256833746308648576110703325287899854048665665768134839268918804692712476621701122705399052436100601939813382661878367528931464703093940550874742920277377670296472631855012590339474243393969057712803372389789130238950771853894482834090657041607795275661368590637065626447534026516521762570052329490159942393007042755735416591032903079496597311042106296032078489148697518263941151086258146053122473135006303370710028488417749069137907613382119888760329331327920273292795044937715372775111596733988867487201399290728647889677936328080718460481408333158046335731503116379849843561508996405084075388979563877070490129906988843672524491393562185071054418218046056897390758653206421653342287927891743002832536847816023954673976591029171089475789917525621577770645691254984632727033786040875220529638703170375485026846748779073846966279985966263361658876622705661808994512475978575743733695366206741231711142022228616464281661494360891034711433076956284536330027638215749929632262052916031346341017740349606485532050787772744387220110765352523307600747881386296668315078225282615462035360019527817275130656678200288936851647825501030603084460561085403655034025396008478362117195322046367851271551273246721902115381168652695429375078134512236707692845746423992675869166146927063632917600796132318665670900123259403423250573943525330377744608377191434627399064050730968949245755617672028240603115590903823399097055469602245767537066176390322888573972915126851220766515213803350597564910150031781561684681435269555614618748235114587858521489664677226677349254879147081627398722184273649995034572671974631959530135579518142633107154138926231249172694825336780041964283515888732365056931297953212831565838671317448962012485356980026268651558246757175944253847596668981143944534273558720688536917795213992906902955829088514965295444828920047528361143081910677425198047908847492207583425178814925345948304971929443073317170923375949311125558660810392257071874616263783394030777888586546413316617936399241561477137678125495271631242967840597053496505758868396722141602801953837850342776173966270989026046201994373102659574379149416851979156846611988894723987933214517409502961831495216398954717408019116877032228178142597019385731459096384769652266489605680169673367463836503756855821737567184570536261722537405812794027887604767253153949242000220108634853107360669333678421393878105738127974214757043661254337293227682693610091924350433757941878929831454787529298424904874506077656225634153477031864749396580579970953751216255203662252985771047170205206570357567758644040574787992780588137044486076116686361488299148777940564485457454773614882875945700983310302493465617138702831431564332981131962034436966028796699395791494412788184694354169124997828181049227202461435149780272107427957512819247930838701269960285305606567442299081131034570394950494182639669276192386093975350144675524117233494194474368281317725801434362501876070894809004575071709995613496688787048252582612061641613185731085795465409291867259875472303762098745274529925525603355973947561959908681480362792480398182428124733335272419232048558211502043558935280654555513573379253157890085511194521301344517857432625127047353283377825877268394049478919706026972753125248424407109170806989157216503088280726588981777613733046469244190712428943007843543067148219529722518551624304505138389783199359888948600209092820560144688544166082426240699253350829224037398404980094968444907970515078549084176558057403505890891703990054065414322616850403503053345163173130801980902016177372878130354787891547738888378504450971418864961563112967679638836983668019488791398028547416434031060987459809200324391256528795973095080057232284453205479309597267282956804296214651742956687722500197958045071674768616153755088385841028601536919904165344888373658684930787867213647481591791075345343406059296900307407328551301181962445887415872819803822175275647571626729764823465717485241033066574140430795755846485240351524101713079490783473532778734425752848091876423397771360595408018551825806397181850691326004621850374279312581875454583421944941150634760077340296351476461487150439000072564321740492877467744695913953785063676463314300635103951217026288829756499926816759074105800621483030297049715693481682714913752722143372349555232632939455972093124767770658340164413926033144877742826051733912889216639055959932761258636247910825929167273080670838700024922863592419950741283335027784849582499181977647770335266490036564796645768929931574887550552888168013682487544610025105550089217078180239388340567326578054350665056370588464479109907690063429371535520528004564511178514387096265807390418906235280761306553728505273343988956160563584485584823890639447507889259259873067142696618243167030057185608049802485617993910928790249781726322369812716024248140446281037779083073843487829838982820639551781093924530290180452443155432656295264775386991782328777038070790389503095154386148169922214313153776972949678215727401220893830940918300538682741251477502053721153869271401128762853719882155009439739041830938308900915122576140412148845037829994899627051859688943987839827076540432550880949283126345100157281091029444225811662719037818340363176560581462733063868475764835285395687528933936030329077692552463737365527712614037970432880152535796730801142349969068862599476992393317026178229061775751219776891128825512113951700714687580498336786761417981944184105048074853375730057286659523202044321739051990501901439280699303215545271923462081245244678353530242490111798244374015199255555982584790890155737959104681088469631981273815411600653530104246419301074283741446558816502216388010498850251434739164113815730875137532509421974820011426256039486102214958274556050599520379913324590658851068667615602821322073474015992365150145986609300198943846997685898883029308747529202731110579815864876176855307944476823043975668898837551907859724285810477017458706106611971503427133090598106629683656480385890083606903468877167241535720555157312716867729181772486645334349814723197489333398075776747335009581946980477664032622202124938206675311608692748380856702888000352789562941666983262263922062084419518095018665273921298823026455727483926481478757973487490514515825248942911844587979238551372616785420859160866599078543494838685917733647265584060492839291318642840325420775656497714513531886712773287953952965831107795119542657907429463982218241724230980594408564827385758140734485599217822277401388999963425818507373641248590020719637846011278451617116931705767122859842488305578900815418289357640357737166231736863046287864460039279908147625922632979528763334523894688405127762214694551769527410267521470011495308417575942298598523452993556014109385888494390404827530888081183087268504745034635505941262670226117978059116198408461311295856637659723685112209487405309136287922284762199992563970183465280460007527437499513387775202905797822439970670036521466312755183432774211923757774679490938980388841836761241163267820127613563996573258736928759876247360568331728153355892314628948792349073709504262857044019770594550292027702766375830213314371296116242857051265300735658858571880594539246605330264078973971607352698102671850604794954603614235149431685449316410499152314500303360111247879100085660878589593677330224302851730396721529393586693526951521442114294986036906701432123648537061386457396039856045793916133177274086742267197174839502590055424130541866842033832062680176597781701232506486256881606280934193960582763266069738383452645289854870522042695595780373864101308747400898081727922307554865013779244531780790276545042899566784804530609612828956509611429863671563874105002512255235334721999364832688935632382861804739710399473495260949650012363808619920863161876651333625579604301873589630182801482889123275882235523678723344975839872490649534968607434568221105456619755320714018077068423027942056393616876215143561390445495416008794719436740437246403938485259844222998498122507481506438867176043476442450486329321709375807143931321442159753691087430502970174510289925436958461181551973384803464920595957092542728528077295012062181507590679400410988607449192562462752381015418209121586282456256931643716020778726156630183954898305208931919906849672984215305632880544512509544397825755203682220218726617391259831399453142256060600672855404246318192567151625750180992209452723065213897974542144598842695326326529588036331819244518531142950412695609565037741543673979064611374300741028449424039935205351206612207351652910650138146359076521389656901856779000285598689692087045404759964384692092846187925296714085665989965583678280317037890751707198952143270649951231180534017834990959705888553083803965600037801399850338114258448190923448974106310688030421758053469935226498538048595900459726660825624628304306661241437935324567684794411223284525359492793366112306126973172548857232864577368380049294031166041626819679713591002213459585559717731805418934466075476791152495966609515111582350490440216124335209754701561038948404286587835607904676432270323305837045472967382009901636664874830801614061650166787243766722706588818720218420436106518279743639662312691274253647095272775353929092003430296843759636386018594878720984802542157397748446222202113819576828925777781605774708964651424052221432701020869104846849605740217028611250593127419593626609745998963087060186554779973334275818963769720687454644185945169804237902961972928310055229952072450703721317696598030883134391051274699971615030797776297075667778972277602523247378276564021712187052667785735033873211884558267762967804604580792691481431974520211712694258151464028371336690352282189075482482980236754201830037768816727711185940226242659430478826382609025401053301105008085494791954278404813708991438871006969970651644983552847608445435848506851314898285956965711060925629634788183285947590739180226754300946767957525193944437332825758500598098804288641176472868958819267689371568308757531028407598048240262913022726682982909854338390659679521616331786956357340797211312354061695740999588477786861852084531359874402472675157012638386560998286646553701715347871146278654172655384034128058813114036591907815800822371858987155386361749018477247436744810746090192116305238542439003258137311720315016135213716901748312577010180271492175600656709536541947647179898394766421780743702282458204380949517423436977664474381690100859140812005584068041250898643450364597911015621007121099692874063275725001660324439977825023741412270725157220104091289354983113362697585564963759423157217971156237710657317318271458427598857677666195509369553121791182756250254243493022852154348889046300063489237541287004739170453177278062868427301935534324997422666261904933591350949057804352474907836296834496396057450039537206993787971958768467260226562342376538142488983492642568567680597836347144066471027819621903162614853492343257467355058185979836636098129812499023704388135512106694680242747415168332172672862719992928081996714511007091875567932114389889196817234443568045056588852158942753241049412345855858738697391297995880281209116543005184004837740477151752348060097485482862212876434881810317235484183267231749194847062675895047602942613541729229899478040358895872965879909385817016552012816757913144610565483424999043009014035623414013535611486822321986751289116448426013190519700145338407400684964704898802482859240021665182258378787598669896727662350293953262104339222248042553882312316682600234330368381324398104120961583708746543235104211640314206709763777745930325603093466734994406233836927494046395496231081238192202431968386254425325553267956282693684030656267937866041121105330961581278335949394614648562673238637186251567261694070264858474155326808923341659482551043355480385831481362476992174864157250025426123539503613040378762943393617147223207645262951691470593634992842953611652835272396528639644003556488542883450196885348880356307648321584609828695541786003795027114557123809393079808088198070470976317473967473494727671154097403240145655563427565790206270768795112596138674800418487562593835376254661952762966232713321547904054935354133235181656267044085926742215474491052876336346938394270399641290659841037669928400512999246111706325671432821692691195286452008869319131034226585958343418201947487955916722429824531613920754364932495909419203376257192922480296894199522838935273565789174756762895345387834469255697951163884784922528519899901953528565549868904747173110225596469939183170473068736349097182762134234750230513747925773295850698298928406172796998307839318903937213532358595683347105084308888576410218992559232133461762523466642752566310988106451147368614823301742602314386926572932228416931452990212437156173944670720186184457316854583302724331450513407034579179017556132048827966350296283059155056128455332224277062787404027258417586979230064908597556692945656264503956676181841793010152897412446567165710758588894977602027664092546978731831875309052735860101939372898154127879621377690410104702271697069550469770921670647106223463940187649695114364219554665699085799963802326804381970366410593040779031879692001641574030407095099607067098411455482771285035834539675998859705975172030353887833638866772096764105888824451283680521253111104045998745167242312218084238311947031125815982098604622067835274720078732793258740921342161333213091722671677822586648613623324463795252471132790618031497195319068112919872601946266597881649780813042861991837954315209592107013874794750289827364082818315422262906228127934689116799344853326942273904178292692889474488699572623633862274587941990548959222088440843349052190081830962238635751927975293188443028351415006066240905621526599208107902466963709015645581490057147505900145259246786057733460472493024662608688775065671653930236922474837960650701490238924274330798718059741416245727598042168948215461497190218714131639593284881936106694443274894336580516641229529843257835921349865891215858733868781690167861692123804529923429018457504278642994793254216131626344539016833354433493403224475523415267056833741689512270822994369745796040898650990206445365637776306249968671698178647059458811673893749841799797681193330762376398287506043176070318198311226814797254921449943750332506224293247651524147455205504775838320595565646639325529654657338193105517269980651723885230313185742754843658116651317248945987211354654119638040104925044446548759194601099843389838587978974826142280395059266155969596417692446626897863363342911493158114870585226131392173449858632152513930655171542749456727637965890334068984039274367441944228253559133261411990323294413973384442744033603862900154267059991502925223727486380629958985813670024785581002027796920556491484251681515695749618045431647859115488750237177623079512486964057136674932037360082056515551302453649276629229934923242256638304216870009889383823877249820080678344055882019308190397075884303387473489450270848854705826343792750082953404014758377073449803133075680303141113390150122596060815129308475229710009962054150840699986051065013800083700553578988189896396386020608030247098993187498959827650981510448110333334702197791712622644983961588996265127097505255463427864818158914232607566796859169579514300973950693680596374476820870603131435862705990377655106552663451079274258957234954459856959968630179948959680978003253428609830570384674988751612463235329740495204291331347910128928454965059626287098374190867370546547428972257305575097053337074194719300324873689223090317766031635192386780951701472460891123970386730920020760497022684122181064418936803822261575909225493238974410745783500196337373502517803325269088640154943482400872086052614680763811633886173284556235942526315158509786139580160962236128406580965025986592290893316441863939542104783459084234028704838822804384686812609747341954490719138960596008101043327444358217432209028083726747160235714236206284180508570402082401932753094897772196246586278819443686288187349949371124949399356531610060427238700285559342649816056811585208683425227725572822191180978978833573249704975228747093382225121692270218305968525810963214519692927688914670517665470449549652132054053588868643124322698799991436680239577534850990981130142245825786250041737367226272710287989137173953095460759580363735908685143631561792894237209838468887376399575316005595293607512514153324657758760122087126065819338177716263439222872201398087064533634648515114958829269780743568784329057073421056242113156035502934867977804379916476860665764161162035807560659914598274472503102714676607103106242827399559788718463172634062412127567673570484028541163932076496028311437604301649021870332419738000120074104178971564813416147421052130544134415809673775593980892177336213601485558522541501942618676077301064784745229949625458909945100501605429528361133300286473539774230725161860650567199705522348586642745367005292270600146464961676040414008688523411521265160935486719506186292638957453609984509078142376065362138956469390951911188259912117986979061504636506732025831129160970878694786385131659292945823007434358942355761124710976832419148064270605662712607058221145380836230761391656557220417573166770896193506992411513052157586620201876785111898283117980019055183299236698791738886834438160862393827474235674678776385818445280672129056936294653132303644921676688403076090943518332978876242020221101861999947277953445692318711265801594094692114623121824818400289016953890534498939049455863035447732402362451640178125304649345631696094521407327843262628814061002570586294394600719439281721185640420771553871519496037906385767909875673744322723855418125045523986059847199826168635584706293138885627790370965609783407275827166737317053731727458924818200895987058830094991421580494100466758022313269466072107937712358129301871183533389810979193477581632575652671275645856298080390971821420420750466027425744217466330170911875164117278753788651233746829347879420799378968214275879816507811820627397208288652883130327673436306928546192625082820783957260435287182255119942157055897083971244257889257637444454497474559169688089965541908385906062120348016311894550550220310399884024536963320161126636207157699816544016764662322202715860819743386199036378801506887535027874403236008252260852500769796585041778187235716417276448170472896661225494455081985648377271971444682438825296690234296121305367339898485097406726274311208017695199564207879597116613376320025381241667511430973282635572029572706830388795979234757369114567411270399535438145614203059015317231394596692832857485149890252498132579167241410034621826349497690950504679214431751038593107357423770770367576801777971378818990360158908838574894152727225324552152650785681654789668120392148016644996592864529205746200577414429217607286282050207053784467180625205393288753553265227095120671320853899342692740308575576178065884037981332154261118397143971753963493710091788336561855346734765441238759009041692239271888833684928236180446332560098336412397817600016163130648289360431964413173865062033997782424015200353521605942412489067266440934378129509167612714356948430156439693230253315592533880134938306268509770931696575949054824434660169195860916546214555802613025936268309345065247015981028990205061524206198605683109718129712407761720235305510811450874465164931024277066671891489834882495895031192032134414056534988683658911313924402088336738237779175636762543666614819026255677833658787663196249115168462949210878167216425304488298297226907117960022451227735793160784951437333027822188662000147647588439522206728853839098837030883693321992395099648706231813676148834657012871948978891591666295789634160035037008647607174972498201640314609619672741560661035575123930899332707962835224009083358216424365205196399888388813859386511712932667795013047793616127195741911867895262020299792159492053818075954024007068832727431206467543436427686668798175847390707059497826586293736035951028052174067604094165981960771026261831586031270740216628193199150054676859763856670424094694190857291843688411121997195142172913735489304393209194902357238852075633917918544851501130490854147986488609859956900551729630645067116877308539450774146508833654376578836748766622681767248997874759466657040878118992664750302130186630020389466358502597887972209143349905642270984191150550360773827205854830308202397730500781749137447285057949347424457981924833715480162095891212862508933647375022427301018396102157898862024044153853080916115310512004663247341298475347226645408813115244039641301103311085069718196857183823649711208886086526569570730348546579330178091579457293593612951898774881599898485050130201747749330534665362075188513944984046599307767324326907367798845072746042999064977345110137879714678645353921868051451142309006664151522275834977342850460166479157276679269666797470232967666202605131632351080315595188421201032235945782247426067264169865040446028140102252010409491505725545633273245404303299231004221029994777194548238143180953001819295479409354727696400366507419582137752656264711110016873818393128516584548372424771514885486231828671096692480469098804905604210452156207568248993481969289922658481863373173094361917211478126045931695338256442237077067472222076859946566390536190094366599900964785962282046895795938094482245773070629877564941498957596101248343156747754060228932576036288012572418882115696039630655246609875788413546953389157672540047613964131728821422242238884449950887803713667852383084140865238185450384176512611704530976760944944416181703919348425605558698939108585739994218255007692295660297234547158613019047828413809867865047656328527119010582719711056118453572287519775668762323961635653820346602489362911680250570903394213979305930357285975059131086378874028816563837373115736828532363902977762718747303934365609274892364201009684196430203440611474582406183399800673436158924009104340964981715533946453482003745337100633801380632243112589519179887651408306180273080549149942447272167479762864422100458487751637412951654012833216321137625666576106877585781029019464124775947637859522775989351052588817769768860490243573152011550757395141138017006269877566781262585156068776625869499210945469596932573066550706859939087925364987500287263132020831459165582293975447561658629714241560393312384476593409118137237125370035129587466123253190176042799809798308829299963060139158668807944434288427552218267839607420397244511932108628973759320649030406568228924416757690024168747899828373671955635555630690099739272260985008194328210003267630420499155212530806296911308759569400175160866138411819209680679321554788831696548113243511625826519557621289085582628061746269009940522377165779972399880913113468938517552430662554847379634640102259778606410768412969971238987103295022373540628424932951345065941447255128498575263316198435893030554134369213571757051584118952342647290330299813179761492788488830134061727650483195764980907163450254637298691756279165273867472239971416573028393854460400043089216059864018326908232282143290565113884215061048742309139451426247557222879115355707537358782463610184129499906694487949148900525854241672999701084997120396821529863050080124926802757506176684301948375076310929874786871469375099703302172556601349712115697214398122344822273677055766526882622864602720559497665794788832263340433209546996453810659762246872014089231596447423955081203514804776187575785443410344086794368684271361857552515813549759285572433617842403509270547875538356621010660591485464293968797469706433123342167350342492287598432120779107863437029623739380843956996991698533345418998955881495718293480141083335893100037302429315139844639213077164528657022836708438601778549681576267778240112020405006386957828847515132908748229458657947752039574581481062802446928349695820932573135806654793043652903927795382953604850995395923315239606739697478189209046523890016432308924054164562823612561075563596428864521042460846659714808175746105972288156173103125542920276988245399984740555115323384720327467592064504229246949167692337724943664355279224227915341892960485375962164841840829850370445284041323065991388341036510578358132781828648363437559050326518266060019504627603300173721832633714460774226346772545742426220602155632533742816210738918933436774315461693779476442506252855094281076263884672289647179382778330659365341052661031608132015177812592634236020548799215822934419234777953767693852843533779962921550197354765912575962870298602327553838532779443919200901529767564599474584635812779518460917077046980459703233647627515720512442742771036609339492264053083306397127360745887501344637629105100710353281525583538407703557481945607567697276470492439231718798582800855389580237828215893749729848177501377904486660872646429688631588997992127926977842516054504952593452507686745540400991622888303860792132882306553260751395326357678408995500692074628074251376769303924671726419777054199319012977755247843345832267129379373760536442663838639948398501726404051812137936800357167720046808099751274315610693218071802358711618147602276256752987388858516529975835624161501631951394728382363986081301524681530598157350235254065340062693224367986679113594248866477365383012294038453007936541120568433749475992204725443680540863528952068250736492899527169188860622081789854654990758089318405678538229071578153900463925945774291577701485609840920678103898869979147336321982279614438685781574330792685223821396592976248318372378022675450175585435869868182230609040086745284995302658983283145517918602222657870558514818184269036606951238857221112245347728354465182632227161098984596950653351887487053456602181781040043412189469835964795594651824907219497530591709188362851560836395999280222766886811535754426113962798852596269178328619597650891410765168707022252815308866246326635262778021964264169179756763142375833149620308501282554760166251606573894415482552305121226445506502224765059872798408679023392358163078455454910338219441432643405186998740867370506426775777611764373859067888969532233691653710640318159444595187898903772476193412599187338223901539363582848033456855511813889127936209369033380471416916806956897250254745209087806434101821479612682167321652025274024854675989418673725534939179505768444283378720812234836789458195265191271691892678849257619143386595980828846837174920213781612349761899543131887549931312766715122737989935698919192866312961186550927397255785432720570408576197392562010416422630730408798791911786682181783776122809934285550645327510442110142404984078226143916355130218404241993639735937337613851170420477270664769027015272499282862526025638766780321443181270435394813476100614034608264670487170204551112767269768898923832127539760337665711364749738815360965642650876899358069934770385676760997023841574116879804739959387510944115751820739799555304539141967918697388645105851182464588607876421828636935364777406707356884572475791885426716140298249766781317716644247664864945959696635892511443129759035132772894168352888634628335570935343459564854288720729887826633878739298339762791079412968954403873681767869551826013509704489425954165952961531706170688799288876653135812694213510125560243390239781315700759913061394612235525267842050183427910921950172261225561698648655852404961248677781291576630304190853640056655111188041592141138615229245072116105889521197923581887146493772979534319034099589192584089141108898291800123873907113355419119571565526105468799608693566632124972014951513360496810518006262819906666262591800356505907652578492263930543851620941238694185650205131525369749302256183077839060777439934489847493316641387850921888934359691247215333151406583434049451662831195149983256295147561701713951084247643272626482259149027758923336209609523062155239376387231268416360453670110842463237353673353648944454669047647881093761245839763421560025918177927195794854187134763869695411967940296865629891628447945412389113152585442047706785410933721755992041172313662758416091885365834460662588932260444691923214940989848280900727387229351195542885802745313316186886507497504621047748504613069071658979577813702416491725713574551414697301253776685754376136128363424351274729386061286316454094992658604619296288055342015556628191243913163580642120755218051303904026651940233846551466104504548321377935751569032611092119518150314302183009617923045810294460555270080899708030148688741575546895939159758884096687204929194538680008165264987381330838583877462073326021486168068361364710066639356486109020428060174626744184182311291310631020136925237448651436757281337200405179677822207793025858989589860218610390462611962032080264068247092830101657135395336047986355117043286595380708465571595158467018999737056932320098646067781843162705580924301515612826064779331370452964906277640685151108009284348222334435641290341607729523718703480290053461949198812806707870389615131767848195099550515576173433489817407996397070208437669680904006253353663815966148239624475610310778850109224154505445551390714465085416270407330575276563943088483936681550146784780464194724248778520786902165154034284800048068328263015015548673131572881497017224155666235203076320589684890326249219289725022442238789065190001551245150070932510187283407254327393224445466211645804435926587297965446165931059248853079151672371642386355363776142422109274189277830630670232937241911272779222727960747514974157994532957104537059949842279092516050234845775182085769348460440588170861898460347241923674396262718383993346508857115642853157300276472740402528928273254161030105524333862217721375027529152893387633576085136200436100955882330293081280072146142190230529543250645752136452638759885488300895562657121966444573138326276714331156363752061210156675288408325744816902213699099566092705569177633397115279305297134263694503150188544293988353354589427657363242042640292721754579766185641695389884453862309752017670200546393382783964275067162044766923191789197210930164753151649778417554714777563962027993089942240839229944328761594275768104663701474301054267114349142099933669940477956461944242452976326628614089771060487696480999449935443913893246556433088124668079276545283069674860308822215298297081716799049117243613332534774206212745089776197076816134652089690101092191637778272042406416602211589409965472188745024101330579091754607111447366832957132806781994805853122035212479003240316054473546119224376558452558344319949989867861903869833018865200603659107655159197257486380767388277915527653669215486956151338836887148900916253380783382298237679675217332275314140900952508458922555691134154091063880703407917138240154524160928306003443769715008333608882263829682306609462555638151226750418219220560447150410483514280979759487092636135099656010308836398432329575285052156782481511758759719643341284421845554415665103213895903434084128197504868014843566211756007224096909538473289157291305922754410535189188252889156785418205830496738617139200162753512848149187636204234984763400965842942081822213428251081213656145994721651746962573006958000789061287331400624964834488786572065015392891764518811736752105139606817357520333733161421234594607001330073097292634413933768721830271644032075140523896720233704449010566800214267765342425078236544678807105011211369736013737867110107057596975818329373398659842840047492586483825956468479652743021533836518334386954154225529438419288694261753418967546256745479046980610813045204627431942030646051005021832735974709482138505441001785336383416859412610928225537185014166881160564178550892271034988637763397574134709865292782001272830308691452949653444985564800743911921054355784346840156304443498796623759291502156761758841381840813364896528872019090735227128773810782252790997616785813446224597939777986383856252440493531530183582482887476264901159870968079670097284374970828950969656349402276408727623825822285931279510187614054863672766064976961003927394194885135651172071905902179831598836723279410245508602547448009324085325657567827145815369385942707847987366663444914106577650762838329313879770763143056045304831459997845384602059876723963580267432451286933904079037748645447200379832998974450784736193368435062804426087326312246507147537520314793165074244776443581231414178273632172301495304567716806678628844255169494572360129407793684133998900454087632923317160230264285602200705964059970628327479176999452784982086474047137765922930519046940183758800642603689309442013055414389031970162071181188664832385427360332458315866452097656201880835331490293220020334996588304452089570633479911449756050281384978910782007001146952584111100350487400903834951124901680451494352868964114945199978303958925137320885180025262607909100589542061928234461940763676194082047380423920623520780800974608828356517660313687554061914487337600400513460543383845034613398322326012436949968223133634580941516390509935650031090642387950421966388148498138482026020540399961964421829455545355026773792151030747538375763417287590191612127104804441641735675485524003381726488026279139774976680242573144886966195753719530918896263730357926347770222713591695500293587266334941050963336854484082185476219151383359731260138900882623137293068965141189705300130371480796483349086469049194192959908895405791921029110111880404405877563195321631127257913776865546507947394479843165147423488198311086107930524139537873583630084956301913410049565054371494477284768821684897585971770991373836121368913945933799868971511923984740361164575094189848226262902142202397565410729442068848458522158497536942236648197785896073607895250410203757487262765050698705441330842922794858367847179957792239019585671107766430936072453411384864799246481112000789965226289544853251975488231081828121262200730745489020588863021157903373337159639579926272968971803711190745226129035488844863570073479138161735229559018877837421286828695176222664657241646483055257061292943648779300676572035784979753127499036107025429876688988707337916309297535527153056545115865040703293697996006681333556665578588262608820468495351816051999332071567486487239246095981892280160235579825492435114966741468128009457747399458042301197667904301402639941672635751826053063419348099279402869243900228189145116245848236977133080307420639718273561774292807425480241275253262382574970308742040578965505899653582701006759286851362424305320738667593173772359561030170963460106543700994099346704403146833088068550395146411914276139301558942031063553691187448560701607630862036795121126853329805618703531638820264257494574962915751231250893518960443162389545111685784923363456640149392603729414512156917319362425291402090711453281406013228113076736156615265777062874716239222301344325343683565442076724714597939712054068371508480781612767157560734555865869874649729659249577037124822803029829327487012972625086845051913358952713555684916496861685799985472389475528797384710925140834932305603630635801647930767154514314075895157846733633239287542581602998016105723052894201813428985744780537905157928853516116622770063631815821352794287255885369055258915666530419597502898284086227081845667935784167110685439482747056657012368604574110534894652993687700211988005676233772946330001834798845201280892565415061767508117954994180848331870328149526338254821153575084678938592670048843099812385096762030479519878620265580287638305169534107600541185413269314888830420107186399459182526735272866869509308542649270166248628665508951384792771045243123746575840871555599878975187858368712506024275623705326749410749371789088440822085945209662528414032780362162158231998209065381752564050404496108946171034127101244891962253669273736944447085587622277061865193473023479289597582226843811864976414194122800845390224130106834354757506792915608313696431149819887567733770852469045195796124584528946067090831613150474075135255250028198724889210961273863461980983411846436850740382082621445409957153573439937151988010032651525745274459016584221091164398467723457560236299419510377998316550659908060630279616562410457773057219927885629288784658283250258678090985013991945975977286764775654773977577305716274707592594158150253365398577704588000808408248923431754396470671260764946975523189745726955790873957907969009903433322864291092581761664813239894126144289896265784604857255385324746083035948545842209331174059992052059600977351754097927777962092127838914879117778589058228751806223819853525395754866839408697265929929102713265875830063708513798052398850454582296862004684334228825389486474338086700880885452899737953672759179754037820019479079035816400001145148016336366425568008413655388235521471545173540642344679852683463847813370896881532456001271253545723012321642213123661900743535802464443015393637341297462332947050386527092075749735777532364473908485272518804326753695685117355040281217945197937535495815978770299720744789808678241241811809405758633748214075061405690504922137697674024469700728691410807179980566660260116293550906114187617488256376375916033943620436448829021220146744385887884026450884393544169201730719925352058406274510981281862004540716187634143964542730669207999543228213071044981597268478042070812229396987864696316662425917011730462882691672867635847792806431953656666871394190476464174785867189982207195963775883409244603958545358722694148886153727508661392453871780268667701864365749801592499924018134624401169648204068960419803243797031528094289060606222191967296774500509193769067517075769123448716266587214070021778940340617883644405776089314456257206875133330391544547906867140691187837912707537011998739546440099297522986852892638334725271248725090850713201237011555975238310980673876545044466309049853722131914149590719046999996627820233803341174113107884062272500021235632917328049908412068095359164642078994224556407066628770432163858402505705314811116564219768444705901495208405510647208191861919694295180829346735634795229923143992129537265803282545229582687877558667249101807457715257385558798775106280988974711054843350931137562005364964211538067678399041082827068235414453762911370395106068747053104498824641189186586795790634071326425849880681240382689382453891903833940452893242437272308272308615948071531201958820269773283406572619072076681941657038918459966548194530150596961449712719449280674471627277561958599881781845856901095818942694894676842200350531645694761128386641940254346475811649610478702651988217224856884425162386684398121420963470966582023017706998651844522293861798165771336665806277289161192101305938456567486969493649600266533485034591726958815744478326279929514096171792718086440633470314108420313519526466361831521263701896635204728911004006081107888661325970315859759552477268387387372743534280272276330798944195266181020821855517629492175593463529995444636180380590840484019347214358615032187251652262187539679891049936438248211415683694556498596854643867159025562022371482773237316396054849014139636282314132305266866372033732186452419570499615139169772434536767878741017715669781985335823858149653831700888889491014851474707455067812542166085994697473802162797392986874666680685105138482532466336411251976596261468273398919957330647312521502595307302109122575626273726371540808924972609756544819654103044565929642360632351777603711254169027341443073503356976710429344307445544164786500973439796874692177938410141317903515147570518871379848827974916875185750116840740651835628489057369652741374335136140666382669271605763293660392501636586918067072036132605420454914708660095099263218953611663635575307372546007918632584966655553079676911833445534867951449511509595779512291998079551405460731168019985272207891006685246128167724456542578469487923717929700600095713376366931202823264915844329976334433524771950571858582087652354574707366558289661489158230789094980481301073393006347852342789854808385063493566520073597606111375612085759733210773910326129455096648893165899793580497081235666257607937276384880194221700289014803976939568932418189152756308118060827468240157529654040939673724227083773976207724055576723965515242790824944091859575847969167174593272818110099855692823043645675140212431249878059634715542729269430587511424535832685422967833503108362658269871084843681137159371412046231078203596397574318180010273268671776222157177069842727615597212009728699620483578873247485948975464940958413192013179634865201858472347709729010239228662807094366609867728399927531199964320762342823958982124849032257036534060464868425394158290925259576320165322547629875618086234248754497360998029579613021750028983593151410091322033945102000699637829032258508634521967359825054898272426605056146418163204763406569006214683310875888987044023913869510960609476568368640196413929727714623611956679291652536988095649285969302568758291787947429403978884889738877463483696082068651442858707806603810947128257945030617078216399147132125094699549131068830553322541607907979877759045159945425854209475487559759127507384404254309743039294084536240318426481712776622286074400527144341928727203991670275066298052821895394437192356488594751989716989060781436839645695252109732717741520306525891251037955353403505311783157646038341485617211355484897116863411129124648245654739570982854308422528628264695955302178527765324477294723879233408122708367013408893771827009254323985301104939696962766511079070205174356036614238678780159019208315110134733981743605823942880515710786236285900783304799712652508281203650729422578869393894344574522878141123897739201733650138284724397878596379040175556641041214434877722670190869028225249945966807115484630083461870916160524264278245426930192733357832620685132330167099160283475965275707185520399408350696719914186341502621981226071860988512880658624193537406956005907694834263291057653913059555661792132050979338259142601066964161393736418682564455307497137594397508498386986581814256176502782742977904153144310247369501177781278492669744021615843115668339471545704593487613976573181664813168391617984893760218306160298017358687454961214012283404445647654204288070388497709561629387637917015088910282643606531899055214763216163707495340224614341651862312135369782025539939284211431070553485207098679987083646079868392611576199687717692018773392034527537981299534262486708251545491547702492268855540338003009402623339083966669351543687077290405164876546597208192810054838056895711317135020328499072909498076671802098289165946467519363832734774605307428807731765497492296810200281923148041200170344435873781775658492048874139438352229805801018357766738919350519505492220867952517903572368193103944708075047241811090174406700415698759359242669395514877444022491776571324557699404518204333432064988434696920542186160828989589312741073198629550844972615357894972948771358954620292049333035351029862440275499630938546620185045481039769735769861422656646940473214403086314576884278858104024773575000676280507246657204497558725545767975673693376134650620051050183808168564770942262245236438927868328397811448729777981198758700346661295484984989570684807445513262239455055943990156606946170929167204237887549790689805161459147670368562913161693282333592780100054775898989188761918211083084292898137768129062526292078695555440302526405376047329158240533340812558295821440328392775604663449812132925929864187062369447425291493642794867416294192322991608402701834682460118992009742904321057928843126964432447694252477305131851157200297653653823779379845684050561368156260359636637928197185676402334317365654995906368595756431402415078929253775370573827657047955852474561595476842927405214307582050635894785389733851827783393213246760366245973621758145699739744912289928566726833657844522194702374807875522822247659761502821492191328707259674812349934331445029653388000579646433786540182708089539033632172450606029270160887579981858300138215253800600176094622949468813655736774596033148732432452247668822333412484783233741849142744561718815625866865355221404202485136095086259007668149821249970324584893323411727700739765308328229954757448158859105239684775817752301660880708326383773460996940908251467718207569702849309960928875149132992511205040604961690872173386574790673684678675452763557834081012621476846420407302820730579616606463434257264075451459025486766445077308051634305920416569983438959172358220545239014244454063237561411810966968820081183054909409483247754037726924044220248941247443952680393473934442661655470742986076511721705273309709988594148435717965284702928561413642616856256865310696291838566529786201701924953582573243562970401797473514608848051240804357610187645225739806886074804181624968632980604038744137444971391023327138327069355766246161146214572975213891198860510282044548004952006727529935050317426961771860721999381618487208768430150999230965995734525305919247866517210916114157711253482167302189515802812640640421316322602155807801254825931736110859176240665222175630195939382224245768176817445937222131681666851163387776476431438047050526726439186432614989814056077079890346473107636852117912429198455866988251869946065969180507352236007782583182105685764688145831942118756784472697389985299955836867306730182132023691298457039306015680885914876573167121795203005112199052430234620814257540589437111080985724836921207609817671584885712616865321641858537835570876181649119493925007487501167850874208455026610441339251685272487083306373204597237421830706978589352746065252076395299998096717074641244144275479102301594447040232694507506499541559711143387199850519946022890904931578679503095045217270265124281702822373576843057951334476986754937397006108107172782081322285438712840237764443911914442163488972161227905484449290920773145248179805114848799590845585222607325401795279356775420541079824213592108726342011021267050673315084921310454927940146338382850919859839238270861937191900031871653683872269015199650718456259785487358024059151427468009869317030906244167214300999105158331312699743410164019926953783581359074117352335769001825753808036218725279645397729462385296274544447952513448729420513864527811235124529866203682225014943484581766693401185268946604688594778334136804467038654696805462045763656737278061747951064745327131875388671908000484335453818690344491056121056140551393771188992278527183734852463591769917605754261161192910343076154487293024128990264007558177646192678775387677024016166721222947083733095935709298026101877685290890745992906593719408374138530950575110417076005190784037091078928844678996869119310251330176452930127778531208965245185290738327820511436840453254334400520516649065714102234984745553890454398542082643553896844038822437389324739955582399351564710873364734666391460506705116770938455729550168128175471159575004857765710406965755364024362046123248490690038692526561049682246859281803204841209214880799990384236171938727877238573767164045484476250251636001949725605013038285346136469044001560866489088029419387221135451504839090730303348861534144609438376889299675694260529735585039821942148014183702886262260861926328710823330304477127928871504158098850187426885359814016874580983867518821834976006357885696131262841296588040356150886297587010821284524526547081249755294277403810617573067376043294816116471637203725995975859075921291272283144300918186970335056476938340884856862505768887271707695982101049633169066090597623775561693352547389305715397459861498147526211357453326373604723149322450188380187010611567376074033736880143515150609681683300201977288347045419986945688197146685173279794124253972543330238025167101179837788412842175280179314669959540634546863898253539042722721351865690112561425407724357978801137555354306179421987651046708716948994851685969939135806793433316640536345749931937412773926275697445281758142224272694450307853273885179481894246779178366856995529989725305477164987922808467204228811302955083819639154319509031514970521792710983729231919171574548415755666084974801898530185694798999325035728302850840045094531448683431201210579985332593912419212812104097403808339119136491735942617173045140084823568351219842445095068727941298508473228801959365495352957636727597394739185131732224214875291505475987927072821316522101297036404049392288505846723255654366855023686938562811018311707968840282940464467309632612525238061183716940287484569015113223586111215724951962569312422619914416781504215463489103601655997099231235612561249575470884301047161449288227251479674090837713872447349875495401015333707205353022376245455596356347017467556505757669019701374066825487386810557351620605524307331360769745635944219844478977038184458015831102286724472570799209915349982286538981141995972578829486596144444240070243279936101314309137198050634774263966233775298138981561246499113028989087780358886616308893667183772730233461212279670136888178291289886760643097760645815167164773298261983908439763230021818545201990773632118914669183749458299248913171224215243203547061186941685693464660357565516318524111860696648472427422174852048534625345671018690006876976782972949922966024912582860052902490281087835632428524359514444536953737347423946160386781396572631859000375670074733716754272024344348406299762143251497066604577022236817030901936118158033164988946447128790706968145969673540851095992730809585838049498829082852000702329548340765687226028185947023061195800783773736768247083006531923858962632412311716433541872290074838506395063277552316623776972676591238921323584854493588466516620240219457004603270858494568282828003715905562430226513449243374005318387915258250117745194422836106829749352449678359378982574996415368900087525578257019641178804848936613913366516112380447030408508895408330159010827779627994893688367249004216449279856085221329656778142105042210237731321098718441103525042120582172365123880866551831863750654230276824507597247546541051908031468278474436447259119630672834555858262656656698081102760930426515695103339511537429575103622736101802045395188562127944441933662428126153080826040643445264202950979428627648335761289732150051934376010453170356222031989740137080913691292669909102790378155282583907120443807644579432356581875033770503626498952982674991800581977135383146534214819712231315745967983722563163516838747500907878637762600180480098232025217905373018355382681392546224360395226314204527515456477150749147748603873460937138064515668901606287185179508029526555176078076644320080321177426020189914304817850464807172854213542989692439897866953822093198042261799624864717366477347570402273701545928102907006041952586357193993631734526259622986941484977875051000635371305727911413362239809671992010789454708840219126701837739006518589481166078599265987104340394582520048285896104821561033646100541860748109983295390629588962148857015234585016141176925707513751334200330446655240229783094995732542269434066412546025289357087039172027911830964022160278752307371962641626780147216957230754302179274265396143891350068481854331877341848910106999684668120586273361075822889556944783861208617845915727733400020990568513826750580923535945888049589416794339798022370722687442185894315304046503523800605928661967382598325384507718200136411092847140913616262137077513176668932097478409006723887707073791638122922257000830461271596712687745794818054615931807495079924178404726894730842472719341161987648721764292565489578037516395342257549759056009073705200702795027552583524666754277180587273672343207105862679201352877730696102726788010548698124288425328909427256366738266948194670966087411980620172194634403844059770365234852336257657282382914964551973414762878387462433800283023711644602608339530507404765421443897137710827925897900994432112273149058029771568783883834272724670994420053404344228506961879166453924500356932183882924002746077107535228696789363155995585626110146730172935753752368988958623838008647456767872297372097795442261552602315043121689163039323201236637007091551992315073123444834487608702591735046965594184894894022708143428238544410901511438084186231405221373929156285017881096458060353559833736971890150904017810174552684139898696203900712118915321757730972833222091309332099050938612829827796839472942555703739794661344969122673733640805615898664345689629423821936751935473882419747733073405058082064186770953433788447621481112382240123559272543456961974820113610058907674944150462752613389385242025749695595535938039200617257137558793370104583912997346899348324386578159415525315781845106897120015852778731589548768480416681026138413417654742134574211843196257915566112889289239180973359341987230789956580183617147266520968257859964063406775271574238932347168265627645182523425100050103555911632659734548383953098790344841495566753724722901664276012614448443829194673907341770866137111608102733864032879550569759672998214312822571365732123822077442375819719149282242727643907117019862412616069532873142868913362891582916977912497763999163655037713601282312269525842777902969061261820731076304032955092924543259655268232302609494901495409716993454536443107910438958582484854872410813583572338794092983360044757675457123653562874542865889060682076084754579513119568540823273844932487105197480477797973361646181540818624749215093819793471137806347993212830719664251527752900533089288496598750229848959859533709636738710719161341562426199603110548841934389668469060645393322111313972476512921797066844575974254321622954670351883333380633515884209570759755829687517964267658194679935871078571228774653906987576990207823954163088181443044834134141967065044929258971071152725003417314703484311540505987960193885114047142127711612209775731016645877649927880698590085711155149556648792923723697562680568288285970019714789698085781014657004138158649420731073015394198491690601170430983773098484853955316450010364403472836881265237813877349267635269656794858601635975325310246059877758502217222640529186152498524442705074998149554854112844479684955251207416779758975309123630416022737640884977236721463577160794362523881771437610745807877340835068891203867157490062796668926558059413703804256483965386122908374719136684027420519003752980498362859410957943574017346777236377265094806130982434304175794465583412634881811757972875425505203492302970137503703668975562872494225911828046391091479639259102271897141081665300012025863468878561552977628273994490765214885423416039604422049597962728080029625623864992393310411955973141944138872714293689867006868975140180610623678156391813048709561463458033696843200443499247157436475412945510753413611264768061476969857737457295755570782916626942419616283100285135819932152670521691362413628767573435824611116448526721222323492137718281188011300722761298149175393801892417553051592952539650479872815373428147763928376479487894767973128200309690082951425030073787101934970586423172017465113027700459392978059123934031476616536037557905129522812960720008257704014963622522082718958312071059207704127307833135705851414699337894469153785174454440782693553363782576786068674826749589589904119055744627428090653987581359755776428924093079150252958854134033407147612934670006415562226448585685017602162678941669265764266700087015827876622934387914268742272963475582176684363666365703255379952629779856895007924057166762672164582669445620506671458950039656947105449671997783193967525964318096657084118329767079299750142833696614300514892022625103785189566826099258753735798312803398734983030652622294584284531380040213803897042758745374191052239512082376762260317597828144610575015882117186775453956133758314144496693952272692025238738166576210801631026897792644215039424484285368939203772352037039220986200279993695005777357613485905372628965053091386168623246580634343296230656388754642428605985557914447180616590298080531534923737839124270816195156690293880383090694313268177038291208010988095871873068397659037785558250876240327453614479654230964802687538542220440932077728500476785956393753161531765129077349826831165289406573064910367969126164076877041844955176558207309943199475151286936235590028257947411796872654446856762532494764931541457841321905140178322029284061308978161794694508906884545180234939309386702493009004692978864385892478709424868557968590676751269087970303706376804081865212622192371733288159948291627101416948116389408410973795708039485688528202631451650485833177117581640533155865835514103793368038965402137058640833345770213010511580099473511405829418594858781371025064037557439993742797610506066335168258026217980890695324037861796533474378895073138425432311717026355082090415965477411441061352556231878945258107963958060094891092083866598224913669284402439573189991310877166189414164617488611161084560887406013463020896708106963629019653879275570609549937670703476013663509073785497827238967789430535783031030913395337125329985281457970211812449620408244319562100315497588904447647361911992831453289643761809183384622544653609325968084036023592492254448725479169994417847734700579233978423516175937797610498110535667380057295386239757311312525473936861322025987207021496824219681794072706512545539489574186844012433893069048973393253226314705163961939727387596576903391827943724802169616056121618576814224606059233791160782337168455124493781748151685823467335204686241316551001044763510078628640038394824911898925804529417527360887964428085483561287111255310636871231027088647402060831873843589981489820379801056385934887190075958660432982272793919832260607907471341871469226502430162209877735850512717287680584796339278683978846761405421324890157769260527590485234405957625028249266585148650971656164742659937013448586506663520270160429408384020616998780521751173627343478519253248008327814908082929026006330938204936104292217258668929931853294224123624762630668874283170088108675538211684444947596884788222174621300398942256144699485028407785166385313158943747880128447858721828438648134742965722747966758016401346220672036906631832131284626625804311317854855554674039598951524628416165331040073633225609745454397594093466711243970252034427775179616650883145629191464161846013183155238758871480703449071429846763732355565589057921298709881425808114176309862123643371037464183371301502151190616097104558450962880640757391348360171474421286959580356346809190943165369422216447326926703518170418631885128468486328074448036264623664909094931515429444523731822182190318645911486567037577454754048807532731124137877629629375860929665435719521984000297341789483760155917178511109003528645760476594893354651047107679206861784663354001306349603599850186433682723020366994061660832626531267724189054550670580522572603211640736626454729612127471919309126779838684245803291532274806530714136693720425073111837086152734132373585547628023755982988831170695087187321750630036765627684477477614861751702507005061453606782674770284282652173558362104550679295261209295745258947702506511168501843270547166160381952457643749486220774239526882496948977105724502677242363855300626223647716557976367416149096704487711233254602373466065013436638167990632907132790394327733639356127145159328771478828391249800268699286269709692312104054891786774950481289479161891268826307335483700352920778175053631241499814509702037806885460397613559408786664424688377221096470097109450463726920172288240895346439850069779724855970438158839899324911643270170816581379527815039502931348085468752338425351271940776634422057508582905459392488124666848199543208391486178410263511501844212322333494103450540088220031306198730960729161261727128721847109439120942520140455355620435175208881787033838771209887566260897462215079676054967696742179589677915886250349784668356669336818086417760902969972922174431492139973509116593179045685305441275803135456948660110305056236432971371344677821875269253181087060623147740831770731843687387277843585500925074890062626800156237251969563485965756285693044660631409053104016709759065310178080376012807682444271549449943990631895043951802420999934247914481526445508465550755437511866995791563379842194507043118514017937652520084286552140266807222009823832223050503641113255759376256178900017171576191955133880258958089855175731842011096538630202860605917964250103983017842432443116963964942883197192421509976587088543027429021210961103372991250250298575725578264612417731133148422454020723043856044093380841093607359126155784498338909721599175886574068970323716216235303581755723060159086325713518610800896576396793237404746006058308832820580151190258586215153936785155507130004697043515186587536798017924778332384838464313097623629888970612261375974912666888646288592150002687227516626936277454455993551920996050327724000977552443709911194346914189358054074359555276672546170958600944741298154751814616159242811606116574651861247165452362323381062907809918771915968889052959288363507947120776871526133737360762149784530995404506884410402069154199411794228367611377322927999687360750139995259917777484951531069883109470373036138772760430813491466717448336028602412553100489384034855077721296736180588567675971056396938981990318123167644637915292915768310892282421924329247136143319162524751069721558661651206293937151485343052196743133364239103688289632586275479951783823964638625141482513426765835713555472087457653632278064029274076349212865704423307909352013684303253274094686658466347920507655276281578149763458328625001145154675661404805822807796114069814198050923503941984426013573314863140335281849842998074191099640559871716861707808861436462200003175420362565892191354324102657620947042599933993985145589984695341944125763715152567870754210250120933189638719243683479501172824644581345907421575909004817982883802912807305257771898654944234838290304357974905376948840752433519060397068885584846660183341970551497204142212823452988766736078852455881056897306000781791531404677308662572628904331640766569141331290667047042378127848059134857172268380162911927387556479114577527855967205034448170856887796853703461818008854804618326749653473758024847162194583011776887159898636752489086315592675832333885770754516674228159630557214597757725395603718431828554127858188993817662738697328986520830472697952190025829366553390442322613101771555263029687455482383890647217284073903566509787849538143372513916403136310975960465313545781539167364540230230775503343071157564369973233558979392142373596121992094984847571583896537536128715477460893232728442132094902284322609976928706781010175279688310101319444705790965997553932430859435018782943652721274008112532017959921046932511557339292563723692970563770893082375875534445262813280875984855583325012103375155278885097967117046690806690148941606167094418226896521809307418156666863393769504340841373399257412153324338631681596779982424480313354078314587338723743252463552524290274473867315472305697274745390276650114785188471160929714307463159595625116803735461834984092042398228485401885364670309041603010111903471545576537625999322210825239459110802806967606798919085640769137758431085291621823550528758215645802122267091815032454787690076924579860241266836284508112687618599528759623272597270514045411693647333650726894129130768360067398350437725060338101990119972374190118827568531973733912727607816513281623252998811666968913398860248477710257993551142921574091372520558569583627939589375794553169733217018147717033130963341947355593567615291976429264946308504816816049750387548444541541129656820311919804250719316633247829000841405785130172627276325094567070061738135603994878982752131757119312131360266394959889876744031409487452840801032318319849977823189784008015126191060587986790784152903879336701852555233118313065555059791344653162338977287558337023807905351156151572251725810596077443814840361185758934494651085578656004591959224459701250808743732339742350624961134105564383979122355851694196518811521292822223226350798927327348441738906946911519598638328354557024033459519937346193685415748625191800922802403220551758805745305734680146522619924968357985449099305466838817507442141767228765604106496076335152752579834251867965621402124670331421696821186183494474442465891885358917591815026937376048677214881910687834948188867925935619474569525454818836364211849837262461114697340993477195822559254310514603007516700254644563288114872705885815919135533847293596954284843160175258615815627761458465612023720527109891623125250027645047235443408785008050556631590840923822263784483508761530759173156487144642185728183052036000639041962989637968494352127732821787473723190582781367677792443606339481175720253405853682979054041548666211779447042103135637828087200440469998386366020596475461154384116441552838153462327949950927551408283281728288077974926370226881703243511235247157881341939095677418956517594867555036577610926297945024794789203169343086935544468241955604911068950360665264304248340571018599056851907915014427654109220640162186613647088130468845455725716569248927050508123052180924138540625909866700724191156028599616564903609654784019412061659900594989424803913198606573675473195795124717171093416832613403969527040725003679670660918109009249338986511807402359952451049775856765381086638224169653168967112180684444544883678221843852211945382350859599004654796791618930724440102713894825194418133362856335937904684776390653086521593613146784526602718270063086599171708910201992813983452942328353390500805809670568826713595321703343968325733114237510678601355151355478347839083117595553238066079558065526051812199913090822963872755898893432527354593747527503571842961553864570001315631772274775785209085957840734834465316187585544541337065609265351305584272792000444692321008169873889608973836833472469118715580656994767354276727744030930894078965207781324259484313096708949664367668094600388933697461010403238092129853359999080712961105315374973323588018636895798965074877157545221996101825943172462604251826341297165075274635191025433238147472855468962385598903690580513209961730239635298968968812900809844759828709541355018923120548897567110089010203541800229192116968156621262030413122221502711625149892153204027245318965564647842934516529257970201159841500106704635509384307471658394666828212069083073454873624981295566347669916546079481183014466421165829460970311275808587848905639058903802648465248582202529560381169740461560964671741661418590295251788970699468449575427095982627824239780295040993721132888308980526809088132669092769492427403313989319495119886390415400363253453797191939180887571486517365706866527644722666361926081558734016824867196748205639595990282226624647940653452894035128835394380853205229000988665300420980083406784718197257831478444345712409483059394934265495336104441522728979212169890758971529456580909466001652160743131289498667456638936019142763585351983332801587586579070569335628867528683364614089533200893299268289774460005639954304051075100426299032987084632119100456120398712801743385582628521873749707999854212034180529430744011728799313533887877122700412121451898503179511874424085799768457304555541819756046282567969993923292553170939816746277810015609501964972555020773051009552788182280830689787843920964128431372589405059607506036227792118391340265601519624295255674088307303378851763304860873566941769684880585778350391931685937874077140946867374724242272025828339602975842762481484915285967404795420654337826864157879177639159796400510441825331688492466276400282925010642836105171611385782887390355329435213965505084120081356678954608872576981266537457108738695319292081727581952042363198768487919621506750918761979948108791271919984809207803551398289641914151209303357881424826393037913430406757636087685994007768971668837721517970685839450608255604063498790910249190780082107009931752653319950004861421376360878027238922376507671026340458166679358017156839453542306273759185138495769276400862683420263062980091777918459099947091598515652674556583499451324556176171732904064228071025021084271789009418191417998348650996969070162174034296665200033802942721692808910172370874182034972624533440424020257011549693502129002891624434209697622348338653433580053837555703322061819312331373218263100178679444927099243732791742260323760602657165264594215945694769913403745428571302397173027067386702997679386421927396448143926011982091821259739870946521047054136799073820333597193191169400896789349657496988090463883609567597946540052811393737859663318331514615659211540795304335149157777367584146441397587217454326861907643311438047294464628453062824996914450606406734635344547520762155711175255080453593333512767188215582703255484133541274090704477160474606089775198253965888072170661189167437689724584686548529988333729085617314574824162843092141453940986307166838942104175171897734997868200429852912021439380438519480263443139677362577494391289236025060550709001660404871547872545750097284481998893177168984470905517365919490195902638484080964738987352940061264603328571223967575508427450832463768646478415882827140857784009848775549337036524221971155922210852286072185741705771480244396145002956358283521425770614368397366697449263783177678001552694024098929045594067940608761685544091536344835050187084048489984771006486916894046470652039309380902577045451181954281103497328220690479239381222187864506146995989954019574321792987519069980559914609568096578005509128354876963670496147599588430566944859267084406094902641263856197603199595967657936105044748203944724899961345139995065676022234100900242607907445510734088612922303876781418257122048492820710460135306498690521563854645110268088466702685302987464742451195228795573368977544650311386942806110361101163693384274062148920644526683548258713118941339162463958922803193598668690556183203545425686697487291147111545799010698784439101352048127778503325406894593322017544720732226806926141241756675382713535562962275727817153981616130591530049338074001126386049818026260987728764900702263942674695781772866238766811008530426412936251076154510028866220732518629470635763664530241582210620016097349607951597569327145292508349626656820535399933042066370009325349270953303487160102840051575300760933760022408017733334271369206810059299559144069561158683805253873246817763085424199132677209525680922497806960662701603091204618618365311188703217886627493345004366488223432532198177491563594794035862932401134044050663827945826555208930052347225730542964287847833380298370360855134133642008112214618407357193128400696115040108729271110824009861747894750836936154300461924991940889085199716525322950701945082663780613692068311497227968989389234368545794190787414319561647328023139711179070571014530938324629584403133431201946161885740513366724631316187516277735678894794155250426032776160159965511029394866348325094394870530424012335263161261786641742018502215008961749413748726781273679183495426751959398508209336065071061873562856127920213462945275295803423393072506183061082725056693049576313667456822989938604325150828542377612461393066641672436647393984517608508487830519403629334924300335164756460548125254438901766902939166801811420843032304094362932167180474113085884882022351875933120736101582499131489008573373754912236496468169053505830025335006096028178711968876756976457464956113238122387690193045329947364208464762957558670965517087518742345854747936442575918757570471122329050482347143147959681771233040014497335662817903849939346333997570360293660617057410674260295293673688814805610002390104427333496813093310474722186616126356079506959121026321162640776221271073584584397842603820577589759865435194932111951928563907780349350406033803027960139801808010637498831857351879808642981995282264955962778472827691119937950952330985088007783132993063242995050255247896913145840363520671601956922973410892340685265246651858962240086034030706666227700882838588403659704190610793938785858627472572075139134232934789338687297212630209958921893501974041197442680777459403104860909097143105455592616549448976328386016854073391882542933792485126952510096892116898957113913309272703518578427199914524605321470242705494770013500869205608770895152700656437602777132066942006615678600176386521746812445956710279283402077601079622330415018018330201886515080091672690272662522011386531915220825435808093448726706400175188284600565685921310253782681223183316550526235157887634766013013999226707997409363639197558697684632607400552629031853892924817086908685514408011997294306229020791665595780599595486230993433464799879016550837861701477507167102974141394678283402148523327190878339055813858957042107448024152028334125051748821569241486771635226703540352148346870226051515818901271973774902730379450858104000612782915313432251453573830974158997703755004112575185985066739767208613964104275862047550894072541449883163693678215566794400106925918027605367695913040301708494592039332953358399182251329786884490281195745605259161060812845862676117972262775655791984712412687641474263341658383237654877536267898821522073210342741475621103179836745704936208965759412988996739533529350433224925808930508630114774276276058592755727499278341342122491881876605922252776491064550720858755593022044833885467631616747039451945780352035066237718171762567491019626973179910469848209899834361199948000394607194153704573288538770791306790322089607841966174508891824025095317442461834646045994301842013395052700221655551614301694923086857565252945612066231612714785299968668492795704540982682961661339607377314701543899853990078661140876602199521678855409234040037637747359421446730770501108798905178506055523759190928284334097806772309112372849861366906162345069953802356328867342390428317756157413553950216771741459157854882636961152551023414786006802087700579091980484507408444528919999083368696732858466833660573683952963144978177141256040546984333070549211229478612388522942325460859444240368872876774901352322894914298891470705544665767805846676420827740820768942238675964799743230794358252581685254562733848707790310227580582471742894079649618213785238671041926899786085747355396674592194072259075159967723866662113062115947809635065020548300497783515323867552360745893608198446448377456967490453518162280847459790875032589184734484163560620789816158217781334925766841200881277312892323652420533941300460427597877686894077421744972329599689513468291083395590772880644096175963246275645811657407599215158508910118970449950134068013040700443790668922233286705130223993501047282605733602569380973195005993858135937437425020993062798006813681340847430579395448556484557752511808122262889805274151002701761697013452947712461893785937422398506892796368584255439974891007720643621917027694448895583440529285517515915722938128058845488835889429714223276870291055377009352520897754495873452172123711865296631924356548269252581267773917754685508491817021763018604036887170930252135068364904082631835066461666882504240043461227136135858734836751715357181221784176974488025787918127616207971906388113076089712499672817048597073096618697059985469886120551235884858879602575946687929273306777275815364131948970079935453853170890996295128142269560096369438365384384922248799646071820156006654095644070420361439529906504943975259490137600195577551065004753803299703977331721444659003894324415772420110542649718580835436603853427235044343872366330783702219001127469726650095287388907130535941964235856015808215342529214581330049693304213467576233227778930538782656104871873759096362266417732194659167836151282981170739143024839363286234973170765681468121249712705666498063271599953860125505722456134027937601976802632363971539700516967932132686177328415718403453800640142523002324827731845599227638349810925142474347853475330631684535640832649016283652873946381000069131310650275429015849225498733412706683638872413472032015807010992643128032407323829828986585382639316409139406043946250839583864304228862435826949801085190251438068025114898761630291960105805938727694807039686359101450705183951465750358725515949021888015983618390253063717782731189044870275966484686035593478106885608452251437031256166614445970862864865981942054312589415769020408606872863433538329637853852919017344268437500452700802896232860404747955641837619658860991188297393636906598575905078501914098228947460063035560378894249998338873084859200099445576302720541684034625428113898761019147519824005210154295882062842672304130981657020610755629965812041247813444854285132423119867050306063974676877235986787867736169306711410127743629031999111295275635984771066382569296937297199026466212024206187464550913743188625685947912241954590677666223347483619849046294448535190119159631853368966176173769353299172753729344255414902163062529868298828033761511364204191484371134248408890824775938213701104194030663197225919231623397928575904122719310806461625462086025794902538079537844186269475525142229512052227471642265663304815066699185050503411994753909339585740606346227064273650819759672280249405940247346943841964341035175868196593123676442831216403591756270833199918491982894733118410119463280578342649969453708086815722904321465467148505152907310958989893956018958132992338911696718345333472310011864848940075128646335926227995091648837816792392544407963666144858120529794579647879863396402540957977081799375793335726574705677479587338949374546493625486122208114912194162496998533184531063877864387173678351688929977415088629454645027114236994136832929634350127974137095984078165819977945131385779784097970569666987784340835214388265741690706454534039560108974119751450797555091080320536644658418020640507010357736764120522688993382527043924614340666236263881370858676694408291771461067676948583907943820261675389547074554891522722566011423643560436548259658952228913247438233146578987264626050496584435244389800740669451191728146318831111452516757974062157163494083770876515555328284987235743520101973773922609142285145343885485667725810054193218614754381896238528706747821823400992980141807774353058183930016204069266453493334904109097683644393017873607484913219047670565945637826414050130506664984843832735260930802725751997533044616127234555272472681797300101484777102860614753236601984512467066711598779283137764835813248942679948129052986172797286354382495709100539808839028741617247011104203251772957096656601771154858053011636927568530826936079924106479341473226530805498810040453166096599833970336527675930401386845754502179266281249022103226827277685771813544714097161399523090660623577884055722856941264295703793687579485846433484179468273572650951035422531454136152625167863237920902197081646573609023589944198837884731683323712032020216378914896658149893434597868487607721264315649470859614623122683140239172601532535679424428289202060026692436813938772783198263676586355734902642043041356649793841055957530760294369009869257627067108475612988970572857001688451055068218994874882345100266866746449785632042310590038999469313440060332570261481986566255341551893594889673048780732428186070476162261763301045199363440797888217000109972952361673472192530362812087409575855026771917612352234427854390311561162485256616904223942646809602249868170135952409254949162371484554949739294414317647402661725930409478195493944608160623748171689599376628232362804079577625279930085092466199938744883022596606461529152517497786546104593519293300497703632122664046327491526311359879442244973051202521350950784376882555626378084475848615665104805950229737719026441156444323403808428201350580449445168625574674289653828259506847125839788371193794696692779086167998774949371302947557883080242586324238782795192810779828060056962678806930798823134027722381890266867618908076443746367333362401803967338394635365378537627049066985552105412131053094496429688504981696822457212687878229990019005540885006531845316589732838243592696078259426104384752532581883976536897471048873469018947702163657137055448571652737813235508977235080978997355098809767785271252593097709940029272200578389518128481860665815161863123065896660883352060920164840594076722012400029970569322276737975542415396286132201138645639955066387562249468206273870391777801704883763221729787917026093399840386333476804792983207467249848961960536600503706282874646237425695625294966919161545227104168754515243427747638809302757030670694103675436457713468075235264400357792967815880794282139174381646839296586983857768290778857612932531750367139848219585317941384220511694042989797266739008729009261580273560442795803656368763729060373163267243428499440778663795611967212173133813904615509394476251214493692863592940560383536967424127808073656960161470572943071887068248873856911689052737567370262724351546486789522733913416038756226546679518386435091861595480867305806911707303740815303686260741392936573858913506224010301485567178893426132722419809199844392019445309438050406080369583557687397541581841127969094666339676160928698269667185290271669093637666778353041803265843514899877659273370719387186172130115548213175320794183683582041150051760137350486579203743344618499505028859956239927010752798845859272012352610999458074296452313496791819147506681519070566809506506444494192207188974172205356259569522540045800238153154531572722531649062448266502399910286619798960343504456783343471900770239492176626522175097337645833756935543015304461335630626145790742990163820048171006151727362764719373367915036974708428306094115344295033181588155240404475310105859241550302957531909685310083795822811373564849071202241456824939168850048409882866257419741072139978176082600693240291228714930112607730329717343480532906582264647280355036521350340075446959423280365286922898330407309374552575081826874289219736185666355699185434730135421476817105461489267670986680029978677378602740399349173179759523818370015641857199277154588700732738265140236328699691757278529228531947485525636239807779715029752529550030219638559095069767226468150834750563657463942538770555795030016790762168895347086023034957373404530181287061684095726767846461155397818024055202349691867185537212207836076275251631205538258901991046106623603310560925631735751196839509077998324080975145941430794129628785514089561166904021602947715188241615135643112970844363150438124019634340480425299788756304597166370642969401154949885370505037864280491048409736524235624076650187352870914637513981319666717975599929703876219280367938104836898917576242502699572647733940669325707627805610136869445902211742964286304789613142127089102777484245794338126970358150217792528543978936230306921992502777663737853838826387345874112878464188060037991223882857836574928979728166538952896392021782007803002400036253793268185065628160876841453411244857474200688972099873695212368911537282212336713039352469693567947691473314611044071380481861278925447199679620654800422641538236534757911953805739828504934379641919813646242132187948063509319124620100131022185596151949751373711602279098873077770643602137401918480106093429853253300797830978321992436990700963135462227383514063430649134357639367280605949942057398410245356664271033170892684540059023586595970247245722523741545100787125640675953107817299716082191873795147389618346501044296676382680694773768773349629018230432860410647011804530177297825796283066177302867944649165421813814826419936285249528348640461998394743151133536985606950569920144190230278110291627613948788684740730453228887227282642842672924823025950373048617655092696110644391599480316894186739966358459022048390857695668551902070842507367654288420431740174578634322205782828555441266378242103471341462818390591161912546464109318391352067873793327438259419192602328243832364203635425940606718738002703271941067169499619122543652137398524052451807834446870002912728579688791851355117445329385419531394659274964086271306157636362946482033338672844645962003792190093673357715610789467009573337868764279915730335090084008698422362807756320425756454776727981742545467588443695440749724893848595308557983624232851700853709166140185405713310832949916450174791321676507163694809254958274078456092238761653502389348408433771129818459877881807669645989851888876965392594646963131606444191993554917391834796619439147525135102472463557740159007385892266944424133361141904593670041900995810857337634005031187630319760988709498369737207676358909205214842115693428637070657276893241051657775271047456412639504974214568608127525756219129610134613424606757188622578379897302515709990505753248832401994238048092796587505299449924015095973750118981810563561036563426627964440796442398289368583745143317091194093822574537464446095299427319965353352250306856035766379177808380177041126738413788561479252988865263972721426153791174975706661653880027043228942385114948294726718148935027211801358185839102680211853797945363733364735985142414519384743974680929348122599552547758598666773558413749840150975651871808273634704083198302677020692385006733713484255484773276824798710746690195227909121279844243372744804230779565365699636763115938804598321528915397019942665348875367707487826901555871614251243662041846366384473387168281258697351431607223156334007747690159377137905115746268716712951870059741603093390639119554325373860427114218784546841161172732911626176136092213246697727385851282502648075942330771067824080893647731397342805207051547960113218889697307151776794406253635999554972994627707033329097545321495293152288301174985724323714508332646999475320996537584199756011715683636622893575604360645395634286586056103541902678225991559061103056338589418198052343825139422593977490069612876202610748795056107256732593302118298006128642379186203643485863585245441708630163989030849797261859838745417441374832001331354303455685828380354894707466126579630383169904738706744134575111636168744072866294477091302273841311595731682212931533804583526145412125244759841222433028401497946082766176893415475283891697120917403229628239704985052655688722233862102016461544812191045850294052815041634895296628305267194616343316237615628880376634214274757888282275275912813706855851583354095951822880896592262528457020837876692080158314317354404267779342827981031339255446369366286198383490969047281142590064199055421351037158520867086127728956584449757167865840451873124937993303788236905721585554216508175207284041813483165915153130957231149681293921108920533790299667345984982994133258145039624733255564859973055619517953618527498592353097698329817286773815579439902750158930513713805052905064908353698726849633942760874080831552577989634554584071984513754212277709638511782490772784908813538811848820160334843670643744760128566701219607150727348263720822112580306934269256820084213054526731016930318522780012198803219569438270952933493746630578972448035449305736060575910722113049240075839968517727926200479356135882189072853687265058350345086103936472412870384440971344395592382591765441755239315667650424323752992552249437421614077338836379658646382642698028546817406656926405384011982591855179067261618509832750947485604244913073968361032102829284630245399169681375388052375410349390408278635629337515964525678969965767525966640008684038000645509497214259953089779932111664617135481914366252494565191031853417161155945921886589390112110391566862116024938602652623880826616028938127467352489313764668011613713171200851154355997560608971381826797526582500498018612956372347208833293823601361030641967036116456383918632702816724120528838407436705472251250481190527081997088410952039947124966461282139902016027351701386515579980921768841620941793536296504875097805453002937629945250147098495922370608483699841881500497072405852892139745023904733110858819676775706979166726750072726110791394619155787239420308678166771274832044908659932765637469199827670790328964980404000479820479925136776766762546189694137228295124375528949613696253369687633362733741231051089937274516849843017496716060678911578542474382214668856924651921622001813221812687312305438537236597991686740807352460904987830193170236153474238233234336556524602159279985796140291009098610872317707895489442981662180287883438825123730897459994474709142276330930007116442458752876856671854478731621271964904287295761316913430096257000580615085091717655098181396600772687442857097166198787316910376581961709598806816134074535243947616168389845205161681466856884474299078858310437057147531880643993326446414785818414001023777461815186995276240287040304797876659039712733001166613282628400163503244639793554390841783277024664382590195491657937283818976932030515300669831459470090118512607433986071929638900684774196516236866968827951213231900559823108671392882465020706390736077873639829256692583380750134783231346086203665556880388555838124992197052665619105788342840594458513494113448364830362987592328746055656902410025310295645651849330270275851704700487850792601030481346866149736617780278702460188969086877930753604984851285056016871335208855773048906310523715550587242347160617069499542677967938312290614828003868390707208115658763231607122442564658371353389137247054573663528586824729951924066172492732741820016745087825644446344879974468018201475167161721099028242860329019302376750477332372674298112009407943921248232506787945542622146875083492826371173461765224268541935764939022222988888809916011153728407934421135543660510708712581166350516145085034446312897890099199421592959213973792333681046616236737564410328601927044145454984471727095939653031122340465613068367469787923216705549169437717806450248601028387398462936738793878031453357788288454064082172118044600904470273034343916535923191478145817032732604132014978099455023178851460929352269728815983635931613242733664315612082677623919843269505390437024323881692858770801208217728676214562080174358151083445174156631364902431903705359937367582796418245274412838755891976020287894411864422935511492588334801695435639488878618712693883449488349228603815685749399474582282184470813523242477865424541553721468496086914878906606633478225068173611037070580809584811934316862952434333545929047776303820308560078860353807935981166686232697383620890945207181941179453819669388409806035723827078957934582632906384756946998629027412834986484968505262005351532486166375480019725213324265611339233976093609670110112480701426746558894845775481906722103779016236898965148737441850910454382264854319399415145669378658745684708667298358453120111516052149140381403964698678404244914728372968406135720312700179736378518685628334167044864273085743891640569360255063204591362300676277930874746241336588172558147348364820075762317997274634032216811988755991819536208171734496323483693194525751196289485107003621025269659474265779820691757717101806251813880551360044713201396252481308681638230183556846775456689079550673782584665276785315438971195811651166133342174437490800234917196432993296240088387318533484570650426773215167007192370597260152622126344908684476509486588620617548230190177784686360891959127003581987257492218500791295474656741718560215163033208206059089315930009083492419351200490521396095547105562798331478910143813270200016450435467061232203408327450260708079827446310821309251240213060697825048593713453280314925459046215109807099533729243136315389424327301010485158211928574794293475582822125748548275454684724316277502352179843254290182839797835173784937554151862545881194623629865844870581731360011067591364705802383621132129617646235020821350992216627607839132026009847805985631145236210699851553846425527183141708236972873793955827756447607219953394323301754692257787879698393258593931097993705355045095159707745174968149817079942713830847264675482456836697746428114979983412999655705821662529715978636259160688299654749510625155784973026674664410736085307880001765813040092427015066794018431367574532709912637373885363802700934437383749227500254129246822601936774116706118574114158177999662825895939989869625287532144239446391230531872311248093584864328359493231567234427877220083783475572417041409252688009563368464454862126801689789428495383917204855393987427582362650825044867520625685083238754605561192004971231323837521125112388022035611950211932138951935763143219607028976351594859318630030859037763122556107736279459258390151736168092473834763197202235575386358910664958314744743579667159149081881722015145985905234203703898308873365167752065912711053124896998874054322863065634918228599398236869752845464788989925221281449711700554613164185063460310836283661595149617156878728567141958914900667049028495545395320487726965583068108811369119805062622686410592720519176286173207169490970891633436800603554247135719678077833105713654324889176516694527942853586177183771370389257435847997685807133061028123893236798344430413531959272171981634602982505977874222230165482142432236762214739872193013851100948072159341086682951767244244629015650312799125907278555549843801965876581482935188330755022618541249889464122237598362341096029133788256262023563025113170859505426215137313764644238239328519725574786809582923094980217469578477604380316447706488502132320962553783789915225973127875631697840344516258278251040641687024686901220838353653579763718136084880445251993996116470164798669743863122558776226594477929659388838454447615154225556239408789073651839706512518033631981480304782045965970041764652919631731895628754331890273962377819376332863276414206055506446303694412318824335009432141568070318135822512428696095918176403463044490658247210030003771404605069920523070742568720620849347186659435767488771484019001330228463493098525987553687136357623614894028454049138856854084992602671308686014323486273366092857287378206198630295229409874462418999596690696035398304278773440287155277275650522289559705501774015616441842314319676078592457836020177405716029532941768453769378333247750637087584267238555698380472135585700994625888145938366354840659963592894441348044027648463018989300687042682604734290943623882840557436240324845117266722477661137121803633510577062019900413426160418700459635951941241045576690179924288807825154591192885559563827693346356795835962089934796025575017299001398246501872728364205698361498028175820376616920653890928606116522750279388391923034676985474817552083554046369187069035936295216681405713010987044240037536694690800214940866632504715793642436349089090137360000174716998787915976246181352417088235716784996265762564200642617644349500119557081661933569056438831784310699328237293159400495057151928717967244343154949845214063184759419303012252598265188230521142353670396578947416115200898780208624073752768763143434595568211939882305170754057274578912287460102807986105685030085155201175914580082212953008626797122879964404946265716298569049780836347160328721718901031905163238530594182928493391649772281022650525903375637541657710075795717805890372325043239434012669150341025864011728365552240541827408548154003467029244773612652122797627397882894898183327409890143370438887243258640634577854278772772448751381968238418637468019617857412408123789151440813040829361614460365371971664744470040157221630354105253025672955038002606237756825358624898665352562206489488703276672927166401092423098947772775676700335298395620524755112853426526421113026287228196977277015809701581900180654715522244291563360602050138436936904497187938060207571481086931831482701237204391349153152087591055823446313505162822250360362761404548333083398305512217953838715035613225731711108817067267092957776474576172279616749844525157658459105362029201376218334308654785664441706849677438910337693471236131578596051594857030720426913441039809063552908368795488092042863871166115479076713125974980145786678094809679175332978355712552736019594699353623864578416573097893015003138370526672642006812527389792306602893329799033868258689789027366234255778680888787329001856915430289896479378620490478537227274308838675163298184766582467186074347019672247578548040758854570511287201476125876853044862060777081578140648502233528925708069877513550318492389559960382205953730025665848554432727288148654401936067752111214597242060695118976282638353644854350135976199139311154282829638659869524221570073181828254391416033166391169460178305218585328313911049739180167552634392933438313673023249385428407312687916940413477365679961251410645410623535968794199766766730138398858355943877442148767929492864765688256829637483564599199896142914132329935518250035745687546767403234502057119308545683643974357620732332448334775331284952461999928557634817796915608471577876353659492754869910514730314992872686127208110042874739108755268927833518847299536922528050010211709733391759792034096704344729059147687802479951753057855329755434223947632419458067339254387395667571652966237174900554471201042007230880542101620589971003105635262239987988809694268355374214515905135371710799341518796347958103721250214565145197056074867828555919559726773480599785618329766507985494072132916299835068571673549720519338234898248616304302339291384407038413089387612371898874324131045073084704848349967448557202714402362176917198832013209604031318797657794203130183196432622343660294098267805340114158410182163946368097663471600905540468105677345776965586107896663873144690108767753660469743351295363910014413566270433951291910046328292606441034094911834709955124640748212197663983976120005343438994359295280612243691174193042376334401718278757442393931188853246089034156010532395243834893293782555393857226443468360791866387184893407654134205847716196289159923199809161139730909528906971549235939517268271014594655153615108414748694609242604069178685784124000708868606541935322195468905691807897483607113050870572392598466340250672005871536188929238425242984255433891434282038697994351709026389356834716951935877668945036810905945206321332368094677055537352480141635268617993398081769742582986719266082764912251035372353650472675144706363903176182320068595129194910583524412418222306378859017839307081438359667407478951953943270172329796649282740912677710727600938938918795851375856540490136259666917720909751526753930519953747034220328225131052219906484165543148097873608425926476848857194942977831304619560527557704834081185666553185116801246092633129589308781458398951886306670673840798947711807955628518778535295770180385344990156163329689266459536456262676066735595438300417633777850776888218423508558997033854652333135544608209185311235753809403029908564746902186635742158981878901782943109639627386463923338469525570717331723481730500334177644112937422965517837875626900043595985850783855691597696608803213114487534170662920614571629895337999248971888078667524537141668178572884518146379154453848629812399983465070489366252120503187189710175764643095509447533992056412472794563649209782306419559016026898980815363966778362640376223576169249301831521933737375224880515533749935918801386224797644598301104664428092299172873993579081571954300974060336177582085624257546500357886488996203499996359398851466929448382716638807131004767712140890587210897290361879980452629411105618709700018079980677700794293630685293594192137798744670092789190287745705821107278206916774921143334848108640771321266878114831324033662768707255816391318350690404476180772244192552557015126375821150832959672594205124914311177428038002103536902256460516655519623269414061143572735952615192195404322688428774276325489641023259814504520291142193693476024676311105790141296726513759699925201477996944445615004209821314540193744208439006876002809676591010773093632372003782938719503028016196490277722255509619144820560089295746983895912342823047183356656436167089377930429587820187143327613081782644637979471110910349198653310512653678647706147016164366927136632885258940234919401794216932496736808175521692065804348430281972846305308694207975836633150761987868152712049806395492633680431151504335850454740293063565981751398173922388617582196926261292843865493184829601889686270267225623526760374403338776968276982122311693732730001665439672850909130585209926793974573298454924930285842408333217703287109410815125278404655560036318192920162181409437829756974198175264360766442855166533758159122911157090665519176126087866716311802683071270135546243190324633355228182988443353138211422473428602365152222124447258710108897211022267725015366762483098183927723912227620002612331953019960626033969074015665770636721921548051646396689084159661561909172755759694853097432645843480600102608025203424734827564002377464826873869199247162331589249401052968654388222673859046746024048570417218677182040390974096586050015991945489599709349647545223544889585615503916950765146379634836883547503106616499033018236470007910569231414021128972117667200487810724157300555744110044093052867515390270817465981819429507730833488659734304862662346692682965077472255912558124188171507839950712455697292352895131859964353644754736709987297611489801198579857276981286917431287894364521120369059159884767877922668741921456158788374687012019581807846666118599742767630606023887393695296053303210378025107802399362424895497572648058037830970653623511156494535511750768589272029911313485778623842944715057262408977927028487783871921440286533793126051350374629175297412975931440891641389863400633775640027260428073444399235027135688330351103078395440574220598262708218794007525632741409611471221946682328888678286992422143273149993106272521359494403932150945973179253982570043320542103445214555946555095040119802725406904270933770479375664414513445880064732810643439225714340290220043863417161748575487625889351135933959793855020835895170379855559073575794680673270376202446918637330434872937646706924599780843335447517784139787031481092758381096176076406756523284364877117348358796550856837128059576788276798398600443395514245118042680070227982899277214855174351353506992314634784689289540617067465957141445289129187727071769100046677310498438904792217443530710138069786317161217407689597284645896197450553109728085319446126487945365638214723108197846688419980063396307114483610822416935368809349922383332052528160550698103554359482703010156143668693116979141724213631334049829837357122645930039984836680708470423040170295446758922308922523029234685026447350337218557665237356715561709064171128529304167826618264385836075900284152570771038162104433167513809292442921834374589307527273028432615453485936402320237892336345188524979155873875814680728300106723826809042726678718475023098322903496256492039851727878009899196614209714417362914070223947027928207748784644570086561220910213539891903164053903493782187482728859554008105609863923201974810436080552852877025344890788716368132113576068092144732678054729436694552622113966729829344167754844209474464326211546508471535628851122946540357370720982385075460647554444401364868792245948297004171010900101098277906687724093499423284150219389288516179481365950534490559833722531150786615357688240377123463673935604880064090075888733200686009931437158507398188310312276707284009793563474920662292983769518282008120050052051765708853172268826430004865793525186273923815033318061728993293799090824299610094867393416316548907393002791840586380839705336991684503667545849561051551165916246909346371435286098280842371470930469371250297819630798247269001169263260418635591723291247828362638539028103252839375605703564933575245843925157039920787041119566740230551628377887366389536466329381761861309667959165873824665496377519809889385449083918577097094474803871790827030282384210087614381341966287607384968524107317479493848763140808436913152060107906256602156939066524997033542179101985672695369660059661969773032589159715332172886430622049408606743198703942959610025461384751594638259439838362116106862015317571616793505178745220219442312086186959953191822729508644878478689023563649410156600286636889193763180213838631096601742827703653942998290771675358241815244083641400297781094704523067661032353093515001355019740643308158107374040967391103716662274673226400185103798615530152894181654929914182404081443461877716511409687155900893649113486153753217749789699925523924643481208130921355291481065213823197535068172758074626221540135766354261363210106956472522939027716513183941039601636945263590024552022464251042226975024239549101812483689131138766945282890239712498390342078975129880319270770087443885179492834638435609214874528024819236916826600620541047321342584137314691018239051172111857545499396906215684873732813936073998867956020165586431111312773877671055890821733997356357974617856545754999931826787019881230240621617517347993406063133515901253648747837471960535248023194695393695956531492972097910512627023079739310569389722549951588634921704519579292886049432726748551746110993396828432257484613663489078932659304179198374550105542936778046246791229639863340783305314164953656325236894269609427082987079308311806666403938682550585666204261969924018073316253878786081119374599957102993306986260953638796338920776557334181687053499714906445603332287063203439230858724293252417443471315430626709347759177731673251334265983521128745349930158684388801351369751990689142586657731999089972528492188257474690384816830182742505319100319730144702289705728085739716346922432643063777523806685648892124208403290023149818547905527836555879433540711528757746440894354981223107881840006257458086903780207473799373284556827610194383696871085483778161850980305238857592144514450066731181760781145774998140867586775120681506835639667654421007847345006204275773065359326464165851483992059284623220149685652788823924445457799254837475173771839273526067894285858809159807659903850132748966008156811085729394479508246076430456805403326443522669874356544265928221749873667768376078522900325821263621941082352726543777972169238772019256466690314344393795290852158894404855795421841381539711090930512342731005827859143927263859332494208133724956423674336128341003013344004162669985332575266508988429552674326852026719363134058212944619161529771154207720504842287241563363975623926268303854823801360418311660495424284251126576082827247851167184436675222319020328666079870308106769845275639209107304035855188779561902519498220455124230476978594640854199619046005902889508750231332540428888029354298569444653611882905351367409353063641057572755349940922090865648216489868046903659606627968378840237363403127772207115762234829561402353505593076405340311360236855065208378916649907138813485017520917550605462660514508870205692090050964647579337024385537876777264249411922049696841116921635046339376766992059251976617778345621714881074280909468205798220416811281440098898560724061490314244674210716864809446272120063242686118260907456488098769854624590371823452201327354201892805973667048241372054840893604131369742847946132445226767561450160559876987444652802824172208599649194672099542185769048747904946430775207494882159915148293046910902909954361911204710461633506751705267945204224790628136402529028255694308955713595054136939740524350063621096178349716771385132446865199406019457766152425525978092783021895675955661794654472849163414454508353009602873282435784933119717012464018490656946012693180756936054015443206162579156685043229176056461180692963571379232839091820881787480221998416185016199563703115190953552847952438470904279768635747030181395339165575640697379854369611190057289264689451465978965261514858401261303616569849911661306776777923498467296824246023623800081869990127351065673623494598545876929632599974662770171158223167511768409619396287373961827072671319461503386718926235053918496010743005802597602389967719111764549124998877432492661032488035267254759847251014741305961085000411054922479836131795282189723819547128245624834708622717522035661681146720011795090165606786579806872655702205889468369167579703641662022686079964766601297034831346962113264411776823416561304279459823557586555943028035773930452081738028570501522590597056440252500314823214798079251412959940823261012343330520460602549007185549577009868054933188570660863323135801997960169636795467703037079987881081499388792202322222105412609258897245558684055827405905664105455333636756427482063187350437334689862856559909051958124405364163565913055916144609738901517700440907558884010797748879189165232498225815702868921159211208814199182790164658870888383676750182229208095786167569550596003978540186671480145309060946865531197932602236669159754886735682545218530540655042794101281010394427011761048561254614982820207537973113333719382188865559221042171410381190514336500824669079469036787491515178175569441569822837663711571551820875081435480051560516552543344819634701215009302705242116772469068291490541935184549200632571127273149801054026579745871163470268848874294413173113239331007091985090017434513702534650343686699978435358696001443557197232167319286069542569980453845233876774150933543004750997021863776288462885306934085888505422566197519626502404396521840295463589048603533502697755289205564334234318701714370259056328776618116029988938975827807620964021479379670619297222532419243989028997596246726570921589940863901775860348690070353751987186243785103800932481966772216443187078472840279478068644016372166320680629488116169177677902677970147870714056888601060170628911432693120214944556240843584448064981952661967799537099140110632095925466133738113934061945447954334510316865634218546757059610482196568314786902563920190049623475045565899980547295239810020031446245959396258335304205727639400669792891966552839115352765238780196514374279658275319884000079678189931450998850953495581977940237414382899334741288624797062751006788397151253092554749621085753221274268606647721776241449508879887176439848623492584391744599613187024740002255606576368554278774916066384838128476047821827929732252151895608494251008840570655621283506397343723397965053956277889836359651864355242174470147881610209300537441375439620596194796874025559366769941335885594149787513880371630962628459626517179181750596293825918687045699952540730301868478700035526165142356868357712896146447538176394498813172822091106925433323765610335341108077129980668612975937644241645305824786785368943474297996135143235533546027002568984515496389479610166392597406474421729727220732263540947141341298931915560075244932920485796791436410628143836912172837846056048913592614661630688824242040850665414337153844591253174232924768472990402524613751815577367081280239847068811283987427183632693296424479581108218050685996446553674292783573916539156875104611629483353169901254233595411919257456279592270874907484665430098661376465112941407232505341344299802802707041248976164800881606298804099719491671506230385293901602712196468873385750495739073920243674452644762515188263224356119555171711961627589866476472461343109870799189136878188517587345304881319635787251690343918697733657090907519385347187704228761698631851883861105902211977560563606806334918696259688806237011687478474212434835115395461719803255363886864194531754072236337211796128338127896721103374699280508650258298166083164321938414822558135576452838212071857983825580235578223985343075465502223969574693314281127002295682516460993748127615600378679213176095687430125327521211653402684420007048192316434197159439550518151332562038014654351139111059911783912752704136591712739337745712225399209039895940840834878413191214579694533372650402181090076144661374222472258519472200860442609943140530448581031459871399137562012972371307034718840240089989553010064126202135125557294678009709091952512468916377833874184179437784382361132752061276285846212858075746116532807518825485206836648802908161963231967804961598767218626320138144928165288536805791795590555779024711791500013158603905801535604328754441191913408294350877940034500577347988292786068474202986173926179285564971510749117295990190130830446708707731030497997835936263483749479133226227528034374150533173405822300703008392816411418009268440940135061764063670636347211262122272126907163938942869459469470831560768745170910467811466233222447715600440828827178888619350399642369980524803999997253639804502017881992505923307867596946696700525182638096572510227777790483681091961331402530613411760792437633753360432191705205754411161930934979093138028233421482483099663320004885045428784733820555296173148344397711062597571193948371052223637434391812137138540855975102863903876692899768687903902246923902442547754933061051329275741131401401552471230102589613275132693819540300194393269420170292459188486291480263043692866813780639543946976725993355076977226173334252713928991955622707832699901005052614389212999200660161266944410267948503885580636523230519196944142878655089184483210336126635385629304244844674648418507063056084848203823129128886589000190837171838423237588853809299959336851386243354944427562484327343420425015480625614897577731498608744698111001871857007724932309565299714174890477184479762425019246848821283157479512643533900664915053280721586616742093164371615513105762326436707357861226415452463909158413324126477901410700508934021455079650318575558978877707405608639810712408579013435935824766574550264857827003567948504274480795472528806920375015050436146552098401059044678353941539472552849956336349356316043417507321486516840621400744349282347048125581242811784907378899048639428399680783861795481909209474448652288369914111472497424731055432366817910528214920574842555096554839152505946149883650033612840436529089237834541708306961752151493844135096570344370895244921411285613330451873589525904935014404675837967649321267374631060588896780631636700388845907593828485705306481183252662289210890844740329118033714030249463633927429721506457352684950224935476060155274292513994284552989740463046358203697422612683974662592940084949015324681514743318645929389921612085146860200958949138464630121863620054557448310003107442661164850555487044962351051666600225113477631983281219726618785123425634849420446808412682476388696094468625752316863113545886460381167973524494914228424042556599194107138178007856616322878544554617881753318210944945408989168601893496677079238355389108952497773953267979287764818478511746241130731732697634967645087839849320549328381148388212253899186038185670555276964728630933097005457494195347967966690885001997530191942264514681597490867638349425170669940800116396789048936275611885372768376751213171471199517965543510417854199407249805639823074325286015783985194615392085373864077599104483590337053282214271367257619510876956277734433956325246706504840172943720835814664878413734805582655813981790807567274919152937752347758518904196964580182325117676746403781684861451569048600692867187639317153452614185438240443605521435057682047686634873556618797506772363754771504180761848285525142887715773442962982547792693347050544095804259898355041984787992789297542168940955164397829190520381086836202964663651584688125651433059366307822810418388817802394303735615660177263774010791027349680186115713920871812137305905479779590133515978965413704896001987465227535154554841826131615392588511470841172604633082304601529887572481166109644818784488770529053372144565463773996677113764400288139233262003128428481338669466053467073260532919458162928973929785089096378454530499124510282309819627425633608577222931245551643457183040576951978056296352865659610811600991041683988643244742138219224759127692160260393657844593959193355255425700731423402895115493760454717536956178917603548389653617002946148902899717960104684103398942275232287543342063832321092965480514536342442854362973182344362235239272414970828681970158298138395309586809348156906384375910738003839698511134293508131277512109398094335890926111200123372946271482115593871352994270831310305408234150135326905544187183423290373110038843652445935759375831338183466150526110712663185281354714401710799133787715762896931302417625243370562367625576626995009384091866647533569445695667060973010524573799283190217265730331437795735095038718883880683531430777729340819308235534749047322167729654849439468399632610487530029979040709876405117433354194098386807831502668364667700838054898847531712342249493747731453291176651408198430412204881851727415765944573288181156729452725771692044404738366857650656980016967882778536233537078622576321782799350333648462292372946404406281494928156644330787540931994441442088029808897705618080925559685607561159721924418480694918413818872358135949840011668877884170365062839830894426963812232415703066003775295651998955697751034893399835449196339622485302414199565002483613621315006164239587555979286016517048994737765837184737688139450872623713834039140520847482945028020913168494002041487907326011207195912411059064792676760051995278195017156021563263251303059722093191753208276254617293188103936586094836477463473628961268613498616235246474598364254622989184811702179845704368933757605612599113865547927662421423429236282967424180991439640297120376366200835152104464143350907520913832724867765928246358047123205692432784073323408934541588030392787274434964478978861530208443400081449535231753555082780993817329287139397948650824702796497919331949222691072339139069284751955611364689729770097691643207150374315127664795053509496575168322131260044085923886687919562400294298457057728861952591290364468169398089268347469285355970767684230878901242685128651810657316145547808486767328074375755925158384226520070700884725247644253484673609939377655626056947842436816275814356453659247153150804765939883606672163360892525569725897368664842833854774238823309169340172318245873161298016651365608054415683024525195391345358970179824936658388391778107235886317775775875900797966264514495790093020356928294472459984558778120585920564033478951841142172220542885222676709185810954091030332773269516586323306833684223037707987162738867700476616751004072317747411896839502021174199107625879029292747111702101017341986209788922716322212262280799221614980571715837778203181179000104397927520734047548422027553963173700543751843499416636964643652707389533732979291401226094106649688377720706062698380383200155735273082008617451894019295955553463824951486848579570669734076319790254284362350475226569549623278111811074207178138137312358970748511708553010758800096915458308780723683180748814946372721052523354278455612626357008562351761411968047170339515952934148519416386009783536249310337094627221230107823833334492934854371253451807322889076132276752455852448198640113767424800342178205280889303037317410726177247706086517931813071479864231138664597191324576655196318855235743507714044344426755720093447540775783403945472706314608037594093038031286692753398972444887597395051758638782921828208724864403221336461283778670088587446967593295542856581490381052816134170809322302788201821212467436613216248588709400954859288288091483156000800851880908549932573661305375239516690310339381597733550573566710588216172816475982416256431755224267858240342226353890802556260471982908523706513219633187802818849150543271862984019694565275473590136684563506834904518484914874068121797240428935288085863225826005377773292458887838616189691518287364970791858757451374778216865558681522371512061123588418977703582981230655131833557855876939281006852806700133897495620954043741517327398434917160669176373751891651397885427334150910643755184354035122377467867282736229107817635479722812424886548415808789222141606050113507497863321195828958558962581615567888820616521482976585376005457102217577149027694235030238759564895806426348376419101763568171716706891859705496345930585670181925748745956951240562686022456444111277499078484859289704036431669412139038546546431175990493111343949210095647128359186794783378189337392978554395872149936834487060860229272331591596954424507351503257563541163493774885359518645170831542150577889761721668334106729990803289157901428290993014449631007933287381874705465554979121704867105338883680357306537843344332105119225961127298737334579342816112849457672557823009000336474113940667028885726505572556835170790728203985673478483693229660343161396721202333421166047663665579003043836242263497721153725053004403618269292921083486711363109151728665992129859123601102359380048449575597049691622699875350012108329042199311697698806925205396283223039671637636439479587490323710378623303994481820374814908870760487330652481989938311696777931954192444026529356065068227226969863553999030921886466479564558636529931724929468958001533455001949064324933671422704399868623003060737052030388956785166938395491119642939628024777619112830448094583339499033623059696385453054999846167831668761347056313414029207996352879841789892124869735873634089093130650649393411203303777786234189697924604226727718753752970312829198612543764115215744128740912687983276548023016281912577573719311176599658672253105628446196043821877752837043202085234880442875673742088559034109282471120730958995130795684361918845462908851665112271011500931683590094704366987568796935662700107760018995209257596808095626636439122266780874950380811469707631264510820227907445230279063578051827314029453455467382745187648104431338714366627412944478935675903560469503786721982662149281953003444944935183655954189961112308866036619840418505242820090436907485602128287136245136535045720740870990230575933475401375892815506981827924839079319852051178956092962762646364932653339498476574670431500474637581784416610167612852673822117414579763250241632758149078108449897696060645705830925723242132105419458273376584310002474171804875040500092472800885359514526058876134594987759261588276549412771945565628603791730826700442341318984844701269624615927713925739083276829242665730526789762385207531275563376506489278058039125553333211762506891570046269211081667429658007214746803674119556562114984913721341337314197323055961564432988452517977934622462962199027043570920783092110245194520834440192547833833210195151092633789603531819237438391253037967253620736283834675465155300524391174032840043590055580501045090452532270055733698642123471751186880276712827928395082926365392067843891873192772120231277119184693213931184248362036750948008368182226540355926104132103828527686834285058239432029109046092224044238984377047154627268964543135428959127792885045612499515191306830610716566344915233881325971313970139753590081454578957797111044876510594740943750816786168590268509684604659360837313615326155117167117773053936066705980532343113924817632422359640080847887587378185124571467728221686362113607196452674795697352067835011872015303804955010779224011325959055918095721895405059222725513994932545812538323826027282509092429425212287818195040654777617002397558812110515465292155928685179740328101815175558767858512190757455193983206535698381142231324092016911421394952277684363926156877074556976498515298913674245028812027250990026348760728574887969389971695091895244388941959555992024322932876805582938495442997052150396168857054076201076082085259243066888125505540883700139307650880168525262703743643379410349999042799240322756959129823865317125707989038378164616533562427418975164464487226042363166616237655088407105227284848209448395848480805656300274406803217702225531800964979936397912219286936233401091452516348274697333737982980865210322437279097398059286275866264395209890226420615474726186457920582023738912943930142429516167550614951139404824392658651710306876367448632093828175458073565369621270753422189398214929352827858734826170600853120323156630317742293356309946920689225264782537648048344153521329256638982518989437177068534459337497319265818878888709085542900857158456831511800797728891414848048215429659526517068182537420558210694729416261223372117380981622024850912255637032954723939896061614085403616500432100809786650735178891231347928959565766715102770443015769090570988153998423525522408595781498185362008851263544252402928807775192500802760527433388190957285000535109065585246720232190556861305988068807352423398367485404165032841498626590777258973624925587518620236535145162723866352936760138498706187313624913573220508285274415803719807686809571782187530554934072684668715000112992863752800423196596386494880585031831428817269465123079757047437937984801670340606255351327770467921740678929996061550472458603982384705360696335324263527976085733562890263778590787519600733684366109609770494958235798369492723892416785946847559570179483584302397687833341015279173069472524569731831787430375111618597832730878585622315204093256346927529348161167339941573099620037113304192303609131527729783301637795968668886438803593497375116505342685212398504301751830923462020877856204274120645967032014790221611757637288996500939140661289902158901687469980960074305074727005288537005857331668037013517956506500574985883113659143720264687100969919089035782508274553998187022943256490719801765991311365690531871608676648206224120118707654785421440786718174774376112445774060388383367658886351756625781073476825989262310735519110677609528129983216879692258521305798109754488370731123511936052851449321639792348314954496792302184294103404543808489531896320493859214667028103992287165393732033076632033667570980001190269899524526348756394583434485014459364217286943027266032941436426969337030421689064051249929445291855843103603531734735336861405221719466031171977227641667333888737444808891370627500892600604187532826904337736096572720279391265379001472052041799042660166432380518765828079176089521073349388239619248999528519396297021322467147536432426891446442038007614996787224850393191192994335603237361477355527193351224404430652815117493943262860081887332842880312444710957986532290967247528056608591081399056364619280557691303445916507463870141708485944807719768517817200169823611220675363555064255149135060367942726567236175968588131450196889600270677575941808581531227068788886637285075340903930746460331416739106277627083014010502640133638632030729824211455555416862310586160384177169397213912659519472769864656730007289323192578655997096728619464235167265636033124481729067041739525855307788489876321268371918333079191379200570380283751064507352560066001806127327788991223515745062173691481876836724725355884737304805184167016051011788923091370376699915446306447590628829023149095543949246232570963732993195998236573769487467856181049808646208175894470113584215397609147754094457824667237458688536526485382107657727026660842892438140325135286158496961855924276641427867132412354364337589197195467349552948088969530911415434655746948814759377122306683003294651093047084990993698106195601069177649253966877012510654316204200942097330508516535528675418000624808548062699350768807214895090854354647575182641231552760928254199212780310863020085622724423823897782233460636792269586533326438118252231114968339674527348970120236261214361419386753596146212380757263618648243385695252007324519026960415224094352086036508567436783854083775240470006519019424726585739660790836635172394363522319943302808132185889898504762673855143429258033013674797826748480014051211006554262604322940705788367237129101656621762685965331117791916939235113410109461772367396247034762220346733461567102808766176589464466930924289024685858657547130259369820755816385167792462779912773510268255142765765028946470741965338377643634116407026600283204130953361137749094392200812487758010076672163850382108779125574526855678261926957912953823641982111012300865054732118443880724857137948796226056657987454701041882017241860774058188600172777031399801147922299994465343989276228586027433621468546974789805978545696392487837545314324730177001841787661961392926365525979181183138403654320540643348673115408069204117722658768942504353190281475373602205033330840590211173744325381045932800708723889821694920105496422990397380957780963148567663051924609658811900860142703833968807515251109593660109926391324202872748443636869601756123224814497991126547943607246936248824385150590052091469610543780388537760074875802633388038077887313586786907990719075498592535776747619525424815349729213232869086751657159495499376813497511186934203787403714770911796662134852607505208926776075749412170156100308287799584258349612898289707120485052587224528693942044912036659281381203909487187195330666359676320202089593120555288379885025999046636106151191426304714851251651638097451785394861254092374417349888905871815153224523043001991670663638537897969893436870929325333804359252296921104752014394049353258039468433723230050441213204420400877791681439545739647699352363513426191580492596400738915797018248369356798752583384203116618868083078250375546113703908981232019107448289513243782594320215796015783192273680730366682399572527414711412410467002636326627010958722152718879459866622929880358510929670555712316229995338749243918813721435241647137360414468763132414234121511994081943469812338622881950388921980246516787730494127701277213739769108645055348063454836635623091003566921365814059691817228081162361225593636864332350698958772085879941680196082958432910597348744720172579668373816517968735772556782841155583624120244542552678432922473250067026843889830589221034509191449038904127174973838917621165850487915365423579445771099929171203673887229471812189333651563364932528071662432256843736127853167131174496667919821148128725570403171893023298786313041021976839530186425402675312530604949589859269698100190586107885563326655884554339596403100128061308723669874232636367877836367762676242727642226964274689271336738024799580108937332173513473544702160814341789226298110170219200593936937756470265526089648390049009185798414931978801749714776548601831445299307618062742935924189897985491991286185199527315519408777077626828516119364218337124731508559431651391058146925508659819186117787924155906688976865878209217561980151886086535855122246843765364918181767911981866819301241710343420256293433978240531713454664902777421700287985998637062243058987265987939141565349363491097652315216803352747027463137669795800099466206908076870196787206491344984213278784764391142399381667440376807189103040164595096660650746818782880920456222814911977083222433050367163553326463263735911726696799503119279802559204882875713627702691721325457971297395788671833288510211858963285523620935575664192197432887810705619845659814240402584745409100517770533677077241139807290308085109451156264411300204465795881049449471721093694631578312546893187283457069436101075442158954399565301014963682625563315802930318622938707585436727334430096697521286007169516877729715916170099827391733010895754670021780204901331629540201304933282603358676677537460742289211551207057959161704402321112908961447560094155810574843521187909883971297852640288281482230959333510702536379844523624225179721594511271494988424941830392181440951028406230092501958664421726666886003124137429320455126080671558966713232564657784656276548380573439266905051238467512404769223627748674296664056419610569062693458654965338688041076472614855732534579603956710399530256954349150476937933590988774101020555804868369203998233547428844957965671654784870995733194529423729096390076545768253701738491805558454778972238066646635987587709762722751403323505890854064850124749636377273388052046444498843413942977015314912733618874481254740970096744277441620469720187383119336751503490441301678097188684329102407252118518525741404726793837273435471593163674284654246753905922710963638970754433646084589697712631991353335632040919601045711998639812789518227647464952259375271348221676472601755578178844050393686247905745156495155553866273234805156937616014528916683207613156246615418543636908258187888663551975913120604684600872009598776630268883004635745067619381044497268501315885956499643165937547855616568806233175681910066518982239408829736136613493767883611741215418710859716626429325523795118444390206109640211765450525292615267693704596686352782336599893153422645786490942159820323795638017842028820848210509871613381490634835488681781037172986184308603034327953829425153151547805710433266430969333988414621442386573801078073117374959118203799287495985716013159908426828892805137366887689835844459262460466955193746597925087465371345223895726461017190029784162259155382084192508337359705621974786488630159950284607398608029600132263020484666228123274722099260146565961501802255942322158406679221626459488313113759451192677303947647596883655730308952309609897429432118599649299350710011541164068023293251451124554513666351519862731105183508057222998596050708135560974393513440835365648311211893211114759097389819761214494835998987569347037916870267165600853602575708072207075636745275233871945155285229934181040828957263641428586399874122725210266365523914542603094795032614375172698792464799993658334766236568332711636077650187314644528920754552385804604432923329553026104607653457694099718571676068941816301046585981480294929799431415309443326109789030409343069626521224415015702142944470686166930470310116142510836971561122182455364172278118220828248412115669135916322395391904779546252264818579415662271296499159708210321027677516102249421929312774242062267902301668623753760522508801351181426975734228167171925254557632094400376856734476284998842623610482156751495020546126929699470824558613968050318988201545865886905219441502829042624857770354106072701729458606883633141161922602917959488095624239563524174134274693317656410914704103588622455548649390232863970141317825375540216712137430691877374605451896769624887772279074110397441267726721230423636257765444803812987821182505769430878152687615556206844908277021329000860128928492391102854204063775234591512756275302206605017804387944993497523508948801086176168167881867765463209911702702416595607732443180779462044858137879603471286409955948160411037721470503285224495219106850236689903952696055902044259043792608486970889662792278643363462369086186376566967104565205587569078344299569955102971170889168563048568314746623855569193451643418169187176664085768534488923264481438497881359202317438038683455110046520901220811648916254738018957942968646309503854697998679751438339523787115376354107870426987791317907774222413397277982704224276256154329000732353899880960131372414918860373291651658008125847297615076692917818209485537625153403500882085258150363246942034275264576739674576063288760364765085569676281873360761189090981131291930036855863639785227211034268164068697761025471820791650075326216358060421685256630155670155341241751592907073742792503822146333936485308837464418864815667842109876903560123962569631847007555684683720499025985029924126209890854436779204734581904785800862216730482257245941630824021760634990196381919924561990561597060920625289323680463639789901702503333024703280761858666097993112337606624060316127047565392563889669164651072538884144704041557413398422428001377686278933026383522376249122498229752629272379202298565044786592449728323238002536836665083588253683073570441590880266595635483520425619781946499253071455108106564497752050721857544577819686786838925677955291974071215852883012593074840616730796085332564056893808810982477290469099289323780129959896558558244272246928863841112102233265786059974202520041725121377713349506027952413911073217891743001534117644493164107018336562156221261523179509355439963004727175504566230730099250242354602650597044620629679448736827943412415952514324295047711267736115338772514770611536275634028128489273177611328332356090814623295302846655817745300051738303832895905368494791695949863764410394942225334118695127563776058782276418127254125663499126567185653952143012971259515353439347068584284571447043233843972617047056451214907645301115449038471782026263958916012304647766257326729815618777780533530249586608567555943849455566589327223502413127831723585004414433820153384736381730775356988166046539070574210794715979121750666577736415658999056873309726034789072728624785849221408054458723803376915325239828710734937401204115145055842827800122596018103387880291097202366742516204565915537140756384348506860884118376742198684329084444209939741717651627191156880177627402217186366875916063307099091256097074298236450008526506618374182203165407223429250386283024496739103028490348882320412940744451066684193236583342421544986234611224634321522715814501224193336712023167102358920993414871168356025437819235502820506672239521239459818205426695231540955710780500232956624556981206621738472841223993171312391660204442591038915581668032431199706728475826549014599719970765172572486490763922711650051461000795878503099035890901180542714244635786467924716915951510727389585637012510410503191640459068845626166735915479004631910957842653314643038645035367675986545271366288539224297181835208896237268857868693503145718701410012434054187841789211856203458114317757104221016269729950993871277902061694266281241106731793104551994344089389652858894546128424181770646379316472867455149608840643538172452790739731590708670550082222270268374246711340314875741198821676946408600310951517254009198879204769514028267011709962176060219997227892114167611974286395275648802197517523885401667032289676013861657506568523556689000379616978393263015572875842711319475675993421598945809272098990740078289807133483472669348369347187260682386549077642148447512742602668953683474659595763215903524970169295001059007447841016013826121646541692026433317544756889081450410399431990371268122853135578597584887018723645242400846196860695419428949632410552860931898291410393555156484081592666982505491072124640270095725422677866047319420965688281481419871103437985997762649528884283661112839896663904710936061487625850160384798834284808190591121273649458689490737953910786369474823777426080206835443686581135175795141329886465678371493745806290182822518286789042666825135278568397442098056471728836065808975924476314282794517980536587832621870402552654862639152825004129825200228777408401719180148797659646447879972591263051931761349289811401403748795355516662914816226384239260436988373317180188208663847266656144546298271799502274996480186585610853638871754065701983491636959469048328273178034929320110919912070122607643547864422228394801454964582520130958590198796683414838187715899914715087282661285990217802808972857485697511553353175335215607500262148635498907570809406125307894661864509171222408972315263522448597748634222761865274082334984225262507301811144062389188056234583078264556271898179284141312685493360803461072889285279060607736285891187001549742957038729557676939821496717089173332560470487822385101665512320470749835936428854719357161623598004403515371928487787557223136723130001360657130362527205556792694834948749045438531901824449046948694775126551807014379916972951469920250525622751200284871443028497015978399408765095705059217413280583424264123873682255166885722043060269909573526954835400600461398737130496704101977659375164436485934974834351073575185231357012274690119936723656080476911149341430563737024475131032861160020540065383049886282841816961274700476867224537119955153841781789861942388100438903289065994659717382084260435981825213676672627270897506483357441017110123180372289692222583711241987344217761941281663603609204556521928113142056395648926229884118969268361708768518911447287585633986628516115886090419898729223277317989595206203055219339676913029605333684621940974333001927615850006938075920044237071005863226446404876514460220324417697191987226928247014876037734710293217979422102122799093163074655888846186758004331523528671864481263028537659739056789170463638258039395166098163402784001479374069346636134069217910353412469834824358363231940823889808836470954865834861565387262473597238884555570828187472321544038041566512802612997222899508191723961717970686430466817178044857688260499472524222368397307323169942543522891633227826292156610601819629664394992241804946768363393609561328955191528369593321541166216661971855200455212314806941007521055031506573888680767635441014639926778143626682390097333606581291599917574663880832573329785298520066216870954037998891887381824462666654002964026409551056442527619615010033124734086558445930504876089796122403790699797817306762968475693562789062745559204509030455049076601576616135209880149487268340764873515583211399862999029978007596239619488715087826637371032469999514126185305922167263285464263867798570809565082456848145700783673147974275530686378384076163672592907814688738074979669527407874295065270813761821126622882335162104140527520488764515688985678472222077868082342323867005581440163412861423156491210317816391187716154801223078061082627388476128789958677559961814726710057589597874507307998825200105955620907665842820473166557778578148719648063418827149980957367232978848307553096953759473588252514812418077083731871170352581865550220936639944316123695681920834449914293668321167779604540326843948037278996242145590010530582969291809469417370739199179844964125602577348404685919855781808142232370226563033058755224311416702319060945170219138185622113045369201607579855061744065487550686004673216227233052796115957260608243555482555930223132343249487207681812087117905353267373777972938570439106996497569661688031346057387582336378748069693535216068630884341183226996479111534718084106382313686818717318792488003815525067257055172798197919720683419588640431178777830817026274661499834954422310230926563294123393873473771351384407037949873602830513397364915317896122329604086889310431191666181024795647170174390012986219383867436057429691392700025396472199392446581554460084756218010902116008126723991401788136455935149445587967039652067572309123283897695885801694915799811725166983226159943194331796639451727763686452236993922094906162090124155493552195196244254855677742279157179168314759037659214517958504112834387836557929447078827352202696197657538365310819177356619812196671304434102297075633860685230896793939038043157766742116790521206941356789673290511377545020362661685313286190588816100802592406934835653675600293178527528439530149477854963217234844934639544468351212875139449579802447047056702724312044213094342156452613254793097812401673164672225400585641248486235136070386939351904410116087951943787444069486607375384862791498269993738559548486703966879394912680716892377833094017679864604132799409714357810765703440834132324860726046841843855784927758088639073104206519743721568684409877786682223750862572290417912284635282895158089628337721740781985458470477020164895937729637294700555312537795285513383825327646010580172438293692934612162213030800249376705506524793109084978287153101431591877115941309890337773453652484164404356391458498934405500358961711787263425789988706677504317938932943867798240155620441767888222920620614845830295026489058604600273071766787750016306665410074699455605100301321518543449750303301259760069155895804630942120156896680644831612353005239379695844003036335691057988353065358929725811159511922111888513350108540144873529263414558329218903911254119982431280209376121603069840883954387316951420822083056629384159644384872046809849650930014200338287820002779716776448131452357343603979180289834195391322746036558893600484119463241233267609546124923174869337676149902476513966120744836576023758292345777449554153610942983504913428409407744402174139995271801266790928823051280212929233090409791538706326778089876697359054863287192473244101938361405301229097184080250648374432255703311130562834889587640422842664614582571987087266993110804686000068205879552552152960835208418872568341866001449002038485154348469139224670249852939728660638077792985836656925754266763499985287647501880006341565743111574744312549054896811217795560787542339073001356656805723546952043008621580005691918122536408818642073252403342555364439463257702537884773119537170154335317726934748892386411812278824948495890098040777657147100164259208919919734245603211695987119298305992817057069093460660896479239371107390035797118999286913226861470751908383168837290735776160869282031050382072650770652475074138366538572387907965991891362535021565109895122539550055775572069004399025851733890944291423203653055743975786325219368081551722044766768987511959922740555797638551034593168662354851229307526762678363541460480963360508575488626772552078251165124670643794887630594740461737423719849001256061201583408470515936793347486070635639413049075812636116861524045377270476793248536340804755068398634258551137452940613835914963567041506539854894025251448868402438666723587152524938553128300620858813300230987755833762487413131035469027736041726110073807313244953648262576635935068876709761997618427947467397151588648170978613780549898247319616941933724409712661966684171142692276434549675869405121104246997415301934864246031169156472043135126771157325593869980954624659512286685900053964189223376960048139173647770948456662217901206905313451599358423600090680651898464295921860417003980825631857264122305952153443456186644042071197486686750590626612784789848125277343462999716815673851214108688621307560899666138733825014799026639899564981704014901549743469928626014273482691407945995857467769233309830020277998589161572472650505910195179935769012552528906684799128036358033291305353184260078203132613036683772006022331837504304784266475786347741079840445614336248319027102190532127152318454641436969698514728892451783648564944595545115279435044759566586540143502031662582500250318537257970832313636741845921947821223001309358317033568927693081942010895312682527098857727761477828871549122129127422598914811522613800797871720462634003499584801864113117793469223413958924012236769140816577047235352215498230816091661369299718462254239111360968195042110063978530364173611333787051858856534798179870162600737243064497036584693759476992049064505622773377767127587775182049176526625016414840114765749890614731908071235392618622526230749764803324814910886935316803615443975342020769202741607669257742710441825841791523527166612486286306716127207937071609536887750046895502454512760135612138072726577855755475990705713824514470724061226083266224088906828767535456587434979385656911199592768268792554062904490260416056148601300602452444688435002991192752987568648180821488554742203909234613633045724613433615107845114866977958600348117108574315259461948284178899325275123957809396652183277168777742625072375932146666810291952151243258514197876150535619074126671919341474227437382278673804675857011555180792200445098584639265044113560541118810348006479843416398307188170773037185098400978876280866447302989910200051616392178507464601818608223311962308343631755135784283030519419319717456168636362271184550493663986765341888282499294495989941191748140350434348736816509222809537572544846714175784631601542934166563311950288482368162222474224897152708139655831545806171672959362910480332823195612441673593900883902094906336885083018064413760018306171238988703377547159042642612181844742013152716949120490601555534785736811713857515711253322172517134893345257007300796617574527152580666092155532480417058476330520891008975220198411345954713226004291330193004421935303059784935502196305444558244553385724624773760398593653310690807751177236837715659369528957974974043177485579335163632306905217728496697373617430698023715819157107161104259622772438775841049490305685365776569384118762154360741502042041857120875410849657860708008325172616312307565362631793050873043443558822118613382936734283141289529092659074926212511775046177097818384288431414545669447405980272159766261404903100537874174073542786275453941927112679087982411046053888661102579658889593515593661176380296173047161252706473564348764163070775575976340487331003684283265223083973342545184900949906000807165970026465020990836041284093946651034125368480402163517118310663198727949328929298913295372714717260135288475405387615370329802997430214743489907243495319388126348757786116967329672463000530286034335292823580274593278171120331337054398558906780216060404068907694243697203435337842468368495014945987328085217354283543992013955039403308326386457564277857135884176295212886559653433010050444745604333334309634055985835579574646553492570536783988417543003209097144661462308312978647252883018481413447562031953294047605127846121522491908156884823643853999202726507488957017735493956409221086999966350001613819225638061228427805042129162600569020823062631834897524664864784764428224924497116475506302406709479615583228753095787371267934041969916640211084749932011208358734028079738894344479891889473788640101535656893886800617402037743524702441623120309838551636661838213842517156537045994607445925962595352650737199547690487587580268152173536921046856440285983401950162588728735410400766405679342512387474461807034949989742590360324192082766706092419458807031892494908666046922724994666850495750772082577162508239383451785742659614386446061214620068862395144091592717162679379802860843328238464744067615321216620640317418646956879202805666291819498332791850668164467753461918685096199652212899932995932069378901267809740194211849947052691829452353010290511419333773117927558379434249083794378150818674547301391774946404651884799729163304849574139094773558595645997697481115641838681252913937829691415178142657448826365079312900299575217763842402284500301956768754332559570562411631152214730351579149766518933117630271643361256639411281489625880400212110332970787360071883827254239367746106689974213065008916351295221848085110878130745858450583067847166021064232226600929595828858146521609223716520530887949793832722288039265322027721071888027121979782103205244514049796738488595877581791093877228673975942145749020332691682616083536677268337854117066426453725141641140066049497073015141395798203372151677548767491119803679158252655976880794952595772098265728158137183243717889989610600128511141152396012715369017377613591149971641720059188282761652951176204069649377974134807212001227051233318718542067435195934083717039430185313608621852042922966643660770996156845108513371210656902293366926990614713626882422269191311451014420079954411879312630803750070090675376790787874952162747160687853993352997801349202973358567141177143252840688542786988517281077900293117935911056199619278547789985997275560195268578449529637895325894237235087136763536414424364263235115134284753477495243791742573905813433503395927646326912458940660990910074848954542344470620101593543877404693012519151485039379362543263296671548809132075481378715527244139608729037125579284319624090775215927281896273850743477578915682534277811823019370386848973894784814924226625458881871102504051733956564756985652483768156672621285976370892034546447029746272317375528660605489258853304389222430141666407732178223176166150658603723518157799020707214136610214373340632221205919567286523633735418333862146565166779218154138031511774686133908097928175727976669629612645869750139367297849475645455954136142537776987482322829051571611054096725952450333313225858526423459508997680783823263482783198316452425195197457194988640579437906537220874200770347076489768557541461190053652357865825322087670734226569267151170829539891265426940350227805776493253160557863506079816599248458191407910710235073579289648308638163691366043165172070571428298790377706518455148164972701984792971632988959360809212037056031294618757155908517031027495699802900778378506601157654314515952827141724071919825537943351302978371265505703021841604763628244921000699231451403002313070254873901573677178108994500380496668588713444949780319700626669098907547619339621414448914886608723693451836688959864391627304906961688730336630082139980188027928836992503671274643579144872751379631506662990616831599630294722812183256841571006783690448368865263364553939661587627617779598824762948837440460592752025481965148739514939375623626288935404582871467243620072030827451718923022243404900073383626445287980861277760096585450782938184372550885250208645845093100200353944200214878644503698828553165814516166869055120714039254986806702628118086636256897745489646800131132702996515097773404330634678257722686797319686401894877429543305009841368050394167504508655998358131331853030517846371576384807460036392682767892471856290817434892229431808859972487926531948347305192474199803098518535987085376105151881916636906743227531468036899486374025398427827051941116006434423757051543504596425870188118001753692057670858366889216237816786146625974890644596971081072597134080176445643234646033615112639171121025397136679598599980144416114126708509232018553958140016821125183876785314862854482347221570539234297523682282453194918475457073749515404853079501250359774866266082630658806935579217503902722928770166866600241874401253466654895006402315269029512795248918410924731529397530575882924484151059992332428195437175944715447059749489385209948485708204247773468918810481225737653149206577927381681766836162812387559773200002492213790652057973349215206154060474605927056967723892907613061636001661189084784606019397887913873632700020786132887566345248203710532438391205129565904418505850907671369155770612020775392727145550713750473991618527453495861435568685223318042689956703956607947841318190668244883893894252034212428136095357298523808393590078293699272577372743359448070892791049443372514173784683357101775627893193274802978101165277440641742383058593255630263542711408956496424278374013608627053717016487086576854768653051162407253838920772342529824382580591625149244845511832271507274828427187521048892211296864052336718506011213690067784342917421017176983473070566719319794720060857492920560035033923038132840905943470016091064681640860290362671545274857564326965493186957165854751973107504734082404898830866587620127058213160662569879631535956841900010409996945292334628228525698675584122233682903182274669796358663531230641767915285257019975110855386905882925970888854313458349461069227666670133744353815459045787029776530078176911165356822777340530452972611162212332519569861662140227795033843364780248952618232103905090069543537297583431284396441578884906306548209431448083382455578440499189775192569831236706416125454810102567421845870949489857317030228344866993256425363664038084537501363508923209106339414561433094278102768285788961797343535750604673276873070156996006233181129612063320348149516990987925332952322815595680294784938658096920722111737577664744042671991347498660691418634831471951311364418439946959788961356744756081156953438261794107571042190009837649331516132752623106525009784911505063230499240681473958029989171642931339587343868879821343226018287132631421343539979156610505979915179256947636971990370073207842503118007907587506647555897859206249504893228570075404579510800897256527732225002450497335678355845961738051384558030681720639097937450686894632739705896977221606798738961324553720035204575817864028241795121765231649171213723589677662669565530529567176255463940628101352101859548860313235294407122623010518541443869521482249646283787434952515186993292395624897142770891731511826632505793758339479785296503905637367747872960249691142774526338988280795699352267746457471234183366844562708210675693024402242952753405727268804666666773383151268998804540864296236959159201661950248010088003088657549222303232354617732246792895135677800219265426168725739316908743664373915920827544322861053035343135251267751432517540191214730190702126990538567078568456375040099162682660989351081967920411990166042083155007486682917201747946084618463505651933255406167458133027198046532297433511689161328436449311627844762947535872930495103249576202598116026289781085207005151165464978173829078566504175390548984667232912543213326538548257082739077290468044178510393316596126070624986329539910273761256216482836000765275918665126539914585005825434079821922771888083915433039380699251730184219494857020855837068261877415556372135186402187544917860151184209042203748135103991042852096975556809418199905907997732970908347751774415604289838218104313555920154322905001092070800488786569346819701517681402914953469830174633440981829346053856898430453620816960815513626541146649934664287305137302027237732796655721677676542437808044052533749507307130215468819574731013997414050056594628753375404058121675616753478850107131047853034013759757727022611406579395819206143131150480976862990196794402562637398611725170168152202039083806877057000064665392828016222516644952541607965503951806559903005964902187234772510741100583700740144990399582258539157712552854627203273038205128144673192782754085462101247817707615053045674118294894986910650160087554696964724162967139683139828943796707723105488410573981778599202591038665677986945714699108058581834581957895306129246194977639825716131073659945845164692829295829351515719234071014491092234027712862089084294875235567309924235262572186093968587635418203784614296897457178836779454690618634422805909418019629606295244684648234496144296164836752653796869508591267456431685128011856701821155521629592387447961046862801657905500308125449522030493133887320253332407739070741679218979749537386263750512262542245528011807960775764559146395590940793263540447472183699545710467037424404381570898901615397872846936711111163566429115195932309245788925010557391027034134930908563806352856208315937671824277985303822896369571000688328979291161706273282641114125039476862652012802048174832719302934271901913711504502428197696412018695499447582614826145543869690239367167916401455719336113678296916668477718460664449927378339325944092048454669525137969354121223606747070532680956909805809284028222521557600554322385480193917141016351218017600935135059440039582855326474865645159973464234742064446160805084259183263541254646862431784308095862835202226452807170746567585806018033093078557931630106451601629890263114339100591911329748999845507749907486065754397197213398611405983453682720400813817348878436865900156207798145837968872874335313353178865226811694952656587967601706729284724679882796738689073226665787564012654391449440116458929386331366013149529458265606577446627426556538905169212873646625323478992610857859845708017054610813751398706331183696737952322182753546652244982326236784614262830377328930893302221434240960747556210648068880302473177939953636846776280404389595592494312513241582462021527824605823491905081602254324842974318519022997951702550649841667844249042320790612714053640768592855650920951841097124434317633088517019356682423136574242274926457954850459533216850063875637465688068248050232061003029250497178721624062455028360810085116735904934232267217945849075803490786873968136808761957591868299129489625310304884746547624399955215802252880609811288229048981719507779812078511862522746934663166910609175770008355808183571250521412856236057879741000815448157179390490169251276878149028941559180271797998665578100017829232368953369909995204444889475120307320933635532371813050467665132256704109328716537955924580665366587257298946632687639932517001051242582847692364732699296525543778154182296163174130847164519817480789343904355105135135438492635322011061737245620012048582815455662823514649587211335746390608488061144916237098264331593178935497680777231874614797522622358297823572801876376372030563646635796219032136675842302245394984697701167619247885585673232937079458044478964151547457360047586860811319920072393220425241086722575416844053635426106954589128437578215320478000646498173048067525803543181924080314076365149359126076301891426861270050314920796161271619483976339835420656753330672961338105137187211397566701691020032244803170321861045477889038870345275126546354412722718894880497955609149590882045348831828064290055560943447654145302419051367485378462280418111938200328117213112943203589048875165713261881854337321325651860728316437237942541283848795551534637958141487498922448662574330579951948482488000009877425832728028667572920469234643476617260343452114786758167613242126149737760664616517703694004934578433064891383256453326316458408202737746496217061675521862660367181099834141729250532969842979537034733279586469600941487971491566665879974033280980114919684787096095051203707239789458310170876202375575341550154652714503108125149508295535653033963136784006973889091002863955669663065737597013392242034096411406745980389510048914863812971127023975191179740558282354619189052693748929490643703101312735182682863860169514078702164404569870213099308588566635332894172979409796946053481027318891776862465796574961845410667460505922980964865729145405072410289827145268369296578929924430600132059991717095448964561219342232391334854409868369702468000852991179508209594822416306537612627473537097167084643498293930132332263855945070825242594191729817519164440879685660745637976275771081187552441498679064499937533161238576762993514241254045329364302196923984008127251209967441206733038318439464064679986467467810490260196334401309255806117304350712981457508826391329477136733874710024703080930330769753278710866524284560509533950161574450808602768067880353496972426212974468994998869815203174884091061253389504583985848565339060483335353719915002672963349763854484670804591891361887564146087081592739383552649179525423496684726762711900443830248030898204473523953685926409340031022060392093634940919868509298248094868669357147577164649298030359551813451631409380690207997821536029267768681158808377547813277648613625843292541165528088569648840503577681368484049715562799668159499493227027523269006720407645827874750256849120580787924511495544136770597040625728832040122591939197928436460039152426119562342786141886327175109522707427533212260214320611311561877664539481444382719239142001546745409658366221784326359776491070153356844707656618235307399870630608152409459895765699930145132710776141131536228388358507742423434716312712920613065189268362071813579403112582123265098882977841724508632119685030347842933614050321342383037288774247736072604175319200888255873788469287126765692559466584296395259645635604566651619701969808632481682944920898913053904213647156866310914756216984994919952418783085391893735410800165986955525222118263990947923666859058614255321379194009336487540851030807955533993657447929407728486811054560291113280447400523279312280243340672401594408127122673132061104200627257816962525902840621438309148156749200990831197443523732785723924374213778276034719275439553590537656089473432000164717499523696285588358937973532566066107478287964316735543141449479858271880184861721428773344821090507040654583477737099740473003618107824886978557303537455768543347312536932534378385607013743115869412622127790564196066708616895746043347751722511773736593662812622051864193667528284623338520706476915454475989192140506632578070715038072817181400721907849988586818323519822186526122384491815992117934174145802962208410868746717465111505881917431958386829373311610791998993441757055485497212402108930036954947386779680046821655972390948698527815881881715355566642583611939125586933880555569544481568300540436536756192251549840489266970895909409435486661986164890067284682953028813579658963834768630508832380452189911032833473542203776090498946637574121216193692673978729080994004624177143354713726483032941890666220519288140294435166635997397171104914874404790078331783643045291576547472710498410454129227777052887433897509147751283866086686351654669199591139155647171043711193337797136406743265675943106300283541703317381344222281546103589713599436900648612312061655878284047431177957819449401403262800598029691609194698232507986256089506465525820648127764513154294485826972023844970190901233702221209652770033906883092787354109718408709150414410849059301563995927099715883539277364523669773022012200060663427331547802243636151150243802608403959934772952733222605083737985921335249192895878765119843670811670491195213629352504266006539672804563735133493912057971004329315126819479829524886956253761301947304329409512772662320442808958878020038187247847665144298355010476081926489973848795906192112155842855075949497526497357616023901720980307010025450846320710383636863011309699763899819700697100651494035770930045441120914602973921758992340355543793673763195286026850409538354902968203970648639204058862314742171585853291228936571653354549747573877901317184808854869170258666615691591046375132010680684624091248218799501088934200517370809988483488818161351051375763363644124593792014212621250465782777042526165989194148621546120753785734065726241249351577397936884736081222124820850530791667836051755732121202079861100008803112538387388745550232027033655708200974106712673404963646833082471214344826701765811079713055289630952183545827785127149584263586260827630146427640468987712072756390710425800311092135049160498205706867948559032816998359523088338291775250144476506118242974354960111252861153733198141851694968696233027211276646848857845764067930556407579512301050339967756154853619865333561333789591446083483853189399388197265935471255023021857100821589837668927049290448143921109612617779987411727003101137388500695283031829301047742553264441944324268703782786287022510399852602419333557674199544123825460763400570389232537457182833008940022067318816339570353659851892842258827832490248894172419875534556479537752441748656821869313408462444929067334739057181953071757537116925516781872317471385138287495371003871437160982143092950695493656298087580887019928650856267683349349476692150183585693089273577161754686385657180300283470032776410057234615836858598884905985509998827675206459154977520511564509698071853916317335326777862655211443299381465596005629797608593070745978214446985387433776474527325128617755293061575268900226968588630480240799261458384020657843772135847032857844373192109563455879154930388103249642506653983448423960239932105221023387864709248749977525750076556681160243943344553236640023242701501384455258209606992131425558533840711964321431268176825812454669190560027332254501314828561565728325721160934942192397511313349224531605624514859467273192251791810489119271852631191597691116413834979583687605428313708146208592421742509862831633291933593340585784181248942727387174366227522675463824437961996211529866054196846251643824697855887030020913485870164024393398529918300210884292981618165161650051796009102888117426942601251338461728719186549075664787973060095864495356110246368188727966258318999242131583086963153097742115078960332673718667564067982342307779722263827304802735118750029695616885300922249315386375157068133926348289879348505073519704933000120254281481651850710802799183372692023998950667421131449255991674723975137348565394560889190488197174995039195242377905478365683703274072655034923719334514576795884082716285804767647155485421759793412664486910561002103928186547919663676480449027202258915194480505274513348330130335224870196328754891399622757264025903179954648236183098698139198980919297379021903614179511418135692063030292076209997719154003098710557809180860131975791593206951698959419306061504278263778071118062650197496985585321044980004430554111413468553951205883253876610182974738099379205842609501285883745130955531434110546943761267942848278409635211842269818266190500524675257748450213741698882011455904893893787635013799964982041259693949969641329259595455839931627862614993013912419509071330659644346200230450655981172944453157667127594015656009065359567482860634749950261884026654005904641958697025582376758023552054311067784002550493336620985831105156485311290509402309592441941091197121777499700264687565234887544158322502114452788594717627319335895125725860017294607177502375604546912031795201793575352790116216965253241670166569507427379003116920858105358796653581095472102805827199697752849365250717188440380312775808848114654259654980524639455209532089569498461357556141255004765036788227412945187627443547947353424155474302399940804702360030197742178014406413280779810544575428461664438387143301160580203789454095614331332507930581047273236332578370004373361468504154422638182818480560979780643278628581254467823578597838891633460247076725784040454960395954193654985049679655930702288711795236261920290573884980733103354238085043939039375610832337580088677698279786062605276127331056889868324992382126656712634536298419231938180918385842760309384602470086205044744953040704594895718564454619503456818711675021257205984346623098152746741929046733397286770080201304497381111732307789880035618618443401552184174642416618183983669406669385609111501417296757623956672946400637617245606041146241614682918890382302640996549047191929904159877346078196391356047627702992680821340249153742139663274901049962124850232067668219229699917182212227157467438020067439197958267057030278894093460469303918472710289317412237658539923639075992655095962233915829451062790714270676176489934001071212486592659519108551539612099704636620998651959294436069001460924541846438037633178200586344765931492959071154650931890088847216135554495463854264433657561337157804896747812818938187448079420601913610705651899156503904750577332264068456268301115570507017582532146460368195365127379644789924003557306456371623190163891382749118423768397851067091739735427744861262901348109550151415964385221683960257613003914272778189728162321649086103196626430643558407576544917653859249185383480899894777129140499567925723821408375323336356967475118801158169410956516851936489240463715404709437042597030410590409519894223781057681337095249887351404103783996386465863971371247452470996842300549352263265563731389624920247765019175079908113318349191039158981178201097108658178048886455656942963025859000384311404812505411327750534940445702263741399823549702929881830249760329078760160023171602883005147735686463326575212414725021403104178773693533243369523805413851678093971712674609132274464764597136269489374208624489513767181500453132993506094661004083922475017238224181869852161041477417227788120138922299873411098824355841919931886450233574518820999666961404094622282844076557362566044303392489281777737792375062368555257110413425606083676594763750714834779358848916860564163209582697161261317016873919966568237237907434157516525113335147023669987502499913730607687296894122323681633334911017040490717288967046342395883640105607515161166291523237518378255295053198467772597812902718934830302868973084396842040264676891504965819464853126178372721845526626807735734489459766967201822416828369369981661922526186146693250376179511176850395126715425466038836588819110937583074990572038823953817023305527544434778487562169124977904386954670921683337181943624520294743088528862388847110641117484285002969905980232218653944764905526860460244780518667785881017660439437606207806358454654188911850047876752274282556481503741017680537517589250980776204675328445056041754086430854245400427884633929974746510060194319567804752634235761516571531535749415917698915587348209843181572407172659216007859864992141841949265661672962271525856781060031813243648276266594099466405858879193961202040025953178595693699472112560678941499617356712530984047198638306424433953736733943539474923420986701932439078698632677778343792659602449834658084872606577500215207847248632932272925327113701838566509126684050702628852120259699312562873363201667444636316634691470289236073571483068768070387643203794342034565654439517534559703994218127980727035221524666155094527160232079012837720247244188894088760297974571816451549176169882866601386606825726139082904675286541247192386200449984945671926648191137506358543810775952868504761205428910508268420733822013593625358593941996985118892938999119227224591650459310168495155542607148137639570291263456713753878069280142531496937629582184290022441245026389752420005757494985282037553353413433326461906922363725391644691156978262688032670462873867845996273401555545541190807490191528009993748524362632338274230064793805417227864125894414447950593417318254063712323088881165563787671112320766475456701267467961877199012988557168277208503177115161533206373194279150887738554789050139658035006990414166116420871656809601555826457875049200400184237515058698387290629177274209518738572480455496818585654164223799532899566716600158053057007164282878624821685012794703888427655939397189125585009560900868881487245620850461885966996526421882877946843366954563293585058582866718858463243081994421457964941209947833493312510542544483240657655063833298968414945880346209937486495108129885617180816050405023756155138999526824399274566380766484998630497867849683942607643060666919065011208437033994796495739091239132695440590942146785313574057614696579327348459867772311920766184436915412731666045812399382829785796297576506975066780209680567828255175069960653780420352294574027254076450419649581783589513449357528897772193149197760574088135560096113416859959119759116342041343029893222621435117954258972691669706866561058157582740077250972712152792822956970907945237414985037763983059582502692363713559220596048041882311333949916715977544191840420411650444813761988089798578933079659750123984994751962029633151574106898372880312794086199786296630921467960917589251314927959490849253713774421733940411964551005343029621186558524200150556408983117763622718356916058910435091449251682042734830551899697936234046702680303491907360814688644696899016861903992507425458822713461688874461862796121200193090306505463007565481421229954134531687055934761169533225359586043840511499586527244873253446562322044814356211118104551766866936537062929871124763404371341748646559875190355943546271614572167706163201886562514032238808538781922680968700892556905178165808184163876998701164250526188780589334722606348844584633271650190950235504465183758061738067561988070787292176202843092372906070176731147459320715619799656377909019453644726854057448988469085584037660356334291148092001350990787547372270137834147252443589470276419665339683724858256049667394733685023497223068327654896540573983147671912715616107068231529821686331625057667365478993853846449014109421423181609830927952183616154305878573719319374772595344890218741400544437926677355710451764282865119688143076379222201872286602595401177754611591656654634446211170557813670198484131634906837051931295285304422359516916425328185118795268865226911221590894756585337421757279359820465478104643735410274109975229592397433021609970746882982869582328519730152383203735573128299073984778228169207465727773561433197577977080886227854222315514057773958823817351012439015261899210669828725866041629377755266133275038075103405478587152027171141858520203105048426279417320680671071006850562467864418319735151472984433922901204236966353952244422490847389683055615782091077850212955968016663398806346034538078006540998156536185466561190249519489734646108053937930949383808851635655837614559896619973230118443184386835689613241048177441587666799297322744206031620837617236493351052777979309530495843650169165105886279052493385006204042490414154811295884334082349574516144926323007618691503287242184085474522167647124631448980732937094561881433969760838321182329195826937332189532968317913507534421667737807787345614652610711815694852399106838970865891075752702278730198669033246336386643742455253256239582209409437924764828961156493839797228016609276772942363641316326658914321967626302530000496523529445004712486117104537177959121808863118080111620127074114461031753355471455058388729998516273252158866895692672773007402964994754116972478454800856987491047551077471187259178465712749916340450801064236671933813614653183900599757068122985033689588314275609424398995212079792215495558165102167700428312478787222835435980659006404634348314542531489259809317886018430656829861426779805375148300385801125455784743299722578284469667891961669955392764698421358741205068685990508373987469480446960891049838956008180069432071742031275430821489915368579167957140751544395771046554316839729303973760168166744372897090295840087447733961404535932530938913243150166311535937874601799003204467439633124980220535847569903734220911547901879532446690502491135094062504970051862200977389092195705137287746680849439021611973383884724206870495622431802662380785187352552041001741372192166902592641372985908830702629117204840280330666419848840297291281655847344062757070552582629251090036674683237457943888098894012552612834799983871096662159986702516968986671702318756162934936572363485729111596883299442852897117003396082465266318676806358693756632082269168482725078961200726056938411312608104204946345078786863617283415423259199996247004806719367625800256807781883488430061067965819162736505242236130591954256062429867895923427308554952411926569396495266976365596994127145285073147984139612157184009339385052817176124800743704173342754818854839764880516456063922391136450133493248327881493460074600020694688378615791304596914251759455802311561277611628535288525206863663647229319900393898365450663920023004670584007231954959276756164378868941706152597159549008479215738621164524815658556043879539277939985562228171239757791029278904346201594131372460144619371275412543025870157667821616366955837678650135202939891351223397314945243556447875696687917592571035382552741888932485084346582804474416178827867390925454447926989797294111639937935934495002619657691026760988974101878213664986973658545569303334246730051719440622329652529511648181305947772464496126889163865058898981702456814079132291437444729522015960387245547049773597394503059244304167705540899953089270937459715565920263404000683756964785449493642941359764063460303149127016887888263580579495276267602770484150724255777459406178275556499974102264571707052475850652422016465436063154015635288865013395558995268194735704609971785286379997030993819997344010695715580417019037673471382157443323583878960614383876497738877017511108246264100267135372636739671695039325739590063590230392437581556895616988916146403356347258902796111572958273868639338574100823249335162505937550181389789514799984015898033024539482678996062168507472622719867097780677474707253519744275806079999740161010403053362565114896586070647153141690348190028410752479292897402800672065886515938351959615679409627320989756492576827739516210612225317981676483060019240685214230430872379487335014906040455155428334774162404553897203886954659250168452787219558941023723238357027859477267331802757266588745142580911177439630479408285749248744267950064950682431791875329657822444869083788443830424914839024254754542365716733919339980736683758607383877069656507847466932306941593032590996350692697725153560227197570567386541030604243883691252365030322984395013142313492705475445052661829851065613538921874099998660894592752532251827118696881013609909504546786174770279582359192476652021138609544061370541126962469754657935506519082359273035432571417347089761724365686365042243375990566080258229031465453492483277477619605235650533579395516504316983418254518764700916698394774056353897775657624009584433266011032028329474454259369944389922540942765180579480174573261239103307224798181863912730319334127104765281608638271668481757492011699215213824389434063572562883657314054309202833320976709823641365276806133459312754795312041073803420624890576237893509478518856449592159042597134594095145503602619184491423928006942444929566802932424830537164520620675840474134970937339400155794553993239914289934430275827970519561907062668161137261206512659299790790802348090215412911736849771060075500193282384046145111421494741103448867203147797153191989489046888535333329103447724826301132207318776672085742722865694387376788280656200445666154690046309125363879918482187641800439342328387270879587137245924076131986917273345749249377678794029473054835752779751626217171018920773280339814271798496551735261655439240709931583581062357358694114071297478041572379815809905520125742949932818203079117230136076719070987577548472016880837952221357014065436457319683776097888540096663608421420760650274564231354203948901893782800870207588238259144921337303664661257970107109351482271392732150822371337094667555694249291006458615534203533768493846211224924941770674235162252427404339161509389313936715215269704823641738521678346757825422811711290985194165032218481775446575255514634423133701298610677320080419855566807260526225763412479351638846034112028820720502705146929882593128824749654382958181571648796919439767327464974303025413641882423877529495899678419976200436446288357821137181193786536955646830827405762297850681666703077149191831390735612847617344813421545627011800398279849694142788708268950611207368348085434589931853861303283849454834078781077047044646518941689690645938259451344575872505512234955503584391833359143697618567615896215406446454095057863703549323901785640247935444253021283984044890860076372676737385237528704359565249550463227212157952173205332349500456491368949183185456798148240211202218596850960590868092933354089015864250724792903325675412628610835701848973471488298018053198640473535648847571901533560271837756559973271093913046637201872206940044322716543174789461431749487066449772027422466736778004566034321547593767991970588979017934187335713392414008325326094310880252862573345776270297206793950501837840921840925405901960489655197778312889925795661115304368443600625491961371447520777767116472200722435827801377435181355230296525338597257806149676001549817273932962644100733185939190582934110156156979216702966441656440841276386994668606917982129455307659112375931737197057968748463911783796732519970182661133614956874014841566429270679905583720543056924492061702795181191619056228946792173713836478573403923791474404894554732878818198456098428322925227325396302229364150674316275684174258033050266191348705477490770645051456796456525594920348932548953191939791862830209402327331908175861106717773995410758086819302659785992387412629807624996653806538762875412104984024707205916335458933128536880744606292818411477831265040750694923146087791591051291857430609531413687972407607278299118720708800780515479795639079826348730002258263190178895092194260228784552029789707486551268158919542991056894542270008032766744043232641762982151942167695690230709069821253301258237167161826838539361516352847499590408139511657217064346727009130617976914464117649044978440232417394586567918365540283448204298556985779876753710671065237175497202620932365591623539455775406223243257060792826452748905893575027974930158697628022452030135438568915059948846592465189245385885229910493967953349781093703443151261091241941047301990213188534277600800275265317850506892159507789067444059490945678227684513915078173036651720124147093379453389525417931960263944091056278866310690112340339205930015060598415850667676214445150776692389381030984907095775525970428896789656081222904218546696878606743142693734419665586909651671317649886307054325921191256481449286391462254625141470259597182559707983468298827544516569577233995037726984238698676633633515803360417746721775042714539840712357756439927429887287331554157038127558166994654423037813597495042733563493925231843941639824554557070601943617233713691955342137328311992366370044007486488550080237837386851511347751208503259982481030654766637708489763445121543026769002221289443324833455961605382211213897004970078966913140461939170337571921926810158159723198718393945954115408091571379754938738035101126715175433870293378336616821460828407471443883915782152320614584125233186451828298801707776497279086499741227964101079771971858537017628601772160498744385027266115400899369578230326559914133166072148632190004874695852645043473239816943903794094642568708622028869102741050493306149651476889995144067336640455913174961733565153541525224827539443388628629020109542178857382897539003187259292374382171317731603159448169822420287622767841298537989664107092846932196824320149230120574345240981418265339962520684430770065512418630753966951013710558159761323952776368078749578187934689677087893010052928229170080598343785280717652460637236131964449391296372642889583448531001023137577813472907087072093509572252372033181645338411145546599496001461508823891826989750448778733341510617923324541545008493458955765096928578315529908883411787443425720878472097182375446084078071993498731174623448355842590544878477563960646234792531088655840546435998547475856603790020056778773402449106024050077470069519139969023481676934286997879313684966748555582331744805445025719834955513816799507521055208912475489126159771261549157662027498914590900642604047010140436502140448490730761135721174801577213788197879424508459817494680046989797154491714896108806767230056776057367058066693629902047853454571309845529621816212728606424016643239462565437470745879517434543663276122170878409411943759422712482017678847390165150927610693643392611951567277839384255612327591646696838017782765652516375036321593855317764251139376118416234250229969893621872859043541275049801262209000522816771606620693422233776942116536060944900179927320509729259863042954436178742659220687834828103803094057974231667199108881151567479966430980042971009714039589478453887428526190371862881180175490218962031272450420393484030506191435883602140997114215282830461529950660513202713548740619625428309614294044524841283290473035029971107978731509694953574210159218513215800405383380200268596674350317757208537078857940733051728453339742021936893033181220294685355187130079113569246936284450416231376145246178143470253697103260775592495422240883565287004210418383597221862785499391225289043574261586262665010963249382897406958027874930539723497254256227717311163592054819251251519467124009727970488133322077644663192267969694161954129928830185544150381556004795002719832906258600505922124084221016789341989142100477001988417185950689857526960839109403108468988059647790835882217994626338877610568281754800117681438114881640664730146252688701184509469415281084810811425592331140126912935313345702345634082224380791783667840856957476428189345068968336611486025663725961783226155408902523597966868541623699483654216443181240405336710700721610356556129155072413118852803137742743442305911800588447462541664367095188024648563549493894312945397750232550743765597254865583823030641914429913456403681214666647628655657552417658236869304193694343765610907785698710127363243943911494532378534356264986592968732230617808996774305667126227314917732407358990372087300785726006438030511370756928628585291838884262680075278422793928584630711536925463016484353997845961559213616724956166380023412239975832674534961895654174173924247316892955390462109028436247121430905817112747087935253835611035258447966429555151574435996237039826435649576160868375274599548491658031303602441279451347741450813025136635512986196830418152186084927914974854890539258736096100323186197154335977127353877599266119835771643934454642235132414107063909827967177315115298924335704684015999740334805608020510913037667434729095274351271609336761601945552459201706975554285460243118082431085820353086514352487879281897108177014239374814026498532964277694798322963795994585663926683330233410477896468876672300107263395357397100706415280549199326886364349297027118384427732639265738297167370837074388003447344809929770733816118643125022612732258672253632011287680072724906823640206340637564783303741363689479620672206670686385797401814265900190943774207194357921630481684071397768516430793425995458250786426331646554081161403666945095965742922425620616697581461131126626840006008993656256024723924695516071252677032878552134120279355025638703099106548094670364795066005510544521323928240871523904460286411764399843649463808289042150056235594670009290196220106678912477028794165512399747894216908609598552877040364018651387395893628469536510880830018610248502081054060099695271717858917927420645420633562038268885292412429565388979516248342306445075649521149137360385613520754472902081146969422028242606505164382148935946217421510977244761303116763848045934027359453546252226338951930613685467485573314265532245218032152876463553948089056818419865020861598209585092285503643974620074875560771963900104941448818411303428637828096534015251615331427787650479447952517279518705947976395557913536010873769173017712647173522425086919175600385508389627436806828142128633787503838582687015971383044282087406105573557389978298504087355493806017229012758558726537588411294758805552196804877153446869331459232241920353028859279253265292461169496146889756921494104285421376099875764513772917361751375713206629464573422772052350013077513922381684693867190880380927951920912142050975736165445122614552620530730850866814930301018768295898372812820310839659665599479177166544957537878014260306332636830746230964404633626793567396371746419332509054070749746340117839636186326101273518250126858534102252035338814793705975430868542166977647492772155772192288251312585217211145081565592087719312924118909948544484665799186865717700063038040246901094563519797537499124589891026541282521600766807217071105869769630455788786887757010738650300203166491003396152333441998177594811606196992785920943213560869613705937811062483361041963016997584769714906488576576190787295802947082887989406817616151265250102443525915735550983465009044492375787330544299423010444115515803440738137299217281930444071939627427035235722090835690581907276535520216763258824996580186626592039395693604622283342937052223252997147600816286771271073349219840263410001011985259791366443827813547226186444349247043391711708315414420741988136381023855811287383967992204730861234371635143626543952178330048362460602761609927599727632235576601891973954298244930763618860487869205352715502634876342327108097295963548113215692909520744084015900593745198317839223388498146011251998556532963881206922220485434310562628289559582595017058143440768875395988861770163125922431210796425047528791056150383645559602183984823508978816354979751420113073965959239141015498754478007395703451166323650603894878325410501918645242304883736020287919916239334155864400238396817947728228778385324804317498120517613269152781234248674545787373247737581306922453136313586798749733621164447710940332827557230893067850050675393194598265142696941680783763818858972446351925107231160296500774012305770566953599447233053609813716291829350027717245484372952106112992622668357129846657509225366418552225573272600620799683504557378989752614053612667922912672322374957005704894126684668166672075564223447244722604428493724246745159051920451025600192833687464274352772313329788200198346383676933140612661732010057763499364532148087460306230524936176370864016813628511737000439921253170795045121022050316489705188477790171023694683196773814615407018077307345556803182633319316327172156189469349088202172511453491548010275798119515587196103643268890290606882603073249915650509907171912005632020782764731444461902933624786815775508669178255200125159414966362252743042670712225677428571411563177587630923442570154079188422068120871424339926260692965368044800416848426408725309826623221921889608180264063316340451924097815957230546757547410566063932796854813594869348006447948715853979085854458181685732718788626557898866908567617102887408358372739731473576437811045626878931503562318012416974927538437460257249740456057629814421410180951883089734482988436390015010322657495004773143478798461168752829611309282546866808684065171442027861242555862666221539109558705332474748911947224960271755265944001953251944459786614221881813798159208095598367061902545121928527404240965908684626120758360755125320737192509454212154630107732881093623247695842837752414368150038261832015840866839856521862473658522526422532339614251634492983204798085669021577272761196863869144530481579778526033867821101063086793261856586291543899150992607845669992939799309247841368818137686255967619053695027622574456496647820611645733747135170048304581116343051616545239605698822227313827741747849370111064020103014921076924639788421754433205455088064291390861246782007442902047711923030296541649605332873382716333318689432969841038475151553520648342294689849621899589838310239083519946798239616965331900489163030219868293618948534899094783139353578629241425304702827273218915223513988649208087476717005162984714039885704164685032395689526912679338528388100339140508346444798109992337498699791927731524862865948323885588895787801442042480481624716984961135809306739677581369288065097002150272299347474681599140565382724369252889306262988442286187225689430827499017013759817555239773910471588051970963894853349587194765439144961819815063736054747172964816478862612500967421738155021547842018263092236520371575660941428777312917407207023701540662859071004827667851658692398585372398752178637100720112776632446609043228989948971353444582023483748890880163402419912542016910779489886725614660952186255977303396897882778311388254647440425378014238992201180337632127300458117229372195339837903889278089085348041175970049541935412432101177682065224058844296527011946457295701129392568662881138596454511414618421999112304549733899486912062528743361613269222105564551333322613325811355606600231591082941017964926665427200977094675322697829668453827848922589092160042303275247357723661567269379236898362820762747779202607801780571641461543844350561134469578508598986260944751277978020400415653269327954351456257847045586233431631117806937924984462629756583167999980181293740924878502073154690752469877208929116189846380426580928994150518929182924556320900690047970838278808110412163705372846172655430190891796255163273481759346817470323558058124006052904725450828150544079743494127086090666408559385500886851301203653026623027127404841861730295823993754918052270003641157641859145569205704784295911564552875491090576572420303714336220392859986877370970153703603093105940934690324739010502379099740676150266102308359023276883258122720625836191431193330660043464600013187042520603863017472805442367050540424925165469028125743755308284697534159450683786798364865198303130697472122511287904110769504180020435955837856109099367097719334374682331259720499415664117616785362643885515641633474845987198300095117039866040684089489742200585365720187834402451153780720503427276878222460458365686855807982171305031484705606121423908541459809788174866791633914143960491634992608220939140017602326144011513282433135066698126515551541223103666205333517115108967139597863778019893730738292009170201246840342469992243449979145615129357002039058277753233795364066101111706213343484455401407476985896568385919761585600915603674285704414232042668968331244295514614205891765685849009115244046515762001323060171789513548756025908083260515789568441273572461334525516842069168440549645102925831823467659679262111978519498908686904743050363665654046125419537055999491785115808994696307709688529125122980149864443585867882159395526787166357800284737028597138475658999493821973263779282668717696222564132286635453194568966483981039790089980430346916008487632850009333807331160365962027392177729246590015479597056971781065624970330176983886737303403092184679367054628718535959085413247939014470092002452718230224725720301625900916110810206056136756796896261621188293188630787493313683318941792355369639321997979803693478603192251603039860196259292911753826619774344348017945785111544154912185284567896098227720219263648199889674374631029434768558339719910823410137178664490733277691971225268846432976316749991213254853754754871432438578739800612256065862354107225056821091269200020804851728991004778298091832690988948833067350615595649566820485830402407857862405417695150118191568685223311581354566162575223015126979852383942601715183125569109552887698944077459830336795701081637087844114685217004925270525199658614235388694091616467880236927348473048346067653556332245191162186223698013865016133024632083650677916928672076015045797170432533085264942035969062419138292992545422320475208555918827506088090699851875729438691148359436677410388917555822314123515171716806881176350303122773412682280734011192710066799326751355129048240321753897343303858568514370427352516171540841913890443067127436176117461333440961260407871051751267562984742425462477124496715053537460836128676439372637975140934196924102745956346690049325205522520170516582204704223680823725833845138741416039537844290903668307333556461926771909527923489664563842865802451477253488174029656283313007005579878912071338588880188080720234878703419516919823145058761117842586775257060403499352497793167996465270915696724405490896909625405825755259338296414994462176308605297863181901664894750670814814207146508711714940631116586734142725053789379062924581352919036616535755625057302683138854383032118299141086151437306388967707448362183623474065068047574136897944847079194135643572649255394324469479614422272709504897948745049383203120995715281338429000080882821758170689608337985994296016520074924292872608382863491858537983465277420692839701343779161852940281183427917871882110706211858035715245377559643385100034816941233625004045419314355965292086898351808029861971125506659281946945881942927714053486877703024025811285576807822082184565758070074608098689709787099613839892828553001432537219978157134207933873859736836447708180310260861299124707219087720271956032270349754877146669972880142975206706046441070332706834025673839511691276655658213127877972789450442018932362735884575680970082048635388425974931958918994678841518432872965854486493966632879052544982725303125395724616015239965485636231645538779764588724314977306023960982946809072376340172357905765296714893920540929276974640860588539513097362500579980543195741754375821523278789096379536604168217313535851161534505026735449066934993003974441107699097902913613591161677832213388703897886137915835338352527138365753801331904582779360426783791199291958376206714556708553807230990093073250493818347419747952863401594311031698465940019365181889656350455911660207305518188730390331954898971336281799172654507500524826903716341460859431738646090147543089639716823612385622786716836460164074414232138964599084855443050123247391130296080224359847936017319725476524946837821106774381760096097067844541039364830877095709181079533162208051356180728044941737283416708574024136088290231238923260660800525119725122957791108821568072639037181390421878140400967188124784944806419797172789783770393769450505750821329507024806425292772321276565331775473133233801310347865987773208536578918924768798917565827938060205213504714183107673675848174470734030374306914477930659974827689812054842997195839209685435265549337908696726188985762842819365222423462321434975194067863013444555841315205057691788930844862708476586843036335868856586245922196881677501809604950684640737112787810751938958670080346613136601227434564252154805012489723458341402483264668949137235041592062682783577294211145063361161823306834962819708899348223433667151272756801571294217522882715582566440422847760975453900388303768842689954714024953221400876246953054406607535813322314098785923817823664590692916783478117414338869137813089211977607160394086559215643549148167419626811955943636877725181853793715545808402941377864060129187741543265491298259316206435838010360934227452669771342504327351094862244924039732985152769971967962070972546914213928748708191951492546351780403665864159920796640770649741012613734876749317934223538530791107740428877413488444672004638092763327990964752318857309294963922639228130274301834762741312302958468654175666594480585250390627950395179855893828258062685004951393582192302410193116717534178764206309835483828500038877452143761654277437481048275815128631355070721018083182032074369567850010964745649100528514170876388748039524815032285935509544365066423186237858700615328010967445362018509953952333947107460522336395003520947632503448008222549205677694957269691516844485161806647915146908618080320056515445648922404286135239729237995306357343510549555687580439338946038723227975635710568443922956873260321227521680337344808280058420766000832634779535895718054778537780155513080443200476708773641703422104125356494259062341234265917788751303456432233152780807064104058861850496206921533360729420808866930622889753265410639620390982300379330641481986837463126661356744940416867224693859413508747726607458315084484745757357804600421176035244696618967741508595644874774488842083050073672830569824846989852729033890812331310259321200164029928605351559447906903212566659483877889816578283815367380165668853675369893457329513253605566905989576228686560114225705031606631132314779097860029412273626121770073449894411588752465703898311376903067752348745642344595728681548891278828805084416640555056191474767534627893748194548450533054378894802770408379051191608407856284304155023142333511760456296283771477246670381929350882241517087384094848700329501912039610262621926401102379724901795754938892082000368186233391716627842728112084317794324477505624020412039215357288414347194991164991886075887455483092408656182867290787992219580551415089111560843405738323706444683253399179609700575351037241644981076808704676371023771813342200774936646904683915175417084504361268132244598291749993546925147401966110024419327530382106952721410382544685868520787630404298971645731844464841840832504757165009640533215761170722435560352623986210298623122022879712594077179786100441440168535947707445259074517096423857426528010155581110920273970581913637179788288605133625369329786076001452072533715490564618128224870201958598350554497716357040883232587866655940921765067583405216776610111188141681783272755105946471955013245961835271051491494740478339018975941704664236413698491394761734074107809421081502935111885151585618233100012229133346101805821192735782694239646149956227187615529936748290377925103943405013364499993300307333749467622484953412780621154808034853217790526133846573458901881563632360372994527197652615013338124186444670272787564001971199253066430272616707273142108496784564421524552295204806079667620456011292246339459107445852330264069810285358927877472150265239553681730034438838746779397089941454507279131967462330734107571371092229335246648476089079188851034310339380065145873187677725465301254807177578585927332059237477903403352187787284777757093061889947647615595242168084403929505244171565487246602552742054207459438045731752456028635589844324810855952588004062585819189836116875271571650690996051219469339276367981844594657636782896796605506029450784302310273493122659791340610317176852011845350077948976473840247962852301605422609174028674933393711088250448047131439777069692622944363820212192921071826677702988261202919509402412962777317038789080954591914634427317658665197126034331836816500440119775657426982910090831154668563510150909941608819759368531590286605906842314976986014858152339148221489822407859403761210301042703029647604121578821804440717292905259947799372951698548727599164121169133179276019772782817375758904568667660660799543782920257237200419370873770595948535111385058355624905143778606138282808600776235859482404705397373263550173307931248717810103251370168944222195441359870732541043511651793586029963586188159790752874570120302417078457032530712443537066050260545233991123641184953245012989949287757414428612387985528564565095125258247511438870758583832030412896170166214973947236682978329195555673380392316703834407507701705944375116897017328131101510005711162448700441505259023949874368643145823036329319440394802723736614315203983627185765227394514350249850966691931118087441268421873142183177113114690621627928577591841330001823652969659832247059925097866589908085008714806331334248275020288740738832217291849232976816500388405756239280562739507293062689137921704534162376666839173612782285408300528648650809674225831362387142977560060914886239880786768785101689482949446669211690992449273524555997845781312617551538210424656802299048784802653984900772251566342974032580509395343443067841712939330676318762045411337281009614545956002081337607552775783707701840921233267212494309207779860559419873562858511402705514596967878470480750443725554056586445827194574194391322088825841098826495876661137753346620526776066162721040116933453025691507022453434689629862455190311797915375979352590267015544083971986250687827710901946355216694709254617412500119725597831323477583662716128448284309732939017933622916959846376340577214137531452186818478888113683576796314769712172475000174442219954600554021913357091507226170841624627242959865674977920764634365362863728850759706404472328320289574067868714808318567205381653569792074461821323733107560497620075155422521543724614894170914414989485228758061014162410541062729975899033093188631676684176527494421164352658051473509160019391965732406439834578345276201382532161258532390329685208632109179773852221752458351898919894909660939463440146353991365932346480539425472538184039339847403835150831742438739902427188310948576184629568085217129962768985878262308977453937390988247031068382238393584500876176216977446246291399721557180258765416012569533684487718287540866591166333873592952665433595699347925666087368344304929666338635456958229660339108142201041618979967476613950027181338392005999045136129852279866690988525636037380580101974203240147232987408133343358894748263152076167014935964566496336228219431471817104928160486927198651359000938431084454023671485785870987847605921192503191491802505177440440460661836278053618889754957073234341505656638863366021795950353708184226685755796866827820862403243608220799193752780054302164050525595704775736444693590049627243276480795184112379120109486772679023939241060182651732652825484822636867481178685649476127799852261845121457177670746218296630842822935720267921303908428254599720157066691080999404275848258227220809543027872382560688131484696405783008404453057475532474306154214342532056009200046011865506706826293586457522880364791948555162307731900504258681674125104054704762949180161624253362525449875840987446325317585254800278778170856738415176198947229567264099081164043444585195491274256598294879469137415080083332443905977591661897907377936849204555018038732775930424485075525143333672542098312545364190780994773544586842600570850690971048897937695686049384208208525271615322883569507342777212830702417347146289571486794350804715997423658646351270437681000840604691868726376153575543966294047256712127976955385538007859973319679251626042171823936749330556179479476965293829196442637753585337369516150082081471046326464144794821044340334632743000386676742498587925856440650831180648072799734338311855767841607019000474797054903003481509498004540067487218811033433386814451884827356251379984749760510436373170872237654326456164293297907322862116756502921108542744729713003914584937593923908572821948668618176309064805039287918166230885877964079043773353880848618878029515089680051434948821228718429288700134613377136378623613526326780927790896692929028979597948030010193703036579880793228510934426636890997669038414365884424851282383851522180603700670367597129713982071368793070896858296560790140547518422386830252491027449109357209631857218789910354208615406243202301044319102510375660946049427047397177873138721025332772278398212312593297470848694452065797269314861868774111260032357550709000555630213400036572376579891864006860482322034398937296590148582807711711216491285532965569165969779023356199237478844362081176226500962429286078250397196160166481517597963928649776199608009988523766924700549318968683955184275948925285228450118472720837198558066928636846766530061472057726715509132755567829882420796949250396040434509571397018868333427556080923395851981999661855696070694632528075581674130582359745371515081531635466028327867257540575526283668240761576707794754853521902016887593936508776357313320840279566080755323426506080850442543735587952220646683007996028511056541955077811869933454056589117932930651154794151689000762830862103661989386374104109196359448474146821704501715305305172077933852886301050777667894702191251633912968954924475353660762409608864227230741122244004476459673248879991272983411084806104773986397946683247697917112251619615843930282244588861779865059753592421146599501141676190269877117450315190205829312946611287618888956087924638656092926049234189494478608011759411564340358550722542468696081945806353786438587614152179164265773939192011349460556345700762856891203163761395876106336368871180536058524921204013141783671337207137265369370286628985934282541891577469422505540028148723672700743931848008123901810374112497284916736405515055840665239091280090003178184853048246941765569081709816245392497137762298909321181525562993441672517262235173413420339178881133166168825012374969893675574070946106835434044595286953591553479589180169043101265528113837005148002309012761443886823266797617847465936217633637845290309992337173174661739931286161077688724746838578824016528520636022268392909042247603063309103789662510040534100840003562397936419177385177865373830034680485177793122754300234758217404365869599055651622315988878136750225725000088121670222692052038788202979255722710758576465688101222509255469885701556341191508834877979712519446681182076898426733029996163923156232731329533215806706952385548174412282846088297648461615680108068590846624136718588301254583884231479048515262062553209004312329541313513759488507367755208571329096076964109861002491141271067183000694197908614446195814811787388010801913734542473426054896319060100091521244007557282737897076316164783355620564682030777412213167526273314844083092670506189714576277802884914424183204127938552485669670002920637318967583977579344005344164378147376672690917425827284193037421892031146488473432822381579250255550940361491397359465020872262797805841345547629096186248901041210541318090152792845408923311655839442565551159797112076983577093587728027930562654055688495422039060062498711559404157350034829962107670718648445764163267277847990274481325869729225982481186114006121974130351991101482847304036773005951936132342922037993668920183604568059862837764903323631448272354008240694466443707721534009118129831558206587500467759244800856309803473580265601636337346136942558883515311031707384664770541036253565987447531125528464516148146282609215209881830548974845740192394601430782573132793338813890693693942990504545547967133337088934782339859120799165364257818442899668361631825038994009509670305989531712686245790050816555393919730294021598759977343781514299341203777055858009216653152017206688491734203267010593766287744911625341317637163732114681013077136112763191620610472678269323281662445958175749474515121900658575653707777285930517553236829123554649374916607836512432052175158988784019001152050528737444338637217462258406228879681373234865616219167685519968131282403895356322096996309001196951865938066623938083437756750777587191647664482862507531811459347988607256397834055419694245534677067475383911334196758555520091516174749388702200450385146382865643942821017352385830737570405305887106971113779872562545905190714782232567339208395965531606598714031756847867279125310179322224131579349465357141005656120633525542965491799429146129422868958970619465757550264309972838802177654536116214871921387646995783058043744173139783739935086730495012745004317588640148545188521016103502659299363748609093663229176839806288040175789001436678637586883035796916928577928954892926343255563908266763880074423506398697236602010692892775112730547776775393775745772339204792102708641617178171701048597202903954880584381688156870603537555358714851572896097209318730770284417149359880425544352647478622088700102499879369475179726643085162695263050200300765659076911933993507486821229121599790377157859635301417738610125552650019174543184282807416007305490232324298443498426590212062827205169981378054688282424402014155058931694531540201033472625642902612985319028111201630955245699372372910509021066157018673646363628650393843394286601821125638579929037139198003561140158878493216689687717540317939246564265474080965873709796027603978536777876375748623582795911152083540957377527144942706645940502982257297777600629240623218728138919243650951231167206726813736708083967272795333749182039136056908723267888385000377388220274169898759721913265557454830278835245269859910421966559850777524845476295751478396570000624427438400288146695538349357375221062025240551797152662710761479930407371330692846566999498782061797182650277744801475514355937232246362265641441623049457376140432772704022786730520525434529412994837918439519402974353280678238330728475399866296825990007023895201951925228244173265526523474173933627690597156729030598016035637033146180515414720807282262428828808271684828191460700756052225114967369150657790456672628657765037358003861728104587301792300507454046150861666273624986743676325515446180829207633493215007871588619966602378754029061893230572657808764323495247207018429162047339799667714348442055377102114317157034702969238326506535515078347240986388971931432482424685530868707770974568866879064266843980196166250476928835079389358356864769288760767287582084527824617479209203287795837215938777106254041946204366132213958716156565057467157709000523864276819627229780287981488680218355381749460400917294134023523159127575081358639468738419032719764874411746631215971681507694890192069525294100333904918180098240892783503349255417996162832028669505270556883555735371521354039892601703395551534601059578589053324159404494929202032147442843341136290186565788931402952700608254541306328545345681906030131661346790571851829958896095699042270252179180965519274261591047354807273294072409556938803865486154857037526078362006225235146550481635083289380075674382945199150068484486522051487274524146012585337237269674431319422460168759208451543210045086651554608667522487579655947202468453513481309526542302546972979779311142540892809089713315809131896846145477923696760006000418262329852671193164531685404076881513556221094438942585091112088313662876235926584042512930599856589795480290439162410803815451492649982442514021424681669388336485295149427150056488661816540807692323638197945148081564499716810844233986190007661775398995036524268878236354927470835165172249747236253537072066833326555826513461138779372419901904305847536423294638579325150724668296466758416289792853951947016528664328380805261150068690855786830166952424509184670829165015682573155957501506062980187336132099026917087300438119079953174162995978782784891972782561323131880869879802030814723542885282282099109816577862856952732026232228458673840440573815029504005345299786119745129514281258101755212772159793805162479721560020143482332905209755068576684424815352040835405478148388905746369083333810516507985222040196533496726325002619206741430388727794180561970974132581699675518725469529858018396382872847172719150394230540446010056939761353498926833202750604360389739867873748735968347006567836773005081112868399647354420172078354972779825160131241711661490850331008276270102401380849663848554037358138533424187532389469485021051596098897895546341255250192636592871475935329799211111609323939652325353076098046022199213593705692745347514155505324750865904135363570184458688669676843774060443620624759296066968915382540288251231109668546368146318619549531395791791290940979375609737906625835574222812439785377257842273664844781793820470643525991306434351125938929623608442625430276176470695790982501751869218477756784396551342093781618175172272499507209020548700428785623849149665757431586153236936633790345935362074280898867999898939289481323237528326261008420805577874170598677042507196060904743606566740535692602746599807571265984754125573942452564187203055214781260172573096000104851639428930683162464013614342756167941614764778464925978803628550774632821142248483134685637173416972931557862687000330588181294996095751964354046683323548032590792145610586722039238244399702031906570018834839870509119842584238679267798625689194762513656736979198196411103511400142143444897945484228369126634763146081384612580328222331517532350060569677098458417602550831081537964357957945552033388296841261139869346877088320940929087367695491797785606744774064264102517975775831497804753549185341836286390973916148775719377322661878173408830670160099411355513641562822730088981156003395298723215139859390101466105016521534548648106160418238705478948712033355383238180417125862330897208472342376768824927789461431444830849721445061708377494866797470762832149418611806711047177987227396656566286742382758506430525401255552666748827875204749503630025236770944036194697745732167494070310730270083683714657552911721370955802581523643106570861810028976082832276567432637682029220387867305375565046539439221238946226240218556477673619710917131698955113628503852313506268785537507092685717247095969940888129638431725333524149638420605365983651464641604672154942264951730371567130878825686577243799518175330356007164753806453882793352586791906799285486506758775912256572167801710916943416507816433726382914692863612238467960757592740400464673475005773882983924710105542743568812229401914113584903878166036734128729487582047691230306668108105163942345869579340981166541720073403022247699647982988778157534960264005549554614341385553237209204653158327131805582604697942336906879046033642547776490360234815243499658870471461937657437208009539848634337741998956977091258894924536882459495685499483355769685925222123058743235112689178350098034859592521850452398517978355695488618900032984566601989157639409705996874135894184386566463550625596691198359384892606643520459214026021354101435084615836659166231395034769972731493534685339703739346915678680129725924171003331148934775833162266255361567592697992580678382118715621435277552071174639914413083552186043008931207372365646993145807970271117349305534057481520809258398271857337998215913420715961571074339289151298691769323557888816755728104466140503744235790338017476835655617419630325775353826048051744490985612690417896775284258888382400292134942965649554745784574007321082925260526821119871437254106772165816106441961393382697928571870204669687321506753194587011560925934496910152315315060526631639096482708020663126701850815832450668832140619686006219048796395728019229566149965822826418140184791460767684448491710651882215672723221316213651853859086004655092918065920212703420262735261313943841950286249191037317985919865312296107420017242578290963381103152286675418509079123255872708284461063925228428694261833448672677970467214508069351729373102906209936630345815906106813316965975679543890447137517662498925794151988287592318884337361907298965436902651591158892709786646229720757486152023934351927699578490038616341995469377452883280485206369606175324664786524813289169797923662424679171748076171068543581645781869994564254730684319353386068398085107681007553647522172903393403824873102438354666806547102119558133295225845277210443491857572968908568931997358825338787348935883587230399844224650628315677433680158766481830251785337753221006486896065129020589586707698776138381317999101184887308641456150434174375889611767977151150680246584980752306708534247999517725539194460159193894477178969433362267904790534159961493478576977246297933378125247749482302168258458072268135835542137837694487128650495014139855999669242296764217907430674066689354213809933277969172489226538148866026378774059736100532580935029278044403329350288438358830906697514264828098757434984013914478309670038352506191148169301786836857564309443226604362040422409803879596321927767629849322084677347189672722538779773308763042857469838154071162522048779757275351679458862695353300592329271435854064696206787310317326040835093097087516432078153424603359529279471463149890351333099010110696095856536608708683356803685591247562400322672746351837448738981908153523032785926675792521348169129096490889924898560946621957483519168302624752448135332850312132498135813566762324289960347439926560399186287333485368371609917871369098850556936302815779411529876822669976997911672983073912963788650458118607621392306192883331381660810114628692106862967786211078052844576534471976135437814660446869754960819056119089829220933135649070706744355766829877638340648379700968533386354725305725826745279243359797629195229884451846869279653765090012452113701475718796583967116654890800463430232858114740317818117392077617120545187543405188945582861334818115671390325637872610333753608346664716895070470957347023472557091088998141809341811954895225735461762166316209265723807499511185859114646897517928959762333937080022432874620427977227914170126446488559248183566970978726537716494179983760457000650892537506288989758494961568362419838511127682321783151772907189318242375774610033512976599953880924978916039391035431790622111003249289023936163695281526570387152537185453813309610154470422437429755821317873934360267697495050809840156016221122508995255449405497195485808361389877279556288873879162001677267661588866295439031431024356088168276282323575997364526326419739634910017666653426213092982336881414503912441543029235825441391198933869499718871105737721768236293508598173195246868267131144432848153212813869687896629540789695072891036194494776716573429935061131225066111406843053445638436160773047392765147076174483705033057749138544955371658274258761690792994875272064614771073806188626566742355379310885901293059217264977880508050816880794280117726311463891349229267289133842187890614274832710930371974404767710126768353199707739908370297862710264394219716934959107681156618194517286712129275156703024310590310892365112680666292569133391777542230731450485110810440640247708196861254644945741367678292670330997824254498664079342774011584273691170520030352220004628276957321588523245834404182610450032434271877800401516797912996280350750154492639403296668730302643144932410326635385869697297200376722023629096300093152509658633318921284700795266461515546528217094613434519622002982112457328802003384989136507525370083782579378525208270883470561527031786383097234736434972991865714823766700378636701673432364112012992862120277694573447088659370877810979005404024342152715378425935098281222698692048259849205595309466951444693743424853562927457533527126314935494572947748489259854381316165639502897317771341865738842253233681002618921329536779067290733765540947167311784523209058263499314078432447328214036969221655398685843321456461952534658139900361529272623966914371076706877399009458244493310288948517845741288313336506626655460169383557568112739306382076820598309272653579053055705768861999619653659039406246941203956236753788011644256904286432339609094880540832180364642478504304446028760313895891145130079216387177603575899439303557394252793792266987527961582733461830014717253893104992047603762127148379352317254619561395750302711293320912824284778981409969569676640222511875164131047195011822555961475462006898495500527053465678382038096736769689248438730595283995232282113876381309088722899809266844309030245541444173799000442505089864613954662550422388413088582373117938692042560458488434090754796259224394312622363688369926314043357984220737591187343613119434471488265672415157967516170484329781100092079956973824897590590490222576035919109943699978821039954047890974480857972061469104630584698638839675821713455573916170884830975414564050513142987279343681007602603907891588112909534077841402848345225183964892237676194494165092882410765661558840602910270727725511226303692096065541996099086923420050837935258805941365909565644426945671956016279694829819019153905534537244884853261759971104402145194091136643059792864055667819571760712743153754517710927842091185225351429511249922742977173390257786290276147851134347801599670519945743317235322934267642847928987558339941299045534200698451423897359629509796969064638262013313156082488942629591968041692876135099103292052835002603126032006925636649105442043191772171568631923021796146554010489224807152448034365490861728993838628627388070290890663870872111317109310876043930426011179259388877889220210335206904978511638108095063133352306799182225897688490522235329024142682050830265265250591659586964309076597627212277844920814805705227679567212706513127144936394850567136369703000690009750440263408856258918737870508859692267401254977337558471606058694346950128849752297588448797846491103033982092482548571378849803748337306345956691496322961757982922566614668219259346708079601102859178674019989374930267252635141029702931680503970923131730484633344205986890541727968575143006851784600841680484683849674300497894921132980376099361703521441143340523633604416975115047514295264501556926939442497107163821138959266401318969895387626160907328862224982532594815316071326344157516645233819060308314963371038263755113186051499144029373669124413836883509924037572129153160576840745126167746105055475628561023867035060911067179863074369356975571327367060788154845093993199663606872484116246740495535361568637695315691493596140380175479761620465038362129506867892485842162673685518653635201297803670995035248302183276499658591401319363109481707086643836519854913402481175343140854030588717512823130360876841252620233914960327442081030628366081717945855844042310494200597451359855228452402403332684685268229249828944647279366206997076855044394432800325401335591505227831915680919852180576221425389558839189637148336204062316263569441549495095560198215024321558457346778233991012523747822522331637227605121960800030016161631349517339677754859520495768831244369010828684215244443644107961866262413144834392405032514796519542151061548210074312784748000639472047899611047016426068533098499082850085019572940383448441274871428783903830549498612692460144014657855662091584969730867092292330828696544593120536704573880941632668004689240236375546811165337497286381912666066638674866607182700551211894922216335847729166444330455706490456922376695185634922196562317170986938104568089958805586906430873242282045412294393377080564434759170843405841837894327835495580739155538199293253279373389197541542281962595624938654277919654604933056808319517785038281707939010481087853434457577805064181387746553895474074973880559134985910510225698532145646122706537150444719842580949470965296747243281003615455831383823919232257742358634652670935395664244890096335290508173943844593823569788951832295503754341765164647175807861700271164433337354774719191641746253140201814761835284250894194074182261546998671573042064776379175899750489481189257262101869159199823979860691435450757256456720939618833920549731729547569232315859545437012440541138071423262067452721837009911591085521558053122891924726777579884094604470771911172834039107042044414322131243837671182715106672587060214905066538149248753692222272798136264741293827200945673584904658324412096902269973041321422479956997361956063915592346734814560851771248350384319849145451422465907451696120850733380200311495685237373522343354174641933298347865284234321975280740803496468360477624954460535353374943956740164967800866839975811887499671398811011242297541420581300911061007479971075845031751609691768800868648432047353377555917153590707510860999229120444214852600350918291795374143068644250606395313926484956368462316318891682975461519009219235361468176422522330320840929139414704401232385431754057056228334085661413447070673214545913891166896438724036021308363775711414686202653282606317944777645231799964085924826205493988026538061088062186484777915387512988793659495777249061722877163228716937809294998109336077639915420734432706634125141261798850817341257844570575093793786064424437392723033068322090645251519572923257335047690052936168975411643970588668524998324170317677795054384188563521946014881106936457442445494518652021967296112054919261113457944439629510268515775311872473163468228588077120751775174815022988495996050588770401833971304941833139908286897514904810854470397945880784983392244161875337445108856448793518877711559448477068572245508188889416158628781342338974165838374795514758046427060316064387405387079976954219771691359973030709248742657166974392525996000638789146717845804249679265864186253431983764079983347717272088066153618314542497806320859304051612166147641880822543253273856528381142569341937117460458638254742579592998172426892567246892038727823359973430844370901823379599376223289058393169473833139167156626460274679771930387615802920021073450073806774538870936925572488826884593097166589768513161951060472196756047587531017050035762629229608437799811435005962533218180160893190675649986644681658885739031331695488577661722380670379909031341310590172079707935606451429341489247636614780465790649155736409015029827862845620243544251182797956187625782047299847063518404633560269788654304291058554814427554437685580620312584051852143434329287280304140354573542203401149616396255528230626413561324455728568156115839612527805310388389838323721286762055586537350079833468282822016044750298424578017024342129773888320086253191527906123783759352659040881713757612438008245018825984870574946038361033532013449328422235086426472713906441302847652727305664680818221072581654407621532754088958148003483836020016256173362224909981496699523628880447065894011775642266608697239789059103308232270201587165748020061703960717404515510556162681548433630661413460811213630602265221504841056230641018564455378263310507416783243630218955962271845282229081283257953336393470982819204843043523366180064707833771165501900392906944034922128683115416886291658801964655275513765188830197978405997355560344778105694555632019776665595797736702945146699133292047142969573695469649782370954008796008208204468524840372700442148286846369812746490015708718756364336943274086177008028547435524795896275184622332831917335262327655716209216812770717364347657088570467675498652080746373900921217267948876078304352802705242170879578171485993075520232963142747741162177883842519759453695639151962795558417534491702319836672144422859016027331008635303851490957040253736657667859074393499966276600434526472649309878809202522001340033521813541616043619880342215701341752584221754464423282118531010933544100882736076050912933620358984193491223840644429760967281501908525722778339680511836582154678652454917989958411417860007415874382129352575557660682291421992197992386610549771642002062884435938238353041312381937988866172177082176759680664484453324957074446168559937357415059865292949224639494564965631829600689387514843075251777827069596559489011627299359139013079504415093611269966428153933258998034561731041477102381098360222307092447238065327518805279369711181995733455788208123880225140564405537317086417123718198758647300435654574243349935708483544405128384750443996095040101450146187363882474491401585283877502596143698743926671273132132394892362787837837740452178955279505006340703077104480411634464448039265029051927088931897528692595578038706632631409322738233394258515409011172089996340812978368626246837291157036909690634980116542022418036541799691688398995174083721755045566092007768837688344273866126877290818658381967130644379632843221113845168028623679794131731178252276655717722223873989746861505443706548316003288486661425271518280437527146544722710770420541797248410344424746560612000166553983495131589340456198409323698778184338149724476890741369385799212405367144934984862046691892996356876448863899795820645611118810564751922982465492492080416938856286532250973959427779932144929346441018971632387602827014725242182186435315310875639594992661878322332598440261480479082133519482445925140196828328253363101205904896210715288094306178287030828181132534480069019314118042872131699988832619549630576009576027229740374810217755585205697721283727241657222223895470559515056162781974315084891044597647759863352956587589872480611053007123120922743362669656366098096313722569411401102718935926044139643002132801466737385835303204222205956189246039199043084971164350257150373471997187832084284092465177137608022145717415093964032209367020920369864487294901265847438222726917559633445301422451533128620085872978355093182243259435319212121861433155316211751599576449631269762759736985094875338523592490287205003203861657801591690971760468584145591234694469281100265496511515630202317833554685196125710844964690383865161076859129034214816541822374808094247483870203627256842273138893429614927359365732836997426622953738784128628431354209445383250600506532809813915119116176480955462066290033240670312456822228611938940643843827010952110125954302154572403020211624564428199968056103527221935828809602323960750046988587399558792125252517425581900812200187969668151416947805937022997054035068416978190221193380296559896163845827059113987093085655617788984415252957915139732065376753563407137898080096625851786579342836488317327291738618394258820320129775780583073611943625822000155822237855491947466484506995148435940226631577689261390188366221949616349570848962339131209338022209105773730214581701916648224199300963500476955955338516038998255023432938580400751924935015223899747087479584972664384026296373228879197584861742177596167826852681392923662262369579460523410001723350482978459578732794719293424353146974886337942088008083532863709761267922939151362441866191512174453376583654773540640834662147367152855819266956232101248638537927390957254024471172250439131211625258291997487950824922646512414615035228633047181819820838243248194695786486763782026814898905596883177406889779814688295332886103269119308989669409901695976086047275025997270010763241031470691860548353679482054105306065582376931058990794286070611008158654010463285491098659935488688919257976909455328944201606564475433701165044907893041698559830919011225626736974781094212925922460310616543280827808049643315816693797780279233605148502974000921808849013939979042162345386080641665027957458615429046694556595673543199053882787055825126527328980464180445002022542446155655976826304646719547473895799623345549754313635213422826722925811478427386094224160268286371911177854925952632804753570369286898689466081122152413601520603924691299559180775606576819037893617731755880718864165504947990900827520271881491441087849289457497359003902715344092541626481065103057143571433994613284092027858714909984370804251188393550691776007793500265875016095307635878117815831168605575614066393676187031612130180532959283899029446685831613872391214691756209741400825793290692842895693211744244214196324096394718977487748050675938190407339226444435102906877924945650769060995847471053890286116279336361832398816048218048563773031675244531624532385783827053917359297251922485819149811848737859511190210201260926356090432970406280807666394550304856340456486896389763528535638704874151793395797952537206295059723546335593838617926829052345251360848702736676216357791559704821183217897710423203883966384175393684905204982496504530737105832212347969838334933024083542362896716356872526395620054419132983458590074123511187345469308498097496396784598566133966151233693793876458362109700973465524642215025407330119519342151796992310658150752698148566376574848466941500579463466278688247270620018982076220077794784465203341381896272203173571698053683227119671644002748915694831913478019663252596200728438240977336856825519123770434641937817077043636319525113917057352163130638745606483739011654879928719053499519456359934574081412335092923969496482088495978377211989655657379312061199740338381736259652575459417527880689052591742991534859951120677427678652082224356082653551390900618070313315100846954004344079126596396117616192239398656407792460148683023881618417857495781748691775391930231294831681516442721893763796254697440858419796242722363735051730282330825846748726546613471376886983695687058437801654376698015859126916537734405931383758455371912786282809526577239320147275669247523646027102134935322379694239703047452840222534168575258797489127695248387298218260864256262081973290298146996575417450865297917148090940772848022011617625801656083494710224411105927018965211252317595270188623628159127609918664731691071468830141060839372569963494925448630708881924935550602594780422593585640782756460431284577366123732949101281992621125336471211250946610516652979831947286674996198037070810362572244633484073488617853068071675907995290361387100892119267672231532890301799192575071512624243390755944857211527470434105192256954506088742676463002970625025390577666932627866927992649273792036103091747834935633635945749905619397011487767131467427304031438558630871339939574826766354528969406158783168090113472460557202384840623666369691299193590158652369703253496764315537033918637707862640537655733409281819676249739054617496034117029835535667304428341970169626946300664351141098209667200280533339399627098041767260790708865768089854448862105426258426657380739756325807918786909859100288704965762301091709381586643610177934050340236416230796084329991450932903515516555365641261234504366073039725924731498542591772314038774487645943994256356343675272931697696632060857932720267644633810450751107659685815474550141479079314878228788699819462724622880435503798243111958848054435986267052969955563115444142341359497626513411912286732125324707380232163379854182305881055863320118951792690108180496406599436207842566377089108391393083160894970169175280025452957781382186657411181361152527442626991188545438896809565148685771286922406514622131296326229937494631667176586628223061436129320889578687245251459777328819480810990168380465352861911103982080604896479445125180104663537767050435378647526369287821466504776286113833986918974517386980092257959484538226728012631703869217939240487454466757528182502249384565750787164550821065597452666140786712353498646400511452690460710027313675829671687038217893933307953147450962705114426741486051182245006381942008833096584159518711009635543157683953414829237290422707013839770126012056731178130373389976947674526227524151870678726436142700662673091239979090786732628128380783331110393928778802111780237013061506997482959949646195687400511474713868247162792890507639719078559953599823258838856555326332274393842239773258380983770292718025535429674592692247008394558880647505734771827523781152469695854219732316851544424585824380703895484445995250838771220645565689584211509428629146252411794272609214173021033086145697332812851694593191974823321208413408022598351549347364106943236757796111163231174519345252012172803970928959469993122365304041708136713020481654375650256677936392134315753718753655084759997153416455331192521875100638589090661000364785765067081145708680843453541679906451537626939627251184357630188302332024860652207708996796442097127106226475287999517618904285100533002869791233783763759124854144384370322317303358302448343056000764666977528874774977719940230377792488698843496922413732139959395942948251277400993160969738860865068218379086143323848366970303316499382715424340245364835135129322726333258504907490989293141120880070986209137884722619352418030628922269605636938114273787261639900061444068574442915039204955344495127958214561750000908478049437816535873427016091885812657950250247000107680120121421453255745513246032925062699589938691974528987250111589244472672252081875395610134623661516750230546007841541656152887015697451396033153005118236322592374940534743551563481316205016310065681514793499195584858699803906361001709560742665457083208787122386151485786123562420519846618645386068322493422206414156155950699081202407654035242735426879050454364524527661059791072590531135867097608089466695583153034406769592388230986903879105921489951012774844555767497999298561528915880645354438910311242993434073840679726880548746448725819321866236172565946154941484389239858935139916758634351341352500632046789515694268063012585232612716621869325582728738510012198403155252728450623346560176681815765371968120552564457419674058937798706178006281210357480954674169865869731319008604859511998871890993708520645940757163791347954360964596242024628062117991481916738498169189766160336393695653786493705745453323922641735417267946792096589148139330775334242776196516295786030394246281997050859216425069905983419754100284305908680414858650618079755701836966890960767020035665285231428088812662212749672686898181887132207310292572701551708001001769425687974920299867350300278994310350588090397584099838380833319853793923558693290006853668536370069130830903023741680242805520967138173050275456645970439084168533142614181749775319409072910266717779879407434858059581735426988900450175701891773129842841739331621078898058324055513438367578623289466655064015735609023740675818251524240047925598699743847602801460082496158727152331408536113389137960005716022165881393887073751897706293029697617980025136317146728694639021293833220797670249904413447632314396014517935672756683054346603568648965826538568567011189365862111746746667830886755574457164109947682935354216205290235382614342447735569704319855020904074916277383569342388350673868632975592209516406633795765352754623528866428918124342120705785499307078552453450220784345078105361262559562346590417313200636311291672052737344573527596087467194797095325706860974039740997517432708667332372170179620177792856023307293631407628109008312637148239435040369732009553859564830996104328815893973827949681133074971237521522593636778568713344250479856978103379782446196894623540904465450945189355905287603703900318615827898890817893765689760322162794147107235154598877175339603345568320153838892845369042083239988283225368352633408497736173731114442467560805688780228797251533084469801403197897415918429806399923393098256702156924532465636433085121697648968886043956610839828871726802226070511299945480335175289362024431468390514471887358052698453214136002934374418113727426356335335027406780478092209174366993624672240740133702574416177742289940249884283134836476795190492024215725137989064797069694944593029737840377181696224111356982488319550551843572760036393998882191199952568272519672616409061799231654469624783193564310792841073355775944262410793795094510039388915470563422367177252191673376019853634669708363295155441929697184227463127206645388616063729734596063763659980619239788888481161012356550720532627756822644837668630061541568522872890148296916173710560060595769107731824725274375673093191774927902525398297535980815185632765441851633325550566081351034352527632237236459121963944837667888802142170728353982291077048435860753469273441544076215357374803188897078057182372392481883179368891313716070500123087025595047835047990189694753298099943174913524169806109754832443889438197559819278341810976522421516701152636688869916658583182849988073812013026053337930726358543278596225958714177726938836247430729139987550481989347151175743668892939811532170067627837085655140520420919189721958697903001347063968454790476242472639714273393940788964769174950208934072757891337778084800451826325242195912557154005802095797029549834688925488255358200848751551629022778252386828038200817806840119981059052584084248089090311581842318337888263410176346559323350251268872107792017690086332839377052343245226935202942313292268910816320600706943527138243023512152971418738063726090752689417472924785954460796283598073737135527921199104582485007072627941035662850854841535009744111291156067367733973470568739934209539900704967422990827333911774963612042931558013315806536700477876267358951840790997303941314536471539554432990437894761312365581522851513208873614798335610587796069620400159671072060872862426086195095421953840739549454354611040188440802056508683072506695710404794452428746076988822480152579795765646192283784791772772702790255523183909541554253444954796550910372517938363920734219509460687765634967186002773382554517116258633515900141821455321739790773557172996487838668446032723530848205792867422549869671381914137743620392606566675663681144478130266116294735077816700366757940712445809772741924650277591163496603797011284270391386917289381905684151328753906674848150322461911063167958328639072919872636207074347833157122576178896803551051346704703996670405823620460554766728542324769724739825855719470638702626866776396909841685448748149724120997605083937812948819764701464659922513301078847789933907270652559005505936228898905374630459141765087986532607488004268100658179346484964305472588459892095540021478954959797604698943256423549984952698639781762907313072562311831116206285721259144201462073661806075017162566495009684918069739729151021586700037362525103253733649087719936195855123666153521487342495164434799418761181882658244377573014516984665732290139939952212617301951791950133140345127034080751974197279117058113760281402769804882761277427317875853359914487614579781049846511853847785824101056622402221448433667694329343567871648115517646530332825216811758281417687679073295947017322022378622121609591157695912446482059422089068611074886865966397661640484933246790007247831574504594159358560557692091944518683570384233017590253199730946157805870598237855361549547350840210776284409992454737916320124140205324002516451033665779988143224545666225535031156021460020074596350623610339610655877557460892378982355856086443957384747520776017237728826761276143494817415855003449763209941061178841807998657693725333456816488225612456696397953553997503822952835637891815534507305070878646172933076586437559530327272625219121148753941377683261733221920191127283926356250641882942784801720740208939379581875086484692870068611978409623364798991919517924884088609730941149532750067213191060994196712504477247703118768387888076003779266778923033402821605285380419139271643911800459430745985754975426758388391996854681425093563611385947971456401379968979512022285172296628630849206195989225480420374027688421929279625137861611200245318422538183832088862725967988754756285138865725052322273549439256342852416387562625128716695946830763090449960395049619282904004598518470011368868816322795020545590220672970842223621978060847364550436899777427115582978899005523832864472501383873824377469263434249757515610197366010327545058471704329521612929582749680511726817277429471972997780254978323375537420024777713941695620614471188160397657639232888170694208522049719759578192944736518264787334484884244806406374368579596610411465234874286825009627570362090069529868556840169209480577452138761475927565352772894133681295759950426535932213358291873207898821178338096321091611821100331717711853895629505490798779781003954437224151456724083446284109827541280967665034216442965630074769814335728627023812089474359322992129137899975347855060562031829758599622751491644997553753162871930757657611646884787960872876105506418089648490095935235126360834501086462657907082908647008290322330894307233984750998667898916473553716066255297354496094598007032279179305765202001256054782750212591865596568744678408318811292997671475545025015190888067628699211357693049161639800397196445843963410158805445780419089586905596447558389471485946869746371720837205260475938558067576085252514773070274799606151458597181235733409388685297837460800216323944823753917058173801508225049694488220044896293907266422812675592892632883822252562561584445325089221563486505780737791932247813845551985728371051760801754684579775098796763347716107374447497460450088778380233333315261714200294228926133723800696952589825654068747355905056187446285277715279177218551085731725069069406824206500099851137170888215523645032429809701832854564514701257792125378773747599147268270043395695184137264218312122859409617179576957964047346449715094933003477247786996332777026032493226653325045474164999221727339429414399863617320685698196403207176169097529950836580067432252298016025532603692105789633039316765873487582077859135706412128511201450136265781442888750601276982537830653717139862529024285907452235459397408251259899283668984080080795675049812690528655331166315696175208106965814251372283186606542879901746883289503065063817639189257965596232992115318681835674428875103833036431632519079308261420295546083346655733450232252982975829469177591942918357689876285919639446677992246171390122630614471086449872092188269504289541163296149632079316966627035677681051160908775634864291336596781825041474975589541976671571016206866412269975223882861800398629397156684500458728753396106065467660701967590703876389940382697247980524194656333446039211345993647257151048551789078229824658185643607821384112382995228150269411396080670516662049022135262042992107475151343938292578240794166763258424803611386025068243304539100649894835853309019861854282248541833970354119026658485995371923041978781405209976894385297202537483926892875069997452743504275654003685456731388864825426741873925180874952281136013362569656102429668000943554610254110542536128822814913818749884363821236039772291479882918332996910870932513360079106355691663700189815212745745789575796410762482884382733881689837556082245082406266856017323840787147931753862349210623956268967638961605059421179253592927432095896585468699599369938542491960104702624532085948756529479042147784858160571536392972854333989356420888450594930452994783984546756455640696610894038225209805459433420158148857544925348084392386897056759194595878492756143631748878293358887520588714246059820195087113696945669420820363115197008984041458863605555721656912655621900502891863304233272453397671934024163291497781543246025526689821439960415518300554967067129951266484811974051191707152306798546149946194789527841831519885481215989671523695937927174178800265391364014306246285830184465805851112795429001464490869436946711210273188219732725602147859230218491836705030688764396753572529029688300951636014521320799835761890755868163176023533635824965483582156275895818629008754348910232926832796211089841382437888505404269192397786806221035303236919223243128197711641756985084804307996938197218918491560465516100420482045834088941785248003809524897836963118699867584699192959397460538407589826491008153869644602362515220766623697543033151397349487243508648615478352963464771639387262265877601464578492091287852837290655497031761807124699837349566367336045555227479911922993825676965336832585151187287588514257952334916689962751812894577869181847446359695455462299225118169956495421224106623847541797919320254297766804202353423947336232645752090829600845994621044993854016468712388710769055702444669158586819522353067141732040257272337120897858833250815884913042887539748295959750962389294856766525728416777275277648636879744901721655137757590097102821392930879019587104561683901033772847871513805545304649839030785435884321309607804433811874382227439831316153567422891535980457807639845835734475371770933030448384087549393733591724897097007722113387824068734486102288324336973662891529643218216818508833632297100657159579759199803574805752437121060865031090587553613565383820827197821753049108922139203075978654023642317099757861175596454617494435096378386707072111790537914536044766184290273718295815833197291954678244000910095699201901546028843730726938859923177281305073674839491154243003718005905620252249565590744003304366826111270227433223909974108983146617987198202157038310610492472503962150460863630740422054763750756964498000375570485575708609593508977080945693890898858871986977490873100608140502130539073605523574044169479131575670288017042914986947222287705780909469499784692028702593963577711998138222872105133927046227602305408314349092495410927685905632581190751317139471335493427124104313916702613128552801579869696844593949086957556446016497088457737278076236151788645649425146726873046231684142576796980217013076957144003682200000458454949241708502087509459993051076003374830628708892026346907291054324847811953744461764788427679652061123194840718829680133706764335998091059213947358147553286657169673977829659583687248013685496403954807326610229459122555988196880169207259143199176272639388294847564555893718660592901668835845991061842712341650897209623553750635704917119119031584183226847707543187140753813068140021956955108861940083278680177654957396878798198661505548151977205237580842171955995781088066053352865301777405692280195415753192321560612640810557289161857441733456529465583584756810756620596091779560165735912809500782618600023627191950831133411503566970403146195253667216007071648655913729068728663653061936708261667577217036056232076203662408804097546380562172565797754468790480798174837245419804335697551601206903731459802849116487847721890419529837683134812020911744729260218734427577221234681551383321691280948251500640702614157725911500918751856159900837022899582682754332848191133363442632597174090511863565089498371323900923850174576253893219893196959386847099193368139335826722572844628208299945652447472615165732315748764007718314772536231539500155399969731811514806922919607823924713747585307517791914947994129798912914745436670851570406476639034884785321887392463634112121469822197996046667719411231422714974664756559619325894143354728417514322148122681454574203270068323203893404164660130291163263338630329641982650025360539349500175076791225015305224393952555431894588797728449913786828555545597866733146091293462379973719665550821161040787108881424220057598330457307245234401184224388807428033638555587766500986949620703003174466763617020744762109249654928416158217394427725190783325099390316894502741683523058557097931702722839659152305223902311366228179429845326250702685546547071677054974098559177098445009736303315167120308870406047315482925510928892027030516783762789798036250511358933334117008030769903401483723185241070912569989766768364429937427794982521755530457762510520624491341440521643796900457188013313315289223082110348884598177243129654965628718308850362147190490055726885608816750470979703042753047241400901135918532023272889637026539987186704112235510358545905170787243276997762915182414455512763917234889127225940444001784669016982364435449543505995542656574383769996932671243012551708165632615471546907830849264744626643272327679972300616181623819801298011897986350224915813345734523335572781860341073141454949882068622531804160627643644259872386256292587977025108493186450356770756957699443268312094742606814733611024247535854406381080590269877063850413490905272689280225528535572316762841315807988248880224322043818451105627990121401378942524220907816793442202803047168362435883450650291688256869817690669113824788185208525585004873260458891024411217791932122302459417802005770047980322489497853223228049021661952329790746531883951002679829284700604595462435964445189169996422986234655217992678019406333251112371313809371909238360822669935948760452053594952058377658307070060059505253404538754881402619599477652360138584906933769951350149773110434788845243667245595950668338529884934878058640302564343729448333679730185238630924946621398251107296758283898031627470713783268703855934544062226179999228490054939929807082040126395847710272631346833043062510779182894210657227057955093127264359670548203241671395500667947160990193027469691631376539242924433111328496434004149737055629724758334076170158529620341557163892572153703735540263673252648521206366117841915469510637178089559561516064308414684091691734722087223805724422307723018212045717537702853183645738092203569669423962462620170403227136101035456311086561986663320190723032699126597397052784752985894674032814323576099702208178129830694186681463575384296876432418820503052072548868725234619717908393278911910661411718164889469918105639256644121700947949096909507031432392700063533745492655493231656376667074999947566990570265916154773092185202152435748175513685771423308900406464381624415175794159742657214174068605986841880773764894046365169408674504952235221610047379924286081240734404921789871073460178511728856200863450230849372757643559824864304764157906632875360249313115999490744786653874035098046743086418711360650011423037562598550044245732137227898068763900523118635153205910337419719951631260078722475896240193723083942488296528661393130097049201139428424315489678189913690845304523491322388898972716553498116709160046397616850012952695234748753619093133929199076887474355021875427569404013678606790196558211300008176498609082201918547342189864961486148099682059663207391453685057537944554864538376197045320167907837536885808506515262533418704311453020239104308570521689232063935207566548529416415026379298868254872586654443024310812893139074051788989257037170768826617184538040691041815244791501153656208690495898647623748810352692566685633576472783038290041921492219927445614967645449308600256399585189214761393914311233416946419980736658787596110168300466848289971796007949043893169480942910424706035043766391858517834271034656606760700307044906943823820177076642375680988299152821467923918578716016180905959955849529039484242529829431658484849439594552543850065202760504913805820996199502687249901182715898857104879133967004392368123896106779089622051288324312591851379685134454922096307618081465272259575738499502914934957201532041027126569523761404796213317596626862970900107908569364259198797964143114150112251681915058294117376036434986051054884700355286699202096436235269714396709028119795228047673291220687382895181848276274431025311098135525735850092545937179676750208878133475006750350071420164103437046915334975818928126240855817074194092164220084126707576860950824884488336307189466923018722043465332251692745986802446771560951577287186202451903749417828495604583014247949998968280705096902546300610160824229296224172151941371956812551089480185650175610431746931294556615210799460494456896348508181003537053824002508121700334881103667518247744124480454766255223230272396266080137751380643140309596487584877713640926611524595303265965795017459388777601855014664700731837357186305197675779919672139061879122604413423678568604654578176961396565113974678265374638141133274156202316324096277212335839795950766226966696957464357553135420151708395599120364382407633134996145011562812055600773120027992580843045017638960272410472757945954067839440407181468059519178710570565780704254528848643147406198682094821940712280278006923772929428656218323851194420627431813540383371597079559252545589284960313240270148372567555613302742507564631137605848534287038534447779685129403437437891681293933090337504296492778593614629354191852503388374232646089771581329786759251954678566139336367085293561186061793716168036836925366428006548889284217633749092061747895998023101786112164898733510090130579361004384188744913136834265408509387811036527204038217989587778760943947977342844134874979149824382693952430884020889330524870073723805725883954735071169653608611633049789187410471129002614757049841040451516528204096612195958824418006965321382357627867603772060732950383999077080384680868586650416207943912961177800456845298442443242273305780480971560216058844241214970091746401384290855376965310655665224475940488818525140760112407697660907825687045082037053066407377282108170683621585710030542961854463139570522565121938757449831908755709128244987889943060444815054494351224020414361212497042821543104354137069509882727057152885503720711448690450894662802958533594177276156834784767723147814112750168701370976192642824016010656485293035627260216067970324795167904404302067823127572426448877166415827370296998214287411325270009057248275089189188318789516744500458232079211895270502149225383492196886441437767355804550297609605001350374423028396518276514337476439629924397844629821306117824311994045833859120709934319593647207529226330738673624507526412548798417769688416376457333633390685903473917239451724644617181022990157655280711286595437023517084062685897929108417113672878128528298669926794886496660291608266439671750958365750247568877746619659018045737568704003539445290056113810341445606002249156890481827481362592394137734244303071517657738588773623450107980844052253792426649114988011293813285634321695143796072337025691708907021133328118456297696789006814020571884795824516968777674880641527418585240842350191976458589875383392965418668129792969133313286721748474393573830928644970611097939366845245808509546782278839483423598120945246236429105873366207356709946172507060837235911249283372492640774244561175570603080777384097311059656133498609589179583863187983521607577302358795144760566644450113983568845165471712915771046873184602843446710629917585710407874985157854228487650495077794106341652760677457357327912635914306343589773103181447250365655074841255187054376204041060263502943317358688851059695408160091969545085004866152130165304387764256117363601024093124898319047215354345403040957210487262694510374306450307850834937533481225520123147168481461103727814098753108676357863518179846610131601261687063966031957820791709444199716666459709670546180137967015321284056823169868625013534578743582632772145404939943414437900534563281356547423005452171530026714106567808072054294896606799478679291711553617407463021517348793953687359802849362853032992618236758905132736692019806111500988932374845887984880969451152265450238153316542333252536905470247415224184915112231630037928121353407774458889341095651723880567122757602062569651628463432426234102149782573611838265043332214356093393582735041280998360798790028829903880528248771924237921261300162701586518968697785339116947837084329945862218854969677009834101963935432863962191893842947611240921332176453609918630238880675442128634370037497655299711229456829004772057833315501122540999646796825201789745390919348542754164723684887242267246065528173017222640587071684669185265878012962849138911336209607373301083922296155685812995102876699393122464605874306691928450129626290352359397833374826974269043078390023272798848140256193348015657693825274430335969284557602743281999150540412602584343808651105383958769402600467182118339009357299056967619680695376040669217171219027178493700013637236465456339385209080883927163958724946914936233616226202861502593326005679609847670881510586013183019117728794171139050225080721459935238537404910666827117224555902667957806477212696232447749420462038954774920955291637536067468149062237054276697281104281622987889901203096161740117263380224787256069964092743669325018670159647104102659847764850642605359188266365974069407166222666627256380116159120388583353243144100414060920830682135917113531447168980742369737358530971868212949801185952202666456520221661054732472334130903507773439617308206266987433273659441866087211853652091055134115213109859759740291280234164852570373388872630658714346397702451314961580717697055829317425058792600471717340185634576836878898051666434088764189917550716090293051900499491020297279625057857744206050111959278042849041763051489032279432288997090621826913678880468578228391977852991430006283508646881798724115098362243907252544715570680803293750336035651207302744498562116979497611824804942727501895651737913188311348929952168449976819601416611136065422641293438783824411459016428467173639967590591287970872804287063729561582207260154018987945145496831948500091738777073860046606084613982773479332527372919040733701120326115956091700360625367418083406000249875964207531153277207061375778478768038368958948344769910749552968396674171375352897687685084514735230050894688992365002314017976341565967467866253705495708517980180663937587432720956762203666268407943791272293316051929015872888965530509676028543093853953850083208840741619678149074231773494753410835987462295109060302899479569119027308157860872878441846740966896316500936097454152528560786441147539154352740453981256848201304173101113262908795133071812871642230721118574294611678238031905908733515983344350108863955750792252619673186997332569517285635692522335106356880240823680288133921305902833746407186223400502416941290121563799393025270735074769162048871593306183423913912443871245660983501599548885952617799728853245218405911885574769057326768885058401750164099872274369585084408959674583795375911977328655309722242019544725081829261518511470050800905784061312369310235453489100497339510331730655310405511677773232889564022808147974206052747551233319860837192913100759466935976773173295625137477865384938171341150370627688918299797420427765151716982792500148529939583483692615699938622419403482006494998619528430051958943978123408356122006656475535814470617871249696377440773852506383625049819660402555447266132673809143880084260781877447256874790245635291845997607999314992230914638845013233206559227955190299781068592285165447857295304681572714973572112845070833853863118997982088186407125782594603682273742317203262618095772999162511078081966992672629469767874014566718572050407224523303455283962231265654588166992456481373793990191353643984271153986520748768901586609596788339679760520248871522568020910012703345783315090774694303525108007622599305413791859075190071695794515968602106548189834396388298202406444633789326490905056648907619959826710823404037367696238326407076010591942061592240637971678747318955632073991671760157510505103474234044827412190467323157685986236967320527289213692131809478120432089481099866327290493172886043701799614211956283663632777879232520945664533927621808053687913526227594670844548676926598458457347295335726698192084997769800847221817592830116919269978364416468273327563476728143702291318695996522580334672111677684259579180254140537145411380228215053232919116079141938383006210414688873674893212466491864702561979434904393810101395338557859880841081979140603123276534662704034597411461396247792697702386990813094200876841688988412569162160289334207398174901907964425277714062359469901869399691967853319669295695194272347132148328289815670952283257086492147852706547696954739714632526362575785735488510354866116730698633012986751978862288869769777232751267273680107920825798630460495232830270723298768668603120786532148056268806338911317577982015937711820996676395975752215691716723765794882546742878902153100119093853427725136611229312255060408343172136341234992726414317598141406593703673870907464972477581956988645108946299089220591881355233289944449019578611956362900961455146022146095348688313422623670411664041230901460422502180654640861271406454951876143060523931890631880544724419953335389008731842071205353829166982546727120476374764639639824270857963436426482594107965064440988521397103598991985966792341459588776048576081202002910343195021589504754640931154756353981015451724437994741129250017331626516230076236868317622663888655435868877688780209457430520794877752732302365736210589497183938450132878784391116080697058832845283252349965499052600976370986349199709046980002376308572728747736797529732392278103894183279438391502113089593071413102859255225994619561606510266416825717968594060313168872207981650291483706624494605051830000758038127289570294009370874203541469422434123977905381674763709692688685768970492404834640480687755482268907632567076370451594509983368690253662714245808259509439087931532540264417571713404440998050287893581683419978142410351552353559687789528780571786911504188448342205696609274328302038662641418814836894875137596918110027057812589044650491088036791555779452697263744778321164085656655144950321233628478318176754717709389584066120257553262323797937611130703257989895309375037637748487329780417710739326704310178169415858391946461320659381890206781811469319842278492202029292642749558664877811265604250088361661412958861464938487380110589698335179833370916676972941779739182086939230700465906514265349921761426118653222567907368486187861329475763141667367238950541572542047874026551567880836436751899944295529152954928918380491305590138946333247448357538713725839636264402760780941804178574490565243910459574441630359062773462496306666048893699374941316576064416305204042154915468979047281343983365467842809547753195799484789133022622964036472874805567594325243361939281002203239140398021359734961839496412787938977570797680280123709509837368282194660673794840261107793373897281967341057616636338607846720216321344813712623589323561645323802386919286058798208720456588817753633960193433140511247765399822986045583145159492884350381148801099229674004750681699853097340457612702880579167693099292854232333397592200080452437772263441841051814125023113280140919696485913735118557926328172742341537765731205757238972041961482147397278304895594844706130877169888194923174312465570112293066095556874526193682720519855615938444034453568617302690542576566202891107084636192493553242426085287524952603694982962472276219654483365872788818439803585722805682035633378203616075028956994619047528028114561365384750186237435263731014885974981478353107971789613181821271741203346890109672959933621124407306437620814156726829499541086101560443230989151692172436890074397643900859493595512520861272564611430857536946204121052369151534587572928410576446283530564458508911316183921557700661174277292305733819123804568048166931367360743827654503176425458809543780865567075862581489554675935175610931491876879800192980532375333193037405932556578175065733097227011723579336429678980231740647313136017539220640504770140557775853202855373437023553476620393599854284752883946810886977368658770412925053940702811005814548614753413388628868735671918813651092839422776951055701172484739747455456721470379373075038630579995328922068361886322704578824562960214402691826078416042938835162219399462492131458306807928255556253333114381180439010592280346821203728722265271856652126305591441208629174377136190837030737425020244443774436982256413355493790835515416404596115304370984538969970719099139006123275694257282239803989531814574869182089601898610841687006549520193606483979737993787825574646048740840372521265398822268066253975392846887091838562559456283994965975957815735318925589268113853749991978095429135209657216998286349375518950675737128968458437304969076884689026854535338533895133426331783509435980267369657576160081174251769852262441868396623474472110393212840046206596278048537926685173879818602318052413557819276384565488448618987473637022434249762749791145696938929751961517278274979655984571823598153198540900910582290449518733447152893416067102146163950013630718538869004330247034296578412020019118057979577531032326977100677347127018679595510079291587914355403761173069731635681247590976354618042360581966787744916325015514170560129374801973706815736975320912505348451903666931210257435947978068214232048768936172933985498893937751638720996552341011058446575638787188726353134193271376634104188254823257079247805786202969037209343107116708427564829212840052084170640122400994485983314833174509403284295525560387519381935415626823054092609436445224823353995666621664596195132261907111025164227377130874916797697031623026123963363786405660928565880353714174400778793633122532886889994785711810088235947525499030675317741478266019546965290162164538277242672966918221053507522675530493024793228684356548463110904646603859864952326113229041265158897548706471172139125189746341667641107811347186061908345907824057671937004263773786122415777218312600677726117631017418284090452106766009185690440021645355288539754567592856521560540504378026030459815663800252352253448327631103969504585947388853721699557495950289932946186391213917553959915703323466795605025067435442581733948530558473945388477325268602070970866465653377898518238647919030017403749309793599054045692578019030550176191209782456905906433691053101673606345551121272774039643688886094502689493390860806432409017708229433605367697994296190511723828035739033778628762219774226882791053366881492523837806894403184143819908001581274688224714509320438453374443063051036536872847016450066361337783589378335292696176500426075961975580689094382233715727347922533341264281472945049212584852030070416513245775175234780533707660283277626030267454507210858083166079038967579368337397383654126201649476257899046963750784503136138173947233997915828155235178384431499297571023682147544834613635002071828508537071273052226583675089802972964003533728309381567506637186536728373514464723506608713492508538158028977466292312973740411907624714233854450008076050775574893014910370910536038363173862353091461736167287240832891728591976721397309032159527550609399688396187781148031424416368285021760595299852844255427046957803450290474358042152183623093580875154907629700126986867756924538223626417539574409602982826579354479885389286743262966450851183705657501687128873751248629462505799905279645898612979086205123135275557174898344199823980723521814770823194347745244822244065219660520602043964511565285144316782033018014172239768282510712671889339936538861721995995434083069435048786248682808690504499068964395217561456943704479335636201401476158172927138633094877732244551661883409381695454922518665268747794917775481833269910520058522905910267983419080906628521470157165810526022139238413335735030504030599580812751545566680063141065662701369541630436255299394529785330896749851347285755109740524631424133361040322214385194577549155260347315231688197404731018584109089910588758491142485442429811302994757048200761184920592856811933574120769225927949237515245099444973843166344877815349814572085279134601945760463681168538672379507546600735009964482330045100352344987123282571116114025547890136226615538793774943267115046938215634282344614678303728360855903767423168643741190614626007962309319530308337143637612436013392783532798070801559190291115259230888389688247196260669812002993576110040513392664665640753531636314695161893176148499414769181056605547316185625889156847443515399262075406369334529456252817517381013216504562665652643672517255347504176185081141458898796146301457638941823775022855474386289465256180792553734656037747554450058879063265543548811698705515909419478383682827318042783531670915429311710695769573113414770607307749125550854470980403282020670934563098680765578423139542956591908092956633124897501594979243369765870807325275108354588713879962098517513764689068499824496497326327940928487758801599814425607529177526500007037001604873697059353747638737689862637480020043985817804043211831629561398887579111661552647329798738669248616633350393935328563785323150865869370884781611141872244486647519432522380396999521624135022853285347149682973134986890187684204210085512187733666666318213327389416920250010737711023235410033338080360501885393102536159847409502479497519917597113123108939446287360571832380034484115464941821013395451229242590018783975537118862936824423187415920316431239210081703729960000410616985674661257198779746830942552252289758814405873021288936912022313484624073492761124357586611018543495927632108474317249360936735963580604715548352879761534268569312038666890760566579489037942155674849099143648548437380038788791628475684987538145909013235256565301109041519842332081998605785343716774406537213561383963258208698011213898150668040465156580569488792308921214937032038808533425145387896983562538659838377931710861737652994010646004430689505487810946913598676243074314143173960320083436936333756959375597770937139322846454065292666397084086998955195540443874568239903559758784656768863899190857781161512637415892006454472256392178969709147463269023848010240169490477854560300061129084559395632148728126559510190054366045862550513912933321763438323544739868305072276068723509784120979175763909256140559410761846988450303631216845992116572113332077846536265875736292113162922749647693051463180916380747621432218903700739051775166968944837977875755030131293559186313428508532393383700985591278890665591660144628476433150142795137796730011188208957884269373740806488692158732080640271736994153309955882039316605812650060759092319391018260669064768962969087846661013863246600414792381065656908580434815820565075302169726833873330451554432990018914331688110103391491034834170837788860629469301002356672784849883028316110085856117764436209435043418180265170191830977920466952472191753897338824334964833907344613880005698150823857919000081607705265547983299982914341888348867121327738084401837067869637711715269673926254147635868275176518781855926800829899609695761899542288915397238828893476295801196792161719846549576198973873585546396964701466102113749430209261925903843376538306394962737567380833095706197805119161329216988239967921940427739547344074548284811019254708983719385395476450924943419918870796842834647244005684482436554998832965608160072807371726964668871868332277097868144867479895724277197232746213135316350634880453407025017113003279937774319241413291326684062676514669500395700940243033059842307052163085071732462627620027255441374983078003417456000044680426300470697418133821339128643571471411482010952079434992524307112983259578407294149323541401183327936647058888034751848678656953501762300916352533404923442947708705455112474099957342122816154955894580398266680615378310640042818762978810657745802370149924785536678277512774904249299255434819030706492675614251114344366823990972480352344789289732166418515387830036719161260056001480197084456505669141502669985177708601055720296836890579183442813833812310416410812597163105906078507861440349325484831451762287478994357116441906869778072463010294245317474219642519900705427610186966655136777868884787511500619622304843461947207087870715942901129642784523417503757683247915246915304384269315567827912051724211651767013603702025988542235497693799025257615483285873909519692050078630239310533146579031850965641340782381338024741955157095790714207859656860303125226499633135278096650741775339854744200066962370221677901886899615846725736439249569295607997425939514949855394378792620233417542178232436617013321158069913724858208129830050734053728576095291588921017350362231632757808116084443465606723562893381142112329667882069037530025835381440711482008394739332417759307267102401512142751760280552774606060765244874759765337037036742098232386556385970251862537833241813419233577290093405962468701524667581921922971426012111639770795670494842654777730925841597240548385365865267567747246455132836273774531646109770518351349639602268393859735925872177390502225222840781893401809147310634222482814440921092666477791549667777886235149424958575506611394144062066762419224615192979985383262400877874211539101893535037630462037648365659920444709679413510623077026490814212124028622466549616100603452424576290604968522210039710478051154252904166223801024732290148710418391203807218617293066784440912647541217263850660278289691881170653079139132067563993058818181958946006873809651335842844962042592908712835113712224046612267959620561391544986883299494326049475377029952371734940746160198432374650468757560398535329607393817837846756111232142452877841783327593976409913022522880824386860381811156680071681545234302605710166032797739487667015339961143968381636894627883152182162301018217858619069390034589956632018389431357823614099384762025868965145295253146299582887265170898296926141171995054478357497918116720544007681146504273415915702832712821212974959936514844238699012156787037411686852951872247963162612535842897986350955328653139440107042380123147988892855069158039824981889390222172503038958838227145730881364893431806735912579635468111088721762916319242351362890888334758623139901649826126659755411427239882683257958473011895710261228003759079668525480750669381313064449592116077015667019586755809868052973258475806718797363106133565128491844554056214195924862045956083567113129250776184300486850153220412460111411152045274759353270332060803277757447042286112880697386686652327090539598257906674253219135673910153723550025269172749211660952400212335569158260579292812500103289702785472184675487920447276154058045650289028830745208656751635870774972881862446743148218820408221921032695263432658514427140094333742626350773063222413893898736309525719172179189609204719524781584561011057092529096613477786959922456821743021777948448691683741172659412058100715293798498026084186772607517541149041933867961663986012128010648379587210187442839679856798593348031315312420549102495962770254242092716259425192641905113178363175721094884546331765474418062539716028954660545665226674485401639729790211978081695595005823822387539473547436296297778574620018152847058501926149385488902465928388552816391730637518902631435239355895081101534976310736296138762364402595101774775630264702159942336802468277025017695327029350302056888592987568462199107880638260181636838723362980039653002977580588120410962606048854327658721545729335913881149050843511500720195780145075317800280294988835413615539160969133873339556857785468716351683223166953490675288005382764253698171202389164810497024206744479301574575131149153867020884281985314186609793545612157647213823171902238005287842748743204457997473074789443442927776121932328186256576777850786004353510425510498372220307584261168142443770181276877648941164978455054555014532792756103843279346122812090197071805309845268405126046521173897857364229300359890330932449762823516582648749053487227895539817379659207746813373076415895541860587907322744190597963639748658616690602826725130981114291005945624654711954882130443532035981909501578468887609524642180011067131749546286110899609520987044420980864351278017394012918601109539922124331214329665534727446159771578480290422007863428714142073233662549198814024429525720369829019225614779181268645217520412304873170225993870269629368014882808155068463536242805830320524799703634388869139379883404223215783265706923756914658292831713073447948201909076554766783938396980730268618606493460575659860352280190145279826192222439666256363402826397812170515471517730499192287115806333016532602140923374411666957808119236989612443900884416870977430809412239302988039319180871662691467977551308715011255295343605647017688555517425348759737612951299069021244901657422418898101717011365393269900324489126753432825361521021481070050474289612162109692423162943866865873114005267017821465662398801625057215521075626455177896400232941166672734404111164742965281801904743856435221909825802655953239670691969444754225786145502606411362519640052935892475780818304664836359857787181820116691130978460623666298757976689771230634482131695210401989205873998864170824240711930922918010267159920242071582042491456221674612225850853639872516474186766374291794310855242095790894679013022139293393532008136767752746775796954329597923130667751213730934610098211088384358076000017819091502984100599846783258701835189277356126309461964372594399288393748503082498494735097712945340989180879520433076291334421457150038225785561357930910833386618285684586047612717457072344588121546461604013859913674095555084582374373880513252006868509554026635029927437729589298546292558306649239853927605143590132350506913966846801576525329624151045458554118815072628433706483975333174834013734779755231033340225791264396732403431271540822281326224344025151017802151027134568688570215589700646929325011632618816433170699970342288922948869691024257277322454016844779135792311453470266870563395429735948841696505897531605475606942678370697909240730789909186287380475854094112493150058962733822413392002638902195738278092372843310772759339337523643259142422253100809989861657664488049826443278144824183076815886069609503481015697244700176171424906038592988051424664839340376711214981407012508045761536127649834297185955363801663591896047657261884921390393822837213025901972555692810662876986552538688966206925889861516712740061641349389214684151134049488933485860395805320898355914744776030238452196621378472493002403882895418138956068973659320552636108784282406847685889107124091478629566861690687211743186427993385545290274037603935873548872677372643870942723506547647544289488785476797885400196230245878988640011934805853627630368773465035315198749710263511465229975505453157667828605850609767067731965375940110080886662063154614643030536653437174573472557768107010529147674150912369542249168131027338347564234377712702167044501534019562476524997975528933576093001801138994510850509921702635795718495311277555537165140924279720411493875720887705497411284189418515962622030883263830338990004433685760214066140372223282224993662653385856486671578431564473330885957144788428478111878948793802869082596821335135219095159477534327481473793406246757509781215363252539472012631456089045095624657813424447931947164159855714346568988331286957494058906719687471159594042480652906219844019813352716768503549722935082731190849108692491194807006582003051178463689784305011911937791791772232696252276465132428674226095981071399358876000332164517048153379938150586707857460150745008091731554088914738490641816100624872917069254420072113402553925008347786158546851177982267760891623119317976461849410406292074445260483100951568876123354015486272653151768905606231867263268829483063712009944489820329689664208218679250567188278610806071469953909818343596914144327222386522227095916657946697058884423441128629019009260149555092188421599733837676172513911464843824555213852230920487042173147839464561774354726537563566755465428095942663039069887098596891131186844116460484435630937457178442604659351110326257359020155035601009349612903600283568116412332660817459096645818828442130120837831421371449119457178966183589105280721095507551987046699183751527183003118563731856329848567726014361400181200531259681109976356856254618708232538088543585774124706307140882756556459666432512034039736324684079641098970076375261833732266595092671600424969327602671234050474714479377972588096683086063247981075980142003763282583609284453600956465860890167435631676150314073296810784686364734593513392548643788628255400923559174257953090063966579506156668601927077073671942858683554946470234338048082015464980357873118454699011258388609964532487084418436733701083700832664157401243574298802658878553988371580933494227993655236345828208193479499975451214422909622518180235323609516170897831438567042221077865098076314377746591894072125526780764396503284542250609160906859280454714128144948947848143109244865208128957530281747298745779889385864064578845251247276976736569712394882604217286495813338113116982867197342224713630748748051106428777304464022675157048447077950484043516126981770094469523392475033725707328944188382820504167291185055162261088905118919338080010948309848995076343648188282976762314549117971839407077961318729325734062005395954200449005617642700088132264646670489717500446929263809521350054690989643981618347702344038584380856819498407415923667136740673562918542554755779509232554426415815184660728699882240424123526880204906560900957025853670582199936823310976026614360320908761988731973365789367774296040707411935449453396898535267411824746062145851981331850710741997571330579028340214409913376001161311580141100735008322116008573933126643969745939567867596295495480263021874513832293663006722755717043095377318018283648635631782546834826128609863028732620605151745204647909260440336340867816374677321241985531763183841387946232206975593408424523556877433868474822581174149097682170510623680014077451772010642554510130557030789496405055396215087225167288490547754087387041977949638785466852246697830879663074493607940781690064171891917905978928860730859346329050271895368036904241023896135980192647879185090651438707392665734483377091546750247878900893701989306768577837482527281827193744029084823720353267503301503043977677329279549344676473496824955299629618710318113754759905641827666589158256605439193097792483370686509472974118695182988709968655625231925945261697395794662012063437309367969803921001857136846373214762729960486758164625794724265345264561076492106809229135514975889391490241907170810117039551019048019567653332104658054999451043611565874532276959625229267570675708955710803902645336498252235711811582525214794197899500593020874857488787821321685973068147813403132341830371961464002402113345128242902231300021654814103037091662419725722912852479821929098183212883823189682952107054349238153478215877863821406058042460126538272977167120298425181574431441130978602776405665990608913368738572766268910700705749104052242560374899458605890853777557736090474588968503705272934644806682138924656153467788057984633259325013740826042820955943091344745860904306503509069856659464101905755865213940643846178521924634691432559222944216571768496243265276627100778192446659919076055510875681187858523049131049785544455456014771114417848808107241880946814340138519293553134279915422162123945547620520799330229542415047614733158890576915402013449535047962454480068201518260962134503137290726031086897692386829572334653611615879212416768025524221668219904259338102339070955876870573662000682195610115112302868377043284394193154342347766330629078836339114065122923544942061459276469072988360710252301776954017170703583260268806273941511461791348912112563696387909841682016376735399987257341191545778366588692438265254809793556332363721164459795828904854660553359413177121388792607202852084540435132751569780183187954476979631506477531895081426209833594663906852120300604864741880179754709305354500919952422002349723175844523145447978697263924642628345106921069058790908151352348356299283969556778276467387130905633836607842924552023774784422549083906421729964751015352327240564502221628185499291973238413261654682781673423950059705883996169785173453650601703126625709678408417707594746978084888009689818726841122690104062517596050134812209715730254083586279960190380535412190648740722002306791863723524015120145392608000783027898081837758693497603885077942662462005835401942633776137260952540860983822082873935630070886452750539939824722861502086084021868739008738117033899206020076367364642410769761497428186183091732230349559312271871514157152847849247260499854657783508420154591870110272458952406860646329265663188168428468197872556808208944751020912103181772287933106409748905565696525592598043039847590893983221530055682835534406491710537822027182506680582561679231279614949520090421655519168887165625032468650570493437106652646282060819819179747949655120212706274164173293810688014158106533815510130655728712172162327150985997670904112656139053377714012079404844641005581586609716896349802955668847639522004235642023106282078669372196555179758590742309054797504488017443040376190322733767128020582646139370946188693721179567456165575794968249200852852413919192290911486862303621982162581301244109286412518957052048807783636609182203503417036880601480268658113482358072675520615464419561787842271112718901427376642047213765209029391120687503371050366555511389863169108401473529165064704630637378547393617033944667371153406986154992346449586145173728080258555798001266467768078516384773706123083086467828200542754187816040839746761281443729390243071998880923372008668026674528853687322075217174079238870722305885231728200348168898124712887311236088321356582255364892819916299892301452469305180043372878677054280642524099844837461146906696324665585585815728675214627231088949912125019368982631329673054891124758489697236731859567388902741425898549533675061680605231956533319132673027009474733725362703959108799866738978620090074479718573460303088165549130215452737654239434601148478513465244640820841028077257406508457027905000958671285842461590031732239588058498437036865983079973300116398079840027815902787303691792740524421092951593678310190659258958148027554763010284971969861419229144970805351738404121282517929964153073707302608339621566793341246564170744685948261220177300704889966103332340665462612131826582707254262646464015729781964675424957864010346611081667445391109527067085422795553356835530376438741769265425791632525483747281839833609346995183918456396455300337960469945300875671093072339065291298621243605742095802289655222261669944277195798714120279321023898650574764786513811027816634238794602797478664071957310104107390408122022313773656810179524662360089524422561095470881211508392618470240633998533636717144155606016804251985302516172431598367705922725852198112557175102976829617708379343867748475672175723470066647553402280322910073686177293694488387945744916160315532001475634106172747856198778699436780056665007409187230261838580993312381259163527899059907056045270823786261988038920531558215424492973088222127926278586824692570876047840581348393267016774623380209266712048072700374270266591930303383583282721588963539203306433004053512814045055727872346055911425353560194080373191893856486288917096878427115355711544534638867147557746753056289288850588601521612083560007390873330214774489187872839505619905203117757127657789769591102688888156338754450963379046516020826490055379476258706979517208015227876780585685743291906016926481450043280384370408900844417851997936819811098433022988852091999552445273251055095757357423130939180594442179361912577999985669249393085514750286660745337545151472936695466678752949256476492359484933028949241903594522565374869721203232125634619659287053628608210723692387920659612496578862516326944735988042749424312177722620406633568661729591967484186298464761035149911964977857546841813999705209627729036233976768940385743673544669410513052320817625485173665282136569501780128879830238157947928687816513896127102320485225705770046691864641770720705919545954110724959949889153218495953290042881753884971809235265026457011651734877550670383355997853725622764200294274087923996520772784401972258391916772010998119636054735166965077646129808869748770331120177602339072381331234915459352230025606839966710721195839414807554128408510698197876311249659148722513555525544079690869046560200624630066859806240060672716874542453867138716941328016805858758937266806058844068841920684827879202280084830034614336893862714861691410723102520356726660453730389126967597350192209447624301270046024122197113399039723027465801382106327031195037476246874235787796923353367258631365017052284878349978852813195789996967992317765924897392217596826836796725431013471637725521171980866099267323926292685660601485032137805363298240544757129304690837551914512889540192515240490212090467559099949722043953362498513189008048159606215673628630642124229083171992805508289280841256208757405838973073772328953522276747882003796327263151582132129080805160976547018589184409537080107224616039898157799511483509113045765515763954253602931423885181957436149396065334373047061049009453267594793013756339522263526529675197392404091888628374597298124867731004447170481995641274374762222185672084810569248984534970171478398156335454562030640602061169629279387557545866768123455388401806560776908971413553482307180683850957387838321210334951821187975278367729516136809873929836385434060617718150345670392337228621364492524275545849767645423051982872523482697014285435317443848272716190606446238153848319475913656110147151440772860600974535526971678021317839002074435827617112003034077107076958296404932441133933944970209049738657567118109733291430472822109888015212920243518399473044309473096098010999734276888886949931671469419597450095526841125478700774733126139598517999370200987447839119974951652063745336309610406380802658903120202157637776216620742942187076230148285404443820596094945370295876094206549854730050835578898830528880680852653156905285230374565588326394784957243272763420635052282485893372586497488571386254171303883088092195643213641896219547410124049975626613967370640627693471132264166891020947205098033522105896677563898479165420154217912805582828332705039316442786624194243246940038245053639533262122932370082878737212029194093596178436319716195940026602523336063719945859430043052261216395582160783838176336538708998775771180129874886516118374899009690927056690129264600109534392843822379445023409273494966190363857664209280683147758082284104318832890287231692253485668258610635957954945130895635300650198818071499927246505536659646994213481328136868977393940964823569218354551023080483646837888649096961090024237381233173585295377945079910292696685125447843817185629733905485499683520960293820233313104027144794871312461054446485971000886488380958954038714658334757600509208161631861007896356838075404047372508874075247998047258715071658101642287483018380595401264637547804792960734927700509397201760889017424507815372615394568185550106210301758421255589550505125109969092732508156892395223050571356239597181251090227943368521784225886686938369015738366075645451180355335751169765012973591889826713952539217066369154311873818818445445159509329179762515213792456618584102519537278103932478129591046253849085586870728995655508107042991470177707553529316962129573252863474558140799666865067096595525800269859011611149641920695412498008849886469206916949405433057702771226057101321141260061124721684847479262857291869490298662769960067393261584589528649566208027122387512739639676574975622849212133731544261700965226277095299963829818462625079228404984820466412711667947191769098872230681696621865809223564334916557086442683654889287487700224145298328120032490785995225560153138923516985269589025324285496749571558001979766009382874031174346180826897420652000358270135745411800781851743788594017087908350815965973176601998007088568724281044790734487317204214268648180490786834086456343381635553670229950092390026801235232820794834366108282265616142234184744806392375401530244105436997944961595925249899996561774088348615227015116915299894285026494346332620058661439231889676831598103388919823828632791914119424486841689236853080971566016361028533227047424130976081366085374595464997447536759880732827265808178138309032245544977572231031862642233065136166857897568604074318833923135073479637688500898487367233432857511792687434757653617380427568606279232069728818355503108083542182893269940145752281289529170380231831749255801730932281235939875002997229729476479983057640014396241783048752435740180958342290679281090768596105161534919834017789977323785719930991319581275722060332191658754137932724478543336451611760428256058748625230479605649625095928171128228177220057623006377752586594176865746417338249872980518734377781739125326520126820607650397995276232997341574216914718594893472786578394622968971965304556298633532117166754298084626468957339840034871951508278733074687345877137109018276506119428906971300585946357397610837467740162489174714014010279968840760299381071358506682253321748851083444141906841514180223284172227046214320639817155814509803828643814035472403351248744780080678766980543904594681758765221348946311022235627811280863945732392806628367407444524177860726498239913671494879471804105792899432865026970832456690701539096245806300819466185820343351113450181105580799913871682860551425810644228670379404827581408773591866135006479367703383937588421016878476431721277545622286145858322003027221199816699439373297654020176891712477568542490735826829950068404137742377773221097275138743029468967764296702044177895820535846032442881802672317798426686282291249463035066049541603774529822771783936864487834840992926466986258122134120523983795031387926837198437193646011857933748189448205931978495281148282655566770130652225996913483452095946357979274384225942022616205898691114690212475349169947565504693154867440671390601720145500438151453026467046704373250278202381477842105818468035737657377526637115672398880480067267016507578453447644851198004910146499174703978918811633372351441726844423272179870219076604910509000866226064918192359147502990887681776550883262526219578657802425988769627639928406694743003081038183603477830359946738043406804919966092179068355700778325644004904637239071997338182850920041726156974913454316928412695921652407469983231333101314074699916215462811345667012724100827599635156279293756134724092913251099081254985803842671168399407889285894138465119236150143255023190729427744808867340561225373095955053246474857612501386630651461640724942324140664356773884388936761970536616194706942657503216541309542534047946816481581451198902453385087239331922272412982106857113138435607447216246779614315336701702735994179495340516687283036693101431142483512852482665899618810056443650510668986346226296225822687301335954850180741763548679609026332647227132093230390724377125428409537106487342535366134145585708535014783204092062312050907672138840975880677577647240883742623055912046342700552615637863875677639763226102892666057530967085458387484515819971369391910809761997405360544769294645061324974550250250011182100928901932414661459151982283197337253362284330914646527594653008687414972286933647407051250477041282857403213696586744010295081936624726517850394433995794246820319510202780292400183032342721268109191326037013877509554542884358581521548285511242747508872466995607892142547031550167832459693870685269487858056256434043700304101240840595363069363844818977360990972889296661292017166766547042636315231203460049269483404600503215602314409187474159259119301118166509896031815218769652994240203020638751579939870218333029851260097115148406317481133630690269057634864302044273949035482022695969576655901277590257463084290877474384871658230221602776638785690152610224985168484011130314012267058479412194083133866480121031968434522337536758930068760121822411044757548614903478241818595484279121121431758508135750452108099693607226153339960748960223798370001501666554116157099291559302632048909047549424967349207285748465689861469199323138515688311950235782093570965253190624408643799838524853967138181391508133537374687750633860834356985599764385070247568187188671909077139856844531553273697825598213127137477067500988234598029047094596883394429626880311306477774245462638080721578338236902727043887344367316536145959416545596526564336299394835962049049895534122775014070420804893968238759284381877901227196851996819111956068836951780005335001857409217819534759644826388611323559827783544689364635544863380540162541942158012039623873248277382843758300107272678109468654663204835944879246236806812899302196559616796857512652627320153278004188065397106313262791488074681594334745153691407013423119955399227228227514901145459895579373954220302538214645292044245501351301439698937681062002806361412412138004027936570292921158642756367919329459976144492232278867644971549378513253046599717373066712720481870597877956769101715340207360899319046967123909754322594395284643068885662580714552287023619261820758145825293673939317149122464280873876402016656840686270023217364929052547935476423962392877939397410687647177632848522654734801797150104505268384053891382023912016273527473600430538934222756970326427205078193643755380249307798029544321994461220956466562406860041783054521764564797960998960462714242347589122586752172390230375003671257081029618953697869138071024355926488783955367757226007657437326554497497111246511487515614430852517694941438756332986952175116240168010385445345277807095848491234036708741978773340696742097414953508782907610141975839973037537937622750391805940730532015358421037048750231152438500811822076717295876125538363266333701714117682341924406036638344406163528085177009626679565476233188732250522775222726951739410445142805760236171585338900420210357608983113367438397483506614299426918544741436535813903860135893143827198672523562119087092972045821782181180296756826329055055933582146126080705401389113514022578413283042198938832757796865619792379213002181688779872457485314531831439329030569760567496564110172566314527457544126440987526868544659639624094283119255977886845082612065211532412766217544599540337899381386287626776233573372298566111368289051015244094525722668825721252439649114619673483476347088609695146478233621645736061232590753336279586626086229781007103998469801669876285724687886648856327659265127367385103249852562254192754516034865433601177030908890016296453565029010854469582343771270686604006672253597382487993207678676845203670625627349813687435471056352117777015876068917587127660516295260080271356975436751688826209241960666339860449150652082211817591929619808456728698314787794538052931035011039390043018781639552991016876866909751122042088059927845441657693571347169972269387822965635045078846449701897391301023273183541278170512315606214181592286797885708752504376222246402673857463634763856149089164793744721643648998788212242872970665192976914189097280088167092255331182048335489692642693254185891530248801331395332439684266232416801320176463436708052257477342449293889729135414800280860049314709310963633836807821903677181161258568842026390262351749542327213262530806935288408448414192895762382966354108417410496264116652978912274693981047409115160139764396413633826771238167824748535967322896982540168827524188372496631780588277023527992466350422240383091128602457262763551078895114093720270499244422289035373764861627956536313846694767786625393819404155341172397774868842763331497631015192009073107383894309511274112674496005438563674164299606210762864795624639979019283083769443878309282531051423029147641796724006857797716196945496046570913756317393894824898322439459069163389967636818167459381426604227274800727339850915167777735654475826120140257941988680668129765432321865353291396984896014894364263357238100184858227367498252664519257364053276472862077411789117211103199688745140581789322472241519847741379489561901208513452022351516826603801126210525137513143204336778773369013333848073349079785102294995197043495270908871245247272631864060699733667163570688574850484457222288386407728169047073982734598363804719846465490889108208489031496393411905066455612160445755241319760891076425316563619809840634659367045000209364057592598119203884934471328263249168263641598448352204665824962863915102893465697746844067387815870672480887005215197223817952224569085413764852474154162049177190486747062499775800326877209348988655678950830677057542626671260513869718317395122654656479166288144982189271276122380904467649031537817160713079634105343895451357006920992208644857783659148557226447131085788678445596818637866164637538293491726950428330572271741391572140523190266024290319614050981508121085162049623582259007323953497603922253227281143127590809155207480225203032004351151136202691983618476642084514388361707952348673872149058224710911725232496117420701529171776444837063616508733950595423615124467458299477477074178554876227942563075794333734627396572177417847001574098907925602652586979054551278677576221201201453775919373239608298659412905599856415411198186795861916539815290663397891107877445594425226668507908223422055925559305920656417538539413293073304252814177111493367563974619722733775018230260107361988757148761679061118165635199445576957941056704926837447680567150606175103992354950955041658244179602349122202496369637207361305627572126222499177905500803085890707233955538971157581897402461820116504971400153380453723194623581663019775603130692809071688482417562268033996256910031902923079346726339901345695311776871644548175112909849513076045774921632029232765696887480936840049593852712820301749136280448664144647237717065185204398356939258889404728309995757216556973869359548328271485392160927867869434220582155795511093252782957173092974053696025071291109797262578144266531941743991879385062152592274476542018338870764798783184125247336529574612650413680837102517702017908348968111399938835893640384360850662448305917064385968310201348285143005911413601988764246384240141660914025997670614886878268794457680972938864516240585775232089321212260024097950322044946239089255516195053636082577411944145792594274140496963287278687921819584966735945622190424716012611837902130111273099492028279331842237901640677332632350422740420816051209654252002590869044832836674238098863945174514617457821767391084633914301449786939604222643439057167212691599726002085101150153759017439539612342310488877334663763559704052110692954282992944197466526918232631673157257193801764034630846133372198577053224753763622338652915690314712298879915976506041620243840822179951308196936876270040234766966080759151595913048870174018472801654840273783618618687386414902332760802816512721462432091332807270247749163598981264812582748470150427528183669873847293034611157552553958200392066775804504058929825344562702830751536606129837469007859716453973456138867564280641437382997729796263110729745359898805272285242669826573822019681123026006737588875001461363073868271896865370309985948132312023937691590122818030604984978953612728124885581545235848050712107511930480411208475257579628563738044925460062831094161950028790750687432754484478795359360612529239153345467297571047380308965989934433480899913962591050635059133297980496240885792409636675007336280538409471879686574405718399035727755927037438329695783395761808419068366655629779813168979711552028530025198125285541477372833580724747818012611978558507991453604951786683820415369435413273245842055564886490934553109488122291161037879938359544698363330535369701875638098113627961771156391720937797063854976406069435051941627281307584368620148473859045866923902591444370130178824964135757577088543518134921234597482317071893651861159008961481588926694935558448562348904966180402862373028579392973020252189220185137305496656853044709658289721943572356359570528704000546766910612640946776462377490077627238725527909841938627270358883279463966420397626611090930169515834955723964274587867087514721328284080316073477900312665237347364400796092522339478160297883468442263571954425214129300028157447969099174308628319045315962973271333738603576102194978526529267024618527725833515066452442799687956102363275273896443397963879727818928461327047736357685999452878375859568018994084416873311821490472669098075555223970291561586232733824733719824931382703019985163632331215898851499438239182455460671690453111823374697050377892944434362769233589250561418457775633153111878943529761785366009380831330917753849321909693968545162705328598985798700021051971872068400028892841970625049319169264776526142744633888969726669926237099212368255566750587508944684411970877842065649208638848876486635945896712446110385109043635399110443394247647255839951257580819481287921790610779193880287666358454279623801209223736964639241514123931770121480250113334701052709365668905942861488492740828731898856298658732124930525960674629695876930904551198609380372283430795221254332558299351206151833522931334482845546739280562572326263495434117658907401579956947467568418749682090163671523809485692957812895719020641762755648948302586111800345307656609299243416084747402203327560550329498537689090038984745450314480388414597995351844483723416335297692240657494746770161229976952807575607221245395341021203938099448831441185012689184946862413569065833945657346726149226738801897493259966235543683922470835759941871989698331272450435577786059018407820633289645035103825949564595208545318135422530400734349563381889583280500089413409019603008603327788464823138556755967973237881411653618296441714660219638174502586798498014185303701246273971397655632540523699424393567418584030537415347706668569284769798105340627494269547595688135262253885687122510237334719414618076220766980782335424334691819207433888774174902329639964759179128560191122591563438298318526436779589808761082417542521160005858551394134884423412587441379418889079168429470771433791994821558554254263283166669528920667010471475299512358943815071418050175614045352704186469890038051417539963965206915582423825143301884127194787141649652311761720759697128003916911755289619500166397930835386425189529798594302779822258232127214627358071675104233473684742211892786039834092744125472228910231361940080780063416784204297187707724976348119526563249519442515288075167254438108416128669245479871849964470327097959352759333584810179521138398341265059100426466184564178012297707793150314501939695675015258771471208909731769408911097050070073780627271170550083862338517383412622561462312931920678722997470450257352886632665172090552171310583455297509175653630140319808387549346377880662740497096640485764675396008058854631965344772582152184884609395459394029973754237697487195356950644827164963110338831740989914820528202387731643186023497695105190165854196160287138716381500277841338576279884476824189620086917596854630623426843830962458811048990993067171310552978844686010854364684945783994776230946056649801460455722838838422747841611159635727970904975917724612570525942967131216544834967724993571986646089761378708468000511151882225412416111002831014173295566283487977805131395987094533260007886170275852830398195801460122097591799048213533614055593524788280599167575721749117511030737715262142816833796431519936148779766840311051961989683097281598102979612849193537640838431951534581776464402964865510277695374208262358924643781425279856371967258474233502277020980883220357630074770954484557676876367813214411158431149486131928190918992862763123154313611514538894951914746585869041405564575675762204393595653901256870716251089265300219780486982191542971073872176065337133726461224446521811781684807324922332488408132037336539331168627157252690844366437702596608403308980797565609438117659278376275034976741577626594037972602167074363570538789072423690626849167448978204073096054314278830102669284858923043440609530686848646445142007909677616045127308278472720507249662904496257582741238550152826991732817007991854635990328121528661173204051092809693909386298808885280313734101051000696527623747229763330184498535101728932412001981594703166824413625554081443753398376585972438943315292212546884688778020274224561997094401064139204827670891315815761366573689460302014943872244255534883087844160408963712339576634441618882013333478649959672895678718530768302268821744001781980141436625299178394469505950213194556058290507855317537939835327028278408562275856173982245745108356752822874669279629441339585284687559226208796065838034950137866468542053436895849825611376508675802368272946175744010715540085494267013790031886545595175391258538076771399210922211678504408909097243270125595975739728684956950887624023887325571707301675258219539890531046902574535789697937952897194772154237315799195295082645993039586733755910594294727558073685391050974756974875443951577583067372221007491072944477626087512473082524260410180450266846518375734350775371211596939444245771971531943422338669495789172858718953905790193926353638848743954688951661277353480467028939189640162399477070491264472188088331020869668367004521168961734347450627867417475326838507768419620631176368841563109551005075504748033910813577137197657515151409069361291954910655599355429530119666518102740160833038007009497029632959692901580188197190108169661080263272068840905241033133605153824300193752964236582105282630499015889297486797745620045370026407655089204555016843872437940122042678574274437617403364778811839801535104604275530426065997674031219150975766583798392266893467168801807920740893816846423419739756488877090148121506038140359993016654852453838734051924482892560993305484655023398109138763792070080900820681747328834468283006014049643630656670635556791276401088432780536109953006184150002351807794363993320348757800290584412953751724881276696036176981793621268455653092650117782169501003401597167466742738497587775954576596042409183972055087452914264630007946661721664842764672115496401305996862785049928683182267253846799917225321088506687164055392587869389969974806449814412240982016909742544774467430820376355046948763727092145276867955961729352271563380703128539576409670130470452347154612400053801747963244688767119477040282282812369256856905954796914540588988705093085303282940987247977054523483882232151152580535499325218176723339527223688085954053000420391314741634156230905663788956030837244395577155261892006277628288752928738272414656590499759954554629787413811855133219902745571232208738239516179464489881887652053407546882365120270606653563674273123872361109953342820296721609599780684672989949244533313470304714706182359944971146993982267569814692749059520228986326013257068842170130175415859746023063306450859095002984549353489844494765729636462006700060893819336471303631344686195411709748778386676962291845067219970791554537265796471500801198211693884954876284786636334032074783291299854508359748618303336242184540681348765876554971842661315396000118928394895164490527720966751037063056540689787470644862959124258328062087171844123500860894775462992531237139834409900464102839700463786380512515641525930295220291536178503396019670055504193607709061632912591097985060049436726144237197152396853245355769721553272741279955801428173753230217774548232771560050682662905584242644971289234145740579617573391705947966007686475272909148986421769102495969109468624857595043340011454429951890526319932921344882912839297809798474319448300461221332552824607075738301517121004502605556288591938370803310473922327756566713227182239134252159311154687440761696049387320198748054381522136371025498384272331523260668262373054849763398126353065250837833702266949287664202364696730287532411275325369022240603191119092347297322286436174089588710348254840330407910356736388125364204040935872059947426687866540488471445613745031828912193763501786532415650705266255001263583856174617527240788176103406326078180989448819358775760568715435487151980668058239979174485408516407173438967574644843536886391609370996086157192275389095803131956273407667665677539230314538399046864995578706202946715138983996723611674552877595905494478840073913856822278217893613398456414420870797728087591631834209475643172525545355336951723914769475979621952947909033511140162738681309584105122760500249415237261187618215991087996974907450357368447462491024698210932606167097312063635500841422131828423347649935988680934889080685780786755271949822491117043741439137100869148551101309455866292508573691824387598051898013282333862588253592992847353968050621354093500100482692781685874358165594002483975857216715375769882669367534560138969200351105653498505703731544520134030211126084361334061580957259974490187679253607423960057596692998592923032289807460087288884944366609843529773357019117891412410512778528833259004292121705913597829820830582202151379516591571334372650565635871758882286655270242832960737089027686859123256316366732755174698067298439399207998412703851108466955186153581678930974316644868483934240010079056827943247570252154232936945582344144906890934876223097543632146593091068480256898922635773145157249729259579923461371295266576217601874319742040490358325822704376005789968181712215482327754541905236474585588389166586184440345387972131945978754740489679616802900731830533400925587304439695912803229047821509817620209593379912781481266794070385621173844793537971860785958329465416330236089348744296864865118066837117412990932862310156757956974318698730677083654257968964583017469504075825426898430526457472729647840488328951084157718486215756256495086704017913506476304586192296378485828996887519573519712349019693155582190614016777810776437892903146022122145240660327304800513497173792500760510766098701046385291252837106691421503426621347481560338138470800469606919145699731676195074306649850281945333526932657636237686779072574285175496842166507229378618265055979268058333912413833225356450600986970807775866758183772566626064159689223922608065001207196963703669782816231924077071795083501960817391454525082962755756800248165588882837805977098855406340319000748819601307965334166702667233764572238046491696587994320213059993102395652659040493268111196543985116158426776589890868802923664923581638207088821888218388530688707238558430119184623337393165925482792330167269768771977242929481186517092391464019464038602418918417209016831677471434832457075798035539495851717317720528974277605821128186794464726460100635253924533656528446232702712458854126033108193507751414049148592997849609685607052534936457397091593273144621037903857838882324744394741223080859978776681659035393460026807896896211951283237507237273815679070868165132217305189143149213930290472810228379751553541864058473480785750621143102670927785619168571309801662851507779143474032095459153390092816320344400169648496692335145077034728936793463551675323042326281975235264628817467105573908621399698319618914003281441220340176472471045342970022474904598235192277652427807733528626887501386731946819337906104066650666489762511719685305009055507826566603178811745010315630626433642414221619849199670278623255728077983769796250688532550719426438299510230759428254832779543765048027511336444983578369604947190400339151293062115077582725157912221771544385707098571176491754495709737074230625429266878534792456130208377504541602551870848765367474939589688772899535071743864119939846898187050017971117990908122398998532962263758100278689954996109286032723465214174799009239755028957161422901641326809396179181455060470139703373875467254495637140188931728663607759112702441313401389014575326643971202687059775170795978688918092410835472550256080679928373877232129520418387965471305048637977601302119239806360876018631774774646879318572449723290363516994440016824254209702425767098997854426744765048983177637368736672484510508109068325515705672574785789407663868267898811124005818324583011900427995206512231434471931690117049211399503156816370001398896424775440793525913489326239931123677106434996649386102236377500159669867995596110282215202597561458746182077258412036948315389321005810008036329304100176567984714543414098240847839350447797748611858995520338843985225668515476028759522833989152110595646960738100201085707060222998374689593802722270740937878515713712769058855185825199202326062855112022470274343214524413465697755328225503958296424701101572023001720341166138199203086559329795392379597411905193919609450046544240035907462057442314347581684444337203344761247000917738961758426696115443961272401446801080429667178233423286103893296668949825352548217941990005579646931918659083242949789985598836191411537273299494538361591404285189337465485413408458106256089104813603971400504253111827386762494455911722742900695000719143705652305377842332093980320331315148427744084973670269350640848239364500607373366617920984473598102220119919161191293097774498999609397507285828894765710571069702551324465138551181396804820035483470369803521733534023456224334046983538859795767245065329876386195100712764413100065289459489661721019451850329072912732034873867743812868930463258066018767235358192839099815905863751019102887925123769233285024541476849786404307022980728954256033592507204548797345199676663694155274565178272327163669235247970323363920836728844979196934347468389630598971691853808927051715853582573726578554016335583360267214451467851257275673567062808134611430257873488327159993290530238172716427494010795576539388961459094711049630286768588453879078972917075280330579452089058177715312459943000786028459636123093455650759337447580599858812159636438878248057222772274377576535549008176533855614643411993363117062662666510510518607103623341229388806885315825199849777915460272044966575781604418041130736071308020910458296623487604011349009413880503960310604700115587709425104516874090652474073238352693421180398320917244947381751780390868607823542149697785100372664172759440232406886111320288051818960620793667045877531521625459550524233172283908888886247477141939425262453113049835696952543712725729007769190257692681123523069155513900922900898158925640828833598161758517170290050263795041607650093004608628886318250073852993844000239891933877976339423630589636672823395724864756768025580851730267927152774092136429304490183564787334515208819319310463764355381896427550396386137670383369735037498059110426135552283154193665003713484257388666565664223625095492233310844836838905252727410479155182436368046684268630159148127733892400713918041947681023016883930114699099222746518349984018428572711153891469375550474342413578459856086611470015159169766688009012789024287051446920632234743625839316409349748803761939079141019802229585078581038025782648982743368772790330260789475348826432031845506599979884068869037931733876475191072430215018251506780466652409439432358445348792571469568439319703682422776973891274177673702561855625368525403299728541430943561015706111036380288122575027006194537857667030396780217384656265134650688470098828662428982003924599128402773697235742619852499743946959522607912109859840594949958675846119597101935004833626632028736096562752303755270759200839173428130867346100270683765623423129111423215598172787031724920424489271418517545306782717496729989212606825729787725635319324258135042346710419040294686434647124822809829918635686494293244756126847892492420393042071205875986980385027328668891439991355453070190853884360047315371328042251113364986452843167895818279615902082806128798120199091070025401184113905703774491432963236951832207978768884202470753196652427456830152157560231173590696292873292411046211463931687151378330139925038478286002221542026738115392602629765964919818944838344197315715098321142373721775701707269959383203727039846294516380996502272383524140814304957912018414466569644244703635616509667955439314656480053811971537492364958824627914086248695107563946075500144387942427320140221335968310502420735904299912438862765355042972490898556208978836941909390673717669576820913975019411334762920699710861211116226701499949285365493373512718696675280434927513584188247392171748227301416831200112286233165382736386893639297350492760650529643917974978184127398563616454479388339390770835744467620100876634638665464392286197858627118406479026425280160319168771941926861193420282056342093971416298399906742401546528017556654860354441057236994136112556254310339912563821934278739193150021480348923384916332971380439848969615357674612149834917397057288469386147944781140542292958633826491506972197610966625274699663184613927400890662184963999638278377209378650925213444396651069277858383267341815461356200329648349823528995549545759513221647532826231500242291551034734399141760430296823514236533286855227499530529215390608658281641408054721700907256832670551397166835806808171568340575393729325994942587387953555268903108009117453513773209872017395511534419872544096949320159715278443668301150027528809069860062618507476012089273943518975562228735826369122849033928022469918938788192743428111580421795341226290893079856629217998990932558385378879660063163364479282268174436541048769251001237845341236151992781741607604986598192606695584382022245507242375027199185927462981303916791035923264780666212014221117892989281979645514768079248552094356974859570544344875583462866881512519580905165993381309070881296950938871564452355354133050557099866011205877090287027517439823982545284208313853184083717433986413998122040299875486810863768791364740447413760742178680240193129872277128603424917771227184603530481967416936836266067231468766956589094243493240803316596306141801391523180445295677449049232010291313802539098940747511275731165349455433162290379880861986895806228470082619362479996207562110668923607777574866088902798613604057057965990533249485553602454500728537839392830497157073723455808684197171652635587338889878925345814231593935397301375987988751115749703105992291916228697372652862329583674346063543346587905077287889705380988687259389896057277574836853733308074007001445794220325720420590184723953829016062826603956567466459879747519494969369595716454410120209110495209584392887762477377333744202840565191247293253227129257454431427462055451756290665559110376478138997899197348644234325341004482451789803072844325922307012254545007418972056122164710488445255920186914221151504060425331017831412358760824553018986815808004191427329373340726362763040235626720284477624167539998022877363017882768638078338043828094949297986581177870487244249529971394466498795475898339292777893311789762197525495756675773578945351122383775073086245413318025136772421210912707004885286587344460539640511458899482121778541936716265822272531800478040364283267286606258521545535943653154104169107847885380332179474456330321284953723362661845876190049375789685479815166952921931084247475458329014451208192478593725096656168627277641699576280334347518906340972773886433842413167928965634902007736975674774765271140490783833563629698182747447343331706523140341207580984991719391478120179962819871435879703133033765160597147741839812016531101317927849631265041482528083504687065606613578337380590307218830635278351895030113445846915661488910578864221019195238966476245956954138603149200036612977600640387794990720646322556901468475163311800981052698224431767650460372967996411184085023977707558322476858247364932090374197789688577657082663749111427073982600905491323569128040343605381123948170109929577141062589012458145992318474877335244570893062323266538527926612256498731675656050186733461345929373262988020894764984286771034743506184588308185877001329272119340983286259807610768635533587112879304001267408043310945199285373674131535938286997583316496864835703976535469214096678022690784670311964523941006833207907099340005832171399447045170201571359687023547145555693563758376560563513710562661573571741268018780530174231435330071229336506509933660609816495804298061064336456588613727476575878212269101233620520943938002623664501363651090961701540704754424932912090771528400488096921412547933914302761281382610945815379795989311297762971286063961017464270831927904376104280703439759841596573704502027811956622136900202136620286782508107462930382709417745750896866217457841382010066750597915929548996107802119257958020624931926762881560294280665705243474524613133527759579852185233288892560949611190575196734014332403692581045622514881566259886479313424488769303900218976686281228499217556746318469133327030621767946683152873986618662588672466433156751117576204975274208866836775237113768549916151154960219016913321262650602351799185974048004095909212081099416965678689385801321125930586783568201998357724639968072359327508506872676558708789981309588284378385212657971664489593814907140955623837173938049963812189612475642306754612402498494482051017917605653442123679083083265801333450500206957439246090605304285219020566108237377340114246154161582460494677897740557362042813583850006416838252599998496789444468732752467745718218459507027582628074379512233200018288932280265631524498722765304632151821716214626484061721712597358354263664033769435166908770790632582549158495191275201961788464838571390419823504991602626979245175248823728868750078273180095314796330755691442353863918475080979951105759365986625964978933703081823383034297008970351605448299975980265651396407408642458484993813030413883763725918984154535036455845143692778785660083616936564210485786498286611906442439318108305648154893947593529065369650146895707770280742158764294193419294728118117784748903405181968807504947385608691699693179772235864459887838893241398937946373808629568770998393471755973815484330887730446672416248128747550990177473501215306513960207419421665175608559257959310304721765537697339292926655155637934307471894917674704979078920382995101861183161899259071843747160230836358299154440539584819874140577469197819988108748421072071777081363678352387541217770582585467288881075249491135394257135499499153782001131628441729374520496054044111703879002861770665918058809233186111859767586197816248767980011097146502722124748861137595954438292532126561618204814779743253089462084510151305146946948352191349020512050036296055929968026623696820196729947326883180837239694645589993878690091842898113293636471461328867091035700351138670917094330212172277938286741297319872885401137024552509223284121721940676268878471577862207403281763729478432317498052799057374870809888956470104601420347276379865357371300901278042028262294550754514074716201706053205754855715444650290387188263191691119524252269254671821568568518433607177392276605125198465329115921938278421994625854976165820348700876576085702704418250292381146653280277457142667821026117557445661407914303288744833400668858296270135198231363074843133897270907288345571005873171244801480242463780105934542730907918807341941801285037259605159467497978537636155276412114067209477900941669569362491101302582879569055993832401118956409199076148374757079503355133178163783718015998497417082378929316476815867396620965260881167067808248273985779245088997705611900179754762265443215883698338755305317807623196095555703694738797447876951353571065657938660014753091186069751438066597484206399463994334705461986379217231156683830745923179350693508440573844543087410838632839683034482452592714294800914825125190147502279608645637376603725981051846418050687530262028003436428872354315501320965638516127770619316336010267447256322967211774311276118755738066571930408204720672639506482196584238336072806208014903517865489866119179727730540867505548712020225800036047462918011503151643431214534390880431584309342599877484865896050455306837053135357419267735139204641560629060359909927833352091368433041507067938463206391797193815267027439878113044055038659908106979288951037269774130862236633153469819207522311561634027687760235113149090107387257218124345041754393891995067706756884322377360325918455536545590961001220357859910175463822139164393218374482268918393573205116807879834513234842063661804308321344081340319973963603448900078788704047696248860544033020921419176435304686661773722541564412309606908315694148009955957358501216596171875579422879996365833853361345862527205418031052029640293877003115988873558419560832954869402489816043019112988295831122666662381118721374377407649868637626361016263729078773325978215249928367078703312075502804249811524944498847765488434068151874344963103677967079276902827235369943524743186573049181842817208717389413267282440388307360522297196309275943914786747061698086812949283414504872341928260605957963514641195430502265863800463481544944533996648862455110808912241566586174485022246210016558344772926420045561137087911840053155588429351321599156361415386357992024740140440538615265340341635636953082047637449627876407143334155947345276049904461538944433469967808811861534403132296343241433433781821648886507905434227568762882492321311337327457528477327229064982669654519261170260894115409134446779877141375510300654906332207779953728085516274596869908220320740084825218145977602039682518315405307177993525939212507537049460865350870969524698772918143448060811096167671589641708776524954335043444151300799245531779092442567163472728629648847293876871134054210931956123700974584332183742556719126989249412589015236466066794014810085933466225125052525566266291823884183653779093213745829535479570457961962489933911455987408059544101514617235555291330849196666248735202408699504160075528478672739313479301449065547814771696791394630258691498698561967710925111875725868786525015483398472884456637253331134129534299117219619151540112552309592895233223518273551261898700720324290828439150831113188282038755869240688027008691434420777450167660180646849314480434973695968802892258373992611001942711992548062647598176218706201815946722537228361566473892580306610729134076071919632892176416800700267844931979740910708351827905994039813650827498214295978572960498108484412359679132831553403219086113931283540197170731279630815910276646084437009622670913042750461514365265189830231123230079169118996853105270482324261144367615859989095213522423948039895175939523846651161831386499896025511871635009465694493405667042187347564684723086095133564798882941810281974118465609178953963611119661467272358403233583648151643210591309098974496951368460332087792843903024901017510871617688338404510469292822501786008643284733075518181410551196378895590294747091051666719755698745054273499125781161607729573572421648272769609250823727828507393745489542494484888943449122704370976699918107127926025828466751158383818227310839184548436429759668095372820014481404761774220086197153398904558608914582185635045666327363607689315550114368973641410927844943142308109785740388833061754956711465200185263193768111550930461164160969498597109770735403538363381120825057311432319947376076661909613183760248233618149844186430562714877947002339277304358795865425896157902769182157421104776610918304042097002376334065006265197817317296589018878721315347315925465822990647510562741597601651307922270863976263550293860499259900737467102544366312173586687661075354955595332131321486402826972042598295382968497044104956053404606401819055289606508218768140841678850451902505855080748960129635868396569980334977430774668170017888934024091326720143290344524412225516132250071014634849988613161286823400271527489726012867262123048820667970068013656646791993386793728926379618066415409564638252045584014007227241592271269649388253378526830772420484507810011119791547077347454523653000434819546943843698140434863846597770740569620363617767889668545408041586350714619727197030288281740527374003045511131463781420513588213045098454922842553576417358336587057927064540709877112113721431307574749505233586629162254610711756300770930944636423674141043318109191990308601030452231662707671307294721677745224439911694719628452366067626058090465456196072536492625402744847692266688472435557515865785818597108317077203015288123806990607465521490742703173832747513944907872042994078303031906771959405811325578551466094279232038006755039586602251846569738744109806378731709113971236058645656829235487941865386373466560553357728281681234561711243482143042280237692622393633088985414969384445824747709180574018711118021676406694329198176193467115477023856891283110068627843632394510392995428255023166158772765821151299890366253504506291817403899992084684792281530310196682846219525782004639083518399177633588155359355708013720076966289402648032606925156884306200247355777186154394550064008445735593682309210279795030515425704081768581636014002581757910265313542074630254425521763753566981336547428367588461581621197692320879556381389083215369901245500189707037154731511672098537244061758799187178546368925392366267561468552233912003463317329985807518639653303974389283055111107467080961579014074922271049424953730752034696372521447206130655715273139710836932548412160839471075779216532206146274966105358803219966882468659948162241475317580025766883415639207925825760447370565177898956581629260439216643764890492395392720738481112153154320546490263556718491150762809798179090572569489702833086002590257543880882957476056311260939841843974817736341699890845573427702503051778861985039791135831881892126411042550153049923914183997916836834450085868563212785984238525558094403752533472258901924423946656699822124946235961362442285363235429074777778469923362573522887800860975844645823546714091453437623722962646668064078021415884422082709243328653411522949589094714369320409661975700474532471968682175410473548474797543096483545633353766590493771258199566986043914971367253355939802479832905997765249316188664148563950817688671030545319519608676330606728272632415469218660371492738289153671090323278814385633803942669985180676298998828768826586860583361747717664937740003809232335274537230507784578026084821175021274444480273972597903630742654860324244533012360424117396453966737402932713816593485391987705239093895823585637060114151637020683786348291022575605578623923343689348250076875423124407766922910077439967908475376638350468725630992994745925757653798268207258720762270844182785042501815269691026526582021981083681718389709877805571547349257072844318349728800090383730593040094575526974548507712965178733420628607467100466289896753494553559505651549021507632662197521364893882278117104420818932746277270469742397405333528099160085065827197347865619677741797245174068848224182672578521247932775125081710665530651154566379356055403470570704497234248326518741743436977610162660337904849746641122814038501905324106644458634097338474234891345716970867572096006164130637465891992895928425444267039149512643206717656021120406001741973704568718692413811440073179993483432395663948471043226752452574994797551985264270925888935171341969721617500588350665671370204441602509807531967442596106282472983120085425120154425118020973251446716187144708173957436251631181724191896536754448979216828334140383042785106667262887799154839078587293396480733202524472205822479378044762346705635249661137136967214323879142098505600075848404905805305602755112680749365379851185389834357212964908751254380809039814312299698851595532408464447710180676335935640421502770517791045127948132004199789181854982647160358708399737829581865422174893584115397328520394114681058186036954134733783465125315846112216408655120631509794833493680078669084199725818700746850857032771825912395615432043591864298093363669918729856407184965639688633354330959259578387968110040101998340142555040010463758238880000632995767374421241197262787510330855154396258873418587181755189244077417710066150241186307984172026693045202469572716307519339028576795217429283063084283278911435267049553367531734095128330818768268622858905068298391912450474184422215725656161040502354650624197108909003688972650525430270684882701249100439842318923128156035012536203462045411661290292099125697570284279596646357561449132952278659281385608993638918873988833345285211153733183102360588828886726433527662834905839485284287540735341521647433765682731969521911304222952565646483923735777654371067030284635384291656585508450727384586366376278920644747851542905941663375423106719474281946928687900909761682410729018396472287924942718043642703931810320025390011971944159116910697770489398298114427675366278207814390119360410682945775753383762253659328281014326998704983081726559426823024078046042911534826985892090461611894622803570436316537301816118568628858938000598684963271288631975001054198047359497125317141990274879038704173018741988875767363079688401746193115730398994938423713677186692191209990926774619063362308208237128733249192925363776040577813680716100713968110254796438635495862508462902881379927172718591311521526189109778055646642681967682637272028016786867540908501730402041913804396048804499971583851898735326488256363907812566793409513467574024075841243655199481891735117287926850400865947977517735540500388863607642917328687307213633004350788490016405985195617282475465928050461318421240928295456021889653766427845950107856151835916606438278738191198924817443751265034122136367111757450858146666259026887788831794482109173174851890921214962766669661642061973009647218644314579979120414919375454587421918474347235237946434121730076255654374951544091569521267741014946352688831092069252869847028210494904107859613012056602188412619431155186460696761062237068719523215078395735783959243218022288691635905005298494794449676000173135528124076486438614728765402324274029151438035253972875493115604481695187363772124820327181767925637052310191464160869645494025511900401443808605616547424023393804924074982531810069540695589748904796131087353403763756009646128934414260238586934747628988587396303012217165377857991070829481163456277936316536745785189881763054084700527319841579269111944502496566803923577098582187041454433113554546495095717829337448024885690300405546886799107933977521025610809493095906085157443181755794422235764279739270847514247502177776191779001091125964097103526122758910940851967648627786922504726574514699741664459731024169664438743295738788335423550691337995459678564349565546608089956741274974347746609841912355487666745746255582835615963605327664286932500676532857141729356853800238940195992325093804639955845058862070588949656771026902873404545401721553854472595934578608306074067831442561831536530342054108229688638763206272070887815519791372614520607255650586608988130075235766755756858252255290729788140509715182636242210609867422947326552448219739866651114066346781820952376821474478841040188457101039033003398393135358461900699255782013203866325406719800698026919016350609288111573152249927555582268396341882844512759489294186949907903197562145493622940539304722949845983567228552231665838706349991269012896672133180123881887090123932142996396869714271712062632856385394442178665227230087042064364389104444251253490088737906583655566840205622044848211218118143536918769626131709545749026770401318997205437326920553281028489408624477651874124984557124184415918121537625480802005409910438449690048267749907053054840453230399532190599455477159196825073349440838596165924077242927045272119935083236988292638708829121663947462584722043434205640088120700794334372608822850156499433832380409424139638299015330937903957704131114258790744850610777147333624902195004229846573235162587795238637674077643530600522916625635082664333459334713339361615022742397629685933946367169932534419213000463626528982663794472993834199399872337667858219143656344760522695006821218385824385999341967900043399280741489260893302344067175609087734836098766060168124849638621265264477603239020668563557199969040462208296814778283248329108550470241371396125800251825659073532246852029188026562600870948372915432007728269881474005607737181205222349985598347845045225196301010826353209973527064631958225820388166917298819691601396264005027597535170668622339310494957657054498890980310232132264727788760654048590711289853076374531943921957677042228081671195916095946349377618219560775099985690932249538809586330883904475998262173252557142710340000613142525211763301265292923842293629940673995776906882334779217805438676716322652849052066571178227494680735474995155467482852512308807066999313239349307270543910354321803047997955211553648466645100540131908571094665203173748636885083362060500452475788217087566839493293905790226010607083324997306959847031736302160476199511692899775101745996482292963029276282507219568974859853415368989930249578080485269388267184475300610519656017775183711835732735853159737684793546035532684220301905202780678798435154041369192116750780965761358746714307661199325987510627404929769742521629977281985702549308113286082159141388558488842449480369301459991519399839992512169055393571526001047727955998601264703019881677268459702709103041948701291482520608423287197083413690221411355488152690842032999898164800835292498385225649184631688561362217422070472706892243365505239092063246301665737848235974280404553363257965802686560868260771291712028348568736753639454692845984287361793115563779445360625582879973078498548819129065041990401513956189664858509421650076079812906399412904572637312306690149913540815124263680585481934120068505528452196473538071781880348958600306065053170378158309166442444071053233285265142195829445761648093888278320009406651881552370062073045988047558635100919824257242265166925197740568177744061265969814500858472387802738436278883547484177888316805284117695065857017984190208972179150842050136364312414251677421786714583616125955036209104061013317166819885611829131829972551393990471222027457882289005056311347174866993623434093904745565165781328897572952703694770410755257653217608029932183848636951520085892616431181738840241763938889954838033787739332605003437265752633700386878897599268156977073865356252808824953259429145053860169256638854346117468308852421416314863421749616891957632813106217467993519864016380654091230922179772252221370539402926482638463335164574636158618492352885810378067126518713683223005616110379794219486437267339308412767450048626660653555870813708886870932359835332247678386311444236681237302311533915994249807674919607467075378333218006526643575621617518191266106810634286779410142464508412824827181082659228524760881895146171166328590240160052108539592429631160847972885109759614956127653988041981419161905634734185209300903747758676443219304934859707300554648579583356867160993751451031902481150166889887555811614541572176511012923692078693749137602121237601490511405876243706492741717747464900766723253656816404025407736735685522371344737073985477741019408943644441600836027810196173521150829160797760190603932888293131194411406845111302754697213225826273739472298025382930759708953194922727175251307219370635939603033705126349188894496845000166229548368888492795656530632579047589390329858319512512702149759109517831099755504401902621958578907590084879588642818948303548475275135613377293619540793697112182764069600345318501753306212868779080230027495608352805565475413233967234839270354301444038266126972273695441659421973685541812642876511476272950425465040387179520870929663373235809906122488429698634157640605044578595028841391015227390560453886308406849462150424578530477080781087392946493876311531702885230975542946717687122051807411713134689270263065032220993279462347560846681445012807578613089923013671530878460951413212859988214749169436687056639135091089562903310135365209590977116609664765740604273459074107410992122382023025786898012497872492947707797280761656806370670513288783317182054068404560972346665028116945841823514124302077473898212646802388499293633771798654083925894230327889965420311777867097176484686855192902549802605741404554663444630629263022338567288496466092507826266042377608166706327687848806664021369842366673499633268681659263046141315941320533240806129130531107807835078187201382807992485956814010417355816683118336942996891714446972345130945620133707279283297911996251827160439929586287698394176844786243363197466509741943827113926235405443896092321321439826261921241952229299440496792932539713102318740309196723194911688034525558247114638272447919363227172766748462675643050597683374316538303094854437255843983447478978137810242402736517809635112992583684777202020660564173935536805852387161468596866421245946452319715709152794098494222378040634864625844646046635431737718232153835232092928151590777099395833278510127321404660303815700224129953991353648356316340366340126588339074185810864268028810476542647523509481163403654446019890408311525191330051083649588122439091132058185848461947336903687263061472936603951892807631934229136791643312131357165560215088811575476853547016791868759805389378696798249611416866702426153153818262528137100372262331437799476033622452838514189294649567125984564536538367471018295092219436117800698676810045795553791923062506689783319758992166847983879581578289281988338420372008608109570620920553557473461023858163885972079940305848590775350143659393052558101407351943402472538449774678162203231719352006031773109922389968615659085446352962242840119850645571291036030613989779976434538254246286976532873936495569784077740162185746805572055155741718206336781189524150222603341246698796286369861972421671962912113876027971399900019252935546957905604272142466902444516665078194858522445180576750509583159992129768308291348552160865210708269573851506675959612943974566815956670317465229364914790839791790254126625008784280861697515307913572828802087880206393832420868509954708082450641117336571793876826019060744938589520965599946795947397243648761674564763259365089957970105805617003795541710597965030091536526116095896772560541754483749240842962247328902567881567746689758857120680335511096468510104861150580643811834767375573107273881824848918888053814425116130004662281861070055579325216281512814957866397782941237320210269794663287846478091775594711964603491128561564408686287019529290389372891666189970395159463764681708702398086463468706127621104334757960700161023974436299491811568392236490032179019986972242577424406351428484664525844820059746463937977354276040508607347987427918737422649255881807584442487379273231175704319899039919029171982634345174434459135867479208230500893167768026648484372132041100721002228851139112980319640069857972149011503373947202829467160491212807583643687318334574982213578788659867921346708233562361048217102220073710533512828836449884237463800682072443729576950899902962530137479707996047722405500902922380923719843952270620269785931794902559938387172399742582289081972506577654344057650383420794211031043621459177070981429769317717241660326267424047901407938175555473119700534948114867004663075846502636565367201260572492098882382946128717680632867990860389423550050886305674802734978400298929252676322978861292616162471621535628573829288312483177234197564517202615196492804932939328060816998338345835082109342411217210095606158959351332919104805009335654199518198432997056888406215858039461814398938238624417828339233774343921985724861172009857027742465988112671887995037170990023587931907121690051658506974187562627307194130654678831808080460824032653653159434265592838751239277081582193992348102367669615010319887460368600769313470655348147858678968355026929733021311744409977271716772889979303829462476208307061819139110685607134199589789894852262397429902927424365952806951092054617584475363051603262197846481406703974742677486650167872973133564048010233754873984057261162976067101426066743767228751663033074400986533540642494519606525009092179418012646119226606185189126534783813485139997272865929375863641047016758351890844288871060226820887554920012098706523648301641799241946148990183894741059992048396198267281803799953683959220144239422866532975960749947420002166916889470772215537001230872168482374381082679570971669096408727817447092314222011032864142445493825276437523527978844536836465011201354655355772907498828655379206380494115237670590888560275051941071440037919861522319445142450601993629513294483137582406628124223447860249636005464160618448094454147468327186643095083782957588492127739408884790086435766703457777216780380062178370133111504083069535532770490598542003311444104421430288955929058150937366759786740470383659587241590538604677225984390331667179248204518020577677722526820580032177141347925060355289974407144291627086144774583137676724896247557723451453920740784063617182144748130031232065744148636239776455010198081367464401034599158747552716321449818024779317898198125910007150517191327229124744222089469667975953354061022841254909941224777294926779553577353769370368737147844180129885835763997058255150129218639526681081141756502044865634534593170114034791943886545522440521341858812122434320525925923885859463554192759946857773319587514772446704863686391918976624643284433018522973214196716677768697109350574370449902156912723064049249777224527719276302615814676277259711103785551055830870622847024924210079348301731727005750152291127624250209719770191613975531220559797287172007018916111552164218576056368290463490221437956243110566618235619563330017150767722455144033575834817869833315194003494141591125709692897756236628588121505624874142549680727849080470328191838496906974163806176236419966217063284938889674103801118663632789610681966055526145759898877488607271092435716056176507876641853502445959627583714074140225783475375819925009494201512503747813956261152180278059898832224542844849684881484508230914404288271526611656629449836467203199845018078755181467924716298922628389570308522800523071859635536912087487149513650874544443557305816728644654653024485755271979642205241913213170036524677795903235452744439457328796174030821583022860009783041328387643950801919550904964114813314163256772508053037375743969339521070759733988804779156195898120432640055611448233693247977807237519178874907467638653991334745020611386571037102649997823409124572756162881888723135809784941464749196821672915454259207496505902427955325030577765063883535182110096006916855014647506872153939796271265837792643702992894206646051270751372767662797727032923636510702369781451947649879660112573482315048858927785218620251724637827012964596717254639086153421045952912554180943339499864765812325003261033920256823193209650199347857400069170811461648692533561569091934911710899435230616812789854823340161663820784129627047397684000247602237778402313468270149506681007114530397353906332468189229281255107060996504822547099974163546957702769244376692110988017854524486803334808898737120248077729501801243258728516746839832049878836298382174584287115670007395307833865625163407865441130323681618503615848477820033313922530799001728424458623762664888289843222886547532034214422623785491334501878150842824464851998345091982446164301476563170385936206580274062276049942471857798428754506019563229782000092679520897792805163364435565751676938496590572389994035396688187870860351096165152745032215612885080808019320682526326401661180668694972246856013018691297111039869623515196348687516337528074748277750955767454992000144919271970532683219113423123113387205162851197208624214362566676393838475389048042069261533724535117299999561547798290392615033513663070229712146554610150700102107244873220138414279569539536174674280344665723322070090029531659708315729567921380685178172682905636675049725151863407883072246847559791799113066298728890641122651920261175654562802569735474871328946507274585275438679313414032235685276539817657151524046354776349201952744524032144495344537455357454720253207092319010769019789976452685336489705062664107057116838235715422449386098991557157525256953416176628788533771649233582014964406560466569230991127016651223064457674851215779992961161797631659036267992276753401976588024176723371328817334892143456997092077226791840456439459376260334591711317003632187545834019063508024196287609554897728080895184280436381385390027454025479459042109167489529618795174344846103511775421672193779027800128081003992644967191770015218936878667155030452700577965395349146879165831254748964650612448565972049929727293216892852036848213504841934130069915777934998779137538939178981043710414026279550124015898086250677119171454976659863064375608032448131185080276614891173263130369462967519736357598513098279210196937043490994466403629615242844712712558017880514105728409952049830017079234165790103808396956179688522534223552709812104293561903639439007488369022021578403694282264149683004997781640995073930444525167753582922485124792313569793661939832067395990293312403911259403958594275641666841040724035321927385891260612224554111989676429989294019741334554561116960368974314501353893715652385289346614676866760375978709402956868994446969447015783514257854567151162809083396718522878282148773688509121881581313273698105958226285993792920933515297630646401062115724849438929672914913514018879442402898386332818477174074925125504610628573994869321764056576206870043288513282887597313103923829791183241092021824432087261742968247800673005718027843296677632154293411530103727811268892929728997620442135089896152833575164642741232701530299655326744752894222118034980415158395484860387765133139043179005932935373671439221393988112904144072832206180739277323614130355793440042018933811699925246433354555026197286776716970232624980448075667620590898893745947450224130103534895824031564938970895209694790378658782095709105935455541470498266826431159754676453239327391380591018456142915784139248350298746800678740288730198402276810857292148162373007557869278178607419121670558607324531743000744637841380482166881893533514968000936853981576485420568439945710888269544708656774272445722264113400825959887029831173097745910928667866458010341055491499720737944601139920937834548376882839829840426784049932016864455943269036369707478030729068929158592468475517530980008334299968334847740298589413719727746112965815013515049165295855753153921707663349846896296368875255313305702863300625851633188699487380159439939908768657732954300171191534560193028039339531208064335292678933582599127727409549649731666539361152329004435003831661255095377015312730669281110490956109368370628132143718843801957032291542726622421508789137697568014023761990409402892584045439764277497649773273765064466832290517135544755833233690374835620692374236339629636315464155313506677475701683637063699569207258455187562329283976327043736903028617594885178657411735160325918482885624791069395918735309363390675517794430641466142931082569436043106563896918220919409031348066675874935186193508977656256384403452813635106694135468453402948824664567002013417158338498772625803019252017298482302269536155433576103128107055554400341723841455967512546134701431946605355851299533880845863159563997382972141320866103354066215847494851659502215531749860000948896282835093739563058641295443930525147257183407376029378129116481326730867302903348759406824131877304156914376971317415969046162251585094025802405459972607039007700043395928833738486014875219821935328209628352801576244655749969987808346920074975372430030367786890794548804937902987042424303099559035209939735492783616215293479725259845495738732735167326223857838488720801769186513570749664270135375784431220471617420476531894477470862426534598474215939022854762961774708396853840261983013515588676750440374903858107433617680754987101411501143424524993492171976195592008523244754241535107404573341276407427650413080366625535267767953094797696483877745217686038787782014481105975872599802662066518291347896704267455086148626500402045218604630950570731268709230032691316054431375180543450650900644603894994340407323549348755927351733288553789510094045649259872842895874697985158792846932120443438411578532036080569520581399664710015045058054809596215846761552316860037712299805046131089630613691391106960923596908861547312496202271708200237182920547192287140021859324217957879557958726472240809432597788288079430549427372216822796950472407104098664577119684035012564454967271292711708810302222709434274774702749467400548022429531383590015982828122556943687658832178261877250662995877239773990666108170794819566175012789850147587951784753640310687718321183715954015331191480125527258514195835190727307892818020441038259677669377674260150250667471522841937006413258112814101256879762697300362540094132541266755087695175389656066763134195973114337911324779051948402689007150134436320613571917498307134414342999373006920611028303714651645279851438616527459882058032315962242961554481266852789728805695788486380344607473977508253771692330609040127716644623671329941767671192027204547308314685304445965824458169884954975522805233545516020640512772702463689507498564722117296792682372751201440232743498747651406296803949420866456054132753326225803888946211411427190841522863114786705088020370347820686626658237795708333649331159183195650120576279985218258845562963557889570649649814607833021296241934952743366116706930561231068577076807616796243987416094906808237894925789874632246393897143600913022913086211159206511638776698150831524909283082422568491559649045968095578808187829768501159975437988719507593641447660208278461602456864596697255775098842199737937126286617763894476241230572349097797435177606046015388774801749690168971512253160812316836005304599554993942876702772008675813997667779357622929941198016318396582719402130127993472567716781475651622577763856855650444766684919151078472244358992902725491094398011667746143220836042726369557224107566113236437194648689332516556435404385323848551982124626152574962699351529007536116391382955942673289995382130401496099623195669721240040167571300302736920118647751310128512231138548953765225368300108244665590128043692501985658608591713832874850267274583603960411424314041271726296058305041069895039237677679762400939701209131438728921790087133328783757360702624367618308937206257425126238686894458678193341399523552583209869568116572180479341267983678370841871248005329725556526523656744649035748326978350740547598843380492843044925463947257412521278729721547423090955753854762972236225606769080775184876685828083220445131453798354531794314668312147007668917781638083480747742912301883615034134445347167793783539716444874534620504828685703030688052508939567059150906660094961163685979364394870470539163621282776953885614056217447544406703568973834742506650328707305863036235641400828631175300646424944056340165008109173167946071225990320123983071063183321953802273377335189947734498506403805835015177795352140303525140340605695447539791360590661410518229802661865041712676201785894854099930749425277559458855251526600196283791867245814548137897101162530423759425031828478728220619017347186756368727141132153202876976533370713688300991496584683205618818656358986405886230507178155440942577594567996255065347025952416703635144497093672298481422656965418366386528349689017484080013601133443410900687578837709449913034450371834752863435026775198789074326223458250676857266862693630681119350059245977676067288626599426266191772917199361462540697325046654088394034642965589176623050717445757464704349659815117925891021265838097830114938571536152706677358263324703848352891608858488088328362525502124957585083904792880822310487411756691428906278375220679974769792501675904348379302446962422844179659983511466032831279170676039358616001358485273315883073934498651400965461269300347711332721544220880338610679480759069258925102364411516669819593541570964444876822179498599471606901725965286083094151750107637508541281970133510742365742768976587673381081134900712759967418834980753036668950275013966730142922913968703158007341058466526084390950101069929398658911365547886248670390447250471449133109166201859724977919326211732546283875502242916123906231609495444097071130825994408465719081102270479978361024460591961535280972173451510985099808606545758825448205215155718581161366903181687898331476467505231181613031201283780187235729354459388105136520063302812176833478259096470380192716300580128024253459938421761924292396673441694703211895881277995975173737170113819799287630218959654138844044724207032442540446126834706286756465594681425596250147127113731774737497152526706101741322716212086234111678584423343136216278110496727284598121383484527487963893689700755778413490845301352733616980708827951787362857546990100236185132724477108525088477375821650945859971488386863757696960386356785776392981684320022186240395092862168418606270592643379895147629251727913045604932689418042547122348223510437139333239554387355274654622211101142847648583464012892035031089892878744886997903730886730572858216547695725595396801754943423637960770607519342867184716353184238014276081521363467832746024883443885137649795005648071242692469765606278378673321245681645473424292799717487922448781101452381089571834860729544657548408344703996923076299778816555925455216866259759484232512584846624844557179469796295022040486153161856944687953696622834175991848516104960062283168994424476297347612750369408691626946694266728701781745005627820424904042614090814951195479873271912698924131198959466953908355321131733535228340843045946276653243998984221294913294698287348854625435260410592338399259921616930005603258048409613302150659354434638383600596236220811335543441225374979198915720234268797366056914872064154206512165155954464282851921392038733811774643119866795039401756886073429694720383787057446123506768444971705629612405931052814216492970636176275145433899480155265289887914563242606963400650914932599700455453496747531026821492145753451210921347183709885253218408936917011639304831005848656235577391061190570791316532606746608422794299709830414418297152981233159320549198209248975562734954694150234011501926458031373555524383056291582509876851007824589944574335441477464789270837998559481087703859456759606782221769923043821493190098938259370089426687134840933826121321779328086825606032272375676599666986773107306200730101619938147211626966926951377823465314517365605767286998895272934790823487556972648566060912122374172731011430078503145556128746262973844340341606876830045623650033943330455075836701843962250383158561676879037456672560910912730441315179063518833091507308360784981161326050738635478260728602809941181031725522658429563013828992123604098555441841605534165231293158988453541754425630722148351325133676261739789362469724625867288748619005761581718901033478805431712047638303603334409164939831988861453590681830185514540793179387541771601197899786999099912427140417405440322733624514162896282402109658777315449093070803483797284693968684897161335493376387691084786865345548531697529478149154133821956234203817184580085770887711935497469524753766638264264155287910616581275106760793470186887958435239004132769707272837403492055179591314553605987786455997170642542054596662374690702818943649556527906517682606916709907785742738307245295394093070580615852032671397293646191356288655603600838824918215718236470625803787319676652362058076884119165892777711837738350713581934827650227616743153236732541179086788075979297105788439478235370754516284496360377878071729706705945720269906300897790613329385084296150777542683841168345134890249725688241593349966348498021998573076674619332714419194022058762439197120211563028611017863438814851353922650228142647063216613031293268655453896531319075564767649489321398866647514084840337916590946394680870439908063213933656087067049547412767025335655132140073365431849459943949374244519583573545305098413857541261751196832291105619428392267244304858126600846764944052342395551758976302742741030888955752622551468359191658729708384880115023792891088322129869204566251300955921504515824131132100690131395992281147562576615449148475223990331097560639435757834417787096108139012872622725927885311990708595811748869827964581259824473318625392368220695347016021216894293449636894914394385529120641721311762352768549875917043557191490204863229727538126140670296614355363071373603627309584047543699365499513644125111455117462514808965304163630121060311139770043717534926436396566061883731129223370042028718116113723996877846905228141543817081538306155107139779682712407105563358620743776797516434415779937572765100588465872243399284493042439223549404536705768779191102828228095108720701919656022324084667451801175808639158990015702120197997686206063533434413493036221821255981367867797550291578860000131233452867725064141850614396761886699716766663892224386656289092575114942234102797290090419469043871100416510396464662608633617561489093276164903703401548364103401627565989972583623487985764681782497599842194447501592954441248900434885621873619644239421316594238022510169026626338650224164546081733768603459223636803988150367074190792840199679869193870283968940095589853184436963765806198141818662097265709394289766555029190305881367899095451719027131035624687055863937203935812051870820340201115585355536820791357439202946141061400519812074214697584398975085899031933071404974520418854988218332575526493264837822467871646761529489260654194328004382228031039888137662546673233178121086648189533057749439914867185716897457471504770602362974375174629022712564173681840154929273077641360179974849399175622742382198249626858835081601573054784524571116548674941183118576293051103587564441482101014882140942664982060095684919260568727876102709883194330702541412710023390369664648317622232915048339277693539248581671602879692405346244568623277930833978319645881240978889882759268296486505213998585153291622462668475907805939314469580084273176699514279424917079686541286766055553560728574010359157558052413395594315827924618935465201853191568232166681999167078700633325353237219995558437532068729218946345023774531427616366475520853079161996334201412637043164956435384584780320628798032145870175928981244785808805594713166316549093860589219231238893383295827016575838507307567548874898041388082378265001916996834985576513023270612006940686345262103009918030397408370327513822845380670264091357896089951270950203028471272068471627602981839463486649580054235416181100661100596189649847276952699275700270788249458324412022750225340075259524174576029067318021015777459668190622576801438804994344948417647199261727951721831457497699487317013293758482986636706324043287316954492309127568627582164503983468903576147291739743108718277067985568512765270456085166075960069723676876448531301756531506790865723588976796554614723775694003239204030354427679477718265088774777189551402459391665619052474347145105526601433664128750056040753435423421593701844695908804289086603730737685709422805498453266620689750221739382049513105287733720496869241991875524901106037949024702304284005306201275778013552630099232984469933557352859864370662526531818491796002457497318182734965635643316810273259947444771163655136084059885598263318234895264453286555408399686206724831495952013796336685738398576753416822221945592631630739087256452104573315975503095687718156509246360064510762750873732568361321568733355129817424950500750978272563603496263410188400612949306162740782681218218356699320621782905382146068524081980127368234246469610769757032084284712435469800893883349749077019237049010875597838578998226672011057469401391268937707647947148042683736061140516029004946165280755875996603064673081375789707964236912348428844693605107513070479222540755843485502642050090738226034206734305002216355367883657441882922244098787285042635920569245428925476130293491166714288593804568400580880672764946565502573426394897160646902888051744210077410433665756652675157184756829619257483480340063454992986139155906188790153028809931180974179896225635625901683778975090696116870976459523547639662204058638250110035959835106957416731265885465071750798834026211742323619558012264738861750379714637057621543333917674865119692045131439420104411859137853127513304805222433431235110227673840836163104182684313356655052109618552966149836555406074990591477555896877906279317486406672101209984818754250981018079662144686525119010538437846535169771752213069397088792606671612024637236213718753533583546159508227115512902741034745671489082897645979857713171289924422501726888496039183989168253213109508043508538299622977632785578747838496366421806992051401777969894108742716009644416460089279462604244314626138043443168927539992057798101759207749444997347692780807826949239392310895220991996912684122959948641500429945436245254801667212644962649733600619245340431960714821332253784723077984358741587105926140980533685847277026224073926215934619344656478878490883215552735802288389229688313239926709933582280877746633142236513759587596380499322687642731617753072136697186376246899554462956883582989059159255800133318033858940378548555743484853446455632824399286569421671825788210472168102280100726517766759540063270832960339358927455417506216000197637621994404107766259051940392430747319562513079976235235726338499496913223578052972814886579105721519409925019970683316541698990740397266656053400174047513505454151295046121057360852929501652459214832061072370689262762571353398363178344955198707717873540795558236757394917969829117484486331254577703685816466774970254293549483950248797829880309161839613297887288700967624963391656966155243292671432130651360219990107658135520462309572019136092384197359798748545544677735991502245840937966381058523434280410754408731914105319373587539328115142581771419641813547154526650744995128005423843884059036185608693262253308341217979234608542970606129481620548619067161223449285790137623807381103281426662093944499807493591970670613595020623907182634395856986796787523102835268576743061911474564239871000924155866426177508715648266339231466793873203347264534298679258759744897590400030796819639347772122890226995322695114489688025700655132705208215731348454293325053623606361903936876171433148334079121766754000259102310045405586125758887113007636818535719665996710042411530147519111714032024291184742424781211428409984934149667126003301365232895496401290403019673268345382206720330303012318103292963097509908850852822592797839051701926754473088875197208278681679485029383475602398571295822972521087585106777328396596275092821014822802627364483812495784275908729403400789248098015522139720257865912669876048871116224866046010681797247721949374443725403230354081248436277807008673888190997828213067397116419420568000760715485271507854530718152179714837577654403204241882136940399872155886176629786630106312102121074799483922070518566946931276580592217421733375295329078665226855675413811495463866967109404882323493211754250579215081299875443288782088658954647761991933430806419046839777586785329781159001687038298564097739363565255391485936769496114731871307212572558575884153988659812809006582923228536227199701128613888557667027828952461668950783935305191213640849026769153749172236114838596473684866374939815467702612671667952531011223313481439314173475849139868002163651939535553084365930208886358134142947879401599045231037858505556874729548425675933735769644412111832422669431964930861549333025151074120591003404773767012847074934178946915423363819627240282420513470325853938140421157564140573897441652068142709708151329102195966401035997261243198041488792544769582950678286091829506394891947499562110948715160320528856430005877529078833814757315028775107140711310747817611507851362712130137906168184297267834556819385838004943656241348883110528380257642310252268775007110095315981418282215776955293448774379856421931000569643942657446754393173534346246962190211157268912095996129628291957368847708441867979949559218428351412256446875277310715977659315709645263785846705871925211235061683054849284371766605917585050806732372199286401466398409580183466973033662248330712129064762397874979200103035982318947462977022863158058876738105404926969879293160604636882722107514283896347666901598023888276551195541912766164190342070629082003420764657829380031183739449219447448684506530127073219784473984481226720999239123221543307450414240624371696404927185895108267808603553499230479556602489786259006740917409553251676472940114202123098147815317803133074959559604551850845116524317104666437278509964108639155561472709018308482544603011284291191671350891801501983767185139794581268846453316704900254265313343148516477273401678311794833776723730354746364136486931590721907512759058509612418803732814256278442422343435033488357573148254713066545115494494009814657718478439002376995114796157395960705779374967976874105620083942028472007955408155895350660748851775614453485381322942236442189583021458770404970813676467999860389711089895776403360543767178282414599025017528305252577794413738641352414733190470894751668135649847462961293145551457587149042885982453478687432345512007864071320040519005190773155854180395079299736753912881751792534806818950147113960080168178494416297568198811465564871190177556465307928267399498119302382005504706912474901428199738311924317847797326875702876315250837674906654446784374157056499479517688184272631542036627090274524096357174701095234242692329975085484325433559763804042411483505682338966962980097848757319942473317708205311812312322932614122896231426724671263428037359323622435774342492613452746453347031335128592940363370198319309764477225253004775574602558033857839730398492487502330152546000365109537326163334772187624774677380917333879495705009942921718188480462462372046684862272191752832682492025839774083193176588337380114566038519431904067232100173507643315339058318208444039396020107655669033125365157458045898380457270286674934048971813635669311557222170704351863693856872958347282800826508598065110144922208773688480865413881179549081632291747078215013420500041533260856790589938915899190070161888201094798058588321445250652526159106841901543277248373790176572121774137929934252481195940106087507346753227200190405264231044419724052803014329444984582622649711387082533256033214733775413503297359759488852236406006190312403248305479339041071280673677219003109812652336554179701622124878838368645734572145786062971623793292211839974551052326517286195557923060038369828535010118438286908224128952852488020733929368969342002723918348882759581470233081131661245603419738950282400408408953312660548585127259405662884554733103384192305439401222159838569419069226317140743493789409804612130702931226139261473473769361611006214942756048841806685421554507532619184216833898146859662701573644881949415963382961197081191579707208181676160439791802813379240621192580430824554205854049718455621205126756197822743536361373977089939833934628569738606156892950475846710971884771221522211418042262733425391215177421851694282696554016715859331365368194605910618473979012278177551921736338792802429991156873365518214628487007583531323911728913419446818336587386629003805735979337832326377626385960104086994843040359863810861138254621145016161558127316119586747960018194694786891385426599492325260412615071394050410597750121958211743353406226572650301853844299944748120934473124859958504709637751360878184151031984330494041353859460342598398207474868182105777557085182630951036496454566276320696234337461206402105833749008376981743977857348624173714100240008519264311335651347043019459170443934899509665337561873390245443532310326768406252422193369053952474658855623833498990748862677323629215330739340198660752044693237238078941870448469485488560991664118719233569581930303345849665837116654924162900893982844991217160116786938065782097991743768948408735224953656031444275614684599874626275811774129132309977597430586206561109624807257826392575427500719047520111640516714826068695122041649918056348739200610393918639804002012109396981565501317026471641177525257009796090012743276188998045878392042053334221553727834314224817294439804914952030919392834286798705975053246174299806656855937119935842209764245017971912949454572642520995430856881089090031889834848037385619429601868336854209241694786579086787294954336263471408879903641819721147500010589315990037613590491715742727779538940336219336282050710198488585513207609923022754361521049250181339774437629440030525899962574134200869905045588117771011374167700439982780753285361973131476150916269884480651753919184053795744852311265936887264884468001391683765727541049084681305665620231525102216276235763472818177073505550522429910772879498786159898781342676849648828755624840611744211886073750101939493076109011280555437117456942804758957741847499608295184612257467054714643770332365073319849108997909094003877819306842857105750467260614597367405693166176118732975338912400787398051947240167778358612093921762866302514545250403284426921597515369041073458621922324096525884100765244524877355545716062579497842034389941102804909560350570981348803537862904927277777931546213377118813083216610638219623835889264474426553525725013930061212354657229623943534195762643831417375851349825737766057680380178518885848598002391113460080164727319522622040856174502235222150565098518671170238422820713868975388721116084389679082561370364706891740482821217721833430572865062050804210970218704079880538372459930349784042339213295058464321187350199136562239354373234449731916272200489846336999321466101413351042973787987996609506309506828423509612713502751416718334065071985089493041746692800998230982612153812267269523661993123884685629823997855379808909727055468091149161690134703409351030955068364384978760355850422189193825667827996210746027784758369205253373471655362900723726637704822518630884982549732776599145158382084494602935383284033704849649171430493751426197106577153044498316253151114611844897393258289750711251426236095481997488644945728202705857277861060569144453471085066115441087327253950068118726551724446463978304696784296267027486769092140276857615733543200727947685390205217562076786253747958902100089308726546929951457747533281446328555675297867259207143462891985262555921468466926923508223347044145338238503674936771816411512948908543383371941277503768438783509209905807134271390246625843359314980880926684710727357711337248561050740514172117243502546022054990121206412968790181574724714560451574197410203470813293841395075125550469759381724435616317571083185895510478347666025238573190453298402229472969971082381006943585324932849908720321520841857123317731573408138506859637763873817189040769673086029876525504641405569556610721987238221251896251529562958358146948130166407973550712625876213983528424064357248800679617300397672744044503497715771251661492140379344541345221660884320588019336644464468594691258293635715065118078444584619101741863881903496583922625064162136560977614576624912801715329409610890664232050277996245982898555354118454268849761137231200671957361627429074304258431199455830684871939259495898744170213979570735314806988612222441074190457743267402620654335148711606673339270786478367667469790995852961785168651824834479546485093931576571390706538698904916501467562758279784592017127776478392112978072740537668098279653446629341673722132148185145374052689307373872580205089448652241251094423994632455556761423942565649899404846222609007999919492425067570287407046049071432460784378749026113880746300148803985686996060503504762662344638427628275413141532813882768269850070380501360549429094533653036885993442886834626223568715575938505875207995101446834790441788951675908807245423299756533237102956799569768589880645487575205854441990808840152339167235766488489979650539961472700601644587915788704303171898373672879573139739889061632191993521861537051222207191281323715297701443845140694028225440091985616111176910532671854690070992260755874153715066706362443067955620197660544719841084050069567837674348447905133153750556782942003030876796185120305494630641189784481611422648182245889865554075048418599657989806379380130142793019019388232384081606116225618315897743736928626274585096275827190522387413418242422491825212765294089245407181707620245109620874814013803252956543218694478046155187362304635260999242277350345236962523970010104502650076494862429160361713658376551017547620959582041486059397263189092578889107535349870788607039324326940525733670870429809208430926187393638333788624267800363130697443092417860464633384329589508937871930149885692186766489521661592161096313232250392476829023839274706559802126865173243277809484458217732053153744487193629180113195973013956833961713774401062455417538829261590374778476859416724572756595669437458427413165529470396415994115085140616399523254862401793847532959223535605721088943651353294365481852621745833626232075011052020445710460189265263409724400501965969077552797366558843469540003181932726745615009364649144526869937854559775395481988139587350481284891140785042970915856146973986524025354256121990890325587068905587493292781544533213479520772984469532847696109675394052462861434229170063710521424168152636517490845963814313713471366513528215150241070704200088190512677196649710493748034027130378261497627479547921796099097363027535132984727343450515491587582919535738438360428664357756572781647121025009915064530939621218154885711462117842082894127810847659306305697181871365793739746245996242337632871225933925411180744782030151003509494876250264069598055060193106318770958953346197266429399551212415348548614838061412553545901115509462514032018952589708341586651264625711377583805694108038426545682128984393821474043475550697030950839456602559981034897690217440727046240684922156914178918162552752918878857835158902179122127096742768186211301249255580849530936191440039722253293655127242364221385837856740240293141205493630715366221976162659959587254722618919260063714282522750415191346805461006203877709953536146559851800767234944260959321969547623324505554932920378827363039330476748660639185066273259482043652879423180066064129959925182269001755468169570844357333039367948859696399642814059753148944227082447162819275857797661341508143403390830055489071676523359473372626226222258164299209520397050652726878255302722825049475814445574146692318705203752913914073612381726524117349553636430891014252610585445766557358745042167866904585941773203568385763052177107684814169297801296528023954463838667390074047982661379496243978092934313955481984557867877154367193522011414438772077330252799325258459886279935024330151017174215619343067191623122429242996384824022467786181117663840448793510881618383306844269175383100115350398366880720840374016259649885813838516657078562165414034762695802727508123733239397165623401752705974112594919006541168100211683532887146758367029281576692176084954848481304932618121972747636194192323281970675526548511735634986650461979975547340754271121986678103419313059949004897914530620676256102931909740917910545473701903023188822883378934192689048347096495231002816801035725244822729598802602758368206188597070571412488145084752381498825327210092975528583911523413329627491971898812646551933131986267809458070896500255675333386334186620010335547983910635679073777483417258901462008831183711045143458602603448376006327448083454732839215412406988547064265283726054748801487905503512581061532398475932079994838121536231175199334308078207107504930631188677450994603877935080339021092840993802966159777220119314174675076421167706730834551759023006151126806779507620513420566992469914030190387248251265151696229767382479364467383066976040951235786116260892858751738022029413190218605274163098570398293522606295212502137619380318426055389277276633398602909650994021511929133365932718381017719126430250047931587728450445242817557236338316203203739366524949909697215261105733030588414675526993848383126624364969896350519243754162778693111742791241073534962542593816858092554513653313403755774348697687437632771574000719612286782105579785364339435583029931292290906264558682977259170081149395875123573795988767817352695764945426734214707785198901565622979467184167109756714994948869594957349692869997866875224974919493258713427425509267126119206784322463873610010227725248387408760131569659725733968733227097214422773359523481783948911905788321514746914908719375357426199653320408372260609200863998336076256731035899755121137042556043082149578334918063330430132634240378472501996438143399883295511047058812405304907579353145869143532475708959796344128166090085493697834821460790759665101094768120949821980139493389460750143095069763496392252084272781313421932799289310425257933062135970013452728643757688033309811462243235533948171493451598056934658610425446670217519296055669324347850056759006387821859297311467721781135206458350353317328608708483775512950956753533298775181374289413878210093448690577370447751120162478534856235640207222124609515893408830807762490615671416465734665198584582264066056148075989716423756035997128662661981675697926213650742255586177067417405158251264558517301680913808682801021430003957325767369546189117889721840604910707104620715627334564370838473471437723933515061814825953252031157000626812705145322603936602219656790867835179416139029705674889609448215338220262392695908944413962048421834998093093460792967891818563923058316476606439489528696431517663435367911093653275977540589592131136707526080633519291076477546812658327529203575010673988411605663878856782948947401963478882992896527702912325404611545758908282608679019099406147394732650572663599227594269852383964195989323941529263733803883600147688184942742303657797359135290785618168090969274548735208031514828773745654784945508198387479385381833534670456033474478387377126200786548359531700536048747821968758134837191642237254728010001506562104772711843079341619493592236234272716148445041072520940243965276144871285018331444955677380041320507779142516605040233413814236170838056445113234732941383906800840333085740157672348912319107266500205172223975326842977146114272145751812153928056079168596528109995468788423314155863313549596270752513057694309688293961138651158116934970605654257751082205640758079828172781545676013222973895119411162351626752198194339896740330131654794527609166537175347341498226684846259950814215681545314671102249457348179806724402486618198224630717051089254691854045780545638624151996140671417220998529567994753044549695682744504823405225507733043272157614595719523586210353954116644542344456487124616457313408060260791444767991663191681251240889803239591882175257746936855835529271844703105640589754326387238179473210723426333010123488056754791262859212524811711774908764859061016392857018450329213169552810706214922495398489007395902926794358401995038084840184902768954157115713784937871407120852423552527361211393820839685736093264931669463689435942860746591805592140954045594802734937089363178122578239554941598001032417159080345100574693129614929815389212523562858199926573335865229073999028149548900743168287534054013020377077605178961348211551964330206595454532359033536450875226317370126540331729829472529192484667155229611826067874001417423695842475172726023021216504387908103170300235809770935898250078229445355757549477434563496696467989634091131949116604741079580329203199475442382844167969478049300019943741668553536204925619959259067529034981292243611272106202795610473127814666011885798560184040206380387950446746441083079185221440346824388357505793189123997154886840043443575290258837221601424833439779716776118960378548803480772450152669136190534863285756705290190541904018817152621488804170143409001751642172891662412620181847377328492302328877281141849472594392041397972900864220044031529522393853173169117986335632840707244336910489956466291749980997575046467910488402748203781561431352273102859678428435173384039359517559473961325597396680754562804082729294260014440441739357809631871966765068806132160874822344356451081175337019121356831732749405689309205632930196149323625628904150912140469445020706501727532147322524020371845031876952473188646606003274791826875567081094966330046680337304754715510923059877958896481575094689296961004030630179341144082044458314311527126649893111130627824782520067377058020422989670519557557315350493668424939911306749332317654730868109255781648418686471941135521875776530074860776285243385792853586385045680857356874204119804161163073645131646589991944839547173733500403777762156767317865288563168945946827903533417133111442337921357472291131459652029333985786724828849857539611849120174201120951242644197364974719443010361438260699133377981955358774856543021781211187415224835659068963702825484706931354986669475820062432791612767716542635167130350237636318310048872594278845686953290378101246779067480739038121663979437486127984707790203311479920759782850908580604292996262286836232121446101739161289251174304205254130428794834969666765884110341560827795314815563445226356807117304860501624983738886672279033721348554480533000169886922538007779774080485646964805159465588084079250929126373363946711134625776650508952711462917363878168277660480472472862370911448656572439044063896301601766769291483116189976219557100417068074837559119450203447097766357041773544590055360175526989513837456072806863469758525593671227741103020066928610209728378978477620996243163088429026681247064839653996457634553764694810031348507653995138098467937762841576894239938740216051068463151780676816010762332938829520257330745468648868709590682462134837449942609097124477081091871052825141050530772002532667853280198050561862838399325111089542969039184480512187150798713723937079314277273009339671603392293486524508938830447487842569070613153909150687498682155992246177538342740871859898977232029956658986317719350949296352554371340714250383267833332685509307353801076824645614400443139166181026339609764715467433131424507418260037948099902684311856421461520244531171329264261172930120549686238612135759772654768287495314752697083504699039135044963296160384474017683562516355253847632040734062879933899777584135858293939981123086088208141777911455309467323005418117117915947050408676424114678045106435261173529013279531430696638265456965918944297477626400504856299141827558458460234980420129924252262883423377872073661364304572598101771970948794204010432038209519517977485919338064175640382662344307434383914148878881128459421678329551851872022175539366517631500480510582732058543849352438918245541732829035769253193762919192375289833264527833587531346786773768114066730104111114876554987670760681009201610506609178262738852083654755087926810618932261312545127348500215228185487539138675927684342524499914217862169798586124506878664287416094883677982627834605057584739893374742501804839597850992872202058267352987547336311216358476246810723711445224846585649702339120315281412212762820600151765852879346461893875518800763608888760316163654583003311949531984340057774970570652613837352721380153908296300939367529071736617288369578239665717927938673042609572945216728140662610114481481699741954174230969423795541101697163353379315932104543262313432011884827465839010924860304880656977658845046881822660577031916483479477887992298608767975153940503662860112774149536442275353212749057433468853667654230884290635063281016210936815988962962561425433768332816707889213601012224395206334359957155144383622132956572137398073379194186232090809733191286827806960303411215367939808445715949231245032211109920026839496140143070150218269686191884538987211489443917872273135118234992607085164669416904039953583217756015183396500616880053913222704473999348955881743142443702933608045278448441893273495721504988880932391699173273354316882540253379518436732306861489358271197296511802204536221905805183149897316224854495000062327009179008596535887951125857730136368190330529669324494282150757149241633052661123975593974247351040892679738692168285562240975213990697294209486811726198450146206403250000969376213710956848767525325721062881295706855880686597707499271388266057542635716604646187862015739216064060519803346436283443206490945293366088886065377774608556271605879985030300346301825647318920865167158602670671342856020544128427559973086380023769029277181665826641657106787127788405004693061961608768812974071303580192378313732822355329765823934169673470414951874119142537412478855067553625574805071588245912662707059060076928244386935458083969958298544098903049676381158541445708820423431758313751715570654681019482322906458994814597809639275865389299840610670022827664371946445623031727685480259619428348194459893798641816621385620504001548460763240019491236904084378322377429370171758289816721740276461804830519658012858204682355177263230799793598463717463664057554420541984966644047930924128886477396875846866249826575507847049222068412534834541441125964656004322317950156318253061977760774906549923624594389888843744688388323336233437243845263774767513986390151596699552613882464877680544582521368138364496708078818095004228453514701556245741033891876383572368275826530964696037247435343113217200862653258198047898496230117681803796478187236530452588977403441709630066084640158709223756597620906899560514831767053299996624949407853670656597767762603699725116266247831257445438797675477510218739451907446653231772054167472971375012793364125691245740301124369475525762409718805378540568144177754419754277503480486964305111565078636962414179232937122831571722629126586710950003438290521712323394088437103964275137274581144076569988002415140513655979813310673946459775490500157312146588375376352333852555584756841203217900913030486508446154917457931472781768038352685133790326010975085300024263400495592793272460988894668122687350665772234545537731955590407755629201036010186238406431017773714229571533810261570286785956626343730238567128179271909613090769706220236819398929105743783958465760565272928870395710562252200629918754546458031632199559758219929082674600148707797940754511407883245472599013837275617749815154989888294751624102324926083331355642548965994558668012789876094784138588210078148939577975898740358374009795490546900326870901294968813366153002929356614015631803619488830879895555411281696648906222156819188602398232026954598576889724420060463075163790711248130248894373701281610414950714843104515744992013047021690316772437331359251806350051803828134842773469257700282940585973490084583569723329414115968247518584470087032694544396845491915333848165515910532039704857657941211593068377187722141752067879365156852603826331956518040325012155120718724961230901907887995141803452827213125782848924445245553240136509000533952418913934102527033066450995763353040430450260235940715986186347335556789180377013599453970201577047645543149942321636803822162689626187660357616412501684218732324424642101997095511174376743471022938509124289164724659552839303133500923500719027621315906454002342557226196184582407331697688006706230441924276407495187496930866460816648483417935783173525957226591860305578857944864416547011295897784693421477062501856642137105749455276564735725812542304754792822662351423557433950228325498060379475144093504571107093398680337671750151301347402840057441490251051557513786983776541301692123246047512368169775190943017160660348609428943656311170725452018788820665855464415031477544947585278413169707905544347113384953477926021319509405673113826252017390514365649204244448189996092481618370450227556299523546587332380616522604810609881181173250747049156795906135181032130394592845129711848922229393508617158244882237984257466221076576129723995859094984172415399083841623462878355021186570085377278632822873216252308579981675474534185167004221265450451958890782919952157606955961080503234184207399841083140383992389162502927025069074978838620717710014795060378406598516336180720633469352918007921453376455002509321280507617938150988299682845011262672532436542216464913464327995238604298454310954935090921789760953050940159560364163077487540011885535871360569775732846485176150687957471128982605258667461906016145932997258568107690511559749165059176685526095008954705311146538578445306927468984492032940340521002920922938139386175665108852389397057363740626739206044881659562956501310808950030700455549571085387358057657681247368896740352936200306215154372841820398363226364605279139832765505127543449716804145834028612231251928181719178958264525402010183841187278828692688198065601096954423075237535090465325823105906862723307741282942083534583433454917883412595753829262298721555996830067368363901785515460521791003769602767388092971333823809443504998404303389944032688789650952452585339658757747613355181592431217795569658357050305465911180052636235035983624822345538049966848820253093062840667791550057564904927690905666716564048198822179374377677303365388793486582807080751172757516070674629408924343496231074230193914204613193657163372098176295892582985361968122831664597379464151019294298222624393363786054717420764748209920509398829101616369403718774414427989695764524628275454712447187809445557581846840021164705540132049447651641931066756930866532520858384384687375238049671672112769945405651145534797707336905062887375119604416489516934797962523524972675028314826964711937078053868506796116490260869482221988929039551872049935439627599726614902817049304192992056344760542679065530942291543547312000476228296806193162349168573059589230284001065248651156240312069057736143553640699368000036734320494390304748102174809159093931937018660102595393011339554384057880426192607791102992592285241162138390862527420242794883383438603197941477089975831302028920102565186877297342242839373859648805953567027827561851240239205056461747319336300795269918439131452482778588450281090909370267797480636512215653152969340170689911122061297215253867792398726931103297654750848368798338707164855658551881824936995991841492676891523414209226112296351925888673129955602958031149318309772516728302614927441825627531679879792452274947414741448825855099717109231728467694663189109945674933758081860929451912432400000743437624640411375009890604293030958180124279723731747307870682526495777427699714303148896213815749727956530646552941673200669917205216597529109350273656583557528059487250645888981611741894260555989068812250930683800396616467154916013478869965875724098650097642270057493078855679306921755763076313353098253564555174549244291043674951263722897633281917672480597611075505168181763081895404615548684808983308981882874050208032564271929676417427250544933808732834346010529219962665105805079818736224811936486874958387915912987228115487775861570257655192084114449532270951489634029060063245062011055531911715471984417040720302481686581403290236376865464470341185989420814442397220408915767158308396472031196943516063375706980602572556214126627113544229716134937450694404557477766457967359549354190758617890397187252185656413791004071676864946421472206156635045247292606959927291662874732837593357178922279537372634980333297714039251821722587544050529314709504330869419142459428390282498349141348206051291872762282711279242439352950106031918228853771135691039599046057892194162288964810491217797765205824158308190932793549994542152348354975589462672497425279003396018204976743828684111774645335654395368094793291083713576038294340997171015119471495941346626196318007353691210938433804838690843181262270355253801892435451130609959648157275813028182480539754473606971408768056616591923269762666470215990902032574524663643100129055482088950198811171153300955538924918305672726970313583439649722010543014620922563888306125439803267136885940456204636056415097782248665715653617878683462657173023199112148383699097148068423952181910591840652733052074505502738023100403376476062154967166640077359330544491260107092305282258351727360215976015805636862520184271302755789263797373236404005895802188776385600121945812839056862129225115322834648716038918455358007266324448546546699679067498530886917929313126596732693251826186509225316650826413174520895026946414501727198310305118456173483540678241691804255814740695040239387228636991997904914913008197063570072844148103453894682497687834825173044073896133101311888166541293450267755189567102239153134821678347247590354545005578711382246698447045525071802851215054093898930850508615734060333524139838594515181849048981325727475144476360605773212882515644088759482772958662102550642022510387192452592091652519447479848098397043313565451974344619862788957714183308348538305755929043789579604299663820696467603310545371657690156195994895454779928779186133964741146004934107623156760060565961271828791211862072975443037142228245960782649720229605924048946540806303533708911620656517555355644226692139979983636076137480157258435550078123885081637249747248565791690195105631792150951709460294033812386319480633086609763939925536927865908401791566422803692258870546033655658855191206155699811252447975540573344929143596668289473675571597792298818589714838586775837210781048397996408823136155309139563310923454015188453069078272764930641551419154780492887695857033889585350001532141973524395879465167853167349398106261028255459755246731755346570473402476650753819271498720804556900064966028529441555507547336676663465543897693879707445293173562637129908248904379657902983665654181267224206663372010935484263593983958654806568756868527454474605425771245856933157822942799836289113835938572623010906162570845736287636381629080965118209773735189120344413216634708471826889041859202331805209470886656237531907278772451383458300117248614648165938629812919088267342997682275158333870758261842258024224492266820486590332429797906554802324761867533970909544156091689466545032922609404442914457395439081541394251074683709915541466980747536971610934172983699027193007011331158532576047906391264428152445864841051012734305204161565457083813382162795044218339112166218886113395469680667868344645072354321567098857929522857266017293265724585937383797931971229771788756326366600408315615885155062649865876611473661788468752322629537241100451549546271089674987955641253347579540639121546501484403137603683134147005199230890420452886714712504706595004456860976858736947979639742597793967787641996316699371496526960833286188520037777182798343934334478719973154743756804769187390847108923529005667880389035137293412561965447620809440092024601067783776868494147718645092226155862768985716262808796755574017592953169330814063316499239177797302000900170209418758709462031423565407775890083878491521586878280096316373021130796720796611177183590804178323551785773592309088983057805774791935211181937611890142202317460564852626240167584979726429622752947234433848551671092457595906752809794468874449461740373745764802989286195578976658580562189052119394598841005094293972954858107328783586152470381291323821675928846697552804980881330416804695353378071103742990804501514628592771201503115679749711817032965932757737609789925213639853088228905956819301548910440761063298613531407673610583173626485618440313782152747003539999229579375194751092622258274028229983794864475976695754315515000924043646519502938346474483074694257467511138029639469373847171160390224154029974450472046442129906836098108695207824421710868611945321037045184131579334865325733648003787933180207467877384377532124016854184706734734499429413221477534321752499784796178505164576001641898063738803904825921505385916931636107964505712490975882595905000641817790142240992228617724711677940694427731859117284910573597119355813916212504953659975643553763698858981146530155698265514494143358093754537043829669890167652117501956136710092633019441773949758034877342280152285307618944854329243445778593013592333689434102670159063284525941978827807165883592895231057994045240777007801548167288580544973603764350387503208296439797956954327331320082782223065020387325539090417912187655985907776431020489767580737540674464639397949019471716661735305753154715120982692307637570909596780892190018319008004647029226024443010124480814413660484597638133736802529767092559897764821454303293627893349713400515232529482088936559134437258865533538105646718215030355570075866215140715571749007692525949587220381247309491376385577414130571780765186303463052846396500854388425043289691804658481757641058211951705610869227926913513770267495906580976601238502879942586322799403544808481437792650392840263802045875958486430522564692001645835546988219211233350448544961582990800668262366241433758781987206536152201405736295539194450250518075817581141261586099867682812181731222922246572700835891057484127479125402289332880988380473401906388094793780347007801309915402118606954776120971409087730552860120714019878005316333116349284307418413223520944977136120103781312972280647729596935441645021953100311071456698145968178594104316534073920019924890013125453087316791368754735186871752241697211402205142970510342237507598015216778078230087157583322047834845903471704025067848068640060500563351338460832903544677507825757391102573775952451976589316902685604356747609836425653072699747965455751829632274194142172800454841389954741594571710728703750220363259500656817883668193857171614129330203522612329124738963217243665613772863671191401874663357373725458753422947430511219217815447232997666172388020363926978092731338363820734427652900969781857050529578892420874511275049539280631342622390157314964458766509442838774010657334443355285452091633575060992880747308350395972406758024197889355325072555443834527222228665148926093050300723743044196254330834104176786336524371469443306788084510175578800508165950705469794787081582722611787204467152578468982232573282027896539414762088896861652287518714735867146203058905900601663005791995766562899222225272048387875839437519996874168762653169418574036399865434099476361738022675473580187553001113129770845190695535157507327791547365359130480230020786210729441624417269293657907626403865280073984335340742223574654143929070449128207694780511180242869011706198694793254653212615100150517417962131128818337972919950492367691426535738505736563666120153902157323947382709125770130626210989804113249652572394151983006330343108128284451556012625334679850373936294541686321637506870491324112658274637843898243806611069191093080657022716201181443447703099239181369156845933875720233036529485611892211070941313222492799186783901921531658458093001051545513072663875376438762772817138071766418209183549084615795300468303101989828832620152867567314664168287229053298793144653270790899764995401535206645317974216916564899508976796350738886527082064577214885408767634981462951596530527725468603582575461872877615416160939382563915896900580530610545841988192341541443968944412941467958658784008819717566670850679740830399873406015023673062883646262700566759888563570655879839698543033106458185057599187712041173599746331255795247345071466198102551979916938096337444958505921406115364524543240091552492251501545344155402298430564985813521448121660041799095846160812742067526452730561183900859664282654065512280254518388488729873647253571328712597488313605470930687612518793491440675022333085469644711568535118823623157386884926391970495589728591550655205607545527193131734458619566823874749207037067438484994978982711722216544065481649501174368155923258963208307804972591741027980632809503792690709495624970764218291892861038902697773261822478500867723222419512903295388615961294685285308710765725834050778638791070367856975992989620810626216243497821030870298598352885567923344698632476171751433576220645689267110420127518762184872223635143281135483126850618021894225187604166326860417522043138316625318464853468989335750396258043733478674446183551473964787315638096488918606858765350923489667287759888348914434603174073015910806477365691708779168496860752576408654319737759073947745264185901399317720604795780388567213340450978748966173059154445889731308699360752097377538711205335580891407049888233491062027455342406567267098396654584087422566234441000018256672370401059145093225035585105854937508378676967124242213087875554900191609505838005226128488842511189171966593709753988001549119515405667013978390364931338749350559203006827052611236375691173171193961709236266036326641954738513514326254943466145622182655355125277040368165037448934902789276846031002761806829134986360561543815183817907799502841626978656716370166544003893525928336618230950334756453227913133048942454321683139995071404648295242025889660739712385613404000113225205350552451926919845151280431360308534596527128425532326507737113637477405428000922050881466570040881506865294913995743743478709511902078251161433026181464443100397342894608061109338018502191911540111967802069185162607768845271117029943272275447746762844565897550317695061539907937816294731408856208368753213376457544459953319215599817200327688028296958705412080373897566140709234777141450890079894288825073400954314381420530228170637806899629178904563946093946053002528920369309735671576745807696971166118572076352138653339901680772060523744611786165992313784753578839559753238565354581288405751575358491888908616905991757077004779589243823907183572513190581515436191594119978805885574103646999777326167511012221881230707703962953738550087362128199992754304291296858322161904970363859583595470618391192805897414956224600961758727920292177825619134017156267845816267575690518290948556264974308763888354920414234323860864607842423468309268930459858432705973867321208152987766834133956163678299768829947756874972484397531609117577770120837076491688420689213929454595438760854404701668178036044279392885914763765514927779883776756397796086850333566433794051084035578814196759470621393727158918661900052628410201868087006523654677319775983596746852216611041399922530620821955044966580730187390902736735638958132058456370831064765925892250191259379858580656484350624992306855904718968505947947692348846651431792448672162608290958627435146032545098428681040100863476403070183535845809244296813003239992272755935246662740955570955960961646988851851769640834966141318622143922083063856238600955832379200806546243947298912303585247865816076453298219694691200283910941660525915101264724438779992396646959434039611799320310284448158502552154075048789990721720904590520011112682202115986963289684313642361027279429561569077776204789549565077896950192417270728183645585366831699981378937365395891227600033433326655027237520527022371162475887269677393356389129840921079051484177536322258613814079691871222097099355469157229216197389580925755187251096634086878815436552475095460319642527468021688366151816233217037005445521992546207791552920107826112722467798092540934971574606284633743831692529395307392443581878639335318517178627001586992362962303569506905201434446339539564536437642010895326105326865343502127089352720276499710658693466560727286664101080912064947094982233265576087685457247652986498189232828269435038836292693783744293294763775569569117435895112212762884922166232819518034687571714975240545402100283572947954577590794044827117950109203445933282838514444812737749492227332313975832528411360008057681807489473621146921830867320554479981853502725572205474481346419367303475453872966163093567317204009985622519844205619607062050946640800646061732265039065684431550275898853257213227381559445450611495503555259040464014158887501643542131639244108425320131698914953340722466847108767783671210334567980126522356150927314309940290716362926486389179851086693390660208868291576803546495476915373176053170814249031820985228121445526855588173847399283539196622053725002437434926393718014980844513945183514636863562553084113594167002294140677238896461271068783719324023149681605952608877335134990091649755587834791366101271703753565366386173476224305538101242941442473739523004006918739491027507374600546447327155821287218712581225675228323839910036032141360794271416260275297038887919479098718802963829632456176217666971777968675589762412051272892083899116634839650454918361887963231706039398279282228913174761909143059866499533371899618851906160956933788365476442237155205359706925045133514778264972005403836196762418795828092906262738773766577271774204238465618952464747823915414233298492399916615883128157919303675898896554030955392529449493908861538478887714174651658163103781923992747489676777456631043422249668753447978233157392689993635015110385294847579614905333440702562528283564504468402590855887864975472307257124259049642435705131520387003839997621492113795492834114104428173333684469512246575538793298205810151680338547345035426306277872389424472711023768558272116381010468413141135190424095910098068829388389128953905595732909120557745131123643670768394451389357918967743331568444469033760687277108669877299996321842997921865399032963730951395419322816893034494125263375217908877623254065090832977310467738061490799405070420975054007094137369915630132034667014188144625895521072978845030500503437429829454242830741277788631325260881785811416161602230798177832045862480820368927698635551514986453275521274968687013277404821655555588503108932646415262794784280367546122955475555101302428913838047634204963582911164390346134470070101063737166629787818821683352861427650620910879734706865144604378204776798559716564359002038549952591262251822026658686929697649527077036648159837928954193396263981976368758470225222096568450533679471428212414029131503970817214051825542800714750657946170276531211403403745150810337381550838941977256759028738830473275968388456791917716837876429105738106936360834548459903058545324578717936771441796841492294630127476283745289676158866319654938236653766319200361506696389617696600918686566258777436125985834566540557693599510001249643650963175975934044309152138780846359681763529216250759490129218056910641711093806371106607632711468124595428624260459283037281763579959821127344222976104486510171052237579514331567977401071365249774173311561439109913392767494877731357269412084769760730049244778474396907632405779574605209413426268380873378384654488359278487945632709455326495919402434274895720595303460604206032911455300068760105368736370197475116587179334626282141335026341850135641948753217132164930765816703380624930135130850654673566445604535120540168602858731048641743233759277104497842515587430313224709614102586206563333075954943582933609994923347049972088952085837992276649241252313559191535837341861247111540107186789350729827480912251945845830589163471851541612726279704693898698536214025695860701140995689531145532345674638200897861258411310883780844953747290384567848713018235979353462689441009070277384342041728294837571110158944001517019315705522890943874045295363308300654632167610142413744093987475464094613644078434248243675668928558228618203968429286192704595465289317621469515749730824499499470088671558550874991944473327555244724662634905101806071077024550819884980754167499200253908897926020815910705413919767809445391421678699585656561978015321137338382502801725098239415444505039721696731400860278460296525931544866851751000517884829869966453854479010624713659395044836437929094716156450552916051974803808609361572328422352888495915605432186160389119907544082429734006398418289851715805372053457049777472614034008585306027222103822457604683615047928916366534319959691056590604380012145786973140345929997544921098562879815015197836882655636121568217547069517599508374514783223717313113355119164356253168290707845143237480640626170738979873357227383432075156907606323705052081456053965472669682552388986402796269751123204559027601632639242915707365320896316955048067845165365365414996086599765631734002603523093329498568661343380806893549235283005570768224449220950674357994863685164156563842747150169859051321345752673675397709983638955724516954383019917133871498888796612442408129020329779926075034889499319841029840791327005337310846614975532269836699035521524437521353605899162220960399380442277747730044231580761097098565941625812543234245553609088587478198927397646339094558634983582512081047834926206092015669257952516138615811737485380315533006517200323798698729109476098513856647392949891530590762134680025393198146844118443211360346368403435218015311053961572662707769511455874787960535005322470586887099651630572918383618563472998616588475057498075088481903107797153782308494808412308560539082994625714648638537047111983432321773420531156117755793070023190706789171155449032120771996147063130559903914940103238656086675555793004050822042760878604780338474244659522469848108093463889316841841175165466671319402716571602277068504669347722819168755655026411692727987695561379422874417573614651319869258392910360387989598236068665541349977830939383840348170908922706026900991700320347238147894193748974047611896790044161242882960333192820446100450747768581112389476648701930981474522995235848321955603899610469464488901548014204823839152459013259451969842848199319857140467013929195361799389386502323572395128476349585615328223954116517133422691318591623542589705698186643264601688823978419195920780944473765614175395051433262903834513350498321927717740083799174368338188180437653087088947407070886050732054659193085404909775322636651687339384982673173171764238607602416350254164526932953068128727952623905481316112560336487740976671425200153053873693439578982133772558211697841191376187190792552215756214410948353063968816997285780884908317702561655120405921716438752596383324785578959907940397227666116683339755972540945857078085878337435511748504738476725863939121612537462858493733232781201508070197408839221088728452023227586110305688886055793091395768517333521245932519185891214615656848214658464005326667973598344087448442971597340694921226351560626681388556500525380874282552705118045115484614018456957208051099165254590439204422783607683738933073200905562850906422328053816590320653603573456214372045332453051602114408581329068917329438596406055287213629390359014333451870169336995272900836528074935783390892335594050236345122860867817550824099967786542407909309679426010736246283586975317368667633389772579687543132197888719468922510824040160661458391675434351634254181770076129392952840098499913965460090630861570588986870425583367568616417637715239231332423780765508329389015641898989328746886695814137039665397388861480227333199959945354296692257570375524659358237375512992654668126203348382334343166948186670191493550019566886687376181291608506485436794983134298345530732621332726439279292767239929452101798098175426519961696233134180951768645694096388630739437650602310309194254684931086501487729238764130261078157096372814664700749415414856149713325792100338548308894348291357946944243053256399111487898945342323230505306972234761249175659726797660636105713723579558896908737998649120412283899042255168704748715515314117396840945114945419567736403127973597581516368353505210720539967517934792900975991337547107169203229223624822709165461123661256913834887714822803160405741052484878226524698826721752872844659574020557882556917144884632273457241289633473658899766776417277479643707088418704574735966141663119526514390339210073794240777251755263107391149475429480293675733359961000273567818093249763030428243296416493748180552858512445614704859066375732102240344810022975569867291727838029556425095602774414457920885070117840179608889825459649228350299354006059364612267103484349288947730725140345393696235051395073322897895442216297731716365210380286276378537000451675813718973348259360213996193920980460964099988879546725761849486095768145749493636404065155171396357250011695509770598288748023470294368480375007994937415085594448755889432691576052759090487370357298554261923402781241879348462278468144684545997582793145857337351340394297533297631266041932961986772602858231237466162105229032495050521345230495349510217092917035011006782650952142833228967343668832935147903574625872996998023793079130109874452381972244969031664439701603761421978536514983794967156831768273749851404806308969964636851862403271882432118027520300873923710332278005531299922893360883326344390525529427522236650805058769706788951658427996491705851313228737210536151841190007905221336958754215392855658902794273590850386334142650589688844034053914427224790558526549186478276949719974013338702881090678273669676683123154482408770341198551516474329302456463802846277051421229175290675028704705044632435125215611075493068893269021010766054961191935397391472745729809840879016968356898385273836184894773410564682206834877717151856422050687645070520470061354502114558930451639464490793429663521343766451534542989237414161375111026372928280525027970274001688115753291759067667202129281014508234206900965538652515734201611894277169173673693511518853264908229688007519908102092760090349733645923797389410469530960043664594783071726162875132835970520027019734603314358881371129791773817200599262229991008077280421028262294682076625146092758112914810686927896164967330800997664871334313738295469982501242470879993960051098597848516110765916856020233015223871617913693827440609466194039446524338934537676895041259511135324898625181458848518473744905242516267614191516880417408438372975260299755449199211125282531728962134568869270448322645504933094253875362754951050997439292963861762400584818813744991042309245365538559049536972329361684042466642515713879384737387599957830017963954193392573284347895206617799974164912853916826383346992548900926848243858462599831621176109043368809212925510790430499173990975340844721591331984468127712218854670409629928563809269475243376084501585265167313768717597997455378140294737194678337558125947398940038095697028386010652061539873809718414547763869601363040179146127066071636890080785539620310504566198295334017009128314127707656101645446999569617133881561921780450918709078619982307691283340403769538657443545019396813603720216875783260840459779227162762368752900814503884402476232786763357647257424144454013951361536327826718101431489237972542742072482801634165106744394175520541664054955424199155436234965078330445127424695848157420823639898219820040271034683739551407894825802419844393110492372503785898983869919102195689652046040992420799737470497083005190838200493586619713162083695666950062738335218694570587847936289054539755504295769495616722610470692536841450996812877817427103961205007702643123010045447744929563349138440826833767657820105718112307297333738418052889963945217577047452294283440427853675154985262097227883477463380381557757206914401670188471193861414625977687617422065203977442771572286607108110789042993846130122287249095784036988693804814969378067801508616981096269700569266533172614719166617010680673412065062041005030335604737695246447738045427021909893805624596889742682623867662537298774931099543789677843551946619612383744352940981095178746324940716582657337158814373673292551633326794660468242287295132169163615826620293244770819530274237997339391372980164912166205763574829832399631675560008714876804422895371809087219149332370609801814549355333741385771329193925995138493234676204776650053926232902711546672062965352914086670745288779354834967058752020406068132885196976273843056312537042129255784155303026630921567892031264617442354051918493630232840919235568486523275467226206702590163349444728046564733681208345490468970887614434889900335622955929694143573986123746301363882626984797208268985473340470334956848814009369835627052745671420657959519789015477193958560243159586119789308551464442109209690279583064559163200423614977744616438248256567554050933764682827388404642382578620521553291024112284019642346747485503729198709919592541017675563450395526212987141136939419668787264973194784454142837135072786949455509441810161493982385340107679836068192720186199400044387377972401516286760286232593211231343904069539254099118791401064562945372231803306478587614011168432240886698531652978984734618709415588560374370574612101037956852318986116198525933463793340918866230001730245332800763576551424565134743026519030956314590402063807063315093240602673158901361567007955277606165574986466280901606167458696998614118375506608372146310231844216422223412620292154075022763540935987951169177579172678917009222093184199947717068556915781268246329003280072564757817310055630213393205634810698099771736244768230384682562439773262145522793624791941885043620193746274939692867170680916685621978763487889180705734890130811659202719086372267240965563589584327542869163229989025832171466336294656556261372814381578844696620458815192458648654289151636936974670995547505609253853406560827140681858782197531299307956694804426075561440348783879584505572066958886750054357708439143423117709236811889778925523542722178855821002826152629155164350250535882838903609143439496272449298989777271323057929800194256085131424343446826734431341419095369085928010486129691396758258497066887598668748229335906750416955598750024335025035613245536837824470057698933626364896364999750980000253456129320975568806978904143112564635404368134395754327251761975092650981524159756386303059549706736290859981862893176688065351804309517224836619707563253571721750665830252567925768425139556694190646069884701953659582646076584557838574149519013328061424505977580008763704546078728072742175136644506300090595237541774080130947510727628875605567656440057712411918417095673314583274523817952784721999344482276953448206655512750737032307966544319029898296958541216505292579518537006310229194473038448844989357721407013477890485558486178054415165269303763271929207783171004244715710444754962598007039610155223434642434964243424956459058527717172426141295290921579109206282607504713245161644308557265479206000387247797269846217926099610574031585361349426183323014263991619684988895903445485846176861761558810028011538419311740425892889407086549374152942831030518952753135841320435295458707191262313135637484914766168714642225180354999513462322279961750135643820557719997367915960002160329422852215796841386095320118441284330490200120305925516588870502947426689543151888559782439950118113648529862595889325855274335162664522976818952946788604048462275132289339946402921158164366045732183101062518137252969255246566408866982448110335903266545828171843649594839178303550505370650623958217507866440172936156887028638481831120438569613405444774295014051191107379382183666158897264302903267901463800541478041526219073352860238512239253032956794244677217697114858140353732922227237597917775496927990046023904334755537721551407883602415041027618115601638696053006438493319756070347852894764535477427551960246053249732225001608410953331935425412130566905515186069700615675506573702594722903559721881026007843506578584197885555444562259520244044750606965367890228361428525727624683936092981634516350902571675237809730182729520468665229218191270480653865508353840440886502562309725388987978729898710324178761345730457057215684130751682954379229721120364447639831057309434427625411412323145945049039886927199889098884004829066853850277246574157083957736251943031263108324078596520992604653171176009719751948929498487389417224165292680878277324943994937860633903050226489585494960627929291115124621859780517770697053519292581211804662905656453013326852315306198764073714008361614282448468756372083814107784165694921594516189714881536121654786621880216410949818612964102136510616564821424328384785894866194092058927451331686848172767906559634060803794300594030814919762430185429461716715311843143290691035682095937829320925879178303483150314065344341559856500858093127270117532389895791415110497093863863310153006780943231684851849662998106198313449924471663688072902429451541853582416315994468305666501998477713825136060853537104144471964939079033352267385513922914935675942191441479973328167022640077938725426930355097540744336466011991497572397561122215714101788982896680214603081100491153931076363765432476341926807845571459624035552918725386613037113061090201294193622711408818650063938930290044119012239279325969411592774938249052499546969915239052949498510470627262611811647437106196532977057280594475605906268310425161064791413404730099414558263214968637431890876585216337142579620486200222343984989538843063330428616903954100471966984483286363090204955803124483284240812792764778238052150659068037326505036678148709863091875529065853372195500968175737833044344466082807146216069764576983485935839742995548079596915724775130979041109517677437739099455811015595141658921517124720997384131683766937093265286255345850885973763394611651446594350436383113618705786631393968522464537280051016373184912343361634761858874096515307691350852071881687451878645886086900650972995539420711572857738256591285790277531291305404667311347668354370744978307055785381495415346046676178326547792734653761394108494529546793120179290735621348704766013301727443171578052116466633629884629933235636331590948995296591119904838045906429498439260035711829373241703918132806684014423188029828012146876194131646873006608267693429300991981215482049027563965022851446024301863098108535637728061730098000581813611657911424330732655384476633086163102189797258520775805472564676900724139096384016736184767106643135980038707187010906591937574292061932611272867841343004449411325049971396756197619345499603613466932248596727804239103111364319032929702739874946610933480610427269413452453434199334569066588826245062776657854339445131035351172862224483098421968420902170666783056975772136821804928340706911743308152628393189897096839691162889023069762626524741251673473277080019793382427296169136627941164881808368285777457377108198358301168650415249485478625457245971088548366572134249809884526283783894208686625760972192770952129503780288346882384221263357334010778219383501377508082864373994266015574524841692325621778299069045673283333087798975594400327472841460984790324345668902493660732262452381753673871461024581170875096044502141238645349755033122457709174545022825495425268287925215842538411338727530388018781485046881263794035286288993312709049868198295138877192412014229159922208176030351049830023096268685772168084837824966902488125916853486983892443362035132200033792125652461288018221710765178519423381426487507442836815135713247914004152621428648427503433387801666072886249070423977178091177179749037825015235726074385966033488953744953309727894354965404380983941956802585493870043212212043721653930322755267487123166156145315986909672830863591785070457198435857962064311430056847472571180157442267849614838699369951584132024821645058600759877085116543003773946595537333431750835219537119960564691554836408082067731421663237386285552294690894762630993375404666474064671793287327096413207900962446687059436624317958539476042250676604966111601990446979348309350072883603187217239962490552555975390328170806561085320759007936912632915294983319904542353139730478048421550020688472286697163816639020127646119667974341408537470570231018242704565156810359599647741851845329199965978347897184648717480388587352861159086929304882433625839981036331958246049773011161742751774243055216332629326750633516190006161597333251556807598510192690396702751393359929456893880607576027136599316930027420913871952974848272488888776277905074324929436957082390876445601882644461991354332692995332139444659330814100798806499310952698375461276653055349400809253697298888228162247096519788356108874709250291792249494595819387261248335015109060823548876030964130066855167229481595220096571672016428912807112986685187029430820314996082327082732407077558160127152486903334486934430108975264642654568224310930429537263632780884601312190617858249423163085244932955150883213247378137704751394631019270649216394312404155646643353503733138069151027135563591502870396197002098627610781676461223005676341035398361936828180776503010493930422230381506527016211998300383912825127799139716419294397695948177818550474495953294627108033668066563006485917885892078570679452253983655878677653089915925093201744236634083931202059684684033549809900253395124280061029898483782431026475519058444483717433236568632597289291230025006620923001896539139311639339993738102672100754485516443109041878938025381638568232895272221863949748564101938200588277145307432035734227760943629881107560306487472377287798078973577895934520828052825753331798578128403337847690135431070615324807919728036903017795689179174211570004521148245001606585753309584531493235272310024473204733617386250123592317488260309807944787619276977630289913815261585830125139373245342243499276883815090920029345077883257542621590609889926353208408988681861890419371406420092329516393128648254089931129977501952005772095456905692910372305555493113777484311968252878872305365662023188083188871648867832879066215929366984939558289571063204179276554642235600388265269730957666846316966920350470485469842271284678639642527521726464094982130840022079618313512568045806545617066745055182160507326528978597272151651655452510597826036188498775370067396767591406189169183984780307896637412640675539626062241799771368466837585493549222320703013698920451946393853167087876538423498205248323188962600834695424139447783427436121674874185523428288733431150744637184358560348184862508208073967738945903069202755299863021299690193587842693448279179442793275600181400474690984804274246063942030737694134377765912727466349658300694528841044338803302994240189187501914652398068886081511378464260726942611111813344905089443575690034643622195008483679781689110398976120861507266765529946954549593919414177101108202413663505981124493499770537288573128724713555313403615041693283892740355333271639296999802749436509486214495768795478309002828112873799603820969363945929903109635968519290598543434209130101958477188793922555069564880689767404847708544582654246772493169505270488035327814961013996258626995300581185700391154769945341931807786497254379710279757248146187424377831822907982011350519721787217728636184993082144446293170332936713468195611095088715074919342995332165147235127855104395448138962553076124310053667275968355302398860329494747829602152031648889350517487080867116097107898134793502477331616187561691641940686078692015765203835730616556577907986891842626973301614415533828638699237970311921880852804837638024438838150956433520945581480323678060207311001512837327875604022198935719383864134533676253033488472746594494284663268491727339045052932255609905061461795449776209893490851870495172900188559330252266983789016742001966670007680663484863479570831232516476579739535146393056171491359212469683471256983084097156158003621216097393252984531094203290464313270178265366287533893568015350714898556119112463357822141478222916450061166107643594513449451932961549536438248084608106567123923102193152787813867420792305040514001267732217676006073562488722972964219736604673652863098336101612845522245338578688623265892545853038580138131385731720464084398601263239544486138545651949372635385182516195245629961808519680630076640834362491933592488072650125100729131435186928265483732274036651474296791601495394951397219019354542579341304902154439486166879233861646389466988627399610311450876282938995818445555778707414575092917628024573842692217133313724095984444786604189057853838903429664985419342410040323266599820109399454647073264272582299737921426553300096753060082649673649742696556444620881227702431824202855256727990070449574498491511907769531396651969943842863463957858204517064779614926258645733164725336385201100702513983204594597355830239692497060951543706103221899985680529271484541991738530430762946882805342060459931520035735510413895686092660538088895967039610751497139995798306887465550369890857050756032373442805889783771824591760707392563750172982624098641455992717554956449653829763163867385277880469358107510635556004831213192556101686420745028967036571092448303972421324672150269122259839223043724942163370010917194403088974327692936439281485423086856724823005210718823089732673709718694510073422367268384918282614829891938573079180501218462248753866482833966974227305350989706782396145199684067248144550185842451234815607871176385576519546960643732041683655097885456745979280420062192490255790063079559681795220607395810909899030829780377633324594001784696517210047032511648020423595757598089838363846828710486307890064558938933239604237015881568100249662044081614608582065514979648811631219925753049189180168379128436278004534243098240881263288383902078595228209956689080684580273607311571601840319619361081600133088460528981199060474939526047351795658047038152246253376405257087120719708773400752409638634001734993963523756878338022280011480049143917122322537622883392770248752978381656293524803210746960895519625772664979953942723859815824602271072089359562154115770133264295211963514370399543972336661406649203873451149469960586939001717578998774739427300208225442906450207673939745231863113380532592749218954072116875569788891788384843799980238473599413393796764636650914518595980412541054701568486943002412292156336749901777834427781170019306664524902572264743519773455932403618244342114411670649746438226487510140355954083409258240090351749310808471810767576077631706472186316432944473846667052800556280188349008092460991317342237959862606192985551116601353814347192570935377432630508523762277133525378667912427542969406380215771797717478468831148136329162881230038727826218976500141033623913861698700977260633815423721747095798549912129442203873227672884793394605748970471292592880504632289127800803278345496097117842040319317181342367396734362411731780829328724071604290728407770868490755664017507743924342478653497215199146073158922476245079239457538347096785526668073826707747848680655677107711255608364127450820885559945044042045348397325231770283809307183212102162326381559369706292683912690685747456506919026762105512579499958698337184513630095370060926656184211507627787767379068101605756298770307137320886998491110215370022661145543024878479234986569258214235696316176946733182985861370410144547860205875625117771431816098456206442408349700852187052732983482424095466490776576178099597098612066876273234730807896471747392816363361847386485426525329975699286109379749929280410158808315995321303887094085041702602138261237318779688268025544627741017471950647913349407735845418873175308624803666581940062186875421249195371165623835043760541107332639559163110450830339021178148270451499736014001011693819601288223067253123841465353698189489200732964381700427645445916294321330296182933041385467219660917508465569724363257028955751718852402443534819964358384939273697909734981366770223134739710256953960079619806838564135725648541518943949745071802387726355642308749097096787208862356345348661824402213592832985728250346818793858775545148928358781018437436747380796605262206644840042624282921903355357898373259540757465930364601819538197453612249382567422437095296596519635538519394809549761430207923120404676955562017361390354613579326904340837068632480430645862767575904760355427278473936648843211276726373723610479039317318868497483372714846488853141952026097622161360733083525001231902433228723332938159630604791609558991428392787626574664606509163178341094983698714412968417853166247622953821851156262794490425459652779164681231713912856737148409110927824814225175980475456282264780797823389006321135944040353336642411366786763809701303451553686277155471449565625884582512031900097596416359091127982848798150483522015351799310618263113663714499551494089627557004147137494640875453566360656589381839483433108860021586971721582169916745978591203778806681848280170017687750649874977777720704851890645246018221307149406973874216481496416026548941569758350639237330218551683329818448213362697314478300202095591904450325015039417820646265751154388252245522911660675988817923885144988951281554635072593961669866934553736459388872145860447247881814571156365213235957464150308300916103266684464259350970716572236624125780055173739058788416859518391453969944584333180408388168039661857740446952975746018250518249174198432557290143918111239991282068963848899240697491655414008588747184611950546712563515486892033393426023628829860736097780677242382372175830076086705847662509421092300320289735296088617315723091121945910537884166216305869004835850768150017254688220783591412189760929164082014175399915149003392551445147735530257334348231228113988932429798407243178000008197369668857058889892240786550165997812445686822099903004896528399997949182810024435514170283697864777850285909518181128372974506227702625333103376920560436133283804518895758164330878785408084636571479777967645109777174931391033489908044568865660168677464395935374694144992412403136184414519688530873873281359047594538585203395442796730144996442756521334812181816354972200334525071925349974921761475586099323600965117739507872082317507083227699289918059925244170564634102756038345396417986602524900317245327847761736856687931588842760461038553196683964034515871807334074742630453661236090163466423469891766718007952401370248759026213400372705545657579686851898461603546720216701345629196080580194942756209766314867433468200798190363811073638542704436003862979102530141648522599713203295250799023929436407522159160045462633974296334734934715422050406645030877966613671829132911888945789364559026182294298702089826957254677043232211190335234049849994941255391166978057757532193292048188510327178269310737854782580781410173881971242503980167745630528945038271024914726879294170488733106902211421760263202700665126179028110890077682193698160188237067796779459069323884958457903699095904410246829468498181584152654061910608795173473553740654930427390472192951261342786881249700948714478039130013249217290242262892336556922301943919544619781840267088093012954827643723681050151206937674856830636223119812753497986423724324651770312271294738901681671899601093474605796353842078770281465142792459137550596984920372057317252462154569098473507702554898964718423783328284965289289287225458658547869544727999483507457547659955456993323646464976960872785553426499526943534054261545081621555865581732629741105615542243836419048575275408072426469768603235571202820988980689814956802697710511345220578569000612724660282731990813120905661608068595804115956895293321743414563480464745790845596627504068226560797656593326036613901869710466175358256937634348144556643762003708380856155931876286676150625293399470411172330031299850228193329740230179833793237164900665872451900340929516455147880493449184479099702574741182950211522414680878972788491241322632814211602876445613276058770426472394414381569748341461327119469109267776619835776360294805712569714776150984056394217012420151540664892061631785111096299097207835477329299528533202216840012944184757204401072648363671838258908609119404128472544485884985181520860114888783367821010156526988811458028830825391227738280051417004092350043544338939942193627914418686180352677409579064936273130916316743991128730242579441657282883083966464403854434505478648196265988121265111033883918742262060747030055527595200652069212192346917450385917939034193348136844680721014052950165180797683353885214317934522622535734910935343967833460703262118939004028396232907709286843184040135674327947724264504141138380504239004840786754008206641988841962930440920784673169659520221534005978946597816888228440812444045340325310776798564953401082593445572350266714798310737734006896503207448298584463245432918787305786055414183576818356552976752296666178444356556812569913799273902877578464688732541315350131689106994118226957754003144145726840548344105136598834303249736248128618416272827813298745917567141019714484807907795653941133611755559542940007110503271423612890134238331396174912830379135509062414595878935461123211980453216713881891392652028253986356300202144970656795366915552744924091883672225399742743631098017628520823691798537905207109631884049023663818382686314699217674580081564809445784299323212161673740396866701597333260571324305769089736200864714473174601242216242962819581721025950715524148021865502974171358446212892458996034971344008992320550831338753846861692270336344838002318641713446430696680769695898578169261035787892945611431246419986721938475592928268091178407290714769634559576919961024418390603195483640129815367268369353844694334591883241104046660270831889266592553029913647684704916739644133969399385262528052004272147980216501259174214640738117604007874057493965345578510927536031938686784732964068084479059269027177512416549046024530132933223203058370815348775948138714619703278719189329893785547641251889824098865050236550168755310113766851497746191717123342405245589604501223630365344267974469741448876715255955471933347459328417920233084443161635076645298908625039299734905414168891248190611754963897380932279526447304248735843936043451345492532682143317985132965840567477849743823890707835929281859247708507118601816238166854912846994411020107425633501917395494305981594925167895379935680041535093824480611802606959765408738715801038406883891346654731638127835221212193002556089933636565507613553948714751798710751489255861305268955836538739790629166830745896012078059822162678295413202109099477525327003447744796348450564296690363309416511433078740664588559369279970221467103367941885939560637924987204353579229667679267439866932905855199432614133800779945644326724000353992208642971070626437897281358273207105951949190956867209284206081432816013160291111957960151420827033278863743466049794703186487287528849912222846238223359474270336482646073993524462014409789818650439465329965222542024550093315681078590858913679078451982076356480039416645459595158748238298922399058968542998205363726305583148059960274002912642731373476076304547957811871700978044728076804037587559986936748765632162929620605368000000978564566417678110471617771485062091849448956377328804820236021595724520082942969707434399818403377433585872195158263490333731032233853903185404737520083887503166501017747229602546434153138525342399449607167064979095407685447695284650175541933723397418936452972101331823191861100515736999891275756849621579742862358195640937551885301871693129196911515801288715729309269850135775825636339880194353257944147646778987275728811659729354966597695443769750276671068729022098552826198516832470571659402259582441383826882253918963660792850807370739807237489430554934830091698737488661249200670160117600673062218676206911462005136538711449274142861224172352273921511150056472918382499156585582381260462083722661952320591068436534328907457104479815296836606324729679197024276265385178133505433320279648433882211392619129015483570469341508911811448557828812115972925416423626682381389713299752737302474707843759759171358355878213128085025725584781754149085644217922105620007968041443007008997019894958774452332808290806664902607307414862059353910559719527120355814973500397948035906202843241200041705094090091579153719741582143416696432094341792155015962347561087553363953273104054867292385692943037262219364928070091022385790082345601652583473248767515817316819568255783667318612272098589163746854371955737072168766996770562946393877533961729334782062397501232217895234745006342174155854400462854864827496057781913180358373712003904027036356514535970051803120937049238203652374499806326805478414688942535214541794124567150620339445792209265437948823537864954974693876016067332654665050906654019410843219944933788029073315798852551121795871121217702458541247776465450992353476295790582583630158726733040426848672186914913529556718960821960776834873808236089855231054366274159801753599060606915298576414656765520329664250982383813258431720043038273482139943564922382797829249516599380929130373890190418032848770381205092349043941313095269903248695135064486167223842272171001868398714361655530689479799873617829161427795799655142577324397664656143802178213963555211262817619780515764095206424136514345579774058965081898817797828183479683776225423225015137999620528311403137840342320288965228394991709170232753147853344662558701681508221191808115375397367923550138908256911396164018313237134775057601812295381874866942351439779638243978765205523463212302324444032201852646136618582880847865825266505044143310118548028216122212172932511010016245864888652972439621626178730118035155869594788137062645589787974737896326819217998414204448005911741965693930616022923314390175154018744383659497809500777202532708527964725833078480987910334213446185847907800725894690733684264122388957730975850832838536766422230245704585004156463372383867154660727884156272597582645901905125104388774735561730230608253481941387016326889083509340412351171059173928893807115025661585275540938747984724981811116419883764251058695354083452217242287318348072564689061109144520500237996051961134843270873991847358294273029251226744425926884118593089695082336895827049814648557248057417749085276627890563956127643868807323580212290701674658446648698380080741845598166824322271685082132789324322599302940965717026591268515096333053410481424958665404485662447171962820119119928296566841873460674837998860639248934342648045684753904694497031112396479094696974599170917285018884854696716824021181114167497635057716332292732330091297272613460167606814311336464854789427717974486914692205889922800523025479440574384606356097170662458318277989143983791060107671676412859375474252790250634650317611811001513311662918412422752984102422785585366367992313123501236158166809274275807732612768688722134727048641884848106067848651657721403952872519414402377424068291564753688769146425507840652985148305478870566962347049304196299430407739274867162846820681405584055101085437179356408905563449044776989771622769479015182658430865499901728470303090599797080859515336240669068165465860214087444502106531469241580701479519395520391412074216583298419334677129450601212343231684136436714697274376734839669247401189432454787201182781269135151181293818889455583847009858139452556794818890631433774426149313948392557917734470382581500550599700355421186819395881899169975473045419614195786826583269272009039226209436026821425013889578534331338169061356438997238903031778351386733646870496592274675132815368494514085713142751768733530992219959920172595934161589500727440215530264495450274018466574100006318614636979700295443137483710082857016036190152221837940728692896065145361901986532521546765667773580301561560172766669974758585594941963080694496746670010721798479959951918599963770981185462744134611932094210350573417817824197172298068696143041199402602381597630669338357238603238454143303041130335827608508437869366028744234486157366923480945471132173146498324652160040112363301641440386386579942930955779772688132932085612591511645412269209875097992208071576453460755222732826632069879036464538307663617815164805894876917307683148038979069809304680625186785358073688496753378486360812445867905634367995929080601507590672548056751472609980760023045369542776683227643902358119327029297933102955099798056260825960370690179954486268543632435081576472975339903989172274176128108245661974011584602276526613741663561680468023675907134736362316618240765444051735901506314364363753357804794962124844930304503074978117274422316986437587851422421873951659194491277962326976691090282552322903138775390004965456724517788532802817692250241324131922243968297047929393157300522822971625832419878398490678450318706880554878628421885540697275474329801038367782364387788471665000008966233053955862538731338828770249798237481469597104307746047357807415053667060442980015824783357169918330115195601077221281758104645449435384747581210583346709544121071069263855111774654404494863360693030459532440666158165338180897168954477664684023818402181291587109243278654768009846211409461226269273980007322874101283939508898791493350285890599691858414681606944235685804599850685405409690792570560718943033896342062668294739695253748791960795773877623480987072073372244883379180070627964963395922040010382209588295834842805365695686782136386668357943028736848807709030132196960127503862272453407941164692633103174365643026681238009627193834810099259021729817503795303694582495259836951373924351254376598629353564791818478309883768554754303495112419039760361090425908679534611418162703240437178277071334070120151950671447385240029810614546099430882221507964247196598117793440224957017063621757902890707766885422353596214477101096655356208140751249233723551295368701459779542390926128291229208196005753762483665183293474419207973618707466856539565680916343551466497371378685744808351899710287380259729624671455810265861319307269782465021638509658183746644982029799490782559321086924376926091674752696950019800571245348756252945649777429214702989364175124892323353795048345215019922767377797172806144900899532501367477028374960468668473399294963084893745436313648142154370620770975228931923284705300090780856169883894109892773553586052764858616901003324854687306887667685589093925012132150781125843162276248121454243966528819520025917907640848974583979751186875635711512838597142781615282844667610135195585169374827199035918519815229113778565373574083326337123075939938590772444166252979947966691705383122694746241613553861300332725149184230851367858385659496894052590223256528972267365058860618638401278465489506230457363985543512901836602635032669805776122549787122149548095165652895141519740822489390043443620016561136791765335333574171039107632039357140546837543397208039062384885294561796471316982287078867168643686435065916580075571953731581992159085324572473237041993009362200663550394817622863532702564851409307990315316751839395639616322491501950133502679623496346335549575738947838751764209879368471867831831056370940847567839440434276851525285512227095559982240725757152482760053691351790844358043548312745272619379546048626078453477213009614928806269347932987553460108556886488872480139671020355131287856255138731816079287013743589324955396505576039294007546798844889456972432124235699682166233080420496530086703353473640130798309769387424019610358228307137706573467580471582005398242639042293798763021603535353484564495166622714900110975074746031924078916500097995354424657639831591058132910739242638768540930561584889984557899647117078536903095082471199229545777257777374924571346543861923413533451481293942620664020560168644436299931101362794309092388348486240390420047606146387616863141508594280886437376655433912163541397544937017139271351986472670278684513480871538043275903432558444233944646735166212654280794193050402726499943436098782731762702947283934189810173023713907577342593750240993162088343199780811137942552032777889978753031090156627853821596030178870339926454046664218318691150489134170040391747770222668113932681057466257411195902963921469327758484187911491040245793382597674510510506000848560997825695385643644314109103835447123124547866461503534773267296800554182635789845655232232996116364231010794686513438011158855887829582421415725061472779082060388772736567776657483838992023444503593119272584612784906876544721228985675620383075657297833780236552153706625678654744066363686416697955697334201210554078530426390811059583101273318430040297499000692741771009627071947803257314922914962870657646046334534297918124763843224301294522807577331086608157370051073312977116263796098261455974627956174342532325769894415335327451443416355017017400342582242939645235724921625673033529584828023640684870126626059375970929552397492895859389543514691813125458478826791387639890828665673317847727426109216311308631411708507575032026497170922314784769196683320531053223253129916478559111863829819890659852150480863961742054088910536134803542712659652169879550361672910063385236324922238155090116871864990416609821280724468973072583304020500100889755826337447586268395654761325541950628424899328376570959493405047941370534153750580857995899603692216736953896185261138062444817010012760567871004433342528762098741487607089594113324650959633912589212352175451958677563648029800837997273623013307257366927352897770865419687492428948167824594668632186802278441312469632295330510985845039076046629551289032719931279191490080942678731024505838197614415541324296604789756492055720709241505660176079863761868468722345430641356218260247534125206079733560438689528812036662128757977389670205080378253506971844091691600957592158941714820177660240362281969481351148023306036715394360592288351174271868127934276536126702599730326970348022837007818275411565542343133885767256566213411253033423049830677104640793207373059996559294758171830288217624478726902992865845680420865074107950053478161250388844625785589373909470802973424987208972343846951906912912026568399928820355541045620234412401028680897885943411020473696543263489908739789965870520429086818243559169594068063608237773633628699210296769175602346436398474274831416066171042010480384835454363413976598862668806038317578822427144762373786088311548415177380567336553780966763254905629528256638655638184997122316576409607061553436357192454184795533213406145361789995261634983095034283144370945372339348476618044013053580965129045725503869684662496213934926811970008870064152907302437331148687734952427587994428023565876003476787132493386037439903341484556565599324645229586916243882899592353461490879152799219415667055876822153572021871683966102950949088837826693433429597903063187428139781130684107887677980385825297603694687204391152633139441593133112712499338608175517882099954837468748870355698953946653251720318682591887264718803093805874220298960844122105717021890599761622270639234658033559783195383505480056316239790218692954121435330930588338648257506089519224250837500066219622759095598445817347014237085651847329811356041059485960242913460135296106311124418240092800792318002742384208960048247671479500062455995878943825583239892535331886663796930461300356172268157630433375698222296161696605580922141047454179320404230153956427206553670392114149148146477718875188247806616729224800638605322629125707872000050630741358120745600092638476349945968876784835119912611132790113933835159158682502963015286841664753605907808248245164004502219387613178811404119138990694397734556159882361572845107596889008995209660476068400511173693086988313597599488899626303631082949074730626167774303024772776228227250597378126286444499348440622067795011144487001674522435003044439353291547125344241041061208989665513915415019357278740840394280775658455406177014551337750519881049174164636618252695444337983856698844554807694831904320590543152523789536119944329441524721676532555949988307278403223391155400610839776292630121963450181146725397637293084486058651760288747814171992378139963290508881389627701618482676826810019133337821117900970704708228569810983421660721513376411662404131229874966196607588425898498429216891173429967050269756469619594649109471473325443968591802647306787767637720968193030482216670744908929030441074600240463652154062164499823205899707727424701593368856319823695056255105495352582740521110923262966818519916014738224653338223076803660484464888292908957015015891540868160205742128677073853572814989787368737222107963706671763256322488946079651482924477661719045971756958906564206099004930651240588378532255566405480553044246634910846303946846469860287739188572179480444456195589811501132486766963432870786158463253572264809002022110862475222294629440219255975961642099215517488224824135642373069944980838327848366315460093634780057763778096090715644576886952930816937631187424536755311036186394640126778575664643077067281482594290877406814086014201247525277606682762550225493617332709635549885707013385975382726969653786049309215982839042604467685412659565833364153006364148019409680058329748041568824210224663748672041952039637655602590494957203924932511776244002574066176932949292940768282271726914620122035484893832499733920143515676451695964357825690447454436199245966160295963813274694794589066106535568031696113167987359405231626649444420993040780383891646945372405781053928777059326228437697549363244027439274773816237822996585975581280799360270718250673144510028970808172271077488199931631108311833855559468843222907404104902759229277522741964907629965599399175425266734964955511516286560847862595489096651071401320254169954493516672603161918201252273118313644385329863730135065788150241408297493199203604677659000154888241525007060519332936859917261623560620784181411817456201120446398540077985371419808106816272291360825151582171359840207900422140858032467033591899152592533431153960910548661876725764480619208409891944873841749939009768484191824129323042120645058322544906658114767303011581211191104297416507792068529184451849206318827793205503513016192216403132739295899661573071726374318340844551489226832295370270327660147247506273965570262686920488016453249749043212180719806440564876667778575452625225999325708568166645787885693708120466162803589205246842018093481892207375741654464689642394032273725601123247804295183473558055928364204176133037027679164345706782860842131317405833783630010833579925740989864685585621591674687885852291643984102300447123808629249277065726547893067404082214999195324125669536050116936943900445882999603736494695835997265713359306487382050878390237400181692003630630971364032390735969536709952589586551460734574709499453809754238241913040648861271574954696794129524713211661648435712976163607357524676776045275310793663358475181107411057220789981848969228378959339076202587367607149125203927300809432527287655512742687418415043253486260291119467888798452570826947560155031643189282321864413798940554392255218059477957545315877585728538394791057469439664230954743475252692152619896150953971083527967053599022015712980568196598684796024780542269966396297163242033174044638826508085504485039112856248796475321014144432708091537777748068149529271020008335384857949928403199864292052058978334645252064938814166977462227537068640808297259195123386585043724279444361940046129509404800591438882106635970572997129677243631577830136063334213433853607263727919945398329012282425439502835497709623145797462467753625692339313650940387015889233419520708640222989380186978470220930975029486978301526189019078279159060643276770690300237051695025474483053760153585000605077512778361353057340799084484117762649745889158431085146996776772185120628468408622163775082012981593947888017206544723111186004949277614089722082450887269659778784736299360054184928658718538414171647488059743895134048970082969001697518067327173100220134580446308985738747874990457838074692091911262472546167746447354935165806375692387246461386748052015908445478264994767121651244612418512871950421604645393712649085461784744645337171322076763923765803581753666291940643450196699114422913416947812455664059786243322100583841564978805191424720613183001926955549395245826630729816370124944931755195335456231741348923897157746423330860792835057434704052094680130160978021494704337468051031550945102710119453408578129198535485506223644570795112623806493704821253327482693144997020913261695655571286115837783566631650379528710767838844237010786911286574604901113138820460529537506907224389167698283477682217842298642048568371987619386144446752397497501758881066037449121570639637566773217652086122943769531304017970792400651431745903439752067794690492046955794860612130176620383373188269202407125263245929044844083401295044273801525064275916431512999678783122875866201392155556723756856809111229155057402286737692700509195572233007985406606412454191497967978661012323057315647942714373925521705588737226484284568353990128151671504247344425705243530932851934038981465714132226367295197278498450190335368064623751535527006053500980004665567280505813354169533286424373693544497487337969694213820590769474751740981140745769148596528330499466416295084395682767311574666870810765944290331120371541522203069390379867827347006328145149700914212657173500506062703021495314515330238725915182363291137256825138084355925208052939128006508975062825101628451990907556853615877432819992363337837566608676024422626208874073095309729100107253275571119327666979517489524162847792867155372324312566517604020578727826724309134854881200690866758621708041796610095766064468657490024987314808216887237108186647775748959501600047782216356302942324703234587966796435186105765329141450019256335706837938880048100889181155378979187977423760338574624035909507107267062887520800863036114857948085260987384846681968382054099840050595630757803733736300619428321580846474731987726761543244739746395600917122735725523824605826018989964276696438250501357805084224150171099956598224192708223161212535405979474786980127269826902288779902952922475962345819212300285080805684494084613853368890350380040181302307055833526684276661064483062500746948311146859859471847926361600808929985246767165467880476371222131166554708792630024492386312846261948592656847300189745735927299137911700712413945620501054352711048224863366264522307955975551713683554765517685831004061609814674578143499965011678277185122091944551952449134441219208040499515574189778934767231635655964220399863294041445165853583174479189442868526723784692711582856807026468611503899791372120535344160448274269832571548058479078283936780976108631665732701159763914883730678781446709990144307167259491125287252389083114346592163699482156666040401685173566651351696809147592686939447750641268616530369199630609190470501321560746826428609664887525184465887153264713188427298589989233432638866833424845283383927798484425866071473048661493088999110178219993780550609718053524836017072676372186962909676907419476850935301197341499589132184233628442933593075239604645891542104730113622897124791493104058000874559632535558704022890198849129133490980751569625188459925197639418171055799630159225376548959448801881777953608091023630161226672185327973383440093741607279426514188620313270043611821379292346293172986801489500376859171454117978962797280205856628720166455415066898301869237049611056599066602122719688154937066718788962208841751409656381586570070838893545884414850242745892471904044315044208530195532129590401403366782868153719857449367395319011876681209726121445865998785462266803077198590336549691844066923935865425515174541857529824871198946866075280513936643578564183932034776497427295835803904714665477021885584562447378168860873203442745337620899132198349547053125947173318436219331584797837056053104531121062555915259576590068186056837333868531080625901570908969161152244910418424260860957839939458631832788462265617096790398697283261615497734088113216196358875779656838434902351007221247971856188097637764514302986607252115510554356757723542336990893698812150407637504949673235144793855344619194808216472267641845404140508522771696574552975610010358458768219977313004122441888918282547881101282419697726530071810076798669583838909982130244410709104390517920732874871306491829943631815805866866751760369626126692202277712738421644630363167510027841938286033523725002821336776857723756818030700357697993790706544707099169318711080802084861459340739750698806822075670744704629046313797926774947222169795726867317160639148843516721131681232059414291066011346713320707477699140924885839166827530904730593075732291239445485112450029741132706913561632129769221266982053493322510507968012832333457092227739398804860989372588424013992373272322858809485196149559386048292091939537538327858118993332630403001705306938037768320745067770062334466432745075669433823620120104428268926324611442311030045610578816430188888387240005794132215576287015660583947745471137097736113528417156959828432291907482175680812962762371483479056937653355656541203101282054719875885460157254761605188695626680089718665541449265740446873160243182765907667927616007870295609326442497902255361651964068176202420464880584992379965481065740842524560096098219499318959228243231351017100754549358630436463194087926174346461036531759495082582194191860237889496596211036665011354752470683406142780518205953670555993534436301288793026694179716542846136704996031613808046177900110371733388006120914697097944824705307558692613029819006205487002592428194605986570193448818752786388889784576648203985389673854960872799125616984138074557127957172291013526634219592132670732795506064982313946282022455568076661240288302932693709807091684227798466908167305814520013124062672236603478198774384387279977785775657554802810079740970756650554104087704036120568761936731442743769867721161418750321533120690359562616184746400880276792198986480284077426425230626264934504191629965214478066547078603421737617892600378150826282623581494614606021346892363302856340088503508739738623677440321541109417469767618291852119311472373001182487903227022766047958900231085735655418632535087980961593065297108291359729130953574221060307013489399364447011680453256565339677944171070580820256993412237668059646905545603836263579843312464031531458814596800349417060030544017773148821628450459076034884975831882359369887229075361001242585901233660360516211434207006642102481032441777196232894356554983226247342051414501961228774988571433113724169076958124471765600479683224190438119165669858845684700591062220330437463751100973698800506503797173733772589840579574503371521385739223148020243196130560615874389280469133719755511330365027803844246155572400925748755770323406317484618651801611391505558279701276883198844083590470043510160666865837737901870529463305857577503794830126727680478163012301862774664041621560619795977424610071278817590962025639399450201287891403087572390766081725116047461967537504742741326916389101821003781053054202446722700947684106476467711499418628217095851033696666537986431258647576529640491698992775364582946390948984509839695486215312710506588150640861342580183931648668332595283698777349659646947566073041545492212079967858000175168777875359902807819545007998654625361583093583258092110728734421153947967014968668477656575990048002844527886232821174943022466933634992903132964003799348478957843422930056991718659317995374268778595981071888555042197770607482950096018943025895329095313823390691384467972979255650983220808895487970253221127797880159279953685509817010722374327653314122259108569686610219189602598641839584888915038542010857850952154617470784692437662009447143612343253184929341955157205512173880326906931434246835844828479740618480204390680125363613210341947105733117778753169045264946492479121805077381475894695476536218179986768291224745172273648180516173396680411723680786265490366048967589222919412235940401910725494017260527239544019511388163991099229492341267107705202603607459275736957653412123862887618840333270175512408400330856506965908621095091766155980865413319903490279599176682960381084677336985659560549947348292570259810247668003431677186044907799687380562895131299373768478128999160822743781097994151368487607675638391798177142581320462048874528260781371416695968169774324925030579182002423585172908362905603451156640573234567171689114213017008047530476870215781599924428270680453541328250104910223980788268906726489347311270864119675096999725034199359022673523322545495672638770863802971019162735123706285434036799588315212303216542248282175025050234690468054273534717295250215693102404203894323162262905844172372743536868148721000363540087131116278504765347795570296945859250905053510704105123079976927760524003284226462925811930850317110297302281219535292266630297746727018317825345668011298920609303787142124205901883925942363941301246665392773346528690616867000441780642518713469831904463785318536533905073139917944051058797477399611922872916055217937834020312549959250707196812277807594368069806649272108155897193978781921082783481246190611745836144686620466206987449339142022766906438286701998638083323080191585566654650615602055175640181710295238676229887697159836262583579406226341343078213063028674122582162509525408983937381897584752627559213891627510051379661788035780935153596470927092425154006461197866714221159354365371650120674308317000722741576582065482806642817115645502283614580756287879513464073032322142566394807345192275292108483446530854906678718690776070640998722643809886017626168127908886862502568295146347647193023466439122930376012249687594616496709219867661342114469603251920472000584862951932964752124296296620021700662393994515360119929521371441992922118506219912784709275978188328789989268400355724013088750616713223145429950171393520216694318839794430644993154702105239439721275864126729763519053122973889758246057713395326781859619814129611956142110940111453983856134456929642699121918789145045395721470973840486339837766594850766471270183432424007154233188163767205259536695802693758282261816159996437560191479918486916270494289819322355040222341982297833097935705121320885530117844401885096196948977004933620780203424717794417631846800038162289894434572906381125112377137232980640954017095161353314210355125944782483454661800112170844331812845381834767044209307852562380528663774180622615737092884615956827854029318504717735261502655945884730313469594217538570492516197527026801598150066999259217562220628452838935508774737907945525775571950360745846611649378631398694591018446313945744742257723611509726750918728543404979994915808948595355975868651814938342624967599953643691815863371175003984519083158516744999228253476167268121545841967855420221504606182096463316224902900152973280113133700598381292038112666554186647923455390607499275477411845489061571158904882721730976805217963602023286110840343995249808425822424138575128060570911661716617409642206751252815006923023545179894498569830032935974755894370207783769804154089709671926084262534466874410473822051261507293013483225481816786712227184541097632757889487586474172016309910845724643777739183641045897021496837957210241979954143768549228283830662226867322143031369924976066182589341725191706921905286072476911069798291809653657376525532085483204069968517647084587298191469887364640843331165428670119446925769207383665556052988808712741459006371651604783697073022185479172120201988034157636260340831186223804589566980650799081231521978113373984240974505711008402826306214999198285702653514008404350788341082969033699303407126809462944137931852227957427360353972985474371899060229567393117487020534143527454915739207674496652803998790535793780524989717211489545076770546623836479029069362011412065382343368360973844726115653184737634318924622268975597578217738307485338787616000066506477870134618980254662246294023076493249670323781889587208839945907000399502641245551464799310917827376548231912867582931213628122724767045557807459956102707419116308467839320215507558456293844174897028849203595986976733127336117673723204481750587983161532879719268214485830592729539925758588563744455503220799364977754684027336379629281999596010344345316564597833877848881111413743772534405285991376615286731671913882317006171947928594360800539188130830889808260096953754376586389264935538526895869858800497352315916742415853488744967694381315669142479393424273809805227514101891697477123787140705463814445420504352397377858012104802350356220001015425304823217308647020617613456610127368244028874219821995934301526625114988852583968990239678122282004505185020116229982262879173548027028124422420504576705139767814224063498156892034858026414661661175899002396652997975530233229712994684665496782656716130644727643092526746666390117724434936260150948577975282697467321683057446400805008174353646688258494639484749981433338895529372334331501905840042531862453792717653629023307469212198777652533451156711632097144335777973728982916155060244877225329340832185129628320805395054200012072689749757541330334922226382843398891255262708044475494138233303381277396341807586446409633234912977538089475599908753082160368548056572863612562874703284780943453085429027664982287757412334117550762544857438223395331913727539967390429236555042586253857619737483528309330882809270562877177732385063694916984635438528896343602859233609921010012859027602869117901361847643142116978084904654079408502889127824893153180396316677102226204599080655245181955529663158297806608235938828952562657380545306729279725565832875377581203767668049887157858433469838236154840306590769650508222119393746738128015112194406932807076776190900448973045982946434809381936218411625659951146466803949868263349400453589631093983274511814553812315112104702145583836697700743980179009162618078953754345167645169560175078434120348225788929934919897727608256202306115397066310633526110494274127740412012108092242445495222295117386837474532893102722407431323306442348959155265641812358747445895083705473282198057650983004271648195004211289830707075603143935529876617230227021937981021498530774919114755701687546102767620760165329594240665463157718173522446159602658958455355830509631924941061064064764947339385177304413205298328157244796842859069180834614711178953271837892777339836355086464835408018643777538885871065668791370569254443375147911793823138758286771024018648948628390103081272822750131697489578880718323590297803329871326839316337070324631710071571625702199567721351192928117949790781116022779369899461614799299607961120462202709387244137209018745627699047222586190805528274293155471925799045975774564627818087374747059966546031953528658016557838030662566438758746440617726539352975566414864448060287388575633077703203586865243441739915654001920400075025521699356209945658928334645997082967218054321410585386226327336191801670839774089471737871538574414850771083411439691329271090834564676978523392309997281285545226940758760980567949341649535618575353730668245794085856539167495874401983506700882671497857356845204134731962518721161949864061811320042032012388433198621662819212930052611778228439215418067126027823631717197937642308243599378519135646314562339467907099422084364652508138200330554640005476391989386699563019340634420840982091444673387265421587590347870158839764355600328232152317206971357570852546616183496001166668355827436921040285931839433227996981563807673235718458331111725246774807661988976983753046521925459750778303049896648119291329364564948719342697006760679122556086247941862673522698888294462608964509621863370387974262036509061330358278474989225648425464569572584679190226158296396847564871033309439320465847321560547012442358435011424363502765323316051464622214114248495888064630185720737247068887646632039843527778543886006277110613703090300714012500974118041043429594263197929633826944887299137509809430787650853986134929089831582801056320322202309576418076271470554755233444045596189230692220935885850880498414391393528380566534211946372036474675791200727599679002987365321876313415592417601655489121555623948232467344154896915515295994455680333530198392175897434496934953894146018525867470918493615130859817308641868124774092024731901862399703496392816767451492780603235172764083590443165462561582120353553214241691115550292153810258513976983838927260742422757258322924209978473065136756817924774073008853962208279482769073486531994338679351750526073107771329127546570449523788917596149946603762233596609418441765279980989407524460585690165428309539376923842128128414740628537897174937371432992245135751544032405485526921224382067084368856694039982158884521131070698915071163997128136510710327465986047992346736816714514216319902425090677445492176711639503721722205727669962403628115436091594936713984440064948638416827996544177223766065166937392576486781493222072396358101367853698296678042699816103462502371196590494151336837092500515518479351514042922958217750001701298352739401469974271163654207977716430902381972738864751295392563823758188268034970185914611599727288786711902885827520267941450620495572352033460215514677372187354605396602996087041373142684517225048525248232957332423790694757700249181699283195348597475821492305280596961942321071241021828018812670435950564257683310879956192358965562971774840637993155941655622042285236711432289420294623714986286805410685750089866627651758258899427226850350620667726558078121330840900825396739550371144544141998135086490843211970979807605455493724439255228861630683807780163844102705886025787871106556381803207434273669503809113248127380500647899140266152096494991045048972798623504216775142297163742333389671624930492051076342003120425258761094158105452088001064479242650243485042235084816496780026047927770027813604492143307851847212881146064064446514914502059015613863526564380724825817406745801408425496086691505718954962303655715521930110148411107413171065020291218450025974046006732593903343721004115874992452053785829513636930038988457184580523489879994089128480237464147236386477431245819171220853201858632525508990565250184416152415864451217870039174355627725089167362205733131993615072013488749003662038381597036230124992302588564317570860650613377578408344303456791557454094764072624576775566851623008875808727050598111196422719170514658367573554428366063165820187936477910587453919682452497539627324610562276885995105192179432068150916457789270144491290521479623711090438309126067566937240697624090910265729424600586525041000977742370978761459934376184961630414424324465026467562407130708169145982205276118604796901002500654595050902914445499979988167992029299190600047021821247016320839387899994996292228444744909634785727257208025886853846330451514801737564013942796252032867016970364031636171170619211587342220950927222308902994544097363646398638853097142399178954396105812136368512828089597172444299214822884062979178385498283383069846636423777066320607184659971895692587666639112758130757280466010131348102925461543110308055425478575985779579428585225097341657869450283774426287494491922985065817903700073886692211812380945335834732240028555790262976689421338751172195001696668959915581118509754982963728990911068745788856811996519580998899429456923732315256511351264842648937015667507684383190758892351773848344048791742282082471997799261516675327084990888773820729951714443593534871704880051859715887019738286243012770636683895355043586849156569488744199248882412909881046276582343763511022409430750862232864070370792461066342308102217602026503515995167748427907382923703053251119337502260567456890932173460000678627582464068839211357599926734272747065956240680301513635161777579654993303500431914673441363337168592679150542906504895417811742882395776784705873032538519407169307523641060509082005698847793201064886629807267565909397323574726213996998412313352312653334567058844689526231020744832702002918861441125960999397098828343413490401661205886323570631967964546286684361286733963817857945642195503231868346431263191454569948899507482128683997821997899247463875871699461657654595380271289937770525402467189675999482859025490612759818816028789199580486971204226903819667840018293591425146456140943961243816971733744817741749502076283892783820470012704296686194532412100230263627664387280446501734504060566601247888749996672686204657232275486653159304736760753026612309053503876960443171750205322677530117966508833154437902682860201883453786245239471620231224731341531579368323233694020314293546316383008649158056555250920516777989081661647767804394284092147437484486315981178671094614531375468478195537914915622306010238236060478979330219865532933759794299503169808407026954493316008663230133893958944308884376790459253120010658353218298035978224769820545414657643099251170354321739245250110232444331363906640663521385586996861208675323598973304559405646560034644295925462648329084061036175509939580946539675148763544836842533334538541765889203313372333598565901040600136098218420340895667055565659799115292674498619954697810132506763689269111683059234407093770963429492310176796247460874431619739303307189114576515925991782305214460783362819050293369015441331126288782098926711165593599156640069421244602692427291173596588191494384040982027116432693831659167726589239288454748655003819219853335814033282825485956865698577908444770705207194038330486593697788266711368935792292189771684013160428479897915272580748439044646123451506319718226456085225227823680566640045630612482239736830748286713773187376095577969559736982252455781870764280979146656768058795047137513917775104679537319460372188114819940322333473431571703096665123913542436273950265824598331763561724014409176961836197943310719675021580190853145281312803553935413113309956321658865682038364215580722706332590863921763029832397107507112433670068913470257244241000203877076041476215059705283201375755882436544237623271857994020628716931006295322389170786080390392212025162970273437535152046422621841126465887362792649940381612819811155228694439745028810666515289794688774482049065178068853617981854349079002109679872435775490977905345237916009985676173496293442119386673504918024143023400936251168766464049553989570591104892004596655338578194298857836586970093674188385539604717851956004968228620767817623683261102351800729523761610738760362504677734560352786173379265224593216051166607172098980594834680594067908776006270574228375863216978773092741609879685605498014914728783134028129124267244105317149723267482060264847989166974588551756212982219606118116058190363627371660115523443979815926497872824969932353825955729842687704131346145792834330258819535208271805221908071595232310018756718078769756269722026212636607621079481146355695866568908123585585616586911479850949462134235804586555993617570974097546585122502306270755109453434848644716411521152674473440386969227599302471762938358239159801928210551660496754298640176268712549298296121295611801143390360421180531433901142495739232461860480719695186540168551228174222974912022424738752612422187312696981136068635204337473213372172677486856803892533435129235337177549307312628749102983561712129326982435251854927948802307257573593320005508308146578041944083434315409914945202310837055637232165761936844534739812728982321215953606591024327909816074101924677246812579636689582444231453432970722270692110514021326057901242972744786689918780191120285510319020011587693659936073896302013784477363337563228292881490998524209280720859020247711849558078445107816013806130222450526264386746851192773579541538788093254905558825823557453010335736233604317885710061385563732535747285724933403852121825707855384980695814547302667801239635858676725190203599484123120114340760147157635302514821458710404974099454114860757599462532865995009278570649418343220824014431589310258674805962100503570380398261219534044160268954136055214478295709215320045190509255578267155165547760189136112897748682295130808943634009077328739462483588235080038405273064930726892145353637718404660456743453448864039418769932889917175019188045288754217186708698406802872598347305377912386094835350939708881742416214364643414671834188735199488453780829566650868046850926627895435344332322936924662876376249444595979591937920589128517354350833597127290126869336872493059712689808519445961135320617692818879301926136391346832527685664348015345181872768777533051690988025790955242626485577299541814311019502168320180779361213011769361178226889737102722728788315717767357611010083522521598541548919128342549158357280826566654683466708447414718221357462744496370053883386934148573203095437136550283727716125395256326687111294508366354580013469292942861783508007560303947867193208776961801681680662944841720916798020331586914611368507424467489953446295382881924365233608908078359913222072678596344794946625437789181266231893346615805523689284508479233727261530831383351979018764971646463896345395581858960024620804008781395219010042492522564332679400225056932781055150136817865352947010167310578989764051827630848600913961079962133413757607264320382375822802506662779253355396548650375483108095779153753825432664835584283027494260003949865584724206797415886887100937590190519670479550042264198393067275998258611737650877550969795628480159637462353009852743432997760527154217530981535579611030353418608795047339412782355893848352727349367781274144056635055406672930150414982124178434727775762948088355013958090796135677162788311185014412445476489035987549011619989483469761995769472549518877726103404315445204981192945419678641396521009101070429814314665247038506452106088339717588777151866838278322374385996807474006667841566511813474562281632517792437770983887110564069681110997983577430731455803833810352144504318569792204064413246278087701725986285031237987222591234983023929692872659907526329323031829800377312444380605821958749392536323794691464341234221102696445619987497582795910602227952159215075535435285700505007228305449844863467471841250854475157107426446470519900904050926781539836901454211559787957291268437003396775922207143508706172881119334026653450648877363459177979385395346262969864232246010901969721644307301639495570116435228039031245026867754928706030668140022373711484350248826449001790414213398581970575238589518337030850796252422264187679353865774889804746735968687821054709309826654562994875781750545467310273464072909403510165253430206110792428475900992370441188822175324649287911483141087654975919753635403971893572209729301722971102167710624600715694359553163525166172848767009163235658065928554926957497599499532364199229262271567398722946300261724246548822674257601787431918521367194993380045484838606870833392723232347493476231291938513420116881104351351428792815337999340175117534501212782060896080833608796889281864397834048998965389830295896996631011278868766559770952951789451898816771967997811412685732102501112017479855201738684539970735984920829743519106010782776902832476698299933906410528059202968878527037627013095189954404607786082663956365790828834595507374119057943169393352276127837705045831880980245656289104314208661589855178371616393361616645975103321068475012759745099830002185421522362036305346017675953399598658354511994185283280633178637929493601203842207967355800543712785997859334292129490714783136118793990908437309309030391343116483939201962189431777717252769839669524611063743277359201131963370772907731122889326552030264012128670631319582596334783158601904438825793534092801273380340466461742907275414081332102305611612429996627000561097485062711055789673298689696416093586786971018936340752202280747078467210799675466094400454762687546953735631148971148264744661776064624634632713483180075569873049047908424658549358743692440133331110546795498672177893937619151836303198017797654849018457055305133556364732549454687052257608871037246531811068755514323429659362644236484230535878822377315880903844566653945024950637240342787373467895876440025642164855169721560868763966741313607301026173173494997434293254015716274352934209206343236874993346241563286996870663178116457968411903047970410258475047349365370740567591482925159030038469807658844821703356208244929076907526263891713679627285076631875701397764205264994438037375023123864751021553741989170391636368370123983127189447806093439894038625682209857215296913307209772514691388643007259170868802839052138604119715884146166625847721076235896067228197341912578269812195913061628715170393146155579840027461435466805388546553077644204317784011672268488860882607252633467684378316210714172304021059457666881973635088875792411371100429408865032323297867185355035224945674767043427113603015919683311464561695684192517437026790880819773657546773034155899873633183429901554524350981489649871407552379708873228092644038045828564490682288130968769469612249875734708616636823423639460760214642387895505569559951638449960223711649549710997707813320564722752469399267239410943747860910254585620711643507765905672306783291580813920400164604467198821268012588735502515706060012691730685936998872730223623412738990349438723676354737440831908009586567343888676720256492065097888636126286763468453568144997297248074574281081244616036186062805310395926941456683699287302634401869006956187325417262340516833875839488189287650427193940451989029345895951207624250642958724193744991674191994858976996605962389726936489692116838456187873615383781463776016716680993933458213442629799212840208455845360787031079572548657185188254742560912522985033906154517746009205358150626541531400934930003173873351522967964249202859425513930313638515484083077843722152495902630148249818967739969732132329089710746875298253162829586097465426217505579439711846917514544142412261867565243783511628580085486689307789939865627879442085606629964659824296771942238715351089227922367754866284583683462983357724103937127944840629495155523213787189795086162529963320360774074450357123025387201409560752641471308441326368001043653740218874410001410801838227529648853251077268409034256380772439756189615836551412149515137456463860696491558265625523390685647517335189242245096941896939845619727670479843294911093403946106324795203571246470655916153309644495545029423878471752728566405886210236149034751713112086649962588465440640189056349514548023990480054233291987195072542531647380276687710853406796669420837959927458276408251314985648367235414879573783820686171754775186863877044867554711610016867667389848927298750020493344228352501799078956005522134393121551225370167639614257878771257205350752407615005791015611057129821513903606342862810374308112050244108554477649542715867279634259500751707271387803796504984079783101489713364746774172578067752072217113182910099922010678312414908562071313794913462080492720366700918350645213664235279569852255221651593908937058051062426029883704890129141519437072175113337284807840036689849261252791440393179963613701995477455424796403828185962213412588391792633951117799455398776678713525262887785350224529857487026023954874100745922911656258298303248435615447812291035182597103844319093227097381904179693698800041570652680241025141268808614317916948809439864660401979911363365783166368460744668937346711006340674748076036375744450507457273610929408031671284414833830181736272257761337063914993783034842703120463355434605046188559945355573421631594323511427542142910460812056232425274809757411641685927318469057401582265339164362224979185713388440902313413431329645068995990709039836300448420573932080686537598798319948151667007202705572566536456072503323309406832699637544004566867781535403885236370806947183625980694059975543898318808203763812129545244420868476783522764318663860814932921916395648765820036955093545659479273585093931429022422303003688020142538625192093851921135062927904528915880937681135456572437101940170596393256382421676836522776946514856412106178523951837836748650993390108243782211342912934072902095039588408356874367236369591480352068967428879443634356499399660305097671743222155257628172645788528029528099185147945159872702317435127343404782097598063234742159647680327278128370576149656703104115630410524182323798946107450927184974579408773109635146206766230112419971052056110784420492435907720579732601966578301971376273482510733127770299143274774474590989029716059254827600397655219064928543561368846861415986628768741287032599459682070525155285939898027512519353186958135999672549384561031345612667402710505700398437161802023934270398113160211261166294508668063050422226188385597632537799027917517105807211226752949367131478387472243396548188173535553202594426556731514224423296905078821372520419926950579372318823588817893275154537196437621566310820729392217582843321937866378985272382188806075527185566627953698296434036632197234199553848553371787919084659005870166820124131591980625859244329478207862215128395129746559326821864695570384199547344700287122273064878490152416066765181115377781442788669359837946745623112643627333912899370617793062570694330637340876116400837226122590288626212162559059088130050774731561862953073425586541750844242770022342555986246259586290029629513397551788945227289162899587843687941415856958003731742554043472634893392970861629699540155221853788866880443819973227821106548025111371313722029462040692268882420953099587971802746931767164860541331902175492854934594769669276806131301549799369605160668234644870571788832879569037195952113937742804644631943582619181899909446629947734169208306471355346626706751896112074225027847081983605218388639788932234489946352103142684830936889786328077141438961914503310642309562012471979621105347974530567584517652803162014685093334831633067809027129999401913634396964710223795492689644740271881175486714489221331755281819258045646101177170389037121840021566457684534383483845977512664915632201033511715906281876631346094509960154769153862127520132262484312374015771694962385844058904176370108737146530560319778976426109323359887788233010088224271609830065450811173226443393015521253395994452812450754321408271304630643640556206751411126242503503841274477902048822421825511353809912529649729250745777175661243706463215870311026942710821515196294976070635502919176769870932309278940748914351161169397211197829651798992001196964423763132292252495603197838686134393505864997719863433291586947830989531765797951914599502425151855906791883517273186950118606194597453077004864438263591879227490028834970661060870758843779244522525112658594555179472409008873500684806239691090558000773303432079848721499528212019721549971796036585405335636282415194804667138998605636736327795193534912609897802848584813024309815574650416595348352493566801651269830078629651766656615900001502536634055640182009521607060801056358695345012584767045846453532349864053057632462112321337010853575905016712839705695365003143892305410867178274388530507982118361984474436965878623439501094182820191001334006282418953598007286165699948754890230427359919502537967593051690631798231975172005556691814652505451354692374242642516301132458051400371534494484139949656367494815232402926480771846740186395858684238165306460286731644307403121395395094166827145744493865621043562544360223918654871258259237852144660056702680885818372716147252397625776705557911199056122223984405700972042592023821008916297103628259276988062507879544452301371784104582086895742813611839186601622874688213496435913692928950132300411953084042448045406422087830145539176267727794587579305091200562691514854284317883299917135616989575744003747926800856282554943097473890727107247088284993774870739147743026000818215009311692185875475989211555639295860936375070198334208924887805984878698457040537411320892934902867227271782735705959133039488287499926370780276791785685455411159506256745019103860723067757069656618169852584456425020581948383557166641949593964594886569786240602694193409518542362019849019300155036583009584891313374879481495022665281731804622769740915491759774980318607480769370713312736199065285138947391761499219587878894459225886814770608467941567337396376231424447980352879180249801471460971714729386839492302987557550207257753773806324941227946346301583817031574015977024638465106138339267582391810257496760588708852617255257926592543630472341698074637341807240297792093961831394801139693719945945388119346234154884104242650244098497165983791204809192871024453385228777867012857044143721099763721781293181177841778741603869363173630381865060353221993129600254083777453031322596299991758229367858393465784997050240265867473623063871351992625519144864292811687350719723540867713605490895357500450878046099213147028036305488868272948288707918666670742037345619668633597782443017771011133076683339922361701975559702598982727228164270077852562946975149839360009051714868625971797051337704149623987331257530081934476494799842012531750699713533343100577770206009219439930877141869803129203330772887617915165935971845006681397748044283514919079805776300916329878168870427605741112373740745264396473136452892165043142185056198086523706174362214030974692548530636190543383835681029247785216942072673605854709214864542481518800195460435178696981597088099154929433898226333569964904233148060258162606840852389350429639953368562317701784284653107535868246326116519831874111844534826048777158924996201085400486040985789454782555111934977023784992240244828981750230741916091573602573033225364373750888655438876501344853985738285585514104791421453869842578510476697646050847811864104062023183836586098509061480089126396382223497303838638410945123926227429043020992050709600543137449178772981118740939292807888183711326812503552016918016660841983666985218776155279194954531838313644228255949161534364339006279688831149472965965022357256480864484447857937413522976343038676680355611961346907352532567490732229024152875189400440503421376040244799783638173551062558345243551768136780805636229032985272199501685167734641447031949377928157417648273566950903426078716406594345593121321311983132942923167746391208194246844537746185423538803447375281036423967637132998774449037276418851922930823482179962670116774863588032535163165105121053477895591918759183883489587289017545526289275828883001626895742008199945008068783145130418604178376413190389242236860384118566320805942871414900256076014658531655865332410570070594478832138762618437663323067816445429320806825759380794075393216101655534118138655375348077521573146762434302481859377030693179654704641732434503698945469209759467718563880812776899037862516026668127902260241262926613489352289089652416937077765215399325730228057747598572998607097323862088398973015017590627669792940658153746064782008280180012842483303147666004389592384358200158641761404692739977435678308343587571922001287480205502714592739229458812916250992696712859870658193425525906146214095454536890322650892556271996174100659253877621241510816072148365093305824833726480884898399987007635986897188152429309923822056881845189224290637086899109426052166418285927005200161367334150633765115466489091381213773554173540078692536332813606179086180973488164807760517555944446385819986591551728183759732642440344850553573526927148801722080357086170553828407521148605549564191082296158316192351465946459892928027214052156243302608460061610174182196178935306587123225199611390376369685716869058393674910125072248423507585809904333065705909096439867211641530400135562928461360147457065136816331318563801765272382098587724168171580559990526289890682404954179875147045242237135537016483467002718308159144383696066690967982438966170505395013428851385018412323198535911141590772125692683253507215354059225642628244972637531561140616725006182150592259814234643833126133064747101525539842786150368821441981308437458675119895404546468456060677053718166036267238564701305640356165751850185086324787208875442863115547459496753483424907819273022456642023699656377339637188671703413916693565716249619503818121301840185974380653681021683497008228114356653880462707559967448160009790885242186107573189269022575326569885311503602414582880909932960825400266946337436045716111090032562982152910743173830677380697883014876286706994390492303267249276195087448704763006345188105103063403132058841721868239418801766732333673184370082842172232055143789414584524685126660664522858934733086598504289058415219988541784317045574992752956452954208298033310086902388399350391664051504565735593073168724406388821577584956357071828155073761661183870669373180832106755835487359871208062878927037971346779621403552748278007035008939637937375791067878713768408295845110014583140604625256661166068514550898319289113088022026637541980318828685755061945525303281602153149088992839693093641643510985462809077826693083498455676869553529570162060502500493750868345869490047411858377485399544734776587456612419835088021836735573392249665353821213413618122772081312454040644836979495774318157421381878543967844020449224805177887094055466508731510349475387390715517973056711106673288767764900847593135828867672235716108888191747132489530120839308353365414900781419562688372957925846705523502805102304165195842820123586154517676204569968022494693057771999881175765451705542052256964039219004938054113586020612203961543292272694395143580612326070947799186492194543755809814445971763010792261370749191854214914342277535419334191919899341907617584629835136920055597799050123930087286947837355203162704639343287883723882768950812549178402238971442664220044766348548907832965019858715462543241691821523465653592143141419039398444800257637735229541991651082339418112252738476966527771791102057637488481475910296773086201486691464434334328379691936330095712532311504793843000573569914520951826245869112983229432369585389666523175642274849806181390007674515296305391182077789954917750291108696685463239801145789871599794965216338068560849472037909559126283884206859608619034728026116604618390123113700026159912931998046428635442502808819275794624555063770590818133478778055841658706283642891914388961131178012545161386000135182718170641312434886126877229303991495401292427241315046212263945559442714109920392404489733957839668291984004575483201231079285367381263268607306545921268247749721589908122878361750635968445449711078293842119591762611720731972520018262228075442812163459987521666748422953074040336520661529582515370061962468061623296809048578062127524286054627211144558796341010783874916687451724183342817562119331850499424472751918458467550563793269521358764616485980745889942094663418202404405032360565835860071787446838130111830202450900709131625150392054616095856301424852755107736012873566756027483827840293805149278874002693178089984295461415865434520499094936967710454386607738994339101431929722943133639955522168552980963347854792907539140946018558352371626542699743980746325813840199529540104513625216245966539794608852464956396307601911359314374299515453907384994328605423718154788165398126970160296474120513187890667843776574174419984343716130093315217801017928681641433300967794717954441058132674034855670077914406122128465049278170446043299273057578429722552331652527840659685541659403403887782224484507324619849501082907361117834466901816878687534562359875385279916912337853785686986074476426620915537473529740702661929535227330724653443124919295012028254138737002852173557527993399566002760619876834149295428056759286442595759011188813801129736688905911395990698278648539213123842395279644705691994355814169455656825652858172616405313052453832415614785777474966106515414240310058139008567111837650407247276633563510006380401671870640772348137491311746880996055664291600168363523416364991469957680172321166300866889283786417363480073544103984762731246014372953494548963659952920854659372616428766764897360554980792808664801575397543753709605862388378925785875214972394008073847691991991048891007801002860701610882276646724323632759881191332315145988844794678701152653378888106069156521015241608905524113083215937298627628612451055542220109658801132443179377423632498998664453753031893063323070644481143228631176390605485100191768258582498070321271912766659323674833158990917762048540385506069843993909230414771585415280171544102131631116057520549111955631825064923531670287835046651060591336376021773785554560228026828019538939417804272833609365227189662371635093769074927990194035232272935133198748817834113205699797343769866740378027643122590725992550141787566632910380691520621631966746765962834746472898848552949979601643383864831630415450466079634277524094612920356787718707228451456125130013425473119378496266817036398405363399388873440214136361739313407661636176013659615022462216874909544942611266609994503231822722651752257476521943683312713229050378754176935437811420432593270194106335970845985333167425996221095824668363501105081521351572138791111829070665287209423628483002032141797692520307123317622029641510453126771924922433858360426716925169154026103101795519730901031934910847916978499745835965363212638507412200139494819242190697018761043954406708133517670384138602034985898844766472897251375869247363754954903213206981665452429663763272675057442547050574205484156510356639179759156664428493168161073135559085016559850165641097869145501884120942633417668842764808093642969155586087054725992224442852545216855058661633531415506846500945302429945201741267220355382993781749818104631526130191702768560144352986081042860150085353834057056714335826080561313846017896186386945993285816081158022614454377014997954460552881162758431948770485250035953346414083161757380333925092297659785300063834530637292552072551499861193305013307804060952458540445032189178900007966148204336399305205900773370595307066495408113841893654883248998351127121236481318693901522017126255693852957589438574642354263860364008799982803516101771669876193332541767453266774393282619003593210027136773556734786083220578206730506609963559116914021677883441919307207315300575909084344030372092530221970131887708814983441662500738853640251084173339807933860039682438287384920756637031712148729353380546345319214010040455526328262345720560899074879402556676993094795989475427630799277137206289095871065868680976663170912089424420273485563718329518905875489385321134660368143153020870916762240796023097782039919430455348784433149642953446870961978633448916121156478023819312317180668379027916755245299379137408437730819809842876923595536721510282204662780191903038361511350775515702785432901045043736188676023839031086904953377047854337288093897775497521883970008143730190114861135711445884014369117835648542303245599961791800573181423849629598256129405520415995942912470517772025213227092513947421717350663029792630272804345521928139163587331341073962295170218678283418061517846023225907387842318411971307896439221493211852553140586824968663969174835231760140490657979993973743752826370029629017865366106849440585030721853471020769970370637928944943562395758328470824245311473527525536330900548965694022069966482788250548978388328097091288153917694030743610998675701607768330688632646526881438140290993686645722784817709329152576313726611897282789198448897660044497796703503984990342059384612525382226209302548718722978397559400060700223263723129099220025468287385794539938120883155272882482674519935074172770831761646200686710942233796557124650941596371627061454004096384738421272386411422657750562029518466169598692026458850768554689291800826008400158665309247985518872212865848593220572355413734945640733820455293817814668015081310291646312974512510292263274396238014562959613267763624325239232815256870865236081291776033642923507109742871499847759596443504798222027035489677848014620646753341237761738801067359135463889011441140296723915930400430784192519457004867188232061383922485264594410604146850502489111269949728169288877408450164510670685627376522121521096069044897188626223171079069153993407791626178383514028488357547389196530478343883066687494750925901903909968790179650479494301385058017861176338391258106816852836073401832866008651563376721194072453482712365563111331905020070479050335987157580890438998451108713750407710215140505779660246426391113199478117278847652725900741620354616171203254694349708275744133309615603423209178563615951167838230369930463615801986833536481681986792229022426654771333072337817468628010911271073830478767103297473134464005715966936031357144217676760256543207490421005387614142888473197191831975880287093499966245333890308120861718049255893306404341425040733899252010777999173222770425494493505693517399960812155319729329039285451164000144702359162076517346082008987554612878758673581148125092441163225144249498632149985003369617648220760766733755759283091935058064424115570462617356506472100076580748497331083188745018745326571055466786499030402300113764738337322144348663890137428867655185501757094477520586119564620163280460933122064261994299266907621471062755718114043636101271758914220869701319225199796917478035674320378955439053304271694165941747734298514350543866109515371544979843589258272951380625487576561650764513871890057501664141171099897864785794692180310088616416320131144621838165913400211026546491583052595561007255934018078050281445104756378992812829261860511389235503625755085293861146000595393467661184998845944011924171662211696337930494548692574478275701637192893670355358208926119948879189681607689351348102357941541800560491696644624359345158207367893948939133904464498582552483060312621832872516573959939758786272938597260696886432279142729813267796814489271905064332928862256014662761033039224160551532233982084599080783600171244638240870405591481289205552919628906801861216806833099852520953346017171455940859073645406599612410567134083149317029301247700942695269351937262942631352880256153002921671766784788462286860454449112655854642225347447352305832557611546295798029959602950169392471097000088787206254042245228439540287957918793501812869260019518169240602247907837331623828891550278453194686137906813421831785066476255593953641587567801314172233521516882652380039134928458141117142689563739430155071469662592984647841462975370202459377920337772811969466817764678789183086624162385364512250295787439896839067410146766567878922141202986772239456245904037414153031459300922474157683700785497171379181482733550546991426633892448327374122063646715285529823181537416814774565204810850922307493506094356505365187641271777723822216809236269089675954110390987234759833243630809712834878587110341536313253452835351441328859754684941296294211606513314949712680019802746078095908985080355937054636999494497647605626094524527396153720262729065363397870375022549842628476616243611979778624568143256802655171446758054729229868572841458653619988285965436464959287646411697583100291618976604414199784023803740074067262508337107815815783876425279878699337098797382369942829944920621840358986828335782502015570192663972431339103483330769085651259518826190416290213513563501541811689769145306877710014123169425506098882910658035129879025319137407191154785405691317322080265919667983614320138612954701460609756329753097896964577572531564743528451283494646966268363249116503823035827282443349956232821793198632561334857226457438680025936908807321665971592794158392789233251719785747115710205403332301727465457072017614142981799837988985756224508622670387009117670476310784664752811950755545038118716246377539637195584105599726186755025620774422708048657055856934646842553024164111035651557908141046405258421191548335882297983243830186941329948399243941353142503081058192410061808734544478951649501368325126750066295792287062173724061212196562617454155793774534582780428034048442564467047219849403520663282136649534937670775508093512363871822230606529795150687178042733862449098240735199338449053568179599044668567658376343200077436036149258582609253581902692849679129216832250605301060188761304444112195150494396430478849831055665300680623411891009016627595476226471381579217879337891368767334094149104105244036781277568324458081436984358121410284905718774059245282962205487299419666856383457460641231788278670927514156705358102118224566394775658405044980614881736599571537282349997707090298725940996615380357347358085885429245509712786860683752528818926559833377762661467693892110024941909362695536312499404824303008110362123054083750973605669762404084013256240582407302552277566316942776792055079603099213326252205837365689166202702228031536409403219693199240561603290007810200042251300744244783185705670239025278706410069153427879757127281849899122327599887076167788560892712608018627363027954976731586318793751358836558740492262935544853552000062348958231803082227416113087378444904806187634052024385666146767166732474159793130885666787228111278086697773479961150307292706183149160287094648314107617444626497651370284677986540739122714488202782888573774441255868615416276749523835392009423392428514519739908353721369221740834780182379659825140068122897206100008629222460501869205890433695476701751853683654358010307162508974434650253965915576616213597367151150135244248878543293408776559359318569691717027213395094150823070811592438844561380265458627401631486854502456609657800893150391497417269582284158756455683213924670891661866549035554258140805916908013115818992988810474551750399221141040573824243501211841941503246644826033246859628859473720993757054522379599314793829861441895624357830593475185978199838559592838391485993580034156123759434896147810051200311114439222438989425451200458346051573632389687947044030728964724051044143174142200453720135303541200316424521066364822958042245840545934054294927737708257069499657234937787888990442288701582668800150681700924466021049523282842538922966663741796660799683813959550803781840083777032708183087613049929186332725871832369905396812152651807250170756576388370889368300831358590645050184742260808962621915727588159516278197275754266802331018058603252535994242843225278904690004551000277976383594950579420803742787339057090525523575546878743940122477040082320824475666300760517659978245820842491907178321509230338126655812003707985205687160898848679959245663483743757405677105682887960934175662778814355917828589041836024185000873715861780769215711935257390040664489527018689318510920200929459774726136954035457732391734374251933256451886708113948459823875045358398804646278468700112131252818749711625318018290215021275925542717055517102025524292013947962678250091247913482146287569411535489443713898498034411445633411983667346182683338615963132558730559079663056858583139249807182768315811461095357157038225799697327764282026629239143692082899458357756248018454673572115429249683322794413548330224362444787163111710092872300172369104885369185644573226212038440644906825350634738047898077654475688541088462407075446160675756131698638468908309035700248633337983197639070099661678022914722509776546086406558058890953942273552914243554623837512603589195978782167401128864424625986925057839477605989602294722074611987954308529371009875482136495813126428961885633907334664762984406149090093756931896914787553667644560341860318690252338757985626062903312268668257942430415061640239973511697962248779097869257079642126174850436717952451950080314079661927357421897963913962378525470791128594115097574642692413754770163159430113631016993519279421951621099716589415977381029869696577085326514131653045599622907327353936550041149091700542407381160514568238619890100498735038546812103107227398781367235132583128852982861642501147884793697423728048272203961268511221145679548404120497245492637443467084768014703948964813144933156290004818782412057914261858734429184917950164339975548785910541405268986272928329098878699440424646853280669003380772266393148006719764143171543326442829071602934519598823411167951349445659828961068971898294831199824378891886624792481725169730927634331573437574431424981504254085460927958145443883662422894308304203280406031303844463473726218669701220654532899404241276456436520751722885468714085715045260337101688671398226742751536531545781361147356566776937236833583323337180615252587743257312326337699823208449918758809855903518698142416062864084267979162710753634894019576284030172709682462996376430371161333994413500686220353057397478270685866388523922762183905104232219041210673131648246142071411439592038809710068699866878919171519989870986541057529312072541625482302514181095512569386766766029708552023583209789759448025600255777128847747721786836550775991625612643988548950571829214100103502369624817399394040640443058830638516979487180508184974968526302263433792656087709779366569488487371426582321472083329526820845788270437442676604888218617353131608188625618502729242133285438872391854422808360357455531402515615697345978717502671864323163455624988438866897665443265243000697388739848403008128087767338743612116644780501034400076744059723694089546061788041984611678340031112770031437061091594125156177248329853304058918555313611042411062094253155929189194311668580145992128887258076900288052591802953780510980774070653273937982028461989177293995070819691487804142542090605682148556759351999233042628845345352012184413276097340034174358409331509218523302318493066141278250341720946850523380116106319235291119661937265990686544951666651526944216660672428380452189445152591776759712401522452640324622630134124360039146542884391266528184216516944071089721154214086422812691634616960257931315601136980915553804807524255977671529331427099763472137097408310471746590069987569310988220284010918535577080770481751330943155998341431468012324635001158524285130980463703099854847622215366655213729100012411501151213631060777923607239310894682655053482559703047538318987458062347309754945266563800194899554125070094575472188302507525695823266178909726183218645208608123043961726805690853251593820463480330302570584750880507419559132781050373353248849979648561636952642690826794227186073442459870317591722500666275035843058420007872246700947615508868000854151380587584169220858565056443442257886507551950696803908312289071922638273187354643979618141394103756239874917857072862534736313419859846220050485161038727365461592142206396196350109464143201465830695254874548435749711739632999444980721017507182140577106930985937578234941186424576039853636237320570839726237456257809495726858274315933497890032779708594516738393253585243138217596478059566366171228228017996854351697946499162706730027604539370657041048833282544473254006898483477230624579209699365460499939693112927457439445216375944369472898663921387585246132686246877976132934376886217665200668062358150985629061815096628385212556411318390333793770976716209909250231210783318675459118789049763922560885902808838013379550792016515312448576301786062677310007829736020928784912030920624875694631057350066907086112854134749427839728199849198956283468400256984986025358643303330198825178962580961422108018588434750738055314881299583998830863549125711528842345507604849484641808642600089270746015711471555944763774668553759970913275797247808387362888483611082212746281521603939767822545572163134789559074834086921677511947736052811531581849963870122850507289924333201317403870037084691705118075504918365939585143520701880860550523634417880323424079248519846979540334757242766504242234538040257361395323578950964100375848748772221926228537904675820761212754770573163847950641061278686674344998141297438909619503876289022864183883493402644038322576424696453185993629305589292914820696506452777819048132209796077233174419562407681696813725067373765611198174382004594574062523979688755088001450403946409697086762318217782704181049049442756492333843356485506605052734810279434950080025077529108278551862208621743428544104624712114286662092380014330045959938944702415287555100039448296166207356010345920407896181656721684148303370738324357935609392859990008819438382059148981280048086733418443546551496774904371552126559890490982791195821442537674907845155698010677955430055778692217814741128278182330496183640285025006960713108885401908908171186273737501216709146910283355698097649656145686566098031171714267647828120719711355876364772429766846402536845868439104616957973517972028535026560918475656674328550921252885909550142343405956951214615270604945068536793120398383039331967843260728568922313146528232499734804251250859969602032457445846527251024770848181223018012980867402629771441462529354893848526573830835301717490014335029918985818034804309878009646343406522156087019560246736240085429333205350648206550806942605224881706082923064105863308508598636461962496864807712313579226560582749023322752921760514904919976336252215194184156678760985470913941215661456175450909271668767816900591517786319397171227767165103338861364081791435606215340022991118216919252329613068074908973493825447699804178119359430938321980505299877820972026309783901000175852531745003949819572109271926714968486059649812897143682213771768640938718225326101992086633656645449680483038451466286269350262652343909474167550674971039896669547556087876117705936444050949496325739598905207881713192294391246798496425986600284529975420978666683027604689479123643698973419861321173131724508697187719492704523595778743754029395228207777866234622998521769544722267537093607197878317589206268537632986479607230379056486443202172578778686926646250570248824205561891013679308228261309605861867193685045469847268362841689956224384167452285824150839998329092556486376996785906187862612903599023129928727208221519093307300385526557472360736031093118353349465908180619817689976801431629202058571585455641757206755057192712540628564004697245843627745532809105920409721690042132040477462212729680313294812385508767248231584713814765243399214159156755635892475400188388216877600338240106063610842431099016858681010754753650781833231593400648273602579384369099143920813534740608463676936421690838085524711440961112782030608459485091145647039105394050481612957105461899407127596543528472522683194510550621630415390991578414224024594141270272843539644806081432070291823587869968568694580490294849169593322794444182658767253322760815959662041886165205210466333881660258737644313956617139932568288324689211062131750509318566696992518070840933012890627569549606875123113163990122121779877843752364497268570178749360795647897762736162368785798055653360022950747913801854094017287756244505326190183501646293692829315126555863100674272957999923933891614973284382141992733688630900475396090283861314617619596442213360389627236607436856468693164821553510699218949915941006736524113949825544940556941676625995523792523634150913878028982480594461929464610587884190386569319408403871939417908930651038628624420715457012266381703187262850702175890926545135500391662389692927186161629267016069085023377083845915821796580299926415072912969694180779971153536590816079864243179564975461183674933489823610318264261769971410656770690452255436048556276707256370920670904638163791932766877519588659312694634496310926719703745886971621840835453825053291472187436183922832817562546744002651887427354968500710044489044901341000555927316261767463461986634370884870162234927332539676085651864068357448425500178617294469807049280362958747156401693160487742967039730008776832568129207921681614410641013350347780993885054268479715944904306917415890558782364086725961581409998851239255418417353995515245214068049230237098431801999063040891578398613424472110310234557127647717162577435123536097158204050763428290663776335677210749601012326543271164680401556818048296521794539044822267190509300219458517109771243679581539747350054316431800802519127805714447261168684235130248606097178004119173376150929821025566226370268623941349372904594901308585591399286167989183473284958654485667443036467240972815731283941960849129644770428085792219465938681710668801201100532572850679551770727876843223305517890129397817159408332326516524755102279997412976096668703645744890293709108972351529426415336848940330142255821565924613568952817177547405480328087684615830294818920296866758151522474507603757007190775746759278310171946525837002467217683975827001474741878113541774622580026045362605622033956207916131264190172144093335735018562509588562549039756840758863632372962014563761964384629474480968749459129027949292956492460176068236484906684423314319667199042558125829046247611962978787293632698112629613810729250419086307679850215937377288212306031202795014779399742907408352670249460584618901734153080413218227985945752711246076877133734561977812100886657169939181884787125639676622810000433772369199362254094897094882935105225122935655002554422839594276039639054693803246949101886890056536584743346544949276821614502926802353038542422713502707781569011010703019912009862483811403631995834574089335560644255603200785920278993302840035025617595516722823762360185289075606030559279121254298735639716097882870794439526023493203063456812427050845517722106629025251270370302550831757579003547633151160201728048866128019802095562426686335445473331311928828026101371824628667227573480239143455194461183464549274644335043136657520656561379886514149876666003593844409744437841882719878864405455385163265637445350141855743434443818528918652188148334624364471490297353275967562577499308756279178190338459315518139668559176406119626434690247901801377757384724764858616855210053726415657589000854880111000571744445954923065852949669884514295280063227835636187178301096381911604926627530685223374162835514518221848601500621519266412033456889532835873594353219844607276050899812021331730260418403341852341482344334442224806331294889367202072128563715204575314649459381338071008883035894123615053013583596331563297338477725597582012951509895516558397639552701115837770731663037418270110805453858724061793651525666190403945509861570139239313536893269856201321960553865524202629376897844514982069654328943184768408643165914449130220826527489826324329030272795140415130310123638830617347441179836668397576207071451861344363410702220257832487216231919788670901382645690567984306188646950795515135654618977392512483686592396971001587554453124429841543794526329337139337237207080599603323868035420318784009573986043079866654752830083857070998909726987650102334667019286374065123021870450113244634966724134906358353477372311898924377533368012518438213783529625062190604570781984830142422117602121635573793283533091647876439811832495077059955599337115106909938508959125496232955232285378623510730308469825955150166349446232759126470712852552472478469584819672380789892976504589336597913798212957974210823760489429040009434368185990630006315153670190048869948182961886088827562463775012675539398678431631484390293199211396713197807456687549583679911843535272946161995979571650794213387892564249701651152277431462187077448440049541281448072551200264692833864515064594779410344993182090139761389160465487239534290498727693964242847550119141012654934349532190134765027811910311969634755644577354501255085251394218076181444228674279048660347920468229088411919928379856744287480688364787322625142098004256808634623322349949924807253621851010272847416569537386757525506535008862115200119460968040174165540769471402720253179660368707763804131484027349282716794657848163045083240939010990393776124163605493022031578116929480963123325118303556614342808620118721716889309462430821156817691693414820490087821053513339943471147222110402003130825773910793149769278111110689867718377882060424249920041078502102088990779328014154315187393867325077682263376422186725921279259129509742543059015819146100420758380279693629361016681938518081562433473982544377959807552994954037776022991776686516906497483498699035868632746663686773253254657495021945395422588485153120495712743909702775725200100511429430903192578945115179948488746077206946642672104282076284369385577558920531729433894922702988367483268818009337754371078007052417942336728277010126442226223724975055293554937690058950528526453149538609785578954380370799905206960212518024758169752245353822583004612522944029198742951821924908206574614775169309328307112129554198576573584676860882883764742603915447914765345111389241100455933565508564892879331528263345170032791072337098204177238184524826300084143403075476622540672437533475251884226264900399244528209415381145803438416690694276546284299826388756465047762843601600957468543774956791604803016030148764100353993949367170502707019639658610826203296742909004532294759499714777143704515931052977231418748010539304870238715583654418565128785488221411758608772832757450553370633849619958876388212461030700865733580868895193938217066566241360178142673694275430063952701055338800647703213711034992844969086053716586141044976204724220122100994584742879405032954921846407002027538930873975218990855399498429088797838494782881273381992077711007516708681342211332652281772199835414818916125074521708875754325480488499933116312173009467177435407349670350831189417794935541258328638054544137091660373372895235781034044059392042694530608510267020983011136543185370917352273257149919687400435897538690319882222766574852384743220814782306050068379276153562221507237934248292775632402582098717203348712183801632332926692342244092657718061588015746094911116677941864536897523460775038355342924397633653536076468869351271446702774145240735690641417851422744043881761205922264950768451474322344998639449460024549885917359121945141621918020549396036024956257613779984301471333214902720889481981253798753238040408524500065040803534317232010307393473525678362543190909652220504507569527263444621624393608070434776956875267189586191088039566287127899714093506080019962089332586455560525007060528810200860109443910993728286472786900152932493288884919829979883337264790215602540584590040856606493133677083233468034662380504753301150471827554392796154592524271398664529056077688082917249906101115413133298110030834266718571123634238166433822076680843935940615082861616522830157615934293508122763285502904140713901467782057513977486126473116832398919271832338357377921040421409501799325258080893206587634719166222317881493182997344224100128909663768305283407836007912916066462435202898108047887306362448839020151963968020312847975678123469151441424862194236448861129314056547808015139288229476416152375687479290193868090345450756485409829594135467657153559669281030970778587350935315985068642334046693138985897479674985645771917204161421674336977394490574754735054226214057606651057679984811079952699281607371668741438869751508063557739914958003272985542755932044026467085363785314410622285235474086993608199567084134797483242410653985822802957904427831522262361009784555135783018525354479497043885734550241222405566723187200265984572512304982953171797529188377956281046460320276444445973635139303359945711822277182533072535369892823220934027926144198141694585118803648300065378334106877948807297175731892118385437229608862876456934946909411939735579536440013288031371700464960253029799712429556719013093869972579426467625189553838610671292001415747978801800687651621001917609631341075052211940155239694026534983018934151437760163825878657187380227726347819469092356126861558351960740596116656348183206910497754154685128083577155348028495280175963627992743818203654565508311321011681870933014065234180480729899260945807715650117722147818492879738794761552733655044538675809994183374794891375543646253812007195838463471341562783810077381109784158681968253078422225700130113660110297730737246823970080745328037954068875632173396021875380691009669365213213077767853278069186941959721544261542114638527956590853246966854702971892969080611527800406106220673136534647551430218322147436812482664815482469846651133630450719309257772497415861510726041161519220923190814950487172670139396249619664094756504472881405962066663935000200841932256671893103878344929705176796913189754833554054705460521870616616932256351176040490440934091861654757293689616161775180783382300979474185384069128559815503658865864037703287087345684953298314121378266637503462312083968220588961081562802871512990924582873270305623533064065301131617586605723926906053432279606751743728923827694402331470450554904264288978604619726126044540441336683270951545021988868277188327445411837708483624789116378064794734595204213403250211622908624429405573746675932938322113329467683655867933658427563682208336927651682340414687389605413874400366151805925465697723707694380564929064598119786595123458365011866328246365056539097646459853313535777431655325207435502111104585257122944406956037492175788647396619937771559320300821946413314510697726002917656254663487607779799697192638243593765399100818386175840752892000018574108155674184456334816370980353709552601956526428591376915829351204293108792433986171861898943806370049562184934904377539881229153116908199307702189208994137364425345688647746042922450942927930768265973514766230969007885796990286444885421868020874348199557027510786344990619118190970662111012377868957155602454283961736174821220091789585033369590913244052474524586482256703569944137359223603372278186970191954605691690928476458498388434265133719847535429811018179981054671868880300482999200950089808085910558098172614243137481320778702937590176825852949933996082090865649756822907693525838211494037548598230026332177193975595396931620965469071672157121322409231587225004072688047530013123614886011127930762771602650847829432715115435881624725001769172553463472784277315593142763937836327162919895983629651335231296351312169697913740342126676360066313664547762697909681503103475223939938318254021582967767050448031883122440616102881956067116889371361999126075470457901751965187726250888182534497567624460919748595452032788551331945009944759561815997577301117686258054112137919513635205120684601281936917389308216268073459626884604174455724095734841931381028856281008145359259267342103649783653414111703653704987748400198915492604012254754448059955408654173513795618835019450937774232821858649293650600865907370122813725843887452796410440071913134752940865972231895548935643557996036959126310947565087381456179816723661291062763208358311346683005278284061260733102994352059377428677428796781464231458430583071501464752261698880048061615858432765713969820572819471662299332022094894494391138642231085411751824692560730347892944481831590248068270195893064493624641928307250308868752599336427618564658189180117616612621570247263956913332675329885674740771598597304666878066441719763007801364146366051540095115486501140430870024791279761951402704122866984667238449822357728178185218325046516083316910294281277720897496238832168322488896303019920205211226921366360912048354509238840939553563698743132444158816101291010214081335288496397489207708951701838272064648424242471664365646129799614400404897194726297435129545834448515086758329260478961452320695027165054637605299938263811393705231658514431145444996082919914451960256484123591125952552581223390937238026207685159050729369691931046840480531918357623304541428431281333778743698351864809384971135165968551774710633334628773224091561159251341510186845714989582250140213474090346555146323907955761674949571615682607000554034175884303403500866592487045730935890259050270861611522754551101215571093588787668265269288771955589848775572715147579990728265827988340440976225415730575456621575640491975154524903961716658622269783493511492442059774179899989636615154126584384712920709846508198188382688121924196857641125754949774696781363228358508808913943417023414183145921695952087651790359017029043047416929249656562661353195460932177736439356082960882095398482598333423589666805071018014654591910561877872672834946813976120027055644995267948435503846623472451274143984686473551249757440131970729993013917438504196652410105008109408126346000792561368022699399502776095322292201519224320852697198073333705849199955249601581031480600888370813356657366376797429403397487796134584645130752559100591041199577439800213570003715243486213654570266263394449500756771148940456531351621795643876496255848463077704536425736903585732084272504170371852225981887126517736159632193337952686876128884854478847053031341124343707522175920103111973361883681838610693953855775102776551847644571232344233699608418160366563490511468712244312990296248340022271986481127615187188369757343485859804608702181860768234837089977118074734951830388692638920841828105633288429624152764205783610241808653750190593770662893087052551938466594714562016657314553814333018396775821283138490946940804171170235699345300305471641121423169982283390968694280789219649327497906259995985803881077553803788471306527504861077530435465329495240228470591342814296994038098272485536282440508182842592578735305112264341727813130365693233143095928276099370586273521963450405127217750335507425055377419784104215821309369623915445761163843915888871535805678986909355130641020776954348950716420810094879695517260115699524509193367003176744903568952703342520829921329359165635208910229224069704523926310662786802223808190285215070702480289761179960584096843753718462018079167968832353897925853927464086212493153298362342329627069662049179885923763783889021806008776079076536528336594928929105559864713541193280705308549857357169360520730344644870555750594592258085769566157912623651189308301720130110010280111412423465787249758514715225206619942167408158338886928390715591710182287779860788605412267841648496025477750158870863016176523053355017115119312620964055905685185259517441700394760346088738462316439843930911485974597234669770027035071765630170276332300176952888689876883725198868460441998850009238489000875009753967807072126601859043650863862744694598772396300402245242158662181712455432007334662849604497934470587265783944337949208523820952714945570862243728745630203670642487366855242631145059881366778549047210051215204898003323060114033742162597298794156594627907228404590132888139312654584495730646168750411169269037744949032851670703420098583595788854845158948701173946853038238693011612740051599927863546658887441777748397762383692552033907156836380149582910115517945463705007977468077762020434365645827306634932413926852027083587458473144871323877554726943632373174996878079485450193726305800513503078511842222891076593470530741371862646074254540245532180853549329746152477043613358970906292911716315142046626213632674141892148975130588029134421523473154119770524332761613170415955666219637695420102368102442149095587692210152535609181309996015612198628847270375849408138908503102948829685852842719594886771642511682973391755858432565875600343071485870469623150507551856243374299922198131892319589022913085979251244640350435345459022461468359158723107755699758541060110148210041182866816035020752059850898788864365354591161393903083274874702949429169078241862450337072830621870171536941072303303860337267577617911197624478314789266723967781944980940226354889465907317020936410696605870750607511661808941778481189623505315012138504217028089525987094154108365191911227476623075783663738478917629450855049813647124718633474512697641117473051668249543922465337383894108497128988123708482262007695158963252595487354858185636896163796424875685671559191270170990391688636978231857394498682244000859132944512453509299472536572305415418144095966764761250008237968015201005854612413854600413307576610408985732678032018553457943872771576295205294519597347035676995730881284682547131746752497009099693653046697798324259822330584975650608211703742734646428316277816001424796012419808164991508287495300063950447613536878322031315829865295531357176547237456460298512374400600750671038352261264743878050940775683557507876797032273956553511534173044428038304279716284364607745098392944630655794457763952693153718364768988731635258567236307506978567773420220384925343371970180342772356558495788518294767028760777287962653408710503094765177031244410142082714620154533474617835664357337542469992112272204392066829465641859086535666319133934100445868074419156312621051758518971598955356653591122961779369348984081826296810746369797985553697909904545755273761296065170502573108536790542833196139191665480816081658917999386637599373359240592160073925222283434542739882306489011517647083539216082113203212007837797677744177421237920620951537239140600201296620201759450220328732762396469559795947027617626448133435236823765894260666855482502771392479769488896074464104005840808779228281205120335302778942771883242855956484906457922482442660756985298261539872738619113582362719931713286966562109510086675446367303344339734620720213603481987821326142767486740601247255099173577885063003754271292700952031831565306104267605089821852961569513007031550712175706664194918091458034202347701999655120928125863678340772495032624418557802222970526221758490345546443004393679395198236980534470634904462743425988224986258620564875152378044193515239960801634258287665999703823497550886389943693157247402608657622925256585788347690665227149651211676335904680930302378339119616151506751273010145697624523753629686775181324149786537017111318607438263711174055842383748157229717308912773304566784560362689659770127644827705241890101579217476012583049593522460890964267788155062356949683960414662927787661307450497116924377903233043180711386974615268120175283215023296899098722660310765251660624824801817898314938940464996448873400766975632039108619819070866836542571625888956255516978409522662544552478034454943693995373000035980662892312224596389571330917695787477098469569336541700966330754037212805292983922279152057922082627586885919845674171277700704727906270803477291273696156319252691898418022273345006130178736146584154524496950149850331127965270820405252097333014045714997522554119563781823732615059113541182620290989053839394694432737064657140220308868745472160051287169630336758687388480960177419598473233776440412567814353715604318812235146736133877850158087796832849702906757954413323900288300722750172323261122529043594808725439007692803663380931965289327433971217274619209585579569163974940494811486512018820294399558039136861344165858051563538014240189519516593273888974138250356978341228047871787925298769616195323533635435732500509879950437227583574663126479753358625887520637591981618020320765947663537118999932479212596978757217784789585371227179639416906940554248793110963540993473571803723207186056460359000822354963785582548457403082213264025115498103782920341401364826887950606380453688525578494294968431777932459215654511672890118144552516482368679334778950741864430598375145123755309007217193109382387897486905807687800970701757689038491513639429590184327126313257521082145063571028290161330081990063204820849777824692130749640531452733239040445670861015729009010697595227952254851050559572335623518422617743513734790110917469195285760338125469360584502498521966061817137180445640739543220601944005240265651996135310548086022065219148838493151397894622963236401168957201863140569565941528547038051642840423699528709552723245688303149315722316133128811696206159228811909589656822209011021051058014739884076364131393725091145098658662991896526073535375333629307260699936501381531010035490735473877872597740582495124261853530579898722452817934837788548490609216818617109964546360130240429008331733904837593806738232263746635921785980758780279816484148076596380789125625850852429231048503387811431189097041309802097913959398531948327371233471393534817876575809247332644272357750692372798996965242708204273910749416925918013157166338570312246131167634149319214079554548833493942664125627098854480476779409656880812332628522264307386638910173592648448503614821468339978461524011482899345481494917669823908481985561661337178624367446247231742537890100136923531300553342205905581251480817360972600297230392466704643017576990382304835366074808368796448909582792261191363254501386736518605147048602309753742616994832744563844403401243735021628138561435335566501126874313384291724085038973862720602215217403420828195558980753391317187067322132169665612071987665539156704763807793934683246741085330510923223375358336639947439976137302602302352913824584926562264749173663709633043068722913542923451095465064296789745113901790951369317981716313173281046163684140737279613686422042150479371952491382455090827045055416481457990361908358900031986250604586200262983258276694325827476234569018439702715085101559835816335224186988136075857670407901500648042557289694176751946194724978935817410209439538723910245122548998249164330550339425282569537408757621848625643170678819560336127524592118956569129616523090692625992573790541452603988331806668028813208855278481490093317658950019211586359458332216297375446834899728386272030628757847143899054781160666171634495585924988877789117036350820591409498586576812784483554681157028146051495436229310019141928267079372010764536484129865718407017853565819487436199796021238268614630762805473404019212935135963765285809146887903821399336733982032252942460687919841446162951878427802105546300763424667127372576769196630177327295407960350629931006410716631418633533558095996143887718800132499828564945011570085991308116663601500885096121655714612379938745151429269689297511312739927749696025898952357135210799079791985036581786613714245362691256400310676325600208054278029791245722753715695005523358478733903794304560514964047741930245804476360209667149269885368760162623450011658260980406871880635704822336983105146359919448400838252482631194396815584035060463180797155063291204321035207224131482633968092876882582014143026044180704565010426922089104301315287720593365652164084487304458365398824998608782379198987694678823348428115914020999341001091679757337903054141571487631239581207407231582275201191395370571891467295125298910554888575307622153956061936660125733957804362521986239602916078185072608162085613828560480512543973588819088023173389002389422409293519652141486368879393787827386254616191014222691941221826625078980622503323450008165124942441603581972780785956238395021007038055368142729078378532631557580610482680892583505304598811658943531895241663762490033162060539326912024497636251229654796507125452829866454362050589055881396831038305771655947066260543510306245837601543322630462598949169885089161512591659276365490820331924663748189280112637049276255254707973910194486495919613576959766844007896046721384797240247398629445055343852030937834642009902621298934689923488099448006101068461507642994459789156941375456082811768580800133361343468856038464149330456578420172039268052912365900095323936797923896930128730024200987773438894282389985509787418567013958085549017330711041003126882453807426352084238561716125000072537907230890065893704212659961952740825895930870931874267984670963701819878199697768169644856046004676215724609259474014034292754316614497109950692324864571306560619028473882980358654570545148131232540049949047126844005955188965404016185882296285033035133408113040766867111854151343037945813716523629859571165385721270215376683745167906404667146009972189499448863433498136217842833806277069407550441154692870854988682032812684344459017799925114619325091404893519768404471193158685751135213331327599238365202775852670589566174676229326731755757115761413764778686692066215953719688307649116361781959040661600139017515390568117743827242534103101006998582950468587970447056457614807112419303271608505016855805976051460999248100959108290456434808417540088244147339708082520119445411773529642857785406592285405374092767899983580504226938094308357410239616981248472666168102697895467834534666288991102802785595241353512991229958207479325177695437257839389090951453273186872596839609575147570458050198289016178604089550276752737713307489822705987004690802866187090390890973304266521094009589030179845491348973113138807967103131129642360018988956270095587965207869189418692797792188312823997800351702647257026951989061946324026683683951851836370090293685499224917033711788449985966237052459165371984873797395048291219835327468768337241609691656884837284693430963369458296268638898786369768403035208849076771364260550967548216756325251476248884024069048946716211847269894268248901778234123917958203882077577162057471354181220983513582496670501372248767222861368174301113755031837952000705353492629096843390191931600030272659352525272706010808838344634003170203684235231043601207278153448181441024203683275449543133393919254223727395251471958039988815809522275278228163662007978634496316852623302572531899938266639400026223290601612269090519296198795173626897899140260554486754515048885614010285167296599995569757919844482529138713281006505652455479282476690140893801818142406919480008033245194156634651049555331517163578888201247995400222080556359815648700629492393253473458068314212319817509821258643255239105471355575491349608920232919889637266298549570259028565164668063925459423708162496517977622177101300760513960627807199760110379038016779884974785678546597508605036920287208515219735477611891242777286239092346979471115090018295555356882018337925980891971956228867434292440653812007684623446475447166107778651047801111025855500246925210942735492087062685251695911550664663177188184110779675631956056081794414716464739648975502722658299484383891571816972489714135633047947803133050357260848247435523227796944025808187410422706569754176149810385349442502314034189992883139724827664285407766757437636794675359321796960231741646943372093924174058927026712452532085446323836966764524693125490838386686282309908188473520470367881524233168421848514367955709534761077566149209934634809781135188598732920097144981613963101127834754849643890358643696211298631837428673804998946612410506900546444243230114844672986399742446610547112130356341462009447603014721968269227962578188596561470393008266820280778646406111549526122634152522548037298732138850475463378945048951696521231986734434178631708809990059606591433670719191651172510763921576615856745157146879127690016895600216736643917460662239944680079361785266608514750925374884731524549025910370232428616257531618319916430342003336273681322681509052268385591472193969518013622147818471412442963265332843518151644211563894210099827533644340816208397388142859913180638958017219830118329302317202408370674044808263955548234694917504593220151170218914836426088960044313276018479559890671449789527027552543295074164643226268025618806168030132223621406727434298301027573802335095862953422497412542813858075879944891242502561846415879010123331076768243008333016144170934306601791237970746889369094863702422533727980158032656137329819136295663456086562878682415106736685409198679841877384846900837782163694249559216832550460840262217954486725280675420540003396053415671750058789148026597348435138282029714487999941737841703528686578691273780674686961781543562656915772650213961118528884775313730874553480321635144859503342082036122604436447313480979821722688547513522910532920212079152843805464544671440353642311866619950251164640600044552905773627446517536934341025876832219789225633760785829612710085773622208435460769747566383507615563301032601866343040099371885636571496868890282963819035890650754913462791806415933165215915551771513790405632423542170623055393758800774083538659570908409592312727864052533907822997146309245646758537138265232935155041083332712371729675588236907300476576492785344067323752681666855694447485701561677124600277697095092802209821224114234279742462555911448566715768852669563045189529221269380581069710537994472706239149661733519944537403595538810379630385816116315173432294535393337613375739358417278100731318968010434227783354370761601324958136454119006710700972090658091407875826263060293643711865002908727116474666885479311992826849748723123209390636841234399997044935225395346536188046585460399083262230595708269642159117708796953646706041215861478934017220734413498931339804406501116202027941102778335448512226450738782769968483330609896199329309638352997903570381278293148029161575177602895173993132529911034492035575035351557404596341596624381503287751583460823974852004042683048005220657799858398001276320280224128961817531735552480264040842202485032876840851101445758572727601781740731546286650003239762487114763410650866662043087936399457151016522698472333659896164017637646277289809037171137456406388169838693719527652294292778453560774949677261428913161008536057803749381645045196744873355989201712953435882728962766425646818064967241833469847143986377219061103460185966590391382647298494028979597890661546094225113830325462281864777498091091465880614940894448410222815710914447815680739845319908484040843478770963309648126234998561500129757209602843625185486571106670932626141574438176961595072684780219996628990482159289251647057829226197164890700037259917609755010472631837507565462814863025649668212504323213143738555398144997200620621874041129021617284279580404946299575630391378362199245811429689285128308274795376821824913081293317833112326886814138001061608148039488783600970862873584469337855551810148172617813554060424924325470356832909460824039619244722231589495298403667944317378198752343891300842072773361841934789042871660201213584442575107588226448025596118087524078519812350206567706642149369705633248088388243442837571168667206129585336296410754717785923077257413922427525418032848525497411829158618183011330962650084322533687280612079855438835715541499315315207763986698009673593767047790602151517145152790921547602545257574290327112938355802353480280041848558554471570005683406344213234250588688819909128724482868848527794762337981653684150299270125948071999266627698423308172148038264666229120296100448885933812805483506862139801244259023660806957439820521400768801298892222319096244179483169170962343715259877367855690328963737584863395216498691749171510360477780683452990402817814424631910856175099652028035637837333172255019582876898409270874816356640838318896555010436067382038252539503939144111252345395898178039515072977716448113032359678063792337291263782402778297071240420639958173969620251311126621992036069392570589681029754350760389055783791692257929627963934314884317252640284232184202821934638228651021049071119648514767099824441230135500678037674427582995340116696402203106266955188707178868388987422156853674581706423012257415225684679270301551993690238337520533222650497188055250150803023688649779713392508012360436491310562023423653210697062569894867141349875188352560592772628604411213551512202263848009614742833626057970669972270918540358677739469426202631286373631482563589320385645916966170730825451453592041245839707265715883474364276025088040905425696230800084388589781509613476273997998080141374539446370984200160492442753010601543471220847095961838616034087511952956442578837033162203481283428840066009517031419683257360917644704294976808636800849455910699612211624458793757714040910864870311900248201473590719089046805659996441658191525368842512668826679115278451112348193928914616231848293932587382522589011801809710907766002674706546705821733452077979764932141453282705620933229809343921140282664531446911869597670342382458734018147480444705166016932033771750331255045876700485796805584139286619504506641105104115719064422601740328831279521465709271554553375856789446050005144157625256993300882824112136907344534193837163471136313146837879084489694851590978604194218586585442195013614451640284674596276409549155194467106452416552269302993486149393921880454464616117721402671645772810542569086321772554219658227578628782572461160022094268980606194469492885434112238910296522535145172417698038990321147055444059400066814768574741362363822659293341172953504166361841654987537575260146063011933209724604109425681824268971746031224481565635128508474454705067145008769075908705911064802246999138305988314424435705400681067995734779109752523308638009098416150812583617320676545761481707761098644562971340978509391480585399992820487411471504960020859076236068006128359188189319197111405911539355901541976004187740209090067938111086873770062522875181239468025062180853030048652402697741075208321665153458633553691688132499527304663097949801243357784007003354087827887438072647876678785991773748160349680258084824788837026217364111373998152993995452818068623035396684062374295549646239179083566509554078525783995117573877234244733676213478111549510834810631865461211904030758001782937915251865126397222349820090217984394227710383868255618832553507506949690198374864181129103974305082919462138318353804309204049730519213704395245475521370840742910185839523876552712663718963132645277987151112232917375961107380349429914376759861731458333496684569314569142757012986809797032427252573537951099785932125534383710433858888535394622685470654192574969947784378817209533710386112520735087836906089731513549345032557347765150421133386484081011100007804526082165511631011826050837496190167042951698434408230786229711504196281397317645997539591187991933895528788269397268140590264892167307903784383084692143240738456120947344457916037854957350359115716109963431307801861614860577362828771710060196827540729547003781286886798485003301109130857428971642562678079471356657137643090247524601478979107502744524451373812826876457089542915562357440008965174195135761346504116246375993713826330115958458532749523702956079504914164201307265892392943327190715219620711823468405006324859995358242337460804979817729979671884047649746228776466816968627462644833341965026050050282235900946954881302133336035636909852031134885557326805780190360763933767900931683669044466526143889434387791232017174963823289092506261419469742751823953846763750320641504481058830475725566767186713010634198576795662039256388970228258723205387126990796249389415406317580566201041419518856092624552303512493593154962257998792180935287618139434410348706718698176910040638319667756599282498633990770004380408083447727503731265307757118117195284705003665309403970580717185434886422112167282437780127802691122664442938277470195717510124914221089185554742428247728545920476887113315188069161338419945331787577905430742342426747730841522317264378468556581499517464796773835395979798340776198998592934840958666788164500521907107944608074460630988087548085157450717271553472267997158186020812583168959363864059100735975308288737680707472083489094691906610303168893720291566448977809053531367686412896097005068811037930473286360876177424292894939378412182081305976687731171855188154665723702147659026636124880315145415682751448440109894980841432551037992148454232679703268134075738991930691096409286570550233105398374788302704243477458703484819452970786067780068252187867591335307645946132002944177883871928997490315716897093654689522948083870173412128334501887490494197443402759187368795613821809988576473494847128629437486599023736855180160173651324215212616625381456258525662588431818702819044594954668853258592387909835741007179335506321361546839150142224981688745141597821827524519967799739374764388523741659885356449921441014539025664779334246642798614535954149705227134141077658503349608060304737553596950439394152833932408275298251640173149545024545436026460937662627925464382075787061588663062254477273795290888912719551382395544696522037448208224363685744318526297112762504212273506294082346204231577998321174899656870633243423406631752332385630643606617596767206694745436034263547848883569998588222034470717529029146972200359198694680970273430715955784406475908267879954094392073642049951541611151705202285140389841228099354657773352568902911132983713217926897915493250084699164895514699579116589249456286820621017049441414352656943896904677190884412128156335058749741947397177723731993218466265002126878145464781339773208197129098268011663099800676177624177701945353482448483833415724802909008364112848784245295965060066217639336332940167114681819405655250451015479409689314050150682716903410296410162650630500050670829851270520439539176112121814167873925264915143084095637879105378686914267080464662698724807835535616376673396715842683149034266251943172856002479821043707312924704347044728561145235712333971030297475462690749305526275723678199679247966570738599979416670392374368688733664336615592439961599505380417611361820800330359858211342726459326021474906105821757085922197893866610810454704966183007208543148465866894216093446520911981964683697091754240188057674886159776494297937765285834264091892608896755525584101238068694659762241528319431531711466959200453369040496927741501315574176412716320812861712358146039403144863817000952716050879483132690188029741395530875025756440675297796727248353714189721349484976973681678335603335878622192755796017924332579862592632414914169735965317766152238197079082302967904661289786639257468333116952737244777259429228582743490685044510803377566497438459810612511980074506809031699282021794377255412844007017889811086792000643162464977687951154131716485958988737227818569076615260120491544775856084945327580929479816309734113363289974283834300502781321358459702804257660034437531237566163229238130679116062446631653518985943181509095278549203730840510928802971974456400635748559157051233010139948341345870668982160984249792617614114613837687161465452362192312031011859139615781968113425609408642772381326455802472956642532281922352577821300350244022642279500617710251804121478847895235551113143485652447642161875808031770894703495117873391059345784664990006086079445748711385320495806173628808435513337206525475770466886250775085302649357022574689872882441138194855853286817570584713607703705198429293363291068333648989916005833724342283226026400836046503045937992272555181459917548222625036061059738482103898416032067912704649076683959566246970975158959807747496513027778656067762673811633656563183157527460322200418141908791886757750028361053166435279209687561731046410348476344949280247178340711152778448159680054597689268394585742741197124304547523458996945948033038994001721349003023459698498710074295627381545378013622893389747700697680004118553992682919809376288102510575260778317395422950814244397353832963796075628010679289101150467458693439181874867711158777681017784427732339579068348675472079507482395904327701054884861688962723338535023917180998085297542296193372573756375411022312946884159196454967034229091788289033496074217392378067857348037751363634541916876852413811766121378050803330676888450297980858869372395991380448679488951991887424424831927779156152203579627189873485672043986241499081008986015708178298567859987072065282287709112441219770128000609016286767166980636845258041673176740336023852922318920636737369031910005104757439630492567104662482103707796791714033203358379554191649566787197505934777350429732594506768131423215847268685010329971212824765715609451436800120677162055975833492011391261927001741813287294866698923666020869150728762286978781883653932839400611857602637419728733300275881637251808223012084431919865558640246657083826713020501757014987029752060996183991880533378059034738984594524378165767145641582990151873581007588951723127802067502511739768477086806582816538308845514073725105748617337556849813091189982286029765072184369864202114446204622389793313245176761144531754769049648921100989124063052793822401510174450969621230110012710479012808573943873329931680144637959842447123479332342846984414365447972458514532671680504011203396017321670582031308757083173141892409634708161564332540967401201416616781658491668434516561335172261413937895190685981599798467073029085294780220789828362102435368187987535747181546589149589064111307576146120536402746207189909290688513850525342699105700542888117647738570362966227030989946013645902360965730232485449838030763139863915650613887178961000454592872350905919649540639802821927532649546561051120642927322779725093584358911672330626237678980256900104674274739334294398347261437857277439987850489214824635290743950635229150438459339359226745829423944491548012106317158585941745290799690186987191136068390732768723241938811453100154709682082349709338252262469774981714731454411885682263056215312778008153813889963576664166921654424074632938465494799863900081408088731580491764156669765925134918739194922904010302071293667666914885145373991260791296231096523122465467021597050236096838186534472363863228429908940235186758585741922311636013570592180450647662668497782068483559552121590528418492162205700388173514283077139858942362031585073516602955582039421296391374166644385748474882841621843067537262570970978629204924490267851893344332557523204992117194380764270554593105175165466039492778771255627148007135849332961114316129350795194966623282719057779336078991417520463042035267787532751596667074791553123783883554279403409172740866403510591810404870051638985733914942146762877652639112894797324747727287002386373630443054623203248127621255998246631142375881303397012993785219184279537424422457308908505293675837805571563770326684713779987165239918114875095032319024164964399520233397223489171664277052508969931587152807118934204402190266246998931017809118672303288782903595104280724418815425011260842419027094703536903631448274423602739002611249877065870251356262272200152483735379399866499159330462799382341872528846231146113432409663368847819935174120756559550585410435700368674349039462247653031913797963794783097547378065393955714328609477341805546982526181619415652328391250234023379066257470380017740898827008142988642495403321550159186178923187687822702959954789931596408336922454678269121077494661414884123161349072797529008348172864428105312203644055541396255401522142053248575735970479850936063016988696132919565754848738993070688506359268467774860517618299832328147717845825578264731086555509914426528916915140438911900949466948999336294902270599648874433028253555489580013519915281819465104443064183144878111622895058213779725033366426313988234581194579062477693687669896680808669936848154092403499157623683148030332517196027688596102479226762699226951792986089554808819440006239436388524651057702286959780067812252825064012043915548291571340804438561473304944678504801153807454654974889133703234799265162542089761086057286815014043023784979970004904066574232631069532539380630426384359039601222428454386256425895567961508839335375331621240868735458651786291601839580150038954551074766574817946889199820520540165489588925387607125092628126846548817669027611782224253592057905976551540418205880446344081226836693235212199810849981689452400042227007152203311897082227745149268876043254454507754997262512314628770448381774003233227826829692908703285091224765443911355001585929488717684386365401012852154854941253636297479577386529160921531901795807217738210331739439140043775718075423164578138794432324081545523661313170478548120070010069900283541329865417395558545976763156926176048923226966747656341045479494245215320878010289204995455781212290994888687669434202243105001022443949192014493145071317236948720300720192800943119007491968054887575988155386939573254703848596819749403642534845687874069308984621665103011704511222349755533799631176551914136960125700794400910259666648782835254913468326946708597149677853458872593635899185478186297675899449676654466147391687927784659342944497136352430594861769215791252335924119726784381428974246398599999112104180718058251795616580642010503596869798176072721447708871308055088279448572221552376721984379533166109996373506258927705640262772956591005706964223642518710259019326656796074496260907501853010198513521281470323195005253591061879404013116416066080541092168314933044137317351145472154097089762698527762616342214167381484663478229043644596891034960421322138197125029632395003854520930464072496561450883407812760594036379011430812535688261791896492006950823709935876380678302804042564296885296845331739544696391253003157976158118345357352399145030685162783107854312574018232729358637438155013352068921283574636246105488070065350523272859809427400582425507651399377604480815062621179029172444791669098251004403258880160325505108167889273666813948837723690775279035879352904875415329719219146529901194200200227856865978422614450734600677801613172280023197028818995438029823604770046994771620929267112634263431977397875396957316894398505748366952053579839512771588450732966484901644720492141520572422338158978618335349542189029566489712467257117772668830488450606921533966654569640044427227648168021046099097178114378157733585929421625320634916022806387931140967102340788929779256390804948777881920890015557521971452937475562608619048224861607651081496706234112041253654490697206824876236475177831673724640085592750159713781760874338276608087578452617414502679854493377623120052229744538788380533241767409646139594866379541939161450380530853351701758714586874275724660585449127574090081546349706180585736351979670688004909726294306671038240294633347705493248793076843401467754303081412095174176271153952080911924647256608057985273913595444678308250711135884572013801586792076292977670658433908527631375187653187786382964430796684296035376041078095854454375740200415379790204896573763436475394524431053077206984716504189948982245955990281393107880251177656582456865853543368679949839903262368304316948956082934908269545970496857021936550458765528285401877985981052941425930870787949634929490029710508426162615274781847617926903767530892252891015725077646715815228771498471192056932107466722940677180754014584729021744691655458200194702771977318223746617206623804290370777340483828412462665192895520608133529875383602614518320895611601656219212438260781826112070157141378409155388170646440356077095198891330505937862188653456908349862024337620513473672862684955050283991096888251101928485323421671599754392111143363027746324670305303080625117966184813942960485567475501723367311319480476295307842615211156304184857532559551920000493186093286142797448580724398586453318012679357949913200888761881056981123788134908798907339992064091567461199219942453747906065812691966715409332176569167527056640245269028680478872983501400149003846387553754972951929965530593939558308497823452946410071474201159129026749469283898481692260276616228188422605900605179076087847586903453693349143231162869860338438209775822428086039357018176896770649240034525791823302874973642778586799042050190349189806737169699416651951242997762667020015688158406047415987571179390817033269672665398565417040248018406186544561881706426772211655365445901229356565574285090463231510566885271082044531331885288868633282829839964914343157569892678788158241885252248409341029675889845797321327731514562942343667685147253258138710108280762270337800638091996331402368540647445173248670659525165674316791598068845243686067256490093836956961962844787331404808262649152355146433185678850193424220581084179270091525833777259032626269411088387385611183898041658269079064515393294287104880756170168887387143567600751936768374441072407956449613202544901040329194449482573543107899589796465094905824317970836403927938978787534611001673387133730114333409063265612435167711295402179292740741046992376775074684674522301948789322537295290562945601853633359058759994533830533440012105474292377530216563639858836744314672265827092699870841082624141428532493062289769772510525947477514174370357967151482841290429762011939915962748880080643782188083255921768092462544256112048348416865511080700480389801750334215650454339869404156798662834049835919060624776445042864894630323467411135817184968473134489955260420706576338232064044715022863003252233994368311715463576507912552183580086401131110189395426004624157801006176270936382600870005390646347762736299959731819263197372130810079415818965048626545789330354271429216306484248077803777175471985944569740158412168060485263805874718339343020475766424222436136711175490828821675514956642763493272837595113725285007639906068864208598536861078710270122506314234823150095156150061183190388173333501185376557175502826409651680041816598587939904850937195973168714553957220100475129972862209358055817726749942755541492232738718963973333640632950670200131696974709701599228949722580045353210622009958539955337271974637710912106925701334128673861365432732518200215679132787915976289730520800859729046882153651439399581717509241263687929006338087605389973855543984846294688751072231149725027572642146944383963402456191782855575941427268790352127661791239812035844129759863595495816509392364662519239957963755282366673741283923978732552756513039949574764957638282032303439219228543959502522498721520078917399187453039183032175590483117081436990112779027294973552445580413695928461167134898717664494944169550309404945719425643203161439254132592413780383136023533702455950587178754711023169340951575683492549266342811011156489978574743458528826290045485280136797948126668787152949975630340421912423792756677968732692534424313322261863255517111081945000047805626187728195847415638769905089330236106835353376028093676609619890293742143554950314815181834306320162231188975329968311313019988604364246301613745677353975863681096808097427126954140358081558421199465076983130616171334264469024953376831243485762102839629498803830558432281870045622968576643990053530376347622284622532641898180057202737194300236465817816503411976113024544565009790538199692066536567990590971603228283694842468395807599245443630771049072520100273502833363449407318167734715555870314015497747055744931964596932017815422201158696966273383773402754265083993952852804113320879360521228418321123203145560732435986773756312851001838618572861109013283309672403354651358792585023058155644025635878333589451920536321181440063622819357868512770742929356216561709324081703792639208552317274540766527433103842318311894045781583475124638930287559459874724847596638842316643488529453360536834991152291716982961547880117924880079533635633656371822652766696994842292245809331776205755739638552182353898823170334653540040386512790673861324520997043100707683154025636181362445481641672029565801934937271206227572562323481392513028872526924105033687771326628265994665220379371011729298958687251496364514071521194650892881978917396164047963447549495800549247524112991370409098397357997093432809876442178773076808722447036091327018342130689567075583129048471555426329409705542891629510009311781490067365966626218843241682803031542859857520634675722463337947142570401306541517401475859795138062394281227254114742765341185876970733540787915651575483415684506107903443171325718351011429933756375652898592982514987891257867547456835742007105517189682708736600027828627266738707052014517966512184916685924503878079475583973369720962323581688885329381882690848236246087509526240805119769927650041208717571909030283101553228346969694608656999993987369949695691796517042676873338767253643027295740261984021334414456848822985712262929416489231925471060941974868291513617557609944585530018411865299609591316864715245585295309460204661497305975544942955353759793156575280338873022285211897168823736137410402705205818079708116154157860055999482098784742912756756148621314081480984461708881493947500764431091014735118903360976744925240548936486512683786271417796986858983398550984382587724409472844472584407070293812120620696324641659134267784385485559479637701922614640901161592737036942703338482138577723454571575125710181453916117756460756668757684911310857772041038319475212009351973402603359078917762849929248946593059680369187403254078490298920101637694452203581041505849320726603623472955660543894745540431125535334317336570936271831305984014709851865534010776555072528845919445812310577626280166193036044825627592669193584965854399381152538087944406823038641638117698082357216129652628800926470386370644830676659438450689954810799635868091799860389038398686743357203833201116783732552384739442228205134387998758096951396933258819021933285999441098735534786766375862922481281124933900840904923168597195668708945115202129131191486038001590238683348615990714366708326676692748953102889590032039245300329124346681941156645983133678715227662558485823152177717184332897881135494108386496825749062356987085729364457712180227945345159697569344140763065608296120752318746801170944062428005930847093924594394907646188358104726853191401634390089478055342071210494270152166528772109597452902259254624273387135122092995256733752749146523206611963342058475272333391007318400938229934172484447109361275141413543459265889226338113672957105063334055861748919424692815752033129577028451837127740454432680474975133296186865611823121981271827325689438093492421975873869762077836384987247381541923556562278624467386866071210773963378150211920222102236036490574012584624643929794689049837115272188832800603646669779284302675276821486282337391204330883871731092174132023811343832295523428202748614551677213094849069099967986384784838161475107521038921516618718588723986802464472304329845705910972914387841923448733437099075000163175817700298228994039276201546579774021605068544142709386578010840915698655193271510251019538363628508364623096535401679291048209286551642831446967144309565247393606456252915081676826954054341890163414374200180221706792525707399470515528357091248422434254134340080845178603115473112898676618626742539545155695043063354722577265355967574256205752031767362288521510082574043290386482502516926439170897588070251507344946509511701077777610166478164130227167285495844312464512495829411168059984726059391594114974436482072100384494721293004700782927377688730937402975517561341282642871076377094575437428120702485856585373794286683006873739001535115938845378163580782229472268712004627803041674285704642219305056079457933044624210305741031725700851215776691682198628304035827166438392144960952623428596006110170156861365826787357254857233194260941651907749214133671095227721890503366349237351780808630000746223282796289098570705266669114749785417927324627744991304085542823411795008770389968663214967716220429844796113907116932567358886126014929846499002627640162135308600903659657975619362898083473739540320204801613052834238123804673494249707274296291329650086449100170176810084949443239672889716520277086031454698224361811767110673551823216134287423348765367340452002916195871636394422333398464531019613699624862418238719260099330264033011809827049154247065265467024703810685205029703286473377192622770901467818640350698333522647078715690643140197588547693212102120652333554331649856892489757209090315774510709022186994836696846023539583802480608998801976771425132554867325768280218000470978024886258601792344399026235001567112772753194625449160804291299494243761624906333316972092654490400077202379734331894072780995715614762186936733646070685225640293321190589420827571990152882682139401235003601900825725524726536059644623679627532818599750015273290132735399781208003793700993161529518994654865701888348025459562339195085361059624733638559743113940821108953398376460523627008895460637056887088135392027384924941319292141462160974931122308440897033028808616789309521827903078804406091066237692918681689303488682372111513024061831662434692211507286405219910563347770250273177761283019781205701605756533969049087166336015660876323903071616072899445042749608747045967510723554398637602788180320621555544271404969254401224734033690616745364883618000323026891550652099126607920165492718424898245120691992520115649860627761245921671070301697094541566752172285911315559954642106588393290071324853047226434672828892713960163633609463143765479406315825401799722681464883107301479689255566411471631836545496496475198030392782369542955959886250320100059002192833267873969011186181168213251570288816917841710182142230411834733222701461944888614838613506072494545226556716844426929094176167188884014592935526803961182585412926461290954909458718428113894404105059163060369651882070479588629106825588601441417513500314575701062066261342440820231535139209875512810314404532555698309584874997327442232135491975130578443149012372971138204276672803220519423930328405075722319382123408154903668920433959744084786727112732004741682072188872059324337108242777091564137936113498419216109847220795467710419983208679966519680354223599866512467019858609576848657963783455179246910975948234335204255555151667039588263933920936057931873769497234222774552817887054494454152560733852655006026434420756520124638597960066445120277893763691575190292302172394784134384581642048034107763106384725258456565356614248082762983760899450489787711125847309610285324826472183295076056917130354488992808419976562107428263757248930552469657776571449894147520031559508413850911481940941446233801248824720013942099153575230795565645171905597198381831468199656994417857432517571053381369227144458002949919675805017038838083255451932104126214918915987943036192525532179797158960886514981708617295873534876577725310801079274385805711298120916309097292384082883136303050912724636773399036194862412377044693634782771696810837907564447301434524292326531377109167707559480031674872897344622007941120005691837618830836533799692414241719765234092938046545008590809148411487476897545584930913680577612841129328311378241086517904450286546694434868021270967784199831160828518913323468107810258772741336337863875945724990465745984704121217148236730662298854357493403112834432921691159399805270543522723367719295147316384250980650787032244430595264453164927525138486850818893211043326014067810568730444442403596955842746377233562091261136305755211278267912064606598776770967302794571026315494190307168336592747921663224154629771847782996152884016291412053059166630263386508870461641375627097574942731134214765815113461914789059013384079955483721336826275230631511474273983126512689027813932937789620542703024431665094098974159454917865665424985832883047754468125300349095524738609335850608458546187503688874665592687977274422286893728960759324492967338039308395242175877919640152760112776384697753702146252350227958835924424723918630520912436445954963514964810196003314699235337508877498114051630720931086056156470759245123298680661723636608627192013354402774106605470444086730116302961130263327678992595737289957795301872357999422879121474616990664690618909704617422458018113837273869347459980526790232686942312177764599453463027782144096821172387557613973652371961266293729242888593722896506353519631797021701701099634552721806476325492871360888261238614394563288285787555924147690801717756684705907218431054557277203157696662937654551419781108521764696408961645090644691963231137736090445044105428407897171160695724176403060112439777197417404819309958555200226582011529577785450975781500242489095110449236864722743020260298812833953269129148545671321575542794660852173636498386383625628548678094138700264268415247675924927047652438903449542535481617708509119397006230846441948752765896300986542021493053075796286527142070285736459521753273187722234754553746756220942065949007426477117941581891962069008707691030975565689161914017069128074980568352686872153049598973690955725072604573075765860703195908123016298058261326128797107739194335488979223654941081987310353324073310128168003126245362012828070001287374150009271832114580463590837858123545119315329608021346537741065944914750821595169026612330429102038769750669244424994938528118479598215369403483710644411708404064002169282754189813024626836778152666647839802946019681316985519613108671897545406724998127112605878833518543612215517963724592663980653639087658324345232800958126039073512339852030769830835688587998737388304167198398903731672874217587442914624693674561701253896411011769186975726482469224856497795646149266599005731207969694840101723457806023295657834526974248541489605027069519863160673357188155819692933768756015087173290146412584958535871331702548883557989289365097807969660123350708165451361469239660084050763116899299206835389954411110086152669368783863560473986961546033794271888105217455722587831319482554189355920395695272763047387470469845989531099033755206565084071657541097550230222348121597138509519960530179411488230510324362587792220793142219282587634038737196982572847989351875071063050477217184112875313976831528245674216081762686470655861193198598112605360430670635619306158955527173911115996186671536442499673487759197430216368703037580376189758602202700154072683836612752790339964936994155152702211545754876108347473220412360599525184651441036514102975316994234559245545655889988709223711526635270726921538210377526817789238725515435420801103478388114538665908706233631123953969061233220998068898656029886168547125681596907824446522303889825290213013018136622438684641171609872494105443852964308935407097077820645202472424156627364656960694078118051804223497675271399807110170180297989648718623909343444367449769168665736822793508067626081635098710696725522022446209756472259884213661883841339619707881785361379377018285663012432348390268538440935508950326625996147918317806783248076692977439442135937175683243315320148603556568450496956490228861406569474648738691691837961912960248425896005989639566543595857317727935172607455731126873321325685211805943186502151517988330082031462980019976063629069586614699844448268363329687119501415439062464612151353228199124142203560686977324680467402076469017518130588262280879970928814102545814690362629958082744669817428461426009315692344265847470793740876924389501762212285458731354108113513334097318560045071150330441971626566986025033902671339295960142375927816277672042142137851616862815848670324065164509189508318971540816600498531127801038129192660059543847851813863727539919056084856259564581941611717478000722095972416589030881417290442525043297758248414980450835464855578751153525893323192276867667780766690627758125316096565511460802825878325162257853256267102504456764434273507549788116270869428528172787495215588923302694428860830821351586210256211495937593948720590661739552825597886550302523136588609878006392910413017347736451613283293642803644525319802074107795206574967338707529371534821781525639337328966692748627898641360975788883407554736889384932601293165681210728009043347196967001918336455756821814241631423391039364888605918710261003556947230610084396188591773077617473726590380423418130936205035944922961745627589438737978118453091545316834903497574089049940358627644502668575872033627302006367002986728882225166178291039225994313787478377648864561717448148567145849742948121280217077959338009206711662318887840686698281031238852417556406394350499651680315427427333296800719232737895054881231274282293525654643359519181350063835588771727444333821211933326638236340871478985160398463456720436943506039162492190106268517992956284658298352453914449339704683065421745960953370445854379499321223361649578857550407563719461424553009757004342010704863507725715302361212082004390450000638520657279879058210782134556308127653725060238358568837930370652237963952480527146908375891568626018645050769113115050113659242669664846526697565090364749572992897165307942562680761249193439956519706712305129998796374310861569396967145817722648407716084745274691072576018296507048674294176173574351072558459030527782165665882224094214348294939774353925996864454477170699929405915713109772822449286362634308138330973664181481283235639705262199591823457932728272067917606241526739445821151114453386581251870932345746883123701011758667186513730466597719244537016579937369601354645976507746899170626660786236957385042417008624485051597684559483732367538263502326925815667025471529128535389723767601828242252051044958151022770888442122558466818312198831250656180255323434114749630790251629339775583589035258361681177535535017605681630651699734568650145099628104179983434431127231364950317671364795955417788515706731381135584517147820239394971914001291329264336670503564181013298688454732543067835303130734309943225193175644113073963330492832060726512459128916068683466821471294578272449890822015326025983669942333749414631347493823840930866959124278325302429001877649490462293384672185428055752751944668707617228894913464410828004221927474780124449571705032102250541070911967210223384782653582137302307164963055702872422742419045031325890570537536658302396310669129146428672076344301678467011097972632367684957652192400320605200627078008740242002868025276554700223922327362359194479250406482878573097111786144226631764628609240285350336403931582034125153172939963153267245319182847127452748213624054325320642976028157303736408842037611642329377152448949059288964208946380277532964011611803211973197891300983546199957039474516462867986296662799596807605877845639249327816614781321329890593046855349075344123267005493044402783192915649350034478904896090700087436126291456978117702377384054713599242835874452665968423987027242779440134667547224320059203613010499798688989145830665273344565283389584233797002358966335470361710458348821146920426502537261758881348624729186591261902547569672737109084407015889018560477560062718844888120672096700895147266172100913399986939154197696025699935426941503738624604721151686195293833928637971565166795769326174076796609814836792661385231313935664646691046551718125920070234856264068226276936547435702866843127655992956126910615327157123265987741849720691825322144274560809366175995657017554686483897279907439537963107693989776207249443122364314442712459305728433459840213202237566064298318538203757949391747376480666087552822888924955771209357312791179599212618004373824083702969596272026884129310395305457647433815500062543218627121944309192062078199060375389933026613950847304575133005862837009771391298799459978221980956983671418945289673017458229949258571387651807863622905432144824463830762079444008639440979959468845820586146369744236869087289933254945984943041401373719762797545702326869585670422267478931642673449624086861456018797575285052259571448538895264051015812100026591342814406797755449390603776814797570620483357244592258296323622232532166253781788366601692565799668493084884939477094816601287207760727262631606785329194341668911462645734503059269934974328075940121475217009478079409693253101609164687296811408709400386622602651324388256091117722795450384603231310418016347049351966067262804625921144092025295120637801948183265684571815657294082968564154670983390913923874397271202306013289318949764082934140633473286538436567001285420487978602357422005717197023002960857165033395959208776891050710688757522399437988156059149885612305134935265841166953059570055614221807845787782379690976820529153393741044321153157124198188875068076403490601241810651168413822256027112861406328093537621892588895780145271158406534483886265979978843776838817661027818518586512591184885358117473191414861816177679143954762334831463321963242648648267066428585401655304052741770753925018235368040523697199791375918388337427319650952254284500411854918373029100903966981291484232358268130891748318942537118759511743732532841387864026046590235030064677916408825343277781283502062913234141392421647309430167664588368738909601429557764091987215397502178205881256653232179220204137567995868853269476009623205087669152723189193107177382037030231145318917620422507644766945358930199173297171081671494140562557995358531398282507438904244559078088791104296473938537021239191398063492674010073100846511036645097378998307833084450724618643473636711276831360125286915429512352761624896792307026716100003617336534275528334490557046552143566889440783161904571930286831866927292493050653603753682678487457614433436570375372330657647753809835894293107988188287965194773445592233200293247428554652969939516508581230498289440646319984819321631671728018910551833184083348993721619458885376087833554175727780919612883652290989058427982491628682573696220933348403631604396850447449048756103005378619287741327906996754849319672401066858462850135439749560693602792701755188287929225269834947256528385918116938044361995535970764512690756820295601050235053513351624791589896836362068943639835743259341660965125470229265300179281138306442370488703814298180143650059564891681471904038537832471566327712426288096142626476642949512591315061246036896300904274656029412348397142407682237337396798965545495313399869386617876343368754081926503419195448129467471451328510918780677206164616043496279115489547305263181551106916836784320453652658486789812553952042913767415956996495149024547115782890338575067310874148901307985771668834667885843675539710355838172828602756547555262799799040776640783944995780087966309676504934273645502819554718975371989568542571706225904972209751423004659517333955966237546956128942603721047817671207008430544227406080673985790896488912451664432394197465657480745166342347125098249322198298035393107318531849987389358960746136877195938271132156280187766610243477627981052368304669850172385586028634561121450966964194987144181587675429495054723204135045170456864903692611743995134447239021634494675191247885912725729593442357504573279879634315528663891287116441509175716789980349434444696436545498713020930832557470579754608340700758286223856296375754715163528968316161071930866316381898065970164076022064697252017939625138739837079195434068296430247813244547150564336626043413586633347892616262870102796460636489079090361017727632849717799081648648622718926225145636767466312946770287685233513152092180209612597681215338654181856769082631645935127508616994468529229253611912689153296263107888531783123578025084167006888704609605531298510582652678466001749529142155404095560805007767334320864442160169415363721630889557422044899428927002807535111011828036476278918811800528412256982439852669181607222158174212972299421349692600411167024456333760231142231217043104789881512308310753644176456695502202231949380172467611045655143436624762470590026456158508987775122221228035742277465634423616124312674347797905631856864566729499939044157157543887000717649635727682750562836286524727588342981500717162949076895774254328792244846869995408974095381590051143453328769915872790406191261314923589564773289132237058953432700971424239671279221074081261083212316154206485642505589414124884291782221584638765216713483848495007252689822097338403613906490239078935256108242944747365959607351390554007934194555777957166748185887338492183384663725422708592951630985214611890948563241487928410550808298270731930972854027601361117911848410206176574985924364426125509266599696155988874754429890632899788771175274378981239679178088022460170561979361461192771164767912822181077578728999809634802374582459069813291916295971404701739373873181509805793003403025848710639073451754366709665135604375433763842779296137446027288551215849069145760357278635734879717608482772020478984660978831454033211269918986383945636506053697045209289047318333286148316136328747493734437175455837900845580952741440938038592792138500565032094616554201374166108784697373314501671921521559363796730598102163054778060115288556171599890387092468219887846140216502650832075521317202374711923583196869663291957127147050885008488506809659015697363130179721397973748426718313227018280926775190289724094378823571617654862132656561737097321642055932947468467391489345873602021913653700880416746620037667274597009513034909619177664357090355469519880629086497606488407777672535095995567410210604514709097483153466543139516458907719132855903890514296448560682025713329783885191854656385962391490141881841151719942929099597801025852852736112724849476842382041672828260626206551597307145877569723107304253696286558707240157077528080865213867629601844376027714563510925430125545441901199330632381984432042089674640020915572040342274609558191843820941857175171139016546733715778128875060391387717274275605437834778488760693422362502836718718290491745288216542987310544013677288692543505756492801013821097123192953510633118506914931668375543767498418160949859761128844586399517084228236368944799207198840187803625088609309272452292894698443691187366165000942388379385373548133664393324613012535862608940723740751693402638557937851749893271239367728893738312961995604321845217572166666571632609923664036289834631154698019560763661704524990468996924577592945046872480613631984980008669052136684783270645616000199268308579908559177586933380359848583407383980458148303916253769461869194756122247353745311368516013438238794149796579511842623651326621867582101068349857188823841093574575860006259846780934298602377203164922776581331051202816981770286297195615567846687958354773411728205839774386462780783963472922788559281655249718553091104773085417912313588819042198810289761454167757048334784097223633888413733503890097607811193694738685758484603495876415802873740643940627489191892995493163041520179021044711074696536924275525838073042454002428945455648326016587510780802480069228324003670811350153639475868910924800991489613171014095705721464580915337417863854895607228906140896534810290920678711222661140919680505218976207477029074214966965331695935809207651554739481822975095790907518057175129005303412602102470689657304328195597999872534847395109933089448797981824775403232391406595754146281097504970146260101738488388848776811865815321958917469359157261792695282239360065465474852624678724600927686896660193195838078382007660424275758083159359608322589513173192100523635845147397507749592586694055432839865928461164823726901965218930983666174111461545524858515932009662924306649654293491028539500409231820612048974267134880750584248774934053113442638685001733770398380723273951027181231989752442829641793336027139922988934297504848211343873457342571123504849819824938574821221484085741301205387798663744632333795082198153773014405907450018642154615642404335387925169959476944214322855800850868172725703450783772097808339187271250430600518796707732038097985584207539179767055756662538021570374905213185556805681695839874108267496310530287197902526699005976149666852889039272429707610526460177756671718070134368855630108550566277806230291708686605981073865113949514564190553105011013310088137654871536528193265937932682444990676576999390923765261317301107524751108162794773257594581575306741495487004882219424056212603940397920737882033789170555164925798667700312167949375178408205350353171025891805181866685472158412886807726317217980827134402523812862630748014145851567733665049387846881239946831819874208652934571129943619219747507414982876355977580417713499342778204888546958171453095421157777784629438545370395908578161301011027415629564705368119259017219954476432569649073345257016429524352457692662080184509330736746553785594337049866380654683686511255916564373895873859094740414852549446986758112030739574605994786804385536707587053402109381457897064076693362654703407180973769877894696217110226268321326365698744653103961128729556136692528001927549698627793397686233145028136807294133451306276266096350923872421926557112127659312996094745289189589734090765440545853790932844341530221533848677995786828812163599770904384085546338711884832132471774241840905815423212197030162070330238899681915145661978406685103504147395540501111335956763724666105303154757067913227942130063969033364186927325904662887187393334689583711122368025224302989351215495807208286209800540453843485368908809612826268100117456099473822336905991880673654518517316827994931734195936845418348918577845549296465898138344156179705237434658054356912029429846700899001777046665142914940524380678574026285457689283298099013467852469665275781848428920668925621797524961710244651097582698415002706578823351195212666831046142621117382266350636650893001034804712256963069301064397822638943790914326030581799293629612379299081668687709885474407422233057987076789876737753024679449710046732507500873340814181291574881908843199907820789217760328524851218801602978632360943496834271469958846147520289058997352575887373419726792071294536392538894975116605620098522972600359028679665804073033063531051503980001075911701793528191442235409804449863619132766507703322366024199765057193891320017761141397354451958716018043817076366245162777482590791287126695509682672296581801633040770798243352746991570171521958405418110955527807316285438492905104422900353273576445052153193595373103078897788608630307318572516292716722651106902141768001197629098929935299741878906600588776836421928626208095284713938365160976751885999489362232633598684245970429220764217390226684269540006597283652980422726435193929503352412813300117352129872874643276912260249413280192083869096292517079251742790581770752800927802906954557546054855591253806902109690751721992721057667979488102223509530670786026415918749151893164253288300840750551084150017645412394617848657388308406018164348162378381893698072747864562681089695735387796920541734605214114459662309192758163904502935163222187002242582384931655220076849318801224300106750586478908665662243958415042609791031556511513656381809829667518303225944638878259082149123647499360718215767139405385310398998647807414668859169379464965825604190481087662424523268366724811335482756689682803069009489318256364230977570994285432003133379708725132650057138033273943533265732655833369968446678075343634338288709990168648347468610658506484271640320173298519571608416545194987454608511753901398963066764300662300967662846717765596237073543330917883637155928698375714383422966014416028718800036027219197745897068521358070928097573435701344744762389515729362870973959122936250381825824456490444885642827411308063613340557475061042773945711802299663352963507036027911047835432333119664645863841766954804296434500213911707629694254511946500972402830408032077896757301001703051315581149428684077774953418049745809266599997491987046418613326038340692086396490293100000542494643989939649346290529451035122683316567263173456523293212855708019379879141646061491020341623962812165320675775035796923247502744094899119999765339423383741469548790533124855116797258436730836051122072855817725220755945372768773029683318467283992100335891139301926562554953462198848193706319070848834074905102314824004121420730148782661052481101393646550440801879643672635841459233894664120591153731905494875002941412990435645057308677207391866539969447907214994161064983731223696431196978466373373442861573528935378644293481353990630250009654912319013182475191251498344708790230098953395641306386249649283608762271997669979105258301360404909383846066202998719240019939261522094782861629823721321101061471885263776507130143111512139649922055773932096419593698662566687744595345708725302486089345360133083860931710300453803752738205387121745710150977501910865333091485504998191715373553643165532734048644583460465458890351072015299400531468585197495087875892271684914435809339266760676355479315143349310116687882509303057795372297191829528277878805730741087425903399475399246935874633410680288875794693106915394119919147152404852002367375398753792604902179909952001192704410221258618682843634438759023522891077149583209709451537556791452508425040430629998132785488709146798763613921476526637990620809827613245992503371074679662789808789947772637257481060734478594540754375327348987636468563355530460436226353612503663198070008755808708837471776462645101894794546318042183983273560464239474279839893035947540209902194016709698996627726733368848165209429732813120039979889624956594360327782476274248840770021951281492580676295473962015108229659834232591270160030206372131464280024402355832078720242181557501459291965805722895316197640048535080960385471990883888463171737345279628584950918821064119575742726139019959930601860414469154382467530669956180943960446712156535828775383916545286852915681570466430509943617503735123769298201801099739904600435739037718362697981921982861455765332489326169064392315446918440088975528919329337812335144310156637998829200291795944708356835345976224311767139791125531969061268520080621917304770297826422680914818234281271807803942820665357950099195036550023925582650772756358060502005685175399220896050469413825344356404568616816164814266347875896158732746042996624823609380154774872720464007383420426054427358382524860171332166316240212067342598304103418305391398010434981857941431316325412425241101326840948358194449329716052695976769128721110145265508446250189389714148658399000034754806518596076761687968233253916966259422607868200942424100567196518523668344089328263050460182235330384041585156706737020129796786481316952156691310230510065004390793273176290805699192454163761934160623927371806008299053594841823819366945142236642004280583994365550823814441378509169570597326751790846194270411078017359876687955099265570101082573166283782512616147750602728725187237065789751199832447116287266222727984490832357666075284941052569390089094616005219556678785387060448205419358808448547480935570778974400709841308171220316053338790683997361782027970112364857508455979016557439473882511089155544678140595303801019948687918027131941840422633084198909693157187159955791816627875399435136984985784717126194417394044669892093206365717030846025239828370027005751860546239887122390484477228540272077878470475465921524244587194159693967217087766920764813226479351011689487121808584407382926219915115355752917774171291375588444385165262783287569905700065353665795315027661716350108936219546402732278139261722883646005178205996179696860733018219670056272885655941339760236158242104345807005823012215657074934867722728635299118994185401076709962868944805322826568845423543385964854169581199745216714196583143730917394818112139034452285416760321168657424349272180778943568970444493900254456300902195257808261540227773810943684252796492645445850171160993387027412141314279246464813121425262251186580269299213513415142452637739626961160802937582917102568554599265272380020423586653423474349889641031583669585225703657564471905811928004505577756568041714868037552446211217114075430657383580729787875004534974000196149273934605040013311482338726754284548686194327887007506920649749327575363071731524387143824631805101248930891999740291212758892482736103700405190265073352421259526248582111357641100834376218935881895022547880582417790224461923984509921029049019391364815336748796106636554039440314996448702659207976532111757702337259143836966379801440072329597450497899214450382016962325964948616314441327537653858912334634378821829708018404110646040867823579733066420791207284782041408312249639715433990276266162961853349544243684002341382262647830349340459330864090409558382396168486295110696100554204335839409136462205402794698705862869910286641470669456235386837133425394248343255060327977481969281421374821741931760433564504319381476063100771329605031473190547216029677567710669106666406971013654219655257595845734824423684199388688686947386406306941582366162190895001717916899572353142038360328156527737213428783023468099109404722256078856674773467400884713212956655422009029980981396656376998894689075865186540417769129109937908553340060100337017096213021141097191309141478631408897116743340425570529362115347589141541154550896858940438009886376492721353295473581998857098737606293152225829949924279716504273439445701920811714894124201674862766331114224517660012848660172232296523524156804859496666216420529303726795752839554505244848574740742632471578139598055111218170016843564521271782592867550350064367914083118550270165222476894809560213547249834135717044380976083898317898823593251178484784028562633396696216726337776658165038811589853796125912445732142099474588475788604382115979408393837432822072204175727507507766113298262408570571860405802752561609050468523729871262124263531556431044136729572047920194830446813616364996709775248144706047504504977351467963075624090299551813154095318900383519522589300133257039508674979052444211375366635211134033767807650935860806231402359774394948319100260957428335491856619412006702713503398322435992359575681472343790082063650532076615396791475090005476831425477798433975703192249275567840750509439885798854670358322332102008624984264391167037177002107017875287405869218522900215116434473628002987963489386738107769497339849491997911364769478297393230501182616025778792905391970618033484315536022302202940097844781070607677794255387265073588974688682807776404019764103898673014497074866368058283020113632857241233293542797181939152613819245036081228127752067698820766024712929924963062890938644906706444846188186475621294535150564702224364486581894533646682160108518156720648475926816361571122880889936762057391637474503262841819576872809770429397742613327498891337714613618328190139766493426751077308610613920936135060361432896742499536569767244151201742362999350822187829710325792793304191165325434150660211925126872910172688088735739287980896303366849198767554321216023688238072247745775775143094011252340882976895579379828249482861239156572198677998142568334488738722480236718904820681259990574669604640993314369430713920694057113307738535032568982255439561830507001371162745679625821505917962747491980602255648163600354899334033238402639276872431850073624559389509799883269413898702350656545199130437562151399687160035133862374282496348885131501103576402741487991237191547886642968589895187747543949053579528628618391615731955979323870511766128395968275510541763733610737128260004467030165861182806102586054605001401972634621902337331623723195682132939796570407326524146946753609663699625944650921922781669280458906149656510620962608759656566228400972292225346841652684083169648919548235059106832454056109184748030722242081149481389414877582080782872834329436827263160381099393141758362692239836308382447925947532583519609265237085425449784867801163826093709958966159144389197475532106543534670815031988332743709404652107634225754751381411707414470683728129622446373408291458681245301221217916183771628530708595263173430055463773514075195643823876155092269066065162206827456876046914002094974746621535627205614873777985156013315281867631514415912475031286678917710950842206672629201153947364739797983058254749823943171764512988705658119826512040471660773403072178763397959072032727952988541936693367938498996964653624817574410754380718319369927660198747091479423769501775490291326809803285653407427941636796909095617016556650397629128349912840809496873613112901265847446858626677787312873517337460608432479800654973733016952662215515537530407948944543039316298930855562086633560430450311002013471266598104012328754539698067382066466084138319584812551507068079447513441976203079034585030243138626015838997793416915715871817339256289654439119207812619340374323525017068524039820069817094582263924846087531406897984858766362857133275763783749827692512496902089744556729061282215938618057382709616580890268985931836128243785708048836987272552407586450033225216323347562854200235388003607478714515831490849187637280899920953499114199162827006340044143633067107818896321908888865190921193893320236821627428855570223097635382159412483171037621477691161466511671478413843834418570842299811950051482625679481343975786167651460761829106189255022398427192821884402664255248739716689204433134013688341990449194341685450001372080573172707475857397047803238546438773698566193277834074034704871956666601931757521465972679220203238411080795776326846750484556678452841570713617302379071356639824116390130286481337818523474294081545943741269579826416383602913593109596887751942181316136682689277847841727209921647909953933668149712916150503790412861609690761527177999674509014823779817439504406455257196982253536987057134892578857960841996719747973141686133752737741873675303671304097073813829469729227422865930875937559239575234545556793191648978925950972275091992963016288105960684001544082188429052564246033429961438084426489833570537589061075163538714004757073562117079456569232448468749218796643374064731009655340841383115400095016634387388104935806017249824034584670799220886125900874992963675560659993087656332224605768864012823567105025633675729910027636947617270654361924156327785219945845244041979493953304794621469920048234801922381483118917355262952051236389165504721428809443464603732488023014653118302233907223507559099230574929232072329601538187626439823994402506736361071094856215294184992145899197570573468247037099423984341960930978152198459343235994969300530094900851669789247109946210628271839354070345047535623736969826790017216005796589808230229414152811030716829533650905765075297835153071097874135477990941947635347337193686298174168892147345779796361157770552379348961822841909246405413760054496215933283938019065172161306646904190177440409958847190480576265229752764417902906048859485028788993577905082878593252463130666163034399039622115373757107849343173467921634655975683396093109415649784780104191730899069143168001102217898252338995345691833218627228129438011100969790901906980639542328987062796929543627797978842115359210879437065254309607357963098953757588365996075997896137866004074013475912211938969223782214850596727970615666464725515764652917292629591187059564444794398859902471169081928957378638948665489022103902757846211292279048723337979134508510393803143133821418314143635012192914843034008553729083931768857446293156069043802684709224789411620126850502828989391767148834155287808323613129259315283169999848616833671263400119743318653377447288984428498954601653962128991094057569066163962101628905722313235997326743552283532055439912502032446524182628101255612707784326892296084784625406501833357837501373801587306940819246337939863514878331035319909745540628433500629168235478692133646539633505567775665963450195039705345799029960518057072090415860165641491299867278235786451066571742865239308773132587444162883948448912756737814478009017523846070084728572916925268057603394755682881039428504860932440596335164648784127755811884771153176767691080055797095245282109545434963936695409612458245353732562645429311946208133260268644919369224934274155604123862754423237636248647100911260562036651216147744929933505040050221638876365855354041183562699400253578838964612752494727451413572480181379303712497546464428401701003753227208502517518301709023978390139588420573856674947540565925600567814285913529819356546973148296208858514571913809396810589129822680603452864367337091177533276549125031953759276478740356875048285917385854498819805808521913175078025423069537533389099109627075683205664994254584696582074277193520595577403365051024817661777276396165342260245823437945130776150154197312672777100518479346096936688969891697263868963443648915252278105056841697508657765081236687631910682221719519291873398364216083467078462194077795411096641731665187865122499096090051264362642267554919969271181623341297466929043518176984923674248575643779461426117746913594803496321216832624385899871620135407987438049450479513739434796897476804838751216683929860775574440408532403195359556977688932387907103582349911553914542393433235508729686094866273383771010827598829904348134962872955054385178888253207937895968558982909302978523950964841391621995574613783725217019933509212472884922873430839648024914925749571807705455601150114393257419008718492025119793620360191856400706710469544472708165021760666319053433138959881244830079198101634169058250667618425715211561129491207890142548263578242315893629216607781989418890188753155861977328779786061238618636036300602262641672694169053726699014234119175659842525270533022549054574980194770206540955049196963659373250098994787767309274789712223634552459145940452177518813861365754908982113182697302225199568805327140284490231017598259925750276649237175613187855732072784540709364746573958797322889650513515963829860326597878527970142746633734158406803757700614564961076163538177621905030427179962551349729919157337634320320021943639253517272654668502600513595820687502647024156896769485657250868912442465191505598436306927943942330514763876299313041962514961320064502615985967449944262972927060821573791215774272089223276511000417878930300873048650323154442619922261395889217871040986073383677103824099155271031071874628200696590910578355549995839386315983718032427913798674412288554017374864726742878381331980842141152553828579390392902261862185258354594921532009643020216077977897521971669710936993463010325182676578405821017935783577717303404585448355401885564169482663737658870809713444498267487957957588421131551614475206377681339032083908599880335657595281498542252028532790133612571913862065464809207153117020223355480991651794222411654579526193904887155466032449407202928232415547149864609997393683878129932218701202938297805649687532295328328236856696740505002160784731703879419707072805363210321666175299002554490261176923660285617847585047301547093453108835696730098925444084886421056999753044939915546812666851489412902738338008400233607942279854881249412534646623511410683059456967444782218213957600794738960010850579404175731331706084381530711837507473605481843510627346404431673888222421460165907820306342222215124970352502071181346345089232820631717462954610445438641318329905828442240336959194002044190251084955640702779598148603084335937665311142423036327244713479567379112311439022784094586281053327362198757548241796953609572376704182901830798383018476323352427931681538582256857818097734714381650242895599832628631729035710769278149996855788450603866639044201873626439723855467915507027568736126693268147403138171903313888315599767014680229745491858157557185612767972610900806221451659059947974476524546480166497972515005672725221590904991780135675464374725606945132840676114639745426145469144337750111642335141441888970568917961059341548215605561265770006922766352680850250227706828674469288135428173676683897262302174132990719822782146287904874767240153716820820957492967802064503241637186045652314573777750711753158708854284572978804502428801578570429262690481456894864338694416139659488071206875502832501539360132979258026556218811713568374326161067282588657782066804951370053134034140082271784813057608699126435177859114568704123833556074504247434174424214073314168042222647896923624723407393740399084689991915645729377593976792610960294099427489086179736801441124594860893537065796232479471257542486316802021411761159261314371492481163405304346602485179553127089759883318831179059572182909880286251181551379917617796890282168108710780495174944160135743453405703869918260319937055754911867569765978226823314886532181687522414861247503684775557052952021204365044610347085031687752253455877835166123658446912090545353700733494864922846968447811231439705624766885320455472254704732834210045131370507993052996332341422462218584569087447646468228645051382645877843685646789686285054847021788290487693898126701915465017555794857422343463236262898668828660542630387224089090368741405848887645468989651778336689872849341281603513126399810413782366348999458363080807239567951627536136028370676568396705913221043774252224639635002972154649016460121312878153161557881388855213130708833441726090757315567363904393662257738059343793700548381223347016453852347936447590898195829567932781965328520384398315964534852458003321498833786848437465016412852838185757310998177607897437610998487182020246988426825865678516750712683773147627775221126095311062532237483326534962780623145170212847150663654790858317816879149210845908255207950844635812346349970541954266422308328182980056607425174371151560214381893160829135482502223786948970074463734690154574232777959283044587456614972464672511329247239952521414335978970139882166991795533056368826472016606863037549014188231894437827612430050037234696889862179939410331353776311388851310822641811752074737239965582008429194780979995110642833062750391069389793162839851737938163096987774111747480010688450875311196033210860028080825305781055171675618580174732927435228264406862546069077748383636289585457919062692713020137040240688491600417356823859374225902847165478103706421052806732466420373990855773935402453146917710843936666811443795958135807106595138464831675964924726163785980327553429555974479479131504204543675438759003676826213043562555930861249503849838435373566978833702342105801114688741901846500695084444905368110279259141176172874180850025599615319765990491680846702280268844066751150499244850054762463399420624260452465711178770279945146330101516641507241849992698730974080991892316640968999013241588327706765901527881361125626753337342065557295047714149707164229381701116093072619227763849510303816740052559514792212705507721608386375636310342272463588454926928754543490978266767680829776898275934043250125055602828010163353226052680029262556321046619502782620096738872915166429724882155083893951258634403965528824742640484539820609677285233347021101185287043060026731704777890262666939954242637874661703643384669614833560577195333588432001876673677684602105967036346685432505003998668915776265879475144334923696730932432664855081425684886853520944175118941558627365587954020613445375882554109447486790221620702711850338789692927678679203086608667217025728584154587368315951314990657082018572069091667193031473948358720502858632996687002597519874598159894669291689573642335727529628271500934586954107792148440388612140667288752031300505454466801177137510438310577679682492204568102035314550635027351018754979856146020032912090847845583313978912680292688279074770308276750712411769090239394986889219885067828402522308142292567349867988114961185506639050078517845393900214650157250235824012331784624431295437322957158665923571873706688508106031168648891789688470820110192308034406994334953399152389296925814307374057968848860704590831921680568652475935325818792613068821883004487358686219786849226826213862046537076489735311221319531710872395027732628457771394176438761571167513370847558356234604320236705067095722493340975141564153477241936088356363632573542583260917237766760807118059466862886441810368439032790079764147129631218807271958793532924100083042743579530214591845586488230197160275676372500459777392863279358211590018741612993659749757060492097087623211868457391922521572610780824480232398616446417266090461387443352785426825640899746818942589330109186064635766104684857461849564011241332038265512037214760813923231769493595476629726254157394881749174140762147205509191206739750031067964738873103246746056670721318015775869951887653484259565251200112457836959201978532593120255829676419998703421393702091416291886190064862667156522443136067160356906086688775415943270234959137176635128917621130437105854864846490772249785485296587974779512971428815515846618667614550994328893984171843468938986947621438654231337855733270175073418959295490529362663079328923379520288100382626908170697785153637007088463757777206600276522160433644388002530483815917496466013777150019629524287264644124049334095717898516378324973101168866896321560565494281044558008644561308769270030467761834371659435587075474098660440222437032307623403915406654766382223560423492517916391801918733701626318829603269896080808050082740895058401765035266756497991385371804994132452354243453513888089053488467906182793526144350104342183861488374710498112538198973531665167478921219999536467416321744004372938253786139707240379295470415214847747208320223323712107397008440225973740387769876578142180229466092839657345471183413423902784944237698622063462909573684108927733478473614364327375783545546733568329478613415123467315366630750435185704819157490523461369442304149425907257151124804882698022413545010077354069937758780467711438877955948487021504610130836612131399495408111046067100958561552342228089253779168149839196082456426553318503492695755996327247247828520571365729296528766218787968141125262187218378841410250138003449332785015185413467023227152622133437327524663725788232474604022625350775446460401240770973761797856284826965092649478942952144904711958603881250688079519801684836480436364551117950530165906600075474266208385651693749151108316292370696886725172979619005093136879874896155800469053177335040634345453171807103358909225926923075114392140019154253865991021311187396881005068125962581425088519596029415087293444901399659756315812993276848151918239648850996872105992424549500630294034063553742102201660779454834057995707960247137046464527984641433212366310788895357198633481327123134598260269265364113818681751756160021551635846610497390295527010019574697631897454466028030330332603007087861475617561291288836511420100077847117249292197614325385373065723964276730757505896129551643525895193853292599104560487402252439377062000190653865961591553312574077596548814111425489064728507676998082202860896836047457307943734327781602816337665043193354950839512632261152612793545556232846299870122862684379823196024329889642342607105396569400989574255872508323930986867351147204214990898860600319217003164794456947956447707061457740368727887387342681092337734899681392246661958529716733647117821073650006887201646946658703803006439750965117786119790864699132814178998540637586957911818804281997502331061175932954727251232497312639344136111298528088871794786910458852201703457292914271820849411108917806082151979531578754508186462957717636442453051560035002962644287893613038671501220020579676239891717823431024404785280956912808034389702392212576341775566029343989908475525516116658826941208878642276780142426545262375124939044638651713174415260382455569502984814038975783399952835804515186398502853779420884379889401155061241917796441459960382132969496737907580091628250748849026677505890015312743146028306635776915849793984280121406972108110055393362559851093760111333309979062998571471922785629839550151890693265394344244498376405704755704162071874866706916784565291774561205814433017953739626181163148896777879471156190431514063584205736999003276516308871495677441901231609091508039579530827893009020527622832198530473401331576850523096830916556976312405755334878216347482330974470862123467746324655955653308869126850449255896324863007433882594676214039221255360423076225517933493406394442409069837523325506394250947602487530549998450836686074260658156486317583488985287709946672337124187123530886132706255492543168884290371227295751195781488827293148897632556523951669443783217276317707298110949718975262233568743818631822479566251387524779972294663798507181023231779867415023983126777689818861428131987788094842955302493072533932631648086392904702610514791701699990947171412628168651207558862209192233854119609744732322877310874744498740532432242520871171881054640914145917019957315232830176547715973141109815080780884475860470775157316810759265693481191871402386533648973905745336188269127557522192381086933731570050320709338485719482284599631732877518919594615053765671948944180655637508897990230805075129524222716282082056506439262489812728905685279078079164165771966043358295962597471775476434164204414901279234485878610821485017812486971673412285208368925173916481994715763661442690339982826305787935561062438235396224488280331841536939137376703796433194106859275113508068618978857534521908057286806954844303534837232689294994305089756522211272136037791451207236561395330085886173700844592962178354255121875567478635838002397031542999536963517748802122687337290932632634643915284189763745125733187862048360762854524922910428415435180058019186776887490965717056547757782501094932030147414822955898249757655679426770108679315647299284210791383908614999365802953243664742381957117310941925586052248143072341494053437322127141387410357414559663773440121951876317672651354786906898805737974368373750236746684196502785884269534222165189991890711688856330990626217180445007667811627861483825479355405338649053474272272646451048647914673517887171269943509285655735410295129152284174753687191089081640816586611860791089050925923500082297050298033600661838942179721809280074761884625137610108320183291298617886303263799146059268841735300258414328752408203833807578185637632893860745957168559094296854136435529535522470839835958715269496673867011915645485156032647277797619385365369211715070699880396599735322079104406571273821272356426510280863300188985449985794578813593363322758643927355154644809702526938729012872297473756965592994291899332681667382531280411966768026805591021760113967742466555123519086466540890985187296863135347125060287832965811396433599453969211591864444972863734696618523341730819937898786083615860791385178214709009128726194745167911998663295324023513624005545605034024731322755537151115669065816768358752862125536203741459610544506219404750829127785589943631410552296205593329126930273539895317841821953229877993059562240176303994257490177640420900461023608134641310521791083567385370981869079514569960469103972017518558264458612570667213428411474634902345864892880995907059610828378602335816477962510519529464577458610604848935583730357026566470911089082224523066880741425070916706995868845789800640174488430443014355019766324332756719285185082427813532701280726507287877774096796165495717368280035553494914568831451438094476376499974886904944944846867380559918962653543494209602365048102517210455605805289650062522601166427995910301852577789891929227676582122700563200976976179527362105775022813197213138631373933936195580052182030899699862217952505689909142173706051149109538615544455149417045730343121331355343109994077363896309754119888702880152711253547113724762556228319397186263266793884212845982308620080524668158667176157012431883972610175453821810616426294640376342289124656343126020137801251298736454120011788047511951400255460106645912653034171433141157301509515735265297460734628751128671622795819734798294199264811284436757274555441915170036515726484809045784376745582323224238468043433728039606319879912399762106347705049977092902133859387002938230670204875740764039176783377524687533578295798393744280633198532969040828025474019199300383471203359640347967765084934100686817754597079020863092824408063589354760543833439723616560662675210874164409027702982947714037220938459598963750644351644990678106595283826353561109021365529784112786270814272155776720789675594782441351793275754666630741764542077924577546819025398226793029859863834715845112483336111383913403740443666734437629152978542714696821124460782928598655949118832830788033750301876922727179271933485299753645352629230742501696623668590389489424219933415522170486271627237124320236313862868206616489529186343215538268918090097871617690338401033653276975589438230676518581787702745086440549524497812798019425607162219197930276102533892853248245067800999942729184826437444406470085864271465428955339577628699185384532384719920879793099834494072570481955022436158764302097630838105526505316644423712943826147411350349442505806800564161502125797936394343541600778967777116281633922904233392115736501262107814835394529599258807733129085568970745479498870294410761401720214057133830441555767744556461123921433653414762100857197196696953187299071130360935626758136497265208453972327978084084399247414072024297591159009483964860557172088366772163057591806317361993651154609045258258512937736516704074861651046918904846236240726311105046296309123986499419093753803421488709410666581981611488446144493500960813099156045443220894389818601813370261370308796011057335503104121565288885590224720423417404016723394535741092762233090995365861471699384780955011480254643260943874340232419575467144170780268951604893958655310874759930390136488294847735124009741842936364670205933791305180556630130328164545662353502200526869535020898578645134817754590422489189097230525663076781541240397236185621071241292784939211809956193890206276823474540871175043930753179429529674097747052881119348248457055663760165275687469216069414168761543317414050729608595523765101232618625283076157901549745706852998246601476218185585462192496215605491094502275266641984964333449869348566353324644463977152636796845997321073863595633882910942840291008558407112661851840000623349223054973164061974702817048732753723761281926973630778202788801077567541611669944465788674972877626566376509766706355105969611229452417785962955480105710850167876084812457395638942771264122223436715565531221372302725794207603841840504313012092759001787357958866997589944636748606764935232487150735006596578027549093438102819769981793817581770293144021171854583514189894888699166502981557452126729167400162214195820532035854416172632568785042648739758179508488255765999054397011019643809472403160045408964251757252168488902122810630360398449705834096259175824912301309440726895249630195584626282120891840164791245583700302088938432542684043750699029292063161019589417230580680538612996316736803450321579574754720074608814175518253439536177490469679280838841821416792147920061792607850295837052936253371693326657568818371170847416862465757019903594013399921162556333046015081437974970073399856599798368691477736654647666896291332840696130427126304372809693759392675911650092430796545428425954429119914203505359088617739990837231277954902670834847717202161709705676649100796068077564498976715034062508554616341190011536659342430945596049426999492599727424906746792590805428557836242149281860986203633984806354917998146171092464266730305636533228151135756405668857016649758030950461073613102861537186549665814539614888342058248806209861436946746336709876397138009108199554368526143710021334843879578931194405234850834411228040042264747883959566522996997900297042403220954713972841304080135567700554763340780628558201323417231352382762631437060130720792582221887879147096432937106374306729442853668911712374443743623526015467452268782155945698839873004287067958376097065024582065248006123185908380109649813460940327838676200463837451337228065376810561275865025959967789617662986332478719413119077738657007828849836814636945744555415090682757919787179697470078217064561883301985613101064601999844062893320413413596069584225361868060883881020845736191491769809221828904903003108794000763643626732723844179272717603779554382038318714405841526777315917843086664932464440636755694425258214997854735554973475789582039486178154937532212150049267135825050875210604954200992385845279614256295370114827156695558325542523377522220555000239932645500754840303135229985694159641145148435147713079113847704641431893097890725381663498081325556276794472391120711608935141511882549817848901310389552611674422250439450328182566561315362863744464889648397087638996818314123593342932726759043075992076339213059862463710150923368522098240334953799167430818020802782790774137579070659167406658609559078953200075634994579590947403727218825785024639258576520691745937696620033859350432444313055363504185452348242554042160830106443975651446303448684931300939469297924615471810597836983068403628948514202386826723954619967157145582648004036838989210498935928646889530064342478191950990069958815618330060764205006387099421812336416666478781111018480124527318896257836133124538599309856361802209476652162980300226681189608057726486198830310412693672509753123010261804103149191482923120365302511033213467853059382623977592478370900697073238622765794381638640340548150316223646987918103347302987149460239080750462857641132602119258632939915381486771920632901911919129900114650860737019497477637186212210979692655772718556811890649786159582125622138558727373670395503182286438875321903735229117108547598805144410325760012535323128114068311947403617340173672108320163874218083925823959595183253018727356535448483885223329897451288204509026054231698985188362782904619997713908670437525260764149215964942098886555945150011367243175479064569794302179449630430270385978950581500818132971792282012178320829874309682671620943417142714211682013968018113288554299987643098634154461427474190706099360920399787407087579471861370987625577128353574725514545157745558946416344486282990969361747551323393149336694858521024588747339216248511246661943509254263016941619393847246610815576863671029789045977456290678828996764172556316201620117493393056961018184019888068776962494899764017754873048548571688164744256030378302654183868315073858747345075917875764926547895395184553012921745515578666246660627835358807512453443310594020372527054046964898372656331031022379046192873954667398053622964567195046238196239700389247532640343740186717181893354870384688779566855957425691603596175012894243278886867153912677076078881592005070182847676863812681120590731777123264358367539535262748767251802468511828451231824672207299092949148200239717991081649082890830594729777425556710685083901926103387840353584192818454105157765633460923264621320602605356221604899885572809707016306506679509650792000318912050463100951103331163837500096110011705401735732794934925344322039879165609358637747265629836208417829174758182032484266489055908149547557504602696870503280812539658489501355294688940538962973300747259485190989688741800881245788192263087863849565353215447457515349081827368868148198308719498044525967552078502891721798063095400775343080077481598356648777121953977724221150014784823038189915528644161159021686989646991386285213064070521955182738801928639403372814467687532536172061131926838754685903200151103747016627499434949892223017437801226430948428701484059339823535274100231742272493313251845664562095656478346638714203943287862914504329209496068269411254867012523873917124333263360127843900058681182805662739506532869919875170046423519999870785943662145165945314092070282230592812362355999776574300537193987444939254977175831972371176916899021482376419723520688173959105586782389563344176714564473497962814568077069914721962282888292554899513744085005521857827573990496835648856942138856702568625562967535599928956066700903129463861390136039899016254737632418766901171843214583517117688286814701849971595783192965732676657075658821283524994650905229685859402038730940649744087808969867055203752687042520273243516873525626479740376140740952025378953965772949767373027795192758537583496524517695180488286160571475297695981049701091557732427932724774696301452332667521400508386435098613541610056283291416817213827488850678025649379926298084065593348723563379004010006624823893906338013254377216943757718187105301037976328261682340352832710510284784823578923149438054791020285726208240632869162542523471675508551418562840726979299424768580595829506955944234676839294484344760047246775807783117975859690992410730491508002649994109331732935519117926232846901641690944597264714680734598404817955260524667074828772295682611774482200758318649721944409402056868680086690823768796939069891196385370237281090695713559032721080455976461010344525742037998006399990138211791606825661434429826158300383947681819195548903385004863220768863358760972009623065002873577207640339933058257856252159658815365595239150778865588750966766584617806879675609363533649547615977974825165297578865392173721304305015857551068161205248531225689721875961057884194432476497048033557783175878977243591899452678353605604997781836689663318461290654117593062846647123991147934633778610663438384062499775300777607941309201635452572862080084857576569049901956606616511225790978861804441535046800489465934248208817052791273731076984211831283527497817591665535339337282758758920697262595624304026004527842263676544730992494650506959466169244596929666807064633081564405734629767373143291709821041720425049696570783649881556850223187395113972217917705411689199566911605766314814273521608668329888151187374286725800479459330136445229692449599338501998820505566139775303750774154193649514501910419074544342746719932877534331805190615788207932343464880148747805790434526099913458151947510565463247623185123359770647959654018767637008700622007498208011058191345563279203856947441864574049449301253081491213836420054936033666544856462285972442592305314938432290288964281684387674889229325700489396875464759519822562095196824997836614833519116292876516864734723895550785264207880389646072135765169290826563152161484488926794098850870155236698674389788442521502236079621944461881501522880562199822959286867256016718475067565358684879094283417664078134688300228029414564688071439779030119145125992555002231497393821169394459211565872979459133736743381930870042119873094312342663198975689400544104510458299414957267277235830557057859483938310668797799839534054592869504426826949052098554613985262249575698093117912852443532689258480784784426005263666717824601709599114418874206926767088267107847917229963320869479007852347124082551611621893778116379609022430572820404762004617985801163673687070700683253226414404691034540776717895609107535843255741337221461266849004853844382630955085896963495774866547054104466080032821475493031941204523887587328436362328339129619576844281266982097031743627298366871984101566781206084468948112104390839056204706840645890309877830107377414107777382359554801205334209502721919665615771881037310861881221688325397323490659517535851779334502967306982433308703769507161762448417977631552160648912430782822705787482939012034615614204764973229905422714504509507344948132441957629440207097554378453972033140849340444883435666710930593199496881020944454282743601541244087128667306914504477198449198592772285719323177714704953522177285058794413217633320269955783486197112327085266710830089541834656788749038191363669399504283123771136370128742186135789328602074886657303713215421418346205340582119641962026466320081721134215499957127786339774469044581418331664565988764200046961888436727936559305141901227703909947867950433347531581923155115799763740289779308956785005430739130546521405144956718864152323273485559180838676925282652821960402581643475532231726071873354032448349708753040057518347285120583289273306944615644092211944578320387914125243079560543041569308950834420545754565489861708395039035943961391728793244121641217506045702053915017236098621275730398309260937650339591972265088694682316486077896989197483618090419160482548573985198378554371347221379535163259085711578815650785453260454969422572583045633524121612310111805205201051832095301033571535495938898494950186281881083966180473690580330468050284511178702799275591728305395969177351346951611063336844944813566299469425837569746707940275533097237553040216364039958775513047102448718684492047292551793945799144936110203346825585180630859262619917929231956333252031375633565764380946335127382139553439314381465896828292730622154571027240249471544531673664942419847119159611244628434887318590997657624519576192792007936313173832323906557839692980129011790480612986243427494579719636145771874569291604223164329677177729265251257129940558822640534438103571512734691595840390798495126844594682886982521699176137479933025184050368492111735564480181389757875178606478521409277068974832596855986551238334756254250754786819185477561257727302436204347900940563055836765403954519454980103721543292778131152515446635145562849624922813468482841562161116286864680410666375866440195793276680654060085720252533606796656514081699015145537242752149697656567305333541721347161085010594698484893559929618346989162266310189975262722700068617057961005915667242640629613948949914727394920027078518221512090195218513927076486368228078031591818165814845997078581699427886487136447953100181755526611140977084676789835005971822086670831102597335451219519240326056553024228086791242134113265961915147935644133474416439728793742470697894730156066385009256034887647968601069021968788623260360391084591629873708820789692008634951064303689555611036506348221046899383257468310840193850326239883359649315113872792346148949012550438116491697249389375130526533838217265131491524803281076098838182357373676089759300552290382222792171655065693056530244348024632972328703760457709361126380293210371384257864766593823042328604410822714068872949118512222514816222755917185086777429809297097619051453696881820806304239397415162444175229177738097825262057373501706029558455459705738593972907598030071389307079762042346153164570772134311403245845722667052757234730991594439243875634893273812629924887641595839742095749207510561943674510910805367957483325400736914058505013140933971146183500661060814288278969756238441323758023048237074213379666261247941813811702526523709796067430755255220641001572554041626902813939650732941374584336130234330037293081939360136559411892240359626749910160546124544587143592489364459773614544443641297794832277728658448258698207707656146262616566640595574311774727869166072811630002724117700213092144914820689558243493867342890558765904100972583629316192092453261087978939434406240944371470950626462009004943944543703544782795592683975968972539677113245550867671800527327477342619528983773713761111340013277208846510035571275106718260563446286147573862098676693718720108854343759913173108995631815517928409861508909957236312686673265660454819653554777014329257079720669498155952126445058665514680142652299032830799698784591511813297681662092230802312692274815326430082121758624518007012470628636986119357228469883755877518812331690658973887096889659462080634832325588114337726592044317959429082375739971205897035304750697892069546083820407100022857825193443032333220197277509425251227629581217448727242552707065083222790819615669407518562095894521184498805199813280518793614995576456407693985860925925976303646021468125180875181391949470396299635908305220214655583873416919430672995603424279085190743116720453273156827508264774024582181190651604147015699173360753298369883248688418670087779583272366810788538095269472414952586813519670934716312129372592536855714306442853475518762734247586970287316276837561194798310498721849111424265158563265972181050551867109656214814166996153793646642152452915029869936243285654069656216578051189153001832402812906441801555779210776287436945114598798113504746909894359513354687167715236949425061807203822855559195103994184064498678792211025594230686946823894382716822119499836702406870062609534801442164397243149971033315285513265536716925604220513765821483063891709118979294260721142426023694336025142594774865705177472274974856780716061357755684352349192821028365214524161835286569710102581227788439342458560499903389306105170958321433493566695736520073957717408913318400311139902273074615243944708162584635777135503585092737090092862761440822133709349036386881503724827878501565508194957796332536210908347976097546102772791797676659332540044462406375298957297811484754513232759884714635187135854719951031662004112514764308193971903154033556103396726915855761123663676041906410769073391408312268293166359044391451419838816195815078608886995022603905939500707131204111946976414937122867799211486305015573836026810641505543100276570415566382333219827615719486133341150790854373929019428031191824212174019393311644342405580403192707826190866850082266289749703132082580692033101780732876553534695770372657703942240489288206693014996180497051676375764223372299644300347273385051718416791284900813181274584470626271941350740857739581968283205689911698194582117024918856136746323854122652803800879473978615578009472856118408158466516616523523351092145330434010548738078757157594424436923106756777697397117052826166510925401096948018427167575252873024593872384679471936920846142115227784549114803380636904924865866238698206773056416426931937374968303891406735342491468706944940616585368567097017735718652922156152041388947598269048584012904335902749634919628488756590794625142379354021738371210481702955041741423509400708605190832898412117084728412103065343839166013328508807467525554799902238398578840023983577267282158616855977362234523308038856547077950790774918045578018648021140617514132890187374869176293271324194273033678044067750528657750193755758345973068433255228552839001318219183529239387477868937263336305858524685026095762804241864891553420218303743752608052676677649994377998991342573180143747961148973491334306279072715161657833197053585953587627284735666545562771873542412929065054148492699997492213694785218177090801233487097161240149671753417696009527417944317885419556035637270901233105106220610617665823713450143026317079818514449373412160799374651300392264310647959776382603924250502171381777687372062934152356066096509414385978537108922057503307629520502943336515981396581842092381655458565299557806058303223695172944267367309291911886441741728234929350885059166231313263793568989948584170167407698275896885214472586110226123807863207308230031451006866728168586992232533385138871939587618223391619711392944018778573664349784872853905574993820964063744323163068783720297715861281603520171282203787668180494025880962946435364997615646980558824526076688707308839606151836556817063440015499887424625838431418865604950459860722940278082608876381248462775357355009523039927769772375965654108661708004378214990820801894895307011526561819094806590712851914346765868774160606434319366969109838475523149888754356053811866022959956589391226310344704332006798488083807216008362732999618402577817729113170943409783371583734684648165042246773645495861972938055154157382182489660767396996400510467770147892425497244302687353031071670584506260535361289710014531622230031650841944466618038429172662244120154167714865195827106196984006268124115244226163672895092630621325964283446808404819701609435408364420310948010246734546057575738231437347873856900763086826173427490715561291841855734334574102673507012921371855609215711957764377552218739146831939383187982388130010273664031531188832363080303795041527379775254281705134040367028432608730418434609600839645549693141249671775381062315118114469410462563898055850423474237600371064460506201743088050366361446357218706183020724296772517593021219659294491596422909375105348919329988303912449895746651750412118816973509347493160644918446874526802708595195797019986265143945455796017671187349116083024621524636653488627493433294014347519450063140270509781520717502686083582004274101195078215446665662941344501679262544465142630736120291286611532279873423248985107685283100588041724845920411296734359686760079038480885319319867872692655027158638407456463823052918775830784496141531582625098620120218373058728775693920066948992738940934130601551263793527211051056281858236197653224057597931252730108988666294202023593890262202939397683182731164875850585020447639455293885231156913971572296027469601310673440826626397673914967017481687822568049413847697743983802489586675348594319111873739856790917463628330879434740569546105400519125893249041150570712446913192949385948119012877531684490371750891923485918948194733575708170610570168333141681143440199614003807827282559590114021941902299222168265853018730987642023808232478740977931106621694695824108540687902419559396678474229620024920595389126412944256624938502676757031899422963917176525969166066318459849821971212738291297749808747353174895386838842603809408795110494931941161054535611778462242173731930634416654031186513716566977369295132960867761687918415976128328961920529223357053052784194793918480690470297476344953776254208339933378556392655008217066706625467596166842346157548175210427424966500712499167193865406144370368352424374726784176263578478519957359214116753025740040955786814006144695431004122874632708816153674178154641236956883718114185517227136649251798166976938686953248969205702045365830192699682064103313745903445277684199928734395675187925933955566039088170344663768757310224873922124341538235652924556096046917697098087326693742383206075848300451900675174074688563536173868749388015933170513780036002314737163997813747483096156176298547153166426926239820176246387619292885582208859191435586629940001417535963702186477181391918206681808377626246091912443484844277445878950213681856004187107321522674304869252455218095006293085995301105556876517357496820277689456873406952599606669975707538262789049780830549047026269103912416684185835929730261554250374816630802983618513413938618014739341870789353601303890051808984434043648038116871159741856732330211622401670760416228336909837917334163530678616941607770698344952131566036435368971812056471128312575181629592885905855348888489408011831555426768376178840506710301986991637649892689931202820516907667278542563249363028933195566341044302803380352625917770649562042597185557811509984489189546002366478023034909061264623875903458968686401144867129995056709326585467155389965657408595880646186460448400202458747562980880525205380007665351917017983497777266889943412562899079353598273519388776367506643834103934134578007449702289893633765282855661591867867344267377680267493791999894420207975669782440965839234508052026026040705244091909379340866539921357438763236062174577898345732087730461130523755195630744637057976488593177444519325609554125730404241832862825345448864981125017292854866233686206232863806702923987704258690458562023786061971902764198561614694451720950079975305101084906735266311908203738751227243134810145608595750570669444250046567547864021548510218182776328331780253498636381392161358577620840162044434142636346710200577220180040924895576010058725208550525567528882319600580198325801290591592717262071742091612414489292318407242735911904121910684811047529492918440477765337796376991271337129658312596934581620623671742089965124926574839072702370229349552890728084046419166941494142540634781283684616577198295951484003589378066890554824984250836767995889053203348630474290482467041046404097254922560822254104728860810559346821809027682082860501842256832173337851249614300212628999006368840704673895244427656532990454893464647967411853853502611088376327598095467314258956028846999651172481968674037740426749405188899851812153201770770330973326248502010716210120240346679722758729734395526949481482974056828919418511365975569355654386841651823443676465217949539630430949381569145447703287106303992747529286203295159982849018400301571084987598306103359916634083742645279274972176514266309165477172819697821234198213528659117605764720242285309486249860835627854021836797767992355197385601157507119728104299836334691320194169844235132918787072287489752837454558119197261567188944127449853012568335320230620255596429451439660811707192716590409148580182333891164437493260722032110405988472833012388331220945980973961974131810508313414643546464356737924681991009584755647919935251331784329265912196541043885447905984529976560640113134507483824711810242526495826953603875747836935260772802848398647468886232124923246921191893941644272923118403359876342409712285978628048428585569868154033137877965548779229827808612866503879551031692285012432388584483620007842980553990515148297794245968124026483052975821537310343819450749200032109271616083613053415029230629010597095120597118234690790658012782526222094234137968774164858419948536607974429472113702012832339666496841994515145230931606009380145108163496835361849387245480159001842007780579823443259210808810496574998595174128785914721284502032755499847766083941115699972913291411769636419418910814340816825005745786466349567404968741317723549336542271045365487243634840707844304886958832064214028324736936281020964945972955119581649016313484189122192993111966899353567788408893847920224621328165470248577707581060122334096202207382851856222196669302466011891065294655678781597471248436602713514186299483831894986571541269177951485826395984558382661124900976866288725029415403192971404748716844500726794754740905702842765467002445533172506002319145162537780311720543066818781114140507032186789705599358900369878350871208371213584888501255247426852234531665936335441653559012130765220983388109526029499231540371197851604502889309461948022404717027789406644900001871052908498872767772932591413067686124468251188397993752116626662018023280237325461993078919920374063820497461514901059045724194649872046009434020412377250065336811383426498166931722727410395574340993642359202836702504273925487184885162911591538661386732198163114237680180684680277233159994245245045407085020731471186382536813346151489013016971790203561057296948872732543997074640678933562128255647928603240341489775109941752746051878448824869350584730194201077250860557218154464901139189463505996341037277246179085032811567088582719588615916891488346439601758161419529485742613120377770971904331485176539927810131129699822642652623943431998704324953068137553279818447966692279849419082691047901930290516776350669118163351963830965661372524097925137133771580064599179607049866173246042278358277270822856168280285770889902765120135366824793114195090372925811297213298911124096556240587397841063748521326079733717693386869768990014544631789269484870975604586999784907059877598872613650340954822595550124909609712647781309566935205529866124409702302325556690992633477147158134321195887143772792991114577108655289958725038689737622970379727876305203670268267897790079306257446692751053529277839214678583176215776810599865657093832597897312329033034547582074263100515486929809296674690092419179896624604204669147511113255728451756038760512620419970631968404563062399189994150931756965934249371984737603222627299655888253471088713268184548180701750614451634801237399176738183166876556812927528822555387549004165615651070583907715029446438221420081188800119701890470599691605408574849980753370555022550280136324400410875195001386563647451183246124288946640635599981117733723969405771822346179171973363260678039868847325856942697769612260898975842268458955831916237972728203071628933364998042005204100661677725600503045924245793953636776651167643062162676193376610461478614667057649891042414729310852288770220456627642839590715878788082474170074850109828942138088080365219544960053666139638450304355769912566396058562870091793747341310999411306856318875679882334108958017316932508507762952263641177947766918400108496496770762380088151534707828163525769815012994742695319238420423647225490614186322617319439554060932972236312364979356333220846901611665721816391712850412771664739376463527563931150807681875256955499825463845971075152864969673516904248505156162422219831783081996533941620822840076734553301292865436048907354299074532943535613097838805355400869561741965174096655569575387699488515973217842793244236751952600597060135411274783508057632463679731623378185012947428351749676231230597144600702644891741793802577813129936916475944486082262781085649478980956702728395887194686298921234685510570759068379346736103097764754725655486768227352280489837764524307326823309373537354664764815254393014194508495941874446328523248789893387166686808968102479952977184579112551525513644068766606400855620959363783858655698074306167607045228514782272479737361724744138417542900000889671834020799505126855489370754612450006971973916408656276528470823187233157635246651883608761329697312206660239347288728498093795716726684410878698232507231702865385429131633933674445680715748549961478179139997772115441077754966305989999408645412291130738926345012854348913605761414501632693243803366128388718225400827998234708246731343085341829468582752053904645479054003531908124511489566700486655931433130539291257999013370383141774648891718732565449478958589008455380959628979175524371927056976947001232075212279561551830993413318982384175947916330908348495202241202507360588218423282875742063778889000058825294616769769211461006084252368905129024969721378503188858432495809365647030628918232444598595242218227041145784542918645623434229959210521234701216991647621664013058770341074636350057259591928114802869507847353463947169790066834240975193344841103685498698467253189660244123273609884850525153832233002776417678570519109885861282709339944558452157438481975950878103146056717081099929589676685309182965336151998240410081894953051573711293603095831001323236191594684300133042843419499056411118319742252620947714691582339894776851051491429667869105111260506959231513776822444185708976620827577766168948196496974149249567286774203212377234703144189688413546051768676430596804031993161796240349497470336500533109015334158554691377474395752292570344441266738344675137110888489233603580456221927093459570372011777223887828586003405636998488608832420193019212542607329878820500789160441619548299662126095478901395510393763190179087371114953014931746341258893819037932337572275025448279787172702411058399409606666986926571697170229663607019135347962775332471495653806163902805717571365729500980534422909041068090921931067549744020913721728276365430432709671809918072199541423926121185346433618504032683034591937503718013847156919445379582025295686648317158805374926759219963794060622567120693466895692687788906619898149394881612181635335785996398928586260376278817741154839555291413113519300765950742633618600945027102147113923693095298265830079976297980255189804199153112566913005050673867099403363836898581074700342900510578964388704268630933791822742598556040396087784749799694678158509362387062240742652107904661179973362668722265519154090912263415778845889922908175035406172157721589942873152984059051964220995893934168313657970138367557383218323069195022248987696339285818404112083720355131387695797087523100840118756111058850112834497454388388404847818606818820378731180649635043933648410845543653330541410490325752029183966389159440123281352888591679791799624508203625361123450484798322795627533149489034983680760726064097188976213340163194553987358992466797189456164029105382899403245809979100531769644919165143214086936386982321481128751739789090900478303071450217402219099098748890548191025124001878257304446791565842863727425627339972880534468218245606890382451579471439623641736710926482839086168663766135335362728222088415094099620230777404444160616896242073325069201119624740509247263521679610259144915592854972875946478227962398690890810894934291009001046110005031663705797102098823070768540035681142251173964636725716094679053716746965144289121055447916393537925426059041891103268694670862230276078149081050759949922006415151573828601183727619657296997096025563641484768829764672874018295895728138805150052509107056036042665177594170583873734627703131507610698985697999899375495533424503958719635149224246976410466864387721942525357252326254900266268558049070992603364035418389376039910364731118864247893684497474804328276748477207070286253495360068076078400311026832556004769889288312164653576998684269485792681658919531912306947603849428670817678157765761278547173304120830563195370438443715299354778553585562296767055107340488429203468282131347602167470564630440817262869997673695601549338578385897066980017344714653321744750127341429149753019583989163417889832481136099901660643481324858994672200307263085543645086344950318405536031632659331244678544335014963870134712200523123618233511707586236085082883596794575676770229694754097741364020594504260543834486013212540816674889017712605592402379598546155027844342913606739770906524740339520708308146723074155038918628544879849137998783997797443100400965169323583931434223955076256810363842934103984148634708881112105925394221388902174669044109870732030298528763649186465563494915605408578182668177531794524106971490688214470306211812033600619218032247572500156273639741291887998330783190481607764746929756433321967251473692050225475578042561303072127289087265635851426272737720833244939267344585824770840197510238574059407353770951217244766048368390276466936730259113756127621659454640148329290697631399896743576311375391170476686589443087033790718232709394149360261470524423971353763297709837614247597059374740458967535632874383643001367045289377152548932930549973216681560073519192197018298219574388354354682970071790002880312885971518153207529849302396290708589117421107065566950281931031310676668306088937973057756889594702737130461730260678793383615650532192386770620652665830228908607623461162896275107971030891965208558961758711554528529839834860699984026924678432838331134402511736365182290238718725825277259045101937646713107774400817648529702117403561221574231695094373632483807493425961931456267797282513425995979364111659231493955686871459354077900825346247655723302878516010891897448840157247889478425965776480005478923318799066377285279358251813000219699624812184300765811554766093824445169199173672920950923427888082063947305814822064289113568202404110423624267002065704863187647037101632736256709774662204167196482010913326592586747906185951805830333744518978550527080861718820944236537634568978233545921111475253325737909654097929800419087187928116611135487544397609838121767547372913499324879684921842971332384131550178721303220729323370265484962020998083423836865859962437680303402170742502532440554504988992359877169063538106303680728061229689191068949775840721753315186107605170684131630215645244211434508696351540094059018324847759580996732597513022258257701902057376554732951160051811021256221245043727632329674308398391979459420579005761329439096162329385382457740697179144732480247117132709467703119384067821822465439236672110879570219816559913871260201777055465396045902432633953587763679527288817764249246950451946848771503658519861955988784167282370449427674013805874297959487264906701150298100932368360987783258045410290815270745065831393542611474306538160545902331437863887350184681858075568277840670699918757874199194038776337826513955207802118333601674274048789837709322753502746445466602033226634563121220893275652818804954965104710171250673604267711302101118721025164601191366188609718269527464200366376800402190462904291993985299716087204979710160663572137813262148092607596807968785579666498935583085157134398401249129672468892946296277858308193120276226835211016435869351246949045699888137456912537607207181689764639103851760953656559338282036746068734518015082021577677223329188199023831321796335420077489762909437993234639294480583186523844249045757345562010696624015802150539261264207275940867256193658766525653884124604722466304511490298336482655236707851098183278992243682042280574698189640879057123797225876198377343629237507063531556653700710313523465083598876857459937052655287715114492468447588830816510370516879751047681104453523662016546538934943516337530244333192424229227891005801493103727691666383655435351511266037563091327327182150998022301709852849195799861003150811944108007322272850883297351345663755688197953824490579574967502089649913506184289474521736288813798532127424435290856866786515035295815949072691761216868540882558754856707978730485221576080496238961364205477617438564295514114373801295951841021674645475507883696730964670201334566942027836227932201213892783214411726873648294650695356544307428615332133286022164508807766493056365610736774763186510223618740028501059586499598552062086158729291846471551251832715407005596864994297767113102426158335344135867637681950589572241639009186569261093671825908620368071727541649579128744338322276180858110845825677976701075297677919370014101854764164867232580507932945103861541193209331610586559099515921549142175516544930062222444334966441297768554973103500055120394637660128963392533324151328122909853414341236394699582922966174360127476740956545026555481950941212851394125750296783512123381161772726325396001968537809950827547694689509572055452918014994790625957493469149056319149772215905798692704495188630650078928584300425732834384249200804616301103315306238463553525881221947074881860579978457884083931125931752052211091942149752867570482943475937962724004370294982736395081759206401669956692528171256924818357175351712851598393167415361759338491482908116745652799967149193798935659126988532044972234081678432145323965037364557767538696955980165911342792656373570984425175076173906275383358117893783016075478715695282797799036862139827046932962219786378070332505669102637264111939037443952767157541818610948963096423648059080164576674447963966501090964106056843529493615452900620819530061861579755534878778360155793666524754494833060207663900282212343278212318386152221774762028593854220739535868624843991498263147064395067962651860265533361200821526546155845518852806507381084640660037331872381541075411016978492359705440681585784198386776555590582408192197644313537644668906377935806977884214181373372863568403150521211352764644745356022356759500258138075950830659192413584597462772174024457646252284900505878505527689838416579226994942053998343474639180197987003457605563028315878563083032853453001014620470926725531410806291211060883567616342039070234590827250001161398724260182653968280072502974239808192767099648704980516352733828204764342363752450836099784445269994358198789710633836097612985099490500313512071901923535968741373131986480633107003419140835375791901763441342239400766602735620488688256875855697022070761996627378978833867799644130591218201884442388101864510748143152403606456828832500620356159116468899724097807119712750917745493321008743879398661561372151141676615520210715080485763907127588098089989149983077760229204146995917362010538577559161352017306983522472046878345550235730443868312264501618830302364093093645804055984083518379182569281803984942198940007457534664904729516542889549562443423974204409807898658012715519582671200972530518796553220606328986775394485324230239877144733308356561832501824889510108197452839989870229611530877227348875556253774918451316734722687891879399652226821228274457398344296968659438958987006465709140423415594466443516656867454311518962867438371127967236184024999176261908766459636231773923008745789517588120031321012356327128686788997086537370837025738982715430860302374126812897389917412531561812696250076204089386688263921507332001304616485473447867936031769157216222163858761529845958207718796694535535855763187166279021129245490461299034009783828846631952658649596215866189175857732229285055698883851029566095703253568784109849733272755378285123846938019793594450438099265897955161618853004447760365061969604168350429868105718345620906844966724792617644485445948070282925587107202865780644432552605989165837942953386426990802591573111568335131834478422537005067437786938226300581396767627140647022691673148566633014400382868107111601719291711198094070807217377182551959217864341704932955908037522724590784355871651207163200990300680955588755258165759009611292146702426500257018112367876133438379194095833880084170065511311788794859494441635197732657966678102581471558410278047746658890249447220500520137935169025578988509852122577410782141111317350330564434926890618115305608071676070621037997776527731819412907468956576095033245408021940959704603139597304977149132421801670197082583358099575234872586071063124846076638594573216259847370519162530137241893425945924894134766066035942471333922212841502621825940421390562119476167788829931334242405159788285582582666897419826423848785198834693979058664331816961263179738658636633620240258684453254866648645646379889675343567568512354128506073590458488551414128226284762240445398800468503416739721440278704378529460988925585964104646741197035716381936298464016703398266606690931050427621551761886906759289898381673036038240960088471591317289022471995864622283872711135927847411090590860591992274684670372248646806271913285615213642022609531430696684084591741193964621923687369961825620010509998760283444311970472555811178674540362833775251316882377481195127364266548318734854584570906420282986170892291152840963209057869506966904345268710093429084619761505629952985059077651255478595893487468506557069970282957991850144681664174962348238055137399624658535106024397459692478271097348940209458096966350111844863673701574866299712608503310061140745252476484690280681007853364160066454774820943377083427584384288167064546509948820430882021557543342215515664429120206054150646346117297359527485999743516862278250509712817462221959734948707035969600533891237177793804680261902456988672705728689953975122997764674584663091305518601141035118578405621511201014621220795090334953030654393233414433942172894793814209658960561215671981622520189461997848607281121409807489407335349053154656336064310720997806126469185935897897963799409996822349260195473535648883637466869858359809127646240608573083500758083368403383643658925221713307173418341194331881471384526509709646710252969696863679506594875744848224364052110934773461742592590546807376573639025570707079311192099710981479422432915049339410998220771073752880780027790671694702487609995474872859032246076029942804531813849254802833213012425363087721333443746731890454447191202266330695095334470603330174423871048596865385484218654916842307010733242934081796338037720810629496572903953123730031238694801102065240508623326975213246984447389885284173872991631600076848771146994415469231750488125958517452146601567775227782121281936374814896429906158100200176539907896933535536883000792932041546101737128946077742813146136429822620918644346300788875486647685556592082051060743565249815654350540057857651680378889111597622745027453285104062506113408415296506472906477543109823370466169822436622875732058381483123532140304766789728787434773788036354039338081205248999462942694891566810556143246654761539575808370072723886839225553615819660647702161463560543142679814760375607903745957837410875526374669410614952439833151979588917657611957476627925716450890592055545055653703340472835063874510264827102864225417098744406413231598001433310570786795700485925725859287060538617340142878501525817618500760239047972300980158244101630323428533513609046706056013045300218246666149467786541904832070335472454904486322735373148619872964736136143932568537985497862741330424338164243289581041628121424030025704289355851083999939745363126250643085342043899700396722152529523264101085346926845089913448665751191192723968036378891909450643914591692712068522640928442935567313768770570394089838943585295175335706758947567812517381775259410711446007998238442481906721436928757501249555367377991624429106640296348478701275097707915149802213315867299162129045326634346672906223083190921510762763518074448649938658630481178316190763943426167178940871882313373902234352897966146259990010133511877637392728873203399688973370392921403521424840005093298539918520660751632553550508988061069601409812704877791790612034714180707839054763560519698931095294559692124113309291795155238516566000517758821648616615283999707328864480595227012868954545485833848636860582022169759882839780336183628624292257404048377530342739956806829346141944267517404140524827324866881765766235244284893554789236542566498265642932109092036945344140432370531578443588401625360453550850456038474864695694437908074747572611032794714769039749151954628501642544348297516232609882686855531542944223393777116927975294074585991905893119586494527404206798605177964963957499061617122285741428164641027001610626418380914039171023829674919092322073065451773391283661590077828769217945921743350553703021409715517890854801982623344866562921700805810962888607409781715887094389360660047190120766134248549052751338584028990034060308294039118799268431955646149227219792578980529039113473091652167332393304441608661063872515471109634137565566519078874201931530386241838583880218774297814844980222792921116562843441907708415497676497584568513419813404445114807902088766359090453267355436499002509827420238488671225876591354502174695335066188840162251943579286345647235383504717421671117261925578735505492053807426391010792364960866971794779467605989685462812206474434001478919641620170565986200864034417617282213510915831537828902797884252101651859470068674600581992598744844692001801940185952380462814375269998681648479279443415950993079599926131859331956669333243585720454842339934342565245813359079921171353700344008114328172898993796335942682645425278839418366573556684929192426941759996249604725616929854012020140356141612638830682452464218543988755419166929046458354254183650308323370864304310185337408113204853489751987537514261938331175779090338291359703501807930942245435905632875744733826899051190409842014016047199473476112818472855213493530704241150975936709492582235052760822472329173442191351416311711175874635654932215036666972178746075577540021015354349837437646885251390523801212354416708657112433366301363656320790165786505253599483443492312938511554512072500847602665845984079226610024410803769570876153653644226466949717163788743432802367532100749867119455087284600002723535230555643571912297997649239940505859662668461354036578627713972727106554581049436584680557002589046522525058733800435979997198859178558683064600982026107970202575866377754451491409746012456812962545251350936823503933622019190576830358492367882884278655070729766009690778779327198536789198460239341351250518609730705900047162959156934404708702577897704406602005308573227752016180241935560287025488179454892936643298888001321486549963471242104707523572890898168889851981122860583062678978612511632554632807818096280458807072370571444750208055593577993476744989035906181693440714870406515167279302224625280967901003552779150591830031101239781835012122913389278949704961089859553547246837892350711138780398153684152692245342274730493511793045143718705542015190402237989175994823080676855793570137165038260540926186226390244735772151851621853376412920090099703768326678975153486398181585248768741908680707800178295809106643508783103771131195763265493311582823568024825110313620369131953165177066613288141614676995603556233699594396106104767597634629050200076836957625219667581230973731310961239675751000809052463227075089186598069530387899178152519953496384159927612607233152327136488500828858349832699947242156869007947451757613271834043326087138671452789671933063209332754327174103994581713725045043959328907609640402692311073588305900921656170299668612178748086383916022045703523345354103201355063522793837384336920056418828067128038433763657610334244009423691428525080608122715212751582040945421556094330593233445876077880183954333648451087949983081516508117201924084420089381840858531582957082717785640726354520449181770010536861985721875951656803082228182438867306322222197197349450587964374350195653199599343765611785814715647133263625576557721006217394133934838468367492373638042937732454238476491373922706879963823250319811326156358899154940420478183650127120454551520894318368678819621117374352649316987784428920825854832803212106226889055785556731313054508656199740745958826741936073602619374275914634030633677961384490740446800918673185740799193461906461348901854120756265099836139506042910341374325467510331084706827055356342925453587489853726655966491530806302265405598646005177920889354726012719569677443774233324460335636037904356824693280222544008100117071301209755974499398342216423671039940476440230524941158580653394424853404187805179130799650120768404321145312471487344634178423749925836373962990213842465872009981271792517783312200653271841156853282889154927791940904917975184835657684099204523712789568040859573375649790195593320081834779467022188794501454392621724614940579305086271980192017089790351555887905706725413932352639054024425405239516453696959143790347634739644377053696119041402717225596918520452813590349093679582900800647295342469834575020563841532808933902523033916728483684779711403862309443380387523841797118386761557310438306868377413855694920991715970499631241534546059079264553399346369823582452293268251091667902187711082574750110734753565623542918601580194585230081180421406318458136476118143164418063924671494807073590762611883123152877528646403303355619874229896286209420583310942657323466688134354378940077039974052130091300595321178072683771533297859886297469090906565333273107330480627654770244986161243595973111648426931089917825337355297134526367281507920167072456207585088054745941906951445774181440150960046573439027063257329090122319203238185421901625958023486387733269630161355236457436649057144590126927046921111515403167239624506603407773390811817556775191846916805487114311980742748242895647622321246400163088176389599435776059106303061718969838710627567198888520491024203718838328139304009999241287730963702452827214643168857411482379527917837249314641554086310326341310985677040504139710063758160195229656260181942570054336271337134199501750302826603948049226174648554213764420313222374942639327140195548699110262172901249685563633297749101599443833580715355541607093260489557444341852654818745366040874579308219871783871882561657072807011365189862869380113682905526129207214260331626957248363535095503954258477739008268646615361482584379140476354365050495585750048197069361461502734689552183511590338436573685158623604662857178884398242737539098088869616161050101149339006619708716562327056917211828141933501861256610730216564832921081350827277398068372462733988957804801079500307399181665618718392761249346196065932443848147852281704609987612580297928675427974558142375934297382023905133432245995765474591164643862185328142013420367210018424679677131643451761684755881913095368855902481964987478416096814711914777575447535066120544448080411438552972046415696806925574527444383742477626146881263002975764792470935175303529540502370468353215334592155716324537311198472697308109678201101733459972893340679873185741382569769027386120637764649426203094504615007423659784888587285725547754027475297157066966899098602832893193660352892963243582999411846453113861642883584908428950361655664570375781742568465786613982257556208834745702471789373884688428057553465131358918778575870169137867853201065033685405473708969043114495480154633539741895277749333131812090176967291831942132131286607174942173736951273283283753303855286296713631795655812890116365032119018098689085122236589541180502537290190007972129483820670564780985803776354315103408435924758522907280556715446923649151282768581356679799063776642950902851916743198869302867994610196944848977593166114484195670636411423609994870017740460403253782909872824506044337221493808037886729210528153381195854026000891423838128285780805442295163686877510888247356224447800718501898345915644284272989293145229700282806856486529311131486219214808667580040249026810457236743275057833755969586696319039110098686385101935813232738334625425844416407322457615219076613849803964526279039312288877736186955365445230894578235467846302170429891205633781717321650114405632925134386033320895533331085740959759529079526798426186913408062753460130423822851664220148413363145452846323237561259824054873423143173016146285547533481998088826252135454665138632338585296689636866461944037719386134964243417940513156827287633979310596533365457070962960747027273969887774129321551964874677820776766297797319006668101421658344560422578807920396320397050347681524303909546972020041738461720133295813808164218549851815839589293527496435552212279498208927543923581216468873695470002847168272827139014545469452005762983115124712706232973140154468465518663638675970508225146719846728379505839789209856773681416855426705189017520013936578712641378918532003075294695738225187435734715660459015126779820117991210150623608665474000079437254623712889682251122444456176514996585953783078977675610342301667501239583152139418784364440278110287521977561033749203540699356736715211836880422822442442503443381518866915813124415661385022791021460428004732068130675695768319180704474024738741855511733263429184503136220370600536054859373876327786909369826598890051160523125393418457093407360999791932544311324393776016072300755545404688977476574869617218118419696321696644463219481847203856650945687905325822845017960505027717897388438631979228456492451048460493961730123967626022460282016573355361103812231010635053146516325588762849211498065344732080872353505401011900420592369338119481983582756024900581948429726279200681599153328640921169682372686290520088033217020061525802911752589785468644832500464936345941096647397752841360848643107701127554617417742438392460636019859111067957831086982167112160306256497458514870182166879166326605154167405410120092043801363353264023430320032344813780258868919119576814083411864096250863060522808326232224154195719129971579138701865847794004422179210111940320939270001809433379978265006990716965351707060545141363609421135652735229054211094160958515189513671800296312086215772543586593578078590652564283501291362909460013038776053170951631522665212448335141305408836445643299089170514364976303889363194831565331245520753593185942026274913461804776981179182876003474498319284025959179377050688076666793903587094975159152464418007902171301226677352317940426700402484520005488179634051520674513694538216027278516841717402808686680005729481537291508651033040753510173555600981518997657905957223762427600608966488062301690825003972917188081713434646127687383893544376772481286672509555464958167337014683387058670339434648626842086828906466091788041814806087503779797186131751560116196665226759244563249103499770841967694928826024289116271333625245827033209809437923096741015492712536260913828420717546702647912392333833381437366579666405623330180076698716093655576009669575924261524926588916875281163159419105317387762032894806609204304911506804673078039434688354530545998093967944090218501144496349466860887259142022637526975325787661884710817440035865139436868227423425343108126637635521469319439586469259897471931694415878816447135685631275721342159088427308672583225545915223513963366734353560996479690945256784491193300890151359132637838077190630277878885708893460893562815139134390521305439887049706995809555488756845403434254028664104909662442098988612674018306353084648680242136757515786287536252520859946347674187694329734067178843609317137685121721409159359699509603737073233971098903982538962975984658043890301744643024915457044606757791346217275489054902482663552483709599463653988749333961964600048935248689262186623733446675527486811411437193410134110182931640948596435373807524661311880552204928895712015962282907417138418505213201047501726130608966135146140423411165896655124299861157072041524148398929991895153763752503256845967290877590366573550318232016179020365864067608178150530797788520715895349797958332562030179104540937674362998312150542414167023281100675204037555435645318122430503741457234564533948335078766216783750527034132835410313864705927679836076285318407223237357517800740670666436979759901541404903206167890379331606319417998558556279801214540961989875508516349486711549080426484941119268695210007551319074234555944173685261185988521479659371491075318625714483070732200339806086270968371050872660576454956639268294663142345987440764301946450532137657529371686450763440404157504307421721413257019202425449916548886718567631416398143193536765577095681179027923241274072445294468042899222975954003982166718932748892522797110880842063374785898972092088426274303550093092122825660101087073921967693840804787204657034849003112683536504267125996535322368757704544832661497706825083987591801851357196207787808908874301102431020087291004784557974517055061958894545400867466922134224983978138266691274150628782583915673929113592479986574039708964043095567898959145360222979297526937870245998849949841646450737583917691812620698405258384887692805286776354917699401808603736124597304668250487190831926018234812621139553375100687486849847993506097655483176731524428055912690092218324174510207819934942597828903806253366700006824099305900096309865431648016226770532775314754250630874591968399260214060708937058560805630893848800533907469729674674851627710009343803822649243372057649472112257215617951987732251752872953608196984236033599216323396321239962347465542367266023636622513079191290719514357660109364673476960620417183735442764076183333965898124480341887862690915489511238527784258630027034579351702346860004244752223298442135297435430553805095063916273075085207132460946248108011807093677175169496167484669007179270486793858693572543688488885996942933338768070239845369527301763626186628330500916002909593120958022680443442250992980872516690809434280572488783654227011859273437331906047567922636662977413701109575998018228684360394067864382538055646782400942133889907119185284325510927851589731335915926127969192701499521457949634944230442045504689728439674271458020267725290742416508479077821158583088295770639919451163846665267360232069484819238297500061795092137032706326875995699525450580070165565323644609829186814003279122486176173779277867690047982452100611685620309252632426085557717833519122121933136625951975913608274612987213241496483856390179042311332580420306997076921087626395163414904395053849192841527424613826856322514737661463373322406792157959060086386996240614357078213406641295642709296990192897284238492783841088586660593528332017409641401627495368906984241638987695214758395260694166106904216790753312239099663621727572482883540625247617506914380574613066081181841158655915101260593049263807387056232065106352141009605375096442842028179662970067013575286632030503347740339958407443580483578364813880091702813448284576962439309640327412804918466829512770722684633307865550119864406588976571022687460651521608319452506624871750335843706320345523790676789714109466956303350585715934871250588727495365437458580416753635910556746459012539026782942763090948293821277216285030096061981936140103731443837422643066256516128849756191432981723211859329256344169975242123450915014703262656359301248341376187897157382079118740686294871712301858129839333707528616150159600527788500146884882965345490176385500754024345073120883467800564440123805467820297694425183087266187291112744172409011461051774300819104684828359595278818422372527056047539532950555344347943140763819324784191420073550463405607324947985576064323925926269960092772186342763675897417472306577329112766651578020927093584240642294531397160177035293161599735875359515609903751854043851414757673455361985593294089609527099373320108775398757685628972127510553867591249950376825008643110187897600433480561366226406675675964887394015447759542487422440298650915145152746563990908852970745838673480678143595140743348399744619026226429623122148868996879079054861518368980472878322480797976152236782436936050055252836235771233399324542041401045270405101209390580267031827757949815608953579309353123254927979317312766440882904038330177519819994704157850069134042541280250462262610420206019129846519310456625561558303020309463670787661267642072529551483348207381841524337911525845038542237033409507785371215971672771035565333963419236745826272092106356339795200903508674840923114979425777859339975378459753894714771592112323346882839426274404986925134990879320543246266923697821652052791144715766795930311251831905235036831304411273553287504293731597807753699159095186014574009459270832468902539703482365165377278015506445730412257025525365586041326677565917173847629470420324836543865027633269754116921212752100412893676927016366620594600038349355389222439017299246198794801246324502541858141999635209186139626987055254671692993866530249881275860731312982125535767532430143915242144135520914514628695452431577078387339366715108913709046338104969164307765675654178420652852819629785394596627437416381310663582397328865580403833858529103917364021780141920592615365060305117572385886508447675192297894260766943693769597808377082549407776048660635516883210759648253284888311695695629982438909958396775863458539326166127439730823825293376008223253184111620473204605944081662900543463540302348678544895023820773649690426511898248748708177692909158730134815057424476245114536420932630489513494408852504786829121624421704057814620945002021602918247980514489299424360146636302181830881479720466286040368366400196732266384242850467227001830736423522261230674899000931133735040963006266272025366817423141330686623212241200212579981001305511023901569310652009761332718184050218947456628415627561340676465560150680015017378318458634742160907433555861113760311716843471278141667156407919635680360745371470260434655111188980361533757774289555707896167182563509431479355723711610053150648032940720704515831691143389009507576092809082167582933365015418653418766080852811610451114399451362111820091757298005786255345450201568153664632655722695992000861948262419950320404046171710316909857561562761716318358329788260026678680376857790777013632815803940998969605247751680288867905694387061217631433104890727358952769299247444471210060940372616892605155160568839988469342045591276294103137333576989271448647736044577613938847906006835227058610857925265392596494324787437694472633627635639998129252789813196848146335585269492887763062973003669702862215973986503763917301329734742851953927711761249867055033486510515473493268416375086373807732349531943536862744067995449379127832588851664146407818057719520561974736314489921683616195010196570461633615315522020181313325339979962342469057535112623718374205943992490498069094348486912756278298702191229787853078673648992675162886739616854530056808091035415657973443782221874970470093264384618809027062843302481219177296016341569111616294211874921545969082460517671618520196429648958290965191393069619646130908816181882876112803635898020906835651300964390829997241404228589938845194914563037481873885662848557383684595121654242876599858824111119585874268553362798495763225293875590541732899098592319867256536310064015828939410171950759847858274812319401063026673292087455115827488187159518902413826362834014271935227779547603696881676483679921488335861484999014729229571607649463326343414332002451884028079355353507678336966282779318554658375536515907109023038242976627548417295236530763028527311072940575562997158061451868104933574727810886772013632509828099201684100528442318361570314630751457493739198572715374367944019792234636499011961986663883739873385192493497186771785157158265133005561284963121195267605068203934371073308096043324808915915473505914069752458617884709778309433851739691685300388243055927623331029243294324574561415331124579943844675691256765468695078926863669312719925356800315601635089739733833696403166739545411424935335305425370322648951053470488416566449947536609167400115288539550075343783608006729154737015587918422862148772048149042271355310531145012910170352697929760088892620917190036922245380950113592021837485163280977890702936182212697773533359223683384833531611634846393923284264177255333781961287940826676309182164874253862278415296155872969339709484567672526333604948793156614947933251869081415607592403836608084597765776385826944099873589799519226810951620824948613222499641006811185991343737998588918601765289102775912845807532072981702549098045242911074843717220858745049735452472403998726396646645060846031595543591133003726056913280183437313567865206913587386479703205696202081001468393236621921473238302825478769083010593363663579809831989784538643764280974153428751190480715198934885990389881624583976563241226686809190464955991674913346589092431721431318732477324874003455038947579108929716219953275091548083534616034055804031341769146882092565009269624194089158253227324744057292884678039125897220124506171239442125603182030791583468531749083957270063746047538245373017027699542107617748135309441487805940670026370739088665514190208092340380248985266235249815662990233810542855296135855098219957514095121154047695446385858215383288885541173110360605660175069736978216070322917661918059401724571647028982079841420263048807161435431301092526196509012593684710650550569119744567071474104926807278577067141584184992802527025970953792729613292240758179061479222932317339797385998793529358142660236469040209837347106865623525285324877278454229680699388376120057124505662835382165474555770205024546489115474802750318599846745223583482759598695291592305401999205480056339635506241612280723699107011948207679683284337599895068700936488493568734960504747633949264776136309201013313282806182855328682560212280423871405550633349900336865717432970384250007529029351203021053127715742264817063721909776700360772508719937017986555925644219003308185276312706148928088929910871094430221896256122205319549915195174258571414015715374180437124539249782350587812244479832416697606286274421482233332586828241159161306405903631083341776304669940212227361616084333510429867687619630028995375068785045413470662071018073157564284450685222383944796297678754980775291704785166723431589053823083961101924669673456137568128745097804692250038061507885603897464170264985901887149036497820414467619076371188421713774492988978674626497649690370282039833108109144451024630700756215503577253100707481676277635711528665528535940282228967726787519821156556362605433704715698122848235849175765630546564193795977161341836212836455395554740017302811411641878591657963759928573933902609399469043493886938603409086293094683881801664042670327328182641675041900635385919994795260026222443174947945346846853555954988318851563258885441180106431665059105561521133809601228201243761779449812027713562123282643208164094005393156057971124476248505746307109817700558393084335762089287717969217667910901682568594280793810829751650686234205130568089963099119385351279375050849314935576818769466032961528308355080183575837389007954793800154063213777352232304439611729501513016097235106196945632577289733983575145806322752524665411347758013088020159509389244871182368078679438421661923569862965803131251488997749238896046436435207227911262811028648210982597849647723168590472552844447468652798764453858626340374261684650693660620229626755167601238623450433448505839179459109650364763424256054503834961599207837645958506467250133716119430361322268082262652252026246452387019543977459089619527312872396723319308155122965938402891477387476257365024870734544490586126024981268557953394433652068607763945861846709893985449166412665847995107302906481574108967243146381869941844236726621640692335872172506164625714568036027542651913458956515695826151833392989210036588930838157465577513595538897875230210760099876626897142641594528718414999089966041421139410374096274973402508844881473274953622769411168575884759062539401405791367256295091905830044895768270728199708035334515482672692883418424683421800834746740049011068632813640613581597213536788610440227890258761798075805412927041283641813047850631110466289620019214989424338814875331886723057909917875612715088016594109586432756731823906306145557012070602908801511782223081017193848678460788786935113375597263635637249468878477133251477838118917002800168392369435537665780517341019886661019774036412786976039391981057006400074513082259148986921458152561267538125443524751707041044517857501448573531751226877347418523284506380135475252617875937209056710586578775803666411379109983969809451218095858263772440193302387347629604145033848889761754930765030222142045574590525616613089012044098689735519044808979430298558249857495196077211825593862399257420411765770820389968381898028542299474534044518831091013744117532599745285427377814092419766244637251663790353112860609842550869110877635366465560096078324418422530010830823220660494349243238662317749832827135274876272196899571484739715902948505317956889828339129051862860335504112034060175191490348553844184222948119749511961251838868500197441853035848537405589879907461482808666573277548588725041285867313049491227642814972285564356389263203655241006364442191501559715588390017999553933350815740188241729265134924192158442727077242891291910787161221791070897501533999913583862698503881099503573220893404249954879694746782541994618381507200886788606818178305982598326657716687231404887970238800394438588789296270865426285984887832875053281083472354863332684402607928347409893641837425579274805732626763571685795454535808817242475917619634727262370378988978702476961234959656282200959287994637138456251196136900029641932823207319122538008616101003027515234696950612517928907303375069715352632998371270919806130884479031128577602797485047156946487704355049011638420529678120417384493187865644381452715982991167666517591878945918060825200032475061326981121323219980415449175561729510386394267667733782109456198628192871256773961271163073828601111616329274066533813754160986379262076482184188153464714061181858965397907642261482263434994028022070922829469567970341255437896840554541512599534664141816637527979793795126689233673136189171124005187014730724781804742435350971727747594189700451520884670520356916856503085558094919809052852936997958421639737662704924896896202662914736054055829493765301138808641578285170083296360272974748332357468191601978900311156119413061473812913279264152442987503293790860963771914856596952684095382683885028558986216471416487253529992205040711315843611380237119574682044038938835271772708676994369393275492171786364364263118760076949194022705809976704658106089325357025330500253506160185293132717823688188722650377685941984369256771089596052443330468272683984379891525503606079467486647606741581894428121885036585528770896576012801026399752777235536166857180761903364779192839222185807058116184224337255672268689976510005685420880828274954780679042418332957532459025080957420409069137810853027083314663688379579065530971239562866124631133669198841962455727591838548344257720186648011890476838210118972181812171494958546536684227467728056231164033584976381821879020257399087105192603979735773536796955629894231362820278890058937251644944531578654337136992854072071973115101179034450121097846890096677646984257537911777292885366577508489876608593651754662316126016553987274299471307887823262829232042195203899000588854793377934534908123683081117927537912213614987505670616992302529847441005466718306065469282618319245986494176779423880021112903490160009251332297314073648486722972300596077509605416087601757480047766568784488838742914917978961614055013318867893354434190105997373435592939465543002619225521074981248903489393750444133976696472299940606050681684717849163533653194856076858898196662166666617617372784099211346918705830300253337006661823231851910911461765835926495187629802182922852560623043388193034668840621356709591912652561533206761289303052014836936192938349576831695440355911119966743441137795578941607686266456741065461285531050719648832919433692751353506978835685009055586239486192124675138501355190241733233428501401665846857512253376909781423225993514934849221871890396742953648372080205316669669531659989751152466025889461578129199623880636040795856202490447259649951815683439164064367448115633087520138643553153625981556027581342736761627487569733251376097488157572952341058930854933693168911987319859592647034832689794327571166625556162599487438492419456558343297459033890255999069438332747532345610158535621369173005031979824762415221594605048317939544155409575829235825259673459726229454487953478731208589668561548784103674851748807107603011879368246512399887253004983991590142966335558178412962292595373643580677842919252179936101676126395750321797463919215441625285961316097594574197083585761405902685042643707502681346372504931540711076634694155400267425856853223733536274631334802794735251040893893724692719835778339513877119668453868310110354343991061422943434690341012390211659891238501505449946989497487185120242102641551555294891022238884559627313996268833624863520378445539821161920842468712418282625407944599043912878775381208184534469312162146112876344078989949263944231816216959950107193534279354614320762787852053322413388977487394863053037188734462141335007359426323966122781177956123788116013420211775374862927053642723735982682105424966803469743768805842430251680390220920939595278770336044977639683059304669452758347698914225165726570228359601443724604307269372955867063107626422819155200077534187572312949940837286322037210970973815531566192802815463334595583014081386424927084367452337264264777999802163580892269387853510175536186911553129591227719525391808314298501875874742491146493526481436716367938273835003403098882676194720996801734578677469527192970508770823899120297559476451413397285557910593552912657295543877001895498637129618514066758041156186243666920761143193453804790768650503292741614746057967910703718350114781677580137079900359856360805573861179039303761241271917062919063424065479691968893218688314036689341722879907275715909143665533440431693298725815023623906320012660019607585124558698815421700745445591691914852469867331754338914742896572574238997425965571522675607725879690616688388339893540420495917305985449203802524633301762252737956160947579746303984423707778619470744318653156357811191584670110944547272752689879064218674362998856332600125412894548552474304871717283489050102546337599100295019245295925110770364350932495349731830889667660898561256221739394821015045850366312850354224615467393744053099047052480311812500283233937521417176382413719887803241930132338262920972215433601359428942028138881129522118803284254360906262514279144825821713540983382064440354001021902266664693683982137581907949976284399233295282517660374430724629028091040697741074064270236241745118967452264529107915146394192864855086754138293992718651823134714882278722995499896876853360622283294741931676159783956199491580232132709472226935150400288157482228142914427745616791236328556752523115311836191068048947212348225756210293952990279771975284613517716042459878532813060344914517938130574450831794841863745603736889104831956035449520733943944156214212989118882927407003109181221632749402820265025926473065062622461890854253662850405216752893059937898109120679178100188385617325553174146536567473392778893534320520077756019563161261979439103473732971219996204192725006895716730908115419733597599687741523982561424951332442708380003656590636793049223243272069934351367837491459359204285426889918868313885474680987263472396411213688098537347018255911116431009718911938774669373210643335615758242570445206955263410397907422790032116824328672675493304086453609620949590669277039369442453870089855031346255336965568509225666389622713447002025587038158753136619331427901330760933518058979119064468870259289384099840487871169569059888075821464784060626370449999494400573352555105585110432137693381476378452921817357535381599813496279833887725710512795107812322770552886930343223973526113628868348619045606557105289757983075539367987381101912253338349363687353872563985421410208186261133655034965655893676378600241773797752315077777567018695563894786406099202163046828990538951508849572964449254339166716760454786603856317454304344005628513893985995847250122917846313402273364802401830539090229862819951055606488102982550164239431776259325033101052715717664815450158744413421147155393264372524976159848941251774904630911146538489723028543565335459136734825319816665372706867611128334514394575794614670089866782535992478350412241636199757548349295184620006399765173291408337382954156566611173985118124965057456529468921999915103685555471361414589194285084922323292805433261598573725731850960995082569352567796665754825591971012307377852101851354341908139541243783867509633116959299280917851686912534158765186494698381101220764317629221030140302591933506108066595501779139848484975932250490044168219623992115840313592126378347146373513620686056848534766651643929023732902833505883856838073668267771295425856208213393003386090345958805904447000696464075954801639377837781208226884815037367693697606705893384999330092845440677870717991095504093735883756022387420036774436222560779113773459595912383922340566604639489132721158666197568082866345288494791307185528056953800155070028826176741410212295320159677146743476518688008323512263424446311597820912020623322141270356854290931321509314361790129867583081139099108995425676433809665693102956552049054029967488600610542789370108650902944570591704259944567708048608978893859656185332752065534891537706358037405892303367808209973187784291607936395776167424575019881255524957203502716243730385597538742716206659135476233243850373061915849167168759022084761014921658661779386804138266767104805632645214486699107438294443053153015338373375458308536969760533697647150247797733982209928880747020890798195304041982425012762072665615522571689485969266064551243916379394932497046899143190093653409389413624455940234286140298902693092253040302265420626689309451905930163556544999810371991305268521178372499596358221359006129891348514012363060434062621608837563886045207491333248487770347442067074740219874727236166897086350353082637541023612772521035337765951938671872749014525438095432629799743648167555782218246699700693920639074511843298610381539566141448433605463960576242500619148760697486353240618840523638940531886009915340110935346741632122493234228765763064503123089720109307253365308106014604539787514000766474715729263827568883974651392373419041605102939445332382886536456584426650116606014489199241731984404677274403961506684822101942855107354061913894244761318002747395377751615995321943665288556474813900874131053625833349835923291787406593648783950189469464336920889314355053751370309108628854094064001492274315528963820778742628529989322606145390507571986015828391819521566627124642546051662740456382846032497168684713851646865845608401177087038464018273288476002331612200352175025293889630054739727355032088347144901992454600844797654613971339917234140371610271330841929274897562271779952272045352858805403055692351607405163427627178769346215725328726458410298328385016323623634769666558342756045312044847534132912194247721855882922377611271796511045162488029604118282551276852886418092856625424239893769411169415246842503607678314152847173902323066614637747993584319595687159697935587688598057230613736313650146464547505193906029095946092288940210991962733946451635459000849698885523339121249499916037646004216884039211109741658817551899294319654277442252873410334093060136996941053517256853406119141630966812471994008738113366705563428343438965338475737627524525896202400906630958763933063076377164575826692362511779065912634797306033989581861744481333618381266254892315478894472286306251578519213205384921725422293538824556099483951253890032341348755693131087341578966746766954398069532560403549656141280750216826520671543876740168241348122020830083209056677298727386483055352761124929080890852423380529484607876146810153513423230150111596072014274243730502708551069081084787604545493979222034234524359413147492944278620282670066381420650433980968319176357467300233301450959185011192900539448745103040643412988563386827889522807093463585935683506051720167302207595650267815222601611060584014836807817848954863784308130685275474324058569897626101772779975149309556932669768758017947387324312046018723266435782576436212954107850185324349610907345985161383788048539180997790140758559589019226640622744446861607572309902547105610582795621950142741977344719097040637384410453298807075484916233921464989496020209624122471160424776067721905602799786768446075361338464114005305638002999577929955412976878056957102877698650456362754060063601316568086152493330674346324156220194758990456403633546179569477699955194106469642951403219117499876446779512635781474884281064287801992563560693954330859488887400969093952738782709494092308252565366807651705913330179903574036679975365898212142276611124992687555381181419330823347580424478166586518064661780031289145801951063019526978357355355744414633506135861332963149543626822446921459198086656393275952140697857153000318222569769781366518497147808029134524130499242343749173838163463219540768594348235402115668941223139431134439461222097715341144997358980006092045065540669844129461879820766758388891214417155399191186201321498074945440729213337302635069636908284297698362027890775525375165645126183535149909205503963048153853718725776829025260048664226594737739839148908690348241446215218116369727598735244198229531565531428518013540310972797034309153203211319606935315566047360664290997474438394930956752971066437458756447854308370319446773326406306996182052852079504750579753391916011346111399449869576356183171025869039767795621946796120511741046867908974914490110966400469293695087945000161733857540930454463641875303285183443015239754141014124951825705357953772613040563028572722674554755272148756665658112162954819353329717204919924884058189634445206434035409916180527271211566735586098481708428138637380237721181419515224338597352146785114609577270518133124519323581274331905522276704887478870776708268528515074240466558279709174965798925520224113713599697314736459006371380782467359478349155244402962185066493115517114728541525641267855412452264472184009418585952952541098904627786224764240918906937930347949153533919767668412278650301989068060404296824210171234347220207724939807574191726387594006166753649564245851779023961306317566445804128913819521363685696243184672177989608086362354656806628399182657025340209021330906550940373255579224658176382464292899658203324495528864458975665683577212134536313346613800125530699598903124002233827405099685392892647679736300090704935507391392609026216864892836367844648406673179708582864234076889835597563732943996169820098052114373083703843574151654237525408926545415050317912775729278684787350812956935082349471281070088224465963267460542967578235172083265452431120780717143454969121069681307431527297201653490334982424021587508844154306205735472148746684596831061722724447933091312385299417027891760065492478201237568457922780408143119016692953449941188382511668016966314001233730168716259934602427701995223340569359201064969767122317662756817952631725202555774630469632070690214523691977138874661496539963094423670190543268669884406013372484449394988649745297329003078768853155330674259072652782531499969433081555732200869271810667100249495365217056144120205033516861979923149717147088888138391973863559862116142359974304983638786009843848631400422614286414295069583103514072512705503845267273007881036390358533902034113835590492926620633904652331867119190719054781051748436862672773143985814406249396699027315929535231977882462257162513159780307025540334664187921789190637232194275236709454679213962020830620055775154945804885082462182375886433506373134698026733753812280767348812593351463931653648813512957123697200364846864090210416732795707320010643087697490508771165167292416633520247659116070792712945625872991076916935315676072956479241239306007173214353031346442954783235627546630916484779905081779917201637078427006508866850895910912202034132404942640641374096178945032873907814611186531698264584532731596400575629443140596127568972500409734453351508969808175742302841588367223823821023690553423285782549092863216881109578983423405972953714597549034981556775694532619850259427572881134837160972315735947099855615422082225515611885788910381517311939105977566714789131958548219961662401231134774515204574288188691386198575432217215301067401958453325218020097655409143361864123390690139476360432551714217695990579392557795144977708522970662293320442843313916974291542859195876716536537471366782694493972656914156274021096912743124892059815148010483102678437720640070579679724289381297642399906571133290827135063843072679410896055892911846917545635747233799286985552405754074848681446026824283137175902425929851355125081080163808944530468338445045007041262307751653195774101275586773263268109131643770280447509683748972897299085620789777664823267020577347660688636398877124376203640119174731330661657342236369534667486656960583459785124847313610346691145369495040739147197320273830265077679270876544606968987214256133311055860649853255223979946569690581635979738790335220238243395296472973096106931434261784817359865130122679734156025822968497843682805493767098237699901427072419622964171873318262742170878406243688936751301455761276418907408809251390773438569295934913096429847717597624466396180965607598668498352776597968599903306669167275016613632470431472574586235676965770363494776708517308174800810934428125118208706895743410660659612197269308273363678844137224079178630771028297505926299117886176045484587852067230694448798275708316148665939751048090866815152561978366606110319747848052747606512651874058102067820317731965236401445615202636096671288461464287294769675996396957081375147883835402203420401423750775571804354964105365753751955047317259474240725518311986618708386489860345205911285541044534740425941399539910190700602344210184238437242782142198061517104092708867590155790628782421483994658921579932011547178167018254801171866530748333440848558593832183699185559595928704689891982105144498448409831245631321054125554338933092791791871047066147836762943135900077810856994911079530945009741820589315148037400906500480966215423984171426343348797737429124045845044882487080660011700522267999368436493156164482381913491775734970740906754944646071602688616381663755400422951850775841954466989731422547001631586171780963242105885159977963460471716718387472010531054147931538188818098090511078755649425216425158379912655099104736551408480924299535206876089499747499021445095043772072874281743026371467028367661993234599359499626557014433306942147099435806881714417240533364140021607741784343915288041792752748874937054797024634154582994530373830034426651036782922235564407783146899539852124465544193003711921603563428379723033054977526519106310450818911617282540375181081662050689903499449203971968495637468990145020438702573843577912376941852217971013546730390021848114162251530416753777638572824599555778252232458763101965351993020565134531630166720235027324182062723965155913515254125515379003136860432871934144828662012920495480763766614296000774780963728654102112825409241065431580560947704855562668868808655094326229863335123258580989789190854518081181836238854021879886302286647368899253066577850350919204334929468023167477845063413971888177451945838952598440880432327468952024125120095076319448496448317032180250180443855172512231007453014842959170675269004047245889906332251053302773732569261785763352796963006466333963279762798786021768494381872200971737637957994270408170791563380104719923950459760073486496089767028083952077716859386234860249464675037641296524909904677433562255115083534258608627248592261530689687533585395180259758757313655867359924124883835327274568919426836542292205354609668098568084145279981727332289037763742496439930615458853084821502658482011283717578940928396884680138619873357078060438142487754961477103201870012009540515125233916139421067555260463153744319455966550626726889482850085368930055860426510403972840076120428696298368867397667931575071046486380769395592302145485537685072428812768712452802299291566381416612581405608742439927574832744064650937800029259375834339191523979015117856682252389746563596493746602110853818710125717295154299200233271163246860575086558301825838978123797888848931784450744459687315896075778865440509197658940733802058488850588606397486757942414831744064629530343020273348610036499095695840795347814815400574710047185666357643851940143926440843433820062171144881677368844185811630652098540710030159622718876457535394964743855716585404436264106906734070805668300433251358891908236270311903316904745483344095961909957614383510871238703441148080648892666381409196732415562929162376902133111202934630739208208201739176781293082336994108648147242750261828560749565172546625133353393567139249117016105057273330411342296214765516097845530609401762318406392596727823417550761831081846284558815212722356858100435824415485869106428916759832825659249770039586285369331776110511396263809858097371280838058365528379407249855967981327922537753140056361568121193763964607363909723857305992432150029883485357633249269340361574172206971831169934230954751513934117681012281798109121260357667515254322048191506602748550787985057783764426545904419047687709061949800448478914030434575025533670691716757188735947481293315582913724441223418809209200762404301246113640223907408437260845040297221529574349757794915452997698037201299241724896156601522930887111617066819965780870319716100652286738864081133482966705834412827238940413162826324482074035799509356292308762518273427107465754383692814351910775414412802287713553959641290007108126296206906670431115358879182542391047242682684208540652736294927162416199224162451974378231987382071887932541830718569323171793291200737250991167795183062467607451990422451558934646915775351940384587245225757823884183156611267484456951817465329143441047452060877954459114408113991723695719932853468960584003592394982601754796294976752598010115185873813035200308142014642447789641615843434133015594916795777997398761664056207269257418131418681710354755920237474840283401788863272524515291460067943615057358065798833310457189616332775842600361217260175024054485211667238252770232061012530346160662395575038613958972237588230254022534014935978382224611168578539018765447868938262307294699731779778018382539491207314360181749991938638691313683705397494508256357240151306904904254371747380229922067708458110287934941761173446597665056940125761679332735420671865963474191769664370659492640341961473293595120364856441545687524902043548256394523053003533017244543412946147145509878388258776660923499595986755464856925821991918885338105308574227426198644720064936869353910829490221532726931288156700386513689371566157876374009649978846209072853903751076053253021702009737324369468537863265093616004841632853087196941911093296478184580133451031933810736346408630560945870981279292628172424739678160470366296599526543944428940194125895709914529174103245886451857691881498217025311322273545878069682781679942133778373071211859771209755584503419285086493310383958304889326482061908749758911843316948207352206431671199625592406645614644956461451780443239872714738414741517037393572911688678096856875830337690087624245535074158762306716258703736752127196515862418322912453844003542356238846225501552173881427803910056381528835477034985648403240220082630728291849189442323772327263242936603539998282322239392977891324330301638810623301715120748007033231914785626352706793009674027487400815605778487538087074351013665857012057342649170324869660917803666879514260977024047343260929526118487395018545942062221145150639532434402811094143532278073297235364619095603692749267711680472484056802142675585112459763158084981483136637780871838873484738013551236653757284682604748953412181701680487605234703762498074852953580907049162766824199855569394663419376040273089504381752296901509946481635939268147273089369830479006622327795932813179208557408348968754827722103642471421412583358493384726906396293769984410313581894144323941744665443568746332108806841054912021547075661737875515971332781240852209692474031961753636593883283287320196177352786600100241749381996174815176471613916125664047519560438053384774778127231147364052287795096723247082686525675544046805422494087163215924302234603148354850177943571383549592862261188737278966420500851149091104458421836276604947586664272126622273536368107660983709238461639511501528944393679970133422732836738198334365164241850110964188299507988806184114992699264843598757069432294489802680031505833495818148940752797789112167160536457204336327200089516606750678554007416988498868676338551263928072836010930243471748816930367445321207588582518352994516374010508695716466412750429010700266897524190928448437960514455471517129967339885913079219433622342291989959632655704599085908106289808004049551345720746703187052447060577826479363123682057680100453488445899159018826054923224411052683207136178927419177801821743010017330121264075763135480820640201283614137470010206040396179602832581192511382308399451724674729029470919646719963293707998522635883365286321802986249580056884100505314748835816013896851468429365198956353281111808850526473445160373585281764870504109423543190945729732341136964891443191388090367447989371850515548074685162446905676085641767035179439133321761124847687160094090734392060458616778076509880507983499474168229323964238714189568669384198145731500086931169012270754432084470956260946513889234705997490337539758519372622192034411606254197327769664549713788628052799820939211557900132655367629477557160988873748371959609935009261932859639981000246438751356100318791930454691422962871760762380729288879594655847726285667931155183808569378803708152902992976597638122258688179690030490199379636736708258223970338346330261426604529718658651217367626407800841461521932715250372098823242815456401502172508142591868244136363940346379493934163371349544306577134470883281814399503963604779040736366276940039616358462433482685011017624326030646358887394741149805864081745384745781314738574543417351099005989758528420939417221274889387703058932358752122274478053842765475043886345126827649984290383537938064200500597699428021292417371364108073962145265968377446935457951931013698339177978006829965014664845557957609202529766839840663812527672437165388039670675897898255420043500906794688822945522634324934426725659762869003811046757320846772629645467082951847411733613957647579473027688910875416107747525660094397655404883913435861006507021054353862225700977147519345392345821167078525941005354871381923512177164763212369395244731998784922980105191016050871865160966611656841149393650095297469934825062995596593233094610936154016345950534923486802250654113808732203015924904210591207740772854174823106006200262985720165136202722247988338445519304059578744242803077949743257538874593742445700483075696969990737285624112162084164630713895381633088450593587601742998135643962930970571682728741409641483747913575930377910686299590949031783206840256913573746917252337756213332805811863180440706196558070231092136456087775566918066983373213362379013322296095589710858486200626750316641236893578433979735110431591198102999999611591353138183924466204513310427887742435138327448612486256061550503041515076335506252563700212991383198098051826348638716961631182213737160017733030044125443100038439270115290242752799224232137843929135554974352314337093566847736165700124044774624780493062640286955393941332785828225525019228206802186463297399774378596882455409276138041699550906832404870551423425123114080673380588279075620751507648590273511677735840347070219158989552988574490568725119104739806033055074878299720570012863274010300238647191648950406043412453751639231558204474403659856708015233199347667403388155892783687595650758589645567073441558093549990494471344981479315479096886988409108731529675546263787726707988531981083879110433419769456170190397181597646394564488661530092273595249838106531555536945801817135471274954816490227614942600479171387493404540587155578947640848257812991209807865029462669158757785978351121599560025227517253912859756290315533537324389359348602524608976110443461764022998333434941640928894258276653089322623127826286938726222990957450556561428076826758084440129046921803449848097134164989094492212488838195154595851440782301964082015757682360065117537529607926558553499495039714922593744649965766309742797474261149694150166935372120238253674665744252117756070675228929380189522104675239346737479581584346656539071040533357955903026523317503997753638656618957232493636016421701410405681699650057357248913299738033686752303839872243527030510121840481164242062498615566601215484682583050560044802466864191970331160986557719312899030105780724543759719222212852509194429428836745823762745176961070405060181028811191357656776844741620261456293587088005365982480547199791117601862703809632210019406310613246964295620600399930420650076368183965083889372997268786930064492607287771257066919867382408731899982885707370930789534116392320756260493378420973953745483934390184556458126488578176543496067266136822192434287455835979885110638711566551234615537623013051659020155055431400389531726436037298364175970613875584678781872629235237660904460046340733650476965889613079186913049673371602050529132592790738068678031690561366936607553925264333753604523331644776525167373098015157938853166897675231777166703654240447228098152625903609220401240274312338769052514406386232040752228904711828003048559095978555872278956017905412177131198127119587180528693141962233796443226458162826058661557110802194445887033222382146507882553218999728227767780645067006662018256679300191367894168612386631650625196392461009422965855725310318260793311222310635182918822647708788334605732794065736720371150814974982530696638609178088992987627127971317476833478804915477447912043178092700704049982778204041444145757916370714864548771322793257586156961349172733970633332994084367763790847693854394745453670211219749637925787229770336833025031543135832442282065002767226210969376364338653454339010191912747083117808839360403919517220148338254803349205324778227438106956975786271955776303695103823712002057541036596511114546611588078775572434680121450240815792902774449749175229268265474429638710195544545165565738014869644428263212712724902492856353873824206846638340786291379771441235600035043202079428056484388777743982469241184051058394171997038387312151691880264905288047741397524715419828084714235086081606397610333404935434414458560342136048215821519705193235410273231278056809744405138377694713614476332614379132802147574529979486022995162392384030620871126677618981507945476289201544494702649763143114019184556083081133518120154152826297471175800147325231412202571696464559491645148001002595970325361944204679814339734798764366255479674734878844554168797175280861053059778523109128539403844604321337211046043824272725263893694491329548171369934340507151527657544524008549131266609461359461135102254663248145631218812629331122765912631464062233757999941075967035678778949325405381004360480891572883038614541026143014015163724308441913868510475807554296808969160402412758269840226756861058309533754413905182712557783437499208264243050619687691317212303383305476148279641672876088885253916166229531166320243495843944701691421610504851649809880720654869039111356940185097456189892139214944965597072587278083183348159989212646159571648226235414286276871689431901515635204917645830591733395953377075443890258661140477153655871948661657497237343034564552681450483669051377179508027430853969857816523423933041871179110245644769145229036652285883390521058343589195783306091695357908272687344364821665238410859399570079695630044169546304554542991257590381274061103273917223555007492917344474211717605216849850579820720191940907721880006033452651774521357607678360290485867743921337190500726299095985092864981776476025322034023850970549031165429827332133798054533845748086537748505618836958654428333722946437928464826115466122878144749632686994646539740000105216390024037216685362385757109837751731968492543052538723670970162086784240439996559235794497385396113732057906869825149851203156445149378037937033805645537924683429997786534939891792488624587057895900955000896302496874040577447621990943622733938833847130012902160981102639952579141864721915246691896973078332678887911943577122966187601119444660828633833360257778899081203632541241056961212776724846340143356514944398702820447167762571791120218733446202935336258953163859339774929013538750729577541869993757003387696964964947283449687187542989679098184227690904984176158319329212540869929893195483599830351211831674048384722138989202853661578155344397209886705454151276451583339692503323476971533456335974611224828183552776694336132028257617466800799301678856140979436001243776426758244318679060555141944144651671972192382761757313303576348218748416629762151800115969143407907538933060101641770832233019765029944409547458551983691976227238321756898503539385673889694253982107575931056588488828907572293567661711860060958457790005051052414552024802843715846060217563843194845272262949680108239935161821386883507605022799920856320282263736906275461884055419795107167810528442923259926626790561820073043764077724709539947763265728919165411170825829797202142949491606633255341042551916369214676779857373618383305617805879957998740473193944816341001224621509043020404943116718234281046948065632868324676841207873798133642863667951059057160378781023242740314633576343610951018092851907024894421930751117487740315269971987687804189891497182638413762262156267705506334877969494436286937354795792162454522736485117925978049001778617344251007166864338083140824264602078471405167535713035748009499693880700072570168750924774096253491808185646330261238731671794978849849242074353272874603993232664529031223706686986754194527625252199431997493367874570409916801958780827795450094465618345338636480945786556551401216362481777433254493118242869638635952756570110641392887002405254908192229220433171046679093058900501660361608771110919072640236147337400898781010649332429215632065793078436437832101186677324214180080577281212558785869267875076034148446882644280248882352663024108931110325074414300083417584835598650032444259710750989001582316066838276518343896412179066215696177672667468277050528730347539220517618967343101418867595813464242907944942288729265737736332341583732415488459367852339563379360430947074552733891153053635424416701528537414667616761837828300185913422034727892427990283857607843589606760406300271497601853200138887971325764848728785271986956086750855294911416044629906693746867670528650122425924246846552592088971865437268649509386703366983369876906036230438162663057984418621399888473218585615300555846251538728277695623013222836000213462837745837524154312788294024549301347252750297729593303635541733786651811483024259504412106379977110956587194636802219352505539849858123031346581543562394875173841680705450262079471712719398703620153375073804095074749970568578996028346790584201834555168147775645106942642985770641540495688605998144056234269552709346848799980469759650747692910642377026629849166150690144713906628616327131824225788552874478380385017869373026563455110197291341358233837943967613246332850412267693404080698672537490974288865164276270361775471459322040067859487067640104818957403738323627602425720433176497678779303324273732291789714406244570118145743835591284677344644991354648451548103197044284484383278977887087609021405120024626420233408411104524755350871894286566100125958385519296040382154113627099483453930224566310716956217724440874160825100604718444936770997979717963812327091774286460658134070083110472318387413082050270012268289543216843933597058733346883380976231583549405440458087861760526978353752488310421537817195390767006795559511159943965280672487883715212890362224573074141986160164071615832770687961036059394826400144700340562746863549150236295810760722144182411499272297518544973331078420053171683760307671127217052551113889647458261059925885298892497133417379629670491112959701740622908532300495587513841970764294638149276525595129635426451504470752734704656351395455003966113255844523006467216732967324073266971352246844109754829128314434504380557898439779569936124810586597226182877971628100911625567822389047036923122457307325926754502842797830489954155127720971536954848616183322395909366846708018966725058696764416396814954491003140272603370814310216040495752158729323984632942180775613080184387041363075785332627113687431257165331121593587962403793004906169981806748471142123814244275617674849768879743091596785438992715417095170023612501103953069474532189489424141979284951516481631518305009092744036963046985231827641467231459353492030794779632794854510466454372844287062826553403616771391586984482227786243968066946790434275988899941066010657626841780551674233882266277261252008746215099352038292230110584683777821118868414380348573023074669697382896399412965585675983360929499112523457447571650232356237476018805256490700830404858927793823923406678045516468484064094196456885765834089083788929126224914365612015764437212292575454504377433739943765984876582556548108385453478398980652834787538731738606220506568983155550197212435156113044566304459575509677970035975771979531929662066398766610066069403412715396197244138986291196948815873499301574328042810578058660947855914113331080372403958361263652974105712530897819863424076505307244688958842332472593934426423969486986603967505209624895459945641844366255825539524759416151270712494515734039147158573201687323710320959749943451762898972488691761372680493421115411917725412272698315288155782574977806400453612434591061056502859496250149353852264270281934881398984208814525298714882892048306582832341977660356857794336359452462989374408472389037831992446130041596167972900412920752246329219306852498383503946158155962070859305423416661637593810954068984036662555359346646630258672079377385396195224910577442088290155379851657290411262213730903303804302576198854982114599177653352493019907624822031355644668994609102228109611071887550136294038678802085648470852428323969922673570354532822688810880547425056686921082330797011410890490364576003478530588966983278172777828557988491271982494346398104245691024312260658940270325425354431442493707734756031495260635162105388997238650319487708145352750514576861635160030216093965581535541082515504700538233915112614496938703978871081679382983801515773547494687699132917785532072740747363749296174300905515617032099582644361335610829039882576315832749234642622696048664566724889520054993202242165269565417490077173130585558289012581432695372598880714210078914110504815397083590450382045795399195150144468047239442728564284570432718771976017538819588368571184872337515849555713780601311667059149733702961470062549605471285650197789752307219709116904907403927071060297976540987864955098117616957491921650711327653456870132378397553069143445074638784851818504420284853141429251566853253831710135172291075342894706295916105610739965496556839290990399179528734276952760648664141531321355345194317140473368451961271407619016355857050004725794855024547755443597325666715315085096961262220345826710692354338868263137910447144238522763702512112698394509745509676678902969552010378403505644859632151384505248546928017834862614702282297759180853089478503490991796219558158182326759137404782048953204162406591756306003577032987619476414942724170751155743668524902143781293909430928628629988952060996008162574545624756194971877469556291375698898848363771920697429495034572714987240057307859826199217544689294943125314950879480238248196370352665425107444714507506449357169143660868300793228646872823483215474749224184010947274747070013203465483816944019244102708075275845481259305301912906383892124952962470548764175029009699697977702641533840739265707715559083963722676119017305884164624460445840464800052465669304124234986333194772134195926393895534252349992082484434545701438816476535508199988104601972048343279962675667056110568723518864703566527670444504405009840304466659881429894415949269848759145795469971152431818087347509870206567474059094862335643524572497630089146920236495517053410447707452041377850472663073906350036595050215656761626841212495226174198327727193611998597675450727280007853104797498352295956569034470674427959939822630022764578074327897758101475916550879006543471168291278495886581089360126686425634248029959126129530041757869086112486259469504427569101791061305038615563226212330989178462445885045902508337676503521817191692940761517012783330763727011427343454637095964700131739974034613711053176508669764850798629052059781205080341740640882145040194312373974260716588017742207854030297115262409367467545292994080774001765956854495437714570815929776467290312788463372062537900883576782701627409700512980622672565260273614333464655316049408333604606375583924020312168756852446666317334388824621958773159747694285169149498972703590135839409210046795683167665672649013398645571049788550428235236840661776060985598024714211226437326757300959282589370367167458923172013438838360796074022349182482687911136202588127541903897258095330708458415599781911625309815283225694710739378628653633056280023929777134434975833872282362878880936028943046331711425397178906472275949774513513961872864188689404006213829005926524655107152457774535224759782489824478462395985593494824621243047807168886326545140160335229931292587346257197214979130932355409980339749453736824523845501724252290281321893817629246605974535345371221384570798266881976301715206094637210892655651436875975777252134611385104050542973722603726495935841734536765966052601103593798440652844562529942790009978727057724314782056999055639870363490826919362041387938276385405746599833742148681745401922002708743948085307461434955807627942925813032891741042151615948260599132435602748386812158109633128061828111670462904047951846065106461282077345913908640763814399718568644431800565475035552427230075206987795134460321639318348191385940354634747661697610795297612639068873451716252234874382364058209658750838333735774710185997161633609097015415616625367338832618982987242014720949021662298003857831893692296430607494838225316489898212893297241234448614327823261183198965956526993028335444359973257602125688732119035566757511519560189916885062686869174535449966214604876598938363365592359157118483927844024603677768686992689646893865883772626237789239613416954251184409026993212650913308209797302323056175801690644828664288216998843706329635450590209302828865792732966465402392320378537576788953270708765783204953448322470689455039305107930797720970214904327922860288363530001076877564440004623134162276386167295920248363767854797392063063633146142200957949940680200257400470427730046596983744699556794643809293877815540631153960856178678227020287682034144315746996916059059332674472130902296188042212193534810469730745203431226553267843331679547298053447112223285350407232135372931369942004273962901173919068497217311177278500966588124246438292600220959981540343422907438551892774929365071575607808219754963051701327948123980665754445510891787760030724193096311897356367075030931957615369534962980473518633471493063394293375251868247333707309839427080627033731145565411516072914659688299208603727970889349106247576922522918154216827604842676967332148984384488661338210423356245040977537094082201598510699864723078608241952434742324379546213100268104553017694641083508308500577924379172334636847247002430436556717730234292279325959633025154804015991660217532759486246881234827135528060715013330757109181005404795788817606213587553761546839150268237944639018654265148786342867600081984889526880482006626410453370092040564662454351500861947178684405903071406587297491096086047868123819807089672145442682464899170832794403930907598694197744075659609318085873814133705986082555035160006474370608566261851043001610113743488751393422879886107674467913147650721916301372025973424066036288132772556937658213357777453907149895301696481102499421561268084207722112541711964931428698536100799420402213101412588069673402145250570544899611476582688171339014742846600351054743601651336122979966817850816909893301305000093559102751132952072522014495897496107088157833994550518601056880692832399743460933114196977946898978093476006066473174594142941139927090419042058669323773686489530081859806068022569436452651127502969686241096949965672296261281838949084951262038360152692297211072781017041645970178847336918164092274000781260565866292862738690637504882817917537687261669975794043998070154284844438097203304194561589179716989948498481903190419808180532528437060359642901501038629704031458482902998757846501144726171816537932775759943361029495880372420208135282937711855542474990483735466331377728540992492884143684042722014852697410128354831304027277785491222014074334799960742436268845100655199161585250284660147694023685557488678182817028832550520057850843908384431985997545082616909153776561363754453195917406721484127817952058664908462834780309821399821092458644180763973810543121741359538318005450845914877400469321339005123272566238086651937259179589337291105339399788835885226781519750835348311590271121454236762279236980408781653900477432499438227247078191884544970854529999874103046685735730623510506336980164896224840945526159765231602690699272784537817349700574494073674093245456293164231236365896809211235961085569886408645051719224172912775870710596296792124468472680330064189056645177251214107771909027751413349475482246641870262165932180842023099801935814028364348503259362539050302454689615912863732469934939967515354820896942441299515420659631846969078775393343495836123368468405886736751938283882619882830024842924233289737124289170326059622026179811396431960309351445093930653187817111536279651638718847078846820092346926168103809541480920659574668391475783972174394623590766218286726209126803347471036976937437174308690266072312277696775332717452966579324385780579135176100396928154136857505233871685283288541604015276471659794904556629347335979330775326683846068099514176644280378783655477268035620913564169911292489365229522692006229959384374369182541750983437586650752552374263598578545561432356024845243132803885278216292085726694885391791833929368806616249196485117650636090750589576006198246754367653365527245687969606739893020313300506173614755310187270013444073417018563798024744823182225741916897691839605496350836773460135362131214290494280637690612691878435076459186066297850715661763712984405220056069634741081843359269011264433401457371832323403001987822831753649177588353761522089685548489789678475214947277184406497593920455095778105279014035337449949677919082080867674281990134543813963096161122834516617009612814359072530145760666511022728339615684325083938931500576323355445260351255185785076438302511178420715388975880688079836443736203178342373565804279657195926018764830070516716845251686913755583796239921525060463664063803977729866837633774125578850941257527734609715273206573442448004995356823073905021609708072670550781397211866832392960637513898738178605752158032616834463387900738051088114679582296043710829199050605578364132539117194103571874365009942388174827203199343310983454234925602592184506456435336790584320542578818828931068821929449258649664926662504159392664927838364439883649026729384448982796251914916374995763538789930944412031948148587057558708380484442080199195481029888357591177902395695308717728286599920171692625210862410705257883404585583447622653240765988747419607063445841567883912823370099662489093349500869879608062912487278065234014792995385034252343498058071217549465306704294704677771181620192594493916805400117154094687067001890802159098813392538156777496949269050649954490813934829382065106644344040702776257080931029580171610024187599715582548840649023287587134503143095196104374369603241695258074775633798099409737869329094130929201140289497062129239909979433473092903634269668922148118169473052718187748124415334400633316322254210736730761288400717748525999976625900025601934598394865109039434231770909274764859174455159701131106799712585644137568590063254859369402085477360439759572017056166232654082984419331009274000205311039374459093003293392125363280638865496008231011718001682555741537875945880037481668206774107067565402922167446004939221449071945081555240444713066152551084260089514051997577701066880294300481198384498977263391866958505957125682259232116054384476948147175834189841358005135800923167494243948636134872327130483614511333148164703882376668905637178829666839488337806029387651385916258393238168056536747852280706283475253096527897037401509853039800894157349306435552270472352445210501034121406481969992304683631935683790155750433114080162780464879046847363416051488239662098593627058689115232964049345231997856858898041881273243115263456925677301816555893113563151348316542393762641636480817504364685684950155294767156035689642313619509264466478747771037090738801243883342408629969203945239921009086437876481007780572153501661995556191721823759681540974315611992736643744182297486967381563084827737827713093107080258153676378218414194497440549275687455763777405947491446125370833238531595069628552213421901787097650389804966645765607884392555670630952327499000942261343911567721386375213572625698202454467561144107442287051846774622541747025092214877820842775468744149727016358303973265252323898071496492098236071966468858688871311693713053477123783343217750313852662561113189637090120371984983268374984181693716473517706764389213081488193847602507317489231188280984796297569685566386620546881470541809388534320710357736003511264041908572052077548022860746545348218143833229165774053299438309377406726346276251096929160654649686818430317818322291826953198172642715214333198367203944570027211206542719958242242836426921479348795691053406831937436919399264619945527340215540372648173093945299755809941545505248312058316502467898973264796444029105813472842753889587842754736823550643315675772740342153810167594278639842486996602396796554172112053603954905730011743607207396681705617931010878074964945709738172210913470774537393693919024253114193408238196432456959243349347492993911848456077464024262676856507843833949274118003669721156240302129878020596508164596067403493491160684973761359994096123714035542275352318807069810235615718246122440739486833665110901233202448937626963279119494787534533735126960752656072457895598853165903772303712515404327526798533363843604999319464578924427851657711654210937668418263726895193021052369255167126154048054134301726986936088743744624327615365202181774050873451169952691301752867200536092432873508307379309136738661142941515192146052943751789566796956156917804122734659935490977589233398369871551148812191095761659951736899560996527223893778946499991787877619671038860593704888237749206598587286310064509210365263078305973447952770318790220837279329234951964589163480793743209625370785697624968211665482277855347059008632344747023450891844561934581924437392049709634412395738222213710819022861680816685630228348400153793185584621436494560661340549684142646112291848783363953936504278479652347484070411112519561676699339013780362258668049389815302201372513738611261358188609359329764491466232736304066356400663895899805632767430808026790478350948075059883815070540581642827487008845434235664579212319246472163690279919450863489916159592195189582178711460649440442216972195343367505215455813274186527397980453678343106251440107075230989925125504234326064346903384974844481978468194654221787180008462260338759604141610933332905663329472104044112541115018703127643465730092251022315884991742998786055866017819635380360932752382515395313734846854976900290933417682814869971217699578163395895742068537983745900020993914178511051119818684236265912908174553624188105415224874449835241100419094128584965265258239594352327394601267760910812884932411726896533948862139469677485887621409951325832764121870342954499257504232797045786561925768455389468318059912705738424240546465530055419363778242215403645749674686987256062714082263916812479681985746379261835223875503835607506382545960806289658103648734998975793770921156571200990091591138885095625883434467765396797828519729210247957753380757605900446255498755511533648532024182718648565215945337336605514209075281592969638477516584094332193187686056945656276277870532357023462118704533701988191793505723885660354529438909721943737125322163090264537089923853989601470327557935885613806100798109009957223822764405566107017934287179952510208347198137229738807188009873710405887050754566321098861690534232225307126071323714451096490795527269542234449599723982422121826896381574592493813188506969115394866496823803724537433003637774299479077855236202257271969398193934953890280126448005837998373463312740308605773018143926251544255673946699825069548960782535671023849367586775002017057789131386155274223006640570233150656238621570943754191563344899217891872005684021047318470134233346517782264555253124224054523419654899073653563736903874482252206302950754393922341405844169862529906084252457125141654432273727706410529323748987891658311728136347688738271058152291274626812376901363525597309351718584323492237506115473408418064795186087299030687166822918555030136911388794497875065336342237001981134988313704025039229602183764487322290567077552532319515639435038063945933861740348203739675434808141997057462614977070687540795231439637675978495565097552423616404576360537694891215691795710565305355188945789117912388001214180521748571828686083964744920959316985597489542451168436887223003004772539177179493911179389340372429964554786644943494026325669024517314010265304017779848263294507551305318281467317510144136596492582244528162277591071209783405997962279133631264394145016640673299475823115994335116508232696172064319658200488087386071452503883116175292362100688737408553435109439162633686977021650659895439290409136519969675572239747136277192748627315338953537285295850140900637590864390275755892034350335908044277228123988303450422963053291925405699635473388735762336732352739798094134732173851713465223970002526966506636298599394809389241058138164869821840384085679082412996846934550073125415993681266735088454866460344621202536564011948989877738150830534853407459106621350126337441060224447788057580996199054651950419212753810477821994207488904652659069296378608102950903444541583112501050245439434609441687568099034925922598745454542567911876450984077904071036188206840809625218716020684295258926438175786880991426499719563660294235837131609877050862022749123875580145323309740151477210783241773858699135036646567511998106473957906747028865424455294384050074192903331442024586936735989510833579086626695318604622738177267265017941674645353463388580430199309504886232126813804599641609962605210195811439766734560068663165591930252385374153433071932781062322016343834147892661897266371996658798286817819156348814839887732167445316023650503600948735921048549791575425446875962705443667742805307142734138340973329604761291184453188144000155038894533728672202233838479265922485116260148207342784755898099687196250741421349066378959618912100546479104962140840283402010550714594081047309147828640959564864782762884745841084707129461313608824894813713450110513539297939676148476513403167767569844072701584406220246158352581292580601688874517907518644185691519118861850101221543487251038374404640363735383664099147861035437923146891206344635328151816381055356807673286038169885087382440604297809605987388057145186245874811238993800462296571550723269011157427448017651931940317830444909041711202547756014416553887036101089583113182454999789424164806852410690868168861999109448103591079000289378669314149233198010048572528300541868544104553844276171175590718075110793022605617655584367812097086216569950051140705282768342961983453451440515236681778200662603585815820767019365320408477167754567540603324343633724365396934546706170318776153188054186312586314138387696184855906145238676289669632183737335200319847978973812115025101433748449985700201992309092118400062149627454103671223309140120539820096150445533941048874333076084213388493169374334923303567804539862570225783130239260644853375789250403821205104566922458974933774605552078618904745895557535209066225789677699495560370225164629243274512630550673371794193905417378463362618759833479844900268764499031191110867148470823626043407171080996688162897213593797305298009943913930702020206756177767930652452894896770389470310115866302668619805268934001005870752064525143243175438337254360444031577406251448606699217235715872804058795939501087452404194085688157523369204298097407016827446486786574576891488435131990926789168662152029716357573915936083557841511513563525504350598496370485619319956026611608506791561758717925308816889302543722873439744457908964875552203780314585902553219288235912006602012876954398560990739358169529663954392880696462568089727232874379932141885904269864368475332648575748378003719001287952554648281813755973934105256128711369099018668129237034497553601348631504183464366330692778737491349566329625929830888937711067510068967120785719995964299728291755432245342520557735694254702554393258533397510385377103289367823880555507529771688435461795710908340601217283986577300134720545057173661353651228043479955292319706503556210070471101879954972114115626421632866667383339117997125868439263109968150677826933641274961706415039390088449219972901485778804075011521415818048737897366454632750499908174249760373152835324349620631009059015850400060953231326413712007391290678401280232876261469276738741734444301539696335966796574173267402954351554802462291786448444683686685092057800357731664735717482316111830355273239647164416114739878043114605529260682200881337542061653690303935244727126220730472604194023111676891346718913826524815184050274563099432806813546819598604069369075331001431503952895829088200628173132808484569742491567432666369832840647241659004444867783792589610444525029371587793613353515459728483035879790386774983198260785153603309957628212811835256011158410219957771580263128246142956961447029542382735674400162574003972589792644011446884497980052450158767215503276858948269638788858511536712758944566422030559289052994256303595191885334187066267503902429782005275441427476150024007029970676986911945646887536764952256587155102728005072685408592962258492374772818229148139184988975350144283389052728503918181144036369959892823408837434413042661456277385535612979707048468834650538188317422783696564189684865368252320136973636985349859897126471409541473876719728968352018885023177617218538154814178587035864505840855558520450480449615623577448428090314040679697851694270223761254835739808692917727686428153165880548559654535199620020233281657621311468415738295621180678291365340555989315783010314254536487970915008602713675514772643314025134966030529739080953339651731665105808640555011652022400667260920814757724040246060630852594060128921718670762143661213554641356971861523384777360502934190300887924705623901080531512461485197384524011564550243406747295220807668133177548019457403381541663673321829648078830654973256551147131433989563588173048989129689206383083298518533286170716871410424775893557853056463675733777287259098059127710416059900476684064593699704012377103126730718776965213048629315679972911558961808830641769306920219068935156392172931627176932531217263315389043995773840160572525331030996328687844173211175860938522608409864738961848101426846236344155803869942293979626513128794985773586388880010331151465157998276006023935566684060608793072742994308356174684405591926194146767668428311647537506215710893259296244987378364817202028287552061592371602872770514858769986737685765941949698688052623699038871196654952261902627843562734832986311233604808872875612408403113137320325557644518200812651236524966062021200443247514727116026965315569088472165283801169261285381200619208397792656893283850586328728129660387806705562624398698132849661490460247907050760224395926362320612431361396205863734064549363925158124600332079272078823760084062201950759357377800297116471331310581171396146911907362360336058679449736225394575330860027993114709532169954685084320283895906691920020967670192866889761702568283336431006580312438813081684209936732685451896306028636631296487451471534384354295554395142620410997406199907090033138734558419608421425503728587441799719363910823177404563341151146928912187239551299902056898631298512669810592853420273579730071003111417538443560997092954966989647189308101123689666461479313402636524445812385805215637796052124763080260194227260716925967174679091786130683776078860962547494208100122955323289363742163505657069144162637629838785753509588712528370853110024839243721369706335431341815618518647659457973583715676986967886572642968800139998207517531894133257335550764523849502705892416478006740072945750144092498047653435719277643333074359824787250276419960518424269483764923157801767561201315146977326590862932043515921893742890867099790662138243199571706433525081991408645735174548424276935361491787231030108850677886911471461907176645931874715778970909951551005874938657826781916407671979950043224954982688320962159554674011170935934760333820770139399346902067789474669416869494009746641341794049817949758730006936210687888614406727887552652534874854899218703319968172095216297784671949494174156827904446903973439363268379308741537549362667332423152678779396296701637313420662979977695992343880715004806364450534102043543195357862955285916736353886652781501818733506928208728871783580732207551959273368540202112590584537889031507733863561972928812553889211623107918310297972637399777819613805837756482316130082929628370699803300834326395180617633919824180998866775119824903537779237392621160314277927053614046167489852187738549812296564294714590107658446238728601673345722152584796946761193392767461408418504591986169963020318132781708636654942536207776735517770438243575696539476510979777555150561276791679880929808126176342685039480178415158454329127221067060460026376072473869244452923951776670456873985393159828789039994022653142112977083197060579080742318167627184822765066643302300313953425655188027168521271650934840202653975622033816552557493420391967522575676924615102083896839523380252474420676620238589234489052334639334696977522140795189933065036582170332020618747643331373189280322316001293374039406732784815875687683502514831274778801804753850702479695372548429892735699617276671895535742805644951628739024694986538146959139438917381728024913111435609755009506101323325140253880080677027469026022399918796051289490949378828664118289114064751733143848864500944594708581726649353548822001948171617681421351346890343518045487694660958176004085965397703486694975715871833177929229226190589645912728535759341729832234345494901822325358795293480411553818875590097845396238489481055220910031505245123527794525283034687239688819573263238905124721653893222877463567517895906254670001924836096947105594156167559427280285585618711475036015120465772975760941100842831854400337358867611991324361571029720786961660166384613362567970326296136713695435667173133992537352102855637727862235093109038666132290293496240232220920567777736248184928348572594047956620626698079601876064270761829242666506317211931822228110719180257602564601252792822346533495588622596470829891227808709663847336789437484700319356508699262261692076785163040051847406617671999284747512811933634793145538949732912425190337444197443209418747732204408430348086650457407372492433522449212353795739494653874523282485202744013009711253318863359112784181835729518375268815813187480349317511052408353712737516905636155166618315676256196494096368869252706701166123860456717113996729366892464851828646954592344894229671851030516311752616496748633343065530353929568425722892267662871791320279218828559921723080876359192570821769154542865481048443333772623650751629064374360550533668084426327722365789949205889928715992895726503323850382400087508543606832049709713774628542275137303137905816724300536139077387773443156668505502886807213359442650654069067996018239794056739419884092087186396328872153065707945229634348541096508463322055868929958136970437366727397104622730432142500926660871051969713122652149631205725141619332558910446774615842486597053826086882440799498908377723733428420117874873606367047539668803157815157028469609892499244769754103118294515076990249533164232679522831391769228582855370748306980768010397651437703384897979879592894969502590973731561016932314407841003088998702866259665580691543290421724377666728945941516337647397443162247161279875858890190617281800645314073084242416416767814125788632360225581648090312841018484069286836298892782124200809868039290945020788023811124890492300874706171769391679458444163919020309826629421530288405273654989463487978436908127771157200536718550904796442551483500195956281910278901459138958345865023081593802570711624668816343659605819172929168959690251996690937088247381368501212095400834695276605323087069692398056736850321649607336400243440463105347796233595200167440946078735576153997332029844365225299213470177480788045215722008812354945216104790416760023297392820744079102419617359108074522467897020185040910404410210678106064205706393482325928461570774836342651601183532733352658259528323199856240776297177000208387415938348201174103511355122002429031548481369847593773835449560565348820029416734549953599827167213690797186050663431405994940552884359483432605469555764371393953833335879919334774758122022979334985590449524109344222818686469265842475478752450936362768574252995464400688481448016734625241221381484793480797582687534144595952762284077897599432241066042703821123317253407021299785180262025159301809273373981780405773749159924226288365763688320744934944238114953786172977979528065503708535135947793197290454026588120255205531884015632437654051238218146193952476254649825017180440718264220596827802872978286690836973702749664735147855074479455753444695573221772376871105493225004261346692614106852984317397711245135214856845138555719672662600099691025340653605034641641026762116738077429448995105292353117983623017106909177409847320800852306990432582080292950276069201436715804637078708915811432910314301464145890614897971836540215925795606905122079506060452671213581967209173698543356263075661855868543618409146681322894254839005569717147152051611199870621916943176384345663834038312486911261859286532379618076508880211390234443382761687054346437974699846437156489192961053509181943455234924002712905276740761239761762110793085095481156323210579603550168292704178657097935936415278980613651977728698824250948665068979294071601015283157569380169511141144941817084194358542712126690465751261255017795015019949154791249298189502328691370963064079091113938633307503904650000706438348307982112729554570044165631469882154528205772249432990711016745629947038750751854850943216192673848301867735244315909349457888519130583579503436564179722823524770752747845255219491854730379541866604360330921434128772491104994909960111137039399303454202050168214104020289558107977683939689349887119867530876186393152049543827619973821858240092347291653317060732542226601939170456231774603465955631653313479678397303875522899133020004650124268898763648058881329456811276627057701955817591262063447113280714277319117981315101037058059226839930181512298801866103702862565971925231395194678156745056106970676162717287963417824445789186805553248456413989224217513931218815645975610075783976533383322497105070111401226526091115267746248937163971647298156468118520607717703315667113021851835619930249985793580927591374015757615116409453485847377368699777175511849375021063635781587658676820588054053222951982420501212823288184448895000368624279522802388115469733493772317862454512076454190912347390407795752245449559118668452405626685035760460997587752635224445665436893833540171563937042522385290554896176142475369894063947571775151349545018968049293971279165095954538479100335950129541488621713840342930965214788422726159899272070727887948770432188158746014981102266769271086337478001976552470592088852114914128759805775736795019095170727860981482085317105803293441659314947217514260986932534408873324097466465790650664184944312173939362345329519233236845213326934654447882269203199839549383278501945372354899534070527961827984468305303447999440859106399544185675989670093235780749807259927418010916326444963581971257778289947397976690253993303686973407002449305481772043267360852471087830104279213847051017705214680214484919614746182033771802007441857944196679006730294715247333569163446540525390405941444797474904643352235223699932849382824692032797328700355348694821030816306092206473522418770612607657818450706979156106594814989004586064057228817927197605217611377142281233849532926420619297559465392006873558084012668145641454217728440424517731370551041831629693478185736304694563796293416657927656404733646239743137830533372890318253030842071944472810945933145813564302049859654058568896776698901754884736710020261414468346932079889608342988317203093481650611509056318423616554606362401574605120127294866227027309123663349335416461666172759030684033734815496796251387836852902812696622926362870820774554303851066948909051352475705487494929766929997149316424599047939772236020803218358907512077540083262988596775195142439832116817593848311411705949505919624649427030456426498679421768834918388944434765861388715890612128628074784159536796304585153036047856753988599248755762155985791690621515528617580985968247847052238415393839948065359045058468790051812405144629163466158350455797313890359707012803311292959890924480739927184809641324713398292133131897478509990508228006686323734395393590021502808910051492096026284128592501821622647940726258515646038147224312325521968952783024315663074558702050751425210767685270348877609994903713092116465902932171561504061882920256121835397413700409395583531839334655194064445556612124908394900150369104346055425793146287401965492564522639065885511615449886526477343988335866318702264997090247105183951183014450019579006743889605225690256754925601113387679822645682237062840480719133321507145024934636209693736463322825688729746462086558520965888532766434180244707306343461041441878355419680230875790736723414313633880259032537642162353447161633213362847737097304660581048059325438992505929349935038884483451453940555068183418912532028124550909969814712426228256638600469569264117828458329013141020928175098547265296008000056405474959457180449655890694661075642198287606689421988299001096606708808647735186300614823898409727121491720715203845146817483302186704931837068139085401688176239732518026534573095219564524395286248145545432228565202503055451102178466832765755934468140066359066403364424472694608993666892230814820973514422382981928730529814851278920303318211304099629234110306906468401442389414748882305320287983751334623543872026330120496416902339158711969517670191257230092659764833120611027804422068368530041745997798530837176719445959377637306699614703796841784699586277512766299738114203219556823586746482015379306227780351199982426134072888100477583705888448079889418001945617282792757476453789301088904503480313905588973216108272139877797238708364543445964602110800891527495925282411788961217492896340808879282562922261037448114584538561225625017964439331179591642523148512522742189318436656903402126215065395293263776626278856928088842286362926679575282738758240029204388915452131927410899588192388784410336021795308288430919145389668543540504189940643437536294743808610534549191883689034139156066955670648931137216293127939708281485088382204160675619985675659283962281785485435885590432697322430039958103504550290005720441329083379109273928968886022924818849197196034490752030282566839666625558379063513272980616445571051076125299846333955293407118533708336422274200845343936349775986493848795007465383768054019491480582288427186874260521975418834396952080270326546812043779230586385744410017159641251087870029520880794166846856897279157353455656409819260872056485721022525482198285038345846821724132915410337933552225504285692439453046584896281932319695587783838802135292693395153233324508432867969223211994698146340123674524387941541446702451431400038955677236707565108218302212197536886930810143789453385778276668433918167131587116874961953540957008478210030496059133076888632426708127068256639329609603016399843806898904398546481071215806023739764370422365173423060998691866658851918468251197329426950751291505085559608214190300347560296498064297539362775686235206669364955038938718616473159205822011923056144424690805520232044615066013536663900749068816066508341016586159624937293723148059015118424094531402602505298203729403277373442897462828857412464415006554227867227448185655036314148693413717719352662543616584841863453157761586144098739699873074112284463965729682711620005732023232050721760638343957663303545987233081732536411207401290566684911477491932977599115786213135341003545113518643332348572738872361496354797671303465085905750184063085892159384291933341865810713938293286818312783697811015019194328611684023259902345092652757225543842599644135743616600517744842574009808494854596617046231166641616758139105673441170819128248801772970277367637952728579521407779931854384126148174537453565833909825299375395457240967447055353735685698635905776152583709692239314958794770415747793702358163926369770680427560917723394076984768852103925410135039127411059351790136477074662010234618180712101289460540352059015714971377448651388852734821467009141294701130378245199943486815647308532293212880927048665354036608118424907995680545596034222733023191321908244044440099863950347823017128750714841602867657844824982398039017082077167706365718883281260882610204345141892153925041008339669534636708719980947334142060918112334018601712168419099505194953222730265095275207650981479764092707677000747784040035965066879764430825703732323329052109611509396369328563407084029481967003100726670903928076361667235505042385792603589732663686058051811794419455435409145902231838899604675947218946184697051433138760427268042704396078074870285355355164951383520408969768275051681849858921862066390576744456166593311638903815581364578332027034682925077922669493620975330188455905441556696590471624117840181249590048307158662603027052553562669480347678193519727327534906082927866316266603247828155145383045937324545508946456623718935935616193710579492842812320986210069298006801682379314503827815599537726559304769432784342813911803501258580453963644772753272178063897037526119074609992508918264015163543997822271222155434190433999736252289710881193269231685463362814520638063789287345533907929770855660980934948037817787990565307682058482369690997851246498946729895085193722226635353474133836069131628714336320942110499854879130112184289338792092370909840500242023905023655979778523663422941515207329703410865741110066855840360852062441687543157413746916183237611388783273173052125104776430095093245048100678814348463048906138549370151830380332059138350874820380983691211755732555685117063058993162605791314155661741394322241082153290083883795484896505545762127407569361879242751412573789992272082883166343134942334671086062356702976279433155224759873969035879357983982743213559840356102185656884413282816972482141557293675989211774629880666143145075953349861403999403950999432884301452432915575063655228032216390872359817833856170976217091461255412744473630766889705679380758850373817452180300859756657870009371960912469189379287442748218198797599654549890218394477284745068230500896773491081316844987905708873240645839012918113773655977870130517282298048800679195590549451827036245158628117409970551854424541984897745146528982884558378955461372060190372357183816076292660579240086829095558970357297162842612563006846077573577440841044763789065585737425080289562837834718920027362981272682881314720450804312221963051572919431778228714336202514487612190711242497300054535760403750536522629559943219812239367910070907529864888579980819667248010916423800487540387343057782402879243220649054164007785767480999228344519864799900561355534251485370206948928335595364896728982541034839563593032826808402585156241320877654494071373412822489525352377689680906307293310578042949820851501753524278486860448911939877019880585278130638607391366418742965134155912453464973912998996492649160587425640059141886873574479399895889662919675239515797348022658555962051757371893467617576650686593034278397206105786678890556864307762947871348472828849514434036961002240413594536798192155551109998196741985910362199204637882124625746270904937732280191689891919021615067049217459586726239347333848935110583198705144820161070442000169411919231738885330774658350792938740923940482191325549899308237731585295992219106701993432428829561947537394585369762889419557118225551462626367962434150245520212967660683342551813235031960455866213565030403538185060215105464770669352419902679003696312015850905056617806389517594640661313882976347255361346177695572019760643191210446363662726134959110332948834308437589396587229975129802845319563889140720998960131830052560020438048593001681077550754402277580386252128154412125828378337645955453382625341233068191057743135008140755649862648631710781607940407772006231647195165849321996615423251643399457466498333765647667115013992557394196446781830251891810530913109497776361450678024856597434687941286588017531334545840966349928528106978237075933869997503221930588802632852215158046699974365702124047012177565535179765464129446873672389622634000985053846909110193741423673490781492662979134236763846088238872909132201385268511454363581528030701499531124284356254248059313675759050998140230291182241430942409005322557904628363852345989687910851460556013210340174600533275645163116743795134702503127044725586904614000242585656944434487720904049860859645004932091652785908755593869074673461273854710059532286913469569273429845501019442222792754003328426741883075597151732533355254747565580901385898419772043393733132643454763256984174664705504022780112327042506673165480407085481893506880293807643967884471419603974434238542303593340591396994803938089906081957661842490384111264807197681290645828313848150557503836374063177406014879477383208271693438733153667504993293564750186472959817721897124969212455082367588243226443505376496662162861201474895520786717825515841945963835285331872129902055078333406199016007845546479232759026339824761126040421212443257178198240484968174862145925595694205418149159492640363688581489565890904627739783323210788476084537547518956955932633013472254859895721670810541288068581795755996685817792434856637517893444494547734937671460229608527705352992999906685083445810714984545605262373372311160870866850506940837168630119347996570755890814744839511435098814205551516278854056353872218051260350752839579412733824680122431897526429523278831560046047740927234294468787605575146947760238090902593295953710783469312322014608043705166691573445587851406605272859985675318062914567488125947362387919982860959518727737350518685385761971327131852161273782154934896930612743869336633714226469106700685258401321346587990843160613344511831632108266899622610171358757880266540388237013209994244622760735621285264682710874838708606987519356641879221186174718641832785573319488275722645362838236205229507751316799360615633390784740948690999610345966769873093428039151057904105151840675475963896671535071039985435289784872465554832342852851419557788651860231837499875015127777876515468426743192062494732623908621797128797288483817872721851462509640333264642184239220965495649098622509545501043022323413231517946780609497691915460440110047842859021747100760178717832815409668184794890667227085709270550687485923080812666757385077232601591634239730353910682186602029348294674060799924012616034327377275364538595746644049674069768273740078470472150368607642395387914881875768505843441601292183753021614399054562061406430617477986300208977719969039246292869982166498591747058955307596038750030422761571221234060000326014344018170817650061095695539950402675565391687766610378278896558279356053788023079360410071003041784157205412552292217713140888500261297135120432095177092530425619268939765101868419899467403097938507196709884992521954561482730347520226608671863092931303132777334376753953946580638761054377475047406080387631607669058456508196937424856982262412760481911509719442560749458664691827710268244071777672976439352275181356622809166387112801068403725059631958938855660543143436878871881936616473738286194677755607697256833492926142446401444615454717020133701415738501599667343582518086738401572070975345627539312777182435954502119222205151297642614710761437937902286985585414438237245482198446333388556084987945660640970774885196070655153679268225883847452186351776734411108396336038994458180522108157253279674475245329915142756448446462901251062287720811953417786580876432143110773279962277349293502026769596755737128554044392328239588668228707026594866931756773778943853912248446253827931990514485811291038706905315194623745579857548824583134651462950415827007442269252787445346885204244218612745358596454346349532142688147634285410263099256348941579652802189808610267504228606394849735666947191160942773805298873207885222087554252104146733312086530551214370045488845279865451002843176747002634190236671127926600154545198547216807517517983557273646569159871478163289637388052826016402645985796738853604113187629763052919992651031318749384711000198790538068839101531636201891135951741787449615208190046366489194031151053869521910743368637878063732838220913120900429743179357331721914296426194663485857169131730829151910551997872779149581980942354471128725727549621672311806143302143311751923667890512870586251350610771375649786531073889210287888246984144860835693080187998476303409129077205051619087509695384344256683645624791417120800885431106940594078504712403610951862618834581661572674843058726305799403508977369257974436015205404822129807927845124645897521092437846171734435283194109613793242076166267929823812838395510631083929750421247174208648034641744249425335926573641316557278314674386633183760464482382057411550397591060216824957353818983049531309458361869829603410472135835925899197623113403518689817977078953952330548034775648106409206962034040634219917884356689655704368514599679146385647303007515841751726552702823172810277874211724015080566689159644408631715047774268652402735169709470482408778227263983251021605112094240559759944820945103843252427176827194678458145804138374532312040974490210555111130290749882100259081283635623085427158220290450159757486808636885083033987754142077833841478607606816743416265621159111301788812580562786646440394056602056379595400290568554112509192568443933132808273684456825051281377070483191645231409193801252503428389631949291967946737698165846707238403934509248284916151412506963661286436744601894898042497324633027485461079275047952212117338738828335302601485433477541925820458328556402574874710872636960643510840482587794136508131394308920465017359763437962678621859654229872576121217773896268481383404468633918393184096840293617612309591248659017306900070335411123343812034728498681039736036014233091821794079769445667835330024820783902947004077190162216887630387880459119428940771048968914237612325548215406298774634652980589886094044548719353897362489237889124835120669784306105027428317962564450762415820509843416379307084614973398806355051258372357927380625455315622963149356580260171395563794996579887915495128629343850524509094676332314668549031378768902611954596139524169974773417627646509702548329999625332374600815258636690294757315132362079264452872485657615666198058914730511088904743896995484783965558799419580158673871473597604191102905346705141982301223738156069660945082661707813438452231967290121834825162122233312554850188209021819560836001746819671616972071541817009733409971260063002453075921424312432435822005716981262962293293263263491469366750568727549987156564794911856373833315186214464722624548326109814827379317998291172686109169968359421221885847736526535515371080813108054932376941054368647838366531705044889978440010911157948817436277313720294602370201228692758697331940113022270767440910371547742663312571501298009451158276249735065743582267455738248848087088173856458513359674127051164191161939561816282194105703070340956474563966705322471941596174479441275017758114483692598453110205284233498530750114366671810369259879462870709824559242299716406446414020695161352118131357441029318275947985755505187171614550389104124196951004613054397011657103978026892979790995609269354803751446026634110824212544230701464417829708504366384701102254335573897507526254829414467159760511670765053758738734784653791893599015840501791232477110830792757717526991530795576088783546960880238601120668482510146654075399553469014002043908704229415691358516694191564089876588740023355826530758197200140337589417978630116843286668088076102685097464750355006158750196658273234640936362666481584603915286459488098947508255024145476932647948717919264734945233457438467295779232518887897822223527869119891809023825840620439425127994571557360144702541475634961470338132720280172815632426180054406636509923306595583046412594919367928943204030949320672816262043580805112397194130002879060947566658633499798451095657757647163594166573728156506281122918845903067663624612527224059437112027025074284372746251222481215769461618834431249559303664266642496033740894725820325675458856172213272904818625191312681744248578925684237462255395917720311033374148125424029683525027995658207988340174787287234435557188680792442743469095227535148696760945051784194763461639737275557682702501017703555658861732400902984968441487283301741708224161419455873169210813589393737801299705202448773737184083714005874606856616343971002898551584805897568474133980350941519337775567564034220900394115187386086310219183180514527357706662733244040672318398449298556783992201196633504673891725797925289023888750040335655996157785945028745754954966498326541320512499673539020870195490273307432477084686765236001838172837225114019492446997679491115075608150617810065265265763087542294712145242412906811530953228396670144075475515875794321949852840198827549481540033072110230422286634632690159814268177750057372915201580988779162612751751423372059327990671656189077947125119857192126715002297594446533614020951124182348235192566895099063290322679491262505061562668317988599912059244665961489042845135838505514893325150016383269157087916844582783523872773920110313728779722391550918648066943774401193111362834772027899376448494400957190642583642024450745539796340834284996553559701582861923458054572479282983053068780950140446045736029467883907240492225056461396624840122029060031654455855238418664791760950979962166668326686142084835202975834509859552685453910271444463135050157438702788693896347839101848770381555507462245193228300899361158120655162961869868726529854456247504451660030242602588679597156831851572603616872469288062254997155993865544118317459590707515391310808124471641799947569278995086983990299822613445437988520940089445685415670849764120842134451271398144219456706823589538347216860299740631785919646243777053618141779098420972785126315346032602171497555632851466773578881190390197917203673303434983283889422949825062129634769134417572626600268063747784480847224307579169008509346686137421352881163290966083175591037206261154069079361154093142003258948657484839079368656375410783341644338374741447529600722965574305703647132857125134680651275107593288520532871191017248950531620218440352910708401949284431806906845444487651364672121820295785265902957847815654956001983738891770846665653175369455868649716189391165388435278027099716687670960920094101919322028406326436098895114472587873740161023396200318285713122966105256208814452604381283203586284120862681603824129965227195014767844815899752969947756578302249343958204446073730576490633303221302769794649892427292792961686282074908200430333567025966367468835767900543227980508781796377908421189158879954125512206228054576714952553528821642365574619374433772158964723821738048803142337979935944084715504211235575508970874683074908834660378227891762995229866501830792235433734459015526835270475053767781272181771662613858821233413118012722831248083187151899761148165914138974573117666931978057262497833356850973776585494463228130785039242286364169535484679705045834404719109787423121759881464234328802901116817371959830580490382542632561724357199670647328773913894686037721374201199011940023784607889534785602284535449935932761316398318036508510729912740138957796336590045856280570981548512330174389448437447688846134008724643310319122165716887751491858935920753121475108081291723593951373917628018056923426420916306532332812811315688612728354057370188899976221075586249292178542849315514936660924361765647237802681240710753662063624743898575181252138848255659160945140375550754034005507942608854079662303960870342772209566887094845779587231382160656176956299889762476782441338373249481055668544295148519833494275550841644162628016635865363701034585669833023843617687092669432408042018657785691235609608754227554855266095269279037129736964844694000612639044804616594308608618684023951560398432462107029736642460117711486662781501789035136203755670091638576277873446938387982992671081638093896851473189641084325951176254466274894420309409132053099499623631492619623888781683540480118293754459890590077042353720564560845159894410219484810292242742767231780769929760721154458693213529243029250642867903152030243243999404958649033118867159681677969338457026009093794071832527493889866516713685464211578375438625286448442399104844490283783455229025900510016044491070505649848732356216573656412637033013934799402899039189202912560118434402900681244645103193044082723132099937465160241720853524726040270233447753491966287460013817916539959496404038744228687258173143182645455610443326830453699859139411411479737526517039875756544818571044705858469884774906321167287074398561294908575098383054807726233947224865043684206189145639075221640787285073426442653100592705173951346224180713208461628961184588650951548415961044578995712122333120380421224490162679942919742471922008265963186455480651296755991842237490066886870049661395581138897508517279607463007995415031627353271451637593501107498836008313002686390816357351948197791974258596606457253947537311889019519505360001285215385621527937197108086590743515074205469037695958885940356412811674082403895388905248181796831283548483062204802010734806099070276567296277602423376539602966430748718825464486825915760946020618792398223611095328147940601867510534713567218246858888981401728333693909595724545937543052625728775388487938405982792838200749078177951293396101184271540053593414807847645338331032012854929432183377459617909914070899716848596635769083396368042821960021213277290461271140614692737063461335303159240661324385462111317261973196305989355161789077900342185821844163056747522076087738919808831762796779434160880605571316440039919625852763436942479327688906554218026958237393378375875353705541726492079212235812132551951625357701128178903399699275481618409642416888687767309976947748643158821854054124362613115336008539008960074562856456324709963555514447096546253750344458687637712241917194526079684183327669642141142419054696127828828371028548385197993307728327770007691623889745803491436237031750995428235650967715732639459126368607949749853217608927622397313844324098196899302835223528387803188476459864102335473733846492933046083455420038324924214491742588452378749120864396115678175201702612891835402829151907719143215433715014025194862422267783463558562904018534796920240831930826505113029879736813069988056357027853163033748674931068898641727300717307511925262250654331675874591037301363896299538673359168776035066184995378749160609612915411872289048954767930751052193568174639193400595769510352634495627785506682046272135860145432862107161038657337522497974824453669900670599199100667483667547667575395594019658509273139084203056008692002035385108707816829371100033124387991292210605110884748123520313465586298813988234031033046865274211569177949320441009225603686213314793931321415974639848812656545500437610748003173022822422924619856825499453326949459598242401664979726506066610266180716050558361604860215727708585605250000979692313031647833652258736870407725025219789693760840551044716806584155417000324107659543566832176187021763625098983988594324724732555619292750728830937078256684118699947774207958479424348723091446096390064587372328118239004749854579926616356741495436922773284577671169318567134645524534504459526828931057309092092645798892353645297698848243520438608957778736853765696335709738174940125422970546284988013690716458681240369888689337249911383404560929598196894284935138454282800278352277213682475991007417427569233347337284283078905434705695467769814719930312091286602729089180486167453322570218708592331906804053577480582392854979547295323756617617463277259255938528800317699353382762310116314690406999121733324041784251486521248586642787459479847591276699997806285338773426151275157686512880359702063848429244317056103012128494791063664756736644712906640185821241403617363765178249438743632812856190387871523902326401937742045124782765776575962045637170181348949853878366764043867846694721120346338362782162263696617886613004115039509196910107191477189320490268533727618304709603889321593407472575046731123259003999836312435369068963191099263743674815822085490614257371344625719814784647322689516159019956683918550203008296937158225453600511058502161878957793377875895926134482362005030400087347126849830197605245559922256566270623744042061207641303553374954314204466218029858086250612951072159653705386596395576536645144656989707639933404502518117171938960754722256220771571278275001784437488991164481498287824669626872318305188791115408240089101524878648687694568898067162195924231283604389194881091080315587514683474546877098818321370689157986872645239411189047819850438012586049204705332209891544223755753352972163066989342923071694871261071677719094648044546425462898068895111975913579003175457322995922606172498441688993497949043542970282869651714919669556631103695679372145748861723581034916098555696005465032259357262258092188916102517358465321321398212956854766527016025411631682991665848674897833348060721199736284293181904004082491346780168199386049620560229865474768851599290226932355739662805406623795144903854795219624448410397006886756761930770443060159751007449774487111013970293418858175112503516361728166496306344150805222416878556792538559226136128857714272287054121760355711079693289277668166581000874401330018299207149870842787252956016448348619243922462961669609633659990272245242784822283865009161013622915490149304780655994090081785532932741898984399828155462189784353924115650291533976294577962983659963242152042905229439613529807812636021554004235863309091670227377243013032155613931433695043029502166746280282147359929388504498825500534733380278180139033132987978034184585075034653179811394130250016858062455594442541073636708320660531783579070239199572772161923410231475737261750338649331273768747655129669872277417414328946737165294500521062379673523461638142517067541609473957419434045653476836484604172033955920532040317524784790456351014225357288213336114561854095260073882747020915433873378666288030317501735751008005259568634924494928304262681761497526060816621471938116460352560754611043615751744516243268990537779215943632504066635572138539888206658081223991330221871122312434949307825399662595447538348899232093414398977648386058926859939784694245898646512679871739043822068770331355260109922887890862732594269726283157358046608011491161319794531544506214146708530131123808992527317091336753324844781967746341651076523722746516138196732572531962275263447406445986031330297663087586349285696033920511731706421642159391605450354716195445937646524893985001405818892988099941144162548647391718926753687176749769346716278288735054329986774979411434692526826174026283245065280507450666822649645288739709707647785928346038516007958936657049740224461273544819917727370258545956891871441089584822896399927817264470413748070042121344805316742313151041743788117508010211189662538666965114296334914563635936848088987231892403062787762902629554340785821657511416977032427986554655786768474808836957112574445597442832846978406427915378372854516956230026409124752778153970338305510696799881386101608942057305163868801583826854567828816138891637750222412524806512301270242120544859947523648081296620874026664518213116260434463004698710924314863770558600639552744075442558138503353219440730704364427357613151711133713546913420314793319693363009819312506281276923435396193359580697372817961447392894835381739626993324335759915855191541234206983857783054050054713676066410839802657821891325391200530013212817914328614907504881517434326554829009357689197729480704094789694473874217802446156998690407320231827278426017551082101426282425927444229768620750054902129564062066906649199459236984315412503687365214785320934703211894519169521006155245285164152768387641980847847024669601754302700077410017607623242582684476467053104047001566576549030863360980547253349112063362462585724548532115751238715065703046680026146189389025350347469411442793407033881369721292534801699693512973513286877655257063836423996100759023903142915886869220054624772569417766162549066512512985821018647292247014132900012278817872429262954817088774163979242846719070290847023035858686869025916310385132143344668301067679652322068783938279834695555723280358058879161839780033469084210818994295923693638480006437061621766819634646630959364864507294709281824557273878129802940207014130447926245781662065422227972374044429808909382589084512258099806143966206564860530020937394600372620400179681073346224443422802133033871314038975989396818163110790448185875464916302053869593264800391291432358635239154054347645269655223554552151271390839699720096092901073420332086352301304413924184623203554030028917792166541928054268619315037040160543086595738553774483983514450209175241716197881770564830841344114717327640791902796608853439757731464245617467009678710085389421242108564088532733375345939997203378979034887495872725235351619358051385579487670014004963503340616334737968419269306585011865184749562250014747260481575360073044524965903738756764706359214371103687148594452048536626595321293562992708680761818871029632603070789850834483168055816888679191459524583441809561740168501807983261432518534481238266446177187290600348982091220999144083262320408233534253213417163242083012361133567062464874461473373687557335768400132729263398543860243931030409110830261222102025426521670589814005748752679155386153750984167745133087965925172972634475474796432104417206382446587320287635356701039567440592674236623570075014835258925376846902974717159749042734463779612541699911404677622692711920779712110133881472457160673182582389603914718826679767927026063515240899800123171399143960725776495474023361613276444640286995417377953913466042063401507991149306246131919787727871434626977098792234558748992688027727200446472820177845139378225113040043281792073655905592413847477378194396184356008816422230443324804728914019161130709805679579658486007770115848902567155148281010409006707201516111378616075491506066757264804800978130036952106291352894412032490427732900897474947295075586844951861813651466350372715227110501081562659946791039058876055064135165506896044507718513093062478727774456844071979530138004701426179197025932566604652499349418655382938606798930256948264357041252833404007859491952460847204636748866448736658914680860052408891816983691142670699727357386166488753440337968364813145045605687955876433086802048922458908258633146508822857584753727691352354434426687776487932619707575751988431501149981104185726030752032165678638179844149289537920182138707026776922085585592831983071828771889814964638641531513023046048884695753900479005192402934627185406033265467839980844368801691568797278086731218194626003393998087581018077689917344546048488928001641946960155966192500970182288526984244708015808526235254080157785123265596243742221215081531477564539266506982647107448704406749976701974778703197746609766865596513819720596196963828416727904588083152934919407357932449585473430951364205886008980143021028708212596552785323532929775741443226163470113409443443471033369989147598142071153190438154999584254418141054614150627804086090647317048759171201802845377125292449553359078312946349053648610614932383977542167946499079736112943428018489203075299440246592313399976122568105262777036277939245787468039950349965326008281394164622549147759198448396866884004962983157135507785140765542441643161241512979958905976768669970482439536562327485435528610887836284685892550490436869963076941777683614691550575519429853668256067282113653498003716236874059080525423562460868453252553111190989997018147473664050959962033002724105684675106205326456745832480563001701135814269636948540367833425737755399810249311827831777870687948386427761333237860687488992817830239176565031554419871557498391439522080719507041083531941415560926059729898351566250108270975315009149800450473001055746044489631408672925166680801222505112006728817694305135025353284046962571744479246967864935904748302297115851269997300359129571336443655968733702087291581254936725071493325173599405880141395897440060666298689364196269109004208174355731219012700764350424355508931979160767058195370813812337938519137823773503793781665266521178262442267655585390503060130635338357260514975861688479500559743347429426879700570906688651591477364821218565463669230773458754709330823359395190616620688127527700298765230426739589016386958264109088257481550039666564157459621905494905091777679375477789462021009867122415635576066596142894893952133338721052915766970292002916507951166954556630471145776084277012561317274941198809699751285560200387652533978148868398495819653095026899303795115469546232426468810669965897764451651918973228654024036432208739467943286663337383108007357736696404791559456205175910398703964594718162436891492976248748241687555615478768049967306157845486892019067211434887070958528098529109154400322527170611867879796750356910731068679633636811770893805800885674081075737977546913190809419520596177356895812089929831321443797563434566845956784088041369922162659045584703534730771502164580836161583965835200868734978351563746658633018359148027185572071652878192132529883227394968834887471572717469779937127163290755784438658142211503116045189811752835237192753915969481215354583121740659157068397829313065776232677909715613719464979480396280313585977910372233720427902688331799344429603190835437845640965593823835189495720333167856089941718675104405113317604636029906688284045987612583934583826062475866829283992980911627451926761403435465072689352549010937707297310906739627039538778173708035329105666525249493736001197958516853442938798367996614740850412376015608648237081294855273677852833235687251262635478294790481457360534587586336712311263467700453466168155969358589000332896815819761277113181064131343762072641633785983500108966354523290785714660711412072342774691126186255265087497979602024369858708141396890165880855975518932527320625348273910115389078979447045064579961366964488583108841342360974468357897343189333370120799051485741260361039894859690932535491379105426864434255859280811266736169829301140285606493324937295219969150780234179723022937829702375573413676738502096325080202678166357155986213002178582869149366384915246197732968282161685974715188673581208629598826182854706297217075693000775829606929972275226570296943468978543750659583289303243224488525762055330650108848597674561067754890168949239587739843897167969722396333814032775372035005887056904161803259886610005816185596203800081562643249524055414216172575713402232296515959113833309735668082437724636091147707651381840158188477325799147047451718555856943648185070673238725828563466490014686143652981443286423637217581978491645631823105482156106114897062500156035458826073989720981616343703769174827399573099534841047701554427819460637116916799766244262541590040969686633401052694651116143834978059551281442459820010542404670924083081140675634134712287544548899986327116429464469283131405367637281593564466832401111566925268862426915684750487588681613853902201592028948119463006593089257830046139638963385394324327974292579074821471734074442338931938847553842693304869017307756118985000876999338275922245839922312543646552819041527098107645725608610158371812885454319942343265958855815269077167953385339274701178455010734622405821350732641869501940849439575538712656077994917014320208116588531487583735617815165080554279833173412538561072019844850288110997448542522136068703696379882966970679268464888579252310133009118532473115964108466860222349130691778350923712636357162155200694488829161450642627426021932617696160511484824075052224277193482175890313139947393848499265788122853622903385987344901557145697611968557264350403892556641086426957909259056854199770397927466959796651040779610095912225701804106882885155103310743471805360839087228118662769237529140326462833607219665808778250927063147103325296669818337302986272894464678467904585475503062055901761911756310013572581895579942895750648796839636982530949880254556842680276525794952725846211308020217738316430647226351632726922459702926287111762186428823040159021657865274122742136705687875472591772027358143299771221521920061922994795841850650953844960982531522283735134598551791050333650692348966670822842507638659452213133847340323368384169791353325188483086106658530622116976108419261973610188776834849016184810109452583686970971064327642819076964847323253228036524742262508430929386534298295426367501953716186395636094176873170148192383078877173068845883789488653848890988467700489814787156447156837134269720655802387476410667234651882619952359370195421387269230325168451560323160695338341682033583110734191659039031059650168611240730632613867965499223922557830839399177848626890274385840429425656753870012569163234117161011732964315597305652250105256931639970153095691478759197135206656119835979215341191341364250880046067739713742886077150949029974843803401617775757577442716705346021905825639177698071773243844846496539033034513513097531421598103647361851601654898014649970414318639707210486509359417243698633910561148962598400287682929874801066383252393939803845470123623985691155208846139849469818138464423031381142080906093756379216402942354429763399596801488153039263027400985237923109678029238454714841523111311786884684635713177883830583255779648942194602531506352083347343326064050544516617493595983667514912130629234718421459821175562356126894692923102625546395921008082947707055942012919493172455558333158044770071818354435450127782386337601583682564963511496749952048217761587050930693954201455020222978621467340164969978482998157706000689792611830828675076888882181351106794257234134743240274503002746251896982505756111743302010511650103928330035925416955861506147531030909185154152824077818279325528796556343319803347875952118262450849421325334615534659316103188690211784365193455787507185951007137699926885043864273250456162941426283054088179720045248880989429368411634683525398501536486189738681907343075409474334262671728281727527711748589301276897718915699976262436227652520082664998185967796227197770653963836474521026837204239183307172952730535071742208035434496000318824189691744771375317845856417637786931985762835005010356864671995049347014402294472141968244845903197465435167488002780224071336641179093332945093054239454315214139585631335074690370323136653197482005628782939418738329850646651790057019965701425842180082151130137191006088118569086350229892148266372164601015894326315570654281562340205736872031974062482456331128314584118500339970126723273095890775924145291640018227282187871279148558779941611871679526966594537192132412768981797041895022155109018097134924970946471294020764919928447987129950710371291192038849336489914976569718516907623430028540135607621696394270217289324602947643449885347045438198005349062835432042769643967289238645376012555384411189548752311950358347993709272364877501900798275663000736145139267786091980624403021306058034242051766050228924073089410644332907870548335737792389037738997960693449780886874581043711212758485006564339315381978352436082767768682033703855502250281069396978056173225389142399725156514668090540145547714986309451163976325680074725649990062445293802458924319399512780143152805086695154236677220516170145961616024916410109820650679832520037055897076942745451545420709250479406682633489577352206376711082339214642352837719820794502883202352184514985070505701865874157512462683598447036437401033916300357075687579121351012812939024653502447030528204156111647355316392621080657106647421000868515830260567263827403850885857705449203658838471254307882980394310715955892422946703632751635530028087954982679029057355760539985641070132603045189829657206750188636429359743376705767334907686664119605303219517119109599485651514816205986526483186476132024123313606965834586204297353628500510444685586221254502946586069609436691299110975773063321926146678004047749252947875668686515179973496705398289566043065528548936607996177149186984086466817364285729174539221792120540990598346076621153533623671951814651513571611209456941699609685254426048831911161163055499119600365002844627161188499944589786069795347657720416783621155220693098060935903604185045206217159843289538070672102914727254943422114568762508073390029998341737495118963900654881944951541207712018388694250735319741783666955059307335219679163827516353410466003792163913332258426999060432633204976114650019825724966182376691133288325089699533815452142413929419448874343512131292762458560075343496958357769542548854573111513838416978433750476743065346579952705131650738822438301638925462203019141912485089150580143021896297943176760274579722878384792137762779874552633177368418518322376603901212629440661148249570122239548913609090624074718714299012471437815206532614541506790820131797884483192610854691549555821698000229887224079099680436229310705763992062390587467801233075717016789831390808615014665479724136434962604469454127255983622432454677327445582890820135796370294017301652268749674306780086069440846541427283088659589558099599276159886843431807332533463356100074656429913579225313613718623961055020127863319543089385601157220825958635860522662732207779742917414941706595492962906359570686809215645712509664578584194433317670577971615147052903232001731568022318200217793665668582298358709534310194735526976117155091666582260681758165072089346562485392001728066762432450450666333723589826674891071735078023113593729626178816359464304346882065884598319681302754114725237805303324486964598394748165945665945275477649925903970246594198799385699955564452086141421852414727674207034134899031923764683711453103579224426360597576542765041921842895016901870030271650987646640822206262879227458445987489479106126022510552101595333806541896156199736468185076475809140259115970971986537819261060384926926628671043910710687517182237483545173282068826173978330349624422921966868155087429391098007711379521075967010339438210988413789299525501211656134547403077602793134817227531339291878611028645104065192225556239069450359346234296581529633297361402348508983076825625056891119119246337735408232119666687379098181092831722266154112415740520884543474985489785638936821515075413327814997311822254474264575019039550348566904475738064927886800917346761632482580618683227019272116525813678693120252105179072327164261265163058317323999770816324617470070432233294340125142624118925069640984006839752655293794563804799096011998985613514656456895794529418600118574768860208007447656717970936552062318718582926660404438667128277981661381238120891449038056810858198375633219688515951091950707624203433360672383715297442031645422990207308163171742330684214875831431635551633269321229286159806409520489154779067691253122391959910034995888768391645608612279574396577976851534277526708708035550899497655291347886541276700673499132982522262923329304931148729696078525032781206650568681488793135683780798883564417074548604254866115760866741401319771892708970821636630019638213208981594372871200896586331962844020651020209651373619927310994912678284219438133099342252676030312673086538293850583815685299055392167371619304503278460243688393307303683906804193755147837036137276310961137614365473522048932611435696104425937869066743171164494772175933635241636638022536541413965848849913235162581910134651141517471266366856065956651670380361120007970578130476468381409740301119356794220963360216353888145499246159716860543753011974978276315456158511732582136465677517148221212508684771604223815283155197920441898094490650299466664051571367020439386906206099284824631549260505772662600295319786530259625966266982502365666689094043532907442202331839510326635550358560234372152038778184892703274458362145598568338136337206764726443537450863860838372626162632480568565596990571433296609967307756107639519910972656200196212376511883707508569744013344472651936843956428831277380485842380620086458489177728057479255924982715742972615098915842591206176289387763147717119959560119913866945251966232390430656999777358722187458703933333791380065502450756797330799027638852687069030842680867939995630404921907311709412506022747719985626276533772037957146505060754465758029662024829119565177058256488354436315046588417933812941094829602997917117269670763764359190133020335454018193746903335305453171340034535336103853619275230602041261559732382730909470784923998413867492602641289091834897582157191873337103999220011650553598451986406053973132258225829718976405469834789822546256498643444873560342526713087750567371414781005743065504186648899227398742154524741512076841931138783968936627036998089198135316974952038396871830814473937078646619464370928226474468716618678184696857248965470156602848917362541166146296401637024525179712194344034051969454571156780210419254116374246340489814735775229296898342757662319723465322001321614622603490897905034153573624934241270684522134591961152064362128496277507219736864406347904288017744503415221249805717175726032690864565805608282360748939833413492467975366228664195374498214120368456488634759078469583314579420584645004906013854965167109893792550952236395093006788936054047553611149871893765255733721025127827101138331557439416399542271650305734526689271988031436955080725356220146940970282066354447728347258077264687441139328312142059776704628701808848966710629055518275532726667406634212394239548710385424580175419417095885706914347238700894063514468823774032921728457845305829497383691078018313687608929305292197975623414309144940930025145749216653176103581821070738351653980628737360475842662957024856324583241544811769030725132960694751555963607491501896846569488849796720110114386676474600961169440173969869871520036548167303703151261069204631228544692245181844868144547261176918948556865778234319821652091038516281360952107280806830357529583509328553865838163448138158882266360314343125569383400412628822060784271217192739535128225781975198471798862874959142968262150200832664089295227017701313937403300760591659491554320053148932117715493504493671676901418363357168945236626234471093403463243241583288758905417352317919670772766201049874911546279105106098804599052205123218306130607391398088404536062498585227795425977806235633363837400483297068697988423816456112630273319092358208318827575894765994730232542648289004871110220133596283489702470188409999656041562985991716142881544838341434029759727636156675319704222083923218508311947011392966016739122973495113599867503818016045719578392727387444768360856521108386066084288774167641311306414520725757521787304176349563492953542228916502074986145135048995958595369123031673432820324276735819802455074815015440521271225622358959127016047721269064953264068039833835576542306067681663249626439910482961534479121433975796745910190058037673723421527012634192194559285552932832372497290040992628156798784161424159840111601518540955534826459133240235910653200687942419752229302728499319920266673231010424461383471933732036057027329961743031427398863095582135125177010334886574177013432554225259649007515694088630278986677089032923384970428202769749845347613590080466610804168779550237979744360536441164206671127070451019426310614200456366768486193304933217093630881199849109401149399276019594538301392844512436210637845914637724788491289761636019218080735608336277047696449493436562952391699120741882063279285828391508369237385589380109593821371790184835147207232422974687723396214501212057382899774955300696261580824152500601096851524669777440124131478568696902095092266334546909800433601545529803764780621014301813183134320108502290177194220223607353321677300038351496726974470386754067771716154367144881630271439623347131616919069084857273340788680127800181920855977887521919598189629723494431894255577232452805902552992694264801838751956750541017310973478887323768642465090625430383365456153637786271240664967702285186295631178947508035625055000851730384498306985155454938636021822262196421706021530189810788394137621454905448891503321797745410623172497703962217953181744186640116331560775059767481071406140879858245758173582105488100669812495533712740248291490063286502867872846002034183035712751015633311142568392255889063351677669413134983168694857722967240701278799842976482987535678784698964106040694900421619951315482705913342486706315806846876156134512292437292620895767710378794092304132320678309096110995242982034024585564972524729659069366386655579426012754415912625228200074811179167376100968664218821979223648257116276953517807264820032074823097516906120702228081452583133574049649965513937781150078875893192534321976459795638252109585174012942852577993578459742672115271379258534782594260182908672897879461278094921862371680660010351219759121283134776599419816723137136754011692516325230086093896278580795160961658374890385296415610798899532647207351038924160682934039501836005894847563839455878942882893437197341941822725318027410043705787854337615215408729506628958932653186498883044818218983525274546194659602675579796017136611740494895333958017737932005594042668326531944767775100869982388353844799984515238679190329463439271953194088091761260470176924038586234073648970894219783490379998773668831256875162234655360711873857324340750521696623437862519674928730249075079656979836403355169883744199018747145519481896357840653709506584912517208814554445209227519636481580166685199444659530887503423554599848561796962788672387664273003378996528797727966204813514879859094329450798397766192533913636513670602904183684068532455769828851133761420501560789689883087981095546426744813610360484670250847679805627819067781588399917647383873523394375817986731358008182799360755645899603688121006744896313289373165453512052243793255018148822313642528700518835535309344007510638952956382680473266279860710357273110971868531711481164422702059914281844208324060304749728696385556026924926296119702165037718096254047497624539020227101148776109910069568681731438374613359359226429783254106069241876418402207501614548559162675698447362181474046348577571928804404357431935114141561720195023821925516047090679879670433326581795648412743433813737360452161541892276928967980141176406097734604692310652380092053964702629856118635535849474940623367335422801458542750479180454652189616206043618755695376822970436232773637767183362716891285982103157678439414244933514606961916953027541629817407383108907722422033465989834804251894210126503077363866104845884196191308060555283936386651578857495176497912807861038863059108172506181381092845404718071078176565433941129420574203036977256680502394281498932355452045805553008974195383514013251810093251789297279251547002492054086124181213695833127608511587341781427186896543284034236923843895642945275723846303923402949188967977174667966941196198580923673567913802839105600363384383022491574583573595189519137991903901515768440096278610272872680224320092969653506753113270816717315384367231291693996048470101896799046172399122861447129796387805877070226630660692982107290489738026582935197990894470826567154972292428444247813256486038474724301341935595807291019601760599391296277346756723982079675858942942063700749759119820793505348586482177997372298132257954236546350287334698330864414444787506939019468796080412529482793048697011916872240309379514562061860960217311465862324759190874669728814073972088472080808644019078379569520455042331363844997258884696436611553329700891746175585656034483455904748700098724965811165736339737473427242607456351050180044671118738955921745381415075111253070409852771834081795148004057194947572266904534243546419000842344376945107858012533668344111318460560938606453206936112737722201653445587099868392398057463792623484776540989088763645543867971127726588411730802815439898740702331725876824078078791196477580955999758507843781298072271879248403075029730311408202975783642866795474467086786411750024430287494206996733598810631530538531831546644902407786175177928859493344439621289731184339813902181640704594203761681168088537061019530308853597382181229927307344877756979996641810005639474758512432125308433164996991548009234401640270413091517817952148167645922282447472205035496529698072212495935266235084405633590335661682266559110548001174474635871082509475669474442953749585006990914146096203027568981731155033418631392814829193708317238424640267191823354728589749231762576857312525333355805181189382540378218984264312433086906384406025885596899870310121155628546329769190853909216740156630986894081183976548795632169525952574998533809282820639906994753408729646591989582187691148808425779469489768399137660693596805312768486679933418492356124763221952797544198052943838885444220241371665449937455684532948936084579980726317307772221444224853696649505691757060042058691813596264186705197965200627960911653528971749098159290108644032344910053416033958570527276005587871389569077677891376799715259908016272837495832028685122703213485267723589349716316691462748335305545244444824395922754335497886385591871028089133291607968524235094256740901711356837990270612768603675721240215983461638619966670768077393049869621796173055329380774590400867196386804755305021384624176042616844963174477541367249654654116642293598730468085570368747500079321821160392715939567669734438607643467342779893143718367540670742333474696033896129944290105913759623228374291835676723575711274179841525707822706178818189902694442096692097808272236144669069911968706437441901593104187540034457063403417877732926786941603720324706365754869443859130827029086940230454694761694040137937583052756473765541640323086569623288436436635865860880040985573821010222460204946093762702033103828065787225060816045502752423842161356015977945821848963584555866149562438231610215352049229328123566173105129015457592199849361887557934436970710229671733991530038689093642110199644901880869467772660055799960545520063544750994214203555868223888409004718946795950595831381500473108837232821613835316518121073221312033162054187680717369616498952084909636019398564823933027709873876242790871580919455003128004837081290432255294474376825934038719259854694749097532371783571662974035070505367719133065958368882215245594079116144308117731879040262475680250055350850962550399942100910473315643900173275824874599026605959400923538613740029132063859204110092823148943149586880833284306478771081118033985780381354746222680724372281788472514286639512184676518312553390294449111736351254354150351942217841945418261070948306068797711066489373255475233833905203333334126728505733338055004963544600331298100037449835239329727316107346329824206277742321012940368719489608677277482816823176663491256538424442642623468968577955423461805618633256158630658970556043104461944474598934649451263307404476769532171111251219108560948664830028766899561678350150580666382692977538234550666487785478197924117469128492580566081049697404657795034962919287144876446165749060176448453306157961553138050061649772188617886754911685322183849589420180287748116645264674817846845728537751383345511150124051138110746658156979779167973246522507322008558301856464692224810849703468091034022555677982216655975977032908775484942163238477685341239273226430565027299069587110275488467497493476752845991684662858072631585272238376060205791079657383128088349279328452913698597969325034798861704679642058135685155704267773684850868985208955601759509198847437016578426718828587232480712919511711442460889890872624909118986618612513531325796823759955521315452417782256998974988311314037434514712747412362928457310117596026362027653421813024087932409198202337185797398175788007105887682933145447608778378623585660251872653153317503806622835035893611596351472601116403792149417949994583761463719560095939561380190667889384680177308233357877128757614296837210122565756549927696098993578824345785330791842974836899525111389913777144935056078903647444954325677318022643384176710100218185152270280298727750648269943700089942964463435451856328457556272410614507482858998953847155673539424000560018113217300297602565983687172499536821198797019081693322122251602835956589679506164687483731681412471868281389595322575778923064741277948489802263922352977366945487069686022277132716615113907103261789730613061305484878659409415845528122776020948325522542431502599968251363712595211625428457637706063343796747232577656591333963824392881614797427169265294057743861829735170224191223529033702268107430602186196202109571723344873759781378833563559898658657948620404252911630841025356035280642607544211275902029123666988280383478282834324324671789421138859780004643776763616945741429779248258069773822650060888552777063552960711821479137155030056738322317191521356949558939029183681809620894155661259844413629320467428889351864913431621333400883181860701103658350683776497461752362062933877694903924129408851029752435357308675831529052577574305608812927474191603120835533565680106106283819793537485146494206412703780456956921655608072977227106436540656782572898938186947728361036827333984047247656626504715642142515058773233985859129135819350353474769128695079822273467939931350874405827897147140937023744886800781777481315109851102291254713071031598810708999227284576347908412496266331330143783661610068698819667082126449132977034094805369491766830162473583505237793483223094667496863563939188901543417419994068526728687407042035071873106496613187500947801063054912575659832114610199853830386566337243348866293379822287204519439073858205208710669791219776786085835036724224362433514486782188721964520599344042107452062932669319362012655194694955560395470008795674597356989815810447104895219960971570690715971532733339289656483804029920531730953225770515626784307425243397381112603172521150615137300754933672105442170519093362779345824239475371205538683239656234111401417561735195902854154474310662527545821346320412656573361022984517859957991017269090636124101866498120493855045546648746322627203249120510336070667405557851573753474503051550016757775309408914712884682307197847491135768518835634563548053515720817447354997108293714653487948065373877093307712402375024222732346742746409137624394120972787837305945476531117996721415407533849245439435672639837147195916422505194492981771696685077954955606446237381714406615840078738962349681196226687148322139020973330502949347057337919524145193359522565770283082020599191194677508414841205906057201837828336218549244034007278155812351716604669562024314003828515145278881313787913169989444222889702838990240668155363957419749468315904158211985996289032469644993416117537284993618087161576418152981344004936061497406635080800058071747807832284050774564669406557275030373511914436667250720413264459618992746969690932517212651089774368313452092307329923582240878336557617289890881471334065291495674145219489097090379413407556178436241944802788354784037886943509037715310907685462657141433112977352281923351727577007581421153593897091439886240156767289858449682899753472554470237908545031780653410565422025616958344051648571017933849852769493306499797058213629560984725758585748321884418680432919982506820089249506865807520378211757743693324625782298289251250855624690408314978587620024990724679429514626793519147595141825659243221938698183666231168274414288898938486751375628683421430265001089812185026105659468569614761640801171589968623651880732692332270610710637017033578971718585864167791514162165743712075208069367656252223872858362122719046130152669092849600458087816945574529837466588922857231332376535797640390880127875391976426466185465805916010379878370919869477374945655643795320270827403643103910722444982249663758013297498210564601625844223126416632770193288247816093870540446868658893202653202666504726189290730314808492713190200007421585082339328948796079077244156276005210308642071312526384006308052710177288599380616829725140417013096054667790902758050403300342691675878173803947069331524534017072486150940902450731943525201935374879741938226856699160929135061870526532920194411961729757531128609558631943856462035114819868522704865139083689230700067223465322033672930197466944106770615415944201702131281240788180348187253715093512697742576907041202350613614783656554866885565754094298898057396859280856526578624670523322838297184216300497752552139377054160100117716271341941755969673603055199681946969902114730677285927160711470581503092742544362739035950933200510278364353295069652275499976733254509049526026121122063176549405873363081409487917517193311691421560699631879976280959280643765561566706461238065315945266892799343234266196953187630033301699777729371154500598014271389584978057051097391414898422794124234244715228669592162948234446057522437108597060771050628933028013672569676465205118267936230501440797342252521318114031039578706696805554706406578565525166110906879775383815457525691714054621148795613752215023407323014163390456600555095053452156839302954982131853192840404494775160741867531734901607039831097980335698837945636489081179809673307697762618657993457323279024830032666778459884984243052597499792575028168939141718409057329376770634160944223668218856636577478185477422945136490149153996258252780210128795644302738141147842538128540015470753604803152426705848802105004695305466963447824237746452931197681565677006159643196970896960517285420006654731549561292354526769714460917388476699222406280812221765446872494678621601687803973622124627901573068958540367227390319878515923089868266503223689575316129625375315012736081710122579502292058847046931032406489936975501390581814273773038149598327022610663412783889922467463069573709622305919425516654101298161315772459252095587660236158270710614531150520740027050638907820595977407381688252078045388238920264736703666209335675497776184100830238088673573892313868471557850846421268337108674608305802354876411831647225325037176102041863415339571070448929853960240539886723104169649610557618939386352905738888473247502196113628608848938416230127310578299710936239803741899184064136220010765714556444359712536926614161800722470350522716681975214126003959996084455295194195078111405225918348063947183152469937855976258217591412089839744401269990858541211016503010704593619967833548696181524142045976543409168724572546455457185430412054044730036866163528489993913849998802692388704781778149496559460178452452456849203243247434387248365342404836264691273596782028974440979188751483927883764184807456183976687757365330243464249100668698974387923640616369156207025981887588150681719409653169155173943049570793647117867908073571751510607753613531651934139726335006812246024281450282385581418148537315553944691447778984438779749743566288446819121903112277745262851476120408926389715362678273680991817799558728333711172987091497291515003309139666233750652078318211990845908260855509799701810662028697821122784584184494826918855845544448492126958325820423802148530273628024509007588669672582011694824254183854395279366724128494156865386664598417425861365558287381447803547187334736837486745163000078973747626835897156264685124914490066473323648853824610005190930385295504966355203863432425088083807154068369136355974759345026902082970119983631256973027014994568371110298884141440771184695315155972428742408514733720857550990302611668622359313988896039303050330416057321141826874050816257052621854349891861473933186502350875286700548908384622846216449754880135873767357865228957574207365395960729477559707875781953321030975507387441432749961448732905571065212708256853270962108525375942559595392100085634765580682466518873452053601614559190448468519275976275721975090822153783454408014347559626447246948696064582085783798998554213627979908234198969217477857492802107997794968473203642911114780420439649317108328045381617448469741832063782389906271285758853521410929908282577894505332466250956917286660497022383216074917379565808266431245681580112140737284617368176184569339961577432560630088820105561367097080193537084026086615040064693505203989228195688231233498123165931764113470284819218778908502046146882941354114933356323614829315537454729316373734457328436266767398617541637468300807915122319103706411412804032521580904614559968395314332422064652624632887345685540780688110257701205239220268041567271247896415317823977993030749675477790111233787435542002431112498801006358900129299667439950471064907977719956872937839873465440385968883158714086614453958656387120451855276855956581917000468722986015875045160951304324838830192864680708683962431603397056360176605939645685428216432259879600108468288213103361763294630148681627003407220109949375660234682932776902693895654085993681427458495566818211525240968887346633553824576505481559699961085073199247113480395767975451492886568588196507683049403163616756445628987304023254272005400534153242237759956027381525231774585052930234658316023064276045275523041406100245524478436763257313506290641438220169966348360491610427557719475672189035241010063500896905113161895225656746865164917315456226452864702480674272485358557000962595682726432517830927525375269812365621383564098409822230939130893575960947958595336254722670626762961431052428766904602865767790119334180126628044278430558201151234462316102770385599296093241214216583644708062722859391959949914207949860149046410464634208162095947291671919160554447784801047751846435047302120429169171802230303615492902359442855575981474014868812676086945672739255821379598572504923434438519099727162245052961471031245329293951827224189989343453211961863512652197031622240952893720685085611730522466524738638563028481600446855701623534126674668025755250979654099867064000542455742718888653309440095466802767719193699146107478282410190306444029297382450156235482620016226307253526469407950730403161218539677429573934957312218450222233217426800699563587499669245121403223638262954702867740774186737574881676699292704773011058468304819321966296397626402452764658743027269667879433650425324995794860087016332296470122162800374832976360183976721248858107680623123906751349337234570579905248956989882491945481821625759420286235728803641333074268492984120694343518125485512612199035942943077227871788190140819360283258609820067552446456610203856030293658730579562820765835968829286726516944257646290538107506121508631719565628947800618215673122296701633510652365620764246478404624296357512902805596433743621282515589535057513599122205467558095352206641515502222937575216017575764189799575784143845724538565325586687520304711233195376614997065806668576366064320156336167784688652137111376674337892248660513923493355770595433490848537533162173400275352979270802218147097993854866169466225231734025802848039377865598057313021380240087156738145456341460640300666342169747459321295571220116703523200059341415799842584649460976354764544421994503151340391825791376989466712029638000857460704127872086025966050329158808250555574751731893495263036051778950857252815269488358083818705233721480843289304097636643870414676119825549886375718183342938182904653827021438943933190499788355873852625436666591300595267623842726107876809113874481339023269621735729115089187880451862025060096014305391064096772959746726504267418988996988467137879517231773171476012204193944621535717914806393668037992670941009649602469017627651246871377157545442942085996853547458453059512265488351574600975520531857806432465068922541768621686136809504607551527433788907980339691923699165013410847230926944237155147344673189096505643685842916527577503023507942624570792851360156079521416339207656841535213451553477711430059869262572630787254364569533646167143489823374410443740193525720358326788586058063292294711708259027599552946193876001746518026486645422668562463852920635768230297287689830401362642146944085566772925541385480070881464999867739659103503216697191933698453843181035869611402065092050484773655526535718308523969693335641423427853987806573572908979058278835653532259833197265952290738262786549610133278679447943271754844538641788719041758813290115461179505265085795612423440383306917185662659468599490396539243389278110772865248536218593817047741292367367147600068756034064232864555421955101208100287338426070401366129163196448054899659456155070207571387446451553161236705781811088838362836326958968872231413663588357600504251874313743848972122489153295603842005526674011990735758037937820777742785787582753080717343302232691984466143069179960099077940032417102788490444180081223095798229202855493089453283882162162152691521002645134829341477025945751199620755333480376636205821007355365006350249199592272960353598156913863597092294176350188848574566421145123103402211656077935481054748559923163538715589128817587821423347988345793249045374148349083559721551405689200537264994888017606461889607742010493757208612863023159954977970670284494930925666181145758888471929185667447874790277462088574343476616105705994700033570142407431906405305011778766468398604190942538725507007510061385646735735963804682364879789369075774122879113013789045917218309123423990871973390265634862201149707685366217611342103861803708248445454427924321529124094168461706898778901231439469847779313889826011531048469757772721668385447036656009611175929577534478515728182807648071706944148147390571290970013915579731383963453537190627517251608343384038091124328409938531677005841995121126627997137476921731500746622720977111473409250442403279403693462981850169726410528310411776914072913534407231585392111193751750380202272529250938113661369177650599655292307553081677010140635124523127837600805889796959597286138905147605384368061499754123189326532243161460924768600469564568499134500399639776001621592066155393532444991307617492724982680251841654074721274657669139428196184400133646099879907354067475258675702845978214728948168860206041783520698935020612763191645115254886081192514306951901399022771072470548164088317395403545304611356147585033129255359398521581859137377252037472787394282416681691582843615028370235831649064237921767032151051234549935134675490741447299489948471889678056713301752574412827934413259429926606090304948710047911934637088342980522110493218928976077168823683257299635626506589185144246066068663735591164863042574033036743855673948338204890549030548626418171082431008771196728439759576504794298076964228652946690719665607095305898363414073505539563588269009981670387588442212141059518272280208038790037658156146235697845605276497959123834424880977136078185899574366954978863916031062904654350382259481845599032786681120444003786600541330752804933128579176226905502548466154795578916195858770350167502116843423549576828807589546659638413814968490580056364735625632648210959927082798442216429812361164455219299568089390761794713038957716256086705057631851887371090799366687666728704947136584534153473198621894319138826077384153714897002057161144432002742678546264091666662445129270122231676457344315464122942772749413285024440635591883587301821607229620478274769870675042804886541893545426210440424211588868729475676137897880413460123894918406808885836047076714225252521336731075923577280501943595787894488105785681398506427300116476282068825602781884748179626486915288315993768251466574401519281588242713860909853148248080890123843491298738160762922340628205086855278545210645653372702194873967336360604809477703472296539423820167928020709960332911542219090409157393368446218420634487171812040865968622152015680850831429911514943255239003719783223604015680881929619467134836470803363719301898622689197574532040324735289621678296638849219184460259828634510967908326256863102305786677636685546090275230292942325158605934576894405319114609778291371564828652912080687995872848882125130817431401709276362204253196605952249610474309783407185931391285737255756472954420403157864581277769368344907679366882387677773073955124315836837035128302005699028561234030950628036096842237590778844937461107040442630551591294111348819650209835889378373956546127590653205103260203905835832056256830020835640351743123379204644247713726205489047849916930607669432976384404229292523437302314717122097985176423085386208893296343362684645390908404831596255219238659617922945417544907986112207983463778155032236710072499440894087111252774166024361097265329164836484019975918428681313289812392753207381904223296483997125514316104528316653342536246734955689259212478668998282173592799984946034741298563451970104943302455577524966821133052037365144117776412698248731824906897181179928318461216126129998049382466360767771166856490664356005162874086303239445066196153690104357215667172894356663700905807413987004536614285170454675442042784870088961637597039248027819760251796471138520411667484044187197056183935223076088600018157529754976133630562227573826242874399592339778185337082209678256795774967509741025604412113693973690221829475861589769850558634608344406544996948929812754068887647464543924878525434265162846337995844352278434482554182600804577050669668229440770725010338108773379217788438594702889493876643417286414467696054170851521973742671196589893682424903133474066360391700330248414699836854724947172765685699891788429648131670509669643707852639076021700509358567771781034158733666470305097804991691607953717875214263569209352953417017033199694644427332486225851807916235175570297074420162719594618308260247667611286225494686044788136653928971008417411941365732926751541038174666484687495355717234315407582482273262372451768090024912684791206645074043722326391874334564538033665304277326793568844014582632855204332862997738646024350388427729701232620645147673480401325888529955869983625686025456701374900698306666722077639933344150688831480848999513925748962947809973445726096228676944623642538229644810242844402881725589383366230884705090073399674274857016686214832081493747287689771377624999390295744009981979115450595199068549110074864177352089798443599480311111814353408507492394830495098453205524668532123301551587555778652695408477718832518874974257813830859870418340394576465445676241641904009417300197838926311762621070649419563033697304355127431518457622761637205231763224204822680539206729911658676828208448669603665044983072553393844279854089258511919923429510749577102279311211342585824343861091690837138201457424821287729974092740701537115100144770092312526490145710926968960903542835051058033618120437920954603945955430924365261874314003128444511312141074708793062830142411300654447635034078826485037844929509494035023944569403361307826916878896037089621244326020482726777130826784910998639453727409995523328150624907267793432323138529376821853679480291580340476907938335380282315849102694431563596412145164552882160149972640414711396638326989207974550742148867515417557245474675312007110893049189247549379705925853679527082049635990999354367568267336425642390553903975256798408670643804814277361971776813359273477015047940969364166250336576766478662053960935843149601302280624481820493717553187314444496621145447458640981548924442304630755905673057863163162995152030819331577711519269330045161898399522426480460509168907656959068921513343745657044742613720076080040487911067780927451923527125315141275298100641013266555653392937360222979667265118494043207980870014940681438119073594665826963656907781477506528798192247906300470433431616548907405015707619797154383107735557788316003215876486012297418531321704400398263586494794523597640929501885436208065270219468614211677718984095743041739996273804033664211704805480095895221056094930000474446418406563409694447257814995009101172080153982793491773270538842496882731435478769455774145297090821918024798766971139700013623058585974407336118274922100568509725552744420428674791860873717807653890962368222285939089022492951444999558372630048935127434535409455973002332327137171309476642840913651836197288685704308590583430866805317043833449602013347558806111505088191885366158648412448408212039541953219270386721463101028589548669051453629871759031823601736057857524292123641943810410391875391564516749699055020419837859686396425014420838712187619842386512354567108794432136917921144785160622032630890009563206371710000513770143106277190705293981337369195345657928438912929173180762828259059435488980880686880935891125032779198399365241352079053942938548083572459564339076836911323564218829941266216221915195708963235901368887887735772901151688434336776236807977073725939769139479319487984090011672133887495547402134499036429277427102752773770427459044724035610703413342776582561929112727202220532414876342986456779527669729183859544908011174457043959825782676915558054828918979681012923714671297181737783289572290312725797571968158128770401456869409159441547233715472633741928145067743104489511132086324288690349251313496364355656478309672547259877992203089480289709419043410771124199184732827978118953502551340048268914481857595397216450327913182896565868359826524858588550327733059536967288871708763324705877958440539470889981180014035839334865313560117572320308753598001803596509437572573862004936077795728701781368411968486900217460308299645896204124282522715214672694394950177305944537433204238743177991754426746772769067022472772375206683150902986027160849177730011544247459947432716599237581665699420946518674679162413648845956062862661053599015826611030716908247872063223289439956522588251862104284443824759811552268341937012403617659856709644085980826840212831148509821982908738693916339786736633272085810424299106806717817370394969330671032743358354199483136341266149531506952159957996866661240518511455581407696222885580271130268636348181685741109131663066914282208731215071108807467485860813917183102830584047960043970062584179303550170813378604971284525824866554987465138073816693810316787320329171831244728600383838822093616237003331018726075445524037459340409583561890647081171849709355889615301082728137190755457605876972716531633984631990941196703691564179104042849682398102909556299531681020482308015064773718830312839260670780899670707445664003368177593215251852998762689255362512616357330185615317495223824561149726777604376885974274075987845230647874278201716075320817979437993632882559184343678793839004014363100407081565776292527147313661804748588221360988328844980307985424651786553990941916530284854935306532739704553114265739631800278160400630030116113176866607805861646456496632118233310118672893402505451997855737587442289596770658069288521480913910984432836978515782227417332977161557613417446942386550074263528981528707808336762555123319882163667868480480659244215507358980327285661082257685356189084437703973146934694833445529669930862863815422690309092205316030300328311788929381483771041889315078949945410579127267112617026742959519166954308784882037038577527082165650514966724294721918695590056152952464824396987507021858532937447530678138360536453775241030026411226160345486985164994357143226635541414022407412156634198864952750287050829252877195877949853264043279589736176738039618625832479875377997613201679099711463160550423631237119774337492580864014759432249459893602978943414160566726630058666003165438392970688435754361461599980374507546743499637140331384522251306101261335714991251199291036597171924126817915674730677675272683081517854890359587390632765401643960136519349462829980582837596670946396126024945062411940031369852281077430509646626799422064135013802278696119682156742612374549578842217969195340524293962275019203391172558390123266522023168879574645226260632372307448320859269538861295060487251079981380378643906728538615765750773729948417783258311168461777868892052796842724590860171484249593152598708602694483176868945866333999937532707989610802422103801978611178086939227296876012598045017820148741094577745370042932149856451250797782068713004049976037834353344036919650499472868498337750451827909517998203078071651026386337926781691199563286309238794665547577336600092683453444798149405303539642195416116950327821608629518265284941736721164599938419530059305623329344913241728644711112385213226399814559919264222311038618258117737585423824449124515035079333959526031839251775909252826098671774901784234068945783358701620817417785786276197758788644313982290740056737937152399926556771176084799150146375814458908292291720779259126726161618326042554504176496449407068240903879342981159424989613619586575733747574089479605447656709440090351928794849787364868338006961931764130262566401706395860044073615042254520404044090130314480853535587934777123965842382657388938663226633988146090394889572648832367299032754550669857615086278098235974985112376494621464905147774163450940868716870827761291416856094779716580126867474881072892893319508677677002351425082484671277837047015792474138113454520005615131931523021062830103817097115323295057384397067516717193815179209397904434153337484049022173761398954592989699241978626719761225531432969785115159079394184051193917850987967039828972887948398073383596955056458620477592099783121814719145076454340491227602053089721267969509060831920875864821095820089082894034565963605976945335537196322808110175253814778376654573336876643235148225358122481487766187886811953335927156681806673911523866408842751465565797866285064788504578937716817072590203058409546426306809995812313687266310149710226737269827378612687427200787739662110152757639572698562758836572426595001395699825842453817118497083494467962817908151780473642040846348715174336936336608861494010295946169643348840578057816823619460318442107333190742218881073716321385905968669628886351055421123276059021815807129241456138838516881760108030739224914596214353906090768525662019311650151152915070627437872712406415192403141857142189346360433766593201964244894793201054945297596286879018990386434910168947663751307216532213660256330107057481426045890794704628803588737596802631087594805437587893638419580566174253531838798012249407139023714874821174301056671451548145494889323334617352048581567438599154132554601044687319915105795750840479797523987711725913305371536122719221076439680821552973583590785070738294155260814930259884859514694164700552309566412477347220570341788158099723271524252695092930585946852809662634614974044334428956598674916211708539502224511847795760250523987205211038141215403133103288785990530804409708492084686922310393198112828832088381943879885273842113543834634836378336007828587669428986648661545446850301071491775410445910735606669123449803310986523256944278653913661143759950080583328619026288164026344014205343603514965040636943907527745791350467586012780224093899566834538533020520411630061256205225145607805382725011911477019841276551736707507884346271435379077446964244232775562388831049848610280398610430544811988212282117721180037617977006649725601525565030126914423383789293174918599388152718151818746034992432686974475580026934289251667383605568322927945337025950676328927069736257552354312397201271483121582644854618615433963542014388189209247568931475627203791363006981384317144624388169765119518598483755865718253275170785228487304688659254491137129226648087809471381595894709341216385969539301035345374369098665616364840595294316941811264744785576445162382254646021757315581134185301617565078823688100783992423725694446011354112167807804880065582444963174724780833851576931908514905781768386276136711944648313904239321584496883220712527860410265421107279016598187901937937901824540595309680732748974670652205994248111073739779754102417009417751742705182199647895481421901540741855252743886928563268290248472330277260693486820729984239028245613379292443494123384197657920908403473295701213919980174305006047258579704173433986214308106053635474894901228795846063421504360097877368514393728192483450735220189157789176916093340266945958075330229932926023547110772414175487614957520843220958172125731939120801182428229738267299896882059795938924275819369123344401216369265583967807572364596777494981367418564440583658351005631441033544487772400180531184140518488414452724893252179977217237250193314739001334017201714804560091470304501789027098175593931043387196680077861924104976418366521972944370958525308462612149428362019958542051408944872783800578060170892774293070947428914402063542761522613902447537093322038638366177327299112907667590330797004330872712145383867451207872145367213051518949298249364128098448331374152849078720394784071230445591091251888564588949764358506064276402235293391830424999695753047467116581488395853568052141177312606868559264533175159525172922055432011573333561719711844338062353207751749192984863873898502833688724732067931533447298278559593207717357279259711656141330760588824412553712711614790742423469179614177186853266779637974728161651703838028004675836329641846893353374622048014239364067076461386484012763148718456941420458891764105155803655731793952826411504090517792773211113015278593294106125250797186028001455642149378671646981562216174568295333284955486633647401213471945778178542617238465139767800108910310132287928602203508172309693290683271706890594058458761901166127192386557208268072341683564928130623713238679128743139327542874700982842153162043371308723053989554928753902852633382837237765507306829913058629533138555375325512184747851825758715706782362061444218460530980967642952501803357448883098342719418228758479716020471135782696180800030599393083886183035985979902449422006872265699839152826293118379701165474661801981816730245218603967734517701228655019608189316208018732793487701114976048563971463517401715958112810098436038832686200768522462291830222057193438100311638310503783042693841456816762322921234557162545480880352296223003808671106232878661743880279931974917122658121633738996864230235782933936980155030013238401183147117849376452093188993069911119098211168308135989690058427366760093641501829649921943582784596254814533004356367346576128096217742899716639380438954856610810873297838920041778532703826946755948538929054044397302142402206583961610407739152714396003261428509459416443998717272473528297307645813330677112694294495262072321601098998702771334357883883047517129416171501582505133234100461181246411524758353936683947109843313293658238417327128433105928390978223370185239136808362917683940622479601052571109173412482250396479572935970179397419401035460292575191424346428962664285534139146747754144451307539877893414114473872731488619280071104189102879541754330615611687803139639415124239042177544001009699604060986313548050857913793908325182236757839329981018617493626249587439629903155113838335552572133104196122469806175266690095567107270572877230389604598449163299287262822195156779665846961368611827226274809787932025097432550790357115075194221605018361153635697584947469434752432139369727786221114791412526941673180682662004446692864034765426810969443365237558711975726488829439004725742561947400947481823201141747238935250737793279251679708136856102646357572578101547030050892660075584968533509302532859096596979817957532028530460759709785339797554093779031803226136413074913605835043376957660274413093245014856639728311282117890767930907700582539252365352517274164899036900910135887201376081024806528662895982747806816152383360888965099448280999161661767912550163469538432542380651244603233616855396002807909613526165373180360574447740028807707667912517927726517343241962770151297963339658735690900360876641335166343132699701064936026835387721697749955744360710714627831451105042264424422231650481240901616602409404804329309639699646236243755051598708898886156966768529793905887658260151725189349964549190232731977478766379054278617248203175945539261977739504621446855372818637256593779518371422336504092798833855363493865758005189408162013621646134370269988405400009838917489186644914198725508460440168982385875780059910361937176768192655443935113066992023518387271387081533515190710227053590516951205189758411540116712580972903200960816470044384728343069889717800890834879103112668100171001616058133537091291909789418382196321213735399090824441620760428932972609635075794724247124245220810320893486321909461742087625000906736690712266786411871326050452458234434223981167424347137143858896857312204542114317372052681992555180068760164514446223161792093583362392180291337118959215105793424283437914186295334429773229506000200668118181445083707733982543774809726369907595447645941840997721267959325035570681988289505630743849455064951136176152995874303372279552479671766728972730350140796487883577345900566116736640856618632773647475678934686799507311502304402827268782584372898896959061203481380438485022182043164987535023094350880067160826824409238690702282182814614575596777265079145862460413683221241761320372812301914012888714747969769492037030686452370064375218172602836022791666117745790639008812579824075216796159873801124444860634059573441232309186557223412956958858513831732571731248149012744427617137239924394185365078531381222820274467290715811617771417610627481631536641383530884701793405039515869968677485387291955048994250875450004237941338841996598211018269339960201650979516956448811994178051457799494139313631911479268166827447443984562844141895706299303555841657573422525358997998632940868285834841390709246200851845554474318098752533382226806410191998171827244125176209397988496400037974056766093353388122636924089208845730541759314016918249170476125249635455757662508928833026166424463446551274822343383844717425509260897283810384962567013628119181786555729666425936769917662910887739954162676733077792324745288163409679345959815369414480703104865573667864749537557998392596450943375564628151903477511549136893284522543617633452918776652581542120472851251103493043822922515598970298257431701226193449907418099330354617844749578742935935227198420417422402585576102073495914785931887765977569365550911719632476919912291720154959762671613667661342340649563400263490240473214943639356822560405043658456393899753366187057563738524368447045622006720927426063350219191538363913914235392571903112835462719850038298385038195208751262237766044255223911307599479398276955213214567177881657705702672966610131771067562706855938307784021779605791315028097158059429478936966075439230930873885088179064194785904656523051221285990932599515486017085952903854731671556513115849911643856480177613371258698824695475325890624762323206685778207577461876657311604122145014595738201792479421741923637076967026171749901440714011063644283736934211630970364064664119157985978981735609480774627458898869610138372959679929364756393574871283252748271998562650190401315976878622355334483016605448733330385058044798859891352098848712583612187176382660711369758737745074155479930448461038851855678211816110305136694385984486134673090249417682932468660663418314389953060480841812037520504711816646713944604262954615478197948207214062015947703328074715031056480312235493461252961947614002646348846811425586867281877671262136888654268012179443362797148894480203234772372656533483677195455160279152247893620792747231783016398267526399156104634712388653780855031850668293906623400361210977745339350602306034149982886218299007925872330957053283094005447408060180126219537103868115096862146929449889053117708501777309630530807769144124682720127246021648444378515359266526206499554494791442932326178457721412985875170095994020375327878432952353816000010857424251597047678297590864524739908952548486515711538110014946002817556416722717520162226532543047420824524709629384095097976009850102329454622871975120696903292384039028661706698749620643320595760405969333372310535353982053717186541498214060657462582082581527000021666058961449851697654719319813656934131183946523990403060604394814881398093911067436743401814258452065013657817436531388427949867853090966621609860461322840061427732852629961968137686967345948372411968751186908153880017342119637403566113098367164889277334514096704110265157215475544863731029469992360514139623945382203101956764843473008932669337839357393004545432429537733790678990970720926839750000622792613935233352816041846527515888669283614158282736216127464269686101530990146132054527690983850809348335747813225811925890143415471781514912025884297271420769093477125927625341347289658455365702626749864484985381686260898993646760210408819939666678958504963113309570804240777877946024074266658282213945983717405012907548570978048073832476428739082341035337591283229660819820555010664300020827139168590373505990416116776956414672598251327055395411122901387357425226708661452747320555978340505501551544792467164402220129267039644892312918178101942925600438678974319183606199186515604723199392030240931593066341969703873719965251869876103547616314160514748678855368509766513699671395960044224819938762486562223423997456764696843392477316200589205100375747449175993630021848564079201587713146981160682233219924579705180088556002565508488235819017569870171856099312260666519766891150876839139992312831519255984944916950718474184761020635585642654464363692385004232289147057098605022094942770255436798599594548527404705259034256544913468318950251107617154016750199421776039015312550669120926327979901294348533845155347101558854484773174842530759490250422245909140774366165791800410784226393538789707943982094778186530641077908532181427198258781031453426019361244405079942206841996266456138449857871744586239001855400357285332210110196822509602009486850340513728095280624003675515114118093844437241432913935203396317659500851276959952651296827580823764315612801986285919492473133910462462673075161724716232758426012252273186676828022416081692128337389411075182797215462072237481288150858232605338547328368709698363326632056410560893558509041594170171214736925842001852680061460192359291555881283986032356361420375483700043722791232949696430752760237962320742965336835970324279861826301676824339848028181064354055933120030038975434180362179812580823003341387075709158043512345402550938111726245955161728119248806350592925971827895457163494092888856121195819409292279431021034459369597132938812195258559029244958039936183714214582044873767562049268660658998864082049618732251870853280014940564920327751285871239809227790075892465010853899978001597639224182688394222692233596992795450661751758589660332494758218218500374631011196852917057620278664729201921043222215711644260705654948051661820693260832900720845436659326514178637984940425313853616422039023251927475761773309361444922030685855366166489079425992446334532074043977536931952591261907986775151265932747202795593582088702602363261806463288145449011384828612512455206601478302145737472264399645876637231728372507584892657444258741379956088188823062004596938750083187135367473252108220104263709241647161463455463062227251924612340629900765683952048159263501131709471618734253558120550536362384573437737242922580293265027159002381473732475527152340592520365034558766913051057937678161534872920360670263923884965796210763113026008391937494888869314536346312948050014036060784892938004664655753997705234618634017662526204926719955043737044890509429402263418293171119695753993843375181293548113575833348368026109659566181915287073453741645888593652709157328712109895503051792126276483205292507148779888974543690482241653815840203007791867887179098726254806125860652005185385179609512448025328460145569347130357223112147090330079265482367261979745909606488433824620094726879702609525024750623512516652911441160927727703350918504872246410662400864662734007317001389848216924380979589047835251005015465234604371959003375702932378046042903640375804449142323258719479551366161814037043718389188959338069367023531120545548182724608933744472512204340228084189553305529249530351636507867080955764125380145332465530789999209561909178153933022503613873015454579703420218138184490937033634387453006105837802373330403139394462918150609702824175635270410008294597776787992494823285495960758700834864019046950483050063933158027139381969109708560529120672250919986283251548576020814338147617644967637208277686748893175474366599999239041588458888230598794440277667618000857389002467421437478666152195900548298188607517137315788481577019183449378906072945819809824003139665427053280371422204199755508088726127845766185930573371973836318998269000754784700370667293852161850222464651915504894889502138841332884463911214200696574483452782483167770048689695602153507102529516478445073851198144869832332281517023988814916139284726667694760818265635920248902379836495539398234666056709043233292527151254591210823028433861863143429271190637610115113103124769476170430386386867648560511242409108925547687840002096225615160471804022103874824901152426949746343258894808138506889826481461197793770700775057341935714923534921655813162531061012007098664655377935980720826973865892963902337914012426701503860243437707940178757587431542945251346184836811642379503925809423210134355705478699060659693608049205736445968967570140324185990986980216810626081127801445510526520934038465261485074231575179685924948780866780240291071854059164969543965309512648827379076407166254530057464237171773772437074484883804297345551546478412382476806704992816079288772484135792686662855413324694700742119664954970246024624276145269452877151661208418056394822305819536473333924870943596670442705039257625966479241907059723714363942844313438792840680675951799552157432205933493709253130618088428357680990324985859984714404705578428117414389179630610054367742491099405451507063910466865156507017872357446607199631001755301073919522782890924342328239195552359068897169612433197010672757288578979100432366268235028178409637772668775934976995989274468407927587944848923102215523555013661415301874471397732909315296077064815335744618833239796413950681760811672692087683111913380682715586988957392550036225016841553757557078986048282305267235790429357875453618671046464057345058108570325918468094514054518041961155783959506299019981089119330625063527321691820500134379431496282244829637501775828070262830630411585065774530194799024926396842945776696320462367082751591699906893566728736928966333705537521065459039392901567639238400182852766525056533859522797438564979524804393627581535207985412037489572847188747177204051320688021667145125938432453919702610296870947951286453282715218495988345877562672531342932176884411277387218938331749449323885679489892750586396606952965474461245731187560691092244298735555120120571432667194847602416058477095019372741912180473771148453549550010633870335080222309013477123058568977508308028768157790380808234273247399705141947056158709155576954329637463364243449045697058726596231810729123862023434422065099781955161744736008424273930463723400327054515771439349520169090373821990105006287738455978893991200942586964615488817144304386458719479548667739873441139384494828237699926077396087789507477933557717033699824742195061334269737402443754217714585533463946859379672624940016459946382184610409991058392436762973962525427762226186957810708453166877559455148606564170335814668583146353822896299450826079040941186440999204094159507413096518571627118325102849396122842530797262728530000945286335199068119615079463743019363441777742864556249837879603876942643661501995193053408165451913022575355591600339748316847107090481256768192229235967311682994870536558120362842626210880477136493408325092411885112676098017473123232602528625044909645275032487432567258292548389021363706914072897633867812248852110059371588416318922581981224832799760288410870827811234587926249706241754255435704128788742045099907626269259162258032368054473691957135637134190599927597684757964673570809485507898537035938549720110704029684394834018673445447981311236192108216090472913777093868402028565676854382056768622330586635212768363440022772744431687157841953069962855527931801855548429335263007914041586265668463084737808764423763830671165982193241505517381786021241909834019082633143474646119789014128191714212222593127586144424280611695246282606328363875989044693041005188619278783435052902798221142218120501337759473565657141034292989605397086006778840473105754791366691491311688670787215775940936943392715599355677396829552360044255653857522248866288372155488435371622167344975738825033370170815167731260453019695934116142201964757390024580312449575447372910803963150890269797528276094372503398824908937040386976734373725203200199655058144862778980265871025654583569246509793019492272570486774561694260490363860889478325756242594369811192000893033171997787482369599111821439040245032327076021529808165904318482648580437386194294292081412804552979043024821889628707635282828255147665542953040206274294425222958911208206928991508626588842724712695999553802996719947697036362028245577404044865607103112094507697407203561895566113085387327096606344332298092925935686117411990251905552247616801348233548328055700634358073710289065543514598054254698315585483482001552869645245328523329398460539512449494200398061745497854995272167186168214721422682062313996544864119666854938664241835540311014651041984523595925953102499311486785797866241015296956327482675728741867962277780373873759596445141074579171618598556078905690973544186135882258577183980549222652151937209136460902448538865160164631310072484707822192935091335765802589473325840012230921008930327200483393695923522070336233802781621212344235792362737180525567393272952906513148481898910576737947559003919313987637748644354660582072562516642267958506285343991078283163356069073774896274307388690615905045458886152742764483624793686337324786042857251157729624942838637753516026277927622094391250593042581431712227018429448995400147225718695561495864044446717543207717226278406653734530007754591206985164080633659421717144135761091138372382500973371057481656742484980102106175875779408307647516063499874504354707693167935357214259164716212698306415886420582541432828543299343329724469611086510988250485380296139543747197260297328317738762540701834583327455575028452521936327407862064221007183297659142256155193764208336365837129983422419890544610692325459708942798306096868439953519457114458035736256346626938797868985647728610310144769105624119300949923780864291680926589903051427837978565115450299888013908946285595014584147605868473109727350130856272363641010960645763572591037843885222895965129453468128456342205866037393311826922665998982501975001956995014914123409723369610838187047033119664769668985511323949928970400989639853949054230837417477052384459572801873853905475576706097505569571980126625751805952740854984444028869082786243197601616323840664844189299711504515616627592212979189843164742259007076323339638109481492722299833366660513588437077477428632548036340202262460127571014840969126124838929937832346148630699750421682696970938667664988419538603377969630431738113226719913721827653393665289496795046373456329453802024534616414908087997146309387225767231178451594829279649001796734859476428688394849653754485609476855850628125020420553365797534500131480644553433229370578172251301234331282520331737957356764625048541457344152473035276018380849973926581440650444491325971869306039197517741109624143944091743918700057562773403514943983790032183031281662118501651004869931774520954080733813400173660489161594476292892841169203363288871892651966992648715515758748604364240986413504743749524916888312520248264257933139356334691890300702476101834653907533014192906704989267776090190770352732470035693296452980413353100238448933454039122682906642609171602616055635756074485535341147733279181951145157509619210174281484111336772855205376387843697958038605550687128762243103055421572347312898391890198344386451276069552664740659619005299769854918622250782713146353302869597214460373977174716406577531339898586134392906383389131268015296708604348669999705255927158903721599358394888570921118090993206872671769012688770626095261358252898638778737386828058466879485461202613330135009020289271006573759219764543121812628276490734748847646941260823259730412543322794580624339631390251247144521417829760651161780118896743971437753070471626564357877438017615123255486914763189206479950572273126510445100140299971250741569996724896914226079801575505571380364407016244157064154770033708695612228648492899739760927302787204546435285818253658983291133241537850808874878753251394635909797779578460253116461145878723000891661090469393950911800407164242573201531040632126516690124725366098949222692834972521424692542796489283924169566755125981808881418921252191179299862983179247899928302868120922876844354127121852776135950971318663544450048112679414186875006853317969034723423750604468069732002751774481049142774467229175572738147965243309943705890550840545234792108425495873926152427950597496283446240745305873046266466988085796855555534613933162600969389434698418224294831085252922946217955492680060260419933063888905383736092039564234765881673312262730406666978983711288793086136519818670537737718963597080999909314262108080810186381181229021722057988620079274475920889504036659339113463907743611735843874733331799235612694558909392154817330724072295820669392561441568818260685263579768821743197722461923562412208431505216574815243425270611112213288136206984122157764938717088416338138378590549890376530984000405461167590575171537047568749617393901061106933771445040948250045833857952771847304607429046603727371355530762513645058318115367348734135917189083383934304049613813244918181089896777858396203334860622537318691113999378054340798567345757787319575503182497821148738344477977499452673471318696803900894699743181625539428525609710021691664640762633161329038766307860093837074842339313140096595711370480845861363599534039593909727033539717693329264774409106730990642400917505545562122909248408267988170072483450257829495697169507950430110084969811177208117771212349247756953991931681195655917711213022709458526872116760035681069040030790033296902283064732412121810134800176313182761296506673513888726975481007868863195342954992068493388826727295909842673611088149080171661510825297589482679536272988500209159697605544943564044913602247128284157438695069675126660288083581587098550229270879558948676226285465796103101281950716384765080425133419110524359865029118316100647618563275808399379015560147809015269017696897820666195443298326013531677099893792408400739539002989785879406351056070490213793830687121055933530091313640104399020704887057369064969013052576621078200757328853946675395761652685104392918727076663895273091717014314120451073696413917595359448835993308213066652068637477751954317492906506196223144875078774791596134706048729187492947599078666127300887715578580245682439128848284846434701314431196279122819916134409636019330577957928764622257694665235176334864586620322910003886241375624000205108648200616339634553888980593503618259790868367727607741023518155160884646661019762642198627095645073667186315880723814193129043577782077719334606978815608020451502765752759359820139516470598849602680965752457913286542660040500223206644134108237244729032620311539459676067299005580937099696126785534087806021126616356034893919576001098815650088771194926435750972591754706424478049206214251813312354263374901051706972385874432117548667396389130929552739356673596661195765630828073845252736004164961203189897660477398247068715396808231082549615925631145822739948611840205381461854407192536484324962963653027737105572336301470918248059475148511101111991405771882018889078795081803809962088512759617266673263654392624650962800872856343618496431542238275912621011209962894048693362353292148572839538907751281933201671281536471627361965369077442984054428659856355486566600563252232617569074062297019950066340094825082182137895907733563377435117429380401284533693498167939657233290389392532005202914707028424754348935010632833309926199847579808613682491121905196761645762987598160168998986845424368159655476553111583667544506623473153259152010644130498905221250233659140049313335862231413007857698505344903924706212751940355521844924294579209253510030995909152250502237469900884201639372403599388647544697651053696357260111924152206666711514925615340901108742366317334854960422775076862060948263497524761201337844603890075807239029629028484088412315592041481298561797824236479953342662073794276822301077896728037475812713579473473003023702437640923597535974799126288183133343709531397701340185926142975531109758741938404501428032084773408554045606981508453090860088394852593850392709239311541014828380071524001672411409953475968737476222541965324270047482392373700560763352150198983755969889989263992322553071697858248103570704397675922710927691489944526259905865740778897862554189778077676519041318025899576862273013789808435970120365903490085557393432910249749080952268078376187290068960996103490846662907216130429926947737222573060822530562398905448209242608297151980878656500223517021174342578743588360993766933489365873740687615231804246958725344684420760883918253124755963380416298681303929078215788020051691632377928550133856234698950704499291692536837819549644866982335654550640481949909021120101705871104832559327359013929394908105273264527380312558578533732711052549819648739961972591388537851252964839667196863304312879769221689082672704243206225707325385185972648753859406493564036673535105231072199921210778235942220282657557700349704988071298675195308279147533665355807280611956967643023634908679888306843064984067792854790904386668714113473927946292591129053427580551186263316809717677142909459245361272009262706660949268147933833069879666930853115015200331771744199812924319512263181106687092090880014492644306027296049822876942380875037949438366103316228031733087324255798465940026501369631052842161788536912350216272660104495006781581846622268370784939827558396973713304625296245951577353180768391471899092961231807707883585652080706174090292572930222960379072213458114662405199696665127364247480206498996718758033876409062160966556796978596991543120517720304606367042613260384029953337372401500063476995566158163268729471656208774545868222856613799353424364941740796890787265533650740180643830978585840481270863694958972324304895341066319389139709548220574853718787361077086157690245382598862390978374730133910153946120357590095239355589606547276526144046920262754193254480143901372685073311967580976439067067838692459717993779091122017566147397707730529223007284725281896946312208572628961943188848218777702661347605188273219365976603028163541892997066885879191624599427144618507956177223795016195846423053190361010654519275542079617789740868066142526802394749975920895369005078733292192395794346895983111096361399453033432166947728638475775822429653988870017000073477969159704646485003166495270216532564217353179746368266786156642921254763054480016907671524124909953955637245840070909105864560974148393175826480166511900147782331164550457426664819946444836491687100427788169455349318258893229097181814708710540432169063894244463274954418362946381890788072540693880656279850257757934994938643993266659683863121218675553075137148965656652403355329276464992667289250532578914501607882534959930420640809503941822299722376782143703245657044654963861096623205831402139362389099938530702965135037527272302228581580197439745252953941709302920433313289412116037750728739781005872122905623892323466534746167026621978110882516788030904209025795121663594212304486378461888803674248690184572201565371792751675443262678418488061089203405977609049205682809751619904386604654530224750992118025800958845185121713236644725773652921739491581076545040495048916972840554928424839674359860172559509175710867673154116386599596472119209873140609011397842739619246666498758391221768069741512658959234116578017647337351740166881344851411529303158019313217363714173374040987780205449429767936254670931693154488405536682847508037255274079979911954057344491681910676130587173777226115410408184247160105419264662692236064235663649861673317792870557815187228032461703588760473469299637557999750012923732034037107130614340885621963695288937008986046627023340225441844181573326952146471191141693602142831615017967950808137847782692210629263586180631471522791706653073153855053829413533286178828006776390403732863301444660308772423264315813810231618922091726815207040362628020738453275415904129747235277919673811259869214022103638157890049418598254786306889103069062553568856323080808179983634616422548050832643458330897623862822291348045721585239219356131381245154560118695056833365155835214743652923045311353185633067685214646081921604289334687573683577400891084832054809300467569867498642840020869772289118430505312933541434117045484113812659464669458559936197074221357720465779098105872884374331455139762086099799959937975949000176422281962167446526566341528436373473600782580181070674619088461244226313994211634112502241053785238949466856076114954957267469401720628702968337630283002442370630162886080181495106559278193452295090735558382425083837820926343543932076069607376414295389473110403661074308713828184639841093994826275228099857686889697876146421214073816522347324159227610803362190660513357583442922895670446642599310997979033151510018563221542570336592588944461735163760548659367204265436047185142882660341525252838710133999197948704161954895975617755060408690509248344398232433029525074022622032478476734001897275490596485723017797571295417181519417791101867648417878064247235350204769421562770365407760906029357879508664660986836236024451352034125385452506001726698699388366766931018300882146414395445843829764417327917469051297128591007753535088619017635081661955418275649233839100964849179894439911258832660173711585405677392140487327455897821349428609358830280143411746681515506482176023830575236125513608921801046142472422877437939160081071092113014461451197878241806014850170935724698263899080089536949472716783233670406388940954043009388502005788067232479431819822998515226748135840374957418365161684034441526918159263224136190019636123641317698316944196474999918069178792753346042798616583117046140981499087175393926651498214406478824275272637934932402853068478774287391205653870364759790691417064804421065775415653093213577879244063538093842248746555140804114629597485782834816960568043369440504978524751709787391701394534859070250651796741206263291684147429562039652197940201265454821352875797470825499136077465660683503806000307268115265857332497512752035373113463694195898578620475316133508143385764011884154382974847174516070655752616301350090604221716859428580146714892164191470794218311813138471676945704655238587735591158769372013489245078937232692171796753168486815555328125929696203293481637475771854901554845244895727474401707606751676236351461505683581750825829968600252210430949185000147405093009484600412849622446845176679902902772799205291963067139947826621216377918042797043041460863276834623131671033535053776453186368501015104288763589050823849087500399199574266520081173773513297607205360163060699889761392557606337080661840657136377391156689936403629322455753361389587824574681630866639502773701561188078183252878996578081101175828958696140878012867286448262997785088435958694547920085265623906125934738082568251044534285423444540330168827851034593037477764235984745670324481645331765457596379690158019127317903215247746762844262919865706881287895607068945561048621650549559413316683932345033916621263428848489066536067128323746185196806092904888423655013754816628020382780011883471947746568061039808281217901936098100866558454393640985994157974758582769818311914503318501693432963350857254764668313717732830316323110113312710228250189928514297087695910699467341394204185679771469440026367674689448786682823042137742857965734114013841339479649798794158686194962519392499735939240645142616752848923562000696425434484532657348853468819310641920608692246322040578322774306798068530412348291935047423003364945709578564719925257484284038789010901533782306378444184337662855625563118577635454444183073628790415765115206695011925584115685940595458142854429640499337192367887975487159578203445754605945304652521884161956638716006249702569122387810209035494734765424214761288901101581436569512212170547473216406302147985111415515937529379557963349389225437762684646630962360126567613240777824650371836922087044247728600548916355115261438192076193348779376014561524437838887814802500338789771699849060336670651479398231276404213515573293458382766713771442313458549087643578862476971693464407126236034047112954947513457159064764531440226736851763544469619404595683469100098603106307253173483161452368784450979914477960276660038410834857747757733668413402045318641722789483726984654209935291520637150698861993244532599701552877192124982766957764010403508305496405139639458779778410454401375798754670244704775821862184160224233738144167487407908755792600892457664765815815618128249227318677475191838794160754149424208588616418950046803556450264982773819102729765942627052565589144033858673205556209875648145770434780143219918589123091824918542786575419394990023284001660074198826815477708208670917320272628485954107560073733338419198497999741633836355611559265706144167531696595417618204997838407865384927343602214197225089452819278016521217706801558576071799303145949597992425060746546332106068913702561461016021533004024961752101177429360952372816605207930921892253724796824869888508401989504584809692270656174983429474040266178681070514441724041486801460825037896201870469984714380794552580357857274497531104902201255979595555406040111496459759179784925706014574634228938452696202584125372564034946376272038162839753869838159917910755592133401198476697879600337496692639810831056053586713489303070209852943994459511666343032320746623769137644457852631385472335815895774966815971936816036630956025253794196238017497313564770310227186535340074354211934029598883395545072141745945665381963223722038620681735347661139153680792303770705289915561131741162724863732114124908340122472747377293406040596177942460573569710785281888097009396714855750060687843227186847649588944004458812101683439421086739431476616566573553855506438090021078812042792141128296462455681392002898000213126583073832964373222119923378112421721574458046829512720220451428432113813207866206507675510518858751930018610467260543076370921987143610180728700053968340232638429010874637931397382683160578278734769611938527822951856248455047975224024939722719069333483450396364576391242697141395272277416132489217037073116205549361318753991449836987654582758086906132974684950162004087054392211359189711388759368126703005025356890716900632302772121562615503327810491169447337244204209049774097536914561221124774414347432045148680672343952002954946896707671606380953546133780383114242879535347055134780298480280758873699290071364875762464484663784255214956691383161712030362573706083811416254591211831683123247571589283661220871640437278673550016520324383954521195161944027391267275248760589712016437089284456595917871644012946771690883344764863765927621842524572278581749211358743146489802877597552366204217575269831049597221950525002433146865381705421222324919022853109612877535212087655230490943026231974652652201519865525554824500687024620245307291772598507958791203532554541123363175843327529749122578537289610371670068679519270567218493386251704315946367923630441919520630446768118327048229892320199922705436102815726460835529183498328345512173027651518766128900845818393054865061536599757186548317300423447414351943449685667185596303037337440079022811954514344617807733501049995164075200318762490611558787274234620641053195328815975665045523461656340512945758536671237804859270796852338805266898752439663445378101735983844425824993903222058476073605391214799577323265912113847718001765026528561183708243203451138233136113135061616654465842400184708501738985955880718927185817956496661611980706956807055906229090448169294009572167283865153069003762630617491467050907015637116707538019490667421748106020598258935500370096364433028049397459577576393943567975522815816315701388145884755517156864236783026161915183439204010391978348712719331362164994226595544016802598467981849079550364114279362754883834497111741133255390378419869101468479271990972786706541774862601469118511940735586351655623343951283446341198210572754774436656490065030479857459506567930842632489923775303811365310074734855985136505355110050411000703797637653241369571681606951340493042488029317821121742679308094745861355290516651772861551282287014807637772480114103983198026929540047872334430120820018080698675311517255583721186655492271552957784800740247056116487194891926637525767029178138285810108869909093979805204341626335308689026220382399873275125743552542603703763751430384750322066811068723487533807252078250404173610508680226731837469131131359511760086295872199876244397688838539191898623939953984789770421703028675359860106563129357709469673092215671373288064197880566348653274864935735974790513988048987975765260502161579046103082549442110728184859642313234135973269046237299826643872049300039167616166355306735144450662887551115316583494606828225738847372027636322731428004569657358066620502977150626734571536761952522765826261261827211617979829387422438608455051683856863495941822432841489530937261107635235407843952794762807281320002383622718709267759989041362676801557528229695960711734561709829587992304670219775306627490375985147921223752112567961214375439455563316609780289784708308944345599471690439514692484642358066531261323250807205759167883513629870901813152606070480679528540318084098961802291605473331660004626305176304392443620930253295549114503582151580999545585477853217977618314157975230508250316515887703634984704154715953579935609660739478107568659043446783633559334778224359962214979435581484440080878116224954462022812330308274466565813905916752182644963533636069605512450667587647286277817270778800940830965473492949295201472067248710380436559252911380532958617587762392649228146439292306557129205889600312266499671640503407387992308885098891365925991789544072519424487783846282975199624627000299376960689861775069038214025552281182518425562174876241531440930948704979497816792839516673284062221974899315443156974102450562141291183703944588229899478661767510914061296898852654522199708877338377862670090771609610107285168289742054608386009388137591575198384906337298482489838579126787371039023950089228157376339073995616635980310737527090943422377278895027740322262101245329129366216791278300986088454925544038924770939994182648323210071265152011321027716999955733636251787696397696360970905812449446720452970767086543963608828789489093404019659391857794884822854495821201969051034344505653825565704011463921401615696249189077864850626973159117299958162926323451954474963924347154858049368480782100297258105298416004687575772795377912158157390928674939777837013589528110757089974530939237349768698639593763739966826940537468958398831717563917339861937432332859468197392298049545208194679907630383300549590253987139482487264493929221268768725854261549649120121559623840824976688928672911831230068511383574298980315810658310074895855509041280688877067449076247486670676265890935360456922085167183376324845111828103053788924566819740259677017614054872569513870678619754831212046232394159410514737846972248645686097606253353159514328252259377599781507427481614926540412907328968853781992665378161255655458787842583546309409940260262280974855860125693100850137668989147394597687303292573794497240257844439496067291511488841409740961650501524458938417756801791940764276486536518725976358813279887355795521267235031654253105459079212486015612544494337088933815494375208373888247847765983392001446272612098458568201626410324848278919083583108152165292841955906657280276532560284731995785670162296543688177946096450527639878186709894737791158499086985755073089749380694206921585785980500201454599437049033692997640787884712066462631554020606609524828008590949167421629369515464925015189779202252202094214608955799536101556246113767134126399064621281057267259730287135300668225553921153548028553160218433282922652571144930021510851327073986187359234819066354461451794897796340996070177138888798718440114071377073087265025422237872411845308849329318573136702992977575172453751782831647636515947629913901474160711424192651797262004430880768084250565502243771454498368528888719247272213059298820111635611226078528341680268665324836863714419949355378761207846229241107795566718347575682711247796419912241549600158257719714079936265990942208436260245729694064954761331178658227795835047282111620286500384762718187111786134605750913191030208618670443695398454765064448011316306527633013982148413003702332362564215651867743233211193697268396933253582448781992435014448600441925310728922887125137524302648594472969696649794816780833586733741757408237146842153321561136483367134222446598738742030822274101761783437514025246207026190148087952787510436648761928371514406411854795284283246681613658417727111892609090853491630461732527016905887427100088745944690310343031846421124239917685340077141873566849815479348275160126141709893037105102375507382582801612798420016517350367976530234936692840013104133395365563765690296651848217543573734117758074886420317064027111863172643292622187182402029271915054366168627046997763099101995313009116206813868014513599057875739443795017783267038392988020861027597590635107125648425599297715489131392168926909375215202420559394590647949353814593485769106063701950504148587850379165008248215984260011902038368623361991512007349145651712278153142747935809627814520387813732081021447251574478191636377358714404421307473977386659855763102111999446517147328250488694894025590318947837458496340267585658018699400848387835291303346129783421817270858022050437746723231663309594004796494398835218879392652156615851894220498982446992878178258888437977926418525750269494241567302977218571464250518657186686425712943398273446682770562697168797387947899889245013465544517936710058561689607139851110080520168944465926683482272177425155745754494506004170165306702579916671890770909888713598510980763090043037459477347064658399581223119693943224044079662633276465226229685256589741831580875458473409013075935685918825165478359531848755125334185457839643434099870524265389886435165143945436333210895201803681088628289904417791466618232673205734842586044669966828205276704659468260374339485307182877227019090645508003289585722840559705167376194436011812478300933582635550965490117847175453072155634904552275539648296170430785381252635918917831689274144257876971277365183964650576388968320623406384856610697111101931155499067465725740805859848048634495170377796964593703687342594288699125388781848168635732177410914064770490008557673815024691804641739439913232426654465367269398968026185893302570497921610988244325556871991418628948149958843130646793358517264983080447445844322516433783178572812328840333810577945002918713521181367946802964494639427642592728702484558364446950517364901839494963301026664826773363803391871413366452395526188229489267580064711130561063933499464881760110048944265442561248301855009224767064470555657154781639236728164673412820820162865777888334116992590503845730276111688208106508506207989413631856202776913686116211977372007148328557525239416887109846279419155600482740489345017279500879079085599848030859786353083829583384216008863959836183667892517114165805681321728360870915967592958001624166439956713949627443496440959979214546481053130397652361642484878352850104027015519189966491376311715999925512068569399047037405346520013364061887952532908411690185180591640216866395567882526792604040113073557902750627022518975696591115759099130743586289587747697000925357741975409853208391754003058854363428412123195742613042850308866300135957857073713349171928520535514651181243008099289569536394956611608371096326374536865089729945743681350005586164390152298330638184332017272333096486267435648372172280910441601125805789218119851867834370558843331702568957814540887301214458606339072245972627727011878693126651805610021469552977243844055358903804129687754841933760977461756046221491595507498452136348090054104020771114706266097237230674283544759979474974886516030778284820789528117538713808666926626206556130932184672666609401519994417841049061593902930392837874630967915650884387135998899091148973674323742497224694925177336200786647294951000036950312126648444076823796523628039150890224167901891263483452613984441309566434540151150409816791301106530332345957532255719299183230778288460914235244431667481534895240502939038941219043296574182655218246689096581335116695789650403178051477416965907540927363955395345571785556214805738541186301430328166308585835270690410256211083381845783237270259208869163189458480052328557141691056587706571994550280471949657991765341161905791348867632870748004890568867925742137254059350597191733293089579889895934971724151106220537185058933837032712694558685293940606640999966938867726433469491249529823650424385946571001618460806506571659953892149298523837477567768221198786237061597231065593245331069028079444017082198661375382218153348325530864729595625424385470183849333522337440123320768583927392257569451525840205463350464672925146939593723078377291875429640555696868360874216908032033869548628996686767866102913452802885856525156587440379397933874184575287090450653502327272091390995966249915899565570416957773999015021906017230943328482555434709157367630826505944277582907265967476496228821250326863206570697530502916903437610035197948792386678421347610516640538014969857395199101519470460197079806338278742486719709173647975756641615871888021170928051653989009091005770742624824141844473832487449396031305161319414557257537030858039957799669612567601791695812269560980257048121078488300695502881494344371732325364099268682101971226892842632967613161067115166962066737834057209007409447567225681213655990198714219594366136717377203326971949669157653959065046242225533104459987554618257949631547891850317846906309313137117723092429189442393686835503615330257195280162836415218361789094706456505871626597898940393179870031571045816284187206403597164397761982615212972580152552239483293427549935037333977887390258143814953753245072985702083308050439585633708989593269423327015252526174872327821530970276107756031141020898458711408180044268635039343942801238623320012927245109963891874597354796119090056881546821601080685362965782245327333294703619336959324011065426847821202937637393634548331712550576548707985618424874851011447926282712411021007976366789962077194047904922768387577096646555838426511638456840453457298087823558201288583489753781391392811115964194458236199789743369063314616646522172531893341379367468030042691446064618697480316326151856772055410911939576360459793182481905389416177539122815867251557730900195699976352089203682635648688795083128286241613989871755218084345348757650066021902505176326305205167769970646066682321795778317101787251525081859170569492085074623348867638244995832641484882092604674020527705448053366922687505268860250022385045419321902982958427525650067241039195655620766501575359733349877570051246133703085376634107912818374470743366736584048956338440717938103096329944601016272830280625287012000910803590922872511320029232320636265848630721909671715906285204619793915188467054845312585572748642084709436772182579434145625343030100335433258054638058658134424690613188260928676597795059695507644820464456585319788854719182738807874572451651721234297257983736903476014041617601645199267357822636375967033625467994338039405076394149351301060568912840448124580006246324732989919549903171833283597496180144113714086780189148194332199657003279601213042057895518676850187488203240585547220960423439357907150107118856294705654634167651621919698924275583180201679130202699423641241324936996403233286448950335207858685137202269826905959151988393349808169809814927149477231907030271412172402931878785529399034669181165789538801488057984753482691598543451624972429155153799349640915218779119824982915077203683714843174256119745069691058665838906240604956790379504562701910524279546370849688405494902477956313728088418993870042909812365325543795440406435183317789765462178350334958924541895612946602955551012703509655574056924214709240371973252704644939062309178090452892614456948453741256783145447381288846510877421695026129181052280936660931693718924383876202052688332108366515493974518787586920966349355260833112695244686587806091630339113861514643708734684900496556345408591568032614514653016178148478184649669476868198976156701615640870162764095321799666601362460018902976343732072960468164758081423016543890473306970511537775131340170767845691448839897472930492518775616801026620206474629089804771073050549975371193884267597395804635656520376086036979422669532103855127812646975990585085145112032071791377690259111705002826935557874682682117845288122191185233912961617237474952213243612339664572957039858199913584797862613692682896586263692984301760031498132611779430266982333308371706159049673872893434231820097291657267419012215653755021586441450419272260648599882895820661974377448450685167989343333039452388621719315888322174999925088832934585405950168852191614519517124692280125754938514034634364689019295274073856869712715850890630497236166274564244758264966149221606192889097520783624565789235215312238119015165594325402591623140059118535179471432090569148085782718456978908307349347725113205821352080982935048964754530952145432894988054955068935904529632145033759438202429113837028977896237903512084731584004108564326913969940636249930807389660151132478204164378468506348617328574518398373427359606386352123889484069896791669899792393042931166285361552570264755924937441246084201180909412531882836123382628833981927377473559433078193478919528435328851988610191650902014159755144757579754983260567799813655042258077546291986371856903326215255643344007657957016869035755453385849377447428900139725307551121647668679531090730783043420606733006552285612972143373928552545295400827323596121356149011491082554650863571673354775609794778722677114857787661277212843108266520757686281790632678633309026876027466059690127825324486754657064030124278620103114457717344558053784734675176799494322847797176678694499563725690045680199828022705835855186188953466393239651182515864440026641005281204857911520796179165219387022685159639854960739848030192802556877579332803726279164008970570367901529287285840060842404022128206652198825850633016137166196865013871401228365472286749858644412667340897469169760855559554595993259810764704692823709710402455579823005478826975293710535878457480001510535423740043817830117239537329294953776948484157145919006340874420901320642581123440700042170444872983500956605471380060526746022540773932670729369717367101779984393549815567538405531864611869260667445977535541246549033086933665048977461527521465895191688266840007722902022287624854495505838439831418331667935218475362995257262160903417178510321446494500125568016003852667599940892585025520426516443205410734281174405631414667542575612558282837246889639505893705214106675796097053536363807475950381282162420134660286180469187972173265863830049138877443230234292050008453479595457857647792536728895465175808157624005900149279489631141098394893435464102511784234533972721622642578335455219672638454607071030492960645334875190098259941253760805664113939069845868357478857583757798199807865534439040141012863184972441968900131341230705407649263787350559100294969991127050634563299933585908712788913782278608488869358048006911112990531648476984543419816585998596688543035467850727735971653178455597472310677405007747360421912703093520928778072842104452048769050417116302978731563675498030118094523720565836581942708529040228531150731683496874106442921198981802688355898731282832043115628153429420536622575501110207467673001713355534369198516562439458860528007728947033418740080793062690035684741320575005605867486551713089501356995213893973455657084636499751066244628969332186238310351054898651030121482055199914236606599171474678468927757064399508997720788114926002520305183683003597113883360067207394389695199469982233440863412458873718498108358059568831381515079640664845820894271322572991589573252326459005741810851804308944347240626138421949572398353672036686176517025185188592893798294043890998323306576340288931995061800260471593228994425481015512333300749316258000395386131009164733044314314579656243172046256373928422681644465209615158602873421413535723451068656824174379105767701828853594066303013070531693211177394853227520887421767658185454267510673522403614974040759377539559523520388584021432752351183244104296260308305734723040381739352184590252913197251480953782765113210788265475618821932843965276260292989253019881715422568655266366533697921332139227221824728637769412746160340293261127534310735372999143449882025080330180882317898886538937885548465328008613013779830994803529992726368461900316221655480273614570151023233767244774543479016309560281902625148488498970479164048515499461934039175247739466224927460539136923276364652192693377257545214440767231723554569576406750654969154505076385589677592011233121725638062031427929507573991755183619197771567143825910736123060032262300133133334918185953765705213146245255221997748450789572629229203037003009592304030127719153636430966984638529134465113699313068388073586553787276701202629232851341728138515947246293746133270199926205340943356188072663215765195439641496622397186556507142551573174815387405925839644154835434536331661290755613152718939062147198280653141654765505328521442970164697159236389421839995489109485274936567476651373091920790258367378956108635811819189331784762639809877190972410181899517416743670352807824057184663342206643014958219168813572818691153104581380709177420780578063483692322820445520188126701234588516008973408413209247177279401721336256875008396898078948626526753138218642143286624870656398671385580575006694929764893229377844061733049904526391928319149416734891152231264298518562606201188773936737995766964586808183314812408723180586184214524038331784392114757076836337239231898858186206477914086165680081624244988606703896796165160984585471516906186120919097663048457573877457216662807706215973157518543123916032108024422142489420652554303856591977300316121226086458929408359891739169203169087295554826385053077393371468098372632864755709654678158350492267202117978878902072096903655212994622309594613078655580673743395380121144841025930791966561431902278488916473853700066639248038392001155825634777435710706522685019139695161710109229777717116812268352858491444019386140533579726672999964456798637652091720576605747283772203188779814381602981245674555382505976149699237223239500948617259700548425264760610890406597063972453358303120731235818494482757264534788710255827931672206639401418956851329776426504091676703175511037733527245760346299413084983266847508003382674161029661212358884692825705883612167158572986560887010293341550840545546038845547947329302167229978897322081375145035715258044359328211822169647656131944090375299592176594160502320685717978700028616811894727581303955882470269475352349351985253820433809392359441213754813448200989971016366743344095463003406708594115612088337361295750516321155709102040346478616207793765784429017502035535817845602547107073576224798040584641106615232502906849892956085616904285311642772988769726909800657648908882753118795487522281512646932610258986996929089197577953180188940579001913402963119121554874648107916161440290376440539149065540568015198430875394525565310340619085250428299712076177751374737896835461453631134414796148128638932639898711609112483279461308264091520613448493608573048103865017406461414497911449747711824136006674920145809481894115571424065324658166834975882986534336352525399388256419452955530760259200861530067824612109511118361754751777965289054871984793296536038751496398671393484465870405199464425587904362942629945617171715475079086198450618323387542428279643269455490108142294865434711238677669588147608494025818927061571829596223847908951885914273355566517429579484315205924953256512130163332467254286634461145700043226451444042482845551483470057382820385641133999354149883580973128235835173330938019562556906349316825838401726413673593934784717098165408674829100241833832157257332823864996173493726274886086176274791540531063820969518088895222693750811078192546229747193945233907257982749541055000833917415409092124674416143474757348587102611520917543646459624478057644354275906121526956310323601961993923713477960752485657223567250688378682811915895188333227592950037574653162212266981925541250152554803869260160933704777025061658908644770088302407967712643216744206630865128966514547116745979106079211676384397082663014718159468687940443854338385611360264191254395508793184541365254988899332903424800427100172058406730528508158830627634836103540557834119833893516726179824255028429918957505471365784361246124597351590363974596906722777352200190940837102907407338297177700475244551570798327539737136019820210123137881404088441414191494792391861803688145442389263597776652288117682971771462129345513161169748039025214051941592949304327196466687334580411016394595826290560559107183496995683136918978176282020629738625422279442341493284959578069942469815123350034569377538788015624579003421012356135875268189956149129231420930095838591651714134804652741780993752086719237289297822081974514726166443126620421463908345017294265800387321290543964714815892322972944732145346728207431305963327189564814263020827547927476478534907357672976590860761786661450367218734511474354373802441529021799329892311132696707478952525324456706694395845928773079885575879819375500085551389408370329718880600879661927581173610878483055544064278053867852745944187217402898423866158194101820442650854524510731745439858973671424317363445181783978469416748359768603771774581541166053402248934281487358501648545432117893956301202838611313567059055045648502577544732694297042873988769037280090829250623987946515923377467190263955755366577215674468794716271117638078936190899301154331606139643686841041368598441656746685122716384858481086458356965968720014222695866286423393439350849395206050969864763103604372658856867209373504514265917411639304843895330620298442626942344624970681335137979928950807434903215910407687088604438431592694901413843195941054848577799914787909601687029276241545831943899847856481416451652935425106795548232854111947934390511129157725765062092781685440807866332665317957676780773108932673894133769193824273174523603156146992693597658213939922656847586573438258094009546421394951734444210996983618711857357826249097484919001336758542937307849017634097711702869963335975780557945493085102619338952675559745323938719290419229311337810672685166514000607039892774760791789060795677820684953578358015182922505005644676646681721806080848736604471149791138961234518377495158996261858764249429531794285389951276117675663076905046136484242066621244874295890374211380737808081470928731642832544361175885313816756974480042993989612297328391991835217552087052801941427993195047360288620866620836506170451603529320329827022323241694692220017271319840831813406506334953031063133305874368390489747163017385750651991763553973115928933415784586332312261200273370329269614388375292515860243581618715563472724426005691609071838060535594360994266752757415671851895455715819287250356249533693375737096854343369256970232717745324871750053287234326740721288219018502323525226186249071228385236683339340572288925024352316952086005821517903647424771807108627224689705980804520249075468772305790566794207394778969931911413380278322840203777656939833127509151144252959922160532756146996631851521158694670059860917554859675398839714192202892866650792267043554210720791014386322624129399107505408447163368337059175799542556669972159681850017373670609983890722995785367636375589408075072596848007539819177590211653438706022299509433960821121120123496813329454460900707065557567967159346207656047739533123555403335082021836531964698384206666638142637454684682783334375032567828691612800056427436730552006603368831391030268682700906917803415247133678701413732823141523705288672523524113149587190065887485065673114619193177988637392330259302836516704644259221078306211285471840425449420011039316356570469134619775061061309329127927423871396484035481468155772829538300949612436832035789021445125354685954549731508859813996584729912560659108359622168673141293055867764149025550996843521005520320836621169885128211077621576884087190187893592888159417474914234369173890764166770681861696493739220167788348779633286291080471661793503009098163990710103844947648630933399167385306594805595576908162061794011006299336100934486353794259919468551069617870445630961368659343920360955078400564424700108639740189392813913491697373331819739210440482919215238964314892557158889620323525241782619397090318578609246500218100937818385103284446746025935805026062498600355861692889402316766015258342521361218855229672018342698335559123803824900680996158237048635561861188517827246037953029495369363923107320090501705611564311950556214856952137179864045062288524495673751348553738920116611040202552641384138899330866222416953819549002933479601084891825821710335673863435372405198733576729554839662665859719883669971124825198209693877606809218804748897090467797178308006481509690900165985103844896488706188787179275560841818908240829625282536524922264508553388421656742392732310518248188030730774728515635499420326092200445817828378447000135212574037977484078353501546570320948419205248880976713533378512985385323206801611945563901712291021273289661464761766809143280573870778576983795717509542896624957346828119965325827465089605295427293609871807413599618913899240209004225441257197810021379081181591916913156994665702397140089819845928977609990748253707133283288725388476211494526328126758528390795039486121396759185597751172614680025546232510418508372634385949797703013817142218587253263248443598335906222919930359727437077412568068777446905023169821469786619016191587189588815671231080054111941534179726361380198321777651600970971901237691368059241398521855479613812454384866346249151344818438758034572836935512412130246788356004308297670777543463353157944936220548504870398559516501686572756535814882906321958608013582151862953125128461547883109994813008746466850807937728919006049808269433499976279216473976710183961884623352708711472168252735863335719910115935950065853986538343143799474716253927068597016635062736618815097910543185952045676336873868483508853756075489381039100738806248915509546378709600209769283769147912467586143344080938857814923617521828283389553478274228430341805853963615813386905690901325282297928151771913062077920544111470254033368493397763527775849335996982391707216415320975039322088955416339351641889111323474239899149156461675879611017800441740062528611722125976247132708266116810643198265757517363825028841298504286134759779047607627678634999361911255253562113290781591474534137646741666071573470307584178762648434917567794144057078440980461680161849861961857791582659046667648109585927860127165172720108451519002795712423221444545197176626512021926555214823992806768855207972580691917590303578612481076823962495357325214745441638278863056985494268634153666459714901949995641008326839085225951747954615505519930970814935594564569863701873053751482514554324129218746964252563371085746007368454455068120701129714978860400181068239214185296998400181533943711613784166958229330632278587788996545767974465214717258762147805112793297767314362324017936205562420415777739554665417062462160142631966790424443217880066282749849133947804864850242814205461054528887105075684078920068256026013350027549176953931476381409598458042841392887855070093361604314414617568849422473279608002504621732347156914253522481222611583407111959746415856010693926712849546479041671321396983135603396708345598665600551308987958892262465387765305519980270521474647309950018114836084558416099318225416697771605226624565843625368279374093371258502617165223772690793173807523829838912400399727648501368032648840747092987103882476891645362436575795085140488475713449607698599413231308449483457682110365867862923263485613670173878454378409385363722706670229556109492984298428584516023436429293022315140406080114657253456823539944983411694599080652852213733764704726313415115928112093954556713801741202403994183642278234971180876233753709812556369799704310145123779038130582470250392690385610574533934114049985129498900180991293564938431800737350582447865622217805386851927677229613022339634754363256072424134952945074736757092978635611076992545783138687006216403328203654026119692048028714003575832022920702630756819711354781227607119985890603766640992425855567868411565674278901979852438949224535306799540097243952127029497207878563831309429971686300176589158097860108857825348616003359449530333089435491640356337753341717407334468059242035044182491171873301848987806875645904964375587078789439043819815650759628358444340504436191253620106319104452612483087032878474144803491205104105979241411064377592446196766497870117824832932588569065836457750147310177241791622358781677348362450539569277386323572431187440462485474500827474602794944084676228023698856617409936935991972279977211438141865630705163568800272728305700722763323135055142656549580793226363936720539045843425683864244139885165995299969181909357005920395371799672067556329784436940777248349795231194228823970778789706317204772669356764651200835694435568111011363226484027626746290515954383189302302815096593008099690824099284202362145398818792981259682108051109441522122753240879238135849868056895824422962764545891383740506436628081161087567584011468881238750817859564396673857979203527252632501457615926442472784297675732977577093585158259786580033680424175984048944924039405222346626333148882621541955503816103570227038440054161057573198463744739651081862093172679922248170427108233449407943620073289779004985226415716548303175382038936965922102421084182454840479271073255084737688200233845754505158975503786223767710835724926484714007366493133770688504923107371885464467162937072162943458591729738141178554262017879181155580352245596531959613715277190125186204573457954469678716501478567789043685315688905174143388688760857956844194841292675169838798942112074867155657652555911798210036287565366931950347776123564082349170844773968374170213680724692617719478870334141251872127819070381125457802980878275887930672448074742596708184349726431783862517876770489664981929785628760381574930780370314486930774114079638151801410127138160184854867134307620442585639387036555565631876665398073074013312874989300270135986253806330969098887256093320283087507910978396547389909613729400652172645517243354521513539175607163354205403958369918047016373009107621958890174316010657906464636847134497850192810122520838198879982052961476563024490264495476151387350932867728003706469065643420017055301252926405513887707993920157437490654469570383526291798201431574667441444995228872138433328575115827208080213980301813566316386728404368830256684110852942765475740459865506939010179127004779876100738708648881899425619943043719055490500194001893943952330312801079913921900903941981311731098793439413915675820257442640385532132902892216643089118916658456862895903098173540566058265064059286133917803004277819462786933068906113659799702607548081210579156162413157666065895942751044240428351117873498919860648873894849513518687626133895800534003151804459849864839027464962224005999212924248124411872524023335589789122990608728003295722386343898373620939741943611377410614711043337058486670091288539116042341959001297124208157119190403908338501178698161082542745637703751879800305327319157393225241007635230714713877367158554743759960780961752683407821396285885978560986549971892543591439024142987212838831665677083788306786129776652831049722753933317076666599239665434738221919472523912053650048573316486591315877155501843125922805447650378280830854515402245411548252177055412321903391920202389207531138572719073350998134362291313837958826030377163217365799977618226529610124277305495202058252235094625846852592211231604614766929375925238776521818607745268124325984128054625484403881220064439556292221661234416266226702284587743441470109069867670144020169642293424691302869528475875482711694766937477738387194637384816353038712252540167200208796511864573840240225308895655398891528010676653026983561927294982912215401192153277169081520469452441706875697072990104530488499526273795736306738211134267740379098376075975808956335672086201636293654227460773961522397883261521734612751674906133339748303048177679315541331878573067512349004682566394582674441167172112472628407384094757315263549605708139769961389157662122955797720576898915811937516385580720272478491229032365532673523526119534534129928339690573717445568107734886025733069785739955953408318881298224871710211813786106157716990808564011242115971811578108791092103528948115291617577212249931394916743378386813145534847118316198532911774223620001663941081373903861037096166260467363471247867784213185831714730124656977533223877576851570621615289880598472286996555419717000467501983327482199412289969263180041800186963714029441457171860951310251845676209189497432489468802804251926980901636711471201850729009441516443962889207989631952625367063912456661426476760834143501021869877418717521057181969436863990885965136741615703361565251976536903022561168940505646684214258212567140677856591028103530083777094823502109105606969561805767402725228127471269097089293326187619241144732489766636626153192327369556815312220104150373140698825778880480359382594232875561323077614091996637494108132474365099213349162423654701620114451697983392175410790311748817077818773257327113404851534625348886526576256525511465703166095955776115461456284990887014714026310070656050493179119914807427274173900264395147560392608461039399460379830894283445063708097149837180350787618991879863006407147662727201937568951529488906468436951718906096915442719553530720133012178561365137300803259996247032867253561518413751731227386020108794922864109018203059103027665633128321224835058233398867339715581074360247542722982020556471383222329767130230739855276993786548224652799535639001117790071656089725336462090185798323124645535596226208843646742961165683349784841301939680222939673523767656246446616192257383863319628911210960554557327361921005542557626734987613409799479475806485893225716077576768959988574653629942405498891052030461753214996622229772931560350278730253910749205545827542200620347109816444621406788726922531556917378113370339708799215863673382312207759770080782651588242881992365887959497555037759286927784653865469711558277805223168988785544081043986485076963843983042366296908542352577286433830431539877897030362150999200909842851888271960005996516289437142913246573089238282548623262522626236195310814056791239906060832722272580571768182951317150620238453205544260627522675002700812437797313990004189637599514482259045161878539459481560777935026140599172982688941771102593829918530304659153302113292491494968657619330385364273436809540248410537934221281461446855292319344272731425299310413838762053385564968150365904163088133404702791427318091841220692012329055046399582598832853236120585473636683958508773894069089642783522159687434896817122043732183256535365429141930675316590531915712575148011704456536700766122392590201508939949703738321897576940470907410806467393743662525137725773767880668069347802047406798565525519535533861864884810659048796947197938483797476383424949656076079909899467956123799240989435318462715451742373878746670013180120816221281467337621530703725297125761698990774192460012949028773615932288525182417633223159567316198560184589133582973831737533731203560657591756935995578328477788096886051806263983123105846565466824093308407513324470419291522091826122429897729627459279331537946656105345482089710797639041824796873339740479226310152145806947643408447802559529326023664417600679894630078152618879166000148934298757723063888599091923899999871753213510411396105448666694584975450597283604813565437515283523182440695473462187113470729312694971804797591166110711993404847017217499097655341229546280403736336676383373291854087541766730173963446954507835189621118138063379551881660903762775835032802474045909821497334596971593257651288254136320879530161260453399559988146863570230531256765456407381783044900538592944545964031697317595847108979170991221721742864988089889855145280247522432794359328297433286364671921333932692330804683499287144098535969651218554058567498280508229573810725138031912817054404511793154291002838058257526217222898824440334754779886191968641323927388870570450893624864828664108559935237613171916590540356099460560324637883514347044043663753874148044652272819547094813819476807660980732757968606117794338308520082902820839362936112385941773925028357595488099391345620677305550271848628508327272035956494247161195286954829421339865118428057258125605156027392153134466167739435676862087802397317588570005962318113560751578894423770846396490300142432431029447740644655327618087612575370002900684000080344084339503078751659394456797496721044067750289911390495872032054119606036517373851774278859650519375160390119902383362777359949474669760751203968301172538313652232888112855737887786703334791785463188306852475768593179501524444252917690991880390600130212841695961243708685282779554635564370727092595225122758672559414243462295670166244710828480371646185662094106331027974913493790422845591923057028803777154683584510693873481572191345979109527160348455770413806683251461292743231053587679144821935736869579123980695756996686795376481379950219816079588137020995962600004569880273678669792403095243593820855296779536646033991778228751638008803618736344868666785542517928827380853943035082513668935771549333967617673271094590419378761914788663269805967402851619573495167058477364536523035232327081674832458544270157987293868256403850559809283376592972149102097787856987308293535306660864225504381125784245889002665612997760328963418570708884218151006252841088163964637698848561524926011550642959596584431057898854371403825390580023791893562003809815382001094002119945394257962485362448337163210211628793768663144482805437114947908353595283444640875617649676659675157041317373512954270834483771353779706953944369083859224697298124676148327055906863835393602272978586532638183897589027170719059368169500239943947672435038917691356012049045710921628313990036715795911485967019207767815189402118168386904988624422343909967570033582362836178989798853490585241398027384536704123895583945369037183742289083343616284505523113606368782390978477767008694327126066250503689419645396636621697472304926250977939795203997257521230767350665803596553796369381857941915640874273162492297980253472479782210895253965774763812868977955313417095702044579256926183836171023769218433570204036400521217780915689271431274729038405445103133078696589159494322306392369730429873991827428262869544314238928344061232103866883150213906642833095853818197507479971257360737540251860927812364373508181250042722862889293245678851928647466624744950128098899956138578580175950385810777189932414523947205703067433792001474464706123036697357602226737080326972327825132108372856348641131419711032214912034893477113878904720176436938809248490956542320533217918145687965231713081812527695015408985183242115264642630467212501290558720086872809378157314844583752740241442668840183387574199483434014619443848308420385146860028167118611973476549850978249464368244863771396576296001591235204434397791689093686941469681773930351065020484782056916681817626678686760506403558332742543292787934598557115105979975319358057050778990133487551277556462276004868228669578618771798237778707699848543987038716902150011662933080545713097762662621389638938368462486234816670894639509311941604876230708368339585752475546321812482217297410570526062690208924255307930368189337082776133438568408865536053673155910818455228719529014926602064132971118285763771174368521699604284195233909352655267157066564564455455302378448392901094308041964193630572085281935747439733440376222639511416614039848925969862036401172563023343849258037275492726626922353228584347388523989314533223287094156195986782390404870389898319590835128883338322283011706571946506219649015393833302188728028477032128306255701717083337669033829723208373674128554906162003515174864679823254444847721977981213866436415622638576648791403603211146454759514955824580550971787192086763328776517486631655431756793950424945440523954852303365633717013271075543680933679266309398186664635895209356668381510598930174736483053037803028492552617905838164783040738457824623956076144418128623671296908302174636627773079302314019439087099124829941050253117281471067168650796707040947529660071550079441389395505191289780475799073069368254286525172152530750297012186097949117810896238608462832359074697920530437591089234655890758285448783515634713348732405152830955063076878651597747005815157709353179651454130857436457855223540257232740420162147958205302114911935898275687581449478119436248836994278738535795225295198220813682273468659604770814185781815223033023502331588012496287979988360551888821990439781961452018608489744156072132492395628249827190911040999088759358601504778999855299294074030263292368717782863567222980923625861784224241994026912495808264650482721374420267903215626845024321845498583556655323393883403800553848061894816572810565165222085886134469015654573385506522381428353859976681371377761202049148445470955323063571660181018438447399416329423133817605752480696673889644901084805660116553001602737846295918340360276466101736658664505657490180135787220691455815328485456627512205390192378325858967914841543693473417828208076609835012803622038360498496970591060156700930596732880458842317398161112012213459918771417708461658242254400352354343910266104308738887749849755847561909021863517248123061157219927545414404737973519152716561816188052746700339816110596329175256565544059519259042414478742255948436506244466355914785286020046347629169006095570519852632746705361419720070312188756514447433817916002305588329178368852684417392530379354404611406636674094590844048110449406746160065073384824469168230113832780279383002387842128729263543455415883794782726482388027993678883267945116534345568192250240509789263487477146508131132652625242340282706966935938523345372256895959950317977853452057130038434848813557804406658683064899217502829807659686342756655077914065390185195450571392948848585135194151413676299676144744458739876379405328911701398643821286355807850869468056819517908598986258164171332803610270523989614231913151395480367796311135934465063246686718944194941684858469368713639867753302964605719131280784447196028596466774892423081273978787398056899113804738068944113721572861545346674304399261507007218907676271171557560627902586953474862903333241218706263016865689360080336913143799713180376607728356886840876008912523558151717997781010895200535284967225214110077999077579183460137793193955308218183815925517368608650384597829119763028922335935552890525774076960742793728097030385087077500716537928962274899824962560708507413647238498065596878990774901482029508812590898602452176453617372190156005449387284147525509974155602127091820388139301899980963344573385612146139494709181780188751606023999955053493319887188645548236051899378733207182912185744966191059007340379449901666780597918142206851694323764906041474965987000051144626029237766901511780430059838288975949508207150948624671019723314821613899270785855021334659041188267834327559053356717571187123023130001992852976491869340603061956811431877427301158262307076558073692585163323922077408089620063026726399467390413379768624150754489817616184651883011725704969587447270980945335798851473327662155546889223806998197435448584392161895193162109155165500555378352396376680129636243874224718043935572423727138641111760861966417816951522185054666170144685133963729299777742426015966496270113512206277454277213698923843036552472046969445809234435250604054230874302571855025349781357635657163382235113913305135490620053517432385990366058421307823844446830709616001851362905538429677044709989271125265882477767249192351548691465609067093017279559826857236239417612068112128042718368309076247696301875216811193926212151427556359037149026737876229023391108551522345715598663299094202055565079434616393982342644395042512168139507013721930506089391774566769189803178205250030901893910037776477588583083044133774148398849865399419768153683065250352617002377067169848651503704733310455341297764726618640245650665970882269645894075580364543428407096451466045052883780232608630308053756157293275585843489591714249024996534102435961492792658644598285307180124109290913264495231322117612389874918542923131608565839180034367815994302308047425732744289326383748146147341972047877476580712324159504322148597178185718472903006290542295789011105524913477849177472979383884321491194055572109460376300757683836888142318652816791329921062935784713302572442167430466270352516848383065119833798817488997044747949028599506860578334126025298966699872210152175592758404087544584347383241044565508562987144472363404881434137966146539184154289974816905973032480591954447830081581697045894937307046153994026091354940641338640521904792246781611589466434906222182223949602915010468784264009156240411027435321989911407036304412444936972489010978454552865262565054567330415714532643059777156988605463403702201684312792685448333056539436134425546543095915653539910657199447535467254695278256531525488211975129278384161306572094099624277832655455945697207281634116209959965426043962450417023413112753250252151801525984503951369552903324388200975551053605485176078886761859510761560157439532355578563010633710275347785882474277752777960011235617808464495940434677267229893888284173006452201557745758754760213335585676249917155942798743257498288328666276672921957359984746169618707065882526148490396649309068126724276994361151207205746714312294249085784111286780302323329687406188290217065118094250640089957333282970758949360429950590279577905250267654241784288261849271490935199716991008871377036673083053042975511959179878595936806162542947895232829146557978668993049495724551106639023431878978744422064501610012740681289445442929332207154093890648010172697102243662290409986564269587944420992749644045208508079920074375088572396081734594604037641289757388595579444678182439676035852341037712048993141419913829957521503810328364730608145683615340686726378421737634637560695043777715613315464471416085711893925853808293641544758016333719706145627839556829133770577668909805111134937589227792032954738389443748692278555812711906777202385025444922659288877254805200306756072240454021055679491410473063027961663675234388613382216934201586247067873398404914492303611799082759382968388887123995253884427783466213225765499783228282409425684026635387779193134814926352355280278626679080734716790335947783063175782846815832759199918118775080128367859636912846750654294095645540814867707586849304061507518627171946874850434176815896223315361429312416416220041523655689104226257055949631311806748904340066121226491015311769605453271751654454609781825451032165538720340345654086538826390306010945508625226117281467542867984748407608971553424585160876682003743270998719067542013090287163411103792671493952013885684023836959580156453568114954861274347623834972393695573659202540254926342022304267331411442628411803203458610682535050795186018620207835233451910192856691684560307142238465438610537839840752560432634231948253649990408517806780349977040486480665724723389868286442807601733016645556519429201968017952366915101057366106475510130947063020912001097018015799166281568726184974816034093252486341616116905977331577542517312160161318077145072534210105197137937654388886116423775932400258824737114689834882860947944025478009856987501951026518624459472749649892584107150894817238686100658777578902236990676940443514766971684500933886812008071440113313722250384319230115112189091873143428623027006595791868617615631702970064090421588996531716765877291775305872469544746665669407872201397344241892642543719722931956939141489052560883731641970720766011328295147053807317311171795428634418315505022168551511199112683004118669859392374005317939878660546382651427670768259768270812894762559295050237123768493033174153774663331604980178938022257589491762954374440688263994471917998212862653882073980047653038516893701391830020186580547610754945425937503676522184469471525081526121692673947972721662549324142123698740489333247055521331577780117159018099763605163659184015989858229377614614818652549622580620165453856985488800422234026531432060103086442211996684969484989088790066435699506168994158389123081854296191309430010893286511480604157217173004505852172108043109147696884715919217044998775123648053595134013070620615440894260432719891702773570306530060811370659238171739650981751411537356923825963387627042128431115345661533767648540855173250860745273705232416857679995880615458994377580028787502311737846144067378912600564529769999218692945775768936866458831312201832696568235874861062763384783107007525932991735282459119915149839437150088444814491292804118714101707375990281246588202886500008232034128710861081253694530216169424791959463677257585364984037094961871022204078262458485062814592989884570585084305096802935255022007046191218326253368211209595504179052796291566487641073401966601861489921829035242903129392565856516067390199665188789612611265763758825290684800289563999542925478246062058451112842316476612903194430280695319392070638548859399117395567572972506152204217982543486739588429715060015909598865423488513485313833862437734578927644733910188011191909527766804482814245910641559196551437986948629963331773069451815683945864962213268211711591983903667314635488943555575855569697799391349911162239997682282824965557772432886729965691981758120908072049118497005963351635354010578448989917760164206863994796973601182722415629299516389816374597651240518955581983265551202259700594618091345239144482254043737237111324848670830232234515603511565220324487215738566923697040181664884189857530234900312920409662534162795127755976616453309540411702327149165010122323734316412625471767527975004885096677590391367958899858181406006151398791494890487332551453913467564689322361335340757912297426327884239632945243015698139826168547273799794110538801736445614213927586582100978467542375123120823629777335910589783895616719937729446906535207401403706152473583118190983141984650984921185650919197016605130899291430751629198120873571320536378579819041840842227364265262021746553839681892529251525395787543606101403377463259786973640035510137337326475352097292158816395602085978894018473093584585933034429790342902657769345222968708526807834602203965945414063970750538575924351552709832044132485811711601944380604663666607067491887196479992359186498215732586126222567168070755617225940696673221102437743157191318291513546302113916960987525232388063288507751611745428030428564492921197545371662815475273497389560771675079883604040560503599097132355403390877312577793870725959874617080183019318877089777185804646283752673338009419072631431045643672038852819110346376753708982713859871474073715642871569315423865413508784964743173633036221235692163208681752845241613370968751994606712418304747413296661177136043229891082147973936540894620245544651824554143521303538553886252241315207538230147048489177295606367291064013016185121804840290024208498946103975523635203255151821666779705721843874510305632852938012181100010032101262387233875493397168745002897262717191876384934293456566706517401901273320402703025182868349507392934370966878557744402470502275602360734189627837767171943551993524502577616803761292386653112486011463096062493583217309428727629427292085912338966377480249801724870773521379587698358618115913415480901339028682575189122119956917552816857139811617162269765311289394175570654315561262633819114783058583493266196985459142997152716093281080970116497848997670911632441241026998780310490485474553161788187895310259162141215296622848150706701068167391021677169739078708053410919257016969865482127002363923932162863466302055620999732057633170825847609778326713491926149380136089924150641526886432368514597388217725654163458970826054404903942658761705771730886738003343121476766290261556569466946282933553605720810972910450288635076459213916816850347178078577482993199369194176435867569472324271649687313867839810150367120609848795724333195301750213042091377370212747494455904717203240679788522604873431258628095613570253648770730801301777049505450367171388041885329686654413008115653168290264670129771018670224080154336412685852272929035608437560728341827448276191513189649278479669205301061976593791481435553135650738594783769247875234497158768191460119089238828096979448269444459243276927833290122330385771874446603582306072270526059432848021816235088618095773374131814760906116264426544407134049938969982981622411490243596574508751337709785770387504241858080756147594594880671167526495092783113060002987894798812320574409252800731378504590628611114328645278699124906436367918709117647681570231781057554772912824135587101190415096903469800838569338635946628497653752239001813906959811821141334646176253996584499234319258084758245431805104639595302756761489168597731144085076600207352537258841309403515833747156743080935388482136114113452010697915083783524973578743356359443605804721428481799430453616924399675711250899853475383554556314908847703785871162987839777485527319678422532798361755385901355092958460017322126796147954736706198776818356241500576597566937567639849769717229949958870389968231045394827390646850020290406813509801299834253672856529605981804904331171447741857489759047007024082173820807432774062407311632930800170912635675297861680548549576441886929731671001720517346815201683971079299345683576980995609096643346237379805041944114585850138247938492615752616192335991093439231934306376889594229894363691938195266779751488257163153234826038603685899977521988221906316638637030240557755095539229434417590692293206050375237393206077083251861713459684485226723468844019392897403904574342791152051252726020938366658085785042588395908830583422983743613605898025126923301429765833593966263213806076274400188489945969197688708250508272848323419520549261115470346021864460528280396918644003855041358602679238453184311080417287410031253269577170810749824127216197656866827086088781636148463269371249520933984600239511905153450443057931809752631759922516799040509518848014393939326995793016733764511564643029414535381385147642031849578309483880817380035567361250347948897113312476363807787758443628872758516315563584949982780939456638891366138180320392471235340175137399677771407436837176011131165888199192600628786233048027505244492037184274291860254639298572426282966985651196760803572174808547400734857635052167789350031730384291963826103877777513967759014086503175143541053828804339993814097497462968574922118467779869494683495663128271129729989062276082418235178247234571592575714058964395039275935297947485371377511327524037996310373037882864247119674329285203368799960978087879809444576853867905746646365886386580491993997112720262530987155637098580659254935726139972740886178494498447480983740916353467319615658815484611150169897159591065800820169347855686952709233957270239179354378571229673424780431400806441831424027403541466964829470114347440733284433230432204152878096604261404086435748730021756701705205054196895831765288000187192517732889451275350517750851134349159850910161848765348145170359784665551384072731687418982683709295755030237819263890701203830124502381291154878008519709077367595113023558957329300933970915121638072880642651676332277881040112823409091986818650722151879432787791798629090702905332318653802889985600586961896095914763091197004339681384869196863441017471686425225898330220049697394546525944116952564695687998906355507406780176199562074071957824936485869035768634655930732491854176770088549016773324068336325614744765243061672637372936578199459883540151082296682830099132055706413645017099516596169930313064258777363001699079112539656010585436146689575019485410896596933904060062076243471879019859197215484031329678678843393053160605107018879740762277800583303753317868064604448730164264066879130074861762849601741850363929698854305217651881258542914426219938749118468254328874919594764737828415175371822131161504425755295267051790697499534625698338602392114498696182746304747609861533161287524785164857356095234601213142747548498541888198902697688525293085777468557671301411172350518267128021126930698257858359106229616218138135958285034654998850524573486886602506941111252798868093346938202817529985418668545837655169096408363108810202672474056261958922881378745925118205011971810362122102557679554390973659811876758566759090432493127401794233536202979239312940191022087980634613600150551716072489097026059601055987080972517405765318609494461131086697572301204015177899217057667249747469757142474247965638515620668222733912481151301422481635056195403644347183521263170196162397616586331982165981255414180395593402769557771234719626655001570623352045839369611357952048618736142817901843031143577575192021684411678547497468068587128699957727659909601383811777261722809441670786882455236894651053706145770341277134841594374683966223664980678872960314985171798696537874491964366355668742463332138711899029297398367951067034486832735689466862917883397486500621227454288030786257831494897656462082238832918049491962426172037621077425708015474761579793367519672028922292965929737570468261629792207240199616289556670967407502959569136875834610545118234277815984230499630112007383808131864485132102468968996341789404834399856233642388839075433870513740620953140298895345359200833602621539411089259478151617211798364514103246675038158848334404846690688326252340106939967331993611420491398982215783793061879207294857481901540854084178934834091247323035853756626846839038246581045673758154537858767018579168464997158983234238018540395380298491656789219557852345948599765607348296047901224963476359779364423565729784773693833125157776862784936893812804882513203154227132281375418037040465526617730661230849718974377404529590845330365912475771299700276892810945271570606981546229766661563811470975012436986703068943648472456377152052995106618172688030457195232018735706317797566937807475422583953321668489548270286525193717150562388902403225693912869247762819139621000089061422189567234078412666498307576597739809567872742468731166398500289020859591103227628835925630248476878357861634783906412405073188722701310555226641652165350117781427518056117474362469571887370483008186947814498854959178417173437133014532484619294070952509670419390742951177824818835874021387167449120492546334374205079496911495006144354170725623319189957979293703981607534793681946680820398727593567792248741254990467409851944588714803787253635870590741907721856493652363149643372765530577396393274914524712373498785013236248619937159561934060128250178751677900978908340124933017125332452115251088485701679198508339615641171586170268270264545450369035873698747519118377856373707683112178691023397215893331651888069799837910032308253703975338654036147974901143050408873947943275486966826594921805017603892337290351443570969235703327588750093119796194541263435246949299682954251800805425966799061967887860454522507432314851832943402299686930883314217056336012966212699055917429932993805165421617827133217192024780293523833207834923033769476670249559673368153287017431976341211326133736967519344567370775093175395603085109258485874381018266455431608748131484310073498714096078059339167913935133366645614360994384146811718425538752109631250288503397690898556129370047445519370103516505320487515177773158026064105622621133219398393527516967613446730359431216748903698462982393743542072612477264361045451841935040201602745507138064086741282021158176557592321432064317619230628288483813029506180260070440906718904978861811003853013949846339123779560444674548045015672350522099095188774810630478611475283864854152986587194437128247329560098979638565542518287685640877252308752373564705695631261201750866136233330784267916341251888227552985281248979028613701885974782012427324674444525035843523355668427400625219383025201429630718710251231344374943222563246735116837895356591175992846399541515682020026408924888513957492290321397582584270006702033478033667230978799866823363088017845000656808498639494725546786624326589205040570229821297357003500488087953211885826396244227591196971956182202779333884582721673389400798588660700211786824971337469815256535639453253017068338000738634582095028576723837618101024905252254373897790297135580994136482128075321148827351329736416818924011509917939465833387209064575981638935171791157873438505748264538282651230191280264202135030563606327656645817293674246400748469126185471755226334838244007143048238216920195015635529443543577715358751971546302238994803678354655443360113343726117523955648739345433987708953039681020102451901955775676629277642405813208201024833700057839187857663621972512010783630636552074925636519973529509858711138323328521965416246692652107918804771078159176079366162947423537606301922506257402961597811543202195769954126002193192778347206722831041674401910282273532407910687587559596810563129651270831841900316792588241198428709521610444022877415491403577886615658326244536054086531967925728133656291781766568915088734788162276182334369750744133830576948693962711176631672124197590241745142974200132119345724152943747034327925821311545134801661852026370790076854168453468954751213449680446018696493299021076297159283162353184849318174827411014971973381832115546471187877904106134623465545389112374005714485725687594868122092373725716972455680214346777515642669987494806208314367122853484349944333944998463094728045703778276343661604367868336314733656553403764754222897005467138372306604690579991766344298103054237932068340193815207682275379020196268410498853696135297303456072919353273580213605480095117123027371705492080543255114290498879475236162900215798802766832959556304650287079235515377317665688961312462173171491765383370324699854329468501503733371416111978951647678500915671886930756492056181966184886126359577262889003204608118413678786019790994467582679519570854786227846418808233743601587810744072962648659211533134669492384937160516525210623876655776851073278976509772763019874332491006237067429092075540484558692816052864671476533649103069907830640914376444331132259609686276027222591782673670543999153494556268397091253589613261754351508400453264215417594553609189669933167557280489871233135742874019111139767525945981786171966588726177022710704620049925731624271263768489104218827438616983932488141657472910002551396756360487690587464176235906624108354762360575157300310396972426314715147459662679834329815136581821807920792020670864079055407022572851479543488644804029893896368186728519970372155600835496530330581532036937252141968961745887315919273157518322722099677901287821150477312345871235565187339137121685642729099560184388835608336109378465145195386602971158939391992339539278923656494090807192372281419918401870538637936918902206162320090976149069870388668063675827420955012651790091868140677815147530934573894060001286963906543532766552755847764367265602640016568610193198883400566091173719119106329908276687006950652344580734867259969809402476904386292095626029072401736583175835626371861216142652754251995755928329071800786217974107174837182283549894524934719403193797187676919013549662709782095370145495191253189676595053852248442896406047264216883688042475153840844424278681509158439146213379001066122387057919371833667937999042930036776692131972494416763409224277158368877948236106805545245278195691891486157948295357834074533829876801516766354309745694075464737674745056690951253435151451594525167307064196997816037924128377184737021227157156137642760970602088152145060083332385648287959728373184591847636686152707929454347062364779158528161648303708149030724789566460790447148550402559048080551321078389037222097476027377409668185303892363547362037049002929102731434393449254987577672883429740884129606495167535875332206355911075878380459160670924803550913923702572730107430552019192726349225485037413882648190923631425548576780895067865689086445238963296090260155858225429813138611695562993903259446118910283471300052092242552144034442772812958751357958212043024037268911110410926374863770102418851275566691770673591003436171647353322033942121172253927063347628169056207325187218505358853220391622824382688964777842519435432579908757803666257117924355260204070637549585910841690175447763783739129688249868152569907950633929825856235316879630355307993296670333777294115864985818716453026704597767407961165443523230368254015906729135622355355704883281875083840278880712295733151547368228940257005160813886650486106711015737635239711358897533533380097263881772670194807195482637362471665451428406369015771727322291487266781782140913004619436914525486223361764856336924758895346697336442033099119901702025801849882690531318904182421019225722170086825471515485750121261055700777229287779687126817354613161663932369524288118893341971075802043394673708748377866528212380578221486498550241951439438453674100736330449126150134026264152682792968120031330805603402990349002032217092751844925344053731400305215877653982765171709370514758189642469514780448948708887544293010823819486774642371176197094234402301589133947515381285918002295614838505365237331925622117864909787632829970510474876921399000738491475876061378227976885229943752706223949532882649485890830096289437928452840574808168781207715247660434192510407964135979308696669289024033419063734509942149901905099739952841995780483396505254975463776445892730037956832842929832979392049358347685771492622894640606203031007372825834084973338887115303358310644297727231618377607619431131387546652111181054563622102411207847920643606369337912465681825806232484590855560434477754865091589075101626303297044689650665928427121609198600086231807897972866890572923416172692243914008409425935619339010868572899636824445703761991852446788860368327236023820540855004003173877979788955693615810206720599028019591361312522925559136158731293370505902855880738058663768241015562873650064583063836254536553926165257495721572703297778710830524905946340044721661946979450713161500271215806197673508171452862386701611131126183060184906605366463221950410002293702930691716230198235433514590781864868512671720933737419033582090693730497033208953383863126106771224335289667800129957454540179060410434065983531192141505526702619152571616558427136994254360635830149171868035130767808012869187528179643700179144173111504589579928576270064890610772839945957186861141222199973087182489724893536514041877317890045879163888759473138161883368768187575413067393860726191952375851873924468912284578035778249546236752982873129459306480721212757270923634563973010547028267216915015078406212240782500400695015901494978494869915187602578585747814627941366266853836168565956963159807845808440740622436595224863259359496660795602286287965865321102496738094923462915959211314788921341793512564921486834468175780674848839150762144312770685856676081100343097143698994258387521782892173271249822968731045001290338258971710839134575326350769433402394754908097677437745914241753258840698418551310307517420521381968161559391975146815177927360517508866824877942275782423095117388968738490463106596294975775805569080098787807920357311440343455956600516906539377918755863724928730490842613684186998036394966164384467429833914943448002210395652047602639568766026918599255028864041470408296795170940520290838164813959124402850814040491346632750071727758465946331332232751112881472562872033001793670772729035355683211158697947085117065001572967075662763191224194697597611392982896623608655062376280295958187664494917529420378939723584735033630615536560361008417039507354225520003268532518845193691877580064249804123464517156108484551443018151641966289142187272738961397015227000643740249814618782291961360968310784579251594728254147766736074245006610157256675849777944132061391422412641946538564720103271616684140383975785241145796205711352531157270578607479564957532284632511903032891125714956639316169963882764534089967508823469071043253391299755000780164813340218195493223281361182231135475789883407585427571757270234626900092361634448392484231079359422669478815698942421190077007383403133637152164596344779986710221075492151233806475719492671501045403127030609199930832570365917519932699289734425420040407800551730228912514934807548970195099517305554499381738409283047701677109148888705398266252618124562371636234191471460783801142705412155176406001456259888427800054939217381291413327272734204822271645887120280721210347968565844298751836353021438171519972137291509331351987219437261192520088127367702503760552025519101363589065954281406445215637800505400921904793428499513973063282393056608778709671923814700500134898372735924693846583734974885036348092720499005180500553350336340681647795391009691192527249218631087166497792647490641559477351328794614576430154148840124424069320512878283196027005180469203170026199022694711481718607676916810331367924667208759778721438556793352750749666349029071072279746642000695225632641548992496199135813798406317143759108167534706398987352286745867848923551759882196179562398003203158735180526656056834686318416348545814515597366212540244592097860578024750792928613517890629911158088568662900479813135976067539457810173721988918002060652391686223799237020688047682539776948341094207683472277594101947638114033075305997287836449515073691883598356254429015139945616646366946696338088346309310585002805089958117042455553077423280782725175716990358654366113730441876885702730798673752134894361026545163003142681969198432680410678218924306071362735341748664785307902101288039112006948752159304438449525129430877162608574251711843434241306704355049676968255423013027162047140507318920615185101423943025156581272397399933150579894567406695250229776731512433947285534780308623929168432742881114164316686585018749439753397867833034173573287220385316565418493005699846820891796317841042770583572769928525048771700209031503916465439253981829225417319002753993219559739090230202024384408243172923495337277099409634652649994771359820151691675685889455446500000266204690494147160929878840273534333267687801643008480777303862941325384103081897384761783808125997756474155413190446670017529270564272214870050956016784964958763857121909394354930761734002324350070000274740931809042486131566733438098171383974452804822597948155275013344132427542998484968918858638145024418477925410997690608062291123975754118147493097557198777803949507515777030907694854456175981916117911764991878235669576546638951901471163695768883659023523816686685074812185186241027692302392830965948863767134655636059227670937125083939335344701086703365936970219075694597511296393153473188537741251666583669743811917761500811664861512716021636132012997788918847517306389433137249259125281626443910173359091395539231933780786249663230312599773841944112496036203240614914439886446389122730676105373192521437177490473566284934238303596863857390748640896050584342959506418511611794166705117885202498242062334705077085801702295064241595433636508946953080050224348394198640339504915598740600757333310175251805736774346980877529664941668276376710473492388452289279352278561795936943959550571672155399731385541857174211013540293368806196622981488474276692149430341315952814183550514801500138778653492637808577365014250559632177316492227131189794259254314538834848452096979314950064518494083666208645952294004534613312787173814490458116634457990678669846290423476904917078374872180631705656968868505963769669325437191713356426000676923133236652981580738712459835558154256609129681769655606989936215034187696680522149030623179176423466145986990128846237069357415424086770861858340422283888585163437000885738718862706590959363941794256743342484104263938593990197274331649737568396402858439535752946613119187534634701633510225971109624237511489872042847559039007609260599498835909182560872143405908152660106910176294288465562735385699686256457441799794824617707025140380808223355603081330289259015830217575069996814986093953203309352051659154408064081046637143190373002441992170444013107947360711909529514954535018054606672281643848392692353613342798954976891900917911656427210634964349147734516689382684084172727957409952253520344508330594629469171205758512320591536125483686931655252801662175545429714846998540178032203538525620795691030408324369918040311847678317192607735192222209158749729794685034781770777962328058365724839843674990127311295232012384090951125300900518381242376915927449095123989054871992889913393355174593732470887065253115708390310677332539953638298512920849000194576108302626187116020349884002949591238673741098271778845056021902735033075473761829562669102656116645362021196573208530627000259374239183498126565079097941199456330080249059123240347372185440542796573266428440616871445654692811717712995602134255579093390822686155602558170442027315587969448484464910990310478738778454589025740334740659052387530411552190111172279982203398244166791046308821489873149575309769539136428283633543053593702267373154260856817952937708839912493973681566452546282685375119836422641462063209597255333105653508540951342164017347563556133476778053721664534346782334094863282968343118212094221136348602182333619524319159123697136685782656572247975673723872226139087409493313506806208874883469898959198256024013037096564561518327972106889549328949448220875042349651069408626494029587868047340194853711750119839259315236198306281718208223203706834060385425742106953335700530969318373053934356818734755911343068503906930414679926323719517467441660747746396528731865409381800558572070735622688379389194658328233822207811683284300827732720847712556240157143529168063968346118947083917752996274322149421255829816649565734334480396426483499419166257233758646957708497700233128697681617181174550883043434124924660924650449749115127751803938039915941188656135344551860607880907268168565987261867119483131435668121937525134031814745241591013911940131238549067798560836303393780335965133852651323212176966639624654277709681990137262075234116814178410120076156434416897929804345220559992506932593187706138464856860131864572122012728553028315408180104249154308639807223245855722179336701594976040605685119785758237500174833042941550868900546545207592851241416403622627353378324646531366412943668706530355833467300320979494174463060096254112804148070249755207405350779905701045504207594273416398854084361585522771410770554500753190164652994058673468684614032933407269523211624808859157182314224050397904073577711313512080875671802683011565606562127949422983000796562809072023029414664754628875414749443638262114842418938283402510704147359349578168065322812845749489761201963845696067002030663782402772593834381632240012234276926937915371997985704135401199288104590242340261610237520399368883557104342773977885274678944938428676478943729610132010266258418312953185686854790052831398688438611861755203528657650210417803842557161925478728459252489539118910157318185114516475313206399641832652817349640674972828881729228082785664602643103950578269315523880909313765170144383698255848025188094894338054895172295085285410680312954933525256007431074750440976797012665253257951748332408708876297048843277431798846047338882565330860798361800122922858742140106709234227904229918800015138267734228016701815065048880034483033040780772289255444343584684623569234170869391369911551839757809896994322287863100331537031396691596291313008714354980530793787840699583492914304056223833709638756933394793875001991987428147887689331309143792070277099493069584437660686328290880603280443275320632976041894545430532375489608527991649754457649581154961485565755422386874647562010400063516987341667378046126382489587826275114674309485736101119328348893678339805053443549129094721775114809685743765127390007924579192041713530487276611935028660467542839917702010013820350485214591227951170475262052281154600760394894075635060141412604650288821363710699484722297556795230626311780539912204646408034867112324951899765175198160221413264167508906521235921372501345364153583402571528400788179804102932557220946125343372731247570685618155157279999891928796759273364545651220865121483413757992301925945528061604437423632783817969121988455087970323221188782362702970264286988328588433106211381433565214713002333120687598722444916680987138496229094172739622478141721360951495083780128264855469467778062087055194058368571879460864740930529142125259211798779019050138189879382438755850599354530077772975094885447094035915650734530059201967945825191023613018775114016430756873377982044135902112509048046651687963063125674493939350368288699611216346595270517898910999972308941788084435628288658348394924891975928216235454168302960895716554819089373263109844382036428434696751932139786064733017969791556724876224325627577328115100657399317239204691812714725242347804614154566928234895744742880804982352959703915176011133909893022091379287691883357803728205190812004963425759102578476319630797705780330554462281245641940205096460058767682562336375774089402504173898732477252247083508670828677796980017597824255946947109134745871505039337071432558788514794592334942088357776409957039525444456452991422633109783471160263340093305239337461416811867412255288894185494691425729844267398414779497551895854963253565955725032122410942227633154803234303866413053621543038520123285696070270473931838336693271073354675102410265586203112487710837527311369404796224484008534185041666904298092654108752861650027792769540431793530565264253905953506765263006150058171564051171731396695328339673661707400584254823153562113230722435266218377624120098126968132662561138577281357379265149688370872565966471686428961598787958255555144318852489951830770978323900644307603432088395979364574801040433835807585482910076234483412369935423490134226850624903653928785209781283193724568387838365934067348185256362840770885626381554153653635568328227300359031287050434829102587169641150179595399496573213289333982282506453561608696626146245232518342803298101356099331544496018044906142664840485747987875129947404440849293653508117347136590944997817405489759185327474476828815969375888665660951339007048417703136619145965517748160655174142696953310567965750216240375385979821820095413746173702177270881165366177598373687110102172036204739582645212123427966954069850973355370561029610410236930236394911057971248516773909734195197270454078680509564585420417904290380749371443102107217144108139715748300369753548643193798751766334676224325610434493165692222488532961871494851141887253252751863824980019520469461568946103778282137715228459803948882974004798901840331048181009026515983540107600498600745196963247629054515217184767398773647243491931514685112917251882840880328444770246008587193943125361999833333696383232285868028881921946297857816852628095479608451177265361394263967478473991890451283041648024906013348483528230753468589640885903927088069918773520906576953827665892240960101460738293921034467570552121671510031612519222849987621931673616489046562746916383520304491503061296196328862065635902652505967608277057100965891366798154690407346120031607211701934641558568503636782417076992517390877446196694292785181894265040190582442104908022407207821207039180042980569560161878146725702280454018830112445283242760515718387406626760788727393172622037734563298388561220084441342681984633950880521587948402100261358286516128375665905010653319029495436719766343624165457862921427332690855742272372772733103431862484991194180050692626674459652827297925420038275938627957569866226287256406278715363006660477121378333497030808990569416130953963221061543714205117718717106778145455789250638286814024410808649378492079187748869276767605930204100023544732941547075373526536356839458647074201693281499025640428454607108093998085387616425613249218425927351058952120017750461779078493677692238761025787207031580528967259824557879089768189295959466500667795433780541790613847061398940206593574767683082398050002304655521291692362574536277035662953608304322057802682448814252192389821330143413752591687214204429319522878129467644291955604324964212935042357020381308060605092321108895578667228152103733508071050796154062771345100085262279600504888246223515427081532148755829312560806581604723586038723390550338583158011690082831198748327749570137391208109720376015094989425968745397677544178758079503556415390001419258398881680607799748619643756200913903270106892011864591130371655186311479834144356406256400524265006670077038137784177411413112579713834147169312195661173838017958520841865901874069916610435104707661423735676798568974244321766229609078453350780769703036039762488605078756220769621712855320900750040098339746471274427377549867556760285774631760354200260532365783361222261144046798263664043289086189142288924967644398190533983017705395905374324226059872974524887602089881565278128408371791317376998906095527692842361810408865414142996736097656046195119949853582060851778056152472757352766497682956001123128834257476231255198936653175619542393686683110354647060254711231145255399736439243034058910241715729492137073861470070206429058727959855994445170099172565050620859582032378742846629653957751517108341726677541980351219736961496944944760391207984432710790852236930911771346407493106773095577965272247112268794152515363321572077786456837994605650349921806280558479659432803908694712433618534843458643144490570981476563213660693352524367758503411595389327365544477294491272880747734129513057888583372716852580333516705404751338957238723301281163968532840602870572751781454594836886846248474048984450096591358635971325042747555104614524297658980602900597949063157501527277015032822917460008014930567623841847137515269771077927576146033081063624281081348554706135216685661225619504579114691696460161057485233592958224423001950651439159175967714304924024184730730794900350577081740068743090782146108603708937380511500251546437416808913831054871601318594941021298199012117569728632717139496121365583385957569555057877743585557798124622912292845986545322448788933366364014994970973487724045012992047442768982603894758826815624256534455805095197689923003936403481533211592921230046579083230933874610545220174945017005918739638126461267321695248955196592457343408186008421715710527156855402320361542867217745052662490019243786004946521443985273627086012894067159727857763624368703977922781926768861830893230505017480463513492977380609448770206196022994676229275148403875053950740975310669209201419773299661169403747953674484649833758822461008084971261563411640720372022035870724910287415330952070268262538819300744639689238266146870740118942435830547707068705396055264180510259309926649682883781589404887504963740318011335953222962165809693181777860842763405184989573869173940434884848336402650655564745253890077683633501829834116910359139346738373981062302111586999958725227747450804885298451581373821867047507927522605416504178710236769391155093267216938509134967127904391278838821019089116852696962485096652099731456582386995074365810166319984508648949602439729270359504058564970954210047923055417290334403387470785377301350618785450168120243550807834647509234922139568697043374562137549930953208946481627048743897421436629220400793059550227297023381230931596695133493589865069172362865168306888021327024292385372435722713672803640022542803822289684211102653743791793773327173060675710105001969368996469216726031111099823041731207472171870143603930155635076645566348619452957319724019707773540304622975359593414318370748926883454575645881058926361896133619516637754116042265590212893229348766624146260812734287443384976085578976122014297289510093382727222163987101634094317803587178455960861045410519539836530252701957662700742180707001665605346537438316933032315280656136686484719939786051201575516329630684380467517406686027655096342151216019642053569989198145272677604549117224685260214843286381276762941560691140866437854887306422647349721834742766805363266318475030944530128514354879931850914653485072529949845668346823004193066597804947911142868038758467218804355873081865702283053593133249260707275316451485587002748730000492849991262963695683158924373678823193737135835944480547393847682812070193558614171767833414831674489558683381753497565246913888791069951927472383807302811788143858151860208240283185621164557813725626780705455570189339721801337430042503384637355403836598403561330787379596326303446038448480166508375984759591712068635434833193965192634793640175009446486242531440642651984296397600770436049595325318155512651234675210595667303233776488069043501816579579193827673619139218752834074850167785951856010498759456784743792381911454010378240161614067996949688579791403728108984205720688506477343797910778968003084854441799621830681730873858510835414816792361584085353490657099557678139624066515136457163745202845237579726294123310094758623141269977414238323792519817946764672989488277669568940474833513833186530594308151873230810596795527564876160073425904490531082788753536704108669858456548920866729530222029192338650332898486812793068608532374509186364087279131789118598846881519518100198328012210140150019926676227961726873070456016435031771725287692826933352319090997838794687297143868632371549737831826054007189141444323522710569539468312594664435810005467375080958617639335713557501768445085895723667077163581513181162764343578690159755453262349856957996157199967079814800593122316840530743645401278384298227800260598871679105604374776916547403818880064902915371259063575608823613005508311980360105440250617195763722482217164197841837916021120003560533647837714102423005955744324261110348814489645267841083806906569927168376778482868284267390307776027348411626194840889463879882457568115515340765522906506882507932114560337883598626465857758748791671487938139396591685758481215732865393717788534377391504618396718820702497927592886024695914506308836717859034218188901570111251467407418708946884680969705519082519988631228713543616033580982679229191986432710773813205596444086565681609685379606974105513589811877121374796272393569332038380080111550995762440189358957936958543687271920615035697395984503467895781182880619280200630310945705480102214814034408989500292740761623984089628107786296247165145341248343959028577344945890135955561313663499294986251119371741394728617275486402995566171776479989533898382874534659528980139842867062757229653722286190110154931164232306857442562800888360067967961186830051182397960942913860817142523166433038869548967264176057300720683875614285950360484321533898074716557510458769738943457410465758374538967015959344830132001620470019057196004419288980757103540274464051689346490557872357921094685889550075470566564214809389308440121728776331601759322719571736032809598640547694786557655848642236015704929184488443516215176772567615733825369054503979914946781164271990241730980536632196872933684892710847071138217770442332150244274573925525476634638649841125921947491489741961156849179319051306586403866540627527835056223051320157411715612510694013039051490824372996781616767480588490655210688317512336950516503863165580893989909244035204822142360450343762014751191431745651522168323287317949760263457887440054836757420257056055404565267796211975168612115907444193965173894748528934067790253024810094051633788092926599294458040620130773239662722546401583334617856797170265194087644824021272855096451468569560735132892912264399928397626344100198654067779828167002921162982623785306422429431749885761263916994547302771681651681945171356532039498794356871453041733005083741921475095400106400935530336769644570107259571058287881122917890158831631247303690920410533741059075344999111417300249106206377894884687909356689175298898672322331516888005886319838636464145496613595861224511229550045412813426701213891412565551907749863193941880252564222844516275420060891139409982230702851068893149261940290632248621369894340064989737739083353907006861892204651813782543144911169379004974715048170260580499507908070841389738636499125415432043041734899054945532742163604708180784090393022928377342478938473489771021540345582608916161204960740910196299625447048082774174458648132730065850403652178657254590704676883475919120687760709670197334657249422633730689334243195665735170490327546475772707079154943334185711632340169973225725567106824005316201433076327481256442437136128779100515004192712761369387601275712848664306864617427287233549856276054940201536428090210377816253204382444588158360155476943588374203674682279277766360324103728881549121449003621582152869437348243853212966964064480239713629858159051706720060099699492589570540265162605919247497809035137078490969772505922704790271700004839622950502782570642706159183392226490429228408716698179532659406340667917186211351984335279680724995730642549519858428917134341721543676287975789377554039402737554397760715382163035936536081574457596648051031990860908253639112290618599655487605674391360136483930153985718294092038935618227095670511786400672368953840371061627746479523297771916615120494556317908272242950190656658809311348099813240530408498220623940765322683766017505636920402699255448538551685375134832017012907316290973419861942952866783809316741054673859738900069040594397178874779643598579562894977743824419940279869141529755800407418382393037677992757488979562133567330912316508231547220314447856485267321186540113852745854837741287713886956153454960128450311414936383406737494990819717069831211257883101712298660647838794476372341879947073867026437627676971839661703125146502488030941747654773386139363782438220328314062091774977476094365473857742129481986087267911982865710936133741993544418913348098862727704695941773812178742963570768489148753263588066252663462044446478471623136133792747281825395430606506533332113130682542567073911899528690775187452699001783370854265453141565287038022507094023935014514996945301005548287005170079778018056387626259018584909595404705601857054518043895455499765986400503790624613124510601462211128034479204672873950905388176732183757676673071759047093632681898948849668758053319135768884397555386875654747943407296465225582813811676626847260999056646423714693813064715352496695704069160698896137042771270401983222712150585636614445721799289092139330400762522471750580202979519916196563720866626338260280984695396234910312315866170174541750551412479723318179012153263037699140781825343235091113274809306014490294693053749198636776003283602387994218048137849323141180098830355257044178930605605858885251489295876810256485065592223020499501332627223656746500629916835621267326325188993329436547689719444163091442638291790680081634006068271457039211476747017612827757492774269421380709420619950441612380973143212513660034395198858708816832532505340193712397679053630115604655449857828606263417069145757496807725259773895272086568929303336245891537467550491923770364301974461390524505140505760865506332551621621852084386310668200316034102758782191624239573964610675649465406469544736261563063112083652009396711835473701534118673216244703313794191406684509938704949083394349784345030648421778171989537157253805357337574028674030999825483373703480222493102860131430895329740672210719544432275659972014418035012147545967810234736562570090173234321173429972293670138114135056977107482763485179960092626475128018463119807339951716168317144809348043255169609096883987597523695629103940435317350141544253031620565576999761934394229362545677597400933282785404704240675318046760810118675040491152399268722457217669585615530034492614870297925071443222390034675707951635735066681128751332590048511346090709196938217236600369183369977208631723408586131761790956676059166673638787490384789540070250248928244296322157006953095715136643128447898110447481350022191253202401137486881011675264481994079285967339692451138000808520165145909988407171275401137518960459851509028000620960175027143777357494429148669565906407764924978191987659743524408734136330064472806610321870602249210264146247511637710660574914307542629958814908935864470868343221156656761860018330916647612934778648153789712224336212144787556545981535616608452541474783499493694602952743068318352368626786914809059256349571893220034720636039817377057689575921899581500283122315702501829911419282327080236778629277205884489183849961120089061268002390741398030285815344617928397376061953089155019944723059737048799064735523461349314539421719105405936789286797689378603873194558527325644631564538529085011581041511812777939741838905844312410093688812591493938509356494519246353230142753189549502047848850546748802145570625450363187748454464661457579809657839877177733879480035855568786543893341589694251437326235550725807062316704858617333779798715813042600528409407558439499661379254668455727824307638719330921203277490992909576577920844320566391157044639481271831641759035095882373170544836991942196563331911565127853090530460763388333821942413414780169044881121002513252877327253348407371117317405518048635194857983323552118231024503871043948111873856999769114181982736172474885411333348195655841924847913772742570997007746725969866540822523821720785691472775322778123583233124248165918137767325294021696893308592985428032792285641147989681707867070911137885478565974879138488970501534218059938777461146636732958126007254138614438794993143265627094950432694236253514199431147518010007400422438020882532412344531693172089335950643131393052561954936378170027192326193123898915765922781765892151130575972186814167211785903170689601771517284392576127095381223781971881778534864768469623678305332840949938097521134515472383828929235921190619667527641890466430459368896841520661527942079106892721748937810958896339579536202544301116237545014129830610723065266365477370440819836306841426790954785686254952101321653763664760463281001769511544371105424184308197141751981225350371735251403707949731211473321972585772979971191891521732134258056105111840892763816380010520539230205595663386216616582078216538446770817013529739347434696190064664919201774800217044370183100955367119317023185192652788285059869991664014940589520201259924799080629335726029416055459041397902502704904438134369651017954799401592570925697206808392302956610617645428394935750107055313753503593149740547452466451526930334495693801807821118690389717371743404510387508785116911868048880797123201032194828119001770251192796186974292299056835915256951749080623527693502542061001947208238118308399817106095321021566040746825350467851144659074385674217495277130049123425146691367214647384659018955855249735015109173787470168145951423970542893311603274116079194512580831995930237765959936233697862334347692136644009101541519882955091104432599861165444618404532975531977898357935074854381963421807528666914379789103050148352015236300315465203090688393015506765563679226637983854983077517626441638444385404232963731257319122917324166695769014646974916649398783367022302190397720940841810998298517830437881509877827668086599152978262697974557271698759449184185703628857219159114699079209292266746462110380092458671775748569078931746576489038402514238006481119434216892679807343058450923549881437076160221986924386203362342820685578708759576287558928992035451029306309583194650950249417805775156112912056979147777196324752502096800063815527820676302015858404708162500790068270355196571738877039682402451562132101904537515457523724408992478845359787254642258165042790922690560929692853721861069146518550672086988716962304552729453642220179560470952033832976945509033699659307384984136335569703112648106630549419903910678493766822189322807771212122245227628488651498361308583814730207886292315913006806732964138148626771943044765407484095467995567063287283652291911436177223767983946755034369155354846304033338836480482658170543791636077020849772841489859185398150554729349198801408152374569045974204947936719063860785645569801828261976006489356314099186242905376488514511162129510730831700908510611070565087804944547129231858208723040689876956894394430524587278391593067926454015158726582748221919247751071969146747455756781028485595203431174838939550307154029670084604417266564534419920207962615342625913220373269519084568689669903761985214602351908071974240421750016957494158147021532081841016684637897071179724015970956101912890440581964167629752662043246837491742622306569395571527003281183081706316101853419256188649950160100642278453196407093890530278807577466871693069680346872807030102207385909232094562776092361733530527837850739280909148957502993431233535343543378457723196189850205506909157476254428245430257378908548816418950151030394805708471894751647948629509124393161755251207512322371843729489976379655324369601711519557342262396175539351121220920565795991857239294551859602649675710359340049458764822008233363315657295525872861888786150624930613832638969740690881841004933631720192932645721399521005507293948713626246979068240687211475106582133970980644703748159300414493698725751692404995463493933564356790168871616036750403622946655359761200047698400445682174805187942321799400148816792983962931517673283641590773636597493681015874485131604381025548703454136599735731892467291755598867449023552846627470208781137782558622533381964221212036748437228722884238125522625532089452248135361899271985387395640161615725161857530314500809749372340884663063470473154392105967784979522089113004522599135158412245677337385231967060039943629168616508963571528575559144538720750805605911060251412824379133004997973646933789560264097532012994166061238675113109763694717465133905781238386329947389511939895864640770949417150062668573448710061377824360618785120898236774785043383567525817890551542599034588326999672180856626481868640595938502339035336659222446881411641233907389743018288881338605834520280068054453214262434840646366944233813935580985484538629896398859242360114988663729624857025702427866887908608938385583284922587085974250818947882065091984397962582970389380860713606835823581774467640858635703833534428544995579557925033246437550343110088836100384746488188228966455803789372819787583374920616646777297157994029322703991945675188521281300818666048466718391131836527548270170339388949036446914015938123431938204801484195446412750177206952745900779817019012700175328266166676781453301085137038003893032752687757741988272259370714047386204267649157411386680324212566439867910250187408241328605102397759237842815501569207002032429335818496205460427088021604751628125099039866443909137858104749225643068539709985438080812834458850730883563361113865368085725488338947628890859028860037335928564691306582146547857290346634112427984358327810209515784454376703310565767226426596192581206085820950595726513185075339534510029116160869693573659797196965497735194674516954941758729748703991252376386984597512971872657085883956460298874328764778881092151106343157072565014896865121872681064543138389544407037636551481709285612221276034085490161011739722449533383115711905533623403376010979191596994436353013207779130295361337447943649306605121262844948489549592398120187154502442072035065840378896501588038008088628229034634429776846236781744678602510990829302746307577858925816196092196756138350827230889580927173619904765870375239697666809508484289383260001225672408967303614794320398011839809687751513317638267596410303240265391615159164838589437152177322297746964066842761040195848008163524203381387017128640396440189583458097994859856303175933941767265436098544050393286046539596236308030511605045169031823371792744879069595208651839781323376689398318274750531401225742861138338864976488014348732388185025113765327253843038903996632718011379079911726030318703782290828111447491796351532830284079594907039026705481577179903695563034674327311251840136221409088521793172405826508824675541378354662026239944850239644113583621444874522439301499564064877735614655252671905360716933648104230313992451850679984671608034150102866616446427047391826311564840769172220838898231803386794397913158208209476093147127455499511394983717121325029628246892970766018929415392330750244001540164614452392100085445955060854590909391653697327746662914139375553819559733091183765433469577766034292254608274478070078128691361568578449788776764852810949031011093294796814109882036513291890604773129520088397523702029480390455094695834930807503488519866337931917117015153046622005214547489766085698155324604777778147574314199839859798264045760267117531912844554672150852324820459775235638169833521578478571363730585667212486227378661130952620812862094084659514341675335763814453476611388100058944004148789081343494868599261459471284748555631679318046142977810569008284622863554930556482624171752357989321514417017284197326896480380764898761686894085136490706899751480714512252342068398400830549417425520489112567549227120394781499083543213216778865130442133480541477265125195189134584098755482749687210022915840496862860794722446160562627856965782374511623689771867738454069827939071662464469596632799837980796606182354387939009586655448133536248230770066767355304503683532879465126821079805391838726514256984666438352233506254162071484245493018203045132592318977355986619547205192013402160779810333356264956474499924953039142294532103788725813677291883438391320348024504923223038388908328124600009765056027132039631391818225467397784436988892054171637416310961187508997518000371803383479639676127658079114833926574251815608844168032452442949155439273879111790284155227042357247194594201877408948517227968750455784029284811641365311421699910404130178276041349880106430605301204776271339502672620571835944074246456440508729491693904660796184342089116046488807625328910917321657737048274821925379167527099131814600925004227464769268164630444249024698447117598515290730635167431838131953828222081947650832916463032115039353211249310188252146534151113181652757205210612262224744531097214092201885952844686419814123488197134750181665028583036142740680852315598506915608371867363391906620697749367677870236838541755441188603520097029097865956278011316507055158002497718463518690686705096026406150281207262534817259517378165330888729212452455820765284312257333010087893766844987032465854679037628757146017558779031213467508800814223056089164699316271258087247141133941404830824443845235330419576515180421321885002213562904560339091050028430745560891848142038089739229628260784613752418965950930453735062402211939258185256998091966556846089004514256604977267614987300713588849008156169303765507259584675277161469361252833525632249751009804752028135298716177991502594324468520968339870777675500701626541099287463349916590483252369191329868870306977091999335462592328629791244026530056534755153077060915426215017015547579013435375969495580543916955317617050497433194191671856605219043526930849994009993199128293819186035254458790872600411445082095501496425129942468671619121196192845693001055556394781577227901635748537976845108397200961565904393912567852945160570094754058642933401402110489239709161550555848832709922273952759363300114716578621349159227946755771784468718811809428886225697444259861219057911852830257648800187722506922241090707386859756601445873128909914403596963070062541229790041321638189448650307034772477819390705538414821950275151410788855797965143564984690862864894593243171053266093370804419018613567294401843297161850632372795272400284096537476190809645858777672082450833947379034876170623021313032994310255327066721636034902550243925587881308908056336652759636723278134733438763586499255014175975756117725077444624552796303382741437836965396764640719532706425625085111773510800245131289653962879492595445355594674755077840326404517969894081733024571683228532322777066733426715365584179147672989543045595983059143175719179600724595867440303358444050761806411101753464912252749039584967690603069408492869256960007876073655029224844790810854642389914649458010116366670053105162159604351477659146732588530953844141304103794306550668532461243577112696645751032615923009752316208107441673724974965746395699347405909262240883879152855707101229412128562206354656486969682127709253070427997776232520434502384794406920526385299562728866781540241732186898810525684185779063627560718934356349938288948940936151282296026370945572325125918027672169768416271367186959852354837255272272534557170080248835200141383912167267838172212625674649637108089633289854783737779285971700015091102927329387517449998719410319258397478224187037774136942170183427559562160276831433911803902858953656753778265351859709910800677995511694358270972141545632917185414666300218976879047638100374885431905923633508527400037541337061402965937817298839816520957334650571621847725593659572158365633698768258302932469151790260009731616224557418788021547665178212390258642005087995688687036173587785017363791450093028316721063495620773710794576131536915116617850101108821361856627505126285673793668587164103268906757899080594902877524577855703232340565637473278657217415284006646669950691358458213926972855989241887572961891909681027858620664731372885232150332742843692604931720675327393202326550425501403090137736194779522464576651532540571701503528335992472933468879491768838654476692593484439835731656810311937315396152330378902167607259918902753303937390781846395447191563607444646542410385525289867430393851460447363349461709829484138161391745596810097240528062228168430009742828872697057844608970746963055178781734141004880257747947233757743941313072801973447726753506086328469841550918374819521797386209983655896778948776430721927310550594779867010599720603480607582640101979206737044451722193055405241002874260739919814380250601637336444151990700380092668724863480514025126177305182700445108127002770889223347018112262222768531916740959800937300459411638699523562223868696334713563383544548102387895087228871922763942769035986689779012463661311619193755225873505295859508255719475720980546108961219873695225174664838722336566828296673574326806789835543036316513846646744672253436202470512345303402036393843771503644148849904395111604984288157551409132252488510259480456454348563542826668702138590208673861965103748562902385516217745055064831439108450509539674146301852274396419693010419404073537419713948359488893821126237162549527413577872231887559472232024434968622131938412115187978933682562799896739259527804582630080224738134286425289974875299775878979272989333174999756376285006837087699244408989459785926846554061384056348980746480875250010311849014874799853597456626252875432112626216862789307691826473150903586716581136751293336903753788763918051595110136362317355722002327111696935198362644992286987719191958653550275085690968531626561405841637690392373312253515087838341253799992848206052653693600422734286572088067946315377689512701276351704299803579608708552568490498210183513246448631121601727941137209278035084716894571354445601955430821847150186907344701612545957026922284150632781239060885461386811577230182071902873885443925369996265191374509376791593915650380181013098343827978383278474054587486315308414014077026870937102897440585167215291704798792265072068170844480035916832211481224782002957979435699677897972664006252020480843885471053891153512558592995567900058560165476864519072858615425685551988684562180772047185828695960863179964713099619877877229200641664987263925847206453166091802364876101227251051893458410929851470656783380965823285813700424384261584061179039891772592348895517252134241068621490028866190799649930321790347320568195701552614128740868390209428634255103527599620329496116941385730593490554124038973673308668273470379054571955319203226278801891951057520345783908032574078588694875032817014152933033516269144964079245032559572183278759437344371524330656606099323852258034661396257325544104914628628708328224215781198055417017448985762446914315105420102668691751727888689274296459203917550643208866581817210904523331390895542654112602245809779184578225209553601169452033554177618189917090835863166550823097998360500468656788907311578614395625598577017787143717965811952232158525803451884774061862374762737777212609976089446634660260142882933211403703064766602311276459559898172097332601727416509885378149898627681965221717248186612511741463951363269765466954352813431006288472648837227201339199928925763390199090661696636678597982216908562555787369821981440529965738024992396727838027916118620669361612564913495455675767639494967445784684322716618145414359346716371527089227561940046638643316975758113571513569237449213914181504155127602665791009802342887892937745552811543342997063360896019637169526776433434020335877028396510250387260488027525311797072927250750626864832632209288833734997913549630806587457304578465803449003210594043363223607990014916004854518116305631624262239948338229579724830476038332780711866656682554381291301581543696512207006013672751958973189173261814573903081006545208181413566383388794924468156468359261359377495468861677778944457326971199409493088818965021679008208918983107564092546254562453916480857844541707149591267772038470247966805477169606778156347544666852080856842970490617820955070450626942970904927761149058891510022677092664107730550532610518790892002084761999438783439120926808668502859857621310141751793362804133847110650736663918813000540991464320257191341750205287843909624341864600683753414256328715266704087995779889991399250618650174136068571941214264535157949659803929957623035782863975169538228381873610919072457278735505316371717262889215885446080152402943917366684632727957280180511166259037559368722080246699947955854940195937103108995572569407682355045492013990935172552061826835846225564433516230897781108570697975078940694138089504563619440763499407257869615311275677539058000076862154020142513632535576649669246519269926728852931048633784552205696855648717438338987794473289712834925851065901859163781265419248433009967221961701416536672276637129399948045554270740589923793062241328324730315759988160230827910045741391580752975604966339193597390546512567452586557072651287200460108197862879084275558538148686865512027512287873592406979625044383652025218047696594537568455253457184982918672010180007459516527298193685085025867789280446731728493677804507082627610258473060082298453534809607246662618239338552760047894158196602974066818491464441612409881163889508073524249368151216009513888054568467172686275230915787206543395581629369479453972814171857291899471958830165660041054131744973136648012757450332067588742838355231761330815415320909587758707238913992423190260004723339307588392279433999300824787047348686329682434773628641621802117463204969034927339076264034417687939556988613554519260768280355594390434174089072692272008333721466373622135343260883057156926204156137801355442099572781278688784354483387043654853758604989616560154325013665910159142031253208518604320105329041499872423515552621412737212423303531765081430810591642346082031085480422506866218579550863181126528047177249643268307058500200831759228425386308994019880195899226294439431717721871347702117797872979945403504586900859938248348282386830980811621761418186709388841178351059050259788634473818252744026126212670082130337559825688086821738069972145091384483920205892332295514371113438676657666295035164601378373293368826440224603101057961529113792743987861959668090033973098267070399493363310451914225968232244015679271030012630385129083580270539299976870092101459029320356994439326109483096300605656207249939435088786064334159175745452814167482207110787178575397401359768299690083052682844750502031168105424086842022722331330261390801539817647992786780473479395716077367910849637369307902995377622471896719930047450346697093628005236590487388506312588301592336259327104542858509004760469165344516318076998654183172192819017621861802318513755608791407865748347575170310605731278413706944368263548119750576561875342430027105191334627501750978563152447225688381239075175549010379307988791008539793585150514900147218085151291997679631615373420138458695740145871683501616467874497287985984588126604856863055345109372925159529150695805893253904086887056781055508925743184539902395657527817004678355224607435937467093679912030266969685932690730138478031103797821893228882584517929691062026506278913555020343074272367139302590005717102396676364831407518352311631151609142191840407384401765268698892960362445784546560466676073398533626337659866761742093775556163363798267235394223361944772538189974726277041108763070560060537223889394551949238390513831754090254564554496508321759732601653234322666305364357093842687442167166357065741157173121621647168305488953688874743391872097305969007966153572726871217721958959147407546783240993131050113926782892742734722942682633419915444022413642663347368770482830477086849820866674785528743300402258544259225944469068486392187280997011659979233519453084345002191678423863056267421523584882737878549189035602511991686752486673854515633008968621536561691259316340079990736499115059136224430126221921177838978245698585711307445820837977968897695632630122392440282226090888927299063282387952770203634743120250604072583842885701907004387963374033115678322260520683890742086900884899567892381404662324379525715132376590686900500914400234209535153037988907353825563980296848383520974164528589029611523069207172588698637065461217488067749482862843878585512015505754633914567362487738213508611230167658692647700102181795513039066520559227401767199517773833749830408710443772498845080302527939879923544473399086354164439465150186689528926061335107892186325811808871495385209458404784129717085992664903608839999217586666367415750877977204229094790460874997034840386139060239558017408241124214310597406045549738639650039803160886810492181960822847955126267983539775628254436730336887723461484516474920324568202946226539629013702667705516860290498131174312376165481123706180658156529580338441904488304974561895307744842474538665776807133452264900906148583468736590599674794313539975450330140416386423785069115930977007848353860635160796508515821680214330625601290408496148937051058325672357316315733218911197177092961397224149620364176996171490602803452415415890073539588959887806243161800884444261449589163405011934867230776234993199521440470965624577685553950749268531522906634438552462143209504166557263520758129988162588334087841315437144230633092573416411888220209526357273903629943565885428691709574760949902083657453578485136986449549572376297076166872299382277067143954506700288173998485177744302066370851353965510770538168690686746776690641862890957615413205845959575084431454180833169269446327487644918177652189827461422008123285097777445288012373414116206606331498895487226751033990261012472972261777991721712579721956574586887117894151816314650047535870740361341269543082453306506809266023905878901540836635665183545634223727252876981897604662698073796650811781541305069962559323468749721827538591566766427348341862604839363363874931405913051421864872883614044653453371464958023302699876037687357584583031978256990470034527696352213390291826641630578304998689445380679291443207730604595825275588222405966833505756976347085276887993223529987086467250341407810015115108591082597103044970878636005341282845317180575115314823480760332838318565319864216441238409059910880233844586347824541226949810411278661023514781334201707523323903414935352032070029110037680013014338103669961408233399376943705925655535943357101807102715856235838158868105090968730207056620218313381623356698535528786728839676205542923182897696924180514355830615712213869762390668596978064328818546823386669273986252905025231337249718732824629950953283204005273727421636444997311017302024328147576689446913336907126566977167405734678245015354359971021881266696961837992391025893284647367206535663152466803926002901943517410262441739910088613091089835041713743674822441812874502567268168064474782553720007157064784833923264433037646781454887737342411687564239913992251745473924881885922886277444594289778034716155488542835166785757058830551766908908558942269574737529998437812140872227780458147646441968798709245813310780263678379948710873255548674409438857963873798020852868383819446695040371781863205265789162164438389382877382796199472791640782726587688404158510941519325651065954460590941145706567780509725207556948559489407699060076952742364910971955871332295584319803005231517892316951862361224930643891340429144020971100585653864605749134690908903921888404185046901077853092643291125097741323935431852400625102418390333777105477518501964710987795802990510249530390133703090755726655962088696049244718577342712098786522530765063763968515202519426866869135659815668601215982442130670390442101878950955037612872558709698603213409710985224138791161450191969767019588797544687485258018749184131413434131769097675891851546808960719581172406266112875006694739937934835514384533705879223678203307172355638836456992658039614741414196761621378637142224255513988775683673231745172616415481238696356150028584431924770402809601246252355709253695643808811549679579443312457745019036265511969436234105368947657990439136959402151453466024416485528901231341540639499428735780787492530064699133296140050354395042708356029870969998845373837861749596244385627718579323239843119610466605898618546174566103906704536014840458171152448209849313041920985390591500249200166640773608429789814991107637108971004029241106711307993900286672814653533621067316899693193544759103730424881606999162476880498009931774347247291412916657997621659520675081432878880889837633137411928659135212145901256353688092267306954465308486386350779142873450587871323944854022281786632674853497164640747068434771596665862550301665550377071782254393179845612878739486350622764328538678504663155857897434345513730576898652044079893928911969832844723924858107190632283921948273961196115515994581816681846095784529183770251965845551004732626773661590982935421661491859581817585575435324749881272053873322766797354191747562192356091333823015510060698612105903551246918611804691074747655290482193798574628350516019983559835367016967985339326760620274431257421112768532548478260473551224112933370528061312856028551058143301030182607134907906671416085727568875208338478740742114946366687305030971908669174350216925275145651052481264858700359796253540295582688560824618923716420018423208428570166003683931675237205372716029155782362808113420957564105367199531448892387342185362141277285136235200584691247360399124656087179176894223591999630552143292314149933303747093608582323874836360044415379803139632813793537596554698034124964982344353555583475686877937477351105649641563485488817292490028376289189117995356626457191924430867644661467089280570017340636441844935195310408614412880016539070072407892869201540667616020376380571809441176747939081934305407154323491822406044058882551129683556678992355583790923164725636548245158961201520616025015039670657686893617677730904103376998452446671302605011166271169607350420089819798230544147872983093862752588968519674560156965967809959593510972348680505112041701768093213566960849960582814015879980460786161576543664273207227289304733733983654336978590039426024770195612460004745212836739893727800026204563892182557147333151736847808944051203875379938731955574101194442784810360884126100028146094181184023558416805291631984444166085118129951003371245794548796091581909386636790683258365807691741863811224299407757928661019405030032466453821430063807392869111118628639942368150044687552118157384159273768767797303968437303287129619982113149867077001287307524174638573585523169112022871634258002153887057205903118850163598357336331707071239853396470045558553538500803549406448577748731870587569325236371368369140850686587566276812444143768028936328469072050561357646602238875598468613523095083917562400954815935381235359637814899812176038754971335647819198509512210662375133760131772563881963927831397993115498113091424594660944914337376930488717938717287691109537876976162163084607632066571836072470548652008943479149740739220577896417957362907570560676139209607707234554958437641179291805185026767610797698097703819013104886946943292888335618047699574841615485449638889411712983246754652053459045420272840266336588557652007044244142345399472529400746470049790786595862278250736609320072072688716763852696005670715250968236100255085714461987940574581481778075771667936625015892518362709299772236556085490868447365662651702016597879743678925773962194955535760352110488846182127016518728807048894191736434455726608486434713802118758863405823040108392575760091906604666289190742101841294027138016897235648500269901105482217414260604185978299048871703591287101443590259579152817402052509808829555012659296023080097845962659560790001341544078631030886776328537680030460165147308040495820739301048549831294561839047005495163250476211137537483573574057159250015797942469460753289093136867874719861902476305082670704052071682150592565673292697301919794129327771687328075201714900575880948493383037700961167207163467909474553558269349209135301806507703325164909929217987349367972180746651202669296646173906967665968952603869480844529481811517243264256459427167759122947666419742698114497050343092272661724259174853972565851816704811024238765470668997490631331093642669278060900459346770088808327503719224709845756620866444367785802407119228637127326148235491568958277083739659864343449358928704144913855623539891688067283538883399019104488512409210715290569745983024098173643794276220247166897029660080629131437993122032952610541198395321105331949091286214802484268129696557352975085525669722438873210996996014255419229158316138113089997889040854285596919489128854460290237936238825888318002015375577516010390933642774104382251593583079837203930269726941114488250000944665076867114659248370738323580993012521938732279962832288969497550336265155844185013047996582488315020634102202607937924070058597702512755866617896057599535758906298585722533319757544350519849288291529194447243132606637069774888765296435927797686969520720440746726551440489695328196603342293476623298863620329646630043283487961392238755592466142540184906746590216944050390051667852766403658544948141680847895642753425016311833421354308766180768364803455056258354420867219901939400120127084640082391155155291362238869102440013760294222457994345597511022441245378953310940157680263152951117709750720108290531392941757390023818736292223280413443944383361969090731058890575365933502812820937179480528116805025137929671569666705050322008288047580748405849235528538207172877814623879520542266679357374113759285826294890488482777658079829963089526430213337892013366504603660580536149192914740722884237585973426235361704037560720513283015043977722356892632410560206274089413281080708928606547231138711449398063558437491077430172310984163017121082128884057830240523262707477369644957019233720707591877699521390804485211811373577631925562540498683407590311586020981474916303396743794408596078581662720090730761883246191651475530010651961364292663871695561979060271379130770767962360887189307437809080716158570359463917872424518318986609553562523899559702253743896780093284395987187931770049707323318196877900118943833443941823423054399127143335281120339419121179261029199731171415427620419120604383249998826688486288078048082805469936746118147055842682812316966868015863275084429495214481433161081504083570053583318907893674550760702745202522186444969925092867888637882292446728078722157982380075381989765904310202718600962298778596611858275089264341700736644757642483233118265121668988398506070151593782784772398121119155976299953321742899494866734597351853720548904168956962660116901939492520270646651388976862054936361853113309644267947512525276548947882536653332249803592715067691859522007418763543305475204566076808320714919943703219016197479455649886040837876409991020889394343408834668391607676281470370202169805593007486792204623640380395968536592140764872543368519215798972854564303397097805449316169378664856751713025742031693110109886640147846853262878753472301350381211985856881829983044597626348038113102178965241623339027892677960874640165423060375117861216169786399315449922981919858357986280459542427866911970782249391891375001209992343549081730605593080470456508292765317419925702098802714975035427288422498917931927843039919997190827805681553249265093429562803714072531551040505703482413354550242727844965555924366137433445557618724927593984753851682772995900148114214339217842021027721603871161388825683530599781462233946072211940464572178867796265759893306242397115505846121353605984114459868448856153242149212486123971376337300138972073693017242407965410276769048524815481353285848751694405503464164708338157058449762801925555785787882007378816934823701377730630435028532362684633950313166227732364163791461050474957964343993907813588464822845317899038126782852783779045590877334747431834362732669341725797525276191270880206765378121639859660271554859020612448865083889072879422162515454696378267990824601731535083636538044103275775994479558177008359213921098033075598224510726973758272348666057355438120895037392291825923983027721557278691586715683841342143886171218582304443187599556502428402323189174006441738346048717124681726279733905801671376915150754945728731020900592650492964293778368628599840106196590703722149865810621735520041341210804382950921567473480376688478300823608854091079347559219279372843096923882271044105953407512949190037770729255452411176306764608706665681698956181833947093388483913719881465104469254687726653550150762250139956518704983401307375191338379452120751796701712804187113244780716485955985048534992379007510745642870473150045066116065650968700807452056969678290289559526327662765306889904090972297806269542295122454467796846754094162769397579818552982167282810499554869328750080591750468096266025782256274887846302342979380919755467533591928183006974073808515293860740287775620319491514142934670877297298476505176527542759415734190140363378532652396444804178710953480239029805848083230684258100409563232500918795110190280858182394553678703578025634407981013908579078681127143804142287542096126688335155606306469198597994779254437750115915065976950995804806951194574902099999548331760297176017945040738141371198051790099260879679718722463354918443217094594589836631902698651037620518586442350250714903418453736237448824165373471891873895427093199645812360000455530031607448938010910022740280196356382936530060063183979503168791239154442792685581124158048044205270492390821480168949058874435688538024406559943428391158701861885178951121299661526786290328021778472434137240355215693445397187544899211036695622858342744037193834788200567545904144305155865239815949063586897546929834784042708230353190824195437130334024856238010125739195918063743380095569487768083735196964790507105033945532543694051383017408670688795804762395488152588342328618981765320975177817946195583325133392940819476935979952414770951239303382473017159608180808036051322941291760640553546996341870500076450674109661161787843328158321501400710595301222252708830273945876621027280481678304742379340489174339453279798299021022387076479501726283408157625240747852216542134991308034572311503272533536578846599024566072775093696098244879236188263348535544036369113495292412708439234616535933802654478762317685237868950650901254345463594835385968247537695277781247199085594211235956266968079781103808349801211363859452684749296713154752158986273892164901241404708786493172512930645834345205969477269091098936432298405229931060715542175331557523371227329619626305675150341571286627562262096986192410303581900852617580033718377438264552964226947794785960224233037312358445212331087986701788923556096672785004920917025728641691202714278956983995217737426535863817262111158746181246200671203433874438256583738868927043880016071272020052828134891288652527413397725609751320439224540637849249678601909878592212732544750524313559120517685874567787735866307107513262200179122077949232628981464721939886115739088588554490003066932342006508703514129818897217927892396630618972571014762704881433542998034299029750147622123020746050713441472819967717524471896922819825817023112274096996967485436492909198147823714594829872575837830075274784733379114118013006557420691860101726540261444230285883297209893177908387058822276572268326797412600536823983178261969951834834062805847932455616588145434576609142026981963828400877450700848634891816664763632635612618062542577843226382527258744534278462338154673294181854067115480997810057801564310061019424102573660940899119864916026224296827177351663851893374610268519537292309733082021790184579220065251208179787466481193945418702525992843835866682865713549823990350912696632968489144091515402951754827645431790750053423481778720815654038030686417552607049960249275861161113179461336585171533238216786058862232988929276174444613646868217202422260492147589895824788334673996293723967446666034429460180920185743731323975469366376923239443936091187670155378533340434471789424079206314450343631768540167451498807932752758880592676115682666242131216473501309695789375549791798206425915043320825231958696952749922862698843688200247880321200451974451381710439009324729378904783157498177738667388666251151762979796682163630082155905759788521638326302171063389272046850250091751603645244362317117274878155452021787039732468921315444230005746418375163771492960862494331128208030044223872440597806276299050356568166618559576909859007559280896759159122416958560015606343329363544525997806708857835670361368796179200220001640933377831354552635282192287291462669215828795207150675558635098011820122359805704731145577658055980386832281818145324201854591560670018069517806454468734043063597114522390521670208714142974876833282366282790083382049276659702694275883857163347658543469183637412093053285959436814223570808296774983729839984713036021555390668279545125288868464081889437551193796260627545923559993240821982156954075796587746627817059640932434548941425575268754508598954995522741287683098076218167835061907932524014950320325510185818636050775078455767809762922053622475757462848641326006628123596485198425299169819380871010573480479202370200273796105650192292074890162656661010280030139464570709590364549215105777817029158608712373665178343374969769151589069966534168844300744554711975775117070098395382476368348807345173530373467022537009413689503045056269854243805247362076157585088395300052263580463620777622096204072327729740076127151417445431355462633785497265277171567263484985637760829158131038007385429273857231830858041600176559411514130515721279619582903142735036316828657066347212557750068210863549012931951900083339381768620353032605429835531950747024487628884122025893879289246879141517417130842326542855710361801378384904502815219504888233252977232546798671888824701423440488036543852770485726556470436329545632025512198267101989786493968717105332886170008954898810435564552810019799661897656936469675502491450812029063660250563280717311159903422113136213824867639680909651531906334087711629779174889560204119324624870177580527076559630063621254520151764542856432552615570379987347611909625982691302849249509794114119914134885723469870234390975417125234257025759945664073377467649126520130475830076666485109827969926440138331363623012575628557901630246714403924135338276574375190233481437322831375534522538800781603817362802944090280541210693359126714219433789317301259796197439651454663906978492743949965479500963391678326777333171420189675311142149466785807263480561024051126676536931197763676822458872949416930960749098802454163183274798070323174402791394202036104550517442791636833492616171489987265540851825476941491122488997181282208800230879644692172330630006816115477977515576691078788656329601673346379037251483018058364815109418088238965681225534460068956756260097423902264021998632549827106991491071487323240678261382022220542095093719917192448370475646788435845645574533032671217956963318023980108740816895012647514084961445095000639839185818222639817580545782470370792260285257609711599141895698847560143646904890846623693808700928192117659455987369622133828542268948708938800221252902814644194168825594034427079607682767529349476047652414569370328296876659159474679449391487727781825217653574589534338346443355513822460573385695127430393808224949430156729787945820162026440907548116167115037002527168767343178866027520310898852276337293654671607720106900596201344062215538533116382995394913332131593666574368009638409029312485570089886363791178128563777436978692538774514421468058790453856927079016638227659452682106501334114181145298672675458848835434591440263513689183553974997960391935370546573071024329005533598945932549040129776960800197664064720607390197181711833797766202784841809646730023132846931083753087504918342571842084252903682111582447397536632514629598378055709512574333062664329254478942176817266531470278188854239936498725581186703775334109073353308510162801418234948891201427114193731887832605412969957979795202993957591698897905984385268076345491268643424269932416518225954226737035548756254988131077243981923963681077647683511948292085389344501024216591180998789871863566231432149090135075731881215152676337571195894368762708375681238544870372847370567224404284224109318195919128980261177335164897797272953272874814102711112430787173344759493117897640174899448247106801768482811740182616364028230147437056206841031324052153374277762633246133941472777745106297433559463985784386358615392500881846427775232265958627984858127397170427458572974993532848403872045946765607235352738864889578763758497159197848953177232449525146524492029181342331312600195937317041509566456084401156938829710014556960575079160021303923099735177160562747980618348497864806184878305592327253593599754433823306681840210432583786082932168270131433903583702400060771519998280682549094167743299852871556764595731535408336068479668480665348091366755021835390873219322017653702923665198128916534328497795078083251351537023463229403422340249770578391503477614679036081834654390977774587213084954855126723861373759666258552323884779996356023698977389558602129835227161020287356023911395462742300219812083977796373446195255102589162528949421681384365148789535751231822748988629596257576402685714551007848806270006128215829832873868977760382615672949352522177693909108222971499432165877930501606388712370370939284158591247420065803876768969859634141731336722308183685960754430588914664271365474960892521447480837673338860844190175523810465506193521048340962136754204716575836153398378966846218576268252489188161693933869842029409223748215353133096663083272649385067360918538307409347238041851501741453284198274567276964907425898875686328627709103164313001527580297480688309679046673300632921376245793489918646049303943762190112070048104588611158476770862560894735836424981250148992287072294721664784154355446707311980475138315990892286996758802479421416185057503763920745953696945557917849835329219470544024682813974651752018511897049340589879090052488849924977810881753628940337693218564294817608644588177314674853876189567288692374561519813141019889377336754567682674011606731220537854504537826308179318391026269594953888931873279913322213823011441694009282045035378200689355969297252721034764048016161646531994289983248719620890168874880437498304182883113072283361683386963987474922300770636953423193388368519371066246680766107345040593541907550329477593175732292771173380070070654645001041126402874824428290094287878049614262457101309357623736718136480514553400250197668863665209915744685663781296808418583858954762184557756203042868853452579986557838004956602650882235972790654683367102301869518756173616238170296089870917342333916962509590937211089132843450460204397396621797045238314905544370869764470367622596845369170387845547751784921278202644795833343967080167380267894301772207167897243763603829065058814800239875119620614424424129606397317925658285370842074360795924411369083732457916995454991475887098218677750543771351560528287757812271853367979194194958559729213349799724548584588703294678279207976079987781187294335606367028583388882090904195734687609177971564398191210912671106427831734370006412722009653229939448430136706243322928894475881197141963639438246779491436049810894908475601759896390642488395767758821184340144220550802448290782074187426759642097232793717710464077846494644053461713395050942404895834331670161198456263612227815589804174496731514996345974082582523667237097100204695861597376139695854614499104754871226780614038349558659677416619623999531270127820620453935899520552253451747840052771079683932607919826890057518123630580280845767995596270229537016823992071534665341063652563123783968703678058317277524705345257346854859421028778949772608252482398000028215599381882777943924902358434625375797420167996524284925203221538688366927555955757798567252435255488271742575910821790520069269038348743642930788330233777860848860664647842220525521005225738334487815551635431076269233834819942799940152450750178741097415811815089183628193459479532129063383196092668598940919839944477987970622471329159425308154116470648293793203445285924538160517176896583449904019592233098340320991114437795224690132505701337400635605998640235500666373989745796454671174242458663590096828025062357124817250082853093113313920765006880816566269805403786030657639093958887087450471163672383626110771173110677971355234209467934423842753141252018092440843593196948821187281684943268365992000101821843097527298268782163416493106651090565547381487142395298598806088791324766640686131052741077049822996678480195883669880969343400364684266853238309493647426597297433877786766044427785963843365773728739401491079983606083628167357101817180297711986631946040381447044561026665104264451043232727463197345708577718818336964359099344740412782017191357265225707306131465147521542394770182627813247192278923714402973068866059935667741215011110277552803467290630935601312130240736271170121592943959310411233526283731025142086324615723435361288229570126650052633308641948058782222810491542921114908853100160626378964881265114904248189763003171117752510287128303809295861049600535004711599312712838063886890271285100960329713371632393778110350198168378088117240212746267228264533826794334096885793304420470459224664231950853622192898382536030170682151797834213363114483423580945218661320716688170981724872642126924888705642220763251634458770045860367379740110866218736166192029410226042310932996977244881741708784041958734679279812328525579803919440047887198033709157101666386077334538425230641847975020321638325245424164437497190985142170897206544623807736691834538940094755431083589033914219837907109994611047941922626413194054237192243683619313931086854526738246242525209846071915265361459189575842153480549399613057126505475497135962588434244657705105602331309082683889951868843880121267702638799733518485516238535312958619704125545460902574318277996356275196366015684491270443401726569179942526011252373292707057166338002547661057868603205394982349975387666219648133777510090762389408330892412553997825693209031522391418783951822686866353050131471284378243504816593049340597393620753873679744218942202141951014400205539077904671606944881133412636041032322889023466043877973017625863178430593996580581582799141054895763649305800580280603906399637558583335988940313889971029561716122956774797829775493269328190589912694006898219535264441920369028439408649963412699829360788840066135741818424910926599336502237963287308415494218098919814597431925558893048717898822198735345569139025312046451006781252715006239912370679446323609668474415653723751139208086354105722757052453483882187324587803415540388843017300592389130862841469078772945612622721114332731941714414889150002753970854936934098568749974100430784166578854434657556519643486581662191213481116625801220271028432033362247886779214336625184407548338421000767903477718210543719511759021086369206188839944235720196843364134011031674576005648780742758724775708780025945601714733901408912339415054288817995908069705416106287642273143152006279853746855364337083777937891135275845568950486351152493662365285632333137611617302925015432531062381085340911613377588497136222647521998765078960865020215083196487522181831550890675747222091588053482689774309312391095396958141114192009996484956878690199334919698576192120447904664857314880671955624245536222807036103182232074052294908335236426145380904662047754142921786128553873510195833553163477724795508537394845485378179684707984921115361065766648879117427898229132661463752074127077022803764654272739882376760938332990637839273010666239833356125474104689618666802614256212309057115106333085912733550040990641740476480264362346529428527860091079467747717510895384656523522415974054729174583450057138030024938441261061609278884031493322655651792175475797247120647069104537353509189185088026535179765278727915012609295202516374944025795495977431405021418473888062115425799951019738559459409479534843820340119964697822571552941787897303199946649648176596674508075543360097142922674839406731331378535298145564268097174084566616833601031363041010073493225158887558955270349227995843161515791856946735714892572183778175365808812944891502502883045307777591871810296153628906313424859510050619843080652163531316616421873458300334849446167126014151945845754294878955545271981563920938748565934311367305998207879661956506852837339265054137697428902878392651750951871085525388475239789169668478115825186372942661550971504382836905282373260642167156718960232008455995082304296809214252256213564774459380920037052237186274857093359141914308891223561915158234377056305243180715275101008815961684203374423650043518073286743327005938607929158031195286474909623298710533138296118585856086251293198284995019355208828111118860610130292231539921005456910768165990494928853945760908005774167840153624529386967181197459201269954430273234151398025618157720821842942494248937322660661162262081870137919974087121358011698461994361155999749073088952045712125085379355968575989981461257961403224139952304740931082995634844655586290749676698669956787376135891632854357824089506225185458854271722298569304138118143960097792360983015699102042016707534153206855717607257633354136102549415531511951091295648979666641614209340088214173709757702261794625548740131103908265394828927385946008263352231409680979540348393438063169487270555764206354460037755605911134676871314163303037165782349235187851515229278075709322119670636616912558802581279608747915686556332703408719888921609649976217337139754363435169389303352954907505535916612730319512980039184705607027506361458706760905790613023608380109249845811007170351143427415981974217736690664539067599090314772771363671548732671688923533255087398001131699661889757869449758800722789703035697499113159622668042271924773322356551005236858195957696362139155511230731160826276329935812229635108031743844601620994246192880382224217440873508911455308602065978884315192761681111612807572662747325892054780342565950823379800122692570452184524185615317811954569824390807434308705500053371285882395556919690277504801070757426037067305503832401486765156536279514495619834511831004507654081903439813366860891668447724409636615559339773685164867916749425104984628536069333534046491466121507990228178388561186747115393077966164728467077693933354466649566136633627516107914605934266244228292770811948683220730853127726380017555554000938018534999642838633139976788868686889600826010216551646202578792176476239985382348015308625922901669786676204471426061745868253152578840083921679715297471473196588575279353339089720371739779231677538235753335994290667877266776258627650961144302176606554347414564004252064560343332874464687214108484985019702599953340197078783459888195878033785402809999257235089113907466710939834738240240898710677179234690678359281723832353588807203271524363294564516120372903941749195606175776127410487635092110036292928623298866773785500448263405599498759734716745853130020164870307433853766220671925709883732897106806415436481949269599585313456122422294068186721544161443611001057974342263016602989221049696430990835090023736101254715983934593491474976413866829607365997231112889123417211294677162812974171449091438188619425457885847908777594998401890641326643614930507630746941378192465434484901538528177384322329837347704324210051137703708622754676917730614589107042953316211085568831820764568526582686996110118976162639784765325857414203246136503002707778647582193926429709013100898725862912273390892311233488237922868803700352947017564973942241840461054639314917093110994311296043270945979342348870864427983646980427037513166342048234836846045124690184698548108077492623085702402286753190754882790283999914753054882059503799084143385124891770390354970296065033792320122467058829739087833790238942774170232174489204370546542217108351196447990066388274987989671541627085189167119348849429773811618761871390880425477778227274000484789686562711479653092945439203407001977960483892233273556757706338753141146667874343631621009879019429561339937501987425849757826071656176374919255713381495523669973256116289931033678990476415387326860622739803801579451197614801218863318825024107791128064860179605785948877216540374021156550195709053892888756425790027881031142271884679145788678312075359666265053353220355306050461625296124013663867249222599518736382981028426798319779934432935771160625202831504655651827542504599349806278541741157724194157251113957357431817676182483921577194485393607108667047336410775725141487752307722455536935439906985403569668415100411030424314958576516854273624209128044346721415245270328251720767584125167643142194517030246332802154537286352274027081374057949231855387213783944884522802458565857272592884023438557593032780622990232737669751575440508821804204543245166071075919862401944280329408477727545756025758016940774650776448322549102659639342677742492825084493934973228489720068501015354795068723686912663876481343373009095135639975077978375467578304354053655891094586687819576600479502766684820194911376504680503657059769051401199027062636599153657097183045927628184052862689718850802669228189408715214024868190824841127023847379735160570908625294005508441477985666574165611543409821489392230026120236849919499850262265070007573890388162561020885407060336729407331174043009289391549610448164284732456343591823480838858027276806302266680025111676434822855569079212424392795199241043773917401155225915388083792403768222470841742335340236748534176821432957630327384540812909855602376714910798230545107658951134140434229297631084850258880155648318844532532704566367498952801031848919780843597612852573706764756293870777790105183096675660359033949257727020688531985119509192154814263026239513617861898323700006931764226278659939458025956685274900686742747161189890203543292982114679864824646136894740818025225235915474624432836434426479415273305296728524088044765572571537392233785809317809253677843401072386597960467499964602655257084685875976492271586576929947211448460676966936267490724266019108495228529382327547562683112274255233802682288230105869587554776298588843284330483685256886831498923958139477830501740402659806059879590433669195613992692528363459519497357444050103911259600137573382204548523365229777038227097930110418925055876769574606643176875714726207936787138916177477390068933021078321796640307748674936345537390620492567032402539073148866177373337045575748337918133962872339596883697773088522622754378080881667804962281571434155482011399518721675796041586324043937981248411271058157381832497884353190491024690878837358144563157498919575842793943591341337542495740291367217660332479278589882671080841920396788509797376520941889652431435127906697987038386089665769456176194557441039221029831706945831701511487887715379901858655807775074783510562336418287425441206141395981695431778385066855904695038865371802429102538151920367151019557792469061216584533610043215511493022760000111400859881945915536024773551603258299391021819741236483919867569105024311400523608284298846919622304460379228020246602128520248011981689481611716763703387702075322313010838471935710235399667354053919910364136868985061015218485715202204272199167112054929871867976843942021743136186859893784927927906181811762237111308608877788313463138692518205000031370266221651531362190220999242027038085674619928191370185653369020962896837429019926107617508729220880551473997726194724979506123384797180484463794992540615835602325651001467478423828218842601610421814916749004791083479384070454066230590931939057981148812035881404835784049361933075693279023222862690229025107994218142480190467129305269884619444863008355720154758367185969534990410967010980653333812027320938271023798933534927828483520651268027491128970770342982652375557704965810270845669640728007497368093895557760700863255869388025695249113712472298870181979910307864163566979494873887540468854393638327750609563129477399815008205730771828192326201708302272429416046650143924292782775682808802729043568703219169384967952087151633901483757983650039471542808263506999884612428850686127319594922340433560854229609535385586877577464911449185958946651207893726597205836863479272717833564847136863994750767112840899083392002719577421331958207546204146121134147383667231361292341966935826882580021911106884653538168267763182579186638280564774488299978631567902208734057201295937052394109358570943762238669050992413574017819215035218272473312541212761390769050569848041299408881953332536525231484336912736780170845389319992079052806999478016691255389979030208073043812263286248266733421840090586107030339040234804509304171817399781260270020641805018530415225044514812471304587506816002026287337918363944432849301065803610958626096827238145791578396526271812731932461349291740595863750302528218855991050270450620213067784003454810842247893413553144761860080998356624436136074743006550224686892948183461154733445816208736686178475036925921150454655964256654919929941821942942118675447958832469488253124335364406614290131369557984418097660590807419857005936761438542294874511640739964971181354587981654602889924432629379064353158096547789811145562554364497017149961868304034884185212440260424276066412476205322037501423282640900935993384222693702244514097375135492799117368320728923250249394943539876858895071201974295853883898234433545779378114641602778055272715139775949768954696316993619407897082846713272886689616882223842449436468763029616599332306402242714838433546979605039806249166627306164371516623757432171538111655396590138968468309386862449074312521814032650980101564584588899437750632738849758707528642428468686230388335869155198579132729660810194909280293566883958763924791447403212113594429113373936178758403218394026794081000184668111447576185324926855513906613833359025451043069482367326884959522990428416439270148407303925549858274081163100708038131808220227563327891606546911327444748357925974876699001733013279673451184509837690570066563535268017779354629457161415916269687212435112190029737266519800575628573842764541669222160227758232690344759724827657455286677769755307155202328690880433894234253025641031213475747627271452841494574116260415605323588822003835938861318604616014611867514321999972959375349088448338933555921163577863802611163288086849587513899871013843565867886949532889106976303312048973501718903383070323277968131574741344587073285483007600510942492771840587337611696306561542294083725567206765380214779630573229785965364095165140698882787741452617336293076122538276851158115024379409498707694899597709907699777018394814266806837468272805525716523221669547784957774426670474899037967051530324050692606539437832453222879565190858826632710667334865375036007408270768944245201191820387149186721182711238260333403680017651423126455509360096398401378241359882943611145218242154528697634792069518379191400993371305422359172549237584847586018251744075972841509857446390327981408196848044589015425065814297651287689199620083156800264368863076374447321902306946080901672263502873222578483937742668208052274640583585342048803946625036717032915123931080156827793002676661602260181003956883041589853786297377348318458120631435623734887081858836092211268377212057844777544337544605606101582177296506863805443208995823052472662041892115886836949295068629864559327843077533706619982312027632769918080552726907641937511710552666927760943975770481243271879201899059243435063281367921370217496176000565057442586661208127716400367061675063393847255978105114419527688997149460485278134568240864444712279872463380182242578949072292796050112544035498441310761648073302692995623397976142926396274101046409782968188903262903946076714211339770032759644950390730566410880094851875781648374526925429515415496075596413083919414699768689687288108227536636244881861940784714821968566635918884662774214997042775753909023769498382894479969999120278278453731530166671740623883150131252286405616038734893967342473755717022060905588938856017082821350154786621200720142692932569516432723378205601346351491333158298391827827854965763451607832669086824553385674790455635304055305071476792216593333567151182279613860358991099375861934488865271610738556186657332029554641082703440512400928541374734336060081278457636337907009286456596354774457471395521850114872122508016424303508477114634517545353049614674218577105628704505557431355337112122493671939260287207002318930465527238251809853425466165246280662181341580933955397638879027215686213169626864650892696401243437698127913689362242948470335493702223193492838728650945929711807242255483329827906212376162677070139580711283841482173297022547046126007388886855247690041178248953559076253096506787851868329403367985984162045373924825818406109792304619019714044329173588380695338990942772931865177979004944528780815299761291663627301179130796544899577242607655383480060199164908494933476021846180235311798465451641528824859612038427963173904591126294020769045310576518643337829007970332086645713420210490608459932494315340760488461083023618577030693804427787784340920893291428140710251740811283656280403785727876949252592082161903307866963484518210006762630274111285013591962832050765652971223381764614401705736368758011358444001292402354703858283487511401904953292868252373472011135797843712495269911929040475992416263860170772748484279530951716668836748901667413695782754411985063702316841948445167304215086234199388309825995757354146520887292653242186626925196054010626064093573908090020937503482282432659456233228797225814951406166674874948301141157953458401158224713137832663386313861473624227821507453891222922936274336946918737993180897942435612184543877357656424419800746943333477651424263204369677484158705569000852376744868854243086679937712842722726082477880660588043091985388164146875012007802951344532485655962451034634464670822606231526248800966021588686623930338407594854906097859600893170100955917686302121930242188894008730600001985591587626136494872151843165899900860120670252671363797124189190032489335718147580770603368220334187829932256311214251510617782599001412321223427854133137501245444780064834832288896580597122076935150750771973433327090254523800405966867625637004213804954554704716545442566211583019493054405683644099936758850023631356492687924935751987807557382075974322952928009937091825991398690794161025595417159377570942028048443626486033026716464061995996095072226661915272707047767006224137945181910012434062330752312024334845984774394484046364618010331136922397147099401863378546026871821499961212459537435520524359264065503886824066319042279730242847312841313252064790743504337125632627677574056707854529086092622886051533759902598290900652634126619941402780684119306118460025230525043616816464093624088525016132586047417824173905884189436330681970353643213165370767883011767075505686153846752485147154805806347051522198125337948562426347802127316787923057468642984831380667858228336285414746091677329003292215879127359325606268957484436326300803004213365364618834523786833307303773186004261011733662023351837712849374321336914511349150186009876676207229787888217585105957538095329244592118121356532824769934354542668140218849643125933498060983319788654859328533445833969726933396177944792037876062076442157062412673165730591743921461841616979729634085964969681466481696054910975139175317846590174447734775707258276790696094878600309133082513696971938791062185111377225887109277947226965187186751936377069478620852547253054553572243951459037166087055585230877058908503849073114482451990693413328440866819197297880574147336633258195329251632776783967788371358849611755999861099595110810678693929159545513924404203324434247443388475585153507097010611446366314382073058396482069834270892513927015124279475007461375275729553126899533023887286536336337767377823513463534672266072956186325985423452874256024897866678808133512287306681755236829202096213968347921904229175001853104377250833510995510626491469823530478811265577602806699108933171901473158987953189318461285346784536475186674010914234288139029553802946111171690420857045876967508668127259057269525130326628179644060697616900240053298710410388753756204099682039447742435914635953635113258361728422798325153802729568958512873065503797149007862328484695037411440101259005546065306778844062677484126972843988661166281405651528570842442067870406214073464217138892793171558900789949218988881233855145951748735495647729448084377569724502622180148216357091855514434186469763851599447376695277317685602369941157493084735876358428385328518409747649233360266871387129259110573922257098853685007633099502431872795894933762706089168101519109470481670385565272818648175178476175171156592517071565284785968479488434097582989802623142872160210722019341523971126365073442518479301900256849087183164789988059750715304869346069627050391692707992150814874086368951816125340764301937838823803819703914657707280463758362724842693907001135632927519635943272578623533719717609123946296567923899626350778179533642358766122102664597098221985738372600004664195362987218889936202473997270344286877046863917908142446568758753726815255941535112497386423963864951526372656839403799412058212540387740818901602086791677774319310642187175828589378066431996884735827283404892665315635655272216730196011237087102580861711218103794179295041598026705823162346545569153509572542673129002623056625566795824718908874917214249988905897992746911871277114768502826164806654221430618455266828517560234665284827478089329541108648212662587351745626780457929139911823283466779564481825426266269610628715948461660185237605025772536459610330176159181395606544537041207397315604347918754392595999124857967679508805813852107134692204990062805681355632837773632002314191837865013060524681319489163464209768396375425174038825956107324160373580964924580990784307006746206530122467608346572746477780562252656416665084935356168789016110124459203814595413246894509935819891820968345620135125131874526035651029928441383621545521299622537935786384919666758799403603475605183958752373871743309579591277316954450303475063868221823916202802403318128206090916590128349973950370569256138389968004393569330999190290268482657080303870981601787893889236512827545628061708024938613329711824244776320592530808052389518178873786237104044735608783460078487424271235260914463619692654257951021787216776196602625155116186352626252230174544277860786743534110053178579504512549994444920771899779254115913109089423084924727905835881107090095158745418419789592389095957109538298850037639886266717612822041648987145610786215823562245770880717905320961598528953280392043496813925382676556270416433423327418537649764763773355009772506565517456467354122882694694802271984333152276807424301235367592409224935021633893077369688530149298857746917697719346069264453857652097971435945637497591561673123814729406224827720222060762719852963843873122901084866458833400992641277383295613164343238357005470504646965495783903340594620973427051106116048781843026785916041541998608032697152767074024116308992302838636387654624185236122215372971163296548603818604988105983025312171527517359151580001548450718595281121267772410732355023879226105422116507315114603077589705943146589178936848412149003809185997527522870588475108384488982126564135990434557868141209037394988661317791706710895973391256912238356792118292154536170168182122605228848630129815661831644198583547450114345191276887929002804248542644719265085017419341379857642141641941006575448489614951560207372762878446122799770119914042829941718255642573084259926643588062491948807789949671132247109951057634456686763356333509142793634705452328427700548949723251167232976751738061734455210470441678635456045757835397320650216280796268579727267941568732193117820287584152823064132026667575573527033617872431833104724529637548812420737367719994283956056542957552452580912549731856645751395951529308200257297954580412438122670489566110221989561244167326164638947051269037361519057588575099172658520565711450705521456359005930475924912678025326294113593184259398377447261138230299909232353472228467236922925309681603994346003496117925065674923610236043576312764492213121198784658586469020881268939189425988741707214824457656719938780329885653422236981712567083846779049453595726237610233855409939831241779600488295343716136985624342077503113926735783367999988923091679049941433996289771716164652975619129047792039073991963058071098579320788239874481101376976313391375248602265721400554110822222315026278113056172268325052743952527599900260008269379733969205363581139916395066001660874072647476593483731547494110219477633709403460762826389765681695149611681656520132760780404511153551536310216234097824490518555268472673653659071625393579646013054173539306823806000136828892894301784508839451053291714387086419986145741076584853056087160969011485410478366259338426781691206153180483253170429301335883398570860827296540119272280279812371848307647757433481623579727786197820438677071473565516852889126423678607035090184601287681979881143292729524799200413639210268991478378890614095326838015441118011759271574020363826832083471536663025939046983559532941183458173475681568234173845590773095279120630835633726372664858804036279543910989987836227422895370585740481775922472275501789555202580732835563055715426540705081639555004143738461870926100584333077862768453683465796003242678659228244174364305303872186302317958564320528131545962338885716952457135471952294736788548341982510502299790164080516173306559886015865075522986646066924522533063177611450904649421094659569134677770725413020804662819497657310223235594805015574205374538434052722348285783054987360341326330515472187198753705699700221719446315304776222345049357122528628070191905553246740737636327655894024686044684271215832153888053830396207513616813847858579267275967769860798178954716688929593931288567439851327840837667542825759552785076074546134186510567652237722871753680561179776922652145209739609988533613190580129735533624660497567149908676346058057613183291484546256747473059673893431623464014444478233969500247076311650760532303307256428889861627879968787433302823769075366087252767157849390674366808863017343175821049174487640643578492680185211931260618635747657266995656987946282677751024322147966068457601503794151965664563277664214161534769394713662803103502960970658646052596091193139231108775358981693373442246258588477459282460961110717592931671683374740449282691364194756578686832820415213970959874779570397233269771225685635846662308835873206797786748289647394082860789345501771289688731948541715590664768647839610285119963621165444799326817454493325012703651808476309842596509956386500514396409812391534446833374627904482950951871117046891337242310363494002296462707905271083691309932321049147448960394666689103175093667926227304702798537025684891844197871794157882923237169712834527560501064237337376705496569805093259551068713650167350868847046215048594981478617511402611172093900135212804110172331583864123075265690711266145109580577763464981242799346422558726300778430852763680994748083327060221909638344501859578997178917038505665286994583605918998626179423860212449196625300751307136480696756915755687636786779147818602204413848553008598797259481844688628701888075442492049127718111703727957894605059478140636844868784574534202587202170718227505840704989942568860715200055345929487233035190518232105863585245436264704415707876112432338308628548064506955764758977683043698786848289764633243167267871306117895649802302867868089103649303559295772060589275919753456377736150477800898536457730166242248506499085746379014047007738392567523134886794702677506334924661321664923535198423343422660308516971515824873610775866632412827029308036205075033838661584781933671226130134379412109836821865842662264552228988785173779911118022475673131855818539002319956201470968919809241290270569419739766335932026560169523676986189231310925730004867815660289961361416014475538343675175602327902361436049717365384114998968421374989554114375072219070404220541537690290642172179830603564219467504405050569077267978376658078832932242044152813881201552191538244113165661460742700523964549852287827082993506191616502365570661140433010611220002861866517456011022871277717991212496213703483291375869123448975127137564060329623411956902181905015073189522754493367108483980104482800569682068497910368215238084315633787391930815811795951231112816395198672688964248733739698008717792056588909519950925272862204791717806952090007211895144478443240278337809135565319845294452067757788208549987318977684642129265227867703359539324330387852457774545505840181472482004173771757328690965183855400451005880923840943482579589099536574810684628061774662052947741228435764126141397425968495433193228871102291800610579746977575979483840001082763649241246454293439567143084176768641802758583610321368391356739058457938703644106447648252970194663336968483631781768225824826939300179503902564139690728566406744830186499002668499919228811635814387382558497926233853021473298885900427781229703004610807801266129341663884709995509813871646758208287477594084294707687277800652981430371529132969278449989148904620178400786566453312094557451718897102564590653152407831391676596174679518077212793228535400824226701512368916628320152364155504138094863228233677318035303388432866918895335081542910332329936587940911817185187888590466423824709269578827302751858849570824338373086183539244058866201037900985263471124737020405221745204877585289389550658580984104236202034359870568723784774293973368770741617379618977848805645307939641102914545639038811004676014913764037201131200881883317993310447550014903027804419297352679630565754178388083713835802759201195551508528861453243234606909405492782179809861721372792552671851416784331568341456636053326185087718169058888541951400338961902441035397808998130230405654663254890334094725632091838735029771388819814082313090777119019597231400086758544258433030392723756672252409750728783071472648884233990077584927783640021024976150430239007519617765869932926473187325770380502165196892744806412399428568172976607332618024710645702555471669274176094108938769751260779425181321879887598098246805907021359760096105415953111296281584838414070318311215549803183393157353131019946538481319742128114527017182339736478771755533120175405494368714268721307490650369404144938480930752033860031013477733735117097844020777780081845044535045302035561898923628987112090427863161681026379531212053474612135454160573185176321488866283539815526896917846280587784110722458929523717549451354982925590502426893138052346706297591495917563350977691794566570229298286880851669924238520717700557491249075178391821075580984939967233264037033709027593986903700343630407685782269753463186064141121429729495704598266654014890825270392143349989000842217723866429391737741992732887546503196388144484969778818832145325554935356272207824255511166933496343804886548339046883709631507547894514202200232110286030395786851464259557750355060474758491788602809004086060810729082689755211519693246017239533151677282156247406964009313004693582341633595669592812249438663481013719287694454413836854408523394476827682893414612793673593227449852760518531055750555267000647344038905086367334738799960640226277410188644972310559766026046244376881211051438616223882303838103667972665621902094921850964719195806059485551137201710650105498964157188982045630347588763959670437960596302120748069074585210137574006396359736401402160194633604438711287668804447991877487849160478187368123617009987820990663230045484253887597439246082977771615033691215150776874152323614364173869185000643276973703624861479045185793131356932814883883065076451989458294385055897788273777068187215496830247210834974148775703394651140656051481945896246066267908557980163381371085678264531323935698721972081852344230777834354254924976041566060906748698235036418736596524663435121394600719704591572865160932297972510255537730341768036156112232338634857340196724032383033557122150349438474072748620592303032028680345015676857354397659166475691359397456404946865912517007864725870109351873919095815567180961892677939030295940506667542267761309520192524727842281896866722267753163925320166669467403843928110105314311430568095551570713867888594243420557850472235386911038905583903635394566598109677358671525742112347852038972152713803054984521048868539825875820850352386953189652534832432475217322339672089397529549944704275819079059893057327229639593883390611205668009075880270026181396451235129159809162892307983600431757899783386868001322943097334773151721641563390136775243643959315412512025400934184904467743360196942245780814471181152468574868396735752234105528461699865254816960130582003805904859272350438283202386512773254334155747110390201685854842790323307281184163400640674059865955427308991959749103870298573184933599831690634996678583521599614269643637459569798288950290576787543294549947995852380962541259194695251851140107088492939133734360324508088445946025377760934518260692988044707268810359211966795996792937332193387650556819767682232595550354917931343479004150595819990876048538768044780542558997173682140804666330095914358085644612321910454254984551903442875984504156387167492916623660233617366204815832656311404356402813058403721140447723281842501852414143017748381616641069552603094847517469193170349161441155812618233220403638590476888518343341247679269522422292747145454058390536398139383796271376161171453928910776718446773425028463347960098490567490390661159321938059199577925827513214036747827037287414989876298830407956519784322580521410851870156020188713746941934190271228227786732527209161002061100427249320981713273462174970137388444794841696086796242635374983634513737596710394294250564370941418278276635646893777368518473923656279830004557612962081834248282273880035240189688190251086427766063016333928699461472210689605088207724180737448095037253606379427082250274458692773855236190987680014467993375622135931158926112480992130544171191131903898540743780175759580019166688006570519666595664600254229138866352934572735592942199132275510974272183846352284325371311013173025977748193544573359396011956994493551492611737568731914613407343270130232009701533258416667734388041997533580172884662885732748283557199699056571769960527335677903945678608364899894796145332380502447956614106735545669270663592282528596213998138162903072257234481425355782364037988377066548231813925398660210343242803201399183557447703608111233086204814302389939744744497623193768872561232153910253397168267610546082661884601715936628494615575348804702539503533777198382403475992683352081547016575339913383000650756698316421740621807536920709361753519114957061435732970781549494561485069235825946510710515737111508125718321920081206406168379723609914215966718326244777398653190319444947177569918415165832652480538474077960944525553831518379391207067371955816519505840318695705269638661781175316079972968763282813088434006341517855647299694888181244480239314553098676495179113916414749744230736535179359549593991688635956511135898407661688930766488825774427195619509124297529136836307119463658639702408981012531181477758730055201589790550964300600170997977519195043512333064056784467242746862260171332054316461639115259128718987976886751747860472196288031406675452070505423234447118538547544785489306786355366752530996002518187619625153557642211082131326368519686314533907783096459394367907072682067065167848145809773143077490281213011241496353543136812348981625419718744008683774362816805268173632042464038787159974601508706286821071907816830372561975772837331758778382797994260950979651272154735009665811696310658325191209149355431630753581928709778264771773948639722260655749746378190051328790238729154020716860186948191885768751576972402859124726327117428709159089501894748663819080240603366745996106627097506932324590230166573809031486229125173852148594004882168566278326251643905168556306406281611035603434684597881098734407859221733122503998131814086949915556354942383055991341633568982395057518202964430133562216286809899370886477660411822752295913243006777089109020287724552484072952359978066750893823316118010975226484330934143475354409930331065317480719839006434827887254201904449896864800338219253080879864945718038155044114363004895538240011968214687841707922847631083474810254333665451276973296781748750755588328590158366079296875882888241407313537136457434041740168154199813472158307992928041636381587900891458496071875609164356805314449763764946370465951792089747838828394180195425205944231817953600823585982004565912651605271991428764427869912615749372608751403314835073535452430264705124585240287491901115441096572572963278364216236985181264173761456786309249061976635201030271362182046161834257792098494663917311948716712700973137647029831145385633963848631383679559703737861497159382677639241845786887482134086543810989246047917097815670342734665563760793986276450583887637836245987600158295836750773835592263560320348754899023703216559089855428425638690310450678400121405771687222269068187237742539723351848701863675279292686471213588239236123222919615285659065279089760003810268971158700485543848353184605393401450984761528832233026028971780854695570641935812525716827837494358538351987572684110405910989303127432326336276901521488644561761892699510352722059999719160966146526968138140221362301922188857866606288804832860957453513810906304496287781943068544823311459738105854367615566195573866828770254023045249921704351505527779665692563281523624962493918045083973805602054279563277777595552102565757490633620648853505786135411151517590839764853659469143711580488674214796644158328937833844215041846150183762794755912409468648178799618055065617408498873654293988403342133407252635144336032911337257433175402334430472322150697276765365554769790912659643819404884509043047899808717861217147277625993824756792043401136761918251864011083725036577771412538065756710913040838658026958803086517164873615339005029720201813732295750910187699112506598804103338926644410615939750960975649469343766289273877548326626208497027823880067635192974154451998053025350960752466747760591610631286602460545792534292610906757245257089035847375801752420319910546629882535492387136938995131639388672799742968096559888130691207212827295526407730618338859069925388319326880780270701911301501500187509706833313711933760017206439929502701906315338670008685100796201835215585472465743231760899716605228602909592776143482040523891223120312565046326618014175531504811735044386006260122391858266400459815503070632620404833296258454581496643928531706608229874573674482069838211458537282824530752497799220997087086991978024855489003249163253747259173213485154015545308052920634816494245223232066300686184201795972749538999545373469667367899694295566988275739688972354096449256428340827402690170036481892302951984740723162124127341283265622806034442388840538879442375691237542525442027612293246783098492157223542574118554016046583966512425932892783917712311881954943109429164133455109349343657557151953808938494105225651662248548382570619817863635258861250073534956579403299050506745029937941815760045024324121157221966478216226446955781298448909496485640411131025150409745230998754482756059059581146175632119537465103859155130420750963611427662128345969304408397612269839852175544274928363105208659467551110466653658065453128078060105252699402437679794329192678697435961682812871760134779619972540775178449964006211765890941587758825812932628745096140524442776016912141090687017665898785322841563172432782937131439758044382089070798109569094610612012532154955685365490272614352306263459656159888868303963935391783256948206368580027836492649953693463949816407630487193705704052111239332061929188674969523588786012261052997285647227013777147627371714028726031569373367579746588541912943151237122926829575560070665973765822682376066418127741277989775361974702047879199193321956501178110837709253965806554013782597637861614397611380039371614891202780122781680644263857306205418484750450211982533854799025292225854215739161502205211985943779690352306417321628285607779589171294718678798736806843102189183822073265397817769225765338979535062922680458440196144629490552127012680543618869128502251454730027695724163053900097738876857729029978690696646645838487606061513260038685338247919875293123470977369869676108989541224396656320866716819147300513841312783495956949831091248988963090069512214363410441654350008823206240407446669992691217291115313603293889104568731987984245432083268163553819275496801038276008740247561220278632784814051558626406789207757643887435326814539058997541432440248112800541744035482448121038267240153203042260211553578333657313928072745440458639764607678027505224248075718033802411999020949027709301383156612941715817725901976446484583616716104789121853186795570449281678992102515489854797826285430682418713127663487548418548643709105515499319775736071661113863775664226243720981954631602486656842643954386464782330543258510365404087447132299620373586638350291434938364527304971496182423783650064046811883595590973946602537369789772550942965908731085938684042858005739575433992210655154805472709480968162916520054420240753484910487881948900941811496667754713550086924360716600635241587092995549242779584286600305014333531817745006509421378786427204049637739068135456460584314807397270738659423815454121156233039997432151778637286386203209868749756446196189693931321615536596653979557459500469947392005109749729091348773496010833827692232905441044968170365121474425029606627928825287350199790017826465023534914580637266294912685059488297071379054326166100391265984065040465874587239963426294292153174007485570539483923998850841916958211777279752871171074161907046888536042889093556577059626271196858161973241909984791556656235225247349368999146308609544191897547058533064512621441504380378342665589599287957443797079023978303934858037119189343928884048766072256777892989698534248811313999860958936965979420344820586178690246608926434931590652447785374985617893148638130547830014205674275424285259631106431262935372570213479927019195083798601713373315131377291674888392198227387180883785516641165902020309594837794917713341688081172858877815263679234050609873102181053055579697144505513325648009506461904222434665876536100626898053591470270812881622556032134659903717685101293662906592548411418469328005843910306856556426403592951745597350900267213083471787420488777113808950852914333136969574690532148744027663715151661218130937570622089202172728061545192326172145175797446205853221248699211366298727174723072211538818282344964269495292878412353131634157886590611491698393214101353226554311024860310266435094113448473902472254379719297259868965469546545117649207721848570704310914930753432182715175422564095998011201378037444207240196151843287775351633142998735608811747282035683365427171957233473852799417087738682837034250874540531449383100469954560965324923233633439795252746573589940658219783716087896785392766089026597130274705197143015924317254966611863801736143119206189433495582947926024910711633971519991116697446682590284966303654875710787821426668134978345012093524348222550684572525132908081397309577998819059434115684314950139119558956855559681000454155417154410289258658922854057314442249933229668513337194928624685078872773487295655108554234196568516749953639814560968129530024066805541595064983990174741401940714132928145061999165085006879899861311387272969048880216686533256355138503222974493287931301984011311472489751816729002475349044606262652243624831002044697367110462874298410168881009762340548443608363772576832792485881979829507339085982201236547210759295493566329747490563265855446726949350743138372743245245194382317844647825055746263974234630336594202627674358339839243952803052106035691214022130838156795175941260409060872267857174908390761952408742072292479939766159166750478367569348523457564960051477558715476068223397818748834499771792517165954424020263637488384222340240092997155551375325659347287650111521425451747437947825755979372804014908451453414418141382530774180634878455928522365878423909026240201517823505450326119450248711401166907013501867256729424831190064531173444966517289686098431818316513984960172248921053296317148634827204838459877480830321546915246268672996305821111210018013627771077862192962918499622238843250245443772311672520959167200209313994076428196295994084874184056170724902996898577279837275749857098436653407174700479379390832960384950599867169995624362496654547006936236132271836031683786327013962319752503128279580127569770421214361638596082531666263490818238507697662936620771626351219386810062832334699256533374642361796225687062845476038478710394555014363091324100590927755950122640599984185738261844406280542017637510039992544038097022741353128237899648061910271202869506532596930467456154998005365715630602450565563783897547998016341190932000589874160628978827128210030505052023052609288546060310354300330430775075942511497062927364162698277420282268810574465726482917934846327526297943017528183842520371506936418896631687689653471124318730893130406726613594651473985324297406280560123806184514072919559585602248047837438260838589111995687538557358237165135227234526176519302033457552758470922884552831550871843004806030332047227892568732085110749051068288431991281153062586146233814162518819859996318227483713907466896237005929538621876711169174937813821421699569771668769775423606837657942732087870341088989228464912879778161444430937331238758845268575038846726035461926675270949449614331028681181581630919250967955245005424708254431149659485113301693097386187076724747570946505933213798499435439787256265482310395719671839646818684751033876387313655196558861413112350411662132773853227362082630889916199865407651587134914761920058991499994244373522672851648949968361009343132872397427201475284548039728774627286132381688862842343809151810547498346709896161719312063847448818820188150194577524955552132150419722681536945924874749859149010152045429112362010731126848172614501814800734060836096789357176780234664591071104002655082744044864327387742035966710997306139267543995936007814949005956151957479999836651279361202326057706845610538723942608368753763886945061766449172912553737178204989004316045620896794875513543667666797785352565209700388950347802492625149550882669098426528206200580563714792883831134245014967677664386258222334800050669614133653689081933480261618104327251531208639822908039580600012340026957395782171016935090360713999365446805461012028402159474956498766123296391369495987437037159037499711523952045184645760755008447551138091584843570733830361898750896782888311828114003612859542338719191436503589314688190730358914918773326772648344250973660119375288424133586786449691035653995650107759020769233083337971547882532006202014724703483297424867205801411045964975192467996923311600305892626415941420369548050399525708946580673836827084486193568541011653223564935333622985574840321135542830395810733794543887551578505136053688453964936874498127126631893291738304414900152467649398648010707785970783034102252062971470812726711470666590472033820860754275277643335070311777064498650562882902470671293041948961568216692642507282235930198150090930899312153973798885505347001499739857484027384489047428258494520491718371766113388881965934505166812094333998886327640096603367793141875890795545287393626462649502578875424685085310521404679441321764194134957279581061686054094700572628824602379914138567838859599374436243844170072601211198747791416531543802720848022588697352976030193783587913303222792028560363157082094662847064190597674520835543649489212907054574016702261000615210616815855476908209493688825185579113080110749128904096702357102967214824676206603293461940393104520137882078733607719013397514826406638096737428810993877682664247826025692323577184998717418602331761818265701830047691403658809512328094503090265070319582177516211822891162406929555419639416233403360291644365193554124419194771652424944436505433844946521735015614640128382682072372552341577451516310433306911172284193222331373169935706816638097902080672040346130732952115179696165262088181055240138458570355904928206682143167331737420256875777621775173814616577862966066694987703055254390465758806645052766726981231389781160667789743775644095208981610188180496396162987230604394677059506343509174738019506423559600783772034716119327962795742500263072419160651979385826771920271898419309231547099099181547883949696309451652951348903305344403732133352688098668434249791620213662169286587964510340286234260833090824575447741663671728335446693086171335638837109827917930213935816324631296122704854025410695015295926283895992016778734153988238853265996873688232966644635363164595638926365560740676546563080351023641464130456590617673082557093672283634984841344978102912132178303772569519427776822780475663036381228493935900313219161777668284675010550796302948665579032114095563524298181461618610368382058079693842094053163823077257444036851856691667170518301327258040973567229626874670777645771417651010927192935218858909734765071382607472734323096981679059621992094974623149408490929453218294531497511748542540223947014040352719030786639194634528467755774913096773453298270033299912646932724097085172715993936207630182612162961023771283147299050380167821507049732078205062471885828154521245739778474598807360346569538266850986242520988818659042649462811065935384383088793209583592672888399353025330050305607075744344655396800575794058445561642354430538468824926220941568320608733361316172339544522509456684897417636466238719918134374341434361119694277718690782781571476127773268480370578610755168920891141259669189429278851663668434546905350902908692783131673427978931108133628266266233619337641012763758622539730138775549867273888016808051347397686506962146774603470349514164701680760867241351062222105292658781919092215505338704008171000386787455126768566474246433072425766375822357341110035681674885292709252371956266589320752207276108011394882638421176579048188770441196963562030605819724535619868230969301351561290820273652607220732109081125119277006372990454554859643927546471165772270650645898996313310331109584286057475695971911319791000283853976160618365819599306073435422974145008760668636126029528814582299873295337154371346140545832425769268451310770266041268599869605359799274435983311548390877490892394337632592986467880851525938546039773640039190358405013829971687595522504115279748101858732029947834939505401473824635970956598055529825297080077364278222890183317249850943393223108266822557776474969391820178761292030049112050806548803926058181188348749232650976979602497944907847008946251950089209860710420572202887393078554794992402254469883764712071787564774681983298682870399512854712973382990383647998656233946259839663915143511616212935402236527639532324802165244912504237782598422679506325359151311886755601609178118611607642155417388491006999627287420397194804993174691760205722305409810528270644812830753960684330912656797957225892047482513265570177705440418528062618165302818486277359908319216296711371377627669972361668065597874298831456404573315343046495412558272322366462707022273721256223457981970767910674169618688015668696383734675796396665806624930993707458898565456358057086795082337832485435894336957326043041624523258792632194412880675417564139993849989589461536179225676676581895157533870663402106426785862887054191386753876098609132259841693450098926878742046531771566072057133186139618999990998264551107744606768315627481342496353044590455341216513878152211406024639536642480304281011607991594903986801320913634456180107247087298238576906586494808359058169547537689891281081539620361698651445773397016642457896615039385001972767494830002089765876527445251695217487866060165007978809325527270207397387218996091272411272398425240821519717803469703048996540563182774472836453636351319836355557547634872261792301138377088871040468896924601900193656186918340969765474883707447646758463993207527402706156307753511991445123991301351435880226850124425445199465697391361025039756905975568555779322913706676908643379995515720601249114135110457332390369924445868327734419274276064596588957154637456613758810526142180876053025965915215915186600109450426946731420423963346867085035631700684130960334809391307947009577206434504692363476807348812086372631813501442692396548596352461373007921538986998385054431443355040698051376661538691870279811626860262512229657190172974548050278541906914035748884763092758900292704370821125497553370856395211631226053817771725814114055082361228758858998342753575935695014564691821021067119354594187728134668455193590435590082914976465032681356172168173343902549913011689034734124190623551092847064731435162341472558712439970547410221455382748565291429126705867514437439742737807203701574767243185949276345609763383515378163841865080760838080376568245939783651636578323793073249893320121779762678509716880376436088554775449272795655854439959197815109134173443733897415288156955297641522038043156634968420820532625809128813513604263831173022261132825354715975408033000373348732146165488557993688543298368437052493186896833603483750636330113439187020709412466431993746049986184598696694455026030124190805460494181795954108234706338763026114794608839561245698863582206969536268134264917808532907417878877722519137599031380247982016823910133380918943596848854226546420782242742780496834749165100846345197346875654020735289313559175364209950987193597003731685316194923221737539221253996061565068843749209184936280017735274987130248391226943325989082458058571979367946104537511941105180842122224305459099623941383844612073651328512552140195648943265905619385867791611908648805874399973384492276938118647256528051320398004169076063118701220764427432650117129396018389395938421210016274482585237931901381753158994127352266789111093432100482693473068215162541747021113373461019598874295963320204287885843269960017329959885095790731290716490185947001308327706432170162786586549341000531828836446508072206897910201669156142590547745200129514221301280446512151476237070108377579629185144187417075665474324112503816242221097730721454956692968890545431498604282678008010208016747431350092331404263626587740700515357224926764452281428114483102815572273874099728345304464457217294288672115522160724874152402567053786944759643470589593860496286396441343251094700598736744675962665928908186169002492859966810126856744910105279433787937547665016109289870378478278969507969890546838060741964622017391297194394745359462450572719186503909129650263851316946136674856697980964273467347753258346388554985080893814225394356866409054405249759959055296247659950602225450975842001718303578049473691433122842183877920215955754016687603996465211748568937945271264170322762497364119894237026779402592847236316075549059833724901939742003348557024716120520236318290180638115076280130504955597668344089097896247520185105474065090112287807371022603484851055977427486828385317316634644951391217021777853547327534933233037834795072670251045303210429308239493082508417220074688899161174854874266685509311138057062553778593278348370472348196755778142652508361325520519481454981118187709951230701435146601282037746219001443175243591202452713677107583133094241503244965820099671291974535956110751754017990789795471228353449485888516625501219788842429328779625648324838497702211132993679522763914630377572446759520495839617649393289825133649661490555904839730578803004403541286596485239217468261602860354998378953511940068449261566894682666536185855735772616151865246735593355378639300372288486357851852260291657410582133399862167776141932070778456482793006735006245240717787325681062113552186379211407366505495389760512644031174876080519637937776725176531907640198646341299832633094324248466438929648067370876048658339714574639608545047208597490415816637584578133115472011324525792589821121788327576855198850587180539201807381768896416660974928872347760179775544387137982896604080130383681178847082236016951316316364888130949603376406289683168498471070410649656439649607486245571438140795183080370909491264014194102109701365983417527778902896826091912178354754986741091938437488790186635080605522490512899522038588132570892452394076158953293211583597166402129540730448248820875892514525541398357436758000673355921513444508353950971190538141194273231851894468311121983981698114380455038580317520142826195905357330645847202837523564005389897277315319683579344126972506837421394547182319725271669470467041627944700111450052795472570908609466788150251802978532963279071888576999750125615450552432728816855827171426242250004147995419366756129718189487365756225617064759266011498347945147423315211492033174456814434415447447458286810598837563255717435621493311622924611457835589581457545280737555012524564276996509540849790607536072570024707821059347463394701348198807665638253707742302220007277572091885717173149264678385726874604063503470479635406663140077466905550538923687473368858122829543863846729802081816472932139327081570114034080177999704480502838942203364527320086645154780541167648689735925698784367549715920361238707420565182031569651022674845241489181947063519749857493322489266693874947776606292704686288131330036461277467275227270910768813382511281577644927355346079439863549768123019831968947682566206109510443380805353391545808261907618059785201846917937282610597468331692883008454884400011599564177145013950363144132914967732059242511637491918610977484729208790738587607032625392631996287625983324697980651811276532746371200727597528474489797968436521624464279527283790194197130429451366098620544589004415089629929108082263918003909669755990423145483506952618342093911373369463857008000296410886708110948233393498287886966257070358621776691316145009034177162482022988908013680612056045578153018121021557474203377283624743044939882880333725910312102223565596370508302927844777938673356457456122181053150079375103847821741336297963592606758892168938950203624686552608754011249409757269508070569792819758115002344852744244669683554306383961645783393683223660722456368686415001402676544724423917170036908431843149303185299928237120206932017924853048656923274047172024105285218328514926638761767132372366652066886923132053184086119645679296174189569905707326568135768672007076926843095503761712100869199463811661859076871791522143231741569473892408389618569824861288090983447351258148686671841183714405329384509558811898165312433015757461031366033195745392471521764998459644383055410513534705059714038143602335832472122487906983767279456374061738498809939840146210860780899197563579255357131411907867901789645440820670331362468630879806075269686158815280644440667099073189614608270450290166350133124522122858565623030031297441389596730053590479422616279628507091721482343964511907934380608325592273223353070782590508643392317978407343680010234146256757383204440948544887181033017996316676741205712781839762243791609303587058389524214303676873943515108219543990029015129799777529423759537000957417535735957737009227517409890054559753266975491872164368789532500751325734952746846229669955054029077292730445007077221719272937721591802981165518436604925536369922737754442042808164844346126381899835872677279891298213098757127648021499381476777125070049041170903766634200900957072450146624321895300153264055792346212160807136741410438045188253930386489302019379794683459471494567439654543650972228547921053037656749954497835324524413913041077505386049391654929156496465809126649494845670268268409020331882544347043226669230862831582276993975453263573453075229956462765736270423735660875499184596484956545497556791604939094868905065882906714520179312963536895995390472302512056404436443989227123940688202969613733466773682822761778287761985959846081509857434637402529135157109260840403568308082080376615285648627028757585482870046642537535995898967445634312340630698978541329066256997205109765078873517956598508980090379984084139806364257977256013089415387280360621097778357540106070627424650140463886462863939300452727248078589081070494439551434499339265400548462209663367937887901479625960179336994762418999205853345894814600128446888759549082146039797162394964545125595478035960537704326110715115997352443765130916522195680851823741604333987302482530279220844268907512832080819463761491313319002449149718925914792845483204670844550613368406733107028574840160287758424804924194302916432585694719778896024385980659017978235156257533043461859237827846655974214392781706940074374648436080722682474492951215183446250360015026884171473769290308999080288932039332613986642965325127021723433442762670567657806367854240343288149020896218858031348021664765703053668362004850048073547940728138547658610504744405017240806809573604950120279438105971105496324643063213531911617659016361535751149439808187524789230798763736426314072082552912055879254515713300206330020165953952079040549529964807730510638292845461559689554117717850236706745050000580188092121865570808247556010374300978127373050102851047151327718202245136964970738531339439195562848542946549629966144178165566544897546226395296630330093024479165338055330991400548401486296368359994570517489902583415331408498822376503233338707867539632471618432206524419322678384585516586541033898755085434145728732266615119538037493063373049725135642796495258817938958140528960377067422919874221330650647513705320243586372560801214197278665333012505666175937541133678963445691697247021745069689896752813089536526457246908570757806809434795677915143369863326124118334007436194140338335112792115438069486559108527231752084621997238873712601987598580243655122749887183232994405799490494763172148374546394804524978405880619211563115633551115573967255307426491626095145244616500729323374393639564611003842422425311095047678482029834337850017830681092905299934216283442221748649465625878467644137935112456522991432515103698169672893735051847128117859778813393037730110724772567777855099849365617237852070385106433658681482389221322566922689834879617356539549378554806562855439859886316630190098272359648432346616318532697984761408330106907728820153756852979635551231827343994992219388386640431491669071971986382106107884470467503683462196004525153273100377517222984176824453225307620318714027108683142525892204123764184649438932701685259100554849154102312368000434683769183831374098868183421448054559864296203646819621287688024065856007450779367275324036354684195690890167320319681599572933902417446630192373666136315318958348718031962622422532008751932374388425882689330716477578434672269884925209026921584517010256300502593296826843959196169267209896355297813295802956592333905493138993848122282176641325761114341732301129666308211885069230034259301669729615878861731372229936118494023117071944547348390847106001995943271415555937368390354220523964505582871789317462070704690252425306155701076946183454132463187088261978337360495282813614498315830030791115973174769907192634096963712664645660149317879789326245982445134533302215411024374277566237259969710006595650447994739554515933107369966771896640367638404256425574812568789095101536017631495827120441919512769779563745323707179704488901678056670176298901524176821448397356414036838236587485918990736422811031613445081429977829201348701465530424494155028035550003279519159497425014389861392076749584998956690805507042593970790108659688450494232790945790074563022582396920111523164126434413976306292037558454266508989711479584159556788603042027631739292266711473609011797272103943470701759148721541217903001837297950303552636010452119815330358057379846884281744681107652603556248187770192543383960032140328441116986956877525891049409334981552060277232226697351123401540619441742484225603936513829178000439195904546934197268221800874891654380847372040824469351545965785111369288349006672172289989649407428537303946788941949697798174943231529581150973911464523898493885066525366715450419393596135291850544815443871232759097349231858797883633414843108806923379201285487803146618860425701371378817792978143907499293079373386401332786331562725897897107488328232578026974029586116103984230294667296405672744696816310151339372579525349991926780052149636600916117925830050513026120222090536992043757120573396531558767668630814628174746437890620757321766526640997264283989495947195251727748997325040072024295116712624294649880143985884787299131082192113172756337760490649639971280726128682171022443950117493094143605539043631667905513662571285832976517145324351863783947623568676321439569212608020723288074729460170683474978601644205595443335419107627157643762177642564616518859311345967822524029707902710911752473047143119773113100131708778763338210001395835165801912103150735818455432899093169426301111827782263671228180094120466882453282805499861858597811458383194848745649753959654267573390771132778064821663890010116509418205997050007825663937857376498179633493068544296492083707180161225128023601239285277227891027064785366209506895769439120693368226953822630333286817671095366933566105864493562223804612734042265452234506984936741230277978353951628577201101524214160878865086416977309027635480909011433376884387858974102044971041482419697038870092684673437206827823706024702285176038977390976591319842124611056473320088173094715275067352340290894078638151635428369239823691316805235649862071105914713574315552686001308719860873117183748911686061284984253878024295558386629959290885897496664440583689203978452775935711032386582801544111575306507878839897058694531127833193407540638341755836789796333377805330503884970283705499016965763259566223240208945199068826678099435284355886072397070242736736002426133136986842190642721189128502786026304855444156920718042566369799694554127124343880651675345432600022936201380025265191438857351365454468911679849502464881845351109876982225916538585417200272938821852620364283966125831346819000863109035182554499978663625262711707734842135709757672947044955319943653499669624219179499394746059090645720672407935276284675690008862290232590809267564426183900134205115877028593418382630159528431638595588018802325664837373917053582046711742758352860268616261130594505483534945853466216113741428289931892510947531466111485003057215413371370774616617370235648934007982770258122879389839835125746742618127343124450437048696328217368101714842496199113789041348582243607239634683671825510069515859400755258180013796960018025933248643313362860571598319311414408840153371794665187642462396567340591972355926449103930306152195376384694774474514629017271930578830876059536680842890038554159651930411467228061508306249106923615896530204844682613739810060810617666691949176526692732111809086320907881641934527427384896752684691611505679949983923341707048560386621169337333462171892907526186492810465746459262652007116575454315827082657678569904679778358748597366815392901542153735117922783326296975544674098070747453858561865527537362972710333497318224289109570424107090715989330237865233043615254197455750121844672037095722156741472438905973120353352863596355187729708431357057943469791213228733440498961621290595415590649392509790103503366783998626257512988227648689030451415962872280928392013213431339706317300877886329019280527798230592495218062428234806107786585793018852574694370020376455523958655999172373618394089519074822778502221762502746527064303633961554409118760845945496258107049201538951363876420823727753739276838379092194896310162873595595647211139976611872484793466522756484118491064972280024369592758306332207721752879499820309167251254731401316301260855629820908363814263164284444917314029251429972048478177936392024233960791035838719321000977840993770066650624138322124765757657643260796931044999510131230431055711109585069501186606646813257995402418064307818512886625016459929896339790999269278971460924972112501914019012339699280145314898768958307598238707936610418740637178488866383216651408883325017667512633677132584923577547958820286473842111460751081146769345161941326353170474096417850434950733833537662506778417415733259160428578644036731085097865564150673292820576707470136259208670361249688974008999710730455746102042873795770683532907216058834806578076672807166482657327807903038548684302986394171762188768228622592393153201483662114054076737214981309609398247390412059464440081172701258617283054993109445285626390143445072076982871319511966604195757224658703065812958028555957392786736827353921255852506199018880238400632557686641499267206547452039573149671172573225912388162033606939961687693803282014719398120079929740734928500487692303549693493727682844854582749039978461445818957987202618114200606151153120190191837896159702378722850885184737477308970493800151242097556057848106965513005302962619801589087470033251517388465906254686941921277643022628631392965331787716249110526473238788317319709947534896693993737216448463287934526775803547521057397832835154507317771090389501386213138886965635549917476490427862565080749393769023840733682928308942855459400678745797673126364028646713159544667700312899408605490585003244672074291695953788648400354863892680771719070759131713802701697041928639981287993254746990565023446251819742230363335604571427196805206432598277064962724761407799279108618001974171335317809984038549310609834257113100217770635033436252338505184920798588064715838394436632308163431332231841246818426509200992337930520122277392477519092406304258345349243509161825378193903974410430530258692019042052781167728386361920376754164997102283732035935934535133480107983726960463585588351508112054234138891182913932810657462505002048079397441321381544086788854220378599263682721930199056853265408608675749636080530388481198624809471851235135981408331431246825103010846856863666458736706740252594476301492651975868840641854049382998905806157576869634398522412898013106606238124283133599041934353254680864864588232418926694030897745632694647101727201541561317602810091480584247043657824679425616859429212200374371176081847929564641862892058296092016485927987670159919939966531799218452337543100499245316631040557515227781316602849343633770800710125033567694944993768578370738953290924966717689547914346900061626338233712595286152008818927294373689711609082331983202170870428392844791056931577362426859115517137148487750832242103706912000979526456898833931455825424239073946167340429648081831568820191185305444762973114465286413727174163834588896925969376159963001955680257466176414624739733742882595258687418806899592557156076902297916368481085264802370410449720961460569686901198102455640392449918414876567132526191862771932234789947057249838337056966883006262839259760548354790438484094798646032827402290648010906898207014048595533385830780923958962074914861273633814504854463245422526672972155673806625590274690426819471490207478533721890079736611322670192134196206285099582946823695611367942141047789838039988989324421960666569305198748229509900041633855166567026849981029656209478345021147613847341117461446520978358686358013679183491398886791127520848997799974025236295305725461554509936680381679259182396793445288878704874341556922203128637285539453239179423520955267073213495122591850297011089871602909724777486509072250110241435181297577187177334095663484869737390230193262105799863087517403763233704381232593500598599655908426074146910012757481247289594943269991664355400687440189600482153921546273200160733929918693341853232199941127800046153711277070620823862400583241936279781673720898485560218591383339155270733060858961263474938496722218668646373083581867617771588347036230323713126394917242813227225136535213619430674563652248673809825222903646373728030235004445430019725752248762005195803667230318514261923067505250434892667258275506082986141976081176388203448775307669731490479024262245495684241352194838703788917950237773258114035698230256249311760681751955995350722722360079796226082219979171742542735290334788926495869069885806736129639965416089986995799458906025537201104207636364125767925960530436025355203180186183053975179222717165184781222452812273117757105326893707538889423083543381993958120299857787505760444651640400606754962390006486539884946567521783570057347381732996485737017442633191130560644310441052645755065957741743417512238017331074145034832610963431414287142822362995764324383976636290373262701703813683900074439841434292395602610055490840479172746622251836313686095109245295151791798779997073209749438440252267210110131595900739868409514287990869187729420751203235218078214920414498700159233133337437783685612541449177532408156820150278067328506845636554610745685982771000178133142117155821125196808231776636046211283494293122998297172598374098718126171465336532831849887274169834826890334652108758763442619982781454900111384295363241738586816122347122494749005638109264312910819375681512331720663992891224876966479944610616066458729354672237465462397674105310953695711577480589274851135828822533751361418318443199586848613978652051347867057836554666635221966839585088351407471581448335732399584631072143110188051325508966624902520703426574604400726502404676609120284666829927591789844192413504291903050059527035730698132331632301971238866338505213620420263922521656619409531943432614886839700842477517712201827958507434842897227656783293674203367951986454209817669669602305584535130573272163003413155798609424884360908403119860414384087518377840999195539288634008499420270597112401960139287818894370091055471795290609496788702191297614694914576119983042891512038675471943053503269901265565834949970100852920020102449110005517601654565490009226091192931291437901769954906553694058593138759672025738544515386718917934956516557691734476475374599136843515424747379764946490894442413885256848437433536701110883604807391657244222063671852042287944744121606406864496161334556739454812240122795465447464038735362889454936582826512808785323589866399544119994830848103114604452719838720661619025262855027337254224665070981940356973994136820337049522686901734554481585045563242407204682547607213750798501094273634382757698137492111075530655239145161709954555174215824824613830417222563135954350903457083502470672263613826579430858258817530046907769638769131110725130140652357181961150302871366998192346677132024318378808883952915946765251651786611658296175311407382955284258872369539825275042779594428075583841052687390635058693670820187885215641279021823070314806324573096809213642272643500770362461495898121136512752966561549754229271958949278440376923874266789363636110304011731798842958875493062127098474762480821195439192725673026576863380019300395183146203550928891254568844445544845188687206201232026393856241990504885194784120733997977443797399794537228736502375378969310661940519215553325181939058897400551306237784429087281142797490213764889748169329194935826805084195485068226763610356515534185661197644351797847553804071046147907088244225049205662412873500502353449967397933560627513395533705612891865785213919271841275216347691989301059623850788925546288208019872763910487361855271125919178273659404214968459389125454978058055524444903637734573731475993639403645718263296460842260443953338874692646889830476065493083293416668195471521545149173034532018706182136942871753599422706267261314982187778578784028331068590252057991417889591640844071781474112987463278348356006025091890819020322586578463340419262717244011166060302365137617825678141158934095409126541698074991842536130472784041054367218834523260937505652094097857915445977268219096133085862099245560749188559181498426367683272804899187781012958450880413992504004561009556358533980107376352421163009831011257767199303391762738809850923363300522556113105773251524325826724233882433658105669829275896053728813346558780228757663595591261251070959143980783516443216064018486374715890494656858112456797454858816065930498874285483927086483680106565372929601864368585232939573944395216192716445560908352497424587343935297622039880541105868492119243331070315951480765463098373453212608142735353843781459188267969451402649382047423906930250926047528410240703051818924326954099200733199063517704187718810458525307024242450120087516287244726082120259901542859910491945354783304229102854359171835044130637604427603235566683050493838666201318405269422400887523691056479314891510371027051268410903085965343841299576884985958044358044699555104771950669408254713104619284925586067996255867072621175211066147049320680529191975827372630802339164039283691289083315091990379129302894142868601912698314169899322911666606395293552622122449169876695026097040096967198342115166493917764431504589227869320580866571020857113698143390506496037524492589984314763437291183273419040783559675694417153954669446880266500831305473406414233519147558299297314041842337820729527187062121521901162245403572483608324460885127707098621951765270147133992817389526815404737975269067834896879305619380325149035730654158735621707593857874465550731129292824388177432246255319086585340401919024659708999847910342336651537860151741092526564409565798238917031310497641932659261712025503257114873385647802449828814682255251415620770256379800101045113407017846119722827918985091821537819069092718866114615654024302074031787741972916029288115577797812522243022696339339579229106859579144443529573245338364578970413003031654902446634476844568895216449689126001661965649323500043734515344347913418591467328557304830107280433715238719131732033127695967909923520297638767269831149537032804898917993106540523261069966893575161657974408998276443727195737597878097871437436136092548401107953567947165277567296318649338877318729748301791630752110275243589193804902675641463355966958150612691626537176926605060152911320552993078239279608635967472350974448673034826500039617048379552857513861807123986176829030495170952665796270551667895588969306965009148543545084066528681927709347221110792098922480133826960202373062513729705006364508631968553114429077975190777919826002819523663176250055911799799008131654187770396876887715804577799780458387015672392265823624852030954528307397737881904628462831509427950556820295837321199455733486025741095418742057790169360815086911121935681071230637215510964286011746753947806612119476301562875779761483056047853780062543819562903962609741972489168957528040426727878932914648603366377175409131562123706579205903503417372949941442519131342302508237692908620497424010058512004097380913154333420728060403215153109367456820384245468685555992414913341096425901615547157860919498985562858101905827458495839033773718250527329084584049775820635961999503364021420580470147512582341974587704707879170898341448704422229750146557708982460445298374980081345431663778826515293125108560054820241107802020156611738659737597674164793974205771887272324071621974003347750170342533914654943922418585961732296059311795764426862742364646618560258422049916602322480493605570670180789146207321017550026136887266228770859450356596546147190923707508123600096167223785446835826797257774573622802087252705596347157032937552748450051495214130493653362421188863129203965554395882848269879705287894115879906874481925256567526214090955062734299168627399161698087034758888693213852363682839949995415664078784438101644436211368747819202907775520576930933925733535428535415865318888712616035475064630414608401451829780660256178985732284131910853083634357982032234163939291460610100538423691107019723956835303898920172100268641387924772632797919519863110828282001454634338915806278682629955754787267879314114605547100764491423942288993732226828226385195505274575856152157940081767734148330663430113657323284585697056500987236300985629077215996944059866081123643807588250309836315430802579209293331802229382465212636319208040825831959827961590136386328878262662869697123036579391747133685034457505614782665712099450512019907548732532449521000344175721842469725571986197823315167081167711860164978686093544843189512805246374951833084688351556081233710575637225864690472604513525757667273383128106715848364073035006141783358434986859171177782635677030928647093170688243303304929365478850957744888854266022286163368677529972553335474099999144864035297970215153521611935395073175303131416376204285910520291648435671990030064324286239860676788447263588014536599328913036430035541559263528260780333688060550779237245662998133504289524998263016466766063670045507246042307393103545704732898584951124352237663484687132858403739752082564942359895451833684934215891889036275989215824166508265369327874478650161993269455882290084712218278312709544099344648387827231238938299363771856136059124235036184752985418165071164654667615207154436262893516328242114440996891286315689628495599327839737528730011533279538915405411717641896721362544244986243974586292556848347574002192413157405487484906490463776564618045473813940438012088644291465272804551805892756085455277982696652654666940349729337662620178122867882123319535003575119877159841776101945664477703780657712677734199840249135935567566222055122940878356283141039606334183755903594400482875431322908505284551607603441428089180143826206825667400487761036594353320759478681427876603308151437336229707684191520768559124092816018276050209378496261332917825554647368177511432158272502642720374778837803241797094902033754622793835108379960630486722054224296433392457687699259857344166022219379519943067168350733382402223138211130839584374749175956517191521213571358442508754613611631965477115956155027655729943587168398963358382577281913875932717628297069673297639998288999753695523287458497810513864549965251415302880985363305935978186700073001056704618193598627355835934542276513257641385961716641714661612787371441484546338010964845143832869724189938854374186885684108636783729032786050991071027666226260785890286020408168138145584754061171825845370699186729735924203359463797288079809444666559810761228911194403813250795078619098865937825223158402082898861050558174122680923748594602279495978395026236688106487135920949326875812571695668109034058336617960485295989298134060682401091895491847278350650378709619216982365290319859898053183903657276385898274073413449599136072010927653470733299062346398828713894636011550135610280365109560854393428637961449323877629640966435340603304520618800380199287332450593780803182490291737476419940407693861222781757865425059592338965586176826107883412608266281482973118315624976967206788753596497131891869332580321611856980110152378992417017334162116371519789357991261752000057825290856357705452162245640214406402889198057695722148957860181942291543237015792026209460161673353908124290177536639033832970404619923480625599446646353467776961618880727981459450533113733143391761179298947400445129104183905890736807303228330938493117513942243697831455893047218011246937579660249027436477424789466990071069766994897711720294584441224332287429262857142558972234576835062020686303336438663471462116190667212401624713667981574443387240387104060182876923160631073218619864326280250010501108506479295198441649997702088073198254607011539162100727183941697562099042367147097689824437808774306652600640254119513986837376163550963142250183798480686533877404718268846749422836973634118979767738554694503577759794854443994544634937837354424776199462439517069131380907303676005811856965071355504990136849171071283280387524054005018756464108424685243411588624959645056070875736456005218807766730112983113038176751197524542832356181837064364285890698752120798843100990341999290593618704182957615943746897755771952255606495935169116181474773264727277122201801525278390829838326498972462797009181884299937909312089588955496205604598349252100980085806010846824148805320821192781485724510955692813556618413387712598785001617025096127420371838083841092813043530399496072849884434353386847829416512829129749857399916967589637807335066975791867081680249408171461225580354021249319883723891804400007810719669037397866411908225933598079584352495761653192395724974302276828928979383943908207358230021155164943948217365534595072427107851901112987279207332914476483306552273154646904009167871521244088983183477918619629659240153459379816226527401743673677166456305693407260815892291593176206919674788190048101260832644130378581987943600109141382811980092785374487739631581016708688927305893106955388155796367785715433049824507757038087832877627050647262174086763229879371966704277212508018638450231814841735779430638136389778263011003523448711012179086664207493190053855088562227611051514428477329451038597705341372586385564586343942873749141519315429284680276410892357828788447994736407890784590851837509320962365741982409867289113924663666019003829827887943091945059350736697485972698358004726763006994627245934403980904054103206930234063466221660924249674026669284188409655243370970011297017150162427516033823576583207149423343681208620214416513176490658033009509410981652797848402073410286333419694503070446321042746730021411548661633265733910322907233557153650364999078040873116839281305417557971982943442672660681339040124003463793070182109835900587255349264636506888611860391685038077864452838695585359453574272935854746752700363196269771354015448633279605404698048564284801252904606519365249860485285006377326925889345560760264354841434839772564668969545911587726347689972911679045997071141464615440784038176378523946427367614148638032008801532810521540440028674837634814769129030129937956252609160561988639890703615034600531098148129485860410972989938130246731720317796045558990309789021797263481515635532077462242164849571390631905658577020371169773449750389411750351127494881610707607901479018598618962928669311684779381350915671087332023825044431099253185686835829780775537240590719335580134424960835693510362109133993574120573072887068480870516763217922925603086523200845511158620204046675821069227798499818413327537626935607842562342143061772327484556668969740264884248790328095301345802545499987615099474816248149593359563801536701398784385637506136824830045273923602207517447752157977201115886303466696722331863578608567509773745658790892321394759056305305669196376226749993981461037353635775469801504251826533072830158841358889661987472986983893676512441626673693066446336950081068578826177763576701843940990763647626458958506758970882662855531288516110444711114101890182368135496190140151930724944432537349426510784051818245298981621252238102316713242318501491920240529385515056865401705664455259234673478435070259019579219279123509330692328348499481751067013122763688237566985344473759847995988892389688637065280216839686443401584399980084498388390199342256427515670632240033150616644114477363650298586381461023088299146503563769246118726582630480496020826215653894261509567749151853433218026206544182441918024198783853360632396597453474578222977810227035613141773505328395283737336337319039725154609600888966944786808891269955290796606236605489629281786198810565530071951394327482148277453063962320874425670902178614584461445091804781057294473594748772776700770946788623180947997666306229878157498290492701379339028480412682968063268654964961559259001662051126329458866680334733911780998978867653743100607736765317883319423328884913285664109817213239314054057467787582365216550947870242729866048446060283018384424985601743753023680320563832810322834740819420467536212815848969225824539958093961868231089786863331726604007395461785816376505152207167702406254297317656339455058083446937924396238183163887934450771463501496830818354229237930472585209994693954514267304431024106481630292794799992853559058229905725743621193728651423739452775390006566838008823216799902842448953108558471268494309905657979250987767023554021971351393280153515135051520661098234059171273333061502962466200505230600904246696238717219031136711918424926134720700145879460469978599288800889633389086413652549347297504246905456941164774006672881860315580392495600229011743854969484666649573967279619648002462805085655900039266931343396832384593874479756001975000409842302681857274579421735186690886249987350808830270556736461670974229588630679376209760690211824139201605166689454097412843971897561842476982063861796443894671739806502307137216298477188364190377866220110527417856007533920098063048941084944736467407669936417340217614539184860785196558176830575026852618922732786915306029052508193341291044711508730041041151879947225357675688858334092548713741668167214250035920392658681680358482117345616035398144410871756429904816675836355482604867354790552657132050969901018421864632662972106999611985407533341831879454276470567592364390458451043092302429144693679335317171457199280529493892189035468230243811402502751626647135656848209945585966167879063890029800281882030348413706876459562461787462274120958452718662094130816366286324000419736534250900632687188328094131400852306801578880747319729975015151865636121916455745954257861791914673073270087350960652827890050155891762398160671393519514297630385944211828639237544267707828393950111277812694953545788950400169822389084701398769955331568974459003720325097047768843289924760997923417462332822882768308285987444522300802074479134686606200671334364377403641674772269820307399699934047396916840855569723661938330979103150077341909840688065550260335602492502281613259456717198339626714529775500653841132130738197808059666148265855935615656763089790145788155806000895724855758984031189178059192252576369950875326630705678133573718088835259633982425515933750711228590450120261707368275374014242942271943317435978246406957804912667785645099481033311479244894346993654600192806690109452424425448274858443713047915341107785586898628369220902553398239181667230412920763229175031101443562480015083898575004449885064143856533516822019798813456219585546003422168957586528658888223534581394880414334109369480922859833296942676404723234775688416229226660343565874229828060308485908848906825569047335889480604853902570563822911998626246406247313268830493954924113876682218287588994780096103946568698637300339215987263241406390934604820651570024796350715563999469466181237319092136012205488750611380232785645461104186283970444467062505543309283188684915336108384929878937760414051175372334189257260874658845026844437870255271144232641362687054723566832855863730696561097057635403310402617161228090392182603648573978110801145873146346045996147362296935539563363577721261320304719530980696440079653531316811978210210688110156909402476177830682992799067241275785421346115529512938660009806465855770223778160743785839686053860378048653409897647593741079405041235828264155097133816716725609851877887042039366643465343369348262175493659291082982217322418838418360919726082700943399878342635498997365183693980932123342600012246392879884808930304239837031251361835957704854110774067641802448505704776256354141866983999744715750334267080686216741041455655760472069019242922477982560518301784586642862841184244685619877024926774822521754084339607989623477288405518304966680716533934640298704503641286413563349676590561890570204613437652076016268666516592414526244464706693461557834247903106455060046555452228987880903662829137625711439530585919335315279439616601195208290914754042371284334686183848830999869047129906370684463897817478554359725646580262597714437571865485096593620798899564690862086079954236266743956280889717967518491058209773746351166329052011312848766510612262802351310653024338454451597705786937700178818556589854806925290307796143053730620421541383460191971667300333693954979648287158155231453600313829356743570422491508844028213824575851079996199383883163059242238805018077066164923925831608555153749088924980066742975158758040459510562056184614979916492311835911926171593262235505949423104062242751870009978930491777908013363572168712412727585101766723454316890220949190556667330652817048714541407299942909826334224640077780294350616794704620444118289181184868359682388133104573717318490999917605013228930114647521458439804351952424699154773455612218213271658468781681568340032595440893373302180896444433776388248842159780301469324515068165100718219136685770965563682068894113182636361693549099131566426318035959854510822250415967850533351591564613600279252841854076859685885140010296722248744194316814784986039897504367927842381179883288122922043262712542407923679577713648496181587852986376295522694426295099369243014154212228892331143821807135013386004279144358805030675716954196845247491038969525024978687115712793242506167783608596413512244493540187978007665350794188982445947928339471552822743703008657041970754602713903949126804200174929408326031404363741204912669067908832382092713349551515515737514597470819957419594657346606513384580771307223196827501778641963664931574942123886883836039908308981940175689270134407143851289636936612201138918244517743421082311880379298147440492754325616577130107080739069250772697955296415675676321114301713455785849626270567933334142568981095130045007007957073586712855063271887983930568995930248946930456574437433017640613956746770210338268514428303288885951463872107243150167335521304223918254031639581935483972041482266816945633383295087442219646941110554417834064439096639534388160558394859527146751726719877071909878600109159897503728957032252945515469800497395121661740891506075626237384039484543642581219448685662160329190064988613290811363644623890463652720761669693996729380354179534033174377876137644151263551530026315040372487522066600638506789345121382768143981661084756278749707563626580726261169783984545191318899281315755732328993438303275192797736805226178257632644574005409146337528709443916131335275667006790609866336139944255943447826191203331993565877597753689101524826022878513136202034440998679882476870280641153063058603878890290984695767982601664129281003553672177078061684812379957449928902446218414413463113587525838467117858834491523689239099498316860489656082000578731816833298870306477950896002382305426039479935243856714514798011625768809322614613339592658260113723457371145320251038296045401927398143128581070115945412488211939442010319868905501514978219748993123864652237773627405165500294837462584926539556895394576410872777325058314022587254050012691376598280236154072252307375423493871552191494673346182583087405587528475878447036941223916665938732282738394614736839897675253690445812971501350980687696343801231818039391132342490861144075571698666993076394058086674141801009666525225222659948063731958544854499528982617641911339006708532512699439353187780844019224294417297535384039821834134390171466679276979048672106122400727160285377139859536561855867411346717263680559987871754259407410729183150247361149880249581211585593902208502082247577579218023269848614735626629985064210853231262643045439995347472968676258424608226396086286460617639041249094590401949731921328763372501475813909555601242398815363323296002288615585575813012059625665133837962271319886005502086421731816540837167061180220432349212077497015941117118015120114245066292876391883844902582076623117441140393678318523397639684721977295494508827392027841687226449455058621718700431628513792580530698660866096499909183533586291943841613738001521135466056332501219836765146821607921531664580256524976384124348014473963245211655202127677231517482017778258430116221904226346019381346807762129043827679549370437211263869956962180579222114553449988639069537220194965390089612321253236380509481053639003716908963006017535116810659578778767074044870579414782229551139653728699438519222112636910354690271693901914737466764548908517762491942807776087774422160892351198917595319321240578691159119539098046896388888499703538458448490528826588093667105722982416363489010106746754598573503360235853837488882075838465954968264527813745704040321931312356417730378773095628701943501625646913629006599374215554737464251477957573672774908948596261122291472254490782273646601621762722661206393144536565148319009055398882831515842203064070195096639406943328406566647057842339547511565561534439390933659745896226926129893969311145786898543340791691545496212266856664526448904126613468583180783476953942947365521558622509123268426087442059264310573543116114916444276935672678833583670335646605771509731260005754106255655173459315509767044776621021198350875373961660689606544247078331131694113641026296039448734858657137045580737543331132207023326245115420750636955184830495907962125930105567605458587291078287568325711522045097125734857311045909651019052302138235882272424275226198262558275812089571669378458796913742680552176243130093738555983681808826226151628624533328810733662366135585728181339376978266490578746857287212133845832676263845101635925941752280310056933124801564517404872602243130311253329981570996931693343045639209721351115440970110557925330952348930727763017625170627983953001319960722022685679217050175056548640361470806420526347382572019506853284742479015994416218590471269938697189494278923636899104467669294842981869386222280579768367502189428066850618679973047378260837580631256864799744968320716770622506531620675765083079006115823354692488826521314161883851515846574040925465397943636559384616627390490500003918488773627520363147175341563092293353890559528945353517820820651441993090229827730124899374395392208069710785719943414746705140372015443830505943484579529857312489374695358198212861365439114962742312431592142915283323658920463517078360162683196002568895607418243178965840278677943700789558003584001767091325449805397322972653586143021913907757815221742980762310453821369398970206198806273120712947283191275363249575585914853761264438844799784317392896612486695547504445342687829206131806062530536544447752676242747172855394481988641654150414881056033690677405136097636753041714224838417139346642029218699584573479447920235454555846971830367825861851763277858917185179190808401426293890677797267440636757191499271540721611204528117454970975875779305518091248379101430781581674556994694881477973316178590544742938415331633115916441465719745750313005973020713755660824646267560501217476961190558775168854154626661665768956304870849819066475415909631776379037408006863002312588251732561231165293205133576147819906369498715673646841635503748078343393768614721091885984454058369395940777244217549784989291340148044608062835593210776611284769315301870230860569144137017528222800497720913037917598300723875149004859042622924300741266690354869547086329181429705223562272641543646106550288773735360257541752300079752660323811566891357306791878856742032562224200621928015022247775989700458985184077382109064044119801939915939962065668168805866735400696619225847455171551579232675219993161890692933290829747565217330907905944017494229243335698549502039129028555642096528491831075940871315972131664365592322713388112264226221268879167790757439379678775977033238556246038472626852579670118682976843979380772085968681662564662922947218002493460254237696459234235082466545686535481137908010275300883519232055226789829014908046162777966229137205550268611067157957987941244184471896015030561435841538033816624213857020829814095365146063324770168217002580261458400877128036548138988825867614181408818958177558149240565225761126462951376303479733827173526768173891105819115228572089422152775727117443109082558397499675438219500647956866627447478641465395911531772067606763375149302048505232082268559270177568907160336943002867301870378190197045110973276062142808268968223172200230450138543408396019732007498826535102855476333513412076086327715799311108561518827562678921845928838927115421044207460363407469671345549043719322211995277113547768632499428557217502176465909083192028040802815426102792180595933457800648463854909392219096490287024767620449689665375588310482206788268692000267343950327999070872716615356597348572595940139278108126545111402514084016006337246419052024403393575655546687423572346661597042109170287996259614129410500961634569836797775701676841198037686120344571815499001343651350069274104342875463917134196154299214679139004350562265210861592708263328209710749349357532764030627326371898722245820665751161693382107912624053673208231190288310957686569666101325372796743963570478293639382887523527708421133628311441073183301520249830625758946588175554273874329100216243301764185392816578094326772307447783937073279615443968651742702153986815045621109648930228931091891071328599845835828705354342507068325475849685054042069951908412943238175942442017232527503784596119317837522829135518972697742444039941413870249280307140167981099332636762463723436259272098072718089621787457261359093084385492687486017200197782908165126521992591907671911180837590982962837881607801468724739514934278378300825480472282316256464291009995530491863947611783919391322922442043851633874580939920663207559607452380704550657903112525549717298774562487352328034598817763067426779804937270010353955829045758202963748369502479395894751512663863603887688282941041300001983215261931726364738061977861128123329728227190712073371063660618019176987006953936182639932369382215210552391036058456744711251179618235557143101305415145988885496515474469208959545732446509100319208347645227776938826763502475634524120033088014454619486287600934906951288879973356499566542893216150216044472113626422942446213087352899977098943876659855835306543891422328222869846580830096677706468345391713889082296788594095505625643894072590717016765177813887252300202583759116191742438769542133208709037130486836546429609261745171895388373487538344994241346950472829033697293760282981476161351728953951197087087567687783549803659717268285916450398441368266282447610435217256623220007734022762186418777403846638782136169636570712655380436148238914321057710617982299234972422160148489635964125021977252608471080857449352500663932637176888003045366966348687961551568792489132949929950198224621074254315759842751602158407675259818895179122225891275437034817139230265451135527733511213054439121302293568595092431219860556849000562323457369825460458838658026945261389415897683255374964303170346988777049760352973191330685015946997199520434601712218975072953224983939782021710092292966978950197005980804028804900946724857497426578017680592518413561910817256585305483743268176610636728259988953002617076555229420472500084089108204189642822683203701479248920133166577256720293169851906294099160525828037653403251603363785751269909529858434175941209964854679809218372728839307813675724525138156220046405096530917901337462714435647020961819699349007225644248124604717268022046047758471389216484180742074855116451798440976138390455408153718001431219284841721804022231314405579197607210016304523065598301043832315135038411641069200764238512935720815564892842123212341336807153663335464724524887419119366861431103858351747395115293122690445707147191494850834096831040304489583872297805481261463201611976543935586252028232281084458243854239632265327114177956828136833158222948052138400748740273284927751153181766164279908709681098693636482443424063698762510621069188542743218350931588961442494991977604239083629970049393359681237887187267718638954434119976791315899727059171959194027051064385959863198849662658576648315418122633676614832022480912602985055704251529259708685168974039696737662102006603688850072249785796367258680992788991380830062391773974720514886307892901193002537562061445406661799704166228012862714438371833797737551814001048496678355384205145469730037482423616107701832998871986300913414603456354333192440746577414685321297316630334387750631762602842112064476562986560934839276729423708700171094131004207537693852856307274042231422316802592989287848425639652631060928798002715789650488181619498050973298966730564033422332163187282232163915044731277112137442917528909878044359389525895093170444900593670151774305198154170078898249659674617552620001966233341326653264946771213520785358512195069552418112680577127731731904673290881386277427572401632776688871604805046436302715437638348862599245389449226114763625508066629766374641614729531118689672425117794728453412027128926101771029011085965209573483671138562753085546705818722604191420295493393766882978466573153212012708661081916157300793724437680544563121390737984820256459758032967219606892559239087951994830663854365914043172460673470539019633812022798047248606735741752945400567690180261555140104064772552921440915808049452216224886883211186478794118247247211019475693972718199205588441589112923785994977093253460661445675974891635708231392671443490409749757404968914145424728286299923886408914345058069297049990662389730411399409611242760823295814294711280129956200456676000235594694667058789009004703631937194609307211119556736616695380668902090883749957155889443426273981220780089275249858939442946951445240722967469704810574677711124299251629094438271034258700493750315623687764426270892126996597148536671323970666913158596306795851534984376648021096091903787926394270733487323350273305357094960367141108862405041811076526391111671662192283129846951290165686800043944400674766249092147239336417755306758257256598396425698314587842322359644351716972028410952147668254237792400173947991376360212071360105998332428914084559964037514486448353562563592717852661101372765533353511230047058352408773361051588360424143659621754739084757317248726264522904921405254104553440175284534649049483323551174503831154553944505303653697591492033879939440942061968963570285958596307906452426452045443954224697289107598976594038127930950309949155059388856686636841190669921268664417424688324016103537698500331812543191638414181039714702663124053405843197795716593875614143596438197972193888029309365702459403352808609557237812446008185849308711904062400943960810445725549616715444603494443868743774449914856056039373027015777725828934362504458853601686725863356917023214606086399343053189636540545033151900702774440855800119340313491190537652442411660511639878330138400484022452410250935718701752765993010037129316776560761951301953495167851216350529281406512355054791196274327993365009230407211909101630255156265683401844951149926816048946444823734698915551268911416921197831030931796647546443982653625644785664363591921469949004362751567803539007068176327349627323594992808324576306636940203224945030591953865672482757374907112103454435545034836740583717844486803964620886405067448130568096633579767976925590917884878433569693853189442349509485033863385558273251281106645578295174274296355396162197470554154063573538643390063146921679484404614448963265749399323237916465066265321507121021468864147230906593061141635011901661528880765673699675728198107513273659268329102890519665886264246262691567699931162783414417679747920457136351405437691547578426439650346989108218262824809588635840183588144445515345896475211057962551491958947086398806130959028367196501247290210760002845839485156775234878025588655477406787828321654095716928219530064119757616339875881585823905482836109694461693953587624627764413243323288318011155204013273039642032632432682311065518251672948551458498330200093585625751557999507181964741262037787054125779963378267417740187374965275025502125755536387282215376057852422822368697536282935633026904156911016098885995961060923545726672115156092280143878526109729147402916270004414914701977793021077127119943296521399254535549891606026871132036424673134326610109382749488628353049996455563307198026338832925034146415319937760094644851680392427023456153014218331675017401096664134297319036116338238197411463836692211698932137191502766993287527141272612686965557560839088839118531713623018544595424101340112089791060881429007829585308076791671492982458661985112885444328815010961934042243849331882284429760907240707352309154947484086076267833847618116816827111918119626678597223063623431145951878492213182026648345292874566710116654245839127863857358637411760911970925328433684427705931230010750020165653253347087129627215796822646390205469014930680463946933166957645397705337283536399719482915767347896700188967394673082003304665065595830280578583251126849220133100613552665631278643853727702478256133705428419965554132393538149245503782370591868959662025118964534627119821224547361778589038555332807219649783659217586791140272072129139214150953655744036301495685970283728198572687176218951698591778120735921597813511134669079528197258521256783391112366748241925929784715890319373212910134307647701556395906255574642055737674753345375368351440389843805799271233076980440852406478557146116723415476815658852356252660486029007926972113544330606249659633285663413681985095412567246801436426761337349175974072522296550927511675109130803284418467387271037372667870686031247817864090265468700884006409354592383919585783908633323180710288815654521138760945825192586796431588651021732126443252152275083927926891281825354677754571739535481667937458905087872277850778366385831914425287368584019687241245776718109336978819854031189094598534181017194266918028729002220957570270964980538436966751206214168816315950790228117898967781722749587944648538233822528482425218576644754212389121904050797065139268398056969406025424360555893013262335688674619165293565873418270680036679298179026749578190520231739240257909654362889882695348697942036013223335907075291640906818193538018901961455231777640158858195830925705543927432852334785705046939665351525792173244289730320857138774658120606973118975758534659777113479488048703043305089852414238070185692763877930800513922427050980254798232655369773591616771498176597983233874495282126446624506263368740330234457604345336537152398966362810946552414534140747255456621227659690817358585561902133895626475735288656645154794068326801024376997645474473145721458727243920239732574122468889425037616105224050113926344026631663932279981868045169730828772869143436780915891187900137494451809703262468421148050943873039303202047737748915731723231822378953242698471700234367285116522264087206038262743704717456090276159101933044363109929213325806949587987182996617267643854829936163334651406793222573211192722057673840969957152015051594409568867596872835301818544334719688754806714555416892462284505745559631305944653319798694426046551695720221660262586626402396834556569968796853570539048205527239719545583117701053736282930223781871093075856734460068312709221250855758348888720989985117175133446490615396660901007620121306641287778990609421202220002116894109081991850875341724918620828001364062800705144353665408669637198423209392746518220745932886514166145184622190456904076498368728613035699083227584632790331596763596063917915304328079044377594783828910828336364523758750004189684609883641823813318679506263877658971662126000656038535413450582665796736415238256090373698910509763087067320802437922633172495570809450683109990875591362012159215927169737313750717928486915896820149837820703968875437094628485582810351075687050065789250921032851811991580210197705135592760905003955475112042005863633655363488412957992572053943238118540702198887436273282704757652037873199499375255326640719775388917644114737959181779867914679547936393020520173098111422434522053953541395110773211834894660335324082450731517038299784479032441714006648358679947556880271274313419726956156108633666637242439580377500524050340335627508118918517013668341264000799585449671243351084086653192210118707695040388659276707093390572890921784888821545785311288208498331666702283711506995572735812158073491584958364393766343287256924598156441628336602091385806365230544523806643858476152016771780539798814768163439447241231680318399030629012459789835338547755262328811979117392887763739257457924938040750940530629588147323371615876166480115562290273395230744814367350156778504868120905745662178277700668507926058204516158479878680006075766740093681482297341458682021868589111943682744755144424765818401048248403617799786092821530921552236813185933860000321732384733236940886991702517532593421993861235228077224139147600585984993169155908073385744342590207724431372294925715026345730506833415286594293357772057716259459580813154742884149519042250867984003408780460010857115002455322841702206564028831864028157707551636293740787893076329410519552039782228891304813583624731529587910077558550338267390554832236277484807577961365507201978339300437703588311459396663657254452349077497963803768791958078749392382159419502207429479319269255243118295897520878574648421132809360222624905794219013474199944914039326465408661058130976558621796164870483650506446496359872669155745444322903285474578576849097014679736785342089607778294941934523599131694580567142172734186564221363720112141128384525667198129271829238646538953495850711586409609540738129651020543014274823238686633369952934996466247238180156323794586383385627194919695938916338777799464824074319938877424024720321614520084149685247766848824652520007779575354332514132227711161952246502905226904084546491128571453901434881290668404709690886025077440303091051510082586820453353471562818921909028721372066799477122562139412467912386305897069466478306581141218156596088669977278026109345866711216250542920351970010488731842810975030520032329605167054755057913252637718960382149721850252821494604205517889762371340734956558605562275426361103102934554155232935344522529081784278276629438050402081744244581206424400819704645326096951070796255462337918340193103506428269507366364613525821772700808997631919728079660555702727315082135725941005705881765964432594783879846109394611016808759594326915830915198848486537107805650842191131475567671975360834788660072551568903643260599399873368761293858819224546496210739942147668106577851574979055117017676807986158726282581806158731771513358238567959453767875868637179773864350529274530364286921179581887097841862767064862060083507427528362144263710100641357665537972103557938002693860760841749235231263638054784063838210138256063741884321047966553948102976486948121817564152162782926904741737756946350001971986660324992419210940169156584238738485778943728326396124412415195099061819567191188801554201628686984135073340782639946047363696661135922490346888020623504601066318832453253029328781551716252169916495961213176804942319122465584479903972535600390006328813011581008218786381950504489774852149088986139704018615766920895860195473597213316996140593077440834677748589714869286514177222200225785255243972830309727657913126821626448210702694334334339577221184745208413246308016788584243618933882412704107289549080980964142174295203451997671932826314865772134380395129093740368991020082706705004599711555452010350022270293103676308002396502166139883938737269488265960669331713501229087939120815400603580482615244860447141069054385984810341058485102285325224273984440875555005629188756470423184530331743990070816178456586594857905543078327481029192261927335830030475362936467623916422420731170460974752391756622408457605155316499735675066080975449587156079506742637782629861231420003560432655866049586398912463295773898445769418638972018634853691229611001136804765594068731432606852519115479722540017828431394903335645390126230310226147002773355200553440920190286951182679251666090850753187853597974178514222985755042503516234861702715919699166408070804097345526777547440417595670384333572146277986505033138085531124065786829400142476548706683839859251111984324074803645164890197191009262596478083993970997101337120043035568958682786064363188263831053667627306815597880455130223363110470734455404700329626609318090415228307322379492124159885727806815516784987625156963134516423121872828616245746610939496414076931275687842331640953022187538550588306975342839769455289630863407213126145583958882044554115977327778707142434362177148272225162085925331576961899318350860898061052367841761217770094030254545587677477305511246890817691165985602409775937218764825058466157642022300476886468638505298711624704751374731786092753519972785761571821415573674899171652168488112048937023573260625256257206912286569759389852710001145893328873235343148799928612752601952315850483183091202090597448917780268509960257445598218388163956171801582233163200889184997552257794600799395676621892698229446537268606428588759860524210182224082566629558071503982480752589928156671811820700949623679052065987876830429178880298993308430628373322574168341711092971784312117672265769742522765321585176943504856505117018974309388962154669253302132584561874190461979213836545684903979722025411682864821241666454168837829548437177883334332727538029908426639223809159015802620260239135211063600918436489404330744649955000913992269664055175898618002775028739049796830820994560243981141191944703830516852413872773095674027723392161363333692694721039789480453013362612156701137517828364950476324219829776900280235300364329771207909319163688560769231778906311040075203124239080284544008057520745865388869731221199897827739580678613589477405678150049999831132338339208824336883979030528062701362174553312567984087985884628787766461403724103608190001119299172262670196016243948257390619902102377384431757021165348671756413476992122921582053453816624551387440749476352614680339623476598933104667717356656160482067398811239733529603290109878126075963579021016687737440366659005989813390017828247116206054961235256254604378970920550897837951250382915348172178686462803918368895723686401867096196888847171291044946253681887424170045301786208044455018628824868490756128065215099554887911308610247043315886856320992415370530779357153064594902166410458949346647452334964576527007274757048076416643187605048857821708467139659314642975698505691555233892139359561078766184173392356902763648977457506770902742861839002894232992819252668039142212863551564422070323393801857485108198614775967557802005526359098506141085336169581119035585964232171394426029594329118904436446953056703253911298929492650012481644790937026257365163616050068587189476856458479648961869445979067639667057313913067196754232644530467098947507931818539116327903165232410382659869904153542110616792990406968237598018827515095617976243200102018552051263189134265659474738269670269478030363783601464792197555652288975526005980427991775785957659530590044441866951234112924716486701791613347813451958640894623440559274269654076281407632053584804717214055937216091202188217597163760977445243536765005822457543616283551034947357147016537070185782500938146874078954012129567635238154370671671811036497288526429718324592438522319223568256706544992184277737959723187870872628744180853851144601226874942387521778900323460659750135726339246703836293891007116524422634818327591789188790464631719299378283219110562685398622764247688524275082400694034001838401709354184943048581083313836393044039177785581441804443813743487286019779753834967351567160446688702095718459616211970318484208820124928176573349925320371295822021108535366374284721462663021051442830116349380476952748495453943085118198339618302598589413898499539537430396420380231338888355129354768162954084746011450725337502410634161490530227780481740368333406005230437055822711384051694326208347463279103536953824541981294339746507935364926996409112745483623041898263882417296500026344043540746371916433690901291087818726734869421013833452527302766283264112589412173410423361526479603377421554768957422842491870629863664761420705638192371083059582145743774132453905653762719115940806557299056879027214252239825624295989931198114585651265052725091083593955022268264648300512289777052497042142470898894280457700720057940179203051571927522644826515858920103717847810793403371736495159634304677238009560029156452007596586395270448704881976831243193872453691164724045207000493039267415452039888060383917624936493248790985845485186925299309528586903678112518252161953061051669039115365926351930794989335536205270586232982434630361375758173947320815936254408392215286529226372854146828724660212665385861248047945989349855498263201183177904705562380928552190354028918307100375945040368472285038935727849385101154002671366093958905865037613002191190535359906991512346431556645251379174784803589398588620118318262131865709321404143693477397238950531961194082171296627784527437737808401036487257284237505592915026602768970050376233756791317376066529640119469155028178166840187145241381328256459022049651737926676636101381181294981364654939225719794606547386275632099293920905134326280758540300779831098402607617371794935662362770510487713609532872175204152213326407333177067789366867171592825920260488234383056853017416411288949539050423029524775660133613422392526148761983652829816515449844942730616865430144483543831104081829945319303177405388412637740011639170783010006131409109211767407957184533648000305508972300447660717523699594872546154129558146402744308782627167169504784323904127220039281223966447223415021656026722852103941877228904422955426311887530085187908571661941650468077608325214321125016401456963552647564445395843503290460100728838051826060361077388766613754695064422903777304727993701257949816967117315878572326058188277750095921850310742563546618123956018388162794896926898401033404153277963612457878381732531262401627371779720077844610988400531462240141801711168111632237860022862423332341109911100010888054878598963433304249518321974797677896423252262246058690225593568884493753740957444964155454181643353173396476648089372634706264434511460859662385746012352906416943661675525497754123260314855962612860732804281504879460314084616849954224477935098661350426821644038522512564189602285312843260584778466600463515946117956736448142467218797033972724901370675592808377628810908678875817722291440671593382907911979984988898599906007574540636749607881510358933303021091871124239245038289529010472880114455622733741647160776901609895177289679782978156109166058806902592369990578451943499122543174872537414312770837378556152001729367318283070976546936172475039461094176309735174679417599315325276890378694630901258433992018055315978948479135303144133615886618820699603113058339408829806186379622050383764903796004221561046494585851562213525026363201028424518113867156672655685863131376417521839304260641065061255251052000790021658575202020188573591787034452961223419072704359310390777138198325281217951157332074807305598861566279338855242071961016214367138570995995042993145324395743858247795109762992192504313288591410350237352287103214527340299490182309079662916657656424549574029853905601514671232480367301943106011889779783077219271683987284401260825437535022536545607876187056463144120308536244469193212413867068894311988473027536592395181752318690682493203777524456539782841836139713403699752889537421699098230609082182320197809710925662461208269257454419751572026325155973979088364728398664328055276864606398851300494134623842295308322119276113435064661713477954068444675006473975960588723452648291519409863501664774914635369806978042660209987722109940252944349991314170589587169648745355830677060295362352276813493822746614437104874949941801802541271698390945492940519050559257692661856487952423801223912412449095795665551021515638144539578671722157791976960037900202531438088785504166274449488263524538415170298714993210374112580882353347093674431023736294492110363826423459778344474987687151176172404480985934166711115850197522887587590313889638015330983732920678208425462370623516748348396620698733823592091235150772414868853669551508077202459421032479289798285918557210329348305430526824487115788739205825939277649743925380301381619831824440566258649845909171958851435170238333554579653984905465640510586043008928687676722241913685638560159855173124274024564678016899873933077164915485105981561314368969481701391932680483564225738947246175926002597362660707650603587298932957087500663160673111631468600677301948633402433986173860034096267913370767165781914005653468807269986551905767927779505743439140202317258100488646140689748944764224495058050246675714464886675163805549275719872860566156099771345785476911233285189786935498718529960617972202510251737749676660374230074220544047056895051342850104087546441450252552180423455416051572745644909228111603176918292013372922285819735189703285022527098222762418064203765585937011708737144207792447773052305337897443982361023319210221439557234766653192269998249151884599236763257387119259925382067926006427247665529668321472352701891062043387397984184130372560563418233605440006434148060905280046053842152609646867814760239325348085522767547170402266546060102493655874684506376523826995116052166018733616319963222114340178565828649991625194514785762417324678783800260869703295525654647780093308269259205228320716267920689273149586293585947960839019322507840814014302753713339597610343888308013548693462149251893881272285381548354159586166052355873008443941585341038858247128653516300711322548851279052952485945416642158615006545599852890163202216501412911339697396293762963378219686310988102193080125855972455426516765989231612149548619236790034757482733100793844408876599798268833546887483373983855007495585063947654483648932477264153402358595391969226145594478621788917313276999541018256377171729312999013278320450479348616272514427426660402936929131243560648354708614373036711705516892526594838300277110565448463077004527253790679764363710903908639210639482283712682314015034272285639058837020022673015731803081532324366600380634220678957580088286455237607948903958818827345451271205308133690989959054895688460426257098306728404782927781649385405289942311966215652581448977124359916189581371351125657584751879496923865263559610929843719406760667100801317189885537619214969652529543219165193962532518688569986948338256043335105707193485389321726821132239486278470678426956261962527473484331795451611125196371487317006410103628628697758636934500878925368729055196523404986600263569768594805748475197429856402720042747976698769366508627509796979420466770224269359089594827625375020303135027561577833320605336903653152396441343321392332065848337274017740842655529034913200284748763172652652213937659383063072188404398856431927446461771203767754788399906276676067879207508092652481088534763136507032836218934079825779584216453820025630959252035695684665319579028392264326944871468446047624520524521705924374701273240225946235312044349396477686815014539602623509774666931107072181833444254308459394233227379060781590810119228748642379020211298114025434442361624305844226487062190022431723566075040463859775909439061041927063538320739626402335021861452299535673977407184336456686270527222974279633909034687881015781662008819931015117926384642030810982604716256556298926145367961752444384538909380526666227782079757522254625396541788883249443371753642497179364247029108711495874895297686263828369306762829979001842132535883212300544364609662593502783825853976750403665215554658500283292015086450017230065117962762208281622896042176994440883324026144346539594470438598377784881656497356862193874504656327409698993381509722382888923648114450170195400383668849515988341128855527575949161037747398326230835533653642983472892363355430777524931630232534392880911260892898024209836991579700736467131180421420508062245321516587237262028171381730626978520567262888317726412445942640365938620985634901477964540379057378284827012728352395882121340050614339107522710497941126922297300428059935512798119416349570157406298240899785568761275087738142151150171954366144025127120416788738015384282475750078440262831859453776459906154770432179989279985052298645116051718890013204411579191248441817115841925562491093531312247645576040674993159557880367989444177446361090192661328712443823878963133785841448087633738236490845940113653323259234207885409012145869419476790122646179432787675829824126493669626782458985938388617713613385899963126756366401129198513824115928171188952423823973233718777823154121826211396116213986518531619816861881195651365328973327214814323173200945989105515749386605360766699957160944006149987156483762863072535903370740388398924146022679418215620442272226249369997057909992283759352826908438248435904808781111188783865032869698854686063327549450987579225275412424431009240489402013855091892333903117799237943657612456306120070874282017864847506570838948539997826818512175273450683367831910860430175520061162007587402251771169646328502017750052750945830491989679752583080502302846106105414054807993725922552553721068345999704100435285919452804196844617091399870235178011101175805750761373068134793255754955314468413448931682518767627887689318952718652456216645117353999500939946040179557345475290718992809309387198017203977271290906791320821715440489065075662993412767267509847825716198685597918327045779567701115244402392144256158637000035590975841781955854420755632604036790485195720190209407160099327906886698671813741441852370342363823525039745604732207305596522607340115309927469224132060936429379572844983081566849944992365603267181520059115371183073730854111175377975568144911236135085937956496783006190344289950037269513225572741419274501069645741871376355556368668598494097833933714076794876307496662956063733770287929574192752350093542858236389463731417286861551524894181283045777026815329125920390238668690965085977841929371847094613367687407937490001395730544331111542932539467011105990563384670626311948421677227671660603051229700004508183955586331627453916096883892220736294686837408846133856603773112328292335717143820112838400693806071396538427130964203076293918191740235584236167019514962159701178823647297200380793053730930248210144970090634650072985854688647184274684807015049639035693038455296466416642007135697487782185365116585849685395344563722199590553850476964773387871229530328111062179800884168472398882504959148185663050906982219255235437655149698647642583551928499200325909289101083196764481283280681682176804688582594160794996370280723837582110300466196500783861865533597207242727536138175740553858703818896837957056382754115477372701883758058831864749770108361137225996393582115375949364259040292746359083493549419290213722349283398374221336687366208670625813810307505990449540451970777075456535393019691838201289429057709221913474619082855777971042463453259136087217742821142810550880272432927660398103328067500475881273602293136573491617838507234813690975868784114373745062857471306222654593817776441705825872993667735110780598277304771586985303610934773322754494418883221150755389449918663002896307364520461028893634720383839880916642266573009848894578072343766637552273208816170358745756836230051939880566847025033253538428759264646723861466922065322523718954446561657199190710940469942812622233736402175398115840668451526185015835338392043397493637130183073465550181282054282521101757215977335790485956062410038765251352036105916385126204054466387247510306647673138513141608745566604014536816756299756248921730993982484411570437910193340171734943753030532453397613165926098205647748700800519769560467112978454056881151106002278424201084274188212854206196794874829581790957928324302143394033131257636925172400382164997179363019398607016248242414005900508683657670067874097891276301387336751353354801317748542057565942708847881328274216341354804860095467118256411411344518558905271042762482485127420906687884311219311462605930408603774470480373006303904621034239203057192489408516327560340052331703278198739715938144954626455606587819649371606375872636488990209678830096057131847846758469306690093839225200233768921684944084461018716451812192020272325966821967141593285711393970191245651426630578945631718127348278123440755500924519934986136223866092080104828972185498959730722163005207946957938886810777749995599810577742469421798775333215773862877421227579297131238851658830306140440490528060631233703018672983476380295373445074226461142739640052119299009685200747351803283820785590562903724623970117210325987195790226026204502901821498793199024877605982061658278906230328107316558174118612932197538866770937613516532362645117409900886447629195978765499119586960157267086953338012754602635307812013017024687408011586973891820643277248059542792264902529050213140823300428297588105711081530231093631792886058708625209436207626269317596019045341775501737669440899669370844288128599288427636810834108755757547833899431867870825111119723406373631594247259948567288447764857818581070242125859715538998316920153735987308430173332389263474538154685562971271848995917585759018903966352351190929759886564992880412675552311411126170104187274625006677419879014917396254534647655278738038799839573100777880269708121679636952986553733807245844030512590157553458723893494967370067547475832425812406168067346742282653810609544702125277548213161444798798348902025851503655573157216891151668229419467402410754288393237307882311199557726755020746261477292071517549798218105316893834039273799932128743444374775638750341565928106003705362932751521559727542441663006931091470823114788702509564717720203499391559481899566076063140370273819146224818535870551789501163650937768862913440657472623315122509704231965882641569272069527346742772105382788838759807658639979795609876793798097373823603034589317037351015518290105207215071202060064396953512045395215254138537719112571035739328708757734399381792323572592268382507234819930680988929696301171073490352578905078387874418232641974524455734480238192844254220177144055428287473720526785882957057285508388743787018465690334505919895943499400559893545453849278766881629122711405029512758562689187379274783345542639737545753067414915429293570576628458677965393682722900643084449408762858780042771498373194667286161873686788852345008878568732405582272567883154595286520531583891147314791570115307671171903583861588722131456014003462008357756774598944639758933866339500069675627440461600386217466360791446554807301384062370180736338530165376099979457500364822950259850533588309581001017055557744975533526548664690295206100882631669159665207980388050326897685420163547456492737413303352131527108443824581581135717959807563276576937156029078742965387778041517523937678937488485419610121325091885049944952130944418029633413831060102752363369762061605020137482146877525616474760437883871826651582607149478939314436535811644789430395824569699065788607795697212151334152656076237221607734346746656006021725037030063778472224874932412003027633574850960798688862740922587805808907073159646637807231272375805713620526271651108344705650801739322057127814139789917452888248375652778959915270357215409456060894075309028522758694588446001154965781140420645698583167060811339633102361067726348297222205741644778321670275487619449804272468029246361002765102625914244963848652283008631328930294091184426824063043543666585703216591265822915024311753684703006918627135981036932897323704648623097467636764389273679721577860163152779726433207421758550546927952444987744781651254986450364055113732335094155586057363246910483787996817739168423385186646562079667396902399761616361173663774227232708148257064892082277416030319479050118068115038608184940609450088565411305312666963675152775618166767742271049919715733252454827788624640350097880408332540090699861138951301738524558796083507120004935975354413351959610790517728243773213785497799690254958227756353025052285465767940998073079070284599779510239709259485846684810984793492318121779901346864640060668089146577063062504866274323847575360791589730583808777893201348305141982354863155291611235837790843338915237976078663457731682567048297600260814681873171190943164096522945894711912409969910343679479999224351593308094224111394838938269213105870542683447317736217132547543133817631477718856925944066372079219148762926704350838146590337399907193095360509208888256929106366420761448700881377426691003418140525520608542009896130937005302399491502953396628229816869006167573725307598137135535585585034305981219201731750754162492429793632427907652978278187319141496597907882938620831241248137713101082702100926654202475334835982379295873295834645400830567563864132409718977907420392220719142830674031492215508878691272158898524658187284118155111184104126281560894126680926819036372319996742666070552782720603633307791951585176645315330671374487054518781754284932516676107195188922613393821420657867245898984000338970241058566042184738439525436041312980984802010974796393568342167692963445207861061865014205804501959786321940232476225486326875942609094145200409381920176593705936240734719487179376964692504152917820029140510548319376702949115803618118646349604869966456324998993894397462512024087771996247860728737836978576482429620705382161732613939808279453023319187121850635273527754683456785960762592274653586052504446616388427066034747443692743692680782919579115489250056732491935314094278546686207473542155547638055206034112009749850049939111310903096593623805201368644463335363433281125688811463961496443572556514122100446849049415123968926913047936682468054550610923416557697866383317297924205457411605078321867808939824305908776885658999777593603817770995659815009736532394459615685926521697600207682545375564807735987460424425050490113016582319680221108916169849051613544842802847392790593073090755294989797888974286217201142981816520494926888768518221498408016202414014315801584310994567442717719253685376601314577010421256368031080196599504298299175808334399024273134325980246392555661426438479903488701832611270192258257428561208957599938438764526465453736977982122973913549369981129371596607823920035686666705838477674603057147782183726786005828953670601557770495407489535124233252347065093938426858496406343815466189640142792494364187094378923516521718596043426579692692530678118636771308487975289625955904843498580292379530444566840636255041054635675301928994407134815038714083498726101327350871957300659246764936761332394191702696408196834408058634425332639448955795839915582535631457371964263986263550853310806225478294298669303588453489577878690124438801087003170410527263985739486082014184674461410157707528189042182759666799945219129132499372963129290135129048187776295118418195680945449636945938752129441205956633219125844148853116730198900588084114165288141035173465594127317899526223004840785684611861301669241863468011125355741782806077876925795464910525999075500863812860121208646031568605852411737228332760778281298348065516421383134963334710622257993756683847122890727630671004147030374858708017677149797508444811873141871047393710794975657100469701223763221471643211208322957734412325623400228490719785080419712532074893667948935036315961136301633142445195874437527927305861375793838370114481219202067597266790169267330505426170607081214575587988424574830724148824543806982512099945398032935026511571767300264615378763667998917376499874768942754129777002132536872206572613857500728804650043216057587533848727859229429685008611781988849059732593264367720261338587242340380724551907156138765987202806022494432145033256499171410744487289906168526423013298608454103166733035139401946654190226441171893784247900039654856395027188790408963858382824084435085119834670845647149348185006827605089798698068299864294547075026862858175403376834653089405323801939774849665702191361787076184639491528417664031678575924022146354156617380487741791789213479078571314023836812248891840767918445858881144971780527183005765459433950289361734202927840269282308979704813829154762639021584886300424475871433438581859771097604593674090675465302346537733636297121673651061088101141199467366924092786012573256119204623512534551245884624337319866417329745968392520598308422385279003579751599793107792772700862765953043024627827658486976592265878441864418970607625021214769009580136652620430490761426870091133822639901062287519766606926006541283329170654488396958591017057190645411545425700322253115359809461725121689772856470468390660844645524624030093880395661716171812140633904547178670833178596042542436379845163794711626032011303269851692999112932197662749599836236914300307284475642229965312110436573346532626946713082913984714630607270064631611431068327359026986524052385615352790746526853923616835823583514103443706182474537560379204525016332222354406313870674107661295747948781204694952091505865555197946027134812204103756279165995809385050132352003108555189173687895413531530149822419928230104909492012817742050218698129403847413612332541783103649312203555237568472552193742659827834359023718219898775211615116881662328895437101289947756398448470423744767569335434369487817404980874385420823602160806479992036453580676534148476863058794797480658120528155985220337765422489675965948262263006485027473101199717410120012980162621986586450857541297063216052129052964267601189392931417121583252118921341620489552333781733892577548496546576691350993367968649842075987567881795751440515875227642856828735388398152770611448012100432727281220488196228802923510218330698267492618633232696490986361857455719612849606297605744270559867842649348526085665762905762703872341067828313835106274174868288215387314981171792360695990411986827846348020286690134745335350645450224298033124283575179415656917544468620246786560105542977625269511115290745894229390652954949477130537946595495313051825984118994226274940653270417582412574173325018405473115242846307770230899842739223843280507942866234434092354982586570283650458419098007142554523462184950794847939916597350896433095680098240759464822452682330055364548917093285204371414910079083906206773243249500991697315085521262760618017680100594723343571497008886251681727793011912795444490031886240003889714009673679616022996971752091232526527489872048244226342754778580835268169520440647906684149931196822910313582674467074411219812619613409891765269679667481660403166142237845038554923677795088545062010469993568678112892747402973448587761329368953535906643580336110752796307598742315150052963773646126693366044549641299680088979001756295903174888033801989986608368295943951860281273936329721942692561116828118049194391858570326996920380970287909092325534596230421413484001389200020515179420285659799210455084573450735498003309671793010243946909561366945892597641882851640439279313851381520386991073915553373735392441039267059521570345997283121314295232112600245527850559668279327772444950272891952288186288915500571945783732867343692177679649273118907040849509488516964994431981494942175378415962654282667503573845811655908510096690313847891006289034757608657572108467596561314393762215730672722838518522759334366670702277060701990912111028754342623544562617695503273860346774308008536850540275988626579933755584190825957096780055430117568582921947131651197540225495087880218152258692289955757511389500867773708040809886399653471786907321573205264655627376240958998587710814628588806839802744476423694207001467727284510595052665177433558563581478870368366077046432595703452867785984133543034892372088134145546220014171049062097554059796656104805210043385682934220160332360559206394953930032602192001714927987266052442233671077709545044695370198215384103440586568648550296174093793628133986131964102785876675435819037628873324666909288419190336013966421698871296087024654783096889572884601369143491726823899220278379267843648627145799508332702776586994306732265824541678635313579086654286167282786459327603136667874207664610984303234600289745691590401081460084525315404707499504320884778815501819856681854513649791238671396169875681160368582887072866694092919898206445580580228474491012604010160499184094945591754633860311961269672388372676328994659733246225297621500593289083097542666019731429195202177428617616347579718751569097829352880069327583210675218110877925791364138373374438060604057875554434501812358822190965152488113709946945585595743635886590218300262573812787786490651822550956028794799645233732540103561026678594722943280942668522970718516076965266534696384182439214808724598554990634893686868207779446176192368074220329180369598881839277955873221458612320374729067108702818164690307858381178374093533407784721926726538636218400165004656998817669701092241838800806367865343267281800436813501931065951278147639307723215911236543806492521627969049351634555766310881084877819694126343069681648279347354782948528658019488016507451795868790297025864198879258460631140002746749355238607342716632785210116205913959970530461696452136793618707173670706341444392852075660579121849067950435269255086229073721767892494692577235021744757895318783618471779108438059163449726761191367584598326479163492589081287840174300651217384746358296562320889678866410439244858289841629939094208570870475621772187952459939740050392552636051085992978084527221203162702161610921174787585943955022354642306638852934320814935051722334413660768076017075051622612221164410032034037753497707566653836495358799069574381471116765641538168551198881495374126406698897265135642746048983023567288193162512374160300553455940126074090696759944388581238184464200775001418954178369548723526047221245058391776437535710467045523361171092423865210322122636002228409028532549708688896991520194098499192221703556503261817719457015966994901100395082426303073894583448791951465135808474570674984830218332640104273405725107254745996761519114431438805402375126597568119001702906476617898127652772846956514352702538175102212006539632898306028912101922680954184314264326948186646085220600649646732856269634939838147281655925168175753825681650112432368632870356800856284164631484268374690399608647945433662994145749835484881492603366658846976833204268603362074884664409213214069722470973461411558373006494142048280737993672605652771427243446073358099095907638231724870810303019784335465293328222112990152028255555051141163417627031646713858763317171867198966867519559289880452242499568902161905539305108995961212704810290327072937301164684295750912687271311076283974175614696504979483907386599311712521944171114677738745800786798172864290890164860966379809147742322109270696729221314199767241743306937745092578166012807100309319391217465974709408339109226442001900375053084530140257685106194216973577551508730849187043698488325268568021908618450651084317895051549909971721067783508153963960423316872489399896265404437524734457133315308993938215442693362029667319423882590768908676950804801715101941104292002961651609959192979321985884363049455676683007162070920515539816107843417509775815061905640602330113624880109431146501745390064146978641284285205827667167388187625107509753096586654007677178991864681950892894956777944505355680994251479939482372873101468870289163384057718601085247300522453238526747719219099243913126786556541940207442567472710093417592260662740235562239276899335930371574326668582706354293009190156549086345025433078398590073585567786690083946521416505518770497049485124385696693647318458463724747925166350799785179251820158991106940877575327382396012987693149898406767474930853356403600039252783615875972218212141402795323148014330602446920879783763783621720101008436890463670491634401115601561825415138188853855664519707141689699226538360948092541525481286860339135750013477517138189743273882015787049427354611805155001634053824639965357333773835016059336855256152622528042274207674555874543164494691045850589125121239317528697512736611774713737758814061401555574299358352796653951273951880356204923403221561719683626103065372147826772000070323493284679748149895869949848563204262190054112858353667401806860347153607145605027616446188044741179686449116702250103134782315106051817782757569602143988534710490940248236998401121593861527579152533903977671670074763948853638993029328978881563327377619320033296949874505405223114279022915077012987638662423143220857779905820651693846476202429342974204377204630335220181263100832593685785288491067582168610527725434176866768058817675340281509365885139936883895304298267630359487860642983103795100572584094333573878704567964025150953977645557581609218368889983131234048207341660999566863884556672610957059974136787717424742701379585569490719134352048088374000108833238703810598131131950651968613336583953044922091571152006481377897135387159713071472221251392600781618667674922536931959937711935872528690649631534588935016507475676241810446282781575704827598668775385815159358081559565117290496512263808541450961030825944530605311008215629546136784786813754689883796976448408206946717672591903054228668515954318655480279724024471857932260594015268824150076114687661744880014967496969055448883566640614734672704294341610749987974622516116459195861835912846883328027658748238229986869415553563635954862488121719092257079486163998052920706976927481008260283308028899723417807856276959760319233164615644817387555891132256229819751669202572832985854104294023575130198715642742207437455774117240897360993519978035753827729695476236136419933449655159891607536685143918096432644451596626245430355281178008153032164617484797618453219273229881518057556328472410373201247597397964359810251341673004191946648447191035690852201085834125168307904406763960483226246033677009360259025792425135191057058964003335230327094133588298062935540597241025313795689430247819252590737666983811123930555312260459736534876255973866203111213705247594001415379716186261343975837314099557384487170536875898282986285059482737424970637405739544010062851975992962169665480507449370233623216430034622931091932020866491948332038393862098351047334646676589469025491770723705455170214145786335687466782272687590226284526311388509719861519935517125963096649796913755859762713910157486419627055694018879880639193933718197782341198406604809186471037812059161774605642994447708000418502114306972681992487971029722761063890990693440928424887101959354364996923583638183492415235373924909940909194885082334537932712843334980965141641777138402918325976768882145461243381630205023883302941317152187546394558446412053307404786277299739386144809409435034017806971752673483234203882418685158476139060980371131409778927540572742961194028461694632096497078846398061421431261435740387988449876931670581049255047966092371657313107093128255804629764181348711122918065187773826634289360729655870284841178890439141393863080386452823468909694695782507510452399488858847275711058414307125565950420670511079928252009381612079258510413885128650717549729877847165291940600636270489744907219310630754682025761712704455939616616522577695048514545191157148353727909656346209090551210839173441293948394301849388328546821695191631151471119273681567956467226392431629345753456249251073752671990992485435094116447069223549101930503289957968684831140799682287668070896993498447160130017320150310748000898230733763166562106028189481652578538215932571542887250339094735941580078411346917781174522063421682492338293626725388208695105072576422310018174346305808257644953590077052682390221548631927832571875689188404997635391913800021699166525797679064423404592081998060974015027813940315674877279186301117030202260788714350797168711754356633871551302048316160163242280140822029613449005368889749328235357753499824506245608600334736149872772308538698028289992714007386020540359037121535120829219471531222872331350269350832000684212944431031614876144861267606805505941087193577885810361568635115386453060345215706113064948832944056144051132084614047554743872353168987959852744110014875872958561169712877999807194979227648054258396100074676600987346796546563599455130328038848577481761200734688093791187574293942033287073329693047768015077512311801820502038809911510085278063972991836618409454283593563065834729738653489473797959805517473124373897951670872126431788679091941550600660303926788993857326762745931514793235171171017264589437186525267275091404065384277064727312454545155456210568510020431762526542918988555353273336827188340219029640094154861565286259934096160690808053454819008367418978196739681595518164125722858412057398863099472923622170189463713083324583848307648580717240396102914424746252024418695469823268177680842194711986763218037025928460065885520075232555995456040602071580438560200551624994299965070550405636863304332882302416544936990369885450374403826246885393579699502792903889923821679635948870788329249423290420353994136066436830618964368685873858143077364430565611876925473483980193283108185261254641382970980669564967237683576395920051732226683753599987390373015113730774891442764160020911594351148520605707475538070058015915865234143014701677395250054907869902798235519186881908998558617421428128301237376587388416157897762174231736001124642056795536118153347659873907979040454827325867386302229267958037674192641881723308239727571380595821651227867457420821085304422208582907501572550029164258291427622838550604220633199345580263730519078048385079930545014390960298779016133989820203698460686146726622227735866768151546283578742931279179391170470462633490637929249549899681377817111058476048502050158759755446594680057927572916803452184519575693792679924416999902190858506414184111862819688914871094165099692551337325886422104132535963339660451318245516836433287378447541736179019984255374458098249570616627115410741934732998332818699251623217677892050471710089279752918403979709605410654162940815629827025197423145810676716374441616270242344628498577975455807746261992637626177595442248518122787638813384411563304280764728698620107859051786235836408000140383286838040650249175849729471132243712865928593646494476503299433357815196488957082528208191686327825660858438896948649074050364375608202655301978661778168086355356464406447001158493224635245618676905147902584657567829968772596824381735307325976407077377238735610448100653809413460167882615700689526360591324095611953039425998731608165457371434908145830228561494006508792650978828221228085455990562728214814670961421699332460930096393825693000049989983308705198162362755026106086697829949557687657398364457563053591461479070845470079256071352043606852517990544246620776286993275482438346700698704420939032738259843740522488796508947528424382393122019014515380892061872043242428805749563438143272175147443438502941082993733488832220703111145226913545027230528469158885303654503376606700365125098210293899638966257371547777894129562599099026218283319991672947151886971440060438331778830762876885090195931239467723960879282657344694451467321598612791064197831074652041291434162066439900135455266771818993406335980741940944810610750435559183828901648262811797999552708669669347359577560807970176586523272101755992315535558108997975889546290365819361148294740860626115243208288898457978921911131219112277775387596635277773621320262073898710384278011756112234003291145516383288570934361261426378295989486411512282869109595990526292689417748302855924496933978453748000428425522830296402534452840271442592795862740977254875040148874164992534310786910942361723949584013421916461153199843376503362931895030978251330661994081185180975383184099052621180201106959957724872986218100424380598938907759773023171988676767833603388396066073514948417171018557531800350274636097349508660695518896222844136437220158742282735747678915120994165769731972280966271366172884969615498007509876565701565726240041336959501685621772214888285167604726587565836447417659428475490490760368675798304469489172735876390217986094539421460888019176365558764769996972252248193582977482830825373760182190997935771115069124820812774691358911459550119700271041785309861098286282330176880235851484303321749074331764547946078403258102866128864428932745077912524102144732025893923732337468648810051817298227481736855130744850888454079371896367473014535664743877351445924562747152110279950216331309621374923107613531435974469832367715907817940300872136924085755951605006509248540127375579900299530885526881585515332533641675758432847125644004642844337237043715747501875639742323210804628863623885322408117257069872326365076119197274315570495338195999801495271658620317616990956240443866144045814217280026044741992623304553366810339527511680418476880735647472456034452027058696764758199470192294151873421112796619888463073283905354381347829675712556904130408910350494052295309202622279475164932251274347962178714051309737037280239490570672864708487490379140454500755079036820663958365670692684483739976017377349045702595469514236027079655800694779421613156012672956902067000561110790931722518233321578967285820001123559598095741115059497143849216003953412186694792059328614877176642216013360661830943798325255294634495294022233384902498844104418141087587196672427460899481858221740895563033101399312895425645870813958789158522069974998601780958373322944852068560986000492585878500791403299565344764799152178637692501749742895589170528196227664765511887493105899877999990384628520621499319683781540105656628325755461063215416042713198679038326260145382101402824795992037979564722785906968378605980055720328157066944906234318605945118393365288813470857819217005108328534774784827018074179065122331589554949377645104339908354436468156541888392918795369455175604797951922770468430783771233264844156656729396877880791739562735102971359615369608060678818657902117702765512493666543920066981706905746934128122511487508810151077197679059082973560674672867628440570555938609981627599877590500161649554153516654264069889725802867136954766119021072874811060098388060047056738127671377952504604402276571664889778311853449316130679958406433046398472899511290905277167434421796187020182130221077687702989974646782895358151402120131809450513146987282959870660172685719751845147516875796285547128971738235647807803267566051727306966513245053330747080597302208959996367674020572108147262695917378991100701629859995986849528640501022446108784396892256864458080271924458141877886357209890858175626666394988672617016664077551457875924420394920942235503766936955514422438306825384746230772530734379078013724952697924165734424143650727407046894667544183795278091563285802924181551417097536117811859296637509549687765500014041923087498104209031904412546460701815700454835470635369823907276462425330878876018609673997090178485139327426313498683210954063954951026568270669025756575809600312592939837970504363046451943546419404103028546233023539916761956960045408516399161418750084383356970842181377220105450353983683151923605029104432466681192545540516674011463890830455203108307851963826964920792615271095090632747387371469663233727854587549741316687839478844172921173372930655364718970297888917871248723788936114710405251987862319634239502914911756964291393058763749652042583686801989990445179512867647595047671660054766477716457006104700274849460773354811754737420728646665256637338091955963699452104925026828077770026845497858905816026006904787568170800067155757360556266035614917597914499512615923827670951672712964747187032681947728261790949648554636989085645268469062046100810339588262534596146910755994806556223070906521429609300924833953850970367022640198630004815208898495905927158762477754408732554822772799207874036941533205188895555582709149076708625756818131897185943871563811057014483181309316539316915571904651230025720276650067019060579542388242452369436316696100320842369637520179762507117527319221401362322419470398681783642456010595288041936074243044739016017617663454186433818183133028369023561480521913740186776594430479227162316558215875417178723204337754227957918857591074408887418365415333027062248794233172479462869723204150342294962827050676758494329416136621728813613138776720456278774797512096902661837879794344875908012850950658927858175761193333040578105223653782038037636004348682018517318238120802176986915944779896137184651545689055660911169749713369755859160427348983578028143125028187332605151086071671256612754396446369668441674970984967158867336858065589650001040960786764864242139375989350341328089109457938415303906808496667071502619539499541406833123694731690692240431600066080115795630639677147526811910481643176195016119896988476168204747198257286547566237820713817817313810661184918920872340122625932235857942945897333165402631344708455836278591386488870856746296830709385853462273188340699888581382503760501029771587356054643602170674226177058845512907396100063037775390414525081581473815450611576807612081404342329678593229220276821159963428007815995789203595652493827377767858978039871292554564701648924394844460934379305985504116236318564875004921343518921516570447833079504469865328938752301649666525291173747611264568016543214488413604704251588503074547398891630279808188257754733926694128902299537699735559662491627536799027320398682586730166653747017797427676144335937715015288792449168480606775503158044566672460023436464722382311568722176857472061117232371220300004190364336524889634735188524170750803030678794584345811379734498469628275784611003791625221395978136294358342121374191695362466694427410909606363682436746392265849302563121642533070723067120813659250422617515655091899987300450385084050038248540693712568205278042881490925466028613320275981484216820893805355639427590742081244718401914975062153189616130394365163042156478557739335204768869508873923877006426099659178268020251074562584679883488271348055361863329672837494280897649797701906625653366652720706283803192975482086586947143422282152508632461818101192266121248476743446774360461586748973568800470551792169186477761106602954195330290060205676835085952496814616887113647771244576638935636289960221550092950400406805638788082527657583411632332792227244430370996108187877234462774316047185968151411543122424033954553667990450300672199531179544864798561999933829707598848446694844595317107078962373833748975808334940212289018024543272316645881214716737042660017713742973065899431428631381033826655707074503759031324677059303901991051358997371570137168272453764384638608754164185456288177562115739158608100894161996130289155885616946483757381136911081934788694660539636931835176024406496641718737158372732525506121871708126501589790468669644464146069720753714881656018387287451792511134988284455601413785758373796616500285901559074814593706751290941486542024139698546059660230731223466101726878049426722157588602077736680818307155960863844516763486139995643566254083326189403061759509598286446607653453566802538011238229119657203539763146124565395542253958091865250037538922274479433401043074013940860486631505316197088953108495145658158419954540472178807770976175913244433969117964656678345100289565113379238961784809857920225717636704066302185641202539317332176415313802269282925780236498168848224501484983827769490307300164176983245863618993513413429143741843833632776559197185521191520638268772933274326343369563822492442046278348315160128194276202193851895095706540935835728409152398293819435455064465842043861688486168901422134315514472980384302917839233380237633636484040113818922625246044213956797698672131491645602433972390943242304113771429593983129895619365104630123963361348494905461170786699941612568734681856766850790719801108287180028656515584596068764147405172904555951982330796746196911769177499313112664415340037953568133662012083123530307959860094975455592397417441382993115261012455841810603524303781020860672447437635426934285077966154390130385640880031231065296337782824482303958705230369253769813093552009534178670908341080323648888499327488599499951041084153878352647269080769650636848641349048025288621684736371016605687051356458629766860350020316536707104467755174998160122895589203826545068080328562908231487625793363688383054558729369118218514032323015256769357190008294982571145540476311020187765085379019036888777152205313566637001321221565785575608598367998478780760311539438087701687331769155465250388751817389638075023110435684452712130033934768851698571165660172989379292973227484218714809006173102462796606484909416677399630981592786500478540078863915169461056211998662542200985211449371214362108561956084835739855747943132471183513091103574553183707232093904303195247937800317044559964623075976779098798975321616707728156328508754370846102015442968605907119018410485332515341264580145844138858673555368869582469544711534404950705834972012374633289222389493467136467683082799732680866733993016969603859463110899363760552883199555072243783914807756870740952266177672061792149812960766930083607514649171554181153184105231406939703309288429527143262094053677172383419990222876854914445682785371405399361712766120227529580787917609913984541122920571211526842156543180973121806701794819189592632926752177023935879560399074714180137832508596263734661183219638924303397330319983281814278480046095738426940796086320992301103628794919278553804523459198418615895262550814732129312255482667789096233715129014166343921636420903313919439976789330600176374608290372809136906984232228762014819853963048317982469889552182485386766435579343618654270981698469023219138647924438099481326970105877558832737468323858360147172753768971508663102333755431378182915494753088674416173972142610234742326788044574393677245780662641006496374277274022044857933193877614091151462591047482123384865550627808698562748847281985522861136034701879520791080554590218060998401520165115382558619479328671876773168694177705073275390009108243334616590354559350982915559624154489610115999426208848195305974811133160988781937657442518451941094622287992911467895697999099912472867759113473608856309016550355977711410449240023785844321394152787293391671981756061622472697160496445163512517357276232730008567028800384227939153334815326757108616940761227517045004598523055578820153053335861474541100911874250612243791051809396489120735895734840868148170932000517076976952336324380181717388501778532522963295708372913432467394266482448840504251168255097202193580872453314870305615607064937632275154753228678605511591028165882300323723020645858391277226781833605332686024264235783747122601094371237566876573802754439384768320541115694222093296462405286073906878814480045453437804835695901555580296106745583305868945290120601954403033900907041179070524590082688666273263772274883024108397895965228434314069538500806894900995631964694971120998030642352071633271237970493839229315308116584667140390984724775244014558678238900345968267583877167056655383098036845642276760928388980536805355486395900038009263831304738299974471738501885063126486340047149743738526574740609480960511308439313785106607150916035160016250531300165381175184918149559383328662625248376229680151670610156558822159479911850939659718726071368331589392717275886568776133410084736342947861541957065043408686916708085646034291134603590647093271006498015733079539393289096371896869181823019089880805824650048216417212782563499519079939005488981678154081299553248555081266319472976943371157881067609592484632985883300905261899019829759170358179768272256643870584283105432407746370121957325032643400531138037209495210456294642722061169977815372830302709366272916567088364782700416315499298926850803400131481483378228796021398229779871848241131205928367718278333629915331522541957854090670389134633112778191127033718767938181905699077995469769499283276514889812062631462052425779478413858000293029492619672802744267928351763153538243207677986792851473460336815832507990551750152740566105113174621937652425556054249586964313878542141639965681489828590512592188969549614386159992002638838206265555773099184934846439953245713361080225230242783507395102997491615414886458898757957798823384967867924214638125133908275874618847204216951677553639422314864208938413839207426465271705403102375227007321809964393506227882068921016396765898221738079985386530736244188001191851702672828339118172105318541762980134324944769789218402492836206291671996489223429712987445510230286846705878354781626633768322720259010785284510585495485750569932054987625673676428837839149867619512967717796318945738772657193024294375677054128120006411917055175782874136128564121851208632137663270544832748988915970500657506188333536268932014217431404128774831205426408175812806036519302445156738063260202477777067847065043595865502523697304528383850643993358292743132351383596680570470426808907232783239149049866048362945994039449565423977628367442208134654898833211219550703064366314672379499316417400831830472012477555014543436601924745080200013083606131578880186442096941319454195953786639929898664210926170419257311354895056946367623129342885330251812794017658499943139243707751802635495486061656777290415746647346148495298958120783172328322187354739242111544332592799211290222397302947886947558040922041723460377242786074731087185624330962260463462397399802761814182756416030483350541525731834323281030485648164219065214723233069634792917396143715831851620518468242979737975677445572412406314248517713783404058012311055232245604990832799282340771670807951086889148550554978971071979277824146191511323068056799240366684937797900117418821240890800084475139019215700699894384051416414640265169786543428419452450862645785162669517198610257229503297737724744897427168257339246904757244259828801727748249968603676719969730387208674689484404823680023199759747518208034783322756393821646590517635050900007872203515382831753691180316848044516494081411361167939633450356166813021442493381789255827849100941298608157866228021522504092381467151876744508019190959939830555712859310979626071788587566098002174650516482464981879408385720550879173021686756026653338067399364167517147260034609440057875804075436105895118776508878107378056548842059900987893493288330298118347099036336938644458847580470775745008874054584888484699650051086882611826743075804448306635552828444501475636758343590117329572678454532815660569557979805875891198406178790120520564309061372652316331580086557011589787250402579057769586825595903684183806320536159645686689340041924503270089630111321750277597089731132978993672349774240762347680740670136487237337475434724033516255623006949109872601559142969254518830773201444550566817980600008070678695792306037634135943644315796562124447461991594049515362131600252733379118758026537008320309509346764594035893946107030599346276990561657345791442422543963110669027371725377733640285488577541392084109913651360572379929825238896164190648504921445163880368620077900965024354584279747927277648552963029566405444957150232030474718319081099540332755017146110164182599775591840009262991783058342885643178255075568362492152080461222376154570217358120272543279497861912563912731906582003410122205672887388503175783617665035819506402676900835367680396887511534075293928974336031271907858074833222867380956461887601786336263485366694044208333030197446467305311920150077117797369237237712303387955686772718074297513500366707300262549118288689701794461127073688318184550832894358627365538009458954400436505140253635405222293997239942102367397572353698048854031949710619312854872044860120695737062327003693019079299761868010457562274784419522778692899462205500467403391013764729894652789422478904675390637607973811226577629887359781969423845949917930708171353619854987065330560609944542641630324317092526830161324434180020350167080894657501579929343370285197447602564632539434293067341949925077644338045308268098781647375244402968218208267339244223864429503125822850911176853230284150772936644022523419200439103493264244651742402362230110822807425914519266500979968138315699592876331214305724362011909727419171471464394148589229573134703479481064433078320091289990708863631047845695519356247927420621626546538679424550695607048526526332320727469472780887565076055696082509883590973522126121047426353968130305009398341394341747439679734149268829242804820761823597644842840608093725449787933956056284666914667244620127845823699254245708033409599861906412894122364573234649700200686057789680348473330412455901427931971826082155630145736143811698979611585034807984532442473928202899058647804626932561766839133094318243656319228832474682469222903452042406208203512514651487125868913013987955585434730998260404421269083177376252474530314383169977963787201698857636872274560134136333345023220570467966497945506783661468325816643305751903238759998959003583897305908137577217441318764103782437300793075525258669638997986459094985235164547374909159195219342657596854880008700429900842288539593461290650938954672404861497415760078171263916124497168031041564468616354932809716144553644749385226057476341314105202788991440067681063668400667555560768804894208498759595915258485772582110455553318257976590875319161854882484322515546030441720316322813530292742821525784727913912225771534619416308813609427260565429888605801730117980838197076702082772675068298080699739772746274824034762711300642450723588766735093868984952171402762135892205391773489407956463119404817201804201865608059469601054467482631598148811169782753866349079025230510454487930024728542405930158233610613755402682665552617353229071923901450157282904134100255192847028823339089352196205062600380390977008703150996326029256168268750646451788982423285203623146963328306579618025834379962116544500220545735424746288672541477701044648738929988884307401667766273756420722429275944459914185237808125640689205341498935533812166805272660768819537565564293999733107819436708429453374778620937101787319166178543713158780182113598713297494516857776381493532969991424527138935282336820220476975066579131626309019262716202599536961978857501207916916946881821649327745266572994386072516266800715356433805079230929346067533390546279363021151961916732220900845695119939766983026526644663762392947511729977509572795188738867344593671807965376432561817579812701469509045895124654675022904633641266136767123580539567388131413220061354086240705514024332757124700066933782922904458352386249021233393937620948889896090961135656481186539850163335848829721293240799572768537964100913426646037272018703561227118181836646604954507153286281141112893757500922289865522589037975269075881531047376224469435430791147848880941584615018713542252242091551729479927760318750514393436012264942210046889157279890179017869967042913861343455294955683162049529525913360352518829252314428555201378739375005788779775447722873907225291302383972852843554118723427265479089609093717668684872229849534357231841904686900469274729874375578207635981022645406642476413274770752731464483620220343908296104906943987060633447401049395050623080697605388851591691077137356045765081477725959583641807761341003849900406590757560943938999773157560974782757078175067110449001022739724759612023110643283798668554441510406187738326879823858682360414093722755838216521235278009085592610907488426674269295146547947209102506280817924592141810445728621486752361470630534302864319126251316623676731485926187098610879246244396771291727444027077013057058596092602754968746913428708537713556177633939004310812266542560786563270663539193107772311448020494745035215299756957896351139627114074918866431619293955248109705486273660898501806130816970552633552185472444976833952522619281394414459536579809934575452341812110983203673247743671434007330309279964531467843437785756126070016463086444425462255192191035031065877611233880174661713245684414064090104019586083413012564302601554578208267166654704396410763557644198239365307904499115773255973876735876119697766133909030527031465039880813332535820695357988811110442125666040216790437347720082539440534866461787666535313350065423836061796026520129501159855757462165741399168486935334585843397973946315695345919873879674055528710435123081545303978253578713661184573380562299966703494563856687883742746664382618085108957898665078760498710191047273234594464129688401620796444516621147715124722695474642879918569194375306210178203397809592294275990748621570331390516802376291407654182018371506688676913953208270867320589897775129900105475976336942087763233008913812857301162269221972452200706935220609195189375275467854640064722668293297792453256189130029399093371114749672458364666835926006663879883224724164792025728271782290831710651058578195364722095336061882990055954887795785883278442655328425114774173707913213343022416856242364772360477519343894740857489464224027013478828236979575635935407228178896895735162791369998734663978426097481122645487956910323607344576362488377753499973164593967145854757635320403787009296865528243673385022414540631286777179150467346084182629788393288247944270956589337446499428230030775425423264019944405197652222813676754155996795256324361249356346176085988919490997662252005126322275206042541397571102455130540677132067839467154505033332519379093614362747123113700640272488555009759045448139543956662702315996924099050047596497266638125491618486945021370016896626008097640834096627729080821269435726076682842016579032840959937875497182979673807671630744271311284703385437839311464052340605661849924457273096163261050912412744642625252673304271839681707059509510785188101972465211934028055574042841150820749548346660983452019914254831520418323887936402539224912682764307419603198109383347067267027948059999211529165893667326094131738653165731248853635911576592700122126337127434231573668663497830925785947385211750273703136562834622930069729503837595379190064008987716526188701396300933876422640146859298899518354689871029561144614635007485377808570995284243747896825157210984220777142492879805192684185373870420402141061578477860440219854155933192889112174928636947544623210715476574823196181406553380378809321458903006486041446160510623676975982650194017919800847364014363870117934597767365518335095220587539863796684061951813052608769587854246436580090696545717085179806366020791661997381027932877597544650783383195247524223567730275357756241341091170421421779330278776220452138352760623044356888139917912111938096713856511534953990278521414886281145098868849655386360146563959970861645252218509636946046416275271901747722878832325767628888298190307542497843775182169275728269467230531593247552026630491103217972774441487974573053375128908854737645473496536649291175862761447257955473924291678597578598185442538873882231065419067702228478522753458293314375550653357511002961998388388258873382790272568144262668710158179687175720990981727181278822497761315528489340749625393177004781082887270573409691260347957927228218185675768555764963151262675531922582198340632104017080750375907711984313397980657395316409258781253869641414762842231434542219546117164544926413332655618218774141431900818455963036970384865744345065717846570988903568126513886125820264126082487273805210269423322688436061973485585980281402501609999395114920908199199648571106045281409772239638593856784783490298284865265959031979489346793413447483047279692889216575312633475911990974995442185967517804848397601714192366601847720030671303765643515499369278899571515219638084406900298545394504897212338278922874818101857258285730290710106447479946406843447001173898372854940617258719588907144657867407595335400046587384906053337033325101691287958284084973266983871780400404466109359052408031702801727010150985429986728647755649764278818099566039978963543943858157411925183776198021283303787729189899499590729485392332918959532871182817639179677670692923641633314833966487037078707758655817492168349124545006047519581398773993866154983015786349657450797941070591852884672240966659328411151160724227911057892023567413256982621406153700598395862545903740909759986879471840936549732067925305900529331658360452199575204229572219444051682365185181324108484848282187735060635071891227245992646903326522624520868236252064071776439295530910161550723990422188811651875702029050715748921491204646848558359508365446538429556329653367367521842217340425711245094906971017662802756421557477957875969115949411603287544632368238591637941210842551688049892472964373085880174971468179956596125784521652773700540888129432390775813892438174182762691842556684781821486521301055559295986808606562187671538536820069438240614323043689920474085895579473356422589554958839690384442449546948729103973684441503318799139551355824572011477374587970289994656644223225970041350737388263727543979873734646964279145674068478439443099950817105023112512545108489370078134920527573965142898634169399499935332270883960518230816090078001651842376665087430102635283681929395032403171787314264937470412342912143964651282222209272227843236439643028438731833129105130059603402379526413487548648580060451896622516415171433638241582408893488498707033236750594047846164552236797284158393821936186987295813426926416788332564248810356542402570588220122213321445477596748691760801873583956461929648523775685165358831894544481214800242202163906055448063571635887543148811452943774695150807952743815473893847840880867828229782475187342460539618649214056696245310263557695227145167987343374449044726279786353849153516768036095878762041761581907943434414619753312380778222729789157418997837153294166609371344079263228350824911399757417845040552408374832027804530097926828992894483209205301381346422354720995507709470338067736862167332958960680390421715610094690227425439427236965582947210515715368581263320358305516730584385498863246936390990352957767049673181367343723945203903891826434778113218996082282204031386819323770961595597059292126741727736294194736842203133634953810996011672563315576659385148859606757088336218994129117771280830032790541067253153341230936388847474489010494917941304663854313507254061456503984473955284587482729831563060204690993570490427298184262519356324623866782676836178717086103688427299469724728819538904366686366029531606175779736592574085740207861243464334800049542384006440509487798025007523273969405951456681128296782404231703053294662352925913250010110013843272141699104139452940843614655551473143903832591914623188745881601274370608620892054076671143031517165741505321944184706794871238050066665620194285104600405009257947794189738186151271065230777256941636803282921189107468184907953861558586226091991681851818596932925442179513190506890371821881871178392856636331532818809852665837809355310499943976851520337191162415590960688258400402892078050207706943993000353040633138020673994475749296920194787391210976311143625864859532210049669803053493617988568146190520686477493125301153687572952807435436872849757073669507742454841219120121014817434486597633646581079789217722484753077850830768114890409443087069418829269291724264981946444749845906284382820513963521129084343361617181417790219455315076659967947310196486018236269319930161577290876153106554109537659294737899416093821501593575646378963034606426897164987353977799360272381442525591799636197521226824677101398714779852921804412410461051079696057929186844120427015419555196528896182719950260975685357201705605582020012181806280798106258641604934015413325358297057515621056468479787681433449343350352489053577525103311386104804822606397856783459971797024583276368565596567914451151175851172727093605854666001710833440917777400301306000550929879056941862527686130136884139840209889517336964345493023094660177577143942867117309762393988425954766053702729635185052344816578638507806657347030576764916830165142002391177284815360115311476471083473900124552356529122342418810450033460261486720129682467445871125137347093676888226333068112139117403307365004200073879702979665952369044875263981773760170009002867249572559235403157594511101030918701248305038492105501710603922708135274207173746769455068775066345472652240004367370766062602824654474354972840281071352727224971079518973724935071460552548634923023287615897160562553468436021580572960235151574376871996905751691933740523034329160821193719266271352777521265739230332748832480257847843271419980166684253541013777091769429698423312006679694426554391980304580859737005853928460997744885845882840979339150612747606662759553314685400143278839641565946217925150373507573302910862720850174192572493310476538018713751468983153158328968003622051878476079865706356679008361555057960568807047802292515973293802995134713180876230529296354137523801515696581452112960102464160783730770289287002399566731748962981186650320447125431285306678109077957099978665185472799187033604636953107564630980319872287166248752730289390609389690343707443673511729875591830230821845691004591014652537682622821265337400987673814200273029520717372915482578434142145771637051649389240985328637144149801786072270698361405780030910044742259481466770197547216166000380339665518486760796302470924811190993681877265298523395681741191945788118053858951457997311998076303929718338449451765287430804476473640541159727848998697277269085935380454585561353390969703831701021135186524114646258729810845133193365414939507473636133569929571438902379691711299205614841185245798042734030129353028793118436658220187542368183571063688813814317038705142391428140923508420658729103945011209904750424497684240085319558837810916600127967175247405957449636655841776762982270649409087288564344168362735122344645216726924710744476873696702222548204118715395296134057053680361627490240130249293838573756878026643752684131994854363516061745666763208674641051530089218194953188671907833584301125838498257294365236187337440085613585110336094959411314888293017807358730263487804592889846106337965940133305690384370696065245838434036591614209180401805643692171865356271444066839438419088118918697965581279442102505790936622608063303195841836834151059734901024027513702885991003055576863565653602570680203539662437409046359623235904052312893521336224218406068004730911224374061792090191273861641654977735629359436206736379746373016580136039459685340538614985072472054149941539584083435796448308698067787153739922148482788597905459720861240520337127801247286272316531771935072471428626651867042628418716760056998361587437302867092776490384655430079153659924726252025569016325033521187767826124187484272666615080418476068385520088004718011368729561498205883771225139134684182641862531266631100859367352172788105293488057308957352475568162823140741479127276825479214291857746940813407892754855635969412313805078724150887784986387820929586911207999775211476128222931861883261896375744448029279125769690681747966685760262185050429520550560991446665504482050046639091410498720254964550152747252733316508944939984465444924519957649673292321768401040150922140685008225642291342932291864794635481259697147974613611863141254078091185899244266579515399533652964256958609699520139235655292085219979911698535177981167274141774843300152129682555487851208853588540588344548630438993219859239029680954104369053053785420633627259702141772134090131645590445805550377704850360206194717141012634709112774253222242774749420538637326871863714116755958391071525670921895482910038275637881633225850148975017097293130539114004480807312061438577567533882270447392406797296089987833277801125598022277511232444923825661697695385089949647232852395165800414467223433677619414881684054478719934958603022948324019185996446342711305458702810799633204929203153195955565624117581947786981781146324449564571040062208444587917536861972879311200021327058007249459298723463167246971125326296147992761013301727270677665466008997385548960956066205205102876997558410131728313450405516650928428074126698086929426043088126017728567328622692165364071346226789252001872064477761350770700178529962834694897124601183290266691808127717703243074996767423091264174559643997539651361120386279418606451078891027008041102094445491748435271273233839839013820965865770409787811638378457107394570958413090934056144793933792216194362164263007267386476442418610368066663920449894016028106582977101342321245637890169585936600180038216389402805199170785013738414283617615338095099912269452309594542678980464529833327703854754206947776743945636870770391397555151528477473008554601814217731586024140414332677588253111800554988642459297168321015204583033126726042876521941100776714834098511790021902000968372849569498199318098149412354089104156602481926579478605243429308039332603923008066662668086950348709519060533212225715270887026889099276455860494359951330245498435762761909803295493175247823486114163302168221497041560027566162156458294208183730302467765809212976690607101621943454890028258734257537850021761164884668854764429230836580690850973878274313148424947591892564542390093130090842718538553657618889043578420027681500886739261819514609105687079166228280428217836225591006985021155840737450691033609706252335774439504700195322175642256939472111542414638233400204712267566440086958851173161834476175984900742178385353199979267373718484443061305005978709985627921313257372626218081765523402236636605725969367449030318210790621119744795497422101537442528513322143582616886957468292371217717210562103859139026617690287699084761588194337269226243087269220601820395798361316069166714870321890574386036633154253228607108392400597543188702625831450692501538007518468357806530623307687798893350864374760688726288121114380238042682746510723533347670894923042305250224971057625173262593369563778655694578010405549250733404556391939569057575452127451351802330822438604494270282939872078290464953658748230703724533921517091717046436212726511396276494633198252104824529741134948801393664843933816416223759109831781749678355590861885497770209583489732180434242957951768383283490371392681949642637255630289302855989389875260589325983246639405740821599332256354837247749364381328333613783163973340592209916094880900623964033415540240649073376823998908445571508580710666930972670827317796379341179568423177362023947892849591982942289768592707010645767269336789086732936777636553317686276362869036842315699224330987947526408610870203908952059213725120344980029461094377804298587572389187449350712944581731728085095346896017886841697245594415034995550972414972143608833756021810255113950842579254070528812609770274084818344475392692379210339471825666196994071679869975084294145840243046934962425149203293329400874578747921188754515543645925828606092080370496884022221319231619744272509285173281164748052783058219742032778880229581701588324197658959326779576872840371120116111169045899695414292235185561198992947278992727884440354995415546118038964116596851559456261727856319438982953328556281913868081595316907495218550075282934310826351571425456001739666189984956667289010390387778674839224045901577803450181224579529323188591748654740879808305631535774046278069098413507321022838659404670915996755521535123314790188532946758227376525129732928586766105581647831031226705374068386264043077148278652157410123813815743650874503744711904730671288009711916020015770917899710506492651084733308448284291554952321430623192577294390861818623794437870339149434640198163344018339040547005500798064488153407060640322251843790599507929865050680220600601997836705315841988563495289249049343590834608294132962879016147176493179512724429116521037246693476806542595132000025634021947874912780018212187679821133066662226566573785519636384244412286899089525953605972397689923910618194832798659143711525644404132142201049510287166643183409121616911749131485143193919424319787465003190749199925615274368346739399322731116835025118844390362039017135243617813006719588912870178330634881128134231119847115685409641496271067628926987322140045634872431959381206970678774669140932219577284640167688592510184725962047885020594299104048539585760580084904301027323569429500708415591156219621398253188932134060518591231724374823573344447790143423540079958151807467456021657693159617731910611334873193457827323995234005490088122970560628160073080648540045111882946737631214603064033221970161066510139932783608515002789165393014788130678182192996528454827991747429936639398385393435827286373254681994843910415984209547971543075055947801497161011219728511910775330505351773942971106827983822676165482753991450653118014634311790750105039406047787348287328109015988107526743888743789696596008599392488836706972527579011224656493073892305590725808657474040070213959329577748339110258160274204533827507534937640051346254193904949852502440842805983928650403194159756250579442351249311865394654997561817220740141361438906737518379772464958494221568990401797040227873444105203559536247349833070027474060279500596372554039585376406990649699985803029667555054270599215430924477894153818280297891793281813768805205417290747575866320451300384725196373635425492221932723314874688706658161062635829727154903670826369728864462144634812838892983789796843024848976217729536514036968306061095319314522730195743297589203539183568730768433588902139877811154605063197928858122685672003458120408987933800114349162409936999758246220429439304077283810538650817124967286293890059013097156189907707227288735898105754682213460943085389361513146071441523993608816118527173994682951909116647780414235150633710903635955294399466798333183576626738444487478942989642598234908130341976953850567376279827351413553648247584177974128826125718953743320296030262472680140966928710494567307069870614213290438320225649016975349281270769415255623612858976086120189891579617059949091593907601309727097210836461677394384858892704288807934285030466977220479491654428846831811071786118087545543120095744953983566961481195280578091161722255970796514216535861030014142649028208432818418827187950412826219562758844713251259115339223357820360283665918202802296198081664162784164757325704853575325044344737501518910664289373328845295304932571409260621877236482157472457198960595182826647135781969746209957662742978128796562065490981498836350643029724668966005415381428343510765448205447672718765675467472549352337104858224480543434442499996020953509642769615688597402946590107544022822943545365949327501264845818031345780516186082921657343670483669904266666427944834957960971050067934627396422177647313222375589649545080784614779878978847291590182596573858121048523313515793646588311638348206973797625408463884601067235164076481477149034125552610551094388123469235244926166418022194619146692201490125667680783913044973699345364129932935062960566602626240527005139315449778551002590017805915868929837548329679667292496098561252801770098942497608057480351956648062504808273246520415349600752871547606913620053090575197767676094719065231253145294242324476239922179356968200266053861023424360059402732972029254753642752013879248261918090690593829682953482830017750196984932437443489815530260802074422566779967097001946361579044541395486147210941041127501208463792281975011295389350757650044950336611840898810727900127797134250203624158764197758195625253172774809156594168210810566818257532425072721645411491332544243372917153720945847633307787923613554217326911702690399460819649889405136706521238518318070864257282829727817789838420057612451214205134815925510484495910460942995173321807721493436373164905132784987764226917911299736958173667689241886805726999034019908801052002505651051980089097855581554643383242325509038387998744026995341581120540441848956840695182598169551136693361366877809379737019576586308875258408627055640659358179915855932377821932928744504533805596990952943166421286038300918146528388840614009022241639988526417484553487050906574560208532774675183837136302566473168613098394728796836924601391502223112340238401866016106391994300354441970553543397103383190575606443587088687053177267458049913877735693498333218405901684670350419758682790126055167018814083361990720162419914405297455567331017947972855523636788970558113936733320275230644395200155913402757188796588636205932132795498177722704531817822104326189111135542400381520276917099394516043111843940943654324434973430672051624245321468476474536761424516459214530400282057096371975567575168017569889308947866135466046299027367904451292945108464742406689766166193040312131553123574721754486498233364242657484093833431681707569733634275005213642855660372749629344049356655281556865212728267001166876925554215015297032502261403987947846607165496159663954947621032996449114664246081459728948555082146140655733300668658563418690271671820960236884307678272382946968899381065907715071566676384799765831947215727308739342159811625274296998617445617807551653843003407919925628814944822569040521290482899917459357723543816088701490677498213767926028116927379524336353783918688848599083988148819247014791833840543427482137374459887726033909994453560366562235461050691588857464177759105836586596929262987864127749600897597163705892666869823670608440132131111169243627608548557304413033437662652996365046296324649228738338442836502591866227434424402647475461163588822057073917307854311149259688259934183374647918801913941793259499640543987427214446688717260751363795538233819242860111013422309890171018947623202955025973909856701839354930020819444971143071525445741815000314798414237443827679558632883776235310230578324706684499298529770452871816462732213281940680872040935476498449326895442727535397111072002348757072561977316141753504194759712713489309043567093604011555064330576099366180670489039125951234437496187838007742777036679968262340437687835573841252677411168680890768062833329952993997642429949968724658196962061875322866689851524070516680836414241820057049198160004249418140436541672603072588264177194134207023387262368337116320835854466603730336732010126943689349833277733745334101406370316632491433366224585129302328093015373347567693087086900829829770629445325767724990438133903977306812572850867243817712475457119677196828439117713912859917853700004571889016257354338242086410635649460341713315050774241612846281419428372124504937525788803041725424173707181660813935457058861806890512936143458903625471753477160466152969293613267297817423035557358103472133322749482113117073747634202632830408798306522079135926116293544568429748264671439705594148047105647872247699181535445972341816707085618848040397735972186985463890867868808494097679372896473998193093110945417411619996149568484069003920956965024259041507678575606086755818524702269187136650104972746368452678628182030976058978837725778334471951387076027263043520083584687295386194870539177694279381971088280405011584747161184758038554198179050208127117354335980471258200350923472885397232111564980720704628823189143953303293334791030591931438733741178313670183892398207931638977036779095026976023295987811869478585780315874296203983172481897428090921918796467505693270459872008075043219384863769885983927138150988221718836792372818515407565761778840508039640796906126369157739887088667883509388348678407042294622877116687675229922272964363480747163518486910660316480431264159916721836642488526809324677683896751405260760947600705736305700851923415015250092303732091115154305323169836771236213890501389320736672541155003067218306383408356561516035363595485903664279928699961686557633861636913618122545435280048823761377792191861568770530979942924062018189194778693692820007491571886433648673814295158030322961504068794027093907576421538674115437857885775659212336685069552847096027949168655355830249866952598497804469540775350578624498860657737323691596814506038883193624816798678938221466303993701105938830054522592622277610375196644227582490046435191415424147601552347069715316067614526511338927203844470191174760195645718805348633825269805530759218424159509081703816079141706359614746331678558798679763380483577297307100874015631093022573206600750994149117164925601067010845443267782422787544623395994602335521069245623567756476662150331433139456252615069737888217054311793728878874948377001129716064591902575361852301348467347018995402269881037700036286956926438620710961885490202877346239566845786826480735055263725275570057740430460143765890912313948761107713772729707657871018634785374068550774332616612910607649909010297035602755741806131810544705497909795751925526643090369168828225380781652031632640292619958118681606414616275226999869439743112196602793106588559472841116531289292994369511705893684819348061361224216021527595883280518002734567650914757192880905358544679199116809524966421173282764665345608167119734510663545037278678671134260159540041144296103469703764500820029988383467261649692279270549822420477139541054009543457883765531264268725910734867916198395771428257458987957957564179826840346697983472346631206764613709588520415435433000059656881140990152671780495019359961717340816398010688378112941309269448311087828767323419316045464087771255930702549655561740384618920254677528043600885397391196254030422147266532230188078123524839851364258120691572808011899517655600078770723605049241127744377568568154085402481065943651814313120399896282553358485317457147688011005938609005569224143729954039156487158616728377513655611031770518559001691806126431168572856606976327497086414571826456146788454568996350430071097156041209683742666461871322731317188216912953741578505252158142992724367335693721393503273184089228070370245034893060642819320654785396777725390987378693899563018721233387548454816978573744927235077477126066006037016416995039365363587660620202264570677537789443154546893458961435596850482548611895909510409981669799317907728343991405514818433323965365494812780660257852611411800926713292339286772163097069946846812255172145957496685469511013928571094191022991204217295842444105006163283562408442176719528491870816957510580939299803037765697048406246778326564977314338770652526313679453277549375569205210425967706921372199417444535473826416172026386339702881138598613003792389819771857425428376223640675681824204258429210072952848207720632524191995567733212396741415358614565543170015720966141120837149053830607018681098941446930034621795254441828747781627894556198182954804683550490391645585310833355612783179438592334896280747505726648341777494407969443536752926380726772193763720342340127129019209051772007502699221089597883062320777950058698307773440586503552026319152579360854106436178558308737305996177709614321195598223052458694525221420772740022282858660089279370905984840085400594684769171281946154963483540271187009353947132994596647178112629505836273931491616636686852689016719943582464053204883863363515257195473125145073248086160300404656713253406978413048168823325467327035601449179965672043307111126697422441415546225052538497945647646338687997271099865407263322568217562731249745342890817761276751416145375111158720366396293637900940459676244813575578370227693123312056689122105170815456217623338368774974176149966840760245198934727413267786758115634170276090362381861893035088489552762182725072095880501390553876652794412287159315129900111798420563723463718230977925612079056229882204413363549192088746992209356881737421092433638174592543270066646519409992717206394702158368909070931439850147930882134893788944624641691516758905336793495292224355104335736399944481228238908871112240100771694570543112197881297917309299853860995799901706711611867993364906052052371163921541586550847907125766434169610528684416536506158649963386439236054449694617594567880350984186846626368022127352725542861499062815168361763483201633184781080042060373669788649410764104362507191103475141934944884621903994406537264563486524478927331713078822270739817044449619535991302662347457137224723625767116295858195247055191812696115355568119304731758956269100173425874661899412340295755561211760198462419318647986743935084144971356697234085100157563973735750100474644296082642906920199827980253634262956682287728990847348618903938745753870575292986812581660929698440604668459627009622361368254965213846946185711119489834261864503746802765997258671790951965553599703366632165502621165694802576123807828807147699720184911210302450770244738588304256787863687246749188618573941472298553468041710155623971677453392095321635348253679263121148815956551360970766269507241459729713321597158272101651279922079404152916889512591806526303547949005514227706362627611553937344795258769080200342975741842128506294283166135409403235828332598517142003178665864149100525586796101713418510137439602475458037157257140659847662796659924094980345213227655502215403201047917156274596475168121052753974043575781550774623894843461451448886016539110322788229967224161114580367582417226234993629667894827436503230868212609374173297631535275506112235691040891468013532781610667449364059422761698821962339414688373248763311211008994708444878831842902216802839855105824914488253025273997651086621836805327359994920273383116940056630385561628256336896771130764428537108718180508118675055591407699962707075323651073743206235823663820943811512307836971554869221032607560611906079159906602407257915996240201076484093605464037928333592014036129853624744466587449635708254654749374057350172828556075662604049969818065924835362913903124005419164538218181630105840064062301772586928894980963629103356419289963542664328942641028821735385524016036339008520987191505813165435013775095775801979487825823748139678292328755883988075885657825213411057546792361138056296626971006227467558848756361937290351200551220395203119726854305958781860248625028029601151633207084355490734891651073307484258719446765455554148507055872492697944910150073493575632802896464688002327921565828584516559472852745099946738273832116142626502822368475760007769467724265255813675446215778813102746729027544539332245350362216693731140128957286661432280765501091302900749340618045148561318892070583115164802022361138843798482553448747187505988905809533099432511585139136582803959883599805236141097257052915044389904650902428326403571538398072230092146234928553568368193959488976162874229989270749119676560128977907643554747145829543190247941438562449898391807135478763268192457264927179571521452269202881398892898245231487317491323673311553935272993090520130513685255411312439195778167446612929758407795721549418066070491206070995025269849919500456094458114585369520608237557692007483966357613592529044847388821850579607652063787496097527847185305477499104080775156119730171079251770965865361330293868326851797312735073966305048998857004070085155969456581027933113780804146402895557533773863156886826361345428155442024285938243702927593605648624084628722069854464359815513882585351580973087965230692144269405760843388636306147503580386507083791002535793709768137280954888696147925731849064973064600221829547968168721588822832163405724251131540850443984616567004605325026050597921039556123691570792095122640517286600376896107475556295055804897317166142791404885205603275800271656265077451161777865004335662376057400293344133316826954930115028900354099989525928132898023261151360770477072966864893114251886393411866394198232836452184950944631119616414930875097370011293146828794198775284351084190707889137627201556062542855747020650981153009022955515556387080585043650801757877883095718261514679785211845044358309108319435876913142514241555537576563505332249709631727859755446733709320937703135768931461846050862706300669889053753133660866859018649922914898786818184919485895225772004829813987877068058906313686101102838898282837337409044745875802184608684916373625284420306130896271798412478720317011679978160702910821156496574047034301814986840297630105636194358998937939595890851726071926366689292066229258453020527950978686485874723413871376002035529385652238425538893334027133127431272625631973943085108118997909230567886600882703784081202075276168106722376266709051799674544768745255349773450761739326838426533437509364960689809777844874463701348358776204290746557444774615250293212432457819511980723983415686405558171023310255396391877253024301244320869808233295780668950838536550697502643364176235396350397834666071566578107687330560273827823859785195216318619328460912266088066988791644646332488253414232637862667138320161384402471563568177496453559071898436465546468401571527537785335797133482889252206922301658109270615182367507729174143558280203376091609373892951726119714571996673184919459851891605973943235259207155593973873948763429585527143170693919591011721398542001071608034320177788513968462996745895923102098807929327340228399047677572454941244624966458665998917332808104900647070883337667179166164147593854049650856874433145279750196093022837443403591012580873943948902930614786010362020513723131895860574391026335968249645037488256598336083812377669647649448208367709008639734879988202489142459174792519702821819474280778053227271349491177214815406088132687069741396089350398900760455649660059169903053219739051154805984732165962024859808424727317225824511822794385063003092931466926978514828141246881146072147282333976952047663855490915375332950510624206787383186685862442010334447716035422627000497546660642467433559022675295491727110311194552681939214404907944070635132121587505153774593842803303823750194103925586674845656915091786791325171741372188913137372240453995430496927864133720277485114404765649001912801949554513241103054911832673695022554130180712193737891409706238132664700798148514698775792800203862375407542610599876876637677276453580993683977925444404126948555302413959025592680242571515291092955991759239174677400056586991031994607082226999767179902990802283991677187749314537553197258536594407062419206055755984954531713384981456525504921723428030958780541367939427714943144646143100719968398708976823655929529333976087576875505635666057053601734903229382128014190794900985303911051879281345451687773850878651664596019351250883244343319497080271366775409569816228157905119903625872239926912816092253660206216589446320495874911002888087404978859689740265947943847139391856033581247158056002961542153499924776786759121809725485041631716466431130695078358227176563211711709151086401336628698583126526128835351388964471710622059332622577630003773555753861464278392385195958148905619336971523498250443359873293876919002476048166187831798629836183278584936558841304658825594249976622823637021999945137825171706791346522490242566208785160336515684518233958269935199645230945651490560763464814596522052571330348177976599927884545352675721915655559407841524849159700948851371811901224938455553627594885742243445706885669011683627308859043117867807932081754996554358771257669397527040253990575055886253572664661256935034384915854348438976859291518796432444113176653634477907458328808887856274620997920308036261635102864371787782135471329640436442401595202699510407304657056055332932742438537143230072808383160973445539080002978562959167221256569570675368172942881381105358300652711959321586134792184778063712927493666057955747501104969001733255838877354017050509559423158696900777408008898715562330245351298072368380184110289506269582530218683511428870818049030631497463014547628898978986626746755141506537338255577403713341667626934992961234567809280527226527984190471166257469502111234241861510217357206167945903500694043386988679521159700950567050461896624306399124223327249642274197510548116566371661283537444439267949930787212021906250812413215281316110592744247166169878552131658079688405104416617157131056463105018134867283765252198048176779814840278578696139808540897060744445151907513662476445415999985218366505874402516635905812482602346030438806905413521004833633535367875193787107784324768571222121994567458620075829054815112831264984657934187802897919467629933001144990416634387487199414570701500478289395268145334574198075152862977048076802840737591044008503432434350259638564230467504777743622626037304649624869018259586477520113698367456267472017504329822595537375705671618914693076679956173711768983649234322240131552814021044776843757446484165554405215817154630304250530293579611940343301674865520580174139262407011436838971926375531890008260633930074698271630327187943291562303480085141939223567950204940728182742509536117297224635531211593500988629539256692118467764805358916160936328566251158437214015074765642944789416690261416726367262401021122783755751675976028400025133053396410729840344291255782492565665200868814696697031044259709739487477481813171757627860691329541791258253358529311990940179085932083745116570046754915367733270503096935760082308273693606141852734101876674005862567933643209769140776175536209546126987693134073436616836588550539186763830730519172117077501218155406171491165329797466323257554725735707408992703948828426371291664745672978643115231544009629701248916724392220572356599597620978460401698770680322308886828213867422164237581550610922053893814112304544591579336579189404971679014523416165806422576774209847115868120194985498442638072800166696763662713131270241739271398642300649308005001198622429867020679324556743484300927180687740201662624084356700989341137357467215337204674356390952404815369612708568446697490711098475644213660128012923588697693306724080878040073961408825140696288061488026195455680841305958089740404585704195261308902224187583232134354609403010957272746729805355988624113798320240246468772105440778963410626767220157587526482308899009213342261055843839550154608543505764248955255850680270690483606898238778328015061848340682888928052997244821591571180435075150365406838745135468986047514802844184402944472491525077614539259242635175120974388414667999554190262937810285864177463029502556935230892267348364622044750186638804575990200235502056327649184609599597397476514501133503727538854854492695091295021646744041450175181219614094858503698688744639876744115029816643797485991602005598474175207296744423418851185695140872144743983486256742798293928808278110353196701819912586074382891241142328417328045178130118952802496981535055157162978136061513304819884681980451091374487851437031415870235751863758698928931912962146933824756756458124087093912552079795726730999894457437962956847266365022134970532978514904253836352188069087164387596999887585052251423531709162042816239953862805460753911489096954917511005415024947233466144977218230315205011292293049530032182548426401466935876454597697119676624437285391027699367581158386809484869970074238483297036780993551045728866387808448739111411749382012230644282084389213930177911746095768162826142698790291301894703873625000747329029042582542286995522811722693433852144869842925274348259139722918965109252815640648539732778887922352994558735591198256070674648229012996859802784318908097865282255467207117616684292691845995870227148363967904165563413180102702422010110440623658197777032006570553575356900217026642294444511824431015544320824288509986030016014727995457232081546989202447312567668668032439804092136353669562317717197596048106103363716642814415671132471686701127091131944027388282626712338483886971500539240270850856812771321428396149411820316707005206409363439904593183492213368874146360341302815923323096473614867924023833247806355939517783382810112754530586223665622640930111510871768675415542920212630490131843872553132196293882463933279729058395854671928635618016812387184393801888812458273659932673164983477275682421763497619565646354945591668320941735508740157126304879143971017907296467122772615399622294645622069128910412201440707286033348796584436021120501108803054241228477680878071148556523033507962698957540434955297846899905738682498254243665326860592337209287939034602747640580490747727737695688129763773922389941742074814872447702446063879524918735408100469647147084551533751892104875824004602225106173064170296559270186591775440888361540035107821842260224258009559977631200976955871733708635927368104317325251716360393477094953997685147353709753473816309708063663285326946755420061941150963472115334464677056054049709899081204721659311209903062430082374040033922635680943511322589429922264614878608855581292422126684003942318403904560515753267180805557349181881452864548647849641216221427919317931737780421529789705691590156470129219888648134374858945504660964049179587837753539635047569516162077823357724110069317399981473480317352226297793570339139143089122793857226735192423005660451301254742090546668626711393819735979154623422223236833953664289220316881988045012328463194672859234085640320803526778103931216943036792222354776036303940826056508640537212605165139522619485304990622171083233224705174402124896401149810533683139954933940008683860847381676983019034157012589512389292103442465026190113140571522646860975468476414250256874842918866597108499436356100861719820315753431871655642350687060467813926454844347625666180266326291066568721244295988218781850383640902308175240683050107704523539222370661604981424832596203679198287979345074321754177384876157784826685845772673625813820146568277310352220386211508910709424685152054667972827659966577247920321836557601899056056700802087639148681881180220546805687251225174867164705996153784182338880697962111750298435839710533773016374983293676252347408671846287347892285588588143523842772669438420015774636447763175140818675068164873922015416359246760245121246541530504806635349412928720855892800633085471657827550012597678198779377613480617515366670774588018577746361840633754811296052609256966933264836544735610430126370767991768265886734591796414866737955187781565328341196755447637693942101705118327205150793303541587440812126141732365150105624498368170881720024222464999404330875134572450700255548666408620727147818692914455702809552755668765315759071966153579925322809657433422401652590910842983408195090127567557902061730175122129101841572235137631898442701670466609362142273049437212719090214717675630217399701759440885524612425345855820717688396679371620028160874647829483836640398481058461052166337248396290669680234112780494668104595997324440179662423676838072070342036615581036621167062424800350816064098369270747288691671580135077426827745817503847396704515368464785343445994645759899399232654676027541254963192919769807378898188465903721613872256162379445301192784365251253443933985418357061319670598110220501626500769100344020590265518997727541931371224300755553536857967864495431515455739562381047892870678134846742158893998806651589328864209995624796726176795923532305707039463671505613416232431371948884639938118985513136878838505135268056885790448424569276927360895468877037475114596240343260621716180022298839909568573181240250155608307393663317480273040970796545639822913705664026679407213257405436507430934042857113853386016245098927662441308036099777653344844711962037551426517110838587482869090821903542899283207238041643874174165178572292525764948891018280313715397256607802520875912104433632494852486240057719831815511621126285910942330120645952143261845518580779930397564255406029832842776977790549447500932318453567967376129067593899219272828472209035123325084042820277283618194406517005072188536480644978528305139884349210369106304533342351244260228267969260943272418861856557161735249853891502273545048607954300328390930417093074978007420763679009989555355731239861822257744623410732401379813246807012389283469253051656544959906326901628318999955416423366296482980889052419600823197262180813883231498285043664088562696736570194085383676961127106452597785718674696805241382328186623474260079568288922624741683776439005153625999491552975367695587627607189551757226190340858173886337985044633196906125686248945209006854207223797321997331977304697829690445741731503026820274023241404262069731154308365572520426546834272713032299704478424168830974296846098984480057831893611042501514093719389302310018740523575587497890500771027305624145554533271531169662341372904432591718781461460489969704969440589160261166606814094156255491859429192620091016122777374715696960312586930475143527777352916521366207803988239628506681409997895876437035121875719456769719234102462810700836951218586678280891442270951458282239722251620546338288741754890477163080193956984563570549381551387694571200641858549993336450881430723081129425768333074666010069857983556428269872098492878006625807233588034721379836093761591664259246220987860782211806062360405553072026731784759828651698877569721076057438794578331985200603181864977811150185068177015125353529603985777980152512284280602232361161316104905217718053900955649596731970794625623540953471133631536772455047583306597495977511339910083462357474822576835107083736521140857354384076410757344936722898253899450551973532955609627738978096915514895387745029459889758237421992768113271300723919088505939063089949076561184456951799498087018032448174370185262844982739864195227264083687569135551902792128057092938290289264229612635809669829326407969160199744374725451371254683265960036625378017775971570125791884184216294376717769565533243582765304790888785200961636457359247689796254745211712650421804943166070731320681292011569699891783764675111201070560413856333527280124570040768097255556931245906387771437682591472499979980600858245391737234302909962700080668343909897737392427586787634734901000621991601495057588252240695766838412932323185774330607234793870952082949937544730342886553265126921016274502554331847459754680287146512343266882587937437724874814546842763977386707378871438151185364281370888283529673510575915900520370984538685131596363195131987141693480589958539445117792696313309730122534581962981978024435318377813426643061305326960462870331766437736418467029592337156415720887390119279853915446507950203227659801661237791151161923297636923160480604059703614126448995508921777576755112463205725287352862061252689660381569947806107439536239976026684913364072026371068762585570224597927643340715233597530096628147926129559165141287943655367914115164382273046337505761356412995367405982345690752584017839553485090584061809074035968625542363466351943603703208007234129923097791901242455894872230275924697977018272959836633121964646057361715161886175458042484469628295592441506340885538032052520000747190978567361627073462746836236091361653839657578635218663511946131969506886795779236335114835657156173190027075234843891502111319946970078820530569923220067887870919561263959234788852731860130840922898130758485809070674207103059782792343249685129854957448086148587295395009697412027811010129717186230100649824448782638263264978276881778927141414070632000888371612262217242254738964638754768337181600767712276385572670044327700593149491768286050131096512015758410654709123847285402828128462306575037580476736788166087314483810432524001268804731075675060753904248331003605855149519176569967321136996814545573943257250285562968217321744388021207462396943560600443962981505217544581918322623890187328544216609124431276750890266512486001858220178097514346829721693933912736608403428032793589111376281790577515692977719638588991716515171228801880657592601070564565127693822464763757302916289851369852202859681513658751693152498323774864642714924761130974448705554316693281593263015954619211039851254133739596205841716287631489591013269415289518576272262992959071678146346937321013970330084814486372441940229512455403352309762357688144689032369176433805292268108120744447415397895403170131022376128414462905816612164504960480352910030021469089296273957022097317296282638608102407181202220306345115967230921196495759881206958068629932985788834208619245610836201777862192104132308427708698592582325828051020214957785769982919815123231323300912089809204547151102978820041140487839768429562252625423823589422683623012185738200590269183705494072615356571416574179519283075060601153440514912936530267027867883834668345226260454590877306081753026363108208519347436139575140713092213409570000756565299706692766595574797309152409689924858182775772508446668287779256613863631572690845101763888409963515933412866994280318921190811054773348344336085808039823506391764359400652096703234530366190131188573984928538087890004549259569955994687345454474848704272136334321794296193024197130783063319579258597856736798330130610737610244947519211523362335189557544011984639112357747879892985484468360538242025532721235466143181960233814145648066792554748524142929347208267245596489166301521300530976854580469917860245652482584277011932104787656631697338884876214471716863559281096153123225287400429462349866699260725028183992356248803188246355827185475381366614570597015348725750791927839803697155181082895800392247636277470237478742590845199212925885017801385064860083293506746461707899743096883229407164130975615134284095739734077123833540275143566538573158837610979253433500940094134506436633339839275890178344915132467014601704136428904514166162756164587880761042607282327617273699360159048165283441585732219365128302736241967111772827065465435150314110733284320408051756262738523824736207834336871302301009556068240185086711713004348580049917539280925782722423918311211883921397616071709835594306400012230502167785065121395609449732290660807322569991344690370471597651727013841726893492473889114917995085887472621160236669726861474499407265328198008933219659340613077899052762804598262412852205701655100721366543200517771539684600871497518272876753115670823368420679364046716463824980696848716348772027726951967999175051077577706329285822369969303615833138230090330705871901057997250473790703801417166605984347743497418460444988198100476192622122718478616678497689043322000524116824671338637328366786347894263687982307569455909556415418633398072695673713509910027924681677064123536771392297807663975677337438929892110562079914565792261519571795545144342556447666789474944724653111179717995933276249384723209330199828190059684996396130649783966290737576156556307992756027945999899928135635839297145874760706959326543118472012881798829405368491819869736728221722613502088256318415860313235782118891418006848783494595891302086884607781901652350701755098578710047120115233542495415526180641860812829297099500176329711177619513072661899434214557959652024568875238110528577177813467838539714080907565583158455148011932228920830820268429579264974146888673728600524349194248359195141882815168571566212498229076726845588019275613474882233688584780567562805529728175308850249735152787865642534521616677041674410334597200583267050443576743095251182489091260009801151064545352014400181299752031619539551401609233464373333149727314552776334564320540201623573698608483652830653436128840359546817085771106963625237999830152347414413699644069040710507408426938572565866280056749704368107974895840601596622760778388249988926923129506010167197539116464911028345871256295955036436031194700718452690080591437223032185575220447683325927636795932318309448297764485119041030208266766901204493203311759010264070223740520624002828485984132449005287281049053564762437688651720461370511214354973055521987749024688755544904422648809024143127253509826606365784133498857519185951505896990963775204867442344511946463012163561151516415110792794593676522390154605619768915988077186213650764747437860848411155159394314087658778485891505601823318473485656417936450693083639503754391428556422054582368269711334469107790041545657160496506109349929408628833428952202300013323595019707662189909478923979051325456991357412282590245261213410981652536595282539558377468517325372960887136577318379392102486322023031777637233392915210564964995859518065458945494378071475605764580037363317628548982863476272376855290145615562044065721856782205693453118134293024492893848077998537460280496733803699847641131856979912896520878574055624284503166927554941516983953837431192541622853151914580977200183695235401793396098904764487034812336161738401932093470392762121350639830028827028565125771304884980638120613849471767592395698038901060347524933007038815470511511103891426703886199046014904716673879474891380159851701642045166678884215289353543559541782283939695586733335321668245568931985002212925552228925836891489194736696528630267477940562520464474273465968521068200569518145991217819655901867175302870836214039589558738343111049103328298009147760374509815955566325660084687173775893376950365555345519632449374735307801098830434536550100878018575928596322956906217649320106484013565442848932791212125033367033366036181488527581109653144934372924069283849087721744533138458196978424167690869515124665838784628050681317644273291111481878158396701626502387131680731346515923123690290415016608993455737951595142084181888898497566814541974162781863366980265991278357414557715497245076801916296618074721305995539746148917253708682378767451041362188615262972597544292563443842964591320073822941691837934779852082914673903092557208170429752821025312990364227790030038001745282632424244563929972862657752296112687838199210658940383838411194754726759670047357121373332234347400100897052791232156368258123311126024531154568132782150131079086389891428422428502034626660825202794442839367979631211904052922956241668309420044451048456317842177984597392441467937703740660363498188822623894506325276641905488954416286785674028333419154106872781649080180939803433739499084574706162394490131458829232429278131403993381991216041006068480988134789281268580058895233171605537180475474534440511069495897587605015281916960795323214973473216475705961272500707110644488564144183279606147045986668132708240910367315540472519656651120438541620324590170069752122040940854410777194766244912857573743765503305256746807002471106870196024474381868179611898495606087133547674520749837764349109042586982502354981861376601761091140618465768222771337134821634448184885495617173063749425437859163635710007394375011896769840359088664373490024877382733980347137431008579140179513703818519896139063165230568825274189232777276520723108190175743040849410861221719348298089302987375592631533313096854067280558833914703117496309510373543944713273638862913111385519623200485318890007586196077021487290965734760380995963880066407360606542592293806198123223722108932527799994489709281239704221516976319972126085415750066394255137536118506968314496620081847692116939444473830562540230880975308507141799131223456296258130507223921051266726232299474622508036876683462066589055398749828153901345043204210041781859059747783879710259772301778568751817237335730849985146334477662761260814153197963699032650784504645426009517230657213106099626298309823226922878122881739370013333349114709886282482250279389191885717651257766159176263168117098299125607302255734271358980420793889322362012618262376517582698954578360735352951970253378276774993658663921090816759386060542003275817882613695290911222271036930991827020377727717930832493924142207468895687485787349199644978341863948740115910646012446622769215422201309875411127693218258354485710122740651828442347262149480204541291904260950540283679671888843627103998393775059403708412794926483809658239439370545617773644706966487191783625227952213275339204358574490258290372002218116610310779298715548216030154375207654141192419773162809953449312795352412270836084482255458858243443595483325461194415762185864900488482419762161242123423937151640413631302094416669855390703193204441024046502293956277982096738997842833667432543921215392470247916121650694815141743795701540813531815357722546500374346604332714428232226859130788579041990978336196885565840880643366878025675849674033434281476096039536674121189650205313657251094284996281401266204682062558821525723098680910196950890491672395254564016781571336404270663869232342841382765219199803430911627947803050763290268094901466207217277681975293570266213271860557881617647493046566467806443208576977130223335886591635298015779089018461765736168955473972098043241435423553568691371304347931401506851543144153813645564203510022161410946610453819360642011426952090422819375287026450356162071710179008055301288617008483202693922614969002647773145545178975064861615305253350348830458711952415737466637169434778575508518257934945595954857606436826907310199912322885656520708246030315102003291846555837351562077215125118067508591996163344153331721258701864794834835051090798338652145515567471547264799342036993097639892775844873879331910696640920881530274310799476130953704600106269119696309949994258614688956479401710192478919655528755745411109210689662789990297919660842568882108652812468353624090455518018282995617571772498903172893054316817117794797236901575917453572754050759800216508511354187368020254595265247887294473773587413451298151586845551608883489809938018316019481225177411934040738896135959665713997644278664256245246379765034079550480998198321093645256755617619080757406382183004296450458021306148096929529086395550277798584217560724881676052348827694249693242224393461068712882279190500772043515137377297247542856504512688765835146629583342213732397293338103545639782062765664347280543101558135078149384083190760191900200585083410575223029916287485095285080435410575442775465276578007063222998609613978318134991348013816808184121130954744053677551076732470854864576957745493490445404599769017430265680738917713314703325141275495999668529112332823253870699539668401341159351669480527279401993731831051217926962603193013646254250137495312080144879933983871450203528133021145227809231057021098137107304565257733848255819924633715691573823977828532379174326873136933131546549412033061007080808372507275819771300306074730815709488477132671065553371028589213450007584413421418888412226675325727510859983694274579463335748462490023338726723515994192683783597210064125919569509588251062713451351676755797768710422221924771995204259584640019612858349557260386598222821666440360067961725091540276420208794392200188579439856248673123012376961309427388203048718103532838012444469425245673404898918963784894797963050595147388790195287852174571527596086233275274230001454443262576861290384888017769331436959562127718428139387195836520545732143371464687750864849501984539704266859775070876492404536581270753699977907522535484431516670433974020389988913327779863255113815793009509213032274538282252195893571467416669268011338469201632888798508918009744439347101872848741882951914271314757971436984885031267412412579216500157374157123260673177228244900123909641157870871317532827319691332316476438635384662365408513622077664520095743436643887884107852774069440982196364480592701488121700884558994039283930937032626369906836917275832441462395499179238083254280342062926614352121426475174944595640636555083201191191746752617188015249664214908309121422449697903677806174275836616560840011950941516102347349075200225603843727355726119942952764517033738456594508946145937791298390570451155654103043924017191478419258800577602983832604268583287858139696051194636344845725359453798142980331625352550561812212608964562383401623427926835683503893885119834446055747156488870385098659641748892047985937920054327047724218835252897997116485796026818488502670563984553550374083266375767677541760651455252114256484591209142588613322309906295899660396654615768179244155686469131031204588544412526637345444221513706348622874382903626961902753401115717675693465519109245865958367696481626660438074897594989149379931622857815482817493532794807046396176971947113264649450455113727996296457805142275943056218448159975134649111932315176280901654247061290047106018596198445257393563628499532263674981720247167452515701702632224584740152942695157178856116754200110352409348928118536573374544165322032970906334399790481426259377115859619205643046135774023381054393526090903278338109657718306510543351139755856687739825710543101818705962351468846529473324329500936770435987790365836337003350090600551965876857150392154768790082818656698118543500668719466485704261487718148123099067898373769225594952209373915372054521930637654989057475311667752764576212286052684549629348881991684130551591831450464914538269817633320775873125818813280881562147438601168156078097226970402807226456902271242421609705930614079185144787607041870147050854666258210503821145196222275955915922506825436550019437496460184228153570405252563086049982135439620817417241027903038174320511051246523588984852758808166836478325493619892238144926639102482914160714165056628379286552792154166265452841965422533459430766886431943924680501552129019583612663188475868274530997905789113232308181247209083212491191271606478807299235207720753872664937846990345053791231668424513318545609561782688209723152249618168937924455983232761077125508982596968299724340785928975964759001703270845488919585534653270224857163015166717685805963421058430798944685963855092131140104161949720010553184793471812919576893632780105561281054084244238705403571737325216113110764838273162660372182945552834424817893053116344869415580786071370737482802414385066814187100713436581165970471622197864971937084534414840702514988415827344443645118490080324847071764979610008376876437349421174871367398131180945505257251252196248604203992595604443757695283391844218485212877150193793803937806792408499359242026235676485490586864094884674285429404304228947602742461045117938653911248691902498894594173746492870701033087594484580438937098343025048220621927280800104890935920235366852786998267201528272934028991302349154406058516788510990055525666313872193111145924808135136933621760918154756467517057260023722573615251213032214866997027187753315664939701654609548551631729796118997669514492846279890260593919624930293883302587499962186217844518213123437413325134873694875844955122095011949939502648243386234422219121640053011143499702565504620022569141005906316603364695566651577742563286159147125733214258800984535692313621596361093425514743926014795319539946245473269363717165978368296111576884310900275998696025369155524992566844876792499090696728078480493663148251133389078214315432287760631409166656770196593638945673432729753930989677009635667281712690446945705492163483887469023980004836864246969076411182912632823927551794676915317229889469944199468323141429097367357613721092394903380375784628100001010298141403591657206122143676803738794543105926195302651945277390644828804209750711760313382973171506622843700217178759294646360676963137707431132447523158486653446075716375876969166948499612310256285227251808908372838958970454849735780045797102712661448561646118630576981966921672607147303153849313141597485212564491693050729904992655167617560289924370444193705820354965106798135338227634054109962047326686718333003495944404602363880060224566523760187568390804049710758299339071992087341254834817926099046842386890105681390955817431631962260109713877450969113011795912993496523481339111135454679509776836217742812106980107242929230891762359872022775485754196246526714810090960574175449635339830571214730778155981071734267286706578081851729595667989466945908802482933973027080451497171633178237710784988599953338349350203027058302203952441133163556153278088452426649664708989507612127421268503252376873767265758325971518418759742272253286048012443685232631143447570337639862025457657871801217830142938790228570611302313184112962910907194591799573571954117465038879153302619551111778495402074610432298155231947122592102035436387937137841545369858066416011726572643379858460711629411280465854675491200645767186934779373218219015144444198374581493055519380146459071568639973642601161198238209270120384101398982306589606831205307754240702945300460689529153143024712247936408643445828619892542333839286873841688523436338902586734634541796815991504514720958082890744078437188503892463862464149856575579384298586082266301229497274597098654110168270282812763578984466258324524020503067783230249704872514744430952668980556223542444696162322353341979264128425090371789255791915373509700837830558369669255387182392420848853616013346486335716520488774230700504744648170694611842634119852835874991772194416778792764595476240700059351418962320473763901544949099907753280186455096747619213278848910613225236707669639245892053678700815919366456533497068390961810729502111285733149777172517273952674946026396745210119033176033933427019068582323791077716219799145401810849373792441189236053043312202702282521704768404091733858544567723426294596925170457949183889883299851049499438370754455760468894828045675671681879368106291234187554179541686377347323457108753425032257213393435059167272753866081359632078646981621341416399661063266742496220610638012133162682675666073526801806374810314421073793026779878883987979980940042139708767739833467636674254861716515309275696373150577064311896170958573892850886776585598532870069708314171025123757001726780092453236362619971481399187633400924964727299362234783008887156758525058447750935270622678452476621480212800059316505830105752798996845245597843286734766276382224577573531252323940887749980607250508051854218487322333910120905805421498102484535096400521743606003868866848099561641512182290102502695463705601616840573047474493512905391179878570730814321393433337404631253396074020302962425168428813200899953137821515385270768255413391244596827080268271799417881453887575802889669476620141177504036478041999303662975012508124692884589014514758358317933490239121809779055280224656647655057984277684893001287578883387420229856420991416400766141634852030353876106527894585096483678403444101835355265608316107988275440239982194294429020783068105475662879698187008337423510467098030172688392367255057762699449052477541472488851337149963656256236419740187285195142214461352618821929344515994752609534993693177793372416545916815624269159959568861645758778106669517274950690375661836232526372781342586678723532946074653528192033055773580023496684473119343332252430943907377667346467967107044381598443536314172107047420685790260741386465957255488873887043919305407368830431025278982433040387592363274525347004968410652327716488068672039329429350530412062856493354596173925027603579673890998243548477928326341270587386649301507425959047903052987433374625696960103333782587360444025213858674236042295400262688836358074549529162168664467520504618912396421198829449669160498773197670181881011945215253809137819660435898189351368930511799365561823898609613778625965627080055291410625244718816487354772043215860801077125764044284830406282911325173686077931926806887456518993286844198204094886336756106306175768286004623568707798616907776802275904305967956346104891266264788381995146230437198734638577695120537333593200494925206297201982819319228561731911185356560322309243330940815855517027580041734739476568439209809823759677996434671288995468882544052893522325754448794557860425153362313613921449310925227076629176630766348149586033893332333915202777236454656409068646528541639383754283799361287028753401618931832741411232346070520388599033870072461098087179518577771774711529075382942720977712705657688029090179569769236249669126307351369899906407383955443221265592911041692404124392350730945676725367803255175307215409487903865320118430306018713693742699194626702669419434685918220872571006158577057764718578435450850355075486984087101891779960292922553004630591700420172649221065868418576759575886139716388132419383097381192639615207527838071835124419957341571169832057291033173247999499359246860319860817976955288044601072426448180053635265515478442124272595039326912187479241011887782726347785678547782218173875960122352919691798115051066515941103760319547983740825279378473185856408064720888637744499227909905119460246963723709334155882321083599370968781678947791081629387155321402195209019910083593972518433692578852062440906283032014883520963902656032840975185204126493260017951259709675281184144644878338751526518185261543640190556483741032056528821612608479915946064328105225261413869825336824633183518530435749981966160854832283413201665117438992507035999805914884201861058612657447613326039699896070752938266920221680764872819925501311777618094063219304015618708483484576654190576047692462434272755496538941345597621499018809533161578565349812022352361908219271033459712764993573362626481045780935447635148803461398943910180459627081917244445202271655492745706286311698784362133062409105798512525639570559266120081067963731881450648799544678291993322501342973592748950002260519903466894133523289966049945371931160605120331067355194445523440659042029274411260202010874167940199894368486704138673427980057330240858999039450275130985688474594583428768165521197587254890313536732953699234943695494472041845257617341851808848524168892996653993003084333386535795031830048648600414995174265085570690890087446746715276873710537332417036990704002614597259580505816841050936755054017513622123454521896529466727444494955186626399702844609260569595839087423593088555927764699010073247730708433571494505027041158729763129348388712427744188386927975302948399398442128133272286205299496824349598591290353559690807565639319448700356508370353793981665173998423792184449660815017174905976922145943097386227764012279567206433085852015702862464238216610222869707166573619852499187319584295897321653498788723208719586151375095881288455329899380074963284308196216940760698208034840120852714252716721350217478235581214666586467154122892789299503062158075408913955062917313676789239634301844559956518051009155140159203447531953646929403364937738494617432258311083797008140228345277423666593683977269811165781999784760668516164480738730816539632602123164837759474517074626502548820115060949922565507630013034481411727475520187204118132586316037157762434406027675605036197340782135531681395892307241487270530252479806861103878281465998779365176607520216397588260101555841503232934965293234194541222638465134536768271406790361270612150143474004324077868905528997240748715960503142396581907971413939796285277170943024361154815074949679732791342175968525339339183643992251667080916432588156956891965032824514287933078644823846816904530522147464913241262632836327479015836847557498401614185436412061221197522625399101503513590746515668232056336874263819835970667301689010346770861028653993033492451401130143580621317914385340073266550139911477743146710576032284999115146033643856941050558098815083004600408935934515312083385127835333608879428181236405812168116951793052216755010036974662053979604602605397497484131714485181112157143775408095434231263380543870327271992444710378369166353194911389007726730275732304711747662295264464139545987536136901297573507307740738718211594410927772538063663608351197159809171613408013896023419139469695522474267893688083798262070942880055862138662555219865081134620351309378928172017095566191929074611344727794479841590342147258519729716719925259671817937208119029581767140291721831175736599681260725595757039245339627473656730761765260855929240832150597492754099465246024290489381965353207781309239115092770003433024491890701698316042265346738830466005432766928049079490826642175233392992001619701766193857686414088287567537966686419731570408824831794821843730258628262051253697074852951409549347144364506395328528099261236206529412746774480858380858263925619457204815717332377705992990423485827463595932110301960865162290868531513598470103737062240750375205741125556822933071548743157205529569016577493667537400654081651238530648678837592298744029477194129898073297434075125638199252851978886426842649186034781881462093730413741814246009800135077233562893495381913955201224902135836619819594392758925337250501569369958421805702632616756086192841824997297411552296941466452350612546050239982376087235746760498574790571207040720211522691100038541861151154267198479821506915699615969164038347829290915543762890834127626984235951111794189496852089916073458748442839739855728488490105848992624328562756063647321210315182121836592032527636957081353090935631226931193565174062164223517559642740930671273521659571234375642523495218940838758804416114533824294426354896376513214992416029707490486636619623512456947548990643478121120349574785742110254210593144866359799982165830205137903393025552131917652574254579309045973478744590706944752813878958350947024499080282487616498516549322131033089636375126525141922942680288811170366514747211681879262113506732509089201074950918548183956396664599918116663166963468130507131399018161191801727683078989400406041456514966994281824900752832909515630932739076849985104175200746683737621042962454099128522907963266160197611522373778463087008166768850214519905309167985465512208603629860650035329526675404226255891618396223135883176902376934447536031366634657048265161544778124876029580647280595258753839798426776714804731251354358748659117253141349707591772749241985783194326889388798210834068294668092442863168701194178144562588462645193475557061013576762698754130216651350216120326972162470822443392549029591549934289506146117258173066913662477277212910322847739180497891973666771862385225275286181533968690015683882984269790552136210546125722703467149030446436132422793699638854299609406788029309289569699794528558533493298614636479392326604522498224594684492533215214908846975351143690055155850368890787413809067458617118900886609887065931156685823997594669156843452847292745469893053682922722323648805617925946093018506786337743835971703474603637494047389413294771014698993101258376680063995123213257466666857079443137729625401096478926029169123152694861119842748914327597226738948516338170268615580440128207386202295961283191573170208105366004494850497111866322504626915616218215680266052318179647817469261475420554807492288587386535166952861464675180545047806192693615884156763328875458256655961089203700900851149972196224173479669368865341879231517173057444201770539183539796431033891190033909619993413769693437435889202563807596238332714896443514855751448044081553687858138919095106799353692642811486770820764293637895531420153515839255037924381513898320702614967389344529437006394505779594161437565313538437524938924522721476953319360784889398874278749082139301331499571174111138601241979931780000979794648175072596653588139176914548822613379843668084728315157055337004102437462915694005240603715243843473964786044113009430668830926473042982099044432173769954302165552361879568101146531310053778939180042322258155593853610206127045271088115399125496413619958981209292218884081236502760398521210388808605237576606758642504553078121499510136514110791820023344209589396451925709074539798681102491276253236100447927579571919749555573846551509211886827210252059838787933999578570425644313757441815499977337077839335116445184109795149858144158108548655877123480592175095839833384972303914162393803855116251678779732413287263874619379043564807838401725359368749958667943232250825701490386962223849566294344857510815316639981170038512608365932797856785466314378410406160146454580280033974051585232321753430774657986715692566263317225700357705847726698096146749665913450391617274722527142998096590868270710633164222352936023475288320327568424774054901254785887338172406359546557020975351468350321050989625500672197906954165679157027379720273111552382358963199182176506574528995246386725499828982736842170662710830170741605459617478738798611596586071018679606648142714990390025149461360846940849731498635338317928558502475005215731235818942992607232552342788624058965966567315777177063575677923100947543736563178853566286365247091220586502980990499032019868390059277282245851804701774421255840327241997371089101809717898980520134603353018383028392304682164005092899453009377382467968888472671452611845876690375822131513943777902179352815629161073335734410890143332838419954969951884951795677030032547385253637294620519413605517457501635204651491097264399160363290742774691515877808800255002799505584429198734507668536554634314960900699097782665440919664097225909748263701812051522836855937408430915057630070276975938561805952765133149626296234454424922662290779204880013589168711392088325175308591670526398695328531402044393177758946814613457740207850129748603234105045305191492977548272013994808655880368233682710917782842567742274593200127031043930106022156495195621951025997506859068698576780273851622386549397584581141429280768472062530366618238345301266827106051116020179153611379793263910116421738806237745288961196076372773038260347022889882698826494579291693660522358946434746357476140233985594477253256122741414468685208215665746756066074323332801546651124232632013464083506484957826222634198232381957102469732590378933979171445032385820395850582617737092618473908899205741225520517372754540244277709113738029150804642568322243354817760945807526517468398081040213573040534427485939756184810871093372225395457336322961235025541418087704179187178799687781152614242720391615548149982769358284534777067189986727407565900994485885499269278491457352529034778792402647667244266051722703101196437702735838932790459230012137836849258901086829610405657173702746593105928350419598424244737181921816293907055921608035526558461319223871605400144941104905624749286504407189866801326307470681486699909278528630779680795947064987338254436290614916342174398146006480459214491141381879085398323533851710638448028021962469695646799247969572031631510443525328832135967073154948275178628794964948403507563609669187933983866445922425885822831332773826960211318164889817185445996567883771847087426764679571464349940270179224376462850999959627357961566261949275793531654229385764720741658497817073324637220842186692692430456485562571560482729607297757905468278586321373476941606141854139929205954506677445343161809798197243138714967248138012868626328638464240453846340028521395827687284370473770333669849665635713269239649791478708633242225120315944270261667194727894896622318711381389295097609186466470354793690171035898060295390707649529585320720593551328212248442956705014814368282738456253314605845871677642496083920206294591246066477719814962083589891164679880032499302978902163138763859544444243707119928238276248512610239319441612346209807314165870298415808389408125253605963507701081642499873318274825879621658370164093959477820012834403847574399335812278613950386586550490115964027772905812560643497427848380695861430849994183920696926380658689300620984088728966679075935346322932183655122928774511617124444244842898370180415809290253384489578154322533070090953675808178726280394967561570499553895416661080706017871084367698944844661344596835311379956617391375865027506565419964856770986752461547882638167455119502083874226240966831319316988210012663753473530810963601444051607308924295926617665675295154596897964068559925178899602676930461791979060703645276949465808299759367170584772927561769730594575314564767612670834344512308221128873611810921519002982099699227215829101030768816839504763347207969634516475091728608289602923707124277483312177087514630608927230981818503470871431391328900926879293361668559654824307237055215081705575493140884206405620109865547792233481511653558111274155598818171772223459418741648941044650897111964516510536031239791211947365788974639111803970922237668472322042457311576811721312159076475632457597317034351347428144601401897982142519852470011123415482737249480485145235012548160362605558639889874953455977189258006396742829173125220242465644110546718361252478798658330791704847541878630741409649476911979910212708611715847382460232211265101971131539021332776765452699552562791863841973708750116067802025714942093891442043484894809580219829540238429595884582731895406820873476087300980173573524995158507899937652262552927517956196771353442189448213175508899597061425570022781798271152488296847916926834485401036289996924210530517926138428752691770333165686935405400390388645560419561776988948449367664774661279531697271289898701757927419912592016422002048042372275638625261865414580928782847061995163889770967588582373675102592944988971567677186201138353622607793216410271217338645238664747148183624195343686617399627512764003275003420831780762675030784626514528425768578432790850912885923651419368201731806984500863760073225523946566209589646751527604723945796107556998056629833231952021745404543965069482024093327082779611767570472721276079554755554126903028694741967458691014077107442392176532208578218247347218586516925361629597332875848653130327075567769201326277967297307661762014767943932625935762205629781229068512724791961490823758591759893863727207365719411892113499416506820804832206183964377066711369633454290553067188879913183992266738728467446862234974951647879983295800172043807165893702406430499814329611507268133728247419563031105164231384612080851221156914862821982123196229272025324734595166009494948180162354402078996331430139524715770261018347069777654671654706605566005830539588899724939566182172501245208812998756224974806274037662281789370029735585954438768391934882710302895949749233343234156856645535249274786132502373619517771512513024071302580203704780673468030776592913437053992048455777638096387194564166622066780949811569645441343950067780784503207706068995666985438482353412907881257424401243303022198907186268637807415103915391868432239541876141538886896231512904294391029420335698105258537922327657729799719460051450954593769643803196051339112661594602740004464419542887049529584392300534628989829932076256172786068770454214875228289490846101518278518993744009283789199135967487225363602623793973221125193646745075899648341728465674881583792719743097515554560383064072424050179918986961980302586389341808598561428982546580089926280758210807580653069555230976467683875034155629770253720637431362334037840334833950346995223285764916330500025912061269902816918052465080945004867608432712419730629905305045866414914674685432091587211415595403304688631389665745231808818185242354028323972202638078970179129972950076428963067826349249483618590796329328526792906131586785562804564723445561994153240777551821774369518075415304484121447213125276655745787169677341880699178398328648083503163292235787787043848999543392701516925943360403670858811801781409030055263097269888301874236822056743179553988743483217150715820546908795467667693878844035979059162869341464922239945117343635556148313392415055417554311556426149727530759006543196122847315707732733347331251414463986509009363397344422557135202697406063550005732397020081676507624544344878359526037016812341558690077029292575937993328679819018669861204609110003207326880936274556695183339057999504735049807828012243109864871551262261205839818009527425052988098414162687770580672321968925617900728482543613979113340101934634106294570259320859588387272037533519035086115270402355712871293360782861063050009558879525065275235526930368447097256905960076480967302781908449741179963973161129323258277771480388529590864906530962222683363230833984587573593310887781757036979910199919443288237511136227951062961254986625847854653125840310162008138940453035227446007410682745624833270236908789351576077724266730251423935119795528695101416807577949919492446682421274732913251085503968432863249829294381868445879174427690401412776264072653028539865361030320870047671633492848272776939880315388993411471087481180602552418811582195953844023716647093020197778383787235384644742738786015154363214439142169165927097118619570360270228062839185191816606173576161518164889982301500259671513404425505676450239474428284370724597920630750669701941980639822440244328939819085906889550539379723029428999347955137582289617280475026741864865434874478167434392291834707070300945954109946838851611322852349502852520526307661175142017937114358486548063562600727237134510662699179918409739704668378309872099877328891397347098515877329412673143353529165563706369119011472395700954619324921018107060001178671861330752234011296251264731769560700102665497046052184680413602202612952180589553481402019584052837245533350975626869725241957498130509722830791871412076495481585068423851353814020032101597227486616414572633022213380998567077702904339965106558439927232858727645899576737490063311023828168721873737847258428011611720679920106246639797430753146007618004955388404570104547712340159658132966522599183009909584582449555970495224862917267476459913356786485479547077105976841765308622699949079306429334248216658922515091691341310366775248935926544158895426890849420864393226432047498018088582580195642845401872380909019311231371596728976079437224533689726789038483792926121054930219122767425981891276221020565956702758010528079199278850823623899117444529312705104613518550751009825624087175900413012297456008402900168461887370793685314276374445903029218963525718323255363337103002228395223826424085645021624935763656843496910461719617573690334285975283514143067058757358596022366270778911164758265436191956865269491300402197097432508297145419485504448902078963844576264260397712399907993083520542638003144744925032465319122184801808014370836574566303909822683321330901891883839365160815924344302640805983137431952925768556535962665740341600810924659138740508840851073925723406259073453713780456922741296033742443965596973171024912978651413285754871416299397095532306781424339377783295354591012680714921680021680290855047791546710888866968224523373515984081151132503909315419323600539578280709853466463965553487778976157600076833990477204212752465668925536684805570039469212146137918631437756428525605237025827730066087740601507954282544432075231311236311056666070488792641548987878426621779686374136000080689858680424469186563838509098148759930053777066875046902620504444623650766570690735175122602966535577816225289171855394104606388889196627905063703849376097727727922268326208228479837995297123294718502279496165555008107875571748485637863991836802513553494322643542275087269212946525972949688818821489184701464121753503211782361455514782417525965363737683891032332373503225437648536608336313932707317414886679409570671211207835560102490151480346236522322311194888789600988278632078303972160239656755031857060850154713846017158333179406112762359944258188079957767226904996289103746034167315385288925451694188089155479631861303394256384723137140043346088389205103216326558626697220180347448225917960416440574623672830206854423359447860022766186967090436455640903395606908019312423641845467366978799385660660044656826112701047612369933394584297192482181051878692195119806147882259427093535693396466958325291599730992387349625816367380625061000057486055240945928139147292580483422472159082665611962777556042558040624437728975637074715780290855867979498589752227438249911714177603558450671176417092610080083589833335950664465997935879945642128809121906162108315638326732589190904218657340501383744193789345891767239668029606777573982638157922373153675366979887619392346901398391402148000333552455002442886411894498844531278381624895147966838527610757150254394178620965598320524740997442531607233795939463221264567816603696468764013344036814124513354987687866292720054361476702460709576106747244370961392615594212897619453792802728334021498756004977399372617040152699476186250556581520005110456149034182777296801273174492840341998711801750293625685489151525615167625722587101208828358645993029374383074581595367775437855666273837668495059796079263948743260662795845382497739093097288163757252731808365455672007043752625008990436454952654061663569064247256064405148777829876783598704430027174039686987786006062595763330145875892631418250223301897959629445297140638723826479434816605847437323764903724439765110876192629002975141226285336331587708440128887062321713682172638423294904544329626114547669908197404200795936526070898731338109082473051695855040218193808433036801153563331996443156779922390969308174631351014445069606896637341798926271225803744887037921554000688898674448522593893420620791258292769574334130182434769585749810859171817394797863990501006234895509773102594216980814798522595061259777287281374395300521224942097111503511046030448243857832736242679896509709851272015644691803687356819682793396983725316528780590507860066322099791531326212777411483977115929238963253483016441672243009161212095865887735898766261957960594637765141520355787040248361222920338101447787977398947010436636526124106051419161054633601990569273623178938986117686553503186004995741605026857642907975497308871272159083572421086141409557806316022168508064762438577127189516063108587777684666213356149123084613510232311862719554816838134418106457122084242902326669367899391051266240268010682333866680013220603574233847925486484347882238735708973229047078930616517236257757770104139210064320592844651467243129704740498249916790489322459224867132918549867828301393327595734931334950548558785351627841746858142756248628997581018268770453757642304239870473276294440056791678172600308304093264209818727010846577769190797532769567191626731319952738786393955259426889479413843631318476585481377033577028521653304048479530366060481155367357624969339275767908753230457483609600163289278930937596088758797668034889582552954759208854928427547684095502356952620189423685510922728826483769922821003282654138325155161849206851559461148622953279387309451935408508925735931927732319294653230521825286186984986139902696983223550918028615414807063521464013917762490229740509631855567331872532347129872234662995621166102217070517827200196639051940178412876804464283251599968918957011418456563819830138676950807129875736830004924158213947181008196042254300482541322483498910138812189472251287799337004428983585518726316199174685271534816611256681016382869069299466830940708549122040314164321764651190377661034298856462571406446858043261621573648526702378573188337237859235717380484852154249621889846627894372567495422930357020087666234124233863367780152683043778876734045095985309835030955556807922926701729071151003111776782984837924152070584802702131274263783151691543673267102903750467982408195671287908617566096128293571683742082047983921321429539354056313071990619017256019783156757751383936565236930626077341540548871575052339728670100402582981839765659967193943657322644412117591910842419268214456148010383113998938305832039892723076174532721931765560417382273994521297258818829134120873736357901075020495181170222499069316634314684254216808998189707437830754158208713514865684833277421527762300292575056904596773726628345820102494610117616977921353493404650332343846198109000818727603291164889888862181436240593834499689132256595584283106058808356219529620137840256453910941696979907370230420233977867779506719239389682640671625703016237737925240780417607944451991025641286294292984116186575107202802216855754387283524855724817822967690511182969986357386799183696815913675529287757379409438924989997041783041945537020468412749279490445695459463557078715303261494769244631259354957361560168774095738317200555970219843864920228864110518864262598942327005124825990599787622499177742475841271717122442491634722284321383216403145649503716680897326631382643450926148706317259353899920758972449641602884932132066745191596093299977832205784583919641284064151682684631383644465609939796721674942973614896698505587463710077917133836623315814644184634415037582710315219644301083521897231975758506335463641737184446953824568525077593057472586059645602511307973841722080484912658231237250909991609474490693069988407594314664500769801244121657923272521335162010626320687855303450165277616432931727796283103100255108492731651501316985946306710136842654907255514569148465860902420938698016203201509362660247842279898541631270334524635853435756242197369742248244890048349588754845034693194612622986839869775807215576324739120628431616843952898819867615092361780306497147052253869261628116931736050348572947748055707594697863503367812536826772320782469308634591641482813222020636671866261017047894704879307391813763017872788794816312988719365426305487975426209388245882106746939941505567832137383149221058219689749103420628624594024139807185928866444164617753942456371993027878480534637205722188127511123222349170729909464788634120951697117545122312807080892806254939159301663425912143405898177361352764569491849915342374457892238371459356072280195590726021165165519170278245995684878182256350235360959249882496453128641907865326788240488117120910160672279469822900756814726365020614065507386539999764770692634881572488839542916566258880582762694079849049707866164039971335796945161919348104216370756751084974569136975206598889064055778364635469231371335455709184220312086258353549212800464821589012691512939711755674837304743126104004573850222801275048800068847624396687600955958014857189517212778604863753121499812275067888189692459741384495466840988344168440574491231736745703992702484212709709133552739575541731726688619420646964056529348313031534266191746896236301315139950177992362819736875136552315091974393843901948748759569268594992268732710000182854144275188020581303164401092943262386938889280972079550869638678542071634808539610331002347199920830009430542554021634232306249097080548419887202828442815789540394881358224976393175066503271722181946567193196203997453774323809594238083749009288138065626348429889955711410656760260438059760784470209500225515728422347746466257214608120733911650959281019592718219750859243442210214383355911923190455211178331090335448226466327810637282539671409506337544630487118885851742520134448352171133475195197791865227106351028963723292814432561761900287957467128220418654989139740110093158529477036842074779588796179426830773491507815072311912394861553588497656773972340238829145569699032444876648153197616865162899544695718401741385810273313713122011643698050654372697817132990551740318477393450840218121809937376196673748130542104198097197979613486385975927221498688095796519727045407938351181510025381102028232474427358998789637208780548349311190088900142407664668295792140556623263813460137725297038254547896360388579446288289973049515442240822386398063175194902333998498899369376466935016777779416990426352546787992619338201263507293466699329035840704036578222795425301473968266652234129739215515096305929812071171267768292552128032971801331824170168661088212961057928665739807979291061785628865983540752829049003243360610907881225678083031038544965132048939433823274582927873649986407885994768742437117049771975434697435597964345429215194808039468332773918631001440603295430284641367159498199955283141051100627785311499497460407688194701054002377663167896693883629179049572710456304357886222280763115790573299054184402513540521819701027234767665101886530959297490146681167891410212531647442945264372307148759026116131611579100994119313011834809167335057623270375947147303401351565532708428805052424386653996781327270411090495463005596498045490360486344184765507335761805369932886966865634781888220098911427658733882429454684733720025590344726465112572181927068943343271136887940916777216679751404376189811343818086527965759123969576540279590012375141003524177917935385596855261768068898321475477434024692392310732777175696313074629846889165854307037876322629404763696116577182999782006280940655625460330531203856586541521329848984429728213504109392176389951928881358574085081763544674589444220674877160455222238523693291082572349244494163539909030222966781189599435514910293753647490091291557752596633369054325512203776023874908485798293800634650318288127759571069248345292400750575293894312552118998916566517473075124135831416291187846033754524399470730303016199466961631936978689352970263641443519209733922974265344719040800708432594897882978674390712847566282105733821300365850776794829460835190940252336193395019589681779025228657879099797709849848574773972422497955998058929177952181863895995202991357962494055215500482667911740818519690973072076716636037822054759105710730412478405224348441275149726793632687686177467506477747100200032367511525044380968300112929365259969848908940598400394212713876838806287630061236328775024569512343208310212706879294617374879954714425122747342633691591472882673166090622026786704039235171097790701936566820574996449556827587724571107845695262726592899802011988051010717703402140185350134450936436991960561512002430302155057041670763437860505329912984145783598894506632694594441310788251715488179583926492114060504120569227470898803632209363463747997121878581963553404087817588587241452218841159054169767585595032709150397270044590831223743911393419722576929016042607922449279513714804747103589155406471151276638457240502149935723307241819977938871822140495282130359907028233786790577843134166556448734267923218887461010841012095425294235495636720499538528675607012632475438010800054706600520386310538072162081734454438808475754571439704517153199855952499658216780668511595922242890587087579514288494591947078641784390379911492442741956620575927429600604723316656872037105132529302649951865726195467427323643324224500464033705294755062643462309296261317348723890583308315547818935071496431510001456391067669144261698426844572296615239395177438262852537336977729524109748109728071675919388380355249624368375047529115461023343850322237258928098075916397763257935492890058937469333116364277348398687607094115300819382886855505659282065086219053976044479381530623968854153534237905246492062849952750029093150249519811964281205536235562914812820388794403083419774592266196951941639994584633465225375562790123735244093687734699612112591736984032733644441439983274562989795770185151802907013036015366852688060722129914118113682287386544139940388003198629800538210189543706499277141429944957396423321542011213422012442174615762393655567951403484095582342703065301026001890293306506035836339034621429988509189215483751777715425637364023311053053726599721331224851370457532578342614407095936381868204670846360367814056058057027649447956796263385503744274244583000550358893254355295513882752388726215041694770605465696021258075036215464190817425724635891909141358274467262449926500593667095814059217570649583890348076758184574739864353117345085438247131500856397246424562007208013853986519459212574490673840822713510606756833582322319319940484429612638804434838161636921736242514242210834236837172289629678614998002729077386979621064139227154855533230152605258266450472598456061449107254591050285276933214826509671868035992097949571523054438311042497858889396250016613044192242241489408149125980657124195746142638900114865483672763375073932101937587659504088138496232405349900164996306273076941180449141801987316721620701522273684545284067892537707908977579853393626128316008897183208831390793454336706162945008530298333067983758989497311963463085988960323336218738624174713420973404983692973134479594585649053292943700291403013934411319624781391528937218384744206265836720889766240285240220797547865081439126279933729800508140338419900095548427646173625717002788804953544136735230563014900172118883192417969754948648198168624197702156319356296068802638690826470267794572321779150703252214808326151755311197947152781273545032501527877491868695734100454336900467417870166120689453679495272160372700201653499778276612518491346954370473026171360199707405114669205404527310749141410049616433382677288285774581982393626069500624647900584463713289188092234112827177400890462462221243591543709405576558616506052218149757811202386640632349066360392866024410959800847885127375559972123181319744663376274373483390571454410646672451183415252254069404303783451129675094836370397669223262201875243003602106652749455764773838090862895215058664966815976827449475157094588318523828224679651954696149678782457770862215402484139767023167195087769722661510806447077857011839450267517143298726692750508660440102317025135630453594917658268449254656325298746254575181648278308384454266692603123851019045045865411971464908018032566945410428053477646223172925501495828101440052171592263449430828727676333386706012943594944979668479759125039619298834313438383145482796641056421108172589280723375172026866349642028697144516041580134260730552633918085238347343690354628475303866972815542477747045271492724086839363939504727968048495083111597157671439423969611710171928468622192703973392343923927956061109064686947292191570992348154337926653766315288770665824863001645858974077021097082796198058306993943076261749634128430932504220553008193882594129292442460291414499279853160804277287184306416161396425690880458444866352517850335857782146643495965159604712184891313139173029178184119479831122118250109171438217491330777969708050693684336445443461396411016162656107107666641210978096595256962330486783414485824071461582797498846679672210666226397514430111820098663906135207066295530860253435147370840145722183836737222571143914714516634009057286565236126635533851387549734518014782626932759015092916506762957082412309183204244606143827940791625085734751055750457640738379050117129553427288453776767479371658512663895700424539881425693591543272962087710830097082871666698829870696909757238874071306902062827977543921914065058517366388098058610715974535290079340679911968143480757914269896381837302557170962294179794215957712784809673517746848978481610375381073831573419846783035965154853962307394869332779384697721376480973808852305733151892598777701717939465931290951874201481305974310169742227233263184857959625904812294691523821650478910451475555963179744385979175487793213883734517115950254618249204793122281823469117267855978876715149073396493079310879228627890563086676450545066626891739930734902727006136173350515195150029384584316167220679827018330077382225345764232994078239002117402686243472117594471369285108115182550031600844527600092345778116119299905517498190471377518398214570938140188727144114514902154440531230995317135512389901553195355002939266168720836919004970981890171851282914059534884440268938504647670383728795092313092311462327564080446133863530691927492481388644612902282730235580722220689725601206386745878227714965445148379867186458580443244708139832441422094337443693478655674070077293525276804745004920740003558554260662266834510691980568018194190230957333960769576970165448429440671701799883074768676368295551245493388592624688571297167765475326586715538582235886149405913372053519242328187673435899187287986840630903215423517832658211937044020009740150743345838120483906224476935111884488103572623169837593125256829074921136806325844931524315918450447655931567657338708960928726231497367815645113956674656663134770314740960546843448140162387691808145805303804690158425005208125024582763620301203822305829354505481459044382656213701000500445739764674022514843907209768695264584613584912866907449862913123958710079221098367815573643634630117139897568745584889062197916077909218001910604375609319153367483199903758651653287158220438845093452644114351486141012052294074255311348109198646479187836342259399057504513440300607191792167450267534195131834944107316624418591103063381844151315896119204332658033844607453055851783140008404720338620572992904940440274779390371763195954228662552395546977130784452172089538605984869116218244912448238794360172797582133521974428643773381862680449071320983179821369643541354043382590868290484358274330124612769235613217709661087492854055832676892774198960705956424964095796663210801004766656753434048702046173517371395788754657689203557981079918258246036456994940634465512188950482338027755276491637771234302018888836437971177108271505159757884091582793384759511513729824600543447693909407752047136077401667815592565788161219755181764746005110209772372330428898136686438301058990319540087076876038620341591914735813192588492116380262812320648464064559807090274961351664810455053457843131710226219476687651019108946068537697678105332391935827109390051552248860494963239912628848645501186577481854077101367482913887557492736857385094794181553192926342334998161286670566544980033723623921661978469439211106062478530316591668449735482986196627020469672732682770595031613100950863990328179063507529373658031104202190297758194371345376806715313302443591314475349170941623303585653669184869543119540309067830833005192897517089984089197236728540948163413696297527966614893268473850255076024570266369822981152066278952855390742074840912483627574699106494316674399037536004237801822739356206431561069523242294527494467877312369404730504920839249277355321380841144915519394997821508690664374166847995045451193903573711985514334577972186290961423457899542187219618497494171955368571765093362546939286097862384935465023497965897691200733392453012174659720672024537618176915705301699123449567006450638129158201349272137326051805236746388382825156211098811289866664488128022942694552012158314608211936149210065397701921935783213763640700660608112888613786864450510414939939546883409904118977451686335440990037360433380341842371894956398777218974697106915526439263093997294745331240731518558013751828069403379816863505567387612067000653108361502645302933800464519739406349339105778279163476798789359404362763690881153758529635718184636107312202853914262931624340878522502076201586307970664259709281736114203276259972834097572446697374460646781019434817327787195240694343678676803622299881469220123330507814166273677520202295145383572338706250489820357720856184788972374024970667301310345306603346164628237355103243044852317030334472946693647822060712597212927078480836123573356462527339962999742296126243707373894057285787612283279063682516900347269883336397186861453695966715720881231305805306784395685513472602301284292932107654802296846098524260152903436021490786190393705711410403260220678765658784968226694334033137140145527215950348570486786769200193097812233072089237573812973044671455016252507034683916525758515523324419395983540404987914985904208924804447685378772781055754974463226043255250170215796024624621624384879785846096782943404202418346196278041965768958650555171602405477598188890475201970939731451769160192842075942733828635679544121475292477521949060527027934863613341134285986408078889917695140267541317184340813662505568011482882912565613335070743116274167570135612105191245775175237706325248158183964566822781695936657314906731689985932416964325033878210644381685346309269734712774611598995209220132000655073554469947345870664548914056170753060418589553162786365766862167618814951363105844850848612546675716359531920592789444872114701581189960303681126865455856427735888790078472543544040298345203945229835962081484731941102153771757952793370167153690016719739405290319112433893483114716721234089238838172403616469323361332682479789537299911969957963390417359607628697353083672475858740480195340224922180569374671682702788463955326527505044552679690582282384157111529430626320688572653757522070165640259832088755901690677419572881039885976326954816134389739406748918252935721193005763105136348285892569260179745723756800527195997079570607967533999939826444106913020261769034884324479500480439640174775932914022433017762597553620971329325114729282708948208402477956783996143728379687199622382487215084967486066347281247573992240426371520185028455035337341705613463800275578785655894259256234432013645411165258001852620637623922513815616979055643301485092651912079944309239542384447770221931256593007427309039601927480666156788241974953755230421120486043915748136488757181739271368871215956521738621148203572064544476430524569527861199990819633771874852436309819184000006933554071093826204776444966888247948573666762717225372058885375112447368035011244181147021640195575361319289352897684023238974084022283262121879364848977711580045920248978632468221276060540130787500461059103743470205240825238132801797866155332793597827738884726422637425902016903879881816767482797701630087072856255058188525366958298292331601757034532448931325156424190262596005917150105788828005913477503097833909439107416259816084270626195981408477280081520204895196979289383980730459754537116054863429388841756073715753960227589279659595682194170820848154924372569996719270460866285631491284154360060417990870246130873834798747650384961847202535018247876477725314758573332875423532142645250816348645228334809756413241646142243808173752948627000654892004647162415403499081709712116053432708140651538266400504121573985008860376629042390088746631923468248054157780513383974433744084207647715689611764336571860930506490986338286235429469535525561094108716140036756067833887495298017294249678212357215074037739261963363676070305114220060371812916248045145849404269506660347852992726447448269523742577528140541312339756616887004065870197423130550155973289230383073286666251111442047353981459157305750129208380414908729599910725823012660131107702398234035382794996899076845965789079151840265343148181784391988142437192500334060708818202423056904494120437351107192290068378199101687097031357281408381413311487158306728515775968083516503177306048669189458219810376458270243734313827207746606247712324040585939103196085396955126123156140413094220179347369790055514264599119337275136376236342132842077941803536173747643577200324143318622061856918920619801702201871547512024358916494114175526225688925213374423315553757508964087578016977127884230376781138284542248413481816758999708681458722450509137574221155261649480514544222396004674240426630568331973120577297961500422049445011465787655411287879707022431373623294539601432043637427023215192044372030114265208332616923523748264297255670944501957072169251774979847768270248905772545291701461480891544419142562855962213670829458014556261037401573322853151525521105915661128183678607965877414610435141437495340059792370211607976427873224167507397919725932245536869791266892674066522011552580378967161588738885970942423572343743726804820559571804436010613477946108238433272825311875769087015912544706375029310766143621900983461245046743744292131071234911983311650270940897897070862999543569858634006552530503819543326675781991616587435972219686254906417857040411355337240796074857868616255328872604598764980834886509470375928206547661690290144892205972497523071273386672950365445926984198194921098351945663778959995859671033525384947283516474609383416226415847600582481780609836232373666613189812936885680197008402635993414372506628267001677746207939904026948170866351663144321840535978745309158312253704033899825008747166975782119970151981786174737009981599362154552929868172278795369779712582094717500666183591572456705226410503667030571367939621896692287271985598681784641638177941143563470966627891631205426140308174492545254874735100453515370039807083188403857894247128348915816780554711818656029802646699894710404948095665903581349602696324713917969316368578948024837504006783239528104993020214571640016631813698567070767375412065331679503253396132352731573559035428007356829690652066289144479446077916768582074409678076992604992481246375837544170810772428487569620172401606204569336779072792476478095613753579652613698984652770227349551568121945897991749170837295524383946003048160622683699259782645989353015059804646984963640550981272343149790092302981234533609872269780584855728013813392285458787201803449303277293943911549842824065254224369866015103816867456933500834182776891533064491954323258454539328222051097435337975744508961139389821416396168857527027597532107895065507705996236685691067809712812055412009551136533944929211593851733206403343774221089588028278416582923210502479551118036883509143391262239014561528369897457610017667942658822975665698261535051593261874060617392631239190026370384056137770098626944854101484938316540409249470173307240275938612630941712955725948875017459867800399230120320230777826569980788229570938241312075178354808303445255984142181269064787018022212705086215373268360614233223902935343435040415302498868882755514855343925959835802744468201276947307557876222960491393131412695449843667507805286773136669953077211825459462000467715016236756802640287797280983190263680080913473449993225371780391259470506852450590572403951667850097697466515245056097491093378689930140611152484975129429526387664623157809878043860837382787770301216268191977690938697396318497123552866108162348626811421828872842116047450102643916982833390300098975877875358391137563708726071895916742251734353946366902158473631501027315872612589205986722846985982877736351523303526054209599594733177313043186639440779809212403370035460506302991145819687037537956870386913887462472684064818861128536250384020982216627989272548724830759099889861631196383863428698977132857121927530160685883183056028607902072835788165126516222296163600254725789602151904023599886351189248032080833302306138097473934569146795103766854337146904456105611493728627398928135870867243988604598661614459909321705349768944682005402788037940797890784686536055663033951829945769856057736479149571095167680318082663116609349633396565382660178465900759873047497911422668745136581251438577416998894448620806841222203452716034016323927381265466710537952179552377658815433182346748397917031145962720118787737187474542568380539044173261547849755706838799991548309052063987260315544243362970632352597156356224284636665076593703340535353893559229407690255587353086834767188615062366234835764789884207973904768948130040242749470844803330929948119430961972571595900060660113646131329260355779538354226972477023806048782841800586321129007342425469329706571064379653815823308666567242068146734368063875534149992297449328909211352040126667349829867732861180429110960480392241880029569461686566372406971035635779469592434766044511645812281435845718305760396886749045024741199857206991239965471681334933244435772043004745334266323331952780561692260839168620693648691626810910748589748534003063858321948363228549474571838014948358085239307812026497747911059092165312407102345050761578033894794103163002427993606865245423497561670628549663488740911072302952384199351641461826106163529081467827935868018706092531533179661242422942119612354559961449704311204896486881118053041461550704386602692342132217037955127321659134055618145169869824430803768332569664526522063775861580495210443176743019743318885677258836666770793257371855215270074556694198360921763062895748628833647167678154583859006279698657243251574301083775003502780505323714267611168815357361987990710501425321123032264855165778363102991276394813076236766003108005629442321673684662304194708809764338458039620368298118510537918312909660164381399043353729132921167719885496209724465164628251359683399384857034750981457936454823079083804976685471707399145207110554954743973699067175041500658216455402395493674050737936084458464416356375641604542887943966336260000717626235908971776134471038944610510408787698530336056677039531349134250714831134597788356018896899509108405162930948673450859624405240984122907163477067692152308581037828920229136291860912428716877278767164332212426943186401613089227261508651784324567619249743092201433658197519341906217602510987047852557171789377017110132836692943713201427739944186700634670901627380658345838313549913957167385164151327906196447540976303816273617071941721164558592373628261688119176729469597494524746425523175696964763047652766316734454423261470695822000811868885958068238429895954569825449947942684554517815448735193409972194787063294638939932252689751727518728816089047767952730652258182458502271456945462776322448401023593968852753923189795148362441135526158108376298665813100005267818023366129124753800462247106794843997799435783521229830497599433343327689596999805388756000166097623643616727203257275645076619166833572394900574943769396712287869745234881382805579293617577015733292788721702153226927517597346912056685732306674252034580579769440703051297424731065021689278333644673571550420264359548640645266985563256255383842651952516313132026530615609292256879176942184834607067444738204235705779647329457300670403174788541590241367796286689413702898206720507889291957940922716326445646409489962967497530207629444918741207155228012573953701629468171710760873404801040919378654749777796061200393481638114379100560180849786798798904517406626611726395624788978070773560926885015952559782867491104325350612401296277741152194262705767466305970389640934271594792270410064525291041042807617592797159867305112714502285709137036738583080103260923424168162807210373742077620234326247910599839370997174749499896577837336897306488319735665783553257989037746463985302005337247509298133409765085024580788601915685118883541816004742540167856584078085490538235702343547508177512632541655409208710077667897667836672243278858502960986221909775040291049650945009142455106691753385991741395965206579883398208228332110222557593436194183358548562930524902174248493721884919148163879195216183794579944395847073107880239509607893934106790050568720477124853652345615693313905322442227625738864380976374914548490818014358894349957481335508062079362076297059956856374923445598917803567484905497345536827591210552516002684706898268473075206102607666026974757231766344013241932848090723205845448793292314727536242263383116565220757251790668964831021002859118811018256453572268179909305914849617669842633410334082731610100101408263311640482319945918214349408906162641238933159174799884880646722482150470830982636425517151191066250915001443043729719090062706366196319154364898494515737846673949979298277319280603835019136927415625060603871089968998163281171563759221015848203097413469974053637846967998381080180437327846531632588673580146054609124757448595814317817206779514463578558655324392027917042685268755337630212399639680666678726254770856819299225827836648790549043039914008420150907413541523291095051823785661962143728614473780187994055339777615188737639670927360243389096940581411741979194291606482204983263425482720327438726090526071682596738317248672812586876810247363605567908577742641081013619532442908539291714160118230184083599245752068707429726129978864382407231247900395425661696582036953320961067916031730701320993149406072962564782498190881654054465505015444959846778019976268300116539341849263882457075456749886220193439699859373325337835556564802623925707231354119598395775670147682012283332728470412501824089912370984920516331517389566696091844523865841229038177145849826026689881873190434734725360589039525690232800615741606792067718729447416425429420994779906847638256660001282912357747247916100118666521385671787923316050920121200053508881591291078466519658526467707929802984539456992045220252526835791343029110930564467491621306779233447830975852643716736185116109432902766006844605700032619180784993044992769129311880762721178076630214526301012360470996943138711504606242491720179075501748169041517225566734751896158929628482566525903760656558564399061295927503085475254460129023329718807123156749673463656745802734068504342547798209184100592746675942615829607442093886135763653132589074859443002668939835024482313646485709322025682812966513690207461813165352091724540861877785736856760878568584677177288720845072022793642377038362498814274196796478702846359037656266865211979183049255485281352474339356921696244942582444542465689478858771103351641249182906054439890781572148075815637076668380355340788995903287737604540036369526273424783266838292717831859918564118289703163269698105206308496918864192227329949119023919257951497718120158863529692463042618323647677665980723103142484408156471399356962080278739960451975447720015538166402789360114636075873136982188306747933502868276509917116614230476832927673360734078486899482499856278203477970063455815484583385131460403052662810916297953843519392379140151740517520215606649180551465959757014241717222617719929873963703959346949513529938990263133141524095270355898564610793149592424861462426047808049296944067574408950932914755007544714420738750996518316520263530083841866846364128464516709124462033925371654576686052774665246870558238858008794278642181649907903224521813512040443372081307669123506311511550300073898344744442855211549410021631895814861413157920412356808850983065823720467339557874018090902603119201036574254668365466635766882383240812535771368633184923876188091435802289780864343704448928479019651950000977356361897232522388805775767311826096424674030230004858137052381056776328241086086310131772307214414245885180570222865923409545439622463518944415216615493927857185134636308705586498113927592401218273184282655655794135799163611451898263853618332079686657669271869881165756120706999400348987792613665781469661096577023318479646317645788923629125916543170527075626528207389660015614750721363475054767294833710240347822586698500033854956104535271721740132226553940050031782271454842884556248472628092211132795322867332792114222980428277008121288370641929754525621981693212512486711236037683298382482725555343253563842222243597185642985069259192217269192988863718613146413264586485042760193373779376155094727124469815585349867038642217703939215923910771736673614877147998529927125674321434403225781812429592287733377989175078124637345888551987598632782307339426055829433490362414280582830869601167136079468491046461185274687967797878978718544639139203686025588597779691835917566351250831131064328486173603451773134281442449928692084809701017742292767137883787197437934915905693029213873812941084197071879576991230368331676792381683368687559108137286293514217378158691148349971492524155156450429024611262361404151433364756563700319755104962606999101929770351373821498173136815129099852394360351271936952124709516386665604578188454277037989708306780399032543054333031513014788903246118853012067668508278345716873461574292870617958483388495876484769985504491938621688060782654266340336256350924905336266935578502894539723946266832927510586596719341258493459852053039408662236377329000160514612961999829776648946637997842872625683570212360693852306489130215193276791221790807270235181115701383152185554993492560197416295699179907072985985861758483952140292461043796711727884548562979029706866558742658585049955649996263775251438876220176659830169165816518515202353435224226443078901929263801050550694738576506796154368707221395936442606327194246837130195983978452818631403634730760407184259249805281771197702021269471394328176050536898295108909084334734585824682097585602981780386851477336384233887883212933087567675407281184673556249959720996192928744641616848241056955117865135935313703186817447272552371202461999054773941685195155513956261652884553379953033800315496546450847771185139282295747465048461519779981895527819959393744242400576698274287282822790525894563798602126566341391319416888288309309818386888332041893065791156801847937624729549930180514807018808314806528612036788317140833484043266113640916070942467634061708626588877380898343183031245037176738523571088061205951268762895793492270944944458609225306763366410739973313653426928165713256372609360249453200708368367467326124851035028231788079882613431566297038811937885007385974380185707401929200090382091510650431757941433842094944998140444152478378466359756594691715896143529399258682120564144701980707473827498745720765381041889049259380473975751707868312087495683164573384406755812668144789856969400113123798562011255935422254151822442415110298961894237949396532953807237430500851655665176974082045107275547370132999767868004183800734497439929790051505196890473390693831832607837427623873712236541612610671302835968612134275639038494829484886589901393673215685708054055193585479566581124440761408352402912278203632130030942107954555420125686014288221373610040233714032739162322147377118863375764108657948839585553400878139620625230187093385865075845727527696626047522195001265116773240434617867801591147739990015361039572892872107355707567281734042498836972763408998517723257935952861884266828635845477583514173990323331564996643083057008507514883015613140197594238024670400519262013169009442412919718509973394660639813918941310843154365328729704263662059930850729716384973291906676334114913487614995708327415719106249645100265653192359154118538434721010859382285297787953665378379048181919172978831070951109556498674960933671658904462187668394547233093062259274518832541837273230204033609867501010262385747348123760947458266698950896044154084704035014520019315365424935521494917357183598857820615250281123941383471958712379127380715769001243098266687023022761392724645913262862828019125592866235911656988785948058506182275585787739048825526534561840753234681089118074732656638210990805639562128368667318085341035813330388331716524338320442105275286636768003164854511932037766095833390767753874459925884446762736718114216826452355920962383814463866703119875393736364845614369686481315650279297364376588070461440040665720682419799556129307720561048812698281056379615297876393285608187439682473332927297464791398159476884802297751953838748482630333945333832134183974568723700338980544434227252187483313371801566516813760694006531967811273612029716901503470878934491582452909690524190304925254179618140266926772309720362758146585227963900065387003184901557940461823509463748751469071673400857454948453792118153245786153907972630577577622693555811185280065304396338691627743921161120847065637368543728701190193536832474893541200551112496147256163863229692537102310793239650733934888344189986687818255902883884725016875441075470604400832400280811068969566253985985517504204369867404948563273222910666236131029787640238007891309354661411325094779055433531453868075018298820127220440692834537468496059200612267516194454139001437810597113411855262398077786072422347312375311737404340348134878603939825854487522610790133073622806972580813171921493502598622144831375989788209171698352503063720736743494227876971564992329291813437908437935291275894166285242860520302365927022824528763651002803517665427943857216910674763542294431492890970100823855745590383867804128072126154108530242152853278638813992009381808846639257505992615906911037259446855890353367674244134617038303407661436902736269814339736243397057424640438134585299915892367492605305389855769951511727991481291267970966025541590203738814619651126446589778658723869045079747969523034936577297786440395393717392504968347898873495504577957095070180185770432977215426778135372698383875092029749447108098083786032291529773423074857382749485058836618750068730053856490521182621603702481966740228186195995749740595043848003188315423856217518089315494519461479122206898143987137874075071505851559396416069100549300727061685150850854156397614279272766458391508200688607410903787756427672691138754246003564323001128188840497203504238296398400268604200643412982341421647775410867225809367698886498577364830147302567523327984843843775840351089354734623085263969496421965012086906967846209264327411266876155227564847002577894064177907122889448109371982800076675851835379526467340799359546851619463029823300983960811041299299485140580370863211784362695824914746662199820863942873169129648965060182934977584144798404614649326099919076582573519505178792597998483706183361158020623532994534277365407138436756558344940044901651432160101040455695527993306657188678366522617876287419740224356629148449290505458771516425722609620415534853776167538838368987193106570231063885423724609108410365684557244288992838347706692172913504517456028254594326103988651252065972182480963475307218746669833860044579323746584938390690937414029709703155190707918863935946851713624549502174391192242782630943988549813424835845027262288794133568717602881957943508233680494796742332477577795664646045477819736218221754037608100618329003229565571818807673992155482932524081348567847108991993346518728530237266111001157957468579674553841710410331577932639183557079633653526929114564219782446811245037971946200051850300762457960804728312858310048599288863658639009651464868041294842032467851705058852495713512891531251989092830042932374994438177863213046134555674235485128025681447806906301323707941418114256580705811366760755463304940810879540265985518524517156257114782232264290018254764395740526885151102744331385712046076665654380066729910344199326891276366289979500942617112020314205790832762123531802326405323634041714286344104717670711078045179858974261998821321940503894563833847792669389569527642226777497587767873597275075817831593127364813475436466490821016871068059349251767997944937057002470579926913551574604866078664767861013106522386421385378352978256348454263149144629169117115008608108130570585752430342760412684536157156210578280601686648665590895329606238280453179642443098994209097587103230929529563607487447553829728570723860101323614255390327368386361410399945173510040138821934038655423827126344576065134115110724442973637902566932044190364743888428022741562392079041434280948296067768323798320594135058952203428543560848040823907088217275701404534836917900630748686829053378939383499794658837741724927310475563688198584835180553407954370968579983405468580324592150345819509641587320940911789321842711884788856141855788312323856906003856396402335119280193604395807431090266566766264845244993998534661024153414547250330346312259869510497004116962459456937465647681341178739491528220826670749767427370296326414594413951973632151955845693500220315733673940479234853008715525945977519095121838009773106707697716882903380839385165666281407154784789344874941893177041461619118964092168405044858460694591275314597508201492975922479643464231006810737389444753025696867010177567732606054722590632622310486920834982146970957515891743822277932679267938299350213096067956540185574028923194681043846784684837365242123991375185135688449623557351595268455330974720945225257025657931223421690247485119313663560828189689474214901541942856830393856507745017270978496150314528872653794715162287052445806611157507437174696159052196006961981350421888774315068333911045242528329607644830900194761309755936375037924555234655837838387275177941894011286143087882927094003095998339138461592015314052342965414654418705858336513716964403233155639535404344423670184078977373349351854405706574209347504938508903915041679998043447957524102384888510199760434155996740960766376988539137997335003845294987513338899323468439169407294898203114949557986348725838733574920248457503255166263960335750703807593984538062072886425373856519017099793844859955175709146039391480529845669511443760259163713227227711697640101602972931888407233073788737032143404928711816801416078621073328056772911307418150314726151525414939726204885000775190753759688194353834251352920255984266370883156097562288687532306991079354090498384875326066284171952332848303693680863018213674860192269111371954436187829598511621192342622326883443101466372952047723378010661732040274196413290095685192516537772322092853236364019870375858771573697183325842660087723845048130784037461170699337618550665740296735028808532702257125729824130307706445352361948395675811787165596450594898354448606672905800235963759405230186609979127509329114563554657043758914702586075753625734264330128439529194698897259362379414821421087260970878867616280146481802690877426481027430229885711321107210706347816601069096157609198717428254114541788332027575774037994680611314622883104027429097929631400709665962681932630970402376533596732656749297918404155019431998503983724904040125799003239880582672418001887260855780765336050823609241954994579875881886812731186799894342919133675728685308100955091160590279709536116157629926016103970467429384181189177766609106863925680271787287262857039027019967117933561346981142814816117161867427010290738780429568307961036450243186554068865573084584193139023052361380853345262787820396042696423786919654066484981321239897312793349466237023486319897784224342546372089745803903480830180623311979955054801330449590549589813769118298986165161179319548990931889595327335384128102617388486812915195563536829433873032206436210298832117038612165710829621788335386673718128049511871559424797909411173885550067087258936773038377351399624916397736390430634906198874010283322823122143070807828567179386785183384567546598748927122885280045256340226216057674818683095702688408265161126995226894331914144494740312173579240225145502681340301613060803262257929494346253311183994161837110409520269653342071344444894978474262936025958525829612190963973676767063015273161913806926248178256711854952529527915595941393752932299074805886008767413923825569654649778696127922178429136034829175518918972681347586201936830496989766017606359793216239257025608808563060014252846472798740724581922244581120970319942803662186391445524204250283789276543141606861272156959816050437053004689708634591255389948532579940567129090203725693516097386359861746475386725559498864437279095946981944628272412012908327428392425206086953363691616268540949306904601764652083227334285715211214285620262147173856739252718709406364868778697662661404975539842704558479575175264624036730492231585266186372441438532985923347256292972973330291124913313205247760410043976871186954796614360420076318655431418427785347054792646200543053918802321051523887154204284922510116493826949310173318046638153146576192442821734452755655438014844127368576967142663803309978123889860715125050145461407219008228263977027951908155317380775285212914918754028409788095755767629138908571976177792551508560620715161589091910770269143910887087086952347928328271252514306709851304000258075767176946714190542381252533199809000488146606101343363736105042990202670004900291559460754078104146100980372722397958387578038022200154691661162475246461242819840926463778969460415464695372071515444716939511651651325543712622955585438829811003972097775519991393191029348352597248391398897268332026446337016267881116964325808469504137991018614856816926768061149666631816028094045355739303605365463535048105686505206269848272709007697904543204407227333875268516859155946618270453773360725396596776775986771066865528299595299212717418452843775778584030202408524240125165143354970018097409947583439812891839899973456929983479716048494679140041915874469363029912682030960503612298800868169210776816419679524533231989838059169893150874415713809663018272984096387288362970388708306340502391891352654598336998982169759184547667429933304343525932464537942013219320450358237210015462063353792256268085624762516915293159145304245040281038626243115307191097161012128373714765839518778690166507702480670596367912274910395895338617237264535961893337524835489805346816472172917770542456697341552583000333399835713695291236809878068063025886701975599380676297829590462915613306670366959885426113767300185778960316642225135408704228965141770423136504551819004704285713606994572068191729360945354712546189751503164980833518942950046910057782147934863239132127213599401296137352506868268623078935190868396960098876611977753493640193664694913131650908597557407669923762912538484071911309545177708614354965537711895821927255032658665243448329891739956085692767486409902398567367636836310249862851053087906783981010434966677093907590618695370870382059581595715354747030802131406066997947849585334793342001645397120765953018282784300343106517697998364444027609197395858362401276208831148083470914127774623544483096127737275240532843417518823500829115377194159328635945685020072982883037866455294159049317127688574986468546750422998070266708112555966881791147985250767463999704425757983202035178588839647445854478835475475585892903242808588762608971411615045939404755234414171956947865574463479632195739581597906713497445782461299529757277970743247261519884281239398441244433016250255959183301788241709073979872141536769714538662026071405243870705242570924825022538503690768348235626951094006264408027180659703135614914643076513952429429360396145953814257333060251442454106892894099446378693802763896396065752388470132072585119379518799218819959428547062393283681900278203566425919029451825722812289365310387327247656888918025170040075234354954730058053844209962955762141396294989099626974747982761503773915919481705619569698166654285413797175354983339473172804948182996019765518875145545376165095461395448801001809615878278630314918808145047520933660145326538736281589180936481455419491955639255704239065970401584466473022941787847158460329682594820516690717121248948184607262394654815194029244122430863094679680016708436649814683046780194749906910696790840244594871013611659515819204553681635489561202294262200509130319299522727612147045761997018847701357149323630166574926035879071900522543718473670351119098594253014293887942551645252208339552426609261433325866666421020826052080553659441050403104320859244175903419029049047927331771869102891964548073160196386938051253821140521980560023896077515281087469610137177061456771548625341116291633022122471069145875420158123259334365810293766017542163680647485452069334257012211594596727987027480653836315433391170671299900583009268136453733307930841382358043629917630996128659212076060250386199532571217905435540756863601381457878287317953028114609101992966752135649592426843438359603357143494695889488531312607179122732383582189791727186820897291769087351298422486054139565352816940159428300260889546349293332655621580205757347977509846571065267957959663426590237766198372241148778529717680200269453024954025479116181513492274200475815274364657880683556386106395243244021427535787656537497300197728462126535304116005746615275419588045704198008879572455759773975708333575524773247490233608270178008962687639513927158873186166960987905531719654315539985694827148256177037339403219080262513514313254557644993728705164998740762043790489034321459764943525277742881169701285199993330694874803659228510843625321150775897262476811715247216555215423218876301402056003439261473535063067537145087134796537501403741994957920907627731431054154043451952683964491032999733831794575689946569500207221111799580682001598261488950023503936052710832560218306541940337518418028837673116526206631129091078665281504603788357738100120832250120257875669298825582499850338855142750304333324912531733568128371516034009310038333860437903543598304820825177401243520023688107039775336754189609410239785045142836504304898471805783036519772137511904338838370299224127973596514154579967291748833895833101875985151488350662469042672461307807795551314335546581314566602015194954640747531298919573968990543572775256808064351471498552963842742871029964697658810427647421519111510445275140032923871800421663106005381061352682209240668511784240364055726930460435646788446265683688013111475840048749831728610490129883610643752798218135769730476074111581150600595622878261661352814731715996208697536638834327324725794902150701222168380164811581177708175459146251571264760924416187810634503470658821476613401566467118964262882581491096040951720361795388788367614897741634582914180723869366451671145900111880710692298692320679664966197304225407530440479495780010640887375120043635732973120021499138915225907215242760743058030579347352371961165712742695131675080886833126715444099804683882708796820446600793813515152204289278016103886319971107267808911511263662568868338234276718853755900147283950528998693273925547172481556675067885394717641390117607635486630721027846045624648952995918582445462177298446662217706308140130527823603258099998352159740526879463863129832073530426411036357772080154484720500288312698963715329464791811525602044257128139627636295452895257123037179252673862321809242354288701113602016546377988867797852519051546211433056725335841996028602398302926626051503028709997566373253325062034393372435762012433487006274765340924916807842241896186827845946306279309553362444144254349638737348762870281127466300747489127161699506699274490023800805314566976364197305563000964710196142131706913425483128695479491721574435658911897516577294143599642994219272653665574280469598616365047399040114599950460112818533861541114855793221263487116546151331757766356313914794629070293799529066916519460518893277439228247407926882306904816315952650463479364105600381791834882597979187572658136221045769005167847038109414104661496871341533918854630740298025038583297038699217775636473028073882945405565831774846141664241631573566613047154031230709557694055706812016984759751264885044062731321988253418130305348610715996866806018229380660928538303579148662354614044603149496155583457843642611728726673444524905391700486913861835491897044470354839707283898519389349462352713846358007340076149528336515800511149601271434402904899336616779061614820956704516837648625994626896339070183056804844695063146769870867276848608271471049158982236653235945852833011743267357594203761240871074424224490723969684014355396668995784272619523971955617195717377059431499750255571042696527183897039490272726723118807088589693773409614900346204220273796118503186323802142170861260121009778186070515493710367827259764700783217721527071555133726032672249065036129362639975679119172836475566170913884270505052100279414942835524447781260591926604923600049550541101348113193860494630087946207491548072948254115488114664590651448702240445640747881827981751677610565858132894357019818438699651283935952675940744050914759131484117278046030962457518583585790307389208957780132311858231146905881193824590764482786607222860194641198368778751753969518848001153199511533368735824738082630613269406137519844948723736577668013358021105512522926418055060494710039280701837013901015188382578457851441858705032494086733539707505963149466487270332719917523588137240615225347832502691397151628395516431318302457213505572717188376809444576053545463988943562343159653387607750065120725036676115466518587930913773112343643791734945268133871419608708891588722846377013133892964906692508196162210201478143341720875995587107370209155830194096224125038239025661099005534176524283134808730809830290980231588600367076220669034427028880728110001850416129703700827966070168051020803491646149033195784250131091457037069186190636230691359917069166378284618109889555230050406030809890002912503621863669734154069117839334473609969701881282438534610398848440953392332996491686877304093837507363086788050179000080925450936291752595270307074650062272880036026620727468500600310091139694325119817058529233083740729130636394179902174766749699635575925841427872501812408408619310562025061883782737955449543854782588452653949747785460857361955563198659672536012702039661831969288373873958483359562775163207906781297760666547031455317426372951623106815998683664397003105915590737987641465605529134693049787594772130366506719834726803290031730247340209731761228258868291945488072145269575411762704501799098417366212285070731758133771153585703359599439499560256278083235044678487767354862737268108474962760177238492280958211998127480233792106211311543457491733449445471241214626970908965934757831162909457284586905609644917816387953070859218747446551524321158417008408160382384862519499585113560761719417481941568538882337192850977477549381333875029122839971334758531312229732059266252247673580778700952555124883722855446600404245717104689782931443382743892590556665422436001485997910410238643409003795516485866421812374259573428214233021258983716291558385635717329173310449854281029919093504067435209596455819127699465121249252046217644148372900057096073027229257697371536526734805333017900862546210378299757556116830164632391630712052772959916643882126150553275933300532552899672309565241553225571075017941585400087472334267392975754142216069494825611748329439157306561969368511297483286590484592115080566144235902464503537081323665129972494130445260599242020984345266297447051052829149546519681622953930109780040061863206746688608252291990438291175938870381279561073916281122609214579708322399255852118811344852341274905433009979141624879596495118594522983254677093129345616147395810246733461944613192721837543689820972197380471893264437186911297001000903939112915591694154693565288597388275125800920982071070436631205481332771549046752982502239335571269834154356324003228412518459573686330753719991919524842591809295623129979995444927486114919113100370935696185626842761663018000007928142660004168846885636432751939416495552460101139132252144842977839859927972763470421881809543602139506040499946047176067281422295915954833101131236682944249778978684793701985936546095365270310415283636508481967148453493711791590846953169929608375690184714263051626559781952289121792422200028795996261931047435462282951683590632813146112285217450702832490647669628652903018173502981789194770712607909926135852995538549613836576443587943489876536591787763546147749708157572988867049119238454218905316785908476116885671903355197505087925966786924387274356990540968920197430954437473946862277466744430942603333468096036655556419142636536826296489595663710890593381426515806210671641752153797574333403974100560316106338803907698662179787428591334867443969800381729700804816228710487415682102152046197167385261411155789827734537678306445456415592328223780286399005083367848487002798577066066465430302117712664318280735712626941618658488317728061692187197310507175944871679704032055553275186668046393581845909573031250117466903268525091020864496541686212079441932990324398228312857232868622019987084424031618524975268494623674159256597267857790369879389757288760334425180681979138987571409898223057390444382209627057418996866715438636673119339054695515942709226713523223288571160286133450378380209811818031163875602931483449062667228447408059698895084672507650357446063117192817537540732051493472171307662227040191424592504393730163783480363218664812015142043399859899166629578303401865810032492428099811958004541262051078261615649456954064476753893422536719988868072051446094105849859578492867367799465023926487077115461151209586149234622395087958555128515448497072002099360470024872971729108440905081178744443619799153980349464566047192666969980199387707068737934765970885835367448305506949205198055987378602409633998726388434845183989148251934757223111527266418615058016475021403724369437511494243350187047842843366465586556882680419391847612493786086762105950856517391363952765102432019553979226199355848960335341394947096507502094683904998954890905965073841710106062668484132178550198918098333960992629248307613901052181286334456298458007961075501700600415515059122309896411309287136209934689435144175243814757283533084187020515915503885719791213411540034212534571478816109634038218762918207184431512516236594239186724582713805188406065818092713454677956849938239349887109410745835922190263023644694038775359508527895133972309006927725652809367273330786233614271893146790611081309956676810158444817608543949783209105419288062701642006271185587696965965329418852243871000017721600034604319115241158736567797725620248623442039544188586556688206710748156490736174912347101219788853610146719223145842653796506474462932286047222374683622931495561270587558031420383912483634463527349931841953098042885135308004098825126169489509079305011780944485383486841140534964803193700379094264935093097336181786118467961602085849108027028293236865141368603118999902384806000179779247511724552586834976890507375581095787854981683775026076451223387486753421106751646753913796891594276276702270725387043624534018996557759436874581077744329332920251459375930166764811459484566562320790349206477207035578565696581286950282231427083993468798138899968509436050224209986471501529206068097704929809428703006891870422868677701663442825480873111630296144322156531334320478391458946777030176929537594320851386538249800656267721730375135941905161448994823971146799532811733286351315000360664379125648781055285085247770833776905754722775567459664407695432291458065312782148842733843950836761582726248559222946553644043087096967500838252955685682286603097121391324092261112646171044657319937267782481048866731397027039246982112443290924974917231255393995718328386052133260106449564118043582368017682521739342327336940542982745302931112871513491356358909496584353361464563821414799266215909885229777152053640839533319045701115321727329693614187671897227611331021088255639774983354316064274601685273567896500262174357615886248533436569439556878680311087878147702345206625345089495850860436395558774448047103583114174467797826320435219799085300783055857030421357566254129133153890101117674838748884407108652972387173273045305866319320004497058764954567334672503354145539416568125545666379887076788290683675829529077180605704997127429693070119105235869118114439359656572279149556510739664942515857728434832368361857255526498003628924751626445303769165376210098594354510286742443472672456017559768617612510350244243261737669376795163168821932346647955902096653575693470120763982506189268126561773735519751511004470557357943373980700053852611274789691417884749402691893646007884820823886162811821116648891674029790732828499502974630224562274834312292808753344530609242850676622611934737395884164432338863689018500974117844976858816238703154193276404632749838519119882406062055691260354498082527592764451435972913808817349930135465205308346896643996460092188403321185014387987821165153795339981973198898301807623503021123958245558742717213985658147456545121802974384223679045440289464001373116506737739518446191621370293483857147139959469132959659236941610213979287633848470168674922583973627525961597067055612043260635272935769345539375093604891091190430594169986567723994492813386267008311133388253655348942997241835218535975306273039674473757670215377657361227913736393933860344457640049857120423830745453730201590522062356447786637568210983511935267576365838470437344891449141415666220958550415190723174836932540313388135418622384664204946513671195806212544390032012790961291451792567541837885872878411425778572673968152511985973916959136060386351601231692802457050102953988027122633282892359441071595837410181872426574259500772028534464910807549410753032032756929950463250204599395784536376344711728882498559045175196740060795926680551184330603981630454805575737846970005544062533975074464027365622348871207568951348599004054175018040748832191248155240180212667444100293619895283191135299967770724399958313770558474976920826802034781036570970712125891587294508292023048606920688048839674648914688925820919529865756713175816291268513997867707677158053949115474787114688219113990990627347788970527280642040069930359388205341704044499470904607523156057229506146916165678954224015107943984141148738549798974010434534526042533656086286718897770696679722995085231188194552413813274816824193803826919274329697008721855193916817145374324364546320031213102672431079944976520436907020957381487586222656058146220069221202111178986895032382486506554606957123159679016563223378840725956075910250531492277717240500048208497085687195194748549435254752648940816624914560025647294244800704084403015792389144148028610478764201435006900390406251782288693852132362449791923750839668337997794917160499994672261297082321585874177420729114694681664471621893288890744982723548823882626777715282460119000929098955798676272202629100765388022187117709604854030546647245227988430270866559888910595064576834494486918946815830300177525968603009120397057908277601993035812748561743525535501389325112649666682762927348585058009313008199796998992736931532783510435028325533771961972075352987514196825483491394706245151077313666068423086159170228081648637915852639188872557835118712894425757108778368006813785933099813052339650864982661403271797957988531767985659971991782578751200454830779729442510794360607838899990331695679367769458383520910004136235558857396355198107822450222111615056295015238958285317834659628066228701484923191194620442108864384622805712338430037134465502291238203555323658569318673401896985001728943520241162979971593934114470136904602728961514666731014843428448549372183018026677220479379877336352988813291510382017906265659584553994364416214459082131273976884391387847870183612673134517721767455121473831714105848565954711428364016130114321589305223211558738862412648657968795007511767200862951611506784746882068549536184694415119830995038213595214712997242726738752457649069092080565774003332576379639971049590358500264563194726148849751805780376314605235533952215712187483680845320730862330371115473340261893857591006836279925962624201677764087733426865152193191323361066327960136848057052034579169251471555721409302397163792268126860755848132053883269902417984982391015288586848355717454144539877117844443740047690403736287672136845176342987151152692333143124246174922558262609106562481671781095559237325371759441632692359729652908751938687238117174330846131636756843024172150203704769313607277617249156830322860721794324202754610338535164244610971636449130810420269066403736163579287680518872437693635979463899132088116102949590019941204942836454874898585723192446487530937819103911801885708225652293031756732364895271536818751376854929075065339998906325756337563244301429020797220134976161676657363281493546873441163976127375524632000632211900286716264366853847741925690393119127252785131980354692354033829660099371454860518686698340222767308951247489410577437864867926115596085839974397254968007279240523173659106550607739228129817999130776796913893260730225030578906116767651070502440935173966267183674220975281424953105938816150852734192300931226882067619740659184559696911967380398543026545911483028780106096682490308977277853595650036131457115050339092607685596802108240365977692448258421221488216062502584111289789992056925973981978351176129733352110259379474051467353213061669663837907605468391700379338759387643476418660474365802173030051932666778766157500820495015485252774952626451375787534740069721951099771361654647626229182050993917662768299930358090753481950470415091747653714311112042092781653259828410600438498263568774870189793440738943369963217415038083187597879015790357863817759944657243513865779213427737209532683263721264085421316879681483188874084617596135196901373401867099881874938270570603227591599437234560777443944036330635490337849622963949329030175110765911617564618498997097863087503550635435557346042288742919137028888019825584134605064691863655746599194390005533873832868317415170388775810986005779311363207073401023944224937903913075118519720345770609002409761937686275928594015874444047300365242058664574928243112036507650969904028129022520695810872636081619920393636090951345902046893625512797022011822168845093942756222171240424101847175082361714916294810988027502264729642165054525085729579691710138032275991000735926867224649142796381538991393018361076804428903963753320462674853416060005066847558635676754469909290020929402029256538167167592868467675876406681345671590814670170449025510298197110523038305933339839800722677448886494044020509905334683979649129398717771816047418914807294367369149555520663834636863211891191265322523378820351030853710955284037102421349426160060675992822609369904898101607966533384003081096886648900111901161354124976470761511122852582691717012676440088067417930737708426696863033481947106434173013738921529666528440146634062086561985774754777570790679022265826432107225017647410432608107121981286204864014395525503786578368874944992582944459465384532957286972442491008381706742513540127867916174301283321844313320453130839365191573232639737923987923798375727870857266830795071876182546326920625869046638884144511459054202604790016844207041683807795243832232470512348487091894086658975383739098187872366904163319755623935557231742140078936699726790092087639381123446674923457113230796653923421700137822809344177807940985242546855369075905822656057186821698308455764905335445561868268034796354238760758469615840905403717080101605111946447449827397193647949647785717514887527355190113034026392486263631155658982963942733683586198813490087289228957624237906541477930527939132363984586719312937906751628087683927984727596366244631485138408122823446698541242569380304454346162857746605834929636238545691157604879299463663043384074474712662446323971115379230399648486481204854553107233927828140671373643441223369544103803302140746255674534620465184707902660791947724153183651043987150156881844100482472346693417314784026424724125378790659744949795487156765247621629207686701653541191281765604125015866848158525054415347640218771267837340135176883679749709260857668981077035916439623060797452094858903565568061619753987929929943883367907046029783957174200530899749073861054747413154338194888078757302484295519805168295233942517856605775216861547182456921819849486472367701893051341597718113705645494602579425776540773866954325564261101658658295567649059368246997412365709360481317213493310843170185175466248820166973329806888906746370091294894627063646785671721498039927373092927661125035629499614264814317104443413060258101093520747264371793002902803614923350592775089219488628055595233390757376420896065167952960259985923304702873705458054383349868919377767733281104474471841334316683364094555542143706460160815535488637144552405490366961350464081864939642312393011511190504965157916208045027999532228732628206296279408071657137014852268968871548355598328438644435095538169916859248944415015047592063037406977234518242357702731120429752394115211418618723552331637523623826102421266312318582975105783959398953808711014207685773113561069051465845925348943958760297777664991688498322243634599608106125600532108594533384006164884708694641682738157635341813206955676913775498197727277018101959467376115422983582336219782426101692957023686584193922215245210625373767045222680616402914691594046637327949834483704183711869140757977818641954507778232726887125675367931378779566752580040891502186242136644064496430922400548403960663491611294446131284647019713428092583315491293758387900863536513334613014495000744136239529687069636979478167034719500047465827570915234808743833141950545934787999422909238696311689417557607422850740236226812037660869108182984860432791982298297263488146212364064834088421802186853921012520831792455063233136467060058820959906064146670963497662667982089531170977372052837215735930596868639543718814821775266811455017956715625429044647086369723171495958144621049565855023669163818161507107970732896302005361839095501612737574592561892519693361298288611807991832584546327102424625417815603043259088614948506320499673900222117051493356321578636736970112987226112199178801573079983095655621813901611793328592955402628030216766892795497646464144931885542687985462299774593509805640333137489686180765590376252568837579937298168190562861789383959430565241627183597369701781294245153085779640238017430120088482951055945750223598435671520107346612928847898891619756374795079707022754286045851139757957388148059090771486127963911056273764648377937546482790256844395484605448164981124278782174892663676636852400915675459605802469975279735690805975341576756124481081383292197526750719282396703831734764677287794285736033211426324195168474048242721570752915476306059093619148317835044043133960480897217940023132535929444645280054597513586342744721873944993306275032923041146934084596114253306355528509224351112156698002442390525483712093720249319104036327355629446581585618038080287384629881960430303124843464995826394237827084255383431204450045906844650586998562937615021169177488441803827827154400643946092611869201064148050447315155040506623883915040440279201995061275841585029409648237651667288926042233892178036458030880142735568098872486678611353499894111827608368118644024806085255273485994851830126013615918861436843818506579093466991889614547509173024843289334750945688534629044863968958333815308964936185348200218610513469078552432849664173933223836213249407316536999133403651561293096296278485026480963815168603113680797084638870754328695724848413626878519268285499904382527043387361646336347442635687909873823554853963063834507612511219885802667682578128813905188861728090442127281026706835482469406435004076034879588998225897160047833970529986343879544449045398751615652465461870440918204736785390917778267260707140918352299712112500429945430219154221109199565326286377145198330633370318750475124749820800997392339112144362079900246548527301467904963062428662499097553519171406906187060227578140602434995220614747682214384847169541358027129853652658123646161000976894143315142687386038145381243128852198037743818779809170462269699556573242972484604951619656228625157743225147098033766438134987902571148058099355745899945650371807014248446328836529348225266825299925876494144573111400305025285953492453277877689797234837395537471186513019833454477761984922634590122847823659427877685317599354939615627175744989640706262576849247380435130094195092023347654816357940946621730694634908994047988075791346022001684973443818709154629959326049312772935295992536321019784351603350202400241297853260974775432127302557693932844131702468193736459602443278382541370000007532715541362100735546611291422389592389250457405341445271940986732304643038653688147224122226289200903106753530264971868415710075269378889613128809999144278642164034731586509780642487259930028547886254197470429934540950765528121300830877265058674702327582070273288774619316840903461158023566675900422344993340899434408752051221426374081708106034932246547506489720776910642511477534597886483947701130606887467053667025457341292484756374620236397403457179921501669907308439599398536582157715067009522175618838730453932441923196907524793922847178499218766528712299728112306135780951193924536019745961957322683235724334982302267751115859334889777671551755825399746988039042639824130734850747165383987677746866783319660434925257085583400291602992584377861600841965130946929432536175845928883269141280718489661510307200067722353468371845271915992914730978723139297131110103715169711779747855700462909608064970706408016496133764323295178742687444340664739860586909688596019801915730602662373609558382599282894828887232982341247973336413654655239695112341146939457686419859879367299422008177102517383379314891153961237385474876342275730348109331811861373956216881204797207953324417486018986027561089166433251123167777505577070217626449800750443382935209971316006153028703217920794778141906709723705758598162811619816319340007416260803193016408372221584320634714319473631612248806144371709574290155051328217661005500055952774587485464851268849465339248638989671621187747404818449655140478733021233359083288232552042525403976440627037269094340118514095535780629823570437769110509118604127473817031452348991475635727785404588213081699624919939357921995645219082607314667313380622563748879463546313020244255878995372116815933875737781594974079681494495375574834893594590573254878850551371016598400667221161151862811501858199504546205988580981208483380811493478012777054828797922102326300171333617281057434669784578555248935391935237968729155413161925344946819983439673219401252452307679076872873540543222165462597997933365196463789567459518352245949709549792272197666349881642328258353192511246214728011494340864524488693120123605544717207448494233214509805241208628481652773562161323415403256128026917727226399731061487832757925547696320089775306794295565084119912314140010346311880192187918788020769060897686335549482479387374672214282774186669332858109490047254554332054410180192252328991070155503714561870097422711616324854785757832812269803106749119096932979837296619004876028471152347040448769850450283544681836952083789140932174994114788960464515507846302251877334046982750752985104700756358029695587193024911677634299153470338634101638003835690774875628870659466534136568047636789791271659573708640743333910331797456445365947607322361680579575789804680716162563105690017181491941693959546994433132558544606535970277350665554422708603169108931783035178411166084120620948451696834489806745896353212668361397109578376230335501910330854221251819591880348858978852258489248127216639226207615641025045077353595512977530254513854881825694709757511118888013073300292615465548220751551419608015583902361673783759797286727288908524688218694665991066116923093573799941611384696825313210393408009035144542373472909470936834769857544848249252304204185348469994418130887849576965049885175887524750862883241531224151615845412351422287986730170083452547921584094401381906196907907966924862679422539294272283583074681139196434867723624171123447781815352364139527731155241958101016572966134425066476134750548678961717893824330813497850117738296580506901589408081697847366776054550287624597545127153166597359744944583792164438925109823640877197012088734810745782943584163163232204238785303385801006030695614018728988860754636279912953849927647005070510010595012539160377971658615833015608340690031116112574702256126548143558294080490829185363230150282749661688261781971093247391106129564759666903993218828242563980475305896095386382721167978472548228132171389598614864546679891253425331751859221886535058124247916955226415261028091663660451787322991646035654409384652182891569832445805106087646269628447051975033374486529382903032363745314561599642865336780202804744144599688067387963516490597948838095213886060506301400860752745885778566896775191831574826036942923654683428524422624461783417746650132490396406268978450207346783195726110421796984716809350881017755569549588354526810463064608075791676869596261316746415047657064960003630649502821868208591304088102590164112831367192491604447168686478791640382891967018600802646286665682881828934298886168109783040008345925665565833810166934031045426739879241455697567988198658719180835494285192166303803877034948557535293268482095897962689743337420678889159376444262832619061971665905360827454865685650487452662471060580861469038389865002405262540259693279121012690986867441519598292612193915461983408260832753651726057276397667889127448224342645992417057129157821088456809337498822723546201572324095647239652659196471720529467418305258459936581813006685866006011474363724810628857134560362228452138496689604266978188785141289239001790441250035950110512471079386588140365810427741224988441203180891037726598484756486470849944626719437028028242186091200858099319770336351210231312325705937450146702795956650603513531145652923250419689140035450610456133841972751537388511628718557606157350532163212104347804471463564382697862289680320741064749119253687950518612406558360661244225936693183626209986424449897708913004421680870356794292338108999869357199141905612721643453728747277582028286339616010580532827016415276354815911117533457517524040424740529617180743752388980850630667964742260547619965201000559767809464341844422020909961256296418583962717067661117048395375188621966061063139155816852203020953725996567000784494474344863742790375817298023574837548008917611977288023875529867519602665451611238880239277506772451438657707553281617603304307928203099562345888800067692306653587327639906823478061348585694212637608558385647632859087329711372682393197305064246592717931580798077720202620442348826441301109711086920841095007807130955059863061696479963802684849419811076208623647181335313054158328719778651566017725001303315076414019212823590158785924863789731294684561230496508503609272614786789343785254172225473503724145426686795033858128058789872618863948293472452720956756899576920784280396764615648296402727888088065801241053243830551616951286054111103165115531150070954719258434377335279608744353165341246303354188796567006022372815558535064930934893971762413752605142313660574402880879467384227298959528860917289027270359090858793310561856522980055772135263499425523423389891983278080390215630310211158470373572919359267832501810712303819522108157947081711393037194294019305113873856019299383199090000991435361551407563973320374413430544338878676503126827926252856564696253932702077858307893339333747442040406674145048614347038549744675522278483600927241110672348168923948277456147719030746096753158332836678442702900759784386738725725386763685177946153085131227115419465214604130920637036157741773676815181839619418513744892831067923384546631587144671385061187912672471408022854762964960033325081293993241077755197160394501397924627491961532730414376787227492223784662662315532649404965566399652282950876609608769836085317487355580538554289060188419261648070070109662133807779912922378017857541497042726137008170702477117346309506349911628181051231367059121534880026313865071936123144048919907168776332364107187375514039966607699983326962809794141071205194807108089682478226419183558952867649474426037161786015869257817500729250855791238156072496826728233804768300796339919551975299531117203778829513338173706594493592056144365678328957595989602142735209166811771934991718373116448870441909151510809448949329673705703509111751228756233093605674622971234340127073223980971592860399624005414879039239951236553316168256070601656204201996577923470551482924411950931822905744708336240491193768124241203622338089147753805838048298774189370772692879658544219993078232235086337527658906744767042519000306175791785218223387774481756310536679104910996380564823327686089468319325576033687309958709298560774571949688890968117843983662375146699657649035963590906348545277101615785435820578277779600433822222097974789806916536060268000722000979861341542555585067222619704572587764078907501345164892193014434725568467235527013599010532779702549682267393540165405439636830548462817376849355068645373822808995667661345731087285558901859663413888562555152081175010007290844211357501232322994485492966396329848975227937483239229303633960155062384921618537351205428474952319431061313321624696185078156586186830829259547255316415499725112122482659809874094533554875010034002016439783939192068427016675402990519743157295899539756707779147415801115528207984824659297219005217639921583674988514534055816924519048153773522334403522451117941415352394590078603130843401755189262125339249169201940934995528636109193996312974555359023424944354125091353397573357698430538906710330422458970214601472920692724104651933265125524240125822905526433258771024342257463264069558959859345193161454699229034940954965856627919685331886816369762771142298992923233258481266153417303595239974031710402815223592214619743687657050969293871335509870971318654468960123998212772446106269455529937435206227192848269618691478870701880350982167608995161773837642315625362739550165909356639997786690174876404080862261246016962018419875294086149291740049643233423061365867488999298139661504741292863315209606998524079945459704647803056549258800425404010994487741068319008127116695788704318949804656594598062468049690532849396708638192025362901619680160428932967866532294540920507969283789188233843285273062058970793680216149743835368347939349594896506441936654310118952197014709757516408006463877034017959065206441811921351483454433471982020419695796842129093675086390027242452771743400321174309563150835874509139171681407474083138402533401926906893118585344648795870679554151305462531955747176670690245735522890695590856827332705821061021325985259984928023573885984685796322433796842668858516403368389258989572011122316226421090326903956397893205467361526115244266833330658325374793561197698975616262650847124759030238243589845750524978103445524153786380584509096930856763193676173072890339873667911162157353771855285556639684811595690297096363109589137546163921847247484959220949449271961848332477581634721967788470420970306297704759535249595609924420047333924590030095211212057162936560991728002082672738053507959974920228420077892117381860557637767873014772347337709049045145942807446110921609474036035820210150259062417755013191375337033922727446036588258818489753089533492856310914418983635221204062913451881660152526218461760088357666128657608040357830752787750060270435732594648021625273659653039030836482093234442224231033866508909836631367026538418991673321563649910583586253132988479846282404618095510837213081859619454426484836902356545863334850012282005741960875978335635082250421871458156337402070990197008031246490900053301736206883686879402683177636128917915780830558203325385145470563250705322758231245979894151524928123062469062989350117402665614021277949473003013214960305473148738266270101416649009425129635217702075937464468680431451907065138410722082905404886980844807721776055799408418255622124411707160137658816755400465023321528967830731283423982757150830027993133676550282896963331209382941193771103274073605162200129430820101248691412910193650073079918144073499779648920981444979066488422090866073307017980781955348092335094839473510118636137041627593126835611796501233286356647133974442127851301810878769123185953669898271910867477806494644992411643797520105329957442614077230865045098969748562422006405733477176234654399926325280090689321133853550235578165731156285074953184002121784288775731219094740594036662569849736588647494917595486495409137378180164963245106002100088050727568187190916031287926453345878183956107254796878958322440905735536277151386518147415314548774008240588558988829745471592255344794314112663634605948302453172150241882276406388487700906550231431001928451378761524973451468366762425436408313020116787653876146377431591194279483376639605292732324554306213354493766378435709093168782591406254808386921704193845736659024027685451712097348773516166616369181894759463318327631532699436165327947570488456897102054999034746833809448604101313566792913739719429275844589745965743033804851866675237923955375146231995726607870353384903223514730858508609708319423625807268745241264619592843965897763063703460291339254085083740424434831985991415858691125930839005433438487620311681887044838331935083331666133978905217591512625892418617921368283101787977301268468108445152067687200793042643558010753476879585054949435129176534414951817064377972705025960614557443803638767151567241509769962683300442153459825751312308578383181782173625456838767818516331051098594267377328947797545951252185066485701248923266328971698606084760899858872457618393269310988012768960797080419353584481726066832743293489852574935261462592691638130721245645596334113437405460312565756104541353159914263512191533917458366693773237429542246489348534722565065813551830798206157137061200480733088464639996996702849010458650386826454862477533791274957517962707113541139666638819697558105700348442416835202763404632596717078151672117620231075633540175597017217989050663270856848585290578430054622076179271930988032684832959450488801441722601480362164145508897085346283966871575074649283895388567250311328074735094452186964232049900956322065776723294894396219939110859646604246493837287121258628559968320078721177773085279738841009096243916969846007334828344208239287631463594155098132842906313154595656076547656117059766809557725160113428722573128525991070634773285491441075074546574945530805644622144245970262493849158028730509654323390527954897527393346325908962703176916110692775698106418267302155640063202296203374549257326943415239885189838315688091569768818359396974837352025255179880699241327944960937614849283255428169500211816453317661857127966359422510785561476200877402195161392758455711447968235980937420057788714967451452178792820794798926380955536569170553900035248506152294746662705671188849030468478646703292641139523484406312110534644973527155324337145289360389840107113373659771429946228621849756701237980859150678888113308606899718272320872511762236055516306386639796088537304861288153239382704300028300767693230961636302773344115489125326515557435164668595994081637138565367202248108246236466371593668747775146271431661167515260170405182985142590455909242688410563028937188207838738054812942451572772015364391330171648781851075970629997738151719262864179935015028962987345933999802619006903809756838090694173998150347164784793949161822033972499908735846842313069057340854234542355043792244644302551981960797650398808865190489019471257973502555348712985782690970227540053477758876743506792378660785570962949319744400393706946648530067612900196318441615486624218020394422897373429430322813071862396173813961144137861452829547092830087268077593119252640869919308780281236089378867845256606161712801319047178757112602992640436981087219961258446125488445832569297198905064083612353537630521874892072244243979735873532191994282033194920933498858945898215662197226284981723687012205473632706742974483763796310544127855825178823050714339155943821759333857964840651873140105251485791885148004285487065731815826831213369199149672994771103366409377487943537244084784918238549137111756201056169059916119813452825797718598258963211885241293314984758192661057564184368582191969626967265087305117181508282154841229068261683666205959400697414437986084988865367781536222106179462126679944634780462536876613239027461778136134632325288779875292347828982344287645224871009116322225121122390874009028354107943843275418557618456422114446707330276742549044299034001183300656497895789612390728747303757462830248119449785979377711302508395722812129860312147162772166225272270396616917520290072016056164166264549942234165582113105862106397172438437072582190525341665481598268439888509945735053213539840953448402514557363205593340046102334269804661306915420283838631008452079358223153023686353032688117304344724683236084611019219502424007208556169793660831873911873910573357190972044787627834891388789468400828523184225600992304126953932266964379043526741612846198368107376814434482438309862561664386102092634724727543837998017221333211177219990257442689357565584827370035574313564469971170083442179730020255166789507212246554512940947766308398186281926128476483310417482518507392066304991679699872311954131532168742326349340889271276187950427176553081098277599640972132188222240084614269550406490783148798015591217866831555550726741852101083551008601720424891072600891359393149815700119455143490924411889887617530255528706044657090590492918988814389712776544425487952875638694551775426066832244862227103935260624549148680165620877929738260393100825973893466770822366553151528027584653323966807198755936776554444811462477626379989189186541075022570697854819071165120237634609063458273516702298964617133618803504546736349074339236932017416398293126782409695775818947190908733950296339666221954271212393097329331413441542557169826403609938985799575063230489066837783684030998944906448390696222615932392199649858850871476134877307682408434812673850042615765205718097672994250049441595341625834475775197216652589450694527923522791696421928757329614310427837320451105174855333347881240340248350637464618790522368759377001478423801915461647577195798125419168682120438487500457610519613571532082468971576718593355654790952871168051750583588586969558422511865831256120968349175655314901782732776703222246346853879827067889848429293189319741976683055931547910859040276598390515149908608652397925970601122523900083709824197696073416628560114537300641580268021146827405227349775607578345498353408827426018893781165966141821188045965456973618146943908893783038335849445713503207777286101942040214689215099894491742350584815260752109712620676534107356544540754555138352557184300663882060853571302326167770783418532067589974813366842293522942528949938768895250957416690523370605234503564548967254008485066627029887803915887370749659866496984871004759237364307792339863581909237314819618650051949472673697747026011499754721970061377003819927593822493942957653935663267443323273781281645838914715055094665243772028589260432749671227908612348776953088440104301940763750900304067525876559035014042002452757600389104461587894088871975984083224199370398334024350103249446269362913702408732970345114984631116194471064143927567658484318437438973821258358075762367038995302432892050562449244453902672551853852785230460741579225172520878711608242440367165711974330919369526631799048993477340322073982092909194779718404758581433808126008287907883505644243639936049076476924211068715307511919972486326332099302672094566172704791354838435876283110955826674732733725824531395669019113179247371050043712344233890572892371696135204808439850271161967869365692196912277806629067016017670777489447361263578392632704031224346545688962215525760758347379036988571375920680799067886801571492590153611061401445371310806223899110208752953193870535676571496601002719926746901663173557733901801422666943563789358151867833991333190605685501344633607842597991125675674262502189277154689838750953528061572702956389367799174465176012000222638414494004542059445546599329122976442600258313472256644070936500257591367261161141001234248738479674951582824519151882077427706191341624551388137656686219642906897339580584776276548532161171644407449073154884000587129609673747633515854820653005217903290619137765674783498835125334550097079633902869720837370177742438852759018753325324420626303440268494243907173711839853113441395583283774666673673305012499015385947155070838887141458954494965113745790417298817328168036313741927614167041782392428016060927985939363689882564248279471178706190771380306252567500801154210427622560510041901108677129531879602169688267603567689098953980657275132252021771346671916905544289438300348097053860199947972720633604663054645283915466241487690613351235244108123844111368246786190238221911123889366235704154034750283451196193470830434878662966458868486655759844930177943745448866157143919743130092046301873682063540049686709646220101922768628676419988986570691679421184650023962789690858538924816425353523018104888599890372159957177330949972909403264915035264320635154237807942106366868217251407342057230904088630787709398346909380404876013255187096437075340607771399882658921608753245703618373996518827516799183210442486000082072408089253312711807551005361197015900338498151703787106662508337872107165346760373387294181489045424796375222510678068526390938283404200817064078284877046709825910565873572788644337493645080841246177882899984325946260424125841191278946829604705298258973185248399213352576042815366122528314872376364140158017568394017883179117974621587430738353991684456785694080970339599427449657061095823299597085221192213144691913020179149766029905069639700947839972345968741679567619525159621141769047535675300478307379661737461617380803668385283669404847142049420597267486288043672987902583992074383990524109026743188858157057534435639555834759000666068996831665279148300969702041763215941666349152958644118223627957130756553312979389958734037458716282307426943388402646482529974682345666467746945832039515099662409168185437084431372533441234663499993535642425630569417013173200948738839448089541966419984412680990448451608375594202257677091435657274107301727435699678140231787116916662032349621873819673666516472984970952161258134524654506859095111009689623482349903979730057353771533583827433176325102641668141916938823950406489498653154364138854001916271287140917770459842001443899388812956668465237802488750793443267310497321763953746317483097047556891963320986581605592612511313463749683601599315941253382478378046664369611837257311315651268529578382096240639386414239973655190037301661261749869458042543396988361118808647156308996348454815117089529534816184142113477175072879089210701887406807820765834094316902067203045815817154753871449973760934915483078700887081777586910979210054819058895323847208890250504448543311856532428902650364498097130725267941736090985788165813527470661935216462695556182395273878949656029107191925695553476305907553157465953449020705237689502257536817624770966436816391127437323603353674756944545643975082719042282164915842484587124577811800026038381284539600604666534022756403388097522199353417329404764421127958329998503554615662509848270334378711981344256774945794847535820473682794484494640621813512034623002888715122754131494220859549489883402003913912421296654596010287021361333140329264246935647417727190532271664591992332771206001702651257653948060052108595037935769786649209737659489477572412946775813389702813248705761926780168656750274312588250817326498293600845550341518778669056465070892305979663924692192676565247591659694791433630059885197494207659734113845176890445902599308703785966678014500583370068355028403400842813100094850915145149544611360727232446889875229032591805060550188878670690608845753921332530191655578450925396311720221698283207403118106878098749440152030403425398026802670748163846550136755277568418288863810630521673026275614138530986797837374573551918247275834556038002189652719420650227347236173081885708102746896501790961448106652811776362307074629232499903375978367801966754015098898777681924674749315197218573722691801629285093872999969722308134913216587990753094558977554496025518458299767580128583234296847378289297569264874536881492875855510016816329269543287323666584248112297046048666859971936972470965103616554856285753451926677557200870404149413218486614907270270993194672536438950177507513067237683950788467719903730075288969886184624758785432189339992861426571984527316493268027072659476099797478344920822958354402836386913844922846745145398216490160372585525902871917494929123696372927078025002799995946507672551796260021478925225585078868962317355094450446343102794012263484327869149713869053860944616962167472710142214526142089101212730210760793746943486624830767574513654223059215115545880505964102592510525409504314847050312639376167952617548086025211505810797835377784398694713894925763587485499259886154002485145948701120622076441559889861023921621526725534260654133746671036945084571069320299336741228104412689727410792322689351677772175207892895457526734904394462778836545770559522362035848395986546830778283096012108702055627293869650955499421660933149438964867066282389729503837405978235022497694211064535367245178608600758103404229351371582459712613712405726923748563299042291280876391822753664212413723737351333192272044669837704184138615442990875946163470694850653387647877295123103602226251537567291236292186855620525597130262541105835315893630193789742389820730968816325965050873032289779176760342496896768804201744865173369014816071437302502774921258146090928656546632155285456421821569222289419270988930755345985142273607822388239429792845388743048775594969981964208839972372165652538856440904415066411100744811324997359695758582735527331661875235631028031923803954602815169115170238366009815770272158693390534228474286118149779561040333928291779398744387612213359746148036784826978437491556345578427657394924293529741178790806661869170880085178144890903092362832628287898748022422919100360552072831413871911555142158817976878018012103793761123448263353975585875904291572795675951842843225519660459484096953696350102854364072353604431486272855639807834038244424641027066416729204449198270578658683375515367452597269587732935558676109278453097589729899338264862569756479607864698937330252081276148550982968672173015600023763031395498819014027302052778473996461546198075087621480929268317368962345501254507248626070952239644624406141555922489200808238329137839899212700872282388504740548701280386719681966399514881133356905357182711734837960876500398390104419552092106066745452051261729052931101803014522797012720107063379799906340461612289597262884075482435389508020907527910545594451629281108938000597474356032329278729207394609520634026165039074085101135883715680181179148028689914104051713579959407489078569245299890491698059954559747837393733202391041417114461242615485469970578859476105097238963963121433627439769254855533963749989795725426308602625857675048455744533990299147377782455810650184910992342408158785691842964259990893867027321954637806713209235922688557671876175410688158168464671506299825104200136507834947715608632863521749374454974864687068040288276764038902579301836698028587615471069723696963848782132619772101823808704612463857731640519936818197634215856329426327606421354543221379491972553507459556355275563000039242650923578324406590223051116857225947254353650981546966482246006543668629853539823434357246217562831073095688819667755043966975918127912620564296230192567541602447708513742801900934433514825354198069867880906742941936916205809342775271471828191423943681526272299767341891619504458485014992823356882039141815605274635649626255736999027621154859982532554068813840919339030100822734296499123641940137443187619310075785619667002939849295261217294146338943338061672111412645182010029353755356363969625355868878297777930760095398425630368794506020339851632640292647024005920656914095532092213925943910723692090951472886922439436728484992080597189930934750532116544371429542675582570661506759956139908093856982567173258980969114353628673691783141968708854761021135678468219569840044699411659850340929773358656284032699939788836609775396306995076437932802622318661457396797850337171805605143156605012708128697187876134641715081025322336735673508707657400910630532282553749357740215329487300329626284096822234122732224931289629995294741527874192142184454892714095033804986759803453198255812368411894032017452317557147053281656486136371079258823034725876236822849734829991172429166161324485009561135232969765274128696241262782953292605993720036963634003467010337343614746304662750674068596924962053894029849841904484229391931044104015819288542595415374072765962128652839761573368628903391381820465626417616512858174351449203973323660302883039449518293768786926648656512350097516515106414484615187922512418976059762040164691621721267470825347278579138633262799227198200581160373474152886538966659724561023650262284918359740335303772078406930764317398733363563231257640181454847915957561175185269383483909497825500226833123551385223044465983118048436544114366418863328447855036581718006987546044040380550314432229501197371281948220419075991671239349787119751188703425380140752560394159687677354987517251755843512453753902877679000236082871789228067083897174569600920405013274162512849531916595042579201401035093138343796209940056109731682994977081124250063663037487068203479949583427347483857187724792003603379721656373721383338740335144300013654355947708756528149054184718564712030989720501662183186632400718583885001259697118904856210176096632926217846062018902265279499774777735709771193070455351184433440340335363638451024627354192631232527333430010991824743743190722796362687389485744791797804651947855928029800763625398532066171787726497645484656246741680507595683041527823031228691154871318869009279573729169392063855442824888288309868115096955931424478913416342282541489120879064707734998453886138752567249614998837942711545921704511506969810747505465184646483974778887348570105104810781383463634995650138922351277917934015390028535751815513086035528178252131140298321326629383530265383572505444075023564821865058597980703504131342166422913980025764549162576246984838402172360939109410325861528196880098233179616837027193236074279927704816161968911751254054347687435080908973989156138920677475558471324866307867752247244675473509499485131690067936294492856736769227683214966978780934681128882200545477927573499163200673308036955020509644357769114892842495691860890532793078084674145512487299224189933588122522232181402289734979512114136739572756417155980481673131021219133560302267809836007443387781886931938143383857739233787167531852188948474192173384265996355837891027525820531055235588570326936417981082309176376420748472191532228461087884538872032540104345395535188624623600248485626930282546918293910444267112305092262955087400038192186063288853547161958097121256820257992791484349954402544563549034842722972567037688424083147813168976360098212785388178991185215429394328653397228577359350552522486646866040136833396184546180338175657538501827775662168414002755554671725473132750859928788073270286669924008036870998881015549580108940511120354766727557208414631955180144795964201795400093318685875825834967032449444637323660862370607983908746437699407179357174012672646223856452310051866541757012295319476270601685934172293180132158981472864321365273480042485027656296180570502330776960228633460782888468079970903490963903735552480185072474229794456001625459405703343907966628208024787623920358131710364948444115222512856552860341666062491808917621838199173281600957592085178111762555523821915258779467095155532672698432312247609404587531532260644309100720789011059134201912474427094145596546826545566731062515564579689044887387381498194582186077824519240214302555754021718329995242135417414932891256756494179588183849166685420809374953576326339118206886982300843657997448511805056372477050477032162724521470536426610830444421904787366956239344966368105149822990351243358900900476608975590483864139405998109445596126269818326904624354372486284619456454331125233730907430979365637673563762025214423916102650540108240312750569040959128711454069710650305770101224524318238837590814540788559627864702577604323154117404431667598739826953355830811943240423569630178294757633233289432884343363651206106745133472631298756572602009772943753887351099160263769701760634535710032526444074149086382880338562549303821913436204611864674438862567145634739764408489648241023562924753933221183696551485197811772042418974668530619598633002944004427320023795239109673831682902385049605384215315930817620979000140980238578832487110722350373854098264791736944404429223438064038937675266479977656366096580465521535700433523695743606622097401083727705180466070716316830428383608813556897455328084641742199945895981265745100161334530459881351588058669223578379756553600655643210201260099266662224260771131459380904769717789640386561897592384659138766778932128473264071907335157738831229874205351009395973177226624703725640872714620119834453603369661676903959081936121554497874731952488254542731170346725234330052349870977339108980830122400244314877254859434171718870466393746846228164773836221321762828669673969202392870424612732793665052807785576475230644551030767662911734682505466792023259822695660519754495607460342217168904226563642543399818094896844651286493920701901546593567627580103663713070220888563913639358514608202338859628763073663617573596605299302039758572256765693903512360834157065101559963430930624874829950986545761066242745186908518945391839614287740896321421757578026902640763745304457051200323118595349697739178631359702845349488539014707393456967604889156539500794134597481139489722572659366029551211652794495071247730194534316479390741408350256431518472217139706644784056190358890963566945884637953997492168116301602488496802719543295889413080056015813394754450664824343011921495197276347514157952538184586941239332466749139739081764897850324172961923626378337590146220460630830400409990616769746576088000100546142425067227167461220863691830709013572681054985158047002816298892853803452098832546139757485418197709195470603195656038252024448573074008906420045595202119961122254720676689362037575513540102777804499193137314379337413909951966968387457951082745029862863377622198425712964858148360539825050885753907144105468814194126553985124602942081082818793065293391358876175963189735963993512320105490883830251591847192512910636009699198069342776201291274551016669510495920374723838565401510815058137148060591456074233868540375092715833064360756055880643541391719409603661705607200494897668109801470710504471984434141241607733670771107683075238626134131414201849278283262796045211635888046044894242715986090482435085943551119337715580842567539866248651389119286604559329158701679660567989659572936085621896765281928294160834646966823723904992289472681603256108763225440323188596099513876567496072555312704798972092312481176679683035968331177258004615720169813880050018341283767443284807019669541932736503221947525702977126977366447293227298657496582172341480676573730330670628709530281321211569691422186075440413235373691966301017114605125992671344820774903677955195213117023912678948131548935319143618290527049733042168235460555473221973187359454315137589482504521833848710537395033086401947061947988666097634942909962038213222475300102323218280561812641890240075143289481237601732187598053932874758680732213346200963813924004270334184595940439656132429818446111385778270068608225677721683598503688662940076644639855605569584375956494338592249082386408170188053524133050000688221903262080028383618786847320125053495754248253470901517876938455225693051819282161489219842714132152180116315133481032794777348193860689605254757783554816917208558665078069003974207728178125359739080995823003008763204638863573836915800209041481539123467920457733607181862733636518842214961852560423903759565178058500543285783744709597326660873498928363568374932105545608791673909343831956661833496943557325105270687899847957863157520322518787569928010094298421780682870521426458475306287922267938223967085659460563819178627435892153898509806149124279358181327817096988682151011824791062966692085586069882865528938434294057992555032318417214107285453452708534914506260898799981037052484604113326841436969051431637886571842127270055446698814081802899208012545251628258435162363954260468514558683804748058132115352182537461487426231996105362027046932903997325928748550079115231893368644240184572781407007127294151560674427667664649927310349724792119653628039900211719300182863699548771471484882162322064949880679500308390643302003375396953400349007661722841668527186304853862001127697669922437892058317402319291441487700447263607576592433992394655369272752586078582690336486535580476225099186538638325451383815741960435978863466983372497436479868968196710668668953161806622366909403112752703765545713027574797580422440737539443822163124137795391887623888537839414675130757440225807183394258186411195554078548505729247816664053318631197315688412878753349850099876286093089363325816279499380481846447388409190980427598474515260250018852923057701745496409803126028246149655014010318475670008622355155612027125686018660256639888243740112669565973474091223846070253133033792283506848226655564645107149144335558358005871684741565825641315107970445275504319030613105317699693394353461465139934105748156301122236777570101693964461462302461109184719054095583128369169382226730540692704836256414714199631965459764558185526802201813464150969460219077232032129003432888922187277324537437134583154641710216584707197935666490789475648573831829626556435813086645376196510165907799093897265981271017329331649919323618776361978866681804539092945208873456236714284943656296126498674290222887196316527523738545772589282369323152444959444489753728005418929156010810003511766537830265000308051344993574113217963770470046087766214863600943873370731907970615222120017595531326696678727554218496928445892047746351301658990604515758894770294975647238554920338222307210246582516858087172257298154652891822662099313237881376027716010708837973177787541516449711292747486699093495919840348727372270220366041757720361387938919254267735536839417828945403688247263894375870853647595505201639793244699723125381144020041428844955542888876154530762145302969896524389339924301057806819235014115462169500716504999547093966807227522335891631731776131233578150416563836455256748046812080373566345156876705797346939059054723201859211336850734656851713173118755614063452939117592145667739417101549554923828470997628851516981223624142953786863444764039444106093753461012814937354303542357247412143984886793389118654349639106965566747672883936763258591278147905774414176002499145019665768131079865737067346262760161105075772286436423339425794097642033868556796527529406438189157509454464768262186636565312229309820123870945980397816046803199737947501200238548129246362796586088188623276123903256145911691747871549478280722992422164431165500703620742688034128209801536801513594311944518832283543825970838845469815916157795913434897968045829371172307634876754226813474204850175555637290117450783732348216096733168350434868266230216207926007481563293182295012031298682504354555788730362311150593426449311508919127069652544224370876264214965369136885685472578168003500895774930950487927553448019400113296573917055035552404045918311529199789011314183601535427787832219526599433117908379035076408674079024397091958617856430960957643057597700997734892254382603263316348054377512752854966029807789234552449747201211897639814215810930765297376723490114585544930219600994344450984734949064989722476798437536901273761236673576714835905714765599124577510851208148423017680763760387395632756195696654926294050939439188113471727209296521662320605886465563505156527297559645315197380297666562952446467591007069730841850605773227881626694737223378474191685658769324163724947111837892424911285778083541872177230092878897821087765940930801949650102168631716433580822033895441711283881936921444374824591713471197570647096344646796558271701605415375437409645470130571918825790631486685796419416594822810657654189171556475839042002702345965389869855990517154123729041271866145716551421346602731160391043246007737168270525097457437262130155790745264326455783329280880094775291323520677885371100981070578225821126893123558467520539663534799560844245937011095143049910766971221396627558175205245761164202272737502208016504157475133325702205274911631629727796910125001098100378151045526624343197594288109902531844900041058924712542935659986303337052914301463440889769900756328599720868412061359526838527765945961133730981122889788054466562227876796525043768649275367419762743344019764219724146048897988752160591112070750373182636931529126258954576885201559109285537153891857247543745334921856653283897519160345064122531740518036583149508931427690229816477207700700865476117468110799532656222550001596084781470363691698447754837121880018250874079599052802841148047408251131987750847936501059566757210139105467280214024108654074559133719164602160013436416191277124149429089229842678379464051075560092257980406782794338713302228088061419564173419631389658832752784591440841129260561060868380317566789130654218690995850932737937628227371181281868946410815144380526375423465337416626681992876831899820049793941991965061926087205537186374854032216215849143971646057176103374403022391581450656494273501319954054832083715161741723238322007326639852746192303471657344385417390612163941444820242750144241610396781818291773381001787917572150224493191806796287646520164775804192896523696548818630293877955035463350923661488505124907962666922933003023143779868971389828196923768033662621729051849271636012991577782124316962936001230058124481549437640180140748672092683543037235624946270552367579533016256767060840491474207222049435063187550423582193212352497998399176315578958090673624422760480619473406590986201480518785340601561450526512943602696184700379417038728365248783410883561994457698805563784117474434717366611850479025274562359339776837047522247408677711185886941246666520656803064702278219853545039376900411766841044974585136048476017539914993280575384357487083763999716075108252061073611332743736856929317819288704104187432835923839815343268405558134273753287292999532893526899902619298167042665925959928632213105143483290585315115015677960171436444664846760544062160971633691985013055668427117903717689494394002464385199262171534966471961789548466267536580816768061208535412083480521285397879316516535355774236740053977670879256351994832481601458615976450365129513408669512399071529878163731070658584981861995218994034499558617068085161965357768726869366787010946426327913045414058745293600477154200056930323808252790766079533856813755356019521525389556810442536082106603320180105152174588680822820799681911571594231514735517698273401742219856133144073339117016773362059168195239575871664400778234159620712344044786697666770788143009942601150894371867481587193378037513891785537928971702859974279039222300798390983650646058719467364034619265999451427376567314519137816042905598063222948318067647276042701065333286091206244478648104516808744623286994853986312932252514752250694130606389073382625618832427446924888202651448424995930059947311653616065063758741280624844886806148201851408455744666813769197030431331276833308644924625504874645663691028802586920901546904374298594740990875576775145589053975772559618846859358396831282687516911328017728690967713563820815790534581826030619434910215845425886809412708136845467311689599461789298891787723568240266939684340231858325320985501374292208117696278246930056617906606771821985630915878155017251741910909278059035292655146886747172250691384501832540260592132910034094797998110761108082416754741242299177812295059129620761351654271765088727474794809719756862687761569234436883160722052740953238517300475350284157903272538962443261168797082034393665947714534825264659092120868216984380729997130720649171323477162315721610969140688943303387851352871419389948081088320566072390380390735141258846562145788035383234428209562897387303028933594250783704795608963601616601559998279023853280544286883072612408373151191711698809382762444073736121556129454556180626852354564734073485414016881172122765697174865053122877052724750844038925618742559397399070673893435768633875410853036728881216430257708023638696606224449366680584756108569823871969954979511069218582849822537659583902153129017944421947700447782580407598715454462906738760350049429887159314196484030626751487030934493583718815720748096089572242175643449702274765409788676474715415436168260519412039598032307333443309516332480562952671595070677316143237012665559038892661086191422796439052785060677650073813355368410908665898256019121631468414806617655181348952479498098767479138591458439609828207878237139092518151069691933585743406747887541293281402070766952964650325005071507957612114777809161885413213779083981191612777914631266610489425755759235998311782905432477584033253219666064316915592696355629268728950005975833949718770421129616649726715452650237218588813586304506819969686951438230204232178753701871711788836721297162641642865804203205534641931490720014116357505798016550206059032602390103251912320028569335485887599981512920043340758806195297445574429318761302926977199037094044630193978221461333365026182803858695086007155331134616248800556770271223464287185380485216453141911530489552012994318895956736403416291554116456317674340131272566531241531157436762755174478947651945885692062167562337310367661194636852783804803261969998135210959213213101468368020018735439071480025809002502462670087491804916571661633306343003880142361012475602887455386745024276221617920606808893086078061252571439316649422968539844486625037795843943120232839293998913482070264201463363950913576761032645258550800263276346347746072801315282865751691689555370717181856961088908133086520299584217806183227865698268717103964479295843398406271962644953974330125588621941034672305527446333179993381726244856720643145776936847791456845991307187688277322680872550794355480332696711939618625453434271286911302066302612786906675967373828460005778564744781544719683932876708394272260083378572164456651360135541869646931590949920612223899389405221111605373538819651644894785187265991771407220096038967931687274832139267803650856379251604893184422008375431106519585811081957054554040040612395408400360462500761244089253668474935534080410087355981095698498261725911034263313571696327090916289780816435870125953976728317982394366310023923655397870309694239519187316751373101442149414847024487193619339804420284324953816720012063005613394347435145565102861674681589741123823031957608817548298829394989733051361559478156655882455534016551067198161869703440800851247762251313837641655818944198214601012607488921764614587595823772082958093736511423933885076580877696744499784195342945527496259701686928213050164371427876268389060266155118658637608574456977987875342985129630045501925629001069765166506586806954423316740665476209158025260650759913944813748811767479855363010511344996311597190118499720199697727992427808272389646102169064172015734683670719077355884142936563537409773080065261969207540106171552916266830244149365551222440419190614602784825268503393707198255511991422321141655049943366943079908478359983929760300768772496562128002869238314192159234857858100198609574824874975463267330908097800383601150918115979156616401190700088092559062494492891337908800927523863312434791217314584451379514921604817327682504067136227425113818099357267871632426320734942526022891688023210963311965042380240663583451532476406091789596153580926936206486177015292052576020335538715584933276308437879004316284788703413773378015431012765839549793809763679873011850150973786527769745269354843602285227591532138487074537793192839021936904761153235232599218820697386024456384176564159345244567794483865836714649968729367074327127144199488830950165474179994037436351055852732071179139957670841291946959055741011435813649795165832838226170713468256790200438357437144851641601811850758402026557681008615434382747059796445194087924148745830577771172031264095371083997512338028737666508294351026965990879332510470798211054149521515871671982741666636038433009528471346941931768925240959995682851595184902102866429305730497430938576412628170237246757343178087669971528818047256463396144890302214491627878568152998691735919093109544162464179641471016013362273552776843409027307602496914943526504688775883833430888951226191089321154491096974787305835022154809903073321773744861871749830167026575174551877793224041803032450763374741422755520095864468383544752640571279454148858282813921435656985801335624590587642807127013026884247502988433251115869131877461588081311405808252798759360374348465198967972464890762835232378607265882103152154937373379773167253380826328134216965274456910511623013123634125685010127802412786365021016747950589984538799451929806520848893041163811470068921173867632273715381829716740029620145620555999910197726415230464665020093181415109793264688612812909352693931621163525516790540285844857087566096596360955622774352566813479973508290177191060038886605571071645590947838106483268425897009062624960542390701687931424435424681584067836897465026978468611758010122922895601920259478457516609249764574264067961893098091620434346439358236054910638156216315630707914282398858158170729172251054342315645881637255749715602436020694903469460170156865779753030805800690486324651126795868949650248226372883691600046291366291542951054309472121433943957098832680626009678739155933098275587488010872699988290156389751528535109703180136110768669309837457977348043373144324827181953633616538664728835871803590335175219255713017715894080009458895009921329764224298491837113920276219270410141726373887976095105889064515882948108592683538876932690767297183158159781260135357560326946048821104109947600921607796093227821206277381327151171871479341478067179518894990076015016073333637720813398393817607319731969102695115713123117285138996780386570139028192042755886355871516525719457432443081734065880368962970333681730522332393765746407307519638519497400012777155933231998254375827164747141614522429809948852567114482194784640623011064800511868020318063459958822085367967128799294673398833895506194328249894652452984554513677900863176629933051659266731246922258801048756133725641968281855346050410472623751096062024812058496370400694789483401604440616797720159797700458022307351856073694870907928837951430680878783641806266806201357440125517285264419507663574057278010777703699955890179551619464657679184067192394915347523840831453987067861915995391810638914888851452852276686008445887471916620694309414596409657482936946005567523576624306510575439422016144569047157103247511670277455895491507970480181017361929463399615316388489624976252432042191019835545453510349473394971955654650137878679031603236029708572445845138744925772095125942208123871330521386042177504739322979463132840891534965215943511528330654565368905192555177499967950848156575281197664755316243473393506617450004531400782894342407050312188537497134248025418717287814802776016594234502588884015031569191365203087792495938433278617335032039735058208566746027385506021166999260893319142787813369527772467194908023919630371275696851345703717088409153767164659616819606055998813828326396595167989360275732634631477287511432461871750529801417618587529312123015690979523900270997116019736912684946726286041177218760320885097122684714677808707273381225789984197316300986181918084417837851166475677767379256490102915547053585401403611125680893392610888050508281438613738402917718916097834525119428040618292701722822835045407095168119864086881282298532815019332765333894461235658823883879077577958754242045990534541227669896242542083994544794716902296712052754975835464302926048375625881816474962656769327701092585364727172523296086252544520861828954531017746288968954247873877944091507786162100200630719001031836399766739227479205824058116554354675886762659009175211909288578420889063189281239643589828459240246372364396820216390723845561519544926195096925622238921285790504338906839331255014961173929773227778443837002976367830399782448069504240429304107692881816676244395228019300995102102957316857819742626960198311567965754260575741164902679035535349088127677636530703726020125116763025424751846150544205985525267444215021863844358989958620664686347122186706581568658038639406210376406114577374025357245459948800293494466223696946082670334506786594916143437344465457775355023194317223203850936658159284912707048874545683049298964182836635542994495578614686910177863547555287782990170671594198367977694114900331144531044459778206747309087950218136187893840896853744855843303686296128911452026166450791167500219727838201605997826269987717895383422117417294476108126652458432583936401706123865894699462733415028635060737025912910744038183239388549070775590702834344660540649557311314527408580825284447641945182471781329360504678056362563835589940875842124440650616534389668181278484043589318899707562319223247479329762206007243268084143637812872719040261458207687719983756393634651497288458885604226780362266877613673752626473149778700369982577959960022811920087376292586236244409409354608021797889989835888158331089439074511293881560697956654125310629472362873162038060543465602901487994485625847658531105907902043722176065409894195159313972307348329381905506481214198594050146648470131487926748776675923783619366280600638480855391776131833690900541068372741553203855014047947201687211077484797854722886784378880082839233140415674137759523053444977479820705606624921915306668639048451123637871518238938126959422432635733061986321379219201258689561573552203123723418024020374447486480509799442717883705173979993938286969243053430422914464617648566213050403290105079219240385976108563055698301832064688573891886013257748398665381407953966463694776468087059660367217432569159717416001108074441194357020662396915638993684708809242515611732809969240584126159391844141159685648217825679817560575784646841776944968553825603828565558480625763861148533401225538103638511582051299413682909964521904712867837962608549652544302817681819990211283548127683949094113312578237710009504530168317002657438721675971483825217218084033333131238971370163367896567165704232941309153738048729013517834455665680244374439348234682702377683717101040748395036235968348053005341757401066894150441152589823027583373539871028331783867543651195136067222170308332484109914126517039833286862047438143094474675709907256712251711580620155366418579096806744349402559867561355386471153052043789114306854449347818632620699293223272875206922955525558579394269438313390689448950730974887943038360250755091579332519898448763870248043565766230289200952822437908944104749737627965457900911558422392306398472460839080713725921517425824377214042179498833825987397488371132184687710102352481167584861428571024468207396661803469076609736538768944878333749514654949063228049009620651958446499140618581608259797779784046448178402430054441256130680523893377498111818832408298206119974280858099964806306004231823470318140420234211700864897611181690265646463292938867770105381484576224729059976216561996243494299716202914948539477399777788758950087601282113489336766074587354914663232239736350565907078873431135171587195154556774966800853495676350597241111817778701325043781177258072423659163575004119169149153317929644877140734967856739273113106313217172006289184339297473406923082148884185031303615799824321323798339246540463585459601625434442021443065015805361833057708736860957021046575169651323608563712553352201086838518022780968881367986502505143024775725223963012436567370687382326821175492148833200352831297305782905916697112446169696700552367885820946574119677643720007886184621294429615795992986414323920354856009542029841072735697364600186205281838508072822560830727499448822947946139790790617431694515104391060021183421735089878126438306715508819793098353549142642191015838173008992918946432571398118061969565240845977334522388094983637566168059409647168985408224101639835481857507745213234664889570245627941987627013109844215917948656529277483595295184236786177942953113758006646610147835567419503442036655093383352095693101687768381319819201337954687655744095738124921064906272560266505904601911391876536840717011400994234544240775411831037391685696339892134467336506312296386431427763967931155518011154955130527197742615233549802892263845073179451177546802286449740649712784158212421801848652374762748583584722202025739999541633569025464352778670808088032277498177362179951225857317381928586692420238397803621523255547405575483230744462634006617571799749858900717642750648091492646053303055005990214079473941138992263391830130687260953699457526216287598022283551554813543518496348216719367628001003552761827790589114831267948203340554891090509353171205082022527472778945981762353644351942228981994541594643125876516891596616673258815479080709071488269864121796971783085317240522660392124339263711649586699248877983998684140701437233180568385736846560992452879178771999473163658557313141699516216590090663080551555031507414580439286832067360111374554945182966287245051659376852448207184494715256125596234729167692593905911955310760578647495684788279308696325841369872984765410860593717609160366568889523076438182044254904802469125770484983373867586196917039200058885929878384654060278547597639718948990338643626399408609624610986932997889028936377841264642842547774779502079363477862845688564036928855882875456523519020203568682829558905108871065852630272292344631370545171152224861904227909446705950956214333994253020820882582661263698083012636529467586430615423158424667587807420447086554441769562829438717262817848899672652920409850532893247223979805335844078223401027801032446021263545753400830315857513027241014446023928044724023517163194535768529062080067973467909299449475175728441853749888026427590816434598637645295097474883473157733992178024025954972342179254175765361237659318880093777033746960115603083054299794485697982871396056049245556029544530579626368283290015700935701684677070616355305955031307060661982568181039888655698597287154639184821127757827760875449378414381342354734978205979705813427057474158653114313691815583880221182311603883868456570209449135179707625275729106656203492893305105500127079000910392078713319184809633245573024448326169112914961070875100240879942233007793834572571968980992789729834459677607812784622211555650757119060011892615554302013455913312261475230225422151032913552476408188072290384657620914668844911111416368568358370746960358578146583813164629235722218581865982928757943409276021100280557423415865768953484853305861411524083650721985008243157731776387268415867730248911023874906860227223013349751491865658764658922364871961024403247628057082897290097149171160665158133131087035259116146229865137150190033100281245539976270186254785845716175744030556858853618601970069821246194458922377542674222410751056889915233392452790644453465323552817005204110836993425958976549085358473090787575271427049648305585911378454251777424600050040637193600149080759512300221810492368989603796689174122144143289737496752393750416745069315179931789614320642871305235838715245627398722440840386736084582227330102852366851098430773711775982776888276093877693204042195165354696661003016778638765319135311528043095254981146556823772981248219011795767233852430807987952791459711398443860340247541834798814928116896845482326777508737883789414150004029566248912502302253494076615154872506063400485633552238937035996139733826644495893747980144922402551643540372527019273769158908512093021456717104170634250313210378060596358257644741936757817976899271928633864580659722892759717341708234596557359531060060574056198073519034435648123322675979626804716156416885621728042213447812856760101336168612061237784763741139350368652165030358657673917227639895638068938049103969744328600436782937000371349977590144704572354084658786369108360456148107473174926556781991102156809018154025849959793028517843420827396445944470960530022168065591077662636860617115142670269511518191042581417476731042067159388512265233907491412015950680045871929568550604023699547602491072844887620413290840211117011904393209252006559120243880006988402686938092560992450298490027426567569137500056056520962400954024004536943399985293280305465820232401528672031264888348679240325130957775423147688901217450440371906469486770142876989685756034538339450709898144968081944574981158747057274416818206320437220319186465893112068102724792167132741800125949028797278977019322141730044588662129206443694485728460085063672918816901426939151580245139682938548063632777707075285882979160660568708997881453914161135501144557449242128413281612870355255109072651498962830012726135007486331039041477265409408494380018945405736397015908125321275394139010448140178485584385181818157841249804828378553785749760403684896417399725245029853930580775696134333287139281045188016533249761019540653564340164797336209761249415162769410099236562614451148719290427289469818067044311036448762572391486518758808429411528955597857972723721180208409757249654056957954116860941148681920762942925998570944316504779115745887949689945864364907772059416369187951833465263563538259073431008263058478037527998441670238525473744586040623591083148022053484112353498493517786649061004875013334460724345199590316228610498723143332298624116013518328605113196437299444923141838641401062824974596966609264767428748436855070544060729874704021572337498642416339332038835361084776238515974717437907856420580566979852382337136761463542731272211506441425564847906703700721725749835484281205174605258352972610156306212941879422662538631871580030295963550338991175653351387710735934025896736374487589317797782478065009094925668524241745831448611188222896037836699852373065880082209502533960277145559393471307058322202445372016192245801855734090576391666279870469884349962218677823540497011699518431985639702772963720671866641665512957039467629691800290904132258720775614843211393539673325408937700935893331904923298088202307738847464130084580064589010270208712019554987858624162473146556835553964928638575396300824681387679092100353350041873340077207349616629425618746676136832538219482625996932515667736850044892000125923018570902058504785603692976572892606229781270136882450556336461524818383739834583693126347006239413684615093906331049349987203329412661982812013994428255051409446855894114922427564804327483570045284419088193944361211341895066108614602041214620275310113385436834119747059491634054074908734362007399268688723242194266982866752353944101517340313112205199410945818765040602060964264371807663019194994290847860461634668729640549112639644348130063132713571194998650033920486100727742367715073460373473812384516776318753657561480348590563614933703711946772241951674619584166816643078109403785996430981368014721495492971980260645989734243936110699956680706987668437040804503742098390812873452969039966257001044793404299797023424792254068534221268484095259632757602761467582136597595644624922722734133170917282048481978157513580554747688407900259600412311377126274992525509950224640074660549489308895839204289366936058657013785887107254569721907949296953344992397335260177866964474115852166486879530854673930153358927097858217078499590410824991681764719651027403703876140222387903402752238892694066152370969794623792478921552514407059178887345049119678248035930700407367035927163157371795773073727373573863410939821943230018354087024593229038165467293652251674247558252277711036033857455708489134968436762671704592396881294355217359799587150861295046747931348280622895170524348641956000236769485917718433544526083629462943641766117069216677830515781894012923085813422839009841298575039800887099531259624722665130051787971836011136288618150417800707942846307407278330782765590540382400300277637722542621442626492640257618193133047178485860440397703588754245515550979691113015902768682897175560803306511199189657281087858136646004422608238430307801768835917901339650147431180219357928016760012803766609953549081206192524226790876246944061052843113922390690179699569059879155692914415122479128356157775153600635290206604740634128453815604295078319756900831455499727341691295070323370062454725728448277333251905891560366770409908308897293795608783224209212435625748070086916684631592417574778042900850044924639915579527678905064049726176373158944528455789602688061933224603062938472661295345445333121105633382513252361244025950979257412029201821053752416387984828527282197187075303435812545503176573169385767490129259937995152296480652794231372015870681945651478959135439284253036254620221074923525633776750042569186193537801512176794663346063563664435055477985868685153846751897243382229712661999770942341938251148931634814805472387264883093855922084145466242325813352296752855870035371109082864782869132318405628882782792260090251958968771853641840399664579810730958897954647673757208251032671831806640943727785767887517986740544409265222881125681307679756264811097898063825295352637089153671152362692227357672657731335337897857484079838853248232934661449983477561188727746943192485854907848171712518303211054786077596735229760839955081293534441939221603776251830700967597859028531427449418596848360295178987177915097116799253018330494849908727677720580518915192824430724172571956474222027843946939495877508735946819286495863787449436489549253840510516678735840880330834557306349651309439722270543071747019490549104209875195711436187702490584916049844235505588064142842202699207452328874838460517485805824532884671639666701785141955427189226103903941639098311568056578304965292195026479214074980617797590945762528350008192356494766426697408092542562763731306679047792057130022223102562789441329582677273106831765488403544415803779572691339580972867648656921824222315491593177492197688507262225479906646719793112149275212932027446656055609544549119670072548069386909461770053273248271927536865242169086235964315982155581780475781745226587610354817989571766133985454967598937383855247086711487632871026729737920269909372775568485700881104163158458156435628831332712680679080199581035430979484517492697324195098930371035878104588695801399813233933310805310524570360055030630498076134385679943909295142382855855409997466303020982296912168682842724695694059441879662943571864009627344754786492015568912194802651551026271723244907723648377205626729948123266200268655189127998705916289133427527732240235206242729954668615055000889144394709166364516131100150002762971356957063217448898230376175721633186664360314559798900691109435695848309210315929052396581115914618340923741243997389952628832088259181813725787264494977819031093698063995738400008681417981109322982174234632444695605845450963185469282547216906921688493620398730843567649794298680243953841805196054789823082359603759467664753546534904546466839710603389475839968276110427728113581195552618130061761954707651526419839401394921785805229876663619097441762907255130322469923449585704480281118096215294440937371104398430729062834544274557054402179622237588895389064441588631786253642798168784508656961716201600119854931288583430213228713466806600947761266582225860180931453278302501733157807804037080800841458514479235850488694953088075581078558009901776855682080542908104002561793374834716960400583483443331178361232382924648304372088447881371393729707227179726889580710081713817726545623143483851422099240511116827002028869765683805348628958368593082709800965474911433307981712871568192203546635682296899060515432354642179517096713336905160562667593413636578229232887651771588323103131113674360947941245334182494607071695427072127007554239361850495139838576184192815904315820426896843746785165663122661233627017573779105948779590341043085145826880261389482580393228602884498669887104073643821711489821659704333697379412782923525375517792181337974738174200060383754127114838354419588067769068510561396318451214535118636458515891805714536950446727346194308982412207529853474664069451556235913003397535797211034197807153348921850064439115465146925184161836201954038531899434260124491625462822314408098961304683891036210149780378004515834930423605770523643448810307480263359311265150648573994011030951905631806571196621851570558443040272950215171602626291459952768371954021504504500715629259628533305989310681040674912854141904113009769415033473989916738280275539404541342005324395954288880612585285574708771291000714160041048462147898833574276114251531557997599909377252027034518738464417484164887841951650337878445068907219465585796971456274180529851674744056765587917777619029879421773285932123817104605592555806058648564004770931593013751916480261231950411517255343572356855424388925076909372931989876030118760284724903834800250591526610345148968757338022506928293267730967912412974584207567371920265242103711003072341232769854799073304715868158608880511837625702001391803778939388784206329067993233733981404058714457477856127370133884879904301787282546155740763328901067958939432664654769610646199911303472736673892640049502092056249324809917568458948791867037507287752737300686743144424544261204167436321958522345646820756201195880263760129724665793247282134628475296889504624309266067805795469319464987546047388169579053447797225772723839791449635099940574769612488211811915409107372130465920996326834331856633424515891539787125218823284324459295455288450972851314664837922122488918841572294547099593686969566533207587139692157183455533258274750487954800763458662163913705350727138761485070950646677756703794534916682452472824283159369088101153579562424854339954507167683142582123467995409482673777959311655720893461814586314515881516339663894920806539819202809275247945756229441299077384142268738988156915072669612481201473945337049234608833427624133506329655046535800511670026613227021195839931980698027950247333569974299835068250343130397635417397632688548101143307450047166848247384288495856501656845118766839621711494908100519644137827970303362694579261311498111680393040399337839287417014300338650389039293022786396075122086076451925343922161138616033282526864352802693902870547641158422660980133883043111928269824114584652430611870535496892725577037299573350895062500246835774405323937279209274041479832515720187547422030941554478423524371265774772346811353055476217096393159494312489808158011031532668548619850910364076234884045608114273471615191715772609541997354838434421298527428402394157918649775943167183022455760697111840689645669888937021137766551888143462108763697903548005387954186948718535656987352054050447906209748618110622272067086865411698871083551130101175155225330484575740887355890374797154049333026579278546514600576704137870383167613376513724484944509139459132063983559533683702993937047686325481896110735193844300433653971925024189373465703407520100675207683126449000600317757216276924515076095449776752501399218878785469763532632798592986140562594395251169558316474984060469582617236239916117892138417367513487865105263694801060415051954661539884809882920831727368105465070401243397972567335709180517957199587767262428543951504378549194567129403622625271497138727687990921719819140055402690307682355560903800393603050298686765853478156663065769472743546543129633499838514191926221098742228618175502221803440343677930344259713319633678860879788701586106111979430409434049313361269320106892827184598781812246345478918260041616717039753252183731775697612018551939631760707176126191018771610840949468392971975101089917237058726974643942709193060472597891068221226457861479711259316132951585805987405866040186327416005930378351291546844900922520898195676376913211249651126188540746725638953406443348101353281199211393386185858955804435265962574698205000457798193746216244553700294722080569870285175744867448374438241787227002862423762136811070309119621515935204077125496700249439407294082744217211822420609963344885993879136821257374759836802957962981468251674339523562474988337384394281463637322221060034356491728950844659687793728578019346427204625963604537121366463356294134322106013328043678140877553620297667066447133980630222158364948779807295797039460083872598288301772922193718050486163144072382607271898133945457947310958394645112866378379304335529178279174813055062390999745141463969937733822471301606926867185481664688009244630478045098332700944820059222912128414283768075508587923114350577188949970950314567221957091475068372814930454218386489701067620538400609535091498949503196824656587384578945119195904027298136481544227743469014856120131254777117566149432580076180400725902511612888725580687727898274539380597704489834413031793047431043560311781117715506689201819573311059143402428176972714322607852258775063598827179273700320014987134451227501322479020141131525450576523392199629593075657234325029467729120526822337435772203718156031055620800564688369223619543204594697537326849737869813944645230594104701776221742552347721192607232534904288459403504974969382580877675218273833123316394064107011413953535829970945523147541951669540923679674323735893015759234869474508341244093322559538066184635650553017236369386044532255981473569949146901066323817538695851932029385016830820125880572125848498858384197950793157751982551063280100541037718514580688248676545470986962677293593250884467330045313851052887601419882469277017213972563712030480649658146263852362970671309198540510105924089424622518646724738392050167132893279250886894053863750359000025604621189522319992461225181957886193002526334315501219558217408929850930679841377944431916341229176771951340979241932586833593443861853122221997877937929705616894429638333072178229104115010393280630199137161094424253236227334091105091677518070489015497832361793360834285639588013387663879235548943125835421957195293891620739253079146603405255188063696239184453025242447042376763588713990518039942713262270853565831876163678107677547193745221134277826462376177617956321440493697819279894365046068454257835850607467118142011551040488851760416838931213558158320819885470680625962922306083759346259571987543056692149798481106135848189948699725721949522111673070592930530705520986981618194604336093501052930106599381595586502728994685633299595408943965835933875184657847310612209304776914482755897223473532147343142061035363943814494525168855997626498197277828663230186577183530125615543108586009582197126257299782250431938326003905545793766882784099710815778000059057655902722229865024548107844079455678433183608459999841893991127132763610261824958685599504294905431308271994922706862098547487149761881037319635438191836928470877415607595920464966915378835874133044038531362171895257359345997361914620445758603648214050304017639651121377230855415546435455398476566356513253480365694372764156773176583091532132882795283943151742434774931312519723156360361253288169443707256340554450644200195272140189474558775694680666461464805556308420744635755613327822235302182156291558791960746617766218645171569809349392205437830217619023443658497491205515070873268866589604058546216047521977092501760427817476316535870074514479769946210694238485119595552506558602160380503058501830274660280225629639237817923377682581994281376774277903304407436822498005058498125074509457933098706416847463301984820300657108810946463464948684451013520064606759833989149492004738934388927368158295699772532332555898699200399075905785620659840438148151947079252129968618807358883459446507091301900959571641591581757422165492849355586746715679127688103096710471018095737936776654607638907393052076380949558807030725898699907344858309774329717235358506882350484408232959580520780621282757652979560980279317253419902136319358731493000088968895238348539231506086491812998477836458408921759853372303414752644011609372766202022428972485665809241438014143215530523356935570601251497681268109859420260720422632637700487587882343490613076383838264694011813943172392025725704346515984016699460913213977167010690550938933210526456491489743713706985421352754979988140949358486015468522774864573484345570633056406103718307620774955662355830660787751879906987821582915605871429762927969542827628403782536762810049401967441450423872035423532589326844431780701505661244335668579101646874897978618876411491779194153196175427382309995839486951714581559526986763362228169973518695209380645517646436089989152024898796191499020425859690697072100214086226209589465495804885955143436280882454565301800167295562287985202340240078152757925981308460078707447281182817915498018256809293304615572865374952166060482086339138084955112019171725090964773757674455962187257193367961988297149117716754890454434856882189337881557606665967246493730233045163395970314146128318608575631321598100148646707308147628582915911042100329783138806152670718306356473760589834333928704360989049452163203735723788900617956629670041832821310805442621465227492911681514993013323029795142420852535261973816408742539826015468835297867443883387679941016737572671231661266216766725658968737513609566901127534523265727156784774580033425154995614148893939265951238222231171120609668996457302317834442155874115794945642199533116416239638324371689262756160478864970376609315636390037013252063575020687023900756027782915585433808930065132129915713995568843588943519642671854640296580455421421533969626235090246466231589498831291440098722885664980492906755646551640561817831204108344004070905029517858831033979358956535627503132483140891786589826114644160616354732321491710412655854545709472311466005473530605318466088708997602030825209948696406531160715788278940283990206364875572220955864657310232351843471292013194482754510088682474716087267806479133710834019943914435551968022884029418005992726769828611700976707522304413427586162588582757453115975663169545642175015426691432926913539897771619098065400779798762807632408651241279852297575637154803356899531347923176964421604639062408477627974583241971025781954989659599366145183722391561542326808896975896398920117878897320964208031304418682878566391768307915966220380036996371697620582118166197486599301124499333903132696762617265444971689780926524981292000784457453892438010914912855007469995524193069769299787101476647643705178454975475775635605582514789205531694844943514764333213962236938556015924230963364724024338357501175712244735230265308577724176699454882440175340934865434379257962103975278551232266004757401329698746376015794724086766755959958547387243305450885502583168013385565150054214822231553228396486963269859444526836515692713594418412829264010616899199795891884129613649338593563043537123481112520530822549292410901038216763056214441079227220825518884167772319762417698824031209342713528977125725553093092518016290595544306097445389466209919573989457494090726534204835273328386096224054551184400803610772721855115028048958164809053390618425969535869174113596431247556777298560127356056138652148735934065172718828009604814007686669625161920427425544387161475729534770300894202317251203876257229098139673223420528039901780499671674797635779863004689491163918630248344354820107122286019251739179150555474625557525046279200299943134350195221855004124669282842669287466092607481892252037193025225118991597070231832961489179580068152410670537115559926586465023692996816450245624635365462402300236774249004783197307708119844036149233388963908601550352469074793292376355570828246155209831213547194032048578032958753647606859925758126557470777008088333649872012255762947515296593253059594549993811651316531822922559649342279352563487457621315758281359123702448543189966991385899773538730139066739309604257067239003205428029865730103312707140787079594489853521782380645007990024922478360484774176051128320053840286956663451603728927041804280858771502248849787514605672624757831766421371846444970797822658521137460395817955099024735426109346021219111170093731636052456585369043319447795731064049126696362511504114420248660594903555101354479934222630071784867321125917573689243917701600404609598277209688620450635785675611249959777427723868957877241111803736784220071997021389515673631534863765268200342304356860666808390255525333902063668320311811021885801205880239820756669068367474321875727478658752451867491683927483532162685901896309703896782398147738368168653443537342909740380176237167777456228069229968255415986539411928884894832218846271901553708414883922162781655668915379227180777430765144249814667855641717794463230373634023929642398053502419003832752011716781480430837405951103047709977377416293729607628844649909192734949849553682917923860063537629184184026930776620727481222516816222317486552590242734954625289015892768143382634527714338055525195041801821744318318718432502317682395991298014049456958321395905631112778185500979523327009809631658224136349469616918889350469154167487803782326808411573340877399603921001265861144264181287582400451344781601393021699820103104247025100298549392736985951846589443482217654544295599162938873154940021165293634735649525097633868890803691560784643073747216066362945354912851442694173555430846121197402731761825232998719293568442715842515175735885992353473820911350833942546864058340089003638231610312603780422769498136426240954833964962614461170404720605102279297247221251787345118784960633129180538295798207494822400329461806338837366564257679427502691746814761618312200963183414733767856480751570669525547038401724089531111660998214024490131433279533301778348533541557041188992151341458160764517902220892420019313009939640784009184466358215395618074439376248906296918780844727020621475891788612815585104167269328316584398488784411734476146975535142445854016976084163074495817504346779449345779001314546364960909058368783042493066035308747613369529806572268165487252045518874323972440032284568701416881862065173705436428248931773179642010125524288225465841183569839519623615337302133463113957310967670159146530951300067362635466648658370061549039147281604706146779599738475667291817922983309518575886725079676781669670086806670959600864434603815649300934384754687876677473986555215141125078938129933892696023046195015355182983272455240916895911587083069253317786096300418352894964538238422228495774775284488520191127738801420679099272146401955128395996371079499543581329363620068749140379338515119549109670708753988142196423658056255530417800536699456658752542985682192581565711777245041435419842450998045150024081999991363174946897012703664629580110747590001720397837962685199383268142421700412473114028067340513822362938838654897219044969355770770166980988848671143802712944763176534252516371874315046304717343007032330897226152657077542156930351723168768389974648534260546499135168622736433017022400105335120897636745050595856810912962291804218963297182587297920386847793853203054762324444512038595027602364426366774609393877430184075377133775158473102874833336603188244780577066448325968986769717363517041595744567003736968133630884883170046783305455789406469719112617367061478990027518057607303495409242359203572092107795187194695621129453489412860984313654342996160130752805713079507492961883012943483123248962456013475280199834546478760449295291932416642066942003243896137383855347374226411306539499329063804361723920532383128754441521487480413168547490793423937302108235830670225921035670855699102238842824371788490203213249878905974703126306608451979505631653666063679581720774426099257147364279671210678130260861344707312254883928483787335205727705863148713670483961225695247507525928614787385835468574751610098975626299191864346786800713720348332637618506967991937744247701126671426618457308849162664095821723263012544759602582347704283829722088524490334531142088416493019695987809670846622058446364888335913721110129681767908888946529994118900845434997254767537159972101457743583152977985909384946962917077869325099037264173487113810698947711654044758409354076393567882143477260555659470137650380168477924709069573235548564983285434287585408326022455955558648174352337896398481065041759210749240550515140870320377689678137391013540804872564311376544817058102981764736577693242994947071759169167304715502556378504457374965089851238275536086304083221828782582337634232891648949972334424628273795352296090682537408899645309169365979147808635432434292026633047834849312017133928400565337055820002768013770143873136509550147150055817082305311541221726551516450585094445985504930262048198825995537988581301812606961317744616518658643048898375416783871810613596937672071787011363030541033462329942392080527699236199390248446559196176835173508316459514972460480078220516622120991597404705298276549501617178679616592019042934252001914582995573081857400197557462053797755713921755295885376951698686029133175993811866364717442661286191554075297859980028799705794728565417489497227253560941929461206096735733069355015119063947029517476837701642801817438718677878322956072568297711378828851504694405434695228376483347469142034413666669281470642013301245567734730797953678693175485365868139710792944451990211993570558584019284827034126858143728742431542457005439441507231263094275547299879129687198446854891096603433068980346694950960704508067353224798572964391841857004754682172298431721883770594856070782398416025570781526768722869981169322004368534187148917123724938603307031509147908479958673755247550619692475719959698744733563045058422863657447527314445932972159820542443676622769335417958421396725000956718216628480655536293302884679976053883415180309371981578026660593695869190175581921888675977446510310990586630924669897658221015596067782100473716012528584567734366559201724641398200373459865273118506398209573523079228844233428343068144789916020922106862238961002531297685190752650379713067847385883677691705803318389912518739216933284423244570804904328628629021040619539518876098675509580690647186917003285582605686695927786765805299188480475755254080292361135337375537507419821390779124264302701723684867853306002842070368558908780438705947970610255761786369579704980802464680258968786231339135055614886881552579747461160680131075687716379571682067149335219712729737782974108796988369850615306283963752676988809350939023459115151065824351804781862002517776884419176380132167700855750734363036600661339334516410565736082318224952877983876754338789076353855252349268487547582359713672809341765159791619009201728685545017597647535682188311474330733121998290836913376067671037973334825234620659774735031467533721824579592116968166169983162076703704090289828845083794831100515697454079633943107684213342765974587734436311499087639058341133713347259901396847502634611547300248453154438315284609475215075115505232487208026833771427325082190373976365793578190157464183348207561231779360221057762056873192509940940793247810111154205565158832492991616942215994852946441205078805409190762217952618938481886898047129529639992101660840979753915095837989336132702694565591297785880487790074257367505560418474721220001786902655888597215383531342571244265425435740305803602358677481886688968332069459333722166171696696166297720595256194284951308633888593101276234983895846310251467529588161417207908775055395773281740059148120902627353904467799728603121180194436815428984783534824495633218095113052094146397402702205601766290460586766129745880603277434022815172107936114787742450694333970686883040465362822521709931538082497546281512128637575540721771153810693123084440328880550614330002029207843302709594609314994626613517603279598701582852774319029770925586443723012958696026784477382945157196514436799171506082348809902044112268142216249947731303001675895054454627746131481568655363854024763852248352142997091088257725889429229983189164407886387962464666517670038101908071763247057261311324395388327713695274023521338525376692087660310820136916736091556522889963817019738746148163910152129347724880562381776753726798596346589069173786971341044463746814925988205212544703658262106001126279593918511105935755409089820799778240709551650031414077047380419507429798573025419110923080921385993838393170088168427787399940626407181696654323172730510352541902422537924442986420949679930780803040106595788675651730154286256940610149527948676117244647671371391488397471296786114068637292427442137580739614990419997691141313713987191218804254020383976853651592406405663402388944766437701136664900767402441625444690057549938651661836725412879360595625566000266558299365221922204103609370358699076109310659640291439653919299721556715290499059060725136797429536937451469154892482942657145975056668918348877700585428131163952170109871729556274840365099291184838963684875240421697916539460833344107776743241794444632319520217787607132402297423743288044350484644909118163693742913292224205119958024795657881778720684420125041644396165726920402789766701080097605475456919606628024603612455732888679818142962212401518026847910029903811655309606960792012861561775065941668817327523410461240462396028165626956312296715234186857607650892227296477745350648689003529601019008043056559640546525232378888614196188604693065382444219781703787049187434400968047601310020973511341948413032834149022579699152451207229652777861436399987599116900585520999143455275146694811647961609130189721327647463404274351375928897571288770811451175791952658440786680065401667966910566693790954932158469804603580005326722699287013106824494286875817860513778778284119991355224161608229788858267103365690055893958894633270489997972786685121653975082223165014144753155253819121096245812564287005948674146766867015097874850210464280546963451868662108509544582989122129844468299236301432357793263026009391094977631352568290835151350898930020688434177121922497397391816384051784696685528874827610866147243540532776531019229796004729998629993744469932509725459409794218090516017435445710013659121025805562986142897575205199320757877974678270091366881489653760064002021987338773302947948490813787763261990312913541158276695178097078333779208331436658718019720853715840132917115852181810861150283642028249957741640077041864608509698391375953434857920337606397882164881489284354838486794740690892491655862349709732168446242462324295674611597836954288913750633338771013783064980742187065663918976142146667733306454633110559864969125958113576216822331031138379314222645745950663310343227236701710552008205074806101053900295898424809121644861070301846306860148123615274651038547117864551029830072881829738817946219447138455015441422190739123934065144453665358380868745003585236966196035747914531295809722868997450084873874626434532939731822604798981823196088805911657067230762365670135221430336914866973974313982006863111575919308760982135877404311351273081097896021106041266304142576756115723053540589102988006795188746259878213652821202180858737112406052683979140346088881335840121576592120064096970190280964896580237434533990049158263840908237831134131650060082165738659187011216468570046921627373064402379176647536363318439798212507072942412180069294319421138003225000501002418114532159051133408301874850453388454618308204161723561771383159385747101382405266360832727509915027282767040594515505958217214787427029497209917690721099003358255078095626884988407842380771009035150284350020517670297555151682111450918782097162761067677207875863245969004090613442581157654280480967452750695936219099588003432930996365599566476612654681074355153710400055270607751511682280502265320776992680994813165699194263928193503432185727129862209077690030336599093681152762948647600422728363469909380976356456590813218416872741141746578025273657900193765114302159380766973357095644540551217411103080141094600528316502190234462786503781625137469599409387596088956095651417143700201904842496989583212306346976231121289202962704056998368360959985516626026437225359135280083778159873907708826720295439693978710804230291270884233906038876446320597301532987902462632511046717636648997946581402002913732094940612403631166196598054943417299767001389708266712005270989145495080873420124130916278837966186234786025589142226798650951709667185766631854528189171932787400847524880437718321086342521554452219958807689181548893068669322914506241600462724707412052037686392561519212322964778291870418601444892965038177717406390242768714554968984945323151864092625110881336201769707604968794473050524501050539787350184685977492193581441768331607574282830325237504744179469985594409955985816822572353471076863467989974559771766421261659194495086173147484806315143811222178628655417760924896784740218644547071908978375413710025731144480767877696882864854943422040498534970852839774361504336607672780033327534928122630410881675318992016754952342696296527485430209504381075308277402129207616071286394233928875258419885822828371157185316789082373468208963195090169285510901054465679059701680929456503395304275306124649638805043489979469389328792768494290506753537723879763897722269990689219899272413070288755794647307292307826476781744308800978188443975426173804732578612738620877039100268898711662270287596713122230301149648940708277949788935396662912711639522614507472116286974512776557435491487342781512193964101777736370405126269179286587871625429270436232647531738851406175905555348151092972061004017357521118728300683344942186400639047607532039724131058351000474916319652876544145276014555882546633364522945171511121146682503360595881706379599445016538878186055173764671454197174276858345770418249444307464904854797858714736744085441320119166700297026743185034112468160356338533112079677357955461852372583277058574779557630170350365871573891252207505039719342004741957260685851461967049682916232592284862477903321991008737768297348074967990110453035027319560842773072916385426769077752746612662268671383091097594618153859083138310937612216543651876984376242794231478251521780813027180956428175278595636719254188999584276664203232001578002800148727546566855787619223932045353559066468315004304276533886329117044746485856113920267716331534086331032975674290333687453589836696668300296820645017645940575744178274831934386023446297297317664344113279300495688137663144881596076055641846233044509287401088819120604256677999677189180402812389004591165199336666703034260100984687565521045702008508419103962280690867531255157997351404791608125000062355110846810616147074945998382955314778372888998703808778389425962500647579650754462820138399274255154917796745469619886963111507197645712327447853121013258002202362824691987738304215774454999583280091754532572664115248861273267670909040866103466368049443899387967645458774444348256842546948340924406289085327738472190010894275759049369366303105158282608262143688250000361611283125503878557369230315817738631357571653192786144455410202754017574001232034954398313536968708593154292211386729914831465355720544257400969533438132288193175038748417462502984465866900536103287555920474273631313555304010946622219545484600421954214325161521448598734808468310570570650636938687967627482908792564216047102345253426839557756249622749530615974471972218230537879079493126439133258490606824380638807954416706371595694015540804860454514101395792241241073154067592021408208937113421844557998329876409267983420948560056347369450026779197305834489324011736421271527049037517650228498054868849397014076798385962988245696109300177033766275847260434420763202020843611578954147670906334276940403806235143272961339427091126228205095495900005161761025341596194363651494141501747174132978741429465696368160866973324737284018473741955904579810894073540322568131166290206574533161089880112481367161198376472763179513079770159837260135588776780838371096253123643154475357280452439798396481436834636373528686624723576256587401487028714034464009525418034978102533005612077694072816564039183904693000543673447758420026960115794471197805342024873123182543236030146942826971715223064316828550610053165751038668040527022491132919730677766881680249411862601136139259833605527363646801835171756592953470705839571796257500899919515726632751650769010323945684310085743047130729874591422468013132040835060587201526180282360235373192435481510200366116428988902106805318434291103418653164607125238809694982093812304507668839613749298698482946178805721314615414123941787680126305237881077163004039474522084178869629522315165697490589579448997568392652508262423710013639449354039206403381333820600844971150432942708605022555491812590513420457498961398459704392679388143828503309476535679082320223098620414661455719488137350007007802709975426295198671322127177996444679579794721628020263281231820902249857727141165666636055020053966962792008949985279641022131958761031233238744051648089438889605067971241140949780892329412386870076926178577834662657882522958303714724377343553165450480389543778628760269378266262398043497746471983889719307722811577630016622594199430837606145519526145036499821273255772701564733747786749218378013646356802506336833050645653644125588073232087316111963836388916288017134642024595080844411187448067235358833281981805197591611166427497022778527110910684198442060062355427618214818161563243333020544203080833683655811577754856487798704435121029078657732694207473992299705010863547508387294870116320173921911892874726157205562745172896619238080743498380265339100511973714125026690417708791971207633179632457562710325641046556783026628530451997074232876274330036060058151269314014402549132040944904803593007953740567315906764089874115086943522942069655208477041260462146271858560245672903612376350520778286420059753129828092888397777312687331346198575749175607542178087314220898686072983528094780976352979369492167987061232496118426944338467012068665059465649497745613991247475075515242241165166659820399253008616504855334537793635611537998382356447824722889230945710159125264011825997084259786031011408605927161514042151589445017434393762262891744363332526931174829315480825509501943546492924658040203724575510257624249383910452706777037678155366293900515654908499701037389005023087472259363925483878503903152896825063347938358277789970967486905694566875507009685992348823134523789314905150778729524467388847791960547375563359995241003471704152538387664945311366421041342061176024520647153132612545744933951124410158968425134786878576285186033307505364995759130068948856492014976369285199545489901912628589792378465238113649036812524318410855295483579515201717837219792685370016614440026155014371243820208515264085973907855908607298039623010551447495856537623011747552347772223542251372464150516540568353487473413741434084398526558974256829990058803914925180039141064755913299421160970318715498373682619464106526341865659590529060047930537770777739254102785044858302355626414449259382112858634073759797545369361453726726672406210972129486338399222183577116256607244688639658762684299320006589437898336858581695889832783181272174622944267117149754188944440516066197053619758523310672988120369541033784243357146736189029320493642399977524083653686361853149329630773673298996247174479464226829446408302751780887104490523033870444687725803132357017620461124986936120527322681673491656440625876158724986350812488277009978468304769176536447110499575280418798391804859957601675802035394232639977552782735860609505939638174103981088386512245017517354682500960015945809714121948669556222881842129281318970836058733389145491971774102115590519113890901694961288769925425067378176786613620388894930758824617297930551123885975856009070199939291914045138262243266470048325050141830841139251566553978553869630620166217070227935219170324424369319922712734569675216165595336295043399843298888063641297308848112027912816992715243658077279742068711258190040657257501076831731323037291296374357664611528667610513123930386057227086083422393501072888326799670707440597024027427597228598995482549485999333667977551046712332342182005252234414173620259963909642433849454498361292377077133144250739452193998969582807481626210039788740454943528489301511371803257056039605268812253971616126731877598592326839631251838397149761219437979839822757786305530806073589218555744219414375843782304273308616740746987187817281618394321670532983395618484648503036339568342658460998186480600182094455778883483250315954183554791343438752311094643337667789837978543301524665944006736642142465187651670310455774358458078190035200450685305300281357445754431815331605729008797529235382469436690705041785736867954726371730002025209222591070898607724252120421151405636479381924528573569576773771930457616711685072025793891053356454203013743567750889473042416166320347713126962442857959642181878359683374298441012457349704878035426525245908750781296095259627103241790074798604381704851956363032676064228533944532709408345896095496480505629499290844337750887794655208671112768916204793827456954174939247004843700704167544334362905320577607604543331561966071158782405311086131644214603839884299070304238748004420133225921941938825862247023831439642308975595028979677061201025842297891859842001349965271139477301313813626499005468419411468500802166927189900207842205250095234549643090161720285001052140937644626520051266258407606933905629090296114743344628595547368003635252302869759609171934484217790247708323078049818640599341332632027564443252042630932978368757134727666032931436023830328099770870528475078745852531535634630011615159589616381967952118894127955697003614494711572337848738596609256034133093438433830337574867543112476193659901135259284622834928401133331782150253199158800893888115501199927248023775048790849841002635596315769148951662729394168634607180951775283480699593334745349794515459037935298079125650643019377458752305103952876560041351994243655237852756843408737167650026996082237012891122225955021304353141839060279256831876162710864861534516398464113162939541354318811875919998708404212663352347173195905870872380471349828130511646578666434058911378856021842601901603541556476466892922833426567788247240538710364383207245874861536825641321680310810212660499697758250915149229410801466498825477143413288146122247114824177677445811802164972601239308087713346682427670406396216951653329633747465457492754161517411508683628784896831926479528033259675175802509484936540729452563188748694787149523499845608275587897587731773258527312171686166821508633028365427442111277422947094913701704996961336200773414174970323225517618140889560175731605971989497438481860066892342343778029451645467535090852120859082340986295730292636728922757028141192341722573032924600391981726369284129200688532021398082388630659163744190962412051279836574436882137178967022492724994224289838688119084865032572884451478311602811327512312078397417605218425949234834107375788752884074536171727941963135079276585756969111619403567812362594880863202354296503911498670729162200029865279147924042804425597170338873602790174109095689680813164894368829027021717668101774252850975670438166913506013982209182580577922061359185268841901460409140138089354635100690884083598544827156056709287069248561435716723051815174784814838474289499648421765882612231152167232468318628501561812213225859481905885147040231321948779305181580908331700064187295920954121209818545688442203949113141933041071218131858453032778135163416425440921592046297070933019583061378608343610046999596906886410743158923759678313536676562445641165774477521114811977897132221430053413924233112781813675439502150892940761117303216975074715405551585074998801967205803773771130527901668139757917907747960899279603594156321994718621413310183941997934365591252248288069368454110798263168943679385078342517882059741833126224496294160401346758704972983979804730176052849952253434527430210000300070223872036092333588695622765913562359435078706912958382596376384326737869671880128275120511740800142858508313188721656733998610492204570060520709973910374816384151945691359924776557793066876503101910971616790278388567067519826483975099273317290169589658120721459107056265138273374311276410238529086657686827271421761790209224578001983067552654294699339484429126444662268853794977652806791088407763133584747783526869631173017501302622282612101928930371602039924134724629603596092683824570241461685037303728227699349119569627453225345890381789066524290266332430508564201293449242964305731771808592181996567317894593644504999754376148088958037725097368761066058539956281478385151137947853787681553559904502732472710675346244575018927950606881901893200236078622434215229251473410955880132189974670437397628449157804832418102894876493966268025437374824212165047359875604808039372933995035851602431198622405425293548830741073753970723388696511372069033730744990375040532552651147444288344580673208998117560331939471570380433841923314437704088166158893764999374617355012567008388564459198840586245477698649549301886550639605432152527895623221851049018987952657142173673641398245466404059960580765756258962544581601088498867350787633790053436041459904780303628591200791025054450601445305379025427112177878517235402822945068071662865185365737772749692634327402547741836056570517023922380029197475737224049384911231426507517747811075281010674936857967737360551993406505016393719018233571405186732141202744309342898307376259583907727988128585203692082832959061990299250374545844505353632335656276413125632010061544365438136210594583339702226743449165795553210282734030746342565343142734580306063466432083494850815996654711096225045706315171299099693670919218704898810372712184237836665414013385671212782927608824504600762287939766544985677443318165835153334089489695292618686408296652482658831381345610450550767867967396463100549235216359276409986824927963371006962776172738786054481229598155576206126952839091037472037315724003927560894192959101038995009462058627069655631387486642027585449227347292613505496729199056523441371501826459157802682912545360208151801966183742161111607071222637387867992874945456874794310090298555567487050663393132533979301344647973298844675007055267222542360327691829175848675140033924045775106914650656915035914274420191489059937247487240706548980113483302688156402604581300105504667606835651452607848795557824346804369918149332080122296427646835506210603506786878353478609342248402247810816088111366843472022925009583553035075673324126193926456601445094664858276804575608647977470270241018476381322487138364420111926616966038634394703740452221124193599936279619696970988519205061793364579215941873511810732943913797655043739207384408371572994366388945360196711914923836871393594495652315217938236841647552534299455852832244594345795972279531801265891979778127736632745129838404432316054279327288833856659851692678573651363883814178410059835520523269371314331198071039864802099488067351444605888935711865240004371440469778394804242818197097622730680082794887893451252828324049265489213721729206371948970796016901907674416285656956679122613964336529156071706686888974865034518734285474032857123012317147719735005732283030751387437269990365044724638166771465237285690032623553933237176751578379217016498716832219708736046456051079505860893069966203835739969461086548527052495336559296777130541272935224422331767383837984644730217134802168666577500186317571176375698989734222785190173654713341760443696125594368019503451445414312328110176446495539676686749743255768635609388326972710277359814117783453891497910416157032890670714806118035568825157571076381522887910607487681691787504098701611335879124439629056020036014621734972738530799899509319367937967821063872704438112627127365544373460193056047740408356922362201896665945538877700070764091199992113725728542714296118146456085138160632228815108647485476504159386150626171528214015546419373873025259980509690471036912116130438195700325410271392996967506835757936029414383167890493252970567389934862748867218185116741824430311661713472161074127545658717922645961041006467902289713993803664283042178604594188923916241340095659149818682766087362932778616839988536141237051650604927581878402155055249684690114460002234903413815448382991285347556279063973069883954563459555667753009914414590477484622359290797644033568687634412690381091372025075018618322070052848027821683849962394128118829019026537002017904248526095930182756617261957940350000860921623878766280521560005324340161020135457534982329165762790203942714639850991322646854590628157714420860529426218032904855143729833590669288434314384967345759590968557658309563356229977756957065303237916406426115437914854095053988112360507381314174544353807293800408774940383387368333398283604431417566847719818850631587259244830740865706126306650405419315296782503411804803536733792148394744245984374467861390166741576081826917991606913366781392037334086160089007250359448775440035930592421217676946316539688004803625706668266152462537850204271565682986477633187517912328662264238207033519563169199077926291893510831438572017101561887605587011985079154965402763615559045951245404436664253860337875742739965953561683956512330131636717869335647648694071929802109994492566108709540211895998330430016771973836867018871739726878267895211583066292686400302950054369664679006741663724194619727015399775632908039375137105195601733432698154632090823995689203936789286552049908120245613904922039803687076914054746427515453542195235914981625368251421757700816376634606807956454865439014399773536675835286748114963688970955066114958335441723614555395998440065153684554551267832027170031751073913628351785802493653445858362928973185310772121008119930625268801332884828873503382352610805723182672212846035853771145975018087316019714024175818553181971332716493989910080540381483054490888936455715159880579950530830507769536490685707387592367994971546808136583158876149889764308781049594173122405783512061090237999983903505570053011575879823706161500309360065090823806857090712856429561003580158132142713785997992435178479962477841931344658188022970381080271969224526819257761290054076393526539157251020176119082442518813726819136020598656929044568279830184604971843360073175184367817656357522753988236457067714544423725596568272747675063471224932272716008704706893442330028562158460063329463231684879021114194461584817184484864257162303542958470993155980061146043052502193546593386878125769241776764098191916280547302719725268660602453107858699848760465515263239832269041591475691304750688045665204568656653185856951707010768096005700130932240185499008949440723734763277457635219023408693725774098133959172464483787229873565149791966376135411198042448167419055921718959410686544569720291300498568885877581795124128523069237232953577878819970882507466157233416588754484175469781005045132750356888543014740065899585505092870666142181386416958522822821073956785332273911280326554765901093189653666910362593188108871651623354505027940393920841613926319455625163680778731726156416063364228357096442756362299555048412165085698135536397599406268488770857443961094211906182557099099020117557619536909503611572598652559386201158977617023214588846887776609528937560035637160813613404744618440257319358446582184179656071683643148000964292545611413099364498085971360821490042632805907567926976154351785278704219399133764418785200322893323526550344891924871896504969344686077365301861215439538861228371770214722682742989146470213644615040156687216034839083508625701318403312066203104496129554607620902638111738696135455981556602869015716014626194014351367328616105475651395914304812673653832963111587351120182778117153410482982852897308302465343736461852107423605693175198952553999297961495050971697158472231407038632597849689747024958678668642143609786266832506071831646788530956035608145429154944332066393777850647692786922284739577049291209777059734327847139619133331034906149877023281138518137361559869827444272671588135343129754094362252512261572168303357429296933410358576007526224242187744658068578868120876977246537216320691698755656599530492079949141109820262446969655492141986832509176525865403346309063812679496952583618266937892125955437956475248891552147251745211317928153171870034342099741357889460718026475856342611414256200698379755313414642941936153070734610990476229519398794530817080257007803615231359012480136652181196926712174368875146420307174788212185869510133424614346102215128089805648434355393051802266551186086625492634526506847822266015924572976118225003000672245606423502823372054408716798794447888379765898983744765908874896895302708013470301397585319392441711401604984528946670834166994698787271622742432607321089374589529980432332019413018137671504861196534068796894958469710424614786038004996090557167586814234174535731980070485628568075726559598080491692144457926057665568661530128273667685197974704773417142100609132650268110879227345462611459412214006973167080411995342892891270385450912673408712777886642484898731686662157518526615375583934234609371362208001510786352317763775937588454765764620973201405270904031830261966900810016537833632688083808614476294518686865532305774035020947626665155143062686780307916903723491258900725647697183229096494960918295236544028973864920301472749251095309752337541469108153038877526421701795021868493399211293524600976513616754181057398386321502215546114193256410544893395766859017077993431126286035766860666090178258803224133693108129967518971403100326446697193317451620397391350696089996798232347722334486889970333839401808732257006752414657639677845687032026859316813820982748764473450130160610556107289155345306790563429457187435225343561681876362334456051977236130522191240801906012773830239568039787399023161341240170892756696623675510952718335423288245321374686014803232040348641508743919737353327673263658181090624453513733494493860853977645020673509034213948433533099140690413972392353781306075388814251683922456390312912483212699271098448642704185211232529359903293893765271246296523149462363026993838577780938720039997640423360185245392176762312344064487704028061130780690292401885113417076788335058789611445295264101906154536214254090454447494462675371725705222238837117898480492513521988248775954022947431002202142591361287469404014815345550782682205617363551288238307668037252651055318259338678265543139857306062237434218767175701671889936898455174506719174010033991747899918424555533734662133919834069399948553102104251712595890889409872891711100341174125864584843517088232774224914419628100636024865936059505971907331488114512545997113567009178868781339566479037529001443611018667005353397295890156058573442725068866836744209106684814439454003497006629039063174133067250734808467985757028984677621141977064677534005638971206149673630968607440156777897780316845413101578617803631764707721464783165089845108296079989693094814191828570959636326634975030238947686421777794902933041567789737735478850658174417260543677320762660340818741167635161729780518234666526645551640460787063503711549152145731487400405423711788072745227217888602134346466404987377594122826618108194593427499767851498052180568288506933727115606973230283953841491121317744013966909470996020489424779616560978306264331355092400798429737613068849041735929633445085411520687670678227403827906435914080988908022848354914872574114335264256054447143329636565089400705220256551017795526742764993365822914318856047476447241711814349646227010214128908913321070389443108545897906619598164638987116014173677600191733431104923635455406308580649065219045861434768362361534454783728044794483703422283460771695495147107325782060980300517555404120679607675908263851556172608887747868331076854205901299501660337932081381309839227476812751902177269372408785406412157243774884652915240212944596030419716797288242117080650511394302749906748853660392838869990747372194873143708156330707159445012652559604596393273771393990773900711432488146892936801987894309696617900524139810017714989925257548015003227893535554696737750488864916382183239195278800151118550867414532789985026652456802629243362338630197030249364202787734477734292322020499325028706723526711350918360568119163043264854137663458920774902420031077499760608249102186677515219733757321387421106436724051849705121708481825865573479926761897727933304036320006719153163775604474311788733629512533648745701788287431449153907671194831882161546447530400004297120759790872943537840056322059762525540545787306884158244368918574460911434547624984294211390281858263442409927955742941854021155644637361877374044912480884978704310134257550201501451182443249293892332683161889090731459327144248717358545128631647253103176925054374389946764223892532036508462784100748221047590312124402331509728026619127601946156884433657503203627779603018018690388671446656101527961778070541585755530323826629745285509380295458894885618434823589283908688329963582764172314379160398443639120322559405138425560856278765057221011937469074057494731232444879113722749759611767364427687979707673571169243366488978192907879351249163815685805001635774770497271317858257970472301852554584510453049793220960373577593355810697719023630036941543080875736315469232021506242502178976814927275816613832973690458243356506430653341652532895304850334221541073713349420830932476682274225181119772894224490004132461073246283541168524684509362601390974427696632759881461156143112644904397915252456217216526599718259216239324177345405811447776245464223796318628274567509531133843249858063426768299423015718167686876958951100424024153007841168442691582221003058107987368903861785394225470497924470810779729109848887432560554772837234714791727270985506487535408895831680865778567186165293438689987969024588314093681397163336424435211891280803275790112308323385645281331888654456918577966299689916382701744119437736113751168408490187097796431756120950813989621270891981339233773503334131094269452302608529953161654675491200756459532702795989642500149933080367065829537530743254148387996868983553866063858724472904568317827461013404215737090752887807780312671516261478703497496126051486538283371225996871675107103191270921806265988369518190144776481690291016956203637775174226544720100800413917500245944393114452535986033709253370507904076793558572574664745694544795540735733505920519111243363567034130924683314128461465185404849576701228430203584587585154324657985370040708904271020820440142002541697292698360116840102862773936307741516036539404615427369338090074762384455069140380464366374676406578203557297654735614779426949555629356589140065070385689067478622555751587962284415015967603866773757443317638289177704693461984752172246595189367459313855029141927448925368600812344822730765868252594676754893755597244299308164562761830705544492313229878144405822336787665762288744268407676061818177212008574966263601749006288452590041363053620893844670558502370731250112495052696142490300418701870311290364886057628608505260097687863241546991083777638687809364681760089046094982423966028687452855529493225655276954306936853697849905180112371013130203108154923323925171307749136889650278011835018052213877691358526876236396695575128111168744278785855944242520473247542810861289755329249259972527882386893185416373014432626162417431322009933012179142983650141782704609877784386033125812374719862476158370296618058547193515048562748550888980805817546020840018657985126371680565335408060038664625812003451876726183375591206812530264925058915982463199500151618741220940795941400349627812356577566236977779250639028316096326719570123349533515020236407984820368933399427984697586146300087166826668866484013786665442412340870201911117483690063838032359863912851336726847248381613998664699078841985478419653438352441359083763352120340365756866034973486732920274931824770737401229431459488303801923746567976230847146890535648988855521389496512091821308996612553871811551972106014815764139364312264462545667832682371316956999378390163527002361309501100186864754068401214872308052267743559652408726218034921201594215204836869286130005954078307200096868997945019312455412639552144978352507662420109883346118530230929916496824298474474340227682012020535384215166111864744023288446257072689549975610106756290490100838112590137130931261338152040962818703648799812839993597231930271831701395045289725219187406662290822996626969477587243370199060089548650707581993440350425389368784766693400919366290797903006262892592223533789582411523690434179283832169127091343007012988828803506144513331408737831095677318616407842531359753515173574074757583801844532985435458450193564486287025368624893770079964649388121222265344464530155876940609913846454459602230731288882084092308412423237961192845674422037991646205494876682219155914691229488746938403104374070707856136716324457163685724248364043730194519803373996006901090483596261811070549091554992234646145698080213682676589196354189690175020741332018472020254606522555827454108510576346913080678482848625440156778542707099444558894859006979665096751288446858674759419490143676402625979353579022353180272879722481612097387604343919358868444914153939775191539061546505825616561234123415519186018280447809001451125633381309317611967239431051738836013405141242534211786573258158805755829471662833398510944998154327925247694726307014398001286985364233583782520612786783246896603391868005176916186335871697527153335471338161648246966185057024327729912793719014570235748322829197879187058743919375243164320285283790728213821949493890672806857303706079119048973626899097534449558822702849802410935241993559667915666141552481783543573717499082165109718106500630349954161720849022174525822996181730152789034702501641723758844037018751366509047312749619765858214087621255480790868830664156538357955275888965808813864916089319053797577676744591221082015637954841993045947795271964622813389495348925640512711591184701886319397975230047623651617520345473378288066767320571498805468423135260152656916158605813606014223087126382083303181815231930962383012755543907058846076598197910416840726072705585792814199918281394601228697726862397079311928638564225072302217630811957394939561990534564644294331771106167393445335007189515700635513133180051075988665804159148355337475618970132451313945621613908232040115345865897397040142116604796234969500996456040517493376706183710548310689928344831079645131721430698787361802860724065860714213239493948239221569657242655605854825060286898858905011975751393951892060926442954783636354985036176294044945086696507985693697176478989919147749523336492864240560070141272095538268145359678893712049033315545205079640508753215870508025228435053119773900485246863934830257316963238860900105729169078567833260757721827183694792233870745668764097760269801220202557232440414338155312379958482597558442901309735594550265569100547060014027755581228969493611560821932530106556750946805377365801729509241196645611367862254615795435267836823085993278772786185545128282257857140819365807682915213554869479185222780414988897733770709930580248742006361864920370087489002359930906545362313899058729228669099123502734634730580334834782190957280591553374873786305096497552737287932927701634454286125718158249666029552181101696734813039640459858228035978258548940708819402116137263914834904317299215268513350117988076675182086716131149404747300271977462748163815265061550099232209906786899524569957766698144327239059874006220507747607850413528174540286927077545784901142652355187191576068422235911602071922434544242414035364392658223957819064186773388526830942646768893570664901430703061883572477734066924644176116772249602562565435570288520767305327239004180578759726769553994331462117200614065680504018797799682540034051530394887395744045932413723601704673865339677104890653729888581449983791358575316321052777560657646500470589621315351642881628686919503805488685812734781352670066786732686326226299487495641480318597836994327818495210207495775887315980873081806261091629723665192825937967674841986507842340591471012950605356927804699534093196019020459673772445441946009812365554643360140785165790160440417864171447051715434775281365737906412844265862766509435326405432176189190023549971336437317230651401878814927986121204069687660083329260795556419686616860856202964230206272324681154135365378976257837733283652564995661005378809925419329218204505049890174423171854490769065852610861551573964128789877185119527568798262784162745614532325372961268475942670963214039809778045471354008124134345293190929269731722838525513338780555729386319387134239811578628487059286397474416825622324009510882688462181222743528413156301551729404289277641444378660566127687441454211139081008002854203253186215202693367204159499902333326141176075180728187502212489772918701949319227983906193449428627454908980619917349839802104792657687038430829040260633735425220046458021861900203210801433024792683661019504628396800015756845288791375062432261600099456510749618483821277335476295660085617932530011947428972054800467379995078697255460630498707218911832080682042267798154614249900734296072816378686963471143299736676902171865900771216430848664815113350492688295487459659716883679771317435068966109663854129948545871235020773851941506257451640716151010461010055247607635495052798015276448104161084436464822033730528380989760737346000016848063744844534225293499705921116585120914641490261449848623750333542617616414991414142238130308290156195227486325324844345277602734916776420205728098343508836564607354766641572182576093515094824118342753162208863955870599390683165206808647382303136500392381881800185189827265643593635244943479402952085972467633435445053474087274576990891161654093938782918630163755653509310355013724627250949068320028986540468894154403991540576084795724784054467278450290105985862726587137489958625830097690099376451205771874393339628609493747225385306587565100465214408762830516131695423149535878874972726840690489205910641308257695213863051284494223718317330617463960370059204619948344805303977121505690019392335576619624722901572612745309226381811995185443475453695398303816713216282668680505752336016543666023796411059068037291557603260579602661303124774227758273956323818360754404959162985135496108921261731112042291648578935365033596707340107209512847252395080985430911342068297152755057880838988647917294928993715803631588087830852760352257877431943741557329800306303495014160157849613090479303314443071789962386702806438385667687843016356012193448511175920273898019771120724957184560638096677102968570477292936172719094586931024156913889431411034475035881336504366474440794837373562998510053797002107625720248907362186795902811373301140225664890925800546519461699055121193261923905248620854045022952091451203077979764409803597725006375308152552408826580459134480001020245807870509211811923891721518605219375918650995292721188907680328425944403912348198918013764552431048551584514722578305209057334651012579150622344000850235863821076431606117378485964449340054426742773728175105051211311162851478270291355817994064243592958553959339793707825365592212061541487567027620760127623355510933701617485356774434015679816231986272138295405752409532857500776624306722229096406694252466305670442258300079581618269174226527782918159558450874682937792771348929163160126058065107521992794504931950424001725809235229034614128693363182631703444216224233761514909993411369554150768045108999595002388111907788791932941725232029185900772271569045241293119000892388113269340364796692360468794015452505335340447721488594659092701016913852508145236213185313410917881164837491650500781562657200990619462152566628795818995388021794985404112047147081425346757808916226384392440946075267134103747383784956206989214552915692575911828413118441752010112221836019913405392695082403638152130193575822740388346592468936003537519116202741434267969237196062206463294814853391242103771482795939543301022148646481844669385798328325396841397823473370606635114396506297231456828385323564164337870217271328799623271320546448527234605355704429052229373834367577852874316718638389275737625760965484474929961261247353484387894305132065456507754896193920031368661561904649773266898990556030749466917043752524804122534253966135831639271841145810183723875669563895482254352549351662221959112253744810569320711795855878508022902436530136836823276653839120989423016900070869913278003784903883251603235520530501917526412380512077379188665233160483099898100254332304484077796197601132831634777572830443776314943014409907551460554584971304463821307708572780205061354222448161239553784877361514829307369611569786393913969569637287667707285448590720473179120010046559220403004859260977603009299176489107935881887931701656410898746460499327136128693581780728872931073579319546223197611417815879284473593878506659311818242564569924157850649939832588767009330331863032956003137060836982352887209931286882773083816203154709461844707019028304044100366211294206759098177118292713233392288890561699195239259782679656632273086266254384444177745252334550139713335975839604454127364817269268868575167317292701643177082046574828419939774197022660580550309310214725003677455474779257055418156552198835483238040555144313269988877066661213349391094859618179272767736299032009334088109457204778456891227182930605286773919333960904154245114358012157705827793999498558919852881703264714024498889700997237205403035990893310595383631268599022633959717783905850670908464961540024206332823139037961578660238763589092547301694304633981677073686182165319622656309314616194402424491395904755112331233291138347784254937568158000603406356217059298812143306470914018604742682489638811106797104154977502777101459007893314568848793972690566576747579014025651513045550127840523011284049977225317779978408498633224195926044701407909284592721983031435645670771086977289642686522612660755147431119947411637973775075300616995641342032234540036197532925785897706007259057684556072857995764749368447681394801445529465939911356207514367322328086711171738290347915355102250843949355125703075039812640668883975571827392117226360760589066423066340364623579878205038908695355815861127798532802980473930558825023429528551257114852161647861387905848847298170669812085114838079730427807992528473850292930043842891543386216414453137614565111679923765228946564778503249162441129900965894879420939201330062714741374989011499444170570689159465199775713041525439420599343877000969879425081827832502206771194396491070780857259260603355930695978959002112493056815255312836208837422086891379011426085463119921609721847222626950062308442931050701461517347592890472809586769854805480588474213631382073032022850177405820682680255372168906070524059124253954620767837265727401937831546501105111207759737565801115605094689127639965970039817880747816272997011022400998246756370950411039894094029581641296741360256674858431628465255951982688633795840978568662174994067195821933756100936068383204879414789108631539791289542245030599401117983216914428395061145011602350659064354642150464284677186306632106578643418216815166559963910478102549949364198232701038085171762172031833971087317173259023788481428504575193707254093957731640035631705241636691263117460122575981125231492208272537124654259689331468210402614896839899782484087763167552576479066549670105060770365408152710220096319623972754435634666978867871802543843400598339743505592525226882024004448656141429274495547923337984264441031542884327147595782095398966941920638945289943059294858467016592304164773136018001075373121302967118767872886471998915726881229013437713240188266514174851999337832001327045610458312526376410332414006038796290982841708760596626701666771446068060537813021453700082754266391047182340607630191358159536090055889923310603599627328892168600362321046823725528894271558463501664630791406791016693489938496244644178074837141871217949054303567848001812373968791768264729608732407601838854109815483064519163352128309772766512457526116506746606804842021723522015503302726616159853888880883314948367458078868465101714056722217004755743775368525784295881797770348425110625340577990896352593713730606515736340405220326061792378987469602775410629014820813677189430925487155116792788363821107393823784764504525474777005084459737788874248261166852771576987942063372338294482194983903149061595965514435924983361418601487910258830343801221053063886360446080719302778000767343145759289273661194484231725867846391788626532917406248281612528691918352850184140387934134409626445625121792393725059415305852297739529880481536990120264612293415826819998505550840467851601602220106072846679778841417254555890058893419705159166051463489190978930539616130393963728056140696342491381076397075054536781523513510211476184689133907097326702128952054239901594286236560094613335858593814675903667984586959529065196888629171613180455817797539682755837269515731016472125137044260126621441972114828166856984528328397521063526340893435780490113572287424343505768950000738028038692051025084111676462387921044146296036424375028587725844248877345914525047174618294418042824984114839999637099557658698966618425935484633975122564586620635513979569313984855209667485310291171068264956605301474839505434557750493208778217263042581540086726160984607994898387579467064746330067231049622683367602142195364126417922663513445959053695747229896404249306851058965037478644041622897569845224605661322686460282349364379378871633365578987573946686833894271923885387731510634867882865276986206650848270387725517619949337500638081916876053270096250939821818858222167879711147652514342228592610055444662130478756753834145166305950086396678159217304939644171574644485919390465779156615047596753075915085019837753572992722101105496522358347376839448944662883403829200845418610815513819777434371370625120786245558792433974136120184696579771433295428082347080339881367926732444014141826221300967014350895217714075979927199050086132738415746874410487444040631972740455760300642880264120025848672675629153962329272374848953478952363817913366449300291327898447116124601463415183321499127265647409986378349181335317073541524497622324018893061492815642228544335276995734683659065322257438731850067512697082606018096391477723525112685562700721294390881717123798660904282204923596331187464869730684601522137356083599397716043139118067169944038924882609829387943922494482250968382995218328592625865321933901808301631843285123416339872613067960891529479775457539747127977983323258366453796642679585507536139059200862870330633375599146264590669594433907790383925777118994791636844850936380904316484767026876804776685078870899449026245557717430961316149920233918376681099033880180060052187934281870146549047548862064230077530175280372958139625705296229795903726459145425766229720127204181650579718789980009742141552387619701509592428309102474994154894251044327405887621576261882677482391833725363055094299608040671374083242718500859885807537200744826012072991494000661224020785053103293926313424098785671424474173771198585176326150925432690425160418464646544022261491404170983345140372020052359320060926250863496280487197099244937847542575441404406968352666033768225417722024255921621744716621571860849959527596150506060511099548367481127542486535148889875712307576908141824015329608674358390624100837057213605028599805222453554623965027076525173108752268721552041577524107758289887457112433260708105053866601156623581538441633962835378675084356873188378666479862587122585279532255128519356032508596865135862997225910589918292845889370027636937869826434249720322712150123418521681517637273586566352789332797793769075610666596797892917019824267442215400969557216236961219258374653172332067037395271559113201438530509172890901894702764043792026677233401840493970119105889514139900688413996800736572563199458613815112609688296902333524240582003140150334049698613433994271813278056481698582952564777198654872833840545442056442709362239522679781826093847555874391539299492237087916998200900167712791021671851498553244862777380572747498587418409746519631355770782705728142682156083204862817058045196923879423890559518202997250670963107180569150718875476523804639950813338075703396877288837730496999907977875433404453249358708718828824199357279155222400821273723158984647861525953656904447237182545840246352511332554761769359856933626877579057265262648976806330644969684300035724118135694976332526080105673251628577183929591128092782533102180464867292504665806005452548928270629848078904501697215010469291550581475792102802920459230513239610401196030235081555402208802170515136217957782800376008464541533721687892833730149027087409354267390810371806193898194175750696745176302863870656634644533365134118869225109094184253692051020839758027805159251742158551361562202945124051706047064415119126832195236385397649896053882010505166085082790508642983048920964256163757813868541131951196070268102725466627975752350566400501888781218749247155230746006521068839287707709677357738428605973497019283225578038283331365201760963047829630227760743819172348308523611056732673296730416157866647176499591270520729715986493766084872465786929825299613849888188411084842576772600922372215491934956738984520740026234548575596494958409234335063750934957933399339657135562003236124837305317499569671996162885861260461406977889572946938374946720799593408768077099157143429426938389596713002361834760129428714056637926092588877602489641532419903001911158576356376213959254690375056103828950921590029616461281762586676314265917654146783685690046982403510452074984614052856110542233029166510652682689260221871934386928943597866555443832420542524538562389290762058046010770350935784551198650246911696355808647031340397229871812276578127794337923053581803774991047358310435632521037728783813509347850218975462541798318561245927597014048779791997353183607642070936180023925044292002376366662838022337838140839769749477793865763834484573844046690714790218138876886662006345571361366122685406711865286148263403211998890950623884048283841202995681745104355160385355056421495619872584309702734223395123981418785373365509253390604846590035195037947170585921712124567597914331360486516282879859447017293278042985548278213650761640185911745701974374914861114995550177901786275905735446159813176098438924469412052736452895912598577698946865918564977407317692532818525698661175648617210152533273714844516914779601079103734321943840173834009737715186685791403893738539104661416978239123165919119742835197044578185339434582708595918235117077285876972151117213545166845546890816737246068222702315251354448687393736461417265237675570899192218876346467709164857593111877594236411711117701743599735573640487655280706524854115548181284176662324031132780089070898063510837630497815298813863751970995685254491515573604103103942190109025570230679995454739318084058752126234328119500629319568266713210223117294976085407624566154535173802139882697990645669650951661247599367390423280447702788377176976142908855374570297871579572965821190254403923736751443027059759599855100367640641936991261344877924503477804042676288841765079827956026559383556011668950743567236391906492954544887228531003176527225756479891749876817150350688423993630481661508918806928103485791968828028610750047043460055289504608571457271911646183267254505672071504274949109181876509585797129410846979618914743875964795027142264568253303912041889998229375676987752972695618912192461707995332805775114074796766881940773640205136299474003267273349399024202990935022500937642118520787046150547329864015515503883888356010344419337505843665716605116470333203442761441889794440812229363589801670187502060594062146066388622496529090281061059542904030093495640169009555725507372237701310591741680323901445853374617137742891667249025463010420343035613275517490137433548712466932536747664558627190196990848411477826889034682223905146340488138947318529581178200224570540272690550092187941736395693584575854696302789182906520989818873150810288549504990694601426025989198116237429742972783274445685901795657531780241288879684806095751722054345829627502342341152418903633512298165553552349543626109984949377801280330012257035382277146521659585636849483116184129668115658312262428541122744193429855407706342673719622041413756572781323262956351652678929553828206333886387490535297271168759618039930572757880457184567143124578714795783886798055004088989308791671776184308441066225558747908172588132152317189006966817033928480997070285839881150983188501448328362707617793556148739042851164989940579524352619606696303012568636412363393965400606606131988400633884053471622857293367137711369525735809690040427144583849855856473442297668941544859938172184164494740053041890550388557498810602832700351975752720198014406987019917669216801392156448256217539842719074443887127218353289444680863008795189393628090906345837319581233049954492202553289322556488088409836746787035448914456131224951616665930098485178381509619124919944141634710977498773315460204357184975923006799015884007293557577222122243356246329315560093221560382538498140115996282945477831670384658329872969734517512775986339057771589594623993622484588482650648924805254840441300737080999963527243794457213273396305816481013346693551003753120666446438590888995145581254129241973380200614891084492240319940743894945401625896837521692759861502242312715708813843091450583503777371652958299518519908575948462374999571112511790386595087897758040635455172783508422624250718259867248276426052956947769286793101504390174862544730645282936814196125797256846585475303813827608897551652973576403906095593565397837781028737499019170655699004545689528190215047633332577342308595848107306344641799914426355988576837515200102455355039756064039866806917837827811304851223217282882828381763152875023313140541283634680376719495062417419077928850060427874669347322531618293927842628904746760311818694800588760961514813298644908481510010260133607545947597207513637424734202106484839997339197556299873067572958050958126924573141914470316200743223120042928630739514902946516847222501143512294305737765770654354351522158028238770814411486362697963423256254651240914379437915209611718670136786352439009020340157225600079638628115007305495929491671631113919706953555262403067423265924082087198676829371833451018082607654944297488134702354517326929624940142948879893134474030511312509867444085585922848224169626337790103194972716121260756906994902784751061696642436424313604939081743469443926926368085500079504594759791992609391303088779501430665550366117348413846335056682403056779470278816047254727781037090744550773982925575178079001580902218690160819576603644180504012449385022413710288987827212791519715390540308390088299142336052123471208444380813123045676307395224074884062949877341361100293494502603017141444950838184845057293097569963450847886970113108708073648780073077417561568439703514895849039714091624043714898428424237059952435035421621313075441652009089451664798454833239992082321051604362704810708291469696769362906466278578077641434260502749631008410573373578498907367766717119384760409030637440472003027907603008965575738223493674312912537247013548471445849581917253650295760140357484622936277633766901048768767540242833697779583992023530764632389091143440037227392664143561929437564459993369273510889139193743758483644864775245193872145193626881141429076685656878314676949689514076663805309646520008673521315253273356518831842363759073404248326466742230920833956024978243126925851043627868376952149800186783102719294599065540234655421650141187085041505752711107541214340418964656619202348547206934564652655510267033034999627732170935178775147208267455650389128499466858774146002403950705305470410180158456339166471141989969470182660009805785363789322898038316660428028134218215185899258795510520539001964273122683244985497044143918843913498822183479406853043065319471181294629404832699791894789217293655754253332248808495299209601237132208055319559690202218281849341884372870201681126517414398520472157000106425372109868692035608287579681953964818601535831639030674154356084639056563364426330349660637097791832837294231935619264786791637814172692773650806732670692785014527051692019927066690225246148597449944471013312008885644390221692088339625022464773883501023507079667626428317528132279309862464295979115696073170159902021592815999597752649429707951785888887409749459518825446786946240522959004048034226337323734200796260309036710994586740151862997802440958904811872417354243386024935063705909139130131732687085503287123566762999447829810503935854025308041808208667521371235896899229934578616053091882238635838147537900383031357652035238126860740546099978965258399807401410262354227982626708926820214535801937659114180780048620240697646178888500112086173058056542341661875669403042875737781532758404327615059883746086769723434313963790422165064140448055287261470063289945767332265720371875703125427663634541534508728012285171666609005630416106080450347937031649134951484174257191960778630571317541409196898291881618171149477902437371579474781469499700618728914296105868668792963607477896308455406392833929315885509332432987109750273022843890307974298662527024736847046835976199187389508308101212477335395941230596962021951458550362410347429243544042143829942701676716290143773051691110280225878576091258237983802087488458545282793543693337429340217720871047388990241655033841857006200632172661986415609444347518454757485082600782206368658413417020507418591442626201450987184364008569360834113558840881930825467852227998867030447413413936110875457786781991782529601051875291345248192142703650333195512097846723747615978675482235058308321419818573061643197547758351495528211334425364885311537632784094084042513944940457174403327059618929755291310054100126545218020808291025398010240671962813013093346282114880075660280769366252911268544720434789402487827225489132911320175246987525078043128260520191678299353368477795046714294591588515184875449558604788522997011321096414222438766429788360937438841674440599650832287091215021276398543260563585195405571982699786040012224439023966432583426418332841115913235628695532280989184165002551324134849686782617533437582458177882782214739254672931219976859303655705916081978469143744649914098788790147535471745306099180887441483321599528161335493140425741524696305155008967600981413644372092544641628579501565955092512734673618868481452280447989220291838881884311468823195378821033833268027003136625537652910171268290843230859094340631191112323740057229995458528322270437998698339628119037615290250951669111417733566493323778517144162912214107606746434915344789599881606438031793760061184532134646072957216580022945309917499058145097436451500268519734391143198116040366624126704666368863869301382509939136167813722464322913148949765345502039654300643557936640592975450229365206260925615312510444229793343881061306796002130252584864174483132782429866380974898408899714179341252776995269032518672193428201601080347574764813634346708646674833333812512201032372900387519336363590855695902323179815912756664885773210688571233215459305791204848677634969310028409273115268335349718143401100138946514638076736774403278456136886254384184090719333572188273241099356581732218087263686921092935858951188313735658168942321429753052342166163899479365968444582796589981458831381865971306530655853337157349578381223370464440706047713257809772289129182218963957235827903777915709979863075442734352255683596892022330947970624331527737939717340531668091727061359801923090505272222353135590464083515942748320818267581093749645231027384047671779684987716504106874291299881095121297044739464267164482911935203490374900310350656057310913647872875570312383364858965265844620085189817952595450226654644111405891601053056580282196164567980524642488116384610322165264397995552593080772091596970310549840656069754601357359761219047828040586260304781142621329527157526166856558129626420632963391966255253095316543030032871253033741867401507417550334313540473445580579433247122168957624363819055642400322719532378904575599326175578973836412666327890863922331194689214018059152367770959308361672509338066806488596712508222984961381035135933063711748876918108085224091853626135561764455092512811833216098427095215217447737792332118439473826775311857957087888577877125555631343687318311495488154717726552122628315810088574815909645573870049714039620315653085690561303294216941427059245219774946992530229490560448605367368225301392756146279529838449063516911851292417937804941615581469238404704145380248350903146932984623044835529354567950785742296765148937093022128760747001069097176809205387585003075256772284951323781201784322255725502152126313178902141881772896452521161028493265704805132711357537036294233210700898100753347064897236259187641571303290478974718493461915527728798222399669249213363009369650820132768052942213108868899665812612282565083869248858077594739189600653673923837240210738183413974291614398664893510378089999894294291669353612342497428317402969303002208786314942168066155860659028874218394022780158831784986555824542114181854928361183480555727223419483243835747580219378878280729021714130212162822472497645840838702035113333823785615391489567540543503769164762968665481244609908647136175039873285092232466021965193370015273143727385123333488103761883315455580913772320037298493584441934852614144317847193892356698520020645563119315838527871421596495903764585875133751043017838536878773623981006082456691936991680240510042746869194891656883163215106832664614104456247292896037277478835399952789670089193897796966251925607770853360924975710482665174891341184144509634251420853436128455755998278123911701242750514527467001224207904776644815644321148994579171466977927291947567712969452614099412906848498296470819955518458212574791020345007285738247113099098919354710008868018638786162867058711618895488584081009345719652274992889688298545846217442036501944548358330086616744155059000045581851228686697971745652132430529090025313611124528805064287874291776230821166830691309873483892640270292595428692830614774398019537906214224732656172790060540443169260788260375861086934351682376897131309887062296692368427988338432059109908837493313314677309307758590896320808870359638247646720526875854252101581704195733155607953066664965415270290737257333224483475867231811875653946608078529657382013658679097313677317224113951616033926987374442129182915160007973140133852577396545355985214422848784795700942743771648180426385554357124434339054567319145324876058027662700729102382690251057311678526037952974570389143658006685009010179554819262993513816922748144601542760055252042885905755368696056037892652628468556068887365069946396865059492771521691599071205881335577668770289903635940985116728968111893277476425595603579918744375205921357107374630919472910416860041589759688765879278959092160193029427691363668768951552033253293254661506796868066552311337400045491906776747358145562216331063451913648425770619971590585318337511663377209558377035889171010638566165518282387155062963529374757860489754459408921104177875741348990954544501182577949777966942911204832958294770469474148900633501149419186835957129921037063539677229091413301568771036981730221024595175073448456330667402778664676353853312483988664851941996250549579275984339760442274828838909312870139640501827413372214890269147484815718828153792176984332361334144692712433150293928973633261158748557039558081113712695684418651398993893281264014268649315820246972799511971572661685733712497587259844393100292582085589221246573079802700838869957507774373231311930511717160403311011811889685065229214608684304640316628093531094447628685387638812103962743357102727467938455126883700004054303144358555205246005763056795196138049593480574561130318568599200427836216504045216903940358007140521847242158415660184741891290776546302765960646901683019747932935112043159727874370776593586110383637383941017232157269471019961397676973783908210043060384060777033908400203344805476372085991656554441306904855704814893074637488765300855503969529746087212233538911406147844082217705831608505108146735891714572568364423182591178718414353448463428551062297398749701452191390189274322467941869441368976644320298265001843974399404689929885819797864204320669596560957042511153755559151403285413780209758295821363421918502821732285210711366025741083598579720892409610307580825367696804419401023352433534607346338566362278492104790292289515604792926910330809124979459919359762231707239377389261790728154709817073092111015689762343129317551092913154598460853981669958027643851846415617974918214111938997577770058285076775527661870855669702509981663141886377924793640150030087846948332181111721768199211268873077658369927426342712755448256358509792939728096829507072868774252422576813553891278243602294153199210418199439804693935694450651976147165933095250259879037399807172315515233642032164618769661068909495987305553377345166287654697131001804320454637291989894032441591424872590312762457116629162864946590473434514669756004588139650265260443737481357570218046318255497272628058606791284740788699205111622822137657967481909908868672361527405448960381833597328509490727600625836361648609067427540980186446376081799512483052244353963620501361627442993328302485866208856777674065675756625416796445706094852010024245017530922880751449902295235005789315426361262631313205074224745575389838717640227265933120366468907952927644796195936070196352452414040912509290883125742681421479639595696846650998012727498764728132779976561751483790220406604848652794809593442961787324309056466339292286494479903446170891732555354511540192467840481653077594160206530275259325341887760774569504310444858060274289823859864949434174184407456990328648162337248759396502506175830041708257889316744307464613326001525073342801981974570430136729129448411603574862180696684471649064794723282863910237335823606140776559193085056328372900181534797599039959833482711116583548013524501929266321168948810729598957674181045015369462932214870976080850431097135060869130413238508850344109816404876890622368412835605018817714277928382308483715068683290056784324985707011903387420946082946928081936421127967504683838726128783395147596619571280547114654651426489697256808166955625122487821436205392008301470348265197089313951670554361614848408051477148179791412729227597549245664003154782432217545339697871874733735780826629592982095219708182233593662208454450332238204600198427891997677266910470646717485602955808550296425685547086623850779944613992194161638559718114468688278164411005640298002978193578528228206544945756080049820224498693585569998908232538352831056507601487338294584884880959412564038048272111861527307834658110363200884894222126048171493848038378331022160874336975229398658024871292887743105036771071781569566974573620645303210851809990716203669876859465481069446416526998933199084310052699157354800101620913335651564421776793910364191300310290464627508149685553324101240670965624363486501782392210594167979276268251537750729098366196060401226004526731101929782243525868724430181039032434424372668486817966960288585575154384549864476021981657598881025377790628073382864587751569502536850037092567147735187278269041140570188205630512331140595101398844721517928276236715236981874475347380649379543306053352672972494933249149091992358230126855284103325212071477213693439027743864565793041746237711465720672642285905674663538967035511871247834462841604329086113736305489342259376356190194474243107591003387896690873997146210115570075689796107803649366984044584322835784201146430239230345145722409862231376419189580710720459035443589770020302584127785202703753962999842379635376843073320782142262486264174065304237215680500467125830768358716638715975896920243591111909525935611966176818178420084297733902350662633147363153929970628879772257938216350894774044320754861191163528772096186668826586276102044882931089953197406406746666633316570245751047630242758711558048370154294078199331977956207849087818641084019908372178773868647363023580114629872391803753645864365671887751726881666542434901457600445128970521338546869636146837703043751417762494231884503018127677312041667417135690997800872277472313211571136062149567231922737666713433057829113284557154214698350487425690179170298122270616597629266434102365909271752317929908235434788746666858070764012447628182954200987626762003982529693418247234607482632966966716394083317221455749941911970391007719005357289677203939095924485076840709834548255447836135453851659035212102820710301785913869961428795796189104433414981991417949680556597550158130919762786067392336005877729699136395732536580883688866320788117302761981457044719198889101674783761245255366243803374733297733267444524783069347846559169240294542956134347729668528239001873571671984627411675156797536633072245405903061178546385206182263506746764720216871716640636707966035166828862678620028236380160894108075525414331430928897234656790851595729128900870517466874619935152399010218960276372213923087179105987165966569905700738543315726004669108994322344188657663734687499105071075157800074940244485830863815979679103142044250128498434396267023389594827989103632695605166975570940160738956601934358720245366353498967162661568412197609788627902949653382395435374810956894061360816110525467025010546921758543827240318427214517078750582586069120933805649849380532412063293918611324214647124573639499225965608900942825191659382847952577427575190620881912338901040756028630456212466364943248559094375875869820040092643348899220143116317927832499105870335094994044876120563075355356584087177146488493739714538075875922327223764405760658661634280232957576112304104204352224441482345332933095031614516704106076406465180917666169130083554530959811352450320666874478613089355725301725764193238556947523903047227873261651413243961274580971817242193302214094718808075527679820150044059796205496895758851771905451021377900360243514910560725155322054268525943458393205382760563607333856431872492226882036012007061272344786631928019517220355317626503856485777316179640346421045747664231370636038014443898501932491051676228515920810327466135423111963830553054166769799552914674096945451794710612450484006078999860772326241768619731776771651740772379932669009120900028103742300463124881147944579915281179861799526304365637911577981190005546486877937764586579309750933117539710826398386075600897320367714127427707464011432190591016291190661139672243484356455139268298618360808876770068146218367235489709866313306223216677781014300523366754576546206929061407510814626657036015554934229157930494314693954019907509717899837578667262608442906636363374653380405207448182250830713015101182496282332377042903589324297221447793413638461963049822253675502184107263908768572493423053584537990040312813230026375543823993855849978214798623054734000371338333006995257201117153661369159384928679092026455967825103082802424325035368208082975806543235490000120210617737902031914554257054290714870963800643713624471098381878693654756982698368119673256049647225155864412746090490434225915458694883009507188286722477684541350272154307535177518600927684898450474916340975819202206099344820404068720253182840994029457655790419217919730704426593998476280341238576373460879917542933402873458740599423217882286564749599074675889172345749516858823735829056448704131950141359654010512104576940184265902033845774385826421978122566404064641807764373914157319060507818030797061808074935100225579728164609770594057305434958566366389096178968552519404813927531410227371403275785167998813969990402363224791343754551117190095052480007345878397531568481529211987821077541089800738581595333783924010896659761683157945366222615372872174661486638569495894591704013738124222308024839222388267934650759965728344682264672453899597237218475496103289957794635289030946431836828029678889016997188001276238705604930078896427097476617514613521998629430768286741289366204567664826944849965781788300863279321228057606745929454676491705568382323709436421925989726986953419952751080798317767935580363804610813496668405774138064874610180988490581662113932619397765739108278439211452095548466621342927634900894989971780166577352332800004171486082164787337597739926005035915412000843830543900784519666452276635645588033371941711865828057999809773784542031035192233602078719306489491803359086405214199953445639120359382554132943656358852432082766621015742988951501114659967019800569690020310414932233265464382335109467053892485401071336742488860158570716900649249899368432810485889251281241085064980302335569493150588176684540668345658053246319135001690346057269058930676388077343341086152309547073072503005426969567818614104982264307578854336012778772295238215253919610534868457541013676648885096708221027370146790696899727706685285363372654236515374211044804675618117928788938144189109802351390901362005396121582825824857745659941746563596089687924163919250866343744328647940091183078762687627198279241978805132631288873851369997312097310521899796551415985821304352177389318983204404068236315653789752527260696702279979144825526243243633451169061502949355560029413397264338179832969316867570870796731556210584246775235836984792559020494402390450801376846903990457699684791237535956258556326290935314258253754477060430540249284320349359652054988381179398673014710557382871599343667364479862192357224395486047424771781214154101858270926482151948856019368398404264447986645699379981570212352146282243870012952279334134573749695346074154243155318412635353364895539714454938447191648778837134791148613429435823163812423813303998266972559628467043624393678257089910613288251077686459844243378145944391422931001861350551347845010759036953642772214113907566590426858603624520926578779228902813244219253071684674641957582397859118212932787935841354533582490943347764458164687266941102160812929731192242607652857133653026962129176143229263796818433241510896657100722858242439923053643262671598672737787057609204672035762087615915455884006790128735676038831578350994509826726670405676341564065756355981733108120626728913806019860875668744764897624532953198909673331548726648364684963047513276447921464992596535994283584401762370826372012629354276168958221324261924414585669477118978897294286840357699398117987685709992747530739889175880764790563706260075072008002929787203585925948770008212513111710326668637718312459484650777391819684147710866543160375526098851401116620159729585616661616030474631637590902086951892145134562620229868013431338790962936559998095864213209011754149265224049598127209353101576119693983795510659296670006965171470507227521436213705332249591683511449558811022959310834207252384330738652280409669454505135771017832652447961167278503981042147590662482574614034896812331125570359111996649283082890395583969526662315355755931242807318937889331724528862511661254820573663317585946531832035283759877451743555908958586597093734558438193416676052471099351033559759386226759051069294294510969744712996303760176435195218561087107684603622477892355863291464290604697131420847503817997096937204772004586041687139761001124506492790405560554068783522257906863370165798660681474300313752530950193576603150658304785020846709581417231404868307898543383398571828611053169566736395445461640422984780695963506566241941434729501651328809756292506695916282733687040157279297267267141225862392037140444000748639356111549796370720913142145921196707742922603101639432838446829354242834657922030048241482900595765778163655784691711896188713814971560639458440038374751638163105169528676444367293984129159101508645008125553199240769496349508928508095804296726076954938578497071861725878349404887605870192626733685423358806113145103619115945217239915103229936596966264332053359692529111384151963843394927981537850969789603460247919602968313508365133490205401510313886123725575919172919189026070920645918469137926386694323041027561552547428281348469986995251250168764157487650083402864230101539524023326805304809971034061939360855138414359360095748247542860114942487946463784216253155412291374557765401728215516765543255794093086421405522717982905898356570919726472325924787231582222694108225235097061412442822214986060262311912428630407651833697758883891670571360900416599892789062901965717670801690352992933739844278161643987862818662979474387021602568357513898403509319302183720881439187647119135706770966140151023013200371891575946805780521831007151904229589270978696414085907925773616810154913284207828533109143860443442685266043872562023724223928345334727857684187992538374355485304209744776160469906794985732151536028296245626629340792206339207016719088847927733143375533496231467656957926103460016624389172759977584960508718298879279688996498970561816780942917402027634572243179685837411522387059239273915356894466328864568927092272273040416798583144350404169207400168956277513520767449136379040285764820136990606187148448913128516115542385600850878074146622083959626479609080044941333617750475686061737715485937363408111445725704387129077789899332068062359308026949172312478864480920536511416095835364982364768644154538045517007733669728718207827751463800423127500989735784365628404955379813581485722379298221443960586107622148350642161740849489883518446500308431450173615099769897770570395860017964866426645694778101920610402928912500287716433568928588577055064631603315511766049800810865951384830601709444289843208976412868200525678108707536388676923394509791192349748055365108864937067505822089790829970206644679030415842881929047397350445224174327301825103413781195655692622539183855811624128580757995084094607246407832057431661189462228195137483612271860746422692747986170422716872374502019518636066331197487993775058959681182993424011486151083350725810434202466585055761812864052403070478430590180614273740269921453522347824207058231375408456574977155720712806934818640694777338784209857589635164230445864278091746774979823102799201310322088902214661565850143475160082799053582958387617348194260322459551953077708080339588668151436290750818246846756878765358801453200361305336215866263243905282494676251440325220871616451663240510713215256536806697476817728814576946051274915747666841007438957683999956853451001350210375203351019555835078254363534030756250057223605146511353721912054715606948713899129094248907586285313632892321373238135674413533367208518858146963680777868565208210880142286488779420170635072601770529002687437244143798186794578962700983809908009610576855154031055680027745564840880838895392038203252086782520815931664479304923995713357231007576801893224629041846655230648292921198107257302867228003939068405234323052359259851062242335800582696267352458998075617040418944268511996030853127512213597965953376924029677962187531591332008871608278613657317690827808598717959835959853520567627935209072990534554658817529289656995411568865373284640777191578885578362657545030640077810185268737854633471425694133518578264104019905727276050512952447196191064896973636784824218357264348525996811765312728357374203780585550136268468504935170381760322694517853754821403264979627923067789629032195428333349133626229277437540125322157135466604327491752430620276562086126610337536236634573066865736259407980319046919547904686034099808707403265280616595262242570359933002992520609617310806983375407482605357525164892530158995758215890973263819620753018359519102989048389827044618691100715789456598489624379346378153707721419194880793220911333730094854744253363699783961218375871738636729462930715459091300141747151974254394411209301514599968157590202080403986667912248139533798524624467696938218606471487298765930389449484534240269334423013802640344833768448133602817481786161167938891383460058022256423375402801553582366937878586020420416711999549769157348227094898936597774614282397559559476300896077680019574483149357865778262397283805766212083665332947463152677235242192975336870285238687609070047183785163298445599133838173456431064112576813782849551589866383140124895640831357081098469840588652064575538077074531619601807521129398492362984494682948017634272887086918631643472418692672812895341062808054219777273524187290449900523820188307433862968709920627718995353904571971957369507971931592687828540692146416989267428748684426213406508694858245214408609370159413172665957497715836572333183556967874103334176784780797928502192808247164977400894412027118343119902790686370084442568776470911645107245540698418300964452627985298349519444127242095418269450591228837700572210433094942833604807042561557633908818915428644976803098044494396828401595847046336352312797612618468930455809336446906699626430392788820219040133118944912566613132414575651058398102616155948750823851468112682527518182474810617237288446299486352296607425472990867974738292517949348651029099876509775244765952529678941662198236102917675102692740732634637020502777887208988426250232860997632446131883126837332709252847636895475324523115891270773487835652476263029017150745977179838035095489422243987642524882343904345410375030997946739073404671684788611554182573231839382302025415753030762324265738429473607433637042086436311051557463715227044930503281907747331464223646097726361661069945395155654639877906377145172640089859979389413444486391066436401781631102432059775663955407004528812432753207241803494250369855269926157649296115230313989003463144202070877713212271773536004645921553730419991916529102338752512189099365828204277744097661445888189544729057875249225955313619038208380059288372504343131141487187810917134689029923330594097873782388145546493328953428640587635423986287560901847791113367956180138799891499040393317975289060634153139729482497201629194314188713897184738527781300880804247642321730738183631823690442765953014103974881055758399186442298802922057324792427622857259791230173531064155050485875392824080163579991136867658303502902232687213451404615763536657174511282393308047852872478640380073923548466528315713020102204790724312917734467997457242316510410911131767115289006111934504120099635234879725608589121669386194394199488726062588197436024928533944349691768148118162551165949815990581523671730363267026468144323339930468750836631810689455301710653809507556794578790478233581972325179917808806177657150238647137105253356811439255580380076024408130904244015767619745181902885162385103491088788242477073936905932457297677930835687750117965250943585888547542533623814092077176008619990936498629962765840967403834423719902189807123431667735271275115703154545018704096659651526459665720416427034082429426312082465627042270342396302763210549534520241719230071016721810973196885359848617756271938612882743790055605528916708998264818053987511828661657897638576724207375233332985021021307115919064845247742903520864499014296315482868171261505646168796521368161365886211113577703169003626247661192830406187985079653199800164362705211433927976681845494563192810335181104076025998704043275027066458850516517115433065446733282001531931660737102387098857883950817023943984393544350935002804040452167903674603862400571837698574048377299383750861138501723437207302266842412777603917098672273360272436544091048571377718856359130372562538927999500126935210125309735352539328296037513560070182364945031440258764378395874879668250954606661106284812050419401749862653724492717329502915493265417457057718896253632717770837426327468594955310757449454874837849606712815151924531242296302597010562821247674978497883920650253415569338839125875736897421390860922634970847613101146228738325985523732768086070830235303130097621554603788820344093738418953520645244779078809748717042242221290604062396347224931647690922050587460124169370761288204096987228470878466078486629374184810813124636175295781293953467399021669407425420013089929829765009553547889415873441669797284489655098952622827370380107623887307635202327014066350101902387000662577000354461240781684456168967038522230042381774362890439901279071430583529902433537588865285866043809811489707233247012814757854229322342851841014826641332612860092701678266573103336219429857057381860943416776343193205273388226964706404471621029770549601563377844931210944700506213403079035710626804595347096455135704063215957913523878354014484559234572746045194707212025762763168907968680573612660829205976482870762322372972133732708361821833333042995106616508399549438803546827297628374587517789319350782034298250809797724729823352159577874825054520059686760626108707386451661868839756996336967972333284813911302787328619980778215458780422847086450572099342665510361961136402907113502565120730694621637019298233796605644686583159914007732553631375295500560358705860382669991999876823575430440953969137815009667367171654820799869956993128760594843462626177129415978131763796616930708726918211802886966838948185992248661673839857993012451663087151705317434055190105380440188667012111410159717892558528971464301919643421148242533253255525571203960354341902469664280967203119779792798091854593316525720533703488917969416240576489285986765140342026578793295551673122928541878356298809382937950604070613642241540586429851604558210168719313183764875745525090239849452622434673995359551696405381825957683746592473885049536549726358295896135012747724199146237483351105533238297606404118518496558541515756633099087966779493993784998387085442701855136247790220014562322244449253627258154742267034831203542633882644652512905282587132331347883175552219413949051382077715680205529946180410117785855898701777273435158164960028246758156277659915608145049844864834899219882193865274886119030904076548425848574682255948693161552849010066638186637694889578456889989566248328935123828353908959555566720296866592514384799313598573256817949156806997713077557124706680519815082099692027621110134608674580130619160055651700130429856511847562276614325987737106415971985348819504111622355330762385807064259139567412357984013016059053668044402196194052263723137606057711668641720696076616352793788043958691512907255373503379475669606664968477004404498268613678314241580564027063763010666568513763049841019910625643067020846292449883020193824756702379352860820212296629283800775662984782630142706364023732569100510781605686601713110765144747587981540179354368353691903224368146881406565151377587943109926702938686537817572866972917188534443448203285764595666317272338604418275607608911084652275912017854716171695173688968194228975255660546188007447844511506007676876114714311649258201060954219541592060779744983893138732010951657937631000260783457211828581913168074109381817438497508214241050580798636981305541843038242183290327400451276319215695330830059080628623071341819313033284166089983369623159893310204081452453491885823418451860363512765242931320135064030121785182879116325827551834710101490300083309077585302764693656901396458952151720523897128780641924510964866026452256078247811748824090581495529957952628244214875684584327598110509609716910381314596417785006886768390792609953627502768176971984590291959692726030876878460719996296272707544215033658259809889099106280201400764064425670715069690923861315722893956476162442915146848086698968475986415853748709759962808345654059915245659253076992982550398969307641166954852563947415282779694445559150345670912757450701386253749052063923660735857614716235365530799142997234843096901061662898319991326849939019775106389617584768517035017163873178132530064495914194410487903552303522661830843198170684535724989080827870076482977215826577574714820498729236789035367675578234949387279505713495428004687946948930023683707369568081475629743358588508080739896966740087207523932563203163586221191993308403421737132133053471381282460350935941514184492893803388206802292548980009567935321096077056557240357216805250008127231336246398088238423026221138720601399275233275329046904882799381569191320543097714736760617836685475902255197119846915646177993464404521545052330911463761924319771638590437626384599560942228214422851139968585921239938263452839845613584875001639218814434081084252568372540672125731359900394936710396591382686885568411581017648063640048962764121122306808023972988826848506513393832923790847451042515426753462717055523942380564448902496889514836373762229158337727269661492971343812505917694466948522727485914083590231636813277235484597631707996040649370530626035136899748360130021666879671014255321959496074124380602825291165640125744367661561987221095749736081482842415827932851499223274867017017259752334115245107346333656847298158854239061486396533134361288318181857201773315829207825013855651570235565163524645570569296063360499070991300449421737431085309235728630235259633799888158833969286442933897637448728666837463030251160789651457232549628782301815859994368895037051687443710806724790357155501150223775677859775871041931074747210730017945862725553798794601295157195252907932294363108624294883144046773763440675275350065278154133295248121452536111879804007983650930242494699806792531890446305308867369287447092585487791671927341429229283643977877257627696567766291423170664503785370880047776544496937309383833005460613448301776272163292562092732631637584897968253841148587537261869394226928315772161741790895513003813843337542698297235312747028080837506719028000713165480250986021184482004060230219733792686819112270945600628129784698834111614230284923378588614030465773877947670138978704621449416966005716802704339629635226878899188640470286215406129750518728966516387467072122553598072328275213817472763109201421792592944196554336800685944701045791411845745037510887390535759853330738127661449742419944596403894737810251311465316070710038807143027586580497019487139216953736592964662799934471017987366273033256123583665626583969960436178320312961373471111904678284985657383819056012592110285396163191213627358259336047103682270159715247509183536717292647482877402505027101806962128873836246252480075056385165497959013606258807692860024713984758390228141076205269202494360651224057591264728196945450150320791703505173854743975980716777816204313842560611857228817927047917934797771898041541305470291236634659079239062793963876633413161343468890336386652078188539193754565817444829117733645862049990268698160511098014125501682058289575120400553843887139294630588512441510600149006096073315749954965703617491281386946926705866226859299920125585220670369310170291528631962401340323286585665943314806446200512978274086784325532178346610828251205705439003675238090020573103782918899961585265211024685641533020716827019030768679613629378843575024777414991056085256307944019085644488957745330939034014353275115622943597239358858946190706336518401025183972036806860354323771836206489907023420450967055033941847490653478183208000494946119331047800554253237979412265764515032513674685932167715573010016621223479441764269370784646355656951178604845183209507904960611204371837665406735291919089557604696940214502007962597058228302122162263390103993163040589822317994872955317907414848109886453689214812730445764938214416344974587560133357574976832269307969897563521382937416359404052230694908469030239918171108834957864988232346351455180892398846833848864667679822664727626870740136228713361371665747474500528609775769936976843648049598836127695798703587543743651200041894859010659409232001211222676230906446616188579416285464849108333088678519666285323430969157912049775667272571211574328021539805659475169239741036088851790680604415811570521249467667526726002226844147938748449389943071602616557064759701314152263463315523363263236664344664193645745645269824524898097172983531266887947865237508213461002191379853996399327005490713178355909472120754307132316763273345206201283842703327777142094194547138042939937038156444773033446672504352936604352527118351952467470264496358120510911045324371877464075082291188021904481374864062238838520160230289079551119711924061240407413780551105560307555108377468861897392635657945892725968869098848553110567563638355188257103365316504465936335642157729380198329074146424204072686171295634835338278733000403396659636377234711839848202527879334228910247735934523561962705948524385372608662947508883843747109458727437130876154799454605552344338913101906146758340759666444846666321295326826757889321583538278736747112588516962096546100235490780997603385593543199057335535566322413669094772154233471946482205121804359883773403986301974768075148290885709549550971159891331055135907932161907254770619479739800884253270731037087214555142965503471200828602578111584810113471298336582574504201086865362868872514777999698678293198755664569581116130393235504398093032427509815673709058661504726872376851865772885755883267315338276994497791616477451060666011933580113045843133972681050190797760273743349378021396257795374857507146645562556410252711287364177525030615467508794545555514963048858447473680324994476285760819299259783664691847144506275801957282738263403955545135761557583682481349667632247208989920311961070327263289258036446198598855947568093694454073588447153322347650816126891749087064570190906192224158488698051331074832593965070010601266669030496980533402599694826228620465483853252713283840127944344795082408268314675606800370460524191383034320312790648602394018626340064229122854690242783577145074755214731097070798437219611203584791333895106374412634669884660076396495704524723041974363858739759769791538739493924348533435026102020225700873505011035581815919236326203104753511832491668742210844223087208254135644930921351062099210675287422963032531310707569435427486287631281906205274132785777954233554376351507063881165497996149525797876823473708087190734635525517869712777110734663838056969193188026234726899070503705630830369643561037875929403164288396468645242990877288759447026987467140089499306598743491490305358187552495712962852731713580306245609080082216065621948048485303126992595677068207297121743620756677749978177159129644807607644293522727231875129282527991521030709776454966187341516943686517375386389246963396276078220695460722337309627877906961884963554175341500534678390845324027965730944662337554195684797163892921553036742849921804536919262990032110549374570117002423611324868198828663800343136830766193125847444107446760447852845788684665040769243488349147624813912090459029569263015351264577730120590526742621623568628821435134272366570631881095822850880898499709276674299908963723600529879922896646863324676897638436446423002273838565000464209947686276765042784455197503872706500773593884182173866239287907712223051367407546617845958491928197618580384774044980058532008716354818056049618917298006212298831112054034611848647338067607309899786404858609829705321188693687496919416027658468589909463910912128936480446037754879594310630069251356588127160938454967412999771448482661795591787085826758581319036939907000891396769512646660600197432204906016415712483184600036360947997330556084712140920333475477944554740681667014493531334547858906314491517264441720869599111599244260551317852325236326816571253896953278522736966757174843216342888152859429023481350283788754804392393284646484211489473471414125305805949014822918419564139370577689987670007009661249346323704336715102486270003406212561072868847770877256796559498891888800360029941718187995661036819856414255963218891492932243218499574123541495944600249847356933950293411759892946412491224169103486387252173899882941404163359145782989957597716008560552059343032429962870846989798818050513479986265009236395355136477651269815446091029988686260773912416976513427007814662007945984395500165612274017747676158609273001374270083399183319938617525730867290621423066124179991968997889956528388653343403241182499870224692041603187459832643062684706707163392621471033168171617004170045940374894770168395587867235332793206085876449169730631492999935233200793687297930543684583952577365933917144959422012858994355984075890432078710045859788569335595412473956984639749319191238159837051696118395080343957780815412667870000550595176087419501589391282886723743315445551485154797186588029104895721838866493349989790560809300830364509448579579717514542781493023401312483448651716574793421812487362373692655435871792216615314769148089956173827469253178201017317474811638660629224848366842349757846098198304535306208597159951928617154117255063358712581127050681466003026819526904409504079080826482724057691462917761109808435065705132759802022085764221814676469858480334532112179879534880382603835264823330706965188533687477351243686210049581770490558817641938811222185592562298639333808753188234001188293836253244230152399597884036931067265611080033910973270000327349250511793659162750350460468992311080807767045499498646439840836022533965803288377125327376230365561770670028129948140189935368472627925087191669683475225101478839335675956630272793310045830273650531708317419529183885286164658057634656981098675908672541422484215007928886445941164833568742649964236844462689934989862915600239221096949417468807796378308053915315299425871335255390266565507827539497161096084217341017813197930942113849457426263587166906553469854010693295406876835819696133808397040463830401668495984562680550570053273957771813665413838837212876075596120577551470291407678627663601337427949910283803323450215757152831844805117232454267415628874878451110134313816021771389743202348930836407276187264011788177141738244546750253375448800868496492695308638529825802249807478207394108441110894901629158714047995653545383180064005685232548870936915767767932880841468956439600950684824555018659068300554804246522865521963432209078166411844751660435393198114206180146624475786408531300892322090462444341670528376048372538590420703307003295195409977267909015385430441041905921105620610098175243852658328252616451131056517088188953447655370739749781332627184859906235137612462242838297528722135565118916743579520506828424068053740508635578285485790278312687595421367061376063151334027532360942849533926641265930024541464495580823520903244579170695225408213596837511358044811470325865001787386027205552611577850756764455690537537170053855373111852196978923302902120753247824942457275501422977515041053808752192685920756628523486416686003527044414995696071843353669650514373400552532966837964975831591699788273010892691703567040172011823656072991434633378418585115891803175042084502988588544169114881075102099880623041859446816721374368155851807223225555763579420031649523401232798807916790165630054800535059967889690291330820016930964640345611469471861617330809711041113786757155504661720652169264263111263619632715756104622654693347917534410190059698238313504944754426953345950695065036481314004478654590366542178679229344828258883832026481503907396759817492782357910013771614847423918083943491300086304590523793796015646589759534080475704906145310692313503455493212717894319702290055475534260157990708539337710554698206332127641902488501234679386461813673499782320629617482062525875800742948777749225743487188587578690655466477003196482370143365497071080052594183049492861152889358679485031873801040999151447484690425749799314407115806379002726611975032076544469029304232004593882363204376477030008948838941752489248139086885318897859398993897253701620499059403999418298266459614388263878786424256311814197796172749456559587325453178393788073330522717247430977233717060972566463037178094644862763175693855042610204516343687569616356073455487785757792992992752341023169655752792692669600723905209017981286630408983939943525106492445478989062085458510886444049851224627960814608098204000435094547025557520264762357444848838571843675328769942394476662804047589069604312618714823190264812287331651265649503441253402002632048289777918025802971439631013371176783467825969121776770536799583356096703914285178807624597619778781490321206600687120069119989864791231598335916472212564988356707924453441006281453352793780823271007823916182654976826153770570553731584674074575077712175996543643964521118175553764272750360547637692788756740904741055543762954136766291530970904167727213271156208762754282481025604797966527809478191639163978302305092831637891111744203069207317577583154804406253378421991655942888975788397794561602479470408355272749106431393004721850587333703202058960485068633208902776235860646557617601453735070899876316908368350752289301877394095037687075214151338952913312564862401543606232406261708859479891532108759754413276597194804778195717312134629587950279874556070897306605830949871404165636601714912509408794648975424156655349850729267611694806620474776852673744339512235761969548666570994052338053764960544819327919792741429225580648514418928344506088981071869859025979497343125553218427367585012113582373761310631329421769433854002701778701892020158968115134211977616284377120525088351387046757263658987237965936672025133326648308156497715631508982474210917945078275789255563361141345091445278437868279155077272071419035406584859623784180512334969972018054944398067739367708900863655502863906219479674397382366330831748497294064220842892920599151407986056139197177726353249065071598542825542448862557783123903580324127733641853790710818277272001379515694878196882908807236651396168475609546939304090735540586189365810869813755682576838287269074161351594048318093886864664849634582004747286513834885078425881855363913711689627477771978684583310102479942165010139957348159658808354296226850584305156105490492146497705089653904316326230090394760439018411919061755956345553340585311805639904009120611909444984769034523311155252962031907067319369016923798730256404784359608721508753091788745804920448049585228335354661645395758831982095478183401021904850187892496988045144901420028581871993106057344277137335015052115766682448418811180359746917896416101786522765947956342179800703496436801285845307321463034957960594288361457543615379497060163871141974773896453789935874944071593337669662874320982167947215494740363903915385703828872039754631330170889944322214561448346212370849462858236854058745068015896068778558196893039344348847139772850608891879892190677234631946923480743009183583190548110853737746318380943045812548113888770506858717933132361303959355544029657662161096517560197799671637951166613914295351632388979063824598755734444466896663039646344212055159015674326263772892241998518710718052996316944555407374670367791746485294147836910989285546299181213913187388411969870394337324733968731484904044927658319245860538562703106871137666171416092608602840844922788990529176324854754183014218678783162798197341385842357222913442257837097900777465339946556325784710760463600873924680362504023944600438182514084094333730851133322757168130015485316607398105244611022066486486560179162993816664134577356838993464864107544084491883178288290855817109030849530286157119800837002631803714837207443560493280356347013402705402544375274528169357633726372477643646002808259194130815073000788734851095396598490800860043072140698446602302277813488914466294256415946180349413354230657248052373178281766154939513688807678263986944590602788342321795133115009164738165218787832532509780738282501043998489545607877227436851812103063264368980013976681192115561663800013956949749868581925232068642868237863659995442697985503360895377495140217600954221015001976521686259856135404144605729779677005141803990297607041625928208622335011489167170484207361431703178580401186313181853483856421823034258761805265363430099846288271875794549191514274213355103651024513230148698161477995632350555825439057480392563585271858978113679292452240967519760812006680164715053381167968086525577503447721220090994314612217125092025110110135419132421465677072902012887115542675593905029644503696794821093557830960868621783685088749373141281736510636134673265685369746048009376297146722212374881581061818749795099623957605098086169028694337179088626671187748715137721720544010842709586290602194434877365279955419454928309712036056486374470959407560345278743064602554860621690949879253472244604762039915365261015526038293780480278525413945621662635248407681723772483827669915637007909630702565549124288661214542409997660691333698318841227210800308960134078756093344913005625210047886259750724094138630051065854193497773681040737154139131576015640166967933564740515497511204534421449601458152696697505580162634670651856019364177629160977933814316615335490518401829061482292726514447993835838801677882436080443613814460337908358515339856562692107020467952535967491299689090684311872916930369374868070696475325518094098031442154156266568214593527098117431348638154338445544581959881525222049276065653613795193457462421911753079167140374494539048042875018147096277409511996429529626656344050904458974440364173885419932210722336034123815185381259222216865414594654266490391100019602999962678554408803638860575151360381793909869079057048245727678885432665161376016004352366929840802716998717206155543432805881537205068670975985570289945335841234803711567934878790465981984474106936511108555709058834141112522548183787730099601810595685333177266106913711962753704547177824679731390958973059800763312766743715071848923091875160743270118887363180290824792920304607391131114574878185453812363933094952775308659542906521586968146222841102882029072413513224084316219520287326512658247203170987582970891690337688640818780536522828226904775077733745883378277926386134041711274323634236807349142392800286374067139469878636503289600647399108660662022137130342175934745610823000220726413641411388481730523892946197695011853335727033992096810845001418557024102272275242548970665190328046685228931748168605029783126013369025337659791400491342660653945182028578883636837060766585051914374061132192330484469775031084007521532762698971626616006047615317656622339006963791633393155757142425849233216159122089957922810412219138609740084373825898468366613630205391237872758707295474756263946715825086983409317300619507710354833416884775597312668881636216715689653054793147427332471924597809841567493148689210989929762254365993789319537010463046599588299517787244548180957678229086212818208897744271107764000751025888962569654111239468500040908779656422257200563187647703269267150201847254644396081781773975320570246032421975139692426953026571515789104740820496664816111013979736130842648791068296790019505551905381277879093390581059974866244691945182237398227733728908261322661415574451761948314823186652686598509255961505292297584756284281634615492311452784682685373446785394616232390509719948102816616206111035455659320160137331542974586627483213908662031809223904944062493458549365011397912796535087637043412177945159870831206097475245029921249409552435250767151327095565844483292791143614351740075110377102961107063991322674948498808180383016924386891996772696319071312560853479129629805259158095086437427812944979021968400111351154998056472077605651307962562478579774267778230047521022144466328353721615972332602175959532665348509782973244560938753723207313420886598989505074465988246911378686131816569233775500147057688078442522524756162636174021847749565336771182974175392564537219590328407154220345890316508510912684247062759143421394332328328956054349481939545413267495713210232806334756120935584980901389209585494839990337641776741595986920990555918610687831651928385773539436846860268077340979904233852304872582948073156292577431754518227426120784362485371411552200056270537076650546297697657411907534987541654582752762071043926721238161394169519212314090791137934129572714812931419823000915144019339003468723617758523506405247699122613312926731614802433675129728700931150977938274250767991531077190741702553277111486662859368346712620881365250388181884672245362918983821401588750169609788251661193735813732902588924662103721604751992951399892561962945993324998065091874487977201435715606465700218588971097554880146597267062897144804051539580162517765652164486139914316979377978031898380626918618842842715487592612320400287156556129686360133164116559501102702583375973453005395707069423218450177141239114791308268323450648143304220689902628201174296594198970132634647694827894899929229304865247048062902686129686497584909873521766452778026804650872615676467809607310395296474191254873034080728365852016358333308114740576518340642737612083410117413972398369010565363818303700819340914193506550254183530377321863688842995141674426151510012591854255524890508958200513621508114006140706066763624036557378074030908362492197906822968843728009231177848879519787480804459605656129780602351380169017503726135160015461004609861196662429011154089693402204282421046445665090570761425206889992457433704935902988745917748209564097854311619365182965850252607906674807460585266654829349658893423847910380041221384436089346096045116384301151858223621369637099378261687225415133668535955312342891502646957861121219194411770886715104549159516436357835938393410829620904956494864790577095865961065218692015157209278954408557648350936157515370857707690318081739776399203044926259013796365086391206200332545550775665364184863513691917033690465671864962302566549542291940890254197797547432549571344034117508891014325495957441796269945491887775213215416918474471501873422256971662537002943708765683900930424052607459164102549195174252455041079589129491256777223820646364266290751504426685134455100942299842424721459957943790021511347984282798628938137893071566216206092912883045984902679068042340104225936574757404392761412066038035858582357342194415203101310370020790977602969241899812500321503104243659935570273568747804330210374659593099147412953809390200435122867962333111784963316940461912514526542144010843207768675475215713957721989873527468321535628423071003152305146620331141962953387963169217606542474642903141571010351086971241161485152704575520103081468366519189135925129699689571681678131510171125334175286187281350950048774580887568560794044459670877194675435760108967275081955998944302297826551094892922039960464628120404159221330287983358400985191820219027281288943734669557101352423038290066426994911667137591563362278563936835732371263546197691775066762211502752020701911189754361630257846850333514265140790362331682943372464093180305985497369272597754692598894375087124499520894948565408964138596342554336034058214158819698278920358957624479518971113606793235764710703611252876696039926662538921707358525368432991231107242939140166805751524467288586964654981268411319042744193217508141489588802726046337859453922459229956650430573271380708305992308803972895412625289129684905871580205316641033857227811131306062623127462718275525375997479282798019694002442860451210647879471033794106959189233581973766161753398768701883124707164000130600595172618236872119601975630604179392102396107466194269396014809505170529276998473328888178181680808277529905216903383189759719337369209482695821999613269594689863620489069738078679226333598606590959702683130092231609383546131600029895552594418267727696571219406092210521916063992279867473765748196138495525181208630994076159312275965029449661050394989790866894452117002312915293786261515649098762516552441250285296740683141507255215432536589822970304760917358097687603468726106225397238902248931815508190009535093473410158838727424988462401296055807627447673967015763958670450736809856613228794875940378302739022286106334420917844012524688272682728252278796983759186081338507509366792093931558978228243982847929399461965803939795215492219404289803919231403286516651253799441929311271813993806894670241394786335878050595171185270561111179119154197650389451873930890517631382613801154204672528864931395838529869870885940676726771571043859163480950536615391213987487623344731782169255347381106358016005261829086504946869353835563066350773166289055698437888032491270584500792884304143750744974770486702481169832184430124974654824112259439024959546261847289647479396180528016454818637463454493746555143926341203568455103954749871944719905501622453748195601894280088099098787369329093557193467906996352896254322845869399698088844971888502138150137019801140586901189465073132058431253339599012338151960683032382697643364440320317692621495480184932433012467051617548424882087793644591530527132914936630770758120208531052055290539781785726496726148037358343348460743536023809571415970983476401927370656760417656984351733370722084997867702440832721870820955446148518623532818622273680555248522664377964036850443657912183034339712526799373805829916128699040567816133946809229849794587763964186898923721178164267069217713453537228257806778691153839382500735978454225000212165631762557834819236521607119923440315430259722763006333317962051633782183551625598276542909557367698313409538815226300524070085064270298283384363704379072373412721951823352257258059076061925021280535557697077151591565748521880091435936328490980816088626554723474199429857094831684394846109372795225382128366232607366569225967523575861349052977325076853765405930256860493860408252476676922458736542194825225638641483292945092834618836336957642157138194695177454460768417196926028416643705514165262317224422409789225157493377498571865698615417432414287524376594235642558707311343755592282326751034811173525377505563482861641372447104261144681406189354610521528892561569050716082096194045051571425650817938346895334902258970898575501798643058315380731139984913515135661774326607079842757713843777499071403784279180185482786457240039795061708255404845956726548075614902947019014219396221891343907145972532109914407308834091159033428912018977542151417739244883832181245236219917642046734925053157270619536655420236391087993968515986112784263963779850217458758401005213033928583176182278749047031718143860072076799028422692815364172540773650165076924267818458719903937483610098070839372576239733623535367403672496841645158710372524395720810612441818041810496282511341779955447665923058888127597790515384241571804901244781682911360418770170206478200754284021366899082855151460270122053500389558876426894490671447632847888182632503788822187868852565609989752203847709933684135250578576996136699145713072604852295986178347616058159960610489725379298697592413274574378271678961478400763973403257607266832638706101160771782204222978941990890101629700057984432968867275132260941534668789193719190099219708824274981769432818861766873092669598924423901902473310391850198644449172930616469319183479595683599813475579049169559144124095199275950379211383922507181558697668536010172863518035796652769606272364890408416455749310849264221013174973118302684128074487221476726404752881377180060346623861072878017962826736796340768471322475011910067796522738447798750283548098995384504712165949228532147636168266130355910623618276382334395637054869932788241061117341979784068332155196913397532520740824084934610874805971152479963982695537410194574154648399223358660813061101169160047543528692979928224908449087029275616536553697909148923175580462831973112116571046728494428825841743108071275708185935008272602560585770411997800404816162274382639275631778729023113340705717742600818283633621657611579073044073639057704717621725416942359126287177444787400490319643371639657981298143921492510138686371269747508363926714666143294530295355810972189416176202628786481635622057622239213922414157966257532338058001606248031063836126319307146637782365176643255402925885804557633761249868473351452782778197177907614611709818438634333574735644431741135189825282193021489789004462560737693707832402670988438014790195168736800049547132470973184949208317588380567700496180753210410517570176703849395138747008400522109057098997265665321051117526881905562771590877498135091026968813789309514604505497484477125225003601421643100627907571782397513340819338359320239974246045973462477314305742919022256180884868379212642947256733600033081367660608751742990662621772886857679486746677949115572559211534954661197049437676141989889220985872092071517984840868918137411693815715617692357731482115260369600601211953092105708637587123749970516304668868458599638601305483986439891726271642760108734152269037211848284467873161307164188164698741758470167479382011079365699786176726118830100028785304830575211842129237389855867652309571660174269157683069372285347941503300275779558240265353694469815379388012526830439634048566324525711620459261739340439629208531167891746714340804451332079467523841454071719575139332057670759700727540778653244836814923315772462461810918858902055023978760784698971518812448457176765274413435645621535143353562741425738840691711388659657296563101936942328201333309114647901783698539159512796896831248311412265340529321799273921862975034752496163761454360498565752761614639993937452511547359028274692196823451926399738245816150829998886820087216246496813425910713910723709958229592459013190511042627477824710993224924561890099322697444970665353690635600704758301943746992993089285513730514875016547904616869923525320327524297680805062947385004263053091124195213756116178785331220165270043425924796433465025526249369932755491651231569479487310124839326056820517574208899982492483192132951607635824071989456627728672753275506056365801366853870149231568875621294939589601779992139837114173612456173241337799044891693166447690088859017080717597733344867457088434135633516531812072938451792911889590067422159857280181472113752825295978209630335453172786135413187397978748242733327445257412470645431574023759585009366364033156638489427688595962631181657178098163570326723610641057447432374444212641305081449516798981590055048492002072804234635354602728835026076487244699383706206847912224244171813095994649671135163570573985468603106997550932462211705765044614041791932940978765126835288005608354791780006587724236711438240822181468846655901926283439527698537585757187663176482016995463637083809023357325937270826253122606420184784629754348808108657310062204204381274428065812386029853312027423086326328393247095586747242435787633755345620032687280823218663775494384527607789487178317202144228910100994442201739636005523693880017330821517103937716388841933080207472701763845604183105142187787706815177483020806354086160312346458001377897440945010051962285034113968737349140601032797320938438007724671029393651624847918712579383383360915772645921348065741036095035736004934553738935220010477351082430841810333020621933993157301687398996213855052504067189048100125515467924190083571248254874275358701433469890197481145843862524569651109413623643221329318468395778875811527905625547586832889773689133938239905268459880243193675179303000272247404232000441239945380575296272512068245980606549921211567568143894828005225189122789258300350721781596031330229029422807067268158145222296709548430095240456490094584772932423984607348267321851731749500578217353389998621577157206425079574348658563895068915446623550918927247737183689642329303157700211815997451137462484811963609124658629192643664326121069366354741910262242954747981851960252522957752247183051723791050546552077114371776231823867672240280006506251431515923113059041002747393536541192463231450159422251195940753037970208787619668945639202414864777974976025970951608950921376684785018080353998576285936541102927753958743822840418577325115730487785997578642175905466561569711862462227770834451131342903709081207561418289873012832960580840781895753690832306032462402659624451597959921723133605948972550801116592552211438089677106351037729027035478376230904736894085719991790075267507561678837544453157650922393917162862745756687250153308159907044894332274103099018503177194124469351534989837005071805275737936400418200146644392132278339938598202370633247757832720644438076429943367422299358869386788849970916236207926519305683410430234924814090418264968022228420984578441776875591526325667771652694725388068113138602134587817902119665349718161234274894534747606027760600965828402704489604961762401855588662662271688061989625478803117615093633525558307100267409214318410069479314440560068529130477775383613787350183930999822740189947403376145961505379172680363447489563171518810712701483578231059595012938466320895228824155303003554810613447103280439997196296617904350730221789890274784529428302186282682197486626318012053377575635979525576185866425829202039682839913010291831897499513545526571954817614590648550039050266285944469626657246906749023136286869966643566615424199842915126781966799658911902574116200057022965131892498557889715068947697616387836711990704225023844672443570234628075070626675069035080262446912304080208769214892193056013297937266686583019585256307633135885055802242984519094955458859214754823770080895903221283792576482381766869478830546753344583692379580412469790436343227011997382385580191613831184093135759912971941634615962208020151398666172716028437639507726823225734694850829811975774601292737759268853491791344397450379419530311743828341989695437817683029899130739633693396050441815493061757256829010342721351545330468177611677692392684998529094210208503349200718164538060861323577510020071902604200800468319024662348131176877921430792691964472992605193677496790889992199945576086997697756369548012643704220213536736706703454939017382685451134625533062622710526812951900738272994519813582442948761321650174846034798219007150700202620779617421583124566824807403625372284437803376852977350695415244183569342515961163529883173807039511185692434107685196650741031520075954552042888439534548686944579821154161419277688346673375957424051328031991050299310197711546480252727847685129954079632728694517651328837004046922574791789510373400780559749126680065992835468175045611900671828037979760740287097821925964681971504869213822858854033641421988097294743777737881728792415804255352688587546474706626829734814297103778424022296484951706619161776904109934673150756044744080215715914090182306323952926241008374841681800753825753629989267282931937774297743350245097935870039353676896755090041715912499556773545882379393970670995000928460909697327784005662755542465724581150785669190035590044427174044072572573771482855192540222148296089406895884637271849298843337809846890956837194238932789435640880852198917249303885354540000689174660624851791246779386072497431890299609824307224782731363786053568144624565885903274819276321329001893606597430870040113046496059569982413290630987931764347630161180551487854510104346153075176913001404238874814137202288134006341440375143298607652149935718341296905898225850931769957791349087957986537264098092578671191220893991097213792594366104185820316836820753032737122588578904095824575772653308637707825489760044629677009272905850630215551147287523882601534827235190268263664559282218198751905529506416678158118451102589912007731263789160865883903290143134312867826692509688196667332730673106273296958830449610174436597706199236160330626509906864667629119193841086166765050705749408007064604374065209189064177111559435809067256763522135368571666203563456600446324574044977902152773586280351045137278908130824142888855888937285581353227723480169769028028321965921942238145443560145087715755478102695405586010585185533962426043394278128650801956174547407771728603128207798617547459459345731668291897433503535182093110932721173467178956896397993761929692135383435973742848842006590187156315715811694316280927712878432832058561368858611760927792547581142847256937154020255610696480230120801702266809700828203994594180541592604762731461795128120262664562669662855640814051537531842277848182576612403438782068608707107864878169258026942226845915336606292512100843880097337341674826065419552062636337625455960208879096457909822451057477338201084875458577816263405238215545496653150741028614577800907297243993075799379517296074411027316580214499153322362823104085457294793882582687702272638582174643360412582604866914056934345575052872210426940356871098530217961138977542281156001557532587996750600300836314107369714271915770027063689263418279068013713775240453945957238643549938557543274081372281083268369811020283489632138488393277858119680227730104769320750715886678323237925125087353718080783551248310597536494069652546804114938611998041444497699128900985038329320908237613841308597055520172411431714094440494498227588943243996309276639360467491740587923583504377393512357058017776039517163317062891201493721193724305134600767223846740809584614532750725344512249781062573294169451099885054093285231241667501104426175174117152291896385039144461288875387165942050390180684333657291761475916649559773490488072629851013536261845566487424282038157548602367985354784282069888516555649922403232366661699932888129245061038280905381954778318814809266028664886977503965988917494440595853599879348261423570845330943257964551320026322409149514989677616255858118981060595855696867033858629269776337743078347861460629919383571313093474098145487413154620836674023503517865285801178158225259283684544036759123717529960938240165023760131307840420972239249317076512555380996015556405308309480558327736407705802653472398245886930791853600060852958384608257110231084484828589934938956662960276375824379676623107316948390593735856933940513978211058064423500416773177942037562289641316064485645097162332120617658376075405200977583063426871878486778328482282453114179324995217338294910784016862877564352696142338565435423190925435409584525313396953591607804308386010235611245374844765885203189137835308945726708632272608269458133657764351079104681359186384862457031543785212160322871840598747504323912142760462605102726738465000762227779601028376270157811965062747799354271149508049227867408161747127995631676895443359309795213133204789351329668850014386914047346556222173575150463404789616576445268558571551902472845178222977074194358050531181989713489126510404749005715401546758210297387518993876774968660021495854502698083588197164098445135819072924793343033710527058114222873507267819409861127292536867694302092944836923127392705440482768516528962192695149285118428669956100534843133296111463297423649756534413307583483157926830907937009199174104277679442450961973870707039842042718167415117606060270651859664659404025400583736667828328119107011885627885920245000416684776521989333498458440298387723458375212700918088901680136042901981709743347199899819424161806597181507180733301270385556544543342659400148881729523505988601252681574628991188849929012151871707308042910466716298739615753832047319739203204910320021483142172489505479836418736080840637758952081097754727334254667312089994846230370625284177782415166808027198324109933400196627672405414537047278456792437903179923105548010304349451461699751529758454918703866897546378204063565311320248041572645268353366687592334701982407407932974613078148525829305246753026471343379653907798407148524972366919219482803976412247725140998657621625390116048075777026587410326849355997221161136649406523581781346496024415025438520008109343584871367549561904852597178437572274856026940162325921819551780539706744845010380278297337080361101893623887291863353652064713196579104601934766637302397999139722037780621347829270628340469121099800037689448013928411344252334035993514129762078237011201172187807268930709967774442375165130609707355328474795383197356672831548228026706365624109616611631501704936705844965602264410823830067540886582230182548329042464436922591841765887658073969042281035310923277327357954096631412197463179264811038254508467573599272381743697560739747580922744217568875058853469642221559922249722983160950479786306662445797152991040415901212718315749856318280684208177058532008886202018655205624610189327459090646004920901539306340564886647981044802072090582043939946986401207612861538447682723961837013427363763460489953158725019923201706616637191124007566526285020928732293349122665353037349626892189593660399099651479532039907476299741624524169364798582047330044032256789118539076145116384441789714885550249845451594657254100948088190489949967843616831830168791018759978726252942239497096656585348834900569949402588955805588638514261534359204091888440800784055949107160744906748659126767215719128366246816454650641295294738334858344638482780213523524343768048292623166734240655989653708859243943956364601209182302645867943181760277242388626116991045177789699344895362938926768925191175748321976669401453389221571893761923801704953455463618331155683131205845915501508642736346841516294364755868291288720082483385667358958235371591996243354435061470226660642314830812387557716848976654548431842415342667932372400858325755418400209955705148216700448975124211659139632687977631865936373791257026922247357215262895363453058970640458604780778905381800355791013058184343452496145830915540712641962389263200713082123486365699821372192177577526425486632733800048458278309794454377707438523166437128752379539554448676940806938783581585109079247007473584783754530814252563552699804598999636071816391288306461634325690709308993327922334624627843768333733777531926012446615830951999829098570125722872767367682227062986654873193551293802996443627554430335277415035899121756862273322234143897723879934769027210003519163501592583153358764530341653697756842433436573683854673714402052027108060664367731795229150639994945411516321225731822675278706223142388059414077569049412740136788183296372551369147386628920512513335968430059122272714361246617150371351216636558260953975024116653617813028434935951605299021712576062495402700105024148395887756425684616512213652796269436508523641621746711209874145114191915450927463031797819675162484165701618119337548058542415316394693211072661499401524399082947668334667164799683290201750714981027979464988521147129490318787908824904601719807416077781207192121126499527973053207926503592174602449463204045894131872659262045337047405330591510373034038475113639845107944184071909237142631424515544312822537054293838888627128708105462165790260415852222188656227993459483890869235134891749733702579871462415193192364120719905680754483786067987594233647996693854649034031030077158679288353038627375500618580774202406050423558225271433675187663604766309700035774213744620277161637073133851044807376028604832362642188650144656705267378967503775950426283652054632912697127797381085872335319135949036507618311685360217298799873706973186329686350828114306905337721767746758907335982254941256652261114711140302299483644699983021721013575434702112461906044379351068351582969206147804244646270757082318450125361966499557309708891578843239061585201436622060110211221481590162230708409489503561876037987164577293154922532297884748315969354464406953849280109500338885784968622404760083527037474625833365329997924085635927045910441293434148143174943148373973407392115838347559424210095610602127099986095891764287673604951828213968433893535693130033271188920156296387576526095234079426441878228188907844645887925759224829797501722083954014051479547193152969167949026388941605844889361369519728063553239217425118291801782074758804401011443328604647136792703210342174519051065682187684052382525587848768870772247649824714260983580472654924400936907367178785691292907826237194535720317460683628476689573751485931355598716748082819715379587878492501747843596257992235640952587076313270761300100242564733466052732518528309756635687631883386474701095759384537227421023504811867398497304624945916702034261548985460338428522497144801191692153876128499633270072358705650655234745423299029645516343219473796390546191053298703691110435107681217050787496781885301378711451727563208541427686633519355975478265088876225428009914429459092755419016637564235951663751403539855928425354510570257721219661530428130265474711353481681316901875580906125826011543960716097347070902269211120225404373144182593936251707474936386563378839744019206428079867125017323564941513392138177099595172236264051599713523580758151742669084983652801755160036886631049564016884111132720346822225948403598128285598841902726801705330596116776707071267325513816840926822318487505370015707603829320491562142435057611363787632770554164378690438552738625815321043280557076226813807967927868812152082967282701163923357442796555283345384458128226371493724909542444421222911690475299772128061678935735989089665379432086060422054993702318775812387828188203846848609932211356751190038086954523415273560390300007251026206429908779709203342417827461901363259483770402678230053152983187528917508312095002581660504489039049480145088137343212316209064056612089377230156035349262054316957250218056707288781276307924462928917827960259847969748569162109031297775209239128413352448726654041745748619514227958780581898197053526151338049278872037077200360210941048271547680417514221782067485288725731105522259160662443966991318415307201458860281405238706556803025454033275566300231237406463777145499615545736480554248833037512203165769185479313419032877786802578959296125523837130489039946431447889730287913755569692230895307357144457282590229396555100525708302682797881916870863642324943706327249633005868131069744534756122734729183271392417312232875937168797964151127847044737612958366338377384971628355448514686113028780700249244492696874927573755459881956200214136991938359285893911229977709757020811205445175071444317264373602863696229052532841787056377325142064392676315850936932806520077107678517628704577899353722436636061685090003388718257878374061824539050988279887444981537555293091263077536597928636416014642101419958952414770700434796726167611442983484602343790536495710750856810123708601457938794942280667783983549975522244399532005961694246922618888120174292988053838811632755552264676818321920262733336407634599241096074777757726427909869622379161155921161086703756841784051232206306729347701076100408380202043793584415904170063792534768893416470821551470274015249450878262798431490447698053330301478406447922034508574333792517082756261850520340510164604069154989046028543516215726535328383474611794921444212136417494024781953592438339971305106039797101247278795705321049121235824693578107754662275510694174582307348182736464860931435554797617311557266898995861508230415366900904172300490038725542789573058096153573029231964937538988931063439839541032849839001402405356145941847241479662219215210302095747106784164768991996597755954383162296282097002546974513128092246613578423709633539676570484647675836959252937519765013476630527940198131198223762000412763418856395410282626534928107510638972580595553829874099987821602506607822703993652977429916136940886405582939086835762296648374211352225973169306761107730075989503779127930340728176249299143393184674051876388834017360995709738214958418067929228508488228230337343414948548118254169843589848241178366016632486946038820051037275606512895778308269452162466746739876808130263963750020408765295045014269338762183747821573953633920049274713459913648697233259934458400490576783528172090074419195253591141896852700480180454642122588215984447754138074039322303875919219213463371249916361279227043356986565151430095437151040209388113403622569790442734998465911006548089932862233389557943298048508513086960898180558866822834761681967980931215580603497382632565826847741138157767458926374442635997096227728048868632441208387103285821798947823250986829009404512593958866429235619344774417406000993769925738317035135379742139769151509687409169708217617416150906565603919732369625721802270244589878625228961161691734244804072957487640552012008813798043733885901239271101516433312870277821330073079875262948105193682818918755043686215082756500870160091564223519841369914194384194425290937494440291390320956574032398310242171760147440379815009666982071062613720517771530268853824431584912957318595271489892729550836821352465000994870380946475353574260260606706747167037134950269332419384153615582222270853540973839654598324568332914297655445648350716297617197409984060734878379306824168861275588716227303164974636439672051795775573330485801707956917795104824320318564600822725016695683342148454287160984213870275158092681248133760782746211462145314155984806567299524454051262339810946969676281533108077651235117289160530103930245677175492961878217929188652799929728200797060923338757651606807431241914524916209659601081792447935314586850273587407594152419063712586391857827753040881811337472212124766749136958084751390079176330967328237285184161117477004525210706211010225713919381148330586503145346926446486163910775465088792689537352992182694634140482886303682259594249089337886670303444654880637115104569275548178866576736886156195215825430726336264757023336834383729557634371710241129830051354287666026005077317613944306977271229119004171244947393727810643039485726164324990793536256588837755552217292432200239408196985364464224105830296601474632313865232134805887262107157070527582088124834463665578121150541468155467874429286540948633540496389058256177851983893619925199891496318898398227647679076917837925685245105302531591177053589750303669719356456919461641078082149176626604138361965033788024592562772894708804600443562469413104567167969888330435764520432158127794829510193836619657209660670271077139643433351305434091663791591973134333409744139876878671635388645228368497412360688588389463814456677930962975500370497634078394562569621403412909763637299073732078601448721918382954282255005157278298141884423128169536410586752143562852964156505588341330076911029390917301427163232607456369563291758350357965767177157669629440891574526469130195838392620596997638965138652139013884814185026848453461465374071457628410220663305041434581002772836271612144245422775854927666986151346301672563703751028107611403832862170630787536765087681351878614924166275524078871112122766177427294917405596328086100642536101917112964491732327601745740884302625582822170587477965049604252238895155677261114548246594233736099787898942230302879824475416621501924727474809621795716547350240645363679094432330297445770941615595165149464949161404181578181704123109642721129136448413802718382437603563359887548774120670587216845240203181254832952907707147615416281149921072738578863912801535182713976228668596956631655328731224632232754273268859806587434931725271886403556589576969465085000938037363106764395380065564140269449490385958473871731724544897306758672638197909848173305426210842944892980012989608241372385212720221095855048289608239807403474230788074151342050777802711236462188226446160322742712022293222918531180092410001495513508820413357818261165344528811775761059828218746307659229790186491239272029380753039522268144331298965343065233934161620634076117804503892324204961539594682400686162585612313565135350534279027062596277528479757802519479396803306914697000464287840899503705560688894141205842213446106812112359908401955012230717512693222560358231128022443790637695869759556476627305929049210251147211357029626652478228360640436970613832945031503021914264567542557586244632281588894510796435106768035103458418452325832412137771821720691840637957631142452323122197168700721148861448688579054991171887330359758469447379448933151226375323473746633170752396288150428420891805181219921778040495634496772705029900112343219429777908807874481376712023588761462693771720790432904284404904903685682920873469707296366796594034168938204370941771790014204204412481430198837666664306976668637576853685786295446047540220204850836809893357712908332124628633433414389094983822262919460840460438358816280938304318445967465161270692219897575006132179247793887664796658388991483443446715338086479515838836865164594968906153961710343425097476226895700178009411631859851514758700260129026336917580003982290065391899657459782535242240892542530252963904479883701060262205499683889245537757727279433377862036729671815105155791930205973844204042928389524215839874270562442949453200585268374148562747188275287418416070885184509244595230877810162049171481052393378588056251026756683639697550288755891516269013014784652452517776449238175426202803128148170455390097039452028587585989915917737137109701025704108084477917127379441765935728297919424379932387645453621095986285728305131834666033787937003897276471406513187176150289502127757366586686978911912881550483286895692228220359026102704326456447260586976117163139563743940981344708483305433351716754710875147896333760577149722199395127134655921222668204020858889206447443301490623856241102594473936098245815352870089630987797064344566289827863217849747558139826249264968028195304329945105945101922891905802855016400437172969336373727503289960672509116079295043276955166783842273772113336637066361999279505382606558103389739216088285232068349513611971603462150761683747146765919200694804773942008506756576029752749941914262722239349429034742090408332416728509664589180529569062751337817020855047965858867640390110991934227040045120474843475635405463030592547777074093271404187466374818032894629639886545205231195241084318435072284491025716831219497582430702662350956228657817625576441410349606516351615947083767491254139438567526188368558103166009443631030876487961342354202549202909262596977732708068456536698314303787494876211781358804527483939818722186958177894629300803080826714509497633677890485775124087839283653326423785420751356439610168207385277400681937630289100672781825245071277005124398989909831617108594541527483831909870792254276075350293807128236524595454496002354936615880346112939510884593406130246064551514469532478312686616015396563142445953846503302991515836707455425205292922706101502088239851003697296373920337578723213031444546114604989986915628723451600546156803245262171754721223909185406531171636242187321789325355775862393940728261241014841428019288357186147215897086758708882456582867802508751799411850408224554900264929228246683199869758561714013550036548968854197116063548654265685302787233871459915466442029017430774685199101886402151873275776486166081950674011227686137681575837250556787730356714712138247287122572595413127455754122760710800647447854721862275958795320093605954730816829133191718422602129518301471426357423399957345516572179234759979506257047345064479126757639541973829096064651971745814961220643225552351967783402806968793190797692234994513913060195142252099223430389114902492218588509619567838961620243641161376998131979558867388451099769909078396116325126707540520376811931334920276029207711616581744767714249294546662638524031145103112433838561946092479354885289191245119648320151608498869435223166262845620996989410591189681949106810368661911330723893612109528700155318647703854682934565842760295361117498664128873843872752817011117773921830327949136933928331203300914460679552691282229287654714835585601014005159251442848714212901171963033964855337955363864749953775059764032249554598707956852713533610588601303035838891369540685328665666004655842506020110135377582975596855371082698255838878906127655679159627962426342742304024265971938827101592239990858402298941839368200919196002548754959137648998827035269225453351363424679208237794131458459740162960368413557425771665294812410278554637503815817639711558690681825900538715011773631330444525455396526411838894859184476945008662273269835649700638159081059707713052202065777104607128215847804738656125666191059830286672871619309642023733460298899550612048444567820745048645374065674003394608622529303202086762875349188512332836530682018354675962804554792125115096835771372642029408737577969932629623336771113101239527011658344585229066576108927853237892042176970896379136695930909033297828839166343533997876419488070774991239298494487303689247752729474394893350113051861607911381234549632552757334302462742026667291383777899059472557552846395419356849867876770040330798282926812843980345977099215546785374278612869354417989461088823634268975674123938943022907092987142926009055634784809874176829723961290653697825245482444487974958444972241090961791457178406686103743309543079125736598857030348054136173659083657468984797702499385156141234594723166641355746326536555639966388019418909731085556219156400968080778391735874887164985949832161184075171063614838559627990329378198785014795613409183926349813011402185913681163634283844304570475687343140638481013955332274777950553425066199846773573496306454487480635933257371898594728207431376632233655728568584313980279866051105685345992352957015880892785837563191362288552139805212379867856478939004691310600800904809718827503547608245924653603276742969397782406112233448868522004014564476777716274948728005745956659701068045818915830555930088700630056287110994377225630829199643354439541056705855139222596506749311414455672638316411688469822039777340106067216486533866489812916929854747888110999777637372228696912117072581861741283466609272806635918937726908518696779999041421491549698525186031503732188166452147834393973549297712639642199515858687458131475212333734658440936901426566138697926988867768796635879556751352007457052998069928440182782156067971002109018075210518593413430214659607001109230545292441418213586543302693599107391788489666153993975444457061593041102131901653388397154718513208774000962733729624842415206068813448625251918748922479825463884909673143383479358881340617410856010957410369217668100987266591930733934441932702854733944290707748932741483466578463780296456339136806311254918734299033024165635564913633984812982605083340338214564226533863787144561848783122446206308342317482839419178732889788580975268831348405981830387903969549659413650283543528559212036893578631556868573694714337431722412375655004810382004116729087928169956691963112841458294610451277063675447765309644931323390195479318224366404258278315781153200678520127028019138443854764805136629103240330699627212074858653897611244185018852998579135486143005297777556396205923467304999306619779747951123939687667095597951963582052892447959611977329056709678353561186790020827242067615588398148147464256447586962443946350823745942271396168225560534955547355827563667360456245008901091391161588287203233487105153105245794680192544017887929045275323639017264885802216925508945720959624425420966083222055715475448128608300122268964735285847862104591363631733165501981731702036057334034138376006010892628615112206454193784853867051603030341410064762749602625729120257914197147064197610583522852874006173389524916000023202039363308242126045482116977825357327327963281639412655487483738283488544565268860199659462572099735883218638681103460535090531128203823252138734659020559866090207771728668172277409323622940464279884263037026831970631100919564619426801775961780820196725327912925812805683528524117666204292217978087435404711897207261390000565726412814434960820518455600682198323872176080186479588609697344031690350760349624139285374344700872788641823605044389974759991337091694789668987067656241588549539348589498755999267265490288324055364773222722851561450464407800367869611158460180295489679971029096015160244246556315972884442624752370783639030640436010183245487024638968896858595360963153781821901030531153805484995172871864174129739026630365694054428592780898404228177358301825455426521898700004253837761844881205369318489185585313128373210062522385709974266736042266905180840692018176345915889734370752981552428595876430635763221220453105713571562858049060471239170143155617265640171763397853627304557410385680024110002234785475666624821874925501558894002820136079563945909265488818434325647176825382400975202069216464818907154161613785002239773432627639892363336540038969691873555957732776531172549656255624371104898128708917197471439148528833460011571029698844977844989692190430039202783185187340185334802435457088672311826964376198563591277755481282920644998226482466758313920209746533898661077153317417923098958811076532515400972941766213405875090581692481889659269878176167985441239319866946291362420501283635229618549674794570190195498171603347082195602785218312912872811195587068723266419029120152026696746325100747588066528676203729022485009054098464099566644142480051602912964441734056970782409458475412211695725681690213235516696243167578960855453540689717228108259171244413523785772544860409092010760234966046764608332666476240942994003737690175244142705637706898443239258942836007447617514989454037801942919723727409247344709300923844427524192187134907538341560564622575077631994123019140108378760239880776566864923734085056055863838135995189400488844843826562230658917461915136701453851485871877408028399363934214428689662109074344195896643243192551420311187028666788426257680806087289751463896428280564119149107050127527932924947964492208978766274613314365264341712563618677429908932625691958410021991096822946265238414681080547050809129045653665688577394302465549748890254895329037799204192265934662306613477544204857440901527901335453380857977695570689351264876339647221774120197371595640444156269147170835388168313661977317130344372087005801880404573532466871032351159366622658719550924030104934405856124516443441669140064341284529737982874341222020389647484428720062028180304575846695655464786307781372772000572834745149821925363921309121213239699971338547917627751216841082369149453650577695817828439707352165390239082942639341748977547916218264099169588969145126397563678352837271507952920725255023047730651583749741640405901676358696868156267825414077267719933463598938362201487614091852519164731377458485396487504315487391688999489659874899749788158710547392664703869423924234242769589249736624694995928276563814311291283765938587496033331402823561276319077669594867610622652702677006575437540199541861635704027639858014820017897194360737443465520919281101129676604465704930252847080262700106850615664886950243814397670891582415732618703709650472884866369025285532193621049323198069783450261270647493363966528175632716741355743876252398081563028998574423511532633455330217606195858630747884191967418304517491012601049870014974672492250797407532262246239525539638547186201246457017998017361425241480575319287253325673868984414420293659497588071890026727404315606678229552929253271342614168055736884759864211896878224726700437044776325595764661362653743349587389881569390324558405721497647186122325127755360911784845399649496757893123220882950284837888492526223430354835378501257118910909327879493427710993493581317626828892872512039435288926411430992790803970227670665552173008559285953890741570211834634446371384040269970381505207649014218178014660358584308956036986617766570373789388668620823615159151996606729822793787962260722768543205474255720746852090991956583919755089978293080366451181821895350927387147449822806717280366836753710502965062000022932249149325450704950629388015434098254513982440820383970226902215907738609488531420989071692766668649514259304924920007224761127224851640643666873774789574135882202667092997396653855957994996899423357212770948566968718315463067258855969368666095167912444163582801952804718082604026299363285015668695604478308597146721026348179397612392888202262950055180550796048255929915601705673840563683233011368338479114514775518513524418529823085505927976613706929623322099463045156174144919112394161660077161367927043443396785013132933176829200193277207260809978894968462582362167306243264848310602895540723054103901794444810899007519132019285463011016795025356990999287098984686277941713056958124306298560521894224782411339007175367029939394864327556577428616499718009440749128651800906820625883627751964109709007341274944393726132343972104889609333023129425722035350817745091134248116751494480636064468743454841446469593160802136400222526057616712892188214384311824979716177105944887014323654890067515737502180905698087209308287307668607322109616425690595610985256190138572002722150891791113933437692348212922730851470488417157320254805344068687487963896738569238186417717009305048910115898618208865993992081612221973564348535305652957753881345197877097624206331839547022000485357416391457897075078871429335306176515470461550601834604631959553655915473885130277229037885515425140986717918320151196249371388476684103024642828070431742191323759944519823747756887164922771597784881324423642454853695424815693217017945790190552527877116576703151196555196547289471946983896976883083712885936980260173922995748429813492769819285888571131948978867892313085275413027766080254841842145182746788913559457807289905435856434365272337691214345358634182015675804482027050442301166431852091652687538473824886377222688234574963888562141311823820030108932187381840308179332007686844536551717972950152437054210614122739854119338093495790998017775744978138913060209316389560045344107156060693051389277976925107175152709625025388295327385577186591357503749432597071178425628525643862896819566014603532936430086511513910888898865566036631206082376024119235434726488762388710629302517574584060786931290124054868687756277818025881714737038160382391131887956218318988254034225720342087995998065053739716521434855220270640053755122473850085398543560220032592682085455841259685626340302118437185689646289066682640374240648401170541603951974994677698327694076742598041458235955902802412715933816749335677321351036748898016488648071035721849011746287652317760206288617527738523170373845323888212562397819120890663992203078425141051855584709930239722367408491765337169621349393867574297345836056756320825958663508008875664549104871146637115723267062897885466388111697164354195959789054463098733765732524049089837430244643630005060610539544905925978939055144231783867814572818183061674052752028100517945575093660218158599681159232827405664255222220029077574670765702293196198348703764943591600362062151878827511947813898924819092354600834132322568751437701441787526962981262631633592554913241957388568418935643394371656857099142565886582177009506860547932738629269857443490014889928121697886900797602936327141928111993399306132540677621491914049680131306679926773687670936363039269215688155975718919740973250581388111833132863694711039800248708908398575489933534918824997498285946593180002298380488390548851357708439808009595027486739740851677557386758974711490826948214414876518072983648594765867512234381772339701614331365792135035044126654287408521555636373852203967212466521479106445133281408982629622783582884821485200783253280342223369400191849461574120214239198313072221970984877495633659597609404780639892150264504061036252047940399179663536042603982342822728247452307677882074982463602934104197378455265419003298114859339599462921720160370039518291850797530794198056960834689560157911568579180630868201615149389636561914390802817732967845414377645978221942080653457495604822735531023473688158524741987625864056798566141298049277837165509457237368072950663110596685062120582794499448517180437459351164603219240407218577215963579844915793882155572814239955656050409072549772863659850564125280992127328952046633266140181108709254497751842319195579911437489359246201550251411536806463275728820275070587221659169334518872001035792466118769672477025166795833735268485938544795019820864245956528655330959646438507861139030476419596467460862757989018423414539070412063465069050347683086205933142298762686057886737749869246863959235398362714929813906155454985921531318253070169521782268344812603323605288815498276762244419234985415732376961234749822032218154605057137903531214963799633561164041396001458155527521089024096333536417529614402697754323216436123748584280698858517481594062155583245412219102185829885094309867425351919450353731299686283095888284886335862189826706703131980262359333247253499592691870863608164704026970580630615335915021250571410731187412683741101657660303308787440881268235705209024340040524537361138923858115924287301237666946838125604225398879876357506919283452406196313921415724460259253997651930418027577922996618919506680963930101622864619812627038684132738546365760937910000522490003010312914132062706152557833390986944617150993734825900271635495909384107019766745074039627229645899772528657423909394433809409388772657349243407525427570316854361987748704891840290356951972770849837256080052106284634429531602579432033256191523956096573781959992267626141369086327300937923366696521992954233215418531721351578659986235257083475241619764011119015344865786826725994672007268793358442630400909309149490835926202364960386901471804834796290580174526070902819952128782373748459462493194744020644817198366018379896401799986846631140516067662088543013188377976567844914646567336436462736175164912111710463709053583030635026399581099019337114242650122165250260002302639296081143458809516766519109839395322071141577847452699943124981877725392409911412210502387547231028632434906416696328849789789231150583299813356582136481708368305590509537925615959075132051339151063833290203606065119146447293214427384152372165696076448191430971443551342073893296306491934428494360928878646651693932302361399115568996439426762350575333573099698632240730001510636997447428475809342623343930446795051189778346844445555221481789460263525900266359088596213631379585797757825787123390627227536391363383623191048106051918659200788628125908074590803160393047120984728501167042542446660586630971273552283885554308056596898333672986153582589631269422486546995583218899429108941114384196215590067582495479129057859701342159466237453129660790484612731838356416281643414798401912851638773735364359132566462483799618447250708702775707778444962227319238536780247491376810395797349268162946790160160033088275659793551304433065545833155469007521306321183792908514012379839302782233927163972102117052667377785203949353012566482016636623213613518831317851241342653081815419012027074695712943416235970216112733773756072449405411061094068304846529160200232876802196128825465792523758190137053673794575386060513230135059104440575548736993798270269834702779035741608610369993063933925581172185908208533248086513878882115101810943410621636135693459469046632765879848385990368066432336790534996650918364635328283554632662955096039769907657425157967583795522289869262384157989299846129217230348515360071936311240582282854545838502796478950645549837991717419500691160979731229250507837233727984619393983715065982602400913046903512882850601481707614046207644393479560438915770379193132825769969296825952336847413133145580460419161951047568366946716339471869498605773301660261906779899731415992247392633801522347948859385192251890843022190169635757657941176580883436223313570182169940093338260630722363606245836741191631114039582763944989439189916712523003910247025606284362435116140922460213874470359046574045412026363807147800628985559226615583767207155984522449819635114544568088037136595019885899353846851911157408139571345716348833630902410638050803425492665857274867292231566352829372535546525914338451648277882148277025897270698588824279840248489736748457351599198602708003993905889816545108398560758715320091853260171950801472639543584260457924645505125084743356559460854763672957563129575314731708221135579156378244093126401364676975633656587509523809456315855894550676155476641590294100030335475490799741968010517820605437814706181649189596540544412196601935749366506117415835631888302435514720471525463482539815114159355934129369768112255524631400823833664845608529645442458801748662329367406054567174527691583562957757530670436206536578971853311005276112821296859280062509769170282321640181106967184713779797558201027375651607097827315326580983448930721030770474897986787828109946923392390497532241834622250801578140271730792026967769599291777734002005845154677187775258190527661378359033052963146915384406704041126234372104579859066191802911534236136689579508764748233598732241258306284833877662696994924205251690526266635668153321566675552796412270710103364335500012525299010191121838724693474021403095629411500620791931852400704193680509108278322907963781370018176245833737902015477184214307952798473760230623095599949472857985388185410512110271206334311650468662745299167566009040171523927133027999656134462013416403422942500617777716200649522473307971981483725067738692840101096272482189366548060202925848647018317403401300003672384977911330777752754762555883022069496624947192325573484221976385787034367739432944945299286733084420857945406950141688155305524401865906374849279749278301431089370639853594333140346207739176658685045812696349228593658993842805539971695284037081997135902115142647471057134895414742801426031542434153926459271667169242732603924798616459102171786821626603939192100945561877185406767204433961941732831425019906733580516738996106081195965341052040919300561735051463955453307970842116854537711916552038326872149391269689897670482544835051433038141497087570165218983021051165256955546358468368058164557244704350617286370387854145511581128011302534029664847045147355660903262731445537332805194886624378588448710402037878815211007784979121531346841335554001070179863676171473066701397447206719735037091331716069760082867771532465876737074868640723734232063593117149585769987244740570005872282537018528738805418264015845945934925350362693765354661308043477431582561546060085914472996292933875179851073451278033054867640064872246798228168035669439682921203960716035012756384103113683943951882428176751682794370143645176082633515998777941820976036158912940563008949921796001453802594189182939836032223983119311631041036099358908422796682054365304612925589973753386881060205491345345130670588508910325344350957271221451671055991962033120073677123400249043448765939965480540739253259284862459575512743429065284024280458272178532589518557491559687023651972545337354884346205631253970990070096137635520983257541881601502849092603917178446483228799236117145239284931408001259596829870294312175069028949743390908673839342026433607758443949977740018226454918450628039923679863248959945425179358719943527378280836527947234513183613423917347061360173713748185836530029893834750645900700925064717601279233747578034752391888789299642064661032605920920888034805457973311643886533530836116563242600639114874838714249602102625786563661508026142601471652802883942607576564628870228082299595396939149511401752135233472851017042100184066769000284337829218942837408262135582604024301489601007794449963852751644280713396008225606649390883490419370308791731582182042092994656851675523703335026477380422586069932528254279712490113592878296704075213531074803891493241825222316433149819818243274145384106178812303393301824485557779833278437998571369561324958684000226842534952846879692154230947007461966771593034736692461447970083095016661793284627289477150579412397037792622323237925222089176268076569323671243962513870320199691278177835394110776007311450871317084482423474536068314736109945520240516285916080468484483502210151857945738376752751430621082658739975342732721772862197251303458897094721095799460676456305279814719981143034292261452307720452858964098920682798746459689173262108309842796730348934198016045551657516397448484913230167232035886871857749849543551206642123755627293384232944279530835007182864435765453417310818136368451676220737845270893988290295197451194983866588239261876399944697224310599228853867658678505429901254786126379760589483499295275593980544775504028771557089063217283809724144401140611072229126428791065678516183293309319969863357221982839348784029733148729993749131902850415830373510805442699978579324655151745980751032742224368952988197965923828003277082365287857555162243366230124721759861266560198883032648202537043483405070262627695897806027994420785681267664193017318547185355517972775463324441156032400791315713696819611355267364724591889398445650887116778742850357104203734773668622171712066177807627277776564067600548352566183520242237685581232443087672369333088496466290284652132724300207923675636918807749495094794882650693784438713420693371861510976212005360717420025664597714233945225575290132223733832616086675991647027197471277708203724177391874930983558418862250266280057915481101275410882885563783471909640540036862350886329676430305325089516487449098654908839311693771691492279025754561278643568693568631088801201168003599636116975443053846758379131030343039304581909728082685601999043107224147883894225498873127319298457915801360107003859406848044271618684718405906714000336659637566833801828040237201385130274546466276451127976774246722777604946777087236015396649550879322673043563152445472747317701833410605230431073993622422570694191470294810644981935281846365487828268754993699337534043602036261436356765132773085951277072633526770767657435899064858902938048838841664860787293479865730447087131898389395994356846048215436642838472231951991756068653656118356602619297183997961352516744637794261564108476120453715378703177135053169041559280147442957603686772521631911430839517640229783377410808536243686882377570108610413648787148526135034094332493060688425049137296922763356310800185502341840982073522379058180025436197265687235165240968387426887837984960214204401847762160692862613997936988165923139497420499263360055592874751515431775134391321190808657426980407581024681739944715963849126235787102248643365680505220752321048706003677398516836170268739647236319514633145357964254802502024213850257695600858299100754778941855804165419112694816304015190430780821038879129555731589061426853883895768923129112515844137162371220364266874265322599185210150487098744706732214703471672270400842346078726320239858927742914771432827988300951612659984557853323105542992260386936712943176640837776574568412138139711471121104791979182523298557593708955691286244301051609747555143073685725861757570079924134347213675294731235470682874730182401121540158763385571790348438848817965175364869671970646097963430533811721814873188298798268833701434664480764197088397259906438683384471086710641681250924698595795579529331518849358835122260403909364509494680467751715868178823708514511487455235508234682260494669026488317017200373100028264685628800640659332916508692251705679091995653668199154861357100844851087771902936852746899116751347142519819369896958827546395488667858877140064438390973272544838455512783334999701227250989275847295060141750058948899545807365844909498813386996893131920955493198318008755538405821365313011280664191657222482302957417243881180537191603565791999458367348167024746552855941946544761332926347743606166779714671739316339237644778876981627917826318148171493997430415609891758371543123292131832362441911346222543945160563938139108743663339603732875298750935532878828735886556551287048749853450128237292279542064680605300759081337055327643706794766406547842893689297147753218249479291009442967848769742292712710293379869429238330351468432292454532720742863543216707455823461776046920896940459970603786434728326316824303229808805932333064364947662900837182796529060121870619545081475782577014475346781784104743093717007526222698526712700538648274133286141421146773513477859137905655211983609678840913477788331881415304783391853351672674936407896272685609543901230270662318233701322430966392784432166763978398732085691731566763479337320029959228389948520145961850135956355230537162753885011794558819492148573143346609246966341448090852599568625811600036232611955962221890900885575697293901062073098437452977788372129131269585992008067710389949302333056263898998015293718477178227135253432572062250497951757841063333233802041625456684411526929828500332013221043208841136077986866958430255824200647861748824530891416964269454759391370766684288205713202052545029764446766408844444625206578282432321557561637343672699047845649082465314532473258797017125605286050700037665321405535302288433256917356857866536559304855359106189919426326967003901008183343835218977991636591915307008811330243286079604126495778696041202493393047767094315055689200898131259019455994929866511230711635190954360192072038248637968546696933966872672797262522763634879594382557116528338886602010235305240734973446846436002769518114465799286179570133501748187930981741232417776188592860004376681784367063004367692966146188973804927400446342206444905843644125657501061326326606327825798985810377067926098403496466800585622491922358763843983901568595633299721734767098603245040202050540275309561082981889734500379711234234335836634856070694633043878735632012461101304683234628372317584957950849711037518583492263317410439202375841961705934841024267410049819486531924487530509098927455894655454246208536210840928425018437430202534820247641870257422487199221041892742821603412495340235458612260567745822412933100749872179471522034929045046104670103580738558035577169992327608440789492764873486124313518412257785225208670378647485505895273727369987553223283051873275958359517224276422197994086137544536089183842901442099601087077377165199671889507372400570147314067511687893619351651013638309870550746466153569725953401399211258620231186517695407487875900783233169516888294061805757689932739812118445334993970325077325265092415114455259904561956153406646348256528912863726540389145364991601201929132290085010797557402052037145230818186797715712326286157230509607066392505352318440509510101955771151483465053561716068860133457743408713609341947492874875740550368727462163660569726410652018680666214768863926220649233293238809486662367839887247622802473659274530050762404283384803460103432365381517187482454124171150007171400027555838597764659789683160645742178257660959647849389579380274659847468669900399263407807255768773069328630313150089058939474067109072231422307980098265663484008436048268406833841295198073201402165474502303978937871813026311575697963983050104352186696723971810862159427000116405073900399905578409496485267685567475594816682803970626319909200898317050221284955128336153747548805757476508801107914720926300666002292933620764309766294316993290229418292529914959736567001981669864070037732340019291908205839097386715394484644884215809263738690313933718765708483073939893396936736874385264787246466644615312705846063553428777574753733983759659251567685166214592171774974076860931579682854094153309718235606334590950989947763312583050690972544741420009840178889394905987927433955512667629040775998550317292205318951554629757981969306814306061962407973279750986103972548497669310608371409943655513182095535276025925708778077465719470084926534494489946594702062148982957196534890268566124281325833638670778731523454585419398810420580664108794264952879150803299817836822013064176583208373253651625010762558171850776449382965436780388404086225633843366704666310511640250032569427139012229549731423011220966862341666977748063842480742321762615116578980607325932255810385902788026898568018312462625012208254103047950022701825668164611882154464898693534200706976083637023327713091289072408247207632033853058408733072821663195254352831762231844305015882600958944682737880130772374607420149552937043442840247990231808114097348978990240375980812241045066856793805507836062194474559754119345522426935590048375159207389881211459731367592239239694382690177825784223374440370769875554929625899484731439215086503733595209421504094109875632501506271236153831519020829084794562205821717496601571066492053232002680084058186913888435403697348789457380246404627973928927405187833736072369863256927877667695625701633503164577987244041131643815095441473581419581602719258290523571690603321902395248885478965708115602051068251688247863937785748548959837378215939341604208360288585353377178203439708856038792726185716184927803226577272630032841072234069202619733926163049715356818088801662509786939506392499700701754276070859159987457164545012400047796547656029410770608405876312758724055077672122715065878493802209011952200337448808129686182822619768435280639438102733041344696211929992692291643002336961309851302989865954828776769689668719551631056076560491639280841797985774719295034012411362026864669018586409565723382212507440435989172856457695082360844947895708431964118566647447622741186880664591942600555675655606890820473183687194869734646787450859930639146022785185570580807622481732822899059275690749256933350499163090859011477564879073507385188747439874669985162878438678896219791771688305448541834756184898887880606060240872736507166621134559796199401799044373125945374498773179201906489001436700326766328061746567939746910556062242373787647880620213392568504268647942759077971415781532137090369333565407723240475297092428899309242263225728396767041036857600677864706119923499380387564427677743300959803840249706018824270981179985238836658924881769013011682774943279518807807058435661816901059167606824060328074630618872167340521135850567667118642954623097823304599802307412500643427303189108557500406275134668687021087779831843709806984735679408851576083434328713137097021238198930915571524232839426830871840137159374653644138423148053738553105893052328456330783891114597259541916678813415362489537279784992749073473286766418604633263273499563177667679773382854204378715459257981141170485900094434531954154888970883557511265900976461763707831559685808673684243847361693950941844374887763845496984286594557203222355580814258254097862317667036692225717420150030780346893023029243990895739366171737916074964241538209770607505589321519777376552044375833011463813656541837562523213477465354630611568893351975589916241961802337288007435526403257379090615874608294162822981010078598902604135491603081122355813263620813255313925233669177676417794374850147596932087725936464101093944793595712684038808934503247585279165025087905017019383814464609754801952646945102921367842308100230139468429024009916451147791151017413994301662103928889220422167090429486240694439373990128180956384459586499428187294772376840424615219685596556948948826631797831279334052080121269973385410774160888860757956737021483832774286966701797090749224226966778101520576070312712110589338326141925968733974130299238850387530228409897763572616685323103917342495821195463286605046972402162000397701514196940044224232763575385665444896037909892660268355877900419525509024071288106235307420430079825240295736391470315287016502342752716130707679077063047429735889628128766239934776296667429033884698166185497316521918495588973565451325592882084615791657335982165893583092154535659163367430424315960124422342676853008885838396968859579089761175778581732603608662665426071113971117821271449895759139309570145257332234212571001721389974663293769721430046018191931016511060459834452715962420853748048190094033191354464202710351685853768112434483473312820242453108564738314192670725728385873635142977165556944585393334175893319113033374201799547260001201170889514579751952449420609106229258167864141320651648527603710676058108510440583692400672132170290542094372449694223194742222291558475135062202986126949743709499666042942003395161837636182373318074067326641747292357781957732590070633776994710501574244407506389942934722268270795705634433261761141704499334774296392275832763089159486403553870760503153424212335594302927135739531041323763337988531282577846013436652378710424093904937744235467201378287765503285819965022245999510498090421302259152969330571472248236668274557416569142423403795551802541571739792454162119386424269657092257561398581253933505711055330673188329728961318802852813168805479087904223181713731177911377442682603273388954744508845230466613602869568347920187455285298969661284694746223494485706823825263958677265976278865494791311417857613856790935369808918700984916866130321045600164175190905530404996611362083059323748827752727769858826500594282763437593368658397835376581952221461746792009538486586823912396367006864691223063446451558288776903246791586472284970758238256854342265074312615647478512600018636029520778267283509922687352475739720718438827572317033816868745573764976447323427639007634209639107483701203126764021787462285864794812285474229331714407214151322777565401729474659049955583296672685118482002630020471735392779901614273985328543036836743810417380096557291868014689423013430752883356102266098803207836327495436356397913914765621850810985443278050618130609212919060876156575378319598346287783864313265211514590293289933243601979999934497144425589409540487074926801386567361042809561494305291800790431430024176229077917801580153205949177714906915697521699201978220892248072256626691307721640623588374352683263315597344793451683019917957091608865128218234956892900283721545873041192596256692298182039309310292571591977218162740921231685317575515738150146492305766200478296513624902689342619492328618024475456984622721224091282060773707764636859897487232301418993377803859066168539506870612352079139210664585637656883195210171649831998662161229364022825938363628415349732138448895946317557382538347899230544842305465510379107215383728637566696800635532671989534834760690488479326293111571480796833183986909399108409297470068132707697388270408661558917747067681101412586427715373667476766049906517222233509114388356486525378284318887602166136918581373914439812876228835028718932286500280162938520333243459543243569021681731120628629551676610404167459056324754165453202798470334485311839691421036342466702975357320695560225397755882042367639595017553767624017383616791577129159675938992793824286485928284277907798502797731226559812734770138677013053945076899449192612094443029557749826306822164741966671848347616983378650668559235002650058883844577920899669898726451067909739141295691934718118760976525558909495789044490451542447108814234040596153967579748956829269850251670127682846082948120178211045783669033121170080386264501360908526041604877658578079897237821043993514745180487944861618859164544926668225500445579262488960060257255681841927078816008709396576032940477775068081680721658045795496044152390075772948878659836620559017578680007842014590906727728702802477235054910328600790557759333260323233268045740050128626126886916000355102623605539977150996142703261020445101576859448013000891336127290762466372091617902875348950203604937072136323164178503988471805080172095804233667985650105832196532482921453260269076486845272967533776607950658486941506613625733523403046759433531240151156730040457631490052050488709600536376485272350622218968854563290088440902052971825056664843137665123615512370881734623073491645836705356843950528482459139279986169589220112682212331056736275472977580138391878003878556319623450961871622699095506640249245915546209738679846357016885151893370113151454641111948018725344162337929849367834481088722414616485211796382008532355506319360091950545146158998575465047095808671995236086556382754708239605930817163871060973129654153392834806184375534472811008834487630343668317983381307304863453291861409357702596362299735158114843768587148849725165991539281540663895147658960739379486778047457078394763414344320185941305371485971993046440733481314053667746176310250077632191103487794391269786274375962556860088112409397464627876221630106291745208566504822518114232651283929980601771224939317304668976118891477474890040642724073550373686079816291228807403319931040461934684875685372342356828765746839969191334706776467159227239210383158183867014396526486206971061296658195039757446804042560909097463022992917115631218532142120674943116490592903281024413531999522584237884594601965565879614603950761288102652438915812551421471035841072595997268290898796785643973332440360496028667251643944721351522713922704436802334274555121514305222741494428883327791844306778386243781492156759015159777385351637183091774224578945619414571266455985137902582781006275132820995002019748253308455038924065881459394336976958288390392617047901663075302074535631235149391950288645002278198439067758768291587903308023947769618745005802626676490904493160006723349819452270099270063991147528099879953526847591492096258751908913657094582395530568664821106793271910796228666159170142094188812009696635613710126597259704756941018385701450329656161677017100735149817308955178277036493613291752960449775538283521919569246148323182343177298825494049446234910372117685324610785917619495846068746444866309947194693868938198606049983837671578958387181420666765983448732451477063483181460337920004224444340629741383043955876545954733119518209775767057237767031880194650428839676843916063297908055338272061469803772304914171521158077431998595779753505664690740010265455288676509901764114614788550369810104246582686617629278077917055201519163686132663723148217584741396006917741834013955408464366306465448876057742530910006821430443673108847624466912887627511326633594715411419912959148263020542442959755260529657477976458831715567897084750940317908162239231669999466552234123963309963734077760443451447966232837019403091135762929367571760038863645388775109476332684658768931349721082751318937484167588315275177079994927081476133817386863724533851578748919650185093542714756018058164881400571671131079449244077750234801020030773295022229045864575286503274013857363191509281904453735536699870770970642086936061826672522308372856921267955635747038406340389808968311858988673393645401561441873342151079288459836880428586770850994865318937129261275056270099469174426773317824304262895453566258454908603658523678670964299345529758500896513579838465601441182683839060857276851077987061506653636787456768329044777392127001730080097004707605810032984237998449219700024459089686787319394378533619957756389692705824222449280536508211630460010563431194088658160952335670465891381487598448370983488760190896449405835710668532916464237079116982130298519070764454715766741425665834452081243628038548186021622272135071554120425763068560368036361095771258073443960284015229349343707026770219906656279357275669053637186977081295849363992365616540028777892912929830276136581961624389224547175039668294758015543103582876861606896690827160443127969668747286343222766931789185584977268927887833937113567904576642224200480166811704789358097111234292480540584467390392709303518600142901699715481746488834759396741027151999745410294656131991551403462101711622098182835010002078068926321055579317987771892279358371164443360487915748268977290691949926872566431969559746100761233349547741043232319034418084766718082772273463865196996298146961869731085841914458326040095115168977440776871495169830918249836378025201168160032878531622611667557886032869962306542954602429888373008402551676508071689968332163591555943608896425154940994190940570346943540217517360448820914745322815255936422504175829532202529787065949238428197381016799412506740927599027270832791557778171226661834251502038425245544698120949128386204948685494833337517431720790943445323002405293375833781873317790110709918820371251343680988958312556102316161484894585454533769742772376142136080062960611092115165065063714590994921723084226719173342404227918772096697321783531694658040851992179911440491966698173269548920837927530595995658147350438764941614727183304315377777481103465737361612135225201112611330641026724801753489707166532878868087788576907852926085632024158437033574363608767569065481451798535938357459544629912175561051846979114595628330778221712379796656103083686484929638459507111713652604472656830426164597992666159243341434222700928459975365885938772538308612958198593584374621210164352512888155910136011365711934468031901646069872705905513690166611204298028436611328494026170510340828959293282665712382599152022341340323613094225993860668788914512554162608975902049213403495435271355766240259493792148354810837500672531183338887894750164799073626846799879283556489326266644293640760516822692533353055829666704106675021425187106195938285341384023761822087431900467894194604948674813821314631660691797772385046538799665204601215456607475134193814910713809320330000423826920194949292601361740658948702969654125283839407122090234813003653456227238539409123944494829140290577302636929882388627439803717744016120300473078555277534147558822490040476507602260506523521319587348287342314486640280123403416305668316251773303290176085769658878176053575202682758779389036938398427420150696823545488971139378103839117664927419055447216451428472187485906117611828591557722923936760185835688456803562824557969873462250353389889831956654996500199884896994414254105973921496636023930363361540113191722685000028750230000066372896659453034954356424326605868201616596194856329348493707327491468960244933279974553094903004603659944832234625277638141448879033106461131632775146346416882864617961207341080970681562718506734746229777398591210696985540810637018195695945852739874599864839618454189958415136798016517134274753721815585272486890167469222254751430112405769393459982184623708606941974635736132056939156848655702007910445574483311629884165508825512429996269624854668085340747209293413084568376774797211007158422714473307783558523780096667980033844096609217880202160477996177641404264684301917353701290452677866274500160139956044759246820829402529844726811679778272896651840326353066708034289801540217434953969443249923083934021785843587996034824527243036367448562447155190224712367416582272841420344207559717399877203769872254053491997431270966034360954159052984720501848466103986317241933796397973849367446789945908885036709368388272655235682257648522065800736082265704037279443779346666944309640020734045452070207959190222127397497104378072990407474996110428691707099164680727291084082362080158963703821192381565002656577414041869596539920209451525969944697148452486332427504487202605508062405444416624740835197184302383301966993314378132188733573927382405994477538304253371237212697668754408162501950336364049806720769865107814538591165592477966847069107461594796206618410122794234007383373107457779999515851609682406127931429875428302703855682942133014735578116393451762213506149840976080637197776256247974955699572620859651102420028784956028912601971059190257527906224455492689808520059812816540500229357417792454191403744804429378887258532358911974305568205095227359442488631075530441654379776412109391822575946786228742991168398943213499161889459777793708897174279195872505736185585043136220735883913672759615849419312787614100213590938337830045058095069037608518021754117290169522470604527696471115449876342578484994242678241650629459644988674398467377144307701977540339827816245756106274333464627313863831887729044668928790724451834197872258454405631508166531840246142763101083017439247126208497976423766351177577485089786947974372478266291424930920803736622130437546029954275137807630771421811071546026360583369757205768462120768493497643088641000367694753598579929319380542081713008404677490946973673176768665494956778028321418138826003718775118413877563781132446338325622518476492084713479623477321132545961803818169751999817156297590283917336200710048822936297271257672428722543204858321807679703886110435491234094840786395852644732745953514263658092236811250477477020574875161160505843119767257428373898901027600971011452634003944920866098231940558873730378340029927656679683115002671976294281539763932883798396089913539499544022581913525046649037192108725567954576919182036415988262957828436169687927018340175553882177450782445397618330553236450274231290740473978912280541102745166361645647578206590170645825907145306822701009767773291143900815184148686293661081282152334963736203830604917105635237042413375373022284615191383341349576117277660103262015858519491865614447138058137623590706395085572413479120099501088870613321180899292701514742736824714050748769495926397539696676974741788583925607182606559623166006161914356247034576089903642993867025897266414067639118640052166035019736549817230167525088047174106204697007195066454688875827517775308541864468877088170011559347125321292749009673483628450450766586988687595197466452466206297471133664923545145978753249013871031939036681959133584271376497235161047414337118577091361859304279935438825269478128991258061870661049044454438215804370533334644915050673953518517534363669265264972769026894026363466979845660995954449338314532081007424826997904973634277149413714133169451911876797794330295448371378547878525843623937808990894131382597275456117593057512917493496948046559985415202071115614626780337814511001945182394989094871459141341918593411701073234980560215069972488805248766378756098093392065751207457439293093003685370444123094252186487755291377267340164034890343193630790175058019048195432740899529829344644206180443306757590643140371707618470607246175607826328774104382016845076903017233148080093655934888378142586573805816070224692673122812245074835516493156736096754149813669539766108950404748285669924192863787181976833492973445109853740106808708298183901139082328936227917392898869203879412547266097526343496982434197519440659042674866037044269487955189872659452659731727026963028490160867225625355695028322259545392457447925990612770982424655786544824080877653476300865446664887408373049707316391346176811259850480078736376299728703149581905812927092191569050613265047765537484576889949312738606591924771689430560453583363457262039711812051523996846668344495937433962870375220578556517419640504082149799134640977731431386870847854435716367428232714293093184989736145980261403182078328310449823814833507423085005642479958140987071686337969711242709719433369078324660536014170556485173804439788119263900504899300775418713550741056599338808860849439449681614359982735848300087100473773339926167082985141190256514449339445220076740641282461238426476440515278167598531440354012019313106952709020918234149609570556978658157649106977077766678521922062930527006272259079663098932582373968924340667636688575502022221069112345533323975275537718069985699913512947121643241758716579891542382714090405454091636260027164936185671060930109452493539602746672076441423566305246689274490401943240138637710943905564325799790880403431938714779309499206691258585966221379522426427941266928965084308339360042550493979989742277830982314364626321505227726468512559572836585821182374201167394345869058959100085508710178630760826897069224941454755863080894228756640179871048443383159065987243284824380293797240177440137030308092740419844868936684790127654443546958551516033248844497722345070004917343512518974323804611168479452980115591331251092792515449324195321532636435810348762866148484504524739318414265613883369503130060351194894032804628614515674874605643436035524004920640330334531770491774295144781312152035014754250763184038098138333708044363072207005006070833628623493955634024595138933030852035766410890690896233546649771581168717220371144972000637840043977711077673477655331370276093377669685255249820953328771820857561965211006556567317983266303745840465296265199058286399231222025629036676554839977007240105160137427167896303825801658286486934206540408978090693555955625452443690577619833622894310480849138980977136061495739178057142967629541157979285958805122663092746806281355534044616349101708606830317963208882896741908516591145180165744064084455868280122340508250705215139447881442347609296099922761974554404436312965911007755605151788192756410063538031604086894883136022266698082652236704217747949281560818431969151815742913371570844074683180527870415364919448506994892893487075688153734554277396338369081461796659423204856774085022363753607655385557875321815484343527494006943596141797025128855689323032369418975548522556045823221814916293186532726790024548123001212177647641047789594176565455713134489164119598304099427709882078896738301889043855586966468331236888267070435049666410239972836257064934419884236456841682471035618609101644295864496842107241082581922765688993515509343831273994293916052378836152144508451203929771116142173301293923364906747463736936880953205523689192677470235923663486705227857264196609173143271648814348184404033246072937030201200766632696061383642631636696936005417715422031073759950561449929608079549890789487672725102418337043585313384589549247739759820973162326087674024398616586258960371643210560779088496780050400829425327094049106453594681217430221065165145469908415588526757666836798432502520460096161654644218689919144985279637003671894533916450407791334673027642773651375178428150375425038548049645414203215003038404231023870498593568403158288616600314893894721783367114353072832695731188059492318332275582177855740252618615042538472921572060404758433706974253176102303820916172531379783218138394732665260007172398231351189058375359821092397301473175575510198966396852396323478599340890521497315284629369573134974439722389605940889971559389217953291890134079728202171842894470067648137582869788267080071824932233113084797764466292936609724228620828261782672537711008508533886702674198540942119655705358835026251205267492292173529520117438291482927346163113563576383195506666468514041670623246629652129994275994651818769060095869936869949670694001540763125777727138179458027726068067957483251508280211878745578867238725680043958046972723065770492315653808021272146687431427795945586317275249573180487702057377004074695286345685550148544019968385394626870102373008555906571794708750879132182508759087907104773618280370248378325704475054411856858947874069191876503670429481766173289366579635164218908480276986667253128194898762548622105827788942942412089859529057103502118393491543729401298638228293524122110355342646389119014847151381759102208660807220040556574712382703771116078328117441911722651867285119240232943834854851481316557161662373090785682696583483807967959518121208120679843448977823819198499456375388915309117626566288711051075113275867119140433296918802053788233425098063317291544398657392998439339401074722385931553408903811790730440961518928469992188442167871535052853512675590945763773172461395322311297274564464885120203229533446713050304306274653515514034139389170974285887835970862933786856479128332353696974029381941511824811758300661618729386158414006553114542392947090347254938471002887347562732854242916644728291366620144883553508696917590972596754992660041479133931632010996291650822473127592564347317363185772462121540580530846936220690839654413402205706225454205506722746272556707962376584914191327113661723869188958014826194517424495797184715963117149661592189649526852703651939651219722601366106518942739257013906913077486072511620986271321687059426064582417349822059910468345424880858448825491640920241213931261242118572096455208292337776782426194917003392820330203176944516703552588697810968711834556763261638853614490442050116114934769270251463058997168680032506202214888315591350174669472618756252747200179950730928937436686207087811287985680444345431505979629686838849457585690369441587466234352503516015580446574575934899706632348476198056924740884150981892547998371666309565558898384107819302539090902343183194921911440778991827055359701595756828923472169632896608247399922998361181073060386969081192590914633147087892487418989280935523954302850196102308571960455789976859362497717668770931612235924121003985504505245526713497289919894914507059350903554128673948269599003250409498670889612661578437359849303166069414127966878400800676808230976066566954405413094516217278261778945831749982020674721296760312009880562874956081009272168370319568961330783605519229508305645106421236167116442778767510231028007380392915736045802878561654405291523217000254369796515258294480493981872507771333892487235925259049684703308114053972407710047675163806118592170530973502985412063704233708441397756903638245179530611852962523992817874896664603946009573780125170508895337264592508944816899799075479317364803449811662961875789229117775468679329840573424519777369020208622974869370056475616127841508925601538991652771333613925270193483732259248083092717281371432951999856409775008384238783068398437381984934131456530680429389700531445931941793045165924206542748485150800488615109078399058818223696287702912463924087447703223554860495308281811383960244845363676476423355763276320496922473528913748419053979878735501013984470011517843935166400633490612469026870999620233084481457280220465802686430491482010018040590806974919694047735729744793167919454003051874688807831457722526993679283997180164912497363899932300625117282247204398718042280314472091419460355159702947485333725112277720556364662965773919817155835955494185844256390220164150838584183864543779813359996129172427029871261976943380584064612507236222336701024123690128720891883716650850419131102187425697570968570660278807168738070028912391729759575397012639257519200251709895211003934763476986751608004272025473664973357902803768697121958830074288165956030574110743230851521369568865736217273847763134396897782646060618263919331503778291468460694370528084158457123382749322223662040609798460117138962851790787363150783058891670333626446124072212682687067815619589852659360144975066913772651680315885394835844282998368210847994014643195978495042073988587557280350137751919057835883517288907902277218139734258431930665658425359442239931714178136369904401601312250703839669511894919310646009823806349351253428433122375276995588739653689337034421157545456758285593783600804199133077589801508047123414382853980045225446549263018815716510269734310901795553759097793433158205477503849505770626946342048476171406427174552952661890798114441445411288450937376056627267343868150501453478337705471622547202512095124815438133277901491281213898895415237312062790883291629689534440433261127875572738230222294014171850389657267846610639249941083061775728731979759434734119228519819637935734319281257938387131592349393579620203773760633429689475834166675976260443530082949984639043227890356834435893911985951389045332981374797921749852538141523803974093055595471998368852464200089456829206150628377401402947317850430013769155753349670774866194825442246193253525647832511741129081136427479554917313434555255061619755948403202654497648677007880805449873429414266987045086523139687276845325629484209102303553622069181972696661444136026040525797786322479446812380278671231007149726524619477911735307521566935564490304994009680727299508905839149392705116684086504598167853389358623980113312888588678641353914539633762416460414813301818256150309619310756601685500525182164753467403794971663353793334994202461887814988660210128467165967065181813324633417615670753799940487192096701103460359897015165888183220536356964175802816374082648664718896489891019077522829689983916395553687479086637319140212634781563368588838674335966858455685048025107862983911561996414114807457731147356660086671116258742468921606028863812949853600145057404573900523356867474105228386739793512245509086364319829864585937748171046694398113550691448045476450579491439998950720511908972432554361430905626943613576595126021458573305474003208839710789184265363620470437109253043141608584987169850765864397289920194093738206728015628127130783541277825713830767159089432662269935309145224441318324938702426371388753272624245736053575928612190371716485597844536427344321167617271957048425694222293407018370154008061029752916320037997153616609064605527789911472948960500714169256756465727020894924440972121896999910202832499854924211164526389840907531678401218565617148250578362201893382057440058781620205752793568372335500858005150281828198364601279145045882293753821602925393502030079899386729382303703931394675695872758799127429186765953992906581026004311852869149563513973440602380320897342834325891380490471077816596832653787668815021515118271904549063495720937551999590496934893407360702621092619637233970859903211441266440370995052915628302697070151614359687101404870587764991743320490048814607849188491047221177693343659010357260210517994657408962219614252657322158459714799043000989132091087855948347331160357668024643096362861003644400578609957351229404562423588494894891221898113520507760217751190836392574874730710484857451128351154284151003759209051967767394599606066409697935912476501604068857458560115169176422254208636332760482635465410627357332102882961490955127529160644801483532496011282521741107093752914385815684937469590401939338075589934354811378393764631930897852408750844140024390668978034377936400263910503761634677965864384345673463726126781801506365303839342506966031235531911346152154474087801709555938470821126313820756992601973261695571172487782948670120137382322956141569727105633472331048590424504563434052154072194930640289403919421794479707539742301747526145593083538032970841483997985639038869588782319969064592118863913080909606371044596347497765169458327331946516782297991406938196941311224524952240541981067753545187076770465478229321027020719459043844512266688215982372534376111548887820765963381014565729698649178459309214778349150923012482071292442072337164370259616026451204638523045157401166761441415526728019533455582810575530237548192524030045084398484094903344964432762686087194989517231180616357987504922314088034346537544297229414923635933766483012343483496121944466962794936282292318587131574687330067780262490449354000984717782484195918114170504828131044232390193358177102805447538171354231503861544991208601701012617369704011838685276967275843035567556695254170278259205122004378726842083249779473564843663279233247355694397193441142553879270686473320927250707695878579665207791128452732451956604463132201485078715555758779392169549952582037836895790665905112221831781491242568984689077541119513051015354563718226562539888094509124366531236024041300633701364559488250705085071223902995880937936633043156758759411105090931969320777482814637996702075235258073143675744033730895170700367120403343029630113552689475724389440739427314776397608090186440442795398753974455680916371569881034193064179626781656367081979617507688147076639637658885991407705382416643242848827605844313702353630950541901835090676542435008828319177419329438851639041459827352999291172149770808288956689004489687633618731234603961156068890802563790040939851256217859714543386831300559629483635820302791579536323100020583193275655321343691964728846050934134734420293650919323870170435133774458001566946975050017998507442186741513064212223364774954284787384724848725235042407999463905568375300866930996891609449105380940310921715131720604080726973522456506574691531568299280903253280054793066210440466189316288693210656805983728721025429574669567866624518879657676009908108719500325811541267866219240387472414632789416159156589631001753408376849493501732405059541858187955411415545437826775644059369125083427648722423758291600621422726715150858823715011806176627810562837468817783923126348287597906790852973238677555263398870846554203217190154483334595974782777412896087749726036639580531682553119517728958190152429133097219386302000848676548507069253657265094808611084545052698988741154029493049392782360672756218151278026980365483993522729135190045485763307256847876824675089748424821015551768404548564630200800803989302059959826735741954566661549186657793045357903083852762174056253060882291903974998727557523745518001939842355218645940735170617682389124830751376230293158717607947245444185142018404123681918916535760151960303157216505078236475120121510910827935645084389699069470411622864624247960282273502602710756609892660847813153463865923509006393382559247762947415851715131595126508341598141358093770251643502388260637834805780504473696884041947302698442846163636477249154974863670147782383657181999362241016240730531357901699427636123585534739114790518610681993244886703968295248320508420411638883693883904767730108373673610251635747708130196356285928582646038186560485259841696467334842512453254119662464197655867007108905311235814329663215443472672522619350894327125872182506121158741969298275671971855189263576894211784131962712677043217571115704779787064968891027843764011235475059365957471082317923602043360061735622455046968748753628485809032839979694453815670500750222225093279470166550330348077251321136140970403366355116229417865081777309636111185488823906040447911369973176700424709514591342325767972826905438841374057694352961092333401118271591684409400685766318417799159821722433956617074294929454354457341866033420038642120850928885329704183684531272704773557951878038084008234377781130396634022218110694409994206404621340610033875452147955033881179584950916416807750547001154395115674943888248105327563213115690630543662093378194016442693556260918840235234983323608450887051515474802096227170791514666626799043067775343526368202127524413034827681636641633655227480063826953494330980365926888534998994186136663416349656976003563238007607922688051497683070825545015568591485470164491320132285445775750863454646937042527842203620510621667016929216777420815564612085808873038986693559017598550416466663016440707335642984533519962402806829373607693781570528874702734004757581878391209011654548110411722374264393697767550514156326684093863483419291315834095528586165366357119927532756511569161287336900422748033936591704298854189455300132023779885371699194508954585568043506761005411613452138401650292324437292111286441188815850020838900228404959266228282448379649407459683510842100940938704558187306965282260409178537027110041570516601227438797406610198912937882007338751742370693802515070701999729093743097214547979258421815571216121215954905765720618285865072597861210464425443040986256004974778781502817847810563905685468626912834095954137951183302870362253912445703398916134579688948145587448493470173059499090161941300954151824052322448388010516120060031084708776496148600915314837799902719948045680395184926832460386488460307638657427009473876138764143472045468483229237485147393042564109844661893247723661064939585846436713205733546817874262929118391968428242239993809855966106526173425898523726548366972276816429620101914936775662876086925489806974859090900125740061939216516075561950467835102313623647364803944558259106393322064534646475583024293663620688099911828138412943938291054851709188345759514244218768981455800921053535219887480889370242146738827435800868803805740413329851900062551383758738077135433088734940728498431146830531803873956874058285009363824133363977150586976219497305162703536503766497262521987877989317447977534774921762854781046122677959527709464207627775490785699857009594712144085167915946241774230643965268695016038718890176636869652949423430881029507339941274023149567807960590537776353495910319877456781482050411295982338964863157899915587170800095545077039394845768367457128137036037384111810213121278890414743090968808855027975666318059522137569446536040135207539938124616622436633812435214375997795567866346533910895527807254224782779248211331968045811584726546859591258285839727550579567071018555259390433075693514217763120452640947153241544685097775823288198399154108458570975393508936892174785470718000850479096895797252713726995542950836431165701125803373362686884023246963009150118102215600877342537150655243048036333145793002955128568845742258811456160154724222070779179120020082062869207621136916024138394539992487083914122226502231394420409224036241228885334144018876375182730781891091649992853136960954560798066735108718406641367148508092003148352590561782636869052662455858930358663043855177292342281142982579562175894592306388552364677562547399105141837012117545508931233100938001099905189698486355808196934901820363280774048509577274737431520038306694663333188683820391992602236289545020170855947803371104070882452716008590587283450068810716566670173372153407709319629288476367308526228630719412958970449665964712834981155631740082234512370221951721330908861375321710584116048861657063385548952929130874944041253805385628736517110343507659829229757643889957152659941625260618752364570278782509554906431144573309970396966325590372216686912009249990477035276069283829715431389674891108837034780078559786977601805319410051932318367388265542384592852705497194788971882953654448156918397130087315667819789081379096546557018041677096904862867912932614154188773811760995985112502353176578590614213192126057573477841932942021924896031449701396294567776502989137717162285349522436056901166344566168624636123267722809727228917189974127260232904561433467275197747512718577614353501225406703547911220758790937735471896510470186268545500903029615870784770804813514191022560356856448271591403924691910217312740158211221780522687652982107556160216195365921307492094580688338575140695757987489279597836152854605674981956744834691688655270001878606062715079882654198329116514250783321788084528023569427967513132162450971770494297840266071269951861618908075214879323458141804992193314892150348270883314597108526572152760797511372927386842573684237816830332426954479985423991267120954484994785797051137485048120031186876697481582286178651613718706656620838641743203306956435264043646573995195755271548726826809295692016784506784956265091488687794258554229740849600656885967634075457784154587714269965413437280661935391601136165816288825462632373684512856007173714720235400571710426889729413007114175828121617641844248841182995193305088503144648854855976501824662741366796598171829218409801141599844017801034972148495400812352216420078343187860932479965718679572548104947379576896437062031995139130267946260244729461685923877470376898299506787884539206026612276399429191870850930354618283765155192331616816786778256895658471264411421782826060586735812447087581467580496604279483403905662016947233577185699108647054669190704438034526392861728153508531323622693566656877893324791191723918409028024620509619393497027381883569721350835987913617007687661088689567534981572574522816917661407935224586273901103326766378457403614838911421754846124007031676257402082826527933681833135318045149266580091669908067090977465975804785191329190487102878655955152155072968306634696862188224370171186420109983309785544341115952050897190764829856604018075772779837034167645321038031848608056490389109546915137887510230736705999501411397415392647874967914783437747689257785628211070357080620686656388699219225833792831445229869094179644231820087868557758624406900159522225674785380022196855534664374216295486726992511177892450240696135029407423764687309991985896693613141100980734379960601268816100505073643445190055190058330837734591470813074706227132632251289429564286598438344614949857985943379279973090830151394100155734897603851112157923163747727022666159509570733039816992913847564884229962417391981566713558414343824590760000911261550359117825160062179397449757140320612019272544107408727933072201555621784895901246864909169893502672932639680042505546317050745951329724064537229165765687540397925921766524417531306359559154098605480039633652946688875314593419845736690778617316143954120594181030411891278781269575907698534735410979822983250655589805248166630199574448380348947417813690360012215132663380918380897240294292124255866674101017233026299653259064839248352557157872902090971200857251309475365942785637163757945367381947942228169535978295633548989179118227914607569448686810297276683530062229028482130195121636962046278353995531946629729040040972831371910689129155288355384536446679247096736644395289798248348726953372436895377380249986782621233305824515438550981444093038745653706844378568720940699152473451379128764275017524120409513418389492012832818724117330219348544315038434509181117967447433467459471192447293893805024580192389359513207365912664828696307237187711390699287950393408984045220174885081611641432495546938822172852432031454202396612861502785831692582117822358385893860972623874594608656032824230097097832074934521828794404380716563938956483957368075457387426216838168197001711893566259626986829256663878286609099692701960041148068237476695157380845656111261120254780975100263908042957385089719697634491920631360775097685297458493307530210490438622647049182923937293681729448438930407610969182638622577863953133823214242472959977502718679045932960008425990640045653370637968535277989395288720053129853582913055533124221093150117713817591787368144054959718632064388288040206599743262421211199666019043426825489466645503064495849881577688237594286264992996288450024480440086059517747082467444022957389487069861310089073752605291130528784093247264199635090600780552691037305514248647917435730057295418006033828337121369975833104589079188001744075968061575695605966556157168803186720765505163608026306230152632068050328614942849313492994328695349133233596882805508743951613533673659094008658604418423564840346273823236932543436718880178194918949954610738560216454530482038615696563116259482916481284503373059758640659058163640032952843563728811639353951123893984634068481625727477835945203773794248156766696926432554044019299438730667906944981607836713711385466051197500240814907164721924359948085438904821094132504436301829664764885888255056733093453529672867479593104787998126754754004746935717049219243857220547203195872131338522593488499173030445921743352059437327888017773768520840902505138426832601575910023127592823531500055416126331637650893142045076979216559900882524701372763463014833301771572348364983295804557422926843235005825305334000232555972951331263205485245498872225279619908776168731135033183683020987606704290824621691246923106553910097967319997418085633292151703525166461102245117332480546770635971354772763689923787084741551660818537442244072718125000731872901876664697825308901477657587292354936719972689771054704034775373230771291591896351971646275738556796679685480774135391306151939407845400722885431504377358740932981521008865011960967726237941827652076925005609598498450987554603154479334924062535582992925943052519067122068532685677608006650053283052345830679050038112890629436941364117557715208722409498875114446222424884714648390015374297716375834875272831450461988795084615466895596616424938126884330650069891420658803815192515433318850697532264798155237840266304804213345808056707320210132673728996283625919706970028274604418286068626728511755605924946493752471141279261744609346938063383178631112707607250213808360675354630202720425626557127512193460323914775465925681349559318745236799010147869551964791313052460876768041143350831645189669337094365800049231106676902386285666143733305442671002777111075577070865064552206981218735916136304892334640540579496528501066903983314476461822929683689888615048961889180792963780337688812845859555634583198105782613172482493296363199001355913253272650228125135528677150552703194969836993207289444371853146366512985783862986163904888722720954830368042473161614814793968323385380109524710160623150095854219848486837082620876055469982097633065848204088387849085616545095940707869902648063757682158878581674614246181180938464317064486521281513277521853867976956380954620102585561012497147082418708148499601461955962405408986854047358379721485458377992198798088480676769812394276417218575299499552455835375850177689140021961448902103738080166547395711765992934331599229680120948328677422510303190784249896649645461629641033131728773043915979936311380007666860316830950828149069387457759852402936612420198426742554582524498034797438259116920509449230086924698094914377193518258925632685158856159225283786414494722629457571812482794465968752593350449130497190903261552374819633311540447107893695404365813373819946601555639155850746959077254483075108655896156289724912008618784712075462904186429869571825150236354213948035307063452450336507145272879303299255295800595443858249236956384858398133154983282905211866041154575795200836079029012270696576186830809458633640894341541595272992068139862397925430158733642162628532213927805812397438048085998341464317506386941395616411618922904434254026029765047278666367393931503993645036302396175941404387578155692410221491745793633180842366926804259982765292411549556394649443791546090104163634211585080530093613593040353821502602311219717854296258209294573810192066558305785366651466083663059858034360456768828913355488940387154238910131335548074542401294830438515010089183234033766926547151898193108692167821126994707987745615732808019039405205853678954196789478595467929806443294914683612388874631955154535434249898139101541946395065537520323397560826355896032248349430755513141582902683270862224431958383340184545387199961085668023932213208341505073389415641806677453398485667065530059105207693545631122768462205020396310101011963847051384698060671592711232889821416410364911556828761178081804745471387715622126658385969626064283948798666201209251580885754234929360067419080683518039365580305603136549602214091148188383946890486167202026199025309679225440783692067504990121804618462857691475827325738278293319614302095222330167506302250374934284946872894989176505567741365230132877130164592514464970448823854556236369697047656868499887396942934773123653170001882735243196738748024668582624059018846077355767985999163791830974266426535487941575914622827406554406024300024577636697250948156478705058045103009460484908682929960221842405217521511034743615297141647604294689322548891290593535146258199589321214646970416126192626740456406030550188139607781268709844623879239785624130823953297161752000631144282767184521936415933309112683570988979440856626901033144951641934063359396893318293192259595761470016698265099977017025308301352976123695663742603529257413159566609855046716159608075716967716222852506742917795491187771071468869370229488980237791895230281777372459812452001077983682463628469195158019874847321976894176482169615804481768596603684603174630520118911929211700718329625348099933947877717747637752881307249858538424537429303308413036126855577914108757904030319110314923027726842527088978849873428734280092996240523615195829548985266491528922967473692654732404923077895549653320734011055702720862191796132904733859702328031116804913800807534923628277049485548040201539044152168764082698740327265366849034467854543596713105585595574265520894562520432973897191683832502942603683795889756824432324082496865955926686309763390922866861299052117008725218242573331640821387413930436445257481296702196886358942939580056897438849086131439287418532053365862558410927854518037154477780441812610829702540108054071368983421431886943391607035649623270997093955962780297021390139928249422361445795087970211204603372646396150065716390205770230679523800592960292127999546521211431740920618459717371326094987753692069661438532329433356423220021963884509647037709745948210459215932303285468117026799452232466711577860828530601453637572881585065800188734527384808198054354325781812158334727438309926711480436318465567559694042888135902014362611539001042885682964700238707777710679328677251551409524826816571822633651757890282490442464338530430526378814954345322460967207344109769201317376743733701870193174946762495771025561677471982483679456295910211236343106996513244952925834367574897511281384394691762936252848736379395450639068688739882153126415322536462400598886971682570018979924079029506381108106702762684065519350669114873452145896222850368565717520728058829849345192696897891684770931123787238724914154131933044171989453672664573879978702985457127147217363568654244538813436204950244821922446381953480094343069798939188906169497328507858885491182055681255548730394018695055590746208173577015081048809642156938608108334151706271911471095357681711179797459391985438123689189319294494682170500077020889380188784326643263926998693246632729711467520906902622119689721562252612437520454517564896011318258267737188561193071949772792706958891648764208060843201719836826647851725227921817925532976729808531861843923119209492775102760244253241471930800839853866388653842586302184857463838377291519490783926847672048836200456286600129376866581283430516827905440128505849998162406232530456146419676521993606858193489186164569410565935200210506735798669374198889690995065437475634788297486668475945614450340700869448815970042382860291616146827142961355549562082943805905260438766646055441727634514729476488117235138971300827451558133604984055848599782678502151011182522858959513521461634558441704242561692904845279993531995479719486694328183356729119839642256662391110852930359034395349720098375145692498850196816089831143487595965715650559059294162747367273767353801572525912652697706304556886467760783272162238577024335188601835128051777639304497071422426214588349533415669957328535399134871807252086815700244346035808118814529868262972875167783880564899077953947506653890799237054123487185660374949452895277635303487424653169912938841811455655909933984434492260038388833906541715568805151126539828769535208306059958871476902387478599589127000936937033397784271180375192361341363623391904415201012467458975974423741030453235805759232356149464655707161711686326619662585030649776612824214617458197832259052839944713823500522601479122969654176299903880944612674149282323244589246469004896555857691129114944963849847556515610695085258946006872206697881440089056066102949894953271062968571249302180323719873267637917974655703349059423959442054737613740033140529931010572705157213795322390697497675900174978379002473552570298118188914013349562418657989326099994684078375977479964540555496123208263455190557516495277244660784033639148054329968053523228520665950588369075880530665884961348845439812589994292750121284377557146472927921844927807948017773498740270802245174933184192392483959146233705050169707086020773274172554855067606462035486607665243561536748584724058776851454810441146246765562162280544387275301390095213483848301603601172276529331400963050284581717067551259902064317744663073030200278254426276705173264099790423188027789914468692586244218630711804257686152741872178681644516549897557057021511634534809731240420337629328013076216389925198018801604263140479552481868892185262292109974705965785968091049530778528215416730352290018878438751443725259400773294184521451161035840444009983421178895367737253958457738361504094745350211421206772560863195450031171443754131537101628038522123608251476950384988168112487820249515028810522196499428999079988111543110619177959138214448875677073818081405482601300571905936558655455264803828019458561774481003691431382761795197618437760699685813471668764695636799024814140765997492823873680301828585130787251925569216017016256978315613103592000377720632424279910195616589465871516674782749590661307866830618901942151475243149806036693615362185116280293542641321288055913829552649413311226248763987857322607828336265125617026335724120321128350263989252462927754737488066656557192415749845018099050054008619767963771605320850945734359694484046831396721163443492551726552327498446952017426262124559682263349196440325233502408606899922216306421808506637938835889114692876997219795342887761305312998526687917015982664010149939491718155471089918761086202494227755791153377688387722078995072453649914096687079427198413150379360866007932955816164190093944790736215995177448866132852717877244770631339916296180638773767135881155486584472760867173478088784344912329189320001196478101692216312234992662531432609357655748921431225886312294140237089332367873566432559815832548746022524693136754459341051100600407219229662660430831066595177283848257909728746866354191987203680238187101546055195864282989991276416268978077570655908595357229318828553064933167004020478850450256636268898404574266591565469230624443126658466610575372044656659014089982137423658892629681203225713553930129728355400498160912382265183043226936830461166357242006574121823189608811451029217453837131943184512587592850485411096286730194206059278824681089446853802842104577844608984082514986314706951679451948843748394727820618764588433022812294354314708907234934721580025932252072946745541237933774044958734734541462568617193150943292264902246946919056169873081730592402038847526299304304658043327084977369510358402597444502867595684449749731643394613374366836047891167265774319368604584327652450177836676721857625632478798977341783443295070333339551411668781036932300951099795993072796785572224242678315295956893207718721983070622711137839375482508285891623579838700979951309957728746055535346263151037346818055721359411014976349705486509008432840138032169341988928296131554242082380588290573897502524931335497733310214409610980452014565180381699498842615014700774875542896288310569723679688965664822977958015192914506671567187520278565248089531867209021216626043212344245243511423027877166137892820449287811707319262406230479927495549522822298277545781098079696316916786223781847290841319620083832280445890154404125034207540543699656072113858664403176601670125553338425072006943355908751471062496999114635844702780461898686319327530642875952621720247373716951246309312464334058386425547489857230237750778667519377607298716633338619995586210976965283938369131512022360488047485131453989625044072516957770413098022500086994195772582514340737084126036709219366494469301385133435433104776949777665358671004101615391862698494177693684638490298327263497160541737743043915342839399119106566844165536829225532980343045378540026692929599495323512487929070875117445112742491580625225650354352708146468758321807822851889422486320104238611220342567146038818758078932899393519699316118517870962392272397926960524773303791756292318294453746436063633774913831506449400798772187654794442522044472453210343774370190014632574439700022308629264565298524727876714887836003719197735509520767600630402727853353715728605934960261578368404014692313395810530396307036838093066960012571207966869005962511103602179564048386060511331121586659752378595457213169181460520099377800508039287545919919032998477755427493179261650574070870208340456502326924688946549405117860380825740131691933691358694320648763030801457664781857841219349859578862239517153956286936262643523787652083599038765040282035863756234385630956891813192612067904689656428892122224998687848874080932807548574775798021663539390699152578386157992390178793904852288587622793793481544037909315803964220928648785040481430343375126630970858020907007375753200747785908823751793527222959684434702133093897694137648188996907663166778209871042251850739136726416342775340184562886732637021503000463283571612167134206553907402832585137245254065594213563456818616894912388504786856994553263798982859653539581252291258572115844628089928057636896908818255834832266926850425747383047718761460272756773234747963788785229590456368733243550878703775283747338611718655745404450850428773461289009465119915563199477618073324038154118806213880060833116913909893361669711841235908848102768270247840815352164854934109358250366705244456722812150500595254392432799138513368796140618192878408516718554553255983190847811768712499151946640195022961999965742716584623568395973897815439727716934765769688555331673584669373990224015071422789842910811381224400014519315334532265847879523319158393437174603528664907821887412756581434052024295206767441200046352599977016884353302617936416193126798995975200998236728441555239412739233868804527856104701336191157611468820963223202999445370149258268983358831460510077589731998709794411055338643780478008646956357141823180868893853714540133139339565587136614871300512209718304183334420967801619107684272156291097295915353937351254338453709476523127724487768440738667592585866309152433099117377277236529505599433164004077501545075227067332901901105619254697986311697077787552611035970476416429541426750494929347615154256949886179942304418661872061949615487118120839233791949421486619556687894172181224342140718189136579600971469010826546036974053043066971908728829008391351436008628690586731478085841579684591943248235567200739013119580634659517458313419442060581289490375627816975507619989656994650879038842310445789191357608718284386684471881309059796629608089506782989143417631217906633232909261045432295696645749711102703226067431005630730083473744153543095160317613036867326616296330814050186659315236373540122664723843482536775865949216752114203379367231896462516956644575273851441667545253124723612605690736418484851585697097871777984125380149230388203567560067129716781963009680373881928677709843983448059428303730998447118696611932049094665602483554123696773424115078675623225606490715710954468811200840709285043360869092371717381279418397519015296315072407759519533980666580113405097416502868583669525153271537983595211925908695318772806962742471629382156150182501055937586924392927397631839063927248374086516227006490180595223283654712459734019745545920824577127575759553633636232257868293166453867064557920467807349413025154458884317888590648856986195281794460736761252224432154175316617121047695324508178073945923216790872525575868045201700385828326433588921144325215767687134696515329225162229396996050475090847179410344671547675006794626936907436658373778633520123301592210533857379560456386787764755826887052889138448048276574650246462244284317412526668997238301840750393623498213669820744562224047941205146252319464011942822296447423003061615503237519614713521102996155316673519903844673206733149297194215279990780995503165227081662936892025368405946235920151043888141167297607445254977496404306671913209935919607092053734020720611745831524172055396298170910696704941285847103285666048247101556298783201510295588302270103415748965047147802555055077980883916196991947267972984724392188617689388712765520862380785159372819470972112671587184476369391348193312844248614921091827235783264174898387591756483398112548340374129763537795492463135138706397647952936418097675407273115072600824366616381210070463073519544908943014009710356204196039827424560703419464831525285251328689486820506421739038234755067518782310766421681902947528012160895285201777616691822105531651666103289422854661104048662646248074876618502492005709634223669115629372395896770445871512598092121249467878504457517176817181153009183021687050801256000209139860111533666234664227817790443085722015132206456148336716374427157996150613499527939780626993131697908699211978583997092841028334679652103692295237364082222010112558731282373925941952234892529200155581136289924076946957377077641903592767776468277161265945487083993400614387863525217447936475598614836323268536129287012418172020378495273189096667417374542974367933425873927485325223864426230906146700006691742372400619874755191568034639029788002681938434956598193486626439466630977918964435993083047290069667824993291679385207744718416993535797073829431642029198092111977248261721292464991579732662040220224981496059375921820328254923599121119982588256524838654041245883701866819839740664773724432540785934086814560348431825026876142193514335674417928580316103216854944679570686428347004044734656075432398109459649617139493657707449390598876031021319809046757527482905473718519132381752055812553519232802467448231568971136993680044822077512168499312142273911403531254605126436874983586501084362195870181583857241553369688401770599291229774602229625220633348639847875787527486542031039131436892351516462719791679186636955484185816185116345768917547231707746628129673415537494824558250892350168594953116626327428765432879400564961930091740454318570428932724551040163281737544222511355303933722819906673238262467390186370402450541521526867656084395582208848491076485465546801598334677019501252347519951110920993009137661384449838416858615173318759482862282768013876025953691451665829189860444720314459492449947573146401177211145871391807460669954175757187252046492966053013064944508773210114177858968944354467930612887511499411920939902082395507000483490066800336025025235974511232939008463221602910668733368454955781465042295477865083860506274118536224262574789023668108111621407396538591029376960111097805824769421580102844711198149040669433564694448224944595274173424662631302558833349154531035855702903048058250608190352019687957831506570578077040968385731201683010053135441563858085015407550011575772077070449238874292125332210895753339122172919684505167036211395556954893482226248085913753498894024617591690400736138874464475313486411491767465539157554325545974869900644837662318589320812454119636327308717758999420922105790749710982886500250955765826162759019286078075077770548457684990411658971129986231988075928037132788496580757642682650265708943030488804093003208494442023911065205604289721084818334295479588341924501659163480320945640655219317310113184721532627504849302688995714572672103237555461806961299220028987418301624361952850158242132230817313526088535476511871610023996591572206111889094605968645714660387344129888353006179516368088964584633345611296651884553462999406309640294625939738344388450357130921961483213742395202198653675580377078499988693122091253166299682184110879207228489552846663879971136156614363376328290569015713619150758086198526547898917843857491480813007083162256250088282974597900069133596225436170620314551690831302320199120793551086362699869831546065938425611697669237006945841921098390056351018280168801081986479679060250531460078365996379225603881862510290530916440335025631284010278025110879307163621122803254840178979730065103557750409875576505004150032527390091977562242756578775936124749229209147275062891102151919543934265985718042742284389913232526256360672452699931029924464315477496322969301155352285200089794796918507417937845289565836496916995316034557617987538531912009562177161696860122069759691256228181023019040206007238501240879135801187678901474835457351769380750120441411252495127074478838571664830061023369673619582574562374872542077028877325787990890734920264317922477016540378473433043297890594716756483961685894908753392920519281921778389510938275046211884958093784646506224476479368351950397338852670594921433213545962557088986064273267186183967805080805296055493009015906035874819860084228615342993282781444549541775060753762234080438602153711732225651255899712476877995143911902467388854389306038392771493833966963469670763609496256405434636208403789746169618604243079564661869931175365272603031017234595817219433311946782447146865141578046311495613552744758883219366274628965225650941374788340912831153314838178947809508020661210968307559777203797452033661431150457233087054688807670598162864186509679423661999443694894827322371593772833493438546059501107082226912578455730153058403358370890913741163710986762136641537326920717080191292736483643099761755920804031589576100834886084311543408592724156005477223380001091605966597590951722414485051048495576097174414500177442423886848951141749271408680378855297629049360848073637595249543709230472677926832558192875963698377541261120028746983388060799116253154314992507533642156266106050597642779513234580253978948281738834726781092792279492859413532786458293498349430275748559445145659427177644558372650466624008706125410310414746726326376626177083353479151724104703415407037923037172416578007697209853359560570088578736176131614410693391401692398838695388102366443347025033474504918213084271657381768452021925167769117211988782997997501355496910762458340765642579850416576201686170123003086094708029520338477891154476594081885016016229090346760113367214227722314465507462570000560068045269791749919986505874821343498475971376852625078447112619123084716503181900817646296102079158354123976640732682321622228471483939835107005600317354071323788761338139469862367439727736960480112400837808532122339430177140695251112750721515587256885891199290541984394768251379710758590873058806536027173792914460166183515836961048082891092739921165707021019799749897007904524198492961986606722657954242525628592126681995120463628402565995566208678612610123729702755956521554034848452301002079493924887563670861133595298945240104263764030089677889711768612641251411364711353213437445970801968299558352738610504186130216635667431880533920429952365528434227207370999605466252535320623307542197808733097829590821183066629002962450179357262997922063721515468641736383197917015289606167341342561088839775212161580554804732539767389100403268143672247925267932861081724271233979710758153479025029582140969760728789565064888563718495727751778035450430545034561480727899235456855650498518613103822988618475489921974510529366056762739928555023894642347422481806995828390045090962455352413803129880745694977301014764483943245172113255341376302333296480733788936550038977616906530482981759250826676947339614116870283209008109891726563581273153402692187999923833489028120240572853087679676420996040536062492950493399285746654511525773081997009835919815107398503513671797704497257189352313274110382305386093918173018192515307207361606409801223251184107069973473379987414974438123716482767285075817468007316965147396714247558761432769890146449145797880663699424897722086115174746741334055998575699190152541128358599551465690858098032074451952096880875469366254033295258134472050238465286950563952533536521191821403483488979500797939616449368030586417890904296126537191194739417071066710164663808508414164433428863209620161564220445453720345142346975801724893659057531914245969515374713640078469307879973803734192308908712179325541138283127420642270090835713943015035736028999374427604568517435967573400132431864410710992714859509522651788912829181925478459725102342181795088017935484955865694694406252638807591258253891403700171363137311709980201121866354231999582254781944977822635205724505423127557098595214074012681403025289990795527345231027486903062573644814407800580010440430566385648317059187654623871172220710178558299550805279941914255528933259440185860408145782243120549751072992643823112180937232409656333735368366095886211556611680396010540531004426244772396449424635940148950529585349538270776759855359600447127048816309413817103516325226655248960538525382800401169125079122580401679322480394745833184316648735993201558439566244968538613262724290042781704505006769843555834489624052398187642121327907434972049065160676709260951919593772190944297627585143475956463648616406457209402090352495510092605030477643573586146079425959772870192783080192478679217474092388193291823329802007686407578553102310494027615331868481160370993467413642373491521767407213347312453024262459199115409493163744178246930633667738512411017858347539018232931155787502396603902191686129569413790129898643792778981393560456546544729572938750448520628026268451181194818526710794909261911118330075548782754526287976866496218767554015380240819695138344449768233381323594317007008961625532939846326164002801852407296634700660068906664592221954801368834114115935996627026619307337311604866022205444829448008243335136591398880359080866752247692702675409903802868790895269078413230525116730462715776175539684477595025378820728934353033263630052775038237181647017738680768262190336174530090519277861999767539569538181991344776790611209218195057571978316161985784344142805902320217460837742302523277092562278317025583686264373006609820067889130806920487272591463330168219273632873192256635127181279832471293195710374868144251175666618268376259813533648024600237237075034742497460856665060466275313289811163443910308704990870282564889007829027092576299486341731450700297036555659807222720771547561097467617934129233843876793481928337294162466134733343638327381547727244135492673962013392024289251966760068694223244438774071275947834700310813047872368496864169889645778281391273847377270634553329076329495307017813446673623559517533139095061490450712708144769840934810672653056393584058775554646025665204241762555780189243696525745545490628927793698798846793790133690929810487991885067085237805094059629741718001256598035842524622444178591933926695142388549568290966929627765066806880578060252282842296785569243231592444208402746300966822384101612862197001468184211304896023141320096953156984735617176835878774141580896067581227706414738648858398683428880447804802036610780433110118813362191235707307658896631851734061886401525168696327490206106605944971530322680474173580432060109302053876946825615570695510850312082568388510454064916978779411744978676530597101111951426853000690000476740863440010984949318203111651932524764665667179563814602783511501387144777932653640860831318995920364613074491108465193373743903803227896365011315085560690116512090682657664433243515330529958348798489976350974194052257838932203062231530591725622635230154495326125106225910239101964352810061396193987970123603439854497776113456350679338227250944014131283581301053082278182450832052704288156958077495212089177191210275822815652382948290609427480454756659616076117223672426586115890760510131951682590276803231197311396272842338699734745407462244952942488184303237005306349403882281319249656562523142405516252670892296213086801439222522569753990415550934307669546168611732314619843869251440490655234683614381422133526097644587635054900607587963829001571095433566696306807851263131341795207615543498885654786915128317242897662403934279209594349198779036440502471662474693536942156252123041333500546273551978193729651147380111781900219346715806200516652473677347629013728669497806103348470724533572167491192630413480762454405033063788914444099225400761215515088374000856590862756756751188998749645948329203612365662138496056154925832874721131546721235464333622014353721802117876263140288840252194767983384327811554370681811441598752694947905714810594764901535700284819188509078525782776103376792281102567375728848209573068689479898645924967194044371520705990070601031532804573696492779783846151031164769859059117429663852286597116268158469661197898882117461533571901560983352834645560017152625127273727744182467082344125633220816336326680629834215437316625602922752490844554290487257087547235477421016167080728913229727954023264477175025045236446885089601491395640544413857135693828582514942274620234961019248429874634190403478502470341943214160436869550025174558142771758954161331103052678420430008504283205277772907382621635987260159925337471199119691331836971801958905901987124395824621989657835827530867509765343356890933906148414459296843772597882209885780794154818439203541677457194952992983046957284913699801130723459165779329180536097556549697119948660308941700943416262054303961271989740021186842100981596596071561902642592261056411725971602365475090600575988069308741878263103703078356184896937067898556933331985892001376743432108448715625787051486871242804533020402469855697225336686308710556868566724973882401232650496826831821117977866688583153220420826836115564246105263316575050083129024083861279075507067712728056610070626661856767488742625520530069053698483702571618033044937095866502957063121318295360988963387589546751191604928618173560358521632287076221076936309750179773601468474799248976947435819684234505659493663989033997272256051665833618765804563140702155625998601469464606658444910929410034838051614189678916008130553919753452408380925480516086730920539845146650982651854317178671916058465799313846507017004754806758204841832231258693697712693915773996624697713919213736548512620697920215571271182128598468460001080214194358323138307186749859555300931044497486053151458772555425259992427116959772955848359597943627159390560545278829995508735727594849961903422248469877170641439701086541077495005419610048395603344695290904217685362392705859451197447240335408069093992055757934400713590843975486358721617127554383938462252082495180715294011374924544117688851482578525772010917471899228523477363399128679095204830347484379147726310121601328350150482898535581443618338625418715989836570973849296757659243506818012471043182440898734819525266173413306127643984542439680692965602561106983662655646590004798784285888197065895444412119495647515396887476273701997343613303822574685576739089654708010871202495572241217540466054502392060389760283386034165572344266096101931685677592513301285180454446027422975261721595164200661077918600864774219355846386806043503314056705137206887782194858344395589238621395907511087047333219417239603542522489251411126445909802441853625651168055530903612888111922418304588331504168184475717287536823916680001485628476090369674074218937435087239267537643599609406544963144874395404074019581999573206610829622323179469091914576573087187534572577432251201618133229076032083390879412998553707580387066473058577609193035681414194639919865901835025503437361733071371578895233081474104642599587921414452372428703803053870470508737595985299636928824239205096979908123965238305345951328119797870331061345769969195399843326372817547461422487093386425147225042891042239298332222035732681523525709889931942575562911994305594495228553530745508779160390216255365158449270640385554910509385917801283345399185741012873986851656360104632565738443041959679215277948567940015392989365346376676879657457408725399722453761084323282657676906037392394667768042057600214120309584122342562106114556212488539711962024747586616866429169547603958482633194883645568497239338595440601956217663868284667792116791274466635621941715201036393016880016532888275584393687147708420093038717926506945414749224893371999517764146250396462383422036960101121086356413149263028479941474148971694339425946606399503762119884423879981270752566154993604143940690767399339754737687361072826186722290542671849976299582006202903082437941246305942773955963912858188841449151658628093781014347222783951566450736362832929887994347764914585847765668241028658804108692433818122346428632235712969632047504649037792647939110673838153203124793335627128647762839690707463524890127412630896363882855272523353557324261281604740653123409821103024728901226608992195032868062665857240113199130910929197764942977091305915976324692291564416031676583951053007621961498979343286822359531739787633683499619012543231850601006760205715169247660801392234068626054955405858261391208002071082921276254116590188609814828138353855157659312339912802599275724590811684913244712169464730034635347330235448418813663220560948465508028660282672547781554145593144961432232198074792767075169090174448129509145268243826648535866509268923433425178681229844816397681209606005404079286278361526912092661956375944649906760309255351811041428126643648164645142585914350650369204222281056173616618222464166230565800152656153258351188056145098240269280968399708941136831201544331012032706029067567493369385499963233565866075637628877730509385119580621579235508197131066107572062362121649353590154673043592936536207809137183200491777191748808609282501581397046283036741220200845669539980286855179129373066138638771255138920519266513982621901082769638188700701461814282423056958934736262126987121026251197355572484749168220901028308892776948026835296301768889130908952060271344255328963758842334983471611404991955327152752166003448884599126651799644904238668092126630963049948836430870124242297459919302891358359622827662362531329328848089770650808626372535346168797365466496308164406070475948235403982358198908630379358489445810351258423302592250919010694861391819276373760651552384541813001241417878025415803350883413012270083989484200746759556855585853895644946442198517326015112477440757701512165943518926042054124382132947780646506680541700427638639811407356983276216454003388433121520274236341455043334249827089647591450145874007443179889874287225056699052344613511002530753627905298937255648974559309548133945140605694256179724425005821717323046590740879588584262268034151379375917815273987691951301462375253664587944901059968741635402304625714312117613014277258516636782759383840486654624384012454610989051608487839662646988337138172357891160188964128354087041211067798367417952100792493660333529188151689934100649347107107593259497601869289175856701730172854448681731946753003807434273010171849452038041818147879729849517883230342238135982258781786994170355289173151162351569152688600790980491112928456813103834339641502966745812445120803408454533123308001942176955291224910941153077980556522245673078509188564083511821568655625845421048146905193498120723694499347998919048908024862478627694011941144868312486987557008500871251915477084425599790618982730115653346351199877854547945142074025245025324353473308817142614410608719728144195996925031234365488188403457931781815184096916311239572312441544687725201557995441326245219391740444135261239517727017988479593860172844484215856892900135813860910401824101825165120356063557091201623857433751387064734961544480636051283923229395621605468945696546618702148306107432101794701675338201549282666724434955485903919521120144176857000924007711536842697183316183434753441813181858980816861141688649735154730500066029175752615158371261868018728793936264349245620129113475536506163857348561306582673598145957278543451655551325225476213476504339695484817838104711932996013965149795476807356980031053993444708462094618103234706838198611969345151921087362420940324625702850877515146890880557959062687088650695868964054304035799925148184837349082353570809044550601461921543366954505571250084629666870904043295371259903682015914418832975194111783121905276720445588315237744504285296324353958164293909793702924811880114953540672020626819650682344467336817851156047711169768845635775029443324175630085115795769645428097480805393214407974056189809245517231059148856015015821544233095433367379335405856517887765008335587519946811575465038369512343864712085473231092203714093419851586494001273375493525049348459602603850711083102229229926368181001209771341145333485210132297278959817860449027971091585497043857345338718770393103427544481772877308520765239888137936349540417890825300656434446335193277709103273236902872698900835212377065013907565965113992124876030346025233817780335360873758886434474507080293565776646225212697500589162553773465761773896009159125032769187361728015930159731241069503714664643980991509846046380886413333815103996345854688140009076649321313138391826591457895822891854437760373361846775190966085539874267902581246802193022313557148365391633534566826534399532014008483398816345584670197722266445049248128999816668650260084985591139908065923814022704913372145896871942008537326583781498568873519220764391914312244806358902543994626611532151813528861284384819595801505208552815670483614010825230058163477970382381779328790923450530604109230930477240253447587317754733439704352353525991261264757372507778764521550015192309841718382883647686343260197284396698219132623550949877398198570029468791128555595626246543822998472096584467448450372194445816752477080317853636918927763165735446475722266135166977521272803093566914620795313161131357704721566029246780345643424721443960028942735398092264075651427277156025487053281929577447365364039367097060050813316615843838453652730999736298811467751714701631669975784243091245607736480139034771967838031444992910196812907875295459985240737664180675894015152956566344930691065353764590630765746472960327669194211727342559271116168649516185939519765608883393332879163380521582625160774358263661544822992577639507445099699260902612802098225491702265826338926446537746037513147180157431409332717940987878193921343567631114374547071244530265376608781180859367690750422468147256418009324680626375442113835954007229856471566768375471630736332503176617892409345681703915736170549962123513879195304232686770289256347228835007238622026599097000734265269860143812059872449686814981231790629810128287289646027181270705690416854856605247264387170418871219144672631319892527594152008213364489830352956271184488012310404936545377431917276596157811319107350540113989649054763515854700434635257901093991363485970992490425728621883062546394949073800855743392333267842738691639987617336163435904181550218643093162843781464509546329279701085504196575664992731570723222849603641684726387149303403284735603627599381932833346969591830630918660803029908046277591243014804896085535168385239323986512367462527780747824346552324692531251161699488424882351031945830644549767258894482452352640342110611120220983741796943077260522116083573203929750153395695923932003784897210049548116124543172942758689962991535517958864066467509689492554160836256279839259141925887102144295229280330749732229817842296546816254604708660536703750752882761613530494158853564566613231634807364071195121895742282472218933663708731982149470034146953562179669644016645889547737422369871572418479423157854251120660966227824699527616281705031985967931595878997672687636928191877601114718441108479978149409090237452345441980062123004506037837240359615904734766629849082269652458182474566774007772617763560585137198489743872017049549260349281786338326485216171489644287098301921830172702190044652780450756451704272139246260929721056619652362678461867468697118755359334739147174216755098737985430671092163571461909367489513864956883980161223417388593188493812290242832148444408801909801567588865013018636854745424961474583809679267704006904758392225393629890825435841468986905189551861260479198386138976888984874876612480472545434800498069359554075051998243221456601697493066298629380718880296013923948348566111889218066077692160163930323823813312478177079858047563536630249227523543640943646848173811578063276690958233106783246467628203214391520943203947965766920870294360775982111918597711625927776161061612636288054150970078536639374886664115852869195699109309853073773332363480345342007717422830188772480642859387487402112193237757195784102839805931168865519046494370884860892861794435168160725216347335803165277379078669424937622939190703595492512369274151586716591980903699257740222990378467224724912728800037037595522917164383470862151316443978091845469985979986198895730265207481689889138105943826888298077300199034073719107610788816358639707146063800391019767794539525832476600859774661408074571639648459862751076712334174807844847446506883060424240594290200676119317317221874807478413692706567518172268079015512407904185312686401677385441737121528352739333217650846276813713235803466887477155204652847811918843313314756915938610407915291819167408860575020104674292721907818996275215026636942435622540665737523837741786764985409888606050260871075009616503536230619991438674405382626534172156903897497028766741692009126224708558666744922817645132449927916763074648624493604343559189900745564120917115997869490700819903968453338720195428561427008976203925842822554299105775580080194337882763016260130885735275789584118055885597883601968191888986322925285449507808155690328797201499768335582516444699280611318884153497545335325064044719971736209357972118418926530258164547566006500100322420293817273082113800476776033231570618689102619524028692579383654431285596544384452605339508789019357461385928459711574971766667271679720416084268151775161738699332445999224068685698147779449706300317526372371391006779325161084297991916977678094658235136390646971158107263152203396492467240204019449721835599957100063292705827161970449451888100246084225725427448260515968537622927487940551315146257838096367265721904241129103063089384361879450413221775531188118192416951430770576305901685752272610211878898655859591111343486936730223890478786663010574810422267686556729153448873513663024990189453435985953770577364024490637508823672112538283911268048416729139112926298122045881262086813664054228484282255185984970241969966005611228272675315397737496093289266857316409568125889347886113331086307352671665841728698557125042809530618265874555637179807468478821963422141306309734949176510521851433801956701219582362337079447613825168176814896016042016825203074665760972968119583914987954911278362040458945772359838461714060515889340801226407273740600271508028305532929428044288860376343017442806961026087131918757638697159446907102537160119755590918253082095456269056969245950566279507717396090049223517789278303819275323116253163339162174397894719325831040577927821154413145516086030164509291243406252909755115861443742303831045147803108356974582409778736331732288195092938686902529650733667186133750981688014810034479652570038317726871412275802412323541591482295525765925235312773350877623225539030247315941058743615897557553505516755463575233531852664764328316590406705021683717261856925768173922913461624529550629881194004247430355058119358151216287690159140055536779956183193330573873457267843065521853676097172367012000172856953958982135636508122417891671279769162398410820438607585509014121793908352576981987388452876393484859631948649451788928405488102342930623545473070016311805483975887490538364657374142863279220781635161885890542277816102814619647425535077929684936794593391049428361209799672915545176935069831024067941767939331510408058599788168128589832262005980023006846707378906107159887013923202928610940890044496003483574123725016076138997016560837362232022199321367935918558781052748933879713974750317754660251887587252117499484161814585944608672820564820067126641931767198553816011091628673867449438422173586679996489307333689738387023884232756167892656907759212355639881801860952182896959001523549683011585151576686174454432816221632401899117886287531327735316084592466605897483527482892380185479318359586789264501570148897770541108216374073189085187583234662988523335421944589247609400533267847827158023118577479462271379553153086364937829336463474011373802495661900863444627351255499674838946338430424392714273964149614537166349644226060303855182082863692551851240373006031474310567550857032695806739162560187936485619385589663107441993441112936912485322377887750616078050155868509931080145719885604377159408207412639534382267083513511639518274325452453506667340290691532922645357988689773389288396110984845554444524516916017878493916577822273451885836869931023015596549549500957252516916529889786831103489885515278700042559821260176908073328720296216339289820647376285681237562493144515777753074719526346284951285546786854306030776346841380828357387527229901591486009093117327758472365020610509572140676691261632486752178765251975348190432810401050052508200805641818274739714170196730855402068940327979889119863694271411971944242931594820959345243558852548202521831754903639530884951097113108968364599736072147912673964113827803702633993346251302424060197898537501804663895746584816786453059769766461854506993811976377592520374623263491069968582463885531080212627683016037035009855040906458000887885577358017828923389001613940008924625728392441350293520754602831983460917129221689827579963374577427537897306604789109884142212737537282084374333977349923373349796593440736954076491997218165822299221644621418415398259569278813906995361496784736230402695186241324990677821815504375177433975754576507066606338803781878902405114489219107210875742248214770020629389525835321245882228063035505112001956772654028281771704798725182375499359421806371541337971961293834197428107445563586029009886537445075257410776237598940117664174854479448295008062076595652600590897576772037434202067303446475563252616555285294227105579834664402714758288030660641865525343706976938558580122212898029367285038059319666610456360893451936627998105174862912383846064933358713312579103602970730708945089565545688334245974130870212003957215210691241074472461291853254581308601682851806824057741859346932289808560388211686392708322383528788798086301321725157565049408159641343876004432368347453304878906966728504411494381188715498352819512319613222652019760142486980385267212223149927721173197285140128050838896307121918318372099176142996347709490546135767544540189857873414449472739421145318736492586437843090524182969420853710067639911335290132647680839903205533729487332364335129757149305885183400130313837479204442053392014307890249049410915562731978093861199060534412883481181970507737606216640651595527656629383853643947319080188391446927887577913616279562605205092225068443644679540219973014161195768509304744819791267766555212883202087465070633887211226871103572403795800747878808588409703050018856357554512699446413719593726080279369829886163247416908764006201691214988007294155501961540086252393612645637881437548839352476740290059594262729221628837561766580602293739739682858653670914528904997011276926527081108101421543360002306299091715801561150184983149104515580280723073501974937541212417011577490766401432251320449457206154574597075439281069400136406722451120506364442777008292281671193766544968031586608994273434298679219385141069239259107749081360544965125919721000641336785122267136724609963774837904989913043156093080975103290557953380083513929826148926770518210613765498679067011840200486022331475929810433609480283851985965758885576199325520715658581332833582152766371240002289163941385695308352840443866101069523655968913610629530939573225790699641000600764677959887524714135533641878236473213877451081534216665067814731611274493760973137453248284862758980841641232431796726405096012561560912723079527131099699874071263767483056146192685650904354228455328011672015229221383569611616749328559390022391492418163199807307898612111219873042990143947963074254461901210159457013847237420424245373578102113706662695584742224778354995606356762957014932740686030507518015999272466470794650847618150318400847208773385438991016501690315798279288322562974571928491986334435319901581211613247261276625353073286700173035082888401764256937037579648519455005066304503318964881029434222292115552665717981155688463240362754766881707715280123177849793083405845923549712147798102268927503573174840537783725912603915728687538657916170603433923591030134752441559051304787578350823988414546824438949145007428315096732594357963144579647498202137080320888363016287670482927584896959006770818216671618321820799433398219039835510031193376985928435869619977376838193428451659603431751267153655129326246977555846711226144892811810186849001525259695362012039112678309681523576244646966864621649791633780344920136876953442864037126145765414272484034445035871085045402944614939649727729373082782593820234179342644412337316840868890961596870287543612604163901888628276250634121061721536952202617921255456094129203901521535717881111512577010206357475362298434068131742096592116764341290951347090809045739261027243165694494278417629415241794654005477445224641717056741045387066880018507359386530050595896022014441314699253449643086860281237315203229886650033094435774239274709210888857416233158413784297003032064255261314757981222205632163277989820786277113431861023732291739036700394535862576565311212614480743819404401054144548792537956797300349057189337620420029874226244840209124021547255011421207908399468986708115085726606090968382462838451350490362982949060658089219186321808989407540271566948111716154276149511893026965264425238088451606088751775591325783458348219526162974297762131600602525767479816901753506064350671807756495355117533615390995806446373660290771533180793421278664914919697686918118276749982500077169037745238000768436054501643929152537525911313523892262501293676420696221046308627126500554031123277040691150118321724069672390988505819392222141581828448958430941903421139947960385361508235467905567218013760022483489091817046258277471386514270553617186312985059215230700638244359151112653835721617258509619417039554658586788006564735629726297288460475151516028406104401589048401192025516769133203151421258498546796327200357637119043721086352944136040232386940833427778096019003891213609024355469713232714516481295736436600616694539795073897281983969816016976015939525070639029664404824069254859746197507999996631449303055756586342966169415311247851126277423523046542888727640652261450798238729375248431653299356180944368842219674139256124630563332659039883661609100605518841430905002040313816834905055756464199702099049018811572898177113607905300796074005489999561324829991993398097112815630039876437571283686714880688257512348794634946760313611117293698728878895154212533428946153943837413366155255700795037170254486199651852879651084879979614527115830602462236725531311894624355600450310433020745480496889048624360091135057884423097023358537087432518544955140036288090731409786101578377189828384619582879380963795111444739129963698235586595484854697867872763543162980395387442079104018929662643505645911847485944740183807933065743639596157743986636192640414980343190792284198405589294214589720225727891236259342274536120463439212566079053218414944748079301691967164151473168650598939466813337995379538649112703442231715842988861142859755988791982034074234396798554717973914238964804368691176175066818678477058988979489358275064650164408013630499249334404912997098794139287095966640835295277570395403465931942571592130640343124413516429943296652345000481219599545891606506143280003071579329553347323724068561235846171772993877881622852035659653582399654037465254361345591521514100622477598516686378627295196214710391012832715920537620034551161380277319114640896245769278294633685345218289839431732459251816857118212926068030359020264098627689148671712776940119518579587814982896048300047201263014200645455265326830243732781341107542925772334879076021705786935610606599766965100881796557762610843303141546133045475216725532328991381232716757666866255800321138531204803062437330036289950609882472227009149818437443702280299511819962883433768439053097693678135140870105810887353905349972158987334462247596734045760430488927636592686072654393962016204501611091152263628023547678284047240867044446617814567146409492051655228032734525646058220472511019161717267578886229754378725154935357785468594482734838080158962525080878909004700792787407770168106534773739863567381134410678565028509151421296211666012977982554114035849592079791836428098464663831563472530572232698665316932018964658119308269947594471105023178598892150583474614826250371713377756103439270170127407366569360819940927919871542572595750516233399305579854433704953893699949546706721307381655298061110517081969300989411649162442070701394796560994286939652285375686503071396302133763229845157139030452188097296606221595477234370454145558728036621014286758064396681868914761444100839914906368023296183484402445138615213758260223914907990798229543040691349089117447837189365579847099785008771322210560440662544175221437365891990657260120548778625912962052198135134999679018914126384349935269871784183164650061801325228164030648918349098212290751078247077602128386882472638170886184194595622533435134948613871236768890604902093732599619749786083227579354406966445834813072349558246479017345145527048417447304370201322481622812821967686107165093382110307720032446935042127306542407413254794748077550888423917315105772003542892517607251200457501923001877267820529097181196880608782125930627606992379103777378801338429983225280121697471085106280954521128890061619366094245495894887617191137717550646732903295422685356582554969088900700555489719739019731408193759955544466340328618337614547397317238013837607908542191567825774465079501338992517134551709154724607814139439929695921836389787778552331544105843050950659178841925737178591677570054360084404347648860455626409975538633250334900566262753321795847487762871345107351920258154794151133996161835229087925619995202239131019237609114698489187918058794956218548514746940288223279600364010282239354760487365856871585274693255139628796069229325102352994558640954300064645944090764781666054164743176753514812904256124547572564824404240780239191295203078856713157894953556804268082534076944106880735661670017500610091704155672368038274381542062165487914436475828686033176821007307195649016352201254540365424744332520937650361942089550224447029721811953720762391151531873911492579791387235636358849464191372981840998611033386840398341667998573621929007186752207583318451977226179325586867408843681318822072317187832470265676812920140350914624399659964544293618353420909709898571562691559693850140859417316095358590309759172202509096789330636028838285300354722903598052191438273836678760210260716156877502956682862933099399789032401160715543037039227376639551383112342719906679778424575199320031130546508189484712470387746201418449143762866314590448651972141345484279382159497033231222034518172431606536080331833678608074761168511311908109394983318249800996319918674541989272485234066858491175072984926986327450589666180034108467278823147114043693623669201500178484753415816848521320705381720938381556634296393727919374299067427178954654873898593749159015595407066639652546670752007369895058156422180088909965081797076091611034024884476492908808742496632099046958730887951208567084278941632562493063214040032801719866888152362804055419812612675366050431270055959877336559234665636250998686153024917295189494639129473630142508049915253574505959699132031434452057876301763436327106039768209580536589433127917547031822332260864184504055527162672144829263230812989221813856350355490926197150141986630689730010828428090924528529900778460370667318170415618771688460488809846327962850307006769375658153353086910589028681287626761239492183207932173796571926536275942289188530734605402373779558276441727534816209383320015486770646693635491995867346965964988931069514139424718932867428553117926479292496072894173950222802778897996109263623255280557849951546353014644317640717639891951122176950683910746148012388498794712640944563286623395246172881315061509644896379536585242718221084415131819811414052659683185572280056500684832698213129381493395216957396712386924447574650891032146516438417563671256833760728158649439838989103811165847762357882239293252561003736534654326472827824429164297869384436876386864607906019176800484946302054515157581563929060232067957518693507529611305061082577168349942480004350788039683451341723798183949087582925672226481896459313783730503084055829146612876040381620411701619532237819101535747352490219782111155553564722300463092472103667442130113591504843517795478925433437662203942883007617647109535744960930707352327811300349460485278579849295069074497403029547449262044299936491183081302898351732007252381998834090900492833551442912162221340562381654639602394931058006464684748136362928142871189157226296047351890023969222064684211400449979836796288572580846541110116995227066262563484428752714805575393718151036383995265632686745463278061740840223187789219768370898789930691550872551338545142802009372966718397334901064047698283327503004951518981351040144230481927344251117840595090544238880408143738111450718564543329997212948880528448164092957361114109280571185276644384686241312924035466346543136688796255891407836398371623425274111329773009505870153827004090722371589787732351299582496784909149252173857674599908565593636560467417069513472130460859215406914145690432095023596602838385517306189680437945535580441050741198492318973111013576487237299704323347041758809932926538122703395541037802411940484267489604774613077077992272382813472580159363842112886605538608350167776768614390545779776499070722983676850582767054751965441924378441714496641944569103394630109643004031311223351907945536976493827307276614453525246837703128400183061586531634150255355119413679138073972211144262373248928800107090973645138435674387711404049059742708698688511404190144090803444983207328837407544273848942388974124796253344501819233465420935896402326178557602120294149299390330893543224409198579118165921609474692092868780889061221479892024416643608950100165622586636700437332113827356566991499610794697662445032309445216264480826041914175835689693029694196500795700123464163207217453052792896209984046486669566142095162586685058131761596234697996057734520245762596900121984928660454701679113176445318132399580353943799582462719610313908260658091199488267950226097157863527888721904356666099823387043681560260068722239791820354578746855641045145275324439618367116228878978103822523768687862130611697141648946135752145051479748844151405361666004534902601432091475677342861397291391828113602874883675805913909049467566455358808725033916299387622402998929374018988184943075805871978263162026109182760435425948465346094552946443185603437031864150568200937755505185914857998792171810923625072477614956250485937178131266915768678882428176738423531469831573625775228961479293405392287958481318740744872566362233104244537541665097079866575105331251682044007931565306700886861251942299054058693126590686249776451993202907418676980934411574336952530478699438106145302446834401150479430474569737382813896602317977788871103024959005597104640189631668535449504622724294241077699944706417359511190880053898511851630636393279405982248218316834886662171608256576274604684602298536937465892143777940143341872118784516283024251921354067679753833604073388679438607618996226074181554350805811625924615200507164582961954579262113064401108220768425241510839297936791845990282667618617540339277353188380512377606804892170927986051037027630322408183535526675036655505940976075274295763827675206725528487964555045106382680732993381751401788730017887592329683076575829298332164622131585564372030283379664791757617661688482852151347510170932071051872871570875105114396731022373786695291076524323541443071298818519775666739700807868820074478128676060863019450008444691028937317516015080923237619094535040743236941435787773017930003117771721422815040687986166981705754054741291048506021165279365013648252545356159308906080140551449172556054815023748129457827311971279879175389313973623634838427901868749252831735971878190402813777441783732673686775306735315580641483517459570998922188388316406559995667458676327756729886029756361170761723011889378668753730893378708393411986501494937004694777528108388623988125357367194161806940957617099879960713141076174525344959725112726303307050419118316541737993913290586072057887838053367371031808488014372293346490121817547649712456661997806823346386327399974180422288109725929664617776436987905226704070499357919002364780017369710801987148557494072848692450812409171803050513686773205967609606708451669503856175140856199120286701879669840761512155316524327450462176137915975968858830185788037476572110024069842642571753586545203176592254056155873306964014543750690742110413188542883077024456598336609511870346977681989883061240935271971852033190220904684077008981882553106914062232631744756386708674431008220360791957564840264061795733371308385941747030248074743776507149483066935720354054491873762092966388216400425896235559789543691545276417075368083376364559297747343578392001724574260814657202357621987576756412629028405240920655035071246101763853281061027506551712554001934882963612131865703572913345813890843400516589044434303493881339177532002844806455880812340151446292163333457113398572331219715091770123529161585130807902246396538104347883586087509836470238219219510914345682954785350405132724572772157231445562198398910053411357865357916567755577155546733304499195148919713501895175803178239908890763018067300042362700460721414834365057260915595243762805496567641699580745091573235707206200566056338674673898033898333090301444969840727076082476084677516866781695374233952653186020819876216898187547025545830991082051776826541080206817660789757789197399285696308461271659914932255342586906224458970295266638428063235747495363273460734125617890285016297358375350797319180456059538340193104441334286412248748029178923655570004112287840207475940622967013660627014490790133247694347053163093629530851838067494955104254987992596055120332192779498212109956622179313583711396905326458992659132911951533150426983737201458684445346958777537602836884825687889266221468723977916090539250121379667634522415400249656118304922994956693539843213319911973725832473076383337295111915396546524011159834519168232918042985508679197391948661530860610310661666964721314779098360434356883696481320288612831227529022845544160506403623274906849621103237612454085554371122308747795106063627956380566185800498830732236085181481196991754795803977358815473328975768719199154711452361483422020547536095102201243358270751887913905712889418818862999762516458242519020029415394296189015725352251420906383870135928182301605479666238930723651582411090408797641453811025747313644718758863170545789093138915790147301567715767553533588528090188186688207832687307408726823130089884687097442834963447310608635352667468016727345173149942975133984679445436086903326765608174986883382369917203022131650784828799515732711788349529872712767688299701561521653160117627995055855719548656372934398488707862678079044665434830964074054649468124658457941722230601091328379164947137800747171469170761041094387084893033763347194321060725179398240859399637541738460092534760215373498792539789643141675969523944560981996441947545491321466042380475066761107860329262846935711654647615757595911218751770654726682812439347932878429243331262892592605146702915412452203044722345269220742244026373742442728559611155259384951645453925496177171905571748966771762466029324571329637404395754934069962653466513995148584722465083091338354767990022139013014005867664323392539955280600442499588953037156232068909794835720461339868990697728414425585561726042696560893112537078907100635810087872497280820618726541363431702701066753321938895597241256528044520911526248594046810989489772639485616767810792143613735714552959745586613203086710890159102307955656233504564906315353488303945737126332671633073448159320532949088681325720192487270101311633496416572461411757892840739566831930251083175199950476932083432863158815076018790060607150597248634473805521376455163580566373446090645564040586451400364920700076699838132103235469147764345476866791915712489921269249330462244991236031548672911708677710444999608940816884425725159452159395361804010331882692485818348151094490876910505813526948121162766476308875781695544428837476505454563404434504698336012786326588116065857751014000117165349721111640466244807073520279859599779166558652636721097614975662401258954220730971402993868155450016777930494791107103602569584898891329597029475762362109880225313912758814863667653295520054007335129194634064541629482749899681323017724650151650417431264074637622915045570824918691726678429718946591174400735840462752727037396207169253179343059472716986571125565063717547710337139144302396436970380825192805026730412602813993856723929036407090947259970120225882626423472478091451410568342432095335413628866128107598506763422495920987724021736699157283582728080698191661416501906471378925114019450129335886881109153308870745034534271514977095730567656053091936404381674523895960017292091457250299220161720561180118681146027807658051407008329116144586645497848413367774040156677727038923792650686798600110677677295186172502655616533652814409656207881418090164715492425254514952213706094010307293340179857327198008927000156932067404171338808073083074592852853295977298119473670594945106804528345518157428849421762771726423681197104989084172313181624247945355675574338427577793003865279480856589832259808641644330544163178582766864222730908719728438140253101430587059940145825363476308938269311535048097940741082309546801531906800658477894920468224754846680398819864509599823053838912489160533421932132473700775716844725850067088398759352840845250677890652553717694221965828813784559299773954910733220739119435134167050327357474286183692011299455818372357936760686149336817112705646882035553836295306615132784168011078252158883027649396998781340984577770835045915617024762427804879792376959393920399803014949978253663596472029912882050828869598919082544176768889484409358043564452586111319057820087790416788527124392102471992615701076295491894521582173331280816496393275049813033750874994673485656313284842465933343853115021682683366079030449450406172015768880456413452447460524548293073711684382194741473926259809514460666980940692861286188234240030535277057811720060811202239042395824054701257050756533782822974388888144452974243280506001956005397223819106648385719308995904559898033704644637617001455212509721080612559961164711526090750625664470504928002461719830634423477102831076424767671673414551409936313198475739564798445104933639970573447783473023419285116646558467088694484401563117943394567160435348023339436255716654883910232265543887522201017391706151851567902159464745208858032003067466133300105064018538659188048262595974355050913381720191522738593324537128603257755455073755052610257942535165442337291595705313441495322535956309856783293935548423262488839211832807944894743885860033826060416102672736525239201438064211886449320136003368378655518131151560775255177028290761996028537690828446690556974279369101385758680200209612821974657211128605444845795926106384970511194612922627565535711768670434802259692734927691198150929218183708218069916722272873084392558529708266727824856195319800462601609770761780082851907829834282484150633059056783058338710295441354933310359838565751456551892981848335310382579618638690428978045779474649592712440559279309848838086169973422452174426091497191434970654680987278353990674788047162229343453978404815333221391041409473495223061835730377857032180010009109438117403550890733733874954231599461392086727678775731773882161317903814160039777288897199993577003243632602137900523764465834590205799833755072197374955764360939927633646365719900919714353074981460558418795989720364069983902636789149220052271375894526122186333046069935069423585243183699055092864844103320825087953778775845160611672827602193168355530628746497248790343565822352882281714627344406987605283166408258724011249571736888855931917316778100478925703870393804107133945289696141605934804170066555485697007793488618210132699541670171514066981958848807367355793367024089148610126187321167516898933083829812313685137784031939280500941222564636301126447781034156865599820512183006463354432049381009840605446575562659544642510470699026106500707058134930555878971481937413376990074078788447676816781161540196425113019297412082818165276391880118095348519035508029037412384469157264405965988119952872527536601023498205992285495964265537848023070669049748218874993099113121032283968698704365561953619378685314014258524841546748351475385478175560428295271117215456660982996858900791563173514063860787501944803982103652171063451505882206062643945414498837192709827586911901539560689280835960133192824111368059421165389916316604933805473927963659426286908600529963222309159944093520376499096944183371219982267875438256243217972375977714146741696244927400587557131306522404927190472724165095350828329056440655804709052599269371139221597554856958979847963190806885480647259486183186269166567597061937338323953500964101000051772795474130265370144491482896268627921248019010668836234037410008110064592137592646270658666450368361850848406588149720008719958074863912961670227237892545919010660508309754759790173889153954881520307266431712938537105192876994747527546711402083783377820687222145937415758688807948395908481054025612892951737434480414587227784501443938883711672092017228229825283369613934687763980701473183619244349757909529687006511762265695208887520705522701291055113506382738057280196106381958972016446634075498744436074793647576273532214600963757010220949915529044152893879237698438384760577408646285395964584521733513618468113274059477863141186354136971033030788380724489973881623883950218468662031057442275296833771210067677063155991648214990769878333962867411422165834252212518820874144052565823895733015560267740500206252249872738422517735230443096922509063937939494074212476905657455726288196895068292197037430089166038655488928287044314052048797279868888116348678905690051940036446952258000790850213330488272827568279943190075662160184491408006273561164963681367860740498787191926783222227264844672789157141182057469648674714936993329295004243956796217105362052545595176703645138429125425991732032389526511281604226631083871996806820809823771285584753828043175427292212942972867553767666584117911509775060089278142525930102904776652594280590370019110801676256703112233858004120977668390701762321347915812838966874136274097050275800126276896538063939773384796825896609866038916640277986120335103019455323477201451643862633311505685332700329381564530643195153342596202748473479956189388400932457682858018977446714594049622649960556049694449836210974928527457848730408730563452761995103229535422777375131922892595852528570982940126802031384719687620339649416655728651478019244407959750552794093236984721569868330425989259123959689868693783663517091846666046947240268613549593413417984941038008396348960588944725964935121664365002568793371563747807849254465962983196889052769899822600506741225564098971514596758351499586126936212860328055657255764557246240738164578817825320190575408801516318436998729948931056201363887938786697831239534267620309546265947933943033856487399270663726486789048945832390433619965519704115736596693043546660149793882078192297725366285437614142915616050669541204941786580506435229669418064996171581520035987546044909215106316313424504475735650658026079312475591222368759483924902066766200969389961641090226343373124379351020441077884916557099128997358840231734278469210705413039487952220796640514698858955117251502907006378242389925060160002240014080146607844434888775406517627067516284086650627989581706626594405170225964946072178310585618804543057034649933329093464962660680376402012061287493765069997480357628281354354699684350238543023749190515211876492374799358606993993111873508169371307747077280036512564357852668241507290928009942246658686465993137347849510116543610050636530421604514987275194672652559050434480533215688273913526509207035726518033726834929667715585338672744453316577632123241670634269265510911804095762086238546974730356873454821405337606417824535656793590923580448389613072445016870222289845189412685361893852964013335137572485097133486904487611986485716084183794425427824872346822127975206920129260671010951099641916179672169194613356943041089833768836304093797651627582129981052664665466239386524313857005591537708955338394822332032514241433644412174323470601854247599865808044117529001869761879341639967412810727184391404491707492980569439262504089070463528216240085699104549554001835202690225922563203601896595023002397904755649070782428713146590426068509259087345390995962321158015662717799874159593826910593281775303042342361303619385629183400298699034889159098509617624104288342478255817346216690025304535085314902555713823141543777132808891845868018858869826681081642114431989059869191507914494820664198111370296601028158521356761718497925774973769523494008032851748138058025922448583533938268786377194207544498110078280975542353008923527086399854359208447347574019737633316735783669446335685987662719756432145931338888395354301051161513505080532832253716087494837749720069130186621892231964479341281507960576310869695721474866061318212715586694931251651096798098223460723288807400474463741240772039509890611385710456864490106030453057979608016317682895282623289814154261314155108228494057188685951374676661228032609307959307199660931992440983570219155592594115539913296326069652717733276201188646401539077848491904388403284484989101334351390548578263652470210830378360013565216865941530625698423189196645667127952655606944375413676531212906292441802949378661834429019573863146022329243464658642142559053651878196975307135115695533493429714307571648647301326770423860076483622723651475498528227475455855882260088133231880193443503309334477623997941309145382437254187469531185160003613034936770794978132469414989064726894709834114568627527548452588385451008778989173832770673811622225085951636366075385007706460286386309600791966757824398060887127543992478054451681908972068385318141262969945264098050406757026153188250523554814379266872971106695033110797548552611305556194474052896776653684158072753389240164209987896697540334850049289890366804690169658166793970099350773447022225602107998570575051241681546707250278630167014897424118436895208773496093263537353576372595545343451108734261223203365366006054355352850887536926136379751025970159673227208977228068123353200455251201616130726770869836393260213404407842505693905506266628828401549600588118226023251902107566232577113947235397486957954181081947086524391067500859652009146489415950069489812650172043891591581254373884566943528428482541763220657349596472551945802387839165521700689204887140697095893201361353507600958934057629491062493655633907980921436883618621833441604514425270716233086902233456149314552450669242372660005936851025405561172721207900663450189703777446449049224148629415574674017822674616914522385953146655448800127055298787106152422262889440580069127312876762762450786525703269573984807342991216860728731578620097876369056714660055777773690966182123361641001870047079688904234389311083409403681460356938690885018919080601946810664675216517427715390754782442618825864408461304685845302319327369219281263561860295837624369074533592125178852933319459948038910011959604573542414137727911465111030105524825340815156833160305276007229871585564539969525268572465274740365056908918574233098703054587520162906810755583497055761983484594588306704689306927049701022044668253503451695194742857520958172880089661620703061707012114178744677217142485418215272523122892620857809500054363549649482467083488856671359103608357361173426168211678074694958724135309576523873135620900460403346838283248316488625548843393662641415935459499765235184596488745755117621762375420206842880129501889467096615268538707752476425242472313924526200165560770203940416040654069294221884308994608421751141004545995798795604352731720792786638415401882212896973517052544626605442866003289714324980106477658165398656608681769240826270474183100150498789503973021818758154610489685732010205085080180941369373290805006977146712799771213755474212640425932755752607905454648152938975711118406269512670430138343934163506030664796662398617967352558277698789379642234399846678756994509604946133016552536523511999864709068344615318941892577189270289751394727530256594258622288046630890560785718419356429450375056067027866949212401002277540544349978113204512914696369128730323244581129456303026256794567378769590451826565826540480502140715353953981582844102172524879082090151071166747604556945775413703671619196397038473076530647803621648117326303723208544762651163047384046586877241905260059962811698931799817229966943886472464680315841288990963093395114268703408028202698029423395150932448646265165308294779785554209023176920085494149928791738615571008893870545582411847945537121800556284845141446663303615424907396148624855998926934472504364964738210210953375225670877245038417314962053558217087564660061920183902982451589147526208152161859325193332594742188931877629017209584102790602107902437626205967361687328362157023818044120319317023585693964323238163999088813801523187130235934570140011776858352363254834591336164988911751910356121956485308824859298607924929087322123575743244449260817040427887339668657861708111491966265015557380880131693685941227352346549972817895680212254806875988986196524416888777274989754986638551522755497964731996235321255194092827624877899602156122637228381240463441960802850454630430260118688191994636175180723708350593146968203182114063200466586246569508714234581696150840304586335194728172219891017708381732651534960299064340935321826162178254426731527371991517975306410227932476263440684360785110047719493601368770910233554635224176834111393348563204489189914920085337120285127302225826140404031512394797788833799093699077419197162887158776193406016778901872744811264024600189213697730769706972891815907415832670465501782000509323521701252120966906872684824671086308511226370233818317874392246055774161881711901093594558246382941555337320089127009016143606230803261639457582121371507346881644552687403785522522882246398767289988327458866935738500683918714285136055288737071711142138323247390265985341220186266519508899284113249051573528660256379294066489259238118015884232251035004514766783294077714391147239738071389095059869726378767385468557309156756119505413006535293945532267561728249469487152446336562862304586520686965883271853041454836114617283165881980174971511127340815951130292836207531792066648092423013897354146311334871316165395723036732989015917379667792738020555532971277356058700952124403879216766810338501780204493368707364952347266638948810810358607221364872837112484231513438268018232449236357420290467176755914964470900298608828335281922465219466259373335201490949589254819747729832568483095194594189630881018863488527982229462941623431987339292564711201402259636712321392339444831244753970614582976217101180603879097817351282009563001082830453814031396523788747859334620008099959974607233016288978822375200778197024359801922165626635948255187894879875339570528454671363052995676168087856392103984219954501737895698605188208113389142676972591615947329400267594380879044624073154087606208704946676481505660251826959081101409243679244217986370848226347404167023876533857965765234500445503875050653634441191021876316515108602461901275153707221480740568427589546277898581511020140794338904208018083050250727764211911629152357574086754684760814135460734452431777713153707102550286575980371699086403171333818888763784751377703563832864975756604003996164434733473764831186803154825508134428261012188699074721214344699654251849059422882034133995130801280483178782784455505415116749616923698570300743102333337894682300401870654494844875370550498045235053998289586725892016629253592728948658423521435164703132580140999427261700608074218802201174349371355190613503756684720860953367491190321118613720628533481287145685671004818054506982661518452275843490605695245244071301808638994397290944233826642496573550101609346954882338192636949903750129358364946609644029939500026679830032780461757384199968627276322682053981794973647914982825021701518360191538145150443897761326039080907952741929212913561486384895988337143138892225314023355634445267438862972870963552050798851734906836518586660022056117072479985628076082286989704178381536528206271005828215583643545823215503730157696400492170094822155951313571005727574375472386906928392239229804475334421969262321200083829730547198949967828132904277916938815333152170843415899084153043718148187228931474427585283090805232405772885702233246281362869840118753772238951940324526290277958653899073700338652610618302595488434036474763635102643553463412799204985339926581767985061476412007472656609024586703279022519687040216993427063345820690113231243974683813548885259088582624984499474222126126062770197226783725203765361902186694393547963798820162409354732125179341119813823845202239771985084218068092930529525952233814260491259811172835494699834753059284926326489430560683832020399036858024919912679731741220935648863866370902614220458742273447689219029843515408091709893616451341151377718446995327082716343372263244023759242995021666717130937325755303509306650159784132842590026658254926988905806054572347299347042193207483351387405251838847396863024823935800779122090590996882627221808996570843752026572660312882498095969225805529301331952788204361681459379098383608467099000892755105479981518265463542601721341675493293524943984755550423658790782252905140647341951526249325104662616236906351708234809336301848716070762099357847058909106250364500250004596116559633216760153212553356960907561429591155877710071718689909314409449482379874607906269461877933344006952861223334217336981249219340400883228203322175289752836342766785899436786848116489388103760338550892991133104547430622455439848821027912999557743674072695882442100857867960645063933258070926552961110600757990527836539882991707840390727571997387985180609744796811800804719431872824357223652492440549171244831384214939214960034054600178695962637498452744435088421572812720637131233083940924638565639767298260053471803945160537260595657519322281042318922245716729386522750654532597034829601671944358571409757804111186038374027531409694105073284492439414061916945905913240363965759438354316740367085050977441570122144451131035872599312442513688956985567843796459009452135155273764930381995233455725307161017719103914775899057548859495357598206582874167680288646946543610997282632134899327283728559771741067636887423860127321921220311724196450550804614711995176953850099873838656338007555320552366069032140538838725076279744680030332964102981767078610497521889536746017914882803740335607647385109911586784457124915205630703593671009350572517308142568369770510883647137223833758382848445733677224554781674970878205861927990271290128193552973431162210235469239779143462786725371250260665304311067364454201249047706868036242480922012611609192978548562082635662634174096448589351123409329011689061838815435558394791293079119947253139667535920540583597981542015828389665886507597377628740253056937584108389603468410615166046083876538735729980178745878853456249931895895995791017240574544315905072513394449461285973681769522497877324987207155286079649986207810723577388696105644641240992472763085468053729089972837574659419801278215899765200091498956650640458679569762652058414264401701431859013866783965981932461792734904808578342514924390702640028884054210882297317762207119192990900311960579796823000344117321586885147762850663813081418598199633273519623720146403392363081045304748460302115977953890094615084502098688516240731638843003825082263387574788445990554144427825095073427157580503757172888297460241613286505855550692837293018723461043602814730052429700192745526058271967088064711496969921581241338487047090550739851612197746060578192463126282911388197464746620899790938542178795211067958129005463383717210651653129759258681014878514741273290850972723697453445877683052796522001040477573470805930816972931572883513995550032232209091263153589874337520369224036946473259302491911104933484575025311507325353871012380017669161974043729998639804117122956637114541229752885231569713525233515042910228623780734826741228673458630760836524086297199724257857541717941695134745191745839102010095110840809968630444465140877068853920681471813878391793335455428412771834330378449103145252800672988990738158595805568505917964137049480494848834528084714592848402813014332344912521647254432827832325722441772282675033001841547096430260539559050477620638382040588341922299642604721774958004246701188340843914713966386901156749185107925195175044558576504686094897990917426863186659422488993451710537502705244949433520753882942940099776597810927626512775623606085228770978413339030143028900356823988032910649494468366573155372691633334979931701999598390687581432609769256700750207502958821930784322508897583026457178054937163828111476403129779219716815991150062259596554379500401158455265663526136238343194523777234027800294823320845547516930607356473223770691504586060440114061791366939011194792312524758613062789266411286562816870127173201967236393124352227415149125394674894272407590537511781433010469324318441932044965700644894238557119202121665146063063489732199098136302852876519579362032344072944483770436618956864338118259406595473098265285077197121956318107188513275315293372535728025000865686462354272765046964798752642798595993688832490910445450639183312545335702624930411903693945118631011103565625172498546512095800197313084960978202051459374887100990542763076842532491710840980088967882489745194603727821861325770953437972079951202069709669594733964698639199647139968601536684088888293415326624420564903522665729615984347983309936755224760515623661175146147287759781577583219430103602599300988251392128154857245309553321097526754190083545331736439832782294115604775845172712799398705906980111639686961701628281992933950164985904407786183776053991157062937702615126723181770906287154254544177878051778780714730710438410022613196219186961838460168683920947419277254435937807038427261903293868884633224462530146732301156086710495233050825575494644856647191320700128960115070520612074810273157343876656896686023592555342689881363499996917435861609571214874161475770056117628286898694314010934952115797093362529856438986156846695207870591299383408385301027207897485163605305944814275404831585786444020123283048963140849808786525037103568938788620696438451448305629350582562100187091095214383491811623812818701884523902606887437879308624625649860472013835378540124358163433136970593942787916158749769641872567281554332044634755852136146419227033165916690896735341880587841605660513861496040502370611054957963741530650780923872784276428429529829961070497881848012143510227430439249764753725510653622613726870155446549217581290772952113829368467021193026449283764670058928502078207239333728094494444632268190407844152480100572802297319107147332300151218631136635721163790748596230173862990749183205691091832760583804338522244572014100998079537606723505102212905636367977822062596103613705274676338702832119598148906675681932138989771518206242751870894507027913165526719379813160470412525678864714667625557982654098193438075442872832844110594518937376561440121418460224717857632526334137202026724528049899412485832501656523778992006719744086972935973077996040315635187150647518053173927421320161042422731265622688838758355695146694927070218128435935949267743938331227465316397859709778395765526960006416272117666553703569588304901243265032478041012452599547302378128478837447626359716542656492422825477048584408111842025456787671618184898369654250621638656980315272033272881616597684151698797860446465178555721335614081906347319872726215850820678816801511325069724861186673734739183156344990522120966168475234006171989881183474861634948335797168814272169773916979498124949395492220348145870063761533644695574085241364445198530891240144707825592254586715640270187958820810205986326409628931039398073661141569100866501629167796159269014439846350741196196167503955218997454917518166331061343589112975621963062567233177984650304103095228689757572244067438931545472770349876073930253790134420668023991674795452214809324002687851649294427094325748635037685971928727772496705882968450531661818011546856496813364413145438397161269036343580535547929701121090079198989242525848974698820023116290505982718233978797174153749972423235332091687748791483043743183439609472294697516334095946109610976024590615180512530666486871292293219415597892730070830990592034753472661274021735109837420654336678198806341970506365127325079803592120849729011622858776286839360431913498709313860230241714130878146590475721019800396301355393739217817166828065428420402568814898330370503930842662076862433123744513768964845647921975195977199068784163136309276014791410271536097902123592667378587947018777645731215367519740726582841573596528198457846508354883745394161200859072302982955589965607583319978651862745256250485742197811118683009257157517138248212944834635402465844533453727068190684220888806406918691692124572193613617208020734464221335579671837596017202431540695759166869721287880989771077147137276580511031913646510550243110344506268122600988765704742016118532145300129201560613930249309161401585326070270401436021919287877936361920055656108912643458926230747906706587692110546379605876038546627173684015636212365770910965034520492425577129131649306785747915633090709312180901338398999553393429271619293183172758221852752483021711428353176537628955114282744866947561806781658275595213307554354109490935887802450191791357772994402775515469733989357175146765992113853528369506776993896586875804816558434626512572439996153167249826129325476178906196412718942666197267683945148327000367343017620087829928688338535883061095197769349990183252158463488304398924188660191668764126335839260290848875220129000179326766388978562471609981200643286723387544092528369077276342992029809292635970750571094902183564955675517866374966023325452602131789612748088837390428599377092748334767389749131596716762759181475089772975565186199758858764214846674950773544555212529797772237162000167339388354837739237724013291228050037378578280337822879230807236543234267485815061878376390969701577843100995908911657218424008814087112658745509955547967147980788503564018801966962146617663045096732512436289902743368261600199412107614981083791801828356650834544318446734823083137038882199743616255410177893342182762441360550616697534682388931099617550027377218233745335120335627620920014454014493222182109197434835116176040108468493809134493206417721989260715163210147339990623747233532183752273390481224707930636961434716359893517189369337769494377474774306714812994098027884166489661219864021358610454762928385871291050753622639550027994362382840935681570568962966665013807556479472805773487949512504964072800449895863110561976489162514476779793329784017333671607182398985120069996267359655954891171179886428295176340996557301702925314758409997066012448510714798407039394885791325658809490833503759921270268606092389374277085540406594783480163430861664671295467606338971789174354465790688262554098582505262506908679072189344704575889057494355872149766418493127083484709564378609260263181238918432211532363110038658701170788800275521109919658654836825593265598407475182446174230734481566192122629690974747592564101095849626290801803010577479307258520282339755428482685570745042075214345397114245975335351532266821502546760157310662326216105826657288787882789394891153004886001821103478143307357328056260456263175788600035654123707693182884807822245552903902802242120182171402195625478262951813011574832983638005610741820130676000392835106157038254733516342456284333621254871291747271325042747932745617423808891159787690092557343478882389071421165758733902265667483778925673163086522613646056213251389415285423581236935170022340684164407940877365576577065769437497045667706438292236125714646342615526487752632152500905376762215930158477369408467684831172398922007448727317656878181757313754286225690598151122164837338520281776516098630224149939373090413735753177470873318287671864424207703845448227651629928454154679677223459136084911422462215187048588473435479484126487457311813810307018111812577169731624528320292251389208331588621227343236898534811275810759728640581834889841014329798516583150404634526560303236564531803979428014336248356772921080317575830917183903920296456621178178234539106303473040190483124349222306855254084258296541049109398634283025665294141163457809019044746680188883803479779588006499319177951853490286916441604451785436752080535651482536432613885875347225698849860571767317035626615810401103808560598937293370563189519508396246817529599419804972479226474073460214653346167609618550035379988090540745491164694382437491573516266339276498520762208522099695935818068726760780747679797246245551157404045943899887189374505868634589102084889833316397296375993123139587092201073835686058977099814472544154117820932497566963927344634418274435847236677538813541486407518935778216727524999211894886796898666923108951341623931251274517546590455835413637043504143091903910523270920574640463212639989651114990417131586747659235999887742617666032248210719040946056305559943807680201692544562147873043689696895872326523458057543722427902448083719308019423745685933381085830625266862449039884580476466620254988116754705949887177500353614077213446927722088048581940837726448445615962368117483113741192325176154235973527571754834870119825385771644274253347158786285742309459046656152236842025739527430299949456657136684238711317292948904934954299399044585414447424668015555280331764652455011741228451689308416032250475128726068168224689556444903294480913504596485795378021314195154622226901054321219090815633063719811972961539553962508370124446858717554380598382619464982218210487625996705623598374793124005226616381238294683253368556247140298013616871089911845867401085631030487173610065455149794401073988888287399311144274701534952018689568590723721140912195765950767942242652992195835504208214894203448715149624151604519207857677351685988410902112668240625207447330285472667345386195008918503288781591620080209471936484233423352837475086988245669469407375610126502513326476422440017354201639499218831245859385049203785907720179788101322883582043951589890963056936248900233418788760861139909560955848903370916088754204873061930400506306321167624355884186154580537010767873523472246830036758573534682071478884030065208262980610373380125414842773661070742948061615160894129296881035813934173945897888963037994996391832975418930851570540494057136912154786293970682955349849962141160805932985187494620271718333811891902803634777127863138643821129089249842353377384426764331255426252699423002135418675881063325332189527048697225818968820036562196318591622560871788568183952547049148046125657210969314281558925265055306071140878730732840397985907014398494347539782960456809056135115751510418649525982626964900199682078876782165911329107242780792256039397691213791909638830891247671317387892294123839954219032268750638393258299292653223589877898095792158510284709533803075208200658897937614050960080984440474760248764999997401169559107908797148610245208617400005114527773613091361909840511461608816116066028805858644246100934157048440391963086702028725630926646742063292573296195882397394784777830295985089323820670507923200580046041921847153942365370893474987704524470484433984808965204652022308705023042049629716702634212952224922123361622812446843740514191426434446382921611750165101876251509360640369675720258704898177174159281991813622908377899660577911707631905831882880642783298080010029041127113632907227738852342130185989928409609929156746922030768169326716460035465036278141148368431542775322497113818383577442652319823011245200184072860777491555009050276546493433044455628309272460819406663857695058796250753735423696262819981208988205560144714879929735393846101552525098683700259610606511897511490221919734525918620034931839950843145785263909965697440628763311888995419318611282680526129808423466486389008826889056114517626835286106720292938816855099035328191959525544578414885924780528872643713415193925366932696142529276628776536428377413159724772253490299179028699088645148572768615649815035070611999139125599407361156294392855734412069153853068394401025084356995581062451208411527331160308994181820247392365170930687729185162358949056008375843761750505914874905181601541097189824660401783647709353605524035675306198770792539928568796478393748329452933749485243655028479390840724427641714387434362915302701597605232493272833643461131032710494144660312967830157998826916114679737763224380404682321955168072010854682451616925431574537774552140510122576812226710844962374608662251063036119909784475754793713828764935659562287105165134969849522484069932715908756262169408239905040848462519156720653646054512299418644853548048731736250959608502932495307478558687331546355601490103218644858307527006440283324777098034942636126847075437731492643454355417139946446610530087781775602326222068755505607855383468541815285615233938249069689387311055514850841938449741284705264888955343485213117352290372109233790504650590265002091953495429786836449286745879313505126780762998793379964508801855434464050301385587946794223477070174355248878403531543246484020079285149553402293986469292549490179490572655472987259694107716112880473743907272083943312405218032145345717635253812003249732850596608659132354842265228639784577157897018676564737556466888938813808067216792188315080774528165562145976175419052218359847681034942590401833639203444137221272052422721707177750646071684623220652900389162166787554512363813858242369823102425129158304102040114584756628396045638286323129980801396252194314555649502692995778782864103547956873854996213812733270432405115186653853103730775720515314712806231222309058286866419358019643665178061214425016182093604425750840761496730755950044579353878039675261291847816953876805498655533261082481413940332699796182369551050253619382849156575305495192357892988474539999414461842599866731299690682517929960120596329883181445758069600004800741420246542500094313336663991687618816364625716338094600759656088352963012354597163800794316555321654544312337169110894919876897912199476746110888087912917253398140195666408339703359486802997089085439423081771893299997880121184550750949654731921721889435397168322435002218762318116936859295833361483340956765469031856664511302796783276308112223113132680029999703375052378387948887213359738924512070956176949102787635610782363766237176661247009300003748119554180500099854205713027238548653694575264783494270717034483712853745258327753877648500025135539679169932808707490332142553611706652730427071016430948224009800482674606529767860873301858318105926774761595407220768335765400330402699991594062929994912961921696929531676804773468523936933468423285367780155260324199153899753550510624881812269333926184325741059356718447390768144863053195662941571533990383880391023089809140394120424673532251745105273792796192576463732053254367257973580148560637028219984304106624349872463543105197616019394340712791287404796725532651276977279487101670611544137323976600172031071788869560978115470118302253175757744807828152347096028175822153747999348822787249693342262965535274356860348743133394601890359209603715923917938679828388163898213869684904733733391979177003506437926575368784232000368015494171820484023232511330268422523635227816410679014337490289198716149008650039228508887640962487206967539610740112031544977647461830525191010603572768983204221897539604423470205776076757506367993175088904013496239098751277683902781349910263914439682904561209312004371909954290392990494944651592212140415541396715595427358160677975019549198857997210785705725145056451770876843433913231067438156124191952560796208457082075851308422847130015556444858313163652994607516062567518657802591934219172042238116282541343595767918503347532536346201948153217502271797737226552727046729796574009134929776049723642022020725396958189393355697398413381340153016886513039167975930618503861216055882938988749106132067386845159837791723559540677749407094387743748086020984178870242208296597015639069623324120808297548448649544203977896858122482736419226302526804231209803656246116242984508087163591002875416334297050787789498098939035720303905662633884056755564597160130224629441206360000701869232555248085263849696949264022023103157398684724186895852058776545349684177938421723773525792274739636763431904524616030711549978723613174738370216511888743163207033514482358756913827767146860898816751679543455777691581206077551211572978615631980065672280274388056155392982978367486548009269007398138193742633541570003415049277818497065227108748290966971560598599714414585351210289955186337722276042185057198842597519469637635579960493523356490368404824298333273974718421034774547227083748206945805908233529733713242047397455341938619863692989751946311244760738152086538024693511869656755786987784726899610374506420327142880897890071192954353176460689465628813275596650454378124443912545582722540798252510754675178827095537899693302591624043864769986498700410613647523007051667914377749341511851928877729557127732591830483979392714196435055546096913575085968302999961135434514424215874252544568986584688674883772240329029799086950129336950860080021151343547121332396950041244327505968806285191848274278296588520800353403674220235116347383279683944153877994150227866258505608932441409989418556653429813939615428898762725218240269080247335142434383575850951300435018227132631477506093528163849294045523891324761213602119967017846844255355783538943255969711584223302509822920561060509009358385681681387200190382793756622892425132155214465985314451322039039662874935788829168957371019526046374699263784039615179821796670123901834165398192503297623920982754741821183064042859324523066396984831925866981948486298249380822097399829818552800294614074735459918017920655454449165491499167863225861538273161892619225743607151472146051811735377571394882467339084561134489323968165719586381977433407280940229934194985056272741275963996481800873883656809821577047961550424131650777186026573607898916297403710014938593312928877238495371575650298747135064488228747287137077801766766756047322395411999275355924897417333443998103740570446343313577340862982115584274429466575090260106703542835978950821576753313957472232469949049875895032357589270873252420628215508436352514171048415990409356519415020287466209590384709841476474603107816770823336350811566896942753913391712259726661894588960948780496256024763358890089358666285110376285542750848552294295013762629082659226004032382539954642123441538285070517044534932327261462020398917438685821864409422221818780795861114198976378673569856734949969605014177966890097427710574819404733312389310843927452619095547623997772774750220473095342049562357525386971385312673805016590460193819524808264870320961072761948114174059196952853207486337199992034376732586276503281384710629955536889496885349990258180531280485224903348919491305910137695677188639487121517733107663861577273784226231375965037739801950264953602355466415896237244440608985069497874396637735833348485313727587237774343242505357342703731897976740408338872764141226288657008569432362907932672937497156782138562006566853054162188167794182628198020240046869271598377050230324972222069306419904973982977532607367901367184421711134737556805246732517881432400324628282277431047565514314877211417094599293011498640074318204799885631491023152641691049020750414860554488198611429935548421417468935682886083133240775568527364265401007013360567186015959258662820518934344175251177545663225548698247564615496501246235688237659929219141171741313342592023700452634014851176890677180158988554412049080650055074256757998279203332141196562650564080041298379060644083967038433458592747259677072809646913950719661092970488457090697272850426348007173164644434698541684631480601275152992613033142290139073274482208281857526764215864202680070544353953410920832790159659600711280256553283166660852621330675427829130858828304830285136835979440184548125840387636548393794279338125596482980818164272644880100718456878182800779185205347486004956149340720807252706921732974172624999256889855981349847804526340047049307507451999099157127353844091289642036248204252117762447378564319683110786803010730668961060898019105566565443161086694659189610917853124345656441958752965991173400148793787517342616595819680838127368182237296015840407053263213129903506454032383517842829016889516594467872676692665418315373084196325470947036784670857267773226923366169992258603880632318869363762931716330591332087414917575478622566768074283434935271887951150667660258859816347508117909522542455058556943461652251646542578084047988286819508193240388923352183352067564697636372200079562430072855600849367118976268578313516214376182097832738374290279150065940748356538166672473511121998551882818806181173726990915881182527094992804885483600880829193688179317600420512648981165913885493630031671038176920746393964529721285034177756635687236861540420318336131829499696919168154733058991908558560885416848450746327638913243417106510631954559556561354575546539832756491370595312448200833698785368784067344213567247644788026791450376512918260076062903010948433890300473391991728951848467998428304259340637847878490870311857333241685528573173441198735534300696901264000096740831159160872814418778459118293539953119193163582110632668682330061785050007697801635995404022002222697692604266995056333177061745448664303096394468070666859203001374009635952190287132390063582501894434375940251238500362036939030690463306628690049363989566843431639039195439327640986506787632791855097732420595365618734479310360908434411480235498541690979329140817112373008608759617505406576300467557440919160864597745485931592746239659263911285479327541152485984159408244344909437557189931769700043295668859389380448597775282580096296236983942269227097444358567639445580427656452124237537631722286198713535980801264965383180594428631242384629941120580393888432434534470978129719040931126359267391108388843283135740361343491440164125641031589129582095806947273614684875278087912258931087065983064341448471844168153032657167749792291393533966651699628844165261554465228024666707632197498595747506206110673301366784713851884383436453680606864027899332861416693868173136389657694735014610013120958165208981297382778462248124936612931069666216173874150922122488117224532684909840304650935902983159774040137497322554558909479344787908266220931506298499701495790819289967717314673922476999532348793460278193091781842332259187557328919584406041283378437839551708470323520522926314499914257755035345866033729443079525203520288759452248462563290998066556660800599472184158213972794625272382213861872860338734477692835812438046204916073010286043486741518579479338052460637049372155249884650491772195110903170448677200653530852899766273633569549630817161052349915686914511249255855379187558509190830330381383725823640052808186127517387965334047641007774099494078555292519619416960259153431702249684378517196183491914389485708610640016350888118016397063974742562051986122466450606701866546366138830168688903048956560146921516648658753247620118033852609284054031895245100572192484862266959761724121543435958204620785301355519827454117925251970857499242686515362312942036636971386531170099384256944303129963429596470644166163824595090871401109135831830096561170130795341371235356419088926970782493452184799380248902989828391699098408177019990701532606643554643008459644750394419123848944227723750064616721378067358465317772621746766827726576926796939539595177661652041750182771719270210442870836354232094568980299670253089500682139965475547002242401740909804125583546044624190314851932439437183352835962107746915052976107143577657249649844188020036830262731589531275493198416764552498591218883426152744377412151776254813767212919662140435541218643797310838144343779902921314775745859229604659640247580931171693545106826551186632979658437301106482549353151765034311501447618673253220414318424958010423613414554701623718641552381608647029576286566762770216772600893298519712638513173606443435419975334280068738880231036096393077211541018036384431073306828120836948247077670590205203124660965216924447457171307011317144520941632749969865814410090117037365507465614916855734226563346425326608501510888443602670094696665585672240464809382688866280864732352919278494714488912757238379058844125740918127437457105822595729594775899428626845267627925899078029715841907893044487505896438599325251475627451033530556926620569209387862368271240295913513129977470671249115790817659664836244076990562331813593350561032222901054925865471327088661568508786654191939332792083686553502400839632920102746675046312397525666537682341479573122445495375528056244736160653119277736872720208237699720753290487943910688504196166959203448088046991285440069850418974800659268960404196175923915777665650682685349343561805833219066444667651159852847451192427960726010205547517183666704011812518491761664283032186072257559474989152373946672647276474834175181759464817408611680743778333020448915007048487828949691312143051921209756189864457445096994504948200160466089043192215315470936565038192033510140754156116018921905679938686823398143244298300390125368116760270843860121630361670379503313820406425488526072084304784766278750185682199737549031744474622689213522883923603336441163164616103021472766751584516735894943796628369325742563084363370263705853619473961564322707217507611759699208323218469876875453995779071315693526353763947410485535762271032515286234784354318000728371901396652259428559311761520714146750401651475750781843761221560898518586945810028746959053909630763108779291231438679479740047017732912451316987253758365087353967232916545907008208771891585638393624976792495331785757892674307712121924681178607000828006146559539673465065253322432109512743304168107983402661643551495841195907739204678169769633625418496465539993635166301640785683152850379377166708587783555509553099096228874891810953820086729640355577192761955784987378328148599756636025164852958512183952371046189854964909445852897292711920001234767321499572406495972235530289792430578932600822186146052497002069345849385226682160114055343819059565882657475715650704958940741551055878998882184428187938363229201716943809460078560443472499572266413082393377148799480667593236678603294421141622319416166702350778197085749998102659885950083727156840403330689406553233309878779701112471886249016938971321747159380962703641140843708644331497155172615392103316701919794945128602440014204668901602394912376530960760814403554684917595729658906051111769958328744668811910055576101389762121869495473852186099606113700525539562235568340890224956305498689406962666032178448313456053617114225004000004551607892932817041348925355188441497100674895578419733596989084620498062339577355949221920379588775269213021305873457433031452154202088059337687438586790274890060866299525646967891556512621574214890748521472873984706940470462035136022857557993033589318775602606700736210812021449138463408695373751971537725624380846075672360192937278054540400257398695748643420462913863140431148768708113846249360647226215421964251797968352860533706682041737716342413707413911680564629670902869160209061854691885502657076398798134283532335696002586699317398956641397196189419283423112668284078211352429624285584789880156094441899657167822096304137990941450480930214168754701268322356239814669097158147257186318564725988783274279453694554017408967652531932949730662125645968175019103576241226536069230455866185523953559197799181537019669574052419109248434935900570315087596145524040666282620400228313671367354024859662613890492025060668971325220983358338370686220216399471202360330581931259703181517135187514037347866508087588152396796725328003159675784366732018972813769543379522386426542435069335284579227138750500979276136695721915539956843044564394838476927483116829646487779398808069138548126694336951261515538482513138295137450709875486467332168862014725135306104816550056351892299531899181024624324284839449052400409515369818612703458414108181264590427790403442385168589033806661286990175551642366344118474595028209294277341493024375972049616233976496873319593580656138663610778394420260366176531553419577304558516369279088842606544897467293118876945311764702712657453700874682464171303107402134491121101915340698494312424846541841978280675520042063105450042533731493694762850361655295797487281363073498266633914420027583295207800256363189080021188497289203497418965867132708317990905415234195596362890312397379942994195586089008655737619003608400084381370464513072007862898856803044716179106583097154865833843804784239743151185285678558410274429691148243835357258689573098163410344276511940036964976624573935107614351728023106151091921267464506406442773484167678436334494468853390754022448426935752698893215626731110726882551910148111136487754408884742869839386088107134068183939807129613534497133311432936700752019954582763310017119567157893111770012363828117149168662069020042422000642003730900627618163635651103548416594227715153201428639652209731408519276841584155865161431670928415028364120999591746945141498418679162715797102275381176309754724718575519382873901978198927780998156233526244746919906803044950994021794297786969490617222873900280447928630651878987094119266287625400856660159374912862648484210432630379033711639336951346759842494397833802347325569215344639540104225349094472048728344518851818421192616191407767971438339134249696777501553491612480068556468966395325656764352406719164241246095394840505474045734161359086944265380952046371239254562217777406963223850278060658801610024309989732437709774519789955696869528638006406333442825658806790013602573643727459821989669516514906109399735958032252820163054544254753997707104834014183867987883880382993084094138707133410748800235802671376574687011707557703198614604323956091278859707608102889490439874874933781465059527767213812252629113152811093498621537926193030810878739678458607331187984572369408423095136756619384878936744314323962081605835684902914480643141446131097606306312917302321540210383364257439736697729336105808503766707534118647490810754239267930172555204710780302706271453726999658332670798832665826042585607559967371449152178511092591923179458240884150753979151926875309941706967879424897217429848836964496493704617848235856438055847458885085827694715623524408371331348076558537673037285706732939509785661017235414145677609776667692796137569691085360681136597867841772763795997128617477199837392271258650970643831516742267916478979820749492629595837720602038923594824655214103417948289415868662514609121994498979242218475622917651493321656844717706663572493340265751161432556773111093025327505376205613125745821209395761655344043375432071742591265092073793751429942382743364374480524511875925077341299862210777353716990350379528006470407681696077290813755762514387422843954327897419988045315910698602583816563741160878865635564628689536317062877323073552393314750872216399130787637246968664012944215244463952761439349493900566421863522849485196894947072629712972284506697892521363304259780972701619199337123981467513784035312402030337657626209937447990785221785383566031827849830889782533889107144032008204596711590262853336883238489612008544660586500560208994685943394284581130703786068413248503200396609994425578585655738158518883246006568355086412997345946112413453913419303331379455817862505345562598081361608351062458163840347550708857642096124979863066026390666920690177169196693612887472004402793650272598551788940291520123778874793341232584519580076118340108206604043657470952019962723170927299818985210058835288198392288791085704501843312327439499729813099301593160686110833118234417892088696407098440063281327334015814688330753617251911330656623976705570235863128525296315104826900303826124043849910408419414567713322377760110435619808506292612101651111435338869783661293046439350598165346751446580062516008534656693977773533000659196353901673250297677398831770894949541375456322584032072358976563410805986293589906121052990907754867977409672919071645055989106261393575073103789684018825279092917045300937848276578318932240394617256511457891346333174764563928829862950584738659299313715059395241515872703390214745056925363727319421859294568164846412645235918114612426673355531673618062411834765986518687529639480189571372046324348764020666548316211163849348426395011120855548864064126790548924778388974166940635111648247008624583819928980144194610869185943903101852901200712556538126479556732305174917749435140786969085341098673869652052698426480935453765190859170026197159783729643008031584458372502644260311263873184367814548299806172240679621107369291208003261624750998171559331879323962308327781380923197937566424455849685421057711838097546220552215398680401750251479628474973494468901841573163979305865615831652875705266763919019941802201372552036972084643862000048430647253226237425906847297470655681510944229414795936466346586259126029734582276210038869539860754543544517985209461337186002735502036160691004482683903338180188538969030158295305790758705877935602793345054485104423894804176109151975554748887113030831902739196843907906148854695346864215743502964258068502986449395207220759337490841674819963485872339100337265431664951892877205710245071992551498548068100880246494675043003992768607193614916334382191437572364416420851051944783433703554748443240541783499680993307180162790124916742081873778780293651879177545074689698900469196621486572644361880836866280070164041570413020744878625940203615519022958076533433319801030521668421348089703563746409801211544880207011867593889804141478064003064510601112201481846266727211218526793833868943980328284706864576380450715533385645942411358033224422062359664495854148779319346166961933002349584439079721408195381604909184389450526113060391746505162887301805378938592619402141762888245472808897475641002926369925474171034518965923833009984955420578227221478746899433395034778928673966221539313888673723578058164401509210621063234995844247146202580208085803718561594144132926883557642896575274574612448784461265305985833215539805130473313615564537686142202479791283365031782465867468997999328403718101948171211408479641298970226927921610200461387951263411484353150373262658674925056485965877068812639008343938282714859490272860542712504104302591338328266835899961328881777953053443403648743253030934183642203106391077633929349147442491358359582707215754258226742033614374608999981063443177558526134347081154179461877101012474984859507903716022037547755527163290926112770707215258437466844503017587397835053928789098862014708577215455538463248238566224329635454730539013033893331483599635371450416247716979340657339306516396043135295171954554367186523601743102431280042219941960460810500406619859656768152194231353692577295031614050437695184021926237052154231453100803848864962150270757176946853054030328491019955935057485125158524880224964364999527558579551768782648905981752034541094382244847831859930898821789566449500915997399686287989088336757385634524764535255078902419638000808137294711580568076672428078715361811865644776625686017659798073719428827694786472525444569401925877790645122360874504076490493074636747585804553615401072214121764490216568801020052081461875663448500049591540379411795196070809421361697837435702243478142714485766560367533877966317849353925461750808681249857479282971589378872709484274990745841474233908670482129821248701777166546693549450459724659062951653947793638359343956907246525110251613756239182073731117727606754893600460910797547719682062316915097018587695097924037282892435559276988812275853287907210921333009271363194986322898870048981325095514160525498017885788084000371282937120888339337287237873153245172976592647923524309713976194375107548416563544428183548696994703142835829217636654015665387546221948098708450193023908507312321827450464980782673950374933106967721753258877974808934400765712074562107000658013900023562578156174043442511593389285504035521200191074670927244374845947380501388627093341717528168438545825742913037032224663836176835574949190516615718729156898900742929217763936253708656916513632185483628072936398283670628602455638110335144782123331094023087158626018045825982791627474470096741813329123241244747667178340575761509972336131788309223845761424400810212740855504957204448613839527396357894009982022141019695813304583850134513226342767995449241535333846084914463597293428356991025341467094424174675189427273704514736946749008365922669564804507719189544652506262472034330007629484664724262664919852434917983472424989357735701605144856032346924999612717952810152194330102362688000225821270267435462534761399279895878931402128211594289521290506488611028171865678783754958774068811476454729963953320873899944550614375855177758812622806680434422740290407166297652320631205966273317948004830567368952003301946069948355367933430616238712415317378967532448089647455491398480208064029661786285828581701651617352027776801343284429739415251268301396000332637809508272817079145212396861196800778907675112186055325491724979163889753577676370983365250981842302420608328452332007764887567817411580857689253963357027017717596101052668877053072410735962608419627451184107789015384325791122639686857333181823307877854135701146312775897278853618961580706430172790559139706911727775929254557663634970149027940139312403500276101431162355812039345258159680034533798419820008015002421561028881476776408397003075483843880759191871990891543132758338079737711835296997172855813241740698465748163513921959770665935593519296457995197769973064311152285321422813302634791614589583189523693696239832523489263918292375590095888356418366117213097778342152330498214951420786790029195588100768471935931734454662752985098542610696168604433074566089581390156767845087350924136778515652332480237980239001455630467738399638690577035885726044965911433322571915593021433367986090221405824313911657375801673236327763087715696946781746906244247312490449108404866308266842976039452910512670644721969188852266416186888975452759838454146376971181670268302646270176005897498213008681837718618702052355490969465390531775368154423895263325028064824357896734827708957637269628828014840575451770607224813687102981526763043594051714258389954525142587774073534584581700698571190256773567709734117359577391996570567929873823385711965635605935740253482123489269775952022780140806598630764081792556075800896034447879019731518940104251969804825817130647470563737680858608778130253048925910287236412281840408275940622165363842694852180504086267766899272472788120951467501537599497473142735002709035111783985479345748615311251400261602383185428687385736846395479138116849993225807827711239667116680896169906414543450725582404305862999161266752828131103177924628672964898333483852871002165450993976403505498340343842216862210100451459727322008191406908358918903678138878229669786478599535153603406312073962649870894137193404158011275283522786728208043503731561826710820110396906922742098445279554862858521536014311238546109652395386417449070403788700543588199000106850409593381521898960986509597656903781618350059208732487542841239637452166075627615100621127926907706003756355527388773255211391141294424934505968843398328533332283818494825592302557451075971674249016106753181160736075929149075180144547793118084801536628893210069556446152229489741307618951528938180647726920220137173827065770649931475994756345854624688318963774216257793142804056813342904349095861847506226407778779920845790465457463749731131376524312121533088368904204196949451997457243726513278206125126480529259692121366379476514737933861528737498502390897609496784212530920396248749966612120941468647286708736319977208658741891392006878124084708114173593592547534624372036685036650129201358745559776252697660486693243379730266714116935675976173485996007113806065506052502974033686750078281810941445248210511321314911301733098938937780519620705343413212625376228038588930270776422238530624015044942812242252226489447104140174531291875548980897877298180853430358109016445084518477720654055358022702872409039321934945528713919916542083111095630473115605949625873460496952498351576321040053482746157814752956104445181059789584822698382477450615357053228728590979994813144983265763466019925558017447349665018641352230639073567765506665321347396273881900115591039533164448535162948332514809335513877168697789847225198718871383611391183472845422438607838509162926995217629039798713305706043519341396414483168845473843684188528116069424896905046158930073035467941069875186683220159424679435135560606383315084239773884473512513439610061516725508993782689128390698337693593579422372121174276711435925071440349856222688751484030114898332201178550315864151388066895062518587919485268644475361423917729824443430355557965310026492391722679708949542339062315354710847863427977810023380098403030298918009642910021139812397957245620832048800872061778187307306857887669819039670961718335491538765795327349346389259930343171511496598443608288918280145041905931867428818680379886090646258686690825613886633806526345746632284827157507886166123945215494480912381171666237936272119577978355685974703866317023838376019937584483714083393786777893076749429330684680217847838784931813546816514484279198375605941228375160855208588446777242714829684626907683482069920470152897599174471583014746342048082481925520895434809077061153558262192391450768850275445255859655733494414785309100101799976464828618595546891885681166741542044848404371525181150588985918463699064844129609452794559686722535116641428274669640059902070092004356132836588034734510711899397161723028207619094378780602807203974213229381899035623923450976646387702986318871149859576142457123786686713840898610404963255952951194677139450003394204785918654828820393365825567010291627454332642708974471928466468188265514630992451085621223761645732105664466219246326432332761988570718472944529637309020119878910547801656409311749039088685603484727339032682692260734609887195047119721275392457193057629048064672692721649690590866548070040292346559259665875658270104223552288762321581551705318746783028801127287121858217060672412532394811174959398064068347820338915204620459308591791023645280204677967271168781491001391151995560216394578929768291760292464858287645094016580860912526870676878296547332748090399284116492632827962024986671388297883855613694283407530983533255292299638643159702531643995254699385480423857775014549609504510850942472591036708768172486649304693857031947541518553025827210335405586947790328880295173093048752365108141164098574389593683440184022357168298278218993794619691841947878748258497673168611436169220712637946745834292940329328710000038699529671868977103316288533297605894600346294108366606662616528016096972085668408156971450352237193874551861426571168647917564398569123821397004465056042570560197436956985371632419196629578139905535684095468945608223425415924238292193651960027002549593587681715792025349688877857284918618011159580709483779947085504204167848318200694667291059958533705996315576359227678883755857639966481079904032124953076567548668096790188135261713756146193961638260510617559195175057460233386191983490090352406062118973195847459950753157240390918652850074136189975739056089835324232191268772094420253221954021618984844659826115645157561507559716591354710688351788475376159889592229030841880910853673188975767726301488018561574262497479190528625019034670148197731090482654054815782113020724285362682213118470361352414963715608449540038725346711185234936395676895508480563345665140910766183046338557234789028307650056924922803981283034332323499622605530677421053268700340093045252073598545597251316454246922678001522402708172723305013773519534858480149351748102525063855432559674922070418059176305510057052246441415672730158951827629796486254618336668866089345209765848745738947007558598415284412437132728939377296592310566901493207645572797611918809840978755735875811926657853373757917335832631103707333011046168854779943048713273016389739482484367608143356748271228577351478093548411529891475473496996299656321552702122916070287470405597904024796373159234744670003714085298968645924292149419286586180403838053363033205169074112962945339780831955728492612719667426105736610900471497822179154010818993130921621424961591077323122242548363994665090875628435928236952214839673460156461970967665067970402358561688556608356745507079150589286371159330775344471614417819696336171097040060493488414772707631651390059801298429852945307113722183385176442552306074820150356104917258221702723840538498453042123789823810347455959637191295550987063246420482299261602049275016743032935646907145210175931479300599139039959080306598126400958742425492778673231459095928943182734769816496612586640509652190905523595054657446496895215246750533955760308250168220613081749243553037260330964388941079529367118998575727611544065213446327092229808757961413820996636089051117929612940972573507751594018255082609481061979120262013466464217955477761397116898824407432406784733191309068818501434875695121631705061536962379941530095874847961123425198169309751586084764027212864671295087718652943339218655724791956425047058069513751129056818526992692211330992672291439069100286842771895641668518885723715022084178724629527053097443440821293211813673123269109017017528829366096843229174076574172725692214777346408883815985624186995365218662695045747518618613187947656216827360108101088164128161738123491253797140250459661763678918662069465067941507974559643347049006519999925957956576202970401039176057378871136321857677307752979414305535297435502044269223098474690736103292165928787194795608041169142495739943442533968794801975486322494899363773935467083491213801995390641926507042055219259963494066865356603718080413679942438384335960703824589204272574589267951696377882019409012009180539482575020399918611611439716660701218608051233808095649414844674258169553780443270964965825373020331444044695383340733537433323741018538336545870289280303919228214348954493202140348451369880906791889130665606663061431857352789662748626086438478046830251328111182020985276442685895276822875198955520777789134757279394492513217905367492832253669095076152964678944496988830815533988387680382460895882379663133333790103824474938498774930122266783708965148021003614736430876887109620663546978466465926033527491857468729810257246020946515540065884626478833351376061285554111730880521984547165903209374025674817815050084708985267826732624273565584893492178778111456629818984113396421814977827959377372883783440508687831288232327548999245053438686713610630566427223853069800821222082233908728646935362984048951589482728871792581712830652501326415961752750863901162250839895186371524582613702485384026336748451604298004185104466271008653519415138169310615377523585422844869514454232227088930382227773323334353512647164784503781201006507821382085664226462125118458618578204230623392857376669276538386122413024657163425369285706482772092997687114124052770581864965969353756146331030803577452865209580190903823067467633374860705622590543657157069532216080064578991673891825319191539919557383415026800405676276676382266045575161966772997269114378217227511743715214569966631571510613641283849382053937529445399650031629263191423717434597619018746218744821213669090768289384020789069910660903679751950653758771556469207173366470084249795184855583619212208340285421678987155315003552425802467253288919923059847113704198221529524302300007317450822796687346878443519861462222235392869309059978286530077741363594016096527909774933202105099704846095865009131861371551514563114664803735764611790618880355107448988717889157071812730763522080633317309147408042617860344880443669362066442345347455825919269187029440219921028426753805796527952992334232882499397139160196458202976779207792807812691772278546223745168346373992614298529250033117918207330666141190347469242099599810748415893152717942655277400677947634575124303349045404865833567814133327454796144502797701685713016453344821229929834904523577208226331292377867884968568662185515805524527597717689216115219372722149534913499368654583483066690887204472848184352116784678279714375126784636296383222099743736657411540874141709687137560751934617517733266805554778666351572578883758538315112496121131109123811753595361969907363526982658660109214332250139668667126848480707853391788444437780389599392326337323846603443944488258467274112930600056995138209104010232690699121128568804665049394243466922560897662828792821654816374638435710965278929266725661106681371873031665558123648813756560079652740029252768575063858595620902647753286556803606648202536341884032046275999069731829618495928686703107087875412372118188638801172160882207779461503242162081377925487717617482425832707297075087469912629906237641096050209472525851060810122241245871797622051257919268852776204436055387161563670841040755847423866369537440104142492996914961545474402803869195404320696099434158491493669936678645192385868238492267834893848314756474923710856966104097935408063217214937972892063916208892155758784302235222030644334394997617248791418422748284285982589696622956507920254012437428722581680666851079420773783601001299257475479011379591676791705286067156335538981175701179934155387653881836021393667657673050524824470440459461715730885044007066503018801203431774721462646062734634073590148270013736050485507521712770505990885425860131501396548996453899385151856852288724202031313474657507466174782032899321172577936237666231383863872102136153129800597650253748927852655175121252024150355224658063859379805248859746066359633750065934113351268790277416315530947569082457317589193634864839736381584124480924031805958674778458229805444688674797717333543563502419409499802059235797470313711906708232045760068558752284717356549988398436314794603118638379203966919959882831389357707941998047651969703571293923893587956217174825882469750910957495225803693460366337538219094595900583061068338693201801039421584073395402346992651115530766920872355632383114367831255879917916739302468651698995347585347617019331188332939983479859440202645006305611276823526199854549261937990465995721729373508982380519568896761762295141050397328271148149632324005172811965291683442514552560241738712977704975280986920919522940235109195873589366229731429027130684449051784460749275360813607104723862816514571821306303128400588450744289653878549247094032840630376631968632042026419863784440173434528415489949895687050082381809752022510045101280731363238225506596821684888960484920778561299890851744970835181381041075057901167589191817629847718371875574065613780290871786183163217381985250146012858633134542252334370988244398734159008196426118635837377998286651753246942449447453593673619451602541662860443799266754493920312073962583370277515782542902068313543498065367276430585305801844102363891861173271785867308520562465569047443109082517557336979385058823247316276269995572242052669825136933302593093660481045920405917359069159584907884632685268485072101931511654436694934457803538161536658014580432879056387274644470287027345595367546735366526133034853305611345243413710493729731042179348151100527083039773049817374313093912063245340704452218201594873676377114020661464191137599978137833190529499012312343754345669974690989543187128643422188364077546639892449023653515784748280025925162697088679143607378614813266237279780364863324949866980035043968423851089140331145583278983434601254820871579668226787787348701690820108297186645821274489988221194799402366082345007963043884864917548899660212001938424153094185122116974508050159472706036069850872834889837629896987811726412488051024803676121790173397488215634287826429116492218251193893056247806728300210609628437873089195206433135233049453363683903508047108922903021029565523245219101701585202735064245960165141138909658669286862699164558937801655930717631793667949898428233413789244988729306417684492012888076786184740776728575668210215350399227876347749333339498122182934732603775599310091548437841893150285055288160069476523784742374421071927079450106784708402090698153411997595703755360097389943287563491148343150467949063795112524109743971446848891543163012018051946374818450177563105344805341914395304732091307050350163882678061068956812593826264404557907034967525981923296243430428063012524471138241522996311428617086434048593602596175029948048932217971333509653112970902824351556523694043922940263217502714979956764224497840205765618631088541099521169256328875936287237328223452881874644278904606681302367740766098214501713940118899669103196813041406815673260332421851983039996048682577351853975069162188930683470973858846710968796844035056526292738364906223422801270170470708035199344780065493116967740229330599845630853786811274308858019755886450793287126698595793301814438119096744522539390797231177491140249500289997803413218290773422853398218931526931025156032686831747524164653737700444813420667871245816804135617662648273446042059780284217534920498372006628026367374548690359361697273932168611617184571945546205992341428623141095986885146280641819186907698247518865487159831150071440555882078214479998234152186014557512164148029823696082987379550560801369469453688248091018693022208917297945366782746743880750079397590220275347768349150070879616307933883198060503197908002094814618105019928282701782489962018366992524828682403574340032538739369204700541575331912260761769185927627884990612788338498164611434834565833509991857690888298358684208373157003532451949012021785138166460253324089636734877974622364977817267154996017394588602933360934196296052991868029124888360541031948703117314191325153030288917030537298488630087013723472764502008369095508449766227221680783323757023029805562692690254696382992718003520231789448754908997051976723191492084061228818685169549718357551023433132931236042030696502460256103735755057437477818739011347959747952828946508223806682204733603575090483813970124792081086012938284470871538733438244820421655042109764520526981562726412803548899013458581044748131839807926710109104677712614347063117681384257582961617957673395177402681049364322003304377346990997873782173779890227300520778804553476312481127881319359650919100969016824281207495667602399948007890401599297384315218800546342013905089461473882363778330750591226962398663389602826916503445439498639220636324746798064662697744733993672340134015839205133749862519866352604934138181375566129047753301881883600006131804791675621869207292969710851976993021655602209078028391417343118745543285570346669709264757667824031646479375542950269140471761853594743690563059087129682693566996569391294347402827693326744081692062017105489362081972145648157074839335825561469398179026012805253277228805123036061527117807435833134034629352624302690832353317400679449536236495522466671154843401394945594260366728010715885991572243018476564895599831292558840490661667904613908405172424440269618645648684530587681310825686636953461541395279815837501656914603951150572993197514635872815715400034418602375377757533569242901821266845464701553500526243280944368472640970119333529726639308026795649512714911896898595200972716451554238418975730220319552210158255200333600716667026488291179246969411924006773365321104239827818353123208037724867313734740847933963080919430114681641676411382618906719702248646160138555926467599751668334203395542550714655032635665228206526690035326895021061422102511611254781717154642194172668736448142981213776972242264878175755360957476757054313672688516736245275719149334065185046016609564336623028965782260746616886128082239722830362140752027604317633073241161972109643733692414497745048434438637192648197735272453942731644903207309661163295278759580226375761506711270986178046329971871564890179897466397658030572209985121070387065549250337334731293434069149744225500911727249126052037433305402619043103059967974248560689328887329933698795222754327119760344341367583985515811974179037726960554576680066847131521163716459747548094700077781808606779250408122900842991690481025394973000268761992334915561321124910934592331143708579774773528300857946118923560445443739213306217017302744373112219826447387898665938502281850125845492876590855884446069592163800818772860530321189823918262686248502434176364975213118290930311744018436625442539954359627158520599422473650393925685287476787089169958552009360781816695427731581966242231320476588431302210255043449111475732201697869447773080353983258946027164314324082151723834950894191383222620386690559516444583901146083509001364071336835930964577953172820215752634579625657891570129215568395519123608430975140401223999005146607036581730164072188031762042874348539105461245988287662994159070550629530319671622981227966295747002821799289250285743582304626162035294866174028971124848302708622298214847744188810696328511993784470888461076232412450554442088013874216831639175247305609565052841777568327588877015988861088595001226429795012135280622097596124939795578290149286386636278026440883806836809252144557651149964592033059336329302507911065360676532280670017120862066851260549340124063481195792020098687908100433185573375643102486922332215205687723771267755573822952029985736392575477054486778032652677299230181682315408756098464906434308457949755035028084268754893498042493660838040741348579234699458039146968475509716280653180831257071023645206231186421214736265051642671111518980319560236274947946516269799572797078358294415118372613107284170180517939704608752041664524138999728801118405027133953735982041875227956522717399403111843844143627538863247460406494083207173922112322102009938934656842390898618752769309131524477191319205159007780439385730207107795627036804049155835592968545350425297845227188169774427986570052266049722460411569909784498433599910215851192304168844662750273800882464768197718925371523440807990238382459023932993324305909182890723441730565137082230846672495390192452054417957304920617885828685711999097052059706596680224871947374746147968646829686287211513754638857396831559729961655669629427655854520478555881332499377867601948886639308393653025034030791263063615553340542610817333699737572944943324129499465212758665766754175807433512660150315593097778136004388032705597217615130460078164513541474158845116435789828196778074170789900726191268281951246093043076847998017645026272722137482852934896533523454567937713081823743820612323262073361231385746033334447112413382281706470334838322260722335122660924008106233909194926234760148282924813758348255219513825851016633006119099591069000353230369643826427789025401298606467359518479878499663819490966305923048671822556264313698189615085033769565294859477583614256077664449149458886350363401534172149817728860549998123528997107296474558424460931043448465050016033676609450893935636100710554191675130882499009836550904639524459412849512485382363655071980637310056817780086008263208026731614979208578984233977105742304127954989236166925707770196599128585959361515790721666275166230391202102194728464803988105480389021630210736803664437476751366206340319736223414908347621353072764098267173020781168204035681164732087407644630297972447948847195729663118341427385678968837488625411633500397780010688780809831627891445563241175199822652969219362654626437742748790728702450305376023186831072670762057530918759056358848154747066472255961188314002567845037937695072346207037261744664305205137111786473546108577675066590379996737720078742303629179938345677487277688069665507908466425348777360125515021875069413470572374450102822996888764572623776795868534913851106370754206418113841509131479201308138013326640154305503256205795331485596042303934613000770137637190345707922589614302576574409030014765490401124822310883546979924629703028157978236755370912005528456115185160640745954916906631655251486321046962487236507283368308652040947189251617984475693348391414851640010113734695247360412487883553459337670839463061389130198204309309403437938882470148122171237532945706039787851028519036639074076080853945030325106694640819529404846259275835600515857524934267797919645872982961240964090377868161367774900096360746058463500784332723299297672076559510937836113122464840207348271220883574391284067282734842097198941447379814065018932798225719662377487780462534317540985588695189844659298921795142749106830562571840972570138509593405509429167574761742286949326502075351650616312428846077872431379562388003951072992629366300584912043820556459400819830209362710658688596271591193304710748666363524028229847890218027126452935585010511142793183478166641351748496388928769377625416655472461013885804834026194083227681241207787530201971042421667358421232235721821255283928372629061834989620068921515748927264164524071477373387098984891648864662790074413080447391354790902278133607843569962748747294369796414051313140414448180146539445291656037038226639523456298243667635059002551036328143535987858774830663211565854909777165900931688713374221347500473859339146447376568997481250840656043754848771477845327810365129862529007997288956775378374979967521902547249597637005498345630053825099790685851244744951258346360259207627443384547537692654431849514746558842581138659741207803727119267367290992196238292216194676980730729664911271901722188478935933271598735391746523453854080873594963094039568868535789385620580026044314484979052388787031558207594866860225081211878727829835839546182293046408861796868996292677012984412481028216787293581381610086340550481262098020738623446707305557803220396500160009471484038388156679421214241028929441352135447306368095766717993110129061126520946276870994323793813058715946724541968905808113476160805503703432954002385986438207820727016344170644473520782327521007227980972182893403760719581911367286778675481406011048661489866605540636743229696957819870905090548065342615990509193171207339900429416188383210562217841355393042601800966141027892424083429711116745382678667709054661013930504631344500556662461950358476807111003085645805630539361114090984253247092243535410066180346686485533377883782287829875385319093462671432537036303267029321807449491317523955453227639551368100829173351601938716468497324361757673040457693602487733278857893067495293558211893502355176250096471737014977303172380444697413186850476768186134863698533774211183952979192842869156686362150519824225903988294792209493927936722826723198124032568506134763749045605843114507003897922367029936664189134314006832700399357332370542024271877123347371968877883265204729105073787266909631787479003079153444470425096719965252400679958251365455694721386486299507439107312555010340660009075647697904058215271238316301550192027186705697636802555780681735660936165936204893628902356263397252013272022775144005441261745646393025358071951617581855431726413083528652703474888525625069273414947055602751674274010399392695768690055736033834528859247215157743379326151324026432116218917357436568023174287885531106866372237685583087921559047330991895897948256819509368673917700451423546522703643594879124075931434266930714956434059103932478724533135938202623284272700025385698233202827728603070186886401331779796319124082024564411911863566217283851725593914675654470656670406520897382902235733220450857760151151809734748894119518859115337523778979992098774855626998896171055762522377676688976191818967454156539353765600910686770385396146854854304397430689307458762440945602952453456137678686581155756315155822625860005911850065968176724627543464588862726350560910359214967611608973392638202780938481043540982790131948829402146844888839055077823435381576162958849272464885874958005374521836463243839832407768789279363301882262017764736382655734071788166084795684371857878621242318803911070169860584532550036151494403333426343783973276087064480499972941281034811340771108907299892843834053184246521240644585551627574113735663805977149275324959678712406964662967556838722352059079288453647646595101688057905925705227136813790492110987424229507274728486482882477032465798023717144759768641827655058847461847892704503735200884110326640701228739636392746151150564260157128542779521704997211103313740635489391772889133763451996619556309916280153107792102387903087420019886668532540314482376208483723303021947375534789852990836845638534749009393976390905400831771226288016922791840765382415757574828904714107824676590760847243285509582947290297632876333376384858243303387725283059476289554901130910444173205087779944908236709700355873868547866336692364646030019863725622857757770911995933189628299282818380067690447035974823072593048824893149127685125578416041246668375434405481588469454278008516674391529248572706287330552111734739283509440198344094934539513258371560002900409344355679257169519468592585130014926574314728849748944573902876886152821430421054124625725002440731522764326129501216784320082990023631945348863012512801178402065550157146584554558972061912230543446551104161662193132056026224089029096041560079147548083357481979280210311203032754299379881490377714848229626766505750858035950877766145286563622004819266169491382655952967543113544170869867605971124365364992091919931451780732114071065233535675263172666659668658614313756034274191362866783861218026136581393650737798572439472487784999301845133789432900517848875607083755421834513512996397087054819783563482460001064208870812411031648578362041965954624821061783656267900289781280149559295937191952264370690408562915493889084167666392555189617038060156814544994561089923237753475386462277606103261663299435370265477540508984072635517042046211349036307749628352349953246379842630743480533297778740488582022902226169543481633904188326088822111304275280092164878410998235300488799923821825863006424841376356113326957278729688869351773269440343976601743834428953844768902823107210307321698346808502525169151138135211911052129899237991429078957933245202313960401218988565091807336667885893454025202640705384188800635635363345332847336984365818318632588726066177532457941756473046169388290383032745620484743167485397831843564117053745400961255408106935150874372539071695891936112208066032077239348430265600764700253742870890448649007086252472184638790985990935557215016580293759726881381993774478824833843582448992121056868449594108994387408387327068001238872669757230038086098346852565237849991517143075281915849414677456121025360527837985889856924050272870488999390173795138275756352872014490468163242771741322928180700092813534433798623396795114423372227195157958425145283268076449997263892154929073118834680954155069394231097490647445560149680241799614438013721706007245377422334169874414472276172991820106958935045173484354413673602464560947756025002491979091448822188275029981560431345959451077622422177669075966902514281098766648243418199237362154355433376474152879820285384260863084878152814347286349783554931808833140901455051213905268658107371347758732443491473631801325239791372267047547650564018052102067911672157443011110008589677713084991611746571414779058252205534879745246027900713880926397701721676165984615913594810990411755256472962298390823281616305543048955894186185118626895875545163460848507874504755365150145382629760335155648981753145663396302269908428435056097480000334801981545959816617482390367812952086603100697851390465758720685968461746874558746864670229653084077456781468006569231660478362487629031945147318046226723196937891220948943999363000221443302849194819951458085252407916454484592099777930206748985441721431042292128948622979818182300528717653050708412511524264683059606681705789063795755232069557970492529762574840691751505001301851259472094934377548264029465243013578572920184545066507722986313808937083352293476942671043695222847481375859481716328058632680523694767598334159714513149436153578109551636600061844572768705088301723558529950608152424050941178200454117052390256691863017873070162136546649751969556755570064854916349795122916437602108954356763221474179459800590431323936129551712145188263524663688663573557318884534602174780895103747886463922322914395128474382419693985151386774522881741686404533833838393251891507696147808081354023667303256008378449590481966877850517397075370115110421579693272973835515097990632814581639865965092610642511671413239533906248106448068231280044479292539551175125962226615789518638294561447395471691592217383550683285649438178959448150923614316451175664775659964679345187576336076320596163643712191230614292928490131563680651914502952394915700696621329922503438341952628896732549247337674055111187749224520460823795700742722683878112728963845219605327906708268729277953392454630717880004419347171709268042958895934740455631609164672323722261344314958430801111193603841724265402107801953349434827144137358034957480590009211989009571397895514429706455318112316015016277284926121563548616071712928917535873456533864193134290104434660360403505258322440454755973280368519791931444743238170596738745590599664682372606720896935395274952556178717484819855225009629249594940200531593518132428701475500718423184604273713878321735241941997166485702028263037845038632900316314537628184643838969063592459931323000407102775234793593103726079512860137150466981683245678801817721660227263679181621190625467037361395287285497007498235197088915290180476386076691415091414434949364194879292136018038692286276609619404321762932225006638932621499765573068637240925706638507090413025562171328788011389490058370105356191805857334338463077224324127535596330356454923816818609838346030401661052203267429522541860136520149133324550552531392871874268303466692070233780272035471906653626160499040048542814383358155534972478465586458007926319239022823038116582225943729053506879955888602287216076786161050840156919679700826618841708921705375292836907638409752733391983209391546715679209936573989588106073497811437947574075638585322765429061160256387540438195141096415114184266196796814134781607930334997116466875785584180945621578820852616183283834614226523484755362259800281295054781002955255682010544863499004221469128689750475134012165278462772199339951693610991664395686118847914505743919235728932324140250498617300326035819652841915428141321839875171958435142787038435574036138520964590737304415370239959437854296676234662823314102144220343615923882057283811568352058594563008794974611023118296895105581712924259518146235493691723358486135715316576084509902902544325112220091530756029693200242694037308028850356512028977547037719907381566303140593386862681584297340636187781545796407085023140085098819183843280610670690076233696950161068283483839614459894059516382326855519719931599249880168727675382839737799381468375255278385364414228910612016285905886928937134320994794316923977027363965649551591170926354466424235612820258960507387305984465979351005585223955941155789530591649660162454011869543201436895133937168191143879549877931445759026241772230062524117781451111467016356061531213570931587075834382774868266160141032618826521824621719156442163776316129222737789644858850251732540721997663077667547155081266991094755378543532343334563263760248200722335278093082389608722711385591451376403583156746407990157980558651171132481341123433794740302540403331976235975718877548445038987291732900104436093261121896815892682497403814783444184654025349920653171030065027042054463639823602555641127092950044931975291191253549938701295962738349756343819069230951459003191221881878363418404758489451524502022108643203699451304246594042275206329211554849646164297903509216537773402020305095133556675477809494414416662758037452168611052048905998788685506997022108487559034997636402500466161997802127006782931425797873315729181621445875805030226292489383606236994145169716732548795390890779208611326304505194992761861846855912872885120100281303532828184635809382178675671161835934932809060315066824380257386783565269753575031845235570771871362754045179646349697081479070678607736014407262581592792627179592933065766776732775510936978437103194028737051636354989164932998349313348381008881980843801094007676865941126894717535586763591981400719042383937800231889737819185335183839484302299070056250812154418636942173695727396955325643584300989762598707623946036345595955298496956188683603940643181575890947134867453204008760180854308679965558693207503881497931908642822301706169229351919666933791231083732983642253990257365925179776046839622184995113217587787769620209780918504462166765481246670253964335345106708644588048871936213836335661718140725057110900629861144521912492796714517710872773935077311769546870630579824973421554640625145634767774640136054442722116690692056532577540052403494898537344437235727820170569878284420654763161407824611633576700138337470957043914763332536524366814904259188696012464025442030951984228799692372477555022305636551191216462978560927507202395584753867086195273417526755700737075573655385435410051099146925449356936529619134653858458841738056835245492638754845501487180612207437086940599337554615942128880978488697076183540592548834233553563027127536249696592434082693967709740756261864262119156068287189546703488786699261297281906713976080180851433307873790193446156733221411484070589969252345143907692519834168134259816940776513589205993949216079892885342589380531958461797890194104345596581749715946370147175437078436492775463875347587520251262047955189906847491149831116675606322966182943931691500165796819110842410872014463720999775839263989199634393278272561786997036335506014374800592969485942451937043723234897029205737617883220256813785787118963862836750436638990825598135974497256014750510463826441818723405099471437438569892421004205280544821195744303902101143864432142143635394941738071335762776990582105188912785494615296785379135382933823947933650260033804191109665710050861265656815786375471590385365102731781597795187367153117658635516295842700504496725333799549678368974156439979523031156471466513973197209917667446451608866250458748481716964315971500232167868525915279889719901870756863411758225535935445337665046640364944695726058935085125357963400452680123165842571133790696645435829367328712495239223981723921500139392344455330328402300962256345875297852114872074725835504391484201950702085418806639683742803424816537860883262312855513108372485831227451660431129662613486326316022085539933737853783318223260454079653802432726412392909147158670025862209920558373367236301352849143786780731828660135464087659875073204605814114016740441012143303034974057554832739279845869368979237174799071114361296181266177729333443632799992082369982478515659384252155123902399468571770698436934144900447918115506290963968003883801349848089465023863629602247975240581318720278944767369555269586320893184209867763623633266140915723216846603072143785332142575558286005055197255601912772655303076978740191035892735550263744384570208187947211718841676329432010309802802403798065806125593465404558054776518265374863434328644869967029657101760071140979443335719020804768730237566443792900999295553072003650724437140050405694278084830112320961178743589273654867591287158348317554682206156671331280781097024138900767725171085912887301526863888468330609009361402508898029869223258557918220404951586641705640480986295458849870277447467709899395953346504580874035923181029300863271131938258267512502748160056681433142576552236584575864394700992853236536257108754150116774294765279310038152177469810139846977642121590116384658581322396373940134433484523947060405421613369285442494716947788293094173547999284730428582865292218035326619999092503021538860034763118340116484760134995561802824849876743469949686206331568516981825720339026789935464150236932988605852960366811262672427332591185866685864654948499955419747975184401858824818487579810005250195184722708851502714893433847655151625155760559433001317115688077811837936864305921527829098311679542546687358788793510485831369741208103873927699124354854872491933199900804182444280276797863690872112827780388425268746787847674823522934559742873934464070240953826986312739883496381543561902419579539159350996762261482372378333901575731568110029837574236779402309436753996209351257132880485457789169678910998656942689630402307360673916106006010858904658951068554559506780418535866734422122285295147817674369804219360696601267575774288243798091775476406681279854060202582681190571571827867928337850664240682345511805485857010346811478960557165233643854984194265048697211661165939630327276992087343441422879520858552080470190797949198007719709515327006237697212449369995717754379337659789316996864793239278789025938201939628863865257006812102148281470240773286609557584415765782104741019341809286967502808576714603513862906722797400965250410606745628136042681349322345827021587576082371258479746509294336620927862583958357551479564396278073590011329314182861059423963060460127864393279202861333948301449465504847431540739241982371190503820555233170645308158548959473512779677572225318313588949333570001162092841739794223725600429644113886635379956033574461303421688847562740259488375423289543554857507985595376598774319913885728844079183643538401774031761083592349882098144079020017428302623734910365871316040815585973260857703955729718585354945789740491398560991876948313303602831583091194417713991395152927700127327001852049904681224178335322027004141392780901018863657546693176310220000329113544287859148626743850014504076769678004346554540717506683477066637392583642651808744470370515699301598932606146898353104688864449715315060985851560514252608988205825122714594267277275065825510046872741627572537056210315996101325264702943591211344687123892375540905997803015208462330074973660887498907759626209481456644294649735397575946034595723157518886224938198938355723324492222993184238862556366731516378210811114240217747620990565470820122183143919283202983839609691877462535278612271442905581742850999426197380139949985207674190001750938078269392878320433932936355512690623900828782940404814686238377285585981823293637781466113619966408351848800494072735169930609780840655761739125045696144196408756594778291503041840962737669843244607535401223928658121971601743308046224839367341581992930471139215140443143582652978817411399866029816166843154899366481316862447915473459842672805625769732914791159764363722302458207511496654133266831362564403465446647995152086592657436491693478633505468959764958411704050029773853080968064574228497172378314746454481357138813301763352753588140696136409215167533489322316510360818225606369794498602878583732688151198267391932362316894823801979251173761218947489448183635272537859337350647546624584096781232506723930451228827920518530683084303780175643435541762720672064619165639533435793954550834155983762471678575626282189330208436892139077473626239158076243998777219883213831565465231449746323185449929612260272382194045844314560043967265009492842289268307067918965301515315024525752775550770895542616211694637435913599017868394019482601337716542612680335550951289639135843966485198703428648618430118202471936969424135289684280056742317346303372633085408026986339185379075892650621773695578744269521654169769699400564399251420986366331678963608935642972274142217072985874769815291849551959678028163538464068897710138846287684577422732279872463289948311532646439049217353852667921356281620227757193689570029856651193583430240831173576130617240629847140347013544003771016503424791306548263229379385597913379084082698891453840009575148329421553176462750846756057662594667094993513090176731524621836856071109873760894890218855497196359305780352731463235504261617999077944649566564631220618320696522719299130270282541297286560199254366070826301434051064215849536820764742571944600875534508689053771965766772207170054506331321929286194420705237546009401243370997355754900272662328879985325611113517782302850078593227817446279964186838274140905408538802934651161730956806696259571782046483472260642329574273660841119121435135481294465630971313935675660764065939154546893830387872062563288334829940621842693637483006249904627545615848180862117530598727219658583630043790804009198266033289916014054186495344882266458954621644575922045913354349065959551401068170043845191062019225181740442641256100681791174917805604846172164547670049914353282502128642039373192170521802821198398984608908576469800472881354721613442988906277957303839235876684791095723495329409482794327960102082635513206873290903906632265738730517423956651604392982180161092606178662397355499116532264373815052559202801824115293090194123391712278440287282997053120623521279467500306358625523823750826137028094010616381235316812529620071562450344641266436752856872620703710726693491039004973077276042921856016077298668089629768721061211827422294572457317539357996367351354133036934663902219651150045544287965581091921756902085672611168449064848971641093727257097860092774765210967441554223918126947636675590473410815237609674552838851270325406088218678890361948213214158095321309334662879055512310641042499240006914749448354532613489583629603884959644406603580506753010697478696674455783883729871174541661993214052504965067949078669883478565112734658597395724679293482142629546537852918449715546903592635956607497858475210606296151501902510381887409085901881076555021667982231585469274500001807730319533312381606647022196671433780164555056168972998249474813225104688052648825702251329647517672247957951199161896180609814116007088738152296532103397793814568358699284130019632437250313525445069758620605133099095822519305693957557871674527253674551537929576579759242216432851249665846786630738389817172590132325041277583643431837342098359651507542755277936000266663748044351147638449188279708077830309403062384995971994975004186039342309023882109139489481759828208482294344248512562348219614885286610480569020892310991476836264676460743729356907193437917717477239344894612392697623793118129467959072480127172359387255344495432218148295807462977225195051841010533388773789108285265520246653420386704770131827471272747578676135685800507513027954653478273517949433169591209591390712953279850365564764194702640474893958409815294216291933814211434295446561041928829426016857952060249942215517397343558797466999440810490323944530826942404715253937292839200562064190567621487474505575813851759710821858945546755866800806163584924181927128042595014381936826323204996289677935604039485432315117793379809903606173254221010544879838551080476074627277502763950499353030155903843880360899249329790608474818046587249501679155907522007910696901145968308143728811258906073980338652963728279382755031148829677838511397201609151121976780518594867365508800464907409978461772489908408565808834570821106519603962126605755287649828441725208347870324505901118935626597774132641056488259291341718993672690799903000918369124315961912472814739406351162851986443443739728827191859109831770611226459024720431949219375847198465796856751726204764627130957501918795333828637825928293667357786175351554642656952909877025398203063231227005650344584775695872625154110138177299683400379769618022686970134860780524620845131716997927499926460734954426009939599407712866230930683324966878794366651960517679114751677892546081449017491147498476155438917067204720995291148545848917588477452498463212142275593639208692813270419250788146075878257485395651855531616164441366210750916669568975265344810435942608371989093465670630011216574912990934001668261225043153892794619065938494285205781102414386517050797023570607438510972152372783343399639942995803178226861395106821359153378870958152798174607215642683212149261050513373825900227699779822334866818282766183964333158820615308438095540886706952443019959905877279222379766452940765855824261768753128267285131623258061591863096188016603411341088035678985952093447941236043933423543904160408208382924622294530652797137206627948780995746034354694054258540110335855439844465852536804565860783151189492226981355140744378205600660274565162219428884839116499456874571150855488587845827820127139776227278016087349161033626920063016132049451480346033402982583189792113888024085815679094847382838904671297257243301301123156505548259052825201361019142680804636607149172968102240616536933452041332118380049695777534981013815042422463792712542690176594427522328658716091033291829743259126551676962355895577044100144727400166765407430346278643217636309604687187067246457711867319873541487901476027037701261789651318960714531033394167263479273140347670337943775713123850810545627289563483263113982885365719087600567210607901310878913539201134708294970458485454815516993741930698798478323694302597322535092997875181939963659105386376446087289468836291034260076253646444595952478195855453254563137150349410844953178812009733558590612424174052339802351008777114851175984654717493825379816721057233548465248274440637015933372768468253681315044281259888098198142133040090385009394864389120664604330464273332624906905739263806673072298154140497941915886761674207687776526165911505831207944543707740845673177183104898060681595819014882913748075980681330941389715999510034047793796897378775900254405650738963732422479774536914095535452855228367334591665309788507225675700942109379699182426194632432414091234049947825584833157860239240565848225383403716427751573428792827620166289704148060404476372013070650029121569263469108844925485506533653099694708695637859852624853480895706542858489877959620872333856735622213231343892517225255070750135971945006778832328499830577723705049219516998668808842503212826808009293111497504054687402965384553171163909666297442755998279362102848051100443907015989500508550937666181704862234490974012550775590861720368795794228139234532764128535141803382078167727921277373558826733185309789235187390214934331183850587310077647737987520691363212949226866648500024175724716314043606020855639947499785018044842148221668829354976713141149723622217213467647355190288307960528856770041248112376765137390512449701654887629812548187348278909033439593743032037531916737222482667744821135348385157263142803166325883861502957128369403872804703159830469952048740627919789195811308049617047664324912025631082710982961771758224032608454698562690441419730275302527251814296348995758628671861141895909285723217748027174574324119178176148470493416084076848942583178601542731194404686047316718588669622577535502409457284685367242223578976506064156158145050845630483340334143184955491153558390573207313728560720071471123250931175478285005396922427041305377516718172686951031462686311656387399153585956251089885290648969267276076247473747487348380146665998922255892783952995976202240543540237956416699524446743823694284595880525517975099380274227042338558833947497813664665523858150619315219135447452960438826015903407774310828651323051379779460953863745218471045302387866388478076193154200383468059199763673907065812396134115309299630805002245578164007392043848733665908292068592752867527652938435866769853620763526844633647356395484177001064843973536120266989381460424983363432816156691551434498844378378723161247203383921127897830699396471300818734982239788471691514419332768185624197187107164015031187940474052572065188258303031674830398805822973143662935442026404696567767601254168031675358795264742564160231971062748863191031589225105426075308551506574379271721818361431494662453726305753734939327077091634241280843520062221453608084393941334193469408272598617551750384349858928160867787184503418246089060063109168651664914875349382953677421817729300010323233812983995894000540370478915484615917048880300909715917244260765954257389904794341587452507116026572443578392036253256587252456035105615249825505611068031695519077813535569976773405695060322593407385394621344014951753560560315003266373577421025374611331648307795045422833011369577963988209191329148385263438124667739750091460233877564770119079302669029978835590786669657096624188797317255604682926964659460281270236661764075009175937331696182825578337064707863147080886203699157785612036677726547192327478855567397098326967624066686392954711325204919906520287300357953285802229155428310469814621267656058454980669001612679674778544018493411329472494691460120838674022870239240499989390340447655430114759452301836771269817000841227619082420321104041775156298311744661322235222761816480118419434389073008006156761039057141417601791578177810256085723564529690158237272869882062229983434732120020274818495639507112855730637624604256831072583962357948074810457827636077643784886384048732122154271465560125539479245249128068010069440625538510793020376990961783132923359405438503841836912681854300382584949842079290548302277469305008558236667300185962377316982535884666061302340604014992696954951808762091918773105700900361047101913719184721952251720801283777791681821662932438741490330317481882345686800547427537930293620398099443091261156706334154800622502562007511664080054241109849269824119831451075577652217274844436084157415159528886418195081996820833656821551801377154477969681192602683129649800860532861477393241813471219088027618202975868890018567594376423946949527005269436137730066235457564351368992584835920141810422032866418932465356189680460304115288668904952206355284949491709141007510094086957738973326656874397888953711717327480832730462033476461204156942017851418336370196783083970308376021641209951472342100217967078282826770092269691639420802160191254753787891720137747526214100678498840929156368832133817008021838483896954992628461084895700829788641787310732765181337545868502899225494837425922681291172088630370266733489275828989701876966329520970465923972383810991267671373032276755175481679009862966187310780413065278551556806091135047960852676071223617296242576668086894646472728806313899357101879463545099458491994053349214264216863610822877378366256175398765530151695643836324003888370482853761382580111769336479663958389351373412123975630402456668551533725380132916030968345583814007514110966474605612825829558642901441757569461260548891370615608202760450061936771620983945822320750033186453058751468747877923944515841341582444846131807618543915139137335790311310629982759766218323976426159332468207940662500129299140493963128314894623992737377359885883377622613535534471766891108430275244749091453963310439989406614451708322371875129414580294413540718960697462209626682401354866192662063390965810481022346484273369274059344151316288349860390823875164865567763206101226659187436938930505648780720878728722729572514010011020636185354667392683546036593321319248018835601482125820851005445561246605356388359072218017324058581181199242508398423480850539904241386345688199209031076419477568045332249732033066852428653235358370731745861227064160147121196678971784329222382832522660327890719623352794800417682039069953575751199061145226426772791173472263255021325363179726107104512061129760560570181650319523403912743002662001008224490364768224817238241243492609273540951816918922078974580483095185472406053755330214922744433446387490910106333958314423982321087084817970933977630051478258337917207601757971592947559376046834737121924624677974464186413175109408413027011619916599405170662730769160764249911891773997616375697128726232918674576392809111174728809577334208019103168950578143153012052957834264903635242958149325547206449800450066356552294696358040115295610427854715606630029497434148554960309879822437164860058221676274377654362216261267545660099758714861837658239442471007684371503179788630832771786144096336412211786646120512179984278136045508813707713754967576604400135300701940030644053510332821861151427327585563274908952147094914216748497196520840091046614126610454918503049875968624910441130273919742495200452861508575208092853699411664539968454928943980210955073817517760380913245584340499827923070401675480058091802707872149406810302915177706926270223760530976835860922963550474300851795636839923993474943960687228228335532088247753169019482639023641996033854782942486347669760010256965567083286696526269105909903548335992273963813612476795048761426469129768499792655780439609119061155533769505682810899325289270614466546074863749952458043582959961337625467378572658312246973507686702416195318026826326296107175437039273570432941682628925144930877910891897219623781476829697886507417941711581461346321248997219531394479217879904574175421942723342433104326805814990463460711439817550350831534380269887727937968772620232190307389413368907549124839523357098722308943104211854319918867258762720064719770462372821529498949241245942942463647391125141525550256603417947753313926869918482879326690814314705630428248124526606817112388424681674829448568910184844974349007069237059820588606856878020652972200152298632461631817468837970865393809140674557978427784997682463328853720859651101410904157624258265451436728869240512081237319250870737738090366319776274327342807575558291141009329859546823236504585830701193511258919150848041944305866133813781446442002201646504122998323450215416397032464359293711454006658363443411930926504512241578448668377491468772810467421965156528842630787036375560335641981705346370403804390293628046837049578932437819373820606763162178215603248961510076730258246853881373788923952931460852952307645355113780562857237054377928302809636745713155171318823182192963848847187780267190850696497322167806940543721127756028115651912832288631257171140539961405363605735094084297869200659361112125367764277726179166162935460329314401266166630052528637282504607850009445183916126567242990019505557269812311715359499213911123680200628639797497242143253723366426719036410193266153162896547435496062342504711112932814006455008984925424174170343857206694025264625046942564560152194551931867250726530484236964089499451173824371765791257673294525536434596005601615019326203852882103504927284177676548294922979902433109788371996057146199465719334504497246362499119818803880868485678568571593463562129999194247433909357596438778417105969140533634022802404094461780618231803499457094238405531642108798170761894130239326210693997921650134711669314646582165505528445781948808937404219069255363181725173383801321727985776669485020087095560918546530754762987036164484866226162938217771797870432361940826544643101336050681080784980155847779744802577238642251710387636416692477093797302776721013361559318536371242731244041722560616872674792505519631340803940778237630584930111819164683709566529578034510934154772706129475054171118625933872238878762569503024166284247427840318820400061434971083906625527128782463899667858703526145538562716342272655461489017732454627144594701692505215539532006455874611905502878950431622989200622618281083642344196039849510131318132884516288336661654420884543258195923118828710667568785770659619256789592126064614076166414210935896364785275119241344701863665549286932292455945383029551940048927298106578147533893830271516794447205248518312656874589123760988423998003015939119549759221826126612983436976739926991607919821040678242471827958968894361482691820060031447361306812679276888869719409871235936555859336838439662095144744557091712816318238208062421101778902177018241545165246972708704049805312546119296590343906625982016915201587715327787852470314923799883846087306229954958624787119768353195555289744893221130117575504522588033724912256538452846007461831666069392911907240203903889728479787332187117118604358276266839536624962257101969196726172166744441672311602795037723829716756601396467208270405676996059339630536814271278909727114786323877409958701745650654573967044893725072528492450377881046678358871602470975996930842029408371520822789444705479431441585413843541358056416758095505983940134720595906904099776822452688168592330404422854452562373821871719736598820712834329750096946523995819042394733468445249542602508338374394935755649857825799214649628614321516352295613623093574990446489312124591961109003916905990426560724168557185543024194274900154622591338395491808980295586921154608079016047519435407650415074566465509229302523420026495648560299537397675036955306115658575438498770936364496719295929465491378914121059427936842051720209859286372301428942605854317071123824720089457471720493641636621557512548759747672538298677429405557268396064404778911692138433710287679408180662929548373632215791359135231859276392541906867638701675830817743321525769583035473028717753493750706261371277695128059405087790225711845130059513166754664064720210214280303504869511724531705244715128178435239628339636272405059470748673587697745278544431867026874968888213860145320505235988796047958363856645346495644524519415907651982373457190906957642324644331338426768349122080351245491145482631732560854888996241019958926573965445046447690047971381697709810656621735017544531651937743445292232798759928995987761803880180061294447484032365255387453349532206470598685367547771721888022357982002194875855353587867483325038472492046468863698585678312538230960603844814546930541525032833073374952516684473487079592384876253349403529276553849454786855264261256266889303377623640341452222424925531999548978723989329919116538085619860402812345955121993611054574266102261167356942581913390146663134593709204377467862537840042162127745883683204135925354655485686218544126014991642454832276419236624603864348011923512531317721417395484700201061820332908295336943132811606288183721786548339023507967773110482242092581918949003240022033604092235289857228804820478919769408541842963794762585888532018715942484662131875664243143399860763641833457015172100680353675397123599088139263158460656428524854054124432938604839547799486097011134616690571457254374606502884096168633165057498762325948999736949183621033991615444821260482656758086892287331222215649826519967924816441157051528435117059758988242883234670884662706805066124606176771936698727742548371940143719135307048997999788796389557327168372804679180026956693057479726596840771186436401404015366986391008188105940665845667587708018696465619875811061649910319287564351666298391008838194669219176789130993311960041833355465656626081214377826855753482028509370050147068902915923774987905667216611892111121666722802156255507547438534172061172568374301413833318209396914488863782911323964214633932077724520346098858689908481824739012274029057580826490639698659658707607228094091002071039946728469335464985488508498410094038004902000219695768851022467839720130363640085524258639278685693683135335158998672267830023364536699470879751693229584400093691585730290764704304503021595872839657924040216379012208549663106607970804822401259835074145908410732642176333551965135623351657828130028287954036844600008169056160488009864161547539231625755090238835253809193834480697207449737586226006416822888811159514113301894077932385834484684814177614607656943045685045686393444804704955662548737205682462782166595887766669876216940575941697848377518713498163511342998636805102176090787113340222822053020989612877549368868916414566826815503413911842040387880908059560912474577610574135958318060120430965564305863214760111078167942682030298247409039085997882794884463818263724534986697813888844850976774685488628455108484847815924213796686095261164218886017679681381773284795782493859209129269913001311382452615867591401014528049235557932095987170459059954429163689908161518593256256128002457005445921785393552875014652198004567944894306385268705307254270220913999599522973205564909920202324242059038925759486176312765167371643705085092571123875376524530594121934670546769868251748523828199112369197997725871528137335684421859907447535268262517389427310089595620545532412129128570854534252589196548664543147834343783101504183307570690948610910644994680642699501649804388488331128467653217576486203278191511452788037542363904212082456601702887019899545867815323465124426509489619148943159529240254915039219772929675249307424391954411302583893965578450069217778002332421554473785542459322641223798486787703637715601290311339019256919448856127019409962417288122237971423032319215298260040605142841603660996644853199028539286999181605328864173317086116644494545125950167829519204456297556006819742400252140102348681751511767268572782944521020372800679533475916208753445204882012163369063488640826856569438607707797363184487567984690579430184410507130576608708010445824300097780241211573659422286724156937931184705419613456839501247205117845808799772794966320435545080203571465206354461237260618520937808651501892928479921193151291759965506647913424852377803620022789429575240554964674280607888945165454443934392134609553707172386166500971115936583054046732188437680473544694033021244209595438874155471554528350821081101086599256663949876240008951959387127067644876667548162446257871725973337734883666314402895669846364503551255878507761545385355097867583230512363147440848468429527649782350494348188600928694077422999021520983528726250061036794214425374051694284911980174751935657402688828636563682297297876211000238997439979591449834856311861079553923341962434589292375119715687718909221751740308808604527664401911966807366640532573742075300720728596780544844750575931659508787762996791186557666100958502229834964517308432336438943545033154923336064514626241103841371576251482227239814088127311830049200126940669417805993165337078151195351437597356967683708859712660733257725650549494896430775668781086668118090325906009768350468958897800219797485591724363736012221743156463627502329949938487618002439136139319860644092937245585520556941359898152388788654431558872742488417720605625215908799713442848407702312359503192712942344550256893674307889544744145955849593691336627588050705664296364622331016496924893619259630079099202749333761351974979169420380027279598127383291292770167617895450880149689289081396470376340137425717009815771029010459099944890218948880743430128944245402474726028714640011213034045568900482280937799089686687040250062611171372397460308915310638959797312450199522211649903615369500343612323342428417628598639906979277657457986574351224981173997441858481084035380165048046486163603486218583066393525646436828452585339777697082889589528063517025288433369896648387727869295967238372428014273244813416884222574373179466503944542895770919938683245034526071014079672761404768238025861856837625291171742044632991950506398431298569956382070105796466284598608908877736144121165906018629652046759622087265124102702227757376805867802845320113985903972412806894505359008410160381021558794472279538606205079727930481651154383773241496117333875931773983134516770745468286590460573966531671361190811587113926266364483890000933212852226207877077190923555375892554701343241892867447060925938411083196297350786481240521228283020988589506877453694497756221745494125289196670357390338461306115281779419607946427080451891709969151764328461121206053848645448407869106214699477985327630048944798607668986723126376163661633337140004109391723736828405022101202751349045299775079100044547193652435217790059978593972710955373075698105401271754887654116835645583386337800859792999639168819283438782510394384304416202763942530093905040519427721931551025110329661176588146533969467466001262430895646088257624655126778044310683005638454392416734390694230869244687123942777450805787784245115435946155502339857785752808382630940443833725724258253109361979770977278252357917036395770039272304711264867393120456847316648965866800648350248454323687058536899413273631812226568357823465424940471760046570074213563829852180639678236722023568756761140820849129621348374400329852801659690370369869126347134501509907084785617478320687435863259719107685228883360004943600171072253308595300662598509982621403294227907547475791395165030715669149566989667180041927902125023932922555378305139571109527210389143844889181371919654067918960704410839512396197074884572876228493743402967676087824238444278932899311099652337998184562952988305794011198891567977345661219913310862140683939169646030522271306026746037397920487082151453235137001408413561961997134076184261427516946695248156055560632296460600588609660388177949033726408856113173336533733072759607461451811563449064924498421989762706030092753071862432823599165668686184214308997786163379121137659739476032516026193948384224747568789828721221736243654119292185854107966555875500290075799969107900771674851600023869200174590618597650433604418690760821789364042801648957734694289376699637808766359680285500034234242668736170874447600798385886577062290794406912325165636241398859823688882481487257750170373106112342084708344584081495981996369843147647750920121523035481138246416026488214122689023838057259088020375440357195121560172361912771528779831675400391145579358048854203504445086444981534350191748804553440726859807348104771910257067662869822150653755302657841907153851272191612777419716924838301454965434296055967168696715137394343754498604435213124134604805717014624718439158172485542274680288732829405791700445422055007160008988786930495926381895521566651656708374155417020874679103955261359506881443092505960172240693805471503857257929687551842026422905633825922416815912415412634176136842510687575233990288163649945945005181584247633338482565436999271903600597748312090899711687529208421803919132656628544639213591379426556143352647239493540190042126393367403957171358912975702734577113439869235614411600498436297305778772974643719638476462489506079143270534783938998238646879243079895148710290117378922665415014763867452241701850344831456370661827919376361488722611905700033969592639065417361065796761535426714472105089777458800322660420743477316330384023792261887944619855042903104613945723204614474497428176781614173776642350758556871513617642946520184715537005022662969342046338399829634241440251894443141781087884412333045618736061193289504236246850863824181607742320563908679655922841167735036846045090804383716545170446249023398667853782527784138493746342896189210812892705198492512388114189304277844756950524474840956797240458209310089200501712928020947868636428033929021483114664193322511012534624010674444204848526726539574338392335418671015586291793005431226182964438030976108985565334408432545019524215263678893237945617437533567461640205768034785140585267620373043582921507982723214361609385165791483455307256154277645175511812034685862257778323915363113701815101840237736193385719831076071382309010859025804091550374613777542345559886437617025290953764077370994043732049158485829946368259964011798802661273725893270055665115365049320387751746830437210570868234962516251422834233915806291214070610109366216806975864190557418259281874407442392845896899421596605992091729316520900534029777740926222861685200203333650762310439270403601287881674409843161801690405451602941101547667022997864874589498257252078327653052686128727192562906035068294562604226465402713258850750735904262144909569011473852349056632490403995640994434080686809842609458881318974861697961510425446870288433634450970332900750709193571176428196495865485364255059119331608423876273225867938322841114940447381542984604464648505842461486681307229751829749423224030511983648041611951379790529827988343111157607587401429087189540728212468798239126615475715921700862176923817277519034322958620738063315976433506259981585187235367265218911583850286526425589654817979681570829311807903749775837589909734679633228929921780284223557349748762315404143795999430746445806472594597230042478603114382387367397822417317181322777943218883857489080619652739370874402398446081248806444440248712254976770293311429251311650037764044715691097849283021224216426355727480269650912800868932976066200548578915729232882844539953966095744681064074823791346982683838632987999368875063996703675986391900427507194480165051122755193599461447049804975684966480224441595280661912516924040218639462142429449289581773082862207199135438421523597860012008565675398129462007064268118594991951465354181635540978398176149225218278168863595308972050535582655562002108965623870362845582043024872195235679436929179813811435048971413769091434520938316733484837916259539214825767962619154961684918180761619600918271641357276562071231848036523844047308113126763494513037239656665063012446223098811315637350242770543070711179755670754414407821775867616489923317292639910707120900159137657632121636908690179490384188727126534966204284730961865180117258546746585372970520612177828049551639158088399607810099319973582165370158772079040605701181212034579876560437478126940512030815644474383335829269145267716609515530980432801314086803269433676932683663743392700488887170915157086935361030727856996746236894747963913821397078104459402093672636519743100111798977087289035484116356061939629698640238582943639118906972716314529529994259143225918345258054032871066952167545830353683054778322360939625744093724716218083085040689301964282448984744980013165425294157657422565021785358659601830432962076372573417779054306069569242731580571612404989325915465520893539306137250932565985339988280028122191311982491854083378279100776418892093805746146322870759229544597877208548012562556612106976189628479078134547321075451846806862460237748233957156319764266747755702687641946585955729232994198220291081448758624330533387577479234345460821085504517309023608702931104692152877598420802509594465172455099724665117772020463956823592469755369214689688091191815764111239979095764308473027783169855756491095919238712011623341767699145573776088154265093819848799361429476761276774763558800898428269590428584601254099965127631779370328621902455940382402268936314332315813953040761346866135186866466099930637604663904218437950911533988010103083083657187526294721668525920688995773986926269380848343184083119305591909008144092917353359938802621995458698274922888433670515413575686526310714673821121568723368600337685887067634423821387123742016785187624822798199385748979877903148238922853198894538255326017198730407509706551141743287087250119313355090121791254870672147735612560804298462967616133741255878016670405970073883054074911729158022370552395141100800656824836437326025013663667733097871404427637826305958171572544249286326695616372931737474723976216584245309431327305704837699650592483405263614709836864109766934208212032607407427504171029005043621203375084686071771867467769266367801951389786857736495585503946657376259493519134275386445904411772543784847447660910592106893323363993175555551183084427670512551391154377711470944034260122812885839866863267321758705941417027125464000668882595486111388694890104164317561287277098869184441215639383358991781552038816297596962175171332617800782205416468972845604712568590225398060977931491917391294055792317531395051121117420807332657652427823841856784145736627541088836904294279912003092365002129778116771996700409517286454192522450492656353085157693694020271763556630839905167140971002136144266721577802289778081681388674638636238481519392781202604348213825434975961668211549383556823183524882457685828097221125079708160897599133393756230597947275822839345498755265910986693201686631090954712389829231867494428280454133785240016813185652805142268761360537266754245550896944439358948391960650157419663721906259264809676983073029552720540313557943537453794207320417503878644375008635856972488328317497138468067352403375229445770199554978575329980320339177784282139173411500882895851202935872964271970971816096813283101321058990369953026545131360875179503477027805630153052761803257628147675331348599601831927066474435898023968804172705882504900105871022455649965124616059585363469345652989950221419890127651537559214880773216341224930010657783430702042294136256300346907401143520353482035360084876191131159629259752643244511775089994120348950286135036667920981907675903278043594399023678981820751809882270283162748737710438911123013719099150795741636799041970462326582539982060659694842178211278659276187112779959157396597730071403929838935683371243072654186726654300287810965510729963752214876491190792936062081779297776428643015056114382436318278902426342795065880296169789002578696946793575169766977280212538875984007928960057272748930926050274948260984401736124305236813443484449604868007640952693506197500581810774470399730513355722541215309129676720280708109073657462566702003740651265735751254078903375572298371374985070174522009536308537639551575981690655689743167758782782635096680660100973179813943669878154016459792388394339573977029524308036751577013878109893739444585208204761037107635675095847136295565420521795779867007319209879644772935610681438256380567880299952747252397793108577255164376751339327909150101331834503042598655540843310669128502091979178674202171211830059345417812917788498960367509708307799630770020427178128584234294015740985933677591258653888540719659930375917376641695355840822814312304706408954940681263135171625118638439643117459705172684542104641676519370585454126283385807695724942141349160180533304316557100963081985805028880251578198821998188300900505557630464117026993581499364135021954916043307318432480515786934966227058746003125515590871607606364468121594966887426301889752660675723047347489491597088392709056933287681339918209552124704757938032606502653355323126013707369141266750774949167845705423167140144335321524665541380034622532224044090786537017982890418876042451832361301029961572331349735087456840684289522777208989171395488995119480444474773238288826252295948330519841992408846833874121204416126065326389619175891474284768070545847569013322388971311929159206796610839572140339315335736273011044913573466184355716749325431656708328620802173089371099211274630162655868374712908051384281818258098923362621680883015948625592954702012299787118082756522032031966922351096309685491379878282169579853524787108105538860522987876696059916721574676900798423137937379348358250624251956680305631616960504341212109382166308443045487544727038652163665135707065046305930510655436627038699258974054693129106949106570784038632343390640972919300098035744195545430473847177197728502325451079579309195769378152091410182735202442605625337610858904051569814801704818421127542751759114991785378378640153530668062329042203393208264980792640601768424037994008093687215122524014230232388958236552518505317233720141968362217446133137422411022596145892487815448017966802376192294478881046188547594530845754618847447712681321511283198802615025911576703386690348081043844777618593459751167571374183574689391988708756002320349427606801852441200644779845325696465091244201320732296828280052518768109262846079614688209608248917320701519313942852418361460449391605271315857847963450575744016028134694279494815486047721976375503542217810861868105821243817028326213233628550181620445895558255502163492640643920834596239409159533683013729538677642519338445365633966114407833270420044654951058306328636357841346323364592094877057390863696615633837432287696732894535692703870710932816043418777684089243882581581989188536489952856580729276851697208777271600106213311239481613402516248926123731220427787636205491301022335938827057813620604594495522825327608868870949114925155124731183605539971211656519702841404672533366226991912425730583429441123130931314360421002077246355520282786943144410423582800145031217161775131434892151925488119883140786454750929047517106025546065884002181008928840038433605301310154840955654940388298019960690464546302089607189584669045935671736110206532980582656035070578328298039457298666299548495488941697294819956337070248316621412987911791925507949530131568503395194252213212826562886451193923589715872869019001100589990414130742059816502703345056846183998636171886189812481257681234940409604665882611080149603614844998311655986125167645161160672629912666481671037844534439451914738818439061066840647297352241331688584142724792708872768756198595249449381209064105963075433677348191467710320360315853014115179851506280421255012727441411459715824643373362485402772857880587812035200605787629554740636807385740930209294170066488990484027861841904767894401306229809322243682603904968928235354067201675567404363128196013548418447671982531327355956055055228134717750196649385392137022564898309035142020579160360907673483823460456037568371827105597512687663618485116732041222976404636540124832904345276044488054042774811822861749781031666344356844453452969436446603988964188354440932257164457419452671031169249685774811636553756353750185486760895063815094313482483858921688795208632920225369347942521708486344516153516959299224985572521449420034608779274419270524374290483838426195838323531793749012916271964300103316729228330007247209606934930640172778003116633288518263607830215377457054853285195577384853401864642923042450830535090364445408153936827123052518700194649327900982671438745535061249451739842779571601343226889634288100779900440827349867100440566204540538031403418157996413836509119629146509665854194378081086760728417664452415308516446804754381153886876332855242508027365203826226382617424526478735104627391417631492921608737458852673048725369499614783064617346555615382378418437325193159835690428871131807563260050319471039972242194060179164793972933287495506692651776358850424662322433929580333364604778231659388604895218478818493904720588321735326722857499826381485951018489066779882274135683043235685650888506742269054565791108918627647186458648530573612535461752652996033944789547143416511413165225188349135882382585625177690764225353428675306458606005574640994745208538042899689693383719379486125238080373128196059500266483177083239097856942053422019621525018775988025616334185318926212900717981314148179613771027699171663272575981324002672548488416973709350502297421583361209582637691724937660506322758975189584883965833436343880263056829429515889708098743443745180913222258575221945111077793887292232162820559795296924928871442524879306650170760090205811026140662736670083110229926753890760157997082831494597585288012320657320030532821362730551317443998339281727104828181302321840455165605024695963379594182245740945909122475176466815578563947447179927503187389555893846001574029502665713219011197933653300149473302933975842805593227917047379200946074183412835913476000692877384091135201632083057256545575459902687024589259914175517130052734613685328611868175900935019630390537956856014660601378721542650918406507823866011676074766422007311174227866806394067950374379612774525225147873541315503056948387194813528318009788776026246957367507507134861514076723819743587630486993177390220277470090130996873316850019794151449024345290643164769412195324900622131521949858774452149364545715275324831050000393424789631676832453920354168404222832065225786384102575543278963069018286902890274817017877817772899565675124528680928529997479777538750376588260355943351696349953391793340780090477935343154672606504727165385336963871449511731562260032952609206163889092482353375300948484895773270667156240462519922968648299850502596334775044141429990262608175799544577670352735790172365915669726632748114622558773856988562614719939218764392473773655103647126499742204058798319417312636699045339018109241240834052683532182802837748760349297058480792002833270828899119849517211766428816427414460947355720343803050435658830617117114393346612221991784208517305731325599537398989687999566215421104602679250305831933770515059808054995077731400946528194305636278876328535920639102734163128256674808140750443681574357846156822102436715251757490973981690319611648852346333581500337696160394886988229788136248543045434128171157616606143726349302556989959904492168261363415184282988879315644147329774684413641855132368015655238000913529688463361440942828884532496671199965388517687348015459938727761782903643879253835003305231152813904583899820125024651372305980433072635635778058761836558785682935488764652386892652238223471152220833026886480398287412881193173928909770575448829857808096491018167007302667247785090254231820744907651971290147101602865975549678684059843317291103303104313886300877492951274428972604063044884535166085939627949641377176221301252211749139969709321955592247924880069700599981270414364914532809115374999478894493073718936526264215805120955903556425508366752666536012918308569626017397333563358438026398961352333326123676857591768875149442850646725128611302513951445630953874788786815840890737765095210659770641389192158400077791161486157349363091114010012035828900908678332908907064030266698487561390614864281406227279940354183525497281210122899175451358199688709820441884378561159495085984649272944519647432142241190155362805841878280078855018320790105199610734665077212803363441370024248367144750980718341401611925499085118801734378555698577149922014208611418170508480682724143067300398053652898118536856312323504417069905780987924534512764672833630837141328515936125790707024367260838475718806636020038259902880048272675268429226311206953498427914305129827756732478567718327334623795311933809387197099060703968639796820672807634119831237943711707590038094988021825042347581744984666188969966646851798373421771146709243284634901381329513611988928089034893584003971299431651987913807055546514257339123010340061444634517596989748037406808216252141854897061792654454693702010917916796894982389963715561974486057255304330721693272794081008756144087862215634115987444768510304768439871235078250661850781592752425553063417059810712856294865422886781337662708328258500050699801849463670613022684088897819677870741499862553115811491589340144106591653309730371002984738359675991709685983378751065841956568109539204801210438579658169720342106893143693193937399368836813479263257076116062263890368920262408590013342413065617909599281439841834016987724477468132751359374501074071445580421375358906398361277260616785585741769985737943431565781202055967406834782983705081838334529377812266643742526004722277622405573080134955579765814250283341487542662261832082596534011060263272834974744352456673957263295327921210412059201195708465986250151427200698377519427139036273753597277618697512469295627461419501048972100907280157012224198023674482261567896972039853213029496996148212179698452220751607192798869890711019652706163011156151984272568180390459214221805470587050989484204320462745999186536035659608893502584299667148723586242915355183564655645119085365030157643847660892023877043161481938989933928038293463069265350795741344566226123453352871566278944149172295667984033878077386583862037523133762590676051565770724745800304128691879301434661333095543442501958871291528547365697660692910056853344122969170404856831064805505617213393162557250848020331191105888285687470523024320494295477761643383246413741157127535422527187391140210471898845639863766288860297713005817710245394068679439283408541958952191451198181693354088358692152089428759188311373969067340536006845747711288058087527857713642026201031439319950183709399250874371862497259558306473276682313710647241939200373251249066342934230679994544066821177153647207134823187261278418268800454115461641977107518570715109287057368446406237999540252377903039390284710925221048411937685498335459627776001418377758039895478004508212868587130745011921620360129055217203946572699703580974019178111883273546501928668187802581857143687148560452014907605199296144798348269404330715349431981051633762380603649482344256595128580025940187919492655965633548406272027057519836518324642295711325078943052727557158352620706710255981603296353979106455764684648190820988603108361193527665343799851402903491838117178397345014384446881186853142668243795257260561864396398213608024754663975937661901323921346886111205100425925528525071447030073978333456301179311348435906769673503802752708998758143540590453302504094078575303147993482068147510900220146587565454499005820957023355731771226766273721157014707006277692616937807876154311971156144705083052357661619350953852693709889721732971531227280214020226728215321156585488591689772462843884705826798522286730900453467277852308414972963481986136308980650829237179516167327012687045685346512135171878255369890614815219241421219385931522696791555977421584401641207494864385203551890018656796305357679584796066255168739327376408194025549775072487632057838350691274861064931267469359799558988809130340709799337830799805330938770796712156175452102850561407306633910205676173483442788891393989524912790686732119324162677909792839135425060460465506874169344491773707905366717472071509934345047099216087585376870479416757967414926053546635433968107015565624878758372256951005440085528315716481964462416409660840184011606185865741456104615635082826572169529423398127370746286154204752381931936384970729888344416590435688018817359463447501495877528314825989028018221821793090006134081256484984695727867350258372041995460829814573697169731329790409732718646957490409339750158715513687590905516813587534725246176475820385579281690032665959971898574144112297256001446417780383997078244156418676689993351452638598750973776529515698833681775821723060083366128236383126377437373995340382133212273055115383402003411316259194022472037614236111623355545909399194122435011931944825060716027010213047775002170975831719811404735177756777419346000730167796456229852540220692509754275447385850501939450428533464428612192028083120363070359783833331475530993980129582019097262215398727063593881638284410156019245124065877392077151791855932764532829755127257822669101930749302876486638581511217645816189743740186839111176795243426991457462578327698030170049768324043616569609962576338964931112186132105117618297961001121762595534852839987225087305399960191118836766090340073055550989573522675846570886597884118219175750730651379008015587642752706754166207643109043340208032660097261838495629497313153100083736079064009433040544025835728308803201412637826562764202491017505143476326931698754332220105452587865387851301355255377598395633430200608267604203414072259811321883806463192696069404403196150664609046006117511684957419064451333164692373863687836249051980435524410197950986976966142280996530532602775165636205712999240149415558314357547483313702570171433007023059158548433539391613658275059306366289850903496398841579056227799744868987368999440792684976644548085744532341842701006050576175661585229330832481317432546796573503711099578955242022094600689402671381204311657654395174800756798364501687687786559891447648054432109265636287625970952927727274484248204406455615601238221035531854550945730835568852460527540712111312132722652396967143171852718376834751890891487558400592366092243993055411682050822034244772188538435855174349510611648873779312892017104458321155370856831948836384222549875784140341183177401200083049021519828676492557975728457473479534667426445038528182233758644679051233641894950649757530486380556335852254231308046661820421831242623346095142885987138188676696925116313814787885529974646297637577100703183138618015382552225158338250749755992111203499149920155758460911080194894095114289803199307148744914737401933987047395945349746600066194310182518526147677904498980060310753441323171245874354220055948353662824442397139253717194352061660685297563327882114667973621633576779734100803722407481543475658127949867164200896246562826717263352767247160074247924457753418658000866967279406874298197635340097234984184676821667947128029240947315045106112076121436538439401868571726747409305657272179657854151789165772024186205069138613855923100158180372813966625287072193719678088035390986614466259682512632858349705854328569669079796303552831849578636796398498693253882121409161233436730405201854121371352329567651557122962772024997882861619626782227969788842660629229674995495290374276229248206432150666949721644793536584712435829739661414465206860867360677128874937462975896971075981536769460033511168634075476705524837042951791150018119393882856008942694815321799568226996270440741440255859872391449708122645474723375297214245004071254738832413892442426490474036741468251152284724833095162087743105911417469610467250777296322977791243560361680034284419181098462289947353191692946267068867354068866288861332364273242151194349454157858872994051337929590112083266599995359694328394180906390658753041363435664023539968063762463367139957375325261005770907674084575448965358914736683980368578415656871582405179632943015351752591420940780232459149696947692091821302496242215148657016951209999893633310628830002965868236493759435717872202432212439900608300562760099323747804235470670192610467804073921590407766865671372036898974166024810502919137078255289597744085641040387553160885655625262111143326624152483450314953966228119425321980582037404226167891652287327271865819536073110862462464450039936884767992242279439418698071018396622606081826212068029317542835081321073504445607832490620458548755011842327002077689967439146849257697492640327798870195238712037368621569452303855795873746527196811458806408285611102447534644877190928857093593244143125478224077833410905989294624966139735564830009305207756757163017550826467984393291321683886863113646638257874122397314402804855007357154359697943748344207724969307055401492221811887522065285506635063036700691076965513684709390611954836635454730771700647524654012974773504610553794412749959078148997399834570202560277753166397578704571651780067794720769605744322592383805512430782871311893769556494770193618019994553788688996760492199373213884401475891324583455472557101164457657316616444079455570971466347030077500222735458292408388026879237800261083980533355369738847149882520625328442431836776580901362615788911540812198666252616314817187585359956515555210012748578779590314672581895416658684220125522815636720316730346131357617782063728990854586820370678411513481379607170100730612921333613178520887690397354090720027218823787515748390551760710084415808020165614748537435301581594962592689620562722470931286872721707790604834763416425949220336367827029618444894725609179206673492526341630035850645973967955972327731776847167184900181409904127910692564392985222955297046202672883855032021905382936326428715751232289091462940761252167602966111785789852837956637836090581136074270314828423766622005479975641042865818506581237336799170641708091252239624041612593453357057887475679688619373622036699305965730608063126413818867458471729568937258054103759032471210117269033334649957451479486245049235813492228963975480444522286788733822033545063215144238358009241613783465747478573702847498337518376883743774904839539695354324255358530687801040497655274780690565709444612095759526100340848048910020691452527527075139700815510456801923033440616499106064655608439095934183873600711732412223464164371660360131851003353472306677384681751144881993998804394423198938733634815089164753723336436843433859546053246270671565099252997346067975518046638681390532723329173851105766502140763375839317760198200318215597780484406669454609292031575414716495253582846459905663467878465627153281831716562893349135917770607761512734554854591037836241964398899518213173470511428078488130349315931165041248136947804827319291983034938989317023265528622309208430795686788773601796045793546748104707983458460771342527933835916572703807397049340047061989480141386763231556585120819631818408847837278718379800246275528814040735444569258436326924648483196624180554234340292244117880989106447356066857720155593488512983210338491276196167044317293859630560083422035885355616637841090225585812862657589207389503130869708828741062778501164178619679576355932136173631834430801075328995136352486959860951706919614944380612385016110954799476291795733611872617170490478477543575088656499854797910985885889165505057598437908448129538662766602492611591280828534567159872380996391391324819457577684021425947932369593856873690695567041534731253202805197285905445646880507558143200137395590570096565290693543418484081323942939383552198353333812746553624461607019183503298411414639694423525533631328552539180783779941442687340209777931689015804238791122875161871196548514060402267649103630181379645319044794471959638453701550929119405409964942838596516053866518407231171976252203668279280872224785777250785592829346374447965667135034634107295722570355350541883853917658787461726281810593131776874545035196338952532891679568899146656456062736262834725076532757590340059039430247850354850112562580458188912348403809147249114524479503523997139451978668374570706885249371640324404592608193890247519733935846821030016041836924496048302876901062306842361727291445163587973820807561719223039959355534723296256822569946516382289204193232593817372081808227645052709004010186035755895481975358248947971289699540337994321563510419163661106978434657421212394316131553294751740249100649103281936038742529787922892082532433185209413576828002403976364894854656384703584705341456722113835844636560988247651921535318830337390367658210740982043128671606532251750575191778657730757765388558369465469885964822980276163840256172953297363829475131806057393002524522117527926730925013378556852452935534554909052037781072091383567395344969913904207545335365479246107451256995194759034100409850611658695077625624431137677061363262486046236217551646658395299538466410703523231593088371307413553528330035543504627894634154434556815973412082359430601447936274171671267759529028659509874868907127899067518265275109860681968755274025846794351354206248843381218456817710909189106824833016795271014616435911758339599958419580514960048806282404334164780250811863707353197575070674282302075536531669797279139277472763096934230546189681748336864115305195686634059218631112278706641053640919178263723687433653440469147163535181632943592832388782202589650002625466090710267231421859954402312773988006997582678350915553001852679660488413429383541502738857204275326778742096689494424382330571519626441968812764404341867908556788222590186928958825279942976780234882356149956706159350153086913649179294217712931853256340743558036655070035741843199162685073362069424326252337164505788112995216662378853443699261602330479277146769527713822616939136855742027128659688056739214906560450201944165627912246180664299797806543034945369809854402075219191857292907090126124027022424731365253041551192657981825654910863258108618632841284264083369475648296629181835655921297784449322550700438403249524759151149608674185842741904690809867464124661402378214402138626573907718929828500967555420187019072111728423020444718350414242970077822357241823877706307348314656862433842421111461365101471035818004686688310635441970830086707070830322146780868808279967095120666764302850609010521571304772026974540318710527943537519307501849633585434585294365184952055166423215766877772682558400813379967145123952756001808465829356946887223133141678010644010081317111913757628346440751401933900282193443319494994459117019603458301979105825188973148071407454474051299045189608538383064161998844384378806209490712128679516551265759706875785684964713857375623396843999756490525544525313853350171778878168109323115818352450015651837924957622526425884415231349337845278857431122654064803222569168938004236299928854194219564604182218078874976944446684117459478754915414466430827845227086460191061151806621688887532817024529958038524631336503774573690975111281794824268384005411342570338126917772964509645036826985568521489369142079618302077151262473893041807839254691012048523844233247481670104986151836781263684824662977559728803718230111297464926554569187382602916439170126089959110988942605666916380750799998466353042954685236013204678070364178661665675837619547167358374001157479616120222392834248122692481851777937693566648683611005510426047438949843559690855365977103204379997337225439827078886467363990465785590571748939209798387896437588403914671908365137529003968912477346057353042633100400931004588629009013329926848957557700340929425744587610484357007168837030361788011814443346321031216252037441345594300359613911830703922623647533300620641282354250415403503629329915271172729597151277058989794118240936791061267712566761900477088382675849696667376236708194357813795724890544112873598895279324215887925440371444960390499989802108565591749927109030801378340723722924287927710271243738343411857531066474283160603791881726946104109362571245403513344952537520354790338694604264304678644670186227004365042139241613623774844606396198725999956216249620733326487014771083432131480962124083050639953662773503809733600708527021468335985994563662443993832645654845249672552033057269573144190233161588795048302744120326908777246896578350563367162950681327442815418618049785514290933378588583441952799631466903360629063099583576976803098779902825720005646145309231571317820840351401441452908608990200985134906100948259490494474024345432608133212767039493785213136521104540502714216718856558081941725740606247713803013709842244717904094844163990374656433744418759127133746803961299373415649719499241696334041165541237257186437716752974511483231434221294671975919302885563140907391141903832154446773624026534821108926250769308828331598707070181062568444727521302394058415848623383837658079576940554824708043758911191149155621386865613543426917276842653277310678664810915111745139723957773884172999815777212932827926676342022193987965990804360036393936162191635097462834912581459833525969034107818649158428648575405023607543855168525009078353552452723994841009256397030785694464656242417976862587810160016754206013455005127410183248285141521437967575632481535087823700147922000928504948946507538096086003529167410207101776676287788636264453330917139915155762408039505560989730333379209935751679423240801340479909710292800557712721235167872605582943912229687460690582359926578496572451000935922641410416337607757117955511557018606679269344351838771295277489574413185749295075168772050057548019156450749553694944528442737593436333488167222849428654785913666611851735620524865207032815195610213475072812800376168720314109001695525117098886924076888828022391146206379590904252201230807704608240873153042809567030197160445980996993468044216377238095780517419847771602680175514233942228036963290896783641786442562683955790335603761283675036538523255140955754374772770093137038160965506443630583110442016049027763136961179145661410623100826908201717011538647344913795663641267326281371648897756430406022099951828694290250914804174321707738475545499136072739267395964752538402666307146394493550157409656008034617466829245780178265983209980408155425849571827295829558755306579186084662645740325172340546541261842454128555644898560339746661658452520271651361801613852550285908683763037633807780699565412506544002528510243704500137268292639964778552517562109335467893323742262052510764834054680514040331225601438412865419283039928287239107474282493108232644115412964742241058557607044520661149302133241798522035662945494703372081522891877970056306733055928363419580669368447582015935389226432218011768438224808585576651941632599118802153025872886904931917356783394247337052732352934072793838641692287438328644153503930963309959248467490801640876451262570288717009236216869976218006174620710854617442332003919815185950212510784894138106889529482630165382630683306558834945655386649966150755549249948616111447438542552682276574122772193292308518552283814848223211844575842636923770584213497002182487933396572417536259169411168686924705995980222160155470318298470264057490739601403998640636460880379444032886429112062824263889840617578127951856574881852886096209487711941878781070403602337678796960429954622145123230409488641209078961619219254591208989593776072204314444693943243453190923747049780263696049148556294600538024900509436416897833700273844760008090289972522736038014613302070149466349359486884161256634632003249732989740912227085966466910954677309429235545615369106015545742425677961779973138840043256724587740998408410663724670757956495808062383124908200967272023645567866995056133629886471987066407127939593402546735353401854594580467446958785810107471265458740665628841505622818797527715881149102538700542784973998485952479655305710752117749551636378404511121653735797735932473965119530449790057184539067927607463052121092805571091837769119342411407906196727545549374403022273406273439697421124691719096772950607926606915717667473006431280223034333153824181661175496027442356950424844438109929464989299270544048881149607570742346013013539863560977345098771377268958280373714676067405221848906149177233943379980257423496271636677157444870872497742445544634572305417056377377569561446666658317295459800464895103988879299295090746292732740756064073051983508853054738503053836637685974201538104519673931641157916972113762131355575112304316139330719182645683099208205241831583793148901278762953795563467099957038764121882854770752619219629327501861833712841020523780720796933437575915979287310884124430043894765786161644631871770887017518707759113413440769086740510859897315739194160529300377359362856446983534017958474953633571641496713591390757672530502676393865008226250297785228945241105363042928116217242819749795043062685409981816378504852277158725483742438799439112302942912469150313176630330973914379802638940859035063865938613662628786854378297169894725905757767267136564141607364714648174029962770449954537875185067549298462016784371206667547325206213207641365522552127208388386974723099176534877087185324260472119126363563212773709067602468554900607226808820671455243703459883233577581514560262255488069087618184194655526418146482451660484725812450756413862984975991836314447741469369960656211084396753736440934235278086077253297432084092262170951364133557366467218478077233989385959910021166080591095453548956581876492646775823104838749560589883052983752334502325721321070399624734704163343160282188528473483448392898198416266746288953288912282797013457436577847309773319730045007501483851163050353942081211447137119318883789642165567646520995158863766509600285160781128089764616686996864976493511467236031769503281951176618001272690399946273068933895587665441450089133966794595310903184151795967429844409784634569981039179592407423017151878008758906359833176082482723865276958905480392490669796592853940479073822879064798826591739981866602731045842280293021783920757421846266191681608830154709490111119097512544713289532220357385542309734536715890295715043834972069277629601236439739784524296346245807497617044835392741002249033055479703214986414222375201921569566731147043031623192454272903024487434604644290946388181589562912631123798035609717812157802336488607470148153825163287461315699116540007190198070467046217095005608306150279690861536409455421458789979674434330502574557187434263341581883751423133906493855526823936527400753503351116996626516893414388054243329610944903414437331516647896672175299144720135356599859816182197134049174965036570903746856724215516016507990328559867474961344568886086388413097707072165305566767426902237821852142300973301411974595882036715954344788654714606120249727732305343312122268817473525902330132460705430763840091219585647100868810902260898332471444923707408569623431215436042486309062550756578556999405867745267540508291297649207412755122307710571497592260123063488755308465259214143589357710221933292649877674072783595228874213125402435177842117898346033920464362032408103146699125126726426883151587709502152828365286654755072765505742118094555626402629933746703648798755921680886619069029955203717813078591794200220630709120033255168489134417258003537132757536245080041022819234850067595128043875680935709350945488102535896945594761808848816790987630267920754285616733250396127942294574070216492618335639430254478286316870034622859282141561870874065691989027192406987474222250257568845862972907731099467168291991412838990588485277989321937091288420774752169843226815078929578728039788458046519178222530115787503798144116603510147200866317269044089407411443228135025833060741768351945794510265242756439954430254197794380462273760997878845585504161603412443292551233794455956705981876495619826942812193036285221113331236622566354516761755311460810773912663660602751091041955530278388719923250304788258894686656318159252456659697091625976213855452279740267669716930419657451272311510246313402325753108323584534987992888007880555429153795383565778971627212845974427078677093762510161451025099242460941636483441302431091397047647548660890597559202763572308136640659285436042832592800913112820150519410253286350867446188034262601938738273541731122861972809824985583990027619564183688397616584936283549342974250325632342895895172551493881265786352850433959799656549401985845003292934254265600255088264684547478301699986285655748059209308496048430347521736556426365278047284161000899770178088495903968486320717353299320184946466324572471146624122081984795173408366905180814814244266012493321576116193545860140265022530533514488748401575017783409103107189014074683213248051776969244414674078833057934341632514789089064663316204263678127554175781804605527781778310266050213116122576035423906418048451796991556801024074122411225873243298686093223264550394913991886618827555127974763316758519057809497665167405950394651919185677804424654644498775462608728897946130550111095933346153238101532792347481571089668951891752226804419897823293280284274275134061466230716773722504995755690353211570783130060349670723233144298017053909826482085795576206604876848786227705373354716997196878041316243003804438715691020951754237328576379609189911212384734450757800985986234026329753719816379930335342499444726473142659753690870528751495079419290709736120162974596099816778937816148155236560548380673165331295639152670958536913115311934829260454676250770238106196272934491288337038050024734462838668977747911477331326990339638136268626712907924250875145025979695505495495938230854660773193082471896259874864549684777454914997731298130305758228330873536652826950231862126194045772773178898602100794937139310283904147290897413555415867350711823023938732398393167200761068610008599905516498371473840384618277369651328468017326865418512322960956634209472690266643902040247399774540970274741105947474641059832679624801416589681303489250047721248183172871978659365356325254844293551496124500391759806566472245167926127097807317178720673681456534770706426092272938873712698070126803439199029906131041890749323082489664907749213570505667542199680483144827164404417288984203841773544471622274166270715188695301099731748522867370473328407868808782386832785009093410388109036808109277996559284286566183127216981744503727098879024045812289881828231391182368389435275418275476082592864345906865869197680132521224036871067321000694704231975556193311559590786948131601439100421075042590847221523461122101532938187515498560892227327056209160701691333400935886122104896142785914196084268323068932085869789755967541588698717433693423758494567854020196631999355126140100753560124110267538400181520044701005795181726648510037590704582830635581471307201129510945502090103403560542493021432447061529092683475921599188041728251139008955797079819807426597991001720913727805193815714886207620927259757057974770721623561793169520677985490585360642965795627978214582455497697889816598137864053637176885267103846739464895884424618219404248447814243576277493096501954797526028387259067704506703757997250743318168187675477062775706095687834559956485352350056173060750430472113213580214495537318698769421123927858711462186795249311359972405073477766434026684794276322519853031583607832086568668267593090752498969259655632210589453885556042534055313757013224662883999263554703467865471662467236546849347262198874357343810274763111833566523383294434556643324171681509642830000820978646516493262761017835908277805913007503669949406719341906713607230466386177097208938925393745027283853010907918902058357414537382687357884512416181354644041607332210783639294689512654302808543342802412410099266528845710766322829965841045067285302432455150100501821121888753155949664583780269320975972546762756118118658107613572781137708387319735504000690408421177576511111763070861564938386562972955889598818267301784352721895308251112379909263932231460521221710003782660068805170046276849979846249464948848608631706947067219506385757791572187576770324864884575885481693141538062017058183342788664116117387469107410777950862565719210847193417520716040759022923552922519287672871587259258825942467776604466344180160704016464694148913838287347616446006369848060318858569579436595778930560254430451966087849976140913683898395394383181401058070893259582279469991398773076890032655598772996776092596267350649479724539903917589232446396642974699219971457831200356996529219090899044344377301018505520913401211488906196525621269190076426336484697745139292291328105980939826066761942259414578087879309147233493942438846271352303778449329454160365159370963893099467510855893857730621049527901584955299559295943900286408762708177726640119115046242875790459978928316222144725180073890392205244224692044353990258127430309529156724979214116707464202168900067757601459341333040186480748801374825171554234072279417904493518346928305599308014847694543295993388547371571013715623283617559884803617294750994844417403653516458566003322610180099456644419740606439730483742517329394404903033401747918193018358970524027442730511096557772897427037546814643120942309225367402411200778194889007556663172457133252567462648081284932399155665728799752282899598619586891221883210369807159860944250326003834337271175136009595028397831324189981422295895481321683006116108742581934879201674623050139352549442716291427474910869312907719359460981060685554299900192105843768442143428267133931647536537669651239309373969645223153687193656959830670544858748822773926718117799588577355873763168702043307267743484233319570428683491054963955657108496141842179606848487404822585112467035163963463449726968652749003853006468762882077116614793441862271972140106816495032622490780986453290230789395721030716024622595763497855364057597423492959105738456968955125146382808766829431322009606110244403774539066581143506821491138450462546376214884581224872350208964387816598254000873683627767650378817971223246541984698797083509225649331431962726510648526441327376321068607463825629791243852162227322277775981754645238410696263608037463246564916749894310204896478884578339695332078726787226656896829056260181329167071792485939620369987838439640389097353715477391117393721495161825317265645898515092192577980553114336218200255424958410181026141223731190397803564638413103699123136703974972304911708965962605168402990564819002933433305601112985251706769541284931863979123007024397279871955723957666086904481747587660394746024547997778422433123809316071701155996461712912125280773320882340988589922751013440378999285734454466726254184081982506896977039131071462010933479800419660648155987955665718760994718138012565779560026704192129624839000439505417971796349188055365944292318700171007767834697533743052620624797909845524181981708072619006731740477802453689907181988566346640309055134665375465759644897901324591734722022177121952793129990694413177400487947277444413259251859264997128138321733483210324115994731664406151354289192947219295632282652869226874068915400306351519438874138275336368599774783356190135466161867936540895500060437984590542634342608701462036081414644099233581591129225224067539482167912301689515526559373177202482021595131735227835830251773655309226235393423486327345267190800556371326626702565204313237311394881119790201571123797693529805489959158174148509529706516003209018316321207289342903234512013602025445546856971418978952690081462778976821562813146625127597168003258936193409019133874229468784787547619803550591751361747298634969671975719463642308789535031841135830511394956381677408975094809983400384326181150372357072753846337671877930664009397786563118920872934448788048931147107272208161224544384903227503028725777415016241044056331309975742380535909913962079267606325807234002958634006681473942749137816696163677691596739808417847933522024055064547221537146869119504148764640205679511453003153642025657794219514095670288895071009419073965591213199316565675393218460674053776561989054565450268368979152779179323001923128571040279947815882697033912639483248096571782386154860412957549509761452489225263747664202639713957607145452645936266757766936340790116003147516894455805045595669524807530540154210265284546990225816138125852615033991474680757541012344519296657957367518688973446027871656849479101356106909364867808060758149956141983393292192082627737341531354169226569068727673099612584061491093993797842361733048376412445137004585502728478500353131105734427887692541940257978722183155027031359651184899245009708584613438153349400087287496434271407467044525663166650914343828844357370989605381208355357173502541928718185694149015790285227849352278380346624695702759290860790925832698214365624631399060695080544805186534775780962143733009375483720233513642302152460074971409679995160202609306868806425834431137450027154995752929818981549026629919796145266114315375396997992893985036404295187457349098415957387741671400490753001538537328619379483099865981506049986018790182551173734140551872395480651525222790102906625169181551414244928374128774453039414488873413293780441697060263378605669788007077837711953958835042510686512607811997442798889415756613957109831724993221936976579670874019106179069897459120971385714513614670960518205666425612024842599753241726399756857921866771454012078351853980244844749688678841637047355727030574394997448549844879176136016629971022239143150285516954994387021964259352671164535641440560144864761802489415633117637453136070875387370403918834197461304077533278043328430018536397184798457125280699367857232885992406270351655049742255420165592947280580565411500711462785720261552982692340759598410628494725186780981638308150839892430376288051639920063540712370731633883452659371258895871308909477305195283670714527894340679226675776977134420364731104217271359791244337250898577011329864932018195559865888374883953505086551060603110419325480652375698643027517680991654797376437599705550335753635076246092116752356745912131457856393105231654840679771100231077790024767515136708459729556501693183936864027865985469367215606726057400775237310942100082294771002387988329809660464617115328400437268484848180397707665268365527671245210782541496686730704434573799799838877303303044455283096800215034683980749251559380714963544669731382618936816669765098359564985068804100962245927089513518313558736828534875272311794559710825122587625653258597746298331845771353561106744510920170242891947601619428361797736120938145922863438948905044247183489321472818534632791131955658864978476238685994674265836761021226629587892467658648772902248318739430970380007100086470190570900750640322802919769587268223737608727200249599338748167313292670554546989753729292831386497375270878049352224009789251348094832472046736628685792369887807846391738202802452349407261225755177518818444666096208862681951899895703972969461084824357110527104309996487838074594641147119756310099809210364801322840247154963371663285793009187412164480152250940238477020959256652639075285569777956566644483438565575595800734586807381925830848340252843303685427187540996932630990697099267260275985857259952557724435890337650271007481454277785994413373407860839189392931687814814132914552531253253843477193369637349529561146082777100937314125679829093301872341001079669473466985608794614982268180769509591751127698008252719506912868396104376514468482832267779749580797468949247688192664798365392223074084989753525002067339122332838761446597474499671512243927968728935269817116231389640748949938533746031886468968444899018526989892288383314044162962247609946698466871841836317380608005614159942690800602441115417161271047760249175397497248154609503498286148970378819122197600189642805758132445883340623045182472217255426528519599774515054433599472046992528109182970570012641002689608209164181426921941683534082014445344211515325050333985893998350973802297056316707030771254914147271091172325536381538042983227830829976925377059203086416991044945148695940535036293680550442727184209971122652920179514108359663864141641656061183991228309305554799291391679552213362676887244581719463968190080152866854852810018165884791012904077673778609776004814750206849744066126407900787207045441365448863574270423600826619880015355520371887386074897112401646211261495996034802191801523312813059162237619947558644529344508651113248088460058905780880172921475946055585057593413110827378348621564679931837414517942415015061046377113783785067884120420415351029115913629276841569017487932650158704448552733783329219291721217615535989364740920428322244176875685159790188525732272738976789704542072739925053118694212433268354752656688408490086200344475964077901471388172336781820542128481795515568923422272985264952886575336739636555006759100456916139862056163238974216862236480149842050071641523824581342431209023280306535461520350543597791639623979028015874032097257755603505586048284456276065912417915750252760958066095989664896323593379996767353882242148526151072743958910802398642326072903486477128980603821718802742355635751004935053542486343015781910317230256280967443963218894179165643967970652089186544592103962066312056821856529873085914852734342019285116590662904656477448695519886972246427544629603259220932053921101944468582284144705294276971773517285558732742137870126160716617574999907469278973605760786362005905197483589793572354899123587220173663485140571970343340399756365368444525349367123301998619707742461145328447729178441740691395484308840396062986041205724657157352467847495027860131994926166371399545451185624776412493712374404111560654288785738821316522681452946330889711121851646270107285540254221671132629130592826591508632247186177077499028999880631878638378887008334771851015332502856707018424685120518075776999361109932957994525659830771955716298912362645263579656825630500825585980320132102781787612325506206537199293139994036979056867553364998892165249019289568020635650673822167184633356051876083071473979955733529518793556568743094717805147982936476561795714251014458397982772201224557454311891934308520533944132676658242484075690028126373432565540092975756618623382264798632750021325437379695606245199285194427215196560361469186752374736283435046773987112444254954596366736802839092609041232435761531086827261778039872888344602979053416019227208176343210506419065237305451434558611285037389505157587906593330894368150391809404680908807339315322693267249680722461291199969328576322832751056305239409228722667071215526357727589363842020702776186611704340762516199825082984270897777100495817393730786075886417211988969959701447633587635874263254601424880781738233525554507728381580614852909182918265420046564765981652128429382199665958923664924375265768174819865513883998979637417105537576581649589644958169899643358930255595382985789907104507247075512688189883803186924275727932754432719240575796479885746443712194748880574106314528769153709430784750986052185514288207297735423371354407608909216968027828038436480067136240870016516546703693209607523303591888417384326284006394242561962882437822432940531492333600190541886859107523490324244854276681299761769681455047675527797939840245135897095944092994322911550104134320934435913510732535387880544236042729530430278789414686653024146228024049602066678926226197376796642259536609284771675983422539697222195003659852281842215361188578432587443151802187254340133405727590865994391279669855166658684912177895102370536760092185733575494918829142360059436343417059026553725905224260656525955725241697655738414046826449052774956940355458988352730201976067807428322205463083082218908041484996380599770442475957932435749315369814864979694499114096191013463068222444408915562926903248293688587917948344594875288726202719223790672157713875483691950785719348219068837512336447423224631685503969336716878860255556703775964551930413433434142604978491112508515245080426576740740832357498090907763314578592044365228276093059030221700279335492157913654213252670377592842794669326021824292817989800540161071435982625056471654314289687028879173016707877332730564130252815447520210199635857166412036945993283410714974225506785458122122342216501629286546131882655566220862167025964966313175195917458116045738719405980752787541981013992585564247747696994201331013100420976037188606346157923229722257408719638620248163700402573171737445079862694047300200143430279097645104950823949108312198154759239181931370937023295696120374335195366255707619908595465298933093845501924343017061095175854880347362896596159520413008864174999166841639934337821643343962522274624452097565444309309727418960729337012878548875098217930661956773399670830486629166170352835092240280889858028068041795272489360629133937897643481704340679029796105994891634479684029572325550511480177156834755880864420155113191866299662234356401296883959358258914731943274518029363701350553672675320157424739658193088181897355496611959557981009801995318807855352186225320224207171271329630568001568250834705282233556120203696735511345350422225513833093994766809940674565500977061352083939114039932184092437265238854585089778467559463474763018999951351118432909039477076600309659322480550751540463781193425254466538655136551654607780627996081219507408659644653699752188167367186125724070552744523082208253286292848064996805854426598854022353821653193192205610899226631673595757008645861759654652999983166188300831074934033070961749198018988634231410751361335406183188208819337987977924281150814767363760304224187570900405344488410225374313783307710172491571578067039536529295273910505749738383887497407262676015413899553672396101812414979204279091003140563158553691937787986811679762753917376313929720694055797427524696090038019148220906719267524496598403929684430846885596486065717744423722662470745718401534233190055897588791913063784740590831866406017681266666388400816771005398121622826234412354072197983941395390504264536488481153658533745086980434333184649926507276839624403652379800964329211552975230942077709551800966949046188975752546401885504449900203757415138940528131531648005067067774465676434922003841577938852785200296150122068264010478704715442188918601996209809268349053170852288351096805018285196502478785755603118216635238423396057677823494283597143400766156129705912034958554611994152825670553550948696986830157062464429886037641825134473521993464555631950046035833455634590919819829635737111695290785111302135604728878374939299284964133596107742020726143944550751877228380064015608505318391994855339992327920162083751925101487636033727025933189973239587307703915838229188104185827532074283894502724748084823674916102599479263565485190882650630044306416508867016325744042761314704489991977520008629725556183974342582602035257886389968479921612333892408398951156267880238209315277024220559346359116012394880721190977882216514538747211432697223097061060290013208619325694291323057514129639487163922761399929633640858887343461284266584474402442968372754411010164272219010664823488542427830948885909215146155519224404117301732125528933444386133591753920164522026590710932192105882823637576297050162652461382216079575653442463221600361142864021429469831854624761731963410414270782639513626581763197889449979127862605095227006883322047461708891326900055539689645688100094166693824927113722162865195670523596137705291909045244095661167353083671429023887050567478147070081414121649884516206865376697319248222686247537859336498833742514756413828073430844612508417697152198573678513302558670327552679865916618779319167987334349909405309610603095819923922195003800299162338169410746545248734074499821270211526914669405720061957166752201466507105882687009835949255912023264310096272494173807357135383528980821513807906870681533688568696038016645803313765785832399314949354717771404781860702679228719745435720284321200502214555138044769027111139207686290482830904898590915987240215169700231999219676641641059796114805816006574961900572431190294780734693104086738542217936059922264345032068953135236067881484045768191293114592118783620152108776888619693108687766952684342487773045008196620606899063337750222880147132968741548444294518792929872319553159512936992060005928290674370812586143782716432224070710583058360243291719957521084260415759336611738175092192699925240199707881517640186857527033807053665629165847232665995971728170137392805974698417689408116052481045799332406430986684748138552399327977865103234541373607776447955638593546009708978897518955133482087419644764943714859084544066187214490370526055124224795408906745494256069261205323890709822349300641793946164244803244512541613514278716549415638785019194245157479391175705197113431266831107831966965348047750924094740447769815026253236084316261639713372375091609076716286235007600228364798252892508421580671587520597398064905374544766279319227043459925931994386595496871552074444558826244421933027554061617422595818298094785969036494864819651057434144873175662614183439869615699046034997754357784089109507592702685815281325404973686241808963436155837639295844091183490397886357914949653168836960278380424736814141182679108805778965813056395329219505557211685052383571362624567732239845789029498061633609586577113814132438320281311359025188968243363253748198357697473366033207700676490642169525697677851445023974121408333196388901773091039482653302690950869247034229911370196304483908138791683131094805587620643307221925642119028730237410639805187706658729584332927443589028742198339449903389718779466995839293835570664855529339313942426597077234129365473832998059242362233787977015248487306869926453179519709612009947449235271471971113057373482948866738885524582361086460413386477921135683964235133339789501872117801548072838244183130663657953999882682513027029155985835373012573766306021653604901185409567450767134671369043962370259262877662523786787439930000921804828685834944297814047517466138799408028320102467700237668135646756249718109974392214575636569261509743051324892619415046306811309126435514690636004672834382313768585620469953238655904827213801264517702212171631284524025425769490412081380139605475614628000026115673224239761819228839662848150119940867293167089043379546097580441587209133915776032748428632063000397441068878390364379919931657367057963891097603333524793290244473808038928854018951604336216846390533168975428269798160653721230244788537672759965367213713537411800465747417012101477224737561269245063637175232022666563839935588415742430138252543318214143156120333303538679899253267658721966708494867111288497096881342993017693426818161805878279303877461716018999187856091867698985550319868061120817380484663242328141537630164719959200430823595682854710597222424222459404715609604302375772809606392583155376106157411589480721481711108693168938331234447678367020865047348009869339396166969810832016053109720976981415979360541597845830102774003195701583821300215952017032691400858904606508702050670920985572308168495591457099565527734590052368329875025702022702730772179731996068479216085483329777185103413010316146602466333956783208886228170753931932979118351878372273549822088967100138146367930536018580486524451711977746587651269643793599545587613351916738887312116155720055509258842058702497219730873229054372635748276551383089796946522434274694662207179435936568533079038177654032654425784772694020176840106283384950138013852031301045975506114268240952422643259312732727555092964261868625382991646752135608597270063549198426923324500730059711197061350557486213238129323971426943245320867022940860706183395310146478196313415388814509703378479538214970660965409520993341169403450179227725583853839125855056494656215826563477246463384421954715241213724795949013432838591459167872585403823872642154839614210362399633891282808668284065133119509176304961025147875562663978127539750030076438627160748909852295825486691515347677013832722047599197272946030965375132916187865788504932603018684923857720911161570536822163012817214550403197338486727797913702059403328852816691631934688586607899812166745565130768379899166197281965747983873572354738940440260571061316240224965077513153479664849150153158443577369885705406873031015600913645608755319756236950497511032294602341635673625809894004976703770596007172206684486962889016209471637390187854359717992924509689316864911116753548474187628657137982946979844550287587849326400880882426951933745614116801204021030377303551162587356458687496775553208982055709402755531595584799757134387170428093413898279763158771104285599307046901059402344762162725709108529525596714569482980514347720975200522896097851173077040512311020651141563829834411529363592155537432832032669547210677698640947365447361011312678420073804519570087966026118701839058604299034120567026603987432011654081204387571262855355230149392971948462995062747014975699721745100870709578413036324823884763981835848313354913958280859112309058264617350693201467309323355754204550001873330586200734971307994313709475281953272980795273611604271682395113348821378000767072414882338747266557615582791560306413629400994055574821610537387759922148214295090331865928271777040482760064166618154217327253962157182123674569695120341743206207033295380532217007756019863959869260748200050189846328919369909352020494073888204684209589335520135718632800601697571736809622467786122896425360924486294732257471613360496197800911202918635972280239061285844419190335672796002776132784767355119945050808834828978389336209952170116080168474561698810116966248040178793995040332577894420612676798886289305975282657295188919818075858393392269779523346213157383365423600219572550994010956404891201927098738069037769868457860837992526169711955985846648352970985994466540576067118085867544272159252847196114958793662109071030454751257625635159581822222721260976528365427997866650781163384606188970536956438635785243473010449424525646703492167217622944228304333761605646252061769117197570541697796367208983042230748268878982658060231972495249995204586104882518242176803267094231416656124258866964331520064780110138299013327047185419070008080032180300495077403042044812036907479046101857958958736950554480670981977638242412504986412256242227833927741404857448124840804642294435473080631049282169810042318102951039368557347392271423371619084259380923075058295709951871185030250588830217841101829320299637404572754247143815050608966881493265604625007918930429101350964976187431458512949937043021224766091105121793903391244639758941791834694916539811546659079014614861930383066259848892302240135123246485183790288155341647623981095267071288740804423978197191547397230730223043438907091557215832722177943043389874460177206179390813286132998122009561109035741370258944433334784751815304308330581466514317411864468841443371998080721099629306505758294239187145116760498313879477797925914586382548746595542446849562580721329055989477748077544283926627544807106174081768433332314147761817353049990883802519462330948403621618500051326595953241030970238703939273913623821598509450031752520312538858099744420490206002604826927104233043551213385718873413854807100916249852120878773666035059169033537228569571542564396630349101195685101620361023277677613793577817574233984237368751815728101162183329219701372849576933606096125888617998306025409167564923269922932305068032211660045586771347788098096468177507202536272665343389138795682963511955536302790891811696936945073136249093908846470420814342726110702643896276780486710858656448282424827734154285108089530950523048082244427866109049024471993288946507972183875257308307821916386432304957460520736393596453657614465824941617113474454734901355313280758000002440467004375051385035221069297108551160342064614354194205089426326609947382292903436644211371685301665674973242897213559781928783488925189076992819032896984072857580407778218612716092251926833782987815694070683649795730789135129213340389280751875395655689531612655088974867282525752253957174918431772441978644151840952433122409199178002961290620341964242879174045045816671323126407500670191974435186179642288913526469928639067757421367357159021431217504597577944416115440953163301154125877235703579037105923999117843176803109410724430126274823095665086799275895277190432686655177908094300420450061464402287932793265250741911242087619766062949849081414568315914022979548814721046144142688441473367123876961898292621246924248625331017632246417039926462033708414296376310945932183121010098594007402559496879311801642013460295943145547711051549658163375053314529094886641782104231803917014032025811251054842171657487276673832544171967190074742133934826837734996037856482915270513513721190839818603170987756736946356893748971655259770709434996062543246315979727423161133552514058358964274280435719104726842638449183872383019904734842226151363540410254525889298967395160423220170436324263653971325303098798179325974093883873387459480404455906936801316773296132366145178516080600517984356021612330460120842550016460492775374743559879947205529398492993398853410397207811910557992115503306608647149283179786002852861650863679393922407857168694763201098154621267963613155616671998976186527185935147838073839613576615129886529277141944251332799844729358192569435069557917353836741996769156653113023844425294760631353063792041546470118787758777728847740048869658337894789182737703392335084093087601624879814303363112464005278741946166261451914884815981134703778595585820903644159885214146181682927552663629549903309107876569880879866605962831124620643316627949599508948127015580875849724895001127347185400183572709244014177900399640210197483575881952285334887280702998948685671156719020524872133611534250081194261439757000657678788132731175872326590422762923018529316449911879056606710050679809972931194448933116416597994452423895915310224122088698940537031343498201197084530468398297739607917104501365437260260381025613449728571239363150436397773365236523734539749901481270814744892217778591647051188868966798246706454067222759362157217247565305270596979515575625541394641821537159307970168034262782112130973968995370077147246178311028482177108382544028832381903901219083234681339910518598213712435600223951618002878906611959073693397530801925517808459291991180672107225000390173193851239085645651094092493391758808659168577741089893235894481329018806861393077334482139455144465735350084327659902308409119929347186203867365398042280897580541421146592155113953429391634234137209718984776457824407705857338302423316261232236283730651661796338915011117058778211129638498050070683688310984267285306394632610383496208263364344311274901062938937488517021863272849030520705677007888653634685330680143798128156039826692186883073134640557308810669994997448269736277026952987484770109550869692363891022014153903409585131960722319870555381867475992718152150451679106058469720860899067828938300197877652150547737551201395616980688351037354810302291823585322530983728988382865430104992607233837063318165775113337359298996191769166977224022593808592287835011868912860443187191706695591557942334343314833649487029068082892409477778451247782223020135294549699894601161433439720252440478607955452808731022845938526798236297669874970205961167686804385167417094496024130002962303793186106692740321755743658674800393216413849892356620701240567897456615742861998337179681551764194488995459503762733291722197074781354021142113567662358923044294250264177258139756350360534896543883496758548332744610165449406241476793073571771044007693692814726212370086920782242630792604889662491766101212847411822322861680842569051805564190287162014711033440284338637181355891430429500209976342484303008254612274209018656008859927119347982080531955758765091663802704321302593597956188512131909792336506108020742398742085268421699027277845597005261300878043770413047951994740085188581420539754281767432554634628793621802787448651522225878225740042022302873610526843684354219306705346373024888294884666734139339656851401354268087936521467955421636647346310020841078804486592761021647756424506037790093008163356667963595120253991831870814449321139158232006426600465223329701599076021053136381878843091966235681724360821321222358556640862539531841214690445785156939513213013685079971726797780545782952953509067663177349128555311988731706662712521770802845695596450130229084940909463420114760124068398718568218701400842675675262524476964997896112271510992610000761881732119261447422979412079815911661724543565470970976241655335225717585431762315165922828460099070624391310514250028006570566634068242382246292097062842521105876662702793070485532968008161168949108295846806504983637499374479839869035580386905015158848292271107255615461179420660796770035632313016760544937733577096500941682118403984037666698098840721485826806239259184010566329088152355563040497498749062510927750313007139874305779738122693840730050283102965855431157611163910024900556030142609733995231611149855532049382456545483758910308181790169103275749738999741829919646572243964250870922011910611686383954470236898097831212603966355592856624029720983755418488086465772495951971601145708441566966532574780571882123928845822624449895274811199700910805061722385693663719692207867215515199724319608724554623887158017095383342482659690516580834450423004163930541338305523036766722392971459274167541418216933224869023029790656932464933154069860034455264955326713550357168659046917395564649029470914502449201627088778884265712443548637696178284647863107211946131636480874517172881860548495763721672324578930913540876255560476655335761124599879240958932097887839852965253812793352226533726899095059036778196385248781831292888206018685919705336415375351803441987657848081952554947074713197470758422956720508397423022412485528761060799874562223607558419125383872580171836646699883638255271650205050145003846298029673052499033912604850905635296730146664192442758855095224644083554563039459554309404556447014456606297443181176898478966408189622085804296194926908504508165337150983692217364120256349098755943238790695674773790401097383541887826059306872767087863658742024297517370387560602011985168589714497158393321361175503587294466186372990972615585053697421975837583050425504846774710239824200418983022271937437452165383689487635047981245963782187060946755763930592591752879556202258396838945077083106502006337723536779717689078251231936036131316065814595364686158905803344467330643456445476451662090761085247864269226092083918122677169887820140662524437198502595822835516884332817947327762513521615640757814736442982220165319144295834744034168281725019864021244069128898597026314370759498508746647958866297888227468580195415835579167293641901046693308472716733599068144326562928206953814043600141624320995828588528882475503815706175860040740941994554812333024663654606535040022117598629734706282043748254270259925574554583118810661813134037871926930515702462653137846295569802706326874200314075732059628740318583830810500729904515829237796677674749404593517449328429776938435939427771957424018514448211253986600555100329103697040075899146715677566274321371360002030031612744436781563554699713119410204630854336253055556955654105796677599793658067836156106643220871436528053617681353681881751639982708683438517191221627685500760797110460524642344734867984649476663411987873232702180466445321935394025008634026105695126701306210548369009961537173555733633752888836137144118342218251460427059873469623076541009857622045311007793883445550856147125175898279292035306104270121961122076010515611828042452612089387594207476775107743276246502739326756600850291226551462198809609042418445370804172274237161211786501473690275749455288889315749123991037229255246626402249141043854558504055069575832753254541639927890702555065515894915100694948633247335211633207571175248994700779533461424506480379506228152177479737126275191800079807664874698263694387414597195008550661540563281453569034141414270021253670402747116877054251034300603048418480249812991592559625906541261230747480260969918474779548893945632599870352198952443166799446377994716210264989357450162729502637609471586989951898183764806307957224651091781232360627388699821410496033969382949284851426207523978319395427511779939941873130623749766228309634728055414248843085029225865261275969069388285006607205974953602540300177409091637552531399175182192978096526457337435215513125767462056938573095977003153170972698867656710929544981168984686872275472128183208639013830134282008377741699256148321220376385926006844140510610383245384070467698169058156561879948280060918456679330701120458699353137663229762346185746344874635056797823500076166177475620871147916186917241856763395111118365513357149564744977552881443071737423735422289228324742982848308873079453990434928367273175051538978077681819079507142611177154603718290417354994299238264022054621251443156570024325793613357731012825102074472473438909579750395533790355046515224130515150368494394992038837410130867624312822824662988863667375160837119386997149859426470142584792387412942747641147613023242589560111332689460927195802788197478983739092594991039337919118186627815683383932293550163853184347299495605980770603023773597492649963472228090785634582946877235435464918743235590171446643385825220189188766389267284802371959128031711810482987003993644497779807605792984781164323549532340819977321918738556438472412466775595201980692168101507544054828813058132856796320739618510647921922289981458309281267888161220525200132065867176980592990983374610073106450714804307925748507048072429758058581771976898313470832785266844075688765583837392864777011631520206831626016961335447737026022406062993239759939197792908526137410333398543242696318732649270718127267561948027550615455586896404420326155676012649111894989373105100920160623926048924368295350836446844842172620075334718902758691686755530807282126240694296929407796291358977035535807325908500212245418261875266738680921011586189452781033049192834661761564617801718315783574467394736894661639034627736946769368880550951359188875950136124169446298450239392492228066124830586786933290032653782709523497617679674046744773034309823614036431356157250320269020041846529569792308361852983437162249247526966152447524382656660612470035333299665572664964917333769140858241983850029042455682171890630539136297487682784152982909582596654275036506708795477247721754573990927240983649788788570026593984394135350133029095244100901221258198167856278325082703106974579398152976133740954979400383451311820284211104148565657465393058381518898905317271748687786135412605516195988064082901244849627969447649672108613234973106505784145530498611714860158014735208507092777220691784202883113631989460711451534538938993219459107526363669007803851417988643511827439197024971001517838875934823142677902379648715061074850728334737135463279187931016036428959629854161831160267627691815743183132184888029725021719708172242176871993881308504731740864920216533482390906632515634766421463421511401669653566651570122155828053593009309914182334849352802718397052694710552965623602469607171926672988864263282472039850288614076470029721232158018177259315293357920671217560685908755192466935863593285675505670968312663464884173306437506491437575960015793435488771911249337826945454705392802766524036515773673204033966482748398215235531239318054646587305643030023727386584225824540491582242401641454400335788281234083112267652027253996247407935561791785306687649487297229268956391924121360018047075761902118469857710130259013902042121646013882973816880803840870847476872017825092739399232586276202599115842229530519475450529148878241262389786081958895781832048098909530241055410732314492339640041958744002486833519577526522846874122370091234793498560940173631145979616187234651798605997635229526635940858586138396532985008128621515424776351241352271939302339106176767823066383705403182335732373824536353230301197512775079692317031172439220069456021253453492727844786978761663284331764142113549392758724618272763594618246964612643718141567800916734642438973209914622213158246340833753769609291861017883434120167224577102088027071261485920189125160635388249309923878118999568882342099172643981237549084882838131226888651073825556713707131573204687300087941238928560511694145161805053957496052681240093180806472373574926431422145830419434862882183206714689947252240166050466982295806820610667823921946210338960081327695663495780443815474388094617333214946627416247527487737887910166101145878657257165587832054910139469276295803611729288627601360805080416222653842386115594841503599476565081470400259866254194315167769428773601267417421225699900939843029171386943357946968542397700774845059714602418151413498651265707293332313759415805404472484901084678832953424292135586444665954585705631400989613466020486694716959856636694373204547193601103673036563833968259869021879444741666829308669182049086915725280999506112411941898036978164014348501995312252681168828808563546391381804926856910667414982869371651804918243424830428317593131773285287520726454215114558743023899902016194355373992435954625681211140085440669902035808943755321098129900371254852089592510902292819662891055291263875603725746416471987793477524451595705607187343091376846475542975135490279274592035923467193333735383162851291105464911359773685059862930902287485923967537266837187428458141918160075697769928189548069883957851381699761857005947960180203348964444188738160232958158353799769896033654654139407440766977962395447934011425368117957031192630570643968624133821969722544890624151903127550555072303959483165838246902140303026335962328326635707544177305607741843784293861174763118874006188462192172666142626749448971443835884178330576056921188982548509145027311119762807502171144326854946662764674032969822709269114068460747617737280407989590278087982888381430164665957847400243778080548874212462517582885768267673027892860965047397015123594495409721005031700533626294104830388671124592214716828652618242410330019230253929959291797746795562127082300078188383028982690826834853481364407291591229494284604896776904266551356260694931011245863869122259753048693519912933166038222011975845935200711266001482089780729889148036766087629738260272212217029089400785150803004245902304888012219389382210419115546878548601549449492077653380218157190498225367478541214663781710879177343746804996419190286642662792000811765137296635752394784075242334420823443621974886040964966810334016537739889479723552239710630173921434315769151948225846540296269547509027870955103304810658885359666310375541082163736412394875286446849022394764870129799809497778853456105328076206988695417895805646041687651190640999116783186640931028825854045448917866940403492089856174827321844726158289834049872632340259599183762015819510010167155812946687941754410363086925623894481573495812335393158571359665732893733094153388356182443868429922745449807059648019091078775529832081186082728658180068120120602700299504189798785591124328460700268910403494452669399767335670592220235235424419254637333328754568424263312239715675178318372579303603382399832852545918291638750104572484675345788874205942307282124537805303373138058876344131391771426975533731895640736728746387044119519641664077570685625525504821216833690948753113425328409832945065635099379844227239047846682111720949835683981586942536970954381361514487136920366683173388467959978398023311930056359465104260461859033210566720422018344748449610787643937608723956727332496548884853634012228302276584985326342164427871952581759241250761381119382735770574729191058653141262370746079423837185925353690020387396755526888182538905229715180941414184244500998456938017278138794672394207674982935666351410360336174056056557226410405067973591028438502210305195099759528474079517950665549376306987852150980207784081328860549418095366152791513778884626535346766308258842412173937117140835870231461329082127425526094932976389904776208665414796725587153839151697267032040898193631099729951919914327152180657859828718401743340694299072169101151808756979208573434056181105825892949168438396016650934854981234534407521564821708802347890857077087868347608592014086066539426973666529488107397559587177212121236413993364254176039163511100188706937717677406517789129500781700482910708960390502733887408897990090821839201130848465530045381750917285555134719722510884667963572737417085291170979605665125910649882150993310998826248917515611706064223686822764002752573605064936218341576918863600958833823105282914421818181864357554788903999771853495402302041683615281911316391546853699092663666999057366847600097421406704195234225187999387486155924304467544708686590770187748358021564788300936346933673339668423963041658183775485296137479269727619767109060756718819411202835571728239628126945020693793562108338910129241274721099663238775448742835949055203951237599859783465100287938082965573287209918346751989245194823649664134108156369355908342454054982423752405049338426912568938996559476421361115398922879609597503879599637050992014159755677324282854402918517032513150503767101145082494245919147410660161738424566793220523826836024052797427014834863641735257537839099491318802435963639966123402780724112419255938897271282802243832009620547145382054567533129697347982104425847726188822848028114441868671096340798790703078536235406990664558172264983542093678416656615367224432487904625013840097421197195501356158351182084943934633913309746301816438294451236816671668078163622554059552046861382305467781917300146190608875506740633725102679807109208241203943234488131453229158378185615632434204908741686227752809077749705664463188238925794197761808312061515950582113807244266141036293864031632824175274545639937958854027576752656339442564206124382898796160899903032840009596965632431040978388079448352403700351958122988278561649024764124460273234193509926581842473430591422360899654011196214058791716751142278646394969162585891697398483842601957670334751593208776354335433296198457956629831219885872602394608974485526668155289287082346761723350692115348057459485262144519036438518880965238557199736709676233714923269357118461594966077247615327305914754209165797534247519384822633068909190783053486809554460545355311591705735533689874573771870357214800394320502928252457507494165837478024138265818118133029201092208603646333764402541988341712871591212173649094168697240806181794609197822896041594293008649284529545416979478763293609538126903634427745404669092326611815395990263999727589692989068411337830332434956141644981859910581670045441200810741614124121590754617911788884041075945133240215541763822058712260621960803136244928756123338628430676762717476287196777963426635308377292296107490684132150660439763328854448150896770896058157752632161831316571318076897370682918560688797360492194283180063189565425220306130521529681641283757330089967741470808944907015695792564292079189833120135366343052494628570128941275946231332616118034458527667515966810251958728357109451102541359059291937742929617628333301192828651036243753355937184661394273312246971287355010178050094723890799153792401890602483383818536166307619151404657325450231812635126509282957641971383146922794250385113615544508321638402097857647954327731040370359532399822636376855003153981333563575544965128511845343837471308995566513001973023738806524159753138075723190531194304187604360392458954258540036228175599079755033907514974980798285047624348323666019892648284231542934590087894502140163331031641882506465265303464223521398821547994603071757154071061475041362985279277626304757009393358288170645379132358536823974791697042046820301584266067452071983660695586441827010700554223050089443632122305962381497066550631402464767651512543019085813596395773891025611441047426710747679072622624137237362984829624016727834456564951136759421715744788440579249976044104683171736243144881352295322327092172322399460190569491221228098969174910851465329267601046080614269721942169221607076882756529542114663247294042351924321984767218683699093224905672792956581560839771770804531514733283502884338129916628635856949224168796580532755199926621759574497443904928875355986198278385402539770357869957925034402007561891564636085571667746720955481838228189046132094652740084799079179939778391689364215872542888550006418432445423382855061393527266226376401639211119562220534535398648838664656968863687203447127747981491781215175064441983581465748511816908916241586182786647028425814131323992398506663588337660223135618942638431719364292694171226614451939733961237538410182138423974910227110685599552985326739496159659869156715021704875083311007982295698843230103554113885859431654819032890054244284540390660814384462264517471659135438162421031167397826758905969328219305266028447676550626188395179549112187451502189537514636391071500014724199552744064391996679955982692412219138685601246176438268480946613088490510110762451009964081131918567491601740695247484711692987681259781328431224550498688309469527574903282861789484485564301083814508842617979285089797953054136704907500152147366189219777439009240724289700219122591740242197744267835999631936897762446884651531357813843094283189714957824676576352013022081752893868357289349268639433793131478938154742250709681435963091290980334997902638030590202717642532184505795540295570227656449419578291226470678667423619326628899775511657334387628332432340618365897263882044725198841218056290545998009126501773612552015577462191273456879680687785405773361444930384306625316256190017476243841665262725294938496284310945424701456043512500533901177652384563142248737563147371117771900749250142725188608221617859743365281753314949093697403404043909221180610264158177151774621158673687453133769036682352702274489103579569106838851609268224158406086042451982423652933762648569292313558442457016345740357909866160449672976805580745115810515019750389920630822796371185117019491087369943662776199724098086904153792855003836089111437817594252429637400332644406180314096670797833660779940704120223594965034276580904839217591013006048991913694307794128550041541316104673144332015841739655894843497825667827753657168729538916387232655522476333501777143625161152777557669953428154855268252742568363786799118044991415529355511583991566206358469463204878346851531691840803460090655722512030966797585612890963054470992213759571481286207552627503717578173211988932330839261296463218889012166496317951370935671769793232263690156667061661274140379018103389206773914824652703705924524940346841537841229978144220633306036918908911172272708096384999055699808475823893377272910382684954081163867042550970099550716108949662945842714103033096356351502684881236116799521494796793779954517865197259838871057435950466246524663613116135556425546152459570090115861383840282490282264279056645750063254633663488287249507322167442651101800971163073173308159225974518811929926191524902869276748702628809342592562615894487089241396994844507820454023218571810040326017885264413368435399554095666821104003144316240967149487460911324881276422671348542119792506710106642677203490594279368991456447087437092909624956747639312456011392458255814754558501803266348805768081431526467277636842790726841905330815042783760653103568624500214321151361122716702073005495585495265576219361126432967341887280919378393686402743700273987760513988369713892964134064301580071825281851971984357421736379336072988580789556634761507558001649037204177791954724858365536309199382157688176096740293531440712068561059119919215600908603886394319168744602255737597995574697411123999805420889978052058906351920500776874552086118938950310888070572900128508896273814313153953222799569167462215992721724770074871171543695454828941493539132084731813515686839500858799984079289270806261430497101817630252008140776889579663315076784032790344661885082469528266853654813746833654383429955458977949596417229876370346653716081675497716255495484065525301984707875690634574137291304647844464432023632614003201208426964147114701233797817612360755937724454266424659385881430457681559092593723780120906119704743217479731457095487432434953543106843447009731525957392453432034313164432432467112806644302083304651507897270617192280296757714541723118966109556777616262397839088689557765800013672608547312588894359608728080121146127177090840028282650126423406707586047019967033306025484330856911328363775783939662709637819191918460656414448248046473159367589446434674538308065627686114755221111179044140240434658845329046125234898310736315370179441118727387601886029256157742931462929295758397224763528427932847570427071220911596287415383376399991771605779566704966601567173874193698908664384006616297180349269075275377741768771302624462314354868155342764586788305293193034893452154745779439880896098458881822845523396517533833021086599911466011893042275677246922245146110835054825153238416950627700962585253040167952080823710129788223795784832117842474652566732789328561101224955122250010167942640343168600628394681333092104400521330288259191487942662399175810105574739143396662048460288945191155312907246707577730827852702279677969378631386557448304313993084838221824846139297912456727781218780797606538556472064789795610132652831824865326885372186575121448919361185517463865824870093242338731488653154415796529262951924579924048466663922843913793261363387186818641205968673161501966498146846249076836812197450530867214152369011527290995665222415967303612734541384354781286042397396458962151323831110027302247755972008596043990906279851610009317986470353348138097206005431917606154390825059693191002596028701200769907543947020110206975293884814545296945845553975240869973045423818403659578676553246015861042895454815133803638563039314569118932397736300674233167040626434424029980348667823869001193273962897469034562795878326614350406910964261157480843014924481840604400491047122959182998864074599471675112953923872740204864700262822568374452538544976623263365528494708338271929518516439508375018216864065212777938440794541724323968749551459010609914817860685556839803812512291769451357007963993752154666321590300745397866572670127614259790184421435692138671019891874570197243266016478054239261161671989969464647820291870712588729717922579248762084422414699383275161805896355336973734466054632614823899147600234367709073407278575241534142983449947078149839663774123833915620515837957852574776540924187929127165041254684874823370638601679767232077482298589618973995077710527891481092355371305101567277155894159178440570656740244468310597129525853553831734394126926648094098565740113129997423353557160589664789787439488775582675415212449344568034059175902058648307806797984046715922610680500022137147629006809386911018912008165268339583682326140481020803120211034279298516355830653417519556808946219544045955370353664764336306967768210247875574771922767927469441844026668959446009267274646325533894324464885805140826612621031239603969579004578233804700220093747511198719099374157723226915893623682842363197160540251700460488132189159751035481443573062310827432507514768953717271267012194959597993357326921279026523251383591824358886587155675737266479518198786926998965471711521177376477486778596250545205067595658261538632554321435845818247159414657179490142079821713755671138996204301034103385548998447281613442496092378023293691396001801949997914489805100675252947442210605223770213082983551218193927130221030298896542714386673308987317869705594442260610660590320629519597212092502532818330549716474996230723834772552685258112981273470328737488064093036418742895561196877361068846570889595744468950020731007218405044085432313123334563383102199570358755388441153977563383593335620556064609255545123942429364917515290093149515100344681515977265511769969733311512046447995571997829904133743027464422473277555042184436114624198982651455213425411556163136913499561419653075074099833955276594771149713354319012495832596436708847676754359449324036604470555608611581964528698498921685895384128024255427068772911464909965776957101744074390104379260831198721554952560094827571961300192571418521468780467163469568668478744918858565240021068252119843627991811725781691701951718092276123136433713277380033210884069173814808227762719826443891776437141899259131301374000985346472206010476608441117303934745905075737087778883658474234375931525341023348345149085189492592305954874445482416680940432383174650011737796490064666078316903830949847992874441777992179208021249308749208691846199562952982528745726797375644594806797785029807785562050038188639591338210721068259863180170123893918746574309529956222437015323502437178274546794455509425283563437099924572313325070102823734954782455000100715277578999024699805353422638413830233243505792126781773093985372670979476436794604242548677009301023758821299605553008582736740884349457396757102460684133782343747722405860580537452494303292924514698092746120542179444647631234370047006747655145031285342294486198211111988663865030821693988431738995594110331196830347620080367958745683066161067195244481289681506282617377259897102051138929617622466583185967468129691132593229548951574765368258022069737216938216432980119113502786665491445743063259708952053409995206311043772176724464337419357223438464211813688714704166026157426681313683211558716859199902903108766937140149997971114892752152436430905469769973872195250203739595886984873303720193582729420672873218417559473098664578710027439662678595019077559861512377723368802169231434321677731390591284611949602756135314516646362966131871173541216615795741776779942389457032439595541381490527889206104910223151387567296129551703829962257172464656626056495208968066815539047560496915438749428191027949921242249201444871376808347295708134929229305135628583878504455490849434961110996332135028738052343528857815906917539736744484010663730116663742161476160407866823291498554532472170168205170880858780514638669915983123686098506187541687584754559621587178040491506192265360543553069692932016895743739130767114563381596083285240445478803618842100257940865169637065100424945103437373153946142270323782317070867394366211646442199807901513322498462999282066403038556152691844730569717351120379244631890040430150518211246503030351050336239525462898196269951635999357395034328964356987851340699379107423615720319965647099233547322022745884425120056463794767146134512979733622164861859661346499561742131223955703052137400526154064319493084858100438789994333236502737406241610352233331526271088892168199955911858827133459884087242025634347996518268312972980463949113223367521912505285763304688499334136167713427288536346059329968047482971828427488924810706571557918027729765860701923688332546338888041396952448108040733324943826826898227074481666269044639107932789389231944650206601705627583915860818108284203633268150346152139283036899255077594995738234995990467865491802229851457393553232175836897078818721794131490489483917571572881493289578854019026888463853747946802077204436313070079101846055104756862928337558782442589443066128048281777594203236211593196579715646690306358602766981378630857186155211029533335841860570260109503896242179322614441083860459067140768924985717198421792559975562055279758869133246925409734465215652258185763130225605525280568052674558955294924421154623419962203432422418060762818780386286631557866456562668959863442910599323164149759277191639250642820567067821012907277852846620167655351199685394168413254538016864905932051885429089811966562090149658906769632163003705969296281183855979418022227765510642519048329931725587915228581056040504710605168057123910946595638458620198803174311806608108550794054369765077134733710106466837853018010537712561333109778658529803049167635357058438982883414490823779125452518367408107204526878224466559800076102946391922492827766418144824743864867006210996121779063234295299829094879662593948702169554091227820026503972998517794294094275547723459828236262699332442510704221094420422275499745782420330254358001640001136411934514135617261956983078847754964306114513873037073080004247339230271550040393032934975585375363952753245391622172795016180366854564488429897374890308901140988132302826497569239333783714644719585926738732033214666368331010198378479591917849188596410211390530863180873779664910899043100371197918591514522738755746548838365516285259554537949554895542794056174119929235370073648019270793542913371600941746888417491495079770148837521208819049104120694908754966347061053113334404312461605261334342310461825801211386256032965174264918850073128832778486426929935661791418761004888604556783779063736100882105118299891176137181010441956574511546025039816813006664289935654332366927413889353435985735621943841608662876966003571361356206452455801273906862680551400581795537068868406826205038691469074878078661742447511925146428929575614820964843631525925896198485052130213517388760709620531713531668909730798774740573083982462101299995607237751173726667700730265613787102559403828334525253725009667880756185218902455934007959461301374747693121214569964406861556828598869978124014740328609114258196214397474861235482859318203621143463581706076325871011330602232182798003552275033170402372552961756529613526361300432642768702698146442986327668158681853722606888001864146116182934837683374815743088052277177158763998246578118913059726780368454661935643981125451202508012297915925990796747282563923276984574946268804725618032339228873842671028469133521167848636015726989852414965258583609065762125566189356174136986526282892262489664496961795091344804662947830463876211748499063582148095516711402000843203192779112073611062421703837078911520793422805921405575511232087051448950221134035391574925651716458747726515329556343145769504176957463439467434222580266955995004600283885140352960405989617941479679862232311264531931683343498842775521013572262449903070607315473621738953956289907495426878853751504856036514590191438659114508127285795832436028115614115197483070403209746910949897624424216169346118455004506364491190439243700192261932099525892267503030792335272446498959503558009986682975336653133757446090099516622383751542957983096026439165875215315454516749762173653743982750533063274040626869114338769608257774943521008579388725856214217544028698561488066938889429216248837669305867506629461158888049176676220606621209582772809750919877567694106539033362926208712319399785019578727675649870287237335862766068683733961096866969005202915679228707171292005183908987241535169015055397420238443494599060238437347549337272402459201594805390545229984699983975877224260212517132120844028778055786062474578388685920298201058178203365592937147450369594128308718136631096279168059581385623053747311646976531796577103639195958012022809062826240437058167727345535282648910755903388820726788541883592560665426180358760407249903228473689919089816184669764360075548139828457116698592998417021302873224007546963467211534481943108252595126061394126736604951370408548028001804845847278410546724150402414439312250410469877652506280286191448711257764822510903010920468498243463405174678267559345586339531358196769072968196988479964291046406466763720529233872999712159361688206968201339218417065623680010703775144540069481844540499493923870862066699326515528807341282672382861987588746903490196755098990552547272784958324167995547013951606491051131167058279756864767124557433793395559909478163676433561766670732255481027006677039023982168575720538359727652446898795417537278024701259391302425023757437985845880514964707345725184714256586138422839054383647914645110945064932882091198883714817773821910467019490068785872121953250955606233173390624062364525135363399185216404490578970124011737158483279500940652688952115299578861756417119590101141568547400743040139326238362618132302861911404328186577230770642236568053659978056479963716782527320791923652618105992852740349627621338261396828021546471197612511598411759267106328527397348403258595826880303471439261960194190625144158557268789663787112690107118128089005723484081710914042670297765626914208029929512306928324997269864007278105498183321638681612381097240414233123422829441149137809544300751991414262704902288801176698326660972349798901920857964253111749031964088728894212256190047860502587610628292310070987574531400929604548091604986958090435388463826583939230122351487003415724791856319305322318115525235345084457985969014784940234446683006522482467516597688340885806260265144028394505467019176720376465166594429682748912080343006622662226636497553306294076881297697797721590400813041947906771983587830347853586167883720334749656262894999159147641296582377757062344377955870442043414401916114161622558222266899544709711075616644028921199256896883782097357129325693144196188292678193447048564990210329107307438888001692281516535683643500957191088835253658120558336659217032046577689984566646695121776959862997134359893578912550045771541340879068218976011478345061333281744557921563795400052593560678616944141626978164988093110419642484145007366649424624207222960552896586976769938104951023160122528746584922085328995077828325964167476729048452269853634327862650224846666531603386272657769189216376950472065851135013282345588687311087972204186774326682206779015649455063529698214438194045041536345742788004745483280925944421277752274619719016596792113492175328557865762522230678453435808897270465717826231128763884137077221541434313886895077399093421084025710511041929490360420890904096737731756571472104817703991894572014392853574613245615602606668622664398263810204074047765824498633334952359708612062047833518280723791300063807747468020866809809940171199303071428307594917559522050792564214752509471474720181757461206778792641721547494492851617824430116547692007822986756424826851983193785065748851545401825166113322578848977912268555431544634475784971810502697320364126649383467641428527457792205637711028673211393262648038012148258297481443643984226094833383074608329874437123141094899687491088538420692704045104505194657141565714741636928053543226338906175949110225287863210051454734530972452466750239765465018898248161558615667469538244517247027011328198178293848476081283776179550143050526260813061292158820821786349338882764926590317784794436194032653785630688848326870544212885355417216319895456955889479549666639846318520042978975580301700205916186496801204973790649301416657149122009186900557327112482410971676248025744058122870837191350686434517700016370116975015765135830542211944228108200807816038755242064531137928313101362985544763235845754567432198660312969113538267288928106569023288729584866186822878466797749112429919570878437372607278631587680988290469626488769255497732572157449337114639675965906954963071265172030802637196506120322014380131531223301857233839267616872590921977893692166114939583110532835642838070600338722847495515890194559299122412301146157651525426770414927891928097472456923196020945940314948519653304432899344216037238878958551535104370144921116782309721558362498605419280901602192908700812929544264299839526310266129563950748282328663156542083747986044682634542696955476526819306486608610100920244912452667544564065844702448042626405713854384925954231039982811792982145763091608113551655609671430238959763840811102126482810224558233745912342174398363896546879865449605860988128423854406459044499615204603276590081958092784704535789654109827573020061839930932387492570899945911731899142903096144929764012967353845802559231723703247164252196773357425336253524370456021003317070834561289300979013527845328414643093408274391056488908609792351434283351768011709689071031165916735206934855135392434468012555841668559260195578326291494889600924319611013621466596558967615141745125218493104284360800011370400667812597067751312377019554551807190647060793912389603273503010463601706966661839235173734783059685833484175692853495614413533058482422907729752058450165090162069639331947266966325307338469978347925305423393878695339839885555243589331266818696276637801217371390291768852741637141864795306590008091389889716393001607106443833451062553744827817772456007560345849595687613445225049068862421979465110799572220178465910414458177793355633716750317740071776555010771559823367253752250868909007608709898857009680699626550429102459062771092387523745302367969001551687520415181192227080005858307043462658990870739856136732421544296230093318021634273387956133207931731203622054802505595358284460898077824989069726650306460233109981248707800943574826757763631411240467344940218501283655641655467767945396394248784535592818018480917576277799984521392562725034993346872917584856717818048859795842876947652862756089882544972286818978028367372962731249981701694830410784207617151671065084515752380117490385717142101036390836140062310718586929158873488623303479092779912753830447649226905694383081780981286144988123926186706966254353051943789024058691310745300794528534846861241135052119876975992413067482832355353459978344129403699798288829788443334475389265600198871900950660379170640743568038776971952394746866364372450398776738910536403288153277122369155565998224867065407476161921604476362548245157223020483143958534605753100369160227792851096580131682131192793915246940409802388135502803599979803714191340843514187947948535007314208689718922311687579993728284638228871908081952455326134760017732597584829943398276330660013257442446551319658440598149742296789827183412039675785522432265841965817663035408123275884676768610923611137467375390482223297173581650571696669855847355134571166896074799784178155024563890226778347025694405543981190822823381186496855206527954731729870690164144137083484605014436784473518431750546816015962245794215430346021638557607697311778546615820471877322623711101260586227234524437237593959010336413640505012250835447137624542224254753403373028622212411216108066949213512504304400580930867637750037828713068186219126523483337874384376365764035856490774676852630530571743025829609235578292537670790617864651276458155517287635707161429170264544811511269800531595774418684067684667386784957552246691607987711434545244523749542262845832886836575277956984561854570785212363987582285739889891128214654086742957853951215306539799424986108678606257292501313187682431322040896695656838580738455838687121744745242246547387835037873744544613185156729733773282744216529911089524745243641074445827108788501508121611198865834746893459326979591854776696426659711156351096339039505424416556072899278634789740739404914255336852668490773507887892620118485558685444499579809695831503038634075359851281746272857745435664058305592271130047329245290486474545034091521258101262915088959543581785222990348722046939810781201245795981246629936152792968507144429371310897879806417460306981978176050357440346782470724933074060925365551236217859572654622759176394824213490518251447147076221212635052798820764633446334942235753123124094758558580207536021404254875215699005887545042958083423812660808739590377001467002263281789596084999119754854048224903395746768286461592399130249104761327142940222942261910525490880341707690182380158314378014959246400370332456845471003089037571684621337673184620573644192035888509763249364892285006628907314313457101533529506412589001810105248136956388799636140246676162927058095794018127575278628611507194157230615888650011911970434118260315490452667111289637913747383002378480457329828563128359255223931073894420459704049221467102377590693995130793852037472482433944025433727791869883576482649621491328588372361224843482236638503082613295114358652080905716788125145882584137711516881594119732370352844485366304624969279526917115298297801191942592315217394743932914842978684174586085300740839770732013817440834159697222538854349821378958861887393619735076447839301951706042891322622233229191045051470728948493333425351457305403382853270525267260817699690804468525249382588725332846711084351800464550113632410893352297547507209987297793289626702718137537116425172117126375660360019866241266734170813079091744082475220167064728682691901518952362342324568795063004779507107198946731494880438645019697229133124649357101884706726082005380129855663661709121071237587226267827098072986348362760911623988491641550922028163665888903434156686680592776067090192128430275098486503835007333500039608585287306794405874323593738104729447439058376172106054478313027721206226170057150340273258919241295555881285583629318993935191844875817921335780974281783667025005656356415407196804209458800958572166148067287835951120470940562062248337270684652459433423489070682995102233176500038282392300616711633772765811707713696847873568082009787173835895637986178040627118493127432167729093196480470545982677184713531128071980270594499165108940040230789397853086996223980306204822765081859348587551143130610799283135490790757745906000347778534340933235729032536643083092449550128814703666280423397045284226918017307335888874009122957996414217029586391301620805552304863288505330800300116724469577216571249545315238230903036554044289472010271105499019820640711782867610790073111376331654914385406025751783211789130433480538826361981522442813815228634793053858712629672253425538106681609744912148256117170305956985068279389537208985189393004799950498573021269292902915531319363807358448940511573374775519794679494330942025308127418131725733107553062501703326724511683927038087100602333230251113646061695668715636398717928534847941284133056267752758224180876196732946026838742482533588414993156580585916841649600668367381377926720242534636775358168399490071492279372854411244208648887845128395322999399634095575192869230046990204289585906178345910291722891310885547354098370909271514293566858493229371874764167073309681566534072542319809596426955134461149815709629811047088212828659083198021319518845275571966331948840147639163045487257176678939203820228946516198273983264638538723054352507331861003395814182634349326783475908698608610259132237641185370624240865968613571742219568430932717693895641625339088812160117526156322347859508503966457611728779773649998623224872760071696451757229717623751333883872113476469704336024397437807793935811404246360848985199154455669535946916483714084951190032373098270955174116378002520453678122190977402740190188884854345912094618954217540946184222691990821592380005537891077905828995188066079747492663739172848739644643750061653857040588736639333035716031493783082409520160039547821889192907422910523963013987355141134580254719037455138563928585425631929289891114068312952002999936978093748104710510038174995845860876618588001182237131053606874368865211267791274803662814385962475437938939449171434286227085448512051962720297632063076236614762941909172263021376692632530166036644183254344595947596765516255896467160297307674489439699307276350912327478026234256873428899339101415152314595659964444372807222711945437875663093247919634339063495499892188674076216938131919973276215370052746551517278700605656392278422715217997103589184298218440894238489607439486113358815746647479442599602118631979120468754062199212405701449656243318553122933869326164516421745915995398579347322780693172493102386388841189481489784110069777861561180521162317211132519352091094827977235210510935999804226307764780845573515851082467249090287226566847022383328254866707763851710108151680979245578559441343706270924260859196884857167864535193673918713664241497735041189063290127604153516593755887299671232732088439411574028538710217166011457408127214985690747739724650877400649245550485302728660518603308576673953218747245154658059378973032140234260591292141358584795819453576172450963494737944860745287908712533099063943665700295665255261986216807919290488932860605875764169004226813662634218092726798321630193691496177314567242072836912979433179566802625102584667811807800871015586347912702078338207422909220083043875779906895312513409187233093856852407383491574934362947444386444621561742080692643830376778642417471618992531471473808372895267370561915266219462064159717316779135382289304883814530516521149564352382357962496966838205469435164171424674106429977008053706691312259212516607136392365092321764771956507174211016076501902589273809117938961534880399561412187033326519112244388745767308870178550827663505133038858464449625240613372482791416258655949634386783430300070739874022349374130012748172171813860548098565320600542206668934822408617565900828447361422115419962133785438460163555193705566440437585069116442974578401228432639291363365327249037626036482915175440410134279903506537172074926817897900825655821981681927757661585191054199717590082433403220494241490498421340638924729421140254302492972497655612385369168133598939199777298602267063181583285916679538393290588586887735943198239457396812865847943673393564292751303808435871742387606851730346334487228880737041919180914489904399580760798295666540024251526106731999410619494059965023619867886037301329709238182331829889605352639492750195453947508391931824438444472902857084595492647431633318224439988912435263811287227753500157030158629683193778612437688524880450462933381847990354797748817119699336866944910817560346533973129424698624613152062457745738437930385366343347283822078820673930019215882420476142254034611015514723104672371889344703596733845994722675487659358633818129755180473337207727947346317005022007247499718692810369260477784003413223574415657885286664778732283431763602651135734162323335390209669270392163971897694938459055799597522021037868640786904212453504402311209382447049526316913140291561385358084431450564354718363543427555594219418442070951393904924084648216146256619471879924947430337870804752545859604629656874207209887144283687034118280948545269900770103029696805387973817041767327677825928210164144558503287123231886633044387643989669587547464024236156665232901825537977357536043935644362343334532269253428910016874496103867979704899039588689286748968668180543427960145840167414163570668618227992356362502168327381501322296552733095837161276812832341672398726571429436523845607550009236587091073291635155952430101269646235472732540911032218262882286871030658167092378202509721716815231676597427278467039480993822416233706947213595974363024213825412999219042267971794946111392479820520156524056827562489710371882120569071059719092652277185388852390835834171219556297244006831812578655915610876423924770071011918005342562609406542971149640567973073618105541603332016831449748276896515751855913214373877115752119085758784270235599977646258500187513670187585845216687298648383309086162875314226293787550166605111116171039120678537515272301664555828403343914827492630421502406748514948768357838231677053154097257715076490036842936478168876917646483599469201313058106760000769552505608584528475972786893357887814678776195391466505959032697868993666817369404747770393881514794928984057499752317767840561783465855181177311988333524132430364229798319035313570784470970335917363224790536670229546898739723483126947318843889910528446317890959353700453873692077665304369148066979218496577343621654536633898387205016548838278317191242667726531715209467801204880045234762388229567769394303262686729655460654647609748255740227797393459121589153285161924940614820703641151150903189194229777921947006184916569226492909854346463465092323025793931079344454914929462281626619663947697587403895427577934169416045574920125949819304600509281576091311318042942460506012774776281241947724032188403695070796398065554942737692499601363028598852182589338237333689735813220369999670717636271710106768080748448734803980604129815963142843781726588481101793839577000109468758779335614353983720333853233947635401452382376974281913861561914508556631758632794965046321183956923518024326723068259625305339010892214781511111648162977729976851414219932219213398763326019408553861884327598718375978112463532348032566080152376091247309500980791720211852541711473589663332542298729937049429749464347922443572124800689351497021066850811261682872863108689208186175207271149515360289176282446317900374017628047629215410858766380979729059192484899848560510820008162948049671928964665844544106070575223848101529354723855611630309516607002303953726570534574743922895978651995166389842051903975532899506409764818733985315235537586502468793443737241078731602803141867187863290721451548057722854008799201760299122376429956244476531246276621844642346275025672407576254840500789137674919386213019626369008160553835434531681074724939181971757827688759565987991142106955928264804294575242516340341682353713807382621137156328123054079214377998185839442763722677045862891422060614320037379191333097351471836295836568753333336218728612031800591978669085339931756896950959779822605258672805845174671559823813590213410521267769157119261053045768084835132616133076005995954792249541386185818743272257358871794731036744086109222425149729473115698509721410692772485449215425317945489286700195740750000570510989044337547763483463234086181376215720067419989410147313225275490802386218872192950148238271576474670506226513693572832877522625952899040147901418326609631540731586078587935841112835430224955042281760074160291730248138310437875834105058787257389750755201952317490174267104831033935915158252729837676201059208105938875516505779896840425004832177319237327491524169932519343827563361934022798480337656110436621278219182424990432163077622683435042503903866588821645323997300357029165553671926906864010666621050504376165479666746194530177611057856488904853312062395234871254576319521556222675747480950351929722966393392823899461632311447478804070852268484893151648487337536285310925304076580809667911581844291651853540581606183229487600731470224398017857748523182385760741003619957516300590265623112686121138538633314142535581848726103003168266021233622706917284725755888681914572983624472003334198351214320384974150941426610518186692418357485787836289268252039188315900658660879283817356250527366310837384523035789630200555193241372529421957749552562728541853674998982852107730627406382878369637051804513870055485688585354557704053630352626016655212045949359022968356728951030279131450142327765570191163809128189366261211173210302163099011072904785478256874513511323608979705982521407440311125667355092716603483748786241959966941447841796515263293429295063154505856855998213771389271665763615268998919527988883878148561163931863342469959317530477709818016561668012022333038728950324894605404050143656041055315520446929521655431510239889884446426600576750531821668913416359147950518802743770009328778147862845248049725692103468139202110630210985619362845736675051234872033564957431976893057042219191754810845421932933302376188470158116088871199110136943745365130783771308346437929204484423176628436917924579866229346528444052691050796103112066170293041690371841133628609608545967145096350075524421539292526540584729685829552011089677582641190482357536977806348829532130482546059889947842430565561307008297748538904623504020298501272535968738630631457197514963794132149633888878538241752741142061765379013745136387719239549212877732216915916934958744998538142309535995171841610887399266099332325330407665305169775697291541350610832007886607286942660635840251079757338114122636846508838364310216435103962281118845742766990797709671845028248842022263580222081653947083550098176820250984188010236229528940208255061981224822103168272867924563384979182311462004748131442005898759694867538844312971334775434277329019639129044294715473152858638070551562655927801436199317225747027748890834130284755783105555072101535425433455700746719842667802827778018887608083141723614126736311406345610911847461110342616452268540518891908835051015367615666299108324101036000931024796878892027161210874737166117895117129159494094941855396975720850382868147846086182197917280656799174942457733297541432379696386096437323172516321024798757764277812935079951275741964497786066318247959130227977357571890547900895403918670045499951096069153812581162963917787083324285717335570051989790900382399567264116390544069113621550096723120250391991520825139683959676477271734028233862667429922676103345947178484521626510559437680211365096999916560239171377794823732255213353600190426294553969251707612449477262147188658630548378885017249498228192416532179085197961684991395311545953741566311017366290375214885066471410868559139989780857443083978974369458135486910218648966402872258411583523513085692722288768271384905844894134966186359564660201147983617613043878235285081062606898231381840831948374861675574676868140173350232820168768827785897482029190382875064441055001157292186890482875918677415274096440163349672427006854460890506125296919002562167376818097570511901311400769330070600425861321873919541771637438875483340805905438299169816411479758338081581563361168804316296079637609061794924869705348594268631776573979186345795631674248032925217050710736312016029405483588076360148412642333471516517480804849277382439045596098796541231249839514176026731673250836686275195098792617715103653801966721245820070414287487793074405921695257155390714469488371579242609659640567414115492296900390617006029116178175773531674405405333956829224994391076586421823162893514204156425811233674172690638769854988922005042167970852001577530162182835262008679955694152048086721330902661373442008304308524805625294062221190428621980874768342823100392496935797656483357107009992001510405212388308986454666821176902742221678513377840436914974573528803915730437532341449189513872272807852103231267662955412392420397381870043260320929115768505120593203719201559952522456320227182903981478558521073777534979307965858463777679974775144927284542117618364554358919462359013632019377961263537482479217340379421063686464614573433273916952011437783249823284297183160729704071773638900954187673253552113877802519806725072532585172498496824656200803221158371453809145335481615681629843513101109758468755408757943914712020525187423923039322032879564498593067549986073804735969202264944916791802283534490908087530713894893363683225822994669727149868148406931536725040355269096576273755410146232360565065022411141958772986699304457949906578903256657041221155883823563034447587641679751360109890847764705241182113763000217731920232904231811404223778357243951844074489971686708345525887065770797361891635152973987315847476662569815256999803981401632914277386825772488551762547671854046920209927947020058950283623495296605533049516638223570334983540363511802545368575230871049025744885661390364859294364377411963879388852410249272462117311194263086549248806365446721607170855408791873467912202047501454062517086380694252849286408110080191246561615578932785491792207986677057691599834462797546903943951905628586882369234532807862109377825884453407272591558298846234129823810859729976968509694816787514025152159885046701017656762222405128139088900424547012013231096906302358076072119229813820196001444733906235750702010432791977034484159487001986018796010025271949964693115205579103455260626172801358587393178785159365705553481965288668329065469609819198082047948566005243847251733714144908980090072842378198760537021495815470824963478052421724482975719829373613466491270326195590350287176403325513881407885705584143614569004278451022931530509836575097248020868072577513791952133556306366442784507379539194001561651019224746550841513200571951052715857544005246696931839446924139654709065420433437507599267557108270092302130187865755828435876099924249965175297472784176123552120614189255584205270780821262474812185550682266041526164089779411670822751925406933213880489491776163958138000573039796595943129519580907154666953729768523362043915956373023448342497438396316205115913607104158960719310741256353802140606020585197698338841235556468646460395302341282102399262212927354753801148259170253210504356196250796933811543209365808254495301197880038794989050041505805964035590809841325638574687921269121952864326575753945663981859912915484402969451592122009219883306174829904811271171413962489297739064422689970714633694826775989935037209084322847072447409122902842086705493265166728401620565023954764097267076104143086532289092535335827247853166813532245217949463981691092750943791781512601404970149608980121641561177893422264687978074994495340180509200783010746073331384313848189246041363388389050844205821172364870531153547729373676101756283086105026912243828747981881201040506138039426656441745908175970947547604841451769911507249521078359901168515516292298979194357569314176556534453078302651567866175739053849669436161263917290951833960728261460643102118283152086709504925181544372690803448468251508481532208704961322836093312417890604243154140508159197656773710728600179712429314241753077266021796026202196417389679922785132548108825589477584972930569037562415758757406649930438727880866843241432639319900957991932168995247059036994671337008144791908120869088124790477897935872246748794703471068796142318991366976120269589391282691755746394287625581405170672750639992200563434878270050146857196538586529268885673737190442184433017067322838369631705283253777703708516786191481332942318868183254032250054779991590661947590285738098830537640461813473931208665330063025671232113677394645880895407920365775365124696666531259531905835334409788336547600242416385657577593774524492711438501417079245338681996961213135413524241462872821303512312499014351378811127742065613585948163169497807658077904352783329326536583168621976437960930876584633839293673618593383861244323349346598677450820277101216681926949304041137696807347056557126489737309570811339468886785287330302294184013154222656655853359257270220251175222729005971379704940494342110589424902789711757179110755776327066803345799668298752427314619301138085930287993573098810837696615391921402253275306342625914870975810341328871442211571916965371107255504115500813996458445378320696179449796468092550033830836086766650234305158992454552378507403946765505843929093645490963703389644232441074404067106859959725336781855253738313582414541066577580328779569018045723333336791777046140897833895593565517728519817063538829528657425936758302529069560855553235481285365814271325719725819162132977386969115127673419240568869499183182747235408171143092251250471275896500956592115599847493536626671354621530260025041141069795774895632085412104740799128941545217982663149671488955546965461461554022373932281879010000978589512824738997611739083298996782875035094428604463728359180344852966248596003567985224819397534790717392784443386857084993705738932932709905643049310895766439886735798510850250758564677382012516330647733194406010864823291089620215530909519529624323983282570040786917197038590743734537122250147652130666574805812640425241820463259784788290978065012722525588405422439328030474784489019877581457404379216725010666037225909855433614107410910073618083042333641680849285341910215290028335390147508905684476013425721757284734640188203338244417054495249353184002599231109330629259644549444566663718369716810158270205060017809504695960469179777644624636867404550945796120497773048263786006414778012241273968533293375349944019125083770757864913497510742504728385867580316745183936681797183483415624408711855054113528373356716043645633190708882728654055836315245555036393230566128507663432537348312565600472633475736565468100533024324718035833408073480395537761054258016519138038201366178691779237719425613274005043431532236245165176159650411933602570289831778816835768428362616886027381401700463589838139907568983140673897685496900379959438545101044095498836340518965521381507545862246706688323000955320305788305956860290916739762056143108425683354527715891083262281102949189552383766383413031820060057536492780969981382812063340615475314949901660682962759633777401525185299096729130555236658840023072782904704064161018950738776789037270681763784875585117075963163409342228481002176655539868786416703492630939698269667695723250251281589145857745433582939493765905039271814772519702682305883318172508379623357405838938506994194711064539923390601408533299116025622994612606397453208945484768213224487336170682399305008118123061666249809398533174345926040047540203571788202268268410040501763569170384252271320754286681541502091473395585959958006593695982352898715970625059037523930406808620057715102141717914800381727963546898539182595192832069499753958140964300401546843391109061706104127078852750633523090606009009495339015472152651664425266146819004370001079284708579125043410624970869251830706115239126979227608864328715234659732619688832728218574395980158395546013221499407097704411313954998854889307742982460463689837852187277082010353560415230943316678718697817951309721561636501736368018824999946538369708581404725906946921748407607592991577815038894220218147810826221750727173502084839340751051873908974560517571821290424985346925668158854859381529796215326104065670060259756530517007796223438493676105723983863938300634278988878008490406509745629802788297397496681943074691941197986718445050399965495538242384165801292992077614662573228318063343357342786408059128673066844490817972936177610892772121566921316108362125474378132233361523354665727453737410745529821027477290499720827374696966047795514566643062416998606969142553646177379277417057833450245675636152781113368861957370773201155776984958977753715719515424874795834089530008992539079550703415693499131074030310567223248667465000044918515960777882711480169069091981944977321243955836176040100146976843078242475339160490274456117819767276623748328948096521575804109800461691231714356949722781975426137393329299263527175762940010946861766768159547781382607774797609869396457851808632896289475383739816835576874333181364002149803843813239466626958301053900674547524273631618153047898368325072584741962375717217261472681412667719266076945734843999019565716587180211739882163013071779206630814549848048560949018106114234879515725862131369204688325980375448020349671003126690088500098247079867155778678502007346309034057325529289610336058903087503067763524227932814369363105508443662730242277901250157606374142459708877489182043960169671924373848346433517002795083847750577277958735219941178494512442151878777534071582980234652829740967243716666364208548083652507941852543240322607043640259082036458005774396677658640217501502704444336230550859098758689682889979100216477023167735529422470311397136858965364034518762413410800431456877658294695324835666435745630741251064334549257137509300270523389857309381646515197107331781597372061197360339933665362123366288532500189093886033466031967444096284696396369013284286500485583451653715040592969504737569909514335822657634137571092499498568695604279528474628893711443004849432804115616658607912640674133879184918284262836165114813959825461078356105591404888197630301224930557880584450856256879202815082383169790813865749938349739880274901320719453962206052590257696849125114420880942941053571360059950772770937495508334650548589623896507174120613142412330135971749554346413384688975507214848053746057175613825601833394989872395667187743017700277822239834657538196353580562982700194914949070028381392981296542284674935704598453444418619194659380757828746679853994831562679259286216637116533600686965486604793224091437171017478294181626405622200830656744566283699700942709354884657803144278504846875686340836383034033470834772334017829865719133769804465454814938275164743661883069582416359366270258106031505433168821768668225049187215170796586608985676652516318446428924680204121023473160648238507390946542015386312815453100827403273842338073410707009532297254689325664566485922796151031097345256750791676527664651640165494510162853485984036767542608005588049064709493274355707654554980832102590398189550906841772055661021072042242845772095353809080653297824031246524590834356570032406359399730228232940775288960695562526866576045936800194512816650123417907480047146053759153598431864548085748800887280591302854245447804449425084147989877040728517605314394765314288258336941483849476538617152333043290963517797628378589067752716737902595759133276729482528980841056740777001812532690968397930661250987077675650267735034737467420304655095637895241436889010448586289585594246822322391627316853808242550516188148798934816219476210227165989407498349180075137239132682443287089348957277559777254407011774599159979560438634803803774923663834570305268281461738892727524960870420413435832911627989044062941806280750416009284565214855831005845430101441144019148145282424712060376070310000180565119922839160740268027960570662421502090991677082470453741327338522496304105098166826126299340764306125428474543309922300606817571558421931493533334466963565462422231402380488849127540230610498001503997987136602601110240591257099501307526734881793625741245568692559311328492465512191588537151948694367529240121755165960745810759588398519858925986397681626909792043410019277829150927152013154367574069532739345971662610450539901005906180982467042451426046144325593556319018812356077420099839484238059285488434459619947229307950045536591928746319934720701899603611789447561476006146217881481539986145573485218377928294149345021003034705971325891181290065304624316516726094349414615067352442262315317544920822647864371778901464796569690288305498937163348556177728130052341092700529316319735411822175285822097553699189713419328552356414509860000983403278330747979614808970455179967476235613440456223945988899744036787358106660840280631427820205239960528158290510764076200134261431410135098670939766571222058685377719484647983768159084957812709054170326852003093671857091411258326058889396794171025508960661942611383075088994813789939403235781469730452733455056376617805691633554677430464332770102184121842573055525789498567422482316765114879716010111267878226444507514377028326724920051625125317672010562826447486485896082957172062676035788183960105677738878548498165334554964973602982980909425506283558029149256082769954119946769910043721412304381354987378899420564301761923137176913243718815942541337360160079430545312487208342670924400139721309684139657622697193620192090053477390475119565367439325494955174124872473897807913005903304089685615761960655607086571226032788380060855126850296544896417677747781145125648316284961750580916466664832286531510148940535589172519955798691393310423112301872552403531364113990976388404180800497790558837920046489964676408297082544062585212082781380130143993290554666748283650655273896499069682431957410728492032828638298438590471028541022144687037036877020704537822397816442273223423498986173337428319567057866115353927341566767700035252849123237194077848704735749170668923794556524274432829081807648400562596980835958891437178810769957622475046949179461096458305167834786565382370832880649605653350021087635334367199116599317563424414056262743770658190317347861335684937210876029219673727103902724545167375041004010958259377815614670104305965424166941473088710233924953119789251217581918062633786058191434671067792762180262833594079493837577909561900306543354850315613309316896086857146314653426680716406182900410738305641084793394243969323789098995704059139729991072432476397364048357882984717934011668205194394803995894646879181442069844276149517643269159065792881278988014601957267362883741571263100056461976845063191878954152024318447635466570093856139756392201182905796636282725018605717800933835334247651439432381065462067596293248184435823779560091754772406362709638832652913108452365398447516826823586456751567979503178448317417428670788209363595575129316941320334711538377981949633413365632024921883844178308590810535586284356202515446286795005981836427357497329895527640205275400358907569631292613533260103949044200783288074781774945275652140213668895363653202764247033316958350281059117576146983934036246882163864000630037857719177364838115536749407995618838799435313136196011195717137606804280883041677900892556871981934932846239710201583772226108782658282157952393135660682299916285713381799260719053551667365142201290295624996424365319973086312190879883512043645627992194811696946818376018218939293876966613463028816175395963260668731010798899711726861944080522149800816730825174257079998193370774344699009988718959438217633492579609331155140699864564554394329656590862302648161938028233167875446984873756428847845022777594624980188821737925479865503853342568308905972122402377994742134097403579202257390051569291942853935867360088537358675854861652875475666085387607881624693269158642886625905057735537454846253011219852664861478880974716329339463875871608814446501100056799930423797297828287336830480542687510237180206610125232297923668578390025435383530796834626196937106394151697578575837422470932492696353028249216554202590639623347968635235173742469412734207848396515295629288771761772562597614040682710394727384621407715636679221383156508376337849220936866520619909058360931660555340071714271561620808804291282661769186353563111793628104979345763286463172708850249842826641136324647527851441702233427279981762432011287650621818595798471212575508198270637652827269825196225043620610897132771922948870805409110720410157137498291336889459174725518331893057868764087631918292749517461043368702932928542055123195190687039398374049434174032994208809198640953352635824526916677150377658877545754391089168237067985704735537439570019569619949508567205563265088652992053062574195924807764194730302118367678083190058262850180032769664827919837062975897636149308324658418580489581441506272168081463258831355267279717788667291895482136984988167819464147102189960741747554936756058913153794121785519145633651718196766887799684935048041295741179157215233026093669251657049409172135510513528740831914574327570802040913014871045141645754265333681757002117289602052510838092428448849199152707182775732403527573892764950739847982980308000301669513158780553410933699587086016278984887810225955980570269513313100159969838690845305000037678034480864783270005021519407142421877060597759244836358542247052891466876032957113080864014197877517974131095785924560566978831561838191292151941856414086037647665408577894457380953572453389745409096718761995711264098531335583806588359123022113518607501651365758801043405443036119769592213901548819464789919326988578583545429476739409703106347294914253641575843731693203361084637366606743390927347557256960734951018789034862800293202283827492978808584289552594356707902584124471623878303781357128017166068266977956421862794250543780273071174890125588636131031174897964886365906180892734788023577715376300276180100284623057224464643959228430756639959030899277261311159592586376601451486775834588946231260026883155967111448111080405377608322047184790606237491750006856286154672333164392476428845085479324839117619461826373345660679067553886271026389173774128621974065316487834525793884162862217554712518328668646800309767377657675686373073012833989683241344024065060832116130664604242992227044081301860931107597815933155168713511224813904091975007015911102951177476591851901950193959819175770438853369490713512842480564041689770395856644341409883873433067838756755991483463054867851704933399419492808486109650220673712184319115676192179445288812901586275105740798570283133525065047880836665635760340244499796002908041236782297058884412721224432714600904745830261873103133026766985815592533887928409911159058577395724928702687604353933131849615874323208240316136553296711837583516902617171454793155450848560807316161371358921539481836477273788249766209656666099597815371808333338189267713160073187169328615986300222257854793313823345427308016007169699914121509964988693886054761476241924667767145129612553413615245783300433704477616233990847526837575331015993867031936568925353793190958934565497287516068913485268366504691836565318985478789577172331163859167483683536778063589725157478233608557484079679982940822758072258148602173156520041843256236974529937255829811345999767371670261687075247613033142199484177048655652457000933563094409888731427695973693696692783134292538298239239889960512726962490619591004008517051156359148765456074873101487471099925363427647365899043015288529847841985205153523282988655929287640816760124978677796282886415062198522674990151971323488206506720979821800135896963418975428278610402697589686315857713456177338237066736938653945470268917820509359236821404666366408874534144230331062020453953109713915977709004368259960222254875256842916708744488374560686623757987567591397141757683883462316200794628151583577951608995594048870374755258053304506812967124493571394163693033493843285915590564488570563077001829613174318510142721310048537585941432723288277513445811750526552700793910615812301940356458785597494318355837430059169249324400055429906913343102095715626588924302955746205896019495339276851638419195491652132974513160905752911500905436456804025747410286004903682714085342921971549161393452492794670387593054271485714944669758647174633061545333943847680851191162302335068819458330845885571144957714808442608624864779365874288355412201119538309858203892587711774912727038838394566111441864214372098384349623586033691740727804820954661869232994747515576884814473353612983062366384935537011121879769538956628359389713634287878630213477650157768320704557707165093594364063372646063902433703838620946125106346401724932479586665661848449622419070189099728625857784716575487254593172867753594558881976554432801499494740662102145496386320660499115586237001879316280437912346106802032314620813181283103177343393522991946776060039290625507690198555394169923234790176739881175160997149193823452947106930667913425839058208996062733939037492263793404819010563711121832598447378259573771097388440971326689099348286414521674290134361245311909616202210936732603430470905338389341105179599816411116710793092168206875969481483283723286095145819227127345277287784371977004127221175662533928674036972795767653548545559790753147892143176949136786614234912092137813419427734085067227165053893264329843133065307756876609853791586930775504393888414943362380183039498792005114807364647834292452213980794480298927966064121964257773977514728405803757304665252743488435721167194272844791923905426438028325421975770334100326634893254805874042585077422139837856320773405549401548982816885930074394765749388052695298088034491586257703467107326687507787134643956825896750740075091245515651227860623521350460521756443675603007974269186590968272654084259735803081953503886037996424814337388973658466164093105040219456712958385868654223237780419186740850190992146558774038122658464693259660991468553715770626445103155541156485432971766048886440868072323143064121582623309564643473238614564803371485236542901465091729944562425319008758635818785908981863630664239569798952059863962435926504423185495551436501055423453509775846315585196465961230336747778772926757431725187708299369965564841527420706382472886242293366606348283357482585085250673096405886287673603815004846136892966139615910863170102499670833697487528209573890356059292278787320243570366822947911850542463552629882516502448024353386122320261506512120114408087530555045541285398001485287057129059958206030232153061439820204241409031436788501979089096788079862662964227096612374496119240653323430265204595570920158185517251540952222056917955459485702456255656266520112135647335328146925405274241315220568209606951193113967790521356496320789381148992656177583034143762163616239161292086779040773817619050376196540037610138709012492053086075020726965130555038516593139369786406067393478376625943740766131411562200063410976958700812489846413972972291556971253036812954579899145410626785799689436472356631337118396980036462945884880219888214833465151660825717926837414210870021003369640471321875881424626511266861705687267772748934614243244520849994849855505212488341645779079552982870007485378713414565203433833602873822346685867890347159395084543237781799147109386223344479232340359438913476483050244835918453826791547596357224340413313312763243522157387914294178029612185706684387329689759046039813626723278542980144362283865155803250442816753626584918066708410334807058561356846359569223819846448040495409948464250707063530300625302737625050509075401645978396145930585416571382037044427700817628854812587813631108125318232253570945755218833454117846565692680282096636780570070148839498917602445658699282348200739959754395976916971836472193345855887991436975574449420383442516878105803363544009409016093331491554878574777712054235386384742369213905138072949362525810506612578382700332393171782997339640356584743405165590792811586460531146389315111735540957335735088874772106195810662239875788225404689609901442336194490790296616690307864414165556388249368924483855212212337370956533467141087141902614937842919673338892016798286133170124619210128089123065963637406914565166531371292916392015856118189447215031227223163034587469945631404069159020079529726460990498792840802566092369348773044376485115390381510862310628555530675876828594480610370861764285361612997408498324228363951350450612413437901917984499248933760173643459989942903106769656081507526489256733544542239111858588576840632519694156798359019460056465177671278306858317750841743698106636969700656945995237096679345959942725140689020687372239092104858231801136422688070403604746502469279026729347313371112638133368044827470163670672301366745120830919284009148313011171744286887496123146508181768059062821992104251193858391694779179900142606451382971042110602810655648128465638391341274126438411904975567652751809515258069357075583024902660852725414167493902492320454821232228589235719192136281565717613881993959888916509977369542225821425719366015135227672819770939084032125146274321153462140258633454663289695240135929474914618169191797940478300649295606563086645531036554119795077980589241559699554299260790594324814256551463553739761807922366731374071833954518656004206221558573502572909881619523519312370199863476108760747196015863309101743632968591116656028918149188671735547050486191831065216532063758816364253574553778805555075889717530302707040883712158209383430959196467285561538141521598432532865506155757118038447359283288786121336511539671682399595198296746689223667554974486886289626482931011507516043576170162500901302685488306926210914551936811329291365214313548482834376216458990460221662487339082865302620352922394728091227515613385397125506267311122385948442118277632707022134382243358436365486326338035484648810443339021221793216012539301365828326664481575557847895099147083688278331608273180830107557342887904133409826213922623524042238615287137389265908856149761674800557075826830852507646457479193862842436749398075504745380706871409972009373139595389402331198530030765277189094088250781417707209581798705445762615434351860544287709836342860109869756559275243207627879645717468242344771822574529091939236348394157900001631677444375671053907726493306924353241176197364675201890375878297682962163345277106424766127762486629230918652010202352546753023742337236782105116023027503504810039509216506845373466648698256787669133550124367520707691716370751844500947669179306879508109677445583249899685290113212649760232906355057012752566817810906096782008262769059971061702931694558353234528225564493266662355058867352067748075555910630969714554687610353904627595503198580270039336637388903121699395175844741212066310358242582491848391827056875133591396165383250441654572918562940704581035336903747931678853322445176685962311508830774724053912185850843311693092289558194101423147233120836312362089550795966156508412137317652492258753398701047703881453684399844113636549914368759342154187606725184170498537326129000350473027728877760896697417135960921876398955617706396204137732592032536253710698306877657054443402138993949125795844388641244358722771765087429888535427990515370169248646441700741351924697229522574764504640869764329868780138311777138647837602530219952806527388109536513428770818254850307396120410731887825080748828969917843501133204136380171069376499316012620658099513388641601112270605323285952462504809228150044645073019445586645491664962938540286058876105288824972331088444166509654087692549482479014803933595234794093061412332039972536561304455478438152108482479159157751129831109519142746082499325625924473995196383550124771057814993403991166676204812360004953366500430670163524632182029366991767998395548793425606942310016095112967256283821457729320010992815947262999994944460039137453383405332383779978555439752109113259527777280719846047358506846565858577013326552399309398393505905372047713988106974474916996991773785277158871131379961017886544194457909070957046586839703664747737473916914120384080346588021585296894724921563153697475183317881182147215463965835496489264744903715751481577935805865188887283352046296294493823871011407916456754344632943691713340059023280898201204081609175577109130160589878650484352956521256376492310334527089504995067168994524514966649844832472734804260651831010662064452241112106233622568545233311701596968539659848207136200436680730957213453686568188715630522764265304364745088916162930704449258341174379328246370984334873004044844695758719221744687493153904376387039150232821487022045473952692356007684198398068630722848560338753867713325461362860600436063669810711730089515716713783920587079308938375870777711668156939356445490255180524999782681732761486269840110209559990431584866570575035498868637019541245614162858363400103356988931625090650900384142225804210269969877530468523975285240666795074907667840222713234101115334070964175494479715043566528750448300040023078310709188731935286961241615924485514239974433978830879719076006952839860604500646292078867749516225726765120478417947253789117328602158807951809201966068792098997009599598126336290054747921493437988579520464040628923479317322719757669542603758650493285109578612770884865876604106794411606862097267982636717897694656518248503791436562063175497170762590560744675339620505114860078269270822484244741509892078142343480224313555127836394747361028608184766340250921860300397598512779745227603977448013539430151824518571488413468112163563451734299508167937033041373703435596007169826841179000545090097585707062250752771972203184780604568888272991931710315513625337321153709214601447563118794838880866807322497689009366090713844125112709772213505710659551599096874047737744005025960457705573694202639036873348273149725335655789503928830997004296373218780197150898181531099314911476286514199953048647525546987643748134666434903047636463870081940453475890898073918643746742031392786440308389396611669107331606576271889366011418849039151436310200845144952430676476200015046141851763375718922237602963765002559838513406517935688410626187537164204569326015913909427550625138237272340314934661285976491929340801424920806645837373433615764755387665365103839832428442449318428240531402111758873255816537171185897552785916962323011358534986113200310279358684450143752728896056189752626572919649368354664909494482860131606296062181769902295664366790047250256680562266268352187987742488938624408840565555481997114238449769044146305251909095682564881159913709489256204762449486627409322701461061435425550864789633243314174173317675435182575306007912894748631228596096816555941378020430322355808463077620744860045193936729420434879347274712897890123633205751831248961702382922969438509265625690713968630410917431791454600077140581908018993451243792061859409846363446553699058295796407259101976085758012890307641527002755880639205074056694522948991758993384254465250977536073156550100707108797655054714779707942631231476252485705020055277912449987535340586502371827331926400829062101867858419345836605276909172002305479940451579221400508625304539464223659019124307814045283041966207196102632008941281272570505706758830083593046882939003744883436108846446336190498605930797351502206248823062527767516157952725710344491434344053441686917157539057293017845656406062743541616926456304429848781007264972073665176733178857296065896397852689111586322886679230007304356133191561286084114604948772758306969259608007454580276117971546669793690154317559888673956967854274811087999550593873390345717028686008672806210457846663693502975129161984031243624416743590967239846622837625537543117809925926808967246510516478771407163551599225695301715424992062562767898520240141675608736182792480847149865947600332188106796101722201797248035862484659449946979959472273950898629516215408862139905881887306247466288818260789670334615400047442474503954868660592871794352914166523710652637990629655056054209106279085363842345591949221155006154026922552065455225247120462793900099924091686426375152479172751957584581710838725552049571663655141097542242185839262198338560858788598507426093380379589970484479104175527278045107718257482690269025909790289522248530024348762104893837480169658428517391475474543586093377268787952550589119533767380348909269488606641720319244709128939184493704662168565110450347204060922856969342832453245486440940788913181422590222977326603049806457347521273514859067885216217820024924286482157550320401975240841806781026788675720686373849882016423352558349151895978952676161092598415971142376945165783608431965119057346084263349433738634869481954544466809049855245241632830213553102024331017898089107207724609857285718676816313045963469201973945898379948113028280700897585536139935216132338333071265295184971515677625855155870604992041883777341437601890920706061847951179398623772948327338741629907786121722758429476161180453783113828276443600296577706121688445472784492702430934253462317278357315290152276773359597068136844550840504601874278799468081252524414271272023339920618419498140842386780585115573213120714389610794441062750793964728820998640419240155436574423168996841759731503091441457466612250697954857045345556045305411693300156009229915076019778003451750968260072349598165667445509822862258400596562872908140362400137052913747089565966643351198778024798747389753516409424571639058808461624395999194401491143362393543327903231985567694446552084805901811926585117528098602763337375514474793986225899726044971719712581781872750291569474963435389692479504282519435269517748819891951806844881776372014478841947927495160102126514201106344060947395509709720510175055751306503723533258202969175859884996206673175504424702200835848740777857045846910861715171609844468537597924524473575332977299430604702398897556754207796875072169789490856776611557301991624046315143994902649619565750217105250370315375928913224742002737512489031672906077045707769265343421916742838933670351141077038806526118488662604517946531397118181787149322024789046154483766866314618909424179129478005134049887919121775427131683648792472706925235931800905266262249448805644148300536417564816150856607588905737541624001095154457050354594750843667254990258896913221057802995424593624598800216591637134217717848716417998083914809457207156412881309510282664851636371413720715513408117551336659997561844500031894840512621419036196873174464342885928719288903422620444846245853286843329140892803219099867676981024847143246659897593900309694325275457976134764266527991285217959056102022527283269343970351560963919503095973817457148280607042009486702142629105566486798835564110232429949162241966332445748099950769210765421625567602824567262978260015974849695310689675562223033398181118100411421264128611486061387308340997585930088670560417032531997848306290042957629142560982281823294934283697444197852839518064457681926809068618206343721157399481650690062363946061034795067632428710377694467880837677955858508503114033365205278847325145357425766680113314870553480026057292352463387798933453352723585575357212658539875725842391045042591590705485466217479654513688781137452184534533491722998735691148537836063722747651456211016423226213502131636891438017938294954767372732137296569053788412064743018282090157958798722010807747173381374111835603671014379411382490521337361804082025750762350550426396226677507876318102466000673854705374652768118045867359658963323133014198053943707704785772062476323837848482003318568870172278622090068138606498983332884499152386904955971429041169579804957788037031563674468979680085826169357924789453053473537912295811249578532056034864646836890286016720452299415488091087494444768541857491066249533995401897091299950882419694339372987290009854706234365363484534095761319135436109030862789971812062115536116099079924309253751218866167600667856395167395124414618683434819003081969853038752228586173034148256940727454688303313106115941096993250214289393256139857792642744371146269529388280357728127572901372515185075716502206339962901737250542101928886915212462946382570830785839616606841565327816866220369671951573817433356756749465380968391398726450812596570969571373332417877686564502015865828016479019357334690804378244764066628344344351044409606996844602759304161665006182904421312418278625027680746131069456409215302867473913434727062107341004901173465376558746388394875002283919343682785119443714367514747304917139721296914990697090196138925059106784545604370826382044333730449536748796286426431503694034669794221576773852645647488312950518377522931211205116395427681059773007758317351134304203326495346699306204727778030420419669516983308800454310146462476513809459985870629627101614372461062899458058943576264215067932437619295999878430313068782457541685859346751854848551351816858007554773529322258193613067821504470726753345660210006803806123965510403482582454959188318389385382326979366105689907588458690478455972714064295767069534006369624104304363072079937367094308339229827047155127628909546230089651020085917411571832712733111710295073423931291470754374512900895738212707723349054333343405031128532245286767477454512150220793689677776308462364888349287570501757682003903732725677522487628962319745811914102102746587440638695781013564650394044619222004030674188593660300105067484211324661144692091198401407249261361286753021101844991695869276980597429281383912899999403390540409726916383645059995599492979046327320146278838999785701453499326049970576089345021550306108166603879632385666703279134399500854768951584282658307402262397643658428245643682606531468442902796586389125343117099064887916283025581370209780526880880647568442391918664463578312158943622679934802809264844398658059937215836606360695458710758128228145397291044360922817732323644285705342683075996882170809784628111138641650958198903902393613828911626594164977534708864740346628594543880171589874196407789243617958104896941233513300350354728566983172863680472486459084849468136673817489042289014117579772353471107792773691118363501567617606985556384695587414284752229899976409227728239660194308519566880779267732815420149870186586545246344312434026336149459856217053052737276631924117730370809261717682524714384703084981991659621384425394669812123893083415465401565685768095684627453403571352915597418936681690246999161279244807535799989516632814055961614725756206829105173039574847608558405652905335565206405242163986861198432328617595003223929928090005041446121610051218891459426632509894196356721619134750434055891121333305078270638466949101368159894581225180697761144863169932656985261959308693650179286549245585200676317297169964757381200154896915533469556286646930097156097872263527398459244507983144965530875392804088163221045130542425236308127468971865900958564889874797929714320021706674757421382286289872448950510538083236322016456415610082407782135303174946848188640416245037607823084198524430706275570955659465487693418969236340855383184156442619122960411036807040775732067133025459817158387494491727389883692030445810382169296975386046036684485589284585937787430565430038601457522184684839917640319663711425192838691521177794343522645049738549737191504205948959274775808336567775897554110132025971373507332189934985916572587627522044602436848128264150012254917121852644214655479984908206362132444811615587419512991341545257097312776486223775173719232123050631992133894667389339243121012814604193338950531729520350947061871751672573334128500045594159413087699106393059440124305474570571167115394907998717484668121350748356729982666705530765435553775724038741707517276258397884818849785073563833213442221530599369225946143249547313153606810886539427155213488325749788834401685253735194371749767599400679778893138531963344434406222736623494953953488426244389178326890777024967493980452491346757930676536541835118400072012020691621297973123590695579743837843751324899111700310441495190699425172837348893761625544172340158283418344922815897674903478543100065340476778273925018281110441830906616079942479335941457279942651328184001415631300156128740253251447287126359235512864706818059378065055704057243003953064168980946973722062443936500400863571169468043123221869475705029382322694275115272914596647927157274864278059083500075479797550498469379804369824674674455086168983602646726310843226423831385859278153123475257853767126230411416594852298931567612687594565333850523776606573632121057411957330058684655548672718786934969327854044822738481251173516929197338036475168512599740671884676370969023167643704172050676138744230789530186841843605478138660314668295633709435690370066565149174945246238235025857918790447484192394647475837306951242926733431499112109360307116581276824880526727125377896136168842006944271051039167716330647440615347300961868789500219819453367807998004923622787955649439667591688382366559837639350438461394455118546969886278569862176363083379483111668801117602032573080098269600872608289148601674358576843069274463484176200682370656863921427787638856295432266423083367943368856860820043206264394267304589762479703856425568587700640578903582349741239606467971536838967238409207518729768296091600036769914233862403907143085753912503504963583256196666119555232834678338641891289799237312430322609695149491153789820405984273454713010499572198359662954438888458854120536147129187055947374090808172720061132068623879109605078591368792626875935071815679761668926662954968459332426403738449357853598042689601203641836062106054911012953187533651229349343369929906663774531978976580117655291189796369828364792456319876301959018614625545524445078253743953287540393031456615762319231840027574347774446106862368024207760456387686407592374285815517749914138404069421044399607357163523096885289239271952892926370236396276620461608671171093171161403708589561869150781026958197719262071439657162563294042956879597590731374734354123940978407283167393556753724269002312916469232386244886987539661484886167556404764521837506953901565477983134801130363847172720653364995987074147119075240171615692004827168664929388337640119755546255600208243513739411046099755267781241316458099675365529214500392239246347484301711027990932737186123311039445313463868298487710188155785460874025455225006586906488352669959130351213101066957792406931113026301545196519393179174916476932554606949373655006584171335909988466098001662364720149854151520913720956938939318404174260418534135102421813770528438187987808450312639864559743047225446462467644405810686595715646672469904535554316743852760292061720925919727232037109241733993352640540092268719519392825632563731014295986479731509109862695054183242295209373537713671276753554150970055272921709201860004743951647366609292307296157362620934063471949366158946903419455363944934737675158618574540889400637513830705564964096002946880674032371840318191885937909695937208209211941483942914918101161082719959398038477749830918101353013574060179742941541332625498946834685867099351606142742244371607797402357472581122206568690987627976335025450690291077591073972605170623928251290961341972182649139384298373539037542512831425761468579942390394435848073755801626543249709747797513175791224678619381353695903438878585953364165973520657380755001724677352540547962662668814165907469559689012341509605363951215405569881619490427407769215016498069162954367836775781210526109276437701264248405900412633793517703398037102089481309792312037759014768646618080041210560100112977319037563041935594902392232770218078778812801935337205903699163446916285387472787833043462284925207026197553426969916261444462403534697719900916180009912220130065598902879553907561241956688486942348327270378280307992062287723072312495940797969554662022400645142092661875211790679785144278315205089285157864791262207229950928092456846546147213224195805369472910878310686269196329667625414918361660153073110866864003198791692468891046097539544812816292926931951597730589201844855604209751193888144025857506255263758864260748239419437817178355634370410040453821444477776879443554804057350372709590505705157521693121187471815812819700322641881182767704017186495434358039610980744733571184242878433770601577502635499734598849858736082065312726550133729063165100621490788829144940473109928144122219429017344687069787898688450225088245835603664626319526716537151428255923226652362970429797493301590823040981709381475512405814858414256041958176404890865489491766430190765646459650390404076628341157019902157572195875937233850170220526338399147706051333429274431832545955536732893595623500142563894207348539183893127762919698106242430430545539884694592004494656718065354029589202039400826024071677494306435654499271475412426081436870063010627531076556859761344873561279386401178020009648483349817839590489699211126851607956058476796083760890985487158879311917994467053066895579283868943085892130765164454638939348596139991220489237463344111984601403149845058752393149926303431520684368890773709112757578973458968075222235735821403724217574743111754453133424920180365835654225335699229564477582889826519570835746070126126381401225651079396670334538703597200830753091268822906201910474705157123955001347601163648855769550472033503186557412510320958541966468493217125498049505801584834154543332920033951405736861274613586867721227193481373973345826728422344015184661266600840405577676317458556740544802223646886969249987457353445842724220196876481818223145668756431757604882465728874736606360814832966130913956363439951240781278904437331288882012418018433433494232647738980821840211566143385392138409276866747798626509447252838120659068748855277936102937040294839465246291500351687390565132888256638233316535572369643353170828165050976423920230398947997307531722051507239745922051141932394362828669142720302454643085033479897281489038406928150528597640862103281221864901684067914186892412953340055230409739960391614300179985414243668840633018949698542349074562618052303773754130714548053874374825661950141882331154402001658798703561096834584751806702875990566110089046602570554572990499336426008688396361318831883350319345519314200195739435231009582943289306828527406799402678916939656865381808893901685925348048679422095278462084598213962042081024277580114136250748299064053928052282135630871312085603423676679198312003210501525754233269864239575060752223766861612774746891965362947154308452052530418970379307036720451043982665263781070199889919089560399009228541675573895653018835387874150527235831615420316986859556395685397508461442583803690380656475848553840599697671889507459440581534837729780215412860250994968565771146625127720661190186883846723999912781216066712874947552980407582864480267710995221227491767740217689798712716373832907944932986879322970974629031471475305364576402877258175393533072268479875272326071549346546136914847227154649024699816064227161471313260264994720695445043468182731920340487867138172124789798294279790693953243062361695550654726885351207611132076237794401264384484311358968004315987447754152651604879820435904703465290643616600719501496991845514079679273341539598212623017256246315519367151304426223858532675443136596837848175558519074124641143950139794218315824796708400870812111115693393417091945659694635377552544790021232292690857165358031088700817493919544782681114697396248097478586975859820525463046238741635830099411317768889387765878688611451158745055537056552534820710395844511879585908598314274341013299470724435156332674174119601231397897587586383938464345620624353017122964252698686483042268584496058800400422073271602835089576956631804408750821978528297036247981699560402842161175396406356243863853884450658555418493867490054807949217216833739996128466356487509469572475976422643418890887203263337471908417827227072838837661746682092159221646755795407136299634887616037232145154406563808639167841615247632438683348283566515978113325165755001232791694446413947680321579007426112026292579617178982414784157882789525737258611259895013811351173620306223961189365456285161791891827556950300296041075646255475220776646653766533075706006698518288623350021942917111952432763930072346998582590544198659332637282472415768273638424881799960682510772238643935451192903848367430328699656136598579059593003986211809515202706484776690294867072220610226425395408488540180215582921956125597574750807314543406050500279546416354762438154815327049133484133728541647125180480828979179504970635953522101636377678149748008976428181932844039818772096472204456315484712705175121862663909378511356884952226828899161041321151371992303738431099552231992927793463459410498687094943282283836126979081475573891255862642301592419990861107307440489524779400903632253896515025395346987587790459129206589351635535336410770571463648506971693241417525919648501315008106290072773109360021524817538459119633222719754891572434380485817203594375014287333415914141644133745625905497435831607097520634060789164461623840070199253599062036256299512324945098507611065916259042882318905609807822599332655991646951940586914387230115171836740886460258255427214699470610209890203852411136203993014065295707671881692929520004802511824601742725854905457098924611691753664454442229557216673409945244103768309214074637930024139137889359148206205575371035610881319159465203965297663389104994129382895939642315832667239232292033714756200976596295201097700638637926483174002122028555620850784852006881001463162809854929417078078378066851770175139458593760566058395761047126776663728333069309292221960896994769588682678427777336036815763178884922165692694939005655726324288737776058016954749405967533294697973448163565187795476105165881347741636260677454270614764426334603428344370298954915631096769247298362508301680591160040245046869807588969054830442784874891996131848376770831805683951740003728961437452299912410799494330000885742143049835366440653903813814245203921902180796267730618678896961562835068386140060090019769536266313852029956532729084347094498780074762428187765574267370307687211694537126667619431381572063015925761605152407928832151905513635453166597150772418702243637092603473297148200354906708113218258256714880057617871618228730682132679445066260705837559411234262475752880654131027641486069981968742296119983610539365894555101923750583850685572278594413238066691434166416712232022950906012109394853041893892150850111430331386873575349350102167596527245588724375591567780043919877817776230787009018738707469540092868525665131294858260689084263868100552748898913294212910461492441714839182300637461518491570121198365457673194292143475244510206244707048788398640298848687858091724290034836874049539601881460909297390084062476139217741946485791700720773702295243425583139091607718328709494372243175544197477902895159977564413711358137322574531339056751833286416586748008254531558597596797230267778529202757103737015701685750938427025935752989646628079566812794964706965724054928618483923427527271046840468279288611910746445009198859087243784884350806900422886226235502812349366614856948184219234586452879995106965132935504273686223083947936343394807861819644317499477047181715031991041319232043022074971983831023477401546304867698865379865716730108098725909397402669617896151678287375733640103897645092563930955279097686406025914338919624144606943530629180454344609147612349571116639533116317858074656421773777102430271369564309073667032346150640367300249279322095228010436370171736304005660392893403930653652131181944717142776758908703181571458501676577446017883928758622248246320799720105793621002939142901792225182863831724044699931871303891601696053553619926440803831821567100521975320523691334951518117271250159155608966086053909150730972361211196303605027230831474709667480748956358429628030733398084951724447750361204957060469144053567792641546683101510550760840305922523330956541966078114873857219855898576899727973148386313042933950748925561399845511188168752532154580482356147445745525088057646861227323328682924710894887703516540331690883137545849929410700173690871269418129229668733652044695820031142810492138661036924586061888361860582287391153062848157545735901938137958063465912078409639989909347038890172224307214301689016091407402970371377999944410748553389308480373113331718694638519968933981114033698758954339106740057707597922820276784001970774168555713344816870705792334038125828884396010440105058274724187632270606760868236544822377243750128531306417286081027398872276970646624477839668444658375664759944063053216650973993473158524250000823935082895711795264718632034604413403117501180028837570205839322812939396789352144864964049446547619913031416928342017844119000980182724345314817528297585244442012934486947146015073946043547134492130112501421303393677830279574593812980008376820381592020518721616453100432557500334788397494000986517409554281801697320977840761440761851085946863344742602029952774673243712038096576713268669429717305045738414385710274739514708682406079304745713491552083682304242529262008732067860836332367120795119518244889421136771874813836849479429987011453567204690023835715219377082451071734154646967154227529256887910111659527205637637509762738137361842214558675183936214454046485557610447602561936480752560503664314452822462038071598590411164076992784452373787589985172237991578448363965115549202896851728045622629100436404208999348251314560852436728641861156350586799021847335192990543496598605466036909441354324171035001339439652145300870208792105094044419617198747648065875819807495740682842222340484686684209932739656474653517455362831197057557265260540466474038837161629055212318812518015327129169780684607209663168771817707784032514568675816405734545303727170839048421787514115141657119282636384033429702673740318979923527789231894767053737668587911404599831185424027438391792233368554239418491208877032163063664637684975568660978884083994482959570350062698334041129303213017930643318353314408229715888777230307234860883965866358604662638045577254423991373940897248509966041487008872150260452114197177577582352542677576789075094934097297391195539069417741188108540673947747972813838090123210164658051805197232270423232090957454017494979771634008074377185859195227487689228895400424384554096232125342392071060091300156906444626296577164298230124668572414032596297619441316674645076977000987007653421290721623759571511572535919117979800426198257731002310311586596553321728492497900853937267851299316859692811377934417857765157628181873499606906973266285534707928294280739468959485056713106094688053597716503488468258398494147525272287791726794848313173097272795523093263930958091805421268165235031996311599076306584280443869348303018576287317413409131280446375160943917498461754310014027459734698801985725069926610958299304901921829894879480472890161533602325676109521070151962852152673521983185736501469671444422208391770766403634793099934921106704028074439250174750693682217821243797085395922039155333644657975834677779561889843710830371705996669907974667040889448862844002180096304762533382195838028686017278069205909992027277567503497596972353476334905114067663672671699655131627297979272148479157054064883490198728264068076050508366438346771245504120268653112536761230043796122763225304062978353909290087110964029625891078085183317845346548871430243320153353596776588320167454507707369833799049249798324067469062963698112193053246533927562807636545254218848453363866564093024228748285079354175138111978054239312325924528287711773352058256842915466052715845698655484314756026805152439355473347386770552305213723117842202060327999811472954824268984706741355433753870887400897785160605623075503579471413391542118894439800524735283206413924987145463851195618637324489204719897962510995259963745707856348698095488922315455650788138028911371566885614421626134874062276234660493406148007731842698220844022303381072814399436991745031180939929288537421785812414867575776539577979197168647052685620669405758561955985674696120159088106168987749626502771119309148796711836931492997833139847933589601989522700110315236033494063914130753830678192471963301515043582995409642607878386278832300676188557546053864787144207670769787816595153070632315318613022417535659335042599183145993467053457280442836720862507099651152335585190725209801319872641701549332150723642563762325665052883956277362786617027044052746183524712685257930628784933732561861784922352474497328696779670254958855589620938509082561723156297055165636698182389120919094249164518304465655900392383766602878420275347396015771485337915866311929683033889981536859422435393886958683141982860283591146638067157928241330975737854525031192477728872175085239431814212088530468477139770549060222308711673910937986748920035336037956370736769592274855021116385401743018636182946706216344400383672015992213748020745683177691008737326769224552012243557097242064124959695567090214350029113759725145439895759462360014869770343580372098456452334092800458374507226161292772330658190580983182475807473209718985309168963774163267868819284258745562476333567030718298037519930636683905264299988620375433648624277353050000012187033053052528544518505263432832820932972193468310715703997181889717406306854954032522921653362773896691239006219504098832478020933064719044257312754702199111358428572732862833921935306851384579584883795654512039878560204628443002087082010523920777292672779799867864537425373993812724783355697095084451998618605721086576632425312861176946959012937010539885169481080776033911523644377956138267699997386119184577973035305124485601302009916169090513789113410292927031611110545307615196094232582036291347641614717440131427731103602511618099329367675037725601719154890378456471556367772806938400491725832205248652734244084377764630024307472278278575527857672276577087735858883134757543201322278690614809814636069198198560682670238396830209810374055069602253964679745424069827138073505199517150986324060289563541255674245657130146323525297615222708035523806134084064382114751861404795587364110823163133095245663257085474444855330299653608841652990184223488230763374986049711932147381772911497359657830370009968625065273657400706367528659112505942910806443628072458640928142254901207398191190727746372855996614052281618184573911518949925009036281941873236813075050965133640201606435855792332279655727280168518331407839563576645200734629315527898624132531107533002619765204994491345660065101731493060177791585470279781254158078813880578636571772871658881145159907071567848573844094548890953700129051482301667092348023903223216584173361336737785484196323805541903348859603811200535158092031393914107651154792795663029117802222557489263222134790128810498095102579790182248382201294985845383828844258910038982828421010648036259406973656147563325268625938744358860516835787827720571796808973224739212079332676080582691727220463127061764927418296758470280711516887149705099260334556740159144059001119852533098720256529999267822080388324925353736426629414013221405745565177815662627551058557410671041787569052854892494914233374111661672145363854573733651512291086381754360703431910563078976500152712862684661192113335305791917121977063125654839351546037507210632792909609685999551055998509529346659290356766919904208769386913281585704749061210920809611131322222815150973406455505413735834544257729513279372241555981132398023244539257944411861175526345276428021566774710434400582480449762730427906424510401602178516417993442719095453683378221259444992935965386955035572095343586422106008771995874266698368738511054564196871831717063277235030294001878344434877869778994141037711247020558320538741353265214625319975429837607320314416308801538387052330458391320816488696055725948253238035901841994078915026257509939655257456563845336259530887858165534961180377292822537070066640026939313215809977485974160268259878985029718876372473084627963275639346020437103458768918972927036535831920700370936831525043238603111655357054217789635120762075616372993907740406788153212210679922163891156687755972366784028385541161796401705403905681560321371816171774448147078719605900890538039562560201061037404009585291997431729309015702390645212701241266426825966991904863873967315275748237663093399557763929216617955540516142405863261288449453374886319093755914635025428659521482190134968545860741553328746278806904354904578010438034916010126449254643363105025220476623974352056932706368639530244018060814786290757601966248559674035234038216309970914992007089179629201584982668903120482181153592562039311873190658261686218252344854787064135080124589114424934462906955884275902249096310542875602211379308561674305746665066498362837470172084460216300019842231294487833403343720651157533108243414707632763395149938317656444614202520110700307650157260544844606594713161875150016224568569833417530546233080205655880394232332966988994379002864321238275393795898267189807500825326219458672980745648841746048279025888460936490358058657850907242608116768890601206336031308512506758451822084686644769131969391344170193113356502824814941018301691128293466824261813954562054905016578268572597841954048415846270214757357825281448255859395297855510016168546345222101457686867558438631834950568729452967169502956733982825339579001431442527784252509402617928099155805042662795162128116357137550503490255132848118930029491251060531301892863129086450276411041775074597605885071638656362927396986137918670627286362705333179811335585531718613624782751364651759988121546714137814145332104017847569625705750716950117270143817576022939205572961976067682021037125611990693365081717665050004327716339348971418483885081627423081640026209378380876043305212275347872036213844447557740083904084500197905939668128878742208106703689403318764294267067667702981677697693153371320970549794005030125515956398949717455456439302085223284663741148640377325123100599419808673762991747944474693419642963580911812191293963704570940619694249963983804403532458089150087735347624189245885890121474273726346792906507679762052923762661937613463100500308072103679611929543767202660613323731690051530983495502708668342799294080628766060716347079376984260946060184499214081095955500022335326122673106134685571110892128294243613289783502699832220493282124601994516476135463155171100351858712712051289049635510397125005351695777983625094258421653336928878000349010843016971525831493460220208766849461550189653268026066277433341524060179490395930847929097391866852380447550866311278756239565028808882410773032417735550638275608010231252581233443373842483468509373512757486863531277595666268325599156597025596923048023261745989108597560925285339131326576973682831958266098870350747684118677497804638991486373872983685476587525342924843609330973397721547807483939656993543831291175108282843232552058718136001023942653219177682234053957653905253932016661762844895225818522291600533739010968193285384023088062144683100357417646161331599439192452974405337896027819069449400838423055730867975000886456430741622274919296001330654538408681962123390014252052180369145357195012600092884017120760135088899455722116252144165160098057448841471452638997729297686827043239591211418790287030875852849648625228419892135226039108939959163881047175996365536300660707954731624386539885495265708557194394958434060015015126606045216903420631620953951086385105414984357962673300268415617298190896712249737415144363402836835559921280639011066141152997163792999705484954797585010062933346342352772325682904792711545324910415555777473730281105495470650327215995249009132453181141836656466241748689307727705213334918378531130901178183552987072106971828175063796146504511528380014917912664054345979496739229079177236937125509642545333145661516502714070405589899606730296306860193656437819476990373998588366863586054359284696374415306682650551955274383185862262252650690524213904904898160120953717798175203902328379692202673051568512858728873354257278048771800050120550403349538198937967729796749458257550410375739555890065707694417546484133320930280607371967812008072358739695800598352850921745677102936131867015723045842474373224575509234178849904224643342207260206515424841382779163257829666350503635720522254698208351509972565489033547164379993005351535995610525296087739884668087013244936641624915063410499657434383081159891148014087496101952702493784855117896001959276690833329832097738838736738147288104470223962595982306230648671400688456578532221488094440506519882262747014088634723920095121327042854439248125813919830865667847004677014877522299570183726104242560098467459081730473630546508016464207516617963173969856582167423561842031114900871228657493472824748279450473889273084367070105211877831616183570666052738245006931014336500236591773110656196396362512482679351297667550493524576516238954449636164020068069965839932209362347953631197495154522572850057684443881488455097206078264202172767399984992484866865225035073817994014155865471287522051260744099285150830007536101126014679897399977919430275446383060336485407793143712764106161968482079195409709330354966605644606537452679146797086687074685584193041767868978828970066706383326981785752066971797291273593616376725211769654288540051615642747428441860758264280070671237823485255056142773370309377634823632744476207981064985867631857131827861976370595931635998723121592727528488688821711051014326075638588159124472198614224140686051577448544048394732742789757717514131953705730209467122678335128681508305415675562051067890675548983243255877530655589231399004133876208500345987619804259263382179210746970614789701655972939036718052250749039736620019208723187682493162778468614741019507532622404910636826006971464737521198758414112174617371927573791225869853871588786662223781324517160404870395937526426974660632237613025509033714903580231509078867601157731996778880276679495050176950515462153168936348412448742692842126723929473564029744249816968840028402678262713171105696267369404515292463619546122361124015921817872977176287071503004593307649701271364863346037556895290794240491639350229385201189078451920353418103603854125978039009797419783649136446187229988711035649154217096581965549872397238975568873435703209806431740860406835742505799491109653318447345674645302748004262363359269952264410690758591848007103105173203548479904079055303492362937816169498280338337203070187728214073199112058552272802696848459161819913131292202564445201154991577813864313438660394741609097673785492232500137315075546185645890269975382092492164931556706311683731531921466048482488077397074996300265078460955391829027163893376954222554718446699927155091602747442237473519494469539202213204139918249601106517101106200556774443974711445679544404543769719493698022341927883813448477600015659043291254702112607620996690330776569005523821603560884721933543218923283165547537840458903102884177305381077984653664970464467409265882596405784440720996664627901870846401381682038000837741264334907483768134500528028640055126423969840298918860155917160098824969642405662173069073054243383839569575203355573061270509200807042296416444456778852382295577170851452370171193124078417418237089280528980235777890544647951165867876777438254997723419243473520789222897997656819157616672401441950450254383840367151430778167530988481145791597444725859559928365351258764500144840681537820863068282812295404107845271399362279437585849913437073294511792482109625962706515299718830529852840949279417500723108055393243154411169889378755225364009132437283973675938281694801238179106088334672576137078627533285615013533196975542993515355782312616643427709415384097964684480888414098675751171116939728439455884278926660792988849256998029402680813272408619053749961983665651992596960774434862638967280190678571761705149771682209782022834280801545047828640552360767110388428591760892954405333470488070814629058549439991483141321371654394447127156866384039292053931464123718167361201576152030578884780809129127244505386371999088067965732644975885071719051036917378646468751843404613754671989116879323683113931924882553686767107659242510105016125792620822236256158737547235004801093684153809494207017540072400081238501888113270027255234431439917978981795213086248057505187732756867715748916473352112233451853584919488867718951955452122559876055379734575584928509264374958494174206703669125930563082465965408684180412410499201902668353673149123152188911667832970666960310534664580400786897885746350982595252742860397616061126026136746874592848139451656028333187919823705968390300741936619633881085626401598423480987636834425795618426245639043537067674338400097244639953140046884380848590522925414748928869475667762454831208654045196040609347064099477573702706708554532574737476340191461105538559791862395305891909894871467858694930445958579721864534576069811801228771536616473210255374878384257381746998226984802790865922611086439357257935133705238582581517174361231061148462595623347941129677061720447709079575590197669946148788533903284129658527278364137707245614578159035246810235487029134833290400420884824464264556896620211043890952259369761504809715976948966376524892962011549071392967848363264820922929967881228938712218376486910957454135025063073009825237760426638732179747919684128613367570502240689053962044662364054319486571140272383913674742709452800921844342000999023269554259347208151203152124072089268730786309612723344619734623066752247291806249919675922145284460205512416003350885933133459613396877768445496283232393865519786277989039312564350087687679216552598688108509104346287900833079666213311090773506614960669703438546257441995743746046012129069071999590582195765755390902180792159539506396795161227615744825909771373584964716963353720199489407232999843472377084872311417275699532349825485596205550498966330807882543507204938949993487805788425995850663524993265936361975415199771155472821152205773960785388766516424709977666815594037931210162991917976427328063055222535824058658798005722448824790147542031428737420161531064187836386817392979892068974142241633741378373684243202551833855748519654553061309735770099655377784330961746349172937243384235731874113240971615454644544521796941349261370085063418259497058601796778296626428210667995495321919789877826406935737747913024681703035407255726515119450575314109419891101063604598374086348252649334299525636520372425265846428097138567244634014692497248182643128199419180498286868802372360922116635663403502687330016164983322192977903981464944925278722949076316227698043056269191630889580611940163414558224132875224026536115737917860998367042487866406249964587625869810773079404557291757564151943697382339549408036653915249399234505025814671867570574962656664556785828187926684295257529823746472448347462669548249991482540902025861786869536096892543876685507043241275883132359641287809139048525391357180043947503127522991963725498182906792150086780278906617561482489227423246354885046966599984411798248957066017532997947391520335511497269761412088584266019748048160572074354894803758656327556517779465716938043068115448255156919419022880518536072664299408089297566573962375826732025983736793719900705817423611894015732257701934230032267575836781803394359220887449796009122086281131168639069456468172454894518200942169303466001788791994908148839807510298030144127365380830629768998342649489879367414015574530791327496600919365103138996514558210419092375870465991449521114928764396812231350823912643660101977810602903037016414890900048399824077854205381308480452321437828853612272192322635804003089143753436272108590988044223546384899931321813537132588561078590346116808247425081524488756285012881619910105136613816234066587922221909958820810486844002593392540108676653200414521049079288637766782130922343963040859480880037886382363753387875237377847875557841671723189841114571711872946978547875811958953945361114727755581717586453852912742117369802224491462018515447152281305171007578745705685581313002244707238492214379330217772428212351998268031569733694190443158902959100173863909299950196542949595854218726271988894746452628536833651302299789213333031015470487528259187791166033642117306653992227333744563387024729477805113700040006513348100429441667058486990292338582140070118895505676118933536387193848536273661140053635400553309469592178829613173672504730339960356445613439322173177405504994493856278660212901838693108189399890223108723846850752184003817926156173764643307574556775217093116989661405874277902243524601626524810719336960733231271403370418217331203205571185723992737436290666314843923716750124122715103774657842168954633501882569796310636315806968122160379510717795171763116287339050838058675835087004423240208025526297564715689308451782904629969443432090442416196477406483152621615388482183252367377870241728076223174138291631863899384893648040480375831380623597297869450437983862773258715661400860211969293173828316057359278380524302535242042511812599790039811141991916973615629496876137220609649902541108224899671591466434617512546880896959183486961455792989990961272195568843492431545198749310200439409870854979869605692305484244940788156503576622628113212740428583345944662557485703621160290397471939619533690369078316568985237953947664615495774704335399353508904852224909959260326364701630608169283413536562671546841545387550196293163505490385866882955173029327864488894522828731508531020545333884817426257879151240926970577344916261355931655878756782211872658845085243681439267457681980643833085813072949947687338049378643080773153632025604481808319215079792661901571226484421758734844862916847006743673736721237997640430539453846649578240418902358443881544162729709433665884247126521265546613868336367518459053406741321587316421443772366445818726772996896590170785788051876818080033499084804706928096071834762126271123734516714896343792460649821808837052166225487537600194514035430732467341192378507884051538899904640211788723908694677598334675525802421395953102690737855774492634114474307735338005551696693525126092364811676820764621867236733918241560973650866599710904462939197847101067752616972345516484494005384392330706548528920542182534548605708928858552823992572047222872376805751082927460570677845971581784915301370285041733861748235088938804210686392535283015264791167986897981691453708480939618872262268189011763838014612046745585143351166682713345522784448367529012248161849171908533811230143290496204475197445259197630433901213098924694624473358663673995827638280380910916358908405199822374748973820458981689887848794089680450839366406807058667807458373216722589002630963633945059648348501345419047077505016969333372111622108688057006841468789605807898924275230483347533603841968140141019575442517127188138682147488268725182339120741736038061128229011547704859970214115255534758480895966924104552300217159992143521272441283284624088298079873742729642208542749468910897090978778988482250588091030769346333830194592438404157271860473370446441253247834229354084009616758919014268001470669484467019823565791702070943910467255682305809644192763781519758258547487668860178964798309237654187520762788039628277591144625597383454470767001444722795623393219849004804941584636694931778796293127140975013598808085710313328427479194584770000115723016917997270712054915325405976111545519430550813584902294274948622884163579231048211812998902346163299383133167919225017817302388508524344058384808078952150759915889323713177665479895675991882659780416259013048873480391350590336904815144979284948721408350007398169340539214649620002563422535013729004186092845254746839437374351032527969735335596167379080781677832408720873181903641925024194029164903810928593308522637293067467820395067667879282541200820841572315021628941456461925703411166262038248983063415673072287598003138108368817515525147300601757635088987897996946661623819900562577325247215401860326393935308331265448178647038477107143146559116173004496926863831459214600434723269573218910000213607486271033960899482899975909503362490751771180900712515300785934206694282545122817951415344978810639977593669043143867307430316049571799355885148172466496868808250431054638250416981889413536917381582115933112576271471251144090359358359593621801493909859263992941441981002972169896152739942361511009319711473115270909454729674118765297807350105295309482311076387477794431388135898180715923749001083888130858369283048358719918718398567498788459986469873474102934573110475185216125370624994780523662143539968391941656852008381914409002586740365075305566762546032975081739433751148194242457857951193424295679979576364403475110931626534429412013697218978953721664688483401572774164975965098181344987033324823863234019322530386437860263701413776855640698516249780317649624966042673682977977520181762706998034898897109138791070122357173390802395755229610850842250358983494724691893887546642647035287648524151585492897385034198600290172788300834177453545980271610635940883729313818614305641021329206556436606040632335441652799255479043097111785929643821719373772056511132132548687141941827878849634830414069271512463742368569215478547813329591937299994507310432211705699701523575103486272077192106420839159546425635379460755282816373529473240247725075879536167766847919839541465939951050228310884563651784662843089297704553454614123637201121949465549169446595584782495715113952289165236224963860039064351699862856977675761336419410099507361251831675037047029966789977103704642005698524465618245353500835683608907550531684081153826910278628399076738965453432659404341367410935726006269458605073567400821808977138900120036020644320011675012549060520707108303688263248576048687153726668608914282370377003568942144846721622454003026205832528987990835555209808675669052440393932860153379555691704169721094106720027661102134037223577429893461776132690943771939898595649682761631372794866655349468411160698177487078713621306950566280082088222443822561541078886898314473422288660122214105569308106032483962870154140945522428193481797722313649210479397019277376412627825741932010207368642544267320786611630744893625050136057731128714009224455379672689313433882181550216119218278505267363880955121297367225519857510362205519030418739611281888738340607045486500215909604134929262697814762591988772815128494652432972190535820988591769381132091658990963367099248197874032708574306888650758850782652740496678398232375617100446137256165482644057275252263025630124409641010560222607459198846076640431917619880852407531169738684849592640560385540401876943662595663226377850303189175340949036235173302997246767519090386251987700898365776876689925420076483403863833272575647330161586258513941171316546826289164694529911523577830318424006982472902206315072242621669840064300154973761472373326453323266508492175649282314309013198691485313555534084067816289402498824388526639878449680703334775220636540701088612881920894130802028780271131848700660178509708052083605683391248746492044692019475862860859976332049331232702439060488457271210818466642001015088727220592936871515468835108792340566129736243648248580971073744134102586436942130496137981010489311982878742643623967974596156030049954363422611145768497594015947634522627523728249214761581329437576109842855116990352196777240690790592896699109999729704347785958264878084637668044911779771168387949693775130087788428504461875538232095962726569612591389312921676074887069249957646873108856458031805858217775103758453726346483711226903023021068201521313787848048424082719373290421726441270504807744722652467180005551489423516212054812386596334632216746361147688438306086975740771000489529059985132958130109322488186450290220452927041626138665228825602878877363459090296105716340376364217111085614161908417806702308915377326857963796212950740305906557431429179456304672562074435201991020270475197205616494593939562913958675076507067802056232799858888740699505345375250959025975771534542533158307992823538734352335462053909200658066936764759615608553388182963854471944955073256041632119107765704904654495681641104353662073805253098477145674758840322278755483958470599554723140771343792596229723786141640146127544075938577390044113627531123367416292611914529210130269414701456634297192948397586102098645832968716939503003248714984214901810454572380845583902926862557433015476252612874124702914123334857059462305888702611348546634201687489598588756600328334735435733269015608372867236211960355721712908239223700250075864464240757138170638901707575672002842503301088821950416549175364596784737365080319890117979902429159875659210682369875518383986386205152828528562378551731653092516654311545059304186960428715199632507123112065120527608564676832528230009512814802125953110385783334904361150353077326025270304538233190336294245112223726868560886129099583570439186042423373877041038754117274962706545132791944121327733223452550115812483060217306426111039490233299848209551747931739745125511073674712968962989914070675849060491471526021294190938871032355272971105648422661004538734908032263627595588937247304594244007868438972490365123648416519951251837476062901589934026858211261409485392554063736773189249246456536555509219348507851986921325148683940816654364136745658048069691246147458067876598102718138926755360601466834855214272226402410613764824933855656030547794275401978870285408903843211812786952051007814629455746572675002474714917778718194570939916016647150819493107345751606296892031125298034475766130797291213053696139122207290146129351813725989563846676793989692959152103934649467709829406625358591094337262623838339676969202843403248597298241340008082374872627519201981541920754498908372567390026796395159451034955418451873990099524378133000719966829933866883771744940139854708834793185799863460173079440889022209071732407969785422380500634761662797524650362270579498576331322722088510782243139461574102165676895837406539051899969019918436638917880012516960112678371538133888474382367981776257411789375825372205335804618791183061045075447198522330729699972880373483154116577887856371990466831509291099473223780607383777262928550340140823473158515009864349546104562608106015355015318786631988292751778709428099463928283166260093818011302624077270767370180385054999162283006786889766452690002941472991082057364802466416664071458787630075370003326690993423401904875389761547381094167022245308632973940568768336595571913455514770083887703394130590665293257542301918492548813701241826614182316979726058934458702725404634468398150243526331854793576873256761430403901934937101075467429732274960065952783236956018111448252546713413672811111658028145976289089797726920116450495676714583039962841723467455340321916967379968122285346916086771270744324162774643842305047502003093711729220046062678813506916429510091596220750103501444271902542306301756613431797105798757507069478028263719893657332384709377453669234865548419017274507036110814305057063391109191983994158766884900012623654854657172958848865188217594362972771195985158078546523596758795863974705470296208206910508954626902275295258606994755495671237669135891305438517232688920506850462405425063491094257109583264170054262855766583753238890286044997931881381140296915378452531066686779367960891741682315203807224899479419895573230208756883010675730589467166198734079151065547518587862426299245887183753767346792655114426265256295018134415938941433356246374613255057849406812336919099561768619607368144693322404965024263183314597508740487765257534750022697385948310584401079321482542250736973953772721061873601829039443040938336394279784926237546366548752807394362192329194787075415375094585824354499406522413671187918523100632934971965557448757458413506808570864129569095681010540700435688951703250214170104438179184943754367629562711595042767535846134796257515714707102496078546895843828424812520434266634235623215644531371140623927253617055620124992018049855655776114595387341154691329994914538707390010201376766967382456362367298413447091448805883082414899562409326255092537087400644285377544285758874091965706666406338862274792132859676867127066404898462711057054136230483450503273945396154244321482466741253770177345751128814692827468584278277915905989980032972944666541682105263883322664534080209184114083303358900431045619384462030150103436615376984308612481351116609768108149139477946056629318332917463029986708181324709313232536263776187237808547310786611017228085307890064396127283685437555999923500859823029233523200127554253571882376513137399627999137897532759432790106183458351987026931039373706083072215308942850560593035089785659829409580821355355835124895417699564901637346972241064788365380238499435553744559767510810846729202735137544325888117735437187196242662146709725562687475725329725506260762603500986894252737377646655957567875355837360127149982194971051385716828107533545543569418527719959938122794932284695686229657921607080551766733807470962318399010871133529760435000544476591533144284869427014354814733042818923741935645740194809811166084715948847517312153210840321757545347650278372591553087051502069742500802542948545214533515194873231564520564873706304297810414419185288573764169796130978020982065253671119877465426664209538671010054196840660160302158765643973393810074266094194294584324718139052540899482032125597412437944126045387783338117016425414693489523706271196878229762996914460698685748188699671941448099907218361581639892099456700139354600265828239320885410235594647050104209195527546221211891791586988851611222101355873878977514891901610068187626426555228387629270071710977528027570596019159159167161344954651365983703372512604100982207814934505719786208151811669296789861991571038403355907111782974127565385033489678519327621050832694440036398202279277670685741040972429436861660846166347136317897077665377915323114048368459481085359852512300101228975843409870259425238358237278020082273053941300564961307446449869818260447206968596325758868916824679086691055303614784972747183983777719268446198371755776934099428185844094591287686372313122991865153940516903972343342717030436615536010699752542446694129217269798709215055336503001962352757612783502287834094675114970678618233740435637017035031802729551195763675529526772037513664418051735288963855769828621245651580392937512420554955610296063826903780027105964183633665381047533497892418978627777842601712165545241289622963637369557457105461489623758608782232422900323591797700503340597373669012769444000321193520521045017358029010215926502343416444216293094538625296596602382349119178471027408818638221512835009118336801391048081892068032729100848540791769779713712854625369944315360986767791393222227226614154232399741395203739338971740187340345173323051595494415439268594383908614508819085341958866328487231183740766263034183384433383940299053076959512565247455650675655680477562453414036176322626746753100036096246286392603326093403444221402381472710424938134665942849368685440233493028093964359233782120231600355598202401182870630518810484262965656490225734342411253305444254723442364652730586794512960044145801540340762915410359787156298363593019214801553758734364820223044743238441723346273422592103542498550841554158400644264155371379637335157111705465281366410458159253755685456563830771557703979909408008605518337068538882553234824134827508492332968296181299481083318925326281308995700626250416530365289366515652958932826930174021640524787186759051986955649820781417868086223170184607493671836528264577554658859447322372640151111607853508053825824425878950689212183263432687530969646773520511629776609305602450278667698982441019723112679937401800426572778365007936865695428399780113518408208936653512731708807964427466820595435326163611485531284897770009232173374797697034656587534939666286007134958242238295093273233684138449224707612057651596978150983098379676463307327515839388644982034314259765950176467206137541097198360055668591227082327558958010600475071190717805805191787332625212292795888814368585181424365985431407769924154834404857962559016895133972362668600280312253524453208214311514669522216709539892284594176625317304211311059675864256731600399768912818003084522043962818869750638155893801897417669251393720627243634400237440047047325088954286706823154635084181740171194054564871175899917640255800726121464639767988871875283846588274970044808292998612679995723246728191790761004873789406037848797248449831251604603950935223986220312913827907927487064539087046193724347877284257407084367234615475940882104893275473051312251113749551068292665063825835455903725343970134844651504920359731479436113583275138849310817788243011017115755380744204821500260326033900822653394775179716418717970141585313420401192501837363117211573760134257919391594615618139260866838660530974432471958719798777658387128579574848389561714663418624544490238573026274469960993917888609566861250997148121176899719577472695459943377428761108931572374366576382812898059122791489015535950165666986502245392230159866272728311929766484779737415263326974719351129246548430563579924015178266110297220854254102974960558996806665667778369994933311481229142790077607321781015445527096359420026365209212221486671152496332756499225449706756075950513310124678035803746180033285095710598816986281130389324891660684791249890529236391848109190937698738325850737923029417955668804879940364024173210315862376630986394074899237250655741920107166720248536242831194132990836790542096577337668682900046569967783197462211118866497031268828512023940060775002176927143653986099145463156308182867421306991980264733536383134641385956397271594807920232185639935758106858108246100855170906910162332957287396026029814455938984330829771479364808329464913661538272217992982824922365586922738998391476992256588098976051314697860722384511541557648110570921977843968614034910199784600288725165633901563439037378592475784135510087602754243332565233667676208441436799107986497954628326432512203670897790551536525189852853697558778805198811516332335740549706288759108323362287599181138409773391382129619580880377275566232115073107337715782687930373693577098133656778026430182289747171881739887676914599392093862144733068372652782139125453557701658259192851514418717662914452494767188309670448374310406950540677096863338559776480179585295040583337984207374608859529076560875906059072005239330930643663272280954538262117728965731006778157235092635605856082441810074289182823894276179231826372252915868627237502434675704719849465033701513500296657908448429631214672266491631562060172378336408860892843741652655953937875466440094997707439590505767350412440017549501157230368946654261005194634514763957544092846028831896992392119511012285209650263731236293200331497848161773357818486349148691148322929705423453149850469063703727210283402763846525577224641345762046664457450530924003222156422576190522318250503231210003498106034022106941864247206710406869784058612592528535004185558793420997536299987286340759505857850439481293066093318885707844257004607487986520988848392191296295194046756747628217723506877529527588908252869780970146627547561301607933790237103671044858695379386154599306869092902598522549320373271899348312260956384272155724756431930001372252322768175686790137412743869336209200085700054296047220564328836523644797551751679256539906286531845136034488871113839470869483771331214129667784915074041812513755667897613689120334948759596478134502789195948585442378975274659207920021417655097240946358117538213752772672263617618086179273088850531482066314394117861881432995754049792574138541555721826352972474946681434338000709574350938976651392734207714375671526017248544019386297922240155235845811084831318653985430963909571469784773434605832064770205486916661325436487656825437072132517516752586105249089982792023214205915615255039407482364515907469773039056312230094847735966305477008060889848300073314290563482927722963724509354254565356418951325683104524927281271638438781058424003415250527893481598005557552764104689964804076266283911520377861269284901986322240722747887942669968836637330455555636019105924091801195677826991227573125229759031751914115868440519583418166964411030954743515286232143138010700348982181601765187115278583088534989530045414379381680326873977042519298339623066907734406932429271650350575898987703724337030270048572554494623664205227193416160315881207965969301077142075893734688004238627501467924802372019817049022385479635903690441986985729275931821338313552023883653589447441433204187600962000283099886941056450269616402073260763417668643075441072869841095086017122406357145997881095629994338916803525708808774086824599458752183023570657637675597943823245457214923587348341387020742586380834776339722615452774926426751400929109494500991660814357031395425506683633237136535732963816914904119309215305270290666512892141805614712335759258041590798929296204137659494333717134077690881369453878771406247045905453734340322358918971661193062714312386866161134624368009370708760335427429760086990250906465740800856823543943366319327134360165587835652875040092772610687208931677905645424011264038600218713315660290798276022581574395815549882978762354849222056506606120969529707485171765626458820044107240651723653995528121570192907437675555040242449360435480851445058528413261200697420933389711931732806354096341720785630295761019571254070744263193968622932005328691580156107587080706169913178357179477480762552977748179914615870032461139949894555478522316005326315605781801458511685756116440398848604411891732517606268114804166947625975982968565236434274377915393427186909119575611317544251485118634456565884094494880686205805735127293823164040880897300095135712954887574828130050341675849903982448480461417808590738887623392261961494571738139339421852892684991212225335989170912391576905863139060362069338089053826723695538250542557839087886983841916444374509388619182026874588003994975170604926297731841216435508637034629199901402168486886707413947838504931848009671611494093020154601092056299324157209548494183450500042265474900083758959837573586447682010861230557474603101491888725820761395295979754595798739216579494906769153729164265884466547352558859970829086837312452640099092933243000674815899555729430357001880212210459742627396934738789686590207249354720716583615097945671442897177555849384737279196720478864921913767241280105494581300892088153432601823522048712010373496859609981984217437128185001151605689885511968230716676856422530358291027420728863644787743106912281261696576223110891619784250865346092194302870433750986771156491021272629190896093964739198832071230304607175630417574135324466036676477234289388833827555183049431479589009274549732280815653590059255716673126946517154597125345906598718018495608251865833437615667284207726814736759167473593756330636027979685379458720825296210635419196720247236582522810181020711376642040334108659981980333730815399254537625397952093110988240139167933207373435068323641663263298009513304739529733416576705914650360420114529418390680950741153337574754041847049506278317012683711549583175544706012965447520621522244191691097935411620491360112857636364044066014939777890739409294693448315229762427531272730507776048677420954030178471994629430793350577140845484754686198593320779756725329568735514882821912654471654159046764916145037649194148611620217563475263048020441259617555505563513189196766348367909348064869487045411525332195801622281105758533410759672782355348129159817887313550417996762963499823623965408102165089566670606681129463115715640035381682763149081411608295124423412873254007550725548034836711763901782263047947301662439024628799353149743373674424793434602386625254839831302704141505851043477210241600593381641000840515566448935383911605308381925275401154388084151756041378958648307302517447164317324413059735999833066530305425371161565695566494625620122351563957426489341436980261737181429289360254463405784467371639765617767706392929415837474839090097762915839719954468632520856916623223936713245387701981173829915540508988652070940382125332777235659955662838778600156642987084848803481127092785154730857642548693275479801414691109499543226617118286463424896797014093634193128358685144078537075688893529080463160456429486868835456988115879177575612778581311806006026059830814017807135214521200309291828706561478584980367100664643489876053883805437595743282450660672928481776556150662514678673614389000982503553251969648161712811811426846184549401870278783866417557919959714636643924009915415725730116348262966455659520456905659178972939785397206814902006504591114404123142305210300906763506276923050204837101147467311403096037980728061933714692655217107635568721447538695377579836720666213461634159690444960214425816973156173412140475741029309208724118908018028852811629516142486224796331361428401889961020509752890147206032875398466985530228965829143342836245278141815265384276628800300371924643971002335624216141986449079737133101748004188479467930557346245079567385971232460026438363421458037768568592340123410557496510889973877428950911411329451987372484151097997286079341639533569003274712569919987461533966982983236132840123313544059109632684822897741609220058093768665129969666195553285244008819911524417383415779666693828966761882657849327868316647015980374751704017359382839972694117553262011226704107719409073992082616594225159439292824825445937881964976277573411846546688257462258187101165065172664983482148715708076565596891051187176300224064309424736027723617125213441059519078815120201084096760137256402674869736207202266086602682603743072295758460319686660230033863031082925310023501972352825427232795950511712049940247492372330138137311598060502249291238359669985129891637044649774788909272279833516597328485827158847273732610690654809894315226767472509987169837436420760076192583986984497662839755939529682288826043996222977761043614744252182458692908984475125112039638061359133848138803847767045880591681278079815700696542142104482468695692389102860555755833758649371607314150793148848627570427990958128460412951325170271507249186026082258867919028847920261943516409374588045389221402422933194501707119082215791376078488005355859134729291168545216511410316473231075380933989913049022607538542512717064553562757437203790684524341871666086268694965850996710398852916570189919134008494616883043633310329992820108796444978671959009040143979727895950284117798299697303030700038482258875395000910457346781393258382638006386564645621642914175054376641270426368684034328209524273450261356592019332237375102323312328272321391321850405194914494363881393175134643434421417913673999121736975221398566694320544224784870866593953999493373259270683101770787568203545647518544542890525795582925726942242930719443250703713519726159261850039797095519440746160405486083200170348881709588036010853479853337950556420348075571036200891425195501761197846131264933878558125212292560820254745065176138105122055618918187248018094003769294907127171277061222267136999132366152503039707582948030908608080571118961268546730501280656206845545312040837052912153874549568345054733085913524478872936848592782882486316194921597772660439653952245560715636750267622645408308324642723492917863318728902031757815396147698807701371557766360637400201800899366318769171890888523552545250280804778184126025611392687953324467492842308026521968093949636553938612810216534421829685262285375153592590981294283033773239106650206089588345504703219467824874995897146143253423138741318128535100454934860342805375415889820958202348196234698505450292346387571504302065333060590013823248082218511400121351860263422454631217714804279228015775966012423373485650332310129213514608023071806061808919515563986732868135289914104486772247891687433056878091335091377735516133930173716269777088809653576940742295592663505076839091747713801393983024089200268156069919486700754271125967516729645411746530795211910649862496779294708222437199805146008904085556953063241963779981688331501197616439895781431116376835948194058871010484372557847555014734290031152858434127999711988952035761712413226794343387839802732861551827036957571651030580168266038785431434778742290442624814855828104122828330750424583726984283272498680744249374630348506572692045220894297967664465669398710334377141786293291986245275801388374209325747422096386892372113602973921073299463926436039722155707060507006904809347342043362195370198297762489099898572316080227878720933127032448590472838182030304210658179326205008439178636838892573165811043223016093662357133525115122052050853155445540030247078006607069020120393640574926464229024613652363155292116579573409671451060823366520501085535445331093454793027579332754631674334659044684992041985241599306711616567769312426092275970563319292418843243163654827245029580811037919889274444801927345211913822250441798683548118838024352773372339219302225865986827113888381488398025429690749456029767818818913286248707704356640448748799128441367427934836509520920870316584352877988103802100415344747725672592411144698195358700427051177723325152607084067025650612175733579368146883487011373958933075874920833433293326402567643275368049316219116510615299927571228165086065000166283838181973115764361533704146073627832997757213563400775828782324869307920675828735426906222795385219725785412535620783930350803233584116216042390506169298815699628215245836794085473731459034113056793142255038645993764265814762137872253294821131302978531313606533977003168219029061345591077913227466234950238487975832571037785271414502806194612523753193284079432040336229465749628718643737099359775949628613735734652213946062309884613112369232227565634383688756835807878866818357488573319140445744088743467621048531885942238073976811351846163406359719619858146234070839703111009381587338296804731902104953877851684097528600176585123167367929311307191970276235053519839745321344525948989023203690294751710261482994480744475126081365823794335309180237303419959815073230696837480844326730277584255325979458733223228555079145557034293180789277342889174940830737110196806480465381515897880394737421997197183059835462762783474600204989049515509512075900546518098275146566709847399534724200403727250163529733436428610120361495902844085186069666700276126155679854474634781650236927021089972339751405440961693499365380044640584473433104275922827252008249598708669930097759489365415136613945385694989790147195610992267625525422672933957253879194968341660187531009429215026563166888368353202283938046500860791743009112039311593207239441920679033210519021321803066923878727064164057516295265356747962154252069564000337669241040425637346451720730387872489703557865972708039607720693929444185866816107451081231666568933354643113789082878738592840052051095294043610453256726457925356615725910277007792231106703556346995327397796260024190321016427822555150834626359549877573298908022566459256487321145947022330702052259342005477884198860371227857892840288860516716549378098923398620837117797708866893868203347393756726783144551210640763030591983213148179528535567320723049316294008262591413253644383534601908172021248859744998197168295549285529636296617792279524706307343689176441732666325188137427212344873283964117663024820235039380724774564263509103569285285818725127235363516620407125998280596255141549823009260921163204196539860820736666088477154426981345185177275879286303804103267666865444156565592778773789803190266441569099418595975889632009668273733223341362964332653586420830056274352791076723566503722298107488163029514220081336366550940411264485069070665248600026265675352796193636436084812658603322875475094101867864995461238229869548320475429820292069550565381621455064949721774471333378526956448867576359664428237768163288986840742216212953962445326049971910326243245103310000608526925795041139457045544171396627940563424671116274495794046378195615095194204793460701112940885854648593354825132012856812743458934938293241839499967455214503811683251644330171657173960642507305293320676449917273386042430342042018137401635251779170791074854306530728637965226414850250724111626271590279933077754958003559596816649797009648198063706946225358214977119004998992486356421890308441862038354849813727823449399343783660006576207479219274550477368238729144020597941746116238609718560513824679741008805649074093593056166002534539980350953420239763617295726835331711649972204554129625389005144053826969441435089842877520388575422759126968405943073222605603073237413263787379333216359014681853598158302478786640527398175167656538798826006480489471602701034181321300980985033104722167172779063207170424566866858670670068760180526901900732227655399657875668231303377600551916239657248112491666751638073485885381756916861983142177504137333523897892785537415940938945552199301832749113397935868960223044189593195406711682579846645584151485686766376945969726404583600653091327872869162384850257083455577024501493255857284747788563290290734171910656871116144610953866005722762928543780844509400274912828650220967528388384439730192242303476964289176842347823597496259264995085753658166744143614818024441364923161273311262670714724329367071131614213614300253535334478322677032753173726347920437158994842102955640534020445172132762058301255212065144913556477768159823463654537271323518913546580084255388949721004210620129021803178917532477891315048551614253564149017646768990081528741783960922064783251076921007701347674345617002648696427576484197425120914425856480288405412800170698131513429023818356060371324721129813709591286907225828385346182688665645571726428464979735186302141596264802402428443643287497023197517046814264480183634326086956315401778949282291922195842236912922536368239786218710323099204228656944651455414747377678235306840051194105975507651236705057821272141164256149494984116129010908913716001881452664569060407476350061578448805852080714827870265212409651252041027440035247724255316394252299541568029291684746558091057095619852612049287835467152745236796028669881496165985060887488903526464055000075237478642815413466555368482871629254109392357433162646420708722243038526656657479302176567735608213559709189571361100505534955520693827863760925517119789894772123135696676031815551988367932529789592013722914752821593963290080698445050863915490358977503496633375758766172852754028786452158783250064894287551526364588741134292216009605775216302840995737595693015900491001364022968726007885991255684141807306529322103376868450124006413631291265054814379974410466769532635836196060016368687683990817377963222964949169415924178045264524470807065315449918913435713411964200460843413990873312892387349769126999620605384344003436744302486548293349138433942532091318279938625990451605555923359273943000200893654250802734283814286003752249118863806632179666326266438182918056267694729954402496366685717815763587347131232510432463329062080536698765382946444244118610552324875383300459459162584792129133903224275283450441768689283675261400131657941590560351925414363736548464719696707597257777291589169068473282799949166143780602231588114023282541593570970042399157818053694586118375581719894183163574356651826660762552147475604942065534956418926651733115813050060397422487567101520717873853705046094055649673327033341790457086969002244388486023511827222539732179102682725426911044686669240483953625201805382995377017098358616816580995257456488565724967801274647039551317774145496402615692988324296065026713506231026719462601719257083502560321637381145670705772474710346819958280395319022303973805701443257788557432286050846967050939379729759642354170793793445184152271020271213793996173458328504517426291159939463344176381559265561411866599402516474152035401880387827162392161333534412936878072180235516298550417997862489595420090537614722059137167524422972410641733806239829005840220760372655324168054451453668224523168990414710670740297497345402779859519909720310003753123707214898727127396950507881298533976026597496907300034253018481270937015334382078678234947215510707020897690198958711446269853792108271015048681161449696430489555917677567546269425813315502561059744414794968691749834035559447987475366131409481697918320440490919926447323468469594605540309953392151243238864405254490320903977042644502819255529603382868996196112965108584884686077623525255387229374076419724218328057551329579420104846583306637282988680044589879938202811304337060990105983125260548323137044255437917756578345056023123476214311148214461770349785677718035993091560408023243591025690374439398756934106588526829204664713953845252633620293096482921829967029267213753646164882221290045816483004216492520585955954004098812877741590268761571902689857353398069511645680076315606117598799568593312024827460760571226548280231217390163697019781930305522463827188619517710569003553383931035620390657287643190817680970777456774944565315901314362512813867872101039735602337468325502049436973414304151561257613678927235691667319123350834154051246075456645780803622446434489046166987558800079842411805275245578073981812549964784099665117226076460993330645562712788094540163520520667422103824966587971146894944999881096519280064096542576346259126554544381815751799557303722883123996975204744545551166786063042026149377958282084906474532883218523156776104733560066843987089971621804444682947366465442295434978760613219834271703118511880104863690725551731515437622861356290839465041499756682034370216078023104236525807848190275656785474791966217071899726543454437327382965583754220003188772255035415859325292294855853025317864003598894280608560980615503684597717286684059672600527876910072692417002880205676683198210780547749702427995126804656113920947894965356438434682947688844463416370554416148587859229945108440247546958068806825930473895932809097730004695088908802244890130782319479718300550412123502786153978471506146274912452690909638381692539763188022580000729186385934092770884751012084852107632492142923381767646008523345791671588042885046242241942552057527330477125033006885852986964475892275297135178027042526800520206369850811200393914864074477233045168381028968141121802069099998146447305337615037942166597757959930372727103750394873817739199583985170539564254347039664060451519665579047842816446344866673712132761576922812621842242858219937437846573754880874224997421313440082314815972684517463202559349639121353363987063209220079146901522028154113893223968275390842093850900557252439487666029024541859963622126592487265190994013918722307362772454395371597966889343761170945791577267440557050010763012308542313610192356428761783807436097767083754557225688007526685209079679148548283655594444984843431783014596654774886252082325038316764042847754752883008313170235227875591672372316048551720318744439586140271696017132956246506916202797142448561671507542267478545655026684943868343001624848142872175930694132692396712579301816773234619088651434689548667935084929066187091785110514429295761954455083916833575576554023817977085238091640612751503223346582849745675230385051348281111466535185760008725258991514940030678996060891873350466892089446741666131019078297544394675258794065358302218688650675329687577276980305564463243605411066055461714418558571786225553352819473398481117723909324065991723644934743367374065658178438662534105155780921596295530490973887520820889444020480822381415843551100872002917124978216535441094847328791852251318285569620936465832696804710393996477058911208862945686425586823997415430678013340957922055042611234621455287965122676865733532942291183870226478239085772743852723978753071448454838831464880653432949436428157549147708881533276726018323094041411755334722417167040285150392983200268077921947643207069463235372968509843777018172457196963607472915356897842117355437718037659025184504469438056618427726293456698943790520122499761613891820331565365362551272377846669771541670517413821443897768503519680032301582083511621368275464688042036659172494299450047510434494053439534394130313698287186042821771698212324121129154206492058459959532376101049139985189017952800810960070104730833296203860972949475201532853623238740432979954267683802782607499894010449292095229346607163207035741432387101544472095990199011171739647992677904325673196646419387081606965909864058944386818022748774318576683415379372413249243007987373885987032289490309493580849791154793006950323070957616753833283077244923070350253513799098980256745806854691478057677150686138164459598831582260388270195618908573253809777167208608708802853343729716519863642752720433967881153755093954100142700151684406266342771450559508203556474559370794430050671169450859211426754461533676368349587523840918894385680077217440094903736916920032056898617072742460017987726718659416160686401753741303440418486691259934854554195843478533100550665952937171025498094840386257397048095172591748766790582477042166350149324699002824640986193762179376183675896749571432789267907278009803475712003019099637824891774438195069681256765570962427694267555225167192803833430454757179335403815024381526195876391954692862055743231236571484061399390789107500318855002261012889267688585624864300974150993826859293063955354821284842641757085359944896530618030429032975689719431517663836872097923211127069617753974122847738019136007521677124670548997064358735493406256790977964498722594241928204527654916487801707748241202566967773260685308390063277227631172102978680898193318111413585158003324938771414223032584119969764584174187500256200679271704482970811966736212159040386855729838164675293410479882114668520607310328705129933286501526177268276359769840345541887812829909817752267674603417038147871003634443416742540528581999546977960594125487570416615310024210473122104199586607752580116927079206523747770791911561019559798603589555106044981857385969397421126959943735777809261590004245816595204611464601108139823625546292977229502625282582069741877083698992258315666062539297066894931532695407961656643157822666681526400070124841238376586432476425969258318302792363544698463251818740130840562997320443789932133272639650546823611102764752200783993232636011179751129713001726361905270532750898659923863669383936786482071884656326179977277920911187016146835983476854878910300526121595692738236263133727217516033948748794159642219963484012360267579810631755915638062599091960956686420461009599500892413361840335264522141043498484331859967665694074094485789210652383807877374154679143859134436028007733562605455041602849415191859630698272568110286950089890819816099266235865717066560260851597248264740106175861034153803074634543347668894256565582745589270934792189579106476037021408000482778712240563928207840853111370112670634983114593933009616258522925445570223811173928359751361368724671340240324458234986193279727813746659849567905752952694543681834389712528614797709579759826804849087338198628272015266700549065602333721066352978881860322651128798650768047392724427535389111392959502704611267162869108700638549888895466298596283768376323292862249431508663291553456148243545152497680324831347018927550015579115289299683144525410135173275231448771258815303405763021138933032594914832317300804753028757316293313735281204594441549243855609140965836692395062832002448155357752274740821461255691048371232312710354673575170406749946910156190525021682288598071120055432267891696543061099636119544940680761811888154013952845977456848778301580589177243470074688369785021186810510042410714491358124932583717113942196200192697080488511191709847000429617776914907610820172659878808965579777235986562031865666224426609088679981556679736925755500999187156194267304838157421389466605152505376036384197818820129223977329386652061432207542371060835988743064731530858574048222878335956418178236222123776786177797509951904155749192549594143919662589336376915679114141214745011993748854270453434579552735805255238842664103029942323320243875445295311934109358555223023906703766067347398798381370197869715505427087201534555777779986352069365733331149109280295428325083036788882411681744762455997437845282822946065205624740562720246164306282426946070570269452551338751718161678773138977280973852653593654361445958046603233840841012564830262740855174640878534684975415114679517111776740758483240479212360559960849709489094768568844316088477686562432416850967120678986122105097447914679398675176061909052162312488890030968881704422990546062672150845833475023154812276416419998691080276399161537855999945813247935737981305519824148692191257750152293270320067880601314379591252225011839246017073683856873153420280436259578138327110442681221615775869556984322328077350607349444962030551177871996628830110012015830755907770562019234974658738222497108621560856607497277209384372265106506662082493833241909034137267575358863454125539559857294284292861149670705634917908714760741125053366135636001223614513625988706830770892173984757304415362312520979326903335718051187802778577226685607745087169698550562758781151709377340914256037252115975098318834111728801844189359767416288998141398118318991048651600730650618075718056379283116833031416501404655107467100138953168155229219660442272391139828122985227337804962184329693080861308541135129223351478706882865888683203486818871628683249811525430060262126637617351692920031007100713336335213779883080808149727124690708994044235479601899909878858325209189341285113619029169687238178763803270106815070251879538234267969977860895866883287352331398325792446797629804224275679668983844731120415531555452925148907202611941808316450798556097097424326755294524385199835263793457019011268144889069395898537615189596141300533361911268572463821088116254408996516787567147265407185178953477674960047053003950288593310447429039145553039160523082926449601162307639488006343578586943113334665530214523079141204933862610649763606592916498782062562879800000956955890247995568401374448813674048923343863027970503611161647817576184959548787960480924194597986796418489639001981827873108633017766749861461824889274505917118671147501388773404869492288538398600542422249147229364091958206554699858629444079670369646654725815449049571193648961403897894987717462625427603928648057691232636850110421569250626690429574590825555722364285163916576649701570165718322477229954915235932053774095380967599188935935066129622889632275987021925773830519587869000298906809176474300801778999581566948230265434522091973351396715437425703354165974518510502996417652591516049367891370444795760818032843905558136674735532808878437145302055815081335939998610763332539042240657380246670964351703935227267531677158859455987374999986329018820689579527036555236841540287899220053582838942107046758803962326660507428316367585367246172982001279141695169509948585751277670585884953352153797005176590138480398044484623330555550724136515215839052389900202334788533859377446271396005393135539490181973943517543135857145700180489092153572158249011632000501278518688579117942802794825221053607021102541492542957891083023431953912467467941770159988969495716425793020384755590472613620224465858667122079881003261428281377227402062537540114389784985803434947736957716614497888685099156020820962105064854849719770367397506314387247842504949318675237292125866097361444385990569479523795305875958165404608070219326385831081884879175867158507233321583383531731519542785382318674262385641298644243859931484250835920055383739754900245245276242481825405593507488016216851875556518630388426708971028976120649225212365593261918145355112420189078250565434214701476024819081747516456298645993810475537028899359140082864893405015921592429091473072662572911370438323222711796724869671771589591940599099103850033729972731488629851906145684550019689939622101761268284425541812366254076502587209710682743521445153377702191062282398166108368811005535414944919898929814649585654404862838427314560250337197156382961111585524118809951650825692473484934391656645638274799930810006507293816247243359198900807559099590148415653297309658067368561820895497202766702773458385734191942366090694585284386282462704888101777882801241089272692741593125953219731385085111910091630485148342098192358305308639548683513890408727907180930804410541933941058241475620336561254865504169690498134853139689021247860673083473242025407392242304691417089169891446889013950968567413051320097954401656257171411355388195576683047244961031154665707483501418991331715744626833113441852563401649054115789270441145322888052333388656469325892778467132286464249026849916790003622033738734068153340861818863978148765242690925024702584370606959237302100932243269480388420622702293614716409622901041449089536944829360857950090827933228623645452403574821965776419693942667643045646883931451671212453962659729239399963311535636994412173651125951929664117222724164474080767562645737012271687495306890829453060965895452726263265772892582601128129921804247256063579285073877289623369695496533325145279426221912029860878976960473884848140733294888191048130246861338179833062036486291242745143053363742516351995353335902692517886053815395063672781800682933532974345384113261625261666908331930405165266352980012685393705631500268240003424110635567091382752868806983811916001044053318426285257790763096744700244122976953795110437745255240565776966451504508435108187487551696609606929367920132594580295323883576383172568783331500771694415525138101404341874012680255862586361373900758098083986428629480844585086416585992855364529710403361800357672999597624901443697964773751725731222510929958666555743838367182338725175474118521969835313386804473787385536603052887842342122321475145344679085207566451816415063889076833434162636970848749334262807106746729123256017630187107719671206983454171836053151829445233991947279574932152710638697744407826077778416398949478389334008466647273402506179297638087293306816154257855948875908408862876489919220396476501791723973573047202616167928324467061006446569508540755462080042160772919557954115972061763581051993922863590427952246163339415051131503447179170286454156567438594317146472239292087619325908225780927785036153636362642208648889057671321359589425895036713635459673957977541039717335875559275558730214594367476808906413393175202014327141642067931829807303677268370264792719136706221394821573514093604157439106450295003978995099070203230056564448325495189177931803934793140701025485686587124084833558196283832250123224049589594093663360407294081316276917815646850123240089546664451072277508270469843777861534008238436571987505706808405765216863424891395357541319317588838265840639356230322300785217408237699442502950796639303860981785388564204891648652272430719297382070268263143199398321232389644535838774371826707197989550317544606862283777175196430942153532771809488577538913492862957093504484415416181320696896970220922382893166804469703428786639997481534518421942310300174885482973611409688487517110362516112727803591071118678791180329331420996474953867812653535813726720025477261084341378030795877548197006576492237444670284039959144081359967194530288391865254216391553945054103988324621135992875712470822590122288906165527457517122340356514930659458624429910256789059850917507921055056019920651289249975807440501521591045110105314377942999014817699291664075705419922089959592639728837475585691593431789521195370621909150852917810593897405581471742681739416655748887850710677302442270680340543752327436716887043196420987174142760244943203510173351513156364456673367130245463111107688966134267315270569457852738377945613277560155829731904545923905973515784907101923082533153369946322182062662653781565948616695962737495246980343169244015321694450512706362752487904891557076841305835621274356296809455048952801677095381632112699989800752525596558911312145257624001851355369981587927202670344125429593556506562618980192923853987980298292486115130843649741571497166194894505508178680268031111914117213710710883414363545369125331069266531798231728055835438751284805092932279992438342825992202128738824426152353106393449014437591192652942192135580021956303253390170192421170143509295044819179730881527752826388301418604381881908488606359743752640314024399483712350463613293304592851485681390039315762510644604547733503700977345052095397860456670753504440196791885409456856098656601278734467582286113325125636355465407582495454339730729573204119528043369358362467475133936954588483245143116507094130623898208009348728298665556330390998388695143111912972838817902933658560538890579644982758186319055155075612136063730044934666618141290633041884115610513825743737422989875667769826920130521745805230894774678476833848760419021232601463106541487674747214771807439527707287936082580013279712911498415538194705536708177924794717658647256143273470842583403213986941792575572656550489776259119861110849946365407696618235401226700299510605110732472395772471573808807258222355363850323885354997044723460643266447402166816481432293118581133522074262734164447477210014019231499714897459045735317973103416454978137054302943662086019541897558382148817559375551009214616142315286979724863209176466698077997019097203525435172332362895651799291800263362193882342872288029742814764732620324989388845105439444619989726098964914571898488839145666199690316955294716658692508538446530354374095507161854223582148793242258343333654989748794628682031558094160705172959565262338507931568638699547563251291540279553629176556119206621644670863053311690067998081705328894961540309737162567069635963257769485209653444982737353576081342245033627162597004461464535302030140995114298478322013506130565006475996074528167683023126953353070631353013269856207854347805100362990854540029123887253876533235461301945051521271353176381210911809238508756113185345955496076748673729790794340649024855874670542173004259706273210345576582246581585288356441681018393010770969617867527799143167379353954507138534501383637258329817609763440639531607326733680478529842268566230892312158313647368929922407833022091524129592839623514474648817665570322578713438864055781456117162888817520207736824984451131802708189832778971547738057328665432872931597366256320127762355984419728955641899047865042660247376806570164508156624117802691030234007688462984933598178177633829154575440052531179870822439536655053806509583302767559959223776210114807704966558702892979735103260983968117936475150431052822564672115195473718685891636626641668397622287669485523148768981534328201179328734067804449902241577349140679187363990326057173508070112802068054486323859379162487890333511632915263616829211302020731634813935239482779549876302111250760591003170925107055645696250500244860184174716686943241401405358251406412404094885716389270103318314748328589624122024288198064489759859570472823820428442619638675287698576596323776196600516503218713744754718885218345518722416317178287626558936180827856838701096461463824842023951781240166179810320120468917627258534097152053847110614026945390382919231142110943526936722613095536699228847451651481689908151873124803358538913915758341233269074691691740169064215152435686970186837221794431457259692658909188565080927212841510984315260975684265858733388124870361728207146609590185122618701697965660367335413547378248732383287992384715041662721433383403910682412129671469559603839356202069875543548354353745011910512118966621624730470529853324994205984704252113652360805974162609420787860553941199161154222221647264593958063140733054301829948746630924089251992028559254701897576109980250217765099591380200755520260835064127430285459887527774716100781954777364625268341825683793336225378444296235633295328766231927015723165256832518759320014334560082755002589383097649941417836554043168925237641234250968894202312927172926334931025315224235111576216815704051012770693653254279903427574344963246701601686390664936556223768488079989498498138005286793233878805910588928035669055120098367981164509952376359321624320424820066886121262527161261417661340663120298393317287757953805640554672932780386119608366852951499813200068939843106595319283108280764763066650000504745396158626684167415910224335000612513398055941893129713619802924272735382847870782226154087726110559054425642080167799843927885393114605240187370313207877643131412899690424615945932325896883012881094958050116415719950657918163285910481077710529731188846626756522944366166258561899364801282261457995429963249902817512549759821056838819432678244015561360070699312989623207539140348610162739115507421519207212645562207471528876047947022125259108235918860519773984621581332833448976304908242869246336348937289461989107505174381446897971473516676289700696886091916987854093938572102337663095947558754101292893135717162348120918600157951154415044750639472228512467724610161253668591364178852996898771512448150752226650767338751020959079742541349138360986393177894971627596563176071065288679295472876074285922189856028696149484731819519910499478345712776420168102615320532997875629133262720299367343032053890410071540174874129247619338823081620437391855041198492676158679087435400779653425838302381074016348205238060767790492803481122743457784264839438668410670053601363757318854189148810964380402496816665354092677843670919619273655500346933110011250640630643953914527098016010268775910104875760169030524675651274361400909664680933632605364749458026622211181136226538733997823965644088129394927005519494139505989849341367146279853930062311998320293462226022815592771484398760780931035783090234721981796117888878683489145259017718967816411972325949902010117914852958858019833726792550873527973755649500093107347429977328169059791311560478883118041950542681721144496156376286223403909646210885767731151069529778430139594629300739041807168110538430898802933853471729335058987652767651891939493390256441571950125140461055741594450230668552009765120944107625417377656662575509517765183627201224960948808316392966906756011671688890250827359893092130219013111180382081794075985315919367568924532181525794864499187997074268943473296247713830750715257784902515277976681207740595443033105673225734620330592690285185690694880493018464102927484908754591942580405699609369352154579124244195324980850894090157075828187054297380666113080967093428724079030130218369082581917207850259541527116197578816699206931411580737437892083646071724289472359889129741600227681779799701931317026867449994251586678393362882147717104163310654951938140365983635842016676291214045374755481031395357065463716168621667024899324124935400997665669810631690270130731802698200692839479222596855591500929920395250035732292548141225460352243396685589561705158753784147420844487091969086273592026611735579024205366826037252006769886789846778190719623512713253714812010207750597650928882229304297475571615778474266462983088003519626712144231626403562168808351738785245170792090247251626204482890971011791976045011491990784784530857720411805909474110263822992362458851014482957022255101416162150033330419912287966132059681287581909770504952662300091428534413600263887460645027627151928707673654088990510774529362175185648680939586823090089839111263406552348762240643089741014792564764907695022426565274305790281891118723008114765057291497859437232638890758527394270921100434610669610170468746699951142547277190932795888795669245324150972499433223480037398244369274359962787128619623216983604169777423776751845938749235569456190460933415534220629522484351799908894076332129284513762154942049066061430699325647472998814008513606314182453997233270024699016187578078941486716933803105868897718822603616162672280537948434255195926519721861475802934815628571520831652193268190853923329872019585242761133506805932705879338936026249952129474358458486749414648376062544194668768297613676940521224245888655101954862420859424407412990962203232330697255934752624344784926758884213511472581336994065845708515483405918119299080466424950926259079135582520019091896545561868422351938183741100760698834984156887917999461030693169728374415333708143680526705306401043570986641334264039275546881987372903648418056077979274002507509292139869523388868964455668887974723043078767258449219797530662897684762398065169582776831018248141240791447078404896545278225533951153839791524250306027818809001802613848470890113173391329271038860138001831973829882820776023850027717574193114000859606889575852349838856183843496058554784984607671281959378549265961759300966116571404915253002539322473818858359362912254167332664000361703226917091598802054891299748996193935166551709987597079633789096306360691781675220278135077379529018271706018478870889857250178917727422029227916053584700888672798427156665000783495616133506361556816274540615431215474763584407084373621245149666242194390300800405536770448990305959653502685448196503770232286301918814137600063706657540690085440919433411223120398340403673080296503721273234858987016421737630431132229043174759250487039682660170505118289285942618585483529296934680676457222858979531770228289440146646249791744335994761751351114366159917396834129707561818442838223686212574346375876364109868023189203011032451573693552651879138616263809420485350291661885455191854802639693477948260786767357871680696558218703930322452792140760876597384789889807513747364020328491518784560345799618635700480320326543232009596544969477930343494304656512166655769981000800280220963780871914376763143603702765279830087340846825451613397545743790682511315316621615726186010033323981141110530754353393144966741660445364254754252844794015779832667589285330356033028591567692447728803254097342465494382200064925359543553997954677487504514267769389000494844991275588601730848703087222490534249452962632370324135215251333538075734307372802029179767372413737906078226977440368100676778020528674196003834749212422217819467131505155281280219520358853609021000172666799229516550517724670619800384008148451216558740765539378016466826519225544724942550897549328328727636197172723382115645219748256316947944846655724124394452880011134122077648504810643349384372384544149189145879065734281804187853571607591984411201777433182457489644848932236841041846317521266476428417111489437220200090515403413670623317358155001265726142745190121316166818765579220748199577783394709510904503703045141759858848337220209766315759645748831250776216999276775966030736803015612850301712053693979097020404906003939429734182379457020990233864752455867979231803246838472086795229811363651954164952135926217971002248974148630811364866476003522037990247622008846690457348413062626066894816778051556674306569165377192007179589597946841173824737282992274202544245712122682884599653077114771579055595265601157225738932021981034076280895938911518462986261165226884977202646382713305353416130716754985728002368387376072354796172199437668829890409924700281018492750065005318944541568221008339300082256407965127394475769476705893894079617887103389715581437798059164030521161126226950476963155902628022815783955361907920704779261283918305516747145267197449396943862407604709274191662233764865058210310970812771127907474208377115413717485253492451443150896377673165372956613069151399311458601511117428463262500097221040844148840084270613334557634792670253456956874908955018140606794273812839196438520147986222021295666555470564441490902866589933247413182867054277470981350641583684699189104403333373819079900724593418649177586362291949327256565844065685102318922829395935527506114893763139719644642183930876292881788736776456198470375545454951147938025107661035715829342488243006782378321123220410068223656552901863908965036534643494169255245808664867207367050575380720197052717104451044786907986945115795719902667692891510764812901205807235106957139237358510876527886063347764494939586389021606036107303361639848982494762586582766350439881890949853483298154704278601670683350286860126219473468935112599956231467332665725997628449600310020531659115758850856322304181145523471961182336917424842241944004910879098045785717333826200485232965824526039325683914845290591178579546392612412255851829505857788602757572367252184628438820487507580159065214042436663094975460997546145104357532843190120082900553297491394421938009394197262279313041060142024577124841635503094916317700648369955361203914705389423831850006570075505810390628685024270565891072452538643050520835548756763680016082352256536418556416752291644489811030989618020515564529082430466530647637573306967253928838224298661328801442121262567335317729862435548683801318037973802116939033427660807927229720607532654878224731577017343055573799898438990042116912744711367227351764713180632778954886590918008903001346074827747395087559197274040952987838591467559291182768568832394080678751534735300423761618765806641626349013050254689068924480896354093800859908112706214994190221327226675493362297279191900531091009129355666562434179355746435184138172947988810107301084984680105361412093231285647451976145438129783728003938196952132063916844739055932187833602001203073784164510385028816965049240960353938551391010984599646708300109981728501582733704262705404561023802689852430830417000505579717246297393029569125508132033042018835493343903043618133517740536452124368593059697844909256053201913064457325743395091994723226463157779875531021061003676950630246286762065383592644040341342200081365730779482386354664984118427707391338331586423766052183985978024686341073546764205775877618356653812810996602206107353313984018404079633565788844196276984577331190092269862882985796724784971813973276462853330830007550151268670792539419483817274082927913056731457703465638300133438729953374674702866662259014128513554637630947392014801550647452036476375273037362473621644532755569737087447089030206917698117778990183766579131442206519951515026673594909373293782312229957265960349073767631274480619077873585079485575333672773936673970288753247470784601950734808526763194263523664406108128015454428660894731149185894408928850603643909196702973690045232845229015461496701353687671324018936342147368315054918484017687776752177101406590680301068406611558545912786300758984259959406825719092056975616534791415030856280073821832607019448726306260209678951540002485819889391355002488914871770055096455332864060904892190518222818229517380773667296003739888223194327026004533304179282708288295552120439573429305668566288373822778511040318884846289253274496290788463118016799528578383478158657044679027285865616242650904179945147986927251232870583369807536968145527173046418602240379104090733020891054807121615036718206733808225684389429455043565973311613175796920751060517552925143178277128728775211948021462294150226696742532241043491174927838566791947285549991573258869497297825959062758884023326672740767742622520219766901791434254691788528541971776184025316660150305450786111901027008167779985252042014484753875573774667693766173713384145545922651876693247841472678558576666797592025861735441557234853481477228653766384855630064371127366485228238826376208371568948712552442755233546534292815982342988478426050371680329441311160216525455704724963677014018983791923733816647900846146401687009030680654206862064295160220488341092933977663260309969491606946043312451896967567337277727321180402931261875503660438104942776653564053621872548374516592099484757241273310700087720688648577562382089895076355731232005550000303891196764303948843454605973404008622188518788746813823808637005205090504435562681869749607883268673163365913652401924852303078020573804684870565882053056986745220654580392839050099091497933294401822636415741745078707075997739959114477498356044847994373385856692806130205810803380466617105442994938105340619964378541366145295147401670109271352042126262655159379526781140209230055459280282909536470023452367291742075711606554480142883454118772910271524885987388058490842659458558456418797825856097704688297359736093184175572661558206764176972729130270447394050844187805053022365753945458128901988242696081503441612884259134102570105168411370448321032514101257546119765221937602972581314253807394757189208313198841011051040335654381673124467029312756670727156035590327953929216486338814713503262983262283174644496660590261491972568173579247182618243445029073017093703641862974264838207957656003727138904698445239678419384525571488304981170819527151938724632497096737290169660258838228368054967709411570152713512731005371509316498071573987404000181204264327299312371743054038845443534351146258972728689457495274161715881399647926760072050712144320464235044607793333130529826912000996686083866758535070821974676531953947923352517132210772204688993060587507810301486099307387089434471321038884844839221106344349699298928457212120636644609885621541497415603076231835803746617871620205594518633880253180082291945675385761313671570927485277022887479686645744101695388173573202869276315021312859518137484998284401502391211540440222007308854106983761784163847043123773409974560153696989822446085498598177021455345186247886863925921597799404658401124359005523175206107093394127843284244730235945876203257252830256526510348503062409774833560469381605082031723029978112689468360018422802907298373135923526167714077782288481806735225516653141866265028106670729819647616578826883032744720835608800597303521299243312185194036015449467692961250156635715669275938360728496818997531412064391182370968001828980226115438082762352504596959268814441485979934361762656095695369649362886536490158584786029411242549207790764921181854908918042192049822109189318960800302140402810586331065456588119138370196069747153512733036884053616147269402503564213050727195753098519551131361614622364643704533077752258543251421429311118323459476569037745710632780860310474703316034272458282634878037833781190598638867944549482824478979684644353176949504535670256087220109330234296830253020784893495634806359051060101618254232637162115991344238015610682517788767864286378825154272679621253288171000987164156216048640484844960215594085862514885632030140315557240893175915121766849201417140143750108178373559476261247435068629755709205450869912186006349675879381543054762730376368808626099452309191429675123194288417426943991953050038427414138250117819556893543290615715966720782529730098800636287179684684867996672624781023300948607620884227169418511486494660855244062307096098449088674380512008964183735715720726879916802587838826967297191221699688667842208585607978941133474993011225431014280261689802500250255379168966160048195748581348435595637373428094273262479146105199569892262982557925913060911026271894834235070021662838546868457770746321102328794869084197585127918411941551622686694801783628775511551632620912545679943322040086340516525125472450289299446278041592139100227922602686380490316791345840799635049822804575591317570357030664742559788535469585961193958661690504919971941206955068547988612971717594310106011594698873886729405300370185442967442408767713887864919089947214635031522876850786064376829738983271615357038674090938402232067845912975565406699181942928881854692001927815769446773756007784749554150052155877171609102963819658158003501582015877265533121265740900424725633823006879176772498234884466497618568609152250644821749157880269226888494962001231423328158055823773132755782422169856237943109178581697598492360073472863806163150097130738886087375659629156490915780093358161583031471131179598902992952106176687244186450110858801446644479185902705772901073066887678790941986930098581960533484807404361110983734081744059659691529113908896060174978376956619893949829788785615946495561154798159304875954129984769615321489836881173560090772761820545043528087590939585515931437468355451393056900357706924512924782632242326145690463242859732111146265646973839860065881974485955556859311465348612319892210349788861357644788150870443434179514540879732003879385610274266903396852077831974203863353655809671871481069005796594503883600876300160539343701365385780166639387592890147785245761644753154372783010265156237028486916647398210890412691426564750502803006265547398600011733244521449587808748605525220685868793663018061902951069534465714710531183596238194929801150621744919304702227600250064482190505385071135980914188662274049008809944199580959016645367816812856485736822308244251127932589671280802260178453609311823913390491224006699386448250594399402041610736226161990715987173086554102083317235864939319093184540177327732777515085696239037877191507800605884255734018229874159056002227658783316540635274269561926890855659125646140542223655783164233907040983227395090754989688727427468164407328530378108476871057463662830174384367194459998143768166258997861696667450024594937090208513661477626120072039136639151633472114902295694699899340456185932566058229739247781875059136818537748434087870902622374024287220967571507527978243249051447605122534317690753572507275903972473849731271166465739208732020657562673256122528208040871872960079935461839628547237187372996992804416096465027728246415069141172399901507892411560848909182994925710266646792327129635021613860338449270774640549194707204049588729463950187149673713107560252614677751719824599958455896265044216574525459383154700651074364473091824111018794980971995926714772906979032367795234549228471211974461304805115478310432389158304834584590324813518203424900917518331698160468709837979215863128650896729808021561627914476735483267514797110873645728198090149898077759000074294843515445209296406467806764052938312989358738158157444760377442950238089264773710310289527973846783299954327319132785270982691231599807828915163713723699458798389033383869402546579595783728941646517546314871257086221195592386188802922782470012107022268286462550622118228396189136608075718204325612919910267234818429867397289867156626354201736708945663696320283800022009091298061317115638076179651216855320536759226452694784009914910722329057210912769704962420003110055639637159610185379334185486682673387410724344714480657014660704507036741714560189443588528066846078285192619034729376351971016165178092069645396048305306355247236677783552826633605708376720884248454821724238515524407683883380882660720627876020279153517581745072147116992941621910211718873133696797373051388150314701768890316763627170107043317842569706242911728530057540788033052172374712142654471825000828955310546569805510711611099959611492641591395528726878978630023393573723409709645276798368732539941680225175044137022096819252520085455622099347577802406286286896760576987449068487116146804553409406391957296992950416307055463536937369789304229016837556034078779070135680586248364824475896493116066461966405411260200673812665315811969698900172216056651915734036018755985646830575765861138361959197014802196215429316316629644930286723984564023660058898263784669251803235957683434335035937560812167186087045401954998283665902887007154315120114079719589135283430545323291568465669910245471490023663206744880902129396533259767011831707698212865872300740399082841550442949826202193227896814737762283025914608009083747272015446850892366623114458615388120154827010154077795299985397108046762468918095142992666111530433234820668801152493247444044496192228593644465038975494706778606350474028147354933782160342697761071719553012424534302609605550915592290078071603762056804342332602055773000043592479231660753240560782483537893839798466823913018564601705525461779755030079844186163687903134759375349776298407451193648269467470010087565312828589877397540929988177043398531430392189780548476166500921267318210730452296203959282346943484866435494861967754170213288507749514507593379876760980113289835743516640093440721653082668838705516959968240748067194963590393735548171230309289988171614837024301280415555598057853522295725523475819267293453608668630478413827324937721034313867898771951168826676971650663776962503129474100501258672634928763044426054800054766538895782695336043396132967868163476949377477054406973999417604636659626108968499457379010088144306554978900364480486686051526301378372848996275335483335752010324946158223626039904631318862199781698647628870361178831652616169192680137604704038819376300958512034538509929984012826779037473759385944722533991560487962724173447372221574028775287762948283068618141394275477583956101537764033185234072742137465901275290430654146978198778594856970384057429741666612825047417345372800725402768824496065213415263308028207918203147437677934247426703011189166498511700591822317755316569127898673783104166643386695552376296563434584215001753021372291417397052215042720497841785794172372814840982588128840309016709587188953374626524046885898544067357242964691584934540563867734280362559116239018117857147117546549532206559683985857738136702158058818103887258009908893618082498552478202545546828326559840787995967319246613432970934060927626883330128386631603288371018563539534358153395305168523295897343448910458689208129977471258475657733902913753153215612341779810604898137993936488155167853057635351396434550664527047252698752917849017611285422376986127525923110312866001523404675593802096099888496829550137860572689132930181253721191861418474145469598214853942560662711147638200428288007048786487662789909340654284761177521797182660374893848584262797355791639720210330197906536167434864840757427797545499910258200832527832310104054214756884568933169420819979375050463266761194857721409192564158735921213744584547989334750883678332155307887332551452238460729058856660883142057785953409627331772489591942618374673447917075054871516653653020747664712171862785857233590508837287887536133229421536159258801155400311524886993543833796361998260088697169687675890478888611691814149574897436003409784937693903264823950331271497518643904158250146216719814283764720696745705712174846401590506386330760814809080883376883735998838914400577354729347417210664962067180158692607709860158330176244148669547839832555954834591691189943947653361080380257224643628815095033260638230321917413922851252547698545373208417866601413943447334453218429785006545187651757249937694854235050253702080958904201565461170623572748043097904113216361379213138693103539571699176814735378314198724993847020345902456621286725381242934916172204247779072726425545612870669989661623611073577012541051542325481755515650593356648830556557697918601975227411873851836253620803949649695950157661868185507995522022372564386674346325255245224939454070936719129855246728250621496348820468453109686247645902777808505617098329789373362314441192148902939047787458354142328532378997774418756713631992317131329191520755223804981235784191071655122738540602643973575868629630731357939287242658653646505569988528246339387844898606540586567571332817708386118489991381822069985384284825614240083929970778436957780849219110561910081552225352459280922395585700517776976653007626141466093540292371767138026123397017225868838155939404397089060968417944462721175882918116913835149183892049634668618207751398123304579795553369129475218717010814139092390217838600751969101620096080450408217535639075525141996361831542958800926441672404449721324813643290145554627461644832728626536867660073548410710804453691968050038856518970703735544230908180483702118998637332298537651804153658615577256943996162930374601753639115102600415675566119495706747476942528333980230737136738401376897476379305783503187111990724412312143062502342244633898365721172308713688092799738694559325456194663981622838446497479892073263732474083658441396795724420972484499124444185566492831287857355169136524922342354277963914802518650877155931660014542505691226377859689973397933110525095521359615619697478849856856248291986689795725358154189417229918777992952902903589041499422148824595620083247958531376511446336775586588937835132407995171586330464140113941481959528671642606611403403967291086675542872147774822313035937668237257315849407223557303753322370403313006872253832751087852421133791055437406812938901676770776266447015170879358053106183238365686267862359086698683139915228958224995053975104177321108243162517205586625147788112179866363048565810967037130816320343163568630722256248238411488876431971831990581953795532851592529014291285126893292094799183062491678541001101980833947928070793852526514811739493141467605010737773799161154359118136833148268754676909261307198638914703956341522603981886731980983390590923081241969388230444424213589087409601382210198101485049955323910759494291113508073103109193425077477672591020421688302117149164190359453925858253663799191266172099067863432295229660231306955435530051155442710600340841482877787583164850717550918651107003431725950251848614568681254564677937414677581308957227523538559295654994188335978273584132521989465624516772594913230499945692166759463102807251050327486181552580555957943506278159624020944295125220206408511656804510024493307047815723100808306656052314068472834918564409411744758266297966000436727884301969751067636296939755422624714515943911928113784690587627870986328513174606068844116941497293113895260469755724515130508373030090375756017726570080864655332649472655294533444559297722510333912017963832235718551148558926598143136072228117434186669262576720629158337454933438748684931457214336993271192893170793925013408336762682895306043851026323144456476046068240794872975650598412398996424147137815425720373431720895681986304423426249193140634467624023750284768355585304092045159585348431323292452308319386581638829748826602144087433559703302312666280769508254742844143794215127459896844054179703500745598370469082574229865946824857844276151489563569350265995388588444522230986688252026931521523665141870465472265651791316247112838828477108953818045883805402618127932485849341592903770150807296207129552941601285465394764648037584579137927882336514610871094573182486451426634411905978404035251138116087975206305144595875269673126404897074499226509895369192911123018357500982789259578799899220181670882850599894638565180469356286071677312958120761822271191860530611084345835069110545811885075873303520166205409442535857185935147302506425539666648089523358920693604401953102014515721959148256663646219963206831403668220590269370729639933116725319794499256677136188211746552516610281823821503510238140817770220243952480088447531164471998574452607267124374698092772918501069883761040298052779824351980610356231963326996398207282076067585529229288183650867957433975002404219393477837738413116025755248832788496864339314201766810502713779369006841643218085413514813728982382417863780086631777683673199330021952862409669472483190081823793883873901798693089483246076763982906391677560508928282912249347195010996710792050144759917324558628921105016028212792007071114220572761361087454201320936616668258856937650378141101470804966874504881431864011600817286786635876348972670347746735627511777882307636560204476085811346363879748752156931254880403546440841983880719089435394820937173159600411774675655473178218431629725462442314877825511623779210223934356156300442943248594962225677269667345898141698013233632145833432152487232688226018458589318587082681945346202193773132959415382150578371207615778925041537015990959143292151060295281279048944089088275200184574304542405824082468306546706958819610738353482399069491615075265331610564211333464217988017689018085218661450844526478245752051160010133644952364719734762366105773197016668673152904268721053200277304686132375285791524761943767529219906453138468036090359127786810450247976060566921566212139574968631985667587567576683137711857396700869238712826544472575132383448727812186040830619293056546881109218485926061245117922209207092033728820894152252528225375005363104480366729079347743588705566356656837707432812825612566387670590422731038948921850453609116424774770065645387830237904842616957017389991116639005262637569160982732619371326574420679707710824073614745262953222767415347601596905057829401816521125489824105509254319708221923171165779278987438001394204021884276319521731606684095749267847187537186541404872830519703464938861811350872227008888530801345572118211531713362897897114640290553876651831232766702452122500992861596739296400760256562790963520289743517248540690974149567840440093512381590300800862581776280176709268715138660939722637280290580548177882923281238773414003210797794597417407796295429821323879022432993479917672146635177462960671545728980147508007025394201842933395486413826086837135522064882618858124783704198318174605450736059223451047488360973215139167667697344085126523522679499600619932459095744775592112130165868203405066011838691279255141437050058092692626817470148879784542510376682298047029921535862160807121440609243385495228114625317966285375314563114566269685829996924865283778499493237962800464562652525847596242039573746782939366876935175773844836564873621156034743165289980134863093029279278619904154569750918178898744217576919430254206211134603391802446640085667494426360665046651127410866432438658397030730536906811975719978300801839533091239393611122554627024778230643645976620773347664143953172774250177626106333945632489230777023098454961558272313748490241764259456672351166520678407511879582028537451512173476655803302653380220591481324071891957058968335470461475775195662707667291894395429134671804340939129263133098709451807018454536539816157226518899519320295752845074326296045893977314022107440587042816640505874124924470795954660050131193762572509739635871657014869100755538454949762489584075648959136456810275725407155151927953887592567542673688900833879350294386649256842431228758306516969105108771960264329617505303756997121573757220918577280781262983510822653155619252121488110399783406561532284398754350952245590223974524432462972372903809527315739235592262614291882978835827475644358442922692931626113736589726645497505806296748482929330112428241106178722077139221987532512052314046303973111584802879018282943635797381721310376550436910461280803056065117112336667183365736842599537433185353103722935555268965615985476585626707921973976491116910856364613172591682622744150792940614731647097452761527269496387998789609765525842503888811432616178445519444132614231064251862722365070064251124511887182719041526947778040643719959150601807374251344519621360920494335993503034237551468754841210227134028776479275302704411586042939954535228485293189777859283903204181584779860622593153504526212491016330266976527931046307194789302030785035437891402554808737219576943434642829795565761145249814089062983142720769545907245042681716613168588408799409575421036883839361642102089183899542800267079521624154638102529388543089001363106420266051419053753668267038674183469125532773835070901346808080507403590798401734365518349258372910383415483280020252317382448439120625091706428001123261649449054135488184028245472042747018537401106135990588879396985874397214788768776861765950990872886053462600548638520433439808402766896752251621676832974899660074361819052569122360171005209068689366005076857245564791853379047204503432603951722004010291345155907853795657702625589149328433014520642882006397526175160076636328624178772841268608749136325100472444166762209713659451557913880963684071190763544769065167803579837710518036893414452952995443884709665893075619262746031016829718281891162385601600709310869469137153043098297906273626874209735737946501912309320173775749669595390914273466042936087703908821319683717695912346329356865478532200742199559617347223236103688130614036730572096938190092322243066806788743047968645757378950606253394325438954068795701443821576646523098834920313959978340410365171214593663117367297298250633564577266079765326406323065656747728460611756023032758037154695066501942389837352364662174974345089145154446586884035422682952324201864636853705938530198157876401392116117588544599671212082985952832344250658585880231206096345231309792224550140370423839517061777029776755365875894295241093619787189063070158861349225059171055712492103951631518630105819410334518648609196970381823855693644229263180284509975441541460539099810787680795819439964801086507860109298646961638204515429265415206485874585607070822253938199810195190267139587294480554131061005478734651383545081536695026196981525032664314435075519263492194053893506931720166219182204130003372653091516348178274816680647031613766258176444912516917384256417907259079411406947951403372389396501655607561865772308248637318683045201728544676174976265149851972638749175118716002913151381816293725502259555310300525925317161790606287393450119319725416553468671835760124560329580563613101786867436671689111092540235163635460179722421216010920604919130823122989167445799166091156968470917055544896575666851850551848992270257666174345682752226149644463553771974212278868976302511836589110970539462086083833305254187869170627378268535992693342266561138806819064583460465448237767430814609464248455662329564029666613883919467570007711179507628061972368184303892478448048129299166986228270690378174497256484868263893494977407645154063001213015600215359263631917242039665149963593180722604100374354217036028782245778485535337709036099058239192936989896455493048587346197327333817249524546987756147246652802237156493201389860399001833191634104778030857522287213691824829930702259012435007713981280557282178933336239903489167423698871253653032092113680159619546586604451588799729840667559957489020042510943264399321637567166506327952643860170553494094588219813916071909391820983436084541561935739486667578051625193610278051029231485406494296686237827079795749258962423220185724032126650308357711044324890725879936755226583052037297648615085038116383827028949494617852801943530117831694884123485506928280857584204552929558711105772395907837714451486101186111188469446626400558647390614106161050901049439795373100270455218097950404039913342428566180198456708827197377837452496739243415157512385331297185337503596171180084624683994790749277641721229965942877898516872727871802881309978431175624267181962386948684480871475491006985304080622866096205372620339405025168586114871601342498971637644525938482209045330053883999695502416918640989466545221365166980553787591113820995990636647701944040538166573141840073080168080536073503827969064490093555721273030541318774562304734899112508803141685113604386593797597264860438330849691735312422548832433829568369902628483616554021988132613493369473708363693046799962837195422139909315975743384567804757768194966965500418171625911634556364129127151877259889487551337924916612853495649395410109053126955750383107182052978993650130408181273595080641565708554586773130253633774246156261728047323111352758242519515420732767229902930907080508170298799699347612011855640323920640249346777804375747665410950089704780170830175650145145797022545652122798009812979527347575686786732190069083656387061993126729813591475424285499301587752591946856477683206067274949253215970099124152869570442872080545094224238445233659193792943230378615557146550904413989484580794025534969616118378055387241300840663553294470096403333389804112489829891665269597772185526290118664695405452544581957385010834281359679034092957764529611371645466874093713411874930792564949284404435277167641179339464228502627147263420859395345123956709521060635606556588377733749941100529460595630123960507524986903170074867214556687130125100974581836740702381021167541474927434575355916166788908178112174617849713868615866593983456114375073518691366706441695413570336186961702947876025777834466862794893950005991867741506370533798104554514336813353239071932674183401451692662779723395010753590057011152514491591265249192225053686008918384700632462655259264321864831196364826709675519415046631810556274664115079815207608533433438878992036293900591719145734196824361722262962288090428873466818009341187039310117446402982802379633974315322638606377533680133804189751052403361316069331113896184254857929346700104582492712017848411748118833435274421942168685491003648795170905246296139717971029145071421597467653074785659377129585912371212650089095075116680965716713763198622486879907617084960915090690796036577525843863923698719516411030107855738039928196121893428918087856525329420204046180808327238944649622323198831090557455572837614200514426529120298526213130324986734180018390608044347410671277299708907683905931926753418738857226022337309453927393047671438014173759362301409192864798260085316959605412477458925665572381940009704797186763457389588750979716314304062487893999141619682623737577507320593119875370038938613103609793831344293440851298076195959877846104539486156529464321854744391443617055425828712229248255595274279908671365802044398304265416569046145672492243360339520844138568391427385368704956940811573062393022459025130856060103468979418403850402148960631835789425776494881878711653852155180982342161382107132178014505640803078423070983209878141948091331329603700972749520232271720760920616751348482035514712159115262735408178386383175412245603021194679679353191588659466276464211336085458288377034319549213965189134067375171371591740832437995601002925495627851539991633155681374330464746384330211546221105261716011174391734426991029841655097939044507718066097161142996886502788289341464237740730417161881525557257077735127110973874950453526376093095579187202579054312677821297760769925156696984096793160684449576852417300974155538816085419538616578190659463947763226220370887401721610872307641835526696524292866114793304413321440098571176797305722721881992181748216326456963260732752348966257313794364229737985975612498304026231367427190948425912562718261029896223939322396620185537628744249428428531732514776244796240111647406467877072587987564941391400180429166929810987430859480596284148117164532818567158998376786508023865273233238093399006904836773129137856551143168979427514274246031722152768305042415467462554302491738662924015170995887270831054476854044686285515175134880018915985435528566076250332485625222219085782210515700845547405552494648874193703430821125328869813010415919240741691354623405472790924538499296904517820709200714000644447673692947036519538733366797463642616839244224887419067383097010047688297680693110323254619062842832700746937637973610725902238172810568270965723129380963193952820112954291290458289126391472939958842782201472881253179127528947301376890535581948083536619972131714710781096598687509559243923137395812293677953867936547883961617594844305828094160109212179839855648778937256378522997188196860893188860448031951861603019304404862747038285748956199380330914959308934735171823353788680990163293306003143644005921025242687925202624062768277613713319894061875743372238212682240442652105112319031247818557629696391852813205046899173649608691664275888259407892185412442137127096257634690394066159021513922519665876351825082926254574638611913730155945393398778818803910374585935871083734041433354062796078912450419281640977806207716205253237300759441455584344178831989625322498680548620853015852619730387613034047293553614652342702222195437625144457990677303457852457992497379312185299681576643501953734982583883709839734220960798414983662530828201373843202651196601594607049907054300827239438114152117153385638755310656818529447796531099739155195479222426400105817007090483583393687964047094033192515210781321218997483501839223261989196452886850210703065241414841643189668009857311912791373385837972871728590055160761590777057868407775708175198137067635285627105111612341165173734537911902910795728908861948964509880445333338428492047421348074389185448799477764230693830257371013655973729836498980945272397815369977275598507145747176145567110714512189065014021474125654992558964907285281158138586990569307175194833348056754679358615533932540928581140590350011724978346247242439775535644635600813452521996720188202238751459388221493027523574330200425862873286097628447996988784415782484211395128890882938195653423669252515820036954535521136160656485363357958888145100738499272547358553460520654225534078119918197312670812270060650869045748895100126020149597077523918344408334930567420295493584998012404483032160628487244673272755821437099820118557594795444476102367576929802124167383605175189294647204297560028771244264675651103136883604993736486137086197646720410434958519245894014587987807456473137037354140745506361439790912199543986186549530966972302617142000326884118902519962709969871713572028047373643565042215841540175373443201479756836880663285482319072874335996182435480708669456669175059602426266315515269394136804999312820661668379732409964437161214317982843901608698149019270150197683987080313243614113063282037944522938318734478963626135658324531297445488696013964904202445506741437821202272293583973494368178468658480966844749883632116229454395466369971993796761486077135827347252622975444270597010450349385199460733368226112551351475994219131962374743644891981949968504988238906784101860098769816199220634965634036915988465783650353291059582639856550650267586225571393463488637084003873185722260431724218863624146646982002760257964923407200880666222394927195473444607658699390307842128089471676953655507093457927659292386046895707010849119409896790782743820592344721388121067981585050197516271139250218401078084755466860972322100614606122025346630429651547753640430227173696760183026453126355977714388900137228572698387803371597366019733482906144425837918435141872431026011762798674357967150054589387713202722603353485779566622207644413158499896080567735098541929525954611613965950784415900666182963617931067731759528525391659247793501924423416023759726112323547217406574275935853837365211074756748122794110404481348350709808949651629927494217207768815264300388797606159013287619845107922756685311197400116252333626785153358177253451597468382490916543269581109111981384213365681554584316571201035887196210104033149374634582711072926391317406631705129865679284683484978251185064539592903429087992723788991308950380841843213230244926265263534065408139269647177644662261111014258151098850607689565943121425039754690818059073631633089781994028135159047170043148760000161584580687991360458810080853008818608753107152438106922881885420861157618215692381635857464162449150095390160308480717541003323371731371830032383368022847554965531267010965890383457897481422546764018156148648834344936663143322569618413927127764574130008242392665998461050386640625284308917898585789611757531487372396052143887335695169546226638648318273408718693324505966674128755207320400519038018465282038592202015159732275473115470823939634041349203122171451993552981854036892169916415981930306043571503452294455556211918762058190759480725946913844994208686741414994680583054408287894935021493311951439560927651206565173740153185586988123781725850097503318121277365225695921639628170062436102999986865808961381911587392914383064551948831148664630683917060448923608143582916439279138860825177698346493799001113752015643054794134715752206678650688455596973089096393815676480809748744953040539214124659045339283656157650687431296976548780896302895254791624983033635229710411283087376922190531086229610717598605202636897906407819446779164730783874098008111865681253015397639886536441071392434199552475402468367782037488963870324226770870029030037992225041916068331391148130199547342522845957694554525155604478142788885216132393338784417618322336676234077173483388039623082348922254922313800449110435133014468399427446580991404436576547966912345326719634886530205205433413296055306103902991544270780006060327667725790015118852148566491078734457490876621047812706595591157726764183927307198267445986472639863161998308130981349961762621396783171255871614269658589779433150876172270155885359649690674322962464722529540418218021990453518434511096694122702378504081429413036287802434110689952889766924860670852144354772205095941658157944613807372905135041160866757681275401366553336411115029594024482058403844896961403447952849874424262233706487436228957223452278850188265859488921774075567647643958371737018896501903266830524815698367156041870199321111161122955310238095452133658591562606073467079226688707653803211128378748616305132903708689797554791609878036200688686422204541129774915209645498182899044276696261899958906563969406539581327417873325719273197049067146827004725308166183798526979223440370516292688685253648263419722973294058683939394920204101343976383917220179151809103475147127768167201997919751262762709226519369933124423381184968701752084140966537465874414604026162859925945326551192654375624017657083455091702497235667340236129466195969159757400281869877653423970954537433781256225267778932005847456982421142376632768221921256758481041309767365418188434407149474432398655223465124190158035003690048284470785315386819423101827528230548690342689970882922091843129290868420236066579829364438290481884657042841606595430212676911032900345420096589324407442716772605431833141165532319620355635601063680246468956640244701288436773174246157430789178225026473363341552697295354939055777096084684133092115508027434533403469006645203354716230385470461549125423321505306427280811062637896122170834909449467291825070553679340783454160535851121337005182297385160102052188448534985245758450880639194706961447068431792766952244845479237475105876718281310155769184080951428088055530573589800347722393753481780164302848401823192953902289009665101766819719239984761433700800793038818376859195808455878868261856796662015039962861612887460882876721136471559139311763766422084037589583075886319813388581845942412377228818049396371338823925932726732152868477452746582786153223719478960410444969820120868784471061256068474698627742219440099627887691185249043951270812699887470740245962449935122276683241495031383095864817502986904162345342769001305364012627327493230429351418083835699168006325239402535775875313963248164793621692594805746970136674363046367727913037413096663456387101317186560312753919926360354537090607616793912882965021154501628838917163203352482942149744750385718468703284691374847361249206314929058814387329698890024896794224011195210061546401543350988315777607258716477051743132122851338051991544816703782548166012388798048157423204076159637689467583919515773180516206121698646009411808975498601867568266523977774558478334134177358865553477285754560712547879207221210720540892544208854923624224390607066651237615720129930538560463230439541672685598491780980536453706935076865720166921718270839268633764597233904787867527439072774233383188136405996188892305558826017797405614947741437879952532031150237699495772802944611471725652320710559721090746820270773854780811198330916302279341998601534670499235970998067897144888906160761025998306309707838123354656230825383783569002714106870823088798252872539791405178855333669748348880641721238132508874702318527753724601251295623655715448740258564753907394995063948958782720468272986200199932911716701271618722635187682560205172568426613499563295582800626667310878427782970758958253076208830018172272998175009593392950548702218827711969111059470782774099118043637658180257830866381522170002394600589330318016691516236063895702878578371357384384710517972971381962282219728065901537153121433060135531523358765816711318681164109282505161546005004167403344364259867051445164085450805160955376012008796876174760717803202664835588596886969020052590909935324777491242127530358068561427624536912454393300983228710304260889655809112266746641608934959766912760209498411527041754583801299274946019337708013875094064434572709130559786813896404422102309239015911314583475079370785230236145905911106550011261047885204498716582166214220574924838082958015645600655673287005107443924442063926988759396115212720825571309660106585246012491135281450581002908565257218754066661272433514749441169875262214629958797737841505836484047137513227583621822499319772602282530007359050403720864776577148930219048418230015961569029128169632164963797148933486790130325198682834895900384681221344748638846779578036934120496025116886596016490806860999701979753565372824345425226619698889439953668274033282141448574231358277487761069930337523189844562139172903619558601334463180241490965963273294555601830339048710995546148297289960740039757733446361058062786515034268457379616862716569645291897332818372473124136284922842221296380512089877638624323748851398433475256531048218560522887772852656324216288871494774006781678273174429304724563542239656800033046358510860979396597121114917101804010258274346572876066132821713019179840538796061852363544826981695932924693408229178562203895631519143857841670641001485007324977020336958588299693209176525430387134257705889524952856206032849129226405377509898538348260580628979453928490976112809685300813998639351790368357426663291119344969083872728197827757716173741396446293486770806498633162407530846252862001233408031289605162884463394744668416012841409563357904703714300809268893038918683780499820798776000105348772318334836570095414616388970568541242140803586458561101154917619682376514844112421949932464481240941682982411092841599883434002868766257487999715583348839986860327697373932519116334722846489070754986081386767070873070063241227947378559908558619903011020159420741744954260614708913815716674553996086067424551700669260176308212814939819215024905510811657190104874271556218966517136918349169450461744668309753564998117679673534457302618150167397198282136195953457548066939640850515643517233430454491859897833949546113470343095051523836002584699902427954666512913525929254650608884764888121593038649499001773993752967777176300786250525360570251105935216015971500306550722184183996345325551085694475081895544247341352232046897195052430404755217602334131213640678857380295923527362521411236857642860130221704942214902297311378280263097886527395748564946388128031239196496720587111527710072534919619145584336520869421459862062508518165260578852231470067770206625672119615210976411843576390423904747268403106072842464619155928238947477979994998018569625980403941296731055794098349634634618034144106424507879875241516921594471282310360191441137681349382661241822793794878564615293665062005474637977065607360017291122139468123804598608846360654443491807843171499712203340743874331304681550000151500467213981040905636107405579440579474821045959311419798634268032814762250145150001401407499460518029160203437930645297623695002053826580430706990042715795091071980784478699873880960476140342284299325043435307117086860061377777201086583239547413548966904725966379361798087949804069217591396198485534691780088500812342262494164308323894013622950137391576341695784761554160247536305559614786810801016702264637656502286305177945923594000568478096952868588220716171300420196267575884613113820610898963952582324890147712194801365430451203209829650304533639631797724585205748343270325340434081220949714530077357681984805111166410303019600112880441512466768560123400779368913350955433711551104627543645954054308246257865013660864708917695794347018790668221103379022899427533062887289845047687012930590423521615240980733641132485114503987739087966715218996215927876258072297888732757005721355569489631787537209279389472184809440521400737139570575612028388836050634512670272840545634395435660140702736186098663720405204124729783202739973652495293513103578254381375480185311830407291461153003168247215385445943564712215294179735994802391852422400978795879971354432939477188139191829242077763116448233353522285493471387780011919400922598458302754043042355440981198025559527572175314312803475322599068760968381976173645278049100825066692697860555449462447664645592284138400095384525349947240255690787465899072368227252272482781872112919124122925800799750285119029050452177340924850992409324833711064254440850370597894395068284165431374506929415307081824879174950782668415097456531892480939504457071915555180806911165775935227999503229940406139746838736601588901094235009473639621447779872332881668586380417804663577515261708900020243825452982188472768608984635035947654868254717538497345611754453076930792718034247619306684402300878063272590171136278824511421273237374678652562485841722627397411550824275379080141307342007352080779897278057697221307380182687693277964749567240470763113084433808661423959364713942191156955542428017568252944026151919700650981511244618642503500407794197676249795342373220982762599083456149916859943659180522310625854482820872932763000048054752239905676454715333072153524839904953205178009262605414698937798518338299758159455344183680304430595455603285669262481537228181176651240635631565994795413377803919918232276680261871446599128055913106541253525912463882573629270870454529603118183819625625300830131681574459769349122690637649669827954355243754134225258862610274024793848290669879049962926969670930174112375656782641874641196058926352770554113272122274426637059490043517751078202836203736830988385629693614934693873618935673554533338143192907733513890050644870737455702526573975230530620939064210859380787234994405299413480324580578032289869159813794073075216342126134003724544256324236575211779406942771206116987246988895795236611741926863475451655433549970361519031412129286662332176410032821862500572399373698227489265035332806408950438848807303880495753934018748991996695244728487809491946271041546375242740858907348849114029317293596395894334365838465213704718444612316266273962492400735766367534484938942887921983927206455722427091897095938483039620870810370863519635518711967102792250948411573792922757094308489034496113249165015812732402033062212005221469502587045012580025600361708279830708681492958140822623564736103161889182174264337567595113471758047421531563127753814832682261507300743951221940328001088777080527446323239196282473323678850495322637650126092351994543898308997187895079680715531065835481983355013579098342632676247648456731395299145911619801570214028943545532282516970219077846203502930467273376264445608704816127396858964311923088780199939721305073109191297419363277217965442251706463606354852261797513350884498842005547068792838957014123595673899703367767995004796611730925988209780023154450934396356111426739592898871215888556981951161681642829252322163976577128913037579605641266887609359127583363434653947589138896420799701254876866300449706051880051258966548166409749391451527756253571137452527627951633874286135055699203779665744095357678839204258707149406196551116572588997284142727517658188768192321121120149452244702182138283137880515592156594163489053941326225740039922669540216085575485772269263749907468725106241675022155786162476866803218413170640344300174203698857996326087351227197369926479787745490271663302441454948533936340386805829358233203312769920019312540882722489471238387429196923306014215409857108489116330831833723454796732786998153095025730708023773988243192643271012793630992797293482039384693198008479377943381112224819861876857584350139604710693977194275799300156122751502453160638448505369720715867522212118664917639385792009984433760047946682932256520435155110374401922174935965243477556197984637230470929952209426499315879723271001071602930952912908949877683983738896981016573264565077916760775566274127965228256760060893013350537532911198843295073266376428494885087186272084972661981635715720642863653664602241183687579661716150028637623570495458493786376447875449634328097554268729229608424792024613567062563791201888564394825197640152570572326916257688517427346449763538456738621543364340546256045672650168276638828648375507286146477234174613120642124717313474891300885471618727496611394309421597697574620057759684430867904011449076529162919481490219951113130092918731401292358040869894530732193304144040836181528417161697524599084926591071841133060646591171322145917116896747933251468860575501716793296817315910321563593086963303167194660431514030487235024825932762635017766734780885852887017997528429014227134279015267660738718773268303680695542880317885105568142523670136470720478473913797889246804291538145909111819380992886704898675448491505167992050573901979032157139137777512140309270947719978879021130690914287944664995536707378248116295983577751813480362366211737336009001852630196366127385607658323542495099425327676476699996388397913628434978533471044636733917915537158294637463632767123191791610764386603959075999304399755037332722468632869348834087171449060210582833200526164745113727492032859186674128694944113886490975385444644297425314306465616385035730769520639865766796598368322076877514550789885123435244056564680171081002614144605106026673326573759280277068874949920421408849804571543055096105956121006765741541271855491645699309259188265132890040535138418340732726918377451941985737713833073074407484942395585578513313202718697998614246302968375979199427667237203530485246532164148151275082037957447526629510626455493351051912421203064739377878205122377495942630047915590590578427661004558050415062580824767392759920332234773198270149318075443008023198842766970470405173921873580727209665938363169378963121557577629833728797782202580889150960685271648374894943259378508021168476184920606942973936527833592448098077713506304673387230763242663266051555674756310306171643978350674648711140915285145462539658029603763012448229330470886053865578487187987840670941781925648484592849707273307077453221796556851198201808593391901706245494936501767116051211063963082302941463696061999948342498770047038277824264492695450751711845304586217271948871700913681032825619152518992910519979109352714529186188197434359598378692731405743773635435455860689015866178378468431066001679991748373739466871910178915648514354980163186088850168785608627756789385372263656000180919594542997398527724872148312827182552293134879374106591859959876352678701559238634566910834049119966755320589225278114072951734616775789436995086000749178296016231779281199911808794631779938180184608947075269552820269200957393229950150797823584826024795563883020723735756780864932006830982963221818029974252906744994648949443573258220124536551172112460761304211150643839063207714133492600288164283453194463396440443169231295013603438806112445611731876831668053788702425818150626291328767218808596041253876366510798117245674949924037200935133176862305376618152691490594892567897313075464880083399986761041023568571287901876323944772246385123769979605297231203653394088310626048272501081856431222870457073194465538746753122805208466442055080121517454660882278608201004752786919551051369763564709928015416593401508852839142352929563873161543474804533694557054695971703478665498615721200910129014742502940642545784739950555019316806324490181284575327832979198576387670677093650398536254657737425290012981041530914811840818119725749497008005252233739420864095725703855259208035260169972312641196786774079084593779517919108267949222796576313544686927783187577199201207335725302073113827019850098120424876096020824815586284064225873795823217710140306906572318850015620745280854599677088209755481017633373619926448271806571116046518534305956933489223248987237888527573995939280232707257466455796138943095088680475545112205584624957756596184933020336964175260057673064961679975297120108866614196644141135995626364062784093221813475495593425980926802020845293553022346606029900326098820438099779974934446929831410734239522630307113090995151300797258423145488481795726971860370408294326430407345763851122737871202168012368480178340213535376317475865480644637433391995277676572052072213518478592126701268793151650545963101090604986140932644342797245260337944616173393435565254682133332239607227071619783334816757940066211371873385178021531929391001354893143996175340533458392018051215186830393624771897814273510308691772119344161058986261317604909302637074195360650891819500700733413588192468998089321269785300483773685003040104393213593894482888141347181989298588018842203761289329161970745972690656578291751060658283585705931104503086418872498703486571126831149226590242273077319178284866745728831526115385273181007086903368396297101070975319887285685428555450629392481052949304880487533445182184977558338802722296819135428383242089848836643452977862615565461587036156308371326431794335246959032975128660668099344431239690865715410526886551347880621394761925512595491226510216300163756888467902879019226607864787219380694316177251562950342260182621467808886196740951974212907675319371694830005769202038658930216090449852721661753461456500466238748773554863274821136296944955078296552508807921068471516103923613350466730415456885032863064068664062677636060964087300027313885661553153001803093777641435214672640110502513326558524248092997333965767356101211942861188192110915573143367148073967131412100519444381468298074738073310000686629959135986304425707753576226465933514904395299949803058688943506994650468303477988279040654763614960429832840796922782447263650366017966111576104239923683717610428803655041632973861531504832294782145710535563900447203045974836040949617557337025868391395736179667591734699554877083578065542171988992871952427821657087303314757656976127496690268370393976776656699654356623810633549198225830897282765775274963285876553077286217989577924005691955311853431665780868762881448823846099395891222684300412028383930380465152329620632677479499845216430456543296306457967437610557982997694099256020232808353333192556551870299148351638967482005378553265996317858034462970098097609593861785891562210096346514822959728482422406110534104720072708052137932370680292469896122717239750997884894468766885931662957722098760010307748786175779462815662674004602723647419592757721524790391455279311721297815318628345783374561786403788710623445556108297446211359482394192607533352151130683539285027496734666335123076412692320337214336459138391287775566212247803422532767647077887389113790407056574456710184465710762322944406601803557024924570987940569570956671327430126631661225223002635907614496767309959799870113420930919851228761660030475728972747828276058669014048497984596047296865771990140818757131426149215262659225777101174045533446364990799264593058145313632681836759413594809702703772828988465584941049206953147642355993480371013949507442848396081931233338591617779796618712565025116295125694935494971126936114836402447320363343414797537945110397551666039155523282715525916142875694649402743707768111357105017022000074717963213619235580003930222797590452384373349211186124324069604837044749061238589195285511232955808201666921047898402139824284090385118838645641165451820906924632089811248755450215283605148199844034610953882512613148276692934702020497910405561293264197912935893357570239641741465357592341715801709121740608316608170801560942288476153631806346442081047071242105151298832424390847655113056899925851544328033989084242819011166881072517324239708861227627700959659438076954720126900790994638115584213959525043649224185157517956964923629020050106802784782891378284441117871240158894852864776217282261911434706901532609651004850221268807521454478112896369443214779949059120119758743970406702504436704155851120669232674178233984401574489817086046863861892929484380983596105824398794714487351693362235536385808520709340650516394211782137134765479967027907943511013215730635661370194738837446203615564902618680635733755586695662485689027674999477138623502466285034879173724700432779446758908615797754577900345523565861582382287893490664595438561239985489777609918321738940301947802507348782026386104265372755055868316692254074181077244021407534031569080100934610796221943640596082061708604380333307779696838627664490771705890119898018327960386628100245135107971311143165012689358455593018745379488739272227364774751699319822156312599036446726784787675969681042313067765840046404868496952724238170910188357038377796389904994770283742591447231590637958473313129961342200922074489564575357787184768549539369201522561254519725707998861435623068049138603940958604666129561067124477966221789155170161483699641736112066455472286294937019414503132046028697938441143150010137988746446657571810591550180536732704970178327333219362446442482038959118705203052245460925103013173781307032135589760713640066301449369176879679392289508487701732394296680036168828060403507823823695433978086638156410312852389614021066959806992836843650568312378770055132834613156029818234303032677766512523474107928075353137156520618764655884663999754654830271739943748432356762639429498717514578820103004505232905341510827478056638515393614994692588192530898860509720232991843069862696540285538511814147531585698200954917489664028486059147504699385448062644290488077486323728397798802844302222951589914600413221672934829299347497169733137317707974709565071092586025684053740023298811048105873744092158449220506261401610744987091581705624172883746171394287778044727230561337558626123137094781383925009384510513192780776742515118869927268570841662779705969964162952072038598611263130398237586033841195155127206497837981667385433700443718705784983549310238902171528174251872486272276980624443190824761911503821397849279238765496448390467868366256780394886071489049720200545388150289893399062982866869164910139486056532568750772516254706671908855477507422124056622181464604456428614688466269793876457425593314268466182781577869373935633753557076527557517491639063457559152184641787305086128562451066910807854009227615940731354097158324873324826848222901833574759277857865339694620860870968213183740011715843605311455505579486637297238620424998811567557103958086358169618312534710827092190815033998584178479916275949332742605016623040771457834110476024808572831725786957859666938530785067179109543007006682873327958408186650670994508021473161374028029593524880932255302802131930243728392179181798599103680903894487878872861904509850772706116665322783668874301000379592347491428303778435713137310919775266128603524126947813445565902010016148393754820843745944624895787251962006370212913223312883536471991211291455810499876239025823938733292315567382805132479107811046981698650258760617068870223427625669165246188022361676538192844416707254955507908758754754643411784272813570608147179438572379820682582433470692379380953063980047728661710400363740801892300213145067148740168420216991657453632302711044640241997490751692866901724681202415273017394293795686490483976035169531802407822530489221651052819312033300365073968711952712752729245125776931812110674869732468982707107053391930407778764883253815888190644524086011844928103770186193111938633410892983881485715591603169757042469185570220142385603272725657329867687087571726660955276342753684509876535467330545896045534514656745978983286361282410358166471634506652485367434297418796899026831667817721222724325943912982943528109108311876843479547729368280129686166040884482098871393533403116204395664575860735297309001516727106809486021069758589475214498339185695618305383759474744803893620829826909715081493906338541170811529062911547404540011254141011214180545385222643519327126051978955501360830189062309259903559150907023346728918343287147294360041976854436009728189479948233831395529276231887162690980793840266455132427794542826018513267193852117647335955459997538984001614334780187006979448955786150586236106491953137732242865378396642407380053846419675060954740833397911767049465005705157695790036661677241804231191095453612036509902116201941903793629324603423098238141068303818635489018375739473095218765744572379933486924188233693019580504253642823961218471038078086945506139765964532252638225385116787693292247713212058849783019855982329889192447695386682042179579179392426020862451106465161397172502117021033622762504359203076377315062775432124505803079114903465416788601332083656403706210097071763309150548235989817941614592600666067112167649983064816867040639632820917938975625510493347122788022182304206201616775336610279614559234010993737397901145735346477438155579002068965623827732243005649987745581963301564075385464032239708927166602922518179995392954312196685239425173131268866737862354166306838168069012259012539224547687470884702582685146024550265756743600280804359510353858924129111337981113024654886740934678888569018861138776352766242515691499391075040274321547891725724701613222298282665308042511170140228003576533628354319826722460985467789658365927200979054681525097874332952070234560609735728544739947356377680233397427134511930339392561938159828611983336218412108131185326846175323851598683254609301113657653124832235313407133833821988204564473983344393070277729018475205108668934389030820093731149993064091834435817453998952583571437292338491545270249951639959490229775293812092528612202645926072366176749816635523448725498061603658297133112211141566515933020822764652820639814401300774865091183032331837187409251470026733406838107324124990306472220253249401139395003773397659190966027539019488049128457466374304645370358112068907841761834975959004884312215875630805680205818431956772831756933591122771338544932938198517969972412969135011441429718024601297852460089248620750908251667582843720302100021429234817403328127528022094970116960419017000320285812866546093227575478719159896453662234740322278547743958453355791148260290814842241130287808877513528914724861767154425899293365211382364377229701264496759758910174224718172970494356287201518574440106081744612119962594591306386041408115808851443661280936855789582293665212400384423083844750787710618036297397093589231460312293966275913810434587918392548260314257886358093601574814586842250479321740265888616350503419727658177321570452028848815500002724471688482895341840897571540724782543999503331602127002891766757066406692154432426419041442851405044043184994040903847906212951964140903472504686742812229154658934209658752622395600865163905966734196825755430566576997497670155315734079451786504337006113058796830081138126328134350503471252252307585351695908246682043620298964018178822609243166685275256020007577172666153017375933514088504866117869588292410758023415159068631008490302133433933323386520580245818047039851661591205678537817257399904674695993391769078473020540106575739465030824067789739137727425513846811745872530471800105869815403302638952189960899797305925513490453455235225016352173685197749781929246830049319531347758650051409254543326420053494916822746546553704517875947781649664089569612498734015809196735294974793633168636654000021011444438508765168106187690169725950941346346754929734691611362275812824680997891228832467023038878861099139294993658326055307830700437336401386387626832635993608427037062955954759287240196286092667077642752248085011345257167100846384565118970176862647443093581158637136081040727008356365378872390092277824771655453461946873923828876834241706533166733365060191068057806121898818506787362561020987116067955649684560954863206740344864213347647501068832880200402787666472736707464511123348846936888671713288954809056396490442398201991162591679963994834164092352291543384587373473859294045487699714277998708607777211330474958886471042556396074708112818033642854484379486417116697779318460199639155282697198408196891526170297412064738978478154273843468566279012632110906962856415741807662144798345606920658308012737836705355314624827693743905858481326698980672665611414565699565933081636047240872036769546642835220908726373609311958722760400963050008516850550008166930572916875345490281512171801952424498243507556250946433390539684366181513440577144086109544675899596871570977392899861480692649438846641179191527413014498943627806628099302003692941718415459800890067970980637837663849490158855150098363164461708343520046203054070537836294871089284893272677107820162865523251500767971603486536993440882049084811382030871178605713293488177522839150524554319785139744194191784730312072727444003931667928157938583441412805535125797155602931359161490616719033980299706719333972441828166594815697814964481327621487389183706843114025466571940108216745004551195873082078544407538109244339584301667204115310478236035458776726422238745838472470527019895485751453655249050247643700525345129153349687809913230050953745673820604989518386304427719072918445253386751619618902562473696206981339125656905207046475646262487431298263077851144306803190968716162023760119225823006206951945261192904516514104176673053480305006907726112707335853183423407222120675995564886783374024047503451514907062187356829777399115639248224162755169689318408480257450050169067029701888441207418870552616681608808679828091751424731552327013657817147168348649864293247740645381653962811643809040129641508387674600948210857899610580234391460480847937700947842033329827857738804557597147096463942840263725341464529355901756492815522523950236144949198013406511379106717185571751215201705054368593744304629797510954649993192020355432727794836518733901149827680704608472433163674610938787387694142817301451523073274530704870633684654086727794260193640180852211189285629947884891046642827765431620802710711710269796145926878939921268407428251856710379837121162799616788824734226758158633414268263698278886072222427834663825004685546216134510895458982819090643157282639356404984280475952909467966241850786483121389772841058794114686925964237357202333479589956330951893014921767388643530545234792797487029718112511658381334476035103938051411244987917911145467239298704799982046288508653947701376135571020100936300279879717215147691940012705317972374190978994835059111792040845244728149660244589202050706745495664199341846264520536622223737881507356036473271214381553752406409468520908011385266586176006623456217216544854271646474431873136990128316554031024725656217301065551438841897447719330336107603203829591350012877546708224924156899593597983364314186540610613744616708985578351803885077314490766980370739106183486522166367880473420242776197915266779151270292606819960461561825707020561054053049870256004324833417172129199998820085599842557695311991966136149619831481443673668732796008029880002257008085795402311656259249802953809205797781940326684547689996640040611475880200861820428809056581809757639994861946277326867541299702861557399388981164545577483785451839027972161951583889847892796627149049512910540261256165729250665378535635880618404828812033655421970151194479820071210724305178212895313967746263497565103083785871005575372587384756514275390814518110353158795632409008071165871191114962126435542642781756425144293969788117205679120717214908321453816399201180970401119687490796427599451226955075102045929491091623509432256191766896158264203699684443837718480004073626303128163954463913261319312994765214015559167429457687615194532542690388628998794049668728769668525801962214401355269809883631670340953661710573611217914572779674005430915918998248229315905977310549053191233354208820648599504341542991180794586359010569720812987955145531420608633510627747946014569885255650924610929478169663970103575472844353303395170826198411063126730167488897967898343534196771834385767094425098610276676372991780512568905825683497690591608664714063809066343104010063932832178733233836193167304937436722482018021304677673571995459839240188378842177300927940983757264137916767546279487392205877857577961908515969267170116211276321856679527207431256959234774114957565952485906281161374442809588131518738854308802880601339909855796698694293842515800258183138974002057720682045803333595321113231256937137626235919071722852939547396840039786594055975189298556671361240245086972076088147694268925363147140918675035470185620093702288920965171108703372723262492553879513831537610135653327269656702322859157001732981993473203401262065267141061593983943923550305769737129462428678966118921738864757275233506565060740163742743274567820064595868430682499524726205666996623485674156731010419285704276740217096276589854306303729221616126055135072043801986808500724539840284378546125923068006262167643845234122922540246033815306903860452912947323709072456484515786322978408958877694551577525155674248623292672307106963821723853078776813250156557366727164892368182720761927240466123092736316292558495275253317481803316063061730778168368938590790958810803550747684787286927928123235543674398825192490221583266029385565265813119919369865585224814450497446091658819915562197879237316006150979928684718546190338220224847647464741322197575622050959085846066192935501399819757409519073999090688504843293747519225606454281718697897791332003806367980417258165124309512846428706477064895816501956623848189127317991670443008819247284277129420618259202134623354758601412099262317291691796489489794362304433231498350982002593683642788186722826280370405707661276786654222002037730164861985514429399393377724500036520808731807646433011321070386294564501812516070369244578415641569160079140523634485032715809533957411292905337354836916393981155621757892072896826771662379650535997416662401203729470537981149590918976552842113293960921826233222375034567166146625030394150668598135465723058255749237610489183549948624281026278339762387864399548906258096916504396859822169130725166276049415328026360028655183957607342738033346050406773107886545727454714330103805806114554927907110944446613117968620992584816678511383110791056287370126200959529351610317516721639248490013225316229282220256675272865206120570189286922348059911374317291695905236790741050680452922741817677401189383868038537258899420129154193196079715399318707284490483081910015937107721775036521169333641703435883409745379003292547364736258273013701080253860621169205640415198003313760814639130654691127893755872183038219068981438452859676543552739877245602386462699079288008865607144771021778104423388042506027406053475883805627157214369533033740766353532833229260445281132357874088556980394448652891629867683365429132452692787632806387748666228064051379659455903473149823361832680168551767014197647306393765141336955563499224323191349189148260669423978783382931910958393957317787992740001374065185233732338793201473560726089778931716847962471001564913826284390829088070044787060016624836562172488662734266513668507861532825518290973074852370321740361493746943956814380525989132775121402743940152854446660258637766467324580832483848605677875998838142172323276737425140570249466023781274023701265515049196720934631173017395093216931657507032375110057025116246751403541175803656610069629770083047693408167619357288580801225786401553070852158636999447961836625803349898580586846740209899105940128035827418535610263478398087689133210608299823046112627740409986092682395559713784613895900458782580693498916674675002046270038624129404585551831742220176922948131618350575924343868407763192227016956343019223292302340204059737106316831422448292248915345592933340230760060747253207013094303809909402271898272198336580357458630388751197066016557936054237516476652848912672328586358775140347202146884383056720929971298001685509855027100740402341605809136180376482831118441966039383945743260240741593269693545550670476119294441872363306827947935692699139506494265269628508991645177493957247546810700364662267853370768360123537302679072070833120566466248615360633280168216563961775918185578539453639147697465062588886603606256162501815129025368857070822423239439210595073873231604901178507621446074871866411744157268794418263340313170446816510549393782809341399679654299552176484634353881097877604604354888728441606478138501065972017383569369709265087204336258509158774950771216614555609568564511396190484147515382956751990035137733114095479112916295214141761686281267817116464178835223769465357437430208887907307096044348608240355891546704184102891808433930331257844456531977504530984280926926520684382357137853017216577544253230955633441767022938777042127559459026485796715725527749843735433350962796406004845983841340805756706949184416919810553160929121999682721790486574008028858661548866033468829227322489732233506858231960012571129352246100366644149294727827172588311574052635927570359853756216045105557760036427730442349907730006942964053678777596513488757909705041459579122643059565017109923950297154024401221872212815907755821512746922421004960775840633292627311627886718902133880368886827941879915501278385427699475032995831960403888920412955831439025133054482362681967599133801435229567942739699795818849469724506968356669241351048052238883119281676611963986329637112143847580551691730489463524929187421071285924085904716358111127229971439997325725077296961651410853461888201241036408542759138196651144360546038304510578691869549719941313793927968239503683028984926752828533600209186110693046858915273191008383839304776981110796713166559165102444825050688085414752335271893584922415542787933026055690514908735961817779759257902560111998949318702277305248635963835361150321132227908331523421216635780652946910140027121065819094513456856110682776071463081430722607143168567652378956080941995904108263655400780280555706681914985149267323903479689516858009452310929276507124610764386849709770485613384261929869130789871257355752734567089116521860422563111448539023771163191628708213626703978313694435384687065559269615581918508356763503600251136951406589746121829304731801789237615951677239563083006443949587989032748399657664046398211789739408480243929564060680400092677905609190056088243517185821726464305489098164216261395039008510874491348552541695204566432904900944598709017451471735351797989054060901479308487781290653704842660294662899656676112500361137971795554934597165660692613340419585785615513481139159541041086903279351390808988520326114844910789688298501347294111315515149761109429249613342486337830228231871146817918960428467079223143597675596441661963005513398701629849548462792953455226948938702768164305852181231718779924003290592718715019002320612980349192128733385322123311121968527042644607642026236174591539466020996425803855111692198628115172931584558599387429929604551790412157033863634127470145797342497821030911159386032122383662190670131960233490619124987798785670425685993598980424511174560417519921597220837647899946532508965570068760412459662920882970544416379557339173252344398826599887257797760115704883444460872161236482728336628261325353902224989178403051980117493461366096580944881891355021919914080654221420465194067880323394014105022792476198264394283473514139036700720355789183575606502830036564418026680974470672020489319809615076209472463731527487751677834184942811879312518543950624780634009456687316293507962670531321041960025816292271865250866707475269582162857354426400145688466138768348100118806973798729891326984124475340685511892244524894227501755997730235344682692432170490262928227004162990144387342488398236814258352612470101738771413856952817963625627989033978462917205366414274479675174684767691284685560840095646639928277119256485355410705019123130418518319189430849192740990733706136193859612235531410156026659761659308273749729517871292708361906228956869324845913142486346468390321777528029833278283110960859913301941408165871762551764671927896858851558604220758685248136149681387695793253026750758305699314303337187775084030291561215495090607275516248481964084717233879408706090984030718402622067462470144286456979578544100151864897140259287911670423435909613498015922895204288703859832954279681786396741904262648349265438986170467478215079598317034633382162646381652139121504715643852799782389733673624025009721965262076142804581095229835475636926062951686609386711518516335735721494351962079892015990323624709872996267492981455605033741713387932753125937626495635554507863434242171455542646019692197141344081291208974856770695449732323794698890367205896570922051966417969554642694258592100623798252383518492536791088636636964350478740317001861197342298490959356342328311236748409818012265752168038736337431314473275478281817355043889444752166264159465805475795332387168964067155365404375111892952598515661886687264735068668338516738198002864568096527125333748949983701173397743795529102756664874351465495964972353002775837254466248421458595662565952521238343282357511313281163025861344961348996389294650717405448312073992902593680304266828188131837786982175958909205302316800002411093800017068300108092601752039968312361409110308170965774397295055425785546628547461298765751575371578449296746973008578380792393538335647508968203601444851774377448190893584930899407536246932201549926646106067549818316322525397978220811773017349725327655877638050445288671407857249385815641717051858059183202467051448126996894077138539233808932816076771412651896290188706231253298734645389088360505554456144531345300888028484493179843194748012917735824749272256626934617284499011410746416810032780787855302887449195077504625328156456479882955402785486595348244690811007978413091713505217776737690729444087388283510082520451802074417347466232522076584879240737109491032394703546426059554149023169905881191706674904146784251723079132031053952855644173341015554294639872248745810142137537461496827262613508283249165975311941741442652693156981962228200105222282805711766891917108086712811039810274550034275189038232240103449699716612508475419205102509286556795773145912836208105125880271632274309944487325816031442927438658135895159487384549126233155300944017732723771159331934168646888088573054785301866328183159466938397053787301679663603354677160649227645294548392293484931052338649523013223041815874725208206259725935370430460416987129521488773430595848141879396504135495857744838000941798594499336063228855938420899975956849696205148471645710622667833821104371595943763630577107929203159165359065903413855245175265107388556055381076440242368629306538809567915110531533859048002143084248963214948199077896931883712240310551590693947490571852082449083822694198684288887349222906537282504997110826861149007987844426170032294548608226698319513222810801521455511927530868021919918640413610007600724090736399060243380512631561904454420045431806900280520485192182688799472554542772418588133382892986192533091047056682128561453156921169483703929816942608628423683275795734542489194312830214245231750021006306445152787398379056804758508879548206996432135532314389159389779825084719671694046555592684415903308652036631298056705214404395335819441566456149464839354156100757190302661243103833608260237699261789978245667313382860731291966627973402308607031973839583351205892562102188660525340236993776391195820108639416457905339525661279235359960128493336576101600958563328772902837918547741424947719520711525875433516691861268510834275132590311706046408035268552890711305873765320880336889644666236034294227540712946336239336060620688921328109933363521525282217351497405967332113026966063739626081897426572213562141064611277813066514062199412883469322097671862713721316261559485903497419034697168242032910614607037060946399277276044168588968064713913273998623953880233731081885974585429612630319846335829201118787698989435126201760111568102656534036702170584250017563882418242108147776468308985826576930432340413958095889757134848534179770053742550591755808373334149798846656584982018712346597271790915095344407535835232293378241432054698430785310043047848433244061508414832195455765177575180616176932494530689688603281874380703991822364920913174966928191523343156257004581540505421631172184909779687522110369542653042373961180079601177650052539680842846889596041556466050234527568525061689138528750708676112531322464029832711032657838441588982505536478609779876470969185437853182976664143156934192401617141094447194468602306994977438827013145723071277375147460020004968562143633241802596686747510206006669125524054496727726202024158662796257623940839033098685518150092127912146849363562121844585319098653306149124269714908827170679749595267509865780854434539879743704920534494694054039828261436550168912397828035962454682191010276720568742075031872709497000268786125936568149433139120449896350084491084513119838064187195603887067654364919682902450359158913124500035752630359383267171214033091578379855847824799011076966393638469095807856656373731410014094576651696154805668942017387469465287179186208594860949327790586832964194650048050984901332259942666127597375027464502578136411919925198303266506688553533592879633190194619958936150394394063010109379573885590258907178213722990030784942728018826427288097077814901593075966496733374624572536126409398631605689171798677528868956636069960782245554092936597743795341186635864965391705737109182223852491653987109590676193116362955911405064014890178308110350159374426062967199239281714551164389544730636436057879733198778348639169416563708004355422605628544673377076437596250920762947678558956265747650406414917154809346955676926637967215391131558208386168496169816162625366772163145403303780597004491731104699319827756615881134336966159355941270185323484951862502303233998557442039957482874293150973469809564573275483867036148650951610313211654370683440959155263004253411543348192160492880850372123630912349153432931947582196109113490103024930360981939842048556699111097845010780301531276431696947876339510613150043469277603167249394884621788809879479704908686052569294386011753767752093848504063616958714422069334391062721854333375101351784217730359095476542241223055333903204047944614463858860981603533868833894885848432145410724515176658496492624803390447016475567634912823499641297222254093060992102327245071459502115264590257915463409278469239138999024957103707588880932145992390894557053640027163317499902138067944866178068052362168386824780182699153001909783661029930060264173272609651489767901426398805944223020197474184269321421178470964313543755122188407986761584247956528174669958198749377011371725938945802061670038038152708929026193291649954828469453539031890282737682326674143305221572337395467116012398909705508036545009189662882898439616545182222577888519513129957575504391432457833356550159723462270579690377988374315839216379293350912066580217300849489671320381544135619114717993888148060795108160283859850048833254811077361456916537453305952978109924702035628673203993483383305577950334144804534519544834232286951244667715644678548955549184287757821877464100289739503844996743176026136615480665362495296721759160771499857431826821663529252655314807640801067575488388923148603303950341453506991725572685578599312344798004384548886019628286445617935347254131446673829867724311606184463552031204874749578958069206609391230430658070779440010663589063605666997296907478203005126951175325181410440373693087189276099211584442211330482279620320123043549382859936017768198030627394149555069345215977113513397668666440827402894006069552377534635434025470595076442650089535519755157360834800486383702687076949251750510605997173672650609643873244795560771451028502129695943948544455791888306153608871224224291822825859848084597127560011309231716856481947831642272842067975600781238690807707784907888592434871882203633127531969130044164669262374748326237355404394954598586071239379296558267044795922912651943104887034092345231486865232841465408705626075804281966557585831327697358320915925981814654633478425900753180002958456755341586636742168697937819361741465249706024489104281912759150953322956146803567712204870175754287167758382324699754775128743046426114786351073567738358931044967611632097461324998723524172491877296755417248239316110043524107452593386241733040865532444488260144938630743854370531608487815945075498190355024467018987358819673258642451245465369229859440700326389677611916619431600381782347787384898574802639716300345017389904015687152301620885312350277432481784824151378064286207371350640078319398775799689931150541575867822310125227635842192327094163019486237187992418442073653311061787228190119785135737003029216613180726497010957130144226369588615479475904251857443458615404956091936210470152852769480501325591540739079889396977043433815090189213325900424215684470521870750933215699416191007398061077111516165978837982754832544160955421101428009466790925719640143926572705349384848449687580045294445836102092365347503654629655021785159010358521860176210310179125786437396500157266211143583161148272952328414158674834730339393487222066371862475484005510794970333188886284019606875798310125516054429791015741254942961726906759652205492665593355601838020321304554634581446869009187561118797194862471013720812675641070227698592804564479203447497287269434809707749000855062866441799424956797107930189464077196540255343029899373664126933452001488576200737214095915018862370444570627851720445394737546409227838717172719686099822346982331001500828786106294569869533884283833403238957369725378917524715866803563538097988184234793474004791480487475058897816006947749720572418355360654636636557553904622609671022274947005490860004469418786687019651575701310566332623868001697360355681475233022547320558317610107695380323150605707643421115774642197227872382266893066713710397481465507009496215466572610864334738747750854462986094354648682198600803094786857977276141997035830928370909261616645777311120030334603312755671983511533847501617351680791588157817963516754294318831973202055110507459830542515098126772439556993211245758372156924162970254045876911821999460992831764646682655816204836378493101946832871444874670393126516431936719311152398514020888302991472097280160809916346917269809671527102243317351347781817651415548135317348242649249017911631501927864721602334206436553399722984785422802043391401122429735948812958193926200246718243025528361395750993063733536955006566424782983872711517341872950077332488487685365020552072402788143878420477970371513686609244050278455008182188670694639153716872870498184813557768859743261364802554604628010482356186673404326829946452375014708373988025661846547764733135686521506326936007800361618128022527508691160468171782806813442932849512782021161113123462773544565417173735106611597454021922908241839773785855493924312745730475811568221537445979976941410008487745127079583594339341363205057328094495870162806008127310228032084387938486588717717350759644453552592138995257085909298495737619887958787011087739285808178973984016325370597654859040862846935234696576947921982612555145925610664649079548177209413188749303597466279009107778328715760372758705814487376968243307140892971448207346044511808369508511833423238004487840982268080599257570204422840202871296779924193580031659431248068055102421681382970227844565938732819296568532313270582997100954946073810464964698147537306105049731931461538997957064785970316460145936025003473426321251748913928606278703077774333627648144103439200624946713510399477076293271573904936688043200922628080742112191196185612502511967280837547138793734731142005714875441688510191394443549932513281372960128198668652783961365592797692770223900250022599060947743733587876441148193111489721093343232584621510136849824986333137689600546027646983576412676090617591965494521986510954073597075565585496069474195658261645988453457533328790340308653860538397475707439229830232275602201554161349810583161166727775960622624198112813657192516413576004946915428709008952815770401675896805448084777110045266207888595700256992833845803141194530450703104999027732792188264765485231158895158956132973116729331118210398240615101693207446767598304237403502548029107839642237408249419237933971627326943405158455452488619235531684634568963817499371511184633411254249594777117486953378419802605933151725406948148291299914195052978653686466649003244968374424945956113722184300425559477612880040773149397228404925586404734248344488705911680753682693978133435218154560143944861706141195740953527047861334726269110528134082542653538167179030824729400468256855996376674202221304425521135119221037018328025923315822331417049318442866018676135318934595735075177953798951490722621961162060947781537674877168163177488553050374927224467759290891066904809067538780308002902816052619307212549880184160416208857941840123275955490958608395854356145852531148708268516927226144965138267916698475727780567400300171664884839403348153471127408940960839992420619322249927334518596422478408260695674341712891977977993345123506777572567431040301214447289149644463938741941724025183116057378596311225640848762454853547034964963055677839855059591080085598361710075633076799706368580008487550909325059517407267080871083796566123248764475827038352376090967258254114286267202241008781683447413649370111637922324189830302972284458626642651840992061556611923916567965237913029261329264509165313418079057415497090671423795855266151942275616692653768405841924223216197168981812350155224673724607492889821153026081118411297904742314446051236797916882279746501503547355928140849948601014756575530261221745367964992622523591251205898595906016691005576635009146706860310503101778291299449088812895382989205863506686554179411041746386852141339093679931484773437773482241216227085344069153025075551916644345756806759306812456642359689710636429207540108299851541285221303489448720705853041600243509214407191611885794742342563874967733465857740271121120309795117350735280524672116184539021508476298676310179558662280139893302583947570131844474990881513495166320110655464642177681702189307301423536686777910076015576685654803291814321114715757803196199894687770998931027701820615039169765427240497393017564192761538979951050115316494714478689726157965613302828005597660048311208373445480403006495582048633629618057471355337682779082978076054715332675433018164501266612064209586959641180164292090827991132397125519675832526047655110917503307216676687322704808867927703563317429069681555216886057122519181084748156462337360065645908975137425429590270473933534390371335259682394061534716930548302307196340204264718765308615830884190252404996682661770749328012860278097269880994609298535412416823673335779950659367626966882349368830002529982852519543959715859429700099249203503014211513729320169109866867084988720045286219925058213829119571828995233386033396841616408844640561058637414114757395496550880375600894483900728928266943156474948865492904882675502173036450609308383135738328147286753089493818837026867766558665700776309439521416798883778628148406290817711595330863956032628603120710273967608183831675792292606017821943102913167997920135385969527694400341330634739474850695222033600865649405349744470137219927075841257967529573407201876967249107777658124293656234464441405055338823563000078447954773708921251333817165097238514329466785694316299189848367745081326803940625526672442343518493152058179604394893298343232732474357446081701980527339227969483754838101450881622398438375631754685652538107263513272269012886280564004226535665526514806165438023324329227063716755805923308442147734599744491596571671518538927119961839523034791299136049802624172312253458834914595162371162487079485790976591747606585478763888598172458505955815070885953330980632237250506250648162573377088132865546581368297359375511480495478014465427223578280857376096827811823718269805360809844851923848229915120575182344639559070062559332079232729602595280037213244628618490641080606630740641308821192613113333795720931855460508319366797071584698836868500261767097938912824123466767155527599188831085828769121692589640588842690487895174016395124531965021745931573892071786276910822965511083730261324166794473651278117903801181874013474366526879246948458699034515379927973002071936887018487341075618124819834650462721355493724802567138975969780281401617806689768288819634979698257293969220173726113554013048774972636906825734386062989855129402151559597510255255734189237712186698344011981707008020774519474972035424539518666650741642501655813594452467967541766885804125936643638883731680374015234289363028404427325285215598801269379438388582710343652282697439536144422742158304566621234232403723689759773726442334392189278928885875783756712555767311952869485090699186951846708894676770312242518540757833651000705773677818019405921433578125937234237971111603039393755165956235945430621321731377216909651138264558458079921374243460094436618549498197192798452577275297784577572092812505943583043373089553255153573783776373525290121182835785243032643558592293242989880427644437406451094873436344892595228064508743380977298577119396212851254081446361274782767870405778025335463967880929387302554513177489864450228106172818225662318942016306160596162885039014455762317464901707777363829242712803004339323997855828886887804284146897775757734140367225168503749316265149210479537189391428229560832203081769186766660641598170520784886888745695874997262701389853136530294938825917345570413014019656398697852630596779567215994740503114005941186078813923845698451629631426537113738599653407323478054592351379944603314030593036189855701651144073801850028850121023168784762217702427442299504932306017906316815941741915237453315126999982003563013040806891570459460932696042524491427311080529396896697719860388217372427706091865448733806126852121850914718292250024146138769727815965531994109464393016687422561623598117069027408451447189369313632362291973643357731572823280988262434812056615769677126363639984985814708829020486866977977201436793889644548093448514936409194678336013163762328908553764127458544741726431201710937077107008175331670271637445867898697241233923882019909463437488965662578878809301509065371401700515468933484470273472688676560895504169050299486189804400547527871501625238412737753971353027373028542360900266581900292216973139170952200982958886606686000325571428635927688912831479988522918895625538357822536357717481458228918805478232596693345275601379959592662550717784936552007916593270494056582491185672266442841895950252406113660307732842292783123134246021333265588999483014121998960726950519662050526130938374809693951391517230687244698951739645203763871651796207285492899806225995228720928799204027712457746259775920786486163923871742768625620251494575746711732627303989561920130506269945878030118697762440828039866664013818011227654604200538036031162562872730119073394745427487578012023195535490329331169798497569489709099674814651694554884966254194936531389119478837675255912742055706425211089950553407711484991120427386509674827485349806482006982997180701466655942931859334571099240259912487432229002231724252250891454609788453632737932893280944385636176130937275240803079502789756010399540974922064950904960186743375717062029241773913583545990164415075377516066817126061196809375988089589163282687156629600969937778969680903486193986224971334555497208301073231894921498786142821919092092829288369366285584987965035729559908100237546721668495229788716486619519604137972892662628886992276076563440749579050621966629068468593080603980678721217385506155219551848169935137967507163961372026723165424552315019075301002796270643821314749406164655508012263982766152505539706387146067628259796561889984136849759232833659624346306632359974137836512292519431906074838261558639443305748779525498594983679783403533501241075359569098534725169964525171859031614589839952906628718162321308669143157230115240010859392141818643765205526191885354136481862820629897122727417646992555785207079075629873320862617091884747683657462690273835111957806024504224322722099814392827206324190630973236694926403000509114556494116023047169395734912697544702744233792734782553663356341448551886686030850898299097587752679884189107645733243863125848205279669928105305523978636520030516287827445512926967724508007953282873702271440487914516285323542573954241683270590461005082473012995419235221910997515353123713793601601820730533180419152488736224448520577070624877978531202614649424036819136340775257361566480640163874606624460546031531142753828712614734947214478776581870199915468119523901842271664778881948688092475340564395698359430031440498448868028682980854492627292908212293519616676540853994127856678072651848172415310358815110837878164564496951285313913437112086677459376981341556245306363040093871219971967866786377909255225653639753991194980958022340757512484138835968740356228698885356067007617215320594033004695292792854080827212905206070502440885063367068552910101209429703078143794020972094228416674088274645038120732278140536142102147793322446181529691411968096765381380276193443359704570573845139170202792216341436174178685649299491624330139883243796292760428463293161254152414662763332923864832064126821261117071212690948911344730998608050982953386739767791076186024280215461994880745855329206798430846579874890435623637351461995098533786775038281874759846317075009141201298843363631894505822093943515600282686342385531737240806012604333285380622577846533286826691089948502644222987211675806725810535524093672596829677694594328184090393821375196184956222011564088303278962320238315256861994293028858361815819088515607212804043090068301418450417180957002268848998347187349135002633911226753102368971263829243711398733669244737044795544044526971769926409031882816343439911090804995338150526979169060701088713900570901543804218665542043446576895707183126253498437582622686349975933442647945480394526006624607658882376466553031384460540559845636271088177804287286569797382291656840133070652417464661819566950366436771775224441694699831738409033350169060696490044337965883426360804647563621650734191503353310619220277008357144326051216292655436409254399782348711849080080948736840434532365642506428730462302760649787172046678565691844144796646627095257674899469021610146733188263095079088272146548937150851367414321139380191936148063830736257199990177184491381730482643914788694170272698961635813155183665448065784246919886684533422849217707460358671865325960132354540422060289245494168155225091401362187835872714033837787899166167034574945557496515431588809386904929473326849452938259808033207833685660120453949259881909018845145972446601599679374215009230236332871774939438558320819908925893835182299226476487545967981884408344955201279162130537755363321085329048586559712788912046693635433626476097978120169992145459967556963561160425257628246762833324359717416246523723418799764463942038581524282463420325509059262790915295596139077389158303879084649981322592772087801415202322412976484071959902812592463053752610546607434293102450878735987499754712293121160875192760493533103520956502690609824412341282870254246383563606949037680708099452434752691911855223867851220855961029628142384201972112453042714551580385140089852473101282215565799630983561930069453869199919677441773497339459871705752081782410766389946034368624158817126362663880975626623553012567109726619578473608254652917094254531111872126549115131042736486933364133606287393619971019422548846232745061028623539265782662166565865073519007973253995415548050860591527208870434272912832001277071589563384990296586701379975043839376490127204369045605739542677367091821777979634290057599654523878102695834784140132617752494956087044068493793112160652373461049301509492131638753632905778684732513929755189623616374632101181958904191218761067374162958477855661537119461163168985748481024241083228541407144237724885753871426109968491854482937858808424343103493791050699197633577843411159423756592587976816032469153981015312371204859298171913756229831410875644501199223875499438158210406944668476182756909452199666421040299808353662349911074530619875933591592958717736785527673300706915991840252564058419331471305805844171348121554998449835425501165194619780468806790269889199793718691842821017551053897657918303664277469439986630895199304573866731220664029547203153713300001295085468587087653633226433448048758316858572209368809068253294122770739300406890341633688782298526619855834647713008738511630421824452285439032845377492538358180143097861304204833113227195571638182111779145618529028570684593290099687496113436084863026144204040708285382130825299668815793484098799833181595085247400365489590473029060326188846008051634791682060665634907257789318472141821219536456116727310521408888465079524812418125952649438542517901791137917721799627526423504902357647187633363776389089321049157228055595888147123068006945096378779511917865380421447121753707966956929822463315581072857423137225730689884796187258708753752454375101180102957586283217244015472737175354427223404499482347669875452572011554214321339013662590601043407630130159460419501154737046979203200428941441611055493577682095997109358523297560777961533632847175921399042294388683944036281189437527223267194688866316905007419372595926066433786616670630831487501561518769135960894355202838438528774951005900573949273503797696702152082218961471612395662382828782330544172061404980270407765715938822008029440686619688616372885727708514154915365900430275735999021588632392837915144939220076380903899078396670693141774733716345976296146842300686510303836457539304237939034039018373454636759389828423273391966159662141939840501087490888487374872076627760245087624967027032257682436083206997717573517154944368043862550244481994913260877948000880133365569297223134143478998454031165038182131744524272711940778554931275780260279836433801574098098603749876141696128134996790107910330585766537890882027365543389281401039824846741475842860284166091713936046138718509594787771296407236850233392337986577699402131588663139983068552715640339956024661161095259064251759705959725892435961213964702721467912796593358243131347774915699724025584163702371322757922480099976292910847742685779865571962899310903157164239141012339757657031640810044743678712898387763695311186140091727048341787335513693602557420176114325669834749704024278584731677195316015895713851849505969529621433431123926392124787075257457236468682879326414405214817663990969187872748958159786931052588158712444537303213583677658792876028453410143990284730515455423790322961585073519263287087579621774579274608325391816313493075323531810229248956501747170008900028664676588088240248825869855576902741689954121071419584955317829774855639136546804834259754416188431616549788163784644289461298743648605165682386256026067414182854330556724543455797428008790893919755355301646075123265205630770022692871347610686783267629795891035586739061954526410877409109166763220280420804161689828869172187151601734070293327415592547840094606551259269316729762682081194959259961202871743769297331230689791215567882796118446212321949547436700444682643181454869857647339904865320650124249991915052361233034194477326341491980409583593582224009202187401077974304562076954770094130570447318536003848147942790341451028312486445027852914517367142042762765790472147144857706077851758985132786668311502188867820609057331629577741829890303378260180590831582161756903580598037203753364547152574993059940723992112813551380486534862343465238921126214382169212726483006906916853789051278181313748498887130476524557784026545472920893630357330731387865859578704072609630207426830542815573869107853044887903289841456477492241045548101120990324454170321037451461708936202099156642704250242872904075515626101203642559232650469972202861864614932726530513703873513673097296142077504571360583471827216104288835031022478600186596438765903581755362872446206385318933449147777867708600817720340391414707505640943603322697366464603504196278519757365436373956542784610383759632370130807069032938372709733850922275422524935483948567457603204433414567641416172734842003330562842214815716702817386305674067889101435928274714091485428621726217076813846632022486474183251608226601045846779437428316001834839752523677831940912119790576627639279161509117000103136379602177002326584925096759829532779511359193222158910224853137449192870574327006826334857196125514698194050128663057720752120168880209297481845283176558783047702245190670275338244624317521224629308556758755817286906658479112899529792569490374413853567458631756168083813986662672673765567741767239214784476778877497071404235490204337883138432883587928235453056999345892110382445795168107886979035337998514883025546268963958768567046876939432222367433530496713665577865148815076215235821785925008961854450008689645582615905013377626095013051757590582238111376939955652271447811786398637434530219218078907521860142948692500733361433610762815081371284785912177232406268699211695881659500969581373744203314559919727584621364670953792501508509626422327214187577729465119909534079903066580907344863443211026772209760194404410494797439164848934920106005710590603211609143955634367469974890084984827047867633003952210609373078627966523255686406326925378127882497946792808283621924057373958100113938909335719943352483164906257134190284323837213727396891068577138974669812672906484069431671238984592203759530801206580117732395766834388072031094369137915804922003311879563999926450000794755338740968212666708814662542953665885381947775604841081296246492262736655852645816147853151148663949217673124993591753056094121816540844107712761463752512984980402147044084931621260129410204823017431304054237847179451207641672777118578373895478853206955984394014528549273990950067390300632443368389406318200416925905641514918527459761933295937759451001262925421251268265074595784367447288438611635711384936488908793687262155621953869127680254075183354133989518134183246293295691589212565056736537985468807494413052840312691454027525080635133181415257114805631179280544069994207936724530835415028843936096807332753689801269600440846003740613282980036871996615807552402256621837718719641848066181960498676546280649076853741207449362071705491832695098253185620161971670710486831466461899061218582972401777777395668523973323827574773168915308098698687147442412953650837429157695848016084035855157942145437327823997286464071979817387050216539634247138368922730098103394916783092102561556448534070783904555756355476342932075011363654275770212829916166056450242740340183206665050380082837476783356027206173229751370584501185839053695482131292950733072095897418825879857031818837833416942950641531472458827317258968234858038860862863228642365230375595330778950863634684271679545715392369589670522327105670156535414985997148344689223951462192704025148833937187173419615201095536598742289144193009471621695175558645694455451030899111567350993138160026454432756361229689694796767710288161732686925121541738306450471326712116849249996776337376828904770740434929499235833102202993877870086391592852562675017179106067229890968803270607521584644542852472960208143879612767087708255735004494835209617006979401135879972508685691526414392959877207330388843853170851927629753942666919207221935887397278385066994018618341012955120167077141543088000223078219880530754914568894331500447653283806593327555833522481519450986840902744621707078111509477122763755449130307193336639564810692541459991127166773261914729498889657679118884746625511578126608397200283564869274657257980663491591426026388409815839593773469968776974043078837822438517540290248697003282991143632787884724230933255351623962270910664635952265862393027903296110978899270512634110566765643416512203439383112892869539559893330202894416241470665568865818389558023138667569066481736146646084993947045923874113255317978220956327984085833862696892708081710586344872504425896349639449331363167845902189240509883331102322715192317480993877662230848103990563684841224251728141885636088564728427949381054003843567032119163797243428571034829580587026090458667312167630721989150192243447279228957616351711128222777610693153943619267868189113857870342062477663877665115349811656839241314136935575176010042794607417800157287755169997728796725998026108458944981532726078232960144023633496032701987169676492473209334414917239862642152981004152088380876728842744830291204785802470234058326316910839863493386846927418662258526719308357108618926582342476791477734783154164353532545450026480775884498162006989428669795498002875799293050883250612872689665627941621450774744877328834075297483618770754845714240654664787455720932464158170705931593297140339615909709460463447616591891065829689617715405086251602698862867823955485816811275878334728307650233092312914166403131150990969287220261594039677977019061433477230045872943176244359706071816481158268096629104162856266237606656696870111758030955028706322728729338312305602044861377234536710506260230169235149059997395106110369501787196467473795463983770759799731083262813522624946541248605821746739020784461138059841022975510123509557786607220273353046917733591371077080434592825557458033380704617103110745186956058414659481124990306069969324267102583539503449535519918630182502138559283137360730019169415065572688564768119358165699271069967378309854944769670422427640011107402001652228459828944187114144690078205161406388338297774210406670576244103826414922116938187354837565343072337658656115358920924385514065742860048683406752131287892122371861707427119368241998565447979402361400037793180944587688976690352530950029561095528068893997636363165612036024567994809747749719999723484859724453555334533142664886377058105591183574391582471531034427831432470146549390634960376816674350703532173802953045226955346540699977323102421627766925444378396677631050524830477063304835773640276602771344251787487307115469843446780027057317595164048398887122703046812105284950796484767055461955974874055041374799662461880640283834394850418656061023245705647524206953756836384407290293224624967994075019461383903180996275716472914966854813482376214548700723261521819801051217897052764615842911780917600281587989287332433490313731637524191689065460137642451343614861688662853005130435128585894150905910393228529662292135644664991013188342926243675593552234638148025121784333842134442200313994447080615339700025417683071434285715036992335842764351491563590536550761869367846247674932550067184651023428321482279695934006590073838741496742378240611886607395359574529938879673217453385119831812168207096223291976164818647280272720211915006318953471848641591609989624541600640537605161868126793577569213507124005959421374924011657515142078202589717597279610954926649298269748200593718003862084806140297543014594323297740885116493746299681813730800138307413612146013470452226160270425857228142130602609437179019651395569035090539254979502702276702193705265195020396053036327653997510751054930938585798991323974400511871090526843571806679853466316066387511794781143161818720759738545575920957017151233591194713177654130104197633263463995878297820639167596337529241525854283905848343218377309283437340309485957901412088459355942204696942832411824084525678564879799254564582430073754549081248836806832430999864241401977137044434686464034851493232359480879842026466018307876033784549916697275398203681781453526825094577720819695285823510739507509021926633409505956825847718590201397002037642732926028656079656280533220882533632087573083125147673234222161761386005264332064917929438618333679851080329289675860742915464844347718994990300973685911409967726989489537294520359536189482973678531076024172507942133691416423919527070297413174972405283217583645723768110761937632311951358753551133694571403753694664159533244918691609773677673521510371869690822874790709844045761607937061990169427968637980184045437791945384607885055826017947069210526279898110446169915707893156809836495863337048129858828972256269922889914878806146612120082559539557686272621410088445935548089902652985339247866751271140956209197505101326417181875700252168889755244802071099305485337962036165045012110315808016297708774951685073710799466393960998010613603835523736556801317546407080799817453312510285940388781904857983838059983355615140059240812233923721318094111788029620311326010358846021537728321060899787882330418251087468739873081310418311301297091151724891699193716239230389184540371299612828026949361334498602084905571336766603750328075695886985228530224847286142629545291758242088696139473586374592846247868413431139385916604028410295049181096516342348585650286297004153635071953256166048926402375567646350788138233259194462076278923547262675701947776910581767731164108268763815399134890028484955667670793719826717636746762402952435491266945911180035203705797862934988462307284413799647617111536135127461254389188733654295958510687666945400202314773794432085372201372989113041486429908738248178922749560878649424441785140839819601155941693054202930850171383664298687629860530977408391779667551061787484795449131544286387441394349921528620308989060960450011147983462505468300257344893083610292267314115648473737613916796461635822821115597690150237427986195053764899179384889577751524140386064628691575487372201861832220086562441093439340635968944715350069441053154912676814707077381369300317571165077654878036371796406524703827013004937451443973740052083999450672784419804428093231737526857446513313239588439211446227239468821797749976917729726245493443768862159670324423473794727837043913581156358838623567066676504623850987250397258251119025531707106896570636030363291299188770767183296405917313915824741496297105625548621518512362981267695170228502038279307162979189101071151458934512322705159702441317827749620663985046487842765465148046518421691682371671791296289599223631224740451970158929260288051157467057293076712072369775023846137524458109159898520966597011577199889008859118885208681312083552335486900556050040472517624906575253127123706865608379092631351408995322574667658050862119003826770129134329457177865671260436349731537027386058511064972795900583125436916350921304440416644923652219027378287987172464459461792776280480357207227615642896488571087834865948006736349719508338458567298842486662233657146217360149222498465729960104203508996593403896375010434508437177358906943585386142541029271461864211991084207314382454583860834495485964298865172058443111681613052665530543696743623634159131134433130206349015264550383778176871608303467042104211957831442671982480963832498930702301042556346564047947493361225079557965455429015695286496847925062107336436654584603309643673597508619987758639345476080581099321712522165351993688035951184847868816648402703909811949686505534131189662980121374461338788045496385600166374601065049575667390940551558947566790950216911617741169578263700355133830355901863659103410930106660227393940500326756223292462762947886342752101029449178760810970748866464938738746330334625414571817162824756372446194417666801274554455297539158961390149323571293163804551781295993332697205581089264633766438332751102802941398728470949448845865145430997508829524158884889342599131052561296927755077548805067146505813832959562948576899554282263364700776721002712739485401295097383745078289595015635444152157039283654492174999282250741032943472102182754393599994562318427741862918147471882055738276463685200602934662306593530911802580672258218581741975037628737683647366236430715667688473377924223303731751748892820945869217065334048497128327297263372625150558116324139881157818297652593711292794251830290211082839364516130493591948934719107386231249644266059751368604496985086783787173539253159805975753889214826088316651209172115634130744614569995290489677043119770287672589238022642182533108751065661005336817431652085283603892719447410761099309524075523201273911993204508385107339381898926116879459920255311406363010705394869658416878096125188119945322285980069122813917826366235962229684210534208459323571022727766340025781723078492869592442698525856238505862995864542747520821949025832254304785122623622016228467872943536314278276374181182213431383216828117370737743188787615202022120692161241928329949560617813791665831587214888658394931845450001871855266765846429729449727323439841712938395893602591368594312297556548768824507867031699523052541666959268692894969192971287275040971290028750377835341863240808903904280683880191519707528836117973991953438287615739624929148194279243246608891643179714663751565466850365505700562470859575435910803339314711351893583574403749610440312483402978962149326629315178249950859632743129370275508843150373758996329787173008915623245910845879950111615904369989938122072127301364063696556419511313478140566360865802849285573611375016088782347598237239185461730074538780322617186739979072319296570062875422115860788461682851582704523371377347336337576185375294468867135906073325024958924291857811838203537700698246262752545796438377290426013242057781893904856880808994532020329753163112766335949776909800710993414687237373968917434534891334828161777521490407636374146124614958553210446696799261204292168735406011008392539781975227321010268549337695625181816398262522330068768059059269270254213704556874466995853982561481502993639653022511186592142415384776506100419147320902709998271331736722589420502322025035744093175511935386873623515576663703999249504048628272901666627040497919763867976103086570259417388715603352387970206992366839809050679613847951304991436840054631312629609430750214832027220462709791976102671650398665896836839040463001547413305518285200265393544681176528114620257409546559524932699349163667217147612686646788322200596190656067238942424025981201011469514681195818635514696163952181598863370949712508182970664671938610684146123921397893506805481323812104851886036663299301374460213215114869748037619692659515901981584310301135813551432474768372519531456390450350016598899037530493574485223714741706911175445177389936966348366693358929200023224139759864291503756524819754737356721495200164853830505907997392903530973446417250998306889763126397523083931275125568716563163499125072376910025405421135123376500015424525309052326813936179881578922893298156334052329096160859779440477724417060293740307257704656820959223681335767420695359200346303585791648394671179020108019014158035283837441362642067550594773123498960509450379162579608139925433125938523531029495943010750826080033011935774105001472992316319343926856980741652960841311484000351632082909627823160873311533074644156226395440396928529429332693170593301653354865516836857782824940728681015027420484034782224650261235757947106539074455896488297712260254596491643151025891650634176690577512479553091534663617462347364471662915486624082568285905880933620892868500525184331815302150429795829537213607685785492811315473727052467736169039350998590300351709037162887658638617594837487873774592699564467461071643206694828177104934990344266991951589242509161591445383380596338788102412449908584685845516732538895591797416694861929620254151672870691157424429964353890023467172015275045175923429382526311176855985251498653281719836077975411246242517394270150218287116879505717583988339740317018139600765644407944234661510922153771090462199655607758962030249205764834724760744882784027567420518412020065820437410586077394225416980252506909844961630894360881851105383105725555194465766381181763399914237472738123280570217555579421450168016112414186582400706098998302600273566117131623003616304936366785210506116814943532532399346006653482371875825904267748254967167691983090906675631753584074868551285460406754311644997244584597227116942156303698031456054796441347902887369511033743739661689296800920088180258200413858375670876712458629749836134246741673070798177969861346764609136734351567505108296633977381962487312917065727109893012321145642287839601245265195207117526312775275436100880074736264852598635151152722969366593455789636897985219880155753072998846265545611892348887294718916457854123114100725075082983588002156503876492628550727403449110396405187516099781145235965715501728554892532526965327844740767674749599068771384244993943254846318836508061218185042985372098852848817433251640457774527277698558566165597708919461516709128875015708039150238352215062862692768629615309578385607805378922056337827597183277013074537092006565952692667717020124356224530555744487247659969803862078119804201272744346479382836627475524506323829388662824825371032766640195944523281989244414937691090014913051985789295708068453896942446672034379779842175641748573273214141205710245418617725002475917243746162538250825455750350017357392639318585562148116753724971294993252397260340983662690578820982758192193709753201079131167122671987051716785284527014666753455123824193360377689203583448967899684011173938275188414492006532430014836944519270129082836830324874954513396124537107960866666312641514926287199146354131481956015309696218079211723367837465278983125113405446849507330515973590105041811380045137877105264169149373447254271415572278307177228382213344519401954680434243598880461726399985165306266358102724358270842117887138617129274393327960914959079074948108067852650019313707489027256152698142495390470532258942579502588677513612626560461625279265037908417849915443383200963378983403366197607917254977286687833269930609881790652905484341244011722838286812030118406362741721355891761598180374208350630453575261091967906829141534203527048410748537189004282737481499149922730862678860720881780388462583668732135138842394206529020310425656560676604178562980012036023191032962652782952259164404038421403238413409547873722819669111870552750072334810405878736233004339811792684266460713129296388154692321028386588876726029678498478748492004076260205509956630472901343587921810717036168675130019392050457948420585226815469154486827181493418968411604617048018492966121718112923382663729411799637312420335575441360965884754623815139177733462934959541508923605582178568775876240937043149797941777269465482507997416270667847013406710752189613385024117027077307742404536314005342558147812743751723011669423637763989619309550859981874897127805149202915651903100860926235022410387525989042677581822048944475012254310750598826091773673710727077670938064314750746701157270555504537302350551475400747404679383930412204032199390053048754085095509738183867564248719278295952908309681809207587653864942723943306807215530021798030372693280178827200073649691012757364846914994185790600777114541021979569264675901582409497285662301249260331953611391219276947366927395122249407832884181500772272954806114512940002873397940018589327464733234231083706076482002600399128443528938539865120113983881005218142326831029318067039925140733696614836181103605006708239487819025210384200713438581583102092872458527595365228968700913979908636175115662447655467017993693470695556531695759931227244504489892105663520862241071079501005730589118944914260405027388948382005067557024851961347624380049508745808632032497246881798386986144135546069075483058456690906489334052196210438023710704731561308877367093567662149142780864486536315213128630563088581676341877387696350478411125832746242637265301376944768106408700770715806889771143283824217279049321315789717282399386513194873845289996476392785435737333584253912778450115351190947329086018472592565125071689317823523473354804371077090553831364866317415269714598808428607264818773011878712218080544329325081171871212870700085421352228079028750206716762573468718996814757552078750818602936284892103810165560212456955998172968824389974814254015833949666304889571143892462665582326878122122340981366921387706745054821137392191440454839893772377171754457974824369198132715558724986056050373814470021918249884150341205149705264403273935968332386643320017328227523869768952081642189880332871063258413161359677544723931839812557910227321103538882835393674156041879683033447830993892133166637851145979328820754766067421084822117825450711204507533255563244865188682567736480528688164674270912527359838434624937408760039953066346816025970532283874472131241369119384469618761860317304288800428173732504442173757198356979493279253021967989979491808269098031572534953264404398472122739241420920577438526338519630814352869376377408805443928961703051718550311693818430984475674215440336225502269716088178128220896889840529045002672990715962201633486732711967626423761344110697021587270850179666849384021418819731350529569782128760831974440965701449718781128320868306963914755414545152572426451522412243747102312985083499938116260963453400916469481384562494001474167396086169500832033742516238501284157370636099325317076430738412352450220671128431181438411054349911770299404766311728454520304886930205720852396806169670283835275456324116033094778757266317673378077115040735981125037083725015708252985536943878927379467600654227523621402729403427054251743655872782998374055874489741745756871520736768410677123252186364154939768615501105352166222666927650057397490675256062157891657903695500207367036080737656963292150162916921714461029080455534650974469013452940970573756975517430939479088909552509727591301641378803837036916252805006907159891832084890395069980468804536220880892625005696430152495463359942500476537816581446376032143396473757563927751185918325596461665281636533389368912216512663941955669940478104009491956275060363528147795946030354656321754345069314172241357480980842127252859873795319430938080567927205710526086323569337913576455636916068875092352087577340946924920277170823031182417822727424435018525991873222367157070026021850785176083494877843012874306429039548692823820574336773116376482196649696402106837389520176073279076038262264286105387449560902604142011898449724114774514531877319292644189427842773598677757855879756972834052284488357675650081779518398952471102618202944330958697290548413737086806735486317642925012014599113874499154240162049251848009182945572850163216779526570786824288134434657307448203644319009456700038208059780024499788948220778410477103456759160265376848764786031774876514720589691330532764482929991308222945101425742858803976690784885060964398520745492546295308872520019132720817718133724597117538800065211919867440035817832775424361086300313896063912988193293231852818617758577921533984553359258675905922884547344640349903290564518301150664731746355656225031888263329646836194105471372664726492518811217389107329498567717743377534573953594039871536927189707968260892630780778515184758252237178366171250224904701426678232563793183992070942761949629635987995961733628663068001095893247896961114566925738736890238894019746799811294324993764045391256062121388720237855396092136353056341593772637851056381054078436797995939551738191214675040072906823184025398876791345281939324091065318045769553464529349443656599535844776691299561093428636594298092027298721920357930121120558627817750608955553803705912323916706437954155362981706245094743655959373470111389108268071950571324573342620605860624140249817379979223800824073512118424126645008646981565677502102468544169845468661212841144129666753591912175167652300477328338899793413712243603192401374266187987924726668028964416279761055468491495618012840131993499529427727236941728696458729532152485213232366374872868127033979518369909900619056144978549626998499258167924273627760733342644656544586667147240176464233738954008673389770181060037501879096658332606448529384686652352468619502379101431194647736621600394072060296475111823512752795152406757878918560464288563585791806616535218615399369524511180186318212724571108589663201425281214538890577303909843982374704749692713368289274682292134493824329912692203368527772931572748483640351579668855488526485431500512754926306274637905044892638481879687999585354143711820229240491174473069098951302883309004177944579609334370346881171634121681763743261386511382219093893949175461150057525024984657336789686436087146696018046858808987118785002433076760670804091477009563947582166975953968775363101939858598798674925599309408672140813297357753630887753002562778588071315902242695603582446102917494837993081405438672894285882713321783653454174957890660809789223317693874503880284950453280924979093955977782080317533231833788783825089892101021241780119328693342711998566746911342774415076112683401429586184194122511611883947492129781577523217963897371749796822971722172827252672518663594817851027900167294587970585460346421208881258156962592542340713081727000578903512728128540968035316105959132772435443746799026118684466749940148150872153359433786548084356631485055784885092142918670507892362741349623445866403920217782329784636959171789073211554075642044725707416869370479029021534533394710118067883709893713943956570104804068515576896929592970431426197874729387344940378715981137017693157711037306340040087825884313850344529154937236617156343310713156434156915729694090545985938054035149603279419915546841382522410731114150664379677139838171377576365227061541223808848886897715815302474874136929413815966381349087392396060352649596072121048476060980637079058002844213865461377783457488696139491307209442880935073952121851716066915559704272000434534067890529801819122508895837800133809662398329092787673436870928552618587848258187379490693443559207304785532165700074355096458755286925383185382947056178125232602193956977693295448121888559417089946734577968376753840635119779518781310697974090036473888048028197107878818529918818040647646257216194594574500813431513613508312292864324426953451755313630973148907676759647602255194294142882571774165866349142697135603523737541434250884510380055482595313937408376523524750069075775612342918750846440524435350583624283473568617161580207131623579771132081085265777405894780930636690010317364084202247640368850210373094113569241662726005774550061160138543029957207950020417932221328385405783901467590211364396391794758939668781001160985724478016937867877975138195081025767057259996142205400626372162471506578850306421449064676485442014445384902717346500023645845689049520043442824786166011853738650731543138609501300273122851938378535857488251541625109886221044313174833499433073736719429671687049299742745591399267792982260788378280785321420391229746295936914181992237267847026199556761368440993869118370016380066486069932925520115493913693632669338191511038942907395486212818516030882661815391989645355338441928790545870008254036970597573384342521932394240649230913564771507571856550487920945974209317972819156420734810220075223555927922782490062719517680986625749816493452726205825561374118759802468522451665015743298284423360921645755504621270496602498974506605888528622285894527250999583502622493698863614279626436851258928263656911960120023785775963960788134622391163398452870904668846012501368440551214711606246182711386191954079529846758845351399323220057915755456998671663847618554700233387756215123923750934269917546400162465074381079412303022357046317711297985305092815462168901475080337107460961992214769755256529789618545500634483643002178795814517149316669480609395827160895325935635219514137385535754080951635272671277365091467402020462332215398153656562005560128097208193802032050651327712444360234293419678995316217043923371662663264415055326624286575706349495292697192489526038770557716934775872026250422043325743468296826314568047554769254441251536253359945513399398457708168606052761206216846029958264266785003647476839696632069982616482457269873280749214750473129315084415618441008608062245228272398153239719214647259437502217260702227004158025709171269842834361249112707470893482428279210481855720957427106073746226900859575462777719446057404154501266248484106203006437850134553317492391114687144315870494870621184641342588412712269883171168407488704701053271051893327090899774712804827024719544395378393701388622423265228507469679365754314596122711863430775286867108536461768434370591388451350489692960663257910539216357764719486642917279090134019215625567541798234796534276997198476065283250436818229904849996445190406770183276516292988864174686624719161310601193350348313894473525401866106917887546329164222678582320052971562835521563127155238469302774992367812336642726394242189213015977636735595010288497419419313465534234774745596690186529522807041228602355530165336006788970343283304839509105445782550623804017297836503956328255615914004166661225483372095108665214662335869058751201477138893721226238999173853494039330570324388147254739701244448737862242508361847681275298916990974996407787697398568732592182471059433175237930515024560441503787434681351511400589260116669758740072083939621074808192918147263612193434711090032229768135763186973253508975983740598379480200396372830330211115316767441654959255078001993016736303694309694108727757674423147749817275054891767168387785921592751583263816560941244849191096510192749339181939593225303034231213654293502400921279806036505489997664548832725111239321518662781425164199022843422120089703193816268764113364958449611693523949760175473717049342735841205328503924500735368783785236242151016513987898629758347094239908781537498772095063854137984747532795014721091385959075709282064218438314877248826519970095741251168107231009605744103668421676734010217629692686135910339866409750664506867725521586195659147161353198346008993855074581334067507442818909693359020999072568025162998407831732527440133362213740410902497631676998144018067932114268443630871058095729960494131115830980813821921593007463660645954472615749740628590097299539204515992945621323626755700285054897491321283522204948999607107267030582756075991099355131227534568669358814555814850258886100713659417101740078218570097696844881105679924789639653726064077658520213289581203191063920927868501474303780931243143324111714734060369851642425103231411818117973044035880756716684552529974489677755061224906870555918524265949123452961340029692690010342410011000666613132721270523532618256928338394266084918577901832861183286364093486988972662795050936080010326703528837507952206380801026637810030584069399149590981800561049107720649924499636062620966105812384523306117201679711067464049902298837349577728716488617789164832935681014310982980403684656770499741141089864275079975912285629713522865724023799596802581437327101330402291815010260114690105249936997766742864205067037037222917046773185308511999225110689396172248562272131766810582492090399706941626259550327650452403570001170771406637995423184244276692093529467741845317907192471682111984718605490379266244240611089265380457885265099746386286643768400156156846063522360072112915889683824607468154199396699655494820538204406449152470479287054618687346700311484825721815972610091467334535357866352163757086506809854871367216042992471859880108551876650186449548997860406357081549249508719726679320538523302698974713731542506689598641480037528295793107771137731450895687077926659307548848902172098207945240182275986008190237299503205759180477199968478629371858516552529056852891424988561750219725250469054576238156673691083107848251045863176131235170703204281154511881227532006126042508359918154572923527686626675650395653051445915593589532083536372965844608231298883082532628950094504464148258340247726834502823391533998529199444740953811645750220195590836378011894437027115696846907066833012987301710625247789352197717404004131563209965376452980448290270116145409607503734326623145800883028855366643117523827223436053681896449483296672766416376755160897889016473948625527433604601911699799582319172284963945918420983982511813747148523268614990865012751844154651545745123230159571402437954294552740914713274488600625929627006876232071385040471053071194250982018093747061146677679645746889682459682763453987865247821715899297336936614712579087519643748762296087181135113611447020552751958708909390201109037811267342723896542695497204789895734764318016112961698785211418179968506828502196600418921536536661078384331516055642758623428777479584852719252840286118723318233078340888034919371771945418257759203153086586922692518793625271261947769660248516860029116274616046986289468803056209989265615932388848147812714266232236030673688519542141278417686241043099503710658343840367307429449999475398462162226890573539239315869329931670587805000781245829201710718479234729468269985671782025233508732595458226366179097874544412863746326726175826490174820070479020166154598326134071109032872748223652709928193045497685416071042126894154603297993746273549309157003712752538353666335194700594533313614702055414209416364336656168614401096655832225565832695698774132310848299840872375062805877994498415689517706777064775305564752503639541687910913273959041836249398090430360802257870654190261869236417353862419632661579996219399910393810682952942756076234010942863874411323006198678336637649466973701596173390144293328446293605075742741227037306029284360152745765787873771687426039336439907576914855459817479458295305746145331352402393785134135028170004828849770931914909315772389370971458207143322233415777527279708029089310026514625646449945359078558911805447925767663000552128901706293145721380524815147428739929358355599400040019287301851219120456823955603458183323890067993303261004119176854493478136028509838158377651791959303993559253911218751062135475972100491176488291215201216192167192530056125965153600496305306883370517215941179873210224978895461212006230729323145823068627251555037548939032458227324496639197001073979859628159864651081350454729175661615520948232640194721260413449708632742301457845125037655642145113199360679368647175931161491029305123789896074684591859014837351477550251999698735086319862488011492604976594123739469706889179733780300013138350749061243720812211193276023561260028484995716991588722768480516825458816803211623433976133848594416773768345906625850462514470883424071963829030340778588321905447015605220037364235525622549845698104216730573491178740058639425091839740226276085439573471135884394190586380619860303961982438830708305596455340336501903515870019263898811722652993401122355082710618628999520648265039846108337682822555887369293498819003517538288651616869104977333405907987904956304876110027897025875778397908465823341731269673555075291275423068263666142069046265695886875264238077999459978648420982238690565448794951898300380060313440933340951951213650232472237590876709274606530869222378758132386534812006958191190899171446156771446581074817514672192754571694749964412161456552678774566456484110994274315962716672332324220037920794392020577314409166966057553868229790648708934891277028095631105232699670573260333860756475095401984913033598929413519220864682564403361510379562529358023178123688052732972303249093688040505633240608801295453355910638589216264694613767620884809890603564096856214921059376643360770328706488064911910554490994076436358637677088672970176256087723066828091685050704285615634052933748476777271488113019267119162901346835742764595183135187636331211210651594038262164542897250426775143456006268338534577930475171249398382430882405172830294452091864758419932011344247521206996022262638966217663457326051133178137173537517478855549570391054476826482739301848529172315352579830381519531969723203180014449281740968450038208489171394937885169441951781872739273773207601203191787306683420949437752103646974813053087532159324198401355604398368078377934158165570225704800453835401737684868633731111883158565601340840927465306200657105572656326070286238907651367527087727353183219374329491652232434404655785744197918988137830554531706310138595755176306731076053133473239935384533971509596739061571764614238185978783320013397995116139131227638314670458039812480839905080037809669718637625623808973437783866209344846159476707053300568962201523269191455514577940515131071284392340731887098030059203645370997432495946340593550215085716878707014868967731560777006317543395409781048308202255217761805806004864232428962857168899116691535103312094780712823970297315478034795749072520345085906413669557205155326058820742925927995855208560410630010150149621661492164396441692389563935972192643433749579166019020433064403566943118823144631521394088229973888042948386362425176671257284435983609941121837395679603452559909205558298491739835874739188270892327871041856777032009357068555069951574514109547379609322713806766362457623378653110826609947299075131589091055986518588855060257264570239492017471071315401046843497750277207047494813164230044466304722161782857186290204725297556459069143269620877430691627367253174385520649617105892941390629519878860044469015499213714069750250380668489771481370181075794978646608295230927160575213709635599744986392004049089343845959410091401506986654241516107130496657846565239255087991527260218397392693127925703719978335834827274571609025332630832534067391536286343089195211169860128845782284856290696968858409775000991437028414536433953176733793507411518125173676001440691403677710604018726451356321534424935749766273460991486758718668434415196369400808014483530869692137191990101100397346197555804082756198904899924258343354970025619524693714598354583693902200832362928454115495153431670768544016235032897514655478571320522240421835817483636224239161622687657445417278171221615589235645376580700049471750527553918585081771699573614293262001258162695675853808463130583528344328109381665708259382954710170761570238225435643463075210612074516285827907921500653764085325086496069655696008365415029502503994640599878074532848590900797193661476528713998012678772433717551784790900623854131136545716201569458579970121572282861869647852155749721669558669719415231148734495016905348515305271796206008356303852553698947962023356798298043580430498517204896218170388771942176349516436696609866828599593327440524503929545083105999295855194580982215906316146149286595659295458698198807670953651347830367567466716750101687019809748124298249920619677783111764231057296263796263912175536620494269418486930359429534208817367296998167763293086975281803125483255595036409303342510758802244187683498548002474148674160926204790573084545447719272788356652500744295391156539897549769808446519570673338423606776978614775555306502310421081987924014959862493168970849966436783635616535036375048534027025046995914536205446315304960187316845972093190456934430902856138730376049081395722603166248024487237247293067172064456085070555262471900435053552411518516136672556436369327789722946481906828545800291542638994862268461157959423276154187286218760474461257683886605975913513856988375665285775623667856981970259727732584280955738564681348310681762432122124983348851019540867407596813579016894589158556482700808254923899432075639127494472536885525619249729563252413722555716560575970351185063240521424440472781346377860196773004072509265934373205718618609761328804706469439168240853563070692053182263784529542470530116898245869953283103825678142438626456764080351989574941492133993037030594105199932869760592520282136410295452568108375586221465461489849500696551346389065180049827846159620716613817212675471686270117620225975033924957390289419758696188708629294022848731421948673375137522729993418183992378426127158604858770868126011464557250429725427302437149764725544295068560013319040713947510127367712138695423775985637607177347314044377760641275455052700685475897908134345375890643775773975962169061475941956625198679528897802101990318406844775623155048643793948196966747323086712038363471101589553528144405954428754434756525059528137381567262614656598746917343988205836927329473805397440306952429833446457389743557801305590727678886025002583736942280718028142552208719592712550535559943174969615576027476563224898898057049279260008845580862512941804883590809097407673835832164507690400817342932795856878234896866751445701677313154907064611074174508079265295498371617901930719913166089273799259458211438045101141730639581741226461536831091732539077508123762788333045231424745701337143632610177308742002477240286878600592122064689641811140686688999730629616036020192434116965553759409792258207584530637591192287897255546615171928136481482154869583664955879524597972247564602723858015071715649265090915963482837056034316409477608416640539805900188546197652106123975203212872565559839321440631183937179026918260681708295869160242718786907126640875055041151529567044503819613809652124136324296313984750661823657166576761453187131633362501750536760284254077347763134697493339920416778221895190152963355549106585208722594420575438540081219636781061191368490803563659781527188302971345418104030796417665817029390559075713288158724336375037996282499599680504626926823157686033074492343565095967313634421439014900826282061967156388992157506638606469082026504794309161095114852749171153739079262566934323295237673985849097499125924483281515760637323465763452451442060809201247757560599390237841967401800352822949660025682506459758382086528653097745475099950201739037731002951164991425282956477279159192409838771268310545036431274271169822389570255076970068641990654132366723100058859356533346062098003806973075926774538503757785217140744468623471067109358110621797459906740862958624680332499741897244681320467987297404230793848186115897127043143083151917639515794172412135214152575842253336831670025576487033215485187603401298814913977206869351418407546728035237705999838888353497507117755997065559504306326549470066055672147971451642107846962342966910462858153415387743917621923700446322915957706370290784085227054617016794862476772789722758230650909734050355178071695818162155660676952470997403537159438787657754627103881005127403097454002781512145789474477881775740226442874283375345940564973455647582474318735354168361141812374661754585674898028545834278659641804913381762649666108303779503966812504013285787011320632775179228704511479770903854694048347785874348679414006130571668182854680705564194483798584467215606797545463453054296448712323976142650009651844805288684930894015119710803724570809099017533319158361094361624934192259563082202484619042780064799987609460844949229995689845604604044628364038217394658288449085612268402286031304684571530303430000523679926090672941932474298778730171367402620848844350596731689796936805971423471635567838496444041248290306992675497477339319295217822611982148956840217053623789032735115800200037364386342098189200599568468046506566522918066616019363119615767166806397900363637979491602717912595067099175491785220345876687130590502149046608187250775153786959037543213355574929424539576921384228472830191112344718780453263136079836534933958290592300976481981363509204945157973719521322067007878421308830339158654649677210383407344075260707866083108869562878972181670147873495297390228337077056386579810772409897159157689020164184441255253937906536718901893309183636444861085049289216267240171575436224175067829872118432035906683045432779371250576780427133132194242439545106963038983154422760382396793943010096523353267375127084963583262421164397526717781964900960790573989218453255893591832346250185661548364809492914684784920923004879047004386920590925901141045124396625134470529459366832447510174119228240741086582049464899132862960345123615503676916002187700354718158358825626983537674287746529820117430055783100662155865486342093523583706874556224750724759328565474480247420362886280530187902963495458928466971305661376472701599039643998140199676770235006936453362820648522737036860155994092572694407734140733686425978958869461302974463729172787226712738212604491792237753981570896223238036644424832305252739863434835112665595216180517926671817424976966822567199616604234302974645639462247449291339572457498913930174557346034898895093418394374225094298753767686208579085066903016280372926523129322320401884011048366935528970424579762631684252986534169454977058762437712907521333859944397840778273769271461564441343802074012664109700797231080073449892259136155410639673544311529753458309671419151977150389323656739655573633449913005835050995285583345151477527351514846578468103200361288317297397029449158793241515386391179726482681181000468761415775486978120668825518347951119738673493696554345360731143205142576534031088970655496536876120388464980357722660513262348221275709596107135061547170218081297198064611358913839099857469619434882741583101832095017533339825864751849562844889473407434843264621559811529787739037191659295957712973232039549872831155921179243346702308807257693408977822870513219085694295982756892942457301632925103373502177019357825534113658633260796489612693990898066058506627079825280620557377758870263683525715645901578756727704432756304526500819670067401852375079043475233099735103616348398817976569187443814295164458311844205909913087326380256563999952128862528670059506959484494352684435670448488737848488036585043157675986291526563260612936949637787365623130643041625207040462127507088971514239747531254323222754837208879602687318375834360888365587684322522388961973146831961516631265931580382314505272333465279440415002199449899321569574535175100283218232650506991540649521316961183953436241767336606054107737769605126420269578816067998803888883780311617584512917731847986014565831286022561735070024870336446189292585748695467765896021273833814100270320295231017955307895953886610165876365692921219821014020545038797903688961179881433838587873476421005601795990929597899579335215301745786012342321928720790315865590492680421111547084702502637289506504638339458269640954308552609433919199968002160771105480865745378716003173023996881094307470213837976207938319009748191266022907855991397813848013502130778786067440096379817091026404725277259663388453786109342064713736238419373196837090892301764701523580484529088677473279302966727383217932637509497856093660925925634300780363118749642197449756298040087259033167745365730362627052359962399404258175919909681133100004933761977179822777153272467871816993279462576933022466678408263865878804821317060671150844925392106144309274689434558747075118744938026681834047090710831026986156130463982640181651152216711958631669366059783241295876201705942737338605238812513853032846325152017313718073519489359694759585145946122244307367395772363320775433509054676234544002050456639563484275112848256580664843842348658958173750365632533272205389203564513867796577827191889331324626600212491416492900701849596724600418745596363693081764220050392677184136727927273135078462327976907682380129121968494496980786495709179855095736985682912423154195757762215480185586054490409906671408430120226823129689126453266293187509802090266149384000853088140165171181770179940637433250606135319895080598312749255328909768874489161450354587284661595629020451106308852896827142759626066922086938610315358218731293246888266668533454609693419927955257782637170066228425641838920423108279505031254604909854173366049117192280829674985041856808204528630294938944030817296730457471088298963779861501216078770975910186481978737966477315928851817444369502664512027217704587939193146384129046704863259967900126518629093554531808650224655736342233300922260363085293088647755758571015380139744026892177482018050485387689586469083421027263557408528596489743924775042904515734787869649361950356314764712151445809351115059704451479389580484839915267585005809653677724336041946448412090801990263151066325755866041124148669482706097760778965969262457811807156700673715500205479145571636410009597129591151076861254890312041473013413858569522499908981082532424363889050409785108331985954834088823335543887561579288403337991155893021060684742238414436668988156193966434267586023984308153475297684543956816390686069790851889537575905267798580082500246676028324721422806631201512955099397357381830280550690086607171739329634089279998671330317630057399815371896745866152707343608826729894830358085782330001099030194377080491014061331875592287018842726802026226928986885508039537833095664283482797017108002640912907129275211367212232962423841898632783578154865559549861057205401986039082482010853052996407022555971257674312237834631914973469422012190318017496754369822727792826224140848408139154564359824812622908884824638752186243065488728226739051991338961703361566948898940536128178612384967274247262786167021597980103456900277109438713653696484563856132375988192491355441989933869100885275839550175676636170056152033037931586453849938298766869372855108028090637320476834244215628224333430439550713002618370077222942198154076024092809792880542246284232651818737106584858311167207695385956661738679274196862696649714797742882511500811025473406414691845209720132550190008846119295512450869854588247326333241148443961191889114853885727742694288924830503527428845142304582611220466855761065362916294169728275885101862870657965197841199282740569474132973919787273753178006700559902629114180559225551629183167775580176811917889569145104354179778953958860840902705132596195461178517452787295812248055348759540962792509964123290477678941384026881890092351987471874359767723338731972874324464895215410291961903760274484951540209164782811685220874619818088367114576319775589290617291753610222034922256643670882233448296943637233886060247633468950540400418377235734187399251480181237597784389580515410981126182838151473287887695285101427250712790692927042982239790274325405453891023747096218079550500889539106738529439559465224293513670368023036948755043043468299949226583186424047420245386544826673059706726951537311819524376523125808640124098595979398409257686202500550009531361045164672753949284188158682407076648256160597125749557147993855198883559959543843875230122601755666057709426465849935567917269383950941414622317627099159756904297932100746483131765498932542694978092690231712004011901760068092593739280362775445390425685644129264176012956213310191615837002615496802908802531672331378895973004711754574940231285821872023703400772970124404629018273195129436205284819286317122721886622593524620583335429784427384366266992778724271534739361098099847799113263084899121730951479197163224374638360945153382972008785664688187024381002067901347511218669392226095908715916993324096042564815897465722660028427591179280982886436844990065718073565484385687790595876028989467191450681757399249282203250498101189481817034735696084859397134816686178575911721546587819855378473126261882845469325730063046148836427985657096763750463799641401791420762313657195433093822179263281237896663138672898711786675487918752682862977102232067739002134433036188893713694737817837491750566917476674663843623747253672885332913110285801221229617123357413876106807370627108189282550142581829946816650212456812218866120897403846003120571688430622380648061576793932530781902691108101430111013839196980732891300202817439517366243392822310290913700825478459108011946851404242159175646250093657977461633326918825580549403707915455177805521641314421976765483317314314617057761035413917881222719992048560122383155393343250982210756182531906090919945242045837976609661151601460539011300936850273497512508351795933733783185196871345329726648921110995530261530805242054922627373611999495217227514114212657601435837433440477858655234615917599678073201016487143925732688032285815001457478489054868965302351815321725967609963534707293876149416339445488531065131274967188536561670607381739358248811373066688464210938621721760946925284186113867050932490724859251123650727100546503576335816498284487131282541956130126108808849574786206557171840670333584074057546098020460317095204695951436597458343062102077020456276304656411376462394870229183859340252678828521327757714601339766735358825795975629873425130382906544472680903338891469749593409684293929307678337125865023332298328734546263997168489918226822361832416914295399999459265458957428061993869785364378702414397742024593905618267929978993184406793432137791405278266393026866632256495952154642235523711807528792358235279973452094064332413845355824848362060619447812814293484323353593653749814430464800979695802819879679455536052520839066626512295273190263494197437336726384187726495108370923195813899758587686860546339359767316357045354954242097117401606721434366653743850351051110944679228408362769452009959128246738791323722866444893493044134989656599106796054420183595498616154434687084964789514966893010338121103079470497598914054725436662498863090460681017468772316300251900128725897176284895648374874190175731255776977955291034475825906756357018970426270754703960644495051926546891432145093406446549959617938722273430418942817772181848153744784166347311763752311985988802084985202215657857971512266534055505226304686795731350617659770546618402545974888985966413048934291324174119779525447291157370540379017685897997876004574366877635014462887205198569190485612035588199352904352228172232184733442955924979494646289721541397796338529477576066337320701201979270447561218790948247345751564264169075908246693581077623195076397001519680399640754622270743306050212579221905138381627132476886381748068093081082161143395758400052652967343132870797543786440562680612672657064517624640974125324851363169129076500852608843131071437775744981511156595619279764043704180511027350489842705990000812023343922755715978099751660093028393415784742798481788391583978784317208331958053904160938047978229082539661334487122953246624575441688987796256940187417042624457580034539034425543790703839849728719450162322635407002866438862558956263675687430967566668528196419465533866539670404039296052445844127551805465410362396801164378288225551639428749313445136516681736175096607232393759975890082397997308242794703087464404941345538194664782071727308774184129519337622014908757931588165988252666246220463853272851976468873980432203755917510656604620345555979855267752619235458186730332785093478761911637880455732880207164807266347064757933437541382129849911554007693810925152912441011920253309668902016250953889077318255501438068882840912396046525685763415089172142214812860831771641237953504331429687010381667782995596741708786504289862275395536362978918031530712433425467514812134249363799704433495184221128764881628504969379390817166600732520524312407099446567749376067729076747664414786205464285406971072765815298493608704371181597635702568196507465308873124410854117778654992237985709402772918864864648439581514223298397984426842110415443317102003596470028181019204324397125354806284650163285399770941189167857029045901612592584833428339702330246468852891954976020304972702693690336046941442675000435745687869643984313363743698981197682873978082169156740139992341896552478485500047154066027173566017110711510841687482992433225227663661400002100279431930191050593511444716875883285505129345167747989506066024447459114054444948698960003795255454484261853205951084076985955800677725868464083079791359213685268138344307154832009906271415836324002517835743007199459395246901189042531953866641750774560744841174621746531852997019065352219728304700516047267829012140781559047353374478980929051603269115598598509019887595744486650749866805285243855563944247652735473006306643501101221627177664657770460613414277010658150009392970068626548908909528169114367677066977776052234479468433579208392713878179426784538839799386946895679901925109056564387576252079270110795355564437109636146123504907966709504199789326370449908636042554719982461094749859448118727311793919557360961015754390883735273816476513675534887550010124149378387280986407388794685977610579626247600892349893599281973014826801848701998879131227937178853686318872657669176373878960294061291503033431968762437640878158982997068449300390005345020266921706925841347111792985059591152698870119929659810290354849134561878096510068960041869180400849771605419095984601557988326121090327891540148874531223080617032718975589429800596199788334789409859250712285369139049400279274682326388616818201921863661314759023922043879559752563207277685744672104099733950745989471760439582544595962260501413667732701986286529456426647521361882065491577590455564979876272542098331487877152834768487397596139793709376936988633316025312048056293136479509010554847125176717088886282303579781023707908926791098880667804470476415465467698011831635658980045197082262064828312572911479745464494403151703740846632080158994394818879598306473897777669941611925366784889102036441586211955812751588459367612918563056077556799415035628492783974374067423921168026275108689683262225503927284639767224864446436479402330930016442053084205117392317233780192840632777192071543440655621367863248954957020454853385752673527208215367604645090502806062173811488720500819782663480266578396799137826220228049936648565739508576838573045368097963044701924076710698432696850533300940598067306722089640810135967516811715842734848581271179303727502215014223723648297307902521228308564338149371337649219738977379695211907380167700107556769259057263585261851733075482651206752719936617963882507432236248695818523528639336788284159504593878331834709140596541165671267917131800646510106901539857464859951112615141716671291802120143352109201016625450867070426699341999762646780880436958896544497640545382960083969113958888945620294667428298579970567499734466526671707532666610213993936274943993629855870847171327813495383646036392021991303916328243667088750276312243686294148625945755377746662790524127782218692344308235287604413886988716410588155725466742235320402528356207479452907173581450842688062021580785213991241091206300665166786121492564315333774865375690411341395894026663871177108600470657944675996670037882535452528015717263579653359904724979480598040888675692604369753999744349556906199794354538531350849969507679712484558504187098209743233198715026119161568524273813545641208371330571191660062199412584766139641831376924289465097320556916239851940895809130256231559391928790283640946835013914312215155709363859845642083914863819959679146526865853223686923721795880721636882225905521309640866665365714361025261508153424561602835740847966355978752786606119594077936339532402318764570152095068073420344223075436284574941312683287471747992897095473830860770971952082565946077158490032367264960010980926391889411918958471583779991927477594199497336842249240428836239845957229962843638462692607425734414076178220880723591089405603506675249109538789069744227014610898815970524482195586510187052906722954736122127539137981090197394562714883370863913038754366760820461344711648010906146089038153532023149410335582832784134030550500971849241418087913658865540819373222908047080507619166312006439033167627025848406226259367486543413706429190864310411047832879763200061259725935734773972481759375740658388128146572860265390846603399153886270297646092325074392177642262262427246793365622318353098237656801605876425580164967847830307027561335784713140693790888287310382691782430181168720239520738865455394953617018540575860178714442893685499458410054589259609779584469035360730113494110859943694586330484963540394084869003031115987088075846307199221432804447324602043057554814759887568322353493620993568084651298404751851741837553397520539608366378786610074504527807544415168950713564099375638389741524375271488868673291030861698041965364237322183818530423505111249175259352156935125862203331955043405477749470079731586600389946662884928785846655562310272402949533308391474455154433706569088677655270788067750587187259547758635182394893384580493845084442409067954266798209118590399703224369252345600937809750147750692484625076907112181252220204050409768235095500063534405231067486665025197745749651344328403824518620998598471498326491632421860754213474746302026888503369826914525538948018717613393079978860263604493353960438219527411165059234157378489723441871232680085438826795706786104992751253878667644785937087809108609519965341452537882886747228615967494550245142157327773367363681234743330589769499918520102844168543359205530646032079043278770070602507973380222144112880777589635527829064564545296408841529242368606254770236857414144897528498931385432594500785627088476932109055379204215035803831066124884897206387465033708426997376687773524143733555737657328827983087086660024137843764658833753738376126081447315563804652568448080905839201712021543692926612536821600299680314564319334179490824201099832143948197171110356212573175710957863026969353713111523476662273662381462933524670282556614360900002775192408323286054096417386509429530498320431946105382079136400961010660535829022516520515580967563795912905891516153738669284757559730467190850653799555503024368605772508450951642397030759052551930312681919583111291807566905013740475449071964659967452120173104160248359267126908622450796038754024640384710230909466812547553491415503753558127846102372569933407945729391182364772174696029579841138820776761614475834324357727358819386555070894354923954469754645135362193818685568304270758183945396328960698164315440604374151683901783406773904629288174242060364356959243606059207295104509478929397530249185981576680551525088123172280792224015494477049543679773002781722503694507447181477922892417154072848170162272310396942815151995944654183649530649106750580818305202474311136364962673933531828294273441081250614279517810798358632087885632782082833756284225024899022855082050730356445471274910342609857218517697106337794249546337522194865680324541180485933029527816165895296913079950203223477272814187235439341207752227895314972937678514824088442098810440810470108754128130918638913988289439957064040793643752915218507173802446522454113862401719161847977720217949739133850628114107605924624512177151507400033847681709183632232725404351873543093016974531169997703694631885432623648898416256604458750865813721908131414075647313671717264849585015265413709371118284219571780982328640947773938402789985350313858962758070393283848583596120408122088496141556097911908556128662933945061142011778202292503949615864189854462973670857123961310794271889519174504975818330247311953562735731904553719394178029032871327028325144215799096407143576248115835466217333706475197316383132126789363869750166329332595352715052495874762864771670254656101329082697320455469051833447389678485349481363118893950707078502732679145491637251149999755587699032499793606059691814614135427323589233420755730904737206974588660832566199666156374820833258406343521680422720298514248487155696887989518674783507751039003584226875366195628295028976310576217567753601542643029181490513109468595947403156664430927955888491862511038223185297407435548970577448732820643192172131475231354542914107056594930532858342064758084669344364328868100079031022341110907818773834487174688294479012871591147093351017657516713016241117059626890697502655472440492952412706169017454959600560715268764195517781737909201395374030975703002689251759926806354748570556496076589418390172018893154302495601443677397364012823845374137392286909270875054148368685785278298626858594110945310236124394028912503486344444662747785325219394447947156708417084406751656616748453883712626670551026980040751443129588306727134309550614486921053902188641667953141980563984113596240160953717147836166561326111835142756823784666466641123267579028069877407275770743807987698915290819352008556819177553713587755871978065570078941805499860813799598856166438747386193303550805084637385607121541330165437653053840659568785172342925269951167772162587771146866010409572272474466908127334419908044886411284011378668361647938222181479529901492963540706304771803628616716624322608802143175981161192260374682953622431109353692054594081595035053897802749520847161253881821737544418661523902995825705676416476197851589701032992768929378480681618224634454741249434620355453658855890873257196500175544112714599259835135917769523193147203698377710702544743264721946957786095513379806954081442507896314123002168837037280984534900962169549676913562346655974087140411644786722423484669072555781731040835395001677961003204103989234294963222193410307137811735569976810754334086975252058472601721900175247853626076328408005887734455148937955866086335173105151836245891431648926533319387301605198521093849086011080910488785574416460075328557954506935200154390462018698318861389940582648189924093851218910176274911911944365824592146602100442366019669613860589218759253142942808500503996021323713172925166610115740350649582221173903169768067007146701301166315937175310916296372372114590209635556031735727564176667662224099490844008379383636342884855089473169772900151743897297579401905683293228303899297140105228843534145949837563543586307790049361847622796675814728132407670733640485439509428076215162972830265408308282039870425249168537497485328931289853441388062308505682100636924338832498306794842064296673931343326111600930052024534507752833548760054457578150304878313671970102481975800443059967723129599881669763932804615960032367704722240677360409536872365225377775408157837444763123641453814328375143207743453939808068602606680679576004274509230515947142303439347569807401614860342338148001895576318739465652627120061169015229950881047211444097786146574567021382856323558400488989013554143206678509529569905639884512680588110178961811754646953971683252840404520193236679320400719597564536817203811170594126140864396123790285893873747209070844246341743038842017706835662746055288514898586977699205986870923395240320363265480363898511821694510324148809329884290900418680163415046643009679383718222551406864284514947884696543193972018961241566400827167851824346451459476314778604687163388621309922205949215979363278961430508890216182148193372046588408943520688433591037125789739404452646056142545012770538347155890044108268712957205603981159255122594486658445101438555927634919705001750357611397980979793467785533655777736468289928764797450029615774236134395309517016478052774643161541173520477512186512801524219539241890212600043450600227131453784704261119900054390517508077303890584595539871166701731349894034188852491699783930902360121753253579871248267243374647487121088482954689749517873778281562154169100664479515408238839941551939563343167866564705069434347906466926787320595871798201810441995090375001659422602723884223045296262950719156348208929808058516185186716629979885667133683551961112249163102358118747123923758472080561947514065694727035642727308860787187292303479488894164961225049266664874406654021062923600957578810118192476739720107480746554644910272714493693756723330088724091351070239489415574137355718878990956887266528238411658386162913733144871782392106424344012056551364781625236675718693724834354204846860254007002138311831505936259858771968447715912535510376087575379046747873490565318800953823263085133149574217291315372917685926835397182552891374860221906082322458697017550336614507994061669340123902860592982372127976482594154657283662074241362730952408602997708171842101836607490167005614362157273637856642627638745857991675036387048764008795021445865211091312425748603430569365819994521545080425702408957597832505750660494169283953278750464081090452106642753425289666850621104364247824904959295690266412640106610792688040487791024018904156764797034860500880787350496967741409976239623328692268546697525572326924887611975082119411791393524111345284734013156077910202388795174480507871072647044663076348881070943310991871313726624779690099041338258229240271435097635618666906323240352442940623225031370789804825640882412069175239645045145685550299636154949373949143554250918602209332577109001722121381969333646962439714358201193109029328119087477523369641044574276524608232095424796463740184968428605506966204925500099883007390905086774298653517042892321299149193894769802856119529787286246506647081363443809095023251837680379227544918711093190729467352253117706445322077363420994781846783141601630844752123870394857393461379508099088266910375587483069784482901591087713922247133541607980057961766353640106736843476573283878605772021230153663018282057283584191365283363467449003067944722966237940657931635966515089235975761552579067300595114575318931674377547870827100831034398245444528487094369583022409266161135010040164584192011858742930040021250132022921118386174599168919165105377864678014782024657617145751617851858974470629308717207434307367795035198407919983038290068098753666347782876638193091090353452893397601421781161553340960064352001639619960331118118999401104512691060131027823763910333142387136291754748255844157308789022466020219809572164558629985383121048025653599471973667911545395924256821360265228295348570897396816902346172360783754089785750005188840860158976640348801851377950095959813018702868675000442707502646986214849473796807490964907803020272218130628074272370208538425938023912816024742213876423029628091364179764537539729896034489993852663013065642925325257537823790422867902979810765220831302973430243323197038522667588050951879784565630712606015862561456769176475105670253953924912529341571846114786906095089873072142333491412929635681111909139260988303769579140848950799364687879520348741541124870172034661124007375706079707895732643749627402503742861860613284271470215163083492966378431934047230525202896471746874452846212976164073982585694474400209174169313418548759346400190096368434193631680412287755649351869442239395074432235637611061097595213943491865861263817119300153299583061325606531105730856228060560080684284930015648060842706002750531106794036227696639514091415801334163494555684076058708973972768721051385426522030314083614235687191859416390784885404922860513478952077377115899005636819958343531489788235484536763335326751764273981638180879277096632640606142436253089884743167040169618257618777990082085656841463132141070763635858912304005739004635218056097209493547819802202885818058878755432214287997766019089726163867675215062750834413441494119492097418522325658393160613541758122965339176154192799522828482834572503219100148561429831737574526010111696254086893477751690586128242221207375675152835489165174564197513692166268893172543498471426925231801691246322009997616131161098604675222440034082395905405247618479658920093973675661400181031928973618495146707902749758719142905170785432769895440739104102627815294126430223031899979012748535630286397182216452947628695040096070229834639827711287207190166685683563033614600415731976495799754675886895836263950607185425589797432515759305026516128055950141768559700778515558387482351582020817332374890578234649093023895648226509564507113248956794472025115245032465031220703876554502745291303610439158057519410409846107614056767466107796729882246957709995785118140565159517664838776441927644355515732664074894673663743470386882025878833895877973182835189280854096964306601377349499167797522950792044829456193426189715874889441192046343534324542005791383170538044408654080611301679039175117981473839207052862994571346230424705909258229580739363907826440259411114584758643045013020487997769391358022321562164285806816194736406706432974317220315594834168298706827136789952102916303972531626682085244238480724930846363395953830636591294173368652855584846575565912825506808071569832688648795409035772286034269062614450643061599748300902309150146923861932903198050782737932668271536417064346061613580000170456963948236093020843115953626322441068521271002964290708856179382974860777587387417328142141077313951137310192841623796785144077810176136211058964618751747341823705749026903064285739807955211854877950664157039361685395328662300811813870827965054048902507370131939627056706793884729235635458306020481757296322325634992975046368630505104200055987336859452969523109432778066739098403863990364118306936367402114998877159357843756389583627041131084946226617225413222700984008915772507061674282745159367364190506724435140649741878967076993052763791270866482392964359179864239064477522631928094566461723946678030582406654543234828562109112542685474675348620014567714765154693001953458309856151137704305569629878405988971436233248186989348025205797734772097073444810753564391025078976787552937306867967396021866635892412318624578932782267980901405417692022113055172724824717776392059523549720330913346655805551795181773930285498109946488572663709605875204591775987516874599492683736657870287862750782539508503106120405059938921605896824862173215305651404153893928279749813776815877250528428675774074374208613653561612667605294792622772277561209181604544341628206781375731756673700911731320890950441248924541102280737718942877251946951445092355452169333558407493273154214189893305493450801609219431938374829515296443807655233830783034111229598673635270099462848432916944583580322828406502360917829863065267715219242385734150056080255740053623528556999579584355010841244773269999457040221973564339961577750779396493220629787882251833879535686025798764511489644403419815026957659118481244727441721535972202386036941339054657756102347504966062491211949811889365511025884245013195840281589234952059330505218051571527441548258433095668160035370735122434112349456867770985218057479573268808232963790412942574410080743369974547866200653374268504964623527593485660901504321484545469870395194587716599400902604614293409483443704086343153358656258662529758966224487154245470701336865830997146667504797202063069318750332106836714777386729884673402074800243147108020452290492215954086867387895506628599759311271110352892339362467229635615220485881717738285029413051872237788436741294613732877754683490366428613807985957348424080295419207045961619362209124450555012328518158898739595092983366770117196876211861606606887566653333671309082281331466242875456960574969681997425343228842527168401204574017987875822254989007678411088676126441500588981502491536439015753993419613500409978600832206896886603441623338281443405341371285095609528104862882339611788286268060262873012950804176478665560426012205018452986636421302611386489188871239052240595457754467983745463032946267159877872714413981615165644035438563726728115385458929424797083843721203556827394463942635044788199043966709750178327627694960986732412411277907047024492270507118919316166059853898665190756113056538534282378897986550620539860338450946716787655182232777289322361677788116265435003782969213844555484195896282854523513634629959821069934490485507393031786497971657165833977039034653177986594198981876693929513080042449263211901413324821702350789859446608046211131894898960076600738231573349037379443965654784397376268161058233064713754357584885861376023031155886816198994265844799570835479000649710123197736798382399057108544680846720815294813937621806161499340918118799007323488981831764134522959017332311727971804585498589034135077123088173066441562467139601079932667364094491047999662290721049668496083399055562717825049374253981699028962078017279727133301262136579804743437403571165623621120039347300521961952406848320962095486680139719246681697021909767101818351640424930914035208814448406693894692198025815489258231758384828621385452596838083908472217137863535332993131226283268216299785600886130540509813587567655261068354443067743592361655504501067709139297702078078984911613609113898095523550487979546898569607328146129627923975535440348044345042319220247435532470845346749053235552196760114149698748597881902762088354387392276847142411617645576418081682669593592408925117561262403996279609097502136360724678740071565124374529995847781103309759940383213437228873109342492202211444902108201457879747866690922188278963755502100899440880544773989016369347394044319721524745827928945667452066041313901924747514265659463887777146979511369962843185520840736260025080098831631504048460952223723684779495439033534353206876432012974025181462944312247964183900457451922064237480316948234655555491633552604430445160941764835814118264005953800012732521883792946318800119407960769615721125047136306585621195822280790217792974507843817712232159894391712059596801666817682452636655280598680094192668580887228209450273782407574338161447728726471795950345433192788669075418581341792996751269448665969296435168504044826278281900136198876738246472280043974098645608891185011570142984966672350335422182048093285213762411203047621965899554907424755016856825949767797528466734321213786271124950092111565403460923016101208061508513966260549296953347579558855291391682828330534027538613000142804087394971162071136734223763666017044026530164167688864812332165672449896175936874136024990781077113170990205954056947663500596981544265089068706385122048380227663322211232361470260021230492778091908174310234129144168832455931906908399263012334672621048365503628466406313087592018691860512650161179796068568208949564661771671406675622617106170189611516417724673456123773066849106791698301242847734854819988142207780446750267423002223038275165795539601949831171911344606861017716648961025996330156278960736663366818614480339713920410734542469736942129066647667383872975050024903731854180877542011735538582984366842085947457587296962446584613190559270202277981019128992826210419795572206139709992400435525179580139589070253485400650808697470824188553040002782580737389413580122723742200191690809869145388450198582512106901105618203857357869373952020010573601699590835804270745467967751296255627508965071729857871509014455095808074102571154403784889650054476806480341393825262751697802408942148620174013733757350558516969103899857779692408266076175296208518348828315713946685366047625993353413216173315824716592154773976438342779374498198157591260566649241955556701161301366927793330175883485645375751934303131015777481269850034611989051771152888140406359769602916687034927553397136124343388690438129009557932660767753654433699911217777937424224894783915973737084912069359237212612226484118885862435152313626532244048356157671889351329702831311378342144026408190334161755066395567330104984922332482826721125750060505068147885639459575207402144739336982822040602274053350248764301761964662111030078264517998568013456358571415680894034302872849587139501279315938425974297805783022380334277774150958635455671724234861641839954217415575977913624586631789918541225807100691031629138095506785768891979501141429451985360444058954992549443710740086105836001556846288847224993029951348159540643752116012155697458841542118280705412722562343545816322730210693241204459154242746631362249589095784679024980817533194424729885528342798227247266940337227548910040922353896854200544471793796348620941428939115508702348331201066524636183050264542663671842187941788155525738916568010224511170851259002683780839227739699220298023181338261602982587428448513280670264910073879287445936256727631093691321055892604761842788423520430349064801543590929957693420976398049260399451094523074109852308798826448546621740840843255404624340694783235529359481813610129514166520677109347705450417155054616429040600295514154151159966514879767445578587378101455693132822249239305997747377707184216054402062560518241438986276382174675988524421885650737115407000785458753694242330411189167862331678540992674294043627765942164994035640327234213931219223086415240723511274655053405336516295503795942294153969960105112970657430502493146855377406557219702732446151788173013930607129787378677534443554017297363095636413255445904679466388346275811339921152351741174614721232604392649560624397328777402554293976937437959941746903854546743718993019852358798374252212869883861224296276088262543352169885780608092594449956554344280728647055591720344356919532584367510263070738710176402589121739113998739813010470117102908719624739078398365565605183486997345584945823682771072080585765374978944016776424457229664979232541623817798192624660273277625620991233760788389668208933211831830462420119347277541473475550646684417189612529672049386875483289199411414500918506376112278146015790839298845996550436814056339903024148079098315780316840916023176649135643441927072982350330288198677390985213150679705397359819180968569203411396122930640625523585568237612286092545108693635616484021069571551110558776211847555095221255552554209325969039930874850750153451270659944869516727219645534669332765693687059924110949081220251687826674514424514545403979812143446952147662142971810626889867040003214391024373367071228139736019008467201573507656620641630570164001641198499561702777049099883977163831314581590844541605827585518644449928375082228613040969907873182425346466785473858719245347677219619271857660531821618580802668164638951580144339120113099302855528449700762632498746591343045668551768612200200247111503028831008551425094022696048294966885384368807873324730229013047398334582395818097172156179531164061077111354043446506444597708430417204552908761786881718043397134882492980382438725980991774998632588160937684170536602394157944356990535039101503240940141006256158403856862081953085702948944491723290422127890522752973239410309760720412120491149637945301601783556379664465438635826097960792726019404507191581575829259343271781271118265778064161767050357917032474539751622468691475557220386826455787428109964041497136545840185200029634934697905233153689966563869077852719082573175833728068775043893083046956851740284292778885240728359356766597764595106479885378565989384797361947848115418491436051421472248911753606501552998139111266530785933442136352554548115881246764506661160866706972751247354299279204701154559862216448768610558710287108588442096438393660921017281556844226183329266299892777379873786938764715285759156670608787391719865025568341168672459922312201668806481380867498652131108054602657684201556727618781466335262886399572573369810671181928276174644998659451340574689972755890395235711586296810185254831776511682455099808964958316511811819734835558255593315890887632010480770785203803477440898795825766348388077981729962878153770812969561624239874134544769857778560544785058849281524048845440066094698415488484494942855168600449847603184396810330093905097711178099820096004448077869476675932602240065749481372699652975496111893873160704847877323733008062440235551816591002149382029215545114469821948303806271396752282819910897108212841005610716184107587580077799949178663533189764140330085453157523344620720340888819088366293844913531513280837544759837106348329897332210922470706597093991445831750967352661782186365562415847694917362097326332904413624598969889867092273080266305238505680443513824871863281302219350431010948687062637788388198912640435912843202216070915580572384359523637189105116866394071878838392178627104924170704208203759214066405047989470918990189218928679559953004452643271929752201181072822935570144521608086784575591768842322011629685371201805583766686274854176962573234430897507010812254126673294210722736720507060657650402107938854614852086906003977227473078648082189891534670209239246588244088153941127471266351288566803466154846159906826972639897316648860764488855329105714140974879009237713748077719700145554724940591946519144767255522749728240610646265634239481278109388551895567859173342333370795925961049548795254022309501103361942531886913110001793930926048323293965189853634431522393855118711323821871551682259702402398289964549949338602761099617375335289407242180891227103579322541117982828062679682166697517578373632527104915544564893930574848867415198020884621922013989782336815587109405465017286011852518569832085797860814485501621898268748214759452436654502253056895122853493841577565173764105781584633166334224025109655043147622054162088208796281563056222324019035825700672815084758665328495661578954902976319144743775229962862672496629075978679324419640554690625050851356438811651233705904053396413338304304781439258905578276625706397281579378564246983201494102266953058763250790890430563993070810527370041413625610704032246388166846338995216809408452093658024179460360124423753345905416242901360137201495090903885180845189262043395391406680540363738127331718631709023621989055050890657428180841979698193743357508356033926155187967368688226064267312227659546628532743900554664334809990213626998670751377542965003277352001954876521089870792226244249074406994306984869107754771412814997859116690782340065263788854993043571334145674921076003753583709888818468572312620125179928455714122032302079762790276794549666573884162426922369325732501184884731950411425928742326511500780947700387609669203000321957526199057608388697480482889435206714042122547055113147167532501134219152066334286956351118439038156639392596858229269492780342301614378641525007444311575069018547293266538471315619346344583664055712366292472882764227903774324158891273780595813178288466288025647165599115797254587243537617365487615436332809076355045365135131907473507734575783367559610429256639101747278326527245038817314132405603104700813371817170425371764915355797348720372760451683766887727465750972865262192067276507391803302107133275901546369392674369518217710386029372539520664646066605813972761969845698053384441325983524940925927172148580741054925845540145049355869860149944159711026022539543238722658037177827508078179253240337459599622613276795058769258725873084122695418551567535836151995443306063324416921556330791461033950595227948176858000857334853431102429056187434823951453124453185736589488064459434776795210675846808076067214536348701700907098306825477226210720511545780220041691119340293903227968023946944599604821479081154021977866486082154123165128985825924991722605328773322504802506703709991695515166152077496721241833746797299886446259128628334650298498101177016595287572176579282252328020209959832607288187127154615800212653118428224437756444013636943560042016720517912000600106725986015881094237981144082672332434415615367917845358553388565451819029316611879372022551929584446064252790956429885996232038924644846522360169177271826879055322201346839472782039927629581039480817702024778155952517098258583535477841927028221073614005018792903221854543454483694834012438645251000610497517942790746280333313536239004672500438262960984385100364375246038638519304037948094252993867603784590821848032144828327740068241900196519440454961164566309902962928277577024885258137482966881894664418546232313021494307872976264640917800283974628975567530256244237591593235020876723124007187101412235405709349626673161241305705407108020228240747382997763284314401243673732907812438465579039236582199272973403620700645820768774778738581488987567170304396873108260481888152748646347238924607596927778117164290809086700942286574061115549895303076136519455764248120412253835000250130238612073083693750436657339493604681543820380567139955121518345373715506411093284302284934665284023189869646218761236287200328869358562605737535599382419469366554808941386782100647991998983104942217232987008955996512158906338648773133835279179370722109366378448673224292758746955131768101001893989599099030263110723966248396747356884620534064240752568649971884647587457900760983546047682883455505365968193453077908794184735158368586059260251615532944895872444661482116834287613266756816648457185621159562586435646404313156890794897211657560715864346512441677483261725928874263703285946181600323265722377540274563868312466200263602692350646964201355630767245815020973784952763435452604433330163484708908814424654981415114835932185213943144171309675687345092183593685431670124860631106652305411345466706747073947762402979869309706549095426178570293308922776205066046028659785312877555815070983674650223935402663518499060851569788630262782667993362768615099597163964850779659707657128245623212977473018790399165107774040023572532956001512283772522687115359932321160503369718551017336089091662451373730857479582575142790251063410779613643475280307006410634354712051494549906067211457020820085986393854038377012179657511731348071379652578847465903332484067288160966007631059475131892957140320472479368093285189833719114620437882521331656268066668544102875633681938790964048463239969898499327507257207499627214022025175478623563689719136169203569480271495865013301120859866897161889631511644974068972029509070731100786449435611515676466423306823918205611887976818689555583760204830362386138287493349753712084481067997718148606446898028101586842266022873371956816176804233289985355947346632357319040578844445504170695464670085314031678708734537096861791738326384695042117022943867491495542460852994313217824856479760903643509493852519378648713571015231064761634371629261555290543246947410198100103226484180419658382600644939384439026339745218694116610362048536131560156278666930786432685396285092565286651615125013618219899422433601822525209485262379831614461769514959532772756288276241436749333854989143459666995007695395978106658915644847382500149035092053901027985776100412742036478085941402329345390447633171613515010058658956808824649139404245732040527185092161833593501410531306557471180272136995809336555384146610585358713747732600780554176260828407049857337451552821471996862118486171286626876391264644037814826285692706235583437000724724424199359295169296842317880962494937894602190529242538290485166824520288852794825988864000261797410618976086861839401542011031477169680094865170529147656013138009360748822515148412760881478941300691265800696198145764237226876361359759746332439823257506377114142150057543852110276303767276239225152823060831885083940499547545690478861693882403681150504468180999512380134477693884113957451855909707460959891070599367790457409725341787333660865183624831548066956964396145207023778732507625626906717554428785676468151464272809235322659429262779988804699820461037059179790740409220129941209582808770035130854901198235957317437406107565175158594188899765531903031348414231991548737342854517071990921318390317433533826117163341711672141721703826591513351603056662607228319889447281514657289799854593846830527791373239739193397677650122026086235309178785649287009163840400457194116889905015255566533447421850269340895219437130200164535756616941566649293732404828937822671061670344219144216081639840762336331619013176208082312361451005110239723568011822124386328553019498795940313137002037231644312798053895631649048322163329504159631202855065108563933209329337082590605012485974058753557950105123742828621406685502318313647738201813206212558808568535577407412349301136673498072513745545476726000448527248438170678664394871466660404657208854483867516361820261716098530382206085573902827256468129160007761601540876605523912668780214323147790692226344662452745626400027466176774104286158398863410554790353030217382044050134755902846809152119913500657105637422085445712541305608601061308109731280195145536461842493405737860613599205808694509980488560025629408539848791830118785025720978705120072351262846755166472703277380733110854826442139665515414552582132787710962484123865791191222738911298232097063967230042091234061001881701138003619327472904888256745983860261055198518804147280415042757588520768375453372099960538338300891779111204220649638022168093076435288501432336096847134648476193760012233888239553319562103103078272352930215002685335407297571139652575018705356602564138164244077439173096996779754548534124273507356411289495382728942739215724906176642950259796081644416416497107999709872533767455606823509108020808032590482567746203444209308174278520560229573150644041454805743650003787118194613179701111996946254073484986872523418639300257183605952657913067661698161361423377081384337258743417272476111875988855365365950205299140916260197931957952242674073431901364748999726909597927288740007388781258779211425681701833666433112941304738663536108416656361699428415908187317853235689775078684841804446386235643441494542415674615485211304101505001512363120061519892199391749528515396142363528763459237749294904559245527309585688860861483184082461901550767828072669390337181325040990936387116519044854487165957530705703634704998234486288977927981200613252314488486333287824965119346873738073728183346045640333624369322736088315521434031337414164129068339215877204315430190746577416313590994527348884336333722339201522310595558659745111982437465528099769902578281446410734054791670872174229802310487827656289264830232544412550626522181765318987083618730924488307854290077040658403481033099641006532057713856474383529296960231074630317826779699620928784913224849266201649896402596097032115870530081092252357900222361349868829413552499967582851522544545288080170333555734048395796276682335520344786347025541611006851844505401815640584416250052604350098300419446524019979869500664675282512444719048321141163150427727177293747495740962978658195476595079681961409352878986047587366496714232436034507533212818980759450404930072976262713377015817008774309607743852068426814317263016828866841887790945759880025802713030725860723466083712987864621781897112369947727301111118644648427051364438879622955816434059103019570036912786055853499892304223325957656228355430387399781339513240892976851440578550261875944880248893626518719015696076606498700103597637412836176576080975912476015176601719458253593903028976506293039765471313803130364570505135439253773200888307899801267316736082429219690771514876258244619068608472921520487238008024127124432067464712131727426300987316078011717745700559138066595685663266162467951941119999086130619617186351454719165960467301531570526557094058447435889019993783817490239266562118182960091812997460411133584840757718746158858018541271284180569094335914590370930000666571233152269369809103038909220194298757226442309101830941660164683590646543796586293394559680879964395267371234016393654214221594373711502436760879631878068768547269758627522911506520277057495154983465944313228348854083935532292215209883040958810028106812398130490892517349781917804081616008956981901571605671850847388434327047466251579993954233907316155192532499622970011515831183229248125019963885485041014322345929953739197324179177630987840503672689246690042167526565522348783186949085036721622734820910719099088894945369876531273526810453286566068918530407803679507901459519676528624416780302005825455923755991122180443625301040598948183612262883700852456395639157675793458940455322521461181341076925092202965489526747292515357399647228462020400738167923140922084218868021637476015828266694373828752801719215994159221042410762333841684926330055044103830361069238064864531016683333069385731753820113906609568039199145822706250119638052715062858036656412958591277430504091554407363669316114238136707344900154833993894036575481973836653366565249332953554788432751580455914096248447397617244943080727482765740817074631407704914675218245971670074600640166934671856431009656411394512339475840231068155459785584200607784653146361363323768004833504988048781097539137791220627781865034402813465248971862101537055537882949991016190792585272494239208807618002469395584181373573212113539095222233546640828103833770064095574525303051184366131821200517646517415035376060711929548202327046153959116422471504159578048733525718749684410534399457995231627801808338939021292104935062810484087383191068882929604982402553240248783746825514053615497174934548237179926699322523115289247982734433864439972164163368641461149569649404704487382037557933227515257212356678346518032895299808525753925116721136793849077273968374515595861117957341391373768369462632486849594412079981335543169474346297404938187953594402894754768386043502061265977835752571457792667211092884104577988545778510792215603909943670685478616307047168039613825910220741800888354330346126698473955941589895379261842471988082505559491388823966121563416792177549619253646757419128968610784613718821595667392215691630579558069141803467818270739160016044402000912645985099589568555843572140196661312241977896726477062964568436765508248745256770297271428843403557910955258977996246534475718515820255210367569270216284932963575595450745986052135573926320051529691120963364839110914817834024801117209482961052948494877738291529588929608629815073915721450234682084013468643249730856545749060731379260879875797686385713961782964244334912904396837318373388022129315453202688356542692536291021016854087751539474358769389898501817532093596486644152703135300849200900777427309746911676711213330096283779663197524591246371757632228305197309569292279062858490782686193068980982461780432846744913504675952856115537889510795779902681540441646008010271943367595671889952950879982325655077005032985694087637564268215477861474518277452083660683355431988863317951075561120513609152638416455674910560036296003453026595636713323460255486618753471711517881286077506991849931714972562543114588806013011576022207693882070294070763463897614144370150689145056511396293543496554270149855196560337007566049813195888514889372305185607502949419192933272103543381525002414771990752587261140774870648089776091736144967335906112693629852582173311637230063845957413451682577486039904097660214661260389556867276676580442643579908195508679612007752734177371676489132090507851830970448575593512261739435331258448997519721186508738522107305795294316778162539371752970577635798069306889058989646129726908405637658793595104266592929041457876336163771674709238163118177238357083109663238866983106370557585871556622763740850930830825339442898427722699325762002462658907033842831359039727532638483859485656846143431904408540273639293676198712454622980722268763073871139553705965547811633208393174024604555374133924029187505428545288588022804268161374525538726142521722765500551354633404651574989281114172433487262258388688074987446223272310096937466763047805469359187036767311067279685471954811394442774325523339914207204619714140291349818043959938055024950375317650812867026854305472267731880072839933666505365460028233491757678268659131211315308713561428097860677003191189666799619360307290635467894316311000518539080154942851489526882969319388586111881171215588790561383225600428950478115792119578465888486469165771718026910541442854643289124863097827312326543417460230965185799885968764275923885849689202183206326194637497010066686820765198195450953920814317627069244472543633950464257438259871412057983650875653817406853854700476492287161292797444212807335892012999741041690635629377844781087692091412368976636365895877016310522201558847796064597055296373668227462878797122217773207346888173307131776916374676064881203047429541520617504711591669813674482503567022828932789602789201959588349737433727407763309917105014847996210210820991591666236675964096705250470892042556014455833929985716275829395037233399248506948676706530295934996290507220771299874312739792649567785164904195236467092019897307032033390310738357675061180577874645079677737761538445765458307570546153487559008006798563452717883997377638268113778835726433798470239782585397768512363635671645847084583376078128317183907814250268714029534832773701993881695973126533852620735162244402896526504707279485245161172784762106590101248054604337848189670674590357443740909387385464400809305705299209320074437340052617681714949596918894977426666983210004292962381714192718789329331185776003102713110955723500674110348481285077003483087081285056739068034361398923011948073116451564530032812339321141582038462430159269027784407698227450718382112710861913156105929203752054602852304587727090715398175283050422070864024013162786501477696922040889892661473327742787345543646829938982759130962594326721972220854435126222739154725949574663302674230509899481887026444312244518051636147583573103953230174725483141644006204579397166262143754531469300139988121225285192525331253735283540760937969019645107730853787956266212606484711533095786473442745159696455617250610984379604404456674659693308370857080346843045668115913193837703781942039846654153419097369442312617472723764734027787295515290258407776154496240409700555039181699231929998030195231429047355458542203777833311227043910043780053883503889328439772259135525288330294264675384464906774959595140297705593409394540292110151165289922115252299056600607717641654169724327317120717486222215968887859342420420778528977609696463213674270602363981404173027114705604343226135253907337622386552769359980316212143825647301818473541691858177489674991901699551671613085234254211232439028335025823726947860601656373250877452076820585272943790459396736212652040692178461672961759245604989156370931376636374563199925278932166312890133600845431324396792570836830590626844940661050561001958550102028775480960663132884820126700469112351859596783932737469275365271063568374377571254327438937303890451488837066526522745551023654626928890805242019416615842132437317204665920104186120106387402855188165107475150183457634880617531565872975723835983694382409957191793854309130213240489587225408567741449220983598986950390868850506303874013517680718816155670908883881581099918055278679845197978488152190238777523545053291403168443239143512006566452290280616748670418201130129351574720834676605534525461672242996837277990556529930350885407221588488155214654528621208892322337083092161625398628313809129005062356976242646673837374424256348217351204063796988614542136233507405740078532348031464027284468677968435328430554134951692051819824457868904657113693813451207999529415856267686575160335287493667278822954041534874110233660289722203791385316152194650476906101720981820856324287347547953636912548777874854021058149487824160376409435485624658194833458963873459432779672560742983664584683027102331765663992965062227969905179467688988608106661113025889563986543827017376206715623608004466393879652266220123420000049346157810931125560860923585887886312591629150457082206252949417528956314052080808004372982464789319996480940074611323408149790846537944268945030500461643734565220553489033070824217988382444557707851753911158443061233736606243306512147471261854670775591707087177205254451145859793883541399807339661127660305507683401482740411279029588569939990851102067064083081375619733440017347669016078576754137719139137020095015034598552468955078343408821691535002075431260771524618409553147872766984648374218268055180408293064921147114633109843027008815592741390080250019215689284445876167749954263532970789080139086147936720141082364048308525471085821656623353684270150228486296185197002003487778285516993644601451222992352285142114000346215859216897085717364741826707396084239252490930457718917513485402257468525278408779594094056652982480156684117330114735748744017453575352213275052734668626678232652813572177290264359086605211606599132113592895762459416417800235089954777454926842484502482591910870591920087149152894297714479375715389622273395699871361178183019602215733053456570107628205749922473285936137408105189739956816990801276323846108046343883041460513637702076433907797593338522496974576681541829284837788573097815630312804334901899503802971275895868518403461481367362059966057554031146688878917243045549765574042701609739431784395433623089954859145729703732647553435510052732772045103184345231669529245889845965641582116774620404163764524331005645171374034859511615775398657331108342680493458423207880282243512430807284998031670422593254538524638227590805970801012652702177954034765073548935338514067303843067003303513953398857327271911188617361630841507516115857987917933013516417720428486325478983460325206247529393709464363805153921384447520307495215344554913414524016437014888610727670515254069857384532074527250988543257403327736428522197710268655314175219601699758968293898071195411505711394505344089346787092231535410367783906590779656008337289570297674018621288729695396609269639805537633050679568971386695017753884304851416389434257977544886852727776104981579392404137391612771485695949761150930014414836233695661594251571913417997922130420357682201174890121609096742339584425990527453384749862651038262506011768496986155066813655853315219431307352756795114389155661535518877357373819353592925262757244305293222549717844529532200372577277487213330872139988446977454117007890949782785446714953604531546816823565890160298144150979195196287882110696219857538540842021110380942512773147116079643190056223944485249368884342996836101927933178695202234638783582089475273665043436109423271937334292347169695017802139176604069241628087580270278836127044840139064035924958422673537021340158089459231876396214818868739016093211727172641740766529970089809325524048112937931052545346582754659247677451869783279632884170935142706231413324138042339571203134089316145532113676056360239962160928112051338950614714155652130790667449967710351131819126640159589685570769110498023184422177490474462092506741398846790651515965002679500988241870984518578963309093161254970920448865897029907998459366889931102144947581817007350593502858564140783247512634457655187744522432079389250505948402054091982938354349061294051165064260741464506247130218298957096107036343786755968580376690998435644869220524300577303734799627224531327149390873237769583999587909639434976504108198356449496826141074330070006749320649163333555313674780341696344629806877750123728609250541634341186585798024503012935832713300090274109464754138762863569715916182660768179125895740618350488961352801369443439538856480971926349104192691513872924466750864059256873674780145951926334031223707294925368402880093987351058449732750079863686717648285174254092797239755653243969281984299864779338871375774233272304304470395778165238944203124078153628861075866058467749290243689209575605526950283036112813113233691428335783909347570679760112621274448727804807318965515155986981367277088600415939489108127967659455318373972196208313078718235522499641617193897639191869777369327662892563011069046379521957351377311860812272942176370790628897233877142713552596293842866145473444168292744828095170499570351234846744126568456716138843885883802690186479768320275228708542478976875458519405318115230828331799081847908856399468237500068180490004552547413375365242779188554409898678401916975062389624681305908197637409777494758235527143400195827465575462896277560009367018254314515717250101024199768672118617007774422715886163009445129753632716865825484583573361494398543271750080849625434908204270417824217036130993729361844265477052172635533119296009185283208218529063258291759345386701318778698715198759534098643408443934490752000522222029573939735740496475229372651577755733124963843282859348002540578528765320258231192860529847406929922044933808681825072247292224338026004660531056342459727271142599577790404168536951772560275159404520971067090346240854746555706029822250755006574828133404640029552718302258868773231223513202376767663810727441972108865142763940558740114699355258380393942676492244490838024109795714729832566430715918606619990052342859606979848197774414441949023323341507391236197592181260215262297234970316534178191993257621272067827189742625448553829102762757093023271553488778171330088329046625939072767730853181397637115866761886322994287690184721651050073571189085329838743375765368982821862764935152019617309319415626534496048768297648496840348629241283419733971762199306352951659942079885001105370186654656142076463759663926513176647640152368952979483785878949958584782619899987627636885002881127477841697795987631664200750125746939926936246467512054903834879828508781053995007847505557229007194882838677642155516227160052894807367287460035942602889304106095189374209261974741687679424185226319173440960295579507567602499594860632392198817773812277005588467412975641127762235455187811506967909324399950695947213923416850126941824097919334570193337520516205070993272537853492679362121053563193924818232803339150841044285231839453851879685062597344253708808539396729173965354376059192051557751447542197248232759809168679999851324620170523376370485454366573478130329155513157513974289780435346799235474306212051530142491115312969326978816452038099350972721104676773440069529877854981116396605446592981395096592290949190317949300695842874349068914254828027567574916753822837835709395352874744405322069549890515283836425839207483111802402038179539319036265416276169244380232575633972766933729196341156273790595514948528309293088947609441028223996275378264621371466254796245772371851453137612378806465130566389288962569360653872272427008525383707524457636076550100571025081764223405422525428663407066106538736558201759840776090651065184468634806464750173289430735898465918377993142988860829702605485149901555359680436324143539990508830932962236354933510857965254394069932236374229739895809285478678588517042836638122916231577611491197361376013913818009378184444009295824564707182408985720885789378123881600943215060902502140873950723138209715372179221702449810978076022105001045695332196494459386084162032995676199725473851923529850252473800002931492097798027070045395888232499090370119098769264192445418991677307935411297077187685170527818692174568830593738753683121746638644072842879935801426305514837238375720524542297495303924824954834756650192348158423261773567041311308820835360196309811676082287557532070927718121048007203915730670731447315407258151411823246403681152781786312021478099191602561378376871551298133672229225064090999324123096695627467242472735846576899336876583463084032889589023285485737230749366364084472198446146093906888054577764844637403676719804108161384175005654095097045700495941520175983488032699064093553638368500632795735475661725912364713631080848791258780822447510120224948679970765502001355115987958802916256624062647851916554798963127770841122081353667067096249357296842123509226187485217464145568693552298739879418891578455378276439735404478683753489476067995358803258664355872442265750286739354857842832248134251322098536591495616081295051853794885199679060980548273461124964197207043702685794893321600159207928969040039304758650752875364115567723647675362813052089030805134474705715002820819507091441989328225934745185180645330390706246756441320441645227201388568759824071891814981803190937105329104268239434602008280945378305843882429096759360431827956303226310880432340684748030799577164192641327143724137960079768524208212468343360209925307274533702007578469771819043243799172041168329036083726938190234263296882922766492872385278846842753350202778152764171007069503804863088435122006233568647435930527235858008409222407040268902449095269389100452234774457293032264330720954330178736690299803323526507940888259589064658103854219950418544519210815745361737092946023691014002235738190943597525079854880296463146415739028237044403938852719489997010313185150531721980194386735279089568903762720703105557260438201514813620043329671256986403987539244582864909616094780207980997009223642377296560274103262314198650625387877015396293394026692305018162984248870359118006568968957825435322023627416046333533475727454278177028406976733070255836833153726603537792328745506517154241420106710578899448298600755646391987796918542334120140698148649291246860788786969863021886538193330009527356418983186546782384651034326478089010692753412726318441723340242856496577395855038986583307905481941092707957740010048859172624194102053595309776930885630579343438004356223745449819742066084320857940072217715136727571629241672328822052493724983017572466241929395933485152273295327498953640794665587168116952756930883244068287628185000049156790766007006347522332362678056517109718734743948637854263968327314438916949240027014555206719124361961734786679498524072300008081819121992752648795639447752261745281742055073734412053529644832102295678470642474534105860718855810373212920543756591541031238840978839961206139994099082484718039100749851665689720904720809689203424508754618359601226942619735005909395144438153026603488833212790974587266961996815749756686442909023127963354625179346270652471922742433479486050203217594972925624875335479503934238216832783681041840920532291133616371287531780603358038854578948827436971394134765799643315934272404381013588522794949419654249273938009854153237433622780338831124154034414189424890876988057614681696996489784537687112737184636033864415744119695064207451110956239738725974349962992285239987944946780579759088115251609297646573412603209862390810548201484647966506503071153696258164157023613101243331903824753834864679095027080600251758402044799514477235522125769315679285570573612238649085075312012629504416427739933936018473022660211815784696421937368629462830924642372780792490249199553234646068932410794248225233279000409065461808026713777439305246808998612029763905514488837935138005770343637117313133259652223402464652910590287401473521028046934606009324152962643892826064572894746199479819832000123319474417240429120397284232475066860186420689489872583608534651753302819533052962956773466621525192871502084370405701568770817395692382812991211321400606749486082867439718282766564174595866056881117443132777250676469057731540779321560712566558401403084557484000802233011292566783092895307834132500097230340707587341541445531527488760899513562595234873237381984168318287045011458001595871291553222226351055897273884763053983984707162950999676480130186825010551508269621446690592180648604938157933340403859869040186721596854135811257355911727019178463175966625333471230996736822684491212165118610088648749303459618196215660996874918427913147857530473029510595136341771316618635136674586087514815833482252273006191457358941841781091215821265080938010403591286418322382657521801825400271181062130602531764242801546492525058064807733640703581913037721689996031439370711567065958928701645569991627239771202131470042242747164551491929091583084132882681841225337430261545514527722588371978323925401036913231692299567143436423152712072691286453478515503278781303958113868835088541665764465771271065019259787056601407936278039261308650377805199035409178277707734306139329270811568906362516751036772037272247158172471049563846106765480440287239633087984280009289613572891308498662134819101766356270100222749632776951774498267792997617094402749765425874425687144626158605372864905012898935299444494761851657364545875132068907048133011824985410803096049920906649357858847454224119144905392708555087924619185671987031721341279802390591311549051049022839668588665529891489254575115288256587698352773751338289490298193349132216713623560911986601310267066644546726389241357395725898415721489636706299736144501395514301151316683976173472845380172617872148295257036982800816978462231218695245928585016858464691063992583327213834589882843705615606042452130248086924173301014185934810658513164554670910772143691419557427466760721182101704425508694984385649648449793499582317236826869061211629650821750530530475082811850955413136876885040753371871474846979709468926557238825132021655192735582967917970259094133559660903857907713219456859505581168968028255752416631215150303316749364234923952907984581430886554021359778699672097079493261362851353446309474519018344346137137114551169069177957254092841473902790048901084852497575801520168519895536553885424876016428268170114390957504491417676930090894703998409585773667734154643963102758563730068208188916652859947756041351507252909161379606546191307095696740547731261515272042394541611352686835605884578377933721846441473976396936174549038991450504994773076347398548913094255057997352716140802835021695326068430740764581868963416979091613487773880332994088138036595004697238442141622304517774984506660321954606589547822183545028492402508274394989396913568926293811878145292612472326336602503104946640268269249130873255760764022701362361415896247867600270245668886704240378777478649460001038722113141109259679912988406368057195286429776303954057006293563381634477849273612453878122721886339370421415979827081089980873430673610639836203713932147553408299935170750671949440525659504691574899307721029646821023675100034673889547689725318178994554490372355573242497918733465534780064373518191017537529128539018556342292064784599842868875663449409255110472112781379552204208546189321574045904734143042771144450433518221834311643198368119882625200161169187981078678134364717197909262056890263536137221871879409177457722119647960089130013056791175587089789153482421965156335103712867928448289898530059974837869371074308115153498565336276867980654685733608349868401315886476922853037561710515600997448305906040850074420738132976841925172041292670190301122591419065303301346437268945678183084697506153120136432959396638601968803869533373148082041326307521384090867960018829253087923482107375623645749658353558819599256567451756603685944820276769291742902855391610375943829291520188174511934790571623864097607599160018445197379804914207145767559014468235273538283518683300127801281826338367475224663476859491610737746372559618424140337854971868772743763363055851076611323065663196743040309870377767377568212712641925423733263954771175885183889714944871374649110948578191318452117992747977138657924467745973410573054184806195032539860061417733481392193619471321437557874339020819154774167902343086486349033705974556042013266847130200438577951942041192147650047420294559253001183983573126403902372413309507204511667639854721809459787646115324490519084146050829641762221775449864105277767096522276116950467633237944680723792242498446151748380944469908364422335227739232828590447772050427297280674234483282916504892879996653409784848209836772984181629497855421200613143445627458548560938582648253070873627511693224406216172689580215449014024618247232116118447823993749662258947413723957193749504706344421724376920535637188000267562291655870234736798994912461933804530326300175187324500124937639608028278349637665675217079071932487688006665982670442365898990369106101939017049187723841229149626454764041909941648751335664927846247283053248121710878178777641327748430509988638080245155785054668305827408181435467756479888917977384409547577704880070027654602369901211275679500353649546854642426667654878346535822627715364600715215466945933653711819601538028907261617282284890672970823785050792114541503996315014341672182441545582916247004458803077164753637510406552974513811853987397191149710173008587325784022517934936794521467596242472480433816097596228721411120978563693721908837917099866395708307259550197229056959270250217228715772623378148041761302171264327132485768852334604189768950492628868981034797561296051607333792270370772302804118150979168473824323236362283716113827395002359845335592043763135283142793497014152727162773099705751133367259397504179012289727129192988895125980610772623830277002799341991468849745346893745836215513861973792968573951871492541864690529873990729430512432776637124832895912927165453007751079953586018094079145782861786197924459618183313383561783713818360927359598959289535739242488639332351781075292948114004721278820468174936428589104136235997533342573046075311248387174307048030438385760163802748660927181585899996527416540724117116699346205787417352212222533288657753861470049338151936133602929871712242353698928651810993665378347284696493751227479823142625642832609384873383886359127220516071475669019504033723884935650675080919658180768454319479849552741454825755427202593036278653360827591784683405983579161441787737820166811166021935302873053731506700709251449689449934510678320968973722641803789997278702107812138333647994183597578587597732091075587080248126063481552831105480417557617657456679896341899960128942432517438133175992495305407830102389888578088908091279943964217424744898033051957410109327229000850811652326254133701523107045325755727599271327150137799687957543716865349490316764014390226233679797449623260309700016889144071224788955393686487712832693323457261042596568855484769223968961475599018328400282000994829033016268489698649064195808501213106928038777953300357770051823651392780409203930212125231729653688513333376168410986165941048751662263394226067613760424405110908068225578050185463623563232950759607841886143362557307894493788500231248978629685507119932975531009120058146314799387019992030151747382622940021165212521363657019433855035615905217254303667346552485088077044285536165023994095025807958746339710558755191023980586023830782847139037299294221146819546443457842333499593972611949502601311584639290205973861111844637208820307668612515291367396049192806044315810952492078724084154663046582451060937395331531395727701453658814064970483196509555281361290540143554440058798447945079411146593102147445244993641550177611502732850878620438369291465225448266226959309783159880907644011955021560032969503581980124599841918741015893839172303287181799429691478770141532352944536549059083166991762897771659086594532170857478572295102721345965374640758822696123720888789701793986786557899457104586855076436913675728158628652844699320593185011025955458931060815785643878204315242347237397604951377906325333762639698967801221999153292586884379244817579447054974617273480781216884229062425404537270333140189198528131396999140176785684782217394010139917788125648146037216037337157418269740487699596977562191279132993345757036665945262778319153594728436626267118490901842479243082281795334812017959189860003893674540867109476126657426605975716533761879231149099408759404029439991087395261372841776694865340823787252604175465816948351088802208392386753156037998487559095328716073028899029973076573485491264386622287325816231324244619882839516344147860965833649838258930698414547844925280791644867436887312480182455364498127241695584915121866079890127386154657550927136501903640100609528394620625581196811061533204755712106624138063644412915339571433947467070997604589668675191615452170958899860454380048848979994034148133991004243987279662273050821109214100971854953854096877889655655417698625876928456597444485788563169953687358638798147924010375895356263073744453442208014394543632746721175363916291526471388155542588001166722489431897207525708168590551143920222034222664275007765096877566968842008432940517839448025332976999466028829758277871478734561635899079012602634829851371271114281113711727902114606711689871481078949928143123703272177215803802764874142779455024554044808813605857879040781400749154530884486201008058871645250171166378290896629220764515516196035997660894565073367195941807768581812014120793338097674096421160682374674021674270568380620024440224350630274497197534459761089718628270551555972503552560420826118259561253067601637540051792522971417908952511825951117808312009160009479082117395028711982301721514630404701716301536627255486848097288831067727226232024814662179778337262579020959178730360519793153553048547990494268546623326247883480120334471818037761418876194729190005479858503237074454353652101583372518819474738792436727262354436745735079500495095854567775456513748664039078577132267540185050364358140599338945978001885279511462341464899385135934197652317737918606714395201130435665275644468260260345525492258847701862488084955257643917392012130946786678537616960227697386073930324867030750325025774701867553935172408303105615861293653562297255301125764548288474558473207473923672517006003892952911423764730761406805386337845640480956722819844736093441476904664734622226183729114252096915932286160517883273719692180384393543531413927195544073716832859131663512157230845460423488365677827036902533926732915503739049916270220656696521121932736066898680777917818129055488494886231638036807386130986635423959282812309589994787952582617774378956274525518097066529774373695134126314219244503690158615770514471870297635631843500261346914107783847001235737847167885111383058122689675162820083061065338551709306263749425581489581468194422818998771080776092801935474274566246051717449329315363787233594582428921088321679329215952731857156592472699674113717109673697835689934010196804244868700284544560000154101934645417720388512624287543064053370195513243857481401870235353625119074935295679193441117941021560344558305542259768228339819827277070789971539440868692993416357705074255399052831793758471002182075358443340110165243319076140920724734879746987834253543098061024383120576063356215112460710533910037271062401498194091955297964345089719645574048547575765607727549549493367082181440366701430059027893934657812015066019722291433878853369137154622830208900098290791969237373100568680963391801145349744104574058806996166830948690649127692531788479173699596564106093708165221577100641397099124897726216525151302088516165447645522212869918763248863510110842595567833700881364759676776535139885818958745951190647587464579290995045858359796990095039389954881400391830921909320536411532916382937593355467983110250065597539069395728673101775500928440741474084382042256805149495845406194931469148235938796337576943082823684783058204507346189011335878774841353271384051876141525919305609690928765163991202392338796366919169057221669793819443598752087372052191741200505366451602829912981794822822758580648679450665386679862796964257305706560382189521009505175574618331394158072095625168095252337239347392593106653097247684700543143750677014709472979116622408952490311203699683693089307477645445309715986399814956311594385788128932673035902540174084000074506255565251941674445848582853644451429446347173936223746753218606464466734767538088106579210095226448772650111346766730616596820799423754851711132733450423350214087816996009157219678700262872350757606383958449364696049344500561121606904735408066723407627836470021454120295989685398616965633426108029717102217349845404216111232127710709080432505809009086633693005923982783998055006723004790805579833975763519445228226771903236719190603303221286930098369275613454619577519097533342026835585290963764738534571027557570968303121025517300879999984351436750580175122750943005208548067211594386619991144516365301610628217372277502951416945236241868933540195039468565671027771212944347626455687489285760161481322044358668247811842297635269473532183088016188151159208091181495634287562453642154513093628253483811042998274256693073099151215855510347364432896414568945356813917444582695447951515986565839610419752515609982527857463669235981469165325290196631743164015281300536772706577247463546582578736532973368424662881042761531148849572073109612337506416622453688446940905516320476398552405425614844787215329651878538569117101268146464696732717554266367734812200876259880124970372459914929293222020013243169345356375869140338035792718056135806546705517413543909992802863161021027025520854956885169928579268543208102475029620097674074044499859658045818877708386906056977650143193068460816894628567825178043664651575640363418912177899162336861861985780082729686528641367704087741435676182364732637832975759397344019437206985552884318677159390393911113038917809771264553646306072827041555203742714508403699492758875741604334948360929773410068949455309421986357639047375832069580802357878764122180495357383629705661070200612289251876408994282940516571810293898849503778581653471302969504176092151940604673903321571108864074581547088491249636366678493777629410364098576182063869567647530232486207596268267567394694006722891235201895854407818945680168240521431346010852748407480819588997700055928177419230038214452114260041717973865442712541385117092803568568027277305758517259561349280565067449305184706525919413377008145573897845378627069233447688548700977519792486727753014586742305391535847678241331962305901309754979057180157516916043908791912716059977836225346897539654375010236251727984275879531485773983205416067670248689108004543887037279036461151789682981045569288009626288931963327520303886657477835792929457344610732562502339921976346023132956259766970322182981838310402356002604346268545530798661597095139184522414463429995449048874287553409345459285043837538096257751592341734467138581186049324443312112720143585308890886962366861450383098564354006222079917200321456812631092821338023109565527587099851540401176995937925687014908580487902505384132233502296366667314598084015580464513450113168024783175854875723763075127306001659775322632327268410022773055867415252927479907510840172622201390716152234515852403324467796446864870821009189406728587291594155379597428636932886760516913640379553923035118872688282552868743689370132581018586772976098829020989184907830780550826063126712926174266002632600720438699334900887483910498112859280197111918683305006006697721268684266159491856393845331638391225984002846812819748504115257850220882128345741498169335837097627416542625817904590960771590907464259077320662438429581519266809136536326827687307493235325368208125070421527905862324811466082902985322651948830196981715540079047102309623366195109227738566541480156736774729520214012707739044559690886465033245058529831409972677824234799320761999426996268745420485546700986543033616866981282439240429962304757814056099734539373422960947019687684615585964059305432125140157600466341691947832179671914513633960787384977197779350999293803479724443253264509966080491496994471287729388027329006892339916174447850625185294726660401340603566310946273760377992466224543186535099218343373265143127077939973183194287988963437163037658633968253902018346239777429267821569208836222724726311541686474014026467656862777067919724873793814645751533388142723578265846095615982377693409693594846416378722500565870627652154026399751798479135111196770676052640289036275414541777426657060350150512602301618647906207667810552980598030513125443586466443057184544232790401596803172100736310989032712565935544609271750038874906873073934549006794367912969346545485098143541767100991367833810965935172167161211682775631442223823482654076933053262512356792614250428955464171269865869347111760390607224878552199085743286305492891165910567235594701244419540446000493489718429947095760414498439655920084025757881478137800279181433248031017776758061960725423788129033268117449228507142373821306916422852930220614005095236176002629987347267327264929035839376670093016918003460196168941462992577903454551923726782383522136929265718597648508740995062176576451660557673009045101290244928961729304216135851245248153675494734642574057926851986752382834633702722291219080995087578723448407827841145428829739456592984392026235714608192202002056799809745924349387321324260086756328197942224155439241001817840891054344780829833822149805853790449904135086536839991766021130856465951145112408718272632931941531317818928224584111746126458853987502567543913314769301202037726896778990599690736506989032672018014108256141229843359640040969052523455963681462923219622100030805080336492755745066397084258933574571056261291104649320961851022245950740783669310398075888510767033960469604776558702142531663144213633499774854329193843312335953164136560192919727628885041575191556263441248329876951036454762070514637434467369110413928469206500686097234857510021207633185482433944327370247331138977268500657383159880702990097645878146626247655126311186906857228592724139227942713663524866586804276606918442024357528714951848942427142961406475739409164906751320766697199485555705494533880014727031741723577339682953359483272936149251882852751988961086686706160908460725093344514335546470778464667382739953892439697147719895858589836794719201527098497648729281256895675242889844579030023426457680424131760215813240991489246488317993386212871293070826287598777652647404772493569192131697434485797606396935713957150785246323211357756251899402768148669092574213998139599529343510545574755517577636191339248883463658857423743811957474197026027088013593192915782693642992764719742150194144173030988499564457694838734728850164826812515598446793325675652961962933106639940317076047176576268358612110391519200978361341747844616053070416564727022868086857225225729319890403944222984541931196724611554159143517354273237044887102034207818543953367555208616705035026701688315792645678855702677409220645835299824247453486524298087174367511216160726141779566664360557964120044229370851289756629648298055343041833732769206294568651128338134929914551273658154894279682327118315694200088107870313894350168638145522577572965389297950995122169817302883492599034603255140440042346679508117512001539341127522466911615363223257577585944882781924258266042060082010528992378735189744397842029989677151864333815975856398148259630558233736486545483853050175775462636811380733943109288749862969763750259995408323871871986133190453011264713591884840692182602349411441139620207779465002588906935826296798756225055068633742021128524681914864520305166237070614559435129342908506376687158469617263879386557802339333021612153073467943540310030031365068916548755901765446262775197016437527932196412344984704214707228945726038110540929837222937630645316380994201471854977249275871110220848745081308363017356558608738157021157106952573160302537438796797476687982405614667262355479808621953509601707992674910863593508908437942986430590422870094853424701695558557492684401487251596846681680107525516473702965323856949304635129701382646097776574369623620408587376889139856080790059126572566370004945828954116924280503874605982048935269877814040105885285794945321493491273247961562547742013645877841439359719250569696326087244766554916737710017501711041659674168555785498862383099557113162340672224201360381205243131601234663519755400213548432275832524860564167834924533552490010330094255728972394303451005654486358065143193236756142199872457731078460165664400425881374093397855577862029868209669335669505022713010704220757118132791390535656259373571048050529747381074325229438736480874124859783849874280555862350374929378504304452619569633966305828850962256805846765727482882229904074349990327155293819860337058686335618808238066183050101857188389492136461487647177232805333551091039692774670172539282624004214191553257533807084221984823898970647851506067023144469840949717548060618517357737298247239298117383777845906095807065567034073223956146398173174667662562077810376680328059794311188880634083430037262541002391605653303028048661119656036423755301554621205690113789843481407868164785042248951184673585679965548944334072204376513268801778968169637748173932750604270182061853761423512256181784305824699991087851379337867248095661622126095498541773169038906223196693023135570068618306381483072861215947618109656894575604661471184856551150728548549773463155814108571192973658296258894876955589123264075392490865728165361849628323479843868869629507204348896447669560717577167170451735825052938003954678047784407395973616153955289788130493725069484609538210492494019795745863647818260707323240693226266101969761001949712391557334352473001096356679685952571550402098633414674278229285653547829238035989201610872169293491327465242596350858600385986501407018159301937692931190060214704925624139850764958041361217057250682827658115074391444511721131954321205711210378928862375434208413548449494587591950473389568518529849664403729124101685648726664623562803298003706114224844446440154949216616472302489348811699269786618693204575799514721181454923759233570048464063945234472371258294287286838605883976448278706494895008266735442574252967201720871970262732062757617154255359879734009735495049485388252548987845381957272710564586787989796175915803999354541119463477395820721115414047077394068000528165739831353744388218704214927368326068313880192004379727803214479867003630123627381741333397819953180533406503142993261415356530854540101139401406537339125623438259929301706070363205125173243644951630767916736453344011834349455651971540852840182947865317336956011494757328279709240011592938790845209573354006073741568563951795821658037529113295712306972204438922661262618723187944180664454084933189613519779517380336636577894655490706480755837040700120335139666673246957401091687966910184151102590817009016499507135919677172930837812657099970437221106634728838861178085585457848678758488632884719766986816061850682169465034466808925527666004663897692128252323747522463019551586306825303379308019977779722848634835718041062606068231302134669538777744025684921062116011403951856834245976651748675232656478442140963654171879452657966912011112070118419029578120776652517426315016761248356982487211469643711086581583115332090171925470793360924793345517003165532257566717659882683528531809627998336106610716376527462483996633694774477912550363112879044668331090997833786871318204400018877457619190184215849241545615992381586554916810604828922039751578753684526689498981246835181685467457536900558510614865645488875640717307576016870459774491830869555471492449396649387948034865065405540559717635861672412725840479970977439152333658585557327972860260637923775149628091043138231858292583776828662711452459571959584342140865236880623298304339283392302185075786640722442288971182153999115721505358835327512427619648252948678494833448822396595248450466139036481854668122385136349330540340625865356614265765595374645700803599082159061316982386588010749780055203270896220078105594603590861062770424290858759994767290546649379555608184361000709581090813338153027478599823995347477143364828414546686501680426648982098977096898160971816873062685513294884601123696535300140085938767322456626704166109751668717340749441282341338550924320867624871920791211744441283398636422406090082873209962949251140800389746753407653881433922729503482171587387488846684300674277572490696916598175526926277502652187633962188555704672883836129256977265240054889899479796371799912591683767235530294191071558137541851466577095445756259467496340902432378575606696317573294322995788005755374483558927631134974570822976103046549217997355884948812203353310602202537240683527804157915661081420346594725910396567840443410654911272028347019302771858286929980402712018206240385527814697304231742922716719437298742979270612779937233261298555763393884263635962952757036392666897639383518459707104491852046013306289854358206666303573534122354062933232987438293038142723748943391090492903137593190072864845165024125304673867283564357779213870427113957658698488114496808634100269879987581865329935629764509922050733723842940178408918681084540192756870369032344139566712084580546555088834880216197526758848777885613965232961521769440076252286369009990370543865430782121517048774002508006434635911559222895909955045914180044016031009421536073595297504593160992408878868512112753540914017927889760497308555863972266507749983131932228363203617744859436076337358450962086878757436704635492459435244309275154636396992957654614787413405194941476997387575416744709893745184213686531174531219440744620887956030327736377208473411000815432131571379360506274736399327358009104991028531545533332882580143147328936852761585582665083692122956289879868746117422377950661518556627634333409472718148704319653177848304554360857918343790488003639569573743763395122624996090458444954206567794118457560619334006008641576716032413820316264118587641373423895706915895741773371685368158366006463670298711327179584860769790105598847376199564957291257862075521486759948303871207510102765666108008868475561599647344094316175881364857975444364205055372164270240535798127180090171194708467288538218194814005869081681410057579657957787042804053255543806418477356595348019340429907848523505678135254180541148914895775430103808882101492797157245126472453608168844038626809912045677819229647943373013996259420823793500757002974455048416612288353334359093547724256844785968743868262055783217309467853960955894015817933091507005697786967029569310831366378079070574545933450456722542190913457591943885309660429059520572267089627465912845145906140369216328640670662150694294865706105313288191649504610197453793995590096903264175909824703172383747239648385513503514594859109501839799898053148655547354418544363671199336066677478230686664095479624293446128486144383268509552021371631447641127546675860091545494625057031169860584561104170107978033609592530107323759705408920427175729488116656919459778775553161845941501456035808002809651319705826380874138368716668632776220132554903559401780614635351576582120570283716632074069977349445337290267489295153925106365834388025714642648776603885034239579186363130306151063048136977304275910408601886417853485267309243991806520553839367392354748756028362156009009209565661795008067869103863109612418525990798925772213960950692082403067209961715728386753900559913678628378612238109341840022985998640099403980203021795049290482945182008057021742715631795965861358459334392993587766013251633544623954557647234020037149758250228384905698609160380943565632476464552709613263241234270885931071363901351964838969322801738885570619895974377585984743998681048450214755169852349004632490966332104847602277134960037562166621417985507835666206203357088000562411381351412896756340413671986960320083866525562775643636628071513602233499205628270316915944772072663067785623030598271425069654993857585154642769953410069121795724614542366490345713194178089036829198849951142761099711028555138232390310390795739344613069622666632455737432977582571045983951232817747434603105339259931544589318088897343827667607724794279487762031657401712255346481054792135219763510066511752514497048004752799581803129613835224989509590763197733454546562617660472279007072227595363163970304817285896995997282449537162240580165121251529308737063520915672088189749028626913941168890815236494121338048683015280038669033965819413387184520283359239644491168004188941614515406095009944378966054803765458850966830019024350709089160357236925255391591925015157215929625026691903745833513308157524985338474204370646387815353788589552881253388458220744771620742214436236056718877691640510395805589508052789873370955096102020798055248927464977719254978951849182372579443917709548774634931590673462596341660407134006087349223738534768822255618446895663428026653261442170287648856218563443564465036291464483284386989744690639296024738953141422270629023151880866906933884292974705998429476293628424227972464522450883600758252322059957096170701921497917945334385168507609887450016773273182565823477495172435091052107689920419049333996721698989408000113117082337626103521748278348158404272789407946343848058483776516739859182652241480478940542309450911153819643576008985475916120938551856774496144485669797650029622976005556840189392121176780986099826493513671806794102989306805617466429609168088500603309950329834479903018930645368464089915991189099188335474426678360113713488811107055438387685961660279086922117905134813455783495752599235493749147275394498064196051996515417689925690457477536852159319904216631765349125430142389348561281882250544462004341801770613916943437831981828168545065225169422151909040493768933945889728276597239532365437634726100761314376015121721124279087309017281577316432507272280118700594647453010273326764429596636749678304894706984146783737684884994166158993521251581343130277418278598225774603750584212247652292529690603857307439462398784300386079437339757018871403277591982394128376805388121747924543337968579941800883895093029336737806367827195009848438033824945184759131008573891187775615010814405675945578998927782070367951054357332474066869212362998698903002780972029560110789311159859694420374299249548867034654477792706674214395341928262280562594622842433443295629493352323399079291499841809026340225523852951268736574283274718676165371069946678280958221050518526824554981364237386105933294316332875222901578755920425775772999694364007208473497561915493794048054410189324261965117683698146116684367022055177864532587823382240594708774114668819155373764415019492652584532118400880068515729691429799507321898411887190589764903238230179272145251163804456986559799278501125428301683655172720270815064926880387341937363150564525042207262691173246344757770018331271893324413235468678370795059362434988995868228535270106201157823076612992065476885666577666112574056175955102360688459029731509227907448565786461836529262992641955870520407122898221234061754440515283252541245928045469855455653675087007677908832061122062168167543900150782165113933718524943340768898151658795670279442110644689903983546533729585181566030111046159950488703173338965784739255042321611075984615012607976661519003224147109671060150845914292730282230905074818006995646673517987325166706884700936034443170831559971963973471085644191475265934025045788368336671184154381378043898255682502807590611167740567475499050306791334936187054095057209691756923938146234923160733137053908932648012447574714138567003155837777881301903739767653882388556607135253296866769491263160185427524431922204361281673118657597414327630565734041509310251795727932583798698674677239144997799997553252210067648234047395625973673109959517014279874124117876418107664989107493452501034701026193615495374048945691876600590581531692239124760094157877164935688447096108239784238371403383469668816239680430786548667032626648325797052513531044081452049178398015152017683745263779957302814841824114437015361036661260181767016827689460550064678841784395298690668656568679094006542432097552624540531356503103613628825250650354968237975126480653289840233254751557029548489460543609433135619508775308206440770931530673211229164447293198260007251623610423590326450830467175516244016322678824205693890089976487833662638316443311781832859718760064854354732140722375881323910545397496300511700345202520082923493284677541629120534725514619102158660568589986222193528816919319558444250150174969724642253216417891103981116302710206700950301674619563457815413691028320494510793186495433594980429945605432512116768785604058866577482376421465761268795745737353583823001761506890583047106755264877717590303729774492168381667809166007854721705015473785136751833416805357940095383329502169655551958551685647714597697832903175674572105093119983010686412584501637477259230747460954545643258653619603822681450634000669453875331133408649572775191109929587590902876526229462372757511266102777331754072247556813242143891823881299562726270366158472980915112057026397824890457308111260292381133801756639612291845448754460629400437273725258268409224511187379886126052118715054671732270608359235047931113573466407816414760714754878450192818193417584048758797604542031239444403125506680496585642490302907053762140940534485897731939907858370813545192658905312414907719884047928999664556384655821374010364789198314141034562080167933171985027915939166937470888147953321950183668119439496621790333055423164280383442487638082284375607700640444316980054083722565095701987249441050979420168406934705965943247853828172100903788697987019454620310631106120755839788056443001838081957260450254164337718270683908851504595501088877323628131312320184062859724460121992687783480475688188509399473750683216488907468484398940051543708447734319060312677265542183902573424795202201598549154864640719033664222774563471698744805368185936656709628484218345754292205297966837745744606419310500679861284187330461138980521269205950886239232351209205829980974199488583945610945452316614647893318392488962749119436985416654505841311862958058629137919816867801234938951765494488673091513395051458935521359598822620431382652054001992189884954657065192580784812804955124000723281255702930841571914910968520548064731578424125564792616986482060993208314899662472134602544868176890257217325437100525516818782647634590890811269382726504187309214561516993178290962384354437376897266500613002277724351687741208597309991742359001640310560158665945964706507817354863241257115505569404920338101417793509497671636055876722946763258940804948564527795261265312035674548752622536890118665564440541787561500196313850230396642555504653202825360830433479194779017766981766164890357928155909377129586419326352014563213254371725075366381820702155124092434330270573932326776679321745832235462115683544143022902362013806529100106111280141213659783648178620595484349858519609588300358797920583073408779909553543439898553321751895209585403704341321819004756816603497257044498090438198823607956428084882391129522719372026931038284993363255188865463000072485201362345385230984309032923652645871491751946606861370480078910022253294507340407768021404599889625798676892130636752136373342110655170280088449896162643385085924377926120747195415147796246521296860529501315685331303428672619950079899414983115971867469487702591587408266523019927532470289696993098578212918722616386616311977632545902322881584537686974021581735284481380728855662154457148492742383130178615033909795689278225018167042662265613929979161575516680325453443485761289863839303573665294098331357523258068610604444901469982663106248756542110867210273565138979170326542879208646706918246008960021385119807613855581976952981313753066725225772009420037952689447412179533946059614526923537172962946800304861127859100455477325171203764666602620456376643349224402359325381702575694056619304646373751357303435453962488696396479087933031983293288655126218061271171120376524150496841993330318785055129362208505766056292395576561445265055636403754120718194516428324419620826427416308184547783403071052313398598491136848436549783133790384881984555845107958701420466720900395067504906568275888704424469314038467480102730235239584850628637938343689518644030363247421289735190956086360009292974246833173462332482726633597610218202096815014745492085317475545524127525049450441477541411834126348514815325030058674863668641836456874281135570856511847513588154113730840644447090913252934164307546550885908338023390180009402493050456328168424816273844108860770136849268606444852824547876417874586505098978292599477850449030331892080142670714048341782122635323535991673982337405324567677555858551900548695601276662347885889383287776411166160965146367261237532963975322691386200497154588729671197600464682789587964012148753062678882910228993715277570052665072913076096373621589477056400440801968982822024426252416150580792855264724171392938227970703123306023158196859729962595151027052105120624529413427455691450684748301157064131464390576724555661630246371911440319765704153663790514476564989968789180662869744842841243210247530794837589472063720433139958816631702565581878547421774514066519062155944459389879397581124731730096561776562041403531682659080491292249677427373624784784896520245945141921718752734098899089611231568876722101804672378946989006878787830050599716033884194279331256961839419256789667248892740736779875580499898456120463012166288718637053290579713888096327822779646291416378200321809014130973735921505954560064598165353661700128624272664656834061833920249709220188498649094911709948900250734940809661866847564159662080407709013799120654726492033668850686661781260081824621471631574614922617640013725688357350064462725446605499823353590322972429606657504930487541040113379551975244263505467235415763208760016725324841914056163984623259949386053100525301412204402827753238761119755327974183014417999976126562807866076935040157415655109993220192794985791652815043472541139560013173867272513592829306007063401843532425281712173836082166450184016315771166182028752022791262926635775679852785738398429968437434391326366394870685542629822200897503609592290077356579032844496338142017025199768992687534569706095226305392465553581882398258556206997225191615882025552562224219475809163863068055081678650318202924299283450430523977841414717125467226451477599528696271188836040710880864698667991524848846157308528157006891793043942680882047545925206583975143131547301916456827494853700477350499039660816078098900383491788143294499872402519864172841286538394814238938510274536251569977731640173005156137204901773977299744754017410593058221390009336144452603100157048241207567829483568827958054732321187372519970199742740028465716434341094948919930311198299821584578425278093026080592464343072887782279189657939045537425279705446788681222301033447218074453517608096191148668273182816406107340303064374969326942895009547047231403490369329742293670733281945072199675408266620182011034423448216047894988360106237990881160184021033400750390218126534534569519086323319532866612476245569240762433604152107416322437065618145557051991551756611358618536232645063975338811218228477216274919433451296637059998645369935613159936594509817044925090980116164449224661417434087946722728234578980872200580712760242576615777998638434798072983917578547507663259786820223239661243783589933653930742747817733751398770701743449423154759329759199407762110257346134525861675765350936506298691370561169031489964104901379396923019971423285994214543601617020484295295237291135926575418387882635363148819271269807974840483031616578139560795676380472973397475995694110520310191276079786064549564804672347365469192971049105727434022091981557500763730830542881309404524770830970594930353651509576706310454374022114930178340788967046618049679644350982922709040327028270337111485703179156470844054662534135715779859148702859787241965147806227496115726248017173328254535709071621882504764255947945134357364741605149636871813996355040677801197725628775341709010507360984597581073909904793568708839424893629822833271293358991755970740009793660684967124225721314189081572048111342925620743896939242233041217981110361833168172898418410659279824343029971242186274144544206293968206031117026482114067634170996074420368033418375880099240881443838978648942985998859135785344543005725188462139016068409822733028595308761769295221464367905883647320523088589871290564094571182078141305624652389138075478527759858427298017062173383570279743939591357133020817896178538338510567731306525553480244294803372537214952188003756713310810702835969518126578088749953833753112139813163882169897680430103081797170344730295192712062766263832332676677706630108524197436185717247565152882839242695242003546404617869191584232011164907904056487896439288257952799315553642792303251833086197140318034913755970041423193101218881616921468411585874788252239948573015950441684875681499193243482570698449987730652572069190716230519973113285076985953806062821564984740894583495794779775963468383830579270142532545764821094056050341331999490817501069904087536244811567940278168118321943869017055085911074598468069448309801372274185688504990356898108671614857680111691449181401833070458027282111339464212004829328553710495877260027915032230979727585007899374402428253529796579713423477641369828361856488429696472809951156964643285952656716709374903117586901142340928033851162461570837555702436000443201449014160589258108353537810619566826238038210449582360334728501195594116041122996913187898560049111994682152746025006941699911613274046771946783714036855734636371718466770769230321248305471742953086648648847330001415405025334602663352797317990164770284987777460250716515246511028318539053150312933673674077006604500975546455711379124612169811247879341122466380665142063404345355341724624480656377917119181680561228749126861784034392138515804499910284209893663230657661855346547297096929564013080609972430266335118988682109547283461523555887252714764244780310113080634316227615688130806212863906251630589827222337046809467560518640558666287798445533289655978705600121193717726432868575437966508795579935444593363899360540430729221412986318496304032904034332311308688630165187733664672740755363823830582600205706969679138960616521631589327005433283619712641725822326124389904827470515824550278538102099657535506078229070960591248562636039336578858748180996080041950778682385832263292653790353732060254661250921442756415400582980572568087888647202861879217375108612053951298436311448296658595209783173501246897333070327196898530248888929736670530714390786525582988089292542420839737892779015885831050373093033904735714071318510574325775252352471290920731249931225206547869685630037731918578430131379827243343410372478775401970662633320649137296754101914717913205123128733652024423103652144070631296931203826599458005560421659363634855297927294391849152333021604443134386070125548605577283483619921294092169701381823282210188894132045664029201548306840703265893818177003770631399335603326609123779364804909519670181149314549164454862241571233358977470546517236662739849113562479348465138881757829544245256057913203489459230933449753997943654553474433411563802028865537917934857299321836048803279317791368420977585359200681799749796520381422239498119134115956709930541062075613419739079822035723419477046955981839376046759824232176381434291436167947454945724675833463435943692108145062949644711564010250899697348717983906710401420846084714589945890044685391390073815221069075895327251952055196404304530341424950822468608830528123392622817311627402677391319137306037724954597408047230806115386771225997682892094917592000585366072068920517820022505764939095173174499853465834738797671205713948539436067087204298450999012326783512017168714027491104964135254607917431710359825054154948901575564558436976915471301709912682007177779762376339403555448862211088331238386887030441063133463623639953337659612541032808163958203508726932205047833252221147102724849626475621775177470547725022563527285928780178515570537753227797155646063442388937189843014048937648023426504057693884902501929816221659630017567084960767775015627212572588372250802961590501786069487259703920597424737276025461404841026527294061854120239625584021189139676384648240383762403444115344971013509553549892084850593620396096970175964084059333428263416739850394529874283053196592311551051975926338975761077822914428535019368384524373688415465621046395588667731845234942498495205391678935687991728691434514499744452358433574042003107184581543035057848490134382727039845309570583972137801590110441012146634466758395987934444482689878550884073781589516898296496411098794476904521724093106183094337501112326123391942171566423611448349418834443434947837245085799700646156174082382123352317637545474079559851241169538191669068739760451389813640895738197791463309759971603876207142316041583400344484273295625229545827764083906721033967497314878470336661850020046093067075034963350754099493756400564420564589055338929739328013101727325707318523649729352096802692666209746429092879858656843594059131913126325328492473662604085482567061620110739524044162509985005253512231139935550811561121564996195314079310105727664801275864868888013497877658278926774288016835579726257117248972601877994459874099795149813635966210129512939467574624826381999663314062588494587243622458662832077609656713405372597302285036560608413383864596562627654135645165609438352356749472465900305841392919445723718371648887413222014479949496643947256472128973300318230919237606658958509560577722709997540373262992318106933010850084488926458574660900690909909563640459777584944195888037546088062482514119336311095797054023375405359797708197620176663770380620398160035150538209404920079637977718336241041548738544715707982804739470132424743327112261012114489143103417212768939944135523345967018023163713580427948878159120095104310984266218164324581874684142453805537153282834293748457138600460477125209578786217451022880494419604946764338522807906113030748708915575532795877686402815302057805569297326280885069221728701505997975134052781626369000501779889262524437126121314371921046120825501963852294324186138099007862847157662161703666374905312826652774020844690843608557996435877362802713886457864587411176762851285675385318972285607099673396308018821778519782921204456980417300780880085057545938965684163926722079526416164399265440375820618760193861417938071116725250436042600841444185023820270207651769241746883720787092683403908235564889744582651925158572152309611793539830878715928578697849809248103050997479538787922123512368663572566376442040519109967941624539042283781143755471704711072892965211368463138146784816769157087757012508441578361708147259102089802187430999671973299118464437554960914212996333565559281347914168224582705145447479027584562704852830664922068395291931848166923504993763879239284809569213519053130323939938688082097437469195247875209984125312153968876539259616452078716112069222065978609969660542672512577918066413962181001156371313998959485283065128236189918908796051877873981813947644706076940864179928135604385946911900868732516934217198406124602105845482144638924072105400182679382600022033555882510775247879468037840048144938828138175926337734806392526074782218969983950835695676617800298478620215817148868117114159769694727845856727923895038451875086337551921888040257890998984922024771715585525668758088787878430823926807061466409145099743818531162801116137021903835726666458052520424242546845342444984683100907536284845683096384474793038772528417408287977048794109612608208803120855034810503325170191942995268325732803975352910214566738266041825683625559882018322058986821347026611014757595756830545857993168945610349414565782788149048233268657336044732923423852260025199524678716538841937625054494704528470998095499153384406635326825553851846417843215725471573472871360568829278137565254362503312415769869684807635073800363469907633418167010905541028430302061715251423981491387277066131960519745629290657281557733530387231968667788890159063042430450452703209408742438992662353818450719174571781528069583745397912126193007270851260107344994918183619304911370315502001640789662599285669166580801712328947659426242484483692198784193996040981172199522534966190944717754391148391298231126718489271802094733521238706800710887861260668019435091658077350429654915570670186582011502185903955930021136618720817063671588159646528900600242258869625114477780015338405860665217760133829172246426219103030597085556861214673047844206279883086032292301448141737337013337126890767721036621256645186596184371238922210642914601994737611726761338384641364116227490095356420317582218678718435743519301769202444663308713093931111137394900191832475850163814571546638753826218696626960536919135369765235786794948010581204047607059690458046137186380007423939106702255702734181812120379757877013540204367492651680902422320913645245052028535975579979526255484577211263149620597191108805125700830354713515355307081812546490702019188135795106790128635136773576279380260423709369840080715472091399942549487417715628751309886783347870778617119012871390686318504454407348707160748711843202661869239955666760014615631573094799693643376897259079779821359816535483668324634620849071119352447855212548946716738131824218179846507033949434249580336332390312604337776651943325148895449770871525813068799536188203819887597112008093803732662606740394840954072143127473813632997303709561205438411595803678391204980087532193943677211317682415543694787046032125075595358763367380781356041780824697384197194470251832928551539614153013070323730985972076929231198024527139202122584431592539206616168372380456578114185519600743228973972518596987258157823133987563360980667631623857759997813510926394294329057791037040146984275599250791386737522683883436677295290253804381499135336217209795625305740230440969221404500334544163860179873311269328943890148812079723366442524874889503687949645386138925018395266743962833517559164498692399999511371326370038825903801936023450835755090139501493684162475182554257199733166518075368636107142037910143085262089890679089024494439284958781042880546066699077045370325469634196360096273526771994455540240584258779139783238646608689616654173580569372972913380806719495716551988019122696369607191589209001605901023219705010014442880609214214826840230154082012033658433212529473893036734586672179271281705215424308402812277869553869405063047844165121846207425340760313134901566399324834830422655236630436390046683830495006010967489810793049242358248631725161021260158516647626158764757506863271779786961375637598949727312787401731486386641041084886996254124838052706935135665326270730616766134415330360469041127049547710248863952597073276399392858099148081567068889679962421626077269764879411202250098949533821243498828412903182217867132855623383237965454443776884028140980757107098618089568131212756687949173619554003241230683609713255972789876880800210848860538122996516925644657187478873776533360728806744698590432780193015411191243039741893659810114032554067975760698020011556203078342526214060680724664162788291079604819783701851061294100006726578738894654412445408556350721465400187274609961185533826355368558430865362645938026930510228081991724861271233526258700933385783950580859203070027209515840024415152913409207322088306426243418437527955698407644087646063252817143204158491407786227302799043329552428049643320877194285213054635538691058802735185637758533315782542109563553967551310148304285630943473039748615327832270102232987045873020604914539884603263639959684377743483522832190803083794185947990147108155101535768905763007402419220195745164365468738346558418883077135576461488923993800933761248944224834876407735250276660006665282092493066248020077000108063829268413820878093757847429186918395364312725189837546670234503917403012876409160940391581288611757883451818377132828056188814271726592059146383907253397836249293109271812354093613267589702003892285222268997233912465759199068770300948719173492494987157472490137584572435645391713017392699067046392521463464269632352194533001194706736373067996535908436265412492544163470521010545037045156440492879760404932954381539650445855346844525729058932268770977510398045399425509526056793369761711004683058466241079169694793459942800114018162524959040060035462615670538265547539483352969282718604436026086026031765200264524530514508861860178931498990692171578018267471525760521343755214958800346554841758910187974904010060245137625490701665870258135729004242747280401896746329303950568020361325836852521674598789328789094014156002075067503254452422124243546409309132372548580004351881610711889932968124605627579933217439717561969913092956773086718804448862216456910704671694975839301053488898920261853956897376322915276850391996513577215877120576855545918886325608370788192542590006007680279505787003012878484913020749050231814861330753360168032747059700429827160639220720663836278499327961846335876699915371953587936554596364106233001018640591471548722225319423580251810463940786778522641122294282444506050988194055294735053777041823514976117745352440170595991466446315931527025014271307816407767947893373019061097397382950682886147857874158249182564349383436363112508251974339589269357867008203450979011526928500581570802005197072318572167446342209732206014103552790897667555844037682328564472417599029440557842159383427161728660118591227018051827475347112168460539700022427120553480572382262240846742525339466020870853411054850607761450959123151309231846842523735642825927777910058203897538030316571694922024501957868977083223616242075490556519900482613313660277096029374262740226989600062478404636240840084393379198455481520967949471308310500168047994961659999303741582187814667490547800635196758444269225865255713811839092646626389818818442268802934904982123334982442407336477777439760179537171444900149551100939018200163465347973104744189440749070649186017932615244747613369269559322701786644782547579838027348068265907026074515096605557230305189399637855213013882647186300497886110967101845009747022241173377406801133183920309332577619869620968960087474075262793632319712895706409326253015795370147725500581631702317242840057627639301878234379128702975800997022829844691503858589711693540114411298653106665456367887613632470093232815319636208047124689180142910178785795420472596512071710054015008600597808221106221351357993045569351987255266072078764545908693787873472216380795100740224037894481312198405256763043435495829972340475126161878712533006181619912515794663992931547797011819131785226157970368511513205137381109440036688216250408738508928573516871719554274799699335134765033722707252123024284451115648371301057002992712327742651336404643403855859872117770152031115575165711074308067070657726521195490117300185762836145846414730659425870859284588342890485277646332536268627581837015375845772608582596019814139378352201547285420508518853246765771899498839864382973744394665010530052818416738460065872849182364038763686895961506338276810385342703455077505586889641582941916886080014676209708413802325914932203179940811000118025412321241417639065774746934040923937751309921920869133549461939993547517162389676336819172112408970144627368977008459087177684357590937899577925290132187954611950479062772773712857220667722508545601900374084827603888297160103713908101458972609143143786774459274279472667139771112538251351409736287275790522607737466929117461007472835477642697992023674948398403270147799056926947907506364075516132028400186655815945726878533978591657639158279265302532347009605067771936754909301296650187697412585924398736712447454807139790289244629359928510712139544834672364366071415546097284268092276193797735736796548234570038214408109487210493657397009933763166888070803066249460380291091229230892364988228422494208970738818573794401489451932742178688137767753867386558783293908702105908490123251505997891587765702147815130401989240113642351954682958826332647964162351617670067918495995000245859584706667028880609478348583543529198573116895999310794368614588003930186824398077530386185985105677717499571530033174494149219051744261587539134748463481496499318545537957266130707283986026518741811154246648384594447895966621189367340848011948254829755905676469399058303232863306665700533744459106975354219104765372185285923016112652210839101353720623794888767475258584998863964189840517242265523897625039043500510180489628847586467528454113099206708864923441776248603451721037937431553976059304058062030489985956975788882011034395048219086386951917809079862203476723694905845619674207302098092003215858118832834499789849232525035040957078719820186272184045323086572501409359648597225738251286238426149646574592092874453500439416044555178169186648447854464468869293435371138992663047173790035215279568277765932045194707279200330129509431453636881608071008919597585171717956511214193425258050922350178892107921930357777610465271097315738769189307389194861259857200118694567068102222186812672328908104127015385519360777125539843654671147966732810140010592009575304019821910464833561909367533633660712366766301035915789488544470548910058955936467546805126322504068490428991259091140975514758335271610627391464665161584265686049048971038919110804379365869904885424827225824235291236414774551939779404385278556893020488543903960666082583843970003550825849114296998814386690806142508150165153523574029748626778824804987091323876581691268570497127320147726838589837376698398261345808435991169803041471260693284057413524639710833424681874195935043636924377967683236540950111833507842543272358638216040562495742900316720987681313517436514046906209652728914079682172592843575329743542098609788693274055197592319206128263377060112259787517281916537103875281447393545484893074919839556677899911453020810789198834779535002913252166706222397723965915305636669691944218007496582311283569793518873892283086561548332270929326910104290116311948467745787870983174283807293273656025260558445138647457693775872355593731323163586064807287661049773502898295078217820922961758078764549121684634527187438130176152022958632282178111927571763121259164135541431234046973797659190529090717626928062418122424359481306868159192577601868146079393620952732618229781873112421121719282039085875109104367955081300457113193559162660995658576214750639453115217254302410313377326408044474169086065683985725438559937057909590137014414051942830273018108650431582048029250525943389226471444392447503315299067363759347444894071934067675233118843205160859402280756497914365559097257460643295426977120641896034704686681303960420256890561597486322343490078388236982376379452267550767870658791094752162656139838112660732446406961325244480251353296564245680431106743119424206166438060419713141627525286014817874916044962992441456742537291360168633281543101088820913394818916950841778473650254090290755707983842851370143648492700285760408602191959202344272171174256164562153456858686586516628365374342822320282518514430924581705349182139378288118566376472090429408237496456425056120259677172901829494514365670814689854929523745343181318581751633996917063688748044159476449502177257126813039382268309856327974368980782446462723787529163493192243856126032265691286221743892984431047428089591794612180668389670197468461853792843038039691996781064321925870123660800827062750452733034224928895334161238434306232854584724718325348842704785436126086383787338577041241941478536851018066261843593086532041906207276392932256271499095311766574901336380179143886406970592944044955986273902521887206241730746898586377382009860201442973163408350222817011878384033154478062260403227253636425896261138495394383415482688369791998765658061629585039506868321853414496777961486698138623741518895457439996368013438993076902221630983040368541630167472591181918751573286390667907632603114717152071969734376629537228263829760765043470860616192231076545093620508164388778238782001162686116711607534165586472718576866705397279119099405075544738324031905675010567624434724972168388309122967471023062869173037662997506578981122405376685103062737360947568800976206980264804382954640081103253450351473324869785103054126007284936978419845027374956612411942815117648757309426700221170318058280118847061541691674093225779255152177066767724903653930002714491942331090522500171489823577787409604018057400959192535096219356422591315122508198808909045263023031547399573727376587451365115821144291417590398059417523131733558622303697077538897200725348789863359632748249820452263115426364111025863714289263006572169597536607564539770593069506992540470460241930656294875494378199605222941048166327568057505168711267245728957812343417052440561609710987663819167659607227535751114392544623839299870288608388737508707727676713316520305334804621818742560956751543442481404228092974478631136445365079064077383066805501399547320139460863278264652211310849012071808025769818366729726228404902936654411165647172916357048332248642778845248693931428966075155923807911891421578062174792145849664846667360003392573192406950455194926387523633427836355367554323163012299971298843614924625059647501911661021598432638708738101339651148167323285267640579233344705785348991682260539294779561742130867899489990921894272565028610654023467835009074803886379561101128991451617771596968793640228064914917053077906170789206196564523180083797090081594687327742270869234019596542135373459841648771453450474216535026764907739615487044370205088863588029699164389228109099263289156518365364003874811172149389998916351867733075075862546128977643741494472832951583919308807519995927130832365126130924672906297342552689099016647459540500310478551390556440384661342314786342173709121614753227934241783653195843876232751435101051820227787622659009826798788548081081743993120719586710463757520962958201975288396154446578728451508913468275187367128869141195866909073770334234152884113186632446044904290056604861735390077424318750310276684242840086327004523900047494610695667495770994274753851051829810716892993871945271198256727362153049601434160251893001612266327459280099427215800561143021974049392285705302118746827670820282305924216175131985313802854760449372895437989297026365763779441858146326923993271885288455216513637878342533578688983691401715235362119852571566275937039576911276412057945356446520508982549845804698016401191484262949874501226979631662111342065066000008884144299842660862034820832806992362831784558404141420752292473264248752305017399357589649308368744426374049604274991670976772426219777012427320507734576017511738192564173429743765171589994517150366465365177267894023889115939335654346462325848546185598073500618369188601908374559998817619646954577759308577996525096784945973313702914260456070487851220977706424727099831173274773608943644436554273017256640795916464495442507669007175430313892797032491494291324524079988022110567373512137600763039670378053071610422853283713451565758631352052301765571244156779208157753666893098426499348731904008154427262198159703854995930037212139934951351469719498701968784537811316585192520037963353076875613502411478172306795223912524912952840484300915160113710060908132907352383550882756646529703445147362406696296887145963137190211176972650351897200610228854014297821933326285818806808703327591026422061894545715096140834323301006594405951124340596050817919963725871337759334341878700877171325264977597709425793432248528868701927109723341277712443654884980623969704925867148814575117568433291406521671908458139847782574173254511399920985885645082189223366846777727992994008163738936959236151926426507204677789045735058331614830656356509047759915771403981717756490001241074929264196589801996507913492599335122475336434798150102757181848225440423969768553375922417859844864758996318064493153368665200129394925994191992174317732235452685600859071359048549124747986224305906180301875550850347998427326345371886598545617675586162019837004843440192640795569621887362213749113053659543582605005493352543730058617228181755405583939360605758197839781365239046675516792432661335568011694601005829145030915909520269335754670519033632592851331322702971916770225981315937599786377937902130261728870509888176648149871586082362798388806468227209461610498551485278414441076863884418159657745303266380755019144532573736397982708291448374190175442727570681940997852736829845163356006721158436427706208688028878600555934101091371236807397560907996856130982438003156058886237776948785749875593963247701323028530680982618318401167150279675360561124709411789764019396266132233590443404177417267496935441945924901324181928779514195095495151754164763071841406594712620078500616329389603236821197423526768294273850189618316117070006545937640952604251230865440497966096650374404357217689961967612085231196530199229326586212490922840698321829410689617330077360197209234683204772043609228087445814898973150450791323104428534728544962073250850838426043730269519537660081695870604389294198556054186822853972188804837942264264998309411579721892365779002448942977874577129730844640924370838943551025204789074802567807027385415303562885794546065684563686262597852133311808605340016691067387266144402378023242285227188067798249192116407707917100248682122891919693359820648333848383407916990875134451804619134871617313167256597341607819002023456304217049261253301445915978138135228439663251810949925397920092539113519938917286135221848001097281678193308647067446428736558114383593970115355791817199613100860944220963155645058835040451648529524246051858438762026490247444471598322601010168612643159694572638077571534743508646495782190657367743244999874599530999734357041730677582545451249661280647529372863860597804719629959659885819595954538517559066246164769564213729856219038387088921926449658546536216311594221897962610170035326096628308160572094785410738185278191378612413425933932848980512699412708735219028612786231392393472219210066630960755522104807663908027732687910474937099024472286352603541249438250647604635179685460587738623386014587122416199749365446236103540808215587854750761646797972589884122741219102043581590690452110950803012728160634783142949896220852750478353507453660480831780808359820423084063460214457570702978205040349091044732378578846080697153357104316339065935628557880034400767923596506815952327014970109494452326494126197103673388911129055142299011100539172846157727087590562279630574990310013641051103975614202602531887674508368883658873319099778714678920147490767820296207585687011739447894585544053280996363840142580769483937660169268184709053082963940977477944679212092758974176993140006185290314295328488939494018299127542544361975191888280565677960398545979698514798922838878324468894134458678073566370138516436837982207505042037770495279543676664014117851920355557436097851152386510771728583530564894171193087333195709300706512728812946325330221267885007542710584028709596705160684653880478357074114273289065779414580482788795284014877533916395988002786020253545776527796379014408185741529888765097698910931043805708067728363539742801648615472068153854284043328180133135260660815223530030272631895911175837515359898427357437336559240229737446663496859950621061235662909168090207016602501501745541328725942711962000899732886619669581464962161212878650927580145364159170031772514195053387346077324287387278281341669906609976156225927111439113580863671587255181567914783695774813872640158447935407079703953626181317109573816586962442218781834225806287061717798897433050231956116773546227701918067433127415118219158064000551359249504197136335936581292330466289355647344286307024625479235709543605519896383585172636675838994156698804208208712557357707708716484957112135319626874929406748339204900515817233450842713741378333812073296675417285430847146947044273987623970905187509297954272205559903918804111377701317926764220452998050233669427300404947190082713088220040573713451158436827960217885536402845932751536141575779389848970540968746992081634997121173599083680796539157343173093546432245382322232109986254385987091100630004082288912858062398901181590352536128157863037922918849560109708162358679474414132340346220351103145358843896850769321914942348726972154007328694892982346288937263828483917046942507273108050152887617031311101319149234916989707590567096617089984550591659102953506246068996974833869072110062631243200038399699808188630457294008430547892554380852567619728001269645596704947067802719798087576184652215575845080911983698239026272764408452069664966934086668983257140688593147933994809539385253019862171973608969656243426966904979328254237016397921075866332027973787769476961966997936231761494919179245077214074379083160190117745383138864222393564604425289581286164183241780861895324500191112337886392344392097083413459090882651017389438708811518521890370736338267629683479130851749817158133201815617852825460496568874101540535788573122403300830654275547621290326089833210820715892442454702997174439711550188978054724639913158321112476000750294506470703823341106628482763357472371885820429532563190601885798506778227059056403992205675224260230096022497926942240426068636733343429675669034111036578164878152439016751482764674498587417057440887525559562983459170429684444681316004488093161068707269458788692687815922995059049881363022776896788271132514076494367549998860514884199671502367817469798185602682139044684966839434718093542118382080034555954170137520652753769133893338593331152113238488371842776968597931273516620688992618560431893656156785312244488325040313706274965707875456189079558506903486180488593505528442513146486360293555228806825248416031289085256602958868828034242956826189562342894843442848271592872502457023969376609231024661000681814096394811373206205559005904608579419962606175363384915134336726653818650323783548853889703255061821653408546361214147419650180837325695096476797758557808041677858340994648374529347034836478570762565369522968239995968819895995298752589251744257214809498791052337448560268231865547736164041638815800586638524366532663997018063919371697026397275147899193861934138671229541114587642001889393141079780603295765143580924995152405641498997222255329801047140305832823274771869995648669422829593044923408730299178038297154342754369614133797829678475452551755407816433690941378104656517594058859795106579055270503529668257848202284917601012875809582762337773903387478741943963489529033421659978250471074972824331412082335387442210816273334368155177522038964546806138115455831500447258165008769251738201618316590900711187191180773339611747367025578809062335969942960416761222786510529989838411839325304503406294302234591543390177758733569430795668200535816959961001343938345484356428112299830358889090915040080246747921607125806379318203582875544249269335597475868254095995258543905346598206546088472080182855472599500442072403533439939165184869418164369726547294781302852545926447310468858989240399120518903400482574567145733824781903082081259224672712345075214300612282383585095654185462384173583444509185107444042101344389906756079352101546221333620985372332122867264424255501840070661706902322970716714682834144069665241456035625972347654335098442322591350829093008713081022241605185995807722114600778003662760002408001255710293049826589389258502953058274953192408807841367905082580316244634936120982931660545329934907903404493754648580400592679473177392633665524970074910025247006341847036564887625814422419098741260462034928423277788602206244865433165013723324223191082416811956157365789246699156161356822504130965025541272589569194250409662235251360140469298722375719077285405066941068617269237992638053771333957417580633536599208090712761117096919879720155293028566683928026439099642643861457745518676481092347611850082927328114821870475679098615620453709448086046101717258977153301076150366813204831221051482560490488007088491426672860746422121290588371861736231943096922696768768080491189549907278643653760337156562626373641489905313922508402121981442806846988420950373188895431391363341950376883628613269967929167354080486732985534643839999142711352122048206694720975968484958810718145543087379380716224160222996720384472071879851016469142221595919443288949749726651961881413034108743456520622693045045091884164742656742048159365489322004618007778984606011605281585521781213070358749645584924918356539060863067773095591806644134059512306959522389538394437162028770876441834914804627333789459979360356865415689901188338637909951936992318087325529614932796471229957190112510046766527554528348107590870727882373724209212902641129706458600493264685407032148769261927513316702356093818294297452820973495694508091773590922720721562043632414547710380849284233861090916243178660133479386242695107784870601283204940153615190004226667354750446312129790350627829823097123842662957391933134710366928760927888079506530542846476043765966287104486982194032417169309471838839241147871153797546854049048896741427962127645353650579467635618206409482428670088019201131151732570238873240906953353171027712995870544334475734227585054621405855089117172266538712605719174421502392370940279712439575647637345289898443106321777883413448725102142258081297431825618106522673873988479984702434658635138856220428542749337013854364617701441922717863028437735007477200249062151883559119168784419380465079658063632468592946047766867291033711099050856831751808838934161965064970871719868476392490099212870495576388906677804973077811949147381582617079019169748556531313353878547963574145499551078540172107231075591109298660774399066885916282675457682527655167192536227479111059955721316435063462553551327866018819081792574131846794343675649237795942947692342789860520582976729488749554345801171631950154854112639055357460479294226217051992356645536601120745368605960283337568366441054683847741844097145065997771724240304880751895611941888170138707870300934844988874699662676070872134400530231069390902979146547889943631376291499486771007359809152693976421702766084927840155772900257905081399328054767182608228196812350223051069578822682334451498384178579320296196126217533524537403641466685221761407220654177300327471816717609584958682353931173862008586681643860866124369166014066419470426037854188616434718868137589229690684053554031354703662746601677756102964080362032436302477762549391060454734597815986386160453258737467083144522000452501399202336375997805996573155431354780011212427562493070460349541756583229692230296926712170162901300499413309112818728840889422004149949638810343095518078140376218763569816830037837843365400057132326419304562712941778736653207796448056597550581520439921737635561296967506118580517934851147278412646166659601834173762299303871576689530498545113496183025360792068448275937920805152495866587364779914986270338235739740270356748400579822961849182974723873802737443479205089214862749412423256686208750940673152507487638350092125503187209071859660249778529813560016296649848526974880700070370176272022052781651038428513906605046359150340691175485892826032355670336212884829158865909064351970478281674580930128023284081276420240230753947504639837176882715502016074684176855739223071334472098415614721347693295504406460912450817179839105336887549601376452052326664364460200145469040780644008245907168902049690979454788425998294125594758872328053439154789813277663122668079157544286368230745216442131094107039101104859699188673068344361170640379071744429446505137359757929642794708471285389475260126136481699942777298260119476697516816288089158867424178470862907266311038199568007556097861298332381069874147880989127151766167456187605900201370619713139014097651417803196469090142232850574777028539875158189751453725702104057088436776250256230373013559703051997338958026997984092602596666471697228374540847514488851203911658892966449824493274835664506146011233629881352148802416529438386868637276879170724537008647156075357862721132274357772923486663674071731451724012359486671012186434562546038583481065416565144268003378088443093576283847328483323306091658770533607034704999704009501704735027461255922854047265040383738272887922981359086290306113205583476679449292033345975197088968826164076298541005803010665341203968515039895723951637327526081786657112537378806228238743191846460571995387100778917124834237886318799298938304336711578100067179507525818374604017603218592193889892883190666149603306663262595002620203562217703183565374879366017543430449192095887431005472347236428165514488828321623416722874256111933216883366907253419433632088878048073296472003880717605033720602099847106958896564858890241674045027446669141686869650576143671662712592533890976968450550075432206867781871187638767157638262514266385791988270085963766962406558923316975813594301464851045000478269137441973247075287714307435691920914897541124495871870727716529622746873336674011548219139866959361386708685467071851271534143373146366676100768404680071804003821059571505383155929407027444804272647144813161427805106655391256724951289525558845589993151801352275724686285846569340568157233211508848058213974825957606914451781666739995397834624650023761150467463280561600024018287219459041171391848151325779153817669634398057262278745053578973986104707453263915771190155455643227195359420597538479212863787787778848990696306761916722791048960136910524414977038549513530814550049692539261509704551717021772784275603530977360427537697828713009421598793356544610580598474378879785618429263029218490699939740999249337476590960153920242517068928690082461993122284479972601098121441134164389571032598339934206013671458931167606996372347372306782590002773317811687983863977617532065110173790984508183636377363686785811702681721577422360456920207776891965988887878140229350015691193543876316777277246138176273681371629316755304449959115195454480753745956698537239122130456819202233724207652641253081874167054418888845565773149421839408397248432017140813594751995500249232379141194264181497897013424310462833178952146630629438674498079008455349801048452377668960928392950719464830737347245506571864647048978318633960561298053205521679853764358103719798007729756151899334444156681800392899209593502699676157989670035975238582558023548752840523435436792630679467378033697350906981147072237068765135356327789428371009966288555030335533268589054117884568644000436887181372921570263802714665145145667706742976559065629253456428421342571514164843542837311881860246887208386724898365626229183793594971424421887140194524617823037343341946098129642281262915386090030589103916809308947130541141610478590072683316651795133513770077982582654378198524642970686891125114428783527037054510335799677117010857909819256102785115950141655224490104408963906898159669809580051836508406684066723236211903325718110232094222637255436617785741845185104933271304421074577499721134329988571236152579032097533792580542445684440488769251714938554920545398836692131742621676215886528852589351350836143464619868514710777330996753075892804283063185955322165829712241658929427465623075664438014008625823570573250819371696897286314744954671249764484662016329560393226082314054552823664393105759006651220339931105792003609824499047819481465444103339997179106325677841792205713299720253817928841874937590158639963143036669207789793574257757032489085660733422203909575972583945472999695087953493114634349083057333580585250497540594349871701277001316445882360822738403657334933237432035893832478134542642653046242615709422680984309024504605330984180433787701236477014556778159389267557648897854790771305601978560545532184477591484496768322828305394954840939592934535146189097255754644917794859148166350189360918481491947971965557849058063198041870212906949617866927656359384349879447554449732115120071200450242267263514233169181725397136305727440148543710943465954141529827209003900391933589241238102452967644484631579801079630295616590179666254399723566036264652904316588623242846329106240905864712821316524139062715954633466894304205036618405161945509917202126398367462271997658545050518658444121090054787457162434477917909296261584188460921608695775965344167805489602315955378231701757334899560051999010632805080672277670401396213721038613114055899216171339285964121860947888678534686981075981340932150676923382505680603660342891870193916492220263345657121757897935328769451489176361134943624126582074098209365018197705171736851204518018401366485928804527604754931903546477258736254047612961120635392544634556509562990722043176483093450005552457548257077153125419447004699136302430052109265949229715915451256969648841436049956422772592879810342473429992893222154622725202072780299430354174894439699004313739245012869349259570920046699134839849781345172692436489247125798235282578807490756833683758997938110812238500415844246537268577086940976164911070193639848839298091513401268996386672690211238585214184639164686186763411838627662658674680918121847311114209920125245560956763405707312789555758198954769623438307545343094108170513897051532547381101901532945143606204825080653616018631123439661872939308331639347900197839636088244961691328995067519609219609116229878750251950303450487209423288007463537410013370522207483971227112197352721622463408764156097586670715186232155174573764940896246527527679677509297449826263185024379792465542303361407693923937910537823141176502439966450460393822049314113711795120934294783068294413535661010361962377461977250062146451524608569306542633371638844682826113011539282400123393014049066703885485014675268344726134184123705677985629788190494703494048753881919365851537742730053396597986663958258542217016145533162884584889147430179233768674888165181675809323445964671730031777631798925195056988608252323524878182666111771897124408350409226845952923144287625418536429637850672684987718120880188339206375843719165396098514479603544955211998564638818195073675622327771533333196684364180157440549525515094045129122561775063476302887572001912389587626930005691429953208053217581042965122516047739534042119000063147815890194509470841683038859632037852726491695088214939452731156278228840528776904931480776626358823407222802621233033838940806116290730158110116459183516854627429943946765225672852708158531697169768227173667609642157676678037768065211174770209377062718320089932898239798327759739280547302776642852123184650323139162846610880753673533628960357207681878063086151374197591773168731591272769103045639143984870138157938718328150924208867870966275393694861450802894889972661817401899247140175327110316605999079364649378149886726089673419049453466972449205300285323045448140631711719746276313794032030309916612414389650215495356036390941614518686477765698868902625402228086241866360534441406094226360114883045830352839400028517291468792298745774554500499321122015425648395944467774880159248224758917617450456784661268987637983208618867526859802569627224242458918045886973792248143049117794355853603297136359383036306775039491505079904329147308721423993183088544863415934639823110970311791206065266157584599568462085699184967120363210368145187517751330677496374780219342124388325045574403971595944483691784755390181123767881218814872386923614070935410631384193191422185369837669565513634787742027523000969107634938721103024361721543520043098735364533374135060677143065143138402449372715528413938398942299013933173934792087243280537677708964753732789316977714171616604765475802502752233927088704625773683769181684347888896796739691806171742104499090119445476993480476815403429732227050163382432980023952362361010932396752801348176725661479250797341432757439963678857377973383312745878978848874376399690158729351440203264937533734348184679594563499205898268648350940862590198236646759449117989019905664778405222532812381521208385330865994932533616654594815268776072539867924246918479982978548792750443225186088560413547811973351510960141569892553634406424944065671233341206724915280101472125597221764770135284664867695604606687579293574878292702189634898341099931173863037229504947447063405712857909619714145716762839266079902264787482100881749047837038039962169156277602156404783916812690861862283586692615922387003160323052362966414964760685975423403211660742318236547969472484226965845345037341758061238477090561773120291173548983622006846126500035476219621140112820645342080946121407261293464985447830704993826148375924954987262411993295159052061461679831692678862397390469385965981545173374540606062077950332141097299522097567715593397169278516603602712915254874336088114449856895010282816673510715211887642443812154476588714993476581642047124538725265578252644541059772267366543433788583852655611971661304076560410616864015818023343030665704657254108778957699459721106276976648016869252328779397596919018668252544075445255932086903161341340001777372608703150938737535756555581592795741289698833567888300903981547657493402589620773598601551738847009452194154403027530136093792591258467869855777889528517542816550060057338222499329048152383265095231311275834457714084570744698644965452649929945763615315692171303872163736134218370153890770040674074577537882296315748805878426043699664776933561679077219722716663087863967597972675017214895267123735291400563148845917545606088959399283848744090785546255829446852303246579430436278366057631644522653046458168032000340602756523866425786114598038482652771964418020991884798092970562436521621635039372081703822752837142343728247857090809246337217953970908164925291600070460550696075620779885716698410285133346064705120572051218616269576408097907637185316073115120867295893123393405895352759604437147998363599573562913886148349033262567454812438704845399791621499437523706736867361626115573643893813115602137223135057458204374246071009557823957900315783632699584073594827650726263001132829932335597590250258972493319365171164784801756160677613657553868417181166379493897560516025687320048402368148505529954733866363663258958975173643302919461781674892500857879793412202941388280570816649936268949353558818359860209628377202681535275468001733584734862766012529573669137483686291853184672608592387303308453327394490170145487539006431744140109791212472721949495337720962017523207323646375848745237432610753104902264690045192842060380682641956741762892485925380175109734862683871199466513414772605938389686896600330104197528829716172725175215124945339513507743536667072071815593758173927161278209583153875603630155338860251916830612341915553849692355687386578593981081346591104427073437451911240247026827135336140415234460379724888997235173205383842476569206080059891012316004340019054128907150841389946954186174898826777993528258159949724112144554600078330740647493907315370036658577180752247479521462614730310586080836479992199120169438017745933662954711869803933176301765248732706448099208961663869947205507812328342130124173697543915569391793430426499451216770969599066596918832260493719681811887477981169006910631836748171785445127096680521426043643103082474757305880040002882755909985758368058265395536730432643878455494624068211301147065504991003463102381667601980394027749349278982752990193241413157521072367312534690459245806462463188743008622932530157670143928549074293411462749687556335704763588428517835996408043001112254879229836257193463118767029345671254523441804278042143581192293772225498611941869880145529010475060131953177449896920638595285912600681287713822186523112298841773918416613483269089414419662275286660683955086991528621432839745483194345212220439368722736438695640943540640250250123295204225711215990259538838453767552900219357591071811393490550671076742079291030510807346273305858034558410956034969431472604409116444610046098190298352512079681199398906017038138955623162630089075245115405765434128173591988548327383944360358369112932346220774807629505513196657229403426647877303011419951311456185375201820425260873218152918271418474046276571169318223703417614040753929428459447683406761071243973508166144139918720395986680262578637961689911773458538785433017902389672119206121415764126976179531374335642153233167449179057313299779084333330020740774499198590083623248320996704143951998238142111796778462468969268537802513087140220639850929846895898927782556721472103260612428650848883241589042716429124816260302151884350813150624340131512532609348795651495250378688554128023132038630967991360859849314844212153407645979571698317592605526114067340991310745860169005714951472598793636012413947673744357499985479495250987969226941353280669701185951372364809735388703147700127377572304372041243831955186539759942949264328553937879976167419624184178714591929565260398790343146297380193492288066807698382778435212498404557946123652462384415406416980056773825908439689247664748634687404743233363417688978559988066043026779214691015498390879368518632878665768060161856470021675490686171646619665444744274486976636838598689638224186387242970437637773766038786933710396750445179416296533075359963470785321681842350079095141139525370665050344872340360633888339578143434241836873618980908942211283209141404427094440409603921037100429390906927970977522069410232391775693964574507925018971970685881659566055990182689485958462512978587862806441364702867370663294631466021266869243845557403675620315285229920783738883665188646425911344299676070611718538861390622229220986440093684225582893686037309110415990868685247960544221986003022066966108675186940037888900513137154815964260155041858847756844895378058016533558047692328463822377083742911004714226588162787445646313204456738308770256936309356570556954884725637424018491709986253737264158006658382201631978270497004822441309428084929238357069588949162392358241587575210844715761289378062460341666617537197702963478073541666697793500420424379653249728960350019872437265833315174962429140350175673819258362289814931311543274003282603415073677833647748394908534671010013690015124258262191991013455952869714293005861143215824927318734094806389526219024985405212577014440720994238728421604868908747838773878487606635565683489801299694490425087348157102805040972072400321343382068385373111121394299104993593750926959004315001169245174150597476769331045115995982228516647427372850157273170494653144469125790761309453803175747120645201538121683465872055905808728613123868662191713143613386205789095342772483756846705832298291650979620353168836286376931255156774780837416595592399518976826136142961273637028272627212948158169051756257315883477956924464488110896847687138340392029872920647651060548459848173234361255541601389048293675683115982235229871740845122584081115299844739346474578275892474162234425966099821659357095531456844261729358195215035764223552265199704703087797967326026164699055141682046219370334076614881329283395079340037411483611643126856554168177898459509595471205295034562975057125817032639142359742589536336780776067041841489241732135371320222679957227996405755280828689231524014474534582435132574436001946939155880492667882464314142254412600088371081810735937116701393144831737994166694242464890717209878276632224168377179560606270995519258325694471613890017403021369326834306583627784518705099938786400652601638219873681335216672196322794717633868384274927467422998596938136993287210318933984627062628953396797345903982448948307346320810918170724863054997691280209322881774064361800520747626212070052838175423744910158950944017348964641819260668522384847265671578199839160994477936221796825079439968205237365745803918595739598953762725231046015763047936033418384451239627486315200293760620161563733366473155040574755266675539318523234896115422485458424758791686692481517372692661066779856371563626873088288546432046626290920357662053833083485351798908985463627128779638594396374426113210141033866549242571113095422207016019939749881418743111580005233888467376238489744104116192390496957789239967154734901427498713444573444589730358794478326588129008102535056303822060308528360793863619056809704084626040971393545715005524473591004576081926925344421637379925160478488753958632287670622503318948616378675930240534150800210173979666173999274533132642415256886621294180586659312268279911387566729453396803798947978374154362333661875433400293801515297677998350692301643281349461274634715679448629962620308787981969171580546995891783621904191541279897990308956964524025864634844527056189141193648701931979744691102440101485848323583933237635828299044234098867221824949442680447650643729622864271366198126630211697831470038717322302831044178875105811443204178389191377339798877016339060034582237937214528598913190927043785426125852920310066205278826835546341676536978212680918713372142601630628890550716147429893246438081239265328608984252458134464867376067944811187172015075378497134821141266677912323400715262132585234434948066258437410574689469884800911357366952756565246481258140892836723883600166300517798049815029802105020111034033440484330069604926181940004260709713889736986965486467695103203075803146958382481248608691806923165980505270322738979654973339360524734660597642086033351499765039265055663980840587986693782697608918631595064592194892319618457643998654134460603098521376624920526760973501365350015447124963013641923889464195899914480042971947866822611708248014362418375095026221789391661933651097319714040943914889217772075489989356999736130872445341523740469271485738098147955564001771739945969596324722177896297044459439288354214359819875834297859335630519218220534178538673478184145932701358658777182648891530098432573964258822597111552457759720770828803434898656055372487671913637716201556814087290126399729773000962872677035378660855991786759105326065316500619164877988630032918979473315480887288986638606773862313220361814073239599260098699468134684880342473166973866210628980022437699727363436204690242807820146841026693871897838005993084150530223510469521026198016867242939533277420902366761446304340103854102095729633633758921246923271003860585289251535770309842200783942723839507898304123386042912841776611169323673512504328092743436150943293927822132394175802646360219649722956921541409983132200962065288430167204604479907621385421124003586695971714961596375282373253890760531128968906629040588352211093466850227333605595340076124803566697344908964104008291249837981556372020864940358027887988480776688068594408284541924221699116093391397301141076323618216571626889250595724614536390487896685434409479025903357610129381070146100605504924658977039322107891618524568191516632721608787756358626375283359857643683669050321908108937307612775023024909801739328671160516587342244962469098017452266659664644611628257247635732278386815769324112033150943883295483988765405506108402127367748014061796864773439572452396068506631039570003851267123558160399616442659953477910071245074279371215851016564230372172607723909643141905926004082926029259432185516546128003824411369899483882068059075471162521642525988801650301743138634949990940962504393694586476125372632816591918537202814875234490816851000642532876776488689719850361561218650919312349759953359054331028804725415777562752552947725638028240442331160467270312754760331384876830689966296759564948470810539420021957025253460029191761121100236027831656797332385663611693219945977471132189553140172663950626594229693442440635205996073001680197061623098387235591521730068341460475898985291735484466638191714002543555863544738362497142015836400534753720064934348335015142205520246709733640279462772766857306238242576853950895158300964897752658967250132559037121014592442668296142945645069823963588142371839092638259833395409585623199502665625894371113874660461479557088865344151218887256667293741888934120362914482345958978914180982353914499612387713787103633778544713891018223654018519888956307007807145848511948167537172102790517812875195885723239427640258769525867332308440015049997369003932101599982369558467087706597622651026323645492694075042731487221098626371468225987542646715331854783843357138465536979463115320076392189508912761376225758595564353099510166549509712617137246954195722977099608293347154328654450620290333356604197243146670846597334463927109861694523450794754929420328965627012747448477460472731251615497659546254589111005127926851620597467344773300393206460384500733479641698388950437114430714579255541820364092426878618628931415461496677393757595100777859113607890025255947678411781800940453730734408468219568096868415155554370712320327439185779250269188037759924525433763039652925351409284106688825491475797259728360380493439485334133280477683642704006473653891188950026497420502411178529489965198077177670695996098907560483767479967536033101471288286252919580397475047253164696386516869752190526564455048879965205934967157837648859746097459516757959964669040462317357410736945544986985550553173255386077147190156478819601207502173595252181349563596211315403610177699508192504084845218260446994930320127491220946197272729085381874803450452711718203118806038877030291758874095734066566717049992745255812004149751866060496758958944667912793799230633160496461554648950556446171840455958748976722317323689861128012709853049127481120134732281420151691950074414468150050322617710608853617074980624432873113752355456880209599997750803688411298162252843860497715709019640009309987995020890210820779590487394227698190598074346690938628145784378900550276807623576172014801056920978256473760458247854228598108908295697677040316842826192035718754779363763629243113831418914604423089427685627815335501954395156202727224921387731204469910345894646172624088154150282559787311996293018265464074841403740252737769062177007414362197885889604522150549133401455102014669432348567941185873107559589735476220075012227060905248569403757453508027999044126645068127941085395675831256902574082276977856704298245160512273620969217561426187437704112851610654360753901153171128709381097668353404591335012373952068614059979529742995871589080230981540897518950524156883080947719572838865120590376613268022637102157182270154966068354180025984445307655243351577101577976613039341358343893344786107557048398691873988609654038766235177062587425241053752769331590679059525929830239680135802641629402708216934531218123224681175975894394364634364230326356688647279541008244106890813307080950237495577754020068223828062547543415661898437787268508939974440016406753251305061725040010347707273097585328927202674018861603473162983091291362225346068929406575304134354425406542617655581831724241574782232667683477479027996454098102588705324907162731061573718625758046771465699916552511492190523371704029942092103072520031337971400579304403687674309425533911434930530440364076519178268523379009870953288299785912337089417157863026019558807593631764758524946064233894590152657350029615101318501069267312053841098542225257808591888688796651210366760532643575528668258237836429017245625588083552052946567973640923816219999556342639407775636737397428135915332368888983682233759527945024153858586001224300563427870465944699533495527440123918589034322856652496757108575444291036345544699282921144417332626863406062176380314792232961182265691569886567029334166179864990397537762391828212546395124492633564552429229957812783998950997927831788359777446272803981467782077535554031655307089287376717122456732882720677126951834405413481417942490107877990893189070185465870008910635452315584088190443723096398321692236135513837680231035086458395567498764556271768412751269846252453501357851135712787113985880035622254279683026887428813760037694638914550727547865709915997941421143642627579900318537911596195510821583967736529952738360345715376011313647432707175343629397933540294615592856641476213303483804939335045834703996849808494665991400792219084799184658761955688849923477611663160187719355713527272869823366305022626289802630094968568439365750383462769405704511386821381626344372108589070612206849851231656137824894758395174498103527203280472088943759975820547942505179204630219317164630537017094932456767883692790246311731371415090432728618599875032362551232941871194334429047806309277736937005015449106013815285935201172025053626431590514616735668405541311851021860468777255531941431286326929443203184580350002839468888347892735228602813099874552587998962031209001083051326058272455324876478818714054645449418302916471388546196644250262869244519703692192513681988849956204193527362995747762837227925413937155202148986422503940760115188030120481498626121580419326180402485095823750277396323057002048139212290276307316951098902188952216539119645714110825115841423430990536441497468407419353466406730598950013265335451495985878151447982856589585786456858317730200541201654146662925423123409126251841257892858611856893794393440816698335405668822935361444795900090755386328354440014925353281011052200477421766670358762544473181442748696168139604970343825112614377807919693142913879272301564983050820374016484108009961187765188828929314059676510217334538519073858982275529640305004835184913240525888913733142901897012272037753123794638788476437507746902773944396396387323315165161086228812177297034796577933801348066118361184069490457640104309951181406453630441998109049336768803756019990526722919799314918894388697629627379030694286079924640774516165580651241001650219295858532126892858768373829597309102674015047955137965346891533592030533803099038971271606563500487741756758635497516736729185879397580521793970482232391904076175331405872937871040214017521312446579046465855457158164060859351544967665894062808164547798562258275881744274924224663151235020558638367438035593676022920933362875983400560867139509070278890452434417610379441782360946951475043319968013918546056504039060889712894338377066510537540072486718978708631817256540130282127588506868451419570252164506545797511266246170408435511701911898436986318338138231418096870146194419134615094029714714932258050997271604226198926538973730670535527761246817539409768751387738323422500415774565358725355614778888909500391103941172078823098634299756815192295255103020138049489128680184561651132306678490646009853689465908119260153705473668361863382783901820794647319143020686358869611976304266813270649531635791690427614632275596882371061675671838914600361546679894722411994282497153037986016613912086346263196097587562173085763054637810559131943767420169533172700340299069396401321202699972936145622806514541686977282394040771251330204225395132126651845946316353497230139517392667551430580387664060285398892726938195878188012004356460651769101277404370629319452044968279699571205273716807522339128242175435943274153487464966446150315356331700602538758433348442992375953074116321279419732932804924095045144477933227942524245452484858520912541431733144629128278573923176628199322417481153206393971127903087022445224599196374992528873018919060598419682382262240013233287575832716064602674590994289318278937468792556419991907745800857561343691769650683600055105942573373011406923734790631277695164946586265743241903079374615623656627841384959854535665246244238881635233712451186310944865405763712385027028780250138280790474450766524107873600247816011808502621260156414948664656323700273729663625503212953741399599963534598771604794334539867217676060965990108223682462720421074632064021051943676594957331357094814613496441582812013004814474567096515819272302394453171484496540743011096474659612385024604636200650440693373283804549393858428028548244719158785062395519787213987816782380886633588434101339341291434552102418920230457160796757712927398083663926063718940033285270748421961877105433516257697441989523528337004621457913316489950535469847471943709119782785053028467488541786242590136721943274468462029756449990836539860526894419683462932331928944403457664058735929345010452362961890143595216226763651861242381422259272281542104065730706189671350330792610893607760173264235223258264314744348248538682375509545425536203377530251592627218371534243085885957990310591489334261139067536022401809019358817914928434107070180625728905028222134546741534722420614899872338519806594464983983758343411648860059081357531321265085040507724618057102960012829957105105530387050188196205877248043086339640630745789226352238672173954662250910171264702590879634427502120488665897651215134114051079487468050938479327456917009531542589680471117542817441249653912831215097538188727837646107154406997501328198852171988518508650126451747532170316393761662796596603324727657957794153787332102370611330719067323222491652722082299780151620064779603483856482175121053654749829885222980065652805396199727887431988666636351224659669035825438444834698629702718377302794669870022077902148951477498673066694221984734370755800703178303406148952531571665776557668632784706721514686350622762795557719113978262108366981811529619538753121952149444845684296847516889117042377438119683628559196598478313481002154302454318335435804443040323357415995463456404817298958093313281656156179819662774029501614851164496022454043825444424398055858459848204705249344147047686536742850809572459499294741201496772133436765705581644283500163328730135620216176710182152840857137678998221903631431644142734506180724272603210271160081537428531069328539680593052557664868260559048373264092761472579588449983970576680640337587838136486349414709236276452700445985735646251509677674730864946601267113071235691068608902499541150538823360217979642351240900976494389382414180250778288144306462441408126576374272699468759296416824292205855906756550604899136060780519847137858117609070026417651268420451828103825807267391496577203863621280700224144700545700013143690073269551886646371748210552081350731496598309168814441738694374646356243059468152613424412125397228067584940830851039772531469002393956194330121943142458031769374102092083407483203050868230364663219438888504897892147691425658956338842365765780021502286089232047884781895838349859819892061304028221397545517373606394611409125058943817509395290233092198491489945065437823050419627715553116211310221768846738515403961030138553763360358638249468041581701740403554881050056409587408526291461640312078013215627189128349047944480141826437523494310768009419535249647793619807793621024770366885086659169623043963497221297309994770360819034951923024459595751207597443852176947426428582279822115498064576501610138518512371540663963285014636216749318626653487617700983155704167722273248840296125489036979367023744062435787046623195105288082583609253817001598546707741471891288340793147254843771723243311728639725581542555830464480012462386973587413048342610282346183889356479640963800209082272086003336836746280748106118964992664213616078986386866783079442595423647148526751998291147801552918317386740963884509181508345947909493013643582882969698464387592520840992319180680961882857087181882318705413690403584727545689087656504739199809389395556267059930306330648363750786299759980517522868729312137844972305618931388817252960859470366515787518527948205246181004311190200018539372382086624599549231707927196700518201878516943739097650300085975883813213549658938421694545985623179917230300333934553718573987613933541984234060102183944467712081021918684931410901949478615285389693544620590838732005664830527340693430663524025464330458891418070758262350710817355228712969567856865857582799461854602241949610926869129617745356903295128889660368698697706871565630707452553803967878213242532298329252168960633507406679898818128098223612987617490659510488051263004241408419221099409415928693688959197976685535795737893303528380335163905658327347667692633417185067021587927352699476502972210810444241457904737578258632907323506659748248051615973074195487747610024392943476189547038084738049589003242084691454328402458433239513591548797737981134946832401189033324278996760907456161994980792204888814088388181914568230870699621084486483076427395602756134363015361140378005924767130153799461133211584745661088523068609101029595728504296827708035775574108973286562766325289436431368869482832624011676909337182376841613477963691098165765721389993310943195991192668738853864646429536469086111303419815113214754532911474114247864719461680429375902936473820062977748994580072278830654191352667269537398925236197451067602010356397665331835347534215616482535371875329259693503524190049270341947183856451786193316799350066590668235764357811936447647252476025932738012480189347498163655967054601103218277286572403995384814596995242479341768504038092203037655462330835983581221116938782568249651767277655676181263064256385244015435763002725745916972403126950665468007983302377178237488067050145044702486493977721877144803797403885857590896944772177847351031676534025162356226123814852623895337423291185496689039049920626597279859330981956787852996965671655726182902670792542077005583867640532549544692399955830704359145527465442139877014054139805002383353445914734976675323030318003874980854541730721942050672337141283482289470875848261011718149548027197807200674863279018645361511086275437968807930447020552176398982802206325821132780197063872917728127259419312410803218221796890879253427997439775341795566194120367425160672106557935812336074678714771136701272096458339032582899655945587585115762317569520660981903997194583127540531638911723289897993764740987298440699045310665795629119638266034117985234227272840145917907680262466393621348214087440117125223725193071695651525748139800291383012503983440126528492382837307402186392828970514428645799650351087095488432952487582148743004852870998645245988063899028286185837819122600514915895659731275197783976131611576816372700184695615094427361547061040596156138856259690190171286300898931109409638298677428161564420396379110643481808472390350739067097340858849458473925145067659368799057304492329756218704501914114038701093626178619560135713951572477970971620006291214924086554241223993026043988862470544554937425224792806597299562113886105169162916215120379105368008020144860602480572005403266771252820697853418458632914940261170104561801181977383211620720292013307807895883157523334523130168652994709734918781842255067282470775928605779463284243618672793341962369379923911214334046111454403994023558228883047764781489085261447095364830384295202085045747621651783728823753298387150565297455541020897604902393712711478543680554185585765998578656069598385183850032574839185736282943703226339744901169996395786991817400107444004371536063800671274293077364448769576189736363611343436898308090831725746761814961582244112074930438489633970642466093627591293568612565047961513222648179511310218890577825890030142430727438636685395739343032516531898757935918453228459072253095169615597850597999810185436424099706681089191289124827836929649017442493416431587512128825508783849371621701513757273760355481081591536941279829580376684471372638388573952063096508795910269796919736815862382761734813115711165078358852910469258145833004991561211438448425517904304923236224277319875498586391203074143163524816182855396081611251605467497231194618579756070181987836961958697293895202759235882115552900812312900044421660703230987090955166387506970800505460959069914825432167360288968458755351376447922354271182921801078050592581131083951869183954788003201297294214311159516143672383136310335991476422219772210235231193196906794606702063610389292791719053794311264226098037056878775395776604371215841600389352531678613023208453690392317277735779211411291768680975253605916993966150764726501418979591158682349633318130365932769297296203499527430483406047191871321556066983079179227872574126136722139265232170878774718202955859817308623922999509402687294145827436134564818976996038675127141482550444927015302326576917351620220292888092813199278879412199359216904135489198302954731344981286436161686192047337839491319465104430151693651928043114726634747511518534011364117585396899334269320795874501766317280510728153700110628504312311833126648206292591429909420021937816165235497758777063414093367734591930554234050228661394545317148722527351348610923357088609123976690689412359916639892522156583304531824706374391905374810979451707911030484061088421341477543065617926008001187865696117696258672255293547498073101567595392514895287885280760520516835465518353009492908462878095171162922660692749925917580810097052685266935953158033630621204088653446848849930186590807545123722643771664198706176020695897202933099197494631833772372769244070182230208501671241848313812478581050854544721651964217448440544874878556311640981180912011220001603264094792349373621457051903413002177694975172507354942878813067740321992054991539297805277044198519321507436428677328366265302563079064569744381603816364219913877345977964564766122339703546640525803809768082037074625009037496730453565781563657563551763597252715320239511461564148764092056358279249348736037352299682386957865641454808494309933279023580894136130378536002525692907036276690352521324524246807321917304841624295814158228216865183151327240211917967076575328073564451766802747979284506153571584863705970000747669509752949210109410100394910505728702684696118926393885915943587247694731202557115383174810799661446296697479101073592715422330095294644474341285147774877236328524513090556738940997721400998349168194657143966962872820989711710445097697064676754730488333986463593271657120391192091571985434187181970509521847940448049889876934330007710198970381891284312688774036130937021459505460582823771738958817304661753891451066645231101446595831889760961377599354838836360675806771851342324335969088303142488905198595461373640444471324317302305581987867449488028759442143967173127003220039734797167625159841097566125688813920055652206634924031812878270276148340044583824862154960692473634085159390568406408414809495213457815928824016255829548186997092986595862109305341368144428603388154488668113929090397533284839367913032063298032073948209355996968835509268154383913581779189091491348580527690504134593637182715906531025728347837611080678649420577551132758849609390045487392796808790164725771417082838087174593230000557544020331231867232908674187498553168751764032298995339780563102661342559081688890525444512490152293899007929663830384140138717509385320959456496052259126585686013456626366041715988178251614701220041166855114004955721478537992729826396894398903883743641987703390844327237581010476220139561259671273857742723358486592254110097849721405200005850929230439346001025818075127028049209175002171872428659085689445413491872664976463311107340452983173277023121057036107623174249473707751689312211088643147399368815344234718727585821663542412683429688843147270264378366196664426613829718649295220799794237902714354058283787245862027715140164614481595306289745539341338830373978051795154634442179613100694217662263581224927215378495318943250997053521998775750245823994418439722295402526170718100698952517290786380057832969265491666167144646722073529380047422665583239550825712646190463818610392819297284268086270779945881708637322182714835372311820381229555622020168305064835849712602892757026414333416099651483601987228910308692264249384929039800461812701550970827920221827835343052056374949967927668972212126398545446945147744465761824138718383356091611410437831949183129659154927173336404218442563274601234794867801842497709096245726736061876198336431390557634607590124744635053926184733734827903023850675416391696180241057633960025531930772634685464238478147653835744894407063734156693044596280517034760387928012736284559191077259606557681508128351514236490774517838417346368254955408988117080713407138438775354547532760763259307187990954150096545864699689061790117269114776155253739740114410954089647576894356307802696917778886044347901915262485164257632014743092643047966324034011972445258816965268435839947795123676234053393467106858507517975431210461890324630993690737522234923558265235972286654301910845144791749617228559323324948772183653984047884227952840321781230766262198794166962271381095789090360282959197163237346761714213341774505878173824346137294498419440469396708160442704112056247650059076946655173251233441464014045147879260804558491433687728613312303221798347683207577421452133995502070898156680969395996611448897664848145409239513401233973519638687925155474600128027797986579156518952434800687893104076154223119794832679789411163528653834937833976268114954753162796302397507767070241937546888363256205977564814391286080345992343717539138199654008184776995941079763174634851850499298247943294308468135358649506955035532315181511413741395621390918925759192982237430400971270814767145871960370245080254986919539997355052726350277832759385456938759097102620646607619653380496167095346634655012665182176252070353936193183126555750065460809864071636095365071904607001043890574157492894261315307099194869376025870119015265277539811526656677500329502140799543336748215303608320010911320021499317468091310454738006007782193381200210243139735515464179439562140724548216324509502203264125314958735261857053525316198611189604955492035948710876119645345132400014889949610444859970204084446023379123113580320701721158794403023895174662303364402212529821565919431760954747722132394322793091429014254795950849027386682713777845954035465137587274263699517841067508791474659531331345424660038686671599750057363114073051324215822810895034064566135534443619671194758920866929460002028242720416026996178431190001690845905703881704126927224791010008398336115099677087964621742069575378241185512028032830489703773774410755959511244667936037031777387506364109676133205333907455686151509540939110071015888254316549188842856930094378990225135698763731004175533860826644892884070410649695790666039266701602462281586929938538815215526852915827593927827237619209763978399141738292311024308515020679618453742792417819383896209699511425538618136380402855376537135281423343265227674741943375320380413326127215127116319140912869183563875068831542734903208834619772406137405737340119513586717432892353769785486999621197393871242934239179520267198041988904097303998068396016085422221589268051902632992401380573337348885622330392338855403816867154854775654525869670347527389089827997076669995828661702316933099444517265796729557107371228187121008313951487445892065613297857770380034685210189569630094930733094089923381220859576728768736990228417476957167231928764378442554663228311285554595992390573008660659122018211741538388303015231841539380956318912929933610758435380731754139280979235322096194518876974322806702395628749543761322299576867755614290586927481078132908711097215582412747620805963021814280983718775733849399167776736628830132145240706232360045528130413369521059156531018268962524750102738624663391466872400896334290032482631245080639349515930257608254205251211611429641024427647002275067582722962263561844372395969780143478292553471225328827286160370685703531716546127957782964173620584959080927045915345242746707240032017873876804952048605240088646876871130818297745862762083644847731196546255992859901839448034232518964093112615559910243833099437024398504726155841463137313954970113097668934174012487940297416405983512834026760645846200484073040953159255004472230894274119137341286624090190352018799343261358131824807426012270150359903586643281581033656272604641277738840141662756344063126428868398046675866331163627617170768615989491466508606107850197009354270502495868666376147922464653227642601947426823719264560863570025520163223660586959263767270188029858589051727973551103481926940328081610343705863390992580449055669642297400633342387376088549863420540931940590664412348139648888600411835886101519753089635783467151634264038477335617457458103324302684169662135877695098157143402394331793272944926155402337003894988832549842490222978028737034019536090538094701686076373141603626042027083632723715754517403623240910103889066629775779228293895368440723027088242954149058685001966292230764973923928504426999253690599032009176012097513116838611962153810234566539340683488480678664150098573748794634904333276542787712109185318602026427323517971783241963298312529428806599280796257777251378298021970894729398643943848020529719579366655088659665187664957340784872467983449216558916993246368637294220191838167437954730018871369155809318107181386526755311676681824529823108671079881877061890213129765368474004020549015614879612674780397413207568949258423890677442698776053149871842887761492598562190717837720556769083255731298098749802347261979639881582369438871564516814522276504970605942483565928501998346091937514327870247777566226531865063637106371176472962709973011804661665304871951642285525317461054604688094250011985637070251632046821218520332119470217853329233286097969953839381261775957940783972801397949237760529274498391705668892904553789851365493108636918690782495306913231459336600388993876867000942556290617252478107407150044935474741711409798321373478296708722892850786313690314230532612788980335991791182726913100078449580879712232152823899589392139285022585589114392113948032531074345188361806385203289226305854250736066618274643794647762680337120805039676963614996782803704364367100344684709676613604286495899309225850125397272301931475590892409220524156857078895139783342921885649353382286135195691807713074149400844521705763422089902332841017944636432986308330326853983666773126069712200928454561001852445737573004962087401051034809764921164216527925334062590107792036819531144564383114266180057047429805497110315254969631739372481186498623118685467125646771588570775878106346720018075045401857083162906489941640465654162281269258817038128878079877261775771735586510756800864243315839654977217391760686134880426545041852478681671677317098295591094666525395502886923008201533212645513196768194505458391104927115699347998036490949374446174568621555465187791510503155080321982500072657411163997005554078228598660384607321500805902205856670164250320707228977172038517274184267194576045219499876550862824483691436292443273468678923188569664747665633925517639665247180495643550925702774437630454144690563005885186308227494871667267689668093415713899371691576599354137828049014276357027891056514768827774938975745133275115395210949237906148492508683247014267552013739464564438172433437721887117228724470197535649611986600267619266502877166285868571368684534792249314873857346177712168027913380777252689556274952110266497844298228113120254504775600130989090197717080258091021994835834761989283066668415731260101385131483139308280458856854335274820646157809509129499786870196500963384183857390519955833304492759952131294785367006589726211637057826780741241965852222530502515254276027417794949627024171162102518710786245996841557778349025485993067725772012395080834648620445563956174994066859325338153173696957725555152827761794677688476146037574971292071642192669647772091392085448375362454469344251491379890210861971566880698253652428620945738280084503394436894888083898155763646771012154580152412252149971178720357725263461238462374166610883056109747008457272108913986890623074182321498816179628944031263593506809849851561143807599741531119928114693029300897226893894130498673577412254358938736735950557081757419504224681784790334181846681396213877398873078094455233302668675439065499776890874200610467184772360919391188456650325822473956872121744118730280503225571452362942736052807887076991077658192129773874770450865110996659615851554774270025738067890231752495941463767694172132441829216555679039773457479118044908396122946058502135715110700081070743388110117492672383685605235929575463251224467750732500741415270896687571661636857286328284171242703540946711687541639454280552460224654082555304678521555441004501295704416463976517453087494120448594255016880946802784072580810127567516453604154639937253772956849058776989896140215150542639337210670164375626064182056809795557083859726763433515754530815387156999938660559112790192323151253133480674533996082623674245116329213589120508321172985445811547622710180694401369085876475009567876930219233082918885391890547046072059207938393806188943662917028279395081154689143255631800027553811491586319581634139389741151918053887490472037353072891391968172473015108793547895958717715100965116192635495469471603221132491242292280256257747783132621205932160215989060526429373333863716340509844571414814177145147359736577331682312766306881623178672152114036567307654182703534146594951867840864510012636550916186860484946556032200895299381288642977660501679921063405327188889503270482072380924171762965688200191212499388604922084716268344709496692407200987999974024085723954242440775605149406391235368321468489759053455227819211285780916277746711630382708235508103334234181045446261878166053662530773494244966939453920933859757989244138031209401352284176032740560816038682563176562265695474173962301148580439411274273569116556385902725614441566664949881638802597581017435249099095189684795928293906257414365495357153351637909364222259076862355716649367829547766490265361590461614617426748309881762879985002301735560581251979684215655953475223779022733235996549623214134015193439851961009404353540037537465080765578164837126624406155078753007042280010362994816267842468516334067406774902028333670454030407566888334390285131158686231881229449328020291165584405943462053986288090548460229974130231229762417192143613646207354866271199786581953777783397011990246143411531860095417166668222567111958426007625575121648623854647496904955652909210555539876612315785311729855040682748204327146518313915261584872920835062029337740799720551326172923164430815536251331053529097962822658846250049194113346644087931628369520433077414124461424416529075927474523713141307657015195195339668745505342851274699893950832536500467076735066048252254816750435261471564893215606972743976052414243057324812438708739240751965690312201765519345000156325092818434424260114459999750047389326929253232414473850917202432268298335873218754878596051717903497441797798210724991666556418439566537847115394551779291219273336376021459033008850087819651591692797622607892230313566888768717101234583740071675469479888468342492958587832458051389498079283259702035585979313671305002528166557196077379419596512984644132361540552945009127968187884844243596048352942315267196748699257436902491347434155961235195520993801314846865587232857095713235715189735997327899822872298894929451474611667777723506542076973427595413034219695825593665043647343051652362008524859645000509398044872824189940946132445051716526873318317827715236412936919872985523974579670928018503914907488834951367767404785583643249624675372545232975978754125337588261270316784034209645918852240659324952584053790906446174475964222690187018314086960102392964321976643534603978762141461786271086080791091728317337099698390556682650895059584543848075273431180965314094337650234309464590351273132048374414624188584420836867804484277344807744294039050133829033956401697071326561599203358766352794342758959065878834980777203333389508153236089719946395018101148404931421528972039966412911959787230478923707253655514606238741942863304980974134099663544371332647952132831838828056924030780127331201601748235660735462471911841161470945605162935674740133587932488274232705074248692738954819347640005697080982938741253935896469674517876871827934675744413531153331989733061219123732974886661490423313098634964289196004363122563570971897180745252294462189223638539756404355539548927043321399795945075950845388127936252507284942128127888808952753726412179907743866254630035045028808750375665809255841418884292913955663928788574621222038676513674759068076465189397547180098216840424146368354011537156091464832167942549734233450208593346317642316340577051455852463395059505870778212401922309618227751405123315979400017220523093450604891311004325849254352233807905092625910665880391277758622011333792593374234541019449553647055448831823800131463278534740736942425704936651144870229110455995817765710222783149072102003744576885276910879764678263093116245518499026296115825771380790081788346527593885851379804246384842323962604932187831696432198033466203931156651373321913853362580872765127177217204547225282784385228104026756221299908870490603976071321163791729533543974668908413355438686678406992380836100932864255214909312946980701799920341585483314574303595275808916461959901238306653255887780315702141595219079654508929716788750012779372316413030561717072477646228368906339626152797556206482352619632960198025454037037093073197519900380799527210630874734542527234826113460716143976190614640465957140380835252626811820461622149077487532363287041699652589480624874906826018849165843716946168252459530781740069001122633691375139724260134695754870049385529844249043199172792400314646418693864040802263686831797141201204707216931738333869540793688552214000220433336964615714427809944032782660771639701694322450706183152188519293707019595750837923097073241734651705569299764066782390106840615296711152549754418276799490849408258996207723805317478575824693807081491783433828878984926612554949303279025313623886174879436654944973762501951914039576293854765732381615380151085471637226160927780703278380271866505290020638758189061420519130683352429737663095552014386445899736390786171775940675919897369391407221366101087942541748635064541430610940142900491981883745475015127565223567833781503391121189144390436067387730435524975590744291742180101827720792886092409382943867735973720211666084697273573661969937033055062156857880188686724808472605274074073038185604588002523450635855843863914569295286602750206304261864180849043686674491975192329712599032164037131810814389911197191103018781044065805775367918680976269850155357909951413198699090274127734829728037069826008054478635334832403741362624234490284441610096464414536221613998281873790340618394843209329187319866622794588104416318698097430576448550640885033171761040040234584283254232566265029030023173641578397692071555351870904782042290107277842356386017453901650879221640830011916793722630194452973419443765234488311475832896188811604549902303610330675995105729909566191487991707520842228780531869537445755252402805521934963444591604763977800971707243381329881955141529294829664647675003844199147667352370967114394607105673112136572253356215496741649853594243054630773177098936110701702640132940252500010435049259041279101886273375082714566732769338986765376813989152870551850492981752269763139603289370216958347361178557637763496101783543995991836737346905852960467907132932935822449331473544993443603456262743228105493678055528819837217136551793530208401001442908455535947916519314774339068641550773614154401796933210982695470493023308200793765802561691434799711093288745974540712442521138339004110133543764396736728762446016687423986835232429372913346790144026741259145765481289944100540764774030057500346283557330785516404238617881695879905697235467249073780652175060120840119174313582347331175211376477559660760320871181392659128123865248157659277724469779927482920384257909742178619826386307820007154365493476096962216340803541498239037318070847890448637223161580120939236957644089118728833396237090319951399040220329621429526633136228978121431195224144151047416915004178337840952281181175344641865134780839203406316181095816305923130992420527652038258547921058504692634104437605409561741921255828939392755804961988146041210150784161460643802510467582009822180570100434955471241437117295794007725963159910490852469090555455889976020610692393239367413746762060456504967618639188240285076713262869445000492494915260674285349337234468119445528401765591385917590729808320118318742942703530626474363276218355647354727614925211743112858646646459987149742498875526648309391582854758957228186135449060502700136154164608235472785838920838174629630841158750903918946021300036004649968072463361615250087819573590883286997851681367182777433010266370860167047496027752470278912308537568453953479378572887782791178882124563063429384493848706634764748990371711745125372328195062930427580847587046078088448956896187038576613231531188027252273312362292301081411332120914140494717271438068227257352136296277609325568985756158634344713884935082217520322418631081285614731689241582444222642528774749490721429057278473669734207057445816386729871410289110715294281195086264269410772657736350562164299865374288089216612654851813780786319825754200252834033264603408968248181604545204112372583619169808333423690070044101805755509157482084925096939015538209565970054480773002123642161884087838815309038248342231651528029424654311630922618064016030088315600694023939353713284329629086365044039154205902631320838334666184038471473182091617892822800777287820618473636657022980510524389415840903074666027580463653994496334368246278500229594532950572179970048656647054411267675549977988051108149695588838464818161488127822968645363306476133493120292869745368860592294315005372408116557434486890754720734321087725867492475031589794318971519879621324598204204391004348233897918681066804820597566358200617185159128504161248637114747091852815628613578958944841090924846589722051522272361157717620362443240542764886080022991341958794803094588275106531143459791591969440332253034816546800081337835801914053530185787830469845796707935033832689500905168969275482883777340935491335764530189651166422135029755753781596021620943143590325133289459784870173265022752201164407107661279602418806398206911359488343441613939476934766902432509070569440839959653456742920779903963363632073505617960477806239661788569574473417123368910099660704226369266259971991211447533990774383845201511312153623842980134958903400876148192836089773399486369406402292422606698471208308359315096829120578162475165417083711943986744877598003167157285047229823006426133710212008140703855536739047298907878365822009682682258651363173969018342575906497381118237370273978628173015476709695425886799879516781316142189044662606099252892008977003315305206278565255795885352399232712693860048874907412511244957027063170867141338985114733693586604110013974079950447796550426552570895323445105822003503853420989122961628237630085012707316970706180891853069975005235178238096665408800771947737563235498141512352972975605121158621996369111638716521192312805259657272635269008597457352800716765258858916096172606397489371849281623547322572756727003279274450981671223292231366241278405083097638358584383310310041157164885101056998028432507129565764837521184983161555877134734472837613186516922491724004191696003303823344277033693016539876219663234166646757641038829050507299087950544808787013127798420511441792421710980457254661161294340804195291834181251593413767631842304658910721474628182044427257982456727789957910052712118726175428750624762411442096398487492708421963000611081857978379557023520278128239473562289208331069822713728445844658830759278250633285024176194731191107701891843324252388159871319205538091352567337123053510494857603112653724365379119929544138378540500573778171516545361096260734587100030911485567642347754199369814052005753623129067235106171977324358289065957573184055163969305718836988315738692552291756232921239469173162579133727835630985956826117032110539308916328591359035101986547726083509339286668247263167295772685093264863841555148728018987407836345278136953609894485419642223373851497744373537587782813117140201018676801184459908469328735739996657973240152560215340143625055434678672282409606853344928154641240396581212849185021361839492047515373776079568946118230822620938172167990345794191215949098776264074460336963100939376806263370691572147330252655417861362056376313285930058175148758128045539914395186178132703621456912764078720279560747570701798226451860061085170919519029112627374736345114091279107921691165391172909644977674654302886615958151969841647833697119239352948632877268122247594957662807894008452631863306049021591353883956687169323026482445004139976706951665954253725544648821630447857765647855053524568815590942475632980394719484147090226795757135282816567309688337847904334534106874123121350703732371926688172608421819428995174949706693807391805422719400929137472249728877761229912328093972973423315110909113094915366078512170389921413089662167064347666070567595416198948542179651950729344921490596794772868769165593862509752333937528004790641527864408268416237610948682267417811441279704840648433707689311576208574549647520193355803929613369302962409382677388920795308233319048725195796031059863410892739935506821789373515738896320650199854573485256202512731420392554829969147108444322152471514219520219839199371123853585534677737405696240587423746788220737287342451170795641889784426315036918400156106238565822495270499910952064780817807171791147626175878750766829214027813978602720386464181049084325981737944246561784281328476584515950103499743569161865128912010138861911126242175094542498729480947868957424985202683391883603771243629302221808078926751244424654473055292670630726562231785738770004052759018975079894131267221641618816846685831594474603712862982231888364857469463094788099844467699506230503304778937393539790119658769313510250033000648735926345087717709323654150898015434778971114104587303398584646920775584716912347830091197240680320229345119946816997627504979117809726114266681323689322359650196647540380964784444408741357094330224885365199595732769684912194983404794005329290568153172418723121711936559419526682593442725342449083647177806351703584847863116235016151988738292195015162079838343826000863092062898960498560368849001493730219436354915865393069307443708493889527128173617027443917932938114463517729488427305445302229687693745694266897860848676469345984035802506045271006608777713466567677640723225127420108007975396591028824526626378556489011619427101246177733344686784539352379834522107681141615692498592343229300280994561091925905774828530450424672526250923801338475421476786367611534314973620729139282395310145967913275036916438059770195946150552648988136057718567402435387057769050556980702440346062079818289978916527697419636152745651954811671020044188419580483423213288363285126893870838105119833131886426891517671028443569064805754752719365276718196348900495769005221671069158319830937302085278353059306315721181820679608142551349649246140991584794231160201081103822264087112080598779125638595248426804207874040146265705099060855924998500663269363199628983519175144013026526772724695151610826096578070582119997570528639685380241195196205031140550176951380564827442601786251207406685328358738681887244562042084821744237169709374823709722020292758756266934837782113808069585668095243195292357907786792314343753119247220218750632151021636727131343808961857716593513207779385397612574776105194538095784741975815173212978414234923857014482447018854968092388800557138550664183371514828435916202693686113388826490963141647588689285334178191140100625442789517461496049562959780621582531016571990114553542732638095824618172882701818570568273534442179998146699021758779745233963868903336565211584618468953133296077434025384971558423276447327304099854420640304056215460479523344052968595374274942120222190977795629575679168121309948345009564027946607884068769539639904531015563989946596927834188720570989812751293276396273003077239483940349884282985724243671942189452542786211242317798489297646153361002470293640876417455961827699669319849492711345789150408444570301703401050981907572638263863044276504429924299814156690579083004461249363208141123435888336555706171878375978760855529342619542384483099350271469172761495223770178209254786040884677449656981916969088920863718362944183167605981456876542353183343963181278743379631724257714994234401760633133895851315887973491585153538319948835907571505255860391728782177197418452143934649052669101584917749547591250939140453576826949896937698344881966431496189702597802026967988058209354030203181577211416567826773458601155384902919239062947042705564178518059376971125578219494182732202459825316679619600457597443207856518358188067168300310416821947955367856729493766691765973157283408551876850834327243886900743428912480996178901829579696002715764715363740935601873459615721659865263527334122959154383261170543890893476129335181214499387818162725625892391917307799386505505449123308699968992117975867267428934581569293275356976776681644713452491970848852490334171906944502922717995580601063634418343933907554766840913596906692750035145924849565399372664028607816472172211909518889778900335959063460097875825558975101234398653322300607553760748092357586773011098162375473424625705334664853679803576258051102962510957959246794984035476628827397644488486260790215400214532047596367495787769378092799958578151365336705695781409634425484974611543165095873095934640311122283222870050521604835410323964352385520018498578064066592727656564887136926933348881558361501165151174141587124924754887525219009881395783417540976184832407535690865901733813595678757882151032383596405744884632896700071929356842371289304048220141648158951620157306148747549288504749390810890604137824092587759791555363499174221960009682673613579126971669427243629802415641437240552087192187984793538715675548112318995846538051922516724872605290386017470983276072495651050109745930313820388496357437004122151318946539680185715398889381120329204843223217328765264151868778483181754539278743386497558652718114088061151011333460581875003779754082580735913671598344951464702797386499540030290466030128448165854254884503736836084299386363093085999445962273616813822611600551301666784708587659852173772528278519508240987741921402903686013246163519840235850373961481634110686532737349105509780058774161600001693204444007408786515294768905027917384762642051584574750878623192210091640593356296830324466456072919280196606544353206592303869134080834261836447948814341928562143446214319264801946800104728195927150134300135702535475088481012688007963965658426777466520937914072305156284602466620047325130471611519588879591843507351479389063967239285164575267450793944133576902836800567019195769024958534696607523505788961475866833279181649583101601175399449547374682816631032138568353638279549268101732257936025731677624663992639153706444185410326366173118075712668256896778152879105149569371321443095942476975250827201774581254371152958795425978568297076310998922913038626202970921640961126916335019028884911956006441209591476114659133819388764102706377724290202764015301147034197211391777578363762018395602032927627727603894288577634122775894742607049668524550625243427235916619584301382079822818829760756319763304441997792319828698263847377352760033111008811743257096427186566902872793784839806790430126448735393750330557829202369302818684457590335114269849826896641684514329642914059991743824301039701126969424841624552536423804380485997882810003426347902778421372791506705200930556487659170694935006305873377374504654711688713243593604612987089824008798340929491151499259667298400708114490209153287881263118556290308567842650250854251073107649669794142858115344970552574758707673414587097010044868124339069024721169570615528069976185093690079946701792457958859533991430155269362871437756477234600110271878190074920055180568624133063599577269793750633737583327062074479566461950595870570784680188276947286244176221275709113460126857008349178645913835809459897522024672573818467567776683615194826579183202212383878751451605247858030343449570333306830467781576527441423901713682048383447117297207938430310912466438775546385189818320863693634981742365893261721109912347252002064255122229066700471169588380072779535527262999344530368096003765283326587071723859286972069210458969946202226962257021988757862852855424887663103462931387543703540377244873531048721174395237604553102923320167935653987501425862631107969663178849821579276941878783456078578137864976608424814449522718041242498536372590930834138731368895354850725044384057456778162245083734916438797203478203611888819973342590785696405270518704901844063702922498610067794880692698752139629174692830542714987352848185002549429320179668332594771716854492028289011015018432029449545102478671641251801634546224896527609522035916968353027055991532163348441546796093744982380521197039111962463892289710551901911332786169917290607365538028355817164827829437263731425174834315422738604902657257665814674697071408504895171750539914116773777113848511120736129713658188104090724035875809800357484335575406486480085975381694338923713134994514599405449003398794502028340985149241923564080788866602573648059590413572777941863168869899781139768463160032467095933386596681700599775551369577176368422368271097979085876620262056512830855773587820629009364476399224653732743390783101547445771480067922791310426086186290167731931865351646228982090702890317978422954928724749203224017308060509992816456987666951238414476459890271170837416065331206718469082681700399334104668744515333043813084546474454878025136762892272685144130207948126677858557213573749845755523322666016927814401901959842033424494825649561535485757196783352599818928666452704675745274650731075570969316885518366380615080361497630344748176837598549014935069793076184237381820769530430292322862926829653228934344470332776160622191744890006202402475922532347046271889913485514139438746362149243092205907159589681916903301945722378438865145972354514154937913189500960384858078051238619675464823185728097062009070939053670257787400037799729144300326884355739484578681032465080090257236879733926544041971905515381838836122449015807548945033013227768455146079342723538983646814179367901884486873278295249837706549817461747370642854851659855626507677961499114770640263613111995840295566350126401603416942444352956639867519887944717886743418254526024648129299378813322797944669570466414413895180802024416861643333195481902004544818157211406346276132132668963205353995663924875664860446157460620173307455703070304942274411617918405382049191506161058033655756861564398473630993537999272593631903661133390810935032402463622154664476967182164938168250934699981308544266320642810330643479408103634874566804106418329768104563813437542622687011543711302858635478505492125871993485196658229257161760707710953059445414176575786723113183087424044551831294509117711614509513221680361600483557882106972099987192798005500067896583112620882234945865896290088998471168352447339493681591100856746429862783709536436838067632105529608319573732780241412948407271220996026374374731691157698996157139648630054116459806525278320722670548806643442591948506564264439896690195683408542878890907141607192235056609133586109252175451498854382671031390411728222841533403873783392747218654138018347350573706084939452022277497608946409810091814547055712373378903100693516481374741765456892818903040049975571973345433634246325882814556106607741486920019999937010555209550066931813381045574239738857990506596774774207049457890614750172678217374227103543266869210358345531961957381112773041707093166149291424528908118954055152911760550172763445954431481496546547146554950990812152648295384743557442482238775081952087524938565032564450427249686161901324461219755959162767304118797656007603712647477936844131861801486792920444475148917222308084257221701820716474189517826318259170225081193232927532984476827841110748249694924889036049433765065620479272861075988446540836971264097217095364252226127406571954783374654844377259659050744193559874874296115248190479741747873419457748232284084012084484879439146036487415419637819542700311986046804750070009004435145474248187369043889828631238394973924633802343362477635565527417275443020973072210936156895485388847893712476238783477717128028697884100411778230206042727894308800386038745388328956882437644945391740057668584586139581990355662566676413809864140514080107958994677194362829326963804507579806275269526067143420359943983553757291999312656676086299006266491928533739386866012939087699343703384131128185470033170871609532365805834468530831399307619075408436339558542096363114912149445810970351390886275537731758812820922204048299477573578607557602891980318631462389091000595121583781356405529737748684182167191484347968210987195317782029080005781358190361765555459232598923019783956555474255324801774954863568872103162484482506309808198212208718275708609564496613834692706498442645522199726712348126306230047464185656592606427131999712645206697237368553120938960069323547499247559012231571561466757951380198278099893282865065873759981174468801561023578644833441683963528178715304128259243280469213616097085834099023141298841463065186465859804377214151697529777776902243078149075640366654875433364478229127491986541338507774463951455379653900918454246296924743384366526189402474475515323325326005672056277740050113988994589524098222197662615974681009224412205921563725298126670302927371824844987297684377236350646909053906516328323496348448486619870164337885038914997929015554256801339399014107305952927785550408327870287588970207072367465778890867328610754341712585874149324874884165306617589814922543666143001075172544557099630020431385329103121894188172198913492021789700741515021184388230057844468362140863216391521855826253889684988569095783366539381963082560265558290656468136215898849190802776779528802010869158754209768354905303946771869745613252801911765406671857852196558612003947871939631678421701526169403275147489652255433197906585200726894191058991190788601281123206329991388337890145969479394134665730780123910812444874355021145226593733612868314603422461807387904630725054566418815130695742736779627243097048376988680561287056747512242280206686958700691415597948788257792260265537295038265877515022400090640371740808018182312839943012707762111073344158545239049536945610335423094569313989184860491573934356867544737334720714799048602568383560305015856827782485100860140077688559836684361367809598082245258154650727736419808175698554057928603092102427177476998179480121066105755423247774678415166725254103855211328064439353640320015396624862117420356450846649134642111809238448754314904997780592845306149258721624041250473296171538850776170864597598518386515904125052515077767497632390522457213942611036531871376639594279754125852291365591550855456928284577074415020577511204955238385176684980817433156388966725952734008793770953701944223729820363383548892304795000436152560329234550283493789194719598218648219398883441768759489550894563032593901013027355435972592625911574760591015671701158471148170521955145743318552545829719331625885147112091644692623879208814331668675532167775580982149319178808287989558939193177460861271541065328386612091540825886095625030865061911824794739160833287624376235148199345509686372818175243164728932612763105261752656582938572330533682848845430175788442622857187184905788578606497796044923869580310799125295060586767180321400091412813095563669902806508250480407220111444693502928039184264874966220211110651687413091121718157595289848717340677309226317594010320182288791526152497957875653226732282337484604618840111390737703628891414520783699073431854290052104923985823658723150707049738977331316488810334491098117826108860460837200762368968626958212422201136161077729130575744984471560998883945725118486100201899263697814732696453090376650935163953330444286198539383291308429190455496462612353107050257435510901827821294088477219026108037835546091892387527147555847900380548339500315556813220817043208581504224937476714725519635900565195967430542187833988111032306633257828372050343863567575112553571098826846747968382187515650490360086837472185168265458058234831331061440687538711455820563857792100433334188976909418491943531878923816934455535280824738116818922655124905095285698588561969486089600677133927297842591886756932103938201032832331408745854698435702394025672609634137010581910047577727887057411832855955633707154496145877139844021781746332744456807875308541337265920353761191497599568483504511458579371888105267665748664066467826744302000618239575162704021836176067027106948234030503966699273812459768071820039154649799318483299057483821014492153198924194973046813199866597907071144971432938982198940273082502493442158552470251518360810258179895733617434470895196419615977241517367737806488628839335888125691591313133540992482318359682557795940888769605123518522640049089723112367882666786286810138607987171225550455121446921023966667604710076011640169873165086556647045791554420242110910776560626476294964043837156728875301139068093197440765212810595118548587051922108147678293994391518680627574353537135181664401119487696807188487382798141911065151494401226472891774470664877010842096851327821351492637278844579004659005212208206221321899635685315656911087871323252165589566574692900191347342428248880372888167887081365328950013075306160555070403464373384363192511272901073924419833334475015465511083033096424767918312669588554808802071657609880941141203736161714409102440274168272723241489739817216371289149664642508715562144741237408130859109895911664351601811232457508042660675239113672037924597333012541675645401850169355620700470178371849349150091023852874688407212541147784461741749521098605420052176966812724094783585678585701402970607597424822398617443936164118674748589983475572158071926858559222862139095359576880903228313703056104908692604343708327319374614546890643748568128360131132404008499861604343591534552619231678033771859458831130646285734129362851315141973242285846962966462203499618801535353002393128609710961518667379712323759824877751718926918082752888746628710338527790187052516600748069547658475278725116201444006879927838721921859209310342640250900779699677674122813390555922602421532491121380132398076607844599936067530033095440530567269772347522015703904676404933214175517871779863218646917855736136588948859946842006817462264279280371242399847036461165487968736404392859635658613685586656544179441515102991078718571143486428960374916601993860715755298635907993859129997758789099223088004924543570862558384449513020304753915066131562903196220531642971819321258605094332023091623805430416306583407251281508554295375632944745960602864386311549389634362297354733995456894246232703184502931611365336523548720382099658086636793242251134216005969892525765152547131554559301607114679128697695316964524547716282734649950410622253502331379217307877497140325580884132071337701672888712809806497070690006130365720052773710980318448549093574669716947562631189920583733304613711959406054338907107624313477458158622307421344441729519088295184674986782674268575383603166415554854910648926492123581071114453914205110952666666014097995822666378980855790464479660914823071954781634516789612115875060475666861318285452713255233967064326361805472308275147159391147466825144837092786426828567283894632166121140796271204378069195615176017379437791121977151530845249936221837637842236863014662650500339224032956578355613962635487911574317123708394597880085381267316573108640516002233622187519827126533686434306947200357632289229832408665311931479991387479889041166830638711769209531478337855534610928575849595445187552149729181320930156210140852543367029608382322645091555891036983389377967349369197464887357912298868787843306667802040209060573147989576551441173679826679389662795270925027996938508448570390584504772092601220284557999912342475727910156802438270436338736875392527755774902907668184120281981160984358088837441029907819625716239285965738266629452732297432024355068067746015436922394044959957191518316133480754993997518744390100713984583124653490305586694367440868811718503005756244827999802827661288802529802357754610432060096902222976251652988749145935533141067271084874519541337832321961424126766821337890683614297880464672860036333696315594316152891749712316138711389489234003416685763442894622002213160595897878195403073361220945704188702029102775589625545758664662643709845589978862404138609335241795975691678187605473537205838379367085742205355024958727112441217643501624399453736795732259001650681054361034511790677573354989377662859689801996415672529706707673560548061581309033290993047695287508903969226243629389982470997305811443968275079723495674718074234331493506949735703639532332762185900405551818132559051724929718381107739884326835551346586423051817175712557919160808385154276429153697852854433371208606838675787795220678187941965358390598966700658527451956265334345032815500842806038097178647609672476554018168377531172992239883779772526989753870561030572096501814237513740582684876469651019864542627005970261618122413424209752901487784883780840909848590959461004734009824303728714535654900557744534095852422250021126888510214405698272037264743196193544474132810153157385542710784811780868194163362255365817158542169672954640668017323828400561863540682795945645535599385075081484903283200914638784296938369154578803291157486480128839011994433675287550544476608165624237184820270450906052658582837097048499082447409341216709168327397352173263234117613327887306470843680205431652184168621490883819273697342797583149350493417726324685156387335795293793003854965721515521272122206551754912572672126212948276662236472645264879736304781716586911675470264007714951602435084592828739472814328575021833390123225721530933284612836153165492828148877372506627902941851522625281725168051383537738150918112261940491055894341731866084431496634019851624838672889393967173324156673253947340818763401990161043621805206158275813753785618379713911370775730322211204630018122904908842991319857834563839721166724566108914821476209581317195084802777054361089666766970504787399857912881654284828047226424233513637873444372434733923997881093215420269892299147327610033491040992261049756966035031139474042009176308519040721822907398389302492331245172272232025454179383892562453559879182493669979766109526638426716184255032332197733489868766856273137377802267027006515090179985343817851393679555255054282023702742559487711767993061036956938461311998527156344285063429960721992454289323104237130776712482926262757157852529205137507766831077741844603799747556595753792720279009088511026663947287980089291126571440778392856909428765099067089698847838708100732531834187481455157856937357648527241761942245809346475970547610854752343178499146562816366014399471934568508731045876885730329995970443218734073154993364630884774907288700452405974622611003609841528745775029776143802207564925392286630774970993067991335575862153827486270644529996838716015078044890776949142619382276021595039826980629420570787097429365666059191096753874108281386892682006218678750912346354637122817375015185622240508466954129464291762015464434433119572208574574932527799229562193939588932584755706942070844538313588955485507172672076582346805381913356376123976904920513688762920028227957132283650130833391085270586151266341581124667842704561402154858349502085967152202518855651761993088001175755146643390323157449297486540304024458950226776078958579645033075579051686122246389283496913778978225091303145420240956700113615031722509811692467257006491787372324334844689122108755125597002568022522132352586204919406632732629181012752210746216183008542489861607975603400399776903206513559855967642837220730636304154984089830271948556825402317958110279361994881765110525327121735588332421041922800643820165751441421010343788385214003672202682134377156522109374037193535439252252256175611691207328124157846606467410360861753649376872229046110853766248750259694326304516146493484815263247352773914556939002041685016854247685378661247429840840025807392964463398575103802933506269513030051339936765027752926340814205937506242604448668120604831649150394234740526137236061757832490444022671471530022293639809043203785264450200582680125255672722921477459477639585539766809287616276215641866250496313251335536653250094017861512057504047981448403265702875111626309305593530576290680245452678292520840698233806510545155079876173914579890656631958770685882108080114445334639146285511667311390644031955947089014098213407811310922946027026481796922894353753445870166766934240331848465125982500424748376749413158118619946652998234601398002501518650918840200008782423054951713864227342541875792631113431927261640383001201004217262657626406410217735016869596267942736816397986600949557884225960072590874427047586295453777084740239885960779370684440606810166705208607090713970060286969574399988619957783396332334536505807215217665990166017178063260047361356614030524916059855888612416864350481114685558247340865488098954728621726468865425504845612895453225148075077769642176422591586694566106377579451732733393385294676570469546169062956709967673723995527940176077722199978334064640060078111973774234913039893987209376578056701308941902172080326231951896334073769454516599880006161046820963098575104588391523732233200666971516251469914632224367092888228001500429151058620216485869416522129155971586308355077622616581630160758618605745971400455519546212305497511581560332577257364155887791718564515327412695363099786421135678994081493962572622886936966583633686332077572737074480866066656632295675235975931760435268527552470886614243266345516043977114717389770607961472726074983137983665452583810238717004930698978603745252647359212122359747065133949382147336184705167746785595911910264376749257671740900204978414411118163624518298848005710572790979448430324835588838814862162916125321551612018117713923433331057101240570059065631476416448873746414491693443226886266007083131373724647823585171755338042005046406892680169800236251467262578794611843710313888832529203981363337899777264650937246126241155714748188775082682892059122148114511236081530314589825552865598797287793132514413935806880968517549845112699572497721901748794333973914817232494928701012916803872449878381953314229407425090226172264557858348144619177053593620395300150040597107405871578925971128521483215212938650980167201801747643814510167104237463851396095131281881270403615894046418743901900702633069127804780296333595304968658448261847570073548258751429311734635813382305975161536199834582575515603374964731800340282947719014176602830845790950930315706576340617842078058238527435167032649418701076987411845826734747153623358689967926783663831767933530112529491913594739405372093117700361308493842064317919569914804404870208396033476630186347372801011716743881741284542282269299966631291401578292336832386169586307443478777817755229501462583256712708780475490374108013844605177496228594652517091734064886684581680851831384486716445218862329257236282764373600364555687595666684059987743186687979507232098846101631130051812739726489025057274393082098950090796320587550722189675443938093696039878990442780464117125036004723814605671695488764887264027101388928210203768028654639272688447855656840948008789571459954744772887799013351642170393346060575096261951420439174577929647434159883479849061059393509212174441009324422383769304405914493709264946207813611703474175928661386846526177222008884717784510120662377439386998847093747958867974555588912616650922840401748659418542743994961093931661564821383952790086501607483729442549833647330671843920193943556861738105815842021495372255358200896830792720283524222560422931891960515454487175497710952758819584084765102470855553563274261164152498686174815296006811512370842579824744766939633408278069749854993514892181383406953007936880478917786873934090451127715984423471448365826086972887828513871074581974511606371214058531615213587052775730640117151804594032339748109408599055744462500440107547783208318100120332309010534055676332908839100154601571880072606233378562882325734870620618756768798253683866126604818966122065722557330028369045793379452572792313793251751743759583449465070986305682112451109570471270978197425000706934963610445824184735247802155592603351076270437754024055047442371684437036854483177594167520342517097501123344500696144394543240233126008519134561051800198341049181677447105951428908142531995880153223357791344553771865121695998562273860127019877210895855329121583295112306160277630404181446328505535987205352436848687306718641364281070360536677131185285357763661040690569214702190231127445913583575178249816762967182038166933903663454867892262740352911834647453944461276151018708785451769988137220342102568261650454464614959104906503451658332936761065505789092838644405009692331784468304163034411503214785161674470411694346128403638881724225377319264560799557064690446088048713380728533683796786237078763250883924910759046781396006673658459307120985076994028685602139126829688188313941628767122945511679624640090349090238379117838156027454616750445174765970357766123515801064723324215549450454102163717155855860807463405483351421130211470070673985423255321579301100794560857002186371462735337730651601041755137167098134199775162729300046601138628621999932654498743089057318506943134786820035549414008483855417568066653447162157743487590954083219916665547823168140996802866571485037241936077387344648476509539604335419968163975442628712413878870543246653141062612881511013256300790578181415871787330473363227481631357089828806245514199036969098231533663760739229375054165833083180938909763255891956106708602581064882999470649063488644236056152571137807323940692386882415711162386124428465305495524641896506737177946255047078224175515963945918844919706104419785350312926259477051793093680490155112709491811119993092830221627264035511876577142634898275788584551052593658488282946878373881718661750253540449645512105353191368036678025910932893385960254225200821104313615712081078533796927269768517924476348028342506505024458703844665337767179871417111552723123898902671445214989009295892051678427767939446134501700987836664518620343786395480572185729351355958024297192496090909854638150086603997738683390405560285679215401453691669494002868006875636749280259334929141162795237452330160143010852520046033067112960953072033352452433168451525711879954281112509011961103937405575722457118271449383207952761405152363560003192479846359453415987011652036092907310519344554354991653898354255964478122184602619814658174059531778423073244412668433204847753472964794236661261184011819069154117351837145495382788583154493908817096844333683364431339456059012222739017638236184345181322153917303463573919137971848591434454541456976797092096477424607125220421585349231030161947031000833663636272569879881777530501922864618305147796680249208670321564558476969150094318197510606782581549020467044341041614721696577589607134250260152759023132877534377212045317010896275127716820010038176277372599074135542845725069999234587182204332584512060870420648064625979965792859194628875023303611467360456893962226961814452211290470154967756004231579919711550808001443849873466144609943465504946569172986476105009470469650865093655168635478994704421923536241120416958720537504801320999872586209975304199573324357123536012693163543873488685881664831906287128591777263564708777868771004140410919865972637987594777870989384340701845399910207547132323682686293847456364502040709457190695055474220368726885487248117885252062794636058128822768378998826201160544088723859610656481651142164317997068329474390548903716530488599266685799338809840845714075727431840274732094162383755703630871324480126437164746308640360066068026321241160232991949095642284835204603416606504673921493037024324667464173647771263611010982346297083962624870635190298040265901595872526050238023748521248069593400007647313374473151226745870752086838423217869461093163065740313553274772042634685821114805018307373085090137579579824294614335004717503668140921785620170878851439561768842304424435896566115146434719455899037632861097475380617084736543720255711723075956883311975226560541030755662983840891723053122762064467297710805523269513134579578741016836020581461322623161610347502551456589807702515211666094397612837052016013649463205620160420161244707983699746962990546834207067760273334775741828000163049043000845983068622857054392882090173826160342990927682639851034975926357374544423277297597112323504375943496776778386524277496858819663964238411019248581500012179126437243614911822701080849526924941814323253727952633656190774692813560850418847592072423034677544698644462198575130542161246658033413661875741056389521733973236953786995818087900830980972341130748836879752057908947670557344838274219022219351447095389037564549870673427737871754934260588596774456097342469352475210058492332323848338764044649346902161007650197157328496327869203787287664614550373589066370189143690292192134519550293484894048094363512896309941564749402047110257496767302087928790739115984660822906300700738038092962714454542854734125711554745979859976285223400495848587466173611326664634552268919802886464523980352247280858878463407102682582490863970232500912869080494993062797298253653263819953068892981290395659743812391808880782577459070695460129388174884659044409161021968075750113516374023162532261975840229328482753348299035075625888323998144119611447907183512213917396017598187785825621611761215883324090743127647184715298696672476951969478574450930858796361059595119874306768952315510691967256932241544045668981023260691554611157668409574235678176325581064316843817346826503865314039372647903926325421093577649880844275108225037598388552969303398729025636324949236711768252273557773395927380014020446993030628651614008481340938501611650451906892656943089622730875344444727513714749530172341009597691811915419846915044884626578462579583461876817777875953290674796703024064202007080495890238861843350165769660762925632336118151670406983256233643274903362951218590314897658125164441279293782136735035902423917007377610709518069078233219355034277506626352827095219286060786229359452918098751003974670445878089375342211207149294505116326581964358793799058594313649268825801444643574257093979056446280506835365798731571494274887239293963986189370729305011774987985119625582713113986870159596653649744950164710779925001048756277583988309698023308593974564038433694338428029358783384295422083078522725160332197081764519591102226495159681220669079368145429117667853057393533596569282060442266536970078447855529757926855428607299979231312586610957254274126669467444133512431233196997778178928789799369386187432000385533048447540986331478230801682826659884973475479972337531845677079170672793793737468774443418845143442033042140735712434366348341201048065745817798351859062473952621329099187476233862619861210276837055294802741056796915324086596058291025018921085230301507895648282403605058225818379162534102205083788655374796565626024134180771567881119432994306778739830257824118814532815136885836554842178137426120498736718437410029797638935043898630687920133937076614848610423674714355446049483468733466389112761316316009009679765653150892981993868276509069633321774186368282387717288375947501987532542196180905679507458154473259206795689354398343385533581507058866853647668313016390246442648873422384009329020318509516227034645864640410833136695634010617379256480521162753391043829000517368160768008736929533523483398635385647287904328637085585296820883341968328786170882862366816427623018097973374718404516019238731024565731006474514920120262536313481889323252701734591425239463967213328042492692499026289647740693120106750206175456603151065507686598284862402416038147047359383157378383183137875257349197345174867780962152109033900973500583153693967618929269040474889285157595062704640389240601946175818399628007335862354034357055269453378621965402192935271211930853109206484322475764144532214634896229610682806563562741576361193063853399819220237025712660253182532496782225931128552425496902460353563957267284927276976836415361341162617270726575993874702392892105937921475143099750658623534954689291240318971107991672977153426481950270853954500565755874602144158772621200651818891293697894090033520674622366578319261390790421468254096233286552063270340374711305190405477998297132189422040256370435438688404980739802492661324371926511638848481828526721878980254467502489043080629573565810040128890077029831925746560931503050227393901531906546553033317434148344001113370863462525947791675414260736271264051794703855619235809206291151389141596389886615820139969557197764752578816524454651006031357422157454884753909859669999421248227751095074810400595690885021200868606101065897461007771563711011145826260655556664792239835602846758191558708434012481409092146552757983621705102478285235820444762420916751276797573200783420102437049860098970996047281461574338547103425827769848945258193019281316613916106262114520548060943527722956951858907781714582707169331395354649215336050855086033252091514074310510979929541735824025949256200973633732309999701474453987351706636525745272268519777052422315275200559584552702504904438038075699456338369288160908979534070826399095155533444095046858542052846675539473972592495705577579564366418163747441072984816908009756528322473165544261782523855929531440952810759733505084453672956864264222442823863482552406566701966901807379139693914239341479120914367217476253856760883504323892640921758387605087201028454748853459145784883315821897846341043662266068382681467134848900428673953580962182016075411944621382105596519666757391480643286565179877926585325780093250415020059197353183196484415508238110588539582007448843052825691988921784616325401151705633855462787917837951291918301196165854393069460884045368469313978828741179003638617353353829913310628712110731898228897189850629163699561228715701745508095133633600134355352130790673594482164926619097113067299246132093746097294735690057927709681405227565201792944258258833345976639422992209430264945475494140850331628174081801077125375760936988847128109361420021775015979509155605665182983494983448868637303790361464021153130797437636315709410503436132509610819029121894607653304010069295170806123002829862875165019215848259962946761983330947264834283733288580271061001364295376792499915822439630969639397968000928580841380288785313024223072726559181615176822957980974747879119401145226968382969757028708238239010109508475004278088170139368075682512662668887824216292763059619587029039302770579287480657025142564593749037350879145531551262832898313312741381637206705059331797103423219221807171745012383546770700347112856416902804396945504814999467177824155684575379839127561358432361677935730277816169162281084786013605124608522827600982406267200539938181898195066976730304969226554840502123434982936503498211085666901783211859091613942106628814080116743554393612705279022951331202258646195515968500259602403353662418431383461963718248115715214157425505876759936457487326996738756392681088334804041817310249812464146518838766291319740160607877433080494066844662786313690704337112822929356137198058435051289032577317328773013175550061162819178254597064496341873076287708513777071175348440802693329792018576879145917236458490043980113674395798126944309121026768417138596862602153773156155712447459766832270767484340260497690878698392684145573539752799908874608054452033588708855008687862893192253185514844704844277313464342018747740557597594610312953859841708948939233903089995553266446838393246886471767458371889207053320666625824429863189749105742448174136139696432643150931242488290534300114105996769246550794731949656244749209615411569892290918112898427404878238727236973833695507828515079986735034503369754154226045361254978284772553816087426804016242424379445667146694956415232498582905861056553236614323258083059187008705903608092964280169533671242661098048491263231599570719507977121426419090357829235958915274655125681885070775260957988508297529786453371637258409498615505759565183593924033809279598393907892347230845350135280283380629846892679512178986084812655858941622056654322253259395553508153707451275005618542034265421813720222878532863112622895723855242272385263249203267152383942001779676287586201302396655210233585231300251668722041772720852894032616430815574381499599345172245160433791262498394946593350080232045240003058064538788676388938683445245886095399441678744944532097285465635810893587462175593587783683944941443996872132824109718679550463332486100592642624061202217484541559368761812373022730767180031262216469183433805391688950252686410206974077580514414944901042966819659154535860919957317375025593029170430546018883228155060472657535402600254403501788430878366517736819641386562943591133110323563266036112031782274963472664453973653124953797159782222658997222288747851458657082962569985704052152346028559344613711046573951458851027251751690473461684097374770583779260874479064410090893425536196665248016801645584642589017560490361087069073766234325399575952404118388618832585290306902145299922807249045293314734969985912293162003233483942045749147804926908203922378667565943758604478168601084183000241184989699771935971852933594703612362131537311532167009033484390108220489782462491009845713303442253236000375005942433796352675350022117129814198189291842959447066474273530717358733402068543272646583418424474887666266347762679600144667986239733091946859352215916054705922722804795673842593387989823069287848853397338142566419886837979824812713825801212636682280271236262650847083281748436319308458772401326131298318358002153004848727105302803571381565216178068228820798020857644813704857780541431136040825888983433333923804154451952876715328461943352464355481804424631936175508878210892811528006656024550876347467788785678379322937916174876863913709651643621740210073805691664644023329810013033161217540253207756630184936573109441478292410723243587951665888673452323859208087664473149009787669103216900032003832278999767569898082577791427692824816991339651426889828184357123072732001121103983745988108626583111001690169890369240455573177465389794345853942938322624977854267738039591593230830226054046437926702400635024216714024826001587467754898425075109367459682816752630231400478202352008576911512319782876294801424775416697722929830302842984506877211812841967958095514824286260721166828715657703070763084640402576482880739397253981528274564737751718661160880764620712764810085517030681500077279165075869118613091793491369099309535050872975462893688140823718334429383158717768955513213577369963434092545978584553113386381866560744806687608557161941518724668106415813141276875124009916931392987569714362801527017315275529505890641228824974682774682565540656430276131940493737484045365644197438857115524333075585050797147126775497516644579697993824217808562140600638845604171679660061515417548268404129066166640592038373095532292109487550318955476223437639852958156111198741162183519580945799394690808195087627032864119303672878910257307213309296497724419958704791177479368493224201738366461117211733155159403285425835702080952474115403513009277485920141194691962347839352700929306497328619075964098208618392998163891203824068814776897443517387099054052434475245359471162612849322363145204164928165646274156133379339788715466001946483251861492905102986551393277646145035667080225850114679654030466929070248429396299507591174176782349102085926578722607210015549529364918784781775521137341890286844296659166178340096030339278573605953520190364395848473354625901425177301141296943310487130532062814690564705682349577900919080125790913758033826958381501027681476263684239549920397057454353524696726409447832700744357057712543234885665827151582811723125073664623495190057654825916193773943379220596170316866847883705356790784925890751573619119219743880359538488436297253030587596955032285887704064188007097880714814453044240003054532413867516565710411077397288760268457261365671994562496838095447933445184859165335093318533768760197686318190633871573263369195707381026684304074651793134472670598652874961543038462233868199661344565736793047964476031925478091200727288797103536334519424232699062035215213108106325031274921710522124303401412777836340092035332972165766759505902890779452484977701879424854536496095895035897672024225055377909131753873546547898968648194298809878848312319319369084638941950073763809577138238618940677420412734772651865096859640003087240416850396523949328284227291879165897199607162473130031092579340087482958164071327837784342119790382620288858208006468482831403525818031307265225604519306208867740800297652177060888853590449087406166109635442326025217816343667823615958204153450369814310301236519633941876399801375852071385147453348057473577951620958086185815934252439226039438056918571376820135352345275641824826788058763905309530103992359119811210816383012329448696355987130810648365025039096805460169075856928769415656382971237664146630055530429750980569437138777455438957297590503344494662177997106878694285102234476958040255106277099570268486390134294505051397620207100823768873191556046106179987422021559567273294967495120291092180685412085759060755475675143036806808458849243181996753821804296109169064099595059727873496757736553708373459318416781724635694989142479222797327151538039755468513671427115232718826140205303973567809098441900046216420536472472313406302675459691279866624546581529675101120078079270783483131045516419138174935209662129089921915633996531600720488940278677966158531904328327196524160678031690791680711978369044010182330226022244421572397825342478924478153000390299958455504669322951242631152477334250577873382718794216908759554973518653271371118823601416149513233700461857163254248919709684405747737593169779491471752425928826104032411890926689019241265871605080039208424470081704524705186912991927702279335841497469482771766617015560147379564698565395831679598875685958683373262986898701017974190117286582289604786916050690155046246208368886771843533454150377616800408798429664751979028631378955640465586156359265725477322826638937859639093603257961421124115941111293455273617100310795331186555542904136948246033293627041191912689529394689854990069307885866049918945371153917489222656029796392674232902257255976673588560995840542325945083140903869599441307934255480136342406491376865569441020314967912994792525915050021790016000418670157485209023259684231979212566526162446287543361247081398331816889292652753743026384566990291175885853343309439502894929579673930307618321860359447928694950659423114289349860573607914021349803826116487109916586199802461682997992724842608247035385556208788115021270567441792239087810002415866712584963164099767889112351583663816316958454952948158079922630919257139762203472408277333087997917518402167193941510572868432261174996774875757060649571543534431074443481105711939034644471557863230534854097942858692541615962772665603201583991666362978322857484859912368531303084040567158142925589298831472674033890916072616805438207582213047077402916528560855779074545749872493758196284671636366322077897766907627214549555657897419100115846619818612366919347767844282935089763628737228946227143534108700474733990283157488908525150777934776682342364098143904127349322947123440381282054932709788355185351120811331881526169361139455761201023569078322633329909705041079381581909634623698231959324598887668812795686880850028043422240408294778956646995115099834060953310079574073451037477213243689163176581150235412250112542060955756264111647187403629438091449466831950704527899041260286070362901180692955792174768012887039612995658795480666640316439499459690744489736151405238450055498985056425205311738534819946595820245880625347022556373485343722659139947050403565375412937872029376747102956424653051154181897425025533393364490207651578788635707931193091193034304388507589424967488091567875309283144087251192643206019317313755305498887072861728847750502183976001139172355287113165070155800530853490062276317661063671156494434815037917045896953625146777752541242438744765221481185020535950381151833217928843478394410213140905403188199912014603999126710367026213347686982189292084744727575334041049766363645735049923286273716997914717472013743620661554346125689214967871686585959516032031423723147250330653632413358022103539998913470164517641430282788393270979771556403410512023781241274643953827890140345125424594964633880887067440138815071209586459524829933208972430411285078176359556340339967887443968008521952642447096662013696599808304224380319561281462417937506742226937158591740893837344211431259778530473799988839720312259874722797380191727634699914812243992350105755994204298031764476744304370445707494459585490246810180906514506715862630393216604328714579404088050736442396641667353278588704503039310249409807663878459378944008889229522497536472360862516709104696168297974923216644740603049543463909104589016141235674549205557594881784114140525034761940071434466719097474238664560534205221192812052889297598111077039340977360990092371140014122663923166696082427555283165963206483171523877595698785885458301441012380959250951767114070898979278799403381071756056843886156112191481926492769954086466392441326617439277746731617823257047234717854086924015122830228799822758680305792933928439623296007294361770764560722838922929691639284668794753274864934100937928235265862940170257458567604144829758466236973862974642996234725940907960561917403187947609978908868953869873416887848430043413101070575180981797934453246337950689756732869555119993949755213077232418823483732816134967130097746835847973851111689246188500828293563399553702439520787360456176881914784410435061546238862898436604830352269802984234457564058961761808481140981959538926711475622547571395059840498788868660597073266638926622238782576292134584732798030493996573739398487261879407340200443827115718865881107624554259183644910219102511342784067649373801420161467748113956767940851655559488068994058763844263813247481123585911763058484527193115137866576254302158260197038702363712193046523122632701601285136939449221268841425960557507955905666861836745459628748386688585250574013301939330024703132023613144098357061971308686508002494998569354456824360193183722448030322245901865391429051387818467145326846627141443055684229977626690914946950597876217991660307254695539739760884771424698446782644735029120537253389985212929206571111921161280809542971114793262774244229676606972268666975890348548334548489601991061111553907617986788000120875008861582869582493470562707231585257521733774077753306512444200837210694141478446399483636653634359215189366610446631660724430434011679022640360732637416346061660246296655544594677897503505224558662670646817203168975026801063227479945607868671305872972178442653234787061978050619917356705157454526848256653979930407290664938287009027277874736013168262311110213553664506211448860983906251424585709494286586548491185830396939118513638363227721103273526886118389769775729672769846533235465387844006081433820977606528121459320611025200443877088658089475940941490932836056757341116780652600018579495322260351688440371190048567797921908536934580635470941123438563971473230645186737182428074610961105869950752573937322420967163432924532503754451004797445373374923932251799430215727843538352352126998373321958303182601040865443490635040748356820891063710499646153025418828136077709574944563286659150595000876003180098501903715059058042467960981958456880050450462217673244033607555296900535915242713224379129221053530838282289734189044491735999297929822061821495495471720904011847800414673678662926398552757626254412824123968341539515082464188219854582993413492784030836397786685565712181098465534259670514424511198090416496176742855735649098958798045325972294314700007837278327212806600925498256323168313049393202011635800204552428706948617848034651915769901838142017496861896953656921501582472552796643605131526486612539986447914392763075888006855359409642749199699731553022049112992786123420450536329211260604776964324546736158010409730707443605635419658806992459812306433679706618977101068159859834710074309772060634796360613863273592847386422120824283453871153246022302461910062051319531199141480353954153612895340979724003095401225105960416881098297552957669216457437646580447991272146744408393927044010682503294158266732542112686976104910344955937546307557002425476734872440515893625143444547785819443914221234083716813928098276462912970573227948095061641768832409123376366789758100692530562283465466992477662114531659605650979638689741772751878026084317905010220072921882470069042965059751238758643251822508822376331302244558953335844610009496508890892555952323887548033236524846634759585171077643712282880111685888688521297550177926112784099247556413441742186431382119187753852109405688070899536715031603478595104129524419743680159868682502951073534458922032020564380923969221045962858970483477190319120137977801612572619594358779026323564013596004941945127457010496908298648951678292586980547977530894784979644964414235826687305289600467365534035046995938602297583050103415953484298017648939404880808134736503148776039956663888991108848976225655211621748367441039272927662108400268283088894477672125020165107454788627756688111766004350512938979112981244490773381142220600209094474074614212865973540669345344231433400468702274957572436399241971251687699092654176044024725172417165032955785108623151975298609798447977752540684711409503759805120188022905126228533012751136823032069887665119818640497915349881592426314888149959459610685957667174906462626762436493146257994110829062393651914940151155016420307261859983917185791503025216258410145703450105899735830741796795718231200905133003864358106755094911355736996257502507236812102592903728765989089689724393525411102647676923265449037977343135559900798488476236655369944506740593648463391357292293263094098814862472058476618587859284997245483199779340131307157139227237538753559833255790587175393708464876892976748658603413206915747354842317873879553341648257727985217536438361411439123728173287448080709303997107327609179694967773824079206697999673857569616326473043262711773402318547917307013434220076913909054731221367585836121058904825892875993569933035741194023306612964569848934112328709401984053718197075995212553778290534764950053845820471076683320374156981465999654501028931693595357334533122257695210646193932258945104354732567874136243278626450064611107774624069977475975455417119747649480559689171176663088487243832664884940502082470855765786672135176861681917863396899760799519081295340670181076839322087165403816978453498061031296850259314870163544542242776055836073418684177535427202385502714770414737987706094863227016547659990769509400725617136649067262877494562308944416828591030507084297720594604419607667786281366608479160257744656330910793313656114414028246368728966872978101117338461727150134179751177664823326974408043318891643284463797359298261335686697591128723901269410274236226237358984896382542943812028739243061498555783760051650632523779639623364236636702054265117913270550892359571701865042163409677351470700764670877958323766339925862172312881945852491662799366427911421555682346475958606955372773259656227852217123904483944229644469469901154317500867757275424419603845624027576882113679335855766871392881967958747481754125224450729171736701382327331787048778309551363824018410065581998387930653109530641383325496790343966525562044101839373251849453668577789764848171896143904668075789073467639551873978050492090392520921340596577754425776719014022166940238236201210213268765085392368231174186162571976344812007511817026703849424151501859231982642091797071208756129438612077067541538742017126321498715303231788446870145206874919865458661051331369731489745453513597389216226496271609714653014630179587155760234487082346848992298287460941810019149474594253982702178424527145146570657451812773048971730419616814263829651437495036545730257852011159650583193751028859954793076618416563376535334963806608846063354369043524379167365399749460936857606501796782738843062416347325714386140723601407117031247378969849515451480151382219760597489510192838842081566221188115907042583156182369384077811063758632413489368622162078731197433982592992137669589514675321593267435996436015227650992589583712526449309322837933520246288825544585398798222281902398054026308535555421707888188712379540417292621878732481242731463620691160160940781637442246077985714549658841820916380582234485520344947883005863135670569688339138168648325239122675467800621157453144665608522249642186268821380662154240269547988499660444146348232773210114890117757991442015661878702360270257092913743736782619031034357370806536533824587083502880710027853323419643889956105989750656288275715719231302009803643441704320410032026319548653340601712853684865360125194513521906472159894470528750116717526661233554013959112442260111474511130398024849316814481673721830173255035491532596425257014838046621494156607052989360120644002939420672144152255423177375774015291793076695728032835572915306077112196449709490620747707796698315963562444862815619610040112617370186599294767922307592307918487452228253111786493554607575799214965927566399741739059003494803590268056255805934886994318709404786795714570640324059438560747503413427084563141021663259249368841441408569511075192933086934420918070245105304788361667709119493095442521566161123226348719813843180153632501035223987117864731944288997679806466668420613578098752612107783598444684532549769460965006521997088339310342720253081077649375712517662074334355929138635050400345284694844128134515786468568521972034272224272191521426119754494010870706786783881690216038125923857755241790886498320058241732004947505848740689550380137423277863880263906393687860573184160617932206809052256397112531711950029054766384561620943785869577958171761760362421991635964619364385875235733475272038379382497323583680234526366700942691523510247280613955341971075398243431976759543271931314483716618676584813864943598594122306552859874927209389018332675221966912484438789096750409897173910558171908796648328850736028606144751252389542936768845146629669924721264251660974429495621894851924354822304471014097947255919930435819850930981949685701769497626796920029615510432833418511697788602928468206617449325307925191778570463386728440915804627004723772417716504888779539701288650941392606745741394978857182033241387115706145818612653420421582756730533458350985545506381637577537659681123306174548701033250739199871058692623491866178053531333492287742441290472636956430306336207717414531153884631276095727808103082548719480944634950538676795032476071196589214784755466345838982852124543756069440094873403362219183170370834953815230058646671292094141269483608794416926410615812381759383189153740952617070347126402149416801922706564038568540322147403869515429355480729517751743261136261674622790048452925802058336053351369786042296704846524628554105379913533791363249623475965042402831214729615365939656424127832459762866941850879170086759443952842768045288567507146144670572344955355786334429896517089930166506493639640075995325222281672251833274065624031787066004963607109513475610886527037180207613651890277480478623965483949838154953055006124201599025688708335111410571872070881479807217840989024274626999898270416808643855224299345739329521555103711405940705564342764526461072272518134026054062103425206299429306794007603170891355967266456406972664154498826231258536636580797622872721647591747731708958488590807909668647142091035207946589893433874075759094920671078612889956717485899666402736830744320187130850262307244083839429355080600094739811979464239662814271808297883688962331207411104119285016075453430606705231553643799702172575852167572616040207563969649559922437016707267302762118133795320558869618608896283969486438442432803530729830640328393272341720777773408314178608474551745178837816588621242693301843248864050304762066456602969154452479588514138556803606393900396933794528899093774028742578120167585374356182748177018316693655408434270479970263166769863966868497796259582211960754845206899339044606068475816223783371822684064112504010069419712617318243250818043969391191268141237668319569788587624373520440157387265748371328090328541606087381963705050116533239304479227886876914791860253574745423002588233680271906875179842437897482092809386480385700523751611631673374009228788098497182458265820934377449544751797969828154597857094703940519413708739103622120078678914161913108186916596571628235254831338084479097259510121058971245963513409761727086563767703956385044137883542330001891794254499151690342542198254527415575155342755207179532632734620684029910281552131395851540070999137235848451013829996942367949445956541429639819255561851808395937536634291885749020392674798026417710259466897862073202675500155490297151533999630270744738637267389922506816327963166338930209736497846862080392098200900741653691246145622137241303354253620550425842546273894806582231431069800747478157468581909144553808392736936432599757313859292345925656476982547315841329172607027515172747566319065303652032848689682158184420717883430237448473221364861063565111523344494705169912062927799424993498236410965087448981493922902814557738039722656604799202585745928657635918036975792108221385467431244261285459526749592168188426359847799184954838530803784360624005245729225801341616861864030788692194592581646518970580183779961153949399281571787748599027676064957991371797709777687736871709437705418245547636129338596667453675654600940605373772339577401148496411147309661382657340508908494924002357853916646552941626427215523022225026558165006645181567257414561523901027282430114210735133149732919645507022375750253364525589677734760794050600437673698932010585297265844543080051749734446808267505746206579882912791409512993909017163286004507957238954528433139718977384848739761578593792858940713530009289576473341143006232962191242087664177564262902236675621886065087808494635437036481426627178418994605503390218578971889597952841666863287140569852714300751856047572914776665702068522548525789436198407816255671888820339882963024054032804729508635009595010246171592614638198037315952006815893308479440595645858698491191301071922406638439550732507353057764649131909573407395960237073983378607048331312518683630559234282393510961812919250221867245918221741062955133361289625354096702601554696551448875180007452190685051199248703682939739865366962966198583544733058063915903975532019673705000561105142052525088191502461191457333903203482819806170499598150801602331950106214622183478684587481935394692466087615887306284262249398855410824972854734733444057497456702484485095687348074773704068964622030642059746467615663121439318049079166371793775980687078068271284119240504141477376542240274687539882349233975567427653269549286878588451792556408152423483462338328648040399222304458324196025694478390105380303237902457712419144020051635456759138151105899054024625284659697716674806861406332296068804808219208540629446543645675519944150017456591459032835605691488145866066775197957648341252562747198047693929839816914530507104651014886637002585239801173969058468875410449867138018443481312716583920962592131356866922703588275337798431817139146293535824121383577937425150757752697291909934014739080464341745824484280159904990980023838457967701417730553756733467881198969249625452895053879072163221848062731130565165025698510923107211262065569852475369603568688411669782811514990499336933188973181168394217572942491531335088649158382212710757643710775636027371746621946823224745389304299715973286029172774597264537645200344006073670508558355855518593729551285957577470515940249396698233198852963719357817250779274198779546435500475713827285593124392540917636831364185514029374332804391161840902984792844009761635934610862821038459627380485117595122402300432150811236579261897113387084828964811378479065150636421404935612160254162114747748371186571067108787873176000887349802240280398221635013476194549906585890055630189650354807399385412116212791203009801624587467961074190038507595293810278130584493220583258950275373761070679771423935718670508993055733263038187314761895014776651695759617765017152242597692042338243320824198881914774391252823116341350173750925737427544734174520300027719263695236310146760633215889238434415658716407818433448376640821800548095913240370434871903284585964089349130099068936793974329319549697715963993808038378394402973182015588281430762936136476254003089413231353162584802913886679079680931166734589081713370323466907941191973266466254787412815176560413471403513694117985073207549870365211042532488994290168291287927840250297160049017853137258217557989092671856904915568297511262077612696085567243809368656130955773089423889018671641340905874814597853415881124545970993525375143033416345432579478863716410208051116821395141103824681225462415075862974192282499698485574136391977175304951401995037998869956846636448409434781772286560860466231754840987632406745249809593405791599663512619516281098264591136573762379962803146482522560411578700468010339666756366568282215519055248387440017004719105726254285636491106228731104200989569321190834638277966122978937294889671350424451078630495501745291806444281713770533823984778198511231957030026517834781106613103789180566733408188573613808605362608147250036045493133521527840001108371186803978309213137070512106119407242941115074771578959398062397213429165146521201999970278098809943364102642524268816708276811361103891696398415593467430235289765245832168160338105339653200273273539105192633055376495042963154579524063797854527240814045693350815439577758230119601558093997903692189340805386252511141748217499781182687406528544344145283549979165491622931636448990633651696177575551579247793811529784361755120857600381478194312594149788339034273428071347654420823258410582432254831579429496831026558142989295777656534166700406676974601647513885327921935385642658502046155785478281749519278989445579544045678490321828018018315448626924945864245928438781777384406447315787864407874345275209805166268856417912773467188856051393387689810551319931059716207429957309910162861529266369640595683161381247737782821589716987618151661601642751456736350532140956219278490715177720875369049810084410797805934463304715943258205322790143145376462564271113209517623026786057118383329143990515774660198094284613251245041272103864889669633586509619995331603097923486198582786198443975274647024289816120981061526699980743760345533544585588330652757032240562506935918592289425772527590618841167579986826074493221985459750215491051915047302995979732436342642707086888145365548047616426891156328302667019938718376509287721801166567572236663576829540821416356130342249866859514833923262493907785835059737733076107102722633405965294649486935105899862655949400760631520401213048767934402644092388812484191081736239851369515585156350928124232074713852287288907402231502349768618644893549508224390300387782052841025228456645103054625339421723041424540228822863433203580167083693088348260281075013680604080963086824956284759765339360050600649942942430070703551215601108800609276983882009005770312042987314213447843352729101481636417864785791520230634420366035456698123383534792170977549666581503158094410826866532616108696303773794994913769108488771323611691402320423299140829931911174108634016970967355956286673320423883995107795420189486982738401177456640042034627271083478436010465909792140119300031872473254873341277732631363738618567193003602867906225512445538591629479062604793087797052661906813926027881986940418777229175819724068722480325935868603308661410238236017979545873124945020011839635586283600331450717105748148338245625233352048731761387207539504544818058436071547336904634166743473804595573229274090820171095487591272992987805540206607839283353561077734942389885988518290767726390959290901904230195697514547216983491294725222287692362301748273125661801197419898643565513122742578318093476789029337632964685695486379491093838804522315334804309453399285350879502566062547759152468116593236112365127005387290702943855637499884979162019515044558744796242075676118779249236779323244901471669360959311981714080609982081160469689187440108353796782779079490993422536837153444758170394050478573072310107386765126223653727770525808447925672378788761859186912544390930200128151325878675160849265348913653036245620547672097582971888330125705992776619544328567084452995541538851211390180522636831538190761401880939477295437553925188467154357477906303624025949707311978106815558856443694239087659976001495487942354278593602296279821224698332992247111166409362863431416128083985607633809892713337757267895497375811608236076842246170587347778160230373752435529020993174672015812809470802885634528685454753199171254835604181265868556296957777056160694704742159281403764091406745510538027129059838285510190307282974327631217454453401393169099558494505929105588843743285511992197541723795724490844351855418680270580408948236419273144935964220006192424209227459617299086698908443582119318768137502046682396957421167138369045213895272799057059381872818813579964781975026910231244421196774007316658856627478392508193249224051608758643304723461407182295750016323753992921706582137065079125043077649381663696427893529322744976983700944487614639610844590879427573917045090539311209252385065485009539802349668269766379379469744734603632789147111249382481495007493099127146302765434258190806080064109735412177319261371690242988643722979891269619978177158620586617547546538322050410370821841532966564331614430368175270779189119550677427249026837643935500978950724952477485900994692960568448860382964822274632901963662675166563937164758298330695011707779007202992205020696789309013359313965202717420722677296736876803579689341877326379117993279333202130877503698586097884214246014188396751068373318383537461130919477353140577825684047819084739953614694073442256956686568257258546432054775413448064777545563053886862483207405000236052109552035388739030746390023927698835380528102353415784021432925371855823170847840461625118637439462601612556726790155725279289191262861462052683398137818783070621424470435514894773271023867470580824019241980380453745249115662111713376977558083831744237984971883435453680679231352334236530999212225091643276327125661490674601849363708915339976842932667983912203545973091930709073767417685096819415666705445799505106343021882098936697149802083382724076431166967711640545615974593340991653906507214490135121411548523710215751427396018300044297533125892714765412849908123080872746003569954416482597768805129039751649881475328613858804041327760530976970106589598333111661103329773022880955274310084493163870740126365366649901041030522630852539622216310716845943049483573936266944275579922868397271128263439935107085120383106507211429944606253432107011171630987311519451673198862123305112326879689682998265623544754288041892603205056688412669825824643230461297768378849698171903850544616584231342790340743454655125959745984326259333413699551440144706576009922006625839847826650854712736496548241744160408609232789960746231233910625909516558432870120263370973707557458086357178020203484120096331130027981316903921238497889119865032158977301803495762027689719958491921824345097293828224141101072851827937317036049686499515823269669977471769807815467637444354627955344747443949402546471528147008984608514947681888691347364976370159725694274934432200124055407229571295237103383549331829797429079032989965470948872287981507085246098612921889123014712046523856257200541981827146630229507343636688480985158524994246062885702445948970568664428785329217974640304038835114965978645087550499841896972480057234688828240486729804749421577510676181171298606340497551114013727202333094801164094636176376782814287905486680478362738546206684998411859383648215052365008233756853641150277740141698142289765620884885271570645684504318149103438971581273577118925602506460663358197740041387740350069455780062539031117579496495835705825705101279305263786519834610228890112694214422618754047441934307277538873142804125530852208771656612068862713824793590921733385959507297224050355677564300364881988172411905780230103884752861564917630515996997995495596364959176493513668131862255893656605990246835796023791640927496287426131022288828310948124765789982464810653406343188162468522451998064300761521569141477815083229521201777079120907714915058041680969157089360634383410773273841289660752601083965086793752365230114088662084457395597010491510726825641441177358922081170662785371417001277282247141628426279720289975748115100923380405242128318911135589049423479539160323337294975879571566067400961624303698172023804501498633187855331391453638292458321028283478602802263708158617926832973023842859488605012004789788509687871852981330363911888998084464718355750756938183199260962899316812576568041341469526761456047259768623414803509909727394484458936927728426936369065443973237730422907945667189514325439110396952910557424369917091791036134972403626586274064119344999921053220840425219456398541437560464840937871934633846798379127047335854400909348034209430244031387871567053676873437979273544571446912113254375945228874397531904780172474556459432843553077960692944166847693078130211668851285443198758771334048926724130578474583033924581727813913463833802829223918955138483573229055601469564148749701000015166708245983913027156125109554249344469527303008913488767928218097475165806787476490197923228529636942371939731330499761203931078886649670142229418644346123129327575210091388155548733747317274538507015799984039908903005435717077927517294227158582339377420713613213613473640369155228847576316558763806512402006472908051262317294759345010852851550652026116516744832287504434186678983281369756722155524745651470826146080301702303097232011727867736552118858448101159160247927232352793802805590270615418807877264292346943044631276181390370116965074955601703080016626610091081122599015719448956598499046975351409396732187375632048858337261323038529001842834583396163567438079473715211613071732143991939284579287175461094568809748634136766427683343824840115847305365252415677042984369802218380314538060943270515063813497335408086774654997741528432936046322876670458835804955661969209845167037904690497740834127451198685957599035395937512302307448187189716997518284436839945812190363381441162721231211807259477508673986661736054542211137292089269518815797653679119846786908799405959030693653661283233788580257944015815983473738865146349600646144475299675006076638256981925130988620819905670541821685519052322385175152721603301943100931431038729344276864809000894824159922834138923759049214043812212252951280975347649387623984417484280044329345054011913875607198646938419066103389637258309713939703284936004293448744450572992051413529730396314369024526234381816856892346233679540165888987053687897545221471989195363836854727038664379262354586453716341945534111715862612175695152972802326447076091598228586973895766798905654957988811507006249543527411974560227922404653027542415352537770189149170091070938539809641163615461807196749431998854581310294426638759123891122843532773882602737005520220121103763312592093429001617670545812041425646411118317134167865184084126740233211712639399331634010045216809316856547881391969328855035646601587634806106403815402079685536942158528317005983901698450850592753801906624289898144743452022322774540940273853345141166505515833420976835221287420209543780827727066624226541257736363996249946607038577361005923146738050678242899803748366975931335428418159253601570223158264460603404560620079685598278277798716468066688386196376011805972661604412149408375912053104107362020835724958403532838946104070778859744965525758270813962122925125523945960241668656676525111991025358351520642636577772525324766998960409201893280545983592077380642592973927143166827222121889660613881126820379298162953476183925732798956126081585686657412293502455890566448080220789407520588759903839840279204721777002717550508330648840441162895756623804647001761528686152931566137960624153392149573556079755181741682632904801374479825967298051391054940270670378087709326112250670219221052908150986945738418447803407737113611290067626569930164015400147523426235817985438495487458607685412795707310045585992814973550028001362934147209269029221028429193944300286374176764724742151153630143641220048423437081556074857989983113516139122124795835362566532162503213216251838105566503781510658558922888881370605950651571827421410259973785409791669545230944332670814954698865297174941982784042106606958070076437640667139154071179924225001238426858769169806783858730751462520340625666274524813376111740155498153180024518620116193405064964333111350028395093292555399349189244371721939000073860749855989188861680328303909184251321377194508518122425932326773309031158707545148605072542592774330236146001232278009817849807015964465060018240202894884864117346225920238546185892491178617565659730471000192442145166443370005199535184014943191174736903309334014291459192155322824372097355564889287679989924812784772939014314382218697558896745563948618932268225789206394230011758532491262780761551439671491859395393311767861215448569283493265227159580624839882903595803051383630518193598122164841932128759134469723775364877270588215670333595069146154133012559951772808587028013986786732507550942795385619133536284988481040692824848435580405995538293348940728633039301000334316986653449603479362357594898905214423357089094500089612203690141117587756572339508526296635859308888047274878825163550370736089761496777145644091765408201356346141131776435552378464821070577556390019561601176494675235788079912419409553546926259014831586693957896568193662892748593675408443266540212458354740671043261763295524001544175138888107725162838276078843954304722139843637960955911285888780944313921077755339577228476053099889732195778012359445624130930885707245299059949815512088449874218917584492386558733921882012153834616400449295532010001616535905035348326412020482473654139264358853058316493696604171930593175241331873510572441730319125099320867325064980990042367591698449849735266078153071735000879435722209403165135177164326258008977650871821182612786673149802301775695941935580770370812749272850659450495565400430541400209599873280140958384377056205269403136709661568305708612035781225301667727856177315325191652817092452814799171042973262665828269036907733542996775494088391915234223276402093653502505618735127208018718836338033516477426928367711964226370495020169916629700181107058684575755540186458940514338196828750868880314132637108165550191293548957004248716856341638077078959252629057516190363937792755580659866376195452954474667570777859339043978792649803617573324919481337436452846920648702691691150992076258830213007594698936652904181043312815965612931292972344797111951325852368918492381115440024727555553298763032804883530400511884496437581460599059120421507769352898028216444486764174018254167760041686211029786415501228086285157809924962359976246003810407793298853336212528351786716063742739224228212560306808349793576604567708006946776839991028989036566028866417364487346942977550357738174437238581182187565583648677672739355989799316358428919384676768435005444307612179226087652127462593953624867679904616817795137063730270930080077913405374237115433264627885098921465682617881168713564207555443698923481241311394964567255121182579241091485317462862612149562579435095698314967867987551768525193657168362342703680951808317270259167478588314684927269702642136435477119938849806563827138756761373598532708651368700605549013563391329726601432236497859133255635725246587850371081637868780157321575378893963202988081360768925352490203746697253590890135330402031784059473461354793813324940933228588463728354422080186583926952165682699152087304204837743794595784079455438164887674132201141023804749688160670379129999794622281930816150563944470825241041421187250998770857662875247223980878566565287457724671138615894236734664106635413482065059550743189903247077869677740600515795898017211172041186729542272886728940471460644707123173600901702746937501101134800722578955764333370130252051363054006888382181700195667315658467474018578520974234745101185795696799902944442558473052682748581213115138663831725759728266950818453403383440350802488722420897841581087665408583442243133510824502864979783537824975199079404349981049128185265975597292773817240858912307772825064470471870656245979081160056408750676184556650553966400912016332269366385799588349250606020289366416532776248067100061475362639240062301822870830023036862174384139415916671755170602228061346546125434774768606679072705264454850990230855803213547283149709451445406613268062430395185906583649964361009482746297355967625356732825140399523507988040312448224009091443339652471442231930301168014846660472839375573445618680824596111920290813383371207559995293280287116721077538354085723558541148224319240964150305566952285403511152209853490585076084561941771686445938580251520435045085409146234554421051296643085679326615767672706240324167467615621957186254120793107267377494167486087644683708341332480108797371355117764473641026552597377936179483461964648736360052239427016934806612346795432462924025898808878506224580245844432781894916904282215751817807528769035959772668246061962878872827897707787941213185300011128265233000997494614534596549446298072166848821883282501276358049862289396301875701538211298948531776017723117029597700242598196240741518209727029377299739448311255075625005279620611386946038974480486292453714283987541051096911772161968570807393091195107151421835818365174098133424457663364670843886086969151701981186380832211791119602964006869452136998905870444848830642040044200644272973332031679113098103476213206820130873470650687658597323840329023488217041172263753854362796995477100547642479791420454837309277549924561861149067586966079376589371534818470882935261307260953112109599085822400691378323192480994657183845808760436612531127378612806944400239244616456871337867411606113246915107379412810397403234924871022610300776960927164055434025716415433158084584908086874862681936845012080843951482386159822935062363951015263575668850427826798309265556446583150721451868801139931615018269675319663737338004963609047676154326566351652058055131531783319086532732443668752140537860033078167907183674281802133229631563741259220547531428745486802625618034396421528329521193664870720077339523113038045904973914071706450743966375253806888456384203887491695648104692631753166113442498564066875813424785937138984042456341196294034073991608107307557577970635977612288165127126684770856800325060860396248261376502332554801987204944307664552157790587892610885409576608545910307243739922233365823162978550048763813710250170509136823821497232287610269130542349132712381759489239821492938680729523997023881920767476995383882348155750983544885524627039500656179887359743110501372080500651139518269709355288600767318750514373100092776403497787331378619989298540464373701080701944326061165026501222149284477859889921374846773727858336258238656744963796961291005392027551403663387106523878195048569984119096077047275839166494691866586078347946360959367125114068581434334325379344394766934100948655442383300732848840951931803603578971724745892816982655678124482035743608804777855805911163179901902640191742333487085203839301366527073576597563820887866494756061595163623951070269057758080790913005277308105318354643396886175243162172247524933393071689027366797984027563469923156638740372750284952510819609138328036967621074416140535590452605651045848822329527558142828890408886436972459134008887994363693328258941438357941550751493105852646537643579991174372508455581313035208776432353356215777656937567792682520337402350835845059426892965056248066693035979283372409702337199515443194068723744221688960287840822646427596083201582239811532921444784352241261562252785132927735058299478074952936875737306428676145500702155272752529061906925793789011562551699903657306209386406624768638491911496097771751454393338034040075137088277050925323049048820432848006269103797080522147358005975180277335864506478724883388879243515300545429808672950480024050104675236494457855769869505152735486458719079789256317236059077838023066417639979247640040342230885570255297275634122152493042686250316130671544554285393418287480568237233956674234919735648848819602913148637374915268864155608764729281663677923412258279018758468779145564145209594265476628262533502438979602624944044761164665983811958269795742015504782357863038342579641396696295636345703335143098142960037327142469256189970591323185979221287451621653011405903149019157550797985920207426781615791284649137486396201857822258197657017114802894416199997283874744819501582021606565250283704888450103919179884133809229694766303580152997517662659890653116280664641590662829993536161118648905554467310751998927658198743969182866765826233353196769092609392012432686959892807553149317766132932550041317992265369330006523833716082079055112917603570775130403352152125261740283786035223410146923188914058846395485954014507379089214776249801735367108022264800530090956532843541245152619058557205664399375262921750062632538916305681623306798289091892211985646541570735008407031888029244689984608126474513490802502437908172929652908580790912417530733935237118189989908701801576019562141614460379734675975386645180077650642661746601196594343557205453023306419723668703635389795199743430451158459905792545609436535380044969377892569497203982450683266539074447912057021624801235692840883185907684865871132501157530339767880209797376677818283773830966364729899960645867156106123216265701079092607078879770629354794656318460409832833282715531819968290462111436202081849802268635541100139783869255161509715052385708146143211737986109645263404690886037391327804472682015532528485525204635131517792279348296405545097066547406138718951383463293151390894257186060746545387428922722280979913453902754076792873022201993285167589154675047128173749891395679678404002687906423057990468814400789436700287098702093360806140601658135594025786964946565198559782844787515464597217535916809568987075559050371591935233361167230231950049397533205288932510481252322873872281175928370432830275303380456289143778707343156266534356915675229509760020041818967392814162812279356290075109898006060908253344853214600722361107323265584987625520033022549136300984343371780578133331327562279910319449071936147962460763384133389956673047296718195668851138862237018632941396474362297299902160637171675967620042737015220524504354287912316565893432593505936720208129530968785739309243934856762680920846799066871668179732551046206532701009290967296376164022631869518475261750169606103533581567729987061128743358125341478125360502515950366336438627369301110913944988798745067162518381103523648932744902748114034589180007570472672412681165244508598984046531631420990753867507954559489768089345078982163569501113128867243166016241262477685331276645413682388979173704127747879144765322310702409080144825476826549915056623196493217638603794774461986019159610027754646505259104401277022019797496999918471315874875072400570140302939250169777480024953266889446010324864686758383369126135180056541313978349984010341998591014968689420970898031967200341243505902750183740126133410450164497720823370900478171197397215945161434568150809802505969445946881105069111530591918999221636399468473090232900467794691192182699048839332859946005584583647342685836920500690555142353182630406168877375558083830887686109022066363906099357729570795705073779050718293015524857225586296214953610507964374197187907066542432135205164728479930767012753674373767327874339085713482996790422226900668521867569338488547296700627208785360943147750253834232389906260760882790678907038659972081274860778164281861745182910494170815981166791252234262173017297516192938139787910559940599750792314823993112612480921085384560957640261197082216208798924323707261247867172796801115444229737761725300930105603362381071766477117737665090301016425355577558760551330323281189439083789471951378473043473942731089646265538945674283933722116338556829181396770012723793178744394358977248273321910969851077244583500867658596521911666813443409145643180425646880048425014360959085629017257745898558845408222633490284173376580204740569917773718276845619115616598171421725167317096107656086626045671018963580802164632214388048308066421936194928734636264254943839920454022716036971039744284188613150458537092353120546140090346991275220097946890375196747486611812034922996530700489430193827597903602291814563862022022518208982476300551320674658865741032850893892716209179157665576737670816394216245995445424828510258452510032317856270942357835735341297843326042668579862352585368169154980904022158896466779349082067440144164618828715043320715064590463452665511767695405000209447333404384018199796351504400862157870416623209795458990447272072715926680990586050179801440595488434818175272540603255300817125631538122958357627339668311740543333586398763009636629769977786426683819878715581988315008109570983066454224057771664849617277073834557331530611398215379300459080787912565178381815800833782813649137099973267402090724633697368759590418846651128141179318324527773818973042976538324246382709787177125808035819075680844863861118265474914487801265160842356502045016483245816766062451954241450759239673423536537530719790627370735406092562566502706564432113784947387249041932292162813794167807146694668974593586455233373476072190832440687941745300585692914997720366915058016062753742595116800394935561182597646832167881706818618950970168071996297890716246287904845788201052319338798123660279407084697476399399316360376369028002002450409672718988031802564933040059839794638217604236888406458551933191956334454592408730756242085336438715519411692977980552578364025014111772974860471515110486039203333637297976265856499357762161702771212290974042830220209467843395048769761975008018088147568159260617269615296910397725468174113967716251098073727700308181765976358878357555887109672686092104943452353397695118048462864931445632666936599835892601557438854513730730339846491945388405269899238861617958380339099193095495416095030890294060583195271091302233503203916292033695707043388431090063431736476697231105446482603053135430615290819605081339887384119685030499642821244811424253736873105162505269074205161968896003159487682210198734740058296753100158416577622138716589331063300555672075533346871033005231257978623288817108602357489173522631421541076593815287453072408288094809196866948893113330021259795351428861239265488690889714904107395298419622758825896368790053003440366001535305603144683080782658963505467698396123378435688739935731975927111004080475622608346500340089861199408559921095340951622608328736217069109332231685125660308627063352594724688878007540642864900725456639516257444153414027619235093131182936099035318464352267411467368963942364521731988992761281036109337372407566790609631336214359276177662542481096039470459447565542805311638913042072958106465126620634228888753563619875559600055181272822837297708423533158569147320269185138061578414462045665301570786189231013971411632565177087372930588926984321758751069815745174067924137990136067975488572072684101594921723024776350179396616880096877751820224844372730464308508012953039506521895980276681868860604527605480456860985421946716553426893168706245634866532929090344106268446117185533358403654765885923164002680573905489228648026077341005464974895171153921289276931076914840759469007918716478377273824190265547064523447851252842230049831941016565000723776076380619667468645599996378735611104072380131635765301092548173145307675785223991270350784650016538309846925745074057710043415824910803417946761581572634069080500379074064720590014913496492568101126734850894065682440098491406136427166574504523427627799445654328520010574556003051499044978449658041135768020398562589663383950695633882909799723768871306644016242120988736444832121498233841794653483513599511691224079910662284116062696046985137771088397304889189036332904833109873478458096877222913111351851709617582778200552126501289316708495804026138567062547697497615582352700418726023103678744482921039217729717721965856071341899331126924071242993239059267133761096424628748363948886708458344001993637492733381561823546186150747539078559362124520689490906802280603987187047822323333595817648332507358292032433268401691183950308700281378932997313200008297570524051954566175079472391595763396702755706934359197389028494428219140786594178263232283061170653380836228401084620004543948368440664675004916499363796621145857500020662389758122372520680535438396946989326246740600446162323359842151089217467133442606362472483412169150857856707144011394927585126148135092545384218711806540861484707963098796254972114725550268890597178430959892238813198846204695038123149316911533351481792653954782693512149180259464069953709308603898596161584747318012659309644968848538578248996400460290116800733955046602746079792363600847965851020684093512922608495918828603457280827550714465170888844173837135663201232065956411962044385704673032715332141584130835731868858135661249533583445140015477579465431639325703151668044173140708393341417720470086072498820954130953197621088375790263164644294345675451496938238120372715711655366562055453193357367404989456159686922381873977259008858079708385395615837462740718131252281399965710982143766481677893497318857523220454736065189577037201365968907620883751258422630359019483774395513886881011434103208019940006095699110867450887822512019040367886030964247749403799947473578784322236124688048880012004113974640545108268474564475699852906647764364483298351733039487808516726234657456867396398884634596000909065575126271430556406810215094877885178978603513119655112471290086757535643770678900239364518075972352116529449597189957033890371309078709716064913150440769238905148546673501553376561554606991757143310897935073404464083189158275024647066776769735443353557177274199816300361725465130498730533330112027332213335026080107919789808080771383868737701118136103244451648563027764306420477991861284878649733059227198767723533247949132642934906994070920773120409226071204184997538064793302284014720727353413044932115977056909631951042623727909283328701697595561412166684121388089734910685076177195369895000916722324651724076688864097028132229295962212492281714898641398226057033949068253030771502825070708720374234674779254072364077542034974943689445720135900137963965124254883358734367435749167013624868120308724191217980644231639961902028766355557205642175074119918572948589310783834543745840692804180965658174231078444670648492518548139373433559743588448316133647403532315145897097925289671722076588384088705305672727633808893493917318001285600614220336624462035181170651227714928762205554797263586099986540915743084248617484015216205066411614093776122501294167947586252351706397833496129288220009618953020581021032962192797062759378538638755685178091079456135262701338224265823718054478458470125175147090378392820335006942193981814135271646224300365628060247212026882904364084198222145216757329831301516365324996038987209565057591548542706598643269290626369115327495050396824962059138376263785512935472338852428212277726289323706172802756627660373597565318212543978799038184987143432298007414382341610366707323854178389452053318160745500169843532171637556886740009465539600060200638334430819843657004373448189823018377725652804773034186577328963506687441173796956668347945148247275106165964521934561217379962427091753862305025751366405464412757035304916852408310668975068806605176124752200538822074948247797467697861586310001807806786307867974655676607043245339048288969684938660686611907558144419674958124617352014472839624444556525841006749055983236916667710831052374845930117190108859644480581432505236540204744021079791822967552442050490270059410178273049808556438587150027502757446337513473627658660212592949548912666494094956649083242693546037001341499848825512645192480096994053360611641313739670223728726057448880391279905685051144831575548315020072530387782429622351533195115903674868045888161904593065317986573803200737592960188747315986064478279666663222930331250455817398115565404933116382855471529133293405673137166149043408538937973848691704527130256891004829175550839186900299666346196360651055213937648588931008037179553688948340973413826578356778416752540402432887359088438275045702169641199743633268165484461262824058529589151349536430186993582209365828411910321754837841123871586194743313882454061793455574911087260158890031380234411274048750532984578424932502734896133472848763522431096543250655527671995617686773787774138538089970264955785235800558152062262059731846110405131906754004855927936202271334624994850384708091980959620529922776519636268606748456741787859751312240533118694880322993623447295699492682463839145202354186493316209565603024762094364066358048492708114563383743058493047028631030903216493485624135429101373676430208934513204943252397069682466190598191736612799890703815792673816779740477871709212543862087143969051580775697282563627876275268346790919135785334054073240621282252436787928555814605960135811840963217033012532793111984893177055618656070660000450206022522256502173241566490342630093164209803111563486268135905470952507362930410800413414306380597967473443608623979929116790342848472444141865399989215213382604854011370935925165581593995942977868495994667106125039819982930253826322543771031874299744794658927322707364485804434883286647710096811518902555984586475208966638730205824739097538701560940995128652885058547510766477585075972115364592975520452023341713625223236024619275058360603862414338178575361398838723672147880922684005843198708598845717197971406062790223819072661820150681649258750222171606502164843309198976814644537081579585864422150893242571806316467955125177461484764131536589385417810550457945337811358480590167111213047245662958081341610116782380926190722052839475552085592464438362597936348611856700706267936654603348214917333765871560881634848437731994246127165754130484730048170001461736142881509653207443861184886228606328713984550579703774464103936017583671896768506675210099586976318834571953135316476205573201016338767146861591572724264559740852676739517346591500840059208356917116996630709155342470125915568370729766095130222232786927371517869293292174980671114432590485104112622331675775057569045425814790575653608085384436343934691182345189670377031307720376831526030328691001897856730927255253061517616035738972317315097193925936998528303808420281401223679565203192882365011916388418579203023054825049488784343171537031771142818644387730511694292995332731009303725775215149469043047914039706605779478753316097611344679086677599806550087933252505695504277946757185431017668320101798450745014468173515545081276502887966556004959823738916248499100314090024463562106484663082509796815222513161961858480953425137559474104606701034706483949540433885082774401124388543959386863756003959709858275710813560174371755338639824495741903127297930931799688061596508243780419755640653114634015448687863854165120044425464697263207796581231548826598317565809676557986990232564595681867818722102536357574491638073694727070185556668633079661441616329371431053735225167163371976853962950710172565100705534933576737787757831180248996014801272711375739914557166138696562335945078597973758325136372844438918220278750617607716428867911421988857541084483585936355283607472654244306751225716057258411820113705962716222900086538097465748643173922062096258802977288098815050863784666167417155975246420904618238101433357504009203075471545661895289629895518390723308034790661466296976636706336812886154525754924866465201413235720301315400774905246420963312419377611079178765810065389679086964301239042348868312726936387864079076417526028999793573543722479723743932165089906366942171531527020262207116476223818392797847938295620623887682095261460447994206355542676698753140330331262017999288548760087066546622310549599824382688836369409219689430388081901869260002128020693774172959803720817753700951008904352345568800496143520804554255033218370815162627723067424754010298662452243346121385750831982959993666011859353369136452719487246372946955294268039528943340791136746637004517971656279975036310360534801628548748298234422969598355829582037647396153545118916101198631096696654753838861441526020200097966793761651768325145631032962130365285398779494946034329502461482703191912949084333361532113487123933121657653749476472754755977738272991005483842210506950349019319346756777650377065497007493242318972308919183678219110201620495625489431272658172407864173358165642153138252791494058751496825766028514985183884280527939585690268342920202846488245396312713814173969298883516196212012371237286373521817623179535263096070239494168152270894390718263843413941649999821202309857651200044092487810729421081159922392140389426967366043178854771282042251062614063437972885478149139398610491958922803278771348384620322973891685433538422094997086559423831147469463169019351215975130818514855637021099838376818579207375550035320255871988008968826290397161629570136279878317030644242011755708611071387016810641445285526691751381364092241063574192316973601142318169073749500080888267038257553843257279933518683194324357456954306207138446166028020336322762076853909998519761008827190809003117094718624687285860813121783455537857413203374674389545365499734916401045265769524421604303676861855299679345515679792036189326790841426615027282913690546688844523658770179262976623654122605603260283527894361290786030242027744156500503419779975215190101673098215323656343960813593364640433692657113323671540943834253775307533768326577815677984051067783445323291231218880409728659010659072022384463087805108783643867981307809848182974619625830350895270161269409096498979886140113434052188238376861605881719027041123425143923217092000356182534713613616792176565036864739713832975606553731268681974889646617006773599888121165323611358741380276477881518564553170398179600006442634647194702893411951068540735578548088590403740278096701012927951833284550540420551562119373921962128515442723986392504173439489151284836089213009210912968777863770667833008221415474850454547516165468874950629900570254226217606806735014951352204881460034668007787380410906568948873896435965956334323434716529797068462871877683648230470084258961332985132846762873530839440670535054029764235095135308806668439831639561289460299423239822142683029599039483287049551686173487010015168311915247330286538237769584809447357954329392900167442955431181944447977888306731292490703019870481142125230903864392812939149004374724785874362418175637707055316512695517217746568979791994435012143990856969544099888772100533115816232039104829838908909517404356544030043081886651367796865238333932395025981848573649536799241123701936435135104474757532550486372544035493034987583506932801923194138474730772577349778630227372707109576295303666199789330496898833349649083517172407165889279550107103685580254948237043456628259628012546597240325407735581543078136196503461182667946067860277600502288915991306077760907173504880942928618857371532738944381649511301167588337296853156151683427210785674610776545307416205370050017676065523533128923477302483740149705976494405218064190719245110894824717975553392356584253964379353398619729589761310062178991023503330326881132835087440151842905168965757976898958948071274108809359348078219402302985997320081754240895021318112875604154144431649993160665864082242480393583662100692902936573581014502910218392089867562519122512844447814121460653413940758187566082140683754674888502207678569246607888484750683932403910009051948252012730162304721518014801619625438746814370449507179018309107102487409159043728333231186814224560922247245615661193648532714846462543239614369552995754029507669079307540538126892579880063799837875172370802653757755029265990259347432374818208922991356368650920330560568450448539351548217338236252477989966326638249208242920718014603342215795764838948433675843294477838106515672587750091018610844245561443850528306201390632560521328772846997531114189704746313767560904435560275736297908657813361693365633515403739649586878714636114864575539262936412381038315410304996864858384184702935257978952484944453629419592057673593515856156315724064183579745341225168772882683997019331982338826819976731742303233610394843626075629515379123598608682140490490910875450000420213441922875190929031537354556745276172748955956933004169998955560581096849502370325162990199237198695171836347751496289179662916817852800727715472040121761630405645734856233334584740203373586141215804113004005087381753013373451003091710438816618126863245150168193171978878853062174532021679077755470837165567286498278991436097079241255943983354450257443122298497842621162170068474644417162131076620672238496510499589776374897487581124294752668428353426065026556069507819570801761764062438228655896446641699100607972864128609397657614478093876368171431295440969062091028300259199375586034489752367694731400976673104898896487767275666320491457967627031258450180333109971536906820222227779104862447503899306108274660004377971238851348335497278445261082621445399027517825371321706014310879363974111176094058156597881440845309430078428954533085393941649443656436528255767114419678867091465401100188220513780556704552444081663931062669018084943227336684995653682626302914276871409420810598534841092220426569460977695884709151426668898469867658510568260694803651894875288750257118420524712430783506061988684889879761323771958975832292757870830401776673339609957144429743900846010706412910178405411560082499306664861424894962026317635064321234276801070409372122615820640530473686807939697513941390791916328628467442298551842487017152155638142105955288308041006968596973905792564952675318433510060377804175165756550483934120874381205813946418634224107091570929353177644575839315130078942644181939079013933620066256524768499697425356023222828830054853032716995168748294183833403347452326761149877875871577183741548700897597202381910229410756254406125235171292045729724959307242617307720991830102905652757261372917361203424838685180810215637063183039860686707186917829896379701946572532174735209398508166915344215236979985248462120574969254403462025947513464300170455855729899272070960766354980383323925341809494889139554160907876890333431684354530263781179567805926855016361250166435483915704919370090766771218407581067859170518084072399271884791392414470831576869348799564794823138539035093813807129520466979937253548028123041126837327694520125455950200792966035479681085630686573872536586128641152529041516549710849335199584478664334307806758450774503452463975861564035631860750961497777671922320889333736953293456230592920213388685695712200532049586626732311172610024431186888599461021515857955886710130532786635832439434048788504740190802088413113234719570157983265616328077723965423678428479066533847211160650910781779333354869273490982765212612002835999104881113961766341027740927988889029954796874321958930424181139823109077803957249881762510908929102074002614092042183741357592597583807529697828499595316209295816436448116434050989939672766865937643417034557628958770483037530385265901478241570970415611267677231637270787662829146850394001331858745853020970238149301563442542031009831043672001949896300943791140871842742950327904616947555360937498980568374615861419447537158348860974942666576008737918116541717976874495543260941763629018769290323259673327395792171350178489861381713838030826971581849550323451791875032740051373627184905254768111334736381136129382896656462275059199274422620994150947511503010662938044868577618207003637301292057820699023802731376199808958789888312776664518013594207087743008268099260302915657233632202233977579122015411960197366582006037501538541817954751586360895897647360627630433487454903464839557105967486237548446839020524565482678734239252567240405969675376570266086219234245970703892845046376963486073986207232556342473332060012691192720987250211799227158241179824240037510175870444146125269972026101101270877187061468658321503234388892863986923319319498606813165416458921122256925380476571869094436482429053771585762273678915031663377024803621841352665866848596453522423279255740418730264918431392704916168179603107232105135956293813785265296069476211480888102359112103364077354683291880925497936489612305375265585266951519064285613364015278585650343264081047460583382031902120250251181605226382531164438447388567690468529270040967130753411582985327987716345952952966870901087785336903275958325531527476676390219150100216661015976973717485917719741325823854611189038707774205310339369744489298197066348693077191612262565036157850728125360918352151592014595405955689751311523560693499962960965245423783793000764182496534834207567408817544260232956138455318924067102676473890877755417204129678241119530831302318155241976237747458657369504541582932901500472192721287296630230234386099696503575012778534010411342180603598313057102585978814246091348119821646493082444879165391867662818800560812990305299494846271716413961781045321058025373876981032279860267041097437647829334636114240679001580841521252697441308582474581440637406064009534896882168666918355916500266648161835000194078794653302957669529345382010806739431157319167747188368292859840564580150100641172500017783087056886442316044956733661048358636157058748672782078178076267412887479019196986105873144435779399561116080501637401948100051186644813396412607239069508027202309527744823268057590701541123344178575980760077310537335893695028143979677145400547002453896543671867131397692128929376238524825597688464950267499408270884297597846609199022291852451755603981769164745222444600695722330201612491041607637146221242023049321482755489962956665498414083039220261410833879041754611217583475412666347211445304418322676312133192032906470967691169463840570260354752997162240190414338190147054548009293105418866181941965191885277177986420717493969260687515574837995576285546559526497579460572475021911811883218147133316005561115806811746929690104385924179535955240272428675935917213412779886095312456102923581941618862775246742649261362963398982737174277509492639579461631715254118436779017034415622824789314597778736440891263593060815070631969124112200300097616110921866780578744462737527266904329815273236291415488209946598976658954013948848882639762857452759387370858444413502032243568798571993948223757955949145530225055217902624892799795983137977845423868554395945235047295947795711110903867034012054539042755612861439986772760771895899117882244056207055625231271127514309058723923128418666925308358329916653368714073849219988159537111193564805745997114301873064008528015890591200532706953546501769267362177791737995078729882303286675897041742194176455026591445975336247989950819968857616367274803589004987858493096167355943905224226243979712397239138064035700341498619277731778309944402830458078681762451567982105898876412782539993687911709037714031192879088443679732784122774224217538577972359842998473841388587982784953798331372490707815728389542760731358697125397222694260204220129351104164820946342688385857670458502413189721337319939991333642344627583936572736558327377483437199141675907988752934120465806268586564253403522363319668799702387141769950284270994041476048105372025541109099460802079898643906830952221972849877993307189984128699972795549808980273847545955150860166099279018159339685902245167250601032488003739917375508635996557806569923293045722695990607016411100108317753492052649659733853281357573416405676285682303435964039809614318408987587761006920668463734168336452459517065872275902436937375796868270328538448434040733749878439343958524927821950917835615168049591876590070826282338578940542868921439730873046019888689997176075203724463952211506008429087389499063028419744760261642048533713000288029816222103998891400707392407127008158465700238462561623124518925630203345845671172380635568321799644243861167017115152726632230053170418188424040972083558416202373004889607723286472071575056879179813633341842143462615450138156529068812693468744170039627837146967992303981514898954218640863951374281819520001731505237970697640884222862393397062127765192172612686967095747825132104641761778199338774574548491329090867462129346587266649243989084791724770829580561117114724706162325049401234075341431836061122153817919276928613714754660073142863367013596427296236167521668461909681116912983346661192874646535245773200612449008292572411302501753407139422834267104679459468347946260914380968046289197998086789317256505572798136298883837766280534236497311533307721255084737931703252224921747561001807094825272753524898832336265509820928366690647913189541348567251908048519414058814586358074196918037342220827118420793813781437149385989343066794466112516803650374612516163706694512966180992418460718689886695619868075713425723537164426202712858219397309489073144346795368837977948588402914053549707688736477853749764374644360425057936053589956980365021370152017217503559163344100558449727594177297797607809368276558861882315552270877131657104215781085596150812393273106142336209804490041289651566254301881723927177312311461716670785508341814207437649590670772575680268220124672314361019550366268042996620170746147803497776539975100321896249063607752077554185272560924799912841557004414651621653782060553085903586463669022202377833153054682436762100717986992409385514091213329410169358271958330304843610550420038877530278811578294449045476208571972225895984664126679238146392935774449655824521021047689136031109737783552104438189529380261928683549643942490820664848991222886520367342753385469884597571207872228204271637694906755860815573801169375460010365960887507481028771578737591290391693977531065069743258498679906787764493658354801437761643234994901311890548901701569063529275258099939078061466764816863715264903546957864562487465201539163826617082301471597482705957607199516604192587086005551595519282437853553184974546374473606401278912689654170082187965324659171682858190406797575865333603730594949287667157844299971031556666693190858367502459505759291391230058462214218246892303397784094258620521115370176985127439129653314246489692887140531811786500742169213310105797429937465454010871214800850476570592347454107741256022053693952306962368016810389181380643395337580874420465135968456670295223923161089121691463500686618008594861932138866623144274771253624272372461032356591746400800810965904361868622341501129761983313590427475044540459370408077306065975863306732691395458805395023422454750292716645686642811386669977768773797273560074828743598467028579173603089658621686656477325701086149453184391303417966980885050296052193280681623632465671162260713526421202151766194840931948886433813527851178378497318202139324994320514694761255231297842687631997785873993274405288458399994471009471700768701309169714693291364746241234668491616181520352559710072474517157973368650215920761596455270203086624707300200959233687665374232093812605438028617544332125302517765332074279752030056274787034184766217974955174303416353075019726790024180919562098144525863059043578653819614954540892697714003123052490551651991042089106927286074942114114988379421178217969813598337033790361228206291149582392336602502611909159530979181254634256562616776295342102011223589272271560299544441710745837844365973109171279521080038917035505729818338233014636158859311419552869725885730378740452250445264497938344566558190001054930836392335477430720255440745477338781984354978293835988608044922058872265818338677910041237831066421000342348912273452451674815256912794821979883800431453752174984285321443722150234739124270082546256270153864108676251610423053591112563550419163690170152263232798276662668306760631064746098432776634964127225461195281175812657548248910591503231342012827382299427587624278230403760024871747267548615683271354522002540635904303310589520782568239909638030282831085937393401997426128434187264207214466688901975161624581834911847376439464551358382872016878906486307717235323590332858655031879257140569306961254908211401720067269521111267998262049668781225374342991604417518730896722233685627848004066663002044650231755912795761792915966145770492274982648131018820188771310916248364652104039073523619351870537058064520638107985619954658286976492028483218850527706070332220748852435092784376598616007796256464702185500537252942720746285879777165191993616851284272036869230757499387251117156572442794077538046901144741999918568618029667943803623926021526451622095184311318023266422998857366957731680996191496856068087293831571431139840609502256520657301148993000761221075764327945618858434665953648143975443929882329221787279442704416808381012804154326520496519063180316347701016666635292289897188320196006276375037404806316622850831033755329982643770502629334871798855777920087982066970067049749412898038248088144195101593852753457423016194422043870908599318123999877892307640683533772251105009017109680461187284767113840845263431179693344898093088940030271194480018632535405074356464980179880076366699596230580782375517608297171321638126059716318564405165269777751615985853607370989804727867333590945970277495878263304675286117737448394085111690805326946780447033532159549143114282797598917080416598077425993213905048632546301170861372306216505369790085351325168047480878953391621522963588317068842718306543124059537042122387676141359344275240773059472156195783945461516378554635524999336718034092697248143372504001520808349024814311670134649701928108172435267802278615030673885507483891225889321412072947159200943038834060019061339340115195078203616786622669817385273683530034991184181824116371842927555946053731298426862488834157588915875878308584429852384588387469605252393663569503285194177408365793984368676154728469428655738800316065955214288337862066476814909489613860443915848348366311038374979818258665522366375886499487332168938063552344240279846031978557368578899142053903005278234814987511124632414472004993771284455568016748157113032834049404644364955823616208640839865828449670968653326022896869743008149655916109678447697813547833561358982571231082851328918892121166943580484956800974699294109774951726276062216897489154229459803245599683790766617924965243018193093983504977696858550034298408379357366627020539053889986923843185946698024110362163454258291339853963254321308369000445663971792500902020792892498857948621889072358568362102300643197320077807490408309101908341658608674546004822878964679067436429509073027310282934673979204996942774397253542650230468953487825220410185086846793098526066278792728115173153931646688867288921079887782233859044715428377388251131795617859459409501714011828217261963814432107380381997870148913901381250430466755121565492184414213604105941753181747826421646519540119422655585537456984106209348532954186305676625913510346457217179998486059322472101131054089526689024651507010057571913824254633075028836581645196295329719285451548401307793716602415630052004114297270939087069358992301786478599764843664048631477196810511950714966758072675477207149571960380235984739244377659392249815484582480924095448410072748918394304090994174341432954359427088036879813589066168347722533938129571379852771621671182798228798322991980087325729487693190994205154046836906220200981596147349028493340127379062821696036265199285592844363272404726089052300258261150597877325508351972239970693664490895453086701694811323572394230707711233588851176736611372196750603903290370538090326947508484285246948021756605229194483261449242783249276561271614517278719166163226910553140813241830738302057489945259350931476998235931681017607954561473476089669446668274931271933665299553356541927364956181968892219292208076081949609890279591218602990277060692873880984803508040847502644364923380233726293744013699728933764703639417912123854533936382966207632752859314791706378484169993956867029131521413669826883188570365737792325751916186583648511546759180823641198530383834060724723260954662888065206706956858828487662728057012102632153841279475595989391495618003249374063615558468986565262374506421679450766570472552628568659034818112709335261304028842938969818377399112488012280912399096409787026930638034353831293930515704757801329816590618192162094706608469241952334522660370659721490080608067519332582248187831239109794123707612423596183620443461422299849801662832652318056033002441071504868863877690027442173733830751667034821794144492794952493521601277063045846192875925539071387456271744520294969627749407298834405546713709658210746438087949841663611152105524227897970119612729511626405520384102287901209457427146146520088070685195275384195918256112528111801040894371672413355478414670922656693038409689751172072772539776560585909714780018171005818276843230261167578221750825549445963886863534868230398397635321172597352630614925405960097468194331819298009304887952107877357405810775314111515435305350546260410699396277260469119557280418707640744330254287871597862903567117968856763040609496260026731457507775169189169365949608056307697127024546807394312732373834590802958864095664307131245896733530085136151534397442944056767367603811729334839370944690167980179426059811566746770291127714280380663808007819998722994069395277991976934338441965364429054097708591678283999178741109920980085408403213987456408607001944412137659394165693452108352133353888724426323636621590904703201424457972328474118806060765619866860262546196675405224595358599286452020892140702340497793021420493917920986151191071011268821147615516997018019215260925786808168173218994674053979184971770456271713112181507061449516620414038160492746815914583549629627101622953748094372344802315841844094671261767016605876081071014046368391198386874302113614843096434443254245799716835011090420926515229324243750714069137225967670157588560671782654385416755964751426055001897387325045300412866844796171510527092069578231260035058207429321756845082321972778549068118026681511307654950868837092716699212180245617461987170710405704884187619398661477499483362356064655539483168794653526262823417199027499129923447324890056628934874492233897630445422390869571469293344737424568822719844040074178264004345870759622438714804787737279956753072502681218003828575272110680059695860015551107113906144646267558111516486352913631589685342853313126801911840125058804106028059225177094384336859784205054676264601992773332364486962696529874690359872039922962548079542520859276224682549179270698433039332230957065523163229123705277365032411052439952240624792470323189297612261145126229557813008088864046151784451567276263863121904499809963134545065099641497961633551667759978314520915586165233087216712756577430906540037514854746540954186965907463705098505936128005451331417956257957809275496992876576694954197740976813617159020146675836481381735784139752836163454317050723326418796077098445444515367369178465350228524860525490181322342381307066965266235823610453286850070339088045444689641650748539296064682819548619475395391767038810247981053967271170623484870677545711457588822464556384173429792034047144706888095262944260769069230843182024691845988210117559561813029000698409922878818828341372888168182864101962388451415249741683477027067742141385485759809518884464038307324891720053647124531160959993374862180795835472271258300120759485231336110654485660830131621611161842496639991639206319246165349868116449515217234216133728466515438441954434142029649816396236345062210113705946869308497224098226907730456605664131486168514466386130081751230403786890018179877641359152513674653899393295429922822592450174410686235656964506941944788240949125680386704926543183188291910155245189366494227407499752009861123927960346177287719163453421735173189351854125810547068848967389705237637796917805013429184906981114976943926598427005758023088124022953807019022702566925607493916977004907145557536381823444913554219206962197860257223324296831040864209362258457507671277350195091997773270027778337978895926216296210734417620611579654156587744412629644338685746771639961088777590140679992953261893788119682906387624838237928492045607755532255065635641592827407770643311746372436439578239385516779860260630505231861972936514177886164634315710918790435979630465560466446536439786948124483863197286745442381770914571204030360858947728367350316719413434965332083521024830812599012557189939240004838463656250005407374343636668711083571265029750372818264280591109688583614246683449273033428083127381116308997663675543861596127070375249884445692941957593941976517077412225582188794217245659265918264987533925005847991638368096001472828692405831250366793958496812578860040841557199557034736208463672845044791667712309520559515033408023774932536085336535755717079448825421453095891690574487364440683099363903367006746736583477379350881784799601384947159865667985506831610702043280975988550242378928870475681557370808875538112210326377189671751718199182901533931407900662579572105649025078423661749188879607057237054896711864476676295127610459143525480634969117472270477467749369263629404467056440121002749434839958265447175180058980673631155162822960914545093085975873172348204620244158253651674720596494517735551034695356621339745503508829964913771101305146066264405953333322278017377720644505855906020604331374220808227362309602511220791360962140025632991668608452853550958885056880783335015988266871622465445657628099824095888297141176933132274964352719524522151966375828216070665967758167146956575826813315760915930118714295716789544815775525191827840747325043089077978082918592812690708773266600543979586699431225556813315326852059268569821781455349902208652742816875664564388546934999567274667393279025604072756164998654967352384907113918084540739459042188023394143364311342109197471708695622842407895080178794877818612842570951996689540407690218487011343000269254495020076874762063826515442370004608246791346796848793638595575136585712325546443881292033277845361665088530651889220586813564048823908265112379165332322336531961426517737653080296197191493321623577909615594796612632428526599551217207535588141006073826663387574521559262131840864931201425708717212735123475492767733209267392238054160929910721991911067375811774914348067395135859441028272409512153593317207632631408855161522600071360227305590407000454555993481301256759540017637416842105238048777748768960020720219255790566749003502755122338713606238731152810960762746032758536120505631622715351928611781613123596557776703095485405767024838721048771377381064116805298448216420429385958797403322169637566484202078929296342719272923525622272949531089307043875470714618561786946478976801793415889895681886533356031526682848121277531193970387344073040147301063743006457814586344461486121404824326842367406591623043838817883499354403164952663093227616114502890744922204666873465473268823155660644096370327871617770221680974599843158217555263636313082281935117863015595013959057670187703394836489017547319163043664986862018228840098211140424012626457082023039682656157536589897778399198172465738184894494133170413735117807391544413175816307285245467837285175174588618422457297805263412100405158198062813307062491673251730907851516117260678013200858935758004056722564848193549381580705250669967448311567884155009090138568693863507724304643683055836871983412784357946775276714741926347202355712657894059993025246259066389053951750270022124599081080573169063131872502232075478023225127624004835915794901622521937477231261944839036232128539861997951055453501803369721248318077988367508953225727957527636646847859723985000587436902233515677583336949159397589619157253943491612947440477964536719945565704337109947877259836861969934449468640922743583599147253809717339876402513799342176819225781038769400962703351635423545227459533589046351539455148816327244845341493096988798010747344743003886038623954045003355439278164537255862975062733368394994740700055919908108670442632153794281314170057291593859863792528179243475363009131496225156230697148818932837906213501145988826579663694043445275990328803086951125284326434084200358241276987367399123229256921001715592766712783074010740676098925437260858427416383672410092897804560214030016810763094740090793668145794378439460917875016716128930824731987308631291092256443253454935386331888646535175235409304634363613020730716230723048025065082503275273256052997029799926559802193894918923980954397221750498084692168561877579900114799523135295029213830588107864439313572129008582161886409043547283300764215154511970560428026947310641034777372129360977484174326269204020438014539709259040253136144876029179630245953453989577172664817221059617958736791771349702297179632762524673286783459762457133349216219925610830643310854808761411788177419965528822353536432472687895456320360640973217865222879764590556629457533168681859778303668482420412346586468038611078549508870316376490280646453472146998580514506414233033759357154992822634790377414336868391193374234595761374624372650117863536537751900406031773399425631252058337291192295519255425375311008503604878016668886767734928488987650304927013035322777996913095791608940801001803968966581714520388957347281896051600786853287642686216118833963628985051223852325028917725286494580324368203983078218013789579350357113438371895992204751834322628200504878135301044947402992347889413973609561609768240105413063421023846203995155942878681839910319705846393051974862783612240845669593188241574833382015839867957594583428053161653487076177528712359117917500454566433137169334419189997396154981525510711647597523334687225177306595657880698108299554421482913191998226515520093165830079250855099846639064531276780579671784490799063684166197228627563692976841610562860987260068986392064288407151441813836457519334860348625463977082695219350739927789684694067609702760788308171267733569471143201073521998701890700663075192114295541852342965911077032388631262405998971460737737902576209957926044170127074284831716827753104558572004407930196717442998858354663350081666852674637628669247186262920412336257036692864963553483048183818065463252055215025710502731629021325284073164535926889964966493604966160833998218684449718014386842967880473365054269917546950860988162064946220019545335074709062757172911450977492614612859753400474345543392215900331461205720099653685944944109679134339307775475434315095292782741235322363765548500278140046500561529466891741148462419791459369690663208777366890344886887201199812296456222214206327669339411706297019754181867906062756631537748905898764171135480767287195242483464726566783782111277925583613077759944793548751370968752457443063426099222404122221038032094653852079633731397452923317512297642060445245606780056851560476981469770201651765153722754912107026454658632824940019929241758796159960220242567278122783201294141885255913352840468784249193233845462702123736220590328337518626347334777967500971669657152625859689655892991709374268190182091027436478842217105917886113497091003451807754211414987694528954857027722818824069181223970265851666494622789839023832987801361636866796866500978705937413051438672862625482578685208867140204166268335852820122684668797951036141163462541256492063751501048652235116970015608030555612037739713937972264843969061991203128962461193365401876795374453321173063023033327572903682350370127070129439625272604058137249861823805869451961073146121762314328972349314867740696410517210173733529003972248183935783802607835286951271113910860319875253844740176346126600960629472997887900646204498755464798654473956743000385336286837365866560675285266238722264095845707155685560153817287275141685532526484084549884042421906232598755017165087332087030621639942906262980861365251860957951359188551281116299417996060678103405133395672341796574360779131774297673782261433671046584725162898969023581030400731493573599692489770526176908310238552331278295813244696362133910558972255715161746334873697196219300235901847034657268915518857856444794132493832623028513189438433902097218168204378058011365616769615152560761272708399003931535796837965114603380040319416547786709786081807469947455353962546114386205865349096701928996370273066088555123899958386625743052984989997249516998394999660606673882284726405399178773223788812006839812462112601945400436045546280233259382181621034626260878978145171897754608000830728657842554388592824782924293026037613083682382900317553965151518081402200201744903483417564197178196992756874725230826466934098520009987117188883472297446823684326958002334889826881135873930643489036738110924599507346423592111555977443835893191687503768807129984310982769205375347635179280953175789529575405077940765256073867357638059289709747019120310403648181973323561817038485931663494215236703340924392281443531110526633873697257304303624649422257969463410616735819450640807197835470347040940270176291960378194937418683534435849219122186982987248375161977826409235924939498614037622093578666075633689694264950509668953585478705226934361855668685750058441720760282380819896962292008203391408427163287957874809328258275389982609740064499528608746742099049112462896224128735831517682364159515039730846492259048606131859802251969995482195156348813821692949559256730146627901843448371742172444631918965457335057120154415796502052940266360540496715622414048100531241456892960699769609876330213021105778478732515754108873466790040473682294268972673133317080983677600022581494332365634082975724965986727793053184106390050469688813933359078774307099811271805622990719899045783360305602504179859210295612613739339467922809307416567808869508707418984063960497734410781383742382061800020100237582248013548491528073176848978330024131580301805827667407717785334148739126060445867054498171590707678877484239182094621058968412520531561930191952192005562457413939597986829368086950815240898369826084307514142166889000968226173716021652613009856618657310300052718642894465123580560245033351242009901567581844674576205764996168079357563394258260380646430473049881368001056771963774399771152430366779409624782532827059495130928042153416256528434364140852290296666025869779854135201042651752054010035671795951787937676355486022150784370150859733410078673037106123774381092766939715014217623888689303651537354981214454031634476032150816267876545169180837069387393018254913112047674782471690462625368026049374193550578896027798118094004377896151388349289710761842260219121540854674454543558923562333083323800712592596475692495149822909924249777854767026154273969520439858839913213726829935145654968831865925536694282498080230813795660191100063806009190564115470153766943299758754678983967021792180491643106696641179860788385887068300173243855258076860486923294257279622450519128179705188619683793426118529076654564401429839850107110463362611525417480210341283947366905496085286530819507935059620641766720552773316769657758673355971001502843382499195949674454387588503348147742982409620597682136134869544053785737124752961844723224462307995388990045879404564508386325131811513346916642176289325185278064182031179649964482774408460606667711973827210654711451301974127455540633798624224982013584506989804626225534774111738867009020620394561150504078440953062321269312678295491981638047541309677648992773151705242557181709564346058167687297927145070447839139407808073255082177928313093424544653955890043716915263108541339117834821350385739278282959307411298460785249767833101096714171274276621363551012988838582029603641289765398364126976322155162109346929597223166529354581906004411041839799966313060877229597357548886532491677458084937966158296165025136297263505708610361169104103058527149215673649850845858553096639215613295859067576666486938046630307645971065545678749177346197910318086729231082393509378304642373875858892235673215282758587405645770994049552017230080614499702869552564776683410145919714086812365545130721120332681680232977440815839381377257818905819281665940815517501558179547138873313134530458148309636417087102964786481154675077480039809892732404888336824483783201382953884086080707447029189549038260704157265562800077322748316152363909715382504475943295171915282389763572533679308053555737728842177389212581394898042831262826543303739583204678164342773085484529505523900592331558728693680067889403741279208439569728900370139660227087285721432404722831040200515793993452609893793627071896834895171054512994027801934868363838687618760521158875865585597816437344924083078982712943493898644431780761291188497575303941059962939285918313401637846949891843016536653102813234281901624919670284122493479894614803402545948440680847180900035928245003080206083026524983670372214666127048864568940268345977987459170959359214381030511408930330887990451013372710989479706019306553941074254968180774236133159398811301242040593072079006334596360243424229045450006097660124527118334590258893092238696449697927272768551429371465087593945830010809349772520266659986997809141644433982327158953050010320221832008821564414679996956501054474455346613265116983706863213470627156944179508294384211899849430608756961511141216172302405468313513876004167393716659260326034220458825894029212251031520727756931354947152601035990690612470816810395259418299790005618823477713427013651332757993187197134956760573751280076410640464445410131259265262820391066199634793139726723952621785638870185622421901646437026809545959223723990703329023835456798787047489200085237338727042385297648642495702106504851203468838984974482761669983500993205016548319570976203474854066669967380828294058752014169129930321624165297682738710340026300927771304315789017933729832114981842210217457981040701739003810327891767191033737952885386098648227101887334923212175808358078336585734919681110514212759915462792230622544069633054792407517575965626131412584162210616406434856662056111979447843721252585624851160460955320742374630671373014869660773523593643063858983106947578178100540451503813141960197184834552951129300767963810339158309501921602714991547957267638909497575874931632479943627237595654812303270843932582607171205150430785927317186478969711717071755275279363474577777861039488786495968451823878534272567324792287041946573752533576382829457134544433371569019214139672945626418883722353919593001403155593898909022974505875696138068044251337456218218123553417818301031517609635638545949475134468045868634161502851888276383017764992271285860731255990959766512932960118308077939227205317455706844527666360874313964933061793602558162932048759791884343338073057556924802596176352830641453815257944615163873365065689575144491918640564609125115635216376056959107953115178041083925979485900389881552893238665334164266789416070897866796114628996438125701158749281407703342898611711581180205366324996028293138077585076880431156312310357047009409650177471068593743243559889740037184307885495053407727683941227249373884318374219443249639698074563789048400319831340403366777056399689667500982599300790874726688431710140108529544508624469440997922979723822022047737971661882702882744710581462572138368968625725468855616871746773229024861038413649640692737480462148150778006203463409921169380389872390756514343073431532386415595641296550338133065468111636059759353713247218598124091927636422958022107990351217739719506779974355026710090240614909226237458486993614088905216897389736301046251470556919534871697220062597580506211625863308555570757630252736475476958004585092416405885237963108000320714458065886997787225630711382164696367185005421699041346764603544298833295976113237001892460009200477953069022681923226779290235678718037355094226110736872904204747700404675717429123040513005274867527827121517320649158853920427568091453950988466579562265059266963965520360841889477917685325962202298328384441531063812219536976718409588642122983758491911337898759509424897478708836234355927934372665439715983423467835130637833075240443542364462984608230649363919168827374929242168036543477961051895318947885390731586016739294831146058552435012687589486841517545532783798561691262966183107962792788172570375800358942893512307501019060460935928783027362787018013798977693801720955703119559101796285070965562863631875780854619738988266564212511725298247229118470840209283017330519401132684072990424612870524108553808749489943527722495762140043100854572413499698330216853891513376888176241658595001209430345165251149515224768084579262972185871302217528480639076834760542813713087351739412852937617796076594442393713507761464565166002885037409272825681864510483079986307402503941098987015339942681825116775147089722739921385302239643687967681875100199609014898049601598713421445521619896460192651141703347286814636808908261464764285641096820930065075675673011597630890444054659908523664709504753825244133136335948389515942670127929240377069621933574735833096237852661202491054369241314875197261015008974711686009692758340433400327466050249974906346394541062917850360527050786513520982576532893528272286763494249849885858143433335872068442913992354635982509052906984178674433418486681964724513075179665026350276213507355052516872270382828676077012836773536994335699622814906140078857524073315386689595073984925382766371151369537185869449757333871272048715369882019439493585102581533050202705112862742313227712314268588837088907924360109119360370460502244248042646578298083816889920470796996744281455285324357311420784649444746995834956536621907064530832091410803362450332996061636579565883687110794842326390454239337358480481871263105009093898172896913199871379648616515508937127261931677674005509935789551988876040459733642034902589093693155531132362904861173572069960439763633118189656825466609867985013490852893615764516070000728203279436400153580021811505774617153609589714572324804988504373250020463143080265019569455522706233723574297798703227991271813621621892895843203641311633198850189707240228319897439349262330532078144271566810462478569282350294518203994116139216419888453761799898201101119352937704814268841139137525458046645463162121311934850176855196391784094330457605025993299083931023558944783530102642894593328977767873958728460010976991837776025968861893138932194615900800456363770678078943461312443180596052700769986442824326804756616452384471437372275134356564011505673304599968345435421953630008137454150872810159812487790485268130112362984964625793904896550662197417645495845473250752729066056818064373109531996257403832302671794119475824749446516155941027383446011224205266117429956786402588416235123555198690827100636883982410960081786583059565183081758068329890514873678940881168854910889436798670588261111914427697748936214024637118470730326449216868630112768059490460738689363608875289497595455878753032620399252472382019593629045815988789686683718166299452419642876158834843111172928450723721375032199754909560038431312874007758893446835262577118056490722264029841860647338607090949608484576395732488926780311576182659056487038676501037388138050507127363281148160548512738919839711708878597048314654907399025031860448275585177603827273059139390225879060859990986144838591624023113579540551348094774392387601669637035532732077660215672184166177347581558011322194614103317502060047528715476399862326868448623987791515125186327595387572789462359868862523969117311526998502417278141740599540242628381652635384260958972084595639246922375006057514082319236199030562276940567205382113007036212858032554649133933787207348691699565286200180290015332281601241644866240603444615907893121910393969473888614321277842874663757737553570076482066687693253998609704632706614464665110296114867578627719561594294429176802483864781060120620351574903053817092477681746403826158192425572879085004158519342862048210428270032546467612329416761792466250314079300510588413410952709929314921480628726451325530187750466456845595764371053696776653835637032009489896323326421591983090583746519269058979049114689020068793546075819291900640081500582410119928997018149666751321447135286454977584893266040997866107685275931262659170327851386397990086229174866635692528727378308239205214557374194715842187111918681505383628157222365626356450250882503845948190881950635010273833539738601079129663628078879959909744123257761606928369917819410299745338699200208179105056442270098716891090352123425270885764419215457992778951438291760359186827737941788219338316257967142085447268796675301288644405587135360069458576176161643139682055461346674020540393289517749307703886949780132963785290493658642470271436293150661604641263547582773731637130077927377598191727211551393901323379159850637413268876997688995211605998083412178536950561932180498434640426910574637307726501759020867349848811735071929825929353838352431551697925718580747343068537412822289410245318532640339086621301927010029626416477300028290495991005577220746624735253526136819002977831341620173876259161853840880501482464767339968814980668577268236356576103472494837126611746965786824754479215611796227835812185880666248387701789074000729986950446345010114148217661477482265454726794824642126220470307396893366211638300142457497783867754588719327094733046850816302433589401919721598377505986561743635853509204110000729007746438251618825561410388918646380020192483747282511892713986362618949000179122983869419159742912067502846162234007797416969659944554294041746071465433768096411382876715010254018889461651629094143933898734009222943758238077682466999979989622764876925320515601663789200854811361822051669475073255217022002004706752221038200893031632121344043333287327028928861673097378301108496000668468439723012659865812865360876143916056824261647835606163667981091931566058893730087475610536888892167848856036206713349847299312393647332959303347484276714932232255780058642795775170410771526509129018622645529405585496585267736630488650672479495829507329052210289955551876767353711024459697707501612133963853086963817716675786467790757809274382349650994750488339188109043312986820442933256540364582412857209579288705546187659574109485854312235263697754251904777611167913990470569725882983163057607132292870070408454704549064116892032306350558834374935975415230790937240998297746066660153920059799630480555462152370162752709712024281952713973591029848328507774863063909261477896600737397916591442423243308574714699485015755324912191530120780878395737575311836722618626587183646364460970193497730449246029795811243170568690207061348172223572051867495430008390638938494101790082936982145193041011301773831291303868546425843352393470414409304886567958783530506618465508781696786447125922581349626422117124485394757361983772094384318845489522759258965237526873618570894009230648540197109772736092171937516565427451471228202151884601518479926134843702573638959051482462766008388312817650847349555430952480255954024283392417046595989487027027724319881887458220541936717893014910469119764933546348976259143700078602205474337438517045042405969364796735119882398418807298220016004038866104056034235523887980997499995080644122720825607019528290782942700995401863937317025638565306927808265213193296375894886022898464084147344047078530162129479656715069917064436082563863039702878364675055805027035938680950049584907805829286515904078550883182330860373775345524020341955305314340980489446372157472574848592463878079452573449624742126023561254048670731056229593256197784429387945834829878831965389645837289136321970477257125833752667429838569771171339438189106161420131539122869517775487327116272247371846557944481780037958491018315542818360291827714607648638578353518786729506901488379471005803026550319646142577780871660837177578151741216129162841004180478660010894756088868696180660919666097141257027475380339394924954158211358031252529299481227861139775931078239107038082538629995635133306397362323277294019932217758449403303121872262287468665105563815961955723487673627507573348301349832274642591648151628110151916598687364948292024721821952082432910688811441845654461530328876304410110292334108431930405703483138124789398616682930363337572895839919666582202638395323600871437812806360818799179768759855752939997315743928962466210169955953660656638067347538739954342516217699298998614473509603987935274338988619410662164850911592131307682166368422983927315967687221378878591712522847331700510297818092643076383712195726063757787165135432825120852069937799621575077838476299872205764567174303347632633150045619990085844247153860462447588070497806202422976314545447395139887828654272156470221156948139230936779983621137669918784693921828306976140915507327522126239690475160795459729669736896923904561065320609663364881579373339131206031364556188754245611689554929475154433295530043929489493081999166235426511286412322312999293211935136405358124147860384311623593015071796196928599671370441983602030625015371384343101771263528882186601128160881175193249382622830511398822980550614461479175925456397924075793093055234723135812369548624647737386969249492267341230625760105499664425009309139886718002689855885277084559397892097640135454691583077125497565522658242850086666675652602487566595784479321248900824531991462646469989118847181802664622778566200442789187751945127058722886715697108624363248974356052700603768839968864939306157866265889491502891036965178395951645316874655430896680571183512382586833078279153563251795285427689315977784192873822121777294968361854843073439180887917846456062030375694654212780613178265014242239814337895500385561918711826531346142677045309187808117325313029998738574730977965574083434576803192821556017841533105837694554652135065672237821015265717057257451831230907207313078781165061669331904550588176277266386801547853512502931963132136639241960051983907292321411679612044989401538721897992353536420472849839722339012237172280629830834748087713518606378501113963064038156662763876570096624561464254214670463408577885721360878588105764464908134484838726657159682616861167587302493169550618723328800488262210931759878656532109542114562069548915561704724358607408651258547783056373970858144494365516252521365331586325004646528443838838486378842693512497881863122382482189598952624137594096291274512271997377959425720975111266626741417493628551584421142549665781862705865968301725704997738738265402438449500237159418466062997454119803425039159568633461378199067724654426991976198137295606615825298749402401016805331809562852932732093818894562525254519456258367854621355672532023565317631717313351647505042571043525196257919226763433856975893287298948984734307848864018863222893471736807248376070511306749845536166399615303056570208982507257231870475944236226899346458189391189294332494760026998241555837789410418692727701749932947762945892021878486858731688443313422226017615880220157061741140838944262409766273890600933429072583273017319825329854334927802676842380101962807147345283524759037598947925461445349109371004773672584839330139205140655118902936599413697513368614626436154033593059292594925195932216283203832404326961938479166269595893681661449809728659477214235384949878263520176887287657493563926903304278679790096545440077995042237446259740737418798832891364689671282461773969874025625756344890553388223512613319235011543567193318317382856142575301390647310692025055995678650741082003461875342170345451881499140070258768213326571149797478739019709643908553422905740461613323083097272396322742108709956101630838360276574667184071782331929455198549341127407715472078039131822510054118983845719507750694111437858540589258467275122379916738906463110421876149531409987740308255870520362662204940775448244570012219457677136519425894285208011728035477523154953234462162682490138620877288090976060064918154557456401073522299710956337441566658947745372478948639030770674967825606211301073000762868746071190204519282810148763902607818848667475707614839099317188130302846916149017501039451008378238067898470000374098656267044391649852174294441943161965666573222255212823280155275636155945445506428589201952607216537814506703472684544344710386678199316569081595411903954896516990042349799623397907001377524098617727765871726747537182250807581917072204178134166284300371948734059228664305947341701588537898128742480551574431657460829204175136696365605614213305124664685111978043067062368553717336096685141100349189469329471807550952189771691570172592811593385326771340294708125211837073467828266052560398131085850382691182204623356517316163419869603088126981709080015781170070979779707193424231268500112105519757140319663796916923487174191903882447954773302537528813894922695523945180343574293835881175146916868637580029289051390803834003642399854821733540035514649718649845553703800528815491630647323359471602560997272057024263105978918357549966132606166716918785432908665122442495592546388976414261362153659682976310248969421359675652459624077621540870987230315598122546652063085718743272706188990277806351529707218210257547376516215638297989995326296721582337993630196763169103600697747187380483264160678647311623939292283628367202473714709046065515268625097329147431236161027877374342177667173672998878090402039453347696140554607103389781749989776738414537848136950372343364960850014413721943782369904296953755429425400830618895699883508095529065752716799322711350131349962011677738195179163588248954792990203278194357958533102908156942318149338212575971279711134220932300470398915731263706554856768492720019655146408690314506148412008351804805371889988100784114665848840723279581171479315414992283036346225949793711923911262075837318958986604044569451169622621132296956336930819060857782699983759384011282539096195461829874646441619445438465965693173104896225239035740896740652894168442688365667011537667546347487377352685484848333540064963423887262433446375345474538705274928865487820522935613581106702123389260430199541169958251351532775907751574118265833151208889428271366934864460799233509879727922202285939062038699328793619051282614350329105572234079575831410029425327931166225783852142617689870511561606274146540174908090663905592364863058489387290525432561797270645883256691900515747167996088082124462644271241875348162268163692407577951656795350363925622056447950440894241862004151984905749753031010235973283281350943534774171952010447357685362374028354514302817540873222770087633878746971163565632770186821179047150360883508906644897487774781690260837110528146133930292206260552492592963034755151833590606109692610120101733588535294384087714711085276635003320479222129203412598353108759515107431858150766354052190759800291436453823135599748947472654268962596097965915745606609215043889684749343856874170498674380530546039523562075134424630442637989920075146937944255865476418932318572637010603359225033650315845497371019441871602100747708846086881303383336468396489037335978381023645592666918253257861725728149602245439354681962771712412158943407986767099946527848181507775596849040433218376663645896120413037697448747845751220351467735967176612732001668531110721877578866475419178628121707941909009833678628008149632949363251612428435835869161978141602121126093104587602721031572347827368256293631294662731395155751798425198576715371931281705911361519618665254805682433465311727955851206522129554485472395729476409111468309868788675993883230602156094904422045555034844974294830406264456768541217495169134502081966062634963420099543124281710426580022928341752452995885202521771216162879245236959661420855046703165490716188527492172257670907958894953389503775545150800899354217340665932222904793350697569756094153729581529512182141938360386711338720874192091566150950579158004054943833781293640162923979107412686684671529297413485742271025896392943596060457559448392111666690889845907123069882730345554044743343401389940631233296636628622927847390760896834285259638901594539808558755924610010751264604972782589336379716654033848503230443722110476101553792657362150640139767556695623114147084500637154135341919531948980874196914284723697481039941856706501701165478689339156448774883472253437785664886152536011830365111174976230093831700464035442610833890698770162887232966946255960365651002907737990513389057605651236356032574185617453354468951781546586740622349626070304706959134331544508126758501616168869918981376799911894424543024693577020662699429253723546021931298796871532538258984632750479010686837683473669948663559010334860363220691322437662659180379320464800346383332599192144051186755527748256535000146416075185898425782148176800983627963522334584250287464042428928139481130382307059271156531763309514605396131848956480736164886537971026198922140461023668565250270403332790084459524726203543102893434864590704841890170673725851443726458121700757946601913515708440636706854747842836805069885877222007305311061292255013618074076863721972146212470870956480680072256389926154657361600321184085687500595936058399543166080606080799420068907509015590591323367176925780636146530116813040764623900785636333251521836180317694740262525451079270774775227761278152927623544499226720050543293446281245397681265768194012914173660807946789138116449057367623696716158226312502022257979906171386630503773329017524053974638395450423676725522923670360851624864011995966070398827312738556740730562362457615446569887259403738965500231648220301706168124919921810797920247925604457805563547489171655677722659084183003911009507457075195964471391805176391464397621682287394416799476356539954924795068081486051356573211141792903144221026697761006965070358318724534919101757617772589533500340949081383319543068791828143883437670410068563573303158977720733356102018418386637879048095888364195185114814048878025645856982784216867736855967011445773379349988626991341163211812528385233200908699553199627588987057155983715443723981519022942916845420191695994125032916410376404460714674948198093208699369141349083583940855707974992820245216958509163760919668742659765631271639935319015561369704567920782028067694038139855568680187161370967119934793588804836957348106003503291193665700786617587946078367990916550113177084445802917715780948862229972531313222046361303632338216272944680919146165832536518105499239687017762182550779706813564069697299601550273699822449143189474622403695109217379516140823847361896432893127238380275019137172670863849346835611769590004420836083941676033122239173241359154475706661650100585538314480808022067047239669729309637603637346512397373758260216078965593180701435526945201729463801504293189885805381855042248707672430338684960713601867119241822039600916155709405252196996474386434450107758468548378164904963266423064938391453669804071575432505367550258697701251342453030171091920032258010653926769452536863194112205481564803655730214218168655140799322709288873146438615698029863157560681705379809501714673402873844227259244650386846006934027443692128920829400462684429622706070060140439341658320117672751158652014509307207214820957784268832942735745637675750427967302308155615593047808201330949549782827594684621847426819187693420864661038946127462547439111249800409682985859235822897717557019281751912630837269526887209330398840958829384206825904617858493335312974627262951105043480129922635660392309596510354775471650752094171353764193188990587303072335678906336115617709439003098704593443406223292798833046502184902447899766998009133941184006595219479569836627420131847259059061741057731983739628019175822720633579999915946701054525427676020370035037529843790084666720560096751590755716844804621162492141636084118200159045755331250098317531556495397071370088405106157718631690455153630370937409361241731812379807201332393110537121930159092519140877411287125689377856417049720970476908355627552999555474549621923802949289001500315410684207423843886457199288121108810002554677234995694208283447165333947809687250193247730395921449515537054775958456973482499345709153427520291914364537709771326763404107803697943389226020626029151157603001274145659702528917687145610648252066132103424703043950910655318471907159345129047566475647878135440171558381622666541169065704311654152731094583192063195385048152669114121478371814509589040734216086208633370623191722901393344028055683693142508823831158221842973586697918054689714839718904840990955068448019361747632487485181865739503840282043104536367664397998735535998635055439432717160194198018045857463252055106047291107253166920315138188800595511978830852392868279858918242121982140603919849146678078926174473025704694362887724457689903864280670467067899586701291623917652938867049705479211693010522273730350402745066105362321294528459156264607275559551049375573131308017129859458878450826308043443860953751248110693515696948310215041374339533345156881746607203662698998330734891666253561097068868923516596226330491895612951311807540552869588887380030333096676268361980857781177312411456821069837209469005201532569860078758267427027581548138382146438834193483668844387602018019042410992014028667406060752259644395579980765614295078743919581602679901728490321312121798260542094139296747887377250140943325793270971954149492043369491214754986923926382403893317476358675545360408278003156280482766700028229379503497770804798546173777751075539847925200365568117135663019922460138458296239449437973543828732364198994473218916575773487571972738685258271634696288880117343183373777793383323680639221502498913699002554540836555049588840745107416417913632040693181808828643664034899697323565280562029592509096180374469076073851974274685650210807008816651605031746171974429460474019177480902040115116892048968626476773566696152796202411927639872114559892123249494236978966950427743773096983117642296288372714399095990476055729319754131193219453617914569627511748426398349812833378567349427309997454399829903202344332968074141376027520599645062993112475803142302383909190494183374543489106891793271085254083567898789171819748100316588244408224819470242142309873136302541270253569974384880126625272526386927204611492649814799974567305832995544809189575872255649786871074712576745857164034588360645153447727924271373243158985597886650223929596071456527762124709041978152019099596642234681619557998475323776246778302422743498857534580734503263198169125713449064596924897108882680691999525232094013548404956426311661976243208970367305394319415392250794398916668837246210426550274017126091683871144738249193812799446964009314218238267091476809879698219020689231632053248631561790250743363819922937065981259364991280713971066491550857544199735401559765541695791002972769001749938114247460587843235120976364562239832837169611764015663675796598840619353765069315560659501712959042099132666648916589419388324417526009194341898061287902848571726064621542245258989404113428858199546933930894200026950183199248990747952167383043341995677326370256710415837814372739932332262585176030769106043646005537002724065966215596794264826784134758118555173763224667193172881345147593259919299141927382061994285873197930880058631476883997713515684950559759171811608258226181013364199624334720624366572063282999237980635384645315908081357596054461746690863409745911234717945005793742362155238327241187323928083175365563826068297984110235273537578454381867265113163044075807288613228498373599599872394147724034493096702730656330060478132394097205495036894962539906305993126387308886638084969244448021916423324636075089695082927913643501373213835496677662430527851162582234097038722136849111001077354676444420846425538365034633790375886320561947918935547739917126124964889839166545982516050630316295946551763913311565173113789388814768275883425493634644946770998356542479154352178780522591156000396571427085265480780433783973763294507173539675612938991031882492459483317145458818074361926200197807949196958855599101140102036346979563151434035562136994756521114551019919408792255730986610072567719679162430897118255173318352392853183479359596770489657012982157258881758515133284091055248209565329364343977045947600761518365987078795596308410855116912677360347393764688870755386222500080661306852702078698966854314738262089093349046182206548707504917567648496305364611218176916006280389129745623033711766979145593658948579527624624102563316050489748450830953037742153008165210030956657796433969608434732397241877505817459379277625177387866926296724573502833370184057974034210033962045410519552916996337412885673382214468191400181788497032391538062959726150889579535519685544353140203131519042780629281740690020058560228437102124104273277499558886769274172764473545818868268804304326700631751543691570321818476017245230469678906406412231006043683304243349550930583424917001201430192467537329325495992795720694002831807447818049445183963034227782620641801194801813424263612765657322157702301017027760345017019305108211488126004840929467821121234545879754540954027037202139750850312897015847209592046995914084734890780640469802034805564298746145926238332995607517292220272432897808381535538892611114371867407968356078448590352662148909476445254960309828519832753348551314909376859119106090162581248447674707725879082586945445849254774788297849223203898642490171802797950772404172644766634374415468242817345701049276886403267393570940637666460175694919187080040911296884780341475348589862636817569968680981979716313671027549823886312382179091944385684782517629018270755874640862376297255259856305721701775998929050549394660181820106838591134262913725176308649436843054168213247955159652066349792399674447209103677814240324507389599370165910642373172321198395422336886868537254414277144975346641961112061178134771281927378247538304245193527359021342302786108737421892193971407409951423872886956672153747996955377408941851373987568302833625629822346083445265466856425819215543487701900300681462526950411712282199240873150733642070537215443994816604912152339134268040385967411379382241633892700650208248275558494579544298586533251861816323801478024124231142860727748951019044099059408813154175953204074155145502010850115517982648936324089758417546842901670406086614730499891321504722446599633830059788197698071919806287085958114418897067969951583121241504052035368820087843855962667700850001177691717874367631348998559045774389868905506991422824378282710026296846064130828059884202158896050691775832729897184173776855929241717183735419861731284781485176602717427181146545137583348690180694405672891382845803849128880121478111315862430910794521502253918051638567953692356600118246790523073229439264583685199055935131457279342486832019630731779730765947420405080801393701005474799153021491229895633072035431371345078545274441549345384664372991261235241331543334128940271414843101060582826690585688090730710493765952767963149751506153542640218265467685818384140348791755804121103217676999294440560760038065587967785818079985874390703705402779320207426521098231660562219988480954595655276694996437285469666686924672555085192993605577290464843834593889672502532033296396578457895479463381677976999732001521606199761066317223727530226194494363995269439215396102180574220586391802549713752994324283446583606901953737833057567657710375434351255303847906680463976200797283966261439611851794007347379442002807313579653975794854782771684788891323601203340165628249659724728890714719996343255774841587592690603081770771319857715658089002849481022548173562471599538707592343268684491019991097518240912027322648010505640502841720212974165527865720243293375828402299440127845722216984149421196271141776743390194011415018542362838059351628995967042480208175978786221525316691568329505147735356010689328545169038132843786425687775258565079208570556407492188216477335451255765046182340064932537672945349099995143127465617244537471737617553876029612701439941239034884280578804026054039963596748750822926384539818485723867072034524025800995400398754448487671956021446686958919712919209902222786218452960753099531270246605922640664959304046633235989911066452267417856066205411627922149778261775409781809413887015675001252032502917328879209296714514827497183003617627051831852819938939882171960414432425861313235055519714391505941741752688356312577224544307246274752706323329472917011366459580140396274174728768478477383103154038703542803691594462729955344819294257123906119577873766037039872353680200540598468377323222903421551085355260475353854394328188737264393503855748226796532765198514682038405509531171017942876709889099127213827790619459909465275168613921995751224165324647689119562860896273502764864772060616214555221452385329362681999478352192601208750574872041988461919452279150678363367834181014950158785756984878635174345681999946213047761272713996317957144832981144711297817820603687263557186309148473974948198020615073301682112671934749250205635748185600972524122880928026068996587430813297873498839579900941044544884763706518154669731516803171638690260981772192354961428501780159940897029423231737555444102231317023553243201490774233056885251317504189762839111355510160693086993160486677567263388355296186830264247120951794633688160869485921830785471237806573527927403682673764343022351221307300747409056726159195782055341536592949656230244498427733832858917675897565787156946579969686477861820254131598706500186624123484923466130532263277679420439563737946574387715580070560139227129073957027884006943899715690918274388755658575846629803351772181438311289757548479497435508661874208388701725271497709861585990786345338629018492812910169749564591226717638341626084079963093994714516273425414228210220190717662405467348404695696174051050907961770835301688388766958848209834515366757594572432188030101925375473844581998171703903687667963268799124733009341509153971768370639529860673634554095615965384470748309056543944312625308744704845146285973462131217569133555677816469356603779090326597516848525551346191462117367147945606593658523975698270813051271085875317466111820511556519916590644389982334123898702125737134009068316149987787052064554021075986783511885379803923619146009871538387359089880651019591634290870402157127483386714872963139277827186678704136233789921986441714732066058066035627386085295016125784609111993003138522014306436883612772205635194659722011261555366781030333803358588199199781586463088789385089946584493579416279097460343498334173026085424088546280347904534450321412921599808802264573882676265382450953326018357482896893494857566280739723908297109503576266667461189692013426249872360485535534800678121658960820792818173940801330779419107651196468079939697857008903387475126574654645077420678379076424895508694479301948191632762155158458945697187411070212738608504314970678634343127010457745480055113580659918775903557966229166592619172069353932964053672367376619160972259985426376271916308693660522079729014957177017334652246464712989629842192407333200392909244135458608855465238099023729045105119450402258631426230637247478086177806360452351808901570132235097372754281407132679407354602491255971933493640577825788670868092702921162650517961318921005105883563981833272471969108449221114711232425496731163551625523650855804472982848244623987043094871373132262769300472104394818731446367023054259730938516786488947018813747845940015693926662040207060583240164979992721851821465868284498758858738713505706481014090752067353639846818758045057984103374980770901478459795655331360588769371890481103307630434958583335003053708167172219353057918278954145967245518339495667644494282232481341234952106335832987008677305389113995752830667557623019532866119994429559693137578549582398485090711097494679056923969549917585444332076719296998905712613634118857401874109874340309181377823087040093226935895978057055626426196490406995795068699848360775118050231088092681890129146055605348839123111778918600151417343316070803142615599342770198862947764469342417314293895392176588401156009991199806296972865545932923413139128969783793939784891152323160478070993063691029516256015873522763061475217393248166489046477413705892334328857016589195508300853266476758236669403339959810928563061508903734150248437703468380891885394421648336188603482493833351146604335169682452191528852644144137981987479104322841758862633064052238646522768330254198813605453239331106717883638975326182984360776822892264075482488816355993857945105687499917646571794940538387367491198604334479180848523540996184956161019132907682815947577417915227226905193502830551377926272954493064302675428301008708505084813668936348198768856484026205295738421159967863450584641720777335799812986646755709412707557340941223244125479411865917583103566584795863488006155712679238104996501308070912029052098343907386838658037839260250400039521112511208532265974860579137350047497860377125062702800196960221050925235837313581809872228711262617569562785081610518494255701064338326337708499637413893347934704513702430715323873433493143250534604368380020920040856405782151164217909173886603786882284035638498001889801895502667977165540429444432614428073168239483928569475746030775658850685220847772648461742141601658756955499627519181467328230643279699587836641853306124160576437837306145041848670023770203253373163326541679364770910750786006140794911890079901144354991666287975595176353480905784024266608118664177237363391113690482791732192380122716910892697312896031115468261696616330535613336739755968626320328060128406860951308202090658967436177103190963193186388030765069271879904956140909948250944950788469157242231716894701553828680292617720903177602464825134159283470682413403693234855382057560741028953216628201603231032598872133420460994559017667336908647282450211412474842110261665777514785125668871313071044024218492430097430226051851206697430476101893513185271655224227868600032510330547038088604224333624345204006831032508491202641957424127677221948873089443475331241104419010621283887978223567612408603903370520241274534159618086026807791544536624916431020500218910326272870790039588077043214150366704785778882268238629346888767051588665885508085302123720028731779390321731189493086990837033372730741260972037819421901803675167968520637948697776154109306848981864441507730646309910832503971756993518909941955575509966723017074388758094447863217549983503414832545466248082930076148492331767431978229056758241188498273392324283928568893720046990213136053073921124394321929119012520911400871954734592152032290146784905592914045929235482888228125414172087278185679122020532105243718807979117616357760154527837757268429227357213588399267650065318471481275907867921036515103114097678023520050635832648791685336666188734247014282819561660945637007683969578961449543830066839167315987491298561957418014077652838246161099613123920268948051498938536394735196861889162236028895412760358696782843604133689721019007869014799930274846636161877906668423839539929900053613032794432369710649393040570411253030397555435834500432449331411942970976533854269684161943537553405849149060305752415296234196520911590534264195123168215654443927636679681625106292610471708637505289379279726624054475781887023382265537917838278149793405399047577503522049756737729659517171144930695479374898610992656329662846558079371485058919831699903667596165498895275321587889682266297836623451906696711904974099028543548573603151154780828214200329302310067441903195523191110541133231149737098000500197308195744793311122372270535947942167277964406457097345860139555759263357801686215392355174834715601567338396915730999134892416676216733935589091137847364757849489625138416396026074340286536715998019901104915783363254861252960028636638085625108720195344193225826599744369947386892469706580505096115494980125336630222100348579328775278019019360616808258362347961217684662763507946820598694743781770931080740774143797364019428381282321042588692244970907279466924971298291316152804199405467017265424265657888202166636340950478195885838000369934337417571145102476881543341603186935865681441767917721721680902162869173259836310196790420532106507126680877663698557396696054214990332921870883960726184509928476181875400915921256897472308557683642926250360483153290118389667799984128030231819243442275640981195517891579824397855395444288581562796290877359540396549905664841356131532014363786635478121604884737230807689214049123228972920482873587559512465438466840388491762214782814993277093749649524257292992466376326547264081050314667818582652315988730168903263072730260258428672162238278183668110541671497008565123276660262163190304390047172250104596213842586546098005219942699222559659342756663089163536398110086998919121445667346262332682250239284749409366095225083302557805234073512949336679384633506958716881485778686190281404517464527804612758090435191211750675030266968336725011555012960259532980888589972770866916808133657105863246130755431376293354862738727957693654614741977639228537916183718572808246647604038590869130092324074378372673572904289791293462737975259433756364725741893005302424730136480014403176696380226337689038394698694448741476351563924227153727611510197960675097644964741734200841053880856203924368596681985580945127636926283396639323829900318189967233587126365798840846823393726934384403211808573652456455033136808763920816675891861369931971737324437424606560604801853954985588043960120082039524903242796391084718595099249328307148288438342675312158271024340470690446034743784750228969905194378498077130830663011167414018083542243987737451357282933772238731341443779175277883450115995558098843451028312062704922249922508718844593237966462743961999579245593259421986045607346934591924876176817533376360411540995124931270866743197363190763369585419821524217990297200482915296693266780405674337625502908815745226071188870010638080592631466158703068869856665059980586324744322340608505033933520966280730203512349657644983751674126091396965840940092060873890773265640361579071409937729624628309048717599810126676527451935914628714920747841926150534149504797759364316541530447694151646226981371472058859688502666604566462285573429550759492371413359209178035487491009533734867728080352314186542105195126051797946205846451821818699187706467711135668865679805699040987584642791986594592749158938906412805421822421191601284148168158649038303059351684826976590994778152152045930578975974872564552387572030671556011143881419459390475515642570781650925028277127545839186887256041436491453756755852479992276266066309759808063165851211443884252558546561867002210956414684669733229378444194228828907663251064044648799057962492589686048235041026649406120549734780203138477048409690746121057673410170785784818249407493015195454062858276075414397288873380212694291711226711295756667606567121778620180472921030410929615636071532355654816752599639356036286620430475098928635029050435554615499332979557704750199892913577500133761460299230630250080226639907904353556044939453863525900868341580130195978915468351865094754321720488321435116697588602432632490260284258269081094605777360391697229779561849663341045384456460258791771541899704425835821537582265758889595129367766007621977207126554613581014654526630072178015335765160435270809677384213959088066198592718706392329611379040303555512585283696655225442109919564637347361109668124189171808816246827722972403320631172756121118100579170919415965343661138101773524671171263545900984481518292566901015458829010930058667938689346053230204709279811058467142063465909281167129566493123700896473837811703526439265406651139075085254995539025596705160344137186003209458045613238154971391934946008032977219704113439144377943903237673380930768543227011519557536366227449065309879835889451723572248993804535321521042252389596548796521124250552747066808018953887764406060711154328667587015146161978754898554660551399780796281626965153160467798879247893238897520882957779869690076252988724372039848903416463211792216612223966192822919784644453004611151563772660292410108083698640412535554273148684155055232996888512295785626236446282602464378565104646120817722574329226558153015371522151185899175611702677314766697635982118433210361694829797243023415548051697355274557156657228462348577015840619429759387467219292110257329494843957072674840717928267599502628609644449874815304974014797004032659737759976947042446560619493529752515173242395932864681038350744551541786839822322700876960733093772375117033558480668717318109625954434245958665576882154364884865750323875232934183296282376597961165942470560162154850697268859287096661314900642145772141077147647155605790025150466617687112221775732225325325332038009477119344542263564650077452325172606859279839252051278162096473784258419949091715106287944407879952597828332863756005342314239434766232152474860068222673931728965378307971526861453150189766999247804649766645750543899611571552697263554514669223484196757222028513608991177541399903505455598083303056500385738358373398489968107107872698066626006625946985344303707743146656892420711648609943617893748418760805026710655783123923835421499903547966407113584802637299833044006071731963725061839316067517103326668902347792537626582314968907561419799865660289055064587678206373078993106943181188307041057850756144410721825134026136868657906189585885709689509099760746938135696781681072845604745378966708753142634635936157832131175431122966311819161490087074968278885040464290161606401579504027778220048046224455030877701481535060191635367918400638307312987927858989814398694609843452464748081853833065783002422295466022668921623245152112126168564996137114593944416771535965047296474284044843278741711041260072622163982049666730859770215289023449530736033878032735145650469080377398818113791935362652890163836176851862410602661164806740251079737604844753833207000866611028803035159785551092917987696324833355090786640978816812188353139714752270118053341242545022252936763265354705734882546443032674742620342804873012890318102004381841184381534582590576181481070605108731038061485728411331215480974667854301796378425724463185440001347497460004842917236530879088903391240553042715831287912908604425806259650774465784650859319206632127251206939220137147775175366343394653623877581747309682089683192240741128652776016240655634545739539025354211722009064729827185886464633653221892799054325495236422506940349821849985909485441804172374936160981026606639268033835543870762713311516997476655501089809963318916514359194702568943367888582468903516559511113961321105795797721396940077545448711604879347257107021105182455806124843199438136699946949849400388896079133276578091830244530473574694806169629694807985639595991823650884500395152932733495460373955548627677247793878542096675339427678092352764541761487886010007847916394847512971605717977472664293157426424427162629776460117339093274676275147865967010773199267398308873686857423463046760988972545113624640931621720092893515199593032550371793150258682275928492107918875831297109804437272700432550835187553261698298095869026295877371969670906666662307874729970806895136849328121632173899265030157285490671269438175809516112212739367784142228505861537804528107043449256753398786826356716268367045577246324323522762686928313284636574198094810119278024296926005273411265306135247729886394900150664683207753723818405730882732240292576832332815567221397336926513463079491807380574348883856850335156032031791857265105252585604089684277934699216117031904852874143987296830919233078480158051986676219204059251396117883238044656129668722171617829714421941419971662780791665733304634764155381819462270895575690215518209133686525357773134693351893964913557936313571471438143929181011463761515081609196396160013600953954466629061518804262448555598873294954293003386185163024274495668193730789256759863185506640435574250405104126597626812111149586371345169344347861155467612902799179310899625435824251327200054298244446052400630423095645859852117834451064407353652335594062505216205816627518960102427496990988867726686841080069240929540483601611932667761229011063354311152251431245581571361968320714591028959069458114670783113994076569632776779738761746249406797073827264317581869275944671038837106346145033254914740969265222060455992581973350370963244468743971576886374753057415608592754127926981167915099094598501254269443105432619213102589505756392461757005752968124118153546337790185152985333519636166275918569044563621644548516300734031560213487332866805147213751039769492436480456870675322376047271591195035503135571177004500499745887146537716268251430797807171029482465067116558864916342276711753069525955749915593312841030318281679799556376209642572839299762884095761047224124206517262683694460079407863587469219837902036427726956822519801685978224280800385600088617030438654147495848625665293381457202183510161933320070519783320163631337776356884580058763628452126311185799690127105342783714121845147056391903285327645505334015645343211196579840757460227914046947607507044440681195914727655759178864340608654212237163905719071812354248096741399359955058743784910419862194744470812310466824854889313306593253430554612134236165959498740751579391170884471550183610589759822177437749690614596391591209328972907460240412663623498928227934756625840260522465760286739898069681134040899979791536419618789148077718524920468164426704152597861229955002045406037637016440132725021520967560488117563711329087094608510274095531078828635897890566341165273518655592043552380830224389737419059226561110071417385508001174106490863370911607785104036346685502841981846344290706038805847913792149222607938675600966666066596523883449949538553868893117295710102284093329753225978409020881394180507692691873792021754789559680109960655006017964933047020782318530583746472782624940573782426725118320945438442516626980690215071029019752257433976978354088941705166114551137794187942470735888581018602350572082070680896376257604058960741186761057821175887356693143245789631403301183256471325407319143779306045719081243280673569173345319409423741200141913190263031615700062838801822261249361972067909057361955174550922912794261519328657325646015651010356633518580440169493247171512868857712577061557247840087273221994806221570405527671762303452632564159872104183492480964110997472043597228286310218288413055556713576111140644737828948961899725366537140039327721228978447439781098021667907496207922652385785750802335361081766541772346774804013253772645401510184412883473445308576392098593142917168089170913954149865637286761854616141561138405689161841992391222329357085925712891338072390299041481384281772957960606498502020477096146998118706987391139526510014555023961969769137328134388668470406793370482594317914274356724577065595150046798323645203968046707152904397849547879594838305476975334707644371864414491783605014091435028748888405297252305136902636569687833847279276414445903049070788543557939757169466605460500930995348928935832893904233829865030065176519086854942656297008310152782788909229755354169186040349042514000653716105471148294267670527623733112726993361461813851507403071363327340303684157369374838676572320056455728797206454622940143766096934727419147146468373749760807812090951993441721566191313702437975713307129867697932201487729594323526189684065330214698466138965810454699783209787852189976189041973201019676185247975298305749926556845304298111339197461423593088014639031152090347667309597958032874271687431709131422131483663496826328259622905237013883483629722221184476406794204825555097987874809897081778733365321793105489672494583629625551971665223072203249675822611185127555415250431665263523829113503217821322369712921818767405153306401210178002237586349647284005932369099199216696038694361845515118847980563029040002962350910492716108845044649664758732329594878884287407655167671709079899443118266503782916576918870544308290307747958701788094101651668778027161569828480730456068538864028387990449376265182828602018275294538735745150368690978956953266229352480364546226207712257332656276878195259520025635885247646013918659044566088875166842141001794804634406842618271064529105052675312383899923179464998945589723158597509036919941706361257051182687189675787970809119651072945889957898216580755743057331855828782155151823796829445674398844681178686284136705930487639328967112214169286514994679980331437322072350473150482488710462578816740523575194931876489656344265013142703099020827614459076655532718209695652136475790944352892302502963649166862709864577409294322738971587366579948775107608160894665731890375945102897910140953497085743567069809744414573409441294309134048028608611814215976023992294538344507002730280517635771438248750671928358884681656217668978086027096971305364558099179855968160368565665078334121734941506805536242860514781298036047361518616847601854236605411671191936825720254693970107745274354920251179890036041198307628198662753657987371746139709003263202593853254287303825988010835283996052678210384855128722931507435016192992576881184838748876430862430352271491886814131470314795261002796730455872550906006731422409484069573283786475318851192028451647458067193223117358666716784186334894856255631335461127601379382487597203167801749588033993351050371447249779430752908326705176393762292471104398642827137763103463778972048800250856553763080033669525301498598960362020035484035608784269270000994825262398891707792742066370482484529873885549910900460861222079608701800538926520389526168631020008410728790288278791615211825365429725497947023652006219790065441502011069052599268485091942757571303365222960447395971857503268832600920588881809712662314953841272032374792769382544331628644062722340576564137227675221791743128988812432183149972101635498119513051246078696646221389370229901546996257090546104693535072996773649720439813864666742765085515452436938081176868388840367998257015803692030453625756400561791311177873587309887878949686433337875032139837617453768493005536617811032234565487637515105650565766524944741635250924131336056320402880313311510858379931152576345032427301073270082454027571656413982669841041916453239755303063862743155291025768940639672301396740114186117608541348866803464273299876524841884800743601677823939090501392464674894942947074079706066610844161645443177236126036072464303889710096891093283601698567499989786278263484278695279997699289236343265921494913994839014587476013050467322986275411037479828793175710713260194541734922755430948374594043203446639322924896072745474231677615911184350689194543696503780381131841426847262226637575702974049758426679075006893962329366933508498543530557791009405867911357339724902599535288492069660571628073191582771417290705762349558345578493419995092465634348999398970491870012779665511567774692655620193537952523788420817170992936864752704353505701700405639817569642658109778204441780496009502575872195500094551948331929796385669094280951828339896274720857803628075734019402816740458583156184612889495599849682884302577929520800286851159713568112201321272063054263985067890401014973445593854127081657737362997142002420672412820595255212679514956327146209523505288748901916296343426168018938715896341435921306462099875571586387145776831621212361666776883326758516339626755834875742304091329504155484609365334811130330353181026689907176442706873450642286442065128982570260455873947990689662136351282912555383387952566733100370591950999001391606103583872903516927233198631485361715781801525853166238052148488163859587379711847664208310461173883135054873059228608303229492063437956045136230213698942085505690307572708660557204659093762997843853366630782932225256608193336711062182844209357834411185655050334646876263921517839344004914332975334880123001417605301904943134692454864416678600209271366849163414573699847878061658974124829619503467454661128979872520548942884987135887890410161387345841534736050752361557870074670579063657636709950441006467511632238459327266359671387483212510792073967949501004493092382468397557348726627699933768283432026728378720003643023672343588797868510438263288744000826873190170282356924394951654859420184798126564968637965240875450999816046659448244861362522119909686481598781963597523081075834202493068163592022907890332330958638932668818933882819682536602822386987800167503941918359573965481771956344945627598987215446608457301237550302776129674745109091052886849184250074606850914233098454209637660700950106187977336389338886402524061129644567973437884494367578721272307962653955657153624929807643359158924897080700035897087377367542159421533858204018779579750958100168900141188338580074660554348675112541972381162595303834151213312432444162895262927597153512212072654033658005415254371243357158307738543255669963042213912778212772030170290617098822493179368398046985157619283368566112379192864362374567199591214048697488645570791897487121913895655899828834073185330864341758599375400554200643563460991320459867849596602509366791436114156290952746650130953846461749601931290623705271334985789064270688868293884596202375389863341592973340724668720776951090401115512206653737287690371668592068441678531736789257512797227592563622073221108517150205712069515449229630785060515965901114860300445465768120176210323565381293241775289307454918702723175562024748993673745585367684760871894288225820343640851390695332824815721371153472783427605607465043049218516742153025522110764252416383911417818772539982520375959842118889203616978455672393288342354690639281001600096791687816964386506736453170880723130722362051794473499289636416420376299918426727126131865418789507281459596727597658634336572668491640611991385809343272696596549039098297498036492439035967064696788783691345069397474710900526709246727810983940888818962635674270134347788789155499343122905459487511838662275992354671244049051071930355964694320338410006157094574721538512957052346920642040465750607855907734360890143450550649884286300422037462465169866474726550055817497276355386719009204077295116665012483306584318637546235276139125759042199001374101199734150444471745009995748166585570744172181371648357768371086457300721952337792736055758736854365357914710450756680628195199844101795879811048886430763436194002471035224987187473348174500267406912183178547855114812016378629184200336775093165462453638846928830155058208659212726505392577797379697268433937731895156257692617240798816230910396783127514667194852244650644973238530105680076548197978019444495954086154734805832093311254631960739282849204966483144449285058959286625182862985838150381628096047071770868366763463075324428780266322001740039465485609806295488480494683517899148638304955194532430672945614251469527523940759583251040102918852067816964180104546810093259912373515735190466327318764002215274784554574509432974319715836547254664852948205627364188217380401745541518635123064896286965725728363306170047865491455303852952120984929010461952447182816368035669115698639987083822238646123973860287600823593105957559945465557918728631409759912525208656231549860302186157195415131356141262561193255022442765503595814311631328587015573674113467789272453141722823519896828222463125005832221180390625081039929967125104057278636658884710938478121705927997951898220037950017568069179492053817567684467237365014986195271533828592047809797779694687853383912246766845212525051628930238924472406418634378727806849219420304077082088709160913180735151336489797486353292383952887967721510506109748085358464910152653505822667437178783329472171143741258328931531402970750230968708350703160607493709066984600278753565272752320080652241778408091800982279787373082009747993369545259966470745391317410996525892669703542739599028893624591889270971034455756481914931643003740123837406726549680896812127254143875474883229090405174999657364061200117105109757985632758348966229347657095502876990349189834736057844433007328126492906234137729369268230563344671477183377339253908887446148894261336017845614413506336413769621452244028269357915484863946081189714333227992596536648219522850036623715538272631943549321811965566031716601496061138703017972294922222728813358254205608402293886634238638557929848292670353005320201312730083563075617826587901885231355516821434086363945584326424915890495203835900572277066657105586136053865833384377766369884713187572974570516130563229824836003042566016409633958039415478487126639149143314354584106878027879522517894979996840294071141680317729940222168036826120005822219201825585342818312800553711061748559831450489708433767629008863922008349421208835014896730018650429290185344989607414426183807991808188361315733413490642822641855144232333709136509727552527040678038327550990771156201803495564769175684340926548608713826632764298231859240352000765897238711064169466046129523140359686872521795047302886242049698063466912599488109407835127645955027590776981201195751572821419397124877825482163880518990082004089318085593877321762528089803550634248600257980869953003667636790010204488344348044723869361259932731610452927175590700592349080601080879622184591606294392374770681907815622658099810185906984071235071873239407281041990806536270837261317770880110775066258279046532562522150230940643502862042397811771961366399341664568531495001826086255547762573396870593515585925870271179547850171529816879316247805973548173727813189619306105271602253691996777460754955718703530004590228080324594536072652497658673645604819040029847895587149009499960376533791684280524026335187723055434211540616972121539660542825636677521279600626023041865725371134242363598302309696701988258588918613665306892836337876021720567375664322856949911767874311947670310601333370276632170191685524923548790208359269778426792725109069514810835273369050015734869951137775584831231562322997745153105428922738495360779624069459039504203282458948215122805465256892386922860467881314344627638200890695106578153208492884129937750009745535517266566562639749592748844108959846309386619829236405133503067703170728726203607375822148295988264515744542293504746318224631246379624341246060435638337451432351493213495161070995195007673598304811517714782912692947207452801461769304956135672106413161324364448564475894159248371562952215407394957952225257656938535449744057593628357898315062473091329058589756253025498215337482990252070401059233545040391543457065866903576145061698233951886593621487561775959476561836455398542712845472085681527284905537646964465076735257602902114058885038704212250648834753776786579261042263787417898260574151569337182805539648645308990624161410041910045232135099097359603433469733342192789010425582402580212654130959999846606717866332236975836386876985145594654943678916064109983997479754732540591596860868788124746539601308163452565796003410898388300565301846039452979095436274001708675639680152599037467194472964331920151025307979050848716531030613220202289574083914172684939660275322888567707590528956438898186287568453895221901760993585598256562408125869959581082879570413750338746259582895530367963794538682412379800337193717374292844279187025358902927554418953158751190546369594255531780758981980355544180287235381168032804232978715306494980291684608865986780113796819686785087056163914447279553617706416976806272584362310696783530528925260376211616375585497550039941684566784684632344427190572017532488643790110706371719978268580156676455928449983075147817298522872292295310574353740747388245397885197467703823794082056792313740499301079232461572653708196837244818765948553037609887398472423623226657419715323148110114618610168486045969838377428138975048948891642010272691360439475072546052668863675719951219808777879484648736161701927943094642535295745310661737877687604247619845783283861962900643623914947639088239469472470754227642655125832882961746989232309386291918740556538673264594723076290527828259139943138615316115118387553539731489089709769844192273834129361167275293680110865071234564193358156958152470190319813619939643166069192154874721069052037077955552559450760220888485842541174996270792499355547411809896248557581768031655289348929802143982305954639743324651653744848729910029853160165381106212430696882339775026027807927072626581302004916330523550894766366671305008011385845792946079017381487276042623350999351530534208630899146546781729050894426372311994170236478353847049697231841544919198125318622356635595306549911235965714515258415492936409762424037707214332579114598655273500223668952963133142775449809457292880026285455561021123186116891484238784146103824213086669107497463023798684478577875055242599226514833189785808383152935462198720179907237365008297744103966595406140870001687492634373846788348977559611655998043446291823570115168498987771030063146197456058420129623084685667094244060458560904986120193709480116946642559895529163431618084318394803123228187134175103992842835578386548908598937305986632018074637604697433888657249834579025161062556205901241540123247797686991927132741087703896870640107874655899192597106863132029352210298867121880516006169996607760378978041343456344256858857309995993251595930631133930494202834660280999543456628902140828667683149570592101818589988040851640337325251960245301342361644502438195045900924090001137694011486370815852297594364228705862539251788635506542548702516545070479079421357563964373649254918321753268880108881366617302535840642763644091309264530933286590036001753070581221994841841983742558281916149203319549309018036627245736424593951549659949267037433324748571842483786670194204856820584752018747804218040445078172494916927722588071466117413447403577372121709808016671010903934610802189923830650895558138708143414134556908910297837253048575942112543013037878551057814556133597694551814152049988723736240107394323589118870734354972917826141023924995404825134122355429424802656497608477194670869002886214414966506562062314541646047993148608849642185096026665378494030676517572719373407849748747984049035835679357083606748420427011159979151173316976778079657314714841279284138625612813305560364318109834585288181114653192841502377376748881501919671391403450779047935780933123590320339541272631197314511930306856308755040860062156863269911200851988101287622374169526080177753617588280910573021982998690821196447318500339035739194823950504913409354803282407698332015561933721226685111706051757200357273618808701402272067588744591418356426217931277474794024856057739524186418387009428218408497532449829155865882648855455845526941932990285157401491136933349575480248337714763032471089321738613274450832884947796774570003943189814150383011671713231809300761355760758557490963075266505952849598934884729474612639329473652229530225553329477273992398027354632548023593285358098117765680742114938470417621758252616448553165427963954976251956686568226462757258638999456030970174814273348416843309939814830375208310987739031312353820338410541750071466189995114333516016781033597283879231184265807293803969399070142682788529911507265119098481476515646424416895639984725823591043393223584305542417181482460788927862575608391649948318883871443394418563272194889750457980309834782370052056658249695170331871376753699850992311848155611175685400184188360437036483296179006107715995557904959870955064885583068765615368427163961907529184247570951006231381041819224274551172166049623707677281859673655533743906302663720755165629612898789391250053745537228299778507160624011649221766799736686175727014765352596925542444584326017489998916961366457890142804980259182644264899285285731637117100654555134196593536999591078052406608428214945527854848141658158455134353480606379971412414530620044999171144419112973127656515680505442507412067056894989272168463339879676190636795298241277226070700622569672948288090355426729330559025194379760552041940368363273963465091427259858583477764691081301730148268517382400831314239264695447632253768835057352467068257417839413720715522879579989427268062490823392178077677246511858179394280119121168013706616629494108901073881353563479940900362221491708810755651610802349282007853728635264431853667618652696079159730696580392569770555494324385153873845166637087703057131197248813531223982127589624272664393935385162048313701869119472939607708436849772394254172020035965597226022499838057412298678061843427817436294305234409412313776843188700408384922115990260563492537879401248499033486426146383399098539716492864024414315248628452175054711083476498606969015531606878143023161579792563611721815794604512362058186230547930591400655367089414615861737940712030773379295236819748918378175105709227606822533917296694754672415986796404770783599880372996143940648076354567582452756433739358375133507350013221555428719313222834387977566926718032050537458247758765246566444624596644945219652648270881985221083578754398828063152101466168182290387432285049565657862490521555322148708147105919512916571403392306003677070539363367057747704798052902181780881711471844142623898807017814045444919876703508008013362568673649139732933340744448178659478551996957978384651486039693863610701989723001747517878472900214696267705972406629834845689939266382808642715554069257661325465610628323832420755803945135932495216998718304999637918596685152019538421296096083731850753943544069176139620424414197807973276938981778833928055061100025364492288701297723302994701890804761677144247558189703455165792974330848719790992541302136285678356152852291914144456312277762596267504851832935529700973065176476611646739074258747953468448577377445417432520159153735528127402556715114844111917455377357669791147718828730080051448361324434100620344745780278147963482724364705524103375310802959212648609205331945898697062124226386919264165992278071373937059545302110885465052121499400067783667332572825767501629462652368350514634672461844113104041942355946669254413974641820995127672915104052751318024583485629566794121971031591592142126739104909411323855630188460059179858332014341627058085500677272948100833978953082691184559912851200268097374214892486248831793427186201691578146264327785324051974319716800961619082421094876283213718806620815304122612602662866013592926326461560343255780536199588186402350084524580277238079736346463007641084524970438401728357260066236656575430800699882194330395348771622628403396209075453100362233478537559263468723305935180186512698050860206970654606511623949029082455845563104423999855450783479183528187513782657510241545353261304423378928102776429034213545288833142959459732562883264217638971288097253182114742233898099062054294374069003711242296190916385405035791759731550972347673698688405963410183322403561503270403654596914124739883346810784589460050989457894947128311798927828315659570955086408459457191449300270223078699289644261019998279057836689998413369509153715173580313730291975461333502887686533930429678388023183590368879098608148433784602010681913141888811824064138376980169554606651209610570682889585029193725053559961270437908482693377202414601008009002269209983436953295829600919976521591306073123598339225112920409633758306523553466339392217468132835594707316191940015523817089225893973208291628955512054963955080947855648549464597343086564111466815031217380473296294402035073267666194534841007473433898499654946846708608975780106686765864212124867936750446866841204721082013616002223334269935405582411520594139760184115653858141568490540151941832233993853351517417620015469377588641092040198084613996610577388317572495846490789679500564042282864357182580956008124432686359637181291459640240489758232874287079462030879138010174431989777984800501889384267557315513947789885382236994488903502401688456296034874567438054516476334894926524098765834956425094267756138029916262298563878206844527084981088664170193239905804522101058447128599970557503975145525586801793614524533322760349608768875805580833109111878273188981603311857869523832545462050580317313672226896720789243939029141228252916244565688365174975437750329964651951182400495410853058361871487584331336670162563143777328206754453839842349759685459984819301489970195339822126114416504418062987808518031611524098641033557191515535714292882172664111393075365285233025409999354457349622019232873794380588358617694839939324117630404128529142859869939996576597908140826422338319584397350438461260296930230863513039642883783571976502601263269515979518216234961181760745306019350019524422374011655778956298987364747375449078203514311567211742192489994522313629728482683097735101238563815564332326672066666898046601313583053975986436674447607203594145795960046177325100302084834834223245819411674591184967109623284337017250145789210473680742223679599518239124984265295915003212256858453800099866251835506274677009262909590666740112300654038315175461060050349575914885599006009318991049668959355049417511214995865308682215045191166242481954089111684057470549509275592256922321437480647840713068697321395948331019355600350213484521868720871606411689474956660740453192685867188407934307019487251557090321711365816245448375165520697151347073813353463794872464176644674998558711751562044678455013240231086895478175193329862360765711967888435899566758285804248162546276675955070442792384768210532666471686017860545943220964189174893608295567441361375553483220403216098531959172167887576488849339617560608672059620620335528099766554155309384059609344184395865415554701441391782724962946217073157018691335806742686804438965512484308084133489117821004886097005246056282358631863838023407874724056675995189216094560930809680102914286006287036569256094769387327348538056307394962299272509438195434685761169300449487031474584737626106345844450200525230182755672910346467135584593913502421124051387256109862392189541054408716865890089349590169328306002137163921893655009611790560136146376557780928798389930481845885097950655158684839827785234893131573796926223941613530860238779549896526865576083425850879826565575569483880443822463765850279663750539857347725461065116796056490255791613882331418144592340744547128056239031303781790745565253443546246080180080138618452205215290011182764352178989595512289488670307435647999105225149415525483981774004819728115354278558263018313408650693438345120826863968440834918052098424523087946035259278673783669140495954200851224276701039903959346157200278624524299906392185850121272398928935343877207657391383144721342463439742426779386781971967991466637964940828152802127630884572074728418704107017328879424120020254233670685720406001768326547948155330758442794924845444770346449527870597991103486156262532693831205320282526086984639017793813715331437009185472098678615266975267569903368174692426637017732872052756632050094485719346725467231992580963411359817015152035949901976296896302246324119237722556301712735770807263647477449638966682421297075980747459475073975055493512653221437527859951371226086798791982204524775580896957700861168632283868667300192796918684091204272115866906966831619383349604495481358866836913022176447265728148814300719256954599381868891488376483100439759134523546407485538729324213954245179141644766752785692369348185295118029624868414911134470792341030255315462329522369910188530331305859504762051589077292620651097016906770591272322631731331766906945350466976414399585664020215990054820980499609217939053916510409786213503643098175375733527024879820674492878530243359100124633098029997797473350267553938685649694932471218165481081261968685314875558201072198695922651523587348020613144025958511800438523405727444273732680306095153588239411811891486417305454285854646517249369570706276532682891551634362101148838369327938642303415030852030773253879621141757715900757932125895200311429575485580779013868467469659272740671137375254708448632181569686550527907062488988505061356060449315730438140062494114037159452004497054441824979562123886117066451620476676033860798427309161169168301674443488385535421733754275601875752274387507604074782742728541532641501125956568085527068292319341390649836057702339241894949063012243071356741398694540045437764547383516731372196048057455252763368191884626998948898279351313521340862544669778834928533053439297386173414302047254758212671668563375697986976496641580724946258076382367448798449937348431246148480706212122013164374312817189851833379299666928444568942447534129237242116135383969014511144987083907485750515954769219872022546538878521020025742025187041343316963914783255888958521106450374407669116967442300380430583128962731287764348776559790205529643918090652136055833925384930710317194845551744165118575930588654645326607583725608115867303644928004629910632960009769637677510944923178241862625095667403203078086574498416589207889758284816227705402368721826010495050436475122144346784701850234484818066913727592479408138208620362449338908198931911627551136100905581258591850497033877301682895730444857622351116370622289929710074089315238020892820163148130769642159799595238730774426282541244980907204141996807112480690957910695488321806483865175350770074108709966535055178709343646787484938157904481836282390225990078622059897130867113000222961208320537048025575573748078709573403568206314442773410471524566473845777124435257547163705266424918210319471570721311852545491714127544950892269030705966496376829246197927138379433505024334146543700484816982027685204726116065138239154537065367373100798020956655432724980866867376243738588144154349886982314308845008435977581872753229392668468365855492580001427462707477955153548907645906484901800326746743676796221575604033153064824779762094383677798356943837138746085056600261994198052024400456074655254975819418007470509950339842923079219098048060874140637787572232994486359185769801404579114078331394402180025976063094586893818777025201982169541490912696303959063914618232580413214942002442315477422799974262540186743443188715025107788810233299702521464991922343999938622875397623651082404628553124309255861438845439208973158085568153621424219897840906874205064419450050168760253141135008554583731911040925889311733323589208625007218656272429192712134262773500558565761829414137036482857729405174259051679531194424494134257808895727993767833444770421543280512423287882908194166750587653132651914488511578856540789782280190725755027335905203595064200046694761655820391385747237959935416917329810940566232675805275614273776091715233544362013694284117397792720819684058664301510569444207031882939281101702668903373356233414608911381295248442435383556015028279117115404309186013486010020978679733271352329311218074172698482855208594519041409974459041656246073227781313802068976516716137847478680580410985306695333038040274906328855146450849128137146094854212451159563754480352609552221502119413707094708541195945834503881169810563664124049023494606263228194928381977927918819120667795757488225709930792835928851572244206268727036782086366289741117226098460624247257133879488979335470336125480877621853647046253666000488139247435537590891779693102136487303265899462736655814755566969751212259244678582241558223133814416388732503898337034162396723812660517676734154838797217268320181532973958509587185057881497772600559166193124668998581973356475135591824923985652324169346878693731625972893722884047456252810133121935865852020885981102022542933068135126954420083312781167033175339871040972636253973621880097522764421497906569447160611525304341663277871796129061817917745790144925604076791035247623195602226713132040962053283766262562390060563879499235443773260993232591829875213386205606527697330071692746944428984120845786308057216018642506861046239267581857350342740612210784856471900506530959210388198262427063876872526708315231026685805227818702834189498313897572779274756108343532195738875805223045337735954502308731303978824102989897813666123485255778222354555314714896657838467864602009794664175181611119421215769707507470309228037478846577549085659091572141167487698263969761976603295092862825119153645017092396873074229016813571625176955462067855252607032999181500014262329179721196015358233530809295375548771481625646176152116246212501873312366044516159694806028850261414109769662576224620024538305333061827044413812291350943966957785736515572681558934502259824736756666035166222204242600024195304175336823939099477530309542854853685875305852928650808213532913535945007935198836035802379621933752118302079501965155810331976060437443275021314173221827923690224399912348755927342501713494649331045671501660465253615724748343453393107733776472265568899739295636762869632125624218669578109300810867134222112203697292962630590835099361791286498510982432450618778736275341662026458460354178009196582812948405205366371354518299621055148770044059207327083877704749582717984603636903943603361928688140125647827342449057903578541670520356899491937025968845341419726163062128751237396530041740167582483359870952142507651872650587111151375858272604652217752456586819209363197327532136588115163394854211213982153912258833005556938825669947200522020254447706892039746143716188428025810813192878511431626983117461755214933303976355384891131651012346780109911881068827853723122014848970088976640165822798129797739109055996972484988174661211170527155167743988124819524250664289244986842274538726234146956796763284831183530811054430792680443094279830900464511164623480119350703440206093937186002250871376168460939201746231859488555493575503423656712000722399631547017767825874760176455718231990545601603069430843711470237472304637443132203854882965290511602601704455136893674194035792430770139331573728872824025075193204596488040975026780762744655916478346403275642466025153687157551658595081698711805253141521223552077864337084664461574989925409309462390446783948389814058689232866748749139015403402113651433087921919980043369943627642175774308082261643064012000928627229328477340188771388998032943016476953768683192497525621411837600326369862234421063442437090705928498977267325201274881314529663785566785372093547952602133885049940538357986093737306211803808568361523326071645427180305499036539596377537908877347131329244715344180498090590116038175286363540560552823094588599143257935730814291482681564642730025231724345113012045444421283193613602087617391112014545505996256120391825433470390745602795887008133983203634562731594996997632064497038550348475448575970453409499357092671306712107326027221164129645196610811094729267438403951428475538959277168703129684541109981501700220645486094101776408865448400660733660190655147411030616181674549680848143249739671051332232053347125330808788955908099221980916881991333544653069311008576907057727960080458218984142305927577954850118129415481150569777232104368594189281165272468995384260825881376624884721619680016415356837613242767591153577732859116221849582055778472833575331686807532387481100307173147116566405541223738931083538168465737685784742405865367903845906342134553406879958238116421703683288869109740850674115979190601020518033172680063940226533975035272222835123971448813974298783308121809718132324581755196252449468344097806329288650700051890357354363216702547417688534808159511270311542640646165469493339412820267736604138642261494655087019071884773928688148262520747218957756022720740237184010240615410309564929537691153919000881899567058261975783122333942468781040320964597234321772138663246903662577850328051683001902902059864488336734772670054706625027021991561051786540454420844530075652381926853130549520211695066182866111249403294590438097624740769676904790284337826420706370811230102585793104890334909552607363484808691997082730306992507718200705646321131419210468940526191746959428433717069449955586758243497700616368130188142046170429575045252854466486940114360324421557824890326718124832911064256828067273333736828451016834866553549007494751939970898967811681388084942534986058742944647387903999169536377322896272560646288948600276505403338972971911404402839803228339775509416262912851322821997918223102795467467448100301131699881518412476729338307556106402509747999603506353626583775418740623428086294639821437110802343078575673440170355663931856907845225447135722069735491755574935258181462143562871435482207574401463160084175461385028513919466123649155668777621446420605078568555579499778775253508860477841053933230022937903038821873613517564004997615811057433621505950229219510532324586118654505368235543624769471569921522862923321058698002149181865876491931218207206538502264456573499955673548906368251062665044700559894269794908446577468949317109207933290821277611349915349041149670876079240736616993076892893860841912110564414576588906944039449057707737556772894899355931292584457664615575457905020488397231959169433567847124900971472372965181825079148267329700341795935977812122265392397497313621572821502899224434054094487449678502513626119149870161576161100642893634782077713320499410015184258171983345582181623414452873554451583958739225380546546165137028210191333913044715439988896014038767895239743183756480441294109235291752033739721462810655590880749317347987837023521374109930543226988187098811350530069451480749677092859305520139387136758447957672120410919472949169567399090489620554933880557464148440339416382639160990971298365999096194076550621362345111463749386569998633282539054787242737207764985326822360245707499579940212263885184788869878319621428683437635093807718859171695415595289559264796387393660995600282059844832137635169785067556541228416010613640018213347055283136477769761424851354114151550123197584419479921453350901601100169264459359581397327928972051702253840158098755886284182012073656572322990902259071705154572564682590775102626091911712346527353876894503871594770638447866951543100731828134204603670515769331864707488846676162821118809212893562945317662562782751270269283425630897481008528417666660254298628155546123955704839474016035997906423677956260139355358976914599588966157276275213045325537523370644799185329143242359189899715722630080486704933492231082222906952431854800116299359387710990329268513098606842183580371680631401224764464558016213823582143141186736546674647299980059764079877174596202786715372109188989771386989098665951075713722602495915187035599060898551611570176017623453065731106779001338769905324909923450055123578702075812114140623415760585820722134573938651947941425328865428901358099392188290378973941624076743406624607646275060464809478150204164159970769475570199228602634998206441009750696243142572956227929149989476237114054753545272359552527303302738894055387562089616985213200375676086306138353233771585893756447285864620812066760287199912753960798748074041031995361097109272495210807054324697704703511070778622257679632763158287710542489935514661916444089027658935135575917593588204235773039973685738571028317889701685251614389061403553112176520438590447503931488063207801496763315087190562062457973477910193566905199142326731071898012636868399392070696628048970198499290994793133616152992781142288608445363073930370287497363626514388735432786601632261830154578959235915995630066358922783099493281154197401099454176631955276630100951635105342482054592624074787122577619763206059535086170120194933480564789707629810603629976202300335989778032184129862825016195466085533059788015295440138586236804661221607015844071218552439277584147281978171319034929211869846655455649198743278061445290601554834585653072616021071788062931826349686143599171744542991727591767244210722905580866885221342856025870968729986519262887056141432479319593235369864068557941117698399045507975476255176047306380618268813580241800426254603772871500944917125548891838510268201732915276692456810823360360659820803025841335039091782166981169083346030676099244756264085337044450037355584451432329664707356049542642692223151517789434308570864010289544666038478623521706676343905082204291461597418967296402193429911386249636680124968263132832223991418609196671206238508950631860690825234092242129285039852290823390181760325041421664486880821735617713059603388573289073474149336745278995886616187897879592125742841894321477482335541139318177139014333572108808956155022534737652890475638205014214158653372388152888194969826212021866091456663793462854983564431640279592088646694138675914297679525878460087869568600422977631885101273934679066983573905404465974401067645847341089845983695209741089306019784555430230911310029295928069358434871202287995995662710305446336467384611383360184789946154123806513532370183192673742079717670117377369104489440582739172884334862161292385557910199583979749204275501223698718834205767742045448818206067824178176248939882745453585830887059812642424601034499761712687690100869359251075364741790402138256844067526457440262389932644161872121193876737794349753914659667735206663216071797097658664250387805187861768707268192265729209866788212756421521302325472052811777597940504772699469621863522091593611823941494368382561375422047880224136575197172906685849001043898810857362866123714609333958836806115330380367060216364840476398292387137382376123094465687063842856495103160013530827916424995517595886381942724312464078734458422618378734845797607306148851657454123336188190362302825722037675925650078599347367756215136889895343965283704876450235895460352995646036769954324390403266625704714089667616291371883466585441182147620864593380187314156435338512377029201795360198219158424500138568023815079559077302003996567433001380676513871168375967170142820694511955600769745185877614992019781357824787702502038399676495144386032921538610178350836223211899010527202235260798793905521597562029212766997796448571312309272080920084907217986390227493960820501557058166661760236573080804867075999861820134107541660138009431126482707122054473544988303106075175998868726769313226504386698998043208357225894854114868976245688334013476031329080282656303018923565753149699521366437035699846904863854926810260995018659570482542377700843595477906575578870474510331412304672459796814809268247967360929360934617992276655200952604980284958365513252869285777400326372257889394308205614817880820186855743979123094699407651341011042283577949176010172224567017478780867779802408254646930315997874896889650111209126359086149176208618784635609488680990709341357024012444956551134517433167090509524441713908371930206551217021922490843533995395573515272858621492691696686100175632490700206951306399541442329482817508555074597871289667618410905396631457585405120449706315895871581079581470263407358878440014420200090368362971730853986141289957808692598767121726993633504903946985104421808273280627751386212351303603158219498656225831166715881516755918200055778029101249126846586564082320358261638483638974792531987572950875745259327823725439833262044147143059266448659084772432604319955958087641016895037329423175818034281768569978271463983572071934527624649410167134402407134487239218516483044992493695500241453266740387847734502941915008631311372770167970381569243693987825406446235246520367953719642283400675016761338514727318826726441471662326944715907495852546827245441083797501796496976152518234494120811108621062365785087748040761176763720245461003290253500907857258090583616277051894276013049586711913853803149062219233012682224807403718278994917248883449538259395085347459763321463379067125956554110069900886388147686165897928889276292180209754739094328728496481280121248919322544751993598205359260134497864913600602340056036135149763267869055628661249070634961232464367993457044770452603152062454735970246474571689934931390698579125726931362190643473495483171758340336022359431278377670922164950362470479101141138493078659609399758166927787156917913554185234631324761898830801616483177998718844736425481406935462130581726640874288609333715869171175270038336107235676858265900539520525362150249009659896075911887259361511684659291176833413831792385602366949290744956902488917754313765844283120686030289085750336735942551303647438717523375145407992099913545905809458755949777447246285238294153665287089655865460912191569397007380406565307195160017699656565206360636389361321172193430578822131427626182250815995478806082804707024272748669966647296687415423408080765831994537427921727982875692312364805058344881458721662651516892534049583077982121062300406964695851959209613425305520127478727352996098976127867129833835281600887019206445763567432667492120616340294926670830394629073187277576378270417953717197369228405660494358480268295370896035067675358176364957284737684595490420902406261938458917032726526723346013290158758645042044804158964636847593990658402609165168056953309808354061199325782214511526519714027392277865063505280763582189096215624202993843404400214883415289038040450555934800083494563479429349893322225340796048291283321264100881086841180774611805789294357780040283907026869006430741133348111153155030594776713406480788954160385682661906079575323098877514301997009471051801957376583467245580468138316699179429493493954546591365063468665505707099291786269333422998584485473307292050638115180277901702044894506025255364994303419618544672285518636631122316844011010024137902476464300092532000845129676942596570908435824544509958494190864621213532496499825158927734076906235754412446564475093737605462269614823532081591089572644137952299960484725105092060735180159605760413711938595027787602483555010609470115778654155467163338314343564084173263178426914253057350561751116214385018449180570567375457268832964241234657080752901142415078775019042241903767272514663067254781910313369971851388156065997147656935353444444292808381712377014104322508679290301859917898094786011804270031876197926855057346627865737514330005046238979130138921426955506971129761294468019130015003288796646649482444509930167414086646837719642244723312985562795437106641783389138827335037486591009374302237061440347540618307846349557085599548788367893601540158150465622867279695313746946561808302102251933598972907067243046514357649230079711686750241698577143665011222910085451515672165369343263578418017053098309682283173005838522655311673459189643761299764290854701288053834982873562381622092050393193511601278695148419044385907986236521463890144042901590395312474134009812056118639239434165785690021406615017056793538322612427962276868295080728108278563223917222603522139846018898692829417933575849256725162149541288974203313717028032563835501684099748352575797098065512766726304151506291299757174891758503822613989812254750354610445280295115677992590573820606799195841586318768106773189649626975738453860409424442995224348853375651064311573178306838604159013810760877579480562310933848942457698112265098440948117939482027027242771787554396964809997701534820470285463105468277850782272496599232995112791516783436057020520989898451285686610240161108986268261256051479831894395594082148480932986971117912361855624857694062117094914193392636886321299858875802743717435880871372138687613747009506927224752593058097897391406217119330594804864580819920636876959868627399087462432745578889020007878986077992755337694559440990137519931197406256100706025535454595768075491966041273102450268869153216795421660839570139127363515862090462252498346208555861058045548642367961558643744429738344305458214197540397849197213410655976796847306165980728679164406383694253581865403122044485220607649594934481023984213910909916090365597914056184307094897710065303355955286547067297208646804261432373511514688893206683631211556367505425499827159930390858638321034247600790773053920064465418591979221886483518954486854638528020115077621150646211030851957120455950197330787676335739297121280682225095849242329146754795156084894475048197832589559797252132348136636031978274576590133810869552917245160252173049527176933001073493455482658718888332961859978177677988874280311049840086658100408540911555584076866064691155249818029658932707389472615549419547581942285326491669427677607046457531891788886168256703278037925001591255663965919322075807533265641357170097564422566909051031838511083637672312518005501520743009070064230715183851237824534350891836140824581201213963412049720044197580187125734834711249307299056467483996175690734788608997029899302382413435627853026621420573447504033715426148644308285606102694438385455131594688573561964395850348205714066397898265695459092205479674849039542193936169408068946167373596241139246878442888842342266671049468134842084091844429287208536324280240535994027247080956284271424879132588276686775005753125053328717061825228762270403796618051412528675215573827161534654788192514078415699565312264560848251838907587701190719169678144434386569083759653157710042842646785049205595103886851127106214463423232438534155076590794987451918862784800947808000544403707774794743441670466418085918944703027086754660422294528437854011659963697936049435583967542369471638659454497111603826934834607613438791673856680807941853296793389679622897531079242206831942672397642494641452571972225785750539661345425093396455652438096919585862596525511583740095982542082192003471149214460531699207559560581536324940000270023697941101397257155987841109810810244533630949775859847717370703156468803786243589805017482182935764716700132165609634524202366053261148544838899272450465298695041579843818301404265914653219704910307147663173406997884241897105805886134589056900337770399330955126247503325116470449481489899843689470277454496180235286738363741540151040432128522697217055243029262788564868700808102792212233795522128180630810346115149250415311708275204603578724219367468459550202596605457141759602614767546958463622196731343796048854653560741351136121793535741943872101520268481762206680291277583867576225775712044953164162390854842903228034131304684115253607426462142672565509191231110484867679766584535417785794058107206206239475779479017479858544300829979678634553082172844914711237236214422413294075982068830500955532488427237434344488673305402029054250917317179345955739509928594388118308844102955620480747936945712064077179170379732086855757374387704997680516741757388103724726489626408277427419912395313697051391617295353792687259537675026617183320315926407765404477679759709284872859611413557506832749949441460085983460022817808878962441718496194077201021006276192206149180084075637304918535119555404417872919345211838231200317477765436055719841773419722498343930882896388865028079101006411570898757818812418983357096772325471874068073038436420051383941834862930198048489261121161471744125632358570341798389276438163384495615577009193432235648504070169719751157026965883501581517110377501389744158017616540093048568323549377597040567075812542151796794576057826729312783663609101523977872264901445268926375508804300798349047935840020138226099702064619547626643940914304937933996231154869772920390438578086197988985814007341670708106602024565918162021678378692862015150243818906414156131501233904253777868472696427869357549097627747493929689966776240248718042320409435388135016906055770561887253537914722031988574113992170255069305693828207818617078680364223565800146715224035959757954247003455105202933477724258023815915024540014142511244487543471872339262698955847349286089237803510681874827731858762189114557357028515491386207637619553306433275294475702442522766955291963144753062820440336626262624280306019702811525996639469133599332007372419001785825600661969395126133640116425925749072681346692462626226539904989048873555967682854972796306350351749462654420542055270377526652018964774013693067946079281679029782970318294499280085347636038147584963934865811951914713608593203601928266447666282878800044226291050484820469275412378978719795907773239242055254754164533132040193918325226981126571131252288578955026005167867034786449158741326367352181620293211533712472095740455940852996660367308988719702928969860001368681462984193878980150376330597041536265763508436669852095219807932011665538384880686739917729878434674486323139909478605050864054373979189504392542575891358529116370847596854350723085586484162012079125742779991271554006358721208250008884503863789310749683956407405577271503432954255622808683571170424978899155685048675099541134659025547735536320060178258489301956963154812968348924294897083145067691333159286677524027820084793827093451914408482451951942040494628515219968159408614974777634792183898009315683443394659942337840841110223565846320153720494577692155543932518997591198479765417068194857173602046179452239238610939837135950174700294471937470121585786903216151132384923179871149255427291674150030660874402250437253213841120922342202071347442898102407009027632199295046721368915839288891755761310447708944098524164990903565683777466806749052381118803377062547257406929025534937345901324403231580281940278311882100780928134036949538069553409765282123703698518677196885963043714171330068415985677464268909616793981661736179761716430850749692380720237688123088379795365712362694185134513930382793230313900172032911684058807321115724267130273822574160599038479799069747122100565217679124577831311733410058910106798475215897620510311826474773636258217975320003232561879816830617125159942083579816835287015921695067882908683766833658216458756317718064201376293599992816703853048758793693878370634240316992965616759597376164176645179015542626523025838619394235541202273353608050111218414276342081540953917049098028041561708040457400085191093011341235248103069700784952184651431332003025743957733514904146453589518299997280030189185248749145454651509858919137470716502576094535334379320915480777982124842479459039702865830690168888318215328524290633279775998740980654727136854352175334296794739387971440414904840004738931283726637788776013724327035762301660440726244138573752096657107697357372799937342421789822666940580267610741271078291214695624107129773361638692595663880939466343094470454553496841607468150936147810348104559936048891714115425993676169410015553530703435752956166326725116724716749244419787314855824898935989325473522963819253538760046155587011374307427204876636011861200944773877545570755537678536536203385070488508495222469107494433054928520271163414684318184385697204777481726328650985107828755692008295852079510595933968417444583204640205251460003434279377746567065635293636021955490355017331061192631210163399121352237716075398118597153670799254978576540795488768479640160919803362389795699257457241672445320314257790978369188428768666923020800663411079892870081144114281949878182586611509061772410027286786121326148735268423044976360255936490072495862563601385030301322499221120813669792058142766608069167410504977312300082113380219577610874325953835623928869758966160057262265708354120430068863728651951462034963676903850913335079811754961995751888351481059912324629680831348579871608325452297192011691598284209944985219815269777556344753485708396684935588002827687931793764409867723551815530866094947223035672592843045127614438071404432870200638049175040704420495769614894111107439327106616211820927445187811049438020528723020805096837835359922506915266512059727543190734561202997857236167533115683819056948064408692152618649767343445858804016632112796755491646579842575104707528862728230217151427259129883078535573667998045526538354563189201770996171825034857984670929878382657939414469220343260624629415685874890585856489202922477163524417288901406984150719081122611514450844579778713066938918555463595370417223942222489986858892904198634965868503999477979370368476351813334990558788513538690699589473777561884872322553359025796238292529883325400591747157790758111214203538252505610262018142314557126011531706576546321197180555916679888915144338940646364000986871462568749722983018750402169057153584118904523077731105622463237292336244429865275649196795744217754798803417464776330597536284050894634009634735802145075285614634691632895783554165620511093126895946254307043376540978776099847690920750577271390502502078387672149622466073377506267552712048506761109945641965756458251375201010677803831375696095020173158250398880502765502147595372687905473882983088795437118415315252607601997285401078506665941994964109082515455268973837397131875849915871022697496540755853864654621926810205617211597607092280670435238457306781213719800804753365876066801103500569160961077148376733429807799661102052644069302210118312751406869832901044725144227818104503029548742356964235535437514313942738278933218868154011534243690595401287995913969982237971399254305044374789930917596992252244590807475122073708808532975958442102377353621551132098828664067767581995524315812715452318497352220237938946893658874799156837732411747293038325895109509497220534712190357648695341785666667003752480374644089445738364377953146222637696927785872947528854826748191971269407544075302908313506561447605664134251648533367386132312951147684563388383048218026037379757104113127597763507503594667929840899352137041989371881506708123580553002042037402730947323220666934375239941520465139016155963803798745012526009390369861668337656054391459431479835171408248393738583823829310754808853339761866043299682096019279950902198315828287504366965152009754341817227726830762786632894069544481690465468788077073854313616644443763524704422731984614125407753579704066075500756273642591767647686639390659675549941027286430410706422897569307493379474659186821092999366457035973103883910758875728777799041551081109792051292240739134168661665983052958940550369698280145912577712493015517102333616893923046262262989944691593778853184526322569620137054675803818024794326416411496266474737052674368755741287833778362896138926337930038100655244835593000467093955958094264008094528339158687163555972540932422244663116663145376349347319789580821076293059978666829941460204128582842666528637434207482489523767221839744790292656132603632780783573561874661598624501187686780322613202540215958841103428330502270290612545928101849210186167689139713689035393215476927652099882746006509244348152495468536307864994877469966521747641423717520120090438948173820589714916705254671725168743985927479647449381960739575284349326209182593539319906102303547437113046423576419257964875016695696294774107124149208173194458861469519905742065137998698006704297644419792241833935104660078096987751570906699724256567981425677030728217720331401202097122413656209324268050472345169993743915304387109324292660244413534446540101959790473901950923781144377618185465288039347653698888700125987784045465231475972427188347799228288291204703116900411707108310217486038350514910859610863978646388798500525311765127451811844800037394086948614553249192305081488964936902254739309194415025006943993300440160697724479060456586919848218117307679027689940509379395969551037963700173090683523320499969999797549489447717717650654555785318890251436602211038203307090852931403061067675321415628650442832286843998440292354953663021769566727001326862438429399192521084689085734156570722148316802643063416550010257744694951842369397398173678517622699793857850228702301487500093649089252619423274791844005370225053882837301801369023553130537283473231752935924048890232161259653624062796592862131796588818638534313591155376815667818598021962581450108793627776587769037522317209540337882852930226995566808128245023380128201028655739065380121033978559797637887626842080262455750849010351639080982084610741195869535393072982558917376914283392673960034597206270494920797754749531894005153001383690842919998108453264432747947083303555542296109167328540712347015555822407253373576368874161551525951997181793281027346682322207593962334686744062274506122896909365399354417368726214852191502584150982338899346804198028149094388607328730093371257434531865231544237499367362445994381864033240511065473833460059026658052290789591745886146876826757978389275666227408200334278063123960608147316802125115763948717069078551201078655776018689006294070522953544744291282806747714185494928328962927221560415845550424811093944360867538610226988830528695019809704282989345013052486165886378643720602924929732747198174703535407598851022348189758350935204041397695681809234998886486058482118360652888328067409108290781902119900195892659307128508007355936998296314899756857604452698255801297626609221573482525629251909156664025684737818368692993644890028259537975798814927378892126400308336649524619743381731158722716778097714005970200406159471504699482187077563134432746376862747718281884604021699526265410001727097339800421016867285366323269106940235945669989084626101620941191953231952216510985712993777886246148962360701240773391577299358805182673080581024744286050038996155882430662181257393756019821471312146625013406297369973396059625172585364399526788861836500555281700619815727996526888583670566171337341451222546455178650364792387850108876831402525734556044482550517345962963147832084984665582056249653718013880656549234208453891468046163150303653095473377250720659618448214174680344551839487972424709316855710309787436141156909320161823250266406903752540951145830236799414821511408561329344793611710026562080649864433412043973567390784398464468097353616274040476824237771146607460978085641376071555399005492839677842367715399878298151071771874525960308596971304057127017136347386709483461846036528710152721390891954167239803632399280032477579161735233837769841099902490752968274643429078211170563901027693017458431618488046350998445434449624270959923628216674027472155975347751150329488062087111773011467299285457964190300917958881397650110528281419557648531620986663561453720941559849863927615684260521648423387655381407247686505164720882605417782451127863246503129844796469916553725594122390405920105871572550935988199961681830036682025807199520555188627832300604318919413808974695222415925746098579361150360864049720619578109564343545274949286060211948931202130619498480829766010255211271204585927766502595552620994906945173973885402648472540672571503723617562099791954193509738256066703639155497165148635123603608556394702720759219311488256471206334228909241474291410765629011841044443282292995352079842426343039748543273505150629868101471689366943652434519217826211783071585180450155187978082052726039452320067550376093857961590668050753352555301910766583813102377359338611682275162624250129683733399190564427928756937915533219826042709833077592727662953898983095017898948177182459961365011398667940276294535456553612266207472857106447932318234761939349929635546389857107847616962691859493192360070948014248337753051132532370391611536368238276558063433056000573486828666758967815739727164498207311084874971984339670585396867000027141781725076009698743398858846483394225169521228629368288638393760341908972961537087749672816475286692959070979741260385889405867241001877544082651989798927026762993287170949528966391227626268795058865261860495354536717700017368617765221420710507684532638762501993760498355445195512337413929170335126693398683036816543727198503637001209273441647327061025960848657859699117610489041251605042974334513598296923926197514937522004492327921825880769373574328930002004956142958121719402715983233046795876734963281513164110471517400716015047959332074939510087989349280631994326454051331014766084281533125207054034721599542835922800955132675047019771109194396968654809678737268065225157504553072425302010228422627852867572791611290605046742032125635325096591554615021035015650816782551473214785649693686494502725985424992739449318369191447336301620690286601378498046125046365058592093400445597128865695941240570197505895355883537486844370142537628856673998576129279107599214417070554833201609865497123436307834870853880025760867984585232863278951115105698726677295085289891633214099292264381599664028116592587374712869092823233879838000808772689677540585446970938153410306007037447008297588716246844615252856776697805617497358916107815123582306828873795806760081513916786883880441352948061032111002394252487672293341011112127411710138452197164691589684296771648864932038676206098965338172701758236551182796364830806888877882079062247335622747308582327112272676808701166278069954282349120551529411861913184840508377928440854849022759312197819895740694640811672906182104237723396095752380157419068359610799253802993488289596431308161287742534795355151488405117278310630682408255193706345477539839037195590921771758801835424555505617446882396396747903418664208135337206418116864791883758450156943256591514673864474378969759027175440382511993022587729943194167499058923414729633802146011873496504016391422793876894028883996963887732575912873753402663640301401884254272755197500900129446726708817329120000356508602394636410364837168151691611412279786465976242909714930772534483187829278687704083188206820940711143617346693536347752252798378462155039752526689310138723400341284343434160995591790567637767001583625529110087731320920886211410113125507333280451205966367731722629509664268347343048605607417093851990554031735794041910880132615859794116588283614903358526312274037277996424612794566508277847652865931672182883327648901517276105203549095033719311460819316952346888699522176465469179303048887259557907916229709853000259526483577732211029056479372326976800199934907171994445115032575889477756940807073808177328675085512305453961991472515715274282807570801311201773514950638973609167797305109910771559797968724792173276531585454904575092695282390676041724412337637163716503386230340136575144611935445545640330570527485842162460570305110401753379940041795655991200240273752150878960883534389787877463528854940750604625754864298292082448014370895831820639393152761832294330515263152990915987792277857842086340604573082070820597821052019993252767192251223694074499233365223274096369173916523833369259335890418064645629685005541535765392266614452792148777572529783582899026336321300643959614032489624271189866222314006484293529064901213025213732955148117549855581830831704355756542258218013787679596336556554662286279757950755752218523534740198461583120967395874272169716300857838094371243520790743501608556564119840184575032127577466192028018489911754317384282798255220827190748499615364518632539523546394083505951938032983177768410383673872229621933388055140378925047878688610852670257792549538501663637659602559924652209632950178393387219401503860492662522161050455521423263488048475176344808825130038532562317699448585259932859796061831947953259819327055956866613695911924876946033066335548436069435368438692946041758651586053827624962744477821388395621901928513968499451057147479818115835494345243937156507944493584260052319178184747246937370788144420190487102588126894128645934052990740971000209809492221188881893771519783768083228087996113800110694129061996775949508291173887019237063952273785383113095861852805597571040065819820261587083030386086969726212694013540425006777398505195914194642282517160706001361688622216162971757842282400692676792457812861533601286110978644914879131654832653635399019228256213752850658324005027864094086280314181677433423514237662444778373124506397741813316279344928957324310816134688742843468707565332628603437745181530542862710484487644898218533556489838644498467649869727644561032935381478907668922160177859999586650457197104094915674815607334479410602223826196910598413425460712994505371283124266372664312145512305481296179141592162661741957370366570680469702004172202681816916019694178640243684986333346908435386238664383964695765356636875156324171630913380944905094183484318034068503575997755601225911113434018644002722339445259923000943927106001039396711353973825216778077765596385035227561267941702110835012385583368028779953636054447264183466703070712640588490518621742155881169452969998909598913568528868072250593933642883502875135300658995398881854326565803992135094052318417557512437657678218732793955958379947523347981937447815475791493045852062311602553075247641435632378648146342411214833492683997505391432377497114728753816829846408714572387996648653500316451557339588712016125733247382079557106836281251938511201545297268657115000564750547574059088620145431243266852459852489726362349617715381660228207968313441819412004278058725143895344415514124144855705431191220625589766552901332700565472420328995558431238036251843017172484714875876363827692756869774848066382706629980255258964939455235886354721089771241414023501002065542791211277169763845864376802598707274276881125875565087359519019545116481169946637558612369459222020245594241145784635456170818396680978709532040800438490986272670714309613620695714025776658494616636459612229200978107011713050581336699418487672418147660382744698882567175087390755985876040934284246723157448878659184060971956675690752712914286104601858958967881550359046177897265340461574278420081541771486538101135471260031718048150242521332262609153648877695502951288778605659243979027634264583334122404082178477143517447860791663691953765555372026811734011764483376269789314092675261274983139106797535856261372902428716978572849087622011215745822636855135144577406503532933592860514439986963241772215354587275291767503358415143418335493186523584474176942940740419014093208257199103351045725315749084964306156540935357319327849361646453666224936250028030782688846961644011900428198816036708783969745302387253537893415934607341564764595166620229562241415605819677019666406659720865863821408565875856714756373827854173233234210642862745166043494069935812636446237072547432928120607169092270147728173004002276731279566403567183745858983968157417070897926270522819731990211933179058864440749108813384925181164489489123729611492399411846991818015660739169410585595919018610108678473259338771307536103098748020260523970190589107467500436018177709194630144326602136354295333873805191202768743043644956839707243501958904632482857201611865955726859220744292459890157527305231843446738601565703340374056704362118976218650175886212700880775687692800920016712687043854088901223561678395124646294272162418644014404614132177152174743847373283771639487466301065143242049425900628268129814664408140725320882725325786104964734710633816659339873373258013221497434236630882888163364809756501059377288472316469887431417445152565654456166241737695933784540877163149976860864670788844227483829638921580104419432409259049632134383726803479644560995054391103218187633870030134698736510349406276305189673951670062538105441608970127384755564934771271272626019746864452280261144964122145679635766691703695996828310070417995058120773396017003099412955266195355455129349619011238061126111258538563767124393302530047513382774851160634897161734398382488681985799153238412191483574073332723717737281458007909449700389493502466729548072905760168592988444940725020077744429574965549207635476943298056212307694183847371152991191313349276354162830377715990428847879311553398437427176848231106388542551927908110546255645403076720465946712820473912715280979801794581734391450757818288978229993231197276264007324712403830829206340045223658754136449295472894836737999778232004563057266789377832193819506753292181610323939558239677373713398531732564388835115211332977087627662439526626302518769913104214311982836834803469202164590396249374040296247976108494384006148277470700430135167219982906599823833383007373359216978742713670634276093215050698425965066294506489569274929587808162111365949852301541746340714059934303956590348972304889056668265475433092622853435053260315402793570259505236564515270332301759440537900317228499447577481653535317666727378960226071951081264109641767762029517211224837546550266591603445938182740562767475115937859471160906033943714893804828916945677511391405408849971753292666061084423031469003476163161882892621813611057151026885260541014459664026771188133222382313627549795266392014876998534949011804540424357860382320745114677920862671057785573625467012481069496176560075451797149372919183965694240347833194330852568853744288526257544535564766099280875564556710489562060007123243657937909923353683953230556634674995373503357291795887794246315454255569660702697464378420440483458094358226775044043874236769242300387824012293488101176100872967806191200879387477295330686734623801000933913454802677050400634173330981985534911469760256870479513335342956478170232488735170468036978628543644621242199403544688541215278240910019243765656628413894631535344932255072009589449535338744660752162591254413585913333298915174325230435653295148977601825197515558725706807478592985899206516505366391705103444795059834697632677389304064091447814206303004821438319643870080566517360625344902078150383394473005127687019680801566017857744523125479296788346985023838153677804600262291375741471029044214580497139062301470070553399780368398676521612091183993197484240989487330991909365244402161967343416600953750458436806274145889536695098398237986105570556143351506992996355530896788008115345398410357977394570968619724169380466126526262736709508662784019828363962144654678356559997893166171283177538142257513432075338496966753429838682579428921673618102062302989828310674199445372031046382762718192138661543288138049262027344609834555240622857322266894082898923596355387337160846722539666780699053938836464093964972090737736782114029349752258986782727823967898046551040677288596562306161473953929039087290462945929702888189882955924920490307867954850525947797197569320988853229940009285976528976899213939559504603701499247262570041671492752479753340763938759051317784445018678283642379873024993594680102546896654716828074255484965070262176940656926151108892624148399401846360706171891061405387486138149437415622421043676784326163725889354099541322325119079678600941129064005874315996952617389669095576063941299471155996208302410927956944971808126019291474699010842740813553740755777458725036713641787996098906840872484293747133007621540305456009960852004561603917603090969375054629897075406738361764097831682434161042636166628450570996965362974394866437570052669960733809724236733282726526925102924324935339767734392038551309426143746380048892763298071162172170954416007646743183354875759106608792188250433802276230834925251141662937090609887562505359262521822853812155598097891636674734507768809549319574763302499854100990707297002802922308329851119449183958266289163604705925890816438068591551500018987513677039758638730652886656060062640219544092795905731736155923387429948576726075642322004774798861175174331636114498471413360292420239173958155689618551632140602543623520832891483218856752677484678515953544689061478100623610519310053720995121995279488478023621487716103869419407709217292617772308861246778224770624336170266613502226837060933956789808315663642405347368763381031192883948351892736874026545266954476854544651575407556458079236480081462904747162550559071050896869397920028804423112989913644485396571919193343837154794595940568837782473299051752193042872003533321416504262916094551253253684206828421082945453333818384550955639060640997140570433417055884201369496827385394248492089795289031677610738174252068067245814636614392775441407481446312928894626571005779160211023413226455934371822488025811592996247772052429975849929139946890800627796473078897733843512610054058998688392033955122324513973359105039420673765106932471267925790507300910619740935260416719019249141729333029824769737838387403736007638540362737519617697885612147309575382819139215914166334918299615561125223288607238109563659297339852830098783284975536868226718277062836132078855165794105034593064941430638321239527207542347617913698692621646928220851139264515577138946549640773928129793134043776330442142859763377874398152879064297489566413064846941087676433834299803093127721827887187261658804470572677838575110785750488309734010093712851644848925539000595792810575290652996378887873868639893401789427364409099861253262096526304609556754452978856712077712349703505471223355890552071498408749575598524755823229246654662776586477248882582851990032782372640731736307452589227539245234162229812000909326073305644165147085359898098046890987991624234514383399607694191508613711405612096881232274950849525684975873753792342049202047288101134836417947421428822803796429334630530917164779602109070575302486993571099778727488300707673530880669878602526188217515821295078953783597523113439000152338060056289064952000023180425851835651998065251856745318900046370978088807003488000104733026623089563946581258083117260542940074204181008165623930791488357639820084840780945899267384089510402903041664743946276951586869080453156358448272651255546881127214572665641183243349255009952575666392882105676911241999488131132763771746913296680177490133933848693582317399127530630637997351595302823345105706634897020148535584470669530858591101443999693018298220903274566128349607612149339591266653565831121978193087562899218423396501834035564608696349454278408232082942452541839150496533346782180308420558727920848536870744643302060196526332861430079331542289440709539862364467826165960654907420598336843711857736589162865228281226881609973555896522899593213767805848305967636226600748401585796666779327609346308661867030701258476544412608846783755526934085868570938256169090944657026812165634968983234974092630591118494152324948548192089934125499232712065919564556606472097873429473539916559205670671428479625433687371051887619878394741775592913301951557950573990915611897638352011931034250727831066394401816972029925370983591923338338300629957072924704201023085649379541672526152714150924387040676535385630832330696956596865503366961555587256751397782800845757316355968589653999368214803147013925447982562496211703409691679322472621151603499663367405516156161999177040318103749542048144909240484311291076279033050156145678812970734962753632773516439248092616331838989645940697596597339058339412469142352555165805581135683922384779158881114255179851148885773223108518847958357758155129182347006285433660404804434758612853883118951958200579647466093688010564302141996672417496978215397648993185118715035931906150003563011348368234021032870984653814537199001686031055707858882841354322668825922881828336080932582667127110351782412038581755103138039485375589793034164825837274480456338985845667041789521719265879260253679743837413977266089345912691729011298428453595310205084861578813792976723769397001389761289421470027355888695010576986329320674158308078758223941494890807597093898197156706708986269229948375146827183994899360968961297276866113908958733951765051163271140211567798205770749988927886159416584903861506943253413943141735021558565443834182134348989753924639002473338421673261109887574852837718729027578240228076630408678976844331515437447838077508064385865373067826165420154585917902024804946741448055571777877306583915869726521561159481959042858447626975691679544169193959811741291753531115400997760881093760402678892884149236367782571769764969710427006139127738886643231642338732890379309787164577563628473621992373156887630772134899445695091648320806816747050748275312215841142297135652904625779348874963839553590437384468128971963695679020980769031730933632116941312955543854732022686663856934910109534663345970940280200663803866390025169431629909323049060092774150316578411758067004747727015513712470359227662601890142392501610487172356737013973633642581960009648125287130065322038847412892007532129239046315199599182220270760883669806794936003338130919468182793473740557939575542606607323452742707004942312283809362089900233899021682898732848767862458329904078330875692863449149630801833737709380754280165255128641350134622314329972511097176614155074976797467480006143142316465131953977230167550450845489542814815811463202839568494346930261276449679035135574860446315802067303672337175258409906514127394207902074021647802501611301710000410775353619530741001518777277481480412613705641997441719956547059405649154377796680811384050656493497079449099928141740848369862032972310965144627931539903529625802764447787409995513697236350806945180787640987413098840908707937481787249642118850841903887147297118785194750669737866118735427441902941122862636110633734425616186162070947871949390507959985525640777469597713949542526286008414831517435312284527098043850410380287745720844766980439891303755724218536515081760241518248669790399770577810365974010436378679474706902829230643291215246792167792747978976973835590983642035374485841696825266472815949447235559473780348023146728743542532030637323556059619596005116103029533840578977929828199893399290861793736922414536711208161504528135736204770525506921931999883965202282449714393266228107256748583916629027752358431261201668858521824735133033651338309433829427436730700795800529477465160719217542045872834286568315529364694781273060159724648100990528203227768487042906182739946008331310978327134711714459470602288296842893936238270231972330999544083324347346329817517940288563630933421865328890915279481198819939522401599523011967596285054828062933336140228518259502034166465212771524362710530920956483584242143234820833979695592126291092796626924734625497631266375368895073014280993080541179578745965788006505407083638621277923276043665959725354060431823015363316124895360986123505600203242448093865302502510872748244131262505699292928413586904556681955844319611005074280691026427235115863004477887618307653158305507735894235061590234614024336411237330449029131812727903290664661386526604020578517017247018890019475284320989736493049116651408509775829439759318161278634477535616254947282157015171657172259138031892421163062813340391005611403742458168898252650310542317141080694968848011854476056961892663078558659543074829447084777112585247767002985366726709765077150799576727391518998059058006232490346866790038482650247435416244293535811252229810672757260599982059882954628896701560789157206924323094738815550116521748531621625784375133150601735091042512779037612202343372545766248212716770974386083296089182300320947869737400981911609923116179814568180256323788327093019454769313510976355773180720484889581248552852276627364273133449196534346104819478733906108955542529019874274324083600867649979591091612551857657588235345035631397305775042156172592233327028066357719180392172298749080089040252312746697142191425168350728023545092662480833332789097613731791301829616960549083273729025666954833826545363563825411157597663580948904568330298556064582273412389928185411055084493940867132736426848668297825526940433467285610385525526898153860578717598837875490571071395682431515158860125675676522074162178391863750841477734086916740040289106780720773726617852594886579921652240969118893121650866360460425441905906035830738871257068434756531811827982188145521026958184111709336743107544787112871451114881275401379894430044140000904799810451893088880980124635866686612951338400203024661089516372481226131688202005454645250250855362673557471525570671592648457389308188965137618895547665654999760953358249776181749726385416804655884798464901262278064009642891343290102394413898765578878220103228728941896653967640442540772960544253086917985511906791218382310167616571941840070990529406809061612889124862633678869629313495574279564336581955949670700693370951803583313720353200892124880484390571294135615022953736732564961862308410924114331417728160562136071469760956196295145669040745483941765776784351648834144205896009562923521179025137561248012546603108517561108508926657737520084240624577352291550603040335281072616400529709046589696978720570517280282840572403737283392658756756573256625128892786481408100411296678077453179991803631650502446063987058733725731677718413882238070122370912220788886241157129446089182729303438489281529684592810984267147405323274219649917368312790231006991757610120814462328009666906801701550804331615308047052186355305178784741734257565644038315276294142680279984551775901005588980764438631937926251350428127109486539187560896015498346346262478608225072151923353327463176946882940312246265979484288269920325741868060230078298463242104353145191995029678443251941699019906709110608130859801419605387758235604291191988367337539814848895874883763028843171108377701511291895002580821552822360764368290401026092349331706640238341063341691164742193135158830294794509262988841588473315887624584545928951571325736609912153445807534710355510755949982645322455540874018716668400497382520322119023880013874202299413855226001579474278502266261155505916675425460159265981949472726469271110550393039492787791105892677329552134342397745101623325076552960908391256370629156900648625337486923759888512432750960653370271470701434348332947188371462390146248539430190794004490188173647751083069587170023164607211866828309490012540259355449453982673696796284201754173437587719018023494945888776670548367668567229388978112948933284701094381389028446322454843342851385380810662522546626321539454554430302747856424519969150074184103665490384335133201388353533614036568928370989323763998976518951559315659082026961612604481817020988519837733923712531429767717870060901422900149877089284252214279687284737899326101542194109094514121509453815447006298512311940507051138490494823310750263071366198423841169673198661642397108819125109331508012778701749468096097259699664973359232294361751298889331712227324288699965135975227029214432776081750062920543337520797600229868574037339220303102923843773218344268292075955936684818394031106161802334757532658570184023530448908304640977958074459735949193965516264163386652566985745482845662325834656293435392589618624935444139185999040330733911372011243189119559638810863573710493965414812515278119643688284723689203635946753384216702788427539583939123704250078292161166637036305264611924724767200847656204053817114328971989175674403992564718982436102112424480717957110925584205385714111116040650071579098968082261778223201958353259124937607840451540096837838258149967480257201798091955963856072515658024633217921186978258152070192135766903492757970477573277762067921010177559340037168211049249594747522903939386336747917039641441383226152344582301580952688953892793852840942230913905992467884014208751247927468183897644491204792883048075882863889478966496599903019299215829456972400714831031791008424060773619289065228342259626816118283842965604812110639501431752750794002857483117916528703772160666767233657526093326674209248871378832535080033572779579830506833829395921351432235897298976928768187267690771076082155787153542624504251525221765333453953709165350275319945714984969838103035811345355189573556530572607129753330405359804690478446452786676149824628015859552678061573671502456826588072445660858530253194372454835638679784327290814393140333743984536287125993711624015795456053516656278870259937348606663940782681166624788092091248125063193484421833532406780008984412576111336131148915485043411688790732543802727064449013399130709235818592284455398640118467293531962357899886464348852629945438334914448984147890358534831342882223774180205160442353000875192242952623152032047413588676822281077813895304394521334178144194760792695175130933803201762284482223109708097580759999380152691220983107524167297211416418126271110344888774830386795783959350185462486272292811988399618093853164416285533710350458574143266154183972552420945119984447731515227425072707143113015740572486205566903728295435545154265251670488159713401787421607338308466142476072749960886058927531406840560817434450882747481892941133131242893853476297280938595325050411686435950138510952519511354264825746987990253431709834793357821528608999514625432242071674986291229386365939772306078491338094124394355734308528077013961710253755651484390039877134169775357410085540897462155693865814526698487622342962072900882176480149801728749170290824678613717116082384177598582626988579066919545947909845684542212006195602275734862773376680782679198498142947253921736641940554910098394720875300864504305312954908957319698667605127489680147088320728278668734842023984368771119821376192442744867830456657928064437400953207755123546529838180843054905267668478026396948532541437494333780807866782812717357159488971425578977472355043328142276568193608898613716966903021786814461286528263944555856318267786035242978038033570755689052007013455211693155194781689155297163000376753637005881761035949679126330649548866029099137373296061172263938425473588089643799681329618126616769579836434818360120923475306708284744486675546580403794892622925929176537533309964771664668535871028921908999271954162120349556827153406670228850362472455441175535461762388769042977778657591362529473448883216364189813631072390785712971318410863228325503326336606987746503212186283584560245390980378634152854899568798049911913705465025279746008991633474622686208978459999602025693753724203889005851053670029729088571204087908811869053706954113403136198356093856068922830583555376447211344892432791011974132965381529995192711397646038668316291893229020579069452782649714609600158787297622462004351611752621848642582675383259211104505101777861761153400534253591592164596188058252149362007171869855801760084391793736306884105651472323999036283602136345841858583509467005574955175961542010291091830431511159815835576492204192388336868032421829709835933202311468188029519733552870464113851056172461329841761129073495128104001164423355507522145243218573378893865960649885477603299766074837805307639964668576611019572758883763885565680627532288645546289280287430586996914652388025957250654061147707766095073412917046247085580734106051822285870494047383930911414894160835159788221967521668787228427514766232104388050261888850100875399920471132545160829364790890872807417211477835710899361285893877146886879612637776990908442848741791357977244443745934147836924689126393155650989952505615489618398562172499125972637585257754539267568353881909058313797180565632162187372103710856997654430268656016543840124648776780702436086780150862953427264562215870068118626607207461129811306645505689476394750206115308753426051431060199379813297954305313551736480116276851132309798598094678269676483993590272940743849589334338835515109715864308277018562541732585729320477183651896042104475588129412667132947415151799079475305710464599513601278604392793739485054625642937230923200593455362828799337652603676230212466082598423296539059854179230139582689032267459331265557015005222360713220897014901449794813472203159685267671864655070219362915771977516902629503088342845949942940514071557413910210879774688187690917896387610173278703432085477919347141934896191105367653813390268585661324300181248079232162795678698115055422702022245077459440485809277259620073924673202564712917838727214799039948852720988036087522268737926632066033195900858906110360611196571362827952088466153518060405293478569034310030747090294027646602000027285717877208613116985601701550287383110097346598744632159770735797314327302754889330086666608834016177236251053090279057646860859264875682675156502504434003520172790938656044199441225276302591948990765021891896037635772447694437786172322873982306251145598871185309566517557888517391738284465958277421538309126439410434734875160425053121478445353829478077217398249456377032091742530135315741822174835748427462949154425456706889356758815390950509077475414561261890373225499526173579359360566944092790982650010041382189297363419591377607460182877695066681212256388937765123565069560393176613122833961799613511438254426221387038346924016441506567750251711825402091018515942123067322645718816382060246215113546164476991681666720786211521697717106299245949433549995946911584472772319732668410330476096061691969189607152266367587588242152027138985974216448972495402531021849581440728679003073740845968458398276799957727758750409308230362192218902858066332950598019703220663060799315807931980879492969275891387808358172501959352394938294886629053500311583225220952526216469739592961525284625335270344623664267394858107216544908096241313007990280923780710289536527399579184836774532926969195342926624617516853622967523991092360413415563618102550483900754079389552431352274760934609224438173630372189081032591519415622494564407725836907779428264908208151784492384571265954308730014465215800641417407190057421930152261361538313970635669709768900587373847561687365705239648984925903978070108875790544313172489030777855947244688342789331343871398216233485610568456380560472537746224852947931500409036666062810928487264379540217693845975223186836181921847484686144280712565036892451861883982997462723035640434988043826103477793946298653975724051118969992545716926861461417319575636990358729564862228746371500300446712603313503558195758541261346255977355671238020272153439366912071174259164420135818327640327830362628530585822714051043085208718603588082289126420974366244247398391395791660162980377711494639553937013057932835632261103308797264388155120721620759953980213441218038884129688897814268942249523617576563625596762513360108297415152856367536531218178403277977614288720414487057071612799867325716947646974553506227057047500926788712906310772238118740267803370017831124452817234891027847735339336370409080251107419284859447279753184282381216844424601699579127840530340686126329451051614427537003193148887742095617687953830412020339812813035021736897062877926086820707625940232581373591607053732092862078843689529697336660435845678631936986394315637960338187950901481949737401741021575640650827026700620180289588511743960330673219749497669964660969825581008293724635207535044525530382904474769218279797675410253215701375056559971300683093100433400222098454917420958458318655172110172902734817596729515129986289762742113526449829627969760314131808840793094276506263164585461026803333568493990526820466376378958590273014970950476714984617396579980944082781212684496170176452106422173129092321192196864244893274079858749578269234061189426130028024528808910516770477625818814276175255914138595539684934480680098271339388549818203154967685542653194965029728941981318819395899482355579531225780811183666149191074912740979993205342104468359235439193344099298189418685225582367498180968182205643417342292163788662359165958170490693402336346370186704893461781902577604957075547563140892527261895905468813078766446995037109885844639914756034562951873201917904903921208536840672200296840725248385508993282161215899035228420889025537972138413520257646765868511076821040676204728767836694517963177104285239576194057205608775606579320639528615435761518955213074356289255106854238061353405658894193227733817439507271658727087011584546285689181820027517405327262461992175380398864745656374478006785945290958896881962570818947995299686814625947973940998396876771899596615272179068879085206431912682744560381051531010279777380578158574578599219460058842355711961031299264968746226307729435988173733631463356026585583839241500710063123264865729728315337206793329012304742469635446608697458693461163101656570121515614095932451245559936383373740988690114565947894042470143033477639438521385320614183360544588019005217495725661551752202017786371122537023520688714897640893166395193230530521188775453802229827160327550513721954274063384908680979697780454896098984772850290749795111567860334670665406554465924724931962166056611186516443404312317515485878042592281287927431757270145016533894130458545853112879340373166468832298657433787335412728743334091722113678396058995563243017477277528477201837878919856836595222696187322557833026002702458559453347655168914659732904868338836460053363821880678035782006539790903717500773844564328134337364791169816364668369181539031146569465982170403903371068280188857014637440586277769061606063980539761314659719421570419156773082428585171109034729745584303623970504502788804525640828069719639233294974935024413790415206962578881897550608738332898115974779703851569600588963736129256686499964660763732001485928710219154064267820196266299315795555081335012870379102580894139344125682349781689639060105114115534684584017418658205865279930683945984477431588594411935290252753728214261693740488836403967954697178219053929840501085392626873885894226428002285149840399239959379390677384311650542642929561559228657628470814147220939907638849297889298067645611509943644355647424278793810628115710697772141800483527919671948126569953757951115864053125065676030436061085764692617242217949030123275095741830627135620425575541444687622742435528267755649002830490820067185491633217613281511558656335729670880715906120898651665534893838395381571976572187873985892293212933438846359325216899123339150056963248932155495718721111008463433354954101002845121224741198696814239269736591036577834628018241307389280674880735087856673564723440142730477817428530931583029347493531099895748901630443664698222902852955360970243244597122882101026341874534082229775160778073789003693330328501850017486962241885530799849158469660209726028202734698959653984840632415853560376103585759539019465346626136652312016121492452180218908707637303964406506950733720263526231179640737920231492418484402179175965031925642393375413636648739186989998245663489729699200690999045697873768987669198524606265209909921097351062620288268420127084719618369486543387126729708509539357087842557467756462835387471076155109787466102705458543012469655641468562969537086008365083148154390997036636467492460955922955052122320099758530404958780119856554311408551598425370265685017591744092991967073093251656366204176794616133113769150254903711128704904864716911348118214227659290749137519848956900868239635680928424128007712456038916287076995090957774583880695971149310480480802479879404834600832080346086883172664034813113587251019577497258899755322524221820418303164872887522337580587363000757100909442777262443389413290648078086258274476398713353745689429274926288544748777056519593538473131307938922483942731154371765288846008451667813263531824193634652463838750829376046346501335939634361251958160527532613998688671495487508862802315572012601303670052414513898111818724003115151136407981967806160873306555563278425211825370946805271861376404650042065444467707051531394593110540431178108575609379853785775992671503146143305289244492166670595303681144789264647222552085927645434720443114519623285683952346996347877646555023302961516731730646612742701748796737766116013335119586718933018376430838355139096783680067731792602891253050587565298414636793016051348179610504681140142705095574425888620807852052720741599490437298781545215502387564932374792892112969485932791207367570623865092067488957421675289159819039368129845678837977456817205432684888219196389837820296479941679172385450851463564660693148589434216498057792209811415475445659560581112775287934008388041717596814408580228893853930169576765837009997645744577711509786525228734249689342045291245483380340698685173414089544488762045792956475401588540509599791780928034715097051006706550135849222367524738030700751836817552019391336209230391462448771216216836949632761990686868780319720397370964411393607632278728975601009245171987892820308573797594264074517966839746212821580113639986374759177400163852059194214615847791535292581386425927090524645576251406181121753544264726552183981584496809718964336107441526037271458113446086746375801151297518459547177363384004797595669453880722507471902340574996193330138903720153742783059503901442455424556911755936124325155831173039089863112880809466231233681375756804376926581759512737431498319887841821669749785405818587889928862006387358952154404411129282488233225600469008083704744893833126310390219368251025422753573674185664770536281141397883727245401000612955174677384496308688227974366472000731076397647890649574034460738027766868323090287527397687107241719435883404135929571704153192087596579891066773075062677871621642283668755671119526904965850823161951887157235279962158993220966835124049597123317124130508926598751382420821501869851831243160055081007406304492609779946721549047158501811555871429986324734140888254076536759180099533507824423149627629882346962803708303607083782308282007554312331579302735517925656764140018410572199895128020367907713682620008376568236518357499310899221730907857713842429488983641817925328628974062334914235674667346395858963709790039759423592352510262740600497255465779989540917825871644889554931261027254387156887427256933771474831576183291916667909843577061202434703917324269004462567226696708371911238897719472825169847942516599820072271347774534802137750646470432382889292791679481899536951265603044686373994393392369708116496276376491394915430260510592334909494812136029431898531542217449218019255658617970468366536814774877274740988729251329913532277718360587702692302988481408107615912793248404793540659372819215128794007771229742129402902123875549106088390622969582573319636596391181907162317336478300920645923253543682862547341044623071038349051053130049568433547502811283108518471253369461682115836323692554649947048383927690145251570377350784476899833661801942395256426530666562631522644248608891874149202867016591241497158925708871620243301429029744684233993849826318877403242452664699781128859569929741487561259973663875253052378228810194109133271995149528857030376861688262006603551234245199526468409641126729408925912808806592314767241892985907124857547396141852162192849132690878574158420730000809095448239970408917696604796452690851967140297158625124473711426419866611123279523542739977374570713802234509659756159481571343210592480315302068844783789047860476815932568888085408321979166098788299703105700517118687537672444459702691616675868868821933465126734777570715897030393336932902576630013694130857896139936708179727819359871892669285949548477074639396576306522011210198301086059897132841913890758496535963531818019348696120904797864616526978692936404480602238289582436074895896783904021980693667405333043569694986367832069528465466951761284775198437230179178962884966092971120270753099555911298487970245058381892082199765945632433067856289165325758523531779404674926608177757702293277358926590954926113801960899904295743611413927222844433065301035646427645292626036645307381048970521657634291412126242169000414605076284775223393782084469316822298225089342238312838734305747069301429209018250695234897736803464536379057099883636218961801383316380559639223283652084217272656140510484458352580498185542842159675047621523409903859335846405709258264292174554158018200821626643887831621618772009867158588130874640632640343898486409990648675819227847221997635418390557403364034254735092587162243335589770233508498505139048744261150073025559825201307968446477916661829288523816350169813335954590962672260220616784047656867436104852094922989258987068082486445021381669524806558915887822849557832605633924339702771755941224725346361248688916707111155775893785734410486227920565806391176997648316298212716361844029515598239348844039038070259107426330043642020638280334192353218636715439390160846868664518180291959919236123706753144079573898336462616043986915896493149519021326420269647561525156296319562106370307296681463117925581781401422414591500009020950476368798061495816884722748022377640719108885779384405753274763264001980051096058314222011021012571495161842122721712415089806470264658645534830349846484757395381712343370107255379424482217166751097889924499769840548902425155858440941739509411161525636388497437729410578883537947746566048391530458433587568463805840274728482311170318892032211799037537296833964039716910301413588492166737141779043030891889673512265512727747896341628690224304804044285864256985011016510233828278680895641676928581770970996497975924986376042024351457341839369355917419129232175897466376439468158218121956849232551281015127661989876992026848879305507661462566420340513335697887606661684885164789518878771354823697166394982621449219629357837482843399301223809651328440734014491486462737352076746205017221516594589955693939924580183290942601555502969365883598636662625146108619589117984229476760254831323473428504795003988691561581709984290504713916950717428881041910091652393207994913168756742594658215940291395444102204872755780049497872629805574854402336015655635814577340895045961703021043523537142659664053270833585161560436808657689641254559788383533745875521168126183199240866668741823486815128478542215519772424690195447401715729125800690193884461802451387198243256941991047915074315330423787187811197749302541884771123909943058211521056040742843210962997302317926930269786847276851570818372051039947560075606355883598620722210521114601470256501825965948225328943343591565011035146632049832558530856570485683941718932289789944509044800506841462188986470089425201545454495544693952270537390346506038546683738921413025340275721559707195574904194529202425227683412189732093373500381720912318773456760268594977165332633914657112438417927922056763873349104023008000278156175909040419583456455430702466304653481618732794425900827917933890318667841651997145370847047861871347005611456979907160255391721658746832996613924622269131458253080338980494694801467790168191323464003628308657763788771222422447858712236630627590743065764801179566802943068462242555201221069360965991292025145315349716497792681955130075384484572770916447274551179228278069660771088425146007409667284196202816428806918907640369429561942700659192888044225382231529167222644052355505395941430111327132688115979640741688532923993456614032477480148299344246606968102589868929381327517289888931675811475292768113279644936868634033815373634515023103828687210654063922563059617546897505151814209319821890381202927203875637101885409770172419936330802735494506095006409280610303813059968458822911248282809092496817040325089569933160826168008298012780661094709116252322488129377796300873613977822521044751686265807253707127100603169290309598791266608244675282388075710480726054097156315998710112715132985248047252453473988359405011472862864096819090528122791429924638446463264411693844538933275744399492961838105932095010373536785761678949295674546276501654679537931406330552109682242628721937822162668934714580975953010006011184173061717245270680481521869329688725565215444999386421665766098882409293781198812467228284331054001618010564475195744674715531836891082374382893859350151093476475552928192740260120757448347683343474242092336816801509789129829997076246778832016651154093980806038123568522579186617253211779711115830573748628082975818742487852823492071842514282220112629601471826125185387272812185697440924974563029031003383068843159449353497543623177722320020614663525170441180960072998652562812531713719127792710356122647510194172033644404762249687417510582724493602454815872125883841894737183927565352496437785048897659204388742892798165003840660473258417229426708991740502611240494865849519538942905521311319920650217292739281373454379260411958826838573839681011532652284740670200354463831085998813502634480315885152012060480446174471110986201767684305183147271605595732094636368786352772689442189202985718421758403209405271995988232557618889830013151727608022589619350032577216625290630451375389118997843512771435810297109840931747791539299207352887307509426503643366068036510617629490538261771448326362864488215792259409962310278452386337464558021464292332248842889600808484594431105511338234946431561708037000551868036386161606943600724357487649468958845673785679430483798103782422712353197000276882349047316386525661155026702481002281613974418122089113431957675536309910867177631018563491068153874794876770275660678579699955231676986500718929590220964205570250721463242640894983838629072550215052317656181881838164791964109829264230440985599695589920510961032600188288847682708502029402925810545969420023669445104331603148000523216076253870789603782771530823948662745623448997754799295724325676592202347826873333766581728113056123789767341519686620541202916980976124211471276802882958990535149856946464743579401847528506503923876995571463934870765847648776063528401779898439808576350083519506389945146055813572900287354021540220668226472331847324192650755245911168027311649150680003149232218104166171734179660242119637603374247062559905488836151151245161258315289744181325196986870491003217433366837269000878919443323830679070239709535780717688936913100283985669078376662662731805766798928352608047090181837994198729629139231854079946813590702903960588801374960203696378665385125083934434931897050063664758933109903481395078127567497014058669840980387943597486824071486670904965849096364009343545815478401734012322269025733538909630114343255326884832997945343351346970981794138410412772085714980922511004990971105398715648943516891830935815642867225199289156401931463664529673216322715444808467428832459761706619202138414905330806586083796000666501248470897036975257982289812675001242300535565352053847677817169014176891342525188785707804865939982603383943637606718473589228945295928877400638594092714427292073998674745647671547501939844684211162839531399898283185172927293254304607636256970353353376979191235807415883480270081795333976854845458991800729605325156891609313532768545585935410186454399597578477786745317469316862263318597652670292325595124289363855598864781989912153983606474417289557868110577215181083334645663952684160616148761944986348451921810254577279837766894402800857142624481468143467391338748991744323802203378818278635453356351660936972126742009140704402108996052757461608438257526368141563376457178645941548895726745291732066741197740481475793441180673968911202132505891806938740554620925338889263876585563752041607537365843077174487132511928444354330887184745682299680095672041761563965231313325040550086981760365769819698440478361212293058390351809395591273895431872672604150331059277974929259034386827862157900826296590132868983278735743429333146629720091081607656802726824780090658256646272111285008330576364977643685885530771764294548380480163317341198512659595348530599665930483330567743512473031386799119881766517965708969672980019113188966063487508472133401441674463820250008443200366459977354588439143554711288151012025435488383221111699039277420499874884319776730605096969023228913880260584688670555928544189493179332803944461004912977445038930305204170958779941055514114462528152791737139975392709193600322763679575439626437756381136148117693663671994936535915068977081848690899897726067903690724545074178291935407388323488655505517622111555037581963971350563307277955042909231183538492620850244410560701002761712614363256684620653308924172878955163217602269413211229414387456193976205270649465979997248782986202705818613442687206819084130100759858092927766529052678175585764437162510948583829420586926530365808062525938595687152966458833029967349058237428747444413638330476855295748546628337347752106373301312984744114242635108849501236989955748825749507383081369734677074902101734036443969124373246875010196385715465170437851341686410339562803390827644662688187358943196335088565565462496639673625945455188029198436470954611045766007914218875037834651497871132667152375614230520584162352945403102029035796804689586607969882937370446969236638835357255435845989896037972917716865848983861637005073326028689803813798793560057950708502882776346023828304800404553818724504854532325160594942141455853970769439603376918272024345624977368648530933269553267103957855146887462964910377661074846340701603400607998715638011872256996835212661972287885028465667846993559465331961097255017553523025404307172790441003358482488554987198378015085366691576168949184648035333108187412871652209152575114749402021736155885802092953177785705741384319085885800293566301105324462117267708890372343565588407837422581344113834939963584463977176583914817971068612140290292631122901717917129591690866269856826208649672348429546050143658417574116615278629669500620866799542804004135139680948083769942742135907116803082801872946649752557268677643378749843029307148031524612034926716136631001481284510304810777363339706462130125948068365369009646849502531680846427278193743604329732146824632868670590209194823563040249032382200733553411634412142883741785815777157489836885509042971229368778576093961592927801249432729775870340128289597029481312782591376319474735271295754192215933204960974993288901747084820313445395612723363290786571345462599601123950262252065212228539876082524217190872683038962004070075025196447566030025894400188627424133400960225911038332003316067285320568062664933835668494842161011750929088454016737338713124833878169019986180196014210512459217933650919198218710026183272378943688236728012087392454212573449466017186391661935503707051087283025786991083407515039836599688659791722245485098924267697019724473336461612603611678299516896979704924375830960119680164023749658377985340144127123666975762381405694923799433160656282424465671558414688862195736849622862138731661204398286208186683497777280311839361119246338805113791126280324872393140001284468843141975558436252963482452242728447268756729339955607008814761633660151375843886963176279338460482147439365791715359279559141658163788347354511987222444550029758654605757127463865350428501394646179221866966378478984375735471279817254638960825617252808484529068296420760291003871101913510128663567261818886944984017047761247508385478716491352520621623602398440868859349497987169162267606002461281810828565800666509821891744015893946788118174092510827721553615496923598376464549975438109391188134609488817802479867040912541472482784472206272402797960627129871283804617252100160421970559279688666434884291415420781125769036534764362486599724689470783122060688200855895208309957215948759454399410835905612087005725224172203029244645707760112178473044818578175931286132853018981333569308743204029304417423128939368609889807001117817714851326181205863940562365774603371066773361517202383930141703793770831542021196108362773922940232402680860118368962180741499611583408682023767712371492429223543280086365749456391901632672683769950211968564713612893538497348583833893797481158769709531583191093557422038147046851843431802214300373163420947391372243784388795108292973070539383956190263233719971292948714986813907915918447040772080534283237499082034421815685358084891661090374745742907438389344396883531929481269882070177310477281345947363759583331755719315843303790861115653435172579588496838127588467980055252005136743902401675320733867583694324925419876553979678584615195736496023120133603535010203511313867231992459436906510287988637645044737140594979862335513218537371287237424915804916468369170077031004334477396321488336963347229491502826689881704555865352324436147571390704471903450660387156593529580201070211258011111627971279511217745491408724256503428950010157720200132037910843206669794752896612560527518987222609681118068268530402168621494474837155543097805629847485425395013553395761315656475161694999734775191379849106800739015706368524426116320197917288608390722941755476974237436427706012039345297198394152192440201521144482587721548431199581824389982365441064337575745464845410907672973682203050535673426161063398008779022958484684380435089883556669238201749347888228814620087779067489653120183888297990829740252524166863195572889292746507108913354412972034892705584723281992555564466765437946067065627008800314574272534966488937715760126124424237602126025148258952952489623639643043992792045659031440008777428390606534103531893311832953065280364740451219285391502834153459009886306711222839966658842617154942149380601120699103850093195441854380861256813314635274879467720631421966913727534575149347548334007496534024608590378715638643034648321494840297358156588940422790036606097600476858477605095253826479436515581637231873017008198494047810191010415126931535471248080007272238523635832749284514216777051193946430082091992514959490536720870827664347915783967917248366011125671831347204040786523708103570713886223212320601488037632241046118243875455307542281033860305158116644189813143679636997924102283193542048940208834475328108600515045045362006027640585647882443652015726599478076003314840761808326426438415055735562643373267443536900347716692017923122769347191521333801889092501129105708171588155639865775400423790768616876916091302529179539751973928490344008238287559116296359618444306879054883793411118191249097316555299169773802221106947247306166561494994411647190579430164389900200194704185208211852965323952705849530719036074574035231709764010285540661219703453509330822794209792377853122855590435689753476805846891367983741588979518790544022421592217329476620989101998609354337800053382545638560849615027722917762875234473378777921870738148964219063477263538693734395094766645724855483021970977869504513371074818681524997790714743277552495992071760273601575030698514555576163722627867685108015657250058749288646092159687251980036011127753706612353892957937390065277271102976257300917253037729281621279541901727201869853952921497286723227741757801690336844566024701219137025540302319122453366380890648981282468427576535866598529858948407383489236197635482569082604760204013368718550115015137648773442038841968785647240198000672574734271835761850203357055311275097659084501196427865394098812337171236339939536988078183641352356979689996174193929860536571054769373073213997085536874070992947023215203825146590359360925963471677958581374232785958808870059227714814527924777468191273745407634918895297036685053918365992668441962168564529380482115248127587519853148299560837761246801124222744217748678315647535749955065639778607049961000154103604584488958449531958377283650942722824416516939690919648243513960163755572927297681581429715555978394141732207714907148752130995361381469330589104421134875751652393404256698297865664015929870464558795633789652387309790662643077544894167255071359586387723414180363273885289603641039516226102575117851286142895505596794328783119718936609288150318358303264207837303510494511486309773329188671051734642438272463091148153492903738817162306435788057527460854538833977450444524480717217045086713347406009064518879115727595137859325076957078231657383036330132124306187417423435271758376776051147924164305498118031432951846154954581295804217517491336216064040597210018540569976123057548900439923379336442169572339254168525032535919790081817418753239051258259872699344897068083885245056784590963229589605222351785446248577838008365151471179679594728203490846729350136282273175674514731324295646136108889023744353304563384823328448812256183051075539827790877982742591991560073280613006609327486898342364995522715430724127517555540655975433334422726110674063557230863912908253043339478008457676926889605024013915288060381618952212677632090023533317385573350665579693919943976111496966098543196809242980800664780501431945719141647834961665069397056052301621153305359328577009094618649894887325679563747964337893186919563003291975174700057181990051971497673268050175373770036835451644541710051755027870294499515239663294485843975817294768526896557399902699754710177948812852603917085092834994922946137816253918146415085576759088331416003930668650626153493561179396434866357877540895989016051189615364912566575330687050408067754875748809400764628648856096705679499541024052533700168913628549632101461591050652534628222177653785878501161412225849849707851952132790293205255549519832041622707793467174846392443943882737299512833894821187001198879189136534998629097263355758835894765834046115423201939713676215501707240716222521200495636325134717784530725535082750516462227800727250618133224278950746773613290390497546284512588036535161091021863714292936040107201657928495960530871584978264952560648429040333329485372595113212078904325686312447061585034716964332802626317118641064053642705534245777359606737206572121562295545442542716517498641500468495910649241012181071604408673393112748319913106436642917108990561179254024163588679750584943411038462078358035484435454751119909219177552031093705150869247974172530678334363418391021221528743128452537898109536135380927423024435626553507479376043241827561527300291068625748622762914956705684050414302663495864349140021566901151161832692168377521841399507895970262569704563875925659850565887662335570994042442192487467027702183135485255937985502153694991678943464080219669623511568527121444985266590208438015254776665236543917026640385581920770824720845468459732004810185080567098218779987033848130037210186628591727659279084412636610481612427029061566901813652182642568790585049368398273953746829664358118309179766565882155243586847704542829855350485123736834332417446043425534368102238290224073772399419770730754205678185544158851693842580384686793094983250082629905748577524609223642278915032151763227399630025562144867799974783207517665237826472742941060866984978884002623054021014450059404139576188331610804401902009862679301087140463250307591740134289069275825654730214955439308258816880308257980516117644820739066727889645351007171431082297859855522011561630081809077645159584050645329064162198246064326021160585332995411664471732024643413729561257255290868731626828184535825478646919009174148375267372743233033033147302307739322462512359773754686017908119948496066962628542267231312109661847895604200805101793557452160069776690053846715857570032245862341934965693742568439641168830608760432179409664636670451401188996805908685583964427445453575869586285859122245549544348701464825641097236870978717371088291503391162797297252094333478326404992770307184869690771986209212762572462379571907860048099362211597399622839163960875420743329671117157283159917908662474194707562758401764974251859337585773481362393978061585859612332096283041661241080528759502774221834280822903977537736794524888107204434185104478573791118990845829645644379142267639200259307649333907214120531725622534342199391238283276018842233819362673318019835709576422516706998471507621053319575230087306447934272264074663842350963585968170084497722688028170326708254848524413365845768881028285470336408818339839947421872528875610282557290572512469702357004273922062024596693456015842649612081052177513424395431376522953970696435023249074102399333489804706197102371507419483004315322986597551484453572441264715741660882677080332095215566597457651668137729569929681217939558453524288995487347678699938698693414890578588846714162097272951089902060242016769007818115729541581021174913611905569741369334151099241340738288097119140920775687219244435288488969104978677880639287025311241561437500927767608479051191090665666179987094708253828528068266555853377432327794215956212830420081936795122809972542672469119676702402254855771210564883815765285871886446303135379280570744150220914172574594081463755503009494677542923757283854843276216586568885596165308616369595861273385772628678814731333380305742666494753242930269349654922792323923747396371529039052204670991014696230983083668815276310448295676342942947125042410769080605182777051489570079315419603461301810670094749684441890979335236258159097893955360155300334714539416656340451701857281869496485453019324222596516557426481589085184374711110615131594481803585109040252567628338283859770673490754001590597393567316465772378874300441334493702652989988858204072641141016862528969785537495094193778187970171680623651691601738475640093770175179491218575379834547490552979752439779814420710009033026810749443398920774653383929903881094272011501926592156856021370648120007241260871335557222565365712026388266219082824271098797072777603393202756270194335308721911536385443646626828228223143753956006360282541546687542576240135339535613679621616906355385451924081343359298200739984124132562653576196597564809393303102443245910912376309161870476923684688794271439085981196139235582555418167241413732607679381527809935101587328480350624868236607465917864018201793359648853349804309720371605384848981429303702456040230320009160071688226151161962281873649015017881931529580310495781715041659448787574894798482951325539566486861979731855500310701160356186861011955710471590001219512975724974521892123228206756985987611510434382212761440582059225584507469402181055881033472394813219699507281853145884988498068158318951177764078160613855198316494035987461883331161453387622405337921521839349378760904363806499247909564538632281203820298966380053654461821763132449166694158292416292435831663999289302116357500558227798207476380392285977187493018296870426062993387594539669499659734905922691423290640151223958075613422440536843257281934159998308584110777218247523828500549349184374437326246650629751146201890947039232909775167027352210885057713956826037749263149973451538828014546946952035170611177912002480078846362324768127147186188043041915263968695240966876557126665191070410077725853627220610949394857333426140621157409663852173756269184668735490837215386267249460615792776451495820184421484112258901313856021116596603729312003147907615196117594876022105360611851446569751371030158937518695664035801581076461388145328715372214281173313371290419461941791436360411250675957225557842644329887148957581325411308037837852640847178212653608173829351482810794179430077401679742087777991614390551180740023575943228295434150338404578328024977245179697753583820080685280357968001361044531321548424863907874911198513897292266750217135722096794355490149381253873384004800980393092475411760321531269724939835963293891146487118326518995576497532133666652357114140653244988802312997335278982127975680524682698331222444590100725712385308669750415839973214285956303170947333650457911399181699870066810695088699956056462933492124154693988747560002344799492873147656463068545145313486607249302826937301413141918981966581206527822243475720098419398230054575323803542858331751358353555057236333170087808460584904291926007847684745980123820993485259675437159519822731343444048888594785099993262811836458348825458463493058203309246629854302031134335558721901601446240077512727545818853363007170112729401048504837774711816522821273534213807449406383281068178112242495255571518122821429301838555736830415570397870348663716886961494070100728667090513252623558724615215774476875609518884616923851376796486142060415891206832384501565522442923208724663414971756497449925692946796304387255266751666348284928101173376850086706793851589134924425770895771787051793305822489510276130506686318492947708403587169611082536838433750719749891597903720615192357110666188554726563273696847936779202411529131166946796302883845692621388266282825809467487333547003533995715440434631214627610266727139147888972944944415305182745856134095716447080294820291400105618271677756167351031348113566099781024562067216393699539966606205424133850880101219182978151892059322551057372175616108644544979526682619907533069321283301324176912103606466572374248222217266170262188852763501510269054762867797424881263545621048857581689137351570285620443121712714921496718099358841954913525072084860910771876063760841745507111537801391426760860870371577164047664528685365603422815390658198717630491261697249417443246479686764085664040027926135619883196542244026483746006770306662137460365858757860556052363721710915486364972893405928552261382637658858417308399307814707268555669686667362057639410060367135960300621673910393023631899132388146859804003670285328086621681622153173017679425015363005835328687244047268995079496081889702663832916487394568399284971325903945486687643456642470760772948679593249024137933040534460321737359755101769796001774535121927747201181648577102533259055569147736485895123941018733849489843795590369251148353894281153642764513133079472650009652409717090768315768055714326807554700371465908749462906916870497093772408005417178251607804074406644461343719327578421337876573569884982364327501289732705053121656295634686289065369202203171612756017565343598376542315474675152831411298650795398107680670644115790034624187069539432519333709357324753927565950716892580105405777839218572512475156345443553792723731690881632093746583370628331474709258723946108750015885508041619518334013501513535957441026659819471281254027515139379048890012511453034273502890457186330465678954285016483155513849568851891970089031793849170755182178660371112541772867230430172886623384437570481094008634051207651867191878236598003804960616039051342204017699758586450308655278751448124485569527068964822715460541801187698961535064803673883533948420481254402463600916438860828316281976655399113243197382682697788767040619558687179457932377302687114232765739315880093315850650637760283965448875119903994673725025786035564572389784914017116488984238223262583513990148614694189805998994825967129687330187328771688691312250032709943432556291667108793076486488538643656391834461463858551365818279455015016795634445270520730522488073814404561886660097909844861496762739462221825317919525940038958214401441981017700007139631017681384521605528871341400399864882444512978856573929371950520217326738553156350685411641598470847721010376065049333103080915836907008867536362885239287187089119190890090493385274425851562265588119378737709647488700394619974264343377041085832233923145431003119648064969682160809583176266814538063968905405046600826966736939987201413708046041964586021576093790350236177314352760599258215682979911135900382807474470988181338326439684529623290241798195186414198218957206394628405663019441877015158651169949578388944952359909909393086734837927599360602651433252962728687604323458509133353029931989837444250034046089084477378369863892043221987092803943499176982098087182316811275109320546012109010553108005903985332712318935006731890894799617906414571759406243955889520285731652035317114155132868235294938593243945081474293661149525131877194093395694189994798878383758928111721827174067826500711472954346035432287614340064227851355030575352897526558853053756234404952765990661488297967611148294203907558871574649998374355740502889716844964423935440037726518741104694276925357813691218566698161661183605703008529838972387993214542846423912894401395721241601990326379245611288829587547015238030644798348589789073739042774478466424864326680346974067297546604110120153057858436239282089464358069018543137091186976141648329956835124076240853977555041639741776054594561134331765244920783455748481888768490806518969157747578214458310908231923131621141762192126678827711425202869279088224369217870983887874901019863031140787108038184180405022834567939301759424511082277159685615409775480501175985783677147752604333969438649186222679326747960178074833937081453344106941363102723719729917831140446286741930232459832441046348561846756415858254198907639312752391836904008999164908133472109464421685806269614011460938352131555851787593071310682534535997708134584334276612997931418326186653295909914856134671054478091229607882059429557103289168385152033272335144451441208284284412628884744923696778441054137206927359679529835871602191784446421111108621742282141289098560300796109910844669148425096516445637044780126211173418318903801027099973869906225092724096204994750268039004541549341480924865631682836042315470499348499108916527742519238683901048150898561148569428517094064047746248398378950487674431577351607139246809448393465906886153981814942826810230295679149405188248057235252350976937991461706421391676542684693311441996679377712915256494415560364904519360295914856325116009876186052104920011260158122125079793944712510031060907850727697223999293882240221078529178729553183310114516792696740461508641831010731173293525749338172172558190541856857768006407667891879539355725690450840000001855480460708790931055509998145845667338936637262356499600679624738649775741603951328519315208824593009656075310502065595128169835847788073152375543583405462345384237690720172356114192102841909709886300683500622845298412421820931076944426313763703242226622279371111331351816849460221630240470691712848849270326792395212919666135226403707415250269160720960327133230936988098032940649051812974148882505914126975492443683305357506060744017864084097905593240769358400917364821204072326993552098609210983868864772872085847584228989103575093124016427889571553191791368805637652242449317665852365014809477546446046982097127897832749725959925734053444476728518543859573806495186458193436939683477807757244182250910955238332964303205209538414755397698598859930763999592661684962664406992731294586288827678004809375490488981063183802499976482493317309502194247621281590285525310348466511999542265322205802955836500974456792354615818113681926721942895741262458115804249027832005622430836152742684216215831956658189713445911948144269671435660946018434872146113477286328082056888961431094996598911417968320833033649166068096564949803556274196936662081472877474464535301882418442427697376205384794402656922401819852320922610348433808146998182032073061810465085750976348345640402089596710631987773240420231300311169227812081004585006727158229030481677225602180620041313072684957174090160787819754738459214200235205411996785670231296502327556501398203705948072267535229046056049487689300645971712841866824223724169978498122458696401996482222746565343415839330158190695555581605421124490296143704706638314152774262655957997400877131715931075921802872151686185731021927260130296540783232715573741369244731576366660827916380287743692937223934604327503544859166781603448293871585585612892546271513067101025716870396552178747181165085191557862470886156648610573251555843767612280400852354670965918021465797237781713876325574410015851193787725752910559966137051981783287402963536007301450157552186251720905260407530024682785194206112857295216941769173874248860579290391000296596680750791827873031652234610924295500810737269208257872588969880116401244044598122263009175693555540753836128247259883481005783317485074625728112734401125815522816191224263775736618315763892155930649542155995950158290166293636175821329817830983918833276087971102530392338544417902514069257467574750301775514951897025436386821958879889263322402410194865648609051245974978244590543112953570187807630439077384172412430820350301283713204636720907438954934145608178219457736876210187983699857638272766988728216862338556796765020209583976070494424974832483529031489572609825120904015016650239879295081465339107020435147566224155703160536382598575785131385345448978566783623098777870879655794688927201540280646722817876357643699398814520118279394066677231503036066301770861173010390369064039807148630289287290496624348346915800939871772583455431038582883882827746901252232162037992095866176629706187886664335370239169177362669165964555215674818678690990169352254361229443789061090990010442542001173282275969971600175336905267267145231751248598701372439086811146958805522696621200062971172411123327418759493330047647983892343544792125862410819130504996306832275982059103431807802121627451098023237787378052284482244718539316621636888774981171361226629398941484871166000306249575966313635489317739082021546383849112866452134936784745110639228305658205671329382335690827223080141867556646005574654590537840580644182466723252197654603048340499239640882522995909309062665438739302102889049947049334489195614452215703233872107198463698790636251683683765657975706408485733806052175315265163468753115793841728857741000680425543933240408969619062729730074660141165446260285355421051417021599981980562416915038297252217095080923171163403244005095047185508079095740032859811472125804474688976970400956358235145499221026600413638789745123176623479734664091374303752897662142778692304599774668258685947058967988082504767776313915500702690738015051833160358246349197174455285177032004052213657444212539642300150786605830630873952440215374994664083945827878324285457271979364422518261184013805653175737730178107711096244818391861572023141301110160269708511653194450628867131874776652547201007945840882696477270848008752537787696518356659079004557821598468483900400663371373442505586173340655535158246247351136454200307587578231176795596185755382520041696220291548387227939883340918541960818037303380940812587242091715553419213874410438968273083611084877133677171021774108444278879065867183269434531279724249831042098895973341815617632615694509278164866889154025816326311741710481765400971870225412849094729639489658162938053901170074672667361982421591562364745871802696579776289082015020901841551529077761098204797815103697057110250193747533084681456645946689601932756987283376468774792420125027320121279441021468449735524228791437760497669371988909885937923032891484025939774379517209626734743846202821517435858889179911489209067542596743808946892910752067752829272134208455866600201518662383130632958993611223978812672295034294279810285242393181922524926795894122015747057637684585899813663321472543438975177577085329408280411369203113063925050580434893954498395000238416514996236592875614600083103647882064141785276064097719875760689800130787519695652781855568703280624992473258060765125451991303740481205027484283688988362999399127771525818277638795295791929520539780568928933556726381334109242326927364865442993242341126414829565393082286193275344389928832480514589228953281316535061230849156551797439503621010673196592189990836375246459503685913405312583227750389209428182189962012671558731182729896976998331304252586902217302017042592486516591118544343216765153782026105702318370056477811481610851774127756666447990824764540134182216637732000255814215896933995439950373284817829617535184452707839048575190917434572132693493706720485807423286682138146733293820893349038291359061126739478749812282223994888998262055633555437797403811915380669721116006839777543033687973320677086716631125771497161010293621192590892164613190880643346066558215427216127984424816450603617599029501449501817611308161240519621440209703417422062659032584758275416968294958627706781982086628033363044458496194000370103562606161084067787716684413032112506998030272265901277148997767719995384781051058459835746447652198157374704949729212676943777805877379144429479029379684696318315331644141947653904880128971112108320708605990113257190554792015152991584520076549713257412939929760058831705551946929589587216074249893586913311377481577196848756764659426391197721241448975860713967356149365486151518586626763374608439258651690147354506476591968732573924296821738306160945742437263245687299805565929804709883222012908768998493114197768619949873912999185877308195809644012827496891588990049694107873550042033596137404410214758864292331293316713166296817296859638588781769212795872911642293392319342690243202825618828622258615912664315564464846430004523494751222157854723116314040957998025995043566896805913192408045582368690217670989164419313603559615945356692446900630685948470093163489735957929277693023246998030326050934869380687979249527414425013466361880448444361534319793938245211166790879225176483934026496268411314685624269205973344300464297278785411295361288616699308845293869133016924318017100864272139886028875464494607449587087094955949520640399651927236736342159961539302030617310992676583359884170359901222597456668567906432381461501984730502169013992978753506001069716286494623415558273302458208290236373422551437902593438315504993569498645303724687799971249972540971045719010295134551477867457923948587862364920314849354011803709584602135070637285045797708995279193820329578573327423796719142398898029175703168865773559381648453491149002227278696636011361419449268899233603159539933322214168333796188225701378735920356331833693015178386715135098145098181486625394980698642478171389331384828183365099920082571763990159848885453475743037759155439631455146147793965934495503383767382000775495951396784457526859237274028270638153393508860333461985764366929266290549526237072858015783571702462135985732136490672401075420872107060302088254751003512832537480637967114652977044369427645666823954775887388292074606780867394303151590739492404639203028615823985998038459983001777268437466034740017702082088254716465473057917405274115505193070999616714817542925292902322516752647955573250635666070980339655807424872858513595670746960260627414804209402029239571185547364616796124603062529180135896597885000355455616129203433550658250956393457203839607718709511683585290697242541511143536960921715306617721361114213800361091332135701068310997809199945921368971348086439875997493869484819892475109451932956452709584647734035460202191255302915012043711387617276081610399828046502571294435284992033974936771325335548706475135093358346343105364363362484427514500153507992652026300954813032319990358880774059795308381922505102688704968870643200210736732909596380101168793974233367606244302787140403193363937559963164326655886986503670984075568264042853605827985071061788217141715255048488483224992830814896840340545321429652782905590228941343456990417742760966637529350894074760764594234926777519389992262208589729849994174912818840207723644566375215092630009866450355111290887309361820420551362231775615138291799039381016986053699384388267285748925479237715085313002048034456371468974125158838487702092090327157145793364566833447585118666864331030886432076351535061528627624350361045218560541282759794299644135591967049603913655881785418167361164225651010056134606144824344530540460364634086524643961451331223531514357149056572534782956380477683242224344537599847153292227601735744198020537684372157778476504594054168159691905615307955414549581377163216953763130873800854634544579550908530019457543418594111469053616600287870113836871166035078039262740102904015537447975929302076365990674824691937609908614741960797241975828500800902330363581009499380581105633196558063319553527919789758810157923298222611034103819575708050996696262140411685848819703369861087353399407720093522307129454620046873307047285023257008096355625809845061532392886086508386768973918814931676290173276111667549137315838822737699203971443221980564852405413497419654190384885841625140155630388045842329749949873251374902399373329453299643176362299486884985944280853266279206237413460122296246510103693924192676661334819356404883468750520117612252932389461868644866526431681188049577271737967238927613706931746321296287887904308066799091051416199116116176779988652176534375031932523357629092327539555517256618739238029730421313039305703562334353249183087696500469707098242466952598495418845761823880108040612180442501511436225752510327162645741566633572366212872964783877549696603118815594643046477338977422286014834167684502415507063366668084844742889361232215278737183347229362418463964252078292102814627338413139148429020027565716903065878940254630477195066121160938849337648375902906067170808428205681857409677244368598526275110822106697995819590696862885317467450968868374826959779908181748787500258730962307549081848826159810448606833463068661247463750274638117543853433303387260550871385296887157283050105901782384973356628496414914552703311885819368466715276016280931216997116069999548010306641603939902970678352847011703817593461592863959258035674387161326842934450115506300365552528157772293180447525373721445958789504673931236839245271751502864956126705802115267666227639717567601272632773609711130464530625001372479280629957398503802877840124342863835935949337815374659917118129095335898059580497961252110902800534817940783764889656375271534022609419177943241556031849829060904914109502880380256603473033554478807409914877638085662804788615181835568735792261289305708687121078747954618484567120823636359357605028000283546817388871001576818786789348920894330762158684380735811500626279245663565075959464157872280164364449503625275630286012583621987423026551500254805005720922012835154323543308429721670991339164816178167871518166722364514680067011782096045053502408653514006733481396348008521945903763895041811989548528750126098129805510171234076206076557428266429473479488803244317873055317145152439248214557148240435003438096422706316894152091426946105833237436629746373306423733924330994488385989661997807237533035294261840156821082768834427982482530225148538072799373913217091775413217605128512535778362018100737598932140693413974253589749566623068467380434305027576885876629076792827366539577389657380949415177141853452084751515034593693020163731834673986904588270228237623455560977907093355826477945571125068535229546475419580628078346428459114694469738661986847377115416005733798388558844058259032072130121270827865577998723066596886110567448141301904811575959882837145696849020579576576677137480697120553052447010982878059159289603599783104721374691556726560857842892612579860194440327576240691569692021219096952355988655243018485617203893275573419311470179829109450884490371600885922266361305216126860128006458653943251945311668383790998806956716998724464872909686362304105683696004230081603104159361246735418958274047580808017926963366558032349588534725591733036129311953097586564010988846973169214842123617945729078763372265963851505136556460835867857595728356873290406602912208647495742163748885425109149211333366333564500622840088960767036473812975694703430166749875931253242552155638431655170017151833880208494874854756931058557908880918183049848685515230591977663781782562450609622872641638126242695941515817252784198360761322030894703449885890773664514007080503816346276286649078786687373776946264647716138764744557631526743406076324404808333624630703859379461637561890175609533729036070686912885130929147501081852986528789989258601291795507786553976363258100609421853622154302729920504742248761718559840540334800678510540229984128377562673953120901023607539787480214145793642217868405459679066305251865299656562756971244559192407800188190616115676635519068500411216561392672112692714239342346436771804167953954017091334124946229300056763453394935634209562909282184422442874648822879123542754676950609002732696344507922645670277012694147491434541120670511442864878446309369982402680335968957969356996146947814177642396675345159354017694792877459459565288929463035346331688529180468941532777329952883073413748325440322071112939653074809461955761801142812883106686616605768497936010769504125703743011700266018521513182071567900380745365825138110492966615777374540352424004534886142022381189145074591817872437909157874821778706826209976037110162500127723750542877043303142558144437418722232821542120175397860538165250773836645796884917452135386230006662468762864200875250560556466672017295948804348219022603983962045839407758209642411657294880322729319849330495668380606715814928288870608087651678976625971755219450033054186938452337262628719275772093967632393733624046669919192396154416930973818126177073035574691183474443421240792288276271302120883933442870511655686956683242579904010423905870111743102249614680795942458567742187311953177135654892492329822674209231982351247244237871275488587391512656045476275004943007417031261538936112489074101130238192481130115191386081012339672023020473108735605531167892682706227508869093450490993915247287470206138236635299127409745745595960426362998513520699830347217203242264875438913347600547190889015070841485215699796729363936603143945918711772585414428854833352776401139941205853211897939664958840730155873738170426990441980240159143818074752528211146499143235933719127092735413662159648586730261046733388597814285261453574686312045057065004638980702787582187424287362528312700922380972890756127298948841121517623031417161836220550617175906845938861660539283193800301495913771863689632921697606615808210824763785586816251879241680497167066033056700502540778434924975219613871665108075964646898172260222300299398370533776877378724338732560158790904790661855374024729259670730398240259609590430174676355217029270526782059069298316746698325828920316727984894285811939728973926304865642205514281786818907661680907135700689822525344265178794999763293628417165355286654254513523157025285155938374945671376925423583001189543391410024905759403732967231030410149011713082417490520705378551164279541466679917209774763251998201183617678206447394311971470007162096611817552030699767731757760005430734336048008420716099105116836135471791377955719647305209322116825459870531849979478032097755972625825594811674081294659689128388887988069685301268690705200702834398577389342672700092758624094706870373469917221490210188800094624200477770651287217895035682726171851990670528898003876497849011356713479261297709229051187937397222710447921572167399700927937227511220007089085642989451998581473139410443524094155949592791081898151515987418041027913110860359581594055252697672439862206997248632896804221904472144724248830633808371255972772206545759273991762001482163631265807261480392424178477071216624357021835183674516838219121457069990691180648267441358290754780348707606062818365976481095345588798473675734574837863349630258917489320037188253902858703559240857595316939683816514825649770546484484937314122945562913659125113561658296789873513677445701395009567885862595796020808417336048408041655419911541513107265791138445619287092709538338497923528124756460216503258305616277937946639797108337474366949359792987465714145026713980566145352401187898148314325287928089725994572161178119188849300912314694849375306284440029533633528273740083665892370024790650856636994807320658332363474444551476373177325960764540520580857246647831276875345349209427488334182085560713433344835734021471520407404317458754674365998224550596669914513898948740432791486880897552711339956310183002621125365041114568835936133561254946867474057891662622801377085788338294612431966613637891865267227292897183621062724490203374594684645562025891660900291465639269689509000394525865677589848498570191915538522326135628281535966955766153691982763324299562760105282668554827083901255502939439656784793540394836114814230947033079737714485317870692068247887473882923502060029160808358155758977456893441814547075023438236448677513273072434600762817113959840226372420148157928235432596357154284737768350923213892193914948164020215500685764472524454016063014832865734596156402652278243607958870033715462417331900509533670369362564023907239496961902489167171358959400115592552453211066390674930930162704214130629515384647862096437134048168719355051848262266244628568623781966136096415141411930778613350038519238625603563502696118595407106045726228188037244393327011055556069401346284086923652279426225445526852738401427567261144650132542042034177549915060893753686156725017718359667224042804029471940560534585788394929826843327073477446307764268231852069788331541076011140364149982629545605037608352406808700963955425676119107538863714659846996686878199236064764997542221308140037093758844907056348831582191981225284499219916603845075582461023843753382346522894726708305717025024251728196949158087503423392862799330557296306852671541168720062699733481350723151284125137257325837718622556117929839888773902022634518679702834384244245705524751495875104458677371150079240592972758873007639832921571144023450946566139211783007251345022182766562561045283438785078035220703645210917552879921201307030837801347821743797990580622953849264413420746794521132617871118985498997605104648682264420966023406118746328182829270992981840336481026533367093307113204508849189837071242880037827171680596856793746862584496041115173319806414008144019675006389958343447571130415516364554295854440448650882277909469705301843003284362823025693197721016215824817638415094960335385174860019835688637075494213559859935936251138185333753211058826247993455884084773455215157522967852836995226904075039499875665181039757606166804488185581838921320812575175362783884160123613099207257075889249984432172267902611004057894507528336037028241084366931851546556708172387175583908270637529811524896076255723950602940464694237304436345381056254230087436459532345626763517775054859107432859217766098982745991010795898485776153115993937385610443337603017154419710585626356799248216739702722953177415960409864210775786315098075640143812147311451326493657224660429134714165267649885292994755549543122043253239786949034950881109861179153435362147558651385711377836464013149688576018540113222731727373900948689433412256311598216685199852336133807312490833296078227223890220909550739966926530309517186945901937867372462155914265734012825790719875088807033307116885959895609079701356937225188126696243071322425445877821465331730583233454285748958559042862840319271826211385290007613794455004536038054787851273883087856277781301092957219346296876698093101563617126432130464301884967330795589327717629125874898986507356547635587332899723104606593753944717030010806345213433552987264718826724015309232648657916302103169099402299356071539835086415566024377193896569065886799989115094006452523488689356317904037133799626670418073174339848804927538959814745277160772724050120028447614666302235599522309462928871232894161664320091321117856839115451192430529308375546930860180322751246219510422776397262481505919838680958460781260260144200408247856292714632735577280797296278652619241734784316441846738405098980904078349202794845704701554084121988224266042226972875086619924349867367361218555944777980044224447678575391910953667892060283142491683834335628466431189423130244889941640655761912935849269336645624355018463426467872002732478120915641747844422080783663745423071496910956376520215650318356855478918443210128499088538226551880357410924612047838197153910281336904949746180997245024855883450084760846958697549791539576620748059345770006165352937460110945413471964350855816934087624147844493825222890086928659217556841593270107199516127688968438396213813582853857071547425565009123382748812294098103647487768949408659359112304795129003704141353235246221032689897204932670705057698559463970991554892708762665454201875251291598595609106305898566854770118056633166279229648373066077478441877059840397974974766457789515847231879405163455471827137517738831844677299012080070596076973854469716359027125806682403094216152780982157649597991013624991768613437516629859047045399918555089952581020438995315183265099783988835035780278971442628293770128229371915333756659447417466677564985407565140148792687616629857469417284700273292864075074105688209886150881170095410791105657250342199584913942256526981214348944871719080612980261402157070580547516227476534774067538480624441063405588536912202687036418504510845889738842850388231054410046057450445564039298072820417228360596669996846955480002169708603311424347499657678739448299847313483573971363014514893500780977943975327964392633518408819174934803759350539048515427398597235181529326861637937502415892010619876893130558633997408868910958799445382026930951825086660903771040224664512862390137382298993000781532869810885956028738582447815553843388968880072116615639622851734165263511457820740856844684215143924584518803071519442225660911371491539020813110961921800491028039545147796665970668341525683903527339748692517000454341476461909969475054993145560357101356814275691116527056912350132208665567719958378631404299322524848660470230288747986720830295816869716851917022690692365053213759437345273452982748873441722565321036784210187278351430318669571224595293394330246215939029259505346305444404630023243859250213182440750519678121053981859665556864720664233105649953987152802934840781698873497851125958325307491882001702832735438298298357810838171337745094661908890116480678913574266582695714300242119385256913007497191911268228245218252849133537216386961997433943149882821722215030028819700896897268509754067051864915043200299156136804529311394581119488930361346144312324017078850859217111803999646749259826525592206852436299916816588494994766150553474331623702306203327951568057772399573216155063441082963287851622683793571913390122522684970685778149960124027972728914761869389645262548253072976226331218023979933826598531642266196372958565293816980761302360718361818212459770189965545630853311444390325658941729453754986842192879650853949238131295270162599825086366156754575322868255581183982198934094997370310587192331874013598207084671479508950155233765469251840846305834444948102887977997303216024820978964312330322790114526383709380274306710987981099133182037551514124059243466749235701979512286478208446482269524702640565427195076926695622670616271378020470451369425023937580491619404898474285558012506078478619423311412213699250358707037757889122207543921127890571005869681034035361157385460550117845217569541907326863381639850625129606979568817669542179018586969673383669419736713908537796185746568599748867822039134248422155627544037060140763686021826329455344544672559610519800200894512694072463055370992621962928561372373450202940602204495990620686417151213463518886729594560830246408023564665285196789073988318381001743188156982884286061142180705945307040408821764458675687625090622260407599266976571585059832991030952355956683213411105806082449923092703181355790600246631118976448540470696258048374146244419929730186831033269178889103696511652977559355828377816526404510954208090165799789635760797042711578570076539718629011539454936944625185142267605263986812935170973400850629562447877919368041188857211378328699843142161015411132015246468725241901725709705598169330774697752801408845188870099146018188458224103913140909268600763534794605416680089248674156364639090053626156425900260076299303158691712078906883605414774579555627168161065809370237576696599765902996063342027323654008269193820443334541694466714842923670484209629433677205903193868256601005156333798418572864660626665078429831266482606196759167381347746668483045071770151561035321165451102289816415758962350190294731243329902411870529297331974406490096662716353019576142420267077433669448131574995161475593389136512385794552158536960831188936996898473874955286051360136782502862999529383218807304871756732927355947244542420881085846885947948179118595636247109599547241019414347518156414703035920069150475132657361303967534230249288626628149022425298187870888409339943342607897591905258507205101141066855429650114291443777928230813403872271658216568298778065059410045100953463040315194211115450531516329952863520294411555408806187669293092644208275178641268269836201007892004754738554933244204506853979752517080348633147574704700701793215054610634749831433310129865517242231220720536345660421487789205432222088348024824893464199730337360476901730280907452297682741743165443615132833569258225485908033438135093112103261239836203165384401042621372467841910431918111430032356622360018342219219204378426305383139696872893279781101329750221799963908481629073516445623740520769918978927523226731212303130907433755120122823743459377288930595330819641436516867623156585519526289429848951554668571418489088018236925964027892973553666596248190836921223919221751078097260001153368876383441120186311893203735320412860257857164814111412115410430980498486014250308831039550527977531222958657087894406667661926476062859163469535303257002100244504326735535184507344653807684968413407782450724084360067129239029249810676679895921671764573900247043913995141376910480646143427938103036005802777609898541409773508282768581015797173548880399791481651193687447594989829769297658820531405949277258814662090596552420491157953885817541066455244658498641689042539844808898760555129869213917212969199521153741022428903904821627367998486271137644052218210562749263530026777724834800603573074766984510925679013782146399781124608331595033747364790763719891634486459934242070453107396509660400335949709824473414293448744564210762315722805296973920175991286390294847028645686020142312551954340146008755842255522820313034331617926189954848911143043457498925076069885773456869670394785164635522721588633996069339482758626385816650948740640730672184522327168186872682072867036588433424723010773276878005818430938467402504398892552348930384564815155140772600082409567794851083976894554532104078978080201606100314252748284314791561528177841764740964263837258439023120044106711911196670798600337902407549523041343693575682418201383042107822397519431247162357808313681955426028864692462632083845059931397051189584269946432602164008838783492328102528803978370571293929067301572128543831290252359537691875301773080409661335136310978980659978115568211069082275758092526191773614926925257982155236597172354896545630642334405971484416221966012055357723045472652181555784936046534343493519963427380340587011434543979192078164622102957969184908669895336420536630563359769769429846574541234895622309140559763491036443280490938786474510394206533498265439888812318005788489079969460575483453206886587255643688240163362005698681660838000221044439060650739240790310251208228996737129789600767116891828744837603438503562045538734111585830946678276985222563797583418259959777035967063543379291958455755729726767537544766115384598763002033276109049346873019177356521439800556927079532331185609058381632908813590218020651389072036423956474013770643731547039430147708997204177838211587911094067750238378344114723297889696152686863419627523402984638720669550682571254060303062655710314045955210756837083882816719871890682829036794394876533197071962342177338915657654668702683146093020752340460559117462234981088066764346508436420523106913960906654659868401415363283010099131093997032625740571764064457169865760667675518987800646126905876149235057896956530336953789821984705893646531471323250964862641681008044190812508634994309004934103719650042593447061653276577900163731923384828839870606022198516775934076628182710600863777094161359252058881853395864803281688604657318013172467645258472692927542855426023965864564619926309379711279106125595933406440334296273953957834921320520718622562405770371363273794951111503691770769073175664312894484335805929978998922251968082826654477468577266125692021665233394230813888964588397142510266420942897258273473022851646251055397116342976477151488932719827630921461949726574322177496825126683161691147654131541416315545814861880374152819691229065248111179398203347349812107884575256816888194974577416549063554791597314304805770197868020736773642540411965521329492923997311719599290649377938350324364397630569597261937558894168255296084815655785895165979758294870697245580840884080754355547368773998499835351488746845364626649523457972034515265486971931990923598575958648342651142253064737892099176622640322708043187782543323103845259998505404554349448120682094946532236614409598158228615299824125226321499732264442220088984092169610836338551645512437794346820570402469378950538681941705540843335165400015694935830386363607406573618054836620195250253578132561380459695443467568428403673453196124493515667821910094231132904751530860976758373129513534320131091178709472243185271030364463875492174104864893873110111691294411889429963024050457960861536323769301026285941220178981439813058277386060195448478636840803551330811012659688518331796048191253571960682389636366518448026625429159427610029258101882759530306711972143822356328046711626656441629520256856948858886148073948956093441560686199988336253548391800624971797781754241204610900636612727775871369615562010545377129926156328586021915001873854407327118646465372011313574928946003843942652731365187313919295192045805561443709996892292235242160568232287169176166140650182810498970386568029750197172007408168076535545624051671335890478127162447675352219312545789516227208815377073368529471616037610375488296731873585986260041053600771049933321447768357103114173108971644558107308771205397506088415161034737690553654404525758765819277073909200777753312788681375515928130454812159616205641894004993117499086329159922066854802277752432429608544252334393282227397535796179687277525251800323911224828314784279640742501923095207880087595953910641826337855512057720790978439336457304452818014257161345152490909806586242982268391249552588615131015762561593250274825788907150172473522031410274579229754707562783539992531129015652640993960850987853836426910933496223599062967571214027607279476935553798135025277578190333283015734403779770138608656568294161683516599721183066936641693284839781560419884189626305403674647069860283756090500751370092608152036581954800107531442778565994884727366327762675569604225209612661062509930019869136970547299034492576495925695320288628773406404856862494949324065665173197248443691271804456674971103839690147798435462430766608903014255281147374508246818103852543306520063346947958107362769847837941872179273697568601614569188723857664038354228383451978061905899411035746439774839232883843281618678117224962749605802215652806340195756759403226054140155712318013082870704127112529610507493096046788926957111672300346577955982445613437868982547136637800388228940488752157140153377779296655486760402055969947829270383504141517628424463049553675875906437693256531397302844685387534851561408269770936060457881391113735622307150273097925078875860392801037714150155882530132377592404563073290344185302880897921782138357733047717961818251843275047092638222781517482541064357850687587029144235297686905394474858772303830695436512892032579637180101484609758632826813400115018883958740508565886428629976023062581085642021191743189083190012512082529399930719869543459134539644595127572672566921052247820745004924552764278507386632372146502800892896269082259050301201444020458347489995363598476281049895020237386842713364433040154980109588519432555650277261125428031078649383619861090463112819760519724572786397759596051568223386130667432774242472725656724308182644755870201575738883245336768985355761168242084432876146603738525282957191149506286332726303175028518530144278797698566685100499673058417091341124684834312394331456182962036815582348577896011210139960835522741139190657368003607385919127636657147723066408929088396290696269031495210674221615256523832455771626000904049015238242662709906205695617144820181370271425680172778187330650946823405746670862481556621151615309319666878337647104604156836986991251854366433592230372891352332183806289843115256228996401212082568155076380874142808467979207286890268979898674572455164535019163771086522140949695527523294887142575311464735999908369899245712647984432648569141994412609425511778415935873604255266902848358385936519701593100334910654879968194792189095109987673579486369731932369986292602346716166910150083766952546099719250098784645879519147462628229413498905502654430440374449746920803732602663622304303604238030050958396999702871256554993515972987676819454252774579120069924561464463713025772390646928413356187704567000875370579296787632683104429847569799751068375703022731243401985901901500106941695024034394889429512752216589976135617228329332555449098756232864911607319780136618436963741308058236733146808101041676706806742874607839464997022144721047007495531477368062558120862531094781806941278240336822099345266627374708750859511570552415402513486215474514171059322921683617200793504917880617254302369204141311075324173407077743562550818740830043189396389077916946626306697736589932977060268069030702816631412684806089670169353292261728779064872771548433989993725687645819724041541077371349981990376637519108952760289224261843221740945730280915257669840698392372495733432236898722762693390622051340828534847208667303832494246135733563140696325189681638058150866947637190553352310412182619923749412887761626783277021268799878139606910805756886408483233589258691003649119240634290630165119770391203845789686506513024803906608646509836679537527106858420421989132810517807041154180355821012380238525536518638341925196757084445613274532805249394819211255857752688958696042856187050688784547633233488866050555266048998092251505517360682205101221519544509407483110594284044535223055821682810822008247905898081009420710161636950816444100653846456573040470780110485068065722071661647464443407735971183907072390145508567590112231444155008902585830593828037548519751676923573114252595258743353530617880889560866655566943396810765457900951358236039896172445601765826563601100648932175298952741336599766568556307320049379457903452049659069366408247162312298786378928628790979785273258982265679913612396725442360149851109796345867792947495103746734126034266212731576757217717086642249631879075079043828534372992555665706335053253879806449008597470684806165589813080570226003512361409153500048766667072258388489709694137023428492665671955841903350947616128930138987664926199008946295040137475856369613030518168043223684800002642079860050187335674624532320334467797675367836182360330083111059236640011524087753702212904035416171604686820521497589394297705122432335260233084877425158099999790496340084807069360170379301221800046461081908431775077408249405932261157180698566213645224142454521439972318442073202988297486628524417133088435550335078329457150437538335927423381852229861220453260494344405774483659139178119556826171625189632597848177396654132980321941650543778514086112701274641816158581374539528002553098311927699918992276110236680717855273029696292734751547472786960258325960409277498099978697412370241313198882487081620764828057922712022552872142645356056247576963801280357268193686508015580924382356836494766832924650644557067244176960687585861415591720127927646794675332003774584396095497349497923921476012715124231811821993718457372082681779148021605209413441446152170403514769721475956704758164398997827602488059913321201617649513921995638270032934014470042638304725320625150193899721769682043783099537243240246281604927802035294193828011653910739889134310925292129422961192629677964468983295287374302306074972001288719018963481433739731775094157338986254747486873137829572713153105971297179031817547238689112384779484508791791705753138457742192244173493987260480875111823737327882117307433099060144817224621769543801825723917896988301834586001120846385763198187252658176951663754788405064975263318319697969897531922748039305814976725634186277556506853048628912278079677161935198617897154270288425643355424008276370142502931148271027933150201844145627636048219474557551859903413652938061147796184385012737937817012017399279749303010171102409232550129081588625010652532484753086944380912249746560368229546334791186713135380288459914052731396012563364547371656158203385008152092462764351314359284883429637372010398971542152891154358623617916033959148058861383140095778373398007309048232785560653614090449285976565566378279005607321652951704363392582808870070931839323797386092012969684668948460644753296786599031177581604192137918058781931564403374793585614873565234809849543658632919084917954910680881708393934087143026273867531317477809047039249409212533588754428914239181233169497219685283122515601522870728769975418438054491912531179499438878589284869087787818932053777137740054429650586393213703909239953081351755742201299253306781494209063051715646980323294080635437742460776014065057328682906383002632470534172386666386663763928518996728959285320010189448138672752104297747778558535068989195840182552925172926277421341768580088572854584227402113730204189318378645833611302560575679530640213681300593064348695991105733602527331995149524641635981467307833703836882182308644706833980941717765800033761580063143023088404895607124138935559942241716343981742334310093324466613423064722869788542266678391421158382698187936354834791485345276870209580593487581439147765741725242730321229029655168597725076410321194131023226784925004568738782859632191574038412583915197518795175710022008531781715569742299639762124770615618760684839249799957793831401475924242038458479008506030580890688684628738790715541961839627471405307903774921903871837716069101514773395710647353711501396785576666095764858460220483028652716997452185404705562372765961727415046086206553510022804098718853226838692302095827720780973571779104928369666999456078741608278028805327640442237987463308389835355852074458347928899225607968616471371918718294450523517993501718854791086310319801818997215489044867825205692047992525247724022998059195020589446371689500468233041351916972699462820801600309856793298037870832341160256182682417954482139168323244723829250878955577596637371424390875990980435532663891655736142826504598865473226016147897853768099588630951585771903903242951181165510021851800458213553199901036212451699924829881094271702177074801862604458483956747276686407928805687705085838954543725650999967025628661496885034472775597739058571043638183256902412560700075074330235197574383911196668555560632586701017244968355090530992781933280357658492113981625801880956074229877037914491987906462850782981989348879170340531704525720834312787706720004023576967773776273389325045740465051950784187841242657846297978980819710323785317167615413031653767280762235751994393044150130028372896236377584475792964048351835636479906804127889650008855747145670401435745362084046561497217638947729544023678764108609045447259110616044574430776972117957355395967058855475064437181677837564649106656185903248402575215016262714539956496731194578405880035347891740936160678288319302642163323739920122857133953826856051248850970925900512997501862879401740065638045653875983122337239627271261794958498614389245897550131374488587377494307979639788031365613022102346263374415868208485434399645928685453507367373742961906799707394494146496179987675745555844167519354342015946925249510215493349566084928325202297899060425442387900083671585923061481598876256273275457228888270932407148244250625728224555714926918375215116048940839452637993951918162023108439499481110878828063120285270195976760513215216247063845563249742778941286515672696604333130032954291332989694541615045329988227323485014428048180868884176585439497925592633750515735453776107990420614244318337434891422809807676165152397053370069577944208839288730879896935179273821975912407524989399130656286892488128648489465233883807036400150128699707127689179474129019767013953406463563158783009286907751420253108066711814185180827114408433694922754598693993902294128699154206137291139667428289730113667675140363692104563403151291954553162086554187584846980446350444418793285448300402580569446228931527393951212995218006579447540150401080849016482290849524843872944487709662266323416845072182249352776118040864252445273813577490846664750201179422927523269480304720219760697990050570021108897317830178193280673500423309585973784045782642780608356933276413799863365902897382788060532629095647394743394450933160872789048252858739902314738607635192643862793684844917148437041821042945768776785109168847100027104013749059229176034466446174625409339210848187986073852511867964242423450127478254697374796018395048263528771364536520643482652282164062965130358896196997222612430305927990194547018007000923033910852888512419312176355208048750367736062082473093125020608862945581954203685956717203751805467343743055401762333976322290960673969934797040294624291263372997503985818738183318214174270884933412812745716632390902883037132327147613737034656977780784818444477582735493477851805052206749732518334544139848522221590002449870262833630990277973759254593631394408775959932388878742989290625377238129410639215533203283836000273746038420696865319583929990970332835635403142426610663931389756005697060144039881413690365686103470866295377014153673126163611596096943263438138238803933370891249396488774949252093991079088296753797926751620831739192073620792434807004177543626774616760025479579905031024538697385597467188807399085479877897689412499486209014575706497210438171292585294013121570169913172957294800723737383982378988210596854451867214416119893118441727460813921307449577657267358975205308190744187160334808479125307750569264016149406566319970145897579973132628372387923801070014515258334010312049451942028621239117077948446312612958900798762220913641959336761835549042018078155223505026269305835376655678145992221945659074875104167853166087781718498771135285990891903202962188577082615402640648685116904601926812903335052633605501827576122107322601070862928188359458307089888915488681292783250211287372898255147987113314558593768742363256156900273663143633424690405326250323537768752280402127180856626014058942886370417600096190873659509510342008397231815041833711237048928802187251020983651747319828452017422256067196030714513185361235041559103755875361241599862874896319670704080848883076045568179530025384728341076815077697669582343459865975886209407832831573292101778094644046421523885242658878548422073533777177634230897821173044890573547682686676695559542303589928033285505763662418946910655858176911112463154606508697581132889996111630538586831457901567032390749331041793912683510451628256207443966151119656483476479692846763871042693313889236193957675080905786228665851758187334350339958621063560027760614780488981357091078766968520457745474482999336241142934280017831547802313135880596576980470304764957172172621839204824139783398519003072067403873318075918030752440862319287626988560423968735870491644998927841983743983721075259203859958854990482433777727978617381524331922886240951977263874307191244319665367913566751098097012977992251640860696261660386200662084741381287380605288084278156876780267431165626357736667452687620362638313320491126227561541330776859488058601797336648361693316078754567215982237479762183379094097720887960765873734516933008167331458082541998777108337333834977422361508534022856256683696888473851534322369851706808499591637862190922222319043936455865635254469102955312474676108797744141587947251721872862858725299724123184199831738345647060358713709985260399081820294641637518826949855539025775230228902223447215296589095434119312840451216829924583753998500598133392833723267965719964286310755352836755307376883242325169561080616041315627632753942180900840385862854265478615215029384730319951245008048513389425895089260759516353220604780694012429363296040483620295498048720682480591459619507810505575470556035244514445159086295755558104242194812199554567993740702009422291469717963450972817473087954904261060812763161397877237181792112595745909756395493180823239565707368492590093015473859878397371219748223078918766095863691163005330310325375381956369553715711183643608637743772432465889284908741705819566680545699613880746305056671271944378963121315410297175014569276332742539644467147715738975416417854485634352248469085953648112901595445912294234084420489469797714144269826688179509543971737579783981921444311228587689626001084916423631370601790959987547152512378201123491406081017831231593002386832641885652737982348479599284423840876990918724437219722070722649426017528125709105125562145571758642200657556968251000533876413698206783659588712306718522349588201338918694350640224542411889868991789669655912681849468856912670494871734291182436101207839241211989578991273021694928477802196917140583525194049043232548260701215947708246427228156744699591307169701935767381654216187281868649671839288687606841446202486064239863077282131627583165596208841287040013010579970264881621930315992594592939842547784112958471940501679988149542837890658128019902495052815380385715697517240685092546661991852097362157204478976623229445181660150257293235343095294574442011263462814426088910089120906069167013691934925268612545106704123255708133718620518221122409350556234400286367233168608241761227393870514705139291656278845825597123879998724782254169490757515435329170925909929896768472662607912873487766948073261270073666582218954144026755746502506734714887797216976277317505102488259013808451578245554147093278228959819336467193251842298002906503792500724214654894095357739037046297746907082096924680387664416505838602741647016016150763232469201353016316253983869187659144953104302243703930017834624519553741965576024835100338553499439536086271056796886339961902480845520403030892830804770335926350254498766544941684912209272075685607323092034892373794199566276884698710545168563492781398482537029636297946604972024794906209760020902929369396943868342452369224955387449361671790599232026128675531684425089450285442583394520151254046438493005509633361075509927167615037233051579877426869840826374056615442585239166254247911957698705824630188459827468611517956643901239276702106585047716724692170440259086586713704573251420857370658058894025591442800542145430826683519947487472380319749177799481233323689998926381670684929949073634501764623849811918963640500880901098489172765780943932071135848578711725397027072195941146540486030015679476681693381203822124467799995271199211236877098222242368607951097444010251848121542354868875444392992519399340379875625047053807926186019015204401891490636405757751398814416417843741844067568596819508516593862040676706324320835092422328261958228476316639276601834972260246252632179105689703725829206735809395876402953792370537294351217802539494435885022906839483035602162795681381347799021513034950548770831080234273687633810575581804289596313806328197450543511520283723940503874045061142514225817604013527520376111607536056477929132133493765171895203398130463459007007191731422809091448943107359278556521541546346815716679886417232274711248942164863530311838612728830314220396991217620899097038656374081921085094407542472071402517227423679591929638507317104800106319028882399269037416552714564573443971209019966604253524987598047254500065907905928246670369823522817907187878346823818625746090393060403725659892597152644215769475118900072486468572173253393850277464135758391315296959372554859992496474839633996608060040814493766564172116077991446475753925840450516560065876818141815539478107640279348623070994212020855977297812937439225506397386872832312886166162199964035915457298302765526345437421964239142039774322445983440451770492275069901922082678694249177980895070947945562754631168094477385827449190344960933288557149887804553119307846641801780737832766352556003454153350337185296722266283471451460642118954836804609099136196735044255479301758805874774663277979812933342920521721534951623783256632938942951701511229745786124261066126810138077718635756572003880205138057228607671553555446354938788246239904490114174006271558864180764117992984956740272381536874000786153440014389978308134148721710225573702516799386729243425862564267177555063061442461271716906387427537305955973385836876990290213077681054321546623091475363391728352692694920256148476156012560638660773119412020333080601580902179512249366992544985840043505361314754829633851753038949073290871719554025672571807363841741527647163607738303393670271833812471511835519532511327811399051009576233994802490840594111915510567657546145345893412507902219369751902913842099722470993375444227653897658867532864333652571989853951062741248433643485274081469637895161194768823162200622141432795503711459486465425635095974731170232367835076757485253176281189027159708298853139475532630829380781669716705232064558135954294678388609960453716224645230766643734828144857041905014674123700072791154586176247124357990489846396104571376011915233860865194489687686068470509026684335242614860535157406204831054181134826707755798115318440350250724161144773375032957564600647521338454116395634885335058353753900594332061987034874049426407354831008102265642713709514923960818527045522088165063280292662180253982082717363536404399208396879779896149672024848115495401519727428336005892633089649810452107870306469772352396244162913407803813932101279986863739166779772071913326355035876960711811569561607895417799021056849686260712791069805316037072929570911174788431525629848395404620763786440559051767253666427327823261064990223129014685705697435733682572242539593051551394886139640192487609141276313906110396094218968866294071739486186405160465445747718225110202558179359234835117673843659650524540277566716473719527265941015544116790374497921949759083922845949328336714892604115550356895833293680970236419019750169047844068207133825677189028283098516566279673900646318632108930866835271411769521362949409769471393954417392459582664027840702970023466762149481467931979398673146477040206200138355927238648607799737445231174072635876711389665182467283068734478272729410527409591268521625021932409959286261459384152868834170279240596868186704770447734286583729631167796016359270650286314039637573819507586617236866403033601676915907906235059540457938985699270998271471754481697698088010920622112897909062466543978032186743564182609336395661825778041397983625252329743515346051082174510756904180221805109445141303205265171749368010678084365835438376814850026651490579567469975526240643648467781628423776958487998923692596167710695308535433052067099075690586088335506703594844902486451582346292293848210071939809891428811106032047623898429174336533305726925161875896761559972322191316883326443783604310516488188510145648691097633432390495682137614729208127858017082433119262233795932329088445399702572901695344527309349239294032017277427039261987874477575268038867451614686433306667114154448493662590028387159208605981483688565847695813130719696920457131095874311660713388702405180050915146881845380233121092902096375415931016403717168257244461965964037452896743081493328234338659163944056962919813137656979700596242811185262656259592280734826722435599041646664958865969653940873977234654402349850326359774058609249939264308101909061559395736145806399573876365234154629874562192132687794432470824941374497036460624636810927864055195584402042087090360421649785187298878338545666791309290607944543061850994336109612151121604050595286933881313637201858742163596991136036333252388130037475827204922859353703367211445424020597815013396678390748029026004656201849211447292902928916413470014761936041406322451564731765975024809404439253723655422052892653935167657401726521435306367394607259314191700101670355091427286714544259355717306307862653225280183386531808653358353338886406910182078066078573520504812255201517725742839163934164895563322113226201886648922291076060553756874643958561593201054148139647066877988968590780575762304035634512538946270772048807179023780604285824532912307695121018805489840186601930318659681318589607443834026949476276491247295514284060689152657077321365157403813727562696408122842711569986384756648666878359247004261158286920757376833839254113557787412989807522175289501157110322104947036314171083126821907370283182257722506342535851964904252661675812722499139876403077218084742801092988789851647585812540195766081215971818176379420653505460418848058215968831246754066861073133723069883718388436837640797316438583047471495144414462810004567489137530701013551023095450654233016174147250288684245114453287477612634498739172559770231635363375730753650841869676202397127418997365460586981341814689739755656798381029866712042651239779961105634000773942231703490679919139182532582843359075661751301528357632205862795936007717520203039904427705062269998072960592833125453394021673066564188976681975900156907072464084898748675470656986486145372033237488355049677114027283819301298085041711166734946365082440341357702565255876417388369577763846319396813967722368341672613988692667524273878894530821356972155270267780311837356799035290148061233182287883170798190985548774923327172879966660667516437076627453577258034129022793099927049764762707534711123183240115431022989079668652005862569654661423368780459190984676740307042842915649270059680415272301785118046842907777937837580569122825191550512210795512782529060306757102000434458747216601183485778826906421646505116448172462868408520015696469273417980951846207578405376268942006355014754252421311864421857227286757988501546818081062383477914065329575714077977735984942006860796985311844736606234744300745751584173011902986484564541354014216707983569848988988722116982253804996034749090032354325958675550576572001580079615387587414774582734006691488370121714371667515481549313604982214938178462216491505917871754505293715834218628984225207481492101354872503970592588092716670752720108598804199608683559711025717147156133700818871141666914088239228001008126478307064412907473632211214329446799515630700211485776947547601191691976784170152569264921251637328668024530566710082354244001242445050749861640086663265517737939624941914352668512463996230162911916851760154332702483080815913983159200357940806961159782105464338000063589764285072641570799329686945082238947665023578442724441599881083308188420425412728211190672666840503275205943809712208421090963337485758623226528512674214412707332815782922289597104193180602788804394109790624309986235409476228288864631179853198252931485436393350341100971732077057666784874400957294736957066124297824551297133217621551529152796744594849270594826407635740589463630263124630277174306238432477598120971067927227044920762276048798293604890558009172632480085222472783302346441767195556571187893727813226492138091522465990548538919927007140201286641349469206675095497596053862274985551004930200542062482672368241258510637350030414888559971980393906610899249060585713832808407105693900913328398445490585499470180288302009325938038221983861720879034464244373936519998221146025232505617085219025199067171757427853780637037361791268225960613889936788442857742811768529969102044972416475234211613705325110135455090457405695227587134844181822676466436531593431142814978121550211256244268481742669823982117060323269384686922677173559404654170505069367306242856069276766528666486145433559639885091597887963697547305386701997877459501020736213579394080805604771689886504788796084356383048298054245069117783926414055523314836519856386173832894733199475925993184936862792959339571992359232718694606563883143959030855958808950970892389104995811617683792383107944922447486389354918918038559141025234568399707963509744185384620560580838408491400936561158821200076169954556866140093266112079127387306043973215320910833792644118117094160055105984758941309115566010651924356613455587472299844323252323169998566509775825158386455916128292752006724398167670152825678138886463447614704388476905128205924791065897198490907671523245664019672768589305186452048783039043037217762255609160231477615399714405188033108264694871324237023755772338828679403388532045346955562412183365875074819778712382279049848212638215792000655883510818299656381525170397880881882581278529477043491146581299394301244240539717396667416317095034090780120644647477356637854607458827655641629025202423061943532073958422159874172951726017926408705057406439322383048942197066815684955273363403918205946069523469478515038978414476081936968842737453742572193408342152226516845116969470831201087317721469286496602239762053678827629578148603546466806727670197865749790942836898767504697246379400765141650908937287273266611898745940716458064854289034111351489132323180384617203165070486623234781527608540179793762029923040714014803093935072690207474566394326336197330388188179828073616681283214355122590962904056134641788301445156044116500071790017684265229724212482794077609724597803393726464890247435373738564851436648858010981838186024259563316815189262121069017845302920824566106665757098062873334911836310088796013551661608667179389805856994318296865361704096105368380644882425153359309634167971103950424027833178150114882744853111234492144664026981493019362092406679048320431087395192890306287198150398857178657981565093478372675059289355264614348998371461103027644706235072792815094030265055763038322092540117235615375382249213313236260104371910638216958827863963294092395061162414511803256430897997040244871166026421893690319338677306622067091955300233630958365559981351991977418368705571490584100064552922259032588417210973420310475095258949272707847030308923379339628571854257139611113650427415666529912845053067540470229734467364336705291727105852066011836246888658924550243924432164293255220326787568472808881107584336444704974120466117026397321543630959964391962380784705426336614178712911495740341850511906768031078121636323232137943937407792058424716361797727768496649492755362925158795066567118792144297798406726826763463205260838025312927329030965959078494693340007470085118699614477836956424936591977353783850246835247512168900797650557634052420628692161263856177687784434398907831926369218387742851565117473751276219571757497398865282788504856425544311052377988748445722148845433162089670773422720610268063086990035257205998756699603259135809814149482015147548025488636188129094106540918655012668878936852703775734368285786480808480651836388978106778862981007375073664962574938237961402404850039121534573123026609083036526267721984374794132586751601937876546793399133150290559970728336991533776399272449664853950425083570835638196126879396489772715931230659738776133454584626475409072215826659950902285429757602430796416696480615608881222312403754688256252977672005492024250215005330152105201800931993220870194197224769437857724348946851251768081456564786240327411973765461041464768323709481077324401403111556050417786768016543657939473402080982660555313335687186254421182549235258480132525633731240523985367777927053905471181600327060293612838056733778786077828123195086184995021462046720589196084414923718471467618498103516483111433832405230759326422010698858932354847282551033825161437867435108437310010858375711838972090574300345901834821302683191525982987548174372398456823474368115571597190872861930435663774318718411299632191306788050036520881791085245728307279891524671015773456696874798252891823259717674158897211390547292046945573093544485152656470547215264648757876636490964824462225308871950849316524122388097473955691969966328482359026058562268402525144745097068463584695758218286649685691195838663660936113594169412633471384437719769292196466098291259223624350394453702617212086139439407308891701402806389592086867585612783805014172997372671243894009334939871904931860343234131097981702215240435286343040558490878576210587879717290871297166415118560655458271932663339394024798497732319077083246251676842934831997890641571354391470003796298702699549487556777691754301784211316346422550998680799049134477772019879651146404127478744374224725828404581917410888294201274230692391961233659188611643824352424329380886078031095928592221465134620363080051183797147521823391029028424582931212705931332450789278268346882458936861095257940835840603529639240364037468618091163201770048779296101842336131573618591214360426175827960513650707971128877094763609663611651430096665986670909512798235115374702848927611476672744087076616159195647111919052017113637302392664043865881632639467088497050043376064191354534885624128828250209036043809781064935696214153657854531120363602182270410344805161108398868660282513635952961133634939937035499203597414752216178834508452949522207350953758446471474735364501378374655787491259451805205496299204343548990479629626870935650464663606069839989383916525765932278182938126989809901614348096031101112253407677767055018556196217751981576454289444305074064090507634181177365700378429362428299007873652829616242503451525499379924257251166621832075999002871183792491484405429978283673095181066958314476942699066091251015403509302389131516445460251508012512862097559341981450851549351788282242906827130451330889956736742757337608331323096618917136772781697742872167365644802296101888632509797097932939944475036039914606776717757120471877282900756950476437016613565881374942850798781394786538163649248626772323819186451119410216413595198781485729687234954423633978521468743389749696541009967274502915556445439038498030697752072991075021121804029244295329801837127568424633140925813392639457989434508534965881413155820204951156102318730551536251838804757000168528128501318745985322908010732504027044170022676219883258846565228976098356790500736257014144490915532399034641620089075521768382245164279449234741897614342061517483127494427898987092382981375677522534248932287300053914892549009924678745878098811230780941768590320186885555341234461658278642031991052997868759164343709919021731189823348467719327530331406493298150994151277004048110602084983750521967007306839017048980698684131752597622014823271318149180265577848473119137045870272310187967366049623206513717666649537128925841278293578439380011486471680923788596207729087058945521888099638299862994396444044858733534967233614336420110011037479059863114084949156960735230174605012913255515543514738186955047261738842933749292488940170986224606353610158086062718060942180934552627905319815324835446850928097183175804728478138288272010148477182314328648851333244204649981920595811672272783494989633865251524280241719904376194717451979446607519081333934602499758233139254143788337947931343864901820925349830462554973590216641414334301940760299732468610736735040910024316682433049756686241486716522822724502160132952007238841489067518139247694174890257176607499596659294148635873513355890501859759655381729950324351187620251761410273898148152622894494250721857745695166407173468416650483437028640862226956467574889935763525898396785960905861041021634016463606827641695788872307323982045361427771832814715733432969901282137700971459583554416448388558101215248104837808203664245668276132099139955928182247028533927613862169686938718848633341927901722444892835313381094970930939315556603430386629313439847366379020137160831487989351608537703510942397105338569545167099987849897057742092204715065594515027053099193982084408984587969472826103003006483387982656502490138578064629969137644848408451654412529109210262895514842465770814948284087765331423996509234252159156586218789061900568857541674799823142729980695883525251737398091411819327832658712028429554896435071783955098650581879170086420057944536543865402026375210696066620455958688177296248418805012640442821905410784423636101515966897483973717416336458379139166617433703542640823106966997941194093777696165057245826580534102686486968400527871857955219292713856070295772886785260930098250100863612060603948587944217351179133884739759444246268704021095598808444507551051845624935412098032885635114544493941963825972873776623377588123327530998246102287240682097728119564721933439834212294111061068976468215226967141819081554987084251401547666212829452822933537411171571057003273574265152510110100192876048413933640361903004883717987037579059661834724021027633108705870800368868503226313149597496524003220914114032814657230606172970339155481594688783363910119684903895934483882091088183593206229720924175771120764225560077357851302244982994666360590020109081158559277118132935512097026585140798711290153474052263469405297022870244054882863535411026726864473441281044320058582351514437538423500255556724549853915007555017527833940153172351340876234526822525531019945412276242098733342817852231764864677878948518888876374514782336869469910704057138234583264818113383969958024896640953053530216046176594985560049173151920881906527679950660735675686548217266149182763864465082025761740198754138190637922409863875771925892560258929276493375881833665554273053952576469156837958069083230953620125564191967094826573942203231516896744776408211087950302051534062854034083550691305771602129656581635674022296149245038249723347940469771114911404628199846318012605914558389204905237966214003426752883641724823850360999032193032129307829388190382941642496928714594418666420124173385195840124952034277876163815977721067969714400108419906505531606008226622469874107668204036940087133142570930209849421598255900066854651204933046469032237390470571987404395330774565473731439692989069256984514544165782824496178385461685147409791169136203899075466449499401341335390577254464113994370737467826389834856866762373993816923049876725813579102976061064183439053113935103551195700586028743871223882336464456113054048685941954952345094919681069285587497181491813232827753475421833739027019785708073497064076744686826173536684756166621851984712270157980580351380328158567951524018637947130970442345821243865927513897213423617099582207215112789146395764025977930833788986896470157227011835580750347824722412841556336371294994266117089458132472021229751114152685341544660023079695348447215600802615479837417920500680838215016440611668446127250633163150274447239922115834189873662910031818931718874851444723025793472629409081100519090352896790606319781873497333164122903034246741745014756108329661614446785459034572294593648074807274722965454927036235807633451317442318313421591836813407200189904982192219144897341592750575807474552114633294891046343047278526762992926834367243847677339160955275648144337331855648979276563189376524810326128839929740981187173511095151820012690966568664217083260702947941652761405754266880081296368702300354528663418141130580197410158742345364567088211778912113073451044140843239513425037387098268629280736951771488295523348054616518583248911092663436810832773813186421166530248824685558429616360066360922446843709020411341328488115884279566625629964450188572770636119459617811246247153854441382678024129521236082571796630599996860783552496288399134403013814813146506144124664744441787326966402498974440973682297329512548673505374244018470627838039961020896683440906633071729804536146469105996177015803413878987133291877272516570554553436087471104024989087975056479208985077509033567889240583580423047070033969218786453158942709798021927852070350631024430580986055248337083012804920976209507808099890500822141153207729161008553958511140036235756558190602730423504363194587760817222516768425068643673749891363155934003456531158539980479807882213917737281062473186810124041495442869541252742394469870977284634938136006273555310346116866108680539811412290120297592137359610533751394854786995901688060738525272367603035802508573634922934278597308536642639174606998271181452197295756907776210140205325145717511200092318970975696378680180781369326384776218425385946008540984325257751053303722841079752819340847849859941688261824730554065688615752167331219732591324425766153350003856399357517892937849089480652288356731999514533565988785962333958472363871908581575980080012075170266977398349410181001911900697005002423549424574718964740817203682080627957482131852074849663652158720228433774669969573590912661420751141276996974631164518045935085161276676271108896836295646731129355353430486982778532230900498750232558354271616168355006887048755854781231726304749108452754926097883847620424094628713228501368764023787929069016041191660512660307887612125181051570682394298673079268271693172626279880201617846959799927689121822063718964039404830676153715323388798547452736600451594698904030812084157761215033997453312789976279674647759102387568762929362284273288382277468607509229028930531970954660604650921178751255305572982262952755434363464338159281843545947284751532492525187991031833565581127287397794149732727534975759769598347154369121044417431768424352294617985432037355922882324042167131535075825235349973711572458383254120263106105184253420719990015434319176403201390303863128724599917133324550876309926798973586379569797100713723626053199074499992278136819667298998487914018746890697283505303659219475888838875451147748532031536893796593711399313222272608702800323961639105355295595800138337655788188203133572038913539614942988231287456406571657049805140828505851679872249741114458353628506656383008509131381249223803881864212546045422950045668668542975950065219530473435305075199812587493061588982895910223708992053105688169453068436824905535753489036580777537457030366087692153888096352598711040371385225195137582807400548139746583732681321671955934610516431340116897941811326138716949579469541925199728585026727855886295987742446390241460992925867349753200315881068175532799684044457490603114331661039233850692930247207875483804523552182332305767953647661675401999654767669932536684811881738117176545164080952047793665579380117068028175690263617513581654665915932050913666549875686508160890778993134741370281359735104190500078340748140627681537302715971477281152575209963736254383244669973922127690165264047351554774365738345695565169660880626254687603083073601239136445270553612822974646825739603457200722420910025162521929966240542643286600801839078039899182987015464174864695686010951926448617033824644760239708246033481817805058862503321914497051579180599099086125847038247699211418031872829354378729242363625487498097915071186037008659521663332821451318087810581999236158453604607001461874677697502918991373130257996863206976347163614480250535883062699700750689445175465315794355979372581324813222251535100235741502623676586160503611500920779328186188742555271056018845768861750313017796910290998410177220300902845810610527855866935714833563520273401614195227843473941698261030340592056018680214118653700143060441086825375071497931641934611949873943931282341370253258314422919696145760626557545023689472704903921835687330723095558948198795248331903501255354509869090111125656911066453093958213871861282822900260560481735039786944626336586983490701909557421272756819644448433838947052968146581777538317713788174615443942755553495239044166817345914819956131174324986945778347593744887844315086930203684340090403941893708822800320211480545852315160433881953841475597398862399284856385554939686991607499235718338580364599716849598396434434763644125978120644509724900081312537620321192608723667491745306024837103567067812827366988451444332305711313216735671415442673071669789455267671340654472601402951645059105564888826266663774556260028252132570029019470277491116164012081372235047918904474619302675300602225386039035674865282389201920998248932849559520348408022319281273357577889794146161855439443195154754398527574486073685228362930436845858574752815219008482400844628411866389742593322163991862219149940356261287787520578608355257448068308235767681255670004768886675511598916448508038603389885701632381832782816968389187207433744361776954736562349360015205839434925975615880601966471882054078056957863498776587980159970885305763990737586643868553126189117984380228659589410052659697977397782428550645038240441943205929026879050621981360794455616737290557181086503950290530371123580664358829876800472700713237999407239545499951673792628650463456611515656739529332153776502393852752885351783788977074819349087175442490750997133084741694141268538680813651510481476650280268967762600205311849903681473001023104092159798865935062782345297371190740644949677074784121943581323877907438115831086410681050148564958950791939636142274814889576971908789251582481509325787449634453052624599001729975713041960101951485473165728825054289092674335128172419921441469901437048425038343238391806300063220259537512767351320438425330433288448584484576691655082844969297151359617227248318508911163594459821723631195373668079158519085890917297442020328913407437533531632090568234451706451292057925850173154494473207576330600437389561839521361026718710934160144590831768061077480621180545071262274238346716546837785984960920830657737594268863078725192534482963704481880644086171857428516257624519041813764016480793798707086003651971609658300494967916787515950226282311170677861034625322280927493434413668969989053172086860206932707692472567171925746415354459088479400611393006865553116715324732841630233685601040752927736243104433850300119955876637803739111998555775184786128796385774537836587458209546055310015432414807271604445878924781008495344664156690578027364184579437240800700452042549522222608360055094715080127138955712744294502190913781435204953777867821363918158563422674042043390289018211572474109476171337454309449189419891114273714242021181935228545176065188268988167702125405590016666108133062140413140011319507401911718148858468771834524975895324871031015704948720401952912842508449095461224238643697206504654905366308234863444329318363816177520956132717639570921493063623757956329812866701250981394812803178940543782272714503876661933958131248422595912302257087209634637324776783297648209759635607920157721139841167747789541551140610047602057552410344590576141765738581801693596539653080107521329007163808501332312013582535570965918317509417300775477353147268481879489472924650754977056738716239100823023460500642741134951365220157512169541142756916667218132638501479141204395978951890666983342272681157171230678395384011330133733751116626459667722450550354936969081306665460550777965232225145178953123861143984912257150212630868800809129202612634410498405962969391830137485102205109643745732081067711631455958000001463084069467060251081969450927790044888906039233289184607400546072201595043744413159849245812236633991551396156658370884357765984547454644505191830005054094860119223858588925194630431650195803246851140988450485948359128485973836152966539604426929678071622361533159974683816356251070943411555223887202180023215563607388124221536649461608421261194341800050130958741323661223982618072507069357882362462870269203451807662032324946622082141898763735639276621436225685244936378737076948329161478270753037409225098635410806317110535711719523728132850049060817570615617421923194964287831645507716437168670121443636072222677236283594537033056839275360716749482005107981969333591074768472703265915794217355757064070598982853082639165889064230267245537020657036645780491342162973505945258743321784209228721000295758278542419324724386449881407431634054609179250436764480397288587712234718263719862719520445376217723553267380606200712784226672282037237145274109330957976299879610354146470013088245272836458461942338176137599602182956554095952334279188211543439474008195833771360956425250131086791293355360671900239540738431971984325644593718753087903065418708574364442835446751963330475128388401129056792048274170351524774762352132331753153369065988361236943905337799535286283212806926039436292514558755343850174821280108215378498121569849844620095032338081064657776959265450823306308678890119236378959556154651206949526172152389977938556380416412554694460735686286640521477563142794004316856607234921473887033321853485143117548679544258582637797606029602783334300227910254624197343891297714006872146168750450902406473316212849438505251934666785061430548279107241510686316729371978622107206974771224637886861429928912286110572363014809265658349955507416657579831694144125534298344394728219740142327334274941981774248998787156981010519540339208819474132690898384583253152151098267785444160652704377644471244716539991145943558091439989345753358290001696467477234815923430940757041049004406847736148998199905586709868607137087155084275788983873492924899769681135751276691191273276258565474818888220191053675267940783827879627424386531870957725901857804927783180067798080221391283644490025917613799562789339524621508474014110146847507442088108552341341119156325973512181307613151724294634423204284840140790764051516297785068610173973170589884367963558898585716153565610668943880974177589586049584004340524588780984945315452155982434330503296804310942896797035988643202681245542910571110744339550587553878735905277918197542498537705775259892949925027751264899372349669810590966294983518263146702999843779730683733694389391127876426519830059620870132345534576537707627777498197532245020329288531147586785638431168368668814401653681160469405641797755714366338375375944262092742225350524357454226601248809382780101309962617012822570181704048906495018111050522279268917256875474164925273383932031640102016539383782969058338587440753545821336763339250034257537428052402201678147598857870606724266540042179937210298890948068195748841897288978870589007251674667379854706007484648683879105478114501027160411889857985507283515016002069126085934918147944893573420659949048238072394766524438693241532858878181613974447928305690273385191428775459179542253203634047035194761799135413933300889882278326020964316638941889362335635904404137606263460783616179509289555581273205453088188853037375686570413638031252066529669372976607221361852378133701400092643853677268720399782117768843996936713525506365403007938079657832087819175426569295971481963838106462931586645092500123501285225087254267486912345735207415692072674581782716795078527976735574737968727235161981829347896968808719043784442131078451603171620931762945491568461609251931265958914988915981485897813873454483310050715525059154462499439027309771273153870298098880845054781953563208502864887555335610605488348959902335060177507436696165527584972320175611976979958605875501683131341083499849510337778175054193650110133462127379045487088432261197104179754793085564980461662866086865917608822729875288356917733243781247454382430912896093059904257486227086877338419708689325526388551885523822488539090999119124808842219156460645296939464101598611630182052457985698456497225243785247947886217929246704696348925635534147604910544872240725879389469822191972967344059187307864444909555749156274266901541988615424323588956059035337823166532405810122905839978868039103820859442869406364470005165638855852316746759694551160027866292086357864455687973775926491321946440171041285431289913632698401669098719742225853440958783005122103919937756505948749049818304101859971872216205455240841740838438566375128001804238791835061912103721866961600591306473114271467172453634902336982385922165495699966212244048437944345432707341065343588651809933599720113986918846905865881173991247634834620622999783668939490145504328355522824222910446438563015010531923309547261935297482106405494836379000463119364069262276631793488639534680598636049276213950171545162762484471155048838485304495793260852347384836683296760712851373484535358989504321990665343064880398117590460550475066146005089273002951619684188449239708894446153132235703110037575684281430928030805579504691794987402247098670970476721008261028262738318990262855952525131174406359688115287458970653720336385456523638154566882766664878768110165969541968435338699909588771651338951387491339347657301544855984740802957956532774210619629598615240265302156589152520439920067430212932251619190565000648678673128359316311214261246412041957494478899113042667659668928981816551342636631413242703714213075282108695253171703819694759340566035221053329082677007703475943834965812061740268955061216807723428571638731301286435075704743970311803097716908889516538419266820694169257334759056899383315155803350594097287614122601370005805473911955951305006142897869302735219240191297265819396140749566289781002987324522145200508500527399049944246893120654717988852001562297835234851619032320869005765143249795354765034472683394468712256864317937813330157670151370636869845383745844235775666463590839233048168068463638980875784587339467282922897588061205473916515902283874555040570022879715817942045451271413786782213873983320864575165608727174292107750894876350415248286007961746307366424436672381710280213908610258063377411336605849225477313166752532616069138138067887080937587068749120225970446896195915314246048778387952634746054261653081903952997562907775739970649889884471622612989331578614572779510588819015173343398822524962570790652940983944099686379208901000781669398061707652387380303207496906546500628890998454137799170170801717825903142106196581709899659464410141197796744842892231564055914621637028786554602876622702327199731989271100771546652398749335268758351065912784334844596409213146629646431635276398915331962042443385177771514821808301234135721094370715906739439701102737507929882356314290120578544555167866570171110066865593940934469122005588258887709215048976759237586961208520104165688202012792829517820621948150874442235810877173606191253586048181412985030460206271777914536303370039635198022822355351444274539610832749633869428241182476778080399317279864934672267224759369328469519302015827643939804408946372604423184639626885816456466444854527804072081601295071625697464990652157212322372801633129199367887140496504696052129401546808089328707381280768085279729589048478830345462612255751541889214198985553580918244691223059134895041245308641235413185917387606014770311448881417990833467176607895742392203717118193619106009859758283392689822083048835961330841785560543867798907187789259929028321505937454668997776455645615071690459955592563410836505227576321780722660588029024160542116680112808425081455581637281000996472966852096406472177919436690987815606933025135046438389745573205763833654421224428469659010577817712766348803750694165685545885542467669756691183588314811499412620602124470130548187215059346128281369996784629031940991927886872757198437180368173123896178533173306861169046188212916429685313484699441999375735665120301688778422861613693082430852977681572803848501650316061844437159852346344009197918423430338480327971489006686366222808257885042848411073751726718924559759554387895180540034871986190005435678382592552334115838600191378015161994595748355741897266328757686245635492014148667988707556188974696351202365504524565277034944209759886279312755831918613380642409555088363115599928937325484833594848011929270832720902880580501381438684242910234641370846350100390161384678858663562683967548642875305136657512834935972620152438762523056807207112665295457658593544903891314762671392246828155140563971387409369439227622056672465938703435931990320942313230659857926850072190201367548878720474495478678962562858920704077154735561125378009919867465714212715685766797077966514839429886260838276613403435978404899433745951338683224542234418147882391001643724858659704993748655143907928189418417887652459568978882469029418404396860293367209528403918351711398275860106553703524995822752209963897316319447644198635355862703057488744685079445471891390582149157266737041495516743339971416045485311283575354076277719687487832085072715325165647646848092176292909602122540695902490509327233211844805120550874513365151089229463677512315740875948796218597838126114134630293810962328469749765226877889360329832414042141550337102100906937130409344244110943068553932675948310531562305049668729413004780550117753340588663622578496032667716480635728637224660901865851242035362437062621634100320111579974898681629457835449357902541175028320413212026814255127122775514265498934328236319142621105623506095480487900349493859147238607451449266393572231621304553264214242145064636095581266020546602795256120188371225555396449317337690610771863994993588966102088829268318249359225338410041053966814637738026694129591125344347976968993236063449950571166206388283126829212380764231665881991854997671025846869266000624471266128514891176401149826808727230447882102342673494384627765076146106039535840992226746372184791849867927243059431951741709413547775504710674496105120714812632340952006335191669360446948462890359621567651061700481693418654138064331337586884252383658194477905082876428708126951569051405278312178394204831868096263388225133602032153536114594856769794417870300494411306947605932718322031738267147618261053105077777123732881300048263124162482712091437901233727072346140085166862561826047524920160013848565747279576225780501664296086011850466452062866247747532580020933300186718563877729398464213358792239095547265399382384927061860215451153609384746745304463209784044636466347373023093542983706387850951080090889694713155658261610218059994718413281645899432254578695791673152578521821889472281463788543814945481157101862095948541843627392116713878349843284042179247423780739793367774673246641035640283165746108583556927305551464530232430877079226887626431757054639468011750453850077426492113660912624030558633624868274639857972160952489919244283704247162820101772997784756284943856526009492436221608942986850976083759052601548431628320531063677791845390270195773356024615779379239234563999108308845298418692309950265798208139989582858028508530378298232809649970751153368478291236856708761099457906590031890311771727608426276832963093349156535824386708622512785923909216139385459875570423226630014039291426616267598751461641604697165276098306967484093781008462621555034989081931831230748202974825736591208524307720613027740150844219646647883899715461474467119572264829210588556397569456818231793996638076742604431302002562152079031618794458837366286554690841392206741287669099615580411867318421999840225685275276276273632039149883075369455079234640496564605013280864307101944792694915400712449256647216826453187675069159494269216373082129138590638598242137849208636243318183285494918822337823090078473072807914576081842491769027319802207262554470626783674980989663920670428462437349729861965653599290295711193571437592905982946837146114669314461850797742476056636462685722328399678516744092109276127168914487511133808096543034128544532513404637624521306516356437098439091569007145153899563250573318499864227319295317114084824871473324337631165809573124815225734393013460196578160876220224782758531296281760440191959187574028497768181603896405911408740284603724837065459658329713170634047052042479568883433409365846469981383307679023705493300708136782525951866947064907829725893135509787643776254511838023791078200271720903331302712962537988379447171565882812917676767895697075083733107026887279544328131847499203927556121832163564732532171729250432566609570298857572659853349305590356197943943727473213867280614400056032385492155528792176719937376933157240669788579135631169341077657406359421091704683052153281050192794453870252186566313164676904181142785714919609711218481161936481666841097537193273845945504962271650455573855513444784727825014487237460098719922652670254503640586243783175335965005565528943770555396818207540997450176360624943268904085377391374158838543408004415753371096677928511461600914476312010884920036341619924828734640120698658930082564489960210961368861159372451928014359702438905205873834927820189292649073234883023851511176103385458286976430217005015358900399679717119839250517135583290509698697817767481320396044176501062265289788019146809204999786303188479136507850966578044541413902853522017107675377671813148558770473460032012719315139255787669610925223016863632958466804905530184054598876718637400511666655958090251967984153685987881845623658224547723258279670109384108782180428854138803559887956824662040545239218361508463818092542779697820719743767353542419423763634316942112167550426804673636410328313483274374881574654846656306723768499211142407621461562580566348850850537528120364792642349836962365112943927802247038360831314934491869924141131622841686119010661473674744345531753940341278696253630538418860292113435065597203831990540089734317397510204261125782704103142313162819765764356664217003583089364106911734402458664726409302360486853637037581349053444905476855073288642006134423642032679921620243926213115211694603786414700405369521200539595354548202481584084286546399903926126018228941162173471787918074802175996038566300695574341729409986726617970252156236206938186947553548526806487046526180946930429347176300623753884101578061596696936908370483574764978096232494512437947913540623304333733916295215023943285958893378341710748924211300105554850529419473477850320147004031700377358276225143849643691590690700394270949975099219490145794353517710584624498789904281181366848266876491912337420653530912348116952764729738067649661970616483119557198167904006678986146636609696130080560248228435903549848306105936023284047738088061805759924725345800212632142039176440523927096854615928512828866966692800898723910806517568893075383277731818500346780020440435053300954450734045004964407674511880889947192821656761967268222479333535916165628625540697689024912379156898364604709714426980747770489190488846286844338864504260866002787772993241305436692230682184748802396290816239077075091053430744418881461499712064769178676089565003834030414780167241316690431074873388298138964722023659883944400127059208870093337252439145574389684867953625254157495119782822983892417183060341480701834604279056524041380380704376109722384350198136168461857818949170794052463673903050175891271808767266731248207417970793030641474738361717055458378230759997215084833243668310574652212710578116270878384412407343525387704670522593281563615249252125687755936988069990109855518748452528494475077209461991805743963180838835444286941870831559930093295630507434490854575195323103830117161341478705323194268434705986687771318690335107609203060981194435398216627490547784596024659170045557825174235091558539098055859159743146813366348210470840140690877105791293245571422527835536351257086983431453250073873760194013119635506053619889492682906519288275393797452404982701727603961661919403892863456029062088419960633742286012986842269609884831443881518009916252596816664403701306980922467967321608429286472921690051916896348512492892281956998248595813074978359110322990120275926547432291403620680304294893577859186952767934815231428192900133642005810805835738834446083527598027073025689826636898069328406791385243415934933184562409208170589465189517545922889995846559447864757383569268480575888972368868931326149811594127960356383924276466977000821198980729802593435859703088011451801029430173746782384190531614129990888294407561761638304921218669634053142431723151970725475304676264575402972786790725862004597625285602785850799743012798067539402617641256722542376887067455720748447870089504711785267864315538242028364128575991038619443894073695384643164026663958662287619188940622125629519695591618842387689359793702446403513899267182839090559771454727420784788888830134940150215420094300790101534233848880478791173203619654438633945613186824440456317111399058181743356706873026165517937913302201466713629610774973741557451535306984100829385889434743733462683760694812726406111637619121304722108357799349786486781200344064378889752186612146342353695958092159917288104315249222954843508585792933236668430370424215618230842956506083509050667380379070108032850977915920053546432247043883097475203208004644144240727928427641908635967195558397423271441989153470861816924616265017267470999715861653576662296681554507385096892881152677394045469469913762349700677923724340897182343544504086868338578175070013474982845967300933000937220293569647869403843493301206844540107216604514229391244630348592966865655178893608161000095358978227425522078733985594269670726579007244522307835289052287756646501400446018394516894000728959820854922200819801797997819985568596318178132488378721872468899007665159393458098249888158099202094116053941742422408749896807312941660402775229789877751882553496520366519313653785615405811550035381820407124350689584692590860459815481400166025625275838789495461346149336848438141906151206978981934621063497589032630174556581586626626778695742927609234622247135606865869547583156867446753304295809848242348618193985059330804621975399303799067410403173865299873282897297079481814293117825118499842175086437661158305006761797363587873752478867928138049355332400503841946462154158656082040231355494635034363767311422980101987853334204339652472859982760286102750489680228420225823567020042481765064292122772841687963480773010606697411216024712087707414534318643732304851495291932961081419230743383266719754708500390313312031740211554920796731909798147453913406190919320751728498177351582892243378574829875829525895130150205273172155340237740418771575610066487653417497319929078999260682545076218364034718294783446513711151179685794282254708843608127178807644103007151728382719582435765136988150303104067273793473235611685012947980072229543215107239070686912311630732097750215149394121729442935488059667037696469605477544156362522217029156734558634704878460857631248888069144007549847272973816683852296273034661498175811522178331411822031809303121692692707964572221563638834325077077939141233014673094683766279870633995323728727339378272859632024032368583757764733759845303262122314697962949841898892824839967228402905442574427557380404848174580150797776468308260384434496790624121482551436724115485897475910913540245778655216748068688953150786978757507282398485330732080978625785260900358030603712156639644772695260814082126924799229814359091115933985781378277765418026369802406105947187418294492419727883747502985790010523158354914129016117080540886394402426393566233439707143478765484365693870335343498222570322329501363539451915253436238214891842296453720574025970024145773530657477274367658073568588601006797765321766643297885595038603276848237282460465910926848773188185432964473087656913806230721741499397126969121809674824490484070409498017807869671520830763109556651724077813146093406036914396013216496161338343087203255468434389056165824501431010463307419107504235019019043759307565280001704596372403827549155321321188236120171486718675814501360855964491347384448794086645887121032955292282416696264315562261711071438937850880879967395054795340090211612281195687960462034926099143431168710778012599123880365791020045183571306518007613608036804748688758295643523070081592463273980406155983313198822569133557407293625739548205171210851023407595810756525269311535994722299579884571254873011934890646916700249137091431812197353157635109774180384110804366444647541273787492951405761219405105942310792139076102037489857932187936045740831795352768227641847793811355948370157411898481109918103466546055094333436973919636780977396928604878915895412023796485867582288700663309031166471560681823789717577532461275322607152112804591147493851004490255292666651147825656186454403547132340529553194083527423272001181636831748254921827613697933064736479267893800320165067123743180769789792489325619503222714424933188957117250908216845507403946621526325698342845991024098229276775388295143987976473624494488915277619502986840433563662873115432155509172125891545699939757648699709122285351924412899175179792865239695727553069505122526904961008710198240626948465328980846215090381181047295848338200713264098773708302951741602764564414877897270251491861680424268686773865232358473137605297939280857416685921015229016884253879504144751019359986740339848359846641176908557038174020819079088449467357171852291832932634504956250847069778398214839191246938587460534828431763004334567521631907402609632114458075333373673027359611808052569308883738241361062264505795232982563023635362356931513232010923650823319276494360032402128369542056666456444211147994995142404941352078010666057674594612338105248536785153789549333573735627976302530619908609257909309583020498943290294687107725733643671535718385429290296328007813225493604766322713072149807131269920956387762335512025196137952562296778106341007868807464775433288761321553425849916136846922310064111098589921558194386833816733588320908463295894993990005451203356223002170189574476106430238981139195132429731147312914419490028163129155222306094209999133665802432543786447818804456570239958281325739037011200752651514843058397488876310908340779958720070803009707727684873684063455907363486498041140361120750453684703491500099953096037857763150705917910171072717277499661114271171521984593679011390198405721105259501376357603527385341933684860592270758457783048158592830745528437126510799345894519360197184319198543147052873070878318459444046987000227783925460769862543449033267533173058313410433454000848253214982008605348914135696238894094827624478616898857324181088030117262915344584882439468936297069833354077449772031086374636467450271540576354542419834748810239715579735372697641765551581928191006509385830565170041488360816378388196961205230018148349930789239520278995511211287279887956511648950638936905894612461835915517781949992887483843507449637137414795068925748491800046347389509179684001138126334240066988525905364380588566624557177523326523877357476428583909314576391822566686548441188291300541918601560106804142112052480326509799667791467532188892135366771166439162505988941330253582763491792371921213001589612265764718922821984521229062149155370945974987345299015666040479435912558547936902313224861209342629066644445538182524827612562796605459305318609151575678660449106716567223833288273340677783530376822714439244383272885041186213095276591117967344980657975315574108307180779889147216235015123117994113076274366121794321518962415321180910188159162722497196090122425599495591180107740723925452879945362358326928995184958059068016552231886877689376880455939967663476124195620889844954123192525159735621710876968675475585760279667251283073000302902182068232082774638745850375371857392920113145176337240406985375567404848044171179502817377511555892760271212046741249455571298662128035997935978074329949641646020328092741403870274497438468039702124064120508462713723261149768308273277435315598611745889622477962015436238790109969287336133488587022663603305746536586272516585381823823734000853757353124641284857421458067142001896101474564812078114965583934008465816578816735762992975024480586253056276450489339060128889637450408134802913332600190685684250978760170797850964096255853988535470695986348443847016283786106592275184171066631898594036701086886768125334278263526028913555443327489163385094406690589376604679166337375221890072482747510384490905129638235255093425759590380201718404110530469156383921693181146985947060614339806513456242966008961752663061478222853815164163012567635101626821019169020779728339671926605422836925409573032921455303730583192408464659446651540908294218434882876180560441029092890143321514279049295600386965412965389842695613336825717488013218255442309553613995995092920316329445329087494486308975132683462582039325045489795597758218227703465892486699117646507199403668338395705723875146433441901466413111229190385896254977421689790099326984184102258739838798225613273867728199621123276595126043538008690894158367886323330997801207014013941814072134816329275726217287913459426053104128553995984340116042726060090767430969305735371067387224310682517741968238145645178159589697235087630699629248910602111646176369764496240601177548424862258683862574600326695468849863771371986031697699363243768700201408118761693189500161285776098804671024082841853495692984546196826697147203332705709132999960052153766325811246607892518855599499700936208922609075983355699302843934975752854481669957689680532704195027938260396970564009510335066069448040898068337042191970423764715719259226039386198913376796440402102156018861157869526262465646048798935860995271993915839834439431104873671607120797849151240788661321279628684451963184971376189614464518317214468235987607537050681022660301830502029445741834519455643390166000615146540192403181515086143847170207129788724646081965767302258862988436286346690008469502001333721357285337859502266221803669975338962169727768299664768273730201254079670663213338165879848587959071602162178976450926832039643794486016121589691760294086811798356669408467487957837466711930297358048396057276763580184104801345423657998918090809192410828927758308914713367725239163012113034632565795851960858641624957052461005446952263946316895008773755089524492494103824474517108182373378530967831442295130261356018829174692144515451955372326052184200163978880540233988699234421894855269747183717545509548291191105788634858573830514487635991884851598304417126929528901076589222930406524094685594162789687979671477702754502098970119374409569684659536703623364050236275994120436307018148633565115786997003040528932402494338617313070501787599139427922735460745951333302835353067265303388976885685022428179679158236500343039176952851602039728787676189227094691279069216209813403643439553822976558830442445055718471085063284364300910521133277684963968107022489252306553821082739582701253641730155367378269640400873293565396555277413533209821860505644183478935690618303689348330189955723835207116115278439623192592716589778076307019974720194322788662848426442879143331227675443498690535549588144214533864895437200044695586655924780774651570422611671071910885779464010552469172301259619919808403398214912657703311473895449914766421568834530769303332897023044435131319584147820829813798539108973574862192092764495565383379106792281617492890648515618944198060485786513298894494842718000966041770499804422962443324648430560702347586363384046122433330438590690731242247764372948473797422371994843186075929700345018547958728254827264280442262595101700308067398500243423434491014688475364731138865620458238695277339833923065029791684497153841337752604108188223177724353955073051878596192447304841845697081726125615002926930884612257574686958877975809906115227584234213198715533969951862907676810663086062601050978590856371012493756475434928927640846285054137720595849615492795985088075390326642836973989966744086505878595318832294473546477397046407763913367341327762203158855742744676937556485141380625375540351415927726974276921052113839744218837744492933450336100653670101523958618863439228674209270497639048419909462617846283047193471843882666900344670612003935581335944316646702297098269998656424752650599624463554385074644167502663604882277527515014158594668584512557936023159617965778169296254880232493183558691164628870001726285008515270963797240834973179398104840078007649689538712555654192334527090785011331192777193388694166662676417059427053016688765161177857512287822177486096277565180677982340722652736359628396736415346404547553416079288303094124259530919783503805337232792614547754177345757810665433213052235733077459557552021318501372198884303396712039533231939971857784605851380060066143437465420104837709880212767242142465987636228028059103462757243779283259709737630490979876492456164157968593222518380193425098955262588424369283134297997480278173651956621791932279452622269349958208925052866586750261309854625737426348912913724702433281709731839344442507415894999865516716433808654174284398985963920333740765762748113450659585100707923459625921749433215971141748180478032026065465608846556940705062557226042668821130155557515800372001595939303228294771984277820940869094889809429898844679111164535467683513117871151914417147277191112403603865847097293342037184345433658208312215672610893230096337584165225349871877774600207920860408307513856467562693866659539713911185923330268591318876275524451469309693694037285405137246422799775121960320516303680105927148266757693663107356143942949946073253457853769296875180960149667622596375763051325141721364484089701926439462237377093707445031564817155643654799073986524849307285724106175089930025863244091225520544578958863900604681230504563215323037315706956968166391778948390043172630635234285237175198744057352555346058666151402778514882881363120005694320418607242639231623503500162619581338129131120659109355245794989955719336066129474091848651323837150665907972363895322805310804356088295799846932744213799559024496804094147633323168996250188836950321590442943913052219472809821749314572329799787642577063293253401052037348855958813112343717920076696653916107270568716122578408069585839688681143153532855960199784394153543088748198648569825461640724745038969534576545489627457788254811546194280087095559718349842672497921196908366821996026391001329267519670590589192587636676404455471076277971317582184276020657376812210234126997576424485329222391439613273256566719643293623152513494791707091530498069352781170846308890329276706235674222915757300694039829448885831079114905755164728335040487409331653443620501065259448228982168066440793216059566966377646936149111796725265477758369895633737887308400842588042101796249302094397387279330517529854388691242747141849007084478312977091379758022785915333907230204086431501950483862556631672804931756264611497612319764845407213139190317524949990169616651736886974037188323897630003191256938283536351046973919203327118111661161995986428008485042505914430679925588228975376524008192211673758467149440049426671055101954903452923152793848643716270899145557841278353607978236402810342306336956298768308106243938037247408253528347863058987668487511008218282351340695149899867437026201912039934017960456224117782208810528234456129592793828698171249309230422506248141572546351459999993300843236847638948105728462056785499932933734793928202850671567211393605974509283049871057721866420411195179594467533486579178049514914423220433438393917812487162619582222016629173694218000224684910363842335755540198352432435023321333523657731276724936910958330704132760242710000337207734990159057331009710759322192062602519315850171857756407232657835889229642739065823576181826793085250078187151422584191380593370454873380939545594396466519254832782288402692368573511395633432219322358739018429677360769734483361884370549037304575198449457198543363090288989448935145809098080156422658837378244017905568623044027273359085092977249229022597269489061434914202656654849445669858280804768252334900777731515612556337817205286788660876319205732169243869270544393842224262540333494578772936515979160594347776426948496786823733187906627158005008061575043109298758891530037148836658216739069578121402861701995599290690915368219975022437076967476408154409473486748628508687841056191343487652329881876424841011365523449994549895571049667751886714651311727868006393656362114404690226026755272438167102785393595990794380274790339355202108562578687525999640851958027589786119930142372374682659524546804206558455390617227536769595896278318660447539698643986479606260863852277194054853072874482914955693613541916753252630379412270436971705415032057496750278212654451702986689092958121784787064025756324512143174944699317120522017744844452236699309358875797819574067361584789472119892281431440835014021329045027754797703472235662620086010029131283765214509672380486053295406212025305715371263755045395487834102552671955824916732559186119810124636871853172336543171400282322809342541515097102378136961610970866816790632229377879063057669874941554509634731351422735887739872218477046821247947251885498631787546919596289540689560512013998652173916631413265066848882463285410460212017327667080263829550452412324903483642074274869293630891696108207722477198554707154092195993500236859232997554549014211484160102190865070925327311289145200627088782769568737726035217991671773364664192237291392640593823698242673402238212556310467716882279819029617813227525767456716715166408649938469949372705030065634167165538679828937857748249954672414944640107859252928366539551953572711077703896267050922515286916749271266985090688289621897507129084392765540616775292612393378689250403452785830722407851461315373965572719135068298035850918690250309873300356520739262115196258038548515630790554880732252483948863750438100839041538847637720171647188793038799523030908946221866491631385925460640825135030016393986766959708993769326727941776685773994574824042723875964826847534377557100656971522606274459105883286587299520624837724527707675119365746601469191647413731575167018027719143950502632647994963389626690412258257873473799714488425955521330818256764824333667246529349422706650651188017710564002931972379427699436761177952009404970997839811927462687139854562356390756304924595734262262490160465238759087003541111995479229307479254071290408552615762549977798174068431344587678636780979664407020551529372190528212215745212919633042475149852075857251867904584535329340067314971212823795854558367679245977270933990290130639941984950912867823528173082669158922585718332815284595900075899323740639045644321813874333827235354230442090364771705578153065925503325792819456694482346093818541666872334021169575785523990429049076838267193693649442837439060484030153323678194609794698652689492137006952895918300870669001921342099649634534965040911895223160961211871909704781872393288320653289804758017889956630667008370482798621478299929626528171524715292655476258967097427024636150471905050589939664814793072176658828988691370088064299323547903296848213380826525153286356707503916344835698253605065148318879375300810324548440345402025619304798930713560355737065166460538111792322620219499325461218422114639055358347594096574646909671756115727329327981439879222942527120461720827772716168184214209177780146025290802065298764886230782886167182693512020172888175347969684045346423584490018774782394941422030109019401826720630766568749639764579983208676480178585063125515527239122500663660316815481363840182800450279837790898273899747780471028864413873619729435636483439745831566595679714238086431944045528899872590934020120513023534410372955928573668108751726618627814762061647997430992453154239338903300046593137970499139040743230690985757279266529338597092205267953350590091204087472794351913453076691546057738545465427038953545825776716838285069443036856865493992654844446755808350372741083513573160329107647660214001346641803765041615869129431124074211254575162111728623793018473200996244676312519507665322844799358245039677571831100280755568017419478907596286486332853216688084747404903633832611909305930761284492177789431041167053608710727277825680592828208360243983520712916086772121475950456978567592887415973899433356496978431767691391151623531735727238670446982068087330571783374913369588664329653243315223791909788845901006743401836179588315402064607686491776437565564509479680444619180431331080068176474610161014509495635001188263132885125239878790847417119273813991122564698782415279264814335749566469983925688199452349373356652606535079491943502995571166264130264631668904331806778911838402006412202127722726388296031733951419103367024557954846250837013380139200157000289717250450314042992143922525548516224102761632448147765985715878843508746515543309403043445524051114077642792327215225404233583917596917842479063787612391548404775290563697059311110391811769927086256647023095969530923767682419912780175541754084081575443965243059567020937739821555612044947978916593786893594702145555700009205606463139479562327563098780306554152181492886414414809185928301401871367237301090808765865632054911578826923638613315514935992682666966857681086177680891918894795975864061050721122780477703374314266528743659266435687488600773459433748997943832441701667407480729427692744960282817614081540844867232652811425231104376688216241805592775127433635738047590204288405079771060793805712524251352612898588324482853868750760614920563188479726989909083894292985244843420746482788841372264196624388145091255391609324234906716361033263000789613753590252397479123673108191985411321328242234762684701235267439805745059857298086703310633865669347590672844357553652032167701584909851720492609344967161370794469396466810257254869405701313807722304297492534653364394085021248800253938069519899092974503798885338503324525129570185046340539685810198068749999895983330006038201153357420242717119387964477753190012380076715256877992228395903072878245525953833623832615914220986409720873673577997444722417077721785242907841493837305482941503413624273688699070408875380349127483195505506471946150490593855768780266684845751311067387688475180903288943111470913775358531552228023786735194231347873891806724184655891280044855541741605323237301576429084708223171787292210844566018635013876228468278652769574324458550203020184374097145852773863977623016895580163902985130102801867655324878909578728091530186135856692049423093462569854378712936560269383044574820843300920579444740071398037053202872431353689203939832829728661636595384244072365330404899664843610947469174630154010220760286042262616044541152667188965495754638117934342317850944010404678840824013324328337148394420769674224911323087322654012913977696900432073925725988396219904353987184741276161170409872192872987985563545596605319209072989490992997677041486616406093769685237949329854205446914797797170259662588594551740402661056196834108273772728789081595131410216514590685104992452603400781101902666317597866552346070791150663038885981176209011868656295565866611402974428245704962645320578968404141659282230558751459400928039211729387645254034097575143641066583026395202076967330273821383672733985538983969494712536923804668453479826812739624724316017079926911157364528920396258893758442638145204801594324314657479591196815111586570313441205869344185591747286890185049357989999583827709671194268544529883465838231758934263637089831140767197808863968110021631022511769285600929128746035596764728017920108249627972633373902918290011378799818172051009430844326008864736260073286809539426494295463093836743110369586806107596371863040652580206543565041823934251787505653791964226150101395082140175987848080263980796529359727787828485181895330308452318898362660028666209584389174696459451886208167434524221431741179924102821281675589203924916585235155105242120199947356243061921570503617291622912820296691224002774592692447951807071294855300471260300508987632498090318470355716258303089005503003592460929388649984068642404321281937886373596525121131315918727620777976603819570689117958549212316764946271812884947641187535655139608663486623630642215397038599789858505506707248180869580523393794200131888704879112486158010974947827158685493150166048742080587940757934969872713801085643154893337859454038464781205443064022316540220039151823925332767955249617249383013709809953460894582687791102389135721115245743917838167345441000351570256210597395637206392675414421419606890080287987716429322584577791886428959010403437430342232456155251495281716327809739941678326886339398937953296167327658008872015779725829609059118750881088457178406457711240444284172284572438997090681500766518545261042219671600897323372070803721916060419612938793669718260456700601219045048278310850122834839023280395597100243877158191529015030433886955241390826622548817706242739331413063304583574123701949652587599030322606845092772369760558814462766181908252725920505226603271737110343904147688829861228224401334286584017718373461129719921368805619870759342758518284998917698722779940916831209476696506962192902623879892588468087086692632666993213803832243365656489935438069790479123808681618815596543593550678379008041187172605369626597878186557380096952532761898437687229750429568532930689738583237999108766802534120497689676929998482394666508427778062690195715509461349045203032533494757372605003562105479183345662054346396902808646492309923291016071958168995990880961346833696526398160600768148718388183119644592975231061583747003551511544483029445790852353724662927677716285296761937112161734204607130253583348719579058395441607024904509488217739622782445863038499727455881783822595722911506652390720834251487093881809272505318079923385405551362136218228378375643083590465519390881282844270717518080476886077308218104981113687287897617386590533948423338671773111212096304304684450704192887502498044205214655863262517663958085671346094968454453670662747803194098711762448732156607893000591991516455091190995134688861397540357063435594694500150001559156832311138207677654416067281807893954625417676041519836742094928124185377493040628739025301627543478603001307364258097577118818672268669227730543582585841819484087072809196154683833943564269062610807780957825961458280326349642985495722618178242656797903788431984202318311891828613679684964719134205780959193368772409494830661426696049149086495695466014059117638492126436957674761140460679172710944759776810537381919346266119983314604380906247056541164338779975784293221242930333588640829238042593970680541892880116921400839595328861614932534109643775699564367165141877211046932350343174379079186921418946518513393315504452802310968764165621309740839758542851755236411107258875492497539373831530907903467101304502253069024130829724565638802439516293066606185384245276721863227931189368071118935214157421030827032628410586359675476193865424860456348675607135795472221139250251287405512249628039565319226349055345209131977032887646685106625425263630215551091795181467498817542294148405035302870212130536338823688131255014946663568923567495265063388410381120713927633171602465792294041175684030373546660557012562848188475162468383348227835077418048513032627046406369265642563572174106498828585155083893121913825051252121645231010633261401793506229812040439973556936316817103518221508674345701846418067193441524219692153558682534837077676551405155741821622534513082638486251715450139938640186584467117529193176865460531751898305955202399087259936774473552707489048713303923828860515371404572985770970668345067566034645421775740471649557901018827357833234434586793969231878626662652045229028669360235750879572838918118382375585268441086277980202263278949925337256471083367769242093054914885399294699217102561636031963625452982034795244630564734170772081445771335655627400561714886346837637041616049980737950438613902778412779329388611449141756784964123910489318322513667697357748725435317250777068168029448738538305175815459360050911502617998108421704121296753080593687629091457553130581124519391460626670699605314469528563666106856287713724348341199400205873171728317826537934546139399136697767970733943206918577758075998189945922504495462495948715755553063183490780106000618753792183430389652528976049395054911799467997716212956463327242908087068063484299931969368485617372281985229353265176073512555294132944043086771310763162142544174134228281624797808087497676388642191544631323298824541697747141782201663407441812886350818812433706818178285767513853536917734592323789399284045267446307624524706286368742926855608436823510980867319369324872885834277997620395945495304511010776989899467717356860703471246329423161511343730002640011660830626292905310367650761945815582805235106129796162069615197881050195020276746121364992993402661513711100473155756364121414266797983315215695268042461269635590766562720357290682949483714707882164273249153044026012394766599775285562522849271554631745947680568365261054049632148794556578756923372335142060574170663428086614222697167616406866269092473495533311106980459173836430805378375079008303047881783007663343529622127060028692131937902473593088969514877698838925495437748744311425189006234415448817873396196741040867286063653192070563192981166110429342099447401083145808545419319818335760625019188100128571160995041478452967649001701147076852503300265958105549595388644585103552080756304950964697191468254568584370976321052129205767599436609518771644565480210835979480462808917305996283471671055492864527526010221260218138108930908734455482960721995650123970647271435266218838046107659775691802667991405800752287115116647033063409037288300927743016774144128939961863398688618485614384289229245319103125118880099217380893921089421774141975023791627109540288130923958009815943341947107354043181698235645265010400112083082106474647823204901526434770635618864416782454222292001987512034268477761997441318140917470489941103692114566017630554304829474052494435939596415599564310310069811089798327449847712530796890814227971365473610053473705271921996561016909335640591006396051217562020950662784372775292843399560245006969019468491837577730324615125049016866507066307840069552468709923771111307638887091997567339249682264935828109693414489971785409363590669801876303805859243167633899137638315238398145761322332956924577617770964372291058098707718496394376337824017221428878168458486649381366211661778669430046657059274247469508402637496813561091104720589896615169060431437342783707626963357948062343241492162409645661045195717313769774673650028938197910085757829716327212646020868658080198854984849481849276632388164512896991127282748828549389517352659397198527454850204814886445904464563970003695319022511352695793894100443653307722176290081638654117160971113549742614076694414082329337398524311426809782540362407534918940658502759912454664956214712164525592003903406143631913541373107817980465411947973118761852557465479798253672620188221623632370716770121791723898298669136926482961625961866142201369776151670228037896426128514127691558311984541225975279004748413934686286632679062715580855112331018862646778264358263429568134566792627496943390245230317396786470972803302047856039070481608063263653621480412418130867598526997457125863891303377361295564249470244819498595650085925105411616267936174936101005601650551699139388639752358295459066653325605085614448070401014173107129098921979146646956042340201746102166213047022799845311029714488468286817741301312394714459225642161964886792990603055558690981575524478908571097069299615937450007788749489217440611953562061217547276193656295827044483824679769838122949852894200507239430261554008741491448751991781660353766862730919521826911218716272699708714250431386891249542115423683588964798761368324367705172193756713227772292621932965484560505977208906379847971807132576110242677847817073578596897227067209570342123137117239910441809396093184104384624394554409680031778528636331277275838425360085348367807260838158131365370167144086860632897528046855159527176820379855651815746247853136691518867269045881647326272869425893662130747040161215917954366722165318017643365606778285928874937501176385114243324464017794922316046181396994395630893028049832628801320001015842293895474919299167238077949582216794368110144846654789840829177638140745644924985154157434727648479455203005571331358538899110794912113223535331893939190690207644982612353286347303759776060305085978141201847310332372801877709759585804051814952094304446546377011595081613089885171184995772929208399700260212714951402912165976712989617833949039666304995169414279490867707924748378565207512694197708606307343933151555808755224133382673033727053817057480594096921669063579225645852498818562121530313527805904538986875386877480737473596253303718290327146601893123286684843241504405264820241128375077074473869638104545503753969664971633588859378880295060778552144636696319821918344696676283744360763619810054578893560782057351151304060757067856233694058634205767436839099080913117070734658012715108700406870691357653234716936519757522106428825433094049671653998398617086471822154250972768542886096983783161016078703216707647501412820909317442089518560274636901339781270634252263500348629195998382260037340851831298050687911397266806713274465832933333699386104847645290765047600161514394744673874165791130131592697565162910748423846657520439701282561424237576901624216668870857194472224763529805889062043560337102278752255303232388594066855938008037125599366282572730186496776962138108901257526545036574833736555641593385051291706566791863897885543248762995872154528440537571054552073962615090933517183030285308799957278752502270807414133658675692717199817005601733785508506245363314932068533363809378874072847199784166543393910463092074256632127220360617228283057367917885128808028652616652396261900285860888366661292015011727602936635400072903027986828448981360749090469283587262218316757839357302148034348246989007059220319041307061201909153763599138895388078977142971378936989186170339305799630327017184675386030881627078992664738301410227511855258400557910062645345567718719321237411534372032173112805675305554594982759089844340061025852145054539089212159859486684842682449654159739268185330800022371164325320756726314132041150166192271827611178356448961459356191633997577862750529580477515464917068319278108043198498882078446860176727047459305099575198021895982917589597883507810702453850551236961958117248969155012320086914798491130658422075262248931388872804322936066018200419491038775406377694008905430068025348681956983366861164607007847958855525236890479041284403468136301914344413124126604578625697101547780330791644346197662455622347053091205531971277605626268257724079937782315817443385432755191880977783909466959335986707188117547052320149581475276130496253351205425417728160888250145174321463738115725483539160309829444545936866642530069014675282479102068976432981060772488391704603356260667417911896959733650633662018768928586684965970572149843451452243563155267225829876208673216495813424810222553924443811476147277236071940354150799301663823941193803622821578223690502388505855873796525923908796017123862543622443758926604997364487374217368913644915394763720689883098361871771322465281392314832491895121633937753405896011872287881676877695562779535652735635780627379215758037447371320806916595986468246695298195264271630665561632508597286100892138717093278426436899105468222356591194174514382112646816782181490556996432673173593250406175854151417355061115522941296129540668260344920180230799569150434991204666800858088285900922973962683004203784771889882050660437953926726855284330096397641243197189432768551267049074569396431283931409403250169531050148967882420339117414578912914716112944621516962483738234775087479099379805736207729650072975008172084183178096110309177677664199787746995947508457146576547237376732896708322702134353374213553419499039606538640362464693524823887156915012847428916353061116107609733772922862567178125402127022500119127531175238725305646686432109559616371737956966972775723772406271590152528558550981616382134150346717517923249198135351445522399774019929508242110916345641114372400108023182196601574338024636831428402557447352550580913435010321561599607043988511739733305686225735180235164901328871384452977814085517037775588104555821633175529504937760414713576609777906192908719837796325406265230589109030545530088471832122865939929928754358303479504810351403452413134804119430891397804419170031672820550924961468682405409834387827799932987987694628252287662617665694540055647631055421716799266967182063147596969908404419402677955575370611237907202208569933848007860266304938671212289279323559427027528907326813419602893109247052303743409108894881788460532316719381538618448587813397124859156556301777351491274803267060520168307575473751012720923810568281439734432316835251539086176117183889893468913474948881328688362295072033692694579137074960171206250563254601309494206064197012440190826461459699657859204533984256541929450742255419436898347438528106082767345964764703918776047127109855774656140374145264658479085804217303316313478261022397497183577167438953841434460310773600797145813721107880338954456277818706621719267042497991759622745405999389521793257450564353844221921399912062363413392063211872596608367756026590534371501462058082700325799225675056842189464072945357134157738248500636142631888289527222090000869248075423067854826764723470282146034648982079561787043179154016140005224686175806335912013603599727741730068550259772499159351602926484120993048387335735161319656551577990998323218795792183390586409129353254077723022505769317813739295111534822068936889254474698367230650997287703542729000928237304798234962211904657870035218558091879932944149008380901221097631705589712732433773673605058423142453014102382778054431184901624919319142514652304472853456229875022518113929131950205946290817204665081714461419638325341301626869245330122904760341585310836005682570396173016753315208434430991239961202918277510260059720668557252564575992439345169497826967278617796806612611721049152743652225227384520971966010357349103873448354254314067453111295861341593785986752323442394356643550217225417637502304456563419368997721575366329628526965638813718792999511203655761079935431538349726033682708150558370423326094230014743279352587235991971295783275823279509944217250644363670465414576351478395459073424479316272017598996267669108048598729782279843711209825943729812980020394613584563302209706272714254751747899284491737152657763046413093358463637586126383148095554418392274398604644084404258161138832801931437332395229796209977257749741021397737738262135681715481170086724160535983165589880409346071587623748337460509036131595766970029792824959912235371649470142219427002970937684839421935680425796048131086757803119941936521617483511039486074466267993975995862596330660033737571579390974396538356304903412024199708680020168614208806020241053513047016418146705194616903495740845130487150237504499033775175413968953258248091989040143528587494853161171787326892266170722212677185397133823530537640169235010735775095641032009453865298610824981705061256913608895905608977747018431389060117148468930543899228286078883176635131769971834970413751749447829301346242027297080464053848433045372349322170544500803533733480585591689850733058258204559989272640178220998817536816105706327830456343682525181675438376541996691243244810404041481639480182467481080484762350219484042198833225801939126565932443216552199945892843767514766754651810695257545361046212052557229698355055804604774476107988236807334199716464229510280119992038329950859038963297880064443597335916371057536033912592102627528498406130656455615656163782638332902999874841703992244828633884076789872145283510823708572323886276714937075696082895184284275828127103955795631994630986463754229312159200611399649305492422989655519174671074886728562393855547155471147664973007436703326115532699522035462503542574588349669057986479246525767621886313243904934623739291153696738461323106199466927876928788615429392053725396041089748899886622963425765439471426070495336563426155377593441539807638361208649603489349144395641680580877202696012158222872349341828503756592945184256823986096848967922339117814887794018405407363041203682932109757892135501536171168922906025943957965738238698726415334710890803585215286533477726078182076288633399586833303558063337072969803712333915075828221056108874697046599166922522309401799041543295014033612913387651104958314731210886012827072341844685882413984807340220717721513365457221792931341334451900231201544461147197812496224355098605243685966769640024693045354536412755088811062671245584973815283144254992758924815145887716230783928151379559916488149934370478957475891567157980225843228649700491065519000592834342658020423682223466481347209335417039400033555435077691490273848062364734178644274931357837118734530680688039850110660551631587421022765529499791563775541300092265102514936805633115608077334823408854019085081551524214725944517197275954083340664155819224760081733503341308974611349519356200082130992000434911441738937011155404300745503545817924505470204255478366645399716644444167480991840246333217379396436566039827024804829804570787901835255875138493474974155153157509085429844419723724244172097428966125636946340263613896885949483285152094107880171940374727365970815519512329362618683398160472593529327857942219195102031419288084368355700065476692941934936724221809407732897725127790890312946611760146044106182686722240199326625988825418332129702068589553438691355887022544858150827406766433813818104439667686327253177293518949973853391624026389114359764650338684740023535566546146555831058089696854592720738253117138008595877714610925934823558904485240841576801747771196532197958134724225292221144899699073134398103539176865414113187694911991523670500597863658518644757118655375079897263210778196813466899562295253243000987371818145091151899970770245142241919805243133984044244396115441069743514916935307348946637064025927120077534958828306864942817378628310638986902235431628575671415915692985249170154668075207100574115802403724353594463807826598086072488660416255743418750089596744266181006203353119658999066836194311187108446315888606340453445724407945259807745695654213632303440156039991847618980016825165190245704203700363773679801137070930565134046581495473180625709743505002399752478874696423586972951863805741295048964045309211169556900328647888872559213798635097021306340354056820796851305184104919722310719655126772054880471621030993285384287287956813426977442504389486776408502917998981911681203230350864440122377896756977514320356404875003983240961743585280688011666779656306986604972238862098474024539780969020717250550956621256755984831219658853066598770709557685305155795160225882090783275906535799952893388576392048682640799429992016262660381925133045900181599980434145000554879167253809837497274747980730625429857784154034639219066795172911134326001708910866597975277664279332708362148731720525623056021303179633558442233198510413048995986882291706436723703399248839348573112865490241994814242250270245376353674825431995399754997862929185521936559494160672191203364433002904036408129283824427901501812830264255231996283568786570732034853365413395365549715668864141217913092416032951012640887812519542827625766964950009871702182231502772022636559929911994093067538405914679227278035656047302876830088066695596306945826783901054759904128464022573065567046374009258020297181826276834085440672333186640948147913161976285392033002848312701013141469708417154060891960539264390268283666615751711560651823125595343633461498695944380376061360181933609132373965827015456945649805083164698705814389964753516934569885326686345162339619083283293095001531471622828840884818492330098981057848572248150048738351238167748279157591661921471799920994340415982709734516609181271280756951822523335321854616535251299584997155114184064638917447620794169401846313128182593078731696734313472874046378412259103589231412715550267994858851411056839647647201712777864870621388754376088883772233641671375643666354066264616383917012827652492865358896308029045873766690752524692852511772097485418692332362728520879405448851009311541954118657729874832375738671588839945896293235664724488579346692580246150612348603287361580110803350401225143604814944037470147177487486931695975751215822482259270406835089236377596478277690972899913111501664807938470939677384519847548279370796633619147255339773091972623010108676503751440636106907764821434819604571148601637369265026836359419879842586193846059558019795080593963518470504109892526300678475889044465254278945443986046029302679813441729621295721516000959276930229894375189189736196142232971054430363318527881877780711499526644380541434363645130767220204498072501782386512938466146496266632367770012441320193414610474085729580025817096707119085724056405896123920969192897873318167001337535174872443653515300664468347190477778677840996219020782023217752888716470550890327488020606861770990087794840096119319902929332419972324333434497377806511855957380742818166429556866282798513483060723898069079424103852155495181536007252462388666968607228303039074127520975729391807585714125329343320789450018009102718557191320473652022790326329005906549389694206298947500950777401149543461652677376090102243382417561769076960902259450630922479960720260136637446254756291541060208427538450505108374453664226934072827910871100907880805736129753718269634035745769132691574847190396247455150760029836409952821526831392868019676624801554060557960363296588780529771121725169876438329263322771876449788602435424568215837996985787184913964346939050077193487947266151548521423438328660752222028622605344499553194543305851763669914174725805031468571952288967421666081870278520347200841208289765231449399593797122334358036914331761060441606247633935101930981325136275654330715396862554558256246622251209972568316323090305012421841266264886607655637031652685718096418130820524930768618394600672159146900646999263869770436701449158481623338389258059327891249953628013238239723807988133246237677237623357067818850406946244106296329259000554225118849327529013784753308599477117127251917801361789378526513912322526344476546769885160751955610756430743283670846005476895958161740681121737103529517905029194344344136729214892896923244445188990635919394770761363605254630201995622756057739007977876623580971416491165479750684756286942713831556197279567223442315880869673789080256708850585899867264301218592252906868714128444479970810321345928401919827443591865517991318960714859625260527323331436300957054792284609475513257095264282134549420053126679702411737567538037110393879577761282554836614693667548550205668667938983248598922414966662776897083819566591254867024264971943014707602348217225237811436106117302123462049387903118567825204436315487145699808640503044756889023736515191906610753575749430665787033094413852140337091695822178634398872061132955332196173264592508100863797486670841305226104255846904797517316706018052318613166659459381810621200088038241146032652547669800625826636354301244601816553556134336256865447551923369249820500436041642703965530165397153859801364170860932482783714683845728164156397613431072008950272231771508897920587548069067221622519546305376908513649690276534565092389438235428158766738471702353843474770471481367302448414806985647369517204773455388807959543795768001164260219020814880373839733703731685812160242002579791737842093494797353443413754446060012789798243173473742759804095672524096430915990504333251109463747860234209418945306963588930250235204692504296337194905824809660777574362141816361765539476783350819064626759442363303464180166191448885016850307654615091789230384348569593437095425898206556664454795597445958391811645851345092498137939986551588658141123615250122264241488888842409575150021770776052301550399458533478462589816028448315637665563725430525031762187039065903722136824648496675496535380035869300345586163154000864218761261251885995870053687317891672342577735333402409026746441616733236326372122520134778560388789544753263103030852194715727246585656568126645062358827372684184178008770750705307971499098955720765622025543124877244200412551191180632261179224783497391103737399209695506643949992328895622278927029309350201987055624536004797007183181904682519697769917874690931844970570612007910630877224542032382715594340844317606172660854850508327449710127742740988320526068565855666013299520478230062131987747135654819257497905759672602282785443116146316875233015617903597512936952333177359386061716203347579031483289878573601184602743241064626018917237430382486757158298691148449573687489490697396244453456608613901181914452586925892755410813797810016281663703241573695227036515207593751059872642773883856749463807086897874025013777213380693446052068985134780460211981554274721969197562150973562224622702013316480501272564929750236026619095928424250711767594730641795319159969281106676289212960160579007360921453805202532828087251370726577533424238574347434574649440806629873809328069251074850970814719443355414824474289957350663451016838168542692219823502431968327762506419417981986922047488013007290102233067411504826416734916338299290130219782012299859287508382873698891172786968192241225951250618305524346966129742337287363585190588213023758260794790167824464212405438511143227653654543847781958847732602290462496865984183905627448435236679851171255373182500327316874606249518584001067790798267069976605447487433779351830626888054936533394614893403247844429874199840105685580176723443701386017972850059692136505908787428594804895558192839129291056079816373600742562209466873041730519790342366377892809851958723265686858432374759104678887825768516015895349492776630482458245430819281902680026401057620507985054683655565574090516045310748555500810849616012653434098145573284492273894366544600572572252573762064476496609457795830286910476851046123984088544096477761598803489579254477470521014663366786967599701459412929672098052958687705588581289037435521591143629240320687078457515410249613811696753921916798271069338909141045866207724330305491531709023536428253999677011140696480178520476087542712093033833641121999591924062090819859181548647314303997415921633316266553815470728841737102984818517253953898172156380651674031432706099056143064047140483664982516888828630647059458040177030960971053456872694724979915957012090680852267631356534874439792903153413095883012785188971355228827920074260015171910879239433657264913579719910389139679274504642588433072841140645366378949771606224461632287743577900724032591198012181156660989865647841073493832738112972432876910102979033989715875533894720351867180547404325829410846432297427085090053945779817058312993397499779313589323994894020606314163163542998129794716255406391517235300469585755778417726421983066368055870572512788090932674436267774387395901411791721076298082455755350726747894642188185633975586450923092034278857755398622051396971661143901352522121778269344532558373545719204035444391511450290233417772199836150003692441915455176354471092058609922752737397880766530770928600149366054738803068407894228859936400838673682768913578511675362591004254882907593095418512171547223400243818269020433379942861449906742827932556334118794874437226389509244082013392905129110836804314020080726117357370946565787218518262169190033189083606097101826661825452563122768537375133265422516589420413041146375517566802169575002202893719947242663131777380366654191955920833934502781875184082492999722819828876418373595065525880438321523312789246069268643773342495428082524764614403973498576617075484883462156971676059982535033077665879769053550705642319500936018198230265078537628110403722660781441631544997874551108808528588831485019925074080992438335397978737993504491260503955294677910334282458293364406963313053696495432889187359779645203922525035859065199478899946050237501083046632088890848905356885600317738646053042002403719020438519439742660416630401906610222583160367973077783408808077464345197215906874328332495458759479778559969763656366778597263411044723916992565733127317442347383751782353854049602952247630468402522181431437040508988828708685821368333694688888793412606163067898044571960372617862179847169404087028468708516309431038731242931973310313465613260528486640004439653873072877029404828312243614323435763048342300652441495320612020429109007364834498359624370912305514067894214116883131986733762678013730955076460699953818996758197082240627679929142658832816110399825229691096520177149489562879204788470300269114070397963828338275311565531930788394503417734729009914534037406402186212934969557184125004154132983896136285482801172886206971482879885995937640963581161876788372946983106331722203519766776129974500825926959153427300788407952100380970576073686454780072266923295641795656824575924510196890253130937663402572951863429361611428646056271254822358225186428534488128506808250483506951061527839065564066877416343154507110475330659775683112169681124221649388017714693702233977311028521832645559021227277865099618570250438417380450552511510470705287697212662880845859032241387097162599771452665836912413410735307633010876319041234898277351603618764350695848911848974171788377622149202945580284184383106579547564655064683400165383936582403120380664492314354994522692797398557484815261488052692167073826734119209766543851378839737807337146244914679000713640250153245106061017197901769615204576040734747551677776399193223842206675496845943485912673180476420889391167471402494925102701743017363241551665657176783625202581887531851637614857822183735914502102422841847489687854380203832778235372203323445364667872125655222921344164156101871882744470482672846985640616484958435054954856054459850076080717055818275911873375976648213505711140472028530064055244029393518040950634751848189746043643632712216309012176791455085899731534383267120986136859562133728908611544371887928794740779330223213314319904606175340770341332308117882736044830973482908003537749344168709724630846179868185660110235911626904973520726909880312387498648755134303379310990098534385273242574797838027275241396651731472079892649806396345044562284913787482346980827602576310149008900105307827980054014519025041650892422633643240329023739194453145103804115217090948710936306272639509573638718872709347397718926924160543323396729295501275253943768127665703863968746958482526265843689952766694603758180529920955589735295252158333753973418267925886529314348662769906284781021508775694887809083826415338789296683452788989022919334993993387346854059995610995889401225539072942215371551942272422300578821968718961438843020227837090789500963824440656493337870788388477965854143853877468592109524969503960002190726665774488453762555100302465333166809387117933694162895436118540892738562006435941492434130528584694959247367478945988119451363678742657871521081997462936335087776951194437375836943957175455405902997730331550880345352039956855509715878286378467952360845112501760077867764922343074551757180292104215784769648078758562140105053625042549356372765993716834001826458529698750273748713013605486267237757144431447627179870478268121009363413117564091792373309870669347784714627321995703963125533118285112481560764847688380955099257975242741799120415064434379807743180805384690862875374391683888175262686145704852881303027731799026655889006467908964288560656141770739163002228526289043662809688232843483665927827593406665832134695811369398893379594796433767600761647934022432705248945499396640216322847128510141702364996225541048237974530241622065597828794380035104908834858710741302250444745935683379859066912243946859496709961708379284493066830437110178415949293448871760963644085050246867210767287591593970402305872554200822444050397756728462527121030140360942343081433341703371906315474705357533317749365899706378907775137653997386655290951740590055566507153351479988051735360376509020242881676686771708926928270377682559924576905354633301558717624697750264491051833786497385881824193745096532917539075136601920882799973172264195026009628387723615584403150476625322462250168169003866514588027368502590283500404658971885809134892653259224128315364821787527616860906497464215092230982315758532804768427923393302510936263308802271717617507664773018216029178103538135652245719195349199195797848541543909962923738855248971979338542283773777913968465234689412945163702910735407219478612099499084259582133894478358645354360485582385650052735136905467352837980922100576970447010044693624715272315677944728890134530836335263402679279154640274555328271612367215821613702434178787323480116705625654640616882216297382499995593588833088090493851594942609338539463725071738335064670808817090819051195479912240392842742854715231661160900540827372971055602803704968313750755183218775453565009666350851355121260265303563312559179314899976178358457079828635386112710113505818015331558954202705950008717132566862293762446597552767214115795627629166004501797135086013204220595328447270101461135640898598534720865481706173920500417293452682748071625241822200288917183739041846226872838394603183364921678050779008960311661864647616853932417470162379571423898849165947375309041194033488176610625654298105235086672894313190069117805571899752136057479858527184797139071074903736532663872775877964376752245457138163463626070414895722536663824400342914477558856260277000705149704769524405550774772441910112978117824138789977149952203082511712740877996595693146205649336297546349437212210342415277360149389526092693354402743901636084852272907185271501810904560745783756141097213102116914692600260502717203549699959417804610020223430483804463375530464552141689204088318933532374753205712510202142739625753804252891937939548306199217053998367944477959952931607768890766006747543133264703705268845614266825828322726283086447950446120170671550125548238230100276988791531222621280136137923095218988272445447171211963541626892357748170310654554275274626875575713696765909578362783783895708559234587558964653951600712252668282691578842245010471592305510680056134787382891802356286257287537778251650857210228614657490173719376066204607776187259406113747051414698381028097312205561293195250919725007522416137218239117000203127799356947846411613342819671954164589734649995067896441870324541327986625749395877942564630889463932941409991808882173442023069518995125820046000131616934093869917244963594214490891125877512543251969244828616264407196894673281472250694191305235566385864862373562000610844054392004078829006775030068991667145116593361529372706238894365984740383494856014625899269349329078085784394754541901538142167274054669395152119170091507646960322124776128576325013805783787826938431254523253048026968632542099659786200378941012058824902449987457899899520426577773974461762232275067535017800999027268301189208820254581531384359739499082079228570235716655295455153334322050979463458116992994508206414290092826453351390884708725074153428331321116247196283155343974634985848154802271642425943659445383689695748497646682546280706361854063993343588821848730823732368775280612960289484845500314999442777404266133607219260268530825216925448075168404282873274466762984217234010447578147459441851758158253965970040442412774495755559672257210534826815106322550520807880075364329930949305475355719368582961832864757064799643595554539899428890628102825773424652448869770591804928506751832764379073747146979822533935648838066514311885985640425404506740929995885509784860270880603522404577369744396071908204596648891881899977741166331328438539334130544330442609451279550700126605760840179755185449355639202231483913950695430560863623998678787983483852304174535354442378844888756348818930931263507890198903303743850674991559222922906509150816046002746011466809531426367774044047968364528125095501816220686931500102997538536696713778770105109172009370897182238166567134698968296795412003615035475750945610851432439575995682321636303022827557002128539572099992377506254381269244448183093843932916383168887767887436058532586204799053658620959664552093714288026827985745291590923742241237458663371669951570952949045126033424606577646779900887952424512735530288362133189852606339394516770613696929890404171437046257475695921641326815166616871868066789842741788702773663257434489028988752111644589706466901110987346808201524947459911981180018703389189314013214343275910307308739764967528007455521199616630598459778799241476769282431840390297491152146738064860123768342361480104701993750040372000385001309413151783812330597773858869884480239274702399160451220614783314002811117895693894710435509905561570790856471311457473327253181152658559690584000280198402205735308316357572987599490911905676393990529677107367179192688672732513643938932389312451357337665224192894972020250646139503460554323824924952659790854690973694960434245319845519560430005730168442775860963343256386400642609360319412964544180552777870511019915228603863909223744534726473026245559838102748063688529327931398515569937247980218329641945993371660559807269156352660513854507435684307698086945035489536406911252894744298907160044677066919587312792733762819473188631527696768559889723631359003066200730105997892063362450567095982365447831276746678039969667516118238510351274337276382428832857916561742435364229499010883108832502483679910312501107545931374075129916954031213929374299707518531365861055771931003950811265784965240787909519507660882647314117074118527180410038472283375466565660184461854022125202279708687518763183200165198726463946440753282057532392036934623069463758076350319413586742813585150758988857328031428286085600846089790633817803244907250283123050635487967631100507308303780149536087480142422275865071095635995650376564905739653122463137377545393334444042707689787471510734296568457535221857714429343742210171825060299438128186992849006853182971829952618424609143418495952721805793632456813302817043330786027044629638996259469538299648105576256480606530518978873914805571749039545260605860457454070704849640651204373198433102051145305837720099236872846949687628334881197865115205254789017261958378927640831709559758754547170077508683106196656650795689457172613044221116765499731247939500163859113531852407400124785114901553691632793362284723924924885812113489952623336626883712052601595832956129763510287956297246264899774951224931568419503772686366978703067144274937383887204864544356515014797032878131738641631986353460123114863991742786539604156488361028031115245922080677374952775640804711096441978939335088305190812328563899055613444635691303425385397618190415039416058083886461620763297953241171253110804927576636874892659937929503578005550872848883817699269736257407300095003341958598643349638557762507384061756842364051474784537131645858466564243613567843620628288739861704815096315164499819255440656447612103443650806560116510244778207088475844593619038337736314893591935499400343735782075693448603825658440969614865282001969185856715878527328325751690557972894274882307267692784690255846300354173452292047995632133243891888125319786652379886637245725139840858150439914005966515201278837867236236529773889974870128733201784284357866718627778980296621576090954270998811142409402906512081245380826511035461241441258641502858210855509907715498623565533540392903430758026848344079831354096636664932223560240829529775986957528296873656060849228390809608316331647280807057520741144450642620818823384705240646292098442105243091755801583569858739681442039916749335034242506422223744187614461532506345574644415388195038738873528983964728254932999034062298787580325500266889554955121240143186818673231995615884769692046077822855035518345698793083254120439793799041773916560233887022047773599106913700174102154689884857126018549354794313958551076031884347841010715291592181937637431250509398673951930675588938165189964311859760894745802038800185544777151700162324109310159687739107502449418044421427928074499615096668214898755878526149478973027884437467184571265676666411000189697806061930817140318175959884227514357827578192921975061476348815077239135304808068571804817201251633839905904717276193560598156517610060057347697769306035334621246923563041715271353230354257450264760195460249367495561112382044182787581526742121909218226424074830573251585108979260667489745777882748788563490902818231072167101139020197919631354296563297470382739646681250328404808918427074027559000666702850130132412550367059919965696276068975305909773636134330541009520510796992013591244392640167598667596784198879208364207402463311352227158082249784462335391155451650507267214374819572547826431658913739316876360957670498879594988282225464641559219366555582098115243381835273412224685732144191983499119407190271621465062496944575375540212515866680728484071118287018399761418118061591638000901161303099334366891650356128626737416104643779337551168536702509666232419586179514554311137427677173517381584608907047147621637866478858942080464059027567475372095177563379815040731007489315599831247869835054870290557473792129393667208701687263576304502967246904536922445230165916124036608889118100787241032466474432463236020749893217726616004808316150522527649226170743958324827462862983673746773660171665854814867699166355265874274174474286775732875872338273276409829791048004446962316577848618038563174346716671360068101253331429361570987026758984215909648140956141265541535117548541042777292511242790484718282148658366939991633034510594940237617715822168600765500148529083930394367542802457211909753528670793958649767442620683210583287186557643934553547495298595034219890553706666577335004888314964990497766748279187944251061431204405439543590240069624678746102639936914153433309217647974733590783978904009726260645599165564475484070356445376405029374803215193275401630854890472515301370576598130750020156611146942928166452719380242161340167588955046469101794467214706903420167196616778672316103219334367862361356071863266181712652896249169891653451460127109623549488764809510890560194025786752239881729699588581820152565206120678600101334980279279830773728957392794877110100185374133567590548247682216888247081848748602300879530041737016033585328630633018453486024876365870054609332301531586074472712289981719116519786390789904111606341652558169276939240279158281915653667015409207781995616613060168254591717871939366473130621965834583351873278199672117407731610541398223673342713079657822428856137062972198898481303453780058460028602245669116766128708939180084261883469723594580538297835528664239820916725207051541313479127970342637788370119459154090463687037333230567862840117265548500418034693551700206241304408136830230655487652107693716530492550516450399985225286071521401030072714318793103085878368775731055169256631176419677467473250328041327067699917606944315348486112426224723685270844123597498763881828130578424998221226879509217487353597961510232577220166057163427009884368787372702241233966589799890846419205219853657509631393211537184662657049588177017274459443089513196754783424578782596621584163534651226048712200336518905414931315709600735254298203268644382656397567556554739319550281364415501452404234859350595323117925456353235721462915707445683478431586883193165768846154000158927628185144492042855782618219246671554927383136695423664372316501335653706998264663410866359070148803411346960317060175687214483402343654311111520458329682083307970885215076531602750502897998906385648517900873890589104642750238581371152217279471741397674830909088632493339048542394209835440912110883618447185630603174646308333165805206188345010488125750799625520622534560045605606079177145793422288163346327027415597655588624599575903308202941295680555591416029456143282936523319436480519707297696606825682446333185878219322444745335194287328595160210095533783989395568651281982393034549055751083340589848155108812256849348565380838089166900673378871957853853411112642309012421898711831231052040572118311361984875908661605591980890094541137581796945401127265202751741129754638089927998774812785807657691456984111367560069640247701355204487191225106195995938714392483070484971929339491692721778599157186273614669588151795712486675838954975789099313601235357367538732228927381048423549361975787180127917438209835342533605148544057177988290118645027728596381509921279091288618234422561578509217702270382693344830880198164282182860808094687685102685141383379992567172586869160576306569235205640550946936874690949769809141401078604511431163791276441722225951120343189613583020414439880051212939834411678418311469713824989718569490392419566129690224335014064153740371824275709883096662280134288911044203517185677964374705570709851923593506777739852364842064600716614579485963090886793636489207591663343322608361023972537467621768631108251890050677304060508979882424801231057132217574991875937475964821337300898634441268437489734335650437790186398566340934599328111113794749492082995602041606479574948125907847794468657333149063203245642433914777429869956547356565960897370808908461535365041400963654346387910278123023784329495825360436800504785130812413469959694931026649762498652988961319276197752730325171728236469847295178973292771574198060639163753264089147435055125146183174257753525848688307277877649147621109584628561680806769058634299867891249334444463980738617545066145344023198128254041666082628461360776710721962691599509174132833951952839601094336565462410382817525877158692970090068808549281141974341451913527969519332227202627010901987159101825396821419238472314045552485520904967931522983369836720582859724316921023129417596978444166073978956050640611410697587656738371854162264256382211714497283027842147553685537159955188370747614058467439799852084910288148193735930731387080292561891101654685613385845224650977382014318795354683112902882571612487177559544336812847505831566905947014368138366129208833606663624167865957691161360021530476501437137835136265170805466990008315000570083286211219726103007919530053868159265851533567014908332661089892185704319725105676115946506241966519056120826917678945839498384065811552588322879946232124243624868879059773240947925762014584381396871601557300602276662984950269864334844233615626928795670438919359109483411536626332387623688423730847689075122926004911076414052998783878612127382775585334319534615446867208540102857135208575098659844094405355408378698075129943753350302946637720609380964728250711475859600636529124224685536810970231595717812725183980646994069962789335306670257334363714060107183269528640881645689267051312495127275202863692904689992703413587786821429124677126783002540922796423548626473875623987479984992078474332373653684740123744964904532780469417858247456388948441051312526758261424190424608313437171083106830455577627894782061754419253462962403455213290721976646157991925845840688809741330296574866771304410288490371927096516423905468185491223602982250545404922592813794008026558066557324028230026875306152137007889766326050264802781227659316090755537563841948799522693135339070907785168457337825457993242717494345884004703330310166900461010689485640257855935246481599034142399159901461471213832706497737759381592323116766822294792818620575158958317512497527899035768258699645337520841433908535002018150098872617625490563674740074067483500407604697894676365023474095337199004750244685618845283061310616590745829415802083151293078459079052700222023604813561897219593292651496592675440161861521891169690082430873964087294629193797463934561363643704593751066023602458553363602421367959181136191188137612052770065276151976958700146636971328863001373292220299741664909182405591804920534589113283971051128435644153841419478642405651124728875619333365208675114878711727282042947051392880064821138182750140689837079374288242067526070261316405112485542432216840808519486716189907343596315062287558189312287361899854830793796945176576072998079677826893756161171515353255824579335281963942540410387036299102928643620814961300725032736472754458009408139210786620699056419262558269426485326742059334273181898424388376982061231839968655088120067216307429264910989823029770696421727938401183032871266203133284114208275699143712555253699010264630948141320576443481973094890909985543074483962661857616476203737572936845088259008254655387321539631878586810275715177915216391420198146819009305222542556504009722228204108730335306083134057417201281899336187174480060434620393766516036475172037437658420041300865842077679411906679288032366195540159308903445209248413913866207419862492263558909369499936606685583426636914192399577153505795059517841940380516102004508656410524455096904664323092049201431578506501244938740607313401605455602432814702505133859815604861558010908957378567030895671866197849944162050393983812185886789251481565836728007113911448094099716219057005586313790507664366833810031348682552208636887707678492800905820678477155022112596731286913163887662842653989490396294500263852207836314113303660897037489088668788356397056672308368754051273872835328493228899250206917637904029741097951299205448417910089998453867340502572296304036702179126054271101569154230904642167312016341241992414046361667872123964520308177256843633840918989565115688356020378435602216174543495553859108769458931240152069659933204995376510064237354580628860713544551484249738740657049196227259292896987107393951056825206862138424249045947829636843586869110371025993143748226601043851410892490758021694999483477128720906188552739450455105158008676004640551574259243310154530184416939042603292390696203025718450949470077926093870864179752964438808670408616848125737099327633028696167224451241721107189594150453782829182500581988026601954684606617488051441754911936488348624413709361773588027180169018136982648280646397777753711653657932809650375168870939458908296174733905029798334360446233457038320967528410047852651647938836740493315086601337749178362334833873461068618504577806855491136096492733460673302681656159640778081691924669118764108678804985397031304674082884213808562428516715548114278768333886552622875942265107625521307318269924164651387092009771627882758947216492975055803540990479590734369437082806901405701569699209510318684922007267840083090577079355698240942502139762589570302224103846010361759718451618492553628143710379320409867096452641446982164275975725130625809233443229476824180831665144846189360021411229633460790860947900037485801075564831806910508809735828404949829713379440193046269009970719680243900988651232117665546615943523115103196251802984528605464192417970900284654296275798746398179072661720179748994258153037084757124144555426807388235786781980703454279409519321181537521620187384588640350832834001107879410839805685854085141192773166503000528523705992791019485602675520835401328474724367096628269658189491267813872953776740770785922095807243660447557294593515815010597899562903230220787650935268733410592090260918145943685000200793039773229349791679370105189250668854072719679605873908368816248591294052131697598123065195641506214627686729711365086722493184851573863343060612371095256991217407154453244337701889781158945143838457276597766162477759970613139801304800265477601973627134155866035529682100964115873425072120151362172031792296223194827116035401187149126603276830937263136742314861441126670125194317439122513675885230946468249389756272360051429327025809015972543471457585890646546456050946754227376360975493890373606652806068394841659802466150925497962254268472042677588952871586420237428557060313820902063524474918451866353136763024017363391639499849188226403213354617348771537478611994826126605499263642690226455049543062309941860442160812034624694868120784845708957551739313165012013635306528372857597303087204510300593984894444682222887541705524359011960217774232431184358772944957344150404915327785225340129342656278566193760025677528465897944441780282949547910708348800653105852707789682752080071059841908650920699436092581198350288406988439495544852638043112777431710884187673545971103940329660867181807487742191425410589354912853428799578782744725573740225778928966316080832730895788023436939638688212850245710363803411902494118668791536049476858134001525052981235166575717072456267056870471365591197820558976967378524236837016210490467015957471937799008621648159937116287858931294714349115927777984114120131115083899983588803258620566415108214860267090192471605175260066770952560249423729298469944984723492009456012858394276489690998568862792906040319374381129967924933169479271055520939836147833482547783446980313000768792973276591745576468116030506293918444627342831073523983965522955403234847881129521353507587801340964559982345108347200873283096283670352746136300162024505949462537102872977300774087425792721282917263966610755921030473307730758294930796758107239042859437048557475705717133531534641418758696741861033499428994317553033309522347757604156826529941466238376821730469316643845106375281802160713714344084437313761346856791952296478582504491134906316560420692998767490325354746182560255875533850526353733691376746432473899378586422453738127651762708323941387518716839172989980615492823290228688613621247901573752906376012670754611971817735600974171453270746746025069683047764961663183004509467151667911883642189077789772391615845374441583274536642803701659568529887078257178011556761679216714749848197104294089446871461042957007375217632196295726020060610548838369411542786929597629924959046262367017929746550618399629484028667344183140972838237310240983334074138986954990413410156959787550266369645400286113947556874725350554550155902207707505572684520374488065643473345863678098214895494441580707223768932410732553312318476236946704857294286198221191305037553978661101247054954272190274601096820640917108600596130423871731283996406688411827573251056289419410248646449427352745310526648660725442266539128635147923929357878704756718355523570896363745148533737173401050436683014609713558159043326482240175791278804339641732553488214535839352907323915371549617292515147934449742460131496869976751983192035224495920546122197394378541377861610507477985014004064018526363752523383829455935105897085679282984601976726618878408947522292237523928862424973723510275811727655242886481088599135780134361712723734512847029448932403336210625531658090884120608299914056919224102109472362852713905018593100048624758012507377200374318143727792643643358293095684102963481315754180054914251897383872483279510332098573389505784579270760399930951374887153172102606862332807256076598664975496832432587467554185037047891174158142435020970575838410666638437513857690686552768716942344910925407193831985348797299494608888647306690724715896665261425588920417642367900512659646737822164536700696763436438835711908609066750223700358821861266438029082528107696641378408293699742799272971061255253576891867890951159820476314412617977848576399537993149595209432578435103075302369259986988672317700339046221228795821643493321217958337777472626386894133818327729108071267899265300727298529101551898154874225125404048394816115063149673560367316347021902964193409586589336880770891121129022668436611738907144034571747148899125591633895624245864641184205118797845428532092168032142150332898599633312679228997691052607082578631513729888025624595018445308025633335317251327485280585519084086610459469821549927438722014497068524029572760494632190382206421300064012463405830679259511115521787675062121260283623292880151982832172973644117780137972000508468807498860694627173626524464086532953549233500058638682691087582678823712949455274560674529960082642972034377169575123186297747941420459376500465440063833901971670020633521636045915609909809200691551599233036333722776850310044666126141858386473353409061557175281277827844225617849757458822882114834682533815543647706061337279236238776534554821944717036737225026459704956383120873880025583435913367318137190608288211610483333365632790845849395857442662869106311196628515122000397014385049014118547190236108669313962389930863876250878484433529498121639174958192289750718117405595416237779272326608963820145206810789813239891936438585822461003229051937068257774048475876477611059977538654407181736370002141160452014693821381474194328022692182953566374222608074794588761054512901266143822541291058437412814651685330920163277995369320773038989479572298608775186841904442838474019244747081710206615398266819431363188072720379174011887504165334574261509879650092091524927265989404491219132290328031364512703619337214875802941997960593706615646609646188586086273728917969607240423096188487529081561469852634835098086286937767843169603402235794353226322407388478232523357282656277829978372291107095057098614944584955033856532888100955690515157756043073876941634643965728867730789651793379597387870482354721067585517951530861197214691833217240101393138087372310812055543133997062185830783239203292408992937684318377438787507551890030667411582103320382015448218388010329352689582553779774624280923304938489031425685940411590235563318831958437226502037144128032296068008862113519008589637741787826427675635968637489233513027851940938758451998789383888715648073101925992056569660110523964776762063053241634847869613295434093166476908069159437362182564131751309075271116604029889466271908682699172782692430287948663132994333410151035611993429994207813208565220939991518164876992383475776471592695188656158989816458471935932088434988343972985552702554190804137497557606628181572624667787027112244493375308573732696793791628818709185580105656372452211195846046225485435760452444010649911606765860226259587998950005869557205724575229080276930382495370244817810597192155091581001514943113479883725077289019686412696366670857313897837214638205304849729563825418326485705812324883228375618168443920780900249761300140784282466880716102644198895143404134213921408813184351047916802389279696943975733276279224162293991771236423711527244922606399635300468725463050204771155017697018721568278648915590455375907373362577433963620089268195572148619360985500312903430804021459507059474327484727553837445780806560791724192529236876410353087467396401656574962167959406618105540057724982227552556342543809042384043530679641865182204064390777370297933861953923864875581590714399717455441410277165973546108463732125945468868497371702314259013036769770387886117131164411316924958319427259797774396136482969639527816541531177609972103217312906165000336756621952440321755981391773080812837815015238076399165323073442366329516030030986885288606329840575478952155402694958139530219314189514488894276583256729879391137522956675150178911246794761580467773432481636262040319091171327488650752355318387287207810086179688396434969926654467374761027923726505072982835860622965022306392377416745295046291230348282145209943481450996309883407737588558482034742349350005649560462046306940345457029682689599725001314501860878657114106169058030703470374190985012540553020794135339677262617087902276284622055057128687925049973559842363036378597777823539640699727085741544083010891400561454902957502344243918620271647287484277192681210901395994279405612649552006900316401934797409537140519282202360216865350781960106216198728253536997621478928163415194346890420949245161079793135420465202558075970277853744848201863875745941649906641669799966455671472334310476803905535070880897229168906758120931647925266657629027670452726718954871033832273228575180104138291314034457852901570581407358364775006568306696092085515777717279116769524838848706501143158385091225754738906817352282513004755003486481814199886896189876254085127474060662662648470445185666997389586811135222644690114803496411229989661992421008290998070642026344873569951976968188879327503273513396415808536051139762083416400788179696793344167640016068314535172119777949765161264612973817558672217164460217026901226818119412549948606002099774454095163801934774828569647248881593351806581565200346271653123993540914691099026433598023539004781726103464658301783651275961154170888978539061131400624020804848264009197738291176278228181205880144592966718523014353999057600059577003721124158988937448302678435721713039622489502713311121988709931160363250761957931180706846530888010282944432907582734497837112394051232424239578922671623346831820614487780188010736953126363970241165558112586753596018097408797377969183405542408018870130622518018035049975651458322799681589126666938478948487209471817615275712229364229356272525374360496713798241291945286220097517524840558139200022218998151869637841036698210536211402362252674686808397475029520440243024700300773298628025984647422973666214920489222251204712200924938823820054973713197357618948349697769545266880846339884789820907086825994431031501376897867062024287161682379741582103628873870810797119900908608960213499639035329677183006622424014805823133692307838514704018596194120338457972034714430431916696904153084169918736965961260278990153958640554846003659879356020568121645746558828501799047374590032530825129740575624687370656164997679759669240016619338181511333354187669463572498141461714631226090633641589081025010181914469586205300433108026899022815915093646457950891398620145240191206946178308987414044327211229131104497795998554466827365241494082386135758842533443000348795727942450999128750507667554323929471142690620676412052676329460181688822508887688253909568015961149615779788607843794580864131330832454449452180101015279079762346465907922991294272474223689812662618574975159628038373095610758856318696246715384424130891350076709446796121025044592124400563628376779797345680509810802584878571515840924429159149791495568551473986397494167538958586846991231873858574080437798051484865709756303537242264704947255414290214909740638186050367432325442541935629527895322040622040250592507678583227257844383096896014926200020983226652113662205228740360374932386097403649948993214839300593479750343668830625398460662480120184072537883971917373077903267995554197771798162811480188815095295517526324354438130538864012866741148805756561941404121665593529987903516028876346961098445931002947790053056879493560333944199436632855680418433602548130558935529042656648729040947856505550843103299557049200067047345926561984381238430501203700585468403935634425997597380217018019055101442361913413724042975428772854548260472759437031309287644058806498026598137277861901075166640610297146890117008270934978909187591346101593874612908893943683116611623349652791748685132855716957573290368127466914315029513250234032574812363789046088208096026760488292188384914707041631006221818546318468418437124112694313709099621479998833766914034531517392779870757470601049413494380649044292362480823282382234128204166236701158982253819396237277834622870114558707209720522824801176911909952077472277621364971607587748066363045855756724207527471839301438308616452368866828286228033082338136147695747443710357075348730140475371246140674801258964643997620123659387608748720046000298818845133801387530692798120276261358072022002782876450691424561889940634644506726651506727880417342546542502402839372587796056384682126228693747729972811495857348076679281654632372542852658133964465705286431002060308019444817428569754126852906372916977132522409174143774406750441680945774225323635070946784100802635290969379961019196942144009919346401271476700688949786990635113754758871514487709722143969687957359226959030816257679323828612499262811325374879528373304700718374958271923970672121797912170934364083901915608904804803228023687104120904116543665556482584955221411782175188027243669683745689000314368552836805954780307576914560694588458141036902575845850253900838273379108251170971258664051487117970975247082723027460417092773992729663114687345257085080326471704142224620269331077064061782891359322487066547200635595997936596729642623997211723073764301026852124515523312235053907440544883022558439836187879564796566497692765058286514969331459512421659036741248844573082620466770489232067585980567606887249956683751501312956567831171116091186683613700974911537563273063392626862374924225596829234246906730270796828025391336667983661745456643822441344701546249200815224289757366876673867902143779974658026861160666536156779976002580444752931180668593104015966950705199183140645353270546471295614406300842296915336484902400743188099410491152797671546338738870497622242168637454036178764412524256227269977856969439521322085408717662381693880630307308033594815366851154599614223612698526588151460169716073250751404318179965278959052381037682383448209803400450384885247772625239973220638330292510113558229505101774019283126924677232830308350046595101926186202853542246538016300377325606904062384777475817581009830066656361364599171239485451560438400351812671955877958646777646154891287112873967728509122965778981084710624669695814132425464923007141320626983318364504732676077211029220655930416052930438826686821058114461339984912872676688012277665347395150566969668108391564246871898027008470909685227528349220988316614856180403767517288204793199904399743988276391290735456436306406630921976354645474114424294273326076970928277407013903829338909460355693299646738657119314917787833995817228959152898301036581317665387845197179123090135135202371202614882846137563604113591940280206451599324569366723434291437685999093222552622416624997816390628138216808522672667012552622108813149694418945325452006748442097805659986276143611230112884907134703551983523578081637186925952093658461689306631014934661255940944950295893775451085336053048759648752869547933477024697697774577474690195017595825574605719251618776373681923158608433085201923416417774299988383953460013777057937614045366653942720288122604344818681452109122554501382691502840921760618351296871455338210648043835091014388469657092450893996497768078558368240833099083984668259880225374141615143777086637608366162477940174467774160223157722082630240405915209875910893479266547885227042541796601038909554665187845943404288323475242908086765970822434207584513000661928648269220541031592044528600514762530043776193448713863196784876828580032972253554206810029043978855602863546261603381651479196470767264339811850102487547036418302010848694348117259322269800401496915344369934816404947805312492420691973947875374683032855158722592411710672081686697940497267607076322099907654758308777421113981856186287700078674633892862516922710509268666319183482654785288827592050721688449236351805944518964847445091557075927508633581016017422786856857821572630067322606261971288057149845928595471196814230039984903672715868775489736170441818709038219569158008845122555029087091304366010882862630289158631425846833915916154130655843438143586400871438275389964953467877970586078909337511570512901913657850273549180779852039579526134603692717532402324828541312990579881600646790122425161485894595667762999804496691560239902838567924860990916949296453686082403298850484170109042627537661954293909523292220365772820324511391292457351698384819521000933843960207472552940436822964226503812722896847227003811996276926837670391521724438178577594894955079196364418984787878931040926257233193670538725617321462341603720127593004003468099745520866684808517237451461731281381263709337738498993323483474309218906685330868770495912948497480671005332570417588750398571434844927511965958640518090702792782151943301436824027973125956037113861656220268880850612852701331215121465536054669439131556037371968980300477571103660176774127056491327278772663552397093082147706318542003814287218902651010121232779488723220640108513891621737498741068602748147761855709018676530805465463221176388044372760348315093617232711215587023192608400704058881382022702541662442374836147969271169944015274095512811968415411729439467955729223900540936567220872281718302966536714750558740730693784398120592555856476883176029008692960615553827079614229605898021223834540490995587464081363161302525513278021551703514131910249939022802985916579431974426460410032992452779979069466440857432811488206019729655125100387976083524428758353100653771719243714543415848573068917322914527705534331126110611000691557161888399190897457123130198807475155371291661968256680244984392083414073822356208289193200598670665177317515583674247275298063151369303016596907975629725025627873258626215508517018463812332003484450395554522311292421104115341515561735842905335261717275042293514137718943062115038814195609026095781123328805962741879904344373895308577625734319995599476119411159833133314058039168663371127743479018939274979972302637945427364425762670653350468149184418080455343016789049616893469268200547312434980241857183608514222952297666609206685779237890588759626038009553215238818367576694931681957977666171027567757613730471152890519231442742149161345486411576467931556700352667818342734842315519508221552240981239086004407363864659437683809740295075052553514816600252159892396154442614069407497853717504403607551062228389166868550149578307671227964390630224472683196973516606568270662440963621646997529254576620580968410651120712873937456650318830909691248725115695181793015493397853832138556570878346038970565250237758584974898830463419801205612708918175510142663163731040000985694822301556079414732997617853369156554894469244983636085230185702618955288631834282790520179032195305880846919385621954703824178934682954861293659278415104507274296823822618925043018701451556497372760896756249872702699200531419069149178419609465800208320195998181719627397626857283651627860016382478053309355531001044285816616663629064521968676504292450603962420131353182404837365579369051459468492526796807337521871865306408088260810357531039994989090659143008951682127720883204160738130724268213100749947074405431441799100888040506632207792707297684495607583005254012209995956488725157948175774433773514182699587443916513152861819325213382337503153768310181955001578603616790961283875897826087661742669797604887404830887026055683006255324120118246832206437711593308914904226753466095890453081569076071328050886294447558689860647335331353405830460458822227772933609645297160648145417067828301632921468434653528195893314023456536656786671591984049575753160162717069037361081722537596484498660469577280921747932611746696793606700762969013758951148309347961417128096894891401302464762201624337134512783159467063907322899218213276704863026642038116802958144024128465461695221432580711193625600971528765544850465497171623700243683881626896854380976118532574820105445872955240287163837502223429917744807740751894548236456765800060497499635200124668309821809829710074455800808274327943051476509118927074525186294836345079831583669571037578065107982602144896307467247995610175094721322339473013088091500089129486464171821797442443187776641952062483925420743954713655478189587366682334435910432620772672004377890857187023158613224649906482113134458144352344065708954548715674135566930883048141554807231970711319430897511747864117247294765591706384316766343003880850411238748495078117410417649081200643915430545536946864367349128612761051209247663565972880978167535100608749505042057417953656934624400163034629240625017941395800656813924091910411839019577097996175470609856599446166227842688322395762641395732335605273743994695014401135679284926674403262678513547718521887077252251733274321509268594278035948558533057250798569899056053868622854246883696773440290699879433222192747013704775647577212145697270983908155185749138296307858331929291216840732288922698363121854864289852005534464493807528508843035294718797116154409940332631475215883989678458837857654130457421834735436114020031193199390774479117793808740500171377673818550865366673358698342540861555396804536099170373377424985125289810424072568572893119998366537163578948680715204577355742461022126824914803863006712665076921032963105491050094903949513656455883100789155850322526822166066544459292395133475457312305068377321873553441968324121602938789025497977073179653582661798164831826709858418530198583869461087151512474312218622813940473845597017476893571659214213153591816709032299744881192984813178565256507996856227407519786690263794269854815991876420216755108468054787919607120304230283346161718094743141029382197747055564282600726807125809429849351418257661306294167965053632205237167091352953752227895826712998004024140640470422458782398771665179479180675928780456699811645837019072624764252290687400683221814890624812585907924000065068494906327813622779565652782702247533624567598777713549882921067468183726728803490970433245272822546122737470289948729671318366188803538574181528293875786220966486377790971997473369658553494098797442783087302106838431870733443914313189813251799418394471892310856596211078801594864419210505195887650389512284385145204608935689837062211811902857976849718388770872726628223336372119975230100718346206653135462754963603514517578179891997802792837389870824247545031904178025691270661910511182250739079603020340836161423644905429525063860292963065419755073563374712214413164443904981519858208109663646970306103355151613327316422419406037986272493427969552857806746670937622010080578030644536497530627593375501932892156201063247840879978254643714887557643364367299506306782707681111893117652775258108449553631516473526313600897008663484872833555223441982356382941526568192650005396704577347019976291967224017140733723676836273396890001807201305825672350689881338523024095022684968316429799991632081020635096312969989528222369692455396346349816319370337193629840276288690624969219636701667629379034173606385580802580436412002921510173142757725974748132453509049725608610838849057600324987442902262168486792273424289023684097812386499364872559563767206922941040111812879328297537588330374792852117010409025674893663742734861070325905773909358057938751166411006676772787121261616847582134019336982030975420018868382634234946210961298080289381168318948239435895266862987687074675097747658117441767809001767198619427833214211715936192836629114941025383219137164290309412742132072842199071249029832556666952490582351068218956202382738564058860232331208815420818211201238048908221478679842293583960594112689784869425118176383672202534199162605285667108410036556411105633050711788918971674280430372538767173044088576760665027717491917810498610749890013130452653197203251710200776549531270709752345693516927713293465934805254198832072773270920249846259091006825714182091580523108258079580482136936417836077615048138889118693516149291781098007386558810234935279355100070864362276612579794335261180090901674083486812277707784805836482365150743711534150617985495344241640895825862620109979134319793248738384490390612300686873835107659368173784654061133984374930765268147379221632198857158841252349845094554407713557459177963059638758813716668022814468280279852732251523537128121019244755601274178821096072392996627541551327319402524540248664809347584482139148955923480193142509275149794727798770234383668158063545999272843515787286475314200519448238288551665313965668695863535260207544117933545306620108019494289757561415941625357529095017030698367052787430174937085023180852020759172440264258242155369360178228299666536762590813307915433468512396116541836202550924999658971840543552946943635720406414984985260109130257492825562492326830665931686293928732748302772369742555115476617077663932471687836936454309107893228654438183206087804781554848820461386950422147748159649763159171485253090763018569775020080297596878991864253849895721965533282595011303293722945390914168298790537096043587848087780651051095206235120140863131706822736637288619247348654084039612830930420656138517726985870992628492538370046695256014018218562896289480592176727787681611365968396723723587063065238600787370624368298362796049578245451830498696301914584796760448370918952368776314761153017551177796798586480707761514235185240961657702766469308992146932814945279478502433295665089776554759030553278027268341575947575150095843963578849531046325101021597099326786425091031126842512946270908200700921084948451570592860237769918125028969776341033638712386964237108345771071257878637686404098643129724415103775723245424221514842987905499235420589988768268084788233056920892641783672802266355987641091530065661368979048340033117623839713514799004913338310163423486232073580209587449274684145240189313663127700341455603000460384545266271919875065605376056467307611636416011197327321850930042993334832136477228606456811393949723641873459180648756582983609218236665454345543072911070219752551905760336792256847905178661728492365470091576523918658983220034313039801688120978220065769193206622002574505251063187839346092412055329901247049585090836433961185301794293933101481764694455236070909200203854126181882077598081540615076807857973526059511346459410477297307539054609809089500887422718000815691778023685247648417796117546867483932994976646112017664760532258690281989915006145875455891765265124625113161823892970291631598158683051638695256679524675481104413866890702378933595955702107732585408493653760873282702777234166736345773214579828806429569905345588311663321107823021797148369137665301184678271730940244049052528610558787777600024299463314245882142834230382385504490331340786707469608747231549544822364139760410126320666404578926303234962379123394011580262773870445723924711790919981272487139149707280977743408865948456933511745736409678361088611298589732686491931121576967478551570305222017528680744557203629386359958670595691163986484684322212196189527630205089797425139104405240769538040207663537352051332108463748751814204495792493275994453196358814919557468315688698999699557949556344704365324552707976145008166923035711237924674390953145034923036058019337201952942379973686589131301591929581934365124034968676813141268405512907410189449615289346768506882640936464566881222112006592664313245018248400350231963406044970794357133361366787212172832561760297375042254669510447819102323703626960781646511225889554709940286942970200379424143198007068107945441795248769001593385851414388624254606921487752809535500867450924043922037497113199072757083233195814731337397001051937633070426369873777027494641326667044593699177645730643329722305279575175119744811474569250027246047179701220665866020022401454222337480536835583726690962586793658988090263753805482536388237211386458409857347256476475442565728810342558722090076034317770618492527718006102765516409030188942493342453085721145988090435053902251347872695626578445330058001530932619973466961903155760338881671419496685392922379159761160030456552995642937345841633250588029272458132534687058394990259544333900563825458124122888386243616419825841110009917377734830703214893037087428864986041877681069253037596673324413134223649922557825364772268078242548073912063089126952604155190604508480846143377120806821583368760795098513091395874257443904950005840658413791012190870468862321398137375151319444876603996649037322928923700953851111039505382901005169894271177286758273560051411758966907386857308505477160936253921859341763778640302730379109654705353997611934548785978570998041201309405890571790571153749578790782237966986101542970228329429477574152929523964268058551023359923598146010816900045302868989074672393808028404055000481692057097896298969993027284527617351995171035184171023638983312546438400665751221033782293919895502854747843105844014405021668532080604700581564169134493234753398975181774329090213970824854856566179866195887508660159376755899882671210021258776997400553291349561208915877601760660186877966730225773266044011412489209055586859648640117518351285744332035491522543315692164387273332864801205069424943076271965378506718489553306262449321926797754671561196708978836436853982491930201311869917253333076074379110878552151653704633886548011035159691363374808710190993496145145399286166470710585750199109085441766969215930778885617347963116284648094965043757881099268330229158802066321898930605084469858240120743041718965473907547244168390473885962496138603290302925399965171044080758728137446103575945961218909721582837342698639805689636415602896788074468161745221786780534609491982559103192413018040451597275023840045925607002948601053785211274350018650060608318629208599581178122343920976490085045644416727043468367152156285356483475731416625530009263889991581427733545362673865907153477582290325973055910067160605738547355359477254544350318342290984925724896682083141735937450857573355567174512226881725023554328695121098182631222829420840795486958133610304454491958160338676947032203368710972173860600045967449349881119586288114989037653347018478550597598179925736462547848180211088610469432487937145169639559439845380329395276488136801617698990060589183130605160984722139694003524278089895542433512546715143121833438778205885661348960299785334272476828432722150310325636153278419149536222519778261725332637938687062892118614274899625641089092241638986815795172889914312584631757262397409232283927988259802953121383603192511799224268805745037478687631352000855885398632499039188718986828427151672758762424641703807085971152906362541638383386775948883870858117498481143813500491267711523688827365863287052022677104330274406065699424580065844348311453984308864925256413719157847210052086474463659083910788735994757837062043974594101541469887710860368923348115226882539955358012717099016181708791447316373171468629826645047852693609953092222835765581683320808831779287558640539959463419914933433877359237336110672565818639548529804940807551721504577752956092052541327437637408597999533948280858745202501296817095128865916737965324855523821789073236331444205249764981798646392993130759924551648027003963834691845993874358909466142183573976788454708111384930586839321060432871116690827158139513631647140384294477510643232164081713286777359163690893429519981500498145301440056448929625920031667603346416820947247604072850309249814341091720102862712423715091600947443400858161645484255068398806050717533644747920809705843225873497868199789672663728516236674930015888570973550212746280132654956690787614357633156781360531220241128489188162019218880887214715039577875240925776240864718208662215067603798176711673246057954909941193346713522160867600628753348267840172004025530968780573809846232976271353695102465234375374739947152500509403681548245626355825680064340224328000681029008530240696306793356444524944170979394005614101393597258771643845528802033310686758771179038763011661457922137681704132522053948063252600974097761437181266157063495660301935084124063977775163771969875921475389641523070266117861928510089697889819024175326019124178070204427735027037996332600386564527264593112908454072836598491659538396649868132975865023824663480492131222126587767917333760890279837695039164550335996110980940133614883869782795878009548672858681029737875907949816244182945253069593988058140453345366225720301054940888215951145062571109931355962887604449906890441422181773972314359955227334324653508415458501314100230268626385851242987136548987363401186030369539914526225568150886399724394019108545388549140723868953543234913305456833673670657068084256260748354093491024461910180297743320937919967665409120791179466585648739186448035938177375746453268549888816261206445384647254719201860627924284733148507553601957885112035793329565198375885623712512200307002297683710218758343275366772912125378677182885378081975588934971461522119528007606549336970547934133890567676375263311947948577145256969054903989113413542228127148976808000475606502876296670523153097183692190579463146329742528364096691408005848174023465944436428961927124616042182022091459611152087612064994451466676156512224923609598691120376881994609009057665367654571666826230692612136647259996751442357129394499685326646183980693609576840797159707420181844545735191470803838280605560858045284963758481487511469678187070443181499039763051297811419617098135198056058257492564407264615306328115625624435838621618212748799835273701061319112887249144153208368615481096244968581327558465333974307090159644906074109477809045383861346872527887003326052448330355529126557274762003891365423245983298933183963121414166427395360840889644018130115043683987184321803795567690176160948375180357626445263822266340156957418895997609072758271792412104168640528206330295003435660073630478028505123906204248756910921549987856137919773834644007230803427570597577138585755091082107640523249032906011459849642523128727007851759242535065626655872948047529389323065956692608322092895618205902973576408198016159035127421913786430761067100663535688462376057337202113265662197595897549865827715942182514010621181209866891390033114366162988471278310866657910610617996827015751607379111968902931386415740225338187824217440289298278376515312314889140906446424851467784119552742635282755312742318457028191707465000159147260225531558992911204591013432311241897728280858601778656223593261050535451706453024209495461884438913909902583791828795212616781160842559887821952817425663447889043703800103839309181420142475141002716168953571481007021669263354101572423052900614460604391696690003195206587759618543280477037925185123926263821973048399613657475035670984898150085842143712301360927676958225711456433905067607711190692220341988238273983075951565874408610002799090698105101824335886177247234740141473106225872831360227147683364111403308916085915754328815250835857217387334624800219888727812496324661263119113247884081835041062279400036959683729433578352331361907573641510381410298460377998839760337603015362173350323457928174159281717482773991144229859286815035560119850560702670027728834827157544565636790765413111698788771703645733710480592166078860007650221269947692589015949711351500851598241871757035154006108316967283556121840056156090395391219202788355497548986317842415181517567427367462101785072675031900240132680206573976940043196362536306091913800185995902760823956508500347110493385739076004315792441074465086802449152609743076688595789280069050836308439141897077810038628747951921033861807703314951797326830291263344465975205938659975033418878184899977794892149617718014377273236915976803671115392316645029323768010524837149022687199859377052131564654192600322351341484925690425796669732734492327697676762779404500344585092572375490869407598618496791447010149296788299712285835611965419829105130478529916506677121019815333458108813734808743039276056024439622836319164490596661122902836830036845507428447437324334757406646876939530440451847552129408998459485851255339093274445488738021901120076929131213584688068522469493218877496864090005697828555516178992267670965713561671773016717922277408850826955660408431419558708810466356315015050762144913913536253984107392820246973489999603186909299136928602241856257536460412859953198994990944294956736082511770560748092838258215383639875962550683969063514031552047420908530667270617627871602453736707505750258940956104004897261844509933553789339866454748364515992013140506100687362726833466095787723905413527683394002692091578055684783240273958897145476194911116228135213880350946828582061304435325057029981538667242002279547649378034716177119771522859481727519269560602739995429403247426003789897388925871298671508413155662642390489566615350749590993513917132618313602327023898906389776574360929046963564845498926850135400339476554444798497524977774973176044624441554062363937505698619041652335469550493754506387607811589623454815490929732251389192504887203910074021748177019909496692283543029580164859561260393441328865649837526257627262035429193644196433578940926182029627810551435838518192943031819960430480870257489981193050979064273337570289447335771271664764484507169020815884169745951336092524265530141694000598536174558324135443714437470827089843782616598297131760032646655485481717841700920014068046746174350635354538781866959765380165495578458973874661284709158613886214102927209244547973192855198622511589095674283229378007458058775609586862254798823129994727002198612187432610678553967560944005919744646050367567970596882466122337747726845523485370052338774088064504202826004556355348805646244444185932221181409457017411209358345142664717906237261590249278698361957807277511574373307663974623182208412166213032695033152387941988022852922928129204346043923941157886511947170407197677371815407750859816445274942413594039113153327072504203893336570788180230564816981068322448609102660003436229646756967500545913834548302885969005740253387684906761610419223584018653057822139509393444188560816298316450857699077256622041942115167491616800547321127666446706406751948201006771093122808622350688189706145042928099313377480923004584704334805938942609578517688712297974525667435222930944974060094648093886576126644227614422651267184569297285264508031862857860363237919886087439770184670716724766540759301465150856108483216235577877934841698110694587949358180236195944734884034648056541616323722867128879805362354913441118146077213768761080037847014911640347045948298859643452470974079186514345464044447824740077005785940655033613475750972640178312149815346478077999654390907484827270848240922882782417203401832158668800644174051608245595314479275685780772537540833680908692771923992454570230934153187575350599222829659274998513099154883877931971701859267769824884216487895328844511514596233014422119244370638767613422083519654948675603507702031949179734811929723876026653497915386620537336152045464915073161505967065989506896285530151905949108818525049677761465540767003281050663722411502745807952486756280176879182800108334525630130002912139651581070158447674049458239470896699635342812149613581720245545212834541060464261588740470322553310304009193759245723791913536327761359981877578619316399507592015419961686874021859180394565689599151155182234317184331263471796313214722236892384311495515349147641425437728792571399365367281304075960935599480362725909840262352885451933078282971384025717740886058925130675445497097849553660463320354854420352182696747976304101914992154895197931906606482494933764477249957604329803230197155317616151428708945320941237968653212908872766465727231262858176723567314909549573310231204330145368424479914861696082303059813657019715972369539507333886993161928471039668055065709258121222622032128432163840846149980113236317328265794107945109792734536107886458385285322725894005953861411041464178041445761222211097645302873165322347345092004380617039744942875548643210997979884414753678364947189859559986575279323959632767211613030575890434559363357760584499038959629004975898783970346099804040939732789766958270856122029980857554498977165885654185842403313193826667233605075766953812436191624222154799339976849255815468744794306299642145344011798437408543385956320745248008361862297621838529658683569041865378522101112562681848915539537936599495938277272502087015127247624968386555170132069456491342719025018277158358047263548103494148197984638793371188222690424972314600743585253414795391721667710022242341738005958323561657575866112789992015946084469462710471425834185139333396681052850036715991287837018311005189739985526957695381386087131279830215366479642006688279302856747399975370545648740246027905845234242669873849142047538279614656279038356230414120443942730014842579133085187309604655608544480266236106402021549684541458611280257735417600281953684575532403357967466920073159987409154343199070429623549481570106678159836317984423191990410734398895797616552944155054573261155949697907957883121780486572941130693671315170305572594371169250953655924593962660966638222082075466135782038971721003004446957217630438882611059497303629150439002936271983886668766160279567815942413201465891925103958645450580762016290397857161963802197877596771987376693545677051680325101361837046139459526884304511040858399722865946434693727734905603287941889885488015145024949317235643174519126264720551938891800913879795097666893144620538903054948838228093995457370042719099723636666206575073331453034484488236745516126765929421206492903726089903825395669620025846198511487907096783722205029613765333855481022692946467301179348161654151103412212199394408880088943377904670681437716113556595256162324141680109595870749555046157323305327949455987010270927664192683614874038329613961807113235413073849056759406677258462493261677471129248087497956757472740534024032276183548997470804069341831613289478341461832899634824676638852100501755831122775461001167040523812428556902122822445568236569478281761327692063453902098176601412766202055989648109766092047601210986488449475403947232352053191310641757112455443616772094370584119817255161651566369432860595489965855608974265287237959845780229450887603008230619801998309014253226914829733590112569768861980857113273687400709394436375780101896364771656611256477746155849302596262177316508893377809069565702473737945622510604336869005107610248574140865327595832570567947607626134656343828788934799832059448642669161652182446088786021789274870593012830607659079806332715365028112951339343506324092568691965163799588820640156732442038668594664418221935292962852330017689356771518795303391799943051596461966684311735022371721325982861557333654679843044064309642834712217204614138948639311174772840012600506902468533887601072880457840893950858380083299813556865329538531621364964860200430086410469824428210101273763910239411472661521637601146608756673029841674292905043040329549425461390191999882021597855189922325075801448763561605782758486370935950676999470427101823520989020596297772403936626913766542096568668934455428684517547462481179293400994074650403145010559209617218740667157567817900214611630980784553714482288955358388987663626376609969639542416816800175512483706968139902649081481447133988556522272225652129664121531052294941037975970534271468408476947906598436523913424801995377350335965358822381529813372765357124535147612095665070444218657689790934237741981183705426101338649861810299667302902064473938041958036716851574651545749628447361167721413761650098068697450405618891023941808880429202618111443961161998706428570047397382289500333614029379772746084643326243907726587159180429672431637804417859578295365538456120984307149547405196302350404867849814924211060948642920802305081350507828873394984189502136932574700800735147254782781984748099975913292896830206432370552258263926307948522251288376110999112862961738260032402595332096011525817303737197766092870584083142475737399339785893000980520773146479197669788340934484197414232529869057156594489088267145263884328171570693019074070794670771690179018214354134340306373569362065076682447970889439641443115111427181572106174197631581832488381774775092077946937310810492253556329736109405467728908530731435827448211336150687270344488147313403467243044164449085635029055469487051117248936035782021570145009349850993241933140926682622077651478682031993056305324367277322486768664787157939223120323564270438819600701240896466190648491135849546134674137652107831127767744323613329619036250831326486388949615768400775066176976664001482294557027287254005962458314455137171606077946893215396608205805484864737273072872765352542473576467642349359526582669315804629336110439645856634312763636729411799205488677929946109382914866150233870146189984765964414312464302563150322068522214845147060782303944622454206089051818701309774598034194455840345607817790994980821569322787241199393732245474107619233128080794028189305488632234456852976617705923672007516175412753420602710219086688409340189286457742261185938115625969978299315084912865201514077079223828001260908563021670557450193267308268343578895403931135288213112765399264591514660350249875116652491247002447516954912721400320928514063053845232542054868891071143188853439635604879376470783330847817108243587729627957802886420589761110625976956809767445999630165516759863122507391103333340648200481312285736113791940295786021729879515534546260584212988287656224068876083477707749057345005871808849303172793764903796614200701368155788173622889775479549520828860414483841194110633959677954229824265406293519570135231789285667608857152461723462978625955120774716514757050926741858666136760376527018501047478573228910047316490052230551808925528074390100090556039530383011983730984777027897510036236059915665982333527565072872263385216896347618061406972459538683904983239773651965605436141782855278863279300599368431560807043936997038073969825038732220448819403522921651429989355691055363268889607340798038895278565602813197809860414683014621673500812919840442595480613082859745653149356516975515828046593520786518558338756152380156299649317876035616778436515949596055351182584033438884061290044737974366007818648080890735153430363922657845975452871965620468812785583364242593268928970173482836646821432304658277543071052894346901652238732587880013091197744165767588501457740137512525316562761829872657292437786155870810757701263724985742183080163348844580931099132755325558186726867740745171423337241717249757573354715365483371706115267580678427709142916420422963655668311500168865875518393974819421125727342944598926075837825026138983021364547483194815755107345375818039044276517431790612872304602376743685828580886213741215369356547445298699104744538934564565091373042555788631429980274422558028555835172218891308407542164318320309755636532554291936914138109297921287936464071157540340806527599548847374024888856298632007051059053950419751690435802357884793113686353045940291520255242902603454209839870414278432137995185222454435902600488868309368053866809616511159485833656116228545485595262196864368216561779303636930520177737195109362398176816847935281376903449482621435491046463573894842670535938295411035554093935785237019877438762958907848419186218928709532509783001986535022827026406998106268185984168741617986288480697051506762687450475455876784334097466106226399285385464511144400874782200665432215324538207594050828021438136165030493553788286544191095136791652937195987047694862983587611189534994240935548454227800163964263163203781428466367307298431959818214369289768256233693848031085242053552152934047671525047601855874503296366847932405986625940151286034618057970642163990135769334655411929758327660361173690073955632172224076303967665738779159967290888814072469736332375295537302919415586514711787475831780140821061443441451876616997945968695898174398012449048666728165296023516532013232453017872516417601376934355706008108879787723399351402815430039640314748325724142765020516310029531202362331660781158875766124896904672750962458017499348508121132234784520112966935415772486449087286258809337402794292901818348925913903081629136550720104705696542596479523642291130068974891943365124000223789505197491466541407582015179749270198272115280412767273431013225513214664924821298749268471367381068261011970759448110528930509034057119763695718290033008968694676591390529147403688838866311207432291924427592083339027270278602055210334793921378538639489685760585055439842353389192437509874275013423618478044382053508363590113570245300254744746610992702514861783623696658529031119933787947161695387225116283959518110477915908678451923374125537385256221909006842190297175592186248812951280992155383306150068332426963959606694292311097241158852561872642406115011761689572409131472754578923508568079630403329131607381869979189685410153138932510049993142455550140949836987799361264135055095721302391215598587541337216891273216439706936259440139144490201978520090719106209999949668519740299602600620222431815448033251292279907268974409186047141429171106893970932442061647407956102162623280584288942924738268326776999923692999933570160135099374801035328046736317061603194531092886915900260119384415682694194479168460478493488378228938508283417202882005387854528537612253223324244496365620731779466262401074960911992739309132463006108318604824357467567372202430648579430830722251997593857993097117190367156102225326133443247735831533220262254422632193937317340949970769169060242595050343711004083998946595773118858247826836226821066371352032098961504392301744015393148132841737699882323378968552785132234488269627862607446661498318338577394554967478939396706301124061965596428819847324364411294190463424058416065477723367584224248877184881167308758892826599981452269152649602601317040597822708454750485783020891544420659236055827933927798296820880561077522680888740500791305518450606846385021299690365530420286826268823999671279242991471847762857953153737277973049262804859626077350426257850864627496486525254380038990991681309805974236421720111897955542505735172800387776164733819307216341042863940032293996608568481764398496390195237694212132579939983515355577837253553362144087618391907543258081501895162887854815824339922300250701629808883094274291763272825112244785946018856390774380199703000653973617188568579131545383988949306205324033348884228678275636220604473516017872869484841324861551204842072765703774579886468481241527428063061803779201391336166979591213964700713892398117776927610885098028236131196164596656502889317926975355046630012070046221175231157081347973307329598826821261945502419486985831821234928352341411994399580460305941558124037077431709842175048733593082137775685391625277047471490399059171767199565840596311757400317510254820912631853075614989310894041360242981023353003743701609465160870152967148675447684088697032172179908407203914922100842194109384020904606008744567201874173054653175553197106646000161823873376867827630152538668263216084360008086229229155683445566482624584910250473146352290818927292628880618335453329710541983441081136230823683029361988369939225799059862625812451764910114291146882423329505728128660150108758158193963210741295845756438468874633033554389201425790924702657117088814170515827441366453952951014940467413395009156975001419561885152595287939162658961670273688084040422776049490687741272777726964336342805044135316265397043547375401427164087921393139472121340287365709520174725890108567646516622336720692151537820884038779402435085075527667873676319927736373296201644884316224550475944067747981297519001261563259699927520280779683120682353133095833210312785473876527561035539176052377327373790851261496438364666208704891266971505660411912019922972785344286214912284824652356475673011667496142780133200663625831488623677358525541690089228306547096150563709685360692640258947526200752675557867358412088591736803520403303036560117168339069583514250727675699296843456109426150023666991426142331696078062843152163580340590381817783327349332442362984003737812265808640805252260871425251909189787554876622194119058446888608458863220823401808511752666344155915835512639806316465405838438048515621399311144411489231217397685936917430422830328880636281656833280635296041631195754652355346481730396755131277304898820968020133263651793314573157032213254841614091783717494590039319386171775964171315975197497745968755308532920226086185390176292790887885941246635303474896283859432004759938116216325645508980753930713214909725202902621078798058014666159359310576689108716366680157140954645858158561402935670488827426737946643602696961568798532031882194724397991244568687124319681007870074005136734514568877550010876069871542733932828985853890254498703660416696292872122368018560157386775890545964112624887205900202838357850087592414191509313491563041962159596619148735354709455587512353871765473308667808660869115130651951606406187225679659764431051400203237596463071771419729309981338481420432791180605343950459902439620329888576124941461872261435770646747989998469022151813809501792111197848969785053275760958483464137693144426044898707358611683732785557949773918790180085843310051939801250579778953235902664002766817426696795883508719176107277867798960468565348824342545789774892833301118828560730184726530742100003772740330004282734484935431933182378412721014860673476187192070329190919102773984895547129009817938431927401329071286311208277159763997521917946120996205742641451421217712162685801617527169904292471657642210334007993872115558411400385087131869351304242329103694846733775001350273442444527000645198211238668873368348052026275495490489569450154064763127836598547909597600101460257240298445721043881895258243600973539099521052507286312867448097909185839100126955439206865972344034442560891147548592701139655190377513927811633983377290816959778722457870670276278469164504831242092917052442014001668026979703848982474797339802863240612075142050268775017957101587438462715238628827162135326861942334537345343690779300442778294769854871805044185755864989731349143969530899036692791186595597906789087432625049395861298652375817595876417464716086910161809677204575376616974642621749492377368922780652852507499167328704326284585226108135692464257016701057251411780247085425574238164336923727915213892994229974791011026316656692909714356936925574946100542754454894380371656160394372893929922878008141816571785552167708077628850103996082157102605480687543164833400099687595873321082631672961937596938634945657937322139038331947467918434008747925200830866038388031567661739505011768961604468067081559294585307543467951151553830913612727107440534456481926342904926411428724913969444442840745659671391011302968151703286215716413834418168579154823315761155928682158402874307564993423099941505168170028698318799923626649793211518482918178941691843763287936559619871623292922473810295203781207709868166045816290174994188212518923508634244096684216181109539988447663305045990847226511996129626173028139048588166361926914678718645685312855479252493029524068495289118989402135199636067340067542333831581318120495158637990283381018880160003442837480745403516796165284777891728220265464611265877805860261730215279413637444740431716251960001236539879904257064304683460693085100423056118944246682924274082301343048184630621627097949138304667695101420298250583746239893402536949157828219542294256791338834008693089539334147088044171766622624237935816664082965244301480448315487108049677151775085170899316079828698024714019564653440849176626821502129311175148929198921464545294262489588992961247752446333371590744869293386296655629929913463074512788591451172386850828031194770458073870850329197728891476253209611269596354266465192843027175361653251782652243784198634248822743244676381032797949849286945329005528635839752114427093072337327657601546383564782941365888527870695481267489861643606240825941427486373008040197562467520318985104962002961281460979605334834149574456677310582981054863123724531436725821808509179970564533917410682867412515729961031409262834072216900650919806378659021188755239334688156542481915581148667196299374159420506969657663200526398087504994534042446761369020512501588643957304994643488867827050859433726674416273938973779751156515058851147792740609988420089591353337726946168464903477743155591261671825464041364462051976074431770060146865848729736645300650742085214474345046042916758528942570810207729329578509896087768155606699367305651466671656345266072155576490802142435489882957992395398055787073078929660357599190266383745297223891860302339874907033152287101316521675366408061224439153562553111933775857197300205062311230748178528224904468316514762489282304618551815110383375375218989571711568962946756651707416233984468863182272590437511262545909727450703716644354478869637412714620921256928851565274896730591697403894520620132703796697068929538775908216996957089910607555013780052851937967442547932973116057498906162474777216584730483221073215187625949198949573191047843433425831377262898130246420802465776836815579426436500712000261875310884469622654251492177073872083755081966044357655478344438003224810326082048140569213109088900902279232368992570159842296071340336079761475790356614242933516478293749176912194785306008575994804863240333556753105694660384113599669471016171197371902387378282917149218057697626447940585635168463995471645617959989611770307571267355247353292069125546433094209324979300910212325213650704299225362232798215827806980580842817394800408622064294843038888405380043502501366511741488487222561502468615453394652271005407562553184913644382649207540253160474416886672805148762476865822878327381268984722668631809922655736692134171676350666835075445599747728568584334504240298580001473762186077660055704356712971865714711592276854895496050440600720295560957138172591559931596380425417869980235302207696765198365789867234670693953679319812320325577238508553375923429953779532771531919550198268079449124620584217586968190325686717394168810534459403493256646353594062020005069959472976514281146700857674608434389354554941859110332150174973244981054601354532800662462897282440813464138246373704340407746553101584961301783587583199666574279786471447732858923051520046795069844470340346508305522402341820192790833259330548521372087140542256001904232447185471998740190517168679416548883628210616794903498667660548268474694005122039660969784017251856556716238009016036861822927430111809470968395209193541961210042877779108963492216342368800130516409886360869979628737377140878727250317241296290440342961486483491319410377982693317459230611103201466630158696097887291019613666583493204334088362933665905479753306004900984492065000661676664221187741331692073611298257419031198420869749454504035439806668062912807850930936994393732290178307829312211038638788819453149887340686923388406212867227449986743484817568874281267013125317658238687582948793044770414104385497895006567393500648689888312662338699921573834062567522105280722070346131874589566310900901005410870929085920462293877353481685477007635399033697885914508468089508982718522919786473098618453012026542105377833899307291907166486254725236895639090784234566115399233322562607645077041972475839384948177433250561654105767368908411425317658914606458989656012612752929251807025749535793083703898339652946790781554552131265920329600234237657128370800453659770592891641059708493242993672572370599362935216520092068185626530905613333176118310564230838609002690573158314101590144138808321108842270521268095581725214321104625429146239679096854691100991656206499737143434725433040774128678860792064808829092367953809237415943519854738982565411731813127220024629221435424454755442782064611480205208933999974955888824267061985600251407913012573005146255722636152459405627143584536839163772074297022145977289734626698101774279172970784938067283638374450212805387453386931850777210083918408641950354135739691361120886680238464388318000871676519127807104630180786777322702374628067104103672809044251587986624496571917900722497030632093280487807141436422665393647880111575107707073422917991537423023493179468314971504152434023939825573664099454607344904374089111225615170410969029556260375745490644340737510454796489573125424306066982425232866766751388794519103785153020829774264773514807823059859608550353875581018277526129694010477622581825669392982518384158099478339385241167441433925251042507032555569981277295845101369725738983875992233060449315045732910977099843153036146728474371536809305993618813789248572218817743602947005429380162371384668249139971395970531919260007123433099658425212243208827395418280899357501837059909090066254861677303119520238662751742149301146282981846365841723265575762223625515942547489448128072185819226454166341682743311630975022810376868288418884788400917538846014165719481244208920603988650693063237411777778830242077501218884968140917450878851334797046922844462937078337348196854393251558119661464734310801973613315864848876683577748822352807536494944766467052205383174879311012869504203372804662053681663290091536621475608510827760760832120309395279577839100875427060141473072538075152587628389908206637883113031715573274489972361398602124843121976884273485811252524333899792675428275602157346362718116308307259129584237196768455934068620486433829601372901786429681244467520355992907643698111262652697691192550376260635434920322445645822540244278860921523448786169662258082699070228583050058932625223823565194349376191150885136389713899260653143916711453373232949425320741260566625241944115968785877704980061885089430828928814743515783702605665167700510183949054294637993060671556268088321019524854120204720913808106167392013984862132869278638251880014479878724043254305526058745697794103913843966766998437007936058960242699504596623770136457259943702078235815250153036233906682370916285634801703894812311821950274751229542428562066823861094419469419907375474210732107518936366531996322066084133484551943672088073622912014215653965219374254324407306130779308773762590950121852111736042605142348770979949987610099145932367655552317945926676026026940826178906733627918050360877064148255090230404547095158018074843671947442545721008006009752430686485442529627289889234579676987955736187155337048064565575110764855016800051807827398596798210012752796637069016872726813956636650412102057385828320483097487820185741289399905285269334522147802907817460718830002707552160537802982989328639301173354957031018280865390328027289388194630684810008739243809988874374825500705276597076348015456218683221080564335324446393793430379395282484487348713057026435957136732307745730237265414105897450067894890335696081364379940662454507987364324714729964010343219478036684306218640092159971355277844110341795954281357441271368912306853450137075255755222654038362353220122821419411719352554545081944326800334208689479429819667330249079829905289194169833430296843020120612685831815962315239056979649952732008729367515331645292459190910287688032649656406412901490002620449276175805021831686025881184716434168410498520839943321851438558915315133594963909503268409476739485981927973741535103411859288201933219329962293970568053291183269183765048348550832232465835067361922422947077155440601905824865605843793623802400080690322683844826964867643317314096842628985957356995558213437157877481915734629691572064577376587585236825293458012285324314591242727846419338141266243387247703881653258420542115904296512825322784555973606849834076120816875522522603415241681291632403908707259388561017253744754101627906611522099501506962304640897538627566982183398968124809878902002366950415328685934919266785493019038661217565856068810956311863364262160915257643360363400928871315859700868874727327477451167594151272845615815867646397093514068933330853421968461660426681840775937607584303065722881272302434619897347540316621040309605559424589882919411357188341754820530857565628045307312053558675465324590967636811964011827980836502976897651852433729812325379303844621049733120759731268108184243214130735627724602220693676021952105993490709682929574404922373331006409791346001080243852682608795682622466242096541419959985756897750726173675204325222050528132049400678728104405010695210002912925390061012973976207592019345739902327589942972094398515879071759208509050697101233508802369571350482810062508811470795824787935661932609733348321701075650392594923274315505075272974639925683842866909755222293063550069943754429754131811715278501694410583408774536126693766425550558367254080814178354416532959620756417498320618742135001637313383389659478476928476822603993152334358456144951504239499511767504890180461927901535325939686514031116869927702548137703522229020166465330758752738835686562028581474377670079193131814904973475419195648548017394107010368494982440928519456374557907706281928353515010375074497564975653769700889937430246410056322470819007984246623924978016806219343265648135269688107647351597227444168283588385573822760400904117711999567170605687429501341398563738374363234909175188121170800457265367068820403258422484188812840667312139523490878985246256634166484452006607194763235653191142754547269976394026460666376891610213821367679573274086620827792639341775663355777331753720259978266980017114526863509473437227827924586973857142373991617003482267629369960203099361859050840202308573836542768456401297967568838665897911969125234565263442363148065756400639614990916562667367645123728182717671723313266725212297316198497108843436613410606406558192252288288419233507119321864615032833681283812540158023617728757962683125672399945691224715302723052456081706493069485558542717811191688692868595773262936100520703181068310259288534314628884469630371700809611260145289325690248486057958344995551011548719837186583029992498307534597370399070982711837803635154442218415351630530184655749397413024342694639920003275288856723710488804460816272971538963018936628823139729795638790980269510462582527195115414320461125717156352971449069716552528870087003951264995382180329476924758854746122643047998455100767254440064128728108492129510519130972611244540891758178726614397410223609181099674485599195370369003210917089015760465063991683180765126227484105727412335047028678050950007877620542717937664598837746739846040321007758774385597938266614626886984144074254464212565676499571765889077307316720236302268352808317573232832021774561549579209081532086208287845574805472066450456633247517589238021825418051516422681873534166277234431347164079825794618449289573233116554220896560849038913361111898540227193267530138340887762601695356192166710329562079999112957082096211358358298249008363118015849009052678774892026939545548168706071577958943398018132312981756945614392582101906674249487161106461923819982390802638077799824115527054962879430623792149069632813977456238355969187428725698553294376699341010757504050003057511857004863918024171193466948588146574277597117072231333668461154889371947863942022231627718000641298017979068613232595744764275323203946732857759958196341323401014752177199231274142722853590584236282934201810803938565352180255804610789524535574722048414856124629798210418066082691232310072551659141973289511129581365359779072099517052029899698494822193522034681294067314501116385768297316722537414045359626565916872493249158587517747721858661658103195141071173396006037510431258728914365337138021111590318548824065364927757082460068482123900843316374263618797564867942146029407783554214162897570634198434055333975825845476644596023216323323192698334179339180412846650827206518862947334228000399029807022011579030692151038269804492934311143341625014068777451936946484861629207375950020815480305064767880718914109355517403042716964284457644293990263908718385104746590204774100802877238167753719518024024894608890745160368462352904451826295623898120284631723676376610798520645032052589700218939490615057733663236957561104859814950886423208946174410402860650841671029703534784931276580495864795956606780455576549007286752596715847856078378069196459977855220372393186479156802064100862521446378521517030424628680049621700250651100834688794618805619213668558645459940525459822705961313920183839037536220723270549918671383295754906865724785116570822727303616277632794283951688541327005122274666252486282843152050775013186538442967591096475421103037896198102672211328621044531026991039057186545181742058155017983911554639366867637882191203487560256230862162834808668088478778251358648621157274462137547423712277611692126949582801032294319290648330110723445334587701682760943391079136266037206404678993257156328851897715296761023571651415787093339705273904598947701590161387815422357367193481738801213974491482541671975213049718026758709786660673870980467307629499180396126544668177856206306137985133110567548682645666054704569752415460003911684942586387631187495773334699402020465709934206654912673597415802869954194783945717531342176636504605372367816718972549696576915682929009395666173623092858283722888235888772533543684085157190237017366744046917727423246362536795769306187735961465384930508717680311858536246052943145593284737675412452989576774726267968856631114013557307850819662770137058687612078529872054370675052718838466395314751557352734163690095625599600209415443489310617811447329266510415700898579332821286800502553653279711399680974226224693902931964655848489451810096019152222663748558185431074899266299924541629136656648861090305437825764854219973509236224849138432243107042931624878977066793704632250029380776800584392042215657766535010337603285330826672604485266741061427641583758553972319008546721210042871473826105881217452245464351332749605731466475389935099175868811301934839165330100814924478842525820801860026558322317385668420946600806205953813601766581682874173350190763754160204911178630771992588501903429866219867841716705097103053860844239595047563494030383415673262292501966188525082327576186984547548911234747355059866123037777380105925114742796735834366065188132458103155761672804366685850921370877015393108757880813648026126319031723548750804910111094319052101452931090904818878141960319488457011458258473673014575556376171472563651014291617858795003519777275089846248371969965424125307778455983969716941125469893884310387018133154418924963504849059513642239411835807037529380823227907520043130697827176699937693226498331578160320928469017091669136749969897375770099424146475361490135199776199135999545094611896348263302144166496127706791291327356303756508582442553547830597033956418708476193211311914031499018530193371857739264590901876337462184441168605224248174220801137087231079763680210106604099158994678669459559068145849471115598936079524901808710052838210104764247216095814577227535226005507198784556660174402528380597392444929656176264097018059312381121876606881412209403123509828122426755192095807442147017331775557435684500318662826924658104268974335423002525163965349273044453292478429423995213865439577687229172021867210204088802567113460655609490603303516200785870565862157320506635710489217213053565616629244103851328423124475459823238910831592721101966792600166670753319285771734625161626587573607237312127943528761026236604239483373925724409619033738360920837085675208533402275273146755932038688058303840229155122499703755513075795383574138422506070307598072392649128331551211049319137757730390301755266760690751271994927534206927680648519102556709960737098992419895450954016127634919064300154450660432097293866865005824486265919913070941704948550845778659123165116456579051729188741555729045112899556504672295862773212628198795979106640591509701655763526107539943123838256152007345527809599505504007881519190513713051391778582414845165883926071163193694287654750250591824102359669224229427421273766963330574329223188049566733196439668604628035494788114400145588890943904755949051616345996033647523291113615309503474899567990857034355435830282136992463343549578599504081283438378986781113090941789533734553248093359933648024095155469494956602510092465212345890758753913444146226407129395427987129995868995938739906582462191067848820758611913471456019858603008699553366371892351115258654001464092892468528280036621734686930028411319913837100409916065928684915138710834826490092079134909419095157273179393063249018026984744655456143319695969304354094099507852601225568076789704081306283155764511216890882541337909451516666885245349621692822943075553651161485742003231686760864288888275775218741310951666975500013088847782251349685138800263095073003519269037734279530539285806391356129238972900099797576136939785801275951163830369618157359839529051443943939926518327188037318936489269919797433402446588947806727824260558048360484111801798715366902273243695748599774081174751271028244254806452560382953385997889886305179181071536834157556560073977891615335303043833886320156404176956697935646188952083968299948242782902718864259708697549547925673745930708215741242830621106961108084130942525662786333522105211163033249721761840947318707374294731942263086880051358573380788659462610198934045564312215281846619645656354665992731471416618348558520969052922225279253519914859212009867324028393472142940736758668583832760962636840106923940847874219700385334284221664083905973349549456627963945240168043907954939984988145469516723850571448002145769759182019522760360908639256682647649041537468815778746830856152476406443097517841440522161062530683224232951316168222450469729184795987524633391295683129441858518512372846423496328062364557650927258093121076427790805820221651179620481771257189536078810612324022239234515717600870402943634700273848339038003842347492464948419645742845970081143662849507167872029042131088143372105639150381310907629928763410330640045686364360864182550693462282849581174723659769617038205887630064904781479173349306677152957878056781955346827150397535609161905464678626472645869553928094566064125123285470858948578521638021092217531367369389414414001866832606685349282046104157795870909019674197317996163258928555016580706172719381090571611272697453490394814988116380034893710378598676925712905143008352722323347716555516983528017230346926318030438827237226457213232116347322022223495140725751370471808553612107969997091722271603539321322620854225560897916888311909371882537455138231450409851662624125897539456890003637574339755278209209787392636222701787228614490039825909995061158385199044997397490343131793267746577066776722182728116363510895377359561550148467356051652579306376967839086612282701485043091931424887498791705786204467711211039522884226908365954547710521873978927169032014322403816546330875470767516871551024215841653473810254047354447757206324816710488321512807876889351383785263398797018399755985331757936806037367647826815632909514471950873179575591478443522776146326285226222942424367352335200490690288691603471685601219234071263766318190910820236428622770956785296430586640201101211749756841980137008378983675774500428744693332968542308628101120120126722011697093041189899657788396298504613135445858025826413273787799429716446002535151039983890359194045478704693601436869849821466464768736981205817188802180489837633814121164875354401123397724767735945616229623389060382547673704849715802011078924416270486511856998218665741968084455573804709765925712434301136528088795060844471924381509722163288313137079930730056865817776321598304822163016489549620471568824824338762342493396001280680327729695915017831433905135554648844279521607134573082924209145141427679146784883331632066393348565864993262162027189383786152607256743887141595365003481564129877883473450598393432622125383236558423398628456699218228338427068722695181058173842324699315899183123855449863036087417565434768935333758847502190342179624420656284287530490027225841311459371899761006034719999057791331019314967858602479906189757910104309596969599863521894483195079455278429653398461778279087873760362418077332584729731970791168263427987355213092639511902852395769414706858880692583045478203776882155776287873833409833279999436323520551292192741741232402283753368614337973268006364963825030752953326181938420686356419353703693884110421842167952359310721109694609534382307665672166134886932636851675138518239251460705334342142952726695929606731718822738781713945675336094470286103883636718178112946642351414335382311318365190648839738823675006705108189480069896248472250593959563319741098876561451420955478141246535800068166988666661608337561655767159164106087204776700426968801636992975813413906321527896394233893250034742462716641792350561268248507102504888372904914050411659408291502311069090557845069627136617298281152432376215573387381058038264669213053569879700635130035921857856111013566290920850187245983368474327147064893258345123647318646399515765982150631923757141866988700052212188345408471129692242197532843058245194808926650815164681996491539984108419281112842270908750554086313321651968727115273340273088859156513979660510094106246212629775049062516076042851737080499523564891299787890809287893025491003792769331186036652617347709280320333878050027739769462026432763132556581200150140677469861761090987793377201436105787730659865499786997036140398410014701068698670880754487675131019548718174988792683141357904473252254240372324020481679403535751387914678921806794892523431726364344525124656136991713243265543627996394548638768449827929435546527448640580418524916980825455784649123927892880094914059412267056770781740339814099684408609981495349205506016435410606567213652729632455978587956954405928481214217010449579993037799940779017048977658949720668029711669041148859274620858841490878135210492478671380362687840331759309036968229255947410046545393354565093555774720350136609127582570803971613596065974495644794538091784580954414983079086520206945103039059504884168490337459864148163584844084155905821891633580967871285357995339028970625030572396466249699031479445263493175040221728521185760586161366932050861313356992543955960939135548126738891533043921266688453696340984298682057631149898245128604464407678518872813938606408055181696245230489009994851084999453991006208689573115687935852234177765630824266004116904274788325091531182970315603622318726071138306894658790291252208521441728414529303778075772145312471690043140153290618480022362049391233263904244226829109823416420766823395289339582008605011864707282094442338999167319204048306594662175010850037512153619233999805300957127817364043828870417307744674286129188433063161151127499222935286011957846761766693698929176808128523931395084846834993066385233416544835936667281771405783444925277523221761683322321702366533132088764136383494688894201426548447532498603763311844462717352859669421040647708081506372574822492404741013984803848791200306677979259537584962979483721146160033683932559849122953673863233717347303730104514735246691208394276023428329332191398116920161426536844296148933362158413699125985710319110680785874117969681591216427490236299335270546572350734223658461533656488222271738081591623440458892807823989417953434505160984014708555370777318814250011895013990789378818506302786846556053946479734060403090613505140008411402560520737537918954187531949588486895212784600133368009578088627610913119122896193826070199668111835243305913428274838842288382370925573501082615152861257774506909091373326624097324920783775171755711266994896038308834167792650197804542714572465534113114145186820100433555126041146284902757236246100467426076407773134098196906409558676802371564833736860122863191648368075653458767167371882705278044597164969355166680681345938300154557159758349922002335421649147495743317635769848993936131095450295704733510401243384554285870234918642535120194557026403536293332630645745239075422043591269525261945263677001019397810184419162622689661044568886011629291368428255889874111904719690068299208654826428586745643954459769868550026839471360206097055960093349778979806169284879422483551139826400476759907584210137544004634929639796571883722641613970539364995861296609853582056540718610842817177815824104380251793288227725436370534721531833020660222472532322330020384868487032028372528462487402803808079467093310690719258515692429722395060781011211165096189874505136905294887214717980126596050540503799242026851136861544132672675327577421518395239456516297638649680592219032438665129997194706514958205781864287831037458839750119748929109496092398286357203193240899091671057079918091047695493884794940556236859013435839385122858274431687634865818805805432293983274732733674994757092899503149941664105375990057566041926280753604898662686181478627189023171272984103274700135527377453709902561147940467816868899789612780894669483566533229865635721051724220154964231619578167532944670861497955048830698819811912624208639909090611439985457062696179971879705997678318636577714902941452965184093671102574602922569485866035739859733060893005856728538053485736835878909563531679294310491812413692298418694057471823281276561694289258162783649721813158584600887657908810213595983156531706073396242010237875556476724015742958683648747221503775036927190149419350625377601170123042603249277053000489358263179896152169847443343934928621654837605019104937195383937247792582465508621916681228627658527868969162316689281439643239462977257773016061598824710893733830443469829215243195623680057391843269945237884052258166016129869532094516022102589968502722006742662380731794305526362547184724565251165472843426551303082632104534739677748693513474830562569304412980125031613123808579471118539909794952101953425911439404596471731255766437441434106709997832904705713154922596545296170948766025079834759964206563829546611060927206176129761180953045584541818865670450644507766953163183603484083042703219504348265565734261179257116803315025120345639245662294925525276174126843302211990436859258084415138493857241352613415475721751058554219561272422712270357491228977094661631177493649547099730914440531459585340004680379370127085211790217295824434953087301007290909273871391281722989089800972045759038356394003072019141002301312359800703946003572056986297992350329390063565851896830825378598811107341030532901406921127266387737148450962594802762328928732222272872210894567799586995033926775039858428092422983451724420245864653393750437706216455194970809093323682653154169052491840461548135163807473412532243385774716780141413057434830125433060054485586656076679742971077248114823391553767135992871068096076207665173210227685216921631941993259242248716786989761751851788328585144379450457131926558312838522774433703415112380068351059846852592884371818865113797413210190252081306195601052108348910332979132824741669864029028460239800523507646741831634094272752164226980685150418502181457811765963542179622808285257159375649450456987773044206519074546217780240664013430595057428360600120332650551449264602736641666869495502635299255123675954320062969389616118195821702611728214580265360151582364389640903764513058597863608797679610576640020616369870705833437462280654966754935245601915943922473774230435680000696298747580470252269653177480085275219094925205125644181234032120477940541102161268301702441564135763955993451806994604454156313891787676964174410791773214396412217012678874848897974164807830685309968398868254578639104334858350856654692298226804909973179522396933787489925160175290037678053694484802642759669384886354667811556894735433506433056846602275041200176101507941456887081158226332975369827042726991561947826131621913172407763978227784871107971483970381104572332171196564239503099419181107856493307521251082130319452675353623250770108620674063510591446831796222245506826507499384327229262501043066542742624290736431841818010898212907696642360204877103456057112161978334794906887665446349402408659506745642219447223697742763723662242135676935729543331566210178767620548223655351827294603471538097826477946840114626440533570953164209274389712408321403476337976175582191310683362998117408233338218273418631000923714506554602028788169861723226867031910337450690368903378967988048688594117121379321184096493071805420780535032574083031952962408623990131466163853311557500038743864446377153675900259341548993079629362784827602560687084072186908117288441863471775099183661757980787444851748623669477439382981311194595203354004334780049199025138611095032398263745752475644946813634689719399235039926454355785480377174412272356063986744049401403802511256174659474269408927771440027871601178175800809365881032387795650978672036731340665375898095639365645086754270818846179220017623990267668813759714894482348785021250174370006845587034162886467259175768727029643418755833114432939600038841076077456726947788891736702508627603686261140254465974518326539869160490139701348387546658755175650027299194176022532486147512380075248706530425093612094172078457372358510564846980754025383261488858088529503678196092881764877587126122913133569168177620290142081914745169542349214860981758493593068551469171709040409273027871312388745564547293757382936013054470711547282810492956374940443925907041011078239861956995160359002635364136093872195509829145981020965873405586262993182397769579948018253731211739801945961011242855855299923836203876969222312774302805665940783537804315600707686117437153419768056702513722353384880311334267025490449389096368559638865157222738294726816731649774526238647424329475554677244263683552048832408013700584322044039051616355566646088770650409590966544155658367193688786086376597851499298205848793873695846596991637227449694613507650338089182847889478167165031253271982972418987923934170493258589630702733525472459804687721866508361853525201800085025689516861057351211865077409111969910021884752407639470617858037470473595255905499962070260771399330053873634311591087929153423786255739556269575021871017156804834485069655145343164117680357522240563120654206653988348145763657971056821138681863504169455048278630820489038720114437946949158190029152069948979195892752471663022387567372986314738236662211910628179493674262817572274921756688912543179171319860857320719596386662708453305203941906013896167442345625876785681554761648136557610577055117248191620389828493409928890093880136398561785216931688981727380367917527897499642379148080162879246447452555123135797534885522936902153336256561735718689975627618683750409409308044385495510060060118887486519965723435047661683597487988067031725742519772515962619563276446705623305754527939487569640144965976149914489095218940446820384769997591278218524298637640227498622425220525750015989856966900473538368978217574959488966330418842552300584009327270680952162448145638230423872431771626642198689603866855672492160312729740805098318476874664035010924947726689972650434662394542950113760577898502316848653326429994797501131184554051618499916733258011365028809526330458445289948576261380917730564026516895853801906023807160837552458652525382420739618796703226185026372569196565921130204866051533463543735158253265491138743023702199030893535475627826552372881256331228417399088582987141385570837405261704376327922749544207064132474860451556071570306158194864894751823840617533054219151719809062862165076709199160687773830206659334963464066305579399868208335402568336685550586309571856300485140212670216419280905452595988942050411975979705741653914192196117241584455349683277947058848829799310965896704406608412253569086258936340339571972064586121282533799457173752204218562233331150255925169193877611767101551828868150107936085331784609565513272647300726944143584219709667977835226922684727863302381625003661218011306450323967561407719523561543684925699841620348352813487036479842306117526830075082391472803130604004932567447100364507954690065904475806680475760822360715145084212603104881940262068194571134762931819006811940497020023181527412596896782450979350714640404733385646150299616756092560692606077053057345967610718275547473774765456636883051966462314910411392321326681831239238386200697621166496508529718504213157554241318679402471876049358801844209559926228065317207911848268745399525609713734567183034008635422126524857091872812880829342120037053768744762483929293704540570060369018017408334349008561562615679358527324934744441193441494625898217943160342239048751833575885530658064610220659383112050191957601422666456861396123543372541180582312848234264403074227900185960273426510097785802272689915210410079266525595249127282923727876743773672250150926591950887765577304374721287969094865250068250697214890526708893588922407206672694021263496030875415709851423961903954541207983365251901122163181313669237976542512664199975296311779981218680931933504307390261479934440561290073411061009039559223610886573320413255391375880451703159628239085937529154175421948548871484555144660762253319912142311340971584178274555287939991904311520728247776499644443162133137978289490496560010422516352258990091225330038727980824560950310846427697474724987142905108429003496271866973642972384906688558636482673498166351204569331922236474286584530431070466133172435960626426411828249181632426173408205111631346772363791752121399542657570066593692297084342789049288007701061383801724590739070489764934711304457517953214148044746692929139505945187647140091857886901772781369503698406987669902968488739235074546004741559916216251402041322464903738222718271534719732520895255687922245252206167925933172216183371051938706380575248515907160048743711178577976294254702076464987030081815544147553446881428516495321445592376871703496127825342276120227681646543625792417171167353988573018023730136313911860480765816686751475400230538010136106656296332045499286848716860809484383807260568070547751249976006493401088645314113445814048559052470554892581679094568300885367180499948719926324018027632985472215148241763663411848882444508927181215493460590605464452721148414800274948422733151997930543361803229938260222855428708294422357734775571282674368072599403488962050957541164343040457389937781039410187655077738623977287482404998251075846072703166453088384392072641845868421026869587841516848504131043675842940818018780723128352456554349707941221048961557423901133624118268259165924870130808553022572475217642388534017967993503328079315461199532313596582870578568283612914822738329517021269601953903614772322519930107210328202222002275335877157572672155851658478262511263495666269310846481275091329710724217991381056176880145567636236017072182990449863204634491091754981086250187065342184018393881695446586960914164669649909965403231832331323991435714504975119235555794007894323059755455881637559199846335050265651390417807236485464307838415657858923129431705816883786034328403675887113799135005900713590029539470198875202085313669747741802707011936147610044899797307101190235630220398038267374799721927968653206152828397544909308649998322343890690751397412634033057123495511787671651432450164802504650592737435898875994675802518123936573314676519948535537715261327399208566109366118329274445572123029449028894199399009667933761092984137826361597190610060758915373538035457509627264756403657519543108194761188079927365406796440699874557317034402210844871740550526280614476267154404752342667771199070155119579005367846270313433244740878869483607117420102991028706974842009613013154248217820589914580477754059403814357143738794475054879827639880607195743019936645697455356441932462318789621648320745161094150656411243986479539604966298601432748920864591980769803643138987058827848627836555969438549832605864998963565375986717918583521028051945222274251867017445228487590984750451336449167958206766983558917522040845374800303776677159814602349940059659993304581429186639597633282925684427441372620348561316151284073085315491389020845263321083153254328380202357359753646372019156131544698064934172320411256798479962380201329866194717914058772565975522964360009831244006915175404057294808594735671995461956215008123591488169466548903776809739942329582462570151903479393024583981368712520246132719574828017091891851020757743865168997033341731730377150357308315791980627896844191309543259478066848960401167044061701231697435893477941211303427372831257597003675847628291719547884931345641601919341012055589755344294145835107395990900587478573075983445104638696223882109846528348083676695482654522552213706167660209395248733871061622277031159113170767349341960303211498480290106308103609169788797890412993246061592829405182659424880636524155194065124055311126101524525426550230096968152431674554708831078553766472736031239432805023168803520908248900464971432831370865572928499408289547871784713071891465033031210115353159635088114626099844319901447916799938621590257839900071824015716886096957072246503798006982751831373612943089403519151296764741792971170618329824618823510195588482754904762647403548516247018788408495824874154028906950973867092592557477074483892830143228853681099153121297301437029792527852109355035261385884922872897500881318706896948759489543999311956696232794836967159234499213616645381169323364831380692375726329130301732916565737966871907385562941603022300287548132168602137680805576516245354043861086774049277794918247673894245321331598016261002560679448421620757448399510204869782067761624705906469185248678197845264114100400169290227255359122720454940980323037957515332641689071412395758543906232780236086403308979253549113012346840889837242253787316656541168326368569497973627038851058408221608265870904912317304724739612082977220530900529475041797574096958454209665815221171842451011872436485348557096237493201476869679514770510201678170550696754758014289204657006016623756101421452532057985523581302732040146732843535298335566627215644674422476031574303411131051459053787617047639022766023291601926315136420260322253714989579831036890318943532784195143624952337923167869012775753681408595072621839133814182728600945478163183007137379262441054346169943014742084058112684602507628339804224249318377265681258333763285850299692406521983179762212237707972589389013575068805097692931160116041944991644680582165965358763668241354837024976332498797917450051656140641034756776184283645742811673928776111799455345375785998736181387624863155110157253182554484938479684465306821161892460600818583847299109517324478637792328737022090945362832001180554149502505423248572886672980965352369261512030527309065830214339104913450952245867301868212122566791107786865860503840256396190570507939609791886416886465539281076523449776758268329525124332205646520583230543433789106538251310943962101876472960051252127026354846138707070231072062478001060099072384432703819889902222545517242766392910744563957387558739852353283557849116626920195420214557232861363985091145105781962033216809014175099702398594107623348844783705067063454080313246725122803334780316508577166492736644103727710155880684756496879228823848162525972882332077308585903565575715378958697543095539282908822321288132818655934470439839948304459822675183698237384433285396500073526239256289536829232949954696186212637689979839535204499208429778970403175323780975709533978538559704074598948698650247871689084777202156717721783505097891469701946739890578587144413027957468280734380793361235643444438271679321760944975542823265931398749035328239563138515729064687391168740144592343330470462130806010873337916066153741168244594867521946077604673385965200260838835433172613698503763355136160226937077091441872082500260209807358268772859554262251656118790131721098074320220105471171955038397977239325570585501000604577653346056179758541475577924099489998076376431248922447507638601438226426109340435188597034440618537100746432085535398362531147502898306494903570725750137931562564033658072271827503432999742769687108600986711209167852688741001075505106636610961930925266193268566887991630735690807023022797438130757636919846356677093366543223152627644643904837999482435334617407870644987673974641826345896147327893542091916313193947767347893670507733739761221646718564664045675524686631368576664222854213046077921622067202482054464041740661743050847335596668873566197617416364429634415624549816172122243300269916131923173574348102081008911780174319531660421091186995276396116356292202978156226673075377945729531645013083048881406155179998679129294124701509051583661537480653425228499451582147214124575038966198418759830252336526936556775585378500208406759416126043091835584053269297761442507290635054120851419179133944279670148779605733296509158362173539109242341035050821067715936951666994182911307245138490380915800591039703259688363736355839947114877211336416209644475499441471726705694526779266920606213368577692036143663073990153870289101188232894208404865413726030180140441320963108617172605507958912155079637102555286825450696125947884896695700381108336386418966091689119256203041140555370868949681623416969259875444811778660282863492504142527701995454716420792067604526907577335238525318101166957234702077420524885377234487110458988555329077072863278871383153179759710345244923228243833169432827430222325823253547930068222707091341348194079351364506017945671404896281962328758744201119399068020778157707095561520522945077937801704860544923316842777812471520146308668002803138019453890195133896265790101211614164328303317276139368045869624031476358723369866921295268978789130815481126648866783444473275692505232812176786695598349584935734578125104857626726646989691490699021296603968429192695857828555488581360716755455212229437875578396991973543189320241629922212276145677815679317215458687269871721461891424429627153949898419952003050695334739762164752708638363178226914967773898718887304394076129891407823428067825639282142463686681357333257559765991342338925867450472964289062730252697139923118124266366027711061822084845855354814292456561619467200994142194778826412062162526824038641593509733334415426763486959659956287321285935306672726542703164693176751026339319852151028974612737926704141418608126474982797469112790691473372079837098898548437884440502376833163539807128964765795925544574236277968968601843772655161236034301555349462628661161587242782219902434230013958321713313357506982688462984339608859757378713033405005216817077454756959469367601009502405142422357331018861579195194161938425002202143427616294789188967877706357162492161428903681215582099307688962005459323750813186023604253610875711727360395783816413493251264170334980230033999432409244024417917531306425868985721493241098434956038312824346440674881300666307698284695971445658410909475815558613597644439253694501876141880591348159962107936453910662503618107592908699594606326964537608633181965419009990217745731854849985996811676791180294770117947308121384590332400847024874270367338999918098234120382174011162042013234963739741636106932246494484606238691305807148292718069804202279353158740618019397297521762555396957989997674802056606493266226773669604140462641968051109308324070642555196794913825372693787552370534522719039907234642947038110115966198461311142468182575084955656813213086670048146439826532969804568195944576846203759448501403911933753748242258153019039792790562054022667313128639142167348819783935928120474232840780332857465935856235775223264664890987252959907094431154400613015004689298039003292509507725122202129916327686118487037137897626322691615956651561781828853128515301169595937175717646122566372333319679928139458986665920476538086715712589542993440957279114098427192844174898895758364061573569014063844920756360251981625461780744794273829859224777026074491615273565350792809028528116192588610434764568519786285954619523252828933284785404150647120436192361983220321434104328516422132478128602629595603351563792919022479688900854718888748192274585241319636320260226856477820553132910876710033413781605516095480604640577936504615065390755119752672391278320441738018936057017460414455516881062087249507752567921748997868973712764163002836484696899167629874182943809241555025994721801149745821261674757391793501205653703577985519885148767373629855688085176582174467501884893780531138996426923997041856642568832721352137431486531368844378714553763636917053034302007423629829828208615089905125610867842509092536889338057022597739422251090103277456232482619964157411659167431649357000647472474918127928818561673649848261112275402442388945006503990505050670182444137676402725398494867837159172982913385753058754575936098611237963313769553556178028300627195345071751857758143187888148429181080633333653653692778463742518299675767162028924611465938787742745271992714688853634816743470737275063581013234738213059102884830574100351671716013878668428084100466248526462454530286499365064994688602950274489383625224693411645620511072477528129683046211180004325334906439773778201719198028300380779967677873550631556316171166087067908609444605269738605559777111039088833542426600344238272484410265912197043668378149779895952416081876133977151511002599797690717094796740098235066095067395642823655206362216403294400533407431451732648158491440931308119595668604320320331993839057757825974185727811787469303968280241769287719767036547891266427264543635839316735013869402170857854821016561594252861836652382987588838921507124211735110837410327092035791597337836251203180607226984964573847342564298434353061139793624493905585883032843867901252078125156454850337004252126020155340703232063303016697395442249602746829020530188121693905379884353377883807013927809183238664086971628400832987189001262771385661068845640077756041379766809918280317790294888325186441383193734965268059243001346054571311713514526310976351550033339203953744916189037986695494094899993678435145963473839025027132271236626455741396106936298214029075548202072603809008322940684415682627351643764190232499616185867505432424451452731113653288768184645302049465009858166340179470053617470132593092276733209034595392530475812689480112647149118591415766181724616103881485285005386081357862390654536788198644360813325365115849319927118155082478120247637774667918978749885169541990282970111188897670092666565552130165847333348321461951825122179537574174265526933691905376928312468988698953241292876904645029667600735226516230423706505433404924442293916836172570562309897522253092950925838052162880479773588213114288052828821121706585473974585607867556846762994785653847973153156258084514179662453787674910711808525546862599868175381905382811950322531082337615773897335541414957214933623058421988576537609320792389490490515685048457130995298005297858939766365379470186971935025010491794703109620406307139756072485911773156923954449266095676399342119085943099079422388352908865776892073490853764911248233327644104969435290761303587566125402713984762618953136691545038992041125819682446651130566354706961686811963324388165971590728412635804662829239147074221029885940151713109407564802495190879766456644114575758420501650138280946571593552863014317013083469249116922798283969411983556045895044066830892885579334197638446892290887779550281347491811832621780486144738902027046424478871487740991919728242640431682199862357763235321393354086157897680000464696961831322428808642537188821084321952814906756279819133976689755703000503030954045527606763474513684294788005270744947337831263526144206309507561257679879348929398287881581214236226349114015962076346238674872115713970721772520811516152258840670070426117894379749183910019742380348731219164777737036018677674049860634651617235170505623421833767361896064170852550322129376603365511196907107201865896348448115420150557178413512571593952394638323871984469194868293660904887968494905577595143962856330621013929155481493919649390218568621263861931626150315296650353177807282882095578209066250147996569228095003066159632831349252687026339991324704874378137397341592469458119471387815440958954220121549556470109885862524783177414727245565593178470608013616233560929419399319204143464590451012569501861232778384277993286772116069102177881555962761139118509859188777416011951435892488589651765812502710501367520296311619578514419188263447465507266694940262756770628020832589365566040539561935827525703156908834448168938290772201489623322106160473028756503610614968485192779786552838808695766497585440918038436666301656943965710292878546809183402493259033355271848629136062379593552711114177471447168791195102356459881559063321665050153869215348017203614574331028470669690122302948754942320481388713784356152639600518442141309597284169048224517093646974294005590742462238919634136503099154736674986833462888444429773172878121128101967074113089601117640328496913200613841878844080804283867635015704206125674297185984683719207555644105384544060162862758859905487990529052118423030246344161601961231200892105449985177657347350444489260664090496375796615521518987966083929012154078700794424922722412881914653191525841696300334058501764032155339807755438565172069766942434946901843434203342724790404591890267820642906719154840339133760582684072058561173276450237176179485414518315956810348475564623249705657037076318263259233777184336008573684965872717921049559934582478595124396060915295030028984033205497875973228611507433384286159712220738365271468336426142691695462487232563249346297621492352550744125051984982179874819795601322472750536052910135392396845682187700273375412087828160638952396605421796531152412215405195874831141208175899698747787686872228374237088532173596229752483633275479791453578788238213158304258996841753385020684364893297164551818980289401624734812389486082973921102063284069391185490552647927717719471230170683666014067065518846833105521395735623436343342659250486732006366748811910027454874026658275532833306066321844748882272521502599791805411819406556439506593474684314742418391629764438686859319777489315830760235962231732469391765065877310394044285820468972067411213150369625282020721883333477817590583594358892358811350689438554561451832483069659623286992478211608717083211993913696201211871161268414640836549693251142520094883636423416160819791998097299386688064758271905072580864089928626904835577178995557506642618171870347106849631997338943863679429277714572544300391909509938638093704621139844128349917656337037187645600808235227878537364712133553620335905494427633780792069193171990688129899820402415246697869130534967196305629404068880379814163836198716393389087500445788983814431112833544932156504900463581749069017709693826338757119268896868599858620787000984336305674122027772967456722429797602403981373998000180841060127365221968516367345771145301600690598319466558240955297791154250718798771030103420978489680340709302938557077527588563147488184647667011044880610313359481825921887607820435796184747348466282775780255535472716372800325254812308897590754021807350292648003180766393052027048308531495966595999381570983734273056729387996369693029425755980761637964988015788759930993888329614435056978851124167267038489164385429459760138181888200656278617752133846499116725189367320977024181633717016489050530494827826706016297322760544925616202684454275923204709019363702630045401255515479725717684972226210168758090409774368722437134970293854275521422363079779690760388362003266001296243973665571285228187833813300414432454098756848763070285779215952409560795560604535453094491104605650462077635408809424614648878394680107910950556218055145338952773239348795212420870161069340546228576782423659570294697154108926763363298589588349235813098715867715628188495026305674164867713023681467422477923170345789953525119292182429558391358513464203414842340627159693127722760722792108414118214537654446709110739898366549637939969614328429834298615698105720079484710531753688357251601414465234209379552167718732696342170362170428613356531352410608336391234157671498496896142913573190740092011230596260788939227975730035280300921205599138697365585615663271618144708701921402619474834127805267763796962839142374155793118304741082794438980346086715145073235041263635831107885226376119197206501467847605363589761688910283269501532596827894519333092177606786184320528864764486914174738320211178484762402530804409756360099345212505143822934313918930898320446053813212720066157359846644127438002033359630698857379992477675270333541678848472066132222048271244648918947275211270622721428006795328624825608382894687852023185318859709671245835392292838991401301443462345019225104191828938821504528068362738811051477110076967628381799692039705701795952527594318859276817898824083390326695599040555716117221276998005401608558464799074987887588720197577468720705727208168431408947615214821495918300205641473928743295644021169606579104451531149983547300244899220810116917818977254602276933774503664429557698188448759391562883774474446034153079678336629942425785847543275681964115083317543215310771266102340943867950549373234843158446142651465161794200901038091429699559876913180063724231222812876997618054119633327177335674062290688090639038176352923880326660310039018545943745493305453411802645037735691122474068159263183875855110284879189303882372931977452584432148605351963107076532359265547902284401503826825065743863233457779008480991589296445482851621720686933625715489021646740085199576312353197848013177287040127751276107078655472186595058273733882763013520744264854030173521770970045410768401429079316451497485495287744758768792704193604706295623647009655772600299875912542957676477200925600886045914246786524397363374718879082565236582113775629501038777944688579347515679713567720965834268432498995067564195019069729289585423052736868819527719038296409469200362569395322536535176449578738619174611372542684308706506956941153233970056304267006813491222351286288936630437332533183054246120412945253796733660057855511152753749151667222036208699635151553682296609571232217540953886508149449152532637922940222256579128391740982161337527332407966630582793422031466405916069803349561636712775891134436895819581745538996886623422523654686421189225907662189683288580848832432411130454904001484208837702511540449927043282390498995240916698111631855628359919548446432955320988543082067699001885535936615663258505325231039167964710173052544972636842826367884442662828540874712773815897570512359949268383513459106183980304109402570750675581467734746136146971136918394317295070575563022118284231634224481077107526395092308594342424690640458356504080646423852986267735789541902487998211848087835462682072155485310385036999689886945066966280645987936961008148949243460021449539753863748878098177784063674281270962439995222990477879955441129218977409485268098771496284876170432452921630265394848776652099160260851462993831389087245909252627977246987690859676564672054242363045340775784943183084827810256835936085678713307806911626611180548102955061661206187046981423694062137321266704726623159183480480501250904541642282684625994665355597854768547515647351379893541269796469453497578055023867383347212766349806325199026715965790784689863260150038106621569217111458330780479342466683901615556014766130401302157797500229163145545733653415139798959795379647378233103097768148159644323867143112735908394243379465877940712528233082864584621216829482795906564849937653004868812332077172702830233451624170176786468649984102423903251061291947436973565148981212205879053264507118727024126765214699488278572825293779524807902979972756760923582216641812074906774865575812571673208361751111403654427937276743187131056620892809811510842160979216221311851332510319008301756886757968533494161230885469146359015397559676663278256010615751659803656968946727983017936537639139355942224436613209287395060789388660849626128690822484897528772206565090544479178338685771307832039203347712639868548703653650369301395222826995359681825770164261580863695080654064045621193990338975578344467741600214604429456232758607771884662529017871231758321577359508015852871691259634168688373106149758350044701564700393581406982563722884032287018092345335771329040189924014437014547037049473636285645192730307434242268955708742326197072091258660338641683306494377368339954196848382937196580831823263450145974477438878126797639115186790820671913761832805981725281043253867113282223686803004953838758904581338637800689124199884291977513281590182271691430471265977848673832282225922701823003625127685097515820417838397063476049717792421960252529091147280461462292987932533601200413509662489914418138325302217309957255865193762620020251878011304389417628096582172070525979664141252333010746637570082182617979156389235748013099038524335342803681288333927787580094775716000095433331661788559809859764335228885975107945091253282257125960015883300862579984064187896489948609009782694357288423218661225875771633581625921029364940131696908634644207046017843329165698145405777648066368566262076025149376361928755313495972275159395661439653615366556479283926552421335466873095390192565054399929099092278115733545772713430967910328681968543063535787236969665468551812661683452447801306503321291654944338949977358983997721933004119324672440082014853316530753107650011957801188049032472712811193208654284991375025541891281241638615681684632933536053432476891024822927216471295616680014590506137204794263952396475194893666993361509002724670113370756815515020107845880080725719580081116122459884835044848815636633985709841021120000221244141755354989794721690140340862162761464372896026746391470354417132835262118201989344112482146180821906110549635996481042320333946450067143460697088226473286882462813475800719861893724519790269925538676655221152327453382376314429831921794152100670039295741040762592368708893687127736601106549441870404400033158188144248530073544219077897712037332362215787880192505362137046698698930337537667570172202091523271477368413285582970538909895816214322013387663012335719223921668584694119980584869440381588611382162176590463333498993148752087682289292838651413993199842457112286702146260015140928571566586597275048599189235981778984409290014519590113669945831743429597789406844326293453277576943352078613752863894421661807748018086981851852810645023536092522818416008086170307130363081417212371923371743166807280298577013586139310715749455593957395854110895219207423144395475854949572813786466055756266183956544115929325349174459262005642755241921547083683872854920640977820617190653503094254477215836784420381067979696868316650141816996854044522532152530581975106188654334059905916703093841594809185541467617807240089620857854089636238258407739188327299192810054664951173419569519836089145172692717610291613765299389180113105825223257750140473608148643668353958571489762127580956885492744018827685587949308427471744088266902573449866086463197463558759535942524890733832107581244502598448883472558934788523412856941843253949448930803982700850516739988688017631655072533461583600808930343363998826596139685695538961088539035371548400012109696722641873911871016748924737748818348710467763766686520230082399206596232487315642116045982020399736848989949472374767765405876697744075445405075217876144132331592491727799673118292849319890412990848997478097465632558193052092890436212494861243477574619300906285208928160665284336054349709301110597115588679963000298896020546162804254073150919915875152525189815577491162831106127239815165273565822476673795770515668700961348362031540165807593770532812622286814425306635241883404956400090233137012211708011358293065417532595218136434860782605814630081729008959500835234893925395675326864886535978684917677142891506547088057639092970906927149347500689199368792635593560764637325059142092167014700751713700407140008681887134460582398834303254200159874010853670166826895976447586961580126154020643199669593164335489171230819170869405860630488364607895687388504198712403441507836330095888308914783666104311511667156171633842091999163934138301374119430004281503303482109535093325634445241630524060276546048600558028521727105220104178499066916621247333360074984781078942719768527635339245168253659829025082055541285864343643661469704671697565717923755123337182006132813760633634567205865993381134273268506254632863128826743917008670117912295992332597693922376388764172939104338034882329712495290007468954100040697531162824808470154779641591500741489514624734831050628514143294770411036212538501412562023090900539354534613794943364074678732617849902049470025259874624341670091850480352295961663250031295703498327649148294461418492552668905030177914549401896648600465065764425139901427683004672907041667193481190340397069432847399143519818798438747897643785140877486333848358950444131888419438846804951581527586962190608056245910074086276195632079557591248488696280974637387862067820051231888062166233829972516966249468302965804617455032591632266676302840235086291588599782474480544054976251074167792043684107897082574629040809661051422025037123392432627496535684748303071948111430901330920858040134918870651698211315518065587840739825903231119115063592095797657678383572651198511254711084150191388617499282513179875707962252278932453896613752559375695985653718394821251300993369082818587775906888388830182812770844718968902428125997379766217872021839657157681232511324887479541437912726586573804309911775798875482551267537544159368482087239023652382623654900717594023132280210513311539274775795662321410476157988026157926421664224657389299159846120075825797893504729224656716575839899825879144310152747808891981384935594128325360021717120247272350352939297309197273205805296461689401783100349333810907501673921470099331156165422001434547689857760392518878276892275620898853659818129903371493778431877821704008861045674104271166720798050829738056435846283276873902868766596998402459666032699045725081182008459657095787560149862678907104348804237876841673432523329445571119656425493690349316554679454736192675227293307667200867860216368504303884321588370101443473642584689669147059329276084975457529779577476657970087724478001172487300619327582618495613634707444455601713501091023058428543600224241601025573725468078585363840218658300477199778504281931733738564379851539553910529382932581223113113839684881353762141666731228594244857109848773564185447266080930220278973521081837517849425485633641153924692273666741075131959067033519986962497049261274309610727206857719475216202276722599582983640763667211619406298483511317030463608014160599817641061147204984605342961269598436527438943042827066101102283441934103532016290483032709690211670848756220381612489211003633528938061447244533502228463021905342575405012757436301157244678204323306811107967221971962835218120584893779531384471631401240154886855632442165450727919041699062535145981146728865802214238061068581259057298487336666976141292174394451832753593323458157185921666287562114586793067448973710695120044639095792726375901235485557611760650362497115484947267345547593029237392588837665484659193704547039015042949163490754706132109451358540221071328330659417713982720027914967420974184408940144906866181242317379789349966342766959226283302069834080603586417602949051798521896675777207769828124652841053338591584959733926337976028139099685609681110476811733411411203943375341838066874432985331991117929273296193810644404365386755312165939417681167206829360374088846119319656342264789919190116216245721260282721600335535167581926241485555680902173599792883671238366019591983329072737067854389240431690177732784551639722683823176137038709994777057934303506473529654623767054956905414106645970842039721870130914296985777869347230610344304832403378161959862901313179732361496329088568229742027113079038439711372611030364060134725374400779430498842446957526376840745450783001708047291820133587405264632807599836396870090158518258191717887598524953756091559040269427747611357156680514895720756519091418428020772552541862908401166401444254461537698400729157615156914227004190749793823158582171403459248149625318782898035636314461209436236052295743324970456757627433201277569660770950549469827152722911050905526159366773454613347605651906921436724758456423373537568069512385260110609146189371147231997093389363170278541544967726820139606701620910576993014181361039152746815043295489972536164147912417959995654748531184461137353078519489592912997645785873408894614912580039492547460817361169684726699143226479540463372780302669378982855564940794817227439900384717779275259669038345477261070551901145627557404891436632906487297717682848365706642436887696501695011362732914078829263633495754187431089959218144546764251552051704414314510870825062980623499669279708899384813447622896593141121875623809566561926753110756999858614677252308075669322406987152592415363413505673800717250862951244599229956305232005506746230257992257553492813207668564784206595312113607135741145791843644298573144930338663444940236315094566465294343637188498783477455476251295779369143014805398089854403842790570795291940159439095871870894648088494030950928260458781384815301073313615771793087910244277240627123417538068410671877388952674649538879639337312005715075865762257883889561368261897201684142973793072833023991531881903733833508688730659468768587940524176344622931327721964379786121811910377146258419036687388357211352440150447121928517376932637345543091814139917387706667135475900003498321321077483085538080696369581503639765764105929504820818144064806941229674019626945732661295369336399159391693553991293548893135097982731907179790741257927919173711170417198834327062408402131826984936684680108928430508582803312716891255913703978066081582040435639869216390628983908124762095751410081657865112800509126512884988358991276545920201092982700019112848791763961679809105807784192788077694519884091300100548407425283800076843695666741449929020755675498517448996083625113274805573860181913780278796561388279058405164176269556314518037129392804849184980936060456442939209184682018680302976396161904965297874882726875383942027726809848768062830664932574150945850869458393508025656287967166780667197412642226542459316925509708992046396021862268105952235454059152242098123180115066698278133379484815047912135906063178171034782946487559558020533008415424386378936445434842082519482971531302982964987646779137960029834711493205905950431117157054581805722399875219767098911190732100798859890642654332713412284090962724577420975559420516485951544936979421665575829799791920677959955648705067396413526845625465413448988560800290281339641830357829167443256410311784360736700832283000246673549068313465272834250741669595537147111510103075359913988322040485713722757691781954003261246083319408644425406872547718554837317998895993010787286543521873797292331703315235843834894873322090543025217242928487550814871929862558781891640233028034631594825044439080531128017104220537936827363681747684849141280580324723217284794729024706923658088924825352192834415493255506682899870280496184239806588821101894348385886695056522946200407765593522579082277534369669954657513421631871583157949138546712216689435354326619661656107516015627969521872245721361088167371732262480904163374666392839844858566540170307521937819669813161575469379287960340288405393700969280808661679890050139113715121225681668170102961407228548664462025915258545934853355767612426135790743426905013215175341916429502145908984250365814969618269845156904486922503192891752038437996752891280810211244356057885550710401233107698539218341591797182943828146348299592235675838126583438550069821579425768371242609126938904386951918414204290628867401485036223896121289745656282646439283151333659085171265686780270837089438420319407591374445892693091620068909887051847773548967467566705920786807852232771061362600510492438517456617587902877994551638767232887425035108413463132590109230863838298297154789729999404039771554513950849543736545515361605516622850424732281609854680350228697595675304836748062606320309823759131871183986358671397202070975415063156988774298018151697782378407707386677053301881510616062694186813561618282732715984758986231742895566421565684971484576894502627652308704122009377952654299231883193160795276948393042739859905420564749122743718904158738933030934538642478635509130277431159267019375895585827271286203249875904443214917716706567218116695201799701724935072924493305484266226369825804915903005357759068323824151798818089417711452723039342406269249709988092109406496100636861176638355152419060867908353002005187348092845449790794263888000271290609800496049540830554030849017886797857430444664266451805415916690593816922785225615642391227527197800545907057543574080290559739971104907361353600676405238930018160912655389748511134757890543106523744583149062043933159464032320354939753921205226190411714636134073742889243368244699827897979302875794436147661252875871354088679108793780728695558867336706008782106956188788554153972255373198261592746232450359114443321839883714987297273564976328325103246686260612357424762771009496663064955488440727449415015023810964237885292342077423267499820754087358969410882742827523340814006878029903814016172582304479419354045867260083707993852709555895583282142813493921412224292985810262818178264584052178486969109344677269491720775075197264086908532836058720604294417940484153653679331013166076566081216122585750739661969973556925010126726287478293190627739696546578967803998186070812053592880410586907160200760932324189561615015619972008629395542109900563057551480931845993200189735892341764819983017735428349818530045985197606810814181006368559407951299141608472072309437228855389957608478842925570028058838863480436665294381466178057074520607764760196355857711942613392201231886389139138207697628642095676539176948909465823188682942311149401843987121587932793144229665222238191715168928184216838876140537250127041995550223460428262313593207252925540418214303586455879324767298326917194808365819128461094145232238211151126882615432215741892823050458832763955860781303007236450695678512936635915052873673537822447959408827503243087701644106765889795034277705533198925532337990168920359303339658206837625495571822786312914431520540164954256260657664994908300812611649839389385639234862479296233814165004653251903644739811259272233187253157833257835823050493776863962695439993786279746667574454001675437253413662363298175612387699798577647475974273660737153158784461283473551120929409514902105867101450013423929362829421868771896642373324793814881280462121558794167476377227933322396661710908649646419884416583537651639300322710345826722555073503077690611603557682655839929703038668547404211342334287877260368557381795012121018948723138900757064756067136721036199515347342912771822728222364451062472459438643959271109557289755010553115924506572675122831003816107657518019313777137938202863266896088078992429241154685991426528433513265923741751916015929298161174626643949492160748869141985754124426111640058329748809799327085037002226806303235788262497337997798577844255568446372062416511979585652328429105076279286519428163702235741127674546669221385843459146321506052763709021867849096921987314618575741503743811668542109978677308889274238548264014540705905905218677610580344525551711318245727412766778362661369725593956360141202827418851092380736232266975712972354356399923059293667144952559072179272409894749852727775086590255169428165212232232737875759892264266411373163882716021277980467098795727217121040988650151120797394115376642986465619784403714281677668510136718213185783681831570160134813763936846232425747685915974810453693448384943369767759122250998166149851594538422076630524965387341035871069949628760929615282730821915573045990658083179672229625462596893679695729497657698453238614429127125077038937993649461979605737891359458135347886873015301556782997397851615292978207204442082348490579130418882712920397407773963377893121084495382923009544673157287136895145581802666625328420844313508322816820102759474312020968403108732953171758727278967202413015140459461426283300531611661403815120842177530667376189454343550736624668027647832805098665133283809332446234882518523525027882340176928172823622845588441309289116378937597210034371051161348274716516524847287388406708250953476982934406940480083888718670335866053194691363055855253523720613762793268913384421427380421115950533963918015699424526293810111502722843767427285041346939416343906433737017183216146471277279375301900249576124278564229136605098769901677261859730229941944649658841748984565434871295991089973472286164966817507334500505013616452322855693837022450749181353406383033058246056718797189471702232055589825405261935434346947669621277704753348276743543447372477424447932622080660299800844836351908128745031037900582410365354667191662186063645637595542493734353822517754613961158458810735973958938274219857072346326115280925275890340241000991747999827970237013958661769168456819058365520380316726543010097615340405984312938932819726301141887120006606781982271638056067198167023651027122613965428365606780118668283631319748244105751357906078621026938664512672575933028801842259401164570493188323532062487138653252915865877644007642994487259731111856929705680113529884043227028456636494103615071722269840303809750203758447528956395782441379802217967495236311955501018675165444570925800263087531666258907315959147703744819312060538792791374426600568870890583120100911322804061644354228816625499908126653646825623992350327431937274830832954438435221430111952964611100632195122144807072568615331739824579193226994032933785118278624492677745918998737322643839044396226873955350775932462608251845446985838715113188927343003180412417984540758745942662979424065866194964267044917875091894866265305621676355012746038360469417816272426961343752902024200260220908554595284698584503932372060939200614451083176121925428472910276573023575125707728512556165563798630218613488671349118489130415418125942497079071445786862068624754409133868082291038827854377030565730176959189067358396080142935821684893096874877449598638323018542047378498111238088425113440418739517149590384056217281406712080461394452135224776884387214776457731036740608922227901388070605184851599805984719640892582401539685170710066340517143742733871266545429902342612616086920854447965241096863578106416852926635019143406114935123085931412381444595462034663817275262064222511226108306233649701992198156191531738832098445769814344837978809349693699775319458673720122192365503568422783553120193783555803935227917518547045518997118113926833844362636946048075226655846839290297038480207475854608105043105624860390572129915304178846166892177514699329923164268369134919074330457307330241441419371137965997230483403914857923889981779509593966139789724902207656389674902316665929040010578707289807252341307250832094299566714769889437668607062193360152361181851892506400178491495831000196385850941198266322624586098391489743744427088056304027364042030251558045863779780828040809926671368590864081549146972970349745967602286990525843424974135160556948150636229243442319381374595453114998908953097441097897663177481049787095327666209210457480520340344159055233698395916347524244842031330222940590610962953118785685869387117714458390907496147691741869802175625167803017710241246113022912280868245197255540930550195230848491442645608579529208491315693081238247113265045428560575848101150224345809804795438145778500669886927541299014750944351166505785206323974284277565949109238493130763629954117562976783873348277741139315751429575308714213776384857532904703072708563308353706169604853345494081822397067472562663770176060236916241064726660543699386044470968708905645016422103111682651302106711547439387325320726569814575015157949774045084066266800627057560609230504944201411782411498761963161084856541282212679400949620876578965254608245986635506730766147819248077763553538421789858064971391557281543747895114912709174274257749305363959787120071768483838285986330381307843688259395229817421380105101753570673999029185435812127668496228723388816946496707660101204529463577504297969636122757559269739223673806036364415456783003839047546696038438470837514872282167274406113630112948863559459248094526010151456099466561114616464084992322798758794253365243452689815243345842736184951890905587985590925923458891988723010257052764633111759570751874960075312031301132770809796859277504678173533392157547191646871343576075722473474447905022156452663141396269470489062191052262402326126337280763201332129456548678247187861147532098470448935645251175334613831521027100731958205209186911840931377182534732429453363203562307642339204146055248709230882311995475219980842965243354610358686750773166833656655135638835909977710477233130929620823691122277681432044779263032389349079772771652130936132422278233978246526060729387678045239312255073933672675583128359086092835074741440391889763280346159445043531472565087048856847747642599801460629281825689655341343647783875605207162286360045646423679830438935608915319785552938300379437263783897429163342709535353003154752100147753559090589005476453647689060475766460080466007730994802756703607124990751446445356616833408889489979311141472474765433664942161254545331798853065748593821031389478846671725366675286936084805190180778704661607554522525944917299596339674951431210262816802016420871191437356275850813794116832296454024455829346889489801570315206916178643715644251732591527255790051233673573077518985656938585716476801840783030043559772348448608417464384118795660318052409322029370924504758810010485876640680475083188641633065093083916354528031324664838036826178281962112954864584956033846721783175495372627467288264962764362607037821114199590166723823061726021718662819668511996680073576150437797996872152253005903891788032115229097930323225700120479124601665280036070123108353214452134101463495746162960286424624397752468105401644348011824186383837234530041529008349271493079839417420710705694509339261248774875857957476436771406508281031094674379691500173345363071101754836089861459732666003670638412337153434617687161569169233779237870078576782394686251100538668894182575758770260790026935090069792052547185504064409407717567759130936152429055796410572596951900313539474421362014949170575177572854836670075988792593891631881947346223260550549986899885543053086892823981503315022946086286749614974815723658236754228533015089697661567188108694335325395661043617455071824031863782865849074128845807672242281923229206664466229507802788756329664299558119799283461552497660580963074313187609228289435194233124698839771430766523364397437208313145253458757360843410230452308965053367992517068426938322841613924183727404611706930499165484808613984820751890496273218422227399219647404063883568094702014665994737624921664895339452502079371646474530024829230197353668210005097141256828399667796818495865143069644311166955718459909757769848459013048785571503822126783267919258494876635129366755853183566083586414194141644327911365248654804031225779816313206971583756320230359898284019940089319132989588358256728051336712864703743622033661354353239374260795055329378624380268442042002281125462260816713381596400015475219968389948304599501645403081606544948251499070134517045903650219635676696213321029206213558747880267938217410390250535040186387145999082409024699099789591385700977060393438900677140663869550985976460430978123233665139508722269774905779919400910159060712887424325543570246960940376706322634296308844282894786572484222103266548708542385275144797384290315238813915956566914332481674739478471170996109678554003144478090242261792777064464556210643934800653495696906402574108945089760367373612013749191718639915443818412119133353117624803601787533299518489863079873934255217579566401144807504389466634931566152356048364785121199664531015214908795841486481467403397936934151908925690916012427296850822867473946692732526502520849769421622046437368133396765730107953975523410732351328876097651275392124225954375941207327661645647398801436091380811184604910714388231454898753681983581476688880282331488940068778237664529482153470064553356760287625126682389534117751400007558644188807752778106994356847564820104918615504780335891633206984824056018699268805275666797369192210596646766632943805430644080338441073239788944390861155470126791851231563486582122757376135601117998233858974561552313625135689539142685527808576388428845289450775075630221416498300386782984717027583579776603833052938674172931685713136504267476645501132787136592996712461588241513203341168628331342094325654309327587140681706749656710748296515809372259285257362388657985515641190411823220389690739967896975249301300589673513060602388171424578913902925488992249893209302365151350748062646773452309683865908013653946526012579919627072777962508309088640764580809917318475815180774752083612689947567553912421556462347868513460790114517213965774427767904161125154594590713894348965157856286115905371914072763646155444196282803396669714252243549765150894184852409344915160460056868507307168175225699530388994566627998671505086284221513242378026993974953917371153772693022975196454806053311845673288580227777698128296481020842549794335504834320890742941563378921018850786390490590987684011557140091849038771126661186758889267047104316925680332718079690886845033218608102977586932346381311207512801554080058886473413176832707221764164840877932250023961495991392652997075701431378757110519526836365860612246165303280966694133946006525440215667411443691843468125081280421305475763956720193873926733504214627834771965317874317759043664641981676418226027984081526438707945791211189580232967887031060113673508870529146653991869480911114312286417430485379171879488164177574281703868357875397268782559829836147061701129075927213276462446149654150442985761051697456582599712091713697283617790861256882929656307582364976542669415102937336784437472055444675981242516252800686219408753968935621695687493867653068542285011817124849102623082973411898902967879486971035176509968984358921023609237153281308280856881904558373871963650064200791537990613668736826785488456864748018972405287648657409337660798510212206590015725612396781696193278858464823486294181726769737146940950923300800233859942254461935798449487601616617083597654029509930445329629234921025289853643354395567162712763406895202194849820494656917083946471470312272908715162264773169496665341001603490506551530379184189569022351807908642823096782586484259981241513581457201947059169162311173244008672930380168108097490523268278987717496653052167399319986682109128861650137940046436375460984282178579696699683168341403831818755228117470864240283031960865680049033477357889548311008705883879975035341264234299047748269837851448528749267992320128390515087486836717404846589612939378545373299999121513969258358881326992258720016246833939489520682239418477585799225921913190112855701678448540457901806284089744748834512589351764699264558406282260154459771983513229146431322824030055072461147623757906804703897406841529892462104874039906605121799117443805480112781104176476790260585729554253553079577669907916339986650781175784951229481501166850968602228553642099085843982064292806169620508058247435811899733068343817704737949293821575866379245635665846008694402830134343974030733795410875080768670237912808936233710064837675802584100730044466085451244192170036250116579183026022237912528257304004886805161377118053738500375715924148014284522953205254093156233254602366309652710419768330711077858774326817697785262824900712581689684045580552619224606454214236002657888270732178141944029541335171059617438126765755291528645522921425104393020002843676067048336132553678121536974975382998545381379543866777242260859329289971794822097989622633276341761802447973785513183810809168599363369368348670285242358991179184671770189552630038105011209975210378487307125440194990163215592943982489659884738018085701675479495402694769959851005212082950422462732175453561458418380562386326936123732885849794661773982897496514217006411618368893380153941214229515895797902017716110504098791009633151543328716148027506660346871271052517880653045083310816352641047364538494052055218325171223983909261661427556719440744140668941924151020624344601118981865636876415353360247211280843316580783109906288526179887603662641114828645647096365978757200591024207541335347325511196615268508780480779198343520992837525122005004309937026529507335696912683170497027366646500516561114458701726109340389206190156985652842074934908694891625156616551815667797141517928084800058118080976617623820071982730138114326764409081091963060588613036377866457002667576597027230484938095079971286464416445009811472844213332226915533866374785281608691402176799299141070993384312090226566001833068797627890186160088711086030679174209296477666660188990037903264821047556912826022331964295228729087485046397499966806737402028430896271157939197304392177940553578015535747836510037842376223423331378580694518523482400567940023877840435759900691757093249471477496394275862143120621845893505685688716041365785796864329323554734319701002886015146251980094021408100246156198610978967516274295844812710741372531802366436740236385960510607280751763340723045594381182295027103004999104917961847780273325378387663628618881137141680357316747626541579054607856251554715671269650061321184087182495823427467087585003141835229758427551810075818212837544471653963752832290122398473851474007893112870744824433844620425317001036033661446456238248360382897279276140850886071976704235952283219853473296888831720911888978218851357372298751570253111440707764203311166465410486826367350001564924267911318606419124361708155340598543352609986561590706352852506802359055583579154352271601883035835904760364200669498059456798208498126655609817223921259984980021469459934511198880628897365350065100218618434318561694794850689493194395636355732126460087246473804952375194785703065629049911723939127507615721086557817081031979544603034365635129361948742332210726687418405667819008122846411211397241089968318348789754296137436389119756188517954811410232493843992741854810033495516548444306949151954455273334601809171182115040194152525786219274618222241043168736560769188911020862580402125440889683470154708863637938350357599654871245556787285619359317202116032689763335704162432607400068345010574683142422234691053538303339868940934390756363070578332460591297695758823987875134011033795862837457875868748193619419812769925866830856302944119806361491307649819313127197855893519268856019217277621943288849274007688247542718033625557889487564963188822607030188240872424867102696822248482170994944940354806982797346250181135916618803726502470670631092546749422623321863143885369176704983600757226464735201246794239402921731840499353296257244423774374319616989262157924358119486958677854309475573056510121516887279602698703302814411044818842840177524248574322997696225404080051576724701681655483553599357008504277438220018386022520221581727460159052954010596741777567714562722914117471655867046490519024470078434596992668787290019969892868377303069423499085136466351694055291421569440856188420294921540655828912005085930219224428987425477689441430051922260236561221683221717144016760613370043923317827565230581474810692357757193463746191809892773624242338421685431768105904422931191053281310687777821245144989371657461928078839603677346939834109062484583221818172033027845228690328103077794821319367878747772147179221350958357772208564479832800683797381633850798293542714236290330075734168912477511575597946200457766279594034919279486424444777716172117224592141427343877408640024296124899988374924939670812834810280647374793235887704486045359062208514648776925069047934045485321270283115025760904595731242811591196577194571789542734495514916081416208483225088578938497862502870749692551650766424255513323646156175741406965935936538571217341829588058569884804943552609246245226840852111151399357546844992394023914157487273002045719891424837726604063981246392754718378323430802754061678346394277998011768064359947546286663432809277959465731414108345112222642686586455185088898871236975495826176553215633887650371529138356100761191512779391564917718275112028233191789225167896568036362612664676777278671400985345811740211983576418195718460451509471724526977825480426025498069535716440334533564930861895064241367263912896863634754747866296308187012453421785893960711632257163880735452764519195180454937732818009812723063409593547928039469566396997425487017896409920866828534213320065392894592640757374582227472093661496568640208412693255235877281576387205447286573240774169771257223733816081597357983016338800933430720982857652626305819101111004979518158074211122586305484223912989469070784882879039324660465512759852151802367578431281743658281919561539304681486059188904047156636281723168418321688933838524977135363197544065387681067430459504869056584848044838992648330642134971597410309787043292591177385158770948298811247754445843403092551492308648038709647843484447426803025195688864487960123747881786418815799338526769087123489589973977631797858964607774457982450881769993502858575490167556532454959153493882240488127303123175478988376260610322288530308236897766771616390334740327013741425600421333166243395632108128499966759082648866822179941870407103182737759455501497585263183540330471962943043147766625302191451494179381042625765995479408157252268469463498593836039058982790287599416539664803575990504765406213429688419392042387741448119652168259731697230552643527801234250007014261317473017896846259792771460755354471699801506598111531628796014973396240370783213199471969328812750969577650457179249223913197562512961882988390992770334366674599007734325787208919573929191777207237965816009634151354410938764523356667544921183419164906516588244237909461656638025924925012617144189047817110145539420457623116121759867345670552794154235882953265499951576543923824310787188460383578265224615053231605407058617387196267516132275095929357115116182554372141281820016506653539161632008074945233173572700932791916847862100083657616572146627154623061186236037833533884146214747956333737820282935373958167300849287996482178991366908940041553752240933951462355226291944996152052538490342058012794537742834379803584327614030949192646337112177942587943146912906937691476459271059122862797601736875578234905792295466164820517214179776420160771228017435114571726847863971566930831960743420296738736724575568768275356570429429921846007567258105345848289631013795443778422980201613429134843493690095165269488671186155527498867003516009023929390268246054615909933764430912415198966520517792503280245871993452036676693852684243339705859229781152545705793787251338859135525312060961056564802046137021271736816655307310280685764143721728687638899195063040517043364249136375392560311249877016523525157757279352144545828431098076536500225404473628010641652251733569090397099383612156414023522427026718816093989658312123306719214025701867934447653759830150071467603358417331472028619388558908047895269645470955152456448055115874377568283193277203128987946776630418563654040967529780632333237416780071546246374383198312031303755705043565828635880126002247373034985213784490852214661055676584257118069682059921337100197763577732246829359639681915301530353581877088089026886210457189215347899563652994389653983063460981504295931528524146524166474661755300453387295178031654999212670046719462943113016439092427976969445489694039040396828257838618690192402482675477387674396635725144195930407940783886767999719126970107326818989566496661496594286420127774503178841534597803973663122006951724556832035123144619476438117292318507861413116042166684401985767883536318025053413242713732566861608101720592628648612220559055691136727336887427145915070076564158551817458479587328049831610408235319253097301286477530538602525751396876913259155388362328407496143697108844641087163261196426455972908717444750960171088644237561286235040686198482057217295269906860351979400445024004783819268986593251155044844293324897577472686130345950482208862411162764144017249116823524235709238298150044647721422590164025495752844931630418996495314241162883649338334680312871256379047567258612218876167503073648170348356919502270273570695470392697977728532078719485573284651392721872765470446444298612860476526740003485234208694488861777203680939759464100551619665085516578317515342237386253699261109024016195636635307829686093456436209036991752279910637307938693059149779415392658340014571698334161431272214465370262142476398493144722716994129159742685765363765466307680886638659882640892596221979992674438115151438693391798680913471876006970678905471621428246904368825997438390751544131451530045673235884780573562793283359590437860047202914769913531711706299221112683187777585714519058414472435579944520817369100867249996622038421178851551665156441357788199560728018281817183570354645389760233935926312230344472423402210233683363978711350622025067648273434061106706815612064552228450755819033264567575318928470977786918126992128035655466548590906141895083192161938159375148813843030102526557594791199364812441733066190837070821118168876375438762843387921843124190670318179225868913337147015245856295917828648033060378106842170077008397884517371945389630375833790566926020821201935693784497374172049962476215857825287219372942760593493808956920183443545643616567818364128175591928800479101697369383293659200394719856368490738384149316861841406846909352927067522195858278833934416199164003527355554422814889103197096993198564275185943992602740752281970459343457837684906002348125562613249161977126752728306278766632348304818227032186727929809515515403619711571534920652144672064578440472852228097421798842346700339020542198708815880067495431804420690589399758659879866746532236254275709345416190558112415777370161701426036782773986393661731182997296730187772636494873830768148404541264402727486491435364442902433443823935531461753935703315537972727358686788411891048357566626896327843755643674314939848323773751115805830444185601075796203090922584798784270339931358461043061907179695268941555580233837545641902039766077351775547636772361633047760589603943639314541074409849381775371166906392869162063728643720190291960405945560159111047775690120575675057877146286381340502966780871290360792830774698305867857952973519192862157060009440074044422124365997947298541438862713569327470643760136947722841806367648099598675414547032534125667632385593221971322985266450376862231008824258893452250770408557084927176158248392200194683222586613240136747937266746778527476796485077123670817566004076401477633127958369040612866200164825046964270338156831504700665973953409369169877933177169970835444582310247563032069646511461927998390116004874730965687143693999984946406322969608939568409207847960889809920011347553422603799803784521240259534947042187908685965237603231990731679542557166321868903771377014894358659769865856449007012642971711340697253901049850717098266657774220401023071346610924326603127848523572684416736908558409863886726408433569930483175172174769597627390006528521838001695526340952680444513046491929404529488547048632413530138509420895703851417390089266284105295278439147539421898220738572770487037777174609149399712256756667011427237969176311382443079522750752603163953441502446958052477177181991530145524885501408500210099074381890109188821377290198805462359521097667412483262061242998122293522695926797841682589655215851579429627406565725665675010147148409020095838673879230200448397916064957544748989436869165959938496771142720896033942128140218149676590520876272930937227107855641318243195381444750879189165147865532029866855598553177944190833891599144961005790413896623390151953318515646286817035009916876237240432201008085695904088536657771960659579987071422451680541966235364811951663143930030683193648109755399883501048631753561456582008104995858595933716413484345469971730728524845751881314965257961727377383655074795586787075753583921390913940288044905142410558043324575254812062774757439322194561984532244217371778280747031363801258693902520688709300675729959189305907145261847583754420198816382183902832839051913887973671291458040024793249738468904350130959617796442348983717728973216755143706319154696455927561376181679630193019575247296113502900699644347629242855265354182550282722897565434813943175241572574843038242758056295951431725693005111790699758538056160408243163197083614874364150887172197291940271661119480844923941431683425408090598001505301928612904001849701754781621611810737068719042213398389283797078407301754985777361442925069253064922088822954523072889595334706773366556994360747315023981621161811509555338951854858036499027867332727065787127185355616012232074066513826048318337217628102396082721689674992168319015304496705672579259016637874910381804411776354531766703319447024365205938925573625794466437352631325982509288612162541544193068044525781768600809955431590321806708678140764511802637315627223351014234762313990998175561257808153221648850512116496944483871941275376610059421875094174328491989030846566865209942672184376432462089529930909257776144270119843284603733749094174910774281527191590293939103266625012311153819259082685226053674162676949907742619262289440917427411668029713749097712110094689684410009465874321521519275123342793145892812484758138656776848186012698199222478512892126048403807781595528978479691835597819476042087022229626145554121149663449684253726395338768443930607885187124957738163531059815045476358121654646415214914423561790804547757336666846402484567260273630199868021109579791126075574603388114633296099318978811629791685644830301018316685623816012722888277106404744315131949083396625465801721003729170170397359603858814150416749138124948196892041304607556371007769001907225680759493499397936058468020043263182636620070037943568565187770120872732231333720611563951583163762203254608609172078574355730384994879050692290347416100044035066717079242429626399041305034985659753020093469002686220200931526743631329411603110661756252997777217677564028371697291380536217623608087514016547260882822462541033136416528513041996182062567173670928416708043826150185482353848611813053236628840315412845922658407117142681883872229827741756244414141223412097813037365000179376924016694254301027893696788248114423152980662627480206779882638400676346140760361050034206669600662870033103742486163545797280450944036406414483055014882088236488427627866420997594121389820949922202240898346446902995893436983338579458974581804562465029391991338242798587702007102256162935894415310474928848295595411480132234069362177840019875574345858495286617051758782541734350515513858173788777141572390719852372350438535572103169232476499143212463158784346545780070931370277642147942573435065202233995108080250075023999768406232983276038999696129207022136619625203719291008579141485328412336561723508626162025662501250521476461835173459767860262772406199986673528235126256523020245603321616754555257475445467472146773619509122687467583498757784862442584404880498258704003633381204489231631394569429170858232116933233031199924639259917312381853904397240934717644917278765773583773045401919095708687719798506164528928564298969804612052165022231527831482514373674077186892579253433033692839162887741976648493096560510127574600367536024888577954741030759343714853269449582043384464072190447961750031956707521340025864390592252518447664583084762986211286599959607889879960985304078693417783670816442750915482020890817386834004593095312207521283602218448867443446972589497819074751609091573074121249149748256294596108733095674044680195534389615348677744973637720718707901861906508661557040217929239027248010946536596226370964683367278795255037455017214355904688575759017534698047828346347123779589159801322586398848894684575997844401369245161982124147610068756432350827457206029829559971839522806120220609700838162115800649550989882639837774147700263804003622151958318580626791318693276943039406320945315793854374606506876466219099056984967019466903002558682918572129697598396894425444488452305033612163135779281797018148623129853702481161238646779406152791940088072662235884775415680315801928510235122621327691306683422354205812457023097315834975577563249787788107181746682745309413202220038020416775439012721244648430037385915372538530838696386445955014217008387586439459988528556009364918722003338504191274831587327248086884055924049943808857555882067072678669620650772621925776269300887946032335703777978107133281044410121034686026490198465777325806552322825689637053981915225519863700780636611446307086955700174199833913322098808582094656997888542534254904417122518048685372076084892022525364907229349248197824043153320622114633615442756989253520673093634023983681071792985384295919011614563786662760407078723089259927293188194530894023148755795099403048295658858310035733199673618175108761838882809805041690939369205503863777811077797642196548813327930212871142298675270282634005635362910113719133660201047385828027778038858668725181674699668051283984147094484363470394836686387591262610509294722335628001013107816406854317632000297783604885121825877629344309079877085578868627573658092721792240213154060720761727855986399923740691072189134562443780982524183101994269356128012207365982174632528268314073969575585449572036930420490868463806489193995490071142987885386339354366182160219478074424956457413343856628724232782743440729119087019231011766681402141553476376333322772156051169523385420882507114460294584371447457488112512460634041770164581712239346021573411017388343761760779628631126638764523319610729041124316939758714062038034519422274577928152260112501535208067819372446428833018800041904856943645320146206123041812099345332498556333429403242204890826137444619611260077520922669216741562033591450648402653725192174630294380691566763817970808327819434612630400428938244971826692628564996415245505749466597439084666953900711055449603383928999709754807689384672660785335940770183826344302000531984954010082668850123304793442150004929417542718268946662507639472187570436780835247649172905207121888095010210554903111192078554225132264518881951635209075744135255857711693735585635158160414950034091242388498153817928321052671874109617875618583324504468292811420310586246529224005500384349999262627627933469522734663365992941167220171188955511837935792763219611645625642093289036881557844719674155595546257146046517639296700111716127262793194392032696619482724766609845729779242601967358439965072829549361948623310306316439583595382325316248656628610934914874030377464953714853288098453151912845831278410834280164303232162889636111351325769858311565825933064539065731445186588185951545075235965725631785063081647740290259561319164684506917961980930531181082818533787710400131329000569249776454547003243359167021437980094960382873354060288030218361158375896231871707356457638634772625273683022324500229056537380744342122487882197371878155422567233462439158517143408730762063720896205233685961493411906529267431098037912462543620170812658980608448296577248788747782639788276933386037948078929142195962146791409178104657381449336199079397190987705504173274956463282258969276543850308504694520975250219802934277418237694170925180185578941810772391855927685547383151466466369997927480623268810718595014664891580062036891486387338951475257798638580010993807069538784264736639552878491316166561109044657682147080110437312875200655891860335883570964592828274644591270416700301336024549263168979244975260910909451147356392689600535806894333805234380424483830645324868075567890091964121163831274117972567857891397316109131171272830808363114748229046791647209996223355330311342926307205484825288743554286763579764194122383073437742042456420547856079484497375994935800858547224104068909107661896898188459241528119305457988419263930270164384970909649366546350116955161115761590691180966069496856713160072909463629867091113555538177583740954206773432744307043102393301876463939572933618193154337681388099766330791372735339508168575771694580700249113803951636897468394315089935204027488210733910801326766052454328596226611262118179235787054633314165661495589164065376522201701999319156858626454736984546521780870474352185505875586114787606020801080972625974525862964596043250146047238696820436795890936735442777913764305543604254439264485861124681001259810644208167709361222172835668819151340206185789855676413907898163168795686493009329716573423514752778146346947584791883348903770761523194038004445279899651929085340786320655561045005241429603794174103933496281589961780585260004146987106789590880263022147085152121600079753720886313557486090638983868820832548452646239969224420647986268856393866554530222648647036589700692955975178479227152679056221138331189802992171355929719300310775209939482053354786209463263466745413005146327312993144066789660563135497054770948947201100847200987449333813530816376761394745020783817581141454471979055835995883795002021450734728633138714370145265090222849640020899034100133201036899107088346255614526388193854421411965893737212168404327517069363143211096733038141123651476857682770508858613265288477840464622566173674631935908916711878267503362121311068253867433926576302725300705873078196499114814705027720666274743982722453781139152283914882808865414396330137675378207332123706903776498626099497062166494149116874794435019617809149022391087632924542337535622606434957515418194763768620335807570200865197041770251145898764589265188275608421005360062698080393778109810656036263395300683362017707144684812904663221819486588432773501334944085483916635589400975598979918299945525192600737897359259520584382169670619136644963158852789582933613387436177760700242048148463942384269690613877308750560139377550756609424129501875912012062755408966923567870360320855072491729001915226241753854815345029700169522381941116358496166530495844787015606369738442294639306136544697510986752294396742168194266495817146968299041790801160835767415365232627756469463739001491542788364982411880976496064029150945906696921033096210128524371567379266028768163868717428697189737063416079351892135719755018727594283552953157350096502810280453974228472781901260553471998259540250391276900760929855799829187893543903521036976559532450466181213181599268902109006457378342185125477119297513768165686683617206615607123409772662549628603301655837179023646632244897164639397380503579471514319690915652181497205020146363950426602764625865982879587148651971123761117604522324712160173751876449335119938861182397816485426222108684120356615525946965393853989985008522122154073035166116714153139400129962751010037341642478683370778071755149053283303870430037241749838272578638343814246406119897606719322744487465526122414703495049094073729055348562084669499020148598357435956639228741078766289095137541598189853643044350801261921939928160288642889109614532618512910633846343773871518476257088066947908544977613535497033190098230885548950792076295624035890282207633342809386021051958445235186164948941605074122519135278940378337769828496636271563606242194106572485837644686489140473627390726852383614186499245058184496897531983244382844632218885814649739557122317433458662297623382415717453955362668535784162970478446014207098529975749405875970519393305124375239896560036762986742394099204425009703714056804408166870303452195288629844578276154372385547790260016486983929443588691848798385122041384131972991857123924142295537104366179314503603159417629428502030208142489974221470431376714362770981973275962735253282668521563038558410134855990338112024744291735955399614528271714308077295698917441329327852332700764749388925315188007857872610313001111717761868969979114586565558823956127366051075250461615265789731137424635053957881965845902477380833171657975126470777826813345703752214910300741057346833418697390253226206359575934220188470319661181545211765789287300801692222823627108177336875923788539663406177211228569078673890461659062178890189894637352031379440538629324953138941307276978476837408276371988964541170091326619030488114360538570956817848838695151875920985572627601127419829978266672613647463321347721903831501138122498013171000096556024775078386623088534927482488674738916671157950864194591929389053481793895997724146053223463733933398010207861580583988558275798348761359402222725936797503488221758901041063859857340492998323121312334353498631781329254633302472491966881115013272793272376724808857660385697089522036554465154892809883041740305431826695827970501264472018759059158458308604646494752734319360663266743424416409719395154049018719824974490128757724290999701863476051913805281319275962603087053003310969560652672294482787671448948491192760566723628337165643471366143849245163309134112582724363135755232853100734560528389446134021810358320859949035331029833175169115046537682144734595697895654396495588346467689004624726362703595484115382876583578700654726890504916690964381844998799676483515114145342056826199521393036014801736635426470985962469576494717104040083608049863096031672174922051241265505976663267776256876283705890219613614056707441054680061207181265986172770904050021916822929837438765605137226241410683270813447039438228436462917288958202155990280614998736902632818756805449567619189776979275595361527663177294706712378911699983610791040060393686007893896531182770604786222765525737911643388574427806730965635974804973421132076457893179605699523150287451648448645136040611023405153093398847935738442049330534066994981841839171224635884715315156433861157688794014100732130290841585748888610507590004816929717391194208880826479125872392776732636232775013024829850052042868050485973399499682528004892081223823096577341754416170033341914592541513295568744037891522017222635998552976358584972459566150058323263595964539993947513943716793430580335606553598158966302940529605108291165589462230524245025009067481879267727796723875091357013625230426097838927762992784775261631245583411454222851643514739676796900018314898146650004130679306756384970895644697495082587925563152518686511204334241886421119237586875103621882597343439309610937835512491087805892331298245483801602599339607927470973205513086130103736915143311215453521380053400047855814104646476946203527062472666331082710588466825743698450036436033312392527346314867319637555350424458951224379549698906457081790218936691387099757078022401741140257321611205512713849846812122115960206670372875645381561529477435928848465382117181612977870134414595014940305541039419565903956930809784416716777043139082639975852144267572236931813708914162697092740843952978179522703814382442141709644356064414038094383803203014660098685438865327668165374626106674359328197567016529442831894385881710768540398117672958293185017745496337050274100458621551561231257834794145743876960676920653537918245506458071239338867750537900424041910720814958234005438733800770722212249701634136017203266677697936443411375719155009574617463224681450755207835167064293192246494076086935344805978227447876620572556196470718518113641879369963253208561860666784148273448039922685550109225923108716783107780451485440169305589156313909761408246414667850566814686787425890043067615863144734796588288964697293173572833920812577762332741679864938950940692412103639761443510277210871578162639376890283396541042856829515358796845150033692925690263281726522453038325622864988941219516886748812779304299835759512098155564847954727101928130425055194580659802342446578578840073742656969405011500917128130005487257429741996597057585880761851579468711012412853656549181572842942633300724402819183519823078465761291517726654381665173935050925861515086064441337315239701533817348598651102699744674293489570746963896059343664785030306430544799313617791325347000369412705060628732411576798338599693772611979654488926914592741537256726156234378663862721898854985094154654962623914307104334746015150473091296169530125025802494185984434731490253468441761636400618197036261253450882907235827890840762154807817179427472334294927954611969115434787191452101189208677918497657725798463642099918309239104162116009311849372597427637146505067486372705133132207196204397903858111556670730959358490065615392525322536721434252358291764544948690488497602156012256738655795326526933987253307965855105187144816903268605136053180848712967065720250257571222571970700669754167037571783613544128201818584051838067406708162083976069251595177844784589972955263192889844237746790508845814285203118341355495209083835606167216682886007276152517034473598371043253797965703065931217781139808071945053041112751756926010551928885249813749034634287220326813802789869074256513877570311002616139524787300758911189433051207114671494315728139096142081762514971429996520712139446194327031385555907137533708220761621607466794183950309744580534633521937056371911315491488138692164390022547372251773740178718994007589243806462534289849650151492693606305969564107812597626538123780196883002594855462924709327399867639624218284418876833352959443740921747139835757995526117801076784790708727239803831756575984022454766786515295072255367241941234208868750189490371943076682101940392710931764704166413001296356750491368230026272680367880334662820275932078808936503164200621066964615804759990458964460621344095835701446064708763091965505145735043635130815453891297168901814157706643152452367870074524291267911848349311278198260398271804656626433776601830321226647721616893602364883196298661057293385737807538967954477575942590032969423667082177138404464044352881230373512241707062104723664089003486561778384377976320696587296548711768896079141987072160884144064167461555552543922130663819101476096003928688613010142050137102605220981831318857904303440377739332703639073008698506252400850822515864233234947233076522871169013583082990806094387205279986494841560662467670266710120997294160541154765365825075124383648489365935784878555881888906208000066679479692983234446752047626012942077049884568206599989727051807416350393878450713967004807099366135624197980728557722024853515078751592797769018472473801221935762035704013229184638233189643704374078507841264128216152728268994819231024407672827057186465710033618730460445979348000780126037581682348598622549308482042771045386482428256076739241995535313285148663184795186696439520531758484868450774580102512208520785258146512766357606221826205825131429246283211592729374134369946461517170433667603120237215938426827426863441498933157038082447510510374458792035280449796443121201059681954770431929023578659811731333238595937733675683902053332441204333376398200627276410880931414607206046427045159468224554606693855210933728233094890272940649729757569633250631256285453070581951701393342100889296732794945476259803706345102427655372399099485114521805410866894289571059195155663105427924163351287912704570789769435387944914729385789440592419297334419097382849902439974734738596239149603440188368268422660519353926339467324214864270871541274013754192738044390653091934710532279005204502088094174932445955595710257763244718399243855797322264238302659585278463503582653530992922633522816912798680954244304426859750030885215164908453472342115596386873851945259632197110834534616592368126823214845869580670869307978585808184541584875531169175954750103662116287874109877787916505480821879152887671765272248727418866576801975569430955553457146061013961965907556893800255675803618354364364286276434275809197179041810411147338335115836928996010803161375642109032995931648272747102321251320357837096360080965174761531719035395577705044139171837573223122097894913938004604484539106475167167143018340764391955427607214672306352636287671036705426142771200370696446970704973174830896886905445551790407115330247320013371739991337907346320294126399927826403850188288052831171653748405663668991929424845620586138659950774417573416398843593711287588585501128075237422576542213199155380619916616221447539864282610089747093377320583311667237341576299987313639157212848041108049562886720803839724826063946037377101425364274492819535626181594907090356121318089728099010572122366152614366176703407559628160243717853939728363074594023446224787768318619708345359878827843691816661135111875598144411291816437534651934031417100705478083185834307348201061981142496359356088560852090490324146320426897626292717797302134983646439948127442024206323050688728183410960671652849176826062830886818931457314764343361965956264184419504502952237839323111878366682047860095941456247146133993746174496434607598002617352380771462529868620126416609584249366269054778790746043359134695848007017590431263033034191572385087856260936309372595060423269637740764557444302998863416447420666026608817526908405444254565547551331995230633796689213775326516307104519141452559580730551833237040355168341881508680323403508210089322361326697147489500513740860855802388580714342867866325869550405174848612858149634312509842568788522003997696200198846451905090059915390602748921831529025517151474585308061681793867314283598974679963400940394172297913886022620355126637881641324872901314485670290724170625105346193814084577260296484666031064700985465854314085859239497190403818699485203815401103528564715713914441499526941501993636727121691258031886227851246999366871124047019267222342411616118730301421024424603067088768686972569754255889878067123314591965211944613425695858606625241651771288822355317137246898237034363303724059388114399045357149012213020799664434285993239379461173111736386967054888215187772198705311804080603283343129851324370081406500491232943491419763592345453654391980599450804724764304472349179405596477691052649709425147664167704437782479325859286608715725696516832624585594353342250667216608886594416632150878112918049877739326066510260867216250992350436291388958289019538570655737164877436604543014006262911700328397036220376286735656147014621649677717671832909773000464052948968115841633614590266502400915692730749566570448881266791068034068725583753249400309356720337503004795109892396744080772654641175267722729121804596764486655599403747107922954079922498415411362506029374394523380719100411336268574276225657769243170553608339173827810322580396953213581501468538591375371266340835438477180892363672692594593402923201738000288395164555213778626043899232585648921400735692159955017801211257993665542225567943060205480876210124696578961039936059574319909013969906405179278341498778497185810566897466004964925249422145907266699575454907473512220614875267544228847945702860595790037943581284116079645512603174617487126478105312584901925062941661495048974016861292885780765351881865482190591170415837455673070697356802449081596764711171248489187739832998994208606356940085257709251502076683295446030310701523221879395793059467653480244938516488045560393321380820270260342845755358060286371011600413721533315984640487115597615148191878306953150407797228479735116809401799361976489279146173771492671972503155373774830255320354502054275910382623671715891931304839236642591684513433159336524505880091038619882622395443154063467152928981027135565805647938742201777741863335337692479300428822166703760388407809714709147029226324989665026620691767380349116004935847507610241064925994327637345290066864369412756016284202502294927029532828753642604307150840717262628758886783623157665832264405618168752636390433480623072015145160560999175035871546351149202080105052615888781121855466727155262313505810888550363233584590456203883336972060782181693759122092949440453174863369527865495081948995520833455507860703860510304470696405581565188016789809730950083596411077472677003811286885797668154324930840090436111381738569610282442333804581474938681109805006907849616603722186801304548530893703936858843687193895252442259312810645091613144488128675492892504483262107131281014799576316496874763147189279093630320627584459006885093165977847438945287477179229211571394762002729410475236153819988319474923532739080605802210753314467084003132618172927672524203331193005035827252233934454165926637886124417221933120461061642089021716874241709854847319934164900996820712798983431837079404820895147540749966819821818724726899815816525443563188729795679449934483246752769280187227334928876037717890693066714990377943517127735549309347375663289888404293812745804181300376133926223079167970836289459143224912889755926247707289223910409724407770861550082842258031591662133043641825341133876450168303812341485661992410885090534563742200968731302862453377283044918041518614016370250781723423451272202161842147727385041208311756447998720578657876305820581173166536662308242127863685025231627755362906154176839050563208629619973948272436330726664721456220196070751134833978109747059174022180711926327352255693787237287272307501981368686068958016234295690667252734515267480360844104834819232516686083722706470562975070317431421740178573061274298626489148805692758079025381985526608900604858373379411523492784183910976450034940709823417704284792028351173718913404314615044353055056984047960382320760616487346819875459489894747220787403362270663256442460857465395931038184322076931419403865266681074299890312273585552081268029377020869644713731820376313750898129401170099790170288923944453350422741809605675633502411476708194780828828233776099996118602536447332037543134840510256502059469642681415518106040130090621773175910163033755972993761581664605984460146894566930553562967117238079605188952124270333584862728291325262728591166797760847739374297351294952510303625779077780272143960420017557927855719185121100115848611201540587116379784221843964902773581308321137743186590088375638645055906153830513716342957240468899584771947824764015722880032870481555597092907302360099893253334879781575004504146862152513540805771788897537685908109430889048553131406139660822098074512771917228235051977819267586420616079892687212191933145546584842809329699014356166730538851631360330971093637669916767373799457576720028736705563800003374798765067428629689848742696412627454601096287027259727973618081622218855200770110610928555845248262266104124465091537451308583190151972831623408446584888205006874608116714008997176140103920554493490644318190432241468636840686035907146374470137120838093515047750893724434801475605031484646282217258836690917400706730682059520276661558669018181217808171426034757244673390726330818207498215757126552054127604740871613853145894989661960745850421615249066256380893024213137159458324249369896251137965495748108222209818603338712840462893891460030596956871631750162111711822463358855637981690055967962545777811895683419059502879183281402284943111036218442032700909393252761085253017529138098113686927421735077671545030673166625454845963762455599191569782903838062041257167684360554605116859933093222218492553630472445553876911783705457675635657892189251974924064929401781519557679174874248946649284447704508441589060655059904961571334245915333207389332540172261958923602189864276119534649368587075610798385497801819039536873134329434965694634964586412382617453896007274577700269057009929764064791130621099894395937591012617668183447202049711497725508641169566845338866750166499715491005104268315927136666987271908004821792749173418082505905942793010011754601202835572367784098337941771516577574838325730275591800894380859774363484497227192088993182769863168885738467903965360373589116926532571633315025368469164652526734356502876221614741743574002063281783465810346072149941662653564721102817076510889480522582084157837472003172389279162052233967950480755759771328536014310673930891973866906828805263680990813607982894477664148554821834863595931684644870496885366729961125891673110572868688379847344463539810707343403316222531201452442173570818644207793134792346322817754665050361948592292109100998432933789694625344363565707980648827624209078124646221645877515391109793050978249067168984689007099350303652710606574775019771512096030248595634645516018667395151021099811753699316156518594720679864133884549776589481905720278631330897983553316818782208044057729095573943515943507255868623660494512263920225773278045909921129726828819899666542338982799901001509147884174948267084691193491481925607316061646056071447796314625742719874837154673970617988190904401791774771325668154617843102807879912936614095469310177073067651283296642191790145303905822902293210326518127803730582515511822203357173256179868989839019851228068605250821234532966292088627253473913591671324966984624928062853142167441166994350508949422476905373490404232300745977519387704193320428955569017539495632032021553169607105451562088366427974318064950664547815053429496908500605309859474868417469116241914171781447518317386925547063172584079445076309007010408505440526664726819420084241965635817592484299636453714437565777115569211964432363023746200306425944358307663177602441734646429882245361689951641588867599029494532304619437485790822858752164949961318933531269479712671347748685580588336062015755080925758777835881456332071500833649552008335613811560645133880884990889224607550129978238659115797949191012535137415546714705427606363295498828340848403376995236662512498497089908341801119535870046360840266188545476809560869629030090878731814889791599558546367798636307169404689129299785222515535735908308188681663312288471098316750073814225329879558783399175308269036719954477756216705991269305812164749284718044442775380366701273381343324118519363396643110546374910023132529780676770817765509639435985423482533547445346719967408545285556926292316338189919845686539558384494342634303894808795435788942984287283625630776347506806251408248501385372974862499356017501473797604198921988536852764994100265950011637763210281046969777676796892192445393081412605269127403515000975561126239661506809319705190298551811960049163817897785591087560743501664755126237151882016905602957524394981877926840915723079981616204405916770530420187632096705422543873996481198363203595778214874522480220306628447017956484146922293089775995015168434636256685391390506392656258746928930229574033384422381413834544447944556580994365990862675832737887283561078017092475439729343412123736807389230966560356988619892547022051786304549742375176136657023876872501426732477538339390627035337005176899103071694070566055038177532311765007380319625229964354050480850784844234221805689298831650033559596258811007887795777704136342819228363687785913429414577681477973618006225629005258148890578049518828216546623311163335588433017982757332526859610163293950645872222777344033972340636451696232881611583241897951802082840649261407964970975437479660325991204778814992419244490737553835159868187106070964810298642857892432375106876735444622558150420895129366193891829405590899660939699282942870530123010395301835536687090913564385232636543036607471174660759544864854926432687375614656440586546172107170903934930298642401613219521549104408571352296409921468381220862223328462193891217115918597776157741649620185304528370128901957091239817224453176847382406852489562871687275800975343817817101347338682001110246178659258736053322896883962761891055592186318903728936085796438281659259158209860644808730486555756269396757767311925734133799577737136580820894236291026082679639184664196630210719377243241530837499865168139379403193575216825526712310722586474409181188348104372050758277048594207718116353616075445661696788245160450017047606423451210768912869369992403793484430524181890776666522920331131262300212251143312564384380328234201426739438351683116010523255334289654365064653661019615240025103962253287219663743884569157682347166399968287720969217942222887155924981129428592573908039087315941315277875742520173468034047409127903374937827636678518933394683108105067171248369996256950800176733282282545053534651978128213546662708255772058706526547447181669730242840091032054958353387259692516828581430690352892695619376067744788989538388483844647231428744672530404536412866741712460769183122733480153069926494881868838838410942965645020744538992733712415360006490192980776880497641608144191261468446988037750052083908590233460585994717916823728208419507975825150381388933116350657692261276522426535724737349063355128521815722961625200751330168923439613209432214399988995732717453292964356686332128647154980247921072425595454087759535727892458363658445575174965982942458476405398457444215114642089578154821706026119669133682512041259097526115454461872844313397075016244149043872234971516156215701694489677191217521416013867956735069161362845746735580076525604137512667493975912561224387988342502220002980926984663250950161060159182190522875643748953429164035354261516964968278449416263507129673574793709597570699222273858175838191431546112724758548548397019843910369028019771630829671965553966734965729594938639727095625589085727245714553288820049811087467583273293807281986382570917636790718680564937235884983981539617084023305729005174522462887503565911012155486173146134381218504927174523802124597052107452277396410415543506363650347303206337941897194186333651327942065554579161033202882248305961386118604673656024726601811625202357206535847281947836585938343895449275783286200070528968278351018014910184844875267131474412350738403008781736451645428144748144918634074961735414348735531834551880826778231507848812890624669724874903989511100673391632186706565316002308186420447962495631225392311533622382694594911047576120902389701582017912979034661309407932301171458379312476202218183821537211415669701103617126392009723447574837270835851496727856895863817362267427240490128734713862602895985571447497312953145245339190090521639706224229391777087461264468879692279894817450758862144654792007290118309893183571631384917249158641667458171368163709117315887313712086860834045427277170422478855001236725941726104553034449042662007522853828914076974351562141924707302574735355342212284049553574980624727053108508785651963855123244600572044148967744559295561265633766372431405320490752282989133652286390092999377412838525030371745987635215108445968799554345901990095554961641611979474701261101265989644306340675132329494401894051458320480578415101444925882158494980903070311310049143005972954111395372817637196304473873991236064618921404004611123326373609707199385070662644044557350177428255540898895888923138611166821615535934327624239246593165330828300491933897902974719561571287265508818218254063304717447191323562788961589385708472710431330622703517018387947095053732275188263131855010064425735236637119849729535133046710401193360424891861192942678881153708982414036942631953738959169624742022448546981321433241767435462864366574191282243413260476983767334496230251114685262694538667859202937560093583253964074762698990016993047147499337849739901589646783134628754757470943726318829139475175310045678020107364592115545862323429150239008452854294587677957471304863330211191383264405279915608725999346256287846138319293765127025304263045176452627883893504485805202836206996642379816964607931331401616095027167425551131691195561780960894071243851271901366566238357993535111066317871179041717538563352401670207500053955425525563494258692708233125229141107067500507627377862919437620631155906491395734993141705529921022772772134392427347414659180798551816109724224167568754126162824767064892434638736040904336500013955165541707804814060134040432096891904961419028348566928211023572218107279554096721423484614008897592702010682511706907518596080724971116766560231331242937574459674044897469058596835451339463118939075547127193680862841551844199516100439281787386138706334252820702310148808336309989147818986902149794412187241865610141369465383287912697925556026208820465659089368537817777242641173817939218260153005892655739779965194606451797388834270960395720996155851820467521286592752393364967659602923981970265797378110908968695834975035364973812775350928855787633210307883460217038850302600295927031220114924195983580556395615904976040350572287812247490377803686435777914440656628402775878357805160730099143186233684693245989068562026166892711649828165584766716465915169288415366555116375395752162149976333297582624539588051950822970134838442258560388324025524619964693629216337373212551912959489499710732965943880295675921709147167932296381001043424895931849762093823941857843024780643814042665506152687329782768891437405053267313076715088692491831439428738463501880410453789839759850400956851453613277525833116155162448432376224397519412242546162777603231140754317371783550447394361297735464417271796717110268302621833324225914326386234438361992047314319357045603433120028196696670294880336880766551506422020109317865621449276176191324587699339123766052831327748246301071809354083365177230381673932824766605875550850583968741710532360839695257910845168079931435113083704701951074370682486632659691922333656718522139697849954602844771180826398991229325159548784431571022981645440695708287876670641973562487875848551922738518948752438091601119959889185406409803207032207259714601698032010072818632575768257920656713549855650069645485001870380361522527639715849279898434042288886510443496546305724267374159916452619937883985736708612766975563622948152748182939883938273347525478684272567194314042409597745599466135576940728040637950982353086753719422069667800147003665488650057458621608258609504461662383108637688730744135881894429059280217913988765668223093047684291425592161733879474224328058360154849313468198086872097254502161116156388363242846734331886196963882953145232469010023171710045948652607884919718462068000288352125988575116217676617284834377266725611171720748126382048420696891847343614055038805709873333059994096195035205416571838073079650504850289088786026058594103742529436164595794134469550278858015734723658844560025566395490803593276813923646777053914110884567451951222442399127649650729626779499691190089942150255765439043780733156960781650363864166913311193845225507121765827587424568196643655135698168869713165313920175497210534303685384938075292728663895058345660858991001925914289681356499071134780813671943340478306740922530945227133287040796559938869661219593726337251245552062196290951531861249889695332272780497576811164579549728369474073860569447192492562251630899934525523670937891003971492321928171415191257728621822843314079144312360701591655598532405427104019037117808354736266286138216687954511884122848663146653257150697018665799982758276444466361515089447023088002566774209635185271547394665580114689958144128174290087043500553106940262835768682143740279709893852148617538253280841900812340059494295080032433382285809574235312277280358546187533625659535763791377205195422107738738968661725386417554694682054219194702650594867588709849298645786670194118730721991382979531522656308889502500455380363742991136175186161993838473137828154297256089743700417758631790927866179365196393908033007809417558857915013293860740128886589501882574990356766548064857297198684974315919516026145285281473613713624133357431795019582751300522127585878070671249811943821073664728923265033169390916348147482710794282742024546746946426343731173285396096855345246779876799552991760842555603162739322964522222957212797498680649255952419845575980424551705114797371030602156758622457926904872590562612437908341303373063594541578974516543708049213518300607423297741213634765095014938188486290763738123891409170103328773075052929590146425584054600484834263125963285103425244836595162295383355313238897893976368952809288097670085340676619047002658614042853822632150832526907013227753953566998215121410177727570340008199535824924818591415803631007320139052474377534045339483153414506970067006608546145880290627040260702103781523933196686940729265663456809635977645149909802935548012368639446962338946997189425859151235112738014433855830193424882497407499328635098072089399281001144562906459291943062445185577198155483574563379285865297138905957382653909080036035441025392836080190158752748915671073442811606108269634905203594180600566748915622527948713720371349758942223999600382392921801439354260855701146264121648275513583451593207918533841777645453273541639659208031359697554987752643644759169063015394198135565065271553244532257986549040918116994334963583544669803437654613185648938271982789818179013541198710560230050087180068965827856814595794376100936900327271047012649957390245627941946009326009180554332485626854233275718262467812752486314562665658035574106805855630008185226085894314032948511073888899889604838617600164181763514510161665388549513508613316186956848064467583272805540576856306697110947087505975131176150324347045453381622337735754912379586244384980793021641636437191432387842914339682034205085127590636608050883841239603395827851367220746306134404524695654299087071124593878590183618702562372250464683353537905980518184052913538091023057789399772231186242160769272176859967413280256067408501689046378537786207319196118697132256967303252271653627107430174336462743903045234507780248651779756287399552898135093385301605553098619182928093620689836913000830322543479909531285090045433069359975237039109468186099881651452994017673667162646215520920765158240819607337307415349330208738245442797961194171825782853823495823093096438746856479332523849868181799445331456805463113322987298432664626397202854899772445065964572971639804446945911127054456747711556241532728329512471582828125201698298750573632364534957543181554499900301254127521195752619467880908559205447281662070635398748711699379415824488094769046381146927024741807271700955845818741099130128520550478963268804570049592588326110743273736950611551296929473823026523697907651118279203219994857260726245365545462279172269103485703596845125975541938023427742105411889012543742611442574959923562342208169367742951126588032642706697282703091266527931235970023200141419041761001525432289628246857150254786218958325981972689534045675023315856675813377055046499844278178482808955339529714627687476967920199492956801927778077058694698521884834119830098471824556424737566843846454155228642040085254053204153884799870259091945887137355302189664652412217641100078472818082507107382532133467904238009617177544663593730664469385215420909093627301993719055901437122935362729328405508861760810743674518487857930072609978566621015457415805115215104140848165719465442085277498635574809587678381501623805042660962655596278870374123078508236209652042706800029244102996353263476666238601698777366598089953534716384195789030780112261377529927928312865742423126982367928134904934548920162437507584366043327372560893381760557298624170436310404187927183727202364762492241965409134732772670634421710077429564065536552320609699868221650803354317624443221503165889703680201177995740906498763843071379784131486763008573297268631144230615319977367033135346158913357307558997712928780315158280501592200543226076667611798691135980417482261546543352682899769904432813594821178142210832431775098415309232808597882897196693044739346625374911428601536604191391410263027636991758618741623243857857439331845487278972018887133528875795690885569976826841699928749577898326882397340514998718502956541146283547503353183008809594990164393412967376911436139366976211489912268251585068029820789892085029274457291680349735776609653927559558043792936911033473428148946073883931261738140833082012840577996707457759929689666620944142666999801169344155287376342220220245698921120015574696038386318892902851850182149151335633970136512772186195812934064895501622719558626989870110605671675046191468896780093399982045609920856525967404182251779650864208312848397318937429260873459848737158203189858281775892342756217406816252608591453549963310592804904700998627149876703724609005263360682322531574342912697639402906996741738117537279802798625481871062712792293424186027386804341836191011209224588239129401554798730461920041426569794784811066047138664272660897168492585329769864428314442095600698599330815385376792247524263746245998441589054023706615168398083562703580680697700129573774649058443276124796752056663905583031502038530566885285011988102277633636831894144599372682458602050706902709021210142172431944272554472350055672551231180652309503734468557683442531261231258608652243712194054353747384528157947361851479211180196844116752705645702274137888210754626974014277175226336638997949653305322888787885790883092434315759126338314526051730327716098539972652312377217564249051454906422462819286843305291723932472558141826651388387761493462401951271230935060704129094419666733199888844597945924161477559800993076551070064134777847238931849764883744244371987617452838616287800278163247216817539310796845025957755374583507371733673775491867298495487042928096824739565431643225332139742369883867551837716108362019666328133940682464976488203619421198696807769510208452290117996572776892359973080720918510755912936540586313590777258620290746679615385237883335378593737705305666563933245232670449575571889239231575744372530977725666294923146880233976852592182608134270066076408422937366714076795211190381017058086083380243661572290184630124448336854075921047614743897247577565252023314791574040689343896725673827317278642746373905985290811774127696715644565504957202306920287404175493329995998681204477602394811965889348914661742810565991189580348939526583391823602144632447935397483102245381092536130380585400506628878456586058746052675961675267598019088364058889481530874726906012473467923255668371323303912925667343534124480761924192110486884726021783551150599924788405801070372847614160449948386944439090425246290591064810282786237677740526110735541844097587812272331678369857012292922465811857734858941358399949656475559090588646049407564083672867272164789770791559736827462516449565452088657230214912203882105195809640224444163006064594446335467019960945379082623840271981631689310934011924952061319741846383316619206383607581071219946480733672638590734423005755516435692864525003603160191782278143882611513449810022779363655838026544040065315976830880362844563936202746090237785329766628817468790044778579189713395986705316655799639227894706280352341207520516680337823393606134928232388440511030226736677216853364972869133247340589659257175061139618080688172107401361154000256316952252514810466326544855067723132668003893483475262111959616749536787037357721647723147273295412869160294964766732955623347961747721893473747283787172156942194042348000685642056274281466294031452680020542149107372073383242868910303713620662234637256519453941152632996594903702955671991839531630725682619609361422660388187546724149649445552083944729028621229103790396083517489386918746177244926022231541329782056928152087164117690785019556413891671677466195473738853696818724050215049040607353798621150076912310195737406329078158342183269380571481536042631360634541428592761606513665498425055965082285839395504906690355045626563206200789996350032424573214823236055962263253176773259107299530857156831676878760174795364716873668793165418749517452717151612225299853622939717761724669343981353256936479224813797981796777628098512340527021648664861224675785019426905232669324375702890868543646952015686792213094719549923664110407440305611173818487980707221225793899282783269985634974088601016029532062651529080784349451405631992393156387671926499283119412534310668368813042213941813820148468357350450458997617961004607880996152747484247476413401114633663390390160497894087100197293243616005076448225924795392060560287180683664469709599439532654824882293678458815281240161337589851035812349730640723144536366723273211677821322604046513279332650667659189756771919262481273553830037235058127907839376151431361059719522434672347334154580574372318482662049902597840306291574835655558328285984353953104616046074630636173125477362859785288071180071518982028896701163189221997596542307018852501497760417488806042741156817333823828693350658377828981264807705482210458150028385163098261466023628728027639880737913264325971126816311242471104983037201158291312664687349665011525597984932072850454556398712344322635235276802989211785808474140204892648222560738188225389906285039394036421768309212260094543406448887560918112491815480563063477399791276438710636196319811027127573792672333954543540223170937700643620275347734886646537069083250292866382319969761426548242779943861106820446325392326526239389568458568749630328987907056629989672627552717713909244880266421436574171414694673951821565051456450864985172499854268966104029754996076462790510375346616475975015297055901437796517049292423644936213510370954943880863182841535450723718542475787931673137864646991895702153720086355138390003630733181000596653800005082840184237539269120336906437972081837553033572012424073980856607412697171111591184040495860255655646573778799728128438123478201295319074419802881823240599138564948926900620623270037761070826796646365248230900868641841210727584382155441506332914728577018827372138616908181468791519857950869144591996775501732215149987273305760421332106129115781924966386992563700689807426161736673891674216547772299983705193611067398183128756155951033074664714508976186107535700354354602782177648648484990923555991588418395608230899847215299291414854443463264782779024956875039637733131515976304405876956558730394004012172003427286450258741709026601628170781238500681421861484303654038617751834287854716533459348162259621861125671351520687879384880411092094668941009086220193652126171697754587214871095120015453755149783692608904290741329894976378823105073531644487953189839729586804159426833020804690940035099380194898717966760246152858506500806342756527447863444440522920123644253645678026411279960188984566558144762651501963481476662380122426413582488382784330125054768832305058659817199540262180008162714022673591557728303827124103868655956454727805775637931038550903430686015802916048613567903084355440323707230447662266017108899535415480136015539336232256564579164360114307455928363182606845638407269308748388567571885820142582200380593250474119464196118300838849017325414642854746810295801984910994644216685025600552522263650952210662189522225266919785136692288789289476833081851267158304818241165264813131012289738290497183604912683802685340438848703977465663254640754752382232112500783986578518302088670233364769257035343039912339352555759411295366399772188939425475664619182989386595613423297002009327854578876790514723446149060960117749458355832632778938627053464285458780773097030485422565323435052431093932286818361387263508641981337441809953103152645974730759072262442607991898472457272016689334244622840793695055618609525885932575824553348995300124327858513243311796934888879521786881152442214852477918722819555979067485929559818100686446542040906063693729279365685539307815846049268232457457780935666957205100454629469453008131560194176588059553754415560629748729719689334364134064701168367237131094311109455411378900151998321952395965176795240437060006661324744830439392837766725500756778742938983108894222425490209496306797113416131720047067632237325811448115826212337085612643930326137627018210926860402122629968144342425418765148390835757888437617139524118496399785082677127556241990390776646111540633743042389167336881996899953883369567713802944916430669539393875979124795630586823801902228549414565487887765612948845217554851602800325198747679867910899252234534592122138938833973048445316322889323048643525804087932171921614862753566899758022010095423484053916664066810990436558540573584927980246912802787799652080031252146467830421718612132110194062910732313089962316415767613984464434942832005655641877089019311564442318329634642826864726474162418058341152976121689235422837794327527161467550946850648662119181986852241766910854603887396956098032712488780750646499106158070993540053890518258390304289777913279934454377719082569752929373173862239007610191259758423670575290653740486432002735475411673744768211846151321138261804469108924501219413346188513421827465304830412797616594013099092631734636208680645010965923180651807177344555068573370423390240326991511031446815641496154509227491990937478908066562196760285029695307372918966334146685033456945595107605785650441993173933968672786862606518193119293664223825276614537434948504885181281649974941977082775271596169135019932855254631347589189469915783060329956171785666519210321707170928466519866860051989097691110603939350611448367835189433138236446492565729702642974699220951206056631821754477682527488790602673470169525513945668418871086826543425283650661924943983017769863183201480083105555012956506743654955171474269035310783536977534449325989231420578136589631845310710914667676187359545172135084733639369115173858000132755994562433965240416888547133098599693774686154514543418237418333725482636546332272980536341469292448797114361700799368665076993236845006825153925271317256585969975509184306126105366571416990417752318766219020255749801931065368670181758232012604432509138295291458366012543831910544266297843329774724503382554416408471091171844405983888561180045141082645738948856114347033601142616851577053749272549041702665252162700495629511884200049088615522140793797524873341059681368572559658931071052024410670227162355155956011914528399024213232171285511704110590532882708573811601156122298812138795179135083041701390921475438069184015606444556971108038353788507879850346501964352950863443876385690854410010086426611195965581602637471346642638884743098058325960151001476632331055828937383645951466699833900241312733377309654914975405243631795177448004097024676078559654791408537753008081581429054316670373917445746714764652870700235407775582964363307305003483024187247941169110406561288118705374728072133721927509107128749915196781159327867542851524823672914310917119521860082929756309175416301656921694351853309751793937321475244213426215936614801163453242992362668564914443538485231331394320515117195017329506404683416053900815302502927929005815827873092684653942882139328039321027740207015646847745604187478127449625425262727333432044307682632958713307241228796296316280268401863859095752883754633522999946184837464910697474841189984872114452911933322179454224629219860623127734647595130542753308749464123548548080896984167115455865166120962575287752406105720880310361284624059359760423976305845376291133966374983793256510548196575151640713723164798330421367577037445678845713464237371325325170607849233408471133731362808119390834365760552948357360012372576657121156381758002123274933691920153419168667034027841838935693310466003687033504912949110467023805963572994535597227615431560018748924290334358929187949262726851925928498774682403154320679053522379662497591628799998231389322011362598461905086094221622426924031126950640111164354024424327741800476714494296203720174958181642422121190473255683935771113685167407619364511026214336090868975719120318714989277459085356247633418018241055078770600437618044144119999274568773121641553014863849712644674054839249850746993019097240605040211235083170607167796244694321299075586142233388472148973472808052567732448413614294527286404091988776339439927708725997454221191779702042039034057688853928386093720785460794978378337713448587891734844102459273436895939267974987252785789623573059666453671964559526745086222238602730117273890211373901092698598863289379798200613007170636845356064819004082879621721349705192550752514105001689729064463011994391449389030114262271252178357018361873148926849038478830607162205450959547540608747311389748234261659234574711649054016144251883553952288358136472395027913424898558028604474431410149691446734887523031158721135912791858915383644716124669009327648545143694518316442218581452375121722966395633133458326776987612641202611047110415285585070617241714366738297438964153228777444351247694912476830996665464472699451243258225935230012688197861635144658639918996999606580116214141649215067591397980462179674479076167770222057285880442433744461969997292116719029525986504558567629248415081141580879364109266885823790174453678157379859739294747228740097279060984528255859353886009568300320274040093595235762031063692962143368864977158886388647908349869184793949760057948026906742880204662803110096329313595102509440301833197616412770909268490397581997475866168770801140810509567407402154041010636575961886561697709780039401316135023956845952092874273708302482516345926593950275173976497575379546315259639602446673178328474071270216509800715773843906830106100468150933301447081965104033475762093391615824642362598830308967773681973997426186212747873316713952834025867710454716084989264998004004045630228786941393187196582737550423107889384999494284857938741342674471866511213852672884849290177891315976511376317177227718786800947721421713929647880282573145662506381936803415568539143233289047948188067536990237695346011377199290241088257947700482526463667398433100941202330289167324629938510899236767330445645291396610617694951639555198104262424352394008222829811380629519613806150670674766464978569666548295273787833120493078972899636575543526296817202254746263829204722423544065026873633844582040381201826786855797459794650228068569835113673247844890986127732610157928422528865013133597429659840149224182699156758565070154867298751330352061296460900674820909467475874654010990277791000964344724709978227501815087609241086981050477791833040550063400552466777373052876600395375341053037958307622468417767076595028152733314412203727987266628154033409588488286276695039967400264637605620213505908485902210820959461218237604994918622581748609747322385087372067827541931589422473843324632858387699313211398192842273381539435582018954976228159137766573634973751612684316822399864569382919637218628019708624708321120343912788849252834075592736288330005183099527737412965935272443094539142838598354340436215527494699217332986397734685448581473694537184658917261546250829951243011224603472128163741617686341799292266358599845497606041050496897639589709854456746864101372890500848885469826505466933341653523687518682440430639257548210947400176958796410833154384858836252582872383412407943956594128240748847567961552843105020525981980406290395608592408316605695105025976531379230557658350052612883714092154134117123479983390171056540422716296928748584241497357842608751900695715852766408351741344852122453178169712338966737341269967119831562389079765996965326386274475635725586742569577785391812747196110873942350622415691457890808004764906623077591521218880788834326641939310331999076871943032795405544620769060322882247544605425555583687677912075850165111074624797070001845455673736320004495119010839546549804713875555804081902401295916835910586282396633744880405993528911750418577832004790087881706335138800177915597928102945844942134818301644406999043464456695869301901340051404388886162758360589722752137787130731561227526573106002944259141149282360034937730138944956874952005816005415378205897769789870830354333897725500184009266503191439684100194030842433830436026311897242193547306316256749949965718195300983816510782881225802984718885412487190068192998209034723947398827022492390220852622740723090830638501975647790059007323513858397684230776561327899844407677908689260606186368366406136505973229219556666807769811375915982160435697914830494753825945013011802430701303670687685434328359385928937365528686172706823543786668594096717786685893643847820548182736592867051450885150549663775236343323496600975871112387280501779736022174758140360574645204432182178062539724450839236967815062026932232421416641798369877886469060702874902002467058039112728916614934225957547211687465034972063799847341644052658968048809967047576185331593996285015105596787593212339272733871383635249844220468200040970406391267741649353996039610373895947557473612846853960049214746237624350119445952249180202079462465258127448793174844426364871756982409694388223869296119223661916811176211987084807296982170470150475486960039992962428008630509804119746646733063363384795680926476402762114880096056193945694408917922124666949548157746725148898526282674469338678456913651071265519681878314496128495872206534911085791989046815108204626055672965897739692438056484381314529405983384829061610701851101453932539751714687776843575164481542634336849221516936054051130061814471085595891323648526320049732239299376980905560898399655161147277940694284989799308363219948771067613289041723579002806097433100263181804254041146636112137486605582419866317505341809843805814197745528886827626902187123084767621068045825297364719779624597650228567264597087216654219274100670974000160311256819782769677832694409081703829405247462636831144511389829371720852582593629805156065730473846250955590189757482882511528907492977111589613653771641361864466721776299585292103912224250119731677913817742959588451353351327154760190126284208334202822313834090938175451194064602207882471238419364162292532572672401645670961538486390836595538434060749261659596295850022722091889338874511298454112316966062395740502479823143464199117204216638217613084589004731226501765625549688058972563906852028141559859392167812766944080499539868847266042834607867319528834958164629681440648898061134238365364379723640968095332431424327649678363480755651182789268409149085980422184947399026298834028581287512672767548212525184138035029254110459442752898223550311073663514930484510590474366008918357514290149960165166756543876632810634184622370960736002094212104970863375641070918765155630217138721170902088047866150972135614233762429883531491706516364930651051835105938355979889579009869984974781591518906814023218179878606646036688034244730024534896804111938524051736084801158197917909536688949781973476206391176923717684043656871554424233423207713225161310012266835126689847025330854927972909247145817175919577523272922111853383485415066638574386931816279029989754202330160858109222763991928739460561349217330907957117100522884695397525464136222080535962048868971170564663147977367954730587855149528309728632601047439992426667089734544642448897833831134590640562017486903141829090187511010901326103560753145874313013955577437366363162684326367541125549895842303320453439932767755245941779138813844047615838584792938192847824059341699610387226182189827948968623712839563075463842061050336501367446900269816655058393155696771158942586828983045518477011974965870688284589230240092761251895322654570039759613241413042824009696419806721253698429913276379466114575272351593759035762074642046273647552765722121650882337124151045525910326645440669773783541489918843122005970078532334171763386539179426925941740157534232325429356580966241346890826395546539627634874757801299875048487717211079692178978857481577830365758218154728116777123696233816964094029600795042854975931857890421557636497411521142134283595949429018905454649513081201004925868180926594236714541659248256345867794729554555184921569192732607228071483432886111807533466644650707387381681504473972144522532842010614614888763968668631275962158681224966455430056418481145228137377982374056135608878650373780406288175964668175627097329428161958347309742443589098401113870267601918784560480985258769244934151247920150793161605859759247763312593971750218508494790734918944061055015300530934682661251083960768893599070645195777453020544552974005430054302246264849330158548819972794753860411703841486154389190961592313890387381466889114576600203041275544884332188639628916085332292431727773280804730675037105443893857166033606346962216931083465479878500820884950682179226736464865431849067178609781747390186736106519141256433402414231656938713024066549817836518497943428704690951233236667963001719734896741541039584422911792969993794735355686922469911328434133151114191813299887580265364968550929018419238797354377919219560398565627746665121666115179213823480834365324750552637335822745854380913810879892937230381557573959311355821021142153246046028543030017995810700361270089129785811991935960348705641526279672144586471083285458498839808240802240556553895758279490896011859838864240983773211333254135304191122858622133955930133700313227340616962703878084946590978823497859045343646021597389071248498449274730658280786042976351225997694308958509188963862504768909543058421169930176443984115516508099486081290398933870506561414426388484917245178922854751456860318553915245154849505735548336583887288248442321521980040083364457459473537597532560033825412188534548807980699281302696606308656697472518955108820038533816521138879077655916990204505784499481152505472517150378824698322564244800772449050529918332857594837799241904851761211289466957720374686833613227281951246652104126125735833521569897919433632387831709788519047665485096275638421395630116696363868175204977634170651478973442011613973406572256897642095439008840695000810862772367163032296010044150605632090049103727655047178812903894969800436587229380500209565668914570059627278593086715694645701034590477178016657671568620685699872148014222726975717266593325677556983606855212578759566288831209740742729415423773141910178616016219387396659727490070438161588176372616053321168946316738744169565316482502393433489582560106898240850019371418004560195951562873145184983551358198226644426073210254400581828368040841371147875497935308302395604568788595517847078079614453384743207586679818758017600397580330625134911452673638049433381073811235357106804694840050001492115213308458599898999722152421507397129340383434277098018364559519962082302490720616589693958357959683713303473084339544015616059415597098052640169310284090682795433928356073947614061615159251440728573782915618782692604949611754816307247966969379248935651850017415177941682753975060515796374477071736170512434276371388944925028065652710120802877268318171252966196678710877330676419863203724987466371994039850409943952775188117679728847048840209405257244707389755999710785373608841389702423724485546170122745447888484108146829599523295020548915541717354813254846349091247858026104785620055859424612315467054079351624658541416124275043694626162063812404160103465398586902542419443121201244056545378169459519500475594894776919875214943361614130972924619699326684174003471843493113788360957765952148789455374837991753870341331213773558168727570839955647244568795616260874164917682802286436465942391431140128099672236113495309024420381129345816662110507850673518980065183899923312358978213131795284111270804882331867356100524791013954514181888372234199557000333800318424191794714725954383014238125096399962502742827133680120763395224179799112682437352520843010766996359910369878581480173870879898980654807807251842370195957517765105096043910518145249741611126416509899217044472846085687801294131007482381318950029197240962877269531996185674471245428320889110765806986099769938664769094856438412911821499006661506007762222378711156924456829415971096013827755690330477347563651691433096887094140410589337708880424240765699026307125009756561716638424796571936909886968935891501861720073616702134135284116028465661575960709555843091990332401251634712845166610744919322293723234768473596769726941595874366440418610437549245155428327840539299137836707691328921572332231541443739463426923209444638709128342003693698442348392271529153859314235120193716253059480033843498473893317395645570278516633876010033300676467000063332865963808500272374511013656913933790432523762471465829172648744008691715192282780402697163123980989530958890696756833080817461859217828737993495423688382207877010246181151613815953203119584246776488453737937568557881959678297235696527389777527792231327114013868082629581150623292325741579573323280937215715182843321987747510704898239278671439330219793073920779502534851352183992913963793348866633270312304421745061693881773656878723042487736360495048821418797347644682635112565078880367346272740903498452753245577221195334875191180637718561422729107509890286401621407419999092316298759764202962509555124585305923284117033082095474396456185043933176299571302366229756233438357105011983111643158011968808131236328939230099976778101384843311469182896601575834334667162520754076310726151666391672980673351162889868539313640103937133557111823289496634767149381182035639331634098297343987973082490993311055773408451478575285838443379545947348600584465206182040389448136363374396040754923226457365145122024277203106490571170191654314654958145781078530273384652897992012433337670157713533920827472368027271324108520871674776323113104794637773023450896506181233852765631011854549171070535174099405772351493882385539513913515690458667409462282198085526027283472555931083049002503696913349208121898262199392938517393722344605201694430890419324776052034923731480245136251452471506711808038520582990456133613541784558313823090406685312159654136445487568226681353693933880308555737089161092195175156317525769492527810744308076775903865480381567660591467872063080904590802427588688789090174571616216748475737150556174783121113289215056118724871619159590387378073200124646099453843268347364943663362939958557667409005870814436856799220596703224302143220608018938328352906848460225743061421395812666126842097134931545679065995908792982747193640057171118617439885086746137688089676583658685134888877272065335770146911374632309141000713908618658521531731144819278857715291648509193279492571062700307736681479318707067201528259781880181461328764829897379948258488426701516951487148128729120431310434929546270257780880722698984787927237160336989514517353966871107669653933874151357676886292061367441201841612927922194453480120037927462105323165634379876125935147438139905309617698861804582588760483494237910713583326093639999662872043933411135103253551749681931478053113561442648748155187206388707999781179207844412916893302443614520551896180284500779585606309657531266963833574200545394096516228965447532511137946524560141867167325982425216116670965439658198325903675483186500200912921140770161611243272087798615015710489330606463728379741095373606490633322904126488191131532179822542667082959440850654588511053930544150319745269037051646290883688823853597494176502433542482895865215358229335637206509946672790139538246638619109672904791464707830321689352596677359528353740674660499932259321532486029897039063182814106757130024657096010041618817871764991344049572447690740864266664308844328303026867743483489142840281979056659922233241260325422172369221025427147631003868374204899827439946392102089502871254088601208775688928173358979625361407632749591837826223256853303487814586655195771262491905084139978866626481168116354205952159237687214912847593097713154151976001080034264651814548329176236111163755316783840523201853825920748737463342995605859941551304338206072869369600902101122263366430667757901502218807767194246358558612463784832011890371927579117029663513185114652611110653566100620618182260621641647710891856087986720824624224757853757427704340838083054687843947852828485781827415204249934610793019952838875863854751238354868332155106520251075110157723236673077923996320705979412595382205660177747903793414155569531573050872181601826806233029073404686932838217707634870643675081008492129493870421580940322133422346452751659649009827129327580259261288203208288048640187092920748572780525979216262138012825516928274799453273160346823831481609496697039139287799758871735604466831219587251908133278722902971269470186808176889473429119449791958210843587111716473762712780159032040239779614799066140392115636767467288726307801064167448023592907158264893584112648951273035344731728847283148840914309119516650719257929636546410705864824426064216032516793107401848510790146147695542653230770792578732789500044234294851626149150442709502432339077052570104744699767856532999813089829623898774047312308233159405803331197989615975328243119917556214772785036338651320273733469969645294040119664975716594773145333454466088774407008475501952404550900564963138775868950536218596633622694306993021696393189562064558203614794527658322621450174625540678193435704648222101272048473902769404454983566255157735264757025936097731886685240324116260137885904206699981062736466021678279398421828327676444642967782043888405427158569842650597160327808388738795846043104759305735752815823481460339220266707502511605003928173618441836668079454197886451935426031368365966925520365789995658562787000026185977780292504955933383728876973698823252660464687940374478449638080602814649100830209675755107430759840130948627509280313827769966362289051665248830310450193110738001232519993555521472576495723142503079704267457467170714392194520574413035106171136767832011053709538297810317851980209798268000223026951271950847168978733689641680356949177137076118598494268042372871719079364896114546840199965430988449609937116382784963688438583425934706064451482619457474271271059791431924605904033896822848854098627866027147277601188876940772991162526274595747199653788693314885762786839983580696697338557651136695533846857812576354291724887083262753199591129245814398358688796852798530545377573253527228319825623858458564452267557620072096086236624386566132762199904374574299690338120392806367931070834379309040534162707380260881394939365527148305488743866060624594754749185206057319479593564471754519373206099290835070521395390868028572587949023079819862940183209143786891717301832095925617130381895325756196546366605290072176258702414997272765085877892395885324862834321498239847153970047452299736916703584379987902822642143764491131672818204429118236085852456544039389739533555775982131599326774727210076694871312695982703527111949103247309880752622292588068175837663801957411642292832543192559340779044872212503410145996407896528610712525913082014885628953724623902703976853989011611296525696621889077288747445047472934986689390986985428546610051449207258750058916888959808828326193015109053014149652523856726138241746198202231622655868636012841290353548622283051869814004815618357802695996763924369135776690792662920041419448459540413504012439049953457135822348655470563426833336574366729212092838650732724287835638004341441744931836324670111365795101352337945778450384525659167364239593725427012869650262325609228521881793255016311768489918295695159859024179295914557214291426756314952971609489064389112877074962303902929800820004592236911623640760126769301829195904056170433024409924749136383373555075322916474209712177224150226844320527180924175099623553200955058480112338920426341245059563171351457016249068113485485752551592794925284970534031053496069173089749947943752418861251861642690122504572756235792155357513067037955014732309786096068992673258421111931705013214962312338344284926374081481186495012129842763871054413248004835428611475160377468682472082508698974083303012674253188698144772247413882714706200172987615569646747320591287508054385659113482542111975040895637385382029389031897155086048913778639114067441420561056425720765406634142070703222804314908566149322266387593033404414822048838483047401365364986951896951374872031391091834655139817595364868281430487584255245412150889712892130290454630463963906008700156379970088404085887920932958929924526455183228401966459438935709364825895996610298466063115846811236527611221889882806881894883784718261038952581635891356453838507605042982934669571503215092262668364803848998159751685454679885979995217540134821686937140988372804321930588514861314545564601214668620860066930263541122101154814972000814363888490892318433547542432130672985303920827615811771359218033063011959184149231869540720586213568586723747087142139095795075308455209413257333532697627620446383393605779881264643433292599651523307110275657051997835362107139057332200709468528684147175578910092299854966577666819854485341976422323442089226972572950352666701895121722339659052413951982987021882764657080010397198620016758415055204829760163105615453642023835258391428735938913345919587683118420969089312286163186194286155916040555911978044620033479895912891435820912426468170333174326994827465924657342904685234095420980397995006451690623157027545972474269186933714467182490713885726179012812378574217059151634726025995554457216937500265462227231635950814531019045941728619426609349474792912841691758483138587247403662956067454758801408143048965620514427797965998195878159823283646823872448755217305085701701593264033836138334600198937586220597414513023185221578722221807924142035492263929614866404083583706577269365995448254208821719759935707892903025609365228801924010532598183065860252511039475629206123892044044697516996959728867951598233010461826724930321798138908186101422879134007732088043787838375323476642586736058959595931919210688335535639321423942245603868494374552732795208310477543531109975437763669507299095544398913691258656225857938982998067739543367274643094622821234512995344823126328913545756470612155332648045190532242477169707625300726241260141015084007384304632864337356804617013421209435166325020600952161022149791583222522363849694361209897135317752443633292276664547925407055129547530105534991091452874932541818653448920509921966654603715153462492458093831759874827491371743358168202917114177827097957325565575585781056459870625239308041580779711911970669387983925918303663503506299307730201811885896515519220181802926899728528924860631086508109998337777870275764438842761891862885635347400252435043576649919448572046299594890029288920695253582155745094115489917482700049578495841693836042270586266046651979801330366496204510221507469174245242924124617208092638000626259188677176740851840986032444226537103968238558363915795674625474897753388306492795531801194219523624416421783008202813656374623933212580422298359385807872573225891119753812956047139662796272529656181584433629131405108116381711876159676573304135534381144081372169618198405526164467676192844415465328199379027849121799800213514711143447727820504829830905755613506463710776772309523688604771009428646983202040890569955884492432357639417381505984059086357960595744069277135715470334456318885765929859101227055715589968841811663958340814871756905867431877094591661022214824557484043910437774316509699359530835416232300977624130718132035376860335410635996740318908642193913643690379097963656022702482330956677350328319241622171837177512089295237667677377122929945000060548243604388674125092416132836433472079854234931274904577755386421885081579830631599029078952922458164373705450687062809602363978872811704839935235260183056051963693002135256851667236838517791513524299874359163626689768989147005219389342088960555036573393667258702916407648196012748663922174611473491705502275399799247609880682253237556943668783793834011700800087712845721847427811438485783806665051240343166241965898144388936908831192609013850687304370815149445392571726762039562691120861977801931660204120862779607856758575291950509863387862208467606538462220248335516609688987354412157366503103177163855824490083498038483626515947521990644747366409022654188342878688716076841248868791006392297870185844458990648794196409037459897271234797288732710693337650788240321236045377842382702210146810997443476031286872382156493065644263925760766004585915946794703111981217715311065603183994468076923757021663076887342674471207907089695023569253656088256051348190830170956600187068601969515613129702313557122323818644676905717873055160235379133277290490077149815697872583384589107073002526448816197867731362341280310053183027409869133536397934321535452093342947300037974489067861535939262750088353707313242702307815835552751833366477766725001068999407467268017468862459670255166996285014176902531660009573441310012551995159400691996514105682132051809380821949406808729107968492872237229848058127770072376250789809336998686220248282455651966140007935815299498830696529419260418448785146360228056243000216189988053782523382025351759994818736042404418595907297115122943693274595623237755568054905507818365191896434959279019926753097090653555218388879662088550590792989719995349744921307634712209512490646489339370390909293656551782568603928320396349062069381462471359040329000230687008499338678827768974837523612917023462098001232167835385108237877359553222198328832986558971305242739624195192635978967453846816766424227577657081713667699237440329367194851339840400245042039527018909217873390888275542134948098151693768033641010684590595808278142181410452889701377170335700537145144301654379982627295069554578166785288119576040647390116778601799165134634568444745624107929888949862655115729575696885305294139862717302003910278740797294432029750666660129000739139867321066564592740702132729363852173677553682346355151731177614231648147095457690046469697737090286133887316811645104934041278775201996433135642414117999174199080813146202854552938618644436376986405497276168879005755832283874432224528419159056449455465199286288491412630479086189455511000614318565541676395134350852147178331135600589536832343087544485940111011708812271317535296885043615604055658513224023783614631794641808928212658359928005783031058841887256755116554272552113229442082357508245830522790224734396632422890011522488463516899767634503688063117827533393009053649123140796640678178977347094662413840452978337880943625572858018112266581451878109693536956133102560264055019685468448415767233615720904955710215176818286367629207419015149799680357246188735242489822120946521213002782278749647942130197131336298743971833478977983239219878067656551370142755224050560596905409054703276041569515945143107951715237387000204849204685973327281846628702177460395868570964892852595948830879078040300330272019911263919339648539279732768940883459073744227841497923038015826639269348439539674741911424476461817277250835856742257722422281243514304564998089505990337557147115786131023699835186909438989792228330734491052539509047694814287187441677002657329308299089281616387408112463688988619586597710885941687618526322758044318660712626054140779926753651754749380672957026464076035293343982406047421439187780694113395865839680413555906772815311265685640841738545294147212558618245987320067798333194605074117701766787478744679686918109789984119018872688937122453760609908517696802097447163433521635673815009506496695721185165722101580378714479158428484110909146535391968530175255336071074327550608009472827818568859077631907180902966878880619662433767077914661565135579383188734786431574707525336559961862358485090166435444295862234623699720530307412193833057316489328846785553216948082046226757895644349104731692161688138734461561984854897686409040742634722991959744284692917491854069589486185600321553784913956849110767919971758986041303057075059555086525103468661499654180538357392021047927565593352956394288906951374493928382955831634494591433948004906121028483723112352493420807246588097882518958783441952094151122982074188388878583424580908967395238144555608382010435796572649684530686811517999195642436793305016270903078792795119185786735136258011566186654857542597602882177111839195427243233710278667035476087605094233820628499532294525799069622914906427618959129682063580592455472537301434824411002865831527137319864765233588188559331699773079984455887804314949474507176012409893264087734556542651762966371322244693616087149339041563439702584519060607769559941429224946669842312326918286115037906616102711003115242541749597931920371024061767440451930971509387635923647582901978350085422695719455812624348900907815727946382038265374694786709814542345158621673134275113137290401123627335387592306672301826141451247572451202909362557683213650534990729620521101428870749186999830264229513778982402630330087661906161288290241089643237876241368588687992122747358905128294254727496489162065135859785455902305107020886853170708180959042209817157851949651047597467835521441091125788961959465095778988267386142493835020796469653925139778509181044097636714064824597734882896860158091921720315160979427391605678654355397921534446776077701520826738384038804323086085028598379807534316953296253241099446161449408793710130964808226302297868088257401889749996364584906690921256647004559148229760772394166430624863854772361605079610966020281164433243160932414751376984070307039228653842991507569986575836915552198020211386242905653929037980322038102334604178932798127674616655985569411403970655295753427102727831015959111913138334581188484696474138483744810588672735333959531280272425931079020667491198145153360105743118202664691337991176636950338666656790328656271425620956316472987416585088068741693317531395167598542477739210157211464596181436413793352993337896945756461266235912794467626314946384935476240279728884380206784925566586944366462173198632249132018325760424331176053038294553460858079043757340021653925521448231352313871903901064869369428644493429675653587048316773878793574767031068913751539991698861087902210798835895489635086328312811159208200684223496993469453192012043886502931159703217496805971888449545369043638382328356953667450543958373963346124552753672615560488160198838363404444843824042473736238175258757659054492498047442577045250448161967968563443392661515430082113003916817311076580590726190672927346581527952370100964369679971333413851612728598979636357488211322897229483066162593568450097937110148880893050511743587006449832781226491815702240141698041983696907110897982344465648223909210590082421911856138380572922295218008651920636152655314929974515932458793276676307399964300443776423846822814038518166918767020027466448522880619709580827350825075993711540326233223592734187665191129319264214520967532049781878586823590931700319434519696355089217690197794282154888187355339630423640443528032059799575151943729382051120470548517964752453615026597748309200407738902994010582266585397063793125851382272555340841266447241115814513454215462943304202698442890079896188676414842190776493882398953988328363184072586794346195435663205439795369679144239006511138523331647282212982266987222348027406364004366462357235696618511129738207221011324306939557498456568232513838580405530055986644370425664422596834677072056401063765240631341598048520886645727488996546607310803192410522045852949742829619668565692097991858485010782008629742731792574448102609502902008392233276168212313944188065101074374622512120112802231990907752840122103745917765380850976785363677522994226621434506940809551267035319521591560370605229830564369630602383487373445069710585149444052315137747665389243469235779311326765179469328360128323562323043992180136691305378725706904892438864500166685079950992523023093886712224878300727965636389669998992554965728817182641792442838421687305048014509592921435601435173894932007822924632012622951787709050754748243833985865845387430894707873264877872872017010664141791323002406110277246642709734999717782859903631365537473631240551835975592888066532484894500668187798591933956384351270421903274925585007512905552804929675080696431627651198191872918721497715734207061885252721193071797633327419108611442958924445032694873284385698430589603785019002205234062128153857558692934308521301139175900176276097496133163420958103130244298189240563262099638265588714114371624811452058607651763703222470554467652163545595816862003018887180659335938794062516630260870015230193687334168064793879191807841190069100816599953741590998994438873441125439724539057564815891487683305805065483666921411245691577280304835743358198089809767892144554629574586843034131593972106849048668364892730878382015309809592016027090832037365707286960863334780072799237205741606779075040636266031072874275932785936999579361582025621671783030492042026137068968008295604452149280786311740797393773189421470447439876694558726096858369903106358461260664330206780465054505185856573383071726130794290969765595737886361132429353000114262623911860931607035951218661482635084913730541855086614983328162059814533905871870990343915863036735793768096163511178377161431184657213760082678606496093214954807967338363596854704535458220270830101694025261617648283801585995603642607162532202961159702657636769712236870409520698018960436027423207043117775447465173026813324171964499552281212470453370906924650941715599055278536056830943310711822380450691728665948851015247957619155190003815825078218774953103394035403957144981469964163755014591959993758103472897467834039725025937582367220530518321919614096736685887086845734743468284795001098429232244234066470675533893399382810298297217151810844809472514393560921396495667969260126771871632993195991274340125058298820370965447463996273241297803161488302653037236359741544878592952462692353230623077076940087124157569888670770166886086782132609472490226234070885878614978083219217660750056804767898843086434859469166242338274541420280485932841151281149103201086817386785857722695002522661980109413415485463431419345541101670131229597975938307305107857113778594191810745174784761887198031883395043663877369254559275639802990280247016384508850225839965249142452435181605070046710495655684363873490723265041333145915156769792614285634595034987522912450571014598446286160386799691684643662774899226326289836083484832696011914645881459603774556620720999073785251271604506323511679573033851839514346660529375208204290373754392806325270825013926558462023503373190069369081512686281162409741713593687777735357276205206711468153059754533187150467343530930658905265286151744327268733591408282070847698009764317120818580441339530017079881726435723846249175281318429248313087360996823679490661713599450197714985815261126858364319065834640289899723562410694474657278073545177903774697737094248966877120116487779615977483232747912494936607939849238186636143397033464182715548669815578795635416781022939052201591783273491390290287480622500374403663427595059594174056105418076849608013619190661465118875282787009103351953152505426084703602770658118368840539093875436879402548181795918934541890848042798669181399772160470889055001871544497754571480019528899675681724481441033422385463927171796880030011155985576840176382389910797392023019373935804557372195237562617248257915563501758808099033796114610318015683876790692562726509286251329162926246002267810304592278316514545590129675702066736259162616789132191007145844557871595507269496288594136446087806957983827674920768547223025352488220962829101121653987798986428155482037216968319274555527003394467093039002355153798444417820611728942048690520026350079998338950909850249065145443618530522062976122720030185089242903877608423145127545509850509469466420647699181579540336209965281282818945124903948249481221766292434507577375289216775289239974749219134934621235668863917748789736015065828814274074555273840733712593172967005278281717159973223355769419924576158012788195034802330291328804187867312512986553138422760532921989413089627057446928125330009354349691807624281186109325419907230931809638638518443336767672512020345486934623398483602390417256989066204403174200747256020986347457130680359653652675209203244085350602618304910862327107982640427555348372567347817357411257238353517111097399219432856653283210622705214750717120344066504075593814321126730429789572315507351657255100692850480029022503598487335873552800664779844255692471094774846752823808518232157160689532398639822620154183464794132227130928060562162830448752226136958924613455304220400206914558523504913817032949569342382128018587334136995358681669906051126841624594918246065235002285699884619635054086589258535329119865361235993226390093282790534808822175205062844105115417823733308004890152309862185395683246352500799775750209950792291521381856611486766707909446169047667131606857568002863758498412636590520831537879407724582159257543430649382394913703750077468210050989868988335056475302679457825185291985504680180862831904274243576530612716365640415742565286290248673324903433538091472313310055086362847331860566434287664647482849318469222415558431107767255689715471239941671367393366794672024117590899035976090922150379881590998480137282157362628461278885222610547385077096203198301588954627396644090480992668971397580910351717932643991397529230177492492941599689816569376589068751565061822863386395129660100817879795481646004695492546732089931342852076918524141184250052975077503209693084987009886844202633527972872759614093522952781176923855664862800942650053797227394495184661843811214526310342266532910977365490402464526359262821889145357956788619910743137254865279213992402804660039113098570989851999319370885977033291932681413017424883800133422871943131135758251382872305146120465739747998225117439134131275155549522597067456520966208518353220329849864601430168704651394397155631873524902585129303706165657785953881328659026102066837781959210549241134203999522494011946097222236359346722433213562334444710313548760518232530432470049561597711157336907546847204611631820698690692887339343034713721045433269267463816734153781524801904383404809150318729334316852901702235076628167652389199469772281665343174722662543418389424443229314910846165644146613900606212629070703877357319734926209860670626186072664637988932241741411426404171624728654127183045641811936876594532213610693009029254723871017861006924156010338450395436126439711254501212467742763123321668083583784860616786131155016291298509920546724755305752574124500154651431755159258451929680249869765253555380965542680126546380197731944190477556069703117225560897817050591956384972447591676342013091823414721525351933179960633750707225482888356391457085077620864755951283124166239193313938868185790696685138723445838739331162682956770125491206804481750694876831007533090617146324520980403785466213073676094968698641118698026766635273424949332619954456757480867429246734096313583096282941957408874296202231636381865797408908261044502387209663836414296525405441444228186192761862068018997281773172010484984657751864706571544717727204464878160534677554198983063085774021583844529516856862352273366381325614616661384014101431470197903971143266489562736357413411327263503715210656967511618657863116341967267603659885952559138992304540811054234064080593046620848801123862902571394370347699083843324700132588495415528752163890257358774239182500864789906685824632577234651484266100491169187662200676448115974580479340526707660071087414424548179749844087637044168149149272754393304759416336472361021261145964473104878122952069011988483992636041498770655303277868143657297957531998715593117799891290355616460129193987142532887800509057291334424861741594397143765218154507641532048431012728227558811697897945164000100967984982837183878843250030295941377699308148235419849804877127143207351678177857755739942936335106178966975466632135352304174718038902683908197516315523669365531961558483258456286172481654485421859766544314662610779921276558323366364472814536458365689517518124310555147707722602498922818632891905518603124038718580132573401916199570763664390309414419315631002090146890836691249200691738113458528666421299038861221211165333621520639270146753692832921001576919354762596133350567932968511025140832036253584641945958345215975717959949763836691800661899837489159203562253278180872133498511200864542779951876593303151201505921848470053124053899937824454673313893868088318135262467839281331343541362549933471513208069140227013214825993944803158431186396768106743170130489269421971167222247845310749365175873819788341271189722726010530520123170074185389774935367076871910838047027533321869994249688815231836314168146119895613399230484247505367053472442889099921274795100807844733825274246876681503310306483767860008606124127379197680188101152629958652943139734080189498745403012342215141947413119066638834772893419992040356056640151435371741641731850424071025436914685038562722632387660886544769598184076125454324726868011532835340991456929205961148073069182923231066008287241455118292957243418530015513963135515105991146428967290253815592840086641944838935073660108847462448091495471838013372957790087801293979687679174298358745883296958518520680422433938724514954949100987698160788720936864478374056999676024545143881237299247864775744724190434286264984750632500018988135781486295369639620727746718119877774609846749963869142122692303991749521364401748885113240030849079856527182846812053653288762401944145639193026411357949651839625677828780613564579195843600350189523909368239279498191120479823132520359391712094792319831940632246273697379947664976482247308439316048603783491430881313280421990182048656438461993837684600000959373726141452997145194412203370267491320416481014668157329312437138022045430741467658826496452848899047156130917112879924059666282069813287026923931650897461801563818663775971423110230074760853946308444013830659573033251515899096423052348727221408155370225787625244719049255091560901692637197669387552903282649609939078826744568715649572625372979228590601369506150302443747462721664539303206501592458402379515479052260456318674260066867461400282729715004394493199786158598587446096070223056190971779264508971414973227875961179200331646608492968192346939818666479859326123235077761818903422172587993179187019841776303847206703308858240741799834366899959822346437220371365650846428693905155054309606227380585459187005145974461310620367357978097032709648927375175505857552778625287430249555781686579327901932790299127975511266435429049903153305761632352167899583804420432999801123487141817980320961491879134985478739700131187520674864013515636312178371714587968814113156380312016359634340544021905866960910689682524098784850784218294195915570356907044520490349088997835333849938079442069857028926295655641048582644201140410200629960406593944537440250677708823465164914511808268026737576338804670222098775299449913215330819250642675032308789680451484171060590820129123658044231886637206268668862378469548676631913616758490320987369445000895490238992011843232220597756681101146011402901452279756562360305247196758710524278926257188128495195007070666040660949149892470824428932047462159285651962968346064663570185793016811006744881377006181986195368477782935160746461420199396578192317237351200468919425957591254650707170179660054724895195834322758830107585743110775444773331536295354434003703154369639534356616154652985165523999261497659402871670360582503207761426111280952502996526452305573910240171436882517873061475636557613453200205950912616200701574703274847284234555965485060410429546566961447876214182956681514043695510384675824603063714259427068270927323444138097288137237824537426103585424254622138841460312950440332357785883488114055998711388494514030675542625303985769214391647158665676935583134996183690091352700446157113928810457071762244956765289996824837448746916054311880560602989988879757782972302437337820520075205561903866750503132715865428726429115067767953672510590167723329383378517300819726127163414812802896999963119027101058160649408834864610562132377192174212523093548984938398551663241042194417650330236137307522761705809556987402738360618442779180283160268191602403863170483704170626514651169249632389401288037926817548410197241070675120366846466670424423340115575842652356716464377659307232783307802596569854634506838532755735150595724492967121184349660737953780780045101239730347872671695957005212725927264524039429546487392434653549026609003351687329969846907643543630724715587607556335895311474856855954236671750023556051587295687783027499686123929842721154546615211379809850432173210743201367335488285368627386561414006971572915465523858775043192093603593572580038216254735326886908588247688455577339862425290310925649010769502733934899799156669503653679718913853748912023709161883834083211576079805265465644886861509416488957287112946377515605051372622264578396716955513723527792785856280131374061060809626259430779280220847630635135099847852565105163571800941824729454479685107155977913318564776154541758767394463140465558940044607286002415352511338863893281884800116470260517034590221435579506365629597536535971368667619746336692511195520767586405201123270854268661445267197015495811225453615728348334392572070381528707456801836323049513709218176880700231111774744880327522542581253770275661460259412200687608701741563843696447567363741405719387348555757118773875154110821198025252449927117016684204507693163566732529001959685269685987276114570930800289237830898295127841864225400620010553051799313107687848639629761517652851954663845226297483755745554594874199633549361511152570138283017295029450331779389423598142483390590733728875394807901679899687572709368748158957351092470085720090735306972087205645686195948506567936289093130521390917483828526703323412797665223241708801068176104005005854966078704804138418667106055183130245087401071976415167505380257970446199174916237010545324113405664526389955028269702743219332831839023749594164190055551077802817399501230970883721731180637217718064849762033533923112221478341693739031881968134612062339511735867658959872386371005324828309226086124490226378142549951846187157455060720923319230355121077472406864128130647471726061078885411103606117281590199164028854747815435464024798525868690900629771493966333583697022145091455389703018798671492650102104077458666385271201594695301518545482248458635474256517956757836559151697539777755310278880179325106676899851338186464601836125360815782772662503086992079688622281934203153164486643017619804497813241497416258044804056120983648913731591713596248467723716138094877930761953651383264598049513019686601782817339123928692848607623142042391528615790845525383457700931173602171729928109583144409815824344096931851390922035579884588826479993140677838983842747033556567240162443608616158135743367887026385542868481817068384393531754611534924186501675581063650595629591956432058736613752434023602693424085961490545366407128940091157509399754336029987717247357995667614004273141321553743656294029045285155495613294402799919951324026522146315543453145678701127693471614609031215206274101894603216883243647059210817261773830333222209433017791959442181011219162044226986409654580689022743589043521286120285962065681891642399913358238683600042706055269411022841734020811252983582403454795253334890685014692117313302399725433728004186175202597720478120077399282314826669909622213541672716608582459186202014676127486831014229945172150708195862704575103334631395914491700687706901760372386398988835043528935877464374943793821253835803254451254155327378644983709817257648421374629162991390682627250018465493568245201552601084458334962377377768508788626980420272889479338170321113880142564084081390384875192299293320979805951991913717872081085357765120613824063134198103765927618320443318292526991750505087656673453864893481346082502363935321172772298649099525817049168659050802622943322263105571261063394317471234503986571240980430192677849688096088288669187409055970769028648056221538718621318533819012844964253410569401929594058971032368299676243393224346616284565474053327677764161884829119510412532130948945140240966479097836625048417813292045908772949906660737171158490745496201890096532812289678241528257191870063371818963800558637982209417159248684368952233714349678039763190413762395047832320180390231560880400636484025659980826466291889464173235004742309414133603944182675339326375076494220802688145982151221659927353729292284887163200558417066150121853899047190154891116776752936484072418584486557466634278563070768964535250560023118198002475677705105838997041900368616987464401335221514117552388114183641506196850098540597120005087695572166377167284476045502423429917627669276944989464970894685281007463396841594411328556979913877892427375051818520717515682185488400816929600551721361871967791978461573221665543686160603983511705724442257446343203499538900093445368752213186606493846409096769023794886980977822978905023791603950440819860661205265307872158044401994057914793065345204511454651972053282395057411108412857687868885017649294377962549579069923434970522559246983593811458115257211769156250798426923907720824312835896023503765463330258283173314609636459057521231580522122178440099054109198947480888558870822907650489380654669815312142435854059722297340337232654254201031226402646057239580209647420736308798539960023082751567098998282586841832409431807786164216574791032016992863287458991831394600320412354468598738487483758700391584890095297602333605640726444668898057523343533357316766868985919952837704638357094721200916757489416654185883140046591416592103243074130704761878175737046048084774668541901125758820630391082891079384796029631603947736521574615920523568550121789669892340611437243431429129984796422997967223527741137484340645767367359494587575877224303047070583870201316799808125403953352886530066513281444886328753044335645262103827756394162948088727348377666793831388287773932315759362789134986303257241748265195210890212044247192947500751355986959360122908375682493105359400827132451636747844183852568402205233750136233085795431234748397373198733972434421212398821477680194492055432657557441940270341178888260714866711862988432136136909970380593493782306142169435256108018927970611069977352610968497654271837007961287415989619710660148877973721334930729116174041667348908984576928738657373124174889743123887945235422063002423157405005774497903142665763165992648732378279621541893684592227073783014087048211866187371944554986586082980766820361570579594521036137014838990999613063971639746568807449487254644238149498446187835966674204544516483240826351466769578723998076150094949611173459761028809331107028028178073244763833161129060934695848151351938542001129531263238969677979318476308527695629372014916271052065000315876110729045368649424689185635916818266857839296140700838997739864714951198380607972257517965485187599591755391824583591320740718684848260695490386602354812666436882547569502129576722288147754989104176911973270246565904042246087933161728727535869173205952666086865945752979427966509789214755495859434188145382212616447276807538659654850420680704081059997795276634778711926691506174128121165495371828662778912983027471829256774009017016232689740584158441335618012403979387120013595017653056463655429494181652409126099702385832843350039790804078285128254768534458768547058503081050875964639064918014822606894553446709785258417475519725290014974083890801472552500940268523975509410756830079545905448646066575177993965109745068505017908260261891057971234849667693499634728448805168280610279515280515772459011859704478575707854271522038271343409155607595965867632904042062824380451037403529031883864532816672893394116087608759792717074962989450837804470082521058484136797154664299420923124676141483925371060103279112907961243538893038538131635401467801664264811630373113186293708594486097844895985928438962214205568098509381292851675405114932249846054544629898003343689032850089687638440157072533222103343650114576661343527094215892042898951172893771948658982672093685467299323809740135835596939707983783153536899995426956701157151469618586996890232150903770095791773313144487412239854519222632160313863611463318678452708594772713988473319876679323116330518575161640757279409862939219758114642173193556542958030898961655403281609031239817984779988825023879037697470801854123259353150105987631955472517922989999220091211403632348821051754413409315205801907530137658045044291927664570809550230839312892264133142031542507054312367786092957910318865277475655304594143826559314690661662890315279893184099935055277595778832136933348863472043209955825374119292227448334750695469934296245549740987956871792753471267697530856087941045625811258322079666802681633492713694782952034344157606975387494749396608371274900380516917535220613070974735517518390764872006459893441953831475275539883984837448263369539667806457187942171650947637166456466923944470344797210026918725659991137751414825627238356496755729203663246790141974937881172168952541219452495479773314066481027399975293697154353569595118142429810867986511243445708447320377535467355125833513604863644131910581299089189991724378963750688403423463075824147000515697393919726825030486900671812367033304245558177497849890436718372363380998795217384914457042627999837342870674370169168795603497196812999834712454950445697787890128108435467730112838090484161610636588186525809445195102082609170833473411852981222817601783110388508777948458924423123291267280248109688262961607069159038552846647412523404360571938485018205450545730594619164438135378761534687928695593061636403558422068382962069106000248685292054964520146683404442724201492462317254344272672345139414912849431273553329725541562876842965165870712027747004337038236283821653725001207128358661171916995856502391543248479330737744030716384954144565567242036283699825451055555001503146478157627352860330730839005921242261589913500485251828890940133747410527622421909254295400797128594127956931064199790023514966332123401936635106696737748775863785065442166106438644033476414964666474733701344478695187919127337897414064152862540508267377758585854771895762415259058294209780921995159320842718979321108870800972273507769684148968385525642984009254592962483070806383443543457281844577374274536108378275830264371275965045111391490020793613399352068465740172854287995788908676749718912328457804488400188349982698549519185565811886840708705059287460748034930589705222164855947019846333304472998493188970754907065580635990515849695070821386049193692761974978260607894726458572933665992972382628146535310666419706749447125507886226283805318494309825222440060497919545040403647476077381403942339740553371364971326444244547375553886723359403502408078437949945297428752647442040125622276157906705313481168785343107570711351666623217699452532726101572048913665063034382639603627166193200061990579079322318697824649473492706738348327090838981352576716231215379791922367470424609650382715565484005913152228787393725637447460636205739753502685334136786427946829749692675128989953435591527631668387919090697121624207859035967611457982803346698445269207792825792492314182079493019129852861747916455777740844620294550593370421052658740728916184372231434503011582395260364562445130137293834236653225506130716227805327733339826781759479318560156827244438432068328961741846946706997738551243003342677328164324747410609019955200746090531916110284601125898129209571611294386468153923469536619746156194119003607912515890697130231032220789477240923645243882355121921775787548594679866214863524775757893158334934013644767256395950129267536741007013388238372547086001287207267248342533366873518576625108031993904069835014235934915837051151701483589162031463846616323272887296506091465841222094114170557558942024968448912710542091476368847613940576641455739252097725444830055035000745129550412792925610988629904766747945784286384841987418213454292039959034016793132439600207202565714391808193410819003836358656069296516747699792401437299815480638642958980051022246816108830441655416831193838044612947917582001304732433405435004791101794791385154423490528975506581726209777355269391088749482940193480648346355701936095518438469204056907997031485380599820944478446679857317654856396721571590428808899405545235543909501580564024608982177451207725585243451443958016379670631559077995833577749297227673357677823727702668994338375333676616358307939364334342299728507243622684112263911301521015751777395007698587095854518574945364537505874317637034978467893121445265716330911881507835453681861099909231653703481132591851536285006141551028632677110879113754164292704757357884022189061860424989086944234793393603019255731716448224019968144947111137149218107226876748316413195435116293532892540690209130872939759372187152666577237473266302775225062286970041367140342440428031479534155783584687518246421335613097231374491509037784752441990008576741727457725068768369773719129701969616395496005140504013697475043748775191024704919748132192221490355592706909687916037372323628843560728805165973443193751729764274574052292192807093991218670498005271940122881971763692768755985606264931552349940622802098680876748927734145062704972117558182131818232232653771264491260106015250766755027655136791089166988310057001709550259624684617870692725506329081396168803344707466449362829254213083983324931827292998823524379059530515375628675097921847553585756626988515554804456698134871722302107742447894103964080278590621514372445552862413470516437772934218171484577904410391835992937676231196966470212818314453077544359729106620869717209954495835698428574233519306634712861262370257524700044189586410436085107956343776539553276606036434333703367289426620732716035977716016045284956542015752972152656968258187903227875989840549495455988182620070585578149535790570065451297827218904445734229955524093566329436693122143764446250878830828090709630907239061379684276252449459217126078860575396214375951438679635040894535480717149418875643035348404823184265277675076485352853083394647026674042022825062169789137998477136622731147001141838235906634206288666049092021390137467457999194210353636902115382917882993247278534260277730261997089207058040702615724251752103658561642972605628767720225054547387847681173647007197546937400060908028068693179189772175868184094260165906864945531856228183125689741065154630926662604783893565579398801212621852960036531802787293394721601582854174672027635226053045291443976421707473786064252139992242601611274337062809780163472157740910596907911941128000956902905356774094699998520773323240858301741831249006866517711880676376471798894786119861388398214794678823789113640286706257736171309866917748576719145614779778118326600434557201367119141317039230930758271167702153053037947116746177815337926808106434112548154887867591795036816534098480363978024177961916913707057498742317213522415816842325373837634779656120012976018338458279880824454407508288957608794192858278085763138441825022865471853297090181153992125452219273239313021434688743110032059030563399185059357114720825199606599659198721999833173251247566330524756039712222419890439296901392062259081327172375713219835560708532776002238842924227852663075874952546171518087430029362349755889769458024415881173064097342828726871034635894336044806849944866621917139607875174245473984469735291886586803749592883737784269930246707536091982118996662251330812417510532383465723198689902967446441202780043358935500257292279563443558799445338441000096540888287959604988895732360658671275445732915604530502869608497239316679477098294219005970324902912056239113241502002939247360992990762392970893194158124653006685773257739889047583957267883670263378737496567003721301061315723453674698039073467321245215216305409862851884483960507046765401162817522672601758730080737568456409420120763376508602712080855992892847123519591351991582452349229987299538711065683269631296902716311443090612512902306586774196190553516428542461991174691918129333391740752677139576873641363745986327439958552480306668918748919383903093707188667376861626087875541948176310762635480941776037825473495461372383602288707427521195938423934930346566214233347115415679813064970828954351812632081390951183571756936283299161910775623122421948677250724290139146842030110574100910994799302239312350720565325314204650315381070030248551921871909037158657224184001028937795710050088952629379868941136243370549873328449076545340558072229884561067113017577269068259037805613970430778246765318276167318661514833078922677947626868757387913720643493663233954778113571276995276870199852880267858270740248369854943361869642925457598253746657676029024778439412267778576470228380536831512768150848706811385271158238729471453674692876039160372349297822238458930364199164382875425881623749485970011563817091349764468935739391545380204220227661345140071233825869490322403750621479822569774048627851024064685109281633532792755976326632539757394312452013246297896689114156298264869686565811963729032521665976642176934468480634534080071024056849052740586892097721134465681172404704863407251225521720444861009411215102146080886312005909446089307736689535152723215382206973639505602134533961671443582293939727401888875187796861229743455937897455513996186342572369248957111722832187046984855467476085377919761135906996311529306215121471623338538774456962753497885275568149254947719502689808283151006812228255066371889847318870048651013724617381318834379119272907284940203283575976179618809114308419330158261928633172222838817806845656459780095334191147041787968591387839830428237656250094333144026851802990958519429251608736933087387460536886286381963302046357808515686834721738197204320201456876572119058277273101027198919873028552473429411026655082090349341807917869403229328549646800319973925116904806450395489031136271414419377413441276451225808531605857828812806575612501161128171155761473226696732503957037414478056587094806459478283541287090904410681709127408512565317131054825879867191596512868726998139984628026551476355680057592428923312457981752919871041103831513159446109439743062119786252168529896010504161244088644697419034664380174990681897562777755557858436061190098183010041795956571201268493886380801895710060626202686216670434693529856089314565431171970118882952178302083142784384875176317694983844851470960765436033015505325902037886407923873932238227964643441593329775093988003126595123733927973754102275641737626946171682242352594055098680503095423472433717678416801904992863922084323787081583158190338300620562320590439232902040820434462161904961958773608249405569418601067187941852609596222137356144980102116663773994728706274556241582102076855619544481806362694834367030429168521703234806385809094371432907949730684444637937069997181142963782979892869437481032321981129969546419753151595476295158279904699965688083955689200267884981156921141683440200570775591164458082977743866156056789770676745087255401130842936806206778789249373004224348540823838365759303344419546973765116377793991422948033823147760727382404512271512932744388380831677105503836157064957211977079352083304933143889378135226173891957237984980119406890668724901107246345320499147968731336771035656252928074589281799881450311955579907455699727248136659733245167261716065195567453125669833685465643081862298981001163489465194681881893715034064785592411431357652104160043354576835419019992056277125890712363470361220537549104537225390161810678117968886654879219855115035878627125347583201150348374419740010039621006557410009901246535251894498579443176088661378540659332480777506488791109033827155271306124573546148755670150406704691040374558078598545467118573134186250603088103796148180497767542290415302255429552474087742776756910570877144325736664730830628230260856701173211742491022641860846316820433813457574375796382483613650753767878157975367989192499949892176875645312722309430396987035480359570839753446637542839727588195171939657318968202477673472747194356676446716090845618001381271138457007281356498192327335132896743213826221761761899714662726107805709131745824964408040554635943664761882457327269225727745686154799886415626310558457228400915040318415717858843977715905412680093170363629132736675524281031544526327593673795503253746242661998925548750291422646974422925270747933411276124145368514966129347833919968333647005462184182934554195964563572485717946403650896273592304298728506019334931926758682917377408650331879322424172268216088925054701378853297550840619920177712875996095148135101663774487644919117697903813727963052730418028102576512940152614027753463057691497177720892389655170846762627185139242303029252676561815817874630705720991196282492127068464661950530042695965399581869106415558138782552249138412596569870928806285465887240172532820921315864730976375014822893417313434876654993357440981137196043576544853944238898864624559523841922002693560496984305286820084302190497635411481421191236473149676947127976495538201545829806605929153795060160178808444860349864160526437891607809439762130209750126260097575907785156910132576311341367335131552195098808853058505383843759380467214892029276261156250013575413111420594424407377983672834816442333634233199177124905766708276617071485928102953621379287601548679960354160808031184680830144043658293635184653517782734342470184208926328815626676578246686392028306345766137822126547723409224565555652635192328067714168330442476766930914662377599282034472639025812537321300279775936504819287791691932919394860333998599897995325286575400371299865289132671475859319594911946628969236763480098307063646063724405858591267775321724689601973616345956711167203367815131626483503257935892582397079861991737911885168685835588054147437054673137760446395900277673153555395431812095238726315491172934200531884678094007350295788038570169126724703185914395022328754002323811017639734418049789628701164392614931639660605994587801972078358032063241544403235692971376297989471835711628014096761938209532882333985779844768200108779295006832256423290373436840259689909728134874679918331998041153799613553833507726838600873796343795990188972474094262556057809668468357279940361278436525169371459198261492943411676359110867550879942209887750107961696713021784945116596700377073501107205136762828802996130643301774926035443508514834918405107442292972353147379042066896451013419846103788999599675137595942302370690308718864052560689661520271708216847755138951819858244540828233297526079620458448439174765564087312132193269562707909777796785390738855477503909616219427760268790542095467595162568273814625264857218923739950524152609053832092725616379027682363934516672232409855386180128276774185756834429695881257817740617058661675444461000464348116940077050269931592087387754269758233298573155684875861519963510130297116358795410136776731073774117072954059467926032504138377562945860489893732771487501521054277550886581605837279674703280833573888785921081412769916709887383901371513805844414973443501877842535630344010969966910048140876906478324494141903564029328389996909693011594545347422205356082151376939520960185969179214329642398890978562767437918585290890998695559782864227102700290886158642180303677780020486720869392327541262614885360382335560420887778577893520710615424326565062565621842889928876028312610127781347163596539693516567687875670010931367206610826959814353587473484645223515819066872785845204694300258425956559903818598349855116846842172636344236345787946032271446957443371077209111148077815217430517785009291705170199551125032895214464141585613271516232427373273674157350952541176555780261147985991478529319027618174266472247963740864284150738101934659643022230660536329167891828423593175841969734168736507572565384261139429139123569930018524615983907480277959316938890941701701230694016075440116787100720635578620855990504556321722548832221387463763170608053222309297393126561760927870575350837329506764063139647405746827929633434852017509103978269293733855708150473235730675535235690500697180574623154335398279714666123079594240198698059762508651798563208959724598579870228142300898640095253188377533339408540021900719797075821510676080959349936784242277254488214018019956663470424226317572001367811837600957032586549110190388902582523467145647005237108779898657405677077170157703455923185335588979406540604862850727165475201447004578157970020994896622666985677616584905399313380048161996053290538432021008174993228015099232315375319278397003095617835584637913075209346882607989661187429770418888301178187333777437180816750253940237040761660446818758463934376832448436975171452790303659590935105386582395920335889456319577281316992134802132773347670500564451035286707596991393515983165546139149242713349429220342753068322834495562156851266058010285707783374203770000032786881608214615430791572756816769817583936788292145971927860718314054606803394590438119015666638801306773845413556212192093050586074848851871502265443372321894517653598312713360794979233255708501493156911773937499409309268546545127799931255932080420689978268460715544621614575256181025555933712161354250881270552956667874495980050393359954642497684737696812751468082300418972833002679593867591993968145585023723489549474686282618018313754038059349494108469500777207792531408261448548417313270265764649322108398861515597604374240469488512806003885266471748843022979672124176491135619858248541027009585977804764797075373885636998473730515960621269364486442986686997833866307828293684011690834521699875314312637779918490671635686866867436086787790410672750442842565312424482370891577356152758733674544357982416394512061131750756396839101910250503269545088822462115983516183683151845489620126776154183856440685773296259995838191675175814524043251038230413420518723162574109111508631863115850473996382583936312509419745199592220834959024947753683954476838912235186959011171618482292189051571769310488410720299645350265559039489194942154966924482088669848635002401573644598356448007751293874418602392468595454699375477652022272842929111952099063665265170569835398202572599664520911953230011456496067618808581998307616255097948388424436553495820466237122278084962731204964406517036098528682943196176339299700437558640723655400987260137818065644638276500561036524013107152763771116019168878863500614298953962512088613361490770928824807263846706881139826875490318600341094110797212535180929490954710514534739902015501758441630582539973675752934280529358706925341385235709155949045640701835870775229355063446608235083928320487798168365626243290030062242542585160065420643047642485503752698122014370094344326197641271991028955248285343519405423995567317372617419874387540116411205119179584263908316493178294921756210828205666477675332138117542154725266861797294982654740261787605964576390442031783938570885379797787168978852493514325766567114673811388058018258855816590067702148861486235703567937265373322975177807815151801745390170291453464150711914485906204633749546470961866758651962708957777396282575986510877131544529009108117542152023547007486197736615830733339007823281658519491580256922453104419467319103147012418632215057943804874966812176915264549790217658905877023358542836651703725907613507869680042483205727952618994248474526135762753768072146207520552903066122111133145095153474596752583035453311270591985272527804301435690887911817902856064459121214560138374526030960220988499887984651054715641122357576230592783968933275885605346794376786339155875007619907140902706287227992077029992237022355516116688475259217074396291020721330823328358301769418452875226657371711158039875893619735095217285605938445748210988179963464267983651476530685156985915879219442980710795919517050868677435974703473941127385214133838161953136678957753597285480840132662255709465382078970053836683914601257758959559477602628608908099041202759114886956296981609310798943552963602771555638530889113990953199938069811418066758772220975351191561652868635081013247158134781101266018188240976373712089411058453728707484554433035052155043581231363878898569695357776926503443652859795548007126917199085094120380322601958009953321339089818412583773520584583251167646996950841587802406375029563534109703389880318384597916671115654262511827943287339026194004078917356859961307383270054955729584948210648613445866488471014840161856624275242916480321050445620029401393385290377104989027282692096636837203873888213928359784804125682364135688162281224290032124840963124878203936907540519201849251394090941553352633037870409608721052225108370543137657013908186335518333622303346998874447669277957602129975788173754867243463557614462895278535213627047539747988972351866767529851912874242203146876221299654370204126171939602963719695047160590877192754445802754487515571431877375163995604570297267365605300196870275512589289845290902718382172052858090302940214572104682937019716567466255162106254477748721770028431649099706962107994495530597751977019880069211814628275685977143157342190453152572397425715938319399180694675568993025607903000402280158671268194865729417419758372381866362665871965230567303059538441482668398240288021914853261835955728017022410589315174792405782445814128516789900498578384207920890630221340307997825675401780650029090371801530528762187007853690223597501927798697764627316271915117995790936485947496767688275815704157648371655145121237003768202779672633816693419095752342675395850215738449801422328174422711055397542400400836859245600426210377167895061916742419611603661364605804998405403212104837822120259810570391650133372993553468284713409318825725981498055202527455651812701015969455114820348957941040523649237244310851547125074406528570255223428699132928952267723927226346071356724827491697858939716500811390169501338229830574013515006929324601298307887190831929993036130545431779731105794548356710958993427747783681212738404782880337553984525196914117032534960000848725039596125401130669243809900050589237276701249312940419240311484563013326073418581166626116962788462249018925410858631220415450919063294191836979756956685746334127283008648731838589896551344758470252656450360396849286527164839024200191751082105894358973198897471266453738919498115930058459227248044681729229287648353585272072570399322209538512505445311444979359720310722383764290594969719679549377057285966850328726047557790978994085455961769029570848315775048995946126761304696655081149872174812649878598089493817894753353209257122211555410050514373091880882272766800607651338629056254876913539671199927317412963220468133423009235610353660645538327237377865824079438959368951028395378945171876203629761821082315389343613054745744534413830982456067181351851112540479087692785756068921881401264926846868766436707385079436990007172446335694960435566832982227831103744828577669457657987712032330306514452006587054368684056756871293600063195742444742321354932683055817445784833598416075533895622130599436787555396948752779368888488235032753802487965117455256769639767048708081628152792024176588674289291047007419172976150119645176663317525458093729064413768458521737153839650588145048639938354271788589333673255939561789275343496871684808991094895304814243930109818070088822104426307849142983979469081534074821161794889089721766761475541995212917663432495139902902733374460659680904418011954524283186035234574980991961124835608410291381888652906449390032560397762391166584474546759302457932047764545478579323706368059748774497266777771629228671341911446021174476824175019148162737067489967048203498869946470828223780577950152216946459911725890203445512465663406675306610987503457426281042373705263936129899380447271929928196597396377956860347443395700025546923641441405198823753930152391615666259352766108917791880180266959634425433344025724896849396626091989488507009909733095825825871324052289072395695069400249635883357747696920799274852252234216506337471521143267904931093203927242233498100202543594432266385103121029153506897371621881584580929534492996064280405812718166317603775209388820775786550393182557460793937439763640649250977521617132128929359982976045006514118568367268821895483949870311626426983759836227582080800583538509133555864173827227530692967039755303217851517740467910511608425100574449854205786193066122572104512279463071196651257951272991149468042456785781765107327610596939034844556173255467282723729985951388296017882242211541522408929557451804732033355202343158903112859678252367149323920009504299251071251016662684188580355201294557581248647199309931351096794286163401887469710997612607063888699757475004197220013095767494095807389544488069158072622866449748945166628778748198431095766177026317982829613729777418527368442244182952135575958595210107188875094047458283490450166054058172947358381767940547301876518559416349196757147717705778563612247756590152044912455084193240324883427977463744987029066306663249345069157047113550716191618673333608009209392655048355742153949171557104239101712579811684328605741111316956232274574643911359743430335488272657289825788314617332065018140497239075690430458443356984594400882204406520514441968070621984957834853684781992838630710398631844348407993791657418743103801710698964714824769655549305505541582385900482399830634545863854176278795365743043390297910905301300668171693564435365836707687022980496936675501341515703435673596376660201679187475204893284481439813961369936192114498391188775236446204335970793546632188647417590887973057832029111980324182757131753364369977447325231126614876494742785143913961664963017163220690823378306169126872820165857853566920594266181716716586126452470195110318257414102290667701522238584105537665824623368686110281745557149384916721072586476617139195015943516075276067185816034895719285928901108277095198832959117918697304570428843672376016719169211469485098868984582944246204254061844394591418529604931383762865261317422488591940542560061397999461418796545951701275242652142544652057268756544337036967135201886434619703062440878860434006989560999092969817960646550134113114598574238502000623936587629007530138568517681095889224495420679803366046176820242605292187018356672370857427433134921133127153490096203275329433128873753431982742826062404541016855472984022360424469156355919554639358963069429177310497559333499849069247789056056184515453067119232726177103143214177091306002824157036650848642455474412561356793076412258572305453888785726061768260751107157971905072819898913140480811544366397709915208249437438284781999074254957039850366419269292779890940893692933978968802315431046483539293626660578637428386155792077686503741722855599256065044201673414318051031629503627113159495389912370409816256833511480169939075391345661099928200697955319909317137458474316821232219070667080827519253659661498637830638477758114593127829819160681071853886599372669602420388949965332242791404692244239637915544016050643442829421057602058648489550605959127462981174795984145895991962379730698660895425757895958677758411384824434350310547980864154543161590327419090043398325915993938356635625500695925873793551614742587268394545206092897164278406767804209950935229563928095080529267039694134665689323770295030383995764251875874989836903359476305705983021846750856717574612572009534309102794540247161753134541995965048095407124396807799729105461647334729557158142507462643604772503817871469033482423703936617117176098275959675660048526399133227059083887666235140347766897080321757526273852217389308424299945503719115523914361176371045311513654837753974593492068454348704982561216179438392148143045742363707435558634174375492224031902942160925901339176755683786916645917036365279275683683255692664662526801746190496145035875113667436752090938333348698656809401269476998831470624407742706189204033522083930426604601717535995747709433079722702253540580621702029233124887880490614041723098238370170710459624358454853518721609229698651508706229714622974782758103139231124005355912699326988601820884017234001913124433745295817055134436755744771694655851142138631681711798354110804521799525356144681422393077953737788818020429137541625801094952031948236132305135304765220368823416633005375779501849544520282634720432264155529278152936147709473793525460547571374998612864726517471620688818494807044497017611924162375322113296539122114976329517927991592856846293220860528931589425405250767258480735086042239039587982103214540496847743030758540349522562961136636906077683253688404245714324759033733050156069069851192299945515367864562189624877866121186543522882726491107021323539033986690276478260149079491658993237666587598950514854031189209623115970300063384676577019258009113206667597901892620351080900225655368429231197496180643230045052045986822836533513118324542382500263653214121185265059093368735064951941252363850733128318134985811345671301056103599304323211560562472455262169904707379217358811822538844931491915660960593914667813877130697640133149794525331047584908359985070980656077367561854411155225407034266770383282131118614845521551184762131880297328935454533932838571908362503893241278389249225243383134592356272860870363168898092478792699895620758626605080043367286936640375013455535314525295800014579181870126587091383654514578192985358159740671736910648049147619360902294133025989376428582896263321424996659264958226133096486421174531086680671090783246573183219967609612993655963332417412882791785983005334548799097499630548307287399109107707975648650799725120320419005869305590039634907630098402699091497816007630283494108197961095748160267995409400605974417123051835429482610850684386903087203208942710423408478848511327885261780083549496288935707299209534115031187605400435527795630522221597045029031963835032617091215494028849501501887450475388794232039066505762243139912026016861266643921893589023210017518594003590134751926099576045389538118028105106400940509664603569308785139243375761510982494474033094280884963040071494077635186174568030822389466598217470258519928450179410831122962415562742263831785460313572563841090030146013931874680084731035987635151028666700391403814419472011946649995443746135325049342407896411585262330143516283752579137157367263951135919258426773820614429609902458799923288638237074660667900238649319457346070990904991079605971818009883931198042992376875575037275311217749740701526316812653434694600526370816661779616847404929185014920297362399219284393990638544815884663130144128316811770375802951142369507309880754663883016585364291213455495223546081450380326390116907744471009630953334142050104306748503622576722449469367395814834019361957188283511775446437506828313009283897143774006178674134455087346081840544343594047543322551845169978601276115218376696728829388279404410307013986155959080337107614643219115401043174044964171605444081523285583600411000711223268572703612123415608543768139506605186082963592517597406686595386118791401145795856294692140897300205790606518338312675918045565235457451346890921924621721589091502315689371116815267481625257079914593885139780841914238610348382526664043932353058458857279195771405387719956445221987723403014853761373462331081650534588569328578022851082156103535737509264958389533070834787928455388764951666585844161097049840599375110289216530535879894729342492369606355721030483164037468386009068995333125759045401799368344383147731037533942842038489841040912272974391569012563079799674304393059580756209994269387820476140470021064745889062556282350454285130817479443019043050134367421894249234836356207690169118143120257157168700547751352571240461587382499525154038076498529920593135634890171368633677213431400600961411932678485944767127997087411056644334737777398352793305483948510885946510122900611677948042557543086942703266708523452963495598998434211138738670756422436340732398110026768725273877345211055492934855848117768344212100165379284769699525549868716570772890243347743453863005607783834236654340232828306935609664186772527561374278668318237230824663290934485431542517984344431637550416969388469129349987401376286781499288960963765409980767829611250270998686674378416630195500011442274587448677858662580124970421318068119359072531822078078584722014250876136904305376540121528009899932789439290878075919492288064324343809519011250674208911508690404137453386320921599396161721344551592175541519499076654215833483097119832848380416590741839372177999379980846523908413899798654883913259420096826071620118121804520486267499837821103354710685997988204209037554131940246828939063145919551817738101198639079534973061758316601888859414778109096987031212282709809732318432048905621186010941428905209904391451065693904021067842770368175964101253302866139917377596280882695708842877793384239197865941661505157729485469703826303849513189370129059416272147767404268545454864276897038777092362276209091566990838838406932242453030225125600810820775563842960965097301547116287546980063792447237279044429993404074657702637426476109428282847123379503864221804008700904226136551311691028963051192850608608585302428756848735709384545472372996949902809003425220815001307346369889385222753683810953346670406086887574132186267339943109108603677089223578867232389055003405486130644987125123835362581238638832436188369323403829062505514926787486204953390367516663855984617223883581406250664731077556198793677765802816547737461704221079618260145046099975604160739293409112254040619556742187966153179977802260381264809989639044986576850779872784449010460833785969564085330949815997210407067355011755425631104932029552350580314202691399938804166729140059881076444427106241140512405811931737202573238898373832809818783026132963988901571139595561019605438650358550085869030799627995451973602313001755122167181837717776581658985649934122462478020047699749279253895045625045241128311074836024250260226216182739716560103558939652286265510823849633547383011787386337566482970348628973506547776503312064680747035004491175132690932649655592154116511143727874407289277693861674216579052343115186849237863610257395771888837146819149748437605982557019780528521213558048628309088998277154466865434554433044164149284095209324815760360412165175649884695618151817467917328494304521646674727752566831393808217392526979645673573726997122206451164610332541968001862270974381800426354467045533289518034099624754231747443294433629445116558379113387690366718479081062886394903697948909400069375983375179091219119218134062527636395653987434369269875116119607454327493176162442128349642713091288121909445816122100983757324285874344078831903858247979725184326295060347884159114500408589257999865591431404446930318819023492917611480578486131042940273525436861011372360337207719309701084375727168521935393839824786493946705343924512392898395319845786842407634992275642976886367181397911307470120642249346007872679630375572460859041299993616131181717474706906009113475050586245954617976015315177716480888366796892025071859187087957466555196178360296320402665283987801903956643903485797637732989041185370938123531974848254057880973735943954254750514300897061854645457760463967260833800059399810900620541740144525000375403368811792618647844642354849207358398094701623595610320332221263110839669752640657754139799447449243533416193026946519199704686195791444963086752352405926060206898714335822461322248777817855380318481678828620853365754117886242243442224707904722653008259771069229590870558915092544291000382689726898578103398440680895674010671242387346832927078227971860235061273515798801458780965012063482237794225899290893928859620438522630603575086951414282477310932996630995992405121195748974896426179068487353212708018742634706052261901312006000283100828053616311640307096576618507943368975982250322083638614779045654330162173019342564161826726264724747745959012795390394493861087583008530260920205086247941544551206177556169209420672749690673000585345611246361572180484667539109897133874312318756402124779260041406092282398185139917453112410590916159103876455235386192575914654158741482612975653961715233403898380899366189366410765200693040379430277940094445812575735593642771635634921034212335685446244272413204791232538906138367634603901287499948567921560861076269473615304176426921605134011484087155672667064626830867602667351332186912021654981162340773562821586840737182800345335312307245238431049313310496149026457740776763008669519608321502149266856535690771038159996241871938245788347148917940508103859976950939492553587974128283973876965514529877971801485033968335028293609988259618353013948884974926176016269244138922771588912246781258503424152163100922414911255104593487229990487752626247621198011851556178311003941592330436091774652591552536672998597466500198744900750330600739777202824442242694485680579533726223912909223553055112040576286378177813974355418853897974557037205576879985226905790194911857102223137741458458209715993449476817877809775780367495390340133577318134463074647113684359549125429237723117197656910251319970098550419063532406142235720584391080679137186666424085555678030887672526533716160800875036039674518413041973542097749248692774376031188285315704816982657358214504843499595964140165591522642356113537962075542328296584426296257900970489098386427243963168707309329084070632196542261500181142653888327174153477640165475677321245091624741349253883180887280469855115218920853016934075560667004866611391532670147749135894680159585172734282491867046374194345592942515728847767902603187180966323884007979944639102817075433384905743468533702049806384491255972146808374348746239802130539164300401337060062247781874171199081049603508603454632428679091312567593202959362903001827526544299740280815459640855366748905684978961882650868295627750635401046917749970927144598485390858535876672313781928801521665592093927241483064784805494272946521102989350037594427236090295723656627954379016963383700761347439265273202141538244046214333710869379780982898644727719591065394972772181362241831282416001829837263623284552364926066146062069310115214113975177231619246019973868000279872621402264172926677437496704807829466315273159252388270722091215644765967017406826052322472088979616248904904689494729367143542706427776697188057408862009879869444088009330508891615582929249260023625870324242798772408641682685687717120370384527222950857747636380849864066253487203994566238838458823853263773625131920078621753628828991840834278989605228496980225652102509898090221626223850062092161418620742600780891150922839297133927053976744618091623316092995558900187307634551751740208176263555975313810409097128007653671778582700782607325218776797821188185662068457173963575152792181242026137365911983074261835458141202593942936170366642469491118755630359551261788122950144006093035431721403610708066522850391411392602967062107813880322945199822570186988819526597022883511486549278649504528645269086340251803623662571094545481005227369326502589348068340790764224140839401486799950058969553000139835712133835069921331069466723584320322360704149211704388630916480178519076629596630598738194730698866984748672410772780225553637938642789374263532891393893430548352468320624488058234851722033520868674699123912145835831212570819078224542101327462146573268108628823171651978557679679832209936242428125746257950810030297693854684142285999120177828139068193144660147513443916199834942117708996852265366193439377276124917851050068417053902591228013885297414705243037846172013923197622012639825159175960662424846606695309371119558155573623684777658662437297244526014589025052772622701690979726476174465463011237343352683908459657888785591388873812594765353609559078581776275014506922101909523959254400470413301516158137367412523175705749606425509381380619456537291483666993691433028283717633633986946176355782056971594343197421331287163237640044456548811755389724480997919619426390722928923919319793439056403603266416448312043906558040653126260931086739509740021713250661816495899911594515409415275432480946596438762552494525871234595959793957311703112465778042019899711862614828027020013956040059825669201635813278099792335381188732916963485491876772969568838408744211320657009349663409236795483008348578313924705256667815409364340496484479356607732269131980627332005446323968655251856500577630357331404438917211697973242235643387023772838122897237607499106515319761768965334896419932089577091025554893929684023735138190962525554961558647637884691556477973186670817418254003765374244072500953222742054748780809129429942268309486303920385043538551813467397755240838372299976272218100072314634194862947778001717366805898108749532698591083575203373464165754116658730727698670265405527208023370182139171539953005557366662573388403348152811624766646989942780075223710334005608147623138175773129048448335959962502428045287282417973719458584581610285542322022548371380748258977769140758778239268923941894109773172635649480942510133991292627056150507724977350934396209384586819919561908019740769375388346695702580005661692909610960885420645198382835519478041124147349097540235632519351547936191340549924540081802881939141489075043580832012800425317914534626015668993924445363043597192331307531533522081141897581313288630439098717517262581043376377361312399737341511369899796828105490048031799742129008315110747824855281387622343743956073392345269700244382535256321700738163903340377371894133745152384201436488106112299366352512505947404161143365858859605900265417464370220406083534851987845283524588822893831885775901494574965591914504931624330764774346033801642101574798286000238979868369037844300517620429649567903202510989966238356204323230134808331667249015676161984366690509787823802237172880192918762082442212739809117816445578702946843235003550678273707784778207510337316388958189722816520329030458597516600569427265321965019066792079367059970405696863129983962159757053509100373215746482512921272319268909538382183618878256352542182810526030330609206118233708556969827165433358719665372039368844302708909954311877093419557467592975903912353572100146291563970488891520433857921837926499793220006997550468035914163067782543885112320108699489469534184894717908344507398272502541687451049572907309016686039055527981694454145697524618296188414226666728918155169572427291496611077914938552705034062653633205173774435269390756480134951484645656993695638405549312815089425668477260776808334038896665288936607051458276090861240979188999609437618419243470567887741028827103575580314741694511311680053329763801227020536631253607945644086505593132211269476654222244522955239512519586061481693545051488166384846211711026764222495815492123139830695204427354777679695589081085898470014870571883641207084316987462984920122018606239795765339745514542990942452723261086394253762911167472016731778121051140114852507320819683206739316209896733484716465989979544923236186750151131212685265623954946432884144706085375611272961287497367767237310773439705425519877014030871463351443963759418907954801432312124415975173020131144568295045655400808060718309986251895329031215845756822819380662434332671723197673535563643071920495002390927150767421156583578778042125052565672556854115273360846971088738002472262109156682724300516259127724733346183098578208494164324695000212308368152265125795922262179969839634023438257126599308986015647683937565227700253842171648450561650992869735826476141307482679322085554429319766514113807685364686874078160709404928697480125967291900438457335380718778373714882291790762642337463322973565657585585323897232611011799715679793272379847358072108959107410476413241959599294221106402702298595539553457149545790472263547128325175595647160828807501691194504244177684430596981149132025268374282084262409033416281768489109789343050439274334802420067896151478240972688823668271114682150071043325555399182898509223451313390565592388214033034066471465271919672282841463891751557609058513541622516992523995221373201369992406008421059302365519497568314960671379672785937183702628239569786805449404235055326353921936441819994825672793651822264399075511366999663605335936347066890300329955581456008611759157873409578836807283232915333041862872609192481559697453378036563956924491049429080246156559554486779084589584512209013011854652378224972351567627964652712770413291839598191625428148046488515696429860939975482894782638860139639818669236452908881664972101074581075668266566050189895353269426831507922240205025649602910254207759676622993906178755599311416610583031863742846081540742035400539576281843302372162291641311115853250514084771689913586231947738035353475811533977018653903134835303427741099697303112711546212627379848548299946779871992743270724617441999325133385909389612210210231331826960754333583076707796145074190009759976817264741580411442258965769982209379280810291146475540468492813229829987396124288171193979434925580421339221785819397306775157910717970739492862257947555091271719955653516412933185817477460618435733937421284483668873081420544991219668486921831601502051305379902879841403082238561458673379080783884158319042475802274259836690737893045934975157307003116976749676629828822492850519081361935480095714638711112273741227444167250036233066500157264618374563804008892695760102143227613872404746156248386812088566177465122998175856866399242269257075298836919796815683602536122961361284124272850750412603448440482261562719473392744993062238806061765944906600811628088539090789324317204245171551081743133633146411095149457999454815766132071753973407043840498099748231214320901109666920935967934777038807481539709499873056317617338863994685005981406329991349609559716294552476228961143508087107256587847095802456668238210236290772265170898973388383483337019243015388996890118871645759008063963244114311704251310480367323798072831348670409256841191168215565512238657194078599371314727893324322068938829639739571285886550873476954822191586431721060133436295430971043884307369090443755728318331394908555599771352304426184686922461067832404524986057602390487717618126565117203002000343889745797727210130658400301433982179037238681196384837826672545894554235100307714788785523548940250044114436757004569044117733977704754859666248899433547676790952826095502454167260369033955361958590916014829438085952276190835582676304786459324514655004207839342510260732034667276272830291768872252480060109324301607233905016860543174678831795358591689664587242629027986067157276113934317449793974881857272715967980873494649915434959975621758864824590758802719308378048420334492706354050323044299974936669795477422466886547072078921448849582633617397890476388414394223193076493060121231873391907792855399492068428578182702938222390303764181847270074095454548220324371559844625824213223819085352403136502473424019116940261303170188894957423939498445875487511073794302327528437637943792332081372627711566147815669590632420620144761665676581202828125235922756890880918399572770564935657067018889319101709205936657033662128782205727835688090285297124980175841904595372425491865168805945751945784494313133620619774062123819338187368072251220425298512471129636324703737886044342864053096357208292069624543344107971059585497887480538814749413055687150528077497949510737730685426437527393302000861041400554011486842040524628281863353855047873648383899963773429278524324370345924883718031586605598865625264393971704314931630728974788415397808058996109477633207366590189335144392916839736468835543397805461159442630178580995541291025267119031683076291216758093253541339943034585389481982548116987870001784274685674785284946934307502034919497987560673228320202201870583335750850496205503362436070985497804209525400576360927738400458472521019594068659032823332499641111067021553794213061490248167670951314845276871336044038993120093857994426859663732957458334919619251215397395083670183785194781101844820030586817445704361711000986989726217080408038736552442454688638042437201423070390674173728089187721047236461686784062761691716913882182216994312188367140068891840427573731562743395107194550461969213101289831862202464423713436835032595589534388486285743456727821420976250010186156700451952708793729943422516051040216889712477446995631762570950128957435785118998320576345265031371118084393399432870990629994122211230179177716442605934340162966078336860945534516488309761587088850270867264087156149284213801781843207405291916738725064551087572374111073920050996953807562325951651922499116280198970316977020383723331746068443726680960312608366096576409561186434475947554581538945376328607592502174314860513475029207834916717041519319868218572452643102253808729689086351819206832765500965186235798178396510479064214086199845248279860958679870319765285427419319088396570017322996303280256321657275292134880294633963061929140786268679058585731141713094121691928180179572449685519958280679150828972918960157265173144374817519516161920175506778999058658736965308826333312161018203284614602267604685033216430320735750683711123678789326549000026551057382460397284458336114784184378337463216841195741342401984197814560045748080822410158642738764402533936929246597140325789462004875489841064468791554695612103748418643235098188793233452925318750839136309708380910132584973817479095691053025882674813446839808705280784045109050235902320090347006851611032279835603198502422380130179458082091253661239707569643916975812217704132818443122691262560093757915804280706598976234850286708482176680004659629495938590671824220783998986032023707331727911510547617778254000827817130537663482690093834625567398555356906363300932645847083032089236690366775956905756443067217896326254861939492517374804298526830286663223202896209394683819745121961207205010668158369988399316448574254371914519898700930845231881981993902727700872430471296343143924570030372654748947626957646890305884854192417617097348410348121442790647483555961870990011659663402731715475798715572582419673754341712014672749379694454445124164416242330923487187736195661848886842985858671362007124006853003750947855731510140135738555983059024204314636264495301041574299994260949637831830762452413883624859234067946830454753740231319969865773455828549932683008626038937737705235619859004093170035599030363399290951887027859094595869526678586999449429793573993312521161427822521170426815301673097152918392249194940385345176403570732377063720944706251993170870113315820117406874610536524084744863239395233587116898754727343827914713656435743998938538149393352834381004023415926652429095568629665886969322293679805484205499736092811010109367772165175777296032133682994726192799928754019815955929133562301879103221574792010081793938250396819455779500938248074603373855522975572398377139001041629976967384813096775826601170782664704261698866898573446737450786506592052968631469697769554389761418857711848876331939694438118004864129999520231095612669184905364196523852750538468080098070446804782530139877013960044031449439515238063012534232286545098779385505566061432409643519404229013647153450030451927319290509821771158213140761543767084271748427429656577443785060199045955359978451595921584013869062287124203522945668483854924820468766667482976690177362742303555105571807409591875932179302561116540601169047257840003931285961398449712083279752481152309469935040119923998838310699090513148824738559369950635810137276699216972630655023610104408077206686590328859666981501277677828441812485997786533856401623140377935636006340837770744404107995025836026828859366014825479656826062456076308027064722715578428669232260170308837584653567410467201219217710256195578295965335234341327712343091009033356996772210485146598293542194632502244784368255878479856085178563633847733166327354454263814603532671473335536307064026661129903755721102555836219177216020844283593994479188315546453381607094035107554168285737747961423190204993108793181481221560630956064477680678871105643617888464719883320569206820369142107166560293200164199087655417341933038024721617591540558336096381399426974398571111128784348464069439690998652773055952547723860950100919970018828996401739391727238351306621491644540360695559374740215852742349995337631969193904600999053128110370263766016662021481965892095649125334932864718823044429206868211649407058647458800548523044964986787506585421702822447702442630067420701893971254808013000333873913395470359516940211267176764855364489902820607263734427251505965538079594345578139335230266714211097579829910670801990883489249134204131324098288093177098320114893605406647432869878852234028610423733303444136573953220164583605731095486547727015026662566173945067618409430756677700182911153092311801468774590617600608300835173454590666728558778730285030179187825720627601681647580395677214854015719133805576630073664724763537954882061297612661816083835499524485516896581130615084987672520946011876392416860326986758633388750201259525521160973367299399204157338456476915952973563359038761266391691925238403272121161220261982928546281724102157438075424585902969171983626573732610692985597966855818189933985894074782131679543575972159813135547576409204647758642628448261181280648516512665229077297964124934770901297302321606597662497221312153407176724043047839541807896711701625549826868112725880469964004164929751431619976590061337343723340569738239619653449007526098386117767018953230449147998069379897722068555187977530852387275030308668323313151962531618914041244171546602349707326949726490475479471525081668632753258060812568151995387123280751577694935984409144915789167986755078993418269851142815805916918671159446717576670494703803123622867568924190996591375139623144056570094232100276524134311552754861225808252566226371600672866212151906543158238384492578106577719998350100849719011612889168269801033813548753120984876288480167834064892124800079874059600003769292479081227326275801201546703290364078248880052333160983626233648401314806634301969098023947502650575492999081076317831052962481138858125324436861033805187250785635009992203955583725465253505669914291506196852413450562027982048602860492055080641768072319624867204989717759758270206281793751939806446789641450484278713226868839045877077877510164902644867591418579972366764381619054332582525843517166663958881984890970561951055269730454686985588881142845847486238813152588651422226939310680347547877523357463867521292390448053755997818143522610902216342822276515258528811895039259824192900864902076582802991799575878165543802311410253129520839506295156905958581194637985409115682811596583040113850120748332097883399062505182819407890919073141703760490350331991860782632866742575461572057271431567303304124229561860733180041994920305163684053898666173973921972139341659452196655408537930438373800707314574554960415461489962493810668383229634395767289887690313786247769255425918151540407287597068957441850088688558707614473389059237591448622999869176482762258567364926598920051564860688727423286316153743199448523278174482052371568128078633705341372921681790717249422003287421103070838778153287752543877473616870801282528930902268069715596734401665704032199701904447466966438679293224199987477279217216764014320373921283105466859565424117253362785078517350443714355503752663893764663260565960252648229935579446568949833078437002080674559541065552448075676118885481370017780754699425726029357523751485737905586367793646001447957466174475445734264318741883506247210009661088977732705527429212493330170246048929087998080710551949536260194684931162619386251458793208930504494419014235066151811339668752164743701009997644565959022330231782051107511639036973913930318516117373907107136307467914184910114173394848854723327712283159883418994366998320972720713788905288018451603672942344030911228334100105085792138965939449077116631489153780581390352869441271985650102630911153248110016528089592396875809845412274248306938129859561310197647031514045249498410043025343262941147769665213037750831986161113013262063213568914066414734090719047447188779176018594555827141093774911954569621017493341369558192915423393065989512105763670770112646120294707250291144187618599925115269949129494541655652492514674045676635561967170059093334652448756552760059623227944721852369005718375807462972643849072503779398821580267100197321552308758822936787590646583154583883335080735715686303513975537346418326068319264125330329737383274512664679742513684973723619621545855294680197045826305679367386716578651202779489952746086948603774334612473720352078654039827399081938502060996008801846663573774510313420844714362169467643379303211492077889974736848023897728031745608819781369323537090142721034853130736680656473960438160737982136076474404960829052482803427802480119865327451629975476531343242133352157006962560409608148052208351490392528500912692906233908685681958431240717743528438609326733822849852089678119055649002411783433549858179918002874400342378921770660736332439915902984860805575070568048398282180401151533262552924885532904238151671871955675667845999081400219123568988352848062165393328997985117783237606605893991654876775704839834861196814625106139932103593548682211285853233503999178122957991769244947417482564487400515201342271110517541190362585874150206862037482181737396746312870576468903946708236120504353437265617257469954942406371181544396447860353116637464064201540943131846728368464257972035550074832963456092962017366823725259117728792909004481096793347385766694892433392775983879595498807155762818173030693286900755043861459587772729379985055097570430284842725462639857574400266291662878259160135433859891088648680989310658726775473820999468806374445421174006495611436690008143253989933188732941357851702936251743097322271515302504293270514450305853960132729670736349597692738839582447281282100501853406503440360057111867289403399754766051759776588808277489650870223071587055885101913492382208099458436932005855599540057072752901844807804706873795704159257580630718797051824640471538400904234678320567900853618864399995670512171930719122660201137853732154112381571827897813805561940665229109042738043549056328597040106648589821196903545098570997478929274739292660204727372690958831351698860873872179167293981363462524383982622034891540016803917216117938225132304483596978133986937895562006656666851001505626374868992491851552242953798192271219227400220581347827220925349675827416415121091778419975887355396183233639062923607439232247227264105399875951262348754831722348510735196314876048656872394069118548451132412663501076217396851579797082949569774776938650308669000545424441207143388752627862466983224117255959188015184609152143800667776548964712466787260632087763292185870513962327177865383490486523094172955966290368986314820709871746454196305066839244918014617351829603093816697112357382546798771960423553142297118790765826089531780263463998116880357539865620676313845794532385340493143098105507297991185828874844491314466345566268275090847252200249225284746497197982808763343759154222316292699392661767976545040316831386428573287540096541657912690651696480601862839397814121174639287706231654360824857219242283000247922936681115735254862876825709838353932701548150891746977638519922393638198892530434071420278882278761216558160630139617388777000237976912590569997850169148463351119032018145484879398370624336139210473493899822944391212779205152648757205363094686553094654894901508238727245511994624067350373298532974423895786697822096681488063059011445035904989268143926673884670096579018929868357871899789439282161941758359038419989932649103690032819007817657329200563527425601389957022898758854825412387602306508591199780340516196238596799113441914493784028722602320968246256504470692707550794563668830080666526712920934210636449485511759084568910776813883488422266745859688320462038313532871781437445294800813402301044965405346132557947639869984877438976177150074951704490976455477658405238081881025538027170330471676786099857506527233978640667193555856932466349877046454431701524970980719921701287440789452408896848534018500996948500764932341297399101512116062511522498866907361465885510319285789371458836997558362030226510343057863804282621281383464878973410164980644129592839825343447383703376096047706915653277389645992157925079835634915661077448896941995589193976722002352102845498263758983261796040578636432527049311769996325532361334047384182715985051911693235071092367132851459270387650146312818376096541446471284951459823071376337286778921280361363397758167994975240030734589807226267823783092692228566539121989731632141021167140823115727958476567436750108629199631328791813694040851058978082064773789544439953734084332448567032203457793089669763540094980792813230517544995083836273994851802475997230663268195418687807591745860067104820663668199235355507498269088756527901033637789026151180878587612768976896099707258897616764924262276053259068975071961285955648246362914292351422858419344112672422691473400441899473371357220925653823965488360810481663607800678970732860798214813947278962205744378299108494777298520851516733916766545975720237641691797203562481654079271906563496640410362106326700035568808977810879481647037339339039053527491391447961642370508692948782338668322932032627156749196916052242075168822887899898292234133511480576065163124186814981735960681251780288836114840383892049387063206475899457358488102239909532965290060431915442689293211598953691135901855785689924707613835988883274032653326103546323512594608272391650732335563869581478543174604373945111683991206091726883551110396807374885866666584472283546987358758421953124289861525272257752506119194449665577244867380893783443950026849170642815386219062670609579981286336186450849354667880743818531501983353946932701287653347664610664448182444612652767540965061659720652222785073599344920793419592517472908924101619711344479962636624861747332659687542661135835323401633143369508870367029131375265979252077143030876021915173319935734702466090821112248020057941989524981182358215427403696889543834636503779770560505893262244914169997195722396913670979949637691535478007114359227746012507046349702354424785704762114685991559564810231197652096150410476605100652058481414245448203510756686628617368439548795886182886724752202938256782843215824837274862410438164992542774336392722793487047634950382626941745234253304709009176611450913061119266000836081478369944178923305289831515675333219951197540571128909991139555502717950436897613003519498094761278182673147416855408062394139335058055960664991769456284572205649044383831265693513732755358615489782788665619186389836287700652103727525913179501909336661989194797840975520929814742498754432074634215672998618487629543858586933991352515621541787398645055144448482819961882157874617357210606137293178500801277633972191502602113246537047693189300790160275663635686509850614974983445161030629715279559393231197324223445672067111669589502892263019797037345875481657743953562135568922701588793139074646150587031429600285864454771172279159561412966816528193282114065096969725794223451214106262258419270591088892915776837202584766408443941170515067608713709547910223651117609857139989274638472910609927321042693537029266340738116800257442156378744400533200039770197855397989239743119783586812324413558125467689400344638782651317932387885353270829717926590380077945582764875396751210868005321136623508980107513561258034426506336481164696602876795852632977769242175530543462560996670035541707298658844840827914503136848515617957261471579771916156539145622678357078326732856101672506624473567060588822917973543891022805545739502464994753818795981173337297077185040286343335985650509990765069558428265965559626545278302444013226986211204043156243297535077908933992502174406074875578659062967509602113450562761958785313692535348701145024546049182674030996872225225793866697835159706613932827708938069052709431506210905221557353083735988977981272836315356014959695080454739278035463684207156876889736229576146532473740032564479568077280484837229564995625946270832597680726030445486433332662312388442532908676477156770009446226738000074545372814822998192538085475968421662437029383148386675286473615149894959980716647310513010199572174995378217804515483879617312623284946521208397157360081668670569593208212827100926091773249514118231833220411035484784437971520009295992196621124726450020030536813958981796100352425495863895026815557914774330107747613123496887112813163242760528186393258822671713361629264109686227220719409323154581462306319493086426019647472485659112939185593994587754272311920300494178239423134348480244929676524402077350201713209051837879572180696175338825808129088946782466416922005585942372489727355758198048971455798328592374955063321480521227552630162910952956856237105593984206529815715959464669692776569783238284514662539730105087951483583607076753724592799573435055657833189796889136807020890782258449285595797641618835291329386389768811860017489650415219509837509570454132749707922730691094970313962920322143137738147091110991555684235339828329353238255264469324420031348374280118420156460598119670365980825170533944232601228436410071734238306374210138473255860565224356099979950354751490984875145751110495107090495020027873741327397525893301226736808278111508077557161206817410318433045361761357170525976637470223792587681469720548406723725242129476105839593818227035825706690871171867212691262255920509347777667754057526809050008852949903190653793422923970254167416848111000832160679198500245370563086511341325903105229016325808544997643667202301173155584116081423432439783470903465034962995110562761997714163121250461782846337444431656434957045640604581054886427218919299200360078448044442712517835284907502585009754151991110993949330732820579528904264028939781471175768257987005718888085315534274939363029200766830849680242284408627550980775410635264908899033945183493660467848737729960504221310453464453330065802491185443545001658142349692652426550844612835832319968592666240795863549448111742420019483557232129108885200441944123245913093368492140373630617092623987525834046685973828667963202258791398825631221080660532584200980972655039437162120579901072360013899372085722644004543422337060827418889491404626981652037431989190819430797080059766152319958275241809562198739708355922017575882597543157993651986466990166570450892686459388142969912264218327512619792193513817366966933675446730394392780339873787260884719299514479001304371497618970908047074750204367876096340249062936750947034521055308976536594331698481050051007725095346387644267971445782145406028663870137794272450316394395903919821712889345569764884197438571738379436725478363418132304983936129919764240776953862073679145797885531245787074403874602360828627562257726909448049352226346920666817204093411134211880677474888339356731287543382695912577717982714764588952317791878194332971532832080264994716853583676010198629482538070031543677997193113291827718155689288526604693054955496985445316140244355499880879331658676312252767492705743346499960728262199029474616176637281032380651904354474103585800407231497911578509368875354336099091795669628724419737175796688261616342938337872992212581393856630195479497652901673713512521166525378161230555187533048420593947471813129612200144752233822813266162801491387549935155806020297859362854128681454426217004720218195882224167665614609673249621980401877902924242249588595676803160310810199137556879448737151368195257972688892746099625554858907183950851931933491398027442148826758854814737828652277568314416908157725675564989941070815819030445240221038217496799323019951012207873405691468956248130390378235533902404985116003437826266886987739121906606475731303623143200329455749581901558480377130159720629080444340726109731471019883008837513742341185696575128051614545464416787757284031322819793506248711302739726874025755725324384910150482674528116471489046494111482075329973585180490740082568522086359674718496902633512199330538907002332667281278979731847429568818647025298301235987027205470092687399936525187873690022884342879728340488625601421138970305211147598245187193182633347816806236256456380545035655785251370278390160478738610712851220040461346073289837038007471151542356703781161132318114344143187753892964221866691627934586629454925863546181333220605968238125895506022741317564068589966894028412014893649273140597784926977080672172899910225128071805410095910591400542401813855613603239046951261350921757414868627132058151309096991715156341197448153952272466516005786232188495092642587810724553776715119583900739556930277812116440239391995341321919708319415733808668193659548932816005450220751512338282886827826230920815795176103750520884214263519367439470706618533654935458309045342646927611488879172049723281422748130089389288776101129727804467007203989767561461731556547130262595540082304419039462801553172936280712267603061433486392516709246895464467463854258213902128612998139185784355312299161832490988665172183056408458140794024627148279835903977718379023192732581448501910734570060824472265269858402143704557039342495567197724378116046180339024333737793837820526923740947246075042345337091593279988114329254426241597737257430659889083056005794173175000918368114997997041818326087578289144064323704377765270576456200252145395957517853643844519346186516198841824076015637853768651036816169115105771786790433570549922632569266264856760712794379367650607792762524276600871676612328718692009513939980951342146322193017098697178761029044658333501103393324879710422261045383641865216618730409806827562258216664529057683396741262992186098886148355341691344085606239421519431818852266038638564661086035421370942931084164733671536770821204885084301663220391108928308004195426400323743342324203128788262663541847131528386191066361499555617491034361815763764554580114513100686924668981872537445530203832711692739782060064355379229908473585652731752528178353856530622184293936328231621018329303671805198044429096744078987609887035186356664856475709932441968194360664425492223144777179507826738294373007820177293030109675793315373557246413992226495682784527413869867131970393953859048754358894400018224826528775158018528447425979011694677118983204070790392786297805497441877483161857269524427574725450090520004477074266950914604873463913841362963937108654201809603818438962082421881452393421159079255453696464231806773285437053997767123268971713140156016342158698222700332668580517372098934699855538059108964945583539933358449932737068061245646377792174084399592735612070942836929001643209345675760024935298300352584727323948608809238193760783510022649166963704877457624815326686536914151980095680988948968029028673071060606122678085243192896447829669286038855091519718236386417614745580227470111208741236201087245213985478385648447582392479336561953731418115812499696263713961907507927718931309089507719804264092988992838280943623702371467409463938400188712665695595932574811639907798116332958693570568855338112168839041926512574496940090737248407320134570231491977082708176491683737958421315565024411780096484252759293059572452940737427883909280142962730066658042986074674613658062808824635189929720108826295648651535522947541404209590251791823107929927831203886090011644501107108232769418767800308332433628888548659465805478928775770865476069010497505003940490205355329474700710068022552163654815074504297779779143764720846431397499227539927750063394361900629836164512570127276929221422749022363648858675879583577147882734773400965584393152880145555168380477337767179191258783089814163464421858781053042159784847518256949430299954398573201191671655473340906198665913900806603192149021756159451451274473608027014049599891882458595481051049071235396587151700180013427526806032431796890080214299700150725526793472988242987872294728505661505227152180784603433460489441924877446638467235554597777676859641973037734070847072452642899519255839202098707536182247280948549645813143818571711784555359511553666344518179492020534006393324165640730015773236107480034234553449821114160859277108255129831069244120521810263899406535794446975391564577026161465681906697962622552849093395737008575151134207308509649588265755451031891170291668693368925585312591194935057024498799685533317112043298733108499293556380678024503928715312700139778010913751590994422861912617064048597672860047681072020941023412643539404515599371616705710244027735673914914747233638072295450522582367700921080305937109038494920291341144968271429255864597076629377891564740568300146907482512613734839494894873135574446861589500290283295876815219841813602031229995855577486494746840834909806039488316148254424325622228751476871522302724325875052479948576310765839579475390468983376692151881685886312049491479180314092695326155011636957617991480951765292342312984128014708518475798143484680473383416334552640892788639757744549469681319791995624811574495640056867176958474809774027292802630795688438544214219689498377870244870129303694791152903900692608097207329131252551414193023768611724149528637933601712004537083470504758228946689933597707271109224426059529633340882709821956155712992040426970490466418729258567919215253300637872911856515377777186226879081907140407000443187358659964900548759224811262967837800147431718636910446289644680257970776152324925470956961793708123932594662954177644519915454730900501049031219584948863220849039965232541042458484496933703591743508427174430729343741083063227672964453117746273152447568938151916334878716086979636140146781341100711538008401597921306343643829623351356304199114260921452047267875212925069027817751217268912791269704527361228137875298429478533109587636724079970999796756853922881016860994017963937997314523332020768442867479935899902784270494394574447877609550615759288948888532224601541933310829280817957030782530446403069309342345432142818773637147645766788267870581572812051229525966130236368464624467649846104571262044393326147868115553361008417018201405569687739542077844141994728072603613931290060480552651292579461130979748160338353422131482508382351792241178468573264839126190581188962654986669252911464022014316430406141484819609254833321897063177075850671939260581226575396922640566965148882025469169208157378994664508233060107175034153649422280220867932158172563339411076598902117715655100027535806337096214899222045197564397105483211451364838441691368425577013349681455799803392158065696329994618100826735311878169948734022297419936551062021537507931441801145021992546359454592159515418581999275111092479800243396586685186375546240284336580675507309807113925145673264885511310981670225966976087910362649728401803860954218457455348048436932835072896921820059021024578127197749263042346595177704813250070602918406112640381402774375439159712566077294397667965459811762897807159703086729444691237556142130954645711178752331700589204355964175211615517510900300209039989220781359299944332661440461897948765523008159597608008616319570961709783001056156722054602655225608167313615300201425900045085841709947140705118518469647137044533350226592745036104391320542932449379926262699333331638826882418668999061684107704712078159710325596918337570380595452066246637150259256505849484985976835133384720771213208600465940469490313724448092144470014197398287851812712515056044886652284484784495791472734582389426260948131075179633008638765785693495701626935343891212628106214263052147375385947507094654551963746189443187296280283531499090562258225571875774049659381360141772209824115942857965067028431936493828224539812695660859634507476408546825317163271174464699950217695006156153265566135420041391492787835981566340957798857217475671491411696713250441095398501574087178198018161292435914570343125474387808681214301430850713102694180989697952829965997331156963746364029299862982085614772050585059956374244267364375196623971665837854772880062269851332615959700095318166435558351828675819096658659953622732534277472586675202683439696626154236883276944613676761129245384155769070690155643410087109644528939172986060452109455201715217641853292532640462324082056846845468607044665778190084727437194962711647856877581300936083028716109336456171438817909412941320156692215846453784530642331362346912779980343120636288008486995125874001529396226739923040641432021877542449926991608207983218746094186048084496286878006998162640451367332229555721912947320405126276300739559652632953866754596579921298410925771098040585032735482246331909897249328093452262474584787155101628446955957788689896710544077032205256137383949821582990204418294303538037586335120951642883517548429982040401120425917270956836775357152709082207670727268366786904200917280967035949438783036752970258084320930469239172597660597030836862726590339434531681529892854231894022275902618666365165825767830476279270473861643085305203101022014360528349440302752653997445261138584405223274081618932491052696788302910054335463879612922920431415496404136306472331168476029032048289395810487121341945697388490146404185737828022112072690189870209852073277996755080979015471566636506402541530554918903677362014628259894560428686198446205871283598230822347625808647985795210419964613933757069232158182458259013714328081647306181292448503488293089160343397634865286304872163904353858963315420196476368565873363384582450789771603252866803100350286360072859537344685225250222929444971278415028587169721786780428354813532679194866567686892258592636126991475762365532755096092649994599551103027561839084655748342015368925317333360738823365821524280061420081384709942153122745749562536821734193148019940716342343939313904377026177291399241736353208841234847922054900347074534867996280024970749293336197952912218508442565042421859435911299873422543982337248426216670325865771820326970512918735156207844464464804444747949932649744427390118435050447972529541478912736388710068752684766134372151004445894020782429848682477387112433101104662713839480042594653504771009745246256180339819414059614915309892064198504038761396555530829251420177682248696198603240019178956386067887218814448858294651122156885499604517248039709825973799641662585026571625685025076384753734673151010607900964530684982791357026077066558975527728713324239420127722945785133176531536213372425727942027519329341750428406122101038321286311869882477923418626014763989821917010116598732688731303073498932294831509576671578509835898547062052726648607238220672964077179828254308263311097026289050084487238486651471370463862184254736304929432781043948166208458481945585670822633898933925990191245892615958590933878323564084014192232644170790183053746575237057911756571436455927742242207008442133177723016456429992948452571927641813886774972501100365126666882081163301984195488791470339472940655265022377569994727896856563751058767029340602898312446302736430802931721772997377455678360427169142851623804441904873815964513696934124049106238010172851925896393576705254852261125733996389533453882857208317143490274112340275200602918631249050606936015841722721017899757999913427103791997985510544388763315664729487616576445503436632050114914460033858997561163506110181462820776174306121863327630297763308881122664810869147413680507178670696119442070578583064741207476312635886187093271938957201189287865824903235142700786955242405105428117486166896555336069227037630630474665133959989568672298603514274083529861307929568817441931440811301294072515932776963975409037384681839187784029208546166222137235663625178599265576491140105058674180549794670269148499639112060604030025582534406671262266930217055127042923518876530434649705376843364252960126768120210233970552154181743678229908389870008638098702858844910842238475816329655066898364583242325463241631708271801780025449069712265902393308767073044448833870275933015006413326138246410181842348554089315297528320241118027232249987609247552699531931788333237557213002403890107462901092970810922471379343279465862752250393353077705213733717627224397998167882931366781908416020292596975813134425353455497487673833150970468511944795204126172849828840826077293974011358084153001898782424958695572203503257557493138149981824060600824329945507084052011816011389028005787439580896869791886705237303870274982380755865440992800610216075590573783127974084326342150406469215447758687679639319151757778339580251536990734629978437425374444471016420975405082405806222251660810492653883190713087949555025204006506980290414490508165511619732554166212838793701762955883016532720184649498173506905138765345381515155447366922879823065231614621800363994205440806382228035860165992857234498223288397057709098221595651754705449263767026006626333703533373045657902811609232834781839800802915986658335568166267669429218285172920938922570310801830383278191177534987743849532224933630948674764119330747620054722575638060318450231109596720312092827239960370212589029189977710969091834270697324125661536814732519171583968176295444192704192199979490849070442997908589448793415544341271202707436772557013539047650329917692022983982452649813127655700921404146803948173023024931633335125176761805644822755128335151920726230934611627172205509924490178597556977564285910088507613299156155178278086441242075099822142839548869221750621161152229594226100159608544392289008505958696986455518697455867140208070353999136582711098363493950498924458608666290897455351652239768509762970538687189123285344435697292361331428212870698331283030444833134712427110502986238661912249996431048328654957132969221890483624814912858711621594274385347923722483969411539656860858620131887907808153189587431442435090781760598982053314208030681528035518003499500659278060578265069478488109159067737999756055851901315364066477459107473350828626841905713471879887334081440680436285495763089096494213686327202183584443827515676292585216280827975656536864890658260998135804541235687224847151575688574144802897706822673847085796561825833923411224063611918480648998009481532979064498441567419843588621209695373370202067140137090519198463528651606369051579866410658125883840198122931764730988916626979294382804814239803928276714808269667896222219117965340176063802902974471242447048702462821914602813995387938524559718178249882412213325894824885732641119941051331040232375782722504673445446362220675296070290331568716046117085995581568111002925787866257160687590295019699848338463219138871052437184787426761900560875337216806530929365465182115348844280584388828550969404075002948697987389777196726276116300465228450257424971593780739120262587868991608807271224270084387606445061679536511256186521262576046962357194854995561753083161017273254864913638148027850294271831943421806363957118949425140497160992955461385085307375815449543005341263977021264415639054213612468957884310865055284401369378003399313311056197423560766380797998686098615083015669625984988403671251419504772954236638809153122385952871420768470482487003100106042851519581727794365399949018818916175410198062385553487215188168129036670696369843801704644846422593049792036615537356844164447036331889661122577688152959742706795088614774323706778703205970721135049763400238457164703899723041596723258992713894288780876738150990736610761721228315011561516000395366418432937982979080852611271201470023004703606904881201250284671719815227684788303856071840724589656514884358281377729476244281594295743439250467797323311260763715304981415117807724081149315888859051617050931501579668474607139253804628716635553265701681274444356696660714617871129579116174904548307281887316276034154560049343652994435362051519760533931916492209729760146486333993995307991702306884147385753880934631418276830279818627626202785067525616100505999961707358287430887143384523688094301410433081996141487040723747084830701258881151086394472276819005577644339613124506797718779527151447630849946574499645661145291783024934935730857608873420758501717449019229257318680454175922178001326082574837202851945641838254356401566982800106537179009050128179482456257192752354991336788455595984835662554025983823305677291021160066339408997626510138817999036613618034861683828520145601523035286005672277154269498404467488928719328352125700106000512165005795718831171692222371881818184093122085055599189364515560931053237050499432868220693486212532222177680806073998005844297885183154167538450708822807941527437807105478011112438560139620929936634513547593805130454062077389564952273316627878564987759365663270194001697704189184038288136662221247395441525439783639438256821832623686383692613059000033358932819904045992598185350024832827956786741277419334065363590605828257380014230480573077702308933082583957283762791845798715217027610457943729563837921976350561043659302797589657642877359971770819344164169905796152920088318522341858780136358265786683433816203078459245547770484639448000643936263787755581947716660636763651433443555373360978519260826529255062380384486328240676938505101165711855858566085714905601128213829286556188571357649367145364227877264012431377052805393134844903297379933614473622085790089340793975739827568487681405883844840606787830665298611153669989062197033847323503481162438133207377936475329979225710240583077636867413835891908936930159479532552340756306109652251092094309081385240472456175793845481432945326431383960607780594262265570912113498695295809853692633231565691114290737967664523154245388484899878950758844776236208208290317932602162271850192193240746803106657074011287048163934287533223206497320343920774832953096422386799709599728610977912047870028353819180702321737453131395905257531163108671705822588786547479162515944370739383107455469196867996005534664628130835799696082216606952931178706943613231383690566102476467983071650036706800243614755892278418354640146914166979396399599181580495624635033728826189121332459349500849571923142437309838079167310422130870829727543068715691382614192007197962017669500148617804487863946906905282339171182440739930458358012773524357978069621409019115606390728276866691668867386408298383329480290748074291987167105868323965701986244485012499371447811009855128124124178054583394014401740295404718967662268890428526982611682658867646071034476258005729363314298070926698527977992167800082680597371996846919958343179793036318382939447429783664007489852977741262889316679146314917078559957598746439403204890676203313033528575315340432661963394272144142328302972474652148391043157486429064294286228943232331952828947002355691744902545930075526665577299564163831813220149173975754284771674029494250701679215846316878967995989115218799760038776851134584113494187042228110775467699355786683560531369833842408476605183303698996950735577738219872140758500069136545220084754804819487302689873737318663722405643825826302699034794839452951918098499375437820379862504777430949211198746709529506578214033106551023734988787044696576588789752811203224496080954784863731985780001527804258424653832142282748336994063631458717038155380433807936012662935974954203144253506875725439322613425257629430052274807612429927680196505723950648659957067281395617671753408007493634396207166653907740041611506518827235013381633052925000488010486038031246585907371447700971503081302129855668566762134724821424139891236697502134005690268107872052245461890083382439963319032798664245293373381668078968698849874972598351328755048222189844788362384857434950211092660393111545298846666442987992586644159055004662652313602055425574297350779567005515061755400820331594671872518069755419916596823589581401560958777355982036458153086532533729352751597224499929802129870698090244903739854768058268157478440777534389900070827165666893738520125121351430153214196333084849382825806026201440144039579480866756729829987972927154722407267300330907673741062111973924436329416733950148854841940966102329006057356952217583022363426585274665182151542962942277415739081212520377964801728675625437808264491681901168148004202959379446485247154990250842658899339103721543214596311421965707650247935051717011136915789027163697329275836799503227823425720918709085021833160305566426624215241861798980741355366687113994382344556041849941767784318044441793919626975540774011691493543740703157192868025073867001501346523281588483132748782491319472186021757452714180296070436549049663759531266476846273913464362547226322583236417362229407389098982607620166186445871911335812079062138803719449660728936288527896655658873584971970182583139214285361240461220985136927918247099417594869761201823129526457252692710037875359861482616974023190412775759592851972504519475285546672550194561322367256270915651659776133681827085468807936111749274279560385858686234917575655144831183186910221262134003945847255144218766191951105978910416155489034046083959316895738031315627430464981342247261506716838197564205024746169891852872743372897230998054560931548152936250004300567879090457803470584714775988325173618272528983720449522906775537925456010870071302032373065762370531509053430475584953747951672686507220068680981025930510460928847725730146955944882945926439182256087083646362206252144326863777567984182867638349525054427387006437757494020299635761118675744007409129525695399057205895969471514003586803812875326340727771502296937036684913524796844120185823248891162100130760331289453301191630311091716731186157526823407788315090196270862400834434950811417019522358546286813245583285530586551486189372140223787312252502774879846330511010108163511805377172357528500644871970210031610426669542336466998917937130633739937050382908617506672307815901073509175103658963908428749174788150442070405162564767561156172331946510327784106527126780236755766547105211451430302456075839687372391657374276039838522529049543962956813133787602320642976809315978220319608137066080545066570692907038075091217200300090354723148770069347292418800022007107625853315033463919792669120030975395041076279745082762549280252693929659306430740290842959556349116283121661776712458322069426626335376878065768985500176644515280475369674434661853231119604925951218924332561905771085372118244516588946965492563911644259495445461997869092615923341575383387057924432302367973907874685086293199992765309367637219418387676453084113703412563335567749901243322735798288564752696373442560571455759512668856517231418618465452478087559071156715292932215862496240729026251551816803846272914278140727545115004393436904696334320370475391606248348642040249828202300812687952026195584996958569546764612407431218972431368758585030603976489804660463213817544271628129844847300736963298009976912787835307819689590075808620170314617903466585655422889910261967002590259366993852487132941836971476627344195012884993108393407851389015607107678939056038775223753288187681655612036288699630234694449282470491659135671758677181878858393080875631439606728680471410323158786977084201417666859252120610583623341763145630525204503118629023969223330861132495207659798029471467034126563810958368741171348804754490492582974917998383451454438170023188484307907041493230319803182985425691450004326438329773293575687730272209907619131310907900300724375724177574358207536473973909080009259262595519992481894959136531234005258652719710352194804758998974307471718069101071957441246991546046047524550320145308432146601180953525730417662616990510737365359811892159309623231915783259630988376144313679394218227774895858398921460124932868852853631192535788176100260252176742700873175442452533308697362453339543353672797464536189269245333586027117293034257223926594214815450729664312614316381099360191376671095527738910822651592904750985180309877520064312748555628797754037009950700370827241773560531305803066632186225439244703290552102446538291907509321375966302856488301959075374600390464834557937216513243751599633214690958526041634372203849592786500282127860257794043729869420542888794884181251003694612078916027387021598942780523250668425829872230952851731482294083785413317438916591368167011129128449068272377436377549391360392540764552051776954947105752391796072357695582292621536135634532011645008260002202077464854315660255799986659476128053462078127888993202204595315720221981848247659214449126599341995543735696027545055645336161494770224938215042342106955582351899610109336882499064267721826157023376535700504500105956583438332670874454595982273088727668318130400106890542516577143584923918245550855380794457513005651077266857244926099646882824435494765672498695288394867349194897859621802555501677648962206177187950819913589799317013071980039822939412562832289873793426675691902285601031806541850594094516421970524874354740001815180231822901707395712574029106811862152000829270869875323776566376485949266993271110016120989363030494393809573907553846996936708453195257930618379571799601449755779556281394244132248441102677415177035997807622757851942028549898393992236294930215503862561337336473666575664411052005867707075788857430147059672149661278725494246517888729555928299031324564606818896055320881579357895623368746633073227135129514747667773276150093591890417911545575954818779740067475337458406034130967341715590253406956728004577689485240417553727742500721527185963806655551628757836667033668832574059672065971210150700770235113086733235588482619809844959501446534158427466867737997188072018228992570724713434558333474929058768963088111177618082849640392064361954277548425267784724991034916386317923320187777684863969960773143066828651919216673705074413272621343271387063627770381302643000998612474666847916449043180240800993164504926536575171247712213444934315960836998832758297362845423100402135883594745106510363213288374327766869299171446943359270684000147943949429446317807846632781018038306677147286894695071140321408926088364115315275133971375675646671286191959645142271421632385981779406340124773817515221089503566484662556439108040896862967305957968440177379505512900614144238381925824695408115984126703288230348838717826032582867325133301290887452698488489233597268857487797630959469242143308925221803373847215250684641459468881506412612745762388807146156517887849331027300732847109047527937740901628478042713716319009733508653865429865532076910291334006938223160074973874466083060784259029051997372194982338317971749829016500665147580371514265129467032313440633126679827529222552412633227657993065619177406443720597116727956282694892657618244823671885426988426691318701160884837198605764705770902401314835724266081438764219853330648274562564132606409791806626452207641132795114704332726927829465655494339239609005015940820832296757773654805817298717553415759981794516829737499816578630826764516732633029148986892415309843624471030515407145888482943235539076357755024220871951125949849633393051790747187742936712084390697268795476263132677212950144814781120421429445139226620086049389894722372539431932975318377038774628166746320415009864141520325991866980826282145754913193667626242452651793562671411432227593171041245777743599377918414601981131789974071201963783508682707675730842020346325691859511954851790480250407629208375890103050470749079658897368473758468151081276760208177508310647309636476417163275703006949420525028323955684650648835085986205622674490839130570286268894967638813938474093884191235303930857265102821556588968449858935735321865176949906393499423830693887690538108054116204587101567668466468619998167909487075277619500515183977440358863689667705473105018647731762967853970170340054460847731702632420931486871447505102645985672632512314247474518516181164041175854407204259546833217875311960766941406426460752767624654294971542769939981532220340944089815806021615367884465097132881649339734783892819601490894933608182502239776456648909044861753803795068121955330065497049969499938132444349295598937249434882330073907146730097525133625959101911460618686615731048896114495756188591396075153432476464735690452070962272426261787621073887056700986102843019203006616756146233503100860076766400909560242349610468013391454988350348574257458799595428296213820048539890828682396903322772564072508879321250517637189405758508194399177694314854220550251139755214675175636958629647743590393891520601466696893243995680358513964426732212636381761392476671354604862333684213205569963139743937822606470695739324565510446908830286919590860840907046855385907200046933025997809340098672206588817030267505295201278883186173618509904032584440122179282615700969108315137431733454597365074830033890633512450985673918711254400760148409255737786261435541976256317367171047453256928881624200630162665806144146410996628802399678126949882369458835169630162929540180210186367045192833373200906286484124119668222922937787735844783342218511947812520267622056769647470565146688764520441156943063525057377985076763137486404953783726124202371101735775498328018940365380611521005027030643561584288051102410034880096596039214199174045079823645265374095442845002179382141512426858694329664838625936297460744065494697034921490491829154271657903389901155348266110391403031573911007257642760081337950835766485602612623192547957767342955183816254795493019447895832989278001866152314549939351623446046092705968762746421626870682041634586957217240383340933936508051911985044619406661464161916072142267432817061775107387604871023603882519220711553928345045968619168785775181860804186610991561362291278903428229596407092927668452917216925202629872522993029654745542037817801122245857227767160259572611535502490287176509034674695544351481422201351482536706147770957760066825781540392014280815535342733646252962993858273694028015141040955666297677421102849738488022431837306731141397310563301229512940946431895216721312066186196590230472768732781633778099853470899100087821360836917207145496351941358093993329749567716671312853681028998245960464275785892134537266899487518535006318672355525975541776180132196368808304705233876374330709105917143530510529277435434800104761494753308305685493042274417252581845309002790802787547805890536856690456607341312342214337130602652073762429925894318606697158127456183494736820544058155818056849074242747679259329468661644273628628637404540490201880734068916651344263131044302008852758954524769590282941138881448626873610783766844638285940647864629659402008019101981741800509934693973666236177733905580640308735821959191480165699824400229671263671896461011510340420805104313668278562048650201735840285806953049665190600578229031337457679104142882257167535324848699176408030041151219402758436473773704430283220156569187771886036388265432921608945166656014173180924647489948569888634220151562482963338078439659115609533836599984263714973707083585582167891630247050892770872985695886398404271786549268931327886252465287431349298304054256804361651684226010486078350598924106282046926151861198056834484921774135178394177246916147402382102962651120634176661161026463633171349809449022948530627424179205865778069047022007653587052870452599405247280056309645044338306310697177939680078440667918375303489376210294505967934071995894061164489093211668638720097667618848793645321482084336995109549399252613134988153304513684649349464448753079684991862471263564790485717224735738890127157340788082093994266711365239427061427563181752637817046527458172030025166898427152992454694590826817599103852126101749569932627890337053553999343369170973414563396025054552189334715413011638869536371378279103725854567308359281884846643567474279258809810759839174669503699728450285241280896798608531617826405100058630543232860525548018440691727788806435538380578949894234158698261817357761516367585353049089296285422812507405784292599608343924592277223143637143535248055202284465533254381207417099271972397569263535488618750753448700915185251789516324948365029431034469286599493706932407548533462553973902606666165310949111713523666825445460754791492953389806595577196785718196584936284422085072999615895713314708825341037256267861677165873514342504232783162379648160629343419583476955936353698834505916922766878840112722704539214166429670081436448887755981311607011965930498485909702840277785113930418659658453579724462272350859648105117609388325619674802405336035769520739660911491479664381827899071765350619898032992035652272016203293695995259818692426491949302779932792736995228608464550820733383671035266719601566347626495930133302119815961579130502510322617225346463959822928660742648732033631518049450505473465926022269941809097103752224290348803647614462439334413473696800431618527328666875175498468230151068429964154007921441640102113193861891627331879744994235616721366917189841739512491345821990045155409584360772566253739049701765880276501181888047167561467362529985513401672099875216224777673806537968506566073936862436210849596143848579378158910654055055027700948340169391894887382245235128300959883219858930992085580338099088054840089140506517683661858042177294327217945087676073377839024214938498164681836939771167074749148087376406611654798228996628201607971108125098737197344351150432229850788975407133939138460175986967755426521285174568223285362058527381157786345418775092162682176971911126918166213262731689811891411460357141203871793507240935060518029541637566285766713035028766864956194511534588726589788910854712476540151647276435857466846959363703387396752402173846162702501064459571920075830202286791383393558024851367724668486743260625409844258434387937685708796550856176320954951815355614024195627265886383724133791891018005333513992100330607254135209969717676496532989010976901257470756423444224116757870768778354608217531585346539087832489556420943201093216709602604846644985536071676561119596077204588046988364174298753227564978733519011760679836935662517887175046196591643849397132975098722654170757708467566325622216332790728555386065796521913736717153789211939184825249517502287644071211359157699887251899531644697054661493869285785162698523404118218199167042259806188966594531011465036770755631083664845104194333169414145846935864840811543903446364592301787532159728151308104063903072394492290996244645416041051077096943262881053999195039558793734546145583152580476828356436685420412193831811351370319885569763758316056416931226580694859039963413424423674961646654001808412196412937865388166212251046649759600318118099933587979596897941340423047890012137658143678459827978736935981969225180397370441273662536752935195928580407567189327518861056453129518975140584662578234361263043668350380878626878625699004275194991113059919060387259110907781926008497276212142121525150876528828363051608842106607302741939180157536219360363227509785278540290849965637227172189539805660429413550124847465295920438221957065595374589238443623153280945004403963013776374388602534935210907149256389976949147111089852944204658550301888567250034748802073729648962773341638787520735685278882914325284103055073798800640810662582271021267016866789028478817262064525538506645370207758408327795532387424351330282964819801516689822088294315489265380630673726717552303095298065674234075558665044558709726349322793850316256412804460641569995011656259285344308078166301032090266863337239469568831332233554029795955518529501900120362549078026875608800271711735934624315026981896957617018125999817817545984698147229969988336726795643328427752505969959203886920170863611399559565271101478367267454004502523558800851110382465423951597983037133661328527627580760886734149978751218637794292923012825059523880945020077706463788301278828020280057244667816371085513087205437025259258085650444794175847087220831769613272140136510226007185440378479560709507791439662388515294839983606733443289614362693056650425956242441356201859461503510894857857453642378886065411513467128735762845641013666948063888177516181692112624676277588523296991305931231133124075146328374623944233241898368127883118351281683333175923980938034353005162207520544843276548529260150469753428568350225745948358184756840404228254019807963498042455815195559282370418127849418207720659021086219128042948232614581227131078339727132584635574055043803598446431050640262159947774037564073269331941453740368653800111214767793294169413095829577057584115117431508882181924312774262187114614729481998430353015452717381161575123130216445859087325863451860415659372374905312253720628657955806947457999556673229989476882409410878566466876032113905780882622916540495824699550146276266637897070541772327254385653598320436105713218340460657001708787549632348940920072177037049278437978576530467395663631258813455500803633958899070149752221660148193455286742533020255371960746026218468282781786566562272835120270429609372777553320523913513929546921585498013046946741690121622509153079734592976686805959916318886146591365063982811973794155175582937811034784802051737383718704133594126030594362259560950458977480921460908041612799721078623675777168202937299947705102411343098670070287502987500486756303773831403219963240610467688584240461334944827521537760750295245939196664072230355879911766510572745280481883574406049525098084050589902636820351022820621081267343239877229690726591193781039537351225956726566383067761981258583794607755647919916234203516148754241653927834658076498648094982008204678789444989499005181069792311344400651559791664598771696137196582353075189782389945825035378087339132740812596044634643765639078041464346407904738484409072542370574976783012533159713393889955651549248586976968176255868415408308511271906669021801086643581158926343437290949885926236393919593516710959187784483075509946330751168819383829180674173050144955322268270070089690243707877431655763924568038731214865872106260416906324097907824897121245780248392302386783572392324051238432629424524729877841030401165518333628201086889857872509867030243691009450095732594021969418339444363887500969936665318236630827177004530112889843138386609751976092110960457424534645878536788062333347817564309975390260997003648275223371092294089879533334304981198445177923770007567916017294816941332355421422644295370173684245908896760126033946359197139349375284891595146811180610681031196521784670711857913679326884059642532948755066109628453528492263253663856886486071876948152911970453619705083237335231410316789962740798783365719542692343715762624754705670921848871872581773586451464711210308216860464120709269135896488050565867367223644036045215004329118501269090022794370871095169362822482908416763516811262986760620120998775293606668843276395120051995161384091704952981327007872571781192606512750467765626703763941277778716279456862263625850963186140006326101641639712606328646242679361379933771334711323545235704921942552977128097334513178354387653426717800845574225167567737328638560345307286083649694550105523993388283689964656864554169300204242140004836773420663691375315921784637296501350701762118656859196079235555175959080522918729409085488180822714214289889797947740364095071256480017908540609183187238820909571071502954269234020984687649766356725092953732036430769086570941451974145603477642689665956143938185460460132255594391141448940003428203779656840880924635452421280677838223151934611586317817186919661443968514866169529006932611861370057650628244166248747390326692831756920834511614862653972970078223024250813314825381851509639452034187830881374323031640652077323362316005399904276173557781260583805490498935981482390024437828167109132111852315736643702492159425354421148842636314303536854391759410219999574564860677534987147389193470773691350461775996872183211797782313166084709048616051640793041802371423485123641233869980488585839453590922821134338472436837066832614398399242801084952879383998090833920832548809388634134143198986524834772198943198562311774009220142098666014463745846349159494619493328524583735990076826105260427246590530650443265511738766422438657891418037104744653171768210211032360069682030916282819291770033980044014750690209443516332850941015061716295024664529125460033382115687239361921859493068753316683852642296178099994388565420355609149331784143559024569530137954473103665438411521987011597806989752185036960520171210378897433128102583682849848340874744059571741305426030744623463177792021355699837715369828405604166275153673884640865880570250909209789939082318422626139996770447373892907765045952643443584179643900550847808401362505202261541443120089250637156399767148504517045856348861253274216250234779676606225800936031244892837146714472210268888823215772905886792740546010320164463681314093069144449509270210300816149892099688384498474456109930121871745086352808493806787662606007488611071103080350575685635022585170462243617602211619617187712715199307434619790288179097379516154196993409158060684057575983227261768841326714535488460947891909756227803190248840292991505683641594448978309202789234431350925278286596800733355467330032206281006842976953211362797814694584150855620215970004624167616100400174612223796180277589470846955447361508956372477691263944395492877312402825796030147872237850241693370087885022060323976236325420090439631766130119878938689177382322628762985673155318538682746449683230948491259099766837900576444073890438646896157813700929248649467285177586018630376723965835680310416458841872015960174014869388255402910560092274964064856679359733649524081923809282019528104423033321528105921635342144163495251983308602619960460671212701581626940901268513002780267124053665861136863703311942887080876502278354179258176005240260056765467343696072998551102773004466942220339226160840412064348732435669453686708803731579372059237601730663814224238453865742093426657637820061261212464579823228392524915406945065047840779050789942910469728980470007598727742592103667395358219675314582007036510518248366975918521179785360907198555294976317601474842852487584221615331876484958022529719385717175736401391920095151786773881323276153174160116872660439804829465869646126032030282982276373816002042793016435852110643440332813850776057356877797801031217087342856609365121874635359512205002026025840996465464882958402905177507446865158489478943211387600227814019377201881154272270570178333751099477120471153269057554297644927846040685448501861541033333548583194589582501940754775200832869014023211367196226899488059095063462677265334954154435888108564665582079237685334063555190559786322724661622004046399271100548443639358189912194533002773048860675752344509783778745809702356680756093973568203629155056618820248611524660536531067096306570151248963207657898815357730833885191513810311576130425542059125529169198148324743357740424557474279553005291131444156913404970719048814306406448623134971148242699091033745310164671364462453932791375685818957647751482671957149033439237349013525101708899189927520934613694801076032496913912079185410316550610607158038390876030150277943894967847701864522122855323057215544596690657395424449445773701522788027638863639887204124496333236566621673835467671734468549894080148731778996678707119879829194806093748527825607938564368921063578395002384108821962230477918540877197516432664880825884931208976569544676257839227876182015928028191029952967403715808025279708524520736122920836110930682398881118967254569034830361824220822173853262115617607628321345003171941522639215554502741670010162397213018111672638861361390916928070102253189979198879760526359585793218435987379930039866716118883306942334245718021516701073456969630867874406001977701875649455531794950627462606912954208686497229581327212045913797120395425210413217435248689495365338567221326454398741746779770851725721523522417206262352317694437934642553316924349880124622295307921411771022761748927445555739069482981039007732445415176281132017686523911162273473866091390754843811474133395166171392683408043259898391570396106787914221597429306126924874349779304528370274540191331008380748200405546354306769991653819414146791945676584413147719255900172441004775798995509395068224371327384851949298652416452621583875233825178778873589973591845624381389845898483114001173321414546981071948071974280918161616792478015941224282617872856577632696190057350839107579797852550844641085761172693591890540572641510773988880646496953834689180271709950101909828260936636772357183628456026532228112653230060089958068927017275404449369561923977833999335577309239320208601356329712229353686620130140299490683907267505214523882308312744471088976951919812280627020757998998138078835282682968665351792898669237800523084468976024993413333071511205053943060012819985486447055815875985289208839178851662888792346566764143749687016121621252869206157429297699584219985613863351287756283292521880436250734995399240001037256945300342930225923498267230304644175816347057995182715846354617546731170486771233793443640059292928477623735897355261920643271201612855199293249597114762385423160858792535861996420152347638154779157416896918538539834706765968289494959354799332204716014825664177375646241327394612482646625531781489816485716207297484590598356620159067957431678166149730869060110460852592447652249101521097016059962867872281753730289825628698996276253049718639627420611930023115363579107487870141461356847196081236468041518113828218695117527049975757353727388474795521811684163498834295550376859265083196141437304006036262364183380424380876169312735060694398884231220198602227053918188191784317606847377847141285134373282793233966533649179089139304884953898089684149070661714021937624628706721271404320312987014454931727849760693085749352797115356557322703450318951704826145321678472786064578373792008366682504587916040957451376240549971253029733965499683177480145478652138898608021180761173359565481855321271776177047771806724904707227966344547516299731252798922206095034320503659828868585174490838006054380315952119548345261289690095770946602620344422487422404264923116504226939585489173593796816839430926904225596245412226317507648865370625749360730895695552389610460726718216376523743896620684117696096332479342368254496014271065430671844584933532501770138659028694252061078333640461870966705086199185556986992267013689682189966281616877229225461772677846668406425893360491197329877160783577736261766659320521192650897373814889724150530140208523929654800207399800506669497865406049517408311670858428300881741347870869445374404091298452878160099530378689703156501486289658265244458461576980434172874446734425745148871347898377612993707965343498191222452226363791899834841436100175633317532937908322310382540616642570768491805069348111175206695320952956347683672035901067317563937771251558351763433180514082479975637435181018845567393822782287427264163256369481781190012680788642414582534617410336876317901790245503083947481277881078211710210826088475748006883238645965114676342580274044015041740477328094630600911983823778943813324484230733583120173471778440489036912952818027803186748056197824933758595741500407404053589320078356807469122914281535472120491480828380534391370526836941083899015948226496092534137137027037306165954740804621496150143921273937973307302058500975139916007703196751823495087604102977059086426063935085856337604512377241338569056871533948696941620527395870155330394932843325526498851740121552386967343600071902638370032582758785660991741650982017909840498884776025132865218012392956152140836463434426295764934988034947306620530930220344640556179376938905879971311230497714965342557578177778511289613574808936545002778421606193867331578871872130797131231192611350475328005641260542165010595769201203869318257438427825576264680349061903400505924943554117463610317499350291481453250462379944065607226945014952426116665567470549312987426105539162877399014873020969548750530717485801174459459103022943772582975825726606615360671897481606363272116140891669236512721524396150604690533223865480420319633195768767027865312497239141778139561328109043959415048758374714838301908574996229828193352975378527390896504246207335923033729611529332983033686293598085043801192358034238432652590450554203974477419762519978961363584449219048980754853420062534617789180501170234470550664773878153026286757609465649131453164598416704492245078228309968508729560614913274648283232899320935622114746662684241899550451686068426001867210636423292562813248364841823021818369104148551428624193919299549040441124051071314824489619318352989406189008036028917326211612008347527953271846538795931944722386467201493487552095674226975306786011493908287808923269289409787511056902411407935862366741024268534115723064695874685108052959795335538159160630974674584953962175546054526593465466710186114033080581388255557109110457590667820064170792834929268653947891230895375855298853627148334076709209260055259429196509494459629011340338049896053703363763823832989487678649089186998223143897366974096234857425619919326975158818856054032038792286527659024007153724006900240248034993909148650599485718702760811912706068322198943400998032576469641574495896283744169308825854048286678005510341267962514029996484575858786898014932862481881758459677934255233249291859339718997452606964912794849843137965643841568673877910827080790712410013129421750283670875572756927000625521815855108021481639528065291952677030312355497090016784916228235833711907722748368965376869776294408089540013099532039671766778167332142702517317530848587071943323603791463365281814497660635637147104237569531775363388551663227008999187560403533173480181454931365858650056046685589300100117441097604739744621612835408789618921159192223355806078079496934583372403179560828243233838389857598064266638049509134680123993048878273779431040443361790448251914965194021767866863407012515392023601822711988832552514735641764980668202215486116004238766859317381196299367878598696861186841545779305688708643739521659046601984484994013087383871569908998499396727779988250933929162954036409620159437852698479421449456463209099697088569320925813417420116893928929807349118523114654636970113500469011711873815923822306859735138155771309067164309739035234329716183328981953147927783958228633733654291374088794479038521276047153500635247405051329417427364159598596513574422923578584234101388380456709025098499213005757774863571321754792524183539233961678735093360095795458863960240388279551026523898632746903491929972345355532213812762406646756525722357473845515307678083865105327319638891198398190622483138717790253550041816632301554505672942772174413702024492405638149892806565552284690400987790115237224967841655139958542219328606995840987813201688482979347389153818936959325369012310407585870576040958299136568649421834710254337361853371377082965246566908474317552659033386545331034967598938992072784759752756033033800873144849647758725376256188311390960457643624049161125340504224089981440555423345272934340556303511937488934787322125029765589227027486448794772883474401673149770572114879701011979504856962852099773139928477748701479242402918701175299941251011633428952207010822582552554125667204197987688060173975531406272057314429316691120389589739488832080034075464383107410047815422080938467591550196514625062903879495823044954898094292218708872337540023285668923779445731715343491611061648647794746237204656347287012794708866063798297965223673344881517388222327159412918401407949623736016923630463046427022018445815820261582692632278297729861055569205964178517097323981763555132516038235179476144722357610264842057098721499738415587468449861932597638609810182354918866906006280729443058043004094223397638561102878736794200477001717520338376291876519670337741659270429759334719696673144904035435530494897426522532116079412727808777833576795803858210929602313621028366380129768666395653862403600513812341315469342079781946809726594439172464893236565242370147663985240974796695506916181981957021112925107452645810248216039332096328831373565701978073531979730459724558794598969167790035157855467378884375360146341386348613799317099099017817841534612828912822747913127811003359652290811826613841968053251453148828803993964634339373699392321264598472207988403713587024220021537148663511662243953996435020235862494717527461021354277381468366210630894944007369379517602563945525251112992392776167398936032265041527072571269924227616793778151954111010257699539082707731183113647542193933913177082908048459853615291778364117271560798651960965003453941660529901757777104477985969081267381287239363407430589122825186265238939656639360475928980045491149043480021928079594851470453183190219390113419545845867901127593613014867686491720244370334360811771301335308552190924900783149950730118719266581570378999329896785001880235468246463917666883742068693225213017100340890131734216318792458798834713537380897073400166390638330210528261700439496151157942287920873521356443841686212109050214475511056439757853524268318788675722130361250622992479209747071279138501976493251684889898532676018131374433198994378751236167551910676937469882709747317521542946489639044602388878682200081661163978391690551581862413338299156040648254764004236651502557057029111690512324266598794369176639839503577980418768720504005171635247510296927519596808593748839106775205726204917291904918690123169970722970850739974775247399278959824902252186058663673396477386410245926318123179555562612806591753976024607362078959634790843354268278953249577487378200691744181579560637608322953769970513354815461612171092552202883911239629150621393210297344331837121318157609274549961075677511067023263537078513610396287580263071762021262585351401388351874793691627105500678734508988853109050790882895372798841805624685807448604526009000510474669213847539287464473705616770498351467848523835045578472856563223912511876628847951911112749161197385093020302639516573350515153099722186721507896180253269130762082338405640304469980241800101497757003170666748216900557555687194899374684774019764191885912998296231400410133399176659935877959398373237417756590938411135195097499098346988959825828362992328489519180068861372154397691196679236483436894020530502793822912901672991260828881252964312731144372802072521771421319379827546444057280062282379574809697942288088023853530630857684572833879000665491551190026898725443280878753758704704220355663526664168100247303450009758312693197301582053902111858008821057454500983772057508911946682103096333157595733258130432744933887380110673972040695704801914673947857823954374500610699717562116720504439329100611703581061022364515508569303031649364983690173163700526599889575960211329411881355881180336090158986340307202045433043977628443844834474910101947489427842237358072019695326731604511591019220340805898014451245989015529711655756254696957406377931535382300518362656271085798375760199749421938321101796902593126629040188650505950569776208099576767038671719846330406177050172460283701977227312225596617256889259205053513621429476037352399151763539828232428319677377688911119619452757167483346007126874312357749499152272280248596760137991609180389176786642034490770452824736210882453171894948439329461751819281194176869684951231963056732286989103805786034261852894619690790882403674427345668419570404661777368445085427601874767339673204404794137471716660229063957270544203641109598455460716318631998670660228739249245438223862002239923767994105692610342152867831081658009823873194598406118432571025932765104850504058728252285469745370313003880044451747463951532658863786133745044453777125921851323854871729002232354114088508308285333180490551096622406303230859791001354890290033344753257401073536474516896057562632758311588222475824638697717974680252123216316081328812518494702169707920436797845409576680314165163809121266043620824815369709324487011330279803048109921237631032703986924452820402083894715091759776410716446957140838383810171109098235346731241736297003889504896989281196943600716552771020121157870178614026168278409767060847147046816521353223993811225695424436858336351454901334893410272966018126649725300721289972891922845883892997772261789111674120680574123603960083608217545534385786255102167999194663654697346016571776994303269747453674043363742672878518643061759786461746677090342672588085548085254234240753677387088075894111538242717055326980723147830338665044816906856631477460967346761085544010173376563365256672370895641095317828071242465039281578307713282705504081361439319266089570565541364007470293483477258698896538072102922087428991251896553118839309964377160348424603272082114739015318708651183319358378366009032057123386302154521413229124004769896157652501582476595731594141999353181288252079577467577373472291541395323122185486484353166318775767691284851143023855835932714414163455829849887367262512022594091835230167544940520403143502608500158858759930828294121874194479671378535667640230183573288459714310195162272583959965602339562267363999555284917592496698611001239222682743575424573948433087775342409299627058674928488958559719217404040294494451017938057813463062063043507745606868730520271211545134627388532320980473524554267310607387811973727328418543950152040408102839786288567024910073875483955717288926974566849187413278641112154616115103407218228054948516262091869399249768484074526845809825795709411491259692923179458324054743695761215200834086723075585059047459592875590156539216265237176718584928344637416185471050129163021444775214455159230897224342653430750380834817239273878089703122463672497303634028355960172894385679670085562228006469907673273477157090601374726475560422754944451366689114981069004782474570497621244326928708970520772457530826900058428656929109350848096935944421347824579592091213194776838543905495190181012920991948928391408528710698668734149667963589838421527173198462511957186253681339203855415816453227748731064833112326056170193787862491751967768853103384115299216711804344178738484410846733571682343776904803409729898722924469863026835474843152484287256476786931253502218133721715977624269027233339134546735474582454755049267547952638763157198836572780881966956956409757753092351443372244721377951843511610682666304547127628666069923554420344934717253682873366929975146720172496737773324255842752879962717683791486785362031930401577849313189077168570283842548708421840437030598291332915646529387669340525046955676089636625102919401860548952220302568189858281181814070260854309214999505223215767531538667989942339370855564906494305974942859455124004470284921081666760409386562847782847450709697332058437924080835425051077549727724422050572543024252596883689256819536488839320742687285712054788856490694815510742890985286056447534490299427940674915733737959956190490810698109820058306577319376164504139689518190279316164740605257300195621635029718343989707511977288777027642000642013915902099146126855182506039254078335505349555230755625728983563651027975144719450457865935487084872950928376320587402354069503223490699722359326605797096748574635945087760277825594989493281019736857572639738925744488770813940332846602125855607254772340680105910088712527688376787155257715756953752877748525199892982743402427826419253713355655228323938130792393289118339067337141036844470911076592843437829688344162214004992116093837919455967286061014068776249848676482095969380927091457168036790206891532827944548396263206811506269264346540746963306294408246009942471777058815018309314988958918179303122719647950867869960726506228325787680732881445073776508244702859762780301332955175373614104540758359130010193020738358650675141589691343655505805814202206262253840898407353975328422170870085362296659900808999244773705529648680936803711811585631882612149549490930050354818294214595388922097931656149302986541363220184953222008248103436105288308176493270573264706182521959010002546125728096480534727830891464064241746289066485645690978722419211159912433065358749508261561092380634263197973049000878194109441700041064919103553661006003981989078962230802777807582092057632598561260028086006826891110694235597685396241376319442286671934137810323176981832197107936777513582715588418868842640701880944857864498617213041233306663982506747100773814742817399897714997487237003192745692045556021409034307998514152152416198010479601101579183802290644787622162330273265893240249158322864254094835421866134976771681920922705943229419710752440838174482583745042298147667406967715970206353796852362708006908943535229952651439755897805275838098284393589849460658293195487441108001517203855464562582727111302831850679134018975436149355234591538724821961711932474445573289491356558599873150782810830524085522432756396223757940951531611629139896404851883726164777077002123048979356678188456085407144261149243709116787157664850136782076329033385737871628466571575710049790779355925990814897737461848720300086414752072442116526029501576666017788929972101757992035924152136212046194166663668746895296088486633669186785270010452661899005011247110246467620045808667525374811417428936767909678343082921018817817363101743054495773612248633796704385870426917308712297290955506536062308637174576031766645149689944883536413321843900762244735539729850334172875509094402518799969775542066987392111757026558705211528590731336055184070784633531053519454469103241173465143491857815732002287584318763184609836821931208593978467311940296302810610609284868995131187704768240348267001786023716853021942081177578822407781711256884380461220062690768118221354980531283266947441244254264724888032900827873796597969831932526457920388823338474379824699847203624523202260119756759379182189833794004433702210128572584662190105635995492291962563741270525224406338972451325014231114137832267726219055005114934483870993756613593533820955547387142412075531013180710677562935405635850621336917183644838142120088274190682228917539392998848708876729744007455979367545529955903242371585011614828140647194394997863874346209635068798931959592259529777087224430434570682194490975782672933487197080064667325708315724351175443068873678325400441565113417406078099535342125102809179288636731801487379129592354224802921931477089303772756616028122269483799149937575125749858550221829804826829416120300999907148742769631151519752253287434212763120918732735235313474450599694486995592252023367787977833898783836056134965009139259618756055194707300512355966184778874294942154077687147130029537024575260217316527676378456385442775982081305853958789258829136212325015895941171084938814890322806094894090117871676919975266885872097453069408707299764203912135823615297097984264104070366670478246754189320571483125386066073144300361663614720247835599649167665546109412462612980179324417469080749565810394914659873409826628354563634992082647822268537181310933415626859500846865899016059210006147158305040412656364339363805928737494327681418173653502530524109608048980651216895399282486344366156726179224427388011814069652287344696772742187588032771778103567324311831839384221747022949751802251176791307232348856809648533169106579728826832551601096467455955550280889021247995565394936910668571939457645904844105927505560328407019348013775006197185557985005951861073993359588818389394077070264968790578970696680206757672914810355604244926373074756541933412546974063364511041880180807853781750326440693363351454825151602762019566423681511647372054261565505877603040927029760010205723492085900624007142166548751261630281473873665059575564363383698900659371052786298505574986873511383911347320412239579091132996086644782905898180894716071210984302119013020354465421802055086024179064581170245736990711140964289809272377580055640693852210967360473218409320990346852960816727545002100590122262618503513902133941960268742579118141143756216594047463653529053055439066869914240859289644230398630197859753584221535316087829525631702590541758025266196639387853773299884881292124299089040801471690954451590459258658312581251894382897773099381279918710619817219973794450450810877311815517335900553491074937967405722282484346930784469964313079900588642150848404544618365946932411251018488824286125211896954693260733299137599790651949749006929384262737176691337101748815708985188019635740443353335231143598735834148509814176540162147799544652594234112456039070767311031169051982104135427943140039665906662189770509943079976483991199370205027776215762781470064063164231184006819742273816134998905139516082672753167241953810298482475280132831468883823042712453448663705267237404633466924398566699317784198402111571639161496871260884474999992925879866137304013682305772294687445961922491455216147402312217276135710795815657949290829042900814176979171709462420071365569790717382190730191163537012260064155909830356684570918473632442607965054399903339176155957299742022091389197945550541079597057074943137610418953489660907207910352034376266396026867051494436898489867437227283239304715296852700956604084652367751932559090196236713258216272086628195868157928711230812922570281683475543877599415493636711562626190330342182786865465897830070630247072580003933130249926783012294601683990512548137639103164274190239988821122279327241745174366268006453983196680499564599374311194415492377593344014281548108925134150819905300164175253339454203287646789917152672597101296735239559824969075399808755140927644295897693669760258695767188106845487300664329932029618157984873583144513139492810740937918944343019476173392168563884484367668341607204135756634425698139651522039734494822536774115905992229046253560013479077316171543284486293962025813049357047361827165644333291415421411548065045199484188312630886337006274782176791820933033186778101554039121178581182143224071037449939104216765170459736197068226119876418931443542244914009590892640151784592515555616382360018662493246135897264659132474569988962794031025318283409454890664392773778782791936172398544389436243954344699049827170077097536275382758761916514214951485503824415003420808273378111187025166913733547385207993089641307162231916804621136759969134643964796995377062280707040400584909556111996942342036695786494570141604096076533641844633703747159840976528911344258914039300334361254227262508361973777710730205042381948116002143146474075731265454384934269104230747298319799286490368493288491686737253027272521546484335855654823169321844982322405078174703014175737072636234540081777686537389047205840969859609880019434258413026539668735922226748818334014938569116503317172099056781270704460563594446122311466498912328072724702602985465274641979248175477654921737286563427616160776975897068058986689461787422097313702977209783921817614366292720888950759684066197452220936761528534360207422328722327054769611161740103497176440212355475403046436883193119470043828202327953093497407264706694676979925621368381521140297447076807616120200367333638375166046853707510659349952162734689310918833203398149490385033401996808888691512461235127723321092583315162896754766510896391536570595305933653075700597192118403413107711154358484905789550391988968252404578239458405623807650574696336295272488539078741493728409729115947365995055107342258795632823684516567044141843475940768198566742365963230531435966628430513686954152493628018669873984599480863944203139940261614887598823842257884054424821666876663965780701423475064266901473458480799842533612931340534732673878300499577244503297021650522129863194446670397068226075665994271785319856539558077900858683724087107711373336391419305431416252543356365036601295398615949120399843688840200110003331684694164151782573087204734656955868876941354569665205770449216604561887347598179568072130388383721633425495807668246653137361520696249324476065433222276368570884983354772968951528117993077691531872599438168925273087131192497708092746158468611450264357022049087122264571318151611000760844143034630439284269476429596542724362573753993373409341446539751815123287878687485570663841348025581873506663378864646793840397384089017572682434211476061283089701111255080798592510174191558004045941050981945559462010218827696812540548353489502617788543815479351826899733775311050988540034277712635848083402860625790503177073917253241531959047690050172905633088154175446541716684257477620974081868523511858309952018233371074256681540764358417099803834631998563180304039731450153661606574627367481450943979903742307691598636235111682409614864548851910769229964168031659507395267487516326540530379365558767711166234335636968029575655658296265902792700585194965071056068959305675038541859602436762026866743420394252385738828904761460231880179692725649781158149259022845242285783530589125310710911383842468201422098800796489839047676898279112579812599400478844578113608260550839630081014475645810702201112986953601387024174656167426779242559812578506852671913565049449794797231975358221399911728146806555507413829437729614100402478350743549314504724261988411805163597150297962470593936778010328546970719859397149310979082832831213362185826108695086279617358959531857428460998035307702816185368526939473958127649388192547219183737485265201636432760867848891332161569400785157711887802969607055386262422225493700409441382418065128474345389358018125100587375035158940214393024543207669494366553742649851844289684945800544732121566286017561754451793232026932517107429420664235296892532635533735152668950998331457756717247889538461814013862218789078218951531859790688810182293978228245214201478833681621951549190916193132804428113898348594019670743318237485369043319534710172913234758303545908469526894187727088039738866873991905491936532662678912093333711184531902594813996060135486578435370007823192373201326303974183793945733545007832621233067268301209195423494686755122822177138521857680410426821440577041148121792461084872384188905666135413241723219773321233875675817843112110400894012696796181194344526843638501079938782805015427827466295493025675006501491674215844435890270167255590971435510706375800992210579290623000468795055580884872287999617077087438557071566549802163096124341623001299776330281380419832740855403506553356121854496630773309074440476297018729603397030312532088376244722271072515028488280616938147337348836342974750226484211015909655992517200732835094289171208042184767242640416309585490940589223639243222548802211251722055307165022848809527663907135074782004822123044951314412410234686058256909410863752712234704941525713522107214468605926272759261446949667228441059868337950834846866339391137552773286601350357685194828932022360378170220398981031989887416674993117675217707608520438892461154548619004498041683558280296480108382765492446347603367839559177668449175464018087537889372491531355981180503394945771846339558348125520686679992453116714858519761366460267222594349279001453829533502837310810334275340866577982253128714118514889530027072789696877116776131105617759637006326435721875344446512797087900321913452639878871409291272741781080443635184927434597146441476978541605834865843987814430892336665152074303420428330310661752523927204839956807646493142791467577170834711324383462549180718792880470616910606788529353553559976264047016190571893847136464800940976543899881492627895444303005414874450641719291133867167516899944461493449868067710141264468818913960601154286572360052920396413580837805836113199261874042934970970157946523003149647595220459993310193586169370562674785659098961271573759206508440309199662575786751130728651881890994104056600333971409319021216639402477938433228608255199288909814648484182833671545339318840096933398086488746754626831717992402113571560845473542851437628234210542018073031703939555587304095127200412740976867498084499697036403728943275362392496890411092414037255146405123665639625278040283749597863845402604754622992690674329176977412184231776078317936227851163144901559099163900891234884359841879092664842795971458586960945633178069390276279435678685504684253899345166484317623278587969294003220492549283135899306701333195466289320395066421295133125783748248130130691171554162282593026124416736853392901651800469144293639365074980949326478367434075730128551909810134202639398342033118453121870662520661093011378199019295339852362523286789565615166620464751135832750726866250736827753404530084862345315333760897909183565787878899550795384876039483631704794322564447766535726093312651253877409517275041906297755497894189377685215638383975096795814452282857085497642080108126022487183958242192017320401703257447963972244276497578766853154838417285455642812801320534785965097860212692237862495250602183376692824825206646241838390020871759192134470729424245499060261357400467955225819085255402995040257645266188480630067704056423285860051908676330765336463892140371456704156573705409739092007016891373883991645845859031055227008495106344399035298718664528954564873267698811347327256679899402320571814724726624763627057927694583497135033055921795940886795457347460702018339102397539724129465245396732987889355550232487958231399055762633973966233324667218729448751289612415590393273418145084942071449722988286235801959486248377968720510259708176792565815566077086423812763735134101484499264201474651735450649107381391647430374879877360058174729847129338528022897372946614351617563937969047705670592437530205070866483771763184860178884252464789730342863772575690368420535358332838548812222228983662587709820022267116226024700313209131246028287219542755834355632608971180041385795605908768816047933451588092821663191003951871289411780778416853888233857560398431425270656400968969937469649523804099920176914370807276087020108821750339656023075785073909246750471417867971950584223875299374748711207276409715091526734127992850819375956908929792317830193904204145393167381551905355139217243556293524014448584483814470523339142474288116173294983178107604692893734444318387408761322256357362061691566605531560824657415916692419966001337258198076853857650986395869352844874776526282155566783411913628714946578758152919465117605805530011726362341820677941578690671994664041803760444150933869453225057865271189866020066734295324437356432209564469464221307011453172952294467141231311157438061043910690070440653935915581292857320292441048319941370940191921613809495452578749851383860952266650689154031757888940929392278294169963908958730822042303394531294649955204180081995372799752967947614835961562925717503461237908004761606857017914613285222933871729074051308266513778152883827228960654910380192471695371553155633767440983732528631052885309914205580386452451824672291241836860082134466276435843231693494620976917768442170144563853068422177409582251446653583757259127004668825018208904834360399477091276156980883987768177951609922142057771616608627846454518506816087750476667575204409193118429526474440253721871240865581602646827405351437467725248898006782844127345937357983301416550330106349960445020998107469712102448130101608554952244197152583954923403263833237149645077370431015020372044169351581226341705196429152220393244405111269825937901703704344528731155954224283305671713916025216122545196626264689293101664060497054038056948732413822970781232974769798518173527265591654770341934328005871960410671453891422884171496394302434951343237650797621444945590341432049323800637482829188667931216977049254736283711719329355242187336938138360480086350666453648588213286496015004121390315063131650507017222590728249577201365226840276250038137147375315703334992016436344556833956154050579602276059355478484027072754636672301461634248775907522009141031399471379279244238640863676707621934180957060166642195676546536234265794150325036626288828929869209604854037286287449045393331354052400738491361118379608561541793543491199601961281039599168248989229840057687725250872708776046606747574654000099567331769676804199788795550598914085096825623890782626236689159180946617202492059766590881465332839869833766416274222322662275227992948003163199250514182684313653287463537842116955608118383820045599086984850690488717358607908027567344941201414679582334483473637309488923583610444106204414161830495048666624185624362495095623123906557691803114667834089290850089366854340626179002521307549483972757362644708966578477010979396204866011282223417501831097719233547600950545226513377603641158458396345503982347954178956558030979881802268967462962185333402250812733572257584375896166969646104635497586764302864936567175892375886843329844202962626685382062774415089754723247381184728337920293142183841217053206726160845169737848684815937284161955098190014048278041857702133109670118030855564500073875468059056819694379458372999637593251334591783898395066610460861420499830704723591177092413066834074178021562779170170624830447133056204781305726857835439110769462267504650668860387437226322692397324633711696577946208468122584568354130555636723019498700014021792435300590692232335486418869931246252464757567672374992126970693734888887189944192075402716132397224178963682460123585733755265612320156639260089321206857176528937599576316718215628577598468875538392410286225573280970439070559058396455184980993579942928865735735904860705153117663335361659468049263282413998975464501045152397158678161885826679209405700007547790856783341456636168105855214426223156376413385656943388767819922703009219567128924025260432121560576923692003010395281134984013668535183099059191129444693933079242735456560076178276603581506534596841467807748551281703909658359689015527598700603453098836878507692941393078261560225138762069595324574628599286268227295929400565269825127900264557018093584379845760874961133846600999557086343238190777867423268705728421437143196635157035751146131045566667153561476551821024080354392436998651636836250864078190197822574820155623000445480976768969423568807713882645204423570456566400159031393786222145002373333604786033920648504987334526614468107504268954063179161457866117212260950044911286126068677516994286699209020971384458928047498336099919701098103424449509978091744366838032241181365162367439425794426903125403997608175301246320448823371086650854015785850088483780064219735601918610338945072455293807932692679468522613700032466614036318375280276396337707610554281802040941298109634722111122612703339381948109459415444264654157666463864706291416100649022280681002619719908137202666030136300025470285448778369613377167441006417806193790719004373805530362657287943427955027707490749763757385739081099638039691127909416531376731784912152500685723935746136244699320241829910872020762675527751675088191714041182569951016513291639421898672583374742920480711390375418746036709168763001185142264465142469637677973558041357319135706376146828434935109935321890504658349626589484472088775845062894581874472194408469199398586948955959745386900987072245874964788766565688381813900446158062600846707201430118813103216739236719033661688712886053120575025520716222555381070520115526816354495168965102622553891920172360173236046346510372515331624395187155297834154795735886886836915531587492018558842577307536655713940122231648683169405167366699499609022300334988759129014863252204287147168125651059173266015949276707253723421410931545186720271980783172104090393026847144062883257706127922611890501547088410310278380982922654038242227712651432470707686957585417750472833989839184921921289406382016523088867262672095998273715053238503734230522064305195984234721047453899263507680459315730900177448067355658526867983448021097201944296666867923501436195184519705216653528609196845105719546352963764324896398432941927439827416347635090191127699868833813621512935380475871872392630543651718011683391805885698703868054477203514974854406154398214468338636731347143566012969890601117740095917671208416289902136242411225939695596324042255096083350522590768218646026194323766617605900753117989128868133136833952234092964436826094961653663049714845739964330101291844958191650570017368205545217183867032042340445800688958603297052237607671093008594677948584376233900832235117328402578993163962872101551250535912864290955065798838105586265568696535649737805482695202405231043291869601959410088593088134101184967636720329105933371651719022039881106297002169301024724022636529115988684080846921923262654358492902260539008646739895414300266291995807818699015610316639902316749282250406835591812824475191701697728692749391606412899788461899078245267229296120091538516314313211411541381426653949076658865450787969980197547592020584748094483131309770347489042512047912975341743197411841481577736297394833174113365803409136189998421821855562404731943065258062297291992529732272706508016282823535511900316083347158672257297867958313601807348254388564806225508076531562534391074469323630477897495933643984646197404470228518904361385919750340173463152491194720165727772500130140428739044746946702933027372479078551438036742515371316785218639118776817649442367744782084071452562617042168615601735808508246783576991353301777031430351792261452397173979375741969947409963095490689996478891362207690037375234894297361150354190518718248033859611526611436581822980923995734581820091580318799867000115649981657045024771835777383701241748783938289156099804792346825225871248073489161399309528517668011625877551168826225967569015519201129278951188804305722806239914742130268332835148740625418626277351478699998665641824486766393883696814408612539339217892314621812609530385169660079068974729604014151891911640693354286044499130040725912478989288202942603335903331264288666855813311185264717464809301334850608108380927438467094485593597304381826422281819775028906311093205776348264241944009175864661358708481652549603774135468199138171298605828207264058279750306432515878207709538831672560193537298974052190930909729074336430522483496580298856437366946787171715684884144011652164095631930293801179466597178683982151830000857246399428733544170664339008884110866253422863964135594878197487233798433548485693644538245885205998841438454032150364636021877244257674213126799141520811404179785105268413260274818981978742562999044480535180301102646284680645167476035868733814114688839364852074041246555157038627689590568189894164511132609975557676371597573966295822371017539477335755465876099445990547967725790381372725335428709237226539197368088639151192750051969237018966436654983546392534419809041442047636224010826265065897624438417763335942177717738625515434508802893240087747738447695984111366353809787806530740642896930667239389819263898238054117952606154826167607653108308825650489295159419679392903716993671702079125123154893762259053213827129454513658853829327599819928340375386516999289171097003096015447147052166095062057023173634882960355696038759360710269083412877096885628395046158023137084058749441384094849563430852005236309398049227704572490934712541021785951132611050243600385802929975428371946445874063379313438042120853561478260336926699697013573033420776680702577246582687195106784021282542941730421944834396470080551486922597712357542355872561429733867639311051207746351243914503286114745327899703809118547483093964152181000666285912726117402904713770654859659444480794860601648163127079170500673905209432535030904590471153500434239182342425018709089614352089942243046354811717051321510105977105093660059662742859125738804071412104842663411636023382537928798524828804859961993316795800300139054743640832192063998455299395214748208147502688879026344477673580371801588153411747478714704840829168089888737459662852645593958582255099740954156775272595032753903490223213607665183896806795199621644699855847107539901545267212868722273406588147282047595147372030228896726640687213560630962937308164746589682206100205097343302808852666711368942942470988133913909078308842314714819790218548803486232203331298079558323936119293897137039466742473524837285457297686873289270396519084589339083127457105523905537208028011431747293365459174368756418453040647271639577311592479370250632245274945020885167283084270626706716301476614603127774006417488211494561553063533162258219229730596135695993964359912872706295351378238093044523355457587980579560711399136177404990440734682551162989308477687387745468499913531385067981128988366667916231357221977425136553827790434213521362550268692213862998218022068672580033016084060482076785597321972779685074488970267517967410187561523282771239016026944760290949006543286811380824117783869590750143084505762611185450793073140920195628151506066487532500864662967447355442153525662504117952429838771043277228210942089730342237945298976244369800531040694053884573898513603427502809624864290375636184466495013753227005771046447211711519592944591793868218468320024335727668879796137296982259460806007318582346997138382789608923254923619952179665732158171647992041264108960301334117432893798678017909002236959530044958129403782995032316673004265469569436614864059894133418108947334026308635404311798666921325027998720355839776229358673945928112551852471311873520386787986584150457254820110809328943749614698120859520890541853530253933884270654202078932180870954820221292801357737414294146552496713046670854010271182081177917317895288938984154583419955132279560416650917478837455188572042661210860289063712500155874410222353194979821637872794809886494285101709326665768589192334788051471659314823392048132991405737830455682582097739936459177975439118793830953319286537247866008407561445305902917215844299225422545344743022468626043973396645621309788488202335620689924208196054022647937028487884400561242184942452932821125092596116539255767337511142075088721698615632074009337689652184260098032313538783212327983572835164901436574045439643847503254179743357967555326419226388945003179324985827611144430001788426939343183106335742644858880071744064580992400506767107283564353593901990616690395846415191099161820234151193507166896041851021435303837429963080189718682104120149861869358005366837822758995346952127020106068224730076727891816670011633809860430824582205719192635561549550605519853482964966058844592196987352378922146909688186431135773280851767369247126928531218195016587179184065869138363897830838661590136294195571471364111144087334021460117445921900245410436684689877160445102905434745713786271029993083557536267563971965175836319384401403556481699703063440356357002773439560127769443520542705545118689131720414340544638203278999299711647365955804360917036593963974334097698118377787848389470910106231883914168587527526192000764412409566220292157164623630208605506888454520694659435798764417473620065101205001406884700729161240912668448644561033213959795663477436321208898348664960211807139381252820890992626556166016714416468864650210272536802134793617726296886957488537197213199413091479961779096060194027370560902623919754509397710937011672250868359401774673691958699610661977906881979845666739188308476612227519551123066031017744691882466605609444912909661726617554494792696515529906219210792915829569974349871032252782792192622587889184355848182282678375991015522764594774068773783935083889489001785387944255061293056629721036578756354323868819012922899303451525133947626770060401346017668070861953723229539736016699617888106857002832663606064100274086801564610436781566366708465439455789160508609935476693426714068866264263901901163781570668540965485338818906021313266240090431229153505671431066109856325714044967503352453930892664336207119091176918455672233185551132128422693172875749576740837995842544868093544002885671629934597031718559329795101709205628973193452498183853083570738614556191739172586496798069979582643258801482730688881000952257790190259144895723799525604346794211346431637531181028692115573437725619650480703444849618190940847057969686901486068572314568878562175181187486235031870364051342619283420746690746850226518195011447167930099342932378807704670714037940480583396643841341123487842844025276846526367659513482458718201729333709920886033820263215981036359942633951465984767284563011851724448533600038268072871406529470948454902994740211502306741233574878731430086576027256136444359883121540890976977197468916206984304048836408783072932484020798784417589635190529050803903535996293734756579129804988199900694035562951677876408200756983475723401225901000373431637245493710976522848221611115281941844790656020251789568609984454127558390246805626107459437338199594596263179782587338689229397309229788365004044217048103684575860210335370275578873451106388306324517230100936213347226929131099950736214881092610899568494265172266328469583859918763718430549482722269380803406855152540656833300391387345496326171661226885754852733639966271246894334568932703867292445205946933039286093584794582699472382354600107862699671361180057957032334323568423904757934475581492439921587300671924835316189088628302318254600202707292149125011439447393510270455001692921178519503320251489933338833284677594035987490694625578505901525820815654619771489245816756897921798219086220162465296011113470967009827890670412672549764540276337343867535281955037761601707118091392881645317881865706055206364949480795705616093842266392415727551668134097797815275606676808306298719550688699371507331214453805726112597839619483591226932004553145295120021505071502296251641790377495523415682429465577083463129394956174861642923450661545275045981195859748583793331408999201857540886757712591850695115202303133215765310220352642297579788013906903881738911076691112079507409234287032739597408708141000310452329006965951035964174229757712817914606191400703548759064573181015891607390627318552911377250296612276972629389202243920413779701790466646239855092883265696829492348177169017867545633618104833614590839692861841875997151042902204730874998862427883755574116150261378993638157831065715674287015282780034918920267284168683596323253731872898718095317555228232432857719287589064729380853751135216549260810444904423952011344562224874832972045718783233375699988771364952479574261675297185501840460744024218488007626960142261944439394913006388000576183324181303218690419650606043226658771984284439000870193966618110289736485338915095523570942330496699155407287556868236454015056882429235346443724781766534673528209118218436426003271129926752496664585378775708033300708706500794049222521121322228836793566540311539835056704400269188960526853178178008877192317744405076647570543680789034692272676535478796294607664376371333901582802262203236281279411620577462554255172659466345471204050569131645950020200805043992443436068142076253167454394238519783996065806143191406890068017536677212239312148692714699645131125102454087182680652399449534377377957435960784997707104477502800647212167575302176769108674959530268387132555918080302842452779812251135770220095919176297184477733567314749579107634918512529931077326459677704678443685341058582016112416447746402271808051228188609712585422892480384088935214480752486501291032451624804019806445637880540644213272391226902250667991933208462676486247420424015184846783293742138408202433261855868059836142856107285251823708654205127743388928642573840526069069149270719890783492899815101291497872098496303061175143200741214092408162197722693596528386417430837645360293346341747583480421478791800908712765235422335777439717897186480559173688565639741679491969632893370797952747765535589453881414731029849234675343767887876840383221020936501331058743110110029995287559656173360063324503805820992669022908495500886544454734768784336102958746448933749268232171311406521684689801877221059728616926463504491206259760920513054018364066769201347124759613903221991271546440345241614522185917204926627413120225959938999395606573352041582645967906015013781746111252588745254861345638694871639713323997637191602433987913542594694211826397623138662522152874676416891739382231641775331953664176082517908940221540042745345904743192375557026216517163868673233317487848986371573895074967266457438171609304429199579317029793698978426578225509609671526120491947463044611953049379135256542201833883990115759381013409836288317432215281185049706362218802590029180332627930411034296567515274505687055498327828356419712463884120861840120519695017059007213853689704776934030948864593878383186794225951902017315577164907216664381838575491561665128634536750027081400381962220435578315289774851353790933343895284355569169474279890254624162522428159037354965492848465844348437223776773615222979645200411333793753131918487150868103627091614410004491774508600181684687611338358108509453442588040034017149066298716311512784912164539048986255668252856017700366238720396319625735220926715588751749670483292513080146130678386075164881869546810424723710249895428740538280098891176134077902825107390777880845960966195907602986831287824296652269308339198807077379264534491352782048648173851558711548840294174086384583649984204881141933405739551905511427910150405598024705583601933805298484738420314436781186145617693304003513103538843643200246321737191838519447564110496794639363943521308286176402637534516900127199161846626943304530676916668858801775106975471473607151750525319490646200286094274670744582189044777773093651833564848914964571031975563129856697640953563645744153287389185323184227426812788658212073435219640436409150150871281680017266089342500506508643685037784546703278770136185709759187255927008394402828685228043125418807544858564575590346728595338560629587346854009868889031205412437624540219842447555103240825312708190492799920382853963824129813976751871503202585209461337832165146838120418511830906879465759189609321926281581454368428714449298204968201919245476650849580936988146692967770929369031130605524528934752528687998584456450338241419293925681901968556807020356047945606351562222778504322535740426266738248471033452343655712729226276884047630541715986277609072551387092621117057361337826776537268634269920266986194251931699646245281432633155636394727358628769408239303898028694440261720427192741832691073259909711628788943803282193554190867629015463234877650497472709002947765832599678211893535852344696449182564916445905870516564899868527802502268546632376888439876570652061466077989772793831722183162517806763744811942823171323665797334843982823128123833534915595927915966461936880816072623753208198858681227227055708923816884073567352056285607616277449445511415286245341752460770489674553665665113058901268892115460200559668617260568939372652968395402839856385664860061532059687156128495227993733713714129953283815960856445873912755525417512507628517072592177197851458619490113879781346181671007055354694194027250182789343316950968105086906290886588243846763361536141912365879691023675707399493709344744313821135959649487242685585934801298640867332012794029141479996484378345164305208018797611590704769970401512470334093058114057272194059940921789263942317021525773917213140513891800712869799023923152108357340960426096812942793248359751702809150051782972942855442467676432459549654135823646922485820309856300419196040207436211094724583775463603274530414461282842112111113566314971528327553288508356740833539517403206530595037367655685693817928705930488813175251201629773825168660439135917757534530334313060106608792941498490066756499757247917059898302369188710469800736720096890393046452960413605293155495025611483577300762244097180638601498068768611579838546129403978177422746366244626967414103318117216248227379193227665244257889793732869380664164505195965752865436903185737656666555677825653097647959616034751414529435156755829493569230787621052894618159260235522411557653495873783567049681937230902037370713381970274877979474371182746744695179580999345234377032603329083869336763351409403616474537927226204360109954194934612977233323593547121186105931706545146824309670971971395335617460658837182828066938503551964149222914038109718179745192586563482248516131567997064287778905092964858713277447398974878628600587738223999051423456515477824177101640167287761170503847476748757459099420612249224473444963082549125556724382162331902497320699874706220454374720894635812594670371216510385834565208179404403085835091120769623795505794754316444638186050107932649229903734413937144420605277369919044693379484651844497065384594813028819154473763417885021950560979277164179647683356977099633307472751352484779136302642300980867289598907130886535803638975773793108633714166018587855656014463305734330761875229395445615798328478893616404706749872688804049557368778233562484853892817765157430199538233901899771286729713013361052725125646015334817385056518417949560830880495231928682000075471132401957811920906715525205839840718107953409485266415338426917989345234055631880033583281154551363497114130066971235946766946556061492851602815482196774317734428625689044132564196474390522964120198656207287790275073390670152818408560761221255441310656687640879159426457224348865471959749191582232636099849490052792282210330365216538867123418783129046327167225027456352750265778211914942647263879152164136266333906788883474876183680251164709941112894910813023661726025645971914387367979615613469318988037379146590827128834035376843001597665759869592355564246852356479450563590048497358469165131501130699958289268441813975584337016038664695705201721691532172656199051331628288033060900361698919623224141054413084654415323648664058139023786215531250311934423377069378860485708701650893323592954097163779992352829228268954351281682275765363555196029752333411234584132468704793913239395591398974473966273448516021007775963047781888142636230992038087488873361829039788900811551853725811150269406773347850724110008124581057873159523472712365661446655670473644720190711139697314269575302111239743071497255782128177017677447475092250981356376497592983413420610758828662032661646534202809714978245807722697499583983386013792348832595710666248814162704610686977297234280038516991289729387735862415727298331797849418975560054109668151552352488502300054624674183983956464820515962549127437085286000776212861228362319592577750648806547069861509157036524322897684328103782963453209734196960738055689322015778932202083457356049276940141262290007831761750173838854634875348845736352212129228557669293761381459312331470247818822104682466060694214030230551525871065375561298656425050387071706181503138509828757927044063391395352980453508158671486963638604023815873183843435630946307405464307211858175233508748066741922785573557856539525878210137974845887841924895865588914579199587509080869368265092977539592643830944814222519775829854647139480145141891343092382956225517421148708968350134504790253893191273248778342636018002596374714830734207305237900539692389069969707417836851241575883263359324686962264229777788732970186572798008843971333508312454755148132135229154176903600501379775177617781405294255789633416273068037722842333855376128160220447129096846888402007071162226701403970629923124268295666203657666080756714971777498788273128136106645657002277501305814708247394525562959938212773119310408339267456701594561934819934035039063282140164498111210189043493705125504815111999103679461132344170736194931346340581240811861865671038101308823209350473260878157512543974303755043790914780753026052272649880728235729425852439763202477285898513111402084962999358621063217310823829845000642914008072962787223723408635245269268327485742981903595459268687282391115421730556032213091286254079364688229452257611582575174868858622179871432818117343735020828936570118735277249429732195870276633388648582154465282833262459632513723902043022101587247095722653574285386578940099535164744010355015838238774958760180146369613744011485137854062360441831461065924577644768410860486790781525909641128374944348314675127270536946268712560633520884765968149678719399477712085670209679969975334884468649970990088310583912216702220440083521365592481167067277243237658971431614078358916823886381332215399171762299463189335007330754978788608134142927890433451201343798133109930092734199386991951044107073487302812620284408685503237769776276043747161906066650290035652777477952204199671134407103301451081365428609345032505433605999362656665604025281655584391681334960020577686329611507215565565824668000564158216947927721676118951812952362723818563275620997509996064272856085561467701230429264812829590688407695383947632025672652051280441995980131474033671289054504620632496117695171917588658022187011983650710181185974608318387520356558254041453939896196225726795148754149999606428249821791288758037046630703293856520827543480229883671505647142916262720488117531857980354107331041726516568842882293183757476910786892636328861159787980046824474712962175538773666319984033876238267991471242263355990064742159882925027350246989532998118115113141895608120907027711963486897036879620364960017882520019576186986131846144909971889181088928399866346032499585609339485542541839822706735260818979739388867965629694153877943073278097943629165849579843837762990304025607314953294916544364314059387705333855319948633247403225441157592962475766645784681174875889792005013190522453739439242745349830951952967020324951926735082657446101858864357984964832741971678761533652351090654875324885593461943554984727439240329468087817252857412347539583847827666906678497380748719534973572988403988854637122402860375958590160055028105198508687836758662631398490457185012208864086172896673522256070957490260423854951894544059484833787333660673024406145300988124090138981904203495630416374259191864231486652204470608181441607307691829420906725662242316981858067645470355182328689482876458403787314734195482625733505034284904937634297123401027405027222123280032650526522782302048167162111010644794860374540538409910201776569831109351035942850932025467791115652386884408395396681988659136122492115421392010103632571777389359693257567336971136237447842150855505233311675506107186964579939754766912640776133136765980345385929888934735470558161223038380655360571387908083680738907484034492841951176915047367823229146956996493914367426390274723806596094475689788131440470096245731636428797301496960612542093356225175833394722743905380444546069108753495733979315521362795535146901886153908436492522431233154496262758890338858232285216190274456408498418799517920044687797922945827326639946915790335892610096808044380674195337882088789326608998237362987883475349838792082794543782676712778920693388132610271050920072123538416912272615915011682253996028967906186693253363276706357470130416749296225609877866713356504733080334895929403402679701678022370080194151753989020933848225139006071957798380256998872280080112001456490627832230294098004829651034360520264399225451561366002656167841051381239959525245832595185033266418600579650541728458143660849561425332294179024251960849438095420180832982865346217994181243033109437743035667760819379027205281688137618584027859594862840929395154849674402386019953844326561277076611414852334002477154252642123768578390135435264982448759988947860160837447976731164891666243323734172966220334138936274316208363898668548375780537963610295157166980158682725557140544628023184490636379302243038717518210754726875625887088950206081980718547071884503106408147193603257691187741875526338603626224083023143317006882332319115780544163248117892003505973122159665462804552757225801919270819189812060646155942294653221958594251567105041505832321816918479960920817410964206918486381052962592257449002281448946334140349013196542016621224192631604260868156524825897481249070820614116487353962249121903455844577704383883470433075537816811288991471556908120524402970478663757620099234986682362699468485486417235328231623574762586817023499580181252242510478831597219079498488909760631021979676511638469503347996181802967167849178712393566197152758824985375906309649536063421702064919351321263492427522629332443923709667752662179658476350365391366857595337978390904630210514871984625408392338795083755381981870988157306643408419151749305358879659809039714987859593495934794728397063972430961308650603958851255391475389142348423007448160283108992233073703022385525695684362567868242873128304257778650436069283593360569655130452365983941497500616725229398543955571442057191135248500775472435602936411983455858829108203428187489076769664251969590535586575920198250745270688921429248209215496735876661255034855202340899442914162404715986807033258712246722204982055843175362705519763060081660173432881589648482724569824528827994079275321063043231932699127649184203546606476315100083682262103077687839557160659291856061591422123949689398021247892859390010748673337462036472453312264766525362129644136181577522179577124097285327170749179790538500709910773420639685691666507226016831607871896346722314162519975011058347928790590579906472635866937800852493640068503720028629950757262824336777906726241931970632776821646133474887249231938265201644502499130373509362545477237906728200263946580210640852950787271374438234769240774166147297069609687006644053848371040508011057904593100193084802399655193262559267025327462405582250511789348188188056236404170531146019491230480530998076266849905878524889931694422432956157350076829440512269665780284068871406264275875601234637872936898237107983583496070790883498380058923169065459086792138930199524895020403241593014682773433218269232113829659293363882153117946487852012437972853086366467863996486586968834802468344662440734615800091576440923466672818232545544232688654520249479070931280242352157873480632002049026070198810012116140325413603211623255490512689928862428531783656354263194200167952892302599356735255567127673074292327901318544474013830843217200514831289769005138956527472403660613295767815685048822211863371079078037518938383034043258390323702238373296733491144567638716121096851821357926277448914533413786996854824024177100540394713791085590815318612548103638461456869516356074891774559630142736891852542500551799019010577712252344584484653238240138687080267941274255707739248546273445752393833532459965934393160241784552470702708787977255190433133870412054316000234209148809979530924793445225351462124780262272852383246166500583578444349456161217400796036343085880533036573565780502786355653342224154735070539399374993583203633415729738193652715196711922137756121642689322520423603182349824897078046974011636041482545972999177331659726532081431406835369868303512665917033467816353434304505283283809393831834869630949923435945895526735768281696681666045273826951468278355247020017539342744903498570250563571289407651937071262030054387782459253955444612478764564770240624174099914238519224320917626712826773922135660228440845099455596138086192951880352474982728805854120829906987976044142714350612139479745738940838813902277753732436781590416933163656080981863373321357548696154934471884907591572383500835035062466061846964291045960658913935125221822192775343703802827878377197732722492507874381213656185191413047113354701840451890161604403010813085615343096263428301576400597285090507722640751145301875327147165256918674935194834492820391167636839759757003932917706779028124936588594127829787379396473468868366212125706554274249758261897405824417350074455751277703326690095656416875343681350878239631509906495513260382556408514411456022791334577648670945726528199947735946948697276498279932065031285792266490133834761808651841048985992114050899531771507218330648980503159920790922203646012050241413097990395819354995665133121952173807978432949965641216173224621961684430604773657262057833438948058576685622580954739893492911114568753324550899450506015351556155838748834037307278716794363817974842435297041412791669376759592527461821424448809785196276958992801728996852676906499702020254984381567718090732107817113640542653170652454795003847448222646568772343880887379821718589027868542409584053518605894919532359066575426638259258430941104999984471769184422729120882241754469477411152397869777583599247607020626199974009281322043651384990496053202330023428069109151238432308220959921916411909533869608635052409758544096547576418667122849167608952476832357384365803255656885960914635453004214964174431237829043351383778729196215300658123379458509453149942905914485275275898548512732257720354741595393293251738680753968738522809253899127950900589564226762505094835663636188207051277466418971007261660398553483545116181470224352941866443017121813161513872726837781544411571917504464625081375473658152972866342285727800440963462876821738902489963844546990389393633526864986074166210180446362457125657092709011882231493391996286837556696844729776676903467939665676748974943615545267345152211328166597659816419750593304216754683364077870757325328676041522502230428047822928275043972382549610896823884298525500723170616612542137373526898860127093311060710788521288804611764954073192992297359781156360323400865079420490596210753876355700612876987247124683540441470594199005030856314814816499005976237148528654876129546834322716214603060800697462069098622574840241496272000886907403604803767429570348987917729690374529018131752376876134386426717443291124876839849499338793681769382861295775454205381216414074649273490902036285156982099503866115211907433360958002862359831152612595162256795066806385212360006411451687350554402882129333615632294151912249081427244595413387258029944555595209096177613410996840917606295560326852574240625579402436552921260628170153910227736356727782184418335936180470329801010434568585220792226431426410902993922444623703018492460914028042394691003076298434084316151250697120815316460014308263700223028429390272194556769723029985794617503798775871484804960673941063086511663741759444054632056972103408036667587818328052670261477070785706011854791628256116118725026793814085574815742488632812641212976365407912185077161533136450115043077927986954726497747827132048215545907714880693693347247782420121411305785502203467853367665561426500851593209179370660540728079966332134824269283617761615516082336288675739786230025027161139257809881548889306530356277790660124528998884981947011200089443868834387678009229369602496542909087536844555197205566444106604825909588531728225618353932110254043242032569825537509835550403684956112072853520930918682071213274554158564607612179840240498303362469081268574675106625657923306576328829294874943710296168644600692068583971616456647767891242753913750027753576949356810365447144936813684288549075247522978489134276617216943617298039390654619301837024975820090339959869183667978707902278870847178770572601421672214941060327707361955893591030858188809876261476493257527281287279734196873207702780973207149703324566721171728774194659478652160197837464074666648064492954153629290017032990510407347753647973302593174355840579254327975648427307880721097178549932442470970299723419968734101595637289183850710395140970788322858758789045640783841066716643704472700373303656288173049086759040601472145548429725325998782899053869933809751036046528590117502513600604560198686105128901837194585756079253169189604922604176372456791002159833666015828080785486518030082714146827465442389272984603810802829439311685467886880707124148661219482545063967202017930200167265328986479374997848596048821676072930727852260183312837342833969560933870876969242530031734270794533781332768728527428054788516503855439949537585561677794138427816777900382120301301850556369082865282540794323207417781405800650553646501781162728859792544994876872993617518612759812125938513875391568064789080345140889642788853504069339812280359428547231719765097471843483726671059551286340190663206679175359687814510206690094921272282991253392579873169610689113227190429111266757250008305698035223222026702296739701651842794809834810091854732061304146050590151780990010579377674662869669321858660798777434843718442155048494729035463194877080656401186804673731748834512896068738033962270030755895777569442618149258526139267259191745753154954230341575490001040799972669613983910989015649040863829239296349129106854566741556679317501016017011207473533741040676981534238905729432477503917975021173767705009498247522511289825308629471168097365073824218217546270532091563053854607699606694150234817818849121775507886156442192863293863422535918197298508885489466128967919845677585431573434727021113115316209930027678720500694130587781840828253406036810610664403706137304568010451252768188039692879433686866126216536062578265588185967003978257935548282307577255027508405802839633903244729301930066382649259188441924251149543540482392060222463871757748151265155734407563171678665195482778970535129359053947415529213480599735571736704422088559769655679355634869029952030463597021480530894945956455429411082006937759178048289957626393107191906372253373305534842740465490159878432550167895645924065601158228831175792349055181299581408802671716105569489485461301827914371444709663935937748098870973986556392307908142482956687550653124360504300017767231848173895591977030951522843109441635698945442963107541042315189257780635891257037900828850722443194372550305375737475636701388243782617069676709918863082457152177872471201270394845268130910056484701037343811867623914915919652221582329729760121226584338859130141639732677816070713302531438463900238252649171391781170205458619479310387257196490251639433318132465593152219912548052735086373285975850082719525970404513908095316334598419987596354146569988342887395961682020875499974509626637264144105862008984846890880479518397733990689874803375857660719061683812557607549130188419010669869629249934105620156027198464786261284903786593716419895179873923272713661626400056671355540324318022864745559346746216625548838334046035009251860379828522041664239973852875167762143911029202009956965476144796019939838332829705305686606296671931660594116364888076492853509540880165178550618208932447607679317576308780131438395657789541951671651825849649075607782196399315393728042644770613441882447673086653881703624986963354128873868314581254387746045038619122689302472367266184872591118823190071408054521584393102068646657705998722964430254953357377035018576252078127356705031305352936119525634470641763642147229430605581224362900664817692281499376090111873361978243757192608266976965135978994855748892472086902079731330610115819012042967096136486045083880329044384679581673856539521336128406611275721091721351191742013764413432008991123525912392739060360833600814819740198347143133869252245157291935485010872402361019363044716858594182050262900354393444654777692359876725865200771643180038601674322069008343935306021213047496786849601190038118550525378012128580658060568874693405648969177299108053390353528743176459594650370688833393978864572807331188342650563951859118273885256637082423156450674603839594812453099439235471892717863656965209489872237385165867644374678582859070640975320920509466708318499675517798588669764031084350977941802554698716097715152497566293630729732334272643874519418162669524567863871211201814334867378448312812509129674669333222637779484097548761513159539569634195532855508190019694145194785182432736860264636466121639467216956643845059420426964910964146256202117905503636961551228571605370398644821905402240246828060706832880493979132267211514507380347783453376296785897666022341277984868322890314564698026391411530484657583299034936170489649202309392776060676500029329089167376380396398127887599506750261316039765279097389249610803726098053508694024329424747517481201199080727063155199486287380306036325867107720589711751388589543219714733256217148524849362100558147747971896044496066925840110177544211681459215423401653049804039953972951145785932208398652570820490203990397897215231351066292746750207556204952874076874903964713277568273454000194982623917372188244558933935924821698922640697322543553370121221793912359425342383673353546669420308769619688659399194816254021648414152119658132620959545951615750164097679228510362900189048721587849720920501894154528352940012655848351035425373909953329403050332851338545682874342625346401438087657274804826725264142933457740883706629058470584564203096867261712868371745087359989504712641743644671297119829210684992178003394945170408117798909250763664467621185035554151884958459214747632400843681674443955017883449076917382753201940075596453608919536654903467385350648631222773988197038576352886085638970837683395196956192772579039206065778618167301164421713974866898168448450865964648829048001767287983553276454747916416522685865791633031869317314527977987255395991057427689311823598092054251581682014289381097289812528205564605744119022974826801759991627765902180787502936826674635868414462020498526291887251384728463806697761628706457777094356645253501346518503995148211716998116704886870832471740866487180804883389222748479581504960474849491222058276284223615221658952850343429647447007622282358470599106995110796904186550327779940408232006373047349962926037593941787595833239230697963165649508234771156399165622986797889678740789686552138756015184119731521430912611437446138016362687484439834399827173899739499908176673903282632062917161821770542469293315648644960169307876837364073753241511094459887535861240783703285681620599975665445064106844832209627753185315600423522140000016032943034730857335150849033460421940659792140034074951008167879484840241046863234204283836338199068235368734696201180062266417149287699790703938596655245114883971343187023343723750889882799849547331644404239906477030827000460997069589608884545749469178222072994752926321415356767283169011799336213364740020590408521144738974516100415692416166177926613529715634453371737148637117186027659977549596185056250026509958854845668017818389980815262953435663016527918614325760919640598303334118097070692812893496266883821521641943296509277572501945829751623340553878883695563050762342385504748420972424354127353429071830360585493197175034136303816311767465204592098449843618264343757831136710684056285609253576146792468549695581537129481356900101436553819986545659163603989185134150858365467850200658076279219204648384119854260462468300307567224407687039442798252887569599612523696176060302998410856337477312929503388300598504252625012449830067132917818366645690004894370143697229173963391723213241588363761785507241634785154235739961138345155628187108087664644329576416416799030398411650608447560673409685800700562369274896459100233751594065916392166652154708685263275320341582446114743263280851490693856887966654349904370714865172368031769842713612651857510705491639602512673026657734053126551495696597962677121057782287020453692684338580382860571501892247593015608326490820821034813764508403142593838794934813298261174413889278599166445919556019145216101157664463055486650947125643147302857920569738774897195094803598452669498663868948097565031294591819741410470304682511742277850962785601627051802557310130955859451437971031385755054945984592518255772001269552649047559826972236718959286247065273982991397672051092020665973741524373468113087562957341259304422998848537945578257723899281039625868343117976419951395119400106747873775927890508008085793600994482355398541377241260185274378333762978312324369240058742696935047705077105245187480281143714200134220833567363499992417914162776088526041476833225585007027830201250161221459651839715944109742003799069013784192496842527343919373665681452320558700715683688792597748854487881502489812832806191565939152054403015423698799764525105136351287189209375580629990079991350628866814402201604551740110894716853048427458757813451851224080051328567725301956605242684506049068934416691602598171572779406443896704587584949458370919305797198634569454725513443563674118111377551043774536533302640171016972652874883559612306587680662070024070404920382222674218282466208195712453246679892844912369114819321162679169102970142730131438562705966455707617304288395838167640825615056577128835476512621858649692443846214144756337823997917929134158630276414336012009670819926640100313935261986609296759609753530517148735341219267662574273085224690450394084488729458911549216074209404019849165599642944360962459793331129058172296357506004169036706667473120970736178468676672532693687524026568552844411765456041802080925030414383663523919709860354846324593724042289445680471560615094737052792944200122360153009843629844625921693142461925455647665553111044247856628701405597533718936160894503152361094964712974123149349697623304004288741183807092362437541304054166748304951974029594855695665159025063919998905542326736529935776848240824880913394798428622245042269049592626519890038436315673445034334550111451451239878835018869696260473799430676882692214373297213071021683778074111953946279488166974550136870123002242747410726212386043656579353842540288161584003919483560174120118494221662551524039888039054190022347661138119954645284308096583602045705299155312439122066639333912657819972046034963042227339870738272433398409533010176225793912604801821908348157214566315801045627966051520542575514935712015849546898529109059661964921545113828478395849773529080488905677355916952293898999351002693028802811133220275185603103809390045390708805918686955160874880199910658739147698704721411344206298897500276584049921359173662270731255006448214689183319073386380708007695722228250250145064839316137961381914502254976769762624482589390929662276982573335061008303685695932961386568936793890345896960770335009781637532969404357723914639594857521009255742787026541397993862922950739563204324224729672609901832790383286481243787661575562763638019554110456637750284806268859268468829899314918121600412831363328080242290186091934324322471355101120954365537749986233340202011352721148759525058861927216002141008956176737132298589425135718565691458350285255438107596205723987269803434068679802262376874101768247064969448771509735794083994544621261942433457603913249812325720323249155712528416156788345945011013445179763254686989950401977184986806422869310711423747362600188647944754094326155593447297548389755687444299863661784719409139608547755056681149631037702561315062053719889656717071928513078968797859673909439732023985252338141800176069261640732778916383802543825669102771619734067706371165397223925186676199688595242789436726708946676765983110256062833408308444592373731652761161654444940687397176084894041762544882915070331503425210259204950806099810101272888247433991174679910437236286913914282003064744392152188302091018443299364306748756056707182348872316782976351689600417269763950008314588553546499012926723245506940715450617983100340935869613108109436455446695922686374622827678000319334015370418787790269203504524292674449546584095735964077812762115812854216701690844132325892974324260481136158621578210219172405746869260173492921158538407413844777118021152571271725137203419424897380954757198613695321949689726949590459476595513855605239962949906702371469872394307474583650339131200695998586758689291278916067852755420533140870061640294372594442652692820953373983675026003187425961101896484567626067099682548336336128441417448875035976138042473006521349173034895294694342454241996688499248734700087348806154813565062852789384843210591719307918004732318164651100230485239472273235980055822793575723270238793326112544325174144373780368815706050848348499960677939758495714455956985868950710822222950365820892665030764210577821282634819875255193029815261030690187643225462019366690967059298179849825792012451421142710663706158608173327498636195041310198318936329723780340780855017684000157535443935352762781129858050263867013728265714361181555376005377445398455297668326979172800871626049571863895546331450449830652962383017137807964592069669076726477090541004856182502872820005018871992213701483788602125651402477710325062600159333214988405033189347232951254787583473204551973970527955969045441238221391502438154830057939760328333684915055115113154843907976472297597007847111574180582709179129206402344364710980076445495167868496260076897932441025544565649825717558733551374761791546193524815102323219971261660417928356994460087990702592247290299643753390877931507123055114687503740273197906788820073609262028474564637551459080518890277722406098024104736181573587296260905697616845724931914096052359906224956958214121272674153088381193651191949699380466383162118900154886771276567595339036081162416880862225866028362427108392267276770127231102344330697360967741444389754785116203859968451942717343382555017126875120179401576275405303281309405441453749152344753876803585195069606728497883243207729291595389583557604730346780277793453617017247736452202125919346523317667220121681089261598121385540207720549432079481068588305862462834587858342569034383050909037102809697037707205682299880367158288593263346236236114026101670337546508477983320457053868396528000704042383821581409030493568976699921001043135716255816221719632171466741760521186460869437620858395584820971709300752801590331305747798935839849285482511885781146917972735702630225686299870916032006385092586793359176126646789042179891462793490680660675634135969497292382382883741099211424311814287292594099372149804261841650477172232793414325016068771852347833270055254846311766138119764392008008016714835660085702017566040663742383920221422193776948100941367041839627078048528353602129032861402330736989728750078211290322275439108429672753986234002458036025682024925252038847016082923565544720905503584822839948653844928986409062828589387498716719151842061944703160100214109793628767045038660033623028999769645684448271587470987108607750618803413650458641881776660480567187248113529983023452536129547176027951767052937288123600896562964888374559600937604145382867199162631813312211426295689513296964081881319728022029207338306142703854353489566588864452812195529509483264209812326480876092025971116230771679449868454328509263377492971293174254092453766701811262289937359772511724580490797222949875058865324541986210748610914999574961248261958030551770027975864094551595987139463192470020003464393087170467660582093664598939819921914147011611055063242410780174249451845623648209923873365165441790612204219745583246455251796793529295345391880262764364385671799840488956088608398156294694641126125988374763881528829058520584962899829433132393681519053953998435179260415598486598436093346288752847961919240260925600270231244827983482772632935295947689126178763067508681047127893707784550341985736526841271412869528879289340654826337945798260360863739896037069922134616733405403710681734691265293921085728688194102139652674981531049368006708199951977100023433057038109372028478728144543350171794701138112823413976438144223760795742623249636381046029990400054820922094626196504416314091982304294021269619034053412230941966824410158940668191256401859534166418736969863371411260658406742080446221177086707522972615492608284638783990389437519919116757357567291987642311653399292437292770533439919386399878598417544121083485532238245647773167535765372473169636966215358469468439075723864339892261219501749399871571260861052791249781634523081621629115822306072854964338908256953830542134968690319847131100838667871101186914377089452820724059296517427453880402767751385095053932299173980677309843302460811361142925327333813810703177217084425221222399567062938852849070344883256107483862373077010464051335493557018023537714122743085634437956853299731148009994498321494152785244774950893321259796818435207578899731661573561315549455595208683208961621824101775988243684572152829792246032541149818835062894646277761191129985874568370653355975340437810633055031361620659898306550256787433707234846011003180596779748181565891872568425794439127171688367124445261387843814760712246654193021493490567497051695336130321158330655543664618530919522675104183943217597899328872657471749475393627149658127335607453302878612269579021064239996550646701346876356407162525667091091332715510198882184654733254905574207277051929536420952756655250255329785404103819826047916351333371361040299780620580473889577849007360306186177965618166180035393800655523329135339401166122168037622218886855460138690698653630733887558594279668886469553988923430470420130998205396541200831509702739891248315105758634012380837691482224307920401927716078247348176474779557905192574997909601189570152014577142414273823957189141141207393959766639768650724757026850112053991386199821683754254555012570437409264754557272352143526237203701136110743562048241264052329461330809630743003048780872187511561204445363097163953247406402208375616555627247506216060136962944449460005681106896647952429155775850129428104269377231762884744488648245004472083331071992969389206818161050072291613527710962213716471110720131207636427668175736226403090910861927202747986913437988766912359215095484065609581899910742591726658621252197506306607292321637969594415590751105336517737821967839946749409197170600952614110433177849636150134136654199036024913422639758935519292007953764252017109077238550469452437001514601304080674095309583282443137730607711893476292897750055998432864442817589705909904902829179639744113339766976273745878049989865614095544343109062927049582530016249442246130183138701136333586854905600407941313766271195993807526642628288207219259522978868561035311541088145997447237219763859537289334945386281503523044132802225520538253123206609076858068424739334643394281834196893649600470711319080418168658950692354831155890117365599999829582165582272253786843110630392687572689163973818806637681613625336698601845169740388687680435648011252459155822108239091002459524977781765403110343790027583382563093742234654465926760981498938879126072909608251889409393407689052722935973016644766203886334598734306229005329291746315122357603234738708569840432413809195278401416939246674299197672070892780382039566623212377283803246940473201155043758777223202726393349046834845451533288917015394908161035532459828930475506190128885923758089673734056080461763053387057626661246722139237313084383289120021530722770225949560650811887393960399991649847480300247739704465762219868497237802605975762602386667832458644662286709391695611482336539313673356714939753644117169136587168569851949141379614032317544290670317137728061289222796152976153373136575513183761652872384843500079104328661929945696206318470657964734395039667278178957870208998062318091512047750045672067264799424085827825486601187171570708911670359161240288741791241637333072716246477500488617263626879565423387682179304668933389245558113967921146198717471306165271250553387075800254558778981618866247663844967746340413359078857185524024294238544048144944592928191334033774120560652015052630177180450038526487544606802180012042067529305474883059142286956966828321329695901482563429703888862623064589317909329461313229575075738968799104489188961438237510709311670608561835878157905830231243582369112696974347937067315025575222386862963713953326862599931568053133690350347705476921406810823049756919953012926103987639301592354230963635715124441837490732360638315938212826798100383384426095577972740853125994960580069080819812864594054512521263164354743578218211798922511233841599681672165024976944605862616765368811447995278043944146389275015585562264229456228402185619374895029152131851062704659876059274712285600929786414910942884428024379074534008388085279468396122001492259428425484433381131658607297731305175096938573214096039320449070724701364073680717913927517255727349669353989998027901059403349966375465211885073230101689991022642935441800174815133528100861902805331133554684529668135033897645682607745357993637754702431903724297974068696262407762823852913180047377009388343520934620565432290124773748835693068576621679001525907724662635481972535581676275604270560272851331437543757217370238990675793180387463328364907028457948824686785304444250992231788800201610065345695925846152231825659833919783518047532676161986232241187978131081035226795854669122654948197327282364149483255213529921218238613379765527335283169103866391285699851436537197705518446933485730539334198355038397833196266941022658084336264476632878259661111025712548931228011059857308988828039087749977645316193889221765606289735705970047671256041592185092078911944872110920431182430164252745251941653917204702600720906034640454487225279465615803886190472210037693057334377132523395773498920739408269333039593495561110466664978601558964806184220795339224238596520076168479945126356543343962360271219297582200370677662560677377198268905260009037888207460846655081991875416788398031794656580282275456295693684516659957553929080297362632499634815396367718162680366238868945330749677794861523516062893936901958324510027203104312744803677847640176113170474381464769282067577640389806337674408474986403905988284937570793639647205324601058639977919414139640168323963600961559388984454631329751393714992367251594563748042347235317193975155749003617697872635664548946603472905206599411559616769655685917068600168332141745560487322013463596512520042313585456957961414282085870562798079907597228062453115802838838270680637248518034968618700059975016722193530375487006505474943843778926036524264874395702989376635238565768311164337039284141581451639116081640556881371867462297542473588562133782873534137761219672089251892307374686264679471875831767405427477903378265651238960122720972932134659953707256963913209526946179689924289009643502264382123178647539882958524105843624077674925756693981670658658463115752778339518216321442080790227823800334230214551307491538316926699779459985136104360729776628429177568877530547696516551685724947663182624799084794053698164925477837590417275746688894425563016816459069571372838414196910073995585565908747224741524343276234921004749745805210569105307765505800804378931560800618630896224745326160882472163275333768491646129642646332880378793404780825484677122418614319364772623527774419735197180848418394153231221204085988497950841022600467284730905914707952638771037004539025032107902728593213960322894278157513147746265944773310040707249666289860936757592005635214257476325577400606633278353201747000022714037217930120290037424766870292345070640711573091871943799202924340772714518942292405368508075939542146525869276698841428397122974104942147060364435138915009972455360849458483070187499928513536244281869803936769368884228430919848749228154107835866364478656508654486892375503419020831064160538103543972910227065896525081367140188577185628622779202308263550663437532445777537302101219406516959331541471630793531035877999123845622271316240896628138479135746616021183691613954040659110159898353737390599963630962985425987505543063077919667063312900313292568285666417634851184244299773590337468717189391614162697925341855462188365544775181721671133800431803144082833603535641517941698688025153822630320645406679477747679405696944118569779303869778290462676497606157800215360182415691606490338492832435563048987704758413736747752988376448527603882375157194164889757489443679568399190104373890532269222748962494186010105995630872335740829688046125421443639176677654750008832126456056094377999615127202234130182239501049342234262057209313473994320350346898990722421605669127789401333857954251815468331082798590670442108787199259258429706788995317977705361402962802298591724742692501424276381108014602351086051273027313792252538523108002315771512776978767987278299038465367188497978852612012695751421209588335474592047279126047936363539381299538757154842587731166096760323767977695227419975842293076472167883847098830697950023665813314857277404514690448234254872157396424003049388279266206387413997377986975966424955113721429074322858368313925087483174702986840491340399392537124376335822425973563552224512915272339814266502750781558585134728795425913934245752848517142101215108451979576142898920723076743220201242722550589009032254219050618581508590857832587894041993165508460614598868447110988079761746739746484927505575184363474636825683121798409777043764322403423371252928248002900865827621328660966607237052692949580718471667629049094983525455722673039313498947634885861674277462111577597895888808855802496996045017208830787349000394033597697585147191074064015414483825898422140623602114829405147933142253399430056442898601517222044468196076178277967497899167762412444495940452533759134617924376823091597077059958499137320296136955967303351826050803624302414733153777325619901087753446172059872041995713086778577343526251945737406334056062651787904802912404401612066524526678379401592903503397755894113237849955042922861550182607077903175182503493637206621917240748199608235759043435751447570617512663022620287440615483974669777987017966654870969055704684103382961947061585010673637732238608335133280930662012017026318145636757065029823563067342571283914255312616300930994020397788696429362862148154546771525666303933068316949443105955998378009212392079818060081730310278268115320705882070330314943122241089300419135019199941771145356829731916375300829534836157020907089902886568001851706906842282245062094734213330579616622849631952129506328798529633220795346553498470356651746613183407738902917038103095407071493742134008149671527167703154993178699598456153518005587977606488849061628653364685778752723788227050471275693269609239360032978794307285125469677785516316670446981280924531357013713199350478282998304351542584797223847293230645108259201656065516571012522653501982684624532507570804059403181377187622636427884252430682712924091038272183465163041243590813435150476466303102533129640860903705017880719512611760943898382919516838693170857832642802368756573041208168137886977773485781760344298458947699376111650584713573276620280036895334354024483827163871040735875901569634501997567059142987559771708687044026532757503887232880067724489678403470023154639049191921621866136028988335626108113378064290854077970418755495470933247765636949913208372114359330427370244080015307658720296560382023514660763242399128153280684174572474201614412154412769934396609827415812310570749644788923853834123308256184850833854177058256936144046526700909509094862049461943006756780051423700069499078392795119149956591315773751174631482291360403780772080317953889397647949831548901996413714445216739672817665343209603003074976897709398917344896698116947628193401699550157596880044417336499653538340922698158154890467830313147906098257718625059124118394974157293940189029061426171431311131726383026358081350102747781146970013845564041029863010182779899541445416138187252806115194024615485299118622505457205165237898921478811728844434472781417180107273210357588479748449000098143628306984761187696824066125730637041186453384066039377196885662874913542726044962293971655509089818374385705685920494749990088414217631824564192361705351720418084177033796936912391480536851493344956478148246701940606843649028799689432040745142782980963359394896376916706363797631839792563765700437699314348851246493001555442837018354923803696128754354536484905697936582398473453467406891469855726781533179520792515377122608348912892279673199958093306838323368609644299013417942560080760595141159026013368237212342342923987003156269197230545679390906458108646319333080548088453626135812901738158386592344388980634174470137675982469326221733982653374236484835706074664096193375806880224856258725674120396169330249671462424312770086829416474869133705515902220677642510458571245249103515872463177878419326637731084131000174017244225127526894335916533475112408359322590026683578591468353132863114023335062407220873096920586687382644595338618331370060400836487323255846021182525865378835205036060875226548031330008256641394708868209030460786442508481007412765415558309572177257546582647981244077314273393563068945392755240579001951266530944424031198035427761127766013173813179604076714916954423062078122570534881831202070722388452281850055488824699384618527265168904307155870836824723703823755015069227846621680035293928028788446142921677606816337987707527777328268895400143195896368633595842943798532371266704186494728391982740095665018064208889007612936277992502784890547741838205987956996551391106760001390518529032424963411607133620400956844205759045615233676307823543855030846231597041918624795136728438658266967152570821163089052215582214556520554986064672268476421484927420885806103826746735351137947581619909904672010963862869461811262148510441004401326989896179631709199221112852032527296334077362363793194349078713025089284749142554698930228626414485262889200654486327528014052694214225811891046298625942344807433819957148586025231338591008818886155611762331747769475298747696786215002758984020411193578352339204858357714395585041609700621123800107719601181531063446523070208023133990227064899237671514783482648352821116099794939609940090201822991733030014158158275313070421319804493096635388313578337337388053395848443803321917162593787248102912703748855114881183434769792257970035589322436980214319713107968665036490049617266371180608844072475818112188822025981522816702144349886641050262521058552417877378224510102983895465731809083486156870720400284855006424323253929923648188033462676197456235961823684428003214909552464382279429979057134097034656573728733158929848011882325253905195905921075607467961756289746942781192372185169224501649339053858221870183485857985691580899807949378686915869008358190408080542145523022839732260608276731935315997128418456311882150978507806372261024961882444278663275995321255903971470367363756190443251777252759106100405692444580747396896885064947702272233706805207310692375847009146598944919559570206479848747896740703266748646932007695337928158581807061432109157367511207582836181651380459922835729074457875487511719270484053328595790347056811146869190377072638914475230485085048611026271738021597212135422101480005225224808033574458678122665350636634852913775065488567865484323432718887443578450037045005257043297692454795461935059408788041251672205440008208100499117786027949390295503906742226301812156168644478871169114472195156205173687234583255972400375338773847579371180284639862831911675947136531873029451222264220261361922140988191038067339740780148636749881150703455090443888861225631021006331714750297107527911373178599770337042216899069270947540267645380694646577377876265173099815333912026640849004902299617885798069293762967141493252171193589964136438761241805825988005609675486289549803978862101762831668886095694605368965510100283671639696185588826541945231817988635649176943569185450426816883947894710787687649641836481488366614626670465544739178453197014625600205965626450972295580919021512112866744322863138507917042665173589931425472962819459312735333845347521340992099262922205343630422178116458743610274219054101564433875316167939277124264169750555694205947018322343095235344827081398962750654482130802516202139904885599040047319353415041521080168818342522337281518147178258052719377426185439447026308730002276588557133965180136692415088951598128029678364420609179260148847959646506551693906437167033714223520956081103585950431051795019377579084295132033300881737252022898428947274280259989469550915902852235850669575398473987688900828628430036097411360747725198482952996795403831957412783375115324128777852699938068286937053090164600457105134854848248343140584994617201742413485615423305266969839105712066387259286991215615374142624008260027766253592933545159620585431917606073311079095041796049373540330750766927382683354104875886984885815765979612304007657876445741723684209551287475325227138491768185853755319004364794415526962173744370521063754488518699577136571478451529278832473266184538185919955404605103510967635130494542145271657177055989458080732691013890283075145917920954054774324665361925002278285332288492126433890291741037873470782483037885108255608290711615701367894187843484087777980581039221938929702222856579489276493960989948865876023610789681804860479153105125148228151243615324147105257194935527924064611326720147660791022470651304936339480732932760115782916816329030246226434810254037968378960418187313641474131806707949045263289236187086327963002092461387388111859453244113691742928025618992498061493148338206022298251991673231325583486832691037162133206543601994393581050099535831936255631859397121781035994783325599305620668307648966751769635778843373722165854276895701998986328104591725562121040072462037638089878871623786085395788681001531427555633170847901204715532898823437616585205105153505132507655978057038484945741321604516757098515242268591946181349126516268206221917790444303628952315756525254119061152727906803533778556786589157890698904732510026738487930093793480209213409253022079072436501910870821614563391150418688465485361245523353239681576808134883557189862747320952697591235578792277569975026584794840300167105709767107536862625527390707114135208715384786752538207730631988394079545681116898955954372809236508910947686757309677635416151927318592718536551791366228469765313699373248919023232791482162747755282644434058570086496270395245084288613647583526019596379022004744607770305671641854373287291004158355279982611543102150733140935358623563461889575201370098695746483638335766087296680744434269213357609140958970559239799600377872937400454623645222612322424929278676423878292232264091563528628743174667197685864308153366124702883272677876998460226851592501805088235473475649715188082934890536149600374136254734673541177652191083103326095563706252538778806127036372476965028920387256234974667523441544983229139361949759721001786260183131590897048889040522018125130165262937257358202903547177459596204648001541084572503508783646752153115981968600897829967897545027015087746458638450365622210162630504719536770583355141792313151367559359084753333358277288178937043345050690116762632425796934700595826608181969717738644049488268433008588113091880731681815555109220733089831718907892796797636686232142060719560184460348561488927776998727983403541976955494278545519885016584764686844264827774924272311921419848207403101629417781715784415712470307350780768216096765366833962146092773181174937716519057694438478520280755045674049234569397578554153878448641865559603496794371208636083272631346747464785552226640065639235753074222821469662010350760853623416676494578285070509455338982166732861658223310416585464372327751348895114466894014911663245014105240048604176340539434423928894760642454669606263885115876965865830859063242310002378517803337308112441120275250964350069762792157009543100960728778098816341615738198977743434759759868915390757167442506904026120628581776624232629302587793641574021689677513531934184946698026830601033749031636410552125764924236641934917742231528297246653600206627032804937483159185642930785053998727137222725872351387926335167163119121309713723053902402116378361870728310041382292366370615850077379856560853174633877003624733477916517788419344023436583387859315952485438650919838775851013725313673899017406279373503335594309344419397438780090808688573562224279476005079879242871849673875978085189355560808311479690551475415867284909525818452290531442372411272809460629900481794706311209292029607356900520556511624519223838643078448275440312873415217113843039821771732631449205815856620323946032012731986182663064398371330936557981622655568467432351158561639907772371675035878275765781468020728020080746030729218683749758366348776948014199107957776140686066609055879640499719001136866068197238568522402074494702290702117130761525341640848068931925264000354334995297793352641849131519557634708275230118204923081547928872392354268640705158935497090599843918491648312676620217151680342034606353463640601149196722775766489980585213849767089319892486275913265251204760517822739469228445142847239799895745737965829366937221166840526595546420969375598834730867651633155574061629719026689689826975987343339249788836409260637362022807618164379545795471106476249375178261205181430760800803992573428917999752000005396129115116676913593917245624332316770130287917038298109990826700558077742500096088604578280751695701942231475927188877082491471289362576658730033056488443632012230532107474599617306340404432235991143105267252156414762132816403293871484025103469009096828376440542472775938238202536062977583739511017112332114020793610880031564603873144287749121398138184190259243611056248916236007563785938460667182823830934463446962643373238545580918681421671770522561340499682267564927186045589828782191370334169654630755531265267903886328348723168416314907598368824846080635675747210148325372933425258277199343907942816650195424963252632428887407361244768434705458876809713073231432954565160325932156080453074922629982497448368994609382974407677334571125204723023421892249301868248480722814928743399124112645229054343602448119772003507559292426573547193960302632793361709640687216464564130270967996232805614414384010514374295290624712582139290314358572855748118566023102718358872514354337153739129509206760465114603721844025327347701568849351193996902831546199975907504537085296934362870618530981948670299394221834699484672168219569990509953269156518612590524139151541578507211823169947797543174755064111826235667345806479675913523999194093837265238438473246988221913894365732641753607157374800153342587678528706480767379345718546257004672422336549730175618292512818275909831379811670051354461141569925738403001806072075108713236088289676095969297735750644758740676463694521833401531549911870057689991910205606569190862969347692512263435332074060637423006708179997134338808143234742707525486797180661883619127293219399829093733911596015415376238165973777395740731175166704072828965753182982096809876789540797539211278167980811492133229375283978862323237247011881724308009152352133201417244545626783852914604010554419545970371673971558807603338368069633361849278329244479421950987989306996348467061456798157015451519167573773664172925839518993125565657100160330246464242037344014205701128196353491785837177517618069905711988778259208583947614240106988178106842560632083678352104650376658418789636464287973110059082088583745429604869960531286402521596426060029105232139733870693473283572104829590802659370613170407943948957957622785657533909175481060809971823895577127831154733029481403222326725415921384145669315232991830516806272771339911042727599552422922737474989691315882583500345521487639078907597083716092189989276694215269190323750102583925434989293032523890564061614861632342751719689628458276053483986252387310043699811256323727151131956776498334180403553856813847671970258818250748093394063005446760507427725927265178611780552664861243217308638924851802003884875369458992777871117415991129465165709445264483983086656652498154305897181599563384417876829836164554448126537880763326601970595094137552666013692534713326472373311885622344408500288886258985411524439351502579765946706558927277428821227093321936627519112485902412950666069324845882075390526138304023063107883102360449836721982803218700430629955212555177070181144330807427375195541769288430435423627794834304094455174213690596033161975440136322311145896367810806031187505553173802726189268007906422410996492678388824715787633333054197776297818241355005946094924377535964593925949554820278531250092484991955631073102110500736907112054282431943121422743982506081001952120503232583226687271363936276800744584886416012588317559996634289032749382787667540237408383441732565861384330625770158488318579868196706000507632379618930234318415335586572924983877231313739039881103762324990632514166167871742177357973286977778721202173049202395798734492182129323483858284471466808083106003054785460132616475747413272204208676604139945792621559948927228720978613821336991925976174604731427186092807559163858146602425788610561797506861957013411514700817231571299604360272095727402324664755756427433237744422518153751522474519479206378840134846470104184955316800568845977859239308588143832024893974640088820614887582042278257541336593458617770383959477474645585758702502401157878046649672690643998356671064928578183901004586348508697567998361789936743575238839301675624268901335098999467335161806113297385455433682552359688552372324384570478690841848295974052316494051512589773649731101723108084938972890858230584617480446264357450456506925538911085518178325158147985861910936439744624084841915253176607110799059159556193246593550514330024335670733630027735462321480504785583162384515435047700378720586904692565446227762578367432214073704032471906159447973026532572895826820468994955779039221904702446751474387317975706351515152692059007871563509458314602717495639827200608728559181558339046047600908443225585269298516104349705734691954884913103756786678978377584275000853581023618450077961345575650261890357785557493065583753430185286122610711379021618605973933749906392624656349378901343335149179954556407049628905642600073979713334430020425658215624366086808478175548794723689975314990407188329615785066575209423210000456634712920909221233918134795613471411118500017564625143868269329988671470273149724873339851096614573386939304437669920407429286050025159607049032972193964098026490360846907851883035516159466898742827670813060501383039493612487134375723690411808137590329300072605420137279222759843619247805626756208683461131450711099499101077767678985258162139349801765805351332211786612218818873189568729212326111561969746615933768982360884034413452377132716473986566121526401256649502097044635036384469272690770586582322037192099933721200782204633807133024914187155011643893691608169240464248811236105428950854876655889546512841682803811305051623960500644302520731638449808692503884048840185079713523663026739219584669726732407760466251744547935386587124752770383480692802065812630422438629451249494531649336680926039902078550972543699665135370728511852995560347128287984175084671448189195617904094232738237096296134772779450855681349151884598644892883844580928007966933810856647958280763425704175252743740391841709949778799573192549372856406315887498925241123383205456590272495354177036799114326693003265495770431094303597357199580712589792478839062379386487441576302125177287647370836850448125408875969356874305752529002458762043838946523811595201786405334297957141136599754118227033491422528346993181140252336130819383448405851785985680533095308028216396576928920531207870820854654826083246602521832466494637670168985551485102939645218471231352722000102154239148499556342920067764656911323095214107940579954591646488132857845647062175147165953223913210538677334381732631806347358045662643851246833623778410753050821438040835038297675160243129484466785626228510543182793543241009505693020115288081109639210182244455980403105033816542347013011394792266181603340533681146877320286194991523228491013873855835786102976744503620253375533942391623810372063549508685773331168214910283524839375015717849060647488283440991875875316927159057503526287570003625885179481565451220646240793985333691401709276866230940402217873695873925904290515021040321381770453587609199145259712184177978900503550565539574610522992477141931636528313485724119629444499637400692572537205996826424825168294479573331689904828300487224239624493853198969682176806897515979391002351209191029786491290349913583297503637201675751467409308610872265550243191302135361809543342914277595055684675520077558658267351280313029331132309737151190460164450762579301167224185834579209908549523172400420015432310008529590157536208920137103690105770148564698570386212028435163143894222280090020492630686831073021968994289819046760375201939409980409452537423986231380196883390331877281005239789522560439865293177513767656149082609518689165854087060917336226481233467369323140122199797140552758568246255526236959545944790097365182841974687348993878428780364000869608625389733571112089347160506290863210040933543035095935089697264784668106954300793476382656958823137826395377488878403061260517763580325431774276651186937173215290640260588062370626558372439333934806440116714651464573194937278194572908491447350142984551888547164343753640320952036128238929526248976144200996625367960270011661298077676532046618784407865920980624779566625133231924379358727423247927541171888427673262487011573018122579792903448597724796053918731590474145526896719078710777508654999290422622360137063176467558896162613994866159063183455187171863779769512830194307627516794432213527365933813820157212148105608517837960524681012455749292136722336719812307018269737993817951431918211936278536849572660230338126497069417625598240042338990868745862804278977337143601200266614819939383276343616997968556016943785776088495835926764998387399309801889467049418298897595462223978027363600041001497578802194576240083368788808482081739255740429529654822295143352595038372668189848165178876787112142420170532530871158844580147800602155286684321905673898602005262278006493419428012374827197373911385058109221149079457772517123991179947268922275375564122643285372085552940782467451791621307162578050195960735194076521326555572783810292277761134057639737540846240452849390041615842744175855668914249961321463258421380299359668094312813788642985486520516289048601416773278873558529428108330481635905423930865877276839713283896971550001496520505887039700091525567446229050930067648092985875430824321092066952649400989054633453885277363866596317945012015483534013766601060488761511124559044316474350819959951648296132641787709324420971360302484136323570923990999372514408228881909561679445251193405995129183407410932045897893881032393880318253664439577159998552403711134502779952880815753045933067713818461980815706012297268527421663686639697172336236814613892322587587616739073867177395491783758970446352796240463393709224362910682429739243601634867399825505776769559933785686904192823394722947100071344212155680969113741605450387449742053241443503402217954110288099095044760481847411980759163282659248080253791258567492080149668852753736212701741075722360927304539995337870014928052985497214460843823889343454695583834486290486608184378503603744842717619899008527763836509252873622080738280591988650443846595701824801045434659084723945782905352814585815984812029573279863270300460250976003817545065666759264589370896772644022467684318457202924497156660830518626175894251612979249961891879533853841255691611787412092337443340184799061156840623304814968540010054591139090934328674037318618030768972642218622504134429508718302491630564186598404397936898314975804140609943361234563748361199515471503455446941609130473104253724569476197067772495088831565282345906165178688231447344580376632981314391367685771025262342677374875052230649128196810095276475647137522619894794397157925991113953890604930341819447678255904188688209887352734489463507286183937770943324217936505497187699822259283720298350227247339119066421170144776132037161965349181933715501344333482404759164447349242256808080630102790102537773537976428646698833451942783817821850612164703003093371174551280659738628659246781398706084103689023567793424842053928761191493896343384620062715010851291985818196487869224692137154837835446227535315451675600422654071820449717971738067292242778902802042527922205936773248603858767352419177612888791261799672454031186965965638571312571139649319739525216952640370498944815044385654098412542079544481998218536092049184974438452633689181019250293668263493495206170815643060310037475319826450084628913611432355856108343939782600047411554067242925144516749231973391020202095235305863517700578904862292119285419981404718043830456401680987892245505457454008580131546504398874181850965680646933011074129326253359321222346056926860072571010688295457050064246238348355736274705974298349359680424584218450898687120592987591299792646308037563158027295069923228145263491166855777031682709506196261858505263338103087904062058664193189372018100435210172446253283727914551287165075496986928315924412080255115979574133217323150277619657285843613620714164097067697713388985616210501083222716680160771811134211252682631156205538096765029893114675010274839470938699396502158903361556881532864476567229243188578783255739027148888818453146351353754263263937179737780409164409793526154470239036885493774615451370646618056834574795954374461734675983529406305561862844296604400077737360977981577994855606995970851548621508101812850332602840637037191128697772619071766073037281858024441117943272235140612922973701881111927035360277002033488672218843958386397418977113716423581530906086886366332930855684173061883951149837420990659976025107398628058385401043289102048493898117532281371199372184663464531385786974648426472963136816507673458987494236390223958390199236326228995034564112104291112369544700962206947681685585891624045428156057276870385771364915255362754221777090359465364624984998142571429369196281993885871172742036032744512721344313891054972817827288294861271031998951246136759098808241566391940144852694576567420773147266869283433012730044633469711927789326771500336400735786644189205042991967950239615264896336449423441592678985924291741900499450647965856714755982401279681927338203478027480443467852105311061830361819969975681614436156737739015998757400053068269525323582723199405782221436772806532107865546938000543151158918057263283515899809162530133007578603561434050067496371148199039346189282104475921638925317545723674332845161603899613425933657429089000053403188224834413404999218224506667219661777474331693816181439166858374842823588419477117348821461819940008526205424972874378087223855021807580735215668696075893620486953441641129277192060812200946865231274477139505984507445243038648250479798096515483192123389527706140957439094847933050094210611996894118494523175148571216458091951206061194339495096758440490948605813284076329798106441467442204809363892207353684461459361939326753698602354573861579028327824236722683636808567815183554063170544988577309457789213736206967089404601534452344105012908538487346422687537047596699041434008911469783731164351437165374551472783187135437442422501682833541508024904575881311260733425720405471810421417975360143250989550556274443547503275551316268079702474075196878135614507690009064981772972128646582105571192436625892042469281062841649382367318883460759234003361287498442651658269748714925530086168078824668812663054962285238668231254402506741718294192087209791082465243136315476564987884194294863702903728639312834586800958060066322879263112202089902728339880030213577568295245041706563557862071638241934560598431644412103637960833186826772310049031720957189857949582402890545567249404870579108483271232030463176311951159123990452102245239130223763233963376461580152885668597641469729591728062258532802855190389593673722649859792253544000368662462851556757225885861731293451967712863288651723361497015944597430527066983509415097872314769445518050717051734925842047307523402882470558534179335063245056789075696417461372135578988897894294918093291799865770335138877239355958182561904169940645576632673502598146761053512700465352458507943915794432402088405350345431050540004075229507055757407637342579681429678427891172885443387499541157636179151627435070634670792919701554043339300049769394512219140675380320035164817791086683186029872078076910474658220293611351370074423417817568928745053639132668631423469659484536650698550269923760538679176241178257498933120113948592381843897561747088961067375663435383811287928681359835923765358242171215695125453544725818800300696259326973322628589073146867317669177210777610528570183430852156186341479202341244263432494164909950289730342094526715335783288675347396618888822174778724096110705632612834906432912354515985441936425218799450108302893293721179883190665183261438223362460208013367563105481613069216146211297842781206963906111549603068626901544864485601714770526215328363235487062491601141341865642720146100770720968213104749489067312574892464407708157561336606334720416468129515819742649257830982738717186837010156455846027530357171297570885884120106541541172852255877090625673121301391619833241706917460843160815542846256979817230282929853957805329093154941064024766031887520015513119550059542812921655235698561597376521533328386406708376819268668616288424289213720977683994683454665946831352273154017850495012864463151086835286725993770788207523962646657712969899595704240008266738527698068643582602925508774759707106028147848740001580536920922238222448367598422440819302413585483201341347655959009901364564548752689315078371214084987606491799820912304988714421605684421474849213187957085370146429724546613521064565288476754863810871884942862149686235420250242954265062757024292963969923898781724004379287969358857908266899292122245896812255679474421930829153447237862125679140872599835272664653958841276226604510869587077542609069674174756579530035018351702711257013586266335598373270839097121176084868259586893116475737916378909263625398165724399338712054220877747652595468438343086096323020255584396576304109076487494002678303967738094020655714687403648905726654139536255126293455130561081272171723117738245942729100121213595264547517092735999363827483904855926317225869626711751638353384325982993759405593056342396615654196828871127591325453454825515433244229968954144441528736539328557123189735986798503120293522713185778711747338446457284981219149882517166685086970321897713221815581731815146264914453136033444848117014096374976071129161550707927484823253526312481271683053438091777178915164574595763509883710508856699070455163362971425146632232461351612647555410277011905204740511425962048411253233365093008004805593201435443274563283656174637343093458864010860810820451967109684490978009416778721930142162151385159611707320366475259773294502667071430250254445722326365227326772311104814644972734044805167248748725560095009399549771058624283681384355024475237087100471447840196771120995393666230660959770967134874902709854473857856177081146935653128366237692714411993193890975888819168677327582031939537386920247694294206954009264512025173011806037082166570659631964240492951467485048518514718232140597178942296982666333243246009286378741352709369691890726254444336940323015450795491975572252136509547790220218773312977244842227380710058149030161455764921614422902535708723965326612217778880697108648027262185592687407766170239984742676017418446223018051973883183450295431294803659292704942350101519619442830264177626841674987251375698277279139150891064475731206856650443466975089379168373778905829272008206716617845332013293680848774923648657717559021599327004209548247265648644252563592753585201534910152204549926600147384224320055016209804390567736511271984985357820787105739237022471408720461868160256764550521164200591052284590583845195992805223189555781943128822541529427973078091611760330085197082127737241261387908929935785170885377730967818647231418390436648952435820071303571810432066867565604806523548284875552783049348508703982860590229939494601237145255459037782875437172008338966467293680923930658449701775381810984703240024235099234669667462994447824687951228825504478420650515472908314410363782706861808305235451711837142985914883082902366567312110178375026715402030231916128009681486052525911732297814346367142266965988644560381478209563912808728557925115142122579421496727403564870162995329417975082129630205260760237618089854095717777504417601402232279388489289371402273823852202380406519666112908573438201196912106275173552343272278639134025986342582410085352341003317242100736734925451386190045467055480635161671358823697727254835578362800797167821928511958766126299558727207796500536793842675776592503591152713555693753509216398088297173463288449432710050561460493148838435606850385443678693356921388813746511084101618347145419261171946108694734434947388539908247171966088975156234903240017940067175353252738465371839213949902882594815793001764251451366122694981289821526625196573647025482347717258238397197109540171888391208286709564658242931837071558231197374994918382831070681175340822751394918986916930628531277165721332090531486974140234160925012715832014188677372477082693477563096343962732129822709516069415319447311949375209355997753241995567371067418847668364286648845046636561019927060278659373248326205706111177117818834583230137626502991930676237602234064716570271051607184138819987769591852443275030374635680412335061038729462019004497773999771417603915987910949696721784079814413632164117651492039636382206220307348338180778556076955691781736327524713361417784483855741809195011032097239132380980042884577612680043373005794885614370801188849840047305367616039489619581069075827181224563219383272469801990198858736153708399835045408156467615493974211146656104011059139925558290174723988483704683915445094219220197151258348025584496945495865821365056619111531013573836811726948885162536573961294777595875551426419801111359849180172502774166468572022306824023143491828187551508970378141966017006049275611342537754484919060674191210207286968745816558967582026257827472623529534544440472479803844508284415031508575776080102256248065950688008974692587438629220524078968769744300010705805435583005267043018341844178634714271868892909994552594435046456500917900605988087190398117307688741192079971128279622716120115942437983482897603886030833340841113211014831560409777949953707142267052871549558320629106990131294849512850445350249636257080735408932383530895850274626898959058235424157133921413762367933810772245136528311746324704222655741110974584692282674879810223272201142605723488651851665352006428628138657526988673257539279931219170278485935881843166500462416109492593062102365867082283966770865046423644784522042259277762751557186650709764636991464741996594736533312390955569653929772717057405385752174876345224746177408136618636412509384534327709653988315663712531938928365768028967500465498049134199652053304482750092964770372817148283215786843491146691112298675292369031048637258047893466220443431147121651506384695094224781635658244344139629033612178470706449164218036748408250887479585455879247254089765511622034116829728248443830470045551449625220781385625167550019004297499507875882732816188482757821658612598872722952346434609670105713777134682925723480864949574777702220090124062540827881347024119863175288628577832760212811121633756546862962683811210888069420510745057579558158417194012724069337215610136292164118663303676299215427820604304145527930998717859314465737178271493397108594612724973977210474111698743628929862494403625085205173883765054092089442094681238584736865124509478447784150439390345110143068325299852096627449025926585271778963225241211149041360569408234053753889219642317617920505161295676753547605668913309745899447636574705566837584581464978712037716637692762494347638440079243812285363008229009168534011249145503693054377538743989930952204463658725208181466456636338199483741695953470095566934703817638847383057603243478202156529500027251927793991245179954345106929880604309607005023506951374042808971595802822707958145798447798244153819382112020859618141765668077130032079706452107189657264658249067758315173941361778057507136771297163914704894212594956067115524396175528300719781501952257832936822835686420185608586312762416600006647588933299334509618700678804022082012176055687562694744379634836848767721522142047434645508347862317164250190263007138859091358031572699280951638722804757236618005433249355848210325118202266774321717206837569178354396566633399849402432898929591076890129240805105174304274067459663634684602555613744735659669049210145330419554929066433637773769951701334616601943666402882040415733657240999187834309991222375555364451921808284106154198018593461228335178800386281488747178203471130668500312794773924227302854487782760795144759161247643920201975055932767730608340931604302035931584695203863163495031105117154518722347197031831863189498712500433025789038617078402757176667744675461231604505870903899542093431406952687001202017456572531919596573304256514503773599541462243581926900013814968145062969314833971242407079288389304762936588649369275505637100128172109979294467119078420702411485729153506336067828034953944343864154699483211475832240326917400241213766080805668321297806131852121660358977974043654216308931715393862325065740754474476909203652832862494958252448256691875583727409141878855976309416345794794089858370493005945223693365120903577243599622356256699834081654636341775946748174122735815341002510746485576378322791864039345797821119620740321228062146251777447192221097869102387107847019326278552670020564616650634482672715361872729406116222261046031973499732278138298632308664322238273034076863231796742840387068405590138724906413664761813978037757001371530506483079637749081498068957046867526479834333685844184908686651806673674358859745557333665939460886712073274450951047289502391439610440376758679288828960581132108633004081303241417053367231769860295671890323619560717032074683104504883595457413689052738929703664744800147200067272303973790094219366328807505286197091524751088037507452798211607020222599390263254517292555096553457143617053781352868997423062192643254729292413802577540647520358442756079938050960763949924651566841083310456490194224381720222018625824066837657754457296936411832065666128061900390497514703490638758486974811135243063471378442977776815480772692878835167717117783264990088625607691641911051049923165086322839528858751068145559385365937324423830729423440251627961305822557387630498066233586457778573183011890465468026445591834818975164370767561961887482627102943695291675359894305998156879120754256340364275695020710129915228341726237944223054662709723245606867162422334830028141373667518184145543368008423609185516406928410229254780727279136630742338836380170965373229405492527794673604822226445118299379799990666835949601184422506189738704652122621972102540591842277887185786698607040694179452658591084848490527084756754629230549918304924364979806703716685536145432674716665372796150118669768823158739102130676135290884904206908114094661104592826732281871188436503030282028231506728340232748209255871477533605007892954367052204840567530730537431261778797906675477665405144643884138339028467914793621093070836753973430676153517791208890243392393278378065542374278982774633759753187350305484355011492955390488537387141900423065101038863175526707904918769048682741589636016195423939242775028443321849853529046907729529196395980127094200061486540237788275689629336929627841921622439051759835641352132240202036962796955922895688243953748551221924701929557701314422335901569423937329422845174652436672867025152078728070623068049165704513274189107963902064893746388693384855752889671984099948297455689075744497078948450644843272803343928080730391425757799249284784375556988766533227357245307055650567754535811729212088068089915054967505688024734691636809267359345973955667096902431664657580256628917692082532016078738763356208985275223171197423266101979828361195859116568518015811785963131297394823378890367099705304994997577535398031964550397355267100865100708241354338330086422603748286849213333904322248769113692384261935912544655379560569264263374384925573570646737048068733971044408006657177721476617068495061524717930652102349394121430384928269831163031930972035709479048527144148385256239859612855886139473973500180728748275893961132662818299667336609787802259979315443375220742553753301284800341134045477786308673982328928435116444232513460432182760875960706790214860784220928078040156743395988939863820822590946205248411977663166189447397538011617882842511352590341677546205465926708206973591808762303909387141912346582707396118999034593546399684644238117227868674391899210936745956411022493392280390624195938516628162905949472153463098420456725285704351804914772019349670504735736796740327514033432496037401495770425059872581660795109599846699451906553309405877980816440580733438789716880678425939973620927359435912611711647710045948316669250570740152663259791989635432664321490122398488507874016554377697275785436968437342913390404426632038958064454572818773490327229848402415420837289153124148818311773390052623109237226732755301406399799308615579373016276310528051336446335133850758556587444632459682163276556778346457989978614685630691320066139303889797085093363273540769937992718026021996380993947717287331955499138661790205256787961384949648725862585772492503580945822494535935711974398250376071779818521629279069007602696571225816152322849649784046493736131668041476969594491842632436934166131753829148645751195974703274019567805186409692054065798917867660579240272436971731228030684676964687802185569808867386577245408018409100980681869014415872566065925013507086294691844627360119970395143636938950503201193826190055455685094530893939689233183239171974476718317778049135116791028824332276204282207818659883464516725539058230415974980609541500820791355288118269343261219796661870657842170134028492077164599278740306646480341118260808191058547433161804122658489236355608321486115246902675938240759885838848479693213629022721233915157959314249615998500203623858988268895992436898085005138292137197993176775405914484651545231242140299302376480876124341697216890704754478761900634317638871280972449304343060173903358762497503853435020610395976003677705694517553148615115715118611492402901235796736249847817551355164387115063012527965449329770345894928598377295971654095561415722473309457284094356466501347283956292654910625220059765983824895756548545041542909153972785872704163726212180610492807222376856240898194886500017864487178072831175198433418430377702455666423628658305193563256744953745529567876707661594408514178076988017703804692232729823502598180506289782888688343233634973919596212440205745138902724140310585572858950429508444403946952706460697394606798127661426822215185325554659575228567658727668148029633203493223734646416343328476044524570866250890473004820009872829250413403931135834415840969618481890054897687457367083433966451417992306311259775233945571840463523904095726737386833591202766190834764448429092921274903093516633381570345926883460695503491107158504505347892814753059707634881287087159567611923934431003306732530948742295934798160089482432298530387834161793415452869731382859402192509651201689219004216557359828061408075730128177303072982992751447467471710970990949892116627836131663046940087910966362146794324333271126820392903848464020153665319440912855249948671464752944573518194269722566910629264238392239681685359319318652365050002484123474882153540787182689202307492795700650441909290982489351904255946388016515822519802464261197714732265858732691910254469833559243210575507623419495284245988697244403565133458016754426994873654712664364828649788384953332368253034596320717639101639116457321191969591697088443220453928674073373037284104713342636102817661437876801414427813102971641760354930416397017765713975671180942689459816409103037604658752540613827982104637113515768411092114928281925168795480775807911186943721075063232448827244081348567219035816884427900246811834707783507777672745894726571806863759877198618715421542655808859005750118789425189037294973931821872377415687067048959121644513365382725886818070137306465258432956994852350734112279690915223111288097173168344885296085808103128539249102528833485835209626640084463234158597548700820612482476998968987105179977669970266930248993772186886337710940000370782845653717220510894124221183654312577049420101450586778538895369400129463249520096130662729744956519692633968631052867386414430710522743388647882163816332166260885740851802826959471575265204114010059137092691426424115136220525158228763311547667662895855298164373450965923685499103462085969360129381684986970968397422884859131319073221330911223620479919127233649225527527944923572872141794435525074810680171035959072283703893586876643756675698431848089845455020695178665925045700482602460217385602675563579402160672526960634587310721299511766995056687203470982653040082541012750055206870491912272354687857254206414131146148787912630663512585923394084184341644555465886440358662995508746771685655944148486069635915816982750859712944686261334671935740839509638002352405165257176952057567532098985660658758506951797538401987197490409953505863895633020309650473013424477166417362754426439516711169461026954152344545228169233783900428544879882725712948218037159355204528558232401272245203683976677993599182035737184915478602676763975166118926031772012469821353679122733599377934716690997559425815267370742157101569187864043059651016746293301017351657037837746394618792588764436478936089930145073345004432098207605191464175109265752821187724388208271697076500296653423456358030145095656742060729672964932417174687051198929377021141979425956658808555661630340377802170735869753709040533517446355986275718007452116613085900830575002456317010437960471857834503348194317846466103340723761589854088540606196743459752629701084187424962681336643639875554757921751966345009996886193139163255256355616504363192617924205767197744045553691914754220105218929096999429668291390208845229643155764833831962427103750527390975917653521234398681225978011917014071066354613491812630871494335133906724985308741743938934227340061654992366592599865017059950422108740470281097781916669368771154656753917258565917992632841769058516300038899048316767973755360961414608072662269499239748059384511510688231722851633207528873496219983149727752402177588158063760738633011026858768747357778924064090125549480155420453616452779215028637664685845000119185841900372013916516716240551500083351958331655199898277742899710938097093996619570660924012599186473053376640030056957637707675878608554106041904780598222349235849390104419910681664067690088606430409139856307222285550199343049228311113719590450190838854349026823963532170296886734743940088306232193837464366333777330070084595930653540334044812467787348598470518130879502556374021284058581959554331397575094469468450682900402327103189093961297709019971361810721600879388494831501279294144425064213171869448596041251360775065406091592054310608430009386165221177228818537476162099074505128907534875388484456420205916572280921615681285986529527848120955727592239503164664102233299284202879592862976017146245491277764389477123779604869857025142558027788995540247505740684509428801219678562558968926581401130156233614750172190947246616957785618371667849772911253712907330395407553577324991141065731515223754685641618238159942165044027006030023377292211220447191400910324027120723697509298921273946530056960818247779216595328647578227384983983705270801542678134167323903548128179544275309126704130808303434574672324745524825950400502673435814967307348938889729397067322277183418723191414420488907069634010495230623128427582076546590564021201122358723698950449703347215548181037276950680354329844062566421483576354601974690436849030640746197728095999008162400356857397485533588631966383387666212344811630473979983711451205223422419387706863220317414261681965992904574266715590530305748107790831861354078406108812848874265925103708269343930117056073426913421892657753335971793807371698537194304843469841618256655664960165554575571328093716077226357461042100458108824649719700111993209202682431226060017918701228433660748795543252015102943466403294359865588266828949863820370317433211238274432466451607788216680352683057559640092229764026565982783539405941868583843527352609183957894391678096516064421883936495661023890026536357208017856457125104692544085251167577216333986382610352893304430791826769125333473455616236251711337159895469713636142621176103572815129464953041447183172889716127643963850305160052032681583862933430482838405081696537684635341681798989133452669494001615756849333170638676289726912755350664123410780088038578678271502826372806453927879716897247525050784717030275307067591718965267034729468985354030523779342256398712622072097937092103799531752192062693576706994468933457423694349313802448297788313336518475639276985235942917986670275344726237276059039094733030759087298075774102870132108327024524515503922187551804185091492204686189134941892791923416648330892765016986881891602333004069288463523433451841537175241818786308811703006604634950985713665513341174021812137675160720219654612700423913775825180874482195835787626844235391442167559562092003435712672914633520633491328345713553242781349424116524212954732757509071822081894506210174064899694056318614637561801773747926556749261863459041375021839666465536210503735458824987548076022502589305978478867038236251791443537245963247150910493927210300089741354536070549518061353559590421025914008230308039859486187508356100488806377239592459263613057723390062100278564755040891435433524725789365893993275168390919646100887818716328473740185125636251283718606682399559183921845501219770314011884329048794236969733007302900960649655433176817068598528500368108701487378859612617991856787348991724264202110945566097571959023311485555179923657176502131346816096575159772286107418093635910468395124875363719430303010987307181829862234941405883668912071776739434220938529159297230253857623243043095599059323881217742665712360806494407378786437328403936215116390466199638176559319603352743819933548513998842048200304101892215640815220154474834623849818742561086125606927092138599721178276932937683255198352230689409756940775803290300455649802933245947035920524414816161931023516069913660756789752255660618873118431431757641775038561336435410351563539799441298188700303466840425868925734729480122989372261895125393299847916060819203448798180048222789609079420774129848156605869499839220395672761558141210699923082720419599617367737678054021234902922284310982941481001960954122234963764641340150991870846372517895017182377253998292088336715510066214794370103245208878624987154320328222384561659782960048036806128379816298856266214018304835713050849893548945014347280520366976778993125441070187583975094422166966175314109738467720633129955796305466646492544724507922922815402615376861478042682150787280891942223229083036157759181558168184723036973912894813621992019133081973929759718374391933010887677359507752361898547602097663341299250023100323864696852369023024305280209935186785391615190419278889640145925963978376417128067805765612105138142486492231697852265226104658317107421911944264569734409577015510211158607904398500985295033551705444776447926700172128802095345222492618737861463461954339654643573365711671902933275008263076415525687410462808295952089221037226129769021368607363627931848187094732327104877525833813592664817689105477957993657058902843651266342890849479058543537381403265359988343146943020253861378902269055103506209281309431904008117044373994377514842209669046487492655670210216261909181129744823480233927004221721376160659797395217444302443952052750622249057787989016186184972669685616146139951848419306557418359547042908950809766167020072279287598380940176439281013359742843617620984662485023852984221901595420400723953966601013693115837794295501989831916802095902130799548760902831157792625584132592897493090802988185666023800723694032370944206885982179935741597710427569538876044449852614474713992299476477801932233655528091518164283199228215934115327540351690312895564031566461915258117964919446284285353578694556718174832529905676898151069803136042534042051959728655270065701454083516459686108870986585208063637302791020348469537506395049662250731346185451946932834887158361488670654660712831570643074093268943375352319089600932093880315557655537233535386743534947332788291227802125965258043054884465644805013776484987657304127069139307762973222899055241861175903712977618163535657722696587620014527355712607757704362645240499355856147531926077573731723466078283054880858027256646733335953462928939470549597410259290709217966843404805321657299756335340370512026278588815048185089253446499736801490421477404991945554649409675499394739750302962483834738185010049811226283420904625369382483913278230867633288550694332736313089077376173407060829749067031433841460441321342881107523682409262668189452946677745623053529245489254945076990737291575977820905932838679729806889182206283183944375767503400289716751821296366361218195884476077978879578244943066998669183795698346538987136213359678168389769736201719693438474130631077329803668715252745163731108637151528783649310151730415156697159751857397555971896300674520180336161205826428964384923517230456445691985623771606609749445550166587111763236752254520143608228660800478605146580107118186706594819443974877894830730771672809617111651910279679676355038694338381940327449885483178623986320451117472752826444374553654426492697310191058434486399773623036530542825315595850258082250514022106291954751733013959015026344114991705315035097835273179757544782106703079865285388638991970783273158361932555448605482357675449420822708042600099938799745094500216967547768644197836317344293025537035715932147423571094580707708975492172314573258915297516884860510271801625145579830655798346448399380318321892265708313846742650732041261350865805147947377724565500239144655842235273511715337917590556488889335388672284932044759086095171940581389764109672901410096850636158573346347299422639709903321219837822912150526013699279117980957198910925436619036302534552860512439201303561557699110810244125825360054256555674597974799115841599141722894470581538940894224390049902399577973533144772993774439150449302319646359883648296423359395935289186221839220322774069520054757076900872336422002110753389572740388339546273606042853489612550153034804654602094160147044100398076035011161976162554177753443938192905929028170495929526123873070528581994497628091037946848888737653393596720395165841793175335564440714701243750410556727341628092882205440639339949675277307919529724363917054335794522805398318676114897475557011269917130110473250938892535343056924370451286768849383441730311298518135948422070124906208507270261206888032940834953405959718071416319601680469686316713092433588826892540077054831960311642087511203278575217873498205161421250679973649967667670483861527145334833647977074398601804053381572143356891005245242716923570264356955609663475281722673589278011319957523809362144433693130160013374299581846816272085712768964602046850253574664773630350492575887541400492672653845930261781524508297884871074307693022146161617844486948906928211448270472458553042006173181079962399415132546584053838968169739232928181601111268682443666217319569906623652511967684168824513309579456789940639372164711065612774536918711477065833346716784233380726435594251499710094779635948877114426348667795784287577007473944062874101892120264199197882149609802175141639974473730468868865689348741301180650943953445761490414750445037916383901570388214013368184999041567087802051079725155487184974830674719210787500071812106605263572576789821533506117260371275225135434711275716555594585033807480960156893810660837928873273027183515322516576654727743420811763507342729719212373605513204216186959353555596945612271318946936553614185874529340866289730714584288611557085119653926682907388247851531844945374420877986849070830342439333031635195505499017278632308694295250256861159697905847101119690519494616715551419504831614907576542886545012175256009464424075133157756656329903719155018265527691692389718905354075257740502999788123036871208610584924381545708833487189463330576950359677929657570079004544912705464736910503281182193696583830971873214483794089208663614170903734499485496251155681309582173462187507199180908666248487120535712741426172696412656605456929421699245265879970887006161274167290284242338346638759473986775092064158792019017565523567677255675834259355509104967850126650917956370751870997492164394262796229974018945831651526193959172697079719551270035809454018264704984267255203179538679287365086606467109634450177036790960870270834404530759080166285586098174258664579779746842772952242342279214150466388632255258147344529684184339174379599042814429352401584801200539710854863875136610325232943111090275719004755311448427897189756411848818002588692187919192090901412091285356251316563599456657196132301406332494588370688613211861729327621008388189647836391822017330897589271840952837089777856971873566847579069945892602335328571135417886418606584959229976624811606471297223285054628410465676330512401383697574014623869092507640415788099146547158323813986268354674516074133999711604769181884244727731503361303343770985026971494997727510144519718382813232879806982874582806120554207474984188282342355941476385668888945203028732407687689696681574532347542693624377061678749578092411045091445410744703376621568758316262724040114656243664343216381993658099481737778873666876529101163410244150941299620025951075973647154798612733892304840684432830566913898762416986694271295179064336477038806368208105515396864330458589904721845669791028084485714795587820252272111163957546934590884533209871630728722688760093653695838502576275379928403980129860189244332183439035872377431345145094300539270317999221550636379582165590577516080593095515887460811944265312532664500706570274707671049161135373600179126141833252108454245512886941823865478974164424508250756753966410642476848934437498550279987021222885918784035749273340910095622560489394855887371396403057703627328996075437104624965951286037420363932141463576864269775770246750683814598750355187641774431314813591731081314318646687529673762741395194571947626055922050244412141105726217665108962979149963881676041088320668871255222157179815017883175430500154322655228166424085203428350758353454179660030916302656626427782463876692722059275990507589382464027140385632416791630196224480386084896918348683192104633092249487533301553114585996503091919533557410433483021428172868355815877627791908698526140174587119116916735658090803839127905532515066565951644366366264314585440324029867138385666817928008209598027188414302741402680762690544825581344771838066503292044337977667148483422839550131189425367936598350581464339259702604473357371122934710604548181979782647749716589157916621495531157987715463324423095590581183205076460214552127629541471895057031167598225735599988318028763587703001850194567366280726987003943244435072311651709021990186157911999270482743078946689341705221553159984500176643181047482692636563088425506907977722263308218075139377923698288379425522388878225890535364432415224022807993178951768275426130938101315018453042415548542659582583869087852054640292864700281186089031810467085318392023818143433106088702736150137682408873003859246890192642038690506899451487655114570537997123078595610004149618014207400298714144967781734637136689259859892208624826448664310801715151075417696151646125111983844472849984097024711805320786350936814523651218713757048884601936796716759822118817962851514605573645896938315800916266264769665532520678112968647401567957239977978706793372419834734013079742105860442731892449597882423765666443288044268268566976403448873612157540062484434015232456321177822676105065956018122935326246494320253937934077595187701295091875472647738286538872286533018029662532556742567664799894432247725770720973501695133157858814272996212621952727729231498771036217131047133404537972649345636800496958459916814715841512535219519656979952547778176456337116041332685356230505358932778721844988398472433017456477345158191071315342936865376683656026086942534348909013696007968749144581597076711739321142656771152472490638305006325188036379858248946298280030693528204222833734146056704299494530597752712896371278742162968479649048825100005201303686815339504438703649088258658264477634034872961818971759238977214434978119930616144288242095682181380484629546010255632942960493571001987596091168751192192303785435238154914459473066412601723101796191299025748364191188421182057363720535217500607915177142019304913908550138336573950544368695075949897164178150682818080749171531852910591392607522326781934229788415757164735136971920701380999713699656563500009966045663601631914135708739685739601615811652924964820763583882756200968776476456510977718689422740561400130012372149093321704745593449332666037105903122492832643720678064311553790633464658000639077613219195564737778114319975907101482980018766045813424238693133907489841945730098446613560940551552776741555779877469299012914348033329574932951083310211293074311531610686951700664896168073782612772716650508996434170290952975653692374014712108487301734274901145271772190511380812479380252112710259700021652292510143341915964200766843238748346832500575895785206177031737980173527381463365285114683032317429362954239313032077684231538096352219091950186965759443852281740465973167326785462349447383103123722736147719699649833566614030448692613576886605135993368434716356113843573323492305958428783887172170103071034703080351973027348408623268412654587179092962308968432555158681236161310471252503928487578493034607544251299176895260838827730742787891444081793633440986046547646832780056080201890683967135690705730128371547144572284317242034871625326696124771532986074021162552635998007284618727304209480935827228959092794149255054231296540750486890432237551853139125522166143373036929698691079231908932983989201559170474400537714194494730136949785330860502267036325681286537981224196214660299345170346052450866043749574884374490051341884534871505862863572725773968665729743953603361556324797367540100257829276639470293961785561526600670833467654330235139855245310162220352309067162087277044510823141923125467029592278737034478043495124078930398451513791035763472376288324634137013965908853956850474684802956543651772105046076005186486650021968762004094545933009592152304428457634922106028372284473873873329825559605374089280105022749867593341606276602166481879963530091128766971555041856593317574602292581198865270091891602068486665906205827244873397787608951506417904706864351491765446086403800034615988675438746480044790786922757594651536015441506109305597793292787949473773757331651757586535924875139115662323165217427005667083112905301023994216931710752929425857095244552257654932213749933105891126018066257848256853633538455317687592352209174944845435196664382454982416992270944812885829616318768234583601595302890274830366050768491083866273566226398619055213612692187670666843597103192511090980070600445588086920262984626913821866588050998090569952590826439865225492506164368792942415127685103342334879109669912501271017424667177205219637552221189575330565108368179562607359464776354812944784417330235355224730631397847358368976978942580939772367967328063142908875064104477965159878259410819887002012682066509567900268739893813811477029037504575350792733201447386129629330183029950611115058686655951450880783691372055134078300846079157116662136571054603748648346615064105087574252855319955085659678723886438371421307764542331587505636066970233972275895095741491671088772764618982360486805477391472822935326999836922367789731940070302376709621207047189541830285925013856577535678124738583477808639332596174004879474500264750285048351166907816045408706794315718391775551019741007033831382137555327047714230174654861446454165791241935696213649614954103689600881004517334920991672291762989789537642720004802349522054854267183656925709172538770539892607298099183563043232131733157163391857043655016568439990681813357313170340575102684277786331291384274180860050965418105857096818489312485963290333513584142302372476966408983080249867866197405822605404831652627940838997124053722523190180631358537095748419513084477022290063986051427247140601068919514335135325802845496347903724017614891767626248551745804228016064054641170425187100311953776888431045414347828164742767399863991577807303463406542235536375527638956064457191371784880912739433605313244920541139772803233894484052051508925202064439842457460169664593777005570132260049387907045170438027206650938971719369154522011614891014728032965778808729106038493422986613709819781273588361456680735995647067785283368395024083672926546753248711385604569224912088090976448396171378674510052831876447618969525386169098179481281392120286608134186914432627811859788203451153848491275351784997994485865604181629595381316145723672042606120222514016720245358492000507128896945500857215123835962762839395423991840345099767591269451236192036350995820326581345722686302670270221770635054817170154349983085031226809543162498576593597897729324529254831842882818540135191431881394495987379083648499089776363238463840950003721012772376453919059297600602835580653966510778424548892693349989081472492788834060782840753972215120269224899788555609859494619022865371311199693782343515313362565079369061192058911902342540962083667881461687750773260472613450025765554394683864950480824418001894173856774546462226304812184903942546970196533696253427200312905834752275694936582285032351054749697195431516550300741602309774420525632570005997958726548634749641406007219665878510499453509409564548648365055420674996087415434208146163376264743970916558395575167611739405259057554394033594730918795982924900147196571402298177479870876015065368285153396163999354876536471533076081567442170017087944842212752025144446793085201086893002966412219781988388319531009932770859539109003574911952412541935746047684546278111041400681407578023203174201004841851289519616487150973652974646883086434783001151346506369316267704888384286778600468217018093150136751699529946891340875383410229600482253576835561057060557116823006278653407611236428875775734677251610214747913740229267853202362827749014552276022120715607369406624384012517232928440157449801792949145383092586331031798148872354730385049398609088737335032625903583573452401041225441906490459875310763733916053035900334041607225926454932248014179450643809201368346928273075974220330810866524211618039322340268507636235096506537389719121543551750608098591582304834533784817976737927641347132025778839127605448072813454673942943288901010693541304849632914420381878710130175503688232155169486223442385489976353299770406073486080844676673461507416961284351978881465638637255383289492324256383202758114896257334443432611084353831271953003879651485717153343735286234664309456810522172224193528767233958387139814300121141428778584250976871867694031586663999684466222226007346640287548734765102829809349092155847280793947829716880536403407843618294357155930931827889039098985015681827582059323665664475507695878141399734895374724825996113350582977588263738516917132536702439386979127882486021194372882572458794943420385670317844831740998558832365441494936090573473008586532001230143860195004170738166296211244540529794569889401607445993518682882292533670212790368018008556102601444456523658859825940232333219070475226260845436298221286134379656034898589560177716524572263528205800309081471542380314673329582757208962200687427735774458470691415546340314184545110269212922268060180887542152951646059536665396681889876170896659933819503232419264009094838583723201825265678258065899042465007641896719354642985502594715539169600582621607905332473035894472688304177168451589651811957543073100803385623129688870994325635732248124346901929977753337354379202557455436029431594449110551858210776091999677652794191958923627120744127308955371691425931857168491848596044534922196625698086548255860981096996951957604908681266721586828270731786284860019571840677895652073869505488859701004972663522971503961905146787200561016601055469940165463375723027607651037433538726097417884174826597388373659742429978313797512469133940423541714062152777776762215768594411560074812853018615364146770060005125855331279538217182392328540399222891171807801330785866108220714444521022547594796285519813267783450462253157946991745654189161001190518032659934132701287256157288575698209115310980604226503135310063191326696788902946850936244958089198850365488909155039581779218155918007545843098465169319562430693714922630651385123927071899163623292037970946835995404591103682222721889743480973125515801017288226178147429881893313435496452679301891346638238136000905666900467075309162830846912048650914032508299387247563659050049138689273252956672991916164823492057428829263293773194164000895064901185101176826569254613579487207661284698092225267058201203722678054344826253875810466578095088756646665438222382714030776975822240452068614968637015789765881063632596400442167081880902644755567543161899268880965766219590411318293257408748026542113459904672916665410447866421976635608616289305779248780953489299703968466276995722451265511939343829319443695147432058813716384632763458191474078708164051268635535587551043198881030589660469494411249554805002092098166314382210268571468500090600362883054342564902054878341561512773924906022367297470555329485497128944751573350839086567461785611859574066058117513802728091364434468259286475719039457185870313253848330810095521709871101645251174152496250925441298593151379166416966580300908601946955361270297268602347094606450282128992159404449819655847747278704889066526073649215277690075952801464513349987468735353970079355912932064074154128369705120981701785829641808345548938361671916130627281600608738484583585870453587834280826710420676251156650000933660840839661919870146817102301630600578277985258734015074865749178767126129267564654891140575504230166371527225488098064407335875954624576931787749104619017416288914773350502388041149294764702174251838640374866352047758155742107178068952865264831474563872640784442676612726315009610767727397827099690758948145708642864817190829002301253047277362946978316691439080185471772975943511466052086674114649051670831483665906852685017685889212014260628222755120315652628372949287846592564304045344422059493949540122579455391056098027379584109030366006100959197334560678406229786967071763593610257417974029384108888669092586342078829980506692435178456528402019468136258823534677218559088471684817208926140970266919335644324029268428496100949991294904745948107952396725402615642391422681082845790402510428970964733559506663428285807678485008398126459425297469048040328253463081115035277706571294948702606449370240902815550562391169460428964075212143557377335660801742809705187864658677843293414732020443043426829929244196601392422189637550622662007944261415417422380844142001620954686717675666308463457989405482584224031831859207352879207083727432567537030586574250554818866650516333448045229479421305111141478785789378174644874844894122313345837452007898046384853022144471452905616706699658975017347058946581076148327799992074818167713431653136084338995619774185086480406483617575763417229528238588790303819837101211552096566710863460107975287015508174825147328696593509378254292612506888667370983036406329011035938522312624095164879626009045695719081694526310388382420870338897600345987101627601174962019798870988114175691298737494182117240071309365970489541860175467228083033231512723417501094780860812726241622480426464727012634100553098635305595221675384147666923625344022593743655778202432875008645815888590158340031007066162033797653203970164793737204244402690815421462340820659453810072950330205765021562189464088295159530988300107035465283106372687971056895864223168724036506988674944801468752619399495855461090574259776824208655991735625394534130365116214835505373960032690501731502568358303814204616675336825110481676321178519837917945639473025315311942645170557424087336312124139024118004341802974954200428275678093922806875236212613441393360930066280231188066334847791620468800031832665202862607855397515851929586662148016052440747317288662625325595295775757524619991744950924651747328154747397156210735308910346664805379177725066499028587457917600065999572820154149242233658525416806065099646889419469499277698784318764827843398829495063481332282837498488571997587102875593397618576805003768175814580870768491243537232152848651739946928928024551002211056956743385231744865496513615051025331377993838918985487543832922297953845066475482072426683843969036577304913429462712609861426761104842429113357959582557162352355197828857384184276044773844521774159139295477686472070710949336516763665882478173718136432629847762938464317959569860126666768124562302691789425381305413021702941473239903188138535117998946408139063196544199812268551757744232138756116081082139030705898487416316017619199013078233143161400496940861330350230947949843305209187194694101529594478468276562114605797002132273710341835451361905452066892287936078495248253423898784062647849451337760045586900842648385599079118538805322423269764608350341159380000676222377953819600057842423706832383791822061798162755886731523864396332623333722166739569597774160892644025457016658854790674868098433636843932916520369064150554453484433172454989014606231316354141830692549648361521442666343895985834674256965874882059902883902576301650961485464345195225950782322135653866923325403091038907090261889942848884702278288342533482503359751879920477002575222109677052215438533261188375940719210791750448570792507418803927931608829785865388725624165815191761539555415787945209425803358147242610751872261499305540961545520589055667096533951600289293765369144740881465350653627680175960812649242254825251942362926365879735947650836705767153529187475276371984002998252141699674483449540926204612949333687103531940408119601746244265107985813453108525108085637431049419026359782351267216850838250138028738241227992563725010317040709667778392053040341948663839475126175697232240242323239533912777597860410075098894210697137870038047899956445000877577406432805039647166808118800625563859661618629472717521586075717580646511560211377109762578149492001545113497965750721019809561164292404797728049984997949921602967367159437229873970794445767631726474843507313091778173655269682945249174656713671067155306149721369452443408575474233456896712152956850876305721142634541837748102076729911881650844923608086322217482076514339409866657809381568862329326491110002658603381413628582781498751524933835325146228488555935222489278183709586087552842711456067840556533666244731219413158353807298170687698304128445392056383749657218580638644346199234856173928770848579207982382566216592068626734555964959574852825069126074066420849892041212105873100630393066567353210112356030221305488707932354346311364973791546188589686403995266353783081260310718768682036607241527270835854465158988899649195452451007823250418955893951637086854433540876606985571193099778627994166364878531800791106506310220239645537208015684003783632120090091543974572723758272689168172623359872915897553407287314604713878245770801725767424764362909666682449621038584008576530502384308849686218349461684661131513446577337615183318369141252990830588079149904910138736080901211848457769452008552160967587914143081023647614935128109805631254714160829816995787807851226042061368341011660104469143352085186177646079827833385607390996229292353920833659055325734773675991840878904622720176004021103683593934815202838502521035572986903414371180272548939750125673241596900178461043111438923214574350806669303647030796874794962608885368932227738914572014840702385457374793181373279704136566878347120487691560039865582325633972620442544689434774247888274621747943965319893999812673121921935704370124945538754680299524876652528955265078620891389697330439050125144500378184330851421088310441227154550741102094140848733692539705512092433039878171572352803987518396667729307232123959835177282258880541591968853434250495994929950395668072310238475251658659945901560713392653414618693602324550469524712249401579062080549078446710326990263306889057299474513829642219382736620843163789537388920691307115559117064325760286635433796676988510455028054751437924665493424622711916602097763815774314338520137764253900755260537287783899416898652383756482373875583563010781675133825807100982310524045072260677114305117351438227511283329038560776727738240698952756749641590969665820822372985271325687996062914371726365763807456992388663955356632645752229328469854339456116586352750484040156092087715223131655221458446827518519281740120650097349051122860415498828647656458582598063997515928155789085884429149502703057536225681632087257179317816475126985040026030164636611844101999975557082726860724785060950550191047237337703972549169325125154410721434632200887155734491967672829236473602941423543940971867200850691756572047258340802845903210790271788804094026366154194223320393234734556548028087128446680478912600171351753043339960473036017754005774320987840220014077352971610931504111391671619747856434248260594612838222418902761693622879062943477479865369586109956509959720722913269892634118234556171056622542590288148217766284964894115348134595169672804528128863584632872715232189629478151628447914995013532667307710738605183138431569244739028420139688184801899129762070883085776188323560248578528125718860591320978079595267425393577752526283790141976261206607156277129131761551556371339905698666964045982402481855727454212234902720589868837495910226878740108205577736040475909014883170404542071996791998504541592400189577109373158034470538062406548410633003865117305995874468061401070162207507993890871751583864658694346068531509246826598982676028399996079330132152831161044415213891592909471292400905548704585017764098176185049728641745588243218871767283312289307313903919422762039452760367451272651133444093319124585557341119338299469040554916371213475557455305409030310009277606355310121473316058636539422097653032298078078310256558214751096622076663819808274379924123361620370318610110805889851287835321151436400021331100987661837460999920935396817746465933703144319479781671867908917991792055366320675557424562597435850279725472939124244112990103802521275107914404324226416656104271044461384115684662797836566691034842385719553283782369799734939557488350220169024420873650573326943151683609967317560400579611133774068479421718657496866803560051213218756726033961254945982573983463240012565837489743854442163244770782303770631653420374759820918404001603158731905274518602959979866764402716214869445336762939671622300796106851039632968757047761107708302501907325314003498187033536520558033091601664622902989404718890200588420985528496766308471308951931097856652288022605182481538466397765195858530228478171702571013631187168989633360090685320415570827232075114000544581391830340894096146087669349327680548476540855663230860848135715160273643924588255867476170487318068752638538939029981020076470175173185147699110265988467454805443472641881196941791914146200386920601900849508174319588417075518127654926521625534516495552008246192696401152406103706488824780547865216290921811906136046632829824263713799102358993250155134251728054911367548671390866483674860529383950544819532163489053587111474428190090208341050572958447977539067047216672149110846646379755722235120813367126114356203712480939978430284214032255576716632032610306425962965651398524032783644733673941845322881883969685984310600405762190143519613427983715478731913759533722929790374291618570896843974254697005407755015632211964610388112851795578848110601953908386958791367984203984067840968306498056382723010325045779279022528638625757954967874271894673699148550216787611440855536738936808806200163171410711853664372822469063620510317368086792557786638658418284576022697123119224025579679874743698042469524760663499014025517913843061602771909445390396535829114087589141915325743742535391870678775059879347965409693446824703059988190967792402299072014257414094801684852753099730943826381976896621399191113957179500786508342844237419402259321938246419525324869153471772438677960698730170965711508136677339276772047802555706206287240419796579599806520377348509955693601715935290172551841901126706961438468356919851492254473908267843856812509692892771392558264768529545875382585674799522179487161863109355174127971000991193129410922838838842057815423196961330299011912909367148854723348152713581499320918166385548795503576754900108504848602762747225660551696690431581816243171827342801286799817487036956769751746485583610667975101112271987242615227944129523079108893999340712613668389719421793766951614112997253311052163212183000311273743351354881965902368460385430201605165814098322763153142883451161413475682106913813536272573701906206181366878142683350742830981778596550516318257781886913385957194703692687161252162292515196388625300942709277801315779091546097944583873171552422030200429620778044068896410919288099742193558494795146608041080282385736930082031846293235039776470288742739677729795780625541489406035389140123319044463478187763779581763807650388776404291163551035812838986227925577341478605057861057031757316717179578839658268497058832363472491336149711612959312627551430715187633951018815913490099175236843486159581966963232345484735766314981065414911934474443787039536945952836928571823330346226339459320275056242208316556882411893735596811129290914108739194916731619887299278070436613134244216784299200232698080984741538803269795738276954078983536836621201882650040085826281561929749235597955542984607914400646620995858488233142486492836358145826181506514852013351375530047968151330525560470190375270158830180321455701576034568940760168647340799833611387924904236169434723442491549032019651088446000196392185677808978217093616559054740070738677365556710117490106902035417144151171694488851623119214932722176607147991470285309530544119800706004841458974952591355711215794177551025124635802062291504228305607576709693991935225301704566115132372619388938748765738168937987022243463672419812101172007497847401661381330981986078432517825112882739653419833508780860014717272271663546142827307719846596718015410495280085765632588071804004476255142315968253444449647789529488292379779529725858055148567382862582795048991490978088762598613247956767970874202083160509700740220752976898845568233993201186225009942063538999755212080065236215455682783743165394679640120897736712873030069900257570901353041605358553688344364036198941170544598353926522934211982405715354648541139349988973073888652279801352532854838551962451570808058352929811955250109784103250524457138908850376394709295417200874643547551476071012909025751496450726598946268247129857822204579357130197977624183786251377423480547969966200503053891534976078485798206435350616196327042164009886177970398193887750257818652340853993335285023983943740062741777929924971258832581141497663738033915681752744644341077384357357811759614087466723984918183473152796793695739030232299637274072520857491984576378211319862637309974892964556348431646555558279495269133154108715800944768794311596076327662989918298094623042006541163455038568820697872178098003130162458767719256454541764406832961469490782754886946130460611083649625432238711161514281065756841777861076431286250646536986093434210317897630367563842933855438166635205121648716373907493260434533204087400169209981842883477384852712395174717793139257415336906103598508107711422576081117052468413350369263254609382696315472504270157917737105089487082557674084828979839816538881878947994469741599286031314255956842798096031106151409688855570335048113439534859959980649722553263534877572149779931140418133313251025527824385538432919156358519147188783981516190795915824307557464950185270888948767754394309905772201396238004506948484841344826996650113105640175490240198767695790982803779729802470546762157582026662018465369085629424300883774127186738223192990150624271245049400042579539607944279177382851461932206549014096601504924595424563957495574434798541467871362830134762975856556860710051445312870876280655939723405101228513872253011169032681058059695856155804348808583870231556802324153088881409300699979376813330482926857684807690987669704738021148305430622830448579249098883100080652842914880146864205730566550498854432007031967253978247369397062121523573191902367219081161021599553011288335596870159760540273890863600071698863641565396398248939583614537759330611678813722018561521096937333970837731552685598662619220204269431666942421409594378988012485593587108955920794228987644459496055640036046278168159482047358990605970104556391946262792814226216452181883196621538502302806927306600362507226489255201058879687505913636509475644252620738354898164600047099488278324459980829698467304276520523232003158551844924846565487948116179989105740247449975346513877822654590815271586928717914640656265876627907029712357301593435469674786330427367784494710512694151131300454680495882168265326589841629098759826435098883841483287367764421522919720273528035626702430075069110177264349240467574497573327281940066232504405034392093144220047214911663997471068498781184374694322767820977065246132508638375510794740803102669760243461993435019057026588551051818784572723852723617942419402404967674894814420137654147868915217961027612928632685582669324960411827811003905385980622598332521179511827241424928843498296708242898194565382601220118232895399038259639487720849251338554887107968565386021795789344791951096092783216451713634993805469998419524752811134712715081317905302454406863499684965741220898642410098095223187548878343348487773386233928400318710061574165113161142849586800666006877081204649367920957275313503642330903506350238192909714358762281244247080425576575850947771945249212785639443310221985916498076050139889979013797312604628680818087218066766843159259997791563436797669192872919508436174441186996623447975455625718704317548491476282715526531842286622854167386346763969881557151243651433403935278660825829795864752683861899375459364396995624159001961118632783632599252865728949479351879357602670718299512989374450235989058706785095558808310842872175004553531004837580222461756215568828826631493080429003280743046316431710439619238205401163747333423527059385953075788673656772325215787055656318850198907296279287589179969470774572824659757849843634892889711161423622945639886496850235266709189501658464515552495815687458068778307610528134307188175176896272258669078101654510764945592475859156725793012238888070428931392356857649251061613360398147947407089764210747991676178436125308768253779037831966099619731303822092320341874863362196494582541037068493416690205865314488851459963589228222896594287957244486694907729483917066787434074083501385195123503468222895374163419512434475341743836307008023684966772801940658475433461125532876972552150170776730982143351892496795370510869449379015065328922086993628689441126468137345019947312779646762658650443627466598782659886326824693242253859175138965904835269223543750509197099404488541840531980725624980004736521473045813060176061655217360183704838236033635624182375592470989431828172571285047623425431280289802050756425553688114091540144732865457380030859842325028820746057235813630062317676941475248403245628416411944217937204162781986115583087965813811320639738162945648920579670408647582938805568218164123673819655864177194002223543713945610611078041097062395695487049004382954075826174201098825145068719009109259893215300692456469502533999929945615976086809822903206233120981450621219911419734379209908627118206076181352753528713916674150124469895009521393265843240521646891983470884595261217444162796450366993780552544397996640632088696021748087346178251235280570144497660424205010392417956554350051545962802324846602412631961121997498261409217709275417518774496412935560397906659868528641156665918004598402120526103927566786185760399333586639951508206920551893666433817503069212143284686736241058204473269812007479708648301068851015174733461429730504690425026720207427763549962854796496326788135056889709337484432220129354706039103564289599929835539040920675998947031234221956144567180023684924784665296553079463907229819025525179717422085489389833836301033138613816475385537765338730430109735497256085865850695958500583322369372426046077770855008294981406337133243247572309520775242988439297495176779812861978378125913761453129482909164056576207397860701662326286219249524246427654241228948541684466906427628299639716006203031217986911965375978385294951345969962481479013479170141320819811214287241115579525814010460059664473383569126550151852006821856588507594682249434160668114473513377358936323767232485257413043063467175273091994141268656869884393326650637232910966371327794834448206852030046808028508482858020567427730202008747012508354969521614967273933858068110960519151748635256047024711178186962540779409579844199754020980135940396495679269024994934649430434889706582041152961775629283893300111931223645068245286512998608379136121276034884337291819223613428915039056010453047104406925169324208211789773207006725583001275018105979650236361925703756408541780690121397936299441269007958833892808914552226721900944977908012347626592807698093010188557950463175546057110788219484062837766524668186551790283274951878102757512438149117850269507986296129910418558695983856770811085894474695623208734699042910344619213039790800236561321584974032571595155032224420262470698518964892207115052196913672994391737394959799324416386881363544705702461775261917997867907980945562784494480502094197087509793294768505854506766661066705215434824042685943606637776164492311104130134024471535142982908499455230670743819579745244420510810202246234109436749173965895774490388467166155383590146485779599541431665157747305828687282718907676170671323773356979866184727180051979461945403540857505223559359510047966214751763548811294760158676150415412020932663239324309288855977998112686599703276987855101891432862631714134380521751298714981182762672603128620972798264649658749043815095447399113387851964091094222509487286335071427909983396405634168586108337356218098009208768131079596464006866624387431640269398305672966432824393837504537351305509655591862432220292159741241020049897944516560114633631748607966508131467551226738322757839299070399912115614151399353193793028482337155810519525318238968647302412205736833748542967621867178061872566111700940736960775180636093610599551820779152977240453725526413650761229268336431356347758982706957465589652313818792580264753367118771574898849575469365140365656311142541996039115872277249738774747428847643529810171675378028688916400175934852472355145656119268689857961578609002481772404182907228348909271412225764859409725747021763971700921875886762258588682965628412375004946790016811489130793960882058200172905367162293965075471150009638129636367884758778346198907257372032043384808822086152529159776228596346305131531487083301795488282631650740225601873402316798351515731221705670507156214813232744339848788476821002433316301006541808331631562569255782709440389931244146870394938600252317667385324367710542759212584813254940397148374704467294143743072365197668991389668863633506738706898052579903875661359583703689665295370656993766482961447822679975086757062651501844382622029066852392486778877160853780825121509695996795179212862512851385455894021478349025050933910350900672755109000502729459964439122705122830584888649221433417599859189219365055493720346218210410152062309905442020759489500884559014719015266300277593541635859486085887625488790708046710559309492277262113114899997993437325728941577456806220548921603700274439958708978656150037943851846952660134273276270374209208007681838847296603646985153018777484263602109573127300734694814920756180623251973342998346505024486911270115671217209621217888367297590012789199097571504652126583899697150522269370565033695931167201105097127071306172652134892750497603199777753272415345905837433170001148056573620812674481611936495281374354457357045788594875830573757412747528494626828789962502890117551405596858489038243501296891743822568875202504037181022134817803478614025717815156997445722621379119159534828698251791705079281672663263487095302730680313877242978115690110076179340465142192076616114485029419962360937004698489497688238612643664165654110304635376038756549043800246614014316533681080752024299320604376090501379146308405095523946420252573585985666958454846773074479653313723449376778510740695078020213143087713045006383454738317501370636228257827975922104270239951988657468698076222883129121464695000592700134798795114522917214437701535190159030973370409059131592224879813580955814564860906857442391471279053267491645276266284467621018946335261511951938693962551912235685801628676277912610058931878322686215383464676612437298354536950959248372632680057755078161555982958764512924178169385211320290276674412509873944068018667717739647801813681073333261127558256709760108845773173827223137845750221072191219759791419070608275127162207313848430082289904471819129073412398265805871888306632556196740253396539023250028126526054893576139688507963945196566471408289934886308071217828921979715478028099916837485845410990594446660638439385713715875557874029212791154076094446829289842441361974635538066638263177020945414639210864346746070191020350738312607918525560511620451565451277713696820358595549207777664167381602299396914411923639187271759990275578425916713798665995893308619157686554322389558964797289670630382775303601908835118448159041937710259624460422910934163566113503422043177206642074048987204230293103173029114762129757661873171867595764534633807972323237652646866712994101201125202920952875437684763291986231049863606548063981152378525580080810201691797425404306883299754760166934132146038540982155099002383471058968553460038938594071930143053749063919147840043614265304265020791688284151554470027800679606465490607408571303799366020538495127883119196913259808824231603539451654736590523852735626116407755231117868172356044106126983372794654764871001630231638121661862144209094914536173488367509242387496086617109440675522917533859810866396509407499885722638954534059486425690467708151312515262832937503494133281711785063314344106563963711021965559770420773320034207470761105008700839248861231535721242455075550642209536051358698735256388761401166640343236182660422257179858570633044545808416011146061971177753252996668488677597892861721380763561209471089061294990617066445846146115482975088048252161863122600099001018268210311666549898414646162242786750583401026546574340539370579729103602872662040610799511464127168222345859796282614771901154419890141419740361638727705660814647872900419179049893110156140846761617216095811266832355386079609020990421776547149232351149312029436791210928372926103312069565816880518964902173731909343318511450596915612989188874469978766200802373078236851281354976161484426297777640739068908613134321203514981756359677784462274637258940948351263967936001149264767766627114656518214134071299367192675660483202103179841842669370067592820559284730955948697087536037566624070378012413514960783947413400734923434306321262334156733075208957142307568856743755214022748701175828632771594875433863171571911171102366528943696766890765946009922177939072298093248509769758297678115320388067636743287250741555744454374142983108457518541990913570311843697265837764560871787613987931179399087190409549740949947331025081026183497104729354895024593557556203419542782179501242651599448483847976622443237750054595467865778926218848367282774658051736797778971013720659224841019814479169571985990966466908182649030129546110200992194995956164217545844196943916985651979452101212804724869907950797369305642852768107476252373097425616383839743778974425979309572736297180355502014039879117813665085719470793021908944412503969996820169768729528738187315566617557855139797321738798256196578024881419578374189314003209048813013110416853843769888713082623684432907897435879317870006892672025886047704451756949309278919453904669540245331463008673298620930784689347432533755654274970740500647072636219562331373501765344031536460362402291865444959954977398866615011161665188814090212455028227071344791606146507868329219274693473177024955378194631596201676146865913145097273043887380211535326277488104309548515862494592201701523032612771378708613098733592969113190229060519451245251838686272793401930037256918418446874098462193560421539598209422439364911522450518326100983851870476790305820153799233319163341746458299948440335544938512594096948827479758037352772540986165373078517292351198458762231087853329953320118953940392842313849574896443193226630137141942146207457770740909954800676158635618067596257394938168520328772012302956795551325863815438697992700382395939727360915387476375180594506115032056778209325820784207326308149028681378637025306309264883599819842254378348737739543901355366214120092831785082956701783675234546396949014971367893363192362278519423056798639501554940007371581759405481653720644758556035339373088457961484160005037553986817765492752241812845588105054133154885774257965637262812928545616184177282018405457003351839484396095220855356923609916897101469744498119383425003807880751002737033863329596217504003820910503373957770010161369311646032130353585467892938565716078022630523108896316263249512385014994697511356259421151226440585625497751306349038646013530702228917256383542231111250396193882546450977534355197635385012382270749314800197629550896871888659586505405422561155027822826148488221958839482159022415105435392527705862324577298248828842291642837523143204980227676517301063103614486060869060085196046514609565650112592848033993638049763209683881452632289984449083210529814294946018714370459890852312182781700128788500388461452179865124106219913930226649783270842212030765883339141509668713253470899149720530776544278787068016215169106931584142229904889159129216626088779285814265775316220434057936632390608589616751824637286059449737330892375306524508628368257169805158962721941931479640312476544926999515839277796569169228140134966757975392696547618030436500434235481188532831602076780713612267710866426849561570601771898909679538005301932728378019921530886041160389518053672039478838421165041094578044490597574058133154679152631025285821288633584856579162585458684560496215239383277411955748907167010580739211012107338531835691912771951163104713131654711051938335825604291288932744020686000671369433551519755652554039275956583262352826913497647991144791629337082344881622150239516536749206098549224306776075152309708328939408537879452935938150498790604153282617209237325043687225557187785880898542558121631185373813853116914514666674049870493210802546599473556069412016256627819506978806977356735617898770056691576942625435893583928908067365099794964765964249195597950511004092812760992435404111738680135178205629277751368714392330622123553151033942334579731943687205065786960966977131093195601689164159121135663734921678520471807106759329832134338753151781129122402268860835804703976848985628911037912502903949956217340037737615931358499676698209818058885279229517795094180139734909679771091936083071544795423761120633255121513711448940664067515353207648523402322059699670278909916814736911605386152840551753367459450934271154974327290443988377193445388713778197880332547576404461582414812874843703625327260597542746181847076074681580675526745067621739913331283980331709523397502760513437594600720015587348555881242650326044582425264735541819523277652942716766379793118363806837448359519830983731980111888214505246236334740741208173407372504022861906485294862606955314401726881925246618086691916330838566696197450385457309091833622561300560794645320046234048961023739154951474921544469734022540060233478072953469807891821863820293630797143558567323975399287155607896758347860205821313214097536003065719744270915205285574706910586135334775599768076862904154134055268486256380657543755953835201039865471830305990299763843201685013724731750384048529123526267975109138066565607695365926452696415305389103483077410444316971018032574014242959522389557134447001278598197401209681846978547003343447718652142133890894142037599053617385265673496268569038796936036992532689975747638864386905306387644461719603762910301737862305306795658511486082002801053199313459275533280308046189841368471757376752609778624733482110985663347898690926623843758055166832361600094266351883691160748571715612553783085064697113463763117259434346107927287437450401242595217118541773570308510800653573469129986709639156884636761851760328434752258348441847152213874003333081838247057598839860886808580703821349030974007332670639299484929664642467130035410805150293666767695383227907811485511407966088520177486612552897753979443200048229061846725257450070249609657899445630941249375774897582807381188106914475247442739406173128160543394411280218096196343977098369063634139721790655462889848406164561034268148222771579174642741307108108892539697362212620998926066040737375455510021515451342599406237905400046061910495224713050742280109718688480858136011877606890729861584904555361550070837283576040291626888549549128258281360507886644111032701862331497534153115013708599320351801417917660520798784412869499007726494834836455584633024215081492333765514680345295837217146937564627161565663848377149886966434993663782688353352435724695041086855842795734970457855687516679535572656846592503625725087243494754132171881270707058174233065218974994773010710006826333105874757689933552774056552006576562327057847873251382759036480495371968213184431083044343410040787621929698060175093947134852261291011718942794023648222824614125668684378279018135509300232288300921172158793034455608287738992935511653268224282244101740944615861482159055781562557229985517345826536434557058200497112769943140387569829533794867254267587082061336312802012594361887282283096433408843779343859360946740059963529622950034192587280870752708229610931994572808957776396394906064941067139949451215400344306598124136272448220429238362397813092319076733747311155478912042291412078915426967896608632929277099804918568974897769916459150847983044680434971044769775557480574077665861082241111733213542307232207879614262287862387252249893976736913561409341040897230104325250391367505669431223184843763909647708695976884303857246380798857219090349242418300355619116931364476186813905407578244037178337190601708906423893692933244818624774026911036882833338917366950468049961016201330316187515126139073122729880921684352672003619188842466199235428087419215686529515357115562796145802902888174268291032638083791892200567767591519649197677145348446441923524062200066052825554370700566223382183354886138783654174470088789120638889492364983084677040353697209919755709984273451231007002654750155072020905331085209705895074915039705579774225506217571385212268817907852058517882459307356784203271156464913110726788315912142278618611950490943306125096271831502602647444077670431178118264589581239124566748851132723586561113329530288852031928385539559087122736282924967070865807968381281395047755660356224340118851155610691918130191114226018360753566615585794669415086929444115997616619413323156717234258090382303549963252870574227972654335870661336832315276679452370938903948396877827528715667391712560531376884592833725877532262960680896361527455560829886407949141496003988325274240124505048729011821046285896287071253616719931509966676878810555090887417615823183235530136565760050700934352313750929852427202140855973197386569677446830775238771613107213862451772445556339394996028291799663011331549035053118491917036006678830427870368063305132804085505655985647889509791783109676779836566576235463658911080108834982246861183049526290127453190845235500274782745443028509579667963637036735160315577653138337763574253994237174223445084508961177161823268679864455954198461693482232399313536837476566177185130317897850141697085327259693285684271669979921645408467357402049334073178927177278382570441991115944729725457517134354883698594377351468355073689639017185208844950544846796540812735713108234187635410807951308763473027359502606747808090613997487856515969265023584916148379935253937454639900898236669705949512200477610916127133110690717213706742634093966709061592477368181285036138259668124423827422972636234284040769005043558313382631667712312700057698910142790163808417359039257831959883943982078153254253143570037279028117069287045546449019281759244897499805675286473846817823329625097088104681337657581423073395433515425882791018580659982057795359286103308439096752377530128175988519292127304123807329402405896239525709971157112929435227039510055568696192468227054130050981030288915637226325194885817094887486746977948870522753311732005829745679583923753192248603153234237036676138044300239083037868816141351358522375433736179081748820703833651046260130502419960790902459129064420437008784566777539021658115092198258572521647527635289619595269063418837437332702088817180442900526449409169459693904450421303157527617608474797985805515270854267923146879827005698069511209623074635013784528465883658276626667855291829227331998218541109672581794932033468196461165083820829653444453954226223028331952200547146768708978011121369407568650682232352341082948625328315061157922707816414501759285683282218493125235336635400059234980996162355909378058119546064135984869871208427637074607209999377512094213463728044336505163050368361440825952326726581191692105807847864760958660383983613583194059025110383100935768878298407410059353098571604549456259538316465510177010329181631709929475373426795650514566687846107693193931148980205520309012729575399829134023969405522873640888362031552411784033110584838393213573583232834401298825491919701411243147826389366921115886806940334477676177005766860737837125498260526614894675109281926757598742625756210621319000435687946772449231202538617025465394826126524999758748913012844914069008641177627594599738515464188793292134561818827644099608942769922500102554986901247521962318220277687719999750350016549679978974522008832167563614934211196091218455879258055251081633526035327224175608993266914004518544902912358711321811098834912437398734858132208225015628285926325197972234352022118778284042773043151131469858436668857678333232070261970306364676687355899051472422899307045815172040874302688775042429398243498587037633776771556068128104555024171614600741411894371417474278422057819170102016268800475009996709826712415869982799502112422204432287727953791951172298743242394185790906544213464057191030738208126202557513348176713313889372385793141801849021893630393912166475746382499586372361588603756772777700241208881955504843925885685020118725056225386984079372210322371355603934818268282549418667008383646334984265139888443023567148468348457475169682800144352912577804744769016358036156643224367198771763324134559718076728464807553551902436918573476498925031977059605055555137486687681680059897390259810657275592820451137003019502297427824721624370977793408051640012509836330112851365291044016541449945650906360991835746430925954711099429467166712884241372733531705745296223363180398082607482236115210785143466792389964029052287662426368611865515698232472536414939753462724471857849708982277146696857985718091787222651526634184928814209415474366380099159289783397755133662190156084724655412221474895790329912504938297833013936644792931039603029472202596544041361654755319769456489834710341222422789365992649761599344757453870920308880340667449775631398145349068753719975628119094566115369740347182320045781388197489071229660490912832301941538010364385961389462647313272207145626380386395111758257758983379198527753007422656180897177797475659110588882601581444813589636697824057981964707280651846230987111562459257494357074543193608437687152417304961013001904584395664502660097476190047478555335589516013539100516335699934361759107785504219167408245020312645919164898060767977688634899181407218829212993991677591585274689967339676277479203379119883184969465476516399208286671246377431360181202040965242516616694744126476816989571626277917405227575984094094712720260318297805940034072619117069132458964698393860890030083267434518545432113866360012223607442682445377468307792767640499858369967814193968277540291753821030857311003291441618644536782564664903363068622004131740641880021553925286824563697772800646138260014549900851105032574365192283506207209869051350307083253884588998986746056860432735148988107091323349400127528847859115782585117609100293730747033910925529971981800904651453304259836003211065194392459718673709932916930172382095800629365120216606881687972558312030895992174480299892428485609731219723525194200624819952522332219562459957722318590411367046042710773271374898749264836627299378777005211872721244215563736243129285202393197901365257791789568946815768887644079818348271543709027301667840764927570568700940094391544628925082282692062354957560149891968021044183872282557851974081325832158627378911463387688107569933077152514018163551741467017862517586781336964063142938913666455654966611485195968492109328473545621511994961617634888872280155980312734182303590974651852213275684466625099152538466250866432731012845354625439443105811051710058873365292947798725067104584780093309953015077706063090607296968637748987236785986260451627242578591276614195104494104866531669341066287511231889734387013229653746582383358078174347497953922575916010713639019968100378308870042786641039926199658147742130648814859164183272096847813203410733284280087875303768281941845737327593530720590728478499664149434650768455160501804603950333842606681942997994507643267097086416744565468100236606177008215663268850825494703093975602269682593260790705652248395095864562034502876157343123540306862869022199328850272147757704194414656145048375421574037172273579708489464715460361668870782759829695061774568905112313923669975926994581460110887763652423721863124366988729846461268940091428046205271510414707825375201611957131126241434553035427416075732526473883821121242735961803558511114599638777117481503900162215539943539424100958556869599034302906165971394900429002538908660439271511380684896313789909120373017369905755457699791500615623604621268899978999488820591267789067935265757879781284228851349028779156733393758095173436436141572193952542993285315488354253510520439640940453613978788288722115238125510883186916641067488693870525780045680347161538064310389057028752724507212452684950135036565794948014041513155604007387703626829572435181796337499958594471908315667999213080318851242769312458272595650426752098584149133098757881476446802356005874363760207696939257952292063444261665990743860605692190075096956214746889949113735633498410334976858453703024945320747329425577342141214255550374734331005566684665712189568926497572325687787369981875265253815528954301126392142948815143790215351458613099321887185371962564147301108688013375359224811225305505491351115112831299239757658630184466190548034569835375936868923796503184588048561842540950293194851874758947443710092862265284304198163123755744311863528551192979104834303055939713962720600701252700802559839983522332667260705781995815086493070662221370063339260935020486870082116108967471444691762075352287402170706277483818863998684429793397017272833106013721096042746017542587381808029938009693019195218929534741134561222598704832011698276817536103106078167328441480689884869069508488927385725274447944164871334767015462480073489884629049062900416799324205168857748382714309289747861467314782732245063452671522077944623654602781129748251715532027469358275775771320147680203232825784732022780501367518031481476916941233813011242336326797943045026860134327345648750544356207013918791412648448417576955528753461827204068371918387638600360164263308721407817261032095986461200191234195390235126945730811474400569995822673449588089616885328762554052826778476790102540517652843345373148086134505571421334934459564367499987430415635416926216542873951717235143303967644870117374518228276247627938821546102264360809898860809441425678515964395939097203715656046627890746003309402534624809202434629683939115234638096639291538628957417151754062136676108389617826057361154297070672518495361066721440323612232347901528347055609670516644063714335654501021352069715680816598772771007208371560344004078511497779633595714182503880761767734706450623035641966231313188375869147389441444428712105793636950189502243033775285196171559224476032596503074436852089693083374459572131036926160721860990363616636514787031250041750723828322869295196975771486995695465022030937781528848853085125890227778873127973774574096309739220270825687216110021188404785904938113400506011221241225632776057045344819429911737349796030599783068557310689866509821882614924269248977846966698975287243256635836994958226717329865597694369596446559296842309255609300454061993033272416457061925288169409503273890506160435475163185347953692841290760805930351019538169163285169059192464902031163917573041530304054218270293079591339333617248998293515003195804869735822985156683930306147986951990176625024110690888881421080654015960862625599103044278002531704952019701402022938372835270355081455523592312088652412154259085394948283552882645327107573003826190358246319057581472149384751007116878029141747203065721400881883547992149775812540519659246240284965808774792133154894012829492606810890885635081757849417270015294112234832324696549784911866868398737672121432675950989159069843424722263917873518773420869021772980357624601723253789609567825674641985612522181575450855854415364610093764577184595701538183294518151886576540503512245294800211881021698082529829643651567278291180025915966455520023848051802948763691540451099488039264636613190635120465765757990567847466807167557836113746007633962743476890524057885350780929191267322543932158311547180226825747223756741709983667573306178304827025708483125947200523241642804259892578992118643250620678429247049593275133292093409697757604089553889211120068089365148467895722500422537641414482276762237596167952012618687913401662777891186477912322872954304477581968702126181442857197841358066140060650637488686989412134343795215297261695960607429439358844085920491112231812456230253878245644375557494702674577351274588961064123878850163719380248389909944693687297317535302704851024403623030988466176746547599761492973888242304637087793029325039495907155378145514248813095314932188076703759575298646728627324815838481710294947413976833379320847026202746223259461231924028643252501161164813689688826684602811780214937645519988059216269276187685500726838672569372503924795871045412223687370113600842631654826877361878391225843522595144247558752764125106822350047899950702227174878977283450250394961184885530669801108465257042935881002633996360552664518783235670215758383347502514706909878165104890272933457931420104387230974169112098150688485089951173986755563905571650299605604137100015209487960321436884742464623912448443544046324989651443210370857668784731274423066153560994356182891537223663697746577766068638306537838655724056689889190320449872354039779325020569715937867605687710333300783263905300875609059540137986043134183715092788544274252627514759106740660646897960543576119229249689380635764547000826774381329666516607406580076838661736709581712586099984072358197033216673471916739925075592599401219924341022092956544514278668314844666538239825426491349499258228725653782607126529453552236454357116603428837681485016838799674015642338864214184312735363067353915022508321483523867097399049388363727024270187020508128715221007633993297049532765765740594595820853968939129074791289297809062991279405314553643350591635679556761517218437523135375207529664489628733041064504011863280672902823920744757037366838512465604196793846470801871632905754832232853043358574243891892369901019608110337164287430687875645447055775618412282449227238033868814645773751840117193933313615900792041424173736636433171158374617177014174123381540910860368048390733772206801891852026914717770691642217117468816211989959428377298398371775264164771632612754699593536537997962716831140666494024237748826928900837731696515530540882672723986824125458270573113511219215536093812740940232087514905978359835198556755539069760855163158019415042316348339855388193846699612402290208015524242046342514190905187844796492309701017438798423619751594663906512648989174819433396880470699151993717510498714646868961613879110700009298619509447949423981788292027536177430095441977510930519524440327266454517452686693748056838523145215266091080021411916313000286722376712378540294744803602132666201772477920509532963461065414957832098061518203351819243089366187202569032776151750918525715991955928432792455370032506458482348336195760338592494445922035051541999497998213681610119424650933602929459961283862797377757935000466994764028104212086400001101489945593493909003609051807949367544788217449840781661265256234284421667375953869477875167644121218982190837520472776151340118654584369934872364896006955478754362309780521531718540132426636509233795769404330945506209993946558612900155744994386651841761434185378126819500880614689732650921554098097458703761847761633668058937093961177323186571239182985972653578063867702726012567823584509689155583503104084178360836862530585546079171241002728763860125392720406408528824349619685136875009256634787198820199932147117452825026972329165888120841909560429665706546189771186063394416981398962358872705857998201013419975397707364835105577048314042054926054989016607961247190569565851098561161600194960614866118995801155195081781155390641439590031092556297475472463663076045310949245821069807885199648282424188960312521872836339427897369743967578525825542749826119180801354204274107095379680724158081964765629885458216339667138815818456993811606108099817238232589551972838591335435181905135570045284205729744676906603024874926902248500174416434826333299209767418669771015653464111486543162679505058903943480450212891640217969901464763573785060383413670312569038281398906114881740470354635535684445213062538633869330632754369477098671116923641730995697314899234947931188711025596139533924076039145027812653907692894322416101728765967548423833747696906732984174397814640829229071922261684767441495383923888791924919472128673766772903117804046131220443567574698759359263023597706026851927279618670583401927325253658265397780611159963193306906638709298712254467664591551103776058731546500569070228751197278958285592874134479521951984898164578880042771970129452934137876529049677800616392555535745441727802592318315544000610994197751748611443706162879827530286897972390954157733133988266449517508890829418874720367034297687607846527685631256937583542207195273605926402912209002575778120813723085180761778783481620498393429704298600490408398643794186529823878610795278892853959227736019481943419366962005830188854051364751891772317509407980256600733874804409431544089472843821497901053833885003359906815110296755762665107062645805677051685380658077040384128316710441773012883617138235077677372150907416043066665312302245725142579492733063247144184057290809863496251644745160828841212747609861935142815422401328372835039740154800954414660128766308560725292549595077959981181266617563232148585574080603595816120216349034336319866114635481479844666360735382802021712697202927544646777154844995846569450484633392914712113580188352962881743531920103947953101882511879958803847543528835743865289272860359697505145490441886858269666680627633733047329956408383782678020367078146279411220731035940012576776840402316788903784945807565871581947690422381261119941050367923321691834970265877176900021316178742482216846749041413200350464414588317581570826161079097901684724350400987547456866654478692432174253405503081238732128279731034503944087742761566771316242277371210527930793063240102818501232662360995407052248904348298242205826566758073533574700220865928829242364719144098194947755184083330080336715196506829996801105628777879270815023963129164873764636037424697225325660540081109453641763736423124858451470688182950732234010078780653514995628906778173890663864671667826441529754345021829558551333929885524425666827463889237291887614642837686271366340910705748270852083266464895956627980680170479263016372522952318440155618719071406568356716503575303459972443616466908500065088999099292733985848737430843084184022894548612339458469157655485969344162811290182827318982969193628943275189899329027896124251583007438575096691490477552277097095828558244265429716882933028891066916838106367582041181738851770022684046464855787855413558930020333851151024134701569340434861624920477649105142439451476517674767050690220156866557489794384110094775444187214398166145386637423112216973072558891649179577175146708654846498140826345322697642093451549325803533228091613525100714940710510956260047522363391981653593546041766717448860908720144476398123033833150393865545575054941597181917765866266147779557279197494442900833425063872929083847334202702756970908367662911161056696098650874960988802629986405393550710235873723737031192638298625657380041435284097231220432059615075029330530602623046356759328096359294704825307565613761546878116809216192525864298851288026611288163704415411144285491130707734262856834657519839250719243194977056472971682298477031984186209656868816863173869664250753761375071868846535651523269223153745118298631292822389877802346840367584215208597444429006482925198320951099796487864980858875768546214082679850970568988590802872772121722060901974630800188517273716786754210580931224612675539284405944454571087270049943358529545043029358959447492868775171199447832523391367351040139448946103205149446017277114290678450706577566496678535892562219669890160167047656007035448477291847037770760889709823110542675413495599474342898388192022747813761910065348097785146467099131250073776521756634889766077176131110538437285793969313228090888679820328361991467631016360103574891550248952051514671179118285809760081058785964917376176647350061763342194732180579428858133253106640745384855965846313999907838597606642484345528962308438572354031823433880174530047359747671747818910795179807634513310008120653310824718705512512818555440638540298401476005746326883281010963437248417677719697954014115403740919493472688233934140388647729222832391995086499383587092628130019658700332827747167930246138530418574762793834153967039147938902522645564963826222094950804770631908176986223905036973055066901336162811258236678883536735632059351395827060665531952087298898077826892061634227263473485627396156845360702180131067948780012770225361564127665422567363694151344380974624276488588073412193061617718797442345245099606866355466899999391870091785944445776529473034606393546346071602283816855061405594508916492795130635854981740590713396113311798779424457475263704780208840717452724745858562275266460042500698757248056901002171958715487245449309031115091346945080350128410508869346916643485111179841361294770924441879881028535225042200562160656429873947946867218711592867452971902542861451213073696599176766379823467038605134923955713374366479396153628349243796666349918894824520635703699477960107058496288156426701296704594855997681039733438236639129923143764047323819759704145066794507456417544184388091833244759663572395081285221479854431742000356445127597038366649766757743994616635669774804438593958357319045248810412133337121578240791945248555791008417014621272746518781992162505985754147230577898766794964439433833837510829905240589769989962482891007036802619123481499684969154222046670235868715512578485996614315038343503959732343139001273379198537879281770999993782561491662247169409850367474106193091912748079239049182740507169423781603478191094290491160568761308129203878633346929416443229770611500835362473065920346075136136088506589340011719197750533916174820045240359788590737991478326907423278655364045703511290751452336564565031357651174533240626677359174365590378759878922847379711488982583229825930086314535374249226638766163008217532592856508923753478722285987754232559707934822289259131279254308477364138177115879446237989305757807242122926596173052950551811679486014231442535908417256698728062643401948044922564735850146190934592480674419618263043417475970515379455797477927461608498335992086243621990581254623118815566652684366089847159599741763922427989561808750564148410214223492645460735156687504592297544019003821914237709788229746877014962384457054636173068709111382160317768649177351071883920914598042902102662723422647079836006014245740688070502675970776527928351177886567790604980352895731941292613202106726141026160315725587180187982847035546714618849527815272273873049415232682750141528432082316318141395680446480115401990347150825882027835518948519067012853443495993509026884758600484049793725169583945187338208967007214439469492877062513505973192914030065030809907137127004803459027598771610767907249299808246876965618751441740257685773052231319757250413124782504907102837010598436820129829734185995720457731197561141600333461851518324373304118292456579925860386756263694589280517183155145082662587270539766922794886382102418932401948714807625054330020319474056577080761977549269318950155662034236710089377495430704828291689607866595204759002618456225443478474468308622815712051864201579428436049821029941072215218580298503538089734156244534008715288155297417573043439802002004714072231943927068292578199528924911647763245771870198854316824194643434899467114759248010668965830669602049675732976267003605946476574278848469210321338014323980230181777739453322720199387410818447044974364518193484257747671731653792558475371289899236690844882556008475419818759652584382156960158373831835953324054945846985150860292985543496903337272542288156856254578872286788592617066062197518497139624579951721073793326943812996980586064811835175963620622546699149413206098708285791180178393163706072812639346802221387744631170288471816206252167905974842742443189314971321899490544653643855365555217659515925143157636694834330107622633739026686277817617049227913012614875240397233351540275540506005446634874440972031646135639257544581063413131035372717270906912548526759297183824656759812955244350935751256523942867519644408133608198512743972335362283906789442041648479759145954554217940140348724631185571534420945535766842513734024767206550742893214188707103817368667774639641089049248175156410526037217259405992550846322670280256020017346541113218077309767131785263854098295994607060201080971295700890685251191974948664063077566867355653343713688557345080778990760278777785010789076853563548679975210151037347032737654049821488572119396251962069677445504851310408296273602513166728196995262162174713163559028356430942756807381908429572710442598144498655748144111067348671476699164029926953005514498482357603958679305545123758277657151513002535840884076238125226276290610690532311828434995067910644542643630482997560003961262234520821541061437668370477845417785332485802067185695539071843959589028488986908098510802979419491062161400345635056664162610959736994127812882753767856928474147641126038651924978400580645450277083147929504169363238950755890143338591970827867322992621152891756783440775560185599626770853746258279230457892335614083997379945711618089032636649106280155978354580353192703633028612820402351602363298375577489159252712050259621015395958825250655955784896316935392808350318371963537526406808568249251408765499034146687771295333992441756991331501725132508008878102353235073236343495719519650658939414967837404358808487470926455726333283582886712500244391835459129797943541898182922209869387735033566895715655726374557900550384836601644597482764938647634159873341222775581590938990852097502398763731674365832976810001858916434324525670977788693457138263521691161934573502854933726818948623887895145452258765912968828599150402159923116329495021885165497739921709359635920859789687526728249859458349985157940407548707385288174547362615743250054960296180602590728351273990803209993224440571833672075246927294169896352075679032828817279163333534179008577769941577075498835772607140568139440008822736265646560405163699791980423581882132993550974281576593575909068957226771458781585004420723003914632327652046487283728079264092856651106783158332826791334605507111036584510863248045313534396665740827910153310853571666019875218664971932710594760546985681126133246699866355065756467891933176851146529361034592036514780071000474835864135027402318228887701330686779038145319975862068572199151912554053982154061275981987164396052231247286571725622513789052391478054342381051156812777892442092510171039422528293086777175698837474614632572513459019410420991466694114136986487536216224112913855829541868541600978748948417625199138962774539064950225833090973873316553340933026117286453338467177857243709101619333106534520024817757041000494217724053497838773671531743253311816386779809135872434205302849864558082595825081916109925565036110169388561880113139597135454979351284273320088933138696128059034350268453209691300224243483409277307464872307143876642659495309503468457538471688472139222711868310784935473605661824392952828554886385845851423261304599830166342001912989734015766177896253144395085065235859034597902269083553193816131660276287105318996222762313609091788921827848188590666291614729443162624812459506233809126154345950861645575887247165501521527367913696836439590802968780038103922120312676768751569561739422928533513965799080869649222511981504033081027130292504758027474418683089851706191628252465846947850104753530029799430923251567222066435338779243785009688895125796159913415075001418392601643054228691361152242588331874288889304754568185597104291147988453010826828716398648429624394934604223059571353252080490471626919164554343880349764047742490372963738329441766102530455650066544452668728427141405731033729729715824412632934467816412865411861652165035483216876114294606064536233948693823362587898352052681278171135319952278384018009713447576728547174014909205946932899355126892668174006721200022202365645759782473569811303246344347388577289190710610662802357471882505580804223802730371230565541287097251318079319252774655355123164956361186887921426331196293999855636176977826840194500833536324477708301604152772252052277767707796814133146228248014740260895640691658392274323119505612440287201137508446047472238766869027490495440497745302655486201220645927173347474534085552532559955059598297105377469509447028283408658220660977329337341697790873724078273444298478574037277305200510862919807440334503395549358611866621096072947458857825922905000714881469759361842313412368239605045010775520594616015582643053401668754902637195189374852184320427436221464676595278906861083434578106034202627016108314501600383796547952904801198560521251118178542521881863204210354422684989575805729916286391794460990612920014790026309048539278380864769847837833820146705659719337976174939212927034216246767890187038005459665050696797194768426885711924313338746581113204786537188152620760686305037034050080870626512970267734636379276988692299859097709112764751828939086217963006226997575481458644373630332092536981277472467543209084590762287893681217094325126931933464086121071230807149627001033380146483366344974501797790081745663320889348677196229520428631843818382053016403761970329442002689239088933520174787994001345702437790145659783214329318171705004873728246650843580247785519557303997198977200772542294304893282973761195575713905229409245647126671336201249269443017971054463313954094753382646488236289948926574020116237138834884556941721907822987521168482334025554472496129005930717638489981542908478208043150522022569962996747956920437947564121465559363736574430548693117682249175118531083809595767423831326369627649607654215828393629487011820788755695113934006056467250592752862556351346807911877620895972630268620531516605341383354345820344412785161409537839356643582874005721099239593754719293671830918596589793957626692751620178915665918483958813463525955534052976140206135367979735929790898486333611713265132732429782917312240629151310955070203374180354487229365794674383999855530651224026353458745872184586095522650567291948968313728173646079565335971493975402339798963619436897617181090931402001218273651160132111471952155146856605156598876277215025955603777492792329126222921963859697480104826906025790160076567135773620973630907395132346701697015044991310726801425533666933561387591366859842752878673643664770930735966101363838606301417521133843093742274940272095208921419251230991155719764506295907852966834822129445159189224894428570985397555182940409642896913335084682408554546955924452818586455034542954124394699590232888790181510830881066268424603458695902049890399226461559378190734535326730021165175529725832915911345023544723310698493578389659764763100332446526806575127370334305384845549115905433202230846066183317038800694785107796195628332276687780359396538283001841393429085440842660315469846729668092859401913581207275568854656003447725666693686442529376914028899031967200555151515851493396650527564785143302624082359149629203536400173585659735343252545104176870497900151619950923030762215481236705607868361214595074427504340776868094684436930670957695124386522145266820015321772448780714173960968007967152288316647712625126849190391516368566427041719861689169985393090415210652779546449514487556192266002842094690521771814618914055149278169486923388958983495086532217286620752728714388711926197092388235795014748174939099187550712711000139630159665822189205115632634179069771826292915339870318340157551187676272908677300014788484828670042648850867306972002390643593190655836803607861721815090360706618581801772478170262841208882598399303812352300338846069928890453056191037697924001721022356449861798304766400014761724033675425722384881872176811354185203208857902579137175203744193684148160997802141812129889987280113810654839767123986335641585265783347736621929652879780800227424949864394441937809507914192946289259268242486456604113147246079039633880324201809360962277575465621261979074067523983821915473097231230204300131300658928976156814387153964283601734290897101263476476503043491385367051846478560393391664084701425400344336310580129636986868600874324089638509329862055704787933822505781846331737574517194503081637228034304399154778115158208786586752858283275647870162796575385251638672925229700023656402041133023192391322957288517553538083788105129598912921214567626981284955763564060218703289719546685850377706666916568312453622734308242941947127212230218155417811853720309724221303249112985776015784334890184009174564141910053820248106285909417209706988920971960442607286064534084576184553994241148278559867912092520900066247888312680635741624935805338036862748904304102991518952366156176353632172500113628286586070968357753792175752180050443896804687537795568206973786405061231495487920203277263670623148906981514712791397214349902594214627678819317612301080110467069608555284145017375865332631726289211845038222489065526293481971692386997359445202010186300625695416521327204363096437471094318937753797651395266980869686884044355248316598147967237530271718337837785540270332096297226148795905964141603148911334059797703111628340083201462903589487043596632787281403038924218487372494484821964895141680997578725228020465962526331167728070634006839190401762114211829946479993299810407063953002163459356723397936657039285595342175560158336007873489815549426166967983265562661059449179086940570172805340244881122147667904901953829190216896054047123040014035930895959932453057340165358894861897973817531590954639843948740805956755223191998440327211820185771605433968379388816876926625873241120177294470390991544362880951632010553858616682104518633521150838454017259530345304763326698301293026620364504161176223257003702157209079925736424799269551234741598634670800884526592947703996960185377465951847301112129621399534504917976490587169206688867043668250654752376987221560403227519978869985347486355623140045234355920736901214249071754565379378035997894215304458775744895297879894179844771673491224506238635237802876877607310664728380721484450359863952549451918394953295465264115862516341540693957895598394044820471630864638418994569605888658172687144505861417620782021937074249840676423844925511610034892086459255712026513106481549099836107311975586501810205923277533023986777542576686520439963701616801236127185737804676438091594410148591685005640594436773000755845330574064749241391008664370086430790579690563481948963830714244835046738710687983386681166542007040900822765220964305242164754756455224274105175468620271904857600999867528668395360466280539345099819593384609573937587418328714148734859904954882299942132073757754020744551963036134663563783398262588304063285575781508144764768105866772551006955129725233337925842118999897918365828486457503489099501021752416972493456359034278147816136806010873242086292306720367233348527964631840344915732644238861233188032462994336101451005827116616062746886602674802932400362956523376973960554258163583009077647624030665805550364802725566303789051172962702782947003988667448604456025368048778380214480972416725620896577471804771262433882556310418141609916294589959219994033182206282879087324997726549276706281299153745782699489455116891499541962545222222591951580236119418248405076128096757158659299382710710643628942016375960969633894389935434678331093519570960440918494110271851853815416828518582836932679275211645414343068142053898596877771099969719522387258603149600098258374882743441512814703155418186797547643993034387428140652446749648847950457646175746256254411584021508160539341054558867745364335619442653651783636878028842120028882836841569308880605369313386789134742384936938546330350397983323813399336869545613421435947585932625598896671177846855549174999649565949889379223584418646159799286924522028006202934011284274112058685211648506985515011022297233602389672281222665887420044670499521223552324152697016791896100075834067003023522406390181231195962885835319512323473020236884705182961682659664315227367173317062936199813317291093010903461417205329939340845004395445167308885921047319724336618057603259891280525691414586536206510914170955118073987983734007793977318647809444061795418129553204211098839652361310843958781586796748196867803437780089541477268909513258490417877635758755758843322090442772125598025778948668555374414310417243952445462012786850035573132574293633541796169599476113111535793522457833607380336701190557038666113198409170247629315789842523762237114905629561061756671254877763151823500915503979164117834902527088186352239322665152621693007119160649426987610221330630480890772705158195989148395196051389111425925448907072698340835849478786831033508254974566516494455400973946262975970698588906000210515174609349338993370260444501652902946666155647016116044413276637032923427079659156474811221224893450631300244868445905717870854178845046374835845674514205513634283014228743211020992734158933196000390848961444546829514532170788135398664927049951181441055793369858906208459007501401776488098409878611967305723186790428379787789377540703533636360364316193325180257646202464137778866481507088138571767248464492712342535863754207520264806982174188329352295379859190589736099762329700278933369362859709575244658085826404064837381385940455324763987384449520210136814573557955132233881784401206937839056697588336004744060181954795862221565388307303229571081862032671335253975188820593506432236583356002833706679864140307879984916921241214715779604301194636348271585565628857353906801951106081301791850299691473532294429832992164023951334815870694027738044978016175028512818771388878531438230440280317364650444802940764981316132109082670151517005625007536440502985629033103470468554196773699158995061413127810682508999450288038798102295497146312082280526404470246040922856666012681994403524803196803218817872536828056398050610114750523690081614197633814167019961081602021656074662894377963238568458888792734097703345295368808177525464458432845066398204041307344184325255411011826001616166340398413903326326665547263995412416419932287027811857638996327481843644497290882280320349286838951239566500202641072886876114136389180659286864456219834620119261271903323458251253999703507527723395242022179626177285872795967208907072631839774981910343981689417125133685300484049064136778281524419761498922722695951586624067231467747776408347927712555342043290535317130620104722530453997038850852666502454380595835038104256589593797242719570489803826669789722474226882524771978630068503335493271376118108160323301765767982194242255501715063480277504278238214118018153046180043391328227125250544165475485839035202130483212215426004433359215420013774482688151951713178208428460909390926642476805441102805480324464536976570998057524616242941236198879748015339989670839681860094491556101917970659855901675954083037206709229459062975600417009891703333519166800758279682602368276536144289631852673839402627704766013004708624185382897542770286357665928248860764366311219296359127498099344644126262540086325011520933628541529412467224595407091917730419295848953684721015380621585482348600268675832383144994630454193194264538239813063625826517499324252644199448945712066607538614034937839617501091916310934419509009040878558668241228616715071362471298574985545350427326402247949621480134676252537404426915521372962862515128127031302932248136406627378702561130752515876775517200078556277730408775241480325924152637413425646888461987202519823277419769272787314442747099313797748307969675373282153628021931587627918700486318041833195457328806464938168476889306545200965506538806173166524594812113264256078535743954999035078908832593030899636957225729042089027525554622122048097373874685213123455588874974696714522244728947569951716043974576657004029386794171356150451159423650734239857139716862647823383472422572512794976250336969887383359103567108046447424992381341422179183788576152719595560964589083231190206460457136285755453754113936690673779666864045256150932976657131618623484222450522582449638035787632989208187571777887852283872028774185866960826501056039100666749278180005291051020984191061970810851341130881593770592867675367088936752245817231614356453381184665202112934484558779891838182464132342673802969697648023245699399976930292747615023122045496105858248537329157048082809452815280318943115869053963967311928816488866084211807244187538421745319465316637122564640704897575257030026157691095824196757006650786620550490538793257878509086101976671339385587206053545557069844047484494425073268066941481458787989756956535714876246992025079026243913192089368851796599278169685315559857868126592831450437155784387765206266984875923621835099733213158464726016690860493962767960904566896955520975767477482362824455763936925372411315744967485834612209389074410141191570814187343155649590309849768416893218032352598655870375099777949684688201198459691114650902751501778497971896637272418711197999450962819969686781927375369335432291942966333049586912784374195310829662035419215276362694794902568610631270901572137365034283795421028181716416572898013026439367146127502512245805595597024959973972322968081285980114756759045894390426571053478671541577547892525088801765931075505808537372778232545379942667654829902602255445800673587725324412894449541170989410459053013558014471730897080691050291915883534822795836131427957738278065034647902782993414960401995499907291703223064813035766812109353115729483361183296887919984894135279477833486743607469363084379329122642886407713294595054381124237923528491339533951904951576945087287474716137604022347046429293653915114969156832964686376238182038958530241755877129323705644595772065917357812854268555641668501012447443958857220662210419886353874245151669704554783009052503616124559994789178432398293815733419465428427017667213227364249089354413917676209020576762263099789734976374202387668170614157635794093973942349184156102549940254491668203203947659724331758540991323683677174581998555637031722351526216132092995412074242030867201134776920539687009909950420226020880266874400970565071211029541989647112657379002792905510554706592849377808607228030736181216368382098022804015057500644744117416157816654723639893622948587744921983280576376510853751137571378424357573363339437965276216607564834390180198261303275228951574177220867336827615194536091547895796146071901086629237378968962443006019544439691211048804757726184001234426816726471753239598022384605355203182477800335596676680789656567096570636368173685049123197178080370317261376542191367534443679914818184578722583476442594675351268159951279738855867887412144164579809274881957002190514425107446614405263717251795050439406680573925402835294995436090694676817669145462122250497945658811719420005837596614774700312512942338950629544137066968480112848161324109798497835600994096889484989404467825237672062828627563537852230994184746531481299985712535762539562718457935600393849677069404950902006521737861315983666751031537714709192604783044331291536318421158583206562346589965233790963904200802476274695105475457446159440221489948774547289606368551698531086698206059663830712223781276176314986055830691323500693492164976285189917667691059452126672969220667141605660135883472265670528374659691255497488935203076884431829602834532094151768588295809563385375195093258106873835395480466988263855410169191369379830195011720290511517393864274369247032000701057189057863527253843791004282408878409491446169730241866517560792654284518000845527437323436830876145547805047432785602645263772418826509359896013341908573147972410003459705204804337654212219229774897059157831364160565932612675878489040362033027892864279181819755333384487190368279556693688885262806543048614714219008648915179696778820758013815056285212348356714734471782869570199375183164400967572413474157889860628854023532808291717609001707564562128874410531005946628666246445486037646411260260115400107645428991200003818512180496391367079805208519199413318513913277210410571373404646404154435396209274137541219165432775808159541573364160904691674873602213767815160547257525892719366922454388719012292339122733253408165430077010333815536591607189885614749586094416527453136508850107746053718914984651632690002009982177724228204660468088189735146588391617011232426823726442053737814974007695763104621198403526827929561277789843962348468063897565236067107410527362123349732548223891161996728944687974858085027982625707915735447632348880864604495790538002237611043795180723235889132627131974955234067291876082697334243133965121497182044408837185560507889081768909534466644067432056957025036230171148719104696594377546575710123180791388157665865227381873346871958709730186088374171251221022637782656239794126361283800861983556533346163545684052674091426964538667010467213965648703077788714352633786137996477621712370135678288380394246644975659559352174766088727518992915642816624770267418372433507493643120958818653487100889945499943744340763644725731257246885545262440880164865747062104240120447363140428266901502944897231358151699129433138377988658863710463572442413683179497109122793444673200261190320655073454803481853378264964896757536150086683209044066884679966514258136554762217793458233730961879721966303493902346871950852554177236728888744582931640481791261699075977857882384862509717743110645139172647402822222985550851847496567249733525726450652599992652442960579193352758638361424811720629583462889931148080537118275849839448646805098353817862173782265570191787687935299430202032858550656888489661377239306899188088807082296667681190363812349268581828071207993358087631449184961117006506493482011735761233991449772711975950344906033966028657037075092097212001491986724336943031756705298630775717536287735448360163110377874515489454340056826564437929127790611923746306480428266304428643756256413752078632982879600747724666455626463264017806883713134388811658414004251735757201586987590731904673773458232471854252298471407743281000620249507703938657889683170122094736853701752768628716615993939579825054805413580894473558779195550652662227946713707423415402642609022458599587409167397344124362068671741146904451228999938124479942394000610987143285220963685280536463571025928631228796860249439548949661759953362059364881981799679719466530288783752553160444319401487509507697911103538362640952801935661455659288774804971971481547699116542399216660220700539786809433182725250640652945356590152530715714101891608219019845907005657238516098790527101409913751477714200044079834901043535975931005231593462806135074914802519142211504956865385896232437577086875384584349753672122390432372900038166262428310820168159850285416248897853832480764885494279376010176707609827633316738792772223916318236044233744930783559449103267665483013572896885922706915293905289520311272293837707774501224195189981694449645406595761684052633381879735690061698548979915867340629226840599119595563260726804263161361778544789226376370867827399138694081128733925900599239289613936901153001489706750790826520489784123018144273125716716636833329753803854960252758658245916568895296723895398652653114318598356462672867293530202307566713943986532198329315440463445572321104656233015006523005379990408777090221065697766425618431422496587778353500968910446074968605432640981803131012508380279489144491367198522631199495185634408873315393685747286778191253801371092328829049377244855717665377784757057083176785386941493418916927161232524995598612814213293805809979589113564741535829957507572701605966412076739159851792037190722940661268948683649844164211899892629891548140645012495916310636566288229256524054930088507961060549083216806072206109421434397574617267221993726162159463328229401213323963016184836532624395236109489518158419549487978188389546058557409695300686598681203439189817730319805160685672658842015228913989406488526291216508802172284015514886247278440316834736502741385289048580646759778086797388968344756946047498933358614269813445479713169263162521870613008707175895953207015497259118113190721891305396125367493557858587295084742777953835006245641154324536219287861628617208289537560333521846943193554517688288200629848891983069000889191285000078901169646062781370376293803618352663101300280510539509107235094604910136020316083401840425354899437535590773423957044158498729092720565401554496920237368603384381895237997423801382454814790714706041088083165461578517574635590408412890871103744178715183634886936338221100684111169213886929007200068656994357228338792127636621375308982983979386629811698589594639769182831938384251708957521233919825326130459631210500281146904988028544068296707283603725796548697175724735453056092478137703207383854008740380597152849111969000271232463277356856560218467586641163443137614507137336814123407024042031596148553147005123169568850951844183901032788633657953810819317789290152609463108954234936659643547945947350699824864789779543123530730247682989804074357040675808244795027801628582210131154412968595374156166671980078886213038218540796818625273500985512654797292761389150712230013066087917939584213821666268616980191584775494681206370040718303191702153106597364333116898061030986601348484774943176515161593274341274889940413194795959568154540655835994336015831874012703392897064314978546140541275801946724730770919154588471404754486651746833077168945768444319904528258770979371677737815339069832793601296802566724996932315161919929367394020080783705414129222754875830619315136005650608941664985282050554824783620838593405398887727899394881994170903211136437229920202378703341653529793556043804777858984414790780358877110178713475337584250145814452531103813391875718732566570523648806003865447400428396917283838314978339099067399656788366097122463769467088363368782047995810602662039875389879551861380115942807828534952114398116292817770305069008668634024574473373786419740278321518777450330403868106839706695154605620428088707535882256487096666098181631878216083493398246317064947894424526317836944449014924022232968595327745294963084892148030135105598564617720030182411547863147250884145228959107610809010871190761398172809150657277521679543702086106745240837262645875265918268996690054538681461797442456562377406350300531368579060362324281869602780036507872521411178525268334606804308809248528953439614283235642543580511918675296047242759234679273444359135419573986724753012719557312621670714375743749679914277414368607617723580484145410826521236579980789834855432355795185329961493898598236023277155250336600024029160233340772377551448108080732988218743383339176366622213562885745473686196685738866923656892515026775370300700754016996401175864166408063566924023628523040747313779018736222150154812383118105908683051479001993342474309907900910407021156953555061191581491310614247780177301226451127184440105671230508986725308432255416781495461513260500900511431552075545803137068539500508267458391294995098261370728588212789501914684091281560636507299976900933621663383094266005889362659780333352825003958056987122092524658628113680419013660793035431287904923160441446935915325502078326109597337414997493042787636605869983038980140037832172231528800699394821241398783747388825263497474678267312257564134126622252494126621661269557461174599438816475074022856669986715270586620519214804577987937403259654589818663868167093979315495638854311863291182550575739485625345129988058836794316271106285546212732004803401354829406858470901684702760545214398519482509614545990616448764269650041371685143721257453945693196711685879124783072994996123828211085194447037574935527535608216866068636167427387225622489057422840820017278924405478713798234602329487110500639563429613823831750050113899240308887126219999806063834001698923047636224373835091277681188469159382571208177843815237465902400032445239353787663338786987935536142146624185219512269020589309681596676756275476935157620178972821967795322257946522971208533404356903688721491195003074828786815047345196148264834715401365916303119168600563139040323142313985663318432669234759759062513524628751183594532271310161655268214798169282575506712901391221036014291930105739604044873240089587328000930624897923948730061887261047945470712868734272193260284545013640142750672291023758368611496802177305559298546082137361606158142477708658931124870682150643067078898123998084660878138802061756750663488431494060098176382527522078730414482280591777846712342651063469443143878607942040760887028736014669936424724929209014737047185427012677155802088463445831077431287866413208729212341271676025951673359929973634029949363515760909321271461187661573904352248755359710676266730123498593815606596499677622836226121141578693277626763812020855305728354260019704127483314304779310462215338154733369221486520464477159508117425097841784821537018504437128460350049527018681327622371527856330200434195256253326874303362485152299056061952660094586355941150002422444274296747333476644443848599987898622856887983875463554141036053451457909675563568579939947864899981984110064219274054164550886319480434116682334048003951060271150487413047937389215749925192558983150285853239556584194064526870586413688620008362107702811563863782866171106951232366076658972686844500437407980426636035112376419937466560773926247751361047602559576696429368422068569540701763817742896970795108461183763315155114436890080915838389197323102350297938618658585705154222094395365757990174762596288725639391259634783661150290670529596337196582348868164511674394511647925186063958576563333114502706826979910797915008644386151793078166057320698649411682945996160728035188766776607790141862690042819250413490399215129594272257225206836912341702505412733801735961744741586380346592144412045270148514910289128000049060336794269158516584527348471261278534150185208364155049852989107322894144674820001040833584897152882958344270726095387762465798479456300292536700088008781848282030349845678383099843235646518299699514545988396946548495580889913919127757159009770765379058993008180042623653795258450594646953568335414651396020284451758814347048118631664832197241256401759694843111543490355492237816590780600362963730748982141059656741342681579954338247922926333356903097389223387130906695833754313205475511046732031632853306669611293406895724023284979782073803282709951073204676947444393911952221384950407604157443034823399113148845234625742262551809405175746614458280822807862937695576140615755164267858140437562991410810809251493869615561556129993997735962771762793612413751936581772953113066094884057916195579923905141941602602517796499612681888568684065811093993281242604539937125859796541737757959973797313607594611240311127486059854065445568598363963487754055769912471462435491889193127415075450044354283364190464217372302393418205000052896278941374159399275711265368745403994399123654832976513775149618341877125020568747918716780129532835473563799281594933537511998985722473032366535983696622521531714959528635507944437056048357656456812294330932281749790064746727350424706915165531374978699498805770867832634698861577126721368683192567749309810263027388281114409798485512703289801655620821240874478996159965488227706036003407561534259514333076093355452735541438806680626163236769240070667938288383465460257714403472920011363546622535704554828802179627364169453588721047923449706434820173289963013728350469012611846860162592382043912268897592848288251118079032386741015599063112148730517341892771675461582626091364543642407549590049244873620620031316810355095829169743278778463631480293802714857554495808153956219379890998023071561647903097602014595990586770449905029396359710670087836947611777391305087695096992698550143150604951785644259649249154565597050775162301300428943327230281441921690107688555446803273207575638641278863752439937089797682754863107115598967240362518393139294713548354706616942630278353824580407195423772043986383258485177048806213936212277715183600046955437571958850992331145961906365980049725153885863848727156297735995599123716782203885322678883784559366591695180794484577689043952544209152157417946839870826439441994349520188154270707072025640482097532529534103597860701302421907690344077896592334914286807211986996513814656656971823727534913271847342129821208340824125138167300460063790252624701361645711138739400164795143477685104615994504800085544632758899941711518033763260069004812760487840827716517887986290323531590896949386806690050846541958153607602049815485204724015756845917789280342808477243794131307187200258391988367002625053601969486904898309067495458223996851587180828795894135237720439245635926966581337595070295548750046752216320771787516534493033075177044740982041243811869862085195650440909057964794284123140324632588742925564165484806972887964640608862707300450997865352728492981322901244989390322459325471264171263609268138449845885619113895834746581619984102641619965114002208613109546532805708571412196115905294247253036326658049372766218775176609361743027141654484848574335338743544448537445807648703929479094204607051009335524223613710136932877445681048045672994043718396917277865664698503250317262790371486730416790324682691555872084918954799988962131561645981095294567900458964117736051044857056258663275578960971491838048082540010987783480868556353689287733013378164434233031729296065387120417614887854792352605570462631256104360764235762685952573522389820234518630835773426203465047511271986775183523879334300260086383013011468761490843361827223763331597352483450141383224680544334712908134423384128946023985529542333741109210476700681229865452417189123633191081360344897724822526053702643929810917434542227399248913149840861826281862602160589466484570194644471086115546407248818755002591752066075690873027659404918231661412954206866710501662178641110547032845659579408138810242828347037291535344248856760901336085483241551245125869804726899161404348868877519777100223971597276210903447987039419054411397521023218586526425519239409507911447639428323634891499459232974358358170157645592402203507809793983216519920162706920911145147449296508517304796183423190494091880363883255904178445272408465025494097572852353306005537712486736752759382829394041322319429422316611679459638172586128406054562237527980117154929484975667420890316152520475356414106124458908807468534445785946426778137706499427924688869807189208039532793831912326659674016429289858369997011799557225174750164460514753869034228439062665375677491109753362739896660082015120668007160128697344443108487766960525608250615262376833490587032032546604117571146975797634776575758232598612753948189588514751254351046178794599690596473428574381029216026497469414108468265350780171489468119254183534216970268994363801673854208821052818821851652203919212303330008013001505303060066296703756212566102498558892455199294363997108667155667214498524043566734449196860849599571668583789904396169004744065035789676376973465426157483478121507567761169205543025914511048408478774118307807399628152307880917840486057887963096991989104709031035466561727841517306072617792711735332867841200232190327911500292441170909841921356553511262690830849521416858597206387477165303835561932682270208393862989053242945597170313758560227302605023428958061746467705849105691121627234806839977118885724695742764937291744677056543674996432368103054684583262530159340375889120692242157352334451644493582350727293992283231649053373180290891506894055548833058485778250777978691435020349095197639088462812484278068565409288879397333075875069825814320621089764969867718778205555562928861388154757898715370943736649797293069950061142539496788156946595012230778148647556980528728737573106480484784442221439135931669216530514623044492142573536069840816957611803659862255641118859005225815669504669346692283251294649641259102753384895495394309505816127362747417604125652346469312335953557689643362444331810214483535842870515922588999540930455734687813043472240090116592875019310609903584502341786236249488314747417770240333548008206125033976499359344650434738952093426422796499493217469142414883887473155206914987450819650329485341848566426088825252580053144889069649685550316221200346381356315659925511478868634088916625138279742220024112180191615849328571126089553641547824666410589401505386310930642948039853589504896364624461182272861429591342754279110733219691288112683375853324300933136128526627181427786285419153931567916612586436196169897544460409130459126435704826079945511655273220459469307133982513396361658185837285816921493569614963960967092244841964417320909064442488126672908722172507860536071238257330255845636575343888753062609434890158384574526618798580314092933755163095029957173419011761267603892184847679751606795146558233807968767261814535510182083167041368963812330829868430612459128240069031385775366137522780469262672974534027113372366057724555950048553283083969786224766646472877819742536448926777769079036351886370576477839185036794179688475208713160208572305225992940123268480281561822274731321332040063895313377668094558735861841651605200016907648478512554136265287705114645876992363834219141734112922866157926266548536189385249960967435138978405431768369258022152112702331558544013583442388049738327773369754354091008304284671700768630229128428401403508061949193972575260881327675675975395875894295420060227092386150188214656869098656625786224069517835894688552258141244680881302574959422104638261778000918635991191351124050111767896026910784772165706599214051308671488708026064216162873208389044352638437085723035931992950753082120085608777964957691478052622489275948436898953691753881125987938525588405173241078299257329440274825603980128559738139829087603389572454529439097179637160882278310457219276132602997001317994971465686406287546639503852307628277804743407125770933235828505409401903727637863153011483133906327961102468750875566602450982368663891740854731280212907404475195050835566201668399736362205260307812888297708977277930199921719709137362726455388533774835344850619921003588951454289021569835188771078569264701936381958850055541351790230778560999389004987007463977932405694571314948267387155698359233551861919460285394437660058898245945521287966802319878928573310112249479380254053670059934422428079628476196805266365663075325353727666931195309188869212778897950032734764425591400686905447212682374187962568357229154966323365071467307837881818742743449879102769980784718866582602445173355934132379418062005948208632473025202209817162037816948261068928376541065130704746025298576708851689416883540684915263222039221182795777336088080059849555155442150073745371505352520063413489141395153472937250186413084450664429616823136060350633810355714880466516305661990769002520370673484465734063772247343924296442104085735563498178175232362054456074779441457436337330815844353023258074635388990259304652447267456240600219660730424025383578955931738234106370551476217033368312872424934822840674833200494022277741293199998683850783090880938824757455994948570069784390728916888123320903923233130830720423543825567238656293417557055654523691219441827186183671367458018377982380843493413291770743145688702129806201675694573362021648228062091764021847164635789229565692372901824166348190421299185294788863085679887259988292581531535759530937384906079511109952608069558042512634573906316751537442882801548057640626067716201875353997964200678692872905979028832640162015643783066593732159320607916963932271338847614351847245462897786926145176280516190984470930826492140498704410854954150658476025349311007695102381571226399526391294104351752828673008781334016149585000464418788068305552069770232837633233640222776753993592544553074535828683828597163599927882316434849558501474194309094444388257628891635837138465542150851136734516456988632704906523842196240753466578455788920590263916665757131194930894710578496111748366734288213658801903644646818724999287126361938239997696541912060142623842639218417505009490756189718650536779217240892147293678532052595314151147290382565486953843195742151074878935538455332360579582768959808662106117755580723167276125243766590664529662254934049562908012265232468134520534252707282063227719449779818041142139917867083645250896632903180820707549981265816804416775223578770801854912964670302853302226414237250391367441286859253105851909826401511435952268792456409176852249837618834851598615414137437234124318525454753539602328401166305039722885869624964141262760472976207086673853394375820122369145670691868356237567755612449984509333893318077521266646166482102458182319915371294913827638883572168702409344719586471926654292428860416409931461923298466351243735681311809431331795226626740017492657179365325444875210156295265401415190453035391548549062355136542699557130456716223296447048059948277517182095734956664238835231878020022720316880025244564974353151085022545674805287833295472060996043281391146237631745151334547287633959183561841681518366130029757749267649226558915755356371404501908190839630411794446940223932102560637079218339122452907210568908573238994922046072432620681584782505634872625531703142732799021196361475596190593334766537857640932735617340794359927406100657879538962655439599509399262540609137090790061864807855225121614627884402809381592026257542602094395356289218514320664200695339000931582563462961189339199356253520126281252074090941526351981334317607390887919560750116377246636084634968623396465423579638977247224209117835553917809589909405729863256788786345126104571576234163304433688660503375352547699977597458679266762880390287808268590103349274188685739545425483893629637155910355020158114460612513646300350691658387171207082769620879994370363883106129747068260123512797575164390526371564030923259029087903698300699639333718816869126644443729321523624462987782024011914946259122379312852063525637493390263204009707578595357542593263693113149524386738389256125755891150789218331405508419059003971540510139110109748325336712108346390854096601881883337387727025736300302952408468741422530692010135658029260228172478900902836782693554553118713548413416339778937302084029083675257160543297852832251479785364787491361527119362301444835892290345567267023181656690663547326502880283495251257651053094022137631934517899838325693273853836734581843676483348549679993207149646341518373887148617295473076851066640546528203887622739809854618093620358223411045889987325640979232601851891992957864440966691080347968805172125958531644080511899167254029754272333710213236622621165527428743910452458480611278029347704872327428273018417227256192277305971990788083759549182516982446945069446413893897738485933205986726251543997040000814661277066936488447321084763763365298910725482150846708976844495491381592498487819118344639677791607847401134478078339998677540720284307750269013453863639429006464980872265252155118976125212701977495014999207572834227002416474476243579334727595256111648441705195097177995929232642984547816233068028058380007992357297045166606642372292872767996281809515722131742689930322318058074009739458145015047502238588224532908647839814371722644724392229357833248518651628788973173005844389496522199752498349872181273960559206043205211967059064229344890009204629890753678010997528308518529841638367862172261910952639434670085590871701986169720087668016850921673601685884537386761285686315383434561752862160011093842841004981163220281462981643337054917294920560452098269085376031790007673494897452310465800391837222977279299425460709295933562014740999570259166654696193841348386684056875359461530133218294992478417104652160774434737942419870693783901595223689538798366872684945806720883021456550044872106291571732278465702472238882415619788208493112932910823796389330112175504189571980956488097581012808378453286997674673062431970553910141447563635607775777821471688610177074607606635348933080430394140384723583217951797252391553444315173799893065738628204514374893290670246831265925635676842045440291841236194599934285346426644953795860381265172443327546461333487017398570011724159202228873315534269069143083232642846718640968030573335169839189916430590484898786237580398198903407020090874822518057058159797090839885501933042632700511207070129408277569323819639184931452180515077128293484508561889525420461233907679581362935569382701135728477606829908724909905915226483648809179495287424087657081457911714592370700267968645477989530915492329329146428366539458827870829678092195127139152641562943605469368792719434429888983943662887390141311961922724090332745641902023509686716111492143872395061997196311826212638873938433518505873394158372402164061595766366583383747369864987684789722448636825186648954166861181976393660825393133485150549606508296955069948013021719026495745027028017819312287694464629110947122903301447516061229948081789064902183109952807587249074813056301407284458733450710391398665431520535504562389728815612049042931054896116782895356156430089431794694209024933639224705335864523660423408013900037238884249631140093842670806135519934916865839653766338840075225439445529431108944843518784090896048480278412236625867302618399184549919059040060629313454766530820732980893849355690963625583753721577685606361425177076120478411672072011402575104689065825979862684380659031113695237812985769252123606559318030954139962940783904727581799964726327086507808586970341507389293990086615122821280797771218316249749298920769776834348001689345007642389978080526972721872000744563571559708056809936558244802534469572147152917180844081124860878786366673821750717533892009785991959286569423550416353390335398919391777422350270568108803275334329721708794015173999125251826342902925154193939445229073915010354079402032843791525478902412911617515261661614624133503931843672257726203020908318000951975966372101250766343412218013532171736362778482743237936232719363200635148020764724786593301750798651785303684199222379013345322743066324609973574759308633094397119153567626513095522924694777345245043938338286640472858086031665628515397003558237346216091365288909348477668262960146240365501836991462369483321795947311645577446782662165436586659919749642345577462910836141631790887452071224341860486052880526376701548378729814540933306021800879721612256551244875034623041758407126767965739723206329823083405209584690261422534610109454894391936686330722570885056387189210597779553022052492359147790921467728941587368450240773729463057351562172218076224748915532592041874733438580004143664883084261265642408223308475147935695310759432212629869783808924167981279833801290094694021638826586533313471095491158799819991958694010216018559026210745473677413589256524371755988385742557436736678998221848390329828770855287090489758652861025346509952946614956166827460999812722284468912789585313023834396498844850253910452599153177595104052839123701192422389266649870558314889225866008197615481651385180026346918402035761704124419625350157024832982033031865898514978671657098028955984009490846811510485226482183643753602575107177340558179998252563306032489483687793503835095547286721773386094964275061876057565902274291996924481010977592272481761552550323988417732011077971774293925808662374896991285370269237584373639659823514193852736624802243986839838877405221544486042710076312876766004968547912000165019010922131087918200296453704650194563119596749976422347613316187328286986282125076382483715832139016454348219583130101220462664089934107217830166689563023754652778437824316284347921598518045267021726679683108523402952914151663548869814088031128370431580069606077996157492222498306940941218004676156272032332812385258934992782820876047892573566880848312065758262665187693251918741427442053291536530983692073406713873002588187831330588406911460133471945973922927530457325195031834939590964860870460132115316808843615211539270529842063027684109039181560175482551733480151743318141920789442050276112259179237763063603740018929762436814595096682531117466564034904331747515133521037916816728431945388581562158305840345352885015132937483751551964282920705458397795173938017045733463738575249982673777366612616208431320753997741075239170106637198656820387741849447020421997424714227022363115102425694334463415183666722949244309878725349345774471360075053385552812497525091835631846193034528707596608772506411168784399401878515235211340262280207582192490479166457677059394450632388174865025115142649599004989142829047770679368558929020555581488632370543876100890318010551913093145114917874048501400015654071386372784220962240431749844223290879657726757479161206694646840149990764826112947812382185989974001204720468080886113012995382703902105252957068039194196841784854218830488048317455597092826097180578956625328841262957230783721216147983208432264806823915663113140251832330832064178234864012133628075845592527539092008233397259653747972330663379070218557065945798942809058748021072245402496799929297602454289402959225418635954708072681809542451304594146991986738333506911038903177307053892528036880691166063472680287921451259603306556270339187804723708554951405585280136535460747877671148078286854118567908753582478510909453010062533747738717814468134828069554677468986815403080463333388893119936434673423137772894272423718979847927588652319709910731785793374775422438622942341482039713895846310601932741518103102313836511904034432928846860778621334283259715067752766612346275136712909866261372582029231315132936329882399941822852650421212078595112735834339665328832966269599471418338174233785972234568600837765187325009388089970497983499081779185184918541974161913958687987466405234342700391499201066550995800201258871759357196799851906331143547231620102810238755654137334149476095478348275396753215699804962249934547921873197440715501659421108766650854171380535334900272666641813466205047968873917024348494713904426731149399606873907852472925112971145900537588363531277165719455791745276373730321238374998973445819133103585508981832793998550892808210362681890069861919313544846415057783482559714769035597101295826517141556849169464269396498894170888526942688549978264666551534166014501535494083607735170657286630163363693999526484541683457875357503246358262150334706087992159880711617219745782081930532755492389562981061673547951870772908048750997431423514253304522644261912403950934865256162243020620837851388284479756882265512977478217363614798096125208266278392036154295883752923482329296030802901711746832364738240357517285548364591112235144881789980751167552347677562726018156241480652330527160221974486674504985880842895557033480214754139469163855486569816568286797928444426722529705065675697444356274586304843113271360329154526546988501857220223722857277998395801393186214708594550397889805006771185982852655043348810983993495909947221252961079147706456490202903936148307516826315529807411106586090773933039380116387809465794397247915237982061444133446200404245917033528241227505018848418334164901144901754882691976144674638601962826671422576808103649167476855623444444190950207863642332340270000415060680795291994528120958910408471447420152660533388180143509022329162720383516044677214126681937036608029704098116268882565338531668184441730891042534086828280798006866427311837967027464682053609962525468221262346283516416972320132594734416705188963295086591262167812886151231113101221598017019025505820036560809125985671867392308537288801220761512543976028508904876272630316440716505827938497667953819943207597539203618396711449183394429519423083100795228702643988964131299943142513644848277871437965537574576060989465610364685572275440758946411050784994460144856917329501933470328715223521512456243143494305633710775164180384191593696795109889520594274328651892723808210178192872872045179078846685168448875918323502708189322334050520714408992137270675350290112447830218085655790955340687132676876188348674049618463189295185433606151178137363127730773648075685072501958491799905270475550461776437589052702337957674459223558845740159381708075351855531390601553363174290451898696528896580866933884442764051354980346187241470839946802102885755776972855599372591076353034618945560439333561720521384015306198616311241963407571205605595828551004987654584528848369835405354930444254952744713759708306775224488918550227560436265777759880388998882153302750521700419607601075175461683817425270531426610790807512296717422924686483900472413094818117836079665093876076726691512826558210949728956100529508500048620319030495711442634977084200953301050840923587565170214931033533525787816565844186121321648745783573202062208068988409649167685944272929497365944119573692771949643270365449197599372132773093137892198560832887077934365289235020667538956119272036372163989480315846137564402014942787213467039622889133163002595822932130471668262989205286404570123770941374846491332306124258875295975787885156925933965532206790329257633738843648128990887755067313047294849745871657111190980834378333005823127961681780406428961418701760096332547285060884368284376673430637595930302505081278161413557142120826474672475313074037258377468896473927607393471668972730133380021071447179625765117236972572145392295739248889398741850615785855476286907010679748024453458520304580033970771349001733724421590799229159274445347580398404142200044701822507278031719320912201322724497530858965731139034995089103511812954593764314931850537167104101216380575650591232259195723051850408760219677750540944460371914652466750310031956355789785414960142545339992613750813967865221759136244944700763794190056147468393890812636936414786142545779221818058679332302562776916930438583435784551180467355911076242666386484949109372980279032531701009030290010378169472245796764768314845300188867110793890796739524121501775314589526543618183841976436485475612992257271872527166891927495303487927122881599231014140419675266813398921365403858783950010841676293228046573339181139168452003426857799478006543490765153314517539026536785978165580446699344524888649500507338853258078385739478328895997984532547303293163201565403446591301643140493296760256141623090659061769286418698202243087119236590318120082603290197647031726848311750640030717929170010024792671481842683936021928132417315493596249613173471884571408705671170558216580519927913892181543321409958572472502744129414155144789079769930391067610750397234711734123178010834329119773831418140020963403404154039649325939235477441534434837894512647829761771555990450218000698126284131604952885583823092868066670487767343611714287415455607719847481035677237192388971651991723293613745167161241816005990166170382229935652870718637251405220859983975050115229227655443103527145175081979184757445471216439063613981212837021188204542899174361277940683471406512681780280694678864003574782584511756715565869936143600127963704834364914460306046140033610723253516379351759863250437006872070233048193340601286955566532771823992022163740259856865336249709623546075998407025921786304868124312189741272910362495294822552434914215694349989398726295459747104267065800212709679182856047642394731949683680520646603017983785854072165829025029257601916405344387741169185580956650117339482575413692222965639017586819536049031055714091375766242436249300826363475377053245177274062326094277645613259870102239147743256740410856076741891124341559169413633861060970754950710658141580643100978427053688324321105875112339343796101291620067756026371129875408061199797117080254741931517189336323528152281099692042627066069145617994691698808300997150526591997575368595934862026782391099706573921287441502411484709325307735230241014100467623570295475231035776248216998533090610635293927849193475976377861696359537762075203627654783499412328323895307154684709704487805836705511929082808436879656650484740082424912477451617370568099525236197333158400587100604833946620871265748007613615527991503645607383252730637384171277676131166420897284023465035984889180171162200914739142921422526787308365500804099615785803149851034882739966590252447895281571577948297494783797965034670114481790638909535150876872540288715105973704303369959327235560867932131889475260920191158996193898735523626415215839256712093950077297305800224561994919579169525586106734860319986294968614599122292832508455479683759498626746523077568903798827768072422668716769574990554527752488833384998073392560930926573985873945663952911474584303094153949592861837745802729353494199088316013933031222941485595158545050151863226763815087664477841044104823939687264517292061055866237015080034364828963758058447828527536444199385003837516648498026807197076449025849937316310305597515060448198849006402099649750250256980265315976135005050875301189348178503944137458185632420116313535043581999153158901784505165003985859639214074057335921378408218701175135493281053767775159218608180254653693653645656810033401961999214744962237664066881351823149559263957582197263214984884917691866419740659907924944309708718509325546413150600928432452636674354030527955016504528876608052855575303110755363733844446734692379347619637053818797779350037480316049381953774222685365344241486091761471383611039409997076228582039684731688512258669954626950886327147213558779127208868231773288480607863366694046445684938048240964213449702359756021146707396530503864729013105717301951726710121987066262645761761712550400688578417605714973069591303544805381701600464412141903026734713522532139984996827714549061405423483236708326029639883308104420175173903541245677951951800582198767806224206271860463409202329808385957768900192449913725886620921618135764477307559661026468206676861915141976323903382055340857757179718465871991358332078792772556825554653412713391921346856050929421425432685970097531960412495848491632316566774273873733720731238013697795790618708271582476160551634123155250193697777650220701779180775790444098347761147543769379913319967453076919304901476493277944295915346832082542458236656875077114155866149428772377872752337970432383416761177578381219444153323564551807777220638635311190016433080637453600980054372737571723012379729917895202797861191773276615279093945908994342085462772894454663390924640104819489147183296142214743615138986678685677942323852624809696535991231405448093227208159430249608813852826881987517122281944099368910635058890826305701705757983959849760888396233129215948594773419322544400727077664255952186810088729407530000444394419451831809254261904967702903319040460294586590912877755847696356295920381235522759571380041606648019882832165985807846725137490402741426841784195580763322160988068109579768107382738493897154511833139210377320206865307654752116725391058664869288572765253475541459914667642322532122320516199344932317344628380534827829757736423065219258336494391023547893234746827225845252448272349143932836715078366387812017530980938655432871577261688493910192647318969567778857871701871944877175635651729408731157468559299832289072356629019469341912723908363980309689002010058165457128609961770180665973188077844521327989118510146891730211789898301489155803875689235689404533148569568333069441922020111621812650384304942730417453262119384860025412254401899217340438129219921145706009918280037853423255970968002217088324976783829078495967063642710342146640985726328115278620141409429623250083927724457678660164976219240425038543130622070896538312605731381189322744529776094732458061404810229859533445467871926559282620263446105740173665144455749827245361372908888849999631123269146167691226233201375458447143182516723093540304639571012323541524419724110377758010307339232165906087911238810468888378496471606848631271491266009032717673509575227595774272255599155844295308607810000688813267220047016355214022721497271887864967248949048414143877667752950163583712603871203513565941363353234596567059975300005961996493925939754931925445011032838283410987513447771847486612767720951074650795930536438573189741640990661970688263337978388059663907871603478110504771441670772172354471863746835477189648319004218534690588822739361172149577170868167993337564936306635488796767933699875608953582491076005668047002989818282297475930722472107397896641265256554394266122028210340917000221546676572203131138530799209475196880363391835053980544107676512526883082626575621363414618036094194673141027097077060841938802994217118924909632643644813066774286531111872502488655874356482006139856033021845194693695779993132753241524072262861714223313443020212640438173942183260996650125973616658989959078620049493609078139930618222908373299280990701444253816231655267771273605216091829346540969225409089881949545729254641777685433713590809375076938389429623124327023605327435705695626121410520868269382518743494974210823574764836618855654281441500684262722674054356408713606085685648970871463725846889982502235042302206593207377476283148584629322696549795407630212647572820064201176607078595863026156749870853153109652436793273932436038269797085724359319689138851220624026213441156490635574825943520697669256413912818124912456881760178992915458803637429259994042808390983437263829504642837084123289045036048925846144827741964571336288684518505626938242630081174744899475173443351946064458794278052897347729737175696344663420184754612847437389505513004264726728042733928922114809691654706880511645956124755579143924014896108039212226990894413027452652311784711292322343863797008884371965239900564662030483957442203171894829979907418757037852725365296794242990149301887935685031359136904133535567545527155738058904583363572316840601149734036564271877103391146107636378460771014370567683115982903499433872382487158157781959672540439027947608205353838908990035414738390861025751689992363611253609949653916834381797710786256712167235649380872747816154304432632342870091750396790136065624856704766917971207332761155210452387397994753861341120744915299781488895419182076066811871275259883260497981685690316098036437908724543321520372932797573898591468492820356449802533592916061169558084989596862381948737494480002585040377155792869383507113851226776041976000768011094959451512425185330715512570572209177963723698910419354745312062616300695358550804863773159448983831435387231157602201835907165322302604631516364500151035582473435424800244413293379811003020092372098309753963734378454334581176882934129780160582414832058525258732890124373983510933653743571435555642648548612213849323045419164920572796563795390113052775105744864354534971437777196574602493077852739736796242612046792975860879783305189122115032418262840262754437610485804003037950079603380721746791874306177440584825778151904154983046066440563082917060752640042450343665774450841279200797970700988873074208843609988491480212861389639514108047606507606535091481075494305125268108435847490082917134223773552331992737785431493005851779701912825012375081689132960409713089911218077184966850001665428990264519349904161782653584017784715823685829982186794171500976312700123137922402698060915561836197790413938468539276588979276926521769210736139293748063165859179465294410933071633761879007110153007171408552159195835253398712786653306560672543662623585354272655680031921733267507985460075815191151714796982782868934445626210937061424622732020659436741887372301690300426810798583698708424066650334040478819836870421808068109141356968029054489436492742119549788036158713177792398604554477124551998883408223603266895429262969223830255933320818442778685760076349240058597070208156890284536214225541967978716783289635221461238070878436411696444441782246372072005236706147268265619472085491879893089529472133442355108220692507660267690965725445017591086667209527076326261385187731579149035651900998334463923197991051493889549829896585047475448710092655278403428619020819244348953528226200347163645181313433506984229822601885876584698124304689699091951053963293829046980056505337971619448663901399968847324295421259907429738660840051659546298144249286138298145868666248182669197824868522822265589799796062138678317029017810114367190327841799127008225740440504280259915332703165463797528588413352288892414425315219163687697636406953139216277571931948909059432367803905771772292540317165122608310894252147136541340479560658995745041183092484152646666622192429102826236415520896017487206361208637112635004227842751890421569355866000582927744680789080053331426889466362115627653917780904114177575468192989772007838596130580017692623352062342542303056859500539326690466148906363317637836428919877279070394856173113774707010840875097797890173937046940904421433203430526465569827157783033854852361610077024521088093809647501230050289003590786960196715040189604921110497503405100135533183236819117153312160246850926638694754948050720012884089578508099034034342127725811328930979925190064216820468893288919058350724077684734167706700162835256837788180918445932487134762406056406279009595800045313954253661303748971037703388276991847909615305520369026453773188594070370425005167147841789620070376213946994205997026753060338585999389845870896248499851743339265892390472957459888980657258832624213879948347494415421695774298587966677887271907707337306954148865154742128857317992995945210754318169805194425481277068821647661453834873163292155783939307349905705134578965742776960751131143609595854502658331801133045649351389482439344792194957419869385522898805198743233872062532616594504693791611090576850044876623087964111168842467591873269014213868237224744520201249760175313687700527217719899384206534362406052369034559606378167732756777192155833018041313288198598087812195798952738785452405602748930415216920198359406021579255472384650483053481004842557765504903741837767748932122425369893258278209576657931691721063527841259590963093234269744929253436342016004988904325980593659710263564382059385999132552052187162248739356939396230091497615467522635381446796767380999102910068767998450212662204753119537820220255403933317675723124171320469799243765005515265336774052810991730467200275247412780154041218077844882023190417911616048448011820052331465720543406607577885825861494732993354798042638758440430340651392812055107044846278683570406846164559330769523669914187555397289887015237610832440397097927774254874779466673446302656573616749682799067004738277227478644073077893368274097652787568021077882324250500731713808408244638936702416409029724450179534303323352634526149339610683110399588383556272156637162021575708864234687440339049107008550593095266832890573944857265935090601346572909311735549289118903604708765861064650258942518312153693350917160596895381752037520217744603165925191257751651363272123427619164559138042788908926862440487251981454343528543475936095378426488251302686655358354984929946957811893372580104828697461501484815552924626284177276417089322968546314176466969585920119138119152081241136632226720465005212530879848365486415168418615651919309367672059479447231846867345770980362301173111898691439279689942493704710429903119336125262838209177174971165172176219525457014802928286786968464472042764977751736535024434318637788431233851585633930869351292731650471332745439048726740216840395542145521429988997256753430495587566786405663840391458547603567830937840769764690039804342617920782150092447278664505852071885964076164377925644413164565811357057332942885224010907950354140584457075073218407637088911716105163812559053897932720553600707526593394760638558595169151768813398411104012527030840324164577619416155250772417923338852054750456784135797580053723047816919160330748179689698210297811437320144587668769008345389341325275212395556906306135548021160552479733594777392932552576996536960074575151054641725016301857365849544475844311015485000353638960648126088596094812095151909272639217669048203244916834477989344038987563981731710487360100980834880563683464224173682971381249974457130532413729119484061171970689692148855518350332563836581891716723240235553490298487423958309775559976915283757272164297192822747643834161193980692430778520568550067563947537695998150217377442354916110420378805819480356106395070458695423376732491043587255429115043267708528350594450806316233124639287103512588727266566869046211923559022309247919565778536996647918107932137450548866570442202110681370202138988381382781374434086915239860815719799169008871020356177734666319208116024264442686580576293335266593832954447094393111036139645161745610881637693050739504484751673807809772812979376909356614471107317164316756855799401642693285610805773503355030560645407573847742661219871894017112852717752809141215271776681270950860621355155925860545011032720936242734990785985104757433699285111940782917514426377786315505802061500548121750464786172921700649176440767156085881650972592252695097596958676661725291458110188458954092431487487231446945966739886496849654677388784840793342206219118247901101661015996575292642607251357132366729954820107977221874851582610012905118165650039052590175626039770826963460104871896097744556437076319075125005822579192445096336300171858619528630968267027964603453575110948963183943970991559393388251200076741712213300679905378311530995946199849322565224932413441261737611407187298694305039697816959449822514896957382598897246217294565143896212777576902321915078581559666175694981596523836845960053137602533322022742460444125871950263846776145150336600044123774693584466808005715546110373819319586572572654408175915539669229481145353449430131945883502712394111205343968434965178607607488580753362465094036463739231176160890399130386329228871785219790711749009328488735923447443901784695218083573840827353423111881363917824478349531730516374255475922724764130602431836284357306811579882982238439747001806642333687169538376091900266887367761788736939292789930482195479851569117094841922639636217157494873623103534819190803604011188200074239003313023650167055126221426331950227209483447589355392188514049904854007256175705126004625930507518616905690019040864541660815425995926924593981814177313967857355758641738863032404200159289706723269175925709537864463712017252519371067248989715106561717629452707355778233581356996440848263086962662532200402543833636990674172105701923894867809581847173115393826811342413601802525117534679715705235614063265580322757847038158991798818845544453187159690747590748918505671329281903792850372339757998889781764082724009191068541125447982143938321278262491192585983174745708536597745222417568493381868873348864537659569954789708810126452980364017543461918384098681515837580589210890642066311018365222262301258480131208763449916528530767174997604569699505191122733184582222165769808267986634082089797500580757724007214811250518810007947985452510236499913803420973062254145669329450747789305651144851513155580216771412998415912833475196648937832518324021427872848721510406658831894574096492748759931614458767777328992295782260304755275312530798517016564591999512537250004057362444626000727361582683359682183960418476444604834319082575090281343344355034731053147308654033585180062168597540710440665490300946827158129439732569469709957016457691571952807200716658546479051466271800031221321467560485155570759964399633191896577916601459666165295534436482910419170393593551558409980485403691379298494193799005145184222209016855244021581642795551663338478074998700756729119729796740958885043927303405015602760249395808197699471784591389481508673980669813431938752651104277474229379219513416614207307319199462887270402857837695247647343938912354896169882001657173235979709742854503705023348680239318740567013983100922367357746402544857733937549323517446884470447506606128654345035112042666690484060238970482825623509183515431377361440808554208434009870123988338384741879403688548867701107982533756338269144981499614098704298109000773705577329278273407329183855909935941322413355801591797935620770551267178067865745055812145194504705701560569992664521369854170540380082640520683251777421926380854903581629096303746732729173213087453749406051958023630124100017048381762714541391007299352387157496140812843021930821631208460624461611988983750443587026749382269127147468223073591894755399331283868386215325659419273634949707085355254000102276263263103485021773461670790335399409026511295467370708759720102649878658604086852746920228688605165029204584676597007801571142162881577747017179318058661457392602019207971509835518028862602576897036610537308123524460789223044732426191448855549685933042397358264804225686582858643539077388527111726571780182582304798212113452304141632963036753847174341100066234954420678354442857478757720125983175420423900103804092308607520108137116517900006004103922073414163822574133926782686156950424127278101116393991945485984328499652338941184225602765024164981125910103311126210974786455961467912532218322975349278971879728796021782937555723622614664696200130000378997287284730924368356980540074344025819867161914796450833256136510171475008205924034764149287191784406508927733320513503462489094838258511279426737304126467867248505963660708133920775216079882972205591988262963022270636125769827700465402564441027371436668190369736392307538941618323570389195414589253653028357305267912269008528504626714302776985382130187277117768996455388414786393310715208375227138445764619815303067839085928606346713732345224535243978822230509895898953368319890996008690159145136615731487400995934499671944734543934090119699654957449412607352320205559687265007451507520678332253148180119349145478854463056394995383137028905754543123671071892218919808133290525123106293239780435733462421844989788609090645623503258202127425414453336207820886183530537461791961780185377726500590404435779114360669088849582507701595911801100503846813089815617238143624199345627948680759495554407289893764041235827794936763004473184334706349792064942471409304127184042520847190019267748723925512878838298881849949961799706859312586806051512226237191346180868722859375925698227283262422497354887278359953578736094315058489663042004781473332344567769468000526350157938427353022474235951879381628968150252634242502799274370269847160171652431649852295345079962741127079513567906519945036286394203984474509852288119359201506560810450974124698794825050918043517038047262765664896315139352883038067081975369427113557905584732928128066476611866232724537482542697417684612993699993096250515735493889657218560453418495350527207718757266505223797234311821185090338809582550146705992288482448944095832000962753605697604882047496156001765622628706985047213560284629014503475563874307322534865262600738516130260654731746616241557815489663696951492686560080911997530652954896712025229667312067783498965090700681268906387858925934234715001915604948471383596714833333804982388440160201389998579137776928403861575045416393362329961908343488449275035289358501494772495411063733140623042439586622920628585211943070824467492099809423058933173920284993785534421690532108645688801037146584968176861470197163747615607304602517720971149441002359265571003176436640903446264000508577470542222744196167783689360088378613432743630304958692377690231099110026368477190613591918864614231218209935921425018734678669053859390421211214434178928370800736037495099097787038648381248833187885051683066390077315925244685707352852171900594621193758892928962636836044252269348910356661847728440981199409654018296517487164687623152535962140324654416303139398669410613473946670152269331871331332509964648696974280677222077191377644868341918061624742639110601946014011008036508145704656653995195295602359222702317253688896469764811891681009370819361485145722164674240958076057089188071968207889249712815935212415578577551533748547354001820638537055016356693515457022917121870305244714840864040598137420735891203055823698742113350238670968556506457083864095797835379545444771314993615770533782991222849077666916407033186596605670915970086215735477245834087568816554416799373806030787251957617473005116377030883331951165643560169732445330097633726177617203043677261544777420365676307778649250185894406501210118108260419638023159093957679944551011779736425257384832316078012153534258132716512698987369189672686347933930103787933938499494585283433980137964001423541798774251339507901187426256730046741555635523946222307270948168875825004238864875392384969143379450200494395767370632098562838098321424485790708521672737894680819302040542354660375923379482312481140007937408294840342555226876940370024801094348364440430013566749225803143353975963334641771516578139266081262737063326520760960689814181525607703867724707920395738335835668994696140559094047676945452110460394749033809079209428035295201207687010058578023723228242522670540758152214012273292984683646015931066205888341294751358763365624127677708783853287184574604758416458938575630480678251170722061516365423076535939779760548519065528173426460393811704661987595732855063826899713102782865431267547413703347943092960471788413974271766462053240063339766213830216366618154357210742565660237316797933928652951283906706118867028804052036885889497440398157589898442777007599577484235365110476500564224886467289630906928966092297484537072938267661415608960560480461797687809550570311280148513132024151633646305886585909439132821559500500210506358050208169764564251969960247848189089613973449223497141591987511016745539224261263330887864201196694975128719656631028257019611329230918370294183877760458085266059330668701969802104961752960855366551708872801074831722893677720541078500316822291211293026304202037348692382070631454895701657827373341291069067950099145309275765535801838493916817092597086951409857525405987920505571095873776903243091167389802514486212136856876346502093936140138537769934553998836713868143830001718194118995006129410798463134529952839376299911970592291645117412008366639667671336921498500892123927106711262389233659501895713378466525640003538267156188242808998432901949395989264322753080966902653358210917430049047001851565042766525599453625477924537475850980700684668000556278222399535281041379217625524177197126563523821174350428941004209596936875135815484146683229705255876097081737343467581288195575815652128269756546937952770183239764164122016887608607253089123072625164156325206026527130203569104030466916046559423286802533395306154154226964441342094749348293401456887708450480997106695365055053598270018056756125869827921797466596506989926427256515963202698790843840874854679045379293731341222886599774897199359211120274531094683693577896077158251487719990692545192935102450398855415630131798910873053452799202070653612211080332832915274343586164088275344564848393169708656624809192610767505013884930040884475916515916982925782067232069414327745539233431603073839262332903517494513023743222402811388307643911565227638040498993425869297679365540108276498810681127690548613714712637241877555631502184119482754125808410974962247878609483816534096234130892471020447179618717972841190289656535745024399382496603595397256461689566565515527128998500531321786358175530845390080820983709194671840977168537577311620246178362932312913242756010077442979300536467982471928440701073062709722202778647890506088737833981125968181668554928368040140137596818835955826607102501989689540298780346892142230509575544666433758638270691845931705712461183403113103180523787081455070595284240473011528423152871278848349130373213084587867451817478663332815933565420635697120970193737656612028340089014112340350335893755815362946780461310112929813203454837876449268946237367207524759785922825418331832214782817226350507744237795749981227510675586807047999047140938794430240754212079143583060330648132119188469618727504148232215786060965863019484604603919781862689004063103667443626078137838935175510184282523990897830853631281650394973639887203097170928704889359691753724085468359578183845401358960985721954384910207442478945966133764605906427552000982833050294532377561123735601031492705320110382758107075789813512922515593697786695569394338435982044278349946392673961767686558770808392482967723931141532258127999192615585761929714979932704567120451304306412877105114817673804491895691756345948503730046068266865942379081153783284723383491699265234119137412406774368036664775213509080320432950413637333553784868532433117459171649377726417074623630286434214301994686943009276606072189527467162412481029369693234870491243658399803724859147895616335759631339139200658980668690090888737302752609783958929493055865724029242068231228778931662041508167598655246351983666818828919839133799564432673968999873250919821503955955439665717369584961432245170379313036390409666091014775505397348753507743205539271011969917960689103794853320222036111065688734902933892619226622866416934369125035177593113544056442013469157907052605148601237719562122823653699768798262648164479706167572973200296129518001921507010718690510785275735136618484891189591124148556562773858651785661414042272239372123689967965831275552163902255958756107892789705176517890426129802761654461392211129044929053221850956466831161083258711549602437077921954721437450740297736752932135892343757958245153389077220392237147663147785309513758407698683967274243143404532890210391186086324702463941692421282228115303615152122852401845692246601115683851172791862200126747888991644340026470933807512433359821659557569762096439248434637667585558793759311618291935758817760748629615928940498269578429068960231001428439566483532142747299990352503800257820592061374237041411072081051526098143078305706558181823401920519840237501048555317044974469688291261272280605172995664712725364485230516382786474381950004740136546553573007880888838039015041024600097968697946934264265450799760129736663231395501308299000084363531828577266145555487443245904838313686130470541072777863711020362788045094732535508051069590573476131254673001559238611462886870549940772685739416037693422519614149885134792105763351041151568561290685743893571241754169942570761449734536328959798988444285860974501135876028285561485356626160911172359059001047796867484519731747274208352304694724094799450346086355249493317340592143761003792400831487500956693705681092155018515710248905058196832496082989307594412136578958726987291123893495239894267275633872148104282925849443237764243615375119598013951957546279002250640013156167665954441145288732582220342389709075468268924936506410767542420463422141730578357548298657645372056409035204912137758572929052545263019479808528086216874679599095705893202059324716787176940996366420786356879593297962906548637080559770710559501337996133624433059120848210387656646259369667985658639366312201660917221288378389969865650542810219419570062744102942132128917237584234996512881931515425265140530381943615606266783808158554789098089444917012100780325281671950961919389010251202474197140390339456575757609196666569119347831456035052795950736744491739515294506572202141350711802397769903550581974693012975957293019044524066644928926689084526974232013126787885249198297267215346775616713169685926368017867049210184012575564578977781723735563285890067213009257894985022626518346470184012738666907649413741753258625551599919011637409822068582097101551692771571833272325849979238625286010554818478494127024736989789488930639642392580722255791556559939351139230887551059296774091700191861889853325930787308452502664962360950193733504887262743381192557447920288938238412044277498885777211987903319911290801612757329841340213362905668695345304650857856849994700560419055471653007947137714064470942273558900511385958566220786591740530746307813630520534514162066024493698788863840550217504926808835406245488596116965289485750338911473628135739008450236490058454321998256346283647833164610638395289360211901773828109951647168585986288250927032061877498895023805179748574468729198366937094187163592429223416620055987910284518220025249598678929705594194206538404737698172673914671679063888040401362841569802641159428328613073862538470310022185988063611226130031807408866134095990665414321473888583133388864744341756159273461983801161615347113376921041846257138848223116859804468902498265591521698629239086617483987186827699050167159381879909577020828209587970132216428274627518670252450637015819240481621123654324082376378062797971239125992982493741148175966808152657561371346150175293958564177235111487244954967303636698954677796220520713420037537574103359823479397574115115164810180422939874146581817591639733319910331046029588416741526719539888379933635512706389135738710469810372304526461942554129440386073501138981509108641305477643807578441065046621848823324711443949150619341623264094117157699433707937261791455320173809727350703203201073051232315377549693834156573807815187579939816865623684209149617398904104725099487693708692778460813593590118209268177167969113199462603691328863244905080711010485598257203342076475406489113782794663120743934168243997150241485588711525428960518138667418893547471114522613980167554139296784962195345223782890851953890049732005069615179065811273914854311036140630501545276309302244690958266428708381557697834637018116168851925942674772533404089651143646681091102017890202721563641541486920371398364873322517895743766365261467712371048558628730255533052625873551055272129032916435790623932952257799490216515555563075329741226500495652697474288414197733729843611454150825022437163545414986628813697598842209242415293424730418542768112426301684902616519615755929834858948768684678488799520315048779275560670471560068117336694895786345506231008201200715103681339705211280152846224353428169889153945233145162248024297298873515953035940776830501972904624665914106082028019133071671462267889429435334200255290526030818009030429637251605563553065290520976891013078014464581114452700406333616892617988897165317666601799278824145247482168063029253233738266929386503341808763658567589419732480301778174756100206172034348418252653930409901520631226763760725862158713376004360248529203278774612303926966842683563433537407578626644703622517068116954499394608701551506824323451284921990982154637782191617685039719104740628223312929968619556102475341274988218618596429271360747995411900041572768138527879566832287520288822581786237603681375748583118779382239744377796565165023505854847255280583843886568481147401016190721306138963997250181725902753305053558340161840169912184390907999188202659322714331920806829350412114320028050997640207926872248719749735944387322820926320780894564426607241738945706375633546670760712444849571716124534168524296007678379511146094022269760505715801006657630649216379558037768435284771376172992892922452024416802743684815850779379071513112196277047147882267935383443469738925543697601318940046832486250049480222758515978827276054521868031082174452509183868259621912208843434493245427726044937475190725756934733588145267691148203397491471685152808295895707400194765874423271983586771415454035726099383751167863207085335191022392280995205079751038495368535819250528832005819114540196731416363598953109846370296492719141184038256360806309919600852883071881017598579379546685507170020218132661158839595701091649990038842431867949769134967736530406177916052369222243646310697285931550497141863016396278401110391831620643016817446184954137883048228596571790636640249761516547780390075882601752040097392240275711863881333563875502237258424843473455863229561461869606128335420640707701158591334335564179772796387408494795530160772610351125005368822078368363235787366788175794576171332072038153104284893248974876909897971185742013996563511019108379079618123489812363955017626377551483933777006147631364080065455831555928434429422695673087400436922611770019548329713582466788388187468893036883265405501055509741449789556071406703943802348677992151770379929591548938298887547036711574683792895760345108970521714343067478862926075648401875514497081625929709719138595465899839102974864253812324030249428690875930043529274209953956442702112752255536097094907439389918857879170496610169721181489412255974197639894382144332607530698090907720564401940826488964983484691194340139652379516096613468644462406025020740799971534058906341937542089999009877573364972023707997971230982373104723432584557875161483985262650939848897477444888183970539920495495291029480259036267240954471668402538148775343725569163962394399068473852470328354712377923773067590995575923840253587918299440169714521172662069542760217891875787134984341509693481936043975879577222193532659712203309516698079336832684541323351468736509661829465503543351807682173594151808413612564675619635176193834917303168430281526342464366023844289401559270736539099549288863819494998243531398136839172634932123067557918718151127042439442648829544780962068235418932735895252674770350110956876744098519795529136842738422080042953986624738075295640455600550588783615232328863093178293717096747189591596703794426988467598711770645893401748589582589835232084652764084452462056473264064873389066902461573893806503322748532420566662548170840860043758176981739381424281730404918268294192864029665063747154312551270077768930630666078388808520762096112054618329718243511961339170312551503058500411894201902153022169655665587992054965222179138518435543251558889303444154831146826229164599621231545761522316427160693767234131496516446089726654402939327902472012016339670622864475902975553225648357051585057674489073099448299588631968706141681693255190769631241670685258267857054676539021905971997168450630871373261936460608255815082213270799319768490853838057431924111344088867155138834457551932880201059942181496508691963622315318774413736164109045612519538545756485002203429884911396084656302386994292059765729540921562531804226219447987641664111896674306606632996557180807575012517921768735585536342978630825260962108583324788579142546137787531508998992677457425139300602732295101263600190815328902832088705403158195306504689209122293335734042570726109772226147573511080341728528927210462065611391344123396035131033272668087258149060193299096061302793860366454683115289088399280039386205127910782386977634755245150429455147081078086847193067313013036064015378275886486699114616159163754867983681914770609224592087157952670336863152834407267431262680700860373539883129546998337637028195286910354186619299694412979626459370938087715776736897877682712767959350249442403099985905716193819073066403979093484410807442897797645141396189397753875886748691434117314146576451436401731677606800159422375672475955179821543228848108627046372057507588835152835028938347731237417965696464713577787032635860160168347447707336560426020225315538726452472058476632629480638013808627472534842397010691478469051636731813509126885365058679072703606961559625478627198695711681900857579505783525966092078553205906729421735835459414782388460740093391059620085796410356363834633102782781532165821053842631937980426007497860733271857235443006322508996109203489221620733240717474946687093309671362881066801677924334835126113182902269568374415861229468174846037855048868355524781180298840941277773921166811752256475969698368287082411958670817590942717796563555162472479110372175450143064400842202912140583663552318761020938598876784648555452634543975128984648535693725181183004714818387232679026180059997350889581791329274042864534107265114100377756693141296981448665824313469856750621187411357918615948724855552254180691994741504599600225456105388072555366670466245887078206495465373642348949854412070229518903512048191161992562641944371769191096252711052787675888369002732010000926445640168618658038729044358462736832683007702987324657272942290478358669733885577959101934903230421052401679950816404967184844283125283743336013726859359489164062457994515540457181464611837931687127905020261327796963390274870098953225399583741994016445217808922127814366894424535846111649508008726136983985378644637860140888844208871307670567824636783466662785419853616498041987503262345835215869274239213690574730790841235632581693269291815275975498585620911422441511539972103855270475764527132251105093600819667909260811772403345353833123939264568504419102591158992159244310083238604964876648967636205328789502892557997190468815720914472788894926340419714570817588008074605243000980922280998048120732704179759184630692481951632569161538898815023317623414525859256587231431937811750454550703083766411635313424310327873483633388711461591372623043690377287983333257272262448987737478734636341771687286051319497501052394333180714607640353205343892032742761001387042623819605499764507603759405663606073608099013832977864653564935269290261340267270163675659435425325963065425844258531535661800373707342544480641995055443078523657884525194826313390182407235520046196305014784994490810610018100720321274044050767604226738987797781571319583320824973959567922926002393718439873063569896417286569214383080971310192386744143835937617523839697920503697746199792123827448337013366736049857109206392214472874138339254294454999869648440221083193294495860546186436163137515334124010635289152541009020027416259465111532490629278689836925036617861825112464246854016566355300433458727127811879996977241199427023476290984697498307329067289487153734146831696226896821707190771717255234718317977287552398427292797390914177478295737809097785300749636786224051535541111159112868415994576588922034970360261650570285194173302013193148055280497765326187382187302026961894761817034123713392658822363974186872819997751771338692474328253967697836528510800245210549721075100235599458472780181081270007170133179149388115930029889439188608749247881329107234626187586892131823045187873886241984619264940488852473886194788068104288244897453833539353425781458460450161760984031491666505622573916633730173421233602255208187727829329058451383548463576266159348679678620240548569748673678855106139287550987218069361006412260640480690810416667404311365420850958566444242177485890958732224119387722155256325159903551723018949606231796453383918498281746132185528536875226570331780291548464116130842172150893752661555843025890375020953398110102223889854999623886295057221233088167215556258252634932793889572331175500507369317293114294083265085377705212033883537375291893822925928688693578260887704704743140265807737414581546778235795894855774160719554350573431920264594560294394963665719269161498059962303661126309009612863949214719732463665458872372724446956455205278927182328476097105772648742733644094661839424318301648239790689540425209406507112556054006094569804169318931921420536762544064849420829056098110220049185254801164904627454906675209842420382267355029096527413902357717109043659710607283992154836841318882505048064813542489649353256832890605983736423814530902307163222070368160334537463001172846562356852507365188825449399147621331007815155885557526202636171356041502011780999682588185387034277731874448216816588200222294685791243952342455211457642167672884685187223105171799430095779519550936286700064579178669076277898750027475757760138663173311533993909450253030276574307954267605254348979803342816551787135086036817425976126214617042287582172967209965939975419769191253023183329032647958364122835617031698226749356305318841314085118509779910276985243617930178321957020189264506572650197699768139668282807035002723500989843809001093241292174860390666871617014384824880062824988166455245573606629555420251579414190300659882033836423419111561041694148222969543563514399438462585036031869319502717218726181797328384239698800977774124993432084374954238622780990815828707059808721382347733524172919429542616767369171831381421603832122054295207832231827213071906255486158582748424998040132020734120764968056852720984298798763889570784031622081508439951944294921454995791850343438510428746141790286590297961946979938477370044016305312083427619095890925974225112410736221217342214051243606020609031818441967009981405690781381125309311034781851855858466673888729397409044410032834867282485496102218535875070483555446468640866827484655861723188179800045577317221745258823005718324149931919806975332080683479526271489639082957217316586215340101383127378378579766279733193886657886029468213551835209116215041714045072415720667109379740693474613355572558153071959069806912072679618247230879009733586062697775195893230421984371654847848513798079000381911935145185422571437220848894666036286295335382962369394464027362612048355776161991294641287191547767378649469203277161002637077935071534280845616589090934531409746278086264237913445397609588460678754623995669717912762631489920097518556118691601876976105957036031982022288495615383466818705022496912839936421577685259711685111460327584994803039608566893704031644093961031414496724379023208151391392445721742712504225841489471988975952781527035640861683614882474295012068824203613498901693144283869117142458367033952105825289453003276580462789114068314926413838780052628864529670091946886330541499789888535148362543931646634118502058579037012611936958839417778114242404372059991058531634261932512337743913555131007995568256973555099180588646203154411380249993110417810423807663436109709228137536810684300708053601723279805917147152680098144448768580537640258255415676579528027522415666394446858376249183773374050952909054422233432815769895147207781572530772763725363621916257501339835892923837033012892028629113164643476374542231451239701061149925523413394268636843798137555681987430958038194007316060274581582535450816736683213241054311261707993089869077090167698790047477007925411901713244002186322723039819390591690568735138744601116897742595490375045378296456884544063588170532350218536738186417773753117698130937277852533506098296420600581589839100074822008048960772723030852293748816562841554163848537331743118098043745805814165352029019627705830011595255379393817925429291495225282451659679869320711777233047533412484581404033879149484425855209802462198187838952782132083655777889212702442570995289415801097673492723614877844648500023613411421432916791795107074955286299102258773987525697033613764245021764187141598054728317015955187747384817711706711413536054771991402805087143155419306417764835249678019355254252785313490866629139697974093705041931060453514846294539545356339334517910755326164386071977789750894147949467313420246878479771708602901745474333188073421933183502295454322670134062377287729868141568033235144133316257828198850547519476178277112639481346542901132771214915896572105769022552695199337675343862241364957534608440359563835879098437613733327415351652170555655826292765936805468908460796562166993045343433696964595366568608775331458090479322887423996449326379078947825738903817883869438957933433627700317387312253838780240448836016343026508522822760673002340002390128177257963971527212571745984314569715808121441110042087175093564842563996554544757491763461894573935843183472107032439078966848071213107319611179141551224718857570524270863283560251965353017768001523023505534232074432257874910715793434195696501696212527979984269463780775392124623220010405447372383214946601839119149463971379652813205222611789375684668084607996170271444123339157123679490764380923749077509561415944698391930421899517732118779321465936486262471321892548199430535119066594872923002948135744181242632215853744367493516279226626030015088821381751666316083880824281840657587403238457473771043806937591587242249316943367396034999479466591638604353722536929086890540552553361926296925957224104408443948316874434491800202913588312946236768671550228156633279921936016235001028437415782338577921864431848703390109483947956042358840039578872095293514027315434324331464842151546418391537690083850147118193003520777089670420171126437835872749861745926058372355901208198605413838046376880662864010483281473317484093315229112179285313831166446403270947102223626293171272361961236833387814320897325462714855098246663701890036155021015992219297970358156656675034375701754519107797879921971471586466716983873813054237202568090385762694610169732551101460231015926941597982527843938857611850728415889508569739243529570516919686959842362737941175346220682277857789082338484487181307456478729598876666138729897431703647451010463076092758449218834514694684475068014646854203240547475843207608858446882682754675118547312547467436261773947924249960565735157425243569400058215952320751223584753807363319468663049379996719381270066398580540119624969194488544804385497951216298986369877877378463694577019466779100235825017125967799105800089089550585182591893512436240212841633912678800092790347686857869435076187411486548024535832234800778075788359478783840868165153501439213387057934839298191269445683702984933900922006654971859684978969456078384049017422368245495542389592948306698358286456620258641368759331032380962674822791427736078476559698798319088257144152321310070376963242776233300030708228984214161945414378617460047453385351987263391501187445443214347908545345173051965608432800035556086868615880957665201325012090510345520154699666799704099294911014932837249367532457980043721890096375517996912069793879701866257170305714529905359984904172723814079665919017753816864190762058542694165326233369231148054052390214594257433685295593137976175310161677332019109140019633711497077928455439435730919086493589637468826059456872397250083008193243327955593177148999399523391495051465339339145022942510473278465154411634024766253200526152821264114452568219012709761709650201256988374764972748706004652752809757671226046703715729825932397713147237514703636394719799983369228353449344823654119586717930167361997890535913760412639040687803166489093090809096598841860566620847025322319566919784923870105175759173692674873811194587573705244766236455712007756501198355491538926777435997629807279479536067834045379261016374417136043738136460942412800593883283851890454075466113269561324044290525751637066199964303642009781368630859017476147043706726153404829643702516769997746084211507126141554892504513302898739769358874826730076033676068017685926486535696894930718110782470368534542099166056712435888398342778387973859682166880555791929305316449239746776310478878650453357926592594306576781066412829786068023469559922827871528554688953922426538869267197776068201984208303170258039400533594289259543616875529006097641443667097918773748168959308397435012184079357579613296918968722011592020103666469128769731856422271262935730999812456277896083643628438093490642143583168306126907584599270981064118387920411649022150215355843320368795175356200014183893396555437693152757722083899680798142321548937557409237533742379295881449869898266330967844218054319900753215164961731125384383140471883933660136038979455763944278054397498504863631327492029093543384587899073886132258286775232044287127990717483611850241867852690733480802459119453106757936886353798034933228100081912948804759427498126951819222044286807837748307123426097513957717109270358400820268473259681984870984466482880326984343387501520472185329959101905535679783703420673605389750011893684870571287804477294990766626278210644504715162948024611906191636218559764768147366994490119473921706055092514793614144383435110916491635995893153486120879657155815359818748138381985040897609297029149851980879595696154619670175352716505195772440302282985101266872198164866777794647836616875712838231513716887916409454369698405961162237000971671830830428416680796080113583635144074717670363763223385692563941798370160403202389669488756906517360223485407430027992272515478299874566862585326734314877207993722936455832474336015303862413083892326748915168491197987892710610928708047291616678801598220958844794512066707575976438569380362061110591386538541160815825854337182707394336835905348167919820336636135398821661484312334393885400945081189243983573009319773349569099030130755596955712506567882585600225388027227369790606883972261997466105278996133523075373623378540946292940449590335417203086873111170781947478127799649227946563545167172955682832129151376599699974625469792564192695015198195205683634794563612294457991970895360320768315411071808298009224058094973156964671549123685698785604451093196761449218943709399553060181005456654123244382290930715919713730493735340008197040689855569070789384071891091426201077713591081294147913561195542195146543334968427408577331516569018880929981902425666494688239057097841114565277079332640633744711495855889615296643868015091824531758395903784717849905214666415016803581347114406914089127784074049120308635433361192988464440172428013107641170690688314294327229969574750438128190571757933849783202002566699797471268065599001156789011364778568493820737123218832640003989908694082020242998003072128532385070486535196464154804694416046323647818728726597273940345037308546956621288731663192464565241786169182708743431549187008233632382694461498449961348687969029789598165331218500220898480177377182487098441574666795317752952523892605611731912540944032249885380908856568441978229511108486093346709066419871505517158243981274999109099824132338050031787095765197189740518580663928867130581873970717208304173547171836834908435220097630490629511697965965775376125017130198828867826098115731315933390668015091478338650003745834846274002595949390456438350378925434355691138575404066008685161444368110766902452760595456977694401153713037213560487711031439849312493299479122711833545686116726447469533437898877627309811183488853427247139547701555318066234793955888657354820087292821850717891572339323968903208656512613857429648507282894520242506045017649764137333259496464345207903697945709145825257428745164741232372611554025174239752456063010734734522764258839615112029870603615441565166694565136151042357973760163884097668874697841617793546063898274920396680002249432092218211707092754218920273372828699474514009845210800581654264244654557649697533509595351483562273874060659879446182894778145204893614515819684527625409799921703943237829534460834386695294934532486206499909008600435772817516414127092067446009725801805924800786134965723056188019894169376146896255857096290400229198034026502161727711582596452346833644786568689791898008690202482473197641165316786742829692790683651646108968972368344788393331611294406076698632841271303709473183654555490072383418218444915642983768913152090653157495891785720893730896480783883279883706409909644188387474774908839551211687869617926602048344242848638024188397353284922224459355812361386396018517063868401447992193315442854794036794741449520307182451119452670590342926963396169677000782477258816586560940436701026097097093820334434860736641343941148056922596426140832522888152559636584342795222733422148288544719164554727049985419206551186288225606112548884596557633531890307015637123822235276897218827243019883997464888739819298697053968439244707009567796750706875429744067060140284404418440530977231093820078460601347194209364086282808511319732263357337418721906746077570476113629464382534438863165539479650797981969130876872147991668294407428329506317752714534967060988400906277136968114332608535891320192524373616085498111094314874583864829437888206899062123494049437568481202733686950941234892551097297131476570438433600420465283152898224292876552253688567095291609649486179809815770530174598885784537981290833324187760564094431636223373997121654971156737435042066066646906732013917116450967559591802637995644690499897306109282542963194695590489871601599946428209745661992109607693480669648077590278790557819283876280277004202482763021043527428841979382379179395214915737105908178899614285937695388786053496312200913796219709843113089894809374941703980882849995838754081148308621049231088021118900011499604276757742234657990399712274463094460266454159524694384628514973130356698717704988347916416459827085730604558410116680310257243236856764243528526178257961332944831555816756297386281602015376587709474621491911660922140159981965102033329890557630251918681984328251436356106167367589420436848124308642099334125337724744354762646958301356283159775169045328752348741617225958140928620383773185581150561099009940191260050826869460797786193737228819419159713588078897409575494516835491656567158537936269794565908105591934761164233079607591365964412342780809863009537194777443270212781504375848474356926099915330414781962638589216451773034993644375252245568635876350188788402335919184175387143240120155568821376059949410879286502251669505377578187441905565366193197238512986042173603565448298432337053526547963816339657167006903098718591166894243271913260157336038563501625701824752985495956800323443771800028832245906349947853952385666176270245940229968561428896531812744807861689969712552004968092521574794419160912937831942778683019733133102353608887465394149422632495917773997935975773986291710870828927037592937685142930300045548903304146196596783393738795812008316727471700387871107229095794998631252216246021237126683137182274790206589754428857290791166935441641010108701709877796665260623130079335265276178305189872538081088305230126249247852164024080767535061230282877705217366329918235749870972084711036830972080416125182463038595605866955172424843931821662252372391129447627744389751196852822026333758745988950132458099547241953588401339991872932909627729601398529074749698082136559892368720694149822439164699845145822566479836933300562990569666758165349825494860836127153813610645214739300955748413663573787912244648449033877526518632900932050114406646103414547787414890343883637444545123175072727476899360266614729688086222084345866260359385028601250847962976579608265959549654344185371689533730509830718411300365160059305863637313360496804415171396792855901843830080421483198794348446038651741867219143313540405462143744675086362310166996982618357892879309373876234826044222780989146279740958753947180521055566371244333196970317976731188898324213605694544335569956047955840915063193004452937384632086909227360665037822556158774894039379988478080066971524930539192529517802803505383598769714039467932297014528218160449706546793931974635939183946610183624448410212411173759131682454425657519980379976560283396719034363388882332463135171235011464518757921314369978342073356662513705637379442189263250483316338726626208365236338824933414806123594104170288332991725080896871423257792095300051765604609571654278507357742792109067841260238214365072159394214272397353409707263818157777087906775102526715482696336247549617334820390533141098710898282418711519430514844056616286440032427815117758146147126313706762729998369208911428775385846585265628628260936515186324561153028750404424549531730346844480159680804708837590339939965404155939810721524391241805832527810026789471107448723814882588934227045149892745206334319162830911870645188803379348624170120006705578165295277770251189572889283459772453889222247823200231286328006184802948564380398704139925986269406606413558596333913105719683919536464259860167584432385380805540123022929407902195731129790309768532979597613600668254708151066822297643084833727557418848344667553299317636106391485700223897998909740381989898199560028719519751828164293999806669308451632678655748274816396728896836778983090797150750144493121682166294077028750155000027776596381330615476778390619399397105852260238777082887477699128945293611032372389900419872693274426571412531915482902654407184507459808169699784683758030947366934594491481286891397845380398638489143829001389962183671985975438595067771829804515783988015201109552279347844095480665408253284764080020931232652050241306628839061488399280375484808656588711093378191389285806510958028598737210447467154096594713499238640388271437896347652444937082194888503456086529907183999528183861480241452777378594746309588391226186386823030289318813484119246040767715642658542229405719686834968934722711934729771860519025553648283689025420566900576038621636362405401377400851644944461631385182178925521992065863977347658471861132523801415659493978392088586246885156330404461324464519682778782976643335328317574933870622475331895608349915226849817192723214492232170462528601389995745534547882959777191611057620648403119936315682266131010700180293040146347289198399741992940693258286608600264356302098498529511304455520082554771054258355806588366360587614924547550521277346127539472147397734483871504304390840782791758439230283505434996045639749250103974563307929603985659124639658831225560952574866008069011971819075415730770351121223412765293423140979910761672310133688110900375014151576147692115687396979665172188790626346537720921284264450960077654380482686230026233024912839901910345066550280161961981815326075584404301848713576739136200280074496265846812719449262833954229456915199359587478017358159032218269956680099268843217619386799103339229202054997245917183579138562073799891146769777696631905796865686033173873641254998736871509128709477243678485223848598015089241816638235203504339954404695982459286308357598519542176277059641860451170750996198879269747973037423656483642305306837136756513462296517396639345204691524400583498774387333088665361025214576441412788104150693941342312266088810553386210996261976522114992500010544605026359151401323306214839100820980357983548570900851494814117807444839312019780027795843859749671610555911246923143511837187891690990070748467195322534220712521964973960259651460462046151768548084750491401579392582286585047123839710253169416395701558516029531214727145375147336385350903843633697344410173597117328739965469731297907894407965023956060055797564113224755160758257357871345453636875384592287641432878056386613067045880956124244616897794554508697457010748229797381417401098577581131398342546265145522023645124871153454430175324237407653453205335216989748385475376400556291456949749769135673969370268424730546672647188414995497421181324978768009337051630811198699134638566906535018469296292875509074046376749050420217811470172377499219718487720891013641475848149415967623460409364375135460516643301910700829272580309955204573617080001991490040091318407834777662427129826269164831919712170157744803307187812466673888350435939387147849891547730691680854305994709444768296490903733578707113557120509415377193563862614444647316210440605329565903221573999334055874526787241069316346020809556335314640569519482063813392971364268373376441028595435380933196037511481269694452180116292563056921227930418203676910280427052072195474116497079362857351968853884364406250750516588180494543116439337429239934941486684666928029850026114819322705408064154033918012709192411943275996688170628833283228960325877543786134628848322374855668516212406385596761169410536482855135279663596643332461418701661461916993125453843595233391327000938097890607562480464650922004274507240787686227450030396043159573622486891133174247696310545902510928911337508863262500323680024447895648375708378511672413896134333029243302069293350747696210675420322577963741958966031148074764789618776417654244471999550605424442926557353167725069908744416099198249625479015815894619003688320009749588933922879898592060989621800473852305016567236266284244886666841619905961607480848555550122856687690509322319715559193187271543867242813883839814282402044594541406918614507499374284538238904152036344858200453624175657697689520300104136474332669319891398847828019527862533525881148367653406149573752298171324047890512674115008997096168847891406175223124959086672708012322989276483292315201227334891409416638846291082870962003962285706582949706997108163878583558197818528104136938693700492911462027100769062714805046987245313797721075107877806904780733508696637354120960660013083839505982537640391518799851196743704837921694749441291286229411634940853163927787361255064586943099157323748862353481173112134806035320068171783762207984970007171481919543877372683046240192355065300574196197496095127930304123297493203150202616666295960533112680691942270917580660996293777417353351440614342855013507031034990383169654224761341197006743980684502004302776917327918360667869352538590650929740344796780572894053855218347888504610958593009556986980517088266707824631786359512440013404608300257267956916202239882731487298404120247593626414953169654675756145963811041230399031188157121907602084052882557591183500875051073683825260251477296007920215507341006275068258035407930711671747573465603661402647780131607136008861791351484810309111426552104198677524365036171674123757899227657322713960149061760926528089270434487736398624259171340928983002455897665634424478846678674946751647404531616778610033852033239694583708908236768881711542673697442356568506530067252541742439856563988149368583207307522594103383793619868743517788519894480423680191810239674013012523731658799434055259218646408568900358454798116389705851032295104215360634451332320368187203960766349453334605191016286495704445734686320354210286635188793887965102695210191975872330925356359100924939424691850065634064259904392839012570050276935204838682973883733470078754662929474189779294097167536633145180510840594061721435406907545263939572953977634908393895989094560249972632364860411728268304153793630559212729930308783007337250369400597371378386436852979667206510079125276627910130757743393237076870931742570639755770960975572171421708409828054475243097434656812837022062647937941134774857235445906968235348263064275328017403924850663094721348591193108479886588361616817196774186338301610307349191466173805050547218738209457625694876889070587384545065749389251599861509861158787664259699951871242274554612405237340163982071703968404278780540697938339859783283273203486872595438209308813779842347147695260271269995785125978358327218670768399607499672174433080250937778528283289062478347402832921576069243072947372546045901849697542607523293629332938259465189118013908892661673367975944555237567925892388285663280692789377557014254382854019316107937876993283132043618771338003656275452423309516818256051837636282822684785100988193475063366730541443673067973601946859698221704867030827214671220971869805100796743484802279078392045562528986611982434397662721708510082127563112741822157385107906268864939187252690855362147898060956081320118116927889204183162736373399470279918310533331381721971683940139811377954754258277020784272510431692347901639082005739981077583052564880702451463899545904185719831784673790350240607011367287283707248786291617085149930096942360370528705451332003378022567167222154777639248675560614442806320266749821150568529970055655676446159336137629679551255321583647118720305191507754650567703651879794623498252062973549974619623386145790052612024152815281542904122899618603065716250133757959113211524512294311125173807011609257828974280834314971914808191015991390005365400559256810708340920895080131987342311155656387072553821852167220614798439519037250866567090079565706310745429111573882776603565873615826657128765485738767465440686111473755993621848894613507433814609547868195137946076435951702735691595630483872220932257536035265656021030157589674286739209159166496425578300162981698056577850293844685486291746769075939929459303120844971144598104506392898351313887235757814062964282837113327270812066557425626099664035687406442218748595736690164886229451716562408173636682851730387317930399224803317197805498992882815727308130198316807487319946370874059581152931965041087389053096323905267281349452616560617522341111391284332577857667771296751474322670501289217942469468721638505573909030931951624282660546949972030663177458583617971068059317476962939367517207632536058067969292450282827940042304739086574362129191391686782897884746264078919151260361070857555364346333435316601024491729096045270430200546122140295932821847439804450696922618170864667338640015186763443903001284590788443996203345159423660339066987378811341871704178050574358122259559270914855992716648043730160581507486350905210296770960507114444464175004584098232608596176243253075659995102092822280352434564659260032841059972204118713251626180472500250432688988683001589130611283492596862182637800843393199594843150445600729199816656409706479924419339349959340785829149699326196804604951892604512062612081222823250606728385505206151966294279328759895440835935275626952174825613053433178390422070630479845287685060325653916481710716026706334381127426281118389849003862629351570832605576117855252493523196734475597275469687426501729781168508340289018127137403254509557498980082155146163857815210242811598526424522752123660408114089416339848478629885553376360937013180971031010990047599593842552473993172623794226732673896330817764383890984794890591706422948048914904194090587094526626626361880832291731444230735221341234818233866822414340078446118468224473054322800335429264751346565120947516378652384684911554864038248858285026943107686999424002232501918277769906845288487318855751980955872810640709953775581193419006620553963872794090637924130721297981945217770996587665756498269906325083875020099736308216481878097685057508160712867859008319903503698034553592084889863688505192576756904868665549322144938981208188289135498312336259707762161697341289685070630329866627939342222684602266561549702155598820661711884352578719281481140105989400661835077772532424955704902556370115240260499018846690606216033573117847159054216987506453568668381380157777194635592805966122519225336623883890254067050615160499460251187099348114394916071616726068880494532436101432158868230773720098351423502329621225682597562540095987920745148025527369983040479162595474211296029182759065699777197442142345731650523449426834939281459891741628549852567767615690016937080191727274032297712303435358053107225005328450198253635979848515112166391071998417785847314121477377876923306538217258181315080183372419641781196413518788553612705011837797812773124778845586220083005785700647464318403748570750838790867114573864265306092023003505636781812678498758731211860542755814820670370545272318392079923383272163309736773423641272722529315849873017419861958850430389725043641856144238216050728609672889864366714512286186409569148014887470035150841112943620694773385982845011215166883121142763553143570083271330552483677655444575682626963348178710094963958775385249593133968670234098929162520944423222622266862005158541122972034873338127598396047204304628646703481070500149836155040180787056463664735758652671971431707313692710147230681583526008378796254904998288460155370057584541707305977489295502114531939904838548589035262341237896299224509257112149785234132868390185179596699975561332994453950362637697115516492688386358458561486556404574439175434089770209025181754560500404445890437126632717371093619387183143011641544661947394651585771067475817693182468046719974475225825256681972736900632116157050833814277779702546495429389229602762658586187817862126498567282221181059015274423600221055979033386017437723709764803201441638607118883974441125268653533023148115741274820887376077370284004762385406331607883682026926928495073888768723222981265810909911652924911196840938624261280807054830866058580941639890928807682461036501086096440108797031555172281804590884065635972779534896590074002738944341927902870171381978569327362526160258512874014082316353899958973547493721808870007234902610312932256219529533422439405699975134737732509667309177428792380999849434085927208516124675144139118007446335355644373226327274015016926133143178402413945143874223375837754728822527273742171101540093321130774054503405724836274586926743271352338730517134706096426904025040358942045602072264471910606783869880669864585432256529413017097544492591642704179537314705144617564073549362320377212324688124993128977014361875114821792508125957762092440673854147143651559578555219700681272363249224942048900934602696226529784845151348009923246160923703675363152795836320182299528569847779215384830612423245170570015046743678917578835896477352824134061224322371272284662853220345428748038204566744637965525441522781373423316493294536890360324215929734042764157741414293358548951608077670906387306057097936301653585769502609331348406813102585658461471264794039437151851369602589077005714032267203361765812257452910420642534087929968015811407539782087699940910937335898259444902027987648362326125644720429391125848371808591823237026793760666700365818882018958235048450975254200508891731739178414031049454090647704638348394945866535561888146650385682985261469444514953033171629370426410588356665598848788479180162865490024244723277683101059376695970377689746454954412479845501164499649862194324427466135770321740045245056646753817728191731968475895494748945625950586987965563845606729858671393310390603970321341650407888214979230382531854301173085339332527598047217804725627188535727523762724088734055455746385147791423309253322688649811567388014461376443295421516509487515993661321390947448775122173948280703627488014882866238963259660215282264989447588286399252725808557452451127824433631571595681569112699567751421518163763627796043511052000898950920914931953205202801772698105269736651513817744864816680682687725405335399575209891273734159241384527605995247961379269112159077234363618855693401454372611719774441793790187891445887338362579626968137922146127403110027574402895817727163586388841027691907030306385371948125883563588848889793745047144638705677981517359495954865368993349616814594760926899448160048397847169978656867472669626068739396229942853909133392030800679470900137205697546139716161865925358573251792341573149949582725426695310831561768191569362039424435942392023619545468340801361086470554543018853518368920222862318209396716817031527388721300163037806771617454499500541727036686577170429795966894030013369275535506777946038802261676257119368365660126817558530979910220281806853787771232235240395217646456225824410525121417822236485958880598675249159080445227278801288147777431300461996057443723654126185918455168271395167780184077511075896073916407921791460405868158521759371485525362388436342793359808485240093666640931277232116416308283940816775193117964300958860062932989216971663292785965754399873785171587359488179473434958105386610915631896032494449190845070155399051204975894028434172753231553542935784301788531114536296006443731928600317805723362633370021766972207751178585666541422254843700304430759703184461650456238373389240788469652385322031263577967487360747316198491963245824858423880496460022719389305619625452771478176749366742950669355863507346285363174756274094648126512289884112468890227225369719836621165248036784742025269369719101563939838054450087444404285562965571215677824300060444087419362541645859159712356971638850957326466906112756176323062854326944988831796289131994158576618634304995908037507374565045755805286250094718732681470558569409122231570480680653597720498169410971739529983444115225060210479436690833292119125698262020719206003602423168433188160059068176447155431977623707585873761776378906006623646049371426492836635501258091024808315036581734574694010342613614450691793967811319946005058561626843395639232183914951701964814842897290465731726590730992230890412248521188983190416743183009937459434256081044598231222626890059865355669993785458624389998937540374785176855505204849925570001228187958945805827857057985609719756118544264554440839017897751503328930146812446289076116513849759167546976040604160117169162204928415843468403216202023631028057971728824900267551766837274237621329023297347430017524955251865989714887844699339059660115462494369205072229344511121679707029902380248248394790684467757761803831635589140511398807302453296639639312200690905070993352491450119391228281070160684568714829128629590034055588535901877121472876512551111941239864588000267942558019529138682951785979982813206768248362832702891447618449632463843451443511596459348429207317509756070493727728189442041006155116823686937829178582212670084652590822985445577577550792679051275414047001009366390467881355305889468741508643588715795298721761228717251564874757635734392013339468545491383596946072953624419873594818843819943485895536871739130720625849129614249906272403525907500258983583676736093113519185357052661463680401941385998528827536238093125134195559467506512814959671494004986240294737143945151681615370792222008478954191545435040088091584054890370074865427339802049797112254693104984279475650897619329913640723055792159031890248773154075564506589458469396099902172191507850728633564284391021475020203968241559167494253731345235895647331583043668218354920570487544885909533165431693689481197536462457157147949752983110598798963825511018284529549715146695112135290427479564401304693169575731674172764902614120603729671640779793810089971341188921284796347481400358526426875649306380006483738993615397019697591394110298250117278301026642698069382010257520906789137207008695102433399591365410264225550417059827899232577582357823848521184382870980896502172158271341586723448480376401281439193498009372967674524677823627276880035975992125648589438906095687843723550154156453891449741395616003082319654890853364996089840262752885419398040721126374070808758777492110581449329281476671336219223634003603015189162059514019329481295635941530144624233033423551914043226649794981005026365299989153738444274107078369730541085473044128789185407948036473972100770593508889169341756229752321228950111586858277567120876029922372167623597220350718216579415100949492090450220359611426512817051955956501655468897227958960215708286914813550859636687448065067313430163724416023773560105811257738419762945654701911007697414593621019751538371163548186518909201316947927930774792384052035230195599265759352070687163659599154869353702812102412023575181153149913390898012098122886433839489267997403868497377129034998419761311111757338346804921631807421335801845335814986861321720839320313240325839275222158111956002968514181526163313147288964911625465805897391248887140150835633605297460426993247103379866548602964135781846625262574022119554062696628075575171429825507019003270640689003515293778115403953014030399489563837484778923177019117336243239895675421370545817970526756051364053858149525971825008713459010340969556249341658721756460813165737813773332749768597018957300757321096333677196271520437552737236882755947737690408225053800537408226467366637634536760667360273727555064738759832888558490650169923097801002568466280487041488181579722791076367718064232595985201475314317766539551152972946915849479582714234903006119270435527690877409665451771261970470006679826053496060895809396185848631698057612419556786818513598301419862155521812114580596791817198650749300139256486027565956287169401497959774877408353581774960838246335230185224104844068573721919507680853354640773242193610197697834055912227512692910007416380373693460584293707781113302893583376477484220464781814921527099509008811900040003617913199390669204895159057765454875886665920489233627201788216015472392967527276824934997706829636223188700383348369257290309842795210769270640265214033372764560979899443454250009990034102274471302827102270069729947851556897180524340721948946291172620563852859193400297362293346066067789935216991393912905844539666715978109480391096813983818484985128325329452504936962599957884767762955041153637790745325097891254699096389370347291603512747659065516365990568126405216985797753940210493078365821930522044958715624579392605927413247645828351453675720081832138474065025755245876313878435001417908072621276199507828891717000698273726334528874765681343748259616278625562955350309433817672637041571412249972530977792004935650925411286119198638357677170176500231355420061882938528282078116103709456499294336634242001546316807894063075709133458899826802925118933298131338891029347445476174590448524254359990366039732127157205547489710072323561335586605689849604293400670759295386385935260294581529507511070389133256495149606377334551327532545060563779200569539478334850733982064898477539131408220563411301997050305483371191127982169983010660148962022033799417059368604339272238232477241747244631224141230053873045972725252441695921236816658718650482141803839689545850973040169339109675937014303254275403998039471884742391185035415187848110909351753140606766780187291565566748922396323821367685667042259252573606553687587503690507854814036668080163208783047642697725956467119444840546538536944984627358493130079881118024262111637334316570468871598125244676920431803605935322646340361301331606713995009683100481748084113704370183799321700940867306432654039417518354071714404725424582333979620641388350076103900217539458563597806119441422619693552287665863856719270928216564506486103085630450118238103198837982845935644486436276434393455109484595044461298393661765911382976195012427030843875495509694809274496454507891197074708622732882575953871636843635922450295303342331977617057528099598516511386222447234790785071186225637062593230455550996997635563994349994400734123334957746972482749899250723838795737570631040835427555279350113927762966491667914622081440359097608965404108281768058351198027271565920617939846140424253230560671658362419921588012889077850404885919441150919680073488020415874865353867265248541928644877310620782584399807921073907247181289500964127440675668227861264661788121589293531114458357116827780992564099739238058797464558387835934630135933278061735788202149718933456151881129386153906708910866377262914715096824656239053653934097575725896626113758936986613793025817927534820983992059764785924761162101367789617164021094152291341338850360488502597933230671594706330698028948158112480456710011780992382842917814935698446769525366638509321206345660446676054542316736598628409472198568467056614063642309814757542421321787131126946159016594305637369140917868282389383411191300982349651385848533344793216352771555769050621104554355556556011172845266965626775960589788263122504085966874844419323066190904976938401893812410477144782096281441896725964390911502458881676254477916731541852261876844432679226207830681879805321829903510392823235973672305603883421483187939883594211238511879554506628771005477786144311548748342125530413863614759357650288752206117330215571489162857585509689985273718980458638397166437350771123927402213109499565607484302273642214088548902742266535127763256486639897707203974003858802879395714229358199905045271864551305117726927612832199749947411526296563665551961917813248048404944637821081343237901847979474785355034266343245661359661689918653989255288800030749114310822600135975430037529947199832765793443170742021022535440329639526278596660175152329780608840470573070925952008545541911093016299386836094348172991650662510316496364813490275015874421555747951483064641507135397596381668810866164464263298964596025921880347547974129562257619873304632490226141897920570536270770233251412014306736472873297043630448836476964052366721412152764381999233135784260271736408013657256732290702277000813607305644564279669341953952352573224496369824796165728551572342809739476192965428420194551664277833366848219585941333590139008101016825749229873812992552113006001323045174823000673655360634308557481367359985047789494424985113734698818920749173627274678110317419446811144286393136742879247596707358334383070274793953860172336883482852932406830751720987792252960479597515558671621599280494403524885312412821759870968320728647199794685991721554904768678326591311837310657389578048383613741587527742477877798238629671979150990915748485109169477618581931563733567966418139552696713167046010168375043415745731721192986312928053427590997689962830436597826983494563083183407587041840680249157158658337213111238411543368427404932166618337234937208053369580691862752183174451666175597534316599214048728662026000168693313640772527241428080795784208629594891977189156785496236601522257684674668722028771792074210045058457328711631903415487041088379608164685537562514545843520002202347445603228010672772922028402013084024171766319554756327947983487674279238184852304234011359800544138245741924963627944585462052001143320130162546871935077852650597368113263052851901453428420686402243425565178365504205048146005356174281447144205021822017146281276381963774414159013408319571519795523359224072842458024749629843606173439584984663928438642129751655353161595165973108033889765615286465775657945581878524742921011683637455434538938817490481679219952921905649848977699002473216571414581771858588652923503581894839219611103293904465200089884774342081399357655187737411315650645817755390370462375619294966450593204459010769531246153543658867098465209439282633589775433426566427659683500401871304933049393874214480412661826737749501160998608832347613773433332022722432052005845010377126179770098682514088420256395945995390592938495377721564941619393775169413001431938147411304803186601480153429348249306274936984106137883930061338437379115828501479229684601822820993949760614173163468608879327278326855396686757355587581197817577556125940812170929234699113215654686685485447470714156827921486599021166350884589606377696949090015190925368356022906231682426145553133626506687233500946704816411528836862241643134956328865054574065266302191387720360689613205965600331803223633244256123074615368043372489306204041127577307145237092237309517063537421658323139514389213814455613571202930745738307446452680037624052895697054944145179734081232323761447985491592339678285231371241054291655499905395482030184870089528180770371309928897884734284090668074867114975770104525144764267885401008060275192004101691749885766715307472297430893810377165751549833012209787487861507852854624858778748450751492647430214456564856034655040042388565382131578986747001201637206903597394411606609229841248649309336225766002657522462822020470570020143731157042899472733481475608380554816220830831760737765530817556718647934411072174241066077168056168776106299028248740930964808407902394895897851449937897977276424723550376980565583365458238637493244510346850247081707118986626420225075250990346683646754671467814298117018225219874516356515149984309325950181913599145781403846093393575112100820846892834164845948556760889342806837447310630332571305875307657132181889539354269585930161533995932111425050610187691119519660493822472320695108752212075416134018863632547687447809526785067157377804797933475827176140583206952893978369615326979269518169579652343796411614905303044317065813620390173469930471919943426535253394089319570904147309235497462681925762876392671445013467397582942088073716080632542753244916481599500481777877233287597243398780485325869650723521805533692601125544887685143660456919934639116452493784360175572856312737533272317500457740345812565984803895128310599099435127013236117970729375804786660507686659650416689192743206940927304380577466667237779923922015709229329237665494595353520472590704834756435302553718208918433491503797372716083371004477087279039370629022094006030601631954541265806508152581795024295904606124448148108955654596401776905012781233357909269789167705126094050258067005122489658845546747372745124473830994465179387606764631925638191012763408801137857600693715586737088119440033993967456030879423786830608554169413438321708172821013539038211136500806751723962823677559452807110272057701948285063526516519101586386894941513889823877563050437469956086048721939921291504347119222658456436472479960715727659103837492354213209567131112589409576314259112382018016177441259390672083731278411720370567396918591876560031230778594004665764894969243798048614958179305139851844447240780407625020751096944286368928726777681697036861871578083852169275498499966386744286633149704667816180735394367513398603506903025919156484806063022358860412289640972561582471931218541820782560467073561456870381452336986569292483669236342753542677272953921596873342158988355482091286139898017177065098771779878658423705968725105942055442401773627120344837777915039574694704527125258284943483299962461353103684507789605640346376135465651841423631357552757517231050943941165833265394193616053009011288642227230351595319138573146800638772413326588666930530358685850041554012008976729904536483733163813531362146747413580684857019274472191130191453461431971506244267046968406634914870631952938437418566417445799057849097879616716719708035897753065856553978597763867011784430101192987061047832995994913248614332112118399123374466501115997013924520349932163841123440991359426702537786241087074636375194015761228668112766698035415237579853266563221429880831887523471322135755029748892601103458630332195321206846736408161091869139188688807648358965540805674641181783207431736206227605748620953127041226239451359542402727206679895834526717256384020416835848128484009251143411370177132944959064932331600730839039125273640878119415780822412368445489524471048283683556971467233210198203055418412768774110658326758940660605192780559003501243152485367440733440014957166585170162052196582247117187152060701655941858408690703825655376364265588614649946064084346639234479884236140592433054895306579466317481253005853722474090096720145397033726968520297645284409255897961762868029749750148107441840614401961811383090006263054770270270447774621262659421035426271265133554872175648991046320220108840998906453741040967125045279503761500622008282402693924210162251560278235698353226610501632217480846776803671986241420107213352485632470547554763373585685714296113853548117151390088476532475085324461763090739086108381722122743054146810962268741876410571178736274806102871964187956531971425638388398760619856242911754798017747353960384810569020085477688219067307391027863946545773069729452786833951148484964106693008665562103295026471189299272256257045573947594536751945990327795883875261795848119473774988807292738439050310730651277100494786982845047239495929751621815820996594506372747052680159578871022511845658027661899053217572110625267352908583407649324905057867112197438363201008900147791203904112476562609842336725064382924982252430670753441394927126528534179880577874162251632676551260018366931497251500707226427390272749328151836752918863501093021748591398807696983810280227305311420859333546605721483215127720552999793358369891412583300135278477449575834440539667458670468006750592921386881351927044072902562620480297702257649179287981787561624303261437815229602560998989947003912972382842578843090780255917738816593334579494623571525121041326407506216884447362887242870900793322661332220952713377963750512209997197280253411387609757750765619796786275434058787695329202184605182284405364857138074806299816092198095362837889853077120109869869043384663195653382529309114680624429886566391111574357555041720082768118663259002065678954818621423300461845732614576941176743248525257342156954470138552785222370044348783877553990972500938938944844235449403573737512618261488927486733977925001744412262976139355597354350489018838236650922483633917787808281074375194353593545813181568968804776706603040187142702337582522796847011254796618102333126973576387796352913311546190432337087023721201507673047621005036296342617862541040952762754575841383054292271532696060000537284063137481350327239430559816391487361378552161159176063279800653511667124629695678861418303271338502985895339231566131855633483586496824571530379671907478383426134001963606328718030205934039140178856269712000046857221594928349315081485720310766057512157008925360475304616001303582335010909767652620669957952578191043547415159586171501693418404712983895194842720097919516247987023925112157811809951956975008392228579391876127105704937511938382536546884821261579684135393648927315262002645645741006253030661133001388172508262559893393369785446204313168389895201182040386088659709477438134314156011105750642623774675052870010222678729499578681943297178906668838193431987282284050360237969962926082705706822211772378360111998130206530230408473222791229951242852821923809828246157631729746166685955752787764281329591013321094705926212527605494849835452135478940579773704287213148898710471849878708101801390289737839011864283494222081744454165273431702942030784119087846958273663932202956549148356797012321279246760274730695230897723540910726054736922768979852179849395342375853659566197365601213334230310492375645769371373546621464566169148653460035289924309157440729435930119211597147803237856158493080836698459756807755579276132727694471101024442146747235658662387660845851835163010018601093756499285158947145229637724255912379860966317172812584798417055082045680012902827046536664593170764890557436754512404443638179996339277473242619761558368113470625169975355285625948875104207077685447025353278586386982065468642051783181334533987499099646465683645260571876852988919128574238275104461883325832452717170301840883261883206695798452234697402239317767948332226058683025179696504235580802294106637198171638645781131994888016858984569644967957824817245658237039321816431360985021085001985336560515738685169393297907039588826820107363156587270507679020385374268949744540901849627201110490868149709047174767256264181743972448983663956395750988173382368883193873143937596487744695287010478679221469065256845351273317255723819136147141518993219218012095493715710687935849525509080485331928307905189858341796282238501817237868983883052814284481755725484890080604404201953492842997123718447985237095220111108509332078336734310503184547816350423229509413582499632993315726496320891808062297109450021834118119182995778273715889831369901693670727930098391831804792434959164580501858623216780408871041968832965013152609582285094041924137629715595430008023513153347696212338696303571040862945908037964611233191035149181518235261947264472758138062972394730037706302582520153672069130752373715943191784285851293056254451039585266875666719389334510648379590124956609549824313430743950811598383505262962895266808550641443271223089859792489365495677746487930913832456783297782120693198764040978725763783182724489605433347060362715612199312412480274433487216775153098974371994993257122955065865624391956876297624488219277342993601871201097335652240882412207529280416992534784333105457650053915529513667150668632525449199011434644348692179025285826568595982852845602829351530178902592017186246755153662430767935720901362220325125828845112802514224751653255216615682208961221591879906986148496689643933560236839030230499165684629114932378274360759150180247520912299482271297289910050057479293017151862495224545202610489705811419145898806364457015434290702286461341859917985625335220653329434973447195044315256700525724840913747659013415228465029270813920501732694557256486540206819666913008799400188843094364352109834588444486652058083934723535821006446936603186325758261501874915640224907512835491069621058707771541409377104589501112372607496293808266515900824592385711514466949078962402395826934990181799630594163680859909255654892340655467978895177113902930227328059217974772881232732901032806931890454399565387025405123215512205880931593585472959035524036209479919563851294518919425647653608269946677327417745516704645358008620710512020488069003166019420127154635996820347376618766132927023421498659272400771648027200421894977362471687739673833681668395064977350906837307067727164474162545083979029759514028378392249991057904511777330398412753524771411602331401140723388492914220884366233780667651851975081243662553439541593235705300580812152633720208295375766429174818659109926708277816808099344771452811592984642642134361525794173937065267094277893576183286165067494468803051752081577786558664182664122870314678511344929812488593463701848314166185850687390906599407060817800865443943354333804894397787914745350307593226181714895359671315016458139086810780348714567514916414488313349085252439153145785779364425048843832349962297821954401954311365374949426522987252116413235872513556005083031499896121771167248040275304451605579031739158571028600801749905609085022197416521694188775616475888549262946057207922916490755852462063270461467897960542219749569523287622884874162634941565180149015842233761748999063867427578742809355248655736367702230406459594388511734741925934157303644821280034697426348897343491789856094431881623090943299631314068158370734348772184439012350778924464417541792153109685718870839452102867423071603923183591643661828442408702791719812491382309534546772418084010691634603601241879403734790492840931855839363403468843344735613950002142415159909713056241082026684244341821033788342779390861059923996986060923897729440905471526104580019450588078271833583912026934371143034331626445355918614772775797637934442639310036548735162014434436226497757807676210858655424929223260338685953960842846140617098462847521399862538002247701930380589089784104119680331239646848336915624259662352494867144058425952195240005778233434815175740642590624619619305198290858309249030824590120414741730289256545272719927675333340246109917524085775914164340818554377528739673543292680322620862982232020942457119571045701819982033633065372973319953462180462420912042141158164599056848589003662732211329220617248878789623309414693432795328005332465667335148831745621273732190773358182228798359470706139762317703958467852090685055557218781937883059008621538947262809768521129765882169257066886943207341824868569700398849916887267947609210819030622722888086089761208033345147658176585456588881544512423747075755956323330207340339475921264493013818726763308765370529130824505787570705683432051868481929571678662025135650410869122219251221555941384014196335226615839017850609024048050754096458935930763526243504706512861656370515448249880961219027928394347190418621551769371492067832116416839210813737917533580161876296912906495862309142148285670141833852972221753102603228006685133782416366255803803724585435167709329964140061449808807840047478978503236010764400404801278946416613646004599086906804687703057081300871453937944227551816923130983862981306407546914577782933706549349075960650413701405687019519912517140187720136274428076439063607901706818626590577080648643976232041091340439139093226644814985674067838594227898122499875264469830628601054742241957291075289472911645479776046108100516736852910518020755500660825076923793808287460421985381995409912688219002216199473170278895011918749480782546419336620273521370852674824385642705568644615450779657598305830436757885185270441216107613754504794689047205302866625093643905447710807889662020577938229927662300324512504990802858143642792650679120222251399539154027049313929883492610863548568872225151464881087817393167130287104034069041746677517692421901376574251614769136368422574204426493488286655305406457387112190211151065052235956760612332780572147013409240166532535246914157952763371882617007395556283043521920540421165212979379489686003953919522024389144612305820290742724399327189473037517144856610116720747439134117936811122323132104685153248350119276885274611817467199083118475933814996753241730316505290524407730717014158208355132497954168032512318777393128142505886326971806522102022706374416356062445660693078512018669080190997154945070625392138311053155657090190077019172473960255787271848985258896827451480905378572404976332414061021580996560306398234644552970781126697642187595570590012897261078549477344789022491121365938676860096582203762392924349861386526499456521809319834264611956748027974354741936426576010217189462412575525997753444704133855561797138940793489222301561828685785148745624541080933364382679411598085757734650898296420873648067033695110317161935636325102604516410385843738522481052953237967150509911756372030873767638151215042548293346914919244225965491940173478375450875174756680087680987675672955937696987479767508705994451535867138962373582724986725635819692568903396707378088786086836084958697403124143045355221838624064883388123979483655292932397289749839335402749931050460812723742529025115773795589854061470166833005048519208736976474213147155738265951693477516417538173282007801767777029464221532070264251306491693407910908838766942727694426576230338077231636029978224084256072752329376500937362036408160099943185699801208212248075570891203944606572284478500265984219097097454659184112047760778428208260746308054501489710032643712681569244612026781879719127993017732321789861035374058972199068269250848626926886815578585514100208090365257351327945338097190134799930573249368176814042678572754408998791003075785597403520765436506399216529928310607833230477819728002826380392231261260831611516387295882596520744470862489486713140232491196166461566250151340067708187225997940674205530262897248141067135589702976541154571382707237807141815379862754282442387820537185061245499229883400724704313931528991016710191979994702245780105976449409212172246897003439742707399996748257741399945537724030058632900085522414093742631575646342237660346269978032134401063041460173281628374579201060113590974976981323125264288863059483941021888454936384935998342355665042754219074724232261423371043297212467261259695343009724257414644264585651358683517859710128494076523156841109965961048563077475796779419597840041891861718616845317456485898831072778247920280382856862116155225693535307226112434286338158143156857368347974053074376286626567335969586630285669160946394392952503708791073531957499138996365354621620581783987125021483100943952280311475944145748787719770452371794483283067840329714763882336613096268878837447134460087688305380795126008868725847522961589015725756572159803958641659972669507699186251849436280748636417610234790318010274568405661060480140096326414366938442580147052366218171319730232566581790119596808601470541148418288048285236646429331972377766822000453318100247644168452005781935289079306099596700177123663381647341380224632162270494530713792047676804769969320120554592084218901918934390857949773173757281213381845123155993791470054210706074150968869319499924752903242891989807911279624335028211090218731295694090395750290596789097680158250514698855090306424173161418646529774018725305958615467199987343437341760014384641464472522695817930595367297203423927422574956021378457534582574439680618624208481870165979734837609757196655914846895860794856146055755384340894793472185914388554471770430896590563294207242508691414357898225532289479983580148767871524890104025478484169663109933358882333396806099651420508506256948240951534862511271396664243761566486472733433373895267983138321629853098582381435552567298085588045194405293050766585504540271002458829752059538081823974542608243927183448388264118486337603489806745783162498973773792707703729280847336015326861151724526730676709601815156493409255393014281797782619654482850470385984925518201209373775101842237389458160037017808005804700234776163082066077379221649972813766036079348896644406194371456033052549077061251061817446886358986326503884570712372084376670850540997905367169045451017089155950157204815277221249593717654068684093810880245856373232291165821091182975346771612611346175186962998246087566846241745204133407785920663625359993435727855869821664616678630135997639595867529373952991913607182000317080515299548675985317087791663336694853916124969084824361554110234631731845029476995342391973423271378646396307942320498729091070115649646470146071056751493977813090714899114867007745470729565912259656232210041117096404612320991721723905899775067661291472314094690232646055657765682681207010625981143182488288235533127904608381612968978732675333644705768655985889131859691387056227563157194846187926989500766559243079975550045678835723242751473174411457971225943996312368146276737708243503750886282772023296325648482702878306967840318831007190935637725430300885527020740166916984575792852871810336645027342931471770557257618643516119304224151344512257014841084545440956279824411056900571407146900182632904375926132174400583058227094240790874574579565169043626919976442931989609121878294659598037589776821865435367534701604701093193786574504928169119817391764175852326654177812124092806682766123969045418584688010857452077223323257218041036191125753720975662533793990243561515667757665861360075339937445664293372289376406246308650425160695559131391708710706652683521753769353244199107934412421135909985728946801794114890297200590270432381561198238563139080269425813755770027842224905471985870196269346445641826408766529694646991155656534572895285248971195439923451945095017690704711390859910312531734022358682337273889726154980332928306000841611603208902394630918576666470258785462229922081774682387122915150908325679587647200073979662811468905722776077021621603425029351605710062411311882692803052865116313973885414791172688183334369467385028833572286072324849669605777613260526236598664880415402609354433195906947503754473827115068418827635776735658076035397131708061297448526569214418070706640541313311719920930736415316351062178261296265428431846755310962560620021522426926925039419742571921342774638640650037959824043636924004458931605125555227319469273802824178150393942952152813831018295314741803989425849999645884611884754323038610233611148758251941354550053427351263938669067646382204389184844825075865657955299714615800201112522720645655358936410061739584279482448999611467576416457524644216713167429965280762487612305529176672604658043473291896027318891030204327784384874328654299867820932274908926313091195505107727627720453749315740870718078571695992332278724494229070846417171707223562141377757751051651158107436851105345653019953744710813419776015369972791325796752519932424807666570731390460630748814996460545166270700857084580063770764889674205792648351258901184420637659808991448983688032083326835448581866977161876624975949666670786646395940939223792507412696675542992019547393769155565361164934521091405538338584389259002316705249402232117829348453555804996860970033960555178694968936193837719137231149930669648260997007249419337603149949835994597125450188326650144654559977952833642440791559880670543770784160158769842610315476260678299806009005730909188817333152883247719525862130162996664138198823989311045853101377254390281004537111496142496406688552220484569152421334009076546268133043474454950856863768114088473919493848205495599396841613002276946093512073779742689266727107341104495930749377955683530655523999998398750001335074908181322729149952519381940922311225899853421954398500935761294212051054014599134270536245506665159530550822046138682519333628201143090931896003554097504008048761715198001930684018869245722833302993050839749022130558884983364469603322566487216724304640681751089226043334216768294996071036699990617871055846322901731350240124092254635781679483224743362636110006785415026056561361540748049862419077576601444396367426925679975553419664220333649055272366855952341089576160620766676310129237104584300857891449978569611958911468422314066823660419647113355892692368063784169468556481335648474134523095796276628367344217667135472611465287890949968214524056849800282595050793375856592565108644148012145345278243776639292883168998587202195758601523756369140583202413720597743644509623257336111714909705966552271731275224986438584419541622134469739964218167595768521814451965833014446404348251752384712683358510498190276711791535741402243532027477523365390234119760394618128097049689980481350025420908861678811334392924421943945369525756281094701195220660281618760646493958082601839756121811995944225809967659833121369285559702853474871322967326289967971273789709762538418576578053969157039516718460194795197384878163819208616832565271146463597071182651682175054902320041234755746786818573926062380785094358531674687170603613853695151380042823398339992274596971310549684499555479831537503633807068967695665591389773722257151227984246596827173817607438822807604165842690218943049083186801357122296056434257358251391965044007739338834438044272545228341637082859208665066626719194801281671296422604033317579043888271949563820235693787076425213294783772115900834824926441698728952355276232336053311359428239212580207692405440889707874362170835974618976952869702104073940074971877831419448462260920573762254231793527987050644832511470602243912803135006376950769650284300258817702015545024734078933412357991304388253937404241400799371853415312668494352321159953760250613323660482312665785255656892674527923757768590272310583863101068672531686353702124297726633502106412769821526070412069303903351056274496553692710895821895701447848335651236498303973430260267545274599537560653911678485591381219958939386041852231846657162860292294904127102629397091352869373265391727126686724323812009487824969920341653164642033023086337858739400003561078256326050155228122308972765694210861116582484538851328439721180876251042202858702905903727252347944024301188828846532219643028326127057006973857292659304871425266851105085419445226375721752066570762051453027989303608620933167309285731928910182482781283879136797250139970639051596505067386567536137474511586659657867158218081479971860763879165276057613072332553740303395869335244992335592944373603882040453880988088590318950539068380055081843414733758535479211026949451455846622264725397309392283018178390833422268242641881649824553074890651165176739348851932673889753544842909226026605539851518865329539502996296484255677036092530957857110137285688803012604044318363400398484529221576631544844383364511557677572030559541127052611261597202125597602578389814900973576644034611619439670117382257282419345133918930773493494333801988014600604994255416550487151144922294973200557938962142634765970211853753283915365205587555464630200060929981651000243169866695903731389086838310403100293289503212256497500211900195938487438788002992714434133109973968315293877780146444370772919834802313334292822212684255187174784649816639872527895583985229414358516609353886621910039085885888982232714701219951025002707795001457596156499685459727216995466204698934251760314195102838202893679374721379327081640448969159933557472422844903681186541902080782363486599440687040550669060887527274931449503044968298544180030667705924749219399622308303031254368367944863024837981313800177775282089224794694532854406414756334798206143241953785484813298893354453517664707755584851965971800259047861036367361569001393135791190635889695263776571644490515667648960712963542287424172643721404742387858701028287691898504691723028005759409081766945536889535793573352566361783373716377184952911712342838272395729635836478933307754161827061549917410053762662718081010431990311250868716386893571946179405277807251984743498918178177059671950628935410560118451569986744517996033746524158956676289786114395744998552743476231406892396177245513895737968407835346293643614042959725743386388910803921278504162235061311474241217731678478523358859729984875073174115119935447891014865748214050030110093008718178951314065085100104201309698043732958110154563500763834029229354431230533431441290113586793800694580020847962664804251940936355812730490321738110336825653816815393192958250831011315993926722401574709938458400804638057079417361762935137788521214445579091798729692463679661181312950790461441036033767825223527464366620418249640785649016282240798187369405623570215411387655404866685081129891117725201755775843689807506730358604978307310191938005487888389401059160614562444379644521014817304182710571676685029877212700607657124292278640843980249126395339597679939807068687579640055336193173356798585426048267311356682114121675171997190790133839478855106732636042812775258012369015454254216860999707485400546251476633223460367584259510723398912711998212436083945183680850644065163771798271237496181430795925783009734889819350597542478597949320902314575003749961234792645773712067914479005444977433957699973061702717675815021043355834413781009039541657893599046225327408673740912029848380681211286433549936940676195302708292823947094147391702560615103640983213008140347506876978745939357283422585127373904210465670421028852980286854021763469425637049094732096602715766498304331979361958549397376861351518359948716864420711162314232579518988157049853406285051783936259702800452495979349086311848275850934917198686846606160041181239188632453217754272525271467767499075960999206268365159148702506558209088243977334330897057206966613666296327378509234109978001640943109312908812360339052862510839056927135494062727273464411813333239296061455238604745626414627929414527321941921044205877912244055445028878888206447199272197824742205831327066645590004551807111126519205974004171049319206961031795350171426459656882085336011946702746295657187017014917016199121092103307193920049442426155386779207490457139394051660260059448833366960476366925575054578638250240838578919680979090921343167858121305124792788390960974141247172233016776243860425549086816014988245937316163852566053334102975144980137810925914049470120973460928311335233991997496381490027903802330938565526564331134070641497438847535972679901319222025127538934465005665805211230724767858478391328345680262165053202119494606922671811003715528197772984567448693903822702988113206625764509635078162502952818672283350829014325103015736544395229444538054303699410747926214967492070100751500777111881453875475150887452720813084319136358627824499151904302738281782931226367408511418054655127074595506726692775958869059204892947154591509815853610201019550547025559880668677340048259497091959458361243196407090537442329934213187175836919031524102859743635401423773719455858267321079604805856265324169249912219845376039942572158998019374043945165688014042394218648023776753685140619012108011219382079131653717440782028110930130704225305962315369673178953670044121465783395076398620037852221200792589109486122159571291512142126212440263060818488817548711469733280554013788552851099658932711488895505794351100905171312159646318013113929682179099694612677154965891492027457372468907117736999146909440107569985288720626146157399608148005071771037079100686226201738209413341327954407808299959998094155890573685075467597841310270663445352743013866519942463047698826999471304770879690342510487907697052440359107859799951718743364195678737355731905901469425998545545734462533128174077479428963804513813296540348398285564245453968572434950206104141556592622428715367481339414107445003984643764411593712792031804861140581751344731889942246145648140667056014607574992176078302175683919175327466825714893943475981326355268142705684919371741355027607381069337415812453891506781842116911948505992722947867882834416737643680693199535860342360532019036670754669006208658230751673354246007700945662087236895283899846613843352648914734687746073456822344646750464445761806604993918044007060604322030287613960817375911615578420563462150346228049476622902119216410741374038668419221393368544644786898783707838199919841574016824986610332401853585076606026090661352988314409309630153773849960337869106284435834466213525642709113217140395561299237476868234263497540379159343345128739790923434109621684804582709149618485609840942738224015360587317899807786883131936914203538828432681331283223540342509954148439422310733884868965026375080632571214256142631242270890634012852918026948093740260584437073636502526758173350351345513531096445983348196561051241179291826823157853113101389737557782793091851386237682474272051965922221234472606519325735060483558023223611053029584807153366655508718925313066876472019162448147257919704660445159058009047891693027762507215372497487825237217277170015229430701837039358265457073748792880224925566967261410202401371740482921262660152592448911769857807472638944410588989087111632400871083669642143426787267783286041494762665833496681374726016520918004415818844414639202854558407602450862330931061614640656638901033991882729224371789657382416900370755955263506610833119889636553398457641390726918514483516452229069677051230712523268776933521441853067626070172308401551385423442014729774722926840891827135021364930574627073670869248810845184926119907836253275091711591817824421809884968987109375872590678901967648985929305617596126315273867758370330170531910514398714333693312386419185169692896574528576972860722694971931056910435612966326406702293285309679619476660447975382340261835201608966554757841706388091791816033322450546117937197400909720254680748070939216202514470208301835345068556072483889313160886570474285867248605809676581645343281740130494414381527092727802540778849770922025912282919768113410609300988571933690124139163017294615603962175616514768324039084604839965794575351596706111211597981071301632252601774199032457992871355773851981958342677425661682179984553313619609256974251495888598819943814930269090511115050904353666433378659944933214648914313652865088632534863886788218420867041548905254724945508109401670631934358265959853934530255370373023151003728468385026548839790797829496021841338569981592983663197808191114384914558473775761498471711850441739592645369121712958736293309632032282289074103954343642912060612023625199186511581419100975384536001929118548809228380400109807952497085843040743709580108726973115223347416392731933879128805335304192394623591537783502514745957813755009613783894331099868135968475475439433560943032048089795035437104748863211772511753036049492085058204987122319181208827916449596931334991086854734387872259440553327552200063431888312139839762664031488024825081991869409204526008371912575461358991435238956115326339499595732615394103061178114886658108498895151126863663477327475390684627537556003380706037534915161700998325586034853035323989453512005744199796857573510358845592762108973975750545000093250189860703470266273286094088825809281817695659341736573476975887248107482837006726399706025619055067305394028673407345261470634200460462820834527598021921933901124944510539629007531642415606897523665964971090274815887618180463262863103166020346404195369184480762479249277850280860227923032069317980915657045215897979048193600082343798435125543239416390441066141146145626831694594867937282673997236271150095541354676902187639995702529436087871606504232756785389255466468415880135327879231107962223638980413577477253994363276443194290717272434570685921590366005174933943457661342528290684997984136405180675197957402564006326769809445402477877014862584955213576760754187892149240697740845977044204058735008810703292612417397996986691288297593693893051803290639542286710341238231729267714972383240997663497165754992368790068756039573547554731979269838069998550833335790395336445173296478960166634180066414088792688051137704750035545371174424402434924239619994628053970007500433650100798423042601693449135735611500542377806014787638681310168897126497177799565954573451073860188326251941383630015784607930255645674025548140309938843583812745899337058431570298028655263984331981491079589670233514014856379313205585820728824389899938455921363706091776689805786768885627017006727782147521875402900792017376917494870411027627446851646714047862166305813108989497638508859530869143358300731153666609104799800197911403059705434419055210610269946483561527828427494626074148152682800512426010483306896244636383370170237108881448403243856248671794974827025855927966858513853592950489018671684242568095386397890125284466891471735749295559793798120018529491628915163027494272753715100818124178447250016325839365375386581557391119232441134057283113772083818815084461402470366153383503316552780228754177935137092681275569197761579528597965807065158566848074340632449413419309280204611829296065333514145365892749051186993510681569756277460438588422567305820569738506293305261559931361155844963654199284438464648022950130217020499411754849226881819073176221717254353396584749144491211080661410505753504522439607652983909803030737074019382175496297891633342221519897498343421448365802230736770422299643401021527864051139683089494913797385555409944502020909716649819033699217258154772693313117809734025572080719378541270975862348104248291275394901980699136950379248458490461592575648981765474688986813744153346274224283431479367448479380762409364889947539238317296032186705814941388071404889203950615987419813683561133669212465253549370793544394604001193999729087559383921235343635037202996480014627879235197027711638464778725426201617871671392343258207109611274902878257752515065187076482943474136709278743947589338970846814498642058936121109171620162423364095022851217167393958310053983160404041310219932998792534428149332961098117637319697718267554413514337841089427449547112609363671202379380384756837275406211187166350510354165800186574027185824188597661560406937369462229827596207582304793987820679220173210958257207668679084508350181763963669581080812553657910617704050406004867317142931782982129268618121469212635230424246594405500507085186736569448709771843495880101904306449028463362715376274903781189512185197298060539207367074482669207482158624768998659183767027452479841660752792989382339374319372867143502309864600297458835269782720166525449214286755113317045249333626237047646936376385632882574069057542593860781356435348694409919288525996253624977713295883409773705291303172471748837333299149922221594570018968886963017721593931262730669120246374775345170880640318240302759683502515175814381832041179038217783131497163864181414563379102412465989525920805052498371916176045580066342421066023973341834875834671527093747573030770925238878534996278326857796561611090252606824744753777965153095761098955937120773862645235393477928246503006804342185922930512371287894868818758848183453346420720027793474351523798522654505425343181618634638499105187441429818211901541281325874907994455335803152328711198612258839825587098154245731209655559222167286678131352682113600158113283858714306062893782465765400632053712289571119933331149855536839989592489747024339558568948957888629692757976871480641508527007027162330613112469624940402750073761258042494797248370997959353938565501045927455871813697507108735321885063325084445523801799638349433650755239775179641060166130373893941597864914996021152671311725934908606493149376233160824789760497881278847895730558583555317261337806671120021634161436204382847191284486312577820441291035640804211951134721035598318344025123238505235863675091316736308529713769200196784859204394956782798093647277092184168097989160996390189145985472922522131768797422193113076774387640481905475902501868476978328442787803337754587589511257332165749034454696187872665256785907361413638870321637405098761592548732408865315923532485693941228418156727511163632248705010139635363804786428273809721351012275741693214753012493856471253195559791413487018527612248925559244912946353455859121918407425228981068516426153601576108015429882757738627781548071522373863157535611723483550155555493349267213178457581433518660314167240519020404242839046370693902894651817448843401568641654509834765741505050142988059134998016853604389085376678420984959728323741243535657618250742013447018754105442836061627255419440044740079827529190670447599558391400735495016522739894112732328898916582592566205822575154431370524307577532271022369905680777823883669468215941224454439121663862873424306982958316202724799013243149497976197980836802160770454919150893111644911029152242175208459430205471398640870331832938950100117669119590800492906796084952006724224931647200474716770683855559813772180658122455050201242960885876456692055499949450898226748511410119677367711633943315306428475697025478106281559112742907819640680860966893481879461075637984690566186460505653287034063787062965910691010602817163112957804128757113274877736635584041059492998797801008785814205873724234757282108699076491238906539933125930059586413481867214161540754773693596523179701224330815329263404621885007861297197543186515411060427705862086106568315394665883361786475509397824797042386722171756873021401151177000702728310683602185658957305729026125685805727221645679607942064491585943933712185438441324416918153850465724551678834283831305167408823841846986086417555692612973691460619972621661571287539738520238006488010133264645301832256872591046244246498435026812504021783561790549061924431371161332782206046785568117718471030748038533898915746263282986973993929510176105791761110544557282663650789009269544614087506554389985962176788976108496585538769974926941226727520334404704839706034325461983762270293093006128942736581297646468649973489792367423715918003393395522502931706745021145012376116517557476976947787095406317580564162128349634642307875717990694844042998083381749533438927655705018195766203655790152901388570153705930580258837043494369878131776243024969136383674076598160860505585748267812786409057588237957105552617268436191093127750864809003614853939535802769247126489857417711477778262459750580379720642119188093237930972943050070981819488617610000313104167726529272238402195527237120433617378306601218279003801816635393973425438863739106407924579680293661306902786169844260581630358500601830134739988358659161840586622307231382130886671237105912561367782499300461363219143404498037734404566257873633445780585971051830546130263196353396904469920401815494685080762255212307024692925082830292884727604480450224390184521489613246746467517143905942154994300631786883128494192902170943922081399763693045984990003332729929563753802160155621612337334873639258647160049672554695950291422973210086309782002920951005804397394211535987582537626875298297103093208016158308161386989634408220496027224678104404976734403961066315130285326530564406326970626938175998330130779282934894798895784625389802095112144971665161131213299738284245463697573097013324512189951666484446739263376130921161464077788428064546071978982206894764819723570533121762089104409539906270310559792442051862915359071834652890339980280168504773350993201154157623227860175803866800772152531405980996526712704557825923146377663699011228728949123986412648740573489601555765588884169370706372354337866380358527320238600482889881095486765743965359869554408662080445418337141397612776380724427221825542784061428896106598245658894297165351258173548308986786919897261817017420059740562837928222902830192191424819713637464093821382816204892875488815775521992916457107468141221122016180769909301096624852860949690841107100670599130686944614034759962294309390205188566002116191329317664449739182358855609748504750148209930469778673849682202372219991631254062228858489558437748439388639079924723523996216700363365597003556160491893915415581264510712434363809665185853685412451657825076926921570008887538075835239762208433272247210306564433804196533894143327918996283719043106082665842496726047030482523612038827189809558693896759679406361705879950219986155173784864779748999771059710397975573251384272911431849085726065770672896918742322253501148556793655553690875815483284694827983207575586221840894592690637426496664984214421431680264279923051896577232201904233886593444423873214352578432331974656193068125268951944589094089906145466940220094172773253900008604588508484973105188105406566574623264439171930891022041381263390993287432761743581538341226834634435692942081975784624440644429679765608360233522015958394794655641112289931274146288375465066976396793709973142405298190696315375220808182672044037739958949363076251288133340681376595755313926809728147771541888845657629843101814922309575956519259570937159403674926537963925993937267049256226788316411915155314240635024792152666434959879449741019725631919854645524209256351203979051578516377808491232512380129116205487100378590723164534538762332710737298923742678938438240075186596967772403415186168324076962994312500449003349271958536313823510068955345781411914836600917784799697923658067938214787793840908797642841883603909432553981279885210121896448763401226536117191101538646223300816109517033591400322093495987870562521513970292956467561329999735641180741885012575663703151554383215767386872930054412881507837944518456313935362617051588278416260053952127892461441565552005750499814927926258960232935020524530248487397679632656051901554062983667462574855017819548985127507742820781895721453381208054337336848512822300236153346579457332057930121073012184557215400156847300956077909448755469806997628599291191245069301380864756410003157925418942464725536192556811868493936555868946553318628061133745518761447227904399489331444188889512344150078084924698067717632823875074323838970355550338663487689470887611936865568194394760509976438698248237224415213982635008721141169810390441725173198171358867391813086844396284522031840211121004743401845849775323983679987991684439007811467019352337164912288082472634841435677588940659220668516532271279624278860350257219877248096158981281244197343211704708630716367946351355961181831529584244999677771789540072397927247848746496937023928098905261262262028533872269711185283066550623558033616251666332008420502414057074133726451378135038381770064481651816284375097549283053809548949337113130197771081149270208004717723479519241568397299359889596047394652696726247071270313770524839606039025406204184205202337883210421011672079064995868236407138470785757741861682881105887214335073096593784732934034448683882846197688127187340142850263350660389458975009068106940841213354601616425052531267550233603945150647435949108330659048502749084345165819007050333142305462348673965605466879989415278553151580209231571351827233309377667095066822524904487123026788553261805836882326316069919518891203575387707018997409497939891727377933997068737472567747941425958653264633266228104519601865867201389191651436476768104859809265367799979545012363732040472506339534047759032905920331301323192652860289012301038177886510192855105054091911484503708174263040794894428045200519029578666108568686215609558590111082318372534782209066365338135459067076089019586918104807662050357655062859995654601893188420421205886151553095070423700068877148946167332306308528497503141765810319045182780586744398428245837360855893997849469430081358971124486733627124238396444919805834963605859759016166537125222096652397856067638020860025425039353725398504592620200389746484912052560569203048677818540742069044450334989032255384675095123826023580939929071361358836293174718398634838735578909643585618150422781453267706732650619961199721297759101645591834262487266182955548548170040774766386970728016943236533244399377838065338413023658169570973361239676524923438310741308436111824762606830788806409655739587384039001641702008361124461442891029109695751149391098261154727401222571640401272684019797621229872831111249226466744718893811734213997502404797549055115520253454204614988587183435252515126822271544612714942128102476166384036893678973820653547678689173755115184239747860492827770139796955921874004836518583447094227484867804240827032543579249164657854590516372347242451052084603515301238711146087657241826729698058440040823608659139111984817705905269381517398331661368895510675141796725423107202544052027597617877528791701690162004937601933689370151904177327086173608376808902237660603746374005215560734893022712722932713186981339185394034280962781004498776066264163963129007156732517307445376649197821356704880478652573365052795074299950432621957495539893341031585567554783153543072611852521615285011285696299056640086001607025620593544557266632880140450281985797944735405657331669014476836741004710296567291372415762370672340184173435793683505601688844104231783216431843743152159382057813675663303681038422413194266376558497821594027327926092245824113797275283684560017602763366896022542644484687328841007936222860196608725671807341823126782786583082681927055365333738459447434727740612611346531682411386627882220649620359235211724586411522883582673831991920222953906941870496231567880991109658176095932626369149623127440455390404250234811306276330231868428468571637557174625317788562320389388950750132590129141505496258881590936150936989259260350104026014284491307610617018992324288446953447082113095329462157875840139422008783979027421710560599604593240596312968602285303102964696488356883445891997396606332916717872720618677790988896999469858329756262856594687659038781500365342151663785174827354325909936831313073383842686596084626324668642856923630736790512353394621086859673294039243013078026752497025342804120201751759275300402889221861476356595114666249201950374239320434175841119808640874562152652654506179014814822228079759514154654626028831730619185986146411905944615446904287070940737296410750723995677994327138161715341781562113470428262250612700296642539599180651094360159856333495865850210223491010502810525978425305098975197389935063127870763265438860678313679149897881961976661491212615845865765131933215149150538093663698180219624652768047559004746977778505847800201813974129421832520079706359838991292253428681958134456649521834218512835535707855857534337017580717330378189073644060403570906557705875587788006924703579722947806619704384792234605473239515457042968650273767203945953409759976728412751203891330914740440703158796456803624777107681710947223985616137719076676769810980599724100593993779506824296442638275529763636833019264296643050251261397756087004357896611747749603862289120644056595852359544034042331832304485586256080228477047684361441625873071745596928954874993268371103808945135858397165114035439808192761376726079431140928926165189645731297658481208324361731191086065219365345756861623729624047588036806239210108177210098692627092136983323309227579829653390313797624994694595737258319407814611836556521523336923563114772623928585037602957868625055696098329886196336642532546542291503050368301269628335337520801362494199871850201183292236494919439507243872292208274109350606291308871050170533572864227136109267329657479995004557284519455367862125761758679221415845938480310512238374786777440219398475758251138390679071381986359121937976277480150334121026668826917154039636586678489098123651255402030091309423511003383727518562321713291808651463355136489025997701025438314705881471542486047590581813135570584437396880350955696853742204791453635089676812915503332420218928738900755828609415846849990148970444405473385555505924748136495907825137342438552339502423627167457585629343027231940819572469262907633448239236013493397627230827270984541403511135520424367999710478044611461693282213400120021518607887939979699397227808998878462766738158668515881374560559248978803912361272526424516107141810987773945809444623882674413739326403825625188379659786836120802285850454163260856180109122040083093969216981001422842345970640823410790042167923388939663022513429138854836766496211472119442592836600470761228742971944532191432868542647744428161241848009150838602059506453905773142561446011225725463977499279876136293455254476914946567731046832723538750524928970316151036662361520827018274184784287814475906123407207752945698717223007875267320921131517601294853880923900696456770878568183834684042123714318813046294239340579259868662424261483247564058186067332725635341589921739535076140618625173425844151381296954217226262757077860319095496283241751180628937041439620674560262398095242621409238463998255606868692801352295640246346720633091957067488767705570480022723518528311618667900966265510040869886525407309320245411228600549080018062735428281370823494745692148641105931085416765359621070302888538892233308091585930308710184484502238268124580598707654468908714828673009006874737579870239179232549711437773026950964819798468327180756838942021259695534191822201412526614870773479092248226236353049506233819575078321130453915216781616614746500837619426558784249821143444922111972034609151765618467440047035291743385809832762507632342482131531527641523288535008540676505894005237383289494801793310625967904173049911374524176242330966893743043309769703278772983815607698784552719655814383058643004033703713172226506250971975133888472389791422281486269582804685886974879699937714734009104518658304046740432456565125632358133846531551984261778474090230912635515417252459180229012465070694189455048627886034140623271130623713661624851522293081147405111054586377369566895182499450917468226879693900708771497173370625952471525038496562852517794360623091644047974120711272722228814770275690070551743132479537733523513037726714490478157899114926009631778312430698197169650656436129908428271067778859695608638869260610721597497929974299957338683379335889325520335323770469620357670975658384341867104654998158945447222842281654340307129613487293310156508582263070815495688837197433265080560928231353691347713585759781609881971068926700894246836777552783523857344521357250205694197246444868486267274379627490451757038493287408156437165177481847134139538309235572982382578232593969476206741685397317619096076033468413885714455027124653569762714342197662537976813190435371189771193301020441545697092334882267084957148119030267808148467669621610707976049684633286340789086479995431367824908969288955491583352314933169593006028326985844951964484866682281914885174957951379778618087335434126642650948449323449124466159437558154893816116437262410863835485730824336964852022242827635756488873867333595168986192571679420469233897998034580506339469861728897944102930219111698395153405406026028644613088027061319308540706634233934213448149142098360135021425292378170795852987422306635186451486901020183611642553001144408725687153058180064509559264889270157743473194909991886059453524522284851625167813112012878764452793105942141990073426270376125405453746543736081481096358956406860814501490531619920749723485071070774439783444194047897452748159451595503553243948309230606865492077095547527222426608638348232038554920746623665319147265998184519348726438874278361713245965269149382314973140880958969105100728309958028163817822177470622201531612522809688348068798792250899717171649853390338965103607622819413803685905058681990148272251716249754931515514586939929448147416611598299418647127495019800301278629480038622613379594005414902721415711294538354197578178637224022420724870872044370750205292593673702428027611469787102314330373114805327760999807482495510382899705073343113629420878677651011659249785138138326941128463736283832283807219629163133619979479141151787222565892425190418584796306809347846959691770206423520625142078061313603141093637821105889872924789583208370949186870746183634809966431803927719384351087889023693017263980098851371175485230166222187718052093837066977471800602246811247543005894194356709972011893675831671833495446195122931536931288126499605462388398448395379570500763386451679356997242167842826475816835627469878595375733027361205911260892039894565519074756544321056138613743057946808396567961030428435362370255079302411287939855021285582662819432098284638353768674214018387646484001805768805711435283786921258000161426423775445262194491353370173467000558580096567974209075965899827442899123060498251237442941698351322794259252281621397323084906526233573289884329483126290731808290700927883578328314914578088699552479158178727431600851602678801792714475173066224627539935172727436434131063796663432340322155078086208363278126558700654631564319286268766188698149681944651802827820263514316137097305144102516504944458807181511478852492861767921870619710557815842650633612637205650081464399618464872590304159080376445254580317675689435120064746604286058419752373325871136985447509555436625632689860325356674302648447695111131994638239784195594464246366239125556204022586377129469369298544706430313320514626512904197786335204703722716891494450512655569005420303730005124746187555067904284021558268902693922798060212074368665499144181463358714044199642245501209952966130231478785124162673162355499845262527615314730649666443053146956717292363063600538942098346010500240140615038780888522245273874943111930974140973901999965781678922296597131822510706232924964407531615677878370780588639441693416726521415483032901673958890515231571920875154040617554630348412520683106828852148889369864449511465710031388480254510780095206850139633148438263744945524134018651998753038503589794766737776113471012539716148816635554205562943910231995631273189381721359201554493579610579081501392288874399979882450848415603322832796564395153688134308442275122823014152562378180473802693075646501502508196407370485055897691333712171817106293420454917239234591947231185484890518695764859277533579437563008584034229331459155022302274382333566772136549765101051852699067706460504698504980486810573441980741076243635396982136257471324363063095370947279987526586481610961794251271975057080297624680188011175527955409933750816588710822754526680650079415241529029496808811430826995788583821905837752175913424460408598121748883444856158995668449141135287641019536496594120548317954343234967761508222433488948977130274471343630056982673714486899895267213161544178007950806361625478077087251420300326878332453568001624161995396525307267830507132472547548245856033970025125694020431795174264685885934145651136595494325875962692696842123064929723581181882818070059928920608345484986929337058959110894137755492476689874611800037350315719553385327079218997608006289507062511881074845489931296212772803245003751877256353259397443267958817617023401131927741703937906311928515393516985483384746028091081782391277235859141074422125240120500093772014722113247112030101718543456824926447942599204037278511655099369223043366828746345995782977608288153152062696618214039783497091938674616098402490225203296105555826230716084426127075152647526243214384267639820808748976663161143867941246309253683396302708282028821378531457959867574002391776684147920463996363713276544145521686108265963400148399999668584612918255746228026325344697937580350085529748164223136746910449933756127055248303327001100716085478098961899538674683598712383679341331981771598820732547963442942663996458316763486484168817413767979550252108346048800758066885796968519054972105627925204213544700679778587812521385234636322838262905810674937498215011949310294275428822712124907741258401615344325770474431186460653358693689163883249074025908593052819946020215271928105263310632192356579615945908668805809758108301063638613979934367244641704109666644117290336232147837133157603502854090773714923147937772728027338279629934512856811688244723251635666967707460609168645046259038985892634975360919531844792979798691599898954058631682204694656354096775877634444745468537280355922356493376434070216336417625757198907531607395357055714680524555907660867993551553834661814640916072964639421974998866991157346275545699010674335792827204656988468714201237788768740637884697916439293517607955537311045508984130994340312103835095752409403204001228436205994541076314033449169035666955684974689803612893001619744921417158830972443137048600323479801242254817795693662371081215003763117268074903614728037771275359422847997636191844459475410782072773171229365939859242303467926568596055881971802642222571327692259510700614889701660394047945807390449574125217381273121608029522306884314587611570226612384500515607383999147479028413885502818044880345902153625513011844433534179553251489610512442599851563106860356571795447284810532411591173839787367374289010487305503967062814990847638297744290316243575732788423869735855437459414765848510417043813379048702174695225147006600155228368905771078254383556367126586947407089002761002555378162168803060471654830883249151642015880436052595852663190925188810419650980065398228036041637626147780688429811363192736815670057886967308342597829744789312683205656859854861750983818000727554689149393658706259903922510909863748962539718901655487207202694090068582192028304942695217749962188820987727537908217122027394912292675752436491128762135192581690264820472574184401762124899159937350029672109878051479174643288712226904639397242424636659817399061425732260011537900195732200705528117301394296417450350897425151747620670964850292168106179964923589279080400982976362032774681995824325384595201736280086830531222663371903940293508413229947218118600883579468837366533921239602552802938741599365925597110858419149026626945402009730155439158146752200533290002679316717468174959320040018194304451114609374002507552182916930551748946699256373835529641637061435917823812577754296934495149892676198426641523165589246758475355495202457366484564690193750319624049380337738387887009537219888469366059757238607383344681950320862200488817536114892846932162513621660647036679750338720054531512241988581328157581599086068043483605827609054063811699478524631303448311061892472067723353494265538872718008730612912419450376019319268716803629228115773304220255590822109264729367671120318391055536443511834365547759910722888573639386214563747980874331118037067223839925112603229478532668500877006595366965409476455254236796541617609103415643992792648502098172835227252811993546526467557709773314637571472931145363799907545411090881540217996475866013156797237644399187249402747139513541552260738893266153934437161556989185026279048054623436682884443989169951802953590130139636044331455382480547759486855987211163408445904217204234069117969096033521312340207788783974059092810236018349861543757336551934872860245239169595072856783800272390438266777193481860081243350841483476657096876604241966741631669665611920034789103607973878215592721088915792491090329609102591984243243365389551799571458814612108914109965455810473898207998739797830290346433742264469475472631807430137898009368438852808286303655933988816001695268226069624496145559203537717921043869812077725224914780339093822356632912139054705485559665993209608763739851449169932350622467293954633026030608422579107834939496796875437519068204707029154276658555817840301553213625845438560279540602152921065933492283726329292770250612340612486283003276689122178197069859183823929336405902912977151748966259069666223953188134392101733314265897391259370480602293193550607303423810781439960518647930561207942952412784531062049021417930166411271738643723762890368397271396082317692426076133482957771013410347298644528678790062762870963429772645129017382911349146408503288883695668417075608186101969139811797057772023282503362050596807922953420070678764572287750064522491375916457794862964778841196768494262988827839860513979166424095229908984005245344398443759486208288343283527128931520598612262657686554842839060274679421333320386541817598723695681480853636984153319064999969819558796999151113933566589017584561668312602989976796979150873001980349436890474053264426207789780456365524961121167709030871405383249851599675772263515080882135074358822303095543653266611651702586004791316856083847930523784290413351831697739815154800302880640291937434490148836884927927439959900285207606023130529008338614279851361606206584856813148593498828460432651179006808807011183529617409566862236496596399687558427282653332866607521165241366110885646673413219622218987765290193788917959868312086345250792263469710424906741957148510258522371957670696870767317896035110396142182435201246302036654080891490050555761895869134043616485678048492640726027342675912244838116015572620254135897539168002918282990170668646220888175880738378605867231354211950135372994249645437745179351584736088606138547202663317090159836706396056990788546396887274786934488708483065118948076635274629530888572905639033570665867817696437236079006820864581364689292418487279909136788202452079627633274032049834946504293548023079943947584775442750369334496061620390855727333322602780030261941639432017551501412355045038344492837765541784582615864531571540771339673737255273659997465220829342948985582826877497510815966611250450805640607744963687646784303352223442502348273683691112094731425142393101505673529855116409258234637848358144422530816489791020361729279914933511395232991154999040965960166354860742094668169337602699616608077635826816172673920555555128518555320762575496793483209051911645880086869458536275445425719757540988285239632360631831933492114297938684043739032074355609192712955333323959185787036558094727502924144077224801239460467116971649007096116796013212087697146729357612004428939241403452646858010282559134600050937647598409809317088758662807416448880198556391391626290219188342244044420141335524523713743644412660250757914378485165819503519434215519907850876168745747383386401063873835180446018363179500123203343217519172499365679911300061264355592859202657428848418887653752321709034229260824677828514551722089765537480395415012564425754180842046745904824424975905591682403812029388750536696416969559922939364420665751746974462983730960644966760492501503730049967635241004170529286849891746834553884765767485918270539477265955519258445288429373883764917799643196855024092251514670095908696874295787132738749427850527365320080816339913948367678024049312587491336298567055800191250807637851862109595069444875425444393330816718938356086634683490291821257619814634619427294313137203544341400400967260901751167310355251157580131912628740121234007205947963443918394938624576399238585988796896361054874523319487037997507179958618119129745182083283669202499610472493044928832159460999372034275531309847411166234749734386244471851357683173275467726497477739068476500870401263158268237641417224042247710266933232996795896597403437684351031126464509214228407463263739515206725577554421106783142728012930801274710612336645020604466337647284942152031087780174927588506604382594461995077601735478765870502832492479802380207632756649456565742729571389687734745093018430743926819752307584557931504306351995576488389242687998362120663392361393506747960199966657192459970848354024921340125266734084532514002658970082630583870661220758440550851066592227907435622933881314925367286295287569952040166169052772700305504945846392873982839112283989235820378408292860762167248274848121062095566995335585876920930038273964516480771355367049478028194234123981820973679647596081160007138725915087099519855334125003215428611274548540456414300965863245777431886114860296229889191626349274216370368252192949802068475566503318160679551525169166919150788780621209930755289244593644841430234345686142320686824147036921546696180460432336866936403973336482007667955483878615719305362708174128024512179804199384235741461130950652733478241387771944468694688730021488901952776403755969377832046789620185994991306365523510751982832461089599103861261101563230775283492723192818689722824063740176080975550168380080887033526118747883707390020076880082625040411341685248154315350622612436471127525382627107043913637545098637146064553447077747273093126499855793573252352496387254581168102499804775711631494150759158441417591169683523134487344476013292616129100214037076580480592548023195651346156876507205669382977734494770398557433599583025611282522272187811592686400393069430900192540426205081999266620850961053528748556092408982854786432936319389051612536765468803587687829752268621197025719160400552139584634844488274704728171740183821427870118825629005325321195737559662320863087114945239657994239235927353069043342437148973902419208377909377730976649855744697709017403502915566956375037489862724791807520310696582626984889884660207965336942157927288371631269494916666761888945780082469354644905799765985421100511241849771550736047333743239267294901527876510690970391741340057651221878526308422641360573068619924990580790679702608992271573192381263461889419720264714459319893864617871585211775398623050895491006984267611082168914310043848426742460848175604943988523372247849030627323777806256410514264421483939242831496050164864119675234304534538026364013060613899142585450193998902825885067518097220718160719670908886913399901681350349864892531235432751289973445085042177823728296183745497383197219878360443442529211626746253522663858987923741049923195350229058412567063447315739793000289227043293324434483887091855094253949785831540664171935819764016309613735207709827749825853801560659290422622503808470679426372922566447093518112809623907582403004605151091037247349813920931726542611557519749010810252008879945540638451334946168488529207131450823681171931042518601972942712686762781875390455856586302279957445167196018305946134934542933009488195027643829941206758208292120818887041949147682489605971022818813688957252387770977117022917913804301596758428234487573522068163562113390545389546876857316836296277425218054734450325931555609905324324186956617409095792555097836525118282176190320017649519168320789340940781056165996872293735289249698395336820781800634729329317871880888897396434013013336700810302545826402451982991708018125296981708956367897810862687973808299650087438850397215581249524501870131132681166488339883129531389560465312197223552193767659291722870092248772313573450045303766694786264815644770510702000192271069569223525233126034480802534759476978138690785296596156682889738808289729700565845673869144993135228860842251474818953156330657158163299463770072770740145840200989912789575523977093482289119023246491659561263161016421472336654423652813754623578385214815441344358327842036576415785894107363679612559701323506615032391573191003467289297058153411445409442208596702422840515585526006133835801576225310552372826473223673226810489936952013460747852920397447470677217573521888626477797840611807295200339268159185508032815282146328658288341318273096594670535303190511210597792477546621830647046643471902673449872368676537104040752182096803672845656107544408715286368681885637751907034922358300801932846692933407168782393094138700324260920933377515168746572638781992322201447514245040137448853156848598323026568752140085307978147328808961342052018823833109813970654122500469303947315013760212943846332783730674303988115788801557361153884981200868959975140458110780231751796413291147203574757986621455490249078411031325140049979291811852344639884420203713840454688205242758583052106101573933473753214567104318103096745182800562836818865577696272623639053014567303391867585193706854382795264862741139583560957157071177050295692984117366277086373282927437467405859204106725755038569263040249526252316538381545888263976310869784147446021183032598485278428520656285643023427039219902611627612609128817105162534840019785586177161347137333461360546537131453659586296095614128182209359274913746342998204299646116594534593202773726618509100717440516391657633941666214697080758401755759725387644559506840950096847514462690238248499820502349332284740596672979636661893750262245961096471947672266452878532911711913102734915372564917294723986215793303502533918305595656517058526602632481183957146565291196848650281080229614900587454296357972741490972544609705297194155560413370693509771608811765435743448284092281241168324997851364146929010411009422544145239336554098974303892729272242169240739530757761283784726345948233262079474946842835878815243050646092970545964616788004220442048602402246351105813999550243352697325121094830484421798925185919681343803817763282806084399963732198187840450580828414598331166177593371467036102496900232914524315976793704297732190467547852117000806807268419246375804183320607384179336304203005337593272758494068483551371241142222121205872036932365582996846436811765870936662832470473921021211913247003138503957354026366814620386008837332939447278459717770988205012653931297253062812813452505422360220636275645921295026603357263342888566972085983633081942290564262767330221141903830687617498763369679008362944103313103521638926865870268003306290137884002621457968689365422923004319335700490299542641971101712752340809648290314777669642037701298748929467799740544358718706311664429062517813984708246786905560617344242376882285005088195258092974635253025850391955937211595223592679561275448714600636347599261750175668912837256798328089337522438783503493508472694074152760481028248193537701839066631979452888727778113475900603179089738436063435497206019792946712628584842508060890790583686588087822499810290824768758303720355595932821767062286694847920998575328221826435054614920628061880413875166147594959169837359487469891510078144668174831827788361195059587643277105464450426833703269700651773286238034974075372862789476853730784339633120440275531244166518869336251894354025399787393217569320227330684374097102505703601708001144480969537089255430503458040362310899037031465945703050324062448930048519481623290921283510254708037832865250780328016763077315336081800884472937531077518811817811004750519028671026394153685766398207530913951908735059151833153333724059327208991639898198854623197075310083024619715846755458790355943790640125772867673064728890812411200722039674134692638059231438633598869211863619122726148467000850387955201780223534461468419669848248972470235318335137902343683914125326293548955823495154432752776429737248536128063483037335310885995489751940547492605274300203305294630010648933855195102054589306224597219944049794968642845001774512596579345128728012716316581461855260657947974750095349430150063956397847422225354367299207449213447007082330195498707175731713254068872462526373088803413603711521138230370035510189961915056582565167441483046233449787302680659914141834271625955801594518142330169616565891665345314548413020365967210102655930677551577849062319389316499667508103260660160153181976273430564242370210531790891581868850957566690524565028025268066316688692315274629948809955996280699819209414965453246250983172317076516998882491605777991807102073617958091565212075939478356541472259372079578985746930190084793211171119662176906786739125615492466544481379278011785202033741824778715478546719179125257393139809196639188273853648265103027123371530792577255386596628173968587677717480887638375331445874215286593185408686559376885150830352674913261607189274314862787444622914734902790921241217636887757956176265418313330513458793438883278787559073541489955324160807783300983723182091839584049244824557585100804692989632691592135379118793906508813370546991315179557218061110372057535439505730453678164369373933296604715872698052182343009162588324375795870704252439638957783852764751064806597108303118562975899061837911081096613986640713437417912614408124755366735771610386242077066903527435335869858372786975490735019376814040392736950252826383769144112875699083398868590415536851142272041457920193132028209349150758113954815597443772177350850350700893488839391342582484482882865392183017861010592385694263930963630770039301008636856933116069006807856499920476816318192728542462179025945377543833758218719800702533744966051280641955454367178316494499298942022762243550226899875214713208915020098138194261718480998834704311274939042714368147401355402678092795119389301264924606813109585249337145318640102973543181134832657811787635542866343313052009680252041576487867439656273297249309860843848998912566589255989668812399379136041912372151470706639153750684385217925375771185511196534538422132068480840233508025822051537959012205689318431451175986910269395116381820320106559473316745967853549575273082271819762344654228274960079114803420351695701400415371843829957093922674957479893146310666764512764584429852799471390049631810697669625481193149596910135962924386476819782671917562761376373899348353867124197117503547322938298981744336359067909621648753740234959461512289801468146750320493329833579724196560114974760838071627798352081822989815120745780523118552306656455288548693822811213445611639538950006426498608486969599667301692094659577296134290109681674161462259912126268804747436814490700671259512065789062786052868876933851858506684074102520528224872369984000525237301010725103757078865813164794216262931099536034292539438024151510721185603976530398601681354140703296587205201943957030736692335227065940856172322357081745941808197124753461923809655719728676256292226731769101877806558169155954877917725195862145836124287935685257472833474483452923177493014631258335577029907771511614438266508600075526478226710301035498620940620185915688124415163310492738424277748740629018984015404230752572273787845183570154974560457732324229405279764693789453619657486885562552369518989320405514886904406199042853771625181319461197524218990918562963991178620812333799555635484844477995630906279190467230055548024775939757650238487736532658468378766564682127896745129524186467526552853668706709446283156386536166713237865161210942120944177007117114004606877492319007690173112234584186212132988750689807633348369222945204126373241405438468085206763202779379877288882077478225626856795260716980593956143798874437854888768511347679168936431663171681451004861758174137206317208320223900419448665338075168577374483764740974553475333903456815210944200614570198993736810605470518754403545585423441043985338053501579188971730277463315799474300381527296396753760520907064612262646275006145557172076175205596129207243840140157914164566870454009923568744660201879744677437753395137148649411890136060705972480107748672455177610084822603203368583150988968735256751428844225598417022241000389681794508499685086201048546597503129577233020841354257510199112697329328718983605505472893029270629006486832470130581811451413115784397892738963897007247168653483002650189478378092808135267951231067743571466420828729603966950904537441783848930711441703481571119143880588493912178159014590430261908922140099962937403031244875229963137348953862257129432168581484156407220587251490720134118667366556564422936861524418902636165640486347439550854042691048791757300612260295507815723125871993364105255857729648294563568333070885203606588449239971644059902047691381841730039007396300962435816871769588111001561418255489462017039581523346659317600083539555191644733679630597408236261140201587700325760698880732269310542557190727075646029012308145587648393703154683193832333086638134129846967026867698406797114883738535351172322668972727490481322884137335475559128616470008035362318733301075558137477867591567948484849191790811157319043282795347933127186156255303364318572083047176821979321819814223319091867671493775083264999028690015984317007852103770366521331590965630266786622373899031687874850932606142802602660082062904635220209750681929974673218520330416865300977204819312061771762505268129033245650465262945998807443604142932340132248445037695776040072690250949869971911307729612873103927708413330582825482188203707771761178723360749123872403238111060513953092647705062813589348006717613896446975706328128582636252489497245513837499974251572666582145956494654501569723108574486542718479732053894499299240497423780521918198081275205759296881992445419646508645707522314158521646316166723590294847216702922858951647290367841480512338427694680895589807640271473183287584262867265481580452425832933610686771823000096326089915758605557450939483704136761473511231318409526118769559879396679146350361205914667791835519700634671462109421353396866776746635695670352483248410497570760044999567667740733485885006757717964715715578516629826993931204911023732464945017507275829018629533324344140393136014752072569056184102666827561073937371968714371244458111012501153302855097759149593089597442005092231224829267251263949594719288932469742359603752879125103102423626013210750319629151960285473070348692348946088783474380162724819124527436965469415511023549306445618379276017754924652456883032176536932251762125546990801338347092886325149985359051834054858785412156994102730241788733677724528566039522169900421752464206229272150919592688136981635902877030181282218730031680900038230955510295543152589598686961913223235477986008879623860249009909749596937475125324849404361034043337914316799074930640107792911362352303192189101217794793464010452542561227322689120229663369203570325746879706134732378383432779710070553379687305513264723339649665215761472376176036808842594105097820749633885016842581922696833543847740720908473108817604724419657174932305193453602280611506192415597850708485699439871112317997939341782839790799497447579872045738146810408277106399872517484467845907302412387427296897460790780846790786332257352646638439323114655827001067789882954568891346910899095811163828357656563728466763019180131477159766229508090097859076216395333740732327560419774728490983795072512673821730759818134579299084653170689608687780977487392890148771723610322071781878313526027238300636986764373096333833369037080875231577904673112679376670438454971367012807138593713703103958026528023551044019830570559987431733525228443262060136498524073514478879944516296126324594783435848156618921867929453633372968554724933193772141086425441854616579661427411603128733091925445267530122482068814271460697910690916577815623002629655644158161477073481473947564527068115740394874427301661207863595113874458099831356845501176739496559421777699133796785220535802608379961563032454280978416514063884106217163556980195209157249550251016689843551748736096249043742506818173630300812279473038926884962579582549395341461739182558342133940219738721142974907365359660749592741099924437999058846209954719054521477646031862183535308477380035760960349917107578868556209820821787624165706513854766645827815179430190526540600266668846535871812363649996270521628930742942886456208908159270437853315287516617934702219652573194327577247987710699242105758309586241081066858621641087896243060429423402898008597950103876331995435522671169063861091412728269741328772296225882139511927391324560520861408374242724431614646732963086963392548341968805525375077045202274610891094229377127151095568785109046029126974733560849400339425604642758563771775180740113416201519773234918993494236881535942922760645279268638449537478974664552302286401418524138113679221983588655404080170503327098826219641924652005053433452863597014045435542643214422626657431880845519481677812658059407315205322608807716025759265949877473142584826837429610966664837125001629170252012945080179747922596543688970899849911481910484999598211174751536969933417828582203805849424123768342513726678729947008712834207478984974642246307053201503260322322459994476863630179853469478735163255243941226056305768039069676227714220125834501371549583384492428079882919209092498472800161269073074388083731115533715636163194684083662386916581027555054451966733546065114268788611293626038153926671962021018874733642471676612188889365080648759324549068621804753291735632292021181226009325231341260444512340535037038520917983443326120619903257491444763248556809151994768871901826139957095856753220484757932425579866683446154563996317541855512924432775812991429158491607411890778255443807899146626026843129529228800986257366472796327060833914965415381548308874918593789473104554775702053927701113044703135851892560411598290818537967188127353089235104551808578328244307913123794691481972505577022420330086022855724205534078467221701207228218494786443276500036532493807765634932017987737141216150984570230900365229432625857743747268157534597911293954953004324050842449915270061575931956802665458091375225382365573480680361814563294337223829625700782603673306941940034104331615037872414354405922328647569583414992877221524795299387706856023154865796866877255690139421357478870350609843241810585547412910045638121033740049898676649215588388496039281454115388144513880175442089006648318986365964007314965976212619220334100309299056537309900881812695726596215953284116097451428574996893877578059949106090390973220367752468641426521255819519656727286634764336034062912215618571384693150948763419995840455943021626009222187942440921106839213771788137575798048671161987662621081709054245804020688858062666776280346176132009416806531837718089200364339668041789141424837375634708410194636390922410080398759779549424494525098747214160247782656307578005348462069940018366877499730170000263116465471072622533156086208424879043765063812601455055553492165229022741571918107251141162253148008198116348934683656844167060194095234449885236961164373572374943555719788982345886599651257239503365951656059161704906611958717596223206576454342094964884096010471885427645696101969668568091327337832222779484663611719576240026927984281764170426255789508930973847508363360705029922106593879622266732464234169510719364139412245433552806754509962251006471157307995808586965072724869916201813316169319520476969240205095003992603085792946333071843643951261984497603779638774489554686367422734705712614351817746340226830745265457980003930542931784139554835399842366902363666843781244655967351861743231482101478383397240826668056321304689607511989479495499931434235834560411125763042565999192021748064910241669021706665320417910592935721579838721454310688573836508172291970871569650445044590894084744999535452259336596157995149002405961798914911819109941353275580578080548193827705385792712621008267891960532575267972917814165633790613121203810217482514427116471870120481249824212385932996563612869916196178882276440623705302235870221105699493217915689837857706476935226213741834949411117010904592249312070286802114477052440985024861380533915785235954903216677068161366042655104641168181278813701934736339693964192450536962193434218324904630720713575787908579449259976731826364926856069441149648960811962724720712609664126576414060388289316437802409240099302224281402897166296518209691850125263905119901912098646100122577901297367573586227698008101867541896623743408665699928397971230427909189298603992904390257242195073722357016874199719363973503669742835694873589628820490693019506094929851109669723241094703224124011936658693122496119517348996902321740316501225635339631069333297198310705692777075153654379113618079780139418634287843733529439922885246320203874773702414406516333739988972589350979846399410729399866837861559399500296963632047987589813429381856905584741551854523593254754746014863679241503914230455616241154999857796538068149715361058412205343771091594545387893078671925580468034584248690375754329087463125901128946157575841178623210205321357064644556886444753379377911589668198979953092303936795446477149271345315835942632276948758781847677777893919340871011191298874988696307616447013505445060650990724360447363065352534455870992925394511336210061947793412459197181624336383429910176616616149551143121324965503872669214545763565303464540975658907897235374708230299931433253369747199109982844608115809447203946608301371112540808060080563832154156702315919326350467781448199232040494681928583963527687412523402121387166697232967370306302070469952813074855069368836771129344695233719630019172585757057249327429498176471251695098234547058505675962465802796353666954569739057757878665552951993770345414175790648617200388374086382946404206625500413492795765709738984005527090321648113822785091438583080389086171072883793714549512856946754977631820420149014823253062092137590643510380566071752643383619935761749362254251227720119788820402739390233451088379280499509311882589175941555481097167923882050690595537560708157409869849930263558299366782265605758182621061048528220942013490676668836048384349660027498421580539104969654543026810231869540295338367918816477242221067843541920553590102734833081162396338231732554886300055431431418560466239764987212207535402792215084472127011428278063370368059450531766750498222930200394711218840085396453345538124329303891816734873688479334098726822914189079601140880337180728309812371506746450183863607470641522501549433981879819713865816191255038747787688140708067461403128913127559638958801840980249098828500240675789910780448451947846333806484753113491498017624125495451152111228855010959510567062622328421344887334677599162277780982205994442004572252055035187756389136575874328226816230163105113454949960509273275205408240246981361644746483888430593710830801218966270776163947706373902242247162961684058781698630951674370732997879584756123688700406487634170398851573969482053088241166500796838605872643437604217702759190771103412162898610598996003298055115041391864690605727153764746232411195384760819060243774849469212067556804656152090116772398962219703679821536158679115190496108968228487837621254587321500193340549936521579750334229816574494204655953454448682587979445986933730765804215251751203677444530546210206466266434593035759751803755040779125481837912865395626378649159003623380247482267720078761752387269191911396588484375677714336418541391736601382018085284372317840846700345142435422372139940307952450018927126211526247887545995692513330828179612669051305423917450017818511359256948429196142749721072394054369134019574255138055249365130386431367157446842515851187761495034057653777841487248043802879191487218821649358086156061325690242426709809209730631578665994133154759892550770655994134700345447715766678043260446177046756015262184763857796117904514452219669778872823631220201252554854012875150998844657501064823357034208049474992627950317124738015041876550028116457496308913945463599526563810903596113710601627321538771357408628835893363006890722543193663701707012645577526944287501797748392315777018708876591594901579017974220223604272810049583556266673736883007958018153172767665103109671431055589442187927800227597906414074866035781233157764150943227632823835102735082055107263626830006378740506403193629012541500196103165533527083575594045457213533008326052655188653148008411369489336247279495922420084472243762526421545911758841306038084032401305463193331596598866184674248057001394093542916283214577988035512104601153177325051413433266980415897795374622751079452743067262718488491687466354919602116372002567050845636208644647965955650253581575809749899374806581339359473848890573771382977185650214837078453110393590198007733657768560307555689399431915620330304988820417394958217561317404521881893342209478195323669069744287665750496421631918634430647146868005088141429114956292932272245519142346401093756493011186762179011765599165797428407533709888822329905454018751599541093742287938567819175257787022548735305767405889663166144390438433669852833162391317999527486156327040744385373604396800201034541138250490817569655169449199255618058902200957858610816827163013122719720453487218623627477894294701325252896231398338718687769684011110890220828392128701032558591810253294031150551096785720265800540943085111266878354095422075525282564282895613408160758890306878393008956111408995855384809903127666088198492681501802572667958276712643161710132831604733270473614674383563565062019329358172727028520441797981252098452014773305387319798716136766919894056718189878078365521024618066783644419233504043032969231379593707332728693651069014343682237187589991664308913989382904065092733677895701810409759641421274956626819276869815981457351684546888176160412987375147031797889666949037756328668780649779330044986096670975401350099036024038862327876776859311323454367895771977982099716156788384204761712764136743464487679325040831372084552324001112382466433892000321102660786705408307388427254869393200320478588002911568521367610661030698734388662298157582678799932238600935372065714183985422253984195801773907400869828655576775172554247151648056252574788347536184212046806636120113672553852803822818847480127321728059546409008542354621533347978476017625482475091302916240634287023403605507731179270512998463841465715433356554884039935225178006088045095843566900845754597484018217722387843846700156595361885247828836032522308529537738554579623285979680782948020735772299165239592187757400934387748084014232278959531758129780542168734716679495743358835316157220978905249210032008694771258275330581494514052910352870116598472164373566837108158104814795199162676738840168388782565184967111661660313520577211265581042729623264585844013549789768784986679705170825736106180725144253586026411388829333380680774023016007856678333374768517052106942651627857860929979362827332292884139976435900924886434054532214341555564159840586490306436835464044014414818093894221533775244242722905259225544663036167932364724037859713412236701320246016595119182312854604743479012071163494073839977807748892870943078291630288855991778527086942124578770258308507524759408713369414292365115934716377507149694160552730779495559134513885544314236947668094972418612859906031597823660517266044998640940312566335718812685289853988223875747524458078431742844252025340737258977447167343141254271376251813456938127531356778514139698458850585701588709071032018232797078155483583604348478256612575754716337333110235927394983795900365820388283730122596924107210679041303318254871303991580519447286873747632291389401817526590676617051058304914595320227960941467375583565104181417406658801051391885965097127523010412335209947577443218499545486720726698238178600728286188632091368622802681644760128807994615649249370040603269282034513017701930261585807822927437551142701291926428270662188104617312342315530852489227307811390115990662076502165417436268938736005757328109685565207939012580727303687761736211939104840780523651289036805351615790542999770873538431841480938180544039375264155362207723274290743311429789666229180830591359169970716992539703175965851450089129893812078926537931304617509627285340572413617902957843596526306760483970598762275574735416535158889988347817596677500030050303640382358694518666040782552063620049665520471117872897313076830367390014719006818735766962595840912557766548551011891241205724729094787116332633120558403650236025296605618743709885396448001936174182890733958643519787045909763350701047764345414287983930289962960194879911602401727607295926645485072036485768415463087567312067934112091210797167941561433596120810925474493208876806076634341619645148547867288929045704961406177943545576444315087780832085709084440980015496003750550007740540283131723422059462313018468984854894514070069484306053178397149243562908589916065843851474867859347395202492511880801805806517466380661601034938775424275043345285276118081422531824682015632456130402564118010180066855454389398432740525848478856488206288581157511635905366889741653830483388941738034280236460596467415481486707920330610193925156289728174822410220801890298683885883176854341480830068942960314748830636089654165191604712537080320467663510999881435718882773486276773485059077874527558055447727014781043086482887701819375797872214396572075760142210399057846041558113201055426323084862778813248068366513517565630593431548450405473732276167157746537046004663058242076321279812221061802038420475351778658794501794225750533633618241199464131384174703854966078697139868992529457665506989608327370502733960996381485530555445566362068011658728944524101181466262003116942429632804849551441538507995573746692774899894170965757775250038859286150160642570505291100250249866769761298834735137685087100004355535395144910072545964198033230810830774722523155054076515013686571597444502909520450385227332848990444559144897727794865433867320725894330162997771739139633428283217860506687590633414186068467440225991365172823123923049241159360980523347832299986709758769781930650499350733375868102817152808460390725504052299665634865567619488158463340190575397562537076793884881946153390802098686337557107598465347206241789866672306810627717385938027977927366168458414435394286076168505417652036034386584478013929214762355022138595114095176847248029539018228367335163455751950941387488519795677584337378576001803337118599819400891949891438710604061564166018002098567170525331879655600210938344835654563968307559685530950814369094687936536273991076597733120154416994132897191839477519375455660186274584416153017589106137121626214907319203934596819119005923481269433302133710264229783472048127904008814700357548560353942784848747591429516066961702029233504054730382208919874764759104913207964025316063369235990390989337042859274503511354895291521595712321458113134672768824151132392127013841667798732439042343030767916060979649062951449477260181857837165201298446133859147407254031283454424654680268139893337200402492847859726902089385530368555774805833937694189527999406363605584443930650040012741362070956303475604474658710508236063496467659657008094611821224223425984842147311174213115681096315327351166078623504114772208348337526151977941097809858552229014594206117856832074807453202786542612717957035325793937743690176156739285522610966711549759569856185099050619322468961974515872862239770259027993126149677948016170900956035382067343959023809055839538148847311997714768244048673498995753059530562254036903713050366586014666407639088100208579992688925011412045191736929188524169470427991910980929986893590408083666005971224306759224246856961693187768382785076011950163463991077066173083938566837855559515423503920075887224525676468286654299900531922126194331019900084397263127483295893166535520032911751966702728758411311400187637623007062261484069476185636499311709810099999970558798691945531618590470955877036170274933348252008242790834683540814262346901968375334415959014271951880324823045072242754984126953212559692910019954143742622848660162245604856497648584761315992716106285593580409229658061347275229379911422972430718750146538475635868653483525823656816274347114689728779046271788495335912159899301116380279173191210589622246639273770279898307873106258618014870136255161315552163323734142036921145808687524422031654143883302686623641627428945376113797062029631744179903381931581362143076008381997727914191771161050941156708338504876299002976433282612591972309787813009593396061354537482927493658808414030287342269733013762266288233293248882439085787293622912922340886265925864101212296273978372223896532312469702214018661361759209122381788265881206881499165665386328987430569121415315736050366637841652759269851983971587865318145411226117628064834122794715484347867765496236400787335161226532714924576247792915822702883888560288467172585219999615687098958534004861786852255696227608260504112136569184736253325216694141476665700936256987861952022148476201633461987091249186980690844663058790728021888513065951832898548825617374508731669697650307289111466503950000148446244320391413658935364923048060827023418032139276739569288820875394683907061168719444076750094096744728244494894784846971528143343357980652491262113926218637560401562648863669959683323789667129277702244236376952494939191892972651561147281047579187790380837722352890552092842375523070759707351020917417828960622773568802198276884801159547489513629666874170290171259400551497327434200390134186100184322568459964226134645394035966112617639788207302524927363296277433070389956571326841872911543203125785132786189690296089995019452041153254781192860321595119726496473312226764258528134955601003722648103445923964556791846701375866065239804241555984891831951044474928016196502511735368439864169372673873042188256479057938708074122966911757662168338989742662692260221420771206841275723897708194710855100623751219249182519626289586915532378943406631560523950756730358429683798492589425261398523282643202493308859872554364203184511504826690504502945324250214701148375468144708826046127917126890297041103235730999754240441036030947847313199155546274186930354561292272163002019407242771432487652726847858000242788485006590921465697997972724329364611853337600543932074863847554980699563587975589651308671317588131931898756562456537142338521102105073063711298059743677230112372038315667207837182718186547028625226848715450554956798312273736337418335538181096689096778153489995837095922831871812661221860356219527275836473693693497877361329610634629095664378541750303120865686473796947230712150683565744507155737921200061718214660178670978643175768339649344119394922860138986010512439031368922471401054903673957851083239998665145929996556474508574002820010910299328435313758163675935543352349640520480011063491208188598364924272209384460906639594163127617284723034630255879123860243247693974391600358460451384926126761044183684460297961058612705313131024120195321824056188425879397586443989176277767872253825441617168841107179335395772882999229099291834293574474598893380830398078687119136804915541720052495371680245862499926968538449459022155767120050721594630393959188840759814075239434502030245483815402064310553153928841913039506212301848591652593488159012084821153049667626017243832158924001709551705945270518841764834013016279690597582146897845643143355594918551424313461913787457303864379187386553639847375930457870697698517723971012548049143602771003457989018026635399842815410208365045544837396179530253979699121675262007720814137947197113239295791408927244845634958373190239402693016991435514516049774834327888431325718037067853363990951865335463736924586788098592328093346221254042576048414974250617448645590630384594745715875162469977776343536556845556141331888328518505251334086484251275122407349844355789793419739547692664115177283534253722814750577309335862486811564257484658909576501922395438470983241883408645194422106714822237734851785822282167537533168487647138285667382420897867669034912604455542154598273531274726402216395870435254668308583788453225091836061408160093776477221955027341573907929920538429520316318530659651714407682090589517239298687501017564897596854906444838958728382895106753237675842374073001007444201420053450208107062738286729695761401566470983566989943062844806754997161446446351432478182747650219896219954409953435125199273131283261400448863928619037261753134401749740214285060419893067897262519338346787123360511899636901272713024230488221720935600892495164116789181571861638096407136231839845208323290500829961211237447926516702166551153749404007620879853500656066789847937994697638407114402568790518836982994555930785312391392503543910093184091687274978770566805908597349603994770463875250733000715387683887879252639215739836901740351240972741318840963360353411268748744481402773241648563804526665872435992507832978390877945492956609281797419892688281598140637755148274364058388393002718566136441064613363957282307454459643214239043512087810827330935769041202038964277380930452770992769758659474723219203179758382563321317778986179499794377995996931187383427121008009698149830198203427961056664932825111926913362778464323696224829935725835274268241774757246430411395802956575983112281898148344432405267676495636955066941082924883095574499444872431846493629838528284586189229885018541167457021387571886494462810393790750868813029742132438132741560054570409468694402304620257644125393154593687880479097990749130511657162582109511454749394868235236012416457991442511140479731102961577753662842538540183480978787861734689518510831722081260399717242504661000339436249137405179890392701252282481682962077334246315068819109775459046828435631759416304010794055715374202273475021028531834982862926838359711517796799828339349317120790892692917978754311894214249742534473195024827403138416022370917139836744322203122968412403158170976770203797507068567406304156315813725560876045780090708340235637268197846067524876773432746217631067657954508100196163133983529906817095697887002620291732496303675125421189988566681989463415012396447858167305673511753065950194359934236476557430847051388818160036674076440311920364899248889188446296721943481135268610881448128212779100277025000004726275509963302467819081498730442725961467443852875373547816113293237599555811761803205922281098403806991468240575472966273107993625500975793051200732578045947208362338275628970958780276786887106143046484337231552696547044960550760424635082784527103601776074770621900243028767531639774508127208190974268179500844229817545035002829961649203550790262253256468351967793113922690663226086589029079206614833235840648147889514926232696268210325144757077457511355150476192345959986009866266833776019521218361772554481617695481840103408575294584460964416077590877701679708044067306961632165420789606691758173826813314515413741206262921333425796175626705796676061666863698608988675021208647896595626395329733075238011830282430070198481913941620152661990300564492328845542691663551987984329201714991148552100615709172457856001726321633898317094159938923353879184929145247794533474942027799971390766844128398233788695855615794202802896075924519231793522173226838877796142215012594837060817537497165895118596657633491642068830856191833421442819395940364582838402006523083033910696619185039960571781299129577307319661934195434125727775810371751850605399812593299607621489185382100203061835038966246800765421105469215212860304210308393604630895301666818267257758637921785601484852312972054158682114988865990846853042696337932525449902842201505209027698455751106950034963507213534234344525882926225114686041422038695530535537371344246273084314625544133342254553300280733388885496282226275033036601741061401078733799622240802645138701963582827651942406043774137078741984195424486319854270865740860935853795793364906799008012828096026342710250871641059526125380597581134275045094026424731591787197525415148287697990451872150367609747154242266850789877986308310661190717417255680242493203028511744783683937974685086823489039957291442592167431342150878369193222766303719457569215937963066686565365874207086656475036849856485859657796902032748572153576515542680836474704419945394012915235079039928280383767030973051148212893934987310371009552689502244131808068145266570306529100978520311209445764693884343931436229181718825492049602656755172382460060270232646401726003569324540584901261305992342828983403733181005829949531854516344324203706960155772639884911567414856246718623201038818815425892852416903825262778566272395581288117619433162000037699484959484965530050738272091247108544265149887046801208416714589271846175926248203682038599966294609144962103879183104716786813681669607102713109925940292283576367461727495684074963450303846219896421388449459143657321880969572780766268758875582827158354114730731020438026365326773410612077412582735280351073142221537097098718383784193444977438749109485046464677575499119861103108726580934049008271947989840967102732977885264441117025619863038011031794134885530293280988243673150048827364654416319183170811769844777042439744369162142746582107693889905327136582802600163372245933475133061602551093150881928326954378740897383256344522890602532137312094283823722629192229354285210438551029563344999383338674781600095712071843359553498986768281880608779352727250192820786149198721256296143235661061946515909515698829693015678959156819434313812328834697203913413102409284412347735983907831395867819023071709059169282701126214670334059016029934962914767938278935742524554465656467025834871852027596532109003511904326806520819992712764754657295494896106000309377910547073209361509204965593568247732046665024496682084399298271441661535838398173335603326364615949243793379425305554730832137582164155730020077979782384039364264189959095516505898560349197811218274041824633449014783640078682955049165434726856124713600020011467815922768753080808641708221683374675855105976215000817671346082242465140819623924636759502303219493267226847150055725666442279652063744861792669362581402635388621483713780280566186672065605100851097609392056241875314899339569927939389786282568044433514845123636937824535698170179384457345606112810515353129355910909244270687739959740738427622177574040749854273824144494681263628858101654846017662782624961262953510808706060293057703942048276083883692519084639517882072644777761670278539146788111709333834660241039546070723051427116218902412614389361058031438656321310583233015439579175773013199755226082327037439601496830880837704280698635613624029559548690478393606269734234598219420850117277820093584671931154085377940820670147277581549751763061288252683476865848181622539807015120564865505425071115252305847389275012636766582299881403665277664367513192247810001486788977779447939305697395391389002976582924938027334682758597615538943585863601930593391013793398423784390931970299476390196003146335157816191342989195917470883872353022874174595149969894197376672804461168972091577708257695702425633060270218954713252917862134653635458883371139686192887179355311233194584355955589979943796924640546726737075952623701958079832699599030199383153933115516033182849183662533260653758773861975506337704553024260796967591168619772721480180397625718788397605769584263900291586258134901590212656835355432650621720384394281893658721191523690450844074063621108014360247965019430078008106086575541315508316656441112944572727149859851349692371566725148059810832225479829112908884771113091282595174016011522263766354645629095747023481989081889724364476072440844708779897342822638528780454042039063078182659396014782634816689343908416508355910882358689192744471598769876260063965817878949448991137914697963364268840342128892491010712718144851379158995226592687982716000304910084598475218792249983047825124916606397179094830922155136940613048473364455616325633893776572853200382593734162727168233916131271814326850737972468230818195719283617700514440619206186069596598977133809032709050347375274229806631712993657340666325964478611251702026269618429937627058448320251526499442828516689124905174974398110460827980617521577952039484980270772827191253429968716758255500206474723409718104373819790624329796303784042397047663442181344236124483957695760964076275553646245917173417028571732259864988374251883325952787879447655829718039350633311742739341954615467210447973848173034189056430728245442711694458616486827732332544731590997060434090083396233389038410681589311618279904336908904036272268469397788256359484397708288582903993916893934443275569898648807708513476466170302730277521429823858098951086687332226479913808462068293143204591913527754783080296198804776987185383264151666279186559321186298529585758840705526926189593672605987805045545706835932997099208496731846874105258701180831200776423402122918805455816877071264686492639909118483671698060148609280865940583677658238409712771777571138365878353618241475863308401630023161147855173292314551155881021786295372938918465106295675268626508589189426476207553533615677722963401645841423272377020362992566384901512501507119208790260391488044705321740386263347129886553906909508908629792678199634870926186652619540316860252840973746196052434436250634591839892245682729376260957056173196813949696269179726367331623423624378134309604468708075601342872002806541064225313423273425274500934300899831642120621661418367631868871442717812486859608394982758054052171863957237598673001204708020286391058663344719011277375690414313140246743033785970784452280964561091351111895539612633539805172399615631615365617367406793123877743041080251912655681700904982257596025365672555351526552859376770240411135675674242262960240822013181210602487974930505243196828104365787211662715424500953956716995694366305587683188410338859615942369491515871870151052844251319676132922295435232749092466516535772875922668434612245800081416784553576466343772367556676995034195684731311490688841132798487563997826656359862694868171746188190800457066476206009664185768053573072099942382402049682067001984448468254881930542523203776119672150902029718994434555352498004075176019658317869854739253080835483923392768810394809343919744450882347338660816460021826407790099860011390104726889816251009030440143616103778243807204312794272600629006965341452310475910856459668004083653928400724049100672767707559705113005002011740237900569298131581286786661024805328803963862321324129945609689010844604566093378401608452462600584625144103405574579477372294028151433280807857737437070737646358982742981304882910524132112674724934135059052246426242757154553104248765865418422382467081389374110627368029167785322059359333107882761793388400328058029699489886212141337557170660140141063503394897510550451098757341817207615288660576136130046220226274428351725727227997362813856449625653234521959929216902605682250031625140408264550327597684590204932313818947681905092980976670513997342669429769249850454635404054347064732645058660382015113881985119797632458563675082684451050222291200283821460711643825547913685812975094658113837020331324769264606795369151984671247518377034937017360078042345734425307262279715700102939240279211766090621633319149838551920370887113435003055172432344253742467298793303560542263310153021701461533701370875162665812535549668471433642049800452762154802702996092046492883445509500340317545060059091344419274468568148019947879748606885725490240186582000512963661927300908726441243742233501574636021926711887545786470146790130726654735487218132288770803617400679502718764363191733220914289890365895947907458889639339916178591785339603106589386320045320283046405639229327933230044862013773017513530189984363011527932885348331539563240448008295858205798095316775077055037239984123793310668169644263664806189787984448647478314865322995372761378470989322635177467684526728123889684720096013070302042835496423450364873308944945512569544773992426502811427494666523384971166548412071590416768907773087706145174793225960466739144297770207209503060285960495623845339006840304748772500090950272914906694344289284412488325377745605679882402375731652495829540022966469100033739045438013977789250064816119042954200979196269062486630472953627742848810903985582503472267650108981756593409068027305675903256506561362392164460657237718419487854774598242078190888827302285064366936442838016948014836324258851507929039010815083405288131611189719814011631397172684025340152412473478986143513161304570409650917510573703432957639916996804121765378303121683617105824808874637377266445230755362727720337674521404135013752921350527705515566922039146249614051498719242026425844225962704981147590695688638547170218208970849324523606359181991321461813694340573687850312035078773975726802544231060850875656242351916974473060542217554834324349006798290359163538962012303209413040756623916087005972349897907556795747950520995507426571700022814263417074920857433787647700208376468653238850268359872945320931770717765493040515860844263962068234397997390333720208221531210736854726833732442546459511928572917982858552386773220424839030402815869365540200016946659215550495481720359591556342805330508575809597237049134849796329773861234396516568985181829243664713249066766402709990170966624744956347391413116207596378833488357544653324861505024550972271968577513388318609477727524292891933621662741785099148058282342698752979614331860599695790208968328674337962895835933351587171579290700622819346821859157822126353127405148186403242506867439087025859162395468758749395652681486400626475692071009334141838958536821772678675437173671099156620794040114498166925577087878248910236148520452292322990776033100046074717430308348732566492552282156617703570543957745541223207932118287733907840521535142459631678386233785035196377194782591244749576008502363746290633124543908003112524624698207920543322399686390300556568439318493663371389555373895293155531748252796425590137559144035677572554548544394996470150275815988251556658690602593285279779328944696881457549726949716169253740540094863586661137055710486551617814333582031426283191206805197763378796829234056382125629148749557074163521157986028940839051057566387681375812845161109496525094728528435417142367674337449716349835872229760967890606494075739878711603307694728212123827582244631526014564897864994060298552692505397392279928324141731141914698816406490244861794151377078695088841655273970557708053900304467199548975265722950690494836952945105115119518802313871361250513587597216395874331717619821555309860853248214085309861202255797859734428190247384523788331642347668136123221035590004237254337545568488694353863363526971266378518706220559445171506675790023048501074641129024153705196514568338377085513847693046492105145946645103553150095042445881524747901194949525367909695065352332226835930710915209130411975662966756954633105398452117329710101034861126893205233207596889838607643058306107084346412278717850665580381643716112017404948234595490712017288282520381809239368079426540923330363674700028357356415708417369618834442846239607353860291682329350362531301173054581011599623752060380544085283251343378049140394686111255998321218603771570336466206245865812091235317906090616699956299897746968872620055399178917087639685681612474845290047700631819125971063710688266920240875346309800754855147058503349848760231882821783036879827692038412080845917914016748440962046524988435516977811898460474062318616807547010283353998129064580958372657861938079207498063304348562845303014473817816144609359094143165442655952407481301369035990234019894038963743785382452476378185074945900978076594340469041704832163232832465320228889501005581232559412092979375797702398747854903023532168361609510916828100468610277136183709393393255526147498854478979922208951566146392354252185396571586277578263518142766096929342100457789549411489564899826111220308878785503588260476198925094907448424578755395304455001986291357775149619406242963096613042474431562366919726667754754964557821041813397357839938246752941169045652996216988316329222982962123514970397718280423193143877304317977095028472917938348546718869263674655214026797116069190821666987562494161101339140648119654286348097828376777644026347972180839472344014056760629889352310908103398288575425059630020114621728426639418773054070675479746012917528002520018415606884685847487021743791852177081919173813246409690830787993931139041837241332501699591374121528646280281187382045616217875152969984631542566599630516689417731546758332955608345359712595103413054656552504081074715919046454704320463952384797816461213707776220128850982502506135515036844890041779897083901187714032736642535147271421872503641236257391141679641598290297956827579561464302632799912174562581611512999368799126682352400037170947436334653166281207828992001540466255532955244601901914268260991169293372699348617685759121131456611913642038552061142706146660823018330643545030424157997670496119311156847785676883675503603527234827198604326942876034211068756330952018186320059207495195945767438763050250173346102405321186764971894636149517271110593632904327815707846912946914542690116146860606047516090030355054551447929614985193213306686444215085036740787034762231414099213789171015860607300338491572940364461992935418175719343217734971345783712998903970863875176139293009218780613661574436442720625664063153933589470328541377324913559209429430214915939630409533071994095320462713780391069757262772702053708511736738606001041760275105269936641115535570721482538947731638489455196153610527368337850389045987280597155966910969700164644182571247128289022342234818359703201050887462126303444984383369823096964796232117697670906389880378937322313425553807839013165589694416104401782696507664364170251884560580921411551979696435700307056379197061225365971280016912485085595980636370568641489240448094244201313514036422108819472153320823514245682034005176570350683151156467821671337539718501532010422394256052655713205967607055053899046484507972344968116650782107005660901234327380527935759246584110090941184612691375950077009868137975063411324986836677571644049186520226413027892834815368890823507442295942315568411705660226691400840481806312597233265186718540212132885684516545856392510394305655703826291403826958618977162875459018020972792585514055710110569510947625486418724819294511380682055047420387360577822364727566018294573604606540920952533312200320827838992939204391320876509418962353412393282004552992295851302946079179372938735359621400779461075665988805811421612866851913577008798286724334030282337917340066892067488163990898512475156312020350818052384856971050048372838389184232521039200386744214794666701112313311370740668013147280182816781778671377236251796988676306481958955088233242785921485942452218095185542887010984713237055876470583484930755229043137858315109665799368848102961522211812077722944812549368333627076260093859005442035855492966485335613786671561096492440046161926803945006476723660418800766593440573958738577018685648467802806514655574474548136947582559894742131189699028709177363364348321376470590623806112422086563809609705666296811763229700273934279516686066884913119684181226772638596768381214621959106914533083142578612190172404433494275516891570081771671147772146891123227024892368919342245926359563877741103220032390040927580528860023410856372464126033183078003539132146230149313829120847122711052158635187468242675017023206116181730969894335156553467596656134736283040334472805947501921374008924375733311353110913437153788076374287325094489400856918480071853513664884416618755318037398948714629957133363815970077294238268670961200992762353355546585972360887481155993250696511608375753206127322678578059541052629747946983952723121958854842533726794657436169657427565660889894134064182749365325896881787010470346763093562340304622554009424072991294599575563996663598554368530018523824457056004263993244161112294926643151119019870563806014429541611626618095870359829096610533026967374738171963764992310163136803199452245383162107697204855130115861579968496216299674643218282270658360831226730672932529002064984957631088833174292882085214555115824253334279089176545723978192758370781792036638115543683835864131645588527114565992669448442402229666821712923616907654284148848290917012755992107678986799173854349308197104436167455849764869199944437071462596685597837825680422003675623917263118578708856733967746717641261871768431171955764600671228916648318775042481594492760501180286545409547827856013900191793046823635775793034572134251556588407814770354079982321942988376731668793194766755559982435589660117230886619831617426412988078140246708182200578768969962126546430912729601451089429446574760215374942430678605375941956091522995678791860826863991751926545782522521499637405507513041862055872753384977622954562238295384533633123708121868345938029699497279093969050284760713060725666475442687971986814772011489142077438710434712882460479545885273125925168192895951703321141952302877882327508307542959395879716634855952621676414258707428244742499965835059733279036857644654278721029233820937323953821478771841001799619568295979646576688209309745185490493269196326676598849827854688581741814703035195255567052329297509780770673597086382220178301924812607781379970927968108573036378219310159984486230593415664411756093707897689090494448767851987298783374993545196757173690767592120917317157918647077195910707703457964239985786573430243085017768969414321587692707348238399543057723712688830032069924533913170109417720781719262297128158695092708794239472098457179211357154470107235766837659438680599785509814884374267270496709913696121886370802840617626380628248844136273309115090279094090513268611276259806375632103446669956602648918632449747463191390301935503256225922374616333775670562364637526608988887628369588339822808803962854336986719237781096094300887730588349671206462070826153957505591517561890001723866513628061396076912262309303362729132260778728053988840483322648298654567727484057181897886677774213960514216783876205541658611011088409317737862027256650298743723986228003687050820071881124626297369006787401214514069776352294488852139328978417762628297294918591879958592694074356002541170078371037571639166996413292055296089030836056273373087170020614149414849045253925614032769497724780967761733988421432755792829835769116689764709500424424245571142929924638159118097047939001616121458500777725979530741118057649550660823882318984004117359658438251847620220470970407983769208052002957519099842171574027601274980679630626175596520881746729038416357882145745480576467470037449035381080486653743491015799307247200542420347187683465035483803979393780602457525818203205920402184975430643633858352235799615824185315874285138453132805198175982291043487574695300336795973894554722241801568907831539950726105201366094528984436589116221197380815335940020025350607554471267807729713140039143673830230051480031332006025377562617601416857959558635670525880491494651480645619258862524871719342525418115102954809556111848028458849160205919474412552240838696086120483069616758475058799334062191609080816848682009906196085213321963838885505585468636446268641077683226088980278068884776781526573019460797908258430366130110041210668858241097931321325595264855862158855721020297799914108728947848323485564827963114886415582413984348253756453335670417067319725088565931871190658418300764701303434406785731671940198547996018928555254223948765193261735613112204057241439934142027774595816639104044562526127500069194498210754900532335542690634988310391588331536038945123002123935172931903875228895070809239459767777747737332183484264839756560798309118637186451313273194970792658344005003031442489364109399168464245249561588523960038773435762942280975277994580438290303871779126997311419346968253299717535193622005170205984185336003562986044106842949691652541855307102402739951763248184252885622746448686881205512408323694368601898199038288213317826110023774041087170432885123889161162149461408045830701587282837603410308763609297636090763263159093971565214789728258307904712285809877264305631549222843068982122524273653213280504125280233421812850182876252646306930891670771285949764701399261446460600960956338239659487914052683202449242528233567563073719038501791876136038005544404589768690203835867765984505497367805503559969383110498968272434496054135810692960357576178604305279790295727933417063620538956757969734740626227701983828768666358003158704404640887863698248915716417622003785075019769797435987954289913724694848120857281996355147103849089226514249874329750956395773488980560281907586212828485039687468167632678606663352533243445173806381285012840235502878364274068674686372546771912356533364761565905220111425913841615291148236642540014318109843295345346337275607242610287582567379174872039823653114649350478393694250149311471381300559490034073192134544129271527413247957617403696032939323404309656887339135707125212370395092588355632392560413293165407638854044297865917004497566476365991443424692526236963266503140779787772469441777968937302335321913826738091159387822977396200840442556881532730310377960497921140545351221946600730091193575441145858034500519648346430473926321560086855543270458327627386353932721727034615923073301725476108619213060209632022195964230645877095338864152140098614728365396888637308742845503009723757829759643124947096749946076894605748963311447064631136573818300947134761169907161658283615577430722291920169819365273889636360008449484414405872769265352217441150124129807412178120381440878854564138583062769235804870740168317199247396220485034768667102557205181558320082381437052878551977088891531989098193542080367482226719868026399198021885253437118505104277027695592920075128048737239160507849858387146642479624963492284514965313765060005564139306873247289313192357420288491999134200776732161118004280689695078320638197836679079606734655483116532840905287272507923589341785067502188881754822656864359256716369078484465903636566929744192627876495489994428803789554697819035487482979676236832578138221531266218261414171543199331112784690126598165951195414340241112486007927927046084306123206551783134756711410526334813920581109531255474366667523002918749305318124689082856549596135797905395884862569935676791932999358389430104183016139835686410213734963005069006950102553604903405301898285887404785639639099180483229174484349927073082272867990902010857253399537258468844386500570899740564661927001495057216387625584367400552669302830002987377965092572079715411899530154198615293771769684384916741237366256892122742292294534994133501025500192781467023676033940482979791025404612396040289412344515022301678991981067032654929889160643164600730398911710736291134644159270193443282653718275297416785779468098063978505417708939123840731737562654413790715660072967263978169515508190645825886569721044129804613323514925568550636147339468975464344351243303023855659225592173888458298949189577854294528933751285572759191642038376152129946705377603054215161417297066361063868890797308267726962194015853800429042057298976783324325623888422051603414374094048864104002052582136314851674829147109763948433185745356553696752439141138234048811660344822145812221242084347488427841302646838062065260033613743794312831088499481565476523147069562976507261633084898038132374422248029008036455528989468177895736099259063095568608795297971938191494968772801763030469690414553942175475614804067384416249729950202304776027922584251275744648023186458665115610004868379147623937964144304793711786992239190333018562560550046795216818414637868135641334322519473108221002251150388437929567458495853678414278805268810889216260797772800214374344966252705612691747008073714462947727980779539749966974249519606414331761176570043253650657141663712882089878897804679793826521746155387621064709708867383691502260200541873815805730706803407724466528103217524130677938188738378967699660698848174419976855171518157246555506417188666884155026188619644702168894264464325611137891780598151480674590927532000220486611349513561953009492823942206734469855582898269828388080365615181228169762888201809714742705910135324819487487483742500484209545908010614040493918395199224315895974241081420155601961174475101857785742846593009628427412693014079449084699008006912067626995761686676657371727366083669683441161571512421285874679365593872629255157155324799315554724316072951233407437902353960884873199708462645777299560716806489284546397414891145026070408553211262855388622812880252152038853729918457973372063090568245709470629717125101004034180271791683974063283728613197668660203247981633031657860698334213188601636505166319133255117583228458465583759929371681658840221723139455023518697986420697671436182171942725109950673289323116774692634756410895681436857211125829090667226830199750475787124921438059430727792863019174742740579239879076392577070156780317214083199445445340527278894520799965293930660133492034815598646422410458425942977137529395152282993656308222253280010756579198080160507583760735964300467740811612452282300919746873112785158396076440345896203422880235879835796987677899085341976479139781352763910002541321126669235556178090456522148691939418902044533016082512867581139941299325764574006143227086296229235441142429296769583277632077912078986886220842225930488279912338056027774971669169835631928888529120744125039818170901317470287012874063298200341352309216303503879125179439652691920454792990775809523662609931732463386535218403158400284607854095800418279839570516251376446528579205540187908415943385097482973592147226206056903401265791653770313138480919460613515990308888001184634547294816976868942412555453456309211475055086082713857267262022815163443703188622510411376350015457971961173542856115283055277875451658589994243013557490344969260253515729708623735048612755151231491796534670276470133278381105725106375909383603789645903779028405419970621851180918981716944174953548133751643462934285733435628053075172674121507165576788312794435994048034645398213003452565396565073200389784218405900032618817171885717457566365933148811972426135513196558530340212821958275567836859332428270177016224429642827889804317339188373647141157882636571896281380141584949868145213981539664680012048433017031740267172808687322222220672035612978728361262623348962562850532131804387713999476589553350561993672299181764084706973033169138761007360419067426587897221005099455957091144713885318757331140471579588333861039923118669532395034357353081542437460296736980268314430241076180004093788057687893103278175449382823772664717864968876295833420853140307703580189241105143902104586226873994435143092353648870037166245969583795450121021751808678278616692596206782228050245618999487551688097539613663391674436120202175800862257331381448291657025607797060124334181454839737758330068236310301737991242035784253439680333865341898516942132848790718647757855059000662139533514869828236204589475991251759301214369948818071117812379221295331634673911025889823538563128342943369019359353040209699384363975535304436130735510591855598361564647755668199290292311681148214386494253299779026454056702132074071301594285868472018943864244041203165653216140300126742435585112631146920341909008284922713010776888332971964458302524045249500916538903159152945497003111216496581814692374968988164236586384584722767283579426836504281832457349229657680096321055774239917738660595443902012815853873091801031321918330526545939229461597934767018886901962249417185205334733030745786912931331838981692672364837612658165577751421444012978474271856680584306638977924637659459909378716045830393462467016786851179147278686154906426374297044174155534435780080353026108039333353465228737210888021454241917450940160507894689380108513646748681321624614066246206447247471047818079374887291795534747714336913552489658282539981007666909507382204439686543870228931855014457338781647176471054630571969710776206502703534013764123203860086047214140871204948183160567080267897719471038676503167514793955469237523592755375869412314545199765172731585164684663933435436417707659817696431643869895885396349993985950244258831861086803456353603889115684480031843292928825470920143707716940443550098036253031462453552021373849560632256628271135075940060134083437055656124008386658194898280350625637719666800029639053893588444652501848830597989281309571795030166813106892282611756162555579720754068150483108521286507418802591199465686262089661005191152167825532559841325076571613280119730416278551354963242905264065372929791753475157523199278549777739927471976461417098782138614207101922057843435861966329457635534652836221052419021691387640376477393607408251395394499180394088876355856898283511853303929753578159516243875075711705633390641340231939642109013718062138875534942764694527907243684859183600083481086241307340528554344214780768518835803890598324963206228137317619420092081296940138977999712448008212223923237717183800759390197839976664619832442162714075202524732612545201989933227736661404481581577120996047322851552612433017702961977793966372662037113740927298950695416873624635842230523050697818868680853149604190210694077950983796970336258515542615086464552534952323216903635866983308950404582487413582236895122497021229636853469844287198628315232427511074814038778008790838553551768587103425215530276264260783051104627911253610626589215662495340747831444143919653058691442102304284263198368387166956719186227591683160300006869362840236508884343718140363003854472934345730997835130525694603829935357784798287907791068061790193702797982712451284573407134683135304172216338188442931307757473539722920663891395201387137844168851901721821687397344913081854839256414142735274390177993865936551974380822700273812080190251348903356619159739851276523941631178588646317617988320553999327805267687072785723327139204661003780112221876811829946016770351650340541039350446705553238597406925015983262715822438324630835560538316342988605088127519806695608969246180507305224851851004322199542801883792363573791032193911828060442223966254632597664092887081396917863943440128033108751864633934931183374115306476022917649334309544711075065785826917617996690855699571277176305974643619705350418887997175755944522781928697724235472476601579699548771331809332848463939358926152592894359901703024954473526157601194100780393113212057939742815340501665772596448051096720775129902089057082362047960404230866605511210108584994157776138518254901267116379359000891845898386682431871543716319531805080131311402669487911675155700224107006256768487473015332894227047522464229055982695642459054138120818809725339194234082910238343164158205994629151155974240660985248995997314191515043976071395428900971901670664904777715477030724778096454275532306546139383689421157126268763586812387367729157327151369553462211452938473019518172914852540540924681024904765852639958871477828550954831185894804242730425662223917237479148958932490370114948756551896067797890504745243738086179013753006002620377378112726607942045447210216603330477607625488783967883289588930731554353162345094361749887436532455527099297647732780037060384655968977117447501365225088374972135113021886565646009363349421324173624617613933527998571603728522736780456152371307412846729633474600275151619647357581356775815802859634802585579061867571374850594577723959230515017776188831005910737223093127385841180613663904519417129806925592577622439586424731673999897098870670066534496682173836414029945601241381824279048127355174402871021837233266617214484833112348165285057238866219259682977166120562796406731292916824285674172487851664695418520682771943111075640814877976968782171903810552568091882159010787274395101911923209495503603706922914499012736493034227777767407631340336263247279669842785295385730956911647019943056377421462897794093081036661805949539878747778645631569699996017294109384369282396674241063123536914305611269130152424292955874394781878116065137639799396230920479601003262470063954803636516354415597545923003814907992599925701310479320472696902038094315676731558794352942514917286717369435365191752978451576470615915603694203268534057538229552408909732188583859507331619808991510057206521855647457685680026521434819542292993278402048703089332870714243612106361483325741699578969410519259373870723809664867159243350668047656493893748022228675305790017252833455253781287741138438594435285903103848649554100272552228632748286671174643006276400295740426143487734015453041768421447009239218454075304104114365423522080820476753183644091018914787889411270155558554680593882875523529353409756196114975367373622491325532992677513486441732457697287877276650998383063326335970162182588248780549594762550656434967416356404249104036704528124799838700548167659749705431620159045725853331240148860394549518686359411570972739663355040263037803624043650388413970747097554738488025864512478822545083832942376141086300679296111991636171574843641059708552782003028311084684350584623423439710645242543478597043563380488791518592979957741477801047315482292133040068515568525799952489256906944083741812171118241861887739712511809927945368857911703392081930481601293744905902440966510313941763119128737289258745536105692810133929498270433049934555628638870488425731743088478641310406868660660562131785372394982920173341941749322167820448408023934998219355126900664515820737019841104546458069539992365207567290520361191490314901150541539711197064538206746096042673321391853361257654357116745230478009347608022809094932600263945739322237766890378462593625208580229678718487921699309501868573784345772706320812260202749989476811183939817932439086110068705187088864251960660584290040589055340291501766356239226146408912095860360651342241836885759580782559561129999943548868733658240315911363949194753904120398316618189306938472225254297809410410464676648594724693912142843111110769541139035284743597219368897301062533066449621861682698376220311557129369508302655681162846194635021394023210241704458559618117429386810863044649592243872397983160976239960957712591468199856732884581883818153198857325358826185144092280198849665876982203714742223702153184478622184762810995033896019793220611304662431638302008022330507650350729064337068732353818125956557232128113757991703822752360193276953103865149853503061982294180809469159184611400062730157939125654743842304573021267332491405298723527549625211544589874608676595936497808538704803378160672287287893134717464098686801338232235189603473319212728667681445233784205543939069568591617492763309617529375422898291416218594543189114108875872108409776304390411596187914957405457683186382353489082014673500106811085477768028335021726697009292913442375489203917553835165739639729935683973108451744609446313496159771207150701282206846309116013079320371259224117943354498921792330693108658766071366373554437318830186097558345347473264518904796676410214213521842410279459087220950054549513624123138286209181181577467748038555248733249016375466690762120061262974396300654333334039445534267258248489750342678194072357649254522511690808830860563762832413972543662936523378936873547724315536313935001269033477304430926941685245336355489661087683683920617254679703496797099747024714843316691179777589890857073660608472564914345705424777595074883326199439999357253377834812961242015232453883762457187820966302545703635267126858726578053935401077868907561711391985484814933206225351193104940048372245854380941737186590735999267350382373238028949764609974831762622796414194620774907664475306294164388030511452826193343608548866983006270575265522538663721861874858368266555813198814244281212408748393773839570018297605903164440253171292578153017084125722185156046365708660521668341911105651651728323324848889900946415753701455852963431561250629074465726161281572146409353470659953575211256798273576169283359169754223307043479150458423832386305610694115554956287534326175158087573902516949232402523912056345058131894011421593287943937650532712952696665858463109428755425134329020265713107676117168979261603894001502344090901461073632977471602810148167577546643451809823321978801295492111339441826524049796509557101830034556676551270482443660499577202315089720104162550253145754264327351411021250410940317337801625985591341415638798753122076201429935359107638018049176830050405330516693687748174593373572496168207843875004481821595026147294179907167982520715459502790589002164335751635543740861580425073662564150586783535568082202184288049688444990580891065229152548937216016292360925924845940882712675142193105885204017252394882216325459512175022036151350359616706083304219965461499718031789915342695318970267166436030337557461156440190241438016243735868356217288921893062893728281324591788229549527432457739942899450798311044029690019344492535669633384018138127362665046058182716362469133922737621851114645235935202641991157022727790453053823710143301100228679130497173121929829820146005399249623905299847668658402447894916570162933988502349809963783603654537558801499428125121056820585424726423606023443196010250777960735688338431936438897510469323539775858743205411109692777974993159493498389016144627058893007713343631465181058614614955168616013076732912480567677659116694239451203207350192336860470338418138468402991218650986960180161191043551212230467791336044429462858934329861542505618834324712224874157546098033539703446182600413759123317998512576371166894303587809111432083347292914032541141219877783223208751621638116896334571258348098378398453881759048992671273359720668000638656667005491292680545788660639575593869110132881009404604767854759892077949160484499495221060824531657693397325713942276363799478317604351376640940209011595538038274220620480918493636770292870398291805432955934878199880655351591141555647597245684777327636517301570248288980441394077267716286653189696457047005518724773552623254170869245220962113753509971615782072711534754071993362060852947189912718930752731401396014813089792873085892743620514845119099637114072478002391833424845286710577003779817672244976287109274483543192714973433938989480157231835499540118254559309032422254976907850798085349073832356335538278266226027290030966189778855503530134023135374626894799994015270421900306971445004208457734969163878782997702371705719563515587195258500986860051377685052889248207080594067359069876797715695016096368109929087873778246318612881600513780866922190001107802010070287452304204579598763572901477427464160694242880597669790069998961227674725727568433076747070703673212117793889193661227689528617019178919455118882138146796948844764082438084045834299238676245979631771176773598219183064211003049208121358526725100917874026560199380545279982087976251914713177237695536483360708751625774010036470728232029563576293041516514481242796109473752360043609954424744567775350997772818955317110777363528908360452730548146306004093174062832807837343048220241480257689837228073287335390243616149805957203848768279955444273179695708905635894604131318938197270128892589483409946600215607827407933764800546337977995947307471063153367047631983685133327668258771320038050306877151611345328590460750072851620442679276730078048165014877924794169671912002368694006220270424761077194751538246254547747352467399810761125988209840831804272137289446731608552694385347699704206929776460594654428856540949165918431109716725660657900576039989233700494496813071392990039074059779403358631598962526430848627774149832722799642058308605221187416689743245716131010488305982568790561859763691740949149694657891709722107226508263610026812819102587130953964200750410741326130131284168882702361961282451084840066540361483703631880262543373954361961641151090060572757623456150151522805504992616777837517102262666262468446757108756026183471096726587356620874357984310147224584914801444252106231973467324004513626060858237230755916508961223816689082561051244366128633178703955043512860689232451405504157972977387928015743700887995674659626273922273126372598741305020699101292139986707372514525580439438625897952321917957300210337335338916605134922619543673345642836702272996772803218846608658459412395910639741024241839178409019236768895652268005816320276633131546532335371003300623021592563161962369412241226809626425414949506979779785866478069616180127354339328857938755832658525036307036946187465237129136998671321821381292456526459370804143292241257283499233545694958171193808695607352519299085327905524064366294262309043200494694883453533024237372554906441435358479387914089977154797731056980699112724718340814311867122965758583769228794368980174449178786998749651522899659510584511385745375272125122637837116299147455353408526890415188235128334032126134442546364070744960750277647732442997862009403578019040510928121134721918408482358135840273742981576957456830172796277890812336114671961587510081796320123939297685457111834242416282497422477928699935280773542303316985954007092872813846621955160145901048464433158752962110312216330640059670348227762129768849891828640504639213546047817372901966590189811849165118463500626201638059476794815316299293002458520922280631099897690178244123965082442079447741672063400186947669682666570315208551016560057352355103246074615597687943354213461356536921216402573105840701506743047636207757688586371405944544524225051013594884951215218321955305640968697472299822966464124942833650515544978188154977025828505282461748671975767713827742526351214453260883256511462540282314577308894590955682109024935922769403940551916665810041016559859834764615907092631352620787529252064954670465032844943024223382561498166771390688150948923677216221426664137378862619679114914136926236349728717509338749463733286136800858307697382054076037487048406042551950963706590191284929273980171125938826004202767183521525506308733513087202043741326307257179235662716735439112471399028449939268051170001155186329075305721959965382980336662267898775250753738772930528185407130109916236666323113325827058311391181250931668714497767311176924173913960938139191609938941115975981490022882655020105788317526142440726061815223934946230659337646048568947153411731259739427059078299919488723386805793404637726976663339616193874476568466801898738026256751513451697583934029698175526576218161105041055015051038374713017742657774568267113361104839719280269774041985598504485591082361586729461791708223720209055660857038874973202481926386758191005248572336730128222671272393624690908320848511667044077830595105814019159288613857361048049608834985511046788766506855427239217419508884057494186941925293799430145348381230943705342405644436480894220468065355241755898964399597332774163396697905672465033952991857572510161588215357900094662466175383984650856560647929663022492324699421386797462516545644747412937747830326133203754159691838011409643474896673585984012908906288173046525825099755914965437826394368968637955356373304906136272026571613013931486941204118862032555728110180141247000875136699933588790432506866005177853963576103981293107766809705514693267785783386691314880308692058485077628979403346609819233820152396330721635662515028930442656010952381449876459306581091221373923168995870917903773215656628442011679350207989088174212571230373151800656063888342168134109179329633389521591938339138810067769549029617541223481107597093936158505107101580316585965297290827527374968154230653718628359052354303625102796932434728410354629088545919070996306495907183917439337369014777179576011925785149078922584740910061308057003472215840685379588533768219798774777862847976994081070252784564782458499997967438458803134146901905060626160533856520637881777921703201146027893402557519020432717006566326786895215775648560772869773208797588538359782683280777452107444862224251913650230146428835292861004046387375448418536107327552100366332511819517084983070410982431898359443470830209280394287587215700684149761005038771261245525971946135452820898784832576454750356714171200405664738948138663572045706242002938586693526784785755373041760084338862756939780605665942349938094591865800973139003482177883416191170305656946866928536453540667445178281497605166326277616140003096231784053093427063214136833361414209625640249300963554938556882219831513671230367097317463433689712358421676121771477155526688057212035584915459419769968057379687664201294146391971012961951548978107294694601354538218770245796923677876793032283048951435619143691696212862428655648844618601019239278304937532250710990953183367320784502429318889990850642005936385763067523884957638332403521204162202209544924710766580852242433102446705340892361375565088270912192159917084579612194988014822646216883385142128074966792752547989264071067843398920938333161148750984493495973882147954201914493120759877751893318458551427099701528161959017307367329614593691604817371748125342677422850464373513062136894028671755528130083127426345889048796677421381638056088243410300881153429097492986317153775638613628213120585640204166536373855683843016832635101598747781053712658484488249347739360224112402266358786775194211999539644153542262991052899000197862980122974854329811115810519962233760678700155332484377712485474039190932431511292634844430238625391137731139105332799471310632950085126541298961556172628983503159182033074191670568117320872931859271511555295890323704377123954853489494777970664057528315973641202745462227776099064640697506585192932318759275471419727515951648597016601117189051191787004542756514080702618514090177074104417314878173066073413962745265331033266445037882272347202234599160646427606389090656904055591199639052207424285085731495956449617103348501244596480514145626561797441713642142658900852547240408746742530496253170047926658647961611098387340473860557066638477025879398335951976375927865230677930913933113554910074060094436602647693811966534407492319557598264815730997758378678485515048584521509539263085937463726236805234763675349142007666912642060066534122891207852364194255289107047173454574585703378562366880858313163680516170574130907510097289322245391943582477575105385868926314140384758811260410025573646016947176370867827263148576891289301325078985134436643314066930282632334427250706720343388278661292823201436247895052863682474794903926084412158323542112544754094091711343865591532297082659087687771833735356362048440192355260169903869352156078120941626454809459856784075052206939965461872170654436353060904106743131920113504827725209970371021155941895083048625827136971995492693528215846258837069586534086121949572962660690284846400459403104533129817497334867754864754632134121108464874046997864875697331771703843848216147690707462914726554208211556609751396436540796218615204190560681874973685728144346922868186392849397585983952419575678034480248148768017258282679151346634809672007563299603835111280744082377548444137184961340325907169402830750813229057728786389195766420805741668721609250667594171095161675032741152141357393060794882970731957118982239612947587427780259163395610671052714862718159722314259187429073386196013916788344193110090534978082669228869878539491094016996445360431442391265438633376239227689519741342898258046485368169422401821661522750323320350560054765712568567519983026882600872294059078563692634740621926771870581950651233475152317639224194884328384828576387505858686071356430658580358458022043462998540397349980592696602073545451415706051061993421363691388743852737766574867278088636665810426508619269960406780376406961376218899560532674549350932711114311943318132480340424802785408847422892352268281971554761321009458727195018389059694388622919902236218703118130089990773173476707443634003896407550615670532940977275683577373847433924015431490059658132209180416075032818952986688336505651037155995165904345722129239206179771735337389531121931194763026791862582379960783827807433864996686678509583526165271228706561207950705009550467111861634162962953646499861396216334879989377594024545866106149754416292778218129363249052731095308102973905519350244592937114522802633459045458474112928565873969426939057252748728489476580801487135989877782811800423572450282280898792998291446774068436966745721161258086565442377651673820382402678744432763855818046916767183423170051641284885662444894463543510017545016632099815005845829342573409596447993112807673308565767402163344120610439881619545251978545862384043041333979610315833760561670633541819615323168275783992213378315591227657693243357626110968961318366420085509821697744430261241628129626912848866578992544742890430466450471771454241009261686079013063070778932125297140626600091113541262310289479736732437688555750494491292922410826936161278492987618895784368810974186686126432411385126909989248880694296048067946797562230779258180012584405445293414216206911315066020738859174452940821889339256377900413875711551980780526976438955811194087688313082948693077051301686405367768960421900386875016323477601744990243932401465450581202546876942458880007555972405681814139681565363975920471824627643369912482858950309135846784366534374265069498165832668769454009398898744411022431351498220231616291794844117733525343511546568121389541018180377053926381234234747025948449276580435002780838616873784607571825139919875437107369715481519559137703366292814233809803502168038600481052866628705777932235466294225870894682863363109234860249083030867245568697556537343583423679132000421691488107880622473626814632480455295280892601053116251183403962954067672271502769189536148509447686815167346792377906256792911584415900353396044125584527669845514054612855275080271598920851381236492253017735340728200722976221077297070669882885081853504209955126532324540284558904370939331455923018382428828451808835261066460687733435565432984412824036919112814583886823088453701775005416857413925532781746137638592004007546427590375480248433365052372817865853803598416252590382921105806832020928210566984549878127167334595790616292497183319552356355550518616497958337386621928081416535159358178816733237257044444480585787716440849107252024901632351913334701450861492619712672498568417603318631568880734298868455132117226827303651310999689083580946758686990446604946940996414776330487118035987772996663353970289322385689616009010390183551254812351472621302528023444838745747965555289191550748979601776452603247766047712228194586667150420100160942200727174044827377912240599914248596171227800772957162159185010119340026681322250032961556204494218648129459342831603020674875855925512905193660938144296846621255202638205400114715853035949048791795854960158847490312317486074453861801769874883689477091422059306063151600803213103835658914246023460631227229512337115889767006487090757326632038214264048263051821595947298532640859495263909657201870876059969348278207447195472211490852400647534971532632589303086578653684811496977641176043282875396804111705218354281852676725149035281986847592644848774144172427751526453578631684850302764789208513072229110431334933700710316361066847963165560855432062256628636329903495884957524665469119556527829037832643370718011528760784858310056509887109093814755145572017652860482085915939080045728723102985350073061845443192524694724044333052163210674902555305351019677790322849856656220143825149750968017546002215854862944380442071875429598469043978965356055558068467440747186185019248890093706118250081012042122074934529021502805357751121976793733459666288796483134292812566348168394216010212604685813131575856002115427953960946564928673379321303428308142425900440170233737854122619808010146910818696801884429591951488197528293996037755066062308424562871224410507991988004693295239722400917317762518522282102466325869321518059115150764933179005305007421673138181618369649839119442900961145655773935489338177342362230578444802333649660229038976530063684489752804035142733328854368188220513278782099959550713653524492590487179298607521148263281583314116916084975595257203925791003661669478240286179704923930911175224422493476381822310934782220738184954706506701942558309583343356617554179442671140985542362838703526489117752538404541093482642866497578732315129647908002957404899292338824174430013010410401073509187044092433774014082696861989525058076645431989598947566390474355728799501557372431852749063074270789799817284266794915938959130123592432688434666962008940197414525623160229710331024180753821363272115759434397247617587790174846815199771362063837897439148546147798669954560200216720868847320516627987716367698069295311556427328637342580302478315135614451668745825401899847059711456643923250162090334352074343064945542439998744986887289364001140364073866320892887159453429240084965126338029586587569755731841234606525832987824334788935256209301326287505824253002512867673038582003766767580018227601105805799580719675650133130478149405262797967556571989026431615948629129660198921011643092880382882471857547688578472672496442127105941908125242372095280543551007393300785390365631763006188753900784733445186689854200246571235922412326875988954670967755710558923901286580846550498493134228894177158606455517492035254717446992414552190492379276157463088784229695326606156017132849674395779202513436188448868493528528945145757746486027504694053856171517169768775655877139953098423222581973388806248354884697592823498614992812273102839867586842091445724972421238386922857008734287931967951549447884371844669756380562748361607750538771137459325783794884826519445736125016306689333047500015427000673304917542083676630072964431663957159161894133463900742934071885907008476652305463465446366855741813863144907974032070533304356346881366625039012779496822440063504957352545807336681729983954190288564760446585634385246634519930428117324923192868667870365788849053780156492994437460218079715433680099196122609262731091056880187981790517385277625639130308711725114425991348050420052252222528963883681333371007323512544941874684195086926524531452269726679334512426206970905493424624407455665502638219164075486591864244415649109182157204984763954204836260193148252465416216683928803295991735250678639460549957571668731079662933245741676719316943513756585972184698140602900804196235566169109898452227961336296051192529261034210993013036498939456444753710164642600115050625133259754537138006261167981373853162626690534361775784157273491407505206303618133341559649064306993428797177491032429913721435329000470588910576460406656702299030733578070470761691603944845493583755846280925640324680827213898720372665242575325311160697820534196765585825097152686010737865684575614254413393224475764034733703733027589354738413137508941079855609699259493659180270800528509508014376743288915209866199696958564015705694293045529480789684266014635141914911461272578455563181012138004772266469923027358677777014125421703852084184446984574683044656888412503499289119854181968775443329982926136515575327911688165629158363865956911044057164640189266450952330077295277958604759217077124233144274742973919259716160548952961726791214656512260604751211778325863252372565803294760896915031346384154618037448406651586057901834142351888335483909087441390565199866649691829007611564043456940712004198948033444951266742949933717266717462560337261352027830633414436017487762717152313226851883153806142818867563870477164188986518398552136382304900770167270421110526027835138448773408014120369156334014883998461522265376710255322963196411860549147576690726074308765519734520461077563530601410808627972815418437269664759301920896565828316424420146652922792866308270985431775907941732779031418522033409596637069586322012117655942796362365704986658565568196133841592603913275024512985995867972805449592057720549150093392748160767809404563056543443373985064889317639242826141436997724504127253563065306631726348879507488856947013555838860881914656584871572020892574356684146805799312604580836582108923929427418921798212344247738521456235741521732805303708999029420701165763764863645996200970959614203202462939645838616206586146832803716537546763303364839051547233234832176501959111842881546329776778330765404280233376096497517023888013391949545299879991555376528306464024460524544813603663575164670870509200171191660998162590660901938500244432291177374719704679214494081253032560249376866008408482966713721238460603806254297993986385403538705044176104480235158369100612241965521582069434044826137114516187459388360299329132008833158931379206237160665633665127708875707156611484095148081925775959410770490420215851176636042131041524364513364116552969303784827123724872130985032966469163697137543244022383230313975880889582411324519365869955723234998874035904807044949802158545299619378258042887153312027455583462318542270125382263300234595363989051533501941003461347537120403743556696466932861698410685220109631218129712687282328794529490595238552568697124851786523423475512925702459434650023966778986406670763309683586674992984934385256670576755645549770749707792363583112880606494805366548970108653353265721375403769779751682704598702869499403481095311031864125299960592424682525608315213894583375223882949953167472468924140639538027855502180722760469551384609282253803373160109080023236691024395412106672092353646059423055502854987925822957412113196914608469883036428545171557510102278691019414582360137681336621381388238409888459028885563770037797314903077166849201590068392077022105481088959462342790186959225406600181743961356982889843115424236420979696068622765750941073827404136213790117190592187019832926451514679779269814413581186259269499068234481541956126415122064033749629406738890706928770822121940619715141673199040494205895336938046497102016735289185951782261309869411973812502252130607222067804712956727810976569500965712712214722017853557769969598344397068325989545569362893077321513739067559894541006661622708846216677881007514907777060142262960598235253694276527901583453828342036820558247856684618467278751854125861417526146111240772038356792523045724721076423077549150461918943995061820585495060131693749120723215137156435436023616581396366674539109496886160613985984706686074399879544271760527964334699616635795311665393276483806797698131922336506827664025929858057457746503239039422075188824776414968399971143733991447472509251462228570655346728820917914909404672682257695684696653107561958632488682940326224074796352925069976762309214020114071283966092027776321843870222572131365747838261761042211592736496618305721733929228040417308306397622525295416567326579732893044609162074338676058271468946285712623851329419718715453323598772159616601003729197607133436693602322099942175918896934279064987608759669399106505036945705597715887432041815625258464738382282072681011341776491030633528512875804517714613230328653560357432799753478831278230627303320152274928469102268002219250538751421557393284752888773464076929362231966416192774672326878950328098361296507655233019652317988241756458985442109619013002268191892678696702368514731222025226672579565925303105762986512935778714477159277735356689326180043583677132627025541044432840077695083901231120707952233197050988553692554736717525561732538128219597293578833310029595548970684753089946023044537409543218899355593620728904531136915824691559496878928042590604369506828303730429441697393051586323318840319777486638504138794348476658499988884238943828030497666964825150530897950899858288001193855100543508856427073236487012357354904779013126224083009628814138418286289796630685165574333547685310784358129836302568092112338012262605583148711897944655601445087090423914612267993185509602026699479848691340710840304041882388724978005487070639525264687876611882738180443278129745034187902557150554110886038687984271702069281476738493782938878703810664508662792213161531375566713781101519247083718542749631264739647057622327270659862706881676478544555567205678503925715450098969620671362781001751382826986636330708384048187290631312627822069296071481173203762904028876446169452504041206391483226045795331607911269946516694342310824170317988482393553717832248706269653113551726173030814192582714482215374007045100558303620075252166788886610317988088985905978429232259500060424420125649006751437081188678359450702577156878536755720834034388394436203742852535989895648858267558175215405056309221799122011162124847373263326843706600788171240859601640912982805379868993771717959743061666515567962849985802289739358266679114099955790889159497079166982393198796558236322492415047824693914649055172220904649486231585053800334704258255145206929773053566267830238950995058917339631960072186309459016012034392693282757119577687998910787517136086061662123387740270818109922745987823996059791924190870423846777558005659280769947952360566684678665397020185569686012541858891211181604462718311882041362690643086108710823745656910946709638500981967963379965778163225738293994914502021776117253793549748178170902629200197947261670289052813726612135991946897803675674969254162709642979252580626815212845550137470572956752115598395273077333514244111435540236250909410459312870029702242504408874293974385515279888963887962503390240254495679433254948030103213985630911043167254830626069749010637852040946694283506986936729228918163220238082845007221646179628550829367395195124665632056488605333448193899130029211205041287809971154723816365069488312409946588559051727825699388562111767437687719160269213133521792191294167146057939576649778094736698241420582318376633474777984156508243110767365933136647605118910145409461421646837563186772310545656885394752564540315349636197343630136525275278548326906059586000907756690871082307359621253700883170625538955574009076412287001743379252564590163280104157697959826227700162811595794268478617186548519490569487538633623191911227611172168434069010226705276479144529410124820554123203388556541614022809112816216396677102616498410877071908703442913960683631995732899219073776947729353264607508783673974945642797449467646142334644415146551280623432928136042760473646955120346501811177756324982904298791227902250041523470972773201010125332466749452542304690359532379784004080965138562401229155404119380399767641651455883323889121499558680986372017081877765856248400884970012870777689711818106396899977461311889113729509257604524924091495108639110037249388626665407034473782235204034725120040224435070321951596928152684996020124944006108243877490049538234719632430058430354207828575426639561486627703047684195028650139942359452866726238294540500175461317500367671919678895064938647821710899914694491178563678334831369055382003996833919665578577651744743859563451885720549201486811252909730098781854035767548674447656556163448857589393664545448954192687752044156780497510085576540808748529308655900204980427809456434188128772050340769345858212815172138586921167854960486716844302273981140232316716897285709019872136465910021015138546194270130584072389033545956573088524184565578478817997190845948408896014158814921528417115397158841866440166041920344849111862147262787946513377801464497028258070098150854972745280375426984736776085613475907545658517667079104940828037842488497195738734490731395559562818263974734071845486752965242479562262189957459089365279283182852493354401798879593691527157863726102292135147646751571938912491042937825407028320316249926536448908277215275769378779770206099819073496497192384775231481502343691006036969596630000804299452660194154137320716160707763039888690420308786735496438469540968956603833288992302396009262836437575556714205763641459747766135746573377490741814791933712261443856222295829937494812294922799539942832009909468157453845327969378260137488268230891313405734938389230310190715449536074508585277496117162442502452199001501580712482082315671700654612692510086210080317180514855405416009693462687368065394950581777513171863332174879097303864533729013534835045385810534520061693144917951633242696948797981833363332234035915551299312083122689858341636229870781166943667898005956258067741636946592378609352695542197659966936573856291593075449334643263143027325197320142060088724214559163514581970548480392843514828810128705253072177187136135495140531922132615218053638298393792315517301191055413694056192088312328988844990389589761972106508588321062691749241717936700659220695476926338733555921218888806124139402160451689396240969838034508054388290021320702143434459777956449406378621933807315996223287539102752260832005282165644028895793709301714759929513720877083012342175604698783415494812144001567183982876557108708407251996085884532657189708567428415767955206607425134563680924424634176974537338574827536877129295164366641835761363156874417724259947247824259288973661344702177780950494936637207693296462852445479229178453089665719462163672864973475502461553573743340354434136423000991733756290158728045926993670432395271160682043773393623822282054709802225921215787794147093692370825584191561536161936896769250117583894759583060193644262389250169652260801565451701698944810420786475207678793028348766256137630325818927078573595496806027993516955269096064587380792686086880291264903033203185868089900660610061817529505043571796106516036642286731503931454665753068788336960590178671869378024635280738009744251701330281242520382617763246630420387078416713349196041527538393365405206860649300898723727486084371734204037548013505314669711360134964688218208605778373851201728346246691654350804220934050481011157240520386467571258936657936608478605029944250602012370849771082100552819075570632133151033464124697574485036511964620471642567811121118234566363668971034106371572417231324541739151848204442381815256032401918383426866540489129077701164744512717326791245973021483180859672366086771613524715204082916933860075551978911845872848302843646873296865606771753023932937490764371126963979661455461438024672191913482399904072123328551458469328342285627971598745731141334069329293265341606201857508743267981176974067834178255849490883645607020954591978105437938494596049639250883399900594671948566074885723845715803184624472055653293896542870355680486452528014787416625038214939312511021867022483793305289417637814026276648631377303995594950919294145718163479685122195872862640109707585001378001922912348809579932004666090894962761441430576826109949859650196327275545965085054056281477034460580572488497881384378552211612296717928412994243945735864202232766894470481187360386756117566697670659838429296855189924178483318536611916703936353605715878967126067402442519828672888058299802143849333345504378954264376449025642455676218133709357124963562292474728503850667655014599784583979730301680055606560362446262583717182449519735062566203782940404654253423736051898753803925164824044403892590377837663117433589551979876751999091946149033464969367663939630612091436372119117620141146036062442352497231195964340460546962707423669419450612132534247729471454801521962463666957253197027472979708871529116752602558731811365721306098264160124814991753910618399576921568147379742248462735283374564929972974509161670730970711849572627628586408972666454538354371285158396227300732397874426276711893326572031377264403519803728255149502356032995284426175171689023935451030388487956904740893699862830963758990661019413379837579491322599518323756513310620203227302930110694474558177097264535478015616003576351653498620995882465181734842271313750064031874240871095875941051377751097239376716363332527464835023115056847260482901426876896377410852627147644398283740942383683185099237410974571969178900706811319706255420375120399878707175119119792035094263039188473840602039132209379105026817754720448173282232596508162258576787162205957900044117615533403603619665336483635652797883482755344724455935135869159785568761805024900109319763516688461240380853019909116066205732129454901052088085787698994894713213693793097590695363116740449257098998824404399181834052372330601781839416418640581215352849312080922937503350108909269491924109681844938428528853926208885588372518885110384770955805843552455828881333444767534987002171181957565274750077176077939424275670651347467678774271711853050555206031112338299306274788266372373757765345972166927469230612292551124224576522851756885303863179059128552062821396006028364013462204471242314273857767223044756046838558680659765993231411111321944394138745473096484526921574094580211032574628779783800771750479807643245632872607141929792949318136695027484475124356816636679072527244451494566996570683720839423502700080179254455485697703756761537840044144851638248704978994631623602179564250217028971054661454467256430713406791259423300386409717386193582024598923201253508548682348488352631914653043865429223644222371673259621180188375162154158921514575833923073573050889957028634615558930808958654861311795785095758630035740718721631242754295195385781199045536908865663732974737077073971027532421095973723000179584714072069563451505607242024496188797540411613977937909868475713911354410285540702813595033819896328370389370645202464898396767390209068703863772671747609411403850801925315787563279824680735338821393229906108930966708224977212790965872904754783547243368323842753450607339174559875578336846038259706859463252687201941246901704683070643553047176398440409482683521585972359609358344555995702771856786379138981584458322557360151071852888441711721657582349379695108437468942701192708221270177690816567231609557507177192479660335702414039290141808657044974004874141493229685315998280780348628242536444110204332862626717122221558967138549788105082807220931384348666845464131319809087467012635672409497731181202560122547646280714135506545257511194670178625575992487381166254282752917962248815440540547422020018167106039111132663667231503004677660184681012041293647137404598661697459704699758548151124502175645927188550375775934806519908587340055956710653798944845255607942821565510142851962606738026336313078985725881624722995360397005503877878875673458652594452095764887489756524682338972569688955584313801264651755251142851574225015802330846349313478027817907478594080833398551978092944393535122790857137937630874181992225901583641794878383945838371530043844209402546596332376863273439781475050084643230114365582379029338579091171209045929820786892989029027809281337458836087372211581080919911153291279574116652640068474003948490741959712951905291331360621456583381446225539664144628719030748588095818915319384700707940241208716110589973958397367819608422757357053214117987080028090624647640473989801925357951219340296974901578651152232795848096832004406570637223856972104337917285576177841835463423910162813492737635875514466956984263389984857916621285505363014356421085183732796410509900644005292886642085883573428940676732978017241881681859202778665494824368628386421171893189028032565928455560365643739508527737672584964579091082904155641364340315428453795114020591729848066922479967761329296706116097277361699310705215690284627203642689126694480753716364933189509641209849469140813292284795092991258800885305940271435039364705011298539222637392524622590554520775776693651373600262961370435078839968351709931491733933592626858436517227855177291928781743170575798498416506517360830724633402357942998004287139547339353481368952033939714046340113274317308437252535511399096861310272674952444143658332695396856948053859981169533599179171071232994295503941187461010551915921131481016358166194916109832046170622842031888212242048774490970620433745870789712758915987080584437882082041601895596125898457831042799071713424196783605320460597874847640038212247796031513177232909985803796065939898006424124534213252213892539271637274193960244975204588639314622911418203099955590202800382449867484905468727691457848050565833005454676948582535553848074556686730751522751782008607001787834938305768636897849654965502227577813535694587945045786794755205004851890266861340342969491282713462594868704269983550903022151843964812912866073198916680049176617522406065413180558942795126402174561541902328676234314642907619723605758488450843641357115050099908400432749714697879945832985679495834937117082571414331688703283643902539488108684320970598688722546472399200480992339872751081225563047601332802123291853744318075963486035090517315510304717258087412377185513820146098206270076468322621963325734310300065395962926302527665868091601283288039717925110786535250390363024943981985417867365696894385069547821575328096454223216126049672759567620149129581302255732229453571627359094137101835011880159756261518733490859149888354430331481950503625951672017245879964084176208093610117752724685430425534032769778657947960594225804229553158344594051203380423406215995242875706543369822316499622301719817687610610248249478269565063055372554019399955273538775103232322932804266619025559451916527552455710358558756649740399651608404581400195903069249454340626929866398333308994284137396341820794969191931946567485923018222130427315016784083666387197433896858240480078842447968973158464012827754266629495863861109709932589944671153023885778790074830498512454788864573660377641693966293468940807234969240845612019300255408108510191849720959123578537361517426415360202497729826187165846266207370106310700728138405561801216129811345682291440689866137396217868018910174882419976920368432580152952198850899407107002676716544604107788825353297385594452677311306750957787314591275105335363764224392400609728970983177570715431222754995658448953791274015170116471955008409783881017792819334993200334347059222994213564259489750388669825630481739674087813328156155753086104377489172672229112343936726222702949228755158261527935843139044553886921073136100140714445245139496832665911106289334921653275201668031753656217175703374236863872271246853033699349417866341945968068913649827095950527667955640365799799939723798337634873493617401839469763660596709799587557295965469077518004355551955305805122084437316540492767198165379434550449930786669305973586358117833292821077458585063922521407788956957005097614964501374335725053147200965518758531414352746036248420540451596592752860625740548981244969835779330501239891893839022262705363511978639450546597623342223785668592881127608342752594499119612883846044208661790583554122498421093305236049340874471036070024953112233330648182843622029831695698121891336451925116006429258202014705978880109255360931464009653115040346329380207237542622726845366024563045528086798093636643861331032546902804120496373716912197613320394292006307657675560004178418028566462034749326233883261473615922104891132352040813045704431280525964293572302593745173441918312176963700772701912801390548145976463718674879077850772703901100140226504216311134143255999302949751415727472994091319996437363111638587202077992151612182473453934324502919551261426805127077273242391294817996011706219930840693192848082441466790324073112661573202398027613662574508821894198230042068471425094201249618271822063172103748275342757863172126980709889239330728785652237088150371356557088930234814605588711157937492142799812393496417154787735105846413259240546316054246250619011356016945690736853345371139446462993638922412849098784760443193579636895611674378329575096223283836414505585563826903856672379566482167817672224079587251015589013188916694052693833114900150136562046190938561044908463691955733335572474653089839817494360636723230554851995371003646221168059456611738033548470518068032227290874083158493629846409282112507656252598130978668836618721419681940754147278909147132203847500724489012890185564448162109457732096616342752470410837736215641393607057811398607223243436750124877107215750938435398375676394165275007953542666133812626991682083641094528084067684647485612676086944880678925554351715987368970969539264061649923117680094158745452941570515590069149381497382462681019049758341183031823565644815478202363852317109389916568213561865250016733755643640795010390696104696186247728447472459633492679512331720839222029687603205960776231877056242741518476158144015761891076091119409732316418935383646750619367054859580096747290173223885614614581045732983715814297878771705174563626631960774942396471814373780287315295690329210910844293966311870284066104839440883034632246583898839346604257622764278941376714307538408423962774615196371141688904714835197207479517610704978219668129283008605078977299741893677719793608659578313248944666999947520365040212584884345077464101790370720278236633781239202482422410652544592107084457460875471008625744939159406414547097519909571163710516581056907448780339745133752678298920117557426680602437081374427027161405710748822049695192625699547094284289772164945711092410496017222827439172934858038302765031550771282841244281088627507838078551572225309789237281351682302153095496135973215423429406587099903667491521820453704767230880650498526711957497463352524540790976394483097477586008691440776964735738272035793981365301535906287407437110878602625320128089681817907962875771693778031235898966401323483254677943133878270306870970327477109705577252190518859049411894075793596647780813366157732740256587374344517565410067567213661852591266769406622009444726145327024625736693292000799604728703771274134060309560524657428097743414343191423901902049677150101888405196052259416255308591735818087267175593636193812871461004597723229710191116670861472557650884878453892989520020683789993736044227319679282194940533541660898914607184877103158245073050306524094294453694931216728102814785342640413815786777487653309571828824773248141822588931094570990439557940635557160326581880927217498475140395933374795616791698489618858464403685182557542618130687850681287474400753452168180039247806434036903196093151457129377409843189206500393443557409515235066465302688131461022273378424583890566967112941630389980800395998916964461532391407283621388257024902943083795739835514901329776875960002350235536128948619873585238534942261646839817704231696331432517779993737713564743798070212087289143662991129657858845135961453508932137625936563054761491272155508597110247547452276444260451780108382737014864521223687396691878113843594312455710682196292086391161153532949997914476740448352724898206466548504209485690925659531770651213000500311762674405626998669315109767717560250106267947698707291490429787011233864933243274903364957755950670166794561345299844615629206974319982080309813729246742385608569500634083198650963627498622849122688514626516924235969777773817316764975496954377591585526613665326759717193819589286242390687368320005372420165909338531311400099312881801919341788442424815776465306813124757885725089663185929018977541108177674130849593824584144611937994554693415556107283192187414424191037514149307486277364766255726614605031526641275129400086697410870431184123074646167762312670302740865935743015742575001216450536803315557551464402738716899862045419133802052391634006322187580445310876116724075401604087619485453557922188583027500838005192475742946915803385413177141578462432099266817637909278855841999903936260477397956808795117540838327296807236335394285131136679975686078091401023925618707922185238882901407803371318563400092868450826849435543416148988725224612629208580463003783329408046691956086409230969926298526947063405909600724524012263269018275578052851050998721873889968703572933463252364674010745399185762216233427104490616115504902406650020705405291879121535607077945430398735059715879528369172536424035472088017259434808097110772484474838754618024973509169060219994003761833025550323376951878681401071983497752390527373132880065199080033409565681130207734756357865509215824818068510356688876238130904559164402185072662899448843510834412162421017999769635368379320517341707716143788812387245148503882914004446896576842751200991757351178898130039916469030008588956060063571278925863037882882173091600549785444584553630884038320267299281393576337080491754302619246699798681081524920416938728212865576103099496764023951698787915409940365312849974588162968291631753893393806068267152491597218173538545755521358478650524486419433308081741893681303795039883776363544186900565476273554783341067123326354222118618205107555603085020062800431700714392607963507526779768448402381079101246639668980526971725133087180705417781305676323072885572347978107898435968870290294169229880090206059385998409263673174086990049665198792332926081668239172983867281330061438404026432285989875024557955088487501528412789251518386970586404603215826935921863052676429638766009902568688053664718591977870258658456811908252769617028992913846188373265588530773665014217475413512534545273819184830787278605189775081684065011200743821469169251675068016736036389552225897540547520057677063518485989773734011877047128080460059046138852421727788517948775879146236573834258383420274298098526815868399873936600488962518601678751770201953198107254986954176066843692247447947809958855816682355746016727596679586649215427526622146254500614395502234524233048911020534541673817413556337539506629222746116336112240486038012194389300194212678029688457912841178936323872439901988181009412623684032169038554800383571533854766137060708699311349859981599389910384376801099715955508352661557842072687699144552112841856918507695877474851695269244953159855479038795733542972702188801196588822936124086865044402402762708176632439751769129882233075074711280564915215300945664017478025854479142428053997905972845862825228259662647563717440242320309130229382088834909715175419699360545639449361742959594029197239027260867659524691104699743010327967700954272359580187912679958590080396029220393162140112144958607093824572790782048437688364941855021921203465971460576007359856399440294053014200563683677117307693920174960488250382464569346243164057211007243203222583904960672206729329703024471661529552378929540388885755004464136671185237560496563579044910204895199477304055720121880042250256688239510470335390127689837212706637187209470035312722499932607614565039028287839417002475968144884306821384559828399047919989442889988630101711193912986796929436297205183817378667289169902215852269967160722951908119208051169230228208225444401146408171806857141508305885931588337719632125377034488978032516705421289451878469529016417784354651711794326404210142817404176778196482232867960233912136547216853652948238360257013737947852547003291540463449195047631431912601988334051242048494870402532352192782674235037689344289493833521595717550167864073539672431131705699009126260960306328220220055083182001180590574674711614783058020769148797204661611108981766712626896352118268582114087102687753084114957398826185450150361211887680164570514600086107709546898312811917318841580092599128509398366759209765522065938487225321955151960887635479887329714222105788603470369362528290556060843268572355541133384576401257340189670707799596570653096433303920558510273263770210290180895722852734619452014654124031463785604143782291666753313714937950106045812661182667760151830977640912396546735897528874714705888876356112212541626109090745380050429153313226518915533538368427005645696057677523341093087983033807590410613123036063450495819848806339062287229684825882999634010789101233974580560778587585916008403125299386050803996306922788643073959664832624518525081878120307632210385559861743450238025683818636434901400253198148237279725791553908522313644918514726932173584222594411588595973507387722324486971751980874696901469124838594663608688234017282099578155005447056937104664165433598278640616313013347202124663231294186450033308782723912225644334928186555466414407955608130797403983203766126000089358598560822836664452696334246588421314633836039893412791679867786818661469849744564107050559885462527890291026699271256666022182399703438555343741581764446475839051538414317324030923462501870806419542433220454825275303810546684906247145907892150685289442724860409363914750173373995264423614316577664368692640735830138222922429023782253400099025400379760605148035806183905592892250110308210935354562995421502054790340404930879468381171768712529256692490907197174042360006022549782111748829417016826012155219341953848569303635256258130908372915425359430800762264986430937863758637987088391144098410279856945676347733817225372456144790454160555606095613602271418947405891824164969542643816981852371656788839176553965505665439735007903584456133859550828613010969621568828642048596690634432585101948380177864061858691530063030654338595874594632927397448184210496948983732392270351337889739703089851821432218096214910677629641069005574307755923076067649618525310565053300736466533734044804331146936829263457433288934685730240627769210373272884041388977392065541625488688992333460550483129046392870694119126844862041884694547681306433212063359076007762994582025800295341346235762729700348914466349589304538805669162932417574510846495330327658670700483285812073250658656387088064566485383070215750767319221880274248296916892835545792371788944032156177390692996901502546887285923382063018794866792344426423425533624023053366826733643929944335195751672232878375460538232591416689653527317016751250747222301165440115221311409947990600857385163415830035459444952297291746710206402224589722324487687325967543646720342853928303755752021538194888413101294450653199390331208083782590355726754164609709032561888174404923275626938004514433802707764277070112415175905459312772971227560947150584280538379204081652874359101873625692919609482966748473057884340526582788486036679082155528802628413527311074925912524660602674473650437296983557460526320509415107446443948256314757749773386882412350055360251785215981398555325590508681235523678992823397158244536381863186344269850013551386005485428233340655743795020926899203127529034803208768140989645300834320206421256257244255535133125273088396510102914363073470491187015411776202166332411408964775755019380737398241322123818378919585688762359612461388605026148050467322244564820421160737603151423031376279832906463688193961573645302648528006965851700404596322423060918410463870113062947473233232113749965032401487363062972631714830803158537456988874430832197824596530224495993811644256163090826612236746710511686370355163078878297710330271016876848316359951106869484537317757750875026223105513112543848440780560922685331712840328472918315797205260136237192691049816717903445567027317686604094260146222860411302349443974982371418773934002058575647878068455375708443759192777861798999590555785696726838763105668916399895510409537190935096939869613609023825744406778043202246161811385892049105437415395986028748211441101071020122449478874052181759534279048640930514957605464157249712807742586903150824807886918962521187161703108789661001724446442827827607059154208587856523020875256204518246285583327337580001929827871473787131662460927055187379331234005352631332557109619034271487601621366760108791145296654067081495070095153664224259852333653097157795061027028066633200309668754598985547709073119387843252246826935699955161662218702184377941236291513352717954872778391330948470771939952423268825469200502440584242669462104010505510786162994165304551668239717456221647979438464559485022201260981916942691138413492334861963651567516163574257948287176241874831755284188308688300097275866506385653431941823681192764345981801578802427757058881873478986069633597540287832306628112010101126646386561367077569938350617112952426915779055295659984540756919454343323109184105564735833142597444166364970446643807957531712042104781331577669382555472007150252891559022261477456645903771998484075938047789567007047033663278249163765192880948949339643837114257375162885670282666500858755078103418110725840280668652510641787769724223945603993980623010931749631865408017456545388901601722724021469349088564726750092634960821865711181689304337900442292993511715403824737203863005787997615563724733438449731468743029352866968693223050767075504732966389048057231945659922806229908187983468039681034402776123646780066273718779356361363379449250978502613724106802257082111176818034826942969709872462913548059529424210967846740457694795145501137069749910879015853093848091132751995429615718058963495313360113546343157012357873128185222015806417818345679986226591871153838487070687442979116953526819762165345309548121654787699561293831857589153225564073484222383532876014957019241019842235665086199267304902104004160023249344030410853137003815628221905222160685636108108184861586243281362285404355070911825633114011889692760846458054200326338650980034546420896346057911419190654663227196235409755100803033043226777624538220870724696604448571396827451469934998026148562288116918279180028004346416889532123943159197570044610533072391575991078223567913868198613272812055523169677033670706159330164137263331447926122791164849003439035332864593168545956179321480380612990390651503216217483294390664507092909077493667588566642999758274123989643352726238641500675824468718317030777984691005662824285273541633563897315629561727182727450166961616068269346239448671844834800682293875228895643508227874160765175321504490298333996568466425392503057594792033228994622895849880987438217165134315570073719813326972686990550431441767386741751288651579682661635346935780252695639275416883864169527526100606438590397452543535875672725570979069407637643228271012457739499532036223678353062877484819091491829330789276220819444604141992944994724416691963741049327826688375517979340663212462984319273263392074438459370040126022200430083120199275371265727897409280011141474541653470746531749568927939312664994642655997217318540645402341894295854616507974761131249206744016360602073719263131113622102976212295429794896768948046364956661669683246558127450982650491576353328831247985022730468533292158548853747783054644993556212896987770480518228577796413054077277719917360905882457994721106573388709499091960079709943363485845202916746596770248395324477746246991616414371459545692464841424489648050799828066667813003009925220037866204818185023018055326524408367443450194367917954186055169381873307171302975193367808905074286304939368729617564237497325209880521099003815089889782213496828666475249057444716283463310313208573889404259528145308145461082054190867603979123267845150064978225707856495509776330463713980616223818732169088082435006870887746650059931805995375251795339138534754068578622377545300819263723832472232506153108352119052175268909399973146061397101236891097089162061510068254149418624165470888616085358694607827081019139006371478612965681876108449741112509457157792849197039063386425282111555192923217833040129897503911852641799009868066037450259038543855861734752366917280357706513255484502859265371354379212458228070835756208070302193770786884030149952660616624167488250330936339039782381496721124795869462618445646944452428225542811536817870269937223825944328197867510046959584798261587283077206062613002445925205993904900395267951885334223924421918596749018538750424281604297082530756639343990079830314900926869508107638399878221457344755547964830306610583384843181547244833229677269045671872234165845280639959418205508467124249739013080910207862621482457511583720841595267905913997687397002087668908926107466622346125914189402662170023949517135189054077351030015287410055790745115012503869375046425867505462216151527384890001227487744669071086238175021121998949634517412579176329962637191160796219436491960424342988794727657956713832044685737173555156048349099171913106033812377098544588157337133854939391232886954729841825891919548593824629418578222380435217956097232120610248793236975323336985132735543238797129346879859862731945813778483705133270908478485928329250534394112989487641079948390545783461489302218677554213692068248829066388574744064607848796771293571768701364736293727847030431658182774831886461285300800399930677416260183331023638223610556741444785894305487421719352488819498978996348178690576840735699003377881117817076460035303885333121111440490939061447241625367412172659935507251139012699963604401859342455025485278735015165916343123503160222534615641811724751353354243733020394460906665205860573260106994898111674801462332196704492537624025214201870986940693575671090486099824680822024186106415827506505240131161476585323914921016963319627888076904626530882621024925245719138655119761165491064871925930291061574188127353465864788864218093569960654994446674517750348633787988780234740958584249349739711298688222956506250284182584424350994402521001064129951573136362956983173906339363982328888989914312779623014638674257349172120868416307629916310885327036118735884861464956772393439416664288582690611548306844036454757481027560247353559852029149181239879154724664779301010076785523679951566967053995340661658156347831765448718763771460809584572463718777752460313975480605815560015656568307118522834174585704748918754493157857736410700048254298039776950067215604589055788292572116114384783831747496074579752407293931735342726932770718560847886111929162959779478566685401331352416105337970969441592188162188959679537021038804528359895350780676129048919397517333645998499615146542368530862530885916089449416433003999444932780129019818402327425467567096128573211977498218607013449078935176233156444021163282485264499314784589529174650047841605181761247598419769178954829334113552023817725673598946487300357302786097215728752238313046090565439969319640622398561166880979620347159381639080875870628096630826191860063513733489639440408097839727915376136261679842990600545502792051715458319921494711474015242467058383447135429785338714635692610564767302631994499256245316433485982868022723944946206240878324271069288963527348153245225005538466731050981513171525456290509394600673225113311603380960086750270500108125008934596789315228674237212798422020270440915693112797500269891738792241946194896509942466563421853770987080017029779375152966651915423459888906703459671599602588180588857619810723773220390716112515551367970038587967587101279258786122807823108482770847156661427122282646467065671269853592299787366610137581066864008682288526992568970396902840699426991880888556327317859885275581184371742477633931700080985300409082503600766902169028379909233127497688133834039577389990351416901056099969179027940249506527409657460593213547339673731258687584017977613852068442202367851751275096856122437186424267956038587946983154344374528182339845563179388472255942929774406514562201565610864854301296177169139410720161607992343262399873931622890039277665919686035125871705684650396196392900183601030459572462217182923030312261019054544404837499200272482991605586906011048962086248353175105147654552200222610000418983017937012696388296766088201045050509960754706414624531799412101380157037655367704235420302113275008635511957422444433900045955371483123023480078413946002381517920102817830143619232531593894521008965281552190776154191181822617603799356248240575411725607082827181426104628720197070763444826836589950946009319371736443512208544029708884484804791766783766284057356365157797910121242355177089579903386382525273125156440374499838950984705540982120757389135578345077065621193877297632633230065701731908104362199313151483097893563199301973774935106333792964206791488925314366499225512030334544727851727531916361971737034811779502975404209197777969505448764178526462801138711944699740078878736797595646321576950096930519219326780762600743689274229322417898297486719463342690825929222396071390327652505376196888722012376670905010641727217496937119558008033893015728839856063094658227481450560233141252931397430419950820408203587377357065977091213447459922029463257003080305919063991191122851101754693708451936236694276003260018065029173554052328002922650999791095050184837082798141970103549758390667037629729300735699909582242273997274884055695454798616132771785335506882854790118616550892471652740715085020833105636688647083959428594313997437104453591512788826565219227467500379062967290960911159164003994221213929056667221095608605653285382311809989445089069663706070393221664124223071467142040858770574000997251430368957430390702428215281306136985146208499627895618812337375003026998637407754764361920086084793180380204280937320710012986933676275569213498811926220568650119975543977189838755385751125305768674032191806101877203481463464477373854266153029932354631191049192132536047855184968529711049743760542064795460624262749057699548278178912223406768445537790107601868832469680924212585145543865836491375548046142406355824631476151254720425001871894600821217457048441195414348345867343369988157669467684978792963185752480052299426175966198848886813041969416223060442008708619822854236304998348230903852052096472528254714204709296105064984800916675228963973066526619474223776360207435831092335255910466003878038011244716382786754029638985833856129407025775781658872507043367524232061785891407747951787124806541686246242442930942278937292712600251185824805587209250988342562256700939693238946937698482112719816407924556833577210465203729982995280941722862555097492705822013411347490309620131648552880122430937987040099932303442888023436218879488894974087087932863222224955835965430817780982563256660128871844369642191516309297463816499113601062709138430726010466669328178440800997472146175153992202106406046798154519795725953074435506171909704130514172624755203426998621720890980465259770978781569793419260749286046870733530518794145552129947218756425464086225389587180946232165711685920252364363492343375257238839959013565980164924612834016835544301786516393597049882254240021478409036073307612513318949215776721227855361331731808938773955372044628418326693762814289134092057397744640864555900793466601857537150684211361801610431478358616377866812680303987022067059231522059950000183268989058618585655519026919380605717169455674299519409996176674900375748629023238009142993664282178338284570271108020418222612053208260575495574642610086905049578365823932651648946856572325301594809068144421443738913327628003328629257298595393157126954817959994343114617197352555376217778302512437838721061947333143851505448674499331151265307716352855871734394783657969367521033287582469417812936779145827906447958287618127390974674625921042254950881711339160596071284705898912375312450283405712871929239018708270192881366089844906023195130246250477931320642976351780917827087763251462763431263647884284734408664168566954480383020291990969353913078388509464602449823154414114413279319919075261930010164571736594512800916549173951593739210064789069036120000516390404748176271838472796699114188240121137553315149368702558642286956292083017250510175877369665317694949357802845251831937598273310553680006493990168749241175057139037166970817110192316521005234874497979852425771410070901727652362383898443924754680792867775142553874972538733580075861772252062223880527257360515877317684719574450848565655407683834870085839882926011662775555039735759339180769057116106352631940567589575329140565954576124543036113119794112315309963620654439845743027901353781399919284310911943472015746324214547556724824047277778975150166285687252280829166267808303556332283396820237065893849080142614078735663833784819763003064258436161294087077164026035219480484565145139273014422227984846984081775135085566970591677352524107947679051777456078085497112667556459988333757329750420738699959064605127832006499635024696943742695349799651457645194906824055335864795114144704697197557375858857419876067371240534702311043447338535871520726015604564226207066067924208834004700798201988983212065681527162908253844562904555263465076398435356022774883897654887774501499080005230248690254783401430633290150252811572143759318156682986634674739022005002056282194181305868934111651190892407286294155665989133238710453066314357402247355155333500476849011876821189826754134095120124591566400862521014066174029720315847175868453240187405138945694762596458608667000456817470621688578224082223691309832470054845947992531996195897195972232672838496700957962853836730807340769837189894792609115155506345494497395412125203752459923326466622895495969438063217132865094280642166879613118585292728457126835382405908158934612355135043374435319187176903066144783639226461773088344942118890059864131040365377339895487537769397227008714412721017955649635369061814274913762263351788807716161564523585427460368284029733482529579768595775123187209277145725932040478391984011890092703945007586779079429930065937201824830333639906285082805494244309436869674297744329538824109301552301161301344063312328021788783689295804604270140772769014865562828942490106388516444315432284816368414961097940609832864519022664562456634687895360812558567650176509306897069275875253649423048362776776348429378351177251074674552876947774140121157300740022236185963662309388944588264839751152824905600351548811543648105817177462992590013732710243739326310587251704102105095274969142686460951530900166799850548649047746670410768231677925401727340177309879716089298302637312628757529780228734306957443124970942774834220178264894520607020193274250488626197554293223999881882230344625581999912312928495664341134906333294963383827119823401473581986422340367675318059729043178203150981205586570084753995989561046154735138591045280772128006455387883513615361854275629416400549688269469029517032434704669715112633773845542675345533479281251840722082748396112095339636806601178893590654821925583937025303061328041300823779014371514790978575962609808140429533349899012177701831200273737652423818703418280978709728334580717139594917222464199025158369395956191975296786281554598963917240820417826412311647713345841261532441592807212296244231361683979487779147523925028716241953095951045116944880337313998377238554931515095385997314027775035560937764142167799223514192217825227136747108021668145603216967057279034068561178874617760639721920391266147835459264692137367816275149292846381495540479826430870941079394809218842131665798325024753024813080749295841675469433010218739233295640367288019728578307571762395150836649386149042410893513383025883945134920078321915326338414159520946520103564498341254671002293576274150850682603382995446459680208646190283798172706621953281313969117431314680934532236041924100904396593414971401301746009059334343418259351750327809345916860518882959403769487897596659021322720183305184391755596874387036647264930258779856115476242092537560699359705605598397641277490525897042362420570847904594749881168084147196011868492840313536537627109325541096144541084873015006888185259897826606550648328352616315676550122583117609488715586874591071789090999814123202214196590616896588574473508708749620272502317876328795820123640585311589247230311275794784638057037932517863579275410402403728288993108936911369054088395519689387157731485019304822370973578064760052097584041620938688572605202107419011590164760218853500470663500733966563296956430148257765877313910859984233560409802765070578834107771908879921578146187263567398471949392401514282885541773505603242207046713224624362784037817505846040839388849065022500818105221066643443053639314860325246755200385623713770291003110216764743916521537136748856062788350325643555898899051677822332102039506607806398940162822307801580933383825507446315176695378497498158780413492475144622547494381367588170669851311021116460014062301431786735736824199830228080230559074424135593539153087371474098598121726272212593857535565897458047712747076810108669949520144704555929667882339950594278082558824675609974236465599622045423238877334944915975447921435449295269879220883954781195978954566739920705467612057593792024794457522070368606691338050593760246005251465801419483172812733635036092047075548876880251881743031723144484965853600035203458410017151909994886435747235640876807832355518961360169711895523946522762906611759980351271318993352836079199239395845683583500247931596170252023714996281963918855497676918615083349730209229884989641868856562787249579218656554946542127517110578932865488707957859957099890681572913218097886963516639710536651384234080325966608312867297986790334675966889595515228972269133236791044519317182646011793183495179916302162642678700558989636132567421591475112614938070691529438444842735592713407884811249456126875199082463317182603805172866321541950889731284280966346004114070587884679570400639397264624654853388742440890159394884572097857915155353431422613278825410472925610694108601964329067695797256963037930077664869922329672275147250254292179108840414241378883410056329209765950649432130093945299182266067708068856396620022207709679762931265804219117011239733792045558266974539262532646164833028045450350856851876488568397422331055043939844986925212142146824176325643791593710748834538536655798680257974229685728730418197402956433952670887693664443222144600883766382076453319638667317041991955087825943242121782716548487060715441771588922292627749319672568116695811746737825931279683522564245929440581962816344130314638972964053761742498432013112001969660355906930986086486873684376878690958394041353983025307790039624008863757251703433670597548112089532571830167424909310549415851410349220306356438409234037920190212774923937607269010113597640569907454952778772095394808979827478807439490129747101887596438708748401295167157291044933427500037742503372191948066954567934244916256999242767977695592927159299609687639188620533112404524300485398696520789319763029799502123902045462321199611888162934187425105797450262584269107839891793257310936220195462270874671603587158054466469561170203748826149478620939791713465596634042764384120606584553704322176744163585372066644343527657606580300817665934148654330070471959837274113957296693206454015514052316727418251512610788136699201164984280170754728633488908017622252247368545343985320785459061297688369229480143634626859833137863219229249823057740239386691529964707270665369448182007384103182267084331730004526039673338052784560536739620415032334659137245784007006076409491291631682337755045576841470086436870388878402710666316293764301176229648592979721826231933696662789337345470968639851287052150056354359579739431390067083634192467920682221540863052770946172772232041088650727285777262262054262924820632622650863544860164259976429206718521699112927644295468786976302791332833788014903010716646204500716082619935345277555628012283104716146745666449671324925956232523145486496173938561828595573852723848861211001945338860667239479100219352731957276390999749182814013326085663028116497783234830075609656647118159244225843106547333621658475874812013192086854751382317113513927625865683023078832617480114926443348089057470215207936001133211102967866569852088322958851413845876140740883066172060607307118564773217458178163855454529870229456780360336822380475515433832611705678551377829165755377146415949543172627091397497171223758487864617297417442096155435445607816256776262325589297749815946814166507385172701862102610891046288690151260228418398141178986501317243432840107080771624811897818263103981913059449236140349347441589358787243574749731035117206322922785790208172778293163267584250747628938026092230869420981805514285016736055816531847811571619340757411664346821339684901614360570994692186393069097820130119733091160878527316536076522701120663456237378592621091601825264999886232284760997052285582312270825484868305999848772669722666825037518029002551704766045089877399543220838116082416885017507687095668387004004246785844226357097121515096055972175051124737162447205110441315435587967476410949647634504449965988232173572576071187044937810918083495133387159148950794074552189278721663970556403608555748096756948061242908381547327801576234014631370033230655744137893772428314313051487742930379878391801911371441509519718041132131056083288363569475853889884082589208617382662824632948943750535798575879490175708278492061402764828545394336618170501607532101701781294344380050106824210572866218907859705864587536177310234432072654610781723155563159938301604211362718682721974359500999169091599038274255404053502436084558453322271524092244402042141340648422325891819632510565955251114758102891823181708042702221542194040769513902143726509446086737671026669916309086682280585934729158746032368044063204820176309494736842936090909086897848036158123756570079378700710656416361071572725456474695061870474933165040233482580865251695498433370765716788100080800982175477227713257398029234299423843419464960936570519811682397891891931567875487745323739028825900987454540720548705467115949936733905121515210627273313736110174549333579372742556081754798024686999153151612756437618968085763178185894650945452428387168566727684086060093291525273979992303610475302001844031844611450732971227656191787666940171648959026280621717103568413243783361162538415866048592106393416752556880926381295854794268862715823529652230757246578719021553997795658893338869148449345528360784045399310818076226412305752983807889205600276971771093846805954645250687272831181138968952305603554735739554140828620153998019774353965955072207073330004982915844554795535966914218621576943541289621230737980580069322233357011286376511084204202551597187882555627350462234911744804456058439693186486845355052540639196821706351570563314249428910567736368195453741280063214008389831527850783619237968274804238645275614140467581010808744641908331364870642863080293519988651792627821146810387576565281820209091264302734829158591367263858182855402243675337014157051510668969003606281015802025465877649818303729337878887692508199972753699670081620212961257514900936691172094124643080079591482848041704668785674875850625876457372999223167616700917443032844426982336717318662368372238278562371560707307069831130787146583787582566585116078976060618108980922614034877671743263050636825114541921477692272763256221388932493588252173352488161946997228637219109311628052085904872722455567637135780624364177247985100130159253952069349226425914985998977184254507280490338497578597450222386864010353764984489353599779965899287943458907686690245286871600064399303467572796693850964591612066842205345849031118897924731577632720551086261212395437645692513218365837021869809691196853094500408575228007900918574495537597831360063286091922940704820193192953688572367111150413944477130377547681405260124438185723823369745893031859359119027680981493600611880167892790852275645006392441853948334564757100344296525212335718681702553916833765649556654270080631454996482918140223942431506192823616048747352805851950759591024084561255019081184713421200659010389054684673048796209184285129200759418641651753079333909024497251365629258295103526692366285377890251634618025117529115879670434974705942474421248613999653643655043275709131213238515785919808059107941539973864536935194637783179137598143136662006027688002481230479386482796948451688105131872086718006576929949496443155082881218984516346469440347288462594821629185376737682593051124481551246701612328469469793184629457373005849175838998864059526574763147809169189737615711859655129484348058650173337279783250205055253184825702724225105484453307377627966519714376799101458230889388549788390296231386947640384574540668808585873603814983938800717016091534531292649473061416069370195830192252416113926300196683739639067183596810190319790847820373421199524692383600615751117949888102563804051242859404044812360961635986430015617021333871197593210610337534133484092248330475262970067806981957273472261671731905447823223178437967996678211001259792297856630665200833539093991913919082029586923294190457321177183437157718976493932182403552685690232393200080408436970573156068106854988324235722424113520016414293392513769903361141848579341921208831778916060183230683783421661524420534023422341380681856090170123123073720439865283360496766404140192622996451392216734451151523886120797895395592020015916160809854263079487046307357913846626055141545626182751327837360436547267674071917069428422903181897887997064973298607337586272617405720360422135202175122373217963799948880175991732922961231225087130021255189668458849024180494664793945310842958415742340318394136075287280809001719734538434602092154596555740902427300090191590400031021881573100350940880587973522134974881005411660220400701429055858777898614949553887691630905776263223399896793838473401865454282176779260210877036682572230164194697335844494597965753061162776321461059990252914843270408323277363810791808086992121015678716350840664105701889914287276377891549815578523865974195593542815175883124209716514514511038348801309659432046499103695708727349448423715541080270098539097646016701915101076489721562350772519394556468138774248609602186006422861571112930234774200536122712761128300573500642185700246843271940128769170845129870833614537248837983112318599558940873722918279111149165378868517826106594444642759588638208678022321721824630784746292361710855212990713785440370888738600232325522699120224442615781106838338074055334228842329568356200036435744796244174806336423895459758585248761958744407049161232728956195082937384029757571694221854800616763590180184939037298864463391239793819218956766809086292789357095983339982689407994833740034630227862867905123531645489158083016503823931089750095494861166287743435115855035647035813950114879771623942838913047184949305136138749644537877263889420920068812370732055582998126122345937119866279346942393730037049729604490771641773742693700564066688772640514197694080277719021274156174538208178032076928548363921457747295421147560694976362507283555395261662421772480925938076939397821589175942252051186320094063104595122446025063277337489814289953667139445264142334247466126027988144294298102309017187788672663697083153563106987134826226121842003928531206704202317772209453903857737554249939658438784377018783766748876653001731645871090743495174345163648382327730667199763873005009215248661809716971911598220602290581039514547200093989347085446241936510747354118309984251646113529750829586977986207935528322226372485279788358368944663382266923785574739622465217770140024874817869320408590236717316004702716752985596070448990933790801220995776617772480780372913024445317208222107999529948447267360936421771297626312815450124307616117669142597383546683413045679760077788645038245664534497052405096867456756845550727182947527771331977318259250426111389750775080859990403067786921742326279077447221381101657497716207807134931597745196326660230200281318639968841365739601032307686388901290210961670932211436952171541975081500559999516302460545650469049967416631229774799129591875990340538741692224699382214082490726504967227968166084866277918946414871518891499762057632508125409484577862204344217621601105195584044580966916378632275820696924067995316947621675738596925493965207933801754964697827960092617583023906649698923240814356371123129025128406272787259913451558930536860250803747817155846490908131744701131330565277490872683705403871526788401553434880186897554488560424932183527719627652460842101734123458616932315584042938621374638472240800479565691659295806754729807322478656834824791496138666544106747704205816276468327987343090214474370074367390312834673248178566246183549463482643007089862925330778789763257281715702837123760403082972762460218152531686194881983793023431767367692792382285561541358629959553035412401928224649410692369381723868554201129798728028898387242355148306807664994058725362480028034631211481725313026170659039091137858216211499431304330679889130234070409141789251493218786267719462945095038331019947026245143292145833990206897942347379797467783328833318717780137297514240956682617852801694970537373103201032992760049035720596381497451549330667618131501750880397788885900055489909425032287074634394990955104626006332247975583128774987991504170784790229603746099273379788120748155750515127512087094488480894337856952614385596222619069876601743717945400043147047987167908934773356681929178398755316284766075805651725410401259442922595007727324565954925949410660493956524770734494779488036991253145106529282185616250358310535802516829550376543829260016044035201045837723934743313733026164304423086068364181269870426783153440572951754721127144831686480978100671536144578690699359930208935470663505584983798036130993610933401067784300169487401585837421292918254822363983628275198572551062822826797609492908210415805700798532616357434487818409745122657210127944067323087800990644971185338855664062143659454999398260406695291617888526148716358292182500605607814485022080722733986153726397020769554370443154335284762925816721571487161120090625024810709850001815600237720283709846736507758376826756559338416113331369310264542584569554662963445623324746093016133491795455978535509805274868207012528795531599635031681607492910954181960782572891376770855325176453290714487869135108936846330602222303056822750126244985322732768368366900280025937300502347101147643387392192350108589521273024185048745520500297823793854703717592433995856515764136146456638706255783385794658886117230743220104322323710899190882342594381630616037402977186468008474785067294858302696871807042378803962561123793212167045478968085896812073810398260583504945461313214065394470874863512647337247359414632241966107790921082247747310127771357336245368562295668206536647486911221109769859173013546225874377880853150109861041826957431601200962353118372559463696424876403422543652532629108055925152801614399696931650592604085118369122171237385842862047763705196230583806772260617574559938588823687465586126542878524182408681214195925396722350498379825583602113452585087655847047609505972565523293187426467478861046932348800977787849455630055325451883177406933955059413894892958318896702892681246037041336709154699798188468871447164787783754592574049714838957729180191116683833620821623692291020453282102123545578351244809919089689383998236954713063502557695359455171803434667084796330798207902038200744865201868373095400222787273476016398778091791954629986049961250828822768316829242266651315559517097823945380905357019343870863460681743286568320493203789090835812547023430963036587073337380335629913924242788566258914702273617022917307321377533769272558141361286404887110810836321900623681248173534643132327262807528658477378271983225783410280435705460104120432302994858192955806487830954468369006182930524838625302041992613830872947161714390134581731860782897654328908003798831847463218749487220472171370611889332184836754511813520736030914228937203268889292411208479021782205360458130972037212096139611561443990907454267554738941198305862893982971378836591854461003050499657974539883498868515081696189554401588164413818039379504273333804121935582547196139512935011767970183303168172454696438376200091327878437019506264828373041023425014077079225400973611823451390774386300016642063266685725157784071145355541750624276793082466377682989656738945954087774488225421294621368089548328559476712456498584966758024773363716315530918937826895664468018114350531393727243481157995087970016922408286803243518411643512503551802063878630581428662522513249582874730252210228913766873744721037877001842333013748635841938145805648521812880143325097555012757586398419175762926479834791865993263560144185992225314836724806324258817919037961695473897169913488826099110984133088284256501355042723554473649838355063429908045142555072001864535355926931522262401474347217742072716815346075577301952647897292018798816659491227237311239882913390609984405535567435345371513695372384953110905058885747194665381262703673923150620451556993037568947128481550446087029710460850528241623561966670547796194927948449743609360208796155090779256930253222680575671435982773210324262439108362032013843576944841776076139111180016967465817375477689566947152015595671673203058781003284028575425199943707102380074178935084902141291601325123599345256836967897001059199991427511832225734083093049593719162988654143734823351033606812534374344840671881280040869890296793575911184993118866066051568700446704817759022720758335668254152150541941263229754194987551806977653016628992479698293972621436521927203290617608737088280631172490205037890679024630981814484367219003185567476411847998307783687085266125222251596764092517604887290857076289795711042462654257726542508403011303842907141952600252583777825421446927112437939625617794117569362507018466253966296963227136859317504419327138877421025325322062663849564773984610039760963999219308821624936526324336361845418185984139704867334898893324901304500442130600476701393055187075192637600170508643153087964475150324583812837041804199587797195398948623888593879421847423181273225378333561445890117874434164815120310445972812628334517713008719491480461114621904719707948614036376438432969104271021974468327083125594566726167879046971963120038131631351236872205733631221840928156893840160790199556846279604860454801417851690868420831117267560259240271927596965120801548314265683338289336535943072128146556242200432284706974368613994311175073106020334547896055928062503230130289114036430128336657078924691102379415496071660363905708827402925900119663005137212934152462240088155820838233143076274335007145232566064593087895775885878220810177231664030036982993498599444633668246775197796060968688031030874920258994738997334621769890384489448409677085473532928452457025646849718288515655149884636405044235301108207359580138098784886778084640867506449755644736139992083677279699433594802932689939330719184172153420854075579370060518621032080178168206377171279842960738992644111400316045538951464528363163628242459026668668498338647949285586000265004154808885569042963946626410760276814028907350299125029985885407987012350162668332203903714985917485399295752770630143056295799871664484049634338240012594468929095144115097643745662200039467976622833046042914625249160391633372737653599206057238877110899948757995152585249619167475930065383338006864684208581571584082724114756741996428977482420027812169778953039463223424131766903046170598207451952495088786513200600477114086370138905618703616013168167949529504862103676174852821228177545370234745313867460698409368474726138767800309513428358435584233432894388728701197331280853930725448620676668499362816434231943496960307656149996605153915962301633827768795368431886086235685552621564744851515912331041936141407620347956946305327502646183417782503608749003643149951346772262470836872398231193992944951014844906684919076326870393341162830974905041233643558371365117361993477771114906529861033825436980983525269726893282804866654391751808900410425680166440318904327001144673194530662428808438489289656776522471570945624719939662640998355990596218084026691492756237937157070971300136348887014471609478977023210042771695656338109980181207896729427590733659125123843957709505209837165002913037455030862605693892662828900153992541774212755386358969962859744981668798586613489521909397976732409733188607508804072321335769018759022080719559405413315381090628471321589469121354615934862793086176744426122357860513290718090278381054092465868979138794897306290098909185395352821489873317421047875558247472525025829527927497586775713141667321418167790883737256642635741037854145600712183853650626182861388694077551778238224138862470008675719783520685259036099663916443690546150918197018429609179864244717354426810506195827789547984942685293787392085372703030384247784171678803894505121054011993090267708060389030794679253888205706074933633834719329804391058144810523549736105063340562648942893744300379414401341743643093302970463915227721238941037143670190002281591476846885523511088734984391946888724010767565771776719208843973680238204737125842156358087886366881394341597926529103964709961741433985385904618729882865358520270395324534672969630130682259253990660953924467798992817465657781198415177509191640236691990627153833414634767980426692712267976815594775324776117384722431819238114304297317995004313564408778352885646373241315213535175572851119081403855297871021482026025013989485133358950101132189394212134970109033169206961159925906912965148870265854558263857165089964853576600227320216099829775339188088934436432812881235600114529408149225448011203293294810160393716338458810490969103914729422077711788440738928812923658866073221174304071750284995418389877429290761361059056850931616254014780989733658891661987889605123764545696861280549258632288959046598671690535489788428868777929821081296912030163319094023022515502454373850860370409515978372968339214695927009189812980415433953611335881420990701931164544084920525982227428683657548978888742422296560992343468102474068876685718541481564224833293864814894770324436007028435391692941961465748407461962907308125183786954692657642998224938416351897698849684060544696229917490090966543826155049307636593467763940521830765176506528776831807139870174521412506361787879310137293855070949729557636593856327694579238125750463071743976351336915514954350772213333793942641325783890254746718980322775804177142817555262724000347125752686165516312704889793232282860078388738498867823926581778424235141250119660290786182669283183814699700904943303905193131501959379772300286873456465589756623916888377004837119589699481230363938417797476637460154260930072269830377549883825102836063298473461510225989411999907120697090455694939858891590648442442411836790215862268387505330523511816137578464086793536229688409245596385015655218834860007271431359699091880898776028224944298706467934977603666050142579955174384429284124550995399785064240822009840687979960282502991407725910307315440918151471510710497966302935634678189810478548437438734740081470051000777573293773628617455768029702123487391841929565053077111787974512024230319360307500840599449519279304012308671061187733398384698849261653851105897662723521239215116406402529105933799463179275562339830970939334841333863932562737217755591940809656454649593091383929330386109009457374957741276255108876513120414426475634374859853137054578875306961391350401484847895711851463434965143311974374108675240028328320261431105160317759617031162628909703485750638658159102062973587361524215813394729404136636523431767137171348938082231761012395408920452433487164400107048916576812070902613365396697480455664570453507420203570532251941729958157930720500866614929742306582678269528956300322971246039808774595742065838035405490198894440577604842970091746751029781833809024768136614406344468988161518493214655754786025577130987524913693847347655779833804052545969258522984641677111066919416582922960571300845638847574460297648959985735190182132101742614583085375398636134722959231825635684814014129601624177362022228993800129388817069260525940238062427303202390178726743923423799360637745597743000833475814709778595400691095935071648267009663275824491492501833686008243153065341674314396459953586833319231266572101579951259217821974206037531434468872870805279876036132047364333659547786465760456650593500531808404396891854222426659086107185242310837768631812593552558444560358145495883575581125389812729618675190632523002067427048796641183833265206261694537062979731425800276465148381303126563899255577528078653753086414402989680306735530064394420375079705869792953406320902811082173758860992656356847292038278005031819361074182466280549177390658415006294264416732508747323203326811584231410734650811154783961173107151956923197228915142122094144989128640750760588615724086995502383083664918712803627057641069108343745129487311363915001473724214420857139179185334026491363005860235945682229507404567426980562387473319764503274545288433212225114451734411785553012034045220428293371612106313799719870768402320678027760075754496232363841575679444447558958202082956161971067968024268261187898337159785901354783399197338064783801113133433789308255253936266805753434312594560138198482853231136501780883490430924214984212448332514813182676047522098724930530093769979341841630876208876997979046504967576696842991306752752565553331972582897149174883700950082073148661440036008970592915040820498099846819015482776250380764952249188838674796715606898478539125498715639273217643597580231461603033013554663731571639287107873389065781267828768335899809501746166180380530540822843162257915058477501779461401466296479899728269746307342973050659835048120252219678374378011896353131026038267566901220706738624816439312904687929076412912843745067707120549845702727558795514163460437645293172808730565337268613881716888980442294473320469110305112278583642439182600133311878487440976695400909950579302766140973217525814500409194637757088326586614454262450012528187642312866827772327938292962578825300907082008307389786465639595150802369088607732185703634678102958990570978333120145426614642176509780100755800692681997493447292938031793822442814148822293064444292781926937338195937174213359410348957119220646087053528126975011825818422178898000063783192234433502670233764113240440132187454616105221830315958950228539748853265366202180999971160611862930523665338665212184009146366374980398633900855223328433091220303838554782545899693153040205084103637341825659485203008923481119691593931598242092112666193771736071405669550997488603167289350488406295895753714245067190536071978128610091076861844382757666608678856391618131487061597583531919797578839412190477010918849836124993237037859512185626189467965145571231616073851061731607327995709454488895191198717689776384911607403027818650424729931970186825486678471223516687246524288016667950904160212991143438297074376073940828445679557958243460024971134580121296175055326664467008917616170445254607457911715766629380503525995968488421569392862288692029727289832309346677082333721816092724053402259821426130540063393364536857783743707551057240543008057651797259267555034432686250583804924777747200795260198419319053635425195358165181075394212408140877114880455506845581140563036959520296000908617527879293369164878994018659653072934085977027879566842217019117005711791728866032421184530443743550831641977512637992101047704322079731380929546238385566932588521340683493883920846049800578145479765419915011429386720984045251157198580609651380560902321875136497042663884192808102375633358066766290468579295512048415469378244178112793211933489646130447001497677368475907223258377169090980228640340089942192045766628373272868412749313538687094124404136617894336541408235924301384229899322788076413026103528008365550531287765849406113563006770154192002654436859116496583786019227453389679705637036401780635039462682467543828699787869206538036435370276706193554575996742754956852036664933240816512888308943860852337945529213971887936961111494285721057252409477535879130211597559576190932269769359265079412543896030180230078264152854151561680942798327083591304306253430708344234364103746145653756830835499712694662885088369898981798048956005770604919595926837239739393611275943809761093870665087373113745756009134514078944101978918509743466939445051276200066922774472898311466210513463184719224653055061455805113636013522408002898197189454586316239530059052428233044710514598514628133651140940043429847398091451418627782540669677010492550021293763575526331093332647905333860755983746155662462677979576014643915332722641453854758196919652890020470581006884666064200059220558386799204360516177452833676108804641634250277649599289106924583114340906483601123283035884634104704227005017104798562226329976150481018599510971586709284880382891090977964935054078189747507568497664704308709371284282789011417223501864270891420221737756397042231247349147324030616830559551152051059303226673685853324067563421291077862501653239200886971108070912194405451816882094213355602745114660603265622743680274095247914246842827413697363157117547311146865801512395337757273981012573296569307208619512361651866032269583410068640614379434496548135487989752780444638079987370027529151118520631212698532014985938361556734797793706706333830622083582007501830146529544964655548561028599892025389539267774859693177657099825615126544256089650845830985591469975122184368829224638199565071527581704507275051948766567648979514681663658272700225212664457897906948434436851809961143132888854144857612890316273742168998986560233257907920526945881803301127413661207974193254526588545814271681566913375144220567415312455305453510396980064171431028788181036143697819187289782408590014178515667014385205799381728576685826792500964481608746180779634925213419138520732461127840329975157825099903520042939386727287167481961577048700753566642588341798405745104004545174099112894955922987419829946438213532354425910564889688712718703506592972260726676263972497743939229748211196543075134995026834050374252377490200946155545574923369303523106754729451107550583691359601317845875173953688738007359940437765179981373662344207207673683286747408908324461158561437969067286346051476607705235094767036765465782564197986048411460489059906340403599565984991096509787167439773942951986703601274690321321905141676049860954196239624870879445328061968966953243806485749021013595121245398837160611034613739594956205874845547590290332431385572271923777934202826439672737557238205998859097551451050635271068770737836756813229250839541199102061415155063106417937765279045705738006720610585541539339006305033106755522788310744858605820536114128653463779211859295144576247951947211493805758272081492934641301765329670619413069112993594118630447197638421102710271035848089365650228584924230097765736252066994230782008607497663086242347676020339239196836012088591357526110881124992935645528628834486738803769389989412539541404894611212184241458164831903652863618088647393966820618532193019237047078655422312619136114251824245330373621728028301765337859662386143008650431270275031873337740046486676110415791272534518325257099990589140980073311211842870716527047356388481195363156176353457584927334578733468776217648023942302910119930344707240507229506543053284755672463149859223696224216461657329859131410537651168374042062666252604852688776632413183500895119058206877460891375978853980324078244254012543912577815910032707340804885594706584237820431789864337915614896656252940359928829217872791218872201295629546888461315341874643410867952718595906857018660371606100382027838053817803345316715620711158024915693892402526251295490577798834824493838562137989539148391803736911103617915803757861619076346368111475673239568795289068629784463359449674216907673246485783891972688741411311218913638577868050773440281133604118857144439139612849442496695152920957444238095069065726872632703153444364790275826851238896366441537129678390062349840679564653757434287824754370177173453857358525298019046243644030904568836334498736974528858632714965352803911211245496584157295646216002143871182939014025521794532728510115665849745804256285500708476115015364836351697814467789252085075973868618121373173468838350477782886459501029660138760461468219149072564726731683149011524734076667911691422885423521188136475854799370341079839433539640183485242862614948572712010107368466070305630204394404486232561887545040236627845240025523757347791069928508632580528706828146191753667030088712473242218477356410666966495591024890263099717765253818149066979825976508745805454166508652695635205389908428396246928913772884887729359226919696281626550473869728388982886566001764816913634202243967332511342035155422904505743235921898903903379410086771022666752733899189459116727995344277159026624092556664579788520690842926594855438094072855950849271293644645042135213173412328300330298228291394602908879390114151145442480219725505559821723858695534192519484750710719460529550743982126536502541400955411832384471152457862088193085388798371954484114528661444462136646447349506763320226463372670012376917424146474415712361030514999248247761057585675244654233023052856065666523002730816518852762160625468573511558356509395653355476380393082856203444726396172665236382273634441885199156715946650330023443697277251269447799210067146487908798091142930340607962957399590010936539306129937260011044669296281324041330878184667548493275696567268462931589373478517353949381970345126438475336349387575120643390678341747378856900253841508755142362189020711051845540876791726424580736785691665455870289472133362520600429742745466234422010109110628176097744533835402461950913690860038951202773194288455213160024110866430990590909835550323893589024408157278346472371956832160162037480274172790506594266689267023318191633191883343623414739728114777410680797830036177603158452624798325123326110066970519388835314522177584050626696658049536669899918057513590801513274744450816526462166993445971822388160572302105344700062464941531948889113111119263615747344659564078998613265685673224527097588802408454584261040815354159609056287642246730554544116089086921600721283955169234153847156385315081714852642209405665216221660239046036813567993776905841212019276919091608975756130575208840357800095601596281421239265372511944571194812153977356264603602132736727014624646925565311751513030794529618932925743964211075449745228073029518793451524744348571236197805575107940831538682783706235743541210165399273831641461342953934092754917676661642972982682410370206096850616459544762569774808802558842882416343644191931103111621763463844584484387940847662566106959958739606571963673690372138629354671310105132222896057837874531387712820121119045914217792355313941768801781468716662792424675971830546236071343929563616330960094111128204953587306674872273386981351445355398480953676334958542943935523584364742536516931145253983917547512134043070146244180293155857793895215152439588841697211815863489764680989966577470493810352098264605945898504268044666086005662053502749764111255266860268264258838481032278072419996857012595686508508146564951312020743557317194168086897022378760330235974694083609749482909402496575411172006657598188392266977957264848876746880310545582269692166159824900509608623698112694138532946922849811942172395019828617266423034931958344645464689219902436485107649861758256011886885143112286990171424368276531248410216237290989228892789092247031851118746704794979350799569494278886551755950101602892080909090095875621914331699403750775320654574683871784246756959784652967470205464160450526233978724330058406080386741825657084849049134981404374871221368506363101467576561889372015953882392585541195198606869151053086812583637083707409017161858026381356790779712400576031422134844782144994715953276828633192900716622627859446747939150274547502772208761300048039042917780782518209676348430909776177441945923340168306755399016343473792518527805555879489395857251578635260888344957738038645402591099512775275400113048527689213730199742309770372983633730065107380983840610550001144687093404746626549266744415661850676178659210918330879822138797711672387212513782198408892867307609429329299991319779885993609877414028151261406540475588278212105831057629749410300037512791642039640722734989101661645607888733229511457128638874399348985630729235743128202349098873614729092143979049770061817163264641488508035450974881091192429793527394123202008467876904406370641411865339942637639040178506634746977855510108508965367584472816747958458064763004193378270359431287476485987842662156951728266826316702089886905851317086925003507442292679117709482841359274165782717844605302926559443558849028378665896496003539431293367751780275776467669107585009724581943308267339020836533653799245611278744721425106273315308745247897699585782701478725576636403111691690969307853002899371132003826894656186669844666704248977891972401968477076010892057754571858536968903589853351832720700798572034668367501689995160019867719633416194813942251089368403342269530619229943737793260745521449065895063737594176556839842379199545412872124411513128098021272380131916632306138005720938769348763518167193826922464454249882529543348774161491933594066638846732655784347083690646018211538984532654612483185654662126808215056486788854519957534795759800323461518210615230554738306722224604270428568926023368427043803779582321241232884958244993726189121085949202137733182162777462787230629320990444740395822311182514091081376884471179021386779637293644012060216895374462168648080657174232324416867997858327796482890750514426187180132857446217672789850875464063696249469436239304751039845819090578993655226105944023921004728096679550686714826348810765877713839546501673038501581816712315613636557215160870634613867922289984664113595766651395446171637535667952393812154087353267995243892672286623369010187174961282394524041919089447186293721202412075453949534187027538136447035082899631448955245246068748448802287369303778700628941675832472874475709355856677667591982020396393723659739941338217265053788357930403367321472001988109014683008502318536745189274494261747643933473013501968716893548229958681503902258401816834540683636175499334750698548341026243445257402504687782865009615263987951977663611070194873017133668172899537169986789511908307923231154241171106206294315145558436862016708218163378998070762853480492675222372227903226023854119489034763779231055518415366594943939450704954785721280811799865762378600637296633369743470691632901107192252195244568799803001189310775154732662996200851759104164527851502207248083852928133064645610790088797120673626495030127915642438214638696378095666471150679148805731228084641307033110265008647916284794653611969287003727597547657891670671749566203141970627566594870334014450282859866112759849965126917371709797382902259553834131349564716332089173859525358882224251679694393730120595175405377725770556178380867651264839370608695817529121636660393195108684594145780915481176438222128556403417602981470530653950397079137703735401763202709314683448737085281938665987538972258772487630016380065108295505296890655788311814834620348168592003485292638841566965210576084900547564912133806267803156966022584174449288495092454811729748220298162803231389540177943123768621377018338059150830420603993691604200939266529688641461036338648047215622569683689902751101202094009983659399272564060361548834962946669569038995147520883125053684792396049388498565360288157859816713753066269133744160174368723285078936444451093636998157445802513931288185300771403441360834308453059046347357968886228790340915029953346984023553799741523319624718102044402439962599229058492714478255382467001803823167808548160716646912292796472569553574511369859486652257506377789815738438510040718309204669957977552167681106649575797854284127274965813173424033530813001682049435457775570144272532552656052905645350224990712839442825837335118170671386143411810772054546138213236243401926145973562655458048523370945365146602574853794454777998368174879303877650131932689939750852635592080186861305928369551002670265031556596175964948166609887999163327811707683961837753510561389889311633991507839429333723698562172688340835206296230617754211375380673819555188721479725913672242419063804502218095474186317271448058341786511706635276391719667778001089436008679643649852853573650053002956928467444516447269735785743713675874276359524624790197527435366163292810174838000399952247609664724216552364329726603698833635875829103754292074309113521033891371050044060911789398093904468821012822574158919420543937326867320043762641654154132347250226216854768808646161775580752883315148596600612058706178604020295187989604385178913015609799926798666621793129210827655619313167104035865339287955093740354238672073100570653170328843788526391653721559491733426953876196283410077590093945896543948701273182048241676413746672937287937608663224520493592649295171201882117835211369799226909955611506575074528312626582438943962428861860943493715075326003350322823039704376001791389009059934626362690045359210276096702565593573309139081844488712441005190321663742356116128000270687643036596982556277117948302859914894037356990451294216637922676996798348177918953050906447579596424811307371902851631165676260572261889588400255356871170073011158385260957409955196130138836246781570013080122262769815912812162171191975530726921380558949298092160111459322656685714311872962812377777757108395936045614781144415870611681462709675667184994762013409493650277560480698179128438727032123629349303009077129934543660075849599720832356017659163908268000802099839217437798861900250462591679456100664461738027948689961781191058365974804549575230343362130346513807965729862890009804989489751958693150535157734097847483880287321605381844804470273575755408299296897908368125879250755816362455896956594038234038349540115519548540707477022639958139492698086336200012921369338340028288142999692708993903011555093987645735895158683504373368154669764429765705106335828130184904717377949345811752600875549536961273775776398469021196828115607985717732698691710933144620698782622876195313674040800532089219168387689258813988560399906419023084253521117897591172451946688008341530694499209490981874923995218318689093483698733283474548974785597682471118588542170048380525082593897976233833329237196367632715825066690263255832072026634823107519454136342057825239368669934269084940462248084449130339857473048561824135806385338478778626477894677505577749635768894187411695339185128734486875633280773634607314278296438186355765626248348434084109130030192682476272882979653869779408073317503596720213980861681741103359736840464007093818691206788057046235345417115893802312913587055402380007589287118264705797006486904342462711356429779290182126415762400018470229367797091551821825662262903159086420687744553688771031645912633992114596987651151619758821898862037761897151757381735136166616230610192191664554704942442761548349503536501825313088268203257295397137058964834766381223712774023241505588084329883260695938035595240269571751454620137989033816767100408292998275115723629616695589020208895252578684734643079598780808005005416088837345424828425679456115254412097973762914551958587248108543654655450282783432613111300771640297236683302846588515032410995738325100137908061208836958059044279183495550299279794905940258248218603239683661590848585829216149488472424009529753798856248624101549222164842534046444244596924992218857946994905824030898847408692203534356042765462966713916035392920649867942375845476443061482733102579291614158992451825170333100254040061643246851835003453472949914457790090558973496791899702850173600049750365548172957380116790305693875143405761730392302252933703710786017906065557945526554968120980640669788715495818396753153534754535693247952817679972401681842976686772016193898068265373061929857857299149569423125362637465321245038481725364932030837378283540942725120908206524590450456006798418227241066462569997852067789324621166296173308642733266226367844047247098555681955978069379236466739454262389183246643551126923954692972133237450341526130417109182148821378957745715688942072168513211655178065789507663220842856306430645632521101722759806392247420233745544069038260752794609961776313132652593048609957544064569626572966639061867033072233052069241419220430165742182716592510180768001819100820529401408683940243942422938277002416105467036239983026418559394603223003843602914917492735733946816429327657502476081227606686221479845877977913310615742560034022895009373387836610493100615678790150149370337882535781404813626527598942545438153900189588657918559010916548982085358884629310161730996838497854865616298298099719805908562288327803391102103358807711871113883116122904082620943670891164303516260887648280871959306872287534665934325494888006799221110656268433610551070199966913769319738266472555006687276466180996399022694087826353368447358215812302976000275065447766753278610372694276812209322339558044526055394074186106650457077358555004352889410521533717244842322135406459693798210689967253165174831699057463560832253393974935158849658028999430635847728883110961227474056812933881122432785044357829872549811330969354153323047245636573529911052318812060019552361997059537246299416884925281235992433341587982404290000988826221643323126499687193682482988524785853833071261484937926719210654258115680068043072702253928577367654485273926444282286391543576872278772841136505536028684449138658215385520245884500258823211527733632145636427467273221148756001091006824657970196599153451749058074029803741585569262438873929150024670986441378305183874480567771342961471211237512934589795256937972558200383671086681487830366741189841808450521409323545311060824043850731615744135912716508635629503773682558152097598354879145163201018637325648325855335706308485947475076318657094645950475599362230280089274390582856106759189357872368813019253457471272456555664737441072991801029617768903805297183055997037574572498649015304554804166600541777683706566197406648646419419421767967877229261960216114563972268425579642347252653075422243525050117554411876232968298219217265086113261164198097082771411887637976899590520554330551138023266537304478458389232973985618702989259174663361385401033062827373020010442222505400952402095127294299111020923832356309424327406155868317011780356582231525175426562328253191326822859535195295836069667528668422490493496585586986169434895105025036707661099905458114427494020214261816977367902559088306630072951414469716758583145594425388006441576019600193166812267298266823796167749136451419970700493475507649893207605615303419571470212023124506596445151579395679711548487661508432255164458936990147051806541215652492823877109632477569412588957391047041480143584298003365007173421035513837086303411738581605813743309719177404017930809416988374362788366496725423530512016029698470704152678438312023327629462776528323568913465819114547314212048416054289318334920015000000537936578416748988773804966017822904754330526610770489897956176320347188582031861341830242922289027854951466654524746621351791853858461478776266224749054132666659017160601800458150697683627575856257411222238254348864424539418044576777837046000414116038885905613734767670013900686712045464759951244018601397172065627006047254304500115397730353133083378442063948154557892346281599315773729433774149204489011371870621630489591214123547181888890552146678725713689070175633297129229671112296879778699823437466495713918296674383698323354098706394725276800839277068367981972476293257601797478195199939068814794812233378496203525675946150193212704406911133738384566757234877810360351728399061359527226724973228573631956215950177717719416546842789605293481223510939464396233530298875378090959525082129473665673247891161910202366410429532919602690370148187170942815736390724750432497399802984420789857021999728642536107916309696535220976948211562254523827703674626165863143440199002522540568244790580065098710080545376086304406312601574519294438798641825557249464989805856531510057577592552818400376830506276991020257847946622870598357487208030589094432492659290505317357740547857404153825832518671419260978818322041444792908491757505453684158121274073714784633834776788204646085473706164184531040865505049735908021278822290526431717705540322766382913123292280972184267815921488286202108738564655739221747372476523558630289361213651262140868712535504965223509729984794020426234861583646942216964516572974087988415965096388417571018476653525203101877236674161123192499936095971789873834667226921183766532384585951199764949223463768791835883273220563301321914844074277942005263191032908468704225488478827745313447069527239927970549950337336753050237560049670774617424847397599020824340939792890135987458048417205258505786643643931214011079352599589191811187159591746150849369986154193821691879406651845331457546366303201703334422813737481440865542334379966483262634275687573258647271641575261519122191358903719030261145399631577899923470134331450074435275607832633222906251967778362532304425652243600466004039052041236943456631700697185037939397150156890915043365768187483548478693727819030075408918763648124113552469353298245277364070337837911073992885091326095750328881632560773283323224177376381087160188532333988015257401778388168185260679068229093327181876776188333297491975781840350232679868904057467274295452418801376475105334104629374297980567596585097302767937325959800495175345287788997346663287992703073713091944162594242418688898662483004636275659672973808774545950921691199094498108041694975581915976596925890415265124363313267488343678943276306605801791864503767288243712420809740462087494570856465650287335876064364890248228247527528423973537788941898358350743797420969573362212397344027331332721489382592500065675314652916207707517195596725811680891373638975449414793772406298606614395756302413031023428263759219875287284825711110421395386780128427734179271103545693490506079627751578594319713916970535748761658797339177122784354407402500222517973660948580146165559540612870351931667394702436000890222045819975663176502765595421333381200637563715907109579734877341685366143193744042207168849972815768025449766150856806741910360096215677497451271287308927865767802487694033629803990778652537481584552428957896348932880049869626014759601413658190505147792921326326182403056660771755964678149884083940119244206734910203465205959361488848818275906014886789613735677727879079340061392634775465096102612267415194309869181567212954797396708145003457482289289360313935666859671960517179101907869146649004163878071700640609391926461599857605415838140456092760382087424297969616404432319140272867529437818984375199549533752768723218912345090238589012536709806025129347316685671341162557092663045787326387191684839744293607731816567980992499679192862456576483466449905279331910714159813956811029283913816022975717633762775843209735718113118220636199085275532549306732665446299199234261131551536360144141361747893525338582088485330139880299831486021219534288640625662331303166684834615333828131017895718052046869550188389897527622121113900940950825670355352372477465446318617082737719516970449443441206664706420255534948251330413173382438346075376358805225313389176764043491815421952081208347060231273752965721006404752513648830190612500069121980843801752918091768587154030097665468470517492362660430802490754423271976197537399961432611424946231320556124558781382829645101554832008913384795795935543620363753369691480578853959736376716635476441970096385802036938031391845806293278248416060387948816802481247886363132925201191425366419895879975186793408729978683368264431032896770171897607437921383754963502416136532820025542754911859543612733364124860271047291036132269753054376895966512766141408273988731312338386287513752032419712320826389588293616882503596714825909919197285626771130758973270777726597456746250012413573678077994925586978970967900410685617846412127936113511417756805130896593302458718790083108923263628935139530373554942799203176225867723482630572892311199954735162299602838997524917626298824321669175611223097450981590118469284125194328421979011565819729973640004475530419861862659413268937734967726990434409131770847011662855177173922453457826079126458018015812300109914269911417569275292813598576736536591784197817318595311089240280157400832426528035478059601228244790495136154317978587028180732446276933010734953396817117617742314148542673203140219843256116286057043723535780530287308244470617681066063256993063273724814194766531129391171767809172220597164390879733576548140962342206821539936802206446142785780777376630088105162042299451944542682988691518713219318496286546319800183361921288737278836718770693123216775449759441875031927440594743237571413524441124275713776671584537275294829605714820471506891232029938253699204459142492448985670173437959598654239326288980891911665338967341442668771515650864276788566519520907606515553852999650580672767889671005601310566166299004844902348506693783619861994511022251518713196493481206841426633354218624333352600710939914411848154341461669702335559972695248682137934743760192267303943807603979729814287870324007971957726510107025030892969535358747650870312497370393035851652625088281734318269210482804966553302128726650093329883516983963364490993379750380450043869842746621182889652582732774522929243085302220540619102889729375625470406030557603416920113818032090230178106620019154883585281901091350235446956358606939447934699952137247384279811738176564463172480154887969421643074011932361230376807340797411492172548854851593989031117434649817709420432267639974624463552694372774316110120181372675466792914043841567762762602444473470155591922512355100374170096202610054964998882984668069566447670884049752442221954474472088610549794258927870418698581228847906482199954930321276592692341765517264568704428938240065611754137723975039156553709179460849178762579972333019405917954505474638137089510935838512792247484274962399548846255621710281082594297143666623391524798175517729922131459954582544260546328989009883394706872036714654893326985951380113162165330959107299848116290366317540136716771949283147234304225549881191732352439303885115089324720606952962500187624151761295858344311187306868529323093752866289466911202758102353670934012297327214483424448634398984496039937144043451432425994226244753611971924861032313135975933063166711255611794734940488338380844540428474010212720302947179519564088284831691620364276677306931873658242272120243367763040980484941248137784024804285907732197034091342650124864686057067521684622073989505410257357291394588756758902691871097178079075134924968809407582596278404658870621186920449750338194644514085254043147901004744020415728308022737150748395241127901587837296294916151918430307558310748877267916807086758571828759136698679693801946454427015061882556995758079711268039469968053272083743764237973885385688191414156768274668219666323078516050242432406111389761915762137978515439331506490322884391889341979061369524196476368944001444649183356477548533591353443537110170513259461301805851522381324582532605538156273034265582558803745559383938317125522282763921072126987246447123398896218164272255751734685750172942749991677106505137310250638905527195660513661921975549376108196281294803027866953312541497489151843979289434722259726404124354060378354596897346425912351790754153842040515517556662696388999300399338116264874778439866404573771060255730483847335052971906134684255123559014280335061336661551903256147947745670976868983815925398329743183617421415217674152971308265618638759516160160497428743464164361416449373634603758371455010055333630480093052078786528153414721547986288412031815452994751190845791232495618575753172347373166131863323924665314400297751346629752096669819942193446787385086829196951795285854558602296936313410428206747993643339023185739928020188491621847636381894606001600042126036752010117011239973458889889059404755942644172811673679376088270330931647595211177241778850343578435214199254014040113424402493912836663580707185343614893076893010601926587779375075128609079410731356801682081719503968468319812087050329000723779707463276247874158811010464543881775482329125203286615350372692671812118918114563661756260356828313225774676779204129923749081002818140446034057084042134407714168976329507472071132138633060604294230679095647933280268983090895546158019523013594071050204501563337136226168403594575476665543308048239687691271714610936379306047722318313205292008191713396540905012928859125861581051490720982998880194792852394743853340570618588895844231112177111584481188346622215676416853381066677818902117858596739063312005401990229730096951382204417109682266632554744218276380606168149129680224566998428746758856200886410576405216435468636695547634148525071363048919451583330803915147787340942217930915157565681186217280937760782406917558704077746802245865308037473001177121253515817058285226736363916865808555229396777297466440703878745588555587097644197093386287215613842312942714513355152322840416737166619957166997318984868849688562678240612646070754748650144854451009066224922129103840593529467930997901990736877058009907455390343667829113139334766432775271641190761237301208207417308240401736835822647693163449254444345290836181360658021006809899953910599252788734206566670005951799797926373117549760366419021047778595283696007964351356315801611814931000267395376668753156987658206012963783489859357542291247459128344108060316990786781373256269910185301403916330754087233076497687998106392473551706874763751285448997289865988092336805110839036410640495598136014854413487789654343795436252796876561865848188703168961908256735227197549716511717988556948248540794448006385327153954865727985869324413983832360081794525436182056796968650008795343822150144647947712424005311656730159104430285102459996891222916039970921839682141552662932161407520450238497312668422087505420515423002022497813677934161570039710093587539141589518131237868498634090343966173554678882140494223550000210082004345067274142222605117772315668711649618942251929978771962984784045296020951368980669731819727596559731512445685430595783172413726312435668115950431907203383273526523470326403480180280152036532918607986210021097395472980959837359627970135578816464117345839651418044312424423856543471556222415707639066773002851205761703669408385173912929105548785933872580010315807352478698034883379839383587115832539673762537817241679171928352908598316830737444941574729531976412877983241772906642578161462770637540224738152197814004930814261247576550988532795199089617118604140339885760239958867278890357153615705797577723161419744025837860720544624674746137187406436429549454117783697057725135521859724787277137555410971489264821138882467287213759002663976202604541039835427049183282487046045417547127209479335422829730783017161844660935761765026338507397293323220513126071634760380103584723788997586271248693861656759870476894765159579267614663720613567143765648855635602550762532568793136317878171469787954133057783787989149815638200121957531114481021776635405304232744186809618620103189407797338432541129584724289124978892961815670626314961949785652369184877054293340964588225723988857473998045143954778005699981911688875212285635503317625685536578397441478216488757955169897552755716604630844511654512556675175100905833894292768602883895897874624693516948398477225221712923349718289230840112597279707848794446126793800548402650160061456436349348514187283675569463398237373937241679613092696157909875083490634336696525514758513154006944805678271915567313204388784503463664989508401788886673390793756727494162256199665543557046367907797571619729184999205404072672115447437435491166769748329567261275846603087863413418737771008674680381477727922717013685701485819643866862262790868874011641323885117867018536142960394432434024198320069283335681757984850004816142268667416789662985331986763767280367540956264001491012264752352997615228351563100945626984556427354924585813247880207022911850591152667755228201065599712057747127068183772412758415293870250028457095823899503305114162311226315574313153983050797790802280515445276891979041068944441032943133900605202816531621576215308998922987198214209173275871858506208409146047581651311492532168715974603200067578449965285158309171469364622706320887236158346755184290340017766370238829333759446845389366190474571431817176813555845582359434031896476524141693328948478339045485580977086403593368126442908418008848275881808325095076088216562345997153427917133492475251672425063176039519715010243682068728416391955413342635383394181094698664428686017415687535050403872066119142977675007817130904719916574959789631104382680839117280387637223246199193785621176908163447327947137013529395378501580281371555009678945060699136816740623472348271370370009206994148736066497104009319752488750566049888473726011334507780413415873194265964644113246178800448223888338516340330355121704930245575912875931691954542110590788816491883130096907297060199202622805462409397347470796017857795287770159162914181169677700191730342347837646967645003984795102830866521636329721954509252391314757496105265277734572757030058743694821883498324567208641353325674141874899376631428030287066588352769240441951066066327774391929334048689062850494683462607819755280559928508976109255106620603942008698717537435960600504789143530284324073288526265673541629396711978123808234643093434940945755248639182137557874227694332000037431065864075586382326160705118642631081386631010299265648848847572019363135841967063017044651079239529488346132033317023485066874442271535293272791775399443840967869256532223523388206137698567413897694731267839114738230704775567705304234793309527307851273990638513456289746089123915996513618699845437477970537192514388682389301466830117205405932457256083460277358571290520551264160533249227503098875772293726946907253850398414161755777778263716546481853586924138539845402186840472516794985174451514463893232210218824575248511481096671326592375275254520573891544844442673749272318540101516035441901157287113290584651744405543454112075665726201370590960835208256065271803375771002972630707325276826396173638511849999287507111040398493527536611260471394443525525073642012685237032208357716397907540447669840111121421972008959057823397024388067360676087886594508884176265938950854554090400202360911245218456677821687356002856579936666198003947538117018454718823568227818579898900778889821293653351824734889253335035870169433045441116187039066346610479258348799349264541845225272878061118031293846743083152867862324460936837011398862168932946800194333836384961541561034441446109671170397108404206600152902520257918524118624360971478451686342003658705520835829041602202150364818149092163489181789805162151409601838383828256776078771652948313580166075151594978431659975117034563258556537557563382746899355498736697600418474689770694027222406757610189965902671955137402324996710805909173547291376110502536220965373594037475499406112168016328897560364610688035881361112478700426542885958258274464780000720443487545429453399158152985672723942983136970830775198429691875017806767315000274312945455645738098040518873804516190151030949724636727980091807820272688126836752942007464424718071270365980138601514772685610613689460149741326915284915608917005584840454283136544335892745049822357230276680713967939205576808194916172286262290482303081851554770113336435950637600070598258905340661615331360426666503057203914670354722901902966239553780648692502406347438249272687450188723203134766457380086241900503761770147882004249964203545037017595852246763532226401501522438582907127051506789557326345844508608980769943483683257324462578770106948848303777598418768224710475223100984427155150205471932952006448018948054207849675883936701458576066452451791667219858448483253250396940546613278788234713827729462538280572917212329625443855473791422339341699270998235114003774494982155566247155450792354109752358264529822775676955477474152264669694793510019882284457953049653845771678805189250267000248387962560731880944359120754484422377701743675782254549281291070618417158251920441388190681131656839122926712592778497877848760134038734720072315103042811603375292971032106427340550177319476764271276077091961718212008556032882571700551341645407871652162369232305458420973730989518083074029891471458741122286815535026907492512657786828962969877676932048337294906111587313491684496055110425989441425998728035423266410732441836348172330488349977538709843021785596912343514959532011605090574902388499475347036005147986742612258020861431775982376883190817117056759567031145641709730520788570790262662456460859058892130248333501978081237100418134049814858070129754898495499503684203176986340758679384860407139551955959429343539211850530526067196681236012585414101139625213661880046673927075535494299019562617574135158564421367350393185400505829669638454390712538931825756496837625777157609200153134819613244951109094130146685252466279406518854859474929950870954111276546454340712261711062797011832763681628793981035876450268094150801425942603848560765833777656973597151772324601946145859954336290402710058639146179553923112199316191774751602544828937458210882189633279348390372725188704612469914077524025269324042910134623492096963475234782215031291838011806544434657128673342320374332639116798171523672643073657933268254977729796254514901883220981076360348510235095184327824209354602028978904905231244003553784356609849976172663479918604580454604420742850876696450932049259667179277101615979990344831117929050262570961720848931652728278898663408835143459718248881720062812638456494714649710565157263267219073666565524601028937592039949471802725894495174526978724823630246117909164364091100467472110188765043221128796404082857626142753730133744116597609618394281454097963403903892506073787363620212573514904474736060344030056838346881018412049795400387979738303470739807562187175273450891674061293330149035895691951199665158483698673201572892032164671029859995112951583843329608769771632944249423506321842150986345771778524438906340833389958609372898447593127304151740980753039344440650353744541233521478015327524332624355952212873415844070675417019734139601284193692189003720299634754494607552617678421167208213783298842565729416614887461059907557577833727040615960460517039587996055211476080874004060193033703195609696095403290419754091390789101586258039835990532407898622893151529614833405378285100248990610383640755561016773510150722015216862853483554416496636385090386341885489161491947721656348991685766454046069472102167781928529701040062225820096593657146620254555166218692034207122057985154624314633605249808874023833134613434379777316457294771166503673726177407354239111193149166793431158366560532815771013975518643108120019903082830134891668259958319501926679428879336004906741329156247313167156400138598289354749733624290528412705497725846491166045458238915921532495568797559831379723128462373431439879010080729835709431758969516567285718176039927600998282553110575022479259479420317718036714435284345355928808408588875997098226944747513546039441460370136579912574470964204696197321839791550651906178023578888693014911783458829755968500944053484476905385695467887240441016107007893349213532130397765568299726764979236785363779588694032362605361005419320933983633504054330122708129406239427893407470155290851600700065712076470393206867914514327144094697620210570742028024059418774070372715660520659484073527266402487181608837818328206377465394698165101368702366294953667811562820684387609807981998715662348632499549548406674291268942267296810847020538767046607236576551930090982239210082467196249770800053015452136467310994519327302930675663802895055863297921552631636499144838113382146142567861575345867791398956746984484386478482546350512063225356578882797435467617106595945310280060142308415687559817401949041520469209813815475690173505039089831068252654726993529734898814060188028215716317293188905381646802534419708072200255381268087353829206461593877164638465492858400096011822493531151573510258917828422131055752375678693465591195874305742465324967828195950510676581112184709219980633436395475676594128655950170235023542910248954517375673908574586815904775014512073848996987924429706830963271490134924460334996334363809471968113850048201864929641388121793487871854083498682143733298348226982604544859801830647453427118788021825665546210464182379803838313404354062709721278283869880554841211993029336531594504956443475119106360964703306047121989205072760756576478526045294523789411085678872749822702163136798358206479802004746946609584138119340436481926719650634578371931338020715306107515391629417096070618847272378884608189321870056356240869130656276688739423197524799258586879014367995647861744313045192753286982702113619116294276180021501679042700515890082801640058306585520561848685587735167517851007808695276298253248063639327207953463413057532759902254919828049461357975253211760867319609773906785159584056833457972879269880849694433334225192668060530188320242806071546944742375290506017743184477543911693833364672779646035661882215465536052558040618458935383420864875029936055587873403973406625948891997882228663814434903309245531860359178614008277275389071036550665985067727108224502942627477826813527943067737126319780246984612465713353554686085751681419935475524903051400207574715532994160726556966838429343519090879696632794299035316365667783998943450596270977155892025282282864194374114488280975476919910216218834885303765076744600873118280936801706636185234051363225573241455970803039359245543529047894863481854219414832375993131272090315793488162409835963629169071849709644748370568563441121777127358057944211262701246500438620289647915927168280825193139572559686967666268626885356014416270248805876565010702212751332986705143333685823904245063311392602538102965042254919234958316701405667659528850718798824640920622398101388334108344301358221717410948926296823201547399982139554115455810589493076651644572894848971647778982554178718549487452071108289294987834643696934183621589243482784084661841866847535709615510617375198959317065036126714998751437510106262177372097145395582292015733625933186694206059963438110726116616900392331932633572716816020050863344936301724767440380960945859109527391073891513650990864921799519401263194724159389518283260571902869196465994520658801573312506341328805897286816367528875633588701854988467476200049547850783036346477955373714501343347808572094310310801698353444790152249666757511771911914517660118768546555284518867921481279759787578002904167995973100930221532039675564996861245324539043463896151801475332956540969745725130616924833491223719810120587810741846078711396933111462596911277224791473776344394770984388032672358201276861688196746306246014491916833655655680973778478702459765325063765752155225080010814173310336985355988967890491469625886343775834825163709257318294246779991258167724522832223788906409113517125664563204709122476253159180314413651262358581313435356254826045151386002057888520809868289066186850573726550248201394154569727770358315077728385387886998289597413559083010502994068014315735688105347595454104638947306011133031461292617420725492004936619285033454978320223135464816553166251148518463952980314244259580954762578935506147066426327477699140196514946159627730002872971351452668910939395240722462092664653875414153173385569103157989155522571895540829142374827428595551284472644150969330450353272331533645484351316622357945957716505200245454738028825812114569820558674237631918355499013366115217170870755903083481278598902456918069369407894463453655081359879221469020426171085017415617020817705126423086627078015379769109330474318851449662581794906242837798720572221300523127494264407925615277758205825461297476771245778692694424003997428891790173477312600971354100594219926788114016427990014992200496000542439854503490408766803436690858526162839307748785154728527004365041528098360820793991475894944300090108342955986226613798074057154701443809748946491211297293520252515138242326573519044378224777096496916070757396277355954378618732424939347383616480387932190242692871978873502092656840048621729467910303799625675747514020345125882941624693370146069129814972000793540982148052464248990756746641958314516809047312177846576303746446290132290432802950271931795869579603107197862590383637695681754368668697320261018463661339510711528989580039655965305175739873102641516894254871077365359067181335345467671297992327252772308222732601198824314444839818959160992603624570235094694034029526388469127474261112240865365944341706384435526642176697261940308866874647652511454080395107598788329655656754226204155494865330159208795034571530529201200395143126946272351457375356538948906348210235062867253176333094457930851557478667986540827289328933920161405459275286387612073756693297238267555973836691305382605094836923975219213442862654913831479884720330117425809670106151649193836395519185479160396171592976241332045248651311901421345557090698015778931084273803929735331523875277951725947578000987688930557930308015436994161545065557295060844611538998826243607116169957086005898875372202407249682225839350222246700154218229276367403536587961215760636388620117779048854434448808146572690760269530759637293357171766480299249596950647536680821205944109830416880926379558098596412196542849099270188695056464359647817480277457262994604159347765439221857323384264546476461309685184885036073132524254633794852647703864742102674935637512274694241503215046102177561899121753876020595084826890087256913870737917475266825551220127983101690620316734879804194921262476683862497286071913874225700610900415466144945274662640180158006772873711758501778545036660901605960550872353488481189241595592724837613366402550156562783264588230658781967304323019528902466444853482162479776006280084692194525247290441211048113734037682356270414780600584624463191364340643352309493833047371123541348214842866181045539859878294252185409333474529928054409304025704432560920265289861571914014992611254712873084925150919029678037667987563619572657193464624352127251016728893858027146121996271565910863293950618788401229627252776181910536193025489596049870132805789570048509328082465516321339111158674111514987947918677327341587884277830670286763524062750950465126017658212368299550697480842354680584020130672083481051564046085461012582392137546848103103636876120566832887591113682625646005958010570554903850022827678120471882827377937955998838336813137627442275459256253568695197447820941677899100343592531844806938057285101944470891637999447646442563418653963320525268685844088463262079445567215155364692878824093353072452105278760447825353353206406577585476752253592581464149557986452079753787575338982846745811695280660077111148914713898291516118526122383405853720581354238458197588908461462925345228203675038346745148495273480924125328114108859504112611098067704833835328093961890237666004443571899879497661180742914314915579325608776685230050050178720710881000483095026906875557794788698749932523503841275968584457522341808434225983037962724983935415839695604099863853418037784936808274561202434005492819380968845814700347150415034935542295603905517046367022589917234341337295194176042203271549626630290300392669148771354638764090513264093234240487619933897726240454843349116013446184539181450540117899365760361674751706386141168432790380356673597843177841937218519637890739828479332522494416869768135121180618864019825612805379157062329243026869792435067868032813211899490882293500094334944927617489714028195240376589297221784812026528089280527337227017753008636588420557197726497056814029490937273846675935975235938173819654957582165070849032095904419937807213741277255763507309441064625813499519670108060844119309344031872195434006775432537471744116859377337765812478337578732780166102144463495117388159429467304165190865081295318980785175515555065192590780088107958434100554240871858540080977876269004582003985838164334241707113075345567641002363733410676431364507546555317783672212879265445613038880181933754734789628433541328043717173906264109681446767411500532573168419054310732721646046790811033420933350862093372977652348531688905114702935600070669116191234067126335507578276095038695661554046636861976430119282048284574293185345021112862529342928902692090181431764911434097218429858124729038496520411678848136963385340139442722423025413424530982320776459017654986224541931318202842037403690368111214136136939144065489502029837216031192835645456004700550918174525148218283413677128176747157763765068732271679224777353095560390778227879423986604319848263527826325438079220805007823083935366423920943944161381513327755983278757026315724651624197131264174741930115648988126439141064196869703231746663283215725226902286567387492318731717432551810045253476314662893163651216117638099911044151799833940354348712096647293529105628315128952204048417657620026882810418387820316994216569015586054952025028364062009337070705477778886136497024918556632820538031321790869462630490478946988067048333173630844559860781563456692477041271945484152439193867348522258129352727318935620437609403330685676298634342495546706620152660770556368424145033084152082345023401265572160389800459906275411887039949929450570307586280601756052354113163769626769677709399367474260711182996847289307680969927767841537881755500990218383067534968164306460930202148818593796669196939404247218848611448084189545155950582871964455460095512049570611442210765130028269086742918936634926196631825392521958850155344655365647194803870025522479223029174075151961093264986700253115209122067258751358917114879609507322589849839981145984466328399489026310948635579936271941860465284314284897723017301320738382675554619755492078642825709113387005256838888414340499032237102528295348442391505509033661927524075260329051265984340258837015882682647005400319366841571091264668168694040024635495424629218054910615954199836911709440508054703591914497225314949765243074729704408658426734789905125523895796113648125059947442933983313612675288203709039658297038556573382272117924714594882825349632760501197233845355168306476599336088038153487547315812473047386187840174097971663393554828269251002101219670779794015196572815957702343176035658904430738790831217779480672283658042655412337677742589490135278556174408863383917774800485293481847513368283523390410870713943045005291308726971250500737377740269325734743467745079556009787673589463907430342018786820343519807164799744420420882585699728097487061998139147850175886998165746887598774961302018398934895591186207009822427633989209010092336312452935949944441718587955530318887362374608071035218766464380980315724209016843255473201165502337004110918617122575043774185906054230113656619351349140404720274872136651648017990734349968226440742283683104372322262376605486522495400447323560970519842449522002478737997748958680827587274420664348633910341654715801967701320083382110204279832891364693024757531644410679705918832488420101739934382334795446439503327604113791332640080923559514802053636207172249068387461650844834983209452916415069943150622861227714894560973946109172273106653465591030276445039059043367022868864626395532611204852399522207392350166110326722889459316976230623891528493906541126271946994730830739061757614126239603899203675508159828057522101102786269572085017665264905805983025580109707035227444177617736890296985061046941443614948802947312525191128230983942661465737277672946883212075861793389630408603149632381959318196241605945846035170767247828836106833968977380649595656575227568273331078856504901828430471556285787237040384284990366523537112003188167122414277886569242664327879310256119230460045529212548560042933175658176095392252514117890269268576856984682337676091044141590930115030287699807168367560951279075053214301781754967712407924594502863270443537158944646521395116503657924361603992583666439803090097501642746918069398008162084857299204784662572706041354340061464369019253171092231702573442611329741410617283420126730301317768491255722449876135756078541595063305501837828068051743521646378807430870045652873482278215492804284932697922642616632545222912627249627673063775988087650183050948522832596131193699773347615250552453898222733689689082634810323167176219057000461381827870956211986722310806458708118430793727760590741800695569128492976719149526956302846087725843093411152388187892749131904156328964397722120254645467292446555706792875600341452954634777928424267796553954513056849772969851364905954250630901028312854213698884497254538512555635969716185794606511044470700134215759676620093546696997302016041904702408131066037029639718710981188391088308952172009697117770293077396524812125744504086273226614161139530616200751033335463231311130600562181287945133345252166062033424183543690303256076574621719093381014189328580429511290445769807051609505477063612524725252306859715313651018249154954020917275389901394378634962068279006299407974329301230665913931868360242074283153664194496443055227055186094093370738369388221613660696428694846463463789275900358367010466058784371636794082108944528067477010425263507040648997624929604586976857997705931398021734148902265398540178245446081476872874059705485167534526461404924906338019918827233545991547730879433430474395260814615787614547572055930038684903604286525779741169664855247082530853070083188666640285017553705773042824296055514991234252520685554092161934049299736351762240692951237404956902281516403737130768529934122021788850901913692282411495550431474665501545762939562860133708750238642356681099367703067245612938369985527532695281398248810913149710417375674669866648384465100390167352566206171229008630390435800512960780377049344902888075748120636554083565177887107937495421421280731857040648821303742415128010081675531087018003497790654905420756846897341003257099992932835667504641412350000042526439590354222509145388590327348847838846087680063052146888493972260898608819265317458562576691819942232913727050286387281221225026373961604729645779822308118802239634755808243497514073197262690938217447389592828115792424958959392523140765845808955837581202264230419172594886784937754831158852391735154609697932099236860036197926898013957773890078868450752122967095317973348457124413833445133333765695169562198650506451210571278401391478039396407874573220090884377905968277579273460017411393338993463467896028373967238074422154515711487441278114353331860620596218954229948896758963198507743303967713025387876118498223396420764144652736193655231108111350798858162100931363086888947222138720959047407609954064032912259313157927057736915370493686493384124118825185835453538257674898610939302654861790759392030519281540713171238640800671742396262592410006780662685319176035076163876616572306739493368672531493706128042266565313294658495143193285262076162270459428270937553091652757317246293114222445806264178483699847157107660968984184856265851490141684320559828561472739555434529930799043292392127036137861864176883092458998688748127709652390170493745239539350947613100873200862473619336287030108924742864004956056062449050520404318677711481915085649334960691235525386056073868326207566432043739263121816321310401118471774678673526787606370785987763630827297450052037253727675459871159441122403152438072521841512892155812270719670363448577264678923938553476153004994980788836688199299412717174935199500258899506467971048924258769303461698159960568661662640110587540590729288184006910938485743212294869748710241653500726697604576073270541111120073389229203625193299436982079791784206439778029320997783730645306114619354453874048588791906481754923334521172768782292779645618972138618982786397179982637972987441281391161824288162068285602161493573863509137720593331624825197434892115479410169705417092247037169759654214884805802340937811496810193029437411944050810282154362973608768158511899081737435192634289472473768866790156951238604784260462864965779681356307729347946275862641970842270831769596603657734737089441949581971414557821838827459197985426368935804789683940824702883966309513102220057159201759732788443961643428790554903502851297184514031490621610759890059068702579554484818321456544087111978691569018576086259449580563756659628161926091443769280644102817207601637156259084941311774469221503196164360525359497620327964211431906198423733207527669274963857599914199764168348411906998764873888357995543261515852766501689750167079358795062423252266423526120945865816357880519266158593337380994675120901234878828105619945089219888188504890799954971370100788866346568179117657947788424114832970795090122866189064567401837190324729102274859874592407186525604934007291053294688471445287566188766278922152329618691524304449083927755719195661646374925543890907429137705042600235164064174982570636592064444237415848203081870445513578844221315472153275749199022121331001429779013249987029833415146386704425181702751423372043043350504594038444742285648232652048757888039462383054662915957216466278979277251749280294547147622884628601597051240646176735294385784818684905857518539928513338202711267425870242615932012192256020236311714488082038586057873398685084015709376041865245104291127260655000488214869518704258243515940599688098659399613471661597663749113318591623028284506632449237677616452818753830640496797048483468647999672652612394411876422885471061363479159419292117241324249146072740232301474889263069805830676396543688769005176372213429148055231945910314510848460723944435814976690240146617498268099366992258461328439668308721189322481836843832330736756427726140789855785721880071706615652350279925961200570804661070328048815014526854354844284885198443483213505255070635158296197598771494233687890354334495880123615977076707014654571148730676262706879711077942709381107584697239846846435633538665136690800064846389075710000681130232038623604598417387013410114700084287478231970793204501317530996439363240161678778027294975990198750988640029449953068925172110320985904850070524754441979244423870339956969931507365047512557928081738093696491758423107408320137387077800612397163683014100007410268987838800547310404144422950895814524597892027020330536225573506566123871805639721351674866320765647149072145564571242633654728108346176616927986741372027529647199240597542954311383553618067683198711460389088108016344549712929393785855606379410801463296711561547710664444717690000828281029802126520888189886216782854651871736630262693812882761646304420491870641746513473587284316968465428325370877818846341351832408722494778633509844158893735761076792355363886098110438908236507779964722661121770345397897175599024132494771375911879226507691578446004338151136405186358817331147376828554455154509106614038044678148614699007434137780645120440521421290265312801378780580420456642904130962691235997679470617039014181898739785611010019864471631872442985243667178832230811537769640036814657420208218957901642586357733641078777725287141506887279786794463515838226312060834769023189527075222695946029344033343733704015477038359573745605360099159155491252536650853659880423467287733377932698654978900610834197408463569933501728151494224498194033571123565437441472051815763615575752467936784994361903629640839709900770103541408191443311810826412731370506593022602421662271719093603247307842045216133945639567253945188478144530721525490982724352537620637082350768493789462049814005170928758036218703542553366886921122650736959898776767088769207652829503934554708781828154545766082613992998162407656066539720688486531209993183153419964802464867014411009884568066167126798178122409334489113595899706469720741384806617221539287338573077699790609155667771595858045879224224595068778198743688229199363719060168174334353743541025313610091187619538609499683357748640109441946553460821235158192916726212508823625666001545105869840351434447679470495173549103572773072000450699825578961438796643338948198909344748370579298717805268919220651147212968904372987917869889615106878827739473523810953978979014503309983598622530331881968372008574038921842128508573534517789111499048409901456409293327690651193955667343526206138448930761858502585655297327497866585866092054525073856144900884159274560705523765067371043986586734883950271447645442128316981500924611768931920988947182455527808518898203786233071962841325796966924779498023313339094972285942116711329800907207227249725866038839261734281461037904303658555847953034640077830112358403041690487422896005202971002350554504186407888373292088623380507398079906857921540882945386227662407634836926407213609533237962205878821286013277313266166110333379133948435048790271232516104494408136045866067185601772104844200713364447067002108073562954241317532638048092660343807904704957297874784828087186042946148795395556301340580781341036679740662451386177817066745712851058331630664686161522394424170247567610162972173337039389404028786013172719337656067719433773382552831905280735064265164016252061527554399591048498005168811733858697866887772793248275686779430782846100633077653431818216547983740190741527325145189462247918053902177611779690654012084356439565006751094197602947666777769312693925221415252401316612759166843440793233818900177291089112478152910510190556649502865198348909407590961105930186980324404163615680854321771337351516077562167646853915528241693229125056785140346260341891616499994916112002399556580443344703713402920689913739096013720565801209191318612288547259780607493648340362790215735430172868119166502290041763376455975576988334347997033816861558281485849583477756532728541117664630980010526923125560499978111472749582649759555640437620472254508898693795458923558641628904310038738281511391397218927030618952637014699383207959574663087225300189871616868312538739935367056297181539131162182597444689018616202606428542002446232169045380347793499177279784135763632855442984675663098759425869566788716455812999913211215875992176497935570794881354816135517972504334985827665983162079235503949281395921232679950174582007085440785280380087596258604258703755098537300250271165465492500853335806343172811837457131394693468601121474688016287382730778763669981487644772362928216451195086009272684305367395815829514368108006139937256483146346421446839255200995003344964562884772360734041770819943830983320869602910785092645308091996281163410132939507880251740319800575143384980046855421447988197319026819669483451723538788328243129482560159055518247927476205681212651109778064630775916906957992278333615852950372001175590405702720069318521675736404022974313696535064634182624522398748167070443191991437720117819476317266597285299931584473136066082245715966905677069806802970513723162851867202944931264841184028784588206799636858909674866480543961561795714521713229239781623197827920831365743426608214121033835681421565501306035123942501044693993538608370732673628630102722972540280711575983945309074842922740135086321120260272188658342505363677138831528919411544358473042024100434678082251117506757870551723148351260220652516727952659030131252555138365962514023233806121639333989101145646291989102684907527255915247144398708631535499933247056309272854320833697141601669858874220486599973090193421899258779793485389750027559582798493387339281013958826972159439845827395128587314611712504916579016182835694408744579594857008785148347845632716965026153606865169799802731262571794632596064783352009719078814746498073234689516041622311794581386544661834496071629734045534221291275808314011018816144468842912561186050381269507526454520781305852929085456747277821103637812106982878228713613842867993764911933475723714889294838402845208487509531534901435186492696707184106774213742149599047237099175197340857073027398735670405841878198739457312973978519925417862612228376582813861715012786805475625259668062280010609594847359346743665369275210501920736217878290539843293838142820587815226160358017423263716506186022140375821897091933170405630454886253997919726988866929809589592113351505905589433614474567682821087526583760041271027705697004331375405462347900304684672058297714136732527934514433558379248052006549521750879485854122928901528132565069242207711402562908359067009285282310765177246783240430203755970094861208456177414797900727503641920059149352674219426623189970899034513953899719216478471920898068761999907049021216957331820894287053768071847297292457001173302799533453364826766599772620009778101871957776697747694444730617659258393452076547293770696065700422019054840511217387188238354241582613102014018550479990926969120778196885406466093084330023676676623430501239297498106127688802170064588990879814189324737807516839313483868129635364873617374032229430975692370070297499881913144187474153778934363394316782534251619080801379602281737961978794188738896130930316768915808412531630584343503481874025907236494850196180289582337438724973763524904056672775445947657987664797494188078282117343767726266600518034749254982189223249242706727897834269559719842378307967585968378100166292115117914456091652776281467969984924476462654848994222520840487284767884825913089393499211381241062042320298898844531852362362833401940965348195905932870411237126002482037135076547580690094319423162832333320738432263421376188323833689708848956239014908441860140744106217839776558836735584992316820455378162080527425316249441039684957588894941049709299310096187913846724805026327547923039679273695566620392469530078180528111397261832960257984194505745548831409976257178551826923027025346301497662995725493229640565141766616190023329962589879096266050633788850154544362272141130164925880468373131582463167848241070919914517696360554024105358694625753364532445214291632999351762345202530462356771422186169209588176568232535648943676764725018932950582735714508976591647692880747936039696293408547405314847746043592890683263875902911727680462562136812719305762906305368124225166405543831083435719783354710029310820820882008763233339516527684694035897445876207459322641654363010883121873858661122047856671419644385384279577624904782481075860769789116405539157060813896283147904630235018460253712887707050158445854180515341606600401004887456106548000532123712849592705050091060115450461158789462941365310039775902714011005756742506656609248488102615858683155506505569978115417209792897799733452318377967628306627035122682798773850219865264806331081519997248572209107528210287404884808563414775546127619362503602290506748941098116609512499456753955307690980568192411196588376889332971224834297187930736892013628574750522948843672311978748806790267647829479607401576773764236075765975836005026700028589533076475969138275950271794222001314664710427405693856266766456471293937392907924306320675311732566934201862216080840427911597012686945787394647223539034422046204865183820834103106164845908215477714620390124316687090337137535988674002561201675162192148291398565960973813206350812141390039655856237470947350616897547648636614671016095985473423732598690460124514868840264519030124514107962221839946284346061918435499950325952367286243621796304037379729578719616819311019491179505426673541098201767215150086694557609626019172655861109075756955442369028366913138751921075820907991678667802415722870256127268662933193387840969497937086032952559354017998790067772609144512603278630833607755004757236449255553473889961055817697371775277262529007638326571764583789286800589449142201241974772640785212937488749174995011767942360489521015279871121652956834021179930806076549963497511998595458499937185434344771842289393289666668999800493898596694970038627963683456403303467052044086920203036737224674553918489560483832256110227272026054585271097735683040095290725692326063271731415361946344932353456730337607311074978875788223197509506630820784785647024397900335954173851229928830213229481724318843867324180405287942477950633358070094940882371252672174639794733662620165789754847563225394193975586449737328983685068968875097475616320943157081660742464414238460738936549768639700626748794962844645995101405167438329559648980065148321887014180899629941637211213827016215725606865120753431018073697194463422030091201808820174089104844751476534557379247333356386811694112415796937742760206226476803775387168508818015035640164834421112621594900050928345845269122882343575249747741021204961449696213311909126042630069791890140854755486073089419969502916858277784116980739648943924351875048558939580174938911604248446684062692984073292940500654753170260968254092648412095747438097753376797246942188778857217979966271941596624546723251901440213946018654735846354336717646950028586041152166123903441827655600297821252664059028093083410858512901062407269986824957059162537588456341249074142155728414052707377908776086514654888381593588276269140314132163528471639983927006863462723128100123114546178853523454859645663666662219812474593138757243775008160568036659016728659214420931218463471070096275737115371018925373972011775958747277122838960556197316450598464378630048319535080010793704928294828677817364923251661622467263620362678616965064219000647185044552547205032958711082324493652173259600894936602853682849053312436163203957098017632919680156929259956031126778502691752620412383629887400100876033922219364024546407191930143401780095278846492646307436703093652708046942947375000141114593591134437961325313231602793366463408478393995852031552353217692195267240290291859728805911747345315947566213217026245247036648835569790972840291249842639775991576252464257478185652152170553621443767872208408388213708072594399099964765851608834116437879510396515886205983410675145370895921385620730601909859144090275888450204517651120325877467872548895454951300024621921728022225487330137204977735217490191815533354192419489823860656498819130849708638309235403952777111745956476646935170528408109822389569655969026357935488726145331756056675204145658556769758868262043191700206748424463604607347369204847629801547104436442314222384566500284539645624386169324712492964729350585229529941473887979978876196324535016735887292101037442892618910318626784482770366838293094570257025894994643390820753763158909994009208242210566863019082930105555266188635927722701370099866695774093705201247261872903436977516770595121685887374704877876362684644513499124764338389633848827264908222367411050136754324708371500731125882778006317551013391595639932592210566486508399638665005878312349704530792672275260880561837589964859053755452538772281091941811937064961776556168141210041988785439083979295407858523726240724723032518717706555923092681647110554319575291264195509138212851164656822632455632737447141844297166691227425311276119563646077367569571714409263715906100825400863961220191578789922324345289599956755955458383650345292252056255779498518635248360017560116032240921447015942853506622552643856377639294608220995336789960211916299375668507179763843285971051104288351948840954959909687304235226497251612590231551633350868257881908171107913677342843021815953567229831805347718252203434981669073996310525435212059388956756172571722337106645882985168903684833845618412312737168103730345484885487909308545138965354637191092609008256439440542652609249364605570880688978233217708898028340231689253348183137192635949174908962064066508762199192136172901399598656045308098866037758191033327619385942747522615776312806626874196988546494590032594542181912968776831878791908535506107473283117514931996524538034057700636336828262494261826089011086436259780415448216194482161562415654093777668413284346440624597257999727718709778050033965518129533549096662511641740935469325135216969910333539019037215534179854907754263379382148716192967049121706739455294478106526065551379521377135691261001097059759634814638308548801359515953149992921534312614667781104511561142778014351204911072317987799161973199863064820033105714567968476033115255197456801965094767710493196058851855233502551210627097060605619135900091932615561862618688749188118791408585871900853694125451587992212481563241683913745137042373970933493148555350836097586644958523073000125919377842181491725704724378243623898293536482326398977190023352634236562777986559389550706067098888155122667719593949719745252906708654720620118725891795434695715626504903616830438596871695957431075565129290475051649501883989850855928522491234180565821683273414946476634233090619953257030940071462923261659893356377558170845928987434446084011468696242194198542873145286197989465413746882306745798160361844373419004973014336057180214358772256928724257373480166824762036068964269766596588881751145808094480528741231888075202104329984414221127097943042799179410240290296639254743337844491172610597638816033506737553521767462204279190302015807224323915364684147241113295677906271850235974501005019624123250904270387755790950747435968304382017395412770927472769080538936262397841699678063630380671714753291735330700038620112052034280275216789490798809539137732342099820478602630221660855416529401107515878280108463486818225306619032648249051972520033233637381438696214338891184284749157457692625939758230006947099872139671919714859666269363862799274374938374751746845695665954503710793603768899434128144866981679184094101555522545371568258691394666693508718802040277703880999561310274740096978792181067016428821205742137249205385717036321131646651579382897325375609005791601333430553178001061037650926490839269453201316861963336779379022311789055934585586973520132489726566396269692978933173327629939940596168805515731229630567675152541295037954556886630597470991828106415982196661113154006014887023232282732120988939259811894186609780837613568546299144002261470214174797057318482701593820632471817739588978923069479062982108858992993100952006377331580086181875515489629942434503131237860995373095303751166229747957080083644210652833262555052180999279021169170587962034203766030027879332564581913597812100494364175155298846070915613958538791580901483646179070788329966082914459595111544889056621160763906929967096994017451375733277327480649392830015929166847960287600408364698026537124466588177629377755391279660216678664965608102248375412433708681480993955112128155045778830718081173555358618483929982184830250996079161586939714248520790838268467347325601147535507346902968562849466270201382895934877964957607846764135177716199422939833703174737253255561006191344212323762676762802166177406626148221809349314521982052723105554887697622932516676596341043821007031024102563529593403953840151291593490764386398655341164707891898991210127791855760349821335948057841458361737771751077159035179113920511563385696425256401598390998781213353117648400043133523253749664544691708410982148027659291471734106701480266289465056008121825784511534453159473720692468889247574383676262053935868835867610113396855873660413774255712221933458279964896717108106319010695764162710593690783872631637065306393899550754591890330666669102684938322110533649064487058489335026665510468155435476025257142669614709473902274545522714612788172264185837492637233798973387900675697398165277403830922446093155172137759200605917062315902974938062491284211903857637649882768704137633757749107806635207957189815348819192036120044610682223469859262047787702315954815754804076745195424125912090462025545812536809465024301626165719215269737432823300324876120350874409273194313498653886680795632264063219513750115576954622080110320891653601266357208233923826730331281840832823761533928427047147227850977753369781207992522166484830663814710983487651911675439779668960317011322131551215668526464663127097640369668820002241619658068146138360451747203666313849844577902031415504142712184419919239114218985266648583984745070710121889542944270053070836864419280584575670850288852084777068579282573253985808747275542148413255024526983276707757969814701173443680663431459462926282789887919449151484815554232833554079989800633960414732402847673015709485552523641724278509936202225195657793785212280009889365595939289304019836469785665817242292351363157320296580115214203726184404890908280970927570502871904957602643556000348072490723121276681643915904856414570112096175483646286232235716647242220899947283825328507280546345314278523759407808267567938158191245582181261503239320964620512910820741996310357187722489624986042628728123830452381988348510494087401935361862779168365218170518533682667455747355427514491125080473732378279923436233148548307314040259439055683185070247071006703191542871889194234408460258126633609419320842392044321278651932163645610409924343269836161258155577695135261897146207099096611627113730634523158610545972178028721589803532023811053867894908894544890523867179088983569119703205419502785779095272233838357350512571511706463376037713129256762404831161082737676830178543556700235670825428520209009358849424060821243655994028424792567686397580758239650199274540473879234466645697883862208397405490306737824532227351760236496616367260324222313380716870243023856927444524264372349698170778016042228327010284179877549151352847497028515268582147212920536868014964133284034335820796847921142255852024281317509575128048965078716843684288713907601296405902597192092880657326064874616617206915800281719052829615881499980262773534361201362756305447731579071595305158777730680011455164516370379105781407454127060224625421065089876270853444005699840595694854923103585233615974019478051142874143251375925155267105030516865141741304591289818738579992685924686001897961260054241803614782330018978404773203268318141648329196317047898980618526662916902775514542058243627745456984267702793580157951387956278013668136721907515073121760864404194033872952005132173298648296510162520299317783651481797534002965439239278047384380077653268238154562938975180140839019062028778652689007661215929229443877836452789799763148882487274573350016437729410308438798113293674723219930934702965949371960381922627046871726170771650566470754354791616671647364226559007493319922707721867944880442392231374426236586859245238847582404762683817942218620238701019597437278199711139835939876974780403272727320240061918122098951971312327952134513982702614520169490895326141806763398804204517743387537427662700336728229904476750653483393910486362908275173865708275594399047390482599879116927716429518585933173109759474104137887798877047809939690142000048654737136138410424145743513746271099591389611780740733780019052111846654468815660095376499576075592999461781764424339385976208187955480945145190425369896826465419177021145805798677324186488201245245498800575020776057695734758099987262425812661208676182187428547740578757957835874616902424697560482298107384579030999427965609339415173150890123913800286158345518249356565534130239568861855515145906883613730914685821643191137331929810927758588473472155408698345533213878267167845743627332358057280464001665538918600761211861225754704071696384282737849729890661226130720417822834738803012340484669007155431988877000049683712554984000865889784396926796868348532010257902439742968490894681624152008401598965025631167362308920202520294032656549620128663817437101715299135285793104990043753064140418415175922960886395471277273562891932881625511746154934445435317420310505265961785752344576734265028271292719862349281096901575460405369025617069156208104366354661163263450871405097262807700099187799937096357840285401025077424361178062914344235649287940933222452604304770787932607328158956999368121029654365542612284847495943422939726261479498756335520302505725436293909634226626865221154950324430514452531578052452263304890575098124662523538357822958321729442416910065605147827221183230417978557670847566231832552151427250979239787395274676538404907297582639832338796243385249837246178229608670487182907242444888174647164038796274298473052801870417510764282329241724704237533550052944278333653443744542202197120101175918159632555804551049562936295608512062896186284026933412497142292334660520124767309463319080082111304465412509916864220758486066817757462438076920031873772008956005710311534831552717925283577980099904716897947870874391386644692643590973743768193684492122670321624803625968888361955393708176247649662148739017841807643890754310325171306824781838828029208161035182714660845503451451310715254098121699010608632368563211845664588524690220886824716894919592281994400504751329122258505742345970534349836112303865944156593192127781524374290454462637645795867877886583450654276690113106966623766312526518102174855014554752269709765245060691202681527799407967977176392377412062982677690115210089973985494941524217038950274897286328319988818222308227494674980783186545541863387231238063599957388141509116564643501189862530890686209627728605208986533861586787876517702781054199359750054790800978866408770012536104391412537601206857555506220357554012994620840738479794075881449035746373275259743812969634485566271579595373556848936052194506941885095590103585619096890251118157145035589700415168992224827829878831210013221843653911986653186907661176077651805370852760258200433518473725845562288570061489314142073213839859541840154570546044240263869301198191155009681621141015637545331926896880695188628777466447480525215548631579607632858256449513146145835845627042964720189854155063063942311054352306936067455139677141486378313272604792304237395497204785709867203391035685391562988609793379130736651849762083926808514930762666644581177633070020987966973081182783374170526163239814785914507427191313711716591111839704641836362301316064380431241193335029220672615283676851464818227441764449347905821968075041478575757978641257266654777622720938884167826099489870644158917840688916223175844353953003798093819712643954338253043653119673204983210975379074261422696501056761386094836567293315235684751084001855765269344747253378679489656752624508346222546162629009045929325412467826253982471568359964441851258118256557924044736808395719948139760436916773247192987003737757689771316339869237843461206991207092275067566095305819944511060862321621780822206229758298429516055559345326605152772269775571882089301844396589024817206163349553615133926540309072254265766021076271244938357158345478452113230479844201453391760748407100023204927249682094379764661266474005094215292357077337187217039561518558389802341591488781201662942306096153185953773318297728294245092913669544688896396318128688761756410504310309669443299926847654863676735248320639651865911068728993184803206936571969867889876364948631959880927276626807877438468683877100908875648192082366663882626084675459641019639572548104878863993968620273781676507655746126578247271817288639277363815564929898475742509632027941633780139989546214669996279238350917028803776911487532963068668675244395503431900843836800905458612358187041794682769629123822789585738099397794596955159227862065231627563024769286740020805110470127522092744299284030161003550495655043487001477505436110306849403492178652368066173859909121848353978383326350288055683915575149838304995873815174651827228325426625577586861137628702746564261994559510005548505852903572305091468594848864723659163252857372293638355904022812843866135866666832588874584383963713967077386810476658797903691652112119836037105327601472333345022333252491106232490396736357828120463839444109416088999370360719459044846371864475362428190738927841952478643229609826399554462678037391725093361646452218909760483369634610807088120157716843578960208773362800943469668573847822196667374406005329370342542154105928286078230028621994557035356937629609942127246642820219734459440054239409596090738223617953363042570346021660807883226655965609853712892627877227716375315268033262361042756285265572413515452178683340011985537633122651156859275324789584789327633884950218018219682588553471257937998772812206750594727670277440390882090140105119131741292267824779259433385203836439184124179730384079826009634999554697977182302418219812985273265764767430941841018936337655782247907260268331494659276089499372143372666264129639811528398934481311470357883298850083682379928435146575963197210051232070172410547674048367657576861440234295105215375517187537183144525934321246044200265596048356273005641960390947653250843516862298447740328586692942258184919099914104704816739498339357086419104533351639122399207355623560157830643716861986186775074129879437830321346341325565091290044735654863555127245935830344505950532660790400870511094190085123444240694805704156314877219796421959734661466698918049731294219248838539997468983738776010390199797702774009746709085208429294016827294389481831702409467436308278587294434541314629574587638555790475151963276442091005372674413906584861489997517286262560026870281543552545121981577088179645942509252647751599503520104138098333982730934648933174263050968194642066079694409947741029832496038601965570850202656692029754470974589220416264613167431979121192728826216394214379572372656233998697136665564935106221560380713436128280435476886570829727972497118770953437656278086265964067014034293386984536868438233033064033689865655510738351935358453892572379497843080327700331732708038057339135405484665530842819516497760596343318383868381886549920936772258096731036268994558547101109942638609810256234550293054935483975183570371466995893109045513497025930392241871718801041174674251770363875425738212496315891916380277842561246783413135380524796599782917721330658542716659309595928708979063825430642333010735127477392495136107043215686694039240374812629202329152994951776457980437172453224800580984275674845604385775520259240207155695027559267437628120889140956906597076105491780196770362630436785865261182259975888698037523251268637373001280761206253285334163758197522231475851136592530002445932230976944937805854387357993028626155755109721065730879437941047037255860905339040095412192721328968412431355969329074302213438493164960998042138251801651084891965624477196840072920577886722579511927753692638592391193160429019965524817615318495549382726848014729960783845876347658551657652022573297774468456044498318733726574746435714401343104792693258542950948139753291890091877951281628759858610301402906581596891936564877012768894797727655575077018188564717698870958196843706307808756778665366472301028697652245591797224047194912444129029764960689363015945817681038807216519188389167626998031691992902663535345541410540611788544646393209825864342331006591214824410862069953824110381847702207481477121656377159080207097260220263469095100515980176371342173191288306021009425605465830411971070089830823570576867187437158969563935383554074287636247949157477872957233296657596610765316590237672963831184996620087132284956767413648713495403368056368450222847159765115298873834540285296696552323017102451422142893972718776533220559877609744145569110420726892394129007989837408405982801415222500485358963352677660414085865145799661614471472459205896631296253735452184975287365765154887528668605232381730381372929952442050429840803087592525609494448911565000065697589490711047723510104752642456737068068753095540797488713781371045803376604686773250280393635123452433990167179341014413940388209715367917461105555219133317145096433235870037561950810448728354117287988711405158991808145021599008345292560040557936395740650427319113321912265837693954049878884382414050082366355243249397309632810662156782247900379659196172636123445332237402033231501919557505068484142647361772147683634743495826523964050657298116372958588072179856947598563519639909911360096514909332600589556715876889591413931644266119210297489941169231640217662210151033934151693514717764746928727911236678533544456974575428290060403965619669442091982412957522925168674812081222710086788748922106358848935615500635516819733161011553969728974400289434181940142389897876601538700306010993074068150817178366428338833412659882153663653298098446499439657453554177931165046875594430335484579948947637207282192581409221748291547051363589486544609552438261905613388120349893159887553259967671571432044682797240370287184571288803833933348368456099263807879603066586033972490368941137125779137938953725556482942770151851029076026128503696150251838202997135163607017593402411946165932518771295028045553351794730130119633297150335569550229179643683628935279594856936540763575928593771676071746874531544740126856803370449679325638953449452303060750636600748814127526706029836030538083671850355355182336086039831227410108889006778540118197430654441565126147799579778797019407744683578019880490426209291913303134035783703158418398044364513175096229078637470784363576308961248456559029636863894714361774199623073897851824412067028888578618122047426204229920611211805795516986878549991012380949005003513691579135843138768611074883332701424693363261744087530380559422637284439384949022261418188507687159697430360125696181155853849040859843320760851922393171874362398683923094366108994152673490525548162848972879207166696712043951653432584661917639071830473053882487051982264728776985537015737235377201415931743141464907698849028929751821356833964905014334403960762351079565110572779967859692227296907150992865643273216915502996889218240581011172542454186468243891231528084404214584266213927137681976089962283140458297721733563665224557514808104345653861924553722891529434491218338364934604520870563252741497252139773816721263583731435953198652741770228084184224291387219000561674492984996242461528169188621645095074578609083752535739779230633969356330167223753715910152132327144411417471001266923560217412368245283391877727131195971471912402891836139031536712897628495457773586181720235622962760631517697177807446660614897967640330833477129128412649906583907608487129672520578394463410013928917444416353955743448049180094742442277938709203684956731940853095994477371443863490757456875158640328723137035866412149627817877627921443263438014666646210404151831081864810761969415273062444040935138440759940602868198331073675534304332476752702104383945524157938816444086545589554968265036314745325954353922498953411798731459662574251014613077995386631128884116983239344692013955360693457474368676687869731292341961944661487732852483381905861096846760964288682822350613183584848468262202542110077593675520427754090372858809038707975655774051742767046577386029481646350491342668915298291773607263309747948271448731728667210784230742889811391193250364820879348086177656666581961094262982430777504731036578006635219483321031886585549290164716247299766659569033398437213126734335716994472158644225954715259526726449577696253033710698854379235405429518285379568774134439500322091531415929146661468329550678928990713662557042751869257317423129295932126039851730181338194416916063884327074506767966127199146195702772334330615664893781036145399779944293311849348078517090142584375219071834268300927588868513492494167555555196397863557243546701903281049065721551804730076641760194480447887293616666406684380718458804155687260583492658423503876802439598801842496720472207380169927343773345290410672984275431913048173370024438083024515539520459479707585025340179039831332954414292142078502745941440517047175257963714805857795626641979378356875148832092376314033882231750856949726683818428257666316824083179192033929103180124256393246227176691456702993302485375787133433078399616323963921262996215651493440092561065776325408884719991690111427677885529911684409735298180262843072047383878826748343921316787580357580524103217682324079490436430066346471151185324415672825243713397086572375199819502381744513769088126493635410076587219155593608736217428286860426786762466469737785170031386933638110793285222078039605251060039494920921178791482160613643966245238757098905045092766136890979992042049711406945863288457910226265877975919456769755006785051962959792467844487132042661194879120822714600867438001757068063186109334835462711997961262869480260243529649603167437628742587788177673739094820173911426395714481765914196725605797158315189045492604155110777708495650579291990815000254147167972044655949100774222000265984241089984268537335175633129884124167924930206316348367452510400525910215543156391018334912485984359962050223361439910293417498759484140809157565680901319463518899862815689171079817634225096366883180521955530514717718886980507441317834032175998661734547327189899561819917959088814019643816289275986232414642632904630962856297836933250423078075042436845711397719175992347192134833252797691549106774863203365491589479278442015273518388638434139805664582866059265512006690793572067687030224957132187054648444241140519568720289456532509577535280668854586419901956561726376414766064388069690407164267258173873929452807036913440070397552613087421002083177035491661592570173200961873782423738265912673866162793389972655727722897125126558985004083287653162668803242564372011762552610969957699487840428192689116727638466811055985664935009100698798698875578502862134714462320275595445941017044819672753087775111015765315426213829377879569720672736649133307725890165385232974253541557061683842627592980356076099745246970464989445936516416881989901914128039931393629055617781885159010514357261579090483433179637617346419032132717326915537656544371646251872016143825417098706115134581875225796696638148698740330167452641052093411093234187316934746548833468004650013172233604339777650750889772358662831947073797259265927985494598781256611648572415474017224414163402224696325097940699268866058148833046878041867002928881660775321973256473165730776702639895677823110787106922336212528720814823585431670041860964011296029884711501135281258669321138947850387110800122871067363487621961992537073524505059490368155586073620158411427157565938970595863830187633552440678321278852629991301387853579767124823667857322932580719008295854882620409034923133688635692058463508531744597504945347850955876862580516103895991777513977872822709377712619886861685208106154711962646166114826104786006399861451758067635008448395325414764202523803020218134338486770409418363743801507294582874867589377191027121963885217825991580040797608126415277095451501645189913833687054242571512358589434179453700514227067058126004184421465402206187831925773440849493008310420587979573974235065389552747790017861276323390749210847713543448685141990138405614206333830358057634771779440773403386307832056594383718239790535732476174954897442734062248102336682822405809395660551428130384243907707217395139983892637777952350960791878827408339420587403163312351056880976953472634597513004674593538254207835560788419714270653101433962569918884840473629888577634923249315586866515709998539796277328962684406727812631239888367681642892427379252296555775420275606940703058241591078510631354751862814551582426778503936505291680863971575970981387293393547325675456206119733907724213539828201661944413742152025431137811641437602870445968010231019233360896771654674483688331585183404271339007548916575822479052380141841278354751845269606031236188984905694438585574291777816138990656101623920044492131458573057711064298939618186568640051422416962806332209335650396858820765394855223621238290973824637140229647289479713259774688394340860156907483007734404283000815308056405779801765264442873098595031728483736199269566470199831811039894407701364766260257591296153175318209220687243748164141928770354924569770708560964124350326340384439007875275645369111216784831572055808458283719908165247948724913514226013941566653779630069694633330297906357373736442657846601348870508899777746298231701777401230552400894663342110754390487321193188187861824736711943284046670852704523914466700836937955356143656467266354011666573024431767608919238467328356412740488642882127397605806511414863217593200501040614357886734443555295227875040701417029778840116469073494977666892690595755268724362328185394692163003716361273830079472113278966570795596140906921596409130639872856291222077313634167825369792691546830041392636266997810618954938928242597696055921941177124525031034778791330568683250821286249143835913690760767941736393005464921142983312837748157560199531966981666955643197072139032133104018309751058865961439616584147759698165379414740570228635040606461759197497438116406626434516726595766339514597460632907243259650822139161918869586451046697762709925483124932210056167138627467634959592661177699802294207352917651239815910158194396277940460740691719434213897613968629585199986032825642872291048926634738083882010936544903218380076187371584678143320852392760934656019616099247836920274068351414598747489572743667958870011162567590252384587506197616853355897406328270372848862443617740125576621455876135363573094790792720304297544798582966139446125633168300291298143814123740116368061590467715402980537152837244698122613778147462674482491503157778867400357975117311000575403409165303760577601506247854747913491406612093942489922102221523065623693490111075361238140722074341976448475655928871592475847983909215158240452615268759669753580896586751283891956253327739036227156967577163916148961298295243627389078882311103166887868581263137123585709506138011718164327289315093941347561405472042324717703706738905414842001277509117796434379901406477524726971657020776680029212646307065486491783502462773499931512760729646321615416744245174484544767347865934481098713005538630546582004375138938432078645256834185055665286695491293756767627835268574778850509175245588076496702222797970089732664815946588822924074550209453966143861782448211181964502601704209069717359599811539428030651384067256443114646503028178916744108125607446715105423724886921397488743961285473981632269782281952542429433833726621699844929785696332435481932658668904775100651998494211755122602777815472854774772165373326005288771349702136343004190225725058815714931331601844656074502374098190231045796374704027012714301383855223769764700703251484902740581762846683247987985868571045699827796363554382853327460608499102948565844686080529213432001737052001518014286580365598361009890967291340435741733489271220022928945172807241652146255976417192488540450936985693908616605922126083157816939404682244261530806949195172674712971441298826128699445832106255788737838151491169291023542101674611748300080383807502372945648260934646066778101139030108468063798130825104667776754481152893904653532763460213481824642981643929361432689416936342533669819946908973325520776230971361008497573429453830763478374311176086189302858403910616703486860126493613722271529090654868193253433622708868164032120365403720864244674352830716769256908433423217071803517548440474836962198198076863222432801398323792830151036098384426241342395669559361460787617922415460204188911200992280716938887447334561313839441521613915849387519799065308287036056913710826969556809689538888602638085519871739361535420804316102213449349904853394217345749632128165049387134742332979138584738634909836597696058929767565063573451722617411291514704405923303383471161664199210257114638026623934599717895981128846130448675998712027581163977031134082251772044332932005633896758863537299795139427783406763422883063593530098046641976453479090639287085689968006889136421429335734256915584928218532760184965497866086985170150892444597354904759973312516639450030286892290063995526191618930879026158603218149797405961177197337046775906231176853074273053738327129036230776006527024571512113436987887446928949463027153075004119894638879712407635551223204665074907999561243139227671616783739567931723049397492561580952501770145298776075663561139547252077132361690145157549051204188947709079795392626697003148874974634489616501933530226565312770930410884363128115919541532346183888834884464542032810790693930988342727859863102592517497232415875377538669507190276659022387224100183040306749798309072505919066718004283701488209614198979677843797079186074088991429364803682807266598258559346624111708561053125950118472335609605861282753023922704750237788607572004568117071091170139304934460580599560611132099162287512947635681215362050913526807701780786758953920982511214408316734525037530721278071704309942328599331660085725329998478931668324326835888337047489596486188712729240828488942888231496508036939529210254566615809687365148443399132246937668206347773206482960780762734201379821909810140675656508870202397400565591260904433412038119171721060189024512116063181371553492373715944477183504422237780222697873973394913566239440944753109437581276270071696317672893773818457423689121039010331748095497168742472246038265991858542113041417203062554983936665554976080295727029829608113644534226042977984483126916709956346828797771589448028822220768520559913328618192276709635366483714197642261173565892581283016276045694346022344707114138425799283819266976120796369005090186040462913150198741755266742375599963991598280065607159664212093442390327531142532769139348236038971844878502908514778579413137246242751587324404968862147711818070153637005350490466218284245224029080913762951478406374526121203139814051060834658127141149068928187651986904816343042119211568725166589122094937437483598690586944470597282838946065134169539143981829688477861396492552402554681729559185662209991015707510766192609809743143766374080239475404841999225478092736515180249993039989960278004867220135890754456907537015886209934026868420496152011596053978473455173012677142564897921451117111231070185980481985571751813384911872633989455572990963611456844582957290510787990973972604996680443966259855116069698694962564386590097286758482068812267045446015369226219930197428800828342118994889366136130342178030721823182919033855841849561048118619018811897740798955492106346867552203660084516417001343661150553812082994772264000730544883277427535287967597253313647656510043468746382136218498653399795005254482502108788872679967860910537198878032555849354787721000535005687631087757625899131054943976364236386723495650838113657082523363956003138988251949804050237512284091022989766713225033177740434424650518038321954647595002053900111056768395654356773876686780154184122066487532290332976252370050826260804805420677589053503723366126234128406145227171599332350163310904176643205300609353077945171208811465663804242787172893252611634858261597182620872454431036595365487139223444476474395537367479630797988502617321412572934917373943988584637165831111828970031165930690947778488395657977372364096424731399745576495836754856837750494232349723542659620291437308435153145281001240353800365099492624257134986274846631275952197148296211047453329819154695032069299730265925968833187456951560627728573736644906288424926238343301844548247462965898110227890667459027721648033311421820379549294171380806913920378494236089334100932429051538181223505008380989199087645461397569697778728400843762836282512711822311990140714367804974612519367628031646672278629273794402863265391580822863365941210502975980582885252581342247546124045479394738353783564978616564738517547340183165365949856733095452398354436835286741952493332748404660236167952461200705616435902565082201013658413137965360322047170652973647714653900333704403867790535364463103634214490736772747847022439798559153341638822010884037699287132610231900380031347614913417682985129030159365945984169165495149805102630606203614482589573627938505812180830752713559960318011445766891382006248025309891707214032910150983518079169263384213438245958543933572646689793858840287959518548802856317393199057498306210163340803773012378674636938672880448172834201966429705326961656757752769182549836450515124730347049726297544986930274732816186185944546603934889386770357750362582572542509368726278771459015495086557446284111829602838172164973371124474296020219655160228485618199640400683468944225546906701584329348270413671353666501426810437025155287087194125912184615961951291227950704835275540179939244930594038560286147393546145606879077092646985235249365168746093894991338647080866063069324130070588288890146579043989304572538973131358335504927722625201001804410311330475420207068207096275504016272579610954666017667348917876630268744156724629604704071728892823149268832084565389879132380944726008670176033825911922335037997629189887706941446673415469974627947469263892342478617707161067269312567193350488641920719842484168500479741515286744497177985344649620585017425629244018263508642546554755296509696419097991583506844994016279970384663123438313889500013563221741850549512395838064898860022115365665109838212877468613543303106643480979721974702190667608427441742372278329064870111456144113121379801693550399156308743198851895979838052156546121766081556967737371985729516547333518496387319256822008726122917256023494900971420142590888475062187879830887214508001838660997713734362039953162377250401148829299977419016888457033717220705641697427928010946318305865229910797011415474172637630651033718935407691039760877151870931984061809331358190401886577174014163706540877588465992767328321156763384421209556144154247408831826675375551265824757106142230569930049220197078748301819810478939145906139633121308264948595450455899515072849634547318055429672408431521457282216681243032663176379876323447868363827224507281430548257789715118956542515122094365435398235410005871645495885423110843942924704825322634527916400232471591258375962599331210060373352159932021677698869400231900028016438622267308347548443643677721069499891821476493347251333674620185213547348513167692004823289355963250600080400149063800505025368668818077511658905548176694316638116409103381008058169246254549118371271349293020854291627219686693872185702383478561882607270245747122494695958918909276204395788313542639146218421543970878604870862891185994649917953351413127945793542462865150556105853903784237919893564517046401224650398264292025619134454131605215443048884045490895590125620038943648570734086202939770201845887417811922777386607475223101345287430482592816333740187753771641181808040609975894480393777528246702612953132587768246019862987891642507601679548263699517638311091979798442031205208013184179731719807023884885237388464223999437071666074457884768861779496940167620777498978162298562909691203193486359153324393839346563178320268097471093445096150858736735496871745579033035742310385133786402702140319369108537186407533841736261920030555001335436555980057014959430222619133947076388346793218721256522263067762109046869209765842995972039645603589041443819155302280709063402652348312039112961769300363283219951881552233892240550799310846342890116717307172553129042598064089399874121625069563483754092893613602513249873782922728398261967139910101713382505662659120415251823145529458752483067366772670492702867268774023498101401214796880136087229553335051223372919707146399849933171738170821234791364444363871741936966441575932597777483992025994138889511204814724549830225805333063654000414048975192451291735209204604499420702059634608242837538926182736748142425678710506506656962912668416743136565758987455569094717491402727563876813565867165654848233230990494548046414054040756440433621645955659561928011565058859415246296114715640783432485273523836054121591076343776239019343250723992257068954814788508319034110429958339616510781448544251160608082823051948705826639010974464094976404515446461540490413018160915964135822956409731841728474876119869478088885374138720957918289789370813063026171882829710646031855070249607671456689613368783352858474893690540229566096017470831901053704886081070861234468421784597823148243474149421605106439238561573162665914069574787286113920957688941671960266402545934143699009741019300772367224835231230000833533084169549909174742992023473498879752015071184609174086805074136651649706172904244975974352029179912314479025846956097979217712402231933345828910906562343175144904870451381161058921954136753470915025631897911232987150335664775324235002261500834119106612217030422221692775253247012408545485487376476066770737764252706037935585689588639531222303209269618102263671926596110431587207311961384528878437335436258811491669326600671049663021229467946024368738029570348464171577044022506035411776706336338615360507331004191013541972672331486948896978542002743128350329081510859714789304579557172579219552971156181708424280840860498035638528745031770889535697626188581741151341236978533325543674066799833699180645403537941296490513915934831024836067109368573620286163399148973751035773595635088076961018413526202033973388805819823294219078080030636699684511181352561449685078566824612541413295992649319889260362868423584494777751359193851867483861992763278995185680590721097697468760975213635467743153365870278531277487518841884479285790965976676488270920102864196061306152299144490139310089682944288153253716488407364195357600876965792971246795866782220086756255459947092761865619996673357891129869178732094926538880265514276480879346518508325868246528448875947381859077615763881675443834461982629696634196866204413369050417072349288357757590052436741067807012659839049838541416434126708982232885257577312264088733770019253600853736109893811626335172509560340434251731535923138740035907255013127223374655153835757101069323856998733921646872569530842158404581365950705458624763585460404626152490387643322293806677546033573967413351424979292338176694429316164734740485253165240146830455231579147245959064286788279582426923704544008707039347015646445904780855203441577011401352250904526805299096549859695380602933069423559883763622619205321898535114542192536805828896766204306915143964916620101042757498482856934331899654483264095959828396175981545526031448513139748380829353953977980621985398726597253519970793078517250701517699823087626754097656217336326467636553200485077916875943054790834095972239769478122431376447430772766494629449357650855566492698129856332806185104193422528693108159247712174638779288653959453306715039949712455707659865736739692153569075608869543600556573932624934112739229019617704050830707960553382537757576564021436075767389977995605205509080386452585276295151743343731992606435872586021646231719137559354229184086402258248966745341001989152935547363909373815952654735947381538074785127562631354864267473367242502942068379300124659842638402335950097510295309711372735178700683548710109028005034631062372823571132108764681244917186668880354732053507672115318887553990921716193392870429222859734515188078476833558052188937962539151142120772944979016788668357405033773727785655170138845665003289596313140625911406690624128439339267411923651437416832317822348220200637375120302365114729588426440978348217901455027033511295030743490828008061245207185442526258394137530133817756500021739415374896705562340350926997196665344125064415434705919480350792649481314932792643740735520868125090698574267487289506286814221865897966123266504887818756558000234174850199171530200553701388911219567721152055426536593821531449294760691638315277808928242840964395035406880954742288823351336147502363555281364604133306817409945492081552131134795157889147896490606653226974569822970410644979451254573804780004574048220559579759504854514752116158539622845108535223122463481320870006674965726635167702975891431580040492931129734997760650119816224383332880735936332647750394412119946201284196075346396402139656078624331216466393538851301933892793190851478220609702521094990517537502666959970461988803902796200483975267735136341326839202775404314349059991387555839279339589565854779446237189610655057796354456524887751317253054999884233702960651514850239395130029452128961601427364263000398491905694002485312129540847174839239825639386818270369354329549828512855615904562973060571913567880577126016132627023021539533846267539921532550948567518753892459134751791538460315187188531261516059727835955297345311563885127471886781965507261060535277465628135964623915661182550328451849868056456065478879283036649837120447013121650176897436957205328227451467166993255146056178612718865176279515205730253867022625089669890614520694057907817866854404892311790952056832418721443727427671623700342289963261479975283691711513830140550532139157429426988532156411306512652044841518798669185705935219384621399484562585745638135837405045905043241830974787494675690658213933855555603197669200773241298212348800583855993642532549139186183976909580195735327168218607302456633354902159835441690286038599807220662939936694118826707578945430329511693887818583489583739351877042930173903896572483985487436685337868380021877377531899823729433713884413700092839997947403879376057138455918515676318826078440755843717074916800533126412906389748684562436922464917279660218675451517727050445643643670916087111281676494907086023064853806530894968828517222952765295845459266677227053692873118513472902247594589443905198965136044923223541792725634891154688542600582696160958032952115754456025285363971635860767146865880634208058058798974350888404707729645797605178897410603323395255610593218262851045586628879233338340632599368051861977930085756683231535729134431459528632728777667663018426846731754814200164223025639186051205171058778952723732910729638192419384962392526045387344017939265585106420889176517632097728451786344989227634444624751399110610227642519937401349248882105911960172988568672616581612945162339199346665706475823008408815674495989847293513843161355296981439338061619516886473546422744589216875415709049290826259517022963275280228368163943681385588235016087944621839482952977847582336842881077983783900113012446715511408549133630536005610182364829202376980252529334606712331878319885895664709637742646894469759140542660127500543915665273078801882748647887886626897453724511209330036330439399522268411402761063045412773475637578347687795544382926514279195891675349126784949577405543061354368826364682372354225295914235457601575609230927358461079547170181040402717710024251574178943188180047518022599014592686589758321657707209191011636713196027645944792839469560374083078361593410108216564867770491243925429357530486961878862092851227174771986783853285844152251451135066135474867814756204110031557511753162160709778460673278626821805185642414709587861660688048438755316416453766532690396264761716293007060874213012891207504631703988504286733765829857561011077169399604485502991862521811231113682507091490830257002302825582001458625456727326404836383340616363746862387601094178780848883098312134590796106338792024699640038588906028046048112310035955520361731877028997286894014696271531967215590426171062003521194494812023227480605871068350585125918215850575158180744461121410485071625940719731446695983819895610329785036546277364284569457484750967288288321491169142898018446122045359529937592340814401172435394053270663742021328734217278499657208707625566611087971472524835900729162894595519220967238368671130088182722424520522468644996067519039848401671697293119297594138985778986910940583177469678056641719738244686777302219328276693037232466330712291282594439577366664422050747636398038612947343407226378216930168282247801541980177969893293735155214702162652126912867800826160477850993036701414548202436996497805689482035505023263794660125950472707627045718586203733565699857538012808342429833644627946170713516661807091598056415237511309613661487861850725857845790118919628203962939226748820490233610074921734526949020290793599860210842323064146851367566046674629725806974779823244553831799255330438324003363401121818020192550864707093028599620350736984015665119261237030329737740701935696848325301788500710349886415078434279695646373553616364502755879590829349878507209798202507482599704063904040428095127812186992881080144845915117706657009838523793350026689969132301369304534055979160634713237690430632276437255900088697655683336236070461766394281683540969615351587809935883595873289716066594979089595723346191353860147444680281562837527603976443309154683762223452560134648308580695458606373702822775785318859985484696115256101225797397649179345035051046628438021160395086886631139448976762644026921965612269789137514648637076737139913085851967264900634719815417662267910549291481551156622627503582939415166061493449122953423306287733070992211143781081550061036347847823164225035577105541867894521730893053428287639122204057837202025534548783291866765347707547220661113373122298820790560789785358151422858355034232967309576434896681136821257627037402169113872899594138214075269356808574583108316603765388417251014238696948478446189088541584426092009604818897934074146300205339466949910070364993455196898699823496304760976445749022307877097457406351141084791324670292857801448370000756348492936588084775224818902024766465430179174585567936950264316811531001816017549680597350422248694602514863467575056280207388888227927463857304634815064255601224033583165003382318072441214232790076190664245293512325221453137698267252996565357835186519535759934859033743218322891411698866447489074630814486613788235894486521263746338564170484186134713394604886304569683799289382880474423385947228875724975948000057697074071783501380681910594867664414294818990527783080726887702852204036221540120468929805690884630352755453486682021447370335902089835357254285930013730354370854956078578023183154587883027341498974493380621907371779017245136738311329203402549547636823047567323781361449874732815995331397638512699053782320137800689500772689946242353735766974977510367413971975896282909158930570164631109909786965838913749113375587682652267476209774110265219565160926441093733863597899370772338049364627669067683910968857499791974387422692549531821925308954323109930192584976280514072672197665452713220566711187816071872608251463316846161396968039657694280443573661190571996437948882244123298523451616207694184652622251605472563973708642526541279546689652370902433423469518608480175832076011077940032559857655072589042405152550048578414843921356223575268827470652129039349907970697704119016803511519390656936111760801341909482990187275919226027279400489040182965756126310930927016496285021597472369040700271953267217361692855049133717700149600671407167992566565160473639939388582412427593675826886532382142877522893295332362465034617287687050146160895999060820912047220969708839416508390525729480889707004566749954025531490083328464028773775281419128274854190191963702484013813941770701563404899587212327886599538431773196204523392389961600698225601567285009339513757122494453273570522514321640450953652105865047667375450461846474260767427250893882017467756238712486154466930536267328975892796598346576139846056203940616726601278397379226704288994518998875722791152612450544434592262398602384613803144599325558011114052156264264459829638002685673471387296313903430875451590631785474308008850958366761626932014711133595114255373611794297917618440569438861543413047200415397554380398685755204997750199923716832516235507604344721974911326215424656067204800050946017481253081931329221023048205694945110766193950880605044086928178800000710253612556579824520240929962429130528442917395990634520984636889482229750821691539501606834878698158197735704879260241006358105672145788416656295930319285101670696538630922926224017030449727802730073733534610516369231324786843617800282393247573013532601593468349916218413969957148663701089817964796210484699478208555346056280100377535251014252760171005725390779526812081836502713648989029173153473785058942720721738217770900407833581501865590960687603627036531402543054597706646447299111387383145153819670740049663670871190888147186296854016739276868724682294885131224577410170425400582370821934083457856415203535995364385430025683627443663949258141986112414218729455144925642560141008793212461380113668341958829823021683241222544980118325273322990893669642116317357992238198182233649246523003564773875264372125133502315215272501650525111337213881468614454440845466640702452443942573629502552183864996405939894498490374672672234085414536070429041809074631412135494032860470511637940404575449883872194433839761059023899763494620425353042606640306860939375388508458648753673434321006339047984830330631684743257340177623017223378453208686448564018672865887344823482554481716541361387308195690223608532049063396777650048516931118344603950272419530992378301238523035633559725717927455526938102303033779865387350408826330374402586783257819296674070258701277386335902031627992109511978774280800745893334055360871998350290856170216679843530506437687686501163651687343029837819662016090703634024407964955474659252578022342110711029948086621172355252562866753939749939758188923122419853424937232728897112659343844160027268663938823333838141350449601773892083522730560082216328924525412011701993819287010138876030344183182567491618300283056535106688135631824622956558255329883936105304166612218219872783881179743159650031215899618408708984096806904289396795231114487622670348721879422705405314662856833674597289411500176215220863280580773056426811250672788041653424023948186724472557237364927520342861643332144457674231087896405604615907643155561964490618061677937952887828560335209550709581036809373404056742895129885016859291118846156503095399404074797249453417594355507125932606403518002388796399302529353537983715262548885468406929348542627410603648782891592178875468517848601669026339097953898372950635688585082837779233567687932224078188805624868613816142585152749963256566058782187193210442914804101919275465808600445227275435708455835069940001316853228910114238677993930387523779254926427950165361502043348550127788309511370440094529305613947839457341145978519302111654494163204608872662807085906387394294258406968303157002896397600414074815778696648165213077527441122667965884080953640560318465629822273466118823571053723488801817989640599087092880242016256005769695556274380981926415904562748001973523210814831332830897675680401286474571268331429821324415459550675355360503618428037924612698783565873417004329633857411435270475127765750653445781155655672979782934971601697674675180701759562395898701291359133362067024916818028397399718238394590116695122601992141798201882202641910608500863007082526304117610012886089236886771467601183007523395456570963297445391760957292990995658766714047059728211878273033359771516697583193865691796208423642956108133197431543816885822985635705006141698104859963149192513366251965155871042136689047441401902382628139915289616033257908311448188037842673704538288274101805544471025447551448904449790727843823601596597616563602384163754888716972890382237745047102718234420002077042469862486205714772340623997630587742980362935198366314162889972063853023815880761349797359440278995999164636878066982957588034054802704234332695729096588806846445800763923644384875196320639642942287243157752098631184414612047009255056939661819227024811270852562321087978920219983207533480560047778403874446408785866954727210291270790504275977500422957222935778934902420232150697910415955035812961001889089445646495170358324396503811556520938649348563224283742832600581320421237672690778526228357044933669725128420102485118868740358380076916319782272296181973627334116970855455383630030692135954542814640851890410255112680776299708560195838092313681418812476936313255292582878729270756258255740467162842519106013467450195554181970103072039273876128227218519883269329204649165575559506625601309232847568099833539131807041720164966240812497501309304135865218002228473735614450624827890134408957836247143550615347147891740380767618768740861335832093345535687183065688526903594478104149284033114261705505393899023833512736769282769863793907814575932206913251459071063871672590036143417821358951874691034852942796834522729565722358933736433149597619854543850664717406146779682841543384325143084453693294342046879583282885145267620230192806649205775913591668622805695583267172444918689482704138688498885748967282111538983263784723384987723326752893937315881737419589431733539387894400577394091763242569153094742593731093193056734922083419650751732903409106454329560681238870598980552969160904788819094660820923551156784350900367406300246711725080275161098663967351290569726354717683570939350125490071223318760671316333291776519314819527830484192977908562872081532294278565734052461470025206445453812681353182932103530791165037745556057545052815626134600922179259069280835829360377393937906774659719493805525738283542513297971651095527748127067693219791179688996483985329745317649271289698167783934009592304134272282522935920886429605161336893336668323929175118126413896445484599054599985286936255042692275332040074986799442731316640914143664485774883254490812519642821228904929818846101056066122248635055854355397936830184769694981050755048306684023796615455235393526028501449962661350612307599879935919033976773701844707244967044438278350688813493566436479979526353630454968925442363821441208301573558740092251237381700803269247488547022872219147215244160226196313019638504073611943753402864494628462060738369807093277891979592436696780562740486029927223487979758849348845367035261305975373049128538014106993295597580350369509855463978669550443812020161868526777510777295412320837159206454151058833208119478890165782798332703712181644680465014610739039441598444954827625853044217752392086122513058969055865518248924843518859006985713000226435551522614901539660019859058422260151159963460877031937795656758752864166512564014780718213754235666432632093960058662812549924770031267473157423693735812667451654175829962322587150497934181541391389550197015670547298644994305843439540550442292677536072441153253053849493268519729190828001824402796958200784169988010383032209592543630730506160252435640868674207077185521894594483157594881555688091509633622390387306327291571799903786120495008451543151452596098286714961739986252408509508383162420361241497762355912855933817729062358421180412468876855002063326890350097218119044397891753859794352127802987379652296817410038860811982572095221989000020254635018366379609475565168286168623105310088708590836641884680005495504278816105907112362079797666035250679558416475097335382013364448272397018144241872965171683600109142838995766103549311219833006529928891209688806331015666188176531836138496534863199717971427681517655143380360565370482267298860170572308630819938282057090758891064870048687039251259109233116327701175061327334199943481547175688997315911230131638126886991395364699561338864685249813612161275832336533860820550670267599659917015038076030537326929513971554375907680571588115062559367041657892510345771295914941553286745344322218174278447640421400890205606358636145723329219378756815753892165915458695015925882030386242118561257746036286870851097211944747893688105869231069252654276315598780644029041846894039285010576728879152254811315098123600196245019137710523867729247912057116303860224988333333242656449466983072757479053504232516054644950500814282935642786990157128980512970668906422728433057662364377229445517738658812438751045833495946965741570936467188159393009910743135348779777812491939796135354725952468153334043377785620419629366565328892380959946956678514918457782429293233653632271168783924022368231465173457614097116556278462688130960355951378325315733479751625465350465428309390463541355998899305624138472010619192509665046081698031145375092291518987793354608441029227863933080455151880280551299501201732672241060414716463159929143126180150797206016417825380912983128255652273227903345978863694625625594936662837542927210915154783199767417610523584410866902361517872525812312960454326176573437730052598109598282183903195252642197786559118541816901697787568549398218860975889705515699764695354646504301731201919516730626553436570887364275354205614208820268285454251066464024107995735845294096040064759980946414748368749999335088457061470432482778303784532240063030064027420790484207131087081335484284976533826112818721693060912167311081975513647455437810369081674421389203173185165567380091708914342840186551316134683271498446890770377514395945077238465321156458185286080106296991609878822210265762853452375167814870351189682914594524256120469068489717685924871762459916853068074406433416741645488374295255733159149423110835376614883890716864197815971466775796503723629917779117473112080218310292679498292395360183089003643995074390385683089193231546994564496411681668481664553163537656026044416155907345056256726481434723348126453734499532607686876395510778206052446504054299605747195578266899336949811076312462555471909749450958724005358967071991147895623427822692079352968747941245219548519676264243237342670105505268109682088715677782682496337126708438158847172461804760056932870823027821433776399151572527861709902810168287132093919566850260708488514697413211081655673914407135403568938892041650227346720699659755163212770893396086089595836390271899432631819131638018948123470295833742680597978113727718311113374702187934089419808661154403671245602494816496111040654344683873311966235557043949923587651761312727817311195730096841827055731638449764120107021564081588874839534734525053990244041076368998797253647292977386780767683653514083666443247636515320024244155150732235776957950126398058119946558191036871194008947337059182105936143022951225245791891163845265596538739126552117215105266178234040461374702361978571656694094224621548228974065424273941886884999919243149344381860722126974685014465640046475505319582861522375475242037055038490252473679710421981933308434892611017830948038357342672276390273593867822747881128639918955916304227352921996771574980659704059798715614076738640328502551263694524484438741713534530854199730371059393777885102633252169152999819606800940396638098065449306262872160908863370554484012742119514040915931105965116790722704498800372791232827718389561826103050891137897013714980872884157020154782827193481419827435889800879612210952691044267102541477581466426053474556808548753874079082733757682721171070801797445090960775516286091900994921930365533542085847090298423860009412068893697967063935620768918683096138518132059890627725252924819037112508054878470343319005897002848309959186057283931733856221425945134376696263687695648621037671181059128557990198586893567909772176022939140267569549841552656773406626217206948023157741974446211570117879957023331097112971702857778655029707851822618490398426612052967603481630831610671999893712855176793950841396567564214995347503728737389573231275648569238667912920814622868035846546413360276148819124376507721892078543036748269561774301489283737661586245763164765355414498137375415243973063747087663138278041873995047454927583657932729416119579077913514051629365039162073692690235159050708089862424381078738905762617484651745132535005833015694596824801318725190278148418363076863294294729009557397696164706766865591258701450915755672467805251611341831439612129596906053694909490165155184612532165575304454541626747137352154223290271315445668410883806539137496658324127813121597040977615785644408842555392016817431598203372470041474438704896514290875573681928179209324106124800171749480399752196996489137983168021205545699293139531169392103131679501181610978364882511676311092611681314081828915576417129751770462243105651006729945435421092409153910732808596397202916054934492553251467878983287420288481501341047854003013671478420698670730814474225668800106702163670111584825027224149963355301793565117932469280133215952747459416294256994797571153199338941101255982188505279708817558072484004485028380512408526757793865214553160383160728660354826498223824048533407809947368286813501747676918491764221370631837550545476060333792592130986903242216015564947983693243825247693172107828899330432413488295378256154707619126964616757411035856761772891073023034648261504541307261145108918891878347616421133636210685322730306826128857542142383263937188854664980648282358342995523569266518608823891810237114321708049752030990147720223585514893952978705837939326135905544019185482913821975968159443534272595132367380711341961942012080359410782039927043229972422519521911789598586148671490153059663704929055582749561256252648858481061121563351376233365777322749837659918808705555628795321950824658686973792679088587818589824654449509979921185467872250690576429612680587050953948142499328411048503847006073191890507970638506465481438592398493364237562091571496241869971284119856207747779305119093676147031653245922389850288691270240479295509010740567516159205448310396123741712070021535330706274131823524620421253989819965095837024869745012128817735167143862435383629777893404831181475037493355370675056985370064030080109993552685751831498541601550966640243949821458477267391899872684439254580793368453033135655490972948355472842418366082010959234871490217874244757803033317296818478347400106373570377281465043607486225466405712862866991258915770608497824374461076754127090025191244550364071743273039628359231728041309609587699970959822924024214890321600541347502051424971067271658613902592576061289734962061774839096566785382810641095790138267200692858812094772072862560155803902308112532141734354649146494657325065654806342001309461058504714920551552268286696661914308826403616115083348815150323295662403179664893723601613374661610644242598807296944862646360433616830560866828150451563804487436105317901970423245743425236600500837724008715562903133735443762006341457738421025878510514288202071027335173959206242964641908677370554954245183968859943003970293881259106021163758272996088486376704534005288498353081714934613169279632196846660567846696302381861722453598573968390086430217909745913653752019699950869731563996954902621001157207234763927431813263440631407369077754602179638558058920670909438840767948702355803295108029241274686098543302118526909792939752411805082085369134510782842897521246445853115278406016449658860276075141297402733683085379979446903759830723877558283976127627146287622823119923948967719674354461284447977038149720256869808962050438580070948559259027578746034923343205105336671270156327058642245721236213766124184186166004601267943119870963042461558115319867696097977452850147517186721628250563619295729715961099792481567905515628797111409791574249926848896179787877877161590506307497938990662488104692067655161100960509395209027178982687882242747836695435629559273003589738294919660475847363244411759300653645910083510735973034147237017761653052830608331368480094772189080036440526368866598950528309232153899693182090130395794951895302968231422834677697265320324952613843912694321306255663967840550295991691184351060179583504967142338866970802108032451226979012349937774857137069089532314636595349169290450537849470813868256479193802664880048250953134508802842475678160039232519345293044288834763062085583297592778089752124908469020470043255845719034673939696551074575313019173242940610202625380402286701317673003157795513879094698267349627178617852453519561865889143947540319597744431761072326920550924335763096559873983053507911647181270983489088316674424116606225227162907872881829312195086814178887567649250071848777027765617871225739807045273667042470454104518043915429397588779501275593816994356495588051542512431626635404796354063871981586294926556597200673800535256959977447423569816729222821087099715510840829595557306647981702579864807755399180299326837584663596302155781416673791303010838335371334511721567451117709081324722929060789481652083696329828479390302553329273511121531323846652440998269013609313618870563021283336013763719982428603875968414633955934580271194296280990631780969548664280037410098426741773085638684796838591974666229535943001089699390921234925123543245319225611784073712551862641890324706156628025674016146646305042128381796045336482801672379105428271554612532293751610810416837680859841587599280274700780851701564770546693169231001288916446315355861789841919904465970595026849794202534325684847198267108444679366691548823634696984517770903671928410965876777736486787059435030009693794888286793514443183416958688745101036711932971367927862457034149906013069412308553895029804661091905317896161114533651047743886314995433097895144152605501054591299366791608785534154106788381790065904652861123642085963975494865631349930092343315164487716267733534758052670556373185699065754454845589560742609056392637550700022073579096706003606231605695258808236818219890622780799959268997026192807571955335097541608699244713866025740755969754706710564848256584036778696501044959239369686181971992890341497245837368806309659040126138524599051758789214494531548530956535899699097995754059209661313755191791326227546149259182868678024560901911756943199246176583643254007888395054362563282335176168787904951597440620549498924080934275018655469847524289298793671203590190982490209332525426060221968265311817188455004663396020285776851964622257304903273723237510315960166227392553906184891658582751309423901955215794579763211130650607409188488319881641710490663027324233378485864211009017554002540137489214784022894950604120714714704130503241560268490580899477585287533849035131688157345217862361815491656952688890975320528166702154080408837729479925629343479356456759852507831786736414976997285323652442718059504287859349567073625902161109248475567300136095305827958701819920123889377996345724238923498642052425396995959833664978768285160617080954458350378927962284811192110733418716424462631379692043449360188292607026159172661058845882316714406313888649853993898436393912903090760427488839417175937098945346200716248522251829061235059210181815009566415876407935363687993626798190175063825199409056634932669190179047486777168573978434942712237663690688862250134833452777759025834188247945888140963819292260217882349992996098998846068198865806934619111462064184229386441476194620948067819917138610361256540686142780126320619603062107688566511928414144977716678640978711963438963875159598539259885880779582451917032190277474838029817625815534280522251242040063486283931445053917985958680012320233542268066738797668483698544491076620278943766998453485977704379895698366196778535939575750430864995381896631649599626830077718017219975459240491872208081018962330015032293038517374325913694289643935870348845849047621103806724783262234043294001745952311184182867845665144088122426824383039955219670327005428315740784749523188738693591228828375417207684271794085818628784625147928785929437494477522213987502494807242643974549381743829610698210385106347075120606124023023889397428621099761662114435804605107490039244041829668827557818329963087309912620483516357323714215631121607108461112343478638809990866408813370763950459777295074990645511042751492113704202499690965225998126010193444127267833206804050096125142660694778711088983423803186786566500219064958386265173861150438955163892182523962190692091422339894640794943568155958948185836487472106054726825201522298330408670434435601586265863455245575627584796337953804820853217317896728520620740751372323357142526249741895939964233102451187476572039753273740121777377200418022797220992300240508805410658305431699668474230733090925006681328516090512539838747132905286574801185518784276932406197784887124625582615913639382053810329065093119698249429672907459793570857399688744748554189394450247218587334513725405506552045769594371381557841186677259963892914327803267268074874946163187479450289777092016859708709215950623590943919932360229065404788860143098229243083094951023628857674493514112699491454047383609644435601582257241861202817269893250075841287065388998502101354054016146403470911045451816145387771183828641069002186500915490154554060823028816973345353626797503210050187690081187649395226571086660013410119807545632240721882092992050592377079345065466269568361320599500892051112330185514546200418240421350481795820535622903534561805753302600193612837354434847244000983132903423976468552174559032136886054027853439990340649758931713842694998994352234768345107506028388269430757962667253122248419975871299688687914952325906599011361917980360874604958440915483729079112844801215149329555420496475090625822183350599240861590295534481631058125609843335406793343565218502656661671161653114995304452490511252752692361339533132225981237817378066751005635835761047366754074654726905400457983603786174919293578107599922190905772866997276364115526865247499984897677792006936447401932131536542148494081108157219225232344505404554560767915511843650575591087378631528555258368467633845739133373974039498288075593812635748095355777037448459723802860018932143341868467993300316980990094595670457606079720655026175081333699959212866579003169941939081734408730088462727236365168900546875000403234416403478933203053237483844089517463873011168173556044018698977081101421276282826396043377919587000123991915260271830376959172566263811349979693437440809131888162606059727351682544711504580323993568915009383167088209842775922849046667661468893155854462173471939485489853321991578490308394837533650168865394336257147150320535603500802664850715969615386794415426384027541180701125551175491613434494253730396864510283348667797068184025549586401987227980856619237568544158005680438423921510426053366888716601691170685626614324351470361170803955644102356524823186275410068008010454356939238477610272743167230305208430395270381413013184278934083879339522586602551189507975621593708177397860931256122087831947062522907281309117166602501833232125580430522110501438054816839092937024208072172605773158779172878770534882920603123288026669829272200153875753945756115391874355793310416648212052353302322776900782955310549168061693953931902626961701536196277636511151865528098850063205126658178841055353718735637572961831514242623966073296539626444320167780900078838706118274618853114972867418606353314450510429328727558483298842088771941722814719574173486394079844883431794523054857824099551646596384118480833832348393262270856364878596893564657416878394892744172094186271950032497626069263950478434058322631214441745142415738129318771190329464290256440389575615035159197464820696844321837607647232910554516651755966315072569085258504595019565469425594587381432214263235396295914960934489528476713815010966141786139160596431905317980966065502331503738252863442560727148968290754370939758182276667908727971737012340743685537035876536860822675611854314124301849634398565157655479715180650128173620152461926344887957109286808871707426386914922864215497668743318629621536007562978099083029045962087715929270282573641266146943436244167061535210580800941487471074133815613930527047532943828667089674800311362577292750663429683769228998187681453964106835016833186081143753435649039249665331669650746734771982688127804359303183893064057394324500796968765040615113772403548376446481542128826072015789446930091282730700759451757173232218998298084238993258494408641235210584970503690186531541377184316329990241655788716426698475219155198594557067678358337951288882997505586660657143975105292155327035095887126265065560100893475164223591685490190857567068820319229165462906430471067511541064478618072226199460562941854619612464653154172356165559595961870660482811983687474694725807300250766420494922801755453896013111169868485024804151012603940524700699822614943755412631206267606818653842805420718420940071794960684654611887045926078602500593110232097543849276177080204742733956775829713769497339606762625623586691936871475735119082043166549921208833454530251997366255554111479002905707588571657872720096642369854742199916078811266164223577005280368137060217418497293545086861584683042909080439906557735334689020759113874333497097461705016535272943584733304848783351342222368335955678869001143513225149440248867786269520060442938258718873925311500531197824174606840821159279501185711577438866671413943682019558210763226937072168445346173651374707613926101537588177125028979195712139036982126992502994099264706799754711264755380803187174481291880339172716396649409354706473864969936706202062094849288679352964577456273257843371925403188740686589215495068089926805183111062545227319218921963060624285562419352623720711951314183504538741419818581096466392651129494229513195072261816376693222501375085187433148768788174754807875904122352318286179555947325374645826410629955884631689527902769336796316996452844573786599177481128201016324155782156238762283666327464969834839142738399264877899596523203728905122569502957963470166966520583476118477208311029793987520824865248460769707313973901797205071171249338805861780962884396421937510235183129588905176627099133308137387614693734178333128011715432099651629139616286493005190550466245136746105186444909850512410221749198920509235646860090790570801046232860958794722590577671250183389913070449689592566348523594227360149779758102559943288396790771530546842897641468159223823901435359210566559176414116605721386950598909326023978828938260115985529872934886449256264751363372200915085206913495946665314621843687657853960365790970985429826485308273089053623553767914150894164364810738270229123249399053709722249371219951846188620397029467027262025516175152303128157564326135759559291525670060894063829059817650519223296921336272906361108872324817746241469800483898168630296655148665090369279424330336139380904878397632268796974790118470741840484425036946706313753445218178948630014071470835919266804914760026055982373371199665550096623282598653560260098204069905039213008795130192742344450038850523937951843252599136010130987806545938639339845530499994597689124158888479277978534677231011197734369020791092202829309206320328437546922189367247670313189528397272547160235502987833468254508396686172388323510728505119025394469925105227782033040158836404386179689861247646723661900703769928200105826213402792796258947587563835147802417521189566941209269409311603193887022093659908895399911902120157509016167024674458643779391657589832693776671973435836471734956873288979446907123495365244157629305017075717406920228983543163747769581270163908313205317318016158076788688377356908025247774282600545046334798831210402262048546993167633395316288599376325010347926000270643214486244768871524876892055164406053040297486703223519570581868171591178311257899202720749130672351076849180285984196879232037849165715003138868632777562943148154528033451062617673573428330952749187356111030744097064152256116748675369983550246257388403230827352097012209327639822521022316509970190849691446803918274162513681565757548906075505901868012702921176469231280684916006655110103350917915632084880939147971895129752526167984024937410106229025216785085405954616793688865535861818758513916720321322809517557235805830380303578908968436441652819612596994853755407879720687717859676522634162199677204662066556610492946820738664734528672873002696378806057265733642013722971485510698367466188425679174146293777072236609039607301366116686915429897450918882196001944231778079051928114936957656446725990457508081094174810140921841100886787274084736410978021881466711594244459400050347407549980057364368239375120607596646199521617746620482683524874719514513420590691849800811617315678637334028988010912009064998807215054516513272754786024558939538728949395186989247430977267214986964860212082664314133605845124744834898144942787999385090182942518003596963176649144688413321215979323035939449365865432436457473493148863231602636013193769759040517987270645052592225523216314986526574844403178203733368513359004547804583821404338703287806627092111593799765197366944767595843333947235744458812382744022348009079446787631699780914617988761875616110911213667608735701405799736885840480235907484908038840370370899831828590424595561715831897103132801401709609760963390484323038288122329715615268561829471223633541044446901707555191041873727409687026757808001547951293750859699595637594784864277077847456741763959939002672295180079290965542359104793411847922497767319633706575813625261611921956292618338150522957637255961843905719889233774164710002849727925686952500931636733053302353071968340017472164061395915046044386431042709838190470173300762381078308263131502024500298562205609894240973625229636014927006330417915463069341567415738141143333194332909131913774785408573873524820978522854942109401317910060575183895262991166219277314689824419098087542316116053959661283634778276143155147921817660113575345243440113104570171996227424104878408860283543577264576739638392848179672004723311076130632932282867377456235137554337574652092665897471821789356890763195467271698478852481445394754669223740159480092239524790734935560551701903444381069535693740430114443130940248944516614169023121647459892074382304032016789019670030850959919629982319806509104973931429245194929487156720826129514972723485464165959777162644024146118168642838810010596520822182728612681838994247726690982089268529882546807923746372730784207970526110905333813563039091399839023267580623082415988484871119815915994160603721914262708382407964366671961656264211591582040127535902988614464290218117104415725445066640859250790832665983954267030902212748298080090993187098767487524230982885471674798850502366296826972937313020614557342609330454957010755489777225203990063071938995558610144870867589647966452910357147889132054429021050044376189072976195667812233254802662481936457024696489388449488061029417355478563557154415805964822535608339467213103312408395079321813864538619144325495418893860783395467138357410234653223344452141151738499819740523329271476848348042474392831535834935947024065610034664982492972262280311968169418807647778486015358044512488024192565856460129539116055549074135863024134241155871981532395307141627203234418918397042596471426018061574990243949080534975478341306846540856188443630111018975823693817469022344700572233004595583897633495978783101831342872674035630320933590169465522843359637504938966455902543427561599856240989321245748184217648103703133486272258363043533893831939489962587550477314467437749402223955750586736143589199819156663578474563005907302811226619290254772994153401105792597711879395340239244152927134223132795195080111910981059127944996051298558453591230080919211153975234969694984741472760858237546901870441479943700907819801431786421762710414007841150316949537579012401689541014305271686022306412524668068446928170000691890257367135047362994018143945124144331428416902566060283799410769213508045969394853152167448175341023450592696180749684701390960504914585405127080349662030055308508298424516496390051518894901882746650017819636096897947823990192212160741886286457789772595064856645044305777598840687169680681283196887444535227051828815388790947503507329378098132427687503263069931720124812981701167899578319114206782782762260700442668230717401250774790369550045135529197063859846573796938026705318102676942077384435590515098474199555772928621748496362580174485314474829840805680133683729805586485297339816379055599395755872374593369730332806422452285358684672464408337153868280175436288757541869838923176901195932085360513421387215145068969607956772033519614302004314459018513560648388794493767267524799619137221938999915851946288112079212206031038069337959068123601454654472773249818167108078675711288756371757007245991263524412384335774619102960234681486311255042391112853154844537567432034117571040107832002245392262538592167091688924948706084967526207699239533833293530637926404831655908494317912165834757104868072317964782647776778879288403720927798962501176203511900263829652997693703667390819562830579950758610895538175844250521000192649858399985829670088965838274304549078473142415671887119060155957245832916083425761484040400047593579897709771138814350753297469141497601722351032051063389994342480780163002492765420598593213898506288962167443741017052801134044366621383595814329726734586729490358903726490416914110956159366954404972445002873827449451558760783413362919614266571085378961155571002261921431934930896228470853555520697167012063467092137857973397822389280416876940027845611963276103112916388839268145893648362704794293692726116545738686052303303166368294833530196433264310099143319875021925538317403878358352112649012062914570555280365348849844483319951325868124142397580915357544326896110452247592646087864750297889740747733312888669511928568873217561836008973054066902777125093600934144218006222762218135941364316693626937247304007552119791391432902972806547363084993886328469762764813634641538107578510034420515800877462635666251215738235367553689112432986735271203454573960286147184335453859316369042045823664225594160184191518266677167186546340102942115522872742144565836156242574551896615273593843569126878263454689591223336690206611514725175676319638045047282223648440082838052141218045498698536763478903140548473699488622139327352044985241869814095888019943591476534856193964420599327992170369203628105199064282835890756148221087532912075797857626042242733080157037007211853282747350944348559180698560956248247548019126439312249502649701115311017961963255246191162671362166154749570995523442633531051283501893932731052177720555856187084523461814321134488771664720160494384524113406332035238305130618429206557042566627280030503264602126795593574804099958989645060141905525925940120046742721943125654363971409620695204776110181933569410001832836698319849081175345069771485700315038744048194388031602268064164545512492291382761130978073624950580233044531539920278932853041054607572275772062535137316497242852715560369420736227920668097094749000779189288117709664081507788067317884331419767353098992786383659943492652548473844003091567535767310785340931960103123069462658865101350708916634568661589199131881404487970747708032842466374811431372906990771753874707435253690984354139947708533396109123417292446774400698165058352883816977923927157938909546945771951520473624554063698021876349177423256869294159851502153456115275828421901448783136823594896585444532532847373774185604374117133678069741546230566161688786148276509134146647380669424137987564320218320251282992061974418530597614438198517028057158097222741253610476905469630165761358287960266356227232448181341287482321100538358955828620717185787501841952273365523205872886362286987804947019591883336922038458290054944192114924122185554502154739118151771078630070962492591295537068656829785828262163293818768893296438550643924669072359379206610243981906884320050158167099495760579990956651355675882322286176294451011137305877647207958839926817017513142719125195902810587230561962285205177913780954066322737604239993529471801894095723842703055870809577165682952768291541121161549861028365084584691066523635404850366817722570028106258395475024775035285889189315978997164352229593478925949478603007395639580752365446459456327389347872989101327431640460978693800228120260366869513770670916070963660380013421619288054180399327916124818206937257707829619070967306040248249546816422151844570257474092280929475187616883600269234089433045998767117435254472471920177986347999595523984472242835778081189325278654302046756327529861948988773952307742024903392760992384409015432111217237632728085490882297146369700921519912787996326892852163931597282810855030421605549576494136059104641789501547561280456396573099727434189609610640423211488553617645249682881252599268950609662043821691461070530067541969672097400654248428869768675158865754530936399080100623884519168938271311071949090410324174427078343812550923987438092449198375312484653631163374834047357722641194408934640868312962703183080542737190599266708906732242858502759009195744805651425198894577614020887116643119655096833277974402133905586374448568338791522316053622759065622934603924179750226900700588235217473382563050964874844009111791413078941633436135519350188105254650558250746630341267597999709816883639190143747059594001175728351597290696144754071984282682734113178382717192246070959065699924321609119105561658574606286342592297764263918496825078467171435582030684642092077416772132789473387772793480973760826388684358326969986918062481583522485553982516960664293533807831727134811806306261168110137542440704921145366780532113195158462375413929731103041145789977046214974723449603475597184073642991649981326415099611016242768956154726776989875986144547808741411407036320381898329825315045503540603764018011261900430741230561879778163634942734620541873072615906161253227918910707638606410454570881556454790353951436691821403042579543777500865832945967774650330219363293447405075347489853241161375011168830163739882194427031263768621883093508085586632872336943144780619599590424965410563763348667999767488532693538594364827737897301900713930363897075693422781344894380959003837947944732052320733894595189115095357362749238317675496113054384136509694996813714708708375249487490390072242320632679384658004407087687383303587426106717341304500520571398503471980670892590245367797885210401261462155560993056709226534358999652499236832805877348580944227292640278473389375630940357953868593818882056480545386714364878972412149873687058264771435206661404464444286412818302329278822101884152317717425808045239869813170735995509575990251312715183562180435612976938449997031091394818808663645432451508411355652246529139698446765295817795680705425310640834647172901098381313231373508172233838315849320971459829972853904661264934914599101520646774078778765050250506289386405626706787254460559492294144017320221305200068504302507246195629642400626536994005080875487329112745284440844655010149160882624829151968119999123661917001978154034276966864979193015615997089971006297277327863802508179966355939666131312905891568099936069730778042874099949956808139486702745541669258409211901674448212764380817236935306126915955901870418237123290362303484862236905321339722347242682555004105326656275354454236457378271418306609583521680854308673916775542612829965761385870264772956349466639465106563887888485801627741594261363621901561622925378009314140311843517378216131888974311798730837090209248904809588159344461722636248525086749817189011060048845558115399848853816239111145747604601571120451329302227982792218063556510819048600684360714906299973855651255970242363209781344653329241870559483418632991743467962230793953494771333975910215883375320743000203300494454766388585315331273523769231028369073420282323571643992535108661028725498905463599818799737959371970273287252071547399462283869619797798710580451469520556253896410579316165639072065224644189589862338795932105411210875452841580638799536635455498548949307201642277199871388347918284858143638498969839402548809080725831031748625342908297228001003820071316984619855581193691395950226922143522121697022178111119003653689985027804372523696733991422190990108585609720570356636861494962381356307333498580226806676575888734894412499439877438777869444911139198576801255546555530213176385433367258544214720551138043670636984051165353495085872396637499901542870295135453772694968113080256316624617325113125466795352726665616712344662768364723653299323508328659023961323141551594793331440979903176667389686135765022821360627812410458081331039992253470695416909936581021603605915441979702611567609061464473245453207581056445122080987888805644104459133340533313508527988042651697295927678525156661011783967003806419567407235165410483126607408774220895101253108608372882197387771029109937454965418808374817421680201939754335920414573338406251947767801603509535124671408959038572425485025732874881066977586846531694036100350788688175722845336442593165084900509197249937419607825162396050719158002660069741108741569690498783416093400644036277793639338106480843692843389916302663016885132897668805141503792013926676420734634987902027789570021137683420915186690902565433714830598190636495184145832530658149727434466558835489234887404244887099682045685177408719655087832251685909550285285839129934177084446874927628657787569766337262889827844950649375911349787045566789104931853462532405104815441246227266516793798323410832964492442938616296626866350492122207869171982879340947064979409096150689462745033547053066669052534445944838574074954773488276181830061416328042551931090192058605044227314987307187760104312552843849403011487815558259775162140612627746757200312392331414095221701463895767429310144528730460441781769296366169407903659296529049263206164516459983798401641407639965364628286639764112356343844835184573256466015282736867940825738793970950202728497130174932788944263358255316686251295902642601091923024654048644247259897388999351717588763018275496093092940056800469929485715012313616552483668723518079917715973879784972808995984514122171835403444721388247777698043440038498506083882704971398901421980165356884238391549114125879762661956606306300103850476908724282136730326971714442590190273487965882708897379499468399920617618498628525622055592442853715440051942205504307296884084019398536430754031751635343843413845749453642957601462145886705883937590654370894377547912648745800790054187961949141171063432862941131376596243634746066662980998212164184602565835790072153702156813853861777188414114308276855600605520952229156100825057394202861355987235710107954391385885675997618202525866978656437346757397719587083176751036445855965537133747904378636484239766965821769655661517920734311705045144399870742354153588129232263430794323378255027234371151639534516277398321071523606956162424220423684833003735260200410884390871211140415972971155532727143183201689913564969443942185383381063029890485397846939330400292326114989626852943011426172438798425450523228580337945241473549146769063519650952412476259478509058834800055009966092246584595544372661712991867219907565518829478702411732472900213336628689866543490210457651998306634541207850756139843353429567482344693605855546637442395664992234808046738914848323029224823607307655535506365034598727008888336666927460392956154805085761435505155155052694337925554100307746561999157773792401241187864626568047136796399856348711584486317683732159768051806179387738885389299980589812286274776965036223524833230366590541920288695286116593859371613625158402270847996439700862840655985804417507710809035639975776283079399866618174744110833955603920575980035062702166743606171866790458512265841215447218977117521535544789736310325149119506735994678228132855760986859601894056924494028690437999755591134899342328202782800829922674369042259508332051482289200467320151498203298831538470180495851793050006392318161909221091290013350143034837459058683418081107341290702035351570314493882118152365771354931996747661611218082172443307751409827140263272830509585681356859173726056447308002778864260138577110262732515597617746401651350753143266361459159704560628603600080752275510883925360154461058857253231592966299782676187704455653106256023360053634248740337940985995328918654595631315965645906559658360088704168496797017854810663990682426871943623912647622864873931337990919555213611777632608427255836689244852518415048662371261545960723301684134285705825859372016749908934351061821899288977943491363777370856744086920525387105815416617939240600163257536263285619435193277340060559592500370761024015004024351551842870703947616406804527748359772701205420932554495506661873438039312403981575026075848137496075366567981555725468487379193963270712568306176524911120745625823421749054769719391988294939607072711364260145585332883925999589000324708090545864227864265578448209387213937398895234062872752641957726219558811791540332492784097771661727794312619770478593636230219105519577672169875782178238066563031297694508468058697024262388256130137748748160054801465237783656614920921473432614901065664370709188465961294213679052044335823981423398222639504818553764821386165164579643541910362439610901647666746347927118406201990763862762558258797565567992626624904599881661133950575670210364353147487595229590791835187679163527940884718234459948237387412864876865537071513815975158564989228091685741195601666942454325788497477568070967905550662404580952101918816280934957807516942713336867946171753446632244550956319675724868360747085402337378545902545789799380604545008303549571323017567431433024013200921038871446838727387896144391717380662041276527925333352940709478777583943072686993993343520159185079297647295816110451971956964602774159221773281698635252998301142234780094389442401633335993934541110843640339035303737693628311371273445172170557815491092456775972261084740103607372085710575612248458934649727834796733493238054342009651884995745332585036169400282668312906169701447263037859281943135933278972304591129595182211265214901240287150342535190597238980215770248766536331990321657497804510343837613597302755621224791343729954776528921697990759925431303885746623827277718512936976101581604698960830245830158170762636852792052055066588298734196154606488228256173698874043377627963212515530500590490235796243333237143890737428656107798864395209828966196224241486966848373802928361990550567459908451769763658020497516433528699542534347708558846303931654295970962832181062051900483541482010643825279185812420195055471344612882629691124242412317612924645244431981002660538296229666896601512392971749494613611739368492446226391122105162189649879933139391437172614146790419807422326336049502665830389849374474659384408939783710654149883953636953543088293763521408305364273259555672334304639025773015771844386743292160601550843597508664422236583044955911698209197235680321516626107492051874818222453808555579134290018720294132107892696627129896861082127982669956973132257341156474561073431450378511957039887555311631102702893649708893297320848397473623120510932474220718881945505326033903772867856879281289325731067862306301394454868908122202441723856660609822319814261713481940010598057924699497456108471670976147489590091288904538604004737050084775739903044686118156655870160960980499209691001840810676883930295927409445723992307426726735586206217699728965977443839842579459661936660285583566541920738587692659727081790895971491953973776892952827470037961829169013814660907792645342912980682660663437863855708312564784870372902996421622114488264624556205967254471803211938074296722494400129766190355378672975759025026149504439309368866065900516068768882315122668426772434929512403919082418388784920270757664216848312629274832938626891451568476855171966019615591396041330936434977625709007820392422782330932183362275900197542884359727472683248121748068277304862028890118382856991076937675753020380811391448174972757669463116076674047873476939718517596585661565237821526888513230757934079322111797528976088797621277051296207426756554685373422457610734138352654378081033720519789196644906726904251672685349550856735164595101001326508978812335426998151514235856631614722105787059045214161048291990338862409507896967198866019091602832027549230263471588807382627379503168219753904327653653744355357872208393434665792325314555634574398297230754495766641590017266566470768845176998981263065942676549556135531418287132999529724869707899925928233192898785244245423881680276594767564420668267012529812793543434305540032976865430985500046395064713594647654763415579758672500256726896046231534997849107476348683502210631812865206923341421564562663618112152410153321595772928325698420289088522576990739486544554581394676442691059181199775112407094559711472035538523035594655879615884689975123312120334529657542526597977097659745952337442720658714719087126230840631861319491519914948095652073648120448281350145683285008049451916930241943257670988928445061761743579895498026859326424183275385794087219385664215349120272884083552329443635868293346823520416019255865209469467110892945198873655377429499697189860205558239411684238752627733218446017899540030822716070694394274736800034459850432557916249396205514753334604515974495409610776354981553263851909667559154779217457938723002216830658185187515865609984355458921929671484642349270510256420358288824438928773319298561817264597300657243725087413033489704152243610844012632768587161725053486369487201686728260863481430919662548572326211142054348304982894985957260090516160946217812396812101822793984860593829610324000009444338838294831879961288759986991891893664585224883525285543937223477555838848117156810978146533321159907717823455567879416914162261266363620017176637988080117200328814950950900533025108528920573106729579652617072833708862638469200216107968952138231249967499251142767408135417484222451580452524552084713425814878049237169203644344950167593634933561119121215955936100507645966797889976009450387572138812493165178106559184676689942664571970051109888779166952468763023987015215440809605671053183984427017498379219409603406521807259497959872264899849146212705200543292770723482223082074784271318571105784108263852610641850580123002190566733168612846083081184057505369693977704909315699218940119536333833906404136734149939072318411429984236550329959602133749721027217555221557386885565188640471327087775456939411314926421704147768563178820476526914696216255455983202082006070880447249930114836207757988007791633413583703370300462875236082081703222813485485712397535799168345256336288458367352673561608988696596019088346326587841156261675062189113594401012823102548211339854995055395202180287404858681037264962837966429454710656088082498040126947354572776524311651221171565969510280427598039540743926008115776322582871748089348554984687601349018573004978308532586109587135346344346740896651197073242134118657249806784102241232796473805055483774205218642895019826794160012078045800057648774988410601169551419325189830946189277807578273612031967455496541508822152871927145059420931623740298924440742803288650882435339188384779622995581181764978424347114394495731102213574791751785512975870637570506305535065451798352298133817903708205549177617595785888047915281707717694381126518537005209111396473594575803024248513669662564461149976094066077539205234189758528492541210333152478148569168150244731867772638493591258782331995462952206683839886728076268613326191679645055870747282154430568264932077733105373305189486688779515328171989727702266856340299947255724631310968976837455580919098631725583019819337957555727245737728688782877362865948985581974916882588442190474175340680748628733458726032045670095320033091358732758169740329233880011950818090375904695144871007666540734819334974550126256564442151387636013749284365266633395454339219045730009073252186381216013884881525484978488971495271617447746842343923075550188427731262930258008567563435072408040549406437134143865728503856028371417339951682569716888285969131139665193451049657040965990565387860980914828671993182027125245124229005520650220458208700536109515962674871534840640209567705379923829596175555355839292062656592462587505941402275416923908984064291482761420707639246846627665661175579938424372758732191430219212351764357727455871284673668816005537922688969032746942597866723170915893437742566210545793091127811122771802333404838477678179762760540983375521471107358963025723103666127258496571570296831812742468740304465354038623670538209404525575101254872770937225945544129229396870123299784472148185689345671372859647030821485520424782986004334099840586131738558857249640974662451111912626830914730003559869869611314005707023556677501048612678164410500362138251138977627124884292938968125567632067714786796722073982554916545557570069977685154651459917223478620652126459866965678987168661126788036585042727279619250473637252039037926907703963828214007813744998979369818467351183791115041248237355891128490521994331416114672157707128301940147188433144602502755750841042390582913296541935633842183167334871733581118372592480651520339993361094508195199689324608822211723468553377843586023662004657586413934066968019244225371952451137744703847750288206889237053053082046858591653361338757658291877167011590797629441050187321700917076865361849586570659058638379650464068580489717228533376514649893038157185654763985877670469799603525765031142133707456205691306628737632424287111413015644177944534566970943724663570054375107590399630441462283561524843597425013513509061987546346033340378007807241258112073500849077109138028152702220227078554215595623275644935097611234186342822716156258905116184130560881075765084187258971409727320123039160044012763973176868405574355552414846040285319663063450249676771365825723077272221404601179937286932649882908855401571291574866299044640746106567098796259607186496458619848527251638260562622728865155114143563279899648723687669580077430142353630606729414194821281407977973437014297721420979365096432240524972910444639814519110877940275876742335311694640441759785318178081572555615510265352090474782067265950594587986610183207931142675753181835114013067449910773640005418650859412134945421823731369873570525964819656962133165862490541104443028117450414928300097035333492696486216082512946715257111134492811821633047219678994001132776538742537008504397561417028067482500370649310964019940030843580324170003397788037097950099031182690099815358104604941113223624337229231708851129784087012964520879321259704333046311050206116433468031678099616420196130226805671133451274286957549695673767064006220693384454857112269345635224320906078601696630405640352171763485013824984402629669942965289530173498190843207763802424370858243158346793620396561742077316393105763347254350462267981216780803646902466685628073644189549535645334264635510399614345186489873148281929681811956220643610550275384294835245607479869997662358286592244871003608128557520704386717300006354266876635972371175029243444596670251460304907710119583647704034854015103421269256341878306439308904450413835001879548540951506762012649690610037563880558118447146214150507056532334825559991603308208218408432402244458940541451619393692875219421425188059444822063893361482243990720037205816082918778158222911318733953274736372696112435875335278154188060264807081267118427514248324123163830671210658914452739839705509878348061740650826753410687496387872818370762974861604470280174742286195119487981498564384177527456781486078095902857427836239791249056746419348524559684239830369217703472938435157557314702755855512870824834810557373112564205630441126299922579840091978016095909861397517651508432212659718764154958307371698200439043476290336723200327041415558019898745736480784166494158989654304917681667639154225923159948799307371345083921742805436826925549358342809456796198845306464328899584479769643888012667292217132182208050649914739882412633399390254253044233892610132154712005137332098554394696913562881613015354332089253035699654063475653076253076769489136179729878282335788452329811388111111320857753310294535022035699163533033960824062969719080752661096781503351429420924292665834108124215462731832393265376756706144849446373457212789716210756180949489481675199702926775635596809779111987095673482414032815162419697981558540367238963310362521554356935475866064573178924142895482507391866205202744444505549926568672998343056787180569147589690257249240354886765193572024775853381574613851651719673928885987012249327968455024006490295630262777957330849539733291003212204415261553550554841159432042526562062758069081554988125890327852506180562000088080274309059537947573529042828110387684730108398750770384877062186498707399238915551842409335835892111208596002951289980369486129528423732477606647503776031850177102078279486123225225586814000396694408019767577545204655552815983963767939154782445395477144197973411303799207839364551662761233528050143546807822103084205788383067535515649904399660074255896126864322423138879615987956974149117101748397736420880362052208157918048717724803266663492121180275848432544497723763681058593701690034559323842105864206066316510367468889464350642041216285622141994014030107269743465215590462264131190929780598138483365637870375585113341409304548317146197653097559473427456953616656755916673480827038370053702388133532374348968370820435289573650063203080626016913511897563199067078767812950262759532895150098410721536733286791584086172415585638747645722974814467010563984489760537437115215346694906777024407595070072712025396492359308524422268487207257635444351870222376197681959882120738000123616053791147460138150314084847304449892923269999653579805587226239390919009093336175057285538845164455826841985684013430633882409437160708830659241876400422553487634350095696482189037060375964212894977535450978481530905460771775195592345958135956898508392478704420500353107715828648813407781632086910430377497538118617449604024474022649541207623386850657180377298079984240045255757576701094049094611180456875584454230790272774604437522218932872244671460308276083372084076191896911249334671577196611241993428715644247434522527304954904374874873253175814774448773935841971448203983064402875938428908535388977725742080463924759576501551463605511501921439831324258374495268686586144508398704740388162362411005000432681330027838412720652686896259014793124619665302461523222287350222415715089484492619510393209171499712822290233568956030458593913832683514790561063337377395419118612886061443743440645994029686626762742312874811603137748402980219558182638840409378551875404070537365193860801839193689892198136644050077266066664523904298530054000005041692125596743517858670652451265608943933123534970425574793523133336052660670238577541403957486494000862336134734428467560687164520301659309802794937123004469884741870738052340023551915188500785478077786328069842202769746099161825539708192840113219786036693167073767342389841124648579268658708673512888364632399825488366488875048757747892036074981936918469168291502045575748918802394552196964415317900159193730662753104732381146360989664653908600780303848709079239204297828568602392218095590366778836957674195520089810447893698170959601986607099853566317399523976049489116348735291830182557825821516065545049078217520558635674926865939010345747732885818076288774596326009594618037288086804647259067498105610964311540298464441903534331902265842044436740957929339311472627379928205098263018368609210885827939164354440712935806437698571129033395110059375284070023810571395512784312389458340247432315300054374646946260617159640508844720667456819769088283802464285464873374940953754743019193466772635142051962296241646865644714361088657733283981114075621767876187795550519835530211733470816930677618950419995968725551646849341508775661046576675453865817207982115176786760111758470852812905680032691258776675018874884207877546905482603963038982429256192853738873419417696492588583864396376303707747150627700477283802705238220364669364269415458144401421635399255534090825676019401704110456445813070819680000668047482802903060895271192153512277383749356075466874890691376794489008791595353337961981311788753723302401541258715083845559990721419433581905551289809764560053902349996814071393820841844015980894658850364319036282684782811484508208533445691305815020069760287320087060090431733291808492799466586177189704874963378092879909230017619091073774010334788738658858292377434617434467273189725594458483772834777411406939301180446177847461969638251949950565892823332610811673445595103365653949058243340301206258134500091848530622390995331844120292061090586760116861696645964271221905416809522524072575649537194692603508582837544627073236925985977190213837534069257405476777963145535450577306635321724789660555027049753602352895663523881648476993835812369370057700665027938531785632747292907012452472947394933457962338849662188822466991266615359289910529609683383902818046740488992549727782196229362411748097879949893025301737721814931346947590189923087582836152900513779969772434454426311229489030530208968991715477730173521594433332204222955959384875570592510339597106030422982902437300981898484119086331734265199225397993009294304467599119484640047566236193334706590961146980539390773343992342121814941522742859458390796143510757569091200777815607906874822445789593781997780600041083556253249248743535383726410423255064152223205402274789102036487929920748599653282776530837496863442831215471550677692358574523935258795361620572130364317935994613423692554617156960277767172403871110380985778711236467935458912951251860756413072523438295561679192597312440891695674047894716618735999909958347100181740664743962875506042645580790699859778032790113227737264824071380744860356263915805341515968943903496600949854703629636538964375738562604588343911102761819269371530169020913594481417941840001767084142749571328973005405600131313364143752381553097110679907713003857407756327310186007014645660369170775560895959602755881650904036995959872560793832549231720395476940986352385200688095042713660206783079096205600755502104387359396264323167354150330339159238702786069293327400164516994522019169238421451296586774511150418516449955866839659533357882968352082284620662808286678979371372963419802083192185736097161395576326228595301676531316733708473067254077281962816000901994910587681472823520446906983876575904066239009438305056189359353247490147588458333186961674603476896516079233699867097483807133615428682700903354275633144158177140317005203300548871189527301166194104742613349979384860394422559715469639689891318913209194307042213801811315998540509902868368407046637097520302567205219776026884402556568687677244651781826769029532641067297738051227271457623634478392845052714120703173372312333488581114255597628413324740258606089730262304016432138005004316262909241496111926329643922322944257597575230027605859802546586616023388672191597014552047480844879273513451446879179522264099696256706604340895912494466697903369059452356384644514499553940298308150798453448327711692179301313775630053765171919013800086621174857435490193197464986671296317181586655925038804621043569539356869396752183408680236279036473729632162498693079861035140478275563854562834106510808426222768633622934423179485479929790320941859148027006576763012923635206354829438234527930529298286162298506012043633272431411897705054583100628311012951713352016060955399643488840868841537648609643221758605017274183386868626036078119213386422587189990038514030984076650082736479465200898022975525129834189076157499123912571403583184147506996916249731341556435248588553868130649262818090503298023444942156902844386444669364079681986229134679097965295015028955766846537389257608703611169375970000179680287000322739338412978225628042277612327766721682307040650049053515273151813488909966811032282814754678755064864249717938747643824902771244424737104063135037200455688073385887515898077140801755426850600765442647846532403954189135640071716845365199370514191935061084009458812006098786767967786293579865402776880125853659975947296403363122641084679101301646922959112415646342679004396674747073129067083784028088088897103739606313318699811523107532331785993055675525227497206482449433909462099007191322238853752646207308782862207401609792501822507701221306562371318569014579540242737645730440695540113261640430548207319571658251253164501488250989423613361928357325213382529288154007229662309932053314136292661279505221729128996212014191770940263361353473174928189758064175182833660905072955079221871318426481020678929673932496208775333283478611618626849105985252662976029576748420704666891837708387921519271451179504631541363820363842357623131649110088186735986622888611374217501173991741169662656526681270336546916743751187700906017187602982692200669422173225998423497694811699612771492676159953145448008801020733018347001125635601093990024590256415382109074097387740482655036126053285478378464689872969569269534530610029875489805859941760683089674449201335857135666399151621944748757057413909771473489364513795396279508684664852052990609864680952578094310042294053644240836904443232470542275230195516292540268145939420206600411907993246113119247655687701106645217779957152119247781693032635228595907997450926705111034337486876606015934590633158253213299402134304794393545763863966937746619611328976267535186980059094296025475388750598383580124346955653124930748384304211448942444509358248305807649467079286151554452534407237538885068277858752593022689615525972704533369361214713221051321815215133446561941053925744490509693048935428571099343182308386469878626081424088656797503440339040560374644220256974026750145250633167109811251625004872320544438923286343474668046065450032189111503806433785667734701987736842601392295055771200538235199856018121635590668589261856330411619343537441659150542785766697997202541371171424324403490052544255084590058889351859005209365423159049976418517655391361840213766454603569470435410181524752529541885818964506882667587414945337149165305409237774580611423683311767502610906782298726120470039287168833770547474582906677227387721374067677805399477007571193321837782773405060504745702702283440749892058582301579771839932087365785897706187916218241391405258975055112625475829434024286488323920918977722529369671354059457346363118060826714249257471281805279056239942242673453414899169855763850701410205723357247317293567164169673584294709905517474065541734062010770135149645513195259987740127528116440870449792488090514176576142763093423458864669783070454523802553847329003187650654450537092001253810581241085170496085540305005510389445331314872925023641659819811917715997692745624824766323786004701118140509689857920586065270809038211556961116691602218993975985347545617710730129952681957148165505059576485737609955974843559066642341651914497505725438945786262829017997230561472987624172570547730101869283945077968074656262809876765926717249672390922264615961086873492356348818401983254821063480800069555738766976067638633540254282109730113564010066201078035018555345121436628306417597014987275981478101043029032152822032904936521202411207401236303564474381075402489701950780741392781274764587698464007740598991771393066161617221004759011175806934290729037124716097371204178764348041219127454185963164538818755422792592195315477476713805057161993768798942953905234655921758928007613348376732925496846438943579835959955744620866287238601540190690725054387515033355344566240486408254483528355193126909037378389480452532809912323864222788287103008999426693328730861017174201799344045697961815073166603428486319296126474869271168417493982361599375152869865742052103174685446614394315888039973691227350362108539888755663078131212357105711595214242338542734022226159708465611126389163130083119102309760423133048891219836112078164809329275786388344915634321680425722231625990616937114327081229189050059079009671262126310119836921881485301067674516295552163750684715688446329917173048600895968650420919296110502239995155707367145587525856466307517527721283977970075394653103773962289192633064593291510558771074421970767267717720102431266996749299512851483246207840891405251902960306955755701563604869643662490270532626043625108502194745147766788914518904844662706846196094313525774000645152273703433118851627352416728737582971517147487757346200703955964115504204880527679449746352775534095926327878918388675997420966576401547529996329021191399614885067652724088694957099081758336099252044282396124180549178856347850196277199597331242470893879017704592188836864768080700349538535914482788942482869333501959123082969585754806872758615391695309608365941445524673172616796786020328682101703472296540272186165202706466150855959227356641602276312253359761052181634999548158265896326070998211148106982157878417882034401226803427757228690642456047205878137151554531793361889138535100974229723235858573449296688185505291154666771174275703520374234898928729570851980356882079124761861398523261997882510199571932695035315302289261747741003493325247229316488593946995376157400940207357769145246679094625028769170554323007033027436276917891353622585040382888926540414622552847355378400047870838830336044037957743655551719434848776070876463825131980213619057935462842324309987825108324108549846584481482923487441047286650440614572854053989945512263526974880048962915913816267740019836849066849536790471949655194056167345535911703402456857740832597598998885977928216890103525680500727836341918246336190268891622138910347399590313267230468984311675403744906533835625104679175778902649733735210250957888305155905627145841049849800486946451502281570642222289244933326803634173697211342025276859135035395326741828165433628325388554681010704341624131750269426771041286281618013938647053614163577156748160823464218763685044373298159763140200206298001373375271584052750425169803282127637761176963786572554872578880075247641253485567694912005689291485995253549316106021027196734419792283870911119968985437673934868696947298498067115278054948030189903939109419396026057620150173243087848561301717200120636915002886181441888754035339844950764649940893460642452876007474104784355315713685738694540098080887149980706647048532797454910666218499767190114145382213332837139494806633573344017212071017908780138532043962566822073692218287226492230647127951917145235888708199198104016548724452172558797609411357762043561775639054988635129823182549942648809995673042726840810101964207319622484201059150044724041304654329712726114866822532182337164515961853679366862386459836591026643796883201831386502237726343589116506305988505895870386022635300893692311926182733907170899906482889278390724861410781858112377966644290293188764637579084797511046342539813902208006748504776181357253014643575218931803175049099779701231506753434089951587727221348770043688426188492153121082824146934328394127095463676589632968129858441136244962356920797880668747005151454473593581183029847755036451699075504120496654108603151715374732407575261820776830132749230546529685393732147650734432703530617836271579002040505473206344070676403364430256416280083478402239973596078155464007277771985579360497205124741843237376131299626554049689649568238119528622829538878932823574208810376510225105945450266739473349991518052149701972183827208777742306412846101328952822843729726992403810368777338752208585161968506959577571864277347951679734853813576232431123685325737413329649582238044753799313117872057432399668754243458950991827345335354504839477637716855811860803156919777971579081960809494940267828187829182163233582863500522919682968301796662348625382112983477093337366136420693327495720210526631866398215403381808351567699910919523794618551009096932735196538674292546930005801666312503116446846414365688358545008170246613236546282345133845349735395649759334821038356514442397766354419117390810763699731254657390987098704536920835675304291855924791905932699593227136555510150530069063561121031371997983354402081544319234154060830649925946101490165607589016372438128725531380479392429337558800256660486055397172191897992942431709912576504366879079553212766895813355603134704813102603380164940713870019035423383881492692365842522429493517787990381887366732627154382974719044196487070071542787152321569112593201113890654229893934389334416517755175406210196634467361005560033484570055543355257990361517202319363192938710782156340146690693205595152245850684229852544598989091742425270349226933571975410144781536971013348197675593864451791979434099318849215918630865672408474661387542932444270629194596903888131610731371260423239421254169595840525693859667966735753390453556214817301461337881946492600669620338025426080442027978728656546641636772721847778477581877567552767280845081284674405968833487328593832493723629010781520892224544628797043546770454909298323157593790800397042337042218644166624729542230843140197436124720026253622032310533296781414938122563517736926615472335456177212896538374202933676823155986068875493215420405926372010461967256597605391682616350036387642896403582153634982495043496322124408350222391534185146897626727180612497427355943845146553791555776411153841362005287628914284663559167440974109911949330098085252435635461079385825305315315077212377922880916063118356547836460838372171172820191167347919181309534062905907350797900518420104045594341337166035828231712888435057170652400767475550452586998549576326504955107391749271878270896224070774113076758265249520509436055000909611301235458520103404912751631556746230003778743942970001770297588187493843485696898512557262568400189937626017826766171020192908075238704456316506249822460799719839985579959163566450306042291651564604314718750657577288239360633244399901971965139774313173461815106424662561868863257435772065288616222953675933592125456892953726892988287579675817287055598465867893089671239002415351696265181920797266503028329365167857946032995099084161959202811246018740464061690054775026565713549711219520156929723722704377785622718081911914190875919667007615074697181420301847029602673093130025527558259191317128529045359976784685525056117257833934017971463328515504952604526269917318149286599918301487831715112136874077921588040990218727017742042263049740245362471554787633514653261676464961065905130395657677832131435074550826527000466614361154009726832937773241604160188239939402158075320118529737868625461743128371124336021801995924171890236542327382618452705188187979812114123852913350927292830696104465044653578209477511806516721802453454461168700740779501924757053847765258768831249135111489814326536853947489530785081427365401600670295645537954237072824974534521483993829770973510729399140734915623994404822855993597665495157413899193815606539688567328094732427887605440226545424928335749518295190379158225169290927263306331038714897144577901404079717707712234697320911465675163415313693813503344061458936438531321367596337564222347695518117476349558969275185891587819198605360823505946980405118005019878582925926963880429117980498344731460603878402524379173698219712521517433137246393173638005532789429716020568866208988348094349377565348222461726526390908513765187911832097166186276000218492490198972937757289700244192734981856044398525690953122256664505364437329641217318445616971215083534057060299765293251450031101195139764082655628002535725920603943934797588727133985454855612120771738882515770107712864622232446587629593204619829917279080486049503378816120828412103805151881499763346403573662927177029283792181209660079303906253186253179337025691655678062991156505683198855357289347692317855902521994706037227626913727686317050795083664220982079966438545715597645512057989631350835793309309549132947365884631784124510677123120874575241628321775680512226864581152935650002514374785511754331084050651876706136659396006658877539434061521234988465192237170339575954381635037763928461125289173056986328680425637722991955742740642365512113719185291975321961747186800087736169562873496308482224660093198561722383721099332067800035298718816242734065601156580719897132827575202779965685815654432248072381951638180148644995622930663009860041930634561327975882286855969627227361233903723037993621363464283432726890152453060992544870920564476556264208754827745705920364481501500517345956714438828577360687607357467698208930504437539765758058533727336060711290960706935183070313542839897602014653260814445179051594607709728169132080952675807303823558845876399478875653722646325905609421689229793130983679255766045409884620824558714765717912427081323621408146930193357203301936530082903062443520921427115346927494272461970578019059789826848125141919567502941841980307947676687380248992501032523383501864421763374125861475291241755135604432208622144976335076997738374757781126849911025370828170448340467140147982198233959494576230246724662574159704262432403997344890740041423269755749242689180915065572683145608798453050129251072152803557777158019683682592382125165170307873011627207005915817068320998580324761885836027571237294444608847112603071869422740779651949082476233754314937622025842367933849021104388991242982224790709349069281366277322765997845228364662018064528359718534466043103707854952274235557832896104723802623555328406913132678589115261839845142407385910879198177730552960329344432711271189167854387802470581278836786393574729194338540429063594697870193344089363003157235549607168164541941129014616188221367051810379384869278321803232771772703032764513578728674880719576365315720158671454151805314747805663557686214389571916919773950629449923353221141852188018474543894934940917731780663108546293068219253577177280452995278877695359632723330047254493840247013642186648608781775296435527273775125355161098821196178316921748295546531470658868691988725780598067835414655028960266178493678370430723664483729545645763945747261439242133119326014051303018095947181411302263667125611823610107370265988516225674873456843830140963347878350124906550826378630221788290100399349029060250433802373499233420142717197498125291873736593446198681733281878677346157707028946647143917267041688436843973505246577316665491155036316057352952780936611291742720753122124457450885573970130018147288074673472500036885954139835178112987528551791776503569466896296941324144690073032036191286606858374780856963801957701592475124869512048404879828720721809197525091793511300815307226571133478300255245066613582846301535206585567212125739639699164730767966427852475202289975292268140738261541455620014632986819109017879157202639586833574715884809988968278617829569113532446048777732782396297793273762730766589606941769085453702531577791006983881495649196773985704363375828477276415498341481894491509445483726695864649732004844235605458468062093067025150453068081184518732265025228960965571705419238789364230540083699837191824286548468581193283065758672540731494064550899335109070745711200738014966929247730968481458696163226047940622347658682764153103001334176086869794429188403455041254194695776260590517648158093534884983895940058036877420286826885477567101380534398756887480558220058450771986622739787527475189523574594890629433832339301093178824888228218261056968907549998986994372006959312442158248730804393081147274311810945418354000534653466575682460554062720488912485632108966743712961347751604983008999097238915655523373686698614792842193008715996502119795419288274478989619934301164891299706775285518061955032132050771588198814446088546446355225914895896839373219315002196479563189465692241694159606504749854018153333973286695904182587510345363696701211760766412211435288043514969429936044864535334482089387429699559298375653188671240930251910230964518125042519354733122650073284337079282399680977791064944870442822730398350421194211995056439623405532394269260492535585944723205502855203152417615307734588101166131340484958845607598362283333139924363427057536361254327579417861886493396869721133743832811517856754369950914324863453970063514139067831529798554263611938566437534918975301504548836797789149984872459145858796541814137810028794538351533085142075333614684104897316298541998851714506939929774884140613233387100284050303676554435586600681312681459614141519395854674396097447020884341226664473440783320534085879421022342718010772713335500251366199580807409254144769141937877069201059884513458575466029648564485420078143730576261689842827504953971779151011314434187444663626308175369561660913648666431594180412442740088652695736129765150271558588113115598678919754642683110478796942023930657550439110183167458707949666188846420956911418795302145908742933304085951841001457562937916525016330592040398625613567237462617433152910304018813253210168912053393824885504451540399893300707532140395361919478677417990762604405293764728247914122390031175449651742953912048821413958342833797755998206905081930236776971272323565296565437647129222171142040583794085730170850168960656664073872508858342595147796766506859418687779104420434148444792421459149823228224154256714724025899685145103709762929601827949458921924270648156859668275958753100485990149907482376890118227534370073812380974688280032730541208738233509523800554455859410843373929944967037727920735619783308631581759723371256778534043708319119864450218644968606690078501061627677020070733266453143735000444767108630444424461027590241187253095829089578792131465148388966745743798259202000793749713560480941644437170270492162002149830233357628241976181384600616776629873339379730505419141502774553181284053333820138958903398950928011392623342533065181772741027869875133501145146218599929047836590521391390579986399155828352289735107351363459657876133419243496333279329269457832394374723986136904934985642864116164349991329562344636201890899245309876224661340112850638013197911918527800082484901783132266186109786559208660411374927446960889373176500891922258292459567367016969157944406911865691069792023158089501322698276749330350965303259812921584060807816303517704540402984656713600078952467513178521525707338867093879383330029700062955761214303356678895746561863210063550452025284951705094800930081617983163765388562701977747949648557115957405678407269157117450884585537711558658953221550960647835444983207772972671137487682164284171492874393574806470335038911447665714509455534069809570778101859542146211601344754953875754456738859122448571196447641940551565754488038413057373854735137266133036274203796878405140642339957152197257605994126205995912093280039070067828658124117258137643854867669135217299535703858572457028992609835336105121271316196131369204778457425382184860673745271373918575755261258764826138558909071311650522810220994168538383807605806643240390874244359705948797327808031796873304033158154433502295725395020776227124023328220193762624503959303836252860328180528330120110335945335916542661641550206250695782206829207001911567511571804815849428506902933349310459308453580514214091247806964694917214757447739303580473742346388422123803565541718138335458731561099189880638962290651089438370473277464276322081851653239545404976523701456699215988326613844762491995735397973257629538558960110040725022691036156630753537408955724177358068391534921896022446527699430033425559191080438627644663979475095372757161057905617820424705160749175761153585695384094971969702275872792745597038748208658970265683297211275863168092514902305447761158562406205851826927430837301604190355412089037018258365421157800234689606117339951829643177120751821673356178758279625450975843375863714316089881831259188416714766654124388841180831772726512745415416453617689735245572600345599867395237958853208549864071872740290827540102069187459959869449663443972816901066451157686030409050728168977790834749677975889313477785059936955314359103706928934493427137969216067097873458848162091814910653265577066424220050523070433844592511269444899425435438492931196969362998748106110850821920244100429376186366239541839748608219602921931520583278234086097612734514467979432122163977045446928295495075483305093413153562054313137054826186799503139038346244359474851183958707212317857375400160294361267575134075499461700758064735953496278022917566774497320174646210900436783179833285724902061582468286349239583969358901572930713867811295372385042729970768366697329183580174877119190730353410322333759862345778006620433783112266328003330898566170895513636574303864135551458264951565720501580569233887185133638927214659162782029765171113276080977982031806686479938045791114780103678773261772878169729081461480332221799983823167764749180723051159406875031912579401746637905182158293349609314784557563151834855734996250845063225868137348402936122087535024539517419676454254974807631672538668642044968047114439535543176288890809026897727046650002058437245156111435859826688016868484943089503382542467282264705990293098188970156997220841547431407845610668789920674560461687984261223639935913340624246567538696405581744100862633121880211055938978892784103492533951340179726805059880706129642578934906968818836337608707948988774660093900877342757109805031271916490488037530433639577224178382767254164411085117646794830550137944646911869546034118714996972037938653677696047285215132521849169484756623316659601847357703236527629667085015467460546816716667966468109009755668379966695189450305110617022240737386298442689419886967539089571001670387287544451050721482323396265898471519049893586684162624704037977749257192710456445514339785101441738522705233025710883861890066332413203888911973857959496085454403305992237172702936953354812606671151640121637509562019875420419746900393951523049495995257740860628318163797510238257264556020733478682244380761307505879107376944409610061281600797601313379501768903305593722738487959417834704558721206137258988037224823130161160175107990204251523632419674637711885446255413311692728071723818911945840225290324267720580303828412142187589482621438243701203642908284511029232759390078944246514244532034238740180370532423438369883402900669393196508315560253617776186257385119694728193888242290412058877900773043921046243015992666234094011364886984711837675215726950572625693519508846398472961064883403285854034165253297707301034730088593571747513946905056794254451720645813569904134698973506722267616320568614604668657045271264489742438411411475842770446166239081070746865772109706733466276461363046296962499803926059019965325547660127320625052652464945493786852722704796860651588544229399557215575018599197873904956007940323132657186963358863378951740129919697835661614950508205170866499827847807729170532555180305598690987946467699036393697568074677981890138400607346587921293566431549847042170534191217325245924197733791821431257453419461724145183127003963253234264030431561708643757071404176388351269238736637200387816183104628176757431693100213496890860913197014807731788937109618618925013696211332785524435618197700825079200064240480716620775851866950109509909117389604220292060184315293651675374874878323083330308876723148143423686375717667696827468226581979633527597502922373266457996663286060866116036183732558799541143867179024663552755198708587378117641747027293499263556514678352477026820924493717361218749892285892648477891803467477447659955606717928464470428323240732609267375094028753169014859238089736211294964256343156842813345310712227267167262137863183085985366416197312869895827398264344170425466916369340979324168231745013022244026760691467194048742654198035304744390208072769434788501106111223301489437713345830118158459837989597307248918009452497565063079258823814890424673911982513696256409488067563151944949167805901614387370106053210224390513932799326892775578542587308210191046899087490965986395822780104503459199450924976013898203678903385607640373860303132050816304189914069021773029789484218699451318035666672313988912789752483134196824613002100543558812180626472235854567662114219180215880988204921128742903530654661159935736386552519472827625727897002303293772893566549764017082189663786762778855712450417179954488439201474285564793557506456173949400473451633364337026857029207920286434455784828741595279753499113730672123057819950606077046383482454449365592442370452094791204186123656201646924729852878415856022744267621793546372024049236699538428939528860518351450432741706928803242880753082648205419268792380685917974227418435437624296294085411445301925850739438395828561551782260544283308829280036306597643948600772156360621647848343122059860223753984380973002278315176676572370841788188019910279673051973755494896701667831085838802919277716432673276446185234960139733185828265732922405516285768159383445364503823738552821718562681746161788779278558057044040984937292390877343570703014474626372730129890105535117386912073622096132734840035896483000151083891072546646658424199481118955163237056042266804865085120412522647235275759081294220901640195734362746398296801068293058513930514554657788162648878129205563330143716380968300722033355261851974827825524011941658905619382971826392654596410805744796947799819115297662868331900158791179441313298148754257278694333940721784866512953912229106182902742714701924288380386742950823657051629550799008452953843735298770517125107709568249562307829336309695154406958914556883511994535032273661295434867635716424017875000725213284299598400476099903967985551766556867815899415770773428520546534697357766485062059063579163765524612040364522512654435307317051789664691013657897658062233080749398215386401252952132222132722750893483386376903174816832445121809929533667510263777744177910704916979133422193298015770799103569360996295316219666804619706374299226038563822579609633487877011516221264423821586606364726939338652907258124725841029796815823040224613781299721477136732663396020161755452142462889609657806964262741969844974638145989256940803209069892592080284822934723140765166202822589070065701874034367337615281478042817560106650566181601043941162649726867557696021400260958849030737991351568246886325973842294760563600829079108793987243239670249119654095664289367377609805499381314388703831681769155691643099143003265014982520590225028590123117839881351055498563185453633250665708286353796927515391871251347808928323567727959140441292796844551334466222160828806517291457879479797364337960373403077946874252942130425817419174150165425695874810158009999519169309349940648703883992506795383971770643362530736723751160022002556795275850956456015866299772602446342310961463967842434497008922377226355358107446498450224257118197415927369593190121310582960656942933677673098354207960951802824267675185821927768681569105353203200524476040009086074354666520084562289956007305285294933424203733854622927500784855967225353402615197896369019501285661552255409365245449502166158305403398372703415327138953708218517763574675515722307206525704671946804101117972865180793915137762977399027380776235007136886960078196928606548623083018952087400911873513341343355322019603579484561928321666071805464383564076599289460134011464094690629621955012090029741588783161753865361854431001438446400605585973144681464349869546916023085800298600326615798448524978321024564828349145822586906658448751716182590884814118863445732542424574709025547651974857345739495077568276221742473455256955673483945605222955933860476662047834940326581422927013274369354343198313107251186815847733862912045581884026431907330916707089651679481457168029650343847745143445580497585524377247497467123596755325575100433051589701388756448399060518102708733382626546700128861173308775789553022469708462683079508529727943991715226418338000326296014054861292473234260185227806805764283891979117483074045037941187072987446842446139323033429358621943501755157736004089932649975213916078013147809420926948638369698874397429600972907279709784980597420450457249431898097417019090899974749604028310858157952549334865930689471887329186346491824329633336500943097491313992096911825386619692675018568546566240269849105695755130715669213570231996097392121745837435041676504522564647260161194480884226707280604093135262522567499494773308747683319232475818205142276720341440473590216202614511909657380466324600384818226054403491268479678598471540907089626859760356125258045581107457589824672556141704724772299447076891460481360942726164850274639798384970863350105423035786218935534029880808052521058298237734434460275874217502775021127567526191871334893629896831025148006681887109451442868623862885576707246822269902524782702525683916296326995817567010778584855462160398908259706229060297080172960036936885823243952615437274362822915529569562429096583853004809523500629980863306536188088366968330175525295345595423216547478165420458477045546665627310429387922903136796780879112292712248586564818818422628097669998931574951686160581890215306466421393281776431599380018689778392734614759559352553452886970128779433947134508091250288799086966167761250695489628485808722114222426306408907201415824728949828131014441603040619323373785006310063192413884784358301364051369836847523873859205754772409911013728310611772240562657586552798322097689799483909890357687602888562956150166577620767355299004303204665302888254888017296946742012422801140933061874373929143824839187895908937621833676767574537816211385639467820674559198806466911259324636939220408070715343932330124265954810245533084781407463476810796219882539450213190415579538483266604874613706828981084144873076227134060617762437631511977104225446915180114948147302840587695544992472220163809002231373966518591184228875370961104690582309524427314612234743937523098175466701195629630607802226524716485114533682791233100528503154612494740270285884775649979498926432313985426669396970754504570096107549196190429339102884316426082896683655590456319057228564119897401041751341885204147150301553785133367788044501297620468716525047744530372283460295014972479541565481362801797823502962958889466347873386904889151627580858727909138655972653401642915692242578649759679946627366609034078765300180637334637332234973500581488391566029085729175493619935027487619996167863203542456645105056614173896199090977598699278729615348465567996946976249071608066852653949250930321947088686179202692125369657448895558486580165368398007198349653569165133117031004871162603336460450034844926343568205072062116404497183149526026658198204698456535743345556954831152174437307321548595650999411440305471248470435008271852071387951476512402910775564090506482543080877765274716961365634496477439522683872867441625276342427381750562629681131639084757426145756395173262605953043786111040343039525253522745602885004668771652567895517206566869476981317460339697443368199440274497237335929254143589432805695434320982220407935235659938751030933548241547569986081286614795769321146881113598637247372317182045399389384618809686308783220492341040729771925230269188011159886361708233472779603156998524765074856270662864606531724171400962606684750502737321555024049432136668046326465985261659339187218361303851171183017936600853862729054359327606450390358155269345189474849456925295301416853754770451136462323532954120694967440805974332447770710598693704609568222982534659271647835342432020874436477782251885751486402682393708810468719181884068230591586814095251984559981326949497152082189484142678247249415252359857725540077552301647397810251170256198768820955451336001655780792351532789411098629467648585113299725110728474524883833682426702648999462453206648844965385737525610202479466317474467344139349407601128560277322185839507544246389501050632330288420622980470957496342510778769251618231904358712731374348639820567868765127871994444096069449854611524611373185179330552651542991367633094753879875306726259304578738479172960774269858245145990880857921914211927910421266678997709830309359272063247614335754015497932884414094171778117575677377978222486919757175462424711009161334105261051225138606357123141501084330935708121838863562862721348819360689269235119305295781333211191216010391342901041792902236298390327561642369495774623895206508274400341613205826301652829322393888016833831081783264968630092962439452955179911712855177779895536792213672144550124981147065910725938954353478080486871348525011958760017507455383524016073622022160299918658802442559530012922216445980167747373368264890558639391591626768143414547625670267633038309391795224208745264259189139416678591367151267458926272299335555191448933267167625361589432453215389639797901673809544707878802800447701587761030334473774432206958582251102039456436807084884414942111948067787132516061282131143504785820720446159876935524614265573712099263258010387177815226223283794359481735082841566308651792960199977926233136871436882732125523775626455714992551758226889043421791748027238941015178025116859123677880993742621880867126582822074311182724193776423412363715845287901814508704881236757516485117993058564330233412145172007889263639927423686427041833611074821607445845833655551047686880709630809764116916749521671805247568925793955838514749080695621882602336647892496313657471483842812684153852596946456821042145259352757192308906120333288486980919470982532414980160635989142139253879638888322575592138959928638588324810573986718857478199480952620715052706458132760031948094633937778137261230661167381861573838506357431033452376999809487942580562837643867347870406448669526746783876452420514550697266791154482482282643040870815091378819145061731003231026875107351198132646894595218717522850909945584026698411929853491071765007200829983079293148418588126928079988917624213292402486784699084504830688944651728207604911725787210796613155044813982876213495407948707292773439103987059737511644056912705115070495803895643585837240772305646440090482731501853517749363576642732828964100537195312990895661849802264065523956116187618612787902599022061571642181045216022733883671473839805402020203986833153023831604626438588764249817016888074355291187927855441828369838239052620991185391579604436146762642004562201261444923740672777537463081102485586590854904273811067126459290449520985538198383925760547326088063933569657994930495299183262614923288125151539054733048901345132288204824165732024434264722647822003474539056784822648544821054180907709578352695341808927563504491843572253180286139647969208222992122058390162542603961681837463491765842482439871962020875094137959003673172846174085624417157980679830996909022885944274115533003678132502275546045415543448977906224149696506037559649397565286749675659046529006820520103905975719302571833378389857520188063857147028805513017645544842664286512995217710118994881224502179779322731589564370733957732088743000404270301179452968457359756627608584937011278239044200444130493187475380464257635544445913525375968954023701213926066291582815363616620618958165134656937229167358019400729398032946931129744678677034383680888248660240455462710364433371827854276520703836302897700474774218821103595044003496917412661161520131742600147919681246895872540633116677396318585726339588652047520821451188854780135448331396163073168573955144503312580759139527112303058008480230134551417132844002866589760732943989610850626896667637792283696389291328499363531605513949909635491110068775866354110409205492746451956597235848889792755602351689301502285602755998420074519106911763410829393583107664629135703528101558157955125286866419251897029510353156865822248968997880736028462384049990279568000174239818452518228748958916984211155840333092571497491336122002527901396467354355174795605331798438476780652840400067704687090724399875634089719086628321885145811060493272835172755872700806379205565281701539740882626971679706830960667609124147432705275496616967761501587753473975120507080723609028203990861489440020811864972319511623292613185774379902099529679119660388935921415966144499681190581578158752270009464886138369040986418385844418976882723165615562152815993112780144071315213588131857057262589858621670040239301369205469814905236089727674101025494363333046277281204846932073401339275694445370064884726884041282413344368562428319892554201327411790522220236883435189462894666192706933613822871798163663640251340744824008774390010289083249411795445167263520775370065877949748134915709899254378907720170234563113302174043566704367312665663894078475858266820447632576559404961298549305401328413844922162500920014557662248552808141373611473249187167085177841170808160085577351743132444966741247110921412209434520191745960631442285094529256728439267579568605223578843337219957884210049785343033421900011947202513688665022903370064003772329678741918147064597537032323856676571863961973248144109871789975316043648338239927211470798884708949902765770497508138899240944548729007645579627201530387413003948247572426252765943098756663933347799074388478797303218545328962774384251843537846726304702967398115596834159073634593483774899458544831490957063372010208056644022323799654461125691361147142639347811635631869876030273136356998615029535961899832358449579278150340039982943552916525342381816715159326017910924165279602920739086220425941056866761865372662532443925947549119354170302319533002823145464275430844899598371133727499810382573033319848049748659565582235347238448903647503930102390197879179441502933279126638846680024249793093417234722467395221069668576639856758315710222887023432961096988692603395070277652882663326518590715601192597751438986266876550147394394293092483023295356289446301443905374000567044565130681473992901912960504110953767341100879767543959851954606074949903550014871882677048540629775536806380779566752780691421376975062830563306701671154005774090471939360697242301967156614840884437968759741819950839831848876814110481295768844458937778171414785501463263410717303837764972114361764172735036685247141050403251945809358360443550288684881297460084938047668058534171497810674961458295185276697042964977490646203521150180780587224529805881874115522151460908020203177401898204277030938369695770780314097123463157880626801940090345319937006888424732598516825745684434062658824816421540651992576728839207459418799542074570395298771109637384394480634031378963042720556280840840809880171840278182083603179416921826967209567697953407871487512916571814663479230436788670069700705098027347485406582034305722651899424534227834955730734095804803179384396140911659286511444003183093666378462497209817416037465573938571417488440184636467489896750580157006792285582616339547316172169003136065913637180567290873538596721969922301469104179550189714197686728266349270294635063904792837150551191464061294321598759227702506121643420480607771305112022855182465981923108278998611248988069264084507784357532243557092792379382116791570477311191330198895998385604027222285426952848579846981041808344677279572445271960486543578777807500230115977691593807745496675815567101165168866298994859532850327597468137204898302958833016213634281240555979394601180671753083857687480123367849355667828862030074292886607668034100039509375106888699961871565588364020182383533156135620401449042600656452682816108594998293640064425776966314867406914703706167641639712491951518104354789852931185595689802009089465809206989114872527432564099228892673258456116544247430319592254791086718582278321948457435883536343772269978989284335031642892941180120498244593363224894111949206438917735404109452698285318674450003538104674828592193021280329195030903254011815561695777081967166607189922367167947817171233191158757924317029344983042221213159880692385144626063815516017086357199786190660664525995478124315192590533436202348409182949883655512261354695699557805744678279090346235756288279837024620607859460653300970548448679363744508504813971994844269687161303774725527002590469069760353734168102942943579580759117336319551575546366019105180087715250375541316355205034036919316340180586245392238745832177094869659012238942790803191230028306517459490351985792387690005064262613872358664934539173753600758937658989090449363981176499106219497676445336060102341933948891941769062168192492950068736975622100477864617957502762562914029612030070690643648410962511214313021879010007367890813944839385173856165389697562201620983524659267306262348129976178904757917826291225055155013160735973855599737764188473971311452207928294270734813322232815331589735491550243189554950638943518035496292347227877518062712485940652208283018205729472250241252670438535186647712959077634325381996173768362807367403528199557748603665936489447244556072121234235340043430044424495726951969167466036229300916217168754424457483400790053072691238942747785712289909016338376672840282956112874393677187105400367860162836150712098100020035865173795382232994593310242513482643433440495964288698465226664054924447964675067506149028927044225357913387057118364165032759865456601096992906091417659226527008802240364927901625589321799625311433647495397628116899823288924909536701497236501294257025214487585443151408380631773082242377666442886765883821526033190375879416057289611296345315147445603298510055203694782701270865066247801247269028275652313871267392699070246897464989339183428721978816930012652983675930871269661197778020193963708301451711959134627691483376724623972349253996250841830135849392655219232392519065372024173392972176579188347998080417681924830310448916935909093045942987472949499214489892085582093129596467966271834635809877629386144921653860448693356480216473111714657796032562411611680645537898726455767778894281723259321340563108963788991966392630537819000943565748317006004267602170213699049570108846783729608319579633123946940380329895759733900673014545131654363489035133746907650010756076916652984427440409924106114058949179487953386069593089152755804032335988555890495715437504503012319749159689549918092137737424165203801613778109428049087510605914191371194657964961904926611846235234798545293902452162245370166112289583130542581957856988756792754488774357722159896496362970435339418518240216599589742654304619829290325975638651879957712046845569491810648308462454471009710073066687704439148815346634019122598408056063883382486165486181409522273569659472413155956728848923703439029150066692708128657308569495013925348545135343208515050131505446744391431599735159285187511519082097033437036541157930737609006173843928025856176181688081774070314238527591025045654743978575152584028317579875888932578281389854277405879946201160881752414136493205518260112349340271608964405828439478080407027911771564648575399091336917982228014861184385905723336210860296443604024362226202932393545551466129864727641489942466375096714051851078677146201571034250196986375532113753971904695732473178709476946601390017141215158481728443417272403592993390216735893138131253884918720904921190777828169098574478510926940132528771416405663997402074073122405759836609571447568042313933984298789859190981341723297630951612185741501726682160515933735603255519784199839278517185068803590093033101004454781377075152408929446462153153634018710343669858765010178770049296616711615889728141356115711089570370803196344532296522804875740692675760337263728407667140411536599749701928720344182148288166856595732862065177575467825046603183910080028596545785857596708088689443744372955061838929692808956701629202486820928076318878054101252115710151601618089839243278282632264323007234674409390063193764787333191317867383751477106252290514093958006239074247437804785291484322591801446770969806442694216281557546203767655092474795410759313275301248292588823446207491464644483966382987223515791951903140621851820239510008403276906060522270310662977262369726390797254221820697044348293180491475938398986917014417929557719880461707667585109651257899390775290130157552277501614029240400760447289152021257310872801554263467790493569720471769431939290730289574005290060301871296288626157222046146975566656868096971354095976716273217020066409658371978410120909784850504147254780122687146147905878199378649649669189707519907846311480763878888636853886910922298588904792128200451484602029252159451962341514432042789968378772648631884584479317781114089602615631572908077131308817437173964830279636243726093616635674608896158276072384908777528166757274768712048961318395924711987960922774830854938369192702823917020958814707771278414181672557265189573757765043943887928816701349047054661097532020291227192441003578118927795082262490459219718496815241246548330037381471795283601378639020398349105675343491656500643996086711098145982850633729473139775163287920093697905500899108840694339390544766911418532168999048697843764103582271792118642504617715460286468316376652750021726423728589202711523331325348133284608113479091566682773945182069346283046364306926200859468015148856287520762644990247529519664409701215569469683140428911810277116510742241277058995781509977464610229228228654643762410292763078480420329932626671077052006178118405060672298146758113535820950987084525938672134098716929907082757017310443036300566533324123725037869490239509708965088609709311856769410328755720463071296257079812770671255245788779944643858361281510157066789915525730695183761532314041031824904081691033192996974509253913761907656661467989365311576723136557691644903481702921511448163564306215746740505624292350529259379428105623718953903903514878918191459125830476614723982651577323129207185016398593255458686820799085786750790691816523584047428941100827560739296838275561191083824355471880004836895651034568694335469340985401173995317185632445388703422215144295100467314265884555272226030763077748516047689658762135734030966067460030781018257691992711644614911171869955952167899090420528360416054831814732559371690016558454427386122826141490430608840089359265818337559521936764302624290015370941186296187614703551858225730131831233860883368738037700286896247601553027658249040449537569639300526751963790199410933958209464900197276293191023194425448424385731795488395637904579751009268077695991353261982449100619074512531422165254273873373662197301570493627119695805417463685536474884525081641398050892436997184477950011462961275014777479257841984278991274193229120725093082650627045077029322679406162523408124722040194749758560790423990889694725796421981921617591632312499385513413857939229289290932304211387389184500967112777309122366775578231283788673452837862906559173774108796603703147919988369560716431472329892642746208175183448245154479158216700151791116767966061391422430384424984676808198919785820894733472943608238637160550604677007831279380410974322646106424656177285052893119288543030303336730760677768970510852172755736218030073201430277000154549574556519168128020746381349700043550628758370128538468900313773091610074387383154187042733826977472579443528496121787890279749893752372337388667678616380024949016310676451929838950888155162047966770963234801379382669184664006055183800586649688089713909252348538055150785008829162521493045398135202222056218960320924227813647008536190500453203983811979087307307141592618430628685640896893438243176472410970987553762475201056447796161748208120199538311129435274450041889095877171637136479966220612164114375901735881594213259736128313495543081407091507172583282048981708528537995986229511499699083693023921946729035111290308887385041432047967193336723277428307765496894617423853329599851998312706608763937710957295198942809488436259650537011979163059903019019797234536223271725799170500482449162928320381078849875226455740038029076418777009521180259516478049831850487456789431117701758569001206474650456354989732935605822939342348672522796619837657408638791508978718015361719157047892151184450916654092567987806664745310918300838297681485170840484484903254127695766773884056068806227991091252767703860291749140063147617557982488143296996183069387087632841209722145025295270676259124623207662759318929979199403753602109931614229632988500601045331463454480587754587133740001238016918522043491048879298704411315060379665694872743201004484636303921995432929356795786463272729316159566677882585836788321146219209724040422729957331457108570528567035702165717581618683909612545566936080125934858060541646514236656015262258431422718935089188144197455158574509947731704407452359381330623265847724837024366165043780699329894084947857786211819425675184830447348651025693110502714281056567674567164249988933087181818111583970194993576948266800259645538422193797711735151520303271328189714493787431215918155153718964414123418652195476171974813059913140941055239648534322957844639862779520089110801715581258145877049219883785326294682367506503491300141530997048478488928644122472285872720896345304960579427837911126526743460761424315422813906784309615873968471138582599071328670275178724168132719988392625000056320528864468646265040482711322416798571320242523818975873885119759046310318011142449693310934660375015149148316278294226547555543114614451390944080178060932477098090275127034400157020656905659590488395904803004801827929282515096370104096635491545121589722746305177823002005980876289677806425938989409342243978195633455661606403022453430894989355883435631886780251146670434207223380915527631056187503492641974621843199732320634121430486995025809067649900347768534202472292239804807463843434283029184857793669194697588090911035118346580921542985877338855777019728338323668413972423570244334816472338875352745857859800993384300234104062993378873081606716757751679766123425048144563677703623633866048555071061055796697022470420145222111363371475340384367272695391751131780351079739898446863287723377017987048142295847937114096546064542205467998224201019673625302580157138899153023756137173812169068250270467975450241780917399420020518240030230979397115976135363666965379110974257776619099843800910532084813996832474838252957657058188481262550883252723109077250619629667059662621806788346540749922124639450631688049114079850634750695519641653054603293000902920918578495480242341705579549766300762432259905824220410348111525314811331661608064536882513558475432070908291832937943415260881576697219775165770936643691615110804444704761452909578548221205199747811857853965808795548245700929260501508423880787216226986496950758039548618212242768867021091253497780968625788793891789284905224691811058092687890379448720040505805792300029208583313050635850441591100976015243997542741018789039468292942278449389850008344580811585087885777539749577436492306245745177228026249777905505548930330833426105236763030952150086933644025311181794844220389261886899324104146902334972223490756347780402098456032050592921534285901365262657594097365357761427813621940954377320640588600674888575854106120385654556168986602379682910827898815898819079401920102364678883833725974593607191208185229391731769776555223515944436906182044735924677940270508263511838991571758322596162171636250402077688997293405981196327810425693340325446159630276710317550191184371284164597126494219192983246317167598792450322670444189308231324048471917076026638803862392266609372574774282910392032474855445817397431599896204113905610767256745215344633223977159876914456605744700926530079187167926668407197591974942439757250788162668260633089668004459422493381194572256545775011914419592470776665024473281769835598760498148517374056043620862089480966798492521781904160546779077699760589266543585062025995421753327689613193797695366774099174195080915226905853361475639805015989340340476893955353461523366885297965007829633452681228498115636841474835960847330997689913574440339760673537732983693808059803554243105350064421819733256049515287380308323378424842296713662933728235487117903232939447431714924017044182839400748709194382712948747510716675110481304767191884196693046726916629401875849099695424571867534401517115960985963362839508199905532012956771357778435450324563104970401254783943598860348653906519938340189912546255026645799144234425644861045475008872665870568476900918586260374630249863720030672030318894993725592673856972878020270365379690688315063108534880965403915392619202056700865883027812580199538461284883465902189181329753017953499652703161390583686332446884932850778828506218790783566614789379450461529517954418269366861794451553141950206697407083938355996625400645960419509358480817717663608355442654694251583998205376585040314965889112281386607078643355028257170204921250835647931237151750615057689266801193994865858271007548445264413849178348522120768955545465920221710089065253499396816722518588301611133788182242103852072479253957935178093929385136786897131797856870332258247336364810609292335311161454431128696151010654649964568683867895065524234223786637045166665732081093265378859609470239177012557925885287209065437092281679028913663096969440449886391160920154374498255059921441089315501717524147512374663704937568419299334996989737822827518556604800049968113652708698543198867453903882737904809407254677475596348051108909621627689254241517248284912096852704935847238254187512665055395465414880135985799109695961410761942354608359547682721337681084784558263155562457992441569720169336971004386664720593492714287912063327622560184742321848714307437951661807611648189620396480394716389949289752560937536158215741985670395078510487571646999381491252723180202071752219832351412597400508201091071610989192770744032040769519849705820425536094987019670845797166078847895810406518147528335078066186472478187247164277413400059178999817465087951237618695499840817604606264677733508830358115460285783828087830827444704837141723077454042777410271703321928870658920924723296510830865224114849746452977295634304364745422734258864461342623263268072821518004540432046157008030478473206844192019974508632982432161653534300789930338003772157267420761304642229133442877772807468168927689338735968156835178726328289198935902842502944990837835724447477734901413390266652254783499105445807822143003382842650099893395905838748758253104477806796091504082080621827515985529987997442295129831923529776888928388774318978015477845595941965489737170833613265014988762176920090675757479259597584702930780477003773439571887690940963721745053715305129087516331714258226528281194335309799430840549103342545115632507391387186787359611129002090251383163526510112664387408155786338891137987687266251778340981551446652980110243390789498001118534861800159031705329348454807998904632828443649196520683846148260264154847079965635603187337653564237682888797685165869155285342279305213134208124352382972835005225322226352186888899948139781237895950938867017407503631647086119625522087502026138377894308975839814881288413554999321919645823190908800744783380739493608489385460495346776521021118257774392313151915131830374189358135284332959272875188010177240552925973947909748904344831553822305112416186663375985169553539261152068075974821864703621510380481555819008607705975265633628694657875349433646935229728093058005014653110104732928311321157630809857895621134780393971390268768957762290893166190122830697533407018721314056554073107887762204247301498682295193957118825226359560021118023655359989482933638782865060073028742577809532748296481341430579217846382697578500542665554232326379388356923220644305911511087052302175971095366578624555959697851578510250343842177002678552162032547043814217252266537572017836192289508800633243955360835951387663514580869791642930150398539013353724655537869048350037537702972581737537431616607648380085720162488170942238018752985446009348362772933497056055578510982238922710683624235344634967734493469171156912402290037821399957661490239004026904262118635449460094969302322466621532981441313127256241697588558597696476954250343985038726309454546744463145196014898793483095569493088979937006939912376668620349781675272951034987402214653052003018781381307749292809444688462682571991856497265833147893709579117864679057076941774528208749811148885514049697371366305456502886040182780436390814231603370264578037356912542789252662306273784838763981485576157311021731556966414707523881318222881365469636055873183955249639173578850141779426238787734910969872433487029460642054601000996345812678426006915606508370608169106894114600381995072225647119883276125958025392273456836126021988632713842048561017395223766347397683147809196257056364794363897959128515136835569512330606637863057724150833188949237819384376829573036056870356113279048228062292055484998488784405245857759637257120403748872091789275515833294223344490719238769270849334553003239574698132688369564346380643240892802775288917933284650501974238772917863129010038334873088406222750030318814613248559802594919374645766463693894385157476338255442927104468210551216419561945800747373880664001930854518591648521667243665308418619211092116431940985098445849698757094481629138138711188397743183403784285643090361333803088312411644261989427134997169108595838559248484017208830399587427098383405406969607822695361403873816897175731156925237980997485151133533586304452820875942186667440482892362322540634511959679812456104741966520942966610816185568536017954681816091906808043681254292645134997811639182209450939738784234287149967468489508174312312311362381522706826928903144547285226402762259653225134403769273895291926483056159258887066415658731128805831249573737953991051806685107730955389488000086310906425011249888287916955801184775188869061849630727666104612525860526832385839817764265704822674849174876028961916773728607633135581410469330813518150290324468495431879399816760038278540997301145068181256493157095313069288464632603133023416752301167829632699654208640812042277369530901326116012046424373558889229176787691260531041233139583291143328866630561743178891844782012966150790497849638193334400965078334680045607485110269041606150482853054132314088203132168474788418825265734456911209591652120932181943159075782692510611680572982618613565178599127171042978409254902300656138255024233890659437808184576228343609269124175020800538988075253979959247814186389783927508503381364558874997975576003170023582660378993239773253542712510312580802798473767498914302281562777748038270113184527026799950333706636787688783004042898770069877381771289231160486063702621172687391555164920368353991891397084904440450841313889316861015529353083752070288407009781579119268920733695325569237745160212532991299077299098440638220637245740220476751426102253118754498134591337615195046557389548963415350899438542998764268188868981523419216144606547915277832520704594116460483052432995504579025083284169201021679156238567144063672406150749981604622640410927679174420152540783529889347269765931870293169966272583586997704563258462861986063417750566518919765923941130432043790562852251123028913704629993642001073406017372104098925770043492167163523862281604201389562312319176105114951962239515237012940029770857291114213073836872015834456353169671786344933073149101758468372040183307014273308150496480657448938492027532976167037875722017406125972834198421036610964019522588544005948376293426101314777432653979890272015256784547864108565339335846973758180457730114882777749743082549773974591128318029172166472900337985695250054703675794722694286999272293753432965947370523008970100812933791427496426077503577787518656231839510998861175802859720701322374980740904991487458352541072459373425614545080317165788532229603719697851685950995773100472205581803387867511535046996291844856591836954386111697990953263151064379766466610484925974137422262039050363050507569610029340890355699210889002606014764753122018590387652037338399850443348804574902478356612562461377838497713824972751922337843452833665728928707446957271767880726152593916451602558078120830103325078804382212528071294866797091757021056778115343451830379635283973351468282792282986415315521429827224733182118846043608814325742278048257306114933616659647659002433658694561915499571398400579596553626205097762185734874694426712979066752335697091833648336296889887491692850427619495205358636745969307858186322102364546093741208170100281631386575882547515847634510777881868751757237816348648771338301527906277354982050586975070376337788883445574973731497559181055425702817655081077078945183040489803207329539294861986144652238927353721528911983416846710895168689339051865921207136656369096797466796748297581937129994497242125243159204674291923523174832718961773946718741127543634302381174264435921543818729541479663800350013693950223865054782492490934463376278850095886699801924963151981283315765313369422057872954710770855068110834260111910402791893031555126953297685393842981831606485799361935474009298622589785324210498592354805510150092079910312206154019131192498061472730018714243154702789295514339521870020613688977387464255656755964907419795877408394225986693545197876160747759629059305483486171604866527144696659029868750303796984329847449599295155377012509876461287269078710312944024790011964217320179430872697312164919679083036664071138546348439784773304930124302401975010197024178586669666700089877814856825074749963387027108167443919812843346882768001522338175459690038432596792165454460318774454322598446061686166753146314857481530996381657201329517477777720020404016792237602475827924146491434555030776009347831311589389531997253691987672378416614519362184118278579150800917746246921097442827495812279109023449648276775638721150067299652592031241589366386622823123697212711829715787545150957840395836572039959889643520603709018291717534016149782730811793482358323073385480313311708456107669936981524407840147393555620463298504433058267329037496307483564195445626749889515189290240939726416279335547180101439391255925290129745437238372435803280941365235969910758086352134639869435836190605740074455290439822576626312480544964570402615797016231377260166070272796709916115962115659812514803623190816772863494791136912427754586967124376350064541313566857770941587263024709125456338161770344785065911019564282817166811810735570770414349887399202028698635810864814666242871789996902001149038143156536064592748605886907813149411378093190465551914033264714634976181537388113080551102942142560050805033782625552941987188160520116159198306709244982469504287925367148411624298048575899684217810406955235189508191860488295941764819348041973970334001128108804801273331961741033246658533590176675232103891185933153011298165780575978351357123937230586248380824838961942287338965442481749005081577150861639323980764243010700255325752999285398792826037694800269682888900208520494970244417314944228787000654631151274866818576773911888902157987418882145904896636714718010771830356289772528256664372991609626853276775028667852593899052428237536591862023313577793530757222267710315853425314854532036413199818316544035062952901910043001827351208133814061362141009232793136916214741066688707942342985359420355660285866643080436078639353395286784507832839576324319368738579249418643044892179839667026030577634444708852568772343010754868514434042548602341804731235990414010255902966039792930455809672443283439457905413115498825504108709175993446307173054478434891147210866692901441920932956914389743910258115227607053143827453102615562979556408996056787924734184157491361685126003919506913115842837858166907941752772800777459281502924184486256059248020571166593858828183092972854112902177640680262839156025700634435776295104459417600612194519620679816588467379834320894944987004289767855411788296206816321157358012026972031551699839304201816850561202791506460658061006207999989542608899753681032470500733871682460300881979837348341292290503524922814369997056932231623033288344480498224019037305266312175180256381304001731064640682629916080548828394574868838296094204663726970790919375007709176985613215638117347346857304067356932675706086250148862662914347110970250263304876123144930870748263801042991789931275667846752819741621545963925862438151266104727872467752545033849324340193687424061432512724477478327330385601672663643687822057368273632868535307290776811703421076776584914107641470788656911254427243593978494412729075358030121385372524297855929625460064275239344258432574967212650341125840112274283815116113582907922153014052978323362983013180440000197043865740805618977620931034064035786194298016185587513656579174202524907881899284243839675560531360283077522868256352635112817551711923003548826983760191153247717909441309882123128734334458547910581178349012510042049756432323266795470643550528324844009077991016589200452470464601425205566169709192159691943581631615849420740377898506996733503483186197627869556328599608339993227065577538583705994106714242438706810040267584474418995835120320768651852360300855734285828668690585194493693212675534710608545991587772407181683136765670295531584229872184457393144956596730944275496718071472094111277601217166550261782727328653454351139627221534515005283858249216705083590189972633836342509958813048245976205484584040996530579725941669586996856431967529442611606022558375448990652024320769321521711814426272480552250545492269642663408790258254614928607812863499167686578063563671699602722666053143277378347009908977666332099724464073066626138388492438113806098885827597922493460078219320523593999858617967229653628436842714644212706045834410237909941266714279147565059556982859747462310785987665980772351832354328434596683583962516306905260348554917027403572169063682248473735020733394591062386750627189914515966639605696044912333724658645153312496950151635826807800284801701690481364594110378445020092321462621980715778764615494137374890449995735583947254370777222909280244917803170758415839780552598710822349713772908177647132558666896316101133226626924274565280746412156777070530916546591664721867687373754171832866096263666912360085323204642209317582664190226192193185385794873595246926513490157896625069103967373129619890478313313651224004893004549167714932708099899532726421012611065940354123497362716844702712822619748676473075576635892298516550446658126166826262634016568248955193149107908229301481203056975420451718163985311232265742035143014310705214818113788028972959243651596467914060511228618503913420387342457528821080297502583901910051041911986625500683271468283985507169114949046335532359513145578293465623599379544404933523151683711836463651917744893042258546129378537098933921851436070800768336695604568162785670041201512807983970781234428915447189067190546984653146807659493679085494901141387444898910364600589825489728848771102286249846270903757608687371903966752295136766551425900205461274779139558931054000161582513949171044282446850629254487272393113487800957583529591284750516090671019643919716435033321890141239637281333493241029833816369558258808777871587836594724314588441780558860426317234070376264952913379603309105976761962814091189452672971960896082606117870709289839830062939174865288618807905426944388539340275993826947591543111952026136254372388283659638011678718106226001187615112813908282317383479029355827408085777631078839175655964650399676421988842817501678927934125642688075226567777103496143259287993746305039106578235080042838516411157356471814724249579949622988724999184092722273784609500462564145306766271951343196034662863827988381613407634305161766829452566288502304803177829206123509783217177360783426453359938934801674522533957790671089325329480872870003489448983783155271777087958237002399802900054766161759325919332048017748021818137274682824567287552292622918200844329197839591009322873594401994462095821345133384082094983575939405183053993997639286428394011243705500274977803635012482794223498021500310261103926316735985045163416468035457702832680001757857953012557323635227216563370686494810357302262014805620712827972064477462476857460173306779904769202799069013290137873078188781061644357946289260732135701733975029377382355751118831251113789220405777847676560407357119139259383728463472046770542690323524350929350756233160504961646716152010368241945051083710565423057214081919069404402061603201021944854924554273164486871392259581906321188261408318538447369748662571629394169010654057153763683534311737217326219860516602225453067006401492143432028012463900868754398588733091403868991399454159568986759032270356537510472474723006188162595901232827049333915890349992563853861867229649681725493108989635442157170725552270888860362693381947308887597262935264172075074899552599328832717152231134457299939634975112071891944273135664985096430542276257659523260450455417417430615261358824473764316640553966335291096181491819198665322464029384686502731516203927149099091201799118724070683365893699407471032887233374046784064557742581866985539533551409337576829439480597375626356251180066714749005828527537290462523729938323176078726889229909761684147088051531314288836352416316356531275603572218351797053107053196259706335107404315351101823379870997198479338297571865522178514226601134541101403282504526399250281467884795451719558032359294106520877338186413162358821504182260583715007812982722270254405188192423619569631021295637063124302864059643733224570281933471084788634383943737408073751759313868368803364076892911900488231312462999054348929670974185236332784232726299260581775110021305963394319089975980633679288053165880320233073405628656882220082074019954756248796329199522378288062760867964374864239441192837940195057876517645589621599132579947448033323289402884631790346717892232372853593472281569368070398549499526137050092727687030715246705491374932827427485481714014656864135845346856742422867951798206225018534823527254079178037953093203860032770866884063045678565742245866000641748424874741907311072976469785515333709832938647597717310566956985555951406731073008691322850638974595642940805985273407901152349718187508635638310204852106300771602179407211140016469515703189198824033050381245071717791070415088525312345551778569547480574478887672732234260026675681679676834514590092877903527541234921573832430209410347538898679779822170095584453704869281758818824542229219638875318222931939662929241186231040618704116840314998716205148231793140660929054773380404069830898015167188199613344331922426054535031694696755720773484662419404324009415054798437555814066964493686887656824381920492679142327129442213840013429821158541134313792653297821877632388643448370976968442879818307691512994883095401408918273689324011510441878096192874659533912579679908773748357168552230439366569101777540420530298286236246396781766000510907217929980202026350273063233220636100281475583892762101957401543489403672973126894176228001732166094102890291587954882002501427441924325685354239886789649993324832702341614813028464671005940698810074245510221375182088547910619020190264246987220184379015499497001934824039344398200927566534365222824750559500568955462674090945341707920107449623973219526379398918372655205550892776461696501022691642612155233786226465903491694571613552741510559162978660014442773991349596642308025187774227135571178666963772384875850064937266386860822025034629043647985997765485724751806809764907213258238087765786313383824709319257118659479456601308231346236698921862797415747252899100878985484344058336287057608995535928922463756164146224852261470353660491328871605538642767945828281700284206348282399404164085599350845480098406714011610467987594408254008183988570361422931523154911746588180325646169360457246602941559700938652092894207861247714817136853782084808219250113983055073728083825741504345308455425479173997198436551800754424847694423697457689592340253547555020361861494927718852631508350841979955567721973482924637828899617210917986845983391023118678068403772141191681269196869227708313457359675125980801863128743511810138580283120178070924519660674152306455157495376792325299554444423342072911218629631693831996484912719146638044186637522542614893490428583984363037002035939733527567607295210349200170945732241603962432872753366863188141280919526805641592842321899934656850126725887376675144374602395873698927706102226783198072223666013467042612893173568592199353343386518106047491354251015712469941616732354480085343982351110831970708902705414479093050853907703448267029544512517622767433734988061323357427607226856726820237278663645910153025550052933854726428023536552670607694493533385802994034264764646655810021778279168516134349335705339469355786286612007454338331694236335258028207535268341074332209952690901143966206170950959112500631128306526518399754895364361702984136913965673295763938418534946831059417732825710614050101043595278161534522461301965583270389736053768524461442829414819781240219937521334650752097955403313820334846210930190098011618070690599278969546602583747975112252872835168442696813105294478215361159206020860462820460889678126058079171984479411548730686072882585011431101317222363526675441563119881226146972321075780309032827120494078962448662195011359269638464288492026822394569007806708371675110301529006213724497496391588862308732746766748799827167677168164513614061390224557633293261163010433309408133430158594849656487145958950253265153257883702033974068258978883255803304999083783133202680115826969918656386543770513518379346689813405862988681591686685411941977813264673226441374189288964947168639310990948525567972181689539715416787914491352022541125798289341301987155827216468776849102477717246366996583234387515867766491813730704829878138039301011581944997437959448284965008389201113738028315903396398692434916648896466620493461038065763585624277127294945271012481610840746152174814873243989471570978355774882644759662350037387104284765812854936577834615659882870735920172352361674714492235623195670096737584626808545996509497491199214733752822089875876011583978587387395157420767933059076091734189221625076129830985235044818931594366898239348136652707115827136658698968056478504336922707563754849237777077213075461183653240481597777641072164081229909703400038727768208331517066323386406031185492432283637452409400095414341235299641903195669869852459022100152175142356103859739320750376530835239218640127846491812064275906941977143727312169243143914309554513869205284432835187970088286805038586558185958932655832903774903115995417055517634275529215776778343397052214868337751191501495608631409870249093975412498862687132356623376954316941505762471204548518997834088083068591732112018067299680461881963781058631737313018342107039356964044205675538211261728695880715544615343572332070812428695898969149928029214204111126611561705727883653120787057655945163895398813671812850342769178548938893386392475265201413507708492312938415189090625323594741958583010350747806491861367902875391063455680339257502433754092501611079487908204338770004575214851505121549257249580419973547192072724518237796673970098623314078016112367011866534103215450094490119968362282672577113026819472556073543107404022020124442957006665359524104499228571607750791388556519714274904727432392132883631967046337574721725815449555726500669684541540702385795290407666464164521912918000536506429060227698763572454686405431701075552436966069005141004447736164425934140975158873643261938019465955784478706579244567144385268273468327252631448745171478043316182292070223001031382552936364729172925960463307217717313309426567606320056480608416908411913674580718873719787759607016885313799323749997507557310724636542893289630667447256031530629872442660767705741207379206857360084618650205167204359355037291838516904219221628844575534952197015487867483147336728341993934977581443509619816703589290160409154084758046394033401837724751954113807720897183524397789348269401437420273082554356412136721059378835938994028824107837352784348412070422559898143523274307060605047421557525070359084619616511475756998182158624054149891732055223293298162386719440131375355498942175565446276902142644277459277869948128583772158780114833974247697270157813145207313038048734339227883884160903705966477852152212106071094123757634090931012036165396520396948818549425099192865976910428709706252389276867348263721853725292815722880307392721573549489681377475325413650183521130077602193304142302956962927161308071903896698667347776688446777027067759202470199099849936545897648714401065050517458107363438954736509011045093593701312156936090028460748263936710630454314257727444443598164359612958537053023670434510930223394601881806595262673241864009194557294407713867412148451203765174489702853641246818292440498437570117087891740186393128652810444570367373982364984044366231556218201654836246631458785716897569084710142542980912707811771232310237001323554094113759912428367539232810969575387017116129692623361266752172259509416121121923077799903071608857456188859995549013727726240730047951433872187922325480659949452375778849825115757633668836856977859407437515362859246935786247226538457706146244355302263673336148540143432260025433333990376241608077245906045498363052805088249368122701387354311634307995220167461975632394253254824114810806212063048509003767016357120181460223147594172503007665077145832334716475101240907178686254813679491033895973398512770813114655579348739024971758288648042426756335367730454158619703318654587118189733714258078302084281604203413319095186495733798627432091287017759948764457952791394845160858578888876137839775953074212175339407731215033172842036600887412304658656978330081488217794086093979809817726670214681749169448137453853636320701948518200553759220433833526223846219203449190314230318102959869063179351756090799231441410951833474356841696205947192604770368087706411845950645046625603351232317291267818929394286724732019030946959689520621592894137917786896155577198886267793864554640096531964322769207315217857294644616294447360011615454588529670895542759460155235064559818385363883580441071376910325248615350452262839898227373222579726881443939803258247602678162078733434793568063915761647112404818071248150353082867412769548952428088077023952746771003677099864554231554163086655680592404873429628376090319729570777659145513253914868220581052572731997770367903616326883830790641542171683949921963201770071223571750700824391403782488457852261463664682615125738313829505270803172716868235710318220904438525881952740451884802540795938124514367435670336187949867765837140700958374862055853944636934213557775511275967175301825608744742603471673153090357631148076565794015359047828866786462404480896825223435916984864448532420902289292973744615394856050833932189483434014203745985626094284357075678372154986646256012067056888332388903127074633628657496031588180787939675181468454755790413207810272019644836704820271888785003015949659293271352208418683055080178895516538924579349562775050496943565608104301948134762617663487558331597756336260477797928136194663391855942041053130332519010726195459931872786458399117119891476569412726830578301608445479718415613172529999226509780010868183978390725852986652337116675927265066256491546777012466811362488095964316224333035558361938779439080433808132140037372908745674896136839411777588657080609210070781578648973135065095158506932316759785555103053813106124997484108393359481992545182816464587439661026736620657566766036523826323659876173417515096050136928865575257293564434798523437162665443950226943383855415152920931038520910236769249322921043724582453281577798696473904201280707178298956090744429442005929626825765529629148242477995642225855024870804065361886989978962577977080093891258729258687413639674693457196111038679853880338199393173651808674941300927172122380487070981936208784607696828252422958664325374974943762319183188509271554588435147724208330502773375864899229229051526465089168053356879815466360462104756655842306288588173549609893104993150901008987176094657233602109209376086371967302647895657680314020125431619598163006146189752054020916244521123397947488784362386063101159221451287329041168070382364456478759018526274694271691544434136416870312567452392815109658687166594251535480507166051100109674966027319747537059515043222037298627031415387723579164472818641911788774339111498792772094018352924490134552237977140519597644955671989270159970476453573584568811469387223292968979695685198961999128971094687295600968632821425984056261598675583428485399646957187840617501321194308160402545140576315292786771921065492391664478227204574775699509771392582171113578480617432921561406570640839587590657684455159095293536481120292781193740669630863620953085357327698426958158431655899656788902702517513325833161514992856150174791399264215552897225440895136608290553126066003881122515803823623973429761514721046842217242411500963146712477679306618451905252491612162415068058626605457297337326374526748317936354951006487335559753681940778595301776342684032706681735308608152590192560309061002843362189181865574837099492543960723720000026537392533555834070431524787463569067635842987452698836335831624585222296369018279303281587716710768244368957682094354075568351059330323626304698548177266466330736913479313607501542856956851726815372869494381635812991066928273936532696664739740580469791273186837136729299970477112963499917416933061499382017905582034406758859714536710329564194134940849070719782027551697638892419104532325029769670585493088275835890156248489441901417007551353071718373566598490425102779681368462545578891179479681195070012266377276492272891552349303593395845612689762934311206064730021262058801030619408938270407597927857103828938863737276539478124992996407669688565594457194762003452621264099546755885569755951632763734065912039148096384369660811540796383852030480185842904987462483741799287933344528635824561509560412767792576893432831926942253447948592913052427810895335785646863518687710472512260692045667561497931194334125197315969716471518097870549606695131414507969952881764065415801125047780784317334391724617760395943039562893299844007318603087762930096829542516421401698544452175737765646651745851424807777584405310306457747197913069476992055880558226339022200522238221807496310634571909912547230875088635887213698782303547639763812106600459847863971389616576245474515294408450772842302254922448296093251454535469512021426626292950663752751827311739909901294988865514340011970376810878320099261910656937023169203946216902534853298978742682878960804856900323637023543548915935119004579067131056494127554167938123859966888395912209732581253043473707348510911018476202951869111592460317283721827597959185346075453808089866388523051761859643785763223480210624611354995206369716935475489605156391218760439184314057937239871919688550841676122933149983208873714255018693773137894782383433189886726953224507397801059582030001460407946795884471422319035581893593810037505765429911451452785831472363143493174239635058911308631402122192779109014344647909660834213554503857435350024373290376117462804158100635436481023459968302102280502129834859002940094337093021779761893028124846247592334919657789846162974950316272833766289302337903649786404312368329666916566662282828896880164901231759029979262508907320671335540387964783171286674605177259948230261904774379062846092683276349301568929150139113621924939112441331708085942455424852893535487545715545962355539251372787237253099116651843451644706713992836145466488779910129233613904769292616734947524417492068424126435981531637355189585770581746473939294269009041025965137283449578891692253911762652576815651579266135327860018538389566741959705211146653414871125469179460437138360417111436107831090450152235896262233541519378476388126950193968517088312695432465031432124220267592479335018098250209396391348028799552301365681656283313009531999827461701367916973525207959069282608870794263132559966044612329248265923985071340230356786897675563930283727666963356836273181260471272591119296227757270201298790199877732854803238726637600828871566064219565404542348682228227949744488561564719466594202256663253902190853327039062054526601485881135988665670678325356031499918021453044282218545729605954122402288763586339327394746771848432553845408136830392160920740837923714533344724399604442459968856611250596824880137905639847969203594853573034961139129716936661962668926465222130472457502804784985658866148297917718557954591182507251966001641218786909148352101299887760855720597849938763781295606629143893718775658581280623955329376714881817286720943750139492133748771566408059781796463799892665634076040800518300478211119930640551817686807744348330275530248991680165464748745025999894500635748677553383756809887246842617450193702574609288810077098518618784417171151626585400211993340815584772109922587815743772524551675854855745557825201774297106921992556131130526583006215147588898072292579288970867791596566728911904681289339266105572988885189422917787339801159140191344231157768326154920415266976275197701238594182897932427022490640725659557139286373123740503571662616916105975621948842614809153326975821894531504415145483829919734051984918048815705741860112329736900919935585637389762318563332556595370841448871771938278148334118992031631853825621249721979364323123710638395585960450958266328709266069078813234009667738939760903987955745062858438311348391218785969518863051922437803650203320683307027984645406828732406088643496156736716596772641301281046004680670003200261772948953440976595759632457499280168038724480526966879231564775913763267072902593838836817405617291178260474919006250121748047991880214511956143685843610688941986185678431895355714429189892207247740200616537726527809833539713326489550023956501696241988618022261568002280505577006722295724145471486375689959895073285412408982172951451778465068169644839960083894646691641128308056677998450205775995273640377596092758261373923587922200775302443775619371913897286413559572453005751868236786888521758712033468581387410655235847419570462413870771561549947717246222906489277889879317392951314929514745928891571744385369397939301956611652622893598508706463335495024405174243058264014797735909054952326044761529537068167559255292245147472277485021669246633432014899625657736538579770596549523006212996527462042866166105813577277188019215381574143933268889897681653978774504024797671949504115844560429155864922055036522109589710980342996668963827626973098102854272631125363816593960969942898030748097651705212620192513534801540703572510399433406486352443626786050632727335361202579050444635297170713857717764632644773572140898389077484388227731521983175312619733612656545963327892404247862038172837770460432116679651839987551595204326484540050795950575727691002733205091530915843036093547130109735621330935688809255887693731976235534829263183886454047678004787384353110560633172174575879723362206861033884663926654589617506820220062853617843709619746494262454956138952964893999753274750609106931742231004462909778656626128816811306998863775356328976737359461025784970414405589478610748306840789176770892114796264808539822317086453143182882087571899885476657104916077789193572175536541249494848372012477430602581319721522615858044680677693354853430767156530350831130063322005856556999578026907610294650927466975581887786684567522026555408036141586614175552079733580024718403185875782231307473412532997265757765220969872563891201074391120458210582669972041146079542093023738617677182438862562966078628592631303479520144929340087582228053483679624918962334302182059105172968211446137495459505306453826274511130811366723360323168576712410272414861707222625419642632525702410144106672817976993162743003445710407504573525582864730435313352051114209987109826279191990023731443633585525671347424816554203724442237987600965973028069822319748745886692804054172515171890928022513142358962778341476861655774998088061003177043559670622578837580264304932549357916917486021808866939220034393868308472154932864916925402741732275717053016628913715869967680433902423433735291128210181260098374836076350127972538946994315326116139112094478399542914058868073046979583160092677584545779276495518621500534514684230122722171150562296345629406762044261461302256037466895587090642761477307242068721949942370176900765406182878152662558479634333670542203432457495253296564692791706466750337438953599399345818813494382354079507029785291039547131839365745660932851043257634842481609175726867171165410034413108394925806200852297975581782494960315987254207021609710718021878008349990361609802095380414731082177355639272182269509411376490954900872381866395267918197044215453564565182260142730267147614768412259808960900848680941947072840877831536566871531910062736818942695835288787134989867199432415130882726433045623905437117008573274140545334929112953244577986228653191804802126938685359646735063536371622732053608922607422153297062554442952907681349224102358226314559794761242022205347849884058229030427606443600227506561234469287105853769914701227976517098901225371419548538399452780749218871811669421115662361477264239328015940131939158798771802600350614635881143299835334088467381389468246167380596247845220063879969643055969250729334367964067527086311528683421900281269193269752464370821167489799185253285592160881930589885387508826418601682461627333908212308888479135245204996295327602805723853388563498011452309550169732531192239076488797083415394857704813697021238353452560440027007050024733697626076694301086858551991107797568819956497483712053015924697751718260173951985395000798044556748723311938471177272858503015859164074493432072467972267605426676349333535465455249313064027620207382623915017688365276045324514387321915418958626184530565901332760259528472551511328871185415215312687514020877669738813479187952554838677585289471140335608780665439954452535856615414961814524053322836248128522969319961764545751069351403811930116420799124367484193282097395517919678295449801995179130704702193756597274273910930634102693526555511024263019687558283075515880847597986740989299123664407324056925572150222277812864449818527479121981458161243530105521436761207410425632128041695341318829807652596316470088950414504149038864491256714082696098474047535360537337937320027140993181330945666473059242116101880790708430392743675575425537288368501750000738659291704573848023545691200506213067474670540521814739962967363485044047905360201858764392584352794787062455761090748944824199853651642211584347636070975447366994029661470889704802249183029265543609378407117051775662511353141045569340107825008177933017688170170709330496897320581599263167495100083671040566406046624276329317492052266420078233722125503168142933675614081125248384325423643024344813737652787723758751386857793455474489410165612236157022168439227436523833327942322937877330188495070923014026805690396711497157794273824941772367382045768891961483516281249037557090097786805960338533295203171263907905727793610435024031019008303156854834087734011302394586713711482288386329816464079227958725955908797883956378998557015014652533685639034810544245645730373986042728529288974334282047401812595987150206079167776476669867941643699353375653211761841920365762401922108529766004732008208655140063545170886846439413826990573300517012227190616545379518253526783609700797797138759556067988792250741544790046522174781313322878953585308323084576772037503214404744996765528684620168345115844084466263874214262616094486452546947881687132997177953980862704511090838152595883626671680292117535405670204393784583192644657953900942265075559459255311173256338133366527642744663893649831806301104872727566852829891769330223018831298725731904232828851913116935445343507744722655100378788025088308423940003126020163314407844047868572266580628587160897778566612714190818219710634748848239795278666527853501165182499648980564468110136271916234800735880380246064798904765254951474813772939978418259628962096743408108499144901655385411639117661770773641997868744763531858732054570008138794977542665080522698837609959731875630891850305076099966722278067687867273656108678428002377050428037315412278049341229405461818202988751320820874412314916374206748874128130517937971572296498674884703947943432546386604073361645828337062751303163793569773748712432795374093948470196532812038638358323892487237042037369936530365598952949788838381180404813509663500199101892998396333789311238202148646859118387433905959945300043024957947488857460164313454672808926055716450380525785750725850015724764181490096094958509967310568728515422830003594739585194146562210911916804653261350272357695473538489772818625001956413948755836403360721887032454529992503905830269880450987607596145295797265785681243829041607238504148413005102050474670199847903268490042922950967997246040814405569466181218948002234972375665894555175156350340436349082730996995325689525113626419068601618813671668539368563653492458855304383379171932941520844832739439674391667067529938612229762415447368930205367247946008639067295883407104441778782825128660096226751801303289654551189203529418900114243017288867312649845105965091881262152902088781118214138677551105680093151844966087213652833406710960371788021252077721307930590199438525343182197259304350150621537686367743324045667371951906566279321279070792974545289665607282038168593943553675611993875580921078852588752506029520394267420216424295051515601203214711309739902543326706301408026619714846265721255403639036367518638921518712262522971020404432649832558485009422406747644914425757583749277324689514983395298323805773713021915961459588640922808420584070449910366909650778959600473224758947500531185414205257066417723656200390424874842957463354494829788671623374483718801420703244582729468138870342568166466736431598564660240768677522555586964332481734238399245774417828738617708025571287406422084820395040065413742131834731595896883264839531328793208236882237723263112248980446858844699133436469879294428063880234071850078902444127230098798643512382421568300390567988284860642863845771069378350059736807912028285589066133417875590086719109179944573323996407936049887935062991797464021380794406253959661509116087743087580259073037225645092861889037036356261924216857016115095386047144575646470473070084384517306372700491416243390628672984632154448850459189479102050048456523329222975729744109237631723566501831329427460750417561142875555812258141515517091887460317651224489103621465399259885053264331715327259498599309196274653920651118490333764299225812483145418835194172461591228697946687198783392437367827473985247320806405581345768440345856671134669764967547208148459205771178911625898053173469911013678927336246691780199384683761965982851575350333744907989464867454017609039473449280778405692874120499384897146771317413959809044100331143568981103527166683088482071000408041376048714461753531309624297793871497868338093319541692933304691904564985964883545726199192042605811865329946969106895959813478684720313171515923778558715148795641696285908586527607015988223546566649178535914127043497209214733189219291204298923168510475874991766017874582889513653940730659191867499172284740804529892104125621185026964234962556706890662759252221839060628785922508144964611551573983508290955047567767763946656113154350668675433873602592666661907014784859301886620915544520883472287899958245031151586174900056982898249579876291344468877939401882086770955431470276685266672152828361631786315822678922377674130166184391630910234356030788430168549986041124323103568157203773064689053528816133839487018954912749420906007012917489798433621780964482058683836208049040302694983339898072741529956655493970921200246347195620442943456108439022039678610859955858703557742183048151920890463338106880517784335193126476855240019585397186864380550869824172247474809064243239605465868413083651100517841285539637895562035479291032412424696016606942108087829413133311601657892818658926361351205859476537953325242638052440247047843458286327188529978485571767545358709266087229431038832457936409719974211939833918171243055254813844645200447412368197310659820697368023117267918199832724847089756211463926872375482384885630704146061207960657355593180810832580523136459047184408476934174819209697746648930471749149969957255814893795813795960201977251647085485952536374100515206603825059958364719721880802369313915605006159297321684246554066315647538169460960951665018934171248195540534400608311206522938688912293396084286595875232167337052595053175862902080099536320728326271427738281859323600767282224270262628445600514477302969838970736792815525866702836213868603157583357331436147216250408176276736019362717512514400481600355769550616630781102201337099324322628929444879404391790363499728680880725408040294561400252363259002044400506216458638442663439969138481664803338530685768560344889909663916972339501069866970968927195359744011205702542761615742538158661266198233297091239711086723923736198902120524192598907282049502867259198978031890389296459597416663932885814725096915641754264869469187275847087041357998024609329548777358382050355702540592778057030095107023689406061917578137603543589568030036346587541385004891056491188571222268418735036253520676736266262019324920851155923169669627131704767646599130821770831698231703743597492383822044244403985099440494743707002711439648516195570433975177528121201770823403602117896808998253523693171692980225857436542044997763619172352907975798184797001015669570402853094831683349093296090870995578333160188475050688966913948251871067606068342030800659088071781984135187338574015350485851158721740722880900799329541995401092290730044747756431172931427221561048627244229539849603907878909342584010901884726340754546353531109914198497838017641773844311326413387069012898978358811721087535459677369252396461670011527799392857638769524681394705814764414571784428666880522052207177201062292162412505335523185011799981902458338981776618509946737602633915932354623547758956295840055639887061027876350282725310673774932533310029016874935856065481102913826469080782504529764179952346294162059871325408046446222860621653647121724402335545749548985176151324543663038297221923650323906097835613112028949029434193624951774329512526700906152763530078871549142541895950427390255079805120982704114863502042500306463593340381825838447213544917255303024957229245826128658034957607804714109996039118401348990382758482524398582600108637182107749302249909029755326420240250083660335252525470024259854370105019777485441715281468423446264349457846592971784936705057648630258076020376656061490483706176252460846329857011217720823658942603309461574781288120937583828093355283622045037308049188104858964463917527626651018507062243287872135194479863576590497534950225702273061944283036429789330383727239439147317401458479435900523827934123764647171251975796035418465379070995133644462436690429354079409974562814159869293113741789846594864772572384319111920791176883518611912516824941048433872995008115194934346051978842484290163871144549108016626005368385432284521502991843065131657306369101259563045659073707077982049355400967476745501503828947090954575645000499272659004734441315172903464193918831614507926146429095812345834136811501905491081000952967971281915765970113814743036065664085711970626642459512051942262211726198343329878638206800180118059453063518443558674116911383009248504673478280788181377362327556307726711608236146689865544677332827022673927864803159961186776850560192086676459435280979228017898738906417084781638824262060313069760155417191673332884416289559780100362109498713566530342847052056272437058990978046091261966225726653588230611546056303620748132477802965500094427906068713125135998204988305113952268974642134942356367122644950728348330486480918353756479961981834710930506170234609496068168809638302719786885675521124793473442039644291303755481498702370306842917456146372460725001432060455013333648945230288099925636853851486084827004268770555754102266881938522677010154722401626764452615980013326949117550063803726861250619512236441048501982237360667788681961887349754916306996179604557604709436057635638984156877947331118429497688378957896715630390831779567843831190506283708081384941850747559276042090849657212020896528436794200641724857019253071694747892374213743139798666493115064215743860467002958899198803884190274358841868467211646430344761483552196639247216850344463614932372440926027145546059473869552464143432757733965286041451538483663896892097754519975532440156227227875200431697914211660303805682309842508786479411106774133189594610485543590005042022618775377247191220770714320206739897083438903839078010641199266003505947441650381513518745522460299072447843872704664680244230642812837441407607910963001554626561888954314122349388027303967934605392388765514598048168735881559502387814271903308541940571411814106831149685184238724201906367976578593637048779183974625842641563874285629520851182803801522740601679513041716364521554401070421178426585721124491598275346770495469878162591444000041232517462273527015324841297422616690301936147815319139239945898987387844363383042534809065019868724515682023918737190882451488236990668060207264275823826713705488991628886802042299537735868382188117206280001376547803770164701935863233215600947186272478025324190857991995513640509192144541877362889264856980938658984953427655582182759762970057270637916924157008408479814163088170340283383834742288454688806359079074563584341586501339005804312198023898236619791429105969302350518435277771865041542322712930506443043920650877900245723343292545497086890072167562641626539305792210538298508281178818733234476207445409972850505876863898957826496622524743251400500311336822919545662766812285208403179536592209914578389077108853011224258657096932816278747551501462822695075004847311374060727606267123746892037554269597427110511330189780029603849796194428766941462365939887103667230593650899468364212894801033304572877907236316729028604288214358532839453386112088222273061869910612354867997369479339472186927873044959175309299278389521085183148980024688070534094869230352712324437186958854329519726363102790577203139253810380967861910943486771207403588793524421223188710993331126714482456310247662312694316461020865029110187439697818779767259433427718326524388467028538553621891056276359038831092630447741009516249531356959752177192993277549876014153934861251439792152679064088162393325095490751170867274244316601563891035782120536344422289851968219113617978391898967608116607977281002458239350894945101478345417595442166585162827879114020840864419146096528960626219772826929598687473059841337106327176950368066284974145259910388787783689730811387244262799991992949261170628124363087572797594936119107441595983737126161310684928665063105741739396860361562329819211339162583094623372778393357520524008211436389161828662949421019944408743262888539154785220903433289895356203195645286703715446428285210480802170965807994202740622018578784916823923507198687495451718552678728695847260090937048557739907432992334459240329323040068662741971164551109433839342539030361090732467207065035159638600780945014411656084417338239680953441355375047812332532813488834567825597039534465074235187371929840827814297230973829969094800006686570374844439321714637685964385852912870751425275157534394875247874365217735964203714881697956030254516159465318716509164739474209730672278452324657204366083218922643836946921880346155684808661410088553721485525208411372398653680764562407205208763519663174582782541894405533300376729917629445616297103569278145816966740860575630717785907092969577172749002694495287720800238070953929884407475309756822933762324107061149929815946604019720600321577085565603173322767298905918232897374810934398509270242429004099913750705927956292711150872474147603274420574549912966305970281219339182672183011442783356382608990932372807069446667631269993674209317391782837875613112598606252209752513649909104217116191891390067950479145779803991822758588071278953777236075571241740143658108210268618463821923844036682242891803295253835463041680083018707831328825665320636699667617696204584764365746397695369323353670641745310438048914026887747340214003636626915323961347084562698560089188050763697963640567843204071008064503310024449007892537240163579766249024960355296907836837836211029447724346709210938732648946074938424347070808993172308088294737366271233052562344406066038880678059923580440500644978202928953040451591738549113888888630942502447287133702003487240303527479090811602373947427635460725477383645251186578773281298426995768184374478471767722232049896430303423112110352686627380007240093160591729239019794369784346450364451088086604041923272129141537303851414365078922035534884214261880540423436442464258310783621711234348649574404652660813393011176765722231789849768200061502424193247743134449894732557179212070030513847885486555041325370367344430916327419644112476478875782477876583418668474458538201589026323115887349578409906400692889616546515839167377988462747669414937992898692169916844104816597127511444169455810466067529518896917001086356077655769259851064296448073812175558371278165152302171864273605524999470651422036585099501422542314273222438432118948493974979562673378061897881342551051121319141927407726492988810015167034496664513705213866223505207737942071647614180538183525818486840250424573362260361936095562417185150706429611293394280675229505732533035138018961254651885838876658096609591782576987582612297147310160398132330317519994115377971469998386113048451869248100676508216454861346968598350395259315836969871524493683248191244826822072107790870755052685912300187215615715841192469423915099429636601207110878691202696943208057779220726157542312088061558578696279217818723031167409739154744710288579202020780027102521711482527876706672514511798776502508894864578684914625123618333410384960459246094847670750884402710348345680965483843466722485422770909608107830615374910184536442086330220458433267681252515812144556186946736378329412296062199824100094032775620313682755689412740374091861112346505014564840513619689392439177000787743794981076295720196341188547266627440792622055075686077926597931623683500615429314983098007396506495398335386055756381341552578772193663980174456845684907392386127834768067193067777957473493965906417565510075090948858958739490599272009420592773575406852966554459121574839803327459678305214531169695113059831756086569675007269356965117502389775956362989548617248130533506675790947937850610317253129365464042490326240952547907214839122058274268857595628394364787470301328207253984465763536739552364590805108455112554954237840853367015391727556653807154318163290743875042201492745546745810007161326993623144160014149327114019781033874483803487322346538414113547870725765974559264960175892983928145091388379058700326380175577865372727300976548953134322477953056525089428532988361533119231183761597850684892786452549306556270806337285197679960271708351703661543523240013185790635502535877141126110379461292221066389630208278512976205556787079793312582077535087708917333690544223866254503772959325885142874301926510555642199741479131683187723893744181074258677862205320328619664284704982244250590621859744052981111039748718300639125710967485120140040442802463421824018052245561708842397800457682554909149151648077477475712797673462454047347359414911892956804190421480350055332540712570929996402683436636769981652900730042917216177097538042043941703495291350503589459939339271177033675523447711016548802397845588701984396423054514621098874689685273720469695975204654313111321167658425451958717968335306492053552145392918913148465396979461755652832494633376195641235956541114905208958645590762963736543896281451362456084556359882915101789039975756335061044734252038531382199402210668006087442988678206096022281970372200226769263894499144038802616650046670217815997362212301481224911342618944898127109690242057995703318988867065868991244488508578469324620554075908405364494879366159812665837962228277554072333597186439236141073614699621911508152394675761921462686822091021215388223996840312226701412477918640198180026366096406085456520371155044062777380775758419793746114044092412999542115658551221656845798516571740157163858945449859880179972684495312364961430677508651708909513413393981225380100640652413870124086856563343962058908086791815452551721482639888716338425577542415183388539391179164553529100824423021090511340523121810349479836941664145376554283090302259113390719250517681583786329033808213367015610564715248528152449468662527552498282281300415243038728377323663975763122969962416472265876891479612173279845575928851913765919082248644625604807064095521837363490894590546662865877543558723486631965068682461704897423835684504851078082357762811405548333140444512902980216291504756593353213407407452751803107042424005318245890581851944400013836604052446029568398467502168487936231197436502375233356425351231374564400993768522814240622983419096026295926781206758332835114829240777626142370510564614797407868442097383234972727673921409472872796760118203531072284041093350885355722261197514091432740210018074063049607383925864200644871015553593231681991904604551922129417406569228952578795629883556215493345124879786404900197607862496042457961274548975793728912298837970888812152451731970666095685275073682644348631450174139164023182213830895702365368937620551964029975131035603936719550645782366847185668026740062349929169740200069484577334025391401295602447020803032714996703639894253471357068805410473156718711430725161722491240548846386949844071160683786625681405837318813843957488245117541416503556928185793109847637573454554012454471228280095942710909276315485101731056445285166759311781372195853559031239098511013823084037819483108695119830534183672613707204272350040408741405384898453940535789801002879217780012141239334683754921664673793475036871746945076989760642926372143761775672225036810512975252773409175553258644388781481114114967117818695223966926126236162931196227398988761234011229073390780770271581222834962922920426802026190115610999357265546186498134349164782983787720470494289731939106225699853160512193645032683166984869232140160532542752630700718013506685987817194814105500793890205420758782546080810026772283696009184895862367253781461670201854686816595143583262921277147070121591600070709374186522150105190062372247657341260575430421373615273448086038727463044119120013002382974775334692347730056867318927915143873681651463148238052884701520822047783372835940267135461918444381088764600513267749279363980243174131009380380103182904937330081691248411242948521653641376155231805736423867242010929516811718143662403666309877530322069930988126258564871359787640747990721948008972966380613738293961960283720108776068324181074188160347189221387886687690658939688895046007945975297434223071640920378070665450302181247692138251838664172253086217826127538700962179232939291673340933054968412838790266459689090863833810394107337662047275843233603598041042306302288552165894279763791931070726593158316814261600758602224234879111097328329033244781480270883480760990818107898579869976657026400474206749055894992213898554708829570879450873275473169797808209211124678392483551317260614003066422118581346815481068130543519036362434392283071484079326397599231723090400014146231831093061956039903446183159485258586131342909945972711693454648761465991670552718071166865872699615427572317703406194882864878463479301179250290320657679003369822306300549535575951056702934236820552197483696918774375419893491452201677719744862747323513142956953111198232748361395733364539595230463046533235501392594276613935417403784380989871406632084405699091455969938892168899190197804287999712534648434813687312970931885098657302117617476997713926297794583295331565211601529138923869306391097346673126208160918918029706509274458589678336297293954127189922600243194962114194154136303147992489800062281164226089379927455546537339610353836978531276958579728698675461544821939000317826532997964374307170852490615967594431638381457309091698341304884494304290605549415077560041866233974474195384521553581991514303544909921001395507572865245077671050913468032202803380193202350515105107450810082994314556592629629470893234245166700631000561393352897193193233138959159644078375752327121726839872267954191991253266644226903753637671569545277468228243030374114728119016667006464084335201846309952134128363033501662003367156409243547503271196153492548960280278018287939353876455449017650578223647974318164886918429323347545715555638560653362880378432572664978733494982711371344115721228695546018524824759510305617968552506137823539199848479907179664191043900302045584148768719214867023720044700010763879950373742454217200099379820031087891818324099486273284403259701799576057468086211250081862739164721705970893143621265850873978375528364764184113620873072990878159772861290776304744249036923311931284548799905998295646952104356789371281861994675588739992682146619965586198703364045728547651976514928207868995461239281603355090002914271223160212105605942098820672125556532466129850869473817379122021548927496119036145503864690027250660652173126818873788644270542017496154930678582462425066770568851065279774987873788344773864802054239476520378880557864787558095116496772092610075187619816195005613121615100768404170069557126653868454081965281248555561138309091060515877171026686736932072515544678901921436685494492708610624371126068990114590117627408341803840972882008102246210322806779031727418692763324464955715101349917811876749327689980994620968491799547394709146410807417644367155404916282849832419942280313258830346812600509577736611639831272626848795153332895427633930212829868942523946727076997435629559000212293244272379614902011187409776736436549483996092884254342382827720464830783742346812879478304199180245710593159221490470022060238747491551559063024274016138613681956226991439321273611296000998532175896721046965038542724580314727688168294666525814555193947269466572687795466358588178800949388245275447462301356168558364477519798162283524057860038097601849069567556889346862729854190076290996849229332914219951853465486987143177774848291971591863511285444263964610325882816275799208953170180826206082811488744380885322036290489536797571762588833388262614295865246505119905751259181481088287619228757176527235649901730192485623478184983122219442711709467396770510117245109421941421283444306249225494792004272028745791670261100015039934558122910178577256312458626712656799051582115544140599722426911964622157919550830622429398068006024332298254226579354293189581737623622938924975409138965766558744575433153264526805970611774522998553577504501318844092555330634398375273171525462121140779463086159959853909043254863516907558680489397515466760518871603815811789501483796697286116061333993487846230340515880458916009956537495811072292646155897773606030193525448049818644849421811901861840328405179808347505407731632508555514770726860430785494467635660844550895716203740815217524018544186245342891074416676345294438689490247776668575079801615974774206018147718919304379104989392076602981089049212383747657346975019361112439397326658215834178526988252647617611180847632917677889989702114985409958026533302234671637494028761176802954047626203018246875474032609935539550716726499357366763279724239953392127261086599523456449443740977453216155670963271295711498480362748061564848155386109250108430274349657983881517965097424738594449665195096372890090034489668427599390241091151425893266250364856770799019606419110958202741858222039312654665495581220782399413513564003428449179380303062973847887055624079020758166817290953077309309029367712769525477170780692470803483065623437845084806078913268607935572463847288170434663065795765593902298470896282568868607925509428352620226473094529505955234014799567638621401430928152076895056886177905241773647877930426641867412083041515722127394044464991709471151166579788681400040489915701374261278666842553558428098613249765547425729738414112220121970080041245683443248043781447028073014298816613547369046410994395959828125568856676917796403119959002061557796366620353439848184838563697657102537687260993542041647656168648895890860918082475627533645271087061437272274975781724648238838579213444911080590079120581476700131776479483548451054602532655959499687050592405862125799966732881108652844308911783651545908719180570823859000075779232365411667119632009973292994224834879605580485161111027116824215550057786328916064393330814926184356874135441744761033062692491895115544777354405899010086936549980099351423972506085597438376978063403175816957248986549372186586600871550758642901329304746765266960808077054081747215011314196582842309382209134660031745666645488274422892460394227829057189119780367875535363858632449533283164495376311583661139022227249831755337094656670807469979779654299404219826274913314785247352019502985375044080478830070344407720579466020303264438959955235077564169266688479822404956634134010275829628282331212706330573088415059138887417749500597796331290195481845849861888347482459869804053164432945679841951990239695622723112040103536176022041098213985450726176274555595895822203939284892551990610380124990600199455429142927415996027742101256054215547527081723649023947909999494989678519724660029045088820244962168128566843644692089405147437134086296127146336780080179509118265311791901655633337576744252214274813649027118821597111649605653176025561365498050844992705493147708151802856565007071924717208510739524164489030632576864992762165697336643887450724293334438953554236007544629099425342106001784415627459181132453436576562608060703718829119909631888004331865190271262848815327003564378641894461927636955834968713984959419301726851662525612557321957966212894842519865426031721367049100294143768013107501022845878512598150032340276372499157197065984498258086224522433769293926254282915699780220724441194529074223149949611692237146816452633740414219612881584693544866770504408777278561921923015579871630194042522616272843242388998493791543807589150344791328903883570931296238234684492275164743073634745609611311183405236731807853909549506482220860586787623832554098505593738889477955379371831619439799273920442923351498927626888293748541482067146453723994109667289631558280467472924823897153239769956773721520870355546381795414729670985472823498204922015888076206430637597195258252491331068442373410977290555491396118555019038617737386974285179805934737509969917889341481533590864753666937450430848377048870561242296591508790852576705174045600717404076938437517987401876698449338819998354200839968624766873137335796406671916778910193392115240197351033933628450100574585381929118427241253241569372998967471679291473355050279425947410409429465691411693488875240448964609456227923225513465224842620292906766060012625064274261888425047733752970577700564604526007134237470786303009324124103710006191939953045211572105188992988127177413389961863310121185184831115528148538465476743738146700756787094714065820228767765868514993529840809341736699472922100857074112969772107179867899302412765756330561684659042546153493160632268822970821800779513139734326272652082689586026281557478007769334205719710905676067852383357988220407657466963131385954443005460287260895612692618756208193730987052919800498021688214903283669150590986300760852263195328325671048691764146520536029415334437998581619698668551075001192225600623060372990508155393714408783989616114100039448641444807788838693327738979504831793574571315483559553060368108950696764106808252885583658841662684002016367248564456056993278455437911658109988199236953719731428152417896808850976110789521257810648881067088867806927367942772697908835534738046209589159470801074784851292225626031831913367753227308368133796650293560093270026364027593926812214863851567550677861517567465820831050211054884791900176132061427680498703670713841872010946257366838918589334390156850312355718790876925390606507269385759018363522509866571480294207316378694619686118786170072204555888214317822758811741869224693833225506070312753177587487074438311816476800713880449111828188971232822163255066816520555476697993881353956253634302548790941752597938907337567683263720318644331458427034661982700910210015172325606972714757073142950257371228856516476650283022476647185028164484977698166975972963547484678299784860174416227298834640731886384248168611359084704649647843625075887158473884287721389724354640410711563353355382236752306365998584320379370289032179256815000919461607037187768955801134483496372742795614927540368123882633609264006422648656978968667872119362675188557900244995502949943140735180174481063363763032489909360499747646492991089179458419028718288212641015900670619423205264429484700370559312613570693804677628132290180163485775684480313543270778784676040220729630875638772413663010696256908482351627546102242152494288963299527465373480351675503237301364363828570980332937239115226235748239237377810588519579417863345609392641199940778525329254289600633001583537304786278072845775369023745818243256309594382511526477276827222983082293812088969292446636301857877971320813937576143065030865990173136774587835865714333248938303413386811292695857588181887169648257052507917307081064470607305433028194714626323068884970160420490174207184382764372909229507158583479724170276058861901892915002307261921599052532286697708011047508527744196548305868466363309030712549381265277348774736705801662225355006417434718574775054597895487864637598191794653390280156367851259797692500853604615513487325115213830090151025318620917848249797904258352738272900125091390286807677149088192895430476442054113951801378950732828727790615878442590415842713444585835852683149664089870697218101087689959442301758861059923488842568356317344769255965334080351081961741927196708697933817870565032681275349212151358412732698358531448839802756637751333528769312548556509019086813670683332044209021021631823972675032254498774519597002804986869146912751886605094569213256715813217227954362414440420002310152259030110529199127187679436298120511705933814916542235731921153838991589895309296112473394427448097173301350440359121449719580844053237008489434796948869747997327521591018524421826108655108219208605021430722862545919248817678230306511825714238208166803912259603748781628650561062132778017416660656405075841066280045933238711194921889262663943943764077539769845492175359733403398763956326300202180302149276594347172947887296985271305476883543231127869439183523788421423855654406851229394685050437498935436890113844886077222732053967171222624199681663345545145183150434847249733860026817338749093523315645885176912591698748688606904565260404299737699454163283307262221086152938809706977220736031426846741975458393920348864139298127440003952225902058541349416277434722061629735554190620007231354938273594003493879845042652360144203700707034690956818413782182003842718673421347910939166229062214307230692994206588280315028656810216418447423195520355699244705657421030889145255776208149391636602876894057947923972680761496399839074385405607306353380911115458308749210177151780693597553676765911619297110041911819491573519935196536629990930152331681658132246277495908205223041573955204808990829785548117275844727012259889960945003645976054998137289844279181983064763546199275552674782902226782046276222086708317220617261342160523818786915453422695202752410727788977513326467144677041560171276762907175164319325240311397886383767332840943812794834116303183063968942578331633992756429524215473786938973631635214405517949182147816254197819984205203016095921105196764133469817084308778893153986441595890629224332867481182985625973803924258483765054646305236508882505712962309292231562068811815325831259003252595890070701761661401574090632955677951740636620134236902498667120501447398577232628068059473777593885406628451585521405942114807193515443075736856637430280086916497907226195961785664944623002261190353531811078190704369463465604612382569245053334068374914878943327797814357537458213749362152435078286208370638692038241054129446284393554823716992390960370488834842146548241841033651849071157270488372728734513625671006632690659875245744580844965227581633192486219051193872973085488090035615608382756969789134199713238547332452845320765065484879971020278927831753821755731296925859940038449725714796615101114297635110823267185839786257455615543145208814219548302565059954301198671936785877127865495139515427620916808914390151830526524999143672960861038074423567703640492086989182509386829585237422686160517777401928774408485543685987838276215586966274480813727662351252751980568438387232335252339170773368536348009667315398562611176980482302401297064472784724904563277643416720880395701563356256088346890188944328339017968099378404219103456858237661492690307867010489333799914314795762527381154853368908447953659156079635799223867375330992139405993220153622774201146928513930290326896116821382277578347810775724049934782114566631331102696465977460282677727611936950268836622307807190621831776698041880834453487845807971815099055530359620423501052457732306515436049581163214324365012784630455429940544569165694704992697835753360109294435680906162293340774837982864852211071410563516925078399230444654671570323238409002477774694652947237770652420180709221476786486515489059328225929313013082776037290504945467077401877235406683030370026517351765225513013598770893503884080893978618884270471629313974736478508377339938195443376912073987649425091706755385782613449229245742506370685999349652688254034368404872230566251404909565345956767001766878112656056021933507985947867608647745117594297622607714366894351668820045723618506568333917278854897005063567291766965967024014715831746492281380975586349928748246969476954639370467886535373475728138174391406320070280988383082700305094718003466813243641771485383511289723455489561998497114438872404071254119682570437004681878701218690633299200221476781238729662170394188189114328820365151590944395621034500372023622848946495155595195082188601956402273027418299712444170371055952822434825658373247573432981705910396578609458806051033283556871773379484793341048515512073984770005115738051428330625600010465682581585909468987482238286297062092859305436918984549158097106023644295155813690855701372817933365883271041789075756853702629995661183797970434874553819246916007623307898437898347445821736171839149545413939690110312053826746332882361287868688359379591981761047255998101965858077177567520116023658708702906585159538950888374985183095899660678229253384692293296947419212394389217189814999422965119932932486557982433441159025401940814099764760453802727708602682899142128503472744563865431678310403460189269963651965267082278742798359179674069879403202864603804383800279293265064623915413354744969506417784127544979177025621825829323305015778314460213960540720731290843706348178632419596959965196809992172141568543106313490647024453072290190509418120780206068888170305141134544567669984149739801663527138037992872481852309524007666199177758475753363667456947058158611770663263912716543681067303245734283898929911002454305899566519665800907789934090667144843534001428413916784970357725446195151347468467199318199540803401731985739900884125058205196088843295447663965003835276655335378444570426044653437038054952402528144111460921265071147561105718885748566692941794770407681002687291791932594653551793802884231276688469934243630019093037186135552114506178386277529394163185188898293137677058733776742466326959952051761021648662171054057340424065328094343514251947534571244892166577987303814475204170526547282153745995096645931399877085027946927456022761923019676467779614677694189940879061743941925501077098272439229082514409390643545717514714812603368862700294322564051749698945525856699418334813252917763216653003119522407913749600245965817668591348054102913962143196579271877354655099054523059140502514174494873419643351102435407455933415813512755370373219344659580944371287262487191306569910878670415107369854555271664188930656447790918230109994139229808390628139415611771498861487718107584838262012780111313875773576438652979806796014422052970100071609299825572687847247668317649521712306328467280952889010540698632818067591169676471921106549264751897334761223904483770457618025277635460114604101989648031297269249818671163708766526304938223610958030522173224812763957803944193740763894823946536597386674523226876307884384195045522359774370941273587092472782906961276522008726532734513744207634362027618815181421373248537739468267446467367937391986750581963578084671411154506219299645693973685520142833412305008452558309407732579663899246850822565524566676162592393819545771090122383389700365820512143892115791558985441455749880424779863039919834242973975936512740207850311391706644250069892618629972586522928910511889556122556071541905065176642109677096991077518128525535629910452169961645270823692474970181056764380150699818560894979500279741608739968065323656751030610471478726327238462096205518096344186368062474690788743929533554353478217124522769478680215692233314076957381780307100421967444885244245774524180208735452863624854719708925290290567785588212033346621132128492991542239561035038117564109731388603210826266100362356632304759314982807428374251867351713772094174392843270022974426443872274912521895895319547246249303264837698486867331626374178137845979394843027894194952577019796645374161108367895898294805630268083206331021723067760880053488766189852412298286438896915957797050372871655165588033025647969043060827432574134195219271419390416753622674159518741874814572035840852297764688067847087465611631592930272450074015358522322066252313308419643454164022759963259204584195423450250328686772518249297280597197253306541376805041870607035292613637451885374147969415858022295528247529134433189295409842588137420781421932019839575936639921525936956059789811215572193648080356731325242552881946077864074644723107150973180858270533090926973525341793916957487170571712161304222384952280870171675537376943545448837934913340562160698855112830871540691340093489461899311367077619445773741779424414317322065069855293650391200799551250459743508516258841762084571949591685915103032677638932281808863211345523021756145180558022764928347397206567750287314413769544006817035158371022381585545682150556380469398343760105323206416786936404076493501844433339582161428042240048287080675893672994870032475096087345537066081747621735793342401966005615015156121635664605193927256376752874847493317549990254377400249427210391944319117753619500804880660107966136756322065157357573859037624549679085420291070980598597064720436466026223266399559860455477625557883353041400186076824024087239156523127650941123852099935738051341672163913448022183196198688588283930221325007165400517001776755920491743073148734651954330920960855779142030778270286948039427201465200137926847135666732489439424173539899798258275512040462500137663819941856602543671885900110290325800123426518926046022978624829184225088341743850426146215556911385508773450882338721375043733786105882321333618489630572224941777617806605852487838556495123843124374318549921960257026113066781263498965914749826111679447219290330700189338523638836549806976028404284989076691686063804226779115700680540530858550963314810960669046916968778710261675997527934539246314732453674380430245566670584306147712073319854573826218911402371955271681806950565463666413158587148248157130482535194015280111791435295443129315760659162837504278101679564697246222942948162735894976868459447092721148914582836686718653270797859119415508178034461022440437044887873777970890924261780264802622230552093069286681083104525918159108844085349365333440586037231183114365906362932674625703861974740908006469733123696876838455167326188269125800315996885774930973878574877854487929238226574451045016645692079793109181775050214293456840698989948228505257689221474611736510182916985803409672898832740808805044426881509778698348152746443154232606269303289944923041364848104058101108218776437894516717880560416037773849235849708776872452930558612987767714149228408569017706708332880064582554071488179710928255845571932581491581462478102020370856839916711231006285987389190048691318568980538953886262403213411221892893380722253902370684227401602490193626054633933811830131368282368137160633575301406925325469385757188260096411506898681399414752582525633485976606948994172411128160855333213118667617671858438316834090941222253185209441960822432349513966181667654933352770781840316788459285629314467573208493537880509565734353674408161719199725663294197845865250271935565238780786878342290600575288582680819400754160318787597135824737992298966742364965092870139498704320125214157048342009083851501544235175061635795322344488283832706977762656759185435445674870811417360800357609380394281173885602285345221820964045773149013216622837833992652811627271644498873102474428571169164879708712977181170477235307537546769572640585975254106157711382552922643027065491022702620471197695604046744853486944269380501650880342770179810725174934098062358104062470913623342796504230771324055285048951358115008106227273477852161616660730373909761614163899849055995049571589698330520123241794892689115073660284642763959211012235499124045379474707810649300797063641153197880844792711072891810465913923037283317426710505512619242689178499427210694026684900025071371396485548433238936828241327793785914879581537549740318476797506684573572939793963237789132978324385054696968136718804545166790882110890529193325745761474030045283400711398487594928167571006324541235786097930071973786707252769364234492859863533626016772928072679105301203519261904032374224333854438546960881286700110268004484021820930754221325897311677872872555582192971257360336343656282355320000215655732731518213516895214741903978464934208201233866659690141163089919870925820965508427988963061936337799303093241515382367499172625080467052493111829399955841024198157281780899870655263869384322950516842180307055861768355630171436141767958654953186710574333432655333728183184953517772579727962730394126048337999448743464394628363276641345136904672426865035720400621447725093548976131164525592628233044530433277597642309704410198881438968756723131894604449971182247829566243985131183653620074979538420405763291418470409845546372002582298628606413023810100008342159091526050009093306350919816357780810385917204684400585303613496848320992861360305854332266873332305549263994396844777527806471808524818604839925380811510396604778508276291351929943134823346646607002043052373563593352684657795528309056068338584354704962952218236003318032055392903101041965018903503720843976985782823710835063897423552837727073584264481689490103609900458912968691933224406647217057086470702920450656302719026139920045226166080233362693714182828702804928834870940642411993777872047058150673251291509333337568819376490053014885419550823525324092574991856736518447864275669249689923788790699476132927369965266176252302919469621289825754446766876017566195068993124082837949345320158548619730211321163004720729613814860822165975612794005515187794836687917310559732363446080199140637459596727092827706250956912703008765329386304919798303404112956694601970469308185816896315643578879507039488267861769634198237521292378640119884933369322182886528401801384638921142257814646931268770648342887395469721640424717445368064786902284842287484965868285366911302860535503318656970272726011547074845410553926140557805975304696215096005962701468542852374199101914810757547739278394206185089424962772275047448640737300001038421688013973266499180804020022382207407493042278763204884503559928854116209411814501924486509215457956305613510689590680749767934020938833880536686293729560112218832595558081579934004329147760622330770926654145995089674857600626395027332246981797271632602607918964215931061661569252798394489431219127986175627366256717411724298475824443629433454987672723672645098033137774029029619062326971123335280244297824108723773048140673637181088976458368225316870242234414022946343954022548360819653295801603662225668865634209549269239394181346360819882419489933523608874279705277936589773240923635946394734241176364107834450437252400659463472116105409230450350007366021085468894416892946054646375566411376107397358034962992604900187831423896200020813078589566488095116886114563743515008880483939690984765717780552732253330482781873419707575379601772794181544927093604920995231538544290855342478294788688090699860750363004694314405151333895842352844918628867318835195697983614793340338094433362225245878581757574417162670253721883634639443231629170094992360711833170001278984783935296578222544305836358205311534150681429326495925209452407975570471596333153237645391151812189597779905545495300004782293939034331782502252294890078885289471907652780983336344695649221670701198225678199167659487304551461580875888011778553149110469899224252428138970421914641906777189587685256189191226580533438211160830216203764304015502621465993927644454077198149269288729511896309530246548876949863900823175777122551615597607831224680467379886639084963861149741814834648376544174017161854102801857038425187396386828428665547302192959896977581186743983775422940946572177395404255373275211180348841732649996623391530880511357814346800404964930679991097689425498444789624218252953674504433025781792399837871518915523266313841480946900531143845507470241290623639510691022702308831643378906202569205343334665922410593335573464566389728781987153899178951426325439080003774460360415268073284909981423230512019428095812430232480764827936380505773354836375383384883069431095092039397087233169014130158648623435751172430450336941345833064434834786703024762837113410092606785489783316454376389110340031988517746269080840153603758384546514060730536627449103453691433368889992432991180055327042791918002668677713833152943777142165528059892124917607603950677688579875727876561033140448821963143682815847895000994110240314844691415284240339645293058292431399680566151618608936745255299012932797191846856723776271417011922256493731550714267187522624282393019639554662437096250295644191041634950945253039489310183184874023221372232636223127269492547237920819200516575822043639858673376687905903193990486228191390238878604575193023146486663341012527665983676758164311867991536985773202867923047274751359430088720697005106433495763729808210098559623126675300207027001074088970946501899597933003946658227088473589196450030063467532675240476342649602069220040083712777779736669821449902426227955291862468777316741008941029592050299015118239007009200920049187517370768584718654466905989336192316635319091171586279017102822197822830990656545658582768796844749164428244212082355234372164913139333639820858949505682328951200919767815495447606454050142957505225623031907477672560796335543103329681392282164608177751513067070479521268046943493624776008805581087479637575174513699905847465943591885390654109716600416011041337072552344028724273094985185547804635719431490361795157577509594711190830364185693823264030399060552775187438525832545477061383166783214615923253892176641336660913764452297584452173325635332083406238661429795681827454467086062366252667760036717037818823312346944760439358700992411123356771261154189417055155210543461598518046029079302165350030731160131823004498913668235176665090520629797301253916061973628413396658205823698878519235692696447678908843420448850437128026025260899248980829628497632105690193307276229905558262443130379280840924243228008392973653916662906911458660308731188537012863997098820438457451146552209309329756928204570612489570912112767134186841797582572947354030987450360647016333672602380408863689819683372429047241573621631250275055802448690289129320384154468546237264604978192410013402582048455098668086637693715529709687403593797990065773159873568127783502311464732569074993411377751292388225996231685643798151769657825388928681051258537332611918461957293981603462198656366717584861055966385777987424544744195158566607614847032414495443836205729062722894655337121142106264816923725578750481570211054998440316500045076565838331702311804836619789263812335614447240663749445297788477381898963163449594607478899347314112547817354477253510671191903981396195929695113255117233092577652220638936297459265954007150933222476242211227394965359423072287478911726323086699247046763295572746295023361257525054595155053087793715761097838872480502975578225322357311162588084103075979463409099036310665841889944694107127960313736921941982369996238180373336853561873354286520207749891453713069705740150948040974180308437744555109389461850064526261362089807042433208787805967561312042374244085688146363117683284568809955300302458552931443102213523682702449226387928826897049314822874256798182031276936674919737727042070153122163936584227004510743358464223643383062232223100992961097740632568335519311452436922215829085145147606140270837685380079232970629936638160590384385847342907272965962641909278933088723006265764100304364445717786057611027415268229923369963488213808368358374826883896013238463235816834175056627324609024306371398498183917702155511294865583853446863859581759668961836303146002812787714091251885009265647697579312839267374782937662846275607817389825265633137635741901521657059596673106796528573132019294961789158260843711576982176106261306615231194395366617468433083817314971970385353457224528598371703059038505217684892664117481104814834289522969828124478743424381971084010819720281787127106665648488352504956035749322046244405448435182437301686391602164701998456389765655523641202269232340359227824496077519635453228667603257038354379762516174696432904058929681799564487224438352473405945864354276647815570337282156894738532461815031863304152162847778028587786210635386790318076456884797945302236624259269900445534372860558045460119021635206233716390252704002203105953420172931655936138677907386930037225053320902663168679947068023338266268522894324381596009568073657659050205900857195297103639176331251448577410886571912307858871332731648053853509800132601656422783173974355036489820746439415673297498537903453041975336707293350876296758003875524324252420363698110776133255937317205310325052356732302961619932200818617758503849906632002511209100031286198719863382160901256384666362966833843074201193189479639503948303249081772076475110068462906066081656573695223613656569758801268852112623243023172394832319444472697398430825568481328385905611643471418688061704522943102916317834422659046679413714066851995682538288909126378900574225227473880022732790739442238490776009032072155718471400912716206364034879729881177103616707445798576696633315489717877201288938035284751254397834834498834750955717228237288100670308869001812126716418016122665057895780776899384020080526474746329622812564223356929365214805903689317163452801450122092880892105936608493406477896269740378409397919995618524276338858536407023628934672466886671227698974900325050392248677449232784452024198013961111635733934299458202402035334712938079566349080268673525582943030378479003289191277116256008744648350991151076454827656458177258045013094626647361055213093525625188047725219969256919083316823886077116852186438998024010674801658266632545752013934076127911308628431656571182229335237465130779486846291560228859792355481776228785336175551973388700178490956982325651767726104618108567992351748291771665080968099361692769286988958558468041187515019194106287501926142416048936853056690672649140447123057657349683315252148586237422880434518732750896237550620550455164549321682795639140800772073376391039334776061491525692371920496921392992096473932227667295811898383198888660335905107861696445088569891374009537515503921642990742082951572343308601393700389539714407143152660360533840247686973330781374580068532792881430132291296249259182809748786453839925001938504141092828815801636256812905641358661928268185182375187355480304156280237218998182555937502973019481767554970278758998911000616543633221889636217042727966377426223375394938039190831167818370359808454654699155866549003093903778160288824343679000286139785136310618160034366883256754998659940912175311204243858422561471838129504485099915008034753308975021871991446446590527260006280004757412589062383513656454919355714051089482473428485438636706865519995126937005158337708190812310169859407229522275927771887578171777642410844541666139040280487861051627759761608453499797924401587205583170325145314367787250781268016026702773053859426520804044343218899417858818543019154151886240295608426202216661253412605551246412759320960605525838529352455497934787128545216507226578332582308087836912814439225084711905508433053269607982009911427834964567209023770102077669995491056176847868201322064451346685769739882143055158373808615052423093601532963825714733751605543014100850764043432221266931644480685376380806518393878345867008501140470991228779822053860294151783120571575172659384703972094344727034152462786445238631799292498211050997731387642457561265697848412123566604689299391820054902171849505123355481066750680171976478507858423192858064863963643616239612089829907318709541301177658999966302127622869513923471035630321570962699582247852547227265650814028123627225250935934384500774763749561098172929467144539706031621017205615167940171156503616280499676577992168793513087798154862724859206255690455076781218261316170778544046121934925028115087347774038579413031112894313638938406216234774875669919175280776105156552436037709371879327056666430392462207290775535246318156154023868764102689189515183800966689410344949422785610019253652283762959460373317340733219816336527037780662451498577047970353515811361416780479597560897930662892025225330044828664300188359891657224912841271726517985195546237251589305730712333195521761694794794766198110451890871971915594805009087460899912187786209652003308302762518171122705295935658944452962341420948377139987514505331782440124171176405494712205164831118440109483416134362435704400992265088729073944635360990087864093912192665269339280755080637207721478722240382401847838214200550770114109586933975935821057343735491857411691733783080159002359895116601961622332874122364939702903032319982212730113174955305222634769880045431892797136325450810854136543325939033240734222691624341317223292803971092677397792865735944724297660638239832635744268117888848543743813209893915153074250102465958942968445481423909766717009312951264004192522675943548707502296262763012438532132836088797714218391432939227919839713639161772851770666899532601799898853110963865532473353203872315078841262751020651026408223705022655536022225935574574993807321244874491203413150667135275696488721602556958898550368458525915206466711129165029726852750864853609191854010011570351136274080961407688608242922624393796144289270723239311268098614341956493922193411462294047778846689102864012434279424265195991489271412508768553927654194653767879092118794970684150441504640114657545757899260066854309836197965880177022096833239093034711177047432057881911432451403877858547350652303863032797239836664872332282585015645040315890673180410352074315689839128557618584251164427502131850036064776522523918830131761461494313546605964068619675602744369801463336639754113881172660906417468084466386379657105606491601154105350940357119039197365115544315985875472604622743392300837980568939566498284256757008839350800787873715024547104359595042313202111568329543467370175902261596928469051497538371520251772577645445926246288174171624527289815253293675210651069773602696190051919756496939294112575474303606145896148167067170618771680580983685720968466739986522952807702653028359954802428396545145660172300632948059558710683981898700152439306770603492116971308654476255447178533408965627352191135298605648340963672505340227224438039108670605137240945230536055119746762414324385091967657822576127049421623889176257481176409578064660467514825777291052301973585838676480067851154120873099277837456534587573914186041782366182997265461467702137798370345278491253289122647737436984766882351393103467376843126124657724330430110552439843006023601553217889678019429228672587062723813368370777002384365446985078443455121618164110029304859948945402563997062820182806781964161674126769279334388829859190844488997668074658959696436370351393040024473078342333514597360481623686579079387241376398320913161062908721548277567808516072025867375371180663791615427640725467102209738613490739765377556559195226845093408157312532333695093672600587551431242562480485973462351301607076338086334873760902019393391825796285177737985859561225214079670632683493191925843740143990791774626987370042169584660395208992653841620329388365592483464127010584151204715183787601736169789631628692475577095194742875407182114510726381800480094331628353667450042691838552074996271769698835935621431986530794755600726068471879798082530432315645248022269147590497685886449465510961870426079768406890635235092959154381834152428344594335781170894080087452824619070625670282174662175987473454917900073844461564552825669407981814417432209664245112916010046800648490661791312108947792242190683744563274396009292098976491068352779641284766055529632702766567745069431024866452592292247197318907859181589344453041342548027757393758785020312891054323623083325040611516426481083785004910992461132651607492469039658979407174795693056444616899988931794881684225473428941694027277231028668643793289831248642086482575439436559293592847805088404941071697216865626075652359549917053322445921120186529449944512338302352471011750337271825502185763638654511245296690741723086136112476740475186850195743500053767496088825776469978303872457773242382663090337027409537016128917954040399898067343034702815399477738481509462844832858655803943009928347357824673180492953351777539959655608409339540078822393280570285953718604926542284128510896381251270555235871646576765533371158841670750529154986813270616204471153454329601632427355640621366098238301739962095752088736966582117189633086454076094814167612415097507626151938837842052448016181706774447139116897243836374178501335874308373845985620476015050534758079686378596656689602273207533116354964097264280610258722865553659474956456173098378731543408868649138834319899445831429318959418165373873987256873137159708696745275403750855185435624293389962619925148912690213164051233315095275535896447823508150335183353347920345690657889110384333715582115793466776127976541296504683771033637407909873550225836045125887275754072046336670382731869769265524960261467115575858982910901789030612579888469948456398487154530749035351161755254509884326710730220130137018561363702278307541282448726740667985538240168231070656299538839322962124409300735154182035406187348461843035989164687713522724582939608529530675305475276482961920873875486392364950657373487920744293104447310287984690686835235978856496791097331268051089255066435367617965999422226209974450561845626164840656884491945773106005870802148822449739418119742234663125209521960657331271874005976348893043661014505161145131398016566698883945102032651005007545992321438747919931937769032769863962175301092934500106589798933197673204003718587837458888480837085371919701478314337023855246668435293503078946215075820384633779814936150831534369276398587277991468978265386654797993452238986490011955465228491071662097142564976457967310315448311184736124498329133547628235638377947388198738065939460839315167273604727365067530819007531805821985864915294402549190649028823823650418775557689713338186343966652955946107454983403526461897819898112375916618554462673528821413019139454859528851631981540979978199376528368463812507644772314219975243679342115951326111522218821619048023965718349262836709587023576772580595301626915937881181930973510588731200671261579521207704776877123089912890611507050347465017662056186273764781344998937052805140466840334542291813498171479055534913802442243007735110087841264100645858432397982669427236179037428047181194885526427151669653673287095266494298224221001862893154147331694086056107953612232659220279961274843371136065818074030293319175334561975313546864477669755032674218711047437774280073151961072281636711916418287133912324645895613649869423964311157116701759662074897197730227887000871230202766576066586895246603178966195283973640135818670635656455433760052813876111375286209813694176313455444315485611765756507111480211308886954409552581926255661960983755835274695923807065872762302251086663038514461415955854468503487836400022233611502954680163494970741514049225074363293077181155985981666961355160768361653054964333950195688721062999932908173972346888999217856600931273827131168727580274675412451954670462450547301806337211556051903910150206638643422561864957666469334206174694356749112777289235334257474771325834223683795503926201552301365754062434363390877132155777660750794562368229877541768976848019146560581460585390360289106958931070442692566187876198882686796615197216248129476086115560298614324315864708199115417083591110040260341267959198077814996688774159954578986886042802034555835588775669107438156737172078898370753137676284493574102642105772040860896441509935161485987826198431022026512323170543812101892537410819162763978318671518524569203165062997255955072938460002418698925803844573355018691011304481164344702253365196045191288035736817062850835550924569128745747611907131112110640665423009442019968472407755225676749382300109027015399398106580186892797868981601121622029229142377165203293595453399361988862325317611713849655890500558386377174310261481688793074872115379304289594712161082143416983451732321671585876600006617975693734856138151379203909011659942055743371572985655503511949472175418550381927572306912137817167707411806652624202165663037258738751528469549219231825166024438209135403162803110032056481581584864504664072185384672380204325731531727995242646112531355128939291491206957933859524593815594955899025336372191572883022894280512033886038732959182242175166316469040576325436484386913816813215539285114737916353387364702431615944822272566104338859215920405412487017876379356449471483286588769791033314708310682711060146339876596912534516074072949026699620165066081213751124618029105218598243588286442614956090244588137319928381789608110212677014112673538883986429507533818683474737380804863111962975301177317873637574933294201795032652032529885094239018076885727183839118695658807623884515558784003923741249444912624140782289923730057611324543241205972403026598223052306728385021415371003910753179422856302154793564095573896446892112127438235828075465057532800317230440779471614540796326965601007132696984151548661268658062624355403236824205609083664674687388583101643319734221441172549154835204704704170097853176372197106132476736562097011349701679693675720849249204935737346679891944942539722816424014125029725317967844723636354955877523861025761788517823051141088944235425950533627156105326375833239872126344953539960397610926295434381361713218138268129386984114240136455649268943427887574696909855147516402838098865950023291355054965713730234075358508003271981981097006742028748096533256455194683787991372776743343690565938811964938237479203046912022318233623806743519019842813365903099066376786154381080693852707516019542936646621487410352092506262317678637050615985053157911395890322552376154506235324666026951320936637136680436620363344047621129268949234325933555037293467875448155679736407645881939643361149850962686878457969707835044263318987773975107076977329613252508170489214073970790125598907412988619980614648393592089291799991736442918790319056169274118010773697004782718134785077664276979165265580481400041269247120067024651065818865293485050474161978984825353560708939051195503686758484887816250391830666725883000827960153882251916578502221734216561891745160841296956570300435400920105692286507386360204757567423818735588805018267757710319804878210508338649405103053438566643822267280925829586766445071012320492460569942208628919972594788979715327344373574166243535919140057593668901954995260326235481504956534048151090607527862919793117793168491021633399394044830748268918913253995888602972649217573903211435374071371798198913523290601047005245006469454420187695449122447437227174628375055671077481169123150477788378110382846440038414961586433432102078182393809654469730928204118073747344180075840181368165730047720681584592050483596731805834765672844220357907485160475134438778413378802421192694293898411953417098951341965582113158682259766739692110191528650127913140848034883148504461021173875885525924879973147644044228253760155000650020927447525344745125951857235120775663890601490655618990785699310286469535842835568182908172058815786066341096308269569983324689357050346541980090822266364598905977300274568311931457528816878106709399935131591496597566930203021468846122485458493548605515065251125200739687112020625619751899253949728945364038970745530329826228982877080230712792482594396948769118582966961310052671225838936820237476499701733330511484600550308252057110126985521374766951118734628227643079772522576980198713301931926708796451150287894156042364761698004128298288342274239674856352240290531767185039824031075451621580838899904696822463799560249260578948970143422638181447096086901901019187999058539617482328021545301191887495961545645581130735481896991546120245598217555035186953452847141191541061516725803917128150348039019970678649065484766416008489119276761229302701264261808734899819118240221721571772754656242939296009343144290640208584484998879583294223735511806449087201132322980443684498970522042748420145397191158341868673470314159496220431196195199787996598150570899797004740194926108659971535591767767056099546735491633400466664469895607462756216078321749090954581972963449086147737445486641598025476238872345210382990184121702460955930946497827903285037042502079697390427311170385215465502139300894862134550343439050880840868808734939530829075356296214258183311758162403913317945163315428264210063657986287824600156529459778554474894467152188046620605589118263908312821963913064061855043439258637708228283656720949888866981899016112697214803800797203372850242626299362483350434048906982201217374800787039650189160363350704511276535772603625700143974683551112676966552763641657172989936431545087224445641562211871593204668582846312449782154905192376785004254992312506992945496747666476533621266021539616931604960236350639135598778949452765320413732754118430256208376968901125040138182845348431007785991482663550655477152004722897878473220029012261138570278596938062674079511885856088455720715448744545189740377699142276611053126785342528367924097049471299248470037455978835313243580498367720857859392345699450012055963902056983527297604660442140010357735810323112667188607734331961736810335910512102024540072267739875775658653955955585769882209365646387614236668500847481347168900281204406927308178584465002876066941060265100524567757471221116425423704693308303281950928918117004545792354436117939866361553234998261819638780035120149135363045273250785328741884574892050348047899360626474819886802931807845892064928682217579592805560235687051029241489224793189646108959367582631282324763377346623664278098008045300888235393796442575396463280870848183672311769775993156238587916061317066491387062234562922533089062656074170417647371265611717446735646580234966427654441042480621291360608138058102588091006371538465758339465271484630840003218648373426585731877089952434769686902411024120656686777173893963892974134027196151448423908831724156051192016586600165659620880510607511528291162917016672505268434061869859155420950802114048379887818771830737929348510296028025860179127375995685766130084374019525842175440609089646442035626305746530803952748644935254942378474721203108583522601513221242335461978420198024057265928737188006542102679013026481647589201478976535345057514608759155675479917374167009011724928127561368331270545520983409576328105297893305110849952768579734814892357876463017516791103004621174345186802792477744642254712606598700371929807338431537336417272568181974009139280491385153178842782887527431386584791016296118164507325219886028819660075685715184145112556960676470549976116485556338789341038639579342781589002531676882014621923887687074658580249328951499702623750737740734618201863847178911413503388523265026017078666986566120462553847453111397452358756227558448871486288947866848270505726361091360105769866879817488057624724358977216360909721999112037253473111590015119855915869462784301347867783725474992109378297097026940745630623342586235313822703673442736163221984692019536986468698620479918226538878168509134650052236282695449653092701672686346993142185598521389219270713812124966661659556720943751805341764108934264490399215025410871447812360793813355212731153052396671144094495403489322400518028021190867782766318658896950043813216854920981491031680128293089837978610530942723004137861315213367918088599603270877216828198257617363626907067308615115971822937331629511647514233841903229406413082969417414761311177295647453432603249141817056454255258685740666389788141845428820451555089863587838605167489696875626393695734907787146418538031145962542897647427020233367510033684613763796483975774311309779901354190145063677553072427754822215441012216816267279844211203936066234066533242010770705790253121064529568401654853890915465585963174687177530966397389321664621253057305986175987678847446632989599244159498684967939353603620449600967266026049448435427492101162872404249527724650741918994554910920463021800201118173142203550332729651187603404046005691043374716703786828555008331323702180509298198949650993761228797997080966962944056453398944857047489785125142030342240193677710091820056329786524734819969574576642082208436637369606952947675397867164671393596118800133055947098586919781112792480428536513152139459241960252530766617334160352382019846884800643612833039548111626809759607773151705862906401924965660467267498936932014142390860606229118956156344232382164044101244736986831800063362116958515665219758069744476621653007885154869505156061686385518517046216170916342855667620637862231668023487296097651975593890651140413493664981257486952751279666010624045519039250812645958209131270077313418968750527466161016542614942315784521720772733113204936345512582520032861223243258691912699145694526879622225341718096005001801931597864350204422634755508531195834102472519448916657957022988455775749362597836150652610086252735879300040543071542332595949679828891798937108655297146641494278072554328927418577944301000527765098004836758047590668738713882300792142245533075356940239690287317673319286155152007378434570846801718153352838172263540278229212148453012372156928071107432641953015302394358075857548635250454042072694018006294407015025351248894775006155379555647376099635469641755881997070304713435927661244558643532276619814715206943566135554551214535044908794393211291420802514311935379596049098785668685953749875495721078237565952384329167660768891880723802183035073591192728804965131142427341950461932780383654068238195164114905934982243678516173705315991630154374317255770092056078708220600237024570937033889881442410577133811390737064434263345244281744060122362286422433578582081705664144471802020080674599897770279164937205563018949461744152290166011997228226593959327043652587767321917316164864144462410769025729118269137682362352608540061443545920182206298742095443587600675632342159266386193212953531620477400286260589450139372383537179229065106486804304174633386628250603275817804624815528482501233210097043405698030997457177749854128131154471167067637379954392312252467275413884270931614142334082823324968452479025858088520661607275286426198284118457327765629186964424781143754212223358585771302653703244849080865711469567678535171939697038620187727129533227295901097576569713093157564944424426364977110258809807211379200465689523195070348626151050638024231191213789543189273962992692382130025991310124727243363565490014932614775219847930163923923689009917232348810314042542213460410601317535585169750510322378491068605991555369242493511624245696597339624385318371961027598687301221771833097047934767262387207153879457612669337294432158829324686563059566093847634054897689595470620991672440115697329162954131653994386570085078564315979891679342356370025818070710303746185749614716714019208538580870698108658416036659834335240618586769197619646478058802549676179349444793270937473683883844036832102512380676367777944723569652122020664543634304217099454918475305326519197477160694071628182469666462664582160746193719686790560798106984833573334476622389916794069490821270813222040239497138501209379777927067707933512415890785325149350290437374051490752392383812131604395088456799225336260570020457674634987209393897511477765317497520792458196520454141153466206135447342150360481745229677380536936087042258420856997676122718304890867153228124801396331577111347090992174984230411654224457919808409302542196096527355018057063814439548620258477025420260300757293501313295895452255203824576489105293045755930508944623891536705073577871164556920845993729778358039441327708959664089798650126540320695094184078107278988764092857503665880836639743748910531527700406552733793091552543928391706973161748296867541075005034633115092292025138270762929535702971494322335342885469671378278699602710749121539965144900289078507472080880405073972607864637975821995375030622216449627455078445081487979094487608458774438828151106738321376199406675041749819418468437907381033168376650376153878888812764379875213905786768620735407291170091014315891454363611142791127351016806264362253181752286219598428183145430620295440858474865898923127101169626645395299870469242187014957851429761492556648435238806106430123937543063545967919426165939121378783242962042474094515364010188373190847058287758067776287788878165432481011373874847343898025187039656066658810665839168707672431352395184114850524306578644392228995273017189529268448432228255502061909446988303205079984205912426660570998988036608897276133739498054041868521227835875851316508185602003108380108703678782913282570523457084062550124419990945954189148193458120631138317861472790620903431927423202197751955295191969316864365449418032955758387352961467212412014398958086892260327254009730434868533464416109554009134549388512001485301169943931391818427655017744991575070917804434899176861471160656949773789727652051301239336220879854228559916331200139235919242299820359106276026859344012468247136783694967963088483782715284188159886282197126247955247748964658920618752238899257051605340430577456131286570429391182601684028189974551600150255400912034456888907567790886536449350105046755122311354011856306742131758931129347451457095785149138377524277099546044268148223010010936775693650928460692358379298321940890235153331796256290518565745315488133455920537112008126790724591978718443495045743829912653056398342099260069858202177425945002587913247379394574191104608265496178418831293881382250289935288815635942841272620592233230963880613594139934783184589304524419532908205206479501871949674584238329490740673628145787373306816621210474439136485950117364643448792233912834434445096621204632073166357972285385834041238012186616729574115563109550520391313314338496013033502015094507823147632771370267353392950261495315843672283668959379711961795363054852832684275863034407325772139987159628846742203664704379842981246166170806251694167543502930484095646904701003465266062567480037442543991942707318616185832482760598045317852985446063489825138537600730321870674644145346563360419301571061339924579793039417771375763489205086551973234780111840762513085758533298187477340684134354013782408162760451115187955505606861017970184547692113800757486866375671675710101556397589924063335199887388601679643614580366182715303802679340645162039175148795389198255639114238980999611853448834525768224525977176368909843882937785746919237855133592615312656028126236504109081420803397474317167687910790960173028133530214591025643584181431916668493685346075180701412641747935764415645029771595055557411989533537101290409389800325758708087040238869905666299407706556197509417766219742401028637829494859298515805117588578985758347593582029025659112483268674735614463470016694308265953390159424080754396766268653748457595094498328214125240706015427925730153997201627337007640740965866779924005368004574052744871130986383540823718966685215456885500244394107411060309770077064920918767808473196324511530768203484826899605541729809117540216946908207258119814870465063017321134816808222485658330135698530476295734107015202723326431262343560465190568215173109529193665617779596354896009259359512617954361127040337148551787497217326966579392947123824749623460354642015491849354897860374602494701434867609105595038867647122707910466477389441265936706902587638570687789926862350287897875417642092120405887676337657795563692614611418893017287076163715878533664849649323629288245968312318265770285661375596239847727904665735127082126669269768469646202526216319666027826153912978417352950319136522605166219223213724784503013067013016968622108282511983408164959455218031399019304365747628629211976300424106323740823764384039378701665743073084498790970077441871944646653971093031812544188170026580044969441398126443439760559628639044575435579725502744492707301448720792241292432308979484392477276546936298810433903168891091372281903668527055926591546498463104404983904907652331429237002939058171214573836902391567306359094377126180558714262628528585349949278989277920816685060770750522934798060924359624740604590993555577865974332897393216733327723463137677286013569599859173779176127038886175366446763299800669641864122940424533718148623947118882125434258143664750825910588411633809749736380636306918161378398483973840179697296142147048670849255065686900590965379512860594974971364939821512825823499046355257620190088166911321281962505044143246129746359553029558101732543987632802602599182612032036384627391779948778705484371584557746374704595260554771109278074243313952584358618666928324425394653960896234525360047213495952941307465883878463765153936532998791447823686870531313313616344752099964049869719724100905169624466387428228742627568203758887529202118984923372003683081012576822747402676518961678928720849395504732607648587187825248977165473649764089527550566486837065145425936741589808030980310826380030246138862849835505933397956934957063217094450368286428305417081889460116383261538617229619545434719782163349887740614135096339199343137660004972474398726848579835577588111365464792545174861841495680168779487473821363328824659055857511025992646333417251457085198150245014500789527869505941230264816918756140364276724283851519916587125645991918741107198983966921996545969184773740617572631908347172855627072835343685972247707622803817605272730259982943710010037422496741900004209149568696783025335769338943267862198441553066933113068705686657171127005129824426568355299781005181663841824746500244234334853617471433276466915393724769339933526457778645364237636950621217193067771742663585375380786969501702688878498107389035525976958936300708372400822589272170885250060533191766467058509400564304490451344179046472746014487382219121211996161957063738874994920215604045523254541734615093328871706103953342242098441615937146606599838540061846555227155222210005525845693525012071726100088668733271868867444119097010946540070062095780288306127495718545940310276962876397652611923051461354486900843920502501835689683560862446658156335490442331310507920856132464004659645988174255534046902264530154534765307626987971296179030920404696353044662512150162849414052149668582730235738164734070050100975758625399480741937225842064364493654587590644322145089218168479853361799743026915088375929340473521579867137492155171479054058253605641977079634571782162726333750474695275879082959760316461348039767857496658689545706289024197891709053830295420748125168510518229890938942654064140440630141953784843244329677607187792896972251860467954842803279108850128620802204350205070806636010863961719369447832505557326191284510073321741050605672240376725307455373541032974054842380526646657117449077300351175022025267595793540276313217261140571177183409920260117185046874637249450133041509793617308437958027070110789644500718630832442269585189432950610541138047601969034119235739916341010662743389577954994276769326675902412496568711821427228640446646176098602982936551114339284781282782692399758940725532809536389180047176195828035771414284995246147187148880953963842802880562902986433629375714997847257332769990614080697851177059495459485625039832024744894417420862423582230857330102731889575628372105231411411926948744502615170149771478232126483438068908123077750002724106886545141623214503264031744400446549455079965886215860394191305908004922162130847928988460364709999107195336355558983367792709060077316929414984955606200834244809478640348009684782089268799659544699371890401308355834525196397448587757477014390884712216852544169178511575194651931909889152391832539482436368290328126289687002260174225053653266753420636007339515504468679445406245002077771103195667337948918591640747747894547985277562743943592063140887702440947111423217791838324325409969091450930426803882563831146167990215734179713187910135669331872080106462822063934379131702445288897640987241945819601787156024492320036577543943597385897607632905124946572006008594644410241314177147524893662679825958450061510259834235673903704410141946142679786700864796036567032454552026668993821216962617771618749732325810731797168423727720611759205290459131890283824922854717666843730416238616429712231684715179142729316755394258827124505493779817997333916945386893703653011226994543455093376906488852427632061147088380039415895052150702761624477972656583913911932955059540379982881401379487137785908026678557992172298252910901018701717620787982032063173238981249012542798206200189258935635500003281270664920204933398036975011256339385072396080680359497441006794214664431121650832246223855735920542152719551959219596883312793315918015941378878099961625076830583568271230084774074618455367521917419513069476984053149047504372324768449355646929660956181622613691696225313558777216767362888187366101133180348986399913321624955560258967084944145143279817423225521221872493469687496581738984063047066387307969965399700421826665203774784367408439598022672745853776336917945705629897687211680422848013671492707531009974650892881313483571570177079765660630751692558754305233403088046656600221522274152372208157299275659430813682252874205329885267648291229334583598371103011519120961400444332247737791654624548244784209485342531567092805408043353079052500489505939805921054552705555507825709526783090587194292690413645988911956613785194444486748229640832173404924999311946501428330863909433908268319171576031721033228951495313969906793569709858922971788474331970960595515738254591488098679834314815668652621977091913549666241767250030718085877242508997502896874916296242088113850388181296858580293550966206300603950941506039408449573839609986907958103736316176846940151783353141720580692166982644616472711671578786725292833436073224022257867630634957185004693623070588540084733570792599820979086439127212007907093226052650609844649720209542886037988201215573008235693357413504612237092067446349762641336039475613409432692747611212455494626211049029994153374552771939010541286938971399943304880734212537716303745681331125362340658080365913235458479636256261385569607749407199808653191350969067249396258136315523158495345836393623605821880866306849746161214251025449754922649810875627658980553679823876578192172758081541351482533808890880903474255482941162931608092726406569280866346517287607009360530010202040930532713994728121202294969674368666241242036607375386099597808217383909029826733030487603049472480404196689751503505589708301039385547094563308575686156180892281472636659268824675447307020352529979394255309597663030145894102175768789933931834026035169052289969148946353902433492256299562703776019552798872421612559139322355956536442901681639021226809063813101716367248095980036577209939006817110531611510409741649594855897718975748977422365178778204473989400385785654094857024584989656799474059020859529937651023728428426261238812369652177340582771016824027688027917793602835973401088554299661285088885228129445906046669004042758489141862224795490695704960572212780647202157433150092892132551947582102637964775201398097806776807174423811045827415960324868176001893694738491729562117870454752315009270726560092983825332114560646684736769957804035377241197212484266550547618733838885213597136435838439911760999383782775811904182357662855298186768839717133713381837175138616339971474729559494334856410152377509871156014437451782931353834958928736581469890669093542962994307170611583785761681494473908303074326670950186681072553570542767327596663151600763301188529568818831128914167478889714528232166690625329734327863105069246510137178122581027399353708388429327839695543532074344296234340371767351639560230981505805356535386833523176826600102040649201210927799714221935154447638383320668476864406815874197378402894468076975263346495514983496274881281564933277943501651256923236546666182557205740781683647450851169473508495813844802152768218992686984183283050933248895406405643692319615234013510620297980584862398164136304924955534570450771120314982397184093494404518895098473764097078941369607530549280443493846748616846643375755663035854206582888464396493953512174348469279109707795714271669869050958980775283337870515808010425357934027042172571139633244263646869864574308436941721617418134728146411361284491453390262902578579496960687731265034011084231124914880669563150639603145596261924967501024214423305816366051232453753119274902408386371010935526168971891789888927196072020526772242894824938081881797827215895557042346863027747289290789223029818814477878623010125106793102783389296358502322996073844419833168303990663229194130756665488304752262427460717907775844384306479913547128872031677673889949458202128244427018680509673283526772223474095562243097326132548499374049498824280116932699677193983507499898042079537543214436321477747010723892731383915318443852906365111480007751812528688066848206386523167790668145128765043951420662729506271002239605120593130107286894899054899726484182660893735073232180564099298994527802768600460637926541019679979434415060118865968236870915775839113842962901048006040644911614808286116585008649567318325505532188379114789309594775741233790647301398373679071037310539137773882489874966287378600487491730541231696483735878000017939636467644028467579402647917556346445676452380695606200103992748267555027265042508897607283981091006808033361232028947426535944780609959234999111049934200575600351198476664435035181110627680803632057972504734623850715986617026282889287111103609988078824254234580494269786916557176890087383301694777496176717458094033937817057631913893765433025988105111757050009799207649135793057446007790843792262836483250789229888127131644696139448336635818859104287280463073771175681969757571592974203579149306578225668310142531282687567006748343487145080152710078037967163253089361927130728831617664400952646411101727247417082182583579625056159848914221190376984939011240485222301264717779863606087701192587158394281138376106508364334986750613231450328937426554049286756365876675263266672487658377101791673411595724374271651460675019917614148406692280506806036237634802256103493146838981515908074978687350953153242299061246386635359942518788278322585269856165706359332988573438079675684333972348813709581658225297439148147755268789509279113126062397683640422445715454784982767356871387822817404603646994299235082397122874353102291408091560847856782636141690583439657682114598780847197895750118507713266949542762837915931930158282080607547470249291560978904767759688301997231406739680577787749672480356485615445436302766215946501717058716463295874345419881458546325116515478263404150123212824003838257236629199966771668798580144873030309749129143556527803256837843608785814933252679213684851649499729742675026149062047849577869270515942920505616290462871191582708005896582479133205776368006718711624263492910156511236721630438188923093218110542627807155808161849048782638807661243739389060156882363138919401460880529807229151456282840364639365127491195419610942178967653135672924606109460062784568340111174502501162920890291960192912266367208950279143474491842674426382681398366511793251379683415192318169752239048915990808933392576776045873907051574052315555426524377902256446321344056279651180737099446367367770821871579610909099868207053745280480260217775494657711490164764748507228421154816099141375925532096625572708682095310430229348560852706047718295274686336857191964337399269381943956871665243152666248908788986983549298693717834682375772974612395033681868827263427821614527545771539302715307221635228045117378700833776013358373527466777840098260807177597506327783201370237501528646568000266225710623422242410310539497696874699228188828986573489608334207036776571365025726493471455783317056138348970714718062748520388023606230932406696455038389683014082129356420025248640817427779694884766523685974153616107503039011127387032960666514178502523739925854281206279193613253078825425126140610309492866184539398063696620205022663613275253928884453722371454500803487164262294280332236012164694526490718603927470349695450757336944733354074463001680090324880504331151785958664480455846570323745194170686369715253792520278315151628660953133557955491575755988693489611041720325499132142605540699315774977816602114993746671183241718399584148549908412392186520351568272161204410746558145260721502225527168942883433957959136167938188126273420132317622634267750751124476613885164616100666591411180571440198068655917746741223271648097017537477065553928798706785711965080481435597676399515964766754496202252937664822230362155934998863995249261578355409948316543720113503725288139369639156466006437047314566284747587312776143847908893845115757796602317756559229548417956141726261805582225138358703630290988172621814599900460198174733922334216536500665492895186331359973890621228313750355021978679088513325439915846652178603100747905635372921683448708379218939169324538552880225653139081832933583890768432138186256300482586866241317180075507611729090292115599486031302588684836002334150387531386901237385880197777023290360651081824944395640689500984290621746513732270640179693898547890867976047761383374531276227087606258235732939696098988135714950566889241977057321102580975637279283813868834450790683371407395147365146896658294299206610614992762920258345892163577856001524134337028878627013949854699676922486926583219601188737099525748466875548115681801948873216487570689163648952200288791878197560704114762238370414940068223507099021738948012300316248004436205456707789797290148868955094360555615484383513270707158765600834589648622320443283457879550248725411603154502892231302809260987187034288568726710897830374143104080891113232182241477159400171761098921570510244189866651109336769147630045347020185582273614292326904960895902045918502314427574657937276854353386633258201160811425943833078508440674515459329924653873441219716455926772343324806372652528593895256911866957892824596338935291765173825743276396125764892192136572809031607542343014578544144634929430823960210701233600091235952480900730940133146447187057435734472621553881644041863169458438653555461149144177637597125899015630946181923112563911843541209903722464848886041373594200956133211411037533662380338474327674277830757059948277342303532245308986542890088189548757653387601469159491477866123518149706923098531071668397313569948476477865909334632702747090716064771302637141232055868044644810147421240607450853754054963547780122554869215607907951430584631760821599115904739753006565288566774930242452830307078653677134655590684315666368175626963584845692952334685070032275065600849277301521347535859232343737721830219223508821302017497157120772855528629378293458619318241917637262899786579141743090247560642181218489098398167571700582321962402161863892165417781654485012105421102545113567547002168605738339733857968710189442078858738596791637144909190346030633354537207706552279353038423051687276221586067453957439974846134850996295392256812480868138961286014880408113157610658060723935779330713316411672946419031628331523025847045880602322258562921508391535921182981380954649526108156460341685337088232111787752515349191393313363375048240448585537790662742460937782816747148187721709407540001832223729416569141072262809380542360835871108311764296642397574803004612898667921558625619021768693798723453944968141737592163967326831060489499679476570594654707550404521087190792656740001689058399940417256658401831065248090968980058785806660362950597644517702497290927298092120370045572684098615577815569007992111958860312455226751573125531541663508217348805237771609391904483749122555864269824779844811508676010959864557486524048720179160481958875743236978376738940031496718715433839665889062046644152917487937921790374903229908601474816856261060619683597271918289447124010240110104158209392428430765318618474001949898616983797273025944950637991151703659089086862916866856802958962434102674739250633904677230859081246909680447654661015452383067177070936438702032394391618915116523884945111088945218986553048184277377061441380143787239240974957610731474808960854226427227051102128740748054550479317968343879667819151006720233172761776468508491419521240128447723700678476705593767077583218560080441304341809408198455719717770731359027579002427390365525707891863438336160846085386740359097926632227520414846797642870160632016939343908441111478446334250431189689494632433212506040458476189748980174295230870869215831181484513399481113881425943804207833553353031506105178020533183300660865893214598597111261167362299000996821765089704136581164345949665592564993420971875977945823310388497379756220518463785803952279030822863221635951944194098994685457701062013036355418654184570712887318023219181630719240398337466222717066135185422653408173368428045082309966368731108845856909420534370469739975560846430817988672955253978862795654901278704172111988202164132059030492907341399004181618121041632192823167070938987010618862072605534909415083444928216088090853369402483138274450132606922116864453301350772523938339829322835160247940889970326416724458840005785744282624733933612985384407124964826920193773144905771718100824970774207361291734920272620075140865469943965241175944523776685632095005586148349418635538138615405280362109254936496241940203373153543761980831637641964380065030716293112737621632443504323706211749944591550773101980689921696306134064733939783235214990784071037094446859792223489201562875200615706129568374827679152805583273289841826402534089760888161505741914791355894343366657422690070196173206407406019884274794369637880393381954374858764676106156560273278619188079233999079412320261487201579035414359454154914266512738616187308288730630716555952469070381365515479469721204393477994316284404582561858848629597377488254919321030148763355726853142111176918473070097321400294354638834295957713176343439572841542917775929760193183723234743778675437723002937368327275682308629507790240423126209287560241770151262365028992280084783856976632355127544825443279721119318746822901971698228122541218813787267862348626256414009321784431504481720334708502730725346717403571456793035804842868727321211383534858906454359343937001227777897706640245483265098220609833346243588266768400786810237008740907326396063110908424327414101474223150918017084066120443684245105036602945107059804584816523969831795667237607950284042878356413850410781841006978552779778015518120674991444808708085764231794802816419845314862736263412942009779591479706482025556815198214078313531239521300341309568678622347135913356125205499360242526530192868964742178488815633846593852271288299357219385080698443765138445111591366933853677662472758019430870291746276498640364786376169971854947891902219196214000850398388491376102079586286364796720937042578285232023620646375842574989694576628327921877049266936088413219417158607031365274511367567602542215223089745011366232779293754100754445849040525057278387615773657115976005372416999769036223241328734086385831576652584647213236460187168301746493359486759584205813087708973866706172554976272066689776810762002418558552226579492353596766582262245368760883875410725688952222987385656735308187020751625235361783643958672095502199608968232944903385589852700021485656437349820851451985294851032224795271189059190711166790918909599041710174667513305742275229259699465429708749182523281151150805017994817244589895509141517213743234614388564634955545023126946470361028356774440495902824319526063093405588523506967655866270305673459764946357570628086321393707292167978148537666943615731875135125408610500996944089014227767486096431877976975909619701984757880045120438475406977795061488470857720042925874474164338302313757401652415553785998596937422805015576260314036233109354643614997562296577129001653374145027831474671217593651212217787303780402217046365581670288750515500209350717965354744040595115316886659441949932426424404673808601354665204627916321819604507053376448268602793746634898023823273244189331025785652523738346740364476742308186685581082996158884219969360790688874633375507870116272393737470889328696455202040078273128773990103092356116096740847437527606300335872271101323631347823149479184342444547945624494886743570758967668563721641166060728818761156872375485860775089509982001741564483802116957097693633330795452032884473469700127429216409712389722159631449161933145545966257355994846686523301894326350069437473163352475200769248113406652895857191547013111519758971836847942841535963718076396709525265836763854213691916962255348217097438464950936884638921706499131844475610540763632561144726960413777570152030320788830949711533924490017370555379937146993961487277034582479208394546714743703248025372475045456804899246338268202236298545303698418405131992149788718118920583959912456653821225611810652684490069564523454216009472677951834095389559060477267695819740303317025765141415128834000674931762803820549743467238528408179052786006211172006792868441940718382552933407297243249598725123236451085643791190699830780968154873248545092436596012353723231207081964137404571517778231718233879526370380025222061644714498508457153354873977315499488214543676336575032762503951341103241040072681818255379591125409151155959675067006978791001248979649571308405142989755994003089785247707182043701101375890099497951752052430073519900133009221641552783399533144672339425557545932280986590405275838072318167336800799930771016270662919346543047562437787921876650120426828090139283274732640323551412473146020288580896327930356121360190462064831305320063940198032139185631252633542654156206606280146017115547678239936310076642672365338584023270728729396102752722280814081549185401999657485357202863719393969385085163034551728499390643270007244501256851758064821508081773668250404823667530804238969198291902383234730873300710436853022530838162688779450589200946852445083681889122952383115100104534718057700153177469068511941174407859897013794248078237336852274147402818577259495216871752790279922154059880024997543950826004683403386199054189837183377361688227292761915558750599016805305241668765052450549020840963997404255456072907040911278271099402796717185594448891143962630943760509505574362244120187507221720426765514173964557800966314306788513825004181569791521486137226208840245988056436183201029775402268788838130641526846564986092173975789740496691888887208964443767051238570079327489128371851740255342123084144836335436958368477901502815280780192171319006156107698627444020587068594580316902174294343764954979289161912737544165971465594551595705064170667964691434995990835724928261374038924859748258105294884932442560762602239708078058958395850954833243129095149413314125842872261190618811339000109449141219876278900183732691931186922617112996606064660913966965418923446689941466735569810959252845847439917722413356899585112795141793486121992169155978092712749320358361030525635655746222936927610712145226230997937698644350582821764167414869844138598882944633480117047528095066630305677445209837591168915998816156062523012311486404505910503103900702172613275554047291277730083421055278610029106709923252376352114320229272219533880025875875619190702908004818801757152807139506927610029132271053069131174902408880474990205439461028186836754979300488473799740821325047303535191809443210356734433285207222152352691793236114589582278811175801921717468954120167697575160186923760069537665229444817061947207079221499873807182844168744580705109651502806427155657900747628790950666041633883975785677504990634255932299521150297959531339405873962016362047354787036823305532337148245785748340676481226130785747262581967683881338631537446938326802220418058779093904775970966073125934883002849315462735528180711440360969629618757317897958295257872432120675611319109142051350785106374263846339413761679102440226204819157117363695294996766491125002963764170960358396718047040019944696833791510886483912729373255284132105779656143626220665834486409322184640027573950789515761445688910304890148608965064424319115599117446561732091554415417545659182814427647833470845847974598347001795285919375318126884343354457387593246505494256505776229496724411407259123710807050053430264499509945217898386193921916662373839111191781873394453411316723485642371656391848748553231036374305718514518481686888535375602061012537987486697237244232304685573344031377485941509002230359230183855597494692078270717553007182304185517146227672577448787841537823693015058118372194194950193604876696262922775956296315876269136561480700516463593807370466374685917185382350604001604379025856647294642284039521319108278344456520610304320364001839878263829889066230205032770208043805938985608781801608392155248865823736599828907342849601821844665193085488624260027951174738663252195457764690202020659034837565141287856805570719030713034836778853844659629864839827348761224879738693354288776880860955039871839517186113195302917726159989897905005464744373198241995872115305053049834363191856969819732393384827153692524851424380560191311874659139957654422878506904652987942272980444969864356648182347900360404446497531349341842166501345740192667518606793149691472657430694008755598440368739034640630309371137136548297059596641935077494623867254749116015222758086566288559057231298435509852655316448677419671342505368867750265026383324583493421748351783797507334413706746752721211057688859428442421562844768076346157662450501701987239408479594580487369001160675889045696428862333576912881480500972528880630201432294044286102263613474465212685133934912054048385765573412253334587979044245546343599219745255617445127887403181334491075108749858460281150983694434399521630732054080554329233916784299294712090144998043546388136642723766345988200578357041282844925634437599575612089705663285459065826596485942395452406229272725681073099285002369028133480181107564751657741825553014837230528264348410526359066598973734133738913667320809967231409606802211452137303710831033220481608815515399258197763390625330702129700283078064787697966974570640297237256278415831361312598697670451397156244784904004071490681389339494112369513911345153253185797675648730651198790736975638932114571373776403491571671105595565521786952935591970578955144913213648419554866774803674702493712550137852941620561818542686903836745957452871122258331375133211529898589274556832942208742070636596475121625893127166164678776511961738691498865303348931704426628206325112047627497917837877152302172179578681415571424645125441604562317311886335642385061064990793107877272360662445306563899847043908546161452450330606919681948139059859884566892571461859475430006296082256298911085514544666218576615936303514571513200189283221713362830636345305625665772051203349763996561534799266890225727145034712990249578095126689230894245017338928787224207645347017923948918357687772786061460497678871168021756318803654645178037655660853248633158635262760129926258289750575095155383504722413492785321428873840551347087389087813803200992781060140970636648769863455452937745607301029653567285141667492942786516537791243481884418848477468089389478286333792754841670901846131801877758065965823659100778721995902749153364804586402929174182023124237206396044000273902438717931044719603836413855227359775655296353986090428506529785897795423314369376309177637999896402976586728960644303702262234056318392517830346424581327298199455351411548500030255835838303649900511285752226081223928812510419181116445557352828476775367500049790643830593442989933619694006776154307147668935429558611481809384388262929423553627817517378582487790595696399031026860734718502430695113565801622994567295807471872838783684190619075213787285206735809897486422087526032894190532479334673647445930503904885198727056388523103314577405883934192039972981576045325178060157006034992949004676259854285309044748855409667524886536588181980460847779012741599306169061721881507610510890493120385456028433199085813474502038861834059978809600707588413948205527403299449476553576608152609955391641593317012549238480671637220869939787972048120207619315817006977341627634730013808565621947101782070096214240921031859390583940740448038907717056341099363987091711762266899699877482662668754072796584998918825126004900838409316280337473223172352454353854422952687453309098351038533372280496254898655294119675602401809562607107321814056093384304487269332069984352418533768957708341449314959220715979511081526084413604403243777062886130763016506015434272133955674450099854927557883762022423360302356599907773316301828147178047222718928318021996794352576062981113942460355492282662942038133918031773623763238209944782701339298623054972133791307036234816981203648307959255606651573662535584257847340203713224057697433490613169050913029843532879168021846354243605570153062696305911497216599139964460765312253953426949915766084152054717580757128847518045943237522777456145310098065172134222090571156672503527582058169434069078615090576032939459335354613446219447784901873709866546456349879096839393333840747802074081400951636612347879772951735221985979239854198758752049952004501557151791679338895139952585382621174343716600766146604847205756989001530930073075270796063260691944732312728344781887192140000089876471288370681644094412489417651209607975643520191545968221859026724154782928821604935299410893615337012102830372124658642632803545794219360481693091900691849425080708069595945158185801689745611086834549138564446281427863860640180800573955675803663267222308170278482943297935390859298894885486831736280063535163300219632689681573144325699274348273073544421320790519248424352696308589150131239922499246609190900007240006803789134066841764614932096294715171837600445001862290461509302222961193001912900925859570764264365060038538501811806739654947409190456035132674834668272889696953525827798440140008982494229113732438413343822897785660662875339006278731240524060631148770234241359011779913045825456880846888890564956780217698456275312899895505725018334869900055923142129593420991058823052221153306576386111468991114356447653732447901255009632747078270583069612235008282045447316027665647402548539732521549563741591434395215232731880257278860857014720468393036580103179237990596598442720221007414813029169238146888657310763288728796213749301511889503420051417123254384486701700792343800097155899888684597294090560468482489125216322820928493665552815727848792194625085180241097460409302789095400175091132142808626971283470157900105624333743505185211524810485806336661822020050849596786229547844504493207737426258847356652848907756991146686697792731164770251920708539229044962092328785557714193114979006288306461452319243998008229977475138364107867207939399270036569015802545622524679127343781359499523749528244419135833954846261944675968844291785027633276923929994004056239359847419862217511008631200862744690808718573495637681563890054340952669997817947995052431705465176881059005381853079038648718259504808801870636647360176967568080336131484495296032132782340087094337775927499896651232864927384805470716759101506397907395316241304081440413878765102196093328757389465257164058348598393425395041545224778950572851686462189319525113398108499419304545742401290283312554050035281219736446230605299496596731459958887465765499180087178065911203670658037332640744528870805604566721919095242046230680088063882383947854419515084824335752103159438306785508492844001115740700068226853961262847599276701869586388064377547448322098620325418904141949708901872950351948310156201131082903817022419083977495647698308812049837028623865210958415132331297234907395445331084845923201497218778253363164429469781849336795360579300655329735265403532652970291106842287332054187439124693127640488328815823697979725757985550954682788069085737268118442514438768584519023897332105555445911396780376341135255029851500128643008620855365452643133592859004727866292362041969537319805717319041115355217135684740605597693090300424272767442126260043095479691037855488493389606592279365934164729250165911965525097237910755338775433945090935469456640517136291549771601644123618714123444154334326112762786283337816397689631220138038818112746423141218191213098058495268330789416771275101158700841224338158560747352981397529326635364209741525547445130260286160737824771827693094415773383104766024121958692351812682369809949906560348896689269605882590428090548893853238191964151343021345150638386451428844456169324210020349728700708668470120672916889327733842650539375052966875750552147497353190205894669184994611205339460503967799037693827727061873476016724622348643260376633349586390172407116301580911103260386225591741590139183664392805286461747992066296396274171983610066735480525290910897509428051274834374834174262198018536990526453842586776890569743334741881839012106318757970417240782094056575986075082811577991901235781014902675194021161728748317444475678652677967411373073599249485151663866115956191517840510945313317614236334146114694229392074879346027333697787171161612904806924593220846092549066609277793559408172851105365978258701747786988285495680966098721184745771912090607676899335673908568129403380958845328789073145128606792911278107592381301891826902788789341640946783922808758051970039455678260805621841716196640437719703348209515770281525405357055716094302393724128708386335851319215663654859772910789963247769845795953658263260767639608645845154538328298514405469882977967396730610013533233002793000409049662224645520595261470162213815834723305335368460557633564831549151884954951413249792050155611794328312426762881725100837917009692662063922007427797104450779363234493740453327055766617652794804516747633476186924865676477589228634515459648937459135397164280743484496143158455911683871359027515236421435070434740222160562674501691849487837352696439465612435773928766536610377709342983194125936256751020596045468604402147498942384484473146382196709333046373160917911186040056343424100020666013471008420472423567946906451057796763720448298198660683072755915207087991470279905471713590916537655931988951502697578953661631490626528963036699160267954872390849921922497803002299139758556265340592902465498807517599541673241101946198401168050989692123585071429995804138326224490611506769501113515621851426336269674277299813367669726893129263287305596972555218269307603296309940343125927354858828355245218288905741847580591316970104393398117348983785641190681276230935694499926667183988936216391973436944113091689315728435631454662996333991554485752420286451252116510526639468942306166204525757405877566682211445168275604200950413590746701172157499700502525351731310677324321135375565081062603324929825042256594063188081016074793769189501387636971298812562196097801106266620789747123271768448137809755616493168374116072658300444374350080229283257568481230480109551623940502643785217756755348441591227655257584027650355097981311114512215085698218609207907912135279980128179440696653430247026758500955039218556934509982747815591082743688114153346181390914658598119399536667421453407314796089425097198829528570906287373244387247168881663021227077370108669590997209792558420589435467519042235403723659303948280952726418069055857341022307125420678821216846279441393385554899936041175478494184405635470726082393743671957679819719943183199422750471219596708872327828971325406500153055696917011121769989420800074898136172190648875354118396046297360986716587722135053259205697174743918314763935531704028805956714570509946004581109363625152105121681106174394546290536805975397375618659825687806615590140910753564487235184321619635100197207187847960764321217483680455315525290495734236149975761490476074750627605611909953513520226936383682193040793601771298064496942099092836626711847925617926867848639589964482731251148330737225865362311336777398512065862871636921125760697962839855708834393144805179428509328965039766483015996486125957911259804577106339253536093576755696191933178465480831515809420489956083070973281431097215460380722462878937899743974683506328706252019495890975297801915078319959840398253663924746465820661667069152310336158245923338440342826057878915940610710216414917695024255718959954457485870032624366639860048536039761261136648107135671013565317055296672423511088806550043164448493077797123271322492206882196302989721471339990178686309647707312770229979546595017953671572645438156534967241749178157797218612055828304569185389288580324592435929031988495401475493623824296051085889511380945810624103416164602567803080356352386867196092653483503895213284680850070925603139097291955576029575131789356477371275303316640593161317154086011548583091269816043784400712395735115305483790759938631774099117311901745192312463587862525064699530578856688722002005977737178578321838326407735152645088891389893174909681635587514102330226365966408082074638018254664770244958863153588178434515847826024686208197100128702237132847790195821713602397639763991578946205330804069330287064694288452271131953376168849395790279625710614426741373439305026408584899541938359497317063525097097407470538794696276173989704696039712790850973527413229655056285244611733513640886134928255619265120286095332345834968716778242567370151361138139871666931957846117311742567396493391091758855530530057154258322714364157498492527602665089969750893013327387218563823385088717527977766752008051945367428204888133910600298208358072764758645046550232989523249802321427363536614776427676819364256939064479358318312716628251993654379951564187119257754208119065190266071623161336442280475590922898140131948654028214363701851135615017557595046354674782074553268233162237795159344441805458394660460647201855819495357594310644225173255760725483649184254947066648378166140169769613477856964793783778232938358994562216848936444736047780104143109872274031168400049617174187222458240638029016996369575865062155514735326557325228658675092929324236645709660842919633627444628088715771061029624078180852392242233259513674148220540788993614625099389037910227793614128236123345001770473225074356478582317357996886543354344654817270261905505826897508627764734024201486202562241869789161033950006934216217738366456500154387284646515476130836234872746630842169293920039505301884720712808308281477601649221792549229733523494818606660771652428417485003716546129054709650100757178394765590197647221969072618597867689308835420440790823412120873049637686842266198269543387135022946385412620741786828266346837665423362160592323319085840248237429584992306570903791172351699238788625291934928730639902299090904511689498791685566482672462805027641997966196274859793014662564678465891175666552953920674695685501862043731053374963369998247251124290779828019383873804589486147073078707002496728020046644710630998088431277732499782609062858810340112251366001593789682410470195565201747316432580243107975442433746631352955479521488052748382548369914899585794681457769693976101196465323718087098028979999631386883692583785079566417790181593682601916234100277369222756734470201076033165307061033862681633117235913793153951009034880194933010333009291864546488342269556977373925553632807775739712070680544494911817206979064910951161887991285452984720093201076731555323714556874236282383718149230024531197098957483424477265168287603246965043261322029119210501563573272538119825352437045564553043298277276567511940501161151224670771969467459826791743071861816397889052535628277772092965169944511689575349390056644982195391427255809871957889150714560928107971178188862726939243492351244535496719420841980686278707223192237579261792478338977826540484431583755583627826930476291460756049906720408434875603042928534297429438132602517970413641611899362905159680065343602873020607565995724701508529742090816581206320518320595891647597559016821319915587792991681919134740160910045162762008681870702375712597714815560990996313682434825936000524446849731004566261454647125886452100455354454242539239735323495418528896492202507864978676899721222307338718983191641061501996882667841419576208135074428240330835091899772659063472521352908856225067226809792704919215199034940030781348610451692331104976097459676350172028649768779346776338691410016394530006544980172002367923894274771115750747893806051429831714460958218115361668759361793370813335786127190761978615934942817169282095543688574444245326419523046444476941457025428677721564835670044899109660004508297947006552506383505392221873919769259183552929735278585576891939064192768496938213226544801963365418763302136207286881841297291209876357920777228686475642455833459875172309161883096524107744841371026546834188927177434530687686751533383295236146932413898807023318017556626002164248275293625299983820163063982326254475329741111532966221520337077844699725031627299888030609197404275674530576525710468100398801681754682191324356083629688094037819868040280060519533129820317924823625744566138282118214788566374592748272168754710846183677747204962738714838916991581213423372867027685760012207430701383086572281003531777944246549737950632377685602062089038730453138376565019479025307548207596003802621961076783377045129315085974477203936667341984140590903703450593951260102834087889221152748062090463359289205765974475183781310730108417773535179146051535144390541205066120017749161074778705305517697249547507288716025938247859416814838935332231504662589055066605186311603959419986367973232920226774335232746936518068390425685604053116105654260814590774744631582460573473845751943634031672462691640757761530737809961586310226592329117903406352913687296231472493563937635749331875789102278306868725278633746563334925043877902743148764490395286670463212231634456201362517399678117681152609319364806061446542319729597182762648822565904559684717908537709682424792753166500706642058067244041222158316465084926485347433607917630862493957289768986916542312979036741601369436386528467234178815134820736675552219974549276824372662502938016472370228256869858149751218183837633547509823845743893657689741309408918598593858977279034286570198166545779382126037205303818490460310455586854114534775673287340746950449874725460929112810025978001737499403639875027415867091160917548690288044313227905729504904955512986801950727416796801046119395769302856890534355496692018626612165225760832101861594968282277997436812594148523164292224363889693266866646709717654916672371096515967026661122595411571793158799101466368057780704718912607757269334527805698136398064721072717826066651782531836972944100940915322208404555762119850947195653342315616450612016667588334822119519972400177255559056201980138149651624033356470300891295621752760295917714565704522256102724216337817612685193274502107298322492457520956052599026064938921338022197751151106458894730923329948025729678550382613478448120418280634704774196106889583814336154101238978130744691762138581115854962758852765625160686581530306306819192819677104949304031367322396196682011972256515736887898534333597482130042208401326483254326832309640286141059997135848808283982282706404183410520177375476195265735400868330800345244701676602352105900900792905874072469467305664518311063893959589100837176946324219722791936269786669461642695042926350736178639957041982462964412797598333649167158043909901545342554912462812282137733682553558764496862419375912868763810551599334060314163916842553865564469145901451071963182952043145987741379049085818031748909707974695234368558704029638840059126435922902846560077418373816181257060181802984574149994684202190641204360571240247843976915023585769276836449600783350612987324363729324152311954059028558682006639251368466818797208205885854626334397012374706132041991761070566877331265315328224008057774738732952395993519480790871880403276508266913590175758694296643362080069461796184514391558889280850458133636840366393236486211108967430150495606616723403207485532402616830157330491205517148196894900335831954154989697929578821774387725134448842711744007655120476128012039957052186094995727577542262088679422707697989862657161196284437654017163148032055619353136341401396043073145761674831730224242339622504828136592909358042684824075192947642887402426693541793301563251570295152124400088625195891107536911679859461558542801336273368888247028332413629150043843989265408192549610961282542698496564940550926944235207572771549929925046200881533738145698726896910109072833096756893030494558022660129671961758908702522439072093198815822439577461020951276896682672788187951201657318662427611136553283855069875207920167643721740020575185505733577760556782367209807229313590613567667515300296190007447288632793236371866500519639079104437391249934582315880039793485466714853975567983074678917969993958514335540789084827779508579191918433090290035793297793292777798463942070069351267544102792248084086600265553882955478964272179014937591999496518130712424343768940702871594861598236249275425369999481905534834035400043322010497444856404401730071878423032882144821052071626166389463631408615307311968475522988560576931451142844626027834122376183422449035944197066258621914079084298469347376058941460191103424566437640393202139738686140897186630021377092356846862203870198620776397591893679653265339402853249208817346144187565942662019723942047634370147663296968936932069650097617518052505825404852287280905721683913443640863068674178151461243073602612045556521112498929694132479920073613570374690506003481129141683962003816590306031010527072172125428752232157490660179863907507272227990480566013761327528758496985538169925177396992759365221011961778124781767113321396922569074731616791855568181752153434241743722419493592251273779163300524766924400073126024725987004526644566544274032304758319164168226680907911892551035599050358850442463880427748275464507801264814549671311776127703071447179991734418953409528162660477583187724849211980996029958377224348921053031543596988212586454543548963552912686083853000169826361627833583267874850639029272716244468025540228861250613817347048147175726338282837119763064595950509945335647091414616712188941245501751942099549624992600362006042737355669297539233324969412171085159751501414886206745236618784520159764247578524577281960851688863803187267584418382016146498453315408260186228927515686753523926994174609188377364092556300562548396383780210090922618266188886285547036769013566274581556188149005209288238873952238364618334017892178555179840188811216149184745572653134632548064332482635091271667754898331761112503851076990452957125004019197756192007939092334043126987758158362639142959218115627347455156295737468446701952109390398671202840171085335355210851098863948485028400361632308314603874829125536435945258700509272795569700691687046722421433509214136373890994141294703762109701777258636641854387616875854523944447923510097377114717531131625418432094707231223068122295944095453288616750440993235358280384629074649251519518972251535216709657062447294166750411393909193184360121104919932681601031692631971076191363930503141730744582728683332933487972150881201904517928196512023187703345782728474669728598588513700640204694781978467294412116822295154350331802393289342093094070620615435577722009597554919107773541568611484820957058660833389681838248968994048562701309165295367587056164638599760995028685449779866549084714614081191797685782805111027722576314394956814704913931341347546709003051190229988176890926331154612867440428979886102763407806653601157325699144061500135153828770244188004062755231787340931518694748169788911015271144427491741786854850329274654777107104059047609696664154319342490248237105188214609315298059283344691366656094395037403181934081388717990055173282328239406820829835492742696468606778983718874718303812692802404956016281537292686499357997800151240798781973987466513855268008225715461004302728698944690738042927453526257273310032803429310654875596285753548309091806076353627602366404885059914913900220804208288888871984767469776417914921691654303812573783203003127005080006187090531637855899938205796786256528849649568529769738638247436126365913748818279051118293347398408625087179171342967785017649517663144730192892550313687735158959421843290790021641524827619198407927121260528705340321759223043510902837701681242742854175670905625480468766469194550620813220209122791468345527555093090034160506338807020352748630271773753975645300765263322966219256635233773500161662960177614558950734295053587787347002878875719985633715326948716191972872035874766901124489392001999725314893720219231690443083699850381007749406781238992176905296457587663536912370865061800057383599897896123435393569691304809793802505462860591562323484227300760881894562153499015639147352492991183489810230854734364809323676132322140378007236883628314832475359502828376903445634525305193887588015609201520293397740100606907489993288383919629648493878891953792770220034540599329702003429789860619135025198055840620710007779740235115453197969218667136649715850953060470966628758583737879556637410988884988960211027178383539370236121781600444282872191390901950153875583803581021858740408445140385558857369645875548071882810150444080112001367953091570325721230538598193151205723633049623319770128955016838533958097640247415489022679433518010474259397635492957562549263481129466660809269793566794915177591945839803678954368263480621129954545497595517779220740591559208951882692731750787505674268920218230919615083009200828835578049313271783080872692438788495889999602952874863078198082990295824701432356986828744514013257216830649989843686278502290640899112155135617509321303307658899898284113134524406855222464067363493881629278686488791695832160512068896375976059167755461342896766702907787475917931754177377160335704517499857376480568869591335625980091305523409998673345529877518861445280435388267911639396868862646079484934524092036006938132953649979563920733822220623678357669236668466201677242405248536831374629816527687206926403337303896913950351557904568139761163280819582552747758567883661676605971556953105478696122624136563319511843082842702930689832439189260107851184502725401628952471312637926149401444585955127570193913462551852023908602883096773958867749446985633949374966216534638344253621635745873052632087389572955634418231763894311902636454733129499105573985102678621438751867505222323803061384880977904710866635266406948986286323341213361490843914019740400750547155860215371377686569905296190719262381134100012544653968930636995076696102101379795345229719985656867310483548308103820955795283969002554994989749865062392225310837241147286075161420863787634504242230024273436457280065574327223868999217084013118485161388223531147156389197677060076730096585587028420203781771711681182374976356767090981442936704010310106700208493413129840849760467472769313213705073025548953578550023426887488354765899154815659291262874829127382096751631563470785895582881534076147504087517560961224820902487033789081277294975283895749693622689579059759501810458689263622305700340335812591597268242614220052878528229201523466256749948970661681433204857615480367463951117842878266002288800755153010522432695974132055766661077855447273068481957674013459644158098167448602798526314344318257017630280097660706944218678194717002049838664415055148976919955385898178398771387166505441126177698404582262414375079722885575316888344808189138913478724389396015661662961552204919991553157765189047880214912941758669549471439902127562087467829414360419387560710640654381628824336413951631796792315973150396791945859531193661121303767116297483327977565279120320574683270736726295965311356884023030871258449715047938690196063656409355149361369000264390595530735814926195259035355179665650737736233237677789286624597239126334948188944978229759831467789216364179749678846419909232349387048551485338347706044945236781435282585320366097012151783557280834180633681348232250620922206663754486271661855906722995044178156340530439090268524249843375795781981189969442441091184807999151810013660171423397508312357061094917182678741877446812554801512218382532323772162845760043812667206775887188201332068204338154946579944094516784485559964559989632453016789748229347899223877537948930023219016839099962768446401888436400407701223269091300864203836656476261239485086741892373998337023024469898017791534314067420332828516424944828461501832401670538245418584166047481252543008989286147948128641043183593766708026459579428835699289043328585774809930192650380757544081052058375391779881882199898628022838055453614203863388016101588274516853710655286572439279008425686087301258705140460617237617669711864691640792488588838001073211235980060227626282776098153037869815138755903557575377495839601201383102224916967885049798460180150604999741697760287339206985119715721678364318269744525039931206949323510060862647384710866539746434368024915859089324295608204355383936691929902253082191279182317385678309852887243622594017563580692149871058093390740655478337655157412806394404558390194416862156871562444519346773491297957273270468965440608725816270656554385079041772386095945200748277370837827842551497052629261701795585445709501055842842384936222764426740435524250955552932286396831903977821468537392077573706469493789329745370433482348839115994168282821118253610016725872376082066167611934498133278781666432895860398527155507984113723814622874205440795717082132370152001052536416278630694750790262184433384690928631259761663942406595205251776619700192300312934487992759280158103037378229830030500268486310901935549390825017086130588344032348886817791136512117880594501144964993733097840193986803152826878735972423441018206960895400871446119781065406888827300941566793540181957826062995916325258634500738083059905096998681058419371301670095438638781240536707715484913031025189663670021390977403245228434417184395619273975404237613384583434300976568958247363232143851751081102017933427531310482444761806940908738418494740769369829021117263517773542958231042564858013028658759248395423571958822616662299969921966082941486580506177321750710571217419737044160350705475152929921518422415857203131784549688591214942933341375636862648267094204445634046299427605450709809365114107801564179362483080424875952103442978764672642925294262095749620509527223786787180808268414734814073845554332228419633658141292442176825385677248471101196577708460707952750304798901005879625668741042397999498920385684355488524212574176558837211688204006331609814044301270945783561322250958922840566471473564132715262056274569086053944883069313634906980159392141853030078437904982518577188337246924481218923981121609098038715089311288566406981378697051040110071447311057686826645725826022789171681687188311353219953297015591872138727037106800231942807649732185784694422977214622829914628169981572558024817193960362791445168083469286267985739419762110239626688750225021614289290995961752921480283805715303370822001689611222492465002605602648225687179116897119296613740177698919286799148138128692447954479778692651560111285056012701221319856989536738837994609445851894617876482276355362044049005353056556480392709870070712300937018755837077846421809045904953010815696304859524531927469250836648569600578018674500629177178822483028248236040404025471232936904292843457780364822895008502073486357486363752556673463353473458266215745256412722981582887703963293054096446572875098959852252128851482289963882689450470690173805032132686654349138472960077396336095718584421069289802193450224239525057872812954816624744458532950247127283966455763454511444619536801720821109837651290439195695005267074700991950140380020102477208697964764707411036761183146613720861305456197268172734893544612805024369076330193991530742785251302765929256035561136104258987357652784285688532050793974875751402219108571082822063053619171348647754557610560095146063159460963561187528202243324993876216077609091746577238822928703894612415579500492064985780913092150446800241993117771568549462450947580102019761829763067061491648432805546167815506353373849381818776276345718635745783716277273739006331064702117152532947299974091521129264468308007707647256592915586340274278275672913162272393107675779909727745838623876381442875493580357581769468611985276486542070870649329998697769313621848081827165739862435127947830564702316604525540231432914912707079123880397001417302795957638636188622429036176086843130888957398551343943843441573176413996047357735380318317102792259639478388392431412517412041260090538567181054072640885376308285105054043712767526365495012339211115995113061556756992849566434009886900711706391482312459299959085345020711701943653626764169833655464515534418311113417836634348585851323821304201183683956376826806689877061385948307755879455682641568997442399894001612197759354598888154882501718657116628607976953284999901615222782360522291505630324754040734048092182887050006047175093159968273042042877940579419407496403763082681640723101670400767556946454461705898391413428439844184548191319195567169199418525363195130250246691273112704676260788315545899383635727693036985374994795276763154179973962882933130049288387425060677716370131900353729096816372548173157072334192045760959779354774631582061882747523468771515797177233116903554543460616737171309605651545639412554487879877498556213281605000375705394018499965406086818211675216671881889051975791734349124674379962829204233125700464982302979830196995669207638687154232089392407674837176840634413274862709860126580810243018252956383668061983833242926808866073308002683341781961729799150341530337514473220643902797342878262588874329537310425445770583634624360496627087872649966412983229603914142268505408235526949416519977746264391599056133496902113467155196485325302461434053629988405045385565107428416281344724049696698937023592409741410700568984230479607270920111914996499483144561719616568821755386759676187149553663455214579373068569246399826722242207109625671936054875289700537049187435415086786154351408838008710400379004221937534272168362780346270417319604519038944220728988352750797036056969690381930531062880423198596578486268706467019899641440096881282239632063391398040230599115331695232807697642481871023030638599600050731162036092647032094108387995964523297703823407316199064913631535452437867204962399448661937345224329103290557990489235803404725205057156511047731925704295621628979723764860598478876377191456318155276501005806990107560472731424115051487682129687761782657567505823128334483936441132074885614146028450040533303866026987784512745510652923364276893430370715549097910794230842572850634562472518935364889275001070752551157540469382366733446904413673829875966522644451741251759361696580568077862255645106018817826936172590729563671139666337524859154872823029475086716950570066642929220073842537053374598105050737492600797659758722513349875757988854027259619998306045120351313408975546499072900201872658572443852627650347769717084339577406170317225371710822594838795723496691375576496348350315954855572216342784841630954609959061563168711892897884843724173845936743495431101421831099747808326625283456172952310574850041183259895156431869877484645774215562166123059270277122476181291013602950442619178184415345672918083122364357996718542200000059299326966099435334466059802665964842044122576201340374764454915572615392170945927526309783485864628124997358752925193057644968594866338999217541598994527499196482033561265997089189176347685941950958627774510340969382666048401604704790707566944522882549417190151022213793164504217283486074290768167392302013041160075085611997007825714336643159758049874152864644166516759658373132608759413487975740506385373416430521550210710873552990248358281356420472739241648881869393797790099540628671890498998268517374857448131672994854041327395605041996196594439227133352291069354200171699508730036498083707252489112774683840832422815699711382679227559612654334244697328887470928357907953692030870836498259586492878007614619812974021646675669568870664811646872115680459107872119260418805947631733634424299496834996856926706894766393313906815889673021293239060482754323099621653893754494250353032947253814586047316066340277224031886836922604074697802666606112816435819195647856008635752934459390285417817731294251968951766786157427200789881281200817827025677977366935616470744032603425623349103119940700996746947209945461033701402143011610264814999785484372266200290908716187295785077079382889767427360635028412593575502258262291690489517320115587048422046458351750092127429565492067899800288653741180789120441493308596200530412099452332004459075045433350914838377322425527926558502087214044036695265566777226902273685421319421670057097862575698627086493714318609151227029981656899711899322955529556547485009693523202272370071041450008867443193965879959034251229977979520931529111714027554349212128163899201772666966751239863448911597840278690842822332214009385756849970623261400707545975548287393219787938905706021536099996055299185470685105306533234478123197561206047176615409170964771688850304466794315299946292407804498904673446783624479407356470486376195432722817717445636485143820755300877654668225513395048185107032077338621408626416829930439049728300760533616300120332515481579689777242847873101509213156757781891405165954571995470409464432950015446141464449550746595745218070077305767345317102692912654697840021592996540446146374080884284218647294537812657261411935731487368486856177266339243649700652968267156120518442157760432508263862517589870430963572128482114664116710775386097174562521771024961327912933801273586219245234454336789224705614242589585821094262735092249531905883874007806890055380855303263295493964914718181027705572705227625349620325096234705223233073625091954604712895984258718184486042456723992411469130474190125973172528300127059310886367936895272798194223244611421774744413576685802983401118961383668993786553880408117041816278885507098936100503016056529500972388761262730680747434676038740112578159291555664878502440258280443327228300549870560178386750423359433261884561677618885073855382773579565045603602600010715255435117352508694849274213503445406436925878131408654095599248768386753546405677184143567326042222065910024098335048759064331928783240086110939936925379814015300217052421634254252025240892570833209082210538900863659075299989387826096011185989803924700722680605629687026628331440941996610374464289467063108504924411101435046197353625661137910880195852293218480033179117771282707590402744317075736576652518066288090437527078406769773990376508110616305686883920949044830313028578400701027236980509437156327266935381851378542756158011332109701126501198619621517230000017122342586383990872009686856630481595930516595016828343835417097843050192657550372060740103045856924549564449055166010384935771319492753842757489311607465771330147080265030485162311956448893659933188270066548014911213104077121483712985250338105517507474610435593145531964934488322201968872847233868419250823342981145773395197730982221145957923541007062600940825551138858287546292410574030853219550133341277492134093833583459715568477262779878132823290349696267601151286900285221046054752753225474590861535754062232717322082768243946603150631437165400974779947409171464980718566149301533844371935235933007558235952311652031471029233519762329167051933279666189699469982101652054593780324371838252824394598976634416441300658357123986976790028852340906620938773837647410604214107693473380429341575972735466652339710681518907604600327350052976325310059966412486587394329329072898638079425773781169728729768444828430311424648237254935860888382937117313633763772138773552178265387423048310394248614181826214474225260102559524208463613457053964837321901218594898978801367982997213124351835543819826993458979935140625051448700437867092245955805088900612522050317360077827900032387384109077583714130179464752207651635185879663417222046136411042578674612022556615655296424641305540716960087924625476613884497633294599926195408587830069023778433516282422867064117279776433046829951561118756128123913070917631089428320968178411692227303349936630964847833891787123229347082176716489275074520073257455349653820729613148777667730607429296363335926646884625578856488743618385233936765472617504114303263615733149544645162927291726272534055761303815668316706605158568994249927916620333122146424271521777423753750327967547572079137504312519290591050057435965515538756762187438675776520568462117213145627823809023448386608124804966954193402455498654959495320735709191323961477254102651575471712264350020014578952830809662164095317295479734368454587633427666676578833470856707066244342210551740688159904905250359304430814553332420139127991210047998033789312905266322115130668625327494205737156302579838571034335011020097132997419077406118505637416106504821574210206401889071258783117957972207248161828923780452047792986124696653482226528804013674419135109905497584169208150766011060815654022909919418937700509091290553037334743316397524990979507157064833519580553423237299886325379729969481327059641604253262729774662913097264974045967267231375468710673097762569539856659082470741722685834966908605490642812818466588430169454574547753666385867982380763975204251173692636397629076654838337617886524633921877477460228698761630450597180822403043977672377714664595239545216232906952988002797617827663769627449328012307563370737922998538669481526820328230235617277828760073490809844627913421458361814437941835041758504577329292856334577241433252542216291189206742888510622451692433658068072904477989461828334391655832351566800719099274969067942480230758977666095001619708943926582856011496670962405171223353038072450257728248592534678393423937216413110886467476794881355787976747057933009888128638009272654675214644682660976977186916644153798784860037210288655354141876672733721855794025342207364028181897126668913863743298329907847140949042459656874357997382080584495777519554087319803253940287744385642413900151604947167395896843524401142410943597663586700824849436720615631641978133338468056350021394378050889226153488350238602450271146180564849863283221416506167569697403533321451072914402700573832396227260567779878248041658736720219179608297810439000836404407579346587070820931524263234820576134788210329188090423897381876913277775628885394631635283394498342238635079283421799177826215756082537020615545236469927190422921977486139951868141897543828295038012097465325820000192874140925228024324806187017207154236996336344037071653366986089680697450046916253460050889829546238703961310558969464098280103453475880495450069551351169007865681048783667408547996105423558514413588804935791714368642177379586814826624656331223485133028173980823535704321194770703799177297412528064042145848174284147683430395653025393610663526895237368825442453074029552491423306809687117023371692687440906206448545617052430653656029529091250353679780872301422649288037875467122806116675548825525047430647235335568537834288506780242291438185605276228065478454359447923972185917507058326626864705921116687447973338274675518990179283273774190307887542763208204476872514935169458802529130140141570744374007819154373668672516275788469416182777347297253550851634746835990573775069601960180921463891440126361579355949705014119377077708639181514846200121435629880033529763997162376529013763487993489239484133812469915619328235526129997367184323308492262153106203807284708385189366093006918518235135010059648634235274020230951324458871816694805674221069471105082478337541550491508354847592118920349592380006355044895478881171377104411608744801355572693312482859178448827016382785051886321261569336321230602816763168323294832744560214233983299121529305709828182165671540981228024583093745662731101458372433974382277958602904472563164120517973374809575333956253196342103446867921254968700175483096903296054464583506332121884363977559276071296526473937792073041506804637721525269188434445201593712259448035013069492380085840463454613167641523070668281944065501300384983896831686495248710700051585489967429959732071351239461125392797542232616041813008810770930857426270272287559400881613342746209802469309577891531903030755575767221052590280840704313027853731888164146743320090545670164955137800297706402235168270760186183831154744461150061952426432654077505257135711631861313835512604505699155689968399966057483149275945135152521599333571969709846928549332363829228473641438699462755265180352748447185184723806336029403133372565392141378202914840788299454921528353334999902532111469194764147655994266321016337865417620562612494272073208127557442009723063277204835603130757596045004720564357180156298531195711711093391384120019167319063909414404234540489703894665178809121476407631539024333581903719821364678183886572363295333679203957681399946206331882517498737946494753791250950094995974018177011734252871784201028082984966794584048620392258586122412517769545588980605199709559165596921609637789523804657559317009629156658935947991731469830109208378812057924639105830412916888383344260077100560259892769449449000828171410089160627305375677695080093698801707019448564670847898075225206716589837847052648875649680244315571089375754530448232288086064971744497659981263582063050573374110788488134258852839558338220652301787850982228468631045249870266584617924417213732521276318260598333744150285791347595509638668187346487936012287557146395874086144773399984528948870373962952278313152983370835650807934882574204005681499920355844295690498153965391060659007313539908470464217148336921975381922488623356773115003563323780439005089966341841163422058558519782690293269819119766357121040882694268108834044418139697076116203665687899062454405974419255379886742712426058034511141157645482780221420723753156022950479666827254610562395967041201237684141255104588460554650056059985840379950582534264793083227483122747434291095795702741247572429704809429933850191181849609483428635866866419281951289480618291304223187037371065466008553057714999857403622671983152117028493363011001248139174411206786867032070840763443804618986546996508310371414623524438579088823042591804668713596695093631245136438128123573245397676842844134407589489327294084462147896107072084745081399022660954326747852287610332105727925054226814441086225112058427111416648735956869897258816836806257568571937351266138415003386191474187693419353893385088466067503144861814930363731728970363152609544906428237975660607336511623076884975516384150050116405043815479421857672386278576616852109113471572749958417757027970687933617989490508999849107975782576997383497553356371751400735746956327731495749008929982951191597135089193950784066292509149832059509119552827608348560206960742467087683479247618902318875972498344292069074309921078062613871463799838594393847833755895075948104979876553274273637346853217799374064867373901016527090430587947863213525352012319404978583478777296723063402741732248275160970706918801925009065683433732578815853994030044031044558661010090814785715956701325981480747586148509763272458053991314007775019946987755365937690984181405022886222348935595251537760833614529690512456620722469627138024352066392544927038513480044020124899140575923283800111442124143823265348012205207198234963700681848816382463127098508189276191034068899056084223967202153006902861389848659883280186466048960809260423670528208052342424306238715755854750168017714708364733188546668912434560893077248362835791794229679930687074233614485975898422133535628468957089277700076765775473052385184400588823259361667421894271386106372305789604238672828424439787549489366506371159229066570318426102278816428132181196769925038094523057281034576684149149848716370620792832185275277396164583734748450380661263555058960175412618134961518975428258482775563022944173042318920286122180703644897572005938121028317232055972686928946757425029478494553355070058526887018874977001048097258985146280190029737990160990513879542598169653509580447422265986542560191269193978858596791226024949074140426485207311968670609734270593220277995734448386121557610288409405914406122356439386921887145599560066063018871584150858816272536994744010974930278026437174826481968339967572422428571625035415621128898607733553142815180354976018882885145335464202139085036550111794948308749302663958134950043632792765855350473500207720652527263382271189542280062270911886305236346736202307962023851199044751708273928812132773133194907289071016949502227337182150984123561837486995141907336691969287070039452611051662322301610636558167954160548262337039081518440373992325762293671901117634212513320128651443849531656033256280414224180071315890619899848567427293703617009737490318212056963346466947008089240989670354010542185375935278008861495348464690667317578385554235903218324467679232596017790366206889925886171779686634148225301225936239663619187309922844928392481747690261998384349374785354879665710569442351118720607058499073322732188289185225292772721067669092417970194153583038701735821883716489942863814616142118896735690272522373080265888871978916939042307798916263995996390641630989427181595539820677622333513272348310373638114416884205516309592365901999238458580676153524221684957262846794851574286873770566013321555814570784759741325085283147811795298733479499356336624924889858398253818317374991078133348149135951844300123447969880856304580604305593027530674657955463910819304477275515592131879961286574694852609638395665461777513697420586742626446082149235595550531242400560130239325918529809757511630225220028430604356704168910409631337149424406418351558313323876288823738929516357203366302201698905440394709954479990065577409460303216590432208542334441301788757841478809651032687222703036465845934204805446733755382953074778059380559983656042393897212394526636836094555404916237638498343748410413191244735685536042967457749281280565884333668775551038751336250141332377493283257444176109304935271644466903503071531896500492133714526218211467971086685439870841330675819872051900075651425072775098295417350801170943369619523130194693622645089150395468687652248410209548963157189680345621146492079150032222938502496630432823368519481487740392745145613218865751811213187242210201182811781257886329615267827980719238306392774561537691269918873048775403763864013382028449637393146152427724918906547054632292405486872016267065760167366529912504695757097072412377847967619144104449226944772238384840936108380032014373547638900941433485584617636951820346995915392266256460786210407388466871163925667752849245278258416398148277060491243100507325200510408723013820632489220733737248680306301678112994701879960936795853022956085891887276732173377403259060797718862986232392242380455058184519315551433045551197760126831899871098120613969943584052116752749113811071776154678478574600806934040045243221174860969600397390533774765877399278781998618485170622646926335469159523386878635085620796741833292272812046334602782103301990196302408939701323852951039281477803419636053580096703911947505040145675732226034310651842477356038657030122325200587734959282783496086614418090123389765214998312718839795120418135438250641788309519731590618096872657917006323550014999096137041662938987035139453486029439439513926707456429700650789801160232707820825067411891357971499761770185763208794287333562598916991142884091618137759125866739502109275129420619823017425266789055867287878653852405078683768147902945513855763255382000109021098385416676227927067440649488314014908718747076620485715371681826313602797027319525601514367731033997972744749452531896178393655113582814166512684141038809586600991570330859092854376195953250570480840516039914068932511399377633781478337753986385989725612661347309212948752509271121139510466151697735567939522155172454532141123832727786894540542138267484675708699470322296390945279988430487826250131963716837634079967866334970455925271590118702433601483383549077713372633584696757088046903503131462690956207756537177742416634341547658847462421254901523670002078271551852284118815481861747622790360642303944580904385568237940871617699317314447134160981143340238259285359407863675392145914570812580453739696141279497671668527378715571706794718065722000293694277663068297462379802627994937520917750998011879427268639033376348330729457373290693801352241081795967565414326879625785938471509681378570101460386875093125258034416078964237321406127870314683115327870200105988120973805562709636921528095380202509665854059932740784181883715717335441838405733746936883508977652034051829331520975659280167438363503529019874254358590241795576343156424954647616945371101121589333420461071283752020006452181752768293581508510571662646808472575939797719870336284346099271702905460994419118935077563749778839530385821227462302550463829750720062185007134147426266470891621019514790033744149640794099152513531693437998315095629247020778047590651450730003077044971193794105890204677632876468375030909396420964919575189450669656310014740821976662787670541153411156363123307908658404397739275312838049139948027604696150058799235956483963555898113159149746264231279635686010247938208264425325550042307776516458650004459624129479170298213226808678980747138409901564062778042098349722172533719063125150092278811006134745055156925248456445361422394634659869022793750449072300237796931234104037295450396741086932414375093318566612255415841339524815444996347606842802782521392381393634071565254997484453002963088293029426769902184042621676401278295643696948623838148273215481797084309524534637664093349581537762085922576439554141733191765930074728767973229695633846092353998373348998968798691795841652021644367538469970330069363018907128522365799179126666010687546920173507051063204274870344080356159128583747047123424492498341434358055723586699381114077680479657903270903064879187398812513058734307218680812249315295547433596039079957212797116704372099960560685967247807344098633000482855246887651209867046737392010404917216101996344036606202323189013543182784046868655932258363014997544866195536045662221226354494874966031275518510493086847651844669628526690183538470095325017576646436629004712703284579605085315517134624236424161821981650888544577978833764280896421458868223496194915109637802692496340721752860928820340681242737282905372448530968238489899498355205642904483659768696628774056797513924035280230645177470818724945882764010046733809354212155235209664942380122907942869054676169211445856466835585579961453334705128965195779202534531831528176105148403485744577486757023346853845597758569426350262097581924285115748684193863359267743440178843788820729635316472674726285105180118729656386785073668061898754154764107626430133784109903347451365713808999276275066336504470895989056776659564405089998494699005007632465309983594020505260074333493275676262255106374509379709596681097798352874125555807807524269395076570727134982328110705995004864496071433934446151350844440480963208169862770735143543616884790797520611673770462860284002803542325501965615088736307911412009837966297357585328301861278246530122481700990461936761149097254807564385278735311050873165706444890906785590925663034528892346089918847369977231822881098799413111943805884531899025802679940991298208397422236131669130705539661934934138969453776366850049843802786377738245466203935489087871207191848406087264541030222954601495679651454656273933149863706253142252230437658081544478896333263566272993342944458846094487435054926892087327642289926140100143521414180353337534146350087247626485094219199284793188910702024334862443514506608729109101777312720770674747021796946940131061442705853311524106861365841139273665033193737833091525524463665430194774426316436687199414961622400126666773475979464232838386357962802307057504285145104591911314121686515374051786566216102884324929984373460093909749573406860816291520752814469369448897341561623516995714286466489282179636754099394537109538713425988216386502778860860989211039171552087036741694750959500127665668457809039263809163780813728673389945321861079241857745031616442940635519723624963805209910128469707071687068054257857506098188604293760354490426526917186531667503670672141113090174792612865150810026020988265051996711157242526665843536070856272774467496203812473260795688827739819321967036333359287188640815850055872836320790854764197150026694494486531475738975011766300679504994240633085313338781877841721194402403334358858470059729948612377636590652041641785540269212501334113196415656912919528791963601432422725614596519804617407556600276638004510189708005487943853316661863945859632218026328667103262589894121225660177966442261237391699984781643935472965180846959616674888800394232563460527815903723348729080272406633514630800450891379324990867140804213043923698392036995466913536767712883445063468327053012143746705872070018678856114105199026370584660461526586234448939854877805383305720992623953974111344217083242120590362173715829518701761177947405312264558257973462518260331701348613689854844998741336040454789727337727389114510537039276454106933647397753751072310455749456405181048186080681599272387404231909052491912633244761866630229836676448314514409646919704430314652217191075250617516568363690781180207346446036053028246854469463727210558814975376518881739689025170296218562322165575605790303667324242719288548215029441069651739314700428900594502220457351964324315356877562685555335296649898033768448903944259916917409539168150675661899792185237871971989077371047331419497759557968965290727652006623833250122360747476062989957274160909895923182497606442577328833778188661290644607588753592193821308664527234910225798672870245165838861967790873162075677350798969855799988163593420098312556416408165830056328861059359293958270188598250491143812469719483605967695249659290431630737655862545030521344312472898853972249078925327071541138102245567950230456522250315055005275096205877451322417047709301951132192613393218188900262561952847638898640584870074045886048188571766533843896795688562616917141724315907255968753769479514372463711531075161423325417081873729568256136198856881530108663554950872558545738592141795232336544417343673155782131638252531249865647854332734079871547581137248390018651925756104570467940873391720988343033809494171488647856979247999126571987458802897350515997661595213174574303092917278643044743635182960215680175132721142734253194946953551956406319234703408656304721391970889752970737232625375302352341748778294126699211536180983939203755973658178586095318526147848690750138907664105222824698582686594944024344659988891329767246798657772723776576144456203188932250821985921977796664648297649226896571914788307261911569772848130635714795785931454493629214541275755158451488432758734237652876434748673911734574420014530454068052097639001123062430959430937301132697154611872202651540087631387700077458625187720959110115339293981312021657297268593568481078514380483986142557666083973214399807325379261263862343238622591060727479509525221086216658708070830536616434029531417644039887502051418596007300544049244277799398731426692098031915234192136695159244159920701502428406805693218947713075689494559553100141192748470031479997647559764132521109174124789970083722503096124101914213786502698699399370079473388808409951312841193807544560387398288636048520687337204279910727522641406962342444740056067353951180161140072660489221223665795067260441584244843453497020807302501945964330128800468881241425725087315378848867217860122253438064304213133587828302188381605721964256376333247326808969608052169112355895068804669816798496691610975865537694439647334878173168236263586034177726783872316572341405234354493006232267874241985020558058328916202035651226125999058404528706682040217311076211058004595958918780394447969358468951407583989294434686152082976000073062262974360401048195272561866069142299931840085513367610862536322635314064484735420730264121098258396147390457187714273568621606623061283671947338234953981656294452789302664225156316971525772588814975229483439923696060161036551067284936980960128231555597176557605935951707829076337014943454077911162041212432426068985279603525615455150304342932155657721120085344341954306351937866858958367021076807505929735407766555570735931943225801652180071904044792907133741864400679921995669923029759307738234342293847957998698661432499192080518597318329864952271300679119951142680364075251227450341800211113275376198936757064497671574656209226707973701661063384494306676030893986099003361807026210598950313589784462822555678046310548483655610808204050016847761718817957969019976727014882103307942327611508533029866516068872294130204490176089297003216325786439203255658622058976492734867793012499400084504759805357275846045640782093863703888934645307142461869937480353837185846910225944757153405713088010535020019044933552240864270618002810075854209701314925671387718050605642010511462344031891892793982886760426200094562620426108785945141773950722343217842940520917601004412972099991148870164910782882682048424210104781092845956111638865400728865978397278301342452037370292173258235448832078198485601899341445211125010717455961653458210111545506365422246468703459599301603489790270589456596117946520513474443925175898359369767606135478728662816229649399905306349801806025287720199012444120801996752748244341895134833446033875459827037484959463848198165104493453085940210591556364664627439708831859940107350392966913276092340675033196896973164047622896581360414142671060154941036060189479060475845192420775375313598088516325343706890883688841250942651495804297827994856667292334029307725607987118860156869416550961367920397313108994516575223975132216137086749513561271203703680817587229169974930233490371938125186777462650601370198854960923595440796227274159094948812584437075231371626624704540152871052406686904156380672406810120160304629139802440793134924898894398650518208917156436391058556190266381164283915393126967478991122109696350301018447464296461631591201857018132715160083505427559995762372618372158919770586642629401693924923857595723857089994301225950958557616207317935633146196149783893512037893960803342343049762718941607360206338172976304571461819095270662874342665804814540697715394323267613306955021497920301984789677243389411709585780666394909961123962444847243714654675060581798216995614308904058951875929862763871635479395256992490154714939982924698630807104659026241913831336009048866746749807230400693547234426921387772144391198959411690118721108862111768441323986659813962581043429636980936535826522275600022587523506262251817718418220128727037486088236069509698508011083393768959916044824807548435098957123856937188033765005235703613056571000750322744877987831910359022043699479972587582158463181339767377415770394446437021937539424276967110808909349838165322790835252565136550383424260237530651582670227533018926563871695788584063785587458839142479952619930917756654839935707407980007303211101635375191398310119164801126429116181678025187279067325666017236284688974188998710478804755906253749111151730540665951062814321425581373085205951957310786215716271028515750395945775734731577457186317910424991125348879387159614429588730190277462644210368078661541726050665005756066764833937837649362386287126671669091293643191641011403141279377842132415417191467955731519000463909032559320317956626181860163118639393204635135218065622752904043382218189012753788800878619577661081050688721536705111737787744087188599190213418105748922927316792598543138383716576102222782537658300162371200415495039184333692871636494263874462195247769292224668889008528674205603417146098464191484173382049507965080881657569195330783916012005117953730442155400067704329008338537549841054759392249820080514262565891348256493477508603155877237702262787640980205179992933371527969394983165161311650171352376463082871752685751439795214455267078504969523629046942376555132773074805541914642544703532382195419839025135080839975315082710379159623748472205752337926327572737698103615930726829930420924111965257319478970317658184513497355388435220632741672753155179708666819135783657193685579120260400919939233070288293181614575099412204305524167172596405732923201453695993610156548048143576766758225415822388709502582935121982653959968653516570851350831455721710320969177279522298186165878495602812842056190331347978328929176187157017767912276484258174117500212630904269987966157329544192872501141335216678201917060891918825167263774499492872667484104919048686588267374301710716020977977653572889516924958787952642076827250484048397543474597538851013920864781695475476351925089411828882613298872325072354253779072812553779580114914897111993534358411201942810751618695106777077521778776675647016926496510907646947015339701804442301417084176000970701040299122364760905602333468454087209486114132611845953018786971443043336891242798627686072047421585014649330970216389737659724774452758793888131956362902910718659089388377111358193580958550256210026691942657692982415946318902909216556072376011546120076735494575893697967210329613016899410359738868921883688745011890687198996838637453169879271935051836689669338099345825389628439601307548557105915451771089156463240326296463058460998481895557125363742241786246694865729093210839685319520465208450630499667066101236278378768847456369145580456813530983233460811989409349703377971322905699451125253611790816392629294287109530996774854806293805122520057321920942318325799957803613273386628103441159208174111557063070770188130221786430028064765822461361694331287484563653095619016120774710774791619364098018750875168890202812825067236278446762301009584880460958702778739548941299894238708230989795937918207694539574074260212110838882327369115166383857214296685459294590382245751905991961036926083276501481370482296660204005336427384837137711175320353338561392918609126846323058150252838011157433616746247147579874551918345202011737120553551465134467648280789828504886447200007865490041449160482451424097678360926680323111661677479153316790617712049556976373244876180593457766908310443742635222393833672481145280646098702751848614223939748912098116344852658923537155559682383037297712135233509406881535149543971731215119989953913568043247999883908814587600850718419176911094280133588808237702550523004691061840282847909272412793093053301569006246401912127054857903120494845016573312830265543056238467057272084631941351895254619975647937012607533052481158690702397925802821158819879017181641673086512120741390651711279124602432129549520447980134552316490397460678516990462297917716711465230088872628196848689987190507252322533392917397239867591149605788418296334598252553738229448097619245805838856244049860174924288953819145560751200505423451855483349863097114856615176877270314159415059872878939735494978164702689606279546068919668327026036053891579429084436864570977595092279445336537810374259665740711637407177677799810410546425644909040773803770054145810552036150293494639643834544509005971367206733043566108626869853101026493007571674303784604484167723546705550002780217469063033387755007859559306431671780066212363325160736075794436978404537974508490768893769490831774235885772776728030749303183600579716937800551138903100339076323229122014279344782568681053177861068654824424966274478519729359920016245145730938127865484108207347664268136376557817316687777599615033232256952822993735686204116111306657382855045955833154690223738158213243898757357832877814765658087291617621192181730999145932097972487711239101054326650523906083540572602140760160811726163756224132463263292139274561794976968073238861220582862096893362513770283318639475680129792643548710662159808306572519658195077932905140546310430040228924350985087401672541668203186954192615328650087398876210424016456877951302255841537661089655057221856615581215269559304892084085733248830905719243246116909437464869207159446236939255541126734969169408568461638228336134965409564675522217402481808308830493796936408452376141889903793191791318447655242327161230853523148283394079644510263074532542449718729367768985943485861319218194956825273347534033918050169556009893020437864025885378349169471435184785438896159106541800925597274624117478148818622075517885461761213677690722049041956563192220146033418489747234722624935265989378901261971660229824452220183065807661000089846572529877720991708491799191000387810765405941359997571903175814756641109468090807506100366411123013988958158388728785314903083416037570158179921685621897374347593893623937206369599057312144642729310091219485521587522844480475675617709910459897474712018535010337300731785111775168135100576611923786652296122010841712283036616198508116217884049056379036641463705506050718479816817195491723056675017090932822492107106081201807819939198959896540337219136356276029295247730232334835094544735816086828281745134796988917366507442396370051960078357694725239976036508723975573510995416081319765836089284608057753507821172887326885855522223902825306904562028469298720402339942387089739171813425878625415406845279990320292378918365220756820075996355698654099222489724870024634910588865243118506888944198502265358993754670027438609366903655073024495924796566390434462985792735983320873043008743513692157137224154834335066314757506334137331225941534197804334348902684219214894916291005922978867557620105752242466776408837063546868848325265594500927449171749174714866320776303217287443985806918093884061459764952506605460793613994241985599961094468141166831530797662577870559207210539748594837471686858009206254926945004001951559416079845084611592378052207929690274892494340854498397524509854146564706720462665496065600661247780317688336634135783736943247212076686192215495926294646780080647468972318602455396348255550864065026102023969365365783638020776240113232916213390288149530328312249798097418823200772932753075283283248965227540225073476868429638391244614913744419812532594539650414578530037690853674599666536377636404060104814386007261061987699511708568526518215149414347204131788825687462483711559591990697993196173744450158594074418907849466233888023126338154355842064137688423584458377369569302727143506259075605180151652719839725612311531669566857729952089572748533766287785783226624007671673060307437639456618446170954177845709476477868715481547855682998325426006681651167979008573693966516818237507152550281761691952659602616090311642192833818754688112986138691824520738140975605657216072144652619405228402519599093442389902835490136009803294080290476822430752960563290209528278139771942171847323793463109696877062670332857186338098351960894236134177886681970390597149971250756938029100005531721016433498871748069222588066208356070329128031086080065170527051907244271847385094798508918286394423399119006487567329484485702056637650013560661812017938686327568240300575986742340736446177218899680565943153225425530158542728575231185473087583577680140574077738878643167830700905270312892759347193808826272414102870700627320757031248651598973107446140476541459302093026980409755325028986576113267219441033351506002936296593052423962882661570501640621120513966501544850956182095838268164215960091896576456146259324762774397396960093205260277033502709848283752682515049614231334241603827054404520706504890568260483843232191543880165849984289886901864567336150841344501339863778107988835903465151211515621514830842035103481059039231278779811678449197223652278888004808489976068475584648908184060634808140361150156751521942721159995675383964601172371050642174883894801117672679469269961064859487824503370267449060326069470707296351828941760437910830004371974624994302710239834404719325889077839280410173638825309834613749920876748070200677960730144107170448512017323011092217754990280184723882759881466849472325820690020414611340399970014595146671710724732857577377122106562698128025999372238794876477996369572408470998568554281181806274261985492283849699714629340136554999910160467198374635698387331229075562555372448479292230113437728717813217502302520221242844589597989344246744115402676265257523040214053072801234806001557803506016582812756260510694537605708759416270317413894810056358151725718366726000273622155643967717491851854456243679253505021422868567779332389302893219521941329649080473166639971602362764935628711383207561182932422746893474306415230229486995398228600100195126028184413895476916563678624884559917750977407655486301013427460088275243244209240023745673026622579940637545780063067439717776535318419872276651005554510763777837021698580185290207816216440873099967850035669624019844029912727363052315786220539300625707040132783086955625034221698146427298492068551971320602076590556366867407554834266369033730987891160194027045189579499255422931024249374778933741848566705921961267621735309602329357963031889884084908495835758306556616303133371731434182517520909570620622331976994101675337996981801915181015486922870683357022689521370117741062980601770994055501769414168162552161256869804555664415871760509840479035449669282993279565434466524240287808536904566206290610839094483844302083286152380288192817184499732659115688819221189472173421737694861321917358933905581847475879838020641400566142849191324856150893992660166512217870277936082069318524617997712463226316527001176992708545547577236614830833633407126782950226892891461036528693742273688020124862520896566943583906308514799562670107874478812405047628997513016496381417167997745299222249927479669630435105616445496518303453354236144991370018469530809910171478173132746576287368324362938162152673589372707895320869678260952560809797902059250585163781755044885801538896453772166246573204540965150425162257592708581678109462776552936963523351520636198807528239881221634182636801008843977262516158351160174689098759111793425359319492196255306216949025275376605166990520547390757691833034348276061327518022963677236230661646817662630091290673506730566323632734006136708936528405630881246150176074590526268521032132134848843958365410290147035221903248296887544785831932072383910199329030955472045104228780626728472238618773429165234554242323331507880262892600637241498496413356877905105864196078080955238805823293662877871937283716325696726091516604101050927989353840868934508682881943880451273038205032898119251301614251673865615425876059036117544763313741550371969650095362660403816090381226189616449918230309440142478247916259220442722523835259308879687872502399160988273635416472500746729167387398956784024958265973037763912045323964121772338401346167865353425360803380098870844959077866729191954248565003352471869031157036963134014597893339728945467075927432931588388478738346543477177223357360351536226040259134662759472795830185843605895610289312134840396856014101660282295399272024499095612359902975109039519990746287832054551347037456953894388256258065919283198456344969205680993394627935289278392709044352004653304570855744800706417314242351639135489335316202973128128397744402942030367507001165745715566524562088074290015935241989949595881593558887831171829649549743441179337569751727964047395609082175799181774753398653979323087626432845388062828492067160739500575962666409099999771216802774978310627112991235157617418483566285614265469036826539136398136832082589850016217601403114398829532101954705575670201821053004475429865687805692998688276522230267614411215622984811564412131699234272780324455123289815818580144332440758079848467092843144449941633024450921084052050038459512783176301068507780735948442717727368436454096049421158373580231561841839888165392411609253105941295025179650670874487829645320876666279603630219418526818957377774859401102058630131969476776982078701823938018745515357121322393728041151566383739691699296956785467098458074545528261900537420336095674016467607192259210638191655065719153378261818351232398371141575329158873138429658446672936233562412104693696317314264858618014513575639613324822551235573054057333047302696369517615797126213250658260558697022139379123393432611316554487150766892391528273732391787705560067689628364271925215535735904997804793960606146118976729272313773525621524101947529447899492772157828262381243066045539558115940492979200008741415944911724786052229856625868428058937939200735676126330375982306940135603037455221741857235530344868548684293335236703202947937753023919886364603963028171094526707760222130946940061327171040974001843133693819917055922305589358364413147989742812286260851846762213078048741339587526508695654211868521135838327407716853006279918628460862291321523942855709275669583661915232671852147971034284210743881566990105896408710318142239414926346734133772981065261972399053329199448867942762570829661143114679427919528522286284325607187614943209132531758468232934104028766774377747393965308237769462850306565177153135964632660005415245247170536541429886929503627411019988951653752350745085512425570069672179655675784060620706274780995693340526833102537181021215569228452706616605110574443441775054794761239113233116262832802538687794885961493308276154394666341509410563187874446762798555492946422352794975099192124978207951706322188115845946335179207974009868242192121857053381294636446048835710711406605605690018143760794436643242096542297219548086667883094885538319121143400218116379453082200479307777053822514370977962787980681547592013712897898907696045551830431094911932755275975153650180991055966821236709178706263800647621050278582034815023308704628835227424785968002011790412467035722423639401391506602903335228384960626320442414288928231652474421577373003178660662153240599715769313865128130771404986509029557721069650880786811587481987087718893820359289340925782201429904245796043677796595229515429404500775742302873251024909465607223152825987358242172525078888229953458197266874735115065505076446321704780278881499305180720819868864972421593202162609561366070517721977930461335841999998515260864949292156943304313322103336071872598982196042072790365576731297826641465651778786648434022091234038498644112065322904144744625344665117076286138445305141435735911609597697374707309978818552517010631301047586930648209135632118453613939425811174419001842002228143074072640815769521256888023764192028425489098489661052579840912621996356035777171011648304304267922285317703579870721737073470245271209590578278516186366928762589881890555126438980039603180859874547300892424664940168911665484577348799147906231561105613219782077253505722334821513549871204227386300521184897940474744815066641456725861298407363698384166411271814021470486624552158877295334815309196838589843691610683844703439504825885523816699074425772975127930035959018350854720628631106277415119274591299849392343469693881425484917262929426304484567919668093988430425163809874017401923058805275286082068210058962725517566162205927942478978333122466251327295014750003167732828659511018790381464153643228636190628757642713272642751208260413092408712136036605481394036881692227121649564195848114211854835331300676302822682235949681619915719913942561386311735588743906652775375137412225190955379617055397137834141485430912148618784524481469954554246493999402831371616760063768889312390315152684918420884481479869088395013962397808752499814131571136629338077928744996912478004984914457302197068774151449413329269982401540756231147978123087274510426164496516138715504369050203688255630478685340574757068544627999365928726766970978719542349132813401405100306127661464370119130490816838312546273588891117962060069986736752016008369233795335887083726853067302570008439639199202079901047372750167927236910041302528975730756243222385104390231132702491845016191283472761592824469367102680701851644636038738339933455561534496380363354563984240503589600685727264512176039625682282959239657643054376596721960005610037367551292512227987356151146784186157161841310658779084556267801741825816313242477457650030158932124754662651554687766908169876174179835333114423395793594482170176611015490915775958310848798191467521717068007080471888831629915052086024294384528712009555393059504552841681964570135734264562703579231048427670105136881807434693014080708051127513835558146357201413179844314509391787362821245467697866195172239844429545188052670844266051715314377352512877938264624158073311710626495224994374478129814418312143950826759250801012130598543041282454345188298705769590944215181124401538623517157064922743468803815662986937438704895924553233345730168651194513347851159839966789346280415015128436087852435411974076886431822042777405325553392184363126762147739193928304187612674803936324905006482002227389694156640355657941062606257980971964214209261708073176042969835610975841740157387252130076719937902481623426334388984748856560032368463343802421528188129581424285951364222411968109369302257327537485131160826551380692264974586651349483595066433976446225973719503733901635972562264336323879317470600635232742168845239203998577625034766195511508824933852970982539300799640725556753293652748545842601643467030775016941039382564445333756460839579721305783484861836591706876165289673748062003058219669525592107135626504129296604870301523964296858772357239891356873265167975263128227402924857940708580619642949123539455269839994833094576939625244189395017895878930292397125267854119742491347818458355287416638780041732002248109572344903639699962284053450131999654582548168680663629559572791461321256495549372235226791928259118215697445641686281041781536008109855724213839348673494294950859868100181301831461149214237147040830666824372429131871781451392241485378193714588750174757066705725908737875441393432886496111835542362288446948946546867820455043425634103347829216006248716299186677436272246232392071113796629055762763079100029790661573557250949094941898181264325493414780757170674177772948408385932225830551615727744777241441769770562109908703188598032193617484453028165939301078658987993008553317994253137645266802772451829317152707205060535535362668866440866199234845390312789581815233220638699545340924088972829010709622370889604502876849734285399741070542917394615596016449330822690454172257369240627540048955843422695111470922227776204845695980798642025584976913961997468813473033851509852998594410629026771842244903530127454142636676299620391195175982070407002507079273974671851481385249876992509007101341808154192379355083600937016979703945048515293494571509575871785333450704544356278745849315073553876255152339775167643060213276266617008826889903135111609471221545234229900716797888656771502340763190208155149878804799190828836499623957605824992156337661030056399155740813789150468574484394113694836947712579347338186586901449537602055520013456365063564051567819333951959433182286785591192996443042121036654918712617489450559470638311388093296604586263348585839877194248335282703754769500710771748859060178573243235863833355709580350798145835973734449921799493701015948291264051744840139354249808389638546573849833651484582576945725088690845498011818767964121742362751358068167108414446626789017846771290549772335350707695972422070046040243591218021644452148748089605216559583036769845593558264674760814277019598419141514351145873586376443012728885753620083354154361466392679548550662580259710228879080018932437353502041641472563989937331076067567741774235411439940171918400895698542920313509811106108590387302581817820907361163904031922662334597764937281781352667111502171252070196968541184359937399051134941038344567460327151636068031688301850078510235888271615666701889849049600661670327606289643468707916882707690488150590492730394435170113780788068942993548913643088518287173992420155496724425917873647008706148187956642846498908957638977806113287181800934899982510416543533415796241742814476992872953922086272696382872382372710498576198956092031304736494186938751878798528204670336798237149423293703207129390116997240585115411397746258099576182386772344274430239197487774149854382461408635518028745830712811020610338739946710904945185267950203264913704680457941920767597625025013283247224186680697882665646344574160597204742758674961369014830366531560389892019635841686950189405735326162352807051700138148214929602557832784176021152331265048353883190712673744769533777967868999893456810266022282302331032715478254207021840656911504452527527340035363948690109919101707472653596366912226802565276569994565256820282055610151520153146061619930042099221228000520967900948455812277179177069540877883116325975653204148278507529162558591534809342484691493994088560459382112533853958333037577741784452598809441024458676871590351104323323221821781426122049162113845539519971475825880544407113757909841477688152412352673399469528181658548070439450655355177913240970628289623208106195858440013622219932998669629958881473026526987626084304132138772985227564594551522242954067904291423876456557122419135990202509198190057474533622627431926964475558789040755886469685564446222390908884722882439498094192910467345413229170150732849645748348577266958882943940985318428857922451049061152726547725548358640508265804605568692571282384607496608507480955323580217395211034544003143760410538757553597513860544841208775891622279146893028506722625580550220195699398204448033416447190626395657966005854114958939442452900506906436984738516904195354093414492412101466549396880846023171847549005433922635969783960407479535983662047593129198357828859926177094736884769988122106686417985130073163200255475039104147984606038576066402820383552402413744348159965869675026865276178684502859472264755429042720698978934974974172120170476984228177745802400182394772296994544903696205427680310707788302540127914257075411486725379136730010381176271596063252834168606282914789240734189894091396996512922343262272800077127404628357606243606304949083015881996898648299824869836104707328041954468511047281268255379507930930751693574208666888996151736894815706898475816440372156425087787090979719914240063411027862644974739087896773378714549666439248640708427157926105371987088103041456931289296197314684915991767659349036545718114796706281774246589255456158094027049882627913783251077166674489983304197884918272148228001962348905783189101120477388412098729912629540551959186723794580644879978351562432172949506161279246258640828710834403938473737995266524797762212461076589555928523595635397583433817774858380389806086300179312798715011814605318992879575692358107207079534436774468157271763009057603697096848773065352643615705208525338985970942600107045955058274561957594358201532096514642764808082430256273486797081052952536244677321606631919760341676616215586129926546223551715002276926209075282288713546374018775117846424426399619931858469213479205033621102476792869570634509960412495727796616304952367477539817571746864282653375169745512940116751283650177812952341714425907403769317060094997364449963239093205713528331245513805171075561774426637720308938615608164057292053745246022797891122052206870672590621790766467228233142003735347336407695939311404026114467830219041928139127210104855767238409778319396730754947869980553971273186825618127063848384225316354419234877378294892290300891542708045734358974634694815758612509545536723179222256662949679106618409875440901454095397946776088750436399484318098832163090957646518509554713614644022228817039843599281563069207317833978909511726485491030496877003252011452912380991411368782498975619916197355306828641170935431212464565129474411457041922751500772326143098373484019032118786723985825963624610242626841678979420868871736872981563572232185832412674567348772201126458628546532637058290091861625921966557588069974038411707263936347402807888248689021259935620001375732164410284012317442878963208522880385275272440330557970142740490460318295041297965179116417330933925735153915142078676871672166092914512461505635185232018059986994841711366476532358797997074847801704555633318758909873840425824682602284071994338937960099259089479649491474111464776341973471036288858973590377120377141374496540942875788338887100337384414524036347551164884493483103479535996353924631543678669286469777677984258825936661417625254651188474642607139819103810897849166685654781865427783337117376309570458192602895714936874413181281708017518569006325606356347546785512572528991449368901901526241169989639776430793337956572994204014977814841266802809838730721793937905437439093224101924573378608509246689516737251173580164007998742350526329695722874601338136960894390941970906131269626700661725788224742086920800705350103668437435209417317671244990839636086631109759848677453073872880433634729830625630392532796932837937586446563168411849841878623768025177015358446453232999404216757098868333398941179049749816454913428096897792131211866948346670891083144228104754597766834533358962668843718452788627236526112565957557697397962532073020066005026112961880627257960485028920948892821197361226758296446969316817074776428666347987551297981545427367876793619141206640087052046212815580374706260536074036169009620921259177495810179392688699977829094212036690494682806133913468063120896629613628227988964347101184922572149255893499504170756880439783375769324598020446195714346702169569014428357387863382155853380564587155156973398148648929297807289852266186699089472508390351948768512980020846179363708463400078790802656994282929112333395393970528931852370099144125313895488043293837587509960422463717643562187786802335432672726620538842821162099771034085959432951424978429807203143231169043071495624457378616284849950669684432299622176154169831238779920270802644336482566290289505936859080008747759826227542658581060594077463408760181851029228282750948640679772092561384233369309644269860880968578938509437426612191278651456055061148928438193578207992729175576732657490700903160640791934720339273268735252389997833760216341271686733511540264214767211461616138886682263553499618748707972447882145318800342071142885861916332832039609671466074157424846055761224278783566611091252043752324841486712485620071598332927133385076023000836574011152299504752394580294948918375853151501506575288958394078615505730315984800089542529122989662429611142239538870194265348221009127401240126046909108401103913330653139726419310859459099714305024624455579553166740789778527586295928434788451837371269533155365482095583341324181060360508179347871193371996440593967895957879559667453566337671712537795865667266076550843686334484398683622583392946759891753584187167258420133354662646661306583738814283491511130255376280574024452214866239148567841336597967667762744262467149905630254935231845457236851227525936443334444702545962017501695412673912552593299999408939941017193322946349526630831858126032998417754473102043268119897394747271200921492206577427630108865179531380681065268047967356980833465914108243392508138528371521250245578913803133481175045508046104295211543833798493741870790794498368566268816102632418228264683393818625098426191735136130398811083178053232562974492068561725564706532329111310797212129117981939755227624354058769422326939956108001664352122540682657911248704675609569335545935164509596899117630064968149263325371776735385429111516720571949101338442617203649611063280036933976967106345209939777063065391844516375704502846890278004031060958777935651628203023734779919720889602529935785177020222523442239444277828891575056567515690943109025621121510790829488702655326363752944419374577979649572653849379311614770901070205028194229630456466425056875466706378621929547435077478918229419366490064478442765376617079634762511750748342774185494450407386236157757033556407877961538104416275561318943551720200643395103907264350164722931259818797828797709800036824428968965514140334026412991444600902026009148210585273261929605353755672071292229250310234097134878274254039433893095681891741779756577277686448364775044593829150263645372269176066433447078037327424681108004654460823266010647079811950258601480261183269983295682591559439353292785429674630551241112429034080108934902022711182449577651564154332997689574812137620661702693398755494937324801706742315580158919551537414898986161770282726427208692866187219950130117755995170209120618417761601411376623646473101286378299182915796040024751270929507479390343306780462272886994021997593439921774831440755145580473293717892451508255457250804942556707092769722667539837276424247747597508009172923420050104291839465735173717779518358426462653172990903421303217528524837389484147575280001920013266361847789826025262414797035462678878553199944638928468624068865683910264505388130767189590528892696345201399518014964540009873000031279751693164685673013559378883783541678850876458049229866650177966404152087617977574204329685887966970051919391047615411697232835478374281170310021723516094658265813980321949238858993202634548644005162458457711488044642527470183923258367646880524881973123099594343671169798629807369048182455044403759614002240614610653048959500809437983611138220286556255545680617110412897050821001935105348038891035546869354084173491656890357475892646577976159602021361176512273771152351021081303458771680879666319083257665455393245687275014195772463276197131693232890192835774355145374153979165927116818718581464372490253199855487263507274011604752088798624284801695968660766179930697527507857408776152480013800921721256978363061837681176671022884226778109577476437788956364495787763516875847737970421524346835023896191445542869889362935218677873812753011187557519786214343175343203453705931012133741262387811424321252504326181097661409713216964671447203567551072609867350844151468645210469658898479220341005642032579730411237567279192428530181694988006346728151474034471179783459241002655448065076447163696921310803345998710365385956613311155439065390176361170377483153535394536148968606647496523609974205501145418427558243004859365082071309205479361381323474691767723697884747966298071296015750468269276438322282035115753761159896957417918073404575722007251020911413129647617274445483523844791608519480214474505240632877461736611697629758384945694669467652367292436806111342810946440523944659222881419700834558535198444461104492400200301018512576106081935028931267855635257154990436156298654583232900190917488065501131557904172154835868641380884995734495909237180679013205416288852197310149496911485719763208386807890869844334751529569339103348470510360593037653606716591871229860436150750445590542471162687905419149985897540392770796825589126220636401150969881509750616036776059199609024532856295002247224435443160518751510927787880973691496647710306804143474164594010992853267522025275751546936013493530602725017344778389470541871341820917298819930355857923866901510075262522080302396220943227428415516072929465742511070140979773022608713832527336507568699600866540324152509606027884752759952021363584953131048079130828296323245340106381751178122194743924708267339954254380459281726376348136893384392226034438745915518007614247059575804635553161574558678082964587996177618218017578607337455314811186574761052266686420563169852782587642201425241552986939874267148895295335872207451585003117652175765427750900364469361884388363866858843546883346054758997926826490363698681013673644947178881579215891916871203817829995841125856340401278543811021617688817970324980689432442444534008516563379868880550089429518609021121256479983222441184880394850337350698013362102814710434013281258536117475815595828570605676276798959570253315519091167579946285047675139593651257506761579512763647994644020875792315168185071840892151618462902379896408084853816467434271302542955182833370126671544835686015688096823329081706977672022696713340225249300298773452160596735871643076486545646750607123144487926784560763769303106803936237923760561482515119434112569800787451379729013486232265642324953000803758205627741145273128686623800669677559035718224253320722488376509290528499085971229263640558186461357112214793291345153390083796829474359619439068968592285666530752757928262567216472458927501265908677752707041002283636141275846694435247952026217025226074735078365989542880816236537198943058172978366442354594337995693968884616071331725845923000220006077719633465722073987527670907692091056267918320441387440151318595712165073958398421242568395360991229652195565160522985769571282268444924663235130203745004637953943097139143037132357407558012574799246511512019699032662731878970238300905384534784633931864087046273092175225984600350902743190225132430873135494703795163465352026071931592797337765870262646883766788317157195135521621066032209607752431982856854568585112164202531475292820731789141309235059916795503154360488861247914827145119640037904220160643917777903418713086214193708351676948069025961410915917795749180709388130820756258347009931535450319251069968964980194404701061427858701217417517180665750055431369631338596865375405597703965004027240602325427356137387202517204966642060654236719842685060017792844036188400307875871622010177668935556774852372256387883688011240664959319938362551067397365203757938773420158356537386420754277366431549644677355271171785051110037133804724405796384777608730851801197992189398126140081240476829899770272064369651889401952590416556123080259949104205327341858272763028514364960745442680817480850543016633323632043513333719002620479734385320678481098231613877065459155371399528756269661751581810421144600921826572947232703693605853732124793499767245225330996356324440036608122561559226248978951004263518875967351285964197434473809962248468597308002347299297227405721224871958961180003281002597134730298974677532246174376680080263745170762729813927827724842137888653049394878461545627435755251572747696305530933418140456022123438740442557431468598555419071295564518990988544061596609493876285136389529577160016676438408288438180044600072794595564592578942247879296258557851349060057272152189364957368863736635758950525632079579095754833174802532063340372295374946092754550204590543200117358398679960437901518778569390022743978972429322437225234938423514207782232371826965076759826837925132673409493853561852848459396803130197335571410702713819542066758389056945285038067049348179166108854278748153653158482662229774346551072449271075496345653979622070057260289869312157429611329992786636033150884516068281178360461757570520679880532260381336802332328591652430648954778806485520598248944631592266338379952831930345695629328685901310485393838797593581870322362754326280331029643487996209811544822226330969389101457720018935980487476327875496083959737515394651138377092164190310168490793563983693273103235206887850528028002605722983668462944052388052945955151486239877345783342486393955053064349206683722325799267790680192118105424368378692835818488045966955477701736666574308706299333767082428298819589386868568730130548717367001117181697788896053388456007242433553447677056467221092090814956591331654325176060931813263346774046421606797902673285270954978161858890568127341371869175931364699321590172514730944664494834126967577894839573139238718855936685481798918772681863646316715357526954224726848634848427064443263072271954500765204543395690600304704604351782280831390788832445462880609195298101245346617511207671014600242353427519143733899790770457486338199033384960356010170408181934301975959404692038202220075924302504530342286200965049710551969429986340301832288111996304656752640693115020174424167166598589510244306136746049384997111367028634669540527717740681958378891904305522667551790719384357410468210568332256640283070206481309630558037613921802076253007857430886529911451633682397602359269075635296255511246512972519964271287043883446523168063193684119832415394140167270298764799789103971383604259945828785943713824195223526748748981275777239193138161299576594300204750041518197545866131200577462358426551874760143714036989831610895122715555122966588016237097822005394344051532965281022913929959228007163147874586634051431843443542598668867001188228044674505482787598145810534421462257751163510004227573030599639340825017124511266612763854114755423729016794369960090848978736984823379333360957677985769760840236382315054840194479738047445547808194361066344920631350204185135993226153443008465410717308969071352591379902520627186652261193294429467988504148403673758001407750497374881154871713860691039253054970608208401843185354387874726727582252276412768563265504205900169211313987684959512977198887541899442350153920077062598452424480145687064624764377216665810514554861659790720627001971044767021761899241159106561251981841831427757221937264219195785104145256286473607110148613416911748256855243884193344420815268752524103268388859339467035244899063685952402244044689827914833061252573334773043472314921367368494619413876074427026940088974229967841384768582885132297432247762858449305130484157981375253690519821653978280826438967556758158616946347137630242653801637988443412171720879240759206778341818969560858221725975853049193503105908532718310849577526668756625621931283664325694801732706636272218851174645437403519103080669895230463051423170220564307374082607302305420668506538372926272100347326826957161376805707285564460287084564893770770462138473145919500217918230611881918451518837152211196166461899032307118456705522127256427869787753944325446463363748871593997858929248270162551046909723327736968621567128462309091649026170790780514005637679863930269543588042221590330000846016378551199054284057279150855772963774770384055859427683960591014092724528270692967627315439136515523019764804328664460483931308001907641671004518829339107619093910241319185229514713289764345783642160791037032859926807401199199757640142153720268958889929848212145264642753220946606634434074458115563435716896015135538232064595858334525209273072894566439419333820210630586335451673769955834957435481317981500775544679716140049262705926361799175883439944997742103048087772854161324770707142938063545185606919432450200485879437910395312001314939624237230423881645558337441393357062783340580753038540377051560109345769603131898044424299715587540222411179098594607622200325757041809031238131638600726655395355342411801992522747173889360705262428543092433742948716841932691788708505342224984351217745793538864662619201148399695615094529783506164574404806858434993178209252753435420090144729321944662785349150790232999307030643014367508925795613671274228295931495488166268424143821225838671006690856374280717870550767527148145833072943359614370990108228663967372546633765588008882914811194687421722346224842823394021233866612117689813331480240732648135793316048526608525894243203925524874942629577482773094343304522364919591495304169320288347279554923961553630443969129852606509296121601228671225468377701689829988472594770035304709489537737901088779942838768219447537161220482383677469763012110994295578284644914292465167261013689732539956361918180093171374470906003923583113019487136399597528966967819656241137367547299502999882799538227133186602510928951714394098503765025308561814428696389046571723699219451287349516052864902480740605514500547816818855593013791436086784037136423513793332546807187820255523665144507354647205078223719237131995236771360303387599897455082920595755444987943028434174179599393787622184819091273420959667461417852940120512750065714237512872388444366100827989350445745779177514677143617378303869752990214996641653041259878560899758017796860405010281630314304817941981289724042732095408970767787890384281113099355394146223404758061505183683603609963023219209139356691000881444593970606440196459873860820116109304608650120305964224027558583652933538149378750500663965901070441201814981086205567060850490634560417344878901776937161395888364053208003285073091551076428822454086337246255376783369425938583307506583948368591994243888867093107562137437273653480833115274059423048805112033134369752918012943491432280298647760822325449262001589343737434087023913349072794462970839010794728115559633497628401741483373393383429953182369934604874162523187799116389954862960160628171856988983603049773200398457388730806918207226273711221266170662791512578529597270308727963584187502102366068344433778225489706094782793778108488190872210253806467082658471520591219676101586721150168417159441723489592115075154963892041753402568312524646303209793871608180074402306119253172407255429565629424323699814637254403589725966935898992462174694857268614297024326136888299764836997861440932971016460667955501720999379691957553730256843041861178297948465339379042539479113311960405525678969326301927487697710202455032753665897893297616631431922697844587681211490086132903538917554169841221208380348746742961281650599829381988088968109768743866736526271066527365951124968528669168711083205630966787284982343010363823144462175759631448708209590746465231845811610603632524272797090869948695884725064774288243790603241563630025056852983072773603589966347390323764531692241931146782390993774180555982823643703313144357297884412671051400942912297097562081718551736263658590480365064375441175149357164632661577846450456108787637765489303973692777724875298075855700333299874068653414560279086758845835977897473791192977832025578523824764335458621166970543226071478076037558151449506753311482964648571099835331799437192032820445747008318548984853890850711057400204111000525221139156958343346367067775159575795339391956409560607254182845664422802905826986344880129857263182268153151146177402694635682639086739681060494226024169984084135326187382613356801217094495047056909262692172101573136603447163025290113059260178390586046263200216339946423530063161656697874449126567987578065656907581913303627234555786890881656671532148820389112419256920942309698746284833202186466153271662814331969150953302971992800973971241498918172642090354751410503862789354777736420757504440274889558802179404698309605037463338012137164048209389378424514646520808111594224858198061176088978791665317963129560237055445985854077336557258325878774568238315209024612037496608543272379772922705837335447264391670645377164785880582272275099398510928920136474218119606932700253502926374816614554405157226363780298744409061386959395728085312266360979732570068277159670522859479458998930989988901999485389838947783085501366070162759076811557067317382111863868126565008230465591325996424306307919295075071602687783020804599397458472906620869383709716142851051283670183319988698049304631816111827205695982634838836541448512713089294509041580161244612167390193074270258830974825188060874353016011124531502168889909410740446601213106873695247688370863933433738923306164254934416207671041497649968216037839137779578871886268413110326114503203268181471225533952055329721936465966158881730060025964196473326510984559235744605249412596902016194338760994801736723541374326782486186635677797304242012702885863759112183800273396547718943448059163841036982854056274705607103370605283589251681070771207172222609287807659398229215021335133328168828746327472344368463809928277781507458502614753075952332384419319788742426435199300582081246140712661858783550449911837990213606831507486064727037646080042385389067475520724520523967997657045315546550893336441816976291464021176367385307638142331548271467471398128670994000890995923755313565400557461023786400780628200259660990669475686981730021112554911200254925569571324083418482734872341733997928984810595309837263566945526006953332953923292274186204259264049518670553613657029580578783972681438628314074889376128880080518324921293013147921583317868773170752358759746854846662247659792331459731951362701384991096895739832343604923036916988244239361311470520555194710174970742752783499421974270068613687784388219546637263759150885701362659316748607770782579336182937372713378504843225501971236582284272457305365467890469340046329345644536859600313237751420630583466427627873358925488343894956579189467788412973497039158626480043978605418888773374051846594844184999717547718742544913943534785618972037839977428798326324055819736861620503877931783299254422244745175349634653644413242301576501644766385971709209414996358287444616543857007564107757276007172239007976517760611001485833408096151399645882510056977309138845436914412321196658921700304471803537270050034082160253333221466862698103757267553958490402119632714769902039584640918829172580844817523083713749310085903078911269128348260542212541671449521686926490843352296948207225721012078870298618758036683182991857133499259454533946779124780024965803746026971440827706990006190979895718542940074651197893615725654520095391090317211890015660480052438665838879520633276582246015559302290648093547249958172569949646655143589662543047525671585691509993752464413154023405944334955874546591216259141981952020257453960861311749305821486088257677564255413609268138389209964878875751871180496881541904578086790183016611561583406295855854777092688660768052338060513354875395069727220344166646939036755450489136801598211811719592477691706657126350189129654964920154084819505836499068489688722920936254959744957512965912955983206074151097186463800808241527990224703596965382124629050444304652620551864311697981716419179184988671488832989051664114002879574900201775674341426624711962077198166623910372303950639931268126925622261688664874181174424357132831428802003241465982785008372859221297390168626271306610233917586811872203794929733522671684114078637167045623635826089421567661350316445261336153630193561368023580447753099064135610417803302659129277902544558009380443305466810644340002992179898697802126733161989549595091216059763486298972086686828098768447358846669861129179540568042802757067444191525340985320709090584854965457149657590613378180584590688058860699469578525765862703133409674180790496834248763467829334567773518822627774084831725787223221745541912304615986708089200217673199008871487628494290499840461645315505555801653014836497172289124789537197709873558088453419103459654601682512087512811652737000746734550458573690770999361623304589414244989151362954058360947013179350767140810451284166904461020624419854087969426919062878049658732822822198782888284323080976588217368781965370055310444192407763728675439041254603807076951272611949696378368729033141955566301766964366313428222633027997700815934963260669551991991634894015352110667976196477745909772685728608579007740007873790004888246478859025127895603074892696848186552299153963229728249834552176353357263211473260640174379508378873340454820422432680437613955008180100314473914832689422737666386231066441933848122199291958912007790453716988994758717265818243581188037656120562098077675613635428694965858224473262374353808658105722950030875685509452839692726983029963357917797746693056622357657068565233255642867024397263824822631892892792901923811756751522139142756261541537435679123767031594899203263576070056787405859027149894139751251043185483319297272671591424840652635808173182747431456182868706268685883783490128238312453631847429090364579320173615862675635393334355264160247422764861354765358654279184470886473869393500883828382775846833584956420981933335168248465656526894868359688648275499489302815790307028532929570806423236301312150033020101966257391841018759384817748381703339086525860834418094727492773422081804720834640535844008174003765986262565890946451964130731389878010084094152476531885592010883192545423104239876581111587236686954316023347596384871346356448437922860494540205292316206227817832597726288604155304877537387808401950580762605919850403180913702886668164960519037387724325899967745962780051063655915223599383104121932274169321160275672131690088061749127029984247482166022172420161488103862021719984549856253669762803137730779354810764699818347175379364752275937914569701676652373281626749077980382800358299762390839986549207880372743295414461468968363233692309067546668293178988472073277641972222873503948025592249009980073294164039654372284584742352227967665664454417949165182679275589394671135188898921586658648608109288267590145193470976200812876671779208568190985070815548909079288448450676837671395963649639424055303049615115932254170840502466627190044937723600344240108634285754576683165922747428872246639207630157998007881170215508232172478043377292109218019445007444605382519750609366466725847482651949198910836154743186208270031849843881665120074474231461612930516934416079134389493192371562361624614042526220530379968893887721711461503149501755429324093742871814374532578770912001447255113135897794595904345324824309209860414089380556433235292340042892820057416923336792710565572365708564037330619428752521122825577836917986083966528508074333448836082356704716745672238487955335799312891191972840096167204709739558444757976634366397504473089472196143180741126199007084125226316099628153193399757910475974419419698796822497332902042362560738752057249806750581729724658554525154209871200415434980053083781815832198030803362636295118283672639483622448393646371975485814356458634693391013984256789524439042793327955016555806994517911849510631194438637414473774306733341193696386003806700703102021583098289436622700819280670126753941549474584165735653453611185563837935122958726264406841451633568319707755617780698192593631174867014877770764911244124141679758942139327853166931341704931959012036303611622225576498484096848568564447932060537428931754905181833498526897357410429155653404307687726521665647834802457896039054091995904337156367440647654250213441729967759940755110496034368019340625769229045964702201730617748572423175073480388138894398582247531919591338473473392812803914536032484746594317381904394167921306129318535135773248472778174952239738229553753249986916587999641651544427083448891112815307049292935690398295706464749400371152658362641376835572656033151973162878577988929980418193772790679918280590113594818008433157555647575047862256006409021270157098338246099871009321938210325944110785610367575051779512529877649360536874886076405774695214627190167095975229970935134407345799962218293288631470867384217677281190219664958320159382297521688582439740951607067182185716833814547092143759214991866629922421266817257887132754131416093352882658554399530604885036635445663095141112266936865372673250767642353142345163599732006948041437758013269780137160432071833740585404393335824380568206114233562280673995701833251927687069292425861884820934654996621227744542178619019433376854738599874944781106965546149027353505784723004841386906434758041354282184424174597490646797532162286500747049264889644340482934189750454552902460025037036067099040496240598347282060071796451224577904547713420971847200226917272355397174016258596885316292605156752222001324103512528016181677567775384285039310033208902928035209374785825930749750768044166543138452695602701503859031101435670091672650206003189551769609925721829692364585061329178623957772819192261656491010137935619022720380799565386946857923660971717774224967110815093896783852227482162176110296019355300546262091301975665822074759007079930522138607472713207550375148523164201898807953593825844481267654506708928974916136454145024638046272014510445309657926731756883133421541806689192627371110379374871064790857879229662801110280491157012784244004662672273956838348900672477337863741532999147269350571445056819293674936108435039918440079832331318131713004126541294459242251781111457248112037365827732132116452590177416078832028427426604253975949113821572634580969399680629919278393846947873012852838901406132803976145920341811251752165797690618604164585370029444019380364705405662307681094593272393136053127192513335615565866605132078451821051981949978209542007196790672811939814010291495399215110756088512313265958585118941197914014765892052097917955175895634869393055344479195595258505371851281412768237715616105341864958547197386448286266716294550823108491001938889280940421111082592290191658580349471373103541178388636581521175371616740230497045036349620468538195507996398382937341903061072600021536897710159028521349986399824896258927706674978682564601311879549416916578417242132004730507240490972224709478312846434335755456746789998608753038183092669937803265380083963632860919016529935404706754151920091691244437903054170165265100868992558817754751903325959121131448540276023620311383122718613930621695977667723309629530203964147037816026109813133353499624162638855175331223783500834074089651279521724988048544197054768310951031014937272872413201060881372023850567271225789481269970369288313347033374804229826990452632102714674502580638050464340230971547991811840317035998701373964267479216847417162103201120955415423082925158838752699716081406681701459690271522850870239877491345423856650439529535319504208923959491375963658142561940372563775564638599981971061300910431638475464522359648476677954270855689057987327457016931516953649757451144682127487204517582008525618629511958950293278929342559037024867660370513229947887689873067245691263652808173558746797020088532942228257019398580823997976157853437468989329165863653371612119890338525744119559871291363704026448986089035065996093451853762261234394823738472051249828789118317517271315676642146708610200725248500674342177897948492114461024268815114295890483244649718684697956839874150728948872060412802500640169495330501265220275972149678413660146420928279449941638417866573274119237824943445623816155057146111055552452893482667289746639898725914777964469849001673902027444341486305873373844784042841799289170563769497141546458966225565065097481007344292826771723341984592018521244736389813968100679187864459241887550182742891708007407744037089959415743639444898022504060432674413693547760222705328570586804021030693072469307799343778078461556819658670582484488963340237004367871124473567081898590949366714211715965643572864608418347676889894214810335461169408124395412545140000005431555523108758935490537644993873983000555740340668485712423919809791386853150213556770082089919950624534695745441974382607391219880563537293710488370613659737694823603076687014864173527920004779041024678969878691363319276427512019142558324638606664708017044713600576021456528013329996665553381662034399238622293782903664150586853310294581664965860266070022245363230495802613257246778241290248324758652303600889908738713259814272941282625031289628629817291644691204912599524573264429114420528930033423460632303631854102199877238849073152703065379144271908930162478162387424302372605233839467294172918475813307874874699994658090403664806269818659871199421395677891104723997831193032633872562911976418389998467594493955790802971048003185807082496375781413417997310327878147567988784346911475465483620965171704124480124468229017532873706822037374657187127289167569031075103609382609649281206006165834301371151113958027357794769977982505275722291749600128649540349186460154908426257154095997580872905097400131867865765421938916746271772523384926206207830776770046993370278577603801644565779717020073294327625356366651902673431039526473983701830076344368896500726386319892267534676408024753728128044454038997406276502449549612655435909121750107266217217626826448764281353609798977240973424194849014415103393154435089149556247076582836569029478494572267757692602650781132366313769637484816723990681341693093867206452803149336342154914200969144628829123442372433176657018715167065353994331689106440959581947184921737586528937271363014300670020271453881354415649830506369096224135730955451576712403652856779196251483575711499236282334692455520021963730403149743976571753594945180478894264779464772888224824200664614679590895670259749060258844983201791843695721680473562137418563958348887235539525984093745159829409996637542583812284996916081861418723199771081017362148547982697153806015126102418274187502993829127306830624092599475443940921662261773979700898285521284861382763394186579206262268527139036575503925225954969191728785894182783058773018447470504086770908531228481050761873523113971642592929337370989086802149733857046766991768682924963725230840557135014089280151031758219869343842063598039079273308417405444157912632793132468077734240230071081349244836402522616335217846411760435547114798419654271034107437896565805304234517518008844065392032878662326828240505739199304031086222861226528606054877129012085570814914830083556976943942480446781487818561605825611135721518474596911907945068286209459171709553502972931418057716863695769997967579107241451769030669025022731618337336444095878596119684386162220810768102520889563868122031894473791920620994861794543333202880350685664703357903159854068836506167905886427763852136793640534990431252180104128918461307360464125012114632402323428018810743066299169821000591461931399206054845041942564749352413624212142404697482674503244526635108709423657813360144733388127258013570160427708361019653484906404228148717441886493522878827526776257593172363538005032757642473495597690420448276893157237485150228845077224339943958942265816469400424746990834788002885439656557646148464230628668203089707018346763204166940834416448072320982382357575897466098742826091700728343792999339953974647414219566448365016720245100400374739904537962112284170908702415608769871241333915645805980974477880771262038729476833862851169084760396139388438084317951585534071387731434699327225967258199718663206122218980197893556569124358995537178292595328496621266130766997901039723393290124429450366094783858682021217907628294459429354986749072857416526038614124694673228374363985708216138692892232180053132331638367428766218994388869491581230758763470172505985363317982914274597299810412013790877786036556181987259247544762449055256793060165049491683845643931041182818453212699389204532427920432002525062917484064366498490915267277627546476791134804994258194816523770044110787365033025907962650964240726365463605572005933881747105179200744691656607249725689896193678110030835484170867339004312913076862444235892095899252452396119589396441290035521284870199532228224185434592341165857048091530272961356512054228878810114458982983624095897335428209579655364513189584676150750137886404414033063954356445900386850023315130805167522333781137459239141183109815212004467071653731365714251064387202975542321015876013977363919545146369795810239993513389482432422734321585739072491460334498641136712583727272021615911512242252371058674620523296341238936153606650643213190949997611745283621128097248938109408443126297354661902211484606672058091777435090685065907795157459290137928936332917363631431142816905429242183812401877310115012175008288970358207364147486992803067838911810607503634509787399061804844359383764151449180751698460897231740392232750579073264473155241939428575973737504828048533963836532935624520089453688233646519800520734597802734267420393157791442403029602594678179290278315268168098593999420268149222740407544556493743100009427231676238067166816967529632439385292265866060458904530964286495051025797619638785540143299467678325539391182573669058104346115669462414773582098855971132493048056393918025659088413842005286726762825495320595463385507399081171875302642951850951977734906551540012796961122247359187479816022526787833624101282049470545623859220097859596096838350412397133397135866089544772666697878854125574219385650035246119312845209639895889309512269984101323770443817255204351197584741570311156610448563657396934769552316891818983486577426649658204011552457115205225030969428113812699501570951467930318155980570197207679840289580378282109783674977021422454209717767181321637895369742605035495436892393936432595624087681680352685561723619246891454337379439924066799412847283384730914375544902074160342380258362348863058515193945684936994304038279065447755495005566021048919646975696850350281917704706695789953399913390968262361126206353519559235316455609391421869032071189229070158255575542069769539721267027679915462282828469319202392600269744106019645074122048085784957937364866141787982926349568255706518452757678087024158922326303204841175140933828584866731333589956772340605817677027976583441366879588708030807773944020758911172448114090417542183659543366259749006140097000859802770564468340828509031159035242154880557152762863098328558679150842749003302474220659632530838642763558363909597481396175422682921703621453892883110636473788376761987134735857190391548364787540650993105649708825034809527437231969971181444744093252899764625181481291001952266721250054596433056460528130679548297157360377324994647989402040484856143787976684274154550537739935137684117620493368720760654609257183917231116848798683447464515107609305087735196015167021719332760095312298964042286079915308731658506132640460536280689708412624505683575216968672562608977870953493414606184223967815673887053037291867576528199453799411621373648174692516843253180066149464057058019934081656935933724633285909202613493633554516182265727868907456434896025836049306194671979772870864955218053254530958167332403575124533152739605446083061415835500711642718598696012741609554197047459290814522750307694218757804846431113565103439826755699534731423744669659439805004158901453150759844452030083399127765167395879904683040089671023549329398959617445521660864809319458466097974832046581779713143117027264768306503572905554561340057773108061447984389858973203033856192920582371061017205580176032057454176165108273670574425308101259830140182887099075111800408930307342103282508961824958660385972476432327688493029388369291693746755652603560266182294362914944721543303131869137369575380287351222484003866372967775018938198977053668424087659684476192047428941304507832310873715558249020578910699261228964108208473739631356234390212067152361807937221112487001199544099342600195186787264919918761456303724516785579804297775405799903344916637393993048897378095683351761254167499433937398219217981858721203283435274688425261936605944827109283759599765871734241426307733279945991237173846304810214187606922777939916060469453352185631582460815329653376883527276813846305368804934443064866972606719700832832555145197952230597783309966480017961179951476218496468921333409717134661000147940173410615629416538276088709651677574725601859113099528247136954261501951071706260181906531263469610061896551325892850570429655984057443939189643842236321921731819706328130757625124114857302624253039678025078272298620400348164420877201673328760330400171389765202811463897462970393195498622959008236415464442254719465508817929322677812106308524107280185991144706856965126625847209629201736928526011651264871742279329989602737678512204656153441504731392863366012353290360084033326798886322391921665709370623707760405186120024015960337733447127055791351147616522793078988779365942763361615052969915288096429816022821219831025376513638632276007998617175819400948281163092047155646311762811194038427349494698114868745073482418190629681817604592631389684221865522927520366818119829027882980628612993853726869657851597387242969864645905688026038853310876393819482210955118107706385478596064707616552831511932136628332956260063923580717329426273379732826357524794028742476057050645128453044755734390297432514191472159063904673870677194260634407633758733453791334364768274681879401627107820440479199344620242745543703363810582712258554953614640819443937195442164976164195212652867953324570327162840247982941109312291438655465550211138583425099530182338179922101438429426275737191902419393178835261805955171900844698747910059332481996558094463798256013598235683388205251550380895481709329011667564105953273560561596875656346297410645513270059354766786200810396540312627277052942753861574994711779937182743381414724194723152584256109392912923944901884204041430838234658065452768895827236175545776632799597696781995999879184240644030056850081911207684991951629512250618096673914494750860747143512019379780245143425952460943344822476890697890792351469781996327423801842778120604215942754979433978757984238956742536390076442449082201240875884719536790413470644732610265289678262383908648986806566251166119908117717407902165904231435361417227614693722143431226212216371682692841185524897597104159238334824171343673848734589368660379048285202458326618037543480042281194922467963439734904418624897360363719001316644938474237614853181590117227287789081056273153708445187002207723846389446397960088920813404954962197274820532937775210844971799737196737905497802275213921494631529818763316633453244146809625904253734098148221572751927594080837599823364081816720975808004416689373079645442605336421935208301394323612771483628944603670454712724740396034573427688761932636363946301004042132287708574651861658568274560025785612887161914734018915330084205829453825261864415229540968265749609336889651088255481085118471885229953367028352962699667195978995333226359548908063324758537849519730136069514217637909197265691182575491590816734023457354708141841865362772481936861130096734814045612456001793367142843495641969365330477666843995929029736292017173078963787397218890029480859123782651712403463519904075796864138370356995684587998181269820892393028798572608622419735132320960435049573283949431917992435978188572248941549285109635746399039689907838295810461952119914583507282198930770542007965051756574419297979002893167999811950123563302942299481644769382868235086503970133220017370421622011965718807914721708414317176857687849344221775775323509207537509978740769207435409779037630506188211420561751022081599234515196271956514990609344195651863111887141069436306982382635032401429032551622724966703686585494796286544588605338453771582370822946151951801590313140373263208052619801654130594050717065018404762071125182049790798616657364819229483545512238597369603592990778588714877062916199529402013566687410708410102561819901094905892178170938749963193446576547383745363163763930210265109213593403338929033530861495128560552623769695390647351280158878337039893413220831331905999044308990148076930140386562542363904198115030206602870197563487707678352249197197827890888872894892069184712468352333734146831207543192456458386601437144712289902262368673247921426863894184994604275714246752359888926257206860718230383249237574913560203028250053768318375110257118386232535040267585369998966661641994192507324529726520110632555782557018015501503651510950539077398746195632302980623596375606583117051575307523437343172604217994032542382185135246157332603728013143732256417308737129952031095437241397516137909676686048834727780095620343895893284317806119205145327435653886731211077118886466221488251197874498109267419410603239990097104939481657706622869810906905516179469394530875819125720009817808880113633959372841753792426861528316407871358150534182156228609678241686862097032037635212273065428731673526946611895731158852766006693995882411190868057114404022252847302677891206081358751584603090934046366569146341264533720739120698236439136909746707305252300679192001499265844248690208038839826801011420545635878521970641851126905325582237787782575977496683233567832220192174910099973405466519290839980845548897688413243299518801750480495655652413159118230823973665945339526324447532462854067559173409331299653998807957355152598980233239655513053999771878046414662886727286806969976354317486818249336053797968751956132585383777410427754277625282927638979734433199993225952657805284277239670061704625391952012917949613842169768212099996708764734877853157321942234439620116395987467241725748519667233926854736497492115674835216658192588527826722099730355424311066958183740307449639326920008617330266863820913757102150062105830144100016790888128727048378821862553372301340551644945493945210479031948805443461716067591405314552628135821096666894597252018657942156020000026105348335593421745313235640635470326354723319769208251745235651282403137281004032730180773810552342598044467771990167154662949098772523914433165741243212471896368864623182233478211377324821010494643279452798303205437000214763990799758953033309891720144240677792659936010041193399935068251845910719260085532635785352094713472372207389495604171183484179526695438174375409165078239786682928029160572778914455796716363710195709659359727909192568176708144628560957818989330139693030512684524383584473078632348464580396076967617995879477616259146314907028382929179014605538768538803064009200649721012475099508576655364163324409355819415440570840176943976662834204363264362978773250032960408651954490786409789835470475961688028119628527848025826817607878112459982713347650048244199525639953687278357831478373919616713090340545211853632449093242869802440462006340130281928542687384103873919291478254250286166760718126919571933075760642441353998350988607431788295065078566035419557680752382698155256950935487867008733163424338413849779782955306493551090336292515384910957455492927707777354962181570874616374772135154996357556590433736622813643198700895170707391992457694385720675643393571420890794439269657634486585081436086392759289321764575794524511657641566526451961898574034602483662583721503563799522768400698861422315209324230366402060983957980960294563343089530841794702603113282416443232352737908589993108338232468766257983518232301219261172546183213700312668958355859628422194799774708060958904719457044320356811536459730876621435822407629697933694614291569637366046096718795784356788967789719990896381269939636874154314612304038023357261151527764280880491761789008452517435132013038119124216142169954616277151773912296040260536332879361616946266450287660919865858459769458836869747337737493455549098762533132286323613930466339647685125943361581690409027172468141012576902853536220584031189730466447272413443630217098492051954291624674754036419811303536637844273211210706349190777289569431427180093439993396286709315377780772465562060776293977651923250733995912106387657588646330617580248191266592359240479401790416091178208206652808393792003506815935594077499374102439899842867841833415340951200607566011534719435597563498280558365142437014342469170978251232325048406265328669218318445935792294392362812539036700397285776450116041466613954241208865956779475488929670655619672195976705154467195376872824361771946654004628247083972805005904506566734192099962749541322131839489280041485285151573742868430852494467127103378641169640501999578702660672398082482001065329454953937063235775300766734106340036316262704776653813413172486862969256029874385155568174049587685070022316456313349882254051484314113426072326739807243820715351710274372123196771244494626711847065787478347418412775078481760818462868855451179339782763293278918743461414380691779898029136486150052426869225480960802748082147386827345884237893755488117188330542685629035265416110266082505643616061104826230747128130706144489881674150712458822427866381798766063050400357859878807369064176233401574814124352557022695337934317028000459735620699843448822822486878801365717891737180379340746784296607429280550727355969640446228271072768656596478579603651089673497768999700084716696393143207234611467318238615193406011693739823813877967534778598339938402573660050422396075914392614816417754157978739804572941755356297104158798664586911578401852724952060856398730455400306701275086063398012399192495450279684163570826518676837497654136673370078048695107023907760565201968886868860267291892980942359945401778358285817050866201988062404853974140172738004542584335129825926789467802719937515866220227081074823011319422770675635738429522179957921417005861037171074053203766158670355245732622813305040003270608995351966351589310797857100119242504525125578703791216774870275688606293542591260838843033630988225604153826141084034504054743969818681789877545903951726014078090272245308410425398674933290080219601772582849720675641818170995670647694325967680731419908573084881210003752252317165833815325769525283786109680856699164764735358073544338593108100980631725372023321086011662021692861165132030731590383223280942502546069538131619875243829877683330790568757220410438773540080671876304862076862817764986466983399616148261055582896799284742626595654609523579033138271638893480334829104873205636072095371265876206109109226146801707115764820148280224276250326173952466835514557111652188648283456979795876674711509389466208261473599148443165963373501215675142399650303944952168495300015500582984348665301956878615082246544229609265589109173830229325998136442912303019698637282174646187162165676954619758805325435200575604584605360184496669688718901251043004330905478400654926525848010013532029951005404086425326681670248066911328881963288219399321620244077527313110134617214255039784261675189498163949835549640191040240342308787792314805922394582474075328858567183814518948533986180899423419207574894149249673113145422119966140637942671454636806346391572333921453450047005987419343447715871435172111208027340460300641489943962104315750140872492461486175360615177218878469552120108764735584279126488733067145432538140994059167050084794276406866951333526401861904891048826301254259706306856675316837181286593845453933470961740550295141860055423897507716580550421166696060486130977984463156446278096432572965603156889797878524778215370318850315669788458696107232524783309249299227967369483053226350955719478094052993249358069582062950160609703037891796365846893144195926864830067317580042462544171365541080657306469269083414942858254492579123797658027971773831591665288531326755219626121350128507597011016591368744565766040557951502350154708075819322233687529895332461564779034808453506679484677358520040629970218582969478729356981414484560002333649652362203244100961307328599508810953799850574436632813235307206728264191854624352745226436562356575109246625610082040103500001542552318461341305811472258843965327937015861741661110065359926610390026267062891327369783611262955811463818587798432245047143899335325938050701685401873575507513047810307305127260702142291276492000864376872435361320971276086166551512695984211335021033053452321689989693720233340785106216410784094687216693743794202933436716130501451490917438035975300703720746026185038962423933123226269894877682176684920538107186934533619290780614568706738524199133338476785845412250323143073632160364996494872631290532888867088668748309704970339895630987907779264677019876318381240742720555249241915030524456614966386532727328682782726009988390980248554766549391624205185200877049575021226272343347932538805158910949573267921574660248135347003346254536884542542928960012251989299478355111344394146667963306697093726153265065316090164149988276791775014588420739786167839284376870658811195292432926388446330963575776675906458335023500570537482712503156690423826488118905159290128704352676185095657467376158135280750376228892289092737168911529385991588975698525277937074866799428675197594589342470579440967292121845296626423896171994535619124683785850350229753293229069634803383718076389594213190504936351799417618378124988442986040989202620034771752383541293551603698439125048229897311248256038319930561538519648029629687601384279610830116474183870795708900978370844462588207229863530249662031769852832377802331646575914638111683268898212078468861077242282342785373411572385645000364768440635805867745079951597090011593053240063809134306216390924980664770900136356733206995776889290097775147419811661817668767083075121810460156178591997951427817797744032578674079357827785171677278245919526383423407454783392525090382315778337907973241133384469107962621194365412857032929445866499524741005597174241889777855895468512568643858655412084531221816146269481471798432385266203635841359095059958002646802977208754923005349970318904541934758080664266272914727449525674553972002431837750804666408751984532583448812340288272653640017527069977209260033563135130952557083157183502963616986371208095975501714434676868479591384056451821347056173162242021028799912581595102634052796343295652115054423920343022720467581201503581486016765673652205432427148213073110073122452834911408252857424038397556134548672931315960761161715900955367603971025530040525228253376643613052909624392340616151678297183133499825839646053191787166909469940594675087386028542163112948804706329919454057159913911995759142750935660963501414838404266616186864940780157151325317398120545723942636222220056573742450223786995336769634797932111915565125712906073920608392533816106089597721828487443308146095887851653286876669075171295455381228249683159365893666666362723520346256065545928110992472405662178243498987529029790459754366420409674598706237756305463502599944637538489446861454886684744371010374666599918018930642354900288916442276371633979227537203595157089447778880623833297353046539743925924449664393984671079761210139609059665087240421037969509671262607674476618830698021356311978606952862797048403302219918557644790037020879775182187989034925756015404466494175321539115695925711461002753178834239491572302706136142922166311719438051299747393136668022987655327458349347683788819072464125304612097656604222326365738606508598725302532665277643391660684150901907331803705209457307596425923203885934729911948191189374222574431938054908617404846320601116009262661831084555740618142857371967601645908693093742301713768156633386096559950620441230469213473927406855896834097604313299570690235921950239172290024848366338236594119645386189456596927586616973603546148642031823542400763391262049581503218413171185988311337842594295813317774847311673460494605832679478761923973101065552680741663474307626769578203415969801146727799320906853515347667497804106349376375855851903091676574094064371622826560008897369124196093086824582127507671603459459399451017569314112316693957267695716544134372177727865848106925865408942637824487178638695830954354515151914790240656156705412840644174371640228676780419365512032128945008011577333944915475642143291904974928733169619447409750891693149176298631945020639597140931225607994822363726495513360758975891738928915069305323933843641565744811236400427871069500614892235615549368703476881980151943262988845981744053164235402637444009067018060309948292521804439334093811531919871001272749978650362970632980692492202365666868368105303177919057546922665465731510930094167744317634937546649149239346730206005593833076723398225828820960236583513421202770490772747666205358542678740087669502528363006761739875221380706388893651640894555112755499705370622590861877054719659497100191521950292408958711373478609877781761733836237403933919706151069025075670289612629492840693833400106872270706446750877239572487025686791089585000023684344625814271129354660117748044686694380800429490817214261411866113990563508649849252778268627782393854216492914547177724192308165660354853497704951776620058241608139445371695371864008744709658209980003656624341608225448688884846822585792730495506542293253942376505724271053270281654247225760760436443613170969322109763975779737645495559717998929719542228940244225408833114462362364417439347174252266875036795642837889898448222616148920922217135359274298975283819162532526296475383381583495492134384596554570180571137000012372227356867166650917085690109070548047728871950130928311572552093112194045773597242119762974340737180238208988356789146116019940606467079161669268729727580382074057580068891201903911472576363673348207409265326597855300276947447848050092251179769640884762935594410294986779085149332349282848440242279508195988074803453784197827032183169526007539528154564714675597994986675438355624667795606937319608423462358455731037926958982018606013534319370394604365985331570620414877907695355422032698949928198075237809946287863885194136439366406512639424728605540925385674338404702246009797276513922872860578592387418323049389913671215674444942417982918563946624255528146197382254595301648135492241681542525527441599735177704150173924183708274059583332718283379388565489088323175714395950035430908181938636946667039534713400323017880716076867116680586215508180699098017696882294761529168409563010910758668160137403223405338547191916610579736238662752742688805611839409431886927801057752723988458124450548710330023071193401116023747302028273547417601143190313251705013042971231816562878080808262856484057066344379268990536377492946319395306169105009024106550061860390048950155390466607323842237805466785886084084526908408641464005037847747086278028498105612167951089556288592177991736938212526289962142605469383776832033391742002785411653574608166836010044735404533550315737009129056143737137902811761489709487084380186661786024663365663392450132901073419865236048063619349136916337475134446967076709725611175297985469797541545243738221394328498387499402178516154090146301940593592193020592631533587705909354172460327325118345910652555210590571934554161921853172419248633877098848919159646629505032384414378010271526948397152540930827940384755362002871124038285065417946982422896712953462070619954059710315592879962475013183588592926712193332567582212045250804572414443402233865060822919934413850025821947259885666488736485948243781807668520214901685998804039956841916287364358564522204535061142344260161311943138337254423408612112500554931761897411607580321436680354334566106072270827656621558047234180318404676610256696382291359164114985451961348188185796177730499010480032531211377806913311261573800445360653496484143404832464892839151142973982908844130668767301216284659885143356035461206892659664625429986836208500789605771712642344966306421759572984585346821400423918627635911526628667418188399911089697559496193395566690766914174392653477241619275746741405502240522983060487292763856269575155882561511586376967289030203198670048269115431742287519153272920085189157281333117967095834938386208505904272218433184062537456773075047865309124842444470490198747313665115791147183858424476861073400658758233572586261353873355726796040983599486259215262661580093466822276910447477764034094464465329326721644164889549354650926721732546379854951195135450516575837668314464158078517117951089402377087121744724582783961254807064792079556198097493139580937646393714175409513349544113919163547006318960021004467643883211052731077965488861864914200698979007374122402010058838937794587141559432607963026643667378659003894240376560667477609046345281571207777373803939750511050631462917458611370414939336294048541901064670665642646770339609613050248321420905957640029663775837811159955951524906604152566355582391769272374937628856121050018586781943526180784826501718615622313933830520293475029899498641456895015189219565739319547906192475807141669498877209149709313985825318628766555394881460118614595915337674501934156595059756472430149214162203234706801021803397695661300383408915635048929479719584141305891661085011967928676827797401154613922858568051262741132367183642896220987573769812550314896811379287165398597091598010043816692682150148454237678349192085103798484824786995652218064838000016032551866565914004963691839620761146798789281608722982720006672954289985549228266250169993214669063601748928724969661988015302949390635795425846860842324712909367402802595431912776081576068147362439003291714844778057213507485384062796135740374125706634461586078823114701464004505514468064217899600290555889694522841017931200581698068580111047892838158078130867596694793314327164134706218681504099226066576193713825471235866807104332088714868554261612688992004113415803616939363225338352597707406549398361344922427413714509085335218493297066431293532109299728903850242806300009841852382871627098313322703115151704930675139178995614744303714794756620797289893198184373539585514382367099800953224839500671966598189729533200129771457298271113602736602322613774959950306666557522749113835747282449432270415804857513579645313905069575537517104272116547998299611317996553387966634834017877684291953637350252234830339687274991736823790582811454739158294154525046262882422539420415676461867500654715176148827297121191959831773235521243722620508485838905688813433729576260555785863945312399772176731779890946580406647744689417199328464090408844015446871596991269705295270085334043713422464535566941140610191331441712145572746563613134191289921916582686604801408680292078359649060290024671804735062416344621907175564078169933184108006064522750212863538510805959190308135226231125292144317272156452418667427076090747068997746761723947688581263327365198716372943928613175107147781962546552463311730131202868307923459047394538709835346584026389183261513258113705474892059423592769032035844971950742311716247241448103272524292588465856986371578615715741185409302508299020571145758415774497929274808396170465165052165925408164666963166910994182530634988215029555968844324803748341122196899902880082358396184293884955698951655583871302280014159886357851632107886497658909461595935967393218830023882712231311892231920772113435096027965641281938370845305966255512661283087722756572255933776355964660017928640103775803955929458043221339215049658017780499027028357460418614868292012086230468339864601243918016431710067775485132806866649968202132196451620965049846713488220019051501957913136095371839598260495770742141090311488263011003877046692109270950577207768947017163178329905922650237835293723820060313024652690221859538047103701523244770599322654479420667144910064755349357398454386909625863345336668381750062288077838905661507837557496110701146873489544373593500871198168147972520212820164063163620573434351075431755674505263830332599058929261604924750028770504031143228932337302707748216261910032250703210663634329856529980398516769089108568479982751978025020494227753749069026203136297807987513200032980117594521600714517426634140255455085330887580620455095787192405985932772833869981910925378078278899572304417221697981360586161026458807401263850068064398299270477728379697682993279312648660975472365397483111884388000490524117081995073530778414592227932715599194320793827259212967666574929612976579029190153395403989277041608075609516364236041475200645062216506679940554974284031805907470293777596517646704326220433523848632901263791552903512440303866034300337405790043807793696863648850934047355825208445160348313363504744744774044795878538811826385843693718526939005066305063240940623558805504793426973297145097995660885229728103583432901577010919019105892822569488252427232388655108008032969536656060285394057116790410420809907056892148302942843281593469338776940898897218895229629708540482234863581947436790408226491773689654570079044072627125254337859162012799869090457991349191162514355966284909647605225941788882560641437462669436015300124943708378006412584456927435138081356830173175073381067013428767507112012427418626036887588227364000252982023265100804385630514150628698978819326094554472010302650733883805905313721990974221179094701968451384375162189720756008284752751104657286374968543925119097668987313245129807959087083789324444579388316818825082175849027212008560607591695690678189869455051583456707241862134712849258670461108561470419462201243682739040248177993401700711821413670667667400891735348073109623497673112206765057311601705361788249999173545845507525813408893850633242960766891578120766837837701088042637688055463307786341623303791748172070714910543977435003749231628123408988211528817366069176456859461697665287819865979425246135067043758515265122837836534046095476421763237834776512818318909698906890356143942757473277243231455909130430223660840047842645965563838252645977195614914768968968998959207795916553526865673445179639116190456869796967100523531455759022937816279549947738449199553382913907500424601650981597294720886017831796757378925807042581523858705112670160117174391861143107374747675807290458586510434902000651241170461780357912044524430186917331384153316842727064966484241878436678056479447000587571477182387158814461816882337502771115272942653999273120782772047301135950653343484906516424495808098795455825157796393711083557066221296089255798472565550870288018301287195449839110514321277202358727334735153637882196241403687394150490161459888194815645537767468064324016344392879068286810078530502149454189068699517161024129105416443103967983983849163764316206886521214792492335773571478946683360124081972707865936666529023747123390231920688252067400684918060170523979461776102435209470419752460368403267203734205603761623897907190246506973094519299889592004932383903154758455016606366804035830216456775078203484871379796915775751938865117350328017060267721522823002917187141522130780112297570955816090982084919890193458011713225209433485597120892386981916706777215814463408642432138142629304234098732944354741230167187539973901989012169013113536687904805872479792896642173535990822417391613193182895687979837213857099778300465560847484808629567009616760382448409214974701697965729572839535981248583446821822538237291582319923922520766478618393459825699895383907389002759349401585068555795566772900416570745571402780845966004450388346074547093054525452370611049251547748760008705440766647108282152302054316309148552199337780294358918065601980420856206432212157175483611581272165797502722915889617883006770824520190552830791808564184792386324414578399630508842534526742199706149904940939360198480045992220277356543136915633901184850223481433866915544865784129037306608393066606318465648926404327524771580096368730644843990401385836098842214751603715069994256182289389465647837462213313798265440415080644643873829096941521369683047078207712767374405055333967371450438140328065068218287230951608548711156109394851505081039480888987007297168440302978275218891619443914204496648102922248149004787478019701770126618545475928982256657103594550957712897931667313393000555660216060064851169594828709456344666038429880774266707815362267261514219492965640517603355234495511977000430112411947322048475743790252657564460081198766814690272174200051440179058208467535847973889162048780620718780004763666236486481367221798800299995083296374703250980857894640833434492149826872397523716695910174078261731045383904663641459694653387684619504816467146345945143100999196831657694970247359862178453570639700149863122680705853109933394786024048708918158948926438410085691991599255101137744059070357304054516896351147797129664548135764536170192861500161311968273703028746885503677303219880243596049441412344166605919872073917262807536460359625700272346345609938868346009593829796622430720342432339914228629728386424477222613133239685410631702889922197902593622186004022143161878017743143334663717922888093119679865692388662448328258228190037565585005841576192292571532179736606904418133583664660664739112633402456850274354870072926417135560367957873981201077671872919281837978261098590129460718985077881145232318175859518183479956390257786052816438119859900456337017548472865400448922694351699098317304360482742236426561578007254126436149161633575233634947576537651845752875120108011327059922366553780695247668447544957259545592890677254812313823455710972555414355269897554015962449748057912746154536276686426482863505523359372078531278766599230228482384974785966939182473893823592788075142607696855322966037588055832318033413077644425805226003295613116338152187937457279260009114646199331297079835941433799151788826692605523811751607383645456156950703052289743440109213863189831164573488460711120108642134594826877741181494225096090096496928574709208464322213432331764844962260157185706467991663865165878577313478345192809650828146568902370724803191670727615341352446521100957082427215361700981226533998819880967932409274475368197775662212997927595873348833655213659516662031852281537312014495827507578364174689305659052588973976834920880015957029580355079408746208449381796900732390722652479968695674464907552820977189863480252609849259742045491659471357447206177939747550324380208128326352269781628850225167004304697877441158684285920493204808785139853139880472106915122646143846789536176547517709422408060205626286522490181544236384410116693689940985554621121988910455970545430250907897073907518325114904658416573536112879372369702411090123893592804600693664394699077494220016698391412839007589488416974267057122974566439777642928632275384666738038894710842540284703223052565549771239895758223700988625866358547101605499904858280850030799074974992168688481661703291224884037436619201930596650482471957703996594971534285989577409550083282111359486442647360020087853067331962007739630664116765231566476002663950442970292886181248703391031150402468309185183347178241241431696743074777285001868999437835624849860051748832027700105124965791848993636624476106545528991031151062212930293643327466168979141000675675245215914490473561354460693839270420179534944013641163037663441748621722769440535025715136713098103139585027814440782339842787434404561176437100429385912196305329263784124467894356190736247092328871715847893618357611002112172536090324919202923884659535519763925326135658540258352422074489732927975201115306823616256607957929113045539604806690620719236141242484017614621096752695251138374690443095155332202586691329826335924251484420051052546755392468832340574912776135087923819880229813341194279478409710252553152625213104309023189389978710089715397119370736536142966729591569799187466980485563347967925433989544597506027725826964863967790750179963686728183822250642912959270238153450294630356112510563743399824392051619537012954227211669311619916022191905430870108845042773585380321623061407943401912537593461824082116815903026555083664722787106298429460310680723149993669007107495505561345751402992231220657615131238154004555341736198097777650900898933043920988073851880966280038659222916336061658783519870169818951049294807944211019830098085132776618140461021227702972874990659319422159301057609595717193847042457453687471590680388019378701777896124040401119215650743946772272129136936499005702411504909283274445551015881267845322179977230989928799929181183532537500427655207658086357616547987338609226910647319494407159429314042559738537289085003185587529908072880351599635989961437065863008261040576598151182024962095560764530549930295793298844439724074283067039521171472245282186155239319277269611631956397040635254219097985839393163050643605438491143232609936792593289202587957085517465968667510927656022290061066517090641166748573485339075894684780600981674222905112702098355959908611342548847587900455466241591073271091760460421647483817829038061508175969653225569246703531616039970162721382024887653603301989319421892409690794670700546836893211135683897327602133950070456366965620201294020354465332154860549145017766817668673132782384386031009293330704675640081966348461749083843442792514418056139925560812264165110428089692789613810884910148077937925040025196385926945981122341810265135008890070431022585866703614612341456761735074274523365849468734861804006163985961622412685464244392864379408217121468746660291862037660517568612142334037433824766697538294993777931493877194791562626502056977542694587726250727222846282690236334130752503413085505581400700185553911672525662076671811656800222690142171353346286595121962065700219597746019873823772019598987407314075407921182372062743569212332802069908044221702681092324854734625265293611347810789735902331784400459264287831273943650886899264535224811977886047096620504604592684415510560347054118921777535632483656442356292607321879635766912539887656240831155413116514375418253155053150214281197395424436830827806976544088631144464502965914366684912592497424888221654927192797023148862362392543259590212997020398823659288496719082113850039391493236585052988045706567949159610230830868081001208023688353173984054474957296547357136367018877394500063430222960910101518244592606343730340921411989597319205861654410265097434148358316021140060079285460612248170760471321423117606061303923321149787397575753700928467440953099081293934222371991311486100635108090937644664569184889738318831075921291684731277148240579003923082551843084588572012491493779391080232050524280192983721798401895350623502092968096998572749834238877897702739320147220623618239937006371805212166083673022084079436464652179890910237648393502503826680900794062498715542615513657018659053583445442190620744113815583828293946679946993163274282262815742821781029226593407153042999721867370624239046077135147086284604177547951806834445204193569034006892406155669639327935234194086516684800291584131866361611386256862048374971778946613754161869555777012032212262867711914460037224487398855019836872331351398416332114878050527445604275891453984701313531732330775074291296846531293310878690039731096167473864316088813872029548005710685159058669844458384548942861279505446343710202591074942549219893428116242708694130951852472294208973763250861235951406944684028619519637389770714062912767329238904901317951851799848846002624477240945591472100598481698782956071485034976187840273281814801546317510000221919298660839868840710946616657488302122664269049855015350506523414682819911201657446229764239034184280250037874901495478498703588566846114822144943007051534902498484539952495223064050742301843173294800037858635873438048084640566398944039592850472766271162438847665876598365454742953420879564426684075927185645736794117661331031918187797954475733711982395764411021526238504434882993465163580786281342180004443557663568646747742398499622611131914384413849098622448693933728726314401330678448881102443090650175004352638264796768743047359758343029332919126566485776713825551002975454512878679056212559613260016262774207104630044317760441236729217601376979530363422666330044779985038351579483566656064510489462617472449969097525655286954206619978358459103790083869991682059979014555509233706167018961937710585234100756293765011798755820004721717404339635160853906100992812778484753822052879606940173241915608393299532788724687281383260478483615185517674677842006508784154982099714990640243890333729721259867163137803713786347481623046845854805120364652183047430544891170461924564310064822458724197854396449759938990215730704375746126083184120551391514397788887753581965167549405631958569042181431954816336518702219554469868046147188645470010922880911336183217102076452917763306272885197962217479877929974791354977414978486578272404925153924766171377612643315601183873649005979214701203777324979472525287756243109640653333638978062222185901565184203598124558347209886753784370973561799753662195306992278787074279581792467284886342686649329192587904071702863611916432269373588734909711660617339199671792158036454488424335072833874982988067864894574222746556650313544145899967825731507955799877990080188017445655932577648392088524719690334364839820241676000505859938917284803481523801645579095760437928760880584357237523107503436317204771284709561624877403448788139727573111330783311542889708564219469105454502466254298741979479331232008296560767097075169620162818746097201880969861698206447803480494143492467222701991148095432061984326840325921705643521277550232746429627061413897681563818727927089210792402802562891500654069265838347568028900857375161683739679315594683030241548093623026064786297120665279208314072959526055550850209115201157431602190075229804772304058414597329542442601190007749340054154820244631060130069981629191259691205337396639420023258980130321472894905921942709104843726421055322580560574340305876347841831935865641823964351838807341310365730777794344675211419451676045985395539982517388049055692569789880336092469322009120944527279218616025864415300833203069386612148321731067325584435105690751637106083035873326387666421584706371055768257353529194019353535997743179239768166236035773912410903521371548162389715429084930746752005891302274529434335907409788027775563251378742067219917360851889027526258933392966049082741724549344674425089341202368354766329175201342989189242652788771556058165761692488199167483923421423102199691730206878578205364571654484095238377322656673054995384660539938741119044152744644244084171772673534053519858084238749024497537896768119153075192130269064035086361197354486825798817762932490120316590285253311396662153136678839698612328614201120233002783703090022447848560509037720246661243404828831548505556689258959259803681449495434785242431375251534987016709417453774422134762672406660123824295399790709218909382819882980903076194262340736911273220858185960121836905674263516940564363571900605546389689906812598720439209053480565322682741239963052056394891374618114035694173182646769076440429146551882297687256579139704457902780445560189199755423000801000675736640005791133965198842908293290316074645301691238173153144132305516150916502207687784446102582349588859104861481563997965449496419359930391914964661793183772103214231533058420625756240443682646804645969632404430647972668955636115624175920129064660204340320025628156813557008207577959865029909126147653840331041934170185319066548173008271148367574961135226983152753633920067004465789522115863105162757465715902421997426647576944246656482195363400655029384188331437753374720250268798916376344795194138087673454367662085350289109470035537094146116693418936185111924641179060111563402439653039105356391421515926703302239399302247042370479219059055872892245796127838280259990126628155908335991860914099612187640891716147682034533020605282574698970443524058667207561492874095522756688212819200842571310699280410090455987134842322610321482280642560534108222748002657269618226473754768216185007352768776078552843463406299762940607555723945690886867226896577306642839926736240874319907883324745709063915275577276855922430722685296298702337546368958148272627325656875639436202935897940338062446560168249783190950185848094549040567249711235277053921093636401078701986178607516753143891839046347227867391828578832613964964955267619872959522433061779781368337855872996130322981047712334845445694485989909722279884376952542025417254283092413222949751410161816291415388123149993797916512503619422593239027704994950449564794383790803383395051480325913500425038507546786869686585732736543811342624538597895682703758047403611925254928747459209950707617092666868743914490484354227877069828272697805512179519712846369991894597014890139289471642961702839879566328188491385901367365188481443425248306665328219156635305231526379878102878846812218881452145422507241339583718547164393520690911093752090179350610501938987667855620407592445293508408458696147043237138141012442269368343662404556615496301490940006615449185541413577354283774009879600720542877617417164044456476530617681343557342810626059717124663301469189076066553174879883831469337338406588736816945501616948021598630369036566758389449947255113764204074981078406529948743417446087304824819076687988181007182661216120130138498205269163015647628038987234728519854691014453695813204825362218302326729095454415985207243728227204567532857430967624051705262243356277384403781911257943824284646991884570092547255422511364758718553468296019071179393073680536720999489531996028923269968712535323694363578896192336903213807629563757501308596040723782084167149523164514195938086644597331148909410470242760579524329645313434134472655092533905753229821199940002154267016079902312652649629595937846836430833602095900790149524624977470651503694650053845317643181137829719853647980767083041777543123883265409655042717134715757629218209344132950932951547379955712715258991123985488065601699441645266245794958041967900886504218687058795778556220588017733402239499234603220711611253289824802837969443999281885960893192310732694796283918110008855890344865254644678131965940943392485103774165381732349685045039806671912517786204828233479729055480556468362855593006153975074875997656926954514972757451621560591892845539305933471534581585472175771370313282168273818221560742634073272752424220646956025156167322866119027498880868230196789558745583974716757324980557783496733495968131874395917822686995535618513640404848141682012125296666610896955424895964172880891066956388438126989597110853796648085951591492055179973255351145599518694965762480187593356952826043517431620487735596232240677994799748271316858896123273124289817540850311020657002746544107261171406953277337910081917518314746882825300790348983209910156508227577379635231503865595874425732662861061981065190921869938586645121004282922014166022189668736473967197156722308378574553608890709810161713601456963121175342824482539052418319571681548037118291142093919633940782764610231231253869488602439260524182459405393363877817756204538983784108303410647738356388108767991847363978581211976092837914225346632509560946922891811360990711038046366134647652823009785527386783894925165805796145629491162812396164456693128014181514372487163518455915097455036244611644825197974408429329163728567533821708606183744937235063725425972051999927906586483100749457327499534194423345885728230965693265755397699944545280657588670414972542692692268777586506190404918095879402376738405884275974509882927268386253114429828708672133958762812501226848532298228554677914699106128340591858698057877611637352193093433565735596208198516320881164333149448284968581887791024250915699968290171722763458713406435605677902352708723856091635043517063903647919602019596709702353060974783816035435885973008272631466808532899467838291292497789291641139303856766975747478730530797627000546925408328437188323432665821145960478597061503620673285532162287087391733588193991586837251709899319085998404711568852633044224162301049421153219611936697695307496687129946443966582030815599698641805897099171673595105754454043807835094063840785915313024812562966813535338836340713503940008553199984354600436698898963863491169400196786871431705575698575457536018191137040563493352793504413993984403838985498935583178126595156473278047300148989593858415615101764173508271734514520264339447659789243482100849008676725292111734387630480161848782228715767793268768004397394373293033788837620697754547062448539547528870877416204702340200953269755469211342622476132131970582916840221725220636588840572315052273782482586161028601963008797039250669963169767227632858749925489693957663543411226357349363118842704986290459209110168817793477691856765229794936675237051141173814778700930651230284180899754705021100641100004912391707961884947224453296398441219682176517490751726507262151232017091038148874933828821762719067753039963766668937323535081418831946633515302829431989193557158554959309980243981275907439910866283999142974273704208729673264445700212303614007524553632998370930817401048188815721142199812893105475170845092377034245435408461585553671294788502318091038195057830508764758402320398213944486817977369460470539839744239089133831465036752354274367244897337419460632606020260517368333253967967422236346432827430832917319941494343685682120154352236406288532296202337605754665406396565005199591123135984687294947382162610481717929319660163016047456258446583637144861202963449630227974046483018970875745462173131517115997231738701736556758994881195517238772153356265951978549890962716403033423769101953342325035806495927181800941788705609915349848086602200604065827697457060732998031807221379038695197752891544244667761011136317625375359307242100410683641224468300503726988012748261469616886947336882276177952926213351737763562696620977591914520722118545719202475668125386008191767678011300980161394798021983669675227432149242896308895720907657059891511189218631756279807828094816030688010793700258157312935802075515539386002288951550281906572507043456767471296058463324579233559973386873147391389356221455320430578360926812971511621499872450116675966049543057279229365245100732137515103832040092043926682963982295736833142759856722136667841986994204947077814432098772138625664753071014583785457678206421370692808881258057384157840130534333309422555772917707929034376605403223345834735086783706082938571373710499966925177748051089460603450440784796296303929875560859552113429906833191330179603195235805069439371892974161826020883346844951339074942496010836570587297742249034894981840339340673697899188720354013377075738882296970540507551278759619038420736288158741558987902429790607927118846033286922900671248898562614390339467360090142140136683077396239260619967894613438512149902593903191850296150840932393108099287595600656312141968687276904539405964380695282715398104771065570832040825495023914986126734914372104279283354476764140927927875047152310077573072870968450289190688614273547782482466123521455910106693622263442405940110359921639097183523430226770906942914230344803740635114265056898612951556688555408487913624037129925957730327329115126948456245285395903054636619136583377027338581830501327696492715401622234938600697228269183443972835072428767223503609102438336182388628191903356761202856696797701716605714014736305953740704931833675293210196466344442258097201646114274794705211148007589872287275088627589905827549979018109886454679216359715116579805866303406626375148400478621215886913125604781935216195779082540512097958313955994927173477954577643156583327135317389391936403404674233940508068773563459581494723090120255579443416442660513926105238282797980232258435438141592714925888267579885407825917161617935959401639822023335486539139334205502055793843189015465647796501527796738063314806924041170530687173201870331557043915193311251724022907015582269351277604407214656852913746370601045053897186239283263325589561181818139780013975707585835938174407313412918936240942833696009863322818112621965766423506279891894219964980675820536689912364251053260710657157650872529443803525595962528322314307081950242798213191666319926094415775704842663628776135580584777221214919039418085234256608129152278137644768494406319658714186521188339924767535275965634955590696833281054102861568240270156724877627609221617673688447775998277102628554435116647916127806703443604278620739664590564185619112334780851678440322052488634746086985567856654445432561518433947792192654703778197057759039831751382882401416739316909411121029541448296485232138659735208861370975104404401663781473129380052179922774140208484533713312159759361459948014037658445051575295169362175070414269985599633167458832562433404984882604603214347465794446244453398318646775019548796334597125080967532562675632091565156085612750532694888187755009295317666582871814324670271409262645570074851725429267706251570582240139031405626148703478098385660942595070808635142291181243692691708077355922362885632284453557443649182146574247116622905262698694284740627734874053693008423993313094904228203763653423291539706560219951066042990950110657719920811318967727494086433178848183475075450777455640167018234615850093692026003485417402088199724837441010583534790567310165212831548645022627770827564645355047104279507028444448181842344568714611937119041344417973706879833740542423419950657630686135522725308724245992304505353598361558547996600584543372388515421684335461896142972295086403913064708135212446110090073002527066144847201461111922074271210694900907789162499019066113362906585254980955138904064937429142085176193364129706022636475079426624982369018710883810168906673809722035614248807384633394842448324060957794880834838585559071237349500110540809508341414111042459471257493342175245330335287891801546899176687364501691075079190482454812412859660566390055451125471676093132159129567483901708934208176334389717472494842300178434747596647142043945871692859824581223371572399556264403808253197382974274918185906400768688703436138894401087132211013248164585739776438803097858155041802258060770570941056401892646952703877607553781269717481467869360418990301441597070558608414593731571650418558131107663156975330398809260876504806636779948826197837847429892043327886821029964249655348827847966229596119432592941863239162790420880919246453191994939314352706298897172711672156811097691807099329384520072439194779223827019547242710436629077110719167708318172334664120994173994798201713911239093313257588693648284125507582506036652928500408468199316303134737233664719644557444138233687497054440022968118710531373972028832606663719932982414775137459565369133393686559406654889628382805788958832255348860411729703333427418843859573639851916523814592802207489095904093202223780519827487637722561074817081076243416613671381437942845613202549390863045472001772931474008170721361783563608436525346995335507001301829673508001705693793737582006583235748872936338328195717261482974575295476548290297047420976444929400701329374542885097311847862080233354011308740930761378610563591960941500570496612967658012600545360181761960481200568036707820237372360442211351975920359862713537346839736527223328326466780193319959650823099380636773207623775027669416160708163517211884110759675139525295630938260948364745791290320592937130592438595131171551486945662848282211716281788752243194385069600867191976551842006778037253585758755856998286354004101863100609318875347300359566681192982629929838087088538009913307876541490362013677559410980079613724865654901659284320627884113942095863500196621234355687513883851839195675330642463347710828562851726873637555748217273244889254729005611327048180247455859564397780471273482474481195890745637248062873627709013087347171169071951821531618576579316499998958588477472626153710761966293311242693654920666637270926678294640868287759800719437828169443602264545539461093981557502615274790793347290032965967096316110577375044423189210343374634280581715136848131329609069917304228935325713612827616761274930171652919201952000440796250891341361691387844374549160080153572595924845397942643700001512921771574396755483193317975253677944323461854066764006591512954689689425348759493232711174957609161878574949411128976370991817840492599684627898429749755575830798923402922271871681789425617947718309245822709266979600429323661504010165970903696289678124296668543240703578166347808105430138677567393354956215491609666231731768992266076454752559861146284961060833260381860813088588648604274285781901768207720907067171097304782358229205770501933100311639658062802275329044503960638963154406784330716544402118735775025823970209786216791713429807006356587367324167870608133340072955839280014571091681188173217979736549619293991006177602898021673512749904408453917345983125716025395007690767095255430899861439032131904592438044162984757015991552001358452568667792870071757548032055394800601372231960745285326604137586911966681809490094004628002195506275473493440139255411910725236065837694783395143460984278348069845713398885036342638915934714711413049265383668257830362757830290438396494907698654591281769008549903080232352286951178446415414102456994997078854713939838566397430972188944879239885968311543857366020566392303147499063066179201825887034008668129329985660813383165116942532611826400116424505499796917065880147033300516439607840093809764147635123143213047800594247944710493097142489651171223146569789595699958684715582210913746691434441788260686961009926307189520604362615219901456141689619646492329620790829731619065479534575475440684081686906845229287756316406954338202683698781951586893372913983240675930797718034392454348452019106265081391365879595672596220150262980253303557250176554347926320929230633307031240516956676191332434160378731980926344429666264315198467679875456292597923877599592970832743897334486940978813258700644265155105428679128262154738404071571955504266396152293001226728279181421325388991434063300307537098238963313262626160620557460427567317839895966990511856329359204766206869710192787413542482451475693348518970866253273448917382678844913079915278288382419984224755859901657590240194725872053425227114963702656934492641331547651658536803310027359714159737268783574894411194428246060045590560580362181792179208489922793181783257956344769479292239055058192486584810439926617543186192134614636682131484127456452468396322954326972046879720510460547088729775341605776037532248504517771304066327847156701022965236416016229749682048067923129124888810379914112459226006332747310678473909807417028952837389717576436724720317296922903469548147962790451545736067540470347352220349090401644047420927854784686747178037893828305051411961524859650122892211718930295518261325370018609016038760524163422131485455712237516743692834227461153524774632628865956176406746795725486804860687907526231024057770196910428429910482716836260743531310604317991656926831652520879244659078138297613680711856222284464992775728043404336342026622100498914491939293395705343125685866140860629900989846155420679283901411128886625400700316768911016137317178520750933105851095285299025051795348854743954005406081189601341674887651929480864742297370189082781992016075295893732149596485178978433880679387276419823674225687359153670356302503453991476108832774639437251390281789268996223702424605524305519016701246575417467902223694755519456741912179396587164647143535338145074133672545999073591859755307513045585749475133231662652888534120176333403981541454476303687610686407755066078238496890011842072497280154319244996851479209245322278235853990167711926122141161556436319225405286207967760307032803037832222979505823809843052226161009830986857141209078233477915734045304650510455041880889340152167561046721326464567960929410577823156716636452664909090019686842660844017125225968783497451159125073749197682072191143660295825251682777835441198547677716797743525784847163319640497452957933452415812791524106754385345723641194268359258309754403750784993221917673248527890868854777104701732293027003861400344304783052225125425697637734915109866669302530053754590317282267530158639893661299189836209360357263889055475297252941102594288588656743991510703732814821324664781874885145851733085664002323183101258036293921408034979565985255937998656408207748989894389686994102465475331644420850010818447237154199192156159767239361676276367779089337295602984000599931695652780532262824532476806420363312644335741587525074842821875139356064685961463679007890233375283734245289635053557237900234944399972643069350030662273288483929311857424663995437618827181698774304321575796472795078500006307161940307167909815956475393748394681652834910740818499514212642924712763539968160182111519937863433836891411241778777407661500079294554328080348148215968499111490134665388940970537109545644674037347230610616373954190176224874102164866295703628717243780900458995367329652099653391580206334259325688224428129764944637740553391886681943190628264501548468688053697058703665451370803939316009540450037710329367778280344984815354516235571850859262797203520708289592320091784380526779128184591193334051712019640304598427141503820823251811735540777794658443256487189738241534082141165219132937862215827540174632831256710118784670810271076823529446701775114332347270562231206531090658199144101855917938371631463551465090456216715033568237457580726504365415225338188176292752395563738676290800027517412894788710427157282301546694972317153617157345172696384630256598184554155328358700275733623505880167213331673336351859477350521704833744833601770406033112720041282660745714787245608589169421121143039050361552899682634024090362296006568721134435999015674267214549522063944318829529095629396115348770011969312277672231240949547688789054077211070450482470636834308751200160812849036277587849928296100137772217000408486874973114548070463193070411002101354052855875121982449827862722438941205256687677856301584251229286972515406010404025458071139068878883801436087775080083917208727251504267274753270208083234612844377870507748161264989807985430852444172200211713835016989411384214206040983519689570400383458667747376556072766965073293375281497300810026409737546562314270848362824785046196220047401026576486694742050869171220534732862782142442241558684016001511161531109103102904145698442631315014755288293463027304555170230506216057802934118103348863240767667632691904930133052920070814871403143446137599598355011557446277185021405127109489359982252105770670035826936479423635134184180892057545206396802250711451484970656247165161603047590338479471784202087538766037935947733128852317726964212143990762692970351232160431674410306298796325927170054753687157650270287792393456165640066345079596972363290463016620949829636113738396126370793897254182521295228414570447692694711419990423407913514357726198427555668038309220001305774806822312075876594536206459017544187986416006385706422700985011499381649665981087547924968385394819011484603401664259097164786760516722899210977796662653175568455725064316854793060357933405978167602469522949135458540272146971732923317197711551671375965925552952434313851132896544915588707280852590377273405667384304449668541516683649408517460970885334203043275862663469828003074493530110341165752884202848824076014589967795931689089657754892187193388808749394791827611058816262365291107330660109900981808563294157373240184700237601189087640910475190281260497908854330516174378191933737891756206989286499437069945853031679894426767778574784850578744840358014651287941825510514160517796937735701735525879439799441912172859650882099520371816447382568217021647263447422231377111943476314158881915323667700806220769735192132397863996817440050183598139191471664629077332113983443615162344912954668172276373426019002493808907901764805309636778110963334259142117689129135567648193330188824164863318767727784302796185811363110724786005883636759374168303442508164795622160801923993132273866837242416089815357389330341657791041451415162761086230811363696113509738978072634010378350826705168474453361995259300346487459049341018194899070842061506389995281920154215955032297786482800043886906177595357151341676888372002869413977907065911933194414349787063544402752472973208208987782191060720902939348160721100675709438383712940479463182880295243386446890814843230023717440274632442110821602600740462443256982588265566956057723690796111512187360029904633144709007062938232901717907140750725851317195167800609429656072768597700120490772446245008677287918174017372793811756918445679424553647131444273939414312078582996790248650125256016478839395112104497639668885773515146195591303091037725864913827142886573321940193357818228912206035909600756394577580078614924661014197164613392258918233205904820291548502299863594770237918149035985227863633555233470813307119557185970425538791148702662291703899504360409089447687814350755379120973323527015186342216575354168785597473269771171251774915658683804973643570173149583128990308282669144116852866003670183437228467623131238992182771496641624033919167933599831789760283848894522301515350473584338632526423734355209209408615947857042976951423900013724951419665704518028772654385148951885385261803707130796727659747049913957378890508895471409879102314365190151086371141125964786638934248592862863756971317625335718129877168433834468080273164126299460429548078860197001755266917820406243095051550626893527015482763038462120276666697673290401372732534413547044536454169515497778086457812077416132863553170665559252003460402806778103792994565759145818797779130306021673887499868695831761794993604177805155055994959873626387750895734452645187833364001223216452378121717101285458971493870682534732143301770904057490073678576101155012620928379133010578660958075724351570773245930061795805377104821025879942991627050307910053406786317068089535030221874465090861506420279490467633287637092548312534008629596763420514084012991864274532059329642808196874967041898337100686604554878511348902219735136021393957549226811776966921946145191025955049350198287470638933440445059814159955627893653241304540902388066524948262304983781366602147326021783106403474013370237465311700458508434273479654517613632984530919822077468600264785960431552052546517187017339395621800642763808402494802287323185065520247338971998857271409587702891301323891721070579605914326551530382549186862126126718669143056290979243334209405725580056796701443769252844615915159926986117930024944626589402211711324305085928411994460317550701519366771011766600740903450492242726152289999307649967262367642098334932971177916094826166367702289003410313743896871255318363489577669884828988422397089597227213883834127425286131444507040052887561757080459179482713392717243082495849270389574029177954715128364383969464172394516481631018923462918687267284114870005417354934861018185845019865964896419621297576827720836445397780129098342414906905570097997252720274920521675672875194812096114958840040942711480887772366512755844190270554524475562812646549490288469746194582127447353146665322277499772040976061604270205027268767761192809736837972683548756837163527050197940809619167268068131882064269984756465711301343716481423102373415368074749845681317131047578446688673303839582014297526728432234032672088284006946944277046574525847602816149126325399773459307669445781950373947895126612894663678243083612791662355606699050977802261872210977849427123145068313726773115697285967097025710348719374875936803288400942519996980673460222738684668759090480944821330065632554936845988581426897763637095179501804454291607035649437085823048064364275661018379110237363691055712774807074234389304841873098284983069930766653078235472437802345580413748469029190781402587849727592583730329157006424131492099736685360704025624326540383373598834345164658229857164412557736906212751095344656092299595547912759975208649376146284714993345771238977720553875913136732326896985395216489420871484462620742396375505761851040669288321255673780388219089705081096881967051094752724602501938363568432790468419051889159283189386490874126849535161735487299955003775700293803525232042205465587365536995413605650775942539223646653302061843593783045269562877159931127115112465805825630900154888993897097298548582456401752292716483591354836889647269726578736203352695224281353162533738149865176400959972504624206138581086255364363775766316468100633393908162814149948764509265922297204696347103380749635864135198185062547108930362788845632497467014593909815134309502424479546296307392473772394874483361237419983902806275637131896646316360465612833555146835629623559226046383392329744751248389390227589140004349204859848679236345279285271652573942688993574362855510557128620213364251505701480254896204335636950838072453966406675583379715605774301796347363946177911955302760017834644025289177799672802301457536084822106851895929713016371420389669520466800861924747072868105806885311267958539092418131282820680836976219620323992963462677876094079687758917612849062950797230314281120225433605256505783952659440777950525008874633999464682714281491500912264137143026063226499490185306682814632517307166268667790887622567758780186841377152650816009411483835133620209692897341189015446668851453240526968011787546648163623592004970290133810393448535722599196872819358674457016117759806971334009339149476931777614129173012406471756466028115145584791416670845986301374703160922680735515866341095469598392700878031000983528133707198007896739869565000778315778226037920807589250706449991094658202902143055663658652317882889170037838251937892665159939135940252391615295661440041732908242759164364991791466211198075865233962645918600879475292978803748818732734737573144684771232139530228290858790489223640862049657074976068447775639709179780341498634194126702933055127325359623562679066202298793420523050204859072007817505126080385789797061720059043234635388849235362091095239362243540619756167888503711862928597933313355176975828548919117441103024343595454755330358095544367298099027086737493456294037183162219797538766628429736997918665942324253328921687305425737545135258568072395434131070212036022175462856046968212884949633574293119225186353983236486951388254500841967393581156082359810228825494154822862418012042488936086504945232914910202443707419616174903908847933609372427564435117404970762346281472042899833312857227604661213251251189071954678863224038488559194737749939887657022756834620076326702669352770769257544858055592239750970130443541713931479962496844456868886689134619612185314534394351744105743327608362132220305087494702686424045216044281549038308506089297900501311548135290114906273495829319316956198311035109465384251145769703608095158979494381433133764225799427840609313450189428019781900198899627621137336424270739018260813784132771769309472676777141478575021711087811937862423277561733823288001927650639930312888319261541232544042365083167849810465486764738040411730542359151660737150923964328212124414892390962715355399237556066325317613434063102834123023131876698749158959062000492554236078499161038676678462558335794089308483799492612515015414996249585533271716106940450237033996974099444491632531804927725918075360587043375259096255152411089139141280852856032161923093030311874032406285106635535742603279250871643320787086860553738616529089387956193191117523526046777219930908158536956020619888313545827505920774447812575274964643149250517364398645163320779564383890615094652118517510785768607809215288503213538950099459032263708629881888922279427905851737887803250484831847983149116133453923444335998902975607325868607331246111732277764830250674041343266950853409062847771576193402758205704911882277768500766127860397144226065700594460146773035265225745936743638029067193213171186890567736705013026506693861023762788522225716920332974781094938646714176473020191162466069157575714589722500933651223201445057093230201379283376750717097557098368252109749382292496000897319334835758368238417824738529657846009160016695375261826477907398523610691782259907328501555407514408574521877836746357235717498926394159201640263850602740812066411824045188629580447019710065514250213361524041874695347656258020337300438541050700398455260303619122431757471343144482743287730343966323308036903885237174918584442420988597347564674364191315228099453849946008754006473311157206735889299021758850502630092781555522176944813327085391074593447314102890736830690010233741780286564864849701684686505072365044532493582335156920613145102286363274364251030544379907433888462054393527982333172570219647338781734791620618800815631083235580306665776540046507892714586487080926481968658336084703863586959678991241164284696433270344642787376614013653584423142669415878610721308956067571129178468281837401483558453851602306109947627103510893438770384279958469306867006688325294442227826011229702569516985985567694346351783366128851317126397346030796905480864624683145566878672086852677391176478026529108537138638610231238873340889587899731682757463823338354702323729407034160637420131704812290220789338434059960074741670053300701945296695763657782590030795205689974162133705737297916386706164642165121183737371272025873198083067669979028779739385530427779262913599785315273836813638414864079632748116343197075152957295021613204350125971760207309167088459778410139718484801719859636470876421917255309842153599203816704384402785422365904426877406932490057691092250089730932158041989021143059883652572642231216101157007133757030674481896821763259838785534297624381713178037110397014873629347403732293336621127104330875255456384440969207889221526029751520059230841130743617410970744083988108738812266715596397502003170735706874458385472069553785444311629573651750768749966751894533771710937847634927167154547138828638451699020442818143496298491295239069347703803749079495766093206044457130570668597633035712960470085198832757620822831639572200299745722905083658836592602826545551050372096479163426403002631764508888546497700691752483107603719442380471447142718325114676952620986226206968737907622311176283785127369368232072163496276701951383053554274449105721174305625666212197051755255659354799823642740133053644351043216810333678652200614260623170921651603322360809399161628431356159181880806243188123911116459533808445025574149204409670957439831454433397563869191772276307383691469809882282186013073937793512513972549447503426402105523891446223676140983217041944631635016643850954831945455850828928750115808467474098315466454386791781323634611287184341414445663031514183159945251551130977251539418206469425016657552239035274696249921970923400982985620258562863537276572850676197564741096656365222382806094781136183723772563740386590668598205595106150174012894263203077464206867350669445901579977596363126859536305185563166602712283246052870511900185899856239065604422069830259749484451310547925273566292405634077406592157608744270174280489925799360282941497879274822602240642907238472956032410020421205644539750314419225764474263402661711983490093084173163003533388884216476771568194928648318902765378788962056108684804739931278340167719084146898483268566328707990748420827474971625313934059477367943663688329182066904154831628081445541853900597135767951846789313770950408802560446449698052813529364182840653890032528712118630153041085669902626016466465583179574888799759454945361241816660293769640900143077924245755925637123997072775831658683541404667027397066776304757318300151533478732811037497734688854517314473921595852162506207414650651231652879896035559967598217815968326685700898903233060886762672150216499077818032015771275177853235182329351072189641352826764552540871810028667604719766303708566087616368294409969280642990716196882209189026093977707151686459389740315135722772628564182166397009406191955031137672473242452372409996732097343683956141454838358335847205108543982251297707420338168712810691668017650959612840591173266022849915982213900240119495774616896556680532697384163491929304291441594955393096233688475600752344419244763653238725303375282147909101102038515975075117171622214558226839610497464745069506318205149678402754114220230019604912670085114548918153080474220795984604957358362850542236347826699823839631314675280361186408326769040849545158298480984779546744937839114202665492953466665697783696786041865031124219241170429512387756498315407288726860749912918131677895170319482216942922725606646744330125381660804410360795079203227240469402635252600575035047862410901449707593641893371817220616337423767514986419396337894367581847001247153552026885774932350866197794932873154165050215275540225217215673391939520689946175409316415593044695308509429402128775716243223112769839821198304686453966047818023398936578501076800189335958461990133554053445296223636777503259685063684412194443819598293209067404114058052759190077331949195818265828020663300807570667600017772220602982294875418126567331503449588085735491008649611098136136261376008045312047891522444789648730347396183133920967051703443956000009592886496486063929203517889263587831875639612035614634259107643489036461852120562319228562893111804400316328291878650543249137129946693713947341551234057504078981700790621108990927955650207113688774098432046781949616267564012539311479304392302884890759457122177659257736428680516005556139476864316876856721401945201575482759618251180975692152389563154033979302364275601527234393181151084139878378891916056816251379712175357077903832905281707601394512249008859729679531956002367001340042444868031187781558857043327317692753282480947034324555999419844230178158041468988276416230961144007408799990874422836134515013672120887177744717512894890958345606352571707707168186845013298844920827994686938712006746063448604461997240839831654860426490199648833805995325388793560537750170059354594079311814709021338089063245242097190785006933030456198798714737908763054255180634182414482458958235558462144735811505919231055660721799639944429625221250761595960319291115582866739111729647734080845790441323314548760334918115239348891496127510602634292815012182585840292312553535392232115349243714119853112208788133266289612800325811514259436716178321890045186297696715501779853498120237391588140748506948677450656173647691495730512144197101818738889091444306668502536279043672174284380526516349643501733750058322562920619659256326009891569306629527006027802242391297630691896436832665378117107191902704687676784908089214508626368995845256249461958823366838324441344051295918211437871776182194528280514082884063711668373096483812265841206809251360590903100116949544806766705303195454564651944347972090876962030771867811717473685041532846852122951128936214667508471032965765564498025660840548473465774296119455186269283363683433528503692935191661881675502134788961547531235925492111114731077764102643026165782454656442464530219491731077718285219792066072579364048972217984640668311482761391688947901533425736600015191228496675689536496535492763599032451989626564966933412848042077281610698028387882966454736801390757275925434802641052445373719902270284146835754640975655681531673392466467920558223504788994503264300577013248448848368653784922398326756385785699548097567113277478060904368499732151787559979082023419725937009931104541370685759040736683180289825406032838593701577757609386940914955446120216440077875706597369621235434320601259939075290915839867069624511250556663823119891956961598524841779767111441122423002360288728623032395694174447559861385871779493645391905467732021609963415541621687805577470691484240368408879135198774060887159138924548006113860956761560292732206026866310463339315906490830848010873382620804562226299859493118157719707987690915166534944336627997575893713397840174671650210511502238359552855598140530598474547779785442036539814848917470658123207184108055849740966926021204242350646980361373476449256675671070147306407637472561304279420941484316692696114394448024682911465506721376750337501365450342335241340855618572559356985996104712343833118977527926019742381814254710934198489163021962446457642110744523169767547825668703798535036447479157993640248947592050934394402455069347894957943081026362724678154603775843149694491182976066448439996110188099952880956698576338388561244266910866752808785742887394796164247221672188262666322018207012870550436099444663955136866990762685291736799804602429993008918476212760767446877894711209809554326422944361933342357398073649634784186709271766333480576723152473956620001089161709379136396664482776560473686601106029087111670904077360092495595004688500668681066426996612713652049178826529270029292546869295952859224402463410898570962533744494191226997781496969334528165676529886652895581965065494541213338612527746492448247665607391870441032347366023239866195587851543149779896267366066265959825849746103755807020540735464320221353779876758092030097145915845345074312369513553157433994086151129611961708853277222102918434292537662030692779915109480446751806486075484810850231596229756817818060631627056560303861815445106057766771085272061926273768999715358694112943425576741488550544513799834270100186289999396610483982437242056559557585705049626692436226841674667745181138402601694632913594508691940020455589653084516484552908228036987337466433672378200471538587145211422999844622012852768729909813902741489459600793294084082610773328730713890486096431692650283605340340918927479273691460374205902830864909567236323481571662736881250272387677750951236716305345799330780493176123561420420279287648943068591084909119246475230068723167721588985958247932837520433900518862008895077489072449191432428579002753447944887253911472790258041416931784367786657321001258793373441711608510160770509616179301656692535778421150652927284658698975933503061170440005333502054422984637044691907418303762935487621836121556031412662239185612197185578725522048980709578963525713902517887454285433790815296036803683882580868924431910969116667062168933549036914873015337545101186053105031424494485658661223933513470080653187044503547604626507116610804917483948060868590733874466369098362014071988115898773019043240284841920186502201537669986694076827774060429919093600368554703067208870387183985046596725546092719834235528957663904591206554782675774611402531998819256719243978975453851815717402261384543317270316373183700891336450208174032516951667818171888271089139718165023494062073344509109089206224269013227099809858583544448562391750569112945633004683979285440267247562227857331835841182656854133194197772596605300895335977203182136364053159831182805940186374775066513131638161082907364718404974049410837412024275415912364990293292630926674394668283344173442776062691557128861524126831558652968614759457330228071697300606774904629488552304532787379400122655540800695916207442467314250516126002968915138280870622432773710382549318531103340300568950870661248547385432791763683910434611808670311441580634350473658207960810040332611661523885475389505813946414197455727715711123258605663420817728572420755281407176121087167125551350086475867338014398611948299089632592162479937849036755789984336098428043289721092352435995435731940250668910708649523492453879911808045470306055630535436770185947868875241055091761346036792935814431754296045115703755843685133535158217730654963837618988552808646053911106425381350670850661663278115055166248851557787920338197808030369685789400025317977388844852014085092186860053112320730816063028067041073901332478720544177230252223974027351068550224282512476190371967036730139976664742420123003908638764266010277842493868100593479129769132943449048677363771296666515149108018262775071962847267691885093215693290558598075537793572691355017359128797432577086669868799495549900176178040157146276982486960489322371322568637965914668292396426078575640032823113371348755910830491321979447403361106530628100036439316991331760097590934052144066971266241710083505614196632685041070413518976624214247704829014363992990851570386982014822732740967245979707266773154453990283588177573277203506674833531728252137827257613665033385849291062437079000982199650809979488101358138937561937460551897332157823317170797126453919241933612299408813675377365297858043957039629175180463236314787541272429541784379707897102737226744723199680171314673125381336994556203026737169896109778646394914155783206501835989696366197242516009231266794217100990352969307851709219699402639722113669078451843286172329746947102220686770246143225864282610875461570561746928670183804312099834316428355551195021530806642490803305206927793901685492158896684943532915202943732737085916547102149051017388470914389208601838624099728883628610748228305791457441581505266309499166904909658472024098031712100518138050600797826900463061103787786339993966616401595130252761814705303793694956951351244960991638303557264664921742593146256772356420523477470181576450342251730019589507006144197176857392336720044830381533469784684063607788850544780900988200591481278826470477838037067991475493884604172674227192986604571820616996176283690567964582109222230887878189888240566256874360768582884872829461813847436498966008468653187577065296282266330479320752444310794353516506009602804151502405741325243779620859647961332127430117654126544447992463401274833246268564167960369624823114016545105312919229056462167893585642520398192840550895120618122810734197913770578773264486288118991108588541491697976243717559394912029697510856437477307680423189725678625911257578259941320792644097579725069306162043129007129835392091228657922072978517269131690067794669491641129257560819351697285022558794402608645486996372692477997747784082984360148462217774725117703936662386597909041211901971864406542278316554538652922756388293699110017171942054616800253208138416753270189892314727283638084587991108461206750669362571207458577752181165891105337940738501320780251117334358933571467225808212981423154955585039679693495969115266554032329821740481905646659214269444961148750597420381116921697783658574763922673302553538997119751487158206749626158658907122873602058033286068558476576016919368552014974669221166782247997917364275405064326328378575989060308181476767313240674780732257574156394027590675877581975550113574533424735382557884447309292790896459177108237937178806691522215930800668270206107891096144109111668871757255752154133910524147417655646255538214299633900927080299979919592977023110124192117456092414971139248543454172706614287691977024498916102858208154082733495038046507436751036355461097327286063735422921793536616659140023926193202086245597348991154875022997743977265915725191505943132566448364479095994640197345068180602253454356560310496892944359876855995853272122609328292550820277505479486250432107725594084433012307842661375863044884087087025491010273191678036722742101340136288221177352593311191717665135726062207899397845230018577423572338989072157035668801048940191891203876164932794314809977806581190997067098673263049453989974269613989683144480851567602381979930967071032672554306502713389309273040578111590986107595970626914211795846247388456401808470708387055936831476152216276262867986222211102437252100093771981849550930663515999908519592489071991587960385506847510058949656680691086015935965448750536965781271323425794562581759126398039146444009802171014805108758004060055836124558206652516924042323607985332150233469156011806573712179543795135227422411264322175664917105167740426935283758703287047170584198351905192833992782073163208999885033189509878076317971929790373192573990336041268471309317056289699106905369092051160420539224964413657073086115110418501142689569890652634742076102474155126854330406619006786610693872979778161227642984395306130526951861043226156606621123217063651556329628419398808005128731772728229520867241844490949651870197898769652884479277208236186688334328115152221496517669952073221328552124452402088220297691833451981070415052670535929182725569606697429116760208578697544328119577524966863371154988061265998168107432117918701943236238627155331039229607474256161235171365767303009752798484308250771278550033603195676727022406172846635501998146721979394460538730305865880274479804918304126351139352545527926979588376909539875002973246356666070543783623213863996057978290100014867789016399808162796332092310438050182923923445544897683554082617902601295400360177259484623985078194534496022959467177492577053679976029295500761360286774847825708471943988388240486681268667036099681554151174097509601258972895009640827793741549919245845151551175538718759517487923908939987817923454198253670627260097043042047330325240248956371692448825911688332214508302828622106813666999816120313782447328944394136373137751821243178162371737503022429244153349661515390623761836328982696985621277395243307044909275707504001790361004958123572537403916175693515175493349042782145975965132806038967340162780417288608489639694799945370344638321146371888245907506845474182849204770534668565945680717887641355547472854361193704533160814343954985590784793989485576938009609531169345466152108198895718702509474425100120267219253675746832961245510486653281171047787017693318190619712012872282598608115270916237117692311191042752489889147843639291668279956352446528846542489258220189190968299956424588807490127753566052894213053545914590005670483500860191794652682644089308006680407291395196653486598620624721166852200394767297519990390404621087079948022201108460366943575303217895097773428015589466884561345834053365640337401016902078400881268725163603486241915749717883050247642818245459801605886414911881857317538493898337255240830216855711085557507298298247631020271606865474690913815098530427256573088037584454712127500962170098695329719713593543968169277782781172567481895560623040550538759452359416512995297926939052116738361950431814471730800735850881729973276140035909188094577296691060532465823092754528908384942020160390617454373094439099761356989515671413899396645761998750946116335570562847906801603908134301396803059150865575004091276966933839599416865517382399872853593786728972423592641870209385824849815013110998669864484162813457709977296047143896833440910448676388419085341004825064727789658808582515347557488264518425870889440950584623227705641313022751584950601135084566062297250578627258398760903746910511752076168786007266125286539779390865145402874279672082130106614392526262701269144384225208891368721286928550326888264493774512817123122433578580924118943685702276739151874719887469767185035279004180048177626265262742168831463896982316927453353718313030248497779746942260732705208489308565060592734197053229707038425147022757392208389337454400889840785128687580410997821581855057529597294235292322927939528187200524972053087950386753191825972281911230400718778750915634387329785808878642109491956507075813762482104442006606354002250094064537879759488498944609891967758006586087837023974920132594459966479541186145372089253319218262696083004966367745644234334330797010243014215995565524573544952038650766320490845394540489656209589540260157773178212507266182883098515237101676173425216352851074983538642698686520563252524111087242979039687001113176152776286648099244260052551691780589274119224629920657466011741425974784427305335182948075937822193325798809774724522229208845255355034421728143540325511128234318891978612488383370695681989835675970994580089965232146119098557101041780392108902510990008187716427972576492589312246056245030050370415519779294724681282351357366042662310015306429821758611163506434300028388794596220828360812917413052543704827679930544668854001454768476222440267078538306048627220536562316186833622568191321372896108515271172602020984561549987557570335886595873052495777401349443595189008006108711302399855000951942158061011704526918976061353712367900640762172046272828189194710591017777688724589337912284151071329500952177026148909234480353414640339462067175599298047404178810759177488970346159811760427921102449506058926483787509721398354203511771016806377921833048066568679322079026577883551472884738424816710413082744899415970868172981983435508614120640671860064252925935809891080188073498961708014078243372956199180098301732186721429332507508419423332467994742790200397189792408908242426764098704554821444515522513304949129484299291582418553620543951038459870535546423999326688658161076633461057093858468364978630352508985218620502420595638529800810559250925145325128761186404246362751017959069954030047621428313583772464577587397939633245764818798646833824087194978251119828658016486092826868848768028764060049024694606880355804476302425737814423497188754094383132953652972960809186918075754763537341968743868020413387705461796290466501035921528112333064972802239083535844476947777669241517697423371614464402932029780708854838609642841893709233296522334046679864380149981140257705162810152514020004609048283147697265148033290684498960973445858943861753054802967828827715192560392146412169567547259989794404836572988596675304489647301026327480117014002784563906083205217581264232726062602609703920904645601919157027626748418239797204021291905935070661818324472593881582650889831610417710410960761341487413216940539831329577892916857766549070717987356026525442597729506436096294001978377064962532331087854590519035216277325015836121908822252180346697493661960927712844444116834670930640297569868573972390857265908957148430047330618568275621715401098359852310606403536926080642779023139080161279971614241750444346288972151083653502760391611152936375190478471209412351148745352591282912785479425536755599999396458339410882294204073753356956106451050344076667984987516645424156929635223458486121846625809775287760095914707797881159046761844182767062236430666751086740068347490047755926743921952555481933635213184641608371456799998745849942650952228910635995173383142557949731632154380226698050630266156977945607166548997250401305927152043596372433156080693179048385510250562500915320427649330829680730701675957968945172304273379250806831687300249210595458258817857131352549908457426115689766851717965388029583851720634189938108405922344821001130805669858521289154338951580249490578841200484673693416984847081579878558803414192967888071684292899805449594729815133460320198294162020436413198110467439070523563243282118359754828730830003342335000760602739767566520536037618406946620966142604256293776075382371666877964988246283310889097068975930071188893115786182230656256114760102366524922737242585845175782426490232135953621103057889484834317763296111425913844018804446673614193485335984825562804100348145900656518424803231839053974285135022995820830651263724762208636511467132429102368976443692589171592188833529368488079809457910504906782516515733929472619837199108040662283398978623465593622015578356618199171531095473507629872904535894812614632320942906044492495227812496473085986835751485619714118367539858150288619164176407635338011016862202035642668263772102330713438305481043445253521610932933465032707500791495118234430641976501361386923738029317280947390560354192788095898884436821065841233897676921252558051199431360286408528197580887789909422488258863231843976316623838300384029808118011429870810564191304101073602453745973026439524742135912481162141163707223926162040873902970446442452931126231940282382235099519501417628388916073560856969993703687753957979766907578473066469986174076376110907057134850260171775003848467261476549249576950803844616746590505474187151821321960152463376206373071563916247493019500636327263697454291058321610914971683873216993312408099855643478196427272128461228008269517613210585338128336981739662440334160620319968911353093289556763594645172411962081071814249706104103974052441801976997802435214078177326065895803567273701472083319275581457871051657207365912095004535789212245990734196152200214841935242025204177925740949692781932303811409490805968242718478530237986231088746641280882336983014651000491552730485130614017158438193326826942315181855845454227058926366206040744631463388940137710883769084584873305164298909231215346270788192144564899409727991256469303684642350264663261128368389828513964734481050901822260134256272914755296024240269313335857242571309172535975936294228512828321524506176626756770194381466822909075015167518090676480130845050301375880265272394696801315553291551325187147977856623003308239024756888698492173405743314902288465736094853558065772786360342993812214640258596590097859735613738099439802376677484287638062657924303802838617987265924770915336034638544578864760048186790314351350883144536146106223390296900015069109005260321659927557679205364747483020618412193962944091483632122613689794397865388926631610549089035045655609320273710969336318231277351023731536302000100664562084446904760201795481242206380946734513399814083477370030577159409370483466698519628459510795190624225194917001117707612768191515468921629386822897101830148653920027510806085379481435287007808985215623849319119632387642336273114535526264883163020355676024371014615540580136854672825092043378188856011291857157921778205364099303587288573407702742113707680835673892392702127964586649072191525103616085643751034722626394767573743063345924644727321733274229771792736641027118896871516368661836764251064175736601214370891252633773371218372259355267419660184580936467332853109086209634024766926559515961598221836012734449882364076168401006550576225159101130430129020538553917934983086220186736830838462636715727655060397624193757973326554248162200619930089582416370671697264098398114510494560976026028810864129528387443073797145811794946959089194726204773258891171143738982037943578132773944991567787420066088451779063740556909566142511455647050507890393895656139686937692612585115930162221145366491744074627111729226131215663096006733263014949640170930357650674700709203470678875036367007754127556396847809807496567291681946010805892448206748582529465013405489302221283502381731473130548659606441457364539204455605677374669828306593019689140180901927865369495685846256232209559598566847528761491117621649901944762533391104680835525178644998379507411928334196299861264234343169072694105110218640351664721061134567857747752022732903383342827771076427187356915716344775745229959867513787003362633990639912253805079678188056779786161012621282516372409999362398548004326302400378254114068998205973744189492978637536570112914957167514295957912878443996731634407528273828627216982528092784405584507191042037772404543510882797375097945668247434481981127722342923666964193148651309743814847602660126112500449652135839180555083617790686113749062279600194120444302837195553683774381879582383643756957465964582328345400718420390378071247473655201520004430041446228719477311276746608369254129701578484030122061754496459338231394109499559527285233952430670757609303825829834256856856333818075377032135659750370381507067894846051425546928711010151838103825389112484703301059473310738695372260502559526785567492054409998339200435631762777447519247621594394053619588333328911183172047419051518086983127729271797277227112067102326170320213171216274148777336266692005121162340064629381444330390021351483655603072711684213516967124803859197836364192934836129092372227611480196468839262986220601790573598909791541846592088399796325290259315719585920470128095415528027914978920766347546948083668905258452124337494583184648242141934126448657497114514415841160636548595775255312007031596248985957719577375637195139646355846458072228187151121851035616483628569150511340917033943727026145957049585040987526925667371921326307719037248216151652055234478472647635090022308635950925311003024763431139022827694844183965334430875425459819571371297783698543995455302597458096655660670922292305162166756546400627600421087718749270692284950264445151006360165782521343188741700103186695562954111560626517295596545805989087025642186836119541685952378548233721714256430721637279769659543078209840488194294662079225283016837757231647156688587726040652146700693736181536087472614440563173454682215207812141282209936343571969240312702004641555630285946511705108193449393788048358749734133725281362764330209305341440374643689168026821422136185907911071567112654058672993159596133829861920156354543914389772196623914976201506010083981515926244679863808587704502749256758635382670497953615540914697159480300352864850460760303399970994850982128559082284631791792945805884463462802599852414571971784700609980407647858641175283737760202859876539509006016596363607858557297030549279085544917743834634882271362442571217053556692280218140094391373964008304628247935993393576231086557920447421086901912200568058323273171614228745399059249278353578683470789070780357855221430155823999053281225241578803888925145392763724614511010494149949408835309811865607043396712892975188256149145901555521592631071447994047618625984990968868624858742569234185900649587340990131723340690405469628275134233102261772020889372120326664785915769561906601341356936081912558041579658193737737025164703642385291845192340667208580572773318725558031403172760663589085472359399152024835628456005604754626686204797219716788536922333642749249243780767458510569654683474696468658484817241649043162432190184991859502654132212006905831057586008546447869188588823040325983532255604420104721603802819880049407265344921381648376234930504376541291344985032007514855156746478896390090106435474939857276978520157016146179963137313890003330920996030741061519501767149062361510623521180820865744295822211637572717673887521553632429840013322884225374630812874322180049877981483436408609157738682766444657306587628146838541464533781154753897656113270665001559199526977886178271939672544222135253086345938955684128510767468056354521989463349780206968000901334141306019540696189964546116346020490229427590882759561129261618002086411797308585355451000133943126061099462770446187898517704015623734157536882878756998302638140595266382805658333147720546295859857035356919747569990600672072905168826632217824436762861540684331952757702069800819611807383815034018036957823706900019243534256491725693096204929408914282958008588112596163228736079680452689126057321980475957383226995124611811632181086284854835363518563550673593305961982406135265561576646865964440894047264656283990408108322433744082962075018569669658767013703195658654295648003951349445687310384207189883296854231855293675166677734013127532170293583877044573989630931072625641185334812536274719630571625465411366916045617511382085163790491618786716977256024559168383452850810065807943578219127845777620167351092612073528066315320812872495370075549924146698942179495698615454061135252984686830271977060147887634085455670859124576447348089329348613167726369327155008290541086548944142308634250424305461258616386314151673746543557356912548145843659313989173878259644135570272327213630257168864978431556400954651251524999168990080595113156797405625591580097471764761752105753085078691873886438384290581951056888526482213968385318262766820175816902651334182751574616746340806003760491766367128522019039263146525236455256379365185591797099102120914254912592449750095584540886323961037478326076205724700310749234911045978252286896576184955976084742238370824164762654065623199979679806250538951086022595697918109244617434782928836493344544535809090444296633444684603382408877328955618050930581217589426672991720259557158758614568342252027662186572578633656487227395873803821869189498084818431332531240480958556928854797053584328993350934271235202244454944516695673423135513114759762758939499665342101927038451346286621586156680160868486120549277864287846695520188719645344871941387946841596114455519815612232312770572161084059038573972462913535119092839470747126102600331885168990190497020347716198997119419739303755934484903760079344518744529107562814564358271719698327941210448128955341630972331907457990389942491589735636292720531595041786757986880385488174406154432448589098096328632267556411866036248586496432123209882635547195650586294235732874255621452314611087249825208969757921299422052987703873749780404672218582267030612230947763606167157939922227046889251850106860982018130705351499967929016866677535924979153504334236164038922415064383268454774758528727568653599301703120091346952903788373024767394293931889815190160800720177749828997626571407019231321318685093810685319162069770615899292923372028238694123397156801558576040306774176534166347941048675392212227949223268750279619400999643019204670295675627050471919442040702595088068476846490127889323439771300747519607805286633737362281045875523238689620976513789651889254814293044838877295284468753642396140847376950855575679206791297426991756255094348906237808619683179969445988191350482166020226217104666656508621554022996407988335918001117457213364077651037742751822471980559594173887497714249449920623221507759366538012806989257417785828010019175262863748982714748861604671994250422821663201395558079693234405820180229647792969217358410822767887086245098026483597282031232176989323636833452755890451552631841945912153274475259443562512003789916483929815942444304608254283454578308412061463647995956201190231228797754248421184634778758754721747057190001572919166147718790824788279915850256121333055422733703665792852385821582959571912417597511501186804123599237226713514312002777421451853926702851385970461825283139593426844215429362102352224352290526482158230668927999110872987023354922143755831918211130286242390157762288644672620050939782233706213824444464126638214001961706021116374965604380294435455384268780234524235937055349054379466783701489832357751621709483276045460822660003738102793583113298368739173916054104714729176025617028830371630979375059903333041333469573780192174625999653779375957260824996226596764152049213381712607636440742859134778340319411118598168522881604588230765458360967710457938183055114240262735714994340021945498558568691978817845669331303817269877763634082592684590750165505595055569981571745904402712021030483803835473592080107092720067470059741462352395137960761523959614947596336440719862029761559773060072550683851131957481905429484001403314391340383465505619516705178749787189497185556234943517738936874189153816695676710420195449280256111153389737534448269628085675429374695029681217217392924663381239002455790290719565353785805849527864342099881374254903516089857013957757789025270870409871120203237973529045866708371421247483631813760138101820967457937042205733415861516984845209605906475885463834372388491271139136556733107723975097828976989484677565411489198347890482898355738886318959518636917816701493715456749727779871991639937770811772480271052836874898114967067301351068754883712662607191198612562574868269506630851853952360591510178036259724614782729325542239012725169281257213351321728185732713366396584566958600026393350640856872036397643025446495577495469085610824641319539441707243964544298682256219799801730057714808207066550896660715669700720559292038466459530770544670827208327098019072598222293995211411221082585925142185299139765027698658266241451288677138107873019411737000788330183742917173425638849188310292592860148787393162800940471105015713409791734209735911414194778453264433923537983296704635351513911915017379684657453921789014263292673679027081413164312255318331374422682498532707310665732000967289300550962802753579647707367230351888797360340437466131064536881934104135525906958617484236569970311630232739729831123108128733849774510224048985001837816986260119153682828854765641251488995442442904428797075432236112026279238927338490252097080838697792088548690411581698572528663891038650553839804662928484844088607715621741266019339580456638924692982900215351878471452596580415253314641983001094842513295497072673373565922225164711344844783543168917007075667407304204612153790329032368786244085494839648999034506886259015412360747907839925710536198838695851198780761559240320477130801322344397032667482577365494426043375435629589524842297579031055853935227217096754064751912973922216429181078669865202654005286726395955801476331637043196808035896057964463612834994364058611589519076494824848005868087994230904299634582844773924989299680236674907893908901134803434910353169304266495679187114485355937004991206520857583734174451301417559251994898321699554792140995937943582471550756133789810328194014086498476634292352058007596911360065015425610832188505445918092929507341936026788345632211917830331150605055425403194849488318972400885735092195648516949038918338955216766380016881016474994529794470187805623228617716870667223406927969056602058290579949710801632123252291225833089674164850445822985650857946476009694404386686764330693293336289796065660936294538856806944683382644113503672121971134335405344432349918882605139255510528870971861976089281228152321040487645426554821915802475034130328769290586206856467468010703767995439063324776446199702001820186588169518032601942046118141085726564661232659359974365035815856419610258850271124102762013927057446976311369248854490118382781750838596243143003629841362337856449455819489940936328227835770140242446114003932632773604816505493186314231759591460321234769713926051302491432972358224319870284955867966883650522084068739470368074211331661199619034480614352284748596859837288571075795551622884761726659547349047180649411308803168626882609588232683051733050412677542121474857902519676847927318862881377611072737340186094695877470270419255460386588464594818374969994812315693817476368781904509907813909985541390063029789735826507063682581424126853539351613109214199131803503490040376396945932939976762396357777400489102155395161160961478602522172293165170146229269048858165179002888002950916315765733910723086261998544252861758331096432796536431712684465234003066100121011214605295163508878328860173410692172402164750939091653646561457080766534246769716117591862175302644531485344580213382006789278003190560865097099524177650750186251481881865347080531894973143505572731247245355560849616892588504795686456468625129930582259063370382859944232189618547502832621705823626154453794320891601565514850671184536361049666999690545619946926766952056574452262179989876596416441375283669150487898514608401407307429743964708178608435677587303437258205075379833412626912777854245641153499696605129410930223579402860793181083551235447704936040801977659152004049879220440184509068733732075362518190330365299558034828137049887384101422054318981068413943176405760252772718067071858227200162615842822828066556565855718377898314238077785797716822779480940082833784156309054734814233217245615254435557593628336262593990888845497324028907953722677949219891727238427047521419162100326158228373110883566669044372731077043378010723080815534651657906279061651289011838950914907921898309425931741246148594652359063976585023462981777387889881792796593017575199128375406100581760286773390432112693420299323594696689912217344651462725008581930480146364894852204899973077765135461146701346224835827614341030259870892090406074391626504744850038975668961447760347567337409150152872351866446462394262201163964245753627086732797257811661952942740196700923378398538854113843102041333572662079083898262237788939348593398408365608510141121843919475289690170161273764449637410173344855373818471354952614301144318397211258640626820506093157459003014405056335923266938694606780991884392950834755942153272007647348102923397987492445722211875306667847507674916590744395971338701553661057204296309470071656750002910362972021204142976164967394972585199368322511579160748948591448569911130664857026522818618239947961689295360765027421915485450168667142156089072312944566703241529091455160315328574686247694522088059249948480065219236073880166131780995439480314351607910598223705938730187664112948725519983006084124088837533287107015551978517444863316702296691479744453762102115170621528902029998406498165774640682914265983187913495184619883741513694046327695467359356859599197836834068874094543630391314349858308666012872831220947929276004480095792760251793903940089021367695662645164310749137150332044245416998002806928022662286850144517331743606508389823012264234160214473207012228757815000374227419485788708196769992211759211269790506927488637821253574539566638094379813955681256259315479848518411183085910431783330169773001227567216690658853767885459116701864418661861186250521154473318946948773874422903696337739323981240355534817018920767721560472407447428138100202206273624193395614235500983512287409485235479440727412650125781206280642359902466138781926871113311754536309740832447976703197043780246682267339008576024808758757213380048472607936792020763142091132428532343941159551283682720403684247046692478721478204058003237102348897749479350584170965315653140180621423956137366236224945110529535306578360104683700791190176712499913324341498415610099936802557075138787406448465284598252562574809621158991560957292966809502214320815729922745970190600567715894688687337470803560324912429676339401857774747857435734532927014520887669178836742588314828210352375614452858310978542327246157830157739348064708495439231398029310387429800252211411843165527501632074891249887173063285383227683422046532385263508445796790400812832985622530996826439919849121262740285422752016007840566292487588634714015419185652034535333103154904771001169111881829583362292783418085574006549501092000712623713423098503620522617151457282816593900101450858025762506137237080811741795628260048253538832173356173146884823042328028547328409054846314430607099829596220453245387013157555782110936213564780652485062673789982415622664826779931937657224317497263411200720840649942799259347209166289317500531262650169462851218892827787001241163414763823034816707250302814737167730681110556102549500063631092850117697977044510724225570157814564161502553052473643088120352587253726358074684562605418036178874530398104911075728664390959368128292300952474041451251435958182144288302644573336298145190647940926676815391964974127202189902348003199571209394582907149822035094479613499055905253031365515699955690702831232855902389459387040545523597278121423961731192184639504534148971908249031013553492907267058846696208166016746970579769354464691697039940498199808264019497600429864723655650724698490622113791176845053454939233028893131736020130099350211252830356539331049302014881400191530798061132048381378624402316465984952112303297362586895234582480773297206480610729074272604457870075820458402008892146036966812247918862126907342794341710974015935147216706054588860800587482493702424638227048426117609252826677743482413498645960698117905154381500269717906539609910058676145647250185366872392960968151109867646212610052704363235630741235359675481608432421883099051789254773249847645450617539610303191121938564082946100459931705220648161045523676046107828773910899922506672708526103903202708501281734275278770128647687636066297158680438307558270096610541867447490170618578188179781876761124434961535029087252116895805736841465607833360552904718308120670261422648162571130836581568056243700647367059334985797246420880024795799045135831750913152282624028543149373754414847855656280109778486152902860577536466361396243160538047469644842637411952638141768114387030482776160660815790845059520806938637311304710460170188458511578832353488233757997901422671546013104410351024420480218990057765727458526585351323482717560172903265314872944462813285746188755254748407881917880146056038731233634696413698104622348893639513177451878635879294016830502200468872356377265982040398106133138785639801549934672015556054234675019127332513161906758999617645612239476575969412599068849220263954392031458860987618779294282829842959660774569562499168327435045371279812008506116257355487824077481122942096079132642413126156107329466368348386633251309288689059012951464632762122956108082512053409847665247801167096318589105368130498761413837143921478036029485649261866102978011904635114293259438439402420552881394803825794995439281925499010502881526001949945622476477683977918613308498737828439392133502925779096095605320563529340494656996544897648172587069944596813086646121803004158898754141554857395959567098382041466872120832268648713023919447581370704618146958275067221085059293661860721209227366467284989935756927885807105652539409698203994827345080884972066856736237632766777829447230768290405836457133811812055942804222510511518893244378045427080060162841276804351581401164648105397653531198269805497863759238529002729589631101275224752662367231306108052783859108707528058601033713677617237203855883333038402137760586422497121404638513196556925356324257210284872348020644030192263583972319549002068448481994264445080537447694263701046473273385807708719973993554011919550289549955651480670311538383070171807364303649055661767029144084906763564134064472119692969165560282248187730844069517859992718347558144657398640484010035319357209970463367337220868222415775387809086723673939470834898245872547076248358900697748546381554558393000626889429840787528405416652036728263894466914700319678168469838529223709563076375800635857159726202865118928848700651816430629959440303616828707084337754382347417914659537814446368699549104484667971260234500758494066829950325436840059713949861733880501135072581661696513253026154209397434388337386282423638760243847647664544472829523030876329769264705119565273032714144240405629237724092797669904033014888350923812314296667957855903516177961671217637663584259430851044331705205656526376613851165835987462083747510525742104284722398966977495525901967870316805713829909363789632429895308100740003111055019597518503018168469439039512580898503082800245180586833306501976227171602556933946789614243501450074659584098355450938196150885466688195423420256166324619942720851931864623395568020363958304106138008788781693191968637682367628286658305729254063261192641379265114781400753978482451685345652553919836467172295499732831228033337926393626876773032135466234555495400317108100957523208061348336150227590823938968057606241021186816267634997573309872522473974638633671689505695635920154097396972920857821118472394556840646708057000380546126144430722446323264036726725062520233229948770774917640684865344216744991649225971193339095834587720655257755609652944030511584850051848057456509680097551255912324516218514246343226410092811946329966099630566828476768273836521089849292245619046369456473246577954326978549778189529545750396483550142900521520186287436354556212983716884241706381788389191888408486536878921013744585659648613051835599744421823063327239819903833898394424629061334649588137926540221897129283403548729812691931959683523178511363503811800230619621563877264555013296919676278092667488359148281756293846137218747968221543043502617902071950859182086076065888552574616240633520442188810448885109211179965714750498267129093132454472530868665401074333568241263191690838852202915236755644967058878175255319389798677260284578971059313186737172698231540556689535037523730643627288570645287138499190062470682147549513179440134794840172527339985964361571441102652638009495843363058946567369952616309067836152899640756336099970244860816912545684741030880415297036691527999309269498105177922435711955239470474361974017859003624558231302138058550098778412998248932805519990147314212243861646557778654235758951413981197801361975223085914694426616179285068030712408885272029566719286633343122725457220210122622421411642002698994723449822407819706970720775931597720930707045221779165087896615962342950173786967557557697540851806545890813916848795927612297498939132863537327586113433687075747519849441830519670857878122370208278934874809831242069264511047755205027576972018144281618759340120956095825482393193427746474094415398432847056942951052030643806988187244212488593809232221192980648404217811302364688506387442331660236777308948388776371004623718809801694644087766823088145289111237840952723272212215135419427031922299797648186758722756205001885184026980263318306619963306077718718119384137261546762925677761397959633804549052336041858765563183070271219827419266597898955529365283681812352878369818904790608221507450205961826517628364245703035993073015824469877455461327037429044399485610134284300517570267155398173326546391847939463121241790312688835336884921596598248495381625258591959745592900779942465168126011534957090800615986767721607598610785223682009717674312939575823153752247995805973272434320776820699308334085765813737824239658763996286046602388134775985549422138520081781840278576062027121530682549427951495256154720626280968229483474502357663863387422332190392829753130799087498629934795909886530070466132114532145807198309128840908149441430639969265907226368422593115790872684206473300030788604581420531377874317034812923765951055267894083987852337287143925695036582967558210193859788062055277034779710909797051805376278592984870555591303740976776008442381182863355594256466465181862520905049509449336312059018959833745162040504447225432850320217072225721553501058160716580355386434533125935254935296433054987310054100299062426140358343925507181104054063287444397401759504107152174879177103044494150519218451726838788981503695292876131391821884814677212633648379346714224557236222150874384742098070682757704732995608891049535924414340064457093120434171791222386916374757825783547452475859325251895566599566523927771903544785550990944426071920539608648712861772096325021167840187451153502280296232121157385332219066033093728617411285011151626694265359563385236675229771618692615347942940809318238392298253341750874730090068271393055970186558648035935127957627990226413973364496669911543659454320021365793804610909764355863718347308246524284804523785242270560617245790093763306309467786323776480495118933715046641623200856607059335419847518083576256589522633200238998057704179665322237107164511530109111866294145508112070811863679366479683138798687148622985423929340076590837196361382909663981802504916615309754300467921857342085976069019623159886427593737044424680610225751946545006042980146807754785495239093628001159419689324456496874634096339836750222572717866422585700172295734968998119190431714611203778640556320364234680369840426280605824634428089135691403070255778838274679822802062474045581010248279985285138397078366083397279422592390583763297981678133931866940178612393438889319237498395015689612043171954543449268949114310460195281688593613276679381497417538344118822212302295626131038655595262753578967458416992470339254212923338191484188218176667162911212398182702139183688115534627006603706143127350335618586251166179614665839405210909535486783903033612960351665626099116124102976866376668397700098950232044087627744155031364483825953464562202372764845222356212094145566292459550527371683648302806352446117854439960415730291292931133524949272751272888679180089380398170766124707067661996340195713235282108264330249360718502584459632152165099638492181886554710168928725056423924342015884335353832992417469613078337039189901120589647369345417621756004270962948441199912980589046617589815745905021517468747110851736076976104383905281762577612673452586645889051147388211936427508041826434866001422508986343645362958629223375453987461487026763948847366396798596491164050747242727044940834423841610669412001252290336515129310931758130794658229459576685265804170374519000242834368931083177250251467070214431637363007518411150225506379379529824031089634852622373847135595980892555478961080910758752285712348838400890055681120094601352960325819964591477644717135629897252582264995171468426340346218474877149845884458453530816271671535721521729037034302069643611198550117564061488415361417400928368246114340125202708165712937530918550247317180817982926079927137453305545168745747316075312017594515331439716828293305084455601421506526148393755575883995635042584891200802058803502178638094498671204553700110318726282469867437422743631962816374551531411847556807660855352533832610879525637357057957545863164713462879136665801845265379593154528445796492743024007605959985182933330904068065439064132533649070445601312673759718906421512031526473603954863663306522490584458931225892695094693582690324318278901773029247911852456086561304842921651166795107426573461977524457643133501089488715547952701835879014435433135725946988570521598721918210244255293285056166636610583120399259172038444637015134640654794709800743188467585997930435067984608433172827328544422023908885825003088468755388907762629796054200677665532230232125499435802591421523484526534689254131446637457748527671142836957105528233180428725151287305751916377470070433513355499908387247495323788113177942113910835151590437871278423681920013384175449146155749011939001869484844690789367449441470167049487344925927423916809548050029620852245494427085529066345339069773277773638258670393854047924888456967064225745742202322349143746336118985779721170637032382858974663524309427974508101386222444325652300378684706499746506171691499280621631967956935989555433446468152593718899078270218723336018204314158476626273047690937507964931256350624308811723904287964074887698491765180419438473023689936519571196247407368638157331000457324993492462794430982533119740479185081251585428787177346884148916410309131160543961110541911371977487707543816638769347954593780110275798028094632042520486345856268013190145329987341136728990099476855197409202879964636694231366886618075515148678268365176079000720264705454132601073692245361262203556704403913159090505908957778092638231986728293015741433854445390084884139320820004105696862384513324037050613106219314899650268425016229755614450520939312723778610886364202214984754216561876385961385988077284331001466699033199014177295930445643896288043655838341787631097833000293433550822811272495139582416395986450198539628858823283781430754268587496507229301621935306346074899588687142245070406633507788963573516308263644601712464791189278732206418816142015916689946024481189911926701935868435474626274901470329769895502350952677826161519253924248848588760522411435766004780104095286074304655843459591904824430873206480878242757604930984962731680511203746607030087906039042222072433961404836262014205188038761450612182711167695997843859204483299249983074084937971351446549285230665211820158233615958114032864868339961804388479869558222056815386753926058784989877102314576799579179208016393143532573184312989330798108406974866498282806833041043918258937184913660332517652708537048188018653047291390154984067978249793666908213017427237047596582864128003513160504641491306741601579418698558891244909398150455989454503496657312480114728631221323908523328281035902412036757903483395659217071123735548925274333584805782843452759749406381602446404448029338903369586945135331485562677943057300494170579500487687893122040062269162631250972879684772501952529996884451436661218902782259458458335495066099084757416642239134219174382550592002031501399745380854465973216480666006788343932166962580793846301831110306483538211189917505610680564252661137450405436506382156688828837112848169395328985634092949898501349654453829355644427686655129214063967840040490625445911477073274776625835010914289193338523230361658226808229462442035218672791827250528583527520249861897855808584881040499374577831225684967655958254451391603925004323387628532550823984935033499155520377725511524721326311129544641027761492374660210242578025690363913561594476901573528074529634164712971228378276162919264075897985963916914944005799459984950524434426884335172924997111249877650042665989102886256863802030731073166576983882023298470380695961009949247996511143253798862975418991525522703251676727240222998818114176479117546153909417508378902922481148517090179715742755465588913164478041231770072385075482700679199597490954625464361384929593840396038760957968345192326833435021924051173907116983735503079894620146439724879888024024762849378212999099636728489305560907908690319465181399278512264801111273911484892171266711055156016762482424940987703486824135465571766483635698736954911963452839971640225201746492304866019662204391305520851624168306789689861458035696124559219208048455541359633814118403969506010858629526930410744098428232569959424618885113275963798085508132813467258495897508140557570604580606319068869496903548258077549335781898348512678705411292472650072710930617890193155845374377223660330797202160702189617001272206108769078638081233801155418736409263116671818572917443142477336887269497555354204142335290156066982359970496816760356545368043106204497081347662077260973709544504111915198923511517086602923806893756152318519828407191572555220084664979223884359537824430930076087595391831682826407731578790337834553730907167913506463874889802395928512320226824236320953350143725789011357901396909452477635140217705872194147805768037736971511609290877104125073733361422268647374653431018778056134908710438341322540724619501335413797559696409288764007685973794730049045849390377982746616520977594315394877517765992691831339808793066731541950203000596548572806049104237455103736468817291848987398696897582245945854772400768064461071325576158652897883210382614824671261556528095025918137027789013270588800086086068250157536199358690902870083575336551187834478506517017639236354639176575177864587318894880005409606874401970430159813611901225941033392137852372423416710272701713886215528007908211532524290428289364173434410815496372422284120567410527206081098918157036820213532407470469303109885698133501100355339197138381751212777921172742671864113140864759600336656129352285220669077972411488540382048135409393480555108789782111360380223368183069103033420013524168478166860612950643745405020802290366068479619480275859387608639689075953935428399035257370458833206810764030074386630927712643638042790805670735276845471481851170654459628398975391913397517293366287609403223828841517588055799512253666526473591398425629646873307573972849994268780027936325212983794542501843623384262683141162834192995969983533865616109962203963956276220933241068209025280459496832234527928796856944297435434591931886907493537949987674449541336223225415791959050460126468721518043056076964507371850773045309246337246914100007002324745867187719145205082655415287681229996406651687825113383282819768157908274954976627094793266447894889182577313720444159377451673087202530312416789302629899989759222499020134776778607380417675778429616459250252723534785430568636645775632698675448664259560270446530018323319935786704418540579898004846686288367438704984152235595608215470162649787089566766841386907168044488368439966935599920246031417230120265424766412886302098580391286187293432221502668421784638685727256476007534106708267227764034155067689357340667854093095273879144666968050761552892979218131889267476735150699524479142563533724552042913475389872878445718683880445041245242727373939524035316818405330011293954804363492739602171541691370562680889183204574384010852169611756842712747610578339972591171966097495733977194392495094703552642072287425706826031475869426853395361332534181866576991424052777408101146129794721633903816610972849940613642116605665428781854652238421318330709894898097066835403510142374573776080737718035910149834704489290151404663539927470124184580007095306404523340858369941477310496697081228395317425016735909941802193021695973881573451721221522505456602454992341970775474678648565152348445952250624062081219628279886892422308388044444168934367862921057311291595024006595248539780855286598458518191516806183656219670495845345719425589481368230563504623343049287434566565656388708056912576701115229448039704894496097779043761455361919134767864187048103260024920194270508927548188356593652665696020621211784616148782862441233447097068233838169648789048303049801194986110956500716992086416591015292213770908321740693694950673700582432619423237055752552940155879851163868652911393357697684611829359187459735759612875290976599617915453322504131703560254331141285658533857224218662861552678464672416036831947214781749625212526816732873067155162119163217830675547468776040438846762067849534091124225621206638106727443558732890558393779557244809803550901833315217098832525435367565576570296327690473396298498428520036436751002598365457938823551748223801645616062898384253574365861279039305413951109741305174959151832786309652863597725028199848507562780610262279845580543852494320747967373948821197260745254825299981275431162706779886333539005464271204475060626214302728196287058102391611746663713147177843789998437445801843653478798389750508684640901115169557014488890840859592187885957808728551923176314423911459902828227879766856485392106014874420446757139088949093875465341881197296293546231838925322729438517290559031140470761556571816990687381527993448185332530035683563096902740180129598086747517001412537967158490173736110855118385636144316199869006986632527286478810828455636807943409435518742608932923896945299952939558252608939598185963584598658284130346824013639193301343996403584285539966181323224068296206046526127160868480611542930396336403092766887421362080178576425141244100436744203232568768520801591460701638652593131858850826350362928629251531568840596282903610703249417281759294041466898054991120497622916556255570908226349105695256202750180198993987335393080743382331987596099294687766679375401661228132900533128132208447018093223855134940485847863767333929368437326004408665479217639588880542522965161108411033843593174157721149899983085999272460263061801881851664987192820320462452898371603059963705060684128988833470450935793959736087622123426635995849131978422664387305275290599236316250699774565395302244849721457143064574742169830103428905218479961545446113358959476343422302901016521701602731459679170197377145492431180946187181749513323982507223913704400469734867877879144087474867553264990284790938199153141285714171333103143488327682382547026968553148575032513712747539824457538510714053872468456726684064687197569002457696653760773133268263025145672659383380385583450619373794707092498952152401730118863559293265201875224389962966862952442673253493901704749657663431803945747235379293606730147174666200209787219266477323790969375622355892663415807495972397797920863775755025166908026457395544957015205373401027455278922398174713698113524888101756721433254404811181742099611709975783899187809636444286509004071629550531365786484931781428982613399686151540250452365174738806665650214900685435095514173733180589340530050646833623663557405214273520206224796728240787176274355433901287189641665475229641810127459138727077851142716691063825786060277043311289397543995669136626046233294857906111704185886359908743931742803405759013326699231447003986468663329096187487288457635304022962947989374899768014664467426194523630544783130713412594552708077552850940562734574824439216380044955446659432813893713784737354460046663807375595197961399337427166362985368021674864799865700462493799875990926233917949479161575166894198260886335600691048510914908701959048394395987936324454590903410283606680491147394581742660475869525872971614629507501993705579446163482890974771419543687589385891177602271012129410411893534258754218973948010153991455893233495071723332350645618494864326018090649555538258324370931989427337267228678894527286639090530532465769672700476766561581485419530498450439942001761267779468748828296028423086321966110284708722627885863799729058268343387466921422349713770098878559600917756885126106289005191135673015563698220475440189006486420454164538143988286277821961219132407800603641833509273443934522409260792460370146705654589889994752092619512487211109603958046387214088360562658963427178053285808877376395113446393645395953049986870756761223612170555372494717899445166025470944765109101288138772052176858585298769676844393214928427960978869910278398731383370204842228049196098895393154213234112997115036039072565113101816297304920139686800876648923703566388136640797985675273263341721400736347606999798606190276158039497321434362822166731245886626408821026366567864395196464031826445958105775453568480153366613855298822782054914297626135576530437222003713241286959362803316696095590786711662062794134442554101482901007619253748245340993758799564180478981556136307601853824008079740555716456634528057150318278287012293085773566725902105612839701421852673058852625366461379109825511698099867686148323594389732659229249991147642577827669874066986801675991408344562854203314876392457248473422992251874125559314187174865485264459774030054561813025183079244148154173815884272842676108738951435674088791196496448523117985832927361354752663555122922580922010185669469335160368666288729491071424599528540908646815913617412797034565189456780780637915428716152184171141614171589137059599333719740824051350728182741217711340960410062299274150526175569419269488772365215668808483428161117935548050987336421198594061160208018592832490099063363652637636605042796354106176834652718524810906077622553452590667932921620455865310716495220342612456158276523294984320786717123176664614175228144423590898524825005198090225407591512658269007889116717542347653004992805190799991753721490957533916214001634929188894214357253176315633141038735077338115153087346301905125570469205875559849428693414250315167044782890760417338236378468706759946446940853437035646257961942902723870749662274401639877130040470352757836607789677948275010654548618452805350796754550728814409764831410184101603798903107241298283438289870934845650661381957577791205729428531654953472828304338450322670688456424621218287516687222306483690086233752314006768474085468914141507687667178881679038441602888968161611015690067092235124124609797380299294055990215601034089433871317718855694068362009504932815980224662468522920379767477833468766065319797659640836325466265250189600903606445757185505145217777100386643424509863842996273496092702446937266591411057119692233358888680819573956430343961137587508295367143857185891659531250995185276900771114383218360257699637365433213877172690510055901070329456076619009969306270857602339122448532252671364851773433895032134605322779087031298964407870270748483902986585831221773840705372579052883844325062509541024757574282376360338256387915291993397949053522399940373943604395520587665678887284860749463866151494694244444744739039651882296785817227671778006304643719630830175118286859188146011629059596610499395299568224304119040856923484453657198320676499680422816711202874596050457298002532976388449742548648794079519826599886500075575260557509971758876528121831411177359483811627664628246484403183465222701877798666266057117937505364983149531469139291216585864310736503138579916017276421159857427829283468182725971109268312356642983624598416129858229124614608995331853386707548449360100698316896190807283402729508622477529312139559454905976352692867458356159994580189874833475750703675385385979930347588464228182116598272582604943134587210883488182384406952210767958527764339369183728166304380815986102286198175620963245106629110970782715391194735385267596545535964689851580719986148059793095196249583360085575265999982443544428702596656098696673190472867076930756687362800819214035958678535380810349538222959718622967397944577817602565741057046624271021787355702021426979162635537246297144282006220137887320942836488046985223550876677255745068636971738670596831804806410387502107660708044792377140760774325313315029429325674793065019860415777154661733222349627914891800146331352654257706555708750965441299885674249907511622906725700189836017506938597551715125005565852385670858172633307440014770655386596976027775298834859997290004085495882797011275885241797922019732633215350603992232705316490791114894503642157807300394968085864234135656583004745147017662556969580338867769143191561252061900045662043141624396572637846191774494637220566451152593481225242249559738400687969752574379762745450290675779181202639178826602486556178541020309142989515949464466761147571522468541695177418081766977220548973432471037537749204287376516035303921908517357221310125115498056774667253136687987116184713583777888241260767800431325729087301344052474176276512135363578483555104243955902266108746616993011093913526221937674182915835572392037044562974405500990449143024784760922578899616990250076402165433807787548095544718144991686256876316449653420447935392518647174497333655151082233622643121425445510787165403330687786876689243326897351992964084448103144549248936686724230797026669849005367790116055441867328253482941036821146563218389257900725633466121858349411194108909604416107639798387627847522397913656469948789488410848955212451959644193821858914912401187152289464141667723165075456717807539785508029451517654341084312516282728030489740906937180068982825275111304099831785798687821481564717642725693853784371278900677706570949076432359205504355634970391540396459592060105738982309757619586350153165468401577014572867267294957097459438013627644100458363946253796789698932214678842445451319046871743687010345111915321184265989039543442196476176782327295963164321441990872067211447440483531473247455595278995522465467746259409418432713699683121655909128247951821281022784793690163033609900120125839969037781284896948818868758772996494601836725777581533681158390292119632739312997640345864015424479167737355500467019508967970037402579022977747412523752273047735618251182933053356006539896666072082787819330084913295949538864477000129305054803224104892903422774483017748567687066914406720224363473604047396935493067970238232709210050418895542656391568566438178145819501136275822652087855498174349556105792992651204983297122407017310824264095150687695816866804768504259316903348000524140988057599768438480926903899872703694623322825011411024351315678279935500027579275178243829258460197741478878217582915228724885211333372965284997491803093124685771608890584526054737047211370330823536585244662731479138399315522473527602178877078634800255252937114756107275068332249506582313557785536494169623501218636657005190556504937042630309770805475561184256728071597349263559640086084268048975335594518349056435947979565110751652646787217599205370561533903747670963327404020141489755990498073117400503989116181630445300614951621624504749926726303099718307415274716287256289489838938848460609927659315739425656506497712696364221309186732216019187459820560326651606500522967829227744446855595467621223391173522001308914585454295148834786678123394497995658724154140973258721986836335441302263905661032275287307607509278278248995477880405633407372954343120283319248986112215311576014291281377712559714949900005281384612649413678981788814854436745187841748195571378777432044464460839381383430000338235851887555745048531505022583490517491063668815939665420607692220742070155139966991680927238751991567926274952908510800223678480608268805783145894649039622273304961893506568632221937332703629844214479414123324291431035860371415042853117737620322703305929359666891980400855639127621289809289097013032997027622175030780264634889891888676941287677848508741010483800348799426829586161527377417080723026403143904072234359922167633953145100298389565857400061496779723231386271868742613801886998938207474916805057307366459193204389850762880552475124508018999907677753630929229095860534214303344777217202735386152310004879016041190943729525860340192219235231239102024556051291432526577674619824347314318789785662612352153464903880903320038153888343122387233556407080759351955993725790664673812474728269895783511661905826050364461863999244074157641925370093936898324432080818063559062235506378293146064207308740162936809387242928816665667724709643347685495832267262184193206302365451099494640033143745895124414492622547644066964940145103654544083944010411742769721894335499196298832397400652070435082009179261852515325329327876776973790232013674709687562665275352641527959701290656418153660140379687706412452818131899975652439401722011731627470463626641324911266003724117912335493463130190323068588509554062882652284738884461460320104184486565302227085493192861637750749794898349583121733915119631076415935834763078316179446027212931936144925320532253468554455901646024852094760866447610050023572232573666809220367526222594285574418630586331423309019750206807442867918727265686435661923356365769636639967801957641925004820240388244362582237749282648136718816030169353069806764439892198224640705241935896526553059584293255642534444921282814220893921188254427736067130752075561645879908562588560345571672498300149087621760469103682519375962296712329157134268756365284163520491944047591049332458890580746250171206652415789864462343833811218726495698294872887473401443387392196012457742402228352689716226602280528025002206126934869232404350791804765211342916181414166415820805900618075166087863999245348308592277655978728219013493931483683562874813249885377461037243859599978437456044034531697203988479612489121719051799904596948842370360941299733634798133738977455989328760546321139119529483990317663184888516421222267563992101283291854409065075376368600000765950121087382377489357011505076189834500507406106613986957244859955576488106201310060988613391980326437541994626900449522139048382514292483366280439605062957109397163366161949017809876479539015335891853700605857079550811079982490166675157645416090202581323718295389986704080738194574246993395505428160203019540447528561409162028762391934687167383350786622244591557209463451761902176555188901410902105343290927706652788306274296133812057297205629712637238112327672824963577289277891027643436878782374211437805768988280883456564399016004400161019427091909701930313801091478936669724412066365492547584774043849935286197411891624648692319841340203402660567663825626149921822070798264726837594100942828196726365197447618403693969891447567068281085586637196663231707767860617672354199207648366776204453725060828894493312569328750158679423752842149973060496177856720519964991901577046339785902394299491434456865968187808412673034135613413413053045278536659684636249390438758999299688133143517864347901398474712257342484250964706954818073965646047130741919679873363312579479110956206394274164279946892826025141370889195170637543019725448704196421058819845841213884530353178235405148981733953724973801970679520693740405542222486176228693885226251968279313364139474208691374597654688962817063837567756623042790623557841021067721748021625163339533976428727602460770985011497925206371849560952078831019937768959502116072273453596692520591261110892024990245209563122555787000884101605411390564029647583053969918979916538730373005889552585953575697735466998416712470776506324080447273277765733608092254619267544283204616593582632301994154738436819775086108985230678661258393917998971120400746091990235985380132328559966480632763658758395536123640324494488147743900539284041353243660654756824626238367623892947274670036201389575483040903022451502263923785400873523607224684600994100007235155376152956684109121794075670195839252065416553814783215693565072280765076051831723217699846042848238224459843187014349018211164735076329828696110428224124394265385092353983090297132464611289065582018083006987226069348212999783401896126257515716887447088903962189887862667113203273024170417172811660143813404062823778513664742400820338902508111844450118142217707805534173632013386926845214519268414672650979483458735944335252233855201678670098996835149538539841661022039146407812525410026459870955398322472528067196086093983395692146295316875407245739187172519204162183154329912724870594754891186490033159732589796929021948055695873983855255255477402558531276985660563871483514557243928129165354921751695581663892774490236115676503208970379012531812549113257477775000951937265045071456796788058693223469699136368654886596284076698642022807762456520605548132561431250311745834532634940192277337643108747367233973270210377906896944952183317381880066672437842571970670547807044466062724237458196266663893222010008858958979804059433163189475200234019505112135354808898576533456838738835519088953221654021377078768520488998686351968649155531230807376478124906291337482135664309409584363258540053901558366719668046414619623532670757160243805015160606191143910738639080379421665296974757188090407126022406160306179206882514657797559081100528167328802484912110167377185762884196325453802212655419315657703904427617971998034340024368999797729575988977983693538069294657541337836939909257250951891816462828175582014816661225111311691103946244668875888130575504971526874225404792477056878658987853724950427271577195361168142431377900408525227295840120574828773400749779139408601977619400050178816447664216135313205366509977406603152491811190965601588995084092442215989908786410883137806463672358949091485947634230539507587477832728037451532656892338015110194328363125733355095438782975301913044802272900035975401874679909672350143128942816027961533154794188453187958609719297579544313438136088274575632088494345422629517802823395512357288054441982792919009343443467213405839461398847534671365683473591686404166317083911685967871040421924041044293491094429075719137641104530290232255899021999136286238988402482313787330706493561056338445975274545695638425950564030424135634271207967725619762168571038141596475666428376930229816028798362259954463217909263496977004952934861587358894270212806144804192944058310068467351039192689860035315354922411593645134599817960890173396149944307586978515068274622234305788665670126830666374091591365527424013979078594279878434614477625225832028262297244331480623758605844823939687329612887113594423794482660015172155955353700878974013456112139114178795239296801729908188051145920594592359510665599743471884880778901389640876355868455959329758096479923458313311548648928028084115576984195386774976698930005439462128255122871346399697003817085488027419877248025856662148102941295578857596192732734079663332415800598201848954559187128428318664447594144986698763718152924108538721050473961879902617808321432229993375848130209595406618500492842150457070796523298725765322777469743421821593868239472829784911068581382686823285640112288901469479415687089308256147628333444488201899654185844615794145033720954314683291506318112941707630210940292590754917804166704685814321154503394733417684336700850280773075921055591719515510008012153563082203915206419584009764952133161376974258013865835417176643012910993587829256186329617128120677372012758322504984015277371442286663995294796357381680842031791696490369932565795095964870068135111253074270377393507334016014105112394441978530520939985484088806076624975451364098835318122173022428849534498288282385592408479641339928902963964975188670053001589407821997284912870946193339290901734533161598687965929734737498481364047807265268832949628807833672449513866763912485555477264342989079915195194800724801252665833955761692014968279971041547029240907107943003243238461729075727184705441045990494318024603724209930003510533879928495632411361876701289100306691739536179009805568595367832587359322444331441889405872187859996435065184464067427155678226869604953200784200276992373820420950062831620586317568747843295774347920857611793490797744787515077408687836335734530851857234456416260508379429536093516236280029454752677723051885480554172643943692383273026669650823350969587349710426850578297149957285085305276909872528586380723360976343101009211026796012939590044583673494971555711495627126789665402025070293241316633375688561218924886572054599663556661379633869629983978894469517480822802944180074801971483677940009036668989075863375225362509312158540544652621224228971235997194023623242978071311947746940713390497495120024973605484427016726901040808321928346994429346571330584941148881067543819040529917555476616721988694563672421073166623417574654047563152339893144703913491280110937611602423911480574356672311294100152690590357544866547381601897739268623929901723796343628206951632012914810920279471099687558260860458356577647733634071051619152897471645289633864187678473409692428274382030587753243399756549435923081576156184467787762562022215020215006627715300777316925191148617999358569111932492165012320159909095255673118384855220254664999619257969802966458510746308351511064774544058015571358093620941654239575530031395193019935052652366828361149392547798116070266991669817785339853630290768015654189620915504616685652421374634428322047049175134591460611330139627346346857342962934828515339172815964961738834004701692353708035888962433372517053380124312215841493898198347967946069848001026834781800966173321068695119724328034554603254055567157821767678018932083386099276000518978155586544923397978741218989602878820922631632574728588580648421294899202158481370668411350234687305298502151857191352861549001979035250642669270601335442606477373109023018865113907965841084973217829548637708754391690187168231070851154701249397621358625427996248951955895828793442067008533099615391810394471688113854204780211210390694834924316606521527746638341106085547558963651932294057839933364433802882423637261886536045740575444573155212480478860673386600245420358947118732018466641382922197452480396825015545446041998807685494371663976315261558634613957541157900710185093287845463431235418112009493948114939617379763754043510542688484364256300703124137816135116968470312141389032817845821365399496458340956797076904643764039806695183373609643090856386828600986961900827544427868089470255508028463998900272396228452854333393957966782024553912736433296215786627689845275855069830065750323082025271605975756319624681565869150857139764202239904796652731846017849871980148530150519335253376153159220330928002605234621691848184557279686282515386567887761606167612175139724087768682071442244509101847559115064396039670006383142103607558859297991732685618311581786329108586986306218175501672121821142989881097657040121633559348249175422429991025919699723915235526241886026359922391777467946882042523921919045313854596069314098362120606127089226142104954425168504365790826018956801340294514541552964306750999407463646310366818563440466432909675048538798256448549495378447935619888242224746485784773754832959036677716593897842917311311598106388393280580333101490724048034874592130188524093866627893783454142387819182780037599419080621613239424623295788970494683612105220747779912394211065917718655943671191686136115674196513406255343920905370164316915870790381392562072127371384725159261351326173182667730113342393593395244625005603054465198233105073634767421930009950917589166039664049692830760976467995275378018129969816897447313513299754953901449669664350118188647324833926231965615910043423793089241946411210217505267596283356115763167574171738153968686456699909166393189862976613628539025038156779185828202635214206286990447480138819133617425874466893734983361256529511347785301489809947549865447547813302366472840868241170855662467044329860012024386021837086953991162116128556506776055231642839459418018902991015233508010930346199031812490198292911328946203085739958469993898648049771697869315875151468436525684474264400389405651317591392669165128567356526996309301659013180480217506963965405193495357609862366593591968687763931294027076313019230020064562868025714118008516860279318453674632776309009275911912814198251370529273933424257951752949844306098640233109938790803504429712423049688870429659793164269687229773306534084768543785323744035938933968788072391370616124549589521350644494445393539655022508059402041041834808972270380963638793953999316403116668089025233526215975341232151251694011547077862930433064572567376018456142865063954495606830076389489142212341344493893756527748861446443276986364045028749248797733353348468297417220393603943789798529515816645184651512415428181342644576203144963588152839993336822410610318384411801803105624115773952062566610568563623118493418901387343562499049163778596381627785428224104636855083963754700989618009690215059252051973067825616731960191535525947248520232412809727667380116627813199459771232644671946828865726912165024748343743391165296102393615187724421232420530324135513283659441047583446662838163598344966568134401327476584359682939364136113614036438169466714743018392015997535070854706049828311306447094983815121453623408945495322399447294770629658029669269954757259878852887379765757988668891834231726434319726855392043178875591031311931192434600257615222709026488636276899219248610139519516013921320164419889719325197182563323841832194944952233442691220289029977871353052100177489423701899339445137368466415125699923214393798655921713643373437452498572573222683944753689107713969235773469625006943941945036012283881110931671578416394240162281221622834646962905667947273460029265814659406651430358118585686733249167727529042331168382533701859497675389454410465741918995280806655435497752909700327031711749845375381611133517312256762690727400736313840221401883811365488845134510034680026247594445576022978854070689710768589556723808016629133977967164725321993360433330023262155047475736097804253562332802017372691537761685116094073364426719771408713460073068084181814253643929265291514333346240420367598564443076618295936848137001517052289529586489548426449504314508625897652902536308445294747100645285352949705001495587848101935937997228807421635959489410596926548446408574547273220899466243187209298322117943453618812075467439738571083748823586331524161908663194957668887526337574626842541661390665844234646026308094208104913820001499456824169918113176191876848359246100371298766045850606445050935003889957008882961877431561669378837583151298274514947856647576592761151492554096840453057458517736731439121573893232043231163988413765965886854538194431605598554543157115139839304045764064022756585996648498204839112857098230715810794484182054668826592996347663560603589025667839631069729867734828563227777165419534253497030034282328721445237993911491456891639079105580715166142913861185100169391109595020024083022082365487474300300352434558849797774860894312148479294139149864216225387131081411422278419947782352644905919867086931563352427422681367168507304525560684788074980408303518985062765157204964697147267450055728512713926147895261680580859900430758741915614114998205804135309770263181935710188839043770064307633557125139602716878869422032509472142745815354724505011333021313992266399171903903317726008056758209497860064245775765494315692154040363592566439185322030855505936864912433295763844446350961842553592557279989291687213140956308143456630598459661509904372266692268475395579289921488105645785920223103869551298168440292083939122370158289889021333974421810599823527029002467269785321998234408034596843439047850354630894645346462476423243485528466952813850142254108580477267094732587106765945536649497504026969103857833507100307182824562774583044284516983419965482244753820453713887866449832876059356186128003055689497030326790175486026756189712571116419750820949330455947638852431666667393026466035797650817772378157596759009068211118953032847015088331207376915311799161479553187939554595503539922116384091526190050206599967660736327964593793726378817885318817876109053157244273226459178767773795728467281198166821147917091134521054239744159286857227921099405052939834260007406246532120385792686443957505661595246184917311177177824789503889282461481866350553100766566509712879958694114539991930150038248993707885204657676982163032879951080529510560817552719347392517484675936292784584234843224581227768189477308974709701420516574858673679373756945138337921811345343916916892033930437558941770706701553854615603280702794369037639322363682658889728032070123328167947261918011841819487029327813516377249015336618698357656589721096884801118483178633825840993362625182849773773341683207914657438494340142407677714076172677649506473962261683831958083380416082781360931253479461702718617472975132228808090677839054950732320327904344243061947063407309353296267107914251926836471351258499866640363518636988555958164645983613508148297593943330303229687410692184598340318855619265723923133604797329120460808176803078121730513746573583618021028226159675936904753447823971756557002278893335006320963916323329050610780410312831377181975387313862829475802260420136813125258198036858908662129959962761995278765334058915524447080790524944887532558587802365705835784047497540150983675243504068368658227953176358083168506962187080066826923263073664383171506291571884326572491869371168166708566134306207505096149420914543767739622528581458603269695584899771863025184774225114183268035574161157804372994060625018090832965902286017889472056414194087924702570449528897880497820626154354787090132794829527559108954147343014334294770010264476034576904140404240428137026906599644693156145701262948141688860787795579348503313092907252244726672976534100966284615737054116158609196443416942589120590373124903917723432728782149411993621508770214902271273730881339684916067008412730662660602560250597937200733742175404525706338097046148658651769329822728175886867339437127862525579457483481433349980989477198081335058242943313150378842205006224583175742727572336057491689701422886456539444001767974235556265971204255943280257018493750978271130586738411190407407430755372597564882135579794597879586594189994342138802619033866994747265753309491219357743636227147534069170531373385942088210920776799342041061476726241882653110228974655066174958826218840643284180709430330714926481252060112845615109640464336679200017264108186056831486767785802652943696668213234711548146370366487038430805115733266004676617164421126215758605418397020127375918277572223837319215904420571612033367354860429635619906988060800019891175995288597258907334618390463005603026159507067905225639348503162123564514643774681424680491161942776949215512993699265970891816721209706963560627210675935194430889689340921425961587628389657853212591323165370629807426623323704621244060596740103849272624011577318031281808260191179258320808651801572356317056351348628664584798622957390134025439678817485067148185751471831532502528898345450560090146659923361496324688000496855851888284288947245657794222214728503633729780918511230376454983710547060147974442478059250405579368321049824298976639707947465773239350033141791005280404510910192467757153465000878498943147683752127088413858021016554449677378590666754639607111921856280744145268244839049522667230290340091244685023603367020540648547962522390553138010080194538758445009229518406864536083175121025148264708081808282745360864390473921369509228303219347376379914491443947597412391732596406074962697807117539917935574143138373971510167134630823169048320718611042412383880292217539966031640127698845394397216747800901364394550345833442091219695536571245711127416215361972679683459839116851670735608357502264731455682999490043051135637961167309290522348918633542037429143192112403251222597748824280019025771245828044242658154462115926677688244110009926305785533097636270656124387118007921262663352121713417374346312823822635300834497460773266687143654832212205681264173173952872532722522728816076761816315145008457077958212488179637838383487983181884836060137474438244475741402051861732524773580721964766307955091277765742446826915325559312850592479027832512513478262301464894777409651263692999679761539696941837606961891585032444099672028396296917668969677739038854961529546016672600237725216391281139130216540126441084265767100264645660431658811715766176225622655257928322607544572412075598392494303950675844898993684171054307034860833066668263067747916138262547403580881895101269259591407492190022934825601671672646815959695866554523725017995505480915776598051688299998400646777444681522549774980539407267569073340604672277093472199758694587462149816163541422757816909754425923013655820325502220581078050162174101571175267048202004192685371861499453191174411360303723966796232065245598485021051285580259679816548361372293503614490293015565717865135166259702725105202238396467534173854018016437049552431566226100252213349260458487511388986611981526814194753678732187399325962283911869381536972957897694328270962112679288791793841522242027206258569870023069150311376849329561814468420642831419522430203700548827596190132001027805795122798299640424761254575762659194352526702569028447191567891015146052730862049808363742062391884443513872331450054081992612263397669424729683778450446185437518674223402521022511788928735751342670876741957155253564908364936226711878372379874356778571418418473414726110675702593096522134205947885176732699406040889755084003864511604281865331301151792293962410951132853633978904603513474240566875159985167364232348050322348807882397476322871970954382585701956591590435629944570570410164302812626996699952319622516272521011956943236045155586481342411167782201968195173476982114704842894857249179343702958490368862668924495289296758735611735583476476434560365381873694766220873753850908618518822176554800727280405694082949102425949749849575085629796604991220768938976359675111502254786843501014045944296132157880785776125721928327976735715172539968951838474114529211572958070396720002628108901522924356874832961615324206071372868840534954051325829088027198120898779899219761632433094974361861629997263900598705628685999830244165208304161103044354308830470502557016386203517197071299448599178172245665993154220423852039561663742922342728659035333954904535286251510136608399838336083658253672609510033701642091835558331638198366247374022022873892462838557833086871505060429012389117418136086210925081804832928528733090064868882415881257205567752435587270337109896048012000202176794699547656022786553882701397990891463868567878017489152943818003825067614914193177838305235208488076410019223636392353915152071736689716474782868352033945261676596496928372547794696218910514346013463697907916631390452626735096819013714714323374489340470968262148551234598469146300304740734665328921311882995862886569638936149365440375636233680053899695375174494302213118844842033296083403934207627702230651311811073738750152383370162933141258687190314664901822713880706223077431463754425821685540242916164506162292000742275873819651966922372885694395854721199555037477768854195064211139068935704114756985334713495554818309838390162401916747985484582777648467582674763214042895072142892436448101664565148206381697792454661738154865164213672024697931931880024587886228660100434134153000309491987153059128065757692297285260344892825757736319427026701484869650591219325772951606121567618722077446996991639451509512332578173104735002614981030198047742644739978234770036709600263926219099731053686771459973003066632843773933792044585523194595587204392136245859984059785260787502977060320367712392103542660974979456547341506092496470715103003413332097098952482632274106550554338924696536179191081322318077771144317819520685993146044874354738478961880142556417688409284574182451748942495623249396665265399908410642853397939642132678973063358324841933685408374070664312403781222810639921827195711210596698261757684667935581345634536657288828643477432931118792200009639418034781329496215782114761917018681716549102255377165931522567266100243553393255766138450244474560657973711264908069033262967249815636611808968652002735124854130704958750923773199106048951814996653045759194818621958494844524416778204406064445011699263267867473343221232834374146076595358459489332110180444031135982033966058586165541364221313829427440901072846420722563030233379255013858319417592034271012856413661357293415650829095281263078182188472975248069315211407250235206679641812473900953766818940821686271970041596055509075994718942250249799523543062093675598988130158875538167789133313909468498850005137193168711751940921856445593897977007669654275258531546267539582838539412965282399724521525181641694461624512530120944730059020039961693949881292923904050537124443197549183378787032155731879815534866677691020885915142544166617495941654156311294978407041956324550361401742141072968495501487229780173277071542820767413008257292850671446663264604326049440549619626261962077353489533757531639852160465409891522927182363072466811125023736733974156981578528168416548666791492495119660928500887778577157223558069080784201847489696748415368987819721290544276469341184396491452238234323820524683666506231847681504169147333222208303567935385006414322799998484542483911535766545557200533755343347111408495497266055974779011476448822770573661384043574085353347251954410319466672444350043221405884506472697254307568864958147103477059424001619756381810489784562047606422641526553769032221006947685392730639139484164160028606123642826686573401097537596015989714356310327411465001207993425697613675835363935251284526228451325624708126676817282911646523342114731619286689751758095572375677156521378430053087305419405813533993706072610292615722182201072790636688488513868166274802832803160536855242433165068527525619719611975621545298116629426617507762167154603081050423147398366182203703802758667317306445979626403380542078371807514438925249049729921219003883407918678330250367066026664688493845663352458557944047956281105896037768051964499332668002933487803117273338978930826247625532807685425464131001938121269376782746941020581173231203859493042179263725639866496699845322020876807244373252983920283112253037698499877241236678992130508575415687413025043477225757884182275251539130850767147570791571224516522629645060979703515583133840013750953814009381069613692907293078239588809852993546754910399083539925589490945245899770087418481361862078740319934933184606381074050099673905845197769716504923869208018868308380598918907696347017726958580243344923279260659145241428289972032004271425374822345206709725064564632883330735233467364951820667543765421826990813882248535025376086608688894238495060555931638676170753626964096745422548015429155424690803693246218402828298757400220488684714925454280533450534110778749808106524559615534513176980703485762825221096723062879507496902870820757686525934189214971333262626191085407471181680420122233803426609413316633429978255608511219146413352118740061806710132603164456242250520275961741999119473599089227297505252394101344291546051785781816375662449836156198085722728592843976759604980655538605179348013775626718776750221938384569723305646884226440907479144241844762206204516014531329833518934640836613464750866767486619788030026474764197081441575577218916400529218434849619590493112148069323403098388175194179810638374883480363874586275726394611289587801591888616477383405201858458538240704475338208042566451496758441845210547336757584394299032004741444146595573601815500821057361855377561887025492611095330262134084358377303537523006362521175329340184406092744942631758415337534505143475901097520034695136292708738614280711010641294972315122555362793379620699515719898321913906706567152052114152409279216891710917774872171184036648479288753393725740558749931153434061568240959333831650882664196457786305780274936951792788978373871447373610463054046033046537129123642548491484321360034884469570484448493232102345270655482019409710293756173482524712989103370058785938251046537402153164029101645736442139568716475757353401573163392064753003213009113430322403825405184425935282393202015569593537830651826802584268318165053626862409751910213785141112108496878559195390246697280550887155150733552298890038464786357137709937728189082038754498242842607112047617172500288569227681695055978819528631038066439023077146140102221750476066711264303191126428720183345705836804995256882048719950322728021038947577204590323591942031025692815144277544126477753311022503153772917737286950975725764759634662540490731137223756037905411980589372081271185607590207338586448060413733395317465390700075297844255522191494896419081819150381770911514627404246970991671885450753440062039216395667213637594172046632252371461429150104144114663713361039813389583930786219339208014453061161689570973230274311830957620577734731853118525679189718349985447663711612986012963076122151514495445824453541417652894009983221969512919679189608363696814104374272893902505073089449153025233299783355379853464584523978662405957618228290379667955789315324860229059910372883436140651373650260764456607592827387964235099666726350802213574704222169731338702699769120261416446343581825639248057397693420278614386508412359254446467886206744633243656444396509379514979734844144064598956140066593466297622682272445978150672400053499750294769559780436087922630659818903024792170467815332821163571251964072345902378962669016031556104804004646907177066660807921962413623363231753134000267157043516884224122904144261056851625295450310030800884913928952105182416110400319572797315703401207029362220052968262721556386730831101113940608912293392820745514005220526522650061555758534006421326147222365283210563519151816012442051799513603699573474635721465453155607446913637361998993744309728532675963222309253502666962984524969925958524327427729182331161011303763544057578584363559236944834817006764649564430940698789464825675498943018785002147111400213130226168920144582889030011364603964254420475155926327817247225256470124756455494352192393439647420511625542113324911937033829714281191795195090946512659115756844492163979662137667786303121867312739190460889906651355896658718156062250796971607287020855252006100000274970161505923736070737297662982179551978937793814602104756180416485286814188637256182450699267733637289213601722129241759351663078238238045188768070095613454737971713372657386157205744226757348807699067280814403437760580129279603294135646618175961795642631881540489088198390460016267938459633441293466128919708542914949374652140736987796101432590010439760482074522470716803145182762131417789521789160376756548745899637501171788645064063227782973825623224606293304288763323108327127436478227827376518052914095153387119315169071331451573932183456979069010224092361903729592429802009191142626319181981551963838165077588508030489121642711014007176914666177771999545711880144314748065576628758758665538820468570462631067419556802000095377258873003116874109964146436484974522555025425916147393262437986957273709091704534315917530338833712544102446274349588907787729788643198765293104071596373337123760386455878505324557335362864901316265949222039365011150476242702229352283134235589147916413320011765028931856383785672314908549762768904421735242919517546451722838120426049567879984198020635446107002027196385630886705702757999614593510713084843164512643328280146511679529231600382786734667640846751362366559335656423131752332071379789580102075500544894782455305918211618040229005100816852993340202983022603576704588885001499049907447611164395648548336450990495985018090765654162071272924524148898290181313731506082122482042380089875896776016353112215742629926902209904225938118319592121058285089953225603067049919612017027906053266039622906714020818276283391298578021072594130873741943621932053411465325129588612411874109568990370619762756026295994906790375603213825742341430974104122521965785001889961602093164306634784262394397893069098139975213320759094713858480186613766378538442531926272466420474256848634429050829455670561179626300110209552207679731758683235191905445079633319556577564615586165456363545502184354265179095615966420699005846148321063360952533445453715743556882971507584820156835576231655487198475150037427203824978058139786212622152773906310129189219783112288426801397183251246040209362908726350972343544023362471134601451970770983679584021684880074323725538835050756636942493318290605892536209450148265349679574292329133781725648242057711279532845167214747743411623897314158632434835593004724401858005656205999635346910738137626318304113824465388293585804160285593301839386443968023272815849614411225100072096289031749060755553196853442994930657513017355962799665248161189009917614223541951581304952159717107034315629872686372547490005083732152847334397391649916181047906075019919235616270832660446783600567918626094252274912298697444934677492151015809943331009180010482120101625019634472913384181277330756790542446837295032361142487005239741254622849922029895135640738964638555463534746428930330396086755648216061399972229834558809931120144576522293193083500571767864403961440482193650996108120287120289592654825337605626604441737699520393622133616345934604969000453718568329439751482559364736116566424550865717579102795185147236362720936057594032647435381191184691946728521966972061966924697905678204858948507016991369493068760106828529711462901433186984362162749520188554020187570859650867474055293438964673970860450892855264891263933391823620531266122188096855392462411950375397396173566266480496584196819186098136448464002550262659830510544276260294356522424267134965766202307737172167269736499846324398626559149491921045147854825183184962475598176244619405308508696397885970796511140982200893196717088396231767475268428401248709792259909963500366563348615529132579397941951126503124095894680979644837292549797006469102986556045729781429790951769961882884501537513672995242967274599029872460433297216366133713007682720992452201946010100695323917127250047876107879765001457432982414128923086065118098697996318823586393055448893624360228364017357938018776588391247193905707120201204000404304264798420376146408516566366458965151259490365433699105811597934309112288068048365689549375416407274276622061322130488632614005500931392982875514660232099071000613914253752044064169098805572167778231554551161978997405420042000876766872652544431590925293108799973133548079061702443396733115552358728158501687555233138743939268137231257621783765276183019943820500154653546773221836038538572773508270411825709839441651646746887671979842646471002488604166319731081719254412446950031597934987121517391287711438533589550489748043841212454402943059464131884318050832838371613153734008160341351959694708856778697989674217564659518088345125151433329320765421314856580311676618437112813010149034206769213759435698719384191584047614743003895775482296866835616209229983076790530055981271299776206602569963872906422253559074800543987008140987957561900867856261338553496231986514107530105871437553386463115642611620962597751772538737798034599649433710782677351565595735914746532089733771415198453399363290653848206340254729762264734793563459549918119590013504709285883821090309162769464208557778533479285122748572236290066676594558233218219172793842997253378243423979506347327994325281683736635240518584792998511524420513744997960904124163439512976184010666369030267939423763608414616291945319920002648912348345417310364867976307524578426949220058287654485534509418430728060215762839898133760420866913905748453063138385501833330551878718657074957317055448859574981258834750296741538000007596926375756948941766654403225120446403548923656776636301493858954136866733707811125488448889327132965532933829561373246415549384136799668977717664532740181778064068719470281935217838309659988025736492791477644405449327392994642825648829091034338973877379757339825468736219169002013887881073651056592184945760371290900404014307842298165490506695502648485675906548972951963131949763418436280990435006550855841536012503988768143539342590478082615988931652535166949947583489905513632484031822223236339983939579940805732081583110338863150551733587727453903749182274883898523519616257023222718444871836870335574130750534070060565038926302971509689569483531733155049223128919993462472495742168973933593694675442683315858360053689566035405778884578311687279730883788653786458651896197470294597765784292462791181313567670951606511670462429595580069015049684896290205038048192815650164071634132501703264543017017864444437789174658730171491511936764315993768876209247803076250136805729220090866508797713857975696902691434298865671252082440046547922780324207671686443741843442235232138944335531823295462361728387610188586321504458810719158537465244802648201909066033110059892689808800365779499131288304403573040849989694642862372110164767170006314037542224868324962253002633353075427571416424606147162656228516799560466292422950063464154094542821752538074952467889454387767248067082145973538952277913456306555516772203206257801887530931050785817380838806309849705639013634517612449299813172864930550895765976193677164194711484421436101354016080718461496708946720982516301727924685184678144341919675623274820838411916512110953832204773612422527574347544995756002627602869678275132197656920428819154907563078195566769562492699519806190223339908479928595710470251350587119397005909360767959303708756479467980432267167874394004140884761640598414910681450585417378227113062348500424957647386261535441605175961268973248365677748880793435266065589596419580344352645754612206122761494788904444558605990340701857152345769139869966563575165251745095663513328681035292985290802794939427384093248852683812565194948346795973930057203175268886058852813771672480245403437072156976876818412068866411708355687019072726550879933152253095695320049376536680969234088117497984982990518691600726327962893106605640206763741254758630782193999323613533473812948509308983032587011137374984758706065943162481197656606189045489290941466609751369002118678417075859937345110020679542043031095150333416120763082177296517689930482077006833128709120700975362635640125243992241647497140577818520513036325069840689200259604895624535727961324885133919497167720319498535809092987069455483364814070964713700421646214320071875829700542722971134780882807323808133719458375521509087205813852425049844234290856868075032547154085056667091746836696780740606549524852873549120184743311060944493887105280323612455957471512329440090200752370097930134443408314577890614576924950828778321308751440312914644901338834310591043807535639726655886337189126747542429174714610591826382066397827553565855259383797510749905218630279493971038978410414798379501234526973246103975168085208576667196690396560335460880212278028919054694262612753127639102649003226493402729973739161660572279730335793246216823969719742755492506457858585343479045905392351145432772955458187495494086391383489096120721589013414218498583560920390303704379449377554443612539563548616050723975387081959748779854597374261729811169355386957521384213494029989800858264290028803301496406419281040328441641492991446131044394563285707498765324968036182700028665055313145891066591102517839489290412162901035332270856425931521864281272452049583344666211251989074040149931592905277814869223289254225992911677708105388382772364950847039851255420113731355753988521349956021765456660249300570584242763434906554401553413223747095753749450847740276503882628622652063675047264128464373753133380187744860761304973434853333420909017015017323591731594768960865393480898430334178096868664672330752950264217100522016670311465383859045344774124814413280276794139441795666967981555588650335479627829282109209128149781627968342196581664694137821657417119812071033793642275157623569817107572233684532360390774741187819536134159542164824023296263397332831043872871124952541843498578408200594558620256326853011269905608111738147534864600854789466434418138124990175530633024202355216514670896938763559366494996473463591176629711319484187419117787923663660392259317094650576902395548464154369822559800069841088251963138620764209932025164658093599628329084728199671703413821545184184547363860986750400277479590296610625809813515042401112923571014822977755522497176247655576459159520029095059423911763684621743831617041131168057698327153181160489357918700965377036519344517027984201102760450176442359406761049858085210801463497532213583561735360256485528544813720236759128470669905786253262640137515787298767876372905423344290338559369597153432804732575902958924128567587355206621902169191895612456184916926600594106245580186677356927453380109769392494459001889105216243682447592897905283678948657997670234783442397033345691861323355327618836898576778893577663881562746200850749891767805782499882669626286959805632356089018884690219267381036387247492236285008926576276461839886025167590010185466124908896576065732629753283604382699657850448958781092193004281514270737542222266440340880105557576914826898593941000460872585672108810450774873984853407800562054699452260390871165013442910287617119974788383710547255977123188069327789170672583581588985190709269496130477212762911281495962633036544552867281995910441991994284598283287944037254085646323202920086836873538227552357833039298790116056045034292785865744793433655909220073584991133208728557261909436347581296430624783684624735770004600371510208082790833083756154941158704956333999088814124893891586010982809266827112191244398965370038490122209503396076008665915608234226022436807043388039602406343952900210888006382038899694382634426581744868773949267024738809155753734457054899840565070373412231997105399425964213827820229954603959406349700224391164125602364629137763318881508055470916020359758527046312850036403238584619530275990073873326841281807504510782717525605432136675057507984047785825009798115651336447344486391760295391193429305352961970690993717477649253792364201499518058724796892194319119888504011271246540838070774489228686555847552215139683415428400188287969693850382073557646659742661382844317314834858734625355080985860566990148456266589760658804128079908057330041968114112266709728778813566815328499737179730687877528009710637362337488138343929821156282682331697787236659168014925260818483009586351124427343073706503802172928161027262058405732044414327610334838141945564906179478543148460948246179745912463331709458407767217947625056701177669786017333099588040162430460877415131831663692639388252597744216670581841088402008092625213237945842184393756405101495072631080035507504378580434813596867273461675135018417220452088148133828552480348536267890234760902858034921276081555875149271859287736004325462724922197633268697227974604682428544940885614864769738764827110083915158914712004710933412919682001051775951416752063450433109707090155733658073759991230221315429401076891173168992636484833153323777700504565903519705618882010295268156198556967769303121477801867461089988754250707448595681152207274284794240065878754392748727526824029226907886833866066412232969109461494594642085037626275645117628123600490854737569389303350334168105214144897263966956591242534168893648367243526991187201367351269398109212591782088463316366008553529628296907333923434749798035388626576250465604418318898831422288928647794572090453211012291114706103324922603920929748051122583253504899398007520010654721976195890160471523779203658416159427580268808493508025916741201262516353246541826320307582466289524647968545196242090406839539878354435773945520879754129799105224533529849860599514497504983268386000769150721732997768991566454579210893659027273092085013225048078695061794210418794127641183181260038254997274070235341557218374989887751495303530632883178387062702092498337213992741028163134381196765974973973024494237381192338264732967163530799290785914195247447991334522416836178240225781693938317446274993646821321553657124139967607787590348759923297028713514329247165691574148844174046896107219698092976781823238098606453280959816496957836715479784208900575384626822648741715141784417501655096800014000473047771809513860155911828280408757539490713349508487491438612320721628588876639958465033738371810384426519118961981490684746522802961909231378444386543581320967766230258674667977872264398613989244715874749014964808107180127997412862727880538027263043944014572035292095223603260791906751718681957304616427898205933268473794874212988238406955136627779334108989705949137043408914531726546765648513864867656800105578628436372998652644775249987554359472902290727341930606536086223065529008210074764949239378027638892173950295052852740030345838645119624738299586268053578581609240732966753695368531108146667287355658803822537244943570925587756069931679623129818065155437925191038268688629893546547543897780696093368972320144712561114553644791773389674066745760718282297412608828693306343831620960368685056935032793464604189426168292211703278550098544405878549148868819749241821063104018659856454078783094602052079860626373901765043236558894944927719261426693667744053884698904530687445967802696796122704255962001494981692842235053874234185705961994150346208862800699470055706622121487483223890755769062905789406066990151108925549217958891494603142140386569852778855354370909911164908168408002822606937255342826109202232492750394497684157562613306140296892898444659757951536037401972614056581514448901125095028027137166531918386853577774354348866860826044370519580180237404557502382127429368254893604134129711552474838570812720058868826397466361469280552610840696927306668184619527390818984704075863728642125902107576260435885100109354539626449440313118910867541686674659302568729464215414422385152833143303710141066554398783569516125052003996476487271213629169084721133891348755834298741599555089024513808739659825905560429975522003319785630548436255472878421037549524773668300331798220399979651987259928028653509839641782550293143547807801440625942357034409888765742539992178365706646204504123173672664484742427513930938959981728186218867388778626666492690222650044984834864673465570646510701481048006252085903101554672125842850396661412704694757977708805558633096116732053135048165304069817580792945499560402365766685592020220707327920233276381165726749376009777165182776005012903059634040055078786520328386891477300883304734845679454405968801722305445460870845123592134008045971388227789857772662292274573998500544072584080490563915623124568292645255701774934226174751926082125329102018725620577596977093434975168400136524787296032162989506096154544276707784745453467347101116357585833878390687898543460304975541988446385357111545815987002889361234647558715030397727511420368107324532478277810730634918630909454409315062969230168419844752348366548502921336869639333240996508532301243880092724973291058868835246875274848401530632511978897396044141525802968147975547557245465525049921326043721775395752787547335271446628698863632234634557666118749793164846111550521123610090812745809349736583600509155772628155821076028706314524473977379640968073548649489090141204037563152083056619060518555736779994893266046598704693502795593433426245643386804310795881994045222179835530536495164520331254801970655752379116671946793654275589967544346399301928371980106026590784847309891071193885730194020543862492052479438438150764745826559319301944461208356831293987252049394669430131137219012972682550609584221366298216776843598694988155284300913422572580115053573299428720701744301944544306207099677750141511494098954063137820582674569277533685250541343605875517453612376814925633858106148909587212989614714786484481278408867081886007511905416638431713294406927793226305486854609873140272111961360541466734455435434411576567365453081277024710080421931050751575993038299706651201380277154912988755496478435479086913255067166691417401586939061300339552406606895434509635178439383370147211295020508621244355076917357034540619775624293065282762896841407338534804163712867846379671905248177930772419931948263814211559453155788714115496554377946446868531475854686399985796582451790362920255486539898946762288548482100043355778663991603025014658935896197391819346068936528039852571222999422401669042753920600985533468680812038861433252671595729463088376456771003646842402600394671168401090525832781873352040507546808468553396723079257433291789995243637901074194713824194544784564881961402473085575764636329535924104051803607841376509823803537936675540039307601411268299255544668819774093300470951793408390296480802162862762595128140441606429861919098084697404968935932569241920371552543241555485977574406089496841708309546836771321464365430875509553389689102266541995716339711874677916102011108121281391456085816441422201622989986696120047711728317889845801170277541682926785623898157605820206308030835677201001679501158239292068643985141530456176478000153893316018802499474613213698486488692949401337964956241787640393005333104568888819058603531826131694896901064585487276349616757823128534237602000020066577311962051159794495238310640850883007946346228532971387547044534309632038975569320897542404920180724231508754232282739376708819614562285602332801256635905311344514032188676010017834398184531129007206939389035768307918377707148458065825506803082804771371462034379307602900177724900976616820487855033001595216640063095594138365746179897556206616425068652844853873497560212034640927487461868930026003024315765497916817842681955201773062485903365706379547564931969953269860663099748911217883558883835917345058791909069666040725406651238514191807203251382973324852282097587264766753468394895438488887858109533679651101719091947619653148783684087146679216851876719169803632954339401325380219732401845997168834106093966053963578503372930696844265318677386874390147998557350632672519952169791649553442142440532300181871075887815434938731014077204523651989598451665664300864829773396909448669776346189508242108785714963466264864577674632677923721242510174460813343668339329467198450025165325486984759730932012481412105455284096380898748640957533514267974155834793911969331523541375849760526948863149780932879503837741599351389297947374743993498975135802279367417745791085198238421860812194402806905682268409372910223838625644608310582175195508880800900970547684665373618954161503591534840922971060193607722631557635292306850603412298088499232997850771535304265630758636195815936317232933656153317694026659667475247308233730598935941387574664835532200645022397890296872949753990867313915697384885932017308856271567684745032655916088694595780231482298284275329301948402507317049370790584485643213730252875140664367603815735491826180927087010586855366299439128794468657998493953332941164086638017819658564129256881179485639481756677102133134003408115218811818818757153478072517400793321632671816842552547420872181111044881707732140197756447974304620778875147275813195274446277459511204484709311022993672757305972363593321611527582058107024806822889867459514851946695690412882663044478852214545981098169022918260480107901119929732072172740643400528677564751896034378030653587376418624398958359650255033144054748196639835041583837128850331359130633872754998221548087966488929570072781007655333195285150140700173580241650110720325684043077724667156403689889503827078263653535063204983571202158385212290179437448717618868631316179982043904768956897148375328136093812325006295993674771582747040452682565983351480777164515299446950467766209462952356857643838452346649746192387268621525940328096543832811889986237242774630915822786070369019047456252561328304665813105505093882034110154956773150300437603787125929288659157574674807749754660898982000013125621994670282186771115469313807559422852056030629199010644392795047167128709349977247048826709554385029356313611140900604994375754102276105891246214306877271854179740569903657569954491019488503129610164573360524767613932560675952372770947171165897014028836522422497279854894617460362923736927962460948828783517185552855505513344159884186289957692358982940570499651974706485958331399104933184685808456562308987139625666168501985659819099277521351721404850454651445122984728441320958529812095363251220718114253488997515463110751924556723727383887239923823169944628151347323803690255029902647390082043569143924557196981804278546498534023107156200077406536157034794938751660225499048426880028100971448065316728411749810455363103529466676717122539724202274352038093570530017654720257738082256919504699458211708053604927479099516548752282455767807744624902267829796127810434744449065792854116362968010879468992662960084946277700716095509768213911209525654960080453033949584898939999469014985260265643350927582540516821543231563610983948995343395485253884903075310241560224492797565760212890351543224698043502291799707295469079078558528434265645298932861333290059980196493828470050965028892151263540797676053595803294226172541332205907257844326675111342404286507568169477372983221103860261143592771098635171040988951530707131600095617285394757635727438041807607177858488467212046672982775767585903601077776660065051812708807001544732962376627025932949544609867231655055986542209765389618339194368560340073635986237699863714502560830097529888040649440920107265477619245722822240378381421571700491449419026011849350405858117309982645071895437715672854581224086378479119321512896442795114860448624888974544665052478897683939449567250392388685810237495577445868566716943516479609996099041824524682828035259208761948617416547586892306715688163203207956753848214949945407074424364311716122321456605577610298026819177175810589370555302909296379512148893622555676523081616756325590325304034682663848091124566502696917586824541543610127688916059999969856242043070009648827982333138959662600967548027879878398234417374378971282359276533138503561585660847947203319021984324135841602795391076167885597714596313241283254164012271932700658631497494842750207873989011653699188791221411687485696787788399367434458672022844189865411875124611568571914687080317610433177476725597002235915787988332096643784485455750275039362508768695546107848881863896742071529465005747724723449734539529284559696691206794388129306667827730125327836770886333543200741729657163367255102051202904835455602669292577431132025590028251926688353456295312625548076735888865921633971223162065405848910777914498515348260288342423218452359913043492648906006836923505467414006351053515033369327878564684886780108926402378044293718398476558932933348944223977157627574913291567471839790602363209759527328084222198804805335495537758072603899764257864672036776293134535282771250372502014074569889554840629202132273074150826625347635052248173932306306199106552495544358684602144174388278147063887313754180012126411495142901418364123705045585311515621639712025076248541616687324506513781272010119463670311913856170345242956705059330026478192335822634198057600815558550857942060090779467927150483654205938560420103339401466886151691912539596962397596925872548960456720809861544400029946114270380017856962451935107932290850119917593964125628646204166895415206682798187074131486129326667603026824722263810422894263242646981933594646460568529056971484604091079316796294819418619645424735076782330731181121188368959591251900247308883741968528722088932114697754295008680230931941975292237125489521778282183919226603756189929049231778219461454307963568599148535685103928983145831212050951758545361590647684283240664582239808157168647862895190905599028366292219058875659494408139768021397818971040318466905845556985966209863936013992397786595648010247415339434845923610704997842483960516824014044141685559171436608509313909153260285745484682773146624514544023896991251228015809835170661621595144145593849774222508423147261091932056781237843132753547754422065362845687432730877805917836293002245089580871125910871368153290561031267123173617824348519455062553765110555796976602015823293129675247652849058969639576005061030820006856539058827109649376908491754134630541435149175086373026047230179357932169406933712103008850760369361082971082996414988997515441457897706264813321430371844710023250397728702409000031444489556112104170168596730527796691316605160704314536395722674030627115713153397668716412193095481647006852889958331381844243243054763345478347874588816312656603296510597275837412403466477666985460461995389485869303668882219076573082846430150881723092096558994287610562547065876744506042485635395423062082932247628804228713155820394218513156176707303030937001022743826872750908263645408012086461432817526758382828654628164818205996463091079389580554708967424100615539594924626710215067605857283479660791461209374935036200630583341389012244550409928377021619060638046572236434158098635758005734296367148752114647376366653182068748114244366780157414164749493296545793722256261864672427930891342117236874310243700666869337149338827743122655370326025372537125120118964863625717447754982175099181911947253693302781700548565380274168854402983553884522624168181525173421595135006903120725801679299137734871657909249936845077902664067530388135957132243959100089123774409084779999149443733847812866579741041738317432841852041146861063150341814347110668389216112575833175429313917156456782420918487393094196104966810131194528560042499620222747722714883304188922072787969422768744370807996428448161923899758595024354151803085905678099155994751268233413680237892891239206888489262714792892344866562009917756107032255064560160938673693065214573781497330420049120920928947205163293355436088281580847989717178096966722448232479831160073470552041662897036416847682726504050903187240138300558932138925485694448718742081819271978757323344741409944258613822664762558604780310213206217071806050062034684985390349893345372903647415584728633690019573873578014780002125391968037287974797240982698099499118853545913134732291526119980528624945759672284657708148176656264820861829981410103464356971024643459225433388245497525947012375940777385218651956151098568289531204280376684047895090899322756812457319382774845515782238641036304055386926250976565258138346932373797618915335558159727964064297917177223875151957877374272122571145333260621700159693971922691827940979071727025203911632942456945719093192617274811631367186418649009341401872142868796276806527268133641147137950154395828378013890138236566440058593851105484841820462442542702954870680796606510263418397318611725600137174563517493346351673500561525065980058404385383396335390611192485787332630089551057597825043888649471035022517897080614881395323256632603150273186510410882638733232399609878062755498402260688854507002880947328078653906429695341844048764324715543134918664860152098608235259142820024448995648610383326487645286027111709188824305307409068581373621514566342187729889186002956106079697062233861246854784192881324112213305732499798361844577005800562069700744684375363277128005655537648537215547527079324514991542727821849746238409503637820222035386323344104418493782647630650668826115921927416788109257992408256923912400983161091524352742543761010318518328477142985300276975315542519688793407028547946795235366010750984657321777841362234121206417583166389858410660378293947741627361242563885628104284656584695493168612930720928614266129543101603549759307850303108908103781293017486707829308749425586025947426575187872489126217177003428142539220461499064343903392963048885741140758244658037713725123926114649080068868956231416160200057534818960803540569985599313799676094516711478621960865792034867408416448495848374892103140713592273436182726788309285953520456852032641374946287892230825300462319061843006807438133114694711843654166596012890931597278262966594984578931150897873418573970048102588933347531720801321316611354868282248116958579934845361738338641385091367600325106316048079543278217654427896859183505198821037221581807669940216810245084668701712725780185994367981535169748158552106992875734621878609091934712199382267429590065726243706302634888605136549899329042280142021461065014581901669573304437609553288165729651032682932934128779204330422716798937051866577750944599494536813139096331790402836121636786216782009976520247393309429107198500270489672389561891928340378234470022041302413784427043964978899869084581123468717340075323342089192720878950293163096893895716915753308364430831721871983678913683014072282657964236874087438754515497170379184840577306302455579703755354049127203791049314206038375124530537901786083281982816004389643965643758727588135297411583151790885469465721950237716668054773309723640211034903239401711415313927101049762352797319429554766741088944860060042848292060069904663803832825960060343364432751541924322102697932619174960469252113806860513676056719445996574971231631439717764128741471318016716057584471182626193529160657895677122780550316133242180881494614742945871600618514252586877720139530352882580799907837801045333690227320194595057940340900338102720909840983503273375117749480163443897912519102006081944600285726271213002296439963681157582384951681738218975178994653294626845807348675012587134917040090392641527883359852118044243567419434039323013845464223047998210877962599098446511181154671609560012876692296733751055183905504343908017193779129330485657939314792586288959688607359720294048673165337699661086896217623273926866545251367970603312385736343037747483943276202879424133931953981992638575157588163434705987698561447417850179361750677620693428242465706257731901852006231637072176352591120236104169925522265042660677752928662600388847520843998669091159893233287710334591315857693754260607637628749424099446760662581718421530128365100353701642077115248740720811540831740475263938803024427417890365436330605016114908480222242075858756605848995473117132717699109147874539153514770402490811500469580728430906375063103290038783846985397158850373869483741222570711092686979362641274229595505010891113620771980176423988058185051472145072801395621836089954785664921797373356980128738701690994107032442808362443509345123416421602965177919022962949675632726322847488741163697151886441326784372137631527622537941169400423267701828519016125524811779074559596673728743913945988375622505648760396438078635840436528240216149691707769279395592934259004303519056373518826235097546063072142347478860719985505458525604985984296464036355855415182090377979985119942443702708655113674716076932983213746279295412774915897554925836853847760092099794186978028884203871079213761573059044194254900587172365488573908127586896539524176571477609618849732215776596818468469046940697853947647362797773507400550341634116885757315781135907328337961544611649402984555270942741176042298959763197190002958174442351983224822917384574806317042824942204531125802244279361697210872616811740522025101857916049320433447702006310538524237021732990795962757246044173100380873271096369305857201792824720803306370338409645864066530667167041942475949065629139708495856909392287379324630327557770390162778362460502481153430594364181863886659802081610405017544592122032879760333393569114027207722187565872479593492809642157552677919947770294666598788389527478534778519830594514346366723518129858328971584682163205644250740010183665385052832959497375449517041333100611639211727890065648236450269808897952526480331612983299757469987756184856515029771007763645879342090949202337747351556949929135195546312951519708103111665783281770129135833911401765040727852940565510326371045370138203947458132667562889814366446073600992292824133653693774826188739681957376866454260667692498176946183523658350154966349546755854183199813139287920737007959848604510857484070573161025216584628805080004314021510055054379238851340922901219682613332982272641713631167720634800511676794957032151085621536259661579498366200255722325213924769289362059576121225077284590115450457189175000842636394711616873630705501825827436608848976795279378038717545396164264300439683935855436747918650809706620898944177409892031256026949609741261811921853356423751843045528842748824456005266267899575061569668283326896279173451510604151995128626718758593273355067105138287587636331071403255028526067942443457137606536710388735263969578630538043324370022632100283974947260676885757821293691338621686758884615225899504064043051486317484466565461301819198240414455207035533919601814289462351164391112531993562510378532188726616715961406844610541582505092273121210611127774273434177786876391128670838606311871263608919407441745236938616469877137555543666859015428109218271438167248256853201201648902988070432059661210440341271614910698692385626621891231441292526656267174336459393053481380804978382990381267655697035202523737758701401868972662542787947829721326023866855292614059705115117082050439388513069699890689874026066836217770510292976132491655296588208281889963859884743940569948829293872080013316045768498307682369971378201918581386087903782797330903044200715015951685551201147199514086110282599369697394791746057717724674170035196215492446985008465243202576399742507328359849950205797983931912176843457479366741930647374882559278592741569131899054621051237841442747100031364596565103614036361110166754537110773136618676628880876237980978117293308197169881203643836319280844928372281391865352416106765722175707451815712621014765835608241388262275687630135999908095529333243036721559603737668687145597098304047709387016639266188265193093260596692582634402443519389184813914603119941719927263736100958653368336522220190316260680050446212692947679878906506103470251433925620572303268887517208344826456716187493193187414529309988654498194837837672319011216438002944334939980383597725941573779968463327438158428869359565612239897008410692919684906540087157580066563131377399397051383158781658263403395539490130425746625851248891143667747782338137799923408617540230418406182717159916064228502256925569459658184719799704889033034578542796738806336830421942260430552669103447734487081196025278011046795553701008854126239579722820516858514262932852693725383404909958846842014528247871698375040999241359859520700701984588863082278332240238162132193708087308403108374298950106137909238222307607093917690907847539612292120873331922985725215198600251212517614341828158255222697829948336627962603867968101643560027580376985944852349817785848648528365205880164779741550569788832340331279867690247174363665590449678132127856157142461624508432342157343876553872843623989007495824361487987461274092554199889917585081477996319516767939033593931524627553249774346955409854092537947051488600912357690127290147385839103624176210426842363940410414290123673445459994684026531922142129667335969878938747235895764101479829449965941616726148255127438442409584692157257762928904982890488758220222848660575628949566592369165754775020616200298436677517723982945166521470418073339838160383759223801970523049618550485292415994915997614972722940264392284768758451998445441655788368462723457601443524239009299433641458395245017017684806377003852865346877613467216674646506813676892536149988580359231415250851125118593844794410873147731857172813820624200868182419528725183843000582352607131554178610327069119980210894552581479217052932960855651815955682855327806614407986764425128400972186746459783924211463900284869055157719160499555153759013721392118311656427704103253305268527125464622638001680271625424609317180932500431533778642036055875071978800619478808133370358191468617285697517272726746726793176589848054189601296177570288736455680848177352211343186516986908058302743625239155472935139900574393318896924253169073612688256505716564471092799696217929956192625528699033007303705888046593562461152519664041139992172419315062523336239480665825948091135772280775827382003041108354026405734155660389301556738314515681382285072370009822910728930450951942709451275208899669304263266078190591026918895693816918229804634687020885551735399201087709808789463670092153911859443694244383465859759514588807342405676481778632334123122671330652216381590858498889350314382788456446866764093239392852300971874432708827316893570425630335450220245141924574760358541617948043572092309479009185031589181102534238546873833100034237733516097992090132575742195077959460543153545937742849024205463904288724978635778976509894422152748757697099369025690146753044068693088680816013874005639773053794199234748026768912388548202575132929667485584755126076263603287498536024271252924190355327221476753677477447561921438723962012441096592182661888095128141949054666912663947618159027535560392444674866660973376512154625837433295440650815385117298718601400289253268705653863501237696910538339770677025673570805489391898931107705019425888637362588737195761208779544348469129655639691530870111372063015855412380681460360402025432536709712774772315027759304579104718313839095709422777847335918205771120747171978210490515862633554713828499984645999844409441403405436903676768386573478571456939004326107044530158516698487315071227962882224348935364312844669442123112637779995923074521019158649077299510533518226638376444849076978063443370899359719910713904948083016786887360799247639364359289226066736215639648778259326879159990894105063697117896344496316616874684282063501442390245750654998101006724055858690653908685347863172896930767301589276074680743131394303670745792588802785673317375944245471098830152923011539109909846962331969780650378225247573615932828710242954567986720865640713990344353299439946920123146270313297778568919789651791894256125958970011402966238262636472789221908889665763123068703594605434444496392317223984231353826154584967501455458030358280746321611599483412520013930307253597075362450010281624477936074113820178494745967379899099034806153677515656469145310111456623045817757871893413661744027075927644142652701673513383076077166524312663723429553038954920871472644252679628873920743491500783326261123272763007630755168667464766114505734353911982921616569939951570038783652104848634856822713046961230843791364245177806209767387963392698419191272796793787853357859104216064069512031439892360402679756826825986300284306863484332541983167952918657782445601853425126684124241509576448491427961262338184645734915389569431133311656934685997601948701458604902053987914477336886613434594127186949616470392694876304266109995586864862095321977352989814164962539639171043423101543236460189769496056006438757914808997457281513681504553761764221207484902286614163787866333450590714445153232450235705862913374503381510310300967081974439757978790800373220894341432813326183195551842438857307161815052409379167841503510360177370431259704802563819275216365995034477088133622933586554959629758615953570798003504561638264250364440639021550553945516933560712078898441317640711383108057765307468765793718204646370037722822313419051218166699670047572141544787745535715709399023283390656387137203180598954869727062788420246538522175686558133656705609478571069336959502311045839637225704140696289787349764935094889836435843231409878869671733169854409547725635837114382409764565446070288228687300089843676073167534562704032043944729281755421278843967301638709016684474975443590748014717909640922161417635489284211385244790952315979228088410215128614793002787985878409263690486755107271239542833571998632987207502920456513849609883274573311408416132865433829531283237382350776626002797131439862203430783863758129675071471675193179595305120481907724447900492024323465951509877746464155195690534928751904663032363285458579554228960656793373273461730748122258239886960345675605305377214206948648220027335788693073379070603709764993096157453397274910219303142017106026991313989787259724983922757833890016229536965023654047047233939370641046594386502602833302048618164158406139214236872592235616889219901681314685161650912879976463840174303270342150933121661017626219036433369932055092862173668601486978410359570598356813608143565047464657998764494928303838716500291903297246742331789681354893019990909914163312863996780005165999835463028006574370744159666099862181404861707281444477451819369220933952199744255481400648482640564290034381119371872666844792119859866942079207314285286799887124677247216417154746563588257006204288760548186768816897006188862136361892574038944041739974952600873760942692773824989031365784585568833836780023114500031132719353954417108636587708111356559759334336379843499385042096557663810259434626847237259110143678704163026918880023293682113100635057282764028722174821065188016026384407226928048676803187383483024206862687244927890125986894444326234036317623443622159932142864942631860608765046476980968579652752831229676973559280306508844825830695527384073195611219105737028417727525571014322625412285081110836818598004799812923882363815859627463331840488166330514940143519007720777992260551693991404079607788232850036468485402423268146790160941258090976369928481734277345942514988407625019825087612011785577133902752179358631657591845001794435592266202996866846042578896781834745699333402756929182075854988027757821721710120390536833934618919743330831158596351673770544981792110564187364303391533914818552639699465286760196211079324938731174079376988965406909118020964235505849602698954227715773004689275422232393319566176283119391389871995860889195331722744726448439715776481565045940570719339169889437867089932950197907674656039393829747101572816395268514370927241532293573873846579582035022938195336621957382010020015212938458693045009950038798718090422441814952952403578591816052153836937690802449958200559669191060657801669438749034677180490118618541547427565860842305120466013462750205981122382617088702651077653388413525958992889729700928614276823480264955385172123148015898102210981261633632144093531648401651602716953324337298292283852809086123658732800223509780451294997003118134861773091308493158838120169932631791663230344701417632582217073218019003950755423458681742566130157394096727610091503907493343684737128189383281368647066284250400755844779565841710584393123235690963666330197551531427320440034566902087302179613790880939086733479814567629796322145268845008884049222251215193151120714210136252825839062748599341011035467239321393204875911847032441708387297829452724992180117212114706976880730931955844053848607946249042379779153837501292358104159245991229389750639187893219408955494606441646746199117040138955289813033639070693377460715943322746858464097827166757008480926588699876048376526983200081265435536857809752695428945981451008857161621815197637281370464449077307786746250956741403964597098234349817852134366521772292012694682190338035163014764848090285538348867772167633195273296532262338139770069495789072663318667546944341803535249000398252783374438261604556190490913360355033873973613191732808889115739738549838755660796895815969753422998839618612553374254838736745742036107099366863763915210411116475886355867272663502415923933065344523060149261010819866431483388530443024073752205050234466194197819755519239012777709068716697670044616477435241765703649709908786782482896914032731024412755874749591855222808290952357496001183513414005634920211670355268632507417692057426203800386845049340021206868552149182843992842939508327509797988734084873043349013438272433427513267485087640123419124051083289017829352454401381563014648103087931136365408609113125292738623485233953824046724020166296457416816830698585656207597157084576488354488049874525515335162090484875042227193320991971995554943753134464497128501399273574711592356890259783563063203615093808067474259373197435880569339199348548089091899598006618913665299485142950879549319629862349841903325633577780408030302411054380848153901871496469557202787560401727735652921366250898257182211081211055981393605162576418608930971568999547471077274435713449552553018470846119854140235717645994218458079836383165286514427409629577205789369279302925607348492833058821518766754253547159127760638123335275979944120189076985393026119263919321025904455546321592830084570053495620646588911312194403523906593612961314293417592811168488255394700422063955610863255917205444594756273173559432640310320405569570006233909126995366115165181399002000015569877913619407858453282961546286988466946843364198320121458455914625067960924691368389085052531949251599226718210036742537946628529465134355373019330146539134431304777068808286332928921307142184571970888170281392046906806104753181005484245253300943003548405953306462968225787255923729093120122078099021025608971124639658212976425947093265706379592596826589053871943337508243295161623076011908552591595539838087166142650784239928845626280092535771887645592241221313220232187286102083005649243982348755001118621242865441905983339358818628854493696659778064475887803574783431484694431902605031092560788215508040201717086987335026283479282234066535313707859807732288246599067330332891487228591056983041977451153376556651449583782629169456413719437646888367711701185304113017566789018440102557484185460692352063438299102009822039414145034915528453064440499910292049928716871134608448668433618977524032806437409583868836792508820427241227593504926044030541645132733850475360232965428373866878731869622928931001288305283301451583411344733782728162022450480190746727215735333960004519331252245422750972863407044427516121200684511894048324098440173938113324501041774376706805711698142252558296249466319836574988389124217342560955404727050027930956590318242249133714266156633674362322552473379549710712766322489472263138716576534729863658292557208146529631677913897499693388479647296755471995566847007070579300829950144306499561366993253236559481730049915414805966591600924252012679023000373545612795495549517984587763701196011851112482134355754610064314978745560447583362081627541530311019841705781780973899957462547424371609300466783857694157986042426765870438958266380560833710591027508142224220227126601920483258773084533231869606108743650008863866912481887192644166201644518362364345622908501158152240982531299913104296250869332397044875045091511369389897747871951456633146169658709203727982285867808283350533127969062268626557400802789628849826981565983571765250287198976882529278139025580036031413606557698842116305482787468326026173920518302745571456166922081361386484668523596229845227559348537210474206563628067960685600866693408210186099175325284511365914765181363182195511168979637127972652867255149471716429048525497416158667267425186071651546448087200694774797779372390374890279327420208530757821935230845531817286532385173917599943671156624526873666581683734343691191199522799587657513711086018988971000803720689892182621151294591212768167052014420640724202534644543925166464934614203373083652811366751327395820397177174495215884408801489883244897105554401840235133276408065010302014404533900046080279238144055500777503528379575631806937989459125481299865875723475686118789643490939439623400648388705200351569105530227833159929119921714227805057640817839908842447152850761362140412533749937217194797217787136419523225280227894323429629443966465761603520282720897331940007375562475230381568812219741458348635760144952925641148104394050369993458261877275910524854414651012546509365286488600007158191235602444091851696244372872701723151404319795342697985325404953024491967035856442778043697771942786287749509575463410989634204362178483788568783889598840279612827638658798958207134426788017296539459679171390291611077182014949716975611579326273465855419966480580233637988717396219568802118948661737058709852398155937757513301922209833806141073752254742539680717359242845265759829327144573593091313025047253999419475663619609446079234419277198946489650105727585769222735766118330700304549884699978765742851591510450332505001661365631178132969012201523391432990136019086969060839666253065890029012347120383051917106570032788800659313337846207152158689357515967934066086553441888215436471745901406610016131587023310824021594507941736383579733399567476986898019930687157605404581320726989860482036417735081025518651125869623201843329177913649594825428424077342453315036049840044458824465210315398017021263125908704476322281625479544193765516853348099037761455536937247688599334871206191807887249787750334609819965946256928869240711847677141218144233338774730928230446558368822002817268852059291766284634369654644976251300933528145107915205993926334235046022376189634825572805119477579543200884786975078613001691821246865287505876033002958439950040517602735278502545747976028387109274034850511432466538891610595932087774302911761694019776831670025363706504503636603715493026683916356429493414093917586295160183699301041225262709762559270583430096498634740997954527445115540911908357638720094807017290116698873639064003723111067115217611292231017318011374613317990945272697620657901793609761649185843990079773837778447589565700047251768944084947509123035044027008658176148194415974726888892205700303073423402618998230658820236466017760458688847958333100900663966114644662615748382700039023640522970740049298154491187678356845529494502576773628401084634800328865242794177949518812618057494023036890531986345048903348065536389632604622792700593444496228437146669234027105188547595526699878938003979499654659359444430364765236658695811894691330954574817979130837008575449619018645797650578991154703837991570185750068344299154159877306807447861274439035162622443989668555153772700512542570954680840216406403905056132077715717504352136315398203227930559211499695277487650010700508827115413154912832772263445877655217678278032118432763134965992144050457946393445633100708884978755377490151492630198235611561142214045117745032679231693342615130803750564782128836313890789636546442171559988356577135224238908053631653176814225127477726335183920940760847229500840934704110560069920346025264001320287842449847527594014043809627745465464777236893846493816293024307975379273689288213895994400106043607752474764832694526454544665034449717534270652226786057233133332489616807981448793699138105976071603272905636001259435225022543431057991506643208306129870569766815563290429504264228780353095753734984968105509974900770543035665483510646410815180853313431628203555139092465587989974966516808948528678911713686256433635320143628719856280913362369586653912240243187175266304499028738113285610317932265401685341686377924833507369985284912204328287205477517809948560515049815775229187452738952282814182345152136689411920827529300140101548263503610161960910659288623475593794568598990594869360889979502329866819510268045789756462102689837148453205935945041172777755556366674226168891022952253759941556601484871002652099890165938199255732595430398223653045824444413307283195894590954452620304634173947160138545457648486435882922304131975513165284489726468394350253090710616908457389996286331350749067642591908859501762712406728463293068663223728617164971196835969965986187359515344676785143664256978289901022306167312478349531449320681768562457970457350870940354408744538640716883776745135058943161970193263978298467768845934473909757500961625295303388940465490357017328503888158469866790745598589099399420667244494976291526591854762217538241898511876305798240178545247005657130322659392449220801871450438510664777176801811710918027743322807190394126167892747924025571533960453266622188918110222714880271434345530319469091920217120615081237545772166514031830116062726975668554643498803895504727928330061594028817116744978005901809391772982049005201362391552319576131402442917308353262521901666161352272760121104192058456531681679255210743235446014374802591733145077132001628643096330940975389542613651720956431429162292974034561942753736860860032832300717704365541434634831509557893916788316097172451150175813309223132889120103066711267687462039382975946052453909703029184933013446350675000586334235218509176363495244623526917316512622367652324388214522022664508789071932400972437864055794435732901108187778507667729836395512565967822438484204555924897186019879228967686273424361627981426127702063320985736551195548675083844354054897164971057163104638310812035948168023400245732018704060498492595359130756967580003305602607495222166999885407484200409456507210699227436429430669695218427091118026828842190097995771252466988539669241477463927126965782806400653375469166657146007926272127929494793818171050771798567229782325342445814282506774570061788045784186689846318217340820628024873261474492035374060812377397108000458467307211506126117623966087207781327364613526165349051641418773462432724537975247395580268465364658649208284862439937786150514767527878755318822233660006135893876865352677723596635080168315052890365038127247055379945563291245883670785995671302028896172454875672636799554157757763809385869663075043567046084855726374562099197874648078562766486662680600663854131917133988365784788380058318458133197684638247604473887394976568988708854140455497999919796887048788553098634616504856943560105979112405041016008594967682822315363043181192238537925298068816119891256180488867693414939610530749876282297986651341285465299609002967343831119106652415131023498101571691843976370212937131730787713483380659891774993866815411666680458109369407114191092622159719742722883237383814523516815391387100424453903232074353738847032168354878162394837117396023040934762593757734552976291171778327522705923339977261089792350851280976560101502126151240406649048302624223730713012651753064578021005439487284433647161226066278295054827883378616538164827825897999270738365462533506579284179853752479156289036019781899337077976156142346655036153279824414893240923719387395043222199720408017609568510860469077464712048033785931375510127257632959415393335110432236471944656424093438761588288386694876378169753758614324857303399436517264824622096517394301682658065483379025263062781722047913114772307427355720948124083863226094472725594875345469096516364727853321523623663466420136921021277934203448148845759267697231767768541377806844844743870142300487474553387798417759370458985391412563889723607481054090505335633549901317149018299467731380808942348326342879817488660282514652060824654762495488762424707724513791308854027569221980703610304077072055423708712558269846055454119352987235681892808065489606120460730379854500506867879300198517260826847699561671304603542186750532487656834791007265623851791825401484698390243229111376622514072060823635981007177863577661650631802966581585846382668396315157814840485968319027868717202694741971701590005282749656453188820262069897232677289567745107079395641884593454926362516900278056732457163375353675615347631976343579775803116134246941172669729587398179813995406797355342692536625478205746422485832802709239100014572035044278823002933576780022099881526980501460282578663125182691280769880211685921814686787121187691480033086970413775423854207950982084855522556534748290481060863641891384675825846847386836171704905007891755200984305722484408010881164456650641014866127757186304037586620552893406997222265188573542432467533064069322727607411907313711734257715512269845150851483891897977384137301381954957895395819762983009611449794434205555180825369457691076109442203635690241311408699138603916022501116061764756622420537392223781100619844051485557778399657657261707344127807451876100845032452333631722643690497884603504916412341166767638358624999431115918206835655821108734672361770012663638884040055383033388170213591378106204619022283380224319916961335289043049954489654397071441524509755675846796394439683508743755759475586361100867095734831929245255969165668817407739652390391127641723613309407685234441194192454189103122187573390517777940539032278530413545457213624999175028956232582992724246337405436549049036922347410328216483122946043912753374821544378187698028948843567323535187634653065134279084572461052689579541800515226471078612916268140638780057864888086002650682875829463159452625016426886339716673642315542984966479810717882550806425348582486862056573399929473054251052137382376416207247073071591871751359986747552580023139319624115056376860669003440016699168071331370380571768541468947581840832449423948526381456732830925995211997514298274833079775951741828325246555716427333535202266095302385056211037733208506118584039778156316602688019343786257222240418108594823767649633140934790939190725734122705180790124155510313534025987927563494349522046543507610132800958986884397382813685685994844416848996492862688350105765973313674837993091014672894444624424870680601462815445148543880535388206987962381533698417746993187086744387958333614572136856767965736252216191709342198689046213183931029295974565434861216365022158130170446152828488615794285042067964414765453628019323304975152232758515175797131979493769659918246476732863459883280667261152378044465536404476322465648574532020313231268045949936854683773550425390976131164318270383215643534245917474171867169972433414966587844629644182169609852592467259439771363544215941389986866985127195878898405805657038440270590951015156657295557190161125641290457115150144083531695582952177159584778118028856874174418271594783787299412924163383341844370726185777651900592601998647048980159172654085897772139078421308550664346018653763959416035516458524787668133863157814673929905217048560840587219464740351534883222442811351206486602417711838183520840141261623435357010415802846094539708408538672791637107324223792001464786521108428150905069697134711279048657996224246810531048464071429850718834504493022974598502258151139240980247601659883097820739228396258895379383373631202442112989361972472316718846119107192390641057556395365135688475114277999253648377488174359731436026649386096872240459115108193894274931558918801422073333755430660522386700656053748178805787767534007665615768016823799963069561675363655124163731792074350826373477848476036030513772189529902304114819391738267662366784713493734538043973867693478943534516874889205494699124602082654126001464528164930304968188042397896592718943571530919406939630190381078448380957367537212840796854264767913541423562776645743127859054844244998115284681379825789638467247840428753543715124777379768546785756918672321862473313172803961305051793379529682849526168210622901389037237958872446012699906901488463940141927276302006695628075364741294093890227308947272196851805241176116670837623305760425528104602411102199742427877136241941052391000576263065738833523617382777578040710390948336226725809715715639877333672351161237616440095670035613375919189692096269493014323890648628226416131526473962746728214335408976756224887710672010614805238103564017186528198318222791407788761633601610137915614819934727992651828681497455708854627555763450016413071899963638999117955701207020906208487633006602785932277229871144444374529390459999390927522100212072969808120821474416981320399200728432376852641094849350172040334585459196657341685308716747740427879172613068994709672883442773494111591393229439197558302070578637500781774335176961861022074183791383753592711944729461395110856433986723153887233763367206110166044617632347994162643605049631064773843394015013492728498717842553671949664013926259167962341728640468502496431043131631513165572317011528652422861667484452418259105660369208560502511736435477474722593815637506067080617995896105450636520658153181052362372605520245214559369276445541097902089723449680326477535018122347409141142113077983464883688720480544127853015162703334498762416441694445549209773430182103725528951277717640195420864538990344424583464461961946601563363502202011295249540663700527162599266477274249336642657505109843699654653876880371424444633365023332396506749302089430238936740840878219281052774568353949058482448869260911306924358626972069777794176197757190278279755949651160316009744568397652703890709531331841208605952573157497770709213947094593835919796163080178623106676141809121346608253649649035894766544248785447852270725405369516248853503621849788136375003823485065487491267949541375553204975161072496652930156540067399439763945599694989920261114350220294837090758253748262982959810968174511881827301317142654619462927922636062937058321924287636174951598060002168564162006298558172463897812548304697824795592797117084730355591295343582139629785590982002676565026312375657940916211515147362684841964726705370541578486268932974281598786966224484199084148511213913555649025707662494474687108848576420346926833598010992569489154210994136242807594926503199498933288447037984098477271643155610399297942220357702045378244446159490013896182477800267879461043022094027796814946305378609834580820964384697053353266907974198285137406938468960968458634383130386008491857428207771136609301619790941305693282544792010580170371709068223910200801767559513961251877939008515291644211920904097594170626003748349210849693011703775743132193798985460162752838098975879370062140810041863875269113198291944576133411562532180115120822047881357531022450477832941270775064898401779049145043587373972578453354806756896765853083636668736689373425347238597788924625838224877041084716710179468823234037722154499702134581326740563440377777296603488967412906382958274318638309426745961215497691909894494249771468296443890350778933617266638692229827987273561721124967998662796712137719399157222896849660247923334753689567697902273661386959608256893239084856503232967217919568817567417563234833873540227204640010025558838705482588383687831468681089042895740476843657432100425681362257046901367190315909720706465815505028746397451077933203160060362334086934803487858026827216371202947688824662252976168860540793136080670414295828837952326424364447514729634025589966186782367245696184365792330097481387391720037806620190901229585601435877164736092078434769377406197075785984584696688464499031126245680433256742784718966079226567792464957673159233550191001129851041121560156763572262625943223002566402409581150062859952723467106219434677006810953375769826924526072538694118507856018515306553128861625104993800483588207962703025896331451251152140979417558547531849687641262484466632030023697450218850658894210357055036949834375569175349291342325072209456109714147178969624235360098400738776459910860565579795781900392020790270206784476448365651899292960343501584585860402783696352245871423174554141081400201955486376583629349416644284645641201942042593048902434571909684581570626787941474997876921677394430413028974658597321417489511903777345818691173495488280655644379842982154317973600532882121979509797440603393059709861915322510162407367320077078416687131351139575684184622782966513370347496096418591124111176338481305919531090344568600195622050131043408843107160301922351148449251825766434742829116622535464663505950171672965654028935452010924889817394028421435545762952130705056626749760587905756124383928882427287608200844853736669201749721037219935282389269836467787136000638301568668564794298049272122774847796783770720540407896030019332817807869349894508491998382511434856626582682747349048677802644564427924211948981323989970041761026536064859178350274430589497529190608861847482534619939942105492989576960089353900481515860387833393552543581684473741914413917145995890226689283835768411693491045427292918977200683926644065406047856078522955821238441673643497028507878726605725519083633636971134472194380019026067666325806822780340685801308445548689479765911778780128623301726508219899044790140938115463577696799028393858756684772585152901917111215125692800672941472886989765468044894501239426461107749448999952799458302277163090143642420517419093234409048544243141605856365624843700613051025072591794036791822225539229238323423041375976253092617211224462153971440778377253790480156054973975222910718919329338056996500417311370501872110655233175496055759121668993216440719864948123135146992105475616569618179710781019041813840454970797053965548625425807738996591367967233939244606566141769294430578164170707525186814799301457404870233847450761401810635903923919569974771032182496965826156305181451204347165264596892364410851089595862044065296335421299403685224704689581540341281701451755650719639268192078139205719552346158430108019399823377527728699233442931267661644080764680076793014106738619840893375821004934078702361586641047225006665893397143263715689810328242876372242537051599391966282823837452829368460229354042550505461690371217723194204666718219724787373605677972842116520689637963611599742148442118226124408297270655747747883077586010161618130802583738368598757937444964888719427524850142886618240468367438528314533915961006969036645744499627648412643535820365748909807861252999068017786293207569999101623068393368295437656425716982094517651767193594238047163788852974392708419825852169353421635615714677038958816734662655761948521559884679568502282908489930948392542687215437683877181040831746266663122230077098223972614635513866970632589168302672204894095713960882216304499638859280775244557151280284405264656364851433810021186691795946235476055263645008242466787935104482686083263720386851976353128403814851718686927765695385618448718371281930764531291989804959127975366904207331137741682122165089674722763469769158386624903196404187763787905700268461749250207375934491220131254247796405980136289965106406858556017317219834701416423311156483668626769442624776092209718240921920270346493407630257162905330045316592230721188158476423199865886396061000752119391736688471969729933482630750006962995348215364794241675229984423592782962820953179330354018926185026396778900556804546660294437981473814987040052745395899483988369520501228871054222164357597669047907317617222843131284753045037917547443587616589442384077878035002623040713066718024192775310636191436713336789181375847979051476548216100988445867852737062574051708559795330794042472312301567569045848836705624882758911715940878176306980000458052772295500171407140068690510250651058123923877060646040266631776020083503888887742911084624509029636590449733616319159048058795784055400824947203430529556718608402440693751106780904951360595007540105228618576908686292636881967467246302033960591726258550326958805938670179605575470773168121536091877252760707431931283119889822543460686320655708666452651928779875539825070925770934803401977342212724215402843230923382789093154532383755360701181201093597746262092684150364078862442669491139562841101084484753865059209434016169022575943592155006406792595142882877838317400766758925176930056803473017958561801479738568418382367968711239772946069454902888200481599060336658509274002427352075269703582527026133799631752338715951449435414261651602063962981465547781115790089242834898254188512529029825846316104610002628553662623578694695149327879997722851019068926815626965130072790316523897437337496778318389366569546367298100636133582794614914911387183760521712783154952725859252735294753398258380116834636470860113672265825238466309435661647229724100391735331611690123140244353270940752237462525867668254460597693740583543535918656429941879574069272741279212621166527685392275742905664534755848246604001337072540793584735630883802437665101952385078344563605893042318939748997985749982240447105689459616979730799887039333164273214573841842259222063163893251652273094918857940509873351345727619222623953482706026769127412150984790493943776183142275307353266258785494598023861340565006219850082138525331562380416990868528165428617127912173292657967058363972675927407866283648232397850200942836169370474875248195265695184694233591947193909131339098128351406872333285791844169924684882487674490113094444385082425059765794276939748637714703328755886171028020771970709671006271868872383260302236718093822111083106072269219494572886757852740772528176169486659768209587701533900830709202359825334676371713639697503392699318494188374990320284963290078082326007142389784500613484728625649379331649661043267965898791916377111442285379087526598057859742373862350354790958453680900103810873227392746814924747347838363500789511268114308763117789338246533359591937686768604356696426628040962328292735875129370203826646645368158304601869854622856866828182430081360152611856688626320759910583407350169582292653612086434139061407290555383351472774890986468929758973798176824482710919023970052722267854346700723115951371822070532443519167675569019963548967465242779852877792162564510793549079761484517516683131306170650342162919898229043227892997358199960477899352352077429785942924469229232102448291630349536751897404283872807926685380888558502182937846348218748432013055030339243147524600696216152533107729120299755848971972751603058089663732451480421745713959285753216668313990382484580108192070950125290353760712996615372905662987969103893416811251454408096998981590554817481813287289315177003648344509693011348102409346960101113597600307319005896123636793995518661269440538719727448214524902209436154739779742889346408348518834823131652867291980963317259980761039989208848790017037353201657287698989302427781681886969685217637024374215744966823641084473892599461495712120773135828517257763849207907552490771085603622512803901595361951715769799481812352597013822850848813474892175971707484536222183442895378309980152503599796235557114523348461316966579199568232351779936037601310042640544415768209347258525888932511459375136507022763671343050105488552513659093025733272170900417562942321612509899128042199503675883889978712984881547077733185831120972229655528230771160947942280948976365568022280235806976483738678798922090523293481599428730917991762619847852367351850274086164548652750285160665199335910375607527135765150363344002633797015594399874046181095038558345375548057521331844065157354844492831753915032222017040179682722061994593619615533583286660134752002835117912883175094141689236542479411129836156360432104328193494832782080368157865323311888253565630966056215227578878359284201853769459761741292037910618792393695875965053162407884704647097116881733191157451398635096442017947169872225115254755823575655471523449766708906687168517961364648420510620686524627903810926316633631673635428369608883103000403135567287289487700653555026945473387930742440551241809977163391590299207781509775855364409034356901498338621615088908266146076180484229238152459407978377990819237593796826498360701856966077025799363306565816582406391724213386402319216648131174479106752027724799230443818780169934022379048027869609795298634888641494834593125981117925042150418001063284220847910801055713688605811097866030009682897981431214310155908939972351973512490002819374347245974172671182242815680259209678634325254448899559111860929202506696571029946997404690128698831829357124602873610786288687672587816090276077976741330630587346846628923823372353102089654217507066326842868531082916762836134509960886003325610281156078040261692217676281636733001757392815432711304669741781932987205482843079414258358065906433960226071432085990200563981231144510234383541574033274736819649983393671277885750643257551854037585134103743109468485328200750054959771329124163065475433302266478945667798905381991793044165595735009296474693649734080923026299546291079078931990095167984981000957030824721884206706945909223633510933665962336498821152688691078764862544501411354397436893680925480240448000113735013250917475075157026803149299510365192621181352352570215416308841443688671234427785988832442840616068520783132809518101043290745834195667643534940561677274559054403914870630357016794112856305115419475343354188269047144064244350216570022351726650034646134001974223119445144242015199995757740023224178668944397907728829682097323865417621219711948697819741477492669052583409528333714400307673969968663670938892966767243827116010359162551066481006184166468186927690959079779327786056434032698332739097481275415523064506353982444576320483944115776983740068221862679968386119825726467780751333035340959477846931978951082884469818092512112022186468997630985105876100154297502954097912652583785747379684885452689902934930804731201456955081872419818021157271691707666043215054080703668831890046624939247202067018244607730909714208552871521035094138298816368161892558888653155518993268017216909148511201488165887851569281417155060869077512162397947090285494033573831125971967280285679349380443608351898140412617071110135688365242727840370066633477399797683533008712341406791558532284334140653173183650090850236015606946354604975512178798983721525106033996075868757746401214105212909841643468084123720088117135236735235187432062940051760488315327647645529173415768849400968190714546891356693995867710566741135754004552961441179006211885280114248444836020470843433662449753319457583223831210291785471144053916116869720736280582923276706987995143174611234152189450067755256074185071007405340976897696273575178520511877994348607039064415016714922563357353650759492614606088040617239285982880864136779762399840848779110317743110072557923993090783432835680085544988095946896811970599764715773205039607137818134810727652117263569135292114755605885178187487857914429224810942503929833292495204101596312242670739691731062134102289148832988739635404381914419184460504292078784244404143278331956695480834437067208031256155130671464653020952315708845277145673837407590258270705058181469065186760459345833003179626756312975755741742942304174865062224650269698825385017676561697364595997999214174592496081821922539781295742871355008628689878043782350727595414912503218534870848912060723474230811286670620200159697909569840599339279465247901852278838286035718986571936934332699238170018448997714894370142320500563858379505772601879900129991830611586838409100944833530099276386950372091036405836788625116583936599593989765335354557919498701926711335455893402185094740263094131487337205776391035716562593406394812772946378134083799587214994127859670626164112114420826008319679278761216551970914120323676229516103509931487760657560048845302998569079592229367121897155938438509568584106719131334136423185251377075842839506790059151613077275369360993542421185072368316322113314678003233790808078571063194081229906120426114671480294006034345404603121830276677902888716649980916650892629242675174212382052862553496556629114644094438400124904862578587237328148000005523996328121604477494868379729467492305439319246464344696290799917651109866695045295272134252474933689716874114623112753527856984496928403488157007284315227602065090661799161247045553778207540482499819727695566879161703467040889441736096406574224628468658607946844140825251718273587321326419771029712998511473324185762637521179926818741643436964147653952759981222193647090135973421003121732866572225643585587225798996169466159864378890512631400182984844576742826061102281851923877870778384554320021265785157323885131684546994898592254609893903752049012981265427532136996251209356961782217162095498459067959174449480588311423023638420438976222756029089389822165151252366373763175596498197263933098993966052907915327480713895765081521502874469022948169869794080475639116390249863067820972542559069745237052925863404120285290075760567930260392953374664858646345008058746824934626049366306558263983306248931401103926039554171229382046348186764402565151242610164244028869366134264941977288650099703612247537463354944210967255372669570650294342010112068705294262091788522636415340201315036758396288535420987674950753737293093990421326726859278070714891636112201370660078812949443442854167310663775218246988692157588914271537311683964256128022266490633281521445005002323551450930801275413324692489860409896862295456457079481849610433518078343801332740834536952179177784385224923031378851082637828158530646312319016366824112471044913576109742545595072687549028422969532712862937904385447673374959833951025027820969672704204317095454704010703827111509645757200511801318447033188193728492231662983927599498654526699745812865109313942221974376598356549871039122672559332784358857641049349816667599574096382673119101680772827874908626414256010303423957449604167770162245998125715064566506976349607894344385814610648446872947983562659294591342665841225103138107868670886698111744462629468263711114667491199493581556991768221303109883063597171694571605019876242745402181877085600734811133438952383748062630182162469295327823423603909327369163715597824167470372357369226849903521617563759915304053605955739280787444273203248218633928315354127493475047807894447219448571817091120280539884987800896404518250843301788017262011721893531116910206973376717595331762703458037249256021001929476444697147856543540439403430662114369423441880135590253191325183492117539944341602622410327106892129066122344623189245181597210410357132509075949842218191839788067532636294818203152115410193185751040965459305725242725973189585738579164637563670796972294291345405635030336591348661763742875874671047936364885319153017176574548902695891563816298703915735096422276022175387661592868300871210293587905998297626729232256071350173091136966511271398686345173751447012529031626690318724849421133208266685753542112097487674996653024412937514303856327021451540194124945340814834313951641057313252159843182953542426718875797526041222217641188533049579290577510691629706955251632435246637369643363757278516282808666438828582696481588743791722091389354935335623807408352013675491447643366548917055671121453232494623838292067984271105815913575175840993662379243504869524223609107365549469667691977398585789247408803824530907750125369687243774298315103605439181089761394276544239763825142782494944036626107316884358077851182360657129131492376427088854539851795627372697916391182306924988345340161766170045908300272535705410700725773945279569750176876425549953311466406745767737627052888697133022465186269456080585683005654825747829862616219552002187597961326045571592045877899112431951811335058190120117086810285638251977410713270588208133924240357271863188300336481696776695424718964893582622759149986676800527250896956733820015909744409556873041371952077859389125089200907840047205109787404010426510705739572493058830038402757540632095454308201063858007165098557361585150977220651726620723268961152856846023536089473315734028452025757265984262485460144391257402862302112285482099157236825024638733517897345280902995034109003968119698751899415498327952413929319349484331847495034424537755694026733782482600906193337778218973502237043229488096341061453202643375047774026263982001386718485730665390851290679164105520550320582759174391516365736663911780567922167319308411821742252226456722079477014231783432514121367701129735398119536933933969165454315320195906656321829837004368594950129364510824004192071942405706837142383494652849255244197387576395881862781597600442225256005790506618760277644701110600995049244098592192368527063795579191263192696322858719051856130657637118752781183034272640277892119132981945766692887448700974234774037481393726716756002774871086611998263453100288143339875200404537125121264962419117533721252606895934847525448235577760588770356206802503189515795821977781673709333994303016316238425344250974442570912318584423777760624873217023334695292394404862177484204605899736713399094187266794207961223849342746696791230182756558073954999625142165845528429867468639421279468122674667512617700083046492614803784740272681081148608475661489895951964924880623814754632747709904011995787229229875463434281634615379808158326388775728274140136244174409524971439758906077695961002663632176074694340159814442776171013089765264748007901295502691049112192857604643868852722161112747025756158876010195112116108655155298153160888329812640823253858468330125346801491166241522790256020678944614755579598638872690127236911343326557791939814357074914809730166516560579918848166387035827011268523133316377315165296556458723651976375422872906760704664241964401743982656961384356965345440990550632019335282313397921961042103384805767186344878494447782025989068599609230150623060402453759046598182181795876472739619648479870426987530845537099634893574057722448254868492914252463547991994487813310478576420962885944263721103419388389734874742329052455784209833961684263684459614305822431315112353475892627437036007884248350888276718466735121368065268555981126702535211200020127124567756335137837199270990879624921285266728574894158603254411684324256416332914715453963534863931672545985568522028826097478186444851676453703897493870942749601194024449639441646925935165192791093662949058613269667446080612213742736938762448619548341530922780076411553977340080768882787815472382965338452736879162160153547735316144059275966784727614159661324566883249300117326936695623298101819592093700129087648433207642662741474409037528232221157231257540253976656377219917293744172406204028580880729956640770700136111407125066876427229042419378920068845664910343174683986844655054601461827312158118416472158810243850856828172691139258140652787491462696910551720753591941700335198064716145196619038353158639807913983975426536527741823370407678967683528947410767757384777315418052490848039888547783216524454557891820766338084876835453253635363314355150813643731543143815092549266740751660034402246152132665013171042003522978025529092939563586652782389262102774881230482013434247805737476851804547003946643994567541401389088024342012213484140673492675068320273314799568712320327020365100815475803855606940066302488438587140749613838602190210138569141442872866436680627807723650386973967048831438573460533312590538721131971242941402820564799260681143417472904636099378643501130795458376267853263142434957539447332279046626464864200018118275409090194617619145988644258051298159028181332862337742114663230346430284574269788704516230643664552623986018730847290383187915709056073141433341652702374940611904565214376351956840091200390143032100484634337552498039399257695494554321651208519472148452661380180426441179379627168152200617435699049130303578163850123917451159629871460326904629258925040958211870056665816884250704254926988489981693664814955919376374750807848266317136098102089559926165720033869750342317693626180846541168739801005914614523860488855551636198753604320221452820461739851737129272516946379236700804512214385390967253464975173706207017445332493674093918156962196770420850216650676779917271795462702905882478498931082223579437382619866649407875701597249523901344228572909467974744831858130730913349430676313744093162225462694693540375525453431287585128350069286474999176704812195890667797937002362447810949432032614321093317078260353248070645913843398638503744489978281484446721655846145861827437159393270053110605646713742080479039382626644299725049134337083012578692138313542675557022993729729961439219486580745494983808410065939240662367817844528474891465189837560142291878361382951635809093844193708487618721245116455896097036027733015308575024704233433687681915180953120617584990269285101571612620631604294703614983068873453964285632566303049161129085913248674329831029937945276735540676664080427413997315170372187043281215638754437757107588265140359525291811057709892564966349746802423969394158916379354199691658616182458971524880974578303322700375156056894598134489249060897145759041768372907211981038656577440983846834578662933858377297489082165028061589722236766391969571750825687601558355996836918707038480006455291527468694026403398390704784934871575842494604063458174911739847161038463986286107453464060496151213185284312938353569167180888049282530163178900804650376971526175971541196248118143942581659005386300243214953938265872347261129425296433710442965700454146741823821885665994960840432285691723346721778004129909251630964446644536648516169061824893554086977103576899071398976967966149362299605616031594931033196812617558483508274612247549570299317566538942509031278554997467327735680549449889743066912615051030973532390431972030154074539454605839077032235259417758319633581521948016407682033315560107185253967058149225703185528299440320657326192289559089382145280462830497007775093254392665745309278309430945448189495164275442435384977514321685930800408531128192942962217977771589486486783302248811913518287363460059887512088511012719778211372980856115432986108878933305415290191506707253821863735246832230143245383065773526281690359528534239462883686913099513099047538901262575216893689134570885623519074267433070836743269496086318059010739108896264152466246266450529702496304735574258456569120953088636395416552993458149529234579127206216839649116381702030398946222762363090575046537322508149265428309726766089632165585648038094714392394674456657985567258321607217622833354674037195080024507391624431507753063250991745170357533981548043805302275336690685012354935099370930463217075401525158584796828789766308742002455158183946386250233987760334012944854869876848569628983522133350665815923408108806441204472306960297456426118643977903706363647310248391914100810430780197356304047678748246490814779402891988225662851942425572196425933154523363046509297393867507163649361042874291884145868929342046372609583729596615736653170319153124195845905971772574458192572833985889975858804164681652939154086963325783231297655610847388847766392850040961953887867227012012849448636990690905044572897827656014978785950843946862807497208289428116624597651207839515467873643697846172723035816664237746231432044445814088920262807123520757511539439875583206315303097951026178561420674303673386014428214674946609211494163166067485393140465221359613056029093523351447722432271116812349973807735835152169396677466547510473830400699348399055848617476748910585754884979445012289168373844958160723690884331566821529872653847434678456964627527020161294244997748273734230888717115493404631172332408312219564052423574010765817436746951779498717319277897404252119911819920241619881366633235072985661538831364109641285070323573519888304554135399687380258150028769525135850681973768432615502185539718321728442435362260862683403460720288547963929835288877901811235765879709408647575206310677615148741414106796278018460900628979172195677901200288547711320626190241191611434451571870020470098548290616177870528103132823788579455403987830089596276665963960324591210344876199679972085967896280585753554897111643181449974003903159013612823071632762561094879853766403627762965531788408390481052870514984715263728759166774203469696360137897723877249583655601069509163410365023084702388907200522394860129933707492698023656661413072318097662850326636067978663532065365204095480297405359218303021443438967400690247187888814682818803666092442615666963682093091710136397160856060276771697549283783702363129127119471770722300911574927586230366613838710244628881877809510272695584396461275939543320617038628620528253068914268031058111788941405452150180503548585791688921378418939001664080674038149732960899493353634225796568159117803460127152766858094511196741252522686283591337254023946890295973965983762027410307149920187632809457920235477427507365744601547793219960128630665408834625231612360410236097687153923019789409015527067026400445537030030131168899479133509010745470239967691673929227914005445727385265875200835928052886702699328779116998756975423199100182067707762184493208811360078938421430143164430051868512217217598046479121266288429108125666972848378264892621369872357971112759064678366144575243583927100713715978292414134518570414342457438779410138034106906149488013032386581285529201090897514912071563479196864556673072078024486007155967093306103047035937889411380727986648104100553895475384798288652791719816796153969478618238004195409186260419737090387704638078391425061561847485990157757575441256701896816833276621819556733483580539971355469477546136375229592099497044737949066342318826070669940954133315884570731221128442620125268542360765476880960192977692404244575326227888317160651403476347779138275851856698118858731586996802887130899325356619585061051502305649226549029874045062316835070687728043949429627510879687979392121160837985929365427845698547975654601299164813313288265055239210924134167207113490687001778533282675403809195666272348088622849754119272780859929917710779493649692092689149659108627950734066138239657308434272547617424458425335023791638830799346812714664210798618700476824041858279110643701425933281445791143076040248949162014008720792067825916453446649660654575311879689146423598404777250842555092076354464267118962769984431358309215431426632133814358775811994589164105191066026303484360097663405200237480973412396231471122793833041270495342816377303063476703479251785969761975918135036279582942345913375328538007743733404318523792981195186059053058646378782749861894475460221042448796398878825619359863613139823527313107846624344279779818267614410443759613512062142240493932530128057914157432663276350487884230684097104022863471127640095771631337103210267914988840210993605477088216165237323606820835948446523345322944443369366551126699940097168621575323870215014066401107695029372898686250806328609211102720816995499830151276658160896776164092420559299578099999950116909183493006008361346045330406823116884966682945072919929698514878155694776228606874047389905659695697080315565119810128033214213317150856162597572970712819895059884580828235240963458716097497010721786730706972018666184834488363888953903847426765397482880786004531300146162157851402647143954539040715834399227452244314694765526705371906131717874561600479353256162997705650960027300788556586904621148697121750958741320116286951502200826815827625015560314665318179517637071144993525990318500482441244546250277135002829042910429215637831311874199174344561148294791519578648831814357457287182136207859914187676600575117923770306592325004486619567921184648606832178071873548722939983401922342299424523576733468392679422022906968709924079124295368139613539963784974635715380437922221679689133597795914185832663668010158579957260510187320206744392616859134181078176004177670808765594891464980264452901772074255197344683786706746018744665392651947407124709298014114316796560843599824892185851091810106909077744411917084641924597803459305560240343543057306991111215113821128248290846455397118677150858197972260706955210589785098562782180640516486520077086610733498002030459673150682228077578479501714234121377443969022892336834646761192014022732446784705838276194256656643913077062090978538367586733925377747523212907556814225759216497825492934237435642567535823115311309656464064238166607830252915351323179412551903382854549875692725516897501974716021782343150121678071131859507923567446573078074242304907268766023509424439309890541127145858705516988998385573070163274468868542739432892520416838897008832469275187658087206513683040609817545292431214594877194294715203009192445278049179257609479883928920832642775348974191934093059380376677506109674098241425743463417699241471919190998881071785303544923299900511542507387684244425562117808806024759087186281089032999645565601064655571318852345664118226389489710491623720259827106586468919475917354116911106035229754773930281624306112850246435349454892017797820681882001444280601652623201806289488375582325907784257331512283892191865381542786638480705317848867990554074008054022141094321405241081189813628976384864069010763153760419301940084309822430583139535546634399778390082285084046552778299573435728167398254298005477769279841976781581682676540613462980124801712310575840190404434509265061962061144312720307208663205865065914878786524066819027615523667935854528137247354621272939012359703717001968883852461679264929523484802363484975570244706594747380599132862426907368669890715534548919397985932244987367320277853200432018479397341792027684956820953577009608678406464590838448829750828616432619833086800368140320537484822571679155647762381789252916525766469852508646982799588166144687204737441335666413180704637891656329880854615203339826320650592281822662399264553830326388477040748166150729049786126276852438494257248878530538057601097527520731925723341059210031844864519937181203288808804106150822384224748966194353057903304306828134451138952469722718501121094700695475369510143727660041016682371809352908206433107024326340727972712023175796687897210426295123398155337435013899142686370864174787224277058117362249047003262596711813206284320727512846966019647961075148310846163530842618563312867465141232353888571620352023027374819835249388641894207087948578282053432602190086176556811297332358474821197849384405898755006894348712969662784631561499544022079449895739098684816190585557879323537307687286514036604838023902815825379688198049510493274854041645715480642017380320641872941464280775992994107559029505610016786068197634316481985332504167739083264992156815628324689982381613378687213284365253386613967739110940115904288829036458668120809829987685386130605570057908158102662589261334657979704206886844693203225703347326059477557166626695688510897630352378061426094342547419918111045809994053426094202264146441599346245037581351769575274830619829159170370439773971172154767162420554293347962919790881062736631098609731565872062888387611652254600887408157903552613826441556948033769277817621876347521401486251336256379507657475085126759837546376370451111723726309840526865391408888207667048555131282534844595244081666868758165429203852857742375911686330301042005623822058752141281550641504208904091372859182618626658158245721931028868814453497294224365890207962455345561797770183000318795113268364458826169117151978982401493020336695665165422625400785627284689601695156124366644372366460227259018153020658763775171389979921061287764185376113511173405872697052159573557118654589632461771761775041158527236662244482284703631392974259473566721471436425907735899347506824966346854496151742689139657350365260669449480787743553933477433724223200766845203639583160850975223136193015958494560772627523129374549120835438061223363632870056284311292874836993267455625280478159010299224314253014711945584699492809219390905751682929375732041459753390621927977393817179384941192123738268609818132245399883960417855335857643462655660050303564708523530718925467642839799916736335435678721657723554653016216887814451426201193102646112198178557748958846668913329478620503698724356320711941224114363699771499128109180755338824756191695166788697046239708759394016562596264445077163658168216854011615324339417882263137041881456074265261093670376190628369234099259466124002960506697365759424286688030225083581864890699323332864046348406887515187406491506646713799236843570127796806601197342130139152962138154154542424015152596825064341836273865985507091479430768847384181128304404685915589755340009863073245178441468237910588446705438714374702256448075975260127036793537885801468565992285421527021553989375412032787266241431865988802143266195727987777144455878627096992881963976384846151928672716040127215769977343272387737926099424537678303958497248043006647871949550431095817592269106544454523265491886371000260427698312994823112182636940102316333727157047393280447039976794404980408380257696424137653782838373836969466759155564878822371125473325454194314330850840000815113240117497756738318901330110392113728107355210391253930338639304912790092517894606203993840017068283053711812651341107405804855152953060830807100456956006861546833555507927268663896849614722775182598261719898978413981407752406818499202616104286549929147602877054795404899706286624451160761969656050977349981092912296868826129798249777500680169283639320299804233110948983190667482665757635597635096447888948198798253819970154958258539902670558870038182175478979335979033534870742846728094707217383975085504898538826560967525057970919874171355848339600642617538012475337785272492805433017124605572682957366405057058617115569469612362249419077131404715333312176342047117859137316636586955650086080829999031572042391090722912537735646402496546183146055375852059287542030149683431094623916165022078939196827417202863680019387414140132057091745758581741699944558702141872920837661614464272606780779317727596387970585872937716388950455489817278610239462111889200418773063424682444215417649313735557011158328042092132682921729143936795332117982672201542804116602750681022628266146422306590109904252236497746694981943293062143405855454031986685430454158690927553014192849005215350639829323785063594586618020421310096823777341569046881313318309847517566782499521030645102195903470676280080258461671572072264156576432106815913005145651521263656979851426174832476416001622496059268588975133696786643576753482696755624607181742034964969397125937055796038170955116472638157778004596522450207054804855460232622223824517699971980043246973860661263333218667069052683992691615995906929289729227979552188063873750831541642024499323790693567750638015429891113104540643309119262581827018729538848469168302366710617443435757327487158069899431291080884038255952766534599141026487144366118721521859127589070687837221706381830541637203032096532945156594343916871005578415493681505531489496665789946672238045139406998025553576879093185670086743336072644526842311954515861745328724655131093754086918138956258312907199520427072034082959577337333686778861889555949804904560268410491983780387090127180488946144939275420477548192432305218482535658305997948115196443103942947731618285185788471319871980175347495098722750639882125112595999966918634096697490657440153216597839196523433510738019793251415030754300333486591435972463501488448191777781218765157942022219276022803694916024407677594162843066395657675397477297586607904041980267244908197829723594151405699660313642620297920405897898121741831730173301563454018397454544882345320550980230506545999171688414029875886982260870921023198230432722035271753875213271790267834128492187745841076952197399280495953798877618092775105664275615200954948315864221690956238579165410094447157056957016276389214086835865604418769363290521844594429780183953037995828172205806470470851740314229706596226885464531449811482396256413761554811548521865418810421585424018909092894906163978482774302731118891694358016255902044974805731925831117100998041453923057741054152652012829207618159897509991177041455742209456154557432191263017312148445466964957275316325920010931089852525080720287128500260717425671515391289791924395600440380189943877591886722934135284013442138634673887066105401092274167954199423324593374844908010416094176322433370335581705089717981023928679180713296191535484211646521721998608096750143034120915025945118181963628943026870539107104900324628624280606138281718107578646626895699063368159174639569985502916256995716797606732106770010656523195336418373815723963244420107117931644746816789943443236436140187476077195404898876076105432521540952799577532497987908645386561665252864790294449633318937242551155127125308369184029083572584907143344854702568296885636281209515213804479359999406253215910796874827261501399451246009798788656780185310057441723820892106942220800095324197859708534278397404526593658170381478848583915089301863455380882396478476501096924922721441500456040458849719872831927965084753650373955485117144783013137428840500001004261089210545658777292598923523967986538026151178037362946789550511546101078091706588071664572661588760395513879626855023287135470154862860158152722164904309387548320417392401547921957122825666274532908831085535500383000658647014195191515989609100552243719018372360112440222151979732422280609970440192517804481546400087073977634596449890422236112276366814583308339896683777104824864384029495317687857355605326815397309263069226119935533614889210322385919862660467653353568235018955466882768639199592068541363137459616866471590699844579761930441752060034492194514256150724713868709774387894445275502949338989822907153738325112136633526447575667833553804644809748745346329312511371502021701176572942141921426234270105741575850188265014917693461895915650752608957731929351548811506051982810861876993905159475785042913691193114443604660780633923869395895016934110788171285868761669822316065416799637866949444278034487811552187536091351698653835254871736039912270150729220197823409827528293153583831407241025451932422906638775772521292905140847005327729392798248721561245986053054830727521822236859036115421718999146643803095813607169911457085023867231718496446698211420566006392805061086830062877676280355232295759657802670343809813954583621095936160097447975361173241540858537286420902394513234207193794567955994616256281460181160182592122741385497385545911300502081782697287614870688791866278069022039576754673169510507483542320983983318315423290068574719225236121762375700502362797776221001174894008550955418329833466509660017125960665848835199770637013283273950429471943491917643837550717259576504416371765808199347176924886646552682113119794710298785541324773932173637441376268931245473258973452169321228569498294590198783846920193664692085573378385574496697641372612711292650558243081556194856670893512995485248531530332193669159687105772592960502690758115023780166464913139675490522348144868144838608842477285141261263444066624100717739590598646579530017622247344597775053119531090501209730761613298581651871169489008125645174917970815927804664188506086979765982264364344816126620651768034286724800931990451246416790962420940360139061977405434725972170196423759016241734127368537353482973619728584643649004508904690924999324326638820953497643539550291324013442704177812793120486746915677868261002881791091774831116071710439193149171413308952264478540802966420774996472510111678563771613987578533523523387926345332936499929321610561454722329242908801979276456379305694370720061439910635046218672016926313994710639063795155030121713103048782630588335231490933236817934457397525254618205181650964388969488111487421266479782811726186181162601255879750068012334840242619030017184623305295607289140483869196210611685154530043452772316171397222533035107828223728113065257675113897334825919018916965023211437822457518102398630680531002508700313496224508636212502302155719009088019434653480881112156173596585512209179667756653066053412690250306789096563417390365761734432338878002992730611639001021769740345353393385195197670761116538057121624556398220027175118549593661593965024463088410653762277245642965784041121854778797953653155054355248852455488776600736298242136497650828387408251634274164090588176486897560325559333854561372154944113246142623933589836075160606237480497104717868456508436177846327967217660693108643725368624282060804287442332360790095335446490946078019710717160116124360246766812846453887998967292059644831194027530111263882544689456183547076599343184490894299550589996213298881568503934454934249903733119671524416625702994416496370153263809927038822176075211975543047588664308059066345407055883877498866864073204570151732310190980110111794403862613624490009707237811090835939804472180304066747957044705537023367550421953517725425079839678934410542254480373734483115324091333394494261479784179132108353421345083558170738375819137990034039031106321910588557400222025403292601439184982689991701967956071940639422910450713450672466957632733761092957127899604038614952024092032460484625334350481795898121659017098767889224364928556394681958965581407588668600567250456513422207575903877707351241186027154793896569283463476894200912899190398849804454855067108519245035667512136791460611663428157092034980087671777502036398483137776087516901343977018511817322408194018451775732923439076284231000265506008897727045505430932972079747824019871031294558404083006034876518389309601824903936017518189083482611351581891353143467474562822176507545143848639286015236861533298055428992536031748121171669660562857479143184476792278325845026209973139742091249969113353732295662151703131326982835080004846483672528534469003162204383508662324404438204861556245871210015563194051245847302788387095877131358318239518905223575449103218718950831518167314575904982821708009988834853052517827958168323198618157999403298087374057722758657913661018344277741077292403976263685123708583695373201907488876363124175888941083049150960964157954978470059510184480661953374168358814699843422631918884441199762045036256783709158932521716151569642555699820599503865868636441672420576195387683058001064292090374810110538239934511834249114048588931285333382509941967656306989139236110269488554784868352525149103945837203067435521541828365554996476836993238330255952344767652740843305417365037377881085699084823297532742882184004567688658044609109487408348818924839181666164116526760251357578532343807074291632239651836062756006012144309751626158419543338240524492659238253403157574196386621099241566812484884110302210296152804659911038278382858240448593836097496114287427236511083265414830589748654642392301801898466831317612012396088188623794949282073365303156606525344182216123992609547806129554245507185788659313370790803604589207625752194840490894190060618975464092809633489422124535845713462879250409328699035611645134260374542978724928513468619738598611674948140124848622521201608672434914931758151447307962444780350789081324345939891962769061506702807984411753397507299686797799331869145909884316575894213091853223905823026066352292768535968793007066696203196352128009897722089939231117524103806194092753698759091583014610551918163799004659768307178787734835707308550940271480965793513470656585832889569445913493401074656837378491571868699521145581698621965495176413026421698827898802953779572231915176512130034134841659951487705013076192626624929925803994319534720505118190427642240574869456001301321202183635541316182051780644884849894326923769304906624062553752040364129239303957742773653684492978951224237092879693494837817570131415942613073602991260391783253309185172077406903363689397300529019321825328480875381686991109978288661528723340532918185803399382837371790838027914584260278469005001828045022482459672733668703521668749693199321598843526568664332983740262290197369432003471174596301190673358713122794523651790861075163379435620207005556883258750986676534575207074140739792074197501694776207630189835224005313937780558897894829441292592692980618251817583472329195467040253666845614929878526266119501908278007025487914735863230958993649341956307158007172800000623092214495889203439419766558323286966900352780383781331374459763691188422049066072630155087822156883064706314770304852526053207683894929241587412842861195862299304344295576023849366040755344667074414093974481570182297508097609078796160163709639988537655736825932956616828409148103206083526405535337268354764292272668694161627394436808891497342204679176562198060822083589096755993340246266810584023289540660453035607469870891667369021943450404326356217448540804638571007198621558982093073998838269539720587278926579959843119753410155119810395076149527305508131597420632676280981929080059875848896359463664036955913672694016321918680908944459497447280228542261039943932084602082104706031812056801024011993643315216662611074756284055287503699754086028996585411796569219770256041319986327725595471529586164842974705628746980662905089346174668121954688678949602961254168608336376702768805426115636514715771773822574641341697802816068979394239305341957699297790601867338181778247437353273407236338577418827537443402732036521783801913995245866892304264098259233940880031777116733663425665274052878162481160704022603022807967246739731757702776317715476367839582795993473474820776918418619520115673464954540949355708249224717125495737719639011254566861291388964972202880270421474439601560059647543780598783289533842119437294976768217794114362119213407113914714966421421066461733155047672816724180347020487936763417624852614514013728957331880392538450642643430733672291415155310248021076529475487577428459970557794326428234943370981501696861393161345426678547845893863947565102340793428707062751591140874417729800489240691238578121665996225168782870908740788383106442082515304936381536872211835707619507823513991181121584865370541503901721151437942376762425916299114760363042432526051779535667389101639489211746036790740335618588547130681438473930105911214211535536423598977372725994061957624545576800738230873613780957537467576532599473241189008020030073299223805627671826805846668493827647745667619260112719425372855483949474881076689072766799794080733009198487231321671722882034074376696017598668725755727450079031509991480980504706138983599284258177104995674596014589434878750933503157424460924345738548471409706345066346163805100414560157048806907043075370026124165925768556514781787422065015939125703932517154199702720468611434501792492002505184604546310819636168475103020178743982801016068044235398184739676582501950741182087669073314156876664213107904605309901073169593196457855309759775415765203047835645410266577708980533598012581037681282352345895642748145269710889649318193612950766593229704213572739684429898733273694858415788409275821550680154898897836700797833957320395464110632306887607533180203453454323174164790658736876282772422027028209670282880475431368237459672948692197363067547917207818062581507851035145689256247483121896494893390379409420408158836154784728658534964383448194217583194345878239084152510987559170179217100576987636365715605452619295601167101195602225164836051302648117787250326131828901690680333015559687804464923656212766338988580568975787624973090756308777254986130638967124566647665797981289375751555528253775302491529124510669162629505540446225018959842501742785526992531939790747620107322954472560553818619492175190130218380208481800290169308259606481840232730070085875013190188970777419882492885390656451533845764164431539467727241275918803066177963184796259399525875150348326538457846429674203539636253344204442152497330113663423973349457608433794741062903243462236327761867551761293485404609910130215260026485692200006560281376243879100858404625147120336506094584200504420488521359107549375632730441607647309800338626960567031557923853893473940020754771325117506433499843498969944683633981005893238807904114428112009922498640419918896068493357519058828133018356039387102345283614761649319054807670888683510844567248770793912538116484098388484610822700972024973363255695627043661969530112404244296954279777264939509431327194684329612214283402079694299090082409716585425933354280617602669125464804771053609380168810457025856925694596890930482969986224597129958024382606322876679126510314034313123018870516073972045277973673500883586142806013563133619264070741165009249087539328211976766266187705627423321691735718694197958555521967206400783994311918478332751467591195572655032674947472198493417420122448665374599174652511696344810271773117690346348864334839622497731352198935210997935026757202496472942125375530283289176927953764500962762053050059994120117338954513563716317716573748155266041918679672585407895147227326535245944385614552166145420486621910232960569868670484370848882939350235233369259003075455891072200249041742866526358457375582678845119128829865789403011321326379935326268098402246232653758142887646938130296109243381967718753413465279840335842548591617062324166609273696884596606807674926784388344496740049496878153009690919772856779397695965891327708181905220267758910847203739694726770062474966255935736372191802355612453752221397974033659147336646311434889954396362290803599816847342558945093328347860530262572167444622188409007151714536445713350387491577416534413855648159917163526567367997075531199511101495378277672642496623756701631075870511704685404912362933180705318994257086733954292171554471007610996340071463445078958648534582246002919543777594901462374601763843176336479387503219908850232404833885493692360942354175022547746366966872476658046852475222553635513608808072253511795060521879009252291631205617195289048402176299248955690816599310452379999824900887963557072254789770844757620129281143305736979991683647138820604379755062302100921261707315024800571081812366057939739654988497421506567025926803658476968012351610658116360505610768822746617584365373899889080915563596280632460326560915341196928449089630134510582600697346189161728509508399855281134452005270454662860940941568237966453618459303950413993735822464191284151240404817442400026572587136619315384952549428361051495958814698062081801791114780719557358309884011903789604465653710219958355013763578972333526704639067455115844025296268439621899678219539996444310858573292760512946004618667855294248702964800210380263084255150965208900311440564138587955801135824835869845014482065998407037540063429460571158006757607770204087890364021736825483364017375628621501382115774858015224981380651314656946502271632355475044326982891936775950817206030606071892714981234794532981580958908069817030688410293533149022874144550761081289506213468401397225740915405023728180276731205987427576090998201488411384665021919410363030417678440053515297455454299635014460094609267979519216679179083324039673682915479165773847401058212027845332202303629702399983537292652723475086761992262543202103314308481842624738053345788763727128292088957179634960847131492086457935248564284825557709762836951882832452160576026395344116769718318392564962852324225875157078039893654990751055404656770956719782004623049117638456312411990187413390955169671787732528289198517220928699555246917064437647096186001926907003976077062442198600750518631918733983083177562970949142225681540418282828676371843393816364484851327512364196889691231602627080751370154842726366630682754609743445640189876763340792069441909675218313967383458724995038354004878069745660596875936727291402046643394178748831877537090773883497248692524594259343013954024082767789818628166502631963411556586933325006568437469617862204024747654588644732936627151236193605961079354140115762810651823755729066673393658677226525328841223977899274392749427526450719290979374758864984152959587294954112511147106620282327436380587780554572746505449255774545918395571812615688061717592299267574288785151728060761339204744766763551534377487599481262212895257679270332323421745091283964580590401883825649158651622055034390536167525594271421749497794265285619920847462132740919154696244944311466089053906157804630916518532294610998364011484811661196274446675851063241034381301696155951083176354279470887570866572078924531282529256855735972219357702460049269176225777138825449362901423039497525840890767111389696003477186343149184021293216395265067971846645984956545318378556442113853924279063404290647561119253143233015092769642761758925105595497472521271958304828739464378603165306209068059225619645663797970703932410976869025840032774208835749825213264645646240407064176525483968546964301291193459110529009477729055562906260665879320715753603764556029345800604372376639222400132223309014728510028898487276013741305717460328776627290405901773388187612566359642435346365131675110450593459493873118052130692499285235735510233888254526768801747007015370283581344363140121463871911067591168352804538354597618969931070409899778768978675781265720864388450886294087788353221938512761307647160104537933802757987116683741261533753499955597570182046659661669896712712326376328542342281525375959977862215818877144861811859185994684941064362488629160428123230963335340321801392649143778607035434894781938427330685552865599019060169582242387096941068932528851609210193686130704103404923545840457924780083858009012210674996460039673546496716642444486287501881723067772227715210373946851254773612560244660349723498936316808595345310385850083487138627635368519672664240429241715129357525537491247599988203573397157236429338636678794954119649930556279914709939807309317206715829891718001132205923606412307254635827838773136127846416195145488380559415796393762353323794670660784056735885238795377786858098322615333073342107916911304649285385354107246996250140051378780232188400384877077521563731499417378133704472984158518516622463742667811546600208659035028170699133834861131458029576906143921540855366774926768132796813663973178315296508935151645595007505693980350743386221869288343668366311816669537422581647971924456178483968989348851789144006827805478422021735885176466237007744013752293787676761334971994944241597374422191924838552834952447809070619255654063405682728188867126145053923449853069569466734363609173752726729296040086606836756710696479102097908241359506512331220672740594722941814379414342580426230363537859512197027022091954969076815613714946354168089085783750747061101009485355359796573989679891754603227809011170076741608265504144649922879862351552965823868553981369984786486411462766808638456184686674453874402777002446105555007320645816693346797438691146884519468557871556036806879593747606368444776252000252109029035288592245866068482724265256640536390336762989229138863772076962989866521390464223689552569111665973363988569021436579593412986703148115452431492161210209793450669812453557708313251068291218840035001808090103654807183541382055890792976282319071716116635460769568086285544133582430949289234506764705695209723392327354983801314519109196523303735737345369252892691975887598528641600636692646262494445261825467887974788338196262455093122758639990746895448025872888513404719244073867274762155013791253684887956163997462883801561430768705425758674356105863864659691704733673113338568521985227777228626401964512926181303428159078849439706332930268773685365310522861847931229911577161569708519625664906644745855646495758928167321590583755306668913356444412856657485090559641497057275445081831567733416014053778083975008373698366455194210932364462678727054241189884444051511335212112296063050405403186897043991769958674762802870526708227077576389030978190350628582176734369316642786705452822400729077494080796266189844647742323519129284464210798630381270195928013192155191555356610835919109678067233300682425470602144793640248518472045232697699447661447704755869522650947627269603268671944565176708450471082515385236130837572111987674586931608142748223619577108766101085624580324102989920274047252616503731207585048242504575605586952362044354212347977776961819226281484284672831001011436024164124172400700688890858202907417868013993892197657714110948562711161013104225649279617359015551771019005795652499189737200802052404044191769547466447330563022932007406763295561769188872266657973286965871023874723438826511051270333302630520742302308784709592683014690541788346584362307372455539210223199374193390762400907991732790031179939347674627010241383624297706257022930127056317253453939650519801311289177476557832039749686002285400784155625065860054573364271108356490126397286204519355241077763757701516247327797495448359584622642791901397754409200217958868496941032890488120737589991522357181209354739546425837408482093017282631853209016575409618473695741148686710227649492046393528176742393861860195540667499629588461631624664383251822931214872487288151574932750343034249371359032663620779645810246315486470532609997810119251664603865601162812980806851107171538707618857270440184719937829677080109628331632317092407541278924850140113286374346438000318674667877620065094194706970506959270640330261649930016317789962139437022472115972392336650441221184732684994011851723706775248186143676029832781696180579454971448801280840290501390177989107261592779008289652185734310428471340382384262027787492779963205834087500015695808355202861069108807253334468706107783548680033552151899070777475601767180415525108137832046309160339538376153295365497009130021595475406873115704150875642781867203225851356650909334530234556554441863267301908382733739304396219499219136840522340404532271275822288701300923111812540874504714447533007356549337101732884114665587824663418565664140927871185259317347159384077344780983573620285199723932110066774475094626452069741762347649425472457374956331944121045949825965220389988262884750328230410878149391117128860031048712676881683582913350664466794320539115592046410878625084037139724145138579853080436520634210350867633801438033985937198457605528249187382310760690443389331078166772276755180713716845245449059180801934867224240154370670078491763641216702680642514825659865064132752899007148512456590120373544334817447798102954073093910522065168273637538922317954135406182750480907692078615623510200022531106119494448155594110479379868872280907745820391054061710501854339021853221854909113859920718601181064003492137468019730571814966641801629311013020028348173826754323153568041084907309400495350531286504630333923828233619381137321793011533713967424294032338754093759888342139834971283024350435199140725949280677263287446507393277276716501035407076199793381261534671079285508030411258603030455937244777756837379845371748406691028916040531305848499907493071470425973816848797244961815468267118481096003972457731164480176683450105467485270082351178431756846043249510809590949427640785069861806348183163617475372762270619378898332402096041269066937003472971967803911118914508745111184612370829319943800429427954286939792954493655426808581689418352682204017837336438928855986553787280406219607150829389112267138941077031123675628927142775352665527258229769005157481151781523336733782651665986767534103334321660816295002335369196779434911454551908369118510957167459514166797651279300893277020021973801261468181606325436852682082895403556724485250834902423011484072860506994269879301824700235189325537392374326315174047283202379613299720904337014938648926352531970228548391841181007553906899245027831582085337485211295546894471674339535068431435565330089503333477697792789784682657734122850025542094537529705898185744224853352538038131907567491424972029287967573983803913999989631856331934714455206858581643116458326696071389978803683818070919811591959242712817215464590923527637136971413228354913060552774550914126022107426268175570843942069710158645951526962869743074299036349405900439239848583528482096808551092406892378685896843564849217625673585692018443094381630000325181460868286508439454807065753317968549980553761800899765940688817398139724054235918270549374479501971739606263042012421780875722846162944355092465114419583943544535458199776019282088137213269909175584477471733666435178969003546109214377105929999429094332521578075348032969660736591080559025144886273594021881935802330905569734176111154065959584128473273342075370192812500743806093302795570857112797829211860959776530561846512696118064300641109676668837046941851216385787820353268588408807748520801915790538841541554791760799043299359153082929857582898410394445072525534968105622932822811401264530810201349698201611454745886215850569688599948568818542211464908283583802673428155350756285855800303366749280003805211419486862238098070975084578538495958296916592133035569785941797156647721462332512276912487532978423852874189712338653036934161556045369982217942446426579412077962230909564422636066296567859061183498972093128969939149883527323467449845932129454362548297051936445663914575578328514129244539469241373651915159826449805264327533660936702786861822715469615283144932018692437918084084930660012355492011117941530416108840072227947087041365152885608002145393356898624716541710868442921488679984710325652432564314250304284086993071911517460698468981141922941461181594673388091471682531664899529555415392920754856905789883830056367077238765794218355739715336570259679672597657696642914280024338782896960776320709447941247097526633836943832796389786171336167310892896315531981233410095745486401890695359146820502130267335821827856388364483391412054248913762072782953906665976026342390840030525853700566124210719889989515447522931516669276383861813316408217418209128622555207204635391810363338185361675810734007887943185711154714733817268877795499106677323580431479762927961012904854341299494284531572207123110366314317296982384172990047069376426103290006095572017469790856627807185785264331015348696335641087952117880232225338111049977499678791087109931728823565194891881846803825115285446003854016301226291490835401802105602744113450325442978350854474849854088210022739468799215940289817649832259052248592883216248469797298763481164134112842327511453469898627268830712942624164437319072233340260724060032331001242040507427278148881020730012941645951214710624864820578634875124162333395535947392345629156366723152212283110990790214918625026332088788305540170373925532005503868477407493567560621552412943420268566816676556981141134052972946405477229985598741124343849180661210501007493181917814261603082700187753343016948629446268149718304184717110571126268257668156691860523629900471043001467447858398770085400143521733480949427858009752890703345314264480788239820285591743682376843647822890664681908214871171271456542051978296053440191358754969034692002362297816705192272066934064805569626225257228551312853865303000141509494249346408671731177827753889292303767403300756467916823668793221364405012006762923764225687610967341103691878012281623839288535641842100501066314304689000116897646793252179723040836904327511465822728209492305759386575852532888613879428963726629067410979746658168156525881793000453131056687069311580618380405082806739840082091879696886067234958468976079351253792225658685301575760153471265652654740380178828427009569879337395223708438665128097354678556745288651321716105326467485406983549287841832219455084355751994559357778271910603793548602424753083606952418159450130767896994792924451193131820969475478875319329279371520872487308082605468932510551376552094499349267750322020812561388325025577674028469984432586740556557302023001400833750021923494722818406672731498665451634038842264830960306263083853928569477157441392715455399826280299356359661124147777650841651523821467520668141124522003001517898109973339279883936320401085524876345831277148429906144292575961669669110282987967360544326138228474748112750245318271641019191469760858990260562061025937561019990198781807608009355641790881241292072750981389530239864860871724507947347723992594232834785827900198407093645554492896475691029728838379505943253322782701193949808192324069246094842658613181009379917451408243297872880792205239063118086468263111320794354581171410507713540688722490734219974437251147046967913620383514542863749858308222720800484591908564251932391815499386783876930018083873653977391926959264832327333238157997126401060251599017879518380110203216466325913679799940508341215998216202452571865013345582205409118043961225158733806942774332141850925067576319095017966056064934489206863733287237925109127336622756062295746520871438888247911382144361522403737173476276039045382574827417099397237152833992297244910656313013230360325218380386347871768298021784993893919315628089912719918637428796366611422895143946503541044540285285238807106555185778856922884935652886858423177782894203790364443729081758189823963542546627927479262852173359496608916296609999944501295514881765331871130715925450994847624570705842936461441075250437091442958982054704418527739357107682513613724370060531252859507814988116195954775947173601735093704379755097953423996291257390291106411823380366192034809283041505813356154058282000509759894295626149719941447169904692770296888440965744570691436573649553124151344407246859795132930059766843897353266127663027161707585510108917408607137964724816703748372719831710826505745723523770162363553076932832072528409923679056063716345650748016816042522457860123901383659410462535384729946316198393111048157016751430706539730377216371485575584351359084212166397680493999675887685033924823082652998736694564571277013186610737216934169780900862990573497113003091964548542469989174426351026508799967793900453965850525579644319725400829721436179455294514061992371411040524233359299209932030768076678397991903109373403985449558689109217524976523692474645925990188935991390155905112684930858613638175495400883625137382922115876775859381991583093987498650762669435448135651839842371886331572048325579882171350677483625511431659517281152344368783914743008644320280925830573842582913912613025231850257755459140619697878283251589549654106564032077396583170337241908106878361338912308605147309446005195418432081538946077193556818349036862786777586729278347624680368180842910351427335945696622228736215113073184890388417632466341147671508551233059146028687119779447230104183062326661597571985964671925921490940451183169672707117292614238049233597414775265254930348479720015974939033917567597618109085391182801230910663244477982863495820860236619350148411962206118675772360823875306179391305963645629491430186869466039470608183398832955098036260098338172785843180612568025770041890961072406914554653336240811864215014392650902487181254260390247602136538869170394829901144457609354056519692562821957977631339660869817252913210969522316934769227985415213181303545450131781156588068972353066104913677275035160981002685532163532171052853712228952028634460293972741476160875510445988659652307601984258728557548031444763754966141397883235798102536551821333677421271001908553561606764021965715824804131077695055135967922753293681505619541290418835878582361102973422345708448300138784073591907588368735406106324986980753443569886555348654078131235365191602992229818976366245350389990020707259458792949375696676990501616179556199587293292485213359181095964000387635448427578912095552036250714671944122378803468937571745027632629944240600562287472362384541375694864890428161405920147494982238256559472213654777138073328890574901390123926118151947218033719907154992759529377676756577644187450121433369391578272488846010838181005635407746006459612932417475917494462947343418235193333498062681768439069131976597851195912171025155898077668699252311251725746401418590658197670441043475303125942766003766044321754654759392018607172250969119018675033527598446027236957428767225069534911460659018317094145794873277278373396927056330552895068418991424900628066939978634302667670838926191804155422622986089306306987391553940859687592254270174238077672319045463020822609088502712917071495448704892011582637391185278639171736441494238505136195928169499972113256250033119234826242832043515572264279656216051605459244427029800618365699730018643720532487445655290043217518287253622211108492384416299975662800174138699511908752898480036457345065453867847915171245297357714616052150014377111112489956150175071702715865733010336032432047480671001582262026023045367066294604798477971592575981627668391876863309412110138199395569364045107304277766060797781394609564409547769355195285405821959717653535562668502837109456810523863455349512281727956998021651437587464885749598116934549331085121672824802490044273044504937979159320438679542185570108389293120470479938471510887547190895144116224148149299544147902501537420718809475972671242845784019617998148547709190455685707155401300739803166135641772910381168639651437722559193962962014624630888099380153092499781441095986827138260384129115065151128145477841309915527415637473037022859346096919956973711405211831051343284655706499973532612569454777062219869346826768600489317034260085773717144362212946234829942103077182022036020327345332059841492606723903342754936816194303311738402684657755858355153960068617441600228516633845236211359581529942726592946082985345104216587053409189581612763979581767978883940718359771241404706182221282750894927764059471725819745635122251665302579805361910197079555350354419193569686883585431078880710870243322923349762407634457037720522969220394360824898297609757471378673711925310340299902868950809301680070227048637413654961839294756945320494258411584997042373079105536591388841766628609566130114019555317918376745634243168713621124831568712223908674922924724498067563986198093168278955330337177875627157081983763146282295976809842662695838510555015225284580550861567304317961556043991578136042293612345309608318546965767760560526917568041340127796600635307267865357221068340897648683260479333129741990131423342039384351168914195287717567392537894634793424708060303642616890201702703902081523190360937390517676125431186902242548287284428316347534912216533176495620997109863915809746657096876225384027321139809425985408856036782515255679641870224630078626927916879797329748838955255687261193595714192890933887627590566460568768447935151939049138040866111537002706040332992936864225158004199207833046857942905757317231134886440591272106376394890302362977320886606243492973705392555324612519631431868578734868649351012289890521791860292883462604285084170245277194143001706587284195689738669958656066850579939068785042220778536796514399304064756242686280691608530935850279381829483284018869635140287110810181192457801006799361095601745803632839025592350950665899621120402629934396145775569409754901256297682675227905059661270811667604280065830506031374692081483431252252042888942071520194343020206815336320408920111947597880595130835806867505662105491649638511405105223854701851178920351285235665361380555658652344910616220462867656133831291542756165081920426666856845342114845691264372046502611251266249623007536239846573221993134264582725564108096283180131805066940778636498382876141432515643827798784851797982140407129344550478762884780663311203452621237840976436880045503952412375315550246754276270896418776336406546680985821008500344205824298853724942380620807850304625824763454470872774604793097493448894501792952154960848788684652085750035092769553850274185081009821414430938637832188424345166256988568842699343922824448244613669807711503176975896530867226931756142279584238142368587061957737090670711123590391742438569326240717277170300963661852445297402536807478048080086240690331436264581157956450906061734048515273319339298342141667032834725903523403317056023684620091787467304042182589895268933287148603059180173227273489023785869429056282066890831166696057905642240730518042257362963575290261214852757812143865277070429695354881025873338295305587643975829182033297304162044430192818132753115700785116700931498029801005801041387434991682237418268911513146766150993031015260961859664997468148301169847716537457973930183407259133679312624512883874133636883591269984231670188835071636471884032580153855570284986129663404190323390909891209140384943291968177288232672617483627714008621860559721829715724383312795058215474500919898128133522537036838282216624698580831605593134164227488370421370950324437188432255167146297251610894741347082256119036110360826308114339565294107484557018816681152014387364777523104413000065247545727300717944262692286531242677341834134831962850098497817016995347936790583691248585102003696028692735277817447061112471151951219083938234262294141643887899537748248858144678626660556024762423922477760256716002974097124723974476428360063509462090286268600534678390404569899841169837911675793124812682441346898362485525136163836354127916879226200833993238074047483501624694716955749596200987192312961478763870530526623996255028638173595144450116956909025646823316221963626728901188305047312962004905956002422413640079696894645684458335182135883236116296357714231661770846943215715893893148289112529175795918466597722591585438823052852362334831869576841012738129723375157920512553407086031109249852504838604383761648775982178738653599685671033352954412107604031855533009937339466512071952224062841373415506173737579349042325608883091871266259638648908568596691188175066031871961816779671410308709086995397232276067415310644083337666161529449962634927707535563161383745365105136721323547254286452556081025389390867555476989381735541555286163808011239802803342647683443400320258438141105599292330438526614711177010546433566585339929056512613291898407809187913110780723564698607852108240010311924338654927343949853775940157131836472165048175174993634680765323998199294057082404606481222591088783289750944689863885545373062157797037301531638054239537796618192031424794729281466922948056481944100825720575804204811728151300420500067370523603867844369774377958439803024017847452435773434779042924163984635339525456601663873603633464379327593822924634800216788471176198244978807219192639927784621031822474925706729452653799609500162009026050392873919799415420349478343297964307132408279031066986039360473320313545914108760234663488126714194321735111658087025858530870429383561262997934592764140224012481877228743997535975159304474924328811221162808749319608384888533099101456450151123144363672481429035258303472148303233561449600308698119266880548486177303507714273926111821389709832710721783332763925408705602306928042119160686490440515817503974282749767517139666687418152779549048845201722709225539748334323076697769248461060649155703546153299076605541424465725387747714540766208797919952492380136262940046559683967620083490897098679702986841422833686388690969390947023481554380352763155806921332131062759225826996412789775832992483037251218839688502132867318490863642144395456593449183259585049009392687196108931235723654067449551507016985922925062006621980522305568896743319497939377739882699271700598482884151620159470348777393323811496086221852016032670337730258839462056060600140008445159294517153463240663970163639978356152404528236140706665080373060928626841153371701823084192062167436476453733404464828051613727985706941435764985357930534890781877303361447559426676319435224828658048532757759845332514498758256881977516003361825281065293130136397661288670270464175177596866989697983681164779439856602379398662120902317960176839264324090318623027692310386367606098993344544228892434954069762967956139018479629990788059345656900182133614590823365368499622814398751787496537439636000135587238682310502445374388852344051340109668078128659358526625530200057395979482145436128296578828969079813101084005083916813121292540359456414498116485189603169693501358300415927800203887820426215099008679462651613556125548368189767003596899525050877110183111489418783070565313110433067698683782476264420073088924314345718538206441359719799654493585389269669821749490710698361380495978244464680312048518756169078211562164779272753863019454915091469002280674407505584109905180320131838583904025605315592857761293371474801022260272846627805825853850208005316204602319345575895208752978150992915937642398783275943579152292694759628607428925018461389624595545509828932415251563969556374451393084417013980898637242543091991349858302436078004729468659730137274707599985516992532927791170009932569428519114596241537078539984715839424472384026277974246580224876055510634800788961140821266526299195654536666744658549570848740452447759763571371859336183327016196466401988756593291287345156806397273835911555856464589155629636755831702765398056605077863287009247688099880597353774698963100567406771616596626293119211518351112106327950879735855057206528981300608722041649162020622099612206185041307713570156401930723516217164300676410850307691664093986419506425522736949816181721778340615550873200344178876583973534402918922012211520722969805370144286074966396086401419109627447290825875089160882758645826024361363300605385268620488288635558618676505061206359012452865487015068140134514799218702008102839574643524676874904345170778184717158175980321424666726540993730400341946303247785777684471514779433195892433131162941898717283020189703200429949638532268664369542621375286054664159008157236737915942485828816207209151064543986155159929436780427450332395592369025729275100710447024586010847181343122225275125960414864093560510249708161698193690203551855410585799367336680614858251031773177120422377192051306771512065908182595085615935024207105471201050708007682101122979836585751074468300673339387044351430017432273997473797525115579325681265783882166534872774347997963309301513058329789369073367085638863022221934909700976304637737372233005146837432761622426029275714688942180679235104736204248419412521639562245610637358076129222805450843531372556872227033830300186359548857868940048394640439436259333327385954665723991794020441799004860520992039470407289031340112598407297612976216801167950625566893083324101585269950203365845000491629555377891283522272506050643000286163597499516822739866364898887890427660935899470605836511371716622681911839699489073148716008089391794499372766187830137999026386728361190746320911878725881050200491136235921478599064229503479879443808599259962796196389715339035209093925749893328697693606271599337056753108511206892054114556855337559922602857295408370624429807101134159019206317247951713799926869313367588064911397708104483588523627497142338487781708323739781997750230116943201587615654581368319660762915953676752371570580360805257932315561754756246594711029528477227509285358888380667332881302829566051379231717744853646989777132991780774508074274011679416594241965601977491579838740761549245775650577227449627696452262850338553290059778712115637125173454288148772541310935963454186861524019002722106471851532653350748096413209590977893411320300890245928876306481050726028676852272589266420935771948897628668222457815480820782582157430357659548789736425152584321339475393140424665564317721546817577993100803396725386153102047882430970141603855128345573883645158546978414028534963513492405410017128358960314911114748745700103495316739539111510599187515919784686491266253499058215276233808389539317774761105383185169708887602517911384726224285931435336354707879980168497463653903175826711603420568122759106166887018550970787103872781550094358560287327147539054299728235067697693596746779291189034358476569089626281767948093159949525382799572269974857443531606573271241205046855872320685740051249323539534617433327236103121040618260472978400244485820389025554074109065240565725862093668866770552286001975419770686078727516892437161035456617611005838365302501674306494373681872591838661704455866451210917399728080689423096809678147712512388512313473276559954171578278962310382501999748041191617733809091851314779594734807147291486066296283830777976982416398963539598277087087815796897977667488891189023815008630640918060337105370068141994626582258168779768127955746722274760374433433802869593738120984514709869134181699680811798971888559987211385520614941794900305576964283473800586067509647187217748597014577343494025075174909482693882225054779389350661200976314439703515899164863370842884052471190940508356464720948439290849930996355094228958817034203094980583767019375885623644188455831309832992191294359403851676105111369427549471014890296350665518040002470728667105676327837855744760385303063733138202046607742164907702694254813702775795522627272892866531240893922048904007485553027306351538367631048949975828123354548496617121338273447077406025331223593738703193593525021074375632375060404804657254579150602973858085391804566520579821544899405488898075658268361598154028642663276012649424017165158007762424242940980209408249416287954281481406380338275803931374218299512616502463374263210171780806711404134532771163821508359377541948221293910450285217063869572658087249802408415221195155658495967794971347264675235316067027693408539929473667365499021412850570978658140295861605705182083375825455004780176686291784386567859958642434962408709125854850509137747262140395469650433117655109482623235389441770970363026468455484748564920454211617979802387672577673943182287747597443730566839320642118391654330105488768916600909106353951485945952586745117292353495907165023000879520015592223960479644201978399821103469181042110026011587774504816271742844782603850311481410487220644749827235355292038277556754254878498210575629792063991147347255206842613908595370886215053296635588490569418107750934162906110420538618183055270583984373507012105363884323125020805581884331770873745517419020762833341473105624575071783170656883846761121832492389794268340299284964341099075961110930662087925658734814838730900684973457328991077019358053807691610040851864057230195163972104123129899522159050438824384894026417266574297581041220441673661631872652458908102122747644982779029481007285571660446728589903070134277617620886093996586165886208360080664345350335121790408196251267274853344493013062325046560364924675509762914444728719065191270612707691478466739094982914491291407630808725927245359464275918534327416301399019333655914197975494786576665078070585219692684927749563001118278476228834967172413808696587544339621327736860576515458634473784676663616692359026221228163965321423309137758177347754811981834521785882673303388548462543259981144405417815545720552241751630588183527717910792259904381098379484879346226468072767058206782131997671143606428902011197886112638555273696227581332442658719908772669100154805472298510476428259117504200039307629997211620355670650197894726223493995255448309786651290502049072774223577449740601130340671006460748203394087394345417635938444295015045149647855459076136997368820828207659142055255944223194894881421821714018658092222243958488193277311949648148370969342478217199676474697268664435825493756427348644896625136668743752842952471410521479820998087167688150910929804594178316912415583290606186986966425973032453731613021060783520234379933754638758978973935566750997214600445318921255863139276941915101816413114562941283274114792741969392863201147593836810912394527784509581162392256771610784460022296886881838397309862470159364086531103854752331690050670312925526948342448506855111876613311002931747945578012107994669782783035621036119889230451201981292127174225305257272236591824453289495453168366878692614774256006874650275511846511324930804702647245437796803197156432439960927722079658867446530530332754054468914184489478411322984500512678786164241038780829226378107725662857358844732696311236034608319859793837163748003679117194445122303928423200946963202592695564186960999642963514898805479648538541734435198981435695089800154594880282662653494223479824534117629300263373837925634374141648315192273563755907892545544603493897192207672276743058652332476150524797065996104612064851476097820431416096915763093472100031677714865422818778587555639584456769987944170538744625762267304786308585406435344129370466759071117237213771673697783179196196170153485006777209754141769565211629720900089648632309183364637478711649163641198782595254258580901704407496800087090549732015580630362404865657477630378174313037447801630731906232007421476397064554649067566362130826510521252043167124189432627128149786815384613344409635844644694459263751418937542017936915184043695649612413802141991919780691243118974251190879401636587449406039758850034965867043240990155540134071219177215388275646157037321040806346241765192900123509693967854757883777494418806938686997299712300261126486812524976742643652492777473016959168877259198752436975855906928013257716471494376430569524705050093304737209821058829441931898398423781834028039199376541099218755770668224838946270434555188910933895432154794774143429427516630942632609455580535611203040374452953996545611068142409133736555548977679755077760293843445525780540687052321521894702342622050034129669192538883708801450028083906592167104413486960063210047228046320496121454773716022523943221202090479717795139775821328302045084150651840936164848585034148890180736533083526611335157813915840005813747708654874915630609891691738887301421509187710334977610748510862663989820071806449810239494228016675783744458019806254744794864723547866013330408208686535518708531395115598379879195376019730266595796242246014455431732777870151815116449078373044098585798840679827398396291893895884249292200883160896955134782947549093029817445668573951133020129544728698381733904740700205903316352184480702315953813106111551887217543817326180571616165461627865752163158157378065598806270331727160807643714430954243277785473514119670745631522307588058988654339245400666625870315010783616701359814090785862669930739854152389441512928809725169255876664587692705239030236556721975572668493207457824304475364999974054138315436871773301446423146868819452831106616354803684920755909027807183296558995658506833038444129220411061730946299615842415349799069428625653441520800714698298353963214892311141799933001563437526042347839742898469533463440723285232527261239038139113977181664808314925790113925982357612938103523890713107673759951252299307404096912970655855546241732746485426034107902005151120150619729807450356093618664315333114184222792968671331042834006356778341606619149631355364802820624728459438554758025785240155668692307141258926957108346548467529980776383188992501397614581076463824301668604381127081890584048059374381010650517986229789578777225878542425861645761785106553606309924296242847051580627328148866054995305889822126166606921048622771263007753437870018911203972788952332841665019689566701645627252866090416139346351953224684379178175387054984738472712292285307191396382422557237443563512228653700327314622337630929569861831743326274760156546298828274560905985513375752594894748271288894715999470208192347249723675449580600621982990362109848879474948009117117662451501384252925041887992627421028033273463169795648186335849232825519079451329394386957710649661877528572719923797479250657652737438156668281237721066853278697290002153846937113726052417367956525802233601488085814169533694913654684111094228322541477321029800877907610222706157295858697982782157381846275356709971167263771440830920054389548666283077644699946914294310472392433524370479029157589494087548975516053977454477926175674731145740089517053990118126316582718777285848253237099049153899478882732596500947151418889270982846181635860851188585470760607870427639273302123608478976661545578078448440704713510085412938422635502068536406530992150819928499419419098421553754047812095311528152556981141212692766033377482966841948758412671933390562874731155423522923932261162371898819822508788806901925770692271199302022988920531327363912965062270643987271494203447153848234736908612820017924953360479902190172902887366983188993025031909092686334301260264422064892728028706046366309464014776869368482272915635687707264453914406604829236970179829189311831683691987842410655406247009935652089166240181705181765085772910940561723746167893297618616928586250226400596223737444718101136393563961782454989627385081869782936141917324030403313584528256437414436725132881116514438178496186087013708090186595857620770789479881602641950659724286030847051806364430889887005601458757819925776765925532697410618055028835054910670762322316370065503345415298697622412019518447686048610462377566996941493450729736509875742274505411462938032326892903697325210718020125339472789076839047450318706780029589446360657896577543563635398340339554337386128913752004145286609620938942329975307936248454028227930259753039628541859862238247803298835705390825036013352929610814355012769173935636750927195196597376360353106899439361688419314222891373791189940051996338853578961586983152313364144641172797888443506161289810081690589560621191535010599038832495606802122725990956739574809788878954872158933386608712193164261969059673285634138806110145417796525898048248374965354317298289653883233495781162765223767022486107345580158200578321076340040762677468116792570151114243456295683848676118511440732052484150067117238040095654708944303252801647905854166028219211012648967653689894431966059927990789332519304091950749674510056036900532255388389288905691921340233598894499758714853322633420847051685064652750498932320654878607513098059534181660068844306000775722772937784683377696796934550462954818710051665773606463659663955034555469770844845576899840043798762245088143474298433587724379585679857839444904613141240091766677781718228024873617750827423552164002437494889032285405308649901416186100589779936671956524830583715498583662805467759385167146380179442802323386583251749820743200180777157176429318561808002511032658248000026381546701471589419758035645588366616643604022244183093600278002432518864683091355957191001910982519084520436190292064006206143122126565320833118270777385581555836030283261025881587243364519917404822238647984150109267539477779421732842675398839941888125694427048600783114346488808272818378841860369423292108361236899820946806867076385796437113329856003606609971714416538241334584946686113689863040574244300201693825356498014676968758426042581723309298711214372396819634692476865083703109333227106599157876897044667840159140912541752014718775177194712483841830700415632682097803711648229715146478695580869573083472832159349640766886832630193773704026063025029375147432765318871719202766967664005152999490332559413438047855242194581870641781502568480290597530282052313164306578725905352094132136520389614060071278849806770273841399354307305447855543587965899016197945748944242890965223350468184771989977494032571231004490596434968861450036886132310460469541093845845823002978709049837345079620187576318010979871658488551657229372629916407364175130630236834806041904960211534772528659246137954335695530881145950037132865962247364748593316222276408405025263857036565070135631931559922326296175072932867841683337902403139145064443588437339483731693579170783808161824225172845408716597516208259195196268234367111831570861397106255236088188165481736562558842270089371806491020670950377349745703517196513577469105600045615179613220638181913513657838434386587044377963376523013489857447196289915837142483818190040100081070342172579944229965644956024389129288634756699831105686365384572106128632266656843234066499732190058224841942148753802795791786126993166386475675462024982657239737445834478870510949387782655934235601956001218454125459179613094834182771076985432300224717963944680004876115364839257249725948790431829985098485678928866354220113737819855031264982556920226947697796031931979036066009014686891074019201023262608222858147994848562459943200376370123991379430415340436032787240580340476221746947632593454604301239649677714566125259006028195589789646472603017657097121613597378053392348329358862275498771069636574545095213020703920933581364791342044038048081940785330965185898826852655425568563919436930145034905559027085339517391911650796067567959312989209240392920470302742981339659880343401587905572951219447596492025383301703547573719380709559412253667326258281759745917405739610913924224266099512467368147010836262443654011378001075819783299465628115005982276320595149417606131836813230570083002840773039255294160767686648669919716409356782229839724499194081180425775630733061759484924320800072236354008706374840434620803062251270319782418374091095250792047247947902587589971332095035075252091302448394233693112017357154844765328616590931031575481089044589483684447465761924845388170147329222882416207735926167953518888156774607445901196977575142367390432878571782530809247662529083968821937709236524756423588482262450580460440363372773259375634569814515222863310515990257732641561254526986643261902853365406550858120345029421562682418065900304805830017186689518486059833720045151816640189446629430780029369869646944131449716636005389512762774054875937610336269230820249882639596663412320955506189555225464546571108262598007907562985449977380854513273414289815214488006549362430805668361071225292705797295661771474563814736745342579536743557878663771087747491598078537548045590784073919409833049724545382378288015489458374669267552279187894632251239082398422014259112311787761533729460639966175740653015860752777304572332624965255081424382973621785339106365413071264107443879637700658492203795266502397377663469707303351271008805550737420921424827964968482165380509833888475151595198401633124690241203230895000992953550971884787518868022877897999017375852292584334671952204588019979722102651188770575624840610351065462979451125473687194387899219349427753946215624674105879724214062376895637631327838598391715022653998144072700993223069855915096399151444090845117555434759181533151751608858768416125581732888638101404559967571226622494899100761733841905113382091752252612049234132891068684148527017173336608072994493766859532005363981127411865190881575866242888362458812146837432010246378793514070969945773290165930320419115230296315703435383394019795111688040373172879822926191218803140942334940877957864779256512583709071862597552820002571426812958772319127517779699649374929045409773868701611145537194394616317873719974720271461916306049019759273952193990804572255903918681286727847436278715948676246521237236488739972888685635735273095897360948322128490018466262313980336380102353635399631731684751954957791655252109782075128957410978276290473708276114474960624619810570286526967602053471003959626778304937302505559185867535540803037634085352064265391284305129457645383969798531755089716475950797728266885978740573234314441530253154211000880452870713619726112901051226739617143968561516013779520348392932999401320016840599499166493862556696965794060951651906790999547132346529017633367706600118982331398088848166841091369285534610973241578554382969437012765611695262509802578673302008495397911843918385316879433828219077537559659539692566077981625472889830292516058431785373047441166694331979380673129399882815712232174005806559075026216531019885822148774042045870383150501968968419806007235339326663368934768679750507691442591376668211158579298084482898791735624975932937681880380917148009572170935693707072311688224761187533653061449118699857072670763854557264461923811201552747928371879301819481703288793857812352714441625287174880581695357935596198553777210034167553761909537314786275501338621330008985090060159121594257315611285075545735149649348573914081465101691372823643029215267033119776481943021629962833805187873710108001917395934712287759713225388238147689060164363147126011943688467929964782621575522631799349898255135296065635631354886312605203243811027172806365104353089834403295503908497214387143634081925970065577648191222188092456385636677211093592626309543322241119827299008615136679544096184529082081538301277803111799297704160660514392677773469810886466656282332132694383417623602418891132356365707975894408457546510670701920197742842595204716935082038373529711235142345426000431203609742693231395769143987657320622097028714285933511986639605886891361243646190333304236199988627514900331237915060588004497133115974910727008199247705045586802350789738842297256241263779852104366509400422807588821880653181139670191896702231246390310484896909454850886808193983281536929384121536795778953252185959222365571177712577889309597958644730747628466535018136771178683725869996553294194395865919172129678302240903522734251982901256309236055213547916514828251700259800321792114664497883361968505724928842706201114601956133779607788420080674861715644728758779730104922005059257871014612488909563407061667736123876416285020864849283576759943687974624564828759486753732958016280861794612348818512789021896219235612463603678738803352708244988448714328085323414530079338572895971381910178408616842978623729384295594285963274106675761413858401461923700822824387877231189307951000891159582241571504565651319888377628372292240333330956529426031350927068224320807785948255390039065660979257727745520361898937467044222860260462603366650788782782568263322369923163837139971611531870313089539129161008560358402743516750756305322651995518230181172967654408010100216790985438243073960073521959765165480715535539524472120607058293723443204908294886220612631629701054680940429677721971689910280491774088622385480281571607178520375465536928271672863576922932447688355317093729600279282108063350229137433911911757468538137628813482891889976092443692241762820181368901797497070589947087930444350745357964636470146193559890225994901565922307832209157387649104759382469424691222608183354032813442208208839910179871018622225919896612207921603821213926633078101858308876237996613052401783251058091336650105229453681690132137801413228987733332326760543686448245258909586753077727730320143892986671291327915008633908049606018228204984243415114126800451989218072501017837120693106576869048057841164441375398538552411364177858751417468973259014832649737220075864572877018256754564580566233860388721816170586111298541219465767775111726560312622546613328512371973306140628027113475015586906569740964004600704308252915836592510808288303891651219221251839281372780477082338197257917779877055761469878547357501669596226121819269886381533820213852232665681487139914049246637675323999553334453246818399248297068111298415110725099521350629811335469166232658615524622789093587416227187637594862728870363610912446428769851795843693117055391919652683310135619559381235180435055115035510211603349615018353932273696832678514998184401551646500571122946583250750968769810209403703335384551459095992272548007407169946833270394750222399123833801818457171382171808582922792942099577526487240270177826689889486321653484159931836798162953130417287598670208346751586045741811950023064248727150395139114248355900123905058196421928638567422879095234316218004440247587813609667903245241525195242188316652585420649311174893485394231486541170093119838677250628943512686247884642162933982894000300957260577833445962360161717286591842109961719569020835793686549075197055126944471852610641713370184954446999859799605492642767264027040093245930244190494830355033186641835720592480665828198472962073856683186209791413483368988771919482389008548462673758665572609914480950171768113557423332709587848554093861077418360914423111408290579330658816333248657176105294035055903618653150999087595604620207661458075483143604587908094664918195826718296635133660376336368453470338386426363507080528030319965262392529872596434952949920798910305428856533239134700759585570969685992690980653215419674714844991618544227296764154577598455406632932791797655408906327388010363183612000060419638919789792265135449697404355890052409769505804084720732208222762277110131059936407934819345106730860484484143524558948884330152495323850397203142573338776100460242862320512564777685334783897792627854982098382200384461179168262354270720757508511836819825988895371356677179937355667017771759080969494399539050131306746730074582233156356750180151480144710364549022122451156740618716538265785230229344909614890298671976915953122780830482975931129599570594558932829757213576414852524449479434823224488832772584103426790522889618078728274141477637218362472217206375619031861701838125857445130557895078220072559788357413734243538413138046616470850571896894474847672285803085009458292255593100658261319827592721065505568042919649359552111653821158380913408287776463757100116635025363121584033780623599438435167781370705197548580389260845930221423988554772771217543403345309197885715434083320710160618021019497984389887890455095284114276038856510262157878855730155317682023540882014427318704950796772766782089824598576114499257392134356114696383268110198641731197769451899870932127892375739192675072213015209423734154828861716915007801833112716418131651484189530755069036614108068496195692492290582609661951555647805129206611401626783360954552613819042287218957717035327141996189287787121384744905317579933904988021521411341081131188124251178313898544421105819871386191349615621055694180691811239771197140244840624354420123228707310500909583785314947263230619875187671561028520449838596806295806239964424589819237505905320614810437524032615411122738077777022486225332279861381396297763974391066587050297335097735210414170668997764467898376056111862628174743425332630098623758730555970128951812054231946312820417650542976189942606653364244984274714395939733028550900294383059221348168465625063020605013144246655659623010413722450102041534052474674049015085310964024614316224740587378848208700485376043356289447750150860143696644151605972121755033169045208366074983685110402638060093683173823167719439943250653669163446462787926550904227580480841714438857298899444539918570906797954223154832691996996747908127015378458279802283261922062115681569914389206984050937937910364148564601479510996541728424649111840672311616042175756290492612690092481043343726546987879499557132341383770235080220492510746051101899195708389117132570258268450673543495949550173112102594814300921574219960531908932590587699567383954168271703816226011920407370400821710077417553618853334615954892818532394425130598558066147655444717487837849293687611097908593040826147408856114987191499217813723467252129068037951881503884037841187626416440577352880559512092147903410033908850792639324734743960568455057880617756094432581280807584082841486690631799106236930621708140630920069761536871830928869892501611938108349980472099148262594921664787328282988529253351156211149192540154307220775218556767139860566333273222392115443754073021108659603108125724759338232634921586599430020500094723081114085712220057430255214751034663662315295622873890726142262683394489723325726970643351872236186914052783405059412483978017619647346659592479374163712669169449864711201038515401951666144869639351540418982173124097967451114796160323522876682970632025653268925092949160174859578801957310351827821282190223569198525529431957018828972248926905668619604948984903293129243091489763379904335862623564668240271250011296090028389318170991730040985471479653850002343600612054911329891592923423524103577224237621750673302092422078715455989324296302858726114321298695029370733002365004336129311773907934005175687066992266930008643482528276454586017218585599638154924330756851645060344018012826558940328201605787008874719230025853629276698265188064348564260582817994893158488748219637981164677192617885155528862307418482376129829680481340810862537180460429298003541572703639542060392186322000832743287161173025725280737274022733339254298552479315634743751847919038880331465197950709899294301079417436373501933762543170149976771992191367876697613862834819552741479146728425875522785895565839424653815655797378417607378672436744932729322773556515421486845412550129093399101147135010585332392521148043883058028935609933632555650422884683637417950973817299457312499396252320470692095119729475627990719400576297209923366702198390768382993138578565107245535677862314578939167696612374005704032605801476644162136824849880822133427702693669220331852705003809480119501980866268230015202401940211862378678075047622745994622854793492227484702157851611660870364751690813403651134782969746746620349172650239472895561350562294008022302574204982583183604068555246985210846451992948906922268913686405450918420310924205884171517593804861384051789369945403319551282446440865397453696673363778575857356720966662429234697559978723117414194747536687689740391838080089969474449557406795875782227682419763653160289119727394014680335853104171915959660550544680186520421793391513499494867730149722391596411753373557209595532317902014579339542053486153621055640880121548410208365514095241853783200819790794329391725972625083965550448791882591941936647716988544889186338468627706115298055530940647398736606592142313034501763790519848528667332977221988287632396924025939366893069944948213415085246348843512960559127032643970921134619423275044774157771862073924671956833819147461546153202122420061898777899235742773142091632131512003015445869402606093681373647764822962380295359653721373790967463724672100352910305726666828406503040171562434868205223580150378426388844744406712157524883966816083262822651547199116382251544713099595584570060667044687501261160018509158532396594471261510585634087367640367458335640114431393432696503054909607518527568276008814708135353310002256100647766931340907531181246281590275105401122615267112159670231261400657218110875887704754688683332395835181663056377203388793263089690855803974362542999289425268555360442505689694826882791173526575356377047570555177059884929207954136076831036628392653638463143813404722385543698268050890867443140342972239246113296699128128631155547926108776424712408737160600942154168146639407746893203334263057830097102990842894894294576636944873874398334668693357860385843970394301211039214296267785552881899334753449894076756349746899981017578976780242335949249798684528518687852004364259527268046725877048851780819575050707415966431307352372191149135009006274520869604423883112196029390751646670142869312402211128266721850237955796701792394676667105454671533233425096133611026114075577650352056002787936862047078737162823925078985622450925012833500562942422127321833659817861153541480579007207071269817779320005570503622372635017226805424145157232187031768574854647213803151146271017501808910358639215667920720603466047576270728708870462402885626039500221629092562019423507181716160761424297440284594408274949543243715382951952578532449875755722119688775582095862459808435065673615157723048489972599851936502944507932107344803936560440081845967235403953023864878201150420265934606052710743267950509263991521480654310447486933535812904862729037590238288067086745443097048673122867042620240881198490024216369503072483191933404130116451606916195850828309792826802505364931942157220473343253937597430182926538001499975285375888516580064471192729444629289525787988467502484641562281086858084706762838123289254685839500844652681126545704714747733523472905843863747714389420095691683614388564999485227537456803594548161103120200354717064505313594603943387267956950205604306382756116763596014926542882942283091793762591811307025613545262171060244876975242972723106889891129412831408150491530532867024744569744175578792538930421718607765161782536942890863317200030138529216116317370548851547334695131780916934957789868677674888712908109210895623708173885908338301559680257071591216737010774848501433117785306874796397235062233411638579948191839121299890041467546790497152843885378673166284973463357774522326186569498136071469604668444672905545991232559794001938282864025722668615461332004453994553688431895756006189020115572716824104911134613438946522973592635404622764476096509056381971390709543548231338909689942802307704402451282445784504756399311766901898242073692097216442810032965172746958167869385287754137934530229253692520103130095292664103113524376923719677295359757291162603035039790142785905430968002310929723068560467528976817955928375711721223378719026403499265836408530427802208695334612965557158142596360218723840949325154702235740184540098302801849401455707781989427802798715309683607319007739782181482737211971752506768471714108699596416162695534485440549145528732707747840357150655205776062876725193085587775864900461753976257030257107192694072111130879509408356891024875813433577804543932084447817754796031543481379532048845778293880727757689023632357706761749586057385689648943506534688916869176172418236632735223610489837264772473857509380464687132713717629340226787889764558792577283701772739369469567807437016872836008614480327077924650870474903714401268611696856663103332046188633769369988719098993971404303955538983707104870445181009973116387402863817570570441512866417840127792812932032088108369504243647154818641633298552004444476801960495232446810461897172530788770524655721207776724215121735453037280461005193908340885211593218781406784187077805279362199146881863202178547741912142206836779259292367651076222036911423958792489040722162546366093332394419268280056701487337743580094062375917849303559668999649113306722481914123143459306476582772835778685958702372312093615699092465116709590910250681588988037145029047301705295934848458801510521242874174363789520640376471019096190264073831556879602354840203593262279545319531944164423402484282691544483213560183090192819370700237906530223226856723396056790228363675941092842381300926830739304234345436019298280855158535049831268823873015471889002412711061495141910081177212548053422970901512117537557004359686449455457184895126640389732425598613702301668036816612096517211056489857540418620118980833779464102950776688263631094406550052833354938839714334949222697907881302074253211311046677110091803499226067219633578145603091089617947408202839586578264295016152397310075112949359096569793156836462019270200037877935581717405421292621886297473331645896580913385883942951184487859299918969274574181495828994866095114652040078286623966115801338096126741051897362106223745763756970894019924938321213798643151943469125100734548428097682702149528275697515933566329901621149099239740446498536112366491618515201050435150788313944432237188770218891871751032955728040753537223773542628620640402908776905844707694067313734261273976808399798665385441575057742429083644866057751604442096764302104834115937294766068887221544786390393262120633776861927283739839627108489684921586731515093399733798468133616850680623287273443102548437536863351158814100708555910399076624933622329456443086812471525453587175841055692544909601178194914182488442197572124572270492292063292399618302182604064808942507722916159777526511598076730908441095701276820555340408964296317576177229150404815181697109749984667438242824630976835661569925039526762131550302759063255290482100474198900790725186882448183252428696644295994522545199281671628454412228646058381512757725179726991167941599652607096944786217114168504601485390352397737370012139598855250462107575979381395113009051512416895620907841833402208543235666153111601369595513669765462926493321245364346471149786662480406645230625687838262473273602120541928257760825389215079486516844354661119318786076805394583682111005245718935805173024186447434677705022439075199045405466803917052617778084523097934127330545770547434700772586506670615373131305346220972375250907636818653378046488022162888501901391252230503093103028104109093478861919521572120339141004860976896825983748959925850452204430826902780967492305089051872987256146328304196912718868547544861394706982535119358637388496760292480879752576446302459812167057007659661899678413340157366720669206183246152904968375793244739046268205981524960276279400498212589123216925135444389796888362493754447354878924094171746016446903329065349800288472998040044835517721858549749510271420898802145100674026707068706057319515671560990469805756525971815891212645423631670430717470436701941689096125640362700086043701643033487884973223527930553547684034277334749917388660210641202379055171718609510997563498850520972409437909761570299179036086347777156071562525598021827980163318454262645687145765522581445511845827942528021190941202076854897218154477303837357535095735752862961545401157685758920528341102802410629816328401627332710757457393477751564602602888572419160161161706769898863110751156866285289761739950370290408682253352132781551850352906531294001856099664847931986510878983847730220088591354118675772867699675357078821146135239982977037367867793760631353096915029077598870904333576071240751205719453676486647055490442197940181537125926503994233246105871048703968536595765162694537520273869847199730950487872717984209856605622547001825563671175901757259032041580957787227842258894461188127297387530082803769582494806443975978112481238550715684406850478802146861937457776258549324214078665953733401235709947884355024670458674363870507329504269679338498868082926110119255318012009127480115967673397680350019741136745035189929773286514970095987020194839506687405810499328462604205945460511220907021221522722445409464049962541433376479676177557048926198309743313670833522608171380134358440763385312504445335907795942919356740027403816596249315421097410976369734548825798372753229647947903451955861769402353351114147251933253961964648349799941183417738633148998589574532916080224483477656323463604245406558752054636970569880459329270638113048315977789274160010969312103684754829092148679043895503390239095525189639266179804673943070883590541885023729388874627746218159609671641450337746345068833635152585708696990970975225970887181433157860866142134178688010091002760271690313433269340419632655666853792548793089802557477012145845591081564162262109277327891576501533859306455543662139736329011208414714694551842654635598800277046817588435189679371186814990732327874539114702437901406149944713336803389018070976406166085958276044625917471493336092177697221219570577044330970030186883870462090130051750962096649570184880480719423180529902493519497264001475586657120679578025327124215311780909741481552470599984905106268398803222314000893969311376580006845177228420263072741543500038219579781408734923854012825628931997676811895440132780739162593407538101537662942681756574417671929950012722710847696000264824404219492304013362486596882439963092291306009514942400003037773615550056595393647599262700278772839944929785185702610319795849397861702696227417774775924252037667863334572983319336893420525759537814029562218558388516826965530504748520586933813190432450209157053003713732293203649050155231344785256338309041794288731431548804279795051413505387875028240060469379115392394330113310033977801939923502960597927059166638630616760765821922346588034626867088173202753522928426738245165506721787524173237536004047252442728594509897283160224106484749474776505080825255228291152122255366376973088142137180131216791292209635496610135435130472578266592362786170821641057605709650047955562609160208795039664671149019553565363352616476805914590365928823576727374639816683888135961926148083205908026784452996413752107101932260972545306412676841292507114702005708066365199780834942303098123117169590396228848138573348280076414412092570460815905762924643704311712939357452779595047139898000529297926021941123206563148047456950588714936964693887683872680396132917928802056303438483792261205806915231899052111305369227872020387290051484284961963575563394655998647503905672485533142549411828053933386217519354574984638063992594934069787377761120591724497313520778790762852183573373992861544801213573656748726420006928887986011437930366941642633296368282134084488479082926582060142360288237110378684133077786988071572787938871590058212124224434189584520085013897204096564111440086094451062655291750160646673210469390493243839647299343007946927769322850128694481848171395041835946046077230327382838849760433774413845095778964863853798493959645101922828752608262095996238537783959410655634829954884960501032339653648653773421930371506931916737282586966781423745122153447478252626245343309730181784080108576083332600099792849416297471817681895144548997453110567043739024625135384465613220964432782177158764849074101594331435856676143208041788031546489048959339186081930462620729116751975101437078811430575278878078422216448772440484695173136213439089909039586625527784126470560104248729444564853155631585628678078629370436384504900713963939272847134899218098415096926626129769388339505356002593020656711225593512179530978470153597409253068001186361180733084096118477305827412221512203404416719503363369023139771352065738012112930011116140594199417606064087628264759757709040924088256443389159291381580848856375866160684085624813226657252813169590617092881758655059820233997410360752590521137601592210397705653515062032731258492095115784031707189442376172928399529990609162644288303793463154771040333568436331782280773030755320881459657916542214428600150033841503671385062837034153429463903877699564505937890139555186102109425194719778817049475534564712781891516135352501979442429346873398442812403600467703106833071776090858681872797515165883016910940037852644867786699998780320071126986486260884522812157629755021053803336590171781011474281979920135993401720907186451293242796032496329063088157487652018205740094733899638820627502136566983230613523114612238988827225424330639277521121480381121710224991562072074657090708428352913458652968059083162532563276052080694145049434769754231306171026248809588143246615147506035407329332831453266117777931026701764898728054853959882521296243835756195567308312906071019973101651932730826331912625506749551711623165982675973297604887638690802010041147052967738615810156782745492014355035917257722596288478569775699234319837955609570824576717087474304241149544805100017845065929335596335670781033180230786379986316654871107773221653573978983778855705600190089728653270921660103743825635157772127854445539196395200023080773732098687959865132464059773006381759863512384343831011883779314213786360336981778029052869284347510548951917044093408067531434972347512830743284617255773087058541678370827552314587313368687755507958544081504469463976709557877282958612384160618784951419663249177457048636698025365296531875854578432771601212765580981292460117575233973507371650656182486284964426401700659943429383572502192361304599357424389782586863888347083111992572625366800891011430149539785340984894030776580745804897682816680625764182350835380257158907708581355965035519581798535852332089840885080186721088845789326081327132286580513867211775674040726366533077826446664374664702436312732015126696786060780360081287176614112171091003563117412667615006987420816854285859324506307205491257831620309685787866369335169023706548742762203175726062913422971336739172931694208693926106020766440364424299578913813228678535298269245255753951952565311651856707273648777180746305230821906478264209957955618742263018051347266441738480196102049932308546045286572471675944821744796570672112437106890512238850443728314634702987888308895853905972910282347123168740191745434378708384092771618117844623332317167722660261087887553820713618852702738208177658703448665349425435057481267153524896275858376850563797533730910894006688461759446221837229433197811503119505154148716859719774668611297632800304516343894200579591738801532799619364964492777015238188452314601005438955651611242186236456937819895090677350301120597113384714472274548471732913577012517298078824625105385196628614218218886032510695264086983668794920094674968455694378179667612240413089051444821747969410770840512232548051926244491313613542684154262194546479206187376591498573368903190058903924096557255044027393557737640891207159524710582086027967336407888803329943466394244299049874368152290931274502000618485371182653366172666061287071250796403620843525819571764284497889727895036119540820612842412241094765805042647238510370624366928115799354628963148036909970904572736068123673774619492144574924416571516633581177834412154358313804225237918570886304589375925085433357113555927018288107261234997557212039301882940537064287987787180825056920778343777771404888221810414473359711226474076672610592627498721770130682053766973509503416025252111400818236864123158385762078220203533149771389435703270583329531722514576119301850078290229799009058069700825937420856192505931481733767119330869179248659080414403043172333493264122270285961638105613517056038292083533623772759500791294532986193833215392225635864477987073149848432474544312531068608061749667523435979637687150644670073999116035944442997858470728731231112599607295655513991162768681014400110487513647319831868065085302151119862581775101617840697189680303184623921127512261752228218566753775607715948727181501747256556846704799473907198874803000022333907249586468031506951813231528458563629336162338741373891930458811010295219177034829531735320851417585037878298227551890933255701776525938684867682028121706019279946405496484189370834389894762259657120778855666129047953075518095014895515538755011243238012163238671786163387092501807720463151286237596060200808434486459201084614125272379643516804496056525553527628466662050339015799998674828082722528572676670031300090339649391236163323156603888889660447706015510936869257924821229242019856894628141193556296058283656232448789996689127888858431499541821570213845560052424461558833503234384124678194588900526568166947950112528157691376535941355446977790882434852703009533355391849727444732613434686199147903593949946781194796934010902467133530170748489607334110646697666022703704084381655018602816567167697901606167008537796747658577330576777737912731922334137935434177083741686269717783254410447631272851930888197499199626911236850692905082693752434386480688122948269547359263922100003328896508968684392884761352638510656452907180284877592802936857562211164860314907588376755485332277915680320313208949987105167242877510338825115456439159072666891309290966984423660100751610207210711996807701104228750454563132964574470408245115421723439673131801429506133252715861782096021608486420759203028074305886674685955019098676353384765827259448870634142550938179214008512569935760976533934022812293280224788455590120768229189251483763627088607736131051678740265965341270923464329928113381551253255863935831502489349397080908652382998527980730670607674115959533000431561774760557692527749172962039036404782077204536289469039427831372463479794433820949595582570152086562437685403115932858518402517352536560542176735309577951940683342559736690157452886495201878109318053404695361713598377186189544391654693939162820393068844839040449804948507412677229686328289305274771132397989773983699804330320454745047332190854632810410560077576161163808768471274960360432116750883229501646490999100326308475823690847417684544872210999841410843649093941399006146057049981812161120036152793683119942494573562814598438160757985222204494820742342737982021960498051684358488508223085625452449432789599145754087715950682689072916835159977449294883097331026729984350249363008852665260770910108890741272453175190081255596956670123619135981625738455183592028477754514808304340662862027737422775538712147790324694856694434247431996570453177661679652902657402382253316432313156956887176845391150904713519924828586098302043465643095298204409384797760233666255696543925095641749279414063918941896125505770626561096817008372197134771856655356379442048891335818136811616327331532756607971338531880652404338622454665735110579749382244187984471642693344595594939757995050680941950749869727991665738683123485794339719890626318038604224565744058819413693963508742888700354230136417278369608325628928606599234244179123580837808328992071377367748905105389465211134070960264043104082414947470125270675647430339556036913015962091027513062247572716165830086641758316954974015876638218699787741728197384929632522743268990948986162262680805120277899812608322699715742986152381769684404144920010465127320191366551537567146231090004676864399950056410482086278217667231564639546011919775459934999334100502667415919466636041207906653867169425343916146071177560885177920266415816422483075674146913764422714221239959286711238021416000736662771404993538286660432380734889318659791898839658538417912623263842120034854483276337946393382244571033396935961721189603936695908102769889525222419356149957936640921617736573362047303745972175368042799975273638556829146329775516265792560690830327301270283424085245670339821053155370450681056935048561203059341143233098826026693433386192456680915069905856946687320818405525249861978191708627966943241989900377003465283897382491622635630903465705447449332276481702235042098678598390190149580487615881528048199021904351735051434661615535598362076494642899173638668054095898187802550332307402634043612743950620477047673644796421947640774282366002777853035132228394372017764447427417001255958360365900727295684537835497500779289359425273772412534403908553890158819703392926151012786726921062882382672639453196150571397946213288487564258710585570541774740493540303473187924498231742114942020687137969543878052145288425949035440665415191395991436566394075510387391475372083352628943008301538576540757865897590580408838258867284618141855789913885557257972774156458024332224591195148462959908218830143993184817041859743847074058762854430166386372126873794579177867243836538709032223108391017198686122306696424585602751258505724369430053647589383245419515563718586458248139195778262041362943471655231044666065775384544139294719533967760163783794988359063623355975603420581708119233190948135375692518827166892931069441565869430710086694879979155959543600190521149467911735341941652042318217022571869709843015599216312747036859989919628863531623741248846213208586512171187464793192197709533178330227578352924394826453657647255935201259257638955913714270944710079592843036376645962822935729148751063098400632260052442494552237371753702911713450427403161635281299986937683554565695588823263053133841716688665327650867358068268856811060693531263466968963883688704507034244287794681123006078564838825436273291249375495880196344929570646323891636821648186789148311399717110748493140902526354619913220044483684789059493178266395012201526797832466527036262879552963391534498208789302009235725637164456957655732641021296576101987746458094105691463622552536524883738732598746769632837226478276626526734415147783873323683795017403431611156627875799730330620834923918504661475845168262276789748757408185012985663046791703257050425104769323576084775378915966626721788885599395832912322624649725729955743971707349484384334486969681479661466296623696571622605219219014503304201514862744911036187939962653009546017576905262821649947219193653539979437108539075927660200961602002844554039189740229581822717704404208513861694606710083134185881727129925399521939974367070151185002987261547914965727156732833853500736974889074920163232102051498850304297623985097304277900733559168722914312146629708555644424809566646182929491896740100267009054936338446401973750798062410216710871640819573504849463104999015397181615775721459575501097512429746799810787941250088089632938447157661998215823724651605410598516339527871223963395046399121699985290576318782757803292833300223973882462443150023183288303629023146786658615822248167266400137617945966660234008672833541830607669627118798152994352222962951117768839436528120642544070817104015994532074269428508249696661705775457490128337203049396794882876956638084979887684995591826240921984717382319370241626266541913982824894836524226123554498232923268637095590236145431828456928890874211160445155911578153709171126101354281516666834978159558618882421557430526339651768413004516663906093483381735331111856711767341011479526938213515684681787813733915592185597166495819717677299563848120093927222363409346640086200191517944294100748753527590619673996961247706942657056509551805844619786461873476068271529877982479740942783917585979293269750398396347432119073288349497340390005710792738034487498958040060098420475968153473613017897015191895352856346585466460675313532010482947872339583812260220601701053123247720891783488316719302150331603446548655305135172493372454507210340256935442494241632648223751386466129672192532337861060402845183838212576692686600816368794487584547436191663352088613252892241136415224407123180390517126797986503246778000619296760464714385002136680100451465526353353172790041805807912038810060566102209603779312610915032587781718552867453452515618211951232779424435844336915393394722905140265282974041430615002971167470150608976169715664677550790252594077266513678467284217553321927961130696347433774511743341782107902443118769492569660524002768898200698155618662578905936767464104422818593676536218155476083096968773144293419553643669277797722937619185288922137478511861749411057344580735699184420752132007229613590210171661266156007378049172795980592267766839418720825714233115759247184708674203063907862087523483433937811152466244841352725157657554718353442447774876555723908546674695562610144725694316676901270866756678713743027404615438308990685423671735883360361731078815349567353135570080957651051266437424666834350353985278009269262744918648597940476490339052053228857133976348499335778908523505745632997559423663005835858791513755910837532816195892888171686543363028905250410713600034142495383518403646750383488958319916894875624447096760827948985475081935138451145493546001149984169245300391852864072488314210963835284691342114154855801512031793583617669137775274216448535928146146021927543891745465602941604013198100590483548552560152733465036051956172984581853666062188814571635582008073119188214513156772250730986373836569717804487225024135448568932856879591509530110284660540581974943772631132064687748529969444568534623165570143211476041827369575760800693286786098094867393576802322604953930182901569244942726878723948184437888201586489024553960700233303397991050417180813987802523188008398894460816448048310413547407338326141785242578454655697268269833316093209347426044867645573484021677435353064144131295070949935578930772928412927645721272324940172465283300143177851026682543977444819295835050408949268325046886845277226449345436777136329829490029632918686785367664962278131007318536750546744527307399092060190741257003308269217082608747213104337086985241117535598906708948347432469854834657224010058857381481288534965788452518973624127079714990453030685308540764299686864383498577382586777583954821502278164464978372200128118060685369258520322779058539264673593498009955278502370820905798724929121685255659640269214996855261998967282970531431798978578265302135622358287786599431018131707253568123279505701689803394881350410811891137275789415279599122773977871753128023385718145690603839849881078413878107562078377383668000084590322973090710983695549748186490883876436411418029462183350282997395107562462131616663326585749969039486715403991968763768291770870606762375433822291519429015779296714072638333420804626199798694232430372129485086858377980018674365204397562809145844253750216653937026728903846015634918868839317657986581071055159020133540756594004868993400052509575351445421141506782872480414398836907100275896533313110262051224886614271867445139738418184145698504431048514419118026343787110678082786915975208337376562986311786619340413661616905680367119585892013977427979152024957061829383805750769789770829452885904756144014704709397666596596416499458944090095397144291035103338432393189280957337214285475958869451868885775790377440548537792901766747393719310969433622724737267462889076540044863187710004943681990143750306851501491105756995413314849828861290494022736044198690254538499372559957312604780192491206759570100016819133546999851022639997351773022507537871099930892875326554992743545398883804024196647436349559567290907931836030136446509766120321321292210257480454759554545479784094279123124504239382485363851797492971237923896019963978058440487293848242567176235393730537536313117417201893758810464541702009866463617253356149150962684257050044361316799517734555455996241816970201410887841791577173637751936384801168243224665485745373413793576060975631951003616574054755070522270215891767270622859574598566694011448049550856949505725389650628838512896462765883457719664126502470096725307052876757947673569197726293061529177303210513864152248902760829024780821832727317491681585869481264144141411989086526238945244985737315366278781865693123519358053125770937488763754308802273472048597697196983508583489915287119293453078040499889986457706318559643103606273343154086033106268365801415913407787860621545281609175801888667745676226006706374847522443535854276812493736928694081876776508603060173821286199821754448363618325696676002660245794840615253972291320682314983865305564201068725002142992309705627242545446123733693482285056645268202772492476587550245251370290754319660209321313688985027009387713692158662412829659393412671523012285215492496843493077323961317405499074118816107909489927167005345711353526042110468511569083603691906855445591794861414902004385193884727773580961738992518824965199051255034752457643882788160554606764943012386554422640726192984300204410767145138673314225681023970291975394815252666684268318810024267081708056122451012199165226478495600852767887025952998342019930595385283551789539645990236618807375690309171256720808246005721220325359136173956094216923671018400390050592739120589423771752398588376964981076103945222397359070426514397623156295680300631149799867014397380600031799081044993540599490373945883805881096333970424163792284604639128572027938592486723583328261197202822225114990163759291947166336863734294028986111521329344187465995980183899969132135289731276194830134616951919289688435536990097958376736611120063250809965573967539109897033258164830495700269434634858960627694978321105081460221971520002875273022624872702513217963398145115152592335630718681378134862376755326494220125074230299297542348275772910067637331081434347613588317284847284122786014864726290126703135860910328997103132993270299025370455772013010519706139511404913444656606243061132667544475176150417469985375129767778058597278876275343135126281567723401122023749231210308586462201060568468830953855611350851462689634275280252911328003542582060644106974373922860372507225730134780656316937337002177080574797021484198544610271896935343088824405441714105169304596468563655749930950873240219377104336115182533664896545711943376107390247431015783933371110882963874294016625339003077555561056708263622391096657315968954898694176780237018726021099964349257091137896567194667347212944580487089080726352072063583806503657892428008105061838050481331406858767752440634982723475604589632016850999580893127195322786160355197318134579907681040462467991247444487764114011151770054432181040942488076430124686359928047716236854778002020392678032879316298791931328633739426997860745128870278328672523679366751321176596856052098523790967754706192112462735493762308016013638495528172033753136068363469941338416033428800094492188665040085971009692346491317561092710984880005865207014125258002175625220074148874380498785936096318727737085813401604067758859096354617431525624153960282701164693218354132547902773990869669490600683639270796761229582255996675831467809101841345015600676091223589333547805701065180769962266804325116650015715082756366626673145770264693092248770959082914882645197695066891462377726841087683123993060094974510164398315808651011817573246023535189909982864125350408359270880814319905966608030424809835602724379194809981156604418903422662191464804938162184329998418309195211026890234758024640506649038068180642072083885449309147532123802745249514600987098260717523826531256777688811578250457797214919741683450669797612897366058876910575485982880870483590638353398256490379813448805239759646183106360143914981463966993654158208824591273081710929580266917609079846308761478368179834172963543268281627755674231084650788722783484710561503847648849859858081518345172654581464940726578930750600711977508640710603586379909918989983098946817307324680069477123174778712381627730838814341914820779020317630853681425505090684124765730653875992421778391923084962814108042297123212493831807463467214787581208340176692536207094428314736770045920578998070001166070558114431013746027067804702505772291308373868379946718008875332657025398964971490311660051026201642840995206547328043234945603679302664411529732294391527534746013166548192629934506380321576169254191001324287154439518292500170237220468312173290614781424084009647022284728885933235502962498612870198337679449073045472492454399249587710477353962142887897819098178063641585342749015861390722247628901538289563398166943969134135143216888607814152206479241846034010121416654239879399895570468740486296725881277661705860217516814076414847655760564077651313078980967254465559043808485009547194941677508481491969569652762419751705751493863312439308682342051407112959317164971096786430845643751771906138480658121975492825781616012117064787019300230779715554686861420037453733969397449226243873112108021890616874049516033752988758950330272775028466187239845927946783046010385223211365055602088262286964424873258626087836612587063826168409950655309775358096892033313740578426964225808051650975403175799335536549256638641784513218618442747443299130578050820325454066953727917003557982693462160151697520990389155205908574379707787524088810081413292969352872134742464306439103342853369206977955692416927852941612254942392735109378000991130489030992755356640907825530171907991839894907724194073402681057907924055264485353652299074578031714003763756437679684464728840041046658615911806799701869216778809539392389046776117424121353672641505138683629411870224182057621338395867794506120008951923231955103770889078139953259179145672508763307364007601610006063971255421398814382337993977152044219988846851259095278531908288439678158225869118772705011784081937366094845681331434186032499574723906922975005061205750323416352872316345190483099371612485313100602734987701599221568328593473620048847606741491128010954473367262264922342926856427619291085912240595305301679512035876476258331181038317924410402578556160700806743217431073018444171985536264276926861646829041854401186481428800390254911846664130466175585056924648491917064040747945752720483115507237378330480163836458906193626089468312154179272825054500376380824394448650371824220850197269195942103537237286561169246654319381029345941247171946708188062728123375638493919840770958243369336700915402236681245177160818070753586265793514324657404167127650261891905466119532386643840986601061778524604464567405615222454312556123315705169547238388607900016711665884125609121976640434940035092186566032500357879138847457131561386575850792280854188710513630545332058399209795417664456807346993749599110500778177778504568326231350862252095389892379025007740464438145484354044537573974122529519651273147182933306078871153128211651894028878401795354296731501695011451437231105272118726341907122109583524710242528264190717728786446743522933130413821510032139801121452418683501730419419291274006505302791914103448567023437603827923060516183660972738352302599401929858336244119624274173018858022754715903661664321155667899902054351616961943964496707179378775426537503079425809061995101036589494260235233808574320435627292652092819210873933905702990462496104377918828517438785235103659970897527813691179076229439580440677037912169945586906891488244235744013234257735112780193020602534432339005933884314335215778468022656553119115669461838515718492512397018970646811735107146667363747025835437452558186627736571796443830231293806169188951248314189926106430506048971189767470744311981208706561356489225290223747459440720209949204730045056976635399870936328881613506819608371967376461883022308021519448964927946139692297034913707953221536893909679060898633541537682055330817248499421438864703505274020813449289352542683476546058957426623814219166708801811356734374830799052085765719059465756846421591936660902809430582487003644906332972452440010877718478200236752483384781781635732039593729720007867593748870117631032045337882803368394125619956504699110780452474567888009097917846106976144937526038787095114048876232952601519279788966416004563972300733872211125542290597740122643196191181023111008701409037413140232814563308797037123567511423765840419703620334510156093995786477094760171006965663295859328831555500181015704551865972608807912231697756543172058539708535938035248089813602151528277059622295125379975414691090846585164964443767465012661733116816624728179427424417005258040158111010805589558372725290694108309139287975395016541476311051376378312833835001418675411064537275664329281165448481433962798240562446131563617044747671272947400152941043288598769733376315985398070416164858395018432776307159859812367351396755974258483160437561281923572596914209710595726353214408767660289506676783999542238222966374490361523522775926925714712004964076140799767082775121608798377666766675330583791047812162573126860202961776885420646182370084025125392637060115860290379372830046306647047753312918389943134841027088809665124493106290944781317148922165952765264591660120035345246045888002067980447175505002532983695472805502671471318474119368763722631251378304339016282003680996333354088997366625300641889135020716839913341939798124725988388126366162511115248013934155950707350973290506561909913981843407015117957348266161948923406052343075726065121543021399727182501244946814732163725072920295155601458929361750286136564538921056515617739115313911186368520984508237004193153127678763280552904248420724674933608334166176187923846532377085277958135902571351919994803159681167287887031555034805075255966291469191299350885472578854307826324914486948373499760635290416510687667095681697996442435599284676437251734171792366837117327403768390688097502428220639460471288002625364122944395466068905769950067071235157573927693342362013111688174286672367950379454743119118548691285432695474260993076790964863774596524967856008419086012297314490370461039210252556457309170510087314037709495556237911537616281099900726347884809973100941815120294681573340623270821894237775879524768784987832460038835327621148592252293396651309048030866519607974094530272738636348842192377018655129538541525805061486972728795160949982574439169952092550121101957433622845161548387758257263543871419714965923396044514508017113581457251180229732945810356841268159277445826543222497110455612673583721971689742722285422296360582112755119656143375753956794983438298829385516293146980276748226431886645061529986615872139217966990859651377281456891686596798805906432891732617896155101197199717926483818422523409259907953143086612530345195319218917906018891454306509245502693313852037924628340924749826192522967577826308359519399154565130995109408715835857094135051214482503682407129775293020254082808255594149942382934652382741790865089398087138821629762735130562047741466016981488361490572607145943536000845716943135454727554897361302758419649765009953739753168291911162804137857325869027182665685434184272324935442702000791428041276159911446741972557061022212616290815004227585552997152830847961697154746874929851436213592112967466598167827980573357232950677222210743276576864475255562296719998837450768067288309334305328275958695876979648404051752475167180184188265109476506628889553348953774315508293881245463235809116955914662549366813617904827302140946715495700735460992293988874777913234753556143532226149179895004603210592561115987011560758770755095093710242335906051641921102980836139112640855292383514848236787516938365060935061113292227992685075083521621400473253978119207358853750870282162791201764048290424204027103410629450491314534276941935214629030433236933685944913215797218833325373790133671649081512044407810319415125994444009740477535233752087381134488682965145702085102922324933661216419000557931762456957669732058912968471045828522726535934201214141066738699035785695994574777185837647014652361936128764482104822200112830251530043083152901805074617101540991502858794023223725720689858819959093829347000433806151538465426426020280567120969614205386459011660220812153515559372928072089507463566838387881200222069704955401990021374641455826337837390987930163174133253125037890871813981977496685320661574064905509965038900945297327689255918618735535297142961510680131982432141946568320043103105054465015111301540300897572737120280347132697410850824283858085384105442791164963995424974203320745227030030626408410657771730065814423120310027513283990485344498840347324797323325307894092457400844882512099503478918261158824731253067797337614199199947551847332430665184395025616091166517998919002000378797648324140348759692648012837001251121816589722834424075860435555374598032741147613247849662507126080891366021379987743461959202534058056281729296570563465174520100126411509120314803563613224352646035703916119153439840106215388270351362198141887609820109152593578409349762278224888056490555103649713115702507373297899443570487280356031818569955300992787311025878071354403171307132539084008473899384677899183901343949214646212616375475582992428208548044773299163341104781954264143406690585018755776725036587815894929208407564992881843486775602855655665910490076954844187016678148095452971266553967111637588617367817255519942020318041955307862753979244035495994596779796721203503687932046315140524066706566811613207869565365854297531143729934468688211894087992878630127781305988149860314324142424237535876573456486161263786630061642440623130744754496506576928817092637234645937904605493072784132526111146253304244590173487579579765978231004369881843670174746931523162134828048741025155498050192358951966560551851454523894746590065263367988055733431125895474449754159667022585771627005589027781137351085190008230981335268770075530211259004574543815152060849689018470390383692791004351770031028045790684040448754037501480241982163490095744607059432175530564489881998236873813620376761694199161523538843273479237940359330666840502637637677991030425967539758254222765158020699865084848293458984773691199808682345800035631024170831417878885926269697131442175638588752805844767229778910665866349376356425019167361736564293883146758077912860904955953961297988620273837786736513287798417666069112910344673850978760231264609494269812571060290855015250419342741028939098908539287243040023295279242025877945136744759973749446142646803247388162528479604740532963358127292541249322687779749105579336045790943142650026249436961316609235296688230949209790163925336698465282931458218594114285366888112562134914971557709714312862673263178410740243109767423538121703164121086181082153627274765614392258721880487088802214115852206548443736099453749764558046178137102256557907667490714931163378239953913790047797145492465757399210499858233812743930928528586717592897569414425582234817484985541837667984627662075702579006977586227673943818613857635858546391189531253394352818878031133114133544569741541626763489891838882561929343856364912776805413446496810475783307786013235957742796433676423955912987439785093855415424026669131696902499477395195824859582500444220849485142380715046818567612414108767771557532535677079249956973632055568357312423123694377027008623472571038992125869485258136640425292095480184116035027851073959373717376604925426676020151747408788440215587789530445323181864287162487828877542722095211803350738229058768801093140368434483649604643815669042127955075254722707014725971665212513567101333477885259823999194417002425532252164075978770764478221560739154963256109878313441659668461032081857916447731489588943972242119957180841094819925991245215843243044867245586477169713214694443008784150639775832553706372231341738654525765428633621121530000264686850462526064720699096356528631142447428431547354916801073204932075704696837288676818018370067910184649768078158509739654446391702918073990357299327073715212579280188605445298672314071605211707464061557998556259144914826153163094083848350415222780137922661150482509823037570014926977002686899582173323155853310578935992988104717955189646987814412382198281339558462418855373584191702879713348091720584169079421723661789457986096046023028223960183863147469870728625250200418216931120135458590609312913407744618559565453410977772864973197981635905361279704474820562655571394603125585802351166518165538546194221648254109689093770974482749733885024831028652338787694199660593738282392678836360225882919589905993103137908656697808572696626116325368828763106344114853435464042900220836768085487318321305119669236180647101535112269374816886971010671412948572315054383013031048585789604134784699240809839523921662558008876542266678652386045359133612700269711972197609463762838504550369418595076538619063481476101533517435588103796477525153355077842673916134831803464750976798732591315839095392643615182640656596935751442549398180981421289414905355075505323090797930442224911503371652007640796005118684770911142088960173934172661648745472334896842174518667421426541379364412742548880264744928177302046536510727369651312730850988297652260912755309245361762571053329679448585784836754723777281109240086367088546857669832088921098630231532105475633788996364223493406140113862510109706076126814914837663807360197210310989259594299512248849462793845776031514969828868225119473922458839874399397695240447306755477975272420705923308670841131454714105627098286380450877395918079106046156372686863704449123570842661148172439342267372300107681375200258549936892485808095043927374533486722016890159631001819343843461213949801527074388002096257663842693870778918647506261959661506345132785628217134842359803544094829047184033767266326324136000503910969960118194188326973352629528897736449154508880727164931736383563005814126341451096654082843199423943731212780715121098963443658021382478578205420263085863346885810787602038058092803513069324297371581677402433247938248774265560392842414244319582900615710567364480266352995770845398854791278149010376813542825223081257368995563097904212903141821087439133256479831028928639394719220967863116580350907276996607619720783960360026639265193246873636359360083816270325387475287465819508832255983044532549607958318151003935434875512923305277636741408612071238422360793848668562446304629020341365006415647642208527855781538477916396788430405549248544235292358454464324424356989820734436766817208388119195798610048745840942325740583427974249131604966663834717815844834491603030868678795612803653716695880619819764538724412272579505365845047503688386925637871919053993566759964981244455815423051829490345620182881725802399691845993370960107314057222476169354026982035129408153534642499490432161744896557448481204692089442798693776830358728891125010212971538234380766931709397833318256724071462866975466974286977608228484856518400919850881353835400117052016279313772139543928907198589309904292580635300090902245105946061935197656852542590755740965067649483426175758606068787992358553898009404939638023646484926163764473396441733817310031677940806042196627841605824461181220858085115455943896924615831867447518606320085898707571015584363174427963837097041314007095360902405795445751675736821652671431923380795673874392054827500885080442090772066363859662926380862207186388155201085657413323494620447399516067865438064740883868490132571131537794122740454726018629572292337609663474588806062564500953289434835417099981479719787849735965644744625046986818713038232586503992262076510208837051237799112685804552744414872340973923779105096439099805293589389540066473355290111831418255820727268690595240417632148171935436175872766222415601971446161387491190722003026556746874028517530740784383578478730200520012598393016804334189798617632959891551523175508360947700310507178201087429837868216169717495812509814915907092814835185034403113044282766299728909952817806660218065046795167215776587823011748199817791321543031517570291572154659475415833035038897954987650745784730698866509418649053786492313275052284264893534950911138019493223281319004962681265803089027677775000859168120493191441460189031306590881625070178498878550404615713012991844540119096198735348689056761819812759135223516163360706055355878209632826827842235032445863943801378383010859378921307462922393701078391123461007937925136783910060019421568205732377647927114432940357527923103585856278384249393934897225039487818686804781460361068882230020489038923760359141849795127447321478628072327013744524305637697873936951588419832116438068346027802068060145725159936535550944403353963284699001903288153283392321766145161800014939956573714746059855418726500764412614598685994421981526019019506585597234033383228257038189916998014217638109315273480713956053968472374648335394974630209766012328821643487962113226992661591678517596440822156192632369379840955147104815430248261073687664025793523595982960395541209740149180351013482639030078950277403813020083650349182372356448431902454391597520997387888081747612587027414275915974430205947290041642001040382871177434443996590904849600837704604084354085304389778201651209900337426223852636288660290350517095149152393831445310934971078951597886223371891627884376683433347915332333874406426304518550251455631350184309728331058015442498426908587408304076888016739224962899675540219684376801133924626895698338472954033944415597367040790120903557502084357958058058071413268166137489601461479626765267462429438512064001168141120880090259076643414927294589538032256753211334334839145121921217117099769628102098369925398007028301103836103915377026082040191855091035300534374530708175898895197670212538742193952322235437266064694595980809714651625279985825099147619200900578731802212520891932153645830825808154495475316891314572744072580884262970328258787304592300508046795527475371667187928885262296240768777930671783364247472470070164713830132663045793688968100855994541808848939147169175179912673017113038586216663261851982975657575275174854170567831931789643323641543900481598240675933316699737094116087768905515089589283039548520681606872416760635482250167776478371035529678524742385915143365335321349982511762092095233233354647074656535709111899231919081369128549153518467512662442697596960297171885542492807082304512444994123192735949927890750409503812796655279405542770693441202340572285590360091062009532023068797131366927309624298527680465278421014558720087966624163911493185166485412578133200684881005922352579963746388910396517193852850696438439649812794492999328706046535628100830809038183771984756668129223283309514665404622844628388948327968074178872982685924282553316324406167029854273056021141336903892014249116215517863874926273048893234735791736371267478803733269323329749911917775557600086457901710652169336760890850407592801951660046504904158704908148002017476836265781037939691963430710688485744405149453547628222071992448805307083808642344903459464598772056878679984948508058671764107754621275912916328159654710439802411657936916255562499993904056878977483543627065796798537996522874600636067821464507521167436013966795536009376904779684462485256023687756541277931451440935700099242439008772110867828925156711643540742027631789295530087277169520297949435407062536671712287298582620057913796556037907722711501755037528104775356219158523104708219331009912829695266794935091637252343348547370141069971118280754051583783735370300363039252020083323608525425459194897467990680500567689952660981498186404498135027991509979242635755533543514937066840905072453939089278521147658826884532475775771445653983896116921398841907633285467077615483412127616973196088704050092257199465442445634823915853501200824288990645894093617969335338544391772215063973757749434721365054406454096283576239410767222194178842466289512982849754374573505623806831187550362336289220257165076682259904741817412539335727749098457998699427902645008076612471465866945307269202613476153605622252773564227464130100340799003026001263346249269208037134469552468353410078722603704543819974712023167723951236607425110191710137889611639407991475811586983136920201366709911922276382084723688028327524356301077317861653123477890511274420279584926390948148262318553423028887002474208579828841117298452494997837519109384490392079654831162280049574995640339153184810049834176015582119222533007741282917755931938421667557981733261541572560095949010115685185727058968135560303009799400168030831901628806008359747174648121966437116678649561895627160496242638814122629166948268571262448159359604263435492653132829275892183430780911379231036944797903999673801313957894629942745555687421527443146988675480484966851394172151919891243967478781342571324423729640551204099856027056038807589114936715481717440997692962388889887760974777563783739993669024429340837814154601060490550154656221132639368544998448264995966491626051671415298799661679973369633279868747396135355737076003074072929813498475499639345753785749375735815966039261736962885126292082702303469858675053606085820698834076884763758170002182414134522578927167424016020326170871439778811056700858097364275383866836344048205429749372492528853214792569903963741250772310930303459238195921785588756129379344945055081322807884264637364468818716850544015284670650674806347310711808368532869403596978548268529434685796546687111147062555824016252540735864120248598140593871102215728298656814379662062410105030656033612324819308018611686083889365382089882590605333078175548421551481514491592293560500881938812436668537239344160199746591576677702198753847060237982664212200707848580107805287415718546189112156312804797619028340381516856096561956575440412346761004773142270075873243947260870280595519693437134490505594609681235699569895718472189998500548717284025425223598875581611847544066770784340968971433716004370808297456269163242362065429689386031910860506414026842809525216549223967682023451079652871573703020791831211364830914323838980547223390863270603693116037868849160055424361699996279420182253433492756717510455343142231997902863224985504879850719671601683253441966889821580762108561234958774464180213897931325918429166286097380581973798032650240002379686360148176102343436465758756708860803694417295706459597348250675726223623475893485289126959739367131112339997105843293577466612616500990997418205304971122923800100189003292746496519917568960643163563427313656863948858112964987008119905986556366302706610256722105646118385449665417197397662845037903466943881004914613179755307537961768592912700671822351199467403537379274522350790048264244591158152888523925230866865368061056248389930372671779564320052221952427885633950330923119243140197792758326276615672302915334969080730839050228878616847397444727538017700557238985216833891161747632052815686979594022018188221118679517096021857190968269407062564042292865872634399174684293778746296614682981015503246960323588799793843275978458062308252479414609396072060282645480823298421776204731670884234143382341236657874757950061740942698607366425844867811530386903662720834552261413233671753670711214802801008079852914316848940052930668553455067733043631207680326959812584447660248849092367451168319330192152811826539917903652758753933880102052385400718210447807544951129275196819632366329905944611884657301722571375514609221945613621779327938450389992560681193591913259998696088065294691172317478485056327944207239159279998948125287986281433456002777764761002158637432600165160797018817696093358917125827211853049002639947571414732798451404835597155927496207051689561638293215355598317340665273935984964443683988918173776132102379416446274341021795623207910572722998475336753121354028197658316767442370731636046673497447633492169208515275429676763470376804879109482255388046314590912763545474152585990550037250154617567305099952060607856501776033897173605744915449066498142568669641158418242091408980785931706849603826476017607327190570291947936105780528221177214703888337116788065680664717067025314660659479044219966979352439989326251125118023342398719983576950096563625507569719099978736811833035580071298493453587908119201006716494774676844477898009676482621598583951148642013717217618977785256532185896760712492275267534022667982905007659582700340831833974591885245652707431027835693651220206737081759763939987974275899858710974816713231954219772073020238636947926998546941622753309942272033783678533766735064394806300749694161734180427745967801973941489557989568376036219985911409285566658432132418500533062844324954158361445483271028200601068114068924722997556797402701776284733944391184873287174451269807109563444074137348475389719200777202804618473940196043917211689096711246391402094019843941799491807901469261890663933110056547667630931818322322857760168238359476084455970896461298826531786852003289062094135345263192937819104948229801079483414955840852947326725219197599398147011668666548474262504253654154826939892042658277496489378433072469426431383418230576832960383145090756371548873580798130859103717537221430726042380720459120243134595291682804776455241707729695470842720052756854535043554736449058236728527929484644210397951967454573141018109398997626998298741016624432385783421152199429606459585860129047190277698027511045636967817982993399306554636664789184139066641318226015136287480679785471590986664890856039779500059306043570688280963221699842584266120459407450502323412091749763691727091836639798047208940627546206067615561490718611455735542672248090973399847681406124152821170851560055089376323225046046779426769992583471632425063628425513521527125857203222626858655308673698260373924133614528357331411407161565366343349160183235441939854245842376354938170121070804146501167504530190329554595962822416314972184315550190631093983983025939273112305067872803544317435411230217601767032580412157970486414687030098954747644374006620106491331713137469696453887178082216596706918193012846932617875381899507933957070690594349924956154922550941404627366888995029040614815055312644180418227617755588105564511436803200891210143075966761158572410740829039229155358133206366993275237560671881552503598910978733237664347183213042348674968156843701617887222796482803579828315501447134943736873118683002587423014125819366518656981345189917749218779168768223699198676756101214995328658109879129687885164901917645859474312200116564307546077125984914416001537338797348399043940950630520778982526694565818225505911836892510455969236875229679313510370428901503776920481934532666604410872214617399650373805759081030197174332020864207442559867312608501295248594990191896939516080639371736976088976012927521534473503708493295678187363573864545478006370977338461983626780386368774619075559330263403366831037810711429088359444314168366966426129221870226827693168244621856649980096461788792759229068519262847215650441479490857358812778572252168152599538298184500574694700911765472416021792971088010124093997877457501582460323931859347910707003488622955322191828582411842437710439975834951695477056825266856294697031335136901983313522672670162182998571714704697206440374765662119347875477550450362327251265193186682600941409657104478512230916985551214620541848793031090344084115612198982916915071877294271848882101887440872105555423186500190248569693006197068530764545448893657940021358639734448792607427997835543678430417740968548763396485770144765747215627077445638991746137286234553677852398928654837190958286687939780590597724089156718281900561524120382071770731551599186265687900236106168076092342675722921050342749428374479243421438389023339202703861519666235204141326062581647832990084458118158522550316803614906769080531412756542569619503456972965250117061348668518405772698283377431326444501016909868656235313309567367727823646437066049829570968222153536559057632310655877069621662325099939830552520901172380489142359968853813510006201045814222369247062318977297357552969193360411742824915355177645238471256945854134591405403297177678302275992025175914896084557230963640384153643974633705155509274395686853893416507203828035797517547959581805415440085839809793492583992043757921214858859030843211335275353981352613876300377069974055367913864914100304119548145796199822369627599545795614136223720661630631434581853147212963110248126951632089121491908995559193798392014552224203516136457959837786357085237891988823566975776106552358874919076524069356822422864183195174808292673149503920614730400268494327273422955171864323991592379246747796630542780598928908111738540684797280609082250838717182081639791661168611930616210052440196438639288822319596411674725884717731427105159769237228267238724594112660496214756983489862737261030951887256177555666759386813926692430917107430338734914299038103315953506550168332298633130108906577704071582785282311598047623226347150572864629067144609137614946409946534812999828817675201141729342911647677459515474057398704910386442483097029047255241085580376668835649774768283752786325562559577082415376797268947469382361650375619204104734193611124402408331916197311355416841232815909483601077364874914689657740785469896082448096384015183940458757363509656099201500524125570337943598209349882149172458549744904826373481103266359190830142817355530613479000832060874376106365629686209394888798701151885745818270017925737662713003433966342506060448532334413563708984587866842111148940822638424893252699672376542554359253676565807683309351737839987926893017647272430681785708947700793982122771814886324269151693953918274439040960486469574291431636157345526351048174424246477406615353241333469785886421873067364380862182109691007702920122120378545500917769697963078586895918462808382654259329995174628654225092699778473942478756001773290938607647080943831062300699352107574126881179051470625942888053417393160279404989991007306635641359273535035478578923302234850395398345411853134916787264938772574572232264073768997978369247410270391778966131382496249660044000822049996523663929576100884690488579476362422292445654504572813238003357420928364653965239824473005800012115373631847633278214042940732320538859697595286807280129962091130919820677868188104019499490249483736105517622916621823136206179502818923693470099241775030454544886839485367463246498249754528742060744506458002772867045660764588689582544320023259603339704632044680087838818711675703446383866967659668815498577056922059661035567875485852375549319565628327028896254673778495430147135179873226520816115859134401100037612597788518045644166637556230580759480209837429440382402453300184061925997073135903992669070012306130512397533909343651842503391564046127894110252224572221086686074233551548611213995127749437495698361325141237657843498973159446643568687038165314871519318475881192508474233554342577143110244477726586694528037712645152931534553081924450223037921539733278587942641489903528786828771655316723965515305064785274352146971354368811786180164735371548224834262443235996141677978724712352429490848668525413821164730932000431458827821049530684558686341386796743613555174430270453489823497708122997505090932151755473843358303080663853284789355763812914788438894249630655905262539135947669411870533930301440516356071218581980267663979345731957261477524502674842930685031782345778717022321997670452727722996938141254151494142658439509259748057888985927598702664750623274411083006167832574326468617291783411002398061975215500617334364313513877688208722150765645763062929570803816780497650928877931949735396357016715182498367608915865066062942149739337045385231989720459364301229846045878703627822597087326870198019762889528690833693292327242812173762658076418131994688528567582632205427349740775038851762691498508509079796940825702480027069685527811717896048760383597762325368316063215250571152516011386143619256258304583428726246113894280090764339486850305678322031943011362391657930814877788013458197464459465559960676932396310540585034826492225284323326628939890253920450515687503163623419607662120179494218627532949288963126829384375853756383789706275864607054560148613238975612062515769201775039954423505963821903898593741643146985735393183871542212695926275372912897531577861119776745832322208069761717078092352483179608919996021674838014191648026807591090020315163503141308671047262831168834928864007944669852844580880370985149425847494779883314133965254837317088446543127064671116991322245485765110864177384010975550598533398786775528699032329196993598280963145650162937430375151289903744145837935965661438746660902493773335555247244696537219434184895947530553053433312141559879236623626662947594447308603323487144625926493495197217776297767312315128547339317298462803838668002680153451122241201532319521583283330737461141029868884905314210065445191284191349279438255120874581543533440892307509263386936908100580544538389357091479957432582610732568139650140368870524819315759084456250132461738259560345029975530170653306655898648502998178864773752958935793334173594721130442223175642537165549983570694975762707458648586493791015836577474507807383398563659646970626664883723384827679135873527462169020798042441745031856568422917712700502826254445156093640361725845020489227784244428420183863616825630254532830518851132397340945181166128160153400594063319398415503825425289140477822523557599013500250107297266283320954001090336830499498773959556422859266178527518107938973842265481489779718162937571998493730258879086338123119997388912818496590607794387697124697972964684869941188807233004630158454971624263939006750871942530433014367620000545614337403709156019694027967435356760751669908417052014759491043589085495046646102241880105743622726516894000510052308050656252337954205760291715189737804624780752151086110200738881158736138005775828990808854115263045944621646960652859352769902817507608082136524245546578915796435606759274718880303838357582381621141497829017502415341338820393709431290083414845892847840418874773342502534340455562292403559867535698852346928465197566525424333754169717581754637388924032244850638333846333061654802512588907964671004892938879892157200163835237360751864615139908883004561527307676184821732298771558154063091617786267852135357792314392945068667719471785933225031905889795620168479420624336332425746045062853826028828450139918151810262316723065706368747211858668165807609363465172182074081037014446907269787198469801310024414371551870183560676139334029489554786957695088921295314076700795872475953400734114840633000647713208709835926122530839002762979898154397492271709005205345582795008612590725315812061582974476329823066169810505918796015066413673486734474225239463174235043809397832528986686807282358969240464345100470350304348542977492858076070262761069491913218041818373374029706886506238136731598994453461828153034595224866845030198845661274559104263319047903701295673423180778362651378650481860732444085690111362373611771787430648980345233553366445090455699751748011607929945866369302020384434306141044009587467828527265566751877785671600864916446818773704722531763796178684305107875448694616165670052149964688845223669068415155738210132711354737199273075277518415115416656810328756145436223428554935143383712163503465930716954266864895883170267121420996579150760112694985539553553289175466938481569406714239631203439178045330033517883546718442501509320459858151727991628483393774898590934839147687825905222730821230597524984438462933007797088257927002561789826244968557735884206178724836217800001073343211427036969254441843190323621315296904564635615728931003697929299470043741247412055579963854036858603386691689562231347610053746092027852844201581072534259470967317241701793112039067142756074384210737725257273706885145339442885554209119520256907465501450043055712102524041003239053582912032399748839439362423371627195733476646078318841210215412378030704517460697632185591647295683624411891238508877687228769645437816639006724926261089553509699290256706744456720867636945262246495962076034903912140441155237706808765730119862989859238686037833681871692426983535390988063989676055014241916868886202327757981229515048400062211759309863192254887697126143562300096056504160886981043794289463830388189074886496084400818342350222458548103999455610944916644806366940532533992390481913463621502096018551803233755644094073299876109711092326148117152328886319311381209792713085756566642117971987668683861244934332836562566363972085340652871926020441639862029668183302861249147615547980801962381839464477965780209134155278349887466385703057287473117001318565043771387962224600921659038568498049837604126429152328811074645691790493929209923873271605287190316247114972947559513795984609207155714014519199669195374203483360658700502414191004477522823992604116786590528714389005374086017877578423311569885442509785332644291976660195800521638594499928417550925543820234936751924411417972914928497883627483835301422863730767607360651897871653878410726287369598816126804000508146859301079304323862399582385021491316170988296256262680441932248609097742604955427251514010568828534663799008843224356611537207206887051002885170661651287895347239977986673579791580855886900643810015802812690229615581571638075983127134482169130055680006615047000343959178177160872278829242762649462757661626498529230841951088836532561875874668070555918373792096595303476958842214784325944915675908197403622035296588632124742937751899270430123070764601314551483957013423255114780315496169671835351278685508730422539357975900971979375354332479965314216269523743483297056528811988334489516241762899053128830790016741566479859233313892999722395036409353932729656512718424616451751014215481643619411533558446519702789968803184990687137314457507259381123338311921778941710142981394190355906027375092226511433684291765137836444361491380421597769362149948612350551759822709801852161095806631731446898761852964703305113288714854178522975585339199640015798917799771876225618715718280699539394315766052801350815288710839082989478330486530881539280850653500393201022186539062074768611824058499150850709810294262196018943764569365211757366298835254365785847976592135799715921909991098984113629791991880714483367708138237619375608620075969730977436109220523415006014530000981785691543226561311830787522977345789382126066852109520303358385166639570053690859775427817325695273497151404874481263474966432927926414369173497579960195195502008892398511869947750820162411574351812673723802589689595145118400051356863593273714756796326683797991033510015521285771212680387906927500855536719057937589046498078519044459498186743025603171033410501456742357868674862189970235050167896719720309582116382994606721092509046120676861117169791667592428487828275741881476658416332823092454037150275031705320165462478258244902707686965678230163108515794012095518358754928339987758538661648253500482595214692203307390757200811301811718852424794606535958032097634921685733072994134411955749311542202666649278252860934807262302034322897357963578605348688288457629998827008332729793943132140836521125636070478110729740302476358653081827595383018269698637408597402451884281569242843480370582933178504932661588083867464661072798010802486734991401095175723538465742253366247770008559068050347233852097867934954331074407252221682873258659739175919862740596408288934419393780493033479466807830921415121180633777059837113086098431359315587327845467190336236139850333247503074928205554294141515043956667589049691423158658033233315832497777514172191811799134339062217156527010589371546702714029472914887582577242682984616846861744451034001145914563662415185046046497861639550822354326727214796963843914211188914673362866249292591650236339522188463963344644340589616922658694755138922111120949072170594598145334636817000729889446575707952895999154848090912677993670759502042942331232960702902444881058896394436965363797523779394310817995894600360513824153729126069534290052250714200941019630028177003611160937345134029462037433879170913677839972775757994511563224572526915502546640479361036066129875802706289988047702913801955156107587510999144989193092866530559948155205411540115201417432134811750038306943864211410263274678117082477332563423365314824534003406716300764745849149470660507117516110600819684021879398102655865383226744011028556439858585104306228209430283748901978460886030136054989995709773991414478040855993821421264936954486531358028933997650754158394350647190671612738719901845752286273472122706140017807206188177231510343749134702247990403672795424565233411563728943842892923539450255098438592479109622414028438901361483979576380917160569173980429510366790801087505888659460674038007107835448613935117578267923802747317493088379522480312953240456129745755081420680733629408302977899440583790987800864916728217544993251294830768930051418032694462973137227191438929625798235606904841988717428444267164493567639278714395628398782775034332510614390898057039864593165817044944840622849985978278838225228927757913433294507460036106936907215446036651341668638874165537984552411719565840623064428133193121544120855828635175112456472964688845303170024204630045634036439456138655675214974429068658815722039797753913990337455549847541074763448928323310388718367527205705373078158728331578988406802424307222184346874316579493726166845770874692808517962545483315530311790538282095423105662397777267562208940517733434477314745593439838016184894265979030269458325337692362059590694713417314704270868893196876540318784077368513257940972459536658843251384154464360139087750014576853860925303289823411837814629109188158923919218224864227684651783114823991833935882274935799575149784892111850941854014411675002575207170590960429945839783986373460042325699162644546435374632791614070283792217452655642818762726938673416143122259727582877051174504505217853642951625859184459206393274644145284883698086997822487838027931100815256042057303810116823479323411829403381445518654008516958921357858753727406777657297251513114933778573804481508990239828577895649452125076850081246945824948237187684681479100154593468361037287284530992392088808226933986836077029039040746448110329036692967668694148235643188271667193173974855538194904336430307933508991643468978728298482827701130567348573879338272541229865490224043587551456458007112840803206732367409034043289012586243764763624651972756195688571888967439963894165570950661898878581705916500787824707946784543727925846651625052020958092960199783598207795855244351921342386814959169648963221730072263608064415108983159665609264561077251928562463547591859509398400692997763044997373167375241704606828571957051233916360647086105528570978805493620401325542463223832885495050860293911780704198159108310592495240279350356812968391462985537374596053184959585868435888791078189989581742655219768451535568590093639003268215116048934609655884622662112943575415065479086854246457922440524847554966378900952782108840117394248851120863978999590400273459036294053318594117051639888440524233036729901000571660225680314094946943467794983059783470074134852547558078236182737120184633271471236091036173246207757912596513598174878548742249264802410038529046426094147653154413194691940559277776912920472161257345533968451213348646662063752009235383755168321707235848717278615741149785648027767297006898024890108574749484110171980953742196696675194634010893716823291891635392569991348162795130618720672431305963105899159744986110975458599402297493614079460120782099022466855707231956477275629477301840939993004832089026065416046099910639851541713787000060499031256165500987489287480373313511445250417750671939468817077001053331839612560528532543054420537241463475796242072038428052840134466433712357587336741399129049446815616784225991022456873798247776070828065497400271123954720874904768305488866773626454446830463648150064293805426658880466742010860402488060903151518096149551168237952625091876555524115494764072031430142857126787601618285735002138696889815846147319799808431210938249405044118708269567139347734825219558773225849302098897975584720999011210624322061886502000056775550683589171979029171645027205467117439945984056545632705551672223541887822114106927920429461017545459284758997807722255850811626713648278793549857746431498139527105082514602206071736895427784551689668615533824683154711936788250907215189392058212389190223595660731180267727907982270468454249572673157328051918648782012244932691533593808839560205320854890366585577503126345357509772390411118066054816179125997751877074388201040054826513245186609325156528601957866730038957869237101760825901207953367809676031356308186713487527624035302261630611213849072653663870786043247449206026558056063701962569990766876716430116083859298879948454647056184231911136346424005561222351723191109002751495349385033676836385125373506438164299985655493965798294815509472144727711445155290258460044101609683702077254684087154445696201845394187613077089712045314106667330078958837525578279306799156107468980598840789372760541772188295215856235832321432822550776004266805843623879487539372402051013892109673380497022560521265838207312389849974399992120334167451910803479912116200849912688556809702729227787296071434068673058124724189219907568648886359786119300733964142875544120909481924345132225523336548950172136486866690127593648861148587925374193407616439218977798362532627780574221041571852649733568336757322802017277757288635815884237379194308487090663568611539602195268224575796000532168317371938853713280203809589079772154562461828809685879673115778392083789810094170322512848727038834985105198173472936757898819796005220993839557150148554709494067068813483869949188900859942172620216427505386975206155379274513358064925869674060885739203921946722046536755715912678275316947053258462751958736489697969284033412431008152599539647035708476119851042338529439777848822224255813933678219613783657961890825039967621401550500133591819788369077231362750973951141628778757949348620033995076803979888815263999808377805764354986016718597773075869142237747610337475879708381836102466314107692065829830234647849087142751292775960470251235324247602033530929512750065894272009164197541988609178910603618894737446120199129833535345510980110494192191324227447881599432592586270316043167818771053209826793698432099710810849457826964883696275276109234846562301704401934195525547000615562112813069964047635514488355793026248591521057577499015977650927331106274363915354569944242075484818321863778865171807571071984230612268319894313796254664978853511906160545832268492677314323389957541118637573480623027443498966283501532709698491814141948495248228320657129418830286638197409796407214661890625747013693061249602185746009604416604635704004447756233241008518060699589588394980458029261892702285401245906634167311024639526482831896298506297761686095783730635867100878278219006177628436110974417548420581540512060252104856686186618520444689358406161800599983607492288789344678174591784810971398421023188501099746532908081717128986320961091416361277061103698285095920979362549527819123017389775086964163558163343366265769402827946611967984320792813135435739541505090391094064100229179150669349417920647430730589697571099825462005111612784810443620500350146986407883734040275389747566820523813120184081617443756796813018347610226414098463342232146734892170626981760904948054530376384493210622224772465006861840381070354041287323526907067596019820369226743664869518581840380435566654767840823801124215698535410851433771499824872617488823545232628582356594486924726968965762655001915845637469589737240197450962894925022188205186386839339642098892270974997438722514924368423031404180539659840112074388188973418101562664491579909883273663177768292215461408052974102676256674052083867912286709128113990004463483631647907680474453220133012465051646515470454657404780764577914152195362534408398855936998964589913568687304758403484464814313691579274964189397438331329090619180978241254635790670676608294503915359475221944913844324153123199916714722288556891883432039772967065445571370218116280719116081530987995250414603810564712800038357857076356191105695687031983176869767324627631405833515518753732575631616632324577310930477268051023905996609889576275266056797339386789071851828697104316012512388338445675103142573479964761273253921925008099217883073755112101887590906060754480355612908090022899352626037582044001567066655027070812976457381907216934719681841660424359750882682574206553307107549505131137865535197019030098167252676384967256542120956388046056436277008388977185691783912255505666337015847237145525970239558050524906902273584828866047629189115576453949654631391803182169464456229335848037246102640258939923795217646429943757188580016997277950260323214437043013030476881383952686865032798847914435319807988182456673725699472587344576848311087193937538966842271402960534571587054801080417151965055633261923345672245190680553237625059160882905289784153236591724845308282707026703231896832030475724433041057084363486963118981209548644262218918380816612261274449301615853003728061003205011354182553709679532910047294850760476179874820559138352200818271440332044135689970652481117493360142099672290726043485260958796843282900230926562625739934377646734222189130272081646738027969544808332351476974852079759203355988429182172724716729771140972867926687446898394641360404229260529156710556329828954446182898005098299589876777947105140430288078679822892900963152196668167390050250643884445764990629179737816031759215543126224429831362092353364509251674273450451534128381047786288201715621780392075880463910018242304933622030275415147593972475841582946679690789557451139549691038781802823213750532449461123148518112277788920004358855186543077710339230472913765512215144332914632330087476396525386499997279717644938318335126540883331739273966825342759371381765041275883645356593745126872593823589655673352157984957342663978273935038011523257568275462379618148784816844573492103570502064469563288981633092456817176349066134620630792943838593865016108876177036537727473244187113564702778212856417376178715200749811853610734124588755681717080864926909074525914684253275283534172492466795873398949485593140706992615744183461211009316536348714678007572847290718703374307208011273075546038505211970989012326002532427979483905591143002842161060454596526523824507698763475484322204582281792102476013579056029414679880198526975342539057424901120814408738880460773032788489601717616277644802446366809219643413230484521327662970927504055309969197461603871813830233860068643701297189898339632079306182469931343009117241193683656312179240750162455548888399013284363250537463546980820026345031812920620122419268368302182373015280579808232095847752696127229494273504784587544835375401187778925616580149738243510315520706254882571122012354646657740451144191251655780065130620804335292976967807616701069186136864629189438528259516547837536919117196906390252344741648206235204088626470293795904540825738167968351776752357299593733706539665877169255888795022552211118189235906884919648467085174262904361774239229181192739704515398098187040633638132173226071247379289678879186419185517776085570855045365968791554536737700209841634244127946480015494072759845604387777643326353081840535789744537058602289433455872278061734276169701703353221931712982585745171961822508269910128401003065271753905279986381934962941742368455521358220020241284416459524640050770466370062519302443514561939686861651574409262129914978508289081421159835405029283373515939996827049781056497289504931721947623175288380582395976546641008943485904213873354490929627911849277321261153848549394473561574845232655899770525568454579829402058512022281921077870299323751254629871681589358990610327243247992821030832366225308064926960150947757458410079047425729267916966843613390844552820438813130078920811623135636388101950105717397011105315458573811437439946069736056266286712616783525338402855428948885641386832316213422237945090840057113472193320895488672588313981982162599561439284209542331130430438680868206339352025705990437873514286681794121222194868018546672657019898090877851258052571017150196345675593057765498673189655285521680393511350486823072489717843568873058143211639797865524128310947022609016317117805888111139800939975034318314486906112858788639836312836771719285848853829101157677299033132283578010665956009451284944708404738772149948480649414129877260645857038485547654487864382827542273729287283963979182983821531727398946476975482803792831960895758451218920940327431190770541665996455296505334561887418254079633460077346589127131663058680462090058345425664942757197541329607201446043829913000896517247867307090819001603120535031353046541438585280328808545119601360897734714311396906459296504402283837419516907882433298926258331036792267106202475109044055220854489911218623221119459667722691522268211320926082524952538323862310261442685314852497811756458802222956644314588060250933434281550255819821971851704761725433848064973699520482029037140645537030774321845769361051207186612930743737314469582584344673507350358500260397758043983999307258016134882472395337304199454308715893464639959622189329735154738791386083374974933901544765164719591227433335722023698651337072899605857641144804179126339589536487700428780423611775109889499487434797374926523455731706173677359030957114513065696508571153386216343780145998188050240912999767990362572190048704713046568752021195803574652645153079625566178535726655683919371790788299640788346399280262015867567766426404228393860732120907995926351736974550080899832386429799528657215724862788978732593817212278982119070897119698110187346918540797716885252478340496848629154623827335088138376779947873752326999238807704380446889914454435532971475012976092647752409898934763881942066255926414562996532124318632957776621920008831374512999299310011413945929051308134295345425252329288873168205642567056176651400555143193819830310074367022899589016238220201180709456942554222011943297492613592819575089183615487359870828529267180975711144833610446498500930243230518520185727947962936236960909048895468168490042094212926890074121467578151690607734084070426959843690281149625576049160936774523758912589484701780057206623162886544919389787763314079390622408745958938981064300685005751541495904453163431641788285962773505078328570367671122909949030336139450929586215445231282941231534841460545854975765568901998293894157676355125633879509872667696699237740300563963570795714415900527881576224286981893295660309912781877959049588271241562751766540847827582413707386805170418785192108657245087555450551827379947071633528270581730123116237992661435350596756523727376710667573503635290687939166216054820132663590217542315732321001578387972459549877171946060442120137221321945937763532636462495154804059394870332250445966983144367855441240288161825685413923552672920261916308046717525325289799690922104376837389475345151699410085939582757616950603313845910295105329573264388116377754170240507551914314762891702338551888557360199906881486409603301220144114362656744541165165038444312871465766870640627048693911814009483438224203433898639906115264975459869026227302344886183095350091234496220425203275535741922704644954969432851766151883276210763359525761811050744469553317186895970788177622555732210825854443831232790976621753828838485056563028827121153548999649474679894154634965167967781190810635715863426694946062991366353324972777153850425713730569907491799142135811802528831351884235834301172345911644143656160408374050889456802041442915530229358457851469538729866292836266316727572057916537770493168116558532353525505295956923426751564147185829986374196769847312884267239494104236537325873772731937156663908113102210350818232341472135031533194030052925255569804211936070846108705596832656194901434245981749388112555467367536175123839923566843927518780608435787120568240622777616229893678344935598876442804527871040963869862821754871351370380500658998472071999526785737533875159916451294255637399922022089720208390729511277894646971713967344640016783497386796860767754013275358772275758145622520362205867015479621387039676184261713975168029508491238005556676525811379220371840587040231631871256733641944822703110265780341609618594385824201170155531649790656485112806363246843163907992076787859335346626996713986875117265642989915033040812416518961030232552368569117585973945455224959426193770284625162138707843887032398972891605014479907260803579756232857184781450594883539581236481240896441025453205965514312428183316970024403987469927737004214531647024145377434664114177456202122187868686434188891894491925037573819367533614280626906970887023297094191291091354936280631966368663679435072504951230766582009064156549200581172212120035048631884758769308956057525537357062716175050491736424358372555783014329484892316428527362794126650294352075069989231829253347858125876651296885060999599360299808529761350994389350124091203493379608734858707758679343858642049056629188574929837782918435646081578779758162805743465882732828078402830006162236373616721237713720132412563660907582710463377177725830182510374313945506582858258537249091800225249407701545386950066422919972400070994250756944210413195884027785266217095738651972757284451281475218142588893978685495736504675055199585523402767032704825071552071065074995628769693083345064955170854410521251692491888598700517480677878903649395560410236577601947198648572939456924765982260695702481977303509731924620668611531422098175307185879450811628026818759717780231735881141978485095343484908681995770208348728020943410434384938734388961786488080987163549798632302764630288252304066332294538017520360734096852760338273346712859053196275679051751894388160213384251451268863286196611953270005361837199183619911045498659751166503266667387087567773298159583447842327081816746452043743922127255890707151226045625158830675519177141474810063437948595391822653195791010742686084057967528409016219718714185236967570740542334103491788417406888956485425249765688115427900845682721195041265208343316996697144473283615641587037827820461599288621542397622764648587374545271934461600733393499384375601103754749096567431737584812483695682321127613595411612485946405185893603098298367990106097061255314702945923336269446837361445614788460899875836414823454409549149264075156516200377830353108223741218482297859062961168423370741753325768385165136043818815563707153265360048461687828224648734047679958837674872688259375013490913571156372799096437676392536436778056007925167605614464278063885992579056321549334692276138956809324345275583876999050686672182557434249982599477926940158671647194105109953779838998012822109097068138695632146171928648956302696063807501207189554541148300828410378533384852594960225920190656417972810046184575147071731027048027417442909674886129736973091789323929506531843431703598468145573726173157584363578054461933322288790890765554295130462742821946804273165632280890767958999607913437882929195318078107226248460425854587133687285427028251728432662453458882457397922066066683932113231826955606494150542160670881857689917444405360536623150877243704707332098516132296788138991426660952543037592335057383677868224258959709028351005005784788205148813067269704254871494099910364686724417848813848312007136167878592660627322547055656004194957802586696061119871156160996582938393375451479569017840760355913348440145787210699540490214659772481532796688106792911898736045670187175311572588357165399214625493813589321576342271628149848992596717316632211922967164354399438597348431590603636942129761670011898103967422791488710059456870234407962786026962174212266981844455742647414566504726968404493981482617077914144614321278547954945002467182413242624239607325932023122673126382851243103237088574941110831705799689869319677616867215082173405479404676677103889351860692414361787479432441892280991519698707524590027249602452798766094596695637447749719692862681643595845382186631527740418594496563023746298324311986762918634009691352540264848735408449257602333690964868004916170472211187473100873766495923194118629887728031667672806275482409493723781894611475188230336436513456165045488649297368504382940067258015671039964630852526434610603081035018754665113475066396773687602165125402645873366461124765878004641538776133279525527068360459502061032614716969895849297084254225529571379641858839412868102038305080482338232093497071175042654216265790081894355118351540293642063585035321334310089251205038831628262409856882347965479359007551423822693646769843654182616354687635197722770446890847006812283684834870575638615470385895698963484794972907817919095063781945085217870149782837919497468839006216987395269605424717620095169038093343285245468984492305230049278529121320049480361159312857774280917871911026437786093881936266999461274689667097547885174684187485721697761872914676053380678991730646436825377954046574541518890489100922796756020667520787653889772050011248355040344010400395027130939206119232435941835989700366242337674400107120172100523187713801949522725750824345612994508755512114270645988146134658878502328836378012660172616796170293851185264250937159261941226039004621425559040405022065483366150673474738584540217390572227923918716721986859770514140194816076324327936684033489841096838583858819530560591363145576756657329883745135390574575870807497490729360303581400750750848522266637470313526095350846840289864967255612132336478425506893387875341626231719857257783438346729387928461230503793404213099778153603724630383598269156609878984158008099133895650242952697584439961742362657819890302581646359648472565524025309812575611417411876393702933720754514224359163382306424092263403336976210663329755655817674888154959174233974198726867638741598896295653788244229096167010267181323604125774269657384283842470928317574066512496587267135003850109060611838707624327766654732813081427233682597616715545656917033076970425941840773802322500697991001050103179563023491847213182937301479596284959395580377082251465988868067179377741106623556528964481408365247780948298969453162154305030269035459586320797806193071239118339878298888858816963616423360747913220866626368150849475918248433775582033364342973008516642241549701092311095497958304784935892799793798263863654866003779735115071122300822894262356092523739851820929523060532899383785085439264400945578732303770255283495511027843165774747797800586517834419798763694853512936871246376591370127403005018226989167235248416685475435557298652373037301684151540310188541170707546306266756677311308157345316543434433847609528855836849392632848312204910702350662109121298521211732505765303249446060840997677117436192589212511123203056902388644926536880335066558754598320285402874741200213003377876106568282540306657349472116498496662745459503194989239003930930225555450140525660825281729506515079772702240487320463283924703132289201338792680698054864541533213705887837030861133728466592554666815239676260754606809607909805721366858425688917792799143848620750119155173631600013541948105369640070435837209665906031526070726735177035480414456528250812364007046157971894233659828515917241021934214493877701638451768257271528261603077744988946728616306192384891652768604831144295460774426520829393264978261428270964688844240004458618863882410035094110465581451262744148952940429976205045665368203641148200124436111077722337686054057538742786193496543412967364372682643265912243346121430493602208330895599218983339685792123107512738300494469470451906294121568949370868289926157410956898241900825184300066260961548346892477111962526065726507617697568745879443536318563178784742279612535631555462426580444650665509263850907176710761520831995866351216427942679367886446653978975881926451209277935989397784080872330700954176431480974051208612894971439280959639325774374765634320290294524261481399630974384288747346754307740148542429664056423011494510753307969617287363194259838761151350457868444180801979471671183531596493257284581039154474307917504370462950532547962027579814489484805931286316599536880588117910569032353889669541709694950738859399263510559734880958291150268215736833625749881452818273003622513639495722709450365891288597458055318098388455336219774328006924114128179271214336176669217830366573634768792817534069017828079788649927036726343680540308211781028065065972302761137716262393656400716932464944248372887770426942043439047106414956961318438191361941987799355152512138102900776370662443066612572135563855964529540125707439917552588602297601237764128300116761597775111949034503973143734970594484220044859369287762571177736477636726921253026842875520961706471843222178567699098668667984293420523732049476104331218491298316912773151273868378917630439342930233008071293421314178578487140109176804245396122905195135023721003812895940838110182831454965597199377856349978825089784208236249507517249751118068573432974280252406626407789329881800419334858009134592610182965306969342076228525699565873618412171433396242865381870658881539634276403569645720497012168862539790935928187120524907807794105122352503758611927291875388316399131032495450851673375070630747710843520113950065765428769328220214747875729902687454962519245252296138289757311256294578385543457973851029151669705459412746283278930882977170866955607450736209713887540848471241671101588629825415618608390499626890216078260670121537194290778762461625491950157318975950225503462409597462636619046882618417019650401144228306057876596900889116207171967298579834073384137246062660856850689763510991178802375250608350065766136320001003107521717118753853567086338844360643205793213896061950662286705749699847766262185728641310298422627947588057132256107539141488866268491781890213526872016722700658288098433235591050119909383675948653190937472398315140162445949676324742830665734327956531368856838563535612190967871306098995786196280672372472653996976067092012275314234573330298576461781682666294765388755662187954490166812505655904023183971909538684375277351355778164377870699638784468030673895861161759123117221658732839794839536280663565855884019921522579925476451069354166161085303401164613016437431575698412298511014283997744324590833987279219242572892433081937975107871193668552795430392084070087309849136524014263259006383742854688419845563080019848613930214496946367233789272764525057097229451491968554373078100485027432611546741384752742301323925033716541189547183966095231381670673066401874565495903544181832580011459599219186425812330126568337315098751982340573560540958153695533325378242932473452072698216287560415455767005219234785006926082946333921567389360152422850998166127440106328926629109902670709318882995741964932278993382884213088905787635193094744575483151292083501131595885395955129800687435715470883840476356884074199833822565442539405693251905711502891518807981209535167557479891221309186969541268030556233573093909817895443918956293135950849825634232048914813007607168043114343203902061340102452705615594401191749030489735505604398595459971162335517570776400714545722583220301919126289186188600319993761995047273693456984987697407156312305783066903324490898361459072023879190646056707129221208997781020183005888840314053783153673817437982830064457419322214362259253718713009139348283622886645052509156787887276257865558073954817395080326520363703313200913767200409009897068152565023999201511717141609395699456012772491702472180267224107932458419042237900789690518250067578350938873407769485075103366657139643558393920580878242340275685496450695760971885668434327884370214543111265628066256263058675754524978669068185654644356495908420291524946336248255793890280970676767811862631952276712143482846669579064792952726923068958232935277935368699438364790915457908310306547928236274949058338541812848774135786542825854565921042869384867788377748345789614965362604058785650225440428012005300916616738883484641238194030814607440981009888630773680362181894427423285147845431962914461932458491640178262475393099359307744256030890298431395416262166320319830398541344266448704733107403176270671088210288145551210374467465839909721938132144109156958788920301224464508039609236820390820884236343578934507255139478704067852851244604489675209734595140398141458528662599439401981216204464124017203260397088176916190077042434534735521882664689287394062546126764718534069881328607876600294228179817293839662119121801620424018299603933630503738537117723025196986209512044263273327410703708004065106497870560878123203253806307009953660719062295913878230392426754144006262645458196517702515935034609361139464433906660024223984023369036519301596948873523905251370614388595171255950071886852140616428925857947226998125947753348269786398304754996984384502576041756257101167392682902146134572509012398101468598888739999844633042046007144968327259302263181261275916674574965935558699955466724246456590388186054877339284924802218868376501787451183431710953599314142662652312160619392383447455622986409172556919562435124455344563706778863364946976557501026468810120573790580400131989559160127662940619542192085059945461836521706704953369516809355119088594651850744215284097435507748560419136592627357771665100294397724795594593783785043603736949267677954176769760761273420138222965165735945584882403299515322152582567766369405146329236854655804766516006374884305359831822871518344220263975809144986216135701123322936857021075956596715848632636053721597915500851681699943780974067467743450093268044035286975237451235544432143184773570951151272169948731458385561308294190164986668796929215607055133463927756414053923452004513560280937895629186860033287530589995672738947663762563977569242557931767760094933694228731135882781532236422664556464692332468088632795372938704304159085070728844642129414930848780326424385918790729646796691092300582294722939677605867357520692206477128918105006442709234230070854121193952015881539035946852963074542322750458806380643933373413002964685891655222587169972457026466803341616241929461203212577990265501368384074480117716088031719038908319372359210799124751113284305108182818929758936398777247373544670777649160607407158650466319118959844584659745587575434656889822871704509230056190302194841855557521349526503875736471518192052912334968703133247873324800104978143136902247497507238788665439582125390204789581643148222731892825125732834574442754817989286872671500610688777247393151289221860076193016625699248209635047148477018131048053885464870723562944472859759031920947771069738469536290943062438495861062087838902335790364852609433513921532130342315386265407902103656759709544419722924905626808825149751150583348418344164170927806427016823030193241898721230833106084161055441070031261245088489905845429674388971881410591057323243991507516965525698418976971070258351964439920712188116390698062879984477613784047184095266414995557338780427643495344792720368908700107480162978796345249945190945892562459288280368502158751022713675596673986481484280868229263659663165734130487800164371987502798884685865515823668893349757837030389153816735686433307200954892439807684783641882486984592587990467800188722100399697527012075549257885558832350872736731004357667665399097210575021929824726550124139259693078417623349061826046293236412150566422564267988435013623749593875978952472134050206072034596629074005462750252435374564401099985971277718682476013239307515148213205321763988545835074791557080774072639768235392689917366191365304705437517518223173022908224495446225520951657221133096824063787771093790776522509951026933131588276477605713922194336962181691872574643999925796294070779816726641173445612335175468442783790545086383023233812562813385442397505813389364149483108104996889069109116062629389266475229052030467488774334839306169631042740370468683679245745801943988931905479916413381233727628638598515099039598434114324138060385204514047635972264243964727668049816087674065243610738387054834559303819391969177971367124465338878367958585178112175907776330803229717134298815973471540612596163581675082771322315336696339269371423291845295514895413132796271566542022791413228181658888526536650714821752010248858150941972252883760935794133061151862833926403249823215955539983847607964594694411110216989526694685561148808824547095102745767596933346203559094521333043337910807860222321824859809402193910279866036944118106262373329310242671412310612731100869808719183309232805662285523365031028732293047193321262471295372403612643291795604767803967518070546968106932100743571800503959808320187716724473985048749823153520196440702298022795557399227369853039932305054542330095228286858513743186633274729031803912155497733882093360682147533625716935230715512282763961309887907297524208459702875270537204702813730777527849975220271389790872347623131091587205576773364816869033028764823498262825858287597997514539618576331138006073893605715574908213843269516857321853679477591581485069744499866644320002447489068157215041741864972996532728678901344665824448141985955208516442207601490980920707551557820797238558656473694587858231455404702537644786493109411741300592547348637609562043802194422979016134865604550371499307522354266641467289913211132972550822698284359072732923291097157598552752752430134345603716037859190140399236284546814347298926220542624998258594149208361914832032495269692695891787119252126793442299034485225447497880286155024555075649551814485191305071678750433370830987674666385051439947565160258712630573385069274637653747346520521388321385092061070091716224296563188245605163966675306082306779446878469011220806539058816272394214986904454422984153124614013576842731993721801682390117892290866174531505376379846743535183307519535840188621188545859904926942695014766654840128210371588908228817318031354096952643708539436596508394274014921303384592633095730772745513430547878284143272404466825769301169083544796260130380795114227644139779291969284865778619249625164492985328390654522991488953602169212486687005513545670251392925912508468288446673429370388864233592348738638103165501121069575473644066478373951909212223752464868482870357183879578584682905686472130790780852579289546950606014836142053995561123576216432449009706141187614146568680602033832795508934701053750992428646011008634829534552179701036450143221314953910215224554386833804797292740217861435370170761134848661749111963100783399376135037752249138591189617157579616413685020469057212425115564734077798982283869366111213669883957294442227333746515651556212916257926681441298054376264939059122784210021743898193035150211410893580562212519293260902688845337257965332964528709067073560946212468217581659708130433671406797918817226016846938164406430484220656681256598955964321874898887293931838534544448609270661226513526240001960464832018187096265035115252965528135248266624663685811156566473475415920108335337330954104522973041845170592231902363186114934914645887187897315829400756690712324603818973204154691635137189251544500894920957432118777770849517826247803917454426085310205902535062127288823671765813698297658781944698362553647736880612430538236420684231348346601600423793783545968608771316316523643328030172541793210597625151040361515757530296554176563922337672211483378634691222374923617815694778385857510391244997389681141001214981151117641684148528232571048686825251890500214573468506360996092509523131354553434450864560491938734671820768966532775818839936194504034150085492594542711183901149907317128948473820585723798373229417993486549673031465486533403417112948808691162260916703929260451652758748953278774336157635063678127954415085656133834351162246681444300618692133759112814089684277683123541222849946311977494268720091009150449096471474759940163348503945126841530684079318239889722421909299606677001503599737331804880824405574723131537909421094953548921348176368839876445306269831696051180118334397315063581125134231789998956390646721065563649914115510265949807682386997652602924480360403943629677086701344317116024629773281025652192322495413045903232393125607861172424281081484807661941555057388829283709576549457624840940216221755317809319018775477770053116112939290297882102844861454262731279611045224730898722802268214018442138090342591031104389522973974568133801252562350385841464222450974528975400170336454151956224806217411928559341529022375021957193192949992507003478120583154632794055214008172304481114027828197775571936243718512506356283678854162461902151707709195319140134011341641995079931794201818677059291309809218919089554195150574756650517520819030893561455653278715494127435986310923177670456624128225532202013492596517337571467985741717869162963424574141752704775377375764658646500005059141570371909514675484830981316196265740328547440632019872258189658825666828514034270815464145776348528005592536471528253764395211492410456661067768228857428891890424709865340290283128923131724371659282088403212797588031651013675711958208793987387491248778575943984381771620425233101699675969823821455658617741864089518280770504316297921811496124144544845475440300948678773680959635113790972147952439939342511941811381039268322555147461874924917328948737216661951824874688667921474565018044961845313995340705553865541344707784669950074612178174032372625944314238587139609563319124070928663168712959695429248908193565173821365986582787718025449806324793123994497142426324387711148480914454495922364462579623776998810544894516256600997948391689651697032715919160348704063408747797900842683013505113715729367960529579931185703271908698004328553685605596022395382667847424500457169284078180694047236599550407757011431900189230409572732023258249791157225459099000818284029409321789417608117689199892690263059736019716287867692824194417138403876941674674457877128125568438893945905962392608901243623397035299503172122058523616083093016573262057004540291365096306410499402094645560360441070571964953118789327330711509394756232399891392706008509985962124530757525759637031467728722922251126557279396015157758271671340343243875445490231228790614435191928551606125518093346972452555654773541557212617097528655645688791797483227175584141566578263056090336331375951512856067585051824724016030608490418293684202940763183734389035629949847395520336361324435713141957087527053358940257547042284812062127798696767119922959899080790292336202967950077968530826627403404014900250480775741910283209280825242587408083612091023635504076631205509599774962160406670073751681246466224118313561224661482062838961412276250788731195628213774747932156246394704699350224250502156656512362736928278013456826498628609737739410812246319815272917023754039496445722925322127943968936481994464011175367479619462800783489809835222836320280829935574390044078904069735832347836708373737622580114901181009900089207251122036752795791702691197466099334518489481954732063711905072146431749174226658225102313994463191066892352220574333855213492002838868801249988638993585362962349696226524814800584212192864337178838218971749380870792465545782465160094270348307826848999644376557726882502712061080988453459322399130351429053001191607285053682493861263843889972781092400194167295338625747969209732001803118593490142597816172135302184769355430921717824448238467376190479480253891980818234576166269901852257297820245519586077832638410641628895826273476310047866105710949325104981165724844064218160108757953710694544717565024249653996534087620125361872672099100210255425107037237194820089049814310433568507051460440537095787506954550167725370530023309364762972940135906403754354762097807876766594802912130575172018602097492106795658593328403386699011231877483845427100248597431915786821289631716300945109457438375874177598647255338914976821077147133567943805155481662266212927055196012427350319039361875063846588701247065899459791424119383761027310301635106523441143600371433327077563022209614406083765380898124408808681008653047786706666991683735444914326796483997103084915888781550083349175393381719422508963331224711417553734747908058291505591859699852769293958650051879933854658676026405304588492373626809453498733007167237586831273797216987113120049815487413208486517854791476694527328275323556206566510412728777600744836095718467203268052554560144620437372908086499489321305067720435862354925216002871888225094109526470923241845685491599553786265307074742281364906781120567331521163636356356584392230577701077948832839993288825829554442190003421418880809699186303737690106042781368427897785596795401658967887489424390879489932953454061862898710263348662423688280629530485045379891267396653898629092170183078564008860467219850953390963636104442136777968195113728274013375170826203191620265954994855516073863650788717384670159237999029701741269683056341449479866304390876385685453488190251494076806615966914819908233456571419673767312908378497909206783485555692208453770456494879319635706128825524540425584668483505430478816575426598158050187183305407570503831384207699256253989842974258430909724739316260498355138825946043883697654565955073165579597273174195449095485207012534803959893801158130652345244561488754506541084396691743774350527060077946527680850926375670815725327119016538775989924151842810150711541157629436514582028045418010751293090699061142856235442916947665577503660514458271031589012095037833020452209988426138549009123972641127561003186198559717279225509003216087308267370883848843271887705744808581429030869778431316609031117335193543205423547971402018657726529597428890556704728034750653527244323122383834360898367694527445673085404323413508471475855119217816911387933782917167499661906338548381922898223086441822625405428083296191774853774883577001951467695554548109460453545655033152674415748804516749955698162837054571561512862449270286769113207703589466372409838990683339078964357255123022602564456999708018452878459238741567729635788009414263677257102565485212980351267348244951961114187669159289549443204309611397675309324221968729494044710400510390645157804308461785308465390453947036955341703083027387801280512286934107746569798220608582549142319240076670801776907290617752389765427396289742907442586054130004484203122332181374118688724865685025277229396473851886583251194530082684767673488042632252525151112611534089575568203415621667932164741672633934611401846081899006088646004129699246336935683082412140607398797994829469184194383126273161006365815543012952318830517534893261130824541187403852470238743812682692606626469842958665075265258480802379785661407085575177229104609799423416301272933895113088370762412385198477614540673764749024458645318865508193797635782700257820853810229659579891000164798987508267592299690941634685962595191718033060269472437929866754754516032861696227849557112762252695649320565820584217243155076290107664797793413323890111024746705216598712293212633522964030892951188237837875252436833623009203403237312520108770530212856485357682368179957147551104134604022617027182081938556335210133642497078792350083601421704820959037579995609072019850181520459913300935188405552094678898665989542990203385972586636338434861058585488312397271260360678115907409536543548228277210402682684285869371285923466220642205892130558420133890510596045614341425182516667949335394400580213201004813243114573698479008610883955803682436990696773252638167289728874365912708394194335128391123424833342029088467424109447781819644064667041410004511743504949599551101621298302792012961955434615544547453948798422001597844969749959710440610801797068972218044037222167198255767086084308609573664211284959514408419507682990313773372804920287183291076799468389961503808218902196755210491266136353599723419473487828919697191872478668973193752857287978807310638104413322150953278736345576389168466971763460705456574954968775938720884773975682979941680536085619454777737221371648822042891005712665700811902249609678397298494036457607048754926025232688332152971196154977694605921718101786622944238043874140292512506342973313217881955442452127952565476447095661473202124399931157836439392565633523814582651484485145732679565722004357824390641614957687957392887341636887223601398227997110063223087035885371920611140459947498316137185403634096205115510150807663869105599671001066182611661017335108541916140658421748312670501363764675896043785044219157252646336018741708906697870193316039146138878890367710283460552569847393179441329795622508240660628071445097335854000033876207074308052799607943760028420112952550827629925856893707537342374237041778514113477336139968923712094495292568184223503402386491317063883273692646351707890030615774418930199842404975005355679159121292739736535289875682731490898516326200302025226022876573949767260642404785136793349502228231633872593604871768457149392637862904803381047777980751251640702292338403480763310765725241709347427448814698496684752699935469477572687471730710137368521602921290082842324439634618443139881333438408048181993110975191707091262727490640755286918537632966251370953592300514760166775623465215209979392443787928069655296750177980571713785837075294846288428890648536988034732475125731857679249893390867137622897457122881022113793014211997790666415957484998720156685614120992649362656004575165087253490081699813509339252055209132051481312804518979635567740350364757542577571961606533656242920586097322688703180952409231620565267547952094209020467386148008610186234668653143282490964520512342013050798795109464285701742525462340501663828339030111626483820970021864458168807149035825456588126143945597942691494154007670024816062065660158370525908069072860397477946859106294238791272925954456797511197615538780945909880012941144483871940377223984788876576325470875642842315338932169003851716270918737844892661308428275661346788714941392660670515306845440064241807157292051070700547924076687760174049056805840121585345997091624271230392043249279159778542188421823677450645841370679827649166955824481834601131112634027253167386163529023200673926001679694152933958161231640712069494468516861485658320975956893597272152059113016383644129565319753701672395720747922024229843433698827979878814153250660705612664886475545182681850094027746088823140711352000256349990075815342827759829789682900522904148437391190770430498104235459926503524013550402899614344015657297657844656446653988630747669712692508592117167229732189242173913196171756093351939565181455985953326502639587943433153120861262516329556718875583303994529546915886724676054742905391703064383960911081112388926698111902874805820225148049636548502727552112413595694509807210325509161067252584865857761882292779856399344265416540921517841727194234527701831533421110135935537566887196391837213831346536505751682570957515090620382359976373498706243433809186769147009994869827552319485201650614889877841606236019228610733609743974879470465103977838295247832240058462450240802929725051813767563217390757526247956945583402248097087501574644635311604691998282611205463806520229229090466703368025159111548919875678908457643049162865115266043216881963224091710395299896908667478704222573231436002295627795559965607451950157282490130292620571057928793292941071219342940003045785374493838932523980880714290476245032278072012330020642744193262686327951538396692155130406152898911245393090200127915159752017189945211040599993512216801115813395600444397829540061702783526288783723291162680548456822158413628089640166303010321501641038206955123869056628983406968243657956760627531554257854423796069822766486488184402953919418785549107393703291610739994154322526673355688772300991542878211093098423868211039259805169206271487163994054977449475616615697602013375043285322852481181024152995309454404553741880297721055204229875972627316660799654788322527300638673347118990349385015565868206669075713198471337825628538263275923372120587716153170008436460295725529605481929730747897100731281626335631731777224966545433402805684862349374449321840104455880869391194705266206824816926214578714748410262857472907572034947597470207137694126638291648723535238262608488167144994555959711314352540635675828520684219938677348457149484885235491625371475686718575161021765633618699471092249953419415712492517075601635008546114625952640538243062726942568292999882579798709235556173544904236153609510964333445121564833093515130295888695250463567536773708550288734310199822646619536972387009376846852501432617518169222941657556780784364986405697657545288275135434115587955459801943033437880916311141222940325146480464660598797974726191363098385050248208566863923047212186743020702949067122565563594100559916811836052558295785448141181692700764248668702844761558928937332023340417355644169383147814568966003293617983021515824672195462188791976281907398151004524635590147727603210311021947137421288330124919829492835027176703005744759848639093950222393327832103968848861149283720325728720942301922845340511960458610451329964398813944413266347992030310386776479644716053101886182180546137544722264259874257125758505481973273974101221085457723885989657330891296355979078168783842398708411122581906374537963917943614412614976769793781073885406252617973397270775694981807302284688812940112195141686159518853612951008969708253377673903654779696116601194708020359160886279612461748869978016963004824612316951798174746590170092086672812940362640665380827474150186686491329236705738766340601395297490734900330188951620301471138881281938710561287337591365833268362137195725678124969356042629592067162371973408021045900880774121460674526361474121353417111168551117188446824012159670149290394320183900143595963952120789501003271133350613492554891330918985325554612345613043360460572748492142683531427405181517528070207082752170557523181721111928417338839578463407881749525652650045845136301761995768854210920637306186896774993326543499197088625486958324046012636371086699685557949812152206568375670173512343755769070424324045831797615866468552123297208047472530699032966854123690728890181238379576290698617961533615832084869823322768722763588679829057651516385427099275210608755168937816650666102934349309372534442960879144579821194383437114462179610685572023638901677643782001746857399804893130137952100366514279169401546000733129130360996380664962838160970630060217363392307978631294366468715124958932383237228509092562324136115803716911813372996682851528044401507882145478675170564296459272895451199255545415321571805554270831417819083747666288094607935717510870552340005763725704747692691144771053961985684400940081487069196129500173921024583388419504531964142468368498134442207654065655363605142088505969796236800892427682003228074953695473909423868916169990529100987875801654511290354234773395403240758493617030235062063039581697025257372203381016149806565328387866904315573969837532321939672223011719002157262738718481024830629511058961573660941108007410299539025357338532759515605992432106262892676178362242765901212819418108636915176361393251051743835889841968769790002064966251800468948163673881080093743649929531289353771674985482094640482161139348381226980429511699769943942343501952128634400430412562586216926303392733023094841576943372257104933296798942184278816726257093705537597026886918112183364141920618502636238455622739376870632659791012849321379062881541955542909091065547595299008088038559248485857614239782683725765724059327335766000902049387465711192867989199893606904734681597659650369934259030820182917348376107419802541639964219598274678284553877842802513284433808227677118861658633553163811583340385064183694769004058122032493302312179028559876324854463931530303966656966835537159147963230400661917711113385646084915403345112280349809044164795321083565090208299980891024421904914612907988206192380775565035159669733544052259418610294289597705837020149231601372473724995342805016331527945238606823280887329352121116350331511251133022630405857440379069258870595438313720026007956160501702918157583673742898705083067231881360942692410016863065515860399836783488075468830999501193141520861450349269472679990082409434930676937720569222025679731929118277175257897955905839044533695574833726932868631823455805061243026942846407191621586047922007420278188353443411346682953652402732497151920657457863428896084787492917106830064332991964126629203470790971919098367636623632519581863425197045457172331347140752431928595403260062605861087087096183896774366288494245156769873639721280506554691081200833134737717615097703874890638142270433281595864028405182893831541186682715629366940515698705581501939046102065118576495858611928826505678111009630196461681891091802070623367287770322359029976259315239055984295402344695074064687876174418317640442186895206179367932347415327152047650149685495482118214376619290761812029631442419442434503980956465151074037690392579841165769186401912087940339451501240678571821947831611649136408081618048903646669007843551431009593336690171005603926004060980746491948089175376666877219645997134866886748898575800480967304768187282950622693968313793811705043440459457626624758431067647622078812354416022036154540764371985450234313660247128283278633468214182037047187303627380612302456770636759122906374580346524002145719866456161553952061409363104865534585338144506845766180214843979228445559540753622317321586078181888703100032065931582399017519363985336405281695414740566952864346756250769014364905692419318813304834537942138629346415883091978813431844232883907561959204237735825957381027477317119537448703224566808075388303962512970553737396228817909845346876162505208475830241240153413129215241633437563673261253751648705977639784311072562939634997456891283538889519622069242166025334126079252093130017183834730184456796933863990149258685969964708244780122467595145702352100646177766586001101607114590066758405315451261171162110126724709753602549815811408193394581019307508891764050725688418843612382233662607019523863495641607692840322289234561535060715973673145474402896107523767269052293061057450476627910596205377760291966153216660855418709996699978108585639126041158677216007352082867839884851424308276372491604391593307394143339749444961734289015312648082988368971773193365666566250097811220807968788229574258598659030278454863703947373065065952870571208767880908093159979594294491610979349910149713108351932696500115228737756541096278597229700380153130953326081021756477653862531038708924520389617216553971927909342468095690859881769815038811658800082257455375512895864973657013093891268514432848548792789380352790298279137962052227765719366507149140791641327157258854743260616031961191523273775989617724198511891681264912247167923045373996710373324328510420113174904400028945663593838748782701821885342672594067774387109472837491584212134610215224092444996777902124210870887575925297514763868233892692718982775590420226589520724970161304629452775849414462270983517522947095008203334822840246541019099984775313137614138989858846073227100334902746151013425701580628714154220523010011146836579073154380581913658935008674802908202492824152141700071265216397685888210951561451839519412537211136563859949197284985874794910897431414634740282007309784427865944113632793283453598955071017878572337901774137732232008303489095604999540052832852790709702101190272473362735022900368910923512357932093241319750207366088941890450162166391241130848359739166699591945477872261009265784133166858845942506964741097881137526300903547590328193227169696167341903941410589645049323104139115347875850188259509977146978715604775429659254404007076786358022159123748569681670187526791542217807603353423433834763398438459162753301546876577299504658335139400056715466359316963942602949634740735227500092805013413317354236287908624945870731490302098806211127913942059081219487219452275003007650233512646860124993149608783471573572193678542869014273097622385187073671902600212307987143122531909018383930033617231692732334376711261654986100242565276760847727218399621346601857051997601732503425352687017082379257486232258596339926636243022516293230983062469896381975855844443231233170552646151837382252080130686489464328774856374293004317359781074231191548062715892990244281455264272575580181469332198605016912762704804541070881453072630294583787847709238095710429940808811178258148123559285721256721087477526920342020633927585508770081130013773101400172402596727501373259565470663506186386406412542915832608588767651514650664260069135862843433588948952385105167542801975091479920896114957164890843087858147503212494129188603254683655429753153107580260987375185113170536349958369294977691607205332606616365157697490657342076086115186090349182673714820342423091347838320184857745624320943262328994434217653243624920346188287882907915348281115077398150786222773795306268823175092759166183536878344366259104446821238316510589862518287624158322657660645213607854891749184034378234161933111232569669174806320200906991059018426453154555875975745757923540695585133604045170530464996931617993217184795574095135778299639415318600974637228334219507003946467590059912451480757419824566323906064059274967326410456876495459616021991281986446069127556681862556655511577718575066092032010390988073299222186001450997492111201413194846120394649084447996391881610079784966718887321181811055987758982176547163992497107293514288983452031949350148488541625280383109462330189952413973971000161303590150249329651417229287922654176465979794570372823562268722557994215305125955399256897175301989632567605447222807574205485915663287824593556155267955858123418268287589956696758260336782688497705043422697759120141361008642232533476045405545645361448066998363991174527046373092615963981812548916697427590425018740928875865588646229781869677156685903598978667933679493695437417555100295303400011576985098914483132782289104525282333513074781652502497975856150587431332361303866027001860925378661884635277665028266587606165359583959366779782417326627156954546008567467057727132969218311823631012693401198335138274588267338477007306042699579679672789218106186471508706712990413750311848037485185150352149124354739916806615022531993545933068217080334080793714922609540280497639044296549134486972446972560042855280114898715497821135882985149868430561441638265652805146215353515129059861326075941668313303699158413015716055125613719477477056747323778478808110679991136273828897330294645003117743028970902120062827664813397449694017307234497874754249953815548499055179131243638632369257142759913440707586286978721044935988834390376432392897854728973306069840613992400181796741398359954864070625180810514555762406166744075016535804942171241900255994232452275888587503231985291120905691179555335394183438972137961051218980249130062026987349951808862169236625848021091380060087819047225769048078767706344842011681948389687012815774317298474813934071815588486495090983244160375929426092854437632114646583804950524738220644400860891388723266924420611793644239290471697733700457379568576661837542654796427983704363707382216511884608477638378081308511826679834471863372057578682196750433742811502366115910686394608986054679322178736254923867552070869358426584842710936037170893074442574147665920781347039565614106097499795867975889809049892946678386375406189155017409199071537695739755181930471352859470681988247700851324884015162228263010324856668442626659659214465451575950447025325482390478351274449932947104407743113378191552499591816720019401498282121783204001192275351096414533199936935968336751758681125704640502316016561493469540978913130461860023620703062579652592824117780544850728162524122618383113498668978660285365770381434673833931234180715620113990546985035744051166726980608817123324648008121568871453582580261838654135290920366765811247297748433455118473677497715442690460335180554892942978588626703786277845652887041840486874733026345725577899628621408127075663219549005152707134111786614303800336112996635543961604188625106228682885537016926931822766112460871547096773380105022826552305812358693401995033769845806515832662184933917496671385997689024741208861908894125737018348094154482320555108823543869099295108186038050435861857581211285025194951503902536080360861062723134405537780532121998724753493642922369795688052339327153270808067798039394683922311712975000012132456735211880888983042095775344036642402637029308578074825813309261436196020166335592428432887895631135485212364077781032386445061543873469109534505008250219060670887593934470970133367270841537835994829087152645810596695702567760924346595441724111110476031889189914485448506357334366599153623951310955058705328808541941274786445391345851232615792381440131020240629058142721958720824443105043351043454738418741670856921917714711824472702146638853118650062068789266311445615694853387500758214064727904894001133803040181916318308128298265270063595421452687242658651310663301518039695047154026273063650328629111831586862680133829378216647267717660256462583733390772394204482998973249098268846746373984361474395507857943888830817339010962513435019904095603772330769809595576791299626934805504977125656799374693807409989232969922525835443014331373203254290611023861206145220088030815327529294126866106595145742092288616195725555737030802370380532229994212819043032669909617499207282542708083381356656590937628215074937190366099351526535388030838231167826723645647503959772975219372793242477348500473033904818868115296844024521698798852298203536096562202235216499011849668980206634975097547426679631555319022421819228158524634989851445631425549978901933325529754007588545990514221525471254676232377439306461076711579651196820144970023230632548984786753472810764553222411378724564629315415220802901456218026884377190853440237285826874338461762787444013002669726882799934576793915729674516999877438129434008396648082685756012725219964004303134373346912298862838965881137573718501892372930876377272755798969395207141619798132569371923695745760272492173863405046064966167920892321748421072532193967664647527807066055659447855323799411934136657384240758650081691759996351727452397209091055016383042764704457129921668875542506163963206402326019170782425798987870743159935363227353825873784970318499368117160877894125854949912479885614162765427816034266701144029905785568007526611552944081913205164266431192006927128418826974117237806355631999717257287385487530422409970450429529631986911851959660799901653399193684867382169534413348053829972913008633018505822783407418511440973770121592521620439027014873262901464038806756488551025556381116478465874998315006386374292894338437463328291655059192761355823874992622371470130465894241024891672684583054421654267475998439732971247842173245393764204031197301350885287833792508997470423370592047647402775875432148595505575187181659175441788506306357903332391142012007410997072621828003036146415023196023818646376756714028347092529224509765969104687957375783474502923061169342030654691534777491323174421204200125650030691761484089245724101668912381229493900125003318478287431390903373435594462370951492889480145212349445853810015420692619353284734780256795337305283053161576583515914723401779036904608002717406349772220473050558275212244809030226091223625654034616199197116512832317493760856867371648181790076484094291362126897034619161294985595730043051477684641831961510198311348366804782612256560043364690314196398498076813454012787011864407831076464286980365689214317902656361355432625030536544657509712080796679908767181640997414691945215590053297887404525716948510276751389474521965442070282010193375036026056556450905719852935050623193396996749741817574321358182869043423877038836583882636633011473244119060353165967739089810861200289511272929528484875434597062119784936187162661484708550792632916948830660191028841870136955023920370664803511640939081984453715564637498865943264493243257670996844635684009983474612987923364913559389641770159922067142978125624136804950506273232488194141756726452893318010319746218924992051433774824144816276526819233856354259515440510702038754498526424133682573429341825360737168109310749054366782794579458395855773178855776827106117024376725049968250216985836344818470850006008363705949095428423992713081516770456463430876546083652233682438195403966236667996966591427463454927934186016276797256639226582978939632311582889708064590380966512945680680715961622606754498867071483959662782961928195916244952855860033133864310495412704809673555795729531180717639494690053005412526657876635524227202971306422925931104439451107754036237846042204846169063009314437041468891354675898120546377680418438288281799358860553465894219790831052412595345578723446639985908054780419120594121330232893707260001928866547233072386520131694166838250732988291389134441050557492599794530726137210740252181099842589849977226413364923988320824372446260535692733270777575330015920516192492880148688682784693697833895530925212503526045021768798781064678225627513052307972948163771845375772585961717242683090653608097972979293831545502570498449283617200386700553336868493987170050361767716960856131879423530850433185363358646244404956896910042605702361163732563092903866113831991519736131920626527518343167782640843641438186918805296720715974631023259581664864385342166433130373041445201568061809277059858045229407283176421008736607546834898168958235695808886214603206700519628369328795956667586913151620596911381559347171528394757769029916135121381353302397174771905546255587213054934163332329877573286583207644400193737448712429084116676326882290146671842230142784538627472341281695992808983727697028047216180774820668839488248995283376645284646190367841291619403262074197171455259808005074723680393622978425172285178371993259672030832554740130969002813206496228449491969196542435521831322378407457526873371046171204108893504434114361987225456070434897280052441391579496509234496005706214389463553878081964836623132376234784632676595688871613239498927714111313191099778759731880700724253204017984130021004569669787858041746963234500750804605640740254573284271442402692540102102472870875239909457880241612583979079729297992716733302325651706217003696251107041932748735988827886338258809461205568966314418195874295992951959002684458172438999367504527607715382390452109693821695379363510644308385676210993391779429878082057898836571314296803587625044169539538399469012617942063229794018516670652430220270782516945392672558152856123332239487275746762605039423012826340576551627737277573715142828886523334174212023875094210300670376224269983897946443221232332670104409685201096296899403609111863223723599398613359005869333990934405385841591078933735470974662775724608782953151449552845704981908460198051073328197394851872616828223475926211579191881014107438887598668103896594528729241569263233406746378151804175218364678771660572550512929950430081150772732732612665280336193695994332157526471592138315005074479090180036642360245681368864128280134328134576269546789189193603045944661204507473489011337393100081468357656742717577746950277273682958220024632405438385627625337419967821638198447695413154162807646701646663182243649932997527205825161422858974743661704932384657026147764092233959037976497394497580769270606552896987566958312500224154842659807045439941634327736688202759770028866761883374628823664683584270072813698355823532735772069472601343169283319962524639916099866164202237066795812299399650883979935543029673210959390307897955419797546815693985001520341234490911234083377005818772275941720228598698608865911968689745742555711142353990744546659475838685658155768730492733936312362570346693570346964238542068119014942343150203001160189160347743203702023982724033830147758910826050665206689453273005667258327865122125475358508224025835434857524670481845694754038245426438537150187379901959234393482516047428865023062682307471665752030648254924235537249667023293284648998644576295258506075047009145445536891366037625436708993554188124188377812628895886088114333563331177560423802485494208712963845701761211521940074357689016225890301618744296570231340246091899730766085914112323871467461648831456852016087336884554529993929127200227720212467859937308535539032918672079984383872850696621063768818112011297779106741445970544733407446130702139788889686181010757978346285089214444254070408393733904836773293756663339152030012094106803091183584778638265166437008857699058749886703525105261699308481843663894667690558553294973868997521316625653943399900281045531550202330797868591614399477589865175017286400580313947947686878604555190714950550453292401573482564911876807529703529081178991905847504575200403056395536952234278545778611353054725649156975347605858975352408467692042422536928334292444664628728252575047834978533603864021579757787670657348694360562936259223269270401842146748625321288065947144163019920304156700015028228622546587165973067537996112371374497805305637552051531982100483544575575483397975751075800466572557350602026111214996715027918159447074352947040715796155371602062374091540091115950241804563236519197343328832015389538762463007894384904662177450681278306659204966201818423853213716150470905133923098487327679957640001952465719399597810041198213965233941368603399441388711281041931764173709618831741251438321152151280319819655252287836816094017281208970208778190046006835690754226505078909427383216493840114331619348441432274229731046244690057441122910132977074154751232515230189192795102633304595870077816138619365108442100732643776362043142281021409881255830647737856668786777866150951172952577060890943840519604407604862507613438367190953320015101034231115800855436541662571430820429197012092142356596647789676253306916353408225177075178460960268102054986753249042748901635260186195107257014950983901243182080098415346894339869490137134145503592060237427133381669511319094832042423901939061145026992366129587431442294129975870506778080869989531932899762139752418352367424265389282780674777147451840234338026120228584954264162680241867302633853426411239371522207384893083033657619771108851697871407562150028811009126550833170808215504083106370045532354859639083082834624185841202452442643425203643459061449703260321674807766041146182144558839510474382532371455358137781263314994633411256202510474234997456670561597474181745891813365440123820432860273353989965460033319174059562740327482876932125888962865456346438677024105513506323078017319699676384406271502829976091781409263322210616847625075912281190597885192904824751061084724140304519085718745992640977434563828723322291785233963202777647297291607575910177837147987147830963543334801545629563252948827327611511577263350826396265487759811353064924781633926415369309133907271569047747476377681832510133059855281163517148441850634041543714847933767714014735964335255650226559813132536758289414075949505292128128683826693902079117711696238332256089706645344632176747994684456913247735535184359698169315147682896375831180864594777848553365988354908575293858224208713064790179060674864669166919418898474713950955797104237137421172368567805362314885854712527246206191687622166137561376897276870839231125480477073991887172013970923313279210523196249548384014541916028343561583253722532219403891888136300929905792144481015779963057176884072068736642818604249423862257670300599155395693106961722050585152347962119810188412239281633758989207665590514494750530005971430653800595470604425549679106388859035757472542864438438055135759684080073783962549124139303266343859295457079013839339220836395442195208417249218738480659416260892994387149868527434421842122261413629299978133261532030318834941440953810209346037757253265703588877611661733058624435436079035106203949654895479669290583759448154648295059557098805801367453486416548984466140003624727471834141831441595224617033500128779606302935118118517739932395177688427535387073997601077585048154453393739498246839107087491675051434798331189088344653342802479795334591195839495643203313423946036418662482741589954129541325421924614832053614508912023707985907784680520606739953652774019167799075703817956531188828636050701419258925402930517200159027024102927785671659248363147803788753264247324779378934156791181301585724694026584152113929784556298361260198973578270464806349797307382898135180536970019498466095413351891319459962012046497210052569997352529564552064259757709742566793918172968333211021820369453274180102823428855742499900276644689390864679312600418102077432232890621133029485004250297199929661907603080270324178561622999383054285481498928606517402286509427249243949593400411503051070820943351176201329377372943503758247519060043481651891412454879656448050809669882840246668015985134652253104828098487266476289648582088098176050452468405651392308867936409668997425186405627790707553179620191732521912608915272385766288457093700163564556265415017144298236753754303225623607202207574144952699351763751689839533640067164607735946270738582712727108437853908909115483032811319842529882790266356793621896814673029220983466305041303481497383829888514518005681482187584391772998574593611893399284675472109772788716954274330170689724849642318312163565426547012045466671492528423775809325894143587168004018710417939480085592203276631681981648870438966002337545520712641406071084304738069668877736761883928418023809639855171112424150192273468070495244528676258079196001608801198821036823787848179438873557601493638829018178851502349087047941472867973995270326249872567218501100352501663867266454836135022096317093781725502063107055965833516302497976503250361883434637579715305585774536274417355046609356237029711202278628040963383629511533645503429257206451488221115549110102523970546113492650017765315208417216567990945740527670183798189611339512324138938409520342301533827571941092388499511254107980005064871748872311093411637249181954714975559138152536204031505721763928563126177078516180088198351305010536163011997978465904959420670015310505903424106637156025325789242675216884263267142555244134130980945150673070335342108400438584544508908332142282165157467055286795538791866191623516534128685952069382192677652037687163202767980878598101187523054145757283656807825334301805690752097108464279458964729731672843847020504185566350923690986528685430275857720278530050351268284956191132206182608195342236427022779346609568453502762759472886915587203474954065249482522176488078682657270336576049012953465879656105173036628108942847331754369244484117036088854988480014471902613328339255351861830778018623569356461787977129749231366244196763337051783360239741406693019740874816978013765447676324625284077382146056983137179465196960482949701037836036591165518744953767902412730382984128549775023093163639009670809731973359547892249126752537381128336079080114624750767376298726381982545037273888528302936662425612300048827700637603160715871050903870362478556362941066195415071546161139101100592514303501188998072172434902887659132258942691793963193023302070801862736806959790237928550937991572741393328951820628100937627243045690226026098418163420959832748145621818808904595902463785155961408303367688345271237048757155069599806056690163030796735365443342301472747807565536220274013469486779609323372119346970880764726422461845318804978123691607308233840359202318873016855647837438472218437987256451918519901397966452336174562574408440916268743919778878037132621507947506073347733724874824235479948647690851768288539414402184463489388147720969252832705751707587330289306451476891083522555613462715876074795269560403927246521746084186479735532332282153720736470413764716331212206647458763077506575945535289968452612962405944122275241747516558836290719866594944434117443887135729383715853102237736364384142760443866461400467611154140002335725442122116655524613978595287729954929659065785532724973207697878415880089136121652724989046042309642506125086820993635043443102896098547318473092202426268096336849514689921650099623687801104491136549221033551500629174196301357008914266161420630337905471269921327111319018186646000835244797585820157087830503334121838691700591760121497994162154783828445405824826153635016220229566864350965179876051536192059681333466500699372614329970456362191432924089013738213111040625743092353951668599076714276138285531280344498532341527095945105179435086007405684840150195697607290885207215740533754695695745578477291589292224051264436165187671446688862534992661587382954913792538054988926206051715696395461555657899489452246068030559994472812906469590422498952561305758833991579408956198713019557325364627016705209880097612485901096806542734150983690142697456523105538161702977654093611660945593391725028667727618806182995458757738231474815103960616313443812965552220172794386088450407478600526017267594763661112893612570059001583422135219149874213559280139043010081109060826740139057591011581909067506325129089738188652678472486511295554948764178054711334611333604452665329079668379458175801260499583388940287227512150981355128163694497571325395677031288187177784007553223868666263986084149762227105089354969045493889570728374950682534836948055241927522209684540388344457899411915486901928775911273273647455776956363664312245151501566726318075293998688444217514854493294975337394190016603394762803520874198029998034845505610214634182590887431813200746920520984946074709746289586190452633900354087677479546561038846537170640383824653082623737959223466723927390302837453165352120823448647131084624133401541741090916732684378635169493795997999835596012162314967897339264067864819279326148720704701886030702102052053790218190036157336879391773960843752286357808210516384993057818490060713463104381114299632948917337847783335067769548439177097162132276056666749913109889779437130412577769451203359870240438727502195993804248962694413463504861664362651011536397183378251456016496140570482798748059850061272309470766021677987909428159321208397694018736307137385867841569172536520236863802757376452516409049563122687838970718940786259535450049294184672489095600422323874420730673456640290449844459192496248806118165276504348644131932583003747310509751420204897882079299604137400546816363204201888421397735356862833821797337851374388994354327979355192293633675248258992881216658251226113244061841737375231839649610183049392068101111129456462861737771458649184530108480239205984788964439785087824623532458840180628843386758737986337665704394142683468125667108473431902787402256036210406923132643607407187843940601106452598371669438130697738259472654050887062665075861804384214491819589012108287273759741829513480727087444616936827040635095999537980328949648902105078203492690818988587820301426798186254677582732805461803364395870107934699736368645004748983486646599551579695323192215677749332687743157810674668480214008218971393262431973439911472907524636589664237695126241019694575439435709358540346676507627352278733969175101593816036685918885960484021305522089981143042541462375247159558320909944447827173214406524808611872628918898045088008153978108241366173102491770561916651164608361679766198896029356275575126847077541812336714138683958301283703375502404097220091103517767733368272254136021033878381549742497999459231979232163542712939622284874731979736855490656970043400371306478381751829156256170362193169238977388563016764467892506431486912895470440111330597751692568207788467331507839528979970179779335522864926841330574072046149265936969485525868607603715061320641518329434510821656472801650520658363021423173917800202948837144908263341449507318906945602478471840123999309127788717252356107290286358261105439101141821367837003303770406371359173706974180177864551648469935418307770261783162975868267930979243133551137469053516460555679790572296277029426986362504994449531276595154455664929087752023886381001617097907495250500828006426683473598116984422606646440580001495025795524461684883823990097244017251248431221595537822415367578346139608549426188529397771674830485973603235100985340737286408004216596859822919007690431387053884692252654295326557029344338220452742956843473150431189158675988738221648847873688411325097290839842461848536695199425185740942323969297204529487372032370529489922077279532228470022171339568528501407458024711303935168838654848051956815600681515280350519703923075759302260134126894431269221062100671647876522510949031218818575861538003706705997174981658157232505349051395140357122825054737965226951415376667143095140205521660756045987945721652039744177255775106005845342151660077180373009946896618108891680501371460829605022403355243652450136144713991800046774701730968981982125940686245705252527942427166359049674875927045270848409653535278966148486607792424603287986703634092561376054290774556108419827604456010389869399360819737789960165095955107660424173662728516149036290803427661063166418841624887340954518387524174577298263021005147924912255824344071765507625914657680835583472458361406249487096005772193883687959471418111440668670538697872269858984278872609638343643682482569729127412049705118610606691089553582516678612775978443113994925217960280148289949442808232553152664474623106862703774956898671928667005184984039752823577976091113639486979670059007096191969697109704705644873655386179792727280636030723745308793315370780489438893387261987744263962222753533911131299323114930230589389034751023200640411831581747298851013413930749805980679055451479513783070577223248774561955089705496043805976222652312348971377786908031550997511544014233975252150605729193978865067006681217940478268667568057079676922194915052338968920302489523484428784994116632758867971939833856198816260294579063920914118735809105629422260489789118896791270628608005243890219510774023740032035540075254921353411762167142257825117571641253236543624935013056119109292145718600732040695950063113009178770042739591831595531588054259413872321567005750482401283310937614981812342294449469341391608797103376133881825805813272152548536239893268880019470049687064570680570784574109803189132621920402433551718698173723475854425113413059798412249814034160630183812635928458517602291548860204138453023914470782721601850924394048994755261096807639616424046319292691089277687288868713918087644831805148936078718371937882785873564702711956007626204113517527647422723038906274958625184119880205142295257315675424619409920385985857780018505242566234595748783734389247468749744412983973297393402134997612236516170705216816926782973281850903512840313626848060845298849739807525855457075343770783599698670092305344592858380486117632937616937112983023472552704702297098943178670950969854741868618238562764602007832846691537686768007694455714259954869470602898538034163116521588810065165676398259126193442217373204455610398053254275341633589661566892663929004831449488086317796904976606833390865908570255528115894123286467519163522898756849296952563169534608024196127683136108635173385031649430231257530211840832684831236763658205790478847939194027907845591214487287934595273718885038090597084358470731537906685674834199032288397133435623686669549763042079314995743168958085859853211078766125760149111415967799177511359332420090063535939798351369619853596073592493497056558623774618578045192633383070379862548041895154559248372661592651959157682003718652943218511158302194017996639126894370537559468534497620100583103557143858670675106633056785572748276362445983436436541181931719285666044880881401564475457488998275308722406679817478296055030723075883528871663238925893687159983078758711290500784419329058297584894179581081511779413412059218853553107731949001141565077475204778110946864068629685661254874622572373240946524083434208020657622360393484520632241649693685114067689638936227003490841767973364989938331979555572622188240404376853268515041126263915290737110908205621685514319273460760987319619526556914676562484371146230101675975964871236821945477817357157106677882041982937191956749894626833048210723606248173214956417667004207183988371408689828666307351236843599443567027386386809682445071517866857033016634544608601696321419421062010797889241022342300776455936556692948722810819730545834080079731924694210786361033237288023276208568828998912447846949026165071820292164726137360281510011833217740257977369494970608265835665788787024872555487088174635735455216333603458130782404368032330851969114790213817849729140664098991159710582356421272128340628684273969506632191834693684711339148607570294750470134619606969355325637236863631546421469572972690104646217540196050520816604143208912368707636619075697096829885145871379842121970621020373707640950383159350667183695499102918222879118797044880756959574008747343185053506888449087751280225820723579097278441280964927819038300652047076047767425137265832552490477663049256008289036914705107342483558220920192418191674648016980936743601004304179761867382423351717379168880207099310900246827755905445074704876497024014282577531694441726029420709341615556333072901077671761570913863293905059439694193015495738153267142411697538659895173788042500818426016134785284200662063899423432341326612692255366788218365708684924528016213361813998726109561159265886022872289070894339314231043091714975540018535711790396630949816181498789380128430461434930834466111773919213367486149249074067326076514106790061666638156020763709073582304859906985575529404646314579532796147615048758675504269467397020650569135939751455378047826780531954424685751362593347490049392049782237359739183781169707854872046522258316392242559767026527891330071101003423094279895170791165867988211116281109978304634499333380459022162528915977610009337301211374249149701346119950214134271876755632992978820870186051571784458615640134480896265863000659094186941453298665957437118451543843256652767533737822229480231560471898077333599978533595460996015074189683608430733461293356573771695859961684873183647927739445817275901373948884869725025169736139852187772036622117365578656928750572643444366647784519783107668839816614727851551131032014737029676300873054302525626713204871719173218163115807009957384696432072318487259148748146415146489736351520788957611001731841816620540888092334829192096680102486548447211328814588829512819228185068117145690097446413520345247999328257743664456016101780087739481783320173795413963282171551582033978244222439746626870567302942389456008365376629780606308582204301541818894292264742999786055231322911393349178251859600247682840590467062309618413454717235315266365454339337814730586413205561113175088014426108081640436178046708841072096468341384067918974549217598658107385998852938500060265715454838070227577329176519451426544494484996683632663030860858681904697210170645115136554657220370507215433306524432919420396644389648424050577886120522630304487451433395174714162380644081172413587146604659039544746496022000774122632451797587860561256715702367052213497201021779874902420987381464999377489989207699297222330665904507634976114867887598471364772805046339603505214180146265646235764082020595899185942529053473615107804570180802899250692617891418761427528831386817449959393690347363826355906665076003002216212302315705135783241434915990868245364143694975161853704435440551489082066929831752583963670962824406542172449601112937309382312974129466132635579168094516862209336738659902851835967641563223127175835176498378819931949959654417010983859079282295768506853966451422886404753335046526511989395533429230923795725658852492064482842686259982086521637425034116468174700555111118407872256721598114080181534332972490250806739478073720261332308215078833880864003010659244590711141946596856965781740663868558073617591919634503649296610089815473523165138130163952016305592168270310632398481213188530846426772785541490265944712000042927762801374144494612105932960032498154148210086876115869900080184053165802133226763155053890074091096427452996756639106878134436308797591864331109296924897717364679478687462762767697206249410965098172401568949931151422831170304529499486060783940972883365725816729022849545541829670608589711600040959226510764511733083036465847268446359561381061063603741812926865478491787785006918096604057606281181619238824452872007386175993373639291077086188410219491790242353492906198855384960800538759511042462656729726746810567832148404123003478880199115407132907918294929054313432267751896218266639861479630677005933406034288342883835800051307811442641905520937378772014762573155608727836818108143150833553156883062739992956940682682279998061112148593925268694769480392981504831024911413825555376255284371801443951924688846373819317852823932869076194022547386921259913352770836421968170665429739542678522569073085379508117462638226554693222912903395786180062750085028920041905609930916827648160793018922471992272542012745631970658058905753183659820001901347245860515939003870326016052748158405208075964296454829572738192933905070302261157984163800445421826683935817718801763709613228492602264706829806054086067678527344954272821250193195283918463591520602569038833701633079557231686886949661780694455956456286004092660080366481976200716269944239700572234517548265975925118414870315545368873244711308618303357319984214823599939338795049122589114778682002284604272207482280119198412451095447413149521282836796860753347357859461708464980344107143362817156835270051244842506834911753627688215951517871601152985148011115091129096370125062056931658146976340917710806326323884419708160663551696458931564683098370549811431796410756328123275039927716723560672158322211125466093145377147513324906393701404909204339865941978916819385457216391120944041259699161234413099990068597439731393820655009939976330820765470064968286196936989958415377002575760957147709379915276955258880319891351617112602621629512411749414743749020443463347479147956851229270911785165934124558733995402207936523755492132617490115656386153403122938754294965248156289133590457819480438745678316934622861662227328087426152304922441311219652407394607326147513512803860087694307670011549449493322748868982392620567221609857169164420773676126747453072699798461243866514545645133340895899684402253698409898076396912810525683561192603684910210525871188041407346342719823340711686543141115755759933138700335704119794688320905933598505016348021294192151958851967108091683780066586055054120656345033128253381276511048872313680540177318365606740912159406519928355635255691343311500488452224840835729070381297291132490444882779733957288925526040398532766128267374889085540047253471162838743570115153793651569004902777022047392567410166570855521847258107643674901673460000360282698511773270882189434847255031597232954332965598608915585410384454858300385750968293925356952797924735655903125438939353449231450107028122560057109660287312127016846214739105565690599693566989753300024761731843324646673785352767718173097732048094416614820928744400405735309727704325623109397823616287234708143411902266654152372971378923304369089431635725129270410161275629810356712338139627097984595671304438664223964012079198298380903338346200155603849005635055054698975278387973726209835531459504604143602465390038572689007646998706860193921650758278902744903277371980627929302906767160551569582373540130836358889577922165817805240161658458703326396856010063230248026489118330595135336811131480116153626413121247281716431734772054012946684522152614545904542578565414713904908352224271699192884635749249175313778472095851052631980446548358236013726672553875909794428156421261898999513101059471899375617855126384162199542804807577218441698414156243142150673092395180603960316784468590196114643075408386828636123267732514332781038138909343970335669886358183118106077220880339134813255491855082529602043329478296350323740356564422013575839219133500557304841166631082813881863536323437179261657279462429188188483129122681506166771381939499053356465022723760657026040562430704593612852817139327679751652657335841407671505185649194277727622885732937354124622840727841308834071245001655319894849445109316085497450312818697232552782166949293064998058099788367068038482844629300252501475346315005187780366733044117336921992230804881986899339494939964894784154161832382673909968387449628995503773668563796529856836911846049183062114070235396869806387466429902811081276848294775136120199426317028514357556508048814662900344581100302353069904145504793930758556267885515443453116113371774218100088937082501415888381920175761890025113402843696878946862648651808022851356963966817427970791870414498644056950772082382603017796376114231414454584658445165258528599258830048531262581823051175565390924582555664162463979092702040634921551390326290389572832713139424758618102582281837279669951292512602017479169518537351715884508350349471349724516719044342983042330688326386160863278664582554625375529850338646926169396529413828276139967567379054794976931941382678776304495611340510717695505947703382664528096715684566566874706439751807990708439050138457235989116221475678328781262279025226899783600656509495169897687703057804117269140305812925866066689193899749220146332604566113350529802265202822837013267598972802217387400205275767167847023528589871399150630948593140002065791765245388464949199683452224777290341832425763769898902090481975532177134151648105879689697414363505558703729223132430155601511099946580789917061161944351240812363420298817489226646929871907373598620132859425488269134480064254115325469552544982463820051552266633305634743653985250383801044388013450086212161245124282164561977373703742286724987897027716958780472469887571451671773104395915889690297619256068305638974048486140813109262425996167567247012559696855664370118579361715175979846740007572682093265388974890643722319219788883021868949287405429167150696934210320377048858254371523995297285600702181194978549543429729145583078695887430946499615058149015054124811465355857475580987636798597414200227826955825629701814057399278463616248840540335118609521908205039987994215649449630032130850403529574411875362099638944672160580468976697912914249474727097281653347837657208072259777216354988636038110991006369877675475038609275462771066067503356785620502128883676766045481152793858134361735244442311538998876463226134412588996705688580765677320200770391098272476020166435771266294716214197416693320687901140722008200860567171201393532644802225595499169330176673785927974364169063566611357242212789914736626061025530016508991931847112261907198312088826865794502515118554306706843837739894783729483090333642999571384477840800657621541843103855179036227939991913851556338434325406232080574200584473184153450374363857323471348074010764911296665880921833188401914779924263038245453258333986284061514025852447667472525267788414567945669771995707652640987671118285666747067789145403654031003901403544534985932318980588668912496999736609049370979318368351123123038827940644155203519726848021437370586112696975833973207219462921976780575458884960011232081508671178226618941714786193434007523746589483820320132661224234845877469435580709349968802227306674338211617357861562048935538515923312392638615373927448370337833434323016140197192340078273539513645981382493489001870433547923327567568698489072717536494341901211298911331608926826193292525948852986754467857907417416725845705264098143364508666218668170840391355855573642881051654228620177318051056145128968506535478498649402293425072673593263934394304883715229489570608641258238074315447152867777288419399624687648476637826027196194321179056127294805189995068492024889595844258988338426923923143541496695649367134110717885930466436534629736941629455445674230147232743023308072787124238457490374096818750608931755111783289484746929179455154805852836806251806201444344753082331096860375901796257598899750626952045829558814734596405278154602991367475276565906818977360777208890827170812694864843591004350730216817748968054403456180893586477897164505473726429538318397993856838297856891535907304101263104260874963657116674250595696425889287981648749131399475810572250141972151304043545241159482641486526304447860511290206291696086032308747482931890737518892930441619791776670143273929354323622374402138082603722948837331024706608406893977276548846678876589916966986086719452754584133732404481193282347179856118931738485875956221536401575635825042393276212883409887173612580996711882171949612976174214529484875932550668740971349341520589682279240626248754109174670702905126477845626313425708578750194970310749051459381188945056017061756665762046498735727354907733109942815802554170397131863861015738467599328853982911945936158919320756580686545446999284889175146916755134757800768624569930611428513458498945494918924193896260426657805514823454778937899102220180279704384133219014866557221363607144067586170129153008091728536407924122514216042347461079993045117441359857003369532134662031945246361439652825741925077516882665373307304487990006199305985674605562141884879712582966963376123305939218663363819765238576205862763598039164309743096169827491446076562842320286005016824690439357195454869320422773038296850093561247683173076674736113929105512569483953626481147971438730942975353766723695702319102472184667200908928721090109864647745710595586774941061976009178264144741796064000883791500003930258158863345923193158587033441472649502870490932901838639680288462649869846190238524460573678826952088309257284741645859015640736677545062838599529682174698145361593890408502688164450476817280774581819558912668038250535666666187481515980314812434593954656623626290731270443385445519466390065481620895895584305573676005282686570950448176186249277838729659865547271336155734100488709098222257463368218318993720835553254107339239600461760992209716962539031367077928095440684065904270419945880181814929439412433036922428597349763656930501369118183291908566045512705305681377942088462288672438693844678965415706189340198783392014397197467686615982089971816202830036031966785263676386538441029700907498895437197563807290827083256998162050440281012160611611551041914944953699894624316654317270635064625017515937753474288545271276054717156910244659775875862601145307592269985567053754214501859103834641776853770904207722330002614543488651820303891809199216729112555921081401777969901579109966401250947098869096385294377624235999320487576754055911765537014052692113306381978252235563490379022950491283383616688993414944181726792598508943986731571231990264920254715290293546386770330557142106643929261237752047988813628874539789698152441452155210829461283129654316926828828539136408930259647021861909590862663909894429564664348502474093366018857857092995066016579957896193853841824396812964844749440763431375166553763455621698169490791182933216591007033245959011008510576834321911088169419084675734799397116083867445129215476902840223402353989118833820578576651569823942687936647587077043654147045260873698440426963021843009264064465190089739771496931108121090086257851860556317500916692437442465273837408218176848034463991196266850896280706584733875485852091158434441716135671968511667419114348099191886515611157050380087568428865118827156921382532752461880401943771357977635139477769952737722657830649993853715165308818111316141224104070153824652180535790855350194709306620814638490944003925648451660902455938847367276379084736436727313457595872681797652256685185255436796142518798470412002624640440509784411499528113962038889158569571155884965243292386130508025432781335908589846970460248034445155068728432593027220544989980285054560675226151322938689117493998703216260021672058037641481619793722064822742102700235675800453388959654498857219856597794003705026153334575801095325267166290258701549513175034312331011710661476731206644743784428715485655819833052141240907857816818948628818810988975729062892762405030715138601959540098591415510345360220327025949381453429124152729201623767268915723963079593288613051908456680347849040057426811445134316803123818281819527238298676972069917022413302045320932797838824305608226689607628034258815443657227842635196825306801988823025736521807709748358703242149430633788972335130138446274244397933921949567265621563012254195824991552961074086994179020343183636540823503016910923749941612272359845469865934842507284094519764650813212712901654294582264832984054944711463905523382444906078516647549634332759211368264437778732815015710021324691592445311684626594948570171016527514238748090409434154934402580220229821851346999448005244427398142819130262593789669568181071942628228742689454087137116016966091015053465048011944728220344983959500345628444013246745786092944676009132665049937361733730415668524117148009261668894583757872843082505864727345250674423672123822872150400928501147968197142796274494324304406775478740406414862211107574242858124411121346171856505843782164991668480703730009242733403629306491766800234790642763398540059230286498174778991172321680446385052224212578492257857148396011070921493716575105752659940845728166429291104876995300283574999312219731440739474621930957992260829524760426950242253965761550174109387541450602934096588076277825419426575449534059352653419987208387108355400252021511966494272779679647283031767572566294297465174734976418470473049887129423449835882830823707974591267945867861919229362092434552070853692765788594870546627646497719763080671875994958254853753508953739349436949992993189802818501205045192196625044725042726767548710147340642548916150611895169030065043949541289657357907195070695420187487730160704479979551525702486569756744485165558173894459249657969607574021329999042827731830308791003269487253231404339379440746325097342695598056941525741768130409511972709448508438926423988637810201528071772920044822171400840489830002842917087266983227085250162202480462311593229371668585784585506382025291151440746217616863236296001014714073861523779066554035555817685433025275811495779903029381777968623091051113740508102694964748368719706591141731501447429436877334437222015409124472974937582755424279066791755491091831530721585011019975074116634885161542561572505558863460798339728177072930094329341275622515453069411170074404804265697454744628525454038212704124549744661219306694297161876469981309501863251960438376861249372052698981588418837178545082076055959022896719492556381608952443639769642701441215896948980818240043909049505602311313697695459857932774715088639759678504735000407591180941012332914757588172074928422000143173128338157466758891145475462397678118900633001843888026613807699171474154003929705685528540842678241422250684933618133052641820729098034699897130183578075705838849598329883308612629013974245547707709300928650965462640090164450937847783522585604202339257699016740936406330059992113131450370120569729187561219971239303820449528737815412012266708190171715079113706445886796348238085228545530017034122874577200274926710071235485582164239450558437242316701344464583488425709085769859201455890541432482655048290684007724733764160862165196029745410819796388164862506031303088726273600798668629556085296053578092286509685971642117889940204525643154737194712334431900672884541476193919942599886591919888224181912388511728724206879123062545536529261712630290256106336399135974039917711583979817279171734024521140334721685783298530811285699937085113738811142501462378126502396163951585869995544882502836938548778796371797778258741012452428791801938627239983326054469340358973515206569835868979612595374253235236820406787129940526574142845570318104879135818483860129876015866892135385939229002019886474038227300265247064032725044933533883321218968590396074267365085042131923020907690612866669814571828543271378178769951634788883249206270512643090404741389319152691886188075293218214784449108463230930373360263962688892603245370710304194499643859496623952934175974322861797926401469086285558915036228713561341789144308534482600350139269890434815585761250135334671738772413563775559373485732677058107306474707383143934460876209398561601842766844894409715065113538198117855151506867300895782375693356598010367506767568194767739787589151014870608403131459605451375885096517712561044923388628369858916307155695502426346821633468340294794221581379104658514449054526058727302531652224543942058386914036909166798458105693735542208263033075559647724888907867313942884222026551577017373288242013543397959904077529872096973453047246916290653914123551295275334288455262057880286967792461869742428690441650940615296211726451471469377103273917263119593397689273961635334376749229838342917297352467140579948653508501431258273242555001161329237719550497877917906701165947132135218153108477121554634595026361780008157800613072563860959699807504467466951104027615467480973735688532576704408607968230077681217195375780079046309059392153766043659542319864667366508374009138592859789502505662210271420961846291620587405896930396452754640955504044992146393425927957568902979778332417225925189755597399706666658672569926842891504354667720937586509243343714693549222488300751350566164556713563997040364536232841866146586224164663536125448060972273129921481259775261259019482013112729021989427031276013229469653495866486003006891382516101261828360920191216502517861496535936306546572519161892201811130604434942880048886812042390102086633532835814529554607330590194899289613904867527933051104131527533269735796238430910952340376359739855770749014625627762660874753160208796544659897043135906176556490909719024446071904544457013802295277267709764315494435306096192866167912736139139709078048295716998469449602653949160978971188918609595174378116884638123689849928367292683687275826621531183473214567805782322270466062242938296283907024810524836922843408973183263542378927004788622915976963012420412755771051536029502389873362272359447375433088803254248325126272043918236681060703542797783979233312302695083986245905586976399778836470444689986555610425409923693027650351023329429250832529700161837950584347827305222312667878819724359669616329214535149494419877071464138714034886842064772455188922731803287209187759611914553602344632627577639701801982566904060191157040960149532099184454413518070008298690899022815623087611471694309255704877881457428076232899323060965191985316016680061840261529939008941857333204824893494796096208364867935002729935097804156500005408725616344243894530172963564274216495547874341044024194554852252285333724461412356051011353291412473815382056809296773314990524724894579410911810227918565965141006921863257680162322972513326932115811637081509099863594908474741474416135544733591529336973709270809281462557961221344801376946790671505241764424980073743363055649993363855807316321366286973071416748302252716950722554199764729328721008458015402742686807382403004329708310493096018882010752688157767814415641584569933145155249559432535694878690349142700906606541703653538294842591045490084397851864876416086196473903616276770701966163752867087668166557607542237158363207326718662939214718991498712806584026203830977582061975103659061923279905304112075759689158716486922591004950209344095845356640018731462368785085593146279115507798071143670160145974117967077910450778619477012856216921276974464571402794869944815468622196247701010835317281580878505537197260801529469755472703091357218025504040703933908034725742036237075063676417901221113482481002768900202459249228973667679850057514812872550218432850431277378070214739409750200780898850796477963050450926336400042905899717074048424864984681485503212740524366011057679214690821493811953328829947439554567784819093468433437282987406723610239957926462038408822601361040562161683850959897602366917675866247007554208413315529269833728061866227986658154780371673703622859828702844446049120624017840114829340723596129961842946387200308289151897475802080454764720181371043990306373977546381328154133480282574859026370529007799000517011435611519288653619995449327575034122649552832926807050153704515019505453739013301013903164867461921968469605921203920396217541837297028938453628198736758880508428423828611081118388391411374466412330690611250859477770295410624411383928074666503413477593383958513145357028673529436266890791947083102341070941756636389883066548948223708454874637630557677247895279634174621407080216481000260464387105987091252108140379847667007772055339338638913976975122061659332804246431632071205498031177013328361531756753911691187938774360369627383738264666462284291685528217714261563415557507082133176282395692062020216850283580981161329913807726531952482785865086868874237893862993597789517663184037831917302782243020603535866464053148237818074448727218373980129690816130134620475915525000849573140368805049289226194156822863584028858044553273942679472674982321701798576311122630954101851266537099825003263540016624522427469148520880153201702935055030272063810502612422908193423902450365689336952228911468041873171146802319644929719913827497019141109767482654684011692390298685566453927425889398247513476947172055594540326008383473842064441693073249240673033723686002187853722476581232467857461129810458235468732796628984092787771496007752115220261751477667846572914452293195358427595410012282770814126065132140692126492646892404553310308522363551856005707625414728005033914824576233825961622204275820902939199156022441076246283842412746113241340990513833776483029823248802597688852612232727845959807836556495667253965587015478528821953049164301504145737908245679034456839451142379446443440043555707872912200089147486615616415236125126542323182489112871636186037295761590158456808194565534826540416994565930514534990309291513737103260594929183068475726332176369110851606396125837665027510426232551894946478570783739468937288722878275318599301883526464477740875850033935438866932983362592298216686387962242302199820588535609123151328139884510458948549265798501896488467025574690332718900201531572858911095759407910495766416545079970048877658617912601467319508118079442400677272538087864538981071341401498173296262309548125019728465797269547641258694722100887576795244756597053851032860876089522827756554682703313207518201522941710903183848291512317360260022270049739180327632248065033146353582823631121423132260188997163448944038825524199947844956407629989064050856002373003459581823462863093465771352376421057244533112501121265159031736331089856442194932100885469098878561004772249269114795205819289686620514225382940205402531438576634985693600700979804832063980026603882962515982627154639353713130183113088777349307850435928604045917331407951073053755504095317162918091489965173804752818274791678770124380610156607756599850428173105650962303587231960412024913599468185917345711467647206453597292882152254226302761467207890702001395420687530937554107653167865186018206256621314928238492542748601847263975030254026950426212161563243881198691028347064820213574096368030961184446944259353878837995285547514000566430473757192095573007923752173923266880684132115946456376300458666705171143531610450617882044752164020225391715919061055535381211072681758357447121192913178645187755331100286611926207316775098743001518561166303032598612029389762582392139323967087792461115374478023384983440598863096670052536493489533613889366891328298111964410392015848980563242957970906477337247342570264597214663736479647530845056708489566920261015329137665764868539524720897465407664836799433888300873446117902554586741457340484246286165466952037080086473520402384744165449395837975424428523923748406566325496796979206213836823770524410393652392939317247942575040078580389691516930943043994535472802503518417818470732942928665847260531142681021867220336408383399137683093137017406873694356659961104311832410192991311074577165825041651387374994899954452080989967252045683182964157341296442896187459929278747494729540221797537596340815233405840848835192929765510691876182774722160074179796751140417348440792776646098237138517632110559599000937609139729060999102217830044411989861961258823107745796070885808433863838535804194866114661638338584746489833180965002239962170556439437026033106912209945345672118217266737040279981948932031392750340427299882032224896007497126189013170001628820258494054198092097991965553094630400291436865599441701848925638345080291578573151243117852080341838033430544178800679329245195204976845665944142837363480195042378164773539311128922621695211464803295668200596382732862468788686781964047113524696081456014001432277319163228480101426321915557280449004325417067268000626183266933262948757495076201828838768465253005516451116815458112878558461119294303975270864998080950871320247990737840579762653743347110863150817072594069633604868101309650325894624532413165705203036767523356659934100787331775949677014144836948214770861108297952096181945476249581677486600046235294948621670282542766902766272422577632704628973862623391406614800259304494991286050933187707746383761073397205449587023589710134267116379767425914542229107020269935291960947722703368718764292304431991297065111228000812248194286347311635949523363524065405362403018482228172217365640061067059274646894112585932958959514151468640107118495574529830681271719513995662987797039719564385754030565220546481125215524700222940576359945000498725523427219952578712672254902593958260022254429146137461577769786025897578755824718853880395147409850926940304748289947746928312872728968447371274947151970737680729447933220832971181839728756685929303220184230624440348726384038114284859869157302243453503425291069796246262275456733501542915297264502587432672412964347610985135514165266069519308270659740684213116460577335485759312928346734203468676363690329911741314531840630151048993133000203991957094768903229431515626055324999772992531718692744124032985398872438488475837593655568415224880630155146064066683897060146287613366720476330907257935149246682303342598382751589188877360479773072329330434818246137964440629224713311561516958770609328891463060780824711579753496920405883532211568087387785656325575016156706542575062093003659993894065288999059421367856685728208590883383897109268516625635994812246534320477922923898518639876292396585598425523832985228662443699722518378697530252144122961381103600494140398396976665918443094525000298825661511675577278902471869347580692240664671530108756831808824844105370273536382370776782655687941968525148649653881204410504456090433389855867877572393312045712938205860381105621237397007905906779874582985120580909609119237429710322341672044201273028303508021984667889373527979013472015776822760916330333795714877899683008759943590609019103866444190309595455016495219405338602403245031666822256738411575710856177015537072986114729703975485924228035621407670056894619152033311676122400303819116331475230193474096486244738785919179213825810748273865363984198218619902774590691850822360349623811442285091335822101373875136935841540688681189549805496357709715635094333166605113502337225500936496447274855673026486436730644937324833599766685609723134859088759770718796991574238004293070741393456893272466996002006746750463924283118714838648162493596586698977419752357543019479330167641538591950288280082369484396832481515242782076557329498781901170047826088409998094083385644578264004130843806392194621039849089131054358184030482671999886619495487179128384958266561330908188791122164906125824732612370576118324818734181304717896931265307455112779642472527561042788860084445533398407042800656097999647518564178797594263124929021221467544404305959803399697369709571019792561422189959145631601432389940186034810089251248299971510909570685315581432166959228569944943229634453882150095128548040766197156429106667129898045363288025376370893255080257634615140757798257992122133043062674168350424591139690909532701916528861040851171686373734254394601203769806145292411734376574671853128628714554265560670009366043398906589855766169360488835775883641252471877300018541081882045671889189008709599184321809610205639824163610192803549497024854376609851886569706077589073945866780747507428526341802025457709008913390756283884427231696828420323008202814083305306248121765531277089285957098916982962795089048093084169762439582165109644089397049602950556640603664842589904952011499935455456223688169160693116576963735451743358306378286828434477008128885526827960516702331782371742249080109836981437277133735704876999363115527641173665369162885600141665777831702552275730285422438583064579690919892721894869045425030114681445441447519791857745118577264509933498853631535254929889131414828822905242676410642659374256148937001329580449214089190115894099701844459757394396082068245760886627036307072765988202424702609015098119048971445060531958290008194394741740180578985717168031482781910529482157547737616844738448551540786188340289450797495105569995962071917093584433479556520951563575404847101107159320306458512790783428664632146448193738863830103229753404769409798641248768814761202179481609059744496197154999183529985186291618423612522061081088907423096715289576027330399300362610067117635029969026946785503548885341909838023056702120717353699730479832903243605933635492041607845363052350599439955252345881400059667387073260335301119467709778288356914903776951532002391587917008944618592386711038498347155887184726000190135464189626528906406326058937384520826174876279159439720168126636407456748092404367646939449206517800288740089603409545049861995758026548115579964997506351083627193372187440001649246767928716946082960714276737567762979129320692463668342569973422561275823390945156623710307536511088387112435829758728356563760740618414871728292951533578974806929332120826063586904671816947634106059387433277716213482326466192806873864594589809941429107050327300109021356148581261649396998797104441155067736002438198878926213510700924049959970801327704993517541788231853965384231184729238316723894450933595213975358923087675413073698376443357971470782437366134418770838163386374574554737545576802583890434384582401191162633734374964496164108041302360507708158839826458082857116534539677720321852296657693881604135701437579615372607727705959963120582214515637591561679215049691771014022835542506199843579370650033254331655860453206194070341697270118695425756729315326695480147094783414906120375657769184784698231425599484773970532513037188153872163381966197546455052741726430413730222591592910749449104104308395793831553674482983814863230460859942228573198292539528954010549460461083218876241098849208984493135013766058439201363870607682722729237355924252766936171711132650074336193091071515134607643428428552297678140035665007218305602077639098276638827834328399279233434549485859932815791046299406642482521981430852707326211862149565716850779190088165013944680744104690345855073778608459747063517369300517293757753502887854370751408933549666045843644456862274517435745041245731335823309585692998518026673329908204130501324459706289838891802000587844587771658741981173479243197360152650103734653025925402646905064199026871201424358473115891452674109694949355937011655325648579423886174321721874832396963422281443289951184696529403228587757645095337826575267973089134935020288739268157355458826356712989719680180969912351796972330216622981606616544091386447790506838972601898007106118917043149613397636646011397304486563193105475384192102955779591717088226583355833666761513960940459268245298901107140108037597423224804889347968798579151833911318567951954247187659041425787297403474339443495487229226720579044555380852529677998676479572794808404644934598707935690971507194212382789303716389275543104709358783435845768038653816408266809413537571750900376804260047159013344492673974824099255417920856858384744616478255155148971639133964775919402358880607262777364225250014101857359228941563752143076005432393751196632497065376104957166870452468850835476273855147148062001836924678314521189707891834235455244373469829793560039606839318919811137098462452433073703239480880844931368330963147358541439587288707975995744034968518825646692131911218680193436707963111181630479809353902587841940498565520870894030354445511980491623941701241858061042736256078684220406340972060255190864099848190867215254165537767426114117307333977925721011802621219412805756548934560943557536091192816970764817734515045173349344565112015781335357795537251069608845682369883285569216302974237676588320700541774039004013284529710500099709019788183440415608022364530678114858618838004407354541531298091682571061866965539432838117882317368965786990815597782085803125266735806007259828824563289818172637793739233767468621787725024395227063702641728651266331163715303238982395278455943452041489281434129917867250345706948193189783802299954093987089471640033307651461117154743236681102462800016020970246563711714809319305106469965976803281223599531591040093661768999059653690951762093835998596060479806170800706202837098673937843392907926959948161008481178894744518368801809943098389262103683257709494137799112601493528224735150417117831624551467173426126872809732992767539088523720216211103529216848907023071775014559422177563050476324038427141252235078581096338029026153381785991618660873491758028397652002484331298688334421707031612324850436654037094315389775326215435238807420680240875259540995661526255387003741662140723956814644173813257018219183810774295089103744898849822722158979181873917387231845781639594765218840261932830247502346324511219239250989443162274477419709128660112923372138594838764647009202259793244860397332788908941434958963533704613842460773607769460734683841312870279824100451797363949990995146027937224454523324070999803573092647306776095233921764724434457417989038769828264429802458388781000226128328678030034792616057192914053184646146086442653527941031303142490079171357173733543489461361262036037797576357251282619262082981575483472012473358832311418798047307629397119760909763480391921776569086226572468978920592036651380712682577944610796142784004934288318182875735415781535665989729594369035173838219099555292922966549385840886279468105548170348600405181276631219509657094898916349475521323747516237017371648950546545699994832391568642373427367017786751550621795415651454897080435854902817921532135978815500212744414920911402648887808918864968524523270170493490973102144908739739344076897029230940046464535020989850292151138623532267801347472594344064331127545592425896221620708974234979101317311936978515007449493754203922944115038915141902311847273295874884369220453939758893918571060072116145894851258018207952467821831176572491400804978672233255608292568443009377483468810516304908432308302179744311272403331686540512859172093504498968211398815917865528200522728097361317059264038829995321218440953262455895007043638668215509016963722283870680688243875376614114161591728012874843993677930383787704683703866284488924508655536535308031401250097942042156372428039643083188820442471325684077998761652715855719976776026880997236459093176368941632751790257396590040994252732547615728723712553811028279601004208956011503360242786505262740448732730350003780945065909300119935098246340412105339829710233370446614159987975303095982910821587785526494494899459392065498080267545828853373013474891911898926554107122195586745428848572246106083601775382285138546286683313613461853357283456776899489559839061215083770535733657034231842073644384941045504053972390498637940472393231414636280168248300526584441122675211759361986729500334513382292438463623857597909142472081286760383345031101725548295383205068128849974624211463984839529160312173318203998153120742762599664261517256615789025298004367772906065199512191446927065556092587822016755851158909976483677032979267898863928092057780957835742425221697135643394030417041493313942123384597325894796498701150331311747896658505763410660123847113781669103434261753259957189748534343867524359309448137853221230202593143808097012401722850359180349752847097186645066571949389193823598309686631192433451381320629361487830995094364297332548581453958645602595624528949633828611438310496916944388828448763909597306994792323610115911327620395781648264194237456159860981606438766364610158185566197090627888266166429669872171424132044767292570269706609462651538665360925388799989783746237868403044723857851707741543961650234002913354059296752898681051660721021923047395513058901634063776789188090428960104864046020788341325307685604474409303249225545906815903481232487490808827930937116177489952803253436829077202119158142737300593944155255734778515054833949990377659591584088452196204190167890755484082604633056378913001593023350366968900195226801620943342944753101066395448299251583548423426850208625204521014563031063622117333502381963937721958658709006278687980554133157546788846532234602803098809576223219193354357405170503195416108848365539086652246143320765842421450425698436045543401441215776955417272044264127911180373605528532754402913276270939685369574705319114138971821273071075437329568326753069401687386658784273797586502484689082644580100764724123552021701201085433335119823161670700646426797472088293055595955782031550424482718349452240522578118919080417044325913149490148026691034115559103851407302911160392105319971508326854985474614195462766877947797041414782487397897609650506310598208506621515693217188877527601286776846744338612683014876590855005907946149064916942211463711325027510374970625590593913787376297793377418482777897685272769460574533843155259327333178383600666429682103252581063814994846597320075254933911757504148183949251497297565314670745694569965300671682891383946036448065666109811705187500447752338187652116557134317232601013256600807685506772173170585105085027442310163692031981202244609094935643381032127096049560410606724677251449584283176374819849583440595972430106132173556512496695071607585201766561128921355305807133659276193622996854471453694443359094574938367392046816364908482172656437219834341795015723824936308828117977959860321919450198257308311035737227525320732114305168049911589295688988543290767066690856671344842408644212923343902722805572095293696139713801271115010761490915464782494887750006294356278349746620096104643936288951246835692802833844304198101690606079273278260170407143314394114249749905333374966091957880668504554021532910413315842536952461216614977579009288640725835483996962190025996942275614558244596530359524572579484663981602250926421351309156382892873620094012493484691187938173692880620569470927275850654747543130561647187829459326122119504639939671528285057288967529423492762629323711622823644408131722818944683967644484767773769155277474233446549198661039854829339835489385850781909937350172662747344969224007367984462487739220787122128892456162624974613163752497318822105174351962005044911844664289602181227949185403554413658624525727469011937440455931245903592928333683686273703482492942248213078749030719430726876424168439048747643306819005723605015413223152102417332474831688970685094204668686166228893462721052125048386207025942696083892415031968647237365009857704107986342896811607586638684329990392445732828393563306295540932059316879603191494816895488454673181881841321694626869862076585229131271434766004575203557522819322179876475605488431134663901096550290453736647214240745993913694897854228177285789205859815380761660782096773085198864741219516431612230605996727251787431309464676021011810819947940619213532085718983772738253353601075166359991117007943162893416411668288976341637538754965009245475369501775270534363205592344956157924719360828554575100057534151696421892154013131790130794160284353845370134902040185541460851451372478633358415223266797647065495405350094034726356404754940844196670634694310911704125143222732082728382498785355156988502304193366566227009205430376035536605442751011989222396781852366637912543773271396191850420306553080826730802559544150780480402993853299166516034196251559261867060301114353981241986837397274827862954429443136799612167299609165884523922083534116118482022402377232308170320830918940594233074015451205174272447270736804841726138701972761549349594231787966545611513199667216313336215940851693105244469516184430121012091729529882759924445444239415847010782367737915788196087814887592416157956847718860199227605572730710390698509315637685390555461974035807535303544997526012899630336927129299920857539344729686673927268911863858249264170030956488912728077098845391241519581676671866291947530568059918273361468015333615397680932394290491836031718935008368646391715548314932114757122578206838287753905527958063130404455706057107456822759363308327967402385550516563426598619925655806593157202211020484486495023461151459350495987197765401320407414864018378803231236272144134142871451895085186408451169202409657256576450817444703556602497442059695813656840133425792737132524336602266811047805589296780595360940452486391398693546149244674690176858872889124980512374474475357214889504353707863704714393305134986855492333148553168630258480846547500545709659048956093455555943022390687917189698077746239704519454905819586287163535294627552318808738218921256631960975983191801874171294418312309257159838126146526303222388138617053239609661931551831440412154619870150109240013681408183610546305230659692651295504716841592346850958626464403183398600929110547393869331110719837866766356113182881334529166657664095704415496809921658734862962318501160782015696704163513461287513585753460555768585851681681867991435428734033154922989280489696229302418984691569458058631455598815577628194325838084905760748746511010911967675361687319869918252934451151305559704342730773289517192489862457830781328990246338665010196478890520347721311539321012528036492560784610547332251794115285703214226694106205574841811510349430374892173131239516937441673823225055016118524935189224557273828516934761400794485264989437636841001782521857889949537757306268482980753635358772423223422731449632236669274861975068741906450967472344304260834634999637549276490123685344389305896168041116296474066538357384798316679661293589901124733725910295662920276228474770024613464887221722830834950079265877241889339265173789027077064412429314465690365099198492160712200870422007264241207294090350804246028564719443967944986820483424650367874450194298234941330558949038809971755767722130055097556707164894709185494634105103982877442277708286293913653695356442376171151237592548368662754869230651712893371654183735500953621430224397859106424338912325769626092467152290996083741500697012220642191244130377756857071720737532275076259266674232558505740466189215946383029867056185582158045443246370772626731092921451855993381512472205198294480028185866080259549024774784701299748056066187857335742683447749040994159827187498899771648606336657206361124627219719237842235678076046260125452073537365714303717245439663588053656174681481721458202840732260594723049381707838456392951552351060942208346626254225037042647619930009088728134485485059159927213609716950627915248916658227861654035685327647767896326773305673777595608731709861289883297564948120048032701762521660414581570355810892128073123700214265582701934603401108804403554504405836398645693749511390035824358703193060209576296636357825605476233347470618551339173648643255503136531179315276946877191882119835500244653427220894071417914592681243843471912954207165561233374427070633984112545321299488080508600546280047015031085727817631126121671354043686843560205104584846297801542637371435048692388971280184844460878767702799212887886481049297481704976231219795842396319405954609183704453335360208389262705001321759189923780265166598862306104404309122331255605921418372371970614837029914514830911799890613962452644526843361844555261023918309136239888368619676960117797099393363902374370712140031675679728601926595996839813856112006486281303876456562632503780022230793921088640180752238686612968714921848227820544700132005333880170894798640650766162251159466049649207102375183857362839821092218921320225645652720952967403192163867135832986127582633601877303403375689023978895470548677270122641264224788144237408808985974134046515649826206337259885587345235531334739363586621439891585964854718574520752296846509881434197073306935352162173011623549863939287966332912118818222226428306338403657059655430230630591013512599657537385327595698977523024106970330427716666650555070870150676411471555212430495586483250333314251055509534552414993437485927579110092364614020884801380572849405795314236021624145202325084902179762962080197973074445783386451406809909638525298912610081001456598027985364499740356291938805888636498464357236743650393826668987997792109925705345460111093130511667096700755403795042785109889216182182873596848517191298137965007845236886098253117579399361354716028812732983395661072709134266834819232162028943577714263035004079152614563988593171065017828180008444459197191828430834292796266383988688532726812993189334131486180359360176226718846209875367712451856988758889538856889925007319802525009806300414027342358351145623063285120219968549135609767627465322091066095206164171150963845576764722875528189116467336160027952089500609588196717690390425087962677964013780219736844183068688078747364839280201380526942616688127376709686691346581789592315134886763829375035589794541923836190049948659135208987835477446422557551380602804473050111992664956897179825047774380029367826511416694186808046075921180742410259306014916410406660894873516826673981334895648315582005031893893156316735447959808154916243074413526786498979879451478234456698107897602493586222079551093351234795743416312473462475327962369709703808926917202652748082454889185453311641584508440708561774129428589678776695461927179066869657977999732433415586587260096415814530529878931431576511858818439649288347255752655193523141409666915207077224313898571637160092058808801945496748498183089119415636501338605691836600185615519319412813581612809263814079151948993577317562660133289536943542190427976575007692301570314104227621890759534929106160278141561389943719411506332939514902570804184765274903241265912088165342593319724090290218532494835454996962367817685440629780913271755044960823944854068607101139212993607725512639164390076920895363165924994961274538803099484658894144381175567640333913130457413376287462540144086847226226991592257931008428507807328422399912962185552017948085217094572209848014111043569180085824824264537698289926146455972201354391292925222797955807893499071271103608833642935690674638175216504594747371872443039626180679455939926841527938438452225697180854522462862617164366340113807642268618808683275053196599621875374564457370002353257799604327728491567508538405685940652710052020384032066869294844113191996658625484449453945281640667984244573075424817921520502934069186132227947489233620567331080901436462051363973024319930200841083836444656129820655262008983939918794649415750099506182481894670906111413102368244187722527385077017821934586046901820840434518416727775946774532167863846439896962781844002247676436603061474381169489456060151671452147766697357246649716565474617081273512522685784027809883600878101301157685367901780181409817873221728668094308861593642335033986284443097144163397288722430439102799212515108548656409896053642663543400194227668650245780687227540855009784090871116815577833138682736192338262943415773942847009738034802853367899451608050525390243403919050260068745152333184398761024682173687217860175894028840338027969981159093543794276140579305799447060039544750060967599668267037158487740608589637058207448430668108679477164831150875179832862833191095850572755262216160734737401403223555091752830965070345392906138314076439353793989175571144505096166767072029738775996705722178330281197467721754041545693857365078484846034417027356107432741676352358755729677891510223568013461717648837707638534877324010159605657810252098709238921515063402322677652740178601336033133295315418032194216299392028798098492761781144154679590971843837503497048048349493442931586837407872212522671836947746072268020754928815175176552390624271036491792490027390383092906129503377767198090072844377214797155464322711163249912336820805299644320745293580547254713339839050152624259898624958308632396098389757860209695719704504991188122215535151263017547399093604646216434180797523707159803605923191285550590875931221538097320541390271229496755908792678523254405797494365468144071965005113554768699210212826007336748014961218752569627091852403265650386130726178359748068454431689461475321241987933656999643101637359252737418458253717863534336057229900383335274723681490749261227574474826558005122444728499010460630334048668844072983914628488725282722484850692317575209194715045222466497665270024968847020557882209356913574860818521528584498991347203418815880013369940049048963482195658550874584626163004345429956351424059186948813249944308330379499134044263319731093574258008660796250127575267255863788250988948122132629248774343114300729154524560714795246889792748751108026163285958785594322461748525013908258828197875464130817307166149881071632427538052758258783421866625734622395400887921667851352021345623044904241626341706755542366523780769192210791052325509881588619030252444381296651491136875619184088417764913226796714348411999900133271109158656727051585323078261180633022436269796177297403378477689373496078668638988566815635928642260445067335599203375536444737344247012594414101295509164609742952776960308735856412764564268765017838917796960811253163213508842757502996848648271814910080501881291568560039336155136568339401554928758290805953110940365556522062187153272402902349243310154638446731779296617002101237510356587958102446658804280186000148507139700843352612377291789445234123210014261553571806430195658083860654211030623095811573551260531137744354895045554808384696735045764918369709398671619647564924173222734896357020118382366107136171061147331395350422466582116583675543910090879219405229153508863100503091150240881389663933227263315872034442553038797276088266821331527446771454591063200269591136541206580039841114996321707210601041162347531384452071419169286423951874887129467354529462728375699323741317174904424360144435534874584069703502500692556252995823042857628760842074944372799315228639615549640973721696607004634142930729719775126686434368147909499887559661619848433864346849324159669346956523314315039513935538841964883276436675369662470064633073213118153355357050270957816650089163929314070054189439761253552442513142141954156346625607181902944304025888494252352524412321913778686580149763223099358339557827081612589020644683965512365769153054093174142601816805713732238552318210091295728079998557821853563573919718990004696812803055299524564536514887516224165363286125029394803910594471995976592462361143899158416997554931481409045582211616529464277677210187531781334123790503058480863289955277695259224526491881953677630717267923339850333422367205975934055790163716973730083331746836544711587485091170658305883205577899256849646625133675531760896643802154523155653178076639144836878852715318965195944940155827955303681803176979544627568666137206009229161898571925184680154830503044616108565983496069206109813550890752516881942592177201418859654511139504477594413611290733546088227736939727013552676746990100461611698177349955935018128903493485538025227559971466940073726289617417523354200544762263751266307521702741084905290383811991467890871033872952221933881962969281332454305388244451420563616422031703364752584181878133353932054355132651194728707146588719393330752443525796959599076155858100332106574543880313451099003584634692795094558458666453366554190590887263453315415813663074846004320479260292289068068067460167795613717662010395951596397560349077791843066826267001942918299618844851506520352064584550496033616746139267739638700236752391330350410513834769080480972211796544976308129420552122380838947201373433541354933818167136666781216945251357753567968484636416398857777262786200351168753828920268502830939033554238188267228147004043567746890044853176739739411268902994934321415040921628862511489364076512950435595472126670595161195196550033720154395094975860248502691826280339123876781763274070689384215953725554172119563405439110111699012191129279507449684198142145737723009617906242468800450975635194946141854435584101979634558720255709033726887706803952908310631468766205875547918957356790613718884783014709574964912852531984979029626364115892335381260380782183194845366448360045213520481090247208286311408506611093296549403351607742898555051471264961169818455390137930809112475720658579328823785578570916303588073525960887540960652671622234131339083178150699612247922863483407374498230510520935722401120653203869205835084394026108903018675758394162221780875631875664310169521658865694628218774072782083709006813970395010820011041055435601400725237619081063352011733581191553433431894322749845595515790080472294923106972872754307562523227177151021276472862761516739609881102817258604123678965366206268593196033559427355341221194031515631055384401337099094045841280141930007093660960496580212551306332938211611046181096185944722399651406645367915526083867366289388585980772119376584472690177289599012081900674727741366253934590287349868122705802953754652920014560230921275760388894527758186350673628211909315335954097701341728783888044776924618202169245553434356154677970727822853486226543998202780709528181392632380153089816614061426748866313138452043547279631340586594862510690692682478331871508170998337793026332147584005072017660181780632171220780966138497893608569717932269858354930562919971126897940485268072612471361886737104944706495813282514564091794440229821758401720577967395106372976188396942870555679780480286727564074028777863977304758598585454472434589509904402877229257507875385904923951946182031855960947639564086328032464074035128616529536677881867321869982524273615761843560814086685981761640680247911276842564332637979224334030886013322992473818864223596053287563352336035078474224085372974317063849897773196529139510398178221112008473201887867841539189472210079313899434654165356931805537044094419210307601029104768283533520453017744667626729121316826842394136373914883847239610878221329236314529754099274558467113360462833372531440100739982003859826154695075224277805645094272317178403765035924463112401602234060251542021686596528969907013860914469355311077216101704914948305438406557478886391884552292840144527462083831388469172809176252997720518980687079403865412789524610416223272510393080093495920034534886119642978239647424922749768594239149158210779219346064157462822945564008090061345400152559632327155880342767012549407864945199748461349261746243152706770469863563430261699526784068820927674934350994025635583094702841800960079095177540255155591311123114766735428902092282452435853924447162194144667581581968904474815657035241579407601407823376657242928178250691858001138955969688313370867515275557086124442000441649275070399278011227453656590193602297853139004490170936862907741703475977642364464596593518093644089809135429796650978995906763822924744777950497279973047628822269310076823370799419181057234140115028612626042100543916703614762836474590296626305836616537092099916600445224836713622782357358431314133838724505052393959515459381738002883753924832513734418021709742648478856643722182083173532757410713960751305687451829332125701450487876520869816831201304334962365502753285706070903157288848304451477759052050605934414230289016521220221636320525325630798017374439502226307329138450803258858194452653109934790590240721705366356184442028828845462355547815961261768216899604944313492920443866687827259226049924259307950832823978278954690405021790904373130036463646520335146135817816089236249410711285714981162967700070843042225111476756470872924181917233910697457630588038547183837327663940629233543699934585051866522335088253869059580472527025117697630798973325410615336702838927510843963443467896098343541993600945907752711516941324036206580211657579023258941989930496122750087156485657243436773878911756698190663099558173866372200594605933908849830131374333698189103823506435004968974958449781567686202687804849807555725072865438558269589759043758007848729249913700334072111694571796497330942293108056634237201323153416787903491054011072035961084861874579724598953342019672090386740369740837100288690935884227113269158509552677847845470487289295196981731140012649468864156517703692335731918315494801729214965747313544519371170775450619478518925241717078147860735753564032667345952168956631931566201843740326310169368283055454438777971455720944629795270530476515154304770094031648524930769742421059054269557679404945271162689218650724449129328448802740413990753047771723709232689045626360578707349981759786774956254316012448022047236126808357211837337518089672226757425206356255286806927743601303314014669778346812390585648092515020150866655339677887665390188909339009196505301789870076254635323241358760405867542133909238425162570253163065595141069872598206503002090472114041411413006212318146438572176725674301199514691311814099179015483439477009696283504391034325889356603226939276355599282225226890985784880248055996094352259330950697951551750935913346080040194508812425729144063197585133475852881191677046893270490157760217409367032346386856633868035155060167812037387020161165704416271532028193649345185756907868700251912925053331489404684519507152918382753575239832857481288506030620393486020826440646731975656257782327242841525667512359585805234492861215901273890364497186271046236490259648168466246848585867393383366834785572551557186755423624003368786853938245218233656136513958786085655899588138169283563958644527333141408233626506217657575886257920810895345614080820660082431381056812408766041406463127620672415908948205059901306543074687081032888282096942246583919487108626772071703953793801215421352922483633657019306018319183212271939979517069533100270712029074750874396324770690962266977174061110081590234280693938938076643218358397983895923619608003844185917241678217418237048528118827214774679506241261914448076125668515276411708928128696293782463818560596623946751977581348003176861737188318945068801232088771287751826276983701737546389303805608033500734960731560452377212002869977795983157344650923983137983073632585849255157949105558176549245263973380300724664750618948518826634605500493840679427426833985172962293976929388545098578658760272146081330931094502323482278336665228883766172186082379492935787722932389003864832185216468405828142844304310750750860174025829463742948380214850592341030661344834880788026081855452371209404908778601954128724107020889787490613109002470871295279389795299176806864246257122938162525008947807655576268744423046028450056487234063753877631163006983598308036748891288682313485032817950572560695211635716563996855953183138115570718919903002646388448283947850219182324571443614812777066922999957114326782458276627004837316815598525352352512220104618893481878807851773475268219811431774222480443518568336968696891103108805187292130196120241574704002951531983023528371284939287496708464031883146339910348198355239719194658710022498042834596412626702470148103072568644830347880565884916196585323795165090310393217962942455333563702270298832404412778899023264396506821823632070935795072116396764867220375861804515934614777222890390709836851775805748324493150112067925940097917609037270777852840130484628072342308751615503351184930861980053901668829553934912190097102828988341439385625555318232500731136696988971243566639467831071944555688879521285307012228665095451370305004570146263837867429304886103884042227018279535293705206827647324840235506637684455159979012982412841883787671740054724003570373954018646645808826128714578189182048760253157146790875045137068768867751114132795263158805565817034270840790741991089852291537047308538931110720638179085080414791532205381280953893916863283013282077997991702033832313349581638012467347046743741537668936182141699375704789839461596831837863604004765413156620749685054330746982209448102798271620563109661139919286017123321765927277623787709388565474807078615723990300502244496074218212013038693126193247965299577045799169828373593727249689265914106575664827047587871548767044030456789142418196779790186335030409651461032470119642823472053287108741059391355257562612115043579032573117284662762629019178299572569694140427269799915985079534974300467280704651718620822261332723293570893227544951006757227046560813271103049118938366085825807088802365469380246808269355063051939090173546163371790307326961798418866805996708650802534756441372883214634076850127128745818098678208534855810059907646813310975772593419253423947617808208317223964927966695904017527128601795790408581018651521635255425327662191307336453443562725896229477326351956931150773397516954034616011886954604510005804954944568617111841873786222103754210130215726812861787281434747794437532831375590827173244996733954591966207238944569461322879183452073411977481357188711503543846906955458918723836691980562974633363888807716954736452702865424887293090894048155790528650718748644043079020099425956769315222156111001729749568111712427949781318101697212323723132491102672684419286657546198010650800970942057340888796263216922841822960120904390813311561015830016841686524207304854707691705608459061170810894608143948597965523326691230597261191214122862857779191272167258310799833730262346497536068165453723234030871110450579738692841129283844902311539538021182660232378218507085451692796551888620052324824108082399788637345209206154353310439276889253306119226281555202589999093382053859944265402685695991849264959831779570956194021838579661920932744140221059296720538009734288158333362632367814526722346176856319196963845884730143665272112528608027392187826639325429815477561206653801589653499497541327170961619599681506997630728104807979295131150650586971486920771433098374031606116238408126699263179411235585028900940636304347938825561520045362231012662241741995792223796782657568343088396340447951735865599489793523444296093735439280920401575796408421055079422510477281340130466445076261021185589847126215656619503647034175796678432119985724224989814154854823137395702669100806940153105202422469794474907315864211699519193465534812745051139530412195702261015905319269360158402219701499833714134555920789120681172689571316456522060236171518779640931297196123138603295225148380037510918793754205865345070662608239941977317462194596581009151522096893570981839191023827269766519053000828655221257974280793633746266750654702907631544785806327810571482628878633773418729333761491108386648710184464287545486846770610132999001398473232756936002450607384712547758037273748393951052146419616552366078257744576883717998001039952917767643723352496523725128642287874972831049137183694228157179938478989729093261559677706208790925358274807633708042650080676477069124880099621435522311795126315905710614950937247894236205103643638066057106439517523743468259040312396024709078485925415112965245566903215993585817837830880913412996352691503934518287830168059382879774586301752062625983473396762319537479533651056272033069297544625229427054165644870170280962563196053251299566092812616845785704503745036057228297003312110969201345023936919761672242034773935547181767752997937974943608358262559729543777091703475150092186097069080167895764584415856330228730015027801224310497028900919475876353077421486223906966415359786691303296867350563573281425504388643494855045575826194962838313851864357471649871014045332556107810120058414976894163161822746332809884747352087929115944953249664527554550190290704827835444932506899545833821364165489288287504209583015763223012292577271227235522030529079489797382235005660840393424944105532139783462985352696629829401597025221282841140770439721191853677922756881119511786973810234486175517586743116125257146237155736599801072809724662346212493912704862694239634499741720538574992545708845182515779014501952097493308700038395386337302047481833315610730480625076849156107023005561148036772892655822880339144940050055650900113655945052958714575521038497555380485427814894170143487738470826530886901450906304869259020813616540195992905792759995276526303886237108298035184809211288446955551219743040526008226819569124890146466776039596217130698650406166525595024393984746410119167507132605740559382151111555842230063774959720942536610066002563819393316638319132936353627319720149228172531080103877916575603758954964529122325589167888810079761112728578117169084882114121905848538184193243595504809307403876212980678489547118024575695728614142275637617838017695304838357591792670996440911384344881913937630800999840664180169898977912343166252670127297114632975571944243851462008762241646748016234037088892341305867319021322667310196527371784049838875382343426881883952114043438504723998972351105702677573211773350240784678211448986909003184271772161427372268819885777120237882187704015470819436256015771190797335413577515346133743029370274571900459525988689486539556635404423931767253466638143735474166472325911821894452882274458369392955826272759167468930390159508086102196831369381870769547746289920961698943956274020053019584812750872754538174183196405577004159787738106038911226704969851986089522403679793720737114072401279026848212706963522496124289900154221990768771371241212268340164611974460622443459290777886287303093733737734767650900972327808307380976301109716087570379317845105384131534430722859260834656786035893094908349661106890831319110132800189620874335835909474677634499531800515409038498874237554376067060923985750819048948143563748730654691106528732242794811222682766581869363248343281290249231235690400328703527644415830885628629845995947410063313073271736769466032987584508275651723592610023211309696306549542600480219952730944575102402421772565397197581615002667185258141616090257672328896405296866987132356808113828741589467606171772082356667759230229566008856461088598160795564195927061927681450700425263640664824504746805445600843425119327066534627690373857285485121620889553909038590370125164794982724327436516141506713787840114533490320082162112360922626050196654459192191135649433339706444388921611582436585607029722685012730449354409770400908946819867161907679035220410442574805102839861817042500149976598675648052719211855170120162739727401363804560560805156135724965932663825447548062961731973953392164249508744744886335950073027957575901310638805916898326493356416792176756751793350979472670296893607159118671943844371540595614671705777751060491469300337694601387119818023078282262065549916544083563015386927822569244361886351080111485696882358171918345204915226987736731298970635243112547381563708266815353791390590746562130493636312921546259125466727851275215338503076096293991535599352901100563931456533087315601657407365433983004239024537481917067124454491286101410754172887251953656633349093216122654106284631554100939171881298675827938205797123159753453385028942066265690277488837851900967764034212024119661605219030345151426464617493272977299731051827578538741775779377720846696480064975200068098820087570307200331364709163916800912327652374578011257824944742457704991398291108140198633314401802449338696899648835375961252665829878990741541239541705718623310170344240473744569958807296797747382044462549587379410439833878415075587008885024670672105383931791076536287038948085234647825600689870753306274287099294194917100835019194345174544430169290386201028024933891084949450483758531279215819318986020120746603299483375835787240298270817856666143853947922238305799716944796619410313430569900964698161618703563747641482009499377622092726047361122791654840093339090517156253921278575725564291584070204737012638774337857393416140683671993660646409755402820004370917555763280903098249571322186622730537988192620526486322834666541917024850885463962444948139155814628972807816088824024154695179902969274700754053068461421318314084582850163871395774686591472869423698529339025458542610417693628894979206873596110132598205093687936099389697660240785143756293111673053551266647128680621595860411660490495462228797738139746707469077131703205745627829417336949659963103113647758697970907324932367433550051153359872467992633475866566583307521109406832187257000254239827388316672651978983552851836341644413311074286709137712585845469033206670316596873731955748443052260119304084451225222679246984925783036476350928752484349252753821772915171979442556924736981003553011923685471907559201929592422888611669111729753519423422910450790775852854520642476276202115181136262740551849906285881125272992650587061885106132439103326180350559491655184931626771845726627989458315839548849518425530210388945289418445928298814696788559761451163428364863787815167340877575436868691036626241378411894854933117559022733172559994630804346216251913973834004264505209355748261612750320855044884280401734150951279967679750993708067322278935223628146583909144100949683853275133741596450812034775363058048731388023831659717808417382413504073244531445417736681755320174772349549503354853766455917415381503593037197896331396734295637808261896817922030862639752474036837716979429377443492153250904810709206093534430664490178727198397726749022982282509812469582852643039368994447824374333037493555411564084537472546984968101006344951970868594813642878227926286627640325109963045438680285867868747437151541856063350821770806145823532308666130436382435278112856211571271337971574532584089527909694018958441351949392999357811791091642809152944308314695122484698831161821174929890179138530132118773618519487995000366933753356588098031937599111277075033513262054135293364500367203535425872693135503097810372046072099057368136629428264715004919132966623436037061145484389276350550392397306258588701619354648298237846033132596592582168906642608060219413681457456645174603471622073003549951736065096427211156340854311142547005575702818514089924291043834295552774576818483332384162044584014192508714059178950836966593834693176508905197631415223949676494599050548194456149983929540346292602246129816337286014249236670379982444249089785719740542766342202120762342723118494723714570324090691034634913355891370052769521830324465325390572321597141808499048377441894859477066089147339171307511297597932334772714612335459912719163011048807020271330359546887742543873679087725792353088244133302497645759604334077754836841096558889444821101574660612297613256251382832967248396445527979902706160557923130221993747940843260848811181403834423232050145657200659476222606361924717543232220476890363655012041179398902871189018152830377446896036812472998842645557435708110525613051462076189213843856054702832297577147388495849305239836495787719563177982937537662502567509699208094803663606153478418923087214311065411553021356320684149751270427191427588593010816117429638708821142612892330001116346077875999824717027766762640295978055061190873209602002492714370800414180698839448725615318756685170937982109558871682475885204416751338667424941069447281434133386059121445099621423202102397875581463270845855282093934729631947164824415793015190138072773930244905713639664414307057086550308097802710982955396582010838570105490517470783909670523508707955736088891117051795155271489135337246589859710703951037895737419731408865319098069178804046576227127859450944495091118924941862030805783330099566961508758633290260775754699507403999009952857220889968645294683081683809510665835574953632814288523836427592931210039792341070649412544258563582485677571109229384910533828122592791749569650728895784611808963316758108048899320378759485109397237397164359071950575961828833027210840583092912964191552348375670311739261070223978169728303128688421747504816289195784683296346535879107636539597104198007755924022121995867049501494518019516446645174444738269024856037837921510582224414409858139104376299272793113085464380379425833920022129548344063368028596427569336722957273022640514764938941514912834917839635424563437233638085792086077152654823831941169769217092541569369381260603400980260996030921472856091274952448016764500136507237533175524750561000723338911126881289573017881437118088358874377534006492906581034786298727044993852061718324654189315252464963739899846504807553098949388991297738139493788980346410046270533331506405640867219853919638993205255002798934538606259151807913776072285338188248425305619895211772835211081018595297785127983878474732247417831509997692229742572968038083015323417094242489496681693754848807028133334225051145856824397788653035305707534251150684093559501029373606632724952346815498676933779881891597907466537938205462108986320304424959000482536856706960889012802708037648252977332985388303252438462637195185169436296491049862347848803042260602626931717882624149983971057590208675108934683498172025922011219613805209545109915502246455950254697718555759182391953031814919071739220815704683680615049891499483824122627382181031767303838373826435658552347002419679710609661881030926798143724753749884163685517034428002263258501317021432004136939996871313121704587043530442072402746723068560822424053159482939629583045787092821065865250057728722056116962833040545134455767407619780840120218055168561190269783841957118688326742186912355328597016064108907020701543457540933970003549543153333357427065372272051734387961555936334854946429331803212646107287809815469031899864721792985927403623925895526133885345403560387242386664013736083578128272969418653284732247734250496002080633673211809677077163786061870817142432119086952648797071382925298150609057900649988649604319795400812785763651526052210397186483505309349283703167582485274060205899388788422152394610403010864030518075979387968314975898027831029829354587963821333553116728141809699513704468649148323344124452524903660604832841924170895484984243284026759833760895965205801602226245970309761280295345098930826407263979210820936636983372577402207218835181950259894406882625479591736284511221169891979474167917311339913266904809348032607058457571557660529121043811764167050806535953045552605938524069364043259076472484315957096432726143257267245126647125375875499875667037313789229020112445950010283923480203887595127615765202007938190827710924270805175974475987302950064987374699628668430728353801362923802412480953347026732447256887796427948928015758679847982660634484897082517786844027377167510771469115092486935546563068727890575382358621163229482818200571749791686020554305492104088370464954522793343652721322042860849687727968229264419641746967090672541284901875127879054897129371463496495173048546893809769271303710132706678996168032903192490992058505278079073877965316093113970481166536659650042875631967040067162161160482401884997690458358033927346485570393297317153874028116909286078563129134773791883428101359039886572150943355460042151811093835897680067393861069241395300225971586161145658185107000857905822770815861160971521872559768778619665645605157520169156804568759592372372499436329582614538162196746502993974286568143399773678909455713171804061445296275577222324111520812767943538321451911232842625258703760772464513054478628496634270263291727032824204765908921422733532032572309998296789911926866526419367934277689427802571230066091460001220346255464873739720697305259006021965056185539515062704764941534919685413047012009780404976209415717132059577071207506906640351295992492502343492988592736494478243969411681888977073526430498625891931380625849798429982571838006045762808513735394348236608419401219186157945687703488505163190523069129938722934794079543782909397311746594641171068617865081781355814676525249857001223444096504704114243091463143980883897072521820037428825961441551317010259633318821544195413684554335799415439826976391774606204623119300729617479503394393066259252030783116239021088472899174832805746903245295185541770614067564254682218228179676607357274045498145180429029354693064650348834161147556291522029679235922468105653322989850143759450111332419777413427123080612237416163597875664533468348581657122968469219661691337056239965390478628642079745239904336326995794275527173920301926460722716761752537812940282412526624817936361002833550184348646060654473163412396599555441801810391318851927875644966127641743376264086764932228116080268278006597695964860853738692679559057085324100225158984033016908548084736970434691018358706218835022611622261235048444931726817532723679037092056714300851322022913226609035759430662361082790775871086507015006494742032635142586536425021536464723466064869173085444971416792131295842760409361268267180541973149208200328764850569529960949270562286471544036454211975160141147310252688904534376854016004818319989632215890860450425427218544219055634736433492384154632187147678713010076029006344017098984693144756517163523645659111131723357961671622921803317395657594316385701257187858746821341178474046094392958192365044933653729907510340012865122133946343114586734181759707918001337733805301803439558925397197881241478548469207953707372012470360077947346873473323376517050703480675949578008003923278671032243403417522336365285144885941804466922108254967260904501681894113127559017561393508646792864017079509035079857882178584355477178446459298503938123740230654224485464177531504052786850778128904554890215078561139701384389281404768575069347672961079297900664437745812826686733008681487761930258671249021461792646622333376237080741769221684945388706549632203012017301799627971940849307683136394618789428233391508992957606993552936745027068763669844818185270767445097461182291796460325943664897361984722368912233465318246597920117677352854368634168373299795278646626106041166131761265169964401196861744572225628171178527051552448501643686321179291130115671800028723440249849094174385261412924491026984256456959480896294304542338801543696222764572326894255020742159424509625208977531165916826499062779352153038237479341557826107573403359910834264935736775234807417092208342930932072167465791719582736875559275053717737164072086082204296063193047803921257029544198568625100805047918619027164563618736932399907094281223172181454515773784937120584278916589835182464862479888625173892405990413604657255564650196946142858803701002342276729596391614099999869898320978218716062840163008987821804390829716810874943462321228304127416215238191106909164379730337714462805377737142913634684071657902860671188401269896591082152135636713450374564625150469524539618240556307019478574673825347775364416221982574430834173637527835448715828365032924670776409120346108217445526879438980278774361295915705338103942100668356204938967723151968218294609456004358697829442130066562100052857007315628120599526345209970971983718299970952070235463507408054882520907728801836766863190093874159521256685403939827575549176293837556368817458253035804561309147566840517637563520526648704838294891867949980345889455763674751194136842512312118200086082680297268918003338393863352050120440406956160709098096442543139839484225209858999518983084317705660583512790591177464431804026836803462849113024676754376863530470079587652378103658128033695761892803452570758617141849986539915852980304188020767304897931569117265198402893975916816024710464682418927979556486622810050272903657301989731027577903612740472655795743487968427523604779125039213714838835929564470486071966649507970995090781340696486669144655289981273935943294110947142306305537817613424712575679103790321233533560644290859359411868761701396165674559364218112986655105850380342179625869116804536138132447744482515465120621643822974986481023992078418018966272458180903206752450564838376058593004872873353433451955562525811312307702815120052761824147228571514388504926099160139207730686893452171344548182760579673298515098809443744932750841693206938148654129002535490272236124428397732073012422908504238150776589793288849367135503854390481026451176876834065234074742551330200393698248016189157763688593483005038588315506419756520787389038992251367386149737618914272476798185336392007677595721271573279845695290283933126616755582306275316553781883562780151690416566067263698292088600527756010045413881237535458150867596607862473700412743842875496722487218966081329736757283127115795821921930896304529289061903249367558403859732870850184915067665520657841101805174613275045624846269358970113898895204044190091511600233321968314826374200051232461376908666466075218825471841457908894837747988209475314458958878840724167581769258677189278240295657802437151084305807460275742151025397376578639234933262873196630488698696111347625404169230877755216783619268042424727687911124571517032291372568220414882918817414413342702487449948210279550695082164830885615564493613975873410416166104040893161142988292150427975798725887359758189915613044260744047399522896768166845260780927890026269274998866633740508391611393256749838193804543697701171401488497125996847135903387536626854772422587128367977872999983750317824447789558607681194006171700449773696979495140778036225816832002359789653669481750488771592473273903484227962735623474670734523508444060945660867894812584041391768439683977004562218239726707782595590001483616403499943418155893688698112720048951592650115449270677746638183944835833442596753251054741221672245876482261997629311278173792868100899712126083708425224706921036827854934591876727178517051866398144977521361341361689013054952614822993613401283050257299967836736618591043874374780494864836024532933409261264723475588277152397901756961092357572876618637440884317302849791895951477417823761604651476646724703088819423294766834492366782107722611338321242282174408144091338540801196342929933888263467619803936417796881225559576212925314104174342161226607316935302864945503001559376230698364419170143650056489644767282459618872938409026347443084852822201004031058302282526394961186680413493513034847734963327761191510266978995286024039522050761308027125783381225085604764806356612176626349138195747954821985181147675355400872456326093115001475126811323583837876379203972993057814935254678489755341173607350410261077940786604999910393105045269523424468812470988475770289948914610021413412545937397786790565242288710415363880303094344916878516877519957737241844322835508313541719490340652411561274657923387384253746780516849913720464143498416137264235165662058294575373812347937425321981957350806778404221034212615566677050534287261850784053389642126148192910634451889993324455540269720024939272666797878196674995119821566929351021916124321389793117938206509943685133602151897063366315510756239689275523494390006683575099857225832689337828141340583904271794528925953611507602504828688157438656718835993619226572162487587952192629209808703276010743993067410083876122398490687044939480210592695788815955367768550667687541017740632876410373931353940749232246279177436583541012700682494992628156490693115484765698532862315791874283419588004671547800120723226651706633415033219612693508976985615080218967138979983073150752208115452824822090357964847798897467035159354185139131685482338645594669515245234928962707294734593561988402026855286355751402103346984329582548839406883065483887191345384127854901156485592511145171721458250363490234703724556838057495477064875683455841296106646488377295878549820901187264962744621873393556902552060357863976055297639909883888967818596018988875972511221648627638240142532806122642898849776993968392440165448716506866951621854912444290123137032729789630713530017192359806634661176661790650949913653469694037098542875321986614101667946096370262297781179110401419559806556986211202896136060416262633695936809844873765122818859354419527558826897130486091134715544847021254435576845014601960271179067236810643653720235324372889667081165907230637545480869186178157134654455100955292957629804804936238570197351513512887351328287945897290189193128278331684365275766459346188505471055267141900696717589076988449750102334286614670638986183116704484081788990988402425476245292964906895870091797667416572851629310187194130299490658679384608761680772169559910265929129170465315344941822732176814981265302395834755332280518389942504743236946593764312624036470445733943901926166355945675538832628354563404828270459458493328613389787213357567405474307528707151490217465397487983562049985390046302833899628216477921875995018987042530073463872454627041468224487088236981436070341912477874306384211317780814186633562145586654231601228931056489974285382964144845111986602504257074824629325186568573240582159970112313054839516313850048953569103330270317256422787436669436623875706162144967537749273295838171584117007536248445585491091145132794224653152551522051434622336599256693303181971116549629016329871930240470418862366898160649795915189617127810151695798129130341209815906849133665644838195619624355039631423494620134419026266613336359689787206708670425792026386482779743143487658889571611717565360372784002556919179615805881734696075764769039654718147801916562387407894947180098855291342889776663912330909348163900605794441234980029365983809993342560666639993072498199380041811435826595732691577741214069372675792255826520029981505588340335534879623309995060776766626698952422701523485699044813305914149668803153408216614167027788750147119573426825426519661922195936265298409361962921116967948830081818348351921398184398397473969010494655193044299118286597420822132307510666706386836020189860989586546917630407964863545185523682580465317689272897823141814208722771018106468111823719630873982003980741317519306805048083621521102372249326520322466550593052885677933771685806744517169980093808959784795721051731052196251643746112107500176449318514584684209538248651554042280300626188516309013187557554641313988707048531261294175646028051281546199557373263749102549891991337783759442419007118316917947979260165997001320514295278925299720463001022295487522526358018816503752662625547568403690348808266937870190883790797998806960384375489135844905441412553260265957042310879738812851501632842802026825572247329293379245102979374098148417530954549014088923646978313677516691406743740001832593861977677024848562180273874832838086094219187202291729175052750673107236655608030162744848011972976303732516917123291591974226294118796643881683443834315308828424900661329910132465387276337095845584461044007693742517911673850682463627939263552335157625837580462074915543825431866820374577983433759020646494803996615158310485332202007644044095568135891363178100178122790398868830121355784797391771334985505619089314624210569579549965127021351932705173193631882589463712336949113423002777520539893545920633714901665084143503638749476148979710064682930626337998380267083158638842066049931398461253401563238795344318603288414534581865711920663939151165628848798763484681061365722912457199165064929020766856471315329391116535438061001154448894882817851081389333329157198049337500623900349142973272675618573472549577438731691284059066455885572589915764459837436312840622447792227906281070549113340574428734218418644581428711379813231446405092301795912700370186856680070852261710949615878374389453963935517241388729065237285962644804782588524898068175447266166202359793621190258672289612108587780334733586116511964131534882062937916158223628708542062410259952658879224263543583474263291085096203712302658743898301645915266440259724310091171034522783145109396054000363708487095577952667738710440231947830465682502412359760631704328452490127835396972753134807423645984489105731727861108999983953216214531106443119300227916632138886529327770353625487206825401205954952191581454756134824236571187828757883838581576159786402734127735514948549058565186290352841716715865994292128172945695713658578337774701258066704734948119957936265970011227097544095934160144871960420905157703300218989621533985847128659337722203532343540919758553931151233293831499937191206698700386123463381629654546999011053277780645019913522791097575635622887865092693915994585811590739867240323492461293107092492269078871580092357593618781504982815989219425807970095617732651012076597165154197470461001025945597047778083075625510790924979644441235866839459515897876541743275052786101772748393634220515096559020580004240843461805267591436420672828669716938708479273781044499462241325024988707298396723141889886292430053733315987143354498915687763840454113768731425787599652064551452936609988935491386150993368088947398997662246880293796771171976546796095837402906938829004708511284717149960752819722306805872790208635622751684747955756966373275374135636543981550719671976030136071079556696141011154792746851463708994800420706653003233304475470780708514905877956987039192028682353053630499167815207151979938802172350657519481563485611376476938062682615619515763843654137310190995892294812660029675478572856678717764173719876740607618618074063115244648383742018006061850901335612846277468967358112672077704759528503597215003828605327589080564325476509556729532515966329836209249539911531649382558932074574154380059492011640696361571833551674575965141436061526073949127937518226856840928944696883222530227428511935887390799717619124878143716513086490121424024669939671562123653664318682260410876506707021131257794457303349987335613479105450850527794480244800622813117666318675384546533154834041279888575260217787226324104891016025990651060682117385055032554673421263783505957731275633162159746703270534482734210368738265507892495357003666913693116029808864454859756074425604700803716317182830872938466313624098621700737020098381739376764263728667828292601199226909318603182928319228068491316227017645606374413359029174305528562870508142552211580991190111077744775810320384971705354170135923734880808808729977215395139943104894284755616376493581301749358817930495407497570884581221906007009197255637434066546421138884841185462232465414410108477160115470990243876578100702283589335571409931622784032927465059327630158900829248511679157880785762384144917295267152162110054635989614773691980877523896081116127837322450037886421465100679519144136236759980761813976161423133018282698817815939648871655191287440330577611379416462990825811266660973874652205218267554147884233014172550817577339400918919141314789372555335424521186401880310300877217642356554495929423704880919885332599899207077195363779063109490270492329048803837571542649516400041000893553104801906125136690512364916149373784941121712597208219331620299398716625631605827927342560242820829529465715829271328834908376295596991019037791947610626478834044071734031410347298511907949280921273596460835909818966997798996809455866535448335927433773549429350776892926437373171141557467401831987439670440332045774731275079374172407133343087801889322661180736605143816532100058544821319892712124661224139792759679031904997743566811137524262346748412968702800545478366335589657657991100751951448279509582113816256434181503069775410813894913692957981259332570291757961886532727358089001265753681541791421562937454412635667308668762398887614790092327668545645349261946689806602688577016576980987781163076942159024932389002955936291481686928863068580656858779628258722484474832635850453262925808204378887679839885400863303791449293295286584401478399530543043728098154433467795190046156013943929347771945378945824919016186946466918398333271647997702188212442439590100941343443670437098304811151932746783005048927493071043829766370551910285484197968106709487477879205114657620335385275938389135492297246244192367146931883329743827616037322589496988420752473873891834997028443012871759485397902380268404624294671731657652126404021301064218724390709858636933403792932723076435026663294878734849898255211568497720976097123601394380701039512356040456044722602132196547694717000457334286461666113917802795051734620013277572432463764400916904047165624674543469118573817653353460370269204704589398067149147013875945802196125764096687748108114267178619587479434290727312082924248688878415135837012614053677076142469736114545930863172818881206298097094435949445724126234707178651891551772656163083105669030103902966906205390818921123559555265926485424127577307644712049580571006943993715836910708370573904959003178192435682215584948520283616878898576169362919028635383954744563992005703486631474192244854926033582949183142911936923571247114655984463338359733918316596482644680185978896483347787808581581409868821068992741007016500901549778733072117809000604311016058931733732557703324142638976587893512951470974690428938104089990657577120094309858156521458734290687256456338992660164211728331216596626556929824304952333319789380486062561817856403888597099084456266638788452162584100686977089406382541012817157457471151856255660478054188947717604905482357082740251962552774864174724089041561388580850510496134484730553302017860153019480821043913254180911594646042484894119237584945848905164319871846628756816037357485940317050672102646453270996949405211370206290133869269128237688220163391745876906502199608429711688592376989045598046712958827882305309074771527710829212950983912448393991060962878600544404975417812463441099464252186665095186220933435311363946686738746116233616655708576619326955552468644104182033698782288008228065472175192627881009731692454062450731501343784152345844709464861986683374267964658227846294192405245862756557948589387830705119112912302965127850815028315041560510727335603244865744928284834900487540320291152030846604340469065668327509825489956323890080467459251213270955871945775939031248278486121037351600328178651864015710196535617900421861956394001465775656447414443837981835843664498228931131650898914558939448062483057217406405559568990533522520599563903699239548539411861378679173125692012343697305956069844212709119601343531562771472252077724131872671089977928375269270257905013736061138847425153748675399083273694697234572637907783463001570928101727806441212525240446882803084893715268087190962112885615036900788088602778682783186564918900473920423182346041197492849605493355847068150529555051604011237326013722042979051603624088334349956885643122106101235836317261282078806817218853362324727703301331206535769360697349638970465324388118531062879442278981513802594774573249924550301216909108336852867430475861917386994626379192449360143856943544985865698998231341501459331258149179134226616509615883650375219257851236133547598893058077854096219473394711148240844551999219263573092277224391463549976625987009590470943117390923052104104000428658377117381355677653068115077608166627800891181431438216866016223913910012212720603346498215133606101861629608038765511793636240842496276844518247849043346957280666961148432843029564284622428736800414763607050461975948505134974538389660930529912274403242372198523250375987494384451944945044134600604876578306166312490575560436842270776765273265754691729737914781504526696914087178720367988982359071537598741701211539471377698765673510801160510132097218547276800753457998322457454061326735822210394406264784801374279203832663366665328633204251582861151190462862337136785239271301934299039658800547764548965030232152752739966024774830979540532303154367036398172967710835747155891338974200572833660752518695438974717637892957230478650928238875746778251626321719230070451983963061316519678599618050554644037599139889464148953831166031698162781849704501189073151660737114464329513454060577628674008589539461105679542137567703282187863167445895091010079027764436882996624778740767875071758758676974412004483755405103097949362276799258949360720561613323622461938838075434309964829937190635465682523635997176547509535095524435323988047562742472506197737619604278349969323047223518121051192572984702543738297907083967945167315882667231333407301979538471321017291911685384783608009737068300606534561608360943503192851964280089559366535565629415335658867317192613547195626958929784206548606561996059138112890848043575167438999655675239207304911501237013574613146688340394772224181664297443608890840111270252987946525231151638560525086609708371464825102833981321552717337943341671950230894301193616408536862320094327716029659378685072869260438528955877623375620353582957821324964993598120223172941808735059312735691497197449928885121478078559961930017961929815067141320727113787221379902302892297879462010572726961528943747385112535704149765771305036836966886903409129940811810180288073997383640242122386261416527151557948775826298577508904542286301355457556501416558566065023333714121786236018417332471368917268672265275024457020639294331828659410647526352989837011636075316539925468807816364003015171439656892787489144548738508856882017881804631141239115861745706811265587206285289977175011292353973905546481515296606391715502687081901995478727192737583308320913171270139476145986305036211450976907884894463156131574307902742776672270004300346087403565300744608394477291375054057442288639949368657718099114492474998163990076694313996817662919616863491725359987516082240602251360171787861776358153552775400622044730875093864495356673277154276355965796088508079922871120512533535705925651590741925941292289764885773026780653046223291852466619755384691395319597479113708706880838089849198453914956270292451854778161012673506559696989747086530265448936749980588143438485303082051445558215084811275096359879496531803132617415975646966820507699720610869188197015094050244871397671186825487860061752295586905417874534687098927253622633470667428804965449120783318143689164831812398734724518575046815927109982922907314877470862592195020289228176512899968027659430364486982388888538202986615821188785939939229491533400162896070237348831603830478967791211668019682829762783262127188246133437305867550442039013161036683876499487834860299948634136279884289617656724600201522463413201974338964460242587883674037713378035467153049104126392513439794541197074687260521883988035601030115727094347880115132017549628294649231185693168154189273467486467294975559431742961360699697905536357774193398629575127077630492090040479403883412359460066131573000780428598759866739681715122953219410993396537633014049437075077175207961965789834017117777161526751129938976079605794129094217276233485884840692269613216315011752710154190229595524659708636884354956324708199749655166078308570610854012110318758319797503368127790075192792375298228582604195050215105161785937938216040712838928240922135094597403804111550430358891460363145392388341184290630185585944043013215117840133341554497113563978984817835520150257547633247010120412790033198562059637655460202413064690830201254329980649204301273955718813545437807575469962198218137037291211717681911280841233499429950740654001858686790926511084693334124748386099608765955234437843140974297357230628312769672169730539239132611074796393575078528083815838289042024417276819919107862642258589274861894215222378233129067669963032698374164390047414350717200961290383544565549365747019187722099524040738393340311682700866962578925643072155283761532778555177796685412525770350396089923124099542610579821850677831182413512956044104611727414500076557238387131093598506127708691816564669372931536788457852378983355281480973907462911061054514513973991397734028157537672239631942326738019459432448941422528074490921151802364825187071818324792726644026192972054341380598526091884536187427652315198228907572534890281616549964529201358366865454694081264431659599892590871483580529128682128646822273714480257074593724059856060650279665703732445431283167362455983133367537250357765378656715965884090623517390582798094321225674605143220893769608714128358882578831020117624080821919317685195965520551534343017547633938386829398549145717204872746130376022054317347316615614937077447351492560986054316237750150251026653065067786320910609934405047541458370306945976817096893644800149330068004220719474219034007292362875479448803824633395092913129452574901636109261425267902268055214839049698740549210057228458056442490311949482521405684647534783286363802479623405096178827117465998623735578470974618692083915841268882816394130599954892745780684525718172896074852923221957822508845293403504542994382785873868680788446749745407010983629192582495533522660523930767752234805414719120853058460272618145460823023640808934978120782767607088017692317432609031021176672709651868209943316644511479382770548058511984258961331898540533829898363481214100297804771537687987351813309708975586724625427737316646811065043747153154944447706904586976796721384326326618672977637343838494525659126253132522600402602341374314859499989391713468548008064481211528226323862200104813342396786968074416494615631674916658697064581008231245797229473249878413091147732230040678916377259753500929346937360890255892442064346146823087770886866618935746693223120431404554393309966423833897957112680863607395881627481724719549160969975906726990817059618083819227509799669958718428093638631438933482763581936515228091579919738315660684857790702468865775001811627099922515553287029231765671212145450248090560541486357237098038545185705210054651276955240478948536121827878348967382502982897976745656277238971865742749039348671261637541158465728706102693321751900834803974111506052943395755821664362924229233899184725824348913658232148495696391979204623855764632873993083126313472838229204966332011760060092600542505582220268385644341935602240559204536132508161797883379652888431852619953259862172311920591147169227689507171695840913234311403842149746289181301584562051931786527625306041727581644458244041575283629178666609346854154638898173847879626372554588090871741743032318470037430527645527462758446238522032334937681730577206977770792074727889598960116789011270529500067769274930329713252646069054906303696237093592420436864011554680309081894536076305472265140352538201226254084922496231417952021249654468059119904841041569393315892412177432020027331617710095415960847757410058035975359730659977548029400302901040521122940198685369833709990038670728428742311414667381255795779735430645964108247922692644107847162544742592836242777130087183007235238674235985340925691164810543979351533586626391306982866906445258161255784700498205623220951195620832419190719829875106295867808134633144079932200482815547274427029896664397532437160773217571661238149048290357441443670155178281038188698562702760291039930128164592945784822562423023430204552280640493141556274703482405686827935317926703513410974018239536628263190628763009851775786066976590889009635133279110575772263992983898861220762951115927087190141022787932977152053330545571357157585578369778779653843226722311256037638882802291637975057859570329044967672788306760488473922547600673179466946669033495619508423647786609194718525090355147884301529953004433091433433060553053722289620730737230003822214806704235003332535582534971739543798905573976942156799229385943930255322376718038023601036630186819006616029971107043908881074227703201432487488401658627911947915706341681670466037142177896181240851926073366940766290107009752386395478211591434407200576086202514929338698968528354750266395033344570853918050272620646784486469904456643766055306956007117377749269814827835368197844146903608260512826447197918188922548439177770207888189366833325597144526967592582496657708876885644725028268229551785651165169099305013902766044215540237574293782414241229770487842373650715116826505903145666471160490404804559639999271837206854316795930887555710363658969610703418715004526652488796751932912285415367307858240541220519251723467904440297429552049912271911872188870967039770299491564433145441114229681388990535637915647980337862003210773469099787439285738492159274788894017340425337725674392315692836790591918547140462475511907834694011892310721247861664451361747412947877708096900430164666549008649357908440576930843401423187994664646953978723050460449210354313704133798779085940325249013224834947897752286359891347052090593441701242349223978262041539135240881829473203315192133550361605365294392615174809744340294983872184393258873688964303757141164611535292496580287319352451470540287781191522871641813131784979704711148236162477968370340217071356585005036083039670271279162787093563666075816558875301678129504679152392773216194608987233961897608904418472258366134355218734949273613939666945046413262431963810580221153593806748868240141024078032195690867011965543676090749282220907588166958755180459091157665067997797697088124830299714702102709123011043074931122710584755730046784271690686559029278754142391690479699044012094933316663713294013231068671934965347677333925401484948556527229464127637635925968894397095660205163187679948134416701224730695513468820494556372863605917038668570631288420969886400969734040991090136070279451592696412052988718476763711487264178134648831080591478168599443491009323088431465033312643546287572380032055985823095976573136876920057587750037936037324364765853574590909477778430698487667002057812208881361248365688574075229404872886993550230159524599901219700214384096134964069179523215979739859230346436452143168570144722266718722264745650270866214714680507853037935294902335362548983032512697522910360223202651300513357755527439229768468817589780229952113579618989988888055324759172283542860251969837150375699738401346063726464644512522333845283361910152754714619652556460210279407387167723211265722278649959221468355705702184259990493807981587360201431026579090285196242521689032937141102889632872697713547479945728160191862802599575557278152443095969054590799184803311561407280077208155054351014652980230151782080013084849973511348451531398862729111063693561028910123018899374049016246906258269651706872525008312989231846587293285481863540760072284511707779988544013442018720197511699393456389473590192177565655186658640819080358305655225740282472501129557867920183021474747976673482558166140329123607006169097202764387449339778674640763875952748923870942092044123783399126597200384048591517720271897811384440460186067785198483049385377475515837441322101587413436651012872872184018231556481377105649208275033722602959960204396842552664037602057812948677905892018871173050009924064391744874726641258675258840536602523868373187157003219646805263858628547658518490781969540863654458128755866297414434263646500825785490356028745757528861183757586011352271456818163710322694962500805038528191989984824507290043924418399571639230976000264959776645800152703046754744342430574869458774203275118712146476398510157464615814904799419620013629784773550790616758104371471446507486264290461392200763735407426572871368398426732975808915771127088623926700005625963673664927279236660299261310119199160825047597508157392801261329280471429347329051914436082168069006162901485865989472478812289105886907047482555453296093953407992037708269927919294551422084631410769696468578016117676555448425555861278905213913083128314479890037104428909046468818121758982316203907452038086227929704282900000624205429481125413243899638771450247807348750434408423380282259902380627382657523972111230746275965432673386951410352796698756554266311114377904370622976602670339711993039395831002219663683776555692726684689509066259065147886756521672839179759217606084972095621300456333643065005856261607284559934437278686104347017034261079779352883307165694827140775271594278050546546179374418609630204683017070841547798837854726451443186407026703526580459439695477838811083093599273025321921336907658329423944735458680034796429658685533285179083054373078169272156301848628967781407150589678440006665251717664443164811073951993813576656777399391940715395831869179845038875813296772743845121559880374422384440209566770484182505410964145986279622683173847890494520257898901241218520324934007596242106280251362954462426772809650039741387418943709345108766024619067895344474573018409982129486597782826991266521692272458625961058382640036765564185009082668095997702697769974618004868600256466994766936519838440862655980559597580500434330758002462373055710366514935523654211493403489671854948430174893699807755001835889200751348405746818270432877111579779947137212914902284336964672158135436464896364378530137284569371273283525230251033503214630956583335752666678939255834427202327861004860455219202755686405107849838216196109515947614401850371905589336604384348021640697295058661236092577777784933958449658834658333569982744109854229356618676667244424763823044570247749586056358949217463358501776200028946350938394133700723524247594467670751133217209094490394270641079386529354647431289448839961421212029204277235146730312285380749743029397354602549342630967954033042695716191950635646325754619331465728543365839345751837045299770214951191591361887606657706102725970395130324954589254090580380005143231303594510482932897276646108527846155198110767738739180997200879212759246064317502024356538342995777612301997640883088696656601122355175993860279017547114476670294886415213003419741192291717571621599982878261527964983689659274616857262393886896846273568601431221936481614596185053548972972593022550976483873650460686109635072934100162319728238382335876596287830962224644695234525939153923828704649727257415441367210056983606486028910387417583267868733874269271530394773868717015857534038883697678204868841371989146253672699627161562192188451572065957404022704710681342438980352294450680456399844002947350891113820545820189314759125766926220401371935069390229087980076113583948518398615103917985530902260874836519766173156077559065279459278374944494859176396959106659610874318761442820926759166230941504776236975934717499451006721585113743967845483308148270299048321453312303630277162561433789592078349235626759406134977422672132299291374082513500706006366070734268203403222427266323772358833669812830010125742196054095517665575348845557609522856540189712838313176905270851476642351440245749076535847994046378343507733177883998484282323528199595622203798687140649225505342876092514951343558957614746368916205821972834672732990366477083452491387680657886791747307726916110696262304746892725409256665991414663117806792121257267050561391652079123317720406521847113325761814306721838678842637681285771932641690542961745714889942094443035181547146996011600646427594357451087364754030460235113889188768981950240648380553204880582375617290254734322635429886481743981157809174778964793918833490034797734421694382365110700529151677912198304068991258088288715542343368623445892378619331544656266171019627330123213962037674110798362766822004261189607321258590648883321832512690270855394519736234543685995522052039092069109513792452428291651947262926995740915858238517772946163400315914294451119683066761150289399648908414067973310518397341479185634351834604729543358068403520788998979185157018726557806784045678233277189236042127727828564334193932110552367871469096756474743363554224963809334516646176384644395279030846268125056291995386875504673718624637673716009622341671350732082646798561790542535028279025420166446753024448859511179904723075071442853474208441019377435571023000579787716647549819722549022665315803797802170696445276776517972767198677252120540781012789919703039606743856351578624713033308616934318970086092348975482132658619140703126540172389049773718144815719515658182982079582372716918659334417699685860346987293974298014018773198484175326065883532576542301527013197807988149973212156488437365695919992842274717849365084249374200575066906142139860456487002623921027011853401508104864342185396490710078338285781462098369517789902119030710189982551006800283195013138453301997531267323380537360666593306099327581881082836633509249827541168803379196647427089485177721536707793737700987022423522862664189374531309614987130040352360217145382409233374085656019766004025548183170047189277546350880861125172612953801387521492245959194027316687844083606420797075489011780275801235461042918361795345428687907871481605867006040509624071769234577195359052761182384085724290176119801610167330979828818358360007876355333543942772136984697988356327614612277696416458280105952915598535259284636514595794304998544787358037549465800965601024937965374458679404568675298027502794788450216698455317434335864475618680912714305010115408924752932612293055038511927786603461365509399673636784027409715280916032115531335992781861210963077023758080232063847871739520733421488518408641976018101740414277016383537287788697155340566054065222020641143410879726949217012400177952869487413222769463746042438386752080098843312847171641820923599086125134176523598973135195329447228732274856408118690116860904667654970357247704297063479010099361381012662143851976776566515034982547896257265488689843346021675030326295241126926775940966245239069174619207616742825514439270337464283672130517065026324283391924770456982491308012582533384318612045042578598899969678043945108101830767493737152541267863169437874524078400214296261303584059040467362048084617449183343759188822738869788262236385288170076466135883175960867776860907291454820723444929830398825129167775712026133669020566356690211792927587412275829987689855280735394083469918234511918035411858270053358836466665651741165835098535171418795985304721154223780374467140375801918086924086026575769046813403773504706571543149370211071682301867112481518689944428290841252731528234703457111194109896047406465268674602946088516660538510630154844613001395879298085178522258738284331507669311314138894491449158369917935350213992200029697895692899890068361242022590816660415460732193819232514950775409265792348996618343211271690250145897120079239986692680135590665075036813263312304585631471838683417823861555538470875222888741645312692663833900868362192336189909860089973099386951035411313819163466653250970399287205055651613437437518895699502667315974979525407796929074868790204851169772375010357063294367217758613741674088381910576642761457831536924134475047759326666633390392783105937152778224409850022632837612229700839527772912061323509836742843284808152079885125050870602397040613217012572531843055574819543140784926303370838538152434099142531246262144197000175993959799384241696687416291130697288283080786766846722013060899071280160539883753247689887143042702930821360568403084640353499053430626069765315291331160332794381056324894754716585309100161019958278899662827316455139482476687749555595911602173740029575397963994627187151517044207738323646764729938775551612189218072321800588506352585865190973997655935761746081554617053797239735891416982374109869886049263096667972485494909280348970802511012002078875418364675998315244464286690918912896648930061758071179859351836025960326842020886954715722203354523823299485842822426262474759150482339201743358167982978205501794799466990982442512622906370289172526536923495717054823460822467587586427508851199162399908886280230430182180944865839590363625677034703640446599674121503305479430482529753482263628968160079783749414109965679006900900525543900673090912554398732446306102100262344228161131244890685990858415494994405440340695895486547792828373421187811968744845342099442981669660668419260465128133195813559775150815768948935638870394624438556699787116136633627663723428052741944238169612604142056398395621408974355406349240201054719236137584878456641328114652975087454580729474557594997469228246451729128828347888997679361101394231176858116432004341814639069681396142310766367428530213352339026660824218958282503155681023192089992985668843854343021255715837911930244141846529367216555862341812309096644952371881876399170890472402232624848096536537242555599224747502595505581825821917744226418429697720311599823624906814738627273137524343371610247238768542379867877221658209076682769579906569223838407562931950087527339669949388701786335187618028293899795399894918395186490241350742653212050644103274557973141692564308442592393138696761903236487250687949125964530398859477506313557818126262899597459531354055125977745157288972681944735284254573522403759068153683581335967824054471984033952654265100978943846725645220861925797056582206786708475037646906562735883364518723514300935982605487615990689637296806466632042794640674222226175221330029010103514253439277732418480210910265068002246296344497120185747232498374036209655881029538944552536414629435552676780483298152058155897531267291216869408278752375586582966148406948283528990288748427223451660762007511340065595122098779263640805245643805347803087067375715157717991402804734897582858196609709204016410020278389865951022975640973753590329633471905850597170467274338906340272769149167957515121898050734905136947374765804242117907890374957309101118034110982020061515494178235658865656397889997098907875410746058137326545233571566717165577636378503945362724097382344371608254521300303459531519188133815635645761078537104444446047323375416849321992963667975284589105721431991110512309609860403526537457155919729939708255956460633683869869836386969664651591167945882290438112588547132501687224719039283223424750459924284002548613784793008352893300974745907595875980687141644580118826191706589989915528420373898034934495552946242795557486499893018145824187190575201586567715200278520954309010073574974444130511572767803540065328627439926536215637220101895436608282536737919488498592002857586754628823014177606502505981059545396509431911128423930090328566022348669711980688720966891405978735926664591511931498743343731030983837590253594838565084076849729306517530405795890699351035657365767385751725204693669669037314839795636336610180120883751733853562232011807167382655366551921727833545772843330170966624245042447543836773019476884139182307270224800298814279624383268542590601329877873498875105504770993650791363400044917364747373942799244534469515221206018760684787612796066979383548105361535950437422425149310189166725206214925254755050704527184467753340924548525132234726860150790418415928610016172352853848602305636978785925815565437056027977513695358690757887787589439125438849775340473371043711537318944766968661855650411619663412781847043757123159881469157106741033597611019835007102103977815137812089635154492581712213955100083840943475852588728080356146690471436202630248558826461709207640883365201022442159114847044561113346432208120265164020864225780183733598392088589675599848934233341259880373603298440961541391506868907057746913066404832474708832863567652839963515878083169897957888211582830586277595009862579270728175267243738691952754979403550193604865111930801149311454087732498434352304382225827590267123921938589180941181426271326615207420588343102124064164705530875599383275636369350766462006231383125170697365236308265332045717562725576179345329983440729857462385537546981426911467010649354128113714211530577154189264634742452551170890453205949242999118244031760348634195221811138599625814959651644120898999783987049100423544043442624337956876842364679742615456249654854425429389404114906865649168732116707727236172191743060619780412280728595124473268002598824134464894761084247045811299471410401498191707612349497158006553214324606844080246303404336859286693820930531381832130642074777488183718321997408153305578895672105582757499343812501245541331798336101876510213247805776514775420201691641945916934496015138209468972251072566478250332079676366182590413219655897503768873089912627126353676479562251817284412983346338593615991884172131495479338210374810233728216336441951945751639954960309192126017178499242590723560935036535460583497200009563951225617253010438395943695113989361657978034101671847990516662068616158246779896681094510670135473449095474178182776073186609523430449973814483996660966490925372269047792554045959995347968968726177578520938189188915437226738106768643692045069845275284688603993680057911882497503943201074087651918414731943574904994184309081571410076681451597394531530341529009542655403230233705686668133776118071771596346108334494837862527850484466149806738280780536254059970321519323331932553080417853414097245918111125419588023379541364596416352147755164307797604453948651926334600949287199427180680716520063164983403715612217038563905611005924889298371567926727174907649065623552981308428488523447020876738332520212643155633755266478249697165952850959559479727992895210362683071589117966186093190647125700803570173131339862878393393628188898572946169395990363432031560216567400450577378404615197263060500427334080877159751368996046315495685808525087868423885191858584361385465412024671332573535173459472630297720103353777251055065135362215263097918084860968691893462280787092802796719019255784866323413798524444691933390870805705711327205049840807468276166435134798501556169070474212893272028973528473962477691614082861675206608493841382213682922582893939657846198804934974202495060716555710324932628348568344154170019324755199941858613070689497021474739433828294909655535458570834023161126699152176572321628091536096946125156242171351008330873630635958956923113096202346297028236185275151041653447675385726291198076881861849490771952724401446510699083141553099984234899366151778576463522081363167563382227548502791657613781463028357927891875931212388721615093943622765767967856216529131325940672272943105944845745695460632800292840256506068323970057320434197701667945355941376982838870443257345172549164899760397547820216116812505526896966725448479825717881227378963314922786109074885171148122556706786451211309631516244207181027327024412607946587951957487752368544438557516600475004326240087433186011909183686058817109308582247366259122112529467315388348312710178029889540460692623555780848073905907753766107034749636732522811673558975678128901853230778497138201902928993940580604329939454443455913408838004058125835968925989202408525904677634873704255947513214600480332120718591681495453067207476943420728232893707300047223333591045411367804049312999381887918451758143566567612096906467488344704762941469517109341983598834083308189099133477813429947467126634776692066910497636470618880397432409658060536770223506817302415293105152146024841154517182223239620741516819646112049239183692584255869402590352248470614696402035160705728709661172399785974629135150127306235999414451564320347098507815758019985047287027514424192995291341611572998314663743472158664526351857057959275844284055748078480406948586613482824038566519992043318345713436161096016027097638727549828464639372683157364432883410629738439908279083841255598551197887870563247664458310274142978005182598593512813990035678705951811485606955078029904927678292172805560307427405804154038550279681224546380728435399231544586949300536682016988492011445279769707820043498549827552801284009521041820922725778640798999045041778866967402106032284464791552001585431165404379582730561314158908205345170191700697464826347520900761793180758031609028848662528616058585285625948258332141833849719404255381592245513623932763863267088797525456908132186807379741395315898754081275300647903739508195855132423002459034609686691454005079263362494094048926041101337976179022997685467208501491893212590991679110063925518599197642643861908606711059720435180585610138402448873973049261389021140771868093893534235839050207842902539760700596618372603892244028825463421470325484354597216853202358176371542162828909739840898197718999619674427962031724693822662304296692650117762301496613465127448526015271637734086940395938529690179754636781204379625081610273191892273534836685674055187457482184168998561904835744463012849407968181048717369351309980879442232027268422992788177416091051350821854420982312721042330979170472963306746708064870440766657654706866961928011356735222728169319927567410258580908404687544211717879290669078607018591591917373748621812196930324322222458519093591483368709926121872258734422562064909390848938517650065118628916454044687164340809809901632032517290943254416332141815151106063484716360168237910475076264448686231951855410304615105078195410995792065529315108421449760352748724326723504454117428083609553749680724170666914133700847534196250396609474676183091176669443494249497213030059218928914262079745789380320420544932302657356503882819165406124884254832205248228074243096923391405787706986070701970839807869046161907766235537968318602242959036628345372210425983492532870712785186424782349596659894647042690433573147224542664503783128301611258563912842683100829078329435164408460625074002009098469058299472335296729305387342285704281903093524206670106730757421680183609422168500082559310668346418709145481463058400687051827466688444688696758804805052468280487552879092613290853737102245488189013896396146253872359733828508130364568597228368063705021524819417722994406554338899030311803293764427807615356745546971280269248615887967962776295855516961377754226744038203647949616508305330819681991455601438508829714684626840514386882993909632158080147580735917197546339216133996450374850370672333571144562388769827100830668526277116689249591530476457444664385209555843738054037038153797791266537827262767095354234550673773228104200612549450426946459604003598842048691945495446471208864307155112487476945868770995661590607927683778818698842082094025943700569018202357808084768462737041278739722384890183472457865544304481620254122285955202505244924521578257153048341558832030840737232426231575265129234467048898790761498588927916706294449852067043920828969417733113496672398537248315004063705921073489872784973706163727186484002136941520417162035376056231033057686611535619583336619144857558649581581010971780901448044582046250393579531336504834940136071529014587946348910159205545260467822752373044391722447527379943136123937335974929704337345621238464601917356179893767062076983009959492993528572182489102909113258010280755034814814348880248828023389862210672118791095710459736703531289981635593473383070111660921409660602402815079234484785892136062067953015317124866916917775998239680481981971026748578743126372356195163358091223147251994011344871529769925212534169695538306483345250980249651793954756390024098832599100548546939808733572649377315753423538744865181434329021530358150100003620352140675437935482613812281215691397212344755876159111839639810238127739872327856995722885210473267141406618305841334250990487837468787661216752459974367687989184780556876851050196462876240056247838420282338349287203216042563024401420365141920375578196465594673309144054011030447393120812135156525927094631804673518062227659328111413337338278645036797377154119683198713873894580277458182032272913923932147396187492385781970799933134603247647514868936696747405014419935454349176279023421562650226206326789311034795062057314021745771273069553294932078525991771974578945363160237765940066553566739557716972138165642407442163425352878146795178719216478287784370111439232457302606249605344288543803506423310807717103727028951213587332498894338334721531230140872839413558989634578572962306920288701176727287978265539458487099326034320058260626509047680127623211183581300688884209966505618701251596877362137574631223928956091658360901827991917891961238138405647566082710920153384837113978014775389700577573536133271543366985125933782367295219046463197292966107764469289233885192887954338936824613482393949881106224182516413958402323659799488897865265551132424728550127937822256357193625907555114300173774376608367706427172206506118094828945370947537465478954857810470093325790134417283052268286926711086068747799031407337332754483890023140866060220157014921445315315450277174066375074739717593803680198759470640041109958206036331078763916979016665790974437188504230563860923686161296760017608805875081385908702079809380955480957207167954755413158708525457193608651724653343641885209355810367944962790814718482991096956532913728769120666256555549062218451792551713773745094343486093845641349586910025963868148222953648257160176928084061803013145559979984699814728119536336325017920397105234300957506788227145185646197805172459658523871418838638978006944984976803069006362603219850673864286728393701331272505395201014669042862554249780765055565854641379913230033488825682139262341168592273388244121274709707139123179576258929306703731355983106197666936156695202736595560468284870603102442576585743205201755053893698546332335270180667442583653173171739423616127676650021014151682617051397339967531955689316547180485436969266002703702990725813222215725951354702734707013855507380045450532111154076448296329763224955854691814274747989949837044860667637558125594522237862103976153134396012228529614866428412792893474345186591076510997604985837095382880295283061972591672431830404410441510554951988277839298014860180859663616123096805173832931962564889280396157564025792916624611939844891661546637496322437457179430396016879609941915986022477367795256310097724747369770373488959938947721943363300641718790056534065098379636621150398165060789475758128205761562743984775820876043901469153558667050364380530555837610520334504882374097655984044476985870414862960203616158525875693272204786681057057289495202632335598036133738844445139021686256423733747592995999994743677661130036290859650096375176780239708114885891096613967462674209549178046751246790717265947013803254832420397341323978415320242681313986956836499576321683907893172821036860284288454345827146510533916132675717751814218144964547087640061556086706011973004569166513394427546102184828616930297056795460679252131256838634022802784387735972937791133241879844327876756645889520443061818049948014350083024573052621793055882517425355592618874834784044757717959619703047233222089498302876039511841342151951699978030172955108532533878995292911071434824250859546389797981709066478393978537982039914537936231686982015754331905056016655152753046843370381504883189117227759952373773619072443004148500791346921712295252980383947231955270186813059758208343803447587117020672784320530153486327262993043569200006563831848674551851241044615284716642541738580859918122965956686303633938732917954278375052563718916194458355177203240508482028910666179365503754522528593368480431505939645705042557373286570439436390020297774385848114087346599989990591363149843295300940185499131977308082379366282609579408954652100453707351394724600316977586363836616086412416235955658776233301181422697694389334301865382239049903908433760912741574399006360927849024390642170190222764711533738082942851117189240851088395203411981288492681555575694160495971671374254068764156343535996927472778896441917339179859260074662370706707881903460557205740118161692133833610868849136546858554823945346993832110411986694086206603926767689090402359823773511734977472815108376459003028881291357871780041927503079009461262626402848671240380102569375730051017434457508808794105495742148930843781021646485833825456413834665607285201273257928327221047141331466383558226215106597356164714749906320389592779279559519921359242060669352530112406697662845217016291506172255321481938715942838442041506240353047021246161704050465136967025646169143596745913070382397892533239236094013621719512559472949430318356651163034659524569363905780793988691219154232885964849722202024227030993466500370946956465708904691231692343497601310136970945793927389482352738697716385923096240587133758330908917059252939184054751908180728791613338910120496724007403498160883647547308380284288695021534261094374875129209315597307215116337471581932276337825072514680487728283104584213501306231954197952947004701667655750469853572670298702573017654316339479589001093282769272638045183098581330441753649590725894898494981517703382082249308987698992813133065558058769300806334790683008216924295876777374990199287898178400282900666459083409845992826528505007924459457021823608429631369816165588228667403375468268866578827031822820953285870852391258361794449762381886060877676822966451063052319538336755478165654743476768939583480816404492770674427544996144484341326758462051728659107150158547723224685064174138742038789182686138529059912329644404915395303183329263238703766698532666850477976773702826165166278118996570145972395297444779831755907973685906026093755718695189535760405104361950070963032068926681555273673805636027309854762452225619891597970851603087851879969549084776482481083143861831022814920873535820685438632660665495077452261631016362423150276207712794424071591911359298650762886871644476902481519396480015664588123498555589018549203643162792463043143650323923925843626661220121218965156825093061933495890908032397688006128457912875114894446962340826611316717420513860547150632301289282250452017473981417012113850235197597552111705544871662536336908435321597216435377951444851413860853097383704567099576701240614948268766922965564553194893289696507030985141352967572615235962407920292859451944507840470558000407745269390770051744698864469564025136458027386818017202718403483165410241238699964556164605787485959363860940400128918856957441506965246398224921508919859406373772421751694088845136437957815256305707518823438783200227837597623407307957761628492350821749183431335978715419778813313184925645203490523871096670990421878068398648204826767154968414185343505215301890382372012729042227766001248416043799320457863534396037474168959112432087088565329259332413004913793943408542729135169882190812662080198536413645725052493068869983271077959644490919653997676365686281703428930448488930780239710155998375009132285021091372447409780434263891420921276213040756693721016074661267873405120388304684806591399228147739607968514176608349600432835036078354404366611279671891084455607590867772821692651499101850770897436236964550999817450894930288178160588120485994314948048210360206989831506531778692287881486300574858594629979143233374693989942323471102439494338684129645690230508578521434528592651894435057383757962734740436074634231621564679466844850814744552403596473767277823382605057137167043241778888598416373722548835490741698447293982157228341393673978618931848082136535336778670402057574197218984049822401296158767581306100117630646208524098094902183381557199852892971963311391210846079932178705506329933978491993840211358625757583996649410233024494655967093568533810835964296920758743196491766367693594224035561599909335001815433367933883869293321970455753605887897271319427367763158122847729684001328852728214959140271333918129930712592808952690660083168298866373425076094475592095487228614339027388655842337308085092022638128515441161467949220256253204455818800120153306759451182929550890624586795079095773414330440832359894254695614901025760431288906815263838478793595246912281793376665868770981401900586320662793293047286197507196357546274043888452146332415361518540596899405322943345790744767569076033757096032489348046878938711092098229190004364721125106785870307847156711176626781921377617217132247626351938937921367149712316771933673898245599851799094208503162257296764761215387094733407257593097292126622515745825320640596440657354869868753345012063906968055339416516464530193837462342235568580388426425646564539207026807441349701377014481607846973099364362623855995011341749289235644809893917578713088803497548354212323819742981137913297373425639227354947291031124431918990032607684083586539768485175267197118920093974198569757118796343102664213029967865684970871467596426137713987973707791852275130035154301257898698804501831979706676587499696827937959392184528824892164723840950473965753391205483454661053050128712576749729278211883690804620178947647932183171247282930497128556167359912977924382439293718806982372372873255330658096469340199804876200264567066324412917694162681560516725958077147824825967579881540181601405474166547698013482945372940678289126087805331240185140193219436704790275687521786558058169129768234670642541816874265391610750131526073351399072998433442630920199935827102609545330592109836016576825815324825115692010231315210055683174166204669896704857335203228454551323699528467700254876063226208303625333939753000272014398686654991009333465886650978966284067341732449628115325894164057283071781693568508376893469621755211470892247212560605849440228458723776839675605856131083652108929587363584820411507725687872504012571912135951312048754693753258282949824634305296095302115093824495245578252253588743598427615591837357022132895722175774382025939107586081120930243387155835869147541617777411897016905688942976056419281740243203277829604590664304672415715968530488616317008537419948040919619498969541429632613089503748509371491486692052166307150120812006439906404246739496331986010017984221542782587238046098691336676941131417735701510884684882211878252413576138755380289825698172114128563000889861747840241893310385476581620295740924665329300145809947692498306539132469285668409431616466259678533997637471919031409672593463263349387884193265148187675859212910498547835875185918334524847410269523823468821443212206992978459665925316963975453719241955195423850821853209362112080027311803361444615725476339503065226273280969944320773254902932606765814450363697439492283070845383718025040917936048705336304858250201841338715985696882068826919761001266041375556730878255293638119250303841742924100155974536707464184337421626425897075487145331832751949811568852310625482566503386850302801335855686199679675841915515453125351245088777115165710800306079237181709311425705638436436359638942645936445063090804547046260985137140664223411466552890634189639410154565826689930548096401212552024253234727736456904137758059532211991317618129242237045133975113733580379470378901812923535312363965914164584543409222446843524374122065775569652798957900932790564018615678570148625723630050399451559929118235141762958596832881547187260169626635908446156290156204895566606113663661140924750071868727212752861878909678035947959234788033434133141693972407863367599627685425015372858068030679715878759179628743853103524715536951200351286329656979839476991006565264926889428017777711602242510030266281825602076220807172704179414063680980716389061145241656704611507937513172123132347212505508657308292875857414543447886315578823425277536343405319099653795372617711077948284529629823848042922798178265863014911310450756901081479170747900867172110867771671810240597114054000382901684256153029463338410421175580202167438092821627620179172165182369637748182979150781702639950139965822330150536480676579678405073454343059647257772831793277132070030251159716623273548250837055291506019268661661202710218146604482228416271815467098943651686667732692013998749706348485330618598291469844617616759489741260005275210149776829041928457552606446846687890909911041649659534146556379999836622180549246849850355047975781084860534550460133126463309814980701253210352879103169941536415027037014223698633906424464965597349109211408749854768790276517090742787170590851310650653668281448668242321799714910518459907682495735656400174965991863657880949037526885903264552068162510019444294997064045051989555906532780855469328359004205079515660511058923842328902751374924637074663938908638683587116424617878807560897926783148308865335645053555887199495926759466105407807013434076095685068231737267356900461104356314669863387668707987319510078124422779908798471218998859047557608574797275858473141180143871147064935531486771524720039750972914539912832255573558438080719950524666149817950447248355632647524392559978017773085045831191221862602276105942210539415647303753800300853338868811267920051026202564411794571589296019957118563399918521365860980637467088989986372645970861514403823144052197270534873835651694242824682047590259556187283257878982765992280611840088433844793178924520363158363924533585095633207205189257985835360538610582803223222044879037602823285203005590656087180542708634096936822315300111601848742152470832185209884615145989962552356964364450051726252811154540909019197925544358584528496041493397478055111081367946471325346547560924609550916487068142876600595205606233758968105682060163793594393989650567155014067336252982113756310692098228601505624383773536436011505354293823010440608578734801258734922457195809850097105557034329162557350228845565293960342809011297591812293836705859849425136295942339071562009053799420772422388698422770737780274201703202152787574046795161553446779385616144978541406967767508568296377198737854239628889957866509376956807514656450402645522542639251666078312274857473140128210905011196091570295437388323752280179056424153913284459292250030525962782543188410752900358345971909805193400863499456033409243964184028742593808600104318695978217946785197217122419505711173242200422152478064983718569349651035744531583835652969512159804636566603204343631581233342564873299895627116077064292837963028452271258476265644172459712075149826784890659231394049947175435663067409898507792852689144831266430215290246823854646703181609030880344667845032991698141288124052586404021812983003122894605083710574214434888915816162695069018466297577489717075300670540983082218705496297032049200119500627677232543603378982955802042036488601375635561291628850072270902176291051872825941945228680599373002774958816105458085997680360322043269393669679147883716974442555462534402723368451562671110013331520783511330766634869280426681590696733831403786809648530330170988283342894601417045437396315769153505382749785679537480704223785841307386368624341660422963359124674910646465501494567332018775150134353077892428930701405497717839902816303271006459570654453704502096111451712955712289418431267308030701224294579487854303406267855231642303228701628959926072373009683805063579046926075988678955298966720239150816365315503096698964413958546740085417800580531323510258795808226960584845324627963547963057686443328038145675240441118971775475073142944014202832529437397909408065867783324000546639199870729006279742879219769687891450563702070821984427160124240279001402455851637823632983602159328881235524836251858180273985293349705701093666999532817793025423606030823950567526668711232138301669660849156773233953304248925378189816997517734870385235692485264454240074593222788796754455290030199851681119922584675606062494651620390034968685022348612081243933428245763890338744399329290481354180094597323666530408436736848306741785904774846612437730494073304306464880382221790243149667215919496553364432336000787447779988631947897992217078823310393660624894620590313440364372220389179613567233294115707968534846928053590217605488106076188863126465432614645997055926793400823937522339005392571376402685721450844797964865909994720048051857638053501472491841796092322342364137144832038273131896502175212247794713221343246591464278433572744410626825670478288977638990790849738217049544323525817526110285555825403400844255858910817478674356313685062921112079919274253896767734379229273895873069160398832859279397257895868882573807575006677162740694269339358761330759299336482822178734878437985782143088493126859965259634213725316369889847351534889010005318755209467097489094164521582462455823368379689844159178835514905492605585187255535853206706875522278090852732117924750421364553622346450943535270726593086312353487620792511533935268912589005138575552307879793868704530404014084448006806764065363843489483876784391623138447194244927565976072934212256977855608203438521040787258497140218006979994687582489774428687847651948007376431755632758134878995579458340923964622129940061013731004992149583775634580421172641683915779839071959077178181258426597145733313328449625443998619074287910601341488569784328963619853290562473721209822338961042179587981274096318203668032846587554161787026960298641698679221952695747933046501861582334461800832901955695887298746233609989945786738076495639771523462754019268621135464591509676388199920416002781262092645466598265221212712582703578632069336653868259223336306901693774084353987834375640761641407129852943970392786304761817383901501700507353040524235024997468660481999307897821164567957740311035133202238971203997354168492330849281546470398707036610716474867300828327780069196317129315746230566787436580212534460450723172310275661319725826609973437875510084791458922892079548051704966420338699925682197329100729085732589099212618772870711252772678318102270189716985316039224530501754500734113042740000182746821478905818245236151419783237555514151331491691910651893406387504580508668560034718364218063623500071593711955784125435452621172606583092718679742790948036488477800180866216307679114922844961890178309784815104141219026516072778903015535483307323877123676310726220802891375406524673355633730054730832699887911193373789307343257364971213240451987086105321990773442797891296283989854444972600113721554051017521205008730860126069115798394744326343986086186339603369884762266959763204001330156345791188627023046341032024737140701434261632537419759763857323818413376075444027409557060062882854893746695838109746815343855522082716005371574205876283880897600411146720568226283025042316291119582281183310203357765325848307341439393466859424983314019710755969918963885466482780264151753212254936563154845987041978180843258594352172088549287888453902197754645736097900127852614502215650464826323946577243447502673292793359129773749213390349451764942839855829434871761240107680773666539728563409677145499218108015388202865167270413445304958702315734545621194734358131446823322784487995385615980781176563446383107443511878306197865182137542870742912414224117926428896713430957010375364130048835195532001642263979423114857299022045116859252897799490614619801701305669445649445275843170006562471662197772689914884192470483010415141070923992447085902664825659064459762564223604340236796176835686675868351108161055793929539070139444603090349884755486601419337571557949913322649699401148492282892727428714675514670710127610244069358033031008978321023755198073991328841305115059284078708743737703135820339442349067383783338664370891195105100518814246301335769727779450895357553865797749297282683478659046631975758685953180193446241883613011419777192398802311890199038273130678355316472060969459702558997274127089721538132290015948058027714834517937808378156527112813783231882600631475438623845895410303958630556712001368997307287126774033726913718122083900767498643544440003898085584114398667197338191292473970596466446319765456233627093155319955573738410038749867538421336359277953159580284587447455841621997969888537455170883227395965146093242807107173863380022430310901038110956648625758944181483788552538972358897113268603147178661018174746959161129580076933184875015490984976984983521896488312495482069195132904652988257593509965877708816715322176850866789600900761929273486591360035712361240489936183035343731248101782347526673092047570488906326246865341262384583575180948183388421711561303888103882434487244872569715178945039099020598696405069362396587259210065455875649314225055856527596973526310377300589284900854350881009224086358101572482331851302787049369699801885554924608895684634338011258199470089499130538418785188674073628326688699913600223537939907594089646905349257891048133488679512878593545095250961693917227268437719272603273375444969026515438325000827871592330225307994541316217750231140968659239533169090777972249979337405261164056095661966341057269579990256172067921477694429862633188458535769770637259052075931783779707209508231796979697942706248975788596348980304719730904071439360386201462717695544288066714648709710637347135497444470467456422825765089750632218088183221867498599996192610587984947810124521818566004062603715457265117270771787199155309222574876928248944004983341628697664061044651136705404601285346869372188368383510722721240602477744001949492746979334678936387504920101264440843776790429417592110579447492630709547879589696083748839770431222506239739374077215802208894507731018695492355826533450563961038652983796541574314627673309625948130132587992340622868051698336919172668609471686530274710637697450751257667673537099383052299560514176326815421093266103127256050381593131336243907570072578396490853081681151543802570784727932089193380688760415039117816648715358085577924297965038273182632924334663756133327429517106343986314047619324549795080752185247738994239727701440790585868807944578203544274098640035363043516062268450551266848637216598655395763119148784695818112960309796722483960086264343217359342845666669451709878257183271553471203979251944197933351364622420845417301634295515794689559616140252278725787424802088654976045127198668624962251095768688370893215774828345012388941416259920779097183050452490510586546385326803289174143580099379168489066930615662368272257196927608714385967862362210784295429366316835086622302392207333143511017349408360323014413727195879101383197990751072975789504360996885407533933907038387120165781780444195547725866904985769337578137626984044644612329224974767459898909867279288458279419446457835796095903099232867622910879156879425493693281231485095991036515708659929111920206856682599598460166926627931857647121121441451619932502924428205075590971145365200864765147480848660261575842633157008326691300130884281065711271954532690107524986176701521487709615918398822332863553215134797646698072349870684476106315393990320870863074754676139326590401869543365269605493203034447657676190845369983464945347759492156193057658115847563973477233855864837528041334386327886237902268106683174967044707710977672259224914880041264874573807960972200784196603968817389275719985138701074779238533135405634139466040673199145920635106688180695437739374221958484760642297932647464138631179801846718640069285723374124599792720990341740790354386790662103559241921768353139368096753630091864485085131492473296346875840249197080484787930812210474138310728254116283332367123904333263247849826015893361163913475394418341237880322617084027123244084006673825040371228638183863451082904797105499620654802866556333168537521568512947291286077445292925309272865335144773812111887664614459740071851873025497460516281645175621174604852668658697438485989895351797026170928997814615928701033492594298543739546420536548789279497711500741891676122366431815520700784990681246429518228696731622837968792160738244327443754099513368145180866656804607700620939808601236768512508616775452890935505650260999702123238122446009557378155334805213280922050848313089706400449592493765550673547566038621851640178227742993329825185512722612518695870895756272218782180134882228932517426351879505839928919613566479054695389858943430957877734045561046726785021455471220769092408226672407564212799164715139832779363080764519422944764428781067077752675114018537164790014865248054466606752596865016962986006351833613274231213280545119129116591133230075163592131501452854451701749216643640554620699332715339286902927164213671173237377186605940019653182061848001107143952163543777461939054277664064261921435415656040497778980142482066172233490079810930790651631323643374378148338198885997435404154612195704113529008561558726788025960933994343086126704495659646851713038654719541706415743738171876061982252105609732155321786689767541290700685356866165882067996728412279365070699878106271793636489777995272711882403558176853432748551182121701859842436679671565330625391000664186060476000510163772084467064400637060942145882558351068062075928463438849946959327614687416263866384399674475637256993544957967996091218171109206926891831942470104443373301369469237958575701746866261528844724494315177606388661451305259187101329326579093714226626113412061533267136082279158969865688920661361030718463538107305217359160584085411420555514533089871917301785914219504616730922470497487743271775653403607471041623766811616454536901161529104858884332408655048821510488096568046256247175584395668822459847705535980115727177254808491645780340171346914366621826518977585945798524076513738057206157026548116221417888169937077160397031011231681320662931406201462217550222381592038272724719344326177375953318216392906820481781896157372165729892035291149892445977762564064911950960373601269887108007940263860949202957863480139677106677171975766572879492435251077975035216437871729595939706070529860672631030673042858370155243096602559592147654315248602364395275695403522264559364822507335737367875724873654424026998663062218166390388664095975764541554789676987995708823356472416267187389650233862012116589733574873591269248586021372006995874106093113407374365900204458801559883467754357186687974792048084110283639836129025275739971268220000391326578777823798606392410601841403628613992444981016587440887746593305322723017143212304162680880670471758886728699716415630402838768894726667518922625758318452585558510836882579020366913539990047953980528566701607735176302119612473188603258990492111852639573692326843405225950818603748468683389158828685391635801658614587104331543180282864958102585773888654748128150062986859346094548870533746584045280950513429018120603949202586018705835477515640631991252481182028356635530545828960330077662708322802649065956688786689082361676986221295329208506292752566566365155683326200389473737965396163198976783816182160899422921156379773287237425628481085413963162158184141116942165382889785090352601108084303473090085704318104227672037588610651090366721271035263447770089735593521188954993358920618593095397581995376419437539501203859787939023938669724581499482970453080119368858189311159266403072847082751148726250425644539688102049489971072173302065877393660023998527396158699666215846895237229610852771033724052361736854791287747903298913346103031180213554657176000980322991379472022065442840203475511724064317722080476740161098004561501954955035425974432502722515600535372158846336812133886020348092532302972481284349911773458420889977082819330324840019965266048807467091130071139475963690348735151670007935103899754310529184686885043936683676657111544842893457581969474708022760913834547760909630267848184467043010360617169278264061465627837270145665032958946351999058814925665458459448666677974492224364308792613829382264541283397677254843626373370983705118111591520714015689787030206690054765246856565860169985598710774660101380194342004083757572497015220924680764815973439148167493335979241322563631849312825934983297735448078264415003975057561223922287727909618849667468757287047116898393506540965222848990364769262152971359880607919917669039569225566968881677252168117676068811827336116896525557516475584420620091128577638170627633497257993641968892137300301075376979170888175780849645267299768140811375851738963559681265528948758505365298705304013377181695325556627211430354436507528302140366850173130402698161010446486055560050959043719122017781601954664563052995623655143710304330608599156619302626301165431135754677834681667109364812981570550845072397674987423332967718395922308690329229849959015044626385108407850028754442443955821287330917049451707335896764239759654853934620408525835053777173207419882094848911048900973725396399935333283891728068426466312044115581757921212027709956824423360909673705992912597038768520533196373457885733055926037328252016070121282141663309961193026147618917543743305003393647376736900751028934074981465389876443601438775129127238201569211467443256050299529536599998835274509434830988074081716443039905029210456662088928422908817013918948433382184534321552400390762139914037883639763517640747795787415587733245900679673565015248361265485164963537783311036475500605064705437864115132999377704691576189925730779715781664781192899835981310576405954410645648331878564790151458939276272808901583280440449018540784189288590000642699706568747320954881387308586386733880932867406713039532989942691351329290567310881817562706670694945303024983071358299081116327648957481758977805041656598988253772840066693224790543735285164847324997140742443966677668399188451253065491323370964814862889982156155214851418224335214858003401844515441803024040355170468615950149935619981469905518533739991017422208541236424278990230664893448719744346001521049541794736147063225417673461336978163922825002526523798188751401207969305074761406338069241314884668105904799071196349603924637938106066957716449112916855632300915824175402792733088523609366817077051524967759371298660131941409255837756987504922728083196576101458169984254743290241975432728773857376447111844807332861196618176763727183044555945014602930628089953581773472083251900491017376984346374229106589391878023037641060845965579915049289496992301070259673598393971867753766640197706242711352875817988235959453810887000104652663803289489573718297042771640573663330656914292615926579194269747432547556924115051800129366863909344270950478484775567322225114270430131852351464958168786585111786776851971127157590723958227700851924648496237137650157948357335908569786091259610014853342213715934039025159837669500183535221749097672186361537326943411485388518493463148394821136648036253671936732942824632024361179270859152173378268064884293573728416834488167269498544187415022626579122948066394571800239835038307976612365270940297708586049106147860457445052887306418212621343083308315619096109533332273757012901135119475230649801743199493066125564452562386459656624551690688235984380445394664419880629620492930902780609545277494235113113709413287555361841576441810559663547378463869675465816801165093303703088585321765288479842592266473114488796832487141771006662854232208697462865316158642759189319500327988949086664359573841087394998360054785420285943296247568700565492916334320161878017782684589530813349879325347592142478290821641151882711644139489088406157157282767119022580172862043938783423700435513492331442260679101855538029026407135810884181089405925928177852548042962818627353882295130423582243154268259445588893374800999638124381642140904096483808772055377720594281918866914020031005706607006384318450688690298337500271753545218605016043855527932894095479229974727033433860956786644172348930993224980780152847261349330083937148716011228476325455238956051089470197149203905287280016815404793129666349760995696847790104527079248690017385104222977371352348151591147820655628231128177136445257504549510698285666799749451258632732264910223049230368172394462700527357314792700432097445345933017784417396651759928622280197411441244954422987302817797648286358150823904464953931950703892392853522762119093188257579927578177816562322381522078652729807352244548318200627296334587463929769623969620668205358148564425401255991516568977093216417035511826337003077006501661484121017953737848365553759457854252722421410009036301386229030248123713875744286829326829898740140897377619360374181855561928380556432880208500552161008954416454138506014659688439707270364950018251925986951694722170967613326616839754917254151406879866173480705421051140429439393765216495817060170511861334759907278075512961922142777433338407985123264431803796955292919955730310370997686968100184622587378534836997491780698619008581809318869877399795588403781192795465110640584456886473381026628773928931455991210236860517835404716827116683555663545950226573470479716133141856297583790487996927580153212124615852199601908778440992384466029590061032266773052819074701649841473643814175496194373461771171063759896643029482190785015262610819815542826632508535225252239063680688559500315670116898153642035307657614262175903040059804930337523059347364718632692500276206310895427225552306031792198281199116098185130324879856879518427551132116292733017033875286501976887118315122112343687926410711761549992518620169436723974359423719343317009575311625049149493015067349640777617200514352807051718217426595604819733843408893484675112566255312833088778789005099892655353148238288956467701991759343070601614983938550602313542368339514280300270051838134882124396901969808411898132562875458745602132326186476363163577718652313438089275728652066164755512970910954650645619647117847563449734060880151041886791225334461907175920472187482566014443076704927301380626424292339453944380493326963941194639199361718263887699440216333199979557951425247600754312444156599958038865125733595855815924804246247902904137587870080629971181808732452299837581897826371093750669543760623309898760205795438180425859565016712627594029662321923944485278307898076760030527231048475584828550474490692369526396087727543771772430222057882801755673189938865314222042075599718820979650479575063933453987984820430814198399312335690160748347278775174626586282613699193698059965168323829812168909613744030998964070388626000178740690228483432508804784959138147905724258237179365687126505934709829675472843709111401243923332519722310375785289375408735037178943703959880710347551073154427322751463430180258700108587303518663852917886525141182397809718369176752217865385402268174035461962783958030827079557365222216930941799924457861250315667773906196294370857136555502824103023120086679922084780731055945182367123039530784276122584518497859073313921918103400592449682330304298346864237329489431909006225799799215441465776192466857631496700266357269341625870766803298119882302799200563284980481792871974108829073603162978189363349306208112778620863064635691388044726384590720950177322952957930985789200790128656162144234111142111660938769567568491156439966423527528461563258192084850233580948908851668302673754853202682051471502062056117647698145868519342307463010308956470653732091252102486509719316279381252227543871679909748189905581242519325441767966199420303589036804181829531117270509926974851109090290198036286381658696341227889032447309527693275511348412328528804191787715292576268700730325600242244441558182890567766507031572657669902481403608298229222012756968058208387198843654166337163691654069084800728604020525648516856114660380013756118110065383381432319794600399815251070722004263549916454385339575675406924973468692129012362705377539805276416548463519515469206646896469386209645829995929596850178788271317782913292519670013630087632314623078578118102194765036659004077412561848794943015053183404084731890493983945124167490148373771950975640923497194742601805920835447122254492793999512255882825966113680070606573304694418822316196686447630328413105247586353458993837353533214646306958370939830548815517020775968806995288254176496622650250925357695365131276615258445553874809780537272291182971808670312511763519590428922700734556080516742438023731800615950506632234220895313407243682425330663887988309775980090228561631205279400271670511926833549359968349849086870936510170503472433590855303298958681345358713866240446191278832661901983344838190359775044429511884743075961392537431855623007862089156132856358271103030989123216526245395059033229490256186219637333011594852482369755030766082711614814120310850232522632766598428701896140235228481574153736123653707104772913168362914968070545669086129410287320656668742338915093769051014670321435362358613062972639967164069840890965512216884638677079836053680802477419964424318709273954838220295626398380125971444646937951900213886419115704716365685362485788913062747633429451513913611189911984855695990118677080828315354784908565979365221596841562766946388517937944505086469237385255794335423194086224472992061036784387028277514957318046225266649177420116385655420795684567705373402083783869550353762644187262613323330615866661603008115333115517385374926908298597972981362710727598540716413926303371301598739655649439976329021554292913042791365258525587311494895545320440214319295034069244196022449173851852412957708677402425192344869905888251181729722463017424750416781114078692613437157481876938162492375362513590097330923359560698834204355847644236430147627025069471207808671252652186832079145665766080200727455192337836592344516616415180917479640827363244386322262014469942998336946546566626155519016580995144459829759093742503011772367207634402156277021045723828652577180785041806456368026132848066479562520160762023852028614611389809741168234412298088160207452718123775260055999315649594282271622968080998056917026447564651154203678344505503809241344332419062527265330644130412803711041547939138817630643682962893852917318239443151982305169553583115565272484662031546982255002072050276026656359672389106520940917190618647199051006684166649502775120019704257501543584698712739393511353463397298530352181922551111686542628551385917703055647075590055674359170949553131552354801741890977277359452929845569744788922648367995213957859412513410633325385341717817996543337577447411681458475026434942528715813552819642036692816884842078285552527378934314330388442538564450781626114623730903450237224033393977786070867593365298574646928266955741493856069904957853653208251100306654012337538672504365604063221664475043572954355407510688714473323417062416129867723914743399177038970811519299193967366280537802070629774424516911477094006534798843540239356195607593489175337893808056395060978348530050925779188773641459365875813255264871275737781828941719572990925560721208647844760216042732736610649756402748849536274925512527306630531556406033079613792941149835532578600660224593362002975570575680492874505694147614133526440649789554552130217970151089819217246929967999548879733499693613885507854358697080173906942221156323344200337950384561717278792411230998905855333325651751448658970300893524422100649942838800166954748266510192928831259559336565951649748740485731085426342252225578326285260878872387866703379961439191302139792553329407709135823386737551530234935899601379171382759444334195301590515721356572497898652705630105153587392859269302713742235153308760941979848840685741349100778061227266243354601282273468815163390649568056429661388625920592720608729500860972270911025778620064089839606318781238418657473155406578678638561272506411374929756447810328597697147485458291282911072802861106658897783384352357530256392782470163179785202603037581432701678088936670689151204118913875537331070605469098699682632895486245822180025386152143548548939255068901156551232574380439601833377049411237871905957347812504006960550079846931345431756267364221279950548484416610092626510827076418188003050714412956630058838892210622162812525491756114125406153116503653495482704108943686388848515590679258602241620562251359194742686611603985043178109647691208768634096107401621083981350990047705771475124503289536169282487653176381863360567177482047507899753884676141025279649060661237405008067558106267558997248986614033342510067272007741733911844080832288478868942208292653614266120985201362953268000449018458665384823167738749350817515591379333464730158413343819092569731611095772816825681719070449410023975163174843367880566693030596832769398045506556686573633421956618404507552741667573505872538691303934819686503247964072035003464969093950416715973453324431114386881114998018161897853623623458112386347018753359428789321291563270837379271903079024464418015975617399875192808393290478726688005926913788212993934722344027337246082478410949440039864949268775260963450503420237083067931783253295244384099623851852903006016128021925308862916488159625225166259569420561559524140035897012026180621744372123769355445200774963353565182583893701800105828670028137022504602196247305999713442611813137451772321392724186972336297749909110224905582917861584120016114942608281873733243207746518767985646181459674324063845003398481196388339548609304587407593763557274053832891059669210782244380154364985535386081723895548652447914965158403527462583612111842906724187787583471227459517820944011489100262084034010549796713700052714325792100581150983447333978988152893952550104266364314490810080381673861036328427501834866211310042962083462596140544796111780943499722719822878651295862705026836422122362154325907703220666837303472862483729600894050116342652183517192297227034855461270153046751782428622793031345513993809167617755309595803514830161495515087013713835001013727638724506144944115658476508203268722160169776075876379697295724891472882474616659165077489475296522641332713128865144223658963398081116031365904836424391552790121682619832804534218082870570349994796624643024168059546766525746939217435701700516745661183266390899197107149893422825621446724935254213514013880807820590390839652909322083168434454122316391552297835942178771166350030860021572960602042056770801783030031755673225177381135604191525886924250438346612283358633985308431831885726219365060459726331952149529236359888768335963320181714022305888896845059978511537963987777375692332781943758648259671565861844970752461074504619553787825606672636481239873113167286511198494368915624759915465652110655481195266805312544216698690370655520448310293476643618799275876164007089973471540060844800776796543983753542425730442787091571321431942429205378505021450073376435962967365655302477526608454777696609042859727247870042309065183004157914527859454877660109306532177532531349834663474888210574313536666760690204503489278742747449906733808971482773834229307200650886121377388930145481901137446809708858437940400263353808879402228453202692395471959079743762425569189827365551628553114951973372183523834834488721467817839307244643052156899301075054042335047260253683566366384629924084981576647307443598521556583986831308338346750935705040947689026389501734890779294430152023376128739204688411232582088570475998806668279742376022879712439856819097481265938260953018673958612522669864227498939923631140073961109583560676954701021333131373647507689699397832967324304013779450162463319894160496075134940526307775691291622638099334878708285135715332808959509891377030810541250098994877757355778724032702956438353899336900670440508554773982689688115186435927483369310940642644739423716039747657225699019912682966182648717905518816422910132956791005763159781481831083784920259887550693466264810199075186332603681893663859100525728236723942472100880666845201575699713071677779627200779336584696110947733329713291419536127493564577121860661372382688758049853240189423018216619570605655318039744606469846524825345645812491326033110862577510864236100113471449117482176863815759632721159360565244250547388703248441462353589201682874868364617906287780927153121006571107717881959019576525584821748928823163099387407880457481035541685010689186918054075343963566478910919453790685127180752922283570023600353283928274458257815326941067939417686862759494977275781501584779352245656871267215064977781494590662253497584451012658145057595970662472741467059801257866752591557872513490382063787751780221092633725591271262249943556606799403658448726921476619377451965868585317112843250768018291919349140809808135787619556557032593901201440331755876919837350543620269240207280269967514553933380903276086314124858760340018515121221538446815491835386739073109886155827127757234099153124238834794189251680931877019863265226705714478926080749194797795836293219552448390476808357054011555755504717231377090696578843893379676050962515771094913756229363004783631677185096828816633183897518887247243958325001821685927064314356422508746480211103473240403890360691072306179445628537429835267042987192697010402352988444641853127592357984204054537448958313263440266028854720403986896148262668270219672605276477978979935115459058430640088036151971293218495335832650252701750875335639870696630453782720231341403954161793994056840832842817252306124191056160865505557423586339235352107166395169296261401933083564337837334729179562426747318866286399893037224899370356387085775633592592617578625566019820115445666942948326972656518488490149523924232232525580459457561068015039884814700246451309379593185582887786821555669217466484052645127767466308038581103521086655600393336438333540540078698305972821917820038989868568274805523224789155287026410236072781529847479128012358923793853087607939920018817319081347043190690273515203478066857958474038315098756644814048968067045863965415888658635130398251305623170579299226693618925962173176798243852386540076841578867818103500472762380999428017803597077891795945508278468473544469759093647234611702871274167574213581555124574645934304411018106257336147061290835928089599693118069800275601938843575436659327658128490298983768369205887101229936206081654103916758698865351221304359764227247426363338853685186821846796287027263771341751189435492855768248009393250131039821287645292077610500895748851807941771496282084953871496659235510534518890690365650454116606388042701107130966283767457225809634377680374693463449274826288300771779661939942889636128707729664399694825355189705245814428773841724996989772310801058099869678071115424351186450581837222828258996725887508950131552471947575307130155845025564106033405804554011731475507089261475004594492982973881839663347395914063576913420863851833486793138430631457799848878469555747125066526365019465810659960777706329827247067202390845563510505167872533184086331886049262158985238317938208340865795947244161120346192180957136414181723211541811597669100230208735644539894978785434353888380125618408330496051537474064183166786242087086141870379433239479227231843969570720726552087497825921406700608761020925821788890117717584357570328408275749300805602161806815927415351612288695755975726106198887697818102679368686097557687837141306379895844775420809816466292187713103440867480230542296868041202107972144915855690413058001496437098518517217392245490983746352595861707547998083656748966345884486557774739742536785022222578606280577026699594940611215322101709496915884372113782717384234029233715701275881590633435183519557345715411723166709188013513838803780377443632987640281087721190699483492302495062492210986859367309975838790642188059269214839054646745805607578098411193900508928112117847195708512889210508790384157757941065988444066029010986936275493471566397672602216104933385512807307298457480091322829219322762237370421168053363796534856997789178141723938420780798435468152748275434212784188549800380351190563634901889291350957145566042897499076203014422910854591175367215348674920571759244788066390518777775539846631593202712722272737833394165726005552350469681591129363648778143452672640990929212877544704041208736900596718758382482955259280713774459434766100617963146159318931162476322876515747263994839308049815646531875765239203515995051261293559033567956317882776649345300234400979777695907818507008427203285911804260436739134041599143386826348996895462644658366334311141860707739933608488349468102003527882546432980017782995380489082316203773302156128339550099971566504955065896961981019943039424512160367264165597128874879361446136965679121985922137231632765032636037228709917612645988096233774882587739968038828457322798709938430369715902208005836016533662294163709542979615533203246182346809843486581178935602289710226396161027440100935091195816465967169853075268852595216773049269865258573763956971920056681081213915203493862677932461023214706679565889766702873672914940017281427841149717144164121921567599939030861844348308193645488409454754077667155589414921372055659009601674040396892875345884734427386871836337619313100733174757344437851979552382613806236442594181039362155541811102438321341790460105283438348391022005386399804643102320681137986379747598829177194676759936459016537522541769823939194574029763712887201658031438669768914643194242358589779697677086556398412197029535893409928639052251257309145044496204932247882136891794822735665931564109881213040418603648381125334622333566877900436642929359906500016664858533630244479942882587527584412667022734507361699542750895661248375795856766559433288565320047854952334062642124093987036152420779978477530660983974724227885012521501808912174914784655763701449258847756377521318933535124161366687265177280297762064494000796689382010594856818426518328308555105924568151435258508809129915146812999557997303194293608342926784104584593684621450760252084167671969777387765320067662460146980970999355612354712781486752407695352759452718112480756388060566381792313857362067804795608170434083054317314508212764209742615375274032430030916062623547598538431134679757014109254844291146680615464437182939887923709019434427225033896623610635214009357873122239952207188581058734499350805026131997297363614415361613630950319328212442271341802110284151669353790471383710195934345986211798194573877299232644628265543344680070913462524464032757705130084876507095389884328805092243714506763798650177084967797635028243353403047681958704609983211224684229386292076326207812868319177588572944684749080721802086983909629293537891068532244065208640196183175199115904870755631915000276104773409021869502349758531960799040978288017553586336850235677279360149173323899368105317455606280394025065468333698384713687756679135270822444375975222249819812103508062347656062512793602844307861161972815641820608402179079350726138761088398368268928643053419018210588807326754304495666506750103576537317036973320299789240463437473234078557696091740718829145241097392625689016066212917628705967337104268849192443668461263341447245632427058999931006452195106924539936031151355362948244209670512057878229946987719298480883970574570962653262282069298896237383610044417827995639627086666015758955348998334316878964232889860790521070476864960562856684495316996107976003983270711670894183008885750387879522509039012479728263878624517513824947844019902176061253371490724873450515683691782683787340854266687537865552201407917128777787711933705443727177616766742462975918446780046305724620379044045767586027076556312437352144386401659614570658620796007998606352372176706529960927244104721135605735090107794680163968827216166359717523990589166538936493526642195686150645353732306656993528180841487742831632679155704347498349588557084342048366363018701577994679794254024009471909036695276967538113674337791274224341722023415964389529179179471805146876263774915664091758210492644720674487454556570780902030336049384309045565647781037204264350738471864341718633745421529863311577183067493893871874966641093020635387130633701442140713320738015698057342329318603932908189712202191616283443570392224348413151274597083443738592981068095634789450869886207154556572433984943069970410056255896415509706918838849901608953301913828336714375507778723373916200733939052405396622308588650864794857594320181663347583044314147274992547881259405181628825592831350651469694377369946775144654830279939719792832297035460625349232122774331582836607287421673992574059167389383176328598102228468161819896966067054735082516665967916026791797403716573095381975089654628331286200218506782323385582805615917989422038762326479753559370893468182220057052878072003895904866850878165058717756524194509058401776473346663099808261621966444238303266395604168505077176331684194361698411691744645537431182302600386920938464656963939519601905384013409106540628586887040555679872032469416227920757813669756268737954271849494649227859489844217538223556514571140266871125743318969626726422845411584086908223565222098049334750751631028978309914889097930454140518341187599149619180406800311203514276068454032766672025640913634185899323581452504831921199293936403484995181482947444888542708863811788260739587987566056679198663999480444490408340998042776525259269186881541783399192924658404930548381732123815115532664749982885195278157475043705202250945798857724604826988404580919297738902023814163852611522017312336094717967425709254317211979957697285732769459538449532667069852142552698606022429921811256801815841780169686321449001458273991945212700226441342577863895139890229669705507150125553988985756411092126242880088405343072496509534874433070759989765707535505277701098732749105539444525700576652106065364895054404278319318143447637647059088084682986469486669813908397592323323666712344897455004843593696000020372785540397628232238302785032547692612466735262939480503460425602888340037047711708160647182847222387497505560270756850458140474900564059821733296666918152509823128498194612447268162954528344384213658869847563679542802881550923312530431391077940706894899697142766398062036748820450339156307927610006285941123160617593039282856075668557113341377796306176378981976515243066053976933284329654237970242524954497615676558817199648059522915254792579251309861743246333324254704866204558189696989515082870009848184769313523873123211504547797486502568365325211637534124412628132160054184403734643895058480431338096897920248276979640108902907231677494849132616139787217381258123720478096028769851546174812589072782184587053079028602349509024712193977428919961349101795523530959447638278051042788482660946010574169478591894524019622170614301529317640770637180457409103884643259070528868191663970530044231289861466920899198088830417591206411041077469414021055845482980473078285203357897010096041513629943965292461637907396999143384063529737779510623153663036553984467812949955804785629549414376619662360002529483689974663642225540695830547607924638683096824532235142244656715481260203900975705830423429951461919463905789920124675433739677482795189356163390963494147520298778882053475319907997304640512270226592739135498032348798603442201313437831785306309940817357675678154529765175673352920181090593710654831656801359185352304985623185466657595999821473622807224973347025245067880500586160660527564436965395023799050647706512515534105878785735346114446179503295052210248504101827222991522312081327800916633483489850567820793407841891992551967886959771489609498791471853414204114002378497089953540832797509600984169122655783641427872552545931130389106890009617075290706788426628349852703676590942765792034315171290565107471328306133422180473195975106389877565193145619210500681267765992204911831719904596083322223036985209893391337026696993396707954099512009179215748074025029179010567713759814535825479784272805761678473835805264530542009931201311424433791750139847096777486810747594904452894507140423599804594153358598198996052782767784335271058647046190090342038390405446610114421892028039910803411166841705258541256083817865869543196604853589348905371072616812221998561088476324349403855637678506060987511480938239110244226953882235158525804994417027702903086471935370921979443632479983407705491651735508258755383960992459111514918195067261135337223504856796865380953214018364951825650878199016926600979554569535663064153478153895418907702551403777501006866889362247335488567090194749027028638990257291271724727838366009933876798786725128325377689388902279099773608122340685473186720927885115457295702282738706273513374664860636665327581161721801547213097268238224034597223419672687054208431278187172808539814477309442221963178117553319721767460672974434018179077343927382293774253974973191077497114052826488091485919177779708773356556298973950553108233241874102935541241049826279099876344443097513005963993053624942341577212124753708990431547180389277882850631381311270496308308031971520321917126646392709504256860053767838364277268238705194184571707967897604315343064572260797785891972365290643974877974644199694403327798257608292133183317462179344883941993008007839180117897454456524084611040587997835575583638112132986650504048493623882224709057146881651311932976565343359500138454378800804660839419697761048949821768197391655279824364452663798007829301860185418519279361026481121289592144727633617900600328642836905556867913870432235367952739602218300792403801273971340399904407562280413444321101458248839776529286941317228097335828122518078399275836564427206336538969671979044028844863477360594944550901447171445177967993659463722516885086492797756126247242842881717340132294528492155459056385630296695481318730048677191177227933023330031482834174874402808579506185048742579302725277174563729310566971760929462341789768125711349028318983532607085372534338268862793709330494991340831511149265962461923225542553172035010911079574432723988105073682477201415777729364036533661365427311316001877814482054980083300632062470398437847956981716052629021211572437450544840915438940304827899815663729975922953254138666460144316042861422673041824550985250922062129840336896372643878772101685215097205038748836663575656021044935640639503353405683840041202598551100239295445944481059123938001103756565537076229327264840128575945196079117987265827644716114063598330655262298232663046408433338740070693001208902620888184322182539623260768569997239357832281547240790815737998298137276408877851954669409724915795979315338880280105661513487359531716339077704245897255939174512906973493417313191892685543850317461461597662855568479654591703758600816689242572810383729163101818599274390020943165252075498485385943187987658241376183981533418934007690946299856198715386787434644705756575993175532206638321044665761073987429479131983806057620238214718903016489761015872413938410607382880814857529314333464218043333323630376893335823517171803210806019447478999680551653059341569407766138277491374252715251178553219551233867971695055737903432457205126621251217576372044360989836237774576788359948445592503870739945503134368839791256877878799072575369024106313165269751677394650017801373811203086611715202961501279773743962360464973613913302896231816046998969263553797341035289719780749522914145348202805567197693947245028755853131449625994941501710975162728913246831526597742310953260600188769070291471062858397234477504069141743021491317702959688520247927157434941866964651396594677721124127910464841824269418259213754977998648845151454658315657497535748245663579239811488306137431804051483843270175626032464863880751727211719429511945991325870561947449307015306207256798789927124300610442722060498083132700580107250503433963406514707938723297527533737565400406168545635476772299246681515621214613662696341961091801171618259283543765028507800872636155257221636772184496686047530351087438803158275218431718040608117570710277427841087915155537619620266136592106756889210958647222075313840495342195832323253009825506825557554084119579649688108540533964432144610163777089269803208981148932894961107736150090448773743065253957501995678401114185595735422502922499372317482807517151913943400615122134446534441256394114023493593143106358703862873054714704664913385339838234164202490124899304655711159537879416998035301377814351288531375439235746862114114394073646668816311372056380646081600743693323427998183372180281979534386173581139472333264273686563557159522303778247032129926078723095961932263300747347169728229275661201539263599030455422035298368523167255434419618673843827381254496361298228214455582817483364000916275793907407311793710188125251901626580586434949229237578833240180792383510414269751560012922705288971880527697755776877393398980801323069137380856601870605799829815570119725486884836965703496729161079085442714233722295524968687610077393364042499048866158083705139619411422190577628018031786987706291482222733400658773137617987279034216203934652614446358363910581176104768355777587064283976212000800717535002211340048217785016787027403904522707659932054096773874592388892790271184554192145079108433314720591059369053669259730027356426879405907040044758327762435542694545930933744305568971160560841124944287799626393244722427202530951188099041817031974679907997194651987100622701293479363290979994935819570569727069689355689048518613780650484704416817047270481577545715601887869122320627917700903724273078679543233402248657020583655928469879011992341907819612182307037981798261995680696601442031979511770449389564614929274057158380847558248544706726613600346055546082972008868470190768158555344227868920227325161434931952190380444386248073373838511748053500445202542346526695272476253699790528957804793248327891037772265057775779272870328361311914514866303908812221469523794641733548253808435591858225512762779281413116467538652439856781773580003088012496473958784043114605243805926612970333473637654850882708964675910168265114516530295222795591283772244726244278353928809462777621308063151911342765016172076211646670309467761175011132435203362935612640769195980513789740472474642961834874135967690514805125750760080602799239981177558222080567925049859889544608598366346344693363670680859902055604008008753672465344932432481648456772258636944530210464256625322825545895210997114461529262976591374153661987207006195527440830655136037041814167929803851202576395614535528319679904157695819773698288905745002455071405631626683744839106074736070356949611987638375835188742847131209656053071146064742254280083097311966065959357085482291517595032276479171934435925966050551715807080573556653776147466260069517775562464435083319975673707008634095670878041568546468160807310700155486916149670985061799460104711980357919817019029677668230105509198075619933748210962382558156871232826933455284587105487378721760460893337375019702900649449345657834798212689781775685791030048486602545938586437851092762961330718349789162620353658651294120082822678492273727536415022180666422064022490010046879737233271159368880584492195206692206274157402759340768655494959195421320823160243613076527276273300318614102929807625536054272150385791142900757020481761080089097792419105718797148206970371871974489928913061726513768509787511723554170266133305078324257286970534917804540617814366945377634247440638454068118862734777071023950002078464897606822218221164312730421258250015508158797250648575677478506598422150002909422943479915172154079619009845644654534596459165247799803863187742612670661199754855199665326695256894422955495153197952122413197901991206470195817826834793201149546880637503847915843622350533209580274681867288844813153181724238893216922872158467332845220432482765552078052088422724069027948590288315342449731612384400058368101878960832164875480321540553011027871344339479296382626127341375995388207396364161810479858585214808334815055404242675084956021792980437721159927678052566975065255702356166873483962493798408257197895595714440182232642151854262773214037481209184411879044201900150300201333419932132260117686035193526702490444150678147150200380570350530595837807339248871959455593790364149146916592047512612325569114377507053084532897100939985445376975480171764109682145512784137887572230827205095583942800526834127225366103818893731336790778658376309858833363529150474163217103218170438651103827303272416630826117747345126917705737023140783211531940417337843196883548567380385998245856359121089261058312887010692316466904819267048929331710762622365574834890664573040903212533198180483218643312955745755346900791458399709045852547768369422314464377067865525188692059986692535734426685374003763355827160654721505340034694006640718993075171791198468070896641448478564106983552086876283681101890382330201788618760351524401397356392180308881803445902507868520920799215110590914151556051323093931695846853033314815594895533288595768678305675193675576977252064139841242997660509367118268020578286442141731253130806772596690268128904509497848015866380370951906180002384652945659409261035223515089305878087587266977418583751077057005985924066191656166738770082059792590352349137670080438698034998410994430102507983863156912968009149418448253653622973073200502982459241100686825056585585589392476570701000545364507591118567520064316729160656288876379025370607369025032382859982535529639917266748796673838334566603598842357770500001860062311554461739693714034524187040603221006160638401496609603372144462003621243783091524708271471561427740735535465195660372762283840573085149122229789673009512215315665265638834991415259612849642785190932172551707939512439200192815683860446545045778773058786826593496257613346986735650404701669996847267431958322728746529311311135439257821405230079165082006402228527716378896539815526669038296857420072157153743291953370246854861552299788390382535680377606902948526255075583225070326565261541687078482744957610361779319949670167909949585430293198455592330727722820610916884178797938954622036551654389946363324437954293130446016625762944124119243808571122597314129432508416199194250118875299558263886039759696218343029706110789942508224274562369578279853750433338721607053133027300234929089212174397411201887404470999602179178559030378092969533050121052409197395534004206366823700749842882299214872861187674475320706929120697934067651503244864416878615064587533509426380542750798130608057144445324990727020555068273194417024467895119991589678744980325201344409645167782057076482704804577795393381339342688141462721230284617413605703891247129078346866336867425995518463098012218770011326538072324129841020317266534123196018231141150559217983935698020606637139554674623015729081028640647293857349511838055569026621978620511854991377491643220548372351350779773131635038628609926751453750987900659772608221898838035108137680462759683658244975226580363746627508824321713186538701201902495301288346909013167874089686231468570015793717893399259897832472812296669043111582683189081264821204368860121283415420551981337639596564399655409066952459199517360998624106555989652944628714709129080142419523794375109835779588064175648470866607773713697308987729734264087318692849935155475104592388757896781009111124538892408061212634995803166136887334649434449629261509289979981457810812691622801299427293152898229313340295465751831525810149095862741849770451782816728544568266238251479366556254029878490966476338605973086404499091946557621380967009143910023664068019316744388345490444703868118624056787869986980230593267308998407678347712488231388993139481299514582817137114333621334306890850729908178225997680194565145982620816255284665755348955658627082297296541419240892042071479342164773212714343022106543499543352851525049859609542393527068216358199390908790411201616032150637023053113649792139880798758265173314880720760020986467561921568181597339517785288125452536552339641214135567719360576496479835964247499193024884848505114440758034490571749061009631764636781739504211020525975761073944181833140137699336030844710259491854913714680863546725005649986544547931132128264852110237988041611645448412834811989013360986735616906872112634626992322623182070679808831101995847790713253155103386929827147574675916527920900762509967878793993813072705844705621482071068353440107954109607726429426983569826425050921528693562508582864252894465433476031575743294222259875595356009554128650962500922370315684273250317505171149528282082385280937146485608539786337561374246750842519189106373983194978225430635600250748753388817438748294255851740262502520740453291278627825463123346264058354074829840521167878032209301698067005647994766362551094341339081771578588455867502618765420726014335372792205034490131847319563878365363018358178974522814698692422138339798329723252662642676872931798301009801413579082491449038705784472969231127202633393399347948586075720528883958945274901342547221535470530326072702842341168634993047243935272748961559451107357056682940719652647947203712464108869689730243953603806934298576929374333030859620683174762801907367755140114163809682943709206526559344203739105726568469265607147973374265184460484774539244723202019744176181283322027932212193146748000853054451152722676892747124864281380246819764453502339892505106998375116495520753270370592415566518867692374086453759380359569570239265702885636113139202578324612898035851786352257397963931256733579559756673744470282394648167035355641595188536648949893263703091971000301004804440217730880370300466475314961976102976829810718685244899017734752123820839330103088090998450982116981731053946233827956035346639406492261169578467105364797007489002159368499023868429201589891667986599227291745695338763490131711188940375326038922949052718577007574613001163354096089268860732143029200498403490262152312235120530956874660445241811254192365354555508810895079674228022395414540575762274819743587047846468327853497050686552615954196176370749937366697497113553545158426344188098692115558868468881815149890408004506600198483421417414113590625934322077465878128246617739423071442195911963479337968329074121122659635097132138665850324945812563862184933380265828000664164789304123276942834639042335431043362333724987322132639230342704331646020374103486774567905290877006497129597386497150204736376005792108422646946512701412149364382124955453425562834979994869423464604618080596554443154640503161913249416267839254897830491752669168822424153327102374465045786532105152466570973068087970493839744539557809727969277349295128643170977631893646924875902397114508394474339011630046860282086853402639326889521301695320400196918993361232848258206218301468932709446410832583755692157064135009201674411094589032612448370998331854279020119189774429001460422352730298959681150049000315793174490733518921371530009680166222887281969258157774765760798765090002274911094032310062511589249281432835037649962467437205968916603608567404527011666206277369314760173138454015934667616796231387820673542584959491250230289130566318460085707122088245979892088626648677711303468693478478505447031574058135678647213619432501298121228963814274916523682044911713453765826641126548179668826193526133282177655068919888186601482509263877222674967559545334882600681530253107860669269330048850235227262921113629842301496361969691338743201942153463703359402594020914510332558018869854287069663094840270064801573337123817208552628946900682477635683253360534750534599405261998663289425839793521407433049297069662412504262226712310502923736922694411917524246899892363105061565245704836360056820900330788977401794570753734940432033595055133935381277465430233728250497097337409542137186817208128979227882319768652685964289684417476113042948222680939470217860192347031750599339493341125225788165727717430096001065857925278535307205525097543105676280050545963151052891909705464972822351215689059600947747085327068253269395073937512897030773566701493158472402412911256363499171489154011710116285969646716210806839035734510271861102034124920620513915669678586558273227295185194972289367229852237402954014587991589517054200482666501847833074677314743430545162957468115053492535020344407215495853868446684687759082884031313832720853621775008126118405781032701402777240059666997179399248670277944570002935050678193432507068036338597814941658351132811885562971879532290330601427321281842612045728216112236421543814356584270688250699526120691475961918002541257378199957440705449883406127167840055100365484173023787503432857282615074621272387426330285106969706621376319008173848251131478867480959750373684445689189833912525373982465088950172166020477548291327750858594900835925156763435127835472677767577027232668997671269985301633553190952955898191970435941530513731575807652406857291175375617087714046233816460874579354067280559646383598882918089632822198888626759231137548792251892643278010512804268924845870314003625059470096736951934897779608272821768550030190877820646782576862585794515729492003188070389064424635604170685285003903774984765652487912719651237765765505895045128294279593177876206687274629517376308924963676070411585303973374789960162677797425674780316627472975941877404138364063312036970681774396454727778041379297188762855664193452191827109449531494209856863629730965715108913147253858990194704294634102695103672575494968799964020667053710593611412405800690442513943329383288738464473277584319262262933075296886862460387175302075358641264038095643651154766086233075746172379144905106324465197011187942219740030115787082289997991649954351347260187258372086793174294286102260749559242310455308760044469694242813425112594669750071612240519400508614731147566502493967045614739619286367061020691099446488760833542098488878173042578737022265010465233005103503948420641699328297673181702491524749934780340143995099962264081455541716729324477143110746465229348362883992675650682018082106807281808871336905453240353975082969528077804391454882526032152424526252465686239887444143575970235763099821934488071680891913524987109968700188407118373982224081182200489698985194152817737245111390352343871246523849741146738457306552959229493041899285159582858586743857910091263545240189031591229426128189169702003114268750062277401711446002792886681362856670615224023049711753216170274413036918426110443348488611438999650951914078684103132643233053223494062939184939009328829507105960679633497951200525060316385256935011398735303115389619189652037188996410254203095614073724192212593294166682544166891636685442935654443405503707531633335404069355455181388622834843325711958517413406722339166889054485194307884862544579676546313697373333281809672454311445130751316332465272301864908786654039227411748628389648400079778881628087527305552519195216057478827244253527980174151305080660117744091199650181874404051082688936543137747979062777846097276416115186819037154210329733766550876773859794392426193034079759303044596606371156673774853723271047716599874428275084554021088030464616764940305536662889769566098301911803159667563474778811315285588425465501999975267866452256878927106589822472844253926000176594215229897083464060918455408086276383770667181985883244478736870833176033290077230642311795054661283650974037287302879471256105612869757819128631569294265598521215211138159281093648058768809529037694437100157944648885092622443601552133683602368097935312908069159689099056257667060256208313896681334174507478286138300319004517723384349832676547969682317240579727779118972194927136503045948413432283185417731181519031391415813740521509135389700863077600342214272268403066290293570937886484015017816134534837849623052791024071226859683419989189376503225721291774103048429418941271323189198269520842044471713775582889446893708545075498609718955051770236742863565485427755252294806589805506108412707121642925472008349933077727851467193659984307893991700942009386600915039150419295723661160396938370457009407314167705196452628377046400054319345300751086164163849602672547630862468975388659420152697544137160199234661255481194322444417276999696478042153600658228660055808549292804863514187025608067421631367849551530481719400420218989606851818126559895115020348291632410528957560999959051037984200713388018940757130793853322348180109444312384029231711547097371991840006813550365188999702608171443077547580910043039337704645308248780639362126899335694519386090763048990779677662338192729882343706225552786025127447524188076476771622349538353902676394393290196999265889001168471119809632535432187915628753001915319702612664337847665581194576699365127324108679173826256026917628844569101267194673966379623305875845641272313951039744752165128841465335470033841214080227556369222050582270430192118899079276308953246901944430029980519509976337977178030930536733734704077607316052847695535877008566209802629534200815947165775142797189946006848790346009253478424928826770952079308111332722266552722420245506556147809580092711775497299715993063371038406213138391876139449285857489791024181375597443520080281771862082166502553360574868169398929760547406642633394905185675295655733787430372118663298137844686597650003424846113012204175650763600093742931336957018535466419033184579907437566093633122789014912689333703748796498259502891167785829001200513041730188192169122185437728540364587635246897533940527830886753962790796594200902764568109230904236457200989089656416458244052201398579162847388577544534350950057651305702513134471855326373617555782205380930305842834418627058240027002185164885624317893795799555298590318132243358251450618779753566015557103024356278977041001699409493485040962798892232449199212375407584561162642706594398721119338038524660541174718390674757282477512464863266319983430453296416759538901515087199271660806301077660469536050773373334694459357241370417371974909090212874326751036797070377363581258416536888720795649972515746680868668019723569514282133786217072760908390720140594582494925678425505718587365725196288575171375969688932306425695681855442710893254340473240999971529100436560501058568390968392478577641440572995738166304203260239860458503354660778319164482987341815346015130840640798623572384356656680870558291638286191276765446598966908967003029754387205773431007573139498646749004793821864420752396165460708781362797567125228461077235035572646060937806908426499567709760481505411738184313059824121641430417163243851990699272116689995639267035682171753557389256380341849032829097383933088094629924824768724115970391852459832143011995914017911167886416817567346056394369733590753915024856766480374243591316649958005835356102697354851675349201780808584078001720101230243954798331651406297965863885460226415627346100944330578313730007995463683402350707034520449581117907858261612302141317897027714558611004790824343672976356375689385287626539023683141809540647623768065083987365735685879486357384262165284355975650363915049617262571956566238074389462250485472408319875060000188173892781689447526270668891699532049200650423514307907841157929523571176152868622491259092982901711535970433310247181018908497037578423499336925671503269281589532983992176252119786516551718225724755602788716101594381826650392602561923120843400863400808900797568827900785549374645757736224485755948236074074784129862869875650642025114262448257260778683735227739438932945596898527253409065784452668764813736282171818228746484896517835307057781842647523594347561032494628066699088652998081635114087192013747313806139567100945170559143048785307460073605706805371110637470497562493996758933067673501683590743081264001776629537919351919708595050805661013048185847601194459147506332964518578321603630888765225566890470245488347389263639945369160295454267687671671616291960879113019700542258806795117305940550242391876854825152601505256788771058241835863789323469565982079665146015865167442199913568602244755587487297545673650463599594999866757183870689707852788232372206550844884507764127296880057526103810861367218767053664605505629530136770351401759518686661794143299486159976785497513436444987577359085673516211771748608016294589575430965086094103215932597056828561221738368469411752450838790780075000423911268848518572522594448146884846010636877770214045375868163665596173670847925735945853579995657721207593059411745315492342685461644934958692711395382723610831045830127248431069491858604096910851313620215529614825398289163804151769412854937159300262176973665409664758101588629627005806072483051258819118293578164699632575965609756800593498084261436109427426149618002172599731959132207700140943813346006312883663593424981088222227983755206193925845594455902112830003416395152364083109634185323156227177674219004330305029755535669659831310434038228670402026059207877375546650170961851692719180633850119484676301773547054392288246935079301152214384517059287075005600681596575401521222284403107087002697804789005482284417856047414050645470570791875455004143275955892786764915550635518951849479599478309756680030349883221163358035152772356350493126245315176748149891300203513843946382375791830019856035210091152284887937145233184759951218667422247380830568220153813744650911502256872231670920177881146312605512702638413739500205107003372500987163048682340303641741269356989635490049640107299372062061189697374293814333441813462091940991889559958395734094774625598196585657071295232283562457602186577411814883696917373523252019394685058243785524473720295814512283333441015218490273208539708554546271257799655207094524480779478720568881436434122155942368407521646119664812151263438723559655895884355272217858834118884791476730485030611779078314154002477804714502214172435931074604771114613144253711355314760190760566516240795268169966234198221126687855059846026414795004112129834769130004743232850074316049332833466910432621311535241072395485246381888418351873670685859495515727564074133617244807446585144931088834615190217680455910532108145129349140954384721908946435710669586790962307745843258626036119966625497895185969880283187550261528173476931518096463626021488925383317804210210057752633802307697453053347487067508434046728818591154324246930703412908964675780433070802855819664409847215569753364710157995743390277699188608710386076659356457753408097171251449283562891079537519723143213989505432156573746973846618823140601534582493185238335386197878025305705148394683812748913176407967950650799331434821024280720418185523545546419341606118820376048429489382110974674911739408418239336914270969362209967919698016689208247559527731976936026204733409135629132584572820592382160083593587438668141779037961068442172842617402711009288001440247857625645392525767573281023316407968801720117421850420539222507215845108644833524516715260179677816633918395116611434694004243646743067791652019807380493601559772080223483459866651778132523709228739426573821513124931401324283874065244766400116682775935357471485720991112430954579710179404006554947952428757243969874927697730566853970331519758960869147418374876987818430637454306489546436205263236902048314041986983622701875556685862036585285207182886335714641796783648560705897223211548266591634195687142603369564917322224968979280013203655777685868993404252740819207912755329485826878450095029041769367181877345049355799770506628406201872321455511646375400253587752073781087816502063434217103878443510513841195234882082881984567103410414020547353352765035112113767925703405666448629152878261748370741197657022256978893520737492644656376275098267609658638656135442821461850957154692203867928976497990041776483105173378603564367216661558222935713017139625160953752625782756132961364911479538484242342309501484520568925082762018893992011096780439159646678395226417780436110857422664497356501451062220642908287575392665213823383539558546227796512785444249658986595223218777324596631255394346786544561336369671526932058572681876863181558699860990252322180662023768144445179827239546510241305946941268908329159620894444727849244536968655644709427555821339609246912682288976470873799422061552664279823917149782909197352808649741020261283485881321577480842759464884146174551231297558773225236449623735727398402435929080086312060233746407835929767711969976183293537863004903924641151986826100147031402941020276343224821099922103964192144116822911242351860237869753821470187247234508460945727310645686426780361921865532441532665223429083626706268872125027467269558118156487921168280367036116550392465046888485721759538031789713028083775012941673029832198127463531669770281439899611875939950344624745429453943464170982204334923507930114971001282381846548992864193894059495176314556381942838260718345865157272125381685006213671409496314969693599828801193940128776535203835936840676680448131920179485423389056082137778223254635689005369340531924027350946568152513941381598076757210410033176747691011560003351934601356376311264323162314138231303982528346142652131150698123659601378313009872720054612752059793855108514741929358712873110521839700355335552959003760972570685452062807378057486333325929322851575654702102277026178024694139293183908575752944089668114225910553227783590172051278195718408221795032612791885216119096616998218644633055789032277504162325898047544508937228329946695662563017585783628151465340759400621301347230110431527112969590053455779192895305927709465271055691849820606303284063494225452200345128173824784643036619122806320078205738078898226994763669957682318799587366796651429675298263546114018202421061447100665812058583723378007382608313493699577455548497861251821407122729310074981405756775254131514054658258481874446735895300291626587217121440649999655385416149104646345760308440300037050672151176896939938235101800187813026496165321221463499456530027259546158996115298345747307647394326903219699896895801844477250940973078578916565069482375273720531210880646973379514020564734347958703830426252816288470477494176671949172795617665921432953087833999527732596314031435416220409468038686250404402484790680018167929091965634628325718759207207367597299505439759637447529789135403984293039877898796248413166267537069784180310763896811989325873303629419362719994984054905567057339942769063272626159647510242682151524372018740205656107913818347401480602123675982161926913754521465722944382970473014638276223844895902836432227665443681565606268183783547552862578878069515612111756045287687316000934267308294446200538850176315990914158973286728126057208408949391294992994967948248432802041035895697981337410346480610509559896496433320215695066282572673036044739110903333601550803627776536577321918710499221845733067974901352688850622745953943017228686457952569016754833498986744925746391143459512946354216355005564912921361125006217709255098118671763683102229470108414064953302553531872369906039397943181076568893415502790602634556075961443219658034981043295679298381768994350148631007540242628484392900946204266024689785114293829485640517138240737625814103635588176612367646556823267782226688604194265017307777449131492178882443162751994345754312575066270430606331881583219618534841222589735029961153739906546705743634954953028751950748500144979449638574209593885402021895766452328635558851269097353086147032302709632428070601358800690194185108005998780731085967889704406882833452869724974323615114714903521742438872985004260832009838478330697104668452507848027103878216483248239473944221013902451815839004491914576058693286026822934274175666467763669872309699537103248347327904322988763897628054182852797731963801386988245542619206572766221486917749279512924292743458254928367168029623427903890338442696189869483393031470877137419998530495879641161136919138383561074626405203875092520632052182292897196657694065494865891621287884301547089188380907670758654512230013931012990249719347947903090974552006992436440263853437523422040946183896863389717211355305749479056136328290976427999813325987137107436109774917555079174210555255561294616260781971837180571392193415175754229518564446666964225688531563888968040447261114194727463086007835967530832691672156292253927771824844421254384277770603858905367621414518249215453506385305797602089074571260469846985132828533304987959586217212652441728544216969118530473051235252690370577191593818203122573353523779659420151774502710131847317042990814008631489918942008188742582596186264535636658914683086867509191874584625754377328932962117777106590170683307502206495689178284047731610996404346322455136700702157847682896108502577023285061774949948543632768185346553622448707148443887566678327190737926129288085361855736037471186061782174889721666099051123967729129511613234599571881027557395954970459695498837925783633751958082260556552294628391002154139374918057999789432684371933361663957394338008640825856556892773914765853767934490967236394118748823808162526993274420329146581801769254590566519988930525115481281351869893130838732837965528675327485188011381228327311978579766989921499073483154059867318554742512994287216810167407544669352743404573587944533225876801474691647660674848210868807325576132219146474266694425249161681203736496978631050607594996128144178275960649830053995864498889357411032123737865823360826676480020632671795764334544617772776577721108951308472134158039863724870754947154239589922031651038275733923280278571427101716989520763633160661829128276133424920133331627182538638202425457566119867381376219101915036539449249488666368605220880335722646000111534805927224700877702435224197299571209599752918045892532775439338408331022752571911251430194413398943365254465188389668306480241525819141008415064430728650661344288504334095707086843022866571690084513436112439640021330403346400619448588286159527194522084843134978446270198816483650559390346120092569062679769164216766117706582548744571028466296006853311111741553226205459201361764701336543123088160883851607928355746498722917740532772685469934292247983060904310772372802674580390191617579626968396237195754529944650603873226330499235247837617388528844524681413016507762869196211293295556359247480463641489814523024827370205382181823556111903485341746372741336961592426083608678035425055738382847093102198713457440111690617880006699635587299470705677759901072490984292150964919729963083602480741850786541349699041454720333294124514794565918444416945903403417270547920288019105406351878070183594122667450868426053001804187863174987613498031772073914263281544170951952609442121867440717760436582299388922099896262949243196079757342443371348125024972430681125109808566244218249523875033120669229327867768086747149204808099892408378855933333541159687841648269473026743329378762959534203398615604550679890245931959770901745718390751013428307074842374120238847678146714139680014764136478773393669058318445812553781954461192063459954789134772059479529252537735790100406663451347430783760035554873727463978288173748412027524804772542833440218299206097816372457135823970006398724707675917587259666013228137954172129917257356087166985207717705878125809384313104851844964617467034600599640145451212679843462383638024744532887609487422336273482651248405029766992502958738417411123736441798648958568344400084040216676334579537900398912861107416835733479340493112460972836723524066160905962634976643563516638627389489361947723175537803190627763128706661772781706242908596773449505628681992559066657948074449307145677573973072026989388450379488680334306382813261260611805312111446628196436165343494318196740253927125563242727797335711178374125701358571379201644970206555209602515588442650029919368690383319796630803021328230275210001548709602295515432653438418632347043273344202064912193976094483186005578577365340130751837257595412642832353854610968647921854474039335592654190859371551783574984476426915938200470054163387784922834949595198315630113039760016562286994700774934336430113613908131580968030486967862543064317454053906218601052429930415986405132575136336957911274260440568630439194894715798929991697482029827175104012041009340625621598235817133799342268033914746953733464269576819508640315718255473389196352881752962649444229023728808340130356593564466652223091280689488538330363219745673946415634854973404699012639217736966549418163755595111487025694852180155504469246094197515734059645551106351706794508372594276551562142404692392279738068381954905509919500749787734281399834068158873915852512861443684107305529385268685077502185786698048585268845056925159156504111728999051060846184444480216275308296389583725166094985511343013472753353740144933754112353143889488863353487804040893234087731954941792143458286342389349517442325180220312649331744896316429993163253433039359000140376923602562555142707546863183596610746348364865116263771052264995013419540362834562629852644299063915755632957159505317716595012019614822223214895946449482519731595174847796038895183056137894631082889567642229278205576770869116408457543362824703777455037869900722384842727865648783263813525681704822562609751814263028229529926497175316117638205216160094474184551537799604712312715346370140855557769451455600079249484336379517230182710147815339811557229664791697530844783547662251569997015060054567927476308488080435394395226366302774487835093698705387597468058992891035583949936106989876821201056989310900944283288619461300756247809566092108228294129598784224725071856206969046107966191377854414248286249175744060948044645518337283249197972424038865062085204978943302443980273212598819388765100147547859950693808850955543516172078017422012517583195051294926778914403236523866807130753782206527740346489300161178078194819344905716780679565817717783424299168271950972193414795954814102733380370757414276490493199983889899829150434590505287687438793908653175912890017760952088516943081007657748349998871749829569307153209369716349933995938075078993254628302075802814740587459977302401766174028597612673621443451473163992049693058208370229936968982786962455473173562615008279942358980431339197042032020526504108052125159600643120157141711062538298483154922450282367977150648179106615071469632961946620510310892626543143070078679745085972924776660018786216020287309523475820106292292508439270569627060120497085676638979905183749589070294060497256330202625638783929907743427975843274620025884103126655274414556940437869564751063971396518882017905030091865191617336431798591627632264558041594506276038522703451400042247248540261456439393144612648352332632677079376185729687091107788131299778214200123671258522026976997416139874345322589388009983786932906257282775346175523658829705453864405966052803528874548615849147597558360849190867343016015903995002346303967608802887514029661681979197124563190356272330606610028798608624627693868041029111969150139612115513178120610555915272102635553967712570072650995323428207615975992506419500359209539935817996866578598476390844367119430504501556044911961288184168763920155805356930317825236778089639301226642204420911336418573905873303766685350363937494899127389304027325806091521938099814670165636888598694768659275789769126972654026301715307562793166825199334061319336988620214832053105413293051285759574581538366068635507833532987896844512262147216615034383045806491840557671991226583817561033378500425980295667545501994902627656969932074130362843188551576721370707739705903603201208700738097785179138040954420834869134565304898153325963913611875890933044363479403583197813752562991387582108032772079089410309416940203300858246838067674052858840363863557372097656786978578906693272941933482051318999523006034394399022499617818717065276996833548224031750618436599762329868016547252975021154738883438927974942800449035746856937513153455689864964484082819628681593770444528735433597671890943072291101182249471808825495012031106020752650028604423101119453587391662345878265708546057663966264707297547008985650645014598099090251429480658961349289305233516455475533101850474242783681781714747024168190033380271974554480622908329255939672553735274828787135869258607792918104069977587607170408054526937468592136218077214947754211820386848806284785972241875904628043112173212003747000646643598162611108243862843620389035556980037849405074883642505480953007306232562593942722935502858858672902688531449866976984350034508924369900924412222351154918315996742501806402592547186808562896291821008777730091571587239878955836926425792839870205673241007669920430435358256473753046808564949657125188266503515670428522801690763657528918755885141503381106260535997021499703199084806028810704154307972056281754931082665777453442687526067698250132545367588224348034319336028892322633725531759414300594835242856677675827358604315078696282521944913901544613590929656106380605563739274939604458882501917954522578918050286011448315650626186795092874556568581434802091029787700600937361390693033646588173603501921289583223538848461937542787084722425851736379386293459950817091191608716998017827282851186397738204912775645059592239583286645729711622497245452195891969568607706919942671385799237392419955062694243383488878673853488834562033503861576582358928563913150331907056369047986152620929122040542145129914038223976350457327544951660749846773455021869683750672382995376646865702666827344066203164592112885819731366302848872179190315423174999339286044282329226860687770672028523051209518778137873299951403423121439001042144145393422086811756656023765055644805168134778508666172817089015727585047967695934279603187850539470914914046825904142324058625001669688902333326538454995476913443755171282887847522471295411652806902970355211658791155856332017650129704286220347693975527382802037204813893362905753885792769759748850421079645514429363429417364799794256876806325254526937965422532797816602529058247951809341303237560872973393419662336194079600641508627150084214294660089867958321992468480510199805250788423995502343216144989247367925225705090072730857804916521035309783876815165644687058549203306797416174948167440701742835563650677067641657970766690527971052398455508214950251950873247333009695843522412346895255504522170978884508508269866939207429049622454025891958899915057939080268168663502196765378142343064953331483973943537934901663571135038820146960141598040996105403640111536141564802603706857502735049763141162974706786568147784421031376241975475258464191931581211619311689803958722890422515786301192837909491536885556387345779365470324982602601672380120144793028530396158624355394588123211236918925747674892780979936144771495379762835688184229626050265386607049386774001494875835860913872166629434339818378829072591725664715838756207940660245237314017973696024069908724854201034772493241656045138634872086449691915109717967968892598172991916493337460367907260556667444505525798559872199778541987042280004509585212365266915263420708381328173161832978076501137086152265331575755666779734674727897161222981631780910311540479098305627294931657155671555050185533280856693250444010937209803424172646801979586434046570325436469656755726224447376205149226627740766777594078196983686849832613692053881200914317636862680959850743170944274549549350991613914262404802447373433224079560472819768382029799724865676613870215939655254736175226637364916695171618371143354909522301971845382269850062900077348375107178890903449060608924888355173407014341272485250011277639919506674805607722640644777512882420868359048032070071009198005520989642837020925014454292068937554119797193272626297938840003298207633316463945910578345019578949436440975638592407081734532814427342656697455464297004295496727646031968156591677850930614293365840272279303111936660174877446089420019234999485190752804494758530087411026331143232808985255388157955850941742999154716839582520244491707750452230012557731232711178686092253809644684948524311620510094212744006666485177050285324544873498571346491407820838467658090109931568161831973623839737370102772046956013090025567060799183683088144402938955561551717573470574632664002722872535169169804294456861836199665608653104849256213128528119038880364955908945837684350946945743943751854882042867509605891896426550613861125923421688055971533118101641341210614281424519788832183093097971174234755187494820735727088846903265018606784632441156004616207727028989710256835861463627147605166385239419295114793003553248155144230523930060214791465028492454582241372094647830902044327099303606610042634307431713223409299287981671095972350448202248890050248389107915927950735292864234870675466749074427285311931013298515526245479134570784643989119021993856554341070120428229345681656302064747351175146545492424087295664644199046160987460849455527193625431120939552431322939200209466278755952209582254328879504945214103218759621259123291411754189967808355619611071861493113046263819332452435698270011300175142999853680752418464976443131436220379395763456234726100601511114745881042407512019411441391309706040582450511028587821289949087280542190945538453858945508039231158987449560157313776062007601788017057902903652786401788544318450242761420507498519582865459800082293590860139981083628705224562687855399461607335261812638801464772271063594144085049212923647104840959346562276000023118155738142701505303583681475934856912642273021272444523617854881099190953460672352237575343715605572905922041186803114507906001978999067826724926078788104993525640315082344879215900078995127406076086719223788296010576317370161064640918259891921740214906925187165593363504153376852080738572173767343683525137934257535380285057069035819863698452982191781148902012313783509290439154782539140659878736629441395912167967832078501852567094803327295232769282496554510857793847383047848536234831750636922789777577132304586196829833612997747151741185017034555789026870059822588173974661281737869281493046293894238735936003554395153342885623119709256000829325579565395228371200967274448227157896074587800466297255492261023625871609387577898036474341057166616660618334914046756353389451784500964811497730162026969284339059110983488075960674635508523821245340942652358393743455074252866885865353751961990303560326004658482357430455594548667569476849851468745463221453286033656885077502386372001386052727107021574611217479847907340402780535551399319020613321681329407154219196782076695271107809336462115982128768299733114801106924455802330321890267158829883677449479485777404157671078995876686560180025464342136250711735631715224874239881757295147292477524520581343163809833503236828454209038641927646509397931345619089242258854190394915011721599050792646724980808235740468711603904267794443225384600834425674888900203675568079235115756200697770886311899779030410792154821011996586602085857405880402742890171775252792765581692944978520184642663812236165995221517887023959363768813232710796183075290831976490107555541515574406005793923552222071737432172325449418320307812971321338210590063846497564854701145615153665156920197867052076607742182505363372306913673340384257379453826681678302894924774052018092657866824241400343027261066307150036875404493242431715303427048389477279444283538245904688788752852170617757938455010677886930332131881849102966883567739717149986402334113573773352813401700227771951171263757975897266195409885457957771432360863257582117800159478001669520473751800467139374184198284039795453258096355405544618219594361990591695476235273877279581039517756545181821106483911520320128637870458426152235536150824492074989651184451842190642467452737746672275821861162687323688714050086421611356290947962543013349372596925257022847454791771910440342830700454971477557626587370840256076034681030861709869396379950719506687840988901164428844447835550344018319044956296670162292313517757814412068420775726497554772939367210258830810738941975997390484829333383609120099274912606092449090789006678856043764123424973356587643638016693247743400780467015834574667117733199170602664690945405344089899421826980789445563495249192037441375091254361429605208486888264092277906441791049494987606777896114400377342582543756138150107341451601043206075195131425629376249116650019367737023165430221611363730980435851455808014230442659651168485796955713885911360452697665731859467219320873233710011382379602048497946468706679592788710678395716042677459538112643992632237292750299806564840090621392665283369158753779441826298317403028871030968654341766325129277644210714935057729060288171452912093072743100773012852002903915742115917521458512543155584891087077620452914804670678490684344167897172494059494350979138022443818350555085640090111665733011534588098777985263501291190192713111090692083211158759678087418389100413023639614339078224795824500028837097151808210869882968361337420384215250170787237581299884105223683553524850468325221733416851081784432077969171216261006203897401220383091937962260139783841823507641280991229101921780609290897528363936745608251916146668992588694949743801121243420965522283145694464898300614466239808129560451784492157611977884076977423447509860277331774068709689632512609775329443406581183397382489932139057637276263009882511357447955429026642941002987633917423062069885115963825328081910651116487025130813702344037029154510259074728860132102922642460773944164372682763364007224405686579260960560413521574768477683030274386239114909985320478440650652074781894061134285145221768742967672598837068117627388989187080178762870389554908880107235439569319726825658079759866403042953282828012831386194818730393333712305113157139078941153713641703567756324868113235617566797405484895329971236637414180974169523795355108427456182596532397737508909047826906714609806784368449122975296491489872389380358494293806473550956012183870940778284464278690106568364139575503403122971667361688522111788579270571669599209071886080420239504667065428987965368554265305828351806318140890967372563900829845572673011950566186755626159706572188532399740287209738879705706363589399896218617461908154746563601496272700905391191787082850313453780467815802577724418130142072762250453700473930548242513756385744632533179379504224780271382247268442323948025629820976015058504359750319342057786137179988053612397325628768989439690442733440727600900611176779001061496174825466310018292901702709728298599460264278078023281368439349607825633907189033584253265102856962058708852579375323304608952627774144663255619278461336527282127736776205884453747975844506543538948683372070077566506982380829048396611230585981269509209086158745626514969276635034156354568546601603574677754471292028146097160618969051021956325501666859224092537767165032528432002585935973353602469148751755094305334002965072994011080818845814025161480480391307130931633868787981069416094893296241206235928276854640161575283935094899559738363832585540633918330385848049714034673624907686821224405691459822201728574201720739544776047801674699633973265611028674764549815906034869770866402806820182777888588363880340393167603629171429242259076070361111978663790315679420435383887562436916293921628462458380830205926788769523197642103800704713235635603322211788874973158586718359466268381629673530579249263960983929351389092482459908371983238050928747887663408116510921986445089336054033969611598327518837991774421059257585314197125683691547300198536418418491307787535101130324319381404606482539498628449964228129600150706591966695883125286645524486594832077432414240243111756286657847654224734116490826978679158758017038661324222856054793243628804963558082739804946783153094416878350521013178262075146816404630891954503052002444286809980693031736824435557198119163033240047660526887196938773745204787829934454845584583536922624012746708455420429924643513076758742259650414014117969997656221277506452613880371802822852029504160737956889527422871060141876828021957741245806115810312757685291282746192204037059768803063471850529801334732467190842347653013953211733861894299560574197264784623225540772904913616400609333335958421957328167841207086621989462318212036824777021043382568848080594518028234714517841411450639446621761038066616497731778987493525637936211018277946224694532441113229007880643576550810252100656745455334511633365953991040001533988255114493439076881891676762941209136273286793526643943333787159875389143659289640950332506388880292356328628312109385573089655222773735864901005067529884406452327416084741108321809841581999756268160350794729384424729532626752645920395158951852320544792928978158048412399559230915313750933172208506589911885014978089551312907838896867751667085631149049530070298598660235250676696559320452119778515404656835670931417726508451359179086932331025272277250066832173184146093521331946301362849467032372453299393461120986070841709729020593308574311580717343799208872640814573812711024680716854213360613671611469490235772448951798651138414942478637073176805482398589095313146245797870676574383171588004313339843342215516493183059024015985318253135176490042640496452753104223154011886905900586830537678945300315981542808608758570517034941163193333083731906364065927055877876292431616826362446430137747670048442212457561458355294164616924959770173789964113562219373281913319258231636193831883071792110112157400655683250367378488030663685130214329360521226081167440774263180776780679170554028881616571669527005813415184014604443407962487960130262512850795338838184716543308501125189633388378372983550135892083957431918539385580969628179614910955312418342447853758933246094399396610176005366064098708471647501718802802548150135076733625524183628909040890592410986042742355780179316598271114303582888228894566823379643419820946336927992683869389215881438522987662628097371042913229728709736548368447298113920910898343864075792201748080598310648901766767498143580093950522407660149511537514176365350519436089833121581268915723912591222679582153120570504321683827659972758950299922023161479715044676420897886281541832145820227997183819936427278527573795077342282044696924248270379710229044675338510929572406423836430688361127372199114702463020372832573953333957294142757360134746636340307057630970239594744934175312709200607948293823690033439041679940874491811045730738165650798191253118380514690295345502922398454661524797522223880299205498735754016292327309703371363050512185648269097763277248006338795993918936366217296851513189518394961426469153801001118124693752409274339992775490623924801278200731284636018852335902788823658813218156317931937178786123965867559413056736060816759760431004426499100925053520563644857663979627732084017326286731807425443237343221910729985213938198777363259307600762914657348816361107123885730467924660674363351032691181129590555031466918603885114875101421757526361761379701379182593912062839862375536925030928507688373950708636312444202595046972559819082553919856070379007611726281683422315086137845505799970460435029026008753606216918588798459253442991266776701957220798945101866068064027953338976055190213145567474989337469528430635082387930032727594126588336814950194555349598746597155579374124877414312345948187496646135691784500930533019329204229526374724928674154573954366419266777304030149132409608540988974573261687970340676203514786432469705796065383089608244847236649133907747307819456468599091941610623433855495264316632992845939710860509068238408103503758052153548774915816605848262494774167767937603992597969859647498604862877558664762088666807483437534000734993235316194990907944722538257140485361751740345110093557388449854335992447039816428427123930741974741569572437605582595290195233854832103561776146518240283541934307469214526610127331276559633185969054312112350504214129131954288447654120081345674751372132117826939545455542191923602958158736038303344013216035123880714053822032857176089835572300801113580697527038247798811177627974558446551251565416364162146868731697252581591641617050081364481432447477183074758211643089337750516198771626402788162409648238749143352336223164426825532664204744112012674733572314967364704451970149200701045326233907811520733901860054910750927537171937605734791276977910684205738161016004463642353257626680129472263760070088629259114053308731331064037052352370594701952168741830340064571180399789255426383764847190133797552481494620993852134419352665824207990827064707466519208472667945995181814507808692362658232858567028911351334648921208636798239171643788662443151749257960939301504756795087720854444530079428180858520314470453056086305712938009239711076303896407608018991476200999866254628859845960695158987751892770645500894812346534792300423549310816012670419513776733936414555540004505063730506600819017447963804586887195406320462389020513333295046799395022674750876869675808512015290306527715264298424248996424244257369065883997433847063294532189474333425050451322769290509511481456394697103292806366243180541947091698977167025840857036006946415717471936785396332351084386949753957977643506102939925266487489050875680318852385491532602580268247282963204821586902384239577576854916168379375333098069851401921271625968704831294997009731326492883547240595492217795098360612511938876284764650218817807693236668536097472048841923233604356202732311700191707752938402180831383443217022768617730903025589775088283728937230941584920601387187093773684798779791859965167933994819440941776518785968209362844715409801815293442900138645143163931018734350256406816725792087030053825068153853811418472418835512407857885888541474996808974411393396215846785864522157480151162452682273099014124728250060732999831557789121598677030352318870805843033571501140685296152870217518124896832325184251262418434433606538231733035308058503779771220040201828346508987579670395252859474190888856273162684468213594236742272322777967458931793335923028735457789282223662550134245348126720084778693868815956815705370413240835306131575061014821578107665668893663562366977572092610753259045747264677067523260251717351092940631360793335726860516962212337094554443357120887912845653732239914507944905525679223332239031779839846616298126148462221207630856869674155386146243256494958985265919963917351462768014703219459752222582384521788718059230409798185290184148716812201055750888417813636047091765467267520269116985389725529957476135466529362413188812623228441697785813486557862702025750163757744292938938799495582496923718015905587756274498643266402907135760629569390666794794153284172561663826659889389955463077324209662122222503219670884103718252239237125256658032908408819883624341371347501618816173076587086193993538927325267579010492474585495290812530807966042162780749543361494275866615275257312381003384162999803971179311214185188802892674443294862156419048019132474059483598756108399548766024315593967106415166240865077469650453271062205998293528914251903174767154673442742043039368135657916098575871528780146190366745225677659241045043996263962898520450078420883154392056312955537277259364477164003275634818525805344736805562224852179410067006828542871822511688198933982707656108894771261035858342948317979965109992888639101846013293146701830034783179786134990348090140326617239484427499684142135466475048217653451105868753175442804591173027997585506894183361494925457410121471402174490496835101269384585742082180760595660073483625817670576810962528728274371954061249545275519461931850339354091598016577423867793401377520164731339277111004576808953321271142082303181441679513955450670871093244855513672667654415771055949477065488557010350357930629393646013714110580821352152011270193679074358079197424259940364309645275701808461924649788336674307652989652358339343595300386821638491242633795302907680567201575911627476110685701890329452081442384519644743924571533952177101776974836495648014851947267932263795925438241400711124628749018650833625301877650921954511234042095237963299087462985374629224521987269492850003403319664797094359478367727068015563444907199036889486627326161408858088376902399558595261877501682247832079389305199990064262455865001882468958794733588005155274585229572365779575156691227776068562788555655251246527646174348939638373897008768928830655798294380007430741057620114623124637540951284456192658799896546844387889252734186420748221890565484276244210921215668515906460721330205370895879757033181275118849729149361787092150767818742968072543660942226517819411808763350559937737421248461702286881690899109411207272339608792385187623133770792903656749553375640689650429141264120918578386368472469460620102609575412481359819127506853350469662658211288650942120607401376149516717094662167127114625899584017813118841496625622269412394998208552353880086791247116931631273238908840536918818387922563371855155379227504730010731886806749366588796915671746643124609398309981270196819266291625094475651878369107500183345210395256578014003310068237498891396519850926065465399577084181262411530249779682857478371819385688906468810355332122404659553283912535307028719912710769984605441648092421817846001978574014416158181103747183811050594860879558225068949649839596237635458591523956843564706718772427744967798365611609147541451824319046436108035859236074720954299740247248588589576813016943193845823826010559262422849948263492438204757698581209142461333429190123142260683117851008514752317547279225283309841145205070327399253098879884687110114495530384592780968634191369230056633260918671640318660202666253040558022617670042536612110837231569055945105311133745471770724441439121372869875913768887702353524961479110372208406453798322806060715708229520751294642438225161725783644948102486136713592305653752417462766913107375435124307325894215334976945909626793148937454366089836259741666353320269583896666638738128240914661661421044698399085400171365858566531247726071736916827868019628874600683673578057145752469625274289282405322316501721685266154521841018382584179973272048995303919421421230538770701110989095555983882015651982575958429278914710841281257650797064069061636702532152911011063348699923469399396266694787800122847182287176181729494769704770202065299327425622622354203242311352473866873831824623757648211696209979676111338040467737168422580695569986681333029296620814254591458489089458851185173339499338885284041765367535556674390421039213451760851332104832002240575397784225224174569397308041184323161237709809822303472059300862591987064928678972249937940811692006996957060641342086525106904734257977786623019787403753343808036984200003380415046189431518361119972141751245467269193856153454215120317345109362012346682391559303848424157435438504605303348407798256525688385212345397294085906009958109341942578424770521308041948647783278189651211503482699171092647101287617219170693189357819257818139511478908428986253523223707901781108843574088991282234080123670514808462629050843829493952197282773634024322431889409036349765678192814873543951795435037180654107180132571127149798096878037554933926585308840872564362211316117347761694201549737253648198095600609413155674359440238686203962276621480740557122968174813465899314398357094763245874871153757142491512100446426725878517212698192903421965036275311743338990138184734509878214176433179743269618335559786530820374605070320007640438399016156900439314232118943433392217301399884289542300867980867438605107088796062939576932079887014090995017589519301448336923132132318717765201630032536875768277870391866379417895220880383635080818658066487520323386499280559676120239444922784977921131993850468795232225015745199201195237507819064879896308730919714077383541987082565805117758437951445209740897884624376488054693081381016339442151219825905402870613993731532858090694733425132285215278846337903227202379322169369917184905793710106893284437429147201602423145600165931967230952848576975395857582618801337873310767843278136174104079394100745190042343886496130066970153790781991565746004771622442940746610608529927383331370905127761583568155237904514850461797835692540744809420285757983970143184768130357603107289466622042642530073600430134605554375684204463351217999533593058134191984989155825847019959443542368621238521019469613879177827924665536968036537832193350549063540812897560591288090657680065337098834054797881370263207184954102819930902237194746206770490707434941208990079365673612004800566886080419857120174303782029723311160671476187996580047752629242039677867933506548236632897377870696526922396506217682263412385112151376068680235731096815808095500905933332782513865324959807181295121683846035692054146078970088662510913714704247968760197850129406773330539074925261096461743620034051445839454275464771026604374063634064238013106773056401982408926298396015580220201881269391710006326685136965399881124686426335743844605918011396199207761463226503890879145621489201343357228095804445651971082894333752507010986000887226040346808165298429795648549142063979801210063827681022765711355162219164633666104620459240983052874340393725045452204183282499684125535304424279658820739462441199353526740400379310260098549829483216012514867938701118528871757114189534739303423937713659594482693374286231097300434582191596225699329202039980400557900700686462232359050021329456946275239375015764370470353285008407817900964559565423895886945106551323094567787649588744016647877015106555158140197965627052410770033643063718365201740869662951457866748533833755369306175712569122481506742614326601026227776716249421541712570023892477152280372596573611524892783519402266834124042992349361472383751236756289092265822663706170552811555127593792030587384584916803450042569866961845750294249731284176762366234873371247070686951441493375808442601423150576479973332259599609356413552013134911627026682333522843501988082085424788207070993890294209227704102698456751820861496879564801983609240682639229790477257862348266774354633646434851518681831795602513367723753918089728282300283128191520462740494235533860158633727562731297928731778260454786974448240511185882985793432179243942783243298437768001360856994357779654858613824204656387197167045998223089355662967150327644816233673416376698632298750649502593922010851524626883682053046005337485616261945180484683680907589814376019290421327071729706714214945439799884007652852304982646146278956666091872136246967829654223774007544516366306657802513952928372604974606342597310370250147871401886540474545287456253239471047165672611861499533381127182806422748575651674918838590140187483926520925639568426698199846348502234479273723508163453001103333563433464202451244493195649753945076670814566116629076527890282602060236212526457717428839424579040079775088837145853287671067210202943539928349114986328027885466950256171643073466666290964636805559657462751299907631115892450108069563937139166341218299475598055767088565216158601743926581477545398982213264143966829156376575647308517681651902485469118541543773043559427380336173753164426161040935654187270211721512519264009558908840309718766415426011789162573638993632948443655345811556554104947904732902028047286470324143752673583595283641060213792819623908002538363407366262678372104279958792435092663682694021975233959591560879775794295978787840065621331024260384823354573881469859935416268313284908195076881994222052483368422743652597005148621121226240014549656613111499819821678051942933155693576609664399400577291721771336172645299215989337628103887330838416818286686698726556375170238821362084896979308104976937569890821594479403077003254950360677121050540307988384492349372350541654598221154686317015095250771560121250435553804598927103019123641779018787097159371987116136037485834804726230183937059783199592367633312209683040856926183584902530932721579564223352063278669481037625314908031151329846568632281837076967450763657421653148553909109196771509068252443372045527831464657401842790678648196468793435279435909980975221695138943728434879708396059307327491764190294044260821040414422811828252629255579775724042054773407359876816710691072016860167739615600064452912000732727738112298603876872860904340234007067538321582000554858167965287932985662006654096090219884901727647669885940118671750534330070449641205652568425186916225845988473762729687788301457580506624233596861642917262118878356916657651665543159393678279724220148382199638746730395072493789808613737071126998870380065967868543439594003933457025395681435756990665667433145546916043332940447542893068565778676277947508633522885929085846041578807685815056514388068512997252550259192706787129298081564361041523345329500559722891436386630920623679982382798503663696764843418868708588494139506465418265314566588675363781924637174738800669153385401521368404646661168189691698371624333943486351330603837345616756093024516919534257659886019772354864274771051335822107383216996546076498842451760658980047357853222770284537041196630792423172596934581830741668144028844994284574423654424095293536438437336961686999694543362942447418986434393833067182045239427609166042748499558524216452207952046488230815232378769939205228647062533234268917576371973487456118481257945116389269780643491837082398380463856677512319936535784388170605480931139980012550055324547093266656676920199238259082705330246716726725528427657858286924239061988748755730653685667759458402312560470442278089228336031398423544914362092855580351904161198916722679966549771689465930229430818570211250256742854191496408998704369576024835386692377025213828634401142346327976537886694599681530741957389129350528549045381104289068400131116366011084604510680365487294205147798583859790355695239978270042175728848797310830740882225531304066088177051268266172665937189244922255806449546794069706049494349008480261302549299742807977976888991342990510312150036419604245005698974826477555563684144136123069060659214454972387796309085791132345284283189506780041639118758373322213728799333165164026485790304428054346218883857566936644168119773573872379682076772496518625682537757800396458189935199975654715781466644141556434333296380007333692736367838992350445373017608345838919389100229698506499513058512355216402949822255490376789205653264076923313225109388248754883330896639713119666812270185089081943083605164029243872656729488818709885796482323912169987045477664690101678309072228105287343429866846379490439963472678780663088485836931483531955303986768771236525754154734464956241150659756376057247337427248562666275897278600812187343194737938753434760106421221382744635407345436276893199132055550009145984055973698843605646488371895966505499397352696045947180861304601209268776156616123330072536387931387157238047436724493247304033787347623999734491708557085149319036615119801816809027949584624126148610454669070477910488427665177370209674188346355753292510427052456767742450616995995318633593141626414871958374780752145893045610547978398303687994733599670132614334504891330261819311787121752524358492620631251435058543621592814737755206822718039577248686129082648132255413447942478994400389873124590938939767534492941814891686765104439375057942528682604111655674385837992462208731796334145163011694089004783272401202514413872745359781397225688516309014382841986503491305972971164228696052077157304677404133497001968431557624494719660152719676882189712950703777833733391529143673048001952703983586686259481851289090536826451790655101954056800212402663478360038608381192678753590771627545868865382970275553624457251029113551319857060624835802863394728150667240051871543879189534155476507918049086419833430004098787185429745377553894336118772917727951867834297662970127327949883257251362323181685746127537526795779372292211180883403717275183592795964512957300354926238993732593140958081913031595472755426834900956766415648606309212750263034301535142426152498966436489259081683797184118856304256295212818462066005206375088628732162092620618208689749100651249245761743806432567185562010803737784240644890489904381958104463246046022599054692785438707792608345609263164770899293737562123544641505007272099312253843881555407908832284867253830162686072866242595612110952287122362142245072431085938530183165325515916751580528783734688923616454624117996717585718197641154184300911552190906963696258854917116107296795172648124805318381305123499020926464845147870506273620202858136911659499236452568843705101104906248557688018677838731711623393124997428986287541185349900589554828551697540443338183689940419383099043691563281092428196369000761931225195963777200312293545618895721709028825740351155146227455473664046772033910548165506183309709357327795869464765702503171262547388438272882695547470727879037928650022135539216659703020587973278927304075672718267437040467753599468734829422782401020745071388863628138203998189201071616330775115534014560007114298868227314065866951287316125214554966826820814818495093769745982901127946456330125873511235584447363726991596320973574216985321222043705251418087144994967299150317794906696669445171002014909492778162069144688484484727541688898084463425432511754807068562265569627840820207030513277938609798601700863753602214077769799955273370937055370345816081932183285972996775257314537299740880743639696847972890057445417645530281900760023484300158908533231009719695071551158942920746770143639480472590760481597364657686509136059753393721117818030363389225778137787222006204029121300892650874003272326484841822118684968084715001570073991464817646908661701214674496256480920374119094402328739173047181963281996267357839209543923534398306209646429625094200382494406725109631590002073238440087951741322839147229098056400242302285427973729019224529693104731879673848375914073055084339573729040031526568793031698202111052657324022794183789809484014937637022152081963087915211967362254801829672991355918121537166427577225020914322136338629585726264692973941015170255648753500147069854210661263843570498728871871868930291066056905393932539432033515046590821233044911137471595532137438165224158661071000622982645081720382275119421943609775020908642238497710500254189692870509879777111728290132795560140811937492923883282347134679852517298992204865367771432427859694157317208361211338510926418094597733633822914789518201221541485609649793068081989728854230885509858412824263102255757869944715034551149639050740158834880822519888093952133167568123813479603406467820378073670271833414730248891320379888117775776666818624679476380196020768143513000236320358008944302985580268357488203377152470508567538947517195207594030054090016320959713909723097233495433170553540619589861929587986843796014163710263235968126384359403629774760245582814433398691350251447921942810258138934354453552912233116673070545198598243247089361520757168017106019813312959409073615399820437211123016762176172515165232077681862998247231127975768611802516716739496632674441695447584451962654016450466606639862120039125908532005053507625796219489339177104047742881139560914953709762415349856030098072736573053539576111174417254255150695311388678749379171713749158201205559340533279417221465042670920071388582140430117870155077170235437455672028513833547706385750060693953898031789676848416337570171356059303494226684733465319234671904607828855720983313837036894835015857717499671811804495506734664039374981335072808720669381549742414034113640521057436701314872350557288568682632835908273294101594997873501624303514965706187045863082462743529445400839764635625877442927059045913070759275640530992644864116277055974437121550844331624895838993779576446128057477159944871527825264251085124812787811969768168498133997513491488353771237930816928291846325460825898243583033250128482784439897323049679535353644164294229647742172703309570899970308067897500103682235614421062849716956010144669508160768804895981410150442084475044405678125291145063262352322810028238772079526287972529487531165238511529222965077192107954502123345335633813502397724904737942133763926116330604733851216712039983642503211589812406094662790782456996912482926530372653129729865022958361157389345552088234253193065801864769330674489778175465315888878240352495621819417689768780486677922090884968089645687488607852780397696123973872348800759412172131566918311171682637066541221501892476978145564511949273671312888061855524518765540509147981399411620455887519025618438029005098080962693311796189509287766539280351968676899907617121400190384973437772300257552491203104118343406263665123572370506482592619779624154145113910810234761930893809063855493628543391086236220820628891717662689635130003028582553539127725680903437614224801205910432910279234485357077274393617179144966447443082134211592835017494578248353199301943922750408881147658105493951069803739827183191185313376978515241053524445819948956454276005807800502099483535973041769412626736660291008850942716969306357318259456930806531739884761218506053016334362704355533854339505232271320709234195502256087486455579585282067849863436369197340232793714372130232384062882970840626163379122832991292967243163352019038136090663690768041080711165384643646260031108190239563273422004939380592416214537004373116037861166548194906945808628075478446279231992712211694734564541486255058649230556660738896006088343739197182452512156060497659323469143983458413728160549626685218849230795163539302010436337925793793624702251822640181109553537883766303328108608358020626012259655377343118912560333417577962340247147722509488116121427606869852205030875084513491366671156276277103766354199587505041049014864352922241748699269151933755156266141012657297424644089548790542728690572613738289469199911378371134643860340190042410990400620073938269347706932383184121318260302396356856171955991359985315306046392094234151324315418013185888673695468691238923959220239699960295332873015872220775394119404024915689914818009621252207276126460429909136502076426035340692377765688152698631267055743406355086771488213237572790820767195351203988980876318778044753619567513297478468903278659216551490296546312477824366258069031307904522880303619947899481956728205928991326342290761800140337808579756916566109532750980511625469447163842945767912007795224729979279933605053630305660651980036050221267851419640387062167762082075389509140960030913370193016048362987359891733098678706244519029346573045031085916324023361781203935485072681533907018953378254280300502654037216684356364227245099048622726348867682818861225285492883898842623501180073517688400804113610404069337395047382046930756172642225699313857675373376983105018456882232336669084500904244564425206985521535403915876408640343133580444207350366378666642656202858288999012064427829766468397926776212249901180699607915817369181673162820561014950411880233571619820753203677320737524776045675796463483378851521915356981354020152352424708268723225322991681301153802385523075556264925186969692014287538836233416960156209406556782389331109468710067282271943174965442952011936912865432289858036397722385618563483361613530310356918274769541873712605251048728336551990328515252533278819024556492927977301197052830232164675817015064553225894863873469415849787905589341659872269470435097987221351723051610433841397641195174041790039684336675662252190956831085357824825472688245979193997190686163188728362821077976283506336819455273619060800019689558447752721328956835396073905571977415468044097870472120640860128841850247348093219146932520129855158435862917415466380778401560687365510862367309080581027994164445086187370075343789010778744694422897316767001482949246718971546584795288763667187466027133775868635727643789393844168635729357054649887486712097260240263099393993568948637654515487597814232189431492246027874782079397170995875809255784503033143861698985067253574747139438486469359359138909415012710437834507422890068058425788061618127935519734347758191364075846383793526474939631024263548783170924309757508988131617300464154770608201357843266088693888915451247573971397245929901907867940925219468539501132004388727631334516442111851215056643739675803078882212412571427715433581289979393804776723202090228323189859106817349346087865413419115541332935284220863205068717470428591714998520324829300104706191566062936658394769042143780051453599129872015492681565422546019323477465434469596247488425250811671777160637277394735068699524373112939549345990454624615786816788621860098404628348815462429950924994567329356658620605245209894367555116446167646317498256134760182604585288185844761729506254088392596764911392139480041493675394054951254124570955223631059050572639474903041000080848451113075902392387797398295703251281989565368455473672331930896374494520206562948563164173128359926141604852080316119508917591877577636955020003078779364588699057162200715757120759843055102427705140965184698993081402659084355119515084796688048518557685975423139023231822361784860755548882317202296954906136033005385006790096208585512266149381202671748038747925780932043159818741567895941511260180491050930973897535276562558914102509595893725052757989489412638036368554626787125288717245390933074792501586612080625963740438826892840190839955284094209868997215121241098119672899405391883973959419583162546800955240176364169836285463573716700656292063731758893546848438214843062685130155961899038191456901644858033488294259200368762460507494100686496126482129363505917986143932713867111885517289748240471547563532113050663734343009388917629461690858179252672360254518930946006883877810776575370877375704647779247070192459322599552144328956163656949579868438190119309861097386036865086905467160019333442016948052486364959871064700162494365984479590227873079116787622738452107696701128220787871601646649806479482910622563516560789460062185843857090824104310608381042953436665576375019009722986430474624676966466508945668733759468830079818956098667825991114002303620124227805753213559028798953340657792388381198670107811872460072485216320209605060061874689742572449878126390125222838404640287588863120782221583645480594367670778996238347742498552096561937230889537870296882795660916510250255530592018499231827391976902137909979838566336286014505788516232316611881210661993401374899499366719383661177616157763196755996421315934571618141246714825650637126486112506878256502385323276041432617627776549697722434520226437119967972544969594828309985993400258683398003050690119920646677465438356735408703570593854643703458787592760969328055243557548419143347670915780815813440390297450306765567993483827445916407053244261976075313961650178326407599416511889105047249044985281157245307808420662997149808253760012213713346934921188744700080051907727648914908732430708405631630303735175327293388360563969249222651149423037982024431981052816994993042293564258295894121742068250213311585357219084480381407575924265438158530922197583897992062330239079102733862649918626753240465673206380117961992948221234724744128794369403142462186758598118414837306755870656554104847247399402980483274043836259186580632431698467973616311313198076982869601441893745569567960350315664231251740989670577833182918656981509136904701962427389478330271111407013547076315298619609875312081610559053606222988547407966280114648095281683282692338087829550432729979471732190435810674257414185399401147168052958497084277397439003710550270705121445214236646141881366427685237374559521605321623380258874977023130911583617978449914530778916028086700871366439252638394262961592763738634024694907222342561475242510123175093816871965603715293257019673167847692978667094982295055620630296902235195698227623681908858305287636265509130010695738926520340299279090034021675755644033798395788409769105325278765666420225720046079156215243033949832340116307450826442451668149119620106992476434478488613250862650218927191155747886382052363367664831089319407074999648590645622074741616585349292590502764087401014701011415409104563462135573249340122693708736076511907814542623469280478184481413883730826451800752948366667745397590456948518432360957648491917024435136012607270626090626617876194370321946045556437263871171878623452067013352134183359052507941042750847601840247740013944655785952686410719132298153645164746663177331874072562762188558583039896822193739587028782737609198691621328604466336936258398309909470169527112903557220554078303588555067481001674007842871432200023842315669370329332769477419211304267808977079467257956179438142390181319419359802605178431956731199350700110823879739477410894890813938021424500253049336490493583495513394119651203772364794225886833609260918969683786386169038474400216959657582119008669392142774648046813141938176064953470125357877285287808975363975865089791696268656017859471786500434878586079809142957612025281897937245267226562165496751981170682880762353589039392479456974981677054434617578096564007131480480505521023335621799915836473053571731431847247485319085464482874357163324211305137147656238833220455709021432198750585485046882630659140046537793182975665333836889546831879118543132601975739476422887323189996168830107630329187115555894742620378653687793923304039741069428637050313590160870524074374330691235235403985843674092030313109373651238564845536883038760987033194045722196581318541239255920972554680354812665451240305223934812611147331992852956091196016640053784897131255098867316907082551248913849332609930946027506060347877661259458235768996932661014236187430812679566098224619868642720282419902461158056497100122686264762083290505528127152509369542016576491673125059845415296643115824316550079298493595181405085485213045791196552550706506740102596396030925985078566866308388517716440264031519992295929322867744586967372531999317035876749130306091215756405374858134460870614451497236506411751159921505501672391132615421016676529963680352201813559747283028226050929937359756322247352912604291635407543113110736996062131937511975208893045888704131741241667413034813931873131572158201150381818554128202974383441846629874178759321072057966569373345394267961788918540184192412561435752219440152951565446200139742236857382302852591958203338670039817709701442824527405710849091288940092057751019327139953690925685006614461686044276229035463061663286755019775913082377843092620396926004402549271721500146155024618419177770860072627620915245119218275510886550816141208049571174178152406846079790338908814874404798164385606059470679312161301523255222034014078373222328998975136038912876504453903224900584755150738500974135725046441244742053235467117439086303883874194373484060000265032114330671653116033610040592881590399234961431423849231316650411863577382741693672765984877049746835684067968226372089832725734577870168451083007425618029725278528938421226977312741314451940109703818408681763834683690393172216586361619650531797746351961080040556920051466471580068189144225573316283735006970984768485377300138693355936830821939324539310552822900610431960722684311157716136278766109510814002187627259644000702912081510887923129448309343060186262119919582359778403004483586758160847111259155634050070716059793323146320503676482961803327248650209406157311611058457516814712699041188297146782145516028305202832834785688072515626840404905901574986165808967378698442209971513304206395666993273851343362072455871757570891257757348929949159406310507638293989749678472439968620292128321782774419359116857387843590404490997045494152341324425353434240940134935524049877914960105918376485728900488274711048061055612863401695003018998610158391845318601522537947415069157447822175466119192635727658405744692871274185556958770902977682849961698683060624318172644424372330079055210623889850920406627389225186127671787356193048075470354410048840431923023977964497718528153844209681164127461741661987076937908710064751742456467898157300538598391965103209713595083540931783781289737797724028000846397826748993595512787577959360291868836064741513132714397129317577409712034175584125757261003426000342457643961415373901952916637514869210027278991187295666659763886703530272084315732716561437168081681915616497211906414099448779277714921220721790437085323490410898284553402402756252732578403702155778647885637630300422384536121064779600677806855742184905643171945131132069327562358860959381205306951777183415882628228233325258123435326237300707227996070961622420799539134782028476449092424956218948023100282286831229878723170259747701502925833644413811876854397075360986190993731618325957772819599090409032235295923826876130808227789822401473941453516542057708057821720340517576752334361113934612004855260429863521406526183110318232206992805893942803982707845627243145623727758605474540992076138148871044991388167654603360191577973350862639591111447494316153099519314139141195662125816891539813131596079906150232603082363396870503332187605249200651187917697930936645534081454707177034921358763115101048709787687411684214312119244672830880916809183823785391476028557180673162998976436002689895860250324051875727926644548140557453829506908834311250781591908653382156180463498029122387422046794632299433054763089235255482975070888118607343705590340531676852639916831890621622637571283435173354405211411548464685149699574110259509873600264718976003194516317532521332041264169089617935358225002448699290741733401848418167518007518421794452798331792119980138778117862634745775586662163775325879220090664302674772912296916273487027596123622702183924547266614306167015615667861075758315694518113602081285101686971112876882163875155025862129276945036748637929233553525985562551667863230541494032288013780329238584895827556345308804841593135547693803678405374881691999425469219294914346919352126244544756605195925847114586350334301138483293074976434712675783422687314175474084350924060960278434889426788624960776247573013432660408831023829116661175961524694101539288397941467184117821771151520287235617808402501314117945012561152931176203986673926391872146250744076730630665524730421957012886857580823810510194609905015763056468532907895080886084229999635276779868101441036956152465972729314993700364851297359804020158028930463109554308574133614441305642416642233104636080045695117062775540077734232276299348334467548742257557563088336789395896067987686834409021049256001466172881380610863443465292442897007774721508650659100222864130473851371644086462653436829837757303671732073134973047354983544442651296730836145506078633051200778792434987696056145516647636290978799879670402588399285174785245912611997271793885558492931710650026832341866040850070518548346460992162382193125671935088323262275150108908618417298722583499232520951438867069027979965121854619529787133039393922947475546469765404138763542107088714216759751453223027160363477379714379378157101916474197070816544936410295821515326193581880654984575115924913206366712824133492119237123264189741875977018771933819747114083756015837105044313133120711068125737891408783777496854411827721206062554300616697569260949180580196047520558415709092893795287513178856512257962197180092997268622594150308764178465357636776401686643131501442596133696585833655239897533622759713527645335201141671940130470067298777740155434636562255212738970212972336349867604278744223939902239666102692019804970110059959500497867213443951652020271406799066642073706191983919956251196074970519893308858744130016810836889273926240746611738796646626860268460618553938409747590838710424233943129656616578298609569010007321307738630842061300669646361873754305606147308844251079325913920965700515758678326739731584740176034448893807881272560946085831929026698258915297929767304017835376191011318201984763337386823732349598854209935432447063274618057540123243281122757520583013880759893037502001309415160157166095557160341743541089562819247512213264656350259775669980885097446178927343132501368514154649687339028215963175768651862348780390702908655126813594593002598213266362748825269292568264844616571346138238269852279511689413895909830354441365572548838479083194210911158219200407748164209873234043614753066352772109625390072357351829908556443444216071482313082073110214968250547199648259355332909273835663705742635567253127939184251043058363198119154030039825034355179983267401495421127132474043585285990630840170069052754355227017150838261298293342466156581599453069927666537823023464975557187342713675402310323141757435339278683870017578789147009896578281706928523596575091160130379002230058578990643874913690608043797824135755760430492924757988365507856749725900843623908697134202737610478517750216672861474551121830986897362085166517224386141624080696620598399078776293181570189044391539346172898037448200045798720973410458381395897718596268208170138672130545177382655072438026280512836934862651470045347962689731328048926977837327130113985294607927125360023714562725428741135603740596357584617122218934848540489203964747113099434020053278615679367523452109688717293886104586100042954861092798230845853906779526693260139986919864100395131219241353253191156985617469998786229341559353269063740573651100843883751708899622138915011687277216787422158690454203189743434100333510380562865876545393985678874843063178337104054600163968575578188847559135750400014377384090029447081249864766219418728483868025721789130076111934128239994314238537716236319922318415737609873814465498001589741454888042113420963044778068327542395943521079478890137517074121474115488154174704152087898413114827508960110803146669240616877411574678559680741754144316500970296884178257503772811525021622378897621694065226971064121855872448809464653156513516414455557050872109552177155682304675030581208115604143722389204261354142669974278657941559425718517759579808073663579418284206106761589330659350422838435447598425320953896054460765370035022530500227880225548498458059622246858555294165399916117570477563639239642349546627439501879664637709391752235231747214835945977816953017742195223804308718077908467649309918141103397703751566695242363615020635172377098764221318544276593483104343812080133264850691187390922378795172669381736030888586138629113897564372520249360435465584513797493401104564028833910349059923711893445693669181771333841498190252074956813467483537238326040302073772448231016374337029114274505443436671142185599105134248901274325338620288179382899546288645252163086930671371298391385500467497173140083948972942681158711781487754620229330955964362663033829597817212178575231471414066963218656498502168076848176689276696505218944012752237613714046915685155275711488564468641100567712813651910109411308777884881738001953697678193103863540715990157243943248023676954943293765783744257260414607281119947767069103383513693142488310722436011359672569427195219329251349841770597971291528081694906265259631491085540212359528980025062761971755089135380263192234740023512672183081021210844298754312395273076354047855837845077237631899045237431469580006704279127236441157555016800030103124326791813612082614223530740477992622742452061164327815865537001053729420154407399135388599399019174720283169267521222538814724409126878704948292313960805312246831673730963549087031246506633402061664760149174546826127619883412301069513435597396973827671622725845774106051214649919617837117816678656885192357830994860165165993204863879171267836859292882495646887603415406615604411662553719116955382835734989985496130610007951745105406681915388635700904316520831474468800133669045975587334061779789797049629033770014657319510415036708565210446271209217536301609276158481550289510779088411388360700914265388851773916270942114665426712244577954913238854096678454718666432104634027785714228756766454958275123224712736298459044917008133487468887208609884031914184333271958060384436120045102131566099921888032403937686175987470372944458778363030312455773590590639707024234285224424216315223884715788230390802188673574668320811085026918249873338284326257232235547154572750902506194734910628190860939108966687157945644091150781632310925102671427677097873923808956052829301321778291531466984865706821203202871731371104929346790043879015528008138629916982453003261747034962954337110524492529829439535177548809296316962695820871469572904912591503232150892674850027985775422972175018127656973217305657228114626983961681447842974302439324465919180487916986963914508745879690241098503886173605764184744907194132642954434218974289065473692107244836825873943411851019976095430329573825106881306051751417272263401997211614956088096873956712790528588813373569819296120512359423046007679154629062152722213330194599221715946926692902296362477306951908271333161944213639036187116079126705297964328184137339490437005681959362777790785340213828457643583229655495265875353851720303115819172128626266968264663301693232845120856506507679425951366755264246244586781462543937450769720755485014581049838273225777054406485437776371222371798489077815453152601927900502091659989638495504132846969143324602192298318721336549099295922422373591271215917766512468934765305165359571701937676052332273661085778089217921850677463273838811329572965372154580971795145978425603866911086007289123655563602915932879551122699650318058426014414448001505840726536603819635536593979782808860991088078980525506163653778900664082799450354064522311728703227355935907384802450913823774083077504390910529527997376220847359165767143264300297296853611865820641708647980627805366006914063916231146659794288854233893075366293652976643704507128419555065601457278228761952475916568267456871347308781831770653500870134190884211509510468413730354972627399831447343967758618596889661871226455730399227593383117287437264882227960928301661869786242102931626260073461595752642026652233276851796055009214765496691964757506247160554601070226137555429982497843630319676314303960158736113428303483102686098949822720902222762737470840363540208605973287887534715576646841901178859413007826389351720205641022131030334323720535045080263319766391133127319017224627527101052452859312367200729359037253127795514269520761449179800060448269192086926047646598554769808165088604043241539853394600756040697607416472366726057882267694604830341659301425032109410371798971652634421263776501982334937897111739169012918427097007796807135520910377241327542649788142186726492372685747714515587869935991906706691522424194161023782964929532224374927062354816413862649279301565209652832382663739805958932339846752348027843215141712217554078316220838992643762782940538676792419958725792736836512069454144358404616069760204687964468202987721865606063729798785989443154701334166610460759767664578544963966839199329477445321945373837409509465443635599264973084648317871935586615361067414256583982257424751269967818433640965898313594223755696145988198252245076901505997104165291655513884643449605812224531905178474130806165110998562679350528024462029421639138785446875980150738800792521036307016705578252351469689762696103494405479858603719652950664163481419259515226187734744814284770926548754781562388074065332338874391934905486973438574349287094318174205470607028576076354710487896765587905741537496329979483726003468424739515102557027144256885576273858219833072546402037207372358380546494141428771489522304085081405498395988711245957539360493042421930548062387825170557165507054318563539303921658236136847831130156238212764413231551012188813611875997593475547640513493159473279940013688263501105027125591261097713842349341776114574511677056716022727874536597575258577624474813327867882991587873450925527357122906545284777267188002844749823453242014751132758275608983120294287090234203179805612928340213711523209028295856114992893494272131621466981053066782466838162303754998814876310712022280124103807752882698759860014721257163994848555716829682764248500508645065953587068790263184991630097253761799149093715886501449607090478835294932314132670156920630599319242074512380706404706490778173821285603696383561105219490089125365762343132042103401348679938284125079823456055291652465861529444869770768165616986067501739653209403537372654912382386104137812389675335759000817298080141721785818332516694000912459578436252024132459078240737101822048589034516949981037508661026313830916507134686310963624217798740274001023201466963286968720327833861198711102280877962478623520414694866386458131326107499644948037692501013269957573967066634629505096857059686866108302492521392680050135736927105306095984149191418312582304021929719169771508325703176577223933229835349044641652663641426195492152286851245729081137590743313229749254714416055640242603448071575862393011022849929622636619101660540345397346213043019155605896905324773768686822821099204772919792531439270006812597654658589186961176665421083980905227998514677300605781922141485214946320644123229024399695086615274780004352629181975529444447148997925995052263501925484653528400809557492369153322727297962902397176534258688614521234204716388092845292053327107626586745459140719141174621677337957365803456445532050565795117465799431424407929678983852072324453887593898935849048782843540150799550077832969613325033655956833193571298499692449895733519953063489423831526226990539989330345819822233285885179254587242912345400335252606833303397694237915102971832244879978595834564629150915098118319812268026788685120778382054618309168595406295117778722821313301464817743553575423277353126609195949059917086214082019032176021793344877831313407955898696771866596436463765427373597988229006815054638301859457573126305792678296606316358665946908635950424000822006490116802906725626851282185325622409194825594608920357028769417334043428712148911063546636296722229945038777967140634778992891610147306408469691185268040692809371267802487929761188889706870148517305078663304855246422859640480682215585917449174013272494022894701565384275689988012497371458563995899376366155017043985030648149752992745164838258832000898746248711729346590581750312312445950948191895804120054773304694048367243901224881035192721507277584460394346212483080568198804120350214752235312674024130484518241778903673003691019729264081340266784568442179851603635200803658695810124724046333862376187806824618588260650829184384383061266662541274289944128080219607590181404799502884608270925806929950635911434702935698642537801028753253365111745099199675607196624848118054735081603941312903622769029994211509520714650938005206527782107740963246200992981200716896612940399670902417240347359957624795079482029252153366984937480865031994639765218304458023450717359559980151154708926015292181882787720584159447686302371464215404810976814832086995589868874902652633164681223481411084769722385444863388310430159340108037786039045337995823606925127439129648420391326807086443747806444112579171130757730118105235086999774273150796348651650469368733365400726862485720079162497995907065510449670943668463594076709336879057494418786663114626748783476879052261655336642918789907035096329702703323272108711563883148516863899985087593495560414596150418484258255803346194838645300201580756592212593420599144441833597197655304248623732839989140668709833429780577403014335735685825274667690529734222117705694592756588899338670325170574397998121497023323567954298690669171011039669798872324553160666041776183274065172477207472909892220893379510875684371105894968301722101761840064675147261128033020716294708640493302957565254567057485587197541372010342597088677438758429852042308190820344499964598503904064509031233846430164801359983025024736995861126538328448745921371890115674127176324483878902200669141721405290547881788952205653693236759113478804244906263367262610438226585115024900377055786483789691892092476894257428515445435696483295670706857436698845455852102120319826094519785898844246315768313552769073009810589287875408622641278096643856423209008562179916658334487744271127485947098706272641039766231753005423893568869500855031760721616240957026835016140426137617420537374588504834121450842001615527055571555230618402797406898806476841679442768130995089183224772208929797053851008520248545019381492925154957908996329489710347026733822489072781970352546000328470209521344649106411241388322268196878906246522564426926485781398243015031807839995393210145963529447142736202237036517259140562319991680811410906305370724447252625303218583801388818287218203916218141842831909865687808894275525971936679809120335915966072107038979967249861187161973372609340040768965495007632464884775826870353853172420919188011981567856859028325850652353733313937980044002145775226453845184182616037618097206166203798699743896631880547158659790328961488407531689894863878012821975610136116855476692202958914172388718264171555128407416503791775573179058472232332150021527659280778123740678642519032954642524046241613471117852838841231714948198584458430208107428332101798551271990847018273442068835052994905964148939520297577863074541985516620636365879225714369967316593432421838134490763343248248849734108703785416220472918486751314530346208539613895369056308236432293030936253735231250257098739925394926959776326156097903131955041071296427586250761933670381943575463927124874006335880361604182491186519714432735598380924225748939646029258186827909704746161335970695694041026948415730238089143778312899883012142323813889263840671853166602798071256594158908348037926518173376456419042056515578153569911556071856847227091139857059790843357636215142903601289353264614049241519528384726253141649086162468266692552293823994972884807841539443083750731256480721596187889131863282091244790414566469623928290713933714895415754132719823617872126299891737149059344993090518816792232501811356687146606612979629976429132810314819258131685585117589071753965799066625127417358781490908205966243867518608988428500594257700031928579922208220889230172063797996509696295242792870159312157943940566889383463276251844914254915451419929306146644065391235384159873391384347090152699760590239452184604068658972857630929398912801134496008957183399021509570442970810661293973486561202701807267277836062323455731911479807969762446749802370257505663573368684946122573613460680230942582261649682450237505880533615229400085758058936523271724382009020651459473126617192415860038509721793817721427597776518578835325607948092281676572267905268180437577957135502361850608230821106196256044204481807173063621268664423252410824270861360214423178237958670074569644492938877534184401393547160809057060800008220886104102368590436886820969323583221918985775878474595691442188150194175294696661058682592976618693611686057518492664058391930253373213250043096011698637327389285311529476957977950508599718320050219005478535683632910677979114342315508843469864697481032759709838628680264680008239781826333985434144524460386477211845944461016469772226759851268565249617934797836710084019436740742874551163112376065124766867832551308647265008437038820959648336511247501396399751976934657265625891492498146337986497317568042052017969902444381756913573561194016792611388840969303554650009941877341363817775671370327455496136564351638327483898894910441914992374821637155742418341358302786770960261123433690932230235647718198612648289286441106803040318951378497687255459773204031273161227608799558884618015947420053621478662709709419466137392242567375909519628280220964097250801701031685203536383189730081065972472221769387120040489928738748472793079359071055037395995974772008369680036819291518171493887536662812017590538184498028270870944279396453787036728760361545310456605126578038400127434190710935208287936770514232679394875608297151317207266037824057039976372562492374608231523986104204605950351192225428476776538634095448719466669743086448505442785678257994652857201981342895756294713808981905141898033869151937232881650929114322962903109022520978623252973780479138387871465638521874545324397719095842292173745835957976576040751053511650651006844187150129577866178042473281762459115876072007698439849018886710112299701841044433918303519130537992867393992611366174777108452952434916721031447295404791829570282823467009356425015345841971752208287185680070937797863069767416680330940104393010088160111075152767884178483188748656466059556302618571594984295838518258051069249107229478875960430369754226450305126786732588136872854592798023122199991116376018312262746070588901634855928482519386447604752107107793821647763058528781665123051157354013165992173500396733522987450782078040936407023887403072300990786581129129391643250552259264637928929454749244097860501574545291954459654576762925241658335256122588540294539086595047192829542219168099717305836114845285983134288529918902301530223352426760479603401308088389920270814612406801757293415738227264392916816944613051279424596201991494817336883615955654926036848113908965374628098811801423014176907002442322796133185517499959388831761453405909520204281749375234230942194072771625172352416525704618943053406288307885198217558863568485749533882431215848101111417431034687438061192855868450470164681123579918517466504477137524611748884071207095026297046030890150224145309827447824488737671029619349282930994910350912388497531088105588864142606785718241483753681916946984144452155696286584147965824584982409109190045462871668366002141045661412605440313387895823285697500960296921937460209224128185459352252921738754059455818109828634944963103767490941597773797228649119797857105280961286977548571027612961283774126339545295454401166753993454293739336053135973150592451503037407987944243830814130094774010259113368111536213438751443821732351720821888206209999978925278205224883135871390363415085944437521724220871067537326264057799004303696610519370606156409873885077936164563958767995938902611543811952648216216802178316972121492313051327292309015698264060164093232917338009007191789814862136293332211969180508678516577105333711162140490258890712248031187871364273831366685596079472748901084379159208412893348306586732129805566083618550876247494350434318363448979856188979336583116612509621990641526636347929611621707756701111685390697338063417609235780269042852054904520535676608770806937726977590822496735669664333022359205862551732128112468512961128033996827575664560937114549915054743355274912696246866999806918119541108020548408684941226459133269924012801424944178412550637389468209617224553340452621777081557606471579672233728648815270296177873695990655856802862132008051280211451955861772174543458707566245577573028079816406721271211496856945393798602381585298873648854165985165088297849757082906533801275979841418962376159432541599038931646069870313882073852070916701416193318647579621820006504551198401211840943480377987738811595950151199559857809739051793294418461130302370325125820362043033584303186208700155678361937263622702693174998761419989527199979950569247048017957959531249630629811789344248380904199533641285120119948788719310197904028560508511785045141216380386386147562072387690571591614360167680863288145286804824956000835111998386720432417986301886888593422511848840557789094470976046168874677631704970761254141724893181983026785542516021804519696576421164270147893818708114495992789620903145619315043814587941521506643562660872150518785177165780017315063292477825706224604598993482042484428632644472243700084251550302907256805948921009498391775026009820190195081475778774623711696862137918274276698937850949226394616997864452449296939884058261234094048023811676827127596625060453325504095305125596625324507337842676452127717334092013047589613624989605163742056273724651591521703718127313979024563331462185685853393039328198623656485281273739083731151857198687524824633759960260114144117392052799410472544377501579611204438538968894615522709746860255690577311643242333841981844990707774638521511161666411313180554415522264620876283192993099119190333865271400648471460152626708328527862203184416991548940919248885137411996399967590452211910649473041493601371835473927584317253253964236484967694446238983301608857095708960085037383343226654166214408746816049359281857531512120738063845416617521562566924643665665487567482472497074853869930818765572657365213687058738002875264152695513713520418575719867222739304094944656702312049662978745689057489993635059781017180294864730448402897029988562444473120970623801216059577841280161282849677375904667316604921936291076962539994623269792709680277695060733590996852718783041624497092778041351320114962206801488255274351260559996889525721679277706571087551852960640083872172742963997424858331192412149845226618666039478934892118276831058380737928549685335847499728003508819362879375067114971017078018398512738957878571743886706655397652714192878708254829258741229390577123840162336959790317302309099508061972326432502471731181453277074520734330366113069070274216362603349814084802812058607548361874549098469361735118039419339534193100826268821227756333616924583951496981510277198761566711673408438626291003447771155261273249639673908703044735440698457670162599826770164609994725298107487865177795541785598504261381657083997307064862810778912441657210605279751711861879756079990400125275467324350185743352819482576186426276996580311022887480454490882209819098288330135150859454263956165544138539275153618178453247979216504299265459506510266030451286286991574858596627456712409523458546831403092715369089632386444030562256437472450519057931182108181371930013016328620803571665472490948030634108433128333704007023045447252570326046358389119095032919510587471349205426836049377176047274573607840105690937938081087261220985502235989485009589000963577052391666021024216936701341541578075889376532959960480669522808392969944357993903550333421930518354961996238507965836349142594337850355360711770168737457857837720560695462579188319218496181123778820958314444058648030486977796161623546828067614874771920295030988018074335190216926786417258639536176854868149488545133115693972209909885143144585506847697330895456100216975812803597273206679012518605136011272753772392741839721411859401415981758551241440107468737054221332579325208085105390979394021771164493150597817484833101231315713592279811959831025362527725317809429887525600454663379191730548123026667567583411844260474174770358317795314067117156483391100817880976161481747286590248408861344778579886779046194409780317127552080437447697230001516676368643732145937668741998542980868013215701910754559443771967220447647696096670953532514786790280308839232857825922420107209937133817243669014838931305649135524857375034917481355199475452179534853593305655166855755759708021414051696596321149756512221972192604919604594711092187242074640564953701802754446607401120033394512794366804095261543091036440204876950712693071749897284790311351350860350127635037078931501005215235438878330037682283526617158325133700874687120202501515611187763532499148726203963429133915279549842830239646260198960088928478945225151200286917244976195403088128436892424255620761584046019047165741402561912495500760890691378123000909899044813144128320760420670605048439193408275525569789253832435478584664967961906515407443542025949520241633939319981045660435667633885833716013873352592768914442197663538323619238700798788801276916573718608648023805463837431667159505653672875488224488305095604889586339277067754102847926992250129973318870443330180635129754485274392668537642251493934703490941828755373891113904148945791138487748522979678218763758107513554586030196163060748506599781750958412563938668977001376084060088984462677272375430578442604731840471736219039750959406777939701862887851506333468489380145539865881077329142500138785271531654999001521337239615875052763556599928447355788517578763422540790597471381186860338769008874473625077603930240169536876875061998696607039540028474733023255424486229486545862388078660271550462860756438723433420154266364513720415961730966873336099095619580664783002974034230922166047245972096717310478923765429077725841410224885581562415412182973744781507872401224656872849486277542013185644924733951374260989358758187993793550785683191005768460879083987466021342619813192856882285842263216605210082491393221951764704239383393589600938489241564972905052651429853329314156052019806807155863545724601300616131918938077723788363512153353087472986967431712276915405710304659182574908847659626803784776746200395900352545514698410513989290982845213298341939178117728040923659379011156991601005781762294672681381879410987836524570108837917397061024533637894857016959772279031722381556133656695225591859302528490266652717254527114831126785653051853059678469000454209602269987233516281551514737765546056435641855956416681642180566445355480962855427418568150469050069582117708232029245479544256241448065118227269825900812178718557831706809453547090970942813401582613785275122902412470367544971173495088340843137232767874844710524798483725804522527881270956790956692939067449475430118308313519219613342599337336484950835858816490880946442114888298461421735615958046830721862255924459896741667314436862105718011797858213986974894784059442179499381469334255403852192824988502966211149222589962384206762550736242860935456834711046863058767217103283401874598009066867872565177289117695889120899476346438653068945650286090471397427395314364814564345879077518990861560180581716302326842867315369905952997261942933159490837502714356599618358018694216859023986880412538081381898421197887411061132942987386699458079833110209247707092554249267508060987812776695748955228307360857564345028149011633135328107827023315835494085423990625588355395004245573869994588994758731257860409720109863781638061655928338529147042569680410083421318632329993064840052329150826695463625672658808815333684957693165881633897301116175039760294378514106278287647374108816366484211269996717249734315587757489658128138857424993549833644643861357084069644808477537406710028937037194672527888551325748082793032568115627917826573934257360278626070960624603907995983536390036410137239870826676773816907204875587932957868712891908826205503595037395283606162695459160660289096568426085719861818006274040128365998129270423576612197574500583220866335075809251010150956061797631248839025155798678893825497697266966734659094576482843502487076793548175037609598725605335492646460693954797946144605879789495168017949866053395667312202726811303390097741353926568336154280892068892011368200914221279690094703640786430693896762232269346156417180277234077747626509566618177880700974806534695311000005581866885210880617869792315058555487312494303791255433608326334155663601717777425912175296696423636860988393694793382346044861291246672866318741065846403432394725874297958936809455177205931149536818168037167990580560703353779299263654157383998512794940228657954954905254649484445658026055871417228421138788430514266313715295458364999901525149093949534105153602137918199509814749416091312853080415375155897119358293969046068100411808311615841600645738223995797985202096828474735830386100699876400882628160047568995326577232570144081809939608620701499179944921713551197486757191544235876396370522719002379630915839515906321742086303613908470262904051266776194720749960096016728313258343424739177136401881883224930315666971217143302386800302939406299903099310782522166343004542318690020813028885114632389950085517200493543839824782663351896549928121567919512706215944752762030624302816845263197749010193886541041876732576381001877637485738068221698422423421312469977151741067095702060327994893632810890013468802753411981566935213485274654999095640334395343993376519885473971523583264555481620054043145813131097883874915546701196246673604063176399104213475755002946679743693939085418501451450797243057509483987088220696481135665020484973073336700688952830690186035942289085309870627904937294399208192281685116490592572248239583238011111755961768327982799570534165633836903969120512613110623214647543428178352781491741444330996853717004059415097806469715872216207492835032292126964105519282609334740840852695075456065938629286322080244213259474690027158505129677751730403301831362845639212945988039190594869876144360146685667571075290491504961530105657068710583454951037663912352740461398493633343918494396802664339713968838325756273818236050434971482472909966731427312377403266610814696657956517291691791929797494923966669867880191149832470338325478000991567920076346865679774044545055987076725513026077435747374992761744757630343193286942909199132127424370566904849011711465846611585421032789130691323287299378473222404115203641591523376589622960853775362884789365535843338111769160304742794904180070247581113221816402994525982958827416336936250910125736628187491012209112103106593865322386823112001511573881488035018028327488182914716626690677762230538153868201776265919143608034418589613250117036857614306341181993778690079035748034683398912567236438091498992586714656206470245590674870277539968830041504866397296185754515286022823272149067721185781088821840683360682837635593805564049779551259235950938623423265830582520944809416856670899072887378612933697364357510410522895755438185790473563765927686802244050800197561422473786905837710914393773880565415280795756738867977787334097510551127553547940414325102052294306531580189049827814248872018616513176372708229571443014539376707739895079333213039962841619963035497528459757728299002535750904050604506690970845308412780623413765650184692304053644521494048065963184012716823072233642612830882537551806136772590129718742788276814967822799228140659101496813003787506639669267917923451928905138064588871029797386943418629413016334576908288710323677442471358097699386050206801048206496301144882412043278225209889899080503497689657364742062691905201841092946188192079394277790988964157330796471367501557156455415525603972578862037865037411874081777877104233138766375271665554691933953189029224324259951508742985480947965726724776780696089684534674700579361591463756723725145101939122722598907825454344638876183802071871625425344499848393878655861525830108336729214583911117028167146731289656742013020863454685831452350675163095086798762679793265728077964098735097537368684474324452735958310950596348453285431299935577129865454796662956299127142386841975385204816907608608834479652614365410759377428549815750034749279548564339099794286348576840669165228629285860449217837038236021645191600759555169178667812052658655486397684825840329228547780164521817360475338030722777404966647672252562695215690521653452463312776336967475728466204159409994432015958763241233573245161145662562528887806582264999549259378745868488588008873532708058084469824588490067674382640210010499930163973757946930797128085690412175837155320317675248006656539000585690620640110533409785190291805000501171603687492111057020999228589341778293519438011502354906243932545033713334511671717016401105005057146490969411785308310778892443966172116411960426783404026272883691721271061750079392519098380758783342824959169119806257596108595426423412291647931994059902062503512429948222195048653072716450237985889453406223483010933649073790649192379226302075754573125891920862147506896089087593993555632666417049935761011710157209373950773680073278136529901934115477848797730459139381012613626716594533935724743464500857246849632649826320531533381768260748441687937346279489662833804561689753120161243072184122772332810989224057008426393313548987460903772583102219416100468925046321399943026767753628898576343725010866947132594891229511624884098452593499676047679018660807486221917505527806687892780824403074164025596632481434106444631304770250279554341720930214554243445829254127038510055092541860511408925740028121137372725021748075793081938221060496589992073444095767303855581935000522656748634031395356272190841985451390212594785295555755263266096581325918462169076980159968240222513652148093151066999457797783486497092342764754308552840302217395505302926102248270335947023292401939204514857370354567558648074527668975663841508863635789534818842483042255179034196867867537619903717092875366688206992789708915677068797968223860670670948658797583222590400092848774972120695544889201086726094231764999640141504352270233466401250859365619673988740780030099538489896231855115505051486811847343683023095280781827564633524602867242561342147690318718790658740109640362098784659127858472346979263366727858156418163533720620587355641961038114265393512646768608233023432840090780233441149144841719131745185290277230419758466605341562481736540543011495632056628438194674245487588549418918025773037298068677789248819548936430008177964073952496692117298968876800181591549878175765692240249180200064044743480204905968903697220126069199083073836460684736331974239354921829429475657381830758194470137727255012735183902245024498074040775787030186739323255058985990837212853411127192258664195375183566554024658274708131470991706555400776634370044835930647987348146489444018132333963853737223900414332561127310242847622341367639816945197982440333800464715309223910727426623403855347386166397201521909704462194694835942946751645994113651795651345559485712243214163164419479874501608576626332914553076241674920318277193458436115669613370062841062985814302024494208107226317051595381371711637941422326228267470992382032156041633348265449962293789170496151917605301359575397050583223582389227191266291141430679436941752522963758373797893463311803518492916295603895884934593573182342180306824684267101836318165860066279297695428306988969555996866307482326864757297564338827411224527231532569563087499737689199428777673755722960910318122101511091901249906432567518591645607748824740518130816838539149622110633820324570174467498812270104415106960612519078067964053773976870956265855452301288044349102134831274698921353434765054073987175861160636138935515826085791367642147348549214022825780855967793759894864056752754702371726594108026584936643729748695645771914756167043225279934917434324693866258192482098743404728639131011120754908507151181611467966855030906636606556305792653807834029358306415530122186255706099186944258301223577964175274703569402018156816726965164001757808551584635371437453537468088671223665597577949906710248151754115730784857542576428976830967205592740388761793477282185917945344957690471664663265378236998232464616902305453653724678358705359967807370179496751146259544386037520685555403215565521379260819209665325156175773245826723657234018647122581181473984942627879197206535654790838319193461437525254287005427562977398882110311926758817117864217935883737078385957767993333734246691371345508883294208476796720943476956564002146574612661063412799091266461121692446476695745630862776845558275709339419596467462206955867111029732051368759288075561163445938869907671720010703118176784745259271358526599997019611726799793812639336447627571804554682048402574976990960300106683996235021750264360757471684802176017016833541120048103901699850374180699261447723892377428797062223888269810182629248090369241195547628552492186614701906447849276567990411742149074823585035043227899682944639060864779452237918727120811869298866487687420033939566640619740727398799004087081841422181718797316796310735080958700980601470205073019267612406108646490175535628608066537850085246618137021321709782251033637358534888188594751127725993910579074654224395027719353489558179297423396009704840210197062375777030405797952183162791871532042263915502652174378207466804710152697084478823639757222842994243136446822640722672992779972187268131156151461613905925518366172417936665678954763434639137474343134229400717110931797232319585896882239027745227342124463337429544494209105713745517238036774931205510557626518142901664068148399259312531787823288342965107770210151462480700438342432600430709048075011025393730054676342242930918983064975006452638361857624619254630212523878399302260683685152587965934932559682859500316703998753986506359480596703724758470829382080192603220719750595658533841493822911690639525201126667584594797126268804549391158324594374470915423706440339392908228519514646583539507789827218007492178903247524436303270290890973609971461170045399215288316808330598832188991685819256357620045900872719777413173971343846584612909542989033925169104701750368958414984069170400058308340989189866299057730661765171445878355423161615572184544810910550936422378731029885699653357361840003523309238519299373508723136710995142245940318407378605290524137922585488090938129730003893791786574494999171978943317198661088390281190518391699358933491692215314980633680800447173412486724810908047459428246879661489243851023015292481052306045549494744761688318512958473299772240404947778784979567595053495807645060550821854707708418928361879445258805873130500400704441404905188860001770180623358100844441677569693472516527709580688550851366538889771827266512035582594320130793047533176146823038932588874451518656965096067212418377634947629651188340232512350818265910721276327815774841474189678818507013048135742567442975239878646920418918257673027078077928717867566457737956647862131604830797090098300249024749237159051100772133909656207432851100470198964962956568828310031311652686807781061577066479895969054882863118732145285404501084523778091130389717868194834088855879173505619956432707048477001035773046691495454451000250863009255023837011857152362858624466814631521605400136943442619645663821075605254954120019664900367431127753751645816981336526950688124710700228172553858868297845706454260088067589435388892623623925697122951548262163577936885257307150826542231789356420617538855587100455251000122721685983800131027806095997542917752102874772076304536133882303910921720922733950702464797183699254033629959324055483098167678318999649572416497988037138284864646257704878323769528331413591282001289797473018066896195565227196224724228567338606953258629907565028534332089823936671553106364530083359746814137644473798352110186960224614128193661617413522070177204625980068923244488838165870736707891668669840524952630055305769293723573939592570031985061721188558710931614716137810387906921520103193914003127485189576867240911242447380979754536128988896549692216686273182083740755825580600959876191349654428193897255727106191434668666853791775196327191274550010612943513115859776589574272092165445143011657501347465784339948095920793652842241229380677705033005714194215779868561345149321384199900786350056390840119019567660350213198147512242923625986381254443576406138897417271612394528171237658556826441194954980433207837239874781149799055160499371510842190521208214639969216827675180632533468876932607619581653419339960352277961053731264687753992288217629329678520132892008837583711591169841598314665079361070705096702137045081263040310193339714248314027090449043312335222567065607841755733502490551693535074177515931168065609732880486697550533859276098169103149288946038096584620521694284423889818827070638540967209163730167489085625678242630223591121380147480650887472920344967524812066330550130537627750207042037672341976209762006001682189521963920761414172597920674918175024954321423985616583043992803182177667748453957584053549846650514293693108486860635264648342192785705417413282447994570066799346766096209635311988720007676310222929850663584021364654408013531402613590804533968119585559219761333399425333007824253023614070234572319573023082589901817889282860351440413893908675449179513988950609494899177880153359284835983788013476341801370361532739670411899438611288742851957010539158692208662153186137749444740687237060630964857112570894299150923163601436231056806808492209931805641196763149047009178450039605612518204405857276479484833304548469338763941015754640757910529696895294451561383190641503994576495355468827823255141297385983458971980742753078585813935316305916156226323020360701562599429606600053881568562639628046535751601354046359886653186254777654180187503102657318029748148117130910499737056410605310186812974275385784067438395719151347179664510631773831108240963862462446236219824299269499436845475253808228564872796879764240762038354366610763138761891137130109722889787103123271652875963946182020058963620709025296341919691397552628490543957068745043186357940574584982711849814811660508532159003986586907732598644569489712153086080272983329798166118975494916703702455418171358776583446226546179207352752622561613409813100324423416286402204491254571322794346875098652034270463124630237098601832034660614210719328670059100590090097299841472988752628260599894685991421162348285999061541962928008255222352269849785254783724173674924227342594434345465401382301783809864302707267692317666752045451788903763799862765604124863034448560322094753325755851309894278523747391147763668348838156662669913592800370564441732243747233657579519941246804208823633988933581134629202218707974950566470564281039721671432670546417937792959834323173074109265822349270934577420719125521366978049702705858339031784319155148192538482371821655198531566494219670398092188881378253705693634234732249393060190721065732466117998690847849517355078579609067688740683257087519649186976708613392527023517023924998755487837174373695840918860761560848592475217661222154660606623165958048016593277933531290878687898785288818619670840686044033668004359139791082518897271908657984591385049110373566998173220071099406380888429609161357218351028066048809965778894517059857906469767757988569093329943141746771151094047975143469490720889267753192159255518066254240317736759752026545790459299845262575761791122072254821098307984348763429357522806111951242815742074032612254194714064944515632197916739092296556203238149335907420034072345694690840478568083969873309961258969654920245100010660365473343334220978962738018177706585718685468336549081749157261267392280245865153639004928100235457192703979987120928727541170850095827478280560578616788604138831655902302026239112429630815054352446255118264030313329806252116921156746418116833894699662513100145511658490235851556839814917848073115783870390728983447030054713458791271451200641658219727669424966569761691538052914648143061643009560625875040156535896713838223536815893524672057873401065227465724073039871927180642170825088654662344398120601008938689832641961093641598133986297552457612675650987349581288213872500173451828229428647670111217612265620807713863721918415254080720200764528806851345598326835340016288909774677813371814816333372338494954905723150235318845441594907121436366322942945571953198626100516949855082168349529614048543249546056824273644581211676816917923331329032709419327612382163942319170513514487116908179561762496597742041942301079375565523027816097779338499357446308696402840970471427882444439523696786714475719179544678533798300968212799058860295063714448912575546617435166745363843168139162228600395930337348012240760729058205028266251891501610171746780244442967227937710487634573199339919427913387181239636302961634480358238376627865200001168976896652394668329942127327910985117107090920694823485455360341002914821087399679710706454999851713431206279535028775369014009147023882478102370644497283098918207355411938655224493845649982677360216266196191808380901771303435096620714974175822046892013969086395575273434667800768849949601675031293123462564416698478825313523156165900978666516562164667889780873769071602415866140262198326625167180544970905411836703061924794190876275836233256941945360731987099267902966288088471623706515686090580767805114017525627884106438703401600221006980801388609312270019526743760775004235702667545666335894191282012442269078424226867532923817995024084074719406052954751095423917368660890025317646533154716363973790071457312484917955531766627921966573797811079906225576752835403248409571685322104836628024021772409255179021587738795301270102123913667846595060925847594021235935169884868763097734291368475182494055049571345087351866825832845125087964743580645239467307790730491191337921788431462438912465034385005655767600710331977463883592301476506284847083318406406822674002615733505378224000983894009327032825001712744441109938335106533062399426526430049553265511008847699447154039037932410895219797137070722628784912617190596034893633134743401152135633866597392990597098644301086739925589971134620657830998748242046722877481471524861400326771857832057554611188867014206975174494787003081634665944772450616029399600601596063887939021580573049351537538823279905706758805378660446668489938747460931990769696253416236262678984632260371307813676553093022594113937679833118400166309846222220980876164903599306489984437912136670893679582846768106365513531282319324936549875225122486564461621692170385219586851586650304237766378703635837863010451128782076376045161250120545693538571018064422849499166805749892104433436305764120815619284630970822143047617931755668788323653255341219811002147177610823607181598002151191101446245755422578284027685622733541661095265190474599955772462748626914441059702685865880702413808451528559006067587443010096741551303081602961466488042763171573863893431399289254989497960930711909077666886484412793707722639573296383318775358756298663365605375374459385512881142813892507266062713047623263415146445934402309069496380591936584474910538357003587422473904584620275935630134424531323997327064536375177649819851497688799983517091920031839526359180848450724017120230100636633396481123107704536629945646264445564741304888818663118196604291822160649740900823421201685604856338385092161214407414155076683433395781208495830308875745251731399197113576431851023433957999778346778794067642918697951139843074173120793404638795016997758859139603854505497926962085676995029578125341466622199765387217086946522613803967531262783282015006347292572073636603319859490328894649945077452125125600183120937468840824406647124117173248846659247407378304727370224397482036417923624669823741757978925417558571379335448941723618958112639865478917670673610272615874723897453545752101550989283284498762614721473514275681130260157156946890795153435205579082291545084759219827196148460186777120617367296060521686826206477708447857954311376441145227268164617298436687704488479162663852366041375674281061161961071370190398062508111009244360332308631497062571974262712580789940734643825346612127594742095322656102154294022705830479638895769743546965234769761619028212551327309259661509947169706982396018068976319073356881252003745003626471172422009440584222179609066073727008182078726991144845379621503717328932264950566120679325208915176348616260696603552310152308707138607161562435340640400773407849621374787988025895805588237523441265892631654144899681057158469860981471839123280591770339018245898853579455728808981709029336128643983493794132071105293284695134068546958376729232961493367496556382418601946982357908809471473033492363478053848434254619994881678885831696365384754820933375759538786766041890192288812614766432908224533490733516800538025078912227297180452635074033048458042956088236879137054389312960907065775845372880741030799231989778516511125629840602091035211398738727519428477049457510940216351068114111215989732698710139632381113071855222801489494181905027311207319112636643701400675797032050081747811102603677480726939647350246804710156431551065392939560999494610544673504853162263426450580821111792222226554494138540574994916458329473361628737414142767108454329781113836072208698397186331100563460033078289083065457019889917319539806249770317030161826411092792267119909230166538020225922032397807592412764336593850515259895529499108131017009787807280701752488063226922006917474579823528410873400904219350762883723627550854715892736338795916307840454266034169053399523128796416456198396680526835535571264226671078460932566761307095487097460130537137112195473258800883251080798507812956826864635378463016272608149561626261969147967094255839711927450474771244925656101282241981483155108660184106998744182415437751949869492777695035160744748151758915693247488939135146899092602989542703520513575579873695995762550648568822413292571419491412462130425384524525887352555684049572628503385924939335678501303846783771117006779310648855965744445822775717196483755792768086934550662829706666067359796141975762390149582961122827101720497056787663006621956115678535184457769807240736617891345241724633464880924809720270751583877566671067210899889766503224009229117482720628335719244437499890819676186024970626671912268839832722771520722257851339460823545443854398538774995586874569049167722753045918547960538178831114224780215628947655142160005355618430605396226985301022351984387639898940433838064539865772469811104450044790758520894646560402950009084890921829426888798729015584349588202624664564910445883253951545519083283965832946647227709697659951192603880221974597175152152295527677189673889875224799871860720781006412866461436059113938636874089243950124747948504193105523703165676154243692994132179535854915211968657852071899562007358223668957107305805289045680233805926001152443394140405976429352770309765744048225386554125863981110895079003458340459525699563325262497167389596893929884670177343382741842085222360109335976079550246895049828793494464814973374102864249526357052936483439519527291243798154371759116024700201527015378279255353121728564798452045233883830325646564717240569611510190791259610606183412081596495145010829963521324257074614937349619047538744110812523063452445442968501375033967879117475059699930417351660718585000301835085008923345580258963569092691682748125346949231069854319647043280487249403748071136724690239893244808138305723672765677704072775532905118129714169409834724152325034317322273184490783623626439868906686643021475809989684344834060004775693237872940952674770114197591831194107495579927326901605462131653435383208165643147276909887242167330317874630739056407084586144950938359949062603725586136488598221122952736075352284607275812877502128546576296202094391901556887926711185737556161067730445271481947721526693046977863401863200559115441624950148103082634991474176984605671680764253062239111642678267315299704234621344667783721688288393096783900730296940378929240931534409508718777880209828768333608403721987797337456456435430787573637951227986275787857221598730814126103150946973129372315602189602393264755074451108871616838251175181822548294305194765277337220313727393657792325941164547662913823543203640705882688840334342679518999117522364061717429063941077430996856413510971942145107969123158953469513183595560202257582713471477872784162779718660495195705920731913013533991230643482092381337480519702009645464630404055970332096026853370063438736359589761657485632649161656979420860896663191854651426510818523528273504684112199305257980334461008746601546443048082242552932779385757498869648209206172367904575924859243889929489505622761124363261714280600485632471214699913646589225850795303505498494603486799209440858422248946947091573573357411950496549684170928300982340521245103058918855194305352541016476941029647666563024471882392169511197408732254250951088850424594385385745569846232314180063736076926332403796125620684632887255605654758735073208058712891607316728870635681110164313667498938074516863126643092318299480584377109305386950508483134660826309563272423653464312903719734439390119315265188874864197790832418764229058486729699543194894037975071205482601494518331182966557794954360924263784440953850797951264119265778973715345612872255590106579797550730930813902192562226372536050207411979593437604926302215015146855117463300000168858655216760281405835772140497810201137293038148483796813739623038466040128157271687077129507711438306603631785078417710533686183085388928584918741222987217919653286679288318214105103100312684192393956005799330828952150867270251436205015948111285345132091582663748426647133609470154985779601878812968025849055326780104604870313367126779505135666912528128468251010791885942799786993133090407339502907029555482479659089066940982859216608357094205955514281619858766489334859703372808062096205100697427635939431606401933551230569649100622142414592652624249827272875586353255522911176594435141813878794858182374516422940222577168488600946978501270560249801631071557668673491037742805973280942947638031681919803574056837354627311956770446342081013072160794379575465027789630748469931859747630428765399136316059807935308381855803093496641308616843653404849169417415671360664215062484702696984115173466641324442832350935123932014263158427410541138742013580740396441379663455015582137806722131414800785741490573808773805906889033304061578210830786100379805306266781818714396802060121932741469206913982323840740389449743451005691801201722383093340527837771639287313956798247237387921611970074719534353441104848675050532105893990323491717860699132302567315455426996864258609045027694533804860081208044155186901874613004254360454100590838328093843158283773454596400318036266886086570076923249061296988530387676968862624292680412503675368300866629607368440933952509082184979166197739603813906541356923447839412106905689191066816725576550700649876521460634559346681514714491593756926507155752030886348361731643734996781645524396089668993305761706031779730144143186835386695573136704370364156044093838355798867680415292924426839838231045418911313594917622534342372194940256610057288138088157688226246501729819853530459754641512606562293786926769989596419911447914643123840412080100769967518900737023221071502622973542849344056978411055118584362691150094585633569602455645798776177861923556535518927544658903944089180605338729567733743851337612292436553041233108381123552546452083443394313201185854568523094134046525482133313333325888385140439170087572000706349608485525756190634569007363053937809461687309169539098865921415612528092738959072718776272467921287591763329129611551278722266263501206268664965407446758806445406655550754306261312526688843659823304715948752478015654755810812710731747121452107920172191630849030904485092565722222553437264239469141017278742889497345478904546990676622286350688128078016737163706839090076603507204633922905759190972319305793917388187947365452094937719368799583363726538137694029607575318928168434728456010498088888479744341411883184768497671716769148549361140364254268911407202068540729411259141218443192855101303918892025634724118794873456179889508137658102228810446981490174850438645874048053904630632844185213106318163175031709907745374569725980379804406494606744332050918194503437946311774482139003146274309739324052837307488746231894572380080748143787647928909334789108833345073231904992299253845626989397649703892254447143010061208360093317800962832454833784475844938112577604941518984894397261552216770733783557806460411838074415569450063499629360166494048836434079106611594883105991760127885856410552515818132313752809092337790162555815076637554939981579060880133970921628138213335011034144350908819150460581153375471002831331647475626369157765401427422409951772779188483608423652546128373917022302312836751687191127118113026415960562754781900609631473356925381561517614413233618002794673528301873554529258158765732064211050620417876406263317322585399342424558947918012513915700831036219724073789120307358359844706525838452564588663888323389316520840364584163711388012440103762213668525264552706525507009396222937335107000483652089874536572155392240391788472134179208001084193143008917561756171967942609477491823040768077319532310091430387662972259810652107808017266791133755148502662792573501175184536112853907092287039060173075682903701822389452378339515539950186142182932899653912750777720150997942748229405870753008122186585031574228847685875064588903874670144633725109613298446880182304155124931392686552206581877662740949031740695739023282144998273923174297323956617195898587165018227233708419949970903092972929875117737203007527090142998679141689564406203957828843443941739098232799274312108054420189870802164673967090383338431107888623353563861566132403907601336178652416611181739274681186031109024743855319207203830267549830148705504344322608602815515097216467365195845007644310818785929168832471045740016818948619789301201007147520625164806764560073054770667872132995294665748569094392543660313231695342884658793410041292637709710914589322144005413466731440208909421599447172462105112116964895388425268389301540710689088158672152630189704351134704352224943181274229094368148913060287844030834731869638590919750813940850282337775090050614190026030913444713440946269666195355682146590143228399792363796792317548937180693135327661858194896001174805646029067838613289083196839555226178554674385822459560614642453080373974822903857867974758287934594327382602160390219964385795546267216359139468461101330253581317031707898689544817815931376987338859067901068082120629001377969060149092684175000857771786960029328003973414509653145982504167750359107145049739989980159736141039568064113023608969989926221864487932504574110620035096778036798688540593046966032768434967132612704978114753413215951080732707680990254613308994848066313730601258832963960109653075683351123047979235122906722490279525885995800955619354521154268485240620784713844320413739454869735203451519268984955909279350118432801383614119146127451216487978295817577105600817852948911290890343132193043308846326688024151119090242171925905273386481640572314256384624127883669469435920710276302596802468128274929891138005100062404257753865584002155401253004092374778186175395869583572485585654212279197342515185017042469334184704207677040871231741522352549923954818203222868358919262542154527238514291352984507452186136450696842394129365697359504333800845556461336621709936844644129605363837875753087551369461069097416060200950144833563237491873005100689073145077158263109498577069700887261930481948162522445476351067851719120098920985200359666944878519847896230156982448957309720630169258236970539458948877753366470827977752472846298809055150078443566239429048650471749445775680661595587510376824242449218893648018381484204943579762874734313964539451515352874811435782719969690986189621073629934357489406558102570170198729524529601729578894529575603689816183928278194184783744718779104230339555496855078530700356900649777359357446445869771407471349428517903991090650852056963705191339270161370384088475676247361328783032957430708738691423165774321009858807396767538203975437366799761213625559065955597784807251920200467557866566340978241252251927213916093443476645332057417747212646152234900706517368679785490865992338486168193068379745734419911157334161071398902685563076827264755811927105368029002476929122158502956198449082579345419398701153098338855382152306244640376396646257022953210516836776710848198127013714529942843479451391352772098787233486750339909721552506242252669330805833270687604094097955692239515727177224453375276762652855559692282552044708788071873150438217007836950750060122234895275291153054730599166014759230145409141220660019258421700736249849368702464939072814143372787683481838832692146966412724664838294888433668982937733843435777253358096091571107807301746512051020727053363545666068686519507988581033371299679072994378618927714762429907723215933045680120056112848558770281233418462731072113594863793224857268994774851666275204059872274790518307008283719370498657725888928298763016877708509502500741449749169275322906568225040637078592267786091057499339670558427759631769240835375529215130141478631003584321474384978486546439528171157180894591114631373728959774681923810948586911096303402027320015959972241135687785933004776276572352943711683546740995273110188137328311970958411401773796695169075983381543009404123161561625169082709738324649431226542095038526827904616234161058538066333303873597103212229498396573495920595078523556922655505139669985916726220011523331368895371533068056721650765968343768658720486255429107475679406644813430301956451696530000774393072964794254983634658268627131413625132139619454562907308272152047147126395083907465503322544937090050327819922903118863525042161840625348176348151857318766285254459890566954108142511518537804479180607284586090864429574485306190427236829112057288145915118578708321284203290483112018558226116281793118188498711011264780562383081014236099300152867676140674889231239626159612103796552558509549264461175344825735584028007914723529604727981257620190500825742453992851388589188507905912656298325791923818923525508499226159558205227062834429607744142410344003156587776353893527491139969607235122196712665924613089027596839916670422311145329324737410989053608102419501689623748847857339416956046256907734732095848374229454501867452980283911649263663733563805897135146106135876399057820060690448560074368484484120826333399343916641077791229594783717597287240030068482910858875086881205966369456697846035973603521287784391109853208068358576909931921471326563588994053020568448712267843842050171158735520059489735332527102101456470248416013429150796670080360121827675857493055640804681405312148060238121847811033952566963590388942737056117275575991186331267437866583140068945802646652386664775141244474837788573310070903533139179995842560996738092301496770702666798221333324495819369645723248427510023630597409183916819383005965607148380837553823420488181064672780125901844651057876542130840635669080969023438432454031935095810400936411725091120797236645904781376143963706391480161319994128820288404645638279731553894233284029945211660325960099708650289391229008827041047689704784340001110535166300031339455977678197668859930661788861881196874652500171831220079491251281483857565237578866462442484098061651194519307687265281226243554687451451261800058331164026590478847625666539162334563048937887351462818775236770105819280142832995867395521104707013154660160254124319829798840980519226564004068534200593064115551622752453687699182156203695102813265514493801129333089220449383490025355513288469182105751162028007503890695205603016068174523331603616768248685981402445093008537907627377467088955695250830358844241319975217916696584674086226592068927015173585237967845935963728376233101032368575995279407754557123151917602313030503801568356324733764750467438835549796997130237656931201960918088596442004938422788819146001006045696048808832153866968646910782658853174122116778298137469065149228607116245990257634132072338156606469020826016939284987105624172509381064067957081354940757283191641810591331277671673149435910504895785333294106298579731751804556832825982101754427135059570763141794740476451817325783141292426278202350042805337726150844001377570437189717729301498736893834718374982672056165626008557448446486722942586292971632954512571069338389284727649796874323050770915566081713908267878701137588908637395113926437209296168199641584735049462934861211968791299598583226196300213923969068089365369259899890207539999393026971808223292088540604480906527337886432132558809272863561048304221076627341209199111034650073209524560232558806798908480163257649346901933263696432223378553510301804746419107121728969335038808093251671099144108296734325637489753275878180586592848388494133720321589970158301898277931224858945981411084159909131239174854739867412956434183957420290975565907444105480139959470373078296776499117250459661661821085885266969808947146941721457234129227895719449376495603358908499073397081800110907716194203840995801949851661137356139015713847992162570604709153626018174942042245228530590431321843910787630079098024131022263353731023819983032763788162756877910334174601482528535777755896741352710285106720676542186176731159393699894843586634462014779609623051275068359974563239054532379709493803759114614301028768931306244331978264167349800913383957040343709419553561344161862012300728149393933092606101785649107870574233897008975050382224311069036640247215237185615692541933872446711457556062864492564606148413286944722836954580324389895820294607382930573151602279447868322523039195661880604824303351172624935257970929410755925043765104516500529460096662250003476966035627579729650316526318849042186483852390401462663641894632238655571506883240077502352057268921368398349176818939929090910575393917688904997430235977368802408504984977986558622246424228746508511974523609135250373979839530369280033072399819926728381375697209356262403399264193347810265081745459011573875621309705649303553240898363408055972446824331446918164190690236118851350199516902513371339039599158804963657985605087152982312698382836415308591824242719221019076993392252692423761677268776369613157855461749158947852199765751927041030372475304475873951379885088629007793645433651603536686976519968214564715422356566758525848663057314215944388246405259682944796834257523593325509289625567381081927285375131805681555233930838876672177658472164171143680474576325681406668398168357435802437111576195498662383529968834322227551406871525025920462086784431861780005589590526578332274634774543710939262808171307747658362778868987182910824928817522052814159636485957676622844214038610946070498955913651608480969500061285970464632662463077002656237076162561667996439948389851132118906558979146967478289936906176821884974298076075034985386154488963065681987689265126703221195170459272198644433676159811839880608298373234752474487051297649966550216731861196543033556424874095106198227959978415907783186905351538677364910046196770915979543955128407508903059980274011158707453175152316636601227735008904588295056944900297837391744802944189826056872026229634976577692306852004154419211944162997758946417601051249309259524869906141873540788594386369326848812477461054713515183610269192241670110615866239958122332943955514814460034229262003774296872563551909466791747448329811724456694515588850743002484948167954169640798048687957879689121410821915888254012395187018844589074287402914478543674670981339047630040870014325436065637991923626228372425048521276632168425760303844328095646999085921757899250261169348357564586751821586631920852449473313244771439848882571148531055759427763867249061233647537733728952382687793828271448937626636331897995304080937625763567376213796169217606490702827384194038915271410896724620059236759387016842213117384696629419618114167478003216052065369792039285487829705778335742105031772507011959877589341824458587436244826138887227403179729263950030386192126916944586611739347726406651969633169660031853363789357110709456924039416343909046850746993468449819956767024953343020444165435233951139823390718459290061935262577142801304384738482619530105218559973532340205631669225736242023814185703862285158334350227806050769709797426927111612014047555324640058974879608790032240808007417838508158577183264179666389585064134143049529285676653321492077783432987536693582418034376417483486631677334354213770900548875974453019897901004990013134325893022945060354339861116660707839225522122815620810744245352982594859972586813173776986740373883823930815866811522820252440357538220458414110069873463089447955557733902285024840848492019665915139921921532551972543005942744761565098956337491215055207009721301394905859147859426094861501341361240382594929682027164798421683770633903283867324407818579792332373616975229148984767939722637359396882227372759083927054657247259580170170229173179611894707444911457389549643730924246737490793109708956084557624922027824060446837718073672823312224948203535642047138932828582648096044840053330728728112512777135766192811644098599855375408778634931727986437664076971551756986770680741103702284872388087719725275721949900892690724870368528728982212922403133231275406758609423038713815776764383770094663526665913546881226932010888743645698531135049128305800608590668011909991177068768968800676938758187438859347633755945025235438090951838822691193511707024991557910490430781591867499898050311569667646336397910450850546378045568430775984249764147532007137638774472508834918686057169308179528330312615275492641736294274883964648055185540763457442575592772521759625501254764641340176034273178292536732786156090500232763844452102434598558119199033655519381692878245065234676604737827748788828312369816919522994549857734247304076398353484236434134272029878665785465627041203333436385047431006847790718547638373972332515216529187926833332447672483541408933680195217003672739278745020316197690380430064959425810529037006561687902346624299495253729468575678267328410842583426082634665930876914346823310040571874274123370616490358656616837085011789021411861870621985540965084880502757595365395565629277571810737783926893823891993586306433078426794786969805007844524548881866081956060296539358062371938868064689357454454633026842664397020032693222230490398914359848422608128758882825701788032863787943012187705086213116790824104692044047311062636454912976283771401993545351848951654722863342222710414713266598281734418934261396436815327457206261927636916793733678343151859267180933375082258606255981940950359953268989961721223371859909026682994503605720732477026579417528010295625809628569900996987905970718959106007695008011368659425829164522812229941962010528931358851211090297750711099864755339776585677700794967649168207391004380154294894017856248928057481802322535884382975132262331032261586147548771304947027809715786215200015018193341002598716314126769907733222875556687521428904863644026692695650165970520195936804341958590661523852806399982869557621729381970601718396952061672279241728129418940451451986465813146809079296207221974825503385435975785996212059258288392952079696796177305431310368058087009942537270675889823123427479264315110084442606805718381272397624589379132784422699004184815256995517349919739394861308595893004394624277657738969424293135385227555105249113280018476874067503164733695779266351814444412604595519010499031382276747582223907804246111982242274144967634621337756625234933885207363268628318490239516129791307042382856415962476735458859050991967505207187488945192992363200813985349071063853452355695137600356937607176367991174846746777989452667269592738128614938738254785858143127883728581664306455091696071404123995370753354902219127518263241754859851495753949317552021624082818725391748053936985736051814921853529073083056678097321915871449815486400087705147832939328868007637495461530934182295044434616632046417764029909508694124846743163353055013026513778102338054105090758470590266141918169763403934772627524757924366070823339980503702978379279831929870979602999807806791784382246082218792345766946039939006654292825040968328984302793006555830739431036297726326980483241474128751917339343410955631293325820355292301363503639470379377578590723765906431110181691922675362441295364405421569190611016769682892158477328282990568303590484196703500243145902028497877082543455139900029191335131453313421078986147844095209771062585280818087246097237104495449618645045299565202858793837210949286175681159820234584884963435747580212339126727085986598866891752964046319171039012521599948794961925360392057402295669365928218395411013489272507654854774367006494992944402040574240984740439647958966855151527234492692246291991183120449646404458655067602949831002682198174709469138637600390403901807273334917022254445250120699883437269830418366102016704544273080807434641460883569356422533541720883441665229308213495008111827770404376025784395906541531885018424544549993070296908628096570764997736268407626499810009254462866665487452489409129493868556252801796122626880988279591440802529499223822146081993617839479751844631020458650087967158002345222414779658574074221519419335170805619437966521185332630455635638828891555273331402418636306063867779722733987888853516919049693911720612169932435897263965685749146728705093724238606604179532478544258454545308169960222963790123265433397838152968010031443510576770597159710885104972849186149761607249854972296747956935268040073182043157715238114587948008394951906897461065615852510372689301856045052951607575747539863228210405052261380101983554282793175445330399145207588607206816046790653501758125368114266501737325876373642297757858486969526022172340793851402429597423365906038085207313723590616928091552773868845748643157900630976447092029462115930398304434445355044330751982322461717996471881711874283839347221216120462416824807544651670341772414835030358066895279040546087041680678182179192985789039739464119229235697313903570656295287048939697522832519319185388380101813439769210851749238498994721465124818706777924884224447988943187004321367092080592941788220357865368412249829784197764700704292980851002001516106414419631417193283753434143373120146385183409901151429857711024174659774650261962040740116121777957507593055342884212695607988984574752135099797268750882896730360934056445046629520642394939253870513970364204811519302684980543455941758261785873586864049720600535323640032271070445212941406800095352622339551685051410494006199209765876019966863236686276779361062184695638021042192809827838458110433098378448835171282437151614725818227286974651933755274183357121149545609710331725334702085822375998180312173190944628108220890233177496078113799690635228675195678447210982228758359163285483127771322150223959976544731933471558320893527354393859887027432126126427448755563577874744534347243456300809350782550458056670917872197367196939635517634235329458871374922721624337904722049562940224158968788224988677936242992569539000795367031420646958241384422403248014956532841622406129301212040464463166760679076596319655652488127401230731696897578886240481220648728867924045326883758751005093915616192207811883687685514402669546633786485192736721548949779331826626843017483186629682682769943353572897231240121935222623376176503947695214706839182426544160140056239869702238705527267887054840200543979261429935813126341083352521543697269226338647181660989259443860073296904091704688403541660325562338966920979889681374444658366670324630850140013593515461718918617263850768377891662554931000788188238711440172531021608605256024188993741433544622342754056360348808027832391821354118797877309837033198168032730169972061661235810163624105894745986314095161714565939161186969505604368096781171337824725560199230239354477989398563886514652751317954142784087213334738261447308279169996156908970171727861267736678419978026506205568076200926507082378994449566134569686077386310180255382771776039359658542961076535441172301185878956571843333691782379020451681352928987327271802078875684472073654586842309123046250887774692427743250997665106444872267764176698001644278265562674430832034611773920171418633586321958208859269426519430012012574142526524093819949054949895796383182758476733373223144329945064816702138548931857137617030246116298650513464697923638467790924027285699252270561612032224560071544378081655516942739623048077475708982294252777376440399352372222531580456207421073540167396323451111831706404659533289141852775309789035769756787982564688862406115163611848995114509089185222508286622350392031957277163811879344666170824255898238645216841315342182249652632180662803548904662055849682477987621899822393951342412247394527651900617035899558955131712270343817392505846684838708447272484139788494269790557769269320965412118783334468534960309948833576880073371991581002481615460702227130394354086340641722795450129724127871772871333559380224666777692808229223800058998405428263993775643405392720191418121002531615779299251574714314774576044171848416124638493342097103973228120365739582065008199017772323987320542346916956696522139635459762428628858783282350713795066838934262110896203789966122816057402214224462817300412732714025447319143252421806507746795281815217006212813722674317626567475789207384093756221042493624725182524083989251561483827237592391359248896743205427226587784814563723239014157013008462908273481115034395420367225071953995640969293653881388199070310091527780807255799011812064613823450131489564914420550949715029898139203531872094067155111528524287840011918714813314087778771275139890086724626374061237965052099509388323301806102792921020717002134379785676379456546387627767177736994689769553582185250569501276701939391341311538077220625675081878853625713219734962238061340596880036902033078161644743555961702890820022709600716214516196506906781415017703425577980539098979297258519563804924250551831921729589340063970204998789978343028675929559670503641171629447812955384114230655577750041820838041572579655048105961879649788892962290657927021513235365231110751255699649640535954714779955274269377861588009356665561098566699489907331305583080656456807076420648816784543174074791238137934195833505928585999868882337423184447578175183667688226275481651846694623541294503682745239304709096283418716971829235600875784206062929732561682823886884805374322812079771034268523001774472428190465018212540444099427421106756620417746387082888145697106575804771387893656856873638879113601539902420205415271683159284909882214436374100662193499943322815899029183684286894860852646941404220020117887654377311159525502877927461069248250067189950277548849880254740062787755935889074785133956591760761532922618644601590201251221403821331649828322406803490069494573390304376398115564381768563762724868315658315065449870003320273774078681382958724679608862220736631067054377457445104406881708682079587444659798248145346547052296548764958561205699446539142293016805929639876058686256314565785244565199826851585875148076768514047952371452944516067252759447377525647960665482394067433995422860041032107080059504457315562238498923488157280368403336779991864618660967384365320710437276459561494399639059407290705424473602227424153307609183156895722999965952134021726606891197817762694285318942001755396622721463258216308479186979701206709721356963459971793258897804854330867407397768090752558536561165648783484531191501443383364020382654264445399951764063111789901214983556487187627399062683543389345860076233909981501033689326512595177418347828521997386004807941119396295462229337840052529260635922071200141874389687049467407485433139813640117767354994942098177078778246528814228288309565947375015542298735701514954342091314748605557776899415930884252669608789220422527762667303416862589496139753694923429938055779982154116839917906596744156282979213043086203268693247810798541744782893029311844469491600481069272975983631686878444878018689065767545541361932555393686263070663831231062729298734546215195320349549635192311798422212260538977512292123533153346353373085495523993969387624538679656144100338279895405054849851734562089076308101935936581236893890127688392473825626448268247480109191196494869360089483864954715461804659457776647678093020707556731777938283624955589148710978368639940067502270111391941585908934904215864036554983551904762233168198611051764808034718331377359080904473250218698781645110419264202385363370980991346283857242553222234880735876686853652385216548178236463320902210868287827316667341813158074415860105464128810444776106209443251259690303527920858882840868922823710297153477745931104118852791445636164151780552099109047876097472755865059217471694276621935352285628518213378047687804459639695007720857496448497201215356999945048560469377904885711542011548683953611790518396596580456534922986872348185232066851855207978756968056922179805589152742351987736744210007013546323591065109355279085098622110556389402676130256126249258872415533022666455093855893136953506184738156965170973349490087238036435842678910367285057939445111878843667423525476448027348019445134439020627882930113410474003315402573247134572975014235527958218509357038128022401294963231544102893372416516683499773091368880621802638891784271826819200805231739401191121256251304628124539509795225496666545969862194830884835377268459359416074381941962395691332089485780389591377274433958573573542272943139173251387426018366840351509345219569858861658089117897416576515016063478513666996644724327603263177758441285046115408816347166746088113680395324190401166328320327506825202087381692593282033234007501768416764494361412337036971820185086102298484456720687009791866855000664272555459779081875858241860453386662914676050385102706190610683698501935840463388933843102873939377720394144201443893633430748925399935793600918609151330680439348318570033113045434413151261145129534951574030856967605162863085086317093603559318332074414515324199640103514495581026855940550336584409874808226373484147888445739037192984266968754159123473029139442211323429884792425801925241654910683080004485250334342158415292637647914917884570547866943033074929815020388539326787816007985204653832725811112079503888437629233886842217350841596801908378284099264896918475941403687834744662066482267343890716211682986173465057070150709113683901038525466765286649448201046829247104497532628203087286188615969024275318018558946731975324967593709066832243139936792177705918786336633906994160580991227551917862529867616280479959413078555631876198690507761920909198041531284235705339264622827367523981736295762790373583225350899089809943077392508355522448304868969499303357120855197218951769488687884408794633938193521482332175183467784761800529218172565599511340813595095955737191222287316876431713009003275439250789232261119080193015556069193589871513725804732170439252933744445565937921128126672210091850995487958757640945872346015501743085840445557532685913012403876304789347148627446523965562370363056802552014131519249637707373002232535168076413369488518268658333808773030688979293354008748858545381884239880274886188096649257175282117284809062593516686349848082402603903680220987112592760692301962846426093307437262197036164840674419011187166139894490917263168891810370560297328303961800697204385374681105937286324286965570113956666814318013396281860397523562714902806739431391688886857314708259346792445044617949341258762194373031914553985842721023628749371000726449140507688198738925702215893355263795954185361954030278872477826512517393298458680110098575634989188718398265980417717669006734752881435761143891541669851027440605226203538981067712345030202081644074891640072416635514619423363904509730333359073149604859029436340393116722645824308048867116417759847136027495000090904511067197874476771637377057315029665263383336072039074975312435244640099500093331421944264553113804162712011327165589727003522391750961172443383263792647926681252560699546117098046465350051545745644483778295311207433745754589391836792634573024895528266845019347267288596352670146454018443375518780532778063002919522917507422171813016114544542032060213199874689755854360119185055630829646272717657672570495764217583611649980569989043976682343817540584347793677879905023847559863480336947305282340369035483821831847980176026457235012743973215918649997474544250602762880732559043782882605057338788105369462530332971455285427753969408253377176462821528564043583201055729655358235727632770738737030851402222749748496239033825514239059483163831529193983772737730224895449866303644865107155295134352116486098542530593395042128460565093905356176921287519061924601685722332824831240324163736912776363616200306267150717243177727029011078577119891519995973826597322867452531347978940611531209402275827610655439897273087326064680168081689364007227144282475748144510762296952603704243897872164247211176178986092529870855326956165463631707094103939885262600961048590883408525435875493321224751067293003357500550682374994662328673175155044941220152989684849893133693630390419697199433806942059371460948006403604070466378807690896760222723323786506573232999730512458535337855628161253406748717727586530966374441621898534404103511943725792230234863137064376682209958465494985403837227241033118838754945822295706559323158099496767600378441117355107239654107169220590396725934375046600816593496772731436234643115638129218378258148401698674659120089434161478120907053475246069330165317755011475235730488520522379868285385673921001294659995300164791478850416208927701866448182305016992425448544441873295080626093806901780163515112995625761030387586807929072400805842221639441197747670274666096487457525089161506419792067914628015514211044460514296758436640940996458767164856481826381270171190738101108586522488456241857760423809790610906932975954033596341644308292962804692219201545215529724133573878007566110279698988607592792700641449768878479085662002364929487085568910307459828313899090242149073085940247017347736544351194987192223947747443635495836199290929377796080246103024484247686249281292870466818716138437029208342264515112263296285574805839681919237836339539124193457536646146264016880369088490721902004865294547063623647544421876314007037451915945002460252322709255814391801492726035100578997323353143112579283482496018900060981811523017411750150926140937690408951782458724127360947764849138917754526096502544408197349785751994240179047853734285691259919440993415464035525529265266495090428215353562584733490759925787967555221880847176397094687244454169268337456303783226455466345230385719758131505752978025254976611232056292218646688056939651381283869560031290427232048875326774856819828975089672322076731467533451630824123886359723450142211692613359697915017457198682307853779632466662141567246422073372115579649220939171368314700871326956006696921782914171817566229136230708868439387221885645590371957307896571666989181897252707954327964887288038259393523706224532633954069973232295667787968684525088414373481426488056246057517127978193069884150219925569044397835275882340074668983462385886371722570513947334209128207583173092271093600038662058638326769002925328519813774916594651271577812884727200366599285752917307468513984713370039019330758366627328170609674762052108894455733505253739002647574462912865026645910314153397037162861092378919534617399684442813513451019442201267945081845612387076745310545438786922959991564485091789981068861553327981966802987072301504503278816773138517388054500051816098223265408320131707115068177211748982628007639485936976173582984188938718271791060250239036517376483798118637833612551013049815931563737170620675366490679099237619396199077999394444099565295350281427118523804033449866932333486982626752144868993229720707489175526380237044430686411307467934199662233785690991439959794052131737714669911295949941320729164958931167790472648637938425340051938744356464169349318447870527774430845714155757782328356095145575297021427351103593738766162783644048778468133711104263741980528123392913863021652500946845914220789600268092225935884257689337972787155340348613857749447850151667580056717866354532257397747241001033893369694582625877348243835491715383454353308722848753661114277772399996539675524510660158120258586213166627495910100802523465477350217133561600607778904120659596353834210787973994388152827384065427443034271642779939102900415261811919140453538218041043911908354143191524354691461958639654475574674669282775372863805400119410010256996642976342331328251472006660043954226139260713743490546710041836574482934379557470715673541511785136495370145119632341881565026588015430566747770890261293845305120564926921718748669775535491084831843520323081778549836267217196098978302382459548118314567793813632819591940094646024917081620480917700116710772404039134604743087148882260650751894895491895240818434660376843328029299023127409641846608880126124132921478478145502657458899095557982230261006408841724956591702800204746324470395107990963811312954957206364678174824354218029164693796941343197643053376581869299807623873811522777422929284513158653934290922188044547296884805853796729305007732206540731447071187216430609783132971271968718573245022363595165800069917248009795267137263614442312579542637189038880300470916704645671864865277740497915444782133644513291768761093266235258848327753274138334310572658989713551752170437584977599509658025279017920306163854411754091965323706516816214548574755681432079843920829940178147322303320852345012169076386966087568390830543357290550399503928737820223872884333594721705874859706760750422147931312183985262037910956221882182958219275816852442700006178411689225611224125994620446809071850339875683312724361513592855759563832995257272058883658003973234646375311132633328066147209314447385341870381340177975290256019498760792968275246458114631212568733658968650511114511061703611964663900180719804507666388992800337757985079505643729025786183525750047995282033719573908623736324048629444450274984485829362957786235379165769316965694593483844730044294326241227834985218448050498374282598542933356447131431651149871648879979256663437113116647158393448773668619200307599684480788436745733150865626690064159532222384815122946777940328350765982869865006178559384033094204500887250871173057042149472017525973484467288180845811263507103429113693125568226296396525927082361742377134082342350555536071722757465431455789311189852986127382969427077449876180864302852728249247793686157446088152154459275879287453599415928049064420638039096861015928111442675036524216279839896920171209228445188618276831058008445560139338531880882976548852938035045201101293177733469917917545224526156127314106683693577678207439854143065268352244072096248952185438851668947807820982830644493874984920873382508533982702436734543933902795380416234496259990904979373355852183375897712881506296808209809937111651455274232454756989543846343291711158748922935452034278501542068885834556007846867792948298058819936987858691234324622370212312063439535580650961806855032578041015709585032831953086510832364815398708656343105065641934078142535881408949143738684492738410476181620367061983706712517614243021529774079364453100919583118025043763003488782453812934064053784090562133421353794820185245904149413160996380668123964993948939241773245906236225362855483295064932362587052289959151786718903124460404413802909917936132121320375729682428237886034540042966703861917313915811262626105064272191709558013724287963488058549442272322978195178635977242307772395294647444760958050574802939959678303029004001855306835322550600997806471399683106299028401351674246483723260485559573106219180280794830897425873686209053917244699683258956916551131418872304160662536725698441849264978675150622349625586536045441570699897606473689983047942347703775511311229329053247343400496507753197903343214438592975244112766662147600470266330015576560363926798329442948169262482808792675103585489956205618563792317950369199817693250168293352020859619142585179394939561160894694753238501235898155463528785986038711848683604220088860223894535721137244404625524524887074475655981655413764828892631532072044021276438948511042965975247615456144695064998052396481324221988205330251037152919627785769622243325878668849556912204157701383722500080530174826859820256820543822598954779415551162092865950105268794285170395746339609947028900821315351592699933170709651230232532401681301176776956295793011510404807946752964018918071532708758294749687336596738699796102358439764290167675502191143632876182500284472624938339330433108989058530013100235928488979584006043090965739150452003270906418579559898917401789534512186061342759007654528696624463010836008236646753964895224294172088116317458575129857552214329670654618116267029153343047723264012242359034152108815841089313787732878493744719722216105173748544843310695601795160372185357433139688368878486471366120789686842186889964689943485971105706881345507053736446368768426879449403378071991344419987576846040332362564512187439188579831462575512341586027578658945347206331055285194273271701480644136613771872263399857760739534328322251975204152489107173666604020998692881711281290053895749540299116070067321987299083877010934705308543340676842220200039038362129592418429407327254572930189242379195722970363446900994504155371823014886940602240669981176358899752617666392916266466930781276682397314645292625717476501071839807309128322082341817329051670852425798584744022431489095866755642379154275695559221671755048694340135160281319178694237036247743252356994445099200028304758455906777918178547884711152199006074438527187253112953942645801044935239770980248398226960242855026613174673911896945932843217020813530714757751835278362616574755403330351402151684225777916063006554065719879281787492788610637344816361057532098124176403601828230893471116685570249732075134488573253682021580702396161672449684585789443783524178642085561482425824134138628785994669428226493817496733774267869670193171788573611521365127222723260455247985221873882794688378055383788173628512768822653363711467108747375575583802088715668967664333957984820243709737447438284260061631167936534001543946292373364297569252852326071500128515744619319344485581453990332444071931653709686752559381414055861487822876864521095488864231323366460856796307397069147377223997841883786277061187257864431502437492563900818735256705552637906187870726292063815559294854378300931070634877269073703321475237600071998028901691800555045018678178584389785262949385216274021884508033519738294619977010395661609917149678799993027759437684012139134914695575075592335627676230951274709668704752447370830487566437574190588305621902999149145355060215632225522356983440823931369470677916266547262430790144918424836021675820158749781663374549363016589784415881758486160281661708234258723320442195291858608506880604930170904837439179773068247931530875692657574924543199852359324724973900253617388579397524836407309285834444801072948833706435781064971930871167642453042664092876464438445267439763340101729738500644736772346811804010233304426263056041860076975905813309235956981560593826159849596254743232996774016294458367926922022429216191065039983896768648366042719228802864193521877560578690637400600669663123454764420880894692709706144207892326325439355775411559719735213654073711058500215122058285244444508548664519062242605010858408797898963004124219556359900451385300821575987819640695542718349535027238973047226928526904482426672705058876332816316985361584550834288363586636578038118261031039317170302369387410863989407566719607665405642998996283339669723145055919005096502691703875754504526547631066895378748863622992206150681166620550372806385982366574355938498133164931317837866487499673234159554994038961527016011364192914583147634016948325985115385551211558259891538137384175623612229812054592447371677531050783632628213646750317236229720449465398934804061330857919443164038363941050376829994967676311971666184720593044590523788959166922414578091059337706272620803391419839396924571470158290940356617853011852653554055421121618594380680853831765771441891034684715954685904075031997094276411095618304872738007726505028717353650524149412090471491635243893590066881539719678366016181812178518501372635197953540821099886359882910919993104479173337544581947629040225729983126129475944432532444909758019735401243345806826392772416674175602628808666833412277661709176354767352915549561006799722967496031854141573206656811847046560238546708772813076043584512699746484292365482839312163689176656017406673361757163648725490780314783539969130189108655783136674238585088644368736518740282000921054678424215512165319804035108432461710406910596490342604854972109748809400394515505092526545608956369148184407277088056240316695090702647492563593840054506193793275656801839889106697913567869495128410341632112613759713437392047501218586693043748662539287257279066418693222393846093126001552336553972582716909535069914120371996496535997276474112934305127991217443018055034021967667703936949953325172492422810205068855829957830367132166089519910754923740642849293626947378463863163006513757909671372354931743448005113765192593774348480708632312588936788173718895286784717500136401398748759929721397375344895642118361879967984448342126347822520828674518802456915813794660219788670855657949004693536130698395808567565673958452206548861843165909883613528385611407380460939286173395422872467200468388410041584162613858885777744472180091702569062599757938588836924386677051513320758023971198220987824112540224742713173954801755149657827301063992728033869158875248261922605346592550045410451786997259742105076682812961035340415186361010869229964600284694668799717553862392909604136493172392652744120763912860763487071502441839337040052796517924251602917001184887881915911355976169460652104229819131177795323451422218470016195116810962881328314320910835465001311382906340547974986016415819042169605663495414671046537767698308192006570460850697896260255934194912135462031338152323444548795695196258092193019154223884437285981547478795071316077200533091774738759917742954744265598654020418561083942863528890022305488758417640777440098718603254451701879501703272183878159615775508301193483339939965580106289475663898013298803259250187265134774709753343900720417704404921543945352782438529948001373181366114149106436480388765746170481994987343813411436618449676057155703615223053800611952022289174453792294807377353165842858070644898093164970637804771304992255808896587376956462772725663371476434615815888145261812630152723269668212380422967341341867164045188438555251213014909202790120534775069233904829591110849714839979943967371029545833909943272403317802353229538060849869779034013880500564062228238454335178726746462357797467335302726829636319884870466365106473459087594614160436485364153986506661395640644787619855232678807052722527689110367805372836831137352384091704494744774503936090206479530644553948064546231941610103998227554918231581924796276470621287866960742699694957334687522351230541343569525707816081341073430239630639914659535019245088733928497541515094076320723594620457812971323789244161403930260393307511719674461042769732966260021968954111681884185016060466525154637358708754056586236577952952449254083009880884806912883843929491377123021427089005622889606864507387120664487839950445912298980211279356677950750871816632794368823377832280259751665830034558075664987063387578761173611173054231825877182846276030852236130671645464952045710809882093386707658706393668830788832849436640869193555205798489432153226300443017732295608388362752613058625031206072241959534234258663041788979462572506685108803434183445185737359176990686300508338090742022637651904699337940351651510403416870082521949481832763967488404196505250817968647688985488309432524221898132483838119601381804931983369470343404406881719488143045991837595674718445029943909052816687666930888913121691024611281728289738936101006659985219476118356658230552919306458633072444860241352347119974425626327028665946762371463485822953754964139429272015699371144804400316262651806904525007031019108150264446978209075262164613079905391479635789705911998220525865922946094055599113738163642963384870339039778483442271548624328749200887511221819050328591571317790325850222358872612834273413435246499518454980786292669352164974408324067291735821691262982073522739955261438816644944018947768414387516803415909332662056302024767769058321601564211274379585418125979676540394027332476492162184871138835336711230387179493384408383171425185346646200163209702703811318405810366235867056066806363849845723218707723188729548343773052692055750856805429474670905619366654022184001535098171101923836081126548795159415684115927590328946986385372799021442876603568190996984474163520348719455653981111745878753248698298454461961828944478741410927703983783150330905915007231033391033943871636442791246319872922585906108270580415400566025971497291397151480814668296952629253192102658774770775778884499797890998239844349478064678560267961096151005250278423048083746720588489245660912813422403145987843164579624802863554586774606198716083676873846523524993228234715143030969278009938426955522111470304269835179308603233552427594232318784866285739367811344302689664679274032257328996513927023660219705979065875333893509507219362604444880352940254912846961770241878169555981961981788650773593803273780830495977052074438340422962571094056699680947425360502531836581898130725761778755753827490827821742382112488878482998451939878667236044101862722842067374561898458242322926626318314508835829667582242821981240519781444945108048131763134526850047314959402880821705959593235545448226670867143034376754860688743796915055567597548823995140180423880779433095808696412894272139412340582419479540642470049398014298706819367085738244562300588314612658509747096847955603079912909546488853750899296488757796954416877518332619690782185829391170518488126644148710771595432272359361325853936864025931397427249953345628187748624293211277012965219625024624148611901802989065696925245551048115641168198665950523143745984597587228304598394797131787232656737149352860093765717639865515143044154264241747687566810823988196663491442442865517842050225025853828825387195918100235614649796644590745138988757045688490319010992771748849920916772238496981601751511730926271169288454039648855678395731276520757762549742349805195337737426390041593803390217101937831488648082528423872071986016407076432810613372664827812820041758353121763083451667413062563032376340270684864208475121798576148578757035464791017860145834008060040870355161874112670767179256335002916048790602590177728000657017218474877602011079086269914961365604412285746800308451481428840979949269361229379917943982832851109765764794134745104738554189581856956685423875118741933856692501141957863285763089744339604201511961524228597471130454391827051457376858481490271091033514174773231229939974015891205820635816104432486710575028711970527212428539939815093548084278035303729314241810268946259167100892410959579858578675002199761428033193150759790240146607099879089107278092329109376552107412946731962369409743206226593578756015513944768845644181391850695109326590374027292941842449130265540112982278932858860018129891025523605831190711038171582358108908758970812480091132545960940220021650675572309209098340548389430293912976054103405831711373307981390571614520164260667164238942901982435195217371226611660946611355435122744696241369759663880937661352381316880559618847009099897808742837152606888305356046901893314691109491975131204519600240474525197367383137903147435662085594901968992806811347185615493484924518187865544481312588175719710833848817421840512861021633471700966953311785610907178221740640876378743395816961716010936245358636402600998340196980711042284941719618804988532435476815723226719579673191025551509154818869486997387608159436143415361489192330568001014542663736208807624405133598326600385439109222787806332693068468929591233716322505728083072882423477094048083432423929420803085044418447730669310591887912550285130827314768331431261715887190395666326356127843743608205508905860247691688065440928702376352592139580578788035827255288141562180688806412633401846670087596418859149322998959539785964656140664293471954907258629104199940296513266545197501440539571815685006196425976958927453025591286330758390904250090323101538581947361056442017588413668386918049570258449552325563539707222973980515729426837218048525444294479893627205270873334901614881982871853966286171737901529484129647653532289723794455681941515391144368864470194157804239877923532036171812065538103798303962175637582022417595214354380638833025989347078629891574986475308780059904184168832754831138051132690904444654386852144483433048313267095170632754358361853531024731282982567299043096998217671508882404301197249312557795345517929817188625987461616417818972618590960371928401650625261986872410896823986561522698562619740283218656281930058476828333771492279472059355752876427018840909552166083974577926444008044821136669331754328589060603990229335908031509474690249638580116231882664898307165652336789539509011847560312994324458288178349805555904238145002689738828353218150148235832725128809883604024640977146984914863725749994429752911496899912188057673875874457531173962775942130289344617147417794845843903387485699488731556061913078285168835596567009221953144671197865077372527052752863379992258810969654654591873639190976515396098733681848737784841085397085943611044225805148497011247026750726699360646211775432017909566296334296045038165214732266354794923790898942331983441040814466645544749441292781046294092631786238432613507893853570763583576847792993360966501152671795297562518435338388363634551326657275526974369569229222692492023821022646799671483044584343304962883452786393658973526646441960262040130240894851170985521038687729526693888807318548918689890791537468750377336401412868742514276314722750104686931520431204308943431691730221429406434877256597113043541304803017322149832136698949922731978528404741986625355471309358400040854029420923835748188787783648121814682673911350480391841597109686075755878334743124627682501305830385482921346796501470467580800721189736295324690969656224845251095389503614627287933734677413539126752703620130184009910510389803832763452940913406478105604438458051032948452933893401451988086267313478122203850845507657392965660387975690229592981288926748931355193163787299227617485069720215895034530030517747049018317651267891637652766396675367284522654289099758082911995650273885007591407969803934096898238628905797029021802748845255746198181912054601655481342512818866443596574963013173497245802948011231891895441999832651818135111390226446484427484549064772495768467049241997383528808127029367454573258676309352255735531790666000595003005199938793274183849953205320468293821048163627988711212594772598021048361302540539554344198210812328122782984912648008268077724949525009029602808987887088198328805324277036206213237751361835941921212425892763277898871195609989199360314355409616338631475179123555504957390382616590460090939943954515672159990667070762681389042009963795189821999965832796997289912362352816212826035573923967889323168743972597413858111478124310361765545076481340091765299554484098008600720417951151827168566450866402757216744064124524129285485990077592439456360051346144756020355408880542294681682894658395009037031693801932501773364070301221291819081339292158157915173002053490303058405878208604607326077015710949225246916042574857236819796904625998072274635082725109525827977192997397879405512074082008256707097414624623424943200240139938916124314295758104351203564191608743594922439928905256192055866276229278242725754592925636109754098613395659203308057210432693896339793667132509424722145009197023069642715542762295112922803158653389433005429169753972876327630529391483796616317691928175043089184525642580679978294993543415979826488073626442390362132846817225233412753719669447941954794413216465101118956163655827666000299632423238268430589373694777118205849332679209515361048048285702001400545966791665801666983666979418122175390004495720010006253341716556592241341068053486206989900910953064131269195062269733791466428123777498873442805792754705122547871483407547428624321735070579714977525653613067773882194479295876423509305262524332695567721140192824633718166317032723236086775507391405088158133718001094371599811917138537855076606265791831905893810620120543183334303886045572854941114041790724298930029352909229401961681160111111993750490061016624977476373269824972734103423576385852577237467009390314606346925478272759495143911834263956873057267613178388618756289628581530801727918632504835440591629800355245787691300521501676049233177705989407328726639268976255195953548966016751487015756022223426729297074591591582142299612478385589820887889347331171217785024351629718983868746576424634959340163612295956481414739867924159644337514845858206749055463290204370744528612069001063407616157048160748118110982792995320971280890207994835745596767095482104177317320365376658507952962676146262230898229293579445337822964753254546988938596616346630730502047965797356168160682938319501193384776170081215666665839486147893762955518720177714646478842557744258588934683834146687910778683977254682100405733081118814659394147685185693960519059170389252169648292315838820770427728822934610989910312710025383973429647401768810680346109415038089441416422453962612315758706224368685851025476670526536341906599929769550970194666649451443983661118845918493198202950699004020041895007178724673932043429663495849354372439147120722354486268671140086597878100526414067233770228019573169804311599322375382778259375798321039301270931337501858517717761767214058007617855609270534253672361091395945340654234346953641608322370017082874955820634153934668405706874585223085589164460382244685508834339592864185740868073147687376015285326880938541670496812474542839807282975415324468105304280216016317672457780821077686645912631206043926316016872103773882772905743765990575562302930722196130173111854550170921944037692054566585853674086932202679249857271716881157409925155089424977169907779780764276929616683729359182524665050081794936212367840204013559221737823402992137407902881261843637242607455407087002965878437986666756228678611726176301752885063502654283518557207579551372315049634003364441493281892142921922683322109053100600286354971799436787420597539650585521481608341134524283192767082315286626359335794099016921830120322696095473881473455876934034978168340817446384802843219089097751239918804383743440530592169374097264041268936658216732058696941937424525819035967189553498475425955120408009964540803766841286735164665896392407831775325712805313849151047884750381672759475749617157661377949893235558304093476710148500371052400595553765303919582835961559382861745156739293051016846933648582889279243754243868774135488475941876258436467341972028192156037427585741840325831706364466072128883065073475875156853961993597189305191027974012653555718403554705739543190424892537666143519823882174758197991894530646063363951152884350491093414232361912021428082806283428247254364880928254318249963921266853900998709645409345043713888337076345513456933024003434215943837729074951319824558904630729523246524836610721610090496916094300794152422099555851506167559928599013111087220831177917332945983059364713235917313135962409629550145048292448112736490322648501343835286476231152313724067411263999608648857499744100454366404528194391030112071575003756944925299517966468475133928409607005728766646299064884162996006990070502366107081471080425943952751119213495595724453557132095500475187244798024256289771889968448839379107787739870069249908520050792053507149547249830519300726546859258051806705272057267320195829611935562700702626667237932244057500827858824237014547552964077269426605436660612005640359955814779717223415501265202905188098485874143402342697203813525224200491815595232410412052127181456670751429398906546500501110146910843647695581407875358850409977728341546275832048219810644823514661405853818396354142717736405210397520377357952752039752426167288729273596917731153569047327922532414985502169752757143479339455836737727474012141291695653608242919383104472537244752631115356474086880441474687481775393690346822901083864778106171540239929211930710738140104527263515061925122475418560650565951980780375368130663560285730889833476830687726454330877154952331811332531555011080402025074117666772675458352055123179763166281309787549149424300519948881457756280936027772194911204934383404838594188113352241288749214018860425350416037462917317682452948927141104935712176490457206615589811500156668808775919327119838718792831802387807217285025518595987678769193931582317186623442738588861939361871163442150500646578923468485468501020849984033827212095045140780043224362299051437241498166811838651248794744025757073488337362781677260671886655395659219181528217815669264177074126458859669766146250032923319295831402982132046389133203529030289479251819172890613945825857950657790430406633236040890776138011660926399957305173756885684971821814967730829331473974729692588099782109507781361169117360989899292053262378519646599395660642931710315051435632779466012844855063623852415843950577026050717953803558797125868025868570617227782710448709833548681573866000660279553092846601430287031534183566057019708424130610183537945761791789485224890492903696153556908469121808966313161080458434689915592179046977342604270450707635314595042628945289912452274589710558553413631609277224644953192333054515242244647360126219154715153181683385752878007503704097213453808284926397505403257913459902944733985572476447117554130020610882473751052189351227672453661848950859368998737461397469799954830106754946146894874507379310043175404676677699633246852248835099966026201869000886719843946722958691260863717649841036538575011335608877893576803921219954658788039206731413813954395510398541885427681667202585194985665784707110356685586646969789329771267806948836969877131661412415857945024207449636029115903757668167791703829453668124796123281405448064536002829014157242778681869596595375127240343390090059012875625251568327414322638829334463803767686520585964184005538426729248363387304101324280349091847577504487288978337218514223880929589722908873827438297745705767373491665416404394043228357708227529720236888981836789949463296454960356828727411299176581190425893091353603114561800868730835569110974972420983408864957068147729325328693697038539796892009573039947176011505045823637681842173724624929724362928026814137431630839753720103240077490118014509418745631680365796174969500076658504547535297676864981332736029691592773924352757505827233174184982269322809664488157041722264431320246550977943902249284813990024178782529756105103050650790111195280496661428002008899029371280468547595197920347613602561897543766877107085199086628406656395315077875098539199395812940615636003918916785676661326000855647092630509335113238189256065813972610245189005104123516438882743753438306205533027629088867809216303742848181723744294817046315129191851407190113024080520548133621094009245833267185457962046724012539639148385774295842663874320725429739494758908393206966477282680428572410430193579108318003228399462155001521452445271546189647811212901812025666168743646673565460178526621562546172780868713469937373330492126085006512249374486409264088900554684432507570013816889340789350800695314225606754087693605965743589549317504877129292264096675225380809707422818490443895835316271943572019015532349204268867823822125014985548595002912104919328622565082054965767594470060660014315797157088714784013307218870580875883352462066222303389801909319822786833503630500897930124540773355400124330487777183217403688288209370930870889029167186432295635539341720857907513960014182407818654501056734160087011213920623281741939056887590977043462205561415070331748699243847676191911275276836508141309958055615662797794391683258847517088485216823387870972576812275416690488252527770389020053007209529685817937253984121802076785228903604379257083003184587414404677199065960604961914718371594047425226751527220964323779169895154984823075075701869741339547283284836669668598178433700716275430427949669353057557228262681775758357569304110383373005702438686597608690995817127580883618430331944736307646426839065614400788959917358484139843668413959738340493788096714501930054422142980188032700916387445164798589406214310558047496415314656233919337018892453952080398304345241477714148140712167348326938267039573059664067572041080787096416327830034907722454502585462019223242472822807544629150861598364047654304225598906541681760475316223223023834280482945726122670317212848243083500364903422961633942328657058237869265572135208578172158833432582520998815969407246406247420692794373977537105793168125252953125941521695965915533676601686298719176041828790925363050915064659062692957775039786733094505291817052717774578867003910987514997232642012408219094768548702420991967172874143805022612679304679340960251365605775247610334183638651684022160959259832371779874854594335975978849081578483309843422596266452522383414675231631669692946226956688860673342624748345804963439502307264582596082839314383409948672439401242234123765197932821320070968757535693796563879475849071284594671422873896332571479660771030900321432069701091308380096607614891587485451914246873213624317922020941065924240119514003867809231762321446945928350175561692533408976047642459639351546788469765529534193756587477206169295924874483704898536501652245263474870237004562359514415071733491537014063202877811348604914169233379469121976747934151503103053749776977560759476303277340326120029266995126159200849423324505150786644502623291883349765078384014945797407595820356614438997647597698296079326071417332476932685973815425923739766819954582073603794266300218941951682797369007944985591189217182180508522683972161953938107136947086308479485286904818109696090461795016824500112887191210037896266547374054461386005594373673530146660898770131041206986680223822461197943126469907598307268361636108109905691242597228589743687029039610641913556212322769562684956433166022889065740910383868307332849655240727776747363568147472650397358012801984327616335268683998638981198531532970187496236479713614287732978074356501726035349207392487276428999677780949319023939254295112049835022196454343830816319199631057557086281514758438679666725491213294723293451063628204237442733237005834087982686871084237737132999613271525854256916964235387200631620620052613248036060855505395621927362154035513493056679953712694101939982047613570565052023360117297155660308116787947292707756872399452213399545361404506706796079481617019822794204514786747318965954536307739332389204128933627744384052116124191665365357049660733305013674322867184563224234482735724978251907255987989974458860867558719736340072082612203892880011454984405304355528188288908270342430532939492993367183503380895200742428352869090491580977686206460295410712311812981801278342284985226888299737106763532349706615377967268897785661118917916721872704090345318996808958732981486577274159848702172333507485611126654512631869821041664233151125312085509245965456029833528955557808769930070430591198258559950080414435668462012358573447113212265879166657717510784646357055866297970217033436829060588342181620532576450250252085224505069705275369553105176645804882953567687844748925049745587671519179983252272697565735379660997916977632748053563155655815103600011019499618839986837473066639706661478463515935321501626100338838324269008513852683503347040751295995913454754686093769686056777852042049868795603003904229911202773144804958991586216518824011965018194510704551330209289624927354317886086500080640121836117817019013342585751725326064275340654809424822113715734494823595105062840246358542315920377758446213146136241646620395297899945851067848213171806287402620206518005743558817724703950535661804724979274382587881174138183470221319009373842605432414804267776865043975994415512246006818430690520596725193157560518844212572332763002648587419966933599589520921349051668877312756326546580054151004937869100449626490141004843392110197506569443492075569883457854734631952919041577412696394485088806225259931358098584665113522209323839373428451060006493081568187215109484299576648164758484824880109783510620973879876196786244839892427282239776679182799993983379840915728325914630537990448640988787348871071604639918262607890864044916538856112484504324799067104254122952158135606051676418852449761037357052221683781101653093648116137012363267544059562377795257887597849311506439201038299012424572613380844246331052006607353020069241981585907795068565182428070312018493496664904605936824815688015431690437644483991858117635724768914759623698385791982393953976895561508640121134803513188234185228300042880263980873033788751361268861668609159032442239313439735672512028577371080055496394454427375314698008792047417755071254603219885937636440758212902735528324796195388203573736559957675880828938129940728446206558004304318438650880584396730500897629997116119891775634336052368116129631033019313021890435676709665816039937157908711407022565114447361297136489424848165359900158000835504836596315381563806029297660419150636627737155526398890920107214957687922079330475791162100704621003065525774999040985355199943868136489601621315479953708964298043014689526784840782063167988136684767953541004992301399598720528668747089854515061728434248651758183778793505678167030611932629226087790827751454148583991237576919228752983349493291202692032578741250180938993787938756353462448900445281712876561908498624004130704603066748570784797115196225181544883989560635978945808395681018390024073383918606843665190373647737100024872829187656384603656323859400667221652004135598638692860968128659345930956048079497652082522898131823737767775102134035126149792831748508240984711951646192664800622822937844330842543635863225573663966628388886043425796796437927855673184141693092424089531449941458389456946712552887979625432745552800826387226494841022561942332718092759968811905652733169718624810745276486406226589378957588140058292533998252412250455551499245873677284715167926375393028772425951449799032160482040190272378072611988679129133172849096105006224734833653466943272373683936823540578427931615309633327474971617939466017350176653016510403524805648679805443228316872584796210315278203729064214047774769568627579825605718495951126470722691339292025288037872027945392095914132019457370759746818519606327151342016436103661118524115270579738269381934666758497300501277240742543933266676560275016530972644806050745211836738196054572064876703131227098599029518466161721927625286273188795652771454887240187412580044124856105481728381514724539688635875848807321319504775931011957079641883558336257151487745506072927791523777928944719636580798459808802588101504577827166123204227619463600224307261917713299091962602029213482864807902072051976534399999168773423160843075781312686662032215637047270508931703394122069759602008426715547374858196891021871671991640874687669287688399954435418998085925014415000684831282359913027911982991059278599065295728484026287543689607053978351493798979219118067895766764462930917727496961528797988687377203998537286478683181507170266686625620229569870008226784159021970206095314603668259459000900089952983342010936934801479353375997562087706615549879626183218619545602259993493382520946653945732666588677529307075382417054665600652974767637034519826711021463780157705433972206597060879898331055984659903937168609726581307491749557945416668615985280723141787446371604336014914668842020526708854484464048076051675921602403370782885806951917050248950261243195879209250815824253997921492891492090859099703545815118269270746931179770333618231362407900100690501830698778771802852398228301657491443921211736643946080755846433329003447942364950812169285056354155786406311546646211932298892846303914668615135087337590134891915754208135295449195178957339648706923221188522529098099148216284623663882057780560753097795849467439343025085866755943113899969137707460069641506990322743362096975088149968663220350198180278564223028024200652201946032191462069538169640125046105782788459928509694551051866972894876019396523581004984532385209917058455641293245639582503347120692538680420183766983418184705525935404230523558530821573408342591631376660431967010076292850346615668453556586225521402786721947909698398276149245020138004629175199766647458883997206964482828931252561257587670727613528418212197030004506953247241334713494713722452094151471485152509402385171799932966667043180360187575598523632405371382768192281614412413949280120942545512949955312327016728097711118749083968381021609697224384145216095805426260073004677532553059309594169665962410456839505439693845096720656032140477772985241849842254867848444268240309397289142602780910890435520848245640796133520151911218726065765652444844550815012249305234012301987504399005793775182389371998054088105283636725289688078730577486405635886218811340306846709680097447688172666100005953342614491232722310609839462690791054700987526281307794398799629412220934159844299910426037102666685813816076255722233016180486310632135133054105053411401856763448010257565802871563706822539684931686088432442992696276726135713075061922177949766686354276538951086084641587997003918717618193523861273798324115303567478329970681036560680997718328673721257694118866167570120170665149909254362679357358261937975637479152381385151692659652904231965059188234726159904514174146608341344799019761487835314414759275085195805191064359794882227348658985750972857897891765428642844304475620271428570898560258755614907033327531181907690486765568195903397169878847386171527889934058482799208617686501584121138637121169940063141270273741752649595905464932128208881558361567957500712146928397884336335968819342225008669156196016924204195226556250237362818045856526780960099780371718781782192829512879688150559778061674650504291335893160784481616321340650386009506187385840408703497178874039170591812062159740720281374654241895426127377276716208524503584692063453124205397776569956431235102687326760624822758672076850744815890109741809316843100360197042306730686884655755859938280130189146317163232902311812234421080689302619889348166649933435829275881313583549614360545852518074624641164523825890258749089322244441445192485165070831560910845393258756448325583668686357691850628966473710178786333997004835688813231424493339364082435992928447781805867950401342622651580646965112958217796088642290157760265424213078513350817393821365329212201683419329457985828606528410009122202759172732121360607584493204415949059325649450339143746062357217336467918702229889482426146752219110903767176037556632545519999272411721869442572936158075704272841360003414310407880730567036904679966425630877524456048897816386929120304627100490711081123318732940590585390449773020537035218522736814066026683694719105495393094906526060020100155021439988683750284133535389469265069613959003736758440611521473547393626042504052861650951300565571195548613046464459076120027167820054383454230083461996548123627731740230295567727933817330846642116726900304032488362163180591230165554938528922699680904029775563706509081012164525128041584749961177387411220595357813894050962106677205739348325980696722630387931345341576159040001513325382416337250879112690653387440644601363608126884606359932031828609344955249166824001937590286040407546972448995829950663809384039902464783381976600841875621018355892233240569386584563459604508754132377993158999847571929470223659310475056715349054644040561521024672913051855128038892278908388054829120214563409804339300840488408010137098472239501403367573971916369719590617763875532807065563242544008437875679582501557733530537038878449219600112913855927014983812284295085469433443328426931917023366316154527458988511684166138526873806067171117913851296375414908989038945612558200932834279926283223210880088063701015124987777675366362648976646685249628172494636141304746662584017377358858459421279961854476293690778970920703752881500388481735812516684323150117102547587659339349775720707453792228860637038696609415906917715328749537914725218903393589798195090551640630969005452399109565572945279574160441148741839695707253026735318123268055776242966417097641710789524389273213738074611655818302237957361956277315842779996319802354941444551247043001370561265432371168582675203002456011106511648034568513002144636136378907707946576659752799898044220584961375786471113354655067231792016399772295048032939223300883031759149906636839924856904082349998710756223974120463784986135372499134691769465354879530434821562295314735262326923008406931231198879153263823047865317367141601415588127484836827814980379487057164477167605001781297329918557244946076680215765237251539479532465084860302873061542362458395489784236482831574481592962888075067765204529431011491535166577019170981767516035820274513295619933226172007099308743305296114189693656063855520879340397835799475453503174189736816015016772869038110344233846109281383327088273941584298929445927451502192624140799661780742801884044262281095107339526897103677572889326219391792854100196974550675203129850895223599937869794402579660263579923243602500785612154519069482252502979094637802346933371390114795760876325764342449018190739256038112217896468475636968566178190570900567807216641121700124346244834678236895851904922581070806945168763232061869684410165904115242343648654903149321711824378724366240600260296930166947608650329968386337467121179737879669763289227241905572560506568227363231492936455437148267586865102248890598710862794676724699161168291181733356726442000377367622743320093454953219440940276247758892938827603160063062485377412852147189830492998105737222829546586728013165311735425557378033112487787974119252491590931629915668172800739307839323165190419486880256239528193835711279602867197885020238789186466955082880481918356044870463328784062852795883458218298939520205539319832425311078663006991528585107974608916434680097783786376234264091167879824306174474607422016591701102600767837870159733282565778309708275804835834624278258253277212081026835022833842962242358592379621196544001453388282759648473606247462064077587426216148430690237466379353215194993328156791753012987421308648821542909898512339976165126996219955885588646024100876549751838014212582532753869969529534170243353421208384251703107868327774222098034684867476096728257819049029522896415952073253328412378915930810664983736987844816556247062198675692684958865577097468959709133442194705259271306456731446797010065383489156287817030843732461391261154720243256713932418276899772366176212158682274181400538586954136305299643017002553452910836642700907396100983989093740858794806256939606070688339746742696851306455695214207159269990485163032061925040442271727374045158079724767182464248116813134164368198145546052310285118215617690084618132572340981668554496629755520045659946863000597192733943812339236344454709001052941057939898760442629184611046882331350141726175258204335323268044950023603904562753214816003436962112752323538487743312909840542592817287775249974750862184876146092863983416071879745691582746160275810298355396423164107148581016722958290636088761439364866797084044650138951956219647376757231029174549360940581903838234560053102903342200928247162286721766329022918103651463011074873794164245805671636518474535679419312096742772489161728767362777528622003857440979327567011188902220594464533033374705882591755863513096828377617767895435803892823611459764290677204498301134370084355770408452189784246270489973763609896631640546776572435335117561287602420195475526672050816224919094261526164601332630389771526406943118849946686075158167838085111944343882676859736145667022839729739860136867626969751129891448587999010330444618003345136674057241828332635699395931851237431301378683027384742176181872188371639231297170280966072803339897565765685989143672379552461073629171373068879789501703962395881527843685089621935604062037281110774324582735069318181915727545548234167752183900254277136710634846125969797038382279823559340821113707864928153884333383123287811350135595578399817343837638464590879695330150565128781531254584722454879419296106025253218837416689389687322884954213907981925594077357445551975786441849939299921600636271130657680821101286996748190705773013029978767267631825080518221947575468055454026518552427341122964340497481488758782706284021389221001897860012610204051476942461836929933386682005241274086890078999514269572189577123865955260043442556521275373023757812237045372388524193705741945590575809160253006221828854334996297722945544862438462815379629240513540427623526400858575291312915263731690281614816385778453013978530782539254210797557061097021430502607356285364656881750217583499858442636503716967899401803309117236687931110388330738793202469938383105696902096546783027666242293111768453301571432950076268525544322567490080309808660235435923411423943393513628822485933881589428592150161475741886113271310650623886884663321175730355318813817971150543117094270396650357174710753745558836030232264572975548926445159509700884210952055418864856614395516361512555957434042098888977743526477491714206879253070287080915662612188828090857449299121269431234522205445186210872697684168418357475666377010978377286049263351759397347928806095356256884738412434641696915446849379470263218510530261757649387833476549390315216755703412277735270130954816666927524077991405409262829026598338875802528254228622800867264597846698256805567953819306030545397148340181432161677759902701871039313430413236035742484314381187493318468429637896728963472998670381704183717373945024227838178311933021642185276440535181954200588715402836655979885526874986643239500164259829715768348000998656684301906803895318814235442596703089566393800640329420068919327607552670038305294621747458638129873879453220671349299408951641245048909320510622539821378793165160606741723212352927754028295427028586613321841792349485855246081217018330146051524719938246942116420241775358147361931529743529963607140476116722929102576764305020495344861592424066345232229310803524148389073948228603428987002931356889904085739654512167821140082817105589828908010444864570603755999239039207451375072747128686880105835337661113487985239693151123191086939776592406848161987893939508010341920860993906644302153955534476973095903787148730838810373667916662574958096884190548308988355653157947372640727969554971791438212976091228750098669064871302954857710631233941451439975847964600053536368260784189577678154371448583537396891922928903278185671844595963368822492099910477170670135823033798682537605311753846598244465742588254463983751847875485860406064276956129143121255119421025595124037271012897491780955832004288965976193113264310207632808783148479020883671307975136739435152047719955764060166310674753528488573773823228109516520687368807749122853859481301116888760246457657760430938413856333171819900347504064124405448257306084664739087814302470774767481723830479802689271017469849600834338932781484799843552373016702375848418564073179079817301522028392010449988089885936604764777428787858371403161633421042752534648888794823700039823885693923678599338022126247210378746967101979325534158213156137069684208927067499992208358529042983407205683418724930379011483456518485874057567308420891504883131100503869746025012763001155149553033970899937480019160010719284270603325107110458138023613717435805144298644890996172783065393078273776641312310235490131655686789791891517902566964580351224347165745544026645665119827978990519476162528399461702064341721293801595702345771054907413053678415675617417457273692728279433504901400432113759705997542697992856316699728789234739698353634336819696802499357466976895515487564117851315330391071854171409590259202088499401316489235304770347305503442027275604252541148670677676801615174164734631664567784448464531517118442058522729505179636843604651794730671685153642436050996393469961781092217616052894326956075779483085892726021338697505433995072807364326930179916604618272794951513250416785962996357864096467664219428688462542974915217463137455702463831609267904069708756915946014785706885946908438532118301867685698592022503029506551471892414066297912666887103996612834000073859436112733800744910176846335752163640222421623843894845221024690185180512797922900887290992541433844221954351097189046707798818675189643657047529955783799209358871593538524159777621431122926233542475099698949601058868949270124668804950456751408206211610065204976953669944978249459781181652858899336822514064312111542292096073922045577002943412153629691475119414516870150297332629608866518600535053252317269606656581914456702731969429764356038996869611925228361594222398340463163146633864697444923114287804174479686705211788753153013577953024302535795049064315281053869503613361751225169959062111103236982354322411976009944992416070053658627499006476590017123144012830437644062659929101637518885996333103948727055549583870116890909755182622354358172620156461005893966492732881094919964984069208638451093446844970796974617153484818800472933970253646666955154495299944945875602490267441237514075252991754370520998734956834560985962551513946321771517065781595573232995724458684707775747965795840724158529598377730793621121558924116942616705077933844663372792349438271865505382544274537899422787495910818789750625033359708859661731944556506191419139389407993127193860880408603770097411088977807297225238675649970270117771361562998415975573377528959783599943715268066202408612994326051983380251811652652352004428496930530046414715611066887955577993070105031921643203672390159457475460212837533499144722093291279458260139048081521240602719346782380201367855994695251250550939227171263396628776913173066891173426347305077971750864714043617430386678492328628641237182344886508586292012105058827517186450505420079480081901922933760117717560510444370720991779039247673238903301453415541430086893263583625820121271134446391718781866453963402918712389616605831136641733521585474579783021731590174720456243191509306572977629584549782931103280446360151102327910706812147844057005417157686680435001213872722461847562328835263325843884033853638803908006260062871339082689816165825878584081206975537896724027316130801170852775951480167392030935891241952959089236282462759765684710527165819720738644856410094789571152556665112583551483278407495836324858143396812127056958469498024422498619303107110164967399654757140475962379520539263782459033518827692602797841830862829019699224772521809200962449325917917851062520594859142399580464729006349211397942645620764557717789550527659388642677425378308749012205628151905380914347997702282209213759912702183546312470807256027729297411147693008381885674654123169635024546467526859097979448668550458502303411888883591166852983019638792267855949221106016060564211575115405916850451906667973917961116554321147895489467511535105851198936825034059203850687766087835821470294704645713862129136856862722578164866777699575544634710454415126454965630865954637603748235075372166339360745545516650146981699843130165729739497922580002167453152690491311542188727181235134180008374624421264279613911699163436103823854085283037006434001505387085152072605111876880603857017525994650210727456890004457727957215721741208580631197596699989664060701079357853038587719717330601157368209952349433042838355069331670896907725728815514329251544431852804712110753790170753557146051359395517994579587390148854306449715653374194592740298422027651363152919355740636849304053682190913008031310598788997544321991287144380373177917139001587158812499446000990917577981148416778424246637501532568853417567833287600638293871471917086770232524529576425670470098857047830708841318305812319953514670900628589694901931999305267567633981653170351594206600775382523792786794541301173891671222798722800408063341682424391110470793908574315451867174578183439150078869824958944385333411529448229016972190553243312322321736127038243877535946994163167018129438784650187905093618126165066555248999765296586668980631209715899647642592700364315176974122352171869867963245473400768912327606141178317355599343255996967486301712022376157839165890428411079569855121485589861550339848386638989424205823675211896294906531753452749201706509193733484886134475559114373638253140251860703505822479376545363216735904844162790861398046894138118649834763994393041147351883913917356483926800839105106161292180450099328250312557388551979927169984738690111062723128084570586700690908386132108942861757196620678292845763951921852649213936917820249203379618599625453669373431926667223257804585406795146487187732005211229506524320213642166676710827534872919276632283769864098759436814655578179915260265912497077427680991057952326116498361647848235945530120604029293373554567646473527355356807168502465056814169253263367424634938284229027971004016023397368468364454261874234756509936517380021620874390019673375875300527514497038086863054420491510172440693355583539936377387616189653998930619947580446773343943741275655454774497882317148692901443864871509273652054287184734419644116895885343988344159042801557483217237339751269020765334774403270597712896223921748608854000499392957076783888028474020958672085889818768618735551667955181637819266044892377376262558795227087445794450316707576527013489372654975133337060953965761528140752840320779331723532151401882877122768346554254232669513245425689100776687927065640884791871292697959478587855565283387334637453438712910533245527630832081673250949004157744925167154792998656443464853865369597415605344843625162568433572170468230439345431849946445497731129494694394879013884235390360986889243458666513413798700310845398037405072361007512003249262030684792702179872466943686255260515938776965194406383761260180530965695210383007335555003190565061227835883644824109583721449683595941659351169388321466529440275509332315788721434354982912579381882963278188741576139492278877624827843652445958467024372022360892844455022516922882924196397012907120743446654348800832852707213561390312123910549711577402051795907705706592577437984184396247761828380253131681135617981177468260388945904699509966470931304216609705223411936385282761789862098884162586442217459282420221646953421874091965321564420255696832598264351379225894285650980990631275175442421020367748640940009613082721596751927851163167328062018488670560239732537620014428326559050984561628585187358689985319654203022409729317916495392556071669021768261419197826190478806143232123162215867606434835014434509131167380147836130717974271906096879720496078098240938740799392454041914937171645771705454370309012150219248040856332272777121023832143230108792685922910747726084338504887394000103076102586327480648389670308933128165290682191923652028248765595690345541577154356379881924040168973426800716040171501487326660482504089259470427675814695450425657971717607511750594567176746832205071165652199647232456226967640420529655185158894998100276846254448211992244728407476140151708343858866523533419139244810157107244417063457939378503102012587528172173474278775281149382046138365172357580463595132506291671644203751594356178526400648350631688831360704209923636634967932057691312819571234716559143410271235566503659531968455987394857897556295233591727120323335935753426797024994055081415928348040781024798930333852862048506963832105412480521319432740174829335245581781094079548558598479870209951989157314952138172470419827838454611747438603746272485376962954748115728383044139522858832681663634044717206399751523547560920435247413923367227259462015215921172536016819062253352204738523286919490257742729392476727441217557093393862492112425225243076002037867380827535074027441631785207923355645487130654569903209130137714223055366837240462418204082380276449021546351264544353585011858512366597442273923563770135326949786592607545012399773922791278700291149284532495043948269457669284564583835612606468643075341572930308215284279910296311327048177749735844555360858014970866131155597032362503420500643446981848859183395701378730854503157139709715451403242147593927379581034207548492084698729271634404823322593858935893665752465203480859688955931861177172670088576726654392964398609818024730868849472605288371279903190142360704611967435114667176920843277061470713353570505293706412573821789114035573552042543877726112326524463447109264205352483068130568934483002530368299669096387078041747712426430877926298815740677966377008528881632537234161949673798942774418310223499288268804293370870354582975751034617183761928999186799294463950944477840015244234670980625738668216233935031056933733296590636669436694690090512402613663209216650369572447682454105692191241566237887053746338626489964792169924862525611428632883924445244946119852446733755135092753199639978143976847736721253416405427850472445731410393789420882986057815656211735432022409505792534897156287533528662327675062462416866669599455415634106186762090335640991383831856711254784718688768549246985255376526638449217316621789037763763752715275036879849838197810539746196614145965910812834510574906117560168462781663229904775573314231780144625248918588839286375023160380125579064847975136712724601181474365652019965359693516753947360684914856870337969762568082798289662315132091761635547348438191786411526541862643007635472654024830613022660394405942994861429284044084140804111338679007585019198702505477159798424051532079128157661391721183188984280428123785678881631541062730253665741110506706301380363221092426913975617116605786157755944587209300148242455203789388545703198453848607136888550857263869099553846115403851766182402433957077075447268489180290274478185365275045619571454624766583175380086310306915633326325667226110727707609019096692769115257209046573679782552528755150830872060642229812835296365154003991855945917047890789199828422605210914270138370209866934443918943115806349728136559913960810760091191688029105895170501337268346341221993206746479963219997292564162061024414678511997527123819137472462673444493920939393178825505598641696696934402382127403024117868117115934042463024164718864992768460571939778084633724004432580906191467249301394928438799958872216012190514256030775222820001087622404584321763856899189037486300878340274411742095500814347858239541776163216066419616432870974921704462794729892529444904947889676985006145219132767826835325309560061290926726811846388761960281314969549111282582774853224781834828245887395781293055881153678046850822643690691354668066974590201559067629192164295995437285010609342652641050133980626659342658862895036314871688626786351818824149025552310703116518813062456486812604359152413840432221293566987164567717186644448584167501746905034857474263900871777995759079085355089215026737501626672377273727730232884611470548024318616823732141852711660676089980480125945289879229240118406119496077244180108459295677826146328144788859922358962771269679018673307499109752320112173758226234263920125283248802643047148000437295237899107514109625621691262887631651812369711206045710446463369646076534788214375770766352169805706266833821978353749067700860262301601362041160611471342183695810310255290619273267869385316421862235874202502441104168694137678203738856581680170608231792019860360528922447059970251790575911540116476093349817759412327599127886178419267856324276971073858726783055541637883909189437082100327771213978375930229910899643933468905886837986692995260801734416518752084180950722883894506103889214806344909352799039096194162144699071814517855891412723552583991098382676593594687602993955856934577760650893260746375898130425763752398314029592316453039245397240164526799230685575561506370295055440005790588877200468349310717673034153735486784789946858785051970777284313365697625118127538291755380853896774362541731788331584730354870521130383133148176141914418328869113469323498927998006589095869920430413810324057175681471455182276330596328965585615551637748978568759582106017678551723888118997765927983841238442937637850884152095093613472323863337362473492276022276232486982400048383774650377219622312631910669117763881439063154332746358699408457995114640845640691728403021076927566876860995936226736732292971207101859060671105731618352115174825897469367637060539141055212828393310052565635674303700235403852149938878066256441286408533152035139680172527874525695794745255730390230665481968396647220908908384415288612842557871651056018670712109879248158204948778202796047388460119274542415388458394992214941273378228427537547611605341859681585250997021310804213954510886332930813598654455216862918934868345619907276490040477797288383566066512911467644955850744290335964331225537195928884930026957236946065848206802532523416996468141611864544230045924481298277277125518675597626003096288400862260266240557348865081475258725871572765723926923766729253094096949955868693776828814591374017622292040850003172794762501944849732714126750320496695372006663561533691910701893454198139868997978882977399404670893049894895866180694971025798732474382276565000078276160645180846424993349874785950823693765718903510853588963485566626368950430878238796311975711141720103256487205714878282313700403035727241473246356498670055186376353891347777200476150473860205647178992342376878661730021421634064300775807671364624011214226775839876289432743906078221933843616710261112959790990081886806477662563871275230342847396027833038621495587171096260858262249935664876098820219275450836022650440438265590109033943962113149435019607828108770046680605564038762710116907613073178381738078612101121819445785330578596427266004716004921441171213640942923247083911615375001975231711841876141931186850470292011227198915568757435477314525728872222923288149426643857770145163926228331916569613761127270101300537162989511524688137859313816383969326216885413404172827751804363598758066493993880206723477051615704145656722404311655252528830881381106890799366757984210685338274667854407901559131852797100600801462638286817923348834980867988455674882110397801973015013238257504096853909744150071819630548627925131137498157988784196020795076547359360188003586067104917192963618203369907998930277296509225674381274756063575534761228214759871827215999219597213161242872687931946905000315730260830327473929692408005197516279272519598638163251197758857060479577067334347075857714748291993959471243748215377485578072644265954289514485844407385446760121316698792509702517963108457122696367671427318371635413088960907904719452126047859569657256988342324601256378245654705050935696438820385766999080899823149437453889788114175967828349763354352381405085506715910596552897874903496835920772989665300681686232093132225400113651715334148143474900833359049024498430868934825055043773195478734022051710501855003944561428770769897741426830135295342939678024828639307006507144006241143972673775681492890984060803620488710549988089872329033945543890476828861218919567272567817709541369192283212087438839209447557087398375924202955827235224877300188796018896804352893025611249047944762991433929090638286525430376165624472812697455099227236851591046746397834632689817480790336822739745707590629891003513508268323790937013947214460185234417873426888130234348083818837254675164086355599767514480867183106537991800016079745690088096499832857701782971100573341412970607809984265962537507378770427345626852622380803432030032128694312329932018667116367480586770287900385238299086290167896531631600898146538442454755333883852945111557350772413665930405773719092969207068179317687530618032456094897752314846219300188133234571724840690678355636236859718203402568097760382639315556151817213191742608370493379946260756990610295247354681317427733175443512939202666028395621602918514781791120385163338712112299020169622158174471745195401832784884913746693968248674078196421324716283217764125924756152103059792063677210907326163184284176407349776695418436893628125206649515621867030833558853927193488762102448219758907802964383787091403951719770883985420323441173543225160181012111100956606552226023105487427236377510578575231101392952503062613529416132060559067062178251888684564528454736376549759211066775498848505042362219588944677017201740271640268844563671509470863425816577207881558356074290729806011415488963888357281007804792211213934683331592353482344616980247502389102276050584242644617519613332036260484768497003786934651961787129569472911718476865775623243947531339614945119019697673358326051344919664359612471271542083772537301403264258145783612839205346597379628968090470506358657622847886316927240987986496835553665528039161346103816273082848763296812297310257753234300450569515628548930200710647638158564515772993354197236736096339710797428499202818322981152327108325836008624265911077066794975697464176272922699838525221082509903698446944144663000895289043469724705241048739721094135058618049977590856782606862524923118550757163823255769740103870390656115010928823015212646332953628179432368725482767190097263047568119418157999109592854693178316119409389314987708820317079321356564361777390023281185795032061068775533320658369212537298343535630021550313267625661654179890600847768128074193359672062333977375173384436180076093896720716286886173465354921696503974738985327416814623124266470755932130146800395565257700953812744205768832954783091278241853319257594227525353324231918370741164108917216052333717139715001808101291066086072818645143204366020846581959841074817713975598410871941570580897724901886865909062721975973268424792236706402149624869263975912266830174451189478541073164434699861399977943530388087524286478338793603360246640254832577870365999151655274647156589298138368333577763711369931768794442125892832140722602269665913050364698000926025060214713006243788969488525298721077929748382860993825706112189781686815853521159679165279668248461149196973398210831737640807275717090618371156878692911958785266630991886455646975000935478919170506694954115291058641812874071685139218586674213808862841037729183288167045996907532257002586248486651082399561781137640196427449279703424511617982581325407221071889361204363435937450700951120029603467533652462642045136407126724436323397167229537130153403865317226885246726761634901525218454904855742695782465539148104125839742662819630345438740610718304041080434144469985711735510024046002857899301717647434103676668584013894852140954860142510414250161309928302796437386022778960616450444232977356690272615859569652549955252744929102829974050284595235002370554586921251869831235732275485305571406565272770637401418076011915053843699679150705985787418242256650590515583141766696603846268549073513226516561716790554874477280512982752187003508993710269901880810011764751885250955964246345595726774221709291871492290655730063347640927821119576417539224813580548427266874581376318372707065741146413620738304365145064316582721055643294279599462206824787815751390657019145224071821537741864111162628285129228846201314561655882163857560106656286435959795811898854690131566927150257600258363736981908602426646253645719089625943359341168435921668716339580691488348178198449203623591596034773327876574435520632903452500888906531656134646303042429635810143779647523534603670520636418071605908183848475742740297827355726064845014002614440674372700397112506638649510496217731600416897119402988812855298159429521496043607004337763295314409734265171316557651331534400201015854069623037518937900382656390942793983155013089366389478740085519131905646604557648334089959143254268372442031653116218110594397338486846066475511857490748427832109218165643030192349309163948100321220359522527800381238131840032133662326966569639437515587908077206688420433626756295911933829172407967087026555092263803427777951735883340232550405304699398523029020165510343745529930304770134249654020771290693091163448272624188692571481256517807647064369383717653348459009628541141539069912771424712267742114126030509235782898561700059944796426086893751054332953338328507713986055169342237913939867658233984947700840289756252370125385214769342342948020547101216219344835845947549127036469879949868205189985790092048156112228918657240663936622944984486454167265931280915744718511095357169376016251251369280906250707700183125691920146254723082853188426644251326576608888321726063367494478444699595914839271578043425918236846979878233173647258627575743152714867905601022588397427339111249902988418453485852729694705067250052037794850323427478336236140575282417552096906089904742014138419571978562859266467291662580770952150294851888067474770350941272229481662791323852184308938608231731881877853703688900222568851685264979376375068427911084952675363767265698486044947550964541533602972002276819699950417525952396903614059780928516801713611083035460375943967114264296578518910106329451783605886841236126161946643770086612821715958613887392438205028404290456461105263012185574003165413753992737213425285098882588951660618049741051524864277424172607258474490163397875043570472664898251638562375591338503021038373503647356569677737435885100882396775653002962357127918984493067672469511405116012140769779211872225934091752662005204583048838321225931942832281742912379902440680279167637740671162733243515965824695159936805231870004216943809433755653666587581974876945374777358814504454009186863848915548377608319102170848691832432133042756756204901384651126048912348095192672934950771865637083361170899163945516851472801581070830088771142082992719051246728445858506618228003831301360132536007036468544297979104188115417927303290981319594856314219868835713079558505466349088902284456900492377320976245306899865175945689413643426665750678570379003043448203685326247205838919466373619236475554453626224996154260061373620614687321737023273042288413457110378283994275585084332398326216555673281931450679593829497679753290068103515947897586490434117523388441511960913181985126844845826806964074309608298698818583915483400341056807623924648084098316784124414997524447349770579175728216189493775399172461358363171327306273865979845137738126994942530358286111647937642410512792328173398775889006019541557930702607219440620652489942020754540371979078474939086654997786983751663121470711429929672282101514184459850940998158862122740486640392773690957144037070336098467190749121200621792744252766516682284313615609913477273546909802847977717305498000660838815292183324660280941228334359687715716000863221505740030082711069481272015451967212525766229847261878662295297896889594055884614269901695542320634459941060143627357480462423548359483183464804985026196247643997565885596922310034690212000998942861054082359413234998592512672660186483917578225038814383716609104383693009775240121793045328244763032337536125312112740411072549511082398330136490711691539717343712423041923792141094244894365449261798276717507623223171558687481030000347220697268897483908104803705162769999618638194392041896479958204691427246889928460947148329288515555089852571129673202803339910579234724812152749923411208437913226219909771342741047244682858771993825459720762635631147869884550933002632009395668319055305181669749289871288949822310596040035618331983886176200588876391497959545436682251113091689059366306460772477483156910560483714357822033632021815476270631399817223382635233528198812715320373768346875949754167831478882113549353522936062626970603404342917112734208834871802638948881301607395993477816249262772127501232220854971429718846776024881737803888034983344389763324462513571514516006785235560103194492759345609791419224278272955828502754225549328132732612585483257531527931502721431028364459670311049472263959679763410682862829492456308052867558219419369609945357691186764567614142120242451922787352335251789422914335009846642931416660147073561281657845318254456665713262688156231870710766669211613077267872164442490850726444704060739432510662634365535957610397194204650755251459389340447967215074869395524413246326418046541007511727883561150756165793854236892441288239314499011294551861075419584049637654365849596435234674287411000229449526800606542785797094201627763912062910379773045119844442371533939354658171749036335330347363837570318336317911655201684845767778151349848520619400986122270027255889790989883393001068984682403300276895204457096040351032129757486862897683062569420397584719003289239295773349635057363732479364803244379498287628885330904596254734679634780212987968032173798657247749233403137579143267367797629904018336976820742086600169434515805425339827161750667655988478210980414058027188661218222326227569773441301723142632701298322737815712568149138294170960162934436406755009454014289528583874869614467412006219758920680337047117250159822115712131227203999501625500477764760144284786296022526488018548029647772723088103681460967019479883064845970166698406670455623777725476547137525804351236738423433012928805053253688679281905089242960963999150759393299233424778641046288316679526202821716762371404133026879739606024457773335740803879301596090660664300281125289995320532556388528942241555591697785092526707167366329481440841575354387553367569035790150465353164723988968904551819311848807634280933864698459258580160947219350529370258778124213966677021176983456006905111461386427092271470571559832055163327413611846759168641343307213441469295446602642647156072042987326150412231614831589496224441464366585394672065085390951544048145525561058420421730068627973995891521920365661488752303942110981060317794125007060586031773075738199957136441668141056448819682435200838036763613133396264364577556025767066525735550236589335423966778212100506346811186630959088958399986084777968548399308718822531636733042683754648313988715836182848696706156862927163638690423539623190553907063674765155538396756468353661057975982624776639070356622878702963572932776460395918717776389447034984705252168913363765732648921550282366091080888720121845505628431385505394410075480116278549820810845352417681992305032771950377820229681789491181611354697735532732988729736881608012693632197515431941403050845910235821936082429222146979359505630637205258811636443922778286430497375034155711907967805855066960042679634081571474543749750589253810803432692878734781565225146228743877184418228535377669244976200482169862141227177523727043880206626014280075977916002474112721534943698558549611039107498456710314613267718126901958890126670495143923637161233486921710326717373606618441222381891371120688679845740693858009513896250405660849229042715319745833541350784251519147858765887190623031751105080017599571092462488358793131624437943570598783899104785396723488535705767237332511083405685476514346424098228971546598399746047768916297519488316873649085670654593489162666132071016817401173769011707452760255209174330934102091189623979901351863475286844045242642531137485870623058454368334984732215860127406908302522196740728444041376957945390054372629738046501341704811578060285846225822770731144111490314673320828414024988594676869601833510182526101532512984150463989040665453301774551442256430120951948255580254444503117328504197894276911804913219823735540118035533754022816790169792356692942824427300300377986539269630794103103265113359173130261316314400067443960330570677587866061492902138376233383720634406943728826527486496566901794845573638687834653314143428635964042507491777052305095846526112264197934306658246029606811075679077044938964227197682679471729755072994882731508167175388309799028978052486971018209461611913407869108136631457008818688878958755751091474357562925836326760422544395711887596306742016389134975134416384110331748468359584829234751380837133929229780767362858683320702560230001936608464573556913985811599365633442284087413481316063526370420516031037655500039767703857906865051985298643667400929327933226598896996127435428853324264951478101357002035421183269762766572089238944080365127906952666976594204774249251359635466209995724367517682693514691147039670619343461448125279318806521989021080203387571417967862979407398158093964684568306825126577968087338676358257780150341910763336496410243968106454455819051682745986272102973351345286408304776978869698893110827940861539365587234145094617850923410816731622436914499057670995233545601942814663994124416902422507343198013636858477636050546509445671638893616779502216920090586158100641807121452385983947070560473152793543345855969137788932232790139894569652200049916007432126860449206273945245421373991693809395031597422937233416640938980892544081526281794251785376628773883562702814054796863123158675193782708971640710477556988403492403157778494435370784210985972801080086684546520855115960717492172118534788164018224221459511795999888416880228807426618721856911712439617299920656278719488925827345433027070226774391031329271014819277953121198311435454849366944066750032758288851991768955303631991390887982386267502641857551916212908554110704244614688263321871605607108533086512144974181015448297682435175102852127459137820891968166431880804427682906236681609197247662478838498349686824262764776477965072518527142147597301735248569575604380173393449772498182505769849999770058938173064472027025913977710312608666204407195662670842296996380275208238511135673679449835062034684183552539357786664179891403613704427441571181220818275361827653786759110465851238821111194610604291846337207911648756017043031954583832530289749104723109651133157013006861556581600213337737931581189832944972492386619156556022564624000935866591018044195439356358177579974210087187278836074444991302300832497151822832120504124932430441741051727605267767761043425128417050797270812228611776983550624546585995454616392584594739242380363075770196147354641659473160149006856559164774685057486761784925893191663287297005675622820902747729045695876568293381140970713145749997982079146399569062349357255649729364661965154487673617352885857574238835991826622658013067765571467061150219225158518129606581666727215899414674288684205380872064711554075380903439446992353118652218642239972197044918762961952158316908957913002059066894369368001695698409964346815393614875155013765689391290863848712763292479533735486879172971520814663322402401240730849600967527348978744651218858377182275802869312037857101834895226877322384355308815639293629506315939314060845230279174130471717138876568643952906718107201684698208064365544392493900922694839555340304528330478500222846040458142781222148924112283309186931728916929238222524353474730679013886596738896320875301852695977470077803670425182024724072723487739538588690838905075530015792792201454926037179980687619295467582617306680582265827025087254003830984581352132384399474156134006086191790696282372240676922696120246312111783133866560234361914069583978665458417012206584409851104031490937383797461153171753539383522531449820339344375987141422006238361190472979327465369122163723829818788728407527931469094780654884723820251774046747293428368040263217530523676309552947939286685023036760787646325882943223242798990153870897681645502670618953921032388046017042789044657036141458463425514324007750228280364167540570147048265061500465383025752810912790948749918404333591147069597251719572828381720435287067866361607712191115569619107476901358326859595091020172411934189766929168180553986718866857063817306274284576723696948625509941006211275733870312983483342690219430884142645794935487888722709824522023424576841582522226912661794134750104984300087200801633542358236202430163327453304245143456953878291177308411089933468567055078169378308383872113645130753028571042365918503765258453061691664234085895571621683867687582488141090722976901938697090714848971715730586953198811186783281502680852453355723082888691068630544487433883432753996316914953592221607446357251181268980295693775914637345242872102013911841134184209720701138305299921133113111070606692294252719123551519220089829629779860381365269866840681623587986104245029429954758264481131628899636909604402313175362760645058236452060014369908395640347545938172825224203622625297249063416179779102111455032462898765355430597859340908125123543656988168340164411986457540917568836413644839660726164829989483720630099182128093514105234354934584789780246040237585197204352627990025009399254906723298525034245299558609040773430496990353730756943565218914627937644922134598116597544098332907941251281829796730127981692602403449344526271783881012542365408125555866253158260320038915270690755785128569234022964332976365717970030001168576540106526575319433066268985307112840288271882009263476568112296148676532438402103472389550281633972104536627866787008468942629314106921100788737814231630700228309732847048908712039747149258515933016092277939079387912021468021773413580901083677508565290765692684671719131977122787079436692071245114059025768905173392693337980221168978148681937791769501980841428411603039184519525830714798979587928891016310753921254269002422101694356562409554067992060998161445800570028270174823918440551524408913377297415037358198307150911143759149046579375249444010069705885563234894091853186122265994066306928300379702617208242832105804945543924175395283678930741840727441101797062704468984953180230540396787035021518893660803585748201244540274262861718033640413670442876437660779198009702401707017807769172600896513388019349182788088407436421088446096769176934600850365380384087600419759937228989271485643493641521360675220255732888844861841989188468692806484520658659642561282154783297671387569765321278692142479954920913808070305329044323141556868028628069068047894719488745169052066034676126964877758936006596722322051750936714268032454138604414718851905874621496323382595006126843143999226140177289320776475895579241955586801298479791295960408410275685414781539971011827479665251271552403921241766545240502833818752140372096349236801525088419443643908461901954095728833561216518650390137142377812075352005947489350800949846200279915712067447246806837309600379507538824300675450489496139037215041516732425784540756822127538996386095442996941077934558891506630953748821438659813536266404267442563489952197803257002638802558621668970958529748793066135134096767372618425356319593314268984296126228887508266824078335800014062473441843970285127153983736738448856915067302879926984875307994246630682542034700749817300075149391152452710794596609467953090566283474701180336821831565124927475039308008807116003892008662186794189340569815223110395958971589193728412767293859343727336001463426124508615221832419558222462206811654564341999153210516664362540565368982984023641942135796592658119096839641522996256867941680745119556278460163967543931648949729044522368556164210210704340580231660597068578245892721837099601135630652440855689201846568942204690218355768549431369994178520123668104198031107476693564241986189927853333485962952334695432612198204675069480809291181434253339512383691340498133734571073339062189234089506656863807903679889291697879767376299348221253396224339732727958883824934934604706429622986166888049808654082576900526246900589396482158312175332277066010380741244202117823892953723354756708770752643132311872729785536689513335560930490234868194238016236999115941896669676324436510719121180046669329206130746513798407448421400359882483272755045854227125849922314956381873048615695024718516914106662126614740694544075271542030772821745508785248939312712206034638900243353572926372765399379520438054409445219435008255739157113610905525704625521806417355155647440752039858356158795221428938274409382586223997348453683278526629030923646154687726935884861882945348192966917615846855073326915109346170533071456977813881806173860860497205476037488578886945787913003782864130820790408066324770477294216719663609404306825721352011988692255836291983968488037659080505840714751623675272275616635979486280859363632529279306679838123601659792127479312213362806856699449100998618079324747987663725021734440866827069835530013292758172738600660253240451247988353934532897496748010308153245647731400906026198787898365889023810025131238290611952432351858780049982217645651903347440684105895409634545975087647009307573406989808436590106252696731970863549635466444790955907091640365661101745842699501642604571608295793677901513202059465549570751925486311144692753655258431844036730858437369675950630023722697271702725565169568557687681133369622720433358575962034200970928146787842672556351015633590444342866969156359956066914645285870245735830320255772893302189205604901982998839769356991248544363555148166538317484812529732901084153870200014981268483791239634216050636959165912354846413515728153284128902653358385977704141852426330243708063794842205862025485664012221015360073299648392969925923715370957294214403797353792536132329391575353000976751327945255304298887867114369082044231658412999285709398504835803406976675382397465293786776959842636966244423390327132423150387488588927553050351204557495172347117840848351446163109927717713380442855215525907917600398441302425605185412434020873411811848803582041364629512299452143843558937129847947290649941846107515626397795409659438089062924801986227310283188581020505315518642043328518006819513247522680628762818912301128461626031073617551347191601503687306194879512138450599311943847565915089535841415430166100390859165601705173343043879020655805232089761699701696306014465772135102668869165554727609152571691165860190556011864518395795929487298398082542705424881326073039107037305942210216126126749027673363514336291672824050800679259035437703173062479550793479693239932691248052890663401414060049463787551687789217701327891246065116961258179413010963994596112795265864251039221534755525043356792804037772000947548985334590668586929874032532733575078873007244572829118929653443624765379403619454772602045594830931432727469947603347100020103059642163231919244939992279450780232303506028422702916298763676578153021214456345612895206615775068912198022386792546127555145276314059787437472096341651300034552167642701250473555482238857571837054536804936223268933114716750274398854112617213148748480044313315480442272759248777944757820842799166476624949271498574702457759445682140169385010934342693342944726840502950965067935861117290718896508035394948417069114093965850234966111301475025196275905513662142514191348552228008198395049298335989474049854946399619962859359595357238981261647998012773530583329916155717155471516835487970578948846679091719668523485532991586112432778923332333086956911336826730623766099545843040403367065380363079159137325807815145851687181475285461497904567548887004504573221261777436778501676148391878451145901453175605346806742416222304108583047263431841676996378091570511065214015465491708499805134447925110260287991085720915911257154052602644394066003176793455136101152794946528899193378864500874732693642782102052831864395392306595167390296449526418770617388408059637127005447455998938186333584315052925024684499857914211690323057613455424238223757018527960309989982891241224200482615393644473707172635397591614150456504730034844527094596601631235781688265522307792656733003547180531681603518744033845142132282434649263901394877401890352194435681300072506711045117055952400740352908088091219260494216372515803592649416541774515093004233423682664589973455655703821800743799159530657026023588738212251620170399000569968102625988528247817652106205675528794225977019379652909256798042820306571003407524579933571193143394033177780185871251829016909387609199756877598027615638206576627960503428202759772464261963847110544826766368918145008972754876717220100387570303528973088510670459365398747865382462476529259482080423421582877305493461801514620706670920501755466403620366429596048061012723706160478836525113883323631518100002109678338668193403727299712296886774052057095069401403850729895010616947441992734973653590517009986833685978450988657351115049061887617608068266092361523701628591211016660997361945162991504379129655136574393971192269578281098316297250836073166476514113182476647452062292519389495450275102189466226387434622124247551561151225834501442365664314051129127093457463754928557122017666029244827989924998944215794528456155731482075596504762377128249958152658867679550388210381555772970213030151512040102232785457656767997711466403889876974764516282421779990183366284698002294380594360268600074495637692752079311670503573022101994035433396267458054361908688458713499160616319261806628833123518754764411502454498756206058227436218934240883138476535060661916433578466555557310350945180717817302453635715277964445065257876932745507984125133217484269702710751086018348050122867974089048752232891957879959917612630085931149480708946145209322047759878407234195351095769015830286783867478749106173622102259289604058974300434357596573328440437362636165872759583791938341869231017796954247862843126442385853510859177563270050772404175880659563402655658713336253911005073255844750310338539058912620602234743298592484954040111193099925572022823958962224091664494558631995850140332176999415809172585652786992458002946588722301257247225287228101714078703271274351466893521829373815084069271101667494609396922722411260269469147922255289186474038660508757148652488799772038711542721637601086419908778281465989294799163467055933159117115061407318845734374452115438621669325949248069790264525788196887221826391441124572113559686233226500177588503378950362158592541935125824063037352757640453474951174603424705275524757612615776457788659383988684098048627424880961122727819877774488697768583032237670965516344474464894548539501760498230221790267176547411713853933765338159643273703103873366544291443860568370161701870542362357250182244965688237362949281453687601019521760799078052506400594703881726241673727720710569905026142200147194198250285730026854184568978671385323288956403318966643408812392460342550574722023115874226278258698708932671192210693677223290086774214729691972091256403803104562389388966985034390989004404818490538041898580456731125009218229324004695847558047454608739514892894732066051696394849066192917782163520826058604245767652730324205468205166808499107645571838884638722856591899568183369510158121577002110086133572024239402110487451273157109662492692981310494043915735485734238668951338832139219118732660734577626408837037589122742505529515732113208081579283943373849990137059816147330912459305150915931401043888180852517412436446247019744893500338246456165561051643910087536444987064626382752848979607187406717139815774275615068921319656901943095885968628970399367814932391603711509147188190041837618570338277104896206115383971273656782769158040023681329748254084707738091108813161114793276606061910943500792197407924025944064100025724070031556443796728226394156501150301806136064148916998062170941500998386322838272451271510818141895873716984623808681621855153582950162586769672425027142425097180465404313503985178456696399574132029132498916469908070794033527919231119779876928705621902632051052936087743872230588889250936352597871220144271408316227406626417119703643573239750946979435112081707652921354598940641953784413059041425820797210014870893844340043809602706367743451416011886369999596459558538777397303035729469244478897765594406018695164665091872827874420936830281332766003316221102155843644710365138766004919810737835106127586228705275305515840932002247443655255967466816306799793595504561645549516025635694207294668990653398143640350851105445679354187599453141662124920331450099139071811245017414956543010688742848209118078626209143693678834285793845148792726389523340923555115039462980805006444981300054561067929564164534175610871177357302851600367509073262787967980387579500336072452105962578672801694956175360840920224635966572511232916461021914419196032026511416729314159939048580839949359668779565027687785945901103705922866783116215491466934722294633474037234976679334159647682076540456298586012452497421709595954834514609817152927271400426118254923687953506167871973928741865391558905279866115929641884244839469213498586195414415421106702680242572260803270516762305630522818355981829757126273726972862192596011159901740554330831658054477448011383408894652296324873377172657249262582649663283139831025999384195576776152735993977919555734842107512025021795739767512386984919295782509081653756727128105816137952871561944207394559352669243859867872655580627050753138728714400563202217354681711519869665628091602662525227686235606907022269144970457193080204859766782177656642985310674829894468477916180993586395738922880286867081621785369215334132085386827964145972001226861733359418130624101940116687263770508619594881108108743175844118219378322327353201731775447956837180688296325152480468189711435243726454178688961259635164447597088811911978073059943859660189020104417468268804011110902101131280642173991823307283813942677073687231590336614343673448656337229465722874990441045869843897183619788339064907507870694521012950150610101542048336172979102351058697478499850505282851081552662583606528417094945032104358140170433794930947366754415199272442834595998193943764411319311065567749544060310512330562871894663711075865257788826028275270499757215889206371074174716472950700282041047827267762381894721288178479094627208516206794778139384138098763837543449946014728194387883392350247074261381395039617582519453479438930972764333134861062021239604880527714266537001451371388461178184330764325731223603288063230502883469507181707779415799806848433616471470693858941636133518315447907861796989727848403738312326311260456957857826063901561415651876576673475399369285734182297021391337825777415128332066725807460527259298144326171158057600419815534915065053096468782463172851560200560788134739311951707932401210244041255361481390012808157650597645625729939952466042080863588209362054473595305128453642932581363604366157894488845352202257660336761110803615089947613209277893064275543933069974451094224397049111163209530387774000119520079811933194405111492211010353584465855485248988712422714887062324656110219592633363456368654130978615169961493403989914281394635315779222717288101709294826531435032032394223486423745440853422746127735340918950008727273994216881494133731119525622948156017167458631249503050729548193491473600001436448337366166461339098307048814549672705479305194827897086286238933827852547690718823305999104315506450583632573044540467054549597001765480101168039274045304345019673527327267418185493908041797462319608256011338137518150195207406610580315645684413322993126105549882092163273977139107987996838388679752513948476769881888590790665222360655197953044076181181924984192136567974422267489673063830769246998592996831491508142417962112416810252203794802531853498947654478483401219607621573598258691535771751287088956592862770625692980957367270367041237322475802293469722939878178242024779417844235105795003867000289140898142129049041921574264347135953341045845627112699108281351588759686950020935317752744629812001877624796006657174222351411018902725548789367172354243796121532629035584086146569646294948085229856325040884594711473516774646085180387449845752889924329014468265183276797613388354891260885240979882026150427156967595174465997125208079020579622079351622712098786162277095458934813768490151677122254541496681226268140654662029457323613514229572899889693155610799760335021616620835412865348699318717072541776177485895691712111282437378694860466716895596047043463809083201377199214814961245144043018599707877477642918093984191702036836134779338138961114195319647708656636460555809888017970256216124903230629711669402039186620672121602674848692519427768170989065157419136878842548964727050277815827129507507958014561203414939143042933971505666089566185537920934863903249255992873148085606586844526512332400632511026513540555480645372444626962985327633051937438602126888644972190121112702178168747023807319556646536682948089759962398435602456118165327568824465178738196479843210999199803616933421145836770032200252629304441117812577808870507430442865065999186058334923340377312133586967790532564310947212577130973270510119243623333228409480435132062233527471993197243826457334947456291814655184100880429622442229183147218394124392960265689720884461796269403615634681304739634619701673396689222598000575256495566548595035807553544672062884163361013616599263438712501537824139793312747766399611457755310247700754482224497813425500368756467209183793432514137311136458736447047600010663954549942372554396761985008509305579224912206507514697434181109446516385828985632763484305427516299790866522426978330261628941870218846073203579240160004189738763566695065390015604628895540509351000766768969055938749994147280093407292700554572747958363331626149160560709816508207464386603154495351574583230904484337732518345238722703993727030071333000822073556158038598428106821472919762930177557347969283366568384877233091170250761706000908944015335253872084713695249297715732774424228050565142615981822116229782617949351642402130967290827102195680285400626405862268564985413422464178660983354877370384655748891723719578582745235189693813844513507423230353580777069789489287820466732085803269079492961897291027651001492016778741307696766855994914591038787722581983071053387788308159490525207215216503819462074874660099751120349169055867992958159441415014429286601440603983388101703068865184034730621649094421924747053954107691937897599911013354630284370360856107906551498837003523637299758808038598357642709296805861001899942291386771860304880117302218458047165784431400058733263217931017527395987694582220446191148196927480282975674617952893751889670873529015441826248439874869011049531373230517894739917494128647104901398385963737977134730062506398190124662136573303694600281531984508677530301705165994580773185154990760460938604082474912336001144063324063872031743358834341817530220649181282902085230276504363506955777627623093130905985050066345209198256573157911798786311064224728379617926991558241999604621367272703309796885026546730159424420002411129562081515716998226404628889192587465153650609616705856536959436089074976986074184611344638588373675625418326017017648065194580332032593728189097655291175428070392682692645830760337843268046122020902397594748899592999996362937823963216072590372794988316417163729606333758932874823520304852559190018606642199103045866571994931248188279566940670385645939022825550245929237881096745266831266843057847898553271544545082830829655415479390473250952476146983046596065480796000034508183456405515365025982659358319189330461325280990259543414223048268136757419574317796456823961886087545197248741199689510749648195410897465395628246247669717463383805314130175283236361744853753546927260467796343234597413883721109727992023857290931993463804077882209592266249080909317567974429114754543352674535608333426921141776991065636617958678325713074628693904736636322013118494090698434423886388470358860537865873486228456147316278219394071058800132004993543786572195567391948611077748330650555960826946104859007428431168981461639253997010185839417804270608431397277000022044540830792880240277934444355039305482317288942614987142787240111030367619948187789147644416446154596155390472399279419014830072598290868214963267505144968558135100811661636620606810870553818037303207285662150404159526598906780928839106384075425226418876966251691268521171642907034014608727824888842916386994385736276592238126754311205045501539928067909896716259213164309045135764148231026687174171968213180316103060728595644344575052816425264810881264125374291047129196478117106201645929864134028666557286925623324007501919137707351579292355052517393039854987215164032411350933762774498357026829994532448216619111256595956733142656628544537536300185004751033327048558208591945012868231085647271815654242802584929118848434072222037414151424181746342746990808546498135638873522714831367117968054152969360035808114738075038528314739866405055039378499538300700046441202417150032007646058523010643947973293622196018296888725472473508584047179200625231179135675084562391420987866793897968699729984261648187268511253504629539046565509476696698516545804462197379328447005321047300855017413222710355417585773453705314062175539124486179653352654622856271943680728080298955115359716829343849089417060944058868565605756453177610057837082762401346257042946728650569717295498073129558979211748733496892121562815368194666411188670377344086480599017927715997869440794468234020741905805413190963157439000910271082956783842244730070195595172166448218194511645997009894236485372254514372630057169861443457987149785210487993154553998916542260851876565681882141829672109260552742174741360669715687787369958769843570647891495368915930467596674479172717450928993056891364345692667959199073524762436693000290464741923541532411330763831322718052300118526887798691872745304625140208909700800745978694273360466649339656508414245541771709233714725223359633109787887065667891787206321907634443008998185267238280774255540050649424700168420220433477143650259535020300766693774394234920094108889308718512285043598231812373527387245611955973336904226318158911870570747885793292103930058343038667746855805960841067826584140460291563610341160605620031147182037589364517848522793734043440623595783628533602770567714284005326637768569801876506010836361919540137330189179026237016634628097455324692313464393383012751331844507986756246164081547411710583811163496284080678266609839295357008345934828688218115138128813550939261740766431568112623773188225230783570363145521460839107345382551130650297755033181480925710878217179651975749147582142838451855656469290793709494680100937712659247282473743503236039225605503173568542175024177678974919477064484754170067820107923187193899078427360254543206626062769822792247517774650614253630528278410093495449334991036375178746433870222692408950483568165719027118356578714822863719189451663246601139501313299550761946927608278117097593469675536916168547744722454590423514801939805005645092757925451950174882377615239970706931590012363227499724332260930810436856250077075139491705786038539299551689853549554185917770309107739828005540207544938257598636162209254051994077955478616888989078661381237074016212712805827937327027062759206164477843344740350300471399587086855029908454631560316912505026319952893181222868567056765524325265992903222065710344284824887187696487144420902683371312136121170654041011996927337531367986804825797229189976272047424953705322009374904307444173733837436013632603959655100279685454152651322478673157431580398023899143356067361287957107433884066602343041004340103672332413092171168516681385980706168976100559032308516956574402859757185667502107020169243394542417384948262912933825929506881302464089577069044934036207336042432336694544066418746262305899770960266552353402710716980492595686355097615443116597538296965636385795809513003770925066573974572629455773453084106690208701591555757028811955631694621069027384905161323647304803766762925684189350899697672780023975426450225487426615383598250379523965454417506499956078742639854049548088233321822922150414193168852447090708503343937004785795996149655711451313055593396702439408506251225033274499687605142954075148530935143257858301111792606693395723391220706153931669016321101792611386710765672628661535258141721465601715711053144440629549768995960322350652030397295553095602700353756900074323139133750763257020836153018980665576700982460496842858465626330050515949387479995578624000303766055696316554930454090987870706219946620397368062188003423516168689819362637960357826733513247818162872684625556973797856032832374326777085971738749932979201003793642550884116575616912100628805062174840940610112162681609928111869546547710553936988379016809288748022092266782879261748697971823697800415265073890249100693032991919012302810474709558018243077643813365955328670316146526365167109256682035667598375839507181461688488870514089151704027478412888687481946034456606001601233764497685678654053057939644965974255212912017009332033738862001943820150267377554465666785406936305613708611756016168834651171740126992652781755630313696656557189130852493665915178926711659063853348111341130498930751631867308940112187655951119056482855787584447740143921555531032007036613587768910315077259912425541236549486906616473324617358390070181787074582141698415461517730857207816800404456976116723697877257144811813565174270132814227980260207712658645595921000721568304717504805068506679869078691754617413233870145600566514169981000141675187543836016030638971194256954625228152613183927652479704814065644427669198511040651123741995665509536213712234955267673326332559849052130495496887633399547461153919464175322275853661042360090677181565804023565081489384818272721309429477589488053174255815888974282819185486163761908908069817300916181725025098905712303793327168745631332980167416278663584103424992373284921453696617145144329786011639558895669586565443411539737030792038340935019031694338443550955599535625150415554539845253461787904324003123256716967385049067679021893664572280768556411289520935920948160171812950820018196490964892913342465925835630046900094304325516167377058572262661090341470363857578970757663097057270791228030507615870347321091690185008385984293127695161412869361174119070354525154848957257259477615084041981136372848168523641885762833037499006096150680147863569778504340224069499416415557179458265678563669885771519862326817064470036129819748749663408789259391033728081754822006706738025794543091553597280509331771672072544901036772531044787613203921506802574960190820379248994978431710904969472310316838866794862169165964422974131996263526045982559073606792745729555736597850922495024373264934806315885514445089207974153104509347351424036161889716487091007115758031199633412031095273540970252659870525345771708097149770258373009605911541067279944730046593501230909147158125452805263379419402633820139415504200004149837555375386671784551888130161630068906606538469819402069062876696951089831829673449366677283031114576965153007060799552182649066484823410244284780445839259590967217388735925707718811333444600468607038723696260552130063126241860273822428701068908781598037268830663574578976536364045809864795546017681774433733163152636613066771683518879219652218091868684452556110480832493191404603758827872452858211736301404683083875707522994932612569639964293244941664553664251344048569985893547800803024164368875597733058527836422242712916699066322153527261439384824963850092967616466142139655841467356706700021031839493534253478570093517675964786373345478183090898720408097736479136898279138585067041556351005777574724566962282373670630387709950253778156906612248664029652352184870056971875534092542257912179409343331874323864587299844714638193712011932060302132570768479185782096856097577776008022061533760667463471695753213664215953925422721992993592490928256373572986184075542041616738646912379488158104532203258775019803273535324020853954266968496693626004978133040610294018114508257192284364352122855486585833010651932284534222760455755213878082039913288638253964232919327678690837707221950854077159654036458647262615002223201710879027113051584026801078831220342587088253069098318020670916639112987638821228730953477555794633019175582392953586571351281548152656001830933669182689711280064685742022036928447491468848066060363461823740038825963425865055189501217868317007585786317043157584304336084521083769540705085117300387095434939602170702382046705707329399154013310416381682109821262643567324874181204190798927973597755668363310071108304332508253588942554715233721121372867567008019858331486455467861915828063523262893100369492575019057339784677905792913147770714549303128607540142344710582805275226883444992114311123116385540307420261334099081637984899856304879774687679475503637927437233553415844183871843884873404871234173607314172929543423953333860105939416961960883917111837917827406628913502571092430811835477392352457590340348807420133691270700350218334508551583828126736737055030828402078640199867509682186175680553405947090138523546763607851496405801759970931623141757041405670048735784454507535243490882890930016067173577644069920066812973766348943976941738997435272735944221473323926687121079318593309590964069680037801065921516878262776928782765295983515506663229616808690853853225009616731302658588996294812044843573828027614223454564857188959793782389184030479436603205642262884369277855064435867019164809683033973734998528875288177029080681688696453183502359047817354979914222642217361073672620015573619687146613476200961423212640583430266817567164262340837986076270397284424720863968270378638417500414242064231248740346193872669560015008462941121779126990549972051876648256395512101628677754646155628896529134938257813447249572483341807200242379551434144924702406426923149431369525685712791513350014550843752948995324030579195230656572397082503285972647130684644420735280198847370317422369319872674928404601886694261792077686706195433974031577699696110735630188580987661475938902938725165468803628116940937098196550619562052461074008332090416258246781908991521530955482710698720561923943226936937640915390898458301925523371014439938606453422500993392531824694830654201768677675549407075697453914947843922099255637255770982573461927651532501247476522605795853725087550132205782605527862786220606147480720624480430076172528897489950423667457640710477362729550549571534957140477693663601348833824056770327879426309272059605319812399592306733582693937426451573907078038243231223980264251479522369221052894241011496010883644310545212028946639243835436462600373791886413114649771211526127774313987825617256844273405047900271775349203109758142309452583568841159687898258647331255031363621073834620699874619904436605057782598860976469837038393525972188363662598489002695729666111362347641873471268795338183859271589043066586971317331808848148288821267481222140467380037316920759733288872649560197581810183787045821350359183456528892056128213130468265022476256398060633103586849454573866600323272116332955630053132711531371975982837431642012784546432679714888281612262486385302295864962911266616773979264859239980030354449278060614753932123697195097424456519474126928285512369863713501398956029334256053913657169942136537595785797895233699271839295093780073143444602181772622681759492652001746907011639486264491140778130102599317332327433354321337668835324458069404518834895633437352520938729318062490390451652945758621448655401338460786451177391074919903878069704881140867928169442731429365180546679499388674648031899054449670517811906849820587231928619003376483054285365828157471545896339107319335225598479538302674493257684911047139319681841224911102364139546229319400545248254440071883031322219382453318166327845439336095974710900204108270031126216248175230994118296620332526639868643964865392618274130406403954618075546695900784681068112672215881723884707346876069581706157691210019678015783137663046992937379664475307257941935841839326067283748759828464917870834024806322857011888507430649853580108567831452093752171800327142413837700831887513072673955371985515821155815274267450152035130611561910214311802139960797903580405131765784884481586090943550647324317506440184439796905840997854251402737936438105129684513808379619384377480641625199793838590735714132173192093502505719193420645228123660164542621261619078438657634792334513637174704123050616511419408827419984082590705456464440231975647025195440847981573422682557535331051470087628991502700611021137158374835906332520015467733219036976822308884700804409483637028423235415804242273871212941270728701984367672431176625548458464039510649874959020917926953733235783068228919021078192815334654631126157840754219715555770442686857796548310923312591662324125424101208141415561296064559181724067900358442227277299931921777650938406033683325806216257013527628023331776509605445398182352181771751220308769542673868603887830708449557311177092020934843540361850053382220141091581197057197242430815999874420329429503956384444390206210597639708703070123894812394591157150446839688771918550432708269608515958482299888540956608780128667032531812249161193253003272659742305902355691765413976905748433787244542738728260385907698026036307202330854033350943325434230162389580970468356718641224506415623801645276044333491843633376202593634862768680051593792282350127252498459729752116380151386268259752571325067362153930659591258241569313646016936855152432679966821382591512602897071242351916373622230929394972912438497785959757668241860198266711562668441216724997011308710360878522139195708127609953595655809116995279425111245372385664012004138695304559994264086370815994198583318667855680445820309984930168112349953621213325831962422258709094277188651277170171661922027336464862604970737391870174159775217363545140455041872320809516166405079332490352966806876371023755598026694287857443802740110886826904126175558626851817884224604651049851134514504159821020145673240542324852313621469064346990705556006253276474402497992736112348116978814901372450563442221006847330301015573784510814082233671676377505121015550838934806713930530700696595281650719786606982222539270103884785556239280696328294663371048540088067185591573472693215779662248520696121826292640653109252941659610440074921280666928364177450221896554975325300834924793846765603465604187672878568450214884640239869770054785978972214231486326733367749743798766916213373807437223927760884840110385756535754700010723425522698582571265296015636877268361060960686280705869552141236511214661985157815147487940469225891992972373696224472605414026782583605263615209943456587391796950643669753715318144473705288053695351271108054384089977096842392177983597177858803216302374235795184290941815701894290267678132820258691702041698121460378281037864557054711495445385605178403767672093322277556214721936629390778233532717345139780400923434134629653359608062827106399502631525300972771279985214002738599515137322751874757688466967840609163062187598146613721894365171538557871051944786878067345188988168390364324202008088296469603060312907639362063269514750733053691749920151734113465210669697894483834115372921684420246648893989384093740033730688165246121917403684793754587771718982362169080446580776206295949435667411810552753737172832630115619505533115261249628330799302058914671333745583483405622724111393535956015924546314133304892277463675207591633721193335536420099757495854379638670364865506802167537109325137168991714061861550301322690321041559081418129458718180023793698775949709274512187260942558301302896009481063264638549193998176379442489713957720232683366760837370401023485343874125548890448994000341703110928235843605938998395910361382809846510010663182450315705985150960548022764795796861698160913779777188114909960837531179425059350239890868334348142850552760095570241005472742275341532565154023358131838344064317628782458149788637411767934259037698431466367773692588524807789397827086800594626199441515277648927131510570397965312967238047125888447421883382914241509727877678241383779402069594108343650893122768762867275832463743826117069093405954001773368485189431105702834051220932899492356922924104103087879833982250778841189973218032533192889340576846066947068872341725364509738147832255629603980324702974081813435232617596909893921816401223133987367349887543822623759928309982055617546751065564045206306666241231925877595644802686080500696348551147734575603354312793880110838398099001440344374791512127813828137406152998813448905464559051381246544443608001716659394104520652168530027638564077375469984402269188791914632743675184406016855195358951736298515274606550038654796094945993202812575170625334766837215845280298899803581672112750527689644197185335542333912559426428819258994010700555800418517976049212029249652608797957082750022123100586636998252590932805924292151391816984426417236599682283504552110652409146768576062626473865254503812991563656157578042217295381077038686520465166407727078228403637923497521387206047852632352962381983069750672339323752327979776154460394945542266619367870704117978488047797663654329198011816194412756137475437927836042698542694041332743906064604639193626587991319899167298543228880962396599619613807762812656433317535317154898809410024483211881702746984717316539198443673120374284695919165393308848759958203586488660320548245990672407054886404054185214233298152913941658842975504468504194018447001099557728169912207203962506555501146754149665860796315604299686477725881739086249662966183013143894361665550322740527813111143955405338089668337250049247935890433945692722292710493352915324781691898295267324065945226332396654215926766201210471230781917836578455303234101649684878300640084450027109159837751526333319348887248385793878081356634249060986204618666206799534197457694133914709475901011424706678053529442465543540457813378226519179163903897435904976406550477483619381011375689212827135227640372478727671276571003758543431675563350328586749323627377491072949113172279539043378293293868478664217758150324481657084413406217717487195018338542332194869664866013905004912517041695265221981739735613487273887045563594216098970620334220856509600675618294193626684584939930110150653418485243643606758521651440116377327677631057457889366311845077419569290008329228870229561692601767414389067712331884825545549690354371115374774569189055420561222317575165895270947813138878615748842190586711283965881881206255490023731749900492350874643510238868869795922063115509191087503337470779558243882394667779671551090873631955516656789269608023444675765840776799597764651107715415851259372914160089691424563911461177707100886954341380219171032668821165070459476572377904405539350039140843479792355584267135414143718447133722972192980017468602607142539007581224707104901528159152697738072938889809527703933091335833502145240102380102421081898969349274617890620359238038674194865602790265725676686795426068619462440173963909320437723059264704285721404398076587786567412570362497086170287290053210227762562884745297148566919940506839741103433196483785315397973986622115109797075805561061619728808576048254163922466221198255397332624866960142053159778526952010879937242769494056368497862531520832630115035419670944253178702120212439213932751034624403188742388402008661154622955659484636692736337477815818623101672609173449938216458872009403139994455732874153345032234940272132364695456810513328828539283018161776676286629018509683558056804153701959517094788048618993218591327361896901059509045235848988039683708755269161092579869864342522551269272054494003665772655677668490047604652450459334911517003641255178553943307060798326328287883410312110094411797678120870775634905904040413877853585357174991660400016943566306097957572795471029650965123896678475356107467917444781443084107328949601382438929231713759483134507982098657826814241918860001718107956468875292172467517994279080138613740938040318285434098244137934392734318642910264466650385429629031212080156734397138761940922596201660071700214263715796363036381538117681574114852953227092695488634617828949157130832469982876417433145822800251261137756853957294811493501965233318150674500693916658437482524038107222081428831116602397094160536187686545251466654417140709938305033454106864485526841866671143748224231693901456080929138450373813330750662418554697283366603681041483568627053268375147015347948357000858680362538646580963232530239002067880132993045585985872871324822621321075051943992526949028046287968208953953596938038293238584493503837485702406031051059222787668620453478953174147250655743467055462422861894599823455711897397726689624407291018918836008735362987536691875397445490222030433418660218969766583354340149587774648170435810729941600078084382059780676770076964672391133357299610125454039693292359142391860898978173811982621545171175823745044671332108403903204362450591896673560488602300622343476076940508497656210479659117891382289162592750796095807386819200148465765989663139070286343431634369313267941848570496544164349042263597364600148285176889746224735223842271012603404837824561092945144588472525185162685995669932451684794755664575559305645201905832946200779434615312118251189953023888933435520811908862912410664516631460060571112574074790911790057563828958540011913476324940019424711659668295555176270869966950717140240874320969899735339328919611314721846372901164841462684162588443699174481309865557493724716046834893889242518418500118652586044325288452924836684302480317083010176544165141781484600374873233481518465124123952220361416833967611705926436035466259504513882802475518151178114208868199014394213128037728538918574515458445233551462186281079385125123661339860750308268270056877256443705392641368960781720146409571765719531326889536472881598631962851736159738044403120302463280993865432345857387367473716669072411473351563901923350753394875427261576708853351734140050321966923200972068848997121660753490665793246568526041303863521351167385537489729576483771076286530946149521217723643303514845975376984376521437051671702134023267148559592552213133120588693671133717679083831012096828551355392616208366590893006414345901980102105844703340543795906618441269312992236453006856132539437967238506123030063240317648941268732794813068758270666926265940921992053272897240083503425979101723017578029029468614078386373456946053688961751550696203938996622555766559940599561342238370966175981412263387999800824782697036817228779135879062996383073130956868934262883245020480959836149230854371682489541925787211362627102186661353551905043737626439597222353987194864691544345544123859135657981865059888744573603827657367787799682734492478600323062794423972553808596315745316607380853887145852684143578422916571263651988175501361720912845681293978438438274000909502890285387551312880265825495753836941349116032454302651554176486436936901840214513708654797486641336451245594305909875875736160177869120157386440375245926861562602706018164348952225697046762316483304731655560010706957196603577168054264982099768991473996309746670634090875818656366459773491003786981320142865275922617614264639768753558782096085590755127721981378366484567793488011967507525911906101745723376110540640559877910218033441549326397708252630809403635406445976233154233381108083006587649304046700538977740042372287761818868355996435877160136226321003835384098973086248366745932547759978190111615374828402140557460196607756769355386901099736670780196804429403011995468863590772026464190441820529688942574328148373136280759659194988304676477168605485486159656048900860675800085143556498677862732575220303394756873043682458394160424891289896756407928945611706548213484292080383509603625773218906890987934721429427807354241029778614995112774032556397864923222184244429665246655801591817084291991511057339181029551260440627347514761207097035279691884742681684872080609602403815192180009449579106745933803644901353325913195333782663942609937430947961374336950270887952997339163130435846400998849452783490919371315430095670376342195682809974858553578457739713673351360375522952925816451683845159735673437945334349827269790125954468931285609095958311515283233990068346500474918292356017303662572865314919088760719919976786998764773555005514261323571891296187789953426102185841142839887451494994694281307503966496829779280525036599991553475048010329097345548214460132422680622357183245153297104741722286684918051453432675708595391794053161492830221512768629157691083700238453253451799763741814194886479945875649074732486466908797536933198889933355916123827607668048520314804301451273141884183729180931612909308577946850454549567393219825270288134475420670887352118494789104287592897096844165021129070301412145883292759192928536226066688218656306146351193922097985499821922036269949430233648680742610222414582229286667168842342647897365210351403526340390507236230599483308741182775869469462730960113564125500018373232606506947906299137290066581855097043950231155962170281305176119859118105415327491086155267701496094492062764236089099985315553648345544398862522475261510403703883782801674500476208417579588412809383383852990796747991659434708225030788939343441313321002692003188458999349349749838700982667018149672873495508890185448880467926541668247665109825788279625950291300459455910308191893711763898615359398840521789887739237924637624634737704013689019128767389803441052549764797890436580144435902685246847586534899592501779816035679820491370450558332042023310503015589089535984541338703835919466516463127720681828206578744214901260507945950787894903376491153354448942146861275798240447578457065199508016395866699195141308569068569676061926910780015668477124556064330641547355032954026809190172792228791973347278759066434330479186069471135492945444752207740025869502493031450847462539145246882214220871390580558499840911872056793606969620636048480319700845215141937101423218543338412462341605040534464726212608349325180470461687408675315866575857048138168870503262846716914593976800512638484017176317740022829586529268971697102589574684840874197971613824135383784312203167938693484520818358778760356653712216101936836514651146475032304588018396117518234695981307960991227585940926452123289582159288430043497679145632250576886532351256780948034278344898249421629066911315947819677142547170902013095490405298905978121254812720624794871546261294047091440719862186998451540683882405263435245805633610479188182078559653508830461795391949076337528628796283784637476212671115951868645958204509031483868678513438005836177623375615441201339923176527013674951312482731804379964802883018629198486326351813357644519921230527265948817657414118218735470576047218857005576502183719136585416772231318550080346642730971183901015765713794310152859627379515841148164912602982033451787014340851745594808975305805251611296965786348682154500214675967058108251909764426389083259780131185796278806896365966072813154063879406734967874972470368466832172204162416655071648245041325135590209421159492977440587839405835197497048483172058338087974749646985276117342135760245380118667821405502433283078182248610542489751309407474338894448710609628105016323280445986165662791982842171822519077853852388222835270086841527288523201564143417171698855795552975272018573406196701785883990717917428100192221728757060062371815386109467605645817046998232790353342499477562401668199596680909580215687632047409757391258361837521633461659757695117658844228435053583096638667454733324291870533526314137377850848165518270422761637890149168373357669832147871194727953360225437966747164402014646916265138689660474858926163341248778477562291229553609534002504228361221892715727092003425682985046646677450780064794534545723129851410563868861967455642074435696543135008075148669153731265831622323527676078599148689925738666914389195308302933963956658494702454684344878420014315899735007023198342349982083200436909696912291305111722823032615854138960504495450277123679898337147351698496609528264951190773310349493793934987653276735099075082936258469243066663287871388442406319391917673138831723561980465867151734747345902297015045120949377495224601190965018090335985025452107127274929407569758090794846736198839224802712637964900778526434886302879163562544608097852321351590834403214967454122928746926139682111797383783150080900644645366176212891271540540514585558672044189086610467603301767704131796830781850939560837486879485300246976087701641253610108025749778960569381085052087228953567912648154835344039386113669280774321356782426307583268657094366328845707788496496785150544887903457222377103682066184751589247637079469208168358282568832933507743715463071961439156758946884087658539200343230006253883518924536367165286536433595502290457764482132349550661818748498549546630664257751106254446138480308075889868709284047724189400349322890397772847033693541827763409592144713279931164444478752718647410186431148837155886317099291919474204591670345279142452371636938005674315658943052058608091068284671109631081840271436008141816979646198694924937215423721184426183412117205965870072531705377232382025046654617719000031174704633107663156219718370533506925186393288211196619087432801670154221095376190094155668950226716372559732913183742556085897145138251943307639348009324109629825236943087215679656818052240841953291467050868077013817278273965202578021442481766931553549184737873830762306387348665303039672249108529197794828853539496148686065604714603469382914814488219583493968968016297244337512944314907089375049076754088887130831708497090473374195186326080168389309773534740436178111984983278576657397675109922210744856380700852043035984558067076373257812047004042519355340630188664519857332455264957935678432344411188418803671577664990714019616462251817299156555666303093372590741625282911256250466179452941390319273812678857758103519287150716017486292465202053655655734180296178722812727946578591750023344367145936566236642780106288613418409867760282083006376567177987482913268393653719865141209503792337171257515360793533601800275824278373775838896203859700399000126244705589968455213089813825027309445868184418733524422112585013067563768411198122478234666958551887649787489749447048909134018817189540045732605164470653546529675569393766734973461485476547222554439433186985706982909589546495296313176600555544659058968312301311366141863176526432717668441939519422508072297178287567890253696474424720534629497750751179261726501090038371974457721206011371863173482674227238401344570376872963879971419218402200668974206415951550679205848856164741675761586220417274767692669770460744500753485002414433226759540585623312734968161717028624554442268503012625178083754195243014630984027381747103391043543769146093447199247216945571406252030609744161358781878382188093296268207503098688433111686707645800724240935509410449565294680365129943702239173421619007626801961034566401158818955245187850452185860982474015949930277006997599265023484827383255178210820373973797231362354121242113124601814546499047858382907536318959878820211732467914185712293960244556991855927945785181722544542465117694775328150632658592822705801876425199769884299397602025851705465443975911665544680093795995866473155488159687876379307384767688256379212615197591111820975953908142127199951075548647127083425888776166843962568497464750068121877639801483529165015005957600712350767085308834654856864026541560971491187331748388349854780356710121329700308043291958428518489380579805890427988296034357932330251898995981830367445291765843844855821077643295657229932891052676816418180502424625116055723922513383133266417201992322738451339320887085563024219136111385096699939850864943228507430524706005352227120571816436595856679484912023669909398107119781693228952804225960865120247916915576121248275873829020667480208088680147783557734839096847186335489765611134630444161129189707284444328520594489940767215588653064917098965362022697180268396549819833861350837475431171975197203890956024168054760955516393940085828209471684664133648788703613553094372262069817385111628428720549058803702680857820654670934355157494155235284712079101569458929396388272235490898376616050030503955594478344987908637840871555141921797943209571256067500991927657218452264720944047408761923738747109615537374851506435688763083148132074328410967826512654607119560953106214800084440877303320596346545317489122437326335874623447374285917828067620997254211805029386206576878548170637022015420140947784791360085457179023794945984941385267318957482962201687052720406388962673042711849909701025010148802216947677578435090505969261368899644673375172829189439287011942573852416645872763125957952027963666802386715457808947945948287088370641072981172347372420649974016659320668273855749568414524806174979523781134634989593861202981531819879225310454842420432951453302155781977221502498727119814756230159965432655940279486409731745297059042169360419192652682328004141480244046382996167653422213686411224817174660873916726724370290025090197105482730942916148090690382919685656441362906779152816463419443421431151428430044833632509379714879812129400400491172151144914137679314738057165699813224029925853923525954171746768773341400964794876198593251743968328350080051657933471006745563662899087080481618442571290790663950072051499717343883601517747615373251539916245299615843729250676410108629242424497838480773936285043449826073725418408248583016451906493055834806733316082615931902601332964244104038771848227223097912275014385083326316668810743118359343688045529163725720603634362854446664425985370478296997942214742541045084794748400828041925119967568114284856886327288235928104106477932313223740939052462973195448007413728214990078536674924340601523289055791579616934266566780474505055203352773560623415719328614064528473551991970386740348653808790063149505664839129838086525872125345173710392149999994222304175499667283390292782387699516273321001694457773153899477105570467887546483195034852493513235950619147658670281608847950331160806680558093616452646979827000958627800700987022805566765140793302214809468493766331500374327696077130658725721980798206395164824625488634814965730548990477813494834591366107225251601847302990238872858456589769058250390441998607558130579382201938201914670567400955205887801728530813004125866276684276235895353833853309228683400077090269669256027653873259080357302440383819836465721897911478465052497684942016979869337903847960218788319987334283875940341127389488311775136362635463233168126333154098815124387884746875292231712686356876280834955894036171989942964711584381285954086848865187250945507212545294074699528408259781745735260271518131870122506139228647737368427819259833941115755077285812943306397679443769733426914679146728875139650092200526605283840529250282569176667116196832180466125980701719725635833130133270226660574600791045527234282633295134032495530660921099323802119642627902747798483075903382741427896449444274382290948555868928095499256914004861006776397876525043240137947839612880262365027435722254637968508111939360347793594027393716812623151662546112408319321454411895005107167542021336548361506354177232653023724818716517762465002346649983695462932177553152734809319617415853924953944271076278087894126521031203115000858745728961757673845977505648619133797153610805682206625106087880787699972443683089758210928647056397963888811222272301954727424719237427674834728783699641504955744463724171148514377732117956016889824506599349507562835647340230206717542431673838482329393011768292560581665626782899812230516340189994393284535160148352318175871603268566196763523796884849369535121067097114834661114048494174699519045961278335711245986201013727159012475384458028051635217262089279861850965985107249901482459887303913915198127442113411938502867087933455248436358908170333222759735740112108073417467255035270045870925709161519753507959207059900029160357902107376956270006259188987062049507609943003290316344322176247665289279023783857767522165829411081395212658793955855786761298517809356123850198565881437270104540932875624715889624684676488748771852001744796578670740711692833726359789746205183532153208280993983676906823792913667558639369120620470719568592270608991656821849206648264664672258665952055690684102074392863142719734398784568090683494151313330164631077333215419758836311296279849673881914095366129429751321173885835477057459829336779094202427903001192082173249867917214659822558150848766031038800740132341353713185626714820212168360749688121529406142496210344682184980008537307161908729584134189432059589163314655388881495379472425891862542996580255623722775145757025539029178888906301480437742510707286925941885673890438880760075135852313730420290499751624773189246050208605274686055340635856226716250241109410025440895928752802182455958382752447752996176115143396892728119312849870854964618534049196180643340288498210818090246095011897885301763840105450633330105970274507994302712102473246214474354918035137484938144395635471935103511484872626589626503420313543015783967021546262287577515881076635469950037780586719876032402096285505365536686108618323122612608586223939377587691182549524645335297034837611221375013793458353683701091413124955219671186418809887125655430401789420421825869595189315825651517607281265150874338249649841131588889734256661494931438362841506845286940173460507412218156573822179575142680386642884909916218534994262090795200477588770452783196111680369522292797464332982209937498007063398177457672223447601746623273169900546590862861487329517070673256277488643306336450639282910340564178271298380904695248514513876164593624332073059413693987771224424525174401704995035751852367892517256408882430298765749826995745280882245891367839433076178812559657053588437010002728647051035518025149003896136083722932207960943563359693742924566772653459194750417680809913649532099608679979193142851104281474570134779927677687981676749536409404162367726469954864347522439135646770846323699328521372722753416537724316451726072711890438834791832333260328130530451257972477842979889349932183630328403094765206614116197600707673338552913093635933957668322752406793567495234942809156971199626714040177733265298342924295019152923400861733729634778901847078511741807096115391926778600571374738007623336793018961107850056981184646102625135614842096140322372639879028643215207116976084034919518868277903371256625210271910899736139857941548311851778187799905265361375426929744056043868415179784737421115633234479308491992541651468325937430553125132390175359596909381040393110990360233142077055278369116885844649961913082098484064614418800877917990993443768393138505899261639800150162352898944682473886191161599245081356260276069091672973737876663784165206802660094499668565217297915018373334591914461928499447515108872229203545929188169263609901048801509799179231976757643390568889127341175215996614611577503479296549671623825342656320317928276307443638559793635764211239044392267427029856045935841057920960288992943423044444470875936450789746365144225815540202685658452334746961036716800626673040849532105591017692522562204460064323152401003325178416177572144853231924432023117370896643361931382571912989852417994500414189591621127995513750183233038661689919020812833044220192757280212913265683864194906154955042162687209960141668128304333415594175780281150199057422618146933319800859878472074107325909590223228329061503677020268669112850914521144188201947991973986828606114217201346562043345853466809119695905193635485352267533573933145858188101418714013751844064903663519706668585374377807363692479687181695286514244815902999003313853894873531942502047854053008727030230240916166229450622787463030045431605593238949064614845808359315648726656000598618477812293632978284325386251958419545905549709000367819593820642575944141942453251499974186673684080807002084240891445894503177945585821099179537431994785814861645664064510737227611512438658129140280173631395069879391071030398340171519462039813880041850513985830199204526503725391045948521464557312332716448236425271019318827919348755707041072904117992016013293943756782253933092712395530102477638351200162023647526869741636016579871031819341051207123905793589767942629784401696303322711095276921311170600516649089725703399666946125611267038623332148669674546588659859378199280597463359190518072251643642636620522697870018148192374953366653349806896118645959263331592014648420318269960651682351804709681924459437558770294785678634795125132090913879586294899579163256924660200011141321620034885762162514160820200203393418894287706870887063788385673963542966763953473424438158905001623215434071586224988199418400060768157732019107018288373557437348476003397810116020301841509983468566379061748449139687834702667350694661692568844906728893310420104085096514995852097614689933286500539828764350595739774155589826844796538202595378955284216592027139866465573924473521257286377991892622135926000853844921984897581590695266492395120686721715693407235765285159460252055959409821874453986293826239428290011805108227769674531666694352357084329457022974026723212660547130713509168955620606375900789293504863080644595378518726681588821832138964480140026398950686422789936127617419815245413871202021648536361519394200122327378033620304017780593733356821760980028036230217797367505183546228282936850579426363389986730072699589390759926805340918735666452515121408545087332280781798713768779452798389878952390229052325731486310899673323212692984042853823422055225238179724864327262820902521627967703742673097970503614893580604516930992473052231244999570077455290635241327885462933734356004006686733079221202101132552512864080278036226030820784206146402841119443444237035375156556872991680387388262315929159000168284431795244554108434917451072813629184809567700558686925340783403342526534413605052231923890473691665329258248856390676276388390777606665690722804913479645486219181364802650474977814879515779872036104724209889888902687105723865192799892830205102020984718200310167404618122156589006196291291719860788452721830628770071650196192737010223893093998540592826183561338499793643826791884675810311950394053158559825294843160563323028079043973489398393060373573224671138594167001202922867797741221074493983123694776877055677701738099536415659937176886039947383414279963481146103670961329235865491268564797411799548186392700934343685336992067340074593504896665307823472600916794476884346160865416585633276352218936156290628646644107065688298698311440578340709705080189164649148733384821024445361688238471508707466068852213831399225974587564431199897590884172765185985349932911237357951248753076079993899558554885531144858123422533147954425768061501155815157126644493410855796905303840232437579956159327031322214488455991696131173951184779335727927718796354702220918429220502534179973851518237770308888104869881510994726070340390516557076480802402662561449276294954054160672264180149949671409381359305503628082154322103972648188305091585048900931650433127083625466540981533423456536272002381099612288155193851209050215582813824964765827759435883138386775232388773524147712140981326702134427412006146869793422942501341350047687239444058322012592708560842633536346935962784352372772514106409136720098334568141922329616082350971692514708535570995586927337445362953713703484185015257426303073625672909479455676815735491693049891805205141691531199288413388510806403947175975779956001184104872983065123325200042446141856963492915279881897031069008165973275625437491352389118979200631165002179379979290530583263270261936909134947360610806945937847473734008589073600879699781835838250165039766505562482043800264667188053907172511512171606047835392711655983159425116163780545748832180491322158468535313992866768877583372213547480541408656834068652649403935287942593391040544483271624925410389576621698172865312876268478824132620315271289095976725766242318111487736194026364794791721696205496812953186848260166373830941956859651552712194856368004525263218127135295854355841745520078530533371281690341850347684326842220848585204667433638756808109893405132999914999547957095168927283783406439514368348787487987031471155496915000631240763738121575720574938169922051136343303141954072631843017736653766992283657173248530798120837127164466806477942618657376971048450867260589579083448830354183425120823007868101997989962077402044058951868453447820875107895019337649535705845845784895529831825501062356111715265969191268011115369760586840998098942855769710861732988654605609471278908546081000936176868616092276427645529989195507554219783084634467379241839872254623358632062227124199398983470881604022859173159998888749029869902132498987201300610331883376580742961431841885266893944323291519166937973146826841635357160035049624100560908699089168299368078367984177534112670762783809070559574382021330521913044263519112731761493323194925932995216993058034990833260172700510350140057078286737829896931187297043419406963963174601025379804484654205100766581145557140563522797170403354351261138400649812796864008757687574972629243750062617648641335539198927203149828912905703589930854967533261566994009339251302283608945914728727862225932540293251218277779104781885706865287952218864362111978671587506524258556189296698306077440502700888289659415734325879371091233921658378197094940324272104183943711775854833812455180890262886344657127079651278632252673848985472565559500824917843795949067208224508376258273501378504061127961107225046508011518919033758704910899178973313334369427269344351704328150043782753011762293479428506265593079057631138532295915857400253851236294840121315623627341361836025498552435760499246842615528837652103650502221393255033350843483696958027558865808300770112853601665930081033619747980229175441817723982339389721873442262464026817205142077917726621189949418386912608258945163578072138595575710880712226399307332692006060790632316791348802574083761884874402335597431073771580303141149577608338676015624258091014963045522901086181982546748967285100409788800580834448407038767852652181264750072270356155301030299577962832653982664106320112952951564636207690601241665921371770240208680542631387388469258096367885794583641494925409481710342299764643683770879596901947259140584234993515410583329930535485302001009093034180999205321571254221391482923265796738334105223212363070582096239320314555737745887218247087550926036960274158660497806800436031570920318812914584448894253934862013312784425155163143039819347806637067427755185555076708117076090530295527210059161176622709932291883523391000399828615288322616048245320294052025603366862088167088153852502341456727942287461044671200431489570839195755838979345709152427097220897904855190106585332635994631486574360629505575236925638088922034759173166967478300898122594381336400500835109423262209367664411979526473083694027715462589039808133955309225789504416968187330338832344095315831256026187969510097130279087413421296974365791866799839499094371500944320507247036887150659081465726863707584923062408645249583596481140480311961378972317890112461094543751679989069276040629209969290344289408047184832025440616779385496936180410680090231707633302330728570970062596048340965975685024727593137796865084040117990910845783678804691440371665043015437523722768672633410607574409748405654412050874713956214334048062394610493138837313910920761315296960590001035498319131872863143886409887308428924412707980542793563247880766616153649347345168154375783331010369245033922026112825935050285112618854324395964894859786780408673002510940583743084246614773127907940234469034638785588525802646735866408486761945621492273507891816563512913601844669592011527806157438323052119471715018862013430114624317624000501168058431510282999711414391515636398854985182293771871236063227305644060387356976503638216515830317988967672960711938080148828524063739594857849414118553696189073710999562065432627794153951630203340010088851660264328961239055093426844286194636533581007634234295875395401266637086184602459764750152951057828344718658437770891512019900633097698871224659985952639278579346263139020178652616799939321476466441560473683912664625063709992595669502868948596624722358325158388863892050363330395373138295279602094252119886806804873762675499626830742042797033178781858696951186127069834792009189097266799353215030076649767978869566846538753500126640982948007223386552428210078030483078257035838697041481546085443299454128718230117309819018935274074479156325370197451519372637546707591729467620400901591919082451358978927416742340281927999684161072275999720236155430187906105337586576154619636583541878085747095679009653122526601058197477481349646644948652980259592722905470905939146656761935245150009335161321874966229500701436927328260757864632153018065118215711663005116856492071357961393959053359644610891136272438443802631029897174367295853472075395577744585068882073904698833395192035756505209274241803363255098546122634178078391506262126814281651505286281231410585914434590979149213802309720933002397098517005333457961437005083083371497120141472098627046918829828434059732443472196058161563410601967779034695680872590599578028669150835248752981278989195334969500207430719783699073272640237488242453559799998299903673007792043058718245481076163092394841884442010769137986238954703779678654159257533617732513096280742895148438729749484772339726671356036694469439877806184900561514566775654328402255726864824165094495532275321110528949500217828155244924014708196555322575487738240511949712488927064139362877498268710860012638638820145880014669641821024076255767099303431610398230479316386928351364760605200065932582606964436684973651663217956129031652450384800548791005843623669366678591591248366417552661057276296309187521805488736936942922486087599454952292683743247101530897890563685145143271455295771173058802659042822946759086428466549928317269157299903554777235755531099562823935499830808786112277173351788932560210202220150910475322074677973779306113236874764686883688662581292732394296057691717684931783411888988673336949410962440440678174927389307965665534308786639803980011387936403820596837570468690203446632566398159325851075447257404199015170335921999439907991762197361123692427402682775127914714011238734263999738019430695399213240175260446901660917552605045090155142401433653522235374871823969621607549070571927980505330069052581353335856456518274495746082240203398437163995399349181236607011199479811041119149342247614214049090557292019035428064488590857173267231693036442612515097753166613697887568519818784291813148720815686558696257173917805545935655334386674662865726906658127651878545567746428908013127248996878672071656431656742361714110036139141036796456069113929163223826874205542891986244928577745356586108050367825735911767290436757964621257244140890175239515411504010639876570501634310668837536356811839029965297136157718398802973937305420561785760867522027104963046781155332682845581268335319367802199043798503139204777934394868720071976757798961912981664248387200308515668608953497064309104923890842221942651249289040559108560350607609475622737718191046084676421926122514042351940858103402138954249161067056154680657924815292093129134612566749578662077579415020610281401826387695882030783570728380334726585102992772681585104400071134708721245511781731843794014914108526989550994839017151965268054178015728366295757467353753581866073000815279500972180860643936919588996139794117100405559766538182574506467577259481171658568662169720956518443375203712369313700264142481045570929945548780345211685264604416728795418787210145832200296559579935540939598582419316829248081092531650635303149226610131350444241002569720189726693525112384390993420216799034324229557266940618020570482968749887379353263027949729889524135852040635585494287669564099039553100084920469665489533604166417219461166776049798341324709162378269253368555509319089992275302408033484253450564984214505279671433223466818687288561191296089462639729555107204281536666498409778820321922345225397672091673363236505020175374259836576932090595854748910866186711869350656662690424532786496657326463234174115309122451395614683100658353319456775367183554957248056719310462678219179916407919776010383698873199564907367397326870923801646367145366258379168284548418549071182288372835461320986099387942550595883177731072015066829488558198728319206526380125733531586901346143145100595969727064849879371407543673055385954720475653434835475171905407920333829072227999095144496263712726220387323217177564065870119232273184156019445608795222936503767319277746727087160814258205544878772541736349057231834532161863058967891892389242512940513831434392801520695220023279552729795331235871082969131757437161863977131350064226511953559588870440397152607992803278408715753643988038078311671616627142539263815947285290804810447088048294483388396791657428674503618967977182544334192051859752169305284271787174737910123828189864381107122682188704053688797656451954131470480298251489908366717073009205607546026388266812989859790232861818699951190716114573217471873294801567419515159757109654791808746955663594122212687357029992227549033264332203886333177683311068608742403392933559189703703096349737539933280083923101824815508886667009717636026024912871299799216687146821751163193620716539505356353395423706164112612805630886948326579226726202796419139490285080432499466852157020744359087704344584299450372292881432442487558382944589548726511538253161975088363137789776564407668941998641873724800955630228512375328465714611433950527220276270118990058502120428592871809257753353867628304566718949644950135379059127805974302287936838160677306659276180845366461175495016713268006498814768606774301048019060855671611690219844417602746916591543534878999564161743355493699335536148423928492344455951240429666816983021596865779416656445873798284148354061787117247437564331621165290128145475216207233939780413008085342132888185720590008173099320870423856510418677073508325967244406642268007464703012916807028294490036776675913740274580213845354853318590596959062410161389861686751464653710084033581970506449734902048666936163291879903551129980950434901531456461513249143873175055422493326761367547071227317203446670429867784713278865776779381591078857442856769289417443810071390166007707936263351732266701283092395824028094181922425070170576644916916805681640189933385283353905004247534780268399940459989047024141073924701540167878404241554853441139422367909843894534429892027265212951666004168976196931623131720010681791824982213937899099595290179720624319926130620408149688196088841568622895279782601768205731513109928569385354368489654054336756332883336786274982895007627891712528554594734747932124587694366303020620787983262334596942901605648431690258157790322702459792385739415793062557211878308426774167174763222985010982298799584557413632899389863914779991123645798874490813060377735322560633777924535833702418860284249793735188079590747781233936259036751587468857342716248032186055600663097547766829108648771410186869874689635183890120762016870686931256578139615097753249164114202585016244957038736090944377985696907898719533371624833338728331956568787989411141145033444573012740533758876136770306770498649907457901452151972170436353222137225012895906631638298631486042497611975673840027936997040495623098508603794462957332992381625368604312024956929512110274732681973551176995691715327639293374869776029464976105138326972763117904791924777565440088762481039466439615829170026485636916185087956486921279503610148472081310377341423937000153621465839629178342510592934799229132788741777209293331387048437542207266244105770958853267504121401037166904912637552421431597269700248175151706966813167575213091247961608830166157094180104690097819264838971507208090556211739829534357229718687883730816868090479592745890092477556059271101498618249892683282416649064624751972187368080624569140269533333261664235892545024393841719700489175881037819081424556165526922640729060204821978970979276236146148453902248202864914598223940873256110017759107909664722391369391658857893262422556443143923175322680150897519679010937289325771658583447067176865981658780815147115492798056917595244878703382909427280306899829504099861745758822306160783969301757894046683513221011278359508991877733244339868701407274596625470040932242929562638102411840092045544113912494442541176345511022726520070075278644976392021382487974352148095612266528485492267487548808176166932349149187547090734211108972487239674759850261347864759033254178608471913692432268539120933202450150608013988301162915816851072945833392177701318358207238255188955260979673940048570298622025610001148569180238079073863560062434746277714172160772417087219814386428287160166552914916050774899878926619808017968769712683175687323913690592357986899648867784204423953846302554441868318652853579722200850919478047481634241450450434044818217432379330390661104868319569632133320589517474957650982938885810517725223465593664369653836240126536036152213610648088700134613541527534881180954545834812046937992773216310618992262075797697513328220525854340280811238168221674981692386686621371656203611182339784735010164052208091298211707530732606467546313351525620453830476251408825407881020653604361057146106928671586026572278474818122416204568444325943268153683033777864124208945978446247346383028521664270554503132222737104398406603580725360853127056821441838364824908187558236488557420506992415132936973088153618844057046558420309407642503302391292923658377816102860926524589029235689312630674041471177806824466345349952366517334823661437458874898058716964509737294123482554242109839722929678839643404969145604284374402894799010389149749122140828275562380171061833962023184793087717677635777087756357021497354779571162392627170836466033990886607776412261323344254627810623416273780747290430945643335096266530253983864223151656703716583799993319149093777512678440873308573308017396738932696550298281120449095222406476741592332021142501187713871255424170784703048036655064073409156942875631885844598441917665037110645239717743088958140457833899261615045030667010595094156278841565312932705161659779772572275878699343892083701755734026070700185492484777029315149041791716622405109014685678117697609561552275181308464801545833727043919396294625048325948737894356675635170982438896614156698298569799168112180910758651768118818524180773026624609825098539191160630281959162347118254798331095281125641526391046495815449645106058228921295867516081062673221209250164258624901634875238485288995874103491741889803349776925482860752013647574444638423976968524234750065928778492634217405196446348874995657954339510841042789478525399798855117159607711235908922549006563153625472130996878738709868280493864420876924824923475654984783415109537657759202182972057962568432899222690176634345283932001372634418202093236224424100100523459972314596599607688144387724178010075699974580783810318789636872131132935324147368507491464179905174887498298130197174782019970253796041401844655914513974221508273679299948401532173945250110977124291581880522939297146352969012700604416597515149532017082462198419540288175953877482393835371105499414563010118983989035684862233350753001036867039841916876545006669687830931896270027178961604160736851407420830249194448519283196115887344237201867507299484820222977729240121967282161086152894306003626198606572829976147753208923425621153091614827416238459533617708633669614102764223540454120682018083813928435662421583331806333221517940554574320344981963862983131929015798951986555354855373572320625337324545208697829639347432042270714842472124578063924822072185242294351415412812010973048773890302102933240246229085494683690367669083741632164615210145460534010422259857699501363402328765499216560361089588481721381227029961781239755226811271734254442563422023231073285406768899703456386713195256968332282854227237712832777203285832496046079620144137457656209784192434416371319478351042132484916533948425672059368225137038083934155552394199184573957915783698013326309040921144324991375421553396374329198766002299439160203175531710547176095500812793047964540936141627068788342354494202708343924519968615849743032536982502294304283622335720461732044558555339885948587017929151418118570220924123007477588705114573935154456164098226201149653239563160766527931388351957910258793868563593241878892714770406259305950096526954152757451272941215302321414175106102084308915886493709146807281767858987305336895827033392024655562482491687318153005827798450549339782280817862366771302526629794149564819163966044166838434453545096498490694427792275986173514204321611002106969801224059242649941296915512048907977815440123808033198873199184067666713299052889611872756288070877954736915686470478949792879476809350509752903894071229343361175174928068297047454351834237785352864416399598267762728344997900041912289786155328668804796753112913962034138772027037681517051249895876579885517952880991023859005230038680143808084902426323145544231176401865141685830914441096292928742915222625730729461089697268967521563432606251147812254756591797964204689276318826256800411522208940841156923252442380046704570466905179959096990859342376664246081046796788194003561446332933812422472494992499071608176445896502650817235250460795779485627979645410699785876436479546564820777926122244469357175028602076642812332097309019677931191438932956595802069735035838762175846730636246969217919854288254334584266088176521961062495592079897388848879788678201823495579379152457883427459725975905950751412824641527664801823613326915748140084786996224357920082725625398125283806395549839734834654015863672620497866534343146366789441947755971977226050346293523398622718385297592310376228731882149451403985896965565445154496687563176461252758446904709503582518090207445242014719030762991793326994010745837842428193060313237125080126293694521196807264670746737117608940106237046929016490877510092852475335007427344173490592286423177293516897439372690454700095049539188743807001684545206187018839062593871528948227533769960759536229208631028724954323599683920131445314530484519025901220336540294232611249925947889361638571510156998065706951997249051608759555934254004728637849247485138297228850297335481751071808050743271350470612686636672060345205896622653032418450595104728954080158215433336321394340639365013481449666889099592740072557379889382192612662133303262584960234223838440015879954962645061824244532615693634613071074050518091268752894156483962781859778114647059586087351726672143447073963852669360360445120821615534955089137766716276861685400926682418282408909177097358459348930783918420421274465746947676197947295099520809054100075231532125053024048979483101809734393069765512858569364969875878183620498414412368081212584728102122474212394961447272205969153790957742638572192340161211091192295020175040807760797388049653195665672737375621962290822181172267023820338192707677564795114784755338867448425539490670482565899133741586778497592593152071610369623281014667672454421792479234910662679127561815672469595462004249496535628794462836498992026281687772324968927406949174200791342422470000393443873745567247818651283668664391811870785116469937794670122269277762004027213111039648349710017297204142588525137006693026559138690153536169051998889947071811408857796100279753088563364251777529370107147186046090859292966311178439957176659294011226060505656975533334080503439456731523153196575071571768632930448770120351363983170496676641513858500628060373004602085617665233341570027958518909993866590375000845115410014666103442720073562565423617160174576654376647042456095311232213102277642850063763373827318251342553869921501075473108315978338231794141731779915042821641939877536220040338773823749646092430854963619505930417493253761078181022753912600048163268814933748112098155489490320693361028546629872031993160474889455964911882636989484803646029868588551764122361614933020305204071790763195743286062817096910096327908649457759293006858418419245587673259563320027315731736960742877450869541447102410282717485126902044316559113255019733865058581368622312831058588925465720407067398502989352062744865768844085914643935912980559171090387102209812594440084592571796007528809793769286500834490081085340553918450943971734418799984736454941191081900927042706086189481472200814801726247879764542790117799860097400523157727515217609870451332802027523824322641177285307383336438890060260132758827029628626282812669310518395440766819128332493372618505548968111682351666954371454280023367365765621488581321507458260289728564817737266310026761560094457444222912924172360932708136537111448663201241870519309034826751071035525291927844391066663441383151792740238126176519121612860965131472627475151674067348914683665768946296720565912428217858196679652907572395448422784961943477379600703882681055986200301230752624232078637209279431887343472303532605000850256688119068910953885074225341677123216497438323257801116989631168548821225464261538467755172424349544064670426351643970483278587011335780364159816792777878740406089408773444136038785744909173456990980869806310145301837020441070426987588110349904262863353536253604366802336591301632659040437737769355743039175553176916994831665763771656319152123523431282429593443726258890470061912228447148338797542540108514084502694170715003697594762580706454438363537310493156737638073482869454018640739946949173819421843173908144852301208851997083002222359132959918273900962083406199264760599281925540232024178217759954138571164165275011369874968293477083404697878294201439442113002735622078948755992358538394961760121362861946501741836530363866185849276190217156046876436600252459767216267195960851924873580969382515846860371099384156885002700909781376430499670338646980452326324314475212060414323466622051855905864111752903339759269007072376850375455369220372563405223709768162098692167687019598771422527771813891130548022968356247444413826226889687641080948376376339620248571327315993865372925884956899724819647190737524871678361409534936030544618545819319321584407445280685391111646200876549102157373561966554110994909062018153274082479359299986371030192379763818112121677159415689169269809614440941358024197368962291073039406588232385271405769698776903814508513721716944731118816086801937143683456007015362409201173501703298163200520213696043259809925251123456811375734289428293269612144051515990889016021251841490504221038894687332747721262403501214060437762007907043344771257180292658399786458648041478061867716016412281132927434125540430883518570935163021783898010059900828157043008781589564008735215667244982870903350476379442583624811334780479195511061975922967688879033437423922324372858792744420458397643269526169246262455057512663926163994268601842403693513560635805054845720932503000187632988489197645111933418166291743135364924057714155667558913916459166686281631236927737205364032276733342883376684401540281154117167949860015586912152816666568015315463572828575773688113104778691465386048418037041816583938849119256151360481636579087380214855850721235985018112397016243505854273854377889848497549910312232122631356317906930770606205888660209137622980024675479741264845101107195348523085762006730756754442690385439795113736698122088096903123898770958929646402888333612205949560422929332867323314602493232566466318812950325552054252781563460739295101869898301194730406529468610242886448132464307281214916404466679742300015726120882245344250404108731598139695806125579875685305080673360926839080019380338346047581235345825819507811805426678522098752892625565659017710732445920962230754114777715599839566682682909058564811343446658354466392908637782574268447055241587228627927386301662685069569723695776560007284147136115707288366876939705063993666037915623739426326266357098269166653280157211872378838145884364099083313679364422359761173000714090202387666504670225712251790037364584188537865293773964536677861871735505285499442474787272928893241601215967572038280741416827316171378707691931746639589645833496810838011458193060806254896964232157750098586467008920688879450045028555108724404144458129108143600231179403961204565126183999468861001567567816270865130330862993693466084401644620911356103092588614835559468333091692803033840960585474315307249752644234128522031813093291587355900551365879385368394172673661253142503444761936452466234258514538648360099872146118147834261657287954391055126812398688163297947813462883985428632426462969284772049898107866914086524296613597199196980046697556490523973635136985035492259947464987789309907858681102011744887481347216555275082916920789370638527021775301683359832208780794525983903488928127315808319343088964736293530083898617633259800851081727279074389278137316623084440888680006264447258559143598823569934483269125749326987888501233844756057829474420139716193790322279589000178917889239019283328741370353068925687379742035247804282861774475134701535038450648934911739492278965569971154363804401222063669797262161836147204827186890690906826430793112566459904385492874667887072041606383075074801658864407159163360131287545587226642160914409358643721974352243219571285726415595408791878810787888488264255321427209689020765004952044092973561485397189685397457048669134188924072447031905327902053470909194083794419431989157372760358740136662036867436028393222081294631213433013122093141201876888929864300110590835655133896684816933175233404841802843062478343828107051424536878352341366572649259513686704254007928826663081733304595469880095026851224465112893588914694021164392373203645624047403778420993048264310852892287046563110106334670570615012715689943620876586199949415939654916460112179849954150900596736655951894493460885629583185562671173498714236906511880603006775336721506174381013897102590840928667503959729031843478535405084754077802585314172187314842917329671019703447055201572312846611470256973182340484688217934789090322575738718034725583339476635017587717879433268275790421054362509867630511338898786459797764875306072391143392626418728294267462745763704398896920444280164345846405813087576532069200729021505830587525197332887052656508196568364388608322928337292056194966808835527633500639308731298824469765357242623511533642331925180635825776228556071786232652658365356854451279176871383067833401137627002002649349340263353485601481629944784337998884700024364367172791836992933523798785747781328040606543906269389691877774092908509379396212836846353534502601413288431119997567416196501374000907662968729240327383277372725595550396876599751703352261750826817725226483922720747365004631862316616140125289810697957118177530889408886803258986273781234131469642572802867438871874194572251079367281226033140478674191730035670916350787145259260626117099134275368013805300361649075109293179829536591825246865605275310251697168742798061093308180245062893303728108814734917625360129929483343110238747962723377451566637660202451069949654560204473853966967756814067434742916417649268057068699999751933128399855000635517144688384589000891187480993738677439742446593541734179755998611839134998493927294014149797443617203026355952016927660047371329671107970972823927810606521245587881724664385095804609116654240907598606713257096257597057898458479553203104334748518672681080128016434515659786411623460855431810966728076667312218063654163352027633498854186743134902620874714072206669158111712057913609338277600118704775086075577157934439191629698336604911404577219213765290766151959933525675593102212153201328799331361444662650717017355501492969776511517168306793968408554715165372121402040126409434713636168334384094321223498623579283527640557883082780436320701405154556415132699096105835339431178626857654380110320482209192287936970271330808491306484373969042928337373244573431514536628802186802308256655518225315080144729066720800202964568844449608674637430850602712895958787910607979984639531106457127239607442276831512231175588526802052761774333577152423947318965767447378735762440144993687268147047421997583268886655620727762297305213047969738936318608225484726961732093322673995743068253766467272378062449055464713841263117279908300262344807374653011643320213808021778582209945627711988064433119137229086848449922461370577847788580242101971608908258311604744623755113570029619094598232753221706906725508923326818618236615530140407788445427599852759962130070241081071559014865231199928024574715273367103384421718804225486293693150295306383616529690991428042080378057528709176445039844413860173796117568284994273863186481507930540202355544787219958498296996586327966912670857839461871391166170089725070892059595723661072636975605345834959800777770119537129675258842096099658326219603687273576732601397687179092257820081952045018186936662727024612540268726654106112215912584680776989763900422867327032050695273214978080786736983723584541444769907018251803424203175778797197608904068507293393990803704877361941795471878826643837729630994259623112084832905692147780127727626407850451716418610482022606590683771515844778534090273105340189076921832635546492947621953801523465521517008039022168869675549380220861719187076457433683917399800536443704438454722622961729011139103011635153595314270445328262857931018058751161798143532407928230016853195655627070874472276872953043288069537411497146849289739397932396722666200120559976457152822201230920564859314394797309345628958357324171095275902404405839081123098836080444595148640422196310401687580678481337522714391880348395914966738581081121051890374593992407824677072501164965733264424947515650349864951479603666391347678334818642262929678734214785253819524860094209087596115237379774904495314520088233936595986361162194587243319277402908749556534223253988844150548922726195460078273788901237794821737974579085191302433330278311075989625253850313304830967393305759786405969857641697072590309838814981902422283257552298228863565854492552642512672748477882681528790452242882329451608156885691058640461061557617608003164183884788116055731273308658967037107998425962033881930323907307781823659334444322686050505817908408910658661598931660138101426765958254048095367773907811156776457337749715281681683912775730035722903051713806459991282938655441610427181546107275259163702277823842430449982190295262679398950981249302227492443993938149773942603324927169402320331594096500260044320538665958343312063354274293347033811455538952810650146806141851270233453536055980994477435440807406665603008512975473658589739261956043882965232948845372369975340835734111804327061604706094499441362663699160877319199411287104501554529348053568872641849927591220374513417667591289385551198381018335409982478920023254126258493262662278625958617827761779089744891818528908445423975700401312635448153478479036204148042683224850442892322759956958287434818805277176139939273793744554941551872989019352112986408686712617570864903956213710881017354577732473735755230124098839692283123450059399802090365750465921714155233383951884182950261854703825747571450095460019480475128648993157257719711313952742214167374369786088003597548117139516376209102897111337282544055849785898380492678927930048862289022388252460006530058479117105518426992725163477275092130792293277687863365396122019624216549636529804963121884097906891201472332163475199194171375872732040280667823097241006593920739930133219333201330832069965944194774929828955720067792427922249258768328714219050633255374512260704886710700138601847354181782650458216428735793895710929082857627263785846453203185084061340312932635707628416062265659845853853851868408072416551283791065262837458070564247353983605111247026363739519199822699354460486491108475365795749183640572812162413925208789377317813220287959516140207074408345546337077340747425070447861189649230760404291834858670482282705222526899574093506176024630774862514940008589875547151350713772896843329601972288049491307319295085419953644132571612752861704769127645700308496852908781362737915355245671865647535991107765092909710045512728320233613504718290296149250663446093645162291397425327593522521864087985643817582992109838817930075683425231630158700546113375697790210202319784678940241731484934985395409027361738186067139991921711836033152754957229308640062977449427330455743866576360245808586944633785240553142696659563651999766055078767989324106819548732810865578288649883758209440995951163552698093973819092636716431938600828208605271060550133826719686205770807365453755706492829739700180283597752615170451020758065414752748398148098132293188189027853184041933620501226128681254496610958214455797280850561774133571538684816532314089499630802437773311849412815163340559631123414899707978816292515277793824888069853385242773603791781139110179956636685384396314299684446256028602640172275479317784649948860518160811333420281817159268932649450651366397715184612551305924496657650981746862256761038473682908313315925820716076125272329539165502311293114072070667598478461309263010598722937163739541554014486192838427520868499961993633912211926960563763181690346664960898470849094067183069207213354374885335837534491698395397999659996205315763348729739097971182922408728438768389004083922430691456331555369788962042962856019151955920405307568355971431661700897336307834333605956050767075457597969838142178810695107244643879279841420951477284991424836421512404407443240666204140835151927541554537021377774104727118588336070101342882718555558661683060124205724554592509761391867823037769560255319170119331388511712741576323039285501649517790701239416341175834031329586668976490852556911806133847365130279353657838479791022171860907347142367894709482899814486010706246417029578966495950575240766181388409299939869805069081925150502388723164893076019938054288013455705556888949785865928631006268147294501456044099283338546823787469959468949621430432842170451013597762873984205337030933585273965922458366302460917554427924768983398495148270876020270921685979329128882556130217367035556648693655084106183899692722900215089851831532362020364097477467196630324974947273810781007348631862458568461113734610150069976778809112634006651270492364649654758895672174592363224883890923365717629288252561455685301845719653339349752078406640760569811372895476210395989656646571865356640115714872040502417377289957161581099197373738476059049475554625120110249665797427077636272786828049790540368784500764242315172173220034944761597538603196949892756255553227943129131475234145344848961102603842781485440221789507901064597673131907382294947326434085124704959110467519239139682430323130045955039311811419784831438162720245984234338626068008406603556847938151042998435855609382426436367547978508591474459539556316730206631372150570475465183971846722533846961062964182804367832149379349086253910746335366428947700554227811190993789934926780728890512729435927202787216082734548155046099432767313608410383715573004243110126235709967880901900504931564172653510690536505275647157756277237416699882883626270821613412937226225085470809248929865917670499045812747159528470440184432025574826583024691226336394692131767613807863409238965663411855217597118664287162051086230668668222841196274859920408113452477763809459980037803967761379362131933804514674504571003589688610571419666574208440586146275095280780496472264921024011808255326721451063653203711219757407971817167091839372758295013894569677117050987962568819612154934424015411009639443573632702959146005810254043371669740848878321216391309745577453908863835026942502914551228138736896604960355072320721264377046023957234481134974157119691040787259397841933863770920956390248734920536461895497079724028425113495407607960916705602241473517775214351408740337187841629370646382817193910878702469216968832911418393820492328317176325535669374631113539074389703154130079635544377671038062480587319238517404567620833731389752405849663084640483427325842379487826150167691324696957277177253403710065448301500370628730333771057629642255923854266221625714969623253808086515913594697232734028723480816991880016554247706605850443259524534054601666242649208231025577924813996041827891421245842255092492030375620113432550657599943055388969713766847955197518201296169027661423331796104225117990922323570160166857796308484353395517451401612699975264275901192410112403043937581454894004434284287201517428290493108548313129484905279709186401393061793330699313698593713385504323578487302468300451714525600585195608528632250217167698994315639974358311280543101588052479848477368486833939120118905522613636356022008490014947070718182304233448847643452711040153891894797473329415317183037396924871958267146925690427357338395480254510259445019067294372179404676957975068925405702238819940464804204616078022464052218168375301360243157887707830503778074165660310456149313675683617595233295009033323637807638966921548479829572378426761575443248093179081418056210142864846675541787309217602209384902651286723081397928276161498606558805055713840216245645902742377240998293908733739067213743320987503420262734255259416632402675919874575862118024104787971486935657436250204071887221146597384048839494238884343039198745925593123657718192059727618857911184622674887768408683337844724813850021295646437776828656849014467136068154774532267554979845675381149480909154636202666931647547145834407768932706083915440461707663412520569793862834493208295714752920862464992459838647372645218385921527953747800701219079975885850891753193049876212569978213538258352722747438726592880892896269315612719768329393550664600972342204661235868449748284751120101527059255555712175859354983179592456382003942706217004587131805261683499798437870165896067910925334120130096467110992894598605466560829093367750808505218236611279467003479540996452319282113290392396619129541691376115726452302285345614849614527353516503812999995889263549970496023202830613256485739927861172426761744772308861110383502934420142331456973131512638308411768878703052941668154954612474388797250435746500580711673343864113980638383760761142989864156338834580985423023734004688582100460542138014246954332875137632967633795688966883691747108400800342957512975120934859651467703239892337570404510719916315675931864830676695103010512617479025414025833884455455224062810616358230780975980995409711503365878755642992740965629518625721951511698232931370028244918187613270413857796706559777145749765773015229446230754663254823972523759033143054741595583782251246324091076634768911744946626834206660784764296197494116240482216710245172490548578295617460168455144770954401564702059343196645537196043303129018985260199796628492893352245601128581931886873376969186774976095530751981562159568728431133465088215559181434764005536610714121493143338048908029726862859786612092884805351717411120234376330988878080485343570421066717978828479600465392252545835337845943274039488846768152786402677199454904975369064388831344692905456548495707109843006256506672206872473452069560770185427192736160268990176865338904702074699306718196836574911100851639371049961955792271854866722687489852004996515771044052835662939274073743977911556226438198698822905478726588245684285378938375379168312987034804997717290319475364722520362675527495148968597386865196262213215762409038535043029674942796802996230534438441549450855012979227466334088986074783032542548010418419840605516553452478083848741516261588821506096553674405109689193511519295516545360764689409222936354572209696214975775971151896382863927966886473044473404492451207838237848334144954671109223880814890861540127033405892672294786101076645769379313759801094765019245545764468256038001007798221795524772705521718384279649038177888449344864082480353539724799734646471271417263170839591141645748782025103222449228154224860271554321718538920563524747603753077831496134278588782525771059204896990784925369415553672735890088675984984701344074348602676130352104485234932004413171893153000358464884337217380336168963597257048848335620344719835181637899404877369370498840759769891970754155639611169172928740391649292141958018002402328043568717238116948121817230160254900880353415500444796987104268839824293639114837646630334781416755572899082070187076277834004659432553220218482242002140442056214357688406430757105011917578153492202184808397702229900395933878711026699074680555580240460844460411580035912038280038685433164548646979504783843027896190789142477932565057855831090486193955539987529622796741843881872744478151114579635747254685978342952055581352889484988162993484760449942872253294949480464131673687582358876106343025055263239514457405477023149823770073610412919873675985266386450913220358479732782755720153958656766869761161256048616739412984651326812026242180733365836353044572757437741312635456830878974279219663694819761127561482155694953641311876512929322680995403176450418886997477648866937281973020901140551103002832604823302551895491351492264525150980066048904389229408991267076242230642802060073518704919866386893260167629647458250295159602274294866788722837936738110624182142085253607661250003095988899018502295253089255992603677891709537017011619988616223174476127937954535565856204464968673426013992913737097426924529284539772732796202133948927468994388751535993461624883393405269173694796726851864601038782220680384726845965813133984044028511841212732283208751285573978692479193638058710763020865742614402136071147347139438382120210047302395688726009705358795610032755330236044090855405980028300572345422887443586692771598266481331843769481207210413190249756281663664833690474497701215398902095399275682024583674810569278447177207357859460525743564517334123131337149088216916175302858653273666507976822117172029486396740527413986160051512471269806086060668529948762688741987106593490351479417704185242980939189595020575249144997171689482414286229413037175747625427171589433917983847390032145460453541844254504947945863532732149079132033983883031166183875487303398617677796673330384583268519411152321068944691243172085125451901785831484338282653415495115978687204521285613070508406345414886191934223861221398416587178363273209666739768414819524174096160508809173451488401275494121268356896619563827940845195215885698908370130726589195115118214464975868885570325939814426713062782969003473734852553692999737136352927080604029634089750789369739143684549082440812338586016104529120153565039202913998358931323820438740167030715270693984296525924044654579176266764215934438571942624471726594889857712020853295792422180060044799623560759250776369654574788707888583931241304227992477029480392802278684472846389838010818035743236868035638317743113441659208246350390533261723802199388910389496716137311679767239803038592034161554800477609813324707031134812803272901170393849731640176020086289515543385888440658060876555307955301926860412389481658352017712267752821654214175902520417542040600216835793243755035863666669044867509067204134662865177234382430043231411462837451155437700374557416141752592096291359531231870497997451732765086751086024517438715524239602230872709465364882464255432447451782466445004143690283048652807573629399095610239024503786439951922280950749273160348240524500536558917213539210436088410511295185034457258247946727291712302087935920237833122395417058332114490648711272013737836785758565595125208171347373374752115343872991000629046829798596414313193040490336680141578378613143125323250152082960517649274866136455486616037412268423826602854431323841727347020975963196394927693678600772362322626682247228371108635252189257183576196517504729921257220608145105675293595461381070893843437516551891928516584503104638081033087376696867170509151255652026986544614274056273905097881393666923856088798330999379532611527124566807608415827389128290753425549655078454765497235616291688724868881554555681725098132545361597361031468244335581677047814263698808902115769611583965659923917795940447488300051224849344036144238510196743447570510221747994513875786269204093926503113856624434189358475095926737466360800411825389489047747945400865013543708316509590595304258448425303841137122283939845365139319282622521140524561052670022585250720677509601437197457541701538555594288951481055126066529741598837936901370120450445387717320694488284653587255512455779571706427292714322341866168050575238807431432635017823914787640994839835431516086761260783627290416727507480496550368013989035676667262394091267470490562526750049522078959726233463478718681387590090523226456379244864584118915165125759590499491410810971043322470569992365934472859433050378086353304407566757553267599959378505277986320735460426792238644100479299385162559585755790815846658597044016044964655206634108971582658567647238439319105700690327212753390588611327126187443788826137737742654086099808476069121326118371106244842302819065698630288937413886506967865971113004750197590333703596344327745087891599126177199241865669050026745443948416363072782193092625789084044843734308713089767106295980259013076645328546928958166190393612456674827876947002551115776111108588900328439295564600897594741181564301349185409382547686537774867155841020295715500693452953759306667154090356774493871571530686270387121689630248611437243553729829695333414437066305621998992373655374774936862791383133831956351193398383072111787466665009614693609676379988366736447281924842267620118130458538303331320875164691028294610791169684927203655299263102325330420113793302650643581935855458646452734377038865151873733449841809474111141526041700281316331300546156089607777068583813923622192398338085201009599207748928202725522213694453897843151914525735186089434835146737684243415408447057861907589047092030998762511629124520058367123777591625261434020297350814504721454296687012634183016738187025532344052863486386909502435322319203070492782886478784247004274242145947013389376531461669667484936991406412186317931242267765893108423804430613425655829471282614437622288700133924903734861865404953161043054380418910936876131146433177301324176490237594583566768072996438011511593399111293285855065606076768715595331778817371210155950885254408240472957955848782195138814401751754550283283363171593270772249281979452327149570496760872999164706013448187932891280658536809157746970081030657356440406827782696621377009159314023283783455232105060073559607635701252096130892335531048014062476230183373544961783248279994591869904944585919286984378124228106970481781820965389099755880571597409893611228180080757292964399037097878879073772466621428043499477182073438093965960598478671227376700604613131683175921080583191397179277877277046534526098686737203564576070951566599732458997109044060399338825832607771748177323479997711725991095578602851269151963453326975158054749703790711628157786137125022291507506502217692283719166066432999772185200552560701753360239599891923747518302274575504476705849071159234492457002168888076565852789110964637467348770278755708091853415973168922081143650346429607680301551848694643478530885913725959780946679021367951198863526374753565814411427231285968084414990270560586524873562983504345707372972331590896411743024678844722440857035427207825618543204195049445927728227380971597118988138893297577175686773499640230724239134137770997619351605167857503522073282761127316167238218613390948445853757171029470483974669906734854533460983438196060422027829218122357672364717938964194146725929139796604203123887286012801095029172863486798767494073513667481030857570444452433161580409869403133615352757000173367853330053715523580490391230997288410422837428303996098969268449961362862661567601533809701647194568571922972684146729600352449021570892520025927443204979290857730569468934597431500248950544361365164134180565527271313233412423873236165015026925483555809645273619570690690904302341128885507488149406707783552831406257532193552526497444699347775543671277751896262009389772768803553453945406789707957613183864137956535746699533297962955810020764058843948113804968186164840432972501537697612075709099039978974201771512166521187704456624430788057247400364583037520327765408859260205088721239561862073573050762016449901259413805005887919343078033758473548180750798776421209341625626734018897252909419793454583632521248357209691102473391552284145771948611386744065583146408698954434121788831045714503905009267132513161986433686364458943086069532437380201476361247498881986030451572562837602777976212652462286160553829556849899504175116061538469437822620597233848066151404453066564875390815517009870370332082899238021015555050396977996882251277953324376557647957979474558566758334874409992303130153619314214270626265487791986643426564580532894580673261760537364583446365680856677900034770210092473225366628668279122846439010502630124823621765552074164522333541715725656574691585587036377473867228549854336415090071428673592939200369776781284798623355694585668517077835544036777205342034901836832504600694935759296681092637537890646709536603758624054068126726311797771971945978043343467417520338375112339417325876210345721002574634665189165676534842376868360923743649351777362108884195123095687818768224931208193716359983347251300660361177104774098292282818250847858812189155938567426511838629768813833692267987477989174297057307451597781243010605507562280008563621449879565006564031880321007779002811173513169649106472891755124638499344527340167952286625844396841100934324172151421860176519963814104296941358327264917158062306036652073538963302534656310101976059926847077960621615545453637455453191623982461508946619233724630507405085368639521512243231569177618533309183854494492080188736193366505064745931477620462388633345637624035924515393659406643517348293649768171595289436568342905538793337521996938561251739210684372176570497945074357563236341978316450124051772479307402191988528403554693240253697903769940672130708817677673087561834956675038997842947529340413841344698291530120350739366097195274990627651831306780138149303824137534308152135461991303247768351102046875079139184159789983787223453985759341736917934016810031304146414274955073560240690962521885970042038130193337372495579567596730245843706778108511800612037282836626424715041956556839216870954071004067592882321688056218403183898218224392264815784786505080902243072181009007761724070051742964781667696390127917756708094598340238224407871682777940819213935638476396512299603564021237157645123069156440375685266235023316601626236930970768720667694323588507820219719613175434388529931487646987656630714996668766837295838664005625044315783106113764071624097675002786902470085358555323111929961999533379121811259852498944239298843288909235995685191034635346497978927354025188893620887308046873899896820859226651718154266075449766575820503031888700663320875415168074256270393785555338166608281971329967073546378949386611520198399314598386850801186518888540286766507461511467020365105400055050265202789013914212317062769302739528857956317336078244022620356942195989594425980783427142921330588523470721719619964592420233558248385975944291261492411850344048048275459799999738449866324528855486304559931913686493648179570886071635696682760027408978338293509926456235958953030758435629809587241022805214514241348456651330790093056391202509842985954014922084092551890501226822615400513944265129186853422641317022977337339085490512779508724482331407113544899232003521170691848722458444534222284101431670378221027914373476503751095795061202821781071355412848292706436505360249861584500375737345911590973222746855069048905920833212633900317165497930154777712502866996372640137644250473112434353350197144239073258615662103908169542863822312579649113040503630096502683628101789054741004160358908427181258856789112096161237108100868932605045569177277072412605599860204198086222779084041688099026897158679793012535271703346410489680145004534389966656410236949913307249917796164474233596602865875085894357375622611917974108318825325889999201639563600648571160454061258754884614401237710319794547671239711010545728008457539670152188448801079208571162150576536032028561734389524824645034574804870746294303792134396711849784942057171646492136474562403218625351592905372444160692618488829042398460892281493247503034333082466688422763930105636477614455839628743447819652477859784439774868428249090207780649517278353037569087198405730735698805608404834808031268353043279529572078395383132655681502699231705131870141586055286978055419047036726971315679298670394613124870743729020579638706372017187919970315002562093653718234826621066603515440722426611127507339615464483676643713613463558779031433396049947897794552261366780264711562549311566639733343994653303097860297243251517174854853677458891717963757466399284102087389292167899355337480105641747255772556539365056503588045351298949905511102160922317782933723499477083524446757033127549605023754469985902905379232175710034697566865585734626379625553683101420643948074840449190173931705288640797026545171756426849435207709599222192115316523422615756185910491302665030353252262367544842765554649027071545464689459808592178937712916276817299284907048025181524349060579318255758558674812780718507962716900427510701890730259461725354707606413444595100793904419406606725904100566141255516570300588983702118174698951822214050735250959094946567421500449456319935156213281199833201063135010935195609570497206786725963571424770528103433640682091841068709591699451775788000282427468268211796979606551487286813472866096493504820649009834520173949692667688026794656809042813578921019534166900135583669276973163371672530169567028773173648151298810979325641314626213295130325100488626809498641289375170256709901990431431741270038797300770846753800907322243742651943804484392921697558039697401478514933951705896547726951778411306885416462082344233172187472677902411927381892471776340352507115276998352741139358035570157355848937685367969235359275387940841587022914686280912416145705113725525773630553391613382900114788802916227749551345790298945420732280863720678218307881599392151726909491346227478099959067554415094685493570115531448389575747035556233177871834211306052211784623069852072048770219020388136001121338061422427860447547778627979489389598091026216713491646023500784741740515690679182376861609904618858071414912340516500814565983553667532527263833739326446567543158416885848898803351528834820800264738759699134983978866386007661697971548878878322178218360207677570600752433753412422472275840914336324898196998596163388644047048900204635376562997597236981574849207931603408176239715029569897907911998274287695027857535751724620408607427847936701862985366143321859573959031865080533743056253193569021633451979108761497700020363381712814496514171012845383761146918472829656802438339298067962780997901444856980125766224222262059667125733711272602293219199514478626613762837462218130804464022117516168479619294139264387175951711352740659068839929240292841208197450426772559137071221950739188155876102767094455942195896149157955137922802137651418249037942178700299061958509311080518727955146460156362690339326844042745016012353083460504423343891944327288305870388770832532433988854348530594616667619575887111981912209493478287767901044688245367376012760298421806563115358387061741924199682223547022372030529029707126069119394460613336499764592359112724949154621132852124285361555488954655058023821318253104712796075904164350262984982259256305111259266072185322891933310893949419691957851472279268502403205903236153673486503278737559067960301910223581675315267628885904872792369358155337212589334419217566052412917219056597139022117193414482747408226370351206244678399232601179021088914533535287582716396280865625128757695242840344143717090767386350146130640247776722260919437116705281055975035222100292337245900774137559937047598962730707499624220557458083325791068266216817352605756967506652631970599974387899924052990779728023737885127775676359777521170716939974603862033185044317980685801887329536218482288484682866450550714617346785643521879577497211370377756910408992437690252598496333539302580710905543575444122575284284394104795225643993399063930084360118630772466870736430927240345988358933069718153157771678565586633151554107607432324085103922747835612150355329767217861457454311843376779058114462363918647669833538452012324476290825585639603626258976782107812117064634944870946920392112776305475731151020376760588342617766983419823944196330150599686203523694454058081893023908100343591075163515631812636420786373860452390757053744331080974680644082152997330125114324005221828272998518214992230149771047480879574339914908488158776522233860601678559829616892877793352178733237020383448187429390969058470944076789892564842397574721744536446853854532915461284670409107182742062296840642193424752472850161285378622656063364503184639025124661947797885225589712109115007327193648349293676520186799263007880360317123507740832403616698337116389407148531808525794341069692637891661510975486934494506224036146477108609692351825889203874174815728410896915665057353586712861707240667206273123833093834431038596682900880938381258724401102265394247308778961646211216835049636300561708275442502561924985125028160325004972269175789369855167312071224756927034456014292352802929827562871124964380737260231050310707314990471197855375698280653301567525833237093673912982768192770771623702695712381577051663389545855818151052592807137776750635679324660409854988256590403931511321321948562775742876814845331445557631122829464889092710736996478662089546514434829214965998561425163009321961689458569453731507550752462088947352947194035443974800772942850935766500557676536877428061281181085621044239775626954369308841530447675540959662049912864461506678727806700341803453114842790089611556065186552625890314641693313531988111902284393453953469783640076020078084122866273642114323673562864999462521195055951927419744942815390187262161405302314394779404721167774603944610210638140216126522473036014180399025686748943874816110872417401906426998747479428389143579229113516613076468445290260772205221129846901989323127448075463715998794564225914550906452066994750630498626636369943991433913271014043721378406063806547922731684963594887311113239702973921871010571468541875387024583400624217122567034478106187183275233323059959905556245074081116349272460055214116750882005133567647419961743329291077509041626426029429935360564861695785021847232569265363461280687967157220479313208194221496897196587059046076543881761815528156263199801081529552064528543060798921381952656715803369617376566215380825742886960258452199475513066020159197100322633644127754789143997139624823438949021145903004880665495271150836738338456074353612283634632861190805835873004448235814573003337418881803811881494715451998455712702683912739031380002737503567291324094315810136485395608511962551158949151178995866226641610903579356278499768089977213359817582803319860850073969248103154837223703992703488193434874065756043626000454978019541479574434839921384758918997949622760012354206063106195095950837989558635519530398807817332675187242654222515675901973898418171966558406592592589620490593284567835185381771676484988285505791451841873630683988896433516413657489766022695938095984305077487224353034344093340133983869262054229954303163882599421935335498979953497116582890488358758582928294066229010091906882262430845238722812920815255536682688167913344472641293163498786463761422220150611749584431739811112707735089951405060631929281255925512344474798474706296585529122797826116003543642999668549545093949787451209410276557413690717130474116067493034502279930730567409442221374884319010249226218181722797319955233063931074327253795472467117306654878108371990238441497463012253070369864646002204884952585624289995731624234676570381901141033151341928254824652670998859294843171635427721476245255812990407057631519677704681586239806044484231625883532680051428249594905427428028575277199054717831675934557965491714898416435944813793561176663308239230272953453426373318959744014254398268166903439855146596123501100285213075249954146392783435979027493811817982841242998425199454349452414960842162976941918312545842079391499771215563869914824841136760935309988987078217965341856503197203202515996607370077938800082024600881986798761737905298870930324936947680151187137956977569958893927373527638435964038190268700988405972218792552448983808418944953226969496746499648212039369758850766306312421004308893432353492305181015196506598281857721844317305407145486240107622601888428406025381894966369624187726626347735157679557886201248269693315419681252329302230044840852651110221458601040935690213175720560217319625973739457049256017810976894510449540588429395628178546529039375944769835431063697316748089868318864618449340888891997523221554594455521986688864684395623331399220199274710560774873317070083514532765160076146347027032179329505142221070953396889729691992708500232071215740856365388773230755373520829048428136641789863193138719787048349502202977806251151462785661593170586698961883067570036853538958326109326899445552765165303344728656685100001302317348737429057964846239932489516470101245484929929296813782650025174105762271603277621360918924451393534014119147051463362842201165503496372228352906953104268415879894746786423333469684019497703276784342670098885834523657696311965416317103563435634263009236388303262737475381644626890729407363736422575147028311064244772293866555542543760265696153258900011280181562285444768903188528489020144110325278567225103525268992084771222310316041097793359119844747634710726179607952605502406853935635551390798832945516638958958333050764235076385616394605430598984187673095603901381941633816134085875586141602728876943740417861717655165106599649532500519645992567294595192322494170127904896112472897876438720271635768024400270723195417270393429571043116723104727603220494621496026741797218297556111603089835958967075555541130267008501697474388629665934252455246449115870251889253496107195339651660493736521597943690223325235316487950618924947902083224823259854520461845051437699189688146926987646803793921165309780406775506678888852639834891869523082195784510723032814395457531399950128880345687493982320168619892379776448152407092170710122207942808606746979356229617015667952811482880938855665142203089585583198603957992606377946564865520095514303424877845973848506632898353146790059699415830555561287958853891043965635280593831756625488847517012727550002133455835879807867750186560615262508807650296639658859640272940327576749302005243087631999092351754483175920168630848694014091860171078959395075197692057186791876261246955402761252317497625392453573655247253890435984452357307985252419172620178687956165982899473730631250876937732766241259391463121391161057386763133244598591327028451750401073666151212188182843337833604501124639249365625617198477887178245177925871927667702427702425825072550218371253656922381589746219085552937346927511979914369683390150028976940623069253961729770276154147975991229172132848680954364895067252368852728300065209791554026582873207120268598817823056189238844594398955867475693979034659461989320018312605380098487875214416729025417404443345804256341705900413544711646770285669443540404642053558050194325369530340486986640688308645294986882352314334559557886236335170212325361898451560271835663583255489626475952058424787106365323542566428048161380860817503594268012166669609158378541220649765779825143934879630905740219488181546823618080326196099003387081304242685376173369188435939709689187203035110638953048122391054743783036506753840544919492883468349182752184365819232376313878267940227846505297613076429858797870689485695627434122074708566756637512485644703465518565697423068322045501073687528365140790070956939252042556464559467689161743687883745178585205214432018382333386635509378915862330669524776254644624688986868743984019498729770320263971368919953946873086378651954903304064809948299063514301859863954261829613550671360868628434974725393698070253289201610074363762210932087380245654940245008762091380186730462827343396879597774444939705469443695912243662433293841820805580718960188699104364293563893692104252722764685834670926475663239495339198309424633077021731307439705275837758472949229630843236842857543211334105567322038521047756946540549752204021731201658667245765827032546299844324224551677428406069465768411749518544730532290366305990081545620237524478926792606777425809889293132008431366267900672100065407326799950286004143016422439825235158058218672614899972679868379843472693134407420467330083554471704585156956071838734502459731191541092435748064974402563106645786625334807998066315536620801468237476498357549927980166337596926491491686926665498350585743827593074549494431157906103742094059743389763810277271170796769983302347189243461483007290560045922297019286883700069117335918427784491410760250544142371192304724239900469118363681457520041230815396161226281214463388921188046405893474701263372450205309499925975734887504871523656199875261265432898955643932895945164979524583456072836696060653836580040156985497972804083027656501759852128019115886080418013528580104639277355971004574652079414629387210622824730773154049583155125799293004740008089410219350018913942531125820359685330902693044563643068240286112421410409465694872475247565944876964041229219435693449284014232498426422748522334917954193797537313022411514446736641945600853917625201084497955477695537767163338369490890182837956963713420973716471720053238199285941295648548277350700850497686196703689719567486365120464132450450897034873176773796607785831081683982803475679113554828914602389100162174826283686102133882164526309965271003083821823406240650742362153116190594591502863722256957856639064848685728307897524962031403930029779576440724816665746984094457248225402576972202754561188494382739586455862385557884653530052324802172185156318145626237393309424969765154097620956838523037453405393812859475014737234205864470966393291280373712496193796917437412160930411301995657666669210424200101619530545730060930995394929023486932370244203416363314371647001302979869426824371538501226971227699579693950972772224858384192066593236471062877879282378441367141663604350397361213657253964014273823316278180767871852699462121325085662565345532896449256843324806905767393512922486952663506434679090279118914708959110457208318849032529452763695000645461133470290352271109685730615063834184488987866526290654243958015789346764058592812210945144505858333370260277283640864446196112940652692648481387814088148068991793326147078826104426597975999145196399147029276188049038727824579679231595122040380043046894097032262384266044900172837151527402499919933973709739782922021687067146255684778631777378837810617563707108007168480640214137287516154461617559596911163073145271527477195136575789331930372632336357813614276044198381092136994588298437686758233251132513473751702563744368355527208214322551237034008244497893223375704315827954916040214352124985512664972175006158964241092939239989750251314853376760742365210879549247808264846626703858322749069679344280603580385980726125650979574208806597796520102643300070504718887667186579425310572324028546318358999543653055397428696245248820931762775410069367050365966264684920351422005599037011578742839929196506931470944921924659754203444464255012633873696970607103270589585496945778722012793928657458203157754222212611950954017211203663721692339203667895389552553509987794690562130706518752501399669440729096230989144384234582815942190292468393100000644707293997814193629415828542747269292548303433161597311011732713413321896812069094531456158866849509843134579607748474234069028435294860028899377344751949938702240160648406343738195573056580906866413441406985123300820923944654453911798284990351164991318983492132163477185651381656282725218124942187868528148705699376258926245270063497728463973088086066417992913827648707038285184735103567626819766587587827326310456039259385144827906023988550041432725887181919478309184506734772901409869730037064482799438486881366927266306122106332554651190531869753209544907977045831465385024095969692410520861282259525566678026863490209567191157625868138220443508405383589885508031814706571646134671276109543647749374194383166082688450658291199293598177030528697181741433840081058984919420721662967917304207423538716587848037171736745332760156039506530249277422770050880932656388528212817570324886825653480010593828672768173948145837468798701415102981981859721164962869706181450581454231208413701423457417892265297445388308899389822994944879764731783422313810856196913437115892613228633996681425190937461379449993503156681319856178032991830901282867469951731487093070281137743709884134454624355340672822594617325798402842710062005262586716360333147449598132545299580249435290218047475023508238630231925509987131554566674755686721896100401129202087815186273011239238030712077345423970603873491631166932676290836826758843349440687758539654529793365147830338224819269257833450000863044018970861883495128270003356720080314120531950708771334503123594860717314928856267290166581342341561746172948008762673102087761915683780290617902786961226268729812293299305648103835556240480175617620874867213609819910127922453284383812522436497923294437560144806383171050773467672874597424736307276377778221341711766667382068545606972621207981941103873359151806646354415577291141989349899963181089942320996069661305828694073893363982665683453445922860715265752809969836624612854135008742533300771021133331820798925735196129652662431098741361052706539763108803228353690460236356999194544918892985727554528180963669202851130269083890154059079001386868477708271441151820386043290754389306846909686339995870510838618082143187294910128953092290977312497700361315514609291134221252492517538175383906751829080852112598648671734077239013508459559686673745319896271687536107801486925803099458275208500536942409732442829115416492126531997222783414786632466112545279508722804367264084022680596186617104966699680077367780676437199009621214399275696897190853984683591262864048161706426595935627197296732098785005577467164814031361897013199543207947489909608755505742377803385524244343813386052759390594744263068519756740239212234503012527812792207794024321390307201261716561270468123237023500979488943438794540644974160142915005669702332620616511144010690207321897102869905625259739366457138561907057435509128586368916844039850437299123174575396617526261056625734736504126726259415535505924998001613668997487536305871538638983272305920582111668986708811067296407417534086376363384247680198687105388632097779805402153991578370207389913562637126815964970010462548864175111297674720771497926218003122471470386946895024134659265676951880177100906619346836440780776697697597173032162262755553407801006968943980669689300329223855208176227577540674853714365464938003678078387574437333092225045118552202228194194615607890851169456385912351483199061942549613833070496779073113287288690116373339281533963920935390928528951886462023984050629086254233782583758642010332940222113692919309153872845099941169540949791292192221372873214863557718598382237753387288991671683913352555968365562342741216630623446430074127774702889382027844921368997361547389659384123245413198814385091655735661951790669353234439695269542870983176492586552275054688128946933154750350987098282046415482211011378363145932644983310278367306879379288725033376787726816605414872699849749548774203193025556528091802660844452251973785380154700603380628580222754026481726890619096155975303798208072408435045708126151467780315853462720546671507510706771952614460415303757609847154081051771398002054300922352869145466049194121231589864705384783854455536607811329013340319174694780514397281163690548649281151605792627040928848895582334275038660984548014673257372617592320378276702604171072817917606623545637954120844118620572879546078908503395443267264338478707038134605262591929425904135749246716377127689559557092635919785446734053763639969072347118738486847927651593090997509964617711196713233291631241313642381151631947513785936033589434133342538024932390514969004480914562714721911146472777929950087176640104616792099143161831171096351311426621074846686857860169769821312002003786478737108077378665882616937907918003599612155634807728567998140173811460296931514786276256502811750949885865836885311506431566491225576868919698064618346478223884501653932613238306201952691241428819002265703387933528566740441032208540914063882036355469726198949894845729434498774305794386505874734087228557399311548895942261090828152804982474365326305132339577607788460737361668036913090086985791051933287135923164782615573895494133736396610540711415814870300179386525853363813892340007797132832405603041199008818442450570646137201745820482608292048354526287511624680909841490142276394316496563958767722082206107474954353643899170296986693847229030078301387510909078501239632882984360430535637365901669859750771000400941642680561087997608212668404442921238867404807071064251261845639759723306936711440527757885431879771287102841507039153642223870828835611173023582417854708091416921279595810619211308583575589763934396880726065404266004274278086534717167693916276880793591480372922335679615675668051241092865074880256916479591284704111109232787886431033343351797444977718294628991861414637110103605794788233611089707704349661419264439182376923081946812988739509054639474999499933276996701241564246070198269302833584465408201693673322472971864803027867569315292197943869654240563630002675210669027913861667960642007629131630452403707335869460108737289360164738955266263897828043319405737373426036514071017249866214758041852279122510273611159579116398342016989086729834330289751768868347432872573659622763292082960056660079291640392407302698974401942650273673372878870756634379462347883561245525981572898362582793502624119523581974071555444119954382397527925683345173705909996097685077789956130873376574479765998294204884517883321112053428186106524247749975337251816417555340759870123299291744296099728728216213925981128446411946005457535052165328109812216456904412387842853698815959626797464092770731264512312710204787708157369446772435293215030170818297710556069799785963116591317108598430745890297566850173737450923563100989504126542813500545773248295917629027813835491469109190857251561985676913377956753507053094981462910372291665179496290706285206087545921305021542465621201834128931626858213419057317686299189211223035112012813179588287085564488988962449293620904137729138546736520972165859678018336817388856462021492843542913680047459012630306209887298385824189110012575525811436223030780791880298671176892236661230090870691425432340103866948881350659581480030177901180958573571916495403687154291952113418962994037466390137635157771903017141738973000331963665643178091646455865818176521852425205679034164198203177524229628520085927014715423641360482348848457415118168745023064065555988671517611218092136659866305333238187998662471352846948816370628817545431748541901799889097828514966150123698548825927654693206364074222646966590187484126672414432818124661350196574165814813530667465350010993759029717926943068899568324352180675551195363954505319989693073306363047049013804538056882419094010052056219793520186728288191400177840785007656800328026557557362176982661285914107384271538001439103484802280669777433135182374965628399652863109404295043630507419415651468908216397885327113959455218060894160613619456802122103952531450564352801099590693889462973206790204630932956723475246218639031173355416508900700456936447334841970928596368841108051686980165369817455333673248788616876895011582588685284032347090761126599565166927994526739677077504911252647352058883387315538541835367326280081651691415011332487496620349733664547208796315443422983545666003067443401984552147934370876778750526202713712553094706193008949997477267298474249658152696132173489740709978164513111829204338894897121834171320259331928645687940934735174850116679378668481197321809997046002227990479679487985334007117945286767759655384018718228929631828386960663536998211689097653430022849308134918033817837462121035328935069682827610962255010265030324285039872230711671796265286666091228050524944939126680693182600528144842328383308188263459369589942260219572933251362532430998321557980318907200497829037103134538370625243295018617266472627246904280455856283096219532937153524835066786605602718214775236821927201379690779122920978769596010600983409634948181005023121158335437645516168755492335136331824751044265527360221472459137911165231332486945331438296338039506720146248939594408677292620435373392220590687973100459629326610860387947499813494242704070481957553859601345712656260721294684435416211031457341497294452420284737040994904418529314902428506571458868000294314528043864804546635536599216332458834341194447999611034196854265821480014940166811094325519357499270383741424029242182642685991368779545260358017552840649838645472160871673941303287003470226738933081413698088790003640871739725583139212443594111481362403814604369797919397562338080119656393051796207848295341681136328259330853824896182468248446874450738793364194075898021124786717776237459042754805793516502208142308254937508917755699313088812346803553013780562875652449308317306799193760035087445409370314179186011758022641574807695938483930054402104846034741583394495177956154259448486473314222405420650369116554046648526687537966653580747058105860659591739736422150039027605265491767054314008444850234309434633156039511831116451588989212992515139102217774833182844935552213276371071849978720868669417232078697148389491373218664103358199373278558087377546183727582661622941819543588759711657362462288919792410359241419636481001683058573939579740394471554511937816533709194987382832307068079259696935514797977109563939405878687223107982628515570073245246176216258532504677698573716476789979344133149475272451380651939210464966125480966310815811620015522710687692380124198953502691467317407525919566386124827609061821966161255214411712577024155854103821691200872729268597744951918228330751009127842816096417358390105621293407257641380817112880705220243760357573394427882622759477530034300291966454567209998466033743065375030320797995150315895659604576695986693540108747799354570999893686230383209775327171930867063131351517567298503939271100334160202884623658435575364488887203178088540199112375867003855531032814727682889795826575886384997398215867905624774211752908077778112673523565116603351201023309787255783826814758581534157120257623100532293609568269276749236355225346949991366758651283216483121980739256278047088883134649288314673443257067273834718415406884794571805280810875490646287823305909791086854263850896450742988242615509640404676592936378981391775446778098694955843772455562638970972833694594402531384750010843320061789672600356943130818200962348712618786309284640251822721163771243342780366564050517318713246899164831740945894567828266754926767369577484940039985709179673098432390369004859854965025742080965499966032758953967313804445267062339210904255920027552848048744033469188795028706708025659786751262810166980659847561339562067799947311325868352488720112524021809092485242226974543732830851644594386780005393611465726970037741648101314733278711305544492833877844564042503551912247847918033201002897233581554419390518329427134573588961701583388599045021241067823969123369752209067904066395080143970500340904009980497456361162228194397088785748703653960755397346271951937300460106518874377896120608103126860117171170487818458458097467921875991383943474464688431638060465092808799971742026738092950741744694295444264510748403446250989323057405943745154945344021263295895889286939544314318375825468551479986578400756311396447085059738572967973091941801716104855406108669295007590931936663326434931393384692150631715023472174730986471807255767978354693700319917673555848935499599667955425428106775965224727078658028256522784304058188679214414874538625904572369808847895451459581081178950094976619197941434098646947252391168287049965096729818973856327885551560702717310412431959924728515677224214306886644162496878186790698288505967103979601480045072893745128225803012733924326490523981309506659510010045620852897734672402768609767415318662317445024259720453323250861020342569323637274297941932553314657278918758153379043736733834129329757140197368010108157753497840044330545032577715345446912404996798261688060349606343494766551083688048634517714508050498887339890799969203600437246978422896040212923758386305757324686568049168493603199595673818150454032656939777661755726718350694953502658108326846500170892076366203657244796059998196039320608403583509861370571230000102945883024285558805948641497240731913575872398826817101632123888920260272124985646182734290108649293419889747039435012425646478413468418266038237673374846680067042753847233559468810785602908574166478847945023017420637494765013687614283197782894207884068569777356277649183594956444257627536906792692545059089435309517303480470852413360070675994115664861183295452677035640220555287949448583776978156384093919676253970912652760159512864390144508513929850241307748395518348154708345832247463287087322817417064498280360703921590413815021725456013840118597141593203552202599437635754205672630132682755241606670556341191482008095254037956221116801283711554260997594949598622354956528657515496579769973921509204928093336936538050837108361290127666361077134901282102664194367363959841803373792150337820538015354399211099362983362462149829008611799251449431041460441720493980042692420196825196870084269918412286449062605607492126889844975902294887932714059186193258875729236968296075766055448401663920935494491288992361275390889489308733993372181037631687615043516092221885857457371987762731695301765896133077672757921698602461524761020342833007771194475977593749924485720220469615265412255887155744243288458036160161388593197849892284279594315185894680295750592188424854515648963269717165371105591622404823561624509216592220455855409192347471762325094946730739746556321257200974571369967551257808996214671212669038676156594603600193313566862672551489473768669476270719848075413354802272526469722695477442887600211035877432072596691619985603890380524367717049411289228948409894176215012834417950971255682510953396519366497374593189072037880510716598807424598008714034417503007714856695213793306305027909001131118900850291102218659443232324946005126609006768587707116974134240777944271637765877990821877411624043240361745582240463162933693070012234548649521409709563978141422205151441812390048685839381133501757660524598181814630600362799858890087447888552171974896615671865203088298185457771249931322583413741517180037933666156997412575989270884460243279151235193051942253914009183058088797932460653471881280648337320575150433097093147326125393481221232534996039018551118813187407659172169195928090586824934597510873538323086803486761299345709842863985906473851340520834294243016315249115155108792642197189932552920546931451997035260823989523846531986643115750345882247930570401802427374384674296348851228386233531808391682567934357289971392747445528275025141719683543621252762705876435982103013297207056537814040874304103901931350503107565349935295804796953075092572726037135766710812253522671645774233569915633775764631404375342851478634191909808265378073979874893549552367873017444733632597513725513517702150529512810814219800562409677688891534226096746453105722014445907686499283099634045576357926310628521518631312296389431045358397879860621295651532360827491880325388037995210888478413381209870190747308592043193921822749597584746928086841736207597546686142756704544301421447812645778747035285382463392912737208979744783302050686235268301996056011182557481629005945665908913100666096756166770413491856803052530813674346849709160883578779212387612763784258576868824081922165480215045300824227495434090696144271893638097935912350136245191402620596417505030391489597714002844694153724597666400462213770631477930322445379198116944502001808763262939126513974851409080692270475531437245242623891604210363536537788639461995827327768462671670826483868268645731557605150354832972523835622347078654169704085645024588372641596336350004015018276824344586545415163568403565617465214770196321058811789853860768710357232774424991128009025815830057255792160700970417909025311760570669541935141754056311347046603335282398118378641489210025572485111829845051515704354583709643113835652909859712587129482748934961556814797335258918864693540239998159027912577344283160403693181283693896936207468393684033211947550655073728844784127377660100369742292946385814718033220710281303027598307525120149901453764942173263732236772848335708585093175719104788895918915470331933259628490707720818670719314182141986522010005378026809985194989750832006384581081148117396463954042135763721985381216597251886173903212482610429774938233734943740269482655175692203806110493565100586671560990789725687600667692254165124031175651242658433733359757262655141943704369214568871926019987443414701930877152007657087968583706219884693608140381216258960023922561472170747878822780010115931067726777927540376943199167774837697386299429279088074736146975367631241810639517541434826772656264196693856035947666202926557310156858293252112790059841077047081056752305415873142789430507373361710219609299374541859582273193210314373111459746727910756148858314681354811270783987982148726366072642096184163158675882129421896795789982752584555049092282007604996792500143302299095289521993978508167657071495835088794158646817905943507637897013351701370684846603738105431638402549041559053391989401814348659817621405069617947105872568068217108535403445155991102274055125979644125563276805571689196225162610211561075016791284233164573477393733341156794538064530269477958354906122807029448076253931284271551591851957663753432352097042497772619583604649345881479598771748888028846498483520732108189392745128669350117494536059659686370487518586060913500959691146479934866319730813257664551017388633918264632172697711327153416101306423636398150192256781279198159777695249676957501857398920193169127223574724167418289040469191584609590713854892738934100843875306332059268782476479922229924518912615464688247926516767582451520140397024619372425125628509471084986122255506060753642139367050437168599323253042146790740313445006372496206016718819989605763749106671567325663306201627210659786135235161736506848654516067846253169759929006777487121373097361126605921088817101082003837738005314455019676657141636508654180621972407216187746183924392034515287421634014435235626206071041921935327828190805530092697274084884407083371189073731929339694120149824053815826596562858401658424970943022316132599164773700865521667279308204851046061587602353931702549948598103758261994677768606839146179853332870719448259618210330934527948245279400103721090193597166205339098898061730994847437606589455320969894828680178183079068614742170341666799868399340891813784011846936114274591260534240811038115262958582029327843710010880027562921480190612042309734338021306894255527058124646785857900534337913611545530225822986061691956567554379250498837100232110743766302946809599590215386052746069210419711290317781511662038536863282873224167454308178980602580548958012542647210255749725343390456416200819265911745278008003873905540339270161115846661551760020695225483419119261531415410647326659159169306087577832538617030294747447527254697915340516146837526442146918079316343775134624807649609003432842305396682491494528037888754826563432243621557462343170058685033955790024664084670724589184995212275201897384366894878909775065150778076225778378051073455227579173565870532676416698544110070866687270505076720672822219506046423487382300223110196457099371084432594579708226708738542486208451320153495436777287267269966271444015080244021932910925213603733763811151986966231346974941431924845167501584650366424788134369256794717213124046997019622348551163193819465477969400815255883070823240689559893174684101878727633649389874875161706666646714937339768413994345721059518337831301807314429176133350207146696621200618590138332780887603470990715069671882173409405218469886207754469489620802870174485775517026735592226079084293532200723870602091705798948452935663660523793968022459802386932116974785465810548672013145176072010403896228177985038689519775916783479615350472253621836576435647177011567659338777915080238943313236521622846301240328971635214244727215611785398345146095415200304963350938532737419394041125747062603431266249483430565247575568898809876394385886947333554167078975037621932862144817935963602741682824552737249387367513701737733882935255873589479053167307683094917979995648799778122796582134142056808539392770366544593195424915516701575849744490561545340383852373636416923787655839193629506885608899751349926018462306120394835487299787856160890590676572151478244992810702248869601065188630595278691730466766315364968684139430746369228644072216336705877666799830171011310187481290357577817369923547306316644447907492562993357742835812645401009842551848396716483253899513137534333819087211578322410655498207170143490038728716843734251559658895334908417646251677270080565970496126673960790322796958959653580706793485131598907617363116328725167713776815716288895697109665028160494066752343820144821508500255195050014421690546074962740366058591785930396237022719429046490173398939344766348427240760648320858494059863825472103478805451850936685025386563606317616670513992917116986054346326106253393350789491327397325304260825632586887388026696405949285812485309143890842632033095627938198937851795060300288525945714729326894402909360414540045404120420024695342292528645785661646424104019229856956946234136037368505061134893489982264236880835655399247461121999660984830083511259691708161102903716401053071449274658221651027589298955508531425268648888267864874052644157564083406692115369887854513745314631163310651940561865519645409450652773805588459203955889587848646394799550359451351176435670014268827876914765151383423856890388487770233720032384472799182669661827463340376809395907895042723111362757333728294643617021358477986072261258464934175016077316011249764396867734668425731709418116509145967201982490686517912896423560222870566333684233744466501354641430232427961660901967581811200589171186142654415295899630833387164158411758005550822326629479416078558677331298613967215599035563443329466744733837148071828050264200552869716515240253347910357742663522255553596357763921825248343791059208296786216781890000953550000500141055016624487653707146580956104786464813949674569814348771833902801698082273428724165759730971006828479768171688057956619880022566825431987955880480398206380275507958649051866296290558337920195184409901430290135339119991873593918091896705628761094192086238480748675471516305228414963138062270130438924767037898109229352593730715041301217633756111102396127309644183040227921604553221850569888487055406127721879379111887400267238815575889794954976763011231060158008274321875361039997647593418737570343294746543859562104168101279846753176712613773443830306308490787030537894127239072867632754917303659141107317993381393516941715918337765633786542256632186120071497649873843598860252484010081381124459566780173754618383182152730711087035100964571753898472954784365515609377123722174410755079344185215197111660633785783519296254459241854429092583113099277659845430393024978027816960306612269569297135239094030722701083941551779336993944013845382744633845785491436158753037603877588687970140741315353539518873893867817987452256357369320142110090291191104356466270532219440848241681585370633732609850913119310772451605488442554138400428156517451979774546717877738151521979568684804063378002016919921587687634336472330540371181425528061967109703563602709417585824129862412482128140493582322236198136238190373220186898573593092028810202467147648031922267734959500058861793099404170701433675025599347646066175807824895593074774327697214523605854101623164239936634828756410254506988582371479744092865801015816138241486141115217184611919818741337904222147091591241139159498626152712456606657506950131510274854502583957654409743236750517486391780479507185448817599928886606597482956317413816263584458843877846562091910227257034582642958480026180140545434341410906956856254200728521609559776778160302575504012263260262074718343737642720387536515022932061346194162948581445706858491193980296071858417041327989570883985306364195879155671129975964752479296455065273147704580046127283826614718134740187022846142428300915679649025609730740105546474462483979664879462930876497253779255426229812431472467875932740917089928103920129879968476699318832761083158361994005218516057357559504512445200334972837227842880447995032096229965443519471287556096244890767928968160171038572813678070786086687006163029855171256104837696669423929592590489587240708852311971319484033033580324224304525997304922980556589314283074329853539724136612575164671158791718103842472376361378120400794470934484212625281149771643633710643647408935332523365072415033939278522985720173750473614226594543847554238576125995117821956816854524690202212506477011803646557622493603958426627408750087311551597366176592094043158017414357864041369783508709376758106728261781883355529688868790220332644315835818287766202842558129715170019884536450158807298028716585342325112819554888866011652058987916940385112883162736547176606324767637396884427770654272224589431619429793991533903781328369299297394165620001052272312712082833941068507047157237574681553518691463539862587362507247364772958194106011033466648535065046892430013154403795550504209643414550564294247729650489507620976644500687525849059472113764399707738931984396996821897250932368810025684046291017057722201450129056866087453669247405284016306002669290584034304637231321846964032004758308138161310691285859032307452199903179043482399718163773770525754960812134375202215733052659008404005461556088965186043539160112221257216089671969730600826160724148677471395656046583857341922704744774795498090949692345531415796293644190433077781764366852193475048722202564634972931986632324701791931108647071449003194167500403613658410914707690557543737925659727917723987821101463260783007690511314872486306060272376750920952248328735282687800955544412700720787141911735351357151327263379219979748936934585632117640414483558499688848586059233391513402339941400939208469594423777438670848163800284235290596978764834454079832938189165828342873092998204336256283066523783701890404840605058492084125128391015312941130374779599943683151535124511803120418550948939599342102844140744568250341658839022152599798609345470076561532457332180930841646193710046351528241348748728601685350997023014240257362713443551479365348540215936557274630289859536130551798360619786697387284995966879844821280759702400719901615701102108642187564462651819818584787701014607717644090269570650252977382856035969523445660022070847624733665773811385100463104447692087714766794636259846977312230624956441212316243507692544598608053229993068720760272426245257220575749719605536888769050489074020082157478816738120833640248969037665894323997966624649882642444566441259584611107445369239968078163313104821023370066770138301287021706775241659959264446293938451801073699195229710917021204407884113829861123484327904969444932403057230492349657670357041838900511344644987376240082922225713222926488956279732859685638306436276655402042132656559665991138271844992616145327613272227974084637186164758896131148663621151983524520412942713900571848318337081167785390342087027262154063728607556959393043447433208290042746254268001713974023940180842134263124547011113600185820585332064976686573803775644065659872048197416682013418039322978464888284541467484699907780737048015152928145314730307313183281078861785083961541731222800028151823658420271888185616061003692481950572123416986219463670537351182645545985919097296007477250494477217586303599605818407881245355455654158344550583776469770132689713658023418180513381317846571215892739915467062852930953679098812027427991634020128675133393555736332230152737828512258108362084544854683463467342189040379341942846662150080671560852719891024352660614304375055334587524716326926043932238071745612863294451533244586354948478713036240479290876371121275977416188962498534179700087609357519626778205865557309427475813947005537228806151006083026951839930734495595576351587893717999592021972344769881967487395200444905992278444712923063025330434682158780329225577885269377871220236337523987513028446748803798528456911910415697800071301396216577084186668745766977049269788052247436974781514405743899910590282772122992244272790907353969134098259714406758932158569166913609730007443314729726927010734257456722298360152402679550810330112993276766173522568923239206563926459944339967396191133383958234234509741515153504905004023336592132869798475771150128861125706293092130650679266745186827100048864537598849567257597326307187328190858761147815099795283356849355744289221111581511593857757065406290105865293751053746129348183155809504802080865789688883220412337279447466866158583807991944096455551355153850446983179259467946271041171555139381583133595097191289009714248697063848995104358117495972908120979160511508681764866983845076673747005330649823865673620557013086245406841502848490470652364705153378198734339594141788211446382416301731785023026253843203647444552580325024335056808411722559873473446486859599875323696379479389328675998739350707615449443235010176966247822474768937989794287378659155590700438504448723176113339389886385295815109943838996046609005980693388434736429315234357173620013020896468414840620515384374512019116297768569754429759664622154363490819146811439015618224752685061112938030474624828633293228868684567660533588485850538666050048581491642273188521639946396011404913891214703181105827887428775168461013176229544066553257691244690599980402184236757646929971157839871353114433447745677208679093662100445397368829974605599706592134523622174815929375440282744297730210543786454004490195504177465844111638761334253530177326260258684286761524594167096262757876802649352846062872029471953007249881369624981720378525098218105236270941807007927795003725645266195966355215281583656509038101001053864233568712343545568376258813754136277430665645827103689469879581579523256401782720242967637081428206999268004746913942765123542180794389067557493677626942542439380809375499217459151180529662286933692867430827017628501240126711272266568136723257083342368682996282104896450876956923228321526129328500238611945392149208196685077073321266440453602242003328022327335417940306634258866175120739814408068507215622616927826090755096529692032141900134759251190079150846893370295304245998376014728616513763896266513924240550800389743640569757849975582643990853918997185247881808363031130843854701428354076572238373191069093517207134006258050374391516411748416015700595165717738700985676767573472533159315437646846298802563784167516802039401250287908054069172941706375145390167751738632436971930739191806527141719749578110221909778742135741831070196145761376810729920091763018674167855752315462755034167228191307466814461509293632868915564813524850707758342535890767446898068286471858800264608502716405569140686462641413487197962301140619805236865279656349405467155013569359890905362104115426355003245377530777826849796170733599836802587658478084253654696527394603454370765410621016821682453739316501833527012392508600447348167822300072870081246793738654734386734505532604160836695568124760341713042710563523029413343184671402494255381949933351566851687539413520655450302943659534835685739765830563676220444756852134347346831424800322901670977560898493969161022319501596162646481300786954891972845384256837346260300697118969647025340752678720345936247288444670271838938852454642470291073891195070095065619064111225950944117754622202128390565247766632795874227618426365894745382676809046852375447722341685734984785073231207452818711587005409487149450888517433288383432982990431566642833902930744318998177346400532210915551275387911181983643276559414900042675967613267399808035631870901156301057859118166267522559700977415184496413849118277151754167270796354939660468403846948096220501384731441543945940563522481696600508675465380484841790644683437655503268500564340762063245719595222716345615284990249035547418647952926472311063698338661386688040533820404363617205737945072326451631742469968964926681352638647169084557666808094693513434582887816832878538359391562206733126107423659303858877172048587144596503664038773785299142429087948313263876524273504246567416933333631283346477065944407956320122604234923042642537336011512906727423965982416431072962750171421516120735871914320766570215832970965452010944809541101991721367727091751437439953676206032533738551892723832097407111481638400020358953443365829672326365389195296186876269951402273190139200731500379614120148534575718231285687550071370450748906068858931484077483913166889563639822065490054157075588865044711481199712437071529697340419914695962777685779173512959357992523063227148465222810313431040510831383829121077662623222134297468612560455372431733961651791873842727720613514443169712593520700569790040306954516233270809821758321554870399301179192703120930481729824091419855442575284804489064164723057843833035239869025120523513218926697839542480662562403457855409857998854684658196206924761540378283264132627941777608968666033948460633450455309848854584485457976322990511694988642039546706291951109708749556849330128131371562386803104517333164973394703291678990926464188249781411264687168937060411290448129269078505794977452018423858887925392112291437017057165160741542428385518226739234549305849741431049239098483486244787222681741143638167413491806745509595623628034996522280562402564922251275746810544102210799303202230831166943635225256111486835160865120227689752926331164353304753487910202574620363940923769637030317173543037752627036433840728095375033912340949879669711885595836605971786066980991043663259360494753643560220803307084609350388362168298123798907605807764751574788460398465642829334051667897978859855839117332117950717798141046668156117898159974849103970262406225630081604044649798452980902649013271572995850793563920086628959707874151530814289562619208428583073833140019046181057103425850119459065807900027298452028453143208387804931743765359026862007966443933273609964572887555316613361912791141529959202378750290032178284494594280457915311611787154336048565464137639462833948675966250070679887621758122887407768292303999575181980670438864288360646488160106685088240458441663608323274969941785268506444254952883344641203536707889857506603943466858944355729900626799191377032520809720806567576767427935463793815591386464519851986552492547239036326449075860737282849993560246535917538240641956483727297278367281611972069463490825510895211008926188241144410963046420116151121711511562248821207703288973347974384103796263321082110957907624070497333462188411485667702777910004010975158214091691825124089442592802687723089871190604077755202830297855175872996346480588834831535442760462032020695038703723660672808165308961568282389609281526041083683086082639337925249195175811639349920492467108743522382477617115041568667145672045140414273236159102798127100476294013915170984638542941084512646208763183437050724283786136242549315838709860994315702072420127117235363332000626872483669484054982654415970593041108440963078559350647738689791692789833841800504537508632936679840031262613579870833890937274761028150404510952708785660346575334005793324102288312149078644686568531308322109608050487226049828927720315295572682771554331290350294001226748870633642346496263722505344566716999219454665738489618094334943220568558869630933810974655301330011738447926498512471586145691728851050453015553101825185616394692864644030391977625592021833080528003848755025301950541870127054111489561924801253836536372441071103899642825638490777086241837964861186221585196694681735489564182282207084791436370064082323070303735686976327170740899319383482991928490232165620577909654076642346052769877781062373109480591776727858126913937232548074911878958270445961217322030209746768192223008268873404203808163918335599902502206836945463551112738909961998915477938461906282642303689200961471436281508499955410213393774061433542349618339768930142684167042937202652186247731368839377873784640166899865473338298583005174618262864537763697923672433384896017613192573310819677510940631177562157284446101594235471629012372624657218494796043713184807029522276089756510656187748434591102795012563787886861010752144449220898131963816650332368702523504578171058058067985898882876876394855491424470817929935500634111674620291036891580342710257261879649353029612455892809433663493812831219140883954179414094158074390406475086074986838684218493977375786956505566789033721170777902279393773630513375526494442521195909892655581783109840992371894839529864387461143102085655640127845586059519319250642804265616891736469018089311229311372756317249025200086301858854999280109117882625907180041868025153160212960938333970382994084818705257115199145912171067903181103713948919665308932135575175433080889219189229453300478998599854598138526861289413724412515638074722608450138492294515063320686603495622134865194121122977235367523246078240767772378667240691574425654736718373166616697979580906667366437239295946708651216538546007065167978696627316538445509899417185570101625749350365854127639014202694170750948216812530613172772787935956897400641067564300001470226996031233157580028986416882288775848892072892511660765101789109773720517937766534576379238595082918469651575661511812071057778515867945011860093989440934171945715469412252853837826137732493108376646368108539080833487646061092890114452870095815285225558871621012372925494884387877178967499201619330361190734729404346930435476196435287761185817710672114990273510980232098485259213881580055525882843790909686009119761403918835180429327686056463139040883702853687759544425543970222974481442900449993891474214228170534989038868583572769084503994603627184068281150433072093823668443451807451911093432546946172998534416133416872677503709637111405664423305002234073935198397342854520944403860905560928324043659260522305373470936190320649635980153064865016079337572739220803251143727503513837732467904819960130704697786887354852115118201569709350538070985555084646798012473965673589228080499472284073662078679714564124897936005115188129819314724278628640154044254658981042449432508809944479570186751128236826678044899627090536931452977420991317708923082248243220022447676481217469773427452367266059321873209349694820179494331833585685482759971448824279655685448498156367131379520444440046830576988154283598241344597428407454527017327167551466327154611852753924249263504906121668739063395792003934904687833481528017084069677357499324022067029223759294541633990945651697814849091788295245043737258391148025080314830391758173501299375549540711806288839620607691979016473501794232695137707926171221991860248984924654683750689007985134722710352297453426116116640983072821367599980312513473502051813912647183832484490328356053487121210417987324045455344153568765824133709539853027430754579892725760025087606818720212840972840058623717993846589651835607704674484157032668023488248622612731991493332430785056056898375665109727773435774227822298549927226573859025947563835036146192632520456709707525080506866992820708034352770280840816156016693372574341007953760639887706188924699944621151559578622597529297712763010887880570650863272578941900735372643588911746416265140472861049508699439535039891554122122334104762130969933472291197448716892523721811818103661126171776022470203110876543327552839977768141415268493681093779377366772614276021899057822826420665681819078734674356419392201414900047929934067350578622535516440171334588934388575718041794558462757151801035102142232494013399541864350115838425616409728260963770860346904712765344016931523666377072826825917116034367964020305493113404743553135629766931442236179568844181486899909070526842320867851383510789814803851589083066083437370598217720342419229342027454489589191151874563244940049164463013244009877132296669855581041637123429717436156168059753298046001822059652229078463874002147266213890492717400768945218384201040001524233983119707837351910715235897709626908414490660231039711041126036434366369965327846400080097210164231274494706140676192600184006027897499432923023682618894469584834433753846859776057144541777825585511113839180729098295367005309857896293246229768295645577349442017482244813808488422424777593680180083273658103785426975120863360635788958367433508659246979524692758695731135683143926551435860782138118027666277790526174636227020875816743264893764031884799241289930663199726822305811348710135408433073622074607158924615733829770139670581522259666964140259894448219891526330385670100330322975616752561218024815480497907260182316720261406636466962936597505484811023849339921053669687403178093242302919162119629577729210020265484522575119197228664252996894630915798177660863279642393628490330144944120895552764195440259824047905149847805022560579075266922396901347437857230527004896960265800271990651890086506040845109272649214548804644643165597519442524628745095678555887164647906058394120947481098677110761447752641447371292262608998693227577271904007568601270695278479329991150455236515622537986424653978397914969491788783347008577055960716352147082947138358463686709352702453864510587558530397143474640431304283876140034795702267889858564111058349442677648050247702163842591238685156499528581906308195636075191113625357342532077971646614134160805147958296577072973479523281298973029273633796085515996481335645955382089916730629986321250199195284474361873260956644784208619150792631665587477155745824371016713638396418500520558621937108585691124691565545745545269454449970778033852889055773562642028059354184640539356531914070983342441144918010464350498711323994969535215337813644300468764041890290511476408353485081479323372196216369970945942959036085620738096504735460437834079936725837676096073596354406335004690707702613225135987788065996308898600451387660203967216043786320215404296006583236377566496309656899677708917514079709742522279937149963009901664017815580071263033609280186830837911438103434838846695096900417304218927301125676127795701677887505500868546905938369116356532028271341508240348465165289798170129503146148405558822452712551529032239740738550730960134401715624611386846223137029543502799199661444901670063025404071757064858880887192045708386686987403933475137964676071188896316223788594173080540547585422223874030366299517368987646196280835058891369231438327791451508919760166239399610036973361402628306082277164504517273964256529886741691336404138529978904128012360317739655766013186701248023665492147619086338229270935323622471893070011858761169545855194301720400256302640610616663484302430732231604366449584596528448488660489060343698663580521949386241700224193188319455847924474795687626984145959475010479622116118762732016069273874812815898827148027069659554094968534282168016339207020072262585559470774759964416672099260973315185215425704189039209339359146612194298174342357772185864975298782176492004686528418292486633472676932826347328477481172755144871045387900233771139996726936711991173805649949980746201208023348351710236687888457862292109731378267970235563236965881940704867345762597309015695313076312767594169627204176610592409594456658389928522090098849810895419479973663600928467915647010475477359842580526454987895895386464018690276940241522918907915378841501752860717090600858979677069984420366417377243401527540848852097982043362974097386425553128505089487022524528683532441454101853059027748011851213586099512121701379295358224592961816642660055782354285083501781407773296173651198122346939669623489761578033844419096455259127728055013102697928482642128087953645627850772205788804945624690692814635418709250546678803931631563315510643740110471062245931881572827253593037492485457564180512907488144824584018724009507183245423652391135877566465986229981613906473217861086125826365174810861710689076291223243571400766185831037060065919196261877586924765686077096783461003885740662844362336575658127528388786458802102517439598447584154670834790778600389364961295288260847815042636272999146660277340842662298280858860827966939263788069174220276517238379878976215947835870176959827341347020651413166561732706157279321965588001438549218801986246669501519893711490020854753578066355363202183304427827997638907264582248729217001849909314029660795007090063032650634222409921038180845242899936830628131797544366474343660673271544137197288429634912478032271139876121181743390707118751021292280051496065284532612389629064857204895321609672785041060380954925512866486217684638861961480417403001112275965372724008783338318300294894946804748171261772164601217709305804016888997202139905458178706777320602174680448176487703379658502627396401916033162711607253436887224671761995457929645881293814206451737603295819947790924290467178662509522305270124811897322600581508256855923446893273216547682013672471753205816998772335255162371538657178323428505493126667200481371869100577387025000092723874540698277939072863580971761668640534439147709033457862820757468890257459976981532113986581141443091974988866149017239452309079882655065541813534126262867290083944466295626031545889779207720495505432486188929111383902927688974229911484580070165749440152490340481664547985393957901873815186829656355639128065889776875413529019589364152232732919014752823018693312582902674299958213668282280967433585416034582068586515790768336643930184824173247703631420509378828307348133040094496226039917306475456958866054600108210280022859994741254967700393264963821039625986295333901749552065765973028128274600727379386409871733462948465183418476139307159491353429915049562653105255780006156179644075309096962847195898284967060315345706411195323556370843468882052951153153927683130969815836403569028650190063776849842463667610919654116846982689063400398090566734490879414290205247343139710829650721952807857881599378805949337165597773245658082863361747045905745402213944107539653894667586598010792060108245360537552742047745644129003187831768964063067215612988572694753408948649599857974171676929666382963702566872471651952045931627250750407775813137754094562541117918182330799371178571028885479962333729256545281610905970349129472813346723102461347578368954046255228295866538006017915269936435968045453445884285577824347702667041438406445427812373676048555747915984151667528296249165939984700548068834520709665073321341865885986527524642653638581021633691203219382794613796570360046505107979721456581092361043130587671461727731837303248426724855520595948449623662489846646449550635795036407792262446526212422689963947235061712085575861758842034088785588841411169365154517166180196440523157851523606281259072085074166592398638558595564961111058732088234383426368265274077491592765673689157060504840153343088802974364744978857475723956220320598822687725235813551345068683570667835293899652935500423115566678426513394264403206333596594743636019487126513150592932745081898273890407969136311026243915323894566104981217580748598460742982848803104684575856899890375786609621471968901626768580064221870468958776408560691343340271199768883196532767798502972156985687601760415830787190667155078766535945198522870086108211181030234797215757658313375132408417023932500073876006045869697818748903643084610321809621384699922639125322116270893841473829352128712869747326726928884906450326374295895601402933045044948274081640046013797245427062468249998972421016159906407795365951786826528596358008805032089533239848770176574304434253461425840628382594275528845738319960391049949199550249638048408792056583794597510437372084899880183767146793123085174214007502137860853961722092753278485721983249577033758425622807063439264849386863167712185582119243378361228264906839297069685585553840862373703056408607097826213669949876183457838937884146600341750487157479094071539921371676760409765986285501162479163936921998252696061513498215230947849684220976071061703285723974797031071508478608999744540713105268096043766038804016858484151125147125345100356764335387871065912983769180014871492756536742788349671945091228446062414197915335837469222507366630851667351538652696972360392801979699004944717777784195735253674348871807889882056775748513043897581551880013373078092743843767359870529407931794039397007656939168885099688696807693541257417137189290226001237927366675528672379015798522543440893953180608106967302185180137209686842708185906281464751998291291719868012232221166399039768921627772511726413847397305105168970394649333900316174909439228879216802153421995321099882432258061263889981586663205926498234657653731742224955973655926463559302971710868755166820142922707555002983615855071205214969820214139773203495518917141874761968078979453589670720386929769185383685292804162236033479317518654929438342492634005820672485567361805290171592822650466155644478486264359912459787518176361739293391953138147549543804109602377687676963388845056173257524644981850119915548310168761031040302779707161647765369042323529687488626538660832822715660955222815098555022326491958330467400800883488766396881447821918290163718740765136646424352575355411319789411695866107853097813448277596674653590094241962285330464091983671527783870692917326633694924690162456887816305655932262757710241852221991691802397339678052170851623192595287970300563794440573548748639358852816808282506850766017477047442156040470264946760919020866813579940877165712830279328884620514598859420774969758652152543229850262569297755075642273602977603618395056988680036664244005845175528697332504657282529002712263553038117142566939993798311356785936214474963579039727451328949538299459369742541643227509509603403501491829318611032482559954683570686263355898220625018153900722021429145794692103110292393677217835581524091071127179944236241747165835158636862804997570837615487203961488790552808023385684045400753913959857713841020207870250487510658334272186374357472121694809774219901644621825747180404572471509466497132167398499958476248660131675169902138326764783288183294578040189214931546518820597782782953664535320363326679992127533101528396659178039605861035650808044528058870362603274613694293941091919875662817730873087392984764987701747253074219701272610966113051203347801927992726434640194468147894638873201277790060595940627246292580538079949010461911373937185963960151491144961271739111193423158865340842482598182677612497261674124266122148255328942134803250164988339993007152093103727958543887306016130749302913132521347728520725134573717965191018508597232991346499434523608073395936525623873148677968930350461565601675570534666973628242436152235017273679183378274849568037298878062594932093992153119570333289490091205861568231148849448305941974642407396947436694578894992587235154477883328285803352814790952868786675485867572578633824072046841259388477259592311217802234859164845486313628639523725977849276005107718559617476611681032980121918792866674824375325442547647216574676928531647877856773930913228748091367683742005768289129806808722488767105497569211707128925203405835701610024326997889151370770888249537342963495444110345279239805287034385062440432679711292729158577815304553394959402397573491457951768027763211302996755861730151968924359432838790594301232033905540188210945918004283564148110764193083120577487492547367092478677289289468784623450490971936247151233000168890033689176661858575937037205297107277986606425838151600218216173229720888117603404123823307533491070122752669946859973051891817688490494041591208088753129153544538624592722791517273599605205729024928552994314852344233776004632854210773569990864753036699159440256229677372775895045081427409468092862367728313604737334409618484100004800273324158477042167496835838841173130871411801010920672264033504982500680813141183827974883892390120185995810473205498788141873001135685338878476818054017843035621737872876700186333439432770042364120815160528510001822902512513277899875033322172243825404824148251398567183898048337404862032381146892244400898815056005765470929926791092796872901554573032415298309419771198073247335835574529723466457208401274365606271200792323430180316271613705890812437224438502362820533761695970363860512355026975215750208488725533803456643661067721779910838988223115006120381746400959660420872401405103763815626092458130558889454087854364316351596056963831416514544522157992414895200764399864108109256579757707797699942391484407475882417872876603060843078558169408668950439667829152415648382262789519356632721359422977232815200946675591014573910025208320608278904330244368932925586116061959923586874205091745103954678532018435805746478872484701273878043427851200067204837021582601811455219674222385332616957171107519560800587702203422836952080833732579655733719344304552375676912956375571034674189564188871480818261677163932472033821291088120727798641870550976270753700204946886372032334059351116028631383435552373902689895833189787783364014026264418475593241479344308897991937918945514082988267342435938307201028037315471395012327584981358727424222887719094362488632717277453218726729427561506430923576480642941211749661537926853877822819330627756916543344810090902225401267975710049691172185005853440325664741370791697892383830533794260394769397833862494019567071149477203602873899858114256731833171345394961488033745854548360498923613524315087401697147378518262786547554060431332890652954714395583609768720975936208602373460737053053126088984932441492595233806852280502282101532135814094302594526323163673940283355970675035662377959097695237596321893211507820032623587869177749055999633136310755818606483969893957226152969285344401841185630043529474142493588913382165894939942631579533991969916029868298733773786524704450585741517150924085787431643563551088147414797806194007436078231095233795984059365494596024043950390024847623936512876620973395544679798396831088045932192098718093012818064667001645897846822557368473421370835360594977772863952640937859068843443403974688260531463315460230135204432264573554709392397778553831595578525397309818777901229602182261067007747583003705505746768830761194531313605349939386206174273314791016551756865110678746521917399062523965528049617528759777134468951030933111637788129966040543281108932266425650523113148368604678273633998658984215284864506408746102067695570290476329730759123336423214972724065926208522824474762536029608374814151591512795216776576429122133792510084841732191825651442472111253072839092689067471537525586447151552248149878177911134065481787013567205096863382577204619340049254604152458628284592537720236237458938200388150390175497050439596358232621966115347722558979125679451666018160925918300668864396897360261534030569746441498920599235433412889831349224504336121598595543629372397277025253594548470589565636388914117368291888086028994046818735617221423846809019488314291103530313817844035566580088931934143887449687600733158398578071445836348236661259116746768815713572975093348004588652474916443383948473701528685938071954601279957035927325878444280654061198115509619428718222385249886925119278036260434917045614661589897268712893163818746403901119307486530853240352209746926912188128890817813899777902571462361454166363969455488954750584728249547086284316501326381880667943453861958235052809321571891731685045938134159815124196508693004724940237807317791391180015306061391254889652011411825771391409477215122042151308744563178893507089109072466172693355645347034097653222982750493098513401215656161076308956558635746971220989698639682700322004558560420706731078590549771520123624847060707604573931872651175427021326038165910652194844808501164657414022707837688719222886648363478161300178880447521503951849503930363998801838045504393098716756243068954179692890807972055394822378124876251118613567933215130316197229497668185418201960549156248986681198788722090603186496188812315201743794539188224741022515565751768353506972560345732140446332564805292272019962388316502755451806199231168235592048305384512667707083648415509145198521277133600511070743912112239033394695382924766427459790130875570332769442859025111103484853755582235629992723697243713282590060760840519779405687826777590916057161812682182110689357323357681282461924204702867780865003377048734983052675356999167006321064766954927286891572582877038164575909291888925981108195232727823079438502353960407871764101310965293675898747334233697426721944914725955550302427207891844125542341612665522482022177563485361162376481608818588489406817399364022744878703291858530685231606987662310790646215267858483903564232004738316542757838673873689184086597518752235052594537408539384222573198697230319734140663318125518164021117427767687629909927444268672015852833192766048773169129713628650779230360827834325389887191323191991720801231236571126366987011481852339447708732163895938923383513954982058937009957819078745572762691802771905822065050142211654095334936878549597827468247345927108181888861041624886006724108280059895680053237763028568289800109350749945034948046455586548802417290138754113887693658032787884952478419840617659293339064535041974045138181888288039296477643736442818958870615626335140349855073865855141960020305311281110751633678154399597039232512450241014713823026714023098972599192741350796641032541017601900100225982629035154855283562541368864672029728501733940342889557402257153352863256244861176995992680848563075174759701244246566938268348355962724691250634517714091115461962973696243797192897679933198465453481893094359370930588033201165719329271907718129368590108047275547213985419858547140336754932624528235831138777129065036822204616409989910719866302193596641503493394764518719468837401281132152521294951960528348744347609436090902748699844495839699055608866491165874048315392113856049118366347596287679563719664425530795504262855410912835954559331636037374443814108758492008086490938607132576434045016272274769776511793689253503033752051793162477831089843226922444544678782119085130805482902253070337932033384005970130827779408238583594990896324799061509091154746617052740952551297068253816731443116947653686830184751949735531965896328330590227435536877990719373818570676353992951085997506591003565243615781847016078399664977457069428138625034290706777296030916150669986988022489926760783964658372377714952064618301483894979851792241080989780766920596990933619961592694059969053240241441006273033040353033227931072397556967695148587693259345723648401022111350319293431236924742142147970445835285016577678566049934382118451088227961491746496701108589411480064944098334372763032152598596076011076217027709184087110443479011987820217820807843341431191453784025220251179624330326843908258347081865454195837894393574408800452044120890052002752566317857191876328133764503461868316312677042042199371543056980747479025928927171715774808740572729524116859723846612918751834916059978384544169860346575569424384645340358484302395669548478666927090169450420933422479086717478263520519019131730128718872786987155391518900846718313369573517640378350582907273039826029274599741321249739823380732452783522060472197346094680051988512518993898697916520954636071564624838911932948869882561960172952897914256652573811906743836935220472175506749855118769539397313433489432299935184543244133427893868788344123236294369472715527751327133613062542972838450654224470238227994412371858632224764143939862417907270073102159738766868333267618291752639751790090899567978841262639151828955895387929553903435966839665223779777356772109710746100128031908629809244488570350661383792853461878905410710327121676727454009368463247276064068230520226452571082727711617758071467194277611084975126445951196683585035992991900309788106035209538404985073472984689725746883069886831642983919055097864813684249467538550139156850334571762834971068062361798868063897935444585246812611340044218143795884698063929157811927495117877111810356922001701626474647565890949895259102790489046187274503413610805628660708272285389452175458996880317001488515399191315210617498227041344707244415916362105372209809581146990188573046681123912053684219699935751361562759369163095454482188885760036745648237189813245451265579277690468145314034517026120620568196905774653110742257323795497826113334375489134947840704152376645928274883416938000498486769258845337356892924885169082633064215045255427734245168389042806190691702146798826511761952843532570601633280449479300271472314394223603707225439945126841583984574174986770356445530174190152102408820288836851086030112073594942257621043850302387147644732118982531171632169136369870737024285971531388024527624879129512974928111438832594222441107170204752016231002332635398883434788598332140219979925048467773016241234496047142825539833437508444318026512044819750065081165411648434653643876045296576093518807904818028031853238432250449306658685714852987271034690751759198032542003049692012056620849131259986689710922344857382307744770740710810264055153172522092797637325806336582924380575668839787806069763562173948369312085422178246161871846931470510275360792337537817156961448796534973147883573211031177606789181039640094114029674110714804270892207344210278881796577174553957460196553281167322967887919840896330859781019157700592465600526418621910156414632043460408500650428926818613964717099471512282578203976410276037991014673134841435829813078463481700144798533500352020973691188159795525048071255066090413691074091329203164933005551603540767427440562893657928873495775271230187290310470754452940574368497377617472445600457374742721063867152586264681043407308912519182094647440194408687579516253975001401642885503814605162559344225937794456702463031977203158220813235108386855969783433796730884739402056203509324086656799216138124406970061814307049971573525558470926738608020104175915222493892610809011951487054778391697689340076375455840308287874079647529997451159427449175086789663114332858326783314299195846079733547593586211601287858072895843053807900862185272478375834011236157750523782587722656827608879659393951440949370042605059710407559418814405143085243530974862806476789953746748443605950341586921940405105659553792384699829348531982368366828064345080662765702678645237189337114223859661605349973312212545259536021605996986027411739028690895454215510647658913100069616719985353220345415035218319119621703800731229149971817309031253198332965808572782212726878883654190229840699747581902865431092924608168251690889004450453245622029079508349923487308104398212214145548987907705695962271895687374496283239100513324337377736959719754701706079970608322685514813422534860920203272409391807312795637307538189336622418984725852547381626645601066734048910087976899733770155886601745840612411498044453686072800883889058047312736893803365776826336566102452051450572567613102408476656207729414277925493591691781639653402613514120426426368940871847221399852772553714188360250476877419172622055293951116423845738369290860999291664657337015441464701834598360537449656881346534603586382906518545508058997718485710946954890416823729620606967263501116040636752323409060846863578217462536539221310776173458561970824498353204652209920275015704490940247784036876970668076079910848843977983277071126195222007652954638834054406465319373926617802123004015490530011989080379147355840614863356092674176308715206927558589068555367110736209236880942718179449680534762823603388692101714605165754426505986980926876683714921556714249564951133752773370575175070875776588653336470170575208768423016957469208058453129297092266349450791642744976153809629883490680837596071153706833139857122101222658153513266828702235902164406590913656682491491999094937158401818307510978138710018281479441611114751726332690319421720741112732137140335698073052025618819840780512323683355614730349325505186745701780023018639688131632210635885150954482081582140370920841267750480718463268886333514438930547893603677566637438653777859512274957023472155802585459051635347806120034279389115769612890067143439823331431039149431787970632681618404541337453018525599973355154719769000569781020167722925554050215399294336879655189690702400532473190054877186544530906603022164664230144395718947133207990228208929621645016153137752320745697378444861413999868514443602826756927915866295580369230969946835717550160623111433579398594839424334885536863885178008853292329969457671914506869825734920842794939882341909568893971296514816971167458066268943819605296878550204413679397945149879495656232958712550422362656938660166593226555260260878824960424878829930311628443550237116702953401111521292565226312725338867863896411108467973012875606341562772212379202480291495183681385910902410519370037287796981189791618464863830918839866309332656103222457410623795499227142028841235232773746497770944262346852544433134331254542811056448235850509232341004849414290344526294956688777751852356715130528381173422398304437231963105212501213138668755422906874555476407905717735639605590754017250466642935547420923273773876810563101711600555924655996044601399018749442310678649528807001732477008193221991946842463262963798998639960367128030343441237472377555862568296802767970613131015228934048535976087941772420689879702454575092540012043296616992163095876616641594841604988067405534958839781427398571576939346149115733641096938883396427315292714883288696138822399396061653335878668470005386309456806057444952470416104020484043365564363063596222202229830061545592431111377856282091810620629999060001044069668374439580378253931576114100421876846052670123377410045741548810631444690151302482711947946437816874888931244838948289937990177763505274445153105325009688129491557431255267567602865266194052882522722138565305838466269587066894594616763867140165696445475599796876205159892759268995297001700187336703105229403657437681674715767204732468655551363273749050216682672012292284615180092610214520158496826183353066563677116252498805134560356291403328450116844318404316784583182408386534830794450267337342284094308909891112587622283371138758657925494348333832173298347646290937107305951097714940128287279439259124410318902671639315166054929425957141366515186409136420717052606534014456935474108559109721106594689066987769353023604704943426514669333459358361734153211899134425209407809905091659567058230921857819780270494157781065847664847378063612449168960346922068629396268443967113292946227895851908891692140839911018080428709423535069192057916805961789191878608777505042162762250053430993475666858497282823181688453961642577477188178022716066699140364566507604629875197903477076711174750811353772176798949548379408742576773165935975327192363167077681618901479085702620057013988517556022007081608822786669884638949075372901856316141425426552571194346623059192185029682725152544693965803173491301786844155657235179597875160056271915402109670652793524116467577587579657024260668995532734063096527015515439566017792606738891629887148997780397812964019078120378344450651249019456915725829724836002643981184161000466966906118819142318447262659933577870920880923465873875677785528792156855620071042244021494120910787912294935748124245745389769329907557293311947267082942448106887406850973825227306531517274930995913751001072772530926086728389764576610664845726242051120481113113773031582953428770611571941061243185413285993282242429536462440452657730968380925201970897243835213227313970518966371527559271245867754486588218549779973786829741158292582401682755108030071780658259727722036481262862584673244193601337843717663045410827135230131990331434878648170891945587447545533292514129733178779162560844012979574815153634361326539826485307349245970650770485821644342155320972675254749859521296733968340958420241400634729914822019514138911329953318804076342155546307465227374376198518740253862417936782374154449650655198224352988219148046629470934157580779618494597601022152476328585277801222748416186087864605170340993905005776433641216781413696896787191176633654678646355698011463371104973299363240634964300808701087415927760467050474134563610009746364692322890086299989427692996405628063050210354978741090821292670719452418296872669264348722309408364594832983539084133882299273007015518626654526424935459429864962188855932273517369940696692873839550666077253767111924404988731623665732887183963015568547808076868691288088530693410647170381419021283929150376679748782503556006570414349121674148506031317747540431006197519489045437638477082319935076214737451494352604366616662053566737157396939645113750029220564290245031896170216115971382510347194904122290125657369487836041689915615687363255788308481859827654959387886489977791584968040139808539981127777882582125123819403724921785370532094088581154961971936119100936620552261399794129863566959737831771191395938188749182846918381472342578097969047192319092307672708072046754744560040558506615986313002924496258980090644953956831011673995115055672300185265702644451002712262183085057144546270614896950416573487962344815422446551777452190673304914392180018871429789426564677879443576868338937525279295421012597382228666845390039539357433077301277210829531735827824000952490067376175520525393333670379490012488639479723561559981408247185044356930179802404859820292262305564799113061040053642833060197289778862883378034405690715485522505573738054333177856827827269690751394447167591350765869475059186986462716356277995103093069377008393378518289778490994241255369460410163534098532526219086287473224604609461640622435502085415113201452715851501265917117017295262526441033158900767200362435198492505266328437482133453996763543083606463649086397919084959147289614281355354485141519716161709829917935351581563815907957382174478082924012989152234523485831242240622394999094601404473156518649687035817343094189262929203745229724703670640956686816054219999752636841906693279149547230477131266564388416842422787283239825330770929383268990942586435043234180509228101283201581925475692742344093650023082648813998823139862089503121826045603091104323781293812195771601135082490107775228026876980615254251685827778914817651967700876386661916596761609302560543792145567913977921901746704274378015567165847885868159660510170034001629252269291169308946650894970720300361071736056903650719353661172501046663778545401369558723904688706883123459533147050581246279119107886465610947391002106668137493048015719620167985257491094445973202407176832867918135547722994363490578799980957963371176422936021233711324269244406581866306790886011920867489704955187589672000169776931958813648396662021595768797358139447102688717283341912630622862639260791626036573005786061512758937688299399165721479027226872399131430400307142165509222087643605776696551149340247417810350064240886903440786263392339701888358954328436985314861571039968271825714579669444754663295557838490975965814761640659026063576856743118927444428964962126100454310915181662034023579325697039874359327438601255872139065042083739172871203832382460111258939866893181463154601199018224793116920525606929540739735271295830022236536396752273298015879833950875087602411357719718196725745492506337359804631244863010714328643163189019855011568870680724068975591128950747803294956850334707027109824726378158756799368403616549467598337829950673774845640474036599122580573867816274201818916517282300784364288037008219456538547884864774651972079895535252923547522586688028090038103950080235033046170981493151804890301025756953131709852357173375536475267795394885225153389576533675447517581805316810184136237227034212304761476266844550508796332930060551284048878870670906100913897944524838513201022953490060794612317416960419725616846422220356315526011335720518521472998351730309237527208718926658083004953537686792395153423373632909219720767030015227782029606111202443052593204942227447778425991122473582232191281184507480868455011240751568139125462295626820376120462243451510315761822367534612008010625897444090717198227131895774161253840976838311791287720629720509601620736089001745631159821316154207132222648289246701461887308953304562202320282777043178763654193797092455015798265543086077494215600709811343344478110641949812103722352075548417440218557464545203541193380905235952152894445332679003359152002789626948393049693128704534986635010684151388743795009929604024913935077754480111901702200749617890707813756455237241038549288012137825267137752477371454153926300377686390269330820001381616470651005646652285463966625842918935973143521256695217169827727603377943895635774314623412054356473741196969945489216748983104495024229623269173194778858525656301145948554145815895515440311913278507612426968597642801957128094782376406447598972586461832538592206019617029678698567143580202755375870629431815220240740674443288854115663138532907746165534495530224516526577768908181547925027384384886984023711680752006321130789883962442566259349982970649584868422145968206371146350910128973610485257747645739543532289895574009282887861353904170192029144809708329235584583465378312784290974446688997968558117968430036620257210724665974171398431163179572416011389960226088252213021660063612883521886540607730210328448390514941578469763134552370638832289200809445477612564195961401753946320291181518179810747849171856202418880079333160911623329121326046134136684402341130471461075746152242064456790341923979537938772922711972360780911769219211231957026518644331162456205013313518649437609036153426335540227522922384770049705570970637886735367944798089285279894364136833971364854933432635427513643858662940657105296703257909952757177159412936688129637603157698281090843462669437777895525247546250880205088546105629879535871800518351294683359822226797158918323886018577779858510366705837914893874269337948839332569805380727679946451454839071939851750474309298138603754504092085559189384165944842551512142480561985807010460176262116216657739139377250518517742651526258629193586358013709012296487577992945676259990405119212371868150044344529260446782213328863973976659966031898989031057455838061578959780448524046206099966311062328345534167739305954517732443645201928781930671136193237645781013210366697286732964466219021202719377214925548655090694928489124591912984905902043747779126817718366470119834347659377840245845645910102412797740089137367912761120369839980745816553453131703504835182377142048884548905743925897652838666969939764701872510369915097917562216427424852667986896481650764558975281969126555850142131784290930006525222560485685165959063636923691068817850321257604983983804735632097830438915566948239749860059911577911637817509658266109448833969107139063235943247484201867120551903122362725112337346333882323128049765324685199784169846191072290582056839975290364402717385565976207692925928420842982372896696862367790004773935971148904016048023245606783988452819079463438601586267765853552106414581674869344400688519454662588216143739613589109421436632918032961686086475369457225189803447819722278294338130805840889226218338791186052154592138608057680230698740967538140063833594369373268841213882520595403585575752159021340860942634666826316060210962652711633544573552090929400664619947765860911192114727344166814561296114860398411563050257817823844479616462030315894810053040449788921674568986090841380777873469883891690825785051697742667104561324799841347714438673856830992773863566515056212536000564378092696889801599601018765328787350470394862679686707264316461737002911772544680258572351135142035466008914830209193772199291954380992829684147553069334315229116894634684359243354022963284073429828399593313402852735567948817596052263393465861520283059098599266222194332906969638406005703535003278393969727963151235790893049463218121093645413311894579572099883992537639490653226590000152557588504003196610771181217285973433142243327935874592142267127455522297332174159861316687345542592349202477479962036427050455771513180018844182438742037413066118629000011562023595583413986032014622124719975338028472012010597131153389239702480984912778452256700833242506175585008951609739357133848977761104577142031513176133296859196406932996041202989777190565127533446124070489432340132808600449987129497334975958424767531221121627717485041049264823661379041662523203571453584797152519817042273184103187266156849241656519017594783383558735236098360889751538949712610916196818474003782553577920710828870800999718699042747677606861901508581948216594361409916886095008696037447236689160698232092786803379381917458041441865605676906527827498399492325236597117967820790888699131098948961457011160073309132052213418528644320431010960499102469582829999202711360981084443787898029728248413561545919000520131075056094206594329545956711727174215997997027263954693285935615334824576426938051189431519385472587992018498326679127309985650947669138743185589229894988528562280705816545269065819640893964779929779823726637798412989694556805296616193906122139122233265753151745812439821180051902534315171762643782575151781884220427281264222725701659647877153055332726533076965549690660502867619856923671002181941774490866797688823768910240570366357368990495458372447346064148335919353507681941130706198228618581515605488879980896167664065677428305951857374963498068282187021142939891927251237572794049151155023132370120379273723773372884616073089282143388968198277232234406973366241099694178909183800880842133021508589923882018486130484606996847226720684731179301306238996924721852028517748754263219517889080116825425754670121437870469684614219629016679318380173376002426139416668097504684841812719535687793665452364739020201289639657928170976039136350959868607696157106915656116525485759775811313310318435997469986345928851203073630929064627783919847041167817331693901513318364867028037200203258124039606382903326387488397622179889242770319262277687443856266221332222053555078566003582186307028308242169929029571264644929032017563141183107366162872922647311841154145527971379973626626189406628016797442638385468084818848572700256677433809675039749562641325564255679546714055257116451191245686866516415058847271568094817878203190264618338766341880949026062938242577252026008197097419201802257883342666072103625952422064394026605601079863558905002281983257854280056480529249174804020283738057811150495439063810989129733679932130108971656557285256549775656856398672594716078137858966892590073531465160445103051416060926689427671286407609444850802119762222774193722229431984894910487648514101660965222728795615235792194437042268583981618523267240849621406035862195954775213992891760511626101845125421188099635456535949294422424943808678294159445155335506217008958416933650147166636123490772134864666185059428171671717991637880118244832952565007790932302037552621375097804876956564422023494242418966321745467771047217358771389480679513586031579968681119176211490290493217155026701142399663697253992959347186739860746699131232523221825099565356419678605882447656692892644932308247702669043984154515633701173942684461392600417657006927612322882283119647909070292694308723845621485839876594969559727703861480701695305092071567401705734611005551960513647480321416813894756216328697802828910915175539817177762233839105306565370225263511904742065466804208273476068272224234635949372574159854402331034119339133587817856038926727992886314257775099828689622908370197718160745517126278323839092960343681771865788419565748807750757481761468473347587597218418860770812989650122633777567975280601566179454148256243296873709817251882582756316232978299282687299569671229253110783900239158375497750247569151246844799571434570173192262133717866369219029291194432728434984566714828539882041176092539036637469627714350913024293623177662833775787622992828601278012475718637563240102157207766705124846072628534811554670165128371506224477389305600676130447543861469411590878866470439336946591653227628602344581212976949461329180526537324893150036557347652630407828196408086222969751791952716590171623015700037044228802973323392307354989824570359025761514716698361603716291561900135437758629669330264757209791883249243289943197231071322479483376716483482523947154548408474014392214402887621313306480672217179196422500403825524632919104206095277732805126473039433440829098420255176166101694913125821193997143803068056975264128991994678522154238851314217743238177509731987208480990054833565102468030411528314295062542432689848264002275122722723926665711804458660323018691173504556049503619779716734654474240756739637217042349563132556777312800081120191862174601273296983953586482181227802184833559678884697962749414903839374508872162507435683623686942741884847423544040799014765710534829236251894657029638179893883986864725432782768828159556246509798044886121546396000334290285581691552296373273092527362895027704170267106920590547417626255210220144937144452033351138269193125286539829337007795512617647942542592356538480995400334759497928878132810880322070881540490900936409474953297473243567102818804249526040779616486794754362547246832181848649692943419941760896070751951052882190216717707559445807147331091747815147991200305016565963930804926951666903198628949600639974986123035287495041286824401277818056085248984290275925959124813656096211685294995422068154608685746024499551593342928821236107603961456718521136861848581971946338883316732568205763248587062208142397420506007955668096520287605959193984110078777876426498441917284393289006494674612513786704117690705224806300696897478145036747444446696503745341135680125467215115933017878836342126799188419945004163117491516075774108474104140625949769973226647171601063073675229270931345816587142883809507620538127155969080555654003892925693440196709224510197083251499864035362538107689095153003115737312965449298390010428215731374576119034156860668471105659269388711944092872094925640134857391575820398094965205049570424539487989833977244682501407330599190723519655989668312622050510832247066481216845308216331505458924610166383848543038446246090801955914777295835781465764888536171915087809089695055914366445764450586729712606764439861255715476106217972038282064711800777504302841643416510716685977276369859341333073027803340729949840521827239143007544084641565372540021006942616148680831827503403014261993895301292718549065130438897068587205988317725196460077742306075838747801362125855893223655026522400891796618652696318548875767694894753308172169671034388416378057294174979764213551216000582864858523684425517898168522036021424949973326997306614416338990114355764129355799816479200208625765811441168669747097889787011768201166012589627603533748776272216263369243568773729690736829839926465464906556867942510335359307527238802297305907634266535287802872528171958786877142219944036881140530030449279698642555429559858968591286640378576052574345218469929657171813388826903936314203306087662546872568942955568150964214624557580301411232487921951563373124500747398653479205790624401480389208367591930072729780501211447956530622658074592754269898901995715065442081413354717029821952870625336936110191628651951654632211640822736620444277521670714690027808846400408589918236144617686661738489778593286231000524826511173712579343498320990650822156184375722436520547441097126864330939166869253694596575595717243890134981419860542095529343684576419711915306010762810497299056134662598433230624401553339122975131399699872692322881464641104857970337702067362008847837618434600103417116103694938076538544978464673541222921134663890439082075875027100343692818622689652672385601437020073741193360934366717730824032810474922002630703971341953638084035438140138836300456590378056640372557795215369541917454520699936670325642923088794368261867766323046943140603056220936745099528172723501660946306083593861266199627706824085963402133645418505607781047428184455932865536431563091885845597452331627430640582288109337570982295098717326066791747088207249623109653200058940612680351384293417437506640122562769622008597510445764417324006351908243261818095044929794780546574976812175620950937412500584456940695991629075473056563824298192629964060168671233150598707232326844811139764776244434258108364902180278018824395150567829315599346596012799208898845443156138082112170794232866521596089956550841682483384373888990117017232064799224426458296065973648796884769164949032546233510841869293747583917656274905115004920009999250993483154542001070827915392201409586077789723289949777241820223547621070431318461539666171393880770452530482879487461561126759559432561976058819362052392629906467672709399825436430141212183513184933888680984560936822030396911343278502611174280534354348032385622076355176333774667697110047963582938978742979107995938468926157754047896021505993553271051167416869227539302465420098172377506488126765730135977653618901568806581157695248314495079498315142668363540786349624605560106242725486383930773239439730779156916609190803468978908477641633558453288884154312418486990810213987884360035754004410234061993931489997012347940160791317543823114534981544909078894042818078158622849852914235656133931448728237151350143517323339763294871280962785012960514754148092131505858305708816096767409506537906367879521595078751032733098072050109716059144158342265438232285804103394936934242868924284138921235504200337694634026384376800062751178298044837340125584273363188275789669429620028385742709790428175484812576826759722352771187240725411676020483069200877450986981315845501999214996562152538158888240680992208614462853214343621730316040866942534667139813729473898735949642930189212484144408886930876337165427708160959273431354002957203403598089879372614935737691467768275979011506193192860765699034926757001835332836821093498829849452173077300475018285245551609406949433703366271204981791493267295942240055843431440177410890236186985433124734615882578988186111504683886792800670551187923981372002862827345783892953564016947410740144901036948475856921838737998990155526602843736258722860312277468582364194010369057271660605659172810226843302262156711739475798097669179182415059750146714316987859592346774954097108715800815974320364823838881913058354013796253742004471022888356789019626535203655748475241003291019946856351552739558994338170404642832373054089236423824629192182825016742100169255323771900131694821460223999749814011683464069717704823270046183003802389745750463923511876422183461270553932760474607856687577901057669125534435444777643288841530297733712074328488834344787191194461040738952115247975800600857554278926823475957858775252212263112889256930085668518377418267038659815511023797684945415679210370894835999824097684204774179939516869493357160921931267360152413714915158580516645552017538391069712426525260095061170378962538825464552338010637398528421858806746502462332182711577777517302227416455734843741258211202205011332299860738972424319775657182907143648400281494633276587251863661348288021898702750646358691972337694552136148734328798130019784449761897674643116786479652425820563540890418408475472646741838043783557939825409547853129945096390503754955612410721378616584998521787235473974797960757402680006464649049627605198172452255024187016372412383139544696307398421499111007063607965548852970826547774848959659915422638593119976391017122146022659872522622086715717611785378617840396213032831364548512048400484920464614300377912708652211780238805848737351715169182761490551404994867390721044405739580852355745867707319348218478451351838592578497438550587519013595434513327119672981012641142246799863610037966820229827480153688677583202901176142946158422617851204620276756863836253001998948230062798823973869068398059970502831192433404985728212811682671258823078730109175434095140562686439352270624423136841704872978225942338828124963420715416101926073897784874618197735687535053847984820022067391104759645067033188638562647719282905052825511348740327811869570190158657573084627523188562851217087194957470528197500973298742811362613111448824105059714194977793422639171045680312134445733270505398957707918514428784074061540406874591591410408737849821573980480661314325736009302323829270405364178025174239440662094389285838765709303738243339608622904909998222037121162299178987622659109800334096727643720844456003493967169588923325738948492947257473846382962541589935284564535141541272201400105680150061639049145803803591398518501658432683221589240954037626020403950046862191849217792502365224272927206101190810430913477916096010176088101078808804707396416727014857205755477497911665471101875192942843337913955191527384930786241259475296701415659678770426036689077184746882513614682671755354937674020733685956633122953399267093609478415556307228356069218438053810421196804204897141512647146890523212788589693488748032728831476280399111222373179748450858496260594402738914024422671445805498726711709307053238232457687971329472108097266683827173570469684831953498318022933472371420241825745297058689743790346579387441742168177341874741233865020838346386493275770386345887307643002767803898025606548198193402226915412150057977263878880849976537343578977546709319451586974617056701733293286512844742001339383519802180111812225973463218736305305604947220556152837170522271144651168677212673143024076190825391187205951606739006839676890927538997247578925652165037994968589133993559381765514031435567328282677296329008197486840204600359037592109454362736860625012549495090879175568199133694678646069662985457911114857134246295972404457122619234697534184362068452344802015847571144818809591622744357005086828999398141272118815827700686180198521521188806269827623194358403119326719481758403478845706336844624564179475437051291305710540654199706348281946187151107206777495568759722147355519941226997131064469476950149351947488870878967655819963098842614772216315521532746165768497426437307872264492825911183363747479154845572681658388620479665866761791331031369671963110501806239651799536384564727678466459186367947300868798267272569736426055530559065574863852299525548301790868294370592367115977702349337897262955020569033048072964049885652607648307045820563244872140208654422324975162339362898007136291239935560066848032538137388137258324649504024613998722704714385122660716122093203449600067529304176042103175928719591919826389171661774717940939204631224634433276271712749902968141319818496560653747247487421045457916829546662493226929226403210661741146086126782115751334228544186924111489253522519786383911471893164673568688974890227400730123364900152778920325070992187323408104669030312580762141774453805394524882851402375381658950303669700223813812851607601732647488137932804533647529041471789738402623408823491194234039564973132791515103183744361312520222108119269274983593551914744530613986713940337776317756558574950604214562621459271198063984192881583696794412930281823708464044661455749562628660339767629598966255831952510084059218291759596936040961032563181213681229692534151644073866430460194935499529434000130782923635709174469604251997814304247182739647265639704932666861512903765528709197704572271114665745383098721803463391838798660883323196234126186178105484183711856618582639117015574818705174199195027472899460151894488906349438806292169047920134916231857245346668268524808451404950599245468709731034084635157478136347047580421519240897239678479229571080640532026612662263239808818922137585899992581160527825492788358782487856460593223563556521013218266077675973127738917273800851750562201836631003674393070859518229283081344660122594527434010257553295982540713577282140682450005722719078401809135995567195527962142433925139586707208308750913747207150640850812634406285432703512717119116598805536843642494284858685116129600857327523014496916126133553495877130041445542518523370781574819739233776172349675429133988412256493415181926955897070942431163015898632492277434109196956530274557572932930610481657292954531505481703887481980678856127802941363033366653428464357366660336182820868494001674964206364360512524265101738957803067135165783913561065704470886702765029416658823100788210067614083403318095839886538914414617174736810112078451856993486339663294348108577600237490319156715938839337885686560736607586193264337364659777920495784829919263780895432359626143057567742231587029072051309007959239539921260732828750657856626263931058029172044366621478315808696933812250387464961396882627941292557990157817995808420780279894267682531937361275022442074825661563190390452429011611212883902190489281821937159622651790498609183029103824964855506194715761337305847382075484050148940026039753912336794636876331486845721978476094048934295367511114856678354097553505948868415802157346267744929596253887968433241042303876655595317487055108540491595379723126355183448431661685518817530043780560117938127970730013467255169717994542016118470935075175965372399914458834045195147590540828841445091508934939721387285963043064935549751839625222869531064330007217333636291409029113133448699551834898502144380343625296737184652258333680506554640430773805361098781288984781545029152270632444530053582060406672406317039450280434121165017343092260994784704875824454288505666241953270140329764588001023106103901567294467766032765842399304766842486771496067276941120556927564003110372476413468753629582624952691277002356095880256569818157142371586641358145332723086596788336620283964042598020158500647274950353113677478701093736750103910462113436473678493718900232365255582610653706125221551669421747115190578304761543661031715007915457411881980719348163376652299284579322649355892312493605814740669502415867298178696663066338251749397863628564956530109781537830073793621853026600068341136523771307033383871394657833970488221824869524845116114238051280196637614999816201335877628318609382782832993362627925948038400917358520798040642175467419357211635044763641619642674298377122143976422358129015643016389681406812941167523921436229270551164919766909529173669807610131009649466832972161793920627211176606607468072840293920222287041658726384641379576332103576879432852668900245295199342093137746093131000844115698479506415498072720837650182618611343750798895004892612023960728786608042729096314820428934660989879861114871929747369881029917039264858391750831724689262306731174465996818001522850313089826318119923398174459719954396655101823886305511023883278882617433204886599381134896742228420627204658222767371856990005844798747444868020880308705023940024236074391524081369084867476293942311138698091117177182434946031435669518183193990476497780665462540376614949130438797512791229861109406485170200727125801677659480453748029869795204865511542481952107147954504040835189767964417621074186868133816172444458800016887409551726265247279121859418387803889026150763493370331256299887864028078408462269717066347371608833559560687695616080624760320259806226678333078828505333836643069809938403341663909223739348272297438442249256773184000194774569566814530610426033678481721250590943637057600785819241831555032505685059691761839550169347293692853778665728487751569882469066700657263247800468514378668499902243638868651434586927274054078578309427915761642347783207087583647798548356622931235163688260055881097979056073441000720726107471470745796484916353914559559564796321271523593399204751976796948601828014091366272164006604883479001435097601230281662824385306514639887907460822936249049512862266310652178534203840103984245371195848379888545666681183528470405828970617611475261108491874244942107540914134426172583760211597778976355654611213231131440748879456120986161472923612336278343229992241131633336331685950228359879831762400236288669610509720899529071376780634110160947722552711242591908302686808013649628062358702457544236824322698055994170042779277615268315598771975937440965599523741916632636685895821896216657348597206774776058803900216697071554819450648630653771726177023174137870062869212520357292187167102361285112991277584682123629530435584582044008549359573474053072200804594902987888240849445031885900178645516870575022797148134095305081479944628135695695017377409375571307653342427423040374447567245253968669796626973143958442362336448809908892459356759530307806878253805879678747888559923150387228973442195483106032647653806360691120611595076655612451006208572363220845582157782008742024570531447535863878660281530781857582561375419979949684046985208285922368415138486353173733703351555187910655267421101165245032809483072337322022617576189567767373358188875052754378931524101607609808105848218039298557632247834732089121679930428184478526825615098851154133609627546136152340948302409827454325401369197788356219755887986324169471264344379685120437575850589621091685664447922702385467856929436309891111701020688014326508118920966021143023703253491565326500169020948770929862939741297289226309562336938217004436858170855241490917962374103908220293961415599021765429227442631242870287326944222723737227853665851791941202160768088981520512370169028970605139791627004859676807810029337469059907365265452232749660368295079741415802134141900956909891651779158369234899515195027029886814774231560351067040574275247617716696709746074930969198028970660369614588940744139248205260780062214805122474960960998408126194351707167771381429603755727449205932722552426061497416592307885179054233236272673281569265424968458136388449999876907833134858710944141082664785029289160226301467785649249496177953434161187567561290026943388479052851762904948485178816192703136581793442280378367030343357067913282552540947108349698932140178430383033493619247133879880403266362542287453357723255234838447032139258484597273403063547364464330114093309280568592063114589986824960329964229389353079810824287801503676562916696754642129365930617920028008863536172361744929681455043874677865175187859061388797032787696422921430640261176713234447097887461761254048998706076988414932642093816940113937021948074229222611347137984234691222136275937677002746429234101380771884768695411105072357219238770984490185141492038704377983327033501496009147506697852966678072889982595702962222153736030660706545885791394376274041034878009201279947603652427943830112089572432944102215764836993498162844140047499264632390931510098582500606186938190101662981458611075257148436776646549215946681490305445740744903139698744867300836591609388872422656609982492670145013416721223385400743897295723245278798327383363750441299610073548756470690287399406406568980703282179321836044426000125595586744370309625629768245953838831784321238616214208835820317687402598226395949826208671972946144818796057716158902238347130027199980006438827130352741854446216630504041960299831212285492514512523691653017966566786287866194884281003882818378760991645695627352421067103202253142555948689649450920101045048121987802053314509614269073080503359269857656537892405160518833775567607029556915352998298453332797549555458529592129623876738578055767083328324406594652779243772833577882769052771953771644759647958312211899493714780438655848610087495063859668442855623883265119941156309680285716019132929653403391201959255688802369129202309894006972014411789590064775335296148948706402115140005337593868977297085283424673148451018396259894399992776051900927054145897141298933954340460646889356018912563631826457244213753930443255247198942714185831353924017362642196809629493110495366573841325164271805857389683590864163572526411761045053827377720719661281795918505306184339133066554461246609304646699681098465612301962646130576341963956856570323945966882134725973846869226756914812743179362771190530761136835348133147471458550035275311590313010372402362364025381100186649223224644427294236399115263705869180354517514623753293191829815314131415187004016102478079295469606231900446186789001620407846760412773809277312516097864991554348665157866459520736058050414285045865144412559897851778998967480604214463306134437181436971383048084776053070923524533633623872608624716644500393421156122441096499893279435426725453054874235196477025529317547782485677040866749638812035333956088634319536804496108116383909754444323394088686108564270336099290310455635575673929289740700744621671872097896607197073927476434437438278258393568703497942703062217554060429751664418404223469430604080128681130596143854429181097081983005988055151640944149802105876145698635395897773142433715185146951109624178167086404626583584567509252559512062373649008531922673366032664111518940066597026022066985463562922235885860907847976226338016068801909755846872625064265925471525592328652256328175428140962421001642741869150313830136713664785634514690483578363667220160024152464213884347064704039438474660328769895192965137350920954762721097081925279144128996472783938123698147394505722872964937515103477579241391418732900430772711203569640084536265390868023597137101251567034002874036752303806913139451419624511619886499393492862412757996647083046367249118106218529114256177798894700660674714113938483185725341331194798350576877571192032974171349614284341085445001783672201474398354646583659368025257015717272960102780195323273782518977492724457287403438980857501544745216044897002497794348496878114457762278808107257026887471269263355452383236468161552502051155908552798957141793895071365380549552946494821013272859370836791232799070141603732901222823009615888016861333030653856864129877176042052327824037247664420083769714448365260947960374828119554751392094173934950508913623774910879097957340187670773531773003430115404496528961306989915431073737371735797051059441556696955374663599884825655290956064446339125537394087635540694864061260298678402139647201821696582380488864067081607462132420061408849733972638266174718719486293768044347598585069893807063597848961214800961867999609690732786681229951089522431573471185757896466788088607397072184914459377971632123598635950883199238613321051340502480662724103811762024838802313598464460079896310198949391402830922000292048762304905111763693233158068745636294121349613970180033962333203356712665806748138008404361693103819827184696338396731166388285183994957034220373258488755800491659602753038058347536870308218995150835681050037769758233329022813373433463943160714505406171135226297571859121343583642666058232058633415762603096402694291377157691378266644413560824366894198343212888855606102213192980567294606828051366176946271507318686130442887992352932962737273924130078247873020906943210620241523547695389404847212655956705083239595523683762236064888322201286866878639845532002654658270265489247504012779595532067744686882055158614753192450947915044830740943108906919797741169582925621230988438519783550066696858071039587981119208743840446357386895969900287543858821372911044817759831213081722951974617938250436229570977542644240024335615402836248272447807894281848481013920352963905058024036969823584708696823619376525927903971132522679681698043535025071596208209029079486803917548664044955239397262801799695472666450864651754776256113777877419608233628788340232918612272183185154843438803838568006693798642692125742227498559759204962265748958691529073823824013521409536359856291367870917345213875344200570022772208128266589503008434387184805263755533532243913986122336445716989083307945129234264690928806535947766063710609779521679989716318465152918153121347341757898065814751721756084321323848022114694093594580829858183944663771949932989253980682904804965176568447665027823654230918682263713701675876434659400595737598111445855810724282205789460890666316424713427193051579379933264888323655017851383628689412564705683700705478237035372653028200877421368212393650249089123947079013862704155761249492019932573307217219824581892394926832311180830326467346948456328534651898342464008127873340169216774106951614896804407788264654499810712000626143453853172948663747096902709429467541957867430338850924099733931620478010184530453562358146076691775438155024326651976043836754649321430422827506718427525984842281645129058533788302701679734026876164743145313249086253448329758297384963336510548674612556661635582923091473869444767970344882320133683332992414550875029084073703156642878970949800127774867696740361092980652495900615034253717660393278374164958168272785383626454758404397349049123869208784000689029480551812336514940372831351920639935323373806132816585812252899977081337277830486532145137793197112985721437536917555319099135828621847746690740396340787612688853459913399637861364983082908262375641515105657578208088908540071621703441716324351136936501843600139062208075857002313617371142723644731436093892040966989012152039500817390443796157524166600193886022873507981082924221418881500476434607082252020067458589648376748807681415376876373690780485411325510556300363536075873502872367358673054457840607837972271569270937713754189788385795865572685581834239255830819880731403869878016252554838222368408647303255479007886669053924079767897759982070632032391340920110221050804953595225878244497988640577105037122898508996720043336982917522104346898668154434371481523137298000444249375266526587650837113254328439906773969969315123155057889066290357726175469844419443050405655747324608327939449540552041048652488055320577918515532979575359171193396793294255511395066023458377686029684080860193837499263563422127680641326449626916845535314723123884289834742431796067412447260552781780666041148682667644613659573263808923279714744274554483260989320952695018038505745325448117843344040340063064978748484071341181059822847297861776792411412789416729226680574880071962682288025076709675108469565897883714417846325488640970643828862535274337414359318451645020246269490883962738935078806961778402994305771441736146169122484369441579067317635434062479496801130946002043369347900019185318386550605876401608023705771202933498919214194055837633886193735222181324793576532619926151816750722452538232165346581921583337013991688405530820604241053426308708821782743255468437669089165613384651396312381338273640951910835616039755956028851598157456516293996117624621199312896907948758359801520080589171563007595521985032051590995419981859147182138388750031065217752450353047026357139852262005157429801586498804219496347616408169738160499280953770106823852723663750927554552537421026950992958617140649006464255225485884640625784190021421360253146649779381598882687052469544251731740056533080748024272060650518395139655672971781477393882285784535470328942482726405389785792556357399233503765087612477120559471443468033924887917348589407479288541042463090470175829968304996458546366561639153834561174856700959922355790595155044687311476553111306006074097304714242259478976641882008871871499576059594582873103089481803066153623215446306927449662115535019983559245616417657968318062862420021273056026200888874948321661464646910158710153997106775068038114607797442852134514182495790781225987812617200554390616224370614029589387172949043444091348406139314155593019884504391840891787758953859655918961699909386986914259604606850519310528678801148617660454063044937596929503520428241968569444192955533764363919985165141257169852116742508890783233494058616392238549021089904637281563452674541820341167654850993642498300351147384222951228079653464940782688056145114098319587659150268507500126642748722321796382156506596002007101622031443370751816873871768906994787392269988460427928022516608026744355475075318852638795676518709257681973993269745393302310436779572200126658389633962663667580796949332022889591800397378103440385738934303257693016692616503831195049298660949424685695824603789687867408208022017399521155105531762845952900888787362736709200014197723395261279066613918516052471537969647157015407551934598337374561889832449729959721202899269380471238718862010834573010068456987156605407884394853409424491992957383768460354798296783123507478821773297318205628413196961530162516063010218508915875692676515333668499302002829305157347499447875406160525478269103829575705031983645938370754765510917537898803315897628889170520885905556204628152317698776022403770422608872222561412631668600451808057705104747205624465341902319677297693825112160702345728362333536229219567231697478003310904708426318757242514976569709167158418552283819343921221021558688552435879859586486371964357875363204907800420721200887248548309516971709192628469280006436992866617243569633234861220939859077372921585412900765407744096321450787266291985540641635189867384747680751579720406792974593196047765414132287325844423994180042828740053089540279632260914231225196399167956737854180266460522574218292593827420249315471760252240263690943824344856357476567216541437640960928959625935343785218172737585778538310556183578623778609644181746202247461324263900486339848778099795062331985720613896233118663246961563347750857971671128141828979565821765714338254096454573259010765828907442854859960688053772973642393005188932129913479454170475788262107453822115954309777971193288060055017788676986210736306357172438890121090587176759652058642137692526651551523520884526304274886510153704569385467680095163220551056803298469569465567636609865094321629156346427850862883874128017101400953416383939705003482099335683849581443891862418159377496373444304826930205993566194159885225110684381055451264559470136548392066914068111348486107873114994072836377342478692422176604499985502092990419299757469151626889103020438569070139366616101635719439930416011908664086815882324087347165488842547274259402032214663370894726564778315650578900533989610667744795745066840115344711092800678996139712511592072386361419327741967496688004744329954536965502798062724225316579772011311914958511750908419925416866639838510201971661325543803157063693588643894393246979066100187093869678956461931264713229991543051267973208044823455246697607644242495883147549886522472330298341318298486369579245175284713338247042643437095465231772142614581196196154220614511887167239546159904219877241491059574462077127627406911687855304544064954524335292558552130755097472602661654025825589775912370283813311071206651744850998405143773062371718939130481546005451911918207637672683580902848604865122077278482126092362120888479771556846597746969354272234220292140523310196352299775444350685189851774672378673532854154435456940212031459656760792762689535625620544691896746316794603859094135086499588197476673138141365510286235069649441139556591858946480804018175183930217231107114485963800535289640963526137507664290665030887819090990894710559605845256402710152955155088913026857323223515254546328547850887999691333378059831466794947002100781452678333940337852138300947192227196291651610974023110779895952917744784831282001994123770206953800935590332851001426206548354121371580740206283112871858988471449551218002284512999144805354849537889681753323722234919567845337112647650669736596914350630132425107846942656363167154276246689014191677046135839180419011039292188273073753945425060344009020038400397579948426070706962739284439577206307124234977531719961327856019017614553318630147507819399195665781005522773494421548897972097669715556396433555398756073376916183418351067944582477496097440487544993321946710378456378673959289245203332744492857242244545427186259068858934500573386271148050445950294414555683447574803797904300767317141727581590926972279069167914413178428298494527102692658257133932596366802598749359887476781546532244019603386999614407223688082294181165641597845847568796449147216791886252919094546289628978696586480685420713828888110231794720526006285834224771334223595324534981355607093675021877476251289146880686347183065972569771719210925939305090624457453294170249900964081546474817104963267284060096120913088702670357868214778323834619045671901354388419294496813871285762062011710318874439013949838800428374798016746910531917683426796853064547369922996696494027318689352619691978129065758663204322000664640560224647485552153979796716041371912025530487508210879973679486177795539272849765177738738253807349494386853214660764860205372191423472283877992505193542814277408955941891977902195706863735633935955084571331659831166401624188059851124405480245076133346197607527569417502445140790996913253300353044948656080137942282970565270505128769191547176742836258914912703567597170843050609300387944583979344493065982255168758267670611255862145854129741586613334736261363534252819901576403871848111416085929301038748617650300184266211749741372371751069530486985716026084828659461900068541095844858630658033525541130494029994124396413284207835597205279881002518823021741211097282985997133784568154463895733675218423064302135169191997568638296846978739814261682547278063369182826212514252738775019332823801554157079065458388476818513958857090673748525161373878610808763615621432194080720166003435269868589079878766270627911838203831292788749007015412784495636597570392813755204985659212792175380376001365963940587522116927530043165065561287293029703768937219242769733608799660052887865023182111555525359903529966731371138161089462457510694436176095317620296423864624257041102444616896528235549495126020410070692942487899952291743520888096358262043201443644398020342013126153141292210473786350764392000968995577543519159707638459107866423152590010994550028521507012794444315515763105774624618639313927729595311726267795439856598048137274529303827779019819328306773462505373569035935487210648867109125628985446661056156388580325496603839246974692189717687145936094263278449532429990076434381199047767844467995493902312047638081083103213131661666225940674622695849510868485721708443273958275444073512777774720539495686977986112882914290288993005538971933518874529894157864178067616447412540051382397221814514529865385636287850314395797239355450201304682548781441057129532381450011067119901373065583900636974000030318425634292563486021846618858023029935677071280578161645636347059486355041340560429881950070036170861715572918426419771783848671594712757572691588211214578873081249416940893782759249084767652231842706974251318763132873374141427302922205367827051807177015517550056132512149850289620279822286075185901350956337325843264606539292718050490519796185772853236291854933093829449090207781850018911612065200226153357079291848141404021720801884043674732296408618283849519663875311846454624924024260775647172885230413301494769878542621175837496859505544832757502077235681107145146104571229513113239920134842716763702773072916695836702985538255925869754484371099338417788295333567796109525856942668576473253333903203380851952349341320919172716233945648987496840490950318567676962999362662915674602267567278882528535100461968905293797403260280437849097580514528424464187692147295488836769820761634008966820167172908015514777114482434191028476318309388220388253568440266555493432303991232583877736284631527349036557426698220799525299541161630237355464589011981889999252066888498376361184305286592858738472727431723677430697082593032226164843832331059712494543621588712044759352530412952337972730837813409977705329821655708563919031481673448978446486876505670728542974893829847386892298988197011917293887997591671748433396310026295898735751661626352761167631421287264172228922898244984862190356930903249787956551601623877146288270361848500729001834715527098360306539231778501042803576713940444823055514206091552434960000176272959467628240140805768683835671553012239643551171945773480606125630360618004894393343496177547934729236357691410118296757877297141063238398859010645272171497666872663125708489153918077429752362817633356958825008637084541863421963705930292692714571117623625514535840160360833363592903263058782303837856635405829867837451334412147052242671552141593345834071241126126574246306508876938591669169445976013198945022120420865446176288907345952430652128900305535374201855812645209923898669259443807435846717982974218435327159191959144605846671172743060969505008094468246476498144777715390513662263694713117717470118652315578318965293778220423474939510301065629425618948609439487275907994646128012567461932571753186462407897459143735541534762358153333982149769991008876955209418359360788379966744006105575967745203216173042795072995103622668468537676999284440011679677956025240397962818883630233359768629090645348668849783204240711706130431229095780167492652831876067269128825618055698680253767077176842733829704054479582906179501237206734919755696603883421726555122211402889915828068970465276702357976796770741035179005666170514204497229268674894132514689212761536539854654752635213073142150853443978363663599390160690587035242501707445864923083871703021876582792644727968605536857139920282397745114796372596080083403223049290802241527308478045179796147975140707467912239052313830401308266015779099334323320725002710263081962723336205990092737194590103566549432625227640401991970825832345866199759204482246934463540887003236329048868882527193384652392675247784633354441075703827805200829948545143983082737428525345444318725463881404978920270079324928998436209253668124726864458365323309728617850947487542644941550954139408806961976115328811833849307374607616814882210266276300372582425576560233918878969967011451038314243250462730333017650401517855047336931000152303413963583072468504863700865537622497981174072191214237155302855921253260650587505764212658066294036598810986916021491739211730264121464696406891068975254626393115331550446972862780994943423107893503448896887247175658920886779063979026698586927763451948830577945407143275767565197749876564519743887273723138512258934682343412389416851580579992674105963604182312159339618052107738843321170790326455173364015492253777754352103429795669653727432258947661426411846204846495116165041618434571035673437242731574662220894423556000987714002247013881895110290775855969864541528254367536484753756376099514906695568360462862283485573671130565934208767436805517935459543790769589247302540121660629414316045701145756047492709889742871404914169492933132111408253373272056665437588751041492346707780185395084362095182255277521033288531752786338604127468105803524724950288135921784499764215931249494645695091019005683488690495296183133023193620892565673072630649708781183780893487746956682841273169232776705091365527813801023224703539729085178472582591024074347397220288964079654256611917529185583191699208001428525889886037172282927824051453621592623423750527726429167778354407816245128169007676433029734652334885305802284917122504636549487619331672275953068594647473348802381763094629174323692094232358779979057094984519472451555787543573591174954168854493211154976213996822749577271323960235283624863056189586596353896397624491056876558017781560556100116108174156881815748235948403110201298003575302026261401451415789636441839944802276233877964886943462852613029057162127790144441862272905820533642466880537460601112184452155350842124198533185237987295553814790169464497772687004498152687073945106008231046077281017303889441909484476788801000041136697605604655878993217786176141669669394948867181403791271048897966767428749372751225456862955267750451059336776380390054792776835963459898087558640030929421126790215320144925327194991725720240792665629604165109694706988296787318263225847998932662750944923737503128973513269605627398302252672628778554681778576928001261115144121572700305702453306227282877162658262431702212253762581818357345918935610069338286377166183919705062937031528004194472218845378276908939496631404055126611501570328778015412433848609470985945397680976320585197044169688756445292338174235428297154447153362593379439308812439103037271531140061482995961766032024388269776150619439550343941670297605224240726739239554527176077584562678046457572092250605684748450307035997449854368740440415790960963879916648756494787698142331057538027609485457636661115066313325753280633690336511809452239122198325786548259213030676376422148763293129178026891578722516243260574598531862623925958388705436051854877879533869394986859017088591215075471021399401485205412498226994191507738297965957926146280800846182276240653200761838768252957378888891034700948634557706487155198504246555415448255615780601340410948086204852493491923842703599097150402399891690291856916116525015080894476150729077267404973603961345334032891281589244012399207461471917934935247330446029436916643036629896326373844818233944533775877076584788634750521813886119290686201081051863985687330695365624877615949269347368950880530423387235211795425927850920892861343365885728792513370778871541397581503340555392766939615529057728642334494760744565118061911695633087109943224199653003289853235849193190057693647178131187954850061401566504428717957109539543212802427924183105783850748407140305717959981307699497934221795599470305205931272408431659414595850006439635954498371000193881551860664087225293718595828522784057527323362331058708075486754934337180592572730491143409095370961644188716797686726777834064210010356111050096429849538201746927262465016062155991225653515290284228687528875066082866858467174678239221004757923588704776946554890556170139425283125652502130646598548724154009834324076568041702346353670671882778926102015127171950472269128679388894691734302790418935193588371604140696808969862239471518795523930896939409752581652971607161680694775740862202168686141835046002987106136476924353636015374842119186020437258266806866656800887253998016086391612346849867704560214154086401022657447787381177331009300285924011978554314022824591390731338458292237929455948569280960588165152350544057778643880609158066263921712198094245182242569253418962620718603700043121283148611213226157966876777082244810527626174023473212591625914235556306297713913067775524625211689595444795859562904624128992698937967844421149627456293033282879379454597524166942203811531002391560917785911979580075351285174959821295302062116971636619286247423223049283520472939609452571657825240176775518443479865998513394220499778449008986300063407810601828476630383251900794259134464308528784921588859265760449733177491126290039129103587068505572833950274021721333762869644252792696718700606190043968245866766176754262374379077613756208170202183971240963826709718787131875433094435307006611291727654672055517308422096317992941618418264650634616701257150608727173371429101963653565291103048576965942152771982610985491028521867766452024024386291670003003451357661178796029181085429593042290322611037627413974816720269499219878764683686880962268207654977637739693537443775299650263319258576468346815738629910378778713290613316088819282683374010890268060173120460495548418033312501245029951249110754728491470144680598613853055667850881148745587828621602179811199443751037632914416286326563335671398302480247092432060464431458503988664316511722506823495584454810251780584075441213587501388054097522588886910104409810949139251931856938448000816761154679269513766876291195717841456150268172531859138913008890243928709534464616506166176016496697246370773311314974013184022473800640735852246063792897436077768176054145619147702517698053930734847070655499052431980773929922558352162953066834006866031216183898579214836339129874539759928128580636923480148010388624258621874278283514515820579560517742816171107407024651863334829744740134046780594834357535803832444398068303446180190624320069600216543541793154926832584487769098897635618033402998119995670608304175115484893413496792525235133550595823860212889546131846237559388000382772349503394740329935547654696570792765158828778614251730473631116453129407855011617837131910202814208644953055975179000962934391454463368285729072152733548306020824711364814721676386809033542813143904119515698828529969494482416739904871914473594057152443491549750333988306231026710626160388556620565627764874062981036718011806107550748775051930965529371574302022691622166586995542708474353977390990970295699782318597866458065670967031933253368122984801685695067037614369357243419818941200545879090551879796047641974011688638331775116219196561837312800072896445861101722571956539928621958097616889105989671872784221233570738164607051430438363731334369022291506505510206654065260069406238080289780372983177374397592043930302612135307053806555058920228234391002906205679771683904958776581040794229403609496625009661122085081230387559314189987707815401280106410229641050110545264250935744793460065637585478507125899708611264129498739752546669473543069546027841150641090466559411083179190194726186669766250609241501324434699343129698465589568420277816846884191682713826302240332872928824208759194670313329958407844485778058788149606995708156888369070247856250641931439187183476854426273416542163407963414875948297347435898933961500589611391539924879863252441101494767772795612292025127268793307730849388036531035004996664042953557890526042390735437140589855483986582533281413072819333847028481358639074485387441387329507068205508177411476726714574210497517439235401275352966226703884147872237201483545581648176487755637752583167801306947665655443564620637626785430252477975108416337349237944157384773847902277840818268830246355474976707591403302127346479150438098914960521568073885952137693791260947713985693143060215529406265610129810639948886302649516856030550892468407803460600941003245161468395210162992591086330286645122475190095501311767540999102049278260243236683999136814808769595294341031794161280466690969154182701392898765542905302047057696822352870013343966634518218339927840634876133919860179106033919220834131026877506437287028720644014446353105688242097349863608879870915010545746025667228136672928101509677409984371933530537346040808566942297339411031321102455113291826644687183875443174469389943084869818822809288901820953503294450528841193886425676776169067156889352936662834662739119095628638877882552557077852325124156903614289689738889968435319331294923895289914069700829092196458468419113959162810694978908166293108118472565182037419884795768423940718309197020360880799071655713994334115370196464748404410277434263222223970305524243949702758181048285075952282258845629588773176218871517375127698394579142401660659108935250282392388506158149202109334765161259668030500745033411904559636253885248165619441957169153595662239361495498417507872701899456013030217618052226479755965964655070063411593699341150185314452789798356800656458950384435701460069701106396472463077805386317336115940271540190077995554127763532591097512130034273912951145596371688940953253546241970649137681140204385466424623875979121045645132546598970059897739218372133380283458111331061368395386503365997709474218691420293417885409543261779401521611861450943006965845363356515665124977264461315851180442362944308397773815651686330339084092536143982037818334475393402294075679825871270368545083594812792204939112223057299156588588972269460711507789975706833679355572317697967435551145426059008664470586648800894059981416878951815232162274754462396200676379478342414940191045890614221327695211711773842174115377999344317950066321834140944807431888922209994101625997354042257789905348545717569473466200914866085272937858384235825545224502256266323169165774602728980697988377122633614972212054284024194613433521301484942973679239953857307740748662667871528477454069542041675191331199963062468372388486402085533245026326550508399137208608652890541841148962437911471706632511645624165506491828207227726227294431985356167666842090942718468887136216663798814244074192638710906720542455414390972079853094689256142351012746511412495592690820640545243551248123310188029626530760711822373418529986167978721583383979142453236329239193986225540716763525986915664614765871063985917793148586257772186056227642673396617333049672728436675719876958350736807890493288125069645870096665317446650659433163097961690095799853993063776140108487537916024355444394170746449681303221845041012256603615252187454277213979060740186286011692837256240340456248329423796923546988337527052901735452326297882531597081555084956664892959872332607633079277541509627068423763180723579504960411256704997569236507047304809122444315316683447793611900921664885248236841536299919267424359079835836068095545172350364048792824906479212994215670132628474976878517744134585825167727120115083404085189062197059286909518697191537628211120267901099723355318777812610833284081661159081861501725647149540579221939697577634008372972173991208588393211691527234613479035547596174387188133281538164803104882709698610056140320746061159306350672105950975712130137306495684063713560906518126050707996288245708255820541295419233317089864960838680898891322641278181937345303396034324586416428469510242106380327389160620877262680956295347657039030070518255240208987215873221858391742096871297556391766286801807470946489750885770012028737068061730778277366958041301250077443393890993726040167405536096418309145065926875381324810508795641330843042443292104430239008741514609855957190046573289250629338405426742124079701251939162759963750386654043717144076517409253425329197021960580892555401820954099705367606099232568123226056506635632460237300630114302828356172062178083954495288181710903929712541816621766461920774293006136367423723582678138866859904954526509531357370676291428417637205836591256886928937816080816149164860825014543544588694203163348402345738339212009516964602390686845395266189946037182816791539294759554241242138609599251161451448526112028901535896509091792171363027955734640515556649387983166097542963766128345961928446197941013358164958705173190476474336403809571922476478167766728750019052468632784692170446347696233504262605504993907288279943129126937476187654556493455731073182832280314033281305613753710251366800229638078658594061274868448006692144477375709060888091476055825925943862921000233965416742731172259407700767434335041794500301348203188278808022887682813236919300725872898085510770631746030285186099211825667856937020832684783956757009015443932875513015657051492260441459811252995102382474386127439402341207928400371017670642037974126566423846958161471724562170004369538419366125159601794063790319088935412684563668985380177144556612703999156962665300394742914309836414474039408810302885732346999134045787962446005562393281461969358019239511747301065128949785070641866150087678137504985337672565983645956350547525829556000752579199134706579741841162481012591538495075629927513260944138668928837889313490251101779374880360655750165152431571321858383216622271120145795533404528363318030209223922858015548582663710020380947170123761176845539128430770252241337974738492202411114160364212030655257649595717739576277175826745584598876331450175480731813942769893302306133888942245667968510537110012652432588872653156585754052544791674345206222328360203967825336847059433695236288368500928643149044608112447656265566179574410482236973127675070898949022098811675517309817687024104113475609036770277961412996159010236769649356442031339482805628328952002129324044520363775876102736471188094956496559387407882436660871035230493973148281287609646837450370942554590389465803112836890678381125819245902919675312408187796279230155736110910628156598463751327962038718396111628809858568841615934594714103366540736584153627634417440615503245685362979792927791755057470713700295401330529852655249631029546974036264799398978960414173666948481861688543565254246747516665259820570635208838092354152380514321989499370590698222717446236478396733437420407397383896801761162614999997971672810655616734117894376883291154190339772928472060012606944877931382247474579744504302081917831720929784356102394978831469673007775468020517657414349179230993318887489847192756868486846392778655651001136671819599584815923170730688717135137186716665605612142303351929209220060497145036068910167338184311159798909832563773853508920893336160544720412390814028258881993834287560696935349796335215087569702202352386449815491725039963776218722594705268189482653069921690288564531643960570996131287459118513874276434108137703956574733420662661938379068949264989243504377872469737634931440882542481293913038169398668081523429610024246212158167400008736256764866198785695519140663338419810827849755736866169323174688988015954821176007524811963629841788745778023724587209497144187908242098569191397535236782739114653343313864178848613017597515555313523213852005303899176790931437180728220737991767330957408378580972981619118815955778766805378714603843174745863897988023605064299936050843161107110585025801760155844795524961159580431275142316802973835504424357161413193063714254685512520888404575200656436982560526708926014264467241397215086527592471850674818843884844741528820333097501087981068419102527821591271562040064994093645686416026891265909942748963489328387990794729639391087584426449815564302138435390599032652438631810041234875984751680752339335192290102663033000899586683730876291286250028660586066149842499416718454385457600894085049288057999640843618056864215721953735011680503702875376543734911134169495258303967895012841554038181017806345510512130101231791516987761941291281026474811069931994403367505391756738727303288340297016084035512114151550913416383394338041899068130305328775713883738343753256858408879362888809589744914165155666935439724883251208447475423386369411423258551738204899934369643934558216565758069500301860580250053780377918167773018523863314915005886741137508041756176545840958688903593579895626583572458170687490213394805306813685812217499824995247298156441747702591184693168887402782261618782239525079271419983496693475636188301906125305645778602249551227011632352635035190698778005022054882737643548860767284633215853036502253922527917482842736322721142750213858052250240545074744740531071605830054055701586979394790674544324595778248235893444177427363764540807148021563994468641616567004829901883425832785338297271925814374282243114130047501644257649597574956855820242128043906735624269266125788276730427732357812828400758748836321445860289247883575737959947380637565055935631454907005467146038093857536295464500651458801588053583526332187000334126229432046387123343777066000314303373800018557277100940631790565928624446778654810465462442181225125801773847433211087453717920850256025960985455614551577160887433706701762972428145727373963257561226553475277146898750602911439929070204138078418408117786584546845342902715934655654797637742159513277624721256624708029467192865370546493368029069844639942115254188974270174635083435064616138573545948286823942473957043375456075091176435714970991017097276696622360289431210473451542148289755302180029784858746722069492471197274573405217957019665284053420358616567569059632313679727600380042837555219105939315645297383642652510113402954826569421509280217372130848441463257939813174933733555045423631375536224896291812170343257309888901146140034482611418729161403733033113212541388795732138246177101533945661649211264122085554272693988106011109625458345024070242837516453620934096048937751410849032732622124550678514437642560923000005596144815574017090573460550873937920362565034157381416224864083900004793475517229081754914328577013251327087039510084102975388210365489355005506969805814268566831060384355021466034651288930576385880235887156928211756284804041230654684707996692998840082500414258511398037760253800120419306525221333428891521188446210859696127968036852743653838109937727133609385011332179842129067206407569822776707437895241857182363592491468614773152121763235922414129548439142426900560249276194349725558604519193849109045220224376032668808442973074992129603348753830427880737250798501187989117282588528039522629624554799115254146327925942596899037676070035242046341111264880720662656790970332937556299761560221185769431807127081061563091837101832385337682263458140863409443110058668484241643858484170426956567971386376981004438658414140152910496465091365586897154524261787145804838550118231117065730863066218927495500907941885419738815136262424320707765125941649828088519559849664990099644331119593142889402788955944142122623928392346774348717253915214586557134052389221202843174951252922039385434650499649526872497128297699617991027191031082309762217175551563406062664806150175695011883657245904182372892540564328223399377123744736252795370056490470796998589319319550648258305371546635134658504441438147963275168390996206844060244451268559286889047508569178766852441282051696069478963851829618525455442335043510782826702113488946915125135167533993392390999969499457542593369634575375053003087419661065612450784831241182561356731769937687889994561792736220347494502267245961851484513826416303226551914386802314450172091068825893996978663659748204279281391003784501082105435030246021750050787783504495941589850662751910735457377219598306196380515172991257764964743903131834929151665171150944954718231178857637885059667238146168750260167575977246867542512495603861374188487424127880618269699103603598713132869615644144576845078856833842854191984682706713961425415026953364014154810690793417194425757868560743072370915266215889875286126490905133930330172642360539157309032148514956513226006647002678905787719115723115401155221276885291505344603928104220630609798519899939158335853627928925619604427247784539194114626097204755502771732499238613334421761055304042463812233138921819813968379091420669487471297640468985479365967689679844615147846985331475390981223501204831365361780878073120880743073618566064998227128247678484748402029351955182274435682509389065815736283152926945909359439657960662067440426992192042716375774927317319022326633107209948985068000805288739111147984768325049952698867826595901075381113724468412171792725580919264764610726941473647506960677399882278417951383139308961037430530913686245942813524605893360537713255500242600914762216609091742017668326492494476911846510676833418814400408964577001602296601184640163139445240446160836371747651745679555506029166730427686068953206496005698172373400567529484177289455746216489936948453554322765651564737301632672342216041161485739795563314123897737823680285618098409616363796926639739798661285894223237303780644515289815715304248211466845376256627496814901486268073283780303660648381646892456394227256481595178079230269152404547407744130081000407629666842297823263868709207676365977081601257468673992813024167280258191359086848149118245879802946898088418986700791273806110320273643968645201782767641253997870871215475118001179042653768936706963905206934816858534659830582760057802835986741497746911397870067227299471189200216513235261163771472060565724410411228919815925109803516759647782838953513612949831024312373437196305347667024330520300200538841275533885123115592158027707219119899128824578902565950473650035241234694442624179208029980784265286023154546928127756470807220391077922521097196324689566028875734791451687062577576477028719635332741408290626952471223771639744387368337206562930053140106127828278461979418666243834696951893977383392971989808872105380527950299015245158371871036724311055047515481767339186093752572950261530967312738161310052038239160198534943874002525285910852716242206906419595603820130827515503852468191649699351785535692581032512014458084787902777617409808701946395514877576161634679654088222459137269176104911109941410443529658936509650532018383114564588680198514800282760846286411523696170621798044078352678811793734898134700598765069257340325315440166980792301750668237365284304657153765278127976914716763176409432993986990173002080241443719400094889047281160975144724091732090610557652243793647198209080497624759982737989096686945244963650040571358185445659517588546124851302110615031347871686009422624130443634676546140353696669193082981407183839733344519322695853181284547878082794016893847924056932011465114416477054497509718183851049335585602536335219498499237786946073398778301381901716846026514024369917585301365704869720737947992603644792363225622214078065788798586587928707900767925494651206762729922341456525536182609040614401023420658099292726275879437691952270840303258092235268117360027632140702530603181016374301112741905054432571115753113102592861192160537957903431606962339802202449608455867122861550805391824359878076763351758784890417261728336537758237092538171516434918153196203224421075479726548855257879380595004574931220416172607409086049406089880624202001924367247048322141494614283887331024349280826543521927282331292089282343706669117482040400526935864723783760260897028774643272231014602011805967744296916031979939710677998227522385844586010687497856051301229208899203070827026928836351271970783408711478466732292410058798785261948838258687416090790795879536925333075770872600042021926367919397268340183554724454897049348428870510806348105993437290792991463972065316525777614905864818793600190471512808819633935231481773527351925754426853465503417065128959581888483949577107518805795587927031949105425863607328297661120305335970888996724019610441302813087423190324259573697845139252625505526559461091959716829327237347285017269714640399060799490025940215759904965174957897262626161728790938766593572862105901272752198751809393298250734492969142972666036104297691218524118387651418826289905623607379749961350312328113991388405089428181625548379120451179224868781519624006153583227178346151013442612775211288277108650422334200961381424872527431088023455902742363960567624210144592206680045569908771811643690705616626335861082693091440555196743983741125680949209358276467493262149920838934295735308517218449915849098438097829935304729520644430811448697374027377002468993581140974927260058855609477879648346627895745508417929581062190565497124185419453615292656354906564804102623318455662348785896830401587198117113714774682585499029488241565256795181291638374195322037279486199285701048565451972072138208894326797090804976399673400630099239110495384932559778260461866734604483535870338374811307192519726959648817354682884379020809231013343418181880459217235886320897511148618648750516708505568745931219250127582058196514222814842846408219099569302223983840468674896972001713126317848676136342848455652289725962410403251664762637778386955893638194234337686327599598727640418644394952712565468431249048408715258025787611896324889772051567243075699459694829865200117875240379889938458194860390416815885482914668792595782670629855630273500308565415744593297111601067458468427462087981396314264446089792589687242179846886216032106612136880020295351153759517740740211687761553610186273251903801134360534106275199335167732922935111206951778967836380483037516256596084104922502386320713021362004920863457527408748309954447450189068320130155090370332459889169374013738405376153991335486785704317758129214559223054327174207339140799820564328521566058508728624929891659980277708489037814413937390326414903855442499701480311994574388185792352656847915778843310588229917421403546942894152741462063356278640462896501318382482494991662304266719685421717273631827191556311660566588036748320357063277934451600950228678984548817063517742124113504615615374642047417986221247440060987646939414004338910324336824964116658661000895392847386540850301788012203020838934505415900625927026569653069944688992844656934588923858007971999277486660438279662512375755751833673517868426801667643678938298317816990662922388880572089962638667389079612646986825723823580191487520495265799469634218430385005357894154187071603244736703450071524132303343481761940140050490025268541484530095568960729120584546330352196663790267760969671394089668587777346300267160691441240286816944756314008975727752897827426478503359536437128124313294586145277825262418918412001801396023345578566643145976093055375102463169285745374184035783100768468658390451008171301576962389038023901129681724319379447508608594422557255218614555864368384330619164761342867388685519743081369110549622113611519292403815293138274566049276657208103095983309698672348655510102078258222714433447488429261053260456799497830448677687872006535974513735622238415554550499840373193571157595793339767051918024915200785409493890148509545681273626289106091009411269751023600149911655639183389700022022620002119306560273120690258733015370180037385618196620893882250421395162995905414318712938131831288382865759451784702993904806717251266647063018151294080865971593804434783898144793340519412657483941056398742576460474856309669907413464720914225387918466782074633475832538294664914629989792055420562106491542283191040210149658273647300017598919871995720319130730988301491499914213942535498035192228595404679087557195966447193557788684008579179959562917972729602075886666271565208831456344392435093696321366890356247943569017451374877594351466950860440746302865941024845136318103329599725123624798508529696838714011911469827558302304502381785216318629829784313463000707297348346287963309289347216586331022063430863415889512234868771679044491826108196665830658601627674130654107146081209054588650763237242918080599341610573527217619708380876574277611086940262633181940941816516120499297438903366861471274205941124344290286312441534687664604271348555791527400621529999448788185639595375296997002141247798177292897169461802997858673103269822290022458161315376221691017811332518599681252980243267966041970139446883633180670631325731368047717278384470296572931009008122939170530578760968218726610914248633212693539849002777606858568840458009500026762174113730843570705052393401147904007536161609316487989719848579246421176401791258371110158390150362596108225921225836990897372911073988173889407624518349435670531233629780418589622610429901096193261549778843733934206143183525771616019982750968851827950769235753734978303822408460772145500397218314801580788590318464530606842736615722464058421797046540643111215100985475896471908443720867815964986173640010833639163400977911826993605796644474396353840421175656716368563270911957451935577116228016253726268816941933762555292665862654181456577266280195986001783251713431389143800485408268940403793628690760101605962183212348287599290195418911308457426998183475367827845343103905732936747782690619984855731503259552292934334114991257970459484203102950733325096657412024288232889587740472196321613312316932518533221731053806379761271490750205855223911632739428611462914670173551285347716296588143828256616737732762555982147426963980498339766071043387160819946720815509612763041462841835292883564112308467709699730672830274614583941432650518637476684287272995964106459174546163737714547673348470859396687271737448315037118645004864365263347411448041406940137664547192818194379203093563764278451475384100585730078230652084605161531404379761161169351671217506423945829772287585817006397626640562930738679814760141327623551132768000798327500965745155060142068574636406496674448923018835601230471368813958330615084733918572883370764346284880887482563453190959823473150786357843973335104710481555670865566944379214065901948677785715525815210597627952315902906713767132522094796427009179969957251220100688653667122380822497648433155656299731882104332123360217179687892005444033071164963880594096198881219889928732534997682096401565879428598917764610843166292583285773045089109282179522902867718052768429632282276016547204473692698413663569354288377083427747911021444992506102736509010823942403856853067712663135440493803291205950352920574026696000369405514131229289944559792060196791470696733344761873730368457331683983156014948403341091358635602554676778123946090779400421260175956740954768030736134291731941497315193959492972486759055568903031209087598913182133065777292365189889358677954990029151402115891575301560024736064954122514617213850703458848018653418619887074075169061355727972335293379018429821436003720941297640468139414964323357145066066186702128667978592072122519569680645234435665979121918821770003061471052322564076911428404776782402624891325173089496213513582811404520432245437209344482321526959101197319671201008813171516193084971460279361157213303924449216811550652692409921523940112889223334227732289431979113812654259487656894126280304589391978517531912260546891526858341075454430402013033018002140131773925114385166652206366968727730104609651140319930495844890838875680158588971061689737150291236096024615056771797421110130022531826093258152627820603016256455967947806000833663723329313977321680892022682172819040287311763097536901620534049871945125451228619398092236798534763269532091056395359776765659014061082840156022276042788357530295375876788540533492701781627532503136319984457967131905071830173838814491537231380863185012746794078531597402086809485989435864870251147673326434667440181235264775429847546254581725969308317958179011069079573034083893775343522384961276166314863170314060254256580142059038881513195644141674065908112590101699978484869487249056015996169462034221901267527413641325795845043000260896258979243362947566093755601874598765942250573553857343728862099640967230273967987547924349166345550598846828372624714221230894228487372280010147643287954554253439374217876998831242647627388804512197340922334011775441130009765601839179315654138746370064492892740240015926149194630278020413604118893333295907595691510434949065305730936090563482418203387124610307101949615168195473862654547813155253250588292597951823925429597664909836649845585487133499163438254276419683800777740985073181414962252199742761972179216016062070851677133369772420610008013933336446975515822533163124476619242483045813764478748918490693279132610160826158993009907571770299368535169490031121391027224274153801171880531466376097468154316533729117007228665166087040076134366112777075276307501223227898979105634017208220372890056453831740561662202636914332645703896366953652446029556275797056801590187296881139696339787747834581471244500183100250373622172963352094764657497358112596854537006813817125557089219589632830675756248187773225556461686841229023355301872631961772515104927127838586362669991572575805796906056276697447215337875182949454912551747547517899522498358816464412100218557591015781907025816896497281264184847121342493337128475521459343489173835311155987581132559119768739123935357369957406306904403481341179356059080848271683335362218203601670658844826370824948876400560587591632034292069330153682253291464286171946451889431546483191615832184958106098957174177685161680644236734573103380534528189370940953333559449945413291871945327403855601227814437155330102730104406732552552382129516521074284152866672313025708580433196580538889876662598931022367499854528081082114688146602538980873959658930513219994170486634443500208148504731682482464960660893190441767802567143428001817108191571111804919820677309642516273918102783360823292882221977762345756132796872701099172072296841064474909213778124193105845274834877533906801668773926656056034925737310171860878663062754872382057595117036353864031332771483843512090216233691815391601496022737519021366024091414235128772585562046722964373247327356971594835878134613865111121672294445569027859973125973407347071224869257054593232319358463115537403274264110673677977550235640461080412199680984891596512014988925944731187200532929703429294385285962784885700282999761565267404325824260364742651516168807150600292804121614065598097800704535015709191039077471329840295591267883282938923425743990037115113843003639842202712404586781146601496405198718830564415740649107057818444157179232867403926328954659223575852806659841695251250879239232379299575381421193437586247791668045867149851280018827603783831947417344917861823085371827016309654275879888709280265403064536865514063181046026973507041168944066837099846695401925237419081479792909453665191729499892144475628805503977448668122611040837630063513168510293236489428975757068735488214370963120062145693958566506969918325802867973508252383954529998347507683356879845026973929991450240138465230737690189634915238160791180423666845696856608713516676741106158529789790250141285721270186615933544537093952414981366241055362006165929109925418029008966068782357626747177939294197111366021224001656131998036425314420691238850996580980522615052280947598942624204792752315427633976697595082879702545889272386699667478760152098713193943352557807487325935098957026221572389377487559849830064249547545649104905152952808451875513390235361009441199348307826001744286888768607344886115166941995416104848044805831553720779259319650833556972322629186028701755138711124436218989129048953930076084461066593934229630145165255092434513036384498654943835790880974850329705274381480232078205677768740097940144962724592837619092218225458812468334218505549708067850343945337930084796668510531487250338192273686664565510270163863190115525481687578921111567810918775836699476311595687924819064615630759890216385136043208345519284833694830103983437476646954951506073675646000026283268604241373583311625338983260777360404175029047284868210818331819070189366064760479407148156586247325592889682344823419842093667898119473600227639331907634332483644745085269187988963146578005521818135578159801376959095597696557224076735293003680680783467810444276503275080412456840227514648680322405809486509065099646485198007311191797597005851468410471478069845133450603584795417801496329276964361025283657009492723651569583589288962552964040191084328187113174016363567489055686442893434705145116564422482921936695349648410840447034999725705876751931157469361264633991042872428763346690777065375011814917429212477452492164738571742445295669714690783598250154795099782462024882910199732202567100400043527711915392522816294391466614510044474282676941056669915612296785777051263451402930719237831264558515697451198388755087825271616006308172254095121736049423537886431273445501007937108938641105468753078917943852674992272669067373763775529879571070693821837057116131445011379497656024581105292375106332630524540961300948807378798709998767815374203183258826090090885430646210601405804812400757214323635329169049519789022589071987376828718383013428173080033395991571520743481916091815220551433245823944909417850503127596627057864887433566620497972252786514372473681765826373738301247548299220802604982005210463748826591455027553801511642866312999513107816275107839246603082190098213400823332917636620633472389081628208945576250069460632899360962441212682649155747145285435150770788628637142563798368786197965074351556284053694439024154788035238468757303245575713340079715998650149754408108719548152418482981913349179380879140709526180118735711862339077793716782755068533088629968044782837555843789911070520246424854625312673574679159779300981954493519751688045826080156470497065376031222062329292863295103278059697328284462203517398822736525800769217916732703720963622464285435121258330614164543650421021315233929814740648200255755187743666027095803423250180988770902166397821906005982454892499830253073862317119059746129147123596930595399223156697488278365112222034694504799027166818594986418102562853977552522005452187796109517797194710921019966401535502511546677750679116707141418327684000199286748440199718984015554868095493255397214873236321795623295428576313522900446840851043294087822688612418874057183051646897298532237847053867359039262809677581969008367993923830737960091805305045629866985818227737900821177286068025065621127957491282249000981607028412119475535466016790988452892552351578224765116640753002702564032831161125595967362537361289902443803460300601499640601056061966446630575673684415785418912810249470621867751743164107884055858548182648819751685827608886420458852362199075886041266538278364331902274532902544220287322986521216814913465455933905247952516140491674174359931159123856439953842352020835166673650151502359598512742730103489563603824469166565380663207215657224967572260291595827970494028358220568518512092104182740833216185944290481237977437407005062238214858533379802913615197730819454865035199825763621308005271268230387607811129647373363440690243542108547639587979952749512957076379496964742508194317882634802257861797806718039791247185353410002444976882969696354525458407589519426086479293742938581038078918974680287607620647441054216098225991170922046255938462929749512549962494602313872882200318371106551751076283631305125530170201369621280556497293401854138195514115181873227981016092149380455087840969016599361592697337091225614123145383138628382212425747159054387204227821042915410085448891653885501317740284494952374797245934754039058050151986379400417631830601041977398734981667405880000768857000613363959768193239771552608940300663257043794143853812549857027926437868148573660515986129001351071324668979331134519428547829078071956222628677993789823780611101304346979414081954948877067822853242145079817547451138586753183002807881404575887955289197414303220016623242645414978799101961722529463600576163880208655096729776163081245175761725442471506408581650841042736540283788130406227089102040037116253539299533737989341098487416837935615007382322297381101515504263661643324253942225320379790102066390690946259697718027309994164473291514215917605210948423159849395367665306284173846328627719926164171156100688302296875533870715024749761837908701715710860510307434023109352748359438711695807409069371247076836666167200435791497568554686888674518609564802961662927162005597688920018028694291599475815429322086779021060028683850138080276010631784601661251498384318395576011236228542688849184806864034150528112257297156376257496046170272676649062612151443266984203049624409866397118632184452866879448864342201557670224140500111752267960895111285189770386158253864653632734708427763431358446457090043373462692815200593938904218488547537980894973063510033621024730955992998631658142815409642041090246485283974922914548635649090035233232598010716069555870904161531845524350517759451469076928227496673998280211359766539086985975599523737881721978034342442547736693791212524310018496213588871699392469070488404119059885201807526627233443485769849518461552085852404584397060293573183465355681602445449498633880424535781409543864977440083133568432254396552631574271167296401931269298568013562597643750871532171273296419477818432326817279992666447262369789616441846574019840759562196671485889201267472361684742915755594800361131752206249279760555485006194424856144568856940357530214504109275126440321049521670850003974014525207972984728204357178225045345740871686277426369168230758795212659235987691020859004434735417884684997521923836913908718950167330611139286158081466314456238500347079913330201281843991648632425688594977662088102718140099181913640143763424201356342392420682936512312575296536372104341442555913013438001962568414809926782004836594432906340846857769711507423444403723798472750055196680023145185522915381997034797933406034555914491287758433771232761017421185807085532465302363296675522304639403944758567468198769626618755492979775879844066219665384778496708245419925353455625112655346865699774226548767139281726243841644333358222777376243640511095997177526323729449166542109837310404216071620889403376952588631311606853976007520872115339399155919546775554444565664025997176448286813063344787369940702043157321574454832568132293682528912765452309135440281428568245094728247727958399509002847126293035686204047511783494701142814175807131544946118748406163466654526306503051639389931606431560994973122174666313879510009257715468821405205766559649361104073256790615701873733757626733599911300662389376182788072210516691492440575759661202434756255593826565497635355420633260561395047602589801008285120231717470973160601626975510487000988123626009268391660190025938439840337062213986967260246561349596998950951496389169629132507538089565959797315627212507697174429377353866440486237367940103521674660036648951674092249437682266756922029280042084442754879398795079994246527522789569147126836997706894734795123626217352988500324375848262089469970246602052778157311672288678501886478261552193032789151878557571540824309631991601322604056615845439767435254924414891175812690436403158440982049408011097797008959867442886376469487475877744806603958415711178645343446326265406388741817782713375333349431610395512764979474171115067197089463045483088291487609286415909608227830388525873913987254745529087536877046843110849381300207104423706708785634055181307289616345372327696685600249910828534889023974283056616839949774588340360127674327970456789799842331159948239961417622616118249748026788968049402582057733123060954239418156406947187805607492956137365549094671336521763320507899721515616833902802542264261754686440934501684458495401244928530099093480866139261582022995642879012293828196818724897076908897381015081541640586009775186044399777280250207280198865059685742977636732804677585278048814149204905508975236926269899262979447375978554705719366061619036731612905500644503615821884698798723816296977670680269141852062731338771968050231571886073516499312181101144905071072332147647808715817920190007310300834309702832282409080613840784323862925155173109744587780917942418785685358967247836110697075212129600719689885993822455647471449870864207380098443311986203215471816918889408275596720226097785233636036855022273077756483542253474398877899332618992787421978751149742116471773576067242299678789016946964602692854639072091146131047015521946910779728614071125928089378496392124353522863716296386732219848527316557932754836267158497264290776713254551741811030425150316909397376733980010010327996116368219597186009009341372601668920421098466592249759779305694828636990958911087741806031036741882928198574343910149308149636628629154342362948132598374057878197580018522185482607417411915491332921708572230110592386455607987188981733657072906786027551790397931612530871080074517233746481213518560152976991335344592334356951494577357908385400167352759806520332401598176020829422882380786161092315600674729927534400826210563004266184568734392886716870421508613379198601749451172514198882233900644907497280394257887701969466791481731069430393014618092345612560744046550346003352013413731023023186019413842755756081049700165060446928942247830747435289007483972116594111716307245492119426207072634460874843242197685687623478022199045370988715222263678585179990345566861006488319389066237095683530317619263130041220419696009603971762144376434564969318786354276931738237016349868114081189573785017671878853050827686798337845891552193042007061789865229978550633754508301775939028446105870211995235083162064248980349015705147376316752345062636669772562261096945285501512373595992074643637421409828267199313426433771604349533416221155762464199332495186896016473379156891855763242505809828937236729262856962199539262295269060074663995326331775391626627643286704544220499273088813007134501760613382110511212732662130799196114377531327059119058357799093209007330148004071685631816958510067905981773149632136544986690738067073746725978230144148381037291471310131905272035083660891787900041039288933089113918155815530702198174187288114621451580370689584186033198103384070604747134752803401243356169602165077729678898967958494308453864948039211366958949371259475906004893781064801913021638656167057986671328755008079926595051707504327764221990061438041312857587460049570072637292143223386454351259060277070248306055301907023613296403851083067918612488365774084608250870626616713087964835662326847446612644096427878212096388944939046500609071110803512043767710828113900911508914288076777355088837635079068728642403174514162777364992053915732526726498476651455491934868851436293007630273341609563105353403743090402014613265490857550958600249395240622264096194460775521138347648096568503056744920388509549549476310218179749725360050766085160704106787061631710270497700983384591458756028346221184537568175143352143415568217144826804446882462322718505129700411083859273248499886088076156769374742371975342728241111519362576466542008149603566634731082781532683058356314678950800471580533673750397889274015460943235374442204082864205035592237955047787988989158739653053958643668260147038730546805603641273173771567826602099415791848520641079273859263591284716692439980967493060084662580493307581879713637387035196533359773108635309740307722420695426857077941223174900683788539888255989095902014973865388688686173280851092153904716293771216670352156178345172838641303346757008835501204433811209055113101378100202104632410865555477614689297596517653370910095493356721250933159612378910446091433926169041024059272752106614110963949429416727299923480333714225066764129741968348199351609370348603238416941803131261753262296401343288558848334460428421254640665582891435082869785140812150765932132651716497017963818876002875081088602221154958058590335880947854915991827896961006652926810893753197393603363073902326332942210042368222706408795768214956666132525980779401001059107770173239050176875591659251467155007763111040304347329466464405309043845780058552804494125095455523517546365834673385952085631505689611123395704737065902664758675642764375399830729132121853634627534432410717860799632491885545497444136182427026358009585181956407436468534424111748001283835618317412648371115576055945798704715427630642971831999464044275544579751033892115224836535646441568315529650488839926139538987180028671364111634083416462347169107789272261213865160074755874632212954273342947483908841195033096356849786929523562458618835971039354535430692206662431467640823764133764480700218145721328742774075544540247551040446676436339781610913717461922916417600337142304652043994722198871027037463928406289524093274415869365643439174504364226391759619420455814137662883065733069765732199760233888194982577097928039932413454951692972900870754365719435789536449498388377808907223619749701333415882585758978592089490351178249907922571683793516139747471704092023180306854106969831824319095078926904568475542259393408193937488798825113784105461804032883356772975774241582421997710385128388413082933069362081966559480209829555585997622947854938169973239184702239941918193381655727605159724738527159481100004322347234852195552874808131096089195288372784219154947751693100691872951707799084172947965748553064222614785354034187897571551842781299652801713055325408334178293087137929230433008626675130034135194471976067835413421859672293723327510045574286603455335044538352529375893484968577771633283249836577436411054420997110153062530323436215494397844880603918069072545458901042526261771749874090113923114323405576608942872550626669694109556262378081657645169948974214528858734535830807032646961880016277938425119940603001492203420886034838593045525343442094963316512360045869501940199390277224505369679637600334901515096466458600646947076863212062574458436611699281498229851186173152508303723198829847076763253576411805444425177504310677378451295958941139519667753523768459439424884253249171000464512718314483507617505410913536170718964845318149952381178964602899196550687713745244952508497198144274114279519423857754650518667180751655028740363009106889666571182094412988589190050424861218824045787201868315597742453583636227804642117883101981155154877399176679868573242563372177251242844876075987822755754762039726182409083598480247603667763371918165081917593005744939153006933325718438878452869697676531048427213391131456900586380900728441064155817847930068241583968631043172829482520670633945382164905807491747179031648955291028178771471194283217308648768790442907186887049698221172612453244694167502558755660646678212323785609521664665511446046583062221101950582924729805589420445062345096347158742475048038500158133233085465845800782305617073978380277057333645997977671592938643459236641124430667854226846149518055070367084835891107849121760961829405437626450822098986756912395860299268249542207269874606935660259327548728811832587563896934490213525999999198485319523708351264015527235332921049513921652131891921362143916927837526279404423727290680089991608028111123406103437744240994045409812989989840555419519068696422682179146028469878460279434927235997132907730653577887307431811924660298224808705785609056511958483678473178476136754438692483365339404878396789313787802298308803650857517774695903298180971363345508104137724683312192355765634938545938810606832966653020209501496436711876609374602196992210052142689741277947991106572681732598642834397454388784757442888780291471681214151355695017388061242615558590621503200877052035939418139605012135285887802096597262189366438257202603528939416488006237425132438060608538017709273518698388223832006857347292670212236949686508524692548974219783680713352173009218216781106574791408400807312911289298510083772758423410921418533807505888718628782935733325012759440377447357826346688853897230944133956313991139727685499802110113041499946328471911261305734321223732836189672792539749119983815823875469244314235580072126131565335750966492345131786590157071589919497285715078166385391088527565677367425404245219772449778562351245373548850086677161381207041806312016073078731309146021465181513977600712027586123127949895977914108190595271890920349879083094230101812506495860306812561540848198402559503022903716301734099960311113335803975285580571558016377692275373588225126246443219067420503330583784544156541285342082104717282911663753516320685828635523966859018851597610892109765137463807711461057599027688777514964404119641621971554208252160663929014818986184124707088118795039428258432933316438400719579261619792889001875424216564545901058585161907922634072385472424950131587441309220619696638333458214629167512116940057798959384740056679610419513683757467567176349518954339739309690980676393611361089735943357648579320341260489026494466399305571628806981270975797799071921150757921016743221560921250249138890735297962889462079402177023541910416092164645816293592581895865135298406210144110745612570700369800828517416316668625199714807756923001277883078905349481663133671052147992512949002335267914706775971191263724905415875497663951124913592007388664304027757544072717708068766901553200660170340994345070513739843535412344762863068148451614948788101856698348561909008187955822384341305475931207681305224202584061729376635004536030380997460660926986497636565619307147615959556378037398988636009414823923282195047245946400546159212147648558005533779688595873613932460815750131765638186639071183202208223073874023256317744901433917457231076067009323462935350127622541171330800544344060976531156926650959474966310356354486410348238300209778273595465352423769300598481354467174140893601080929544660308086844407083351559812616089063872479623443314206483644905470663018276470361151767543231515964934729807889016424625313725972184782753427744781274019278417864375367856884575745534471802688421476746933572110220700810354802963147189716715646154140245108268627272994158983158292580264811660119375496945805156748208254305779364200485055377016633995264676845573069020477965260330569557563957907050548450613094959127776347751815228373292372790080600905110370911978439741402749856548982574757283775569071593042742448873711226731605810382011850540210369660207769281532999822827705368792508194297369888574990247287136135466578382330714903385449378427771815438844512446913755082195725837842525675278843515673343837877107099147121952722988331877297060097579148445331439869051694121939785110103299259088420977874082266276761560612041850638702285426299229608779751556913966108838829914412271673580989204226267791996662085875224194716229569397819166269015903052427957894036073809606162153126153331004187945093104841267669984797034082121886973927063354516946022162696392650899622140234722791039514286608078972925710796402386656140741518210351829692932035178295683737775923557487279491718475540604894511420563298055461026142124067182521713444791611496555903979710882042197494842796611331196345218249067367005956086990376734713248316008675781039585388508011906171650660780837645440143084082856433272428698786602029265723681436009914550618295675837095611595887227707510716638497149964348916441423767253105105583481770489573906043055463795687034942625254368746766531729671935457564349006508518464902143391149009341495182109349397973502589987686783006249373676375758493520038278710789097933235190752528981002286508157393312602926006270095963886959362339488980126694216974430908566167113897993497783836624147280059841944206047333285064776976813397260933087057909377020456743239706517996031937221626343626051583562013764318059683001536407934645226302931237561830346237438656233957627793662460325218174735472370078056188820116113257241078131031861831065028464396218007571503326045612975836194691063731919814808113122988600448447089422293014914287801004857676474697394127048977059154474157200328836330229907793404003453390936454535458570798645158880903257566167005747464982967847018936751048619559613779289479161083833949229723477635931242575594647408745727839864532603397660093845438988689844759674130027464781551489182738166870654726801203754378327830191956028515546756903961839439045454501912822169209968340215710613299218361035772448506821741167753659696156676237524250661940993494098759879907944207716040780426798307908319808190234939514515102790352413872934501068799145362554762886941897465291989963447072037981956580688199855284712360639925728417325127371590589580569991520522783745473658573919229570208423273414875560458324548334000805593583049983248731732059869400329410436270416141611356486115400839723531652423738419936922340910364627852998800504201448304443280573341001601425926795794801237302494230961912467146015372886896552989217778332059849134592890059296651572493853169276984062576169233596775930585145193712691334493481940333688472280261326987903471559442014110540308047310155386625030700070180291301961108870974041778619048916832757309209891871210259222340203028421580342709189972541903204175993187124308319392493343827272272896815326752348788435872798202010336375704018443822210989005568797102647983727161640826263345769228045105939885094537177099048927490895418354602200551340521823823391750002397322470255337970407625805603623460408310432982526447581752977055372643327223866205492105851085026753215148799117200419017008602234700462238757822928424020928413666280107201490286645875043814406918310321464815894456698136201944016276798142387627221791901924088449992601990961602224653046274510717665466712236958751191238348231403519991107845490572696130137665202590555182342985265571958261941519746491374836652735612901503162237833339235753227124294734901850449503196140212607138486392155226623600561308660243842215287709012907824332305473618614614455673750258489243014025823203954288995342052686795292557858853662671361568701255755695054248883488832668593781790302169033970678507220664166752287227062224900250594341907613504932076580601439704162342195382473108960790046083335671665991905369917482114916371605271928098274170163297856097672793312397887572022673873496755716128638789448963924205050617373145187886921452777840761210414513532762737480854500730882445760666413608570251003407840518695146137344034865575209535479987245373111851992401621120425502966552659210497770204155541018660340410170204735145067774601190494491703757747828170897236075609381670730648242518302734263945901860642858551818339106746898573727305798526202724196451987416954138822699883085295328026105283203861695261462631121854402480226736640589435490126108380759877179178352195362232654130734006625523749228717727090197167990334272306873406330215606356993393365953261728761755697334038639563578802901998864514938690637217283996304603803573594975430595155845380274005262224279048972355271725315761938492912631738367632259507184329833570542618164125965662185436531307298445070817486018280797356558140778794996462126323196920795124578699774795724925609571373374455328224103922599537555895260181951380543937897390156544304596620008261888765551395363436830011416736317000177415153064266546215818169016432064197653580431209623590665492361284282800419505071287234392756288359496209388632716747688450164918061073286163191097589598913250127056854232865283237665459162713356453830216638615894533029675994772097867602861923275181601631909496091032156363069692605113588630030242083040371669260541237448314893836635794533583975191529871854136843330445023993118926004663276738003740132802916647612225356090949768036774446125700822885273134953316305624336414169506808073532873105196089237110889003295437975185365586299928034825969118186486310768834101500773384287093363253934952476786557178820043659173471175314819435284336276842595729515761397250694417293322589674211205925981253638242133680768526704578391134734979566786506081146386085371416828694224078971089200066246004118812358003209155026566228892124108357053403113055567032624836020899715528516737032013723519411565427333141794336125943792506745989968365411237335773003109999948682817464418214775036744746586200947072722573808621984999341580625474330508191756112797786378173621311918065482177249831641317914138654271444002929968348020972313625474297797178235460977136800887046916522330891752350268286779297141343623445415145153810931054192185984042611879028616451729477369263270039419540233930973289955954649079297215400463584674811378131895356545454707866782568105074075446474783783075261403459665885483019308872704619096203679828772351129735509198491116916666361976106347899369898318716610304697399030836286208951820363257425280804317507210787061335030735429863306662969937857544844105542687049457954390933598519738896836039941351028442805217339292759035704812250656164229403298765191634719542804659244496986641292922049824424805794230959356554366591684297701752289394765017692061771757095875870034510538221258812575504891896521735429852847610257515482430043915472538864371397627173466859737678210646063998680451777745587507411387099148391911725953366164440953084979147194835513580579184829042773387863018017242246874478487665513560429364594079513970344140913248844495622876521062014573802656141330025520538931449238868955797111532642815765055569949565826155060126642755675584535999706766900980693961829813417984004189287254643889560805341620795696745435780251954120523891651359980718090834262433563655151470554018018253876742448096295693196487786445112723870342768115790232776439601824040400524784666500770183586088216264549359522251290985839904745618555852153630124544843074176842009337577057882917148771750919333311021975528529018537137869205469429848620134965858513642753883465834670614979046594044293594516714111017212715044591835169527825811570081011059647127984343188724874152943892675765819051985946518275541059242936856795169814608052422049190991033243464944721397216835473480140482566201404610381625804679178528907395831500003553613959234115716742993050186162026484106901590059083181389452991854828385192687170263489934225691032613671846094034899054943813102049876210095948252133785390481044258382021734262355475475287361804960596728319957117169369868669813381625526104882371578125044436857390563996382871252290050850560710859543199349933061410826797778198720044634106668794834516202585032321784950357811707868433798231469209720851193019836880553061370135418705063411567062503604513438819659531231254751939860120066344671819817783443014867010359877842771606506176747415128423344064021365430012392060513153919418298314655737758036283857813202142713505169026191188738194482029313220149792261456836258620868011014187186504683922618046236794059880960441313660117333896769233872563378611339419285753037893514163321124060860908681559544273868377442492527319623233057124257657755116802169849964706700995315033384447306426840655542236130618266410603099414101338754089581003793650916172821356299046469327304686256024189566021430318231821147456462469135278991918517620127248188043854885652545593406757689660988206548945582446657843396369679514469150679325393544818366883694829535817049727634619855050129865124310805828706068191151750311192755543753703321233244436248879887338089880430182085873679949871629602763507943895640458791224220801436957663778374401123813752861276752102419159876649057568927591841352338909067298712074911869113537181384263643222784529241150776866396446852748685836841248855172843856264790059337625151174921158304536993240340181914218741383075831179077260099669870641646867709802376800694811958529969789232228850382909928198644826534075251097486531254704087814880970213354976482507602332258649793431125091367695092092166974245071850792279306458690062794692014470843714548697656208708152671014011571616417416600280471899024732505742310709419490662679830289579632966559510247573324316025092411539493138185967164747832408494802696307658183604712347520842472299261103594088296980068735364635802707153524102311091755262416724689048510162992518509902768472927910465597657930737823946861614536974471984377806394018712575496120113432518730458723376460353913453258295892602760243265983211581166749957987657652688119393624685047753011714049489872404607632921228800819066352255348807886616426013962107888500103224137856358253505534637108218526157130820448124858704461794857065233715972853060189274171438193532816564875853149258949829299071568555428265625554756421448609021132177512164198616268839192704041072938953710972474587461278084308956855545901498318432451675212464628646606066641733036918749574342371680323064207789753513465119601362981102890978344807333323765532269673670629962011511526093978448473422285914984648435425175246135072336371251215840525055246613116957706304391151347087157749176864207852364303774222658409606850033649868170736393769375369622225356571244114046375965477651152837648063356582485616830496340069230524550837255307437862962504289890644891730534797657157131532904930950220289514803761041864320376822058681331324195969081120861836173034018483909248171937914695219782961951339213985713049763298639280917198882651206057973734686457247594533807197848434283182375107131762602359087833308599866671341277639004835932448614226746219926953991066898351814933390139150791809229598919163105437983137334835423775931213280692222747913378755017470611210209502126976880459715028892209256410427938287977656953823595672785234036912588005982107036519707425911925767995351697381154435347142269207291181896422929223848553733166290061720170546343840725197318599200968760007312946329734389873801778005151861500959361875786645228571525075714947622784920095711054258793872998055879517479001063181540050566090836912340221063423483301006151126866560397468478175632768383011885191594015244248307368567480828633942797847160612317934887301643461216498613228258541513893908330681121365816497823926641710488784679217715897627334695944834870561545997304886060425231634183415511092645463663587155269670319381574203700595696990542223805060179733073298100292979691472113033221239352486212709662040754815317673803257356829621070855353971562107291796926955029545684557615191322588059091413174658243012676558214075877510969860675544903808848627707657744009777115432890600987768681105064280489608075075831963737627478274761407263825441149591175062302522988330052024498184942843893644082171176675199926600686065798327608315375711503296702922664962810616701566396889411158333938392356539433520648363396432484293638498797568597005629216997520187820819319533163696213194910842479371457401124598834833568196171872676704609733744638983411536555825167593410762803485519688238376210844451331771689392553055541224791826165671378315958529703752657591647987095711592951246616580842742039061675521716704820504817768656763795691393153635785776488820731977037231761847758604669321147743680098982533526941875744623788138516408812248430654177742475269260487689342509376337756113666883421625182757685431041585735790685534612883518356657358053120382933027556221324566112196081707394265552857468019622693895511316404363636443840101945894940854588455846857338315505992492530318105776028736903739035718527346324760322834016518873767627209151658074878702029435403137789054710873856995061443268527122144583313105202421132714887771818283041497168927095038397225161733092984355329213129601794552818706706995232217471751923098922383044687282336545653721608147497324683385791550524633001923368016220099883185862126605424516131940521723279816904003020567495802569555267562293769897861972651865948045642273372905383213135638042119527662610420681218300269799195983177845374200936064845664721485664642285051882542672220498770248864690190299914780159461137158607610218759699881016720361422320396988809912779617366331753194472393503657033875959860093860407607091280164285155489566476598523739215188292630229576579506441004621088814215032144666377650229019748237238657366186515914155190025251987547567469303921779369518946791764075641339856829456343917092900981529684554294308523931641352769113295994933691025163291956946918939385203739741561365964457540854803040498868131705151389036370527427546620682434651594383934982821984786419562120435639705410812193333934675554156788257405324120669154682330010529771474337105559085836880833600996672987898857775101940061037517093055718056271056910573432112384391744794633855767975527435231814630422355363675769130294704353080583350022674274199705499304390082275698203168759677270412253990569056240298624526011606456625277218356344041659479352835677995989878541145656305409119851063508446752079005476013912358255985839945905097583814080285335209187435281912859671458286665360665610954473512601372558178223873602012442895258731907567284901228055538931759091035371345609620290225220462405106889189884787953766836627173044885534457232743601564795497095220075296949771669305376275840640555140656365258605484367759533992090917351702820460197784140223675745704523725193663280230456649397702545489321495198391627215722132786838417334974935533175351905508619635333513468419288540654531149495874149895129205190368695083325832354919381177790745149809900631254951347097166491199311413467096137142364428508386060154488161259844521416914263057869540547352609716517840723292384041073973003846686009147898737195547897234279960523788484438028131327762794365759882831569696487573326465843156174313567518881284877110618620563386885718077014710500701727363290794593281575855023434133057687060413662221520515654311062906475188028348402294639538038874308797160657330202815880678218717217382318031955524496645910361005964116256813461909541829946189608340089072148229105197314223503638837564457108558375766765324500978556642278514283389689015409720610926268430647509357974200787962366856397787564954349830987326841599050221129321850918706326198509260610216531287893309650414879643911034793834522218971394996758883966767293788575879884630422187683392084363905899806034194744851904093909142413041836184506825445491227005534116643004545317526506985917396055188207251640879355120200534386652428811232031289001123641716881036623321018605798250278956340843891936124418828464060703440661120157532690713467280311324591387368982580432018750411992716002367725800943647566119611258473072589476127152561687684826120471460660443475477814624253062939213859237826394007851698727083620842105122862581019505034159129694953406541246313776722088643486353728636828785335197163478758353070402467101127935637169707129414268450432923025982673172850803731676815388049098184919670894523862689485790944868951879674817039306244035329075442448486852227719274159405398315045603431404210953281894813311267344923055318632819980941052928480462203488324019009284491106260928689538871371101302714060823989611736239947836387507915066388944484898364402796758106653503490112303358942860213019389012990298097780634840349243507118780041877848011513844211059450109091077392173884426061900484824623192941005571600574284518586041570496479165475535784694644046075189302010442991077782008746794793216238689122503470442129300837232311641530594448431921701732620336511347540407333201938815119869866160963868937941560793927771306165059704457528559428992717271952622350908527686591710915873596730828980397053156449547605188815648457973671299183660220544030028212204159017374618535501295011776121041167667005150052293324739919196251610776941213261467441167326952090940372603961191468253920716272499579941637157075271899245989257012037194361431330711640933355423126876263600373244298960054522798297236605934476172317080021803317642315382348085081949996048424854397376509905955623944055231361766772103022965428816052201025787927446603538172590048841858954251635046792975148201009988356560284288271383540164672559728736121395950244033907524436342403339508418609355309888824561938901830658639700772800790761431645880464691402737172236402025553189521292750420840850713090279147515270995957191553534288723928868390863508931260801819621132376977183430627062903360021479639098583184386464403719401203528304949406208883917629741045141146824145900670350040312945034170648104726347354834675028648895134018936079765724924297103475409049760593423341772354696588668716077146764909031229980960941757384172700704898673817769728444032209356616875092215398751518643785615155753881671623458921248091582052367993183798370094618246298315913981201290416263432074735521719241840979000107248854409496904865511218419675291427177395381654711366249474741592639345047647028379265970338719325339976760449433407701602018884607054627124084468519530731824350601515986090501937509484553016315689841056571309341546043413449142062012182627600902242067047762155964251403176742309972540948726841414493917641882613886073707351990608675543725505915473172458675403448621485330529957188345228665273578687701502634192344078756674675922927646436864154044684713292717064324542956524578064346027458909728607921534870427951953004636801931067984246583615734318101925018213359019482619738085799630091358621925999517445303962702320206997921779633702014903190793469856179194194206532973987830979235373717120765369493880556662557939972567905332514199928693206835340752109855753674052269319324054612866163824162575840934033869473561425870245200388628812890565775774669420867474249373044519251234750148394239287910646201737380514792866805175422122038181894894928445987916834786767224214657678376780276341155186469265739440767136313986905525387121662330932055364198431367938942198120799458943248229360022101676615635706326919324234975176507776387886641046577618075663633922066717661059556021387320729824285054457029408329911347909462452423044735445337295859274937239379510093169907093238853264581747022080637518506298040268594552236913149090700377233532313432027809085788599284414639931465048329362802774747086481887088759886484946418013893683059497744821491611419933936295119632104421244608673015205976551091174347589420874463987619796790821495828804445938187852578168117266406082911785414681466820058371920535971715715334697957831407836297599771796788519774554507094950044342660721411401459919409968135367748997676666159565034764084235954560534548503550110759814133381099223924561510870562405330500975537098414739372192884929032228867942559056975068959937999473206726326686705334754792015885510088040626103415579496561548588678331327441258250271028874401187056510403689065063670174003766429612109266429778289898843574488831165308893885211828935021380905299643613122149436745968313607740203966746098378604610361645168665918673345314634803995019095032339342447625965764867989238581657542857930273259236500863121752562188037229243360348953989808422265754347069263598001478235733716048902010141625585762236938496508400102725954853312567959237873674252365800522452872920132421324589267087257099087120045908816088183416330032440043104564121413574747717494416230772360865287779495712137631011635537844415343831893450877986262703941208733651473867653913496926180349318519181581332206678113314154784712732695769488568360260820414415026387369658443192186116342938752386008972247949018332728285680390370709208393244818521766733697718256581565727851234033146554783132872169065828452617339805888090331396801896339013127192620935481162816784893689322916753841237856398118896841073726093827806554367118534266906401313020448019666424632717562908974163198912610855338136299008491006955311629978541102197807629563684145799238634100865145362206659013239518563132612881659194965111186272348810353405657836461559938193542003039252938532371988364882254385679130083939523679177146512583175590169011616688449517282233843344039895806597987309996701434408890379018425186880515171868943202161979702049552068398257282795947090760767375524032515261673209759296145892519737901552514244734787565888873149738117774346757365062847299441681456611003401469853075667040525835875084562865013956321616205840718277203118293042198992544238504348032929411721352165228273843458417601201153595629550799079872251844712815417178604899986051662293101707202670571306408655037767754674455785985661021867984697371205620661831944111872376126470638929628848928880312604885062644333743992701571443733933954267686423797000669380159985678284537257802693285452077284883181760532041413390388753440135795331415318946430364917552457830273736507946163577942649744226754276160296553748928608297964706785104402652553793457772483270790350712417822042529348876367516097124340512011073277686078765730138460332497363445273304143900403485428681530222427773291736398535282153466577940763590343375735503191653021540882111201985709002196627401072766557308388882305277666877327393248730758482698178128323737298137956887153301946129765938071982496989256586289037921314383948369556930458619698107646101873281940407702406520625507762022838153174569591567392050496600074866446401592629709898653621894552195093607862043009183147345229089535235954764869761966790328370330552850572109772433992278673183299414391503868032288939502145840514615834118371942955281197548869275713108717567796244441629547194409109800875088809137835967536407666326645200490517935077813490286159114086415444469030277214993762471671573064102270778594927678506746573688394809095908179818771161233497888423990343270327894653332055514023685850342508035519492211007914635300968801262444699190974277385219817518190681857136862502336745836692050722181002197071866401799421165221184319932239207697652436466347481501859876477144867423062695302710488344322777380079222568819022100919489562213095944106436398746192712935982591530656085472453118667735124610304945040709274170220507367630206511391456670466633241800827125178135618550493643023228879710350252839993874310214535854356524028722041446278354563469256331703332133256350089478457696463254035160526413553179060414029569906335826462636889291440097326820182520567710283350176000304988374889652256269489318415134163336630798708220462795305348553671832585040659277765344456466198654739895819707348686636226316993265462361630770056977662759700054568031566909358774068244430904697188572108396723262293414386647178136227200614131274243717142361295855039674805264002266099607511740763040404519468583831358778660356060468311113306784537391108087314239492997294477848397044226332334487842500358661473003788838292562506425752907121873760108269993980179516334797243526955533702662748436963065880072589583261623973914370668358649280680534220858816723162413355824974901322569960896702500114510002472765185765337631553400238626944924865698091415357739890175883412598370095667658221833629791251339208375465086830231989875071276476214440348392332308215742886401252714014430606244219873259215518823533785360601764888990646118046708871638643729887609247839847292347427765472222572785338775161824841990560829830988611999905043428859473771667057525947812540224664722021909887432604013273090993168268604936166584561284337458374722515664165268860231808668219884357332664347484639262972772909409427340943357494150851531609999309297414730980824532536309437889104377065791938041354513512560433250969476113320698970027239943592042818041942191268494359621470040177677151171294761026395077164833444768862601740273099776965472466289131967886261761483916106387267229916306779222825831166244914433969334977501024516509401002533802938440265891029358907660470550336751906253312818888611759146218091480021648996799053740612082047807501637057791021020467352665976646340858523711845333391719313516535372334835649934529915819946670042434049463358320051392719268458219638189546497817199554542972360342580924509484331551464576960439543726075607015200029772783386208248381262562785513544575569324098542424639487245932149963801929699278109720776576645782688681543293102580319832653213168328291224255036177053708512335626634427573483499637660080273544331883587946663034218620782218249544263830402714946587100099768718175327391320503294060703572521806260674703269072907441852298319575297221868129169003053756449557648360796060529172157756593865242948596572050168245849203570410603686265894133633915457593660132312705632957852718256929810732173783523968183577588713966495467156388582327753978530230193941713382669183035750904569209129059701191744564200438640931215545118267211484752312736945750867798904638520460131427851625549791240994675287681763137571921349008307151365211342503193697603432072520643731560282015421117719462330106775407872182870812618982456629103500452478871878898768460004888991706259191531547832707681762629435847297543543495867030323262687806817513650682959181226370313773986339127763911693959437903320596153278363290584608591567993982645766247341708199576437761580211550256750969933013410904581471985754321352695979476350475152330507834994992533722686251998413326188182311737496862709265049021063233768305073605466155603982209385831851923795892190017876332219383407721600303187875084770901445515594063879491464179165381064921882811268837969298965997437046302126547761971099340722091151229175931232501853101304868831624755364899332809307440582270966708642239396448378300032621166167558789902226897171523128490160023292376482100132244252393479037746440435891187005379662491317590387654373014129210884282299060942742726452835406402753607724535236218542103507987332612748832260801162985650570722589932680546553780457628372040202122234729026359797007612118618795742675099224282554067682492521391789379225018934881718022962986564136821439130040214859281746258998014280566091491113322132549186408241422452320385227603277720286136927147067481344046287472704766535104929799709796318681261636577863772014267100423208991634296631873042600297040588361188206088163226093293273814519456648524400608439927709395902948422951049414831163394927622485308460629639761081047909913766326249327379543271109660319278312499573034994711533569753618462301750526315267057329943816979147822093145018556892636854303199614548718604477538831971019684808493467401753974810878569749647763338061881512974755379136786449970431341556221629742583355472562249890639303368808083642693087347370945890762535916105065068412749483895323505072878693013936320163210686111097900559111353272138485043700887666925947343180444549875080256766249929714488630709080842171946979349618340791625325039879066992766454640259616209656985268112949039438892759714535062999909289874783308235418648600615839423094418887779683188107296934487625149220830669239667670811773891115211737295289525315292583129374385387474672696828079764482698574558232147545394903903536258205108675620621564780365596621405691376640830657982954317747220106638391265548488782790094475470757469631733727751754457005501628219873696637842887295084026060314539406477562691328033650248893023950233743514508509326428678562943296742744169784555397796040722764198046171391714029387905636175388947554695915408838998681893380254932719732200806441638774551203130767040646138297500706363388517767229795222930838802972239229326235911863763577635289918551597996024334515826899796760994022431200594334389634321276880956262568659463067195409250612121104862934033551580353784759446688647278246718455691251676928421825007216984669324834765617861517402467607468589089556635935875507574980925892422149148366801702447041458221376947173387899872257177969050101610384088662799502254333663898871364661905242530033712721831720394239101658375023969042165722168272833715445005229338884696839842325763337907658483530257043485925889199065911961418976630667122275120267107561393425110609078244907596715276856512858847688878657598411468242477851931009907630094348553137751842684202677302283629748583814287982046358537356957107688040372975580806272770073103254780608658887500912654207015260144396537587829705538534666572924437525781465300037759029104946739774349572925638569396254265707948610693641372781961958791794173007528464888262214246259983058919002383682346041624224411194453303132046251038215569890782141106040501853050192531366209124592785556108697414207603131938562010304264576657255711608038895048987775463085023020818986810012973424315844030958910212783132467176408433557510344275045894635907018180988985690595739687242932959648990397314027536664591128698109070621829594861509647877250806605581672115890766761702724301199497969874500358425919836020011743131786002657889590782005009253095970632945259292941970983472068199914849998645780263790305838297533114146114474939918570934229033351570349928087217511333764501529954664366511518695280095028024774251387378952226937239414225997706016761059882546544203120278646038076119353979734450981441464202777267399682330351548780988373468008481348366436318871881735563198934181162922759718638895323643171623200240705214309964769486680536334473936933170764177671185547837625081476316642969689571307125960316641906412262220627690860567090621110973763238740281386800306538340402405596017067019801003097685586792044324279094511389004287875752590796523993600819351771776786859462317229609567580789246288727109104733568203648986611106415678129450745938318166776434987906120683164603287080613611118829126827951341668312105627276698272957735006199944554324878130711596094169091139189032629476016856610030667862214798197924894444440515557318935723853539439671977131058631489836167825944227785009598982723239538614749474289630467933282205399442396868457807632921403111801814031010971577547254670248108302347316810407870541781143024478295495716626465258166733830423261233219112475096718923303471595253248701366196303307476189123376215788852286682449898910583202230674459739164143222218034695894387256899489436171792463563384494878125032955367307199443318163082446549975469437405961772391445143202726647747951722526801283132481423559609923530927076329671150475733592204315847346089995160625124820868693974037619804599724190499030367679671630770573353048794238818860775351882766544528310982024242138321649862495001718560009059684166450369012270669353344685847063116416515325805024879914563487705641983057161060155411048395563931724800768090389191397461381421255796579491803059497532683576907431866668780804476180286443206167103248729781338338608215165343866064880184672426062648619465017570571456242874478092611477057762363477550130343940379339907070551621035780355308010371346304340207406995517877957708277538244780507227900240618841808543019699734029220273949273445016056764883700385243629946918655635390443205459445135941551862659942363119064721278893965285444413705871318439515889359493407753355230087820317447966560308635605090774346532883150872296979686845271060850814983719599622685485494311013192139862069794967319384903556219588653489015985820405240353364765602364654639204359771234096986725235249644401085316437083821334351718562568042257049125464852626896809867947874881041266317594782327877086805118291899674167878528440953931229603877116404061554366545200052707398218380986434689791266656013528961222717278214440559971146245027010073525082894626518785357353261465733298824166118401207641496224840420927012533449261096444717970630218428820291205521943215526522108004217754375450647506140046660945807199283803652043907542012981214596375726594824925630008804914778819552845097610975716778768004798463807777105572009745346404400344436888488281860678768406037895164392093899754909685767571901421038030051397538628142677726489398198687010840300618146077644875675880398888952340347319298219170468151391351399763221106397526091340112246311099105256242133875872810558580204935505178154161434093159077635002963380130326339542602264867418878054288081063894480893688539633808151524068554210710771426328356414461117511186694208754002891591620858425238734296989877440681644390452932636756100981030174743158228409353525560708163903470292362271170444227696980464302142624258109691155076673750868844223168647690247915359051480880983049888300531282224115231206864506299758629322578705905181009240524036945812530433416466251726012907456442064473648339160913162775549907805491265872190608625572922501350461544620928096380792473973026638343138610763210247421474412450371319077197476229233346342868138895189988862786130359702958039793506775343037094244125587947294341590354229682979426212254146492191123141517108987289150246008079594226881874351790873766608459037265716235408251992488678644038086654262443991944063353293381720731236815250830343073958750970686420786356614952783797973260139245208680561651394573070664711017103674486778591004608124822085078425608558209021254975606481289656424645009964583460742192102928237638632724383578618901907522415563933478040747801649662958183826373629604833461545271093901586758159043732665143812987667615713551239050517849583024859908700298980897780549990480356342819411888562929864581554756904836249369596091141369079272329409355948658187852229253647610902242145370612332454340447579872582307468498937363566146559184119726477164577942489895460497222603997085931672205297622233884032172353902539643374866671910760164310562606886550112612579863190199175186669462232379266648678770122173561999062608331164476296413674804071363978498377878685898894772874775954438442930418726535823651895614481311053819045460811493118956553328989153663494416823525432936240775655915425159058533297625781251445956847900984757454443530630619802346438731137749158831902285457756390096636769255553559772322921799954010202558353782451135738659573404109211953666249577419750640797224916389334722031430642990404498402741599424391641532618757587858680808589843830310962904442935761185683867713677677312321796001389542101279785949291592084771863324881031638711657104904923224896334422571126072697471470167434481646445447844827301991680807804026022067843206967869945922667379251196439795719382481570825601931819669065527544128179969735758516217956880206428429343507075878417724598624783482098118546591370751002593081637973861712462150720679548629716348480655073013250138672898326483113448871524872663870238690373193872742182020616213120902776064421384346404036079246348149617583950546142873811371720463987431450134827657774660182601339548953793182915088285912328348759234298137854700074062495507341188320167632925886349975837981016709433493454042875132679489015821118902106367009727850169285241931757821879553589178190173689359298287319540190040037794633197571753701561539638709583834239036355625244589712918190801642138516399644105988827199988429530864559540578345414178287354120821096042370135389935955660789946599456087642226901751301521100660890368412130981521977190842902851343969423094803032552630213801411595234603517523831670298844267298116249040579921495758929986100251658900730570988335599839276311707861484530250332518402988850155537331392484341627039616273927735564122658089218177456418818309236517947458328654325702370321451419160534160341558795440290374646801392341916683971852520087508687992361835030632604414868889813594764251423713078500401827722368300020810924996899520861097851019522527362981884826182551182581191552752849212558997378044755310059126411113297978077723761108378189670199467005968443105347850740623097680173201637836266697040797528090820816290348338130088061116317816778885349554828517525690320079599466146915595901304897922693123330838310728282473775962823139335825383382671131212114107450733583887149759435653893226951008770047989862458773591769964324967862697084188807667511543430601515207618279977516846832663292383822594934956775757298413130701653316168399147164848027578241089397345577193622055263546525416852416337976231398209540498070374182145413304227721170037982356595228041756812564355311006610460284994416925755117577536561172190238206657586813560678242453815488383209442268600443435061075250246677411959317607169844012052244993645349570810002621166331886726172147358454099967163696769124591820429259939601896430574207261920656348396478645717513159300951634879871364405596177371656534280508169517777786125907326560011599513671468496367211327291673620448986872711497374695558477640314799210287678546354414461631989700712271382248937156001444187239535407392456587300465213098560920379343566117515245545571374814686883887315365708231997450701835912868666567263247179965973451455958281503928014098715339936978442703621745881521394719757278364310219438545536858606869882097259464954261885640930336750606460703169330421936681890302356606515335561770861121502922413244689591463315534969036734693803022765174291151596359195980784426049279077096178900730050210133626876649639031358723749911159694549073291767559578511422194122768858958081264383239082734407460458247575084308604382904716138942258314721916853113464780802753991840261186229983807876925001854791100163021030526439201822067065348165514025375422111226893047868503719716896967258576297591733131233045592810778351570710658309160328624879120950847345021648031867985345419038527988072733668239384926430970280425989384746785504578861235981818642416105955655984081605457371196650664963317287790668890108793543157317850783037319211482815518770526295582540176999839926406271312591860225459526971416332827733683892299626131130542572447498405762465414410248072070009320825114650816522812745202507227882558953335847100396956486764874986299801441591318128065931974869513282578801493701241918922403647762766480954208986643688221482567716984450486620751333310168389453028225602718659666140103859991970639654513243333888261798480878124544155173843127787485533802634911119355259278530719904382050100033553281516410891646599952516254731346745086075135515069805576035325345689098687330648929198775133610960368863080169886919613595181386969866943627233438786286210814795648921583832899192140636951010007184251540929789234429586403502072928422347193330854922871981355474168789178736002823774727596738348631490339080110057577193120550509404112324021579780865813591600301611000124286063422225476244813131468529062223178930557896875139383061199152748031951545942448995387680579347139069644875923837289714616633600528991694306404754677058966651448731027995520565776096170712670645008631391007417653786093060851024123476563133834752182528900738387689108121736730755716648420999866288924653969855401038015730312807602806228376886064687767926097538282867534775902299490607024583369447116311076992702295787792917146489421752620173637037621458326345568545103779852788502287992917155605608274173358594822185748599053761568970885796089419678310365543220496747768456417944410413885725395979008684577020041148880249799524249222194025862332110267444753525091435776261435497090216751461979706108128212865598821305670424912359749364909645752966525532730924519229960816548249034267250726191360780264351285742128433650559429945990472104671304185668741830635730816600413570818198833267057115010559174791382051536071955710764950221458111007105785301211653303291855266814822747679136810668502264170789457829661958845030543275733737803117844092301334699227617497437256536509615302040839308461415787040187714197868037248296341270429583314319392428312366131228231559400722459557113179636555218104765555925824038696769305197356344675918711221571533731897306355461483236761647764877846447191287611654275943788975989320248904807169646612682626077144924233975781151148491249485123848012284984646303350370548428111957020446166075163996697643798083942084717942754678480384869088284267286759524680851509228751163545447825348832625236418692090588012587539385885423958205709590729292657053813847475068338869164174477722805325051972151951738015546954061987573360937495426634708402701597098401096592749788649011755939025661620020093898261444772740402136942291811787664746479371065725624396678102616669732241207522206613036156365112234630456922678038737885061357470570002200516777822926709284659448594967978180266928880686304265935430487300750819502642674451101098764786536328275347841468094777905675002592822944575948029227861890095233577548254968658936274567757251520084199428762273232929351907892868235299103420784194157179649713973615967201909978020202590422388969555472007795505162870942793334557454969781428032444718204715139053536676326592900063594222344295926641984724572399563885788481976880664728563677081871232253644769173089122276577039914030973130546757722334033872101973174549494137915241781038646894679240099625318983058379099325983067173824984464210949913287976500117485013389507050517133725443825774429839523110435035368917425105323711539509759258247739728267379740807051769517580525647736279540267647515062486359005293461212231105200929500645470710973553179203872991938435408998483637786991761594727431488972569642334616767420393234863114842294019974606136513992090263326573579215965530173389445307302646965511192780791516790119287426365563711416477939898025436160457672232064372397336753734894582080602358117805989121203380895777685076112250944329458340263950730578309289774249317936711749561989861589082028823038773830467473752023266016022056972265668957320460591575656800766999430663406045844569489612289580407537838380277353209402072413279475958091770862326406426324749055085532918276982693171529354009125934715356140402590680660126331113136889501726828284704440520523352669141361822734570080458844783058116503829618545453207143178334052539157868802001692861084066164867403110145703090474183893655988331185511250063778663603546125368984522797938475171287203294119806906071784613915701139634661277131597432530770507276339418865500343857528309164629173887116032929809545971688071879409828050674074920087719365932200394090500240575694238323942100224705670989352052466203188030705190445930231086423581607422560532776007385542190021207843797050407344452292787582941833571802520406177444453348649302890930164065562133600024674032255042656502841701877514831237430337222549260980545377637185509817460311644884223412606223492139224853650755220711536369461483633810057520126248708448691427866282917992326194354832906795835965344263676931306282361056620551496967090569245545608414831444302950960655645290518808893664368635167353717752959231616090381393519582045828135970729309619427073989232608827830144899146162243952975983990280050298498202408764105621290527906100410808531272405965895607346297488779482804304545127944310696910124672576478813910537444902892545817641490124382149290773122035052643562957972780841613834873104305128709682492207154443942144515139255619887382182572820847973988694180359431301235847891124312572598827724970963949035182582902227464143232509191097007936483335464474955099897022019433933684575639674575119232686450700988694266894153170321219378916235408744434519635122773365345153001524380799267090986157346049978402872590761668696565188916671308360201149004400514602219168623063728259152236873051694863055090159374479623279065135638894118413801348931090905354554763614094823653040974775500059144231915819092477195456975465945462504539079250633595984992901571376070311087280677266068103357637122115197772002611570827676581788694927031498119481311795173828435508316545810272117593875669024785957636423197894382599382596125627438256520765652867320904848855580370607327622676531590146064310067284243325786629381891912936882334843967317473967387988028863845911022112500288205156587425278910102316939303653659975667294102099393858876068482759903958534678501094771796132258212820138415521133956951448365827761654789615280300001835580176440079770963842647752808802600546129490743124689255878311972721897829827523692518636102032267798972596344960877096904456495628335727345706447595621116474539254744816473011676249248243489316633497441219191726268594156392679724647355760507295296801978628177900238381912358305719719823446926882879612879510221057923663213670804548488201181837756098883656742292921213744735564543486918146253693177790788369472974200764423458954300435854213461348549652748696930351500254647446217186814734293128419800083378072200232424497010675075534690101925057849494501001495429438571839516330813284724052151535642104015763716869918847898092205010350972953502396572713936131358411956611689510272540001130238936913252965931951618769805960985135029663877671151060717622655427335210867617636501333973387796323266223588667182979124322953849431451303353469893518658581879576473696509615574031162427244295979330839359109499145445503112588110770748810285610459344478585324757199379516917174230145038128990168657640642789497742614154748310242087633156650886360165383021132004460950843149002446037353664966886040365844032199944525001871529196780358866426800653759987468146852290558121381842418866926415593398862908349687105016328470342817180551883585438540957524508125994252875102499496053538814897970594295571032957991193884171799966773362815276066227772453382391414626056031689976211926298615906323103718217391530267867767974683200167470837568934445816242045228241525085149742570263919145312682019132591308158851653628102786745519483972234837056223319755224739885512244269264600857299696410957400871809765745766095632438828771213806198128977589855471035848258210468875334377242034506192030325254187197482145404706339608990065456394295314276971185887259732483035461509797804662082250579270466611955631971145904752594120932824916212249217133118169991482624739606443284667207762373722079528958897415064059814826687198779235008011211035452478361073830802570163994319188693028693209072358594525212506771009611673642468319429777804979602163604009079201334522701068384988650633155106643150068261516199959031069568838862303461577504560562333738222718372049714738452881725331585680991728603352240379711958091987806564219109936774620310531488435310648200834913848546256688235985102593646306481245946284040568031136056519630426460299834068841266628761055167708860869035660472298846566002375775910416416813083815184703484669749798783452855102404198120283215616619832568847844551748009210728085712027159050802638539868751730751167473337201866535367596166525123874082419347115022711528516625797017585703683440971241169049619771575754972664249570094588182061963035061797437642644058949485688154414936375180529661879307345605291237152716785047989254171653206147108196314458735010745495507903021032797286230121380930102754392438941842865831255638964952898337567379829255650622767236952379424306103676820628923466364863511331380634234983991414969836501981192781248227732922579143811904788186665986739040573582270183584068611093983150070638148862427477891668559371406475042017971522358804689336087374476762923985068584580407669246323087309419780883201490801645281073030774313559409918214682289767894657799882953104212935363728060853685530356118166239916814373884400680408006732739258351254186680402792808551730960385192784322489708522867654945013285267435768601441424566626290209600558264877416282699991444296353180947911293854959401055722776599066902634729145621710534522134032765379304672707940286247395286820217126402176223224423586972324751511430446357049619290365029187916644696382903955886111548225109626463879791223571825542957700893024771564505482361829497969457220165250190938776650532893499285759032572752166118763632614827987726871335418922567065106798013246856662794523443391309768242331530262330716385453436636518276309916714008054548524333484090005098249544333597380852565743289252607239217085064464538661025274466663940584986456615480559483967602296395496103061429872480736888411766918003795641337060253152528453818233210887093442027702363490086397905309840942602476320814786131325803045697360914797617303063277889080105089203723228781251847788037912188522931954855632020048730494310290347945052097042406878479131228365872691929647326086639703188690054505800237281285137342437510268198908836697987011145769101422242162772345351983306637048888229254198670972782947268936792136648640115604808878291661519833206575455870029037453752026158116227182199308954367182443589626077479619988024891933571226052601167285089509033161499119766476889902300299631649749647809171964236091562640297491404423305850895280228001997178019023581693725354297982873887246621739147852237080995547708958748741104466644597210905020269241147199553064583923442667528228442067088065892408794055341674551286186873125182952535787980163929838622059717096939388288683202113083763105774123999672773104944733422708995517312110048814391044762870098945223642030320053652046294867059616558029252294591478950519928839315147342184892270467296103189492323832575436149862166680629665947684190807206627783354346009764803337614788417058764518299281607117461611887952179671186823502045270440501603245224212050472714137783009657291850289486532874101586153470469363648365777168927414308305072360240872125444509649983861612306127947630237396518438541299031087195141480045084842476347404052338897876163774783764379186455862468190137477885313855028318631798365598301235781323877418605273737182388264983908780122463085400325440430235537758552738334962821837547636356189942649696783779877652744597884674502742731878501096020564017607724079532344065822251683580193221617530237104452118728333019547521474087118302775369147195869573702441618236973806850979935337706581172951201772104766238296379142426660469017087592635130457307945023613219523782963004219282908997137663005472752766545279957418892943178230839810195872694555129090713681470492020283106819435642885524896057638255504007918264022329214695242183057075295703561155362622155963979249683934856362301575706246133722223300895663109285507355468660191202239667743802376685678107671060448389549445208643331074402072148673237857339826255961995290010326842748889473697273426224719329073650146195154184893001520376579416873273787458920570299883870641855222979365751959051064241442296686604544261134316365078515127149719448297982739563502271033901464549799723411340677363860561646889950514007302316103118927113534450724609286170797969982545614144802106175226082515973721531772243688842943476535037392354338810752807282300308566413068073260169335167755388144387343795714221544529909187495068945915409427388968157737988990355871200840649197895610840447665965571635836709835695813151972569016176515108502294449824504766554720398585703842047489647546046200982019917783195995932194118728247051525337085198443533315874323310609144315048191398755619992998253848241683243336231548003323612298867204089230679637646948083978300585917056118779268935125210917782896108312542358782091642657442979372581476237764411274484310587377286749488231166443973296624817530797995712010997991939639644686858720546290412334458719495303050272569924614089800496556412936799657316437827250873621621090205162092265815663125068212739251458151944152725821018936656794291170406973204850096923323289190036216640828512579684185257958153635772144610303445039552567078314972296926498039439259082122285751403617180535838341707637277939196313808546053422552070220523392855988748434894511108555328944261356421856401927506929448761178172624201590238738063782947967900783153933242023725259738343566681202938222015549764362526465109490513768605955734566278806422348162861721790697659776365230151051788793026994523680921460842108752709622054847220527191119226975900077463279555695121461162418250133564517818533305477226796541734428060353995889104195979813002045256047092496219952154675393696325178859953819528832574222134554934850295341606626777766883059912102096970080344834588075295507724947665793651096227172701649238586184306340106515258884169598168594294963906511181428414947739764028371859806807631650786342132149299749818163852232945225488314104124281007782710655304515159281209642494016854341925228885912854470468159943037256189160437048126361821440436315063109136500638960826183793257267927539769159703852726116163485848632892028392977831299675696425050194746761691554571823179106798913056415252402301447485344047515946501946974427696248444083706112397448227658302961752779191830853940600197137106004974895199872176803485338931463132735334084557270082514452230510558746307345991779143967917327083668423410362958722076364729696046479617935576459311480445916411043735566765962326493447837302618122473520107063968504140757537588846117980221971137568587832210739227663937199086099707096236121861817867507628608498118523997255409540264905795442218171632987539338503977313553453783938468614386947649551275439706175423412182959274118254381290777104732664339274894438815820210623121398153705609154118654384140876711732745447533511547094335966316317529113140064567785579519621130281860683287122574053372859309305870930085912543128928071802687507129600650544385394913482906843892891260077681210441940980730516753175940198887116894342026444025152118875811961129908391913394723869173320007637303148477996082466226731452082098028386009029000086521745025658611408256371290865873393518609459844871530401711948731598089539893741507354345363085479007909604507250399381129479170003138268345623669206162939019295398503407841403415429024083110425970080142777179415498532743229116006056634539129292616238678920401631371806485399563414412001134801235781620507651320917448292489493230636006335922628615586161021266011497444764895380891017782308762194708778985904929643148538647538390149786042780873986764693235627370035190446390025126013426759548345998296135687038843982081752942986653555028558565331503186838824014572197970215515071227265646438709575862948328244079171663859170286113008287101717871118140104536755850489839288087339284007949331128760011333282401342725769764063471877710639848748904676620210251724809647297052856325276238680976850195488141905398051891246557211837356690481076244366864749745345000132959519896947919252130776046109629895678037340550135563814663446835168429242786411568347096137661351773737366124279376720573267986231653828396358338890219270241212886644765500466675258930128274995163281875252942131730720113682755893990713155295974695056339793876641463220051106592517624169588346841097000358004518701611157669257236799417109291950239845657250572725265935153136669520215987834809509735344642944154315144291166643260543439236329702249150322433356942988485703865140242681520667332493576007636984902856043840766588821013021260130085737059281740372818889455563347907500172436167609456767300985656925931277154697294686489907809890925066804289155859867137561821623075101172800135832440095356108153070322904695800306804446708562610428319644050408460548139317940022148726305383957611720348797632876699992816614500635223028070079774782526001014286804631356687156096406331189473624349120104175029190914294323757211454562885714598467685849581382230999854644117187995161035914947621862123685157712786592737348843630917149564059614688520772794040929018513149973293972544625162421423056777240632498449058532771475392490786786523993428497364725035053579409476099322654406797353848661868732644473295769955172471959940268350044142994413697477257288635631430082465814111823027359988878617126091101586566195319297491638574892955345792504987698438621166873460452928736737927588565354561038014837232043965090829684942317748480174754483212143825580103942376570698362496679125659996719237468682751680350219415062698261009755690549343384389571490337500517439821774466869190008503552705961592664095769045414917478602693980692373510912921053147531349476733178372701167272597478506610457672004038502763053801780744226538062537835351905906234917752303343672519770706808735532494452226770429832338606412559527828983560954861322052098837274375317217839712007609476829095776426236980710318910201633051591100878531392263408130471318721802836526359614922528379079256738140580903348979208697611013863761405799384860697052256569448322107277976888085734859487400888339729347534846468004127969750113767207275615889499370202565910109705502307867548270676420770927206700765632921673770010080918726605477175751766061517275337530015904862420027452864430481289530074765652469889610635526004452490764770840648009082650793354790584676275746520613702751938558331442128123815821458997679540951371900145246404640173784751481270831432175170079793720158682629805466989544155646109525569215384950937965699834086750056745618982492757513595308180147829137516473437110011980740815063795055958015404239863337740570038819233857909369296344719194043341269840381395015603163099267337918263739119873306268026750485619564791943326091428524122888040498367955871663592404795976526405398319430295990255807767611314115581478229130109216117132219643471563694539845882968374982104416226588228572864050209377360870645744514519214869932143230175503377004675129549804869010544776617636627880044615296582496107040584396677488302815351864491704851012472012288965743848170825373586653704604365807596131633694981541822190309982085446158806525377842355684282593238817775124857631113820603244297735559456058493118613716788369619577543348151717318809669542916530205881216236388708456460277939396806375634574844556795087142238085253830781596000598129772896893052623980852057244327864189280547473752485704158765078287711473547067483604350293622486922681924601117381980238496717417997149558875000741817489185164088288645998685592156899859523354243588371940126371359943064759410294534886629322046198920050520156187658467183969788442493275813458493828659642293025982635718802395747335751151289522569076509490379778717445445734763703448939501692432348718699622526829972047852178152323664906247919722163081823111740229794166322785908520214177206012079965507402162931532385839035684127461753675133257930464070568013329091477942854945469590399482946625143419350337094843311212194346375696596773758270442014661096301871263977639999878569920928620383458388722063972272524995257664158487180389274241080352061338340146605342479983659960998232541891513151248903465651788568907299847210333650565654944772570745917198278580798197663101815801751745863804056557984251629796468299036528363562802702318001644676619319409344233059712541122819526816492274267235905631222982893182881363927861129846650957532148992026172653907419081117529040642212756653253654872022389027575318607289457974597865491263011976267461453421633564823263193916205220028853191631146669965874055081423799763188871688767368374690321649268467953596689822705091294158073423504044084463697173497315327898164871767564843836311993830727503623112435973430012288434449819358742082022480944860243673666592347313851258533462845626700805806441817733806563835083908621159433646585649451296490485172580773778698672500680980130376554975700597645682287466154188949219301783348395765180157162797974035557869756051598961745474549329079300402434995529902828898972900498638157176307821381914332953868664160688659604936538065628796276943909451393077502439320478896889209613649783273575685224198243015386173552209832555196209982136084059521471229687879437758057607752923825585192518541049980725610410322424372317400461026827325391493895482379379798233024379434095202520644530570642085301157246270350674324427923601831807422764263326649236149147463885819598175374543462009557938264061602632608486663268077109783162488131132982084057513292680548058975911132819723438709653362018674212880507491711190187268984921877992506775792252214959174524077631555068246399717478601193645284540431301812483325939250253311040180549272796299305862817673600883453850939568716170803157575523666695340769425374129490902291650510105665913305029990329963159029681210144629277638222154821004029866365740123594612402878942254805642384623950053153202193791332688921269948928108206057965657614051413449903671064726319242549248240874450136916702552592186440233090953088255959623041228820520214833629848921607051035652930111811483693561000227951295016854626135861617918726123877587913583081478209160998505673185906286151410466995200059608331937788635280353751760985385701275054578104117756323436562163945933144681102797854850725134946381913322188449533223073623363650810409156081406541718235604303421309808017314251866154591896903653788097076039709580898306539586766457139485931691840534123361711024159876524290777371512258735858379899702263481977006535962054798775061315861797392422711190330463647138144164057475340907482685966481658145979634428469439772036519673163209723899318318888735118931236247479403650996520544857747072640254300032893985285845676846803832014432438843313330969223963928951050558198337736474652299039944669334734596251559934084325857163802651260235686151088330388774411966133402428950063065506689782427630771115940729006212717791919543247187499945813977753454037577813395640980609765818725430696614810650143725940299764403450808635171074542833608105744916401097480163194303251441401800601494021082646891922694020808804605270047199537344376373728790970085607135200455738848987120489636780883985088215479324444203545087249047142575675193752347328390554602140246820158026639917922999459594571090331710069483654245657324703670737832599587936955323959841185057338392618633192917499753875336784995264778980445010791765155887997158102202624707465182267136660014050721168765871644405342519063677309751805125308845661168224850140162781369178126983570698530701075118124863985998397228621150222817875161046187725419973777904641579421479017031314698979198614341635298679917731245310691196208862387147403418039082222035845049484742375417778128710505598754988786673934546754288057058330106804604677731064878942861485875422694634150273970867110976129102594798037899590270543586133295422663297137362474091619583102657697418346273142092506774280482079056598867046448699621793068009049097005309779411819474953280199714128940520310257579900366028328853575688040977579059051538815997069760325318350889913616688162967763035721691462618136336777643743563478718284364976738877308383976335963317721814388037837113286499241643243483380093713284925178084736189397526011194720927660569008494585456593426971956891706369278248985831590095194644835296095273667977432429017297779437802950423280930020391613577483684914346303907318962939107430799726277234685863237101183108229514197295831142340980080502847591836362842308367820117791009817877213192793135823399649491898656310590554225859930291510445879658816995868522296306237733005566534846158218484459003973342236576215807548048084431334382326061077234387744632471807663917447509350973310796704105220889403931359168065182572820305143724729245591615001956923606561786885021682823774028426907148305871384247392539436164593404296913015205493069151940917110157955792461526118531011466053778813030211150329540125880799972577232007380991800059872402829797252677612967506425495847514987585340949073999116181657320014853167739187057542216539430406058435023870494231836848562357001895268473171124269456236569828649370127825831475604240498443907567471511317522636654124710979156825223770608546732644656135356884892916427823816632197682125965913246920177573317382604193565662419830207975843668283747683418250613261457171922417543533478377709471620450567918584304200392943403570848090913157380359836929859105296270700699730241271427983399091947597814263092276606788471377944659929288549378604863997242942987701378979149411240589233653200743331971478523778820882228240607876317074493037765224616916889154049318795559246014216762123907071002396406174059258442086365001577803595039169725383463206093474006242893981366437005467696345603157856233631599627853395447389842233146366270106014878852575410956378352655564423639814070716778033971746086028236837182661079968754427492441921158637127345040512307453572499005300806193099697378260294370802022254475377259231747323564283302426724157264329965239016423087288027381072027298724028228870622854931256644944801351971034338192878801119862535980852439346728184112540681894456001033012418268248325411919549650132044723790216022630008406620305926723038817824241012511077883957335466585373526286336134600916412796707764877777298150932683382230457573273970067936895992672469957754269948688483581321190009645399274331195720174459473378118665602882956951454409781353441188763064754374716400068765364624936431345553096329717637778383686299672049493823587457139224933657015173133694530129401846394675235790660513460871923624977356895973487637287563405518044366794672800955053998031846669243011557106564779724237803319634429681737192342968882213664736764469362606260289514477472488026393041999553977690431901187900569018673948107795143397266464469765062726549704944829957738304099542797273799855531307649118580728505150418373846753228385239481357238794208457575047879823033654229245229458906707399930550787248887397996183656357828881068170729713496195280504129663109916555767165618087031621833900361891554245072792976492559672751631740211112949873075830283669661554765314504565533335843220329083654975175949245631214509032801667861404614263779654602682012306199477549979346489761319195034142144544246837029264237904045036642471531088250594928326068550701465236802073591443530971983966406092284837971824358252015830830823835486623070288431088710913273643143362634969686489206568648390775990327486208047539160519215404038546641743707686111850590099925855682846222272573010081692864446055575931088373292668370502060724675062755094136426834044816182835253560650610525684151686267561728388609551031658469366372162809717883007378751997543799097151907837452142788651002361942495263992303490833990948783662941771418694401473380882230559823019718524012757818445730995102352138490031708023555077993416797065615569944837049107306130450954933957203642566543690219888523411837937858493779870997589999619901895696847438029046307566504187270041935643376893589776107396597558847154084116237778723490163554084267561898460626706389235560901020319591317345499615999245952989068845627392715869378020074933300479787967669200989712247378183656735901336796737036254040926537752319566241006913555050676351068501540932538046177503334799535949812208445567456368135677882672527868980505038006060755185987619119063851416326038689590346939289047798409584812818715932218489985046523831563879461516371359633575050893755971462454425112583920585414159245392974676079418806067019618864225774624499209337665780939959938322856799543878926472076103950413162229331292797256974053374323078510780264904830689628420565550540894025554672693223813296199199066534254804573523534671877531418271982929166113855564419030963637207754273668088333057636484821220671793011240190943293849502525882716490966467950924697062172983157740491506468281454386468601742688280425309499709850717376973119041206938398449887913832400531243432998303997664089067528549497969047096512570885906427368826227172252133231742063075334560810101345732430939998187530575269653384448483391195267044834211596426288236679142959353704348801624426323547903195148960678843114142288806064593046378163488823639175887406281233623177192639155941096847441357652268392729008098834887555841531537345778828298437908086846805989376801854700207009013547847742181270232181903034882823855195033245839498920611046021853162468453517687216483893140498803041118402653767060846185141462518288686652718635837689863700644482718788847060101799393751721719422136200373957317204103958631848678290839252844436884874776232264067809464757000313184269840076185958960423438758731475632907374537443834950236979594052824047796150169771079090540230859108504155310536949454167902353289752050403916055656537379462337818342298994543523538056633870612852435704526023732089101348030338133072822797248381776759707512971404642515053928800632292273451826330414527090780091487913685120442827174464495871725758985606510983676426653567218111688130696870579287594796895405461059519161677859164781866479074415535893987880867205447897354511695465143154105369933105530410319208928445144213428700365027093048828677058917120887018709682915129058231481779701501969790915106635574249262308770771715418164633725547449909395581254593407029955539041977628071359534721404486085143423368793511886373752048311862610491558304798515699333943840236396189727956681281714410510367670535276259874982434657262096073089285144608670753493968843651267861001173241837236211065435663897403176907116067130121152820767210090354471226583026303682248430433860294457686195900301697421187138734114160921886326090610065948265555016455235728513491149485746740032627505062756988127919734876312136133900533559309696213417063186131292263305649362260503553947271959468677445356604315742734224858644645362703542557267258544442909556876995226974367835736444076335632719818800387730082858226632845369955445562085193398617978373287003643197179717437699755814665413273427511315308045715365491175730550369545294465533266160271905482355018156603444687776169885526583172324442160543181299704910430189381497616906763658816580472821803676941468199455874301033330651788139296632156968673500462618516534996602597557932812362093209510686901270095526426853410006893761698650118163772648338936846879355765995079521453449091684206090504498083599917452465468012964223736419122930939601891093728579541113160353605388462897645769514814169117097066444894459365726658208516253280224674517537725984062617651601178889980185492633895359719217351364268123409822517138980270254035844476134798646396634228828420979754418374966629672816127613840748087084500559690462941991730370514834324780998816514222000160447444237113719707211199939617632778252412687320945281589343370429085405083127895221674636567972617209888518746412877702274872913329840026168109008577154117837511724021107284956660049770069143718684729434164452607156742762546297379311464365811963456345804932606277374948543534078909944897636855465719271746835451259830393514763100784201601989753945271249176927739031026200590149870459918787592365401896128338926824038592854955265597402507752156491782303860583807421662349078188593172892951892844050760945480849333328283460373575879183545869159070289357680828948958120269794213307713986638221698878487165329223338621401253710756732484747399453672055788905039711815937629348642968806847027239415904630939733375246690666302033435374143742443367142116238197027118041010273296421645986689377948271739065885097508165069874553828502907169935488851562050242467388114289558400870387425913427506494191574622078357899880919381083804588920702942103464445769900591151354594678320453670174677597984721413463086578738175317627888958924691626825326266523652629746542669359245040666801596673929535677132401883405101268337915883357169534482328920346742743869046571578208691930086619590860730497768699998241314711592554674213296837262893664235867116762540304756300996908734408712370364225349273951245959754497025279978962306944767019764473253060797401071172463369590973004331030681954877909028246621623792301740512293857669612102763929308406118378559804799505053728342707643428854981843398802725086303518770265912472764873193420702493505867949905452300378038213336626694394883006249375047047701235316977875390681785482335170944828651725566376601801602563159946667792925837140212823802578785665230410470474999322376902046624752558296191471990501351139637694445648601836801551798210535320540882726967356943865328418070438393520806752893004017663281412705705469543968088747630469624997525513191695050647741355867036742862872594182590108667575618196490900933045361210938936346403354205258681198094528609869997182905414691335159894927184619848421088572060306860376710130359212542116960570418812612244398218289148223149501120166047678214338237894464476606182463630207776134899087068193661936193199852892850726085064870537719733924240965905198345565803686285555659910206731588053037265033892870720061838625511014369170854367022409827556737151474219750124148090679136277993424897723600538437884526777571380122912508516620118360602527192269768368131081354823672722630228194915241330532878970959309905676844458548452854504615774306051281356410885359844875447105693315083797291615076272698085153258765961481279189145350954892049524018186238892798594554411774945398417081606524791148251219647755106492535262942315004270328921191381740100095242326516040078564378033912401239286889870002394784123773513911467447774806598362277181968295358688915218691516394791443351994113243267799228519509805655382778792690476722064596332594985753236019865476913212788364222854015142748067911155969971302607008189496343198070103063929247795481974697231350161600848107319181365250803950250944077784724206017695988596215898524257930300232089892025945267228170163388263754726390844979833610394640763991042420596194906655336494437854930134049458662438506037467403402275199483965455063419909928077738690880640569865339476524541599689797995253254869803301088597469626153616412064651072303495621509221619193257738580291941811111046866723034683817178391972780176321340413758095505575770936716866094212248678337719332051482898626394679588543672562262946626210021773346105321823928989374078545106643889359203540513654878599024390888948287620712342570869636396737354880953088679759168447656506920639358251685878128772878226641302216509167169065585076574392018504451393581036847010085011553127365980701404464153495339090690961609164634403105301803780780465987448583413397780360537626106635917947807690586284551658590658312371693708641977206776466051235871198592353035903060492062859236305547341626807756007366450647250408667442945854448891467825941112285112438870288030813036490945183591357395429673635799150064042167365380375580097245004839872528904096540268546015282122319765214417262397959725803373567833525533249307185278816929014387829931325308547638766778238658823704452238331135845279906013433167202399088461675093750780345117739780568884055379568176529817271440633867316822177594299534771664361251645375161703085184823719163561784112210600675468004209120437197123349272429947436602986461017185869732436917979271813934903762894607113648999430638629778221641404483893162807267654592440801241592254900497312273808396295504738767640985126137530593666085222727324198469222179471744317237359133606424058547588613966375004192873653761553228698749447552548650555642875083659501610271673735097216764364224037231226891393212959484157242389841557018767286713014885246921562454343502206973688435655815869739563692968337170884371643938490434346387555715527614982203975634571125547942512566030793754557616362456747212621877054519789463527378364374539962673204201045383856494802784505496472613621815323694188265741088472374878348412457422405989193541039886040019996590975758948600462362962282625130467994513660095740826307367066665068165972972711772144623807894899972663406405005491615135801448248058243836429773222135062727090401273913480571862788825635018683390061449342926316740597995701329953988226658474857162304330063936468027477436360641476466195524985947808175675471814618501118701597316102510994713450011069061582976614565061548133760488898685693218718087438856701949983888080134268515544093201920883904018088751036397949521177888623289322206321588445405753862254488881026921401822581471554859590112837428711116497861451667527407379734776647094277664775894052064699444685848110127702843807294646166992474297941507572622152576790731193500656257708985049936932626263311237281254729545552236907766974789345700677001833288599365601845924708644602967573360546318480989857441128711229753243300620031398163135752986533512140462776097677820777937215262079308922402721221924925659660855900456015581983255344499493142048735733061734057683488693477163952625018313973533480898399218775461338604361876370607331042144521983720604529315925298024754168139228329747907331791525277408950848454092071955840400990768546239101408377231846671187453187990780681993332031038006835028463653956434249008548949721789381096165760164550308341909214668458280043258740713926601526460658563612256383950627279150693726626779672148208327050880173680003328446347324956675675691069767843167206298230486815122929316575961050149905975564465972220438437353834068650103941192436597344363157491611035793111316857984761194058571456142939391498956584273469277922673025329118811339547333354306515528481975383122563564624803150050108789847165391587531106606082500112174276107367884783953156441572536546612570704220552922317221041334966418864658276590137502982054780034987295853594500220031702038831248536451624823934578894488867664482787732058341997096798329263632799687141362836777531076199017290060671494114634667329281165225506248210307514798827006968320911311298576732628778684690130531982516921270120636747412113151608065215135824402292317017492278315642600301629101667187115933446486536275867213521397921658966663906012492223611187789487014856640019544047384513851541608252953412860408041871527252397209302117268300781221618776152647307662556128418168398967744865723869146949335975838829127707139357269831714470822258071597592582079588715844156376957509007246427511900940745261077384888299613785669324264394480051613425093433941771562523751783673040192831668264145370863369608955732923754120685066847272403410256763758896305092428449718771896527221538632500939647304093366279413533628124592101581528430715749004651091108275830254273348155433438304706056890078662896427039952184587452170000190981749568580422744467184736805081227675520267592048697950527452166059429787802666778382553294064672289927625692882195219575150711493793099138402319235114158097381713953569956405980878436413360691841594593393212749660638117978326063396298554817491940257528444609349734456720926598758417309826244244896348317587751724014121168538655866502517797746937981684166261520322999023516204301776050611656897345090156916953100826946773824948647209173125488952431655161796396298691160291077699118550886993245491561614676859001606312144394673947488401652854530680016930930730437391113653152887540851963590675937547280124423472181331375029677138841854342695705255749725531018423506264980018041983120139318606510791878686756521831054308986658363540574077872941111282271176985010053402219144896494673412466804695078302178575327156267847980493307243255091809681482238409701405946541653768127219090986685966176286667316961648542016815319319977080387885814021365333278389623023409513801511645149076300853230434392590430366810119506670030244224670687346669384699732765292243318176186858357490850351326402180664019512798885168898830195347126952071132992728806473705547901913149894028811957433373849216259578834362627666138480349748268573397334454927094549991237706691386004490937229653171340661423095428332277605212934926468172853408489461447326346436577596943888174482239299626840879560013277115990702735112305420573880729995629233875428952845214133106762861667961999284531774754224397420539965678599388623704756590122999120908239347150392677200119997221960400431290922151307976713176617957867636397981420933640602808751603627904417273519288192509138741536119841828593826817245806949759530761881821401018573962299717061640104207702501140385707576154355669483546613947414151623555500320514506123220526232718794287323345563111906198396084292737996251318981608866753259762263111179779739794096276647526410658620849042363766500483083542130742161147286051074587681193674894974772923631726972134049216129269115081259946537321087449217088502660224085552265144810206604552238289959625097010475547150816843613627943733213350342336057236124510059481351844284392943523296327837040860471887618333342592495211084632354831670792150893471739084976972581894110600072253092304126832599802317689698573227386827779621396813855819634035581226820709486120353180149660640844842570649862052639739039385130639179605700135727058183194649325960193741995046907790263958781524920373205017665985158115282444301997634832892020086796736250150068718316780236232817405228232994810929629034241215030862474478843317323640965213894147580763042873101713785061796354423698014993476906437103023058656397492620379414316288469951185086601251614094608762463884920284236205345064208142046014186572061271123309539445344961944632136950562504598118520747669481990151617676167239417728357027672814461126317724202086279064870959500837036256578611765245100624291634838171949872789960172919514884059781872736748661847115002531969524466155546667860187312175708823344497283254924580743820133979244775721611903520796389453025840964741610881628230002747763929343946912435695090859932419255990795763360519519800857660300835365364093464884518275472090972211660166332246002381665739843214655822742009958817237974171651435034177897485974823448807987848105361500727165937309938835806350756095249573068267941762717970423366114962573334809584181080384855250363284481807942549102210689020719646370195832998724232585387849782336625718524914694801452993216745356048208877934157836013896722196925280803837551880825813258873139419111877962565208778566974699154632189804674731728087987525561765367158461545365852957419343631994050089239260709765231983144778811788804306234415301440086169287670142770940053204683924433284214677583002478586745783105441094504780473473509310656542149996593033772129622977970713671236827557843134400485540265722061817544331826467340935009384709527984443535531395063185091242921144264225687450004281661906845909673267381274438914992399889809899461838378028929295331220545010758972235167162509015836790659594840097755156602861781274423884924145268525613720062947985835420765193076789567878437595625874561688388077456354013288647960606712726088614364538182717699884019000334856932364701723793587704354091744051367500197095667757192087404206712201922709175345904316407221405633153940357542703751814849411728468185282969770818330681204463554817729323411361859270977914915464231834952669080348698121892878898948043827894879211107020729903861759027110206771422073153801094658831690295166608910040088573577166053942667402239345302133716346899570634630452289142436546033228541653247720076953217625153373136370327626922506949721969564724462468304345420405314570345586366583114179867196710274422066207859596144865390930640893521317980397355919598385130240931753814537698608315905355284460987763772576095972101992811582832346485758627418060329595518262729091465686117885513450665233956408325952966582343558658232383609907561217014246940482553594532561308079723734004617815990454249593228920751035923541855344863113254909120718730609181037542815149128508514687292767830310818766090687026400983000594363094677437228032913082379882972533194314301926104405633733007876148241588656039728425082825614538494435891231948887004573035271121477889765266828781091888970671297844376745176907934334695269859843382067029857476148142441697090760079681633886187143960356577452147790258029266669340928143398232091824945527774555934934137213400221778441083937556159175969674984595405603184086373335716491768676519229952127919832188668517882088836265094647527659316396349004784889306324110323142537778319602949294445613073873666517893299799401951468536837340936860341853955151054284353997377184404567842530417861593566687203678241761458805832342557566628098030834349507272168987636388570654736692794378650065856196695194405730140021215127259378876703863653155223165242763207409022169117694558077111465866000501715875953475021025748556396995840619070955166062780359594201097720438768168910346069584507427027465039617190593474129895942608457951384650705933157946374021340612465986796733772278386402683103110430965769781475196686237646428554884294462317788332005428288374192845087476919502258353323258053407617857169276478675666599392509885148031387901203614343135207367115824686742266803930003072326038669040122501623956362006921878601601367402912586057325708564914912392322371878656503284061732047757818092630868093405380373995225081319904115496886363173463580258383694444377618343066845187759078327974838365885367892502293337096878956753930300117137701634515505663887772229790882856362297542753450840738837451100604121356198269764517746952793581155316321411466725191409288205814527891542074088175374131299316429139808986861607340367576773699991369430807037197918864900312497298612969761512703877117619851698922886028281627663857978911633532238111883844653983639924552841935655263491975174372111991635207472239828713451684423058525655854234593269934192209545829952068212199779279698875881598762458542294326733062225532552181301507677778872634815575685486647150432296963039730949323168366905073402825220418715224975017683959952046977078160730268655140735703316664138454507513983091914613592452576036641716009917285314209800536146462205214673350650525616059967084392520587729847470763186889762934556357775394026732011940167834699143796768372462683749961344931964655488687212262800332955884648297410459612752545644002409322285643618495956288651365529413313924767515934227329223224895164029465283855387958015081977497886267563648756523516451489800099770454941429960622069767640907927511667090394481291317556177902406617672358863533168699903782590212404329608725095393884659574751058692932671491931187018009108210116964827289466275128133750331749634589092993840461630200629586754698776703544875457131615139329131760275166776339946899398819825896569053156894823086542024499727144603003861092833485179705662869629718096830474418497346794818127825299243665730277281516879831761139892440789474545352197776585948234653272718965388238516854850748540993578085922593933229993300028523063709274617396311262616868726736945659052605815332002703460010664384092176349212959762841902036640372680616261892284089439367873520052631952047227959996044581347440066329394852436039497565290679029013094187788673269281192523508853588835072117772205162706589890404938131359654038323124420900445018315224055772859618695368558299172952918936822116132339866863393005551060157069664331777876807478922284942265130452210624751016197455666852339646143516095509621139509027501012242937131221882303703184304986728819832661375860291891348267215989412550901397590834668850317704976254951105872043702063459343671876742219159596450115208644217090233555902056485592925055721989582664716279843033465233009498383591100109583490831792916691035169900649689864314835138981950703150636636725313645083001748303853550449043588887699161538543406657416414646267113468759458510505866169031169975701161236671337197264595622696446231038202319615710089191990558425035045207903768103910534790681501654083853947113683028603680611704500863136910482605017823296808510885005669157914315898182452676966313965086672159575396434572915221128200298815359203700575575716372515535564653756249634518076101247156321429321401912436322019232676347185307968709517554070308272920870737121396919474984314138742497238610760479818110263239425601580520361065076707724578610903100077529736115922237430669618130964263141166359908586015081862367562471393274045492302866131773176912298399019487390485881595171534742495592892000614297080871572922423517934475960974026895100106204251833801079376049938060350666789654494574262977406858283750627124032600551310238803735658561980149785758311919509834022803531233367570701587728601879086136896869970278124591130002524477937502852083539202698566282794016160950187195845545058539119176869745006388752016317093487618513395652231275012493312094526173315252947815038334773582789321563920671838570852014262231534470664753092461270529278948134536854835320046242753667064790028250280692853275445800347056782779520637332654030716625713691643442213889068861583951655768989422005261834049191194663327913551481116667417045170144180141133489262837659081198737743889408508960636590642423945149030078813565167902063027340026984495168700637303425239364570941129487186329253609960398230682784729807085625384577370455679117426837433530675797399199645824765006994663347229172977001051244582835148310507378532497252896034304593901069173195900181763183266206626044708452342737645487316340579247950105886502173628633599991681796781218557932005620495666069458850041632878118045149435750564191978690354117803086761373981830967931453499794641658042353625777384963338822218872380013915413275157168821349483331638274399158160561952141412778102928410871772896340046480004039087242051480452087116390097344002111849188802630877877089953707400115396556098687203876882565810419153453434760088783718350307992562034907632905283524025758601494517931679552042691868780212175200494676685513824752911145428363415952394312832734700667278955677023554441289624387322417434195663679853655767919879967076887956536410221763809633063297506037081098077019411068444396178949845065216985435465184305709833683562117365673621402947051069718407157348631876475653650005909859217204015150542256738525500373916965241388028181043909723918506281229329423150322463642856275219688971633490062500641913551863649472870977681520888386171451426272923126924884207918704188947194195605733270523825872299202884646656635823932844709812873137364841069774334305771660587189603187895987885618187329544061784008960504309895806279533031821424387385553925135978057915270467540161455519229481259411943853960614863118707494969640317615415515449106124815009659948627515605653764600913796603520352505886406448507650434622808985069136945519827280202910900672174493517852114413693040011913628580829610214480734250762531934605139928980114309181248650614007612294159438223181255854282724393742795530662065184920495071043235976063099039363859203877333836437222311103402906095028499107924450412781856605381596674566954174776731024240721911466976085255594241439055314232831395668355814081964417403339424808889147574434284142337318004255388577541756835663500498238540609701106216721958981942982849889771988597149076485628850222792945852603749671770938076873803429484629140094768812941083143049322725510958843228894862333566608562181293487220875856236068075313386361712673411141432920817298507455454644602026011660532405939974303110125690598397498106204303715856761374648477290987381050796144381117390147804447533375679972493656434145556973256749052421342464174536510223431878850342293462131073114901435023185891654647302362115489642501279623227696458296941038006202517760622617090831958034019269276532833092499663446696454339197236649887436606335431004368721290569736255203504741851190565829560666499187739254029914895614207394152311427699554032346308177619554478124838822911361767217063165152381210417438177769715885149782845275426231111662736004329422245807870288894068582817473805241838220009745311290508037926904682845618256663926005177497049738129632864823714151459780759217522191878775192421567840850978943943774350416090692152504451084466546381491514646684111251162770649195485314936325714815801217464122051572197997750192547425755118370856280414235033747843425221835616397509890491144097719356565042862995413281546957835842368365366933223844640640695816943829595753815192218806645273472678307305697966222062208640183271090687107896072507797822482094350771356683620708230941687971647936296133599198021277401203983734677064381248159902280143120393421207358517569467321323275515501967428695377310626522988726946176741926011789694167635419171882970351126180833538817355879134756690756680652997864909992240931519980823711410778063674884374915654761574843803277468195994224233431109775800152877198612263652065478984965657469196599022604986385322588797131608895761053522704400239179421059296864704979141844112055848405344198528374228299424897867914161261235097723776440173591410076323507187258442262601176878381429412101612127114642280740961266662499223957238224832660496141270437455594659516097164195126199677730306069787178851609019662720806638857654286497961278729684233289517322699800419378436888816240723647323504211218116425662986324079135404722634512304604768126115866528837995859131733272473254319144250446603220679190921369178955057067429244614652782914031720475797874029579062680560388160641158654094018876147920037891716048598856618855681661717429999189003472508965143363463024154297889508016370950710101680808898897922612006300773802629660769965637104932725248030362181626123070118619670990883132686675286132113022284085244034983336847838154454188223431438294351448725253753592665461964702084894538968328880326604641234442496788427613859654617717591088817933437424480055636327494524755808258565320526866002273049362278377487778823342694124334024239656134638065000013217155908538818563416118301356684913577540715367668387390152057697108470053341944009289967983093644603800602538274631268165414828559737381409697444740567628114750740161991820855955908322293810002027606316634280656502471088863213856633696315743890291745050660227295178461719024342149288705378156942007958904300400412415344571969959519570787494491246909843150357773332206532878375074761983922411976110487832378329067678588171319910750905782484236442215792785685145030383724860429348668766404871023215957850740389426454973948560673164255846772563103072413370425948857675472600672892208435274088360734556634052485719411058630835432659947733232211108430258412324884952796887209487808495353033048694246087844419676705699553282725527870202723720459210216431927056411291745125950935159973409981935378821613717313957335872256081228601526174008550855213876198752619379774510621312510857189548250646555163436536303571223251703497342863288914191852964461135329027418918521242208229644909154561266374737111936417209073643264348511450482231436161649963384420583752224783845888234426253072501941069574224865331389148187740448625230175377922289668026734199186549341553393038248607007698757567706493566908900273982461759685240880202866353548986935814106184957587676409673122530150518449776101387621822089065169968492583407110552059100461022923748170955026883743535490651359569037263747121850708011305620207043183146304148040399485184151523601082210196890049109339796960190838489633157043007057059225276724256680460280123819075024646791539423814318491786723795501200772939617405873561641971403892660647667117609004780092914983223977109915635175768755299671671806518846264707894414854500222840075026958405797229848412345770460684008664590290289025531095386361088948856591071305351867017016254942249547662818921087916880025843625143596939408659708050749819694681672393687895266341429199319524899510126934943816580516021999391114198042920757400741058606915976009861608878916592072850868687375276360506224776614149576155311415747790187857066069450985080907243032178357127047474762522597373302730845856066414202581861604111042682534941118652307824498087573288949304574837939249480816065951098364501091412456186936935466431299382336486424061609249973537681842796960289765140544613089752551521590574508796909177976604346415125864890663198870906223330922501395372336895659067711565848650252617497150659130391542640881737292050833690938213639680612149586309306974271835086331285282092555374551777532253925702966916966641233240413686331039609522070200096153109592192000786924170634717111234449822905026281382573896192468067254737755179456259460461127928715593455199908188774407848922083162697107424745080400977913246369011990484913654139643906687233860214642764310003971150161422563597172992990248045533895449665743739546995544312845671852153957533743557942519841074740715239416638388617851817249738062033234527098812084031610862621394393411448392901759253184542445774563323950707313719533480907730380964001960536830669525613382503139504435593517578828274523550017513451212854323095211565772289334136632675186205903528787559028377922417861757769421505697500234878581670058690316900198313148582825218720343849060640564496825370189353509019565071520047515882942126995296334611571936077141146221893379301868139173414321006773356235897207059171392489155642584146358895103074047935484802537579965896585822514495412154423214793540167851611372259256428352295850544721140080722425383577474208997175690857848806862305301079747677200907742356584298932714608456051143632747644354400894320201050639523601160264132709480394589763966662297736340935211677238604991389788751643042276171346982555224748385852292001688567885655070212850071468572221070801887860628532368611687324603292673015639917055146699111417361849660304597504105632240646119919314306910985577625874553643029621933560653072057619205257268066918068292219366905032067072572803469338496509041415484799256326626777933108379874033290682876803228280130688829800458197879674712278379786907809720679612380882419390711445818488567773642268975524372102138364292512302392056122808287190086717734062673355950519879130954913936496755445220205181871643461346179270322817804279910630817335244340049073441426708316550377193348096188582785369950645017156364527543976914101392069391554409288089661303000448628154847806374571743124463599442134607081029212274944204193650331366181626833358483282845619836632856238813495316105200658650585095946310530574359916135171833717511307818395842434441889154466968534768686148637796731652078172496347070647128831412058885729424373201098404157539148927289796818413388330864641714847022862262255892586874731274562893283626116735455308613328563218334184337548514732386607310061056649607599819585220323811176849657252731699004569174452099806177059217773314677059413031836379966631422141492840639611662304929925288988817286386755400968964653880936701437707885946945436514632353929929669591960033400494582133746545706979461634058099264928599130479651923202993016417289328843569631297454792895138185946507826806374038148738655687155182909137457993439083875435003497384485674630699331855166204341320358098588327959355740378082061664324130398565284728431833124581470120014494502076878369569303703898715911428470942621121950347049321593673225496712946625600007510822855571241786819928645080755337606963072927885189631799568416887432818159812798223577305916927220213260901366502478313698870050624703115463026785866380949307024205094054247919268731079266900581109943250402983097419409207559546796779684987160101476386676844212308233186561042019251332136670991077360557596737731562371375462631540012964787056306739993974968197699218027637131558016636054081747162689202380309802678229114246884021158158563915414088976504971482579356820131748365247370078211236110184147342417763896949797611626487811736756499940522455883000980111530706548452417465573854603609699082559407800956580880674408579940365499006822577230975066062329267493275211621543067753811285792774021108661078913443467221404212593506016980899955333210764541188958980433972955595577878907831301238070475055519185548235181975168171430019974198184461117979701268875021810452582868571533479877067869942840725804996398100042578970865429580472021502534580320998499303570255521817491988350586598190874774035677600385515126524498135231418704373437559970021489419030762028652441174982133568597329484133393076621488952100647792290179743264277299738302028544339745990471700377677121523034194335276183801686177879696515591040034717612738743409135661751884971606955326975618829108204927823947000617358491527409134557114582299011719657001265327370055621403710894608185832236126593553637357385807349437407695090410648275630070866701816906437683375038905421944817238623672048854183439644510074131775598114853033714893214826285565063135931236538426516587436931789600052352397109645896514264802398543248781432776222741629425940572300390904485316476750995110507423367881786610765063605882751583002810380133979691521066837031207961811363520137128772020374061384642356572009626672136979542210723142036202714779388646575522851369198469245333742936387935080276702663223442563260960869476924924077365991984658818922991041516615712703840475102360871160075027325960289768179948684107516858702087592055072020445725737715867432811468183237349115927639607973203253414794626498065241326713437810256079583961802937634418931674765907593605972868000208978170607646864969846882593041092831910733043790427877196283605169557726026470554182408658901222548762109630083297694328348280571728594472325043237504668265278892231287430849134789277696378014843603442476232582522868983469380318780387503113832542313995706714088357654069849040237726931973880877725617766910341326684587853007894007087360008990148853809291284803852535465813019670331251969164345066561110125567673476144175796990187487476771969240434741485997413144603422454281000130173817531718612162661666899442774434605608718182293945952287390386700237698290036717006931135434351415328982236849607619162716214392518608277677171270641377558952642716628589741115631223810695753683908573785517887694875923231315165658032307610213284749853786050043169301350681334385419077174166267058988493044826085295793208088420477969781010410644595407773073484937147097357426658753820355789581662346160406704482658199684633158224130430537680328869229856070415742079625903900246875842425951114656584002650108891318180327730217329517780038339502817052266269813479245076014435693701199741511228150488758306571550805265522342295190470596542981815948324038282841485131400929070192627587356504506609893109749653871231855220325176531025434115161704523162414176378787581157395375396193341715966908369918284551431285112932330535099841588365933986275209721995319892535633264402467033563248010548768158191454621031897394434557274468733166003066261505449795600283478938934519513084115993582416914916851928007172467661145138175998122384250316464647507150970913138220552903531390882941413891468399043913270801731521271745177385055596762164339995363404582729256954051568311914743337029540023765535215367235119077190013195239078187816952368243391054380530849765519735738355218976601728707855516152606196175676146603694500052455610551610984413167714764691481982037249248248237076591495175045843732089067749800794930726507586398248227099361486767722013083633276298078424238192951550219257340864856030433942198396728226606756507106391615447230961364234432866063171788804248846354872888103218792767846142016420003055095660539012445386334505606785255592506351648233703265666189767629843806729429401152838496523153320441009831571521110933550009181200610391417585610726600414513972177908825009800641034522411204784095015007685642797401386268594616334421156720759017247504488459447469779663479507361766868158559706040529750753358947302538698953348919729520024041413558992402363280232370668988626319519368370648852453305293728592180437872900767612786603281478573126710571970457575316712971864257670003626436042653405019813503064646401278005905882691031406041638754418679829110807172461701130583727188702845683626266905785236315798806481905029246766395568205497571869830622656113578906355206567871959308630650346601800964043126633715596458976299511100019380200481192128907036221362474936069045880343535162514104838304078889438253395752935958795890560279362085493045614442931410633351646005280219184396009167368244807422560405709058937707979474864525382279818757212387019509464225422045971397384989238234457234241950370973301917636650892503515044319375596710878483017673457151517001924427835484253329022279967223394379104108391531171624944688841897959037362150262675386651612761749965482268887898565938233117988728069556644861839681514370683582126979533485081003371393321310566015270214457002145382489403687387781901335785760670584332973788414088522849364456599408064360560871315623663508665990284846306250173194754423824250842954817561886970666208896429519026031247142052568906947428638596299262685696097764454296124206435335711717903752693604992149201892823192833437147307407413114358658638856421370027959491205787599773392640294600401381215764016932167925129744547678765348040202724763999917479147777330293295662050616055035605301760485674820509707022370979462365527516931094717887430801893724659054067181773851967718058239375409885982418654686208472560544851309722546855395709802178237124634176785136280412859981265069598214128467164479448959131508533393129380625020189326881836625857887767097403102119285905830027824580252509424199236337007800749436317667319457725299261182137664252452914922618263628469959969435300024440338295796875408398074397910895474389017881935809881011085253292445227497285757899155905976305197601022085615953957052401639595793862798353178790863422178456708438251657226666891516292379237769820147034813237346162586374891036109987187617210902186416421076827725093221233704037015610102422757133943378456432833349732065780461385134586969914207721601163104780646085329600112189427880887565735459196971619929754176319111354525540887904573675651667101712045797630836992938092281411897026883443907882222650064808291902546639749711915450197350484518134688695451517939108973325888699019168747249352655817335950960036451223503443332122195286519420656814165096197781441087889879759754021649297455408428084415176239151442364619159830424136140590690494122814514944988139206018307356006956236454800523803555098893533520319010114414268073277324620020768998839545547827758259318466602093994804827437215429444446876617796314029775540293759563999623024244486337853513165274249300329810473626740511330035679878737120632035940623267213999360985945019075623114715172695468020394958947390757006298291310173696821097441249780513076858576250057886292040651561177409789076655004059628540234350691786471066745972092882067711810483979361965533725038541180095345759382188762000518069391441427400739044255969810253386463930805925447037637732422770661213066311686106593442278786812254634448513285740620959704146828783392528190573631441572948500175619719606241925761118390840590803301826207257341841811446983812468464722702107180605083021273583302547688730740717184781632890206873948339454833521063599106644450702039231173737934874455993402154043362524174039795717667003514222374888633850870625082538719749450405254940661955114211153731603210160937896748056551016618932758453695015405478188882895477048168130778062808406835476713202431859686160182868630326412781640915503542066968291326790336877393993462531371423143789001880794174536118586376953209316950754016673072883168952577617815130566906812519861411267569228700829551630741249158822680590682146448775467734324765204585721425251343923728386529418039805993643129595253436222615465180703417155856954714606157520418594393818593662350153661622603441464997203160116739669472118155845613320483107660731175477236696590815124163166701992963696045210589519475593603026566586355993555561758995762320435352966001582105466902280581598501733842508422121744087353083218799526037023798590168678781169613974818941018436148172365961222752619048808714247011681339006675139765491965335253301732017367674138923984642666673060901726157326104363195901757107906505728493483461445279326380898237145854497985145805036269217021393837182413927062305222046532237616429797826607713171780580610861617878951627211071843101261882159916535125790289843752339809038772703684267797947894364329046313526319321322963794281256284288969497790379565987316073264109731825829478956729123394330145352651037541731944896753386532212799400125402741842244420228643661461491952720294782218748880963465059424272289513358057233821947633451834516234786877898976120007758053532482835376714283722057408194427110691123000537751879760433231537080737379138345554101237491944084503245574288871211464399813615251549558577923063227320735697499192204310210994243962683605899082372670020308537091320490537146689318765364166343425960340883429337840474527576380721983008804303057810227536334778145901370408120260839013141710605532241527171587973644654380774728738318535765754024343043233234571341331252636317239510075338880094457502193589667814416121166036097074612925908588043857227195934122014193285232758688492786760393799483531504470561258148783858110998503685583448578298491080995328130107776852014119463789928433961824769135696215192490328682358843465375561039806308493260881618566131831633698721909018832331432799604493986887272890282561866850611018691801473482806609966787729167191106065903712388683411583878933857479676999069783724425291431706547157860344283570809515460517138934245226273857215628464686226532756859537325379430888040286339413130597220515767182595935009435054856997284916264788114282969331777398173604898614564596514795778982642611705904318347740024363570236125595155257541924100136654746567773546772382972431525642422250110446933355992936515475838709783707855635758131074592681061302126866345900235828589120334376465969819806235328389475322503295283832325324250030015637912626297171497685524418564866782338716324336642152238117795670087994676258237480289320581832506585989088771489612355017385376869621632410881342030553121999140534413968762579747235717670088619600338242416047816170300806551893958259982546303432356517709319660150537089659138827987712250214523463672564116137239328993193239044993203435986643167158460882229460587457431590545850705360895926057818493580736170295799490136112779878426266077478888348999632010812691178333663045429799618844109456713033873185164765050914676269324820750830082354319585182919795650509430259757573187459765356262904441488881821117244685408447516589584645398653860914966069635544228393473570815601937295414736884457329986422630413092735551008835020548617971685724065101755972938687595150041508907303335034070984387553611041017660626945452863423845028152312232261130733292414116188814602388874267362852228490365049101134563687159905873585076406348849730826028044349082053211072265613556771343297690895781817794258218081375737314015887853830436601043308908066039772239608478445834311305225808444906998867356189491539479279094756527382213842948566555612228903891055059830920335038270771072152262072979374245010715076800481918388264074191919417688935653592096359685329762923849693999158827788341690873096648383517326073141959741930987623863022222312308033472499240544437531490718950183287333828079742878023972892390668363485310236717077595251018414700070953517257725955767041377841637461986774049406844420458541624487332471546582239405810546943436976858201148053049101609575648696337896596315371290616985520894251451842632660290926271646043560782305197912948254036923918846733179372568885874512434855931442618672226593481910511255727099919262178637228164348043550021275436147042950946170844120194158800111819841307259542776201763891391213887758813667697441654977306817456948761058655525015704154239966846686043321097454249506957093239221208844788571413847823326994990922772176562040155079802081376019958397570806715331947812454227680201108999354215230542920555219302926114506145234925773490586694786159346861685943634407830447118969180039666974632772464642044471156991185179567738498678911589726960021136235411584070960607084165496284230510947043141146232910006305724831228047264144671303319091714714213670095043318924135366362820067485212777691461587799605825897085446714157513469503045051315347460905247240463431753087220909614852319580672332030801159988157503419489815584097189019404050538700774379988758791587874641528576773763994184899589932995317917220116708961819949508074139542066854193192620474435312051005921512827096882338067936365754578373747394163855929175909365993579197687947120693757781476368551674780055289706995109266692772600559627840464922988611502375659936332573828213363111418832312159519632270476259443836160150038404153245989459326228277106999701946000829265632494978468107428911418829510743347991342910884932294455634363993181157915087457166047575866050286278293529099677188198545766446942840905684873263216602479301361706261923133537193134993766439225828574533688671783117402463798994142571187873896580392395251385464841882333163254269949212410188906413983815419635982015341043452552220777558233156432804767703804539991928801699889760508913305157069908903086010801415609702310599270029658374610568098313457604618831050675663826234237897503824899687119710242214985378137145927703324154094830389312060464164489185539308785764461370178655766852427942011374884518396697637292507125463004569248211486347071995361719080787945728883726595162368525404650117836878338301809385692618767767006355276790082318988585015931773820899693644978379880175303104168833849277132009762591492179812536964501701368383461461733616479167134364174383409558964390270590895731766089759166602451635365241326121159628874332368666609051330599914760986202832245649747187233124067890674485349874619072001066772213772705315223831384267863555114764537240361523230705074682088740058370550410878412785443161841525041567288156004197922026749553633531354170419633612813569400373970821880193796225355471057699892058405086855655250977610805035954621265321399083142894839048734328325719707524224846335196310452620235354496533061021027709878902898526109613077086297530794300898791343318595950377270311639529733289168172626455562525746165596554477789989208013965830870982062224412691078266035432113378291355648048459512879065116766183546913925908957280662320121226781958911678765305189317325865173442943632099723467182745125544265905648008759188220466102014664006508241819548243794879381098681915331843669672273823312714985125837947862379154676495417440869094989058326191627833341309334228383725961248373845832517838583011583982539436707304884782655527924822164692701071773710637722694960508670526318490457201961582073917246754994896126948008974217395072267871365886641295187583350131980043134260500029016946559221035050378394351726064488387814490290026188654451501828040029198718584569598626800331426552214477959627613366195863677023192756157402765845389405318706823593992085984898829432272729517955997725902047817646045393180808831704804328855506022162520788802096823792168254642467783969120460717813073087879342681329815881035870253354750063832212528131142407385718367261362768973867036614233789029968841063702962124043952435276135368788972381399598303873656420208146881853947100366840895761750045177087056493613624966389031837169233469900764258583651961360301095870088521844304832853276858084230102994509248856600191180516032091921722224732371677912612871661851528916987909147606472520495250572570492659173436297886116430855584365797403117576500637513742173119486416379434842583254366039583216900870640169429502447296648976485082128990217890984771031058637587404924592033322222503659234623658839529686197317649553874906777281854187014036850219059710891669916053570759164897559047523902540299111466221731563372007271997140164730872099837782031538193940860470793254588937214643784084063771670236732495387493928304954989879549689409707186851372224448601253425977684923429085835209108857421440331668010343628326911873695818032193652368498384872235983798529027838293468134466160398042811215936534513099915811014079118380872389405976841359202917102070027321449696955191884743125773226497454289949673792228171830579237459639722668603921400900677128508876119527661064884084782391475998579948325433337215375036932411444422258891424109565834689312364204378054277197787619737872740629815341627784602922905873213691096992170669079602736618279138133054386206321053978674643228659901904182457391514382263916133739009718961422142554294430064047333785290126333962125560983042699963305142087564679333886940463994054399773624651362576595978266905090606714069420167910337410538126869631418455858001737626660554470488958199144801180123514337160683022879900091539575051825883422107286745588880043831970126442507382496119924425567519353163222868862894717569400012649773593294502608803400351413138473570931200304737133109179959827260841108208364734254046530773808652579856396766365554416169327460707196571758429577670189017464869814878657864330856413105033003014767230692446992277014675556098370836156851211559683939888930842179729128563992490672095701731297400790906454954627675401826337628040491452800784108763957029392496352570180741031998713060761042111858517250899903661459017707109541331490336380175180859491739782803544208145839649328536932660986130299256216367681207438962517874115685885777270940970528018325915937111594320313734034298530684036765041385677368898560365791794879392888187615810901855180451045615803207814826874084749089012023121794193170202086498456899107668454368103778855125756091662502872358908754583438624640446951994814063907144852764848611825975020595171794877273639665317746369299379882101702232804011612237198471264460725650459565627099467394658779330431941713934445788611888688905009814174144173387099000116860311963561047662312500275134792934325486473256075185688931435768267523275964805308208460610284222885715922494280551807779833833561800614503777989367295911540797522566375117815599249956480013092879924798110780283901262359409195125722988573892229393203022417774986699174765664605203405695342437666171202045721126787832777159442161574425888559004548175242032685967300091920364155781762976067731712246462855168467589983983780137470656927340063927961367795768832614496781103954356489663748936380590863053895222596189647108139121544139297188597319672332438582724628188465702698531982020832410206222720408447295807580065434385795529980599126475179635865685025510110333345787831000398713846674609695767586794428961237215283098452395340674831430535226958144595603650828816768311584070504646364354801709128772238199923110921715821728234092649481874494668673415398137807503573577105392195984328804291498926780318795456256043963613959394904006387682319036589506179326013505617345873179558334929961155213302787256268707975084472244668081128032277403969357558164469759598873837977427893751976939506220987674762003945708304097579972775008666817201578969347935403583460697053244398605659774087517946821028232924119797786537031562980405777381743669537245588240485608339574711794485054523841015975403155412453583204182586942198170163426538370745002423325838286559409604035268545474736948699720224167021706904852555923862709690628441909748867333513912313614365913664883825544832453731623633098298012658507090564828100807940146057923758758683870605050085358888930634011493317191318667515140693999538906554093768483621601119869365935598712734201039827347362423020188022506503286362607356961771807471709235444604644261405650618710020429170364478689798837808859025488182256082198946817536570982650632506640423511676040155122766881396956327726064815507705150255302039387653857621825816761034756150111704324701371065560425588335164547213584110704623900183277708531359912294206276184162459888155129660701537351442930752157020642517220592026027462810505875154682859650895371848277260206328263501575039940889700938952201679955373138585729411495408830820936021274274942524563751091002370951307444059982773901060807210554700243343721854902969939409444031165323634539960331464308153014000423929180522812794248768467520767784857183104514137765506237975160433551894977725597807148615545609372554780098635184504074849652578159637052654558548951990386645776948553550315168833314710622801972613704229148514881049591000084933443815265904981706745170961155474642137780845363301008187766429843311922093552673431494841124349676397147427087148165993279752322407245625402591495453524275005955971601435084618730065038583812251865678543534827958852277277687800393500449164745359380087685101052233841029005368784589167309919288159600736721718503015047974573740906277361256766296213091283713682737143864948899953927543821815136689310120698143482115007095858380926333867852376981750248721503411719490536576051998476062492351385897648791517063915699268446213792392042244148314238538976617228256412024748865529959450849573546584833167399918219805625542226335530711549204029538271648999913642004924509664187825941648203905548433787367848517753504639301125908919414994919014066047160831617233676252687932730302509155289926073924146832349519922611863134075035159297095534905196833865563534471961978393640326284824635142746304045817355883911901933825066978751694911353289703705404744657834237954219506964475851565425614128880751305184952816153255603382325342913665503679293046684048220434892517458144281916626786199053667912483554192541513067167017732644005563227433848530756663373808825544536677692272615777107861657504083996040107631389727751845081636638823928300680850756042512013441796940886359000117125751731734773061399372504586517496409773321330991707445566248287418835110945904203069831727448291542991842630609835239860853729820710671222149577645333029982717396231527406250590679186291130699942683083587997150611322456058194546088960007559477007785122356336540314251672288191891280533641473129159829846898108999462275905482647116535955913739052448320148312237464926971171340299532603879435449241840910702954799584996732319488874442352426519958352991606244471826814789134252978680445579593343402600139042619710227732008929064750825455578834710863293349775657162477428215765611675087121801573062715169499352996064890048269891725944419702221923563333319523865168783884740778967988288625279109095626277291715507293405078995530540674216460504846178743228069451128405778160276133413655205876922215651251271260165161285452904538632997876700378206373574853819854465827670443396518720878953445242792663415991726126737851652774508060650648852034132727199411183137685442235178858689062865360285466673399114794401873419131974763742065872725908065110931075243270769720458685608178558597545152742356693747268725870005899479784658703863546570001461760684339467461027594431057540071033668145164349765058400237101894104109634026568838380299508097727148269946964942781339933559341689879021930701272737179154674623641246834805816294360612492639860741622511301666779502863202151826741849199949136038601254825737760490336647353903548773559605962461727929685407992501154333719063976285164176002562336255907430051002479995846589821610501617628155367289499504380271506077367093298203936637326189780044215666965445372590745094853741019922879315170474380637692809160989249947875128737240310281663726785707056861481756418795016744619245310048818994868596545981724185441554394400459526836467358403858751590166929369838685447625262055442414000797904418107220423641624462229070084247063191871665191687514555999510122149062152988902585098441701939996178287256120316009673145190371868456828058050396093718004346422703929774373027524401370781853952812618902335522160748548148868196812128094226013764217774157957293477390933996000319408987362874512346633469653914226666977904923625793655318308452036442440711248951335271469484336165593145018687810628125496178444087224180532765944222560585546202934705100906378934275024357973915912073063131540720343853837409516874932001079777787423441046570053266657278588821524308708840450903120302212638417936767637436490469429154465141694403657511716627606460784128649935586687455183561204274024910602734103689999462137500825024523730354286483520548964682183958230157874363500434320489005744395219592477873886545518169506917106439640620660407831838649011541326080562590213939527204439532296265183802308847449752614770079667464232579896329715066380243000503999142423268744944949799946464748873465826341755045395233976233956229875072597399476660411576944928807759698377018347695641509979357852017824505745002694899978867558039155801350184501074772099882670639243581179233332737212311045068838177700680773175933283991991701668776986159040559188998555766454740923789042771582267133385705392089513474942896949487892597769056175448567078271366262454696753867645768337052988573087998604769247730903642360966098151991775826338753273652331944022790985056575705829227442021675513201782188440130095231779847819905812614670346126361990682067577922093230804847812987318135244033758139036457616518641520394760799664201514972437428861301911891198883773478097088614829951103137295990628150444449108999619179040240436785593047877641619160472437123416996318929894624408382810351401898328461902880203731669747533210575816303145151556149729416397355681325735820442068604917777368418928373776081248900944089219636973146284146940222375973069642522017454013055964068682517999009137315042492884706574198972517015511325722669424228643222349631762603608593982138817196352440422574893159471378205762458596897031975825021921972534852792668972363117428261136569026296665015506491899742808941087855326555363723914418214943310977602915905718076720556230849498628611904638789882132621655742979272263988053534640571353082361696630183653229662749572805409328267838950897776128458186507041664801328525210158696734660377134624189279806324357402181407271354869148688151494242824983323546979215601170460917404712209171353702282444498605942470692956060195325631004816036023941710991954166799792193488083004012509377445194269804010050823554736351890522740749000425878681384998017212491008215780140496950939007853922292654231877485847181330818650633879964637222268650712832403020462313624647142054929166732956168411784888695228732658980097162785904247527288140146686210379641890179169657757916733408880671095511257240040270369750568933611375792153291582576458446784622863855615069888199605549123417683447382754754310133104714180610481695991987431009247576090208729430478060694391992456325291460074410493940743190809994158279167418765210815771326136436721852984670267718803319224167427258349171666339947077178008500562609725176159124967162244426300218678340201817748966555607502901405276273408409182657747685592385087713143189792077327327170146575708047858369833207972304005568961118354932881320795182487998881252486132142796707430164128152245309229669368293302987782723491762104109682425048713778231342314537793812280413393692875629131103975834864606810707256653343245181524944956349669512443741017978665011560758554240065340182648713977882241533152232697169963724350233662811955989667192425628624331113047881616010518009717279940858594900659961515167415737056631083995957625246851090065804296426720212305915900885648682789645784614187194937943237794409477846090222479045204373910638343628498749339987095465506924051152163508288084982767624351074092896079959626896701999783700403724519923728924294987664144954152306480289106816717770133673716239211341904010343906309016506297101828732895242684178264543051752421300855638555171558331135177756087592414374506422500939771017910709243107447350230170155001682336382340156751847013427871421697024074301930880206049260799951512668990221164027108248539905109842615582178073158041593072173068313318246577631031601331318598168761099077699226580679117953720164944248597316916046798878380707336871793117160837800120103757357067520986695870005408392837715808752144890258853079046526730848204350047498425504483993549589138916557902614775018104093275178840454474627251562971940607406203015037730734358198869627933317761430991023601820015329043566462602825206423346576380259623629300142202417691650419704666350512394076985270513361180440527181727587053862656907695445390659254875891562988489978275552028936280076101279074040373829027578138524645275850596938995276010551616845045679378433476258101559897183318714840248896385326707938137685855681596716338255116567121540736060197765182311104851644179091713826266842020009555949133114861011605462775297028019697406800643726088228497187048533212898443833048071677880487052026233730828882415516254034933423990019279663319126010969727769099707669043571902717564598626037354290913956668639647261165158599008562085235068443832261332802310327451314504926474652832978428306342930742677384834823270986995948924687950938584313937147533347285349715440250513043727248992933089051083074154522568983827732972143968027434301957585197988732188588519666086772392292793534142473009002184343591164585339207110785700288622540268150209501931103779677601129114214983789757537258975310427074200466988999652309247105171834817027852603699872363218280672930894517471912169877713154751422704238459419281783359748992079136508906358758356083570797035694903928652613440428656123020274393046978212811615590061502421201946564669835942654361556534447687017654053841294411416421912796840597277885619440282709254856668194484498698180591996713403961088329732338979889914527788694698968196591038117045693146994650165667971075964930863393120815317267190337958059241363037885348281589746250854189108029774846525949009924858994379792819603959876949921864904094632909200697966128639185947182177015441996719802929883607820594620143833633393569853812932608713258421983298477282687263938332757128347373963938136890969582166805064385345736789023216643539593486465876650987902160473232362795459389289027981840361286946457397393835335654191090607536687388629489272668896844309056640195537968667874346410799687810042321592814252160613980754437513619774585353432408033112606641485459860551066227769820238198680555119029223436796486154811415205029383795402569930126372028015369060829411281207128755107349361953861698790986908445563805285326518991533992585719352572286887727749306584196756132035818455995188305475113254211512913999700600598406283643070920004959352360820598282580180490096746583047407819029499478964339055436288929761930207435604533054941835681679514941509610113805679539225109110393563537750377869044769859794048717593568227425127652618048154662787635762991482734998880275538466522568956056763681184883575554244878562619675268316167595614540224566196327098012562814519699536891977745578397613670104307398887263884058128132656615478700242168581392894680968246148664088346502413806402481493529143966802248602686164145757576258502435532793007235680694074440083644843925135323865176914670822299010646156399815574204793997459482054953865522784984197396043256917152353705058867654446137461654563929213554983454887283797666728726035226843835755617306588907954025382410994092358244710048053804890423713670108957482256940010704834873130940776090185793397612034988198083161959803038069132689288219851384173460203753290240650409080814908275109500864142272328523651202037807373455675165516418131592777875927357046226623931093320886243808428212263992817034376854651671858553932312035261353791887041925959172650422821601714665265530463654154971802550828322125374536512017053770662299267587786158165855092009910862460731438961439584123892731888739833871796445442964425960876978347994011758269887496690480084980252256820396008642589459427710980119372263653160173964468970237360042451042975063181822142349582680019336796221402545229000588687881618414011276574933402878848688952234263809803708137030639999635727002175836611901979805813786482862466572079706397893078820516394729829401694645241455356288569727346148914705898289848531133339405496053385837912185159127063385742235150106298069587447902772313156035409679704784492497424483882523733074796068884285002221248794021959979500264166005690173805080005505153624089760496316464017298211864564273605739399401308061179600437162902643830194779486997763702983960912074886912475581704319823480327055816372133969937722498589529256312022221269808959761223098315296664120484814628069769105048912225527831230318402398153966012610825230410343047609940074151220333327069694168322763613387524032355835435432523893933150576811998936507431254913849894491174401661063683743853929863478509531614610534892647665648323643513072089844377833855320081363364672715849270516713234763542465727363611211277548250436476334049130839999828354648470183590568288802498818164247980647333524517448568414057260531993689467234975048830389204152507029378814957256594537592510643840254372897910118197629194907349180943150927896288173022481212860071364802816935171532491321183564054398020359858414797570966081865854469498734327151689332017826278472261459748215666853975671148165781252538657035679783022234606924799709300189304074538104939220257247161465619576405534206769184954022059163775263346563386974084658761566122943800949682701338164359408018211594779917412888974306600284931396278565747482260141830895026866700228475535852740838253114743978982864417088917356591449165269171242798631894121925243984938924630482298880841016871133001662439840486312774965114085704957082393820293667794435783698703129532596623724743880260065489936143301100272102358494536304541295481493138788290785659211233276731634639904696945498905111613684536573403491031389590927907402123770347573462763951427426095674667192454432197144315134881292339973708341455120774623622384917256636231478566489954439040378771403190957968492951011134550676963886009055462529338526578808757258244599826585745063314431455715326566429753118510341182447964522162282297401550853876726753261133670520490155613691510165207038886194601704454875707911788093122984552152634042928752427982217692976489606136097834987909359744372465488006420699398355311298133165954783524345682970162150602312543511533504155539342521272079104782496303273654696116391303899525447524176471600657852720478231294522438760119174490576634754769627185405912753952592416488614280355660412204228350562070872040401142173569040334155563123934667132422149523828413112729278237534139610220404644561609804140577898229771163750352823086352293691183629117994205885592679763885289924216579383179932713207870108506633057553960172173739959238894116508206781164229242031652745420843130401605138225776880970870472609405542597797982926714768992718814007586193965416519606037070951750806443834366745948136975101437028456514203644258078128190663530028290973113909356369040484347285561812583963041580646397845203526044776140365801129806723236336710790259704288783631346475384219939372900793827078837003252289870444759828399857567188823029432956247672338714909831055631823118865227848436801436289246585219387561656576412510158409984902548259293133629076315766893536670665282389857638843131409303656364949932370353765276972878524486937286320506074179546530647683848836072066579365461671856444457719773479452624078497166729291433649666424989753947134029509731449773702799060390405055161062710193717789086838811345493171999781844029576119347823324104666369551223350745384794725848574567560686233340710517693905588222936978378578067365276109721162189671744947018972280224833121790101586729872495488923868051828422481308525502387816556792610176840925898057591990337810306918446504150980572429969126296481297187189719663141894799872886938936463391039123575125849960867167295546148655187185217887536067824628514077360116596135117119657666355036995316925037211057418497184840590095463264612115748051780152643194077849699438702593690546891156148460391232342338246724592165484622245706281376676522531166225627924563448090888588326779441268214734482563622110568414890875296428071242341579680222716649221835506382983906377594217513069620552121960790063967205353778151623459878312886048782180272272148303115395491609965849111855567939711019028040294869542915592718222790719504083274734785250917850404521463420127548784205702319477773493273206425099403448092444989706213148825713922590208391675784956163922245289974360428679015842901070382870864276861123478219700230988397568351251130842682275923909624827575058839013473316972847759098514447268568309299418065602787282155040132512909930878980850859430137653636858541073189755094868009343102099025851107285641646701661503848108206771597965841231922115509435998205152802292109516500309783347582403993027444641477878260641648841237090984186051048272072174393437362986747348390293410416963566059081958774815185124195581758586616280766468479410555997879275100794544141423587134537309603181454400455831738114221743340702973988350522539274281560828819425152492326583707953941246743873456097434627547664395824587884899748279902301664539104618935315826546860914958126298838149261767493721970045984604594373687485784049401679201173430504006923004138743812871495146396862110625814274474741949790221484806017592645712430046517079778399364807674305501958758037616232494140858334462668954767635381687331426587509765724845375401083503002803714574794888694214040477110908383177358751796767645830798065247055846300686580791469533455425703737844269942009828179804055726576974817287137934871018631463653757815457397469760451014033566047671953742819218752194684027267795584941063653987327828734769486830044552749404215135106602296911240007745092029013517448166133412756938215386926139756222130458096082741592577197450085197235152952596474928223644905712550455286708292548922840977555205971329463293473034845253055073889472528326160235629715030063523141675184025743867927065288786884654170812483200529446466849917873191716952511989301551630660677904657633629360218986491457362843437434316989123328475581737551171461286834016718684788481041652142821920977177849407995457309640694976239341258029174751816575599694172542395552021262633513271922809483073992426458801894868170024824536498945312354637433588061902292401216260922055982190294925466653320582811355003707323539408721519114916282820516840128984095224160334192935318920199438372270018465634800019639751694738391083688104434850477486915896538251978268689667094954436284265869161893456284297881233626021983662802867338730412807124699413844180526500560844898976792387156304213258586674860917846718562460637037382818702366579947406010946360747854680952387959772070039913576815597694528388841687790746005813500302934777584480024522992302677644726664327071095254898289924832340623019279218412045511155560608831149244989391480382391131114318991850525116625817523070681434078263454089259934023904010285693887972123630690020893141183991848867242463911419997016181601982710158014107434466180875407431202212843134994359577778772862728219142111210711142315519807752652985377220757134103423647795072585708846858445432032221986912374124001016384349864764898240015992371930702221637505019600324303169847468087671441264487287408790346130177296794101732910669692799364099123301273740065302260677735502962239049601129812376221996990234917865732052481137777554242129327047559445114050679574378122308963402355082246749639356982380648451278050653322425054920918170795499326740346697549466298082605611185379938194429467140858548580502119637365756641893021084504410984498401654493568156146944241198756572736168774008396871535733545044402738685556241783092419255434171985988415428583588427770849981567725882382163764302517815311498952554952760946544703860207305253355338449912710624857381020964823214929847183128578318413405111863390955707101072898171450147729545872722838158656154465344721769804116139157574222073277685409107261164930917231583108973551718938623783735484550872357261091346097677206022612642874428900440320342106209818486381846197911233211863583205061732992653600900592208719781544348568033317567823688494767505398012315891104024008806130289026098692261429797608779279150258756963194041115619877701082101487762938826601562900410181403648841958340998491029402890032456208022392473380269598613608321246095548796244861165443346168036079210182828734507203820436632736625717555155769678535429584887946667857070189601051022956146421550406626086160931399368452473733975004511510087507223795779958431845963864333687088957541025554091293507289118611588657154836036997528259670948976228389221637983005425835168581652598358386760553684712090510203025607543686985233942172030231613092767213023561040052784308691549201850054382869035539691509931276457846545872754139592719338161945844945081322161238986086220843316068584692510728256810472327847018081154971208004403352537956655823944942231677075536568470597048307784915957448749166209621019517743562654122364166314608495454032936866314613680928664173867838732982711851949162540756367009418690541625071677639293610995385567664381459750605726638537343809565903079875074944785531147013283923888352240627928774824143652257228044409475808045524971325010782624591144461976546228842820467877837197836651543032820090367379139563161076955692942863320843831821505128576743831591588161133184614346157532854806773504988939033234740348431679054909378737926441825270367749850098150499111356049634284163737057854430095179941257588534336743814557891634002253906713767658958702365891668979835976465813611030892604611907343372460251660460190254099158036237971870828184270006203374074973761909162048468450080842231329071377215265813371152309167315019839218848400157733266593794242372234113868206979864090947901282602986540256372597737766231370175981600894318579852063540642429234872531369536040332940856428093770615217696274891576147194459287306016806866067854766230640987081064656130871185165884224229128387682870088000454809786432233078778251280860499527593140259746404211928063158970216742875659262131288176141026962598580163495483496349396882691077683751809506842874349693260817735755556936160989780402504630402192430169631316710862032598044925895879898764570358001503277963458426827432278287537495343099676909228260859098504137052286801302605578881100088512610501540796875280507577633942996769362937261103991979018427359282249669664322892369528819695174050534665795319431734100871840303876514555805342096478535092114823579994494371254845348371123843788895778706980274791837241933859331519278977238653817988164823353418908175796328032106548400596317911587882606144277800609019065450065055093636173078985100704959191465811467481057336239460657898236039575974880140747583245419123559541636779684401322546097109543347666082473304048826913852138574848640166896293238216830971944629225193397450525267024389087849474371602094024037629725132891103448980381144562245304882062909499249972426141503720976613364463188345295356974467616315357212889626270552703564473332458679207849886431527677000777338273732323382812492951960189256896941325433635945223594545929389281663533493550419769172669449494224798386086230287102096950191530158052428485422628371189674784873545765803954484355495886374260049460656110376520588466614190659448290567685652010390324979690652792154424804574849526672457443606972084961463070839886225444585142642315445006680844645315318134642187999990659088242172125529097460623283249969944555731035903926991757925942766712092848437641512696416484028719720231514395423024307093501042362822832987813751375278735878766556988363063099083030030046780665070623776882855345893934825392145604759981415239540775941920256544796027963063989564777814475978944120824453498087521961566215589320528460312071296923513924934586620865616016727307424690613762487798211257758003606978742912142087965042246376778912707322219672138543823120302113842152842563552654398005458512203403984899422962987009274584783534618522231829444222305113382373629151303454399772830085663128851638771699446138671881369217659388504997439559772760241569961883111194899495449427082490265498793865027637771050742925485958743522278621055752038073852137476225555937681978033213198197281130469022359369889872448997746940265172906833197416870344954079264983681079079728599614881640494037244717284382702583903871500219409550158144735588973073915913460743011404581103642581719937142209440666260805758292618414377146182828152840767889876699887678338356537930145790400470425338861665379278161148019738205896967490166644620575466493175677928706920952776995496235950550938281255693923101890535396650108760784379995357396027230250824703685269350573812515050552349677077521005167373936183081276980420276156959120921936373177091109920722274005263096032729105062793518929778009856891835786601561841058356240714660183484243059127293321709588928043354170980206130188326768052218187877993414101931618099429426603418899851001770236814831006184986616163035249237293935359219335916797857339528241561744115614357682677186249944589266858989929448074643732125109717367770960285970985629937542012885358795748525638092081368524665151606274821462879951955938542869924724197486564958931940921069916175538788012997326899529524673301394978208235758313280182353539425770386768541976603238730506443878595627324268760640721805435342328884285880522241182413631274647393236060005475658419889391606896020649846831243278067173050310398497169020091254991632466776286276726512327656023364303318487129937047448839587553047864821857625740253373657115467744208277502097412715780580527234810178296809356080267209488765150998638350524149113122340729454709447856292424655800943645459049506767635607410456375955393958451799767134258478157381468327661399654879513316521547086973377050122680714949049694772296202690626315507740393104572981604410928674473661312739839222062945887601587450062593057952405077322149324440210960776622469975545009421415168402987171348994360152773226120466119803787330846467687705988291071505486665278557680879139011379064935451982508048298983412699037244836454873731972623179206799546691842606110536124632664269478003475728510521788602852162001869734197013447689194231691236873383698739720856225133704308123781253372820972030296848594076249853500270623968625127847843719943991476767713922996133332431808978507672263320603945033139514851517677147600394428548430412326784112406628764853131690142399732911751718576242848934613279215896208251395116219803244921625131020931168255722047187730211740486158680039683309577717902974616406498334527364331484571796771589493461634266991780611338948871222604508749573935134239744205224823840666153564386789051497578673265137170131722919256105443331997471994220335624158087761911335703711778262780927126126013304089189902920600477827590312151980094992330907027471435072621982284881898175176286205752507692864470772953520671979398247474668401760185583790902075918927836973812489733788174713277523301336538859015225140470332168415835724480411647164788113373861626200778059707830594249058301286166791506353575347596364108332899488505024557310620573227775830881189403352239926291977856746171320022554172548120389049777032655215231330291218875305604037686142113351098658030573717896366606097860256640861346351618709129245901720419474646197428311590539837777720069294326823411092299719977414705580968043708219336871632971688342232382223898299725144971658875011297858689948368249133713981690726397596212779112911354330592652724252140968133478329311205212873720592662795075572010616714045594490212599794522327879373169325366188604324484396269061510270780130580210112636430295918799157317474243495396189479446704530005436663112306930155475597122619292450502874298633622944097036132476283738891671810418014194354680630058561923751544743294847573135470352583448960545826742004916692789565321931044729976758831161431648295911726103679653623217181795982158384522878992988822708100604775569963370811844304811623581723568726326978177348629472262632070795525043315444393112241126043200110549991388168585344465318224829805221369848213191772379379815127571817700617248816028157455081589864922608170888844634289803998770779659102424459367898735444066328905026143647053748886625817227954573113663173241677178215790080188554929255418987535223237438176347785801973036868002889669487562128434520720452998521506517839971399001987170213581094462947596501012136473859719840625904328236191050692436156150534084959872365253107552451435346886825144863299498343913162961047328231291434116355471418724761096737146561296321653232458285759039454103035824017855067425463113067185073411356318925650040693595741761690056085860308646881633045221174107319657587349369523991230000471353887202647129155002172558627438668344649454991394365289054396400397951470754404889273720709507850328978676473547374765302972361346296524261514035691314470061048282069577661189863049627546105004802139879324931855258139048749209743090638142281904747194855770217285832191441245259474941979234157384666406710485793670296016816958951810146772788722244798289805905149464858535991570926850704986687245496346472448314618164573971148174787094089515197819440855893986086372171354357113574859602586489470856441093362609078454920438620264725921498291275888559037145150709887754662212479402642704407262858059563295615307121792999767828038431617771319244266653129815245647327518537357714001741285506500646532867370844683527289217685805531348176236383222367994762532058313798244275366636703092068538874385646647746368131768197077895678251179971787267814167354977821058602070129507253636486178946510014676307014199582736707255116838479522440466849495587362288455608583307482088712106617568896456905100744236539355074145512264432045869402054805451831644581088342992463166941394431920593028740412062689437794216016921764422012731247042956766357168249447505219274085484471883468752992390555560081633656439442991206024601895790269036455201610176478556988690653690891124451965057960747183099826278507093374743027914562790389208681149391137982913475595120342137290682119241834530178026423908355674230246634901707954329237836918553403464201595349019680409862256214693135085997523200374917681603481297055671672342088548052867648252690733748605569273217650243465776666971665856381356739812429765778599569516266105190742483243355559631937908961976595660591406049558406883558447406767783462835850359522563432235734391989415171363414321780173970092648348954934990659512328859990411986195566198157801313677392094232280729936187062267598114259049825932506161213884437776767318674755868633548707808623466447103197949145992410226312631474899067354139199370161005732568005791827270094199559908629249258854249166744762762290034855817810988588604039341015603651131246276440481917060919953593887282104112939144099600126191977891273198770141267092551216239661270538693540896239560747001247865336557691935653656960030995536408751066395484289127702351819596297804143434759668000385376889103731127452414195017422608299242886095163767383051268598190823015642039707786945598232148072659996123202921647959222539075986209609334374257717287697722687507460887479460674609807605886598694188985998262927702261970354184695177316758064292477511840996469058361704505136202179667307393296960655119382335978526143542349922388087756067427249359338669310392080415801597093019593040122716432802031695098140436388712911875308887848519464096954585761801721706773939418890924938516517941232943564593273616694593306515830456860451002017440127485202832682369673920587496338450696701651611282156776664699909112757974640815943129473561891556946191447251546974553995148444301203172771367920676669564413259310915244113217849978505534703790082400176631419703904158168003554500035893606688681985110464874604049615207603171524004936015119905774418093347436025232698406373702093805967005175846445271362039130767132613992116560841995585546403744854965828972972808551366038743361399869510428714762700266272737008423939203516676766673092377749612112458388999299223009273158536107428023408207286685390331966509618413549500200615954781194947957940133511694041741691085241844954638581138803782561505134956656781436568036039207371370830323808232973661705988179017120264164062543666143238485222018357912875683209482992256020551831451701230511373084469496557533890351390517362154406057925304250060999783224706067869884180352853074688963375281244466210724691647731651300849054874542705480547183793799041471934806404903678237518376898481583707183726235111664731838911881316098673691326964382700470089076940683667074325736181950661739798518486954233407652908012702167773439884472306058030848909374755400759192959905016050591824909255238398985882795972183871694147466266415445880836617693334323758256048579079734322694333974628716878903500250270859540814071747910280883911393804622963114729111386192258458472591615248968231143377415004317287190226528578735524201926046926673573791775412731307512190288984749133218119965879534643841815418801154412364736540986552124999697779608776419891995054404472617282091706237393677694453053910070337011030574477271875605107616903793070660012873726275195020042179377094436784772409039440677307524528308659463336653937395066824289156118445871361422391905285096815378939411860995420665800733939377426660505809880115124038285880101320384227800420395593891466517802898183869305044042341295724401219290357005188571057342309239623120203664701101673062413171723211176402500544604272379301749387019094603365591850292992604864663129340092792990770155709792775544283638340467855244891731848835772995760476467874473451793728852452991122327980654644600479121717854557476702474516775128203752991329011259550786365904082660264517789287550661517137543703238625739763324826155524031672561029244226886061434999359913950317076177203870954272096828610770702776108536332336633251111139348351783060583023697561702551080057385350676963705349882747014600279152079833837330107787904225691594177289650351525860273673767070465308549273620869396701060502360052216747887104135117483183449147629539818760761991080576004583440643868719948821828697110830110448717832897883977366835732199894226936148554503306271854622289578506916295896510191823534115814904929720818325624987008267853726946140768874166015496973044597294599008588585689737414345277413114176067550061746369812780500934760072457697367436678757864232313750113050400166088467022234619016899687438994628211396485691686451422112069561212169965415286235036192610614553050889778471529116897430732224748949831606463900517740245692646432246691317607097097132562014374348904562254956441235857205767146397820537248559409989617919600733925380854905423385469173110658419542551381523072945501212566010591714120655554892592849897072894264135593895686620717079815965545596141763371459136782182665592296664839188295621205420594089452069673066332536990701890101866662434941757457666066784767974465298209084236351010815782554994265694825815724535277670798301140603466757144868955896168357984757055541161529082770967442694179181013294419495867944258474809684521603343685777149119984184022370651910425120111443220745810119413148767044351022312318107610480657431331579067480344247849699313363820916132005309803699003832893664879041906787126915197712044268067655549051583236853491683566880274383473975305185436888020570367092398329801016241794080758867864271562179133677173084253054186812405984588096177263301849519944944751979617045998887715249419796048670187756189156573017370765111607508623418000223632616200828245471957800892001066401299176783470002135504172406596007511480204459879855351286468648122872653504137652903522599733862239223334264542945488591427879990882058495294571699585279837299180175986307159203145011218892368512474638820854127940316308495776344301404814247194429688492129995782606277258267627721763904464510516638547049400603637631086831092579762911196329262502928663500151750590186222841446329219456615309278800424323193574806491005065343223507601698337861557223455367036238439369815308703256966873039307349164517846405398918270408952461411786113095068800264177953840081994801381256352214693513003056883660217844008310564549019947728222117142134740453193902664624577436493191143814519265748477664982052282203446785396827534261099562118702189624556381591100460704270719054697613202085589245042653369149214380172705988995582086521818034484296247276449325572350408157624454797337330685091897164041477065995710780773945268400568678715944885602667309643777458534276575530866317213879958426393144304986956754784293299168672920425483894321174251277244280390491035221994341435834676271745324286631845387252937880941910309969244953787586753513490304546895425468642669526417026063460831284508077077586553427770527505578286467977649280352354242710587996538787513553812959995936768209468240130527165998926298674088341370963974440015476732552601305084484526868546426815130499619540896467410978084970584455543081518932921158308014639310446948649007682917543331157310647394244522332126935592968536733183487088614421847439587725169480786545235605494560391245547837566061378739316328958960954509706041524856504315590779550057218579854250352782402629282483511931817202245002795783787110191672778385230148219099230692416255572975997579899430776781877541249068555289761795467823604741644604594260087832641398042815248689180774052326965929418030167808829416288236847801506127555148606349291223972569839503511691070685135921052340468124081619182434013380339554398651090336752999522921528200673538909799992888814415946147523394927574018030086487961629172919380365458723755177088558715293161729582982279000168646763273992413124606317050240578311383382713616998429188260715594692251394065093881601076521348908796261593737046327366778360403180018197628532002899101430212909963510311252692888010927184195985999564847214171776550518901239639788988744531004727103241785349740367505890269080368245552193328272153328577632721569969786658444024626056842581160601943091728157573461628674339244021181640627735675610045434054814358523079155527403013930725418669461361922410711871852541087016609045727868868478779829592606029534934030278340917137758907719058762445487385593886266667165751302048958060794415125192405692506553024606013442436032477772854440209946198672254556728921288422592434177247263111791061533976518570576214428452149890100989755706051621422885754251625064842208777266005724110599551693020564152314093936112248563896966867145055151627432730079651030038706012856923157800825781367440503976429953127931673839675413387213979374352001431344345113139116229514815572475398119362038349710067736351550759465511861804776583626607872072288962240626157907857265789189347670482573089002823405310556783195758619547110804487983861986442004333860518355590954029006580778376401046546846422497038287582724393968536995971922180857232185728992416163327976822189499089798422234687158158004613492348562973980476049368559036337300749470825580255017711380750612155615626318499528355676913443868036113307101396245367163034806668706197707952708923376537928331437959023149358201338929894575782325074536514153579990852100101291770553088093808424758110757640932512806868276665147533321984965367218330396363332372564098902845324894325959577932296059891363756177355970424104554513756542320524359529391294694540662708308139756797508778004364317276333741710754797403076542312159399496867921115099105700465411224198437259349159993608297072778387039392767488091458458469243934284589208909217392840894793052425482933730898949387884602885872239797424169553297251712815678197552882873868939038046130391447705227268512318245792429709659898776984767913680506920161250493981367454490784953097945143349243908510180315178877671337492145502228030733005430540607700089822986065857512172684255230961014263609193448763153397141475590958120194773458841887845438826110908744060583565083991413656992653345873637227536746139856698891140469635921936622455805782710564770359067146550020185747595271193320997682237855548596021762325393498402570173382419872484653568153366424697914742078752153523645923929390918459969433969939907594119260494914284982637994742783581096060664713816455525391202481282981134017802060229440406429927742730692445061240261743280466675868938201052333001744495650289790623554810472931704809058195262572128775062057463328332311858157802520860007660412961694596532469564486958267571593387670539997802337696758879360607555708817193604453184542241283407445207629136155708496730716538546536455902192069234980165872133782374746388159280455649377712725468209366779410222304094108366036503260896329877581924908556158227848326134768867002565764374209613987786968040419900803422636275255592381715498854261474548752865685651907564968063913174532086686555717167562408133066431320685830162708493525728422914181168699309456488259586826207406545220654748031313328084300471934053647377071474338344814897362909088472002663996695296313077391580124578931266128557383364640618849271724208056782483308967955789206379921430822440898122274451260140755219935578260455329080256864551271006880692726441119814988732830647578349046304616760702392190393701656878106144737874675364610804943983123673742547016594242319772556566232007039735375976982644125801124607029057324141183590099209562164482544427678333687121826239280895622039785185130402131930204598614828329550637011720208967468417750603548183275943964527559353560431760194759515788667478226285671147407726639265697655087294261294647440088302249996630680557124530879081009667792640197628321120832188844495147017616500501391097667976442243175456291666188262250347402974092884939348612993560706426978194825532015042363450730158996406195202959575087178905122212252011409548857843980686843129424003686555062023387180941778127963397936967974739789025679546069585799776133752681038216787414998152894837182346705699162522574068515909962856116865439567721597849268300257079891494898165798265212739418906859448366365049619242415593015680179289642922468110972178592912614433513478481250477990875874058914478359015900371374125875710993057373520326266834602090912547387474148947288049349802907372671893063345126918899259860764764181542686836395859378571936537514627695615422758225728102665033981747064838691093911939759500218485053078202053469750392369962682560887163571855630734402597548495005434115202870520071682516396090126837514598904821029496682232686734290581425005232996529676813356675548288956734684831391449617800161891288470606854613242823250940261979088215047137873697787349521411792237822041280574165047623060150269992601892971952515585706256590597221643455150068436393167523526748950707022515937296029565044589356639793922523840398938788640911373252437119139956563284318922360495692693582271439492453050705702291240162972197296793342491030258252505819095216448592632096906930441017966643646343284233483973561504276913121464913016574483496957765388179612303256284008693165486438275048288236914057417298204348863731297829507566653688868431393107657732737327309613901123477036488404313966481108283378684029251116665904792690172365935854793875487880765298015431820029228619920451965132524237688171585970281671264261890402231842182941346705891997311898952255545064129305183140193708240779229216459656981793407990455801402166148026903256527619497878028022983218109090817564707086409553894138332763212243304009278375602357921710377447906183928652533252664241596436918880062472306323875487000127965042666780274603985302790999451164527851737701602694559466244863560095801631560518683689386405365489493275757949640862697572215585153469671714181060879374157054558003672316156272966211716748347294256021714821822579122171656770417616697549644657313907097087743397555036446453841920953471353539947322282403828671916183128090274927613706327930853778818339130148533402603332349700463611490671437012303954656443666130965647231949303286256525743676928878799822597745521962790805322973625709048738939548484450438412042134212596283219685869158449163888376858872370666949879493858092632277423999580460515561476097003269687412501746247394854957752936638920470839226393407555980288199993388170976027589340150473575581560588322664756617335304805847056163508869054499971330474920331553626554891747365213251869025794760273226097621498776035414660481349914518477326048853353160669577689934484299423915096749651810419629666661061801737832626267905018040052388105726944005669586673868528284245058304471041364033790921405361975204201966472202561124291995428126296048790798636994511832730092823086513687950041198275458334653877104474981911270053437713630290081154726699289520098452077306126612973559767861231421583531566141352288545047352535526229892562182740612329765943063081786311543618517166202190261260499147623773809614122226885049503958003896272433780176866645972815875183826387969122895687236535292714260228483104652277967135167126593397913103471331452916712108815510143008424296444823493205282338465909775566359310935997402323116260874433129932746836501426912120349819500735769264309954858885618571114137775422552341958294179005545777793806570548915736252158268789368576001414523476553618014232075060258356198783635264985994482789561651960969378853804953195874322142858099671950891457724456910511837379797877734324358222582292660909912903196832501487643331929834581302868142422061178457151816022988938999254646290878898774566281514916502678700025116228929540749079399917160292519754751952004216628562083948767176009166693050504969833265871655825705498790951846897718742871335155351815482684303631089671829207653991914110492751563422470273800313974238246461574041149564413177748993442223325529511225607373603571375133507808038264078220271332665924390035775582346364927190002133996028134438446934138233449809421453427314439894109550543253969155240696944549975985979597948074306359794640794803861820085333755658466863685701771469900435216869613558322096188406871905564585207094569426339257287634124627902552623899136943911120927591071037764549879451815472085050428665014398963023285516386927061573759733296533048702748315134943732695758546666498768590090804844171291161905480410684571958776921170981702066105280293062190067810684477544815051319263993328096741582959690510658754287215378330922336149119924005869051204222390196808698255132467577384490258928351119243421226407380717864834351525790329850469791062650260298923312180439385614310003180482438173326723302407068703427588897343230054640507075027738610198175925616792641384981252640538170736138020674730332431642735365708135151396053124291919744238410276817228761317527910603897669168485795210151864519727490588334171415345876398222866202695646756385020835564223846958394555464229746904545466261614822971761438859288649353318796631915686880770318065858717947690256996879618000318509359536787815542437085997590248683575842782563659234730333412208165639535358517523982893943798898551625331236637814827310020520373978222734149365374702429905429482314521203640317917344241736237801130760010938701654240279494312029272753251177180878214378429766442268700196371610627126087747102400566706659596715800093022804639736897522296871792025419054292401992027818031857759384041708765737408532104305082711623868356839466056184763122558269169024539877291466940656216522968799563288080845574997873780910594925828041892358535830581726797088875303081801880227677767139639211009627922925148370340069495865088589458724272053343946022783818526176377570219784481187490646926790266499458585114379862298881953618173705321611224772570157280506601630354752099526979554916931134378550901772446759011145782188145870430058166993337497734557068241485551034720546176360760922723997582533699964004170964481234365561220802290019558905182827178322446554412094306200461814851992866302089862836438706584594428812246763352456182551794202299252907850561310873302631829675729704754308247712302144234793556513559319966683726085626556149045108807586669655019289371134556834121716380370079580335465537355710091864862247942565793220958103734695840541257617034859157842325716592798252104251129417061359508640562059124931478588157724070225811924511068649405374665360885577184498578463988527786837044027919440579481523654352414264257072322452335870678448425451831897741085415942519726253392356794366237619768632114404666909856409765622391800660493487446094548507222686636133680544539651154107084497626386559118274058122218324527114754178327137552577506634088535500360601322036727252664277123981986351422988457304174020451459814250572632850909627630132954593643673882795293938075987570321351659351992943062005864043052545599459734420964668995940254180063746232735995972010795652390502784045219953816296226919795593184777656779436273176322492838364576040384045744838001681862915380669677047587964387366836201698410547522513848342117887677398848220708824139288215874116034411809438525105887496885818669849626313639700568645966714553067807805770735292716293681203063171727150185090407922980942474703759383969779432413178515051164661136241936553892564382387565728175539805864635004295405258504488402430238910239153889852316984544261635001693761732536995080142132602484837784716448575537702181076049780001029246056631598479828336059466799934395399594293076732467720484255870653621768239456198907477404859714670307702101567221650727283747543593528125731413603943771265838792424340815021989645581818041573272432583146808804981595589997745289788798630985190536972149999992291848248686942370125489811168530112575289204752085535089461464762530564958834499839059332106714391827161245864336501556880000931707126424219556528218640263148501147973896782071392249777575998116844355599098027054917439297503571554139724528723403968837995633096128888667479344604535539394287970235532736482945132789500830434167919939891775216270641889760759439462969663372995072125318941982331950272376146782943793093572644953657520232588119300186261744236737873498547454138537653409714008591797854080534011991535435601037534480716745808372612077576730253538783251359029606798554981520865880754481624875990580673742159632416193543307862085900117819931777525351407734602662525272510999243430633311943786100079230896555243296768611070524550551707227610542095546768855131907980961323318839768621194574001208846021200158474755688870477145506061075687251456927755376791607190920331174072296724528945881960075915843397025363031104065332561852255066996234671735019497249466905046412095893070159700090609119401820438468734270568751161966495035827059283531511945786449823999744667584454414297158660306830902983897753353334450444750721967056298550803709842662793266108072086694956353192416007713622202775926968739830324468828998936523543502298585097909429240723237680702858677897670092977067398005306855637625139102428022691814398052021778829935073894072245723897022608913585301473725819266007775729169883497936849431310168335698804799082483153018711293220608736370893811532787205542964206912661456955427569167078313754110014554777016972148587027874644622271824786845521988981195799694289000855451535664171791511713118135477264680814342967877835090042253045207729075195234480132302105980763969774955240406515888372427785057996700370453575025902281566436825444770135594939534300516653748753222034194631443156779389664669043481933731283584320439393915941964433406484889744619356178691049234186654902698834631293631489252138077885237370709002310926467425423756368070686937767928286983176317689420056839072964891143782206862330642662123333479683691494633317695770891301091333942201453802438413462194161808889040938286465056481457302601914017995401375961538220818290064925107022308180585308978421014615634554037246338926078257673377573627221864465156906889519284168962726276741205352910273258619010826994428885238251752839486582943917669919481472101119175651783202332107276618419447098266598391492982562380429464810593338821023217567632414384461852301260679790348118007253337860846229303217080556029884949825929676819862158141697442829798059514005600122914195127571392870093942567450656339640664461050426057067355476082332520198513283666545661689980052517955420230062253532564738452160959448642386947357612164661071542274140556022763575640093050320273370365303920258575410202069171932429674369341488372237213596026853873022198284102394072756122393356221168374100171762731223961342335183375393099913299267593681911934704322672551106157662079001072853560706582665279040303915746387409778184076391360481851422330004759719367479077705203330341728852284752270578338764256483001654210240429769222200366217851229557174861821078859572878204538055090834376351281044407337645251491958227966668867886536051271762547812550989615258304682877522505268258938123575464758552705775583981779054170877598336839810136071694157542053952033950224449645418723811200472074206196877077118922627783064746760300377696939698399944092241914601251992134167122539526381173376189367315795763242405776997775766116390846031608143618705532807534825560107960285184246624174699063819531468919780741077144216715292001979222761547651602283169018036615073055653821945383098654161330705076151962568244935985677759050935817667318518740483494544849404094427010264990615977797145798350612403436347049379415092206530848512460788853782571166103018163058720709691424162312318403002502963922569935000166656294860293598712238397399119335103423970895651962175514986910619112211525669203545807404844675489526122751604774951931592836278324095384303231032803138163035693920130384213183807538634701395588267301273359946906378224761505492153789146046930628391801417323671444199672771106664699785193907512154149314743354265644606062019760094750167003607083189052183655442389976586067693366901588368351997760337445982409016498277615448053590397881208109992336083548157471043308700899197807434653446844246175588405666801628095430424121763674248438583351892393768641525361960590102303945621701947224244949508998220604057842971623142061014220165334523802400786618181471891062146769521239586382919450538716798073082507413720455462435651009262157478034330227919082756616388149142708387851735246629626245587581074414311454075658179884666835171393571633499216568471812372960889361272908775367479657594770173223629332357803944224709054113875904962899104839537790194264778760294595494729394598932123768778477958770217486491445560087808402701789337105641312234601702311174333934948131683895175368762682381451917911499557285296715034757475231554273562660129744338697809431594837559263737472269703745983025493927766683649680547906624897789674743776387707540591897742882230503953821139389540074005012755001927439430310684638653567934175118698694038670834824955236739162590044330365545817331294243001553833655100491459883951251475215353992429283984614941741902178031364819176525717637202904976495046521865285288863858963554905674180551158599751761087289141710368785007391336116260159992386114972545489775867391709909200907279812427195016268569751591884052108248109576380000716486233997713943497843431304162229899089343800211457942321974689723084826963987709795590328991077978780945169735492104618303676664368960861735181803634943010927111372104468654483255623365031019437724498058472213431264064288329442443630312595856503073342645900826125146355050225621268907192803148331116251855037202680181450702532304764536572991886890259832365993453929824717651482337293632004016568199832550820930884779061614184055743919576315238086632262243314251550518721936325866380966866946900648123753471990220809096636010638004695825249344228651221150728685990542942630014732759626807541008611354013301593804972908467146139372976453616006897356577009102071216754150214861086833281230032296969839386353430402725738026997463621789549064195394114015661337077663475934232934031223147687741643509642452005701496013238471722004257985830481279620801722453011953770869071875106181420864561887960437312610470480641566107452174216479211057353465662388938996723302419933564374361303599054741636394284127153786210492665714601585969194228388272015929183289495489724026588920159010581660987126354373917981348267082835570224876129350120855284605243360082307092137492939523945540714749150376340360941075948758924239829451837424184989359625674343349918129480470833960838902907755395217575058613257739277555520677901777586759318637723648044369703993756410282883224412959059764008615131000071329471987989406440484775519751695968190119513171692237743264799660836232452512165068372532252235393753256897711810199805002190555851236654656524556755427305112986543669256128592414912591049884911300295658288908094155876219310279225830150337607152296341365447878839381465405809822509683793169328098036900469532504038552860887343780770034743057785850213308826491093016773382086844412856986569922857659296293126105177878148537638194314002620902701985633864098899203902041800147310548926511719630759739809153478112797536900958945256344479429759694807695802560934790793682948853813098979299251818285189920045578374612048311315287237308769101801590206455446304281541570650212658625052264293521675286759372135230909300425754548123722900728701846758445474890079634841707343907347823187197656684957048708862004300903801545364197847034058998596577468858744589464654987907456545546775467551387993384496180102183235306452528762307724364622010668711451139645164004127509581690839926822158428266445581022047322483232979815612771490961145190692208190095665785933582195482729731240442505363366784636609842603127940585691034432104826194638998506508131853547245352956010386238888768810001594829718377892739972223120779230244942887343034800012875167294987657829766535703188471205491235770840139399630610100834729380934054019991134973725520422572814691997415910400030447765866034021235748449110605555304332671562027244183441388018908128540529973928216288435035134936105128738948039085578388758403567544491780332733601905262492564861243034215176965011393728822256501072640666853280670276107704054707906173715685280727314945073140868856614087329032538302787742754581541553457458858893126755337859625310981960568436726186708194153133023848899111617449972515208669257832335136449567057457758938669605173189166519593535039082128827010175291504487674956120911424341054586870132551980613175419446129873232563365644628004229632628236598315093215757716191173268878234044030346324263298820761893651191202213419822528440586896463143460805183243792469248362792254128056539752604256576587371268574403411531839704598525237887525096695921910980672916872504256434945202150534568998891516608150220298383908187340705877061522288317587270115995664176495998587352320992379947180303070208112629689107836144531916801374798177495135435955604033742540592876491903950718598916909959109356966657540542727933935342291734072207826574956534021849651113161541080920930953222280679878158345400166122196375710846514569083850566916130341230095340409195838220304381069594281665271080202001049614351405249449738744524184814096200940806793580435000559486448474406174598908350178379634105857912958655881387471010996776687610602643620067543996027033259894527099171891967619730060190881058424343949090564774500148351138955596546890910092175779695740131322745636334078458924793107707389946428221276308932935077343244831102520178533974412320057953602206666122727385038711527720279627900332346545185231728413110711353474958887546352298227028859594079092187023770093693637334019709590617633835592300153995388181184451627071710334782506839795935874989463793617953671581972899992750209100764558033616085772904891167917296822675355685991663456278771052692377353405512312397156787720754281893991961491724384037242983211502678722126453272291433845564508798057443529499462399779794174246400818434724821870247767575386876725113177478832486981934525042198603138920372825808153190346729761112923020219639715316309642800992549017973480839491759244308957006027297958291180068284924391342994490373105074811926416251793366743367994690584129804445946125624614045127959762143085419786189619361967332294654071132563997434415228765223726957070814590740121983561388535197467904524428870862758471882222959492087259713878178125813842962580704753630231017570625361861495850841394861725650628445368552482584732988877934354607844573210469116926001766285482236348581538490668246902265236047257372926853479431967236023245448346604367617701262657722167184800877505231218259888644323781668409140465182441272970976805279752806122265963244926787398753001524678889881570592474166768999769829523075588128162615143881163793707030530273935330738344520488686178760619787880810202898063818157394784092865904810403707108271037441230517497031090994579577100883831752333002826692862030205997247517517015114669570013105652223532003004209004607594611223737167213639815228655088343958441170513604865656373581103209567094040304261365313661246876560282501002618707777136794756734163813975412958463312803546601314762814505449128467563771798610582432948201574100627771927780394353045735427540684812782209812124645074341141299181761717333308839145064760515040002999999331328912009437203884760837000463664205079830345958990490871726008814966989185218573567601187415829971957491034765157873082718204807121894775296941316593051322187636489223400595554274616636893844242459530516761455565782901590115190383345102477191922242951667609613925446131965272403498752842757667805388096788715637137091928787151984943120491504821418094154617578443411422429954080622204043360618122497523894740814368168125933752675608419665737100134966027954202423422944805210996135288759051778082534802277748052439783636630352621478320099080089013880569472023990945907190650122508098550353660354031811576443014345519116049836939087902221985630398755327739099265497017973869651403759810996373713673830791258096372697059716225153503398283159811945071510797474398783175838048806785048787323870411946350432741677583510334192698437244273626715687050852453838701251462617255797000054757266533287949850709933682569614328381938152501288010959015998487565757648033720770308021197039436864286793407773664183666123273399875049777303164429872727913615586276880113951754815594751637753667697179053210112985696698140461374113442419494817348215343268615091993382965729166738558709865281021671235991145763880016252618791959055048913829608392687771052595092032440079645227180367288213380795392654353149592231728788397307041380705695120165699135284245376771596961645751554482074970651763055698290286668570525035388228065809376232385194549640632054528224501416072749345079465930534586109131991755090139782405346393092192184724164946503970839984536521951949126295546098438827836374620699838262020426374186710491146896818810488831791769288426345442212593464392529925103508096733610439330451621662100091058681390966612215803118658846208146546682855586020661931957552117406773852962783365337202164324196996990256324722139699259810587493110760061901712840037564400604091926053771316332282517966402388637270021967350342428518500105814522307261170762185693760972363970402581218091637558584746200408980202530614775975373067413530958481211449979067802911590615492780859246437424494918280573297839482844869123039149674926331683752052129809922857752732973104155175480751878601386611993420818971263534939485796912746129878692430806502926115111126074866894838666896926834650091658325207437266039846750351231909271610119839736057172677476841569378631576503074066328131063817694081754973667512754061114674067292410346912169444634028081957015322689625714441787861928993112575442612511361527505413928401648361256997264375495433212768524286434186236813345047276347235942428640728015704699639296178013100433032908002720843993936794764173563035559935700595216212631704533993519246227981184198751505066164018315050428061729166701414619676967579718863170718078547606581896323970068146649095469641418156067809949590185505869009550039197416108240350252309616504075607898262051286209863149194113172709883849551550200589270148971159706220397774645669075994704569654348758872820489048276959597889774973789707510882685899227155648447490276720716007470338877593906846699566523340266951756790712392433122992550954024646065061675594654355887863644324422468866772254572044804850632424413604975346263001616978206292078554898059715568800508793958542229241877058073422246683956603883033631039581772746875624726856377671525543416057596349087204705496407038871155330707019542199811923262264334322021517024256690425748192436493213601090978887533389218303452821704448333476563108699486548119578680284252223892956751449470355889038999895465582302602866379616209582745484367870982975290173011943754863547062863200301052210208276082862392336077946307771439342980773718943691845713348520183075418289636304671974622326364309021250479870455838693162779259289200786062894390968576742127511463578355378989658655272757598861096291869116611994693059420313212154589606320540368138485592707402349830738146604494338862615219145079436118337050398353332004277603490019423246893039730994829427957856143719618717460186774204923188794347817848229527489174282928398883105331476842055631031227231545771424659895524082345466814957222332050965259201181009217666586858395708959665332813924609864573485886470837038687336421406288682858497018550671249282341608154839014771332003682752688756082574513589720822268174241603454944870306299881963432588522484090843757440802257711117368114088276927632225136024581775034097633619510889804324260321275344500631593262137258677444444202357424992555431676881372756318814191449250294610200797803524675244241906602729717187088405173881180060088673023437199782116994090339861290052396616552845869988684058860451790117689743801378885397786046330159395129436344470766651565723260899865483526864824834409416977696173215472987486140899080415233096587222934876611535964948992924282660546286760875021845429684314241872493134956561163833229379255686854914447919961230495501453701107781509734978671872309933818226022097116086825739222635266554902819900272133018655080823619040563073640295488846642047451860683830347790285892954441157265713429011292232645056010859963827162030722343332695865840976315079620635404602831346919745811907244089417258228594445822115008056088124631997397069437350597770090407549440594544333285463446725320335109683957127645545564859827181577789288057236187907242433257830403729031955894764055242750058198375650206966862903770837586893261730352794996206715581151550218224146675264916646393210971746210713822229652623015948104765216344994997523180369915817692095523344097751803371932994626537031449797058847537248169677248842768458684757285039252236752349223931435360087240796812691254839831189759477365018892205259562093004864244297763062733190026765333777871854419995544670512713865914596474277508093232814081525998594580095999342393709267865433388404774660912272730539652448101325117901906787793771534701269081512686196201191697376618593372385289391725149264417679376524500516573956881561250770595400155236081843774940766648203712930933653908812473384039325224734575567197528832659759268854637737358851348942535987545423989056323296173536689855286064108229733907372065052155343662882578795302691910730452617554199851167240521842697090389523316399247500919324924108731734830202303914663005637285081767016556768705507630652387474577079028268259162378402111345257304435964615207016763611678031375835164117162431342714116619712726024682386384837822253592072143836080555603837755676379685382040613269878630894620589146708712540735467191720100754641969425793492705336830443282306978563051175817721988378778874541637280055149277490633654323514621468051367478062329442146295587527841805828106318118870446612955260761102307216401807104140148326467931934300903092297454001662367322108545024080654431080682985567859591059614047586709196985493890346229155868713215819602595762563397783872969829364995652027624193817201543401535167984189876256863491968980672219763382945802136014701186713658441884650791214824897382878368410903059203274989966193489802271050504472681439046821083398763238363922108297182519993470710837113923775117042122411157463410817598798136259969591245384359814226429720041244022404407708846342670222160455019430997782629534551654476213912518472318640907441080648207610313827931598572838124234535728406711575094430506465733890024828935125852488239208597963276964249741485636650968025294541014032379787903618238012363083221654861335008014578523138616241418685343465808883490359767157316755514625456144662113749223712722809578217472687127088580257586128322484112536268868973167876740309966109443063835690725376368389933904581257854670932067930661648892952721570451044420262947078915780334534502012357054870403201614787429746649292367193123656512101257170975343774063424372215834715124187047284856676015112748617697187016483083296070700586039041124355364217806946398628865578428931536951249802118059519773553037235786840708225525777369032470715370743097572454081587028721799710229462108305811329308589453891048628166553382369415742267488535232628899342423271728909489864437555265156669063864877941828266718614420232363099429829645242183853971295814473065290486022275202577042844982386066306069415516042257515956624400936074151512468962212322159504791672850163314453538730032232993661064187178260148797429081737220665320066985605962492579805732941200966610036610421771037835564052993600623925986811982596767276187490422938824603372172946940670073502435285719337486694473892883121090056037641030058840090134822911160529445759173658033721472444305971237181509288531337741904993512683296153898621659230954606928301085067206181206899659204560537386689997367354922461203723633836375994677973285550515450022102815894405524431667822237007731757358174249257273376743485482350859963538417856246084122932247597147486694144200006336447725144720833220513780160939581115263993136469514181675084752897943121247627687529631088871097503921965323248272463690164304714333186477065952555852188381168546168772120327429678878643885098350523371623162621836448327517328171683999707986754655283026500519611248610101071781862386521347121832326132936451270558536681852719255598022504361479628331903650817309759781087638562988137765338756053731612541349760066097392420657639252966813463043830234229251206711135948056481440774326753091274222730445574958685470633962405964786715553353333319615459385259500016336673462662965052121071555885826947262009998250360380327447093569108273886823155169853370917649993200751014747516541358943513615370264322331115406545727618471509516410033812125975500896593486689037886454841061356857175101894833179490162170227937151170758877511433920676589724653276616191138847971753409732014345881128009242879815179176130923164997185745038992271387184993087709782566216036596518157401816262339744175600357721523923292055526366852813851471312540584776953148134661933147063080318525207666758339188992848739813888310645979081986012693755561554476607260589502246472661759410532026950630320264722335442725606094986887844993823981241615315983505102840608614253598090956799332041343985537487443264626424132275948298134528051106062324103374543116831699814255014280566076478074501840190165928392553087734243021545196247148484611542427116573738823557760753650111868282601616366134485748588983217600241300281696410914645069482394521074250451020210266040191677859821829137486731479352857867149845192793404205877791952219235337983784548117760542774003618151596384477808638325002530169281386501158989040209543762537624477103283389384462043053015358618178020990835660496667226918146346058910223955340270417921139313877454496474095786566915923054357586453629018586496887138038114707857435766384138269329148553518841512236547851377108218767504940136027784897974553515055781634630188740520358946781651410087259095479056390586200824846448389618425291041953042356070748888792050589661653719184941215661068104371475175909988054295341870528579394041029713991531417742219927872746221396764687835646325448409764419551354418404615579707703885418402566599661183358970458488137393332853586270473908864206748563474967866548105148093192135264049118101710113391094854149047084235556996523635584310435466024128401401849104449198002907910373818203965581331530087047267643855894137070008681743718409178587208165281995663956036300004412701724336464661781965505240025225947214263794427789849611235629331262733295011644826635174911328607953852904360316375312068407251962195879926033055120084705086021592591043673249210987534894711593225744705079787585721922529319914445229035683280268098763881934353699846055775746871127042759715294283352884894409009005022023739853173122310763013539114638672934663971142752367549714892982675873245440074953335515223220698695014657907034987534711236714545449492963135287817537432060406665970500309506783644782540544897572832036954689768683764991262489352815892016411391583244610071875378359008642104591775097605765941210797898203296632300828681809528939355861491641857365265311052590153007147610621386399472892828401060236611093179669148747456988271993210519572017179914476849808149882201558646133930535289992550189773760162137871781452073736167506666580142187554417809607353792300443142861182278330179967747082129966963063674187774837543374719819652312203002607807272739511500017993241585348347537000200891062174163428610033572912911817790837849326720822082443742590039610992830615550260897177046015216198905175733932556125678830116841623083265223325883986439488325237099102561841113383100464762939557191548678087628108742073172046403579418854919692485476290290570497323820347625698418383851672815249231874005424879904670809856249591321379681248586419365359031459251364496741176272779547537247012378491440454757306709936200668435039771151967322778106130362787773502244337042692192301668423053928943843747036564881233514887672486511044819244474712478665239367883327400810690467943432054117848378993802699628128869043394700454109167146766915512582973610019195124506824098739255662363348705289234475150923877807380635122326228132260385250624468206442163431204067764467758598795812911863762210642000981186381375926327645832295947665728754998334665193791941693779555861031080798012264677466629566330948934870339535324854790297855683523925046249051174555914566735690498831311163997130808970223158460063243662784241096285930259083486507348534542622894538552503409289439411995232946984150028135511185265798570614029374990880201484184812912131807966787649498356641062478805048728073499811877720007303068845918187172401265593321776343683454889878045715972043715125010208654509953366764887401105590636666915709297888256849308616509710879164920785721791821104235916437466198996403105300190624783238954115772130610986717832321429396131160737756571892728494105428652202792612166635260670157557771860415550015281462204110756074831277653459473762585012672177539906817714707945415243672064378452023536703856326051531370538541216368122209056089687667896631809996987043173984281176738795890973489595108885907502417704058662033624969177524823531932170888605250054384359790462832323252734106863836996948281527489302872287231927987917199911096140244901464888331582942771140306383639478087417867906393059140725934054865613540150870160436259825732586661069667814871906214164705853888297728424718450234003514160422148055784244498952930467294377022676349510004026416481899634311733496690604905072073935872114474815755746144562401542965397782629632888876940311996394830093940043819597724816092263544998961687948104138609476471039119480545110345012817302791882771078534705001878283551667189420944836676667077835495129899334458985451621121263308611622226717340923420786891364836568478558382048400269650452631678041321236028940909536265680373211776527911887242962457337728176632031907402536786956110964399717214987276102025845264978122010717384059954279488326303108807464311518358997408904275145127385526185483707538615410790800655254555291684297752505895049382154890613560690862547433638442164444305809836524629608337807219116587037341661515681867407681564452154285101321732532244830731227449688513929780200741751941129955454873509507692641056039531813403656485090050306880274304673429629338237395582032823514918858820751216414859479817986262045833574559229003181027015473943116847714663582733293249999915572203372210829428819839818395123621857037275212986038473029329493146797575737864168697443098171264124283119539881556832294914688581792759362974021409048349397105720712311105277885405376252089577471122979066491752293546839467809569478586295388633035119191662692499880684415354651222664689262387931370586000280939388451064721971968334032706252951502537582123624232738790343051619693350363138696320576160342149353418417486530346796632743575080750478763231320772998004746816802704285907785949879622427114306462529857997635869254124730155027064233199068995959338443516376116821661410913505420908627298492687968313391479187680920379720048570597062047878980844966871233018886029357223741962536173980013246872707033712399292626983586198793169416819446902999137573041470826942331044243771868706256335791906257175287086016660188957066455117894168319195569646210592179717460378052108233094632739239037512222931441943800569350658880987664875996265993249325811492635559229386998514783923361376719670549771611015579679643743200643214399445684978802758318001968287072072595019645665720579452413515981556773789910075220084335459493569370256513971456515562789644680349872573190707365657067525541146293182580161797193008099851867185670827549976357719879311145319556096447815683955429848546178093502744474256943129137295729650965856384426130665627299398152100476237256372021039355796703400786253762304352520632339034366512308700769178147770622422954209107440878448882797824231074241748259842297165747348384831950297979725439531733872872347700583665087621080248773825611569146977651404660746669416257287347961565669352684145099617776320503075871559929764585039288621092445099136205868420108357758501043447519240279729217923233510208448121459913868555522914848710510685298653481340718442103170967841071812419243136788337836143421851428517200154174460339921531110638925919959440643142266403753694600266983583437098404730652316312110032357832701726539351017832748967051233782414525760042181344314728133596902074157908055548803375128200083827080519882556568187461451242746178511629972952935164589485498307631258565249697079485119115690981542496748345286177215124712912830406972328101477918036926584054546179660626972884189745496049654574374602430006041112346725106592475885404034836080997967103237686784839242858993932983974139151696591096492503202144583074738957969241167446551615500631643171067250125990403006199227246295875456702445592373088879159379950567411857966397129694243688880287806734837910693695980546999718888512933780967219034320296696886211024682501777970446485643091431854089863854602399406171736761912768688644318839524033634238621126168019459577356751927307080646230848902465455595381744331408961355037665699549191383319912975339215495594023785001705062720997445494456686692224496201396812853530314797180736551692872005532310081692831346407956994386544256215289904772704549529953767061536867752857270035420071879769246900143204295383785472727514881089367231731232305543639625733041618856446060976819225506396307020192081524561131061990894406520416038860262038192686522010936509303908949859138955698570385116449897722957222556978087130753343604689486370485048391342129335536389962911657482321590663554459959153887287660811314388555567185537733015409721683939388456836551226709140161700700690116666233239116983200638183516305185686069585255347505789628158421600379926811892558132572381588043987293614588300333954291024976669776866000026425758214340800808806608278250371833199024836513245728486336123721785121774481986052495709052782199708522115726306914335619192994438052976270251783221451654257089898215881197766013961648989149403904555299386083104378115672656091510962003831460528462139835263186882262292640522679191888084087692557129435883959655780476867851055874071227938393206305589043593216037720456404748498307426560103848311845693636336753874352036198556753905800174766467504762689879308557839912965315394216523955601022786700801203807845579964524346541482965340708616788980216782639918962375577180963196372284593058286357899357360877187334318402305344499705123275169608268141401696310548079778825513696213787959902415756608631246762702262932298919692408038492793627058496296683037658546109785811555785483049581171251496024335722877512852302383888069709823498896761784699168454450870497389480844416174783476917344179238860739825103874596375439968183776548014218193671482578436513938354155048503458236216229787571105815495728136548237280338534099027021155977564568440415195507749174133349075587489090092852459745617367564847032741708026099968703420439434769050972040283009265867885333416889239992323361498702170978462373053971029280711205247968976014378378267679037136709191973815552690943963647054610721022991036728960281695291087606063448829348885070469885417206049410204870056834585481386327414022909741343099025026510621660518342204904710624025569672528674781756075446300005044047800623374024187551419292557519127431751524123940508235689126962332945934421182363147872685067987058553041717349186602219905443730753273224012553170179879793223631113895829300583299460965406929070886044112900415291469004690407993750365627902097179550294789991978230787618782442484593188332663944174695137719206146008465153279122076220057092239950771243068058119515185095048131789804413784620429765085935607883522783576266721318790347759702637174541105810262569655487536619700395558320604202430922586508776014561104083282406452553646947834159173639451009887096478572155612426268372656449476511242481289240304647781167784104757068896164220256990378203636051267472139332535120416459381149291822951236113201060486033410151612286674358777693201550679941697702023446541964350305246580659684075257977233872985972601311476316167256777046436815708075090703711587835809952880058248969191659586619994818706612306790276342487820725304323986135721973141763139597140720751339789872765747879442327852463313926008799283031949093043968317325899129507970864954373165237893520544828541946053861548638872659200438881825211173691368443358472062299742958127170214750801815793187384486984707678180035434279917633286439567709862197242262670219601001489398374520672896559137260192070419577992465220370948592185443743517539965620973102919317331103884323293410637790510181397522571791181034400444471591611537052743939108714386029526783581393923025908028406394904978230504675552213887275050432130665274421338078154003368230486440974112020433678243321176796534966806446435889367878133408975307277788062872638180232942558696345581595258593215380116513905233799867818660481752169887241800924545837636716288466253346726145817786327954368851724743641522731152892794471395849439487033847211608312843480007949950357858484263137815680727362916698671055031593039260901814642870732198213936289265142094962583998866317289816287109004033968695954411752378403420620225999335267255823839124808100344720366560994038196790889397885039231289303945608056882596501805293177652577674288679912039703643910318616824763163293097689051333977839783839097410818616793961921745739372056075669596689192687872118014486720416374776668237289769483365558637243704125082710296326725167706780757183740061776062418711223366795377487038613303284459993673112779194438764631716081065671197479066888242944523410977220726374113720747254746770915519488428577712598799701549560803035641259839288296240730340875078771102924963711028505939647799799496712212647089977774036789213214681582125800881582804352659493224895146122645073968866919008897925558717828436904747162746341116711332321215838407317722058573932104192717257667305559240847338172744062724275316234111203358286290914828642308407546164892196876486949413826094204042391011325875430876587266314710872292377247131396263028861013130659218712566486283633174582992595024542533309272007127234230083681633850266336083051185558595242940090980736215245019705138615732707863897800182846522109289319902022921294478457024152226813249991068722835122327672144177441845604678408074940823942915830820042349747670710886215104154681525501480138419266348157108256767397586012746267586671311693232971716199170664149664199931679225706562913028744562696534298283664228450223940648556535282386035678130045049507880367256199366248832677625777054325696330784042980424197738984689508995763316045896151381278680623376510609531780406848813343064806783601943024770809639100211711360186535071761534916180924884559010533178651153817163265603861857027087798892110634675610624796363177272312087119069289326172121118275284044814780389089307708936026517956740452211763188355303165338033095534386642061679131770799092841157986797364372071808894745278582008494462625612042919059555232766073852353749302239028656432211361434240672975807453222582670896104942363848710833936541543400015364398978972900814566209926500313139767801052285396480804350669925196351071251327938699365636709752844775499716339377084075431099552145398806786386507037544161898741988313413433628992938590685411196040618513034748564947085351436467238466368611884693196422276833980241616719516240778344240122602980137379145124649488519071620940774363289531862295079362775004552152727955845948093327818289243773694136235254004675627208831703877704938407600643436301627577334524103962867325401345092760688363359600738291118022070669154637518432944343547643485351977616524400186000328968878309955353839841195380402660919619898090068938161422658340327941280708550653929154023999521132014286723319859673975342939725447849296990428412592886059908242451703265692783710587020054942942185043346854257365248028518229443905166702159074239226028078777820878001011888724407329122898576778942785328311863100777302539254120247206141949696709173090540861084730849120840542550353281002288909534866054381330623519998030128988857052244197242397386986232599130644962616384426804683989042509545337897807138337598048480974148656716478637311109967177491250775249628312629325797504478022575896652697570489915731048564881355705571945672084611000755164929378882350426743970908259172355435854371640999596361276388168038821916167625976174516909889202462068050850354982424445486367195115714296345042864829248879729648557803419095080312034408782493899777635353800709739213660313379459083395849949287461549860535660817988637108836299321037163317492823551561244193407400485874007736360238519644477529305178035492939729521047605910722395361103556492800198658901802911003657634809576719002770508589078906690936528208603751846907581620332164510023782443829238574855651929751784575576773271428586929981227989893932814861915996932622926246786128103533323339315594215058016371540371390425637487075984770039576352305459424737249740195053110820541735085302552321932456273763865489290808956364309955856063329988873994395706378387689002826717572775041567362231902327245557227120613428264459810066684503262268234513895425794813700002620888685696132047655537327003876088477994696707141274574917550475117475689704040269333301720046841945089191400357185324898689138364316008447920115392667294332401935481227638642137639797760899943455528816661768130717109790054550210760878876053864053754419071197954481101826319215752419593433919696906015440482723224837288651658092409194909391463528879239381213150852684213693811428500484001371068053182640103781630975816702258165697475623001787081416985217064541378396055160351591046420489582451016421890448184322752551362974573851836305995410685816005929089139868820607654264364021921656763471055126667600123695399958920498150894852340113040748389792499566220389419810313486713845294708719348272928011754758408251263499758543816704575408491238496045467668956540198059058053604784483776521707110444882292292243990009702477123405304672286441091257956163730496974197128743944023982318830093829033863537177530402906801653063691887477663872723340007109958860505462002264874630824843517324588613485878942386694869615014990198031985220102003489187171894015761893060822520145691229099678105259406308555368586620085961359248816319816130693920964311633184057980410496473745445355322091960028199352017647456979304459651101433703842226028867711824751297677390480852205158610291115782572230426387577221128035540286135904777024009752767225207693887867033093708427685973023128219113450929231182927129478746944783733649900705305684181235270030517676826660851390943917196747678658478090447681483110078100098188435200870761518503550634494729194461434306163448534068156848294760350239688141139132158857380611966961383260993027161403295460473142811202088319666250584297154369776814670765318168251990412954759644270501414494768530361488684980473809262237036330045159981496701182457846506715840508099205320422577470942191708609066289883289619285016159026945829559298036055811498197939995726477437326618309029552400620314939784849128944718363452158732483362807301854373564692136979671563189800315614797324707706797996378013069630688716246102392098455040154438787166277227829106535182362373763969568228334090142290346585391266589280641304376768886016053096643486232251703386303229955584133186576129577331464306039534689428836495483174221999287413096134862139638984205376638719591612972996602429297669038348200325226306438834196223738476286483874371470229636346633166272022226839614186508789627558673711920910090457984583963640551751964872468851919260884161828374825853373161177877463825427824868021677364192645728735765426323777987658547929432154052927411128082951475032775592586478501074551092535334030888195436905120484291980488772809636052716343554936420024178250244840635144774700381762943276673973793279348015560380710907750161705197917774841261911285291945477545414353023784692218717051901608635189913680346518394955339598004174487927747418906345416199905797474040046466920228694063655730587709345612601126880480664310912940000866658168154859918275189521542689367021714868806308175747547173430491281193234280711520907391415922227069571208825466593825814893329096654984427423752000537350093019777754444646888951152216977488644588369375652504761193288413246907693337173653124185793653108691773721776448894859209159038697976979762807694716009217875261413070016278179770491400606107047425748130227779855863954854107695974559656576603789156882899748557184398350686869576238038779308304250806542791114028233730221134531246289908875066173959912427423179886526574240953734022620866553490253724335635551178117784011245285056853268040823454708016367204072138497444902243420962055724596251537148007510601585977370438873717389780390842712806166385202122846269642145869313994695765683610580114156082593783453614896936676869123526377326855438551828286916163742013216868029719693242338305630091723863667886618628413483704460911290355105742421651895858907344429255061104519863513104615777230588292553031973679859575136349668567423137919112710372538669290177024495760159265671574068501629602632698558624578174473047919093578040563274349401769363955918919584211955737962805884768274112606386977569175401723191532155080323768643696728562412029376237989689888898918520098699388278910495542474488828364096859696075374961051396848567190630033750410999717645053024405199575373575768098554666891691064298051129089795398700869137825475543348578447936489369090583311558912043220917415687950894623264401930692681029602340702234397641488564258806074196839843167630855153144002287052498148124519242655229360778018404728720413404040069189776207853821728419247322355937207595853176142755911729939992972164967490086286221382155130050955073298695825502713279665734296811972840624953961967828301606297234852474612005598279858251759654936441473914190526709811691738580621504008659581423090570717978291459627067978155411265545539131760834349559858805141211732965324658057447320101107799642549529423299844858614443883096113580226173167096180131803618621097245699814515320609255188675228916418974441956625951688568407986502249929728030009386758697432402496179212970885893516851037193554491417977318467140362458519788321957445972974731118668095422239568928043386822527608582239408720133003305230325531618806021069289659087751317456978146023544342090338922271643954612644967591512489869892281832150097709292345614519213284854762981053442298187250778411723400650153589858957283026486274091608905911472618389518286720131543881741549486235880576964335277479359840500319070069779217047981583454280920780094268892516967013983959430319339451980941233201270591695273742123301195101264712216957002346897090431361319448837591626006329356635392336598941281141375739767648637085503353074304069659461604321426823537123381396681634189723534685095109133820423440122489249738507359264786185305537584702143144439132349348465025368494343233919913966355640076971848704363582752009479968643463905217075329770643127621139172916511259956970065429809862682507246106149242038154135871959901042182720890528189293781925023054056463468165138012067929147901031102769733182491345923047578892184272307051934938564642342733229548218204976031137654468824576935328968756916848035960638260104492598966412551343875030155550527895689976482653827139953138990122252650749493312159275989865214532441009113604311581182543560061041088746618339377276628142170871616971904507274721007754146172931234911179778865939620710764007045305377371948095217019778893495173435536937967516067983276835058172074619175634793428396102788244845368681399234253350082277226704649224448567335393747028834006714578555267101684294925807966265618627142559111942663219477741898604438614385986543360674320392081632669089264068836714553652691207341413349204273759806855078995093130927696518275211686948186113568007315545663776819256740392601311817015149660273953251384579194910411596451679933037503040036032618057540630675166083031630383469999225463435474705794321445261993532313457522084394235743717529926026632904317062779955522802752361028223160234440235357686775419965352393031780304278219491323809400945792283554088869343989169273298453171896257941552470995586653951622786644538483687246765114841847644913748578586237281288527701052028676608480890931197568350231555588687960648146650943385007137201664208538602992109331594216791772974408878018129067971877012644137486110048992635699830831563402737520636361260324084173432948090605581906567671410297726233609309341702046454583816589461081556464542804113279276386922326171411785836973922405707640788843735315542893162384405471761859350916788442067784773508815813831887147983382247703899999018719141231194244020663964951435562682414127085589940701736103454347653478719670095363112097891852270923138855332133545109460973894306290518330795389991652991772362206139945993907460315761388577123730550915049636565955778547553071057839059363883998300684213320845422221330856740849946297208737080863429376757987007072789377392357995017952194871846699670864193196636092393606751028639813688306267417331221169053436548394141793193291306857261470653065350114276855453774536469431127558639808512765474974642230261056659000053314030857967253093633551898080911520046625102944091840733453465749976106473759964150572389712713353612381981271865069603676652273609320762175186036776275606135344851774510037020716978709274727368853674547087023485055312563540390071305755217045688693462773578655142863950019109847472245946440971461887823901748738374288055253490946999460383371098469208804572063280675379877258063159150002067297129516987064010792402119647064417413161821150389845145725682728584227913943024018896891260758847852443483146254860028712941778251432924331398800996135841016663669672818481483054406698068376794868783983356379412387295224113680574013118369545770126046487949308127772750514687257988378633763765429942548373972438967982478851180884478128586948458663526060750393554753125827647062593791299413816170310371406078730148364917427093716979504608511469218798810606362386149757675603387049906722642491023216162290437089412502111061713073415638414949816156812803463538379476178429670613114690971253325017091810376481236175443400547440460088661874003082659513590701442937428170097531759853033907393819239696404739097531682183746244491064367697833446123507587340032112411404789671698251902376895120329340390482420775029036023867878589583697293269613960486294453285573413425310607216736400653234519097142286508969920074070520387905066469441750359845226752176881684850411005921227973164799919114226414201924190510648398616261205729222186667564419173299928167901914750981608143402594119276018562868781962253828900359130207549522974227232841705188764502408372711133145553176527018181629082445650030543184206491348958967665458971757430691738378196561968368480482496825373536443108493998538510719629343802947411434920023201861779653706104471442120436246298863616237520772842889692748518218871115214733410839467723603606454195314625220055988520921098093743053157695330995188070915621174901077124519231552383463893171857759766525494975068656352674068165209204809806532595938547517695324941668961667704189513414800891078323850301555792861063306903075689667592395335675498162961142779608650245444390366505108275574064590279709124223314393418642355961718849392531493481983475379560733471244626648301561467037354605047821683861031581490745429669087671810925430772820274462455461480857642157283790227943510258558355975634677128877284567306809488397690412804669036566359509542501398163379848580112709521457890302214651660149793621337342613110304504867377242288910142108514102876556425100334905429893154565653203139374879644053342621694533215920000195648133773292309088247497690834884947767189159577665460659403419985341496927880202865715407630255053657336421456393047944395977655363717722791754188479122253234202374964271996195413440153202567573367985157488407115864642575434063386321171581665813136168002362351499943808117214626125984444280423659429535546940718253141983248814914869778666057728825557183234882232645070798815415094316788751094223014409630537255560053476648564380866985437743294686263121980142375966255790277916671299284482420515489427647420357195473511377484345651021057940069488520928315828329017912903136004655858815689129997361864158760710060894418917132606051974972977329823128263247013872705237978783673700498428793190991083204964260070849509770541641544793240691532164755967238968251328606591866418061952113758429576294273104124037133572757626490025661733123302757172141655437951933108971995764671500172092321752085501211375703951693777740190756427115696664384489319887135184430616564364145388297199815652810592209452527602904904109326502267999650250315482684147334130210286706203804263966976587230835157658936275333318387072693323780719652456170193445036398123967601657260495522388759023359305449585694767688032344555520113451792550797124678807425272481044810167741120809610050536593950743055797275911855758040482768161079015824749252509783661217024051670881684563750314872474796026355648703316963875619727384222371307376252701288349289847835053958930917771076087859636379893739417591510781903050484090378007623645657782055777253739964983304994637853800621853235785131909911672145482008569745755925465101399616895954951529018046580093771557651263235033352115306460230231915412566492383149416325472851924669567855896432635861463839080702490132607006600928265517745557890252969004692206187536307716048579385726618137321055093250437212693180527532434005324321968327236404728161835434856128239981639675672189980040861650231473257377010330456543336385058432229156650060639816097687899846720636331250891348015720520428595558757667132928780304939198919327066692993841449608624925936564105008614012421947717236352919231102680733320571263974178261729896794060672015079901637898161035341727485875895055327172931163905574139507539367948987282695767175292158100865153638359901486280544398116773720035936580025315731363094580594600633391952969406652425160503886149619544927532324674713789478579544865389350029776242535327404842034589961741483644805003467775046974436753181988373515913256738004399190296032167819165406227960976868010537464193790258376902045065428178186455576577253264673951674881058775941554170786709590846451704824118054480719664632070704298588781589640641074305000519095624877694927892876893508187065527508040721995321248094279041859196938318589935646806050834852795422109317214830232038628227390342845769852947176784909105811811006494123277241721388600692730544390423678226979189070002432645493791445152428334388016533196961659671679490902189151904815577565009263086631187429046006949478097085421231358501269031393726779251389504750467339658219970294180610854384613177632445643423734389215250873678719320811227827758072444824825491647653000709832079193317769583381458890421779749996901306505926111846329455940786748818008784731152544482089955111907210066052506250189631311986806712762453800359253742436527443522710953288773072723818769569022000182196289373484137140845995538757176719198358871761058722452617234816268314125995151349334736614176911376677070314844833889594778545674411589595078252399434113813139950875952333810917538572416052472076117308541233075336202795244168925912057873363623271539429572958775163296427178736984850003690232190907393578826894611125056667031274621130227642849035213344680994450666950690784611194991840952321350728178502226553465196026345365899911536191988809104495461943961756611844458343030245457985641344810992377077962562271897255897850199276143297807543053465917961425423123882283710690262259908624431745741860896200056936403747322097411979110500639931857878954872019954817846859098576695405900031361545266503341432008387985219624522482101920126264697088243705629174105064420021275637272487446750581356574468459660940114240789548174847459553811127680040579870012877257914929495268870404565463463926150916209882262463728176764551021329769694874022787063979573912832771365523813032547142799675573373349760708753275362664386577258773473169515848972475513340587830479517979495599357071230339567750521895528179558370815097765815065143991732189241115010284560920232000344143052819338023449129096114519801821586487413672032623452627449106522793985465094719935107535880642196562158150527534342279194539976854778061560650820636233013609682746546536643886838495908169360114896797159140784027493430029777946007430822217573869247620401691991480800983223527631241725415908289520223889057311276327545206595312392679714145274690412314862108185189786429035673635250323042332809544608377585780346840508126839388964136722464279853228722126307209238209505489054108267801490152160631918927504176676620412867080398506759178677719599821106235128001744032273311606277850451587767734533756284524190140509041972247155422835683676300701493561293636674614760267880613267269339829317490302058563552710253885387881743166069177135644937741684531321321121855509620434539350712313912423972016863341308890143658777969119707315547594187192585232905977562284307413863795486247728434662697804855103939834750565069220318779996963258743563775486944967240537931243821054007081008970698475230037449458540562162439361113963742150089385364329325047389234991658268927353887937712082627004460384614642066808821821555397870809088462574143055233895165092836653608752802424704285117651855514493901163405636877342391156462246193019062943674922404617187862324347906371318885009202989180588779774981200523876083783517753946031074529538547592715578623472575704874247229438845913707501034766744349977896948992297434846585475280002979274853305210299952151425345593739040792385713679143181114429929218974899863188511367649017388955038571878210655910040598091348016901849927538158924157863132723517419312136955927261784380069506220867317043694788408855376430902604640095217159674086263884657538850699494959803649114635902337624962902210939566660358050657569327528196416400511063354508221148350102639994147858061925486497542409401864139760873572200326440559099818298709256483770546427111370580300727210440578296225495280589859392450466087136661675315112599758492696706709673387481078690669230103920031314062685719194187247763138903486717913580742346102619420896821470468377384115320113059253584061339718962615597637445089583757435823707188608593979019083827965767378274728260636353874800543086895982339861611187508824014053067045065013840030778398505045566819857050665854522662857186844490605759710255266574759331899403735105799497637183432414354810545526456530512778108900569810602973537378725524685829061686980209465756628720006668106669011997484073658330828343590964810952752764812421555471342824462611783816497159990747979843619726628718788149388870748269018975697759780947964526444091118824876194330976376474160346060056614558558260242886518803870297534969745970729995872423864835932384276096607452861095498365681583184248643317370948551417958482406340559424814679446596704072816316421671267965041910769648246579654552304366682697850226405316205587886406235967990801751904449764198870283859887087484597124326940485396848261377552089982837286011821887247069991135825468957289903040768358700256060784688757277045190125454083367861673476181799349148572028743909825541855386276249835104751794547419626570560577372099408533477912839660824008118585905149211919579553220854269678364339416590652643738616899826354638453969022048189919259202602357573595767786332610761531378607745503935286566085906844736640015614727062840627996927703679853883012033191427874322512064177161392256410864600156688952050424692968234612582177923548839026197528801054305750522893756044799240291436353698795425648417988407011774984989247946756883907378018841709186923097336647974926411203827374259507400910692093615053638363062905534063400077765576561594797434923919200319388075043361355776969788861345463808525466248765452337086371231593541039504679401264389734579968592002526124535531939334337475061474607597427235473518049938322980872735055564444161195172933001007043944706647159385927257336509900267001038417733691318818762901276545391327238286738161012142390750358167918487494807229774322617029095648323877579438234575996012299571232430166955412094261421777456289637850170561272169095809305724873472524489749925239842319093050487987022350837453182579955939050104961466990073852804546227650578667112213509459665749879699766226635258448283304805684848558015707418260695684653831409636390613623849453422483943048140359594988579736297286835147019518372717561572769642462709618093403625930749011116976723582397288225562313910591310536377904652740892603489875942768358911460004705050946363745178878151348094737801954052411483731194620819564889037226430399246629764712469147158551792280866607046586446683455702783817118359313291334857604138394174187441700160061004060051128261490016168850303456509785153118602145358633203599570368768286756223670409074580513507418245786018255571384684316303609004711186607081043379256826671573458401463420328882057073905195089260716654014575031446623793764936652079680333005028473163316334044150373064556628622247951593342261071112329905032854724210888361417340357881746136423789904911993014796220790545882726306076135724954889067980910875549979171566105469115648944777656137892102286132044592675583547407084332545098452234779572487528007294982303011321152773209059234308990825731233036052718240419202301397042086683711379408283425472055261559139625161679470868414854025122380086287909944100302178350674534916494875670087564380399194454540534492690867301088691740392814227339140591203065231608352441550021576575352187119000053522788884765211467432168307599612188561856742736501839653682074982307427069585496942718213114898159567536558445426388917762226981517925976425957013312298426018388235927935242204346382681455089755013799765829424305451740014210425043515448587229653456888266126701461274214125663740580074959029303395539868130054555520771461344986392371193387907460504807086818014426874566783646863616048247436635865766206601003705866004265716977945645527518642130591375408276986567406601333227366970793433150376764505747629586137042096302941455123718088428014608146646166227369976124387522993270072242407781735155853108462588798929943365255884307359618342525717807748997813387975426075243088283509096560163812408179341128806547633143743579445820464033752176380850052840915299016287066516392792437779869029341639342138718668195559337420766579930061616700551467048136396491045858409981815019729675974926011054604465778629909009998722546095267291253841247198871027380683186760648798073124512416721264177757648183171280350336220374603975506165538334278093050068356428730414149494715988011363314223022871511103503426440711180963966607755086467670825219938237156036440446355072344178801625732121139194742514141609820266024667650363751791207821668966111272689974146656864921514759321976805714341379109052024242182352577130664741648244800701415857618266493229428090347940032661781225999277212845361205438134861362746737131123463357948350141499698771355108740858443638749681360014808222452777523418793561912494292325195914701853156720472044913890574011318913279088164423502519499301099995492758792076396157019807062262738594932723148486599905384279967349679017240889802321396164474713726419941139063318811891737710799610603817390804082261896507203568404646056830652463877297719613603516302905766674227164361974373918869542966685413038149408289309826045155281666997153512620612899584436186897408815864638308762741075612961122037645765663226292302583303849323142589404019896516325399528092292531770088200734774030902063094588310992387560724301086642455286701025724488606777363371769915473305663293633239070057918485930653081884822990635669128566289983050585909482132031563259754669509680404236434727904516284497731642408482493394274571007385584322602519253127731601683382121709696246105719354341989873057150407680842638596700353009618904516254968574404514659244465800588121350026498164407509926874123521839764915218386688392889030286243864267810023531017578245134167401773067895343298091501437575530341428359475437054898245204219043828345678938823639746690398542087371174687740861718803042641538027953364093538136916180696242474086890762177349918348807398821663793767033034869645445887483411475302714900374284282746246327970426594548192132729735715757935300360758072974548154893427498090526038239649143906697380433433442228121262143628648287781092657195359380559841926779172358157618376105762339338470727998779834003975387888309486912616114646988927870730405154759406648223797646495983391712854088809259886414579068181480153102992421238452603982788879308431237469074492482283468372796270725338689331365455702568459391516722844270951852996802843253829750049021694486068883586745723883951813650540183620708301837280723797563813359460796187152878391770059623468693583847794877194124954432165414366869311571591184875889175371904210994159467592225173324133086541163135190367415265847328344088309894456214359175271339710266235218562249670013292589427510547565479018645331999011694920703288148538587500872628489772844829291658690254321360034266824040215965186866293198893685931967848355092118335376553057022860782840127370881767871978050299001268101132209969873098327948245282802985454924338610247080883180940352167784414692984818659942672306853997277002833171452307756299669459068667313540858249176481811293638553215836454207529378659298640224712716476404618498099010660176336035481267985167585572704688547627471585305756726494510872724378365110266904908553414212407639972311363222647684588623279159097904658654004099360980866383152815954678285209082334312633742600545937590494934480064805037483883772663718358881347642207419833517296044787277965869880554747663261287570409044326031191013472291173255593655709473869017058140373878080772574667618553949864960109939691888763503856587020843298503814726090408909508463990868079438131762795713977999459450041100020687846589887363185479316021917413135853047048585777904121212363598163218048598068084469933023451940613468210432177836110953326572830446788765157741560004531746531721685513830579525561897328815865819530327794991240861683373824850469648048980640843783920708698231118461779951445598691753152079683673719854529013933217909343106081739376038436435434321234552152310185528772958541928128428156581281014041676899415162813067512621110575973899909597811326094743129492563234537611145755810238388406801424394144618341937817534518340248961996574755039452106761286431947696951038187226498900863121960589637453801989452489973548717995725012042033266438810343927330877828217125478940339164427176837157930632425800976269361268676154865274543353695675785197871439244742916092350320596639463162113919873761419335115799006377093532338502281510062749870766238954715008730968447589595393626036968300906794366972004596963553942976824362502763329357728254549733535812722869319463614922171785483632209042993687413469231416049631901170339823699674396732274637112671356347244559447548478634217509138010432133007869993940885561482081971512259532706912222499706002151047867142876281621399980969770826719954827408099929992378512698972841824666266396037181622144013658561638842545792302774848111825721086367970353324717415326940378372084082349025123338438476024165942974104084329239299286439333234776365627513578767994563177786266818163001368332008669588510808415401883243227488013010645409672767849160427677398653954871507980910759952526328002666697659062019303100919464474075722465228615928318010711258872526322894726876129195850962568240753711358774397112656082642830960822674773776770405979311909689776634915154145215488462859193288510155168634694198445122092811977222185438196229115350642613164387263640434997185603266916772767381619517623127628265676933490987426449631198499490684480233556055193067705943629632627717497592013059265023003987997788178009081160011585893420900195580986127010014948531573065758775730186317748705000365004279113289402512345559192667263411154851281048535582514712474444483753456542018629539395701963861686659077263044206748619093561182416977407923640255240270769447196175859793541952303049726059915846893766018453308171538044692094014654291506577135147559019542641337893317476962658459857524137680044411000256512054508494641711622908240119872345652832446357956619519320562590820971124155692142392324047495532495900269445964411335004035099781557303652099219100683723363325156726701110662342783426676694396878894427617500979664190180309356957656361519355393550568647067637883970796025694537102529275422995870171265890002349730011473548030384600200957441637547221326525954644171601142191912026168652244318969369457631237897566103727685710963426104206652268236256262604862519682410264175034072214927926963423190229685455270585596066610440033771714330525555784143633949738121636712970703439538719119272816600627653413847080677785317056191422735573749506055526098588587322257097935718360765347092998784414942156220931305345495003259346613585268840184858708956555694462555486303021330591718764847859210882661240991356968352773909869305069384048330837414981850530232318316877556389060418875781202984853941644735434554646937596036380712054877398530204355785075210466735346845357284227439527736721410104291760877694344505906036815407664181363328467450548764442977986360913579983071369691214445275772487508019773060208608166806291800855297158605618626402121931694272997302003353668981111644469557139574281597405383090036435137044091055258773593946102945924480686026361537042578992041745102719333789864355856411570271280999461876868560056567037289754263492944385271314961210628140047722942714389183498390462163678950785343707682714644717068221710256699799210063378087087429899239699229918116278181023039193667889216457711199686529569376614506207340821227156659575933971454970522922933496758057556751682479081270964812424928095857466232254891456968259737727313603719280399764410337844290206462656897358328840019417417587202844813934817161895673882072373508020953322649641152388577522454171983553901531683154983198264982851244751768904025689375842875295003873481768226293304298565543808757491597109154234965304323253315836639693456546922709092308430861439755026812208288961627318443528784693918681429747866661264419661812286024861636083776719512644097655221407934062343619204584580069856820375379624125225562178221701376808713463430287418066686007831161463864072461698116575291474180817508719103100582619402551019148090330720477699800063984037466679644984426095780086934198781693460910188535793711109635296138095394962057092036663827149378739212054959749924139014901206454143818329967185234225322085696749247471763292523128480122251054792477197526013564898102937091950670961625217602832169703229406386510060192499146081077303809397047822961096553867994282087306938534676947625671834944904844165332544345900969601645925974942753211589904778845289565276151390985798708386754414226279456418594851633603423360782254902462351376562788828040746917240020224361720890006508770042308598483499904259663523251484567916096201420403934390897113588821067809299392131197017070690055010152982919281601455007149123724770066532933621465552422663464227045404231146890224466368479502135066928332400000891232052094187154041996968888364219143790468494263089314551129899299434541785689959615198459708265986169709135700260145007460863822799801187577343445223273634027203851159461635302084634693319588834678157452720039688008482232449785922443445495674885487942269227845492892980564245431098478561024389172837903054177865566009291883725123549836798563794957317293217079972454616706513276660457692411743514769119748883981839987574268647102859646437722980173222988076404713758451264266747199454789402444620772542641690632203313000949519728293532465455636411078911973909528459726871128825375321069492266817288407912409288564672013777229710497644014935298501945373470394419492598397864873770934720820947173062076181275621810853715276950071980094910889907915736343506336215588062884014048669373617385533518711712665787541771914368106591926038239494843536485550484396762044538847064087571164572640807006783105242770899447405134662374820325543945768533495430902609769181149594068027295408248260549309354817205798933110610076707668415488318249988264367783916767957523692164630519540101912427389275903706047534469491509088305894272588092048524194503675319898278353001353782386138308545133749650735453357328769642978911500142679014141162548927145193434545503773510823243346879488632162891792142141939727179862184939184289475323338412396459385080953642906968068652548274522757742286126866584443301667207844480938043711520102241712157689742845290705329105187424380766904977498301808258894496740196324396584567874166188680004528500581700271585233471212772993599805096875758701120381840992467856892537555684651013973298915014651290415190414241148811916009682079098037957002057040549442604712455716936785348482196587279125698106725496623429044528756393622293813132219530781669009047175321324894196606027641247354543766972225362590530753078199797689903214147808675088812049760809554548075797917429823152753846754601948226926046615629505124130883614645240693813880505826277920271198069904663968694886781939902954813871143728368798586072106924452313106011789177589023149818310049420141507640683718880327778067138724741762943999290228586531105789507368650391591634508316551802510406969572975123182671742243343051431926599430245775660507500700712469564084677880044453190735566544441415948589476500119766543746258434712731642293236926440054865485005897975757818223244432746134372088724528700807717168842699122369309947517954483144070521771828255503226376111179342552726762014521408888362859059180498297088958037032357920559953524550430403324947539427780866805754452265425989792993207977973059042691205487937818208100939908031950399960640088330800591155507294480363434473151722151807454263958778240529330439539034418751982388553803374895930690311028540379461138167560134810982568112612081843447040598264231060129870898630037781733777022736938976725896040126799050339182852625663172255293631291121404419488388929698140287118322452512990672211516624478462251278901994566574350093784454884215990437589855544798082133805161843554777381257271951129228121950247325420876663723150779580442060506118241508262731749245062352383619773659650022155429023399099233745673024070291000515351882847699147793669508054478145381008236563054440036295034427501375780411648254296305270745315210312831220211742982001295365359256150683267872817333622461228070768605299951739881742351568839194193603470347481548441191877106316107590081518462809779272863810158821205473526377321512822824334801914898521340728334484170085295561545934286158077806460290451016803057964878488826246814138439847931496590986596137845082581692629311032077258364271981225351100138629407550443573965953759302086246797783532360148555524558446171803088445708195992149434849969478577910675993946342613244766675916825533223256468957299222646485314002495802211815480379174824994339281196832871698786490587491477780036512683581032332794307094004155552672507040851899266262166653071202781962029972317949293747582493909036713140948155130372822850251781027110656575363139097829476921225096682918352588382962907113874989913183607176725537134584599872327027548029816875969656395984399433624286674223241233823469920573735946241303271692965891853796685840298780172534057932015947710008468076911862751241988520653084875172290312131467005932277797128091838712917391624523514977229023289601781188363968259181403949634522841633729625893450969301585261979955523121223121410753741254423527545800791242034738190338464767041224822897626198548945169974669521152289471239105104326595272579107880024497277785844683009916973833405002194156235518709768440904004864309221640622936960249160005584931452758763448690613523383849552292446476399928531024661717459931083002387256727653452605720972261807062343902370309983171185426009379390038035012083852724313309654717996526818310941044691574973003612556224087320007104942321858153957805552417428735104918887884157570832289064878370984589386449752245580547764988686560669919956625650935943708689688678603243205037068131790691356860907939852319153609348580835487191959000771106490848134621967136332305050096771391464504116737264162389603731170915861070076384512394029908017093707126487667060668492620780064458323740350167875835165490017085309874765519752812033269848541556555590833718166211356324545353289804196773597502472995373107024752267433250047050580697095898569083567678572308088919341373953219286483980355524037864374482373667606603317987296246544614956284226201935958742270969777093846328184813421638054275064386151555069207261774905492949799985216488583533581300906805422991693936743846125632966405006839706400631323736129908626904718434291000462955959628425490884760537865348794046503593796483531293694631393310193825605520816772762089793761463175335294360389722523696735678288679152346231688609082483582952342057923134238591555413283308708658669843487637639377817927100512190217178988981012864335956729060715673587209651279792328749179430036720114627966444701124718750106692514726995974495932357808707147953183735108027263975631800636878626365886339195339280712991250230795158376978940441905726172781430409068758008580903775473407045341399150117751671221401301909250550729662301662393040024459481834708423636670146669918606066150252382275507699728004900718908677291550311341671142607927590971557005765854557736776997148719569559696452145139528117518085696563721568580397103463351438588618021611752004209387434723892036561527750733387136527637973621863282308109648272566441012342854476536946175557420328892187214844819803871990130782094857581306472792865367798542060670112181618707758460778334005051625819497647381705711592348042415049199984628737809995024147244294231859035635075226079357533028208357873642155134551310894994415924267998743667917181566711679084193655708355116901907134112279366593332928465402342735125762497811823204943374096238986442932095315772641395554972039643710284796397901604394993039055455796979766186463982526372665769033180637738321657437907188664874064880477856435599859716858985163147764014059085053033419423036217615618325074912077720800480741837385645822989558174415728977599526398891451107978245519226699969607612369004242944726011223916440331800604153859957659617272974011537556239430157074283325301929198130696116954625556130812038040971820649201279156109984637766270658612410158165495715115243938947574534490165706101345414060565737986017931718878625127100310488704684186993655766397828266147055359855968663636541027673887045005284882054424634245815441073302988977797325099950773816342166772410057858824263189266701456514408349796107027339968543601549443076130872477981309983246734229837353307911517510710934212821767214861274036745017460289454650946211180272015032792399115299686385669762651719955503169695122648665648680303176863084826895972046323456919866566290223063687544006401627417155216018221032049933545987112478361730343616004478417920384435998260899428197615406223162810687236378664519687139511844419128413445297778150974926409058667953598802036322722522473583832105111771622555153199098449973563388797574601012900170576849086989633977309695082322039662247710920225449155729164777323894961043817365497305368909376887666440699189655409896538912210623253190027258293255554980046731106159587627795165469440297339524619326870699223769099136434899283222564979484400453451812170629531687258116005275545082616562390703090018113358738090141523370436264461232508927776950985421462891215691965321624110302198126815440244320153580288265435160976154596093595707280343102724269432480412123533875534163559551110850385884044590850558268533820607585901732464001564906114935595391387600938552433810202264729054104141009678508561127644135874877579156904379368886078821991607724632737240354334896329018695748955735921314790831503073564589636521355416890143678838270232220923791669497183666814510718759316154923571899698582356902915620059228623738715287177199151527933086262678398588958750422781007248022875346185304611044027430558915797269565015730428515081818380325617956366460435042478515347677141776572131599775375644828832655957719210063643333481798814612627962229161239883179530937586761917858160727997562248197709500944694424833246337761532772180412294774125852863962096670532062444898787819492562650475000908677937760540094473663516184105325242521127189050632191665576640714172157167806834446279546324639044269510780187552209053254799254791399168458800915895721862128544193263171278972974097045486937146439874103243342156481454576457835439038013377941093848286898021438514279591187708290431518720582303304409587752731508459836153679980567316323091473309648505247012970886044098991596284693578653096713289359113488952813841645796205767927594279122081120122967587420658405457634480381206545978624704502393027987287717472372675795316334277986008390975184575433079601812671278326389177264440029648599382528494340197107379815722952131306237856314350695350913947243819668135410120451159463110860673809863225016107714636578049673284917189942918290768338583523511642498737385496920154723076462109497069955234496959196365187146922392848266760360083810202966992444785696965760177488641082025648955900810569518234620800737545940894381585422391542419767143055822408781741284818222069895912688659196946488529581363404933039072447536781967575895800647515146528260161190329681220630087502664314739507097607490144689265396638489967553165734777609467137065037981944749156624873122996909113199724089619519065231020099787178717656506787746690983685332226864111218745861218193500953224777479903232673409574561540713059232496415524988115655172066979170995439677344950765098899454356258919196964722072389206779816706133063409788974149890259410187777408038135038746020682799781379156366407854038978708004007931820491269580848350786162375299485478789218269949124524295175477580549405310145789068036399385841324121485592342453083038415101640696750839909813597174776161756130643290233927213929310569454193794472894407586062055882324123965716065195544904106097699419950254032074866997420661406293142469043015754537399024529525518557303103739319600108271691640095759606561292839032086052362893552037203376097937662661247253337929900113500426586612212296780942432633579964948613046170868211211799581379714172046629887499983454107694593975187831945101418348903239858636196693747777319509369217642042547420737650053734769855647827344125368755264530766924870428706958864231902529596372772759255023026673155776692450661725982283737581052738757971274089255583615913297946612927764831953918341280008837196236269507943048919349393229055833234556630063505282157733936534462515551521547030974800365632314120617377006174731926189711061545024960522730525678879948257662760649553227400422884981632768050550727196913855979170094468396567406926923901864265379774980036766812441390735293482594523417788121719629723160389429195868975678773373396037470103133087688726123191791304202949022413603957177997509369283529430939393608432503347252872945281194484314023413105564538507006667012043239227743110492715171835520791409332871515886466651081430866382812875737860997530593196453009797877674247891555487481161764410258600899401439849978031496330837119968721808300912137603902894872218573017571312020004492255121491428079818815125919852007025534667456562616461428149881481907357022995440933698919072725602061468887887927345178963212439793736549353211542756964190874588457514583143475332142935952104699620586067854008825678476977441376326117854494227658348884376829309023970141024566304095477854229723035188129942265000540962178671139222042641206546570796942047709545553054877123632180647948422036518608707727432348930359423489728015659429006930966196228861643512928359259146688931950283210184089267323390937601929963063613476131154113851044333261799601758502767283760615152039817848474355139000170342080843945225699753988587539654677032412792287393190964548093906078400246664342688155981819174363176173734339220926655314172383510947403541595597691528346668826599107210988126534941649648550859917988991035852475014128690237044621057921694357255082280600276264994494877764548268604852189782697036820081480708831726168847853711835146200497542457750851257835427137000979983237737989931999611069044567517172087823349599294216645001312479049160957601108663151527252695425862017462618500956004340406744530445737777233195854043765468253912372812915750121365432861429006595044178902515463110096248777681820958345646846828645208860987608041490602672421426883356879746978776092766710208273960987795609627135643113707444375914666570659147799073682843418442531779126744485183741973045945793173917164603030993111888486811883864431754143837162735095650142757489102991622907535767939551529832775396274961736684678809491549840427980460793465063762215451559029709023649242903583364084645599446798295106191239390007386504707430616268978807564387817688949051624350029426204986078013334754491463119488999245647217356311890542321510740482103665969050373915363192952031906420175110149492456337211801759322343767245198157448696868217480444812124577805314245404674200792293586197914193709257291623669810527800903575080611737441711932077927091538346814066560294769833557945438351407024536350957118367477742419362238878576208428727893174607070958176308861629357405069583497955560072079013974145659084071993372129989012152146639955838185115901941324468083638409544827838470005676930060375080993526062341475471136493065150346400976827146881539129146195768282686181906927814145154037628206126789539463114272980960524750534153851730913797106877222034400312493348151572498007833299542629054922164665139723785571553775291338851669120069098470182109281277872222335974515070563671182391855696305823395704989753691402733682748348996541447339975780803313298207293141361666201315943684715201819601579646411918367221818779975811765954451134343102822735912144958779002753149050067224273820491925583823350344452090173063179950405585739198935652545445845671701051613474927062727168728923920363112038291335646285195636013046360983517632162751937013143603663658103124670035268858321845246572112875625673586875557518805683746145779747708434552118452050069098007153752045310265187228983677772280571181710627865783262356552169724444728755683819065667449876697484852851323003733197823194064766418669148503262061861646780795532980031689413294979403431832671957768417839196840874792109151867205614458407013395898270640241547962236806240555564091440978020148011823956454647018250259361795192049397490652618779095045218945394502285967710503859455662598645122691350156973975540515595639386751758774638594551474201871858270941757774891185953960323580201497633696380260104984973270044547484675273730776812110362375279928480503182977568066379677254845256024511519772795545097697653455161261250559851533324127275523451653286831315196388850198467565550052710408991829022434134056870921710734453664045068014314365659967258584044155790017055611623025506589365178902926812039898666110778088360037259304406650562596880531927791258027737015346840957699359194116455166303301194136100568304260287600866728853671358465829837381448430862663926662180932687666235480342330251284391516047690089683420457449863993026856323914093148806226987871446669742953722874593093333791521152187184607506308645272642576573752575621264141736396374538228284667374662667189985473389567096296823641555313763880967023406897927783361590208620301379701994548032382040006646914531260704875567228484767548831302505016013773210308737653128556829131627641128433498647012110944130280144515656866198300380914440619034691682436051113953829538418610631032374380409352970318050073391781270081605442330663988624277688415731256209219660259901521043741243243159522649591153976385528583879893866757759957553662232407205148164919186499512845353620124021756225535627052047753484584578634699842629852628548594792326131151322063565881271550223193142620399434536870542258088758999862182608803990929228120458209508102402592851602303529639041330538360617635599648513973852652172527322755723232548668006655557360169014519253742956095422884878957699376926712844566184472398290219464786129294472237928172233284114323098935327088681480970072483320624422652680702845070340377308710224168667806413269868386681797765192758617583403912675419050883147395138423370740544595843295455478821831289025295744460403453914119860257849117765415756015068705818008046798153231997931900037407688136045942461564092368351357008919806502617444215549848220230107387460370744137501094310818818586415717719623207824747232559491324222021911653467327394120249184970743004624982979292293687507931490548381999403522972567660151441355921087562744295764369791330499558385760057812972092132516571659528394931041726889145746752273560537082355327284921378902033716015787413995769098936294090031872848433675128943298289642240053797315163974747195115044673747511723864556111714993263744532908040264053562944632072305240293825585255332413524437048070399742362760206208610497175829681042695437067371479512519910366504432449667088990786412990921390492950587260307330158878453945148365779321555037662695292450933850063143673362396918731015715799673488482456485822061611026165813358145166537746525446985109097609771671816129916544452715500444420428648640629713510474861516600164597781109618318567332862036056469146525461794495280945767522833398522288466494316917115543047689109068216805770505342055156070417471043460134847522998786785064623485502947632228929544372119863286863860969718232037309813873371638988556531452348088575876862761193127375435089053496610014129832134478068903970358005164725874254059815007929547923548186570106184766768105530401499374877538908789042095527033571706072825952751766639348124518196355758522375126241646778100127772164375322070927740321688751368385502793281095329641005065629196537272083140272643879445868111670525402654916977712221739035363794120504785610274979532298130896194250933717848907342676598870699550806518103670480151052364193324012261723643216298204353593551804857992007113466343248576556834955749118246073249039639387522649561145441094323103693161125611960997829107609294328624196048116246681792616057662944325840548843345608845592241630261488956079823011946610688459469057914291860197483449265364306458078213662668035830414204724244076361468995604175216820844747453704373588616532699134488250469013290823758549258355046849994795390576225607318382224072324990789609196594805165136296476228659797775609998235123071457169828656352279954663221402757917992662206478806731641218036925483880273518777665623121064123440631022797908044548654342832020940976483305422173942087878053477519898654146289891663536590199967219084028026987254282396433426657246333675234460802500298009020324961917721285549076459637692709354946648856066114899370756114605151989151497024636056364092038466223586767863059433119026302213074248101290679479892335413692881163970261070473981102646338464757575993847451893343260167618936367357559700308251727646378502208477071639665231197720863373768483547650554761914437796199360473379009642656798563526975801171115207548408870613358908435125803577710621443363858640340801720747642582526206296341668111759680968961230457255350612858051665084897044352255762115755276757272990741644157141159448864538569235552731017589703711508068143708815623999002759002672706157779040253536879902115723465128278893463845422222942616689188777056833536065910771761341199857177168369066783720680311196151484902255379952449801426616846760827339299667597669885707366857286048959720667355715244240837499367549850557236773631781069255448121403930106843711102936769700155118536744380473699155400852838653358497311165223751171591225216658693583123333105477365711655988407210151858984739864428829341273119493406172152889543412176749907093496260288100733849999422535686724696548117525352434644825106492428856181045919061836717843026725515803555638448599702222551958637271455070688602131576827623528775291033420286442863318480201258743113472005416963187576389377736337911628979634090808924785528063782835821524254798771617527886110499891162987627052419280298546798391882966805707917029678455242915783224446993772152389463244685718604177429004856077024693655453909639790794036361946421114321851146442941138559510921882717770368389883381262961573882813644709208993799090719486214372541150010395440405130927030135259326405711486594378754769950665544988166349636481090170263677660314871340101804439049518521206432331262423398370025168592953255046396825474947014273677263691443632881612507863087036376645941160960306831131539490644299105530583889306363116077391122125959958255893981470530495585678822103571633179165245479695977042832131223701084338295814760650404798706284001044935715509850322220245518587148068617088039583441884217641864610472342540619342478012498381498751491807693446294094137489720503522051562805518353599365031161273110561753220406875731826963272533842993356208459488413516604561806946039337675048707624473904037039471246806669523301859008534281958979724902979175429741762301850437167916392497877121585329060440306050419127520166357635020220992174088476688102358044346440885674330194570160698951994519034507174690717210221434735672068729440379112675443994519278085250069371691817521862216302155750434331515248577111616070563320617267961647813550251212517910102929282637879821291756758613184085644912792399254521954252689798293243402417541428043606702568238174089805945413704509282238729774773712747580149459480020740552754875397737236716233096660375100345857610872585285260330186362116544919554216217866915912768010915214890253404173226812889388371238702344790639163690509527497569941326504975989510751082929594357524611042986286220971798373152751876526278620127915025930730218051827782774857273328306722954841087592937459372108438898946439980344310562620215909314479973021401957691660083375259365252144260908672265357913817622852907801140530774025150832135239555793868187494955833887529405154115476650746790735497661316588874791585686443105098658074660759209303257008552848926885630433224575529969797872791284544393375909797181284040917313840278313044938962999423433896403695512668420445125356909225507845741104044512865822871293419567552228580958741725063938022016742456071893065013028203581029149648825771843779764952704849217648332321088053513312154274087171159966122278558333136600068132192411307231802091189790921639770071785088660971271006109369245781112668731519670753300827526387618197958807715470812944584500695947527615399517655959671620359922501777617303426185629962477744725672381644240568141258327395557294252857473002444990099636783838645401895236989655740211714663601879849910641122229922346312491753880646683280806072480570426345322263651271967540547834200094878864293842714877178750982542255584554301315988380433700669535020775781083547396951151011493422388948397480041762031054802585134237103981942106594250429025574735870745874398298536599326099978790659804698247546457338449583007255414959297836835180148322038722623821985006105099754057686893063824186826440078150719106402403112029619951512599297756813793846213291715957526660298063750702175153546062363916816498606278034968244792501977101401464497781931661595626668012773415013981697794517525302206129486488890895363913393479723400970591238455051415723728538724144090021500535138773454645144379247539811635799707376507899395199874427060187970438176894461483908264357065126182830899387101204078987535608172994923834810689706757693047668710894274235941998601980171152441894708027101132210760788173615976197073745677392690893286923321320817413417453497196298851855875189022855241229472213659106567595840165026794595560832595953839995220819338423420428496686991152115478582757910945822500238848232170902963362572783476107019196672066825393645747971011551805543045611356629894620871339756107649098498990535599501879091680141750576422473981244635859227950184719594628324279202705253503357302319262975304774912358695088170524953872467937093998919073362215288450040688652293402783475676068468256824330037270801760565842691590769513574204649625363342591833604953505725520147728100092484455497367830526637488575873335117345939721996718585274520658065341282185123172098273657016763615353082521965031979884221849261495262198002849495969617902590943053752776602430805477409991968558711177900395232553760504100836208755250939023741517095381738324293572715300675587982475934673302221993288062387359955331844971654468601697731667479048646765852430246097395332722084157470242301582910278316633562496273390574796095721970631588120190054835856647146172958666149867152562532230652087560658309430243735003156529190222489541104716061382801906885555812697346217653961242148585145375333768094686133867254916228833523840418925616070082153398332933193648639241858842038754659651741805251181887963800490320236679032464855344061955717526460996143055756289623993363239831118091957503911145917036346299153712555289813424807001933600974188273023625397334395350451047284243477837102608145653835908252004981845760974270588932600616873404258401722150929750972382066549670611749887892889021338908440663548772779353020732214107013912814918653914523586618718342921196062405457134528600574950691030612877283336567914378373822667913166958027629301607688479277274485915464225914671466048070429422636257607106490755889722329174800860224778743826581954496828334437488366218752620191461159590694810186494879171582350504758568628041825265182498080075607543343108477065731643180439560300024805301598734086603001861678489808081868805794799195414557292835444223625182324294179900842388949428685385138701147534982081508391300854668569672744072040014065994821425973329339892200622035721675084981645334024123919128776270006174557199155347414438292896371689037258766831541783496665569697945726712677041463283157928264111480757515835922496243202593031462850246099020300750318168640176219357451502099313312272111964080100369489933802067919893176649652027622183186189347673525875037279664689104336565676902250575287115430367121531061023042958762129721793027204527104762026931346993348022954875791278803577726304183071891785375094255772691623627468863579932538429726613507983952076172890939807299993992945462781409083503876836743459481694887730076316134957565821341211258047933757651026506586049525686384862913090724160252028014091422959794739846762033446558274639116752761157633440841281337392655669788064267865130148809709467377942328140168047786707611429027671059589292850273647817722142191674045336861402936698127512559706233635658485281626269195073444173022181553341749026604494371922851542780082513824799668246736643400188782405082541623605170645967443185229889176884368410960714996729291673198639784913158708044010177055349271840457474227391311832384729674743128726276975701560403538579783673915871539168567363439039827730851951950376344781261305689661426954661935209731009760790449455222633982623385648363231441723901677923757677306366463725207621789790244196729532240025040452441610770000258995238187855046342237981604037530547728139089894334188011597316514693740372770765686899584084526315295285810001927942022085198714343614080285917716147351877767184800414260414995552931882363233002938279708241545807526610448172707005501992371201609709264209406507961621427055093904706494029436757530840551702731331662673462185648031455019956313482767555511381825933883967596385368965069651258749372790275233896602397115714672787485314762844371776285373291642790643908482446095999362373169500864206168382924927335376915190988588625879195524926614684705388110303639554532029911418953774370019998939287543681002515096460698237525153152068890340561518929386661575121955649214226471397473680749123079822422185932246858897968991668089155312523103625338677225085901993378432947136946431934807350706088317144915674212998467844157130190309709279267112629695920376475484032335454352351061544093435235756357951011414819992081990699242339373071722258920430045877260644641162768101402766420712138501304750709730076504746271949259969836104165399810757927337426009092296482826114061408522213650169944896335711529440278814476112682022602193988913263821250247862438312374168389827567812515176482343075731473458271005930809385904057155979663892247407846352041187245463399828981682812156260482979917188248818727610787887780838892762158212065275414140912265496496456224157689030954592811245618152898120773817042775377267795127790340098431653524008316796799749901611111886388201518827865856113468355899425645406071345016377970110306374036282670345225227303223678125993593088940608519918154281312134479014207935112731090901445123587336251873999708016997426488086713115475037539649218990046641676395230287713736954398230227921999723610671599373437287991110661895500908746573933722241421967784067452984617467929355232161777004962307835986241043827494057200314888375910510600194948382859690969552722450568164713712011040104195617753338777358226079427352100699193831406422299774892522619326869194496398241597139993405076238757786255479557832237434955072228133645449732126707993519243493680989567888083321377604626634203313372602684654271630557901818001730441521016572914321255328267148433388847206699337715520021855199107236639508334737048167916841423723878709940083936402934043282125090400091674793196590597968752433563306068181718896562640492484862673439784596968853044280341496560724805320418926071659614274828955691275752342562130667098292020330365315578701201858027558411137351702512484346266022516121550296969426386079476019899496867847890981807402504231612982577665623991509264477656489109522093035098511701490499037759740084346410949555091463076221695161196365351626082602657862696255349796285790041446871803729781394726950059382128261398431593502355450384262851422455205344195087092089436048934013380471218273014214555557390507287549650244137176971837043359565649138705568706791492637982073723311334012475477999145911124015635412800623364179302176983805475592117234013048786359811486885871508816800140563769923032688589035305863981844829847659436270853843303982510812751798797967619756933118302680595377905490315790115171997588420910649015232454786485835131145346624097082387463356749369516338376961768967944429145929410259111028481235579850366365289220475290706654782992747442510655094992317698365596024930745919532845601760066128592516002139904812081052718928655439386855218009004889784684176774768111328862795187866721938407622244488507905951514667344065371761862492655105401906085126963176854984179743773708802670515909363476326344811712416925851596719543949913560633858573898555560590020901292452767415744732528545154031393243036909651407701987890154659114640177114198241930697547364951136662157629135814202156693990200703716508892189205161850385906329132650237439876627444065861993553380851130092398936591803557906954391929149927626585686823585978828558275228644707037067418290410591423387888393203735760461444769734148094849073529316648986154828571131312364159854358266087019776378092385437362960145879355862164639535320362760479993693044522355440374591030444582896910163059491570038021498806278071208318197331453710291926397341276773743778055531341766083689359505617361640342580934053774145101972750567802571512578217684074469694426704452891242403950317373534036658991459067161875979667350152131459321403426538596164024795068814160293492329832565087127046435054400628192364191368753281639273928915012268214352126831648330976214763933892806315029388303519331292102222905990951970464153203122971195365205031068346143913274288819481221842793268624421793910364669183562088335080409389723668075674942096870407379902277118625464378557492139286439694485284388270188142788149869146807138394870394780560608084972916411179585498240832284342422847879231779699044050872125009397688344862856263119904091504529678751372446389770358488168353711402322530784852770057757560810573110814904437244443015404302719460032701655316376582525711392976663653100438936901948425277138010290444239858797656122372236450770658845280542404448752640863300941692129881066617563813200525346442568730490400698976331097715779792277318041628601336901542191917132694387588186284561858045293303701190241423568125662514618671496411285383401209328896639460654359428353599156137737141005419975680183053276391705194619363201527927232936472416844805548184380188659234487524648390925857772334940892740592187206357235762074488708729586950201270568050586470278734910134804354527285802097057912700470408919225432333589574994817902365319601121712260915933764420438414674924932037322208188599090738552325500363510947220375360835013087605666532330009247172984681950270874429067012114816194717310173870588474688632898270662878056877294248614585179540838273511225452677777225278928828667898558977978980714951521842916279756375467076696294702655686682874154466579383341133331256420348937414880111820317518527082535212775408251029316365616767958222846364760670524781019739218464140642361103196160276165401609946119113873415091343295810077711107809688270175790320092060261290491801813520966505523813413991092837265547731799751125161156101638042561997139189259558583186827639233010075752550784931359735769840949506272476213226444805008530891043903940952237739982731258917304774892187338357594608561323547283022921809934821276767682672785874812574763433847778983825449023510729209170984268672828546031745997601277766148148154457408615306705349645556731899646264265900006141195372576522998135299996634440298390958262493424793371011743536206533852398814935351104333089444980404425185993669470056647665096437758047517015428300541492660858142021412591771998034855698962905073249271685705698541855263573342007957365320910129982741368845617851958826862554676370080525609081538411198692838425149380276023150864648984932975439895753869131626588891373149188579226632104913921958908803425995152501092877770193084344167296520619701160981092781791334566261996145902154408880918992139998200373280018231274334915834167556985372927643356744933873868036354323004131793512990577061168007214128684393292014980513970163618053142546671079387321179087706489842973511127578755893679852853957721519847562739273453229292465487455647317258581872548037436815785574584364467792183681557075271149766611721750732873673158663894871928090647708836247153615123526594967959400962012517030710461726624883623818275018484541971482784044711360636678335759051618357757618716098480839826530962499044929211726015717935282307575112769206489529019105932635624003742814766361964228214579507712242890818690293519282803034178546081376481742706318750012129917694822973183195786763452706539689091093398479701921318054992344762504916200598686672934266290310190027546885524272501731846457153282215099437240444266809823518991381977388350158612235205698269660780417974447944560744146663541938366726031868208308719836781941009483860927095899802617026700143005132797136861017974833327412226347996130622720390131665324534576028770298034955424155048814921310266387111846224091034021401760180618899917300460522349542943133700155338252762109037855598931022610227823601887496491176500583336691726697099584743904732928680031041216019710261806156806548271394803578778118678788479239976434124930754527763608082928907128277266776295562906463992091801043577863095081062917654756779724185346981303207068094733311053788078765977596109358442981303571234679411290523888201021347283436736900317123270970946971999043434891870977260553399118885523333762274378744053764764032294953126373173458974903409785796106180390475883600980180863414497089008932918804107416582429871084413620212451048319683405579415294838920154434759164147253380090611871097110558562236204009536323445713750242477548947824996042198052896689402827522800096802075257306946487104361281248579899870099996375476355665820905508270525143343058250035304791349526194701777106269579641058420941587399365543335616559078895328099136894464821438116968214819339185062226787285839868127055455093955937469150764164292002580196781972068641747327315203613429470566639718817819254598117023116821872276020067385761512355497253061817168415305917750998671421149043044751640105068336571628374565711044408320368509560090479090182140764618758143383404192848760312479194459240659172230026967280618591696358269286751468492565679710655550903651939419047727105408950633465604027084673202600080932620500728461451943882177955863073979471306477899976320605230633770336700214069282261490724967794697105313460020591303311512043575060526187549082250228631594846205992549344824225984868264129049096807497304474937990851961059158534975848775650116490367608522212050024964910807993374380071520507445216502712324846279517463007505149749757806843235348099672916807340257855240241000858913402908480666764958123957040476022513931008344518320793111532549750366605245589040201693210921154559947683639310950603684857503953683011558906829003554774562525949455242263715827021754822023624729499006393103460248050000707411137970981796670905327667914851249479657490876747098561729370902151263792944456850522631135547339829819414176244745701638975005586316620083951430145374050185646145842678807682726585187027580169669892428294295843407005023358180109978518895686153233566903816466419553106318282969506051897450859963344200269929551342999406940887987802999147890914080581163628946298382263308440820078478834276963626198837841594957360954863428173168897566275877256618982445280657249057961199026109544982438124284772574457016080827002042394735495612233483959431763758959609996792821133037966013357355330266646227525292891461609747210964017428647101755131447101939009549341951581815191689399266577224144809540913715866769147709399312417085535592888771043912348770352731521704841847261082166046800774567647544037457049922184618859179495993219715253323944962273610157559582101304577490562489817225733802386339386570659182571789342007486908596364447384482282680926479384559866073438013967673910410951598637903991122696131787951579702048571119652046827579319042337777173341944727345561250854609300563550484328333562746246828659268022564111690442861731070240810038022458713254847526082689081082249242150273513941156678342604909999053901028299917882513785799692193689032182849156339361975240436278185790956299518744315340463804610255868184374822941797341222207406025963901135375402653391757560758320139159812094213557703488678775142229061939679857967546863153321897687990313185039205288366484824775440337815893086822531541825469346173118123728595813315132070983003459424004997637520441853139840469562784183847682966508511778537265755036419405902843559507365576212943239041207214353729598908750614028862711184799352998129077328344479001539600350640256452227218332600824865927961805912440904376721755424929707843358816954491636397122566387926138402327470822435523396267501141410590450457176056685474587217055730356045444379003810666983885247502731223049839163113327164848414361767480793231994961008556555190681800111894678528214046261175117301405023472602997521577488276131205236754671647723215020844432286840031162974053529355244385764577341367233479841752335599086337926647346643390121180527552511334781307157813712140649471674224509259506968828018823696899035117494928618437622273007926387951980888166949299480242110791953317491987173470509445757806696168784982445908643765529559973926957305298145069651424898497203559192175638561426633056793112893647574213175114531800975690261395703808414250740366178345757675514435771967393322708574618469407277115732899107306127344973790801044874605358343369862786446816491369712944530135020147613834178679922196811241519552326828064428476872545185098076485283487079906522838827469806777156307654838042923354578318844137244833894736788005815305090065609309870234577117753954846523638111473262341505942937426000493284037829288839994297729692764036865549405854121663545089973371246210788886232743932811289205491879222195027503528374394217653231393104048164939340851285540042101397919902849494150631352801851882807370973120644799087728960833730430160562208607337780640300851132279905840595539853683902188270083162029239715983428717717241854982938493497248644821243356563244407996221675564290752135154551197736363705733018597137131021847443217755379154293906344205337798602496509244364702366984032498178750820102296057826329898312955374404356233469260084314408894134965849149159115410644632273486258955380621213389667331702644149064354563252741557517501737048548519543809948018243181101098635841222738500182913097532256273571109773009002878774128089074974475304897335842355274112952564840154215762780079516046893730602890631496943000437051122396596450388672601566176108050194042010301810576961362303333245023840586709485131519069346465775235316105660151402323017993851274061873666211579338822394796812699274600434224043720211731178323160832121766196148470556499832821632857163692962860486434325373632959431992859656732471705998139105554848411589606153337875597955231388947885773901896672019725570427004403314905663114985003504414745344193370285486862557960521529572227594911244489379092326820706530836056899157470477485728649356573412688128525737416731793969163067534169545886372256351682470715279533990451913974087744109587112049323455662723761975596199540742973209232394371694080565466209596762495325170258229734459205568006259233864985439585749080627439034499632375128909910977915146884751533407024226683626886723992902853107390299314889528488699810792219115648256962558821118434260435499572498898510050676215418780860204700799358005998737132931808002313706633504166723844030786542688878801077216910107078474300024800461058000822133119105188924429824332420898606937707727558169132586295992503598718779383636898954568099164810524446188903939794473049985207643489294897489968615096541644086986345778301074898444752756009544381861165294331082431242750951290264060545726510829989335919802608727460653541456598591594938192462867701070079879262332761347879495796080371306295711339743799116040915501981426446460717102494687462042454893446938008079018903405554892098412713111334895716729448270422157723927119372913933773820402456076489238726567278949091503010650628974430058233101977801264145499983301675504258244348473912546372298275582421580041809367323331347615712016181399295336378016837632735729594596837990035777853869331241872838624093609933958127606527778594690969191784969075469825959895071775107557158296511914535175698080864853921418265962092391657723060392047534307153605003560657550688339511764965405380297180853010925872221882956469200469176928945866073032308380672981514217062638954490207994038166595218557203478424039133676224235313406873664552836005823303635328242551619537900977118547582875041892953292488574356205250334121942265316189003990558270216892479113929783837072431175252972359295001915949126417639694466782328819025570717464553608950256357474908027247546286958797940418313739488957297083143391189353200309039076687501071925038623572133645920933707416711622445446743092289524754745847825808448146403868733990726355277609253053976062233759563891829846422366741735782110737399277158323429469620278457931180480605478441685003807810258895962786143749833317049137982322089510128730407205551215194633479359915759181973903953325893896106927947246261438990369575725576705306446971764162962910796188575457996660796422462370634645348360346947462666925613431131547073667725988977943061386423914166527068476298743070766142861696347858682712841194054201162055848387902298496174995879458133086927863631607135163950932002379526338113375787478717943180982113137506419606805171353885786186310226697913723138314214519598245396688651290892123028823924768089075779612800189135176547970208240316957865694678672667819142231715618285404382593456375769384403169706091092404894721854168500826897193180761914012700530678919273320291442475185229177356446202422844042165332956828239294847996979475218480876158367431236783345468342796092430941434070138964636637976870639638504120769864104153382700416898784421371499454483797591882711377331374684226914571199111294208121790828324823167009126665602874281958005731621078987525223576569395632623176034617735653785194379343163626447078656104628810537329952199715212256136205432157646551236503840762355917243682267246055193789472134861318400862868734278105020679427936062943273164883728485789855504887629958779148388942681405194861564915157382848318597532701634648120378183781052114917184137661719931904567632004270054867621224171317144776015716754423107400102068036217133478976404439545124506316681943544348943881417102242098798045235523752687168155893194388300934310222906934003974503649833577293719705134126466620281435608672307805528855320196414984424495460756336974847605528276031280455841862882594676735623660518696499460278719844362358407517981879079638326439310673809133886781634425333405476799770044032435857562933762083097030202797113339498711806926880743123511032065540539243151567667946674801397657567974016903514859572289778887212277687805282626227842660750414077699409145877576082169617723949886191901580019353916214766925744256806867849864444267997532795099516762674258958831462186567590759806534138963246158201879577971287519137653406737235641596978022231642033332849297618656284755300131784859253265105907584455349350451079179156279168573958486442133314710681203894313695312582139678911001851293591981459468829548541488923096479261659492642698640978375038358038782038619116467796088701866289647010752483083041075438489077799905964075040674350325949403149787058401447095267134374595558632868259236245473830357039795570436134376903449066365519488700911484574676730538442897176914572172011902813770286131234323281043118854101384054797493596555694045155729484047486155759728110802957974612357626285895397720418009661609392277153291304973741354037771674937279600365211358461901133652251743491817928661503433266989835817123336056805157033435418852669462707581553476389377577008303399642269997479823646404303475475614077570094952277838207642016846062910707900445449535373341075453635564872708008535537601910049155942980461752380284050182855142170158940229491851433544288755773305180016303698386951454415717857483334441641846815926513771497434368048511838442201464775585203005069821931724642736309650938415221104764008658242863060553111487161841905741732092996911930786134188170022144285293118524959156403100893709367116727081058223059205585660297727482749798283779315128855472847624498237216725374131933425726240652338254084218729077285721177562596268713158574433294873071924430683957010875158703635753771872928909602342218036599448467046301384336530144807957878246991297484017034534116044618629103705788219546411066562901539423895056758752788831475934807190224271697731492044073880659599859710078215741319812410937515055777515129840816363394488771479718172910267587882922584807739199469911224955384217792641098634177074531801747254218763142883206676778868609517549928957261041846186597988113877148983251167535750409955342384747898543714564894333132423348870572404739405098767307979615433785071773138773052941948184479981371074251496989185163304912026563623915830995689588276235501004559564401435852017246259798095874839841219889303652800247097594905067817750466750161091151087029748872176719237466791974748432958774244965948306098198074613369114304869465964007511552848314630259005288217916441405904936777384363557679133110899258863112901853917706269151735879516889024069926178584301297717391340499914721793589409704713212591576607662496884651960191951580765403858441839062391507606328118398615987821501656358548665656998030807243105889515771400462314914466872117631296729517769760165706538796434242255155737176420872541466779451736737240958387663047720881398134986920276486565927604581434654069303414614264811652399070922311180008464572399811173948780411394521232703702086680816182907767083245572218979337524893751029272091527987078518683693407437899715428700009666354826581165591259331442207038251225373807243837074830523425507410798958213417884885170320898831301715142834189857146851271131834145898315633604788579853241177237081255615170070814427250691414634231069070505032369929064816588920531886002871596410983741907038828878120688942013120416536134594571455986283158762486117762934350534708298958306459823791589868532623041122225303598431834557926936636114203387968837434882336348071106880368455434783735353526480026556111861489033415430523687299061544876102535740221624133931971722245080964529943652248512063805331596282716618630061571870830646108931275958319225596806994112709030399225420675147546029573644669427681931487698435897591735189446733570668184513965843107544752507786243644361848741007876536486525065479818414856937302500196809605443910630721591192336556799273018237109165759160212427942322091916561169321290119506300227865243147992736065544517794898066321099575804293897740680431338868152253121320216077270558112632981350407794392326587041095709821350769408343974365708527009759743483640579644997517143148957225967262978199684962731224445808591150911912918851921428061835780437854233389370123390210026416435032338424571253747994966209155195033124929664035827378991064448157871200768868934813703860446716926928805361222989119522423083164429790832084683041027163022247116584435321685883752933921371639541304770774019949162174058389018606333581393123728228968165510748606287141802013432324399670125745518521945559486037596464170975658843223956998606361375301730264077583298521610822320014245328842530145357091266734557834194390946952347160322176855596874386955695176241860143552936962519957100451511216899527007667097990965062831504043151215675058696865307732931139233769930681354006357502314885296849745302514818588167739525005408489333120176956846088535931070748956512723503971273630600488850192248333895447683275018664919290104525316899871214074067834188440987047313621114910718729026881060547169998014884283137382015357449569929448708751804727375034166127992567143919319917314665501806110284676373081602952563319456394606141557364616068022449023498807764289512516078648421511423486056331439972910587627439703497477563653799911000189153695101126297463364873200542141897042175360906724949822102084114764515929350592373361710017770032189540279258111043162818706526713737314375210332433112415797469033042169280064839356418048665248355154974769223224191867184106950208013506450758668891355909683515345617858852766924409920640626155751434306627363689238739940375307762978381100888443620342607629595688931991433840557244270419052881423760366618893311368641851608858550479897767850077430329590355188872640267239944582603069071694786373008174455588563652972268001215102545516237461005982904416142068599419603825093470821946911788327102642111309246546726293726121557385926228025086289091333425651242648153510302105791725948069796922825954711939240802256792991182788804845252178814871754315378517629063760169306239768444078922174264813898515679464932781655556684239619456057712955616366496360115729934638244879324865534118568157593253656594371859358701166967640876498011053290232068130361628311974583152169405481263895193187492352043996715424292352411307824742996845616314433177625345782729167879762823811388690293349087031865074738783844459700974314651370047865022278069389469272529485636953894042981549730225978582219337827044899564286009858229888028727047088664354248505866047781880753526921350268243096465241032969533890415003296616062336534779352524392606253311592172324179663469847336798660349587156777975498041084373776555156345134973247317211661330920707986807079190750156506710447440944252312742779453687029509863003549268038403961311129818337658114543995523841928154109038304951419325700590002629581622399827608666704050681543645246586974698576658577423010779488584891019338389716350023284491484075191132880781327849397916609631456617109527665891463614998941194266893549839019673575694098276467151865118539837868425751882905112822906704839220253622746938987756352874831293462244453832685252405293037702393184304468130964304161483523691164881600565953864597749126768211903093211642542193766948247500598108588896319673841758417878159338836277845648792442482991711745778301092076371823886732429530652092932935598661003642491646474110150910116565343049109465233058679539569918544740260098359660348950093225808108974476138661411823787385138166201654015171249174663091287953297782080601007181635299389175838871485430310466225672622117609307743041505285936860486673330316096172993627906992321504143311398407628947460095402203321532573972124168184196336184854519553796523443176974064998727822759609147118201264066653504202740932199862894707003245421990215575052913032582235624167732188937453415131354521782888622407346980434341029231647158474774368000582603808578563559590952576671760052607726611006827580701446414005780097458370265853631411014128562757100920528203317084576857898044461231672058505096920143559781296241984428563007798714019431237008062938263597914756427707394035244516158418363363329201110536608525940906595206993731542280557000557714099603422659755210190469721278082770697433722007726731962884275909710089265212894154976430919935006832456895370592361632743161994696591748956697553582677203089286766568588120441839168894876341644570844376622010631131166702681051737298938061696962151162911776122603318222157078052467229871503543467665612281745074967578319121459114111372639995262993443657412168733513304255483883425954908683858102900387650936257081845952595578290389141453461455366143537763522272907568652269807405232602218892467409376610416233974659001732584935833071033305350664039497477240363277436664260245721382053327727755028814724889566957139218958346415835443700510976543872214218475940297529643384317733691839011710498300399900031026979774040684479751385127491544810059799529472278274764236097492090738223379541635693843744197604205450963002520313077653634739892849936494920636525457759655134891382024881804783498015279438971758747539158845960481744772468222278075239897573730120304503203558109074752811804999928575662929815225886120712055401857104869172801115868823592043267661895262853968404439406311218960228382607330858809987248843058605958681388072981335790520751921326276371425755448817486326082435764733382157429620555451827565609653341013381319816579887759509730235520211430312845091577326138813476765641672199543204372109478534396318557424444039755177833764240358325297872201209113783253786473696303345906193206973294205628685385828804829876677348872412183394154554169428346682811934050719875239164693948975395719178177552628932161189958602923579022764252731695177443070355235722045785530209538740565360094425995088770854408853138344522771971957915584053490076271535487401489300277856625867784172254173798834348855357556061031647112766350935453706919724071273883685440944919348623798186554909723082593871819716791269526402511691976979856277730148403030108694848217590558632296162420752984233948450966215131456218979110422989694130222431393037423601995400866994837190193203538476818139756084902173104312204786458558021486778000956150898407218045089944425366846461914257296678681276946674848458404082525541483478515690125381225993008612319056157992272615135219343273424571592952128824709884166497724076437388658346815125025193728947442412205093432707787785124252344672663856409218527066608710697168985387655669495665196829689637532641526421906778697462400090023476953549047400837534849645052505183457666447726870335337060303671840715566534528310665561734060412117513998321940192979949837932142834644759343347173676577081042306189426372696843441126125002803891176858116159640535085437645255029338989015191795786477562611416095374629642061827945159702835527654468037821363423146952362201679724880131857936953509630568237934956607635756406237798784842501706558429982438440397836213827582498638966845132179501394476423827664177585094677983867663491468677548143788639291600212351316930054741020897593553213611856085308878483862661822341343822520477784055548107292215318395509435459639773503989659040219124846184562494405431626276106236830215415576814839899324964334537486545197802189444650815994637009861952843482483865601963634488962753410494185247845646894336300454850239465812643840820015351665938215216876820886451561180505556704278855215507068469718040059157113761288400871416416051205868767932044463453184114789580967599904181452970622939369181032284748301124440331314367949687238619259610525677260922760397755522908597986343087179925212567976936205182040348723237893763043070619977747522807158180910828537984280669304046231667486015211537619602263118875176575096492810768790955890266207352719054247285425249482958227301478416820396668802238103862173265979444106539372141197639219789997710274622786357493687546357337516559694291168575393935143953833787948055550920114423438952039801810277948592191197669153761747043226218530926804635223280752789750398328025642742758336683521003137741300135134122776864679331157748153549473911252808716432512698269849102459967569669606245095276359340413350814345803810314794090161080693678445015863680472934196823241165846982063116929706888248803971571883220144006374353209356046064351889957504801692188157190389166601879784373638083093519218637295172056934183649042072490682501425992550178633852752542438581536221319795976767895967739496292738837841726141948910657411573053971971248700422427314678946077164329078935733747084760782157049743741841992580609647746109925899187388222851707801322649165254706399032610597173552081979440566150108606532677976723398118687557117860482438115625758095764483673337550219497607795417097886721425876257474270049431916865011510096830417445916985079097146335834180197252077175797818893193915947866123443778090059620506640661674715479225640962706500229356103163948517910295196757268362742715474846133969094242432547562395764825563417982708916791602975222467096787302168784831212757109081781636230983276646307677434304581298178626054803271409542464616934332468612601004681148980107494072631087699558612741661013551329436403256160890027365413354502269540747456309654783730261469895062913775318307151750399543297036743483070239703468875386296205647309753312685757410254041123476772474797496643039361578032012437510870881960733890906647560091960845628974372092705105150018712342525100702237572221172139078857520700215207226171523084944160490804750090882460084455121282041279070420968425203909950945041766518756367529515577993734033156176081401418293312752009778882731811957895902664208654037542502086671283048713579480936521925226034476506376531018484024145915427405198304163935577662414006710105924979308366917004132326111895359000969352512342840437055006912188907804441580637737496595348273321521422754081602436779502842126250565553447015047010434855975726233303212005196025465207200154952718273112469631772117509918329469131553273822902521264978330152007285113660493846493770630626170047472672094970161211512125849996860831218139154711727277698694513187339377602625906391839506913955819398711368820937019993318132199547021672284379196630993040792287048191552686600650041092676951925226710195229733736159242423152603631932785780049087651685782672797348729196279750317176116477279812669404183828485721923170024698484627494889106122867963443035237320477480152707509138161303032911189430242832482362904862842050044697725505919410711652624373646212514851795926920492123078708410026214350466530513134426216505153843870599084698686086158090973128671214714594514334262759976281230991824695313911992614403724701488922005316400719668423378809635098977021174551597063796518443938915421211402327856534359738335497101865944028579076376542152195940393484970411896805410971097263780117077550140423664866746173199810854185593646769660530350596815735543779373672377562221750118777360413862434052548234263613520146185620145134655733424397418567141416148131839532341915668239453917039637308153802073244788321132337692154410149946911553470323350374693808084456070086662073495305762430372364132853483542735290700358411865371805345264266506007661890238941474972926498201091443113410998643620749256616574391304211131784068838199503213722613672212596442558893434440974310775625801978575088561526302796745423518743147163263196938139735718987221628727545930896661325863819374455534196943180694913874391350430135359170782730403181415145815875475458028314008045458460000351198862754380051585364893465111607001012226665242684315820185014960292492444595207271650243089018523006839062343920346498733855995580513706080639881842557747349544208259328877330694729817154886802832124332167934612383865613406476047008683384465527833209940064546303203082570736375894103266850481823392048671242003677586061096570087370285049631973273655582832012067956197687344046702283091486906072631160117708894471385466324325256142115357407690337274652317328580973858496566703850854132072254521828365023264380246195695106523600949137280977332753319687227063061697428991270622704044066012615779604669632008418339079083152162389271997960222350025597265789291934591303271444477496842976389473479586410644794878073549017909513152524760934089216919752908065750634447243987538974517202709903325777839642262710058150088394229361499322139193427604173584176092057039124346066127037592541233573521392740294118752128649706540634761905711748638115333980556277628702803997864337360462923476230842695959337405496690311493382658372030048721928501092755280533672919742329397391333473269737504215886438140922040399550325201053347863802603159303091725015096774079334571092356723443611371256774910748875204275219699387188559491375109204551668231759914256530324634642376550891545567521295583372399597383347882841289929939244222289270325520050801772796017160212170156708204526532018133833479533311754231872624332042757962219317591220635677100682505155930937921415608009263744382498006715413197286461864502370039272291378754615617568720766592426377887307182313452080480661147482768164266686621463401358752928188846246656288444220351580268083997241520274582545893981369037642659358417517571628954495481104185546740750174009747798297394465727208191914683954037684833896109533913144388421632312368126632837538365198092443760599822745961204522810105075557904077176441586004136594291103578402643251203444775432644685407369235462951483363469517976245191943350913760787091015083451413020701807384067388565824034535624465373578104302744371280820409658887485579379491812616244274449382111343491986026111230761015930991950252444993274604439698674547657476181958753371687598569922477158044872167429629368062917582138364015198393194059286574069466768447492738442816956179764500771256570159556692099876831370226129482985523722326547692280326019851118263054075963709110502569296945932375029015465779652145309601026490437854113533006937702120918620552825670579829433757516814365969979679417274333187627536035226891374971955030152422576274128724986920277372850753709856241235462258598843438692732330769581675034544021372648922182110714674688512412157863219830076167620822889248616854079868623253023950932539266817703083322734164468681043951100475283133520731005010549032670219553233665647969557658910134861217666702563900510097623003384956902727720119155945660189802934074456300360154412917521888704653087042827026271158525821208376844486587551547925321249290529165929000014147095233010147247987482636238987243476562571720019086980741430482903132079006765815888834614328099816132684225196110036067924409565881269383163215692024815252243349090436783253341921449299683014638571448863400483462662568443220623861169047397316581528828619413983313187475970137395435419596633857171642820251416351099195351770258007324235504409520337591186953204495145752884568464734624100589128845959391511764636666676321605868411535047836242168445581118674295842627470328695464616219145996838413468013917927757387499840118052972050698109628028330298355321905939179828003765862201287792689243986775518818011343556853154872035030950742535996998145561804266568731166689103775506694466383317192938374668199022930321493931732134127908684238624732670885123994190422112670904965212586216110639654981672489504256824684430523765662061694758217900101681401230822226500279843620282947859561739428453354138636707080676148818902647369907441600971081051052585093702404041427230130332141064175619596898979719957707546165615319215114284042724952639053961931057931657660497340540921591345922996058238992025613958473649406100485989359748476766705876570288857151541742392835874325119864571803370163605166794673660890531381253652333667871511290409436369185699839066825544086279530459189221611710977596081417386831747663603130253415223247265147359405859623296575899038529738586495797496005637475519229939958887421925867474234359431090843932469337537689500908796967682276695288274225486103957934957305079764799817697921837180928211274830450797120882212503526377355709735976254832105763081458554438423546997539874801672259167965040115667220874210316511989120310274029836871551578547525384136309521876990798105520423257530006789981570876177659538369192982182566962275868694250401383862441845220762633369637420011227385691165220011663844869931578938770603452571265155438031744172671654846349497312001809966481832407567827236342432251308190761390399011416033881217862312301510588635733899786532996955035764539106343824750731221932928784099784021135810074234605431335846363679396906978378369642709561069682543174096580672987806367526887630230299496859567064747889471748486095312320232824682038052842648946947805787783971565113834033697772911456433598099016281500712185153786729525724208570607818458689219511258683147636255430597384008351114836269057607707303031097991415159887723861904203130095943383205509633708576791153599025777340499221327879582267886085877743392081578395899038392726393233733045872546181049305585126235068324948646917393060552436411016667877167748420542845238897823034155820118980909752600601817294672872590482727534878490907043021691474580126672503459679732007953712839726409625054080118908555774550083716422942013499333360297718408224656274999059817699613789299233249307222039218820955817112798898515284461948876775896444224343328324472692414638411518862191747192955589751867277254865628498908381293627636542857449186371679439625182412432997738607656448369790596422381533814311434362801910536598480494481615317219903540360948239036812249440142950250955427521051971426215457254755619282691820772723994507023598735652974820637196695305989988013639852932945056579045620416971463610552824032398433610670291124089443501319137586023164818809504041654197170898160825955127147858627126549009104253014634881042462212063698154986092918446098752592049393467224314791448331521724805657035916451162087509354740323109702328710957532711958794591805673631713420175867452784748737695490216818306466986862769037996774821641345566927783649852612317867368599106237717257584373049633171741124936159650822798068048053034396393898357414290342611830142480269735021637188506674243857023418261531045849084096259951772260902757618552998789383324979414143677543279856747187383385214371916784571322868348499033699811364727753801580222832417157787441962133056552701971526225264600297589345937569654483304925590448182602904089067465223794037559436142700968160393142414006014691913604075621543894812168866058293555072447023586842754582222801831929314099534680946783413462368554507297915310673327999639727623387363643727189922137527868854230598149745837043059120919943200005635147362185301326317403793045110978942950134292768442442637340642354642176318817789567827852741802303842829583231614842534518161544574897048973269116931452146378940398082574775517760471520566846394074837829282277617443489949020436442184248577327568145547137533975357622943116989295855590790442817892376366489036673116201759118020901966745963315855720169209358711301829564188037718885462160527965186664783293134923318697805228846329775648837626832618088136736550730806376957986228130600102162529617643577943383502044377564303030068869548338762360002092300504387702575696304731613321056425228100224138797488045164477555921654275814445487114162407240003635126910851358455144861526935043053329633295120199406124193273637655522419277665361578945410266095367318564208606654288187542287457472105430393898791944698584524115350003064584160410145445728889363147439363350428848433310091992875358865823923124058982160143550371918017868810279890231794984377402740036013879916688979254049481931583067506436706459851870012814173922979572693406734645804993548469531054151133217958818426379723900812425758726923156460747656584040732379046119589732621274602382245249161032425603711097859611124914409057368080378119900708131696247292233941002685363665664530959289128367684859435848238889948484103050614683878306351559714480489432126467610242941234377684497697798404188636212282792234025580147041231033265141601299272417516734298009203992535417612090853384036414098569290488638100800174511831678565988488738872288088844566883797070458800259441430326933526694625692436298488346847510274055516551701275155517018223702187110707323223301536799321586039159766151118438965359355374097532758609727868635625589242204315708150078706092127796549646000593097537541069154726979738295506752453166276361226879529064171417467385581711891366244993909594407134278829776081273627890917239803035741497305597095632632414576252543610081447074592298058589635495672360932868960408143235170131608620815548443655382099785738979294291194054640276498480582630526988560847871779739840515725602438436914737587544135698658230886122855203933428601920409576133654532838644289334901525190457570227624661118840062284273405877244895119170252952937791840560069311395456520541039542016832482531794141617943370601132296986428192445339868653697370916126669131318267987847452034630667383090418349823716199127800079937722771081975782259488134542140573185340071948065775074374411920548879807312801521086001468723998797945151807767271827825071675806141178906164126839314237239102934998397270592452632939170665546570897120423090095134025468976351913790892031775955639264091117108664854811945171407806691592498549161217204433857821880287002295475627199621757205171341121712193241511830330757128520055571967591791759359350399159400556052136957861686888478925378981354437841218597135079848262007743137415464483227356690603107754182347228334068932647506756812166141366909607875954390372908259650247997603783274189198074848081133930903487559512065292307847971132639709064331745353794107717547617766163548734003112249031971142701136173782873376619770908618967897124647360801270016245956918301883421330453966812882404648453754480370963256843244662936862334475760140462452590480965287654489469730888087447672211975914397919743096446449669685688663087810653639323961746558392811061025048581427380367686625077808042602256758284545098621190895421481452594647562902183355863099988840123957634990285584192689862980636405382788872356447461083797326572779197658198634978283353683530640085813521130395005507875475127456794922941866474365719438619644626719675099238095012584121919793569723951790694349024663880039641219788718802015947175006684012818749615325624125752935538468512069115562647246917769735495762130936622061675561056328709543547004384623077701080105863463259912366525075989957176012659288675619894841113541927547227057136213494116339796415617926443779703354180198306726836813766998725598692479369093995879318693288479786837405287529724254205366550629593409065605790683487721749634689382358350177251143063234165725561097783980395635479212870364934126886650894951354140257015722695156348528868005348568629983121666292149236069601429708479833014981130225706979094258530295681967134888589542051121753196935311456599081307299054073474905837141918356810140193803466702366899482330335953346475925038458947505123823517112488449813670294796712576872357863686656492356554151877577417786316862334202816445581780841734197830199347769687956677070729941029682526463256278437162066446763400325833091928079069077457382741541443566810665032016661791508567054620966575417209047601139232524157485749357958488099723305660277398811706839505985467892403548709195130685607146682031447771997670982859329946430033136686765288689079234389522196646521120107536444026874064869434550028363867670538191258221894350087725074979643807469220679744702620325207208428002126136994565390256872970939474542634607295679126267897215130173190423750457708547671760824276140153405685441579363554206436467893544301845755876364264282981629160455430237768982067729592080933573399321931183989409878563795497814153557053683405111232020966921022362550897121253778615336250421944381765162961863142507377269114715470319991326079402048635286970490777668178121585017275659270312697840597312385435495930417828033172226579975460985559979188413035057057150910736636548191288741978043974036613349762694655564689331999132070950233156684934634851826884310170603503515511669284325050453613136334412988338861838899864384724880299213200442134037948722441198336771078688287711312867310818903342251167073294201379810328287238488714851430579126118582089458097272715051073618225420471764768841200145115026147312923328896209857931140159417951499691461545833284909447696370168991981252331641334045145125973888918841637104782261655589274702146224700120609358226388591100918974976568029052892165243803362614677007531876249638225997301181045574002134255247534030141346751898213628608624221545918257668475985047721620135332259454793132112719527297619566869011159360203089696640699644388997955743529192576832010502144886277086522482671013576134559330467493889903517267927290442350309751830493710370981861048280697378699121030319054209267643024221295523808071144932450998299654898721632239226190477085300358106338393935070959114596557291970380130418171256292265031360280101732316318096338553624567344989305367304537745878362072714598893499653885536076747089190118241273893462823255402822012828642009925851298666748236373782945514290821848191557421374944033930872709178419090345842625325295039712262420133139625286184882770935779708146227891406888965159609174883326549513619308686838256937522431588785323935681744187585333828354117670473581628894729582953295806037131724602737122030605207388795238204046513088741160590389324577127830663859589993379829936382635750343948078038050137950813537448173804932445699983433244370417517820558407528692261474160957223528693508022974667878880816998292008929053570990342147343052367606190361261790196299320914706674574524895313914158139100924660566297173841575516457574059082248767125238479059068263584920800951969887914099570950915648153787227539693484416790976909307942226870501389748121835604123494080172474225570173122563969161651001160949967247114927748497442403230836003882227018368393183573088551282048949715183684862049921225823420439763934830087086138003667373552868191644936629375597535450528999987821236558525507498839838142357704628595979205953401520684608944902164242212842277788225639886941604953590461661636928542581250172118262895285382345969881877151836403397149913432157919447149214473574805222634318426496142423908857382134089126725360921518636204774789735344985637170184807272840178006043086808169329168937154866527640938146389875827764775600730936552896324852377866770760629842270788779419300797672311486472820681561470107604229316363216518801542578764907425274325900235223414872648630291298269859896460248746006863028793642172269971289641053532091528381765788295983076417223885261043979628996857013197355874229858572584543066367370316503104983177964512904013675206973537430227020234295016393297677733603284878238124032733589999008348915887332693419730562565460027009815884083730515516740513347035485627862840318812250763037621305781862128306535888387565910988159709241269127106509965642677135908841166395716089980884043231888585206175917148522881865400139409920500970181358061717134708448974335868245948293434689195834306630017354863720889505362850164681181908719487333755359070146236687726758605983180801672951973957701265601930986627998005881186092707450934140511506265489788800749860067752260110217770367120023593416118832602279604978333315898823657404610409286575946164195467358840932532191644191786824120071985405242288418676056981770015119684227188393954921125352500288969593550956528673382092511672824325615211560104915966255927129532851157383350379887358830291795811657246336558835731835709937770917256855867849044223124830483147577709737989626688518812801756158072626744052534824895293916007453152227690016681328284935216117370578697092349276350876685100781817444216432065135220846895544842999956594148051406435487370297711829112837345628602290487423998211613037962055897203052546937775777016933117917673438493754363747342374318673639573821166530555126634342715147201543160985776029111757635423461613805345564060962531388286793112905186806282220523155714625399869112508786919999536680740795157599999274172124696683747106021992899337756361814320565688722490587591178392940094453635252082245302548690933226509312102183148299410943683945485171951433038465088269979714280978326572971737196037427007415809428443909608477821551601923459873337443940460706136199352612605478851861355791766839859658683022566921978918992964750050210376860504155882735111805009388603885964232307057515763012706125409298834544717499521642557590395561265959954294104586427639755541416179896214563367887529487582341782931704769253167385152982295563284791654024793760012429720372764617267227593466228836168960594436246932080744468979700234766921946826282843733915372223460184289517735710453653101479068645075057173409639493587994752935149158273440243788867191314903095411149954481369855233361868558847655623461651563656350983499456947048570644441670878203078989801307367561106158851015449114363980798306413477001721387207750505703341106610011263842098319820761178416296496732036062778732327494883114148278361069172085881788830875536724465531760164153125811573937679948143251034965038501063438747939729925746403144497147252815935975207820389020667123690105869572797696959739141930996087909616463948458445501620206946211177414104679597027654134557042614882378240337762374892308711646677034605735140697681498256050025319555364850278968659436612337002823366097999206165458490196157743754333414549996225982737999246501609331254914675312829783672052418327064098743671823013413761200106890672603922450355198449429065159503907465826373201767431893126122727990469556126735290843376941176256704703154908325138942110795906041298187974444451515431855226167367472486701434382474152575259879376548018421648937802003559404945082082420433683173896156803734105403999206832980736427446321181568476992164807587922669431758790354980054736134979987826866560852254781732137156355497147281011387548610277967590644555451816892977146526605469497244648105387472524322415574674226839028868893484009271226048874041487169438277858143173090656481567202908817526198421371350670391960267497810768727547194343438971539415892843922035046880418702424196089951590730871585416245407994332427580856642593821476000279165783683271833236387381266820925771601363878823883888914219842221438174989408184548980385959761599644680064520553909845309695572700973654303615196473154799159753206182297074198635694146302443418496873215329443126335302969778031538325895306192307972571393991702330578045950283148178664170187146845298177616492158551589683510061493281044807765192115020294265126956319142103044232293485866110789001470682566527900390999956011822614154435813606563215712708307232725968958968519585294011404433231357888914258385453886748723288871482513612393318631055509604483794019089852954921717533189962474994918238853754697601288936977405592479862748393651949187564137471720978751416237621721760642353791590580921001550990418810448319770234493099694853962875170237410942194597002252026819989395974662547821490183592424356818621827984796392524993934924734386618505701055149219680659263657764878032223126180805099790688431344481614087999754034737221371996541949562216952335883673666690710330972289545048218962445111629681545582825374823065307754605421462691539520522654741436790808633957005249278868584863008793760000139448482063855766509539954393394869869676783054604200123583600888103061377421174462598780617305528637067957594817582038330077015218760755655285170920873190953348605194367826704843538887117160152656824502728604790691224814825941527303881977893217296632847428851878009335387285650540440961708814511515030760991844419613329083939578046200253154172090805957704455391861216817916236584902544221444895729454447088467471784858654915739251643361407079927148950456833969279790374453836825033758043295951010269478515604871364350262930573145240247892408416021144121032594100077345465617881591404619638008222042362113018875886818893161002837541429275902500228453344534738091306417788613075185988030432320752272397548603749136860996580159071292928235228321057920748887649402615740893881680501557499912352938904492139325466322313288399949270557807562543459626370060857928700642703865060092624521692495262192066577663448254187683566626505412868232920714319816541415061286468254013932550627761689713752475882524486834424660787276547491891848958676515952546396677035564020405332125788555229655020290136590761743892570174922936027020579388421028349502892812410181880128572518435124315982296834778481925525403742346204498720555227117710545901583404445283690403612350588956863879393421537119617323475225339326519770412050323530326607731055658169483730762999826084353822888067938467218248455681756066447271989296363955898223834163172719539464252446681050092153367268598112790643367372334866112449989391273302708719854045583839067430302294366477631010246844890611308767718214410662311942293586964854377087718515277601859763234538254036253300218811323921528797910735750926436793119874819164854117352205642947468793566987142373611190451631205931205300456229364825513712146477950482582475195237915861001920919202802640974351748478585321083772433555919194146511368991707777063987062378229113637983100373317245980397236133605629660112687288818979236792206417983393367546574358837785956167084802536402141186350380452972823494664025152723804174970808813302390132166225235770608953017063487413021948147480316688858803680738016469465999077845261299045953471493392616148801032075696874166155712091894360060315085438754948281616424638665088194835917760000837875031283103995082567541202593498063493309147966955067425716425487212527577915506196477716550009273259589346435183395840978170162944687782085127466519374811778327226671035043586984584554425851651405620889479268240531599460283005539382181904763996717766965721548534213336931944564684234139286035733745653202459937576959209581551523944948823251897756651834766892627926146151200684818843809490954784783811702259604754351375440141477669728536713677727767173121625469634752155465040562945826396925419195387217890926880026251710805061078849514776116811295305392949481190488371470034345074533300422871839488588045644696545913367363133045042197213570901230026062767638202519372074328242964429476552286297548732727292457270079002691095282584541760718360835769914182848632765541393290100440961277082420361576518201592716416280096553290404128267982291424375382900932411478303023057930765568218007519641990472539131753460332648142296838862648937553952367418577485202536649530015784399566412260194828491297599907010766197683316499428211266987999211540442337186468141485008595075780743432601704331366945847365080080491524256678091612483257855755428813456075970002394517521590655107948448681122499764610741082982690732208434592956264496913228758992715294185977665180647733666046081131836479656571191296352843839170324634089160619886777120319762050749824658961045626086603186262187068708533214486709137993433793970351308224147014525886485084545231773603680866226732529640745063339507317161864781644995249088234800705099515596371308456491388507994679512768845013846669933353667559844042827603193997474403260616868433671697967668129912884662987382940823183421854815737230352570268497201161702408733409059162774986809110300890902660139202954121107110324209019634359724771006554729368458794521468852376613798131088414781769304068526418835602563017338069602483851921747143788992432671543374436952370546944213444952159257358027818842887301580251944453678750685261400900180047518858628189010400765725839014486591422446689622052694260762794775504805854803186185284232640004802960151924142393227956252214985564117597663414553212112330620227012315912875910143389040275664416596198006422582216472815214967400357269782981508551317253284229073095677606963494655425773663095160401368988564378026237753403232398005538930272741207075693902711471916901911884975263947771379669121379891128063426335569610228938349555638723256094989526530650047955048775797400434274797384766952184238217824043377561942365626392277399966814939302622963203260066766684529060194656340996809401324868322877301279589635468529274655847542540302228874163144552053568237119348381918581584730864233722155884659452293350810355715334139828213532175092024620233604234268958668776124621559923898326227983320809812329672165058851679955584986626095732664772757835687910627631299052459353958831108580213087699059169543520904458467181713169453548218894186000017034493610121734056149626852840979940784271760482215793823348907949380305603062195232928392972902770893651232380479647124286584471597241834029144447704014530523137756616301529061828289438646279640921372455475757186414024233622505668203302938642126749546188212082632600457159254860660467099399463719695554320345774774505379244052391455214768282735304393086929549651942113174355477614690622522529721187887243653905064572518308938142508663790205558571391374051167059243077141520729550456512198959098385104967449663067381246758633980866178262226923992108367297995808788037653466335075720477022495624633012359267295570412792687309682423513175970102853791957151954949984975942069485757198882366617454130710808625825723549338383624505117303815725475952396692551125146437831595175695895754382095131814364889101667082582482556020296594627676333382590238937421419677992419579456076053859475581078086140217190419665835582411437234637445908580154876915631079186134254677066900301060291497970941973337874472084123461441519974966638661701684677591457747447975939395032617262696598864658694866390538964931845638484954310868913578514529614087350342523241972732410208700152909074041474047901892749914939383290673235940489079423130636987803592556390528772447103004390227681097841474528146197580815709015898189794449598465723615381827782284646474981849701234283686909479894446570617338852932311236825850118776062760819873579217718690185489116954297934898708455737904167076653632773670844225532350633649633896455310931280286994867183596124552935312276084720718523822949153097827328695024417474102615520316474660231687390431916777088502410581750668247885305380763167676348801912051198430503396604094846660173379728181651391426961458794228268272663640836921480533110060869432550399352065269155860208003896544483091334661477488345349429285900652278388897496402832064672358868188973972095542632221988671281855165390862292526783312782613000517279438550119335094200016445006787780105685181883899961266377078466189888691586705072311076119822508831417211708966631194965408702524418025938630637355003677417324748583501900237698217066117833452234283462205157771282288418409406231762845402706684303979322109256225917364858802416802832387716901122035918279824309196541798125950975470878233116115059412144619929995150010987880926077775027047129087183972800830493468904884585296401404368709853299725774983860847091561107748989948274174802481297210029297254068770782995118549398381462899911386123315334985870987021855649130625312180314069822392292509137610809569080489994200535967569173694103010447204228639791009412932939750860788843684330200378727316610343108363190554872230502546379280073410424660615313647625650922805492534603668391348495186449722192749641670056546875633749558329213345963790769623672692769676430224359285593619895411936935761007915077344143180091304477809619855298752322865390549418353422544963797817516061555772692726564055986284728054726213230699667770408109625827158221425102952221062410514995779018256087189164509680788519562681463944787572084484631907900954100745395422440057223308198701263691616007453438851585374276487854657661224437628129389951651161795158889707018459602537892918242462243819976774506869059098930003462638954130601944185714017676923425868619424214439204771606669990533646769911576582816793963319759300505380244052235350884388331845828109889207113226769874549184830567476140285836577734808073501190509495660822326114117489216669596518755776823572706778259916264942466188199028859593691398115251550249961937441640241297562821989260068802106269973197516146914245144124951723277675038632863738749438246040727121546566032303931399459871641538122792359367863928384647762334463472118772920028918794524040862742748028123507501720107133495473877574107004596433056423276898767707336284264730495400631049959518031643489498938401009551313749171728687438722901530222032550055713014037216457986657699054855551777507395539839152041629984661109249996572302385843813668232016281946102087510607293338621428253288617676495925047575111493598131608728248602380219550560698375473223854046344484132212249250499799240529813148743044244463375186288409951506267081132218534855864097961899824054965935541927208841372300539100641085712949702493044269773686272284212170097897366285078671406846985907488175327722342385582793971495039486303185679555676344248207173539540230573283507266949770484481019739581092311004811410872746397141842694386871570064457068570604055644542152705193748417688550982190479596763167007265384565433659361931598185763049140356372640737632641196236612249324566532611884820860170489500299568122976404227148140886887351142670823556654885775990613246062170470978130283841939405882726370868443337090042468944705314725287720484780409906053706727704251119929863305933028622300887407894468231600339991466151434311194933935648650160067083562476822349954705763927641524138661050051774057801918678426462404736986193741543396726277944009052504104540297754632678974893089331156996110497149760138354995638933134875649306352004201737818977777701631165396071475395579521199895304287152649339088482416118392681666342306954987333894740957031798420380423329062966371966921745053381147887028480232450795837382920865239724491836833279552271111028862384071086814009805527198327178715242520114506119577661100084734264215328147602630679427075214058228464653365248756258193521331857049425450245050379148354708567303104849768273635212500553231961409916157499650689022098013613804939698310794566630922934238146553900185579745616531736162205015989151676616144737352500096770160773796851601634703745543723439190943366162105604236686506649475963586665898596526274463485137041055981112594924299082628299369479664491643235210430290907529387570846107531779617749059498383548903836056495044806626548704001142457883853507031479865782199832872659182039437601452922435980759657349905086830928593577212632063552406568687766768870996032175086231797573543738025710616712409487502660448026089658164924492952978830591342181865302828233861167157233525097054675568873757639004112585348404521345951979894178328012666230976397553368989760307189611892362297868385246683655712990454880484527571511929265354727694177530226979591463345005854205585148201216900632912443786283120383747039185488036463138858923985726448471483754080867667818683959655253396672664152762747895109316970418199444560937711974388381214327125760732485862279953784412702943073291962137026885630379547438284835670191997469652957003334361700481433131273323549873926651620832905745767928774278094180686243010215517686447931294435015478511932846166146878437987193848107358115972487370524716169777845722317085672385518298533920647722084651980386979093296536668721217246332450025446782065969437029061827823789942519216594291680895185385135901267943687403312714017098784386143557786737384020872037680098542491079990742607666199247405301736932810419989419498235504833735694890971171308832220939656138696724009757950757498785278444135946452679448816379595678146084804276194323863829507137296159327768612448971069292843042731184296741990174147551968200022235576182290884741923999709207037416166746843616173228918843250729256792086471059284933480562927769073079233734277324081387470145221418637898311688030603319609726562973591416765762946582720538027781889747108696231483185729801560950126027609147290355164253163012072016359081142380541921482441770821856447216811895521456818951842611966283120105260990193915941129426792816916704645437315888525128401814981391856803917044676497820744245528276153733570426406594038702868863851469083637107944915806025073028294970488689833985304109077251353293309854907554208249070010989444677700790784978606707367280804193621207852563579790692562912156966379096549920547167191478664597970009101891509998627602757188303763412322086227587283126726598750439288367143728204475296916398200608158812646727329807107673652847599828805454143912436278393635182537282278761979161290482780136761503097980758851012607786295124760038834737652674103103867319149243370192666183587095647864016485403716556329239824857754195333934494450166609241441315568278263167238562383474426432518587743774605067486957465745453529352599470293851116565797075448499926550036193980121493957098318737767537140973312910967805622497388907969635581656031588359254731369967094764906923789048779726829919059044793855427122652884246247231422012191331440500108369237148319888185361897889800208115614767269494529235877281013853900675846511290368204461566901026606976368347735625061836537125337047683424318428775895477323769886901066475855763840994406137243937356945270754745413638152286805621209010699515667717809747747744434614121919287876915320584548234577024656512124950673293916088323067460810228091239789719564848647152357856617713111499939281782561765442385981696870942196222802006465885110576505932516266772010881784482339255357613122479598200212893003095177399196201060184934860768178522048609401296140603781406994387840903200524944493249542704488144162735850265482938148103663219140577923528048197351987607382143023637181809434432695998076776922346232774658799976379648852162068968261650383864123041874864347193074130641103233280664519651525673124568508629272792500230973212694668806320380394229615189222021156266399436176205529317329563859087281035866535166842211814537787520443846922564509664272951731108713466264943689242572881849645993629600853357865716459143367797407134943129696104241291303260686667384796614674811609930179198181522733671687757405098242494737975711447193375689460276605810442533107721269272092963797128902767976473454383107348064430628593248638304362406414690835154816962462502454972364705384212879795192558555580721722201999245455332924339379548425949710665406508133065441375547594769230275712023817592265513995991759900023185601501422567321252815128254812990115871759999818432571236065192364098677173496182021479336383165684684218865884297235729345579176810098441423589543500469797459665688510920764919986773665440229147346995244338599644664985457862870885486435829706647876128072963798484799045622327102488514687648926706643313669474953343724752925074059675879627123993075386409642972486694119459867534117655989496424898951511149690960977686366511542983520913110704552006036608684582359186948645100552212216991675523980074670318813455173380778245557756282975264522136159651972335116206314121191817368565741527061411054191314574772855764082226420127296806480541146242160396440551343150817812911619678053033363504069737379215318612492532718007903103355678543650964773081182488396140854113276994601978903959390503010859273002350824250739698158301203152901279715565749882926043180587133717434495499948973624864044238929252616311413253857055571020519547549222870141492663698765141293012544329217216315424460672071516481488304107096836765682573709066509993580878819890441228492082031026057142629795005273047884870815885358256869740083340486993787339299251511451341447352842258170572908913785192473493613047086446933523036665206486610993029770311472373177008106125556684244103809475782270745380795758141347690603218075045241636187588644876549753957555829287499620221052529919786362818797867695236151789730162711517834197666214552532404223821555317239560437586536917012959689871141448845492752347056030223775358673418699902841234440581869071401700159728770130651179996937325254864750638370631642786103061430742688784427194189240479386234772494473038764145556212242230824992919355715997869842113281694555868371281676947913816625015020136609518460248916674765493122369002814442190865498978856874220037323872998813518857572076778586869706857093415192066259147674166823817663187176361787914920223792245785445932759003096911998806568857228991555007409605385052922416444715247917559412696110705255577673622530289901376775976128979044251964611697330703091729888033870511440019919049454484185589560365535765618854636306775358132111402039522468027772792897536843103565229614011057872388277133713945621995931887221520381043215591691137946213277817977659968573470580841435547219850758600020448322085468414935603920576952639713787731525302790765576841804855016554784918128997090214905158509282133096065908948553547805253728876581237843235766145182279857746600197481794170303766558735273576630806668965541656493189654369054393602094239627918171580246999799164200765435235592299582116453101982107006451291721441515864500335434474704740593157218837633858426818521229741891313842485879400456987980914772787843905245689543285704560471973906981433534669234736985207067203728168334736233902932082402192080107142131236848999026697737943790834144288203230661586819342934426166606481968081115403279821363374095948877838309041378408629459458301001568743785838813719241443878111029331214886488159811469520134824765704289313654459584486397470602782639334040502275020602516354945554552955756015335449796531552409610528238890679015926694103287171564147378855682825094581060884851896474078697338771903191390247971380339395983207478892375751251096949617228387290963114772892730447074093807711488598937933167343792788284692218291560446209760651061132404348299253693535831907450404419804351665381242438665268042083218614468081699182803298590062959807299255465062203829964220995682779377263844301090944134465974111741357130787258022036853971939068166502990761990976435181683802777275933797099502579425586219700112036441666044586915306312221734089524216014758494497747311008211327853183077200080527912167493688692142387864826211642658350200696185334320496964614304692128418841094960514748434514991052714796634228938946084008498584229078744793085925904109367918529693900206682560211362055473019010696622157090974667669085695159990858433367013833789205385861453635521326049646029241897436729915700444247751298220139450839466277875771819136678112736814213266641492152537190130810682210267071666005465821667271213249636115453697648288654533539643683549532506704547142755974254736987121638127418077335005429982611685913972310477158677364160004389171600894100682413948453667037426293735233488820624961813147279680732089110647739108611724263019009812803699971219370279589604129041304750673672176849981610066866849586277122960479901690058980220313983940568522832959247158870026894092967531391073812557102376862168507493912638715702180878038151471854330333797657302068092414304414267116816738974063611696028508188107136507665603993575916645335528468287077478262801195208790558197972165343712539311877960682870914575163158897270073187197283985328897867364337404251726978368259547146824170639431894161787951650120458955965281490898072161327469240484337446745861566310085583540252287822753696934430517300853502759738859423481826599464574468129723906858821186105665844288437627108720936383801860422042037415234871389244098541638499559678587870865109350078956711193601295969079217831507818580513326063554090285111330992751491159678214524702139633346634223774357170904048549859833990394386561838407926844938097588360454522223767188405431563032167645991916652511640910474403180954662967697646137914115613663880067845595916890166739160809599919967848509867892623706958130702534820849046562363271862318347260693060013466690249486589758375614618572356429913114622682832334501469344142405080747541741320853214082934812690549271701024046451138392066861550020822748876370671302276234805620085791844734436258778921915950348850396130771109219309745199008956463081339426251665463894911558472267072600477846121573606170737508993453768957745515835833217751607600390952940428678344645319968367271588894543586990697409363682715043504351870949444357567184357919262151804480839931498402153852407004947504486700840700971836427098044219549936114096067330290669289230165969475136673939531581574603426175312577010891976933164811259055792684044336274640239132158202901123174171477536553529716946990690279351151822404221207901297206726903039735153991608787424178074665792843194324592307920409372083578608549194377033076576966279524156997705125342356316284391874975285290797451719851540936153252892931813040168849985553150016423901719389879019219703798685119891216729601108499510700084700206398212590376736661016936724736039597479113885337420046025928010277101037092802965246583562015871900121188145823823085474898697961739130124355764955731226790972987423915657774573380454269120597233293970351731309412542879176749023814353163290216120935759858752817971295833925244459283303738089528369624206179393638854735841539043202240434439632738610383672680285631584270007257911682610298540969057474468959235713878360520649337262812978402915473029661475638847510278599770748235676441300872380294124804425690958860456866758084617621245981101043301340155038008676936339036586702166728367070668588129487198491426460591321278573257910988274718038100479996794431596158353477310088150118242656808687583377406664941926542315187468823105128591508941472012514581641281990575690747683125017047167085072133374109321298221797666111732064972684287508181738919235279494331975753033222089931274182243965949578840692586847233229745840757183831218998911419240301564394473151405389786713123697273686857440926447595742667461447310912422147304371321459437602687815980450107349732242531822826546384598465164522511091676175687606022776416352026220380689764673982772776394324792633931491693253373243713114297279634366156147120276800743427096908917363722384512917917107294445971355500648840127479677992804053113721741342062359311484076200712649332258801300606196181430704423320720928144526834440168452447898781118663910548046374559247478167810287776950651493309067315840322977442234043582899146155216946701456447633677370378590664002088539725182093230078445349141997141927794474594789652127798230780217220518209286145920933896617160880934980608998060552803582888283076653859363778903758795476301142163053372406626793395528689961742232262200080767937514740915633827229675433581725758438901672827130668209171953152279787323078096761051013797516996590142302137159858321014644577797729391708375607494824904181075189844248462100606470850602546466090328005677667858652454827230527287358246032593811292674889717307144526308410130157624238928082804880038730540322542480498787939733879558012813552432331483734639725718072209414617904803753814019036073350409926240569146820365767533193425371900425517885245556032790167116605441231380696096263231192855022650355774327689953107616906369548502558753932651647459550222206863781189916586465981608942238595053108920684106342066709975316506436403345114703453297189270345641590756719397087408803353601046401940033176223720565584846967013412747348195924803303119682287344198762803382607198564194064806219956302793605467430406833915152872066536299338599036933708755185633269763289946114885727797202247815211304610329518052628797393468050859741217774883280110770491631372558790168381745898815069801794772679072898470860208390739162436045230698852716225113855094701172178297398181463181746289264162104722138336056979195016079098988399944366873557358572311578674058754319169659992514154993712740253037512610531016798707132619700217173448234450261309815830990891509902297710517052354030522035916609877615715185319614904155694478024986680679819332338513857212844397782290886406390354480610822458240971375990236020790465192520540861833223854118174026248798170851799514060202120602389213037430882112212740506421308250829285559468300053987091807393378892871583514235514672751372999957447179628750524747037429842558682094468265878921801007301669194817639528979150377076529864378195686035039704263460707011853632049200421325669856207498617944510921831999176904292093308681967274058116625470524869070847780840306497135583300271101583776536053352327481159044861067709013588921259524573899016966307257052333742805145096919665149032303207298521898337616624826782032385937575032971209523972857564880064267738160407426161153276352984922272005410213890764081474253391802450791359646374929744651787764297594822896905161681745534648273849524990417435405817541095600667932512882718224614355238783246794537289335456718620602644013040181335754154881177632923141727786610331902145401357218599457633358301862102190870219471948903178065532063912298273763702291188345999593566989996023790004968633062375906982858782031090862832873485847301277160437462552791905986501084899499184960790383875920421102566076435781052056249398624171155835962850871725862662413812788164655337044776545669651256213904179394902957107310484031853146862630893522669344513402672891641135857393553484387071426953523456791932836507788328371034166247332678182080987086481207904825220103372989248471454110811375702179441709297195952249789533261494587585871484100901143692276457827338589718223332190809979155738877152706533520085103933495073718111007318273263063535405178040879833776352244222027639418247375684240111747107624930130662306647327230135480453215599504622789695214615563622239387021761853800732606434418578047359758495966590399837663855802030240567363563895564380427786442729483837633084149535920656510108434823627792683585065744337076180293402566053730484018233192409817900414450863572934214426057642406933165631273820288633623684622670525122936216952421767110186761749948205663139544624907516231887369744010805942982294815643246602435125553680058383866644852040458796260406023159498900376728121898899277257306403175135130475268393012613707135540041949628875839427552556939705706096264049575408470439209746727590299853528511282953636372889933985249560504238289502944481527233540884775689580231099323722209195352201968509295148491544532483324545461508811099072166942746486573700001808456845040753607859802840061118570311734999905834736856480931909457985382538136853314537663965752258830218070528267601991634461728660425285586439580469558744861212185440983427517363047793519286981496190773832596076357629803628973295503091741170769001240187095303364068586202612592495678653017564083898918023441920604331690283842486248098702212698922106298210748663983680115022130425570583513860044136367844881492854779596963960018012732536931150946955120185453437075776156856385624341566705245685406649541281208304800195156786191719819982817332797272902517379349089165366157545165178677673466569245218163973450248414463712012712000422145338978491613842849845598729381976911647188757672164535970130028367739487765758364598961441755490485846114279517223758226430094014105972473544316247271233802902462381874595062131412310832382210168277596738373422803117700911280283539055358055906314707166976203821094965895761216792921099095437102205729958885265137004964465429282390406219488095540525191854996279582978867425694621353149703157051546044400136789328884963487225010608747322062111686462457990506658031805764730001537330091350405676157557171868729658437593637889692073918411243192523487663016880431852545483212916897005636247873362857032366451486830113628793501842782569142494084195285821640346814740971945916456142131644810272099266679921297394083329464750454004953770634436367934805131045785166472832431116766786477488874598528796467342600861033007731032163759545233479200389879738576687669200818991579147670300323050376662988390492976932866453061788013750772517983681916393134975483381033635716472206989862535696767075073514702385790998639912520655112760799114944141401433673675216904030716173333252577381975041212269058821497846685717732346984728223425708241816536425381611446902413691473921529004555724677623157120251556781327082681177695715384543977110034084890499400636404173408732285610168525392392034171980403019882132404753563686491338279841281294201407736991027162345609143576220269208583739695356008686676053519553299068656369449510796804653792531078473650779071129713231718505744827584552369323948440982561692505257486439600060429554634125141319696436915863574610337095806478155768621178737290228394331378007155473118956432358897181940791803907538713551944384026896606395834650889853714245187501477451163645352630091262542877782139723570978037351357048509207241170582277698071817662093584791667809820172388845723249186597424797259177129250382918403254579990458601645408497841620985188485874520290262123190212906787901291206660283999468909647710969789979554065085220411503718074022758409488940974599467624998175075210979884245990571629313688750602190411953878613149930808719948494387757917878856631319528572404951890890725011589840120740244036507213879424038453971927529697729710321432328972191425718154512598856841468299854371650011874762904638065896873783603729473689822685027389574186436150150585379886264087340030349615681170065213009288779317933510861813063231236901165720263337716933564097687792211475000162725207365140141865483624188571682535663846031470233208586771518115757871271109944782441191230987913852126541562640846307286537533928256239245256585516029078102901885385974892219225917425726458202143643146462605881036426553959021862816693282036073950145422938900299208300519940532314011077749419223811437829642171697449055017653512835167156867140711903011140943009952644906332013771017366376732118619105402610089457779825956315720960746747047507847061042201830796192090703571401341146728930652140638284446547552881872181717296156696480591357312913061339989902653931131882443463721035683891102167522175392588555925354333152388444283820363810676863021496518214750632335315155280799567889654326471091827985242809616730134135330632615187714018467011181654604266032396319559711987289876384032942432873082364184936502644424983185212491190216887119379503549095886332978743153686126309984235679994380500610919802097494338027904176901829206438352963097451283173351131801924679173136680466981169306852075335431713613544761578172532760964601398832920222230508864628834377119364954904709311738894179048805950009527745805147994595210861597609961362599771904691798833772955353963652508903994421009931646447249539381084198092056936338161218571619392402933590903884457893548720589924360799435848410077811902483613107086105983757179233633679270671397100185360409255377291093337907497463779090577168596812842120132977518834104137138325020038159877256468747015597873154147244585844124816370362956423278538742600731231284975000944982867389687379240566807435048644317661832547562316431909429711601650718434861010857967343277438744164645080146453339013664612444929234967568952591051100568775720363313353897284878051406496568600173022187477960568081807205955205177921105626633400241248840264378716873825799369702620710399949545242030186533565033464580077603787519256236874891391297773645752472353236487862138332687667864143034349702198933980551744431699774723449631914005206232849143634798825426556853464678329396371813195178085652173499690325461781533142304391718920196973226976920535218697890968613872467635024371180136434645423938628578210902047696537307277804327527382428642463263322594113533024479511690356303798046953648336414802246002766564271724142092401832981447227521155284098826794602732599190426204760249256117233265655701441422456089778215050643115936094761097094698773176451340757249638335096496709814691579385621127360093859468230887434699353732186696863567398133708901291296784044920235139970493961779844236264289069027301429665789418359077778699943184130077603566470895836126556847787130447429784143487344584921237391222960403786635139959561339013261259877166673538373423555205282634030466313055808408398110813697860247359154196620856380775936878175947049300373359028462134305977288529586539829312089818093316024889240239374712928787227116685709132881030454605913202147304081071529872780517052519366827583391800114419078368284397498938585131766147439266136244965028762565583042517359572875938415965522312897922173236769214003331256594336189820819053988013170459841999637013907492171442146053819662893063557506831150195726285461083579858263969865960875294591049789040558824036506415955572770090411131538477927385767957862446151931351218760619443167920758827675290370127525701040636460068575888529637232692868156172460919176250172983445787835704565396902917564709532753651831205222579152059408139973336084660707694443459141764155181663000097106920124100647472332419112479099501669218567962483561423793647453997707323880499947185910351835305464048400786350029223045195468109368206630872900287354754832594512651832074868016038726228634578236061602832357926931857354624968471444023127665167157281431510003868462389920733442911761055602298029471889820820013160029617828184193952770778789616524333294567682985720782959751190605607687884747270925835589990485903240134252419598237316264415852005962730793386379190897833374029796790939125504311193871921713847736389661579303103364836924210942284085519734341845272805090782241487059677479403745294321091592566803857484632690882564591464193893666262606517093359151532710553086012515015593205721030281585121523029847939741755705774245816504692870731269596723581005965845367269957084761244562946350982027721284848807601224194875328309077214538819851066111905392071857589706966345412793422406247053247382245710685516726020457251101427486858488553751324264032452107310556184478518996828728768061239568919538063988236976278287113666597781269078276870133455320921686845060413454455845448586773360112331781546196847058715995515580669803232217866755134460360107963167286441182347645078705239829907831821119425855776658403761090035497053082671168348176373094484777304941745094415808966072471722283893021094247748914959511872056583955173424747417548161741205510114491193388270505710501146652196400717680020344665445207263411898977579288348243527195926430286521015987687479666750562422643080776333689381443033129866433403014627300716433445142353956709694255599499167178225611493632766064406275314971577382987352895066343872063846832658238543380990428703639000565097250512333594082648007202618385182380373710221620287420062262852593474700013601227421568600530074535047875309733093288044930260561854640104225442491929414129004667002466468895694029192045979041518431091489833397355610315735733053343391768107978893427430432353418799282756420721663965952288258424692244028147234286650614981890408064899318010439659773671859363803757458381804964841555283832242607217439941275813570618267531686138261545667675874245036684286428340549028897128526706883873684452775092367840383035634086524520061302099863508985235202097500507041170985397836996440689906160751311718109823715566738298538716616230447399391287229910530871558641786718908305846204807279689037921115514371677600568214379610741666648229921471415725011164402078097992935034843679418806300953558425519927521769239943614863591832784041948504364108574827453544457174598514979493755071271358858090621735387318052875820869304724328089967715434528116642091108440049073388730476236533051255665114657314512739892239587353811462180487838455333081258874354199243712857795659739305591784689435093628387034252911343067877763753310305080182101030617820182571433968001685096477583217645075832647226062105267416727430701344269576018913339663174025712156846195444948826229747822319671330785283274973477288581704712557292239440017609060595368841869142417292947974471219613696476542808396275371978614010781944388514765574820216244307051961400180290644223454029326999264211509852789964651470526272236594841838922448925238947739097889818126984460278744335739577069588399089289962586538759994563878547021796093843754509400791449780281466116524243064560114514015284600683654348757983553633897632426575597672379018867368092075967615227058129016030955045115559152390944720696605358772864949516170700176605674452430529275436563400748621951274325940128742748993320264870728507240055684411226586295205582888905775526270501424669073925903032002898127670113420762258942333238535777863320498878348438765492944906631744517113736792989163863353877685047980099370074162744593643955556325461490366039711707056467370322713725989618178661460901098159204275326850279640909029402959678161932294646687485368651231089139116681150434214237595104258632153522486500256019843368835507171900208941980219513294341598407883941941575166922262628418921635515250217826906458673585540965376037451992755835853786838864893021752041970661884659620850085602137201793606380966612982599529057180433839320887984965312750741415438448279454819779533212478518700365954873881611650038865595391796789752159635691813441091137114798277323744367138988284752765005020723006197351121158936272784714389170841470564702246820917177205733947617974509481133437158714249040886316132655158496416579629849521329987795356235626639457545850844026187834999698666657890273610258130318389600370804741264884856915494087961353944566075337926081085418343341233970228448282527192753322517069654079861094805026209150157477589010565473081256339123003850305830815791021210348557795755279203999428427162356360061521074848005148557498380687039535387616411134472687111114363138294835928491364297850627679360193276961389961928143971873383798815361067254606173379489766048330256673123051128497188863270475042410725666396513726084336962865339660771065350419238077579340798982245619343905123773109221738604166915133456643922944301243463017213491345261254136746443767897970556786423077522722711759001637218625445530033799573381917747911688264893094952383252480760323784477107202084677845823469663209474074777695488831874893444742393781911327467334491701435887465355441238786525895412075009681106793949777283395883215120135599986075491341815898240970082961743178989045180659231900951010474609918800537627915307123000441197676680045035391342886615990927785544769951785444101725970411278431384390884092144965078462430175184620066921039907099440699665777228865589096908130386618791220164552907194060956387699570773605993307694553646018270785870402085799033369050888391519162895196306228278350005420245328281995985961451124754719665218359169260398882677011703169859330450556947064889451360449208489283101960911367555673795437147327355113512974045327463673291339231306394428567371970534087249126824367917576331502399626656301912925673203554882493954721033406954300322224316661637708701634619152740044854896547986856419085902241537409215738744459699679922282671261921239376923754609315396643797226205944246893791468914789878633787434968505437961010659936662998578191123745022473067571730247301431559240505360837397443184899734694756053451511048694867687764571734608202972749525525462775893988276927541044536142432555412816689488856979602223099499655881049561859204182598484822715446848364707277259847579680888774608686213730731920244744666681033220399814008468546872358848166978570719885035984034286012375503783580944981814765098370840939933157368583276461963881355369247956715237895702829532354180502231693758963816770113354354918201456577947671931221149841982426602224363729435474364500937826329271623832968812604586791112630499024020283542508618468441374717319886298171476078848973343023807155922083947378202703958442259796061250137169858066875685844218277774847229425201112360344040917795250399820610695597160555234387670767305399967812015830937422627075821157358879127756704765433695764668775598755107359918830486957898126098408265862592501779574621801111966446834592867360618583486296079529768666078053023701350928764312634558902723441064077602638686170807215472302684176584662688240572068994253153099848485792031830447510570383558768075762775115722711700540180922938755614566575417778650229867232612848211713192253757867895517666225023465324726998702528342917893651760965240118736438330373820337088718859085660120849295478254657681510941211138078550976642336993849956976043721809626406325231953799244938086622664739688369785976291708667585408215248112178871069836519743279526696303766419785258017433151559076182871639877659289807856246340510065728502188728668744206504599373598021289769114556791969993521067370576143761350857261739695684263551977199474790236947948071938579580929124424060878361172813312419325024491134238678719540686265013566061850030159878475835540254646326861383844889850142318979442800979495152475656151789071324717251806798550889293592931376641769145484798442813613913856454928048133810842665807426383009114951878227212514388996708233835720997850488837838892835269018895338824710413527625339949024770938214364598020105881913407607181916004614334893606359779333718258339303028651731599289169050323990930636414729069309331682505248103142941266417314210093491634470337799277269396456183051357670066109731526932640430763558386232522599238402973338166949602169479018835263758333888357247370816531952421455861875536774352900134681687210888971124098143631552334991674131138246302420901924246055783326865564430539443709925331131183101344866320981465743042478498628749620507220428150276502588179398361049851909889431977018954827580030692937746215856824118091912609938601336099293514791066694406146737705935424927462044251001904767637772351374747871204636902183457348809243665006554979506289904184682636346021873323051885370756963545311403529473807664328004859038718261491505956898245102863118897539448953384866359891640463727064509035982030099621987096706173467630288990147553699904103291833064141813881612364321006495806880195471540970711214433304606748880944835838024009916439069047254473552303871273798844594637419825405955541971775289164385531103363076122364012197372897180118618700544665124392102422041405180645767261239574508570205118716615485521543898210607743610855280866034612826926371936823322543812754919145972486661239071349399290733869659847470072563146805748517212446888814115199124474190649956459454464955507868822085286066248420470051142123425668466423299831791302904124788132856419694761669417684794205738953509113055964613648225474230097691739560954058696420043570805862505976546076441841874038811138276753343018641012029242960264373597951633295443126252140069261785134339087661276216281362114908362344148609892706012860264257755019820093664287506491429757575578890446118386918368513683927379523424607656731844193112141389500125860681681001616722821098608147536787816856825777481697434184411312296607362850663186198541091397422717884783057064233209399465943741292527450916191858211286016351860219528003290494553511793509219863241557288942500435186321654992354848839283230346478202645701728115695093333618773840714499547344543409959951567772241275722243813118701304729729660975328630985019725686614305846380124370991783038590307288235804479296950087858160058266766220869521913537734907041958720986753137470311793663793055139772492194664141597955285218770507715666300401157884874091192510902932262216178640366304798134055600986778680373426053207620919285820226676314799127136496842283998225498949301240084677300504378504866095047782041225521094011320734276152158872374110715777495356966657262827871757614471711752278233468485383057868296687626497735144093426163904207588297805584121804677616305461673137450726493485980032732150614702724592592654314567483995615960977525041917240332619441532129897525519025946724268008601174643107992797101643100069004454102716865140875133260727425690050026172794654585095051418001120733895675677190605603828938945134028125209891785710938457577116084274979339623786288754596670410982277674237867608558146933551243353275998152222147266818490638462915437937214487301412812150287472101877330076638937553834018781974679057905568393585000740024551648014272213809178213453132487562080667775392050503591104294977434252931128738784317951305863848612485413917352642370191183169574563088175928299449213906649425780579682569889111659346750929671640732438434768920416945000979363605523518849523350326637460102717587348893365875406238008318640102223856027012516451489590876159737101250578875295745097963860024622265607571442500908782044422225785893749246091362736066320511919540602412062292129534312328400601090155697328216785606619064158302492587008874266732576554332274967288016330605584062768040766227210660753735254135036695714936535385595655050172825840623907349781673000233248700040177752333500866667511863116373898112796184351763766852580553519713989446787364791924748570694757074265678352370963957776890327414602440399676011903528919961648206153621604775883830705189343744074774742163902173913355185299210949355000630600025138134753872273177794275892318173128516513409358400726270930593301192905432341393615014737619872232941566438564022522708246958772145026218277618781520904742530201198026758625441687118599448699227720621921185700669946185152435857111280661855241927286917041484009886377576730853643479221724533231003393055995270424399279678777661688571216990082318252663180327498612409768921383037740338500018920382280300360711573884556468722498129574939386140909228288215307930073218208020816136163806786913865146419421565039447431065431324763571724686130947569831269854543692285522815795355789846095949475954427306472853609189487978175353026890967133546652534964743610024813470672408613269675625665532927784192627848982793173098077810745530684591908042072641301948443331827927067484603636524499560914362963032487070312529485864423381880405765971755635685136455053805754443732183915548643657625287065551030412253483834795799520605200510484183743869419444533537483964649343250780206825627511268694386113607122144044715427639788599265193273672504757797406624817676259844888781596375797750173405398071959188428269101635538780633589916722446824558109151401137729755298994239088084382167940730745243583849375971411504146813094474541933359564673847346510283408104661668941521823952099269227366368374342377816806782493917980831911165666880121440787467203934366228724812109866366270063012113081446454884734307687059728090148526365552127144703448108983592181800194762514400655592312045355919189886418746318030483237562546063491848991086164741222605708742439514332226778592097212034662048250817522664740047190998916765903481762776179047715853479317006204680030467918721952768313603935135170299058039462777057586135464544668289505201245972361128448543723781050070697701370666274401060363381492765189909885303101655241870877620721515499636984520657187535370258239253175982630675951659471347947363357927119777665256661235817329360729139053759403360076680538696836487503768641488113380329935719409872676480037334766088319856381624040370471489521750752069514094996100999911419122432052783180737695556822348243449393037119118810602987215759391750203137786202736215373496345106933911915119861328345208846059596404120013399928583170772251417254223708611609199579494902976536637825057725774164302271992299986435241618676714451071358434288582873558998503592018059155396466781799312128316856852673343607490278697387260073020775139659826312485753284576196979681504375445120703099774722503663875782564512841998531459740929393718962786905586737740323322990654210204512410533525734494352238553230153189558646466381622958933407954431849724503866921167657376996884755772836100334459842332941180808040640648216227906988507905229260595025573618287948840578530092415252764911022377950222661131179686514402307350802619430229418454658045185978405021981559962281707927703777741416954655200616734896331719981453988677024556123228249288963195542614453533990754272704899551618188084860714839543408889038309025204957802536263388506620634929831308531488730869173490231162452152843329016038077562005569989415134730601867342499772954274346707267910189369809249350074027559411738199251525668040742162706431565151031742409517584077942851561430108749923659233186934459565926899894122408695383674820245009942516391505845468750194649594698163657697515793174816631544327415186588839017995061859563415338818970214416408096495665007098059895973822054892213809756114661589196849205201229431616996063743385450912095719884722928555606437068086371042097173217926191485597396732101364822716995176807282010554396622539279647394594788954564519476724078238512659950207768516880431881625284780814094327380533082972974467285844122767869639169808688469983312259452326300713995156831954580485148796964393112852020439659120111055493266947923115423808870373188444873325315236166757131711714542222911264729508443551069681576222625749477713078997510847919327663460427063539878871653865873643348145296178941397681075003280249663354338460498850501169838465037279598776819699102489378770120880520425375631135399778683165137369858351810595440725564161044702891927148021936731863876157426548580671695706931430804752539724380436994294365835013662736012448414336652777210576778629644461994604036284862019922756931684093641250243613402477670321985726790861241603772041247468583907557576479525726836425590199522670963525580699633286772907908202590717899255892640567838436305842198891774115460085764994405336536137300316261494178856034717774092984038799318498541088159814499338337900792936189709160411698506850859681973464790023252117540054603066832040726825052132175103503009687612718153127033704749718651125543046903421256183347900009836428494058482501501456050482255948240268392245870870493915638538946028821369689649556235579735520192145804724759374450513328832894089108043328877962580821082062762645105299204635670667854830151550806178369342753657303689901047186081209959605161149847024376115149373019414169857107036827958763266595610795132010304774733244653755141216676750712325378888124046807624549827233534107143334591130072540509869257282116035941517001319977221769577974405630224416698884347321089136654178513247736119663448687461523536848918513089694080886597848729997987603820172363736988742970789209183879109649764813368110887245570558486147636723193370466338113405890970911190995102691381329293861334703122264989992714507925141745098147764693234068049430140977150471475661071585291383830791087416865491736773060853635876323911182678566149250571516899650736873133277313971326267416280079321445506064933176630639445211107827573145427084476185183676040218813379985901133014216323822032477279849174084882096105416930641018701783159493045151629922459068830273673873626337420961220520251009033050945607832649067993701728213517592509884967812360899257464277463996509128944677931003799693689833354780907633189801115598139980692333148477860791585063946303375400572413500183637539187033318061039542792659264926991659833637187040799921904783029165541423189976989426583133566554801751543217389973573491686344040487594353996851246164741752494992591188737970804616169557322083015511640892005652744985562733957260455566778705475802331594226006579350615695529166741989209351519751954634255937857863872680922957103996094657562149984497602594272493067097502623181752972853883081632785377880002271426635283083611275918776212632237709390080256752251316781376950139514360078329780897371068005120773292755295925679798337833191746161340638265600318428446201482035156063374918990908779145415978726002514196239184912798836827352597617656327787374938170268042714290322687716189231833496209714931686616176150083109172052186487365338844213671145699242249432698950071242359153165171705534793077696660737841701556862811510717025619004947922158058486968253509193319604750073267451075309005657094943168459233716118884385924556768149663023343770339973790398178143012842789608840205305433831016414599060404639839995334807191293333914781365316685340038402666027535865954420398525902282115711555905094032803426840064519920487794203600538298996831192380259964852780081925040112373324151399217627276022517511105879733211765055729673514810768811556778187325117469842663255833769791852823431790345846113743011898426112650168790460858464173954807235708437708474892378435044202212893768316196417756337801635369847824769989921439381548706859872011095515726327554001742875119635343449281956237670420235778156321075091081193891636690475040108935080692219598563932478144569823174574264972906027488081180942315637888761023120955757095790335783065073103415697945502465037366516490094612412763108133057493103878423238002337119442962037557913046989549380653861161034813531081841157202276771708188777082865179502727567357088594289348203188640671207311348077165307480842905673500384368264287388072056059546465062416196862862208663113566684213196441756551431010484316024481799468684180310997828272271920798609917586403286604471158962530416079043107319915272942013260879688185597713000246538042013549452032765706154176623358895079243148870457539838929295251937863797776626336149253700753680010085305209058636055383278868729141156936306119807167250614490759684042256365396069758863654453206887946355874114765576659991039967253675685426574428845062526574869935912657724872048612197129413272058296510272446812163259157206376041904214675677756324080486003256789515290491158512254785467169114725347365817099563318381506060550121829506139147594045054380413051914105273545845552441678530919556911556788761176440198479972367735018701146999925255056380991972159532021963021766060498926578558861382342882332423155741472810161893054432191562125256646035529029691072403715053007784049931079134395865657969167518690870555998700101978138904444630589905265141431828598117116311390299966845306273309362857593684896474873667218767655556828357034635784808265435285769261433275031128897180279511809564342451272862773287477281343027205257903814109779433769957187606962877442854501746152607077110528374753391090513355950795811047008462841877332334265931602662559944966034121513835476323353556086085691140281326278676725153397535118420432860912535259322413657665707716081566179636258348585352999760344472344694533391004914422050540189651229559659267449194234894634814308915206389316033258583438502231276008083082477784453185007525737673574188152935166628608013459276221388612343644519111863593874348676587466510674842465184036266306578700970616301575257689540489186547018058587434870821519609117767540880246283610419422417973732053553891157292429400048409593697394411142174224551180158718399841704070044287091066007509838000925532766635474892032447934266072884714189121063035035672581556199944853537093980855946863110895585845120870719649725672409224983136070060467115176633518312784910553045361936225070795840399539287144923475408156967681777469630439066033077810435120874261476532525504719179212605597522775171758075336267915695304306097655761279963977299689770619554490234699798731492961501095178524632295085057255392228534136020618726678287667639775952385910335556840331154708193480175132876583597620466811274805753897237311972542558167750581545684701638057422423674965537680156691776972104475526179608291277960133421392334869756155037951886832658405724020202733329973446493189599687675238270998999503561245124988781512221391149310977151832363184483815092904356352580820401426509294537788061589293011726227989926047684758189055858981583952266159961439654116273742615361187217803150356136574511601325942464827858300950405297275859727266923885340150066532291602945099848516234555710058617461671632318929458870409707208576258263107294317287023781663323618457369498659102900986356891418818672430137738369912126406147835752977294471136753771392047403721139436829035147497698680721732593886764609229630244292340233547284444574364575405497365145086702360198931990579590041287754502961425180672431227767869016252054275419601866937811893473956653215487415919288690341366217695705788880322354735597053847445403770223017883448619636089205427385870297260998596667651588927697022517208577663494076967718195329632568322493079427613897189155536548278988792360261316130610562804872606300748623729424130764923747609863858069586624320149332943319717219125960519798568521651446084309281474282242368315269191891728753649886150781444758883231653880557283658700754789465748298770817460910709860214070323677747392797858402792287516966344924353710448990255762969459956486943256498776183838543394671947373927994937572868075318977360961483753878184650036189017627570354029905125243578518019321253363158514937255144702373431715437098945324183996958349380696981158006891551200136652793103835097696622300599310904415705467692361679226781437250561907154575495664567968427539037515626627679962028836711773108417287777417144769808597971822944232301030004952723452198770815855098156538776915289785826232497114629582007367918520854369745162116528601257640438820809361098692106178236032092614522881004915105021745945704084465677386168605299553394729229042195304620141574256940345073523788900380651858696415189964097605967557873142010079717688699091116408311160450670119270152745961479868544094745207158453459847299415893384897085572093103283279766983429078282405789769456696815374117020161150900773828327181788485082125596354551275476431825828654883024967930443641963773913798783427070756983466805894910705310003790842592637981093001329869859925923387067031304767712874034603250363601289516244692817827413226337714125743187743737474751908070129146658470739821193414745487831926696016510479815854446148889543979058086233734410787819999940538015613157918483989601099793846637915775341369995549199697984596249147451510248943291702616888910526880344061251125181532952840803650107386489017911092637668280064581801245483809676246966036219303547555257108370321468055362213288436660457699342596120679836036430214984584176819781071174557413577204502547470323527016043782150802734613816193910816607449751226498125275703175904291565055461974321881162712390388209505306357320167500576462394854617498719854977899170659313154926056888590193162921361294814240801860557283754791563512441380465684973279462921496795327800884998187433575459221567176995079497311570634067289922976738054934091546559665666699428005459025374927497382740461175189156917940756358140261868925626051367825559566790479640561234011812143408443617794378396532160550915991728221127066169421465404087895718326182490630189349564847063106628787938178373762964765954053983558050312764102049037081306384417001269743331728103791442161634302502211882416554618406559168140926711513060455597643030997597618860062741482197866542311262592465985282790178509440263224080810109596108799110453509796771542303193724349228659742960922504226736380243252417655815408146770577024854263823269844829552396672621278093267726713605672300857417627666624523582128182948417348408949030753503004599615600521258195504043555025630040791376242889105492713332940247049849777382530938256035169501868444202577947149412280681250835732980806492367249715991738749786920448566653654990857400379000101467081551816144507148725420560366519781373689928228912244464730972107980565702359754621209693787660432913023542871735729103166004621511752630619314181481394673397358148940284815846478164425025141320408605037142555972943716793467104790492321855134454814076769893168137705082078341123473766667193368821641642771088393725599728093617546122274057446791948156855085111099879270769198787158810884104437505626148694734955354185748179517453247478461561848236500162178962630933714009859604301367224133293242571177338919229081257801737411774998815212413474837733277808260140876011582640653441567903259061558433263105109454415341632411304880869732181059646754671809198688592717891643111491646574591597579850083069601286274901702262475193596995011672550526373466438618714176457064676758291750686915516059648422840646558982608372468032557074685340968175594004573318908528972657288851041004737224078767085421318224905144103474814339356971202308538709647904931319606419501921600278774374085945615412651301851583397193411109684277108112679300887287159092801906277737610755351382178637560170296795375100027485032199847055595261779297222112240446945883670527817641287225576148314580879848022301944107688810824573836623768183817424397510114990014593023939074483266250664348319842314463643092682610533975801022550987352714938048858877747408040732625153751739284166630945887439813513573428757314147296780204844994796459989745924546414892711094982770269498610761245716821654112526292361922270008620982940943464462471796244515499263311336953474345615985408275980105271360399424652451752037132864251102162033021290881091022766536247511410630926103849600399598591709710713887276841151616862865509175096948612308031341952463906610274277865311943450481858141588542777347457645412684235641553480415154894010511974158283273793611651301121826280843921269885080670513753027460331773557528447290378169984757140660036528647481163956473298210534131675490200722781938034323964149013959805339831774331097945531329104476175794544017892602941035404771184095345161608246447520832019138881669758374685893403833000623997643559618417825347920001208357549892480870777297371513275625956245333866363850909895691647876263365029066489344199469968324111693623161849413493089114411396974434704020587733157849789076438787813445992778931020518736104384667684090640509914376075976696128853848347808280841835583901882486378812581593302262842154781774875281345644980813036059438875803450334593662364313749683309568601289376411890319336687463165738907983905070542010969558834676130723387857462283907207847725683112482227843232977143305434634958855625810669156521206315061494951518980749109710019624365295074177754168855803435276501497534341422056905607066894869877101039415118852200035644868234235446023492722539941230123484551441145770884544009716556126555261838969229120835739087608642799826902095513450630885494281598880880088288744228428024876396857072339654194771390344222732738727649485711271794026677556747894536084022020457898452909665068603745240828463889627460196214036901953195438698897201960582946335119765421886543106292513259093550435916458611659597645561877964817547240413487483719736038196383466513171875478372433011662799905668990819381581268134240506822617399622018519350893761409016371392992313949404350779703376604991608494453194286235395954040287129453279075991457423783913271383607315288323808409178061933960871901098709258784643938805374997498394979678902510955584030517450264468541579150080900441781396497943105509114501460630124971853361808873395593319127327028052775218056510307444663278296784450848528692802659868309429793191812794891153196617254622170731740099647693512712471867648863037147849636360409109421384667012050644610004027521092494855163412030072450669058349065953759684297689407185967391932052464679803965988367715319589604339716927156070116557932663391647819723550846294664945671237715645858639021095417435866366475461215276891434676126712904088804449829928186030018042981117362135743062100145326470503924918571210534010764770941525243406590415528689039562583958063764369595207707556520606727744650774653907305694801272755254785747853442150095038491392605203287306997477274647989178361151572169911314841351045141341597767615286210438108768017397906618732556901857252658257521950433289526383944853109243204778750482452974845575234566647988209023156610449725490087048299526247201859708428574240917972077357006433674884838253355389971485346887270004318986617737718344549649324814312045206630912451746345328767614592222764154740482439368782860415519116758417351011534724090704785049893449084694633005971757421088985280788844532809054951860492440159629586220968362963430499818215864448929753712809796083494108876867275039845227175982332477924535083602309698857526587301080928933673153235035720078701628120559215855561054550627144252581486207390442415572263797464008338586966808190344510241700654960446850752555038766121861296511173272421653571318108762414392385691266822579057539084263972775268688468090281082015572415185590592307205984209498502613704455899850533639414600749683606923560615138629679444124544973702389659057713142018843064933927937271841682985040094382015968554322537449636945616941472343500708129871987481183103612933486644604059639453984385799074384569737409922134295903728725041716658029944155188784522207232463645958646289715081539419641502774990876321941205250928514008694740548283538022977550652757567218306993682602380147615973108049485807861259230297702095815179030056885953841616362406955348001800648759525743992210542512027950958685476462216389522289587474429624986786731897840808546515600466978124753998022097398397203324546719715369751606886634884760599964656034210201066355785443888862088796579562394710633063423525944311571969527737427306643861301245315476037625509505604647363200297405949281202491826136769907688514791197891795125200685044916479494779740175927408873947659201576949294720184667316284214341895855868211814594317677388559916889639866363954444517020928547982561407865180312809445682128170590408130792737636369535340988541861486803527936837397943155269860920959424933505719526126605345205299098389446195460764405265651637691245722596451432006104954883122114236755759071462422525320773325680856887017845490466133237766027947577961992772727196043860689850545095223775141926727811302002996653101607142060108149381872109640505650294049572506535391300198690590271648387439077577222912262728431969088840074556821326533049954161013968577163759787029497148847927875401192196182834445802046743315011245788206221260714613216524860928537224974955721058505290355331256292678173756273986647236222190406483810395526347221523364698160309121614263677238905921574719002082314454193063408059596828204064341741936835277225867978781980593480504441595008406744495041164363520310021391648279660148694113125416330621921250304175869720677595304632297302205329716125228204774461931663931868797786600060613225346323708772036877762613495491177085267779728402417545667786507974682485560763909559372945476387693385115230062540914228678539890981288593732079958904037557283430567512253382169874452873923738053944028671120563862339535365094241274721299044141240752270765581327679507731480228208605497136157357647043436213576449190453326441274806627132222146951228914076960689371661728464442495184017781188789256145542917958304817500900355579571275439826785117602292309568536982284961985067122578556463445219339085505082486805981147415283340791114180094723182925103002630577504494004948421230375410549317792941806658344305500812470033055593739044771606005005025617427274661139221777336329743912579351727907300980569126258119169949194594578448582733259679192953110251372124075082708781166963519784375555559670445564258801329209958248690871398096648341942336643360077624886844534784649041996901793984059461926234271226608327240781506691499815485807681103923609905327068952976324955111590684326402172309544550118616948928085750256756795149602262544994953680894192541442872969688284212427705818031818843355510962769949248390830629911316830576455958563723674529323123889135947240196564937118166769640295796862973778071181985643884916151000888414075367425367147536170339172574716101249924355296089032498151740617289958115744535372963040912904611591878054273214768295107366123922034289716319343705411238799315527064081874271250861562941723461251165816986487728459087558606730527851503758527727715335041069788057984451360556957355912228110965493346968156141409778745381589264055944006823124228774295772697643722071829439602096676347069936401375480625723183642178972472881496111477664032429006482128128215335881370839984864187312127644436585298292580377635193428701038044740671097771228622421182961269595423561909254368372035884994621830975652841185629463922668157172478971897448104507066599722659529519188921982300710924178295706241435798036293150188396145145795215386046174087224146670438516629310922026838332063111147906762217823566934077577418109503155453675315846496144084294156136074324254187025725965195601032131140951973011442148931570656665120135234411427345597117017551192316987685713204271760405893405251761106040396083760199981099845949957261376045896450316424444707308095062842738750447009058613249635674025966999199110153781260170433219073958649805279524007473715167838838465388401650450110959547546460010482510545536003405302400159875246565487235565573269559094681285968527367770318306578914423497948522861966635191267806972149992775273033673611397970135916360953860669252921947657344572315508356050093499728786411331268204226526797477586794802034771363173912017317091935844146019365944893260754047466393298855164325648831962899154279360343385257214207699054465106722375772885946409055371091828654576702662692810638628617454484102322710373930091275528007794387068761817263837920020703189528047326924577163245374198589139687193891721177089172950115361273175846702613519468232534725437830604416914471171796947957083313141033781556975923668660600598843185606771227386229847902967329597951675259102783518614631658448489903700888976893401531262335901863056091006633013904039356509336821459862596260385830949094505439621859566854304865011147407291845534242522750786926012703698967294748656552642954544370360615455188700562157999646968247225682244410763336774351368980422132841737020010195145736577331935406026989617479978488024304156221265576296851390788636475582448467533851967329958487484845582571402274522064938194034341058538503332457374030778692890071365051828180923252400710772365677350490383962206669410693408219363324790194114405097357356505505315574617660968978658768336308734287860914400334046863833091089470252211752190424338605345822702523075223983031859672178390002058981277208960416107948613811417869739684199697091280137281228634097958021537866586822064615226219163548756815197877114922070798264348935768265134839925553524161297056130536086076771335349899125843004492884963544789209375230272008831163868883025876716647065670683672636493226002718517818438672355088433229700113575453482505540830367185990481187894269103860040193524408460930412686800523165645630222750878281689028021675637770234269296784917712655363550209716970434311320889479117570917742157927609705406073356909391436525223416642956945325791871965800490751809264785675061438911669686117429674211203756641595693112656663154005953763174144429778633874042620507121805751550968396455359901464610006055498734364432407556474744984564580344966284510520377241059744812169974018400535740597482359132108707823746777152657000391999449943781360810568842957443999780388336683280262136232533768835079754084516393259190758842241252327316022076399018093950905777527749090304539138414895300277240969888839878316055025025745634023585214914318056325665081147032231078633324728370099442142440333834537126611957405811210587868332350087974323152538394981932718756124314843211913285455196732487620507393503735294412206511443912107949438260322894738978424275654292437633021581218915880464719692009018003610672801898737952242363723324063203464475444003301003051023660300297915689468378759295003784439093945784675751590325054902873791720006483494293244935555591630090938030574827748989818622113846004878934598756977647075640014624169407234373447621683216197209989874907586422808728596129098866829861152441811832856805278583806096570481886079066917557687229665473227387994555673183106008887892187340720778942884538505142598035093487175039164433658627361762715158224566945659006116690199655513042432676984302997736443089494275424311785083164828766565640632467997281705419929839015741826614958482348457083314507999479037721516774810239812683790512641101873690931478529731236311236586414653300484408848926869149725786198399318815604299626141505157605346266505764695990720038513800907768671610201377111403509384630759475662921587982757575976679037319128722120323250359920579389723081997311293972453326875625325600344611010874761871061232659656836705350929585367638659861403840467111494834116106544798461343810718342007972203469569542007718315830468393848149903108160560869132767360359189536020130001472819526707924231852443791674433921611034620578565934702817927904296325251370420573376176812762636217582169733813966913869236283820469114524100933857598308776548409991106958924403159461153266761484019750074532102966630280785150336208576301399281678715989850436600017355263097323969218113367570398152778120156025172387151911296783456852386209318441901819762231870115480924407215678400708230447260667418622483660305256954686072888046073284837998385192938707239264009725714353599719560130378963638566326496985398694184912078937519307482012004042006331089761929912258538780885298460842212980660402364959762275910200832348555106839212879727708854857482315699175873611399623172803928912176054668569688507282786325804941751123831650329734199017354563916827265656430705634219258513529332159717232593392965893606555959344390136839150410267783291149264411936581265705943785514040850325115950984239527595059980495128928370667847049728553967046300688378198759738989645628860405746379154435353288630348952596781307191158052267265119035865444289891685907677833752623029607334676714280694030198899353112867661391964221061538301639833916154948981260782183916285772556664862186527686171373819482515442619796479808618480075264420858782046336624222840822939336349893560274958238669320152863275953676614711519482030959791412766952049638019631013281890192714468175846533708242918790032213690416582295639504755534656423175415958613800568704527109351920242460526337146820796528724283311857692891338615089359710395377313355419757823308089218510807832972199794702210257492853802619520657829874966872860370728789420950469100261932863154719769283957695463956961575025149465709886533465360611765893201582574889494338257813655051444620904209077725541248889023673932230391133324527656833551283836650346887641258468237910100083953255053591296344251940320426708727732316800889820158516687475681659153672542805923562519087596750381657963099864998826525379808822826079712247328475026551144565801185549075381053557288384801159922390672115827902429107972923397939406399768987230588054136531699054883816203158631530501656066753664242548243601705142982134938209439375229568456417015823003471066616555479936092774601852757777463379857844653696455726556628385725611114517932010877385721393225930843632744786875270931720480301696411628867793426137533149819670555055484654274965670218892290314826188484194207713440878614720882915049674600598864961177634648886781408728259297498870051768738119435604282712383153750558676053712055055992987477026262273343484155749821137600819748777350630610455851387099299241800922337966904686252215591674319651527492404982246550239323912240876502922862130358594688799834581229774046112618892886066097855898754310947689690081895631579736259088000027912251830207817043589245740373480400308317803718739400521513310259787814029355134283103887245595954762144995585610913822248513749161449564232784330153457007569297123068837354081414273288154775710674400483652408982015124043252602833805942643767936628954884834291401233213546405731401107612485541327488571588787088798752041829280652896171628953971788809486472331727125685248557852328620985946460693484005070208843475180640355692991974381640550254306601883747764884780953496377376879128638554171357669265657415078931133665929899967068412871191595118357451981773223990134996722318972418093286439077665428783156473293194979467715256356460927870765833230379001813509121226482579638658771059604468312827445190777523018282347545443534336373022635651875372983637516980700706235642114769990409351200614127568416185047605702390747062322080038243895282879755257196671421140812976910218487315575546648129035829930386199722978705503761560457951267228438495699752361764303414637966607986165311950826929793052542877106344354252554262995125238116968465682191710707648741178507777433333960015967610451455139858804584523706472498573690135961722449893620769077597283602903394036904591735711183441627251212857362170461044099810383861197289619849728706757040371090250571709733973980163956816057954430751893345142355110880604737297869198632370191244472010986422806961925818225811911127320795092727854261439980238572579021255447815531310297886835345461845510927446133114750823508422106943568027474446290656327979262971372634911369288113055247077357298728386288851286617023115903581286136988484669487623653410092403432756745811139334980630803374541251492250441702392661964088727112974386436142336470070011962514025698839580816879764025719979855911891846081754727603670494183534494742943392965699932042553262219215076377909092930903252191432192671595553857928297318829479324670761647920588970325896144377135034711407924386535700888630842224644255106565105780698812936781098468797332385528342069311055480629037282673448070504216958132209074198542816567507444908873528422932906538498774523250199186096255429463575086758303784049709589765994980998927567458411394798918656846578570817735914975333534943373170081120156381000811043433718734361283538861531608495831154323641795501876656662862455661057443451518991149094495932863813902247934294511575948733261654089883067751883838655964416509990335824200254261543178887553616715816166785985413047728167882792836853537138713723964480515369039569743905969644214358379795180194133233769619752418805843782243119684559376313238671304272462237865554427972700428817008069509253906264776332847011952034667851359521736162941442839221569948943043702249258310297701631953541713600942076532615730246608753163671911213264071484499386131987644226362754339527157334103884557388202797747440217724466879058365244633420916019408192499683553807649957014602958882131911519393182484224157386663481233630512733316597486049457857004664733170277277865989196935264266782387253245105508369409165807648964478981346475599185321171066038865171863095406405510801995901204777880065203734255868252353607863610130149147363107178810449587884894313524212633489376220784501168334462213417129814597214645567072216660464703070663452915749679740521290002746729409011364820201502018605796438179171448031809047571801117054011720508544904445944123420073982748941711189344053141613602296531783289172420003646122789453432209932282853983216927501743910329017118598615430511001137855682851807989108706523932329345256942790267736473565912066829392596672588164913514384101706901240653647127092780595008482605760782033747048722701975684896880122401861387205342379722696784291033504879863158839060802845202052745707413138150338532980975977101880342054545048166229202134414473841289573416348980506155628637598399246826289801973293850678740330835810907475679805175870773004751808543153835335564575804639878447183534968975256819733553380432822569850544369125820494491679946732122127275865991005838737108783497493050746038236175601074335065761951930751691146130140591517473857500282342249121151273924427298043236487473600515545985193037875911004825575838053522154847141352679816801472769616876796554445190039230152974552767242118901386716013090542031338340849160917566877763473288348685842589250688676343629247686228664653604505861727418277237501086038744294397588827087809050040188171347749361200000619841956690176395046191431997489642409843751090551274290792606559844888703271505194445151647752081594147189127097392532989615522755522897246277014604340967003941737923786297487584891034921571355954772299618251930710870161886446215113641998594812454841832111722158114557270908951136463382701010979919799361856231109041763680116195082274185464540334672303701803391936867639661806582985731955784552125415798689636898470933183072353740443603194691427801020328272337075535892416581051845826168197493902419935410741608109551228941729015635978124619409927160667723236554639123763998525854202455942852722873104627722619780295975084209329708097394880756264455639440465875817310447068404189852727457249079988058670354678175225774561552944427841607511507320897847576458299551078369675957074279393503860835874543064523571979702700486614138963442723092598537542007620676058651668303685134995450268513458772860047106711638667008934699651923531799643999712168540481425945998081499595649790623303761529122815465220783947467650249694326864376566986283513054067761062077270310504336682065376090048702594408110066370863314733435609404366987406988423905009642632304924327387943875793119734374770328988192525086684737039881315712959888726160385496579705688727256718041541423074204739107157535499588283073217073770649855322303177481244172591526654681441866828570893941271203528712646730664779387055970690396343135999642881453551680029589812895253370125876836192583525330929326935096106485263788324738968967341746900428911524999363536624003641833297811414764004078528826451116742069803862902809912044682233020151892482361560800953928998962446223087749487703588000818796951158165481879261870606770710967567581121698335289124904678096857168889103824596782447917935930193831085953692057440381199500375109733177603409360423714448015445907779891017925576764630338620151795291859705417478602396608378780620518947913875635481495087995318061853866213070904620405878969359217896516094496156067858292009009885131559229467468588400436126364910576688328832681278280942498789506514509726452004242621055540787126657551361579495710565203682729375056642682514721574965023907266346319443863739116506602030468710418988600064724541689490891297581996872710919279809446919781171369488152658714976882401151767773612147739869855821780279118323963193817043522442185862895595123650205133381292734415154871635354132266139277481405314572534451631901553198522691695660463137707122244325488423307072373998256617484474159444057477968894100336548960055215160198243929885089000306768649695235746396343381587556770791361288337835973105528897705624424634519216019823720469114612108008835431593037874760593733662397863469124225853551321893715883664368360855689412340543893428918983769054458825188514946500035083279592931413234286566333221131227440416908920098744062053987003936552631322292013196621553688801872403972955666140024688196391535547028462325522099425678272146691629357429091344491319435583861761449465276660684399659904532187005467114068685863405144519906017705998980689268079721995345982959408915898157886495725078624837116003772473777769790708634294144403059809761894690438319188506770826551933490027415352369163872872895665801729081806896676369746693745266078941848020552158627064621942393420969438089059938510281116330756123226676286431358569659258792376211243462767648457834742054529805322497767366134142058054033347336012121947557733366680080136576001750890965359850592037880458803648849246511778592496242100098478996759630476630646670964392727276584527775480216001424499404857112525766397028037439302547116906341896183427295582875231375577389860778148449471938299240321376081454904427952174100681328551454824366740178171510046371165634582556068275641803106933273752197612957920898175260137600395798017331492586925735405618919781478369021581433899014880450362431941943322020045084830510745385768865751265933660017934111793078733144644126858673466919120084649976954853807503988183908605011325334218044334067949473600930494879971518824887258210212414081948689940590462554272039437472326123197715297217516371255165017209249977577241934437256316808019162559130702575902392013017217508248361330079216164518034806629221534025357895716382047475599123009160118285883795355654709586837029091937641075280697006753456886305142502562904303928134089380216092731081845332247699645588847166976922189655385811610847930988705179798682896634994674238963016391496644539957560886941655796175420537963596471876191846061611467968371869123243580859578038462095038749832772960286826298862061008517569044485221733122128049114971094337295428948107638198603989304149966875249574793097137193209578821168845499112702116291076582220921129966878286137928928137410468704960190166256362288339185679853867372828286919499941967995292767937503804312234079122228209169228038775474662494042202671745686258266494722601533560253055723502717261584265144662670046855227521934745488962816468826298593743612987609966084109821206662785775577886400983879071140966517729448628336072590333609731201474651354199696075931526369680036139493717571042490299301611793696741364673371058850849896368427498339533078597923965995523738123930317407262934719147889070751799781581955510298084856093100274102826749480680887410985666014554646724103496611820146113228334059642712339043824407593240523309787028352390648103974232161355864166400254713449149657359779963069759278903278354238072506781455114463890890049706915191815530884375399246260533950761250587191835449221216006565595298362199830249508403094705895500198649357205072772001817003150115438791653683555799062745933073957372629729188415475228013173781880193291907161045257632263189561607640980270649256863545337245158043434388407596683824399387525447098998768510184272266766281973336171302640910171688699504751338665604934314358517651748262692506586856018721025854095852816640356123018010687836883273451746313849705990763701782660472737801390645577483691981940598687596859647243656760827587775296018829649223712915085871085347458630724471180060494443129502601262096729395985183328992329225260082895911139631108729689882140937858711627211422962125949791906221260473934012017155536916636453702253034154881857441692902161384404063727754772755480077622496935540475072845796087753908521392784262535665668371201425361842783734481715217004834931387955507224743157937645911367956188373581593091011939333700760377052495232746604909098122244168356745024182062883168833678771125954638116755707595752387960236675179962680837951475835231843420682615863337845925182050125239438206187047320839709222482763493892524585576998401514929963142846004205871368493093093388290407971410672961062507646110757018383199162550885578989616837928816281267577008895560821707488064806728101296004582948881818340070115765515561709184162812867177888274299032348947612836245992546417404021850073649613843647888414277716270070826881236718903494523027500279648440661469736856804247682985186120354695408788077487690863126783830369149752360714855515950223607345115569044051004183789443886140959056015572284215974590824724439062929679540795317780967858966030356926617513266479083605187238453502894362593524201914329674871740911334842707544388416685878478221965858205276925430915193655684244662160236678651020311884364381359475940947378790565544072272934965820373362697949887407819236151693177046030235896494301438283044170834503321851072895873134265275672616791848730677794911627348225906889113993081190940869728617991351782972047944045188522273233047917191311386394137663886625582080611828535114060616286058696735197920573758853051499689059566526047007600452842586721738055390883181527270617289173256153255164621875852485645138071381036669483613388096436777541878566751145940343857358685089576744149013085229069843955706838950636175355394856574554616239663955371744810664960424717565088101189000818428598214345556770816895186138137251801832376282837712608180259365940018228760368407350943421530940767403809968784924845734678163647821630592324353278362074926589664011722492776200779479592815072923069828007119592728904674409663757964074449580355769057998826165809148674911311693826575273513964706343187405605883894375280920772069419880722251587477403977056239392237496732904719571352147453360809224768602300649771988048011071625172862868160326986291602439078453531715535508879118246142173340697669290277111880477885913952091081485683574370589319987935633952157761020157224846743703600586979836505351608023976048358814853980745073012187910626389609699067428591256334000411275486293504714505222975677580435467494794776875500607651757952632416186324059882396873247513983288717502079324570845751319524427289058973709074478118283295357810681537404573103368952762688808582492576168743683947429211051628334814928964538966958741114628488042669574846388070601092558975744673024020092082245035667386698250662580575518446614442933371627720671377151519411498279312796201727927011165186080752669824506317237430244770691602928952700850265124521522966749124113732817619339840708411730857404121482739809456135363691413639352148246310017483979439590654441006700834013427977772854122188671559137428819016435288987558401111479421206470440943028794407798156760074450992907115675982378619657597831308197199002785861376146106589372226240077684213963619781860146713045459303328354601655897047834099019366648379459282256441777075692403667808288701538946830224560827467092759098946626798590579077128580172545204405332031027616950793763353876032914595946727352909938367375002902530692334541240447121225384663074473556415268266034525867963926961491502308494110072210309173884404613832353084715348827494506284257645453747981833456370234735052997651680044915598071199283597629279975198758065068229033404031399129360701647533939081357387282566541848091444899226253747148894681604491047158675921509190714778240107850813488007944293699657015299681240200640811932097481086027135493995435367282525095377580923573943298519200276929320582148213899658483869084164293119714568041482182887399232104780227000957692896529951125304490274521969493981140439661691485954692526051763463906044116226746426334848750860593973121502133915663177507265194538568320423561530842115473442743316378758359602066820286849083372818789192574183597463005681334175099855824077986728376685095541157201830219566571581519835030348676261374933623136944189070588728946543240575968172645856965971458096826550038907152472539953698703596701549529421752936812665085966835966256452643797432036589257740253477343529458857503559672987473035899669502537155236401861806530763636647953866512572329421343554603929739744978526930994291604098582391239642044136619328935903862566346241563320483386611827615506593484374423217007801894921680588904020909075106626399860531505079248473680432945980297960017906161372589791860272774235941250324610700760911268930981878278832003360952718650724352676534305528131342944429009133654433815402751525058915082594104975211605402664926375551360915622959128982296375260836165011742444363705531005444322021384510379164157472194542599972991049124626153363096807147394926210116595264404328459038587718847192979356413899825641691714330086720143025057827055038802043263609992280736535280544976174773028697931518059127604463778218431966613276048598277988431124038667309743967879282573359702445364311834135873082515649972692347733724997187352611556764438794716093615712230161929573948378261986437917368932615636180470166476165021440563942306114848435760459235216227035829692185941387705635666383752497604571657724527183784479154040492505160488463324293377800719369180425908366847714112616267351593809304001724939759158829813924558236579382002520109897537834842775477703173144081610724085613154309202678641250610760639412946019448623568712278311910894705557004014031723434453399698749584451806310485847731643409390395802944798095085588125583946882480024458451933740478342310792897905329173174739695109962992276929268047537303261431593769464358123864293623305318706600353325311820594482423225807292924360758154194462273257717161363742999235112185784573423719808726604119467882569653310873072877347972376712354193721348397121680130819339901457744256466522280816056791763924701091736971384609939360344139439704249887732677563260444832108737030481403130030843351561698435502307989046798713868164045440865413535951065545140057017857588496740863130759252203880716872034290275947713503831017156400993603600272019917465467576936916561399845421704042716081644937867615066558321908193106063945453439918030102618507579337208966152375425341764348444065590581017601679972524864574537896723058201395930999935562595951758523912087792268873287757646902172902207391454869894332334121612309198249921616605411335534149242438171501444047027545282196711898508690339239801104678100047445738716633951702495095240941534742544309169105323936915434226718663029887826430655746524580514248998037346656768250629016997008974370290836123347213004531610291338450456831650525639953561339727868721175422490488119751864198614200757583895470499836889697252819938819468291590637812116245127821719145423445974559927743490336931370161750321841171129250439024153355202979804282229440565810544693055194442963973832720466255972252840426702300026583459187043671768114974528026197188548811009989959544222316463120156745138747304422940543417407886937345924445433373345405052861783086057696012107147914876638484574917861079193847750452925413552687474667459568126390211301247492147975933881274495926105482132848766417891733778676492889325978431922387594038596701246324394792875020935602679636600721720611189185874060398934068913953898282430937365780148751581229663687511250698652026304931580735237023818930154468554880995425286696776918126683925155940638990044782914710147088254700074752392522792624112004486181509365858873611820546339700880925422892474092818305445593869453974714331618110624910144869549031392764338786556527089257295280874790111532701744154675634676780426614266368498012801734438989932398804745105597830234620476377763339676694088959803506005309747687716098241056428381041445361297680434863256047552048179103653312928531655795867372571735750205408703149057789744703026075411267275163375793246100798896517399074942920820676792741496791289345663956200318460072801766036459885857518304199969053541697680741911960279961910796221077852252565196075559785561135413565875923216366378591047502422840707568071570972572498596841019396546935452986014019183581927800320872105846128682059633157351052050993559204015876446925653343342107345100469686330454729733453537325011535344393447570044867067112788173804726453762390793420205474929117518111113746545486499654681666720619324189960436228030989612640359536292632670874847732464975933195905753858374353327554222434342436739085414035537382023170794670603770417836395641879014380955367337996302887294125447030182946072112301726076310976452874937398609852034062850640176684508843574827202468085257294088952097715213909628376154787917101027692541152579274373560875888021711016449442002079940382792795137295118182634669363498956654524335554597988051728771485089779319541637566057765548303063619126267056548692948325090159597402765387374834827098952705032087954489180459463643489536645474751444754644488724399207463843789826621567627388333475731857643244879271991468184761783457320494826380762631536132806924393440713706602649963082906931525495538421146698949329048824197755900334160321613369409450650461723223147515175774558477571580865714950332765380291495627696488590896436748145921370718668201905096722836667237786292741410202530276124307415009905063199596258843617048649405464082264865162490088210450882616313869474445429175804308627733597411564435715439821038605101079437728553562381281409661064437274802855037806789002148659353474149167378888207718275395773892628651664292764832628943661960688680439159501590170942307104958550666294394765585865225129960324046724095029640897320839390211693190702574279991140018965714286096667670587765430948850646656211943553671372396485830534158305071047591932967025302872495808761717740500935384104124154716401644992888269836869585701344983898582335816857562770610812219384328792912807994169930636230522220798330975769536701437276002396645970489585777389052423411805306389723612144938371731652723577030556326321015340039203693626928225868550898034779831545342271112094031481111454882410929600127891279708098692904840483408720327360868961460837197626963207489085999821851687518394229377745690649487741021037957336391521857022761549043156804755132863592990416946242215082877327814080632362759971551053599230932351380489212554352197210420847368706732967018964655867144776678127523725315177189923367019171484552077066604115984882344112639661275171843675448216055336341564725575245096718991545575056442752404625897990179662926521854141837602211625330438033284600490602180013399615909351308569157134394406917584178677068106939631476450158096720062480637490195485259157214292856512218382804158743211845610624564797296763987004207466451317359144757678756540244751095465537005005492708572653883254652611909257774408141834544137005145030476943605239166957282830867415125769280101033015527960581109900105321816014046658998827855729415553662599414796660197727734822601914876027999328807502787339499736487855825897021724045029838959785250365678981251027456803042348840363877012200346172675450507067828303957727470969980193055677496579124674197654411958902752285061742144586047770428889508065093079925444354475363339223016350168524455186657015221853333238067974290315746291025940273351999393759239108041889517424503504808315541980039235045540676683447640125421271585973439132354424822212433404852357441992697595466701016314958424714456525328281993627175804041086343227063773509134323928083900175961760890673991452221294162960039520314823399614580322022453068141448624377384940896184621761468835970668482909288604561523767492322289048317369388917260649431916453141860123001712854717606269236221991827435478095934027515972778621567512031955529001937447661580272740657772159735224733319227928969018336512066873419260681709615382916828572472974640754599391717577874166355401707260850439626714426666507512487205312583281670826886366101792688076441435847721606938985585629725301860534203567572891810166656011084096616313799285716921206250385620536219185484447909723567940877549392150567727632549585623670709390865770020907168386264817103152621420668095519147917141484208813314335797343699019531396541792204422392887996321586929295884739044413077889897861065819200555486003034213565528718756460239971403504076362155654919557949806794726646154532660152480890408137368405178595882182457655695267672472756119174715203976812962107752538469122318319672464269165959806790967399313649000667393947036155353390819382461809870109072666842782089261120754427258120852475716661421110067738327249204041788129399594441583797544860481445378210441292897791601500472021064426827746867966784282179566119267479236675261891297219846639846763517034693172893408603788186587098651662971886191981450756237586968505300829845684321622015728391689750946695662159368267541810206990777421727153208942664065640078423086660817385666054058934597293618029897248077699531614137766271575627505060432122563253607204417718913494952478316166735842254657495584067579165375002865676003587116301303265786218214391151870122193738339737174446564015313687064761520370501952418682448150260805864148635742349468184752083374168719345810143079693217979106641644544208334704446011521270944257918948697269612159507238264508171523017317939539489584522537319389742737172943490369680078375650604630145822866669288973721993452418807788192603169492175913248836410220787708680752197327678277671508279399457571967969462010108601398076749081397014747081985798933305567847980465107228221766911524052564922872090690518312687656551610843319205486217901639195845708553740164034669269688619977294239893364405829877527635213955172213321436124667390580483333997008269563435352087499049384718585679825314754988539141640128387772172747597599074483988126649453228645817126555135572423480923267029859200346046325316542500481065444679066755698070682432727516154410693161275415654131961159387247017204115582976757212009094247432887036790651313584664285325311095028404951140094250212805864908501441421871768724296114659375107058711646547663084897373259451738668998776187983505200721201347124498399360388667847117087937820560855574691851720317859543928183906054232960728581087746424338983927843521019581806745880907904996979039863930769398491190117653516108799695532106879281652929794777909899966158443800787934605951363182899811863776675149948593511908182878545178497315917687860656363974278278713375167037381311577777888391446727540078495819171310869514238383772218192279757656563481079582997174049829945020741919407062799155789197823297152221157574254151200231328106603950845810702309890285838913121125685333189871144870430750725644649452916612047375298741986472322901281968679272212876455060737428564600072169603660327140606209604108579405377120314210476464688884116382034367565137114072925838527424163202945667156272043090673405874413378251209065247080391247011452539985186933530337485017912611102635435877710903043739681896414178893932965791300356795019642257211949624943563136347314645374289345909803946470450865181587969433778679530635748997980988676613892933153010701128366108956672407043587829539611362267011802660992511485727355151867820751379378672511209177930138035488115911398368648221250877994706697516482866517768007674207184555501991406810624491895164169206275190949455166956906851725896178734949002241968088850678592942450442435747213329092571499441246671696675648275278873475126129031507154616717704417892869699781760516904856864012132459513805069790161346169221989510004913808713246084624218017263487860299336047311932422765980073694422264758027079370193260543156331620133771010523711469770363845547980205733039369909371668106756660652072222422037807581439251039140218104868304905974102823575444920848629347764490205565625334558784064115346396508876422491790647313724160391510436633689860823872133050484976499967571443659214244777127288820294710145366779498704418019721371290998621363040910120496240650481686809527645700034396112330275639831076484975875840124086940596364633742718975653376159419842271411928427527892439148205255175212325119198775257904466145615052205588295539996893181857291770924208504704720097206025882418687812615974376264755855537570496870334033416715669291282118865022063258331062656838221478264937113044293296843225089786054863172624911747846203137565297297144188888772032676265971951450368581127254979738628262626050454831394757133501388089926514247102107768095249854879872337473236241663894877800685223326944553626120242607319083854745433852934405434861569902735250141095744882188732780715761413696822149630300577976660800716374461802092282370693177078599655628488509744931914939489248105958711775432039766775337243131695329663972686521172693899857909386234915658568257351614266675577877260932181480376284920508141913446845319321528191793697591967990826558680559857908510717009834290866523645892452886963287029532303443640321832316397825549499970383483184096323765377134472559920929537222856291067543411739669079951799173263540120152913986198581042082245594212360128015256593247599033586108204399278349667877823074254457537812918255535966766767110586142014174110281659217970972682187811134121790957747879240215779980341832097010175267466533580907280815004012472454766839361542880127615670781646188304755965185037883206703533197349812505801711955154267342578697223708951088210876392467027636660841892252912040935821748319910063617702091574385486655244168502639442372148639633282259416554800858338948490953987291781246857192614405008122262117620735493021571660767883479270811231749549622325994125278957948744779532805418180193520069814752596942348016328765664438010302691755358038830849640588761181547347243129688263784224180525153067856458985117996593077524848581379149457086921070308904898742756507095456405347544899773203726826959965185508021029539211505651004181091249269289296230102015167066836575632041085231752753156380567572571229974738819663161266824540058642742763951985582198839312528883586897499916923221329330173781974830498048679958003812258578487169524657552722213765051205681472516489760150452990507735487129431213550305671587174245253009715139736176431776603405977894761388777845353415451030293479728905059455117625816301791318643417666202956576515847583527297359947736083812524983990472466458771360350628930645878199227672906729833602161234870539931627883003971610501126583990966787267732013962783299632537615111553833496900191498767558126761132092938817116990115021089879389566918764417872184753716271051531428976855896339654473071643925352934645834899190843721995626172163430809969169938851000432346175989604581486171038635886011728851815080338073339636918344100017629394145361169130638025089679699909136536325174700458771457059252853006005013913214588195628948334330851149505313914071119500887724316412443776029959297470650485672749952169500843591399118721341136795016603136496908068239883212733526493996892992429182995417625573909543802002571400963689647978629640449165511347891810831991743499617539523449655589857408833792755257934195007504668641779912577745295940668641405568444851837154825712828630701712330628747520780083399300872184887998319497642032620315178820431306453921491975809195072917607665167859401156306447412818183327265648802301809090246787320065458518395779003750723324375422144831627873275923213077997991830647729455652767463474740805637431078406208258916335027594242232844232034505189223442057638773200624774500404436269845229565632767255091260693754809561072555026100058472165644137466099855866448824972050312225344364549556100192940842954729545772363865510528345906382661930407006754314146810031118976476500661998508995669302825773092627420836545149483188812934618458566706028666997128335735518809272827435097343203216608576529531690561991663378876899913424720221225122878230327730147023650568100744919232648927541240803882967023477350136252839329775187612918942183191738214545548616950041429293953104607977185660452743103531638928183625527641382185613069367982543827888506502147171540367921536155684497689420370849034163086497370021608933505323865610274265195582804343899980524035979447897725392275205946388085921780296070481140978638764641004247191037142006891561658707931838024516828463238205033479894083931396469279828894829281868114310177312790379488984676515493406139189422300657010949241964906313832959484453801451506403632550625324612776288403956066334399903530764742521782269378040355092162615786576330149198875847351597693110916291194425705177243551518003275526213119042764809953266655540738700010712286100175305328452115374384257423968527442070904236055779153890185333712969258276292075180554449278693256900579191735226181533217080967779920759541169435215866425539204956638838089795965378500563587520072025996122587755910691003739367130034649662350609676956356155570395799301231625516930876983634603815055173490502831858530686777836138057725799900310059586896627893387178633057082935638956307655804433777628133887315584067520808970057095327717406919505086394109587969681416413106006848721621717676427726794692139502141203409086184322478693595921044097776635568312284463743199133523247493372992973062457703896589236788271674936611985961285080014678407550981177268454140689093477231818473950385417677278167865922756495750356029913270851987449206372742165050696171027446172530858522174068546804689534679258408597121470409229938682614324898542941342232043793046021976036337350722858279575780175347739472640618589927600499531562582824016201692746594100400524088242710537133330867311254547383550925148937735074547070209998333353101020833314646859127747283324255258761310888936589942320717786830496987236678556464076212252104034019487003628037184303139999204283177574376234588596531444229124041395823343500774709678882839026653872559188258243487028071300647867213849315720623409490321265978684403939073089012733443667036762584923699236197685236819148439358937690944864092151390422671280839447653136415921170910128117119244198720181147539240221735521588003755072817106495479128479280396653318692444848713543432408769943428156336011314435318263159157285536152203091693044361351052743642160989883503652305035381477815915355397554313913569513099734929455284292784128568966919842851175124954214756805642387241385600454101843848854834087516244555971305743588487062129728870905585675858728285212136843175694543072648492360206048970719447957169139846478537573541631816656712407953585947476866461923495829712696833258952522359226029982458651324544136030054973214422980606811057831951697714805519954783528481343899039797476214468444694252303636189197228901182424186569784637981091314739455957054665349890990763069598898927425978928041106552082511858507284527816497084030381803438628789914815214909051773931915158975062909305634130786502021428293984604801844883984687332525380684415879136214521062524403179154562529401132469310731342163603934862295167373406800499633708271081930571377124185353140832426739110603024592367423444335775663439957056778673103617577041920340508112785056202544790605972994191341243699716813968899888751641841877982534986141167037546310082318135606394120081726711843544577140361096612195336897888270337402249877114515247997736901962633883626447811663109670860826331160200556723149300966681018994544620806058235378736321131579362093944719369713621828958785007190681278576759488271197934283555061222345477852082110097726882895950822239845772672766571640407870125890663114229108962646993660002171993729993550915149167732529498824793650971457631896961781866970865127563091064992671772132461630679909988956564946333013808925350040448231744406900307007603678808250025473783730003613247065411768101692613109863234248698777173629092068230745664528470644301922050218715196146309840766500044276848917611498575229131677177179560407982495850223174515970205372692201156393162277814439178847659046475890244326220082391037532101043282666922207387527509392241379073768831638363080613854869679959571997505547208809834254978396986553705400655049051055528447908306468235438607143396554707204985428004377785028855034724321036775677997529831541561456140012060964023250626662868565203918390881644238282023566688377482896187021313687242019607009167492836732973935472888619502816913907835708214155593458925577118504560110008648698821768986697787319358519126038068111684873040419623834952193804159868160911242885471018364251115372148012466818028386514973389438646825205869978339823874348366923137454802351299671164263845223260630354332595322044840825823310778772475075212230016104242183578043951935851141579979668117967048775701928138853282507266033221434724885330209111262871100272624816696258365953504746441275622739382422935589191255229987781865221997995702930114810982024380282377354613065670495780577657154931833109687008645675906779572249668112664616387387135247613145275770515137760355526451635668987180736422198650460099245928734131314014014372922808772376450297399236307226883110225551656416031821841624122032114980309620470699061140754271272585982960697125369313827188465280979780345894520337162148036056806079211410853198317781524726528126314654317489431140316520169579297655555639516708584256340760774272193778170005695535788409913729257394534852568058928265529020746369317158474490916784280284971292560966545169877254760641644351076452972187137781858567464914214688078589135680581017846860278241281322582755525760261324137035509427854409445244328553248702005650748169589579776508879446445693201205952220726682135144181150897626455702682247222753182063316304281788130450095536251768381986843361019281858994156216407495518176269074062690660493171462389019200300662149328269423129901656963183926905548947145972204878807827795824401056171745639253288251162254595839373961693926606839836031017133770075254675702666817836097702726383493842996693370169585876731754365551336830635250961872881111997435135768263885580227371627053650903123151414044421577576077798905861235212201334760666087901874840626699272086694875073369904259193586333656800474251577782062531715787995215665302227068099733920375993508507773207994353012757309817382664111647378481711490601098791002026786319297406982889826129837258337032995892713427809526208840569611052578195561431732933653319985328899295572874396273874892741987520691253926545739953905141876776361257793796079368367747746109567713798887489043738706893491570223768703593302900759693351687083686172553998002014038466542772429798477197282688674296718826005832943393752425461919957637184867407879708682264536402502391094802112001375751344220315532227200619748747517877571274571278700148959637265570701629210723911808520716306000540287157890539581490680714546182641391196456789917189303167044792532256847921789700405355977296077814824287345795655536110818960873403670956202746219860236005965796136490738489103407513709380515999937952960669444039719864015221176948642232752488157464934356719039669172729271785172081572008191903761625328480320706593547001762102912022048784592286965834106244185044121400167513397776271358923978038703124614468727188201844491192084570515285570682504419252604026195944492462700849000050601686336179019939668515656723139956130908336932804613841920355539333922147906133219786553367294260931393914417279934779142385535342958831518245232358044472245145681451810520950570619078500430176015825732600855649416953465887245605200878896748435561975402670724300778774909273058201669473989554884341577540691905916795357897890388260750853796249024628850433661536829159064131636110597361650933771614938487698626899562313987195017285034029335529537712271469248163059687941903519658406120069849843670919872253462326100115208095077669256046667865676418638672729526234171903482054161554277746770909510166471565915193935798637026748815227756158763328991062426486647505202532819619720389007290219494358249423286385841816568516187122310621179463066987452000737583164955410161761181395467325857299019198391974355083999981561323481784729711811459657492162139920236531812213138536429142508069955164432640795110090489152837799708421001871096352645611011811029433137748583081578061981855485149144867724874946425234625164984718381194933432924897848578167404538127041389300072622534415284728739670163906884388169219325745572378179336813538271037836965180578835399031195060143383699169294095676628464671001306842752638209324083425500949215754392629231033916421571846867462524054803370175266241080326745621220861009165166747134900106936613718303458927821113751156516202123387636875578251753816893964683885287675715530741357728280343899198112144183055879383820914817329011044825640593846012437847258391124790000281589170095007662836513555105228968463900201534047038488085952637362179562543041968371166587047857175912153951882206896190212045785229717815017298168163133404769998464347767314875059662351342617777224932502832252876022475086097692443393547321552894691303388907653670777228359376201141015665626816774364240745007994789783269413971865765092903145667194675434594231632261325597604208273970584691510140546914324436892137977593259923753585696006449414741441221887241150700462316266583610887059015787442662229495906800861540253062359119990995029217916910906186266544355044915485591740507248939727451366962009051268233081287890323889112750759351601105730221644595532924942719435636862478487556882203105918380141118703913444792027336561062923555769966305585180730143794664731969766888576404939041650485081506635277975313076369499809415944561691190007859731384586001861703038919770472787040549544005746245847577488459272696213861814978154995790950717223105509711137080915865684630042002977190817511685596902000188764545961019351007369829551466098914226925803831178811815618965486404375963447573315242176455688965591913527348438764099879039486496330417048213743121559639356567926449084001964908608153291967457974220329929937769687612989066177877587531918783963208616038624496818452302435127322185906902268810102257233563224922455401498150509658215356932975801991941756701649210286501096116482797593853377981687340304268833158933908419970930614253757140877414646825013577162836966823184873448363191490357111584985843200649649507130651428150272886505681965254040872000768797184640734777369560122000435858768600581819075681379967608855306376143301759786550546071650320570647129609084449206980441830959279099475113506446268609528448267958266115525720858132432775288596105114350945986687408273201365763747583198124707568718392400690690427152522379702245698165073171006679258441045985052952743171154813847688678886721292800131630080978791006396015873351498375601690334576139725919064844293775455592034901669524216064371958774835620545176293224040478859134293018675498631276593886332770146806854329197343248672268362947695388570380191314219047970980854947788167053089404587423137202275269618116833746881850801713043060211538837950141669554832470551669606916446077215967078219270980728977456495394667040226713048105290325449760776902231203742404725077848892672028574082082459181254387623826731969261422689720770941448391923101896886953505689772058876955649690160180645417970603623772058996970024105735375821894713929642645013382109867945898123316737807345058235879832917717292572989487801261886417656203097406464364658050440872881248073959309827722433968534227945495292449238208157427452972411074858785666012185653092781134560557641958505543723486939296480030389849352329356362301220107264245197117885607849051970719750692493477785837133429354968185943748619397694042511702416182950617545460159788122176319072830902366103538297763024185202640875892947055920561728760804659725387142195851019816766237447617875068083872305783121376190182486507885789581642549795099619369318991394926564470158378061854109845664829482556566004576798414856761607095386088318728877247238919369060694478982291217783510598794910344745799902877714131103985778998867086485912627288527256995184393341994514870643230455470572129336913887612061724293704947607567591934856646972147316322827004156998243029242906334155173753075205313146876222346709881122566281567483366416857245744446574847269677053681540734526881302318243147172447387804567330647623813919032697067471739267955082124936292076922008778759528397823917696614714223805322066708358018017397283493815198929794003817801993482444280585360826103370698533383211713409403892718785036927698884870899061246159962448097385446869386641251772830370480868510522268715563968065261678769118913948615419627874929145782823078771140695134932362371194212200480095546483931257488699546816420998261446403801498905496449843279267912032232883768225672230644208237868176765502019360478027488645390134103809835848845922278354161098266371473571128500834471625888067104295350410928209150511459473910726389911745095803480250051901906234383088149721605725814314097981074673358838905240772054917760020484510889086668488178322416800455677045034001149848632635069482068866689755149144069010824238194811711110005283032036062267678337029779220313816325940529432036520898535765539513444889620715429899155114274697508851031750038259903011358127084509009976201658500352729191560911066910617229758486882086896244135157961018472166209886316602732647265520379330924575540477826431605639458599975922942702093508041164643236098254069544685243656367196978281623762501072998867527282538797455806735034873077951602153803593383525118579681492351663094838963901584566228708437558132620251792686463471465062359188746207342169894936372898442477361633023643725249482257276834047300148935331033780789537293080171260919132281314157461983677000400457048686807736525146056707480499114510119107916689036109520811559456055290693556005163346510756269846151696565134198465757061179094198360845837799476794114018661057088133114176421802676028514329478647614769601058939779268807774159092805542587709787340289832336069898975873856443650421413438385632406820833446225333906232575572626592314992979154161727154125770764986075623382302421143025801425398218072024744252803585089077487733526482816595887258974199551683442103166059229703683234763165978890445101772384326882636294849226735078675848878460851171484957891249401335141779263616861397110023948148568157233584750256772103171561740525851984710466272176572041470444419502080840267819537723093962298849590130900884347955001934623266572971202193379073080181849520041361217239454063403931294739203806752240368095837488815635023151978010362035930485395690397395721241463789392108404165038388748020192051616076606477793553177735833078385082235613579808189231206055284107823521507987139710296111819819572391685041272960752698198702524848138070011996272735187786688415300938561820929056691107854822968998008383069528451857780073890050156181643800964207938746380815495049507198585732629430647726198746374564957962223797627698748456298975045306548439844627371182680072872113698934433611537780330102666458004972096276097147554648467123531021029167312599865078569605478791673736554091815661863343701342169364065705135526364985184351614538168829017880508802153816788102650645328526443149033951596958084967609970661279893671465465966423054513491333415798357941805063688174585178107119131566346384531669695224782335795005394113488896763454966895188829819515824601526791451595676215337165031083934505512421066079964676453594711444449184117892851723763468770133637737177200686781091865904834155180272085085335635904643751691026060165806578317685302548457314874955372749219484259076548694157967684090940752155628082418713244199017061407638874034879704959663896855132121603560072485854929792206494675720330533266504901495729287984260694112038149836813615965526224439190517224549949013197286614337298644667542732408472177711596732891328916053462167874757114949136084515284985167866278500668031185479188800353920853314223282561502990770595258835145975067000611035663976038237765798863882626094437837763907749987450932823908241488433920760489840794772349151855736790696457510733286483864296740448656332175140360465660965532936088530078401248398231003241523237381872466563683566778772628560911397349711982780092115541670121487211743284088112106754814287213635181481009078113305977222991607718161189184863356018584832447435764623923275489218440516266759689353782581541950834815764150960534129701756034757523823985710759203940341850265831935474604160233587629810924822555212057882057615875873300430249022487720610527473392222515500964097191522620772736469814770388509680282569799446842682997281062334840110176073370366924162571347834199254844341317347154057298686389924578303425954673210323797523752455414289600540753259022019644392129273287612566488671995008261809275622071178894813698523054944077654226798152751587418294116933418053472404631760910692334866912188859441013951861883515304030101831492669406115857751373810954978180520300732050135806125905231257093368545154616849991610401093829473509481749985131817047128672657573547954240096017910349920629937375876091338765539174797864437020463568929400004278904223399156503917560963751050793570563724851495009721421821647338029594964204030807274019080021384630288857623569084475194061326684853220176005383554328695713204490142072106681595976723368785061071278488217417800199387330365887030930485557784783463908595631544699446735648460987651387506649188015737736253359325177683735460043177359608766165769385747076178732405252061507261359742086190823104140233901162586338608520897636014596971359720987055803522946752082848952267358554692799085577248387954819381091775727175024073842416353611119098213874729554665228918035362272551423488014733037330423713676210245000083597526943491699672794428544229972340313460146319025819113438344728024064342010011779096614480502763272050645569640785404179133666240613735631615983689880932636490011375151511209773682920300727853850669336564105459329492268332632897926325993571890816255810550648357907740099085171659965004798915692626307291370975043080780507434276175810128410532894684969341522627904049013333532820739781839301350290519553983280611752043594359017523297447741494853891206547854214040340186763704060277800480499685726871130112343471300532470952301306034852162595399246381069453090586880720230420820932395620432779552518875611650059218751269974589792579130660310395712855711783909285791268402470468097952039901786598765085225889320911201768237293387506085326775918535558536099002376159767035989472861150208397737821929890727066009674197875445490180819826781919363491318938158367302561582489278725026551642793050718225956069379353697802864361144919686039957292408904514896442409870113868756734329284573712267739578796068035825148701305706318740401592923574654112772684689205282051652424400581595862941230667709041064819733661845119462279625322100263418634400408072364687424376500689318910899804089049233361909631178607780350906758286110876921860781971526931935745004307740693097923031971707869175554268547312872047967875852566738819143329769495656902494704947503834460099899278053142112279317128728842016475182558428485663538209307084484028636012517727256696122958709684380077791497917874602511800931357893304541075892106433400974602834578389001473291468273652167277419057606487940976356034207784246923817806141494792609695917565299611087260316800136064188079745013660081032991645028030970893686969803952107980172693490869626443550388194361252369247460829413372430250387511055974079520432395165539094123258515254384670288693849620334521892879336310464962472381486695380698064554691935274894918277034175563928493364772491750942541817186340876386970554583908178306816342744540731268787062243943597040429882653399475550291148029616758972385379142924747586801572227499052637059407674823680938396268561127549192346140516931933605623057074819039501363347713276709276890370322664861233861307615758016636210085932417554967453344651481478165578486577400891492877231495919711905807194331096761865071224732451118481492830506404188681508880696829362587048696666734118098916015271953121773240856247559700468910307149348307050454617926255437679813904426676373148980061846906748673277746554180495885669589184279590761042007715890818763393068262382799273756219841030640824400278497209771727319235610191791551719482206347823082576629844784908921686543456579628468189761953436190456568065289968363534228482927719191728736946280670528440993336341983445814775388280494555709548215242785213093563664809034070698000768983859362585963886598856675866151529196274457330102821668730976440053428577631550232204059857988194616328778697227743907824083400718252366146385284477540467841462809020275821562146974801817355598875454581075536493681924517558760683012276752839546599236668429769851906979998519715206353580963530907644165479621582290225508672026227543679258963477283457681193075460249699785623271156329066976711915188819601890921329913158548233210769384532459864667660986373812226732667278815470042125156419900152686502456117699097717190391642002266827824182446156320757256762464612752234574641044683095649981350175061834158668843754834851435770943814728027568204574492460038854647378411204996582755452624119933190344126003554835295049890365327523047265175684953752372030634190891334348474709786327999021828660509030051214796243854120606841020799085037716103177176167499005931783495018810773040832295159441250505257766077606056760301000668831997436433887806253066355323141483880956985346359632253859738070832596841858772416603237200213618603934942401046455183707555720696977948605120112236670301130373098845029791487531599875433220822519818385004070616145136353082598328019870758767302955315657475030729156015661790706738042276331747244471470583979345388972168404837303375344682073006658717275029162721684551053084672153500192658678673941818677099039886920820878797983468734506304755720276479749146603703098051365651805210796026818699966676757673817610710520896884518000057363742261563928892681388239904296517281420964042348471066735018502137168130299501494014511415892242394603002250650845671522820362592243929314304968569584936230826975027199863342563402915001505542667239643940562777063106313789075126690411909188347718589871912693176368086182182269641535474221637875484605870397045220035412074970792269300877153654274915049844649748323648313934165089809894866603606913049369447459832785824741968570846667681215526451664829834367566588529360414393994434918102466200811505571019676156436169969341322258537434085680232133635794323779938877896964926759288852360635108632093934387573793230419781836840230359471464657668073788871806986702976657101652584537446499362556477417200475984775919109525167960374590525533741838376319745292738417042039727996064372390835178667704561758631422362755958043455488949404317408074542013546473085012375051798211005045552117854050796605251601040266640784712418273450266293981503564785724225046691747296711356725591534671151619278885166732538889004715873764808150665177291279050702901626879222529569151193690907508344773653558086065796706574611350110553238241610322953727451400490925341183094011775393763835384736232394100320192965131970475536492002946865793990324689771709709745085977577478658243749005190476291834491189678332794916150495812239015512116278205260917691699351665888998067672636290512933361642538506577305482516198870097329517804575255017646232898445116742158890712293412894566282774297155298311000074957870204771776947902341581659779776240623010552453609636995065586546897002666159686670295540123619684158686342291989624554241709262018591453590190119386897959285885617489624758437463905291431653472617043863479813379304469115049792707659542783180099266408208682454731039148144630647836052493412908671442348728876410323805465871968866333827361985081059453040562415994599990063090470700678990437937997726307621012615919411228679358136792511974723520865192576133061436973471373232603048870265730377070660930710822344492730495365526378666672179008780917306368803226158518973088634523355143924957297729386401100422951389199462238509483159638160369119251725429841373130592855239653163428706117113688058865545585339002156697878534568170294244477061851798471547177494502018339004134709461791213619809614803419933244817988977984360612859800468800249478347951826203732667667407322485801720286425363258492061287020222194482115508113786690677932411584000604052955660083115292675510691502121938625182100433394869552722946657102741355404283303459333229378262127020798041781798750902141847691774977607623447972875993530456037165025325559229674536587406805522144985624710593489078994643872686079921340792453982257713036030568488651851535614845146058959529972359169935369589582346958607383353622214804087375135564650188066650678477667893312871181896560541881334820300438235114237873076235620373635740281865165406295046558366739574283104108156246435368523679267302185593725711666012892667133194372000453885735156278632608203508210894334549993700211936672282563559062948844171259741163471581266920992687539492118992434230463090281669152874204981771976125116368097673835860582346313762414813988367414570919105263166480907659550870170114758647642978097106100236635441086863169961964607858209350823341416504398722899913833661382356687451979407722894473984751302280615240124778648992429476083960670292149320491442044477967708690128854573775168747411350629692835516457670124017977716226808228782112314304442054288546841013088285899080477239531178328185618977068172326734939932882709686446396000157992147598182059779448508294327970237265372783579607688657889105049339226033992537685092735958301165399235493287572102026949869037751198210632380101948045294405800253437453487208676390199507909186401744175749890767548368874824306156614998618966723403362529339908498413229738027096212398282772180838589009007284777872577776856496541343973478366220906181375087352889823153329402738821699533388797338430273769914319833393002945404468130018909639778603214398499961683456645744634508407821125200385491524018907584542207273486378709481498525458236668765983585096859922004705365433982784076945089551868420497006107717097923807392243871625149560407700193337496324437322168623890784388218940984449076171007165903923623938443605277387006903608437264147269361140944060197056633314769681933310382304486506206716834470610046863648330682391812976186351944779201693830735103314568229750351844953842361205127529951775624185874806002995827383050138743121925574891010434544884979991034244743401607494461842568028629642694189706739094081836597066805200037929307990419702660465827536756852936068136448633072645946539384319326144182838949208377836803158599743127757692731599227160607173336706521076028329914032461349879465065221470230020326642508999945103443617490915670593725615485898777185342765080460807449263862822570637184191749481383773409002407200532039021541174707598700508072627636542323681145559208355510200272200556243150802753843799050752932410667036894840892145686873307412295558902117388522953669312408777583475412593629535946487187888061921710702114679126618595238162932722594526049172233618304646264534983425594985376800232560014647672519286528676126094454649005212444892504856859706217470622408231605374375412807594757001245303567338877278354321091555610260511184408680727735199510223448368879000308340696489849228061440557612291915006025544198802226475741167819729577927775933002656972748560918816635151289008622061747344484831631289351531813080778925416988305551858492107339579461582324834824139337161591963516512659084204651801984639060183674208440722749718826019140245392104642971345836493745889401715445254656032639185211294615883877018921941061808459459772861624457221433051970821840664612204906822792647762461564359465313933259590203578587112699041700822885932786426740520315209130776761436576936396591355792874713285886416330305642912012469266051075496086783331405927407402916957443972862588958871271852875373731035989742905896695056784012447798051545783600385732305945602361760409727955307480036218437282288935790842307013937862509467585046388043531021419006955002712768825884051002282521756140580932314641950924551416120794128575846519038431682279284121860445151874483373554319641488803093991415710229204539807899939263423087068911032452428654482154622704452888587331574183827232866039667173156727791106923134373349264781441194615975257284988238334803962471901187877273632813163865903625569048595627502633776979293141272731059691832833409202882566751156362776018376705596840838878942587581821866640230685239325171074178400331778824006132305598348538692974899258773402275778273915685503203038343808698904372249382055879459248902439308841861459222275667584686812471709894664600907527292323625984222595550887656655197439961579894344337498577266729625680397117631395327629677515461426390998733367679947228057151018868842168778219800632267182512048020924585026287558250449906249715422883516981691499501997287787005687450176617719611675717399190277853047613191647693002553615143121106943901657246822466454535226722785235753006455410260436236002709128779301283904212350130651878028649018489267464655978673312902018657692524234927935078017475314604897530622327093944070372940414741480570608934390117098363355989049482403320554691293486090368779715541523721957503298741329228056109028545686546198178055462557849184456927714563789821186182180747760215697816933308125683841278149123258309130026089342516375587371068497626534134861692817662180423534695743485741209520458004331573210786940491542688242417378989953574414975278042250156524476967677907355851530665515011977577407248784367467314832493905872241852148776558334393991012500269333305989764153177060274948207886676545284331686138952570172189910778592445774483703510830921909471586190853880161937480270095507331008115300633144268359538361854753543945783865095666119801812149291517533641112094746561155660760118124687462381265361718345791868832578198129602139445576800695600901932664316162621899090714160880359272704780249393749397568430711696507983977752636596368663298618992959351600210644028260856055605397732034693582955099483231725987650104232830094413743608936252642210606773983204812487944172756740220427187474229296960279104533655841771989615013255332354243119101242966632213220511278658659989047035525573133129167207439588285153975665302402448659747949479031724044576770654629464884142916376695014751198181709243968547425781413718132618359955672476048476386686962944666537657271068228550974030929586098306509829271096693142448000595345886178716553748384026206686925632096487385644328686714488388538989884761065062903555883834053670774469031026121949577270068819397074494841487124402770046239998623812751383359653125391100883420358208570335511337322228353736240990551798395537256173689622708119242534619889406026661388259262617814358921164220895108869640135549422324904820664188705562675697088848195120808699614701457314311660623711999633535689893906041496030195769139814048870073649982175158002237616166852300584238994739605162578997249478444625774202994351846910608331250635072871334536999871509845015213283882589343268674481120182676245089569135979492275545991191214837942386448598038083796673435025501189156617911036092912763670570128636800753378829051941795409214226436356773534773697597533247733742092011877184541702546609374450915301419670372477971320587195086195440635803793775312938238772738235899461367846387681265654623929925281013571950018456064768184696146067391220330135725543328960193256339043535966364362325940552186491975125557151937231181141656399502894688380923069200385438370424256803891594202911629279155252583974361391782837398658706697577275501406060112217985751711362183896721099953850165478479075859031887195517904110259742204127491262033158829601891803878669766243610357892659574208203639050020135043692138838164786535779569780250931180177305499556044235802599853034623493544449409030270022691952942872214974264599721708669685826594116154463533494855726019661486985570522900898956935413006553691154289752348843290626667905675302100449054091941582554372553195960888189350115892918918666271104781751860860783605861014899274802542891692738521681625976799054150560043164021451153914457691566554062913919182060468488678050934221463813021208725943383521887401562630878243222831685802797746916276898417689403048637671152482782318963130036029205623508881626108456908385856418331052690281183511755649977287917254022233692244953798813479133351529636586762573764108706936150806190206010277963663830103398476679389490818795977812495954311655574984036573077266946001141709698058074440941554763448390610636950987790850330923304545131458353837339275416293852671544271979367355916589264723466640689037812897588273821339041867102665273403578093434958941510047378147377280930927585175211844530666307566632631695468111533585030291464256631484699717920255238313232279769503546619987992458720669939394768528287906539602648928078256039431237807460953752043989279551725214382223527944323685445741092025050051365663650926442247588015104393962697799674934259273726337166743407661788635947843994697660071767051165482346555204837788904116819099844371155476872263176373636788134748252337580644046522778250438061599369650110848819534302091256889513946843253708986393601356266014477227927956683226751188317340730683376470070927491956673794527912402436561597184982969167274322615958361266458898713228586444933198775046065112496781396865813102360768496535610410586687804455142125146783870993908227748381264899556735239016856202479772379548754371893289538509348852703688102447961094951364448586019821224960826737852936077819090418880849355638571329844199530269131783066563692237013502701837489233877926148700947271713760629362724339382687715375814765442997435814238857732846831768186338299818145620256672069178419209646282824057904861764031683217444334214553628360992193496676098363884463496312682213783411115770880472963330819902249206156206422492283085729239379693845090935767030079320823733857697370635194366494517826764237959729918061790005238660821962666875980846060775654824493362951750051660018834885818348112743479415674132678728141299871319126863479285933597082667945107809599963212969169103805195325277790960777333064876450866915196725514975202120669815645014415854113056793742162965564825982981076643360221114695446727355141556638777016163138017859619949038711141752513624226673696679462673228941405233903966119038516500542815756470807773282184665736533398078900379936156100426577540990233167893895121638802108167376291193472058698367997588536072578079617062501198814238762857182159357443705842646606196015184951058686570780389272101236699084828325089874469955532768370130202355752715074562058264127049821988087923871915120298714219543676806454231453633338084733523008767795272884738500451244192949378023452019498428943563555879430596410982539867827277029830238169141259834209457864091494256821859985151821916831739975811505886144252672987905608739930293963512781187677244266320741083459824170061264195211110148423169653386020785662218840595909557751486751573092638723372513456756006370986088112216385698209347812089802799578932388490370857095099324455870281974730693615545714162251908252450971167136739663350388503019234511013213636538464371844375262053373939440941922712171106055559498929435370603572615168582676015815480062876057039147751584351217622975548744165371059234599491060666236616216743321740747983195178458661400936102975562303152823641697561652634218558909075670446097106955591293484105071458008367006308739291526466379035459917880997794358760985574720176848630365825643897232289166251750176894093697573951246008841731353967634303802083739934461621135365782968417743865875528036936656908946169789320812635886519354777491051862656041157201611911241280922726189966291999606182473272867203420866092849727227546408681359210527112152222320630800215894745369628316235465388632134539683497035729970186705173410763521059889977086268925572808866066940205185780992059233227063877594736703587127664961175551046163877421096075560468638268486994903759560483239049554915152722390875009603270173747687236004777260450403598548150052631394141630569261190398762205812521102214876132752700308804234718745395960611807074604092956541882369989799770263225209856556585872598364368560653483332841318847500003679071553362387323884672355054176315039594287808034848487969592196132275339795707914502756231543912581796395174196430017747775835538451334334635729779659496636843366586263989827368752229353378579119256158290724215432004118716370003339598070252753103964705694347251344695767844127642551270493411750042438767358006596538835759154099989372133466351470504174513907297631696727945951135303298999171379131187671726480436144658537166479886455723852242048677343271083070893713464327376486445796243249844745594339915739451252551473040976025298737809964854973174209009378346911781849052854982186939637084769430317939454154633670830610318028626087462073317341279193634207384667194028821666286040897936460380842361061493763986275659544655576589547933362607631906416311701242986089227528306193306661317209270135437477386709477928476199060266323440661518190386774739489860181956369718522004500940194494342087899373645211397566202945362894391862055749430105514655965459659659231690825562245303319039828398607201261577524928817423121390623603527627282232466011554245663722176217225952500038910238135033899802219519259534715611024929361703085098121569618606548614581470907518054762726273201479241258277487206290566180746302790478712622373053625321199762888953249376470238737015031554795392990270096266771998503196881300534851749820613195175534820411737264477562113099420168600539230064746639293750109861336289704852285069143800116996239788851584373269700859323591250255156823141375501320736376866724387437093174111487973026941001284667757288903863195675960506719499263126176294610869904799120552674490069437787968632854239040923864775424323962152668481663212778672170898240264487459369933955663251093963753708173669836330339486662028661755535190184475174158737924261300591546570417939762191027650102474185101630240612488113321293862816736666839144546564127557734711844015578651135633961673469291832647499184778673033695420303594816539294593757207776606975757281032078672745498107627613127512343668688975927440906826604277352193625627237813963852870626414718326081242500114657397858620931777845402583937290716856998108128896386584090225898961174486293421036846577974783192664452654538927286147187781929812907824184997050262091992514236844125171825306912339996276056149301671099437171939634800984180853390053585113146047032474906993676676965941823841140627494064199078350102262161940954803380112935136976735126943274117497471873357035280511821348322767155159713991507853366649694455065130952760062674430978426323486235215422623418631726224063002598794443771082799678250225173769017837154141011321904161076384855450164063343038386586356503376859184130527540012629924318128126409709402724926349889907509957515479754841336745195566840092772803552698902732532073589536477151718074660320154426263063246708358129262460665697063193739652125435164077911402338323540149152710374741546581751944320763100811682829326001175005823119394864130493145305332212516250593852214239663282178629723501929952351138254677739394734386906788141254181796982969696346136559722428178859265498138513368738866218593480921682431397346671703796831554288962565374377483401534843082696405422839023277315444054285277516182399634740208760331955442513073665480970557888571094563360432242514921707819193974953787813166258663000381705136726518821310214911558615040707986907454682873358187206023861608987427184680517490530501007293253454625997915277523066588292148149582098020233937758191500479656228527852494847394262579506474174606466850612113269732100838433250646387437013601900698795822083611744618109940451289567841234284282777243998800073663637330934814782036545840901810393518372263999720235864638222770362342421592574670564875399109562916951843188197372800283377308808741673533817356293289434641773851868513260607084816839951341030128488462067225007388905894515482992928076799404432009957570126930032413196704947663474625099125508029180620436111047226300733154281797892333897521438294066882912002587373058001781568348972099076154942020580658551099511624810793181084311032170257222431595741851738558552047190699587502193826338126710917311141692820609459156874124268111289527206934332264097951582095176943375218925921756442278733501464070596023547280061611421438338009853790436030185864869176623573517877761879710690102953620067902818082911913230338681521905815817517651599421326007842415281418438499877707981875665738262064056129569101260450517805305262371530631960122451228069089480636765229122277334522120542066171951727969164987571672436159516658045448206343465260281853403191491125888990966947769480974856451754885624221063791152654450894302517921286737672000964641283644992015134209863289975953479110050935980622254492536838549506940104831201201198374284341917054281919926860545266585965112657897539194805787705470278809447161125703166150447476095374975753035360625910740206678171922899231524712927574928755341729072425218167165998821773321587894369267417117681544236423856378208701718472418672835814560132110188062485513422159989667748104153948870618469253531598103261773098784292731851670906637380923071533946485252399069000020511481507258011404618680696690543626987151119551713838548766031674823594979765034523084457860275904497583551430670582871713065390039415604050740739364328264723159334715282753704652322036302444383560068653496842567387665707129005838310303403738535577688771055959775474464974517347002994615796904183978386762436970447488081751883070170821785174551916140866291784310400752154296620517143436934811565882349972164057683137824191138419727039185992815331723614922416626079256533555260099224100506282305664142979787138770800234440978568700619207474465905077629335919626328928208697377887017803646966250568574370302767120664642706641085347226928538345331129104272724057499455846053954601192335075099924826559058961906544976410313111076245038783784820048891501413990191433789960786553656882392011989057819384041014190732302961155960643959835641517283498959691702979312560214781768027945702157201451021170929541163741730596722055568950777811762067420237425333639105199197349329377186829687539555183039713195837212572833168629176443177347581632001878969205273019651478997266654814873282652998659576987115445757520526170174857239914042613614323257401354840250279766553779328314175815308308967267748700512286390467325524129708078048251868784020838701417840963170785903456254324296326911312301552219454352220597174749125252555254401901110406131976573330459793337036292587329581687273347892631616036077671266042324912833513959683895744944163596673397139287604401804462772635688501508134835930387062075673858740618338419125155011567517520410521395826901510393830614264207994491729101343542899393286699837764372348155512511822202815249692665359935027505357256129291400979925613958333845219599863642425962304101662438248980204905913672129596507417006052211016642364213905943038472191965825216239318794774566661827133674454032274941167811130239724710205410193145185214546715100851164546653185082184898952908529064187590601587883210136263513038820893485519702613907060355974962104192942130102968196772390799555234169079444419359929649168531236206656439738486164022345570214642654518314374139770851350869019382548347616655550953024874267267506680763785375652716891738953961112245525251637181452040098746547478599722497535753308436542178890477260656931930592422698718146715854552542530509568196623465581384525367090694719346839290254734905839197471957326423450347567808396434992763436709776992431294592613903414734651821237275736670011237743733824950990423784333128778992989743210812976814470952518188034463653796203407832059812238219295087762056519598140093313063799864771242499459329873311479395701443670267143576093887517838952529327088946966146530533096100586404571336711731186837764395210079654731944696816536796767460500504825256038517981745389104289679460974988255261463307300188941029817941781304249530604360359118360479481895550302014734921618946874585971527792488137901279947864556408104916884689617866315734380299685538162240266107239720003836324381826448163849176397878647640360644184454113509473643150620741147015908610491522284276598338146347944654321862750094423903999373628915228250601536705547739214917809105080596495702568078609046830637348098357689365357756364545824461733527951383471803050023042807080025309632789444514547967086543411356626500108025747752679749663064511210664427315778641105262158753986848817829017684494228053418667593759321981616228228210705287366546975765216232639459994516943965068081376566299234398725312329265609175573019484660022026408680248779162572375519488030852023435940759344143450031393564281076142890441210440520057979215200054405975784700237129490688972969188856892361515038838839550736991114339194812425348468698152288682412103933441190115949727389299752385546463929514937542049950846564128989791787765643981212749302933664853009350561584333346563229930133284039649965623821576672781230595564829972523276630214988334010283329595132074146984732789109958875590556705771088297034222219365202814947881695369832842873824481905932843116568390022257820271311503882507128346458626408508509075487935455268498818784475679852389717480464864558493767107729633190260069304117803470972298070412679701679351513381038316006887550534162079039832010620111175091246876839243541972639040619106514413846794654161094112793044886634928516575349466370327885988590518356891176068399456938276545850568277021296925302247222935547526467070133510800678352224548712016125855122429260714077875690184237792261989128632259738460300688134679622180482298339917077577526750120534568635562877729998193830214385317935007035513493126021955153319065457366589603161383718966185596875929882995949130399245892132862643087270544694739105770480384918608001333093280546804671288746534093431158711929788057908612993511318879881345450568653757526385654129900384671984616336240768610785466394651654241328387124965508167259295663201737686766423467020811729220177828996116193068966229286138251725154252166829165707209852635579644450619290405552182299842538650398822339382836576171278377759398525109580043486919897079142659802531313308741544912451602253826368581756227771132662957817631954133610507086888159859061379446073390733840166962252955997750325876886327968878111128546119670599668955359671167453593134260145395048557330879172167146956245994626021593222100443387205647671589324603026074591250839403769862616861263270928906261517865112796286040519326590574520188768328458119210091057027258007601158356120025693927913881135110806451706745459542051655619345008297961740532025186380353618443780881266932524657033927975124321204134082087969818129933666558565354513554954157505080658256377979810693322255363911579108268510829189302526025386911174906839745455533852797985123572214690833095143748054890552692662908346815169380769407894644405470607880044065603554401984710702858998231454922528460894710398894529934284319550476322452475295149917813659363531365401297778910160716594585649077554295603054600751022482755917909224352233600619042359951944520245499773007592584664738033986999573635929151645543851540767282125262813213681188785509885039368644475090027090047239446971731723146181431193811316966422516433060642696133103384284349343874298071661354686142272886933077006022424393661189310067514650493126720091666532788399465310152431224326892377117421723480608745080291746793681635566956235969959361626199653085021786960995734076645864042553085389194219317820322469506884829670872304961247147087381809266805301271019627492624660994892864682905196788432237607778892582306332556759071473763513939846505707350531451755712628226254978381258179691312656161932522922287754702643648315965002096378007979988232401822437095829639415502709120776791664397325273472797334327496778966700444591492968623172822875021274151128954705375079686097574748306208808119856213064510248390426791642470818733904312545791870838001209793335982876269845441735496017101531699439832953837891432766542530443953616731211117176920008449789473978371676437580588653841942301640223680958434151406920383976480047110572818309002936351776531753927964738140830469690367309619554430107746272164530745779425108103283391172058729606479274719393061555030793860560286910778370327458492070046839353095804407129361596119840938530900204374643871806684731863399214910060380608414501828504835926235710177940171165191233453754057474467992624337953497495436396009058226144204375854994582795385859721172611720146496732816836121053216408393100028656193013636776618158323498429702788034531528841182157785595370432355329456061115252690868750051831029383607085797937879933814314808352926411458832420428828456048199917239331037483921220051842721589611567496211378655655251779010727406599937842409466119192903505803709751958104431997261843148739620835884536338492323625285818854785049053845337887328019319538844076972297322377645112714401237879001010727217514871510574138979260668378565702491664851957954668556135021838662509452617008300866555307343160509019639269204152771495722573408088519224451569719816962107864691849502523869040095401960794216920468542952991463524481833084448466484161636886130249336586611776365201390419739418248836253333842965761866306087237650543581745418861462696033219964543544942167812940595363184074936138327434112160785879531921916964925776729597712173316828734787236282981260626480748388308228580141650890893156093551431494384712539920705968208494984088141912321515204102177395410912893068200241717244971607853521732313847945592020078812733451435097648525690476597184466425314243098958049635248467577409588317729865806557912424583457060855321689623400716999990235417693164150326484062573861456687708303834537921147524363328935320138315422715241652796490426687168929516731987070322166500983952146574241763426464393798375188601689080255252824070208689203483956532533860025536981410838284665043807536315415825733292643236488337455982773096813109213136107810818237045404223054590570785000792578577104182503986186475667049139946506925054089294041998904897818420043693055080436921965535118568987776944323205000451013024585230176483581873695278346657963294986719814927588263302874544141012839112359615926231002480057250311152737726925272506420709778927188676439699467477456302011254445044218746881343007232624406899357533267160121361887779391451851534273882628201189810040377130905333310014533352327029818777126667403218625303467549945495495861058009851928731371015183155464055532038645789688628625455086233649082726133032466340586459891769613473011640912190095131374882670218982639838328630516060056597358607565137189200863192144472704206099861549936009215740654602169992370330949168807643306299566140524303836436390300574342433122185388690222752481772073722804589619839055503846412984552269199168594048535623304175862535301977324886485051526984248476947504113577985973056494833071866118418687191301290570690996432969401279901651661344583294214201555716630092858776079469054255275460894207173301723401788150863322892662328377735317663308758098680415227647836875481191582577642918778635274075064735318520675828895160893737343377092606012994402354484996015712165222035600276168385921073849475960795582702899813825630132990844383217495920822744120317429878253397573061876535753057929566473633140171003577996803153423050292622056639392379091208340425786438103550367457080994006090998205117082562564786223799654092079958843271541805420667860341346878096164582616182255395200444550578951772452595909429365602416038257663138746896225331907013189690589020912841909337043669728225733133156571725615677779022682525799645145919879790828601537956502893923680403791409509811266168193838560947858361966148772303628884329568637787007674010446209565776801955409520785009249583360013122850542337995217379655627955778382158195326691520803335409189976164837501867054849309990854189608392692319659811347099223643771814984199189658217580713116550772871419316728453894552874979052374442403753293877673029736149165762951577040915451885915202350327091578052824349972306336094128937790991934751746525561818179808551300090470324307651372598873580429461385354819893603242776321059231061409504320623173282823812741861032152987495310902942481307849008733733343264721741202575081155403594170747990979163728277958523362397561257533844742961816037147345154602822072922122891090532272390621708806745358091948916245427780603899933597205813856531358344521371226123277885571552601502944612265704961297324692081615976793953310555534039932177143398725545851356563423072670679947116547311247597449247865558572889951459078047963882126575741299551559866952820913823331310994252752058641199061013256120861392469237521626496112278174799242154636524495840744482481076737683433680086199668047472313163028228085268470054247148571956873766291128951532062435620557598750340185794055414575500208469430443729306847306349116036779571495387783694028905053957842450572731940383807528446051961164235272957908431260483223939511935829317206494623582440281906226649093190528046968321733636896297429268374394259226335480061032753090393320016916874043957318042592393722735192538412545923842983164776680241343762943255755764922906031815012342166545412347871201205876034211403115062533647846269307472941515000307036011076442948553757610621455673957653096227280373894951970459004379586249907443624898023352858401278609999044858190944642687591718854329784708355207183801183069075158273756395872166122828451041686072861029490497532575414466386621444160326897159703639528887621772494917996933613024350520918599134383512303116094457912926684668208514049071553477979045411778827840704558817391878458831430095220785758901519761886355016236971351678223308374171090925301406529362050986955740555698221881481540674349801873303584409264013539748638994002437348529971697589637715034563302038133970983616273482653053437087216058296238863853273240263923684057119637921447694681274556147358718941538707969339107113756878675268933040401739230681443082378929167898240526566964936820960878975413934811331508236505431080861648340683876477794132531074281699598190534415292165860552762264233544128606112755053352298701988567840229646909729905510532718016487207153765454257588201881927173757095483399216054530973127774413409919910470028590450656184447809071322076266111535039250371352153125041426829067386867697316847476475736681399126140892680547321466046537305218726206333848627284515338999057199663323245289106943585657729295632667051853620927334224259543132456783291980934369393454475194155151657235758109952371558842917480891368573056025260380718666707974462052016847146539760799849165780082417015824176612464738963355044102075055661806310730290987471522276234176935578429839364012030857012737191266357482261457501721766053354145771762870044410850956592073776722939335189343097280883016608946786650952336385596608235560680234425364032428438883080773605980660595799468757733051214427460467134221342508644175348724893774451970068588592812382316585455873552011444475430737479317371032326199204012016992345978275976350530367783857468782010782113995032445776900121410797919151870451152458221562254115083558199441241313457307194525737020240244227388877030162577220009993750563876840594810316717604233779693606313613121130344807313883840603476999507041131108259640239825351411145481912605530082682676354885925011801809983929111192684542947936896466865492620365060071101824477863280642396656854139912727973845931487251509539544745304760933184213331878963597355323243726660238225459324233697394649891487571535712230347278222303156970931367691944071922391539675436132304383041661105361664361096522105562371471974279944886020536147578909307095251000584957508346270611561673701776754731698875023679194567117859775856535993780010029224464376784588917316123077593983507386620930152152568666813725773042277805582818174812352628183110866906200242847822708814906453526886268540158915796224663120072465564914684730824936739396447744638788569662481408907887928466974926450687630767985244237267576792214963193723367322348591179658188777961521731241879053963546767548353240596718923673638924285237138644455158599149908893138759413218035187894785001352321590711277932474356673069256190046314022251132976270715178790390942888457844764811869215307856328608174668075828470761658178876498529347113427851145161250910358156728550461245738234911495852378161609599031833558875878436525102471109420638439146086957305337477808677362554063534528313012383494215248686386158009653311613390072404658247485600376707616854516129558517497662543373962660114099702195728329030746344577605784784957625346401689716741833810263728218056989022305281693788504434559267955028098466269236916436031640532817530119659646765889596593623309970121358898230439780008240503378012926982201421518404399181070666228677502573960136881888611196915741954192626124674914790008261711761333817786706619410466022514769743082448234874806584200303666009052046692371504179047975944267150656364141234965343761207357206508398530450806144925451540670754638095956318601516371687909938138292823023525825162209091637800615183468332431791657832514564237433751453590098035095845231712863679981795757433393819843964464466567795381956992717485492680951649639247111379600058258368919859639521111022220128649322857110097961368652641286189530616201794318791490261943161455546535301659728467192056122736455766411078437221284473709863873231146716516857548288170295593572040467256018320063350512637917669305293555659680651735448827520493588456627159380302348170738857419517599738831187247732616967940994140579786555916525763252501920719038466310040080079629695474030348192061280215814888771371206496803474645050685678618313154298664728319624642108703876346691309618366131306213508338977576908092464872056916016548589309830633747593267764958820714435569269164463645545115079493212802426556189793996547154774822620384176666855028376153150396913804269305073593222643975939679468088597356888175482402790999685910669262767417306713145295542440442189202888788474870606293838026323266554615385760183116706667557438802004362283397448147690637703840196297393801646170878243161500462116314668220849983950808584327710978218338685559405059665494133662480290783569911706621845020621178435354337178208044881269156593533510176311775676104769209191345593740397180282106289640635174487374475603798453847973478395491642604684123084152219709442375887801258667642498185876350388268337262093246582230406619390493605667545012464180442200551336199188736164710611258121051897163817636082999668687319053619852397849785072076475371792559836889016185002843392753009565740451705930573062553157802432859872772565902334670857159923587528739813087186932044992229375408721135648711265663732467908954509094267195080777621701564990237433963272821615460774053254408912575324491320702522346541882134473340757606183814193554313379684083863146050549342841787379796233773379607883954095656655056808723662602323320336227016859448057464318627258544793394057863059704060234418524565631566418815198549536963471206398437320995638059802069598149967061448654069277285481477476127376503815674437411487512308954639966412572926894465716689463336833294205254143898531792185051757107946051672712129415213943258880859961376846462419251521420952673175882091273029239939023468937806023391838852008226331899950755913120274420449602061280429515141232341195986913771485322816300690279342042900055706772689221255819182601980190349061029019943521503763637333000038067961147879120787078633318743210650312229688055008824262984312628134658332059297723899406170687265356617741724846328798454572811108120430284177356683085423882143227155595297497631458711317715993588278234865408422286340044041090667576444760245300548295597405004171124140603753766663583628255465634249728796230443052117104888643298356513561609805881028318248130134687693135900283416118304484921060172155421645879294279173177077745125818273536113625895355859288204067666470404455342246706103641410890499107422382984866091965569700153835279277709609608271651365240855240616716627211212664323992075757536367119150870278800532524685598672789769615628837110124630979617394077754162756205442245079037448288512913618901986890693894424081935385251384446059804258650194962482693806480362457009479666922382787002732148068120770432959640666210766073975059355689111164243417932451201819897147398515750895443649878675497827842205246886800234883258159426067725005229296742535237511274376631489080103243281183721250627421835467246943762330953579105129365996981073972128631892009008036602749832144323974994640446991110873594692129294331986572548020597608333600788950124718559535526451833844462803697022771271956376472777807012651420356624962631727749457146662616319911378524193396392420021492753274236468737032015830387188033806995028348779521840188980293329656431810939204761052115236571983445520278882910999013207459799890370825894411931274319778189147016693844129037589150545903858345335139929567453344207724199045479719523146841832968081094498285743723309069232549947689802441967502677734187110221522678648213781050548171840899007747683085489079831869660693895933878956620818982550714187889313504220514205069731840047930937744038354751545625792052980387120083031949450957667621623664073094952796375618922890497001948155666195702053470355502671751546778645313575562763706255096521240742652333381686110421674503641112260599941797352461645551802196148469061647613577596624886254656683599299576529877551398964133796433247757353237729525844184549772173008603001676546264555364247125078975715451351333736966594232352303572546522884424221428455615741526018145569925419180097451615431384005561223009977337744521327099383415409699406996458714903968118016244268894893431247614735732456585582291991104561086102991160697921910165191582399345702741686499033480591858543582805679994548580804386609244814430545320767919845949568532219071513000981646043831254981728391681509027461410530523747756710215920708282016615770956257225607561181185988761648624566402325037585888870173055707598369058421744219116589617129200909433256705837807433875870133693077559691247464846410885751214088899582760233733010829028692166867607400246694282885191183725785832998304092317267870097658531064196901798736140505545051778170547996572551108515960739341126060577940531438939335516393757929069345631947866797993740866315735493387141076530165529920393597950605161340262303628770011868758622334641459171453739451367076305355716705057487333454047806049995784422814187064464006142436084005265332902266047175280625057212492592851900709455734430055430800971613258216544123063551603580976039006710582903783651282951433689983465542529946655746362805742028794858560331795697615747129165557434377162263237223065172683338449387111443241510596203039434286684493651928970662236752287637338096687203882892118963554214216093067062460464784141332344345055972994195386697085279576575004552939415276112491275335801349206850089964663666532342731010842634998992641083589116601732087039339654035273458542088464935757892960049803614724826755266166836035132424418191122412473190947972115504579108370657128411368863474779123171318017680182008497303232657229174074216750488046751579540282585837462920841739205406427273806355013681466909647248609767458488477427108231699249042295517419275731438351116828785841071824925700473388240310663000855220093727735687775204302620102631072897887356739135830792544100643492619671815440994383797625179098983709446469793024527203840476336661752819204429169974181075334630775768482856504098211189553797550786597274741091037825533220679595037051231861706719495126022491633582282414510944383789805815473616256658735591482422156856576064207851928633823730815689967890086902167910476783588532239163102854017324939874095988088628802737734453059727839560811615050032471325261984410123061879547634596105946907560785819846982168336195779017319490656406927062041723221700385091102689244390954758435143583847882394220263714293627303798495895031761907428623959602126940396598215084270939435906376783283197521409724174398247098374085429036373605488234702080256527473578423402599688284285826191502349916584963710309543062389936827456774667423493533449448416105849484603979013689397138333161305320258901052347433193144141894812057915320225082157234105491234290302964760805761411142711167392695858947150782608736594028464089600508789652035277628671626982217488265874423279303589546558620737620490596155454198781243786864072927425835767153475831040534843215061787788030443066240834647859490353410072986400479181373613354738079400889363238182071777930558839729688337454018941103026437007031416520472697042697614794889320268614330454399099192749390633505212208085572009645098849067168374939554598619136425039787274183029839231318839985014195533701416965255942890077454957180894379004106243523297687639902563137851725512906783117357015898120611219575908670624439531376054724596560606209591186499967768671972086909203767568827115193790003577441090888652700515400877257707062608858192520576512954164276320254781743202801005556042127353996025495813781819555506893297325730088890686564065855903067469596846898407473871207471895636623254104498501736009714865367129015077789522036621671234600450493678709712443716524307863626853203589536144346226581177477986946298951848097674103902204925581230037537788129340104412063005358611851613233555507428295941864716378294536944353631028223956950609360281131187516780463943311732972361013735586577094979380472965279505120544635293522071666606866781610576211271715980587823567156438558030893211275268599999810298146009229951966028719094772537103192515677786339636074436917695708454218030904944685258950250290574725876925373360735953471272790238563587017302435475596525072902497528710068954392038779695492127516050059744739705432026117092553472764957044565741456625100055299433227157502231731435424462470009895658059201216475933830901189475160432549580068618294521911401727095934547209925086411465692247120089505736722598322657131082651142152277361906130588794899336714648939708066323167711275813693682267177386238894339143995924962321866298428722782898179899879153259986432738402191060121584477916729019399396632641401542272576766482678027499131630817590297109696881226260309751978033688815499051453758351385284607464801160055914692363696005428318917622583871753149626007950475411244334565155498292598140664711512000540325880321305149048693105297450413669072362216124550065726464238100591693735190170208298098552095994355874590551827857001173764139298124069548438660010094566745354043221659395076083895396244283074335697501523140922867178787365468199647157257475180030815141128749622205380575550898439642877784534172036814308374661494926190864003527967676647162041655412289934653725922869679233304033794835219413626251666964811534586955862304776959078282377880872936413647261839267936632100497441222516584985625335966880366341442150632620696504139940489769096207187313587209535852832826195925610272489553076092061543639978323461184631142813421599889420226517137854662303551973469723727244250210715216356777264970004729151875198055143938715746779600271712442672145410851544766686869378706684954489903765068441920425337044708715379876495452891857240334536343861847473634077526395765659866975163489543580131591884107278433300619440868729559401321684879255729330480312641410234878548900750170437247501792771752626517462939753047566290671240725677242571820270491706628502419965046555800613466374367820523470130249902712248139257633302519244930546532092425526176987159673301237640626955682326534743298654257662931167486575788157020690461153228705333703928956702744021960958175469483281297297519693927150699465448377958406884703022266317883807507184402627092736537444340431935841838202505894194079138767249804487879380182258603047360524050998505432194228221213266659331522597864883020184704570430131341248095077988154832354945332476164146759709456072938061943045289077897538017767907254601232756828713672439212768837377593060972135681642342650070651985780383520825583289097034382828489878947256380607375119049348480288346030405975143194394326734131825034624938229878153155250516589264375002070681024631185200555084495995389394891698232052567248956777466928599384022864063563171947306089989155612593357307591443019310725482522992705612256750712874323228825949747342198272908345971253210904363982707063649950760671855193919906380739986733697644868788212635854461303152467305341394523149041644745457959755500573118934217905194964925885714542847833240747911508025606338357509461629060176827522034900510608703450072690451265386916073841466356610004710092825988577975486109071426616164408200772778809419603880613367256619986863835174889585516556262179444345390210976764705505116073791556602582549007636046553567766923740852985622916792196382917327213129868495113624792250575479959699516238410483017959673614485004561560110242665501705191115087672198120797112242768128623970613490837610139990962214278083345598262055526032186771565902991079652134655316012081166297352057940108506359088815806281017382586876349891624275383327792627729658899167415797579827687401189180851317804209509272869706191431647059732337795706853232950699340339870509748866623176765188561323921619011702482937276679414688819021042427209544491372372211401750456256626587682583356834536854815931114728898943347337010083440158545716469084156486916276907812024280041032539121013946984628780773386064299225761950537887788215735915957071087838942289085627182872379407694600510946308503417696170293994869167135463131575583484664198780587745973484924193020994683430185778583485233979127773889591121248228948312993534010407711210993424939580611014424538068408380185902439062989532493826411496192634446611000028640485543741656823131459796175250440686800071797617156972126350353572550233137971168458189695133549558852949216604268615373917295746617423137574173827445094414444918298137294640423295140371351053714100042024767980467913776185143283833898103291936194017094091646529193658434012058678292080397429357765514315646986823902296727376365458600010253466398746584617385320347268312632132665828450062886254476969230596590126980122001065707280481651298111233923306346951096227863814306425598750738101526401899794488471240076054998752124134517205463824365290775700817590001212737489444640489279657855626559736276608938625867395153383407767398699899960914509809561644266906098092442055486090349093827306168764704769181422544819916212961777048557124864192594024267849669649056430844906405643512079166929884322766183514428143422954808881225294874962041805366047887866567244032021148353019594227818618343645779819902943295651400584340060593104609701231746153638566516629888630132932436905600166030743939214963561870330790928189664681903983542280439251797558270326329845378739940236470117546361092009069052047288000985517947938336515888496434468113715597906810633345061392592338095069303782330536767576053158943135729613450582598684608077067593642298737667832334894577619645851242609923901785303636061585833545991146333898117741535937930352681807163476656822967089679298108924858486425415214437362699979343954830105523654064377382094875399413062517712745649570130672269262770777577559130597047641338852564954357067474656738441921268173775882033401814792505162812166275982528276787169457603213623908632769500566208183202224088051517826535395824806926121526388723344161169886654095065241180923805452145246111060094637163463294706180692845780152636700638909624068625782454275764300092131605325817281556824757188100912103989973292765043847717804023909536469030568640582536637079517404535009758915602192085989221350535456157155994654774257106039542503906632268826771838259025308819416403666195435616244357260862956348230282076556295342134280008726635250999270751290959794316125054559844953038295365791250134742928822966762323391117945670955878397737233438421335224862429379195755574103561668305809067301118512766530490824732721162907594960125693026918233068947656413474077048123548875633203958203412358106975553756050313423430146643994871480569043255258975279336086718075746628006151062468522479905683956901124822376822029580130670430594724516116324634945587130638559308227947538067575328211100561284041831870520235924391534806900745227939388284415528015542989218072091747809185730221750717907302417937601506568080862016947642539751589777561428992856799152852108603484644852123377069736638795103752391213276637696568897303666919117695524809202600080180573257329750291514713794961501695864806812791383892100439041436663027995015953470259054586614896349410045922138963646980391139027829693610906239716822227895177584465080580883994007960671353356747934375873144737451691417737858587346871889030479278164536607800676928191490345036805982532020059191608662334575502195459698746011908867273362482546050036084101828761500748770185107911525157600558394133619214518103423232951136709642694407794985052085828283602375104460239737682365273454661221752428760623719771233439233286975193906560518993638232047613214838627424302160164835009801545302229938576060398870980171271385888459128779809207305110091351176139481895659784653302930261732816986616803750090862516321840986826053109206568559707408620190459603721358141255320823285848467266869585835329660020767808560922404890835157585699994844866442413271448633150765800306195926964778908499479661150876262476406118927286009636088428269752664113772540309807838539813057184653573418861048596816489076453789956092511566437012518296620932069166743753371742774162014322239417185451659839767261359839030655188471581300612866742653148085392768639814701204675005908931107377609393332829124931374909520920349364293988185315457228234316347252588428764910695769271571285692789657875904157889868339695773055404819000437322532969688346264752170483798024277313244233479401480550770044184500367206794129680380105810807379603613966977822186099132492612653580240925496364939215811953942576028022706424931030172922442688927526648575749666034719265095766396147292623422284548195892861512096986223073575213394503777154272996690029754217471079950276906566635360488491790650146701585584866968674286366943720954318695356612193757684567986555481699549213611512578334852305915166130472614048907827241922843038912370047155394285615651654539239741055548483223810106548758271922516912856559516337550700194449251516511175524068349101454946135687582035683277717573743132055815659767104875471644469022879604679435725571117470268132135011949954323069813490751681998677981298795056858958762972117012012897634200339904685546742444956192616621469237045565807341664664328558666815241626231340102478872471580038352629897035203395174754235274777397263240406927499635158840840581760691827561105751257672654294312119607819776890976804284791596953433503312790203046043841587986755105579723763121520591071543058094669485114855028627836568489131796446702146615140259602488159518044686443475807042449688093983933716518451011180555654742349295558350566995626259525474271766526597379075607614930457114519476974305012742169379477120535766428647211577602255015913655012474686585038871633790098167395538364634615063038284508108050149247294094665442032456738017735299198106149522365241150520310656086577019264366842084894357769935784036625197382912875844184296264524217684661490746086735911188830938241701101755347632262020554328844066832878442304420036902276352991814838563047734722981161232282332466540793145778103231190592642233849453847973157226920281980419741158358037433339508778122929107854911423443602490280629677323578782434478818072578300733375092642709444130650763368171510514188566038069009091690272929049612857361360511731626060761387047095284978547585109216499843633760325227790482615987972748981261285083390237413837312642707108185548334314249112126409214570874298095437021649309742438965915392381856575294192333527446237273792116113833588010720037007531745685584926967946184942445555569358552220687249973051044140017570656498063927879942124802915921993909787080637264447508452462075079594779719597346809756227201391056267234827339247025901638425067583246054647863673644096335156783118859747095397457858563016493981530324025758867390626501413172858592020821778957729183443705121281364576305019799342824185059404371704611886696788020359247499929013970831581574192485343339244501968232565241012028478033395237259708582769246790742395018920018801286380671318977835413345890459614165275513509390164584068542780232690748983699261396520868044411322853600776231809022753071138647295996945927582417144255504828928193985759403003521338821760366165985387118089838475451336693515305152595006560739327110330820516794331228145299233314649417997628737258384607707135886170603231004946325859320548240175245273167800351885116941130754038266259655428198750883967177626508648761160276011251601687259620522350865477268983279666622917092616980466969460988884170797137496819651729780319858840866725156945742277102532972873079976737539786217885509883262919590671193413541470331514762151526373753325653856772292786108163762035933793039959458583593129671575682206082237759677997740386485946349245234497079275695440283692070266413453016597381797863619904354409090251600759722712192229725891188602928019538633644747828261191615246144478008853629763164952996383056921649382232921143981676609994373766741925987895284071272647454182920162104485864784920697410036591922182682233986853077256098156092033057693508287079209392727987203949496585184045404794056377410884578581467153228805570119277145144836044547721513330793178340794007214013885520862862438631422761578338144053352819096187440539566077358390614856230760808289737856748802353930155417077583226668684355850473841103451336770110741016281331330648477677668783696672489477638669927420714437297402324316965722909143040508261423401660712001491112129855703215117374287783019541577398849451700254471317778299549825596596635112604132995827785489332750758801207536188374004234106108656239859545975767081523747328836289784616732120041453122486358997737379220409131162406393375902646013959669227800121114065484542426062410997439363101842686674236676478412346501010404906545822833607582877703228271739486203445829627719200830205291052559964499696801226170493377419534315703535322104145906903973291112293558595228365362993374335730954282429343785020482125908328144285122660690675958128373254495822253442917253467787645630635044700055055561128816920963238540715640306919216221498228672429626190120882549616686974934572902869107296090752623324306981989699205334613285374221614332134248202217139933577586259050692278628860571442590686642440465425468747941053594267500837218060030547852146041504845789943859544473769426921460663261541053903214127621069038810111810852437427465751057859674821194171044295388256835224259308858927761212498763631776959490849894188844601694531295945902641434061138423637543864448199164245736683664934018329747018781617869136986543831358940527138333259034402041799876976396698054447079682338163136498015734132547531083338181819262289676784891646627415476018791622405068930293481293251603635856260637108322455629539845857120691600051210121407030462208533445837836914390435082033642607445256680139150178052399047234404445633626855242133675874162994449040403951112928882326258412752600710795088720495858925735351024848571182288696030051469130367441775474867668777166054432563223133386738487605276536827092044189276556121596676756823257401354097565682132563248139097736792254103491767560000479021667351053778079313456814859379520010776427400890123524842738752516321612634890393053537313893982839879714037315854549894494910601758979186208173716630087749427959392121039042658748520037616341859675006450572260332309567760420784829282902364630113775513090294956866518851388003175897091818217485674171916618841238967380765089512135439075855237661919143316410651065406711103883330385052151371100162684553503733753005826362367254371739851649344714386648342662537074122933136083145379828069690748707629893994256315826268693999826870179156398391776435516620979778222923796900842383278286315220191926258351904865436984824554730011182630489023028455751172885416001180437920853387372913587247746232879644441145985387997352587676584591688409120630482189594130466507422000090849792257409755253926310720489044500621300249890805354383023218082351260198050405601454849921744960184280784302733620600168257479304353155417704072676147421814554763665857936036864671340896574186064444722943410735789320493152827772166869053479482901954712071380544914656475455393985981910188414507432731849225880943137368550623928680933018625227654541359820291868154297489966364415272126401883772739156640349653635021848399718903032616148591383226298584306132393240156313700777989856635772757291394894297592868486236530962803339071083564873647174751507626047592640911146107826228443662827032255636660909217280826440456642085264645479954842355944633279814885186144469923451078925235049299255059105038464830608740456951388255785893999281277018988008298076024932393179742784269614353935441757745583410201510159829476739743305777824965479414951328158497973680746199092975753634678822940331381518384278711634198090380494386414304702374116542773411964972779176323509160049465842197016016648807789832559983774180316222323623483957608427281271708063564271186043613232687769474985114215165377385266101871754777119542289560204715112199910235265096601422326478372329122975296810670406889018607912202604393087427600281247681353664279544249600244625768009902037605629427007371096379716990853426218222076662576353212532770268551741211755409598242118917689844771696179638482107703131643705573821000117009015157242963900984822259390675346459327526857759604614579363506670640530561550344033855084950451934861163515479789188347594795351005077477405220682490205757697883086439836721232896174825454073344359000133967003577069655899712357393158082977885105224251537938687275797409587532178083119935728311276266067830513160519505954284384688695729444030879628317904840886881965310312543285818548218161558963261109552467277558480918642858377904524383889814305253444485151174212260076076921944331125970856912737136159390854381076902866365460372514899671597355375742042585109914785437927946278805827583203886346404752892135436266568595370719603946448895159231934365998879554823851862735966427437204084737947895480637687621344824126889588163229790559414994799038714195415453859456880384074159007203941460988059764660560892143138696252475991049298305564897133046289656603207173964329197077091181903758482936186555250965612814223122474361717606756144538158436694011045100042414499723918143264270107044645891306253441682417027196922242356233805729466762829398282042670556076677139178399641903898465399031211232614207125505535379411998941220898815645973230127496344556173880244335102092580541016676133926741954721104507628288457119362689773368132792198903469568980415804896499908502638742434196371689834951391292284760589142056517368086299802764996901547860117476005926814748523917397586215024848027661632537088289128962071815407163691297530199297123977904029830564372398728872842475133100636080117232914530075491733327019374885848943493553607929864989836952208218733849208832481360637081802661937929149516120377781625440619345041088092475428148972320943042974552817084615484532530323718054890763475089075726546632583028890730586060057255437918577098854711907389157202009741699661445542292113542049526512029514017343994141560561037564103636092431508959281077258017363329197919121584788411441024571305198837646818699252136126005464542924164524267825276537054360302941080228854654381646518549058954717441726333552707691189560072451645066802482027267963989260026489044306534494278374257155021880111873254645588153823500813320524888992003149313831578068980825088682875489625211418338976296160440159018418734366272479587515986102210913411096963668348113268938675374351259263146037879727206522596688894949224997987199026100662765460277825421934982109147256312389273636225633615665642747361973757922622628984783848033428646975838193488140523699110609725404991292843344428726794836316655662309975723060071053788020303399358454323065305917451004606357578888616137697131815354321891468753079880349557084708136998787261857056781246613582869867870927100478319438268132643396074915306601975160648243507844991033403287612475379261319913769659079508211730607431757626589654734453195292594507377928917976667842037833286233464256872039162670286022613690398741354409370925799867713945085664187821932369388114479588966192959814314236589071320416284646910748728817710879287318731929425579069166982961181412079778973715824383956659137976990691316973114293725375605065481461466929616653404660530004130038629600162289827690565129493872671676488861223023379338238115364719460530285971793908875053747642960833218263628373247339869694390354233802117841029199308212637366476258787772826745724103632503634885041761132303164413608015520313976871835964711330882195494436435015984643462010223285318394997198669002720217022182418940263816557816752281025501224529856109237448772577909660919891380725661267534509662343697409595491027473760336685648209802498527648354501656811446858979191683458595871605937617822229595690831068668579164952493812417255412279114334288543473767568227011602748208731336672126346122116628920998404561478660363248015061481698534493997084789405899420062895136722043607346806571752647166066525620586453448233272709965147633791205808790750317936462930542576267101653636918055710260660799239424930311902948349742115370705868679576033332375930883712865298647627901969463945808570679575640781816167026629003683318098205636453050150861811839527691311847921121572037337577055429223605324873970517318006446749466890971714385998826427301507169021467790059622286020550129131400696294594588097079670109345009460529359769726016286497682126159479643888295346480922421226683292164324305018908061701390445790768080597292463786296533154148859166905922910316435028527213829113717255780829825675525319649433478132998191953274257189908283852557880268839792157717992953250548371506466313684184301290055224939987795952520032861918563604240895575901791065472167815855090302400829337162403993556002932703677961252976848083935720683530034911008593577545968715807693507404489364181325992044263158810372355977001369454050197144275496470070339532336814413626128497962175804100746179364083240205130338282162885259199082572305113152099545128241971897134264383792275961596012183150944333051889767674861905236357492122004210768165815494608617694098581418060063703819597455134343651366383216242877859349095410995030045666187109001949382108802293708862216745243102894647480275203999844389784550630987467819135846303327068771952415385235154061423853452740816419993241843039041498253421481919212093513944564280479266733435885949548856314892135075131047726837355130959330165757569732949704944988561313499447992756677522719855186266793006281534882578399032754401758165318545172996066418199513138572043858363690279158308240370856984659308952957623723207590886876534969873434257390617848092664516889091937877393712868563827683553062443933754197493549071105270871091958544367033453094375424970434552866328387346712245112225701585695256170122023374329314953880561863314445298681996526440833118464510488634401061145267348783698524480590764399929034555037205807274460747710109584631298243456278311850554121584727711746420054532989100961889279890101062832056757191733730787526523898396272633199565088983952162140075045401605364799215683260252127852061707293146609544142771388277845363872963301942006325468913473145405093749450876301802380385232907692843758573046769289586941030706413800645617657409661062124202124936714213947238702104931638798996876791400702132881617582941536984829898514473204651840555930301733938497620901741316342478701472498756535003865761886065187853963654521600189163222443747410553382007979491503675182194953677158530105917720164847764730677652505625623986421077628846548984065333226322634574493398628879614036758320794945461516176872875768440487850174309684848916846439948609050230745844567168910618878379339521507452672185375903255462391815889153385522682188915493662277260946999614892136091981121569428022223516119324496332379933963041514830899140767078687305347630675383284339008469047201256798518691722480965439226403087710516569955235603598033757849869829020114787617223073979007466015830930287425836920595797172558959061312227574808224058757064017928649806274552025390244208297936400519068779189130820045105614509429668397257873406690047088016696426012972989422482763671072441047219236430176559525501621450079395790275875397660046344201183125650585720599870614828927969174285008118654279977503287008022772548283607180348070198718548732403915555831748524634080585087079666389086340823157846206782897740850295568608360898149795196451055952392049139049548129460861081641677252124304570722987794382670457339569307015545926332749731803161705503317504411829573930577411109209891516657465896805273866169385337879030432416070389928158609835950086051959545134656527664441182726321918484640574289134741238831098212825629593248318295559074720740728375549658791488212146117187830398735862187096440919136441096139123635718755285996827777659655486318546610877613506308462660880236955309663704722347697267057058829930275116381985677466224407871171487907862741264491167468444929461409674139306505375278439984870038460209208178369176909852076394201082018803710367391658748462318217979170708507608352340561500145055798774556156431347163663945862470463245298656122109868476032918720253022610345669816405025929997787915151741246862094871694366319740661815373455061938776823050446083762386515551688486396739957703387485862644046322402500293222621847523672026444474443047951618295712034032002432424662124330295724416408829047608373325657432298077313294031527644534864013420429751201782097710932788792369131489491210732322821396604572982962795922257869144475861116621584393023912394254291520928563813219180515666179506580726416970355911629902158647156997589066668374316270774670646168742603799387402883918014546007533424094454919943239721945902781546450602101732475855558985929526243897101836831898437962275086356581576995420360867557083840133243270120331074818530372717441178093647617902239890381809447851391234942126038524075515298181562804752756612756230207621497587718725452033871577311833072534350493112123143507384343575276716892263352916478426666453264148911240095112098618981239988339746439629745749279251219161965529803268295042435948208618901682357190513967526805576443757645708803386074686832760491093514831785383553006501547694864988844686761809628284552354376052655547863033518193345049495317722694540082406526921666504579654111816143466901022526991066729222532827121502575261350316447407546509192039801804182301098334284311636811488098986649505024865055187707616568670322606218934411999935875797654958918552938506793174834672845541320418822712205584295050378835563545761514036364377844714530888558726691064770817438731277850336590397585245151865817823711027689429628583826447513517264292439654115223753986913061330128351391102054800550204245270235650510627593480829041062669323835844943973697545535108299561933158587404068862490269778523498177576009186284580333800439192776695186340485026372411751483346959855499255384720468776770507758332782614444408220861583278725279500346104118470145811368792981956117896262079691010841128251330597157736789600482146380315625081503808164130671977931621526418005542927247509968452427182800685516507702165172500175105025510355927976023854747638279608715608193972942648292209993572733498114890645886988056806858857196003033213723812879439891769647958738886318758281401096710652639370580795392142211232929141273748178618292138062343501686390545577138136151196063113847548127767236064695452667506261223183523283593042094677460976988958824319710278110858192335185005618443299757603753995569673850567363649857688158858293110215923630436133904368019875605864600040568808845170085589923991117440364978815214692065902572582152108630969954011930972272144799799279901206355407992189545250988291234465990383712729982094417262588414364573727252539192335231213122534307895635437852520927657582728321583549064794492151224806016320336157847915476045539481192420496112844828035460563322213204374595287805506276542844265514328004294651800838867044913270985877574424252685408881861764460308477530998128089394080432410329124720575617894802995634589216934209082696916376482930426142459900394546545273698985773264959712937788971211978408993068518467282326668155906735012252412735044614567963502834117102541361513492351019898470584946685979194399122844587402043848190553983248285708923679652156927208694712515646874885832693445517419489440906463184366145346219219994036708269940610960989824986356307246528663009812201026561493364248002691168902486443593450461492550393069939094511486707498779403159061695755798980084956185103632363177797877417899368436615864145907139678925329237683303117544505779024490843783385114926459933117454676362075503092625378619536266931925212287599835198994202002346003033912456593132968844217961651553995999351428247067470731814822138228445380018665039266229055944561855917929797883576765386469246821713858266116382888129418685205033572125711316331266836674557979425464161401163177227417965546010225226039291517608548758154709511031502865894776278244808177426290003741551280076920690844211346716217547735930076424545088673167504062801154709216224798118803346056580208856414075084558035774864570134903152175583585184095724137720476012809847272061653372810613259761749273112246683162705687220492152519830964856549225424069403205189925805491504172794518492512895561086415637531391725367915456477499949456532640811986851186802108656034283997007649026980708018237208284184881251142505757213063577901017800946047303576536948532829428436812036283719469425332994578468996952016420041305595724170977037920939109580576863275600822879800376838650074298835284133693619225213825478871280886458955979370369754114601721459270400463400930100746401337610470726317493441074643471025912892030498657000980562246766728619531637980479487267095831451264841479501408461782309379089113363520415431890300871477482213556904775293727572582764559834482112826299764276020924748408059315474306408415808525731609154050309126594869459370080808019362237850662164265106518500550559775487602355415426630764224600570971319235292852158054817676563470372697193865044106630878657685516833887360644833015829555515095002499784682422300096137755683447091884236812782971857358357857058556651748867648287440337589479711894655889997061389508966146207877063429996006441148455767164120193241590913773423813027403745842450073982546736543021502605006917553590287795626227198496088988251031537775730240067971015963093088391457487284700399150735848496040457122367601853346361776451488024677760813632341880066735677872852600059030779835355301816239482546834687082522015637690122704503909381300657570297368473976694074873997951875153294769685175374591919420336778456491494746820206992165863789066525743233969726260906846903853393620788563277866970496339282261091807045152003701597092128934447064029002901067895422654376027567878180664647313426052052100437363396447435202263599681257780307956588993632199617110163543887677688256453548545096802655791568558264559211173264915954553865741049826973198971829061892447398148072152570450411868489107238183852665091572605640477194867801659623297036281850330492892125219016435254667344154267293668290861230539382918277612886531213684080183761377687860003243530434280747467331691215200820935244040357932208634802729469422524950666903392157424741142611901300847282505547470938013522433208673023678608465547947307973010330922622464497784251012303348439175432952039700492283167230154113064062564088426899612984141522915127458073130981573116893389123610471963126538025344744355534235604576576631050353676089311189263216839960674561664011167755556745333346631355059273755998586568778178977358348050351207082758400891933264568292969996807009999247963649966111149218333062115398815562116373271446417995102767575986122421290433823451355365829479129008569033977303633426758717679573596123776471418596869394988784079849486285683405308985368367195297085620945192100057304250616389256226562179678471800614660099443373605437101239253097180757417256069873725951275935882541310649138267546949793360286675233237913131454627610302241069501978469315004168236296359188081582272926091104000421998419014772642845073116588663015102490578136187379759838596087129660589824972580611469881526870990990924130765558499576249426728648740239562091745044637102083757652278815486191446412664713644574213162773050700359404331465589381758462015625494434062607713771101612518621099282485289845689329624640453033952679812792123283149080491444824083646318680462868105507853396100468398910254413869991708434102408997475764048196537464261724195600196418509934596045079162699134600070792781254687168253576022349054065200321119470169545663833702125570794791725610427495110651216186079495576714161899185924345918304861291729042386914601533215272829047168716746170893201116079804299871381304328170345250745194115916380865769968966737532748562822023495091836417340649864011949126974777492169684604169335405710451224873846338064067212486334955386441680449368836658062852268451147749004064551457436779340076911499280421520046592228582155935552160520767874302714699225611757845366302443961419139296095630532455701115432124259017768608368477231371465925468375599879643659101262551779255295106674961932464401180211814015334229365277317704284431074551803245131979053771337128722750580080578402020156948700688037692350503031605618635055896678258145327214832131138992142335860465230860434855728255058575428033109008814754952896352013968117156740071442721270735663986927121722605097512760186113197670609975633985971314809852004434438377354601168631344673595061926712711747201784696983321920643964484215284510263566448084037589371317912732794724642116589903683016181081624067666067437450307211428154376203952920079645439559570943617435001279502224680665596137192596707037666834295981558097199215510714275458008780287633188545625855255493728132241468111055597028740046665208266506453836457514405896375612895436770720343174522136762101992364700332542021218806257958438874104182649585428223381603795184959531535554349628042414219286307299718929923827310544826432596880163599639438343712599935169947686115912638087409323236061765565476486205084008033541607399411424932847558533909664481313008696127428993235251953677592417040772455009658504702685329125880201409265346322324034005853926909433795731667271622570938550502143003141286614822213524691990458492052050128148537948158381628401124846986840381691322559687839970921505205216424196504399155703895124936597218508422297793124863162114951757652318282960605191787247874880088099250766347804439255660479072046772824784080696591600159706522670888381763220885097722512850282291157066066458025063396776777780223165051031091338048237999882108354967881522854867634684907767882106016713567765770605652083847011712036705090300283021942726777378787192776578215381020807881469238801708479654832390282076397544205812693981532769321701774678450134330595178286581646436067358018788780933795919720302716329539563117764404996992685489130454793121668454922090246057628059684525365713056807859662620646543605432046613525846528290003044954956040769053464999826712874344769849087123403104757654361794164466004443445815399809406979700916553907611269174672636723324745197664172407774167651469907410407514233285440777138754807376807129266102829972824586013155148396471225771123610230758236786984863868617925871528957198977084934998402542988795763365620902074725083036758096740229980138791970785073076762316253759736521772269861325319501539816277610154892449405718586087072700440042111694611584819827003996273455300540532504660014357583194872554521614762273375747583042556046628602470545249980943409653610570942949067616103491965014478282600847522703669423332858823442339615377032867414067666481373336110512990235240289799449641808970214828440299174236984973641872870967785442002923393180267097164494256722709136239619193626678568640317141408845125362329134171960850402726601788123062240575352632485794123304027415044023623803042102736339301820261767656260462301553087591217261069039365536507749318834717663432204767700049317577340131489702248856327768195597823412459859303896829317758490922281338561315539791294265968129665201037251373322263175370195162864289375013403990444387002567076405867397065928971797597107396497023631607595740697764976990427943514217634210845772810359454232410207060116205633425764844340206035336150619781415947543787496128992986938536844359806648738729939492929459890469708194084165335612528391502808435508456749707505551276173239418077719768316027557015578649723487696006438303457703481244884515912569008410879508921972198182117903223687549980393082978322723738281707599225684692393897788490912090532748694275293710560019379133833866416363251657651552358274720007965484764244871981467654424583499416611768683644854954973336918124675859857125347511713980658476615635849152646238688441932150303103662618576643470295928286495046445665059316035259669564049206487786358627572459742254971719087665722437989004024419598746363564585952095685517140652292915840177393475598220200557061813257844775896392407511446596274123196679274765765285485022101589048377535801571729265252738084567712141033285544252865266472700126035281564935568523414503943051869382066927455805493765551263043777910907394170643761600603646506186370999737838970275432169653849246121468389575348839029554492657845921741088363126827990841575476144778824528867718509087429286205706381665807208229089679147805540776688178275565446913194404807719654987746264197008289459309743213334345203542047751186549135953505433814832569828430793311438442548715847350514189094505690182527625633433916195221424100563064066461074857083950756821471630871150190534688058661450706925149625169282566711244495369488468162231048408705686175249646378478433171351432662329887411240840387452396674257716555568482038226523363553980287089798243035575404664064077614404002035537622716936857997845051699707480767789161218227199654735372472463926183714955551603124538430046604814885934531094990714837736668266745539420855048618824614847379733562796155621079858744903612754899827127648783773466237495293547340008281203137920632112126243712124711553455862625976806357164535540972716041547992465054282947526236538300450035947635008525640875019182667733800108934075916158665807252510758825869786550106063284425884828983416583808661826751962328073543810934145855569311173242760362448332578222011256976413626348601242199337380218112207081573396596772644751281233591805781638691210951281528558856597915237585190853061165943489952211843090980227209501492127248001741518662400454151572656003038352573288281157553564166278487314045851482177004563674478297630452541741079757889797737882825393876982187747654919837360707333735566745301577817333585055472312489556549797022799842320249944403921836820614493363035699034808880057030240744878273973307897681844700701868910581491571664790086312381075987352731481661342232883593463177810248692546281051056271994843958155529103792235598959682883836205484362817915507374221549431015075654861013493775055509861233465420180384516385802697183467483998092699469055817022708524218784809076964398735056842080886884379061663124273301648966921728830302113331567427674217100696514671208156009362695370217516939189780084805627389501232250207590856994332911176779799786118607583133944232208965039591377432682514348653544780518464150148556918317943503584751769320770017556935426765898518829620228225830521652388087066054154215412383126963214354748901499255141116585118492096682860953303876465283690902466471387102293422458906229402859718203876295491483841783931470411104321716250107890423897657493657489970503059041096032144886578710128276326607539700361657957783960714120530105662882167704196397705053636802058491764504806587770763472602966883022796723601649816545556888798473402055266148706665489243002940162340052266088499404791636483802481509445791042461795091239954037853063532203190567657904299816380720190068347540933945139492220036288501662042515092139101198539034774532582110114374687426483815112363351496512614196704211444575195176658509971601235981273512597356125098780178282020982635778614637444034850043605524928868758001577243359603448599782241468516365029551584554329866092567448600539764852095064948737900318119779274763516022553363416953658611138526449182934482762238073040085162155657420466156900960983872228681397317507613307618338956930241387191675013872878637023682295744847105955751089150289777734125889295219913338445067552769244830711510121345401559609264695983701099118223686503063052782496306342935485069850678176865948045557710021490953564340611008548591367848076958826401138978920403890562805282346912666079877634615885157829057382273670131143742468308516526079876402209068554290004984160231121621697656025718821670613454744026959910245399179330845114638523786866668264634525056586754878462363767881600090259247978495687153259632027408311993894211317100799646130121776822892632826254467219758191176486281682026772971832050404137338696224830950418110039683791254717324838124532104132400676678629601475628260901072628981188817657671608953260089872218776098506074810065055083191309240055179397148058595373291372705893241588350631526995980453148054720078596598460685685449001090782022620696188274213511703071599418551728772488623311656911754314971512321890112835122655059643722490603686557349848828507452645951264588676988044727973453677934251381073946044043191271148537452918476749232028028061476065090158342187026919223980031882384722118083353879703919515678626846666181929814144034372797674148993070101311727226076247580749682649405504709508110412638362657021758255959739244259573494868960051960052252262010174246634013283071173022057855132311873413863913360950839571166235105840484210577371342344125252772130030582765808315977688917234088607142557935627753478325363267105598858433059752245633402866677591284945835666572497401311931869954742016788471525635728941094670210511494527610434449063155976946263959701112887917317480467760065626825646516384053788202624856928734417138561517966174559668683590891849228224651816101510894367297071066669006102053061600838221854837347778889140532502311995240405520957440960110254327477887704820712862783608196131712379538046022577379117339579002180237885445480010468948549864987573518200797354244125264882391918575529704490103357271189614765278832088718485612066641973728416211645829503218972574362989881850686846396410343936113070939549288509906227921222979964517216546158044356390130233955065131852441527761852563217609323363504171725767367019131102413246343959234833118768199072328984115606757606812962776792447088515990002190699344150553425444827288157889042085808509874426227180828971466538396643632891307202750356975205240267828893464011915664832641986103690895091220945197898455772058897999663761703230121065011717074831294972210189505159421442466892157899787212566317401100703677592786437975602687602626801657971179151301059702119774310020127412663724476544264515399948426089506376879674197707709140250616633853223858185590394534517287630992376910426595694160924607923122748682786622722830570012503107019983273233932399084682709015942386681722604534610087635319271813584463237976985665469251061513616107540169164958072328917929069701043899693920706757850258120842209432936967806177308017123017686698233561540622774255871442022289989802436959982611750937007611278784012678026299869465257414106976332981697658420870169869158838257618782917081835933960165791431111191408512426877524075054075784136585527572707574217352212843659828451087919807730903329538804244878768503564370563366382919032909744680085321415693044348851504856443665843719201449025771204773408351267701022363945719210168991307230575084585305485561646447541740644142203153593665965751140016423334620825505197825583649701132747307939742264575381788056298147305570502882036101820571277665256877882108325886769715291660361509905232940455765032511088460657475062383434832333477507452025374580821608093592562692876312000233812572891513816787209092706438971046780378546828796221615874816423665476198761292150956572011845864783963275145921530977192197979700010931441763171013993164590485478128173058872280793935776436976786276462063584397459490218492116110806226402459830940362483092457785171024722061676599936972497748198650708342525178480630210481668075072776278874776872356896251135166770659814314058552489184541819678253898148925282123512141155789377093990491753763022050187789549571062728515368477683347607484119756045359145422274531069574148097441762296523316608413268668707925447021759094334212339616650096373383824350521033804948676145243500784726780093164626214822857236867689648676256710549273815156010925305446587513743590398951203844822746241369527839071305920083662686786399052729957346755280112979323524538460874868647030990360187987878928533089607612536683709453289088499722276085402567571357414042411471819000420789986999899166973733559645625805970016643301801880000136809673161667296847099135342258166219749268219424661624760690611018998249251832027958771807615453921753428431373649978596658453074062205564744259558673959984646975019208660722690816866456147247749227213964922305452012347771251743450008425623897070158737920564820532517213988832554976792628922377458454325870915813395097266311771281482657634819625961493014140192334703714048008470806856390793424523795194868864965358128966547377220588236351270564483416116636881454742888138374078483474159570817301573862314850279189687121934271706478681848382584442012286194636717299702950369511879175707558074269280201566645169748146566146711683891040700941448675659040878322889200132143913590126174798362758355889584179004639233042569733465594850335387433947667527529099532062628173846752631803632044217302286854538352713210808925130716138730728810944246664223926787274959183881760972152203866510709974924588409084642800969763617865226679079289535001710573555632273522792057074650086130923002060167212368846607925948734084920734850006290028775875438812343821341045111948484204973200569105229502330455761170592577287677334308588949050939060821477836273883690820018785582523215658170573860188056108307112662376741349024541223737598262743581947233417097550560603951852744238948411747095667478774391617659276178230816350751587833904438991275025313881926349618304343093903293998402847679411234603901372723178372910947004677261707595184959300641982803120302523763434916894881891501463244856914597424242233729625485696135721558518151989966722355039588476907183189077239351769776741082709316293034074226552285159737078069112810450080981013613264841699280298345963279568190544389824383826320607110540809344639475421835777071600069589743443275349114136976417930173370577036951731954916489511467712844306753427327326596093444034066847560288585627066910186243418327968991652877052772698491956635377107557914440313072079179836664823094865986247685317738111385798487204413563383895691354385600692345678952699151077753346000067411569087209627743896225905824353285177581284600081288435670963186443203074769004547327171635586355851897151066937557568482933004905793622522697350048775542577153494608750689011337112327823548650804200589466475455967765806333966283070589382984922166826185276664888138424410721722508375896746785556812881186102973518887620731273705596306177613611325893977937880578878104770528990589516179470685276510518808215385845873632230130935421199360145739344582164243580386872041301449402511694275303859549057835750905070414424517413836497839556821408700562158766108139210709306667276159082281752245698232369259296138020212479712795917267172206458623495655484296973507230766505661099628218963461690206588640318247967764292433802921079629344760131518180599066107107362227613788403682709161489904410219602633412183351183054905424158737255221341971124575664676247143452196184346359841306916468811911438960381652686170909182432355736768935450649033274680959354908718793098695417125275203166234427598385278408382728521813620651060070942301633014977813622739152458457886598496981497046464620024517819088237036995922658079432341387985885385310412608582615540299227410469302028357120447568885126195281149637731273762599964993837333347444243392315409860251628941768202474110786319126886473801163437780537720871230971770090560502247807273903681494600645755340732485968444469240277163254095820182015281605736366535667168798815871605527725123656379367408743019475340884538435701283299771723159910157215415450137328540572504094244863160719536462158740429408713947117243631124035919204700360190631478666811317825985502737039719141747878478984831982316367371899394199536274436926261487060914026772388603681324730122221151879079840803015879788766511777914656181738995407144945993139960377606728938417755785527759914654121993790439378882185132189862794242003446531568165622483753939302826754263553793138552346329196878737996307188472459708054518177265010386257809479443704435281948057680182014642134337751501679767055217155328674583856391194270329080467462035451841264799463670672687674127527937715669635802379708507367278515235250489497172481422561820525038385341898420981073644592480557518100278233577289337440645603945776360095043349414338846113899577834443462041192580542574635076318041992719795451906958631278379793727474481101476858402755562616614097622886378388974797183429138606154184281175805270845755464668331813238081351838837898057647161677959327950095997405879488241485055214820719273512968518232420272197564042579379703395569756514305975624073861269243025618668437924848103534882995718041649415475415037644450871696860573452762513018866970427824770489851294519677622529869626293949570503757769471746643659828316114709381939497611706752964044618799971333704569310667752163624870716687317988057588383347059810425923554511584638806701753348015818325228988452254185931041634683650743219548744198377572046271613150300969237566458641261343365966830962648199070921151859707408952919880198836352396564696269721971781712308877220054067917909143810401729682427707867214568943654464286112869435957954221465981320415608072814684878579968122549353545088082103888028539729387742302600842485100394116615466213374530123145294338887564635411340260826038068991236673887069114893727167809757433674554440694250943148715149599442326153030410120593767114088077968067611069216226276647107680792925686302035341821628989350826794700413491457182799934179272841442380534071788679273539501989009928209576867598037331245970302368619969361499540206963714591655653660491263549998461386123032019710723321044240869903067699300693469616538689070570386802001490898021420106457955621255568227263716786469886943203617191531962833122674325760628402530734845102718236961086267273378587817323451712585630345886460489880127568229829406266935083863477008893191559628833451287374836127038228333400874850218042008968598930989578228737881550143750592721779180512281609037935393746238847965873555339807193216572580946091396200710935909859131449165425910453545119862525922237155357033560046465991677875700760084238555110978515990278771074134405590327951156341665614991836919743996237748578184991957943510786133537170959018199723714203905251986332484739296334547299166906618656445595170900326725905889749583189744185457029308482645215882093534335054155070402740481768370738727832357325394278425887634928800911559565456062810334088089293860020367282628991432810189444890985425387431870551628606385987626272530091802627514353044690891404591250450388496352150848446507667915267509110727446058240144086933493421648827022621562359445336789809053607442605750499729390694660318522284759854689305695059257430375625724791883170839810222252981733952204334155053677326044428429588927244277702351596168197039436934263441575684185204638712939043874392376487605274104924413131645212672906860334213387994419958564791988763390437589215256269367719075076703056517023508128790866084789622235258150174421179230128506571054197263050629156960436054411922723095313132510829717380076939730654419287169271985532738176807012699212142933041936166570750617543253487866560594414416487801139662749855813197897798510277901385009850849256393982830031998484263241138967831122421457093898719623230333794856537205287396568890908817996962649419328063705304756275651191020438612372788750436838826903450590266549190885937160012599437629361300466669457345140944496623161108690734557284829993930283683226761117530784519911682436009948721316353719627036735526592447508821294452544201867646706856366921208118313525376921057753445058247603749982085330050507173462846871724187211288486925241963217029920873062032005161095093060414068838700990590201656906135476450601981837733729241113048873411526653933750368824277020043248164864187881214997539420308264675809927210206466668061845534012670072083335691748141768397030540830780164518988081573933346242630722993882837540359896729457770212052315755588437745418445976217026646969349193760262255718527927631871994124158470061850614185661377965099004250173090470251153480870974844949249649453842096035826951899622436567910606233058848840556970777884825498353663122898587852329287626941230408551181463634383514247902119869308646062638545863345304052686186710201789917255321872274214341815166879870921236987072265017641055367275005642188565337657571118847304400246740782747431332854471942710580759981109540842085883643202323784962397330689314319754899265145664241341321377045735308930851720591726898422432429344688666732051832803540642726879970886490553249656153072720267344722488609238667855376370869512087550943172318156491845092510388841533248337511838232905293482064280726790028494765264678303662759224327525386331422701666906006402173208593334226398355030515695828369971844905588652977347244803909401910887508116671892833983124473797961849675041174478000604003244590477854743096394609936709914002091423216944617790391501337389861698514380008571114560673112098699831215669272685589389665847708764987612914367774167823275803300561319520919493590949082518146899069111279801920286345736007972096037360522092394192945482557116697424482527640336696906337888346161592220156056056055698030592215260829097657037390371496934128401457734586607012066880587766856046942069184373051137492630297592476889955065187106702167832116686414357212996166397562695988178306635307425160017205937425159655735669908532648628647103410905267496471711053796752870737272504833325029656613179914871119521650555909036702005783580093624946294930089573178991540999126583990117481797180729667101010949421797768194167410861684999049409557957322893054394170301913980808458911323613743629870927367790373712771687793364093311235940922176204335967756875759200216949552091830230492127630085462267987927176842056675820462740817932097794784048787094759594319625552781584769980283121438581694332977439351064168662584673121847757168788655377602754682855043356619661168930492882033152677380855079226402726300031638291034321244438247421942096578075558615127496269424201496521346393906754539437611058627016307790447881879234761255003518540600155621133821253123492921184870729716165856124939608395766260644188634872832224332153375433438416832669317542214366029022005814854809432627004948915819104981754308424789596544470113188438153136323178209995708680267542762966181915730752580935873069632610483945876592162791087706372951458579982514790735491131866074565066848284653388447673462757037653567525638028504712104978589080383813244092444645601184759523182064186877193433477061634625499742543602688386961787177982289180492813760177579028294268158354803853507656098637374126578980554157090882373087266555050285825984153861201241439406577600285073301367793778536800598572298899984728812843771673946193490636112461610149189374249947947800758034756482170662197939123149991509745272389620219482651977483606254948666156498937630444005198538132894030581614910566663203765450834788831008906002615910188270477261316331561782129831834317385701225191268985175776766645764195446887055962238345012376142171849721069825342434715717167754681838832298885290279733777972559277139711279442114257162040852540548127271878528667567533563592343331056029385102472576665665477425936991233573277962012514789602945836279453994950922536373397847324253142496901646938834714511588933744386615425874468909657186688183451824552147730254147357173577553132318348479632414332821709860256018746738686814502640933694250707658860385507252278608460481782637037531719487724667125509749929045402140465453433128490328712648625100007358445283059170597980981165056512886280228353697447907210826253272143477164248044973791839842191229982607895493304141585345394311730845236269432306729562474800885073084514430364180996811177896054502132518392942983719956217553822258371440501662216073751404868910753493582168219924944724815542652594158878795621823163946916305285883420476479912807766834491660297370982990292465425450472543916458796332113082461392218010737825517439989476569955405873195201426682016844939067610602955941376673940491769717396341434769768909916457164524113788064858075839129717846208169188902057157851548825050563452229847200325988879862936026359115936016899985267799319739594380370513447972547673011020929129959657892307533522822522995245748469724680613579629242585803716938060326363663618672902246402276149035899799024228580608526822178927890712207160296472495873509414311739584067257785541423358442824715551638036807227237944031221315797682623502220782551601634098631293305774078223293035405627102454694423861312896584467224289105609621689942374198582412038770816707085578698470930627020354953260340042464785132779048681923142689854038063128791858622915967426788500274442602533530881000501777925600084602993174180100137442917230866172896168740674304507490514441935227807591810259899932162613162010838366803807094391265955823198538659995309412953896394157411486925262905428341385514898542181874529698715488827742993674369914048523782395276485051075264215449026090393436669461314720007063772191708330078460375994530339652786195906019453734302293106300630183159070066491760566858999264920658501098232442491741212237046293198700293954257567505155521611581810834042529518783726520715485062842058154440030234422292716893353549074446095705328124236596490841876746483410357728209367603517040949996017580439561567814067836843742230310177534604030545099804872463220564691321161598523612819967540192631310581014734624159919147632305018472302995426620251576127582564781682045022994024971382031464261237837112168782987804262576493129076400283820789185767689298245394624960074662947533466635854335079572492074284694422425752719048775550678940876838675875409223723834077309594801653977269476179994006408511415154029563979031311519204171892488679329350770453716078052631549798312595734877638012685877301086216916647668776529139192158553164563925776801189825535848971650542784386106888294504082212236691004841302914299654918737012342636047688755452219335286935489865098598147761507637720981597156033783626711553202829767741333463823341890700078270630767015631943309302184711809075850670446857949856633561754945260807171723331636081516532653105931872292000534004779009145555798770066981809750831504776718217091316904631665099916592937768707748713737754505677293096954223024324741242600551825656563048635710480861833230152482428029341794311407796330093186090777689553090259019271580066301187282393802122748847553217641292382247763275240908213780007995745754967416721713399717385494312914706908420820876713452515048199468849257693510809722504659198390634908540275169360080448574154983614092346524939315514431093955648844068094911751721502485368015898201945154095800117440932404868442650413931660220838572697213532539275657394732218898547490631203135577030698220132993491884001439367418168528229328292827717593233384314696331217688322412692542957803654842063177020646743213521625284758506235830557407242721956575197050994962991538817754428345790606307116514196416520199667383648485969525142043793792440368270149238875385971871604842344277434606977499560252977889430276013498148174153798149202111327536974795995990687857824893804182309514422731358771481337721188206539518136101651199077472601115976351903497175588739446280553880384434293974170072400516351661090927816910517553736315788836963119912638840477272666066574191958233846003802421649596450378552824648546706964833107058426258223179773477302606525430898341212548627406543472365506417211678903380587264215904783414029078339931463268620752985980544956547102497173393894313846824833091224860037922688806662348315441832879072977500751905030143978753683860002978555240494755316165535499641929480607038777787432440451342493904122053592220004077895207332595454451451904436004097822364629646614136287506415736321766338777155075929399393808025090438689439507278581288737458324351547965718400224320053667403387525691019296373962218948036940682555445886819677534159348812926740705724295268513593330329674789375563594478320255522002657194544779241001923146120004987277625770834541964646267852374721081681921229672713079701614065627377248870603063279134157398547355154744922583467831434419783955079068226296965281987684282465130430249976934392660861607394004094257143492773808777905560032327317576251103956931853500659780433930298527142740809343632175464743445959032884340186661283584716543318892633943087649270595857591661210333005307306767749476382459519007924055782052458780233132076090700072583205958001660326280517742571198843623021510994674824243270328337889856192089679444150097676121939246221596490067183546280989079475124603033054878341914355131663565776767538228269148772395794144548159200674740650631568996914428219051529818006626899449199386810471058585914404440452235706619627159711829888652697252804083688307860822965343832357685695704481951295143713140185484967632400491740772628692178530425553947955169289217365904994712494889881455478777082577126522085421715443215076566946841174208159974685145700524120653652035389585866976466399016078198182132717438754706981171353593592451892173303487356714162360520937606357564849882560857354863807137423099794176598885415467888889008516882570938355443694663085067039593712568437447566347386984000561973685364947205706344958303601374283545628503528270435702475286781936336329435691182223452116656529704752094222982807316974874638336937919339377980374916829070149936661998066986613196698597087784099053654350659687444214674586559972521001224686147593677856701421633943371732868723657744384828750837128492141087594933950775937133695831626682347121068470028630062470727081602550979795072543425978387566454291319074577803896321208546034035450037400993925121497773223532917872276617149522610189419889774896774910206755223916425740457152896101380948861273420238639017182684087757601628512057300568974113053759841537017641119180249631707401739601396351381695577564548788975905636039530839117576774753162427300894599132063122593626059902711730036672811515797480695738298770925659544043636484560938103215144800348990122080806663786553285107016378758109084142471858116329763082804218722477904762402988182209401537572327258219586309534543222101913434810964058824075141313193475452266212828960202150582550717939652198753082975262936477834675559032177807178376047261558251030094825088936317330934223997902211964328927082472697756583639213728117466195672194195803372396690206646608910837533315243719735779314202468456114229281072940879797399143070424396379923224894926880017517808746284574815827438835981018208548392352374622502748220493470132870081831273669107182712487911400603739916673067307111085924672126689337221601661595245727605960032078478587727226743944687682896169111688718350613848505211815781173523895081702404515929866568603772322236597183072940899961148436044735940552824778577316203516172758843242958322602101925080274889227547448075064848765330667719857552857431928291830602800313440927539646197276031840949362216327647466629192172938612143317909844864385935458497571996431916641436013746657825399902561754986002316897801306882747389858874607490446720470916828421472153332193433226362649822325548333092863111598725652299395860078810851069931512226591030913914943558988909022046019308386742284280570378828291115693702013159793596316612569735597450424393387829123413367188496856967307788200485212617915066712796272217425877016947313884825270959326968334156252285690429765861305452927130807696803018224604871526411249347480204266761964399752871956236283909635203021672300247424242180683445774644094260500493506371341163014861364377296827480090656324886716465499348300500899368888208923307104320149671871322624288371515638133225802887590770798165353023492389873636782856018024446034230445582163608249318879846950042349437425448062072193068877164694472614774543145209449962941432191944940497053566892735586218345661696159532032070994148512408185008207926360090816291827912744247241468219924832042891866258953990940949717184172449159451385789089890970043737504569463964291328268369501325993067340855606185036962334077317662460904355101468217662296606758735931623858354186757643935450650996793836386146843642077612270425550112193380624598869189137086780194637476306113896428558811098924048170799239216091412999317912063066357117672598216430282889537688164772450411100727807946031040487477969841548315033244002278241699558327101535345916779575655035665435934804486987987243141660475371139650897621770249115128464676672377291095186475312463331670037228771849921288058827756568304339884806011144096428763719027777616636736354959159698181743837818704967316403169422056396647304252666721850103744968662558587541658480172600852112789372226845295365941135243925223238409347251390168695384115670125511106474505907953890209803387453098425301690467089285127192008903412550412264901835700825744858441512644125110403696206611752198547701007644836742654949679942806665070875667136631887201334285400277086373345285857698675829057549444286048749321282296800796328655565022936694034118517080920617438691619869198905000790744341056953502292227269580844546024122741351001488345625175841242129453208871616773056498253172343890434485628198274359997265391694745807879158022506041522103272930770220322875248828889552891640173745339470638043346172806205158681747568243915242864382593665080334499601445490314866420538547410335472913624587098174709926927232941880325869361941860406164146503840189140679255676221667595437652646763354684582472179691435545194693204103753021061420577856780746454053122686464217432683098649244872020627214489028772231996396207792750989684159229389043343243681550124449465811214522674683289115834560639561000679883085965955325722363766154955026416719438367436965820626859193983208762009606066798870916483973771364613222965033057960853587235450599555059536813011293349408426293529305740653904613786329436504860331031672391225727616442603845698611722398528374551569485991308753014099555417719703763986939730254420155783449484677100181944579921011882636937180747558474926249941084389989838126787917507026308796223780414842638784998474247210747327716068402844724594942465329828819161924020741114285017614081382644200282003034889906567323824775872821000503879737572828172044545047565587604626617867485106598768209499342668334860874579782410769035622430633527881476642825016115060724778479040575561402006162404148182387198516181491890216711424352385668438880477916874066844347408563309465790915161055018030952572188153623450653605459327849985784805894440526338646841282333835629136482009095203192743183300378994431780051222103586083864405881062663401153988850820011278358469042623989573907378335199986111472759465562882891003395520041624586324126904430796143836747332397327819756055715278939805507186262910595585326514668489378526674354446490226545296708552027660439658398223207413143095799128181426941898948846399500765750744402020861938297985319540671590631981107370932432561500284051824630241577973305901633502649387162117632501541173297235355789111724516820916658548354303818445839507510862314896564524234506896994750950684641863549571533387765356894968718292123889874221702243767234168713546727906207539365043846236934952473596747730213191180960860584122003784250464965042159274015582502737525772794108533681024434444140686678142706714701785839891169548818385001800058147007805749867917788356154990316174867284703918245208599633141393209533988162796315668327118340715456806123153443068631333582286689075848438556516884587488437611788489587672946933648730284507054476370496090416867676166513187080872953494993335891771629772033782948763383376522553968165768201936180974312826403388949227604421460183999128402225165354058948520869734458745948936526902867071548254268620345349666839020047070487819098335975884496433244580773777204665989395187082770348435905132586689868955722492851016004414693049815196545063813917001288681539945411576853805658187842038236745179384539098957619870427646626549080630141330922509859837635712784639193905688032772106967651431119614731271483862365285906426125927077353905757160305121552442625499151313594014923637924794028139778123513680434170493913651863029171658201820755348342224352125471439716280420498940852609085112709060806145988723636802193827606313556629570615812638201905126885052449494713280540590084589303087149150195538066157947757695813833813784660867651474985960075140020036240428136885642060499135435078945185580735049891811422555733313799936667988658725761715591549688221483713021603082457201311310956558512878296994843956001611888515608517008807184157885987003972564963536306830362622458224536263678191625954589658075498822212678160888467932196219128480145018538819843262781254382904602439373504568961606591163603652503786370692400905844249620470227010388304266921291663705592900561621788951669757259048078481361397824009717722082196118910323017736150329909945296540894181836203552393709424222116634714363470333947355340693573631582612089911065383402471664780021361287963778310458589245693968683582865579914592720560566989846701922317020476477806767402533593817193209522748109707826658994776500536034932024414256623981603523252266059081891270878800606242054825813260578638818942919884419318370179548354716785983378436379972390996469718457992292180188562780658683142590015135722094801826688246369481084899184797688406140538438229955880218296655300702062290514140474136303226178127840457322475847732824654617500672980308230304534538029517762965187391860683834615629292745953987465259823107431009348898073800438497659504777510381249265314145540568347118232243068778866569992505562483608177255238259201645315290470733494820102357241748138014284642561001163759749241034263050096941160737069061400427592032707712453288768605083351740728565967593510237559177991513101572522514529425901769665783995380552451175262985389996531120508865494285109595476135399084953043636861698262243473229233473982018671786667753790887450755601487302267135853430837870390568018373418318269960527392710848540451384610105369819747754430896668280241057786660073960436781070671959301182329044915484253520100531278962876939378587455886634952501637072668459415566807979345776234704708647866341049043896850759773666944228324975268323950620155879995321905142147412792221178913003281286799480610368624202829505498318078840120024965764496998204929407060494581592651717995701682659557001594330627649951884011683349859704068010604344162719999847416841151139597604131216437534394274248803563105227833004743998755314039379949765217536482950449553772244965999542906104867630729767868168778982354829377218154487674549579605919381294601873349289829053555238076078478506126647026837998548433013822036462120793814877702759227569887049713597215109850470141667059319896502727088070133497229406707060222949958361446225460878476348591532733558029574931767553130289900142520729260168880614074870568707936577936139230304565782641229587934826931865672400600522766942845364034215263414981456126015621285845339254842591616098503888348410879077169915416883731654129562598639781820987687826659167251346088738495181435490261184314654919905265168647609617907727583584151766805284366734008697455189256192567905198758350046906939529969030374276264676048279232170494833640323734188441779770509982347404451382374227780906715078878112977983363782646494292039031952068736522742926519163051539764782647437531692367941483939804400285127163854886512476591417311303281444483655514867641399703059894547462124900514013983238509682665389847033099110557716031638490978382109117376152101437937343782411228498537941963203455512616500373635634012023955235293168571158828818615268580614907345951454463114711004140827059715520542580124522689100657442284851255402396829755684987820226828332424706703703291332958250059998163063017756160865557482945329298510734188680389501731742263985290739435886327333600644595779350317276950506437443718405814790959293117920013809304516310370291551272791774486934928134252029169005028021188465048442340379852259861041691467507586864506773319037453120071840751059262392145305777265820800107786333807897666162962658863398518646546898757113850002889473069000998265483524651718522354281352904349887640087659204793841056523925958839102472922251996220024697091339563738716275153107296465043680966623837512193499064954637943308070005781555451114024888888060634613908079631289290125495151134438434349521878222418154704666153632151428577983584436177146323002164648296168701747673254194711121019371252831716828434330762690746337351748754546460289142421636879616487814243203410458030160565979390191592139601439918609232324417544616134769229391142969189380556923651089693394830191884532266196038194403639974555065432216537022162974665278743080067117286150767141112252403164291172244823548727080894757227153466637059245812570006836803893426797009188178211496932134783249562322828966002677154053886350956864365909334028304785560382188963821323146026974033044872093784211320417828034899513705182421253233059219691070522299655393239219185854310157686844847313157751284389964888982745538968014542738950217275473644963583211736154505196017147573134546118737440008524120218495409814980124677506351891090806223837422878327773821894208370928802884798689962008896282664075139280798389107494197773157290322229252824060362100996234501194256891807034468688520999031786439528425639228093616505013531374279068548841024878540487011241886501477978208646855357516795120452944414121124286846397986100530101473637904169745030049401367619070758020881342277755810929631933248872983052002627714698352682300683150884792717750500183942951308710505626536491922248234660906233234880048120200047882343441639759190243424039027003813711906241768558954689467470858317665996264151452639689518961155125610491344206104787943590520555895207240288109506773434800118213283608335998135949551587685472552304558151175352533604138970171875769512925142766025929112346759624468393866085352725738566887246867474343839287203770429421687067138914002663832472214502337325749330634514102512163791046322734276624077550712486200827134448807237983461134621648824732397352987758639917970030160159272943943232062018890263249479019436592461277414874831375998784886994777353235875497977677435299018121515756932260746490397579927928372289052502319500961872672386394808079857107971840855969574192005815272602818683041567294554032947004204748779024312925724670994048889842208286398966899035778633362598698730088861324770697571072659381710118804214774594365155985019643917462559780120644220608402308568428695800817835835815705096808460581808311719857012388001326052529701652676542463183839930829528400566495645761513787558508253606912621018854117849644557811116434177557805418116433966542834878528508102795804331049102878665436096060258020393932071436387559859600744756497851396042054685124432407275735932052767272241996793510249068322257245595075061025696656680780202559399411074468424843384321638614346859141166388067649191064646366471333488133181685004006976821177118741386185713056402926961068236348993122363908753736749340534225949952964429530103559205169881339161142716452873387865314756033054688574900423548514135510319290932056857090206488142124260935254700130878446961465477855445398481635519679767151877556888986401875598231709356420947441613914136226557359739907347791875516219665286317934051326815889226361407386735588529005968120062128560878066822502515963271048831449026519847547514755106502236175788405766951972337122656273625939656819798841745940938158437560111342514578065001230839718114012984079526635641325982662672668963640736974942706616428412689723792134951483328106237069014756525383557292598379094701871561228147010368444044642864322664481554018988636893901356440297953443262386915628079540784195160498457597373546857744794188958297435650808187088018696043163111809212611148839470937991623081038331283660691885970690292105202560525310659986104168896152990548270870645427170103521478025055150325437376749165104987900703164556485740881711677562720378597178654641786797428284412764904567373314239063414965085022083248425590702400469865723709605492905831807264600002376637450853512710301279121686712984416325531915927726341481217829099945565884595718924972252071259876325817785963048795795151077026707843753415232073209495263916725303418119305123005616286785032344841994530956912548981350737270175840850479589701093284332261157924380067396128246211108409865763232361992447289743773108879203571794228995590286044435834235196113099042688626101356861707936714129701292646657258797130749303908168783267413070961106791489548728789331557063304653670659268786999002435057047496045460070915982180278158136458225806708256342875793676305244453313026431565225308444576476386714882683952360315598393579697341686699650786749458413734312462313052012947367317972495516960405683287987543139504165334268404710989782589194485045275006156876198387162489230138906455751645280855390765765148759648007549552461990312700273628791579417882776867164013677776113901057754997042756726706629076328916280464822984243584520639841737577290874081017568868197896750034884819055410656985121608523987225790518825773783806360263419655848377872130288277955025297530821993632156929992140950999308538424399980771263076022637769546192348142317002809163617311353096496692837421333158636991901865535978836323682240699829742169109107740004671226427190479195353600438158793904978700330725268609422734641150722765068331989155501634881069174961400106165669871539321396345350799758910076154918713176537045194138346879970664096702407676917835438259606979719869564954991507821554609106025458299961647258720729688681313455494591690265604583251163393657182570720515971948930616456179394606933909486399073751744457992010005692303163629616714119743586699465441814528381302403213375203133787069794731169438094143280630810185767531590898248556065400666055448437966735615789827039595928751899225318919047296436254671966191795344888042935265682980525174771868386719799052206848375182987314413322637564477570078970510069119753242506639377985772533326125001304527384653858342877078623056823356969910719616352584237088471890538432511739326253454201931484521689268411019713399926149370434747541624602605000946514722013204366602593269048174464462785992062215177707346313096673458987360389646808226472188237412054500414257226624336496799121722946439503118512890509469031288677666840067463943548601105854870196679759183348453720842558549334455727855936975912659400254624459357261200578471740633361668346853950739601959533620197123732237604406411520808684969446279105371343159552197043238622721728668662465780544228516808386452582926212517595121124431183140630067105043857345970896434620842105816060337087127948659574470543115377214665651897446535776227827426009837236455930382627963951815564130457550266485172022459273954533065609859934682540280788397597416264674671210472242139379124394746708634636042319908771075939959600724541112396598492279767440635550699536407723719820167261488363426934569646302671339497917049473789834741295559503559293034075376993711022702695270048022088326604967621846286279955755991618150511791985149085051423245273314747256273986165466463512970229330581891435821091872729733325543980301750565326422809386355595455699034406652896274405062896028776231186663101305892546890495938015079072528442481497613726495430112220217989481920665120094154590815712078624912545546337247022929599536877253387371110282148431902594287665790536331464397079307792031674013640286433643732714180372064407758083196616917528068799911954336272755305517744085232665370816757646051113633697658468118501398233869136859794349921492245463318740052626901500366799369032612554339208970869145593629463467520897600928566531484283836121169107613841213390926185906436111210395139361975893489678025470858891847196239384234477823401835803840345157787880137614249891362511402435468048580069779232647136381807111694508952685371098088645948134596822474449852840048509864316214008351001484352468987279207388648597898141391643756696027213279110012545140712978062216125899908688593020408639132626464922940608166077603242880429990625907497223946390661633387523883101634451779707059549063591332277551184165548205367293001693574892870812755902526894058358575622083625149309224051193779796544545601305697011479643211613979500236943323268494729231939748869652080625914594346745952481644815776530254676774901659952710829917944006214325946813714948046454974568240338665367352887508565762386921842841711965505853520411372962746710373062160940084654059642921664201249130425413361622432531386983648840415149025638925946840774273021885062923619261570803222286196177828307155474349717668966083167337289887468545192967997036853471232818985124284208571708571659231277858450215329296751951363108260150261344885998286792824102652407552756659281717733665002665374494005800466293399454004473381173300759184350966726948988517495118710138446710594396703436105750174416191387227447220598246748563374218025295576017821513190897672158123365818623612159933708458204320909077132805457334805492715324961088949768095226393084287637974934378893225821385753412913225197153437726834244918682391153170705743762677568314990985598976610710933682685715247378536577899332204255755785672284752110711697546605237163700203347716679688642501867008607287283584618324655545292277207639419172241903710732899644504914384410442458108867822423553169552769512727770893067757586940159287147654094987917222093574669486375870211096215085167893723068978781215994569536626636071323859311991384328304423295368259460156859366777201107803957655974420049296245577322214797992518779070795215727200533962010419491794312537734313590497208425234139575653901916023656240200455038970643757938574826417076188064737317330442888140379395958534006861366051602510137761841530520655152125765937210115535211670798182373470062295835305769869734167702086277275088043291109287181419289387539365780199878881795587909310581957808924860161231390446991760930723239863282304952238733081770424120826457046974375330382481719445536591731107767367157279742203036145843366061896392589419977050153339137687513358071629861202970365436242415291325077232839804303063263344937732303289689669883116367853716362096971831987503862704982301233295033016755445469276691293521902087163359418313510041321561298800516530589678283685500130486064152990930319220502374117469723643132570937396779015549741790281351559540834227867370344917234640993245037254674489388352100150457087724399436076544112986718416789795560381205700887986606080257253365085077569198012326219292681892128656775767287507751760475796806338086174991124685024439140787886605504465213659386584912496351699360261761660663393214161202548241241485658133011009282416754995871861657604278126314432156179957430929870671767322481294081569794006005588856046514030736855677563213056550164836197693259774129036653568823060006567705530952391109765279937051715851881823427033774830813165256343531276990404296808063703296557516509835193160765473703054532881757198987814284486258865061202128354212061162036897023001248764172618768038900731325011494791546891468388695265559535459176017099656121603214834554119160252445212362861235241876507842479482077203581554773812728681320215620564525994385029560929498259592559362249273727741636700387109725528719360382106610616350475164217810427553367925217911798775982763597461270897038220302111332509647647836541974148763039302590263042561037706921886718775349587364861836362113498035268899707255094584466286398356387734107566916489538676243296771117702792756518773982998407983949839013238368657036676423821099227243148359217041745151392890860761068904041972409724593534287221426075483056878179807331501081085875102884084281440988292220145495590549312167485417393573785573067424917618957770826899851457049497753997415169257906376562002775280319095569116109295434090664869300298484238073098929874845753619358282943672479215240191063246603425916591513393653757772890908976381889448723782246153052653126705270708263181208935751282485154046460583196531836576541744756442037632681370631828402473627240781892726973389092149484878829278571683256140594047766419439228635844707662477358232549547827161611318449477130177329608003448358440675917897426747191592949403942189585398043461631863152089071026727996220889879441605151564485000239908020523955007476972680746769938589256705361802610489285126666178972871427927317054224531800976572095954615385352579207880304776964689706725743917298926539469004360990986140927070247236447893066636500990379148814369870752353524887156627236879760979748698813094307410515479311373125038957087939395961017987344082611040072984885066012679495841794691282925060708666364581179308262281091781055735232289824368817150103126049192111352282561851243010181745299428864886954474858929166205788616331626363282853836537439709548617980396420848512908613124342582963947174702593374725840427867003567893232862807861881172357620078799033189347366230292880064625877327283143989518034780941532024389826582987119799058772586521091975577902191530824258313776566764389197490022526548652061031998309949114860648747046608817655898829650131302544705369699295326937910437495128934661495134549064770029425480786985263966303250530062955489569092717948054701696031468750577477620944547477201353126759593424155822464111385540408807991811818552659622919706725839911232816200495531816831206026429932413126694135421515778641514873366954303645386145926843668276892312966938990553361574134453650723768790136699489292966468410875780895884278728042753698753957192981520175790066242140450126033048511621650940631805350073265808602868931180859973594570789228401570565378749855880918877927209107179360813417868979932237065098921916942402057212886893958320995673588227136454582500210126736810441241329370919708668214989616719462030268556927602193781683426823565279863959549598187706613149035338236735080515558796060430025462725586340543314138216777920878491923464494664011205564072735026603540608451967267169123527231244958885361926530225831494473579322620721945591858537185030963883042501541764624878224542918347486635196848202969829353555331145434316463421391192872840855668298952450587727425674550656474960718454731576668404750045456019694300828347852758391238648893757240990668150111794634438588299035753454278156785856898502606153010023779145334472898817018371355158116965010932865111621714502978429180097057693770166838534264613695736038912085844144972052411145383388616463626224252015537031942128185389783922057194187361013735691821148087056492443586704269213611478460259181600960412746784795190932503979779751523347141979049766917479603403617698080322190027242887667685437257420089447368780992956809622773858300404132984352492826400827539628299033191869158301383175110596984921110041302826970077402667271512131628578452933420430950057335420585570435371914864717474682328315666390425741684997070069109936537303598302948975945492053965801865788411626326166844005794762938398924557783626079979251810030064367271573056093900923967085444290362791505638409514941561870487334856276623896060556765558666529461390614354043154397250461100258075561590022876300399525698167717899222794684231191414978506769890306420044444344948717285534966476585325644886881922017959032504985453578906448445511710076010466395987628767466529511713223170899840020430747480106635287013210258781662334911426040516756171082997365644610496959500589102523317920820824277335661267200556467583586949888280576432802344066281712440590709886315315346113806582099108717565348097451262745408507190479751480867312874784047067025165292634675217323366861712535815667466598953331982751085165890515167900916625282669023857695954233989358854797933430623589023841622790628436795144585448137297791660545580863178837197182673010837268974234383825440770034212262145074752841993380969341756273466226534856373317655385559758499737192617672227337551254344388110043702762524729079066207083429441979668545583900042081455562259970803234106074353122499789151486324012751750142814391793671727202623042230276824435720537930496279669960207665948630511537382010627467781364799231341815895170238628662646897203442732276365920922255217648274622671734702343252307145348281709351848029059996175016797299993647854228001991040546649545690076824166120297176704962555165041385718609835493466467321934145881712748294751106825679529171080565747761282165796995115303597062747159199902905942926805568542220762618662060301063869097356583570182427705077024839267627640857775631005057234006439232397570020951943917658257160499872649577275111082162786010524484815910096845809602433868805171390985031435597142274450080005257976660729749706175956521551894638808413580617761349377959796854735523874423075905077806060020455161782198985750437223538605371095113313202609247675232758749116217529172114637614944300830781546325773981727206550161914333724418192514089473692314195153759549590255624737065638265863666253549345801931579658438812333006641990537045560606280663515188016334215111571405383358016957839939557690022023923957172006916000035279372888791825575187564060548963197448888099620607045680646618303278193059533298103319505384076468141569723972813584870585778522327316948118922396455753729932129852938556511947850468337061011005606009978825066907385049638836654856049977330109456873768482306939090264233109646412074849721193627025045937741317447485969630398047352254140922596591029745851138018056423953288961781415754451941005054570687206949018017366317405885550277833257475402208089035530460803679270617980724067374405566308776591725717908126601820244518699291486421751836292860687278237743369974858825311703147687528158925481632631490034217163938027213568704911666432643330679226857116623941704603923857256947777229966820224165735347357699815601511610156101559094068632179285138386566860493661625598222786285421278359973341749886017222675804531745630283757509287996554963420565493465846147722717429405609494413251663169964816011873397814705243829444875717606134303809453100951779386493509840692131769140318841885457611782178791468755919403420835126656655284510010727607276570876523882096446608140292086822335487932774691319364359645475340470452919960435015473142303450221443352880503373129194572959679818580080050225630569085678366262964979359481126428286791136398714844089759204948625261258131710480921092645452256740722600978849688446520865628558357339919889975111864072886532542966359466262173878810346320016562816076502365538006622247658185148144457606499439646061334428915619508042587840606266002714161533440704876084514311978113361632561706665586086566786897265711449931868001786241496956453559173575663155211952395039964718440705295364216479141529374948322528622509158962983709515750508964952039969369650947890398605547627830428451850325069282684665140307001402525180203863755600819248501260780619950654245147624785357028741218392245667875091888261738321872433533212174881131121783235663503503855886174326301933724629344735237040189592270045012021868738329778980609320369742783427767328394827273506542699804054974232095428702279144989132735340622517841714550462673436648257319832846299511334678463464305626370927126248301006318277641121827533376489417848625931426527575927052164574054937646673685064668910011357632104389192318467595458577793879572804211494038563014799950353813299784824540512061354563956041751206820707688648041396926445054188791907436232420203708247736223533823133012103213387038040380440722509458083592886337295426709208508227628667876495043420926448444182577003214610157653180872182115714975950492297733097915311159606900067893793697852408276921037308768858089772720528763912334035385146684958381112020760369704013795846973239144627472909097216168134017134993319299539093353791414454628649307338389447403855679832098829562016453396655227150771824874150692038014831356911952694178778786381611297756078531891930216411485540089957370338612410084443998576151211838015208753918008285705690557940069219094720722872488373029369334086337532409254340020926989767096065847061611570483321129999301058216157172916289021440993723109279546657979855065015246789028897260680222599380309845989197727471373224826221329463754068070617192631415026224337451632242913066785133701105674807073189082451810258723915362770195742457452988335348498152919827329425179229712632360480426032242951485761545472306313574256026491149900266096476829536651093039214103163103589573631267737185220609693818833201128978581726213399163159880146297711576687761073526829643816412599278127282195075878283473440147658759773134967235553974528535044365964987738206384641759663743637477499717014420525825434768963946742125526007897733473795822677149405660486302706702508643202818079254421547130631132061739609838028587438376639244531095309225778027549893799957849856474376749822670852304252764725179699340077861665318713882291312232699075154699924000500100779481548200661831191979195230928198637829927088640547442224849929505480529084660728082794458984370070850538147670382693435880048590154785245504597080890130904933683413204378918375964604480534200345839696218400537613407181071092435866435246219216612594844374105284951064791410584549755536677833272267510828966197614618859700878597659513671228210896843593665171395889024856312293840446141015453980382265007581611927488125857765855492064870053028625695499239450260338296046483488786961490736264162697142430271825297933148647777473318151417566248421896135126674117952135114627317410629793579444995171677374501095481841856682806274465939193054575523941121589706276576038256370215010353444700280688556766210840021429718321712998974736948770276661557500296677170181046328371669949821339105772308548082278576303108071592152028515568500352410169305559405235219352588965897641784001309216871780940818627575517138105926922943179147766844572076494443261644448300567126439994536063604380070918480733635801715122464752925411799439949724090339601045164045237894154323973876766524184835598472397465959078663099182757345067357389701395718835300045234828034773340866116710591808588169638799734587330236924474958859496337764129491411622218542368425059629540370854016262905233662839270059040421421156935275982431629813467782252843412067556114422654982832482724515769030413113749946456873135614031663037029735956770500973534217611034916225816299875535693517102553229094098458534786619813384640510249224859024107672718012965358877139728959659414103782853611451422133105658426967397042956777177714301760778381681625720323758871731866992253959952732737607246691244369610176372032059319605493139584610286123672762409579704720890589568247356525831238203119184947248094396015585431383129331037118673266071001669627403215097304297784510286755356789316824276744309852879787577800015025436295420806068313512994637115559330032120849732716941519299386527916103442972204826602601633482011979782347755067378117695350731292482723478796828770822071805264638238791759571461726638331992894663635347111341778509313931025020364506845834019357270019126261383120709800894444030276324435194426757072887322201243053653822211251867747664295739725902030784057886918177203681795127569619652460409131390170358512305264765535052040094192562786113267462892207613837411802909966894346677895204964434290144368410654339805979932623493478203580190124923532680777576080851982195002067485510609150019532689073463657255705312043032758507859747290018387816381341698114027162984960262796708075892412954141022817322814136013045674195617165905872413168659553551595058299652943895626866246402477887327224191377777303072784425497641178377906511258671150089866374136300062595237921161188739717997723381716144880094806276439832215096753554363768736096029169351804392678363224346199612607878946355822656053618765797981794613195688666659624315766868239714004305642711360818197612980284444681562384596095269339745055198236730049419690664460675125875670199626336043831496966773699757456926458070200663300806863720412444349615890413473628252410085682671196754636085258878203826255241472456805729824117810252133742714470957543227584664019722605130510113357541603568595877099145725557101845852383475191140119082919394931553071243331894728416341781083215037991790707727638661566718047800758325361833222726087664184624703995530174966307599551679876032487400329070661703674588690885053702599269080111401888742849831319392753713388452864338765610325542201890288817251901025647086891376620938693235933925321676578215277059663528758185494821554400594724943260434482053440023153799173443038366203191157914869155562428666333181396088029258941231861582583847582433895370645124774216622546153564881419546631975508559238930211158753545271988798627920217339178829135697636970961597723074297658247579281445969808213559220174554220161935976120852434146404510151170613810992326552052916244989490456966185103541781030711759658176181924648607618610062440753509797494015718127026042486536090591261235463223634560487191895725584116429702961290268591136870512540783906548284481267903528528183060028554962436257481907702461235955563731481566369401732782083317385779448581622677704540623950299381930827455841248218763127072266209421358362333597152071001768209799425953132241294658444427224888319764004936924927511466250686574882018448232098908437855642493516147334308769078949218846951296489357738048555606106151876245735783124834982536086449530848165861970535714634186309659811938739695112776257375417242911303511129448422596605703084868759616251477021605302520765953654814099870015090787162237203669654127142226406095285015830613718477199348386552271010274027259751961722043042373330250903666056944749233808149441736135827194581977443649415764677098821247199835262375796471626928640610135308351623136244607020292004562599275372238271328937058581958635670706711829346116594013147057417193865560759519118049119660661002780413586288469712665162057506051122922294164954286566091228912238556650759186269628679019944448029712115374881598417652405188577463943148683307327263396249427027623066067412908373860149510966884206504984620780572528932381431329633529030937782430627655433600867641024485917138418473579280842459131180430663970026204715956413825841393183622358428166112630629938893122659964057458711556439134867761835305598909888568478898409997891582638820134504790713811109608515982236458306569733578933254582777049835773096320399894230419839805506179100018335913940192465351176379138974771420842714333295218192061901837937576572788454725173979948825024123473744892011510597654075457630084835095140119602774858291687502297339593329925142827066855130995658431172101465457905746762111433182849078911332084756673629004061823976340442597404400389258991047575868665018007716002709653983700923718548164342323715722179395041600483088941625976833531788632452081176525902424941572182156195510055750873717600190740723779556408305848796524034795099375253852157125772699652726040625506299710631605736820179663068438364895189640569311679063392774059616996359866848741822596491800912663739988962623700316135530208311412955772708094665761746924623189500497333980567994560974141156163555818044336191054242407667769316577717460851231257268211465592242987623902667821518501554358666499039473044973259433535697732260363279000142704835677834360960237761032450358942675305914943133281356152090652787157830970075007401250350584249349194096718745609249240209390737494449233312871642111137646341263779818614284577594309627344605976743671050873945762620736460622779715576170644223236011724419015970576169918645482267705249218737238726187970902705902566818351888083670830658530333795432722210466548791891228070079618979539730056610968355425528890166472056963587015192577298464491443547244340561983947559591422324878119431134601260230666304547010511096344069564265144126453791330664124508438321761836070895597976790898755456709435755367012563716382424606798648484595302150270760710340429658854737300874697632490367305767345105827023158174348657274956295771150537968852118806713919770983695877975818864588745480410881285531563616226280440579217277672617687223648668364380366325908276344421340051958159381314541398677700201892590023602298247015182401287278197017275118684041301355369123099834204557504438857672523626401812787295458127931731639472054449465323463946755668865990271244054917231323362356675522374497815011207651826228843541932725757136597019631141435466974554052910334719785315578486037991268564443706450343346497573732773922083984892085545678377665812150090424590917383670529028446170055548616841767296403590375919120422568505526617820185692388968651811998481721855674637578508740642022693965778047013368003003945425877221842607010112946714905323030809151431141160101129294964352101873824536553794402901752094277190741007426824342261137016813357512973253308888275605668233580677485663487079473195979162690702886877400561509792530916054712477002536948421498476787254331708828729096404932093929772813904386076708283493122380611507123864940910413778078707756114334113934264099392455369456438908521365276330711279697996999854783014064528680937492350571065536845035791850995220946144963106721752761012771028728903216403066325938757429326231197600163871497094256154448596261821942288155119385132213782369276931415621834414179161957712395125245445117926375492992130808529153895344935480880385919407949179024767980006779397831112549572676290284992047966872907084971924239018586965905372943993777691511306867341004706406487922767168374904801684538526669783089608225162201054679992861949035688507619070672531247863998749343767130394133979681621966805150838337273886543410427824913084140579117735557085186089460963365211835496231726720113934569197664849086209634841606734309686151724348973104257457899273133325173650066451331891219300877377729442372314345116652663120961626009531101373865754145300378291020132492529303133612200271436789112016980826290290716898615250747827619536252484349723139129064749062511871570886152198195831060746625783525697890131927426821423896281463025441793387910947507189002961282232923815782047340795144900061615671726991179022041017548213245362225134479855199390404914156382356513277425021886818496298170127921954104855318693244570619627511835208986650836642566606532374650461846146413607997089894855909278489922214630987383958334076982643818727487366416247081579877774306704052126156304348613584549303232508823697513044203067482883425642105058708371877942482282658737232522227051436688870092962990456671353624501085784845492914396878875185339441843163169291615997195729865864933346832844863091899008626354300933934540175806997069684765917627032096892391170779463769980028635404158018260932778472009838862257773772324722152800441074530561017400360863583565217160546017597524480257624857489694201955763575585141064918148933063027945441283230427090985736467874429697336210671890994342331735537423703775780195259157889408872553856527334178324376568958462984499035643414277516523564110603308138953321567814636829544622718804186896024848371408117039585614919220265900657091578850228391400053365100373222158124956017847090019481664801002104846334581696244120334274950415850902732063055871984295144523350533627130159494821579380843841002690662313209076846027456542939591959407319362077452402541695499652128967674794893889371556796612758849677343427268032250945469684438537685979736639193535769535584473913286850948141882140972176037877822361592101130630097021849022418591654960520020234364294164380316148074137827226365403198252649648023988932330953362711322855054921588920709858147459976856877611327168326602070976197647480901262129784451247255047511836460416209552253327608044275991823174552158427717024661665888807266753220335033931316215400976190303829552439030011913498395495921346202921498486974684787882033237645671800696578050165493764022332667571643606297334263536733885302798836236172938165250400186897286455917985441777535706646181657223128143846978399138052135932723104445611166098592794344240100249783024101641770545665065721597045080627898168838258246226662763627208965673363736181852703412861272953174595777608104287624438893106982846631762468250967201556816261733262753517499228210124262368828123391156435223702531969124355422555852007593726786261073429241122639124998323692225097151515364651805003869024429173986912019670389927512897775486737872686651067626039106456623373875220053475007019169330541022612341636336664535715874559943044002935179280927650938732804603600883943200511031124888721472858465728850189122381968570050681858594984071736351241229521567290051866656975900918664645052832257000604609266528588933912851474121903564865314914563857484994418091180141660614151467719325341791015542923886875859907365946818107339404896902303554621445306279668239992819988810260629098219561176915612254983624226533983045150335312450024451401220067391506605869676374528694390457036844382787556151939367495433882181121020079245124968140840248204082706692056523847481073750236268519318097757572330517601664069605872084640409379763928304034553336236825720288311951623642208016912739605034621231671426620155286371854798431247487193286406527062263345880989316401093612645944985440710498491179173828794692390109800652838210994231537414895535800878917283765255066335759742821689999207534597400969325522471684642134725161309199106525198090504159401876074329533110919741873865127653294215259515354776598748344399566174260279649595982036793107647101873111284647392095201420034059746315393723588215902041627546372393386097114889089985832066461247070499393216972752143697476429150409522127774183689405189723251699410522339149562855638411715716772995720836191598235688287218178807793302910228909330986898844277557788562276327715875575690398437169008759627868426770257882390708454271583870559834057176938582263791069870186519356456446773825988810971887526507449740036304032191352858026417838820833108141816739846047578655237332781981607699582404265024000926476158437113160530294493082821354708169951766940186935638720312602084047968391687683757308326203400080416290322091915637732544379742545762311810881656180157917851295770268627516058797090375194697647173072313917450930134644096965115606145893388258662554514273564379109015675064590620717595381460239518099435117060127054983595775598801355308798432210193870550317191063003185009224252651432422489179238495806291519234977781679269182127696899922030577376816929959890882766736172287005371735954489395446617769555988447436977189007913329884879376483161061191655409530973474218862048305037551875168186978911838984514087847257473954748637085425565068215735375935237382804398259392122166154583884126586931550146970902703888407011661350172047426721296580498627272008875709807759028057090454646502067346716250441612528504993611924572491305322704815416612481759576268819282469164573008921632374667810815647071468781209892158203288437258171163407830295790110128747795280544607588787605498105560100284999399804950598974220065470566680999562553981809331117431693536151073855857409910341606362428827451281607958585386668606469891424839480940998653330816917339875856593496810979358293007097169119331562619333622390750805983408439491935448407176035469021121899437936082340860482667312061362519487786165329526954136321559278690899592289699722609777255763844733555580347943482553778008155839507441144852016648462170033777329669620026435568596108568756009486284570137629468753321601449629077829858539264904526284589813474689190338482445153628399603731785291683097971262618984065792188472317368934653165884420726056041286619625974484751447257459626411924447897789473386679029692212171426664192292391640982967428924616434026716940392018997389445960657927984098987854372897799079206190706468680858184845411679806410502132704150975894011697965989413849765404045159892834783388483884623121274443649441841350193206246372339916449620423479104744473680638987553460896213864153882400580739737726890513297835044905355987118964228161119701063070114520911472743989529550333980933663643257516537726029322796077711455041475784171090007524801623269452395032682915428618331709050720039274178903456736139627060713027247408227659169624215525488446095664505060195863662270343458917097398602977958491314818067935130618838103120398620043717031146471460487731500484806896540628431172893706946154411284287216677594915814424201231058452398180746184321297434555604662083770179345975616893395693624068138338217255245984737620825336183895803129500854029578756597366636364679515873215764179073594425878721263937863508471006469066237046704184062788500959543453074957923798745137984441105297650459925718059347464137375388080895667294354463523556673807112034182088126175213197058502147924675779366417993528507582273567569805102903280891124901043535863333682277652991376837168519512998613342990815149176825038978104278059493693578400395027144730028534032159014017243519251028588827944981313513484976929400386724970690065985184844134514513210628107314342067561133778730182959543763261470212425696122091172307611967110369656081520275660565517818687907926943498271559839535971279491564307211921338144821425278945695561962164201380878014340664678274958378773133190924191059040040171567506883531861852762746016834989537127335724288860322878318682541947646479469643629515949415034284406219898852127203887561167898331850556425062345053354186458330760118957584279201917132251689310025363175507763972705460622534554746591161652294610073991533180124300035577843077794610633587334052573628430876368095636690757218187627897318801721782659427734596235836260258279754900323072441398520291638475480621658324733984431811680568602125842832463208389692362780781129250693160964336561548158337884523306092431435216225134044465258621822070049579649254672181786992390846476227463863806140735694338768879008680501242906801206242730133096668584787338397094993157929517223171817578872719111222641875649236280105197275282073890194291957782699545182884590621626272390617897017821228632286357267214775013530181319237816716706281196642167212576289580887570354304256080593814845297312408920977863916759188692847516390368034332929193966216002961922329591857584846800214934163603224718973934189176992138865178522886667084020879973632595463962141124487108504144527406002915061505594251556949628615455822984789278940020557826990129793337152076002366695788210387059104588393938736073753469868827988035138239932147778197972362736761102021622201409714263467794373733662336509304773212554684033575654689747762355319955001654554447974257108989828563882147309824530657580261121134312885173272274253544248175903917456547877934546125785514480283780495770752792593687833645812730239389537551523962806444232500219994658441426787978541556137198501386665217758438973968778363833287244838496528037750448628037585125298652035491293538757801468500819857004088281777984442493138535429524780921057617215423357901079064168822049503691353050632469544463880289242050499171798258213551677469743524233907134085524567489012672974329116155294717155152173271073042686181703641971463904537741957637799109830116875088802971229643115071439510319332804956058446059504387349708686522478371438598555431664771464374989104001666031231861705134271933186240275108156217376460072407764504809998347465755413485733926535309989246587204463005407559243731120054741093903505893275744466919346442243938871817079893262691382318554531596332098133557649024411132455358113844132836639383384343708171245473978084422966189560633963313157990052636396625644858720093363149280630133337542923370540261670894404970688255871439321666663953647204980657448092723723658568119550093521366760565593605667775353605071668734744624207411285528381120222816001471393106053162650046899920078239515411567816819277051174960940860917939940684836148890427768032247473443360427635645080331483529131555147166324825159823360746251900918842031710913480180711850307388753624412812365169453753267180314556010177180304696374601598431302515747876362676726025194689101663684093552221209472444754127616411562708891798262698308655970843398216252324437102397950525583359443043319497860800442218203484202219948068343199345761592036873130692405465139597500869670384518878206580765008496319427306339713252676503037791988046228900638840940611047336273166490255524369887363821429584333265371499865716204704864819101279057412199518810432029822578080354517603965016441137962561355517247807371568178675974471679699079751383335481506788913268598480006879714391427506439398135098092355224594948885916312888719169291484622735319815376024003386398749742355396486558036385196355106599901422903959184006107587252343943295965740135663754667867341613511343853696266197198398784355092953445013288275791426758491020073395774187218482097013826754340403498240451067406543669746173816383640244657663182465524868589716270071526280199128292776021983183882814283812706552331944922913819637466390132454566106655619663031333854979254878547600610011450137466868061189197513509604500316977457635273061753999343496210867014337989129556938269178850954409883862101921358077533082891884397434845332737091929885338587925760379701030369795520540729127774585223377623065340359267835053505594774534489582275878437260722007635098721056076540408654685381209089459293710143018335256641555718606140830894894365790095389682383676767413402371259569573847963534591163493661079452494621144557935906372789120847468829436091272735333296007291817548751701152796709264285871003123727257443647337645592292150966665522435759990415199295838015038003908414786889674837602445230789841371882675886353871337659884974382393578487285478945908452714143094164035909304168632551967826255267702017110530685971099102243092848488991577329263051177869808091898018790626593708009384891244748945679344289276059297053799324441299732556349711387100034289813898344222524118175476463189022533044313860298358542928931476793370148872411447551589850779059406489918370557746415088215973722003591334130806645142984316722640010146512503531321443701240499594102959315886741305208281714795639122496207907778307596975999831197404723959511046058431626090527212067940231906548078455977305690940228744040363512821232243385131920516447345622191446567637279661404388882971020128851640026236073652340486488879048364881528527807455320089185936440653195773837723923616364745011534713890732340645044994685408908156979793566668581112262644857100037969902627086698636904060014978236234179322562128319768059343190969955301922882287990693375455566363179180479027214171598992007124188649249804499242883722089923785575396499289459725472363600689927701293806163730341377923464701102410164261097862097497720373821648852347360033468816401619193331614428496507132459703157164820890147820890077002359486852122036797341459799125915130457416743379878440375944074161184330440315957351517469950241829927220173849596233740864225173891539933364995477079553081997300336804325390948427389392957013394099579196039275364732240164380731779702559569075823699520047476204410232742079479093510678401592192266680564975606040363232830633267418153420638667891487741508579727419318770705886569339918480038479151060625377718008634693179369007327285522252167185818046872519093894039367373738753494620336670990828650911603957589080200789917477902654078554404199429684703660102256370163475743193376785117324031323628888776423370973458816138201752427997885579759995214597091155234002850095756509872239755065949592244588486566492580403621023364256874353095853074730002823966134985038812038777855514529979243414997081074484713250858171111150417811096148285669093011671754086212522786668608097675327598264415983914821803305958144842765489958124254444140070228015917239625399275732882799340403996020184656470556936950000212447549997680666888612964723158405222097600440220649983735209538866327746447973706322821448341311281174670606941288802021976829028639801438172136423857267054009519670308211568767181687857054288249647484872097695343294490097161870461241486510000573126676084879394581087703960923267897608907869942637198620332662073512926941246764153199665756595675892807721043676307477136935723880763794134091273965257130626688428758630626451831541527579046071103309930620912996429180044689388665297093797764709003543092941783245444599144862281191621821367370262508292105722899277840500057081557642385035239159733598327380059484753541643334163554004211382636627804527756631426458638226163617333573174669238124382431366572424350777284028013073663114309103084038248419372295649342613656470108731357848846043000544800075088838011499841716398480518518322421980595946178257590025557736472846784601410903140129366340221658620480681369416513592193446417059108317177484705506875585802494752283170627391521231012531480857776940389738632827749766919170928324488642250363047784253915243405801142188009992783732377602537671503266822204481072044373008261383146593220719727636777417517370028801777344002531449004432654270947971755411181806781650909209840501013556514466763014295829443148084660101827123402102823022622214060570522038227253080953924900182044540807309382113232088912303368593809337298067408817165842023160205652876497487079337963300336936980022360190613246200972645021255423480128228816187454158384329219453361303228997330066195694825927352538078309941911847946693228007482121182414346583244058149463367376426915649812549032017953203170462853468816753154621091998295094384211567005023077835735057028276804402725554906681951941626421497094741409459292044800328203841495703258250998180831820694546867453652393576363709368035408529753452034325230135960925813987527110718709749922714761931432954298884196317808910246822969682486526943940042186511879712531694157788842599428498655653852690694568295361439312197820249610304340719407577027623378126313073463088170359981400241310595090797538808258323883993234445281356625614155589216398162681686823225176581054646673190343539132011245994092380002000305554261125071766617748274857354784992951624417471290662096967968494176044292438589197665514884614655624563271646724218725140806390758762090136425914117064686902673807525182021690923791875227618339575468679885919193495923974117246171162606059062500882527942337205312921565122812593363779118685798406498333829079676856554433458632277715923461101942788270245152463673003401151057304828066388370523152178676045657517069806653009984180125118896243177919440570226033004592676128854133090961543853742661034176130602254727404302135945775810774067297930736437492352845966772206711070182222517004046948996219658697410939758818705645541809433086438411606207389814505718945180950619876692472257454012210856778759555479076096777948919057662212661084925127358105786981362209999742630659202562483019324717867980377244793702036055088579859216964090357564925629460255046190625173043203486683895152021468937554593063288693042148855740053636660047761529920441266498512015979981249780614453495987461319654581740474884746920934468268066883458716608725107324448810225575503584999069554663706211147161121149267683652771270548173697748612759613150928342926819712592993145563302157588820588233540963063849691305895105917896174112551110698880058658074080013852099610480427860371296202503590206396299688846340164512995686342324583823008109026734285532103612570320278756852034659604833684545285752591614212444059809914385698867370041609041147820500081820524337829451429969221749848633846880242703928455441051352247256882166326724716896670220901174202004334570417353406777197272377841039278828582657024792736751866319571719951072914448413152598585994438169120726531896950329035743371885491456092258418532214076644475716001460112078855832605017272545130768940754770539338095992646433172343062952653766922354862990352671433367644494241231979691925321952093291887830155784373101209926542952832796851966253648308708865819335617991676344580627416487130810666398702337620775260675559078300648897895219777178225035659814445510434179445633047994166155563828217839782269587713643217721979438631180841913262557427348063252179628020552302379194817830705221843150277521736880733969725488362682924885904693647380772033452576139492398899824886963972302310873850051211161318271122538125908913502275318966528565916019906524939256668761080317477012225726120836590831718460437820627212861746561251411019439158927403400761204786710943177799269521627507936723319269045479240383303317993163725530096884589611186932014659724502518467993190398954178431043416220821063606628508788515717315366666544970928307988682131564253184614441211691990269753885639006374718759015630989129413012893571753591886402164514342087207843227243281483999957546259488652034198638333461005719399120621020862085707301677161777310488333457944653469438593353996944700522044748291751204789204672041717263662113196551974219030919454127999161421768061727142403441559651910679298029490072796597370254603563763496939876825172740725454412948049074285971668781743117541149695150354528645684199538513913106396446275334935468159456916935522163987610422577504396175530499728020031330849387079741252395114146392551578638462591512748495773797632034977666038058089953905392475073576149836641064893027803327580806656520023598796578981217659520903767786309503909505813260566600963295680958875834027410356056637351460645061934277952013033724749953239226353363323038390286817773064725043579309984517776018931251486551250809274111512663315937825283082821828749460929844478577386039591647180516208119191854649969895101628196558194791111822987086665702085141697039446649055565407530771480130321393589019042442928193006727440620874635129484309997235177800726546136735655864557687123258317326068019189034418960094382419063584331618844609498038710390783627974268884116385962021573697281780546425391379878898761270739327376002261938904248431969355929138185281906142031490266638972377129297020959721615624125230026612279833704386061138595408362391516252061087753740822886618229472097387195335239924315255739525463622801976718612698576779811398919943847628379086889412546926782269198890431403265848839648911653909761339200239423183481883451231524249216529986563815214512871105125583359625195592629663392964331794727823691622758926264333220263530589059551669492407620120186288661562029451246795003608435662045217002195551469838998093590307844044840530932287836640444721457433474874168692931198651500228125491367673673740558808123362309330147227472882624768467316003573969935236085980416836690583256849615751661177083878149538467097331892783872627211590907926789714048652032944420919381675852642557309940251702936125748054685402324033381597515188788559391537487732435604677513127819646360465203172069033958677485243240748187119207550017901289253969123910519468427590778164180577055535345349066715460652592218317325564658149821659784418594720741436267194309594372986771868895944273515572922845269953615949499486829241248024521659724527650288707689805287127056705389802869161139373826792765067874564454491608244919330828647211590224240900821099949122262449840737215622785872446297773527983005051906282610971107182240864407803732040452064527042559893196038044067049131203775206937722295760523237905768627531815344962578185877636961562365105425278798609487413361595817218548990277281668291266938652269338735978479846395356895377689286268015745523256916827179508205667581695428538317689100053819576300481987371678692876897070043547006068627207524267023327652161179464923554489539844283470041057425166072936119874749520079502666190633028938014352498101804401765113352182556999010616809916658509612304119843579385996132539722630327741410796184962315617423182496844870543610162062250914795541793981839458489601159995540846083771814379321772213279970387595284473320266098822082269402152665695275096356002010163071594039734254570683328428358496489864907928920701052787820430047782825159263135549659436984791078798315011061694560032394949421613301959781825303934983608891963039815253616765053458251020896813814282727559400451689370897752603203038663960234146464664110915933112264637390710599241949321241891019300138660302266614535971501618300345051782514262650718535074043680202909674828816348821815521491995397631519332472995774518921255377401431198849924911500689345031354947241322232973226012127459616842853086286980126497106122340359722035190088342910268156118235385022299970427574318328726588371780639185255166786154004232966040345521362038738736590534971382703708592077527696309505141880394704689058089460942323361921359631665855202556347030502081728299404029803879978237290633703762100453565181808057022723134361610993612374137246274783596612571174518940343351949723844674847129305995953898631743913253198876426997153443917450047510341475830257200969882207757766662494994246966600138222602145394436688201158289922345100827155943895418793656892781350054625242530520046520183722972762006856912726026631072864888862196338721284736217348636138001616525086382648731200892595857149835771021104589998837874009825708015985441041415611492360723663091724631450405824120112955879970625979985800223609601460455929336797910483842122200357981521153001263648728977729846135916401330076302302558938631692993592519689784505153014054266298133263279600872989909016724782989373361463470715092718364217124096039062415127488977875297988274573348834792700499824469925502977778150273080698309027229185279920716125973693767601382195681739215686819588347031416889660283250262699262343290645157947125536545084853104269411414837022510313911836470262138103592151884372673856973783217528226144872352384304224832807028533261872203023871263029408761278829835838914375536654143468418035525282266121726204943803351677126467508028118551057969514488640831945200639319604037706317614266745603664399261020944607106199290718203926622085066688601034919472324840153122811532744623623167706876868026615255807384473224351063489540065518889915354654312860114961578572042578079435227416744595749002441961763602345333881529538595336829261025657876384387315167825226949014943532163755623077301008047553324388646945061045168447216614239484321070996190634674267452509778833295518839359542938015968410025468629784727655644751307133322202314733038924571250432050736612037983103112021991382700326691719758895994561732922603041210066428064938304805935043732335871343952895870767961165899736989440087340844995681000323936683685677099742162448508462271822747536745124770863466949840574148445490996785672242574880395245677589652172935744392882918359188090648929269692528544196607549578775406517838817295226808477823375871768694920800787903227531476782131226983834945459588471247625856468343855791777556588479075171292984227401666641772791111187119174940253179027780685978385903349752117928295871011385691980158328554572137712325970835560799033807296094906636110328356928087597700018162964246736676819493976211148152079247472911501324337644698091886872726888958762211945080754332041390080963826226032080337605603071276798846650485731575424123680684627641505001534963991331259430262064844186493741831918958467853108698719582444297155410933996448435439246736578643285736377694256034538150096155520725139087720493257755388443110410862540283432161147108114476094704292809857209183790818392561257200419775223755142832476070295662897000595618804339560523529365592357060802111569995270118226474068619984672469002696450470576921500397738495169695490520490974376820374489520269148279137257737878070747929347525221636472735101527934500807810623672362482988585906970064753468059360803133397579138074414458478999103194168092225949722483422465610693183111128295680942890851891231512464682841657354473142006884566415233986506274498047611187562736719039708723716369007730985461789750328368941243561290892051705370661609685850296786690133870573870969994688399555901943666027301901991125457982037182994364231043685815041477124458333305738555520229746544315576682181392527363063898488406636065382204835069407482878750144687611976546822682082419515429097680073908257530892661057426252162848947462906556736334894486905639798042417371808134359102158303479761087117028465504354541878956820092823372997026810360772989792712594224509079600108941572610050104185590728186685778495993993559643966127473112649442740026446394232320015699360454531717672507212959163151136816435649421886749340531709235420569344239430303306117739420392314852570349653853963704919900852796507412973195076483277217401868110092706190462729163544167488933882449278004064872771641635134002645597221438459296777032464396206299228481086008574142018074383484271510104990185489835344326781772876566537213601938135210030985376721332602739441060706643618279396451935200133636645563003995659984987354453163639431590666749801675175753311732698496281855397816569626240648153467526988031023192225333352950065646319399094232612820445470989181046688569267594440843113930175780104311209390173439560945128501799554346827668883400376205598010736867029581779379071662461645295411247386432410920272194622680941339995516172217720986475906087816047280731081739866571147735679760779541911782831027608298947675933057890280745608915493985160296887227304257131584939173277743329103720560451401624496209544321559400952680191565556782828944674049929391617061651914370826373361922573353073269817343871673185283100006217743840210370963453348403650328358965160874753712797750337401503798442479438768360728243472925837012707634626618796586037017221252189625959369281341901895000281078494624163937686793453731630085998574761239169316340307158640346332236847088681471578555189889239892232645547405627562950067090781211968059278617809888808636484245236323499642644233490633918583262850872754912388368704275975637584204632070153406873284401285634754000262939477687029784794389688400962821105215760582092067054928402927472052898913981279846173338060830652342682166119084877792295008680809077060168965856675391538685458119095795691379815090188188411884509396365106364427743824363996606676564586027713572242877833074012929476905111972975909065331143337771438405025391285169183016025659549186965582457473205600784690881795588368865013927318841817110406820198821851831178596819637011789301416704345319158076340724138015973797324152505293225117185695631046703790460791666073345013589872122317217190080049471291192569945835045510444001076142901432054427465961255606935947815866768381096246130915365011551884290022364327999807282797536945099012532200234067023887484614217912794899857543236586811234559018926362671482578728568105510248812528592224138648953705219678538414848221159290790793778677141234047000903701166825460383997135238133500316819748271372672356313054608952619360325711862740563731077722780065652246334843380783058881486977437844972797092619040980565163936814094756768827368287386165505360605970967788394436974533220858814181297252264911902999820436671375204197782304105331679577968789025558867113421833252347060518589011223364412514897859276654508756482909332283356730527305509187096317378057396349435034474495023949839559827027680748373528896534714344389921430085294016608326267963359313433645503722809580103110520047273155297320392223655145610953415458766854651201680333859404935760925056852595009467018292291460514481146223327183443027583210670974107148312030332589858936939404262214532776806296868728079139480272092046506265730076661962880162425119598930213823801769161189386214859597516451456514656296349217855036364222616963788525343174060244352674584817869441456790846849682427232702845402770002797601982751284907450525498263963722119502501951222682545158206202680686878479003895249606781661486608006363777351306995691227953859577241772105712512858407947202061420554432014472567369434829957123984874308013255811127193359243820785387923346765728431105230582355707985929457321036954662052124469042627008447633196325889706629157271807579885370843412876539543779784040296077299560556402822436581605843341646628095576164066771099695390616891696465528423907931221402425279382109573272270601807303286228509879007460695490464699499805424331282290377650319218746325769353505077573209890570843336896791753852767274175223501958424089193928897682379666720917800131046879267457578446829569088624810673005707534211270100463530067578262163932732209114133931119141590731127262089099337484876826283214752841920804306336977710529857688006827056691561484743211637365386560594608046873223552453931428452503279359682267420655214706373526767806596841142974539337194370085524557731160404388951998409029784604579148226472662073686128013990159330534395862009236839245017860201227313421699961730955689375055633442287471508870231747756911111027583910596205119951611306881326255985149229161148704005483437382457905835183395816501874666919254390717958020659375303485758161503680405415227143658821783562213641758278747246512827659491354329559673556772232024087119123594470854093362022513293880421837017255632024638851281413810235944921421443227379854578419677088045819500486033295965346159925898725197198080558664594999167558402371677995102080273599802409121143339796823114712040611211961479594350417364652039084830585589620735494641900498146739249311248670853209867934675537890097659593718143590763329922613208724290614701247137017773854389589544375433589364332980612463250704863951297105825986078504268847372867292226888682467908389023436443462247147296979045379912168850397440985278639943689542785619642184185420502948112404588703203290824806575897301641841771385540497168881057498201067397257312894865330182102141810745909921995600834423049420364888126822868923255656724538333961037234101988309019072353503255407552295193107937012533835880174780917177545633290556801554879873942227576123932180011981173090247407217960020922996222047046061285992906613996952565050126742474911562177561927138350399376958065259140706105486523345425266575026955819758324846949273075406079032976203682099937544668664512121833376056939322551131795075074288442559911561356214052518516698423251212807395162691902330209211230777971552085752508495023365720387212801951918895928003911212310769958694578879557699653215238198659212342160382046406538402990559666985124192851453060373604500439146663207416427088535550140018170363525844515074507215909783824633251438825242720783052262963575130925552289227913133409109235563298902446125574145425907274850224320543117559712641936219577867638349514300904392373127640604105735304755998413406641578023313758160117514294368593447632562689629242727901678616562523570210863289773957830348568683771192505759859802119145438304950193347268663646598876306716707752724061557292613605071572232543503390422759904009743631352882952417457848230469776283511718776325553389462024428014394850380184604957486333668824339276254713387149474135219239022623611212354108146215891688860639728208505202613870447993935058581014172345023459660843554416277516894306492617848766134203496269628749284801487836022262410256602957111726249099644313489586776153211557471623972281634477381755275564559668763252283808103443466703322368128837863322254969476914581190483530511747651039900877157334766418361268859932575426011196534156503701295432691802557459811928994358745384759993385367129385426064918503132014588483452608762486266889055306581703827728389856470738757958687432318777117035284050333448403691507310799511363619022517464609682069265155360991428244316642362547458512076068810805882613557724079424693870414023901630708717738849434602152840884147318375826323862788968579209687511693431485500716123416327517499224955341961116748700111612314020459520872432038980520096535266771662034101276952321172791018208222664815981601248942275811251574513772330564794549702975765633729303705195160320715919001838931088859725846342334699249996596994676409897346762383564326823509179794336223522919494773099042080971552062380154018943602645368372165447877534498930323870608501416396572445631069777736554135208386495703192536572035363663584200387784846742223993911105469832926138409965996033146029784655804229966289620821205120680645129843840444554480155011506784747943762669477874588776891572395116952820240629105158451608355442317564207902259322150226182571352765097404175224940242299306368745605009319222158731810898748993016414323021986887998143273939919954261153016735631596904719016605745920372993464631676131084380597797163057482538097305528213035932253296059605057558814119777066691902593604205176439120577405817917701073840479967192149837298202017445416818361352348297798627837333503469040471853276082145277593194078829651604013532813435518703276838253682988078484552761456370340067213540534758972134284110315315082878975814131499220312009396982774323549647183411468376796553168693670992922151313784597773470840961864693342157864449143728916213694658023400594554184441205269494246092638239128181837290187330010274417277177410219169546070129142602728999831663372512694616527586501995884604585271123348007157523505127559211664705947355057922962594366949912260059087948740353582407781589188428107748239602257151113648751921587928425655014283081842070061395754148750184756358732082554378202537677072428495971269074866612877090709037215666214002810018242186955467714884146462138856855469439247854219599618620187272783781209445032714668975026339151313962880131442477347244294927994547321350232928512524970403275138998631097688787487055527371273711064980356972637352495128694373718765289557455700213171392403393731597064675808082213545126651284372252432166731236557746911852696237001905146913013487791784452490543346666648143809236164497590088096958233105864874463674679318858074530304648641804254178368567757935348362356079285471507810352816792299585772932351270811149631408074406351883291349262579755162417690790781847745855565619867010901970798250796684367504200090541311295521263704238865806301361034921393678704992753843194828203594030950769386821299385362397037795546778911395690795108899698595114429776122656053360900609473145158180447273340090132851055916176809302491746892360147146350192038209583251561779447700861611498861889634332306139911587958712808181860407494813462583489512275868666673137396700767996400669373827150249204728615157211404922982068874699593346825334127260536222602259580021434667207261770733238171274088347353693118706620334054600148195081355211310634638787621253330930086801977024096395880443176446153771286997802689610544700851252932129451934813243890658591403268498868176342468231953820826475919786903847782919702177640551922970811465429917861449019632369520338683702358639904833875309534206346178270094842038765932582793894142882752968970768168237874099124327025755916395720482783087823000309441689860989137175883829260695435226083301071072438936780602057721982910899801152810002873164577688533831864414730045891757468856058136684096444014953233002046863001083002255971291309358702389695242394364500798240511531330599069452296070222752417362163418144534268015037436989889327417049746259879478787003237526085115973374522247608595142974612439537352748587173285214303890993625332243382417826456615453439408553519607653280411879872296063748248650559299623908750166139976923991886903028750184913952485475261512450822009519117677514487640262240333175851805696759644805542170263638816695762975348833342748414904720580362332819784227951197223854454581349959173451057556365591403205232808633640531329849712547920285248039119856358444524304240392974309834682635660392469414442766236694869842800031979173944534401055066824872356405785133300698932693202991285313701160740094218438504647217644887527511739851687801145895289887561975878087590879500270194904501339815643613440406044523649370111227570484469850941673259644844200586251589817025614549249765086404851870391571610475408902723425922656084026912098052475006032620944215018110290350995724042271358477337557623055381800706633740080152433893313801101140376203820545009727038297666129497170598731870595801278086488535764600568824706949757397784542241263592719279891153962253563590119855670740847519943174158250106245627204678044689509673266179604613200101178605906631497201394038069387328519048941799802282878801184111191893490141748609841103390790951682609509271332206546807663879836081844018268369211982960165328740278021905117927873224608169418509229349112289678445056491073876455118366529060835111305355856503259985414903345468035179198441876728731069557976149879028574314340527586480891846653268206940015727727485456063825833563925592722695789623104637142345966353248051734105632372968694439934498989535200296213480818601024753339804804371148191184965191068923200001478642911507427298281493263798473015132713840475151798040444752296157326909711607623617456151981995800019252413451241548128124152441981710947301745131248952247038441936356969276293516430563690301248876402760777998391402725741913196774573044378515797817013475922644357904304686545393406309706550430914312859509489958587918613489836978379291869210200508031100091650427662682700350144407966499327353127487539021906360288551572194878472229763484752142871467785686834135958172419490517871931853275195368921072190642867970694588450772293895040638894487356556893559894455372912291799007584779162755580144418618267895806779389544674244546888085642935313373913743922767123464652110900514699907078306715906349277515285532104056293252007953505480014674805067798240665773647096002154911895913863265132441197139303978704304181138652585083290542193720339644105182567694539724128287626358807881752734279657913600452302003592390499065183516794314849511375110098588574360224995972808183923129772828931961829223836690083780163767041329138564062762790316663926381243546656634165018309286733634261315432693794386539838589791812188922168812088086567788794491527577957761642023358926566021333565460210952282868968390361269849681934566879158827132599988173158024415742822144949121119408492577101611134623212786179857663754906781248993496323170259735150904400486422194261247131046419576602063666579901939148335220355782650030591587221632317924750811826754999080072537639389568051679816193111203189150613468105671931924063437917895203258464459255117198825169989095397212506344173222712995644255322186092106303912182013766172832554002039524082251975954401732337713007789693944366166325294810706718915142683948667908982556918380925605682354177348515745099150975482292976963331559861130883115098924233187540602637528365478530107960688098933450391415356981838989195526329823770114468107979508827478648635447697047625807157923042647582562322550957002763312394424165995952094587240599528387595919955272923490274033475266083774092755535690020727543844981733688337775176624575181746916940088888113259166862799147990436440177959224106514828714462038462170270740123528218775748713921304948228011368785224740165465308170774301277709988102156861967476977381117735038964813085124595139038416143647693913173163900248244833321485999896141046777873808633059621957800775289257211537165302728005486090832893763373487414776376318424073893055935995319471981527034477581539913683324241882316367285626367011062057366183110931209934077129038824161568944838290319118678903887886135862390238792208540622965734618901038271011160073709993412604539713929218128171633039092825487253636444654981863175545274134355525469492535088495637079302049500258744475614879354219912656477077110885649314185113259358176672981497567503462303519687693283245681588510928221758224926174789620343066251299685945562403650790659184863086177328473797260899482969108517526619207011321552103905078046812039651726639636044339684108005147787480792343709490869349008296585172412252816905326913329205335775858725833557959468605033577887837508259165484863049488759253505046981148111886055989702034681788110250446032139270405454106184767713264090221431316478443600520978255925958921330666166184414406100204989810511837701447342375978312372763146310857841700976737985227996898781838141230355939924899092705592106893105534158004067904328049349282050905764261951605946596293091262599759146333897900230720142411210840116150095694661615826711042592937944710941484130117826560933113405014878196167914175494411737402966641843486892902630951505383590668843598839166115989109184728869200472882329612231766671354955863307155111318441741965965629835644112034296311659401633724921745281822844885521855399354942326023594701642351262734817442649999011207344032899650204703045554581682918410101710847376862391663552107730972226200012400404764209656389579880156134502756681940500717287746820334700849508223555919690259400094848459677043272104990592257817797205969696129749700380121738929786115805083314198944732922502966721362540599375930194816974613266887517880778173889931232993891740525557631634752307188270282169401189900819244862498978623236429241613737462556935109355815871525320134451579777911875323320977711478589330365653995961233833891713265632141620440028474569236663800621490576281606585072403039657546313812382187965196130899147929721278904479249546270778735867402590276728779176891343385864109235811410221414298754020005953797475143461387928286285713841595411303018935610215156645437737851593981065610784823222362745431172844885819132474782060454821831804297815455845245118288118770124090966678055925361910480674027957577141462473958001870967140456853548886918113953442793280128709205972889205302891133790205397204103801308417196517232125063360317994036235691071740250626218875213551536841318664450263910642590882811145443244203840588305800035193522497098172440466036222859135168694863560692569492452733972230600943457600084257076308885636146023654343098237673246370319163966641414750454300634699021147003694772003795022769012087592887420015417322471504902634073856642799819037470683144957471555809798013507050112326313348569496979929780874942273543713763646464678323505189606207595441771316743820779581197072606769135370680474107129310236497028712156786371779585340578587270301078491641543460266138075187248763998046509782102352573155475551360392606511661157734939260527069009195843298241115858856721060147325314768522355642741977640172694939576217586904919115871920165359948098206395025577578010332346143191515690474164010062317652306367743501799034021089650322595138584711895740577236284656126235396981642710217705969285436389191105733049111835715703230895862543437767626676265455548045977332081164749496410148754306517008716952071123850426249584474359880449142281008043767890021498504372711801173930521608621367242034729062939897997585910268932614020796717646921722462441485578376666985883518256895697054624437232968313948752177215382839132618544989131310623856386701839908614766781347261532421236439038004525677875696584523688479748201391311655483412063851627678640324518794532464455829036221260096167974380622957967602602021021983350727585718237351614036668971808243174690827531453597700828611455305003284698154713134631358051854286685604175881568982718117721512177044734608853077924273625995721620508070436438326675534823953872183139384350202447439959725849259616484949817054201022347336716205361727188495814195599903560309952427066639542061118435499775399238454845116198575362447016383057546851495537790708056362294010274073327403250017565757999062746076593266907929157195712991260906042126938275466372374024747907692789393584321643637363001464922947544141661070826019469639742720501241490951033116189285863682971657399872214357776070922373034178730534881881040917747829025373865159700005497742384848972546183350997873387349201552849067512709409172582626462451233788892983026446986474160439089031891635696990750693419661872648112015545636559671453093155245639966024812700044034975120694335447046960337079439674986056086401429155041259325016224645880998085548898460351300850937303073884538972679390790382778451729530152641345367487596899678527536609201646957099049548674458235074960927511651773829239769312945090105548217158712921718351840723364002544005739404061081812509985586312174227634424402207708049351469222499019572725615547930256351783496349455988249470302784160334575267725338550474643373680959345417952406429858802147039373731730510373126005928321303051002414962812753718952293360636426298996650702253122946803656749227461432055855001466972603566219543116376506027889661448087667589617058406684637451517852237830520987767019909305458766390713626749762415746456410181506059327344695972875313756938883080572179984229325681345606359838918189563736268516179756644712133477833536054566509308034531723421344339809474879585345051670338458788702184902438200952136039457538775227892439635195016710810937630785285532905244619035272262567339997750511739641893178278694303794104318395898613088002574241037759047093760344173846618943041625095613440024476527760714766654614254122352200346221164097014784590568387554102436356211672731120420292724507870567710294501977473383181026302996829423704579855352238147489369427515605797046011951730290025296690354067119058246417688168947918068044625949958224101990164320484723049688238436127249152829246244620501012761301832752024996392452355287140475716122368852986570388732579999245355076524921626785752419848791101253483032140548035720726298416787128605097037849833024389147681322849661455038598079878884742518052342006056524139554999545160603673808809201538439069345155593683472088770071624577743601812253868787868962088476732359400228439032475144874444679174700233007953947984572539061482731899811672469625746654029219197466578205103280259778712348374636388022036823695824750668574210730125433165987570716629003058451336753997383802301115104559959534162427660272171608732617906745836042900193870453673918949293062842353696475893484610663794424822513839284785732382233388151213526583457080992080235913777690993400852378087789279860607103962231226451647793497412918289391617249488240669369609963649760045834081866922266034883897987774772738299122773767169432127284107214919610251730752449090728703330300605780380296191493207057674022962607142219070795065897605049060583778257157707799671359244839930070974598799421271037223065189032077058807298150366141302625290404768085607156223099685768959518234605494168234108261852201574616879054642939630436176777305595082108589908027786294452563049061322785143852863695903750661038265850691666403370980913546369915557693351287386564664584594350819198941378449699487094527699092988459986792656516581898861721650959243723246013475309887228402050539816862596528051024217161924335687466522066206406884487777071521409157706738079112789892464521921724001503161964980330291569893005357387422965728472824475066928095841871479073411982994932471352715206284774241930174890911992222332683139216537772897706091760464697915148479180250081476353198344943828093418338087631305980010154954476777857040258102130416489901022381793440611524488884563834789792890041544677188373666090009826887634692509622851774457490069381578987641702605885159744208896143698343317604921107164596461865155541237695104271228144316157551301396047278689678053007315306071131011640565663421666522282819875220221517643450311802982444425088669025349310988275795102473555692009637812175399607548925132477571030376096495511517855405305087684909089868040278453223364858904977759104128859605565899509153492064012445254860613058343839069273916074793814337705224633336000368246769482880049743060973596536174287569643612236638062841192732417746591350951595919616527643766565658561437014367749101867569234831456622845799840922902943672544379394837728628112709760383318410837337791818280614795105631770885554709997701544109034532422750901925175968200342661133239102589978641725827355577357112653443516451904578507956917691804608820573676016923381590083331460568728627239202263613001661109302348463688311779717026612708040422502642293003943465043491977883228661927149735517449250461226424200184795185682196416865586684581595451069454553901354017734424723875871389947190257108266554011263426119812724068195960866353751986179287937276493701328854990670503316238968220683959025815390561632735571422624556106456639354093653070458805085213532555727013827325260865190775938473016575521581073436548087138639979965306243359384896933821616049046458105276289485413856630068743729157081153406763086356814990559777619628157726476120785725213412993017673044468998337049756782161372249405199762378073019532701441006954083194902984933653264489155089337438735572861638093756959377329153610302139421968246967080255880638296170087068095037355323321868243556121286057243126387552834537114114568459185997356672329154041324375354575913460591915334119108015791628769080038819856848859365261496531653730819670278126817209344454302703642133319247775147775447559218366944711169809162438904333680047060019837009547586436673365692741614949376515816907413702982162420461065777681915442585914145555392655493708720237513100073427305522319959202034388714896377648997201922762689497614050770709341684343540464945055722714966518821824259464010869593472522616749714506076408722617096057138970458918037470524555343004278604785706429672504628721092063241776966314474398867459987873691996614045927549140647515325237383100790806192819073715324580103681907946173445470122897591510298663935906355021777025163017888302058000276699507247378784621800889414615525824492102637282615370053695594035031396610433336732196668016996867280440309992303392238999002143210952252749730699425570101802617506598754775287718489432237630740071284955480335740052425895707596547792078626730677470146426859958599209453966521792558554351634582027492877008398736250666024561076836791263919949659823199423633812889049420484893815581930816583940040445166899445324865177399833882534886739592213387501184341894511468965725317779217205353259254002257246964245841268173461419240607213451984327950269076945121207506610560520063622672838860285001938525321830959277370298591178370488758092614409402281929919316488995703584827954269659216752153766027777631610764465483687356410576717989985427625215000609834989063968439438421882752596521684796408027669069930524797646061057560442402846655169933457984715873454662394799129860623119099366852077423391256713003071222354898976254340607187501774681995654803603145448723198559058012383098873334237580193073628844949041383558081246013381788248067768334499054616276676180968300766464584031377986602673893019333285767066009039646521329003504690682288636065336839065270816305827793241240018047471459542084877614622324656407894037721853541864459456074447459063907345028563539973295318788295528156578630650925182503613459806055023391771323063766960929451348875626011534875284728692478254159607190275543833434809635489063619377307913472837704868755559552023599328822600501747826690669466403633129546702116333492376214503929532290454962990975304727393315115334462115613750434643447801330551390195950293409762632521020750332510388397474364381456809741612177860158433541442210363261919163014404602340176610692621896618704037040015821729594099364708024586164315574952625748739750070902362226102961332443625782166296570385244559092601237629735810582542566678355953785914335098484558281987558126962937373024573351706014664989143118267382710126580788647636337979835881399193905358322184874303753028771675245448025623557849185120145177663189715774219913147429856817696954828657596994360144700881316570668524246653870684260005893192714141140214410622471276319467192157497333724502789335763927720099785504622106993250916345051543372652216333928404650716982457687425272194192916165569410648121023561918822608855745786263295942131704265648500972242764122980101233293071773202441932406794064205525022199601582223147686108107950561757696077662982173252327485652935134078674750741167364515615792727965477438456040464807064262302445649479833532106875607270289079532180499790110979091020900144334446352431260582288434691796623611897711157574324554370179445025507202162663502661491749125864679438267482530945389597492661881911203295754237517365115188796246120846416465341228507295112716236287582456318167802934679476556195355168095801284672531502927346388690246163427290338331485825036778502972912103703928779355545536399236147972551464987627329742454813575664274938795569021401020455909458461952496708161624108787784699712351946170045411687473380633398708995015336676971492466130384753028156741416692699234922276479136865101887233168902479603966194419732908794176910820728871435136509529991650819682896037354675199550633068621484463297155972696732219183893232489614487176043629848316756935801838935266643779664294775105640090801295898021757879842612955486081924947318125849399441648382713977565185998124317371448423756419565670420584854563008385683083702072879683993985938048870358894458163498871604558754439406988642959426901815349636363703667569799377875559431765237556467494828590536433313387444945515572924890225514323402073996596257741679158097127635623539073950391098940446497015508861218999750996929099965439100375757839112679017273117547490162855125697349298511994109599267418357337049088253880936683614424756423549896501612996792090646344767910622360468487412724295606128458961716894828247576053666497534853095528309813968777982778675215362512797221020497322000373444723282333044245089335721131210753951039375630772744613147836788979900422852381152421720688831435274151938080814787936414395042060337083588482490723453905048840400753275019887349145981763243819367964040267449963335542175517266671091714444780840033585916619903867405369203636177566716035174338575537120867779474078613540894909092650559890644761150845854098024405822221805295542067156897181206140245293245033031033542702211824254753916227508937527170821971844858153560802355153058234438121728045946555629517040841872699508143153901665233080178698208591577873135535472294720837121738829105011120670673550771929039299697970852488789044652387583223129671712071019982482590805030177201728309683018212024544635115844485866924415978146418119661647574333869287222705712333999894600229088397737200399775397171838327235311633375797268949929736502613857445400788174052300816051492221660531171153702110327166041647791260165581109112546391243033176114523401801480975014909626365638630608409554312190848612034344425359129473831726147741618001730747756272499321368609752932236467245289756233180210123305487310973379545097391558132547212821344080088103938130813476400012528684947573964387514642778991338191497891056606119900876349730131122089498045577246764807603648723257145530014511585010478696277237565592393394567868727063342217162550237051294397850759918891031116980550482072062406529161640489313475349472688749280043290775974714920381117844673193933171163613931276346658742174747252889550917674645952949645995412444203232818986892499011987829185827515162989746405944220340340010786088027856655138140891294528979819278238878731354823987774095456400813147029239177895874522936555232202965288572287253201981114276541009588479535890937478016689482206761710509677579773464696775578816473891916696361988308712410089635033129084477905938206865427715680702428472186163460553964753817271418810721098790938874596178679339637453199008051023046695157393005649464891358862064701077863023096036280409348795216274483267471864012735903221861548371865401858932452390428129374389996208124040245076882065106931058871973139488376583167517456871482614487963348168171925226146212995225696220471746702991871270465117864405215186266182207111795530125584500375896874120628270019002553699925889333646186714408840061669943005232220135108082681937817292807146241718002607713337066430775813277778122584642514535192836910163172184754448231919893164808585916624203663400174528777340442886102263441838790675369988297001327722443631479959648261719765871998382619600392071517621158666858454819347729398149478526021777527746923939649012433848968483780390209986972563370246802626211144739873407224705143982606157730844765351898709782759795935736238477822527951341012577339375058353039527531981227080711492313541678688310699250716656665522252507972328745579923061259704498317503598848134531409718358336753662288736027833975018440588645046887967221110110408496595521800665842233835540615462148250824510039872465036593592330660960257409073306959937739757910581443370796152902166224920356013374165177869419626700518755472101915077589666328059106774207630915946397717755850004919332339139737793528434091490691845739519246952510554666753391662546905469651252763162026386607225088083632450339288277376865729500535308951282598217614751510704174103261289879325779582553572654056813367424399235732939941534003280165814963015984580164181944952446941586977869952005116236705383439117953227940060744883586335585918997399176829153401973958226442696552792971970225627198314956502597915690190430649304410730655151224806558497078730193614701671305842077493669042299108418548221023241733464559588498229966313528978386360747522582311275356273296648904328447126168660762345173702942197193049284031013071961201458754492076684762165050749062067601570584879932078140686408062519778241030078526388736824055915433599610646736366424950337014310930781498482341200530182118665292064356482265383930334331025763129494628710019655923172363294565906700317929442260014722664786533267844119303396587246066109893187855308345782655955114115364086160672391199940399588618206166313881043554942539633550961059757502389626140223429771385769813914460203135722651094110768332740775160248267123401592903770023521934769017719858903773109906574027120938652353182208104394414123784243413679643779869053512069855181077053910020021829946036997770524422768217111327934226122893786352083939020273949423430642320931289074410547006282949978883303873608080582397224961290882017819389538539238492781861112262129557241017956766834397837648108354049442298586573690518713263826495152839251916667295310162454784080909176010630590055633354647848875214587543393543022959443056603045138275264734276935378728015580741874396552745591214199325153177890020868729107688801194654294389663976354876807264939652558362419881700995243336680304500503189196395926053839830268716669512911792623843893177774739009555013325356848364485505485183535404469123005184297480227102159353446960600226673572479279238374946586645714325564009062459156932009221209535222582134650270583153567156799112574058645267580059441702193487227814346272462258557583236002538357541333999061324279257515492399499644529328483462316467286743560057079439911838153629773141206777010337144556494585452208754019183551959159788428140185683951860286809389879866909536032136745540997457525586286438620508775286952184091125856773156034043276568041056186525004706478291718567483756426865569465361081127868010469674730336700830794559025541126877962433369000932354918428729188588458642218714950649195955956948543420073617036933480188668549492012414957239992250602293812424034599289396232167602530057301560762640594971484644741330075482540083736662597088865203924723959735999973671109854032696691276956031578423564526116505632221416121614529180208408437266478644029165943182302231407249499787936017579741462218481989603563459751238806007600234901780740981473385321883689779621610055589989745283601233376203728905298222639613009013621080429351999953646537913441736679924292571815988568752825068299237590551801616461256872240179393005014076951393590886627853112385514390538213902473507636530459879575868244927499469607354464552029018230227584245436022035214757574689922837861372937041727397795731059655254556248273038429082678619862819576767203151310780543771254403106422517463627566746651407777312579209551873368092257304763966574635615208003031774140053063695157438445721150126088330954867250208851733830850103974754915727821325159347296874369437230717829002836969657844171723703263798233900828534035042642977307846221720567872828798204472186353462791107946003221212812636384064540223679092561361425040316769687963785593099010666869567147019566881230162598527193516652228685320803267959894623474017827135892713995346667099637941395275509123030120447097787755306303153733655226360147087640353018332343693728904714338309621412296555776876341892086239082005258001853583273085484689650202946176030980127043722465433665319702256048936223321513927195725592426294198620209123678261545422409496432785121998925104447753325755923114862344121847645769494205422540523934185765781657800840360233249788679393396271268554458810326622028827357274364067483957968672574228640886963529247134524448488069382286410293580941240859054845597877144650752755588172809861196057545913787493860315662799457420861011455722171968167408820636955230872256966191294357629686103266459108302332704244325938761034463996795520940739657459825460430925429687193912650573801043282022365276121297866498001522916022267541893947679292242094111874754432758875262022519960815773314382759395985295444093943605034241902565577193609774048560555143637150060153882197207943548100975458200345041447202244694933289006610087801834736754264959497390150164747307754626951770417399184867649683715183766185620780338421789329070079130632410912969729471693286615105273392101615144693715411766026439848263761642111263414323163737670533725361203745750375858231405729489932578731365657144101899374250425290002895878614833131786717976569809739566224233817523997547430578408605606608151097627152322079727823883783007108488991678905725199029592598693234052244561188990166885596905483432850667553964331818490634180631188913656025881760630793853335408110408605710270549972886775518148330452804654499487065310194803757145569393982729873304051708046950725207486324919061060412308718043262519568719919182203610764801653222370441383605325435101129016919542634691518901332030001990020454133546940284013242022593426975722970129289189178587642273420277950241549065319781170992246390302781134266994904450410645986918504484999088526109588492458038386432796415426979785558358403838948802475870667089656272350990575152773142471837302736721885588201598913538595694497540587110217218499407202087877314320289381095517202346409854861242202604029519930393640546845480303539992504361211481550320707640246275763630701055669861442927072812871574204040541751271439114069395339165655097938675902639230516879898147835462536226174405461248407277990987523487026816704939660368234400028997142506088098491070574981084636914860197697304291209811192903989774055077289483703794662827555192976452212536727425841193500124386621172848004320742566488865950965551701430647014111838323432437048701986577958204345889418941376331299678836195357197114137081885541280786136881744628998194924457754384582225660417903092965715557064474383997797849772502281165122308482268087081025713995998316840371320337670708888588268786747422989160697091078602700929788766160534219159135933423751633547691193951686797394530434463630665009894865093308381934893739666725048505845780185605173274456195630324154321997783907370086161668393032302218859696954188185254556886863799862455589895163588506737288401430512010017677095097626338838879588493686917596687092487013250996368796475254228142533120931042385849314572491638165360857703003820587863599881641909148331224218844056438223000626187690738338115151566047263764250420099168701416329323964503618559143869191311532189508454182133265392289460475689439208489524269762858699307583258961673945093595740317086820991561842133337272384837239079136241781565711178088832715942721646583913600666110901932925043203243863365301845204990561540592132498170199081656293355929042496746482181328749420110698681498198104033188673953216623816964313958915654815356262075255433251463328517084143089463954815823670438470566349910413288655911888047357075590497081493631097466182862198403161592764016890423705551455852573381756501520236106143535289609283996852580827640375544730848396864844077687760460368165258612626511348901958860413806395758548849520992125444706208796674721463815752361146398498160685048192998419079204919192480227106203652148814427725487012063222775704586382019030450232018806047625211558192419441675460922064115776487257262741248648555191836270692975705066794810191239037371130318836488510432670861241755750224645410032511862816006100511092583083910837989738208143799643454886144428682147999398800128687053157991499139112712105503869823800991551557021073438873109623800834996525557429896244006480445113815839518105604278618375696256423585826892352165446452439956684865853696089787147196061932170737608606887059721664883254805983646822263297767627102178648896762237333580261574276769205613936338737156916666393015050935937565805891836777450124193898555735212849082429147185876033576615454738892699222598935636427801906374970560473888307790655225744966968335583716206603385538857781423519111273362307782474212326196871592017093010269201895533725390973624507154634952403981349422874801390474872552935262527256533337261598361627431158405589313559087000943745999037373329451832799335309349139017168143836591151815748518926577950388509786729974013181312437157068655781798457687282097118875706804155730517524165693706212139365035384448049690754185582590538231228362214543574536842320874483195774349451565556786919880838448612255807742270522327714933421555639825281123727956882073204125020854661466683711973192528607169120628050109457758076504689295897434213433901062719085470440450247467548207282070726120725809842527446006469144721582320380756202708610202594956308820346698005438843377079982579253112974716558197720592394358834116900179656732726378212290090024591075562883376529780150152056723913684962149932937504497543331047001269507906310055301520333876812331551746040012821384660578820088139193975951576397919916339190001020594965197468598824426001178604694624197738496531967786183544769994418910932769727779757215248474262415084802108577461584755598512501733979876208044341057049805164568668419814942755741783911477150837109522202521252198824077079517624432946330304115183117204875611375620655229243225834532624538945245550427397506762968761480515603784847257442096211579219716962524538296998176607118401959278113249675079184242477729591714618712451908690439894478233854169983168216894970770168033257029089790353772562742939544245688136096251228756496380690398908063183268141316313532624965325742666241618615183541142037678103166328342962423352705995365133724137549632888863842567874437341138474922785256554685451066167877515563400373333056923836024798199320679981404561317583231753523183877176065825795320543744647854441718571205709839750059429205252643369724552757591973100775796497377193412424907645198158126463912276475056359387406110561245568995388277778992280362576053068231897024001558240114514851967015373533425463859869212813135522713045240587578822074658498906150618144303234537807001296931248923642169289617597831245046130581417635939073228295993250027731044828792805070143599485682869541772946812449516227827505952409869028867537262946697038085780923547241440491055850872474250368301295107321812223117575023384855868717611034405710633871826681174551420657301028711449545717665436051454807266018285650370863550116953291176238614341713368154561990158072670531482099341640453712217606215040204165746694523538895320358979930664797862840190539692659242813376179374733215114129316249847844998752363886445018325256662157343378054168235485979088967699949377401548741807029463407706744951505967442634499048317449865373760767585956177687316953494779649626609270157750849539075978286082216481460049145705052720743273509761371137729852544828629047720993492547416248844860378521421347023971479941591753895250807616444587708404770173783766253169401309427629376001888391569636067210883948570667123221791460678433778366739242036754928284702192013727164890532671116499004270574852442747250986153757555969940368247996032751099014703651267131505558303629737844294953169682729280615455176355013613947710824134361070289847081290720751367484447550654388992193034166038182050796337579276722217967053426473988862348329005045224853265106178144738457004700094232949407285187966329446037044176191987175746125179043169688917868856133882397921536615529039286720694842238008366508135365421385716562608306677871400783857699840721957245749511935171953646706433751825030854205892260831758858495974434219952669057423953289665325612111714896357725964781227304776312564455326954225292266153892378458245738800095927106137002999852427803346696427241431232477124806939121696092683225843560667817159655633258261406766962330874811140250194178955213512248889206409396596516600931077238766969814718220871627122578729733619605535468109864961776170929198191448773503795233161864127454572633233615744288758222759508866581710224904573169579477769550314272628154419074552630965448201743252692547673173392560396512772438839230012850849390545664959612644883564455987608485516592160558480205094843097968090688945833136598374031685303897341398949498148536440615721708872312604270615047022213686418818365948475585782046123993489911956736053918910830715891228227048165713881449060288725166501988035346535086825924668405055110842339436248189665033476625463085808618289461642720236264173523282287191825095725146091450245183846631438801551114622666490830273448561485527014845982407800596094513459374595123175342342112674024117780743914566284208865822047333598638504573284639876923250068269577929408695913784882369557410711998391543116845857034747697746852514064178094330937474205503446826542296162523676024632768902075728785937692898729717679961052058399034108528149683076748893041160720914307174651995311347343325807268473274421388713275019492549858187340862137310209169588218634062653404138605360934742891980117670718957711038409395732029723240728841335289246915715698417416065393714118692780498663363804181702184588393102987086881813083051098731976778198920738415460792189422048106982573223497260339023079616403079122273037856347343870337087823210133376438171439304955655077872321731962244496571432949185593817478500328710712264557520233900684778709181559773378424729483806222665091174494714965581516553161191704870157317855036348630442057079517698971288390448369964591845124529760165919630223009244665137794789392073474250253676724238600632084633844290998747824337360129866886908153138858416798044259414731832674643998377960176097050656917840850982683783372074426350039080064071414632317033899356534554305386221606800793001852702582912319316343507527192403498465454981729475679044475381649281728461375410410372017916784631288245007595750503821625856775898969281045528599890807630810366526261380585067541163649372006568864602239483863261035037194989640507710977349611596250345202470388166516433778104682568011169277474089409766318662826836182761707412379509546487157046660939287689564481772294672471944202088155499728674957542341494231171631276915392474819648483605254554890337623783058274053971877108319103865851340670566186294583459477787187692683799799873995027904470600675255512950000104038420917341144538917752163906754455065892458897527585246254512065575415222778800891805226771646101933103563112345083255659645527395873994255742540884581754014473623919674185758701713591180617336139466057100541407739761424248197092349752525320290645444125260703176145954900577127379887007486309702409649597260334538016359323810239929637775226032398005808301004209823526586210572186121536409734356607376837893000200822081478316215260793544065159315623099243601372820400574889305778641396476794451246953662766653652246106466828021871949261971415374109092842994091882821083247366302759937506592478523239412208572429550402384505464654823413884713629318628447770272603804070935784140264979681170886398676627964710812834671637373574705244222481831006395356403530907590129187252571797310498566419742871363806896396079232393760011958121241188765999056785805505300989196012839848016742483572364452240958298277959364391286146906460461690301887599501032559034300281728901789465005440343096714375592142611961174449622618569352843541727643308748914660805055127828766383058347085251208124792064536687121444464052270177097988572166257666593273678626803962415233078426606858861797262211822563688966464418473054607670151557319871347189034533898582159145463105453180836118005317743728967453589730818193609308620613555017855816390678153711687437804772753440842541505548346917625445716893605964213176267889679279098361440085901239661440094397669172112600692738699170763379104643291229395037770539403138937770215227753620105583041431043407647196654383098720139340041529989177244347563547687512925559163527506530156935712352489683549413646142563745898596098685244214990453730346827513159457919911934237851135817097507784729655866029227682112571514467509739685021988519582024989417924052677993959009897759202666454115909903961592284329462508324271747543954300425771040558627558421647065369925962585984200529957606766645571900282183692131764354196772661064491916022044655959374558867014003025240747830357458578511378035661300348173930906479212594354387926465327067384628240846395053661731150448791392088911385472817811016880812405377649567073818814150570544348445608053895826284982169917014230000975839900245998917155079581889306175895408942211362519798688557231188010051538314681443289249858977774512060912573764973434971145400341919890472288884098343704053778594578056537192440623050554116720158447338780879284819380902749306056231680023650835763371751633654264889670528217867662038579133517349629074283243901089298593974331844058832081652276034957904363133239754811197438480597826336241572768609478601554462731796049882428384178437635769157762717783755306437704810842893649425357927164689588209514742228382214799006523462291385281575461052576434898989362929405752933440811662354512063342266259005171436242751766150253552688902358084053086055622818926265739331398336915633598860446263042097515412109022182726162708811765112210640293835407413784809529232325728300508938346013442153260425606253398766152725209666433713322484389653329867001077049539847897689019735167218810892721347570417089091313332799183741204039159457199078380364756284358539900689963705465485377756134681674842188618678098154947483737704906672744930610188778679966773874906518046810010847839564902568471009279238657382104271594861489119537853894239984341588355993866859674039403976609345166678784453126411393886580017721676466759398857850872157757100372732887323662967946052214246229622113896002261358622999675437255454605085767300396074373214981238434494817145238903849059035407590007159209019468290115146527802961448907767470142004750927999860595358503392411034617282076578636852992236848732230690294870298634221219455216882155454438593327312586555295710138379609508147117037802056249921799708435740634186659645295272992928080283472975303367888890744260694054880311545655634827596544844516349787262101433755695774197604965303021567324371476675503448438377442568117252982853732403143903121210122253054404221333202253209364712720052101312389010151830525508622098225524723113987037642849355894554518296812962839079955162819071292687163444566223746115479966853908172223410621065306560791595953144529618943923846317550510818807584149311576717869958068348916245526954227555549771316108729658287667762358945419362060252581429991234398212506197917359502618363930183278062482844130021857661505925956450605245218193112156292029465124758667849420478463129891639535095568115481085418805670068992780326583756447785050662601760242271436914725248625571505788087990519077903058431556049437444675236540454134884730953787180959099342529152286531358321331175070185087579517160119906202637204512895602696550987813177270307181989044700449677365690288628678965714736407874621498927593725718332856859364351988383075033047610683635659875362449438351293377229906735968830885153412779283772534221523757322337225858265902067550354100198476759420361035299235428212983363088699679952798705973229707618335849681964838990840568487442335782312810215098877593043343098520786232572449477284838797999233489210840082617519476080469047277731551825060829959694994265635733025441125456528559099625994364316341212330951238676912367926111564088813021335560148518252163928606648383054550965695533059000319794970010036422622451054346753096260553809837204440637018626956026966881685395261790385340074226824242500589227354140968702088223328857506900725904346577303357385217354861696290361316545540290779436610830311664314865623252458091345913316504113210060036358297257078905378530373561189123578982222731057069709671269047401727730987002341245986770843810347807808791682106366631445494398734115979660365539567573754745058529696700057715887806581757921206592022125120673220311062262464013853882952137181602280218395280425686085749106655364912384123640501898713357447840185186186379180546616507471351010629845144378138696161257977512490751431124518430706650747990190899100139961626409402654466426724556255611375446685404719708433301038198890845029697814892092418422820641214860616889787425508232582830479454314975567437955210173593538804977222893006416121804954692424391195564625667900189421413190773835654513099444570750385566093715365303109755934685617317379004043206542132604595963450313469641711991192943598229854128773296533910040753355864321040098454265379443303516907649572713972055736340645056252440361174345147076969709120753166906584334453330026909713188117768617957081064369293526056957212658623458704223967923340994714710811940855764669248580303249967590161771731034450838589733324575532362391977712371268224168037873482086739926994726646854854021382958596926156017940097662427723972033679998337893885406272916933076467996954796649656931689942062933516538412499448277742713221506566841720513848340323934344270256122069461557232192002937527901142038551319742143799081964834308359362780005865087242454473513929450769824648231266376282944081822155237772838213306485280419007212626392747233973506278486323179839774811180146561440495070154265985169286731408266735369335010906850009203906393827346597235764479552226502668420721016599103902450979340444489197193660732435400947334713476069601755327211445389614478980282073392626901194695212922795586681316172468961005379676061228486003155952073876229602907538033123238579172503275225618631641828372547838900456867621592382657258130665476266253385937782556229188067225371926907270744072112514076264333953331253067508257867100159550840948015290914604840111444278100837575470735548874098013207956382303147422100254072581780630772665546135727134720113418947730477488709717701024474738600481329183775359351400909975968489090231359060609208195459712094508709095875535754894205376929620843683059976469247254806259001475195517806402586148153945638019111093809733832841772314343890708397337220499268978473352609194283295333245699459918378577977905034527745855412787413362945663790830020094924978398016301428178771324665948742540365121310506036143250129690300463751274053083239301723821024240312387263454509071361498344366234067498687372543612884543039454132872393836102060688151726958292627528086544250900895383859768353343183038784928764379165467530572215850697930645737591199511570798680942568563229948767775915094773801818255358210768507848460257495870184479523315389368822241063908212317534472339848240933821465087775133245965967013702690821027880834728152014082098161441586264797405313551644232223137114777908037961725470191816695244796983229100991216109896219808014830201173238847706073419072636639687449325768597633014470575633366251619447736703770726872597539438136507669993003555221383041075085901649491131877357885638751980050135456939765839506724736236166093303281267033797216781774779260940404085890186230114100323994751768465311728883197332899329789018422031897811812788330290752825841028795918139311801559182784710760110124738126946518896414492585854495044717027529436115581079423453466783892592280330659079865282795993079807902044795404456840123406096894299935947606961815862380296350517394080051884759363305020865728819226916921732305884131697567312240335644750847938398318854626395523894036420148468751273906537769257485804349392897020811782786565386602438936450133713903419078703224390037700048818351715792177535253352036584030813716827015994299254603124223778767441327752726567521067334973988930276127343639342975473518820390593829105650086144762426959359136054535355299201098968372951322102651152695808307430229791423499864869190512815065814718769788028339100089930425109396250145178971129786469835109940590232972745680770588088627596669626579160893885271063190635219294621994944205952000691987257236982869738643687224443439122861688412430520325654811005880476882155015153523063078788358401034086652737321068958339749264907595661366493552479623880777287556753360754173574281429838636571308033386694008564671954234826383526069613390058791459485110160289050865674654689369677551793341506201836037057649355090072489244184014759482934618140344258905565426462046938559672242144914083228965692452518555975918082449889085785807561276083343145973630582996396611923164814110952586542331838465614024048746935747796989071697415612429379691883477958309268470969054461588919013819405508329304622068373235831899108262317064766156070746783393970713354173195314626991081592890314270295956980003618167490399707611792878298642904500438856983244535328996788742997126341232444704701581048858595140345605983910934242622186332654643616749416130261147945060966032765429114393003517325438044318722711860318665610039023881991712860787031468913527327081321677775589296673527539830432699811761886035582684182033251866640587003115539611834980210401218020301551940247402730525744316652844823432748642389283699282093820242258726024220351861202525486919609463850387711082487336569039233858958585677259544940971669014232545266237804933458315617564929996683474272600256762854239032566781903903571734954722703097541671012120095260258661725886815981720967903222420465299327892969160983470338293531743433984292288268503096609950822379546377141530394368328682817153834763867300805581819682237630696936737540338099147676402623019527790738139757041160080907472553355765723770904837826667300456058583830769210606517311580407304831436417045815050058593939212374437985192245957090603760310282435398624288770215552807403976445686273810398776066594702049412460165944645842888162551284619285795078487351167400092584214853484202736125390319588991986550698545282582092066260023109141513548282167624745717524348478606759130674926954003841435160480694962470799337341194729607415423195625111410890072967240545500540938902484889447593289117649262833728668521954466196349759529072853662624661614909157980439895789637199259620389364989136920004656988416381801773129100267685067333847136142811738985493153044304599355906322050727745591100821143569431701548044176594701106992633481984563964405839208224309598518062895993344217369855237604956520807365699435207329638473950243121565110629316370271692304813894546517617048362358955931729722836661637607830916191298482851527247091064190537199697931287759587270715401599821908323927265116794579782785986689218118325284631891312793311705588387332021549397122683838175957275313271676509479028718026636767465168303240682123245309405311273540043589213600599712482757888876350295381226300250264689006768709695914518740803257429488001717550158114189371255162665526543924753414756018622147270994479143727776090325359838000347691000479550929157274544336429085751887432967094078273292403136679735182279522373573437131067122755774472356787874785474680525475351991299959903452147953887023165085280594105608397332509461206162175322799709918688532835989514065132011656658648651932645152858273236880208920819506918157502979413913983116189240159511661589377276436585308734146392680348407392861944656076975104263842869937389750272972421388797920924734626249735790915140972533302988130595696987391197736996480582643466589740052334396617892125554039688614553881670652308057182353385119777300635344859226741640835015403413203874312813596529937840262045100709439830423791408939251491760868362789863370955737948972502006703285530652409873321996287191013843792867154936326140070959182851941031732600275433049900531417441640516552044563044858093662071110713278229887224240687583569332527166037678199462787876994057576909125433192794923749688909996580421739409439203076320471644419880529385092944769555430410292031292257081246716610383376137393637164549218979414821346191693004893299177163334373297227173156903335846722669489921270972752281339205258976933668479550473796351650809373045715738854404094823199001768924224714933614153387657137331446980136186934867063913667771175163511158421181568915963479521397804788702917709910171353362540427874619065107176509196315097756654518195517875151675444473494083504670417218519457680242555508116618749364420043193357963284098900314271211591627683855570556616236777303057310794645144534008974745615605094806948411982164481233869042555791879899638734794960083645169915715878532988622856760163716002880894400125409990964925630253229840684776559583404233580202763959288146322699540463545985876350103104685296838910752456074023699353076962772546735280403081049584941810529679444626107530354441797773982845811439974107624777565063848241855380520896135554497399577803432202513261153991819571087185538033187933830633041358370205905029574712924972421571477484555929121350542208205047345756202991766304309024632288108055251487043511121007984199361472292693481350738790583541910863433577181769445721706201681931235181825764030340363969741907538248397180420723872833277307540247427746885538755005367209388742363502985233966045362609192394124493687502462761120584933609784456491464375595988991321103254672971731870333334313592895898561032377460816400669685504732319179568872560304920357131137789736384511615500888290777300629347235094785554443261101499466504828908626966670907612594785146051381350036955923151451558478306571704323507976363882200713621649341543473294958319898851389796872382930500306175818365072324346979475929767843467118194343932897562121522482937900003843540032985910202702632535940169652358140328629757616695781905763338491408780827876108924198555684573220324190303987756442516578791294293550124533996367377211305435469893837480894543061687638260632733818542857863775588829227623856804227307828194565999907454291908824638527461559181284414094694999150604015147468027788905684231124227577845517060878047012209670341653669481281565744560325791979633053793524573213431711191681057985919742159475589217838284068780015733423435651081527563840165801033186262589596469774512395295762390156907842689648982795092096546047531466152005609785370904563488190535752348466453526235390796939253805187119669303950229208544832781715796030437273953659498493659267151573111508878216595354796801142445339337880430755891039049729773414696856607651759937207676502118909818649743790590841965710694566501140387803862654351486144040804767079959179803778549037818137546981635290220677403571270653196007455986068878990971677291008285142558279218236601715819617023909799672625229968121152368049940354660777286213837296279836805385114321510568226890184166742739213326258588209460383891618115234643957340124282687674814593161869565488653862029177177967015143722314371355629242032808264050159551177418677567274723622493420299405873384197366974356070828632860317996137787461325339865450284535568723616380853563692316955065853695653758174984810854256720103825673011961683183261631393436531512035535768949091844012970100505408032565283305004212516731420208868933641308344845774835054469014824387187220334268227413414571565419317460181406659340437632547034283428422053952755815112810961411027112330333998477991367430038833935051526236008076431288418905639387111774560695020465544544124624113601300793590580062753610249610512767930486129769940808311354497177289840852049484188706749046082384635925382813933837204393666506951510092357211462790431408712621131183406283848739347012256342284806923489557117823730138767598072070196847025669473429991889409603018060121498420761985402779168035601260224296475197759608020688287287055867773969157729572918277858987951041033430214113220513085804564757352508103153820071314739713574205944879830453754484829864372329537614733030683233172419874451860584723126244804143858480421251796657738235157242275758469196452411827378304576555590076176802203310330839618598332644567262806652849447268720667558529102342142957180437538410297650201360530574949618745537435636037495905605760743301753709262718085793441560836320995022445684329397481329458777817016530381588902392191879986929904067546266574733542467059686628156233779943589410444194029875749544046827874637354771793893130109626013993589376267076952907490337698516728762860523684135575660724021933983727763226668009495971513381227683804653066519277652611167800519857026567950435708684887553207919093718979111332491241369112625925089644686352337234015448818071619842576640669148949855013540687332683091010541535355842723396382849416342604654063344609777419935494944287677181723914419708368696379093261661965945044166997437440574039305382823253427331522429577581179282126591119807764863128613894378243344397439120288995246440690541640413402328135319991206776983531514168459737164198395990996761411766345455762097481059467604910906652090951014313012636454762521130651607249658014417287952306469926047543750026943615083164840406218509577704682920785365035030700217997478937089339495300952860560552996275537160064355753645015486687929688730262682594649103905106282764284760259641538350572114435062683303919957007009950354693283345216008119683938668939096990173799161182733530990516332275960406754205332545503493883818705411266560911543203487556527691418941049988254223556899712753110841627667152097809053897946250389223365281821125517852435101612473839650532642745662966820170642308233018388134068699767381753041121316120574092247775118598011443706670933505333976233894740281668905544818349703332935866476639020091881659997072119901577538288726977874526573235375410774589492144106303211581605680914331155437625254556264624663246716718048740423147936798044444672657915043499554456734059624708341867209182420314290412632381975672698948335840841420225418744280988417349556872081916665994670750020533903872552029914339143559975894124064147477451767224922362287771602373082650958428275253137648970449989212612313617824908105657426930391192189902000226047858093539148974505298670426145570959996235609461177304374543324403046005698107401414815127523630519366989397698888571791175652381824631046083942435391896385772115920217945055671770375157217889348804410470083109393753809943105127831974591346845047239357296386082315973869426550511206787916939027194038628562282997766236847548424504452785140167800922332123849312563664645705417743694047881098944883066677900556023120284740724616536528937210615904549907399362581701901487634637912711914230812033412205178590937451451449247873066657059662561398443309255308245959894589821753452566407691428755733410194843262859830933299880112354407925195604344213607333652935129374127052000912135208273979385491251415703783197653916830519765133292925816416123465104036495263028383563406499221199803108167479453637899727616217921314719745630822664725514889183855511623106839184875727207029259137827863020251252786799952108801241046562238973211440756221868984587584442460710762587030090317955572626403434853833811785305583433366295804697681626906087145361618126391632917807099714767526335405300773666715131566928826088480891977457753965272787180743672697169158295741438844267980355165278325847351225197968259821839132328742381691949645824255963411763610883535990035029194418284754296324722893832627921666749653105432519669798668444125383471815355873186927882802045445403642058933755422961040515630551226847658022673838677924698386114591828931147609289382938950967561902043059762968725899849994669077605944161776231416475676360076925998148264225334710661161773070618118478683070657361806732204285766805216237502593452567828585569082850430464172311142911599302776181440037974820630806439078091721213080760617884577131285839206418431179022603073277383421732705785577189096855019403089017430948663919431432208679867958424742426279233380715994750790725025341362548826532856353163342349356686058812017006838444206128380068795449735512713865575572511353039861000995257802963950175936213326348150035764300326863107645828793575615143648380492999796208630586469856104085794110494243900925824138126318515833047939691529027268133680783704158781889492241701993891527965111460641781408138869850475143265096631362747742002842985456951665973637737588785813572629545101544341212739202932082220399370652771362469674157930475286724189346893759586766515530630282524093883806963635757594804930068377710586235455537042625128942173917127159796418597941080864838993006102634252630989492075283493967423063871196805919333659558420443516611254549800962244346476907007424988889550809018190471367116737639537658843572630274473797095466305495143251352374250185513663172613231131647209314751346226582903034216355214975717895226988004298756739957410592366043358191996590174532523168392598512964726613428362283988311004446917724362145640731882714846725394146739170668650889900384888495119339694168130360682062857081754699344927917617087015454185891602782074211362398802990408798361866992361299136415913822356459350249236254550497523442877106174494111816878895493533255871458248905824914070250861286507608727021595463078002321652459228583493526891255768830540034975565355861637354809330263519549046869491643094266945672631147732839126426617458563123060022023019645711947245173277710827131886686253194294186486172991318838348504418412654366766616150833980615989130283916896812735242010728156466005223829017146316037520483909071128647209464063600485992234563322812487385461547691216339909144153206243641173767095131001381483274626273779623640284714972255093286923688255156535515574979053048706036514252114076173706943872755584195121373596043793704979468291929289454378734842023427931084056216554154416923410804200643062494643819479702429407301028603138724067479061118713265744714526542352701048441357089383329601090967101979100534909219424491965195610616117328658705551562431060890185022907226548149291450017808802242498400201487103539048198747957153680024397211315573153201935083086415622274491743546156397845336697991441267836293942154833284998238920265276355576101015233888229173968851620042376585428061393972606600798795693110392325338045631003319539426893405356798115342329777065767585826350557153642796462283710447679480056385586830742577125089426367723581424558756885396474715446304347464701455253129857792002775369490959384266289669090771432663220256320709894362669436556598215755593348303038758176062840638731477683456383032103385960284050888755683103825539063758211714609307771066819040762441595068680831525032181537320665393616503641082388530387835800523026102770190393392760526337721724331725521867878764028468502167581956648978286837634895750954025476878549352170049332272000121251060769241795700812778126732371355482153337158516352104527707939104116373700113745237120046684435398565296452758773932266930001435948115484064327298850757830545148093051856807974804699418533642685701677573383863825358079768215032821329464257566836001727123498649612790042676829873378265317660951934923041260979515925592658528465180856817483005428162184590864897672968093436599637398157321443663790485187186824619911971768283973440063439542954245345683963446367990287978524495279744473698229714176368784232426034934128739028370002390916373942004743756565676107352774038162641105073415702598074031910252663564451904512653275643842511303109864401283179084940776664892007695639832966489205825362871618129847086988132240610446675003787418649102523383349816172146697378867092725212161066415623209030419418002919534494389603598309937937007051063860063146069370008278653524192702316326571714664780066181685386460942273023761191720920648493730061012823732681783055547144049659433062322042346090672455157468190495320018729389947622479377404598432111686605579536132306466624135793185022232809363554363733751948903135503207144778121364995909829011503987246448343265458039829070239036902304918347162009570642276763877931268281718756939540546391909107541402269152976422401581965186298042634702182311036580406329720328768769595388013570120379986030761185424674393390220515032190142729090088550392303814574968054765574740712156562662471747969883395396309764368263736769805312869804777360927167407348424828192300279186196517306025440049638941738932253691226723872467841660229011601201659597513054710509380213077417564688826687680699757990023376636896531417794830032171982660841808423113964353294022991668975943283258064065976310019253226544547149174582017190487613124480557773151642898929343430683109068057594889091735009401670558172834819606271352655451731644898662146887248860880604766027922079431202367905398472526638597941901244006175336448398893755345416828245431678663330270318161629934070338500667495867731807938500177287965783664509317171035972504065694062360804215983119539124072251053975000245882082771310694690357830605163630358384271752556008705123563354228414093670640076021966729625774630611866997968755505711029619827348231236709147297433841379043807118175804687171148360495615973765034241801095617856522433726095618806958292347808704364715773038652003727116055920055988408127244274076341418625146956022437492642016579356209598967010499335433668862752848400848549362739013268285848778529231016314026136563395844267745669114079124781833152446827530795800372213061819132876980062261472563902246330652845326772846881082552552892110712581519798256028885699132109841027751383642452509345067772564237456106274095416661072223171488291376417189874564194043996555223406281971059681897552108713886645858978498478741474761683522804242444594048038910188416413111983094237147437331356258259639333709364244769766137913127785581606026797399012202538084232627871230030341850905988985065351072346160779906649263014874151420856218268605715292378701489870660229330515727992440980414557279674586766009670614489097243606478227286847200673153255720609533144717364646766963563429753653620047609975400415813127133394860284632937665402922350462434821359247161305918809368119711380978943886924025634136911547101368450660071472844694253373834525982685735737874546645246468569248898915659888376059456737969005608681230637303109745846801174257154836859917309811173368940783364254392011570953363574204529740142113121677882802121184116675606166996804254429752516056892630562259329206683442329471550155414242725714278841109939998025749689705294743971911253460108266282103858685902108550245230521451631798911400366235480905962372705764047442312144244185074838022417347283823541581822486411954932399318778048713633162413882598795186638343174861191589295054015861783465946142163440616925905721819139892266433857584695751084950894266635933241250918717230159539125745853813732934739359478325721425178751231045793954540511617600064163971721809325725162557626207160961255564843059309727555801196281521612851187565592763834345386389552112914879634183638793074817683763317858639549823588919071940495283387863837039221578890745781452820253796679416998308455783422167223435208262385076797743142459806701736798456835062485401025103935901237223648876727710307903890915539216538480208058954474533605767151569080628170294581571029120008962291244802731529788942219597455412378778875346287777874324406619857585004470039271534815048942571989406537624824510911510671489243826320995294205663628581586224927950318846335952458842189822468145073051776657856205473823098099760785235005301108387216508242997468941969776595043311144252730794859365261045542650738440835337805273126948909333253464153397671742335839256819698276717411066455292702203229708408118164745975930576611405901865722413874990677737255850183091722938642043354820280793922320357447285746422827355712611255824066455391506202391860133728029515784574068434639869892311076810192670314210274305885307623609789020267737985196800221708253890061610732382990822184735794036898670480546108843126463238337247718513541754706516041062697496940280778041533421391883688740075735230029992225861548532530068435117595682189228541820133016367742724044365468372502746353707321679657206853559645286567996210610656035729035594634034987257002374412824083200664011022186742572451103286932329907681006479745438347338824761116603897324170971287795265321460012599049162463438102565699814845739015334222931816538421473049001197919564916928525107027481478435460913530878040634955413266654999707629679065185150970354333876857025595455031997724641414849045340196485690408786809749293037447269020130643485994712518420221438513396216812848121035918764047218967103163916197567645891896255194489029046137034341282083528771463182645841157402006954455561903677191883350732924114378191325150994510122989389901291271187806084719767821259567527161573170422284004391831316751386289477001938953449031814167700323467034194437678859987300645812848033531433640913409166453577983094257236653030483160609636659669358388718689316039023496571366174899709361324911315009630969727264161449671084352966845282641752044951721253040037521535810728203855042550235460943452769644014260040073895817812235447883673475083064754711647086523065761871865479208060536039581610723497284167427246013942548106732511052525013368638710118201255753108818554735073564530766499913584513189129561598677891892085845855901935888827188946624414087452696963153882397059511146584162218139381082867253117851496603336426226999199079138638617114826847702398878859179512035564071206999098383175244383584454503309056282495539208347365545390120348834923560740647051969293598516358297910065828196472488167010110728463989001753326386558884349285228742783600443474615493243776167293653462242854580150480862203483513369488034579175797076711120516350557625902072526251517400026131633319623897330290385628799858564264596587959532685834379641592603691666713003195599812813587122277488245297985223900920781913639300026218135536505995842372525453044246632179188149154578138792927681158387031185659677551714600000630223468055307648311623789543711671245385695153903123638956973861874202186892472632943671942897195164166607653812721850840892569367932105663034234952252229974981716073360878186548499701755705656900864973854483288429742893194084818247309453137765923850557586675488153713794354219252281133338579073382535523437707648027625089055259952848004406416566243748234615993381207978280981299290759380800553564713192294144558647733790869954567102098224959117107026553685427933698385121507612545614115807143268776703753699002305882819352817082171680797286844710815135553075036049090824257382514566716628425979751720034856426100945849619463407086486910442154347680760353973144672692092401643063578273948724168521195709621764395124542103492015060493892798255743962955354795850678672764066963277294240764393492978495221265551418394789617147046866588210385325496695914831702116166782807642326437386224088487088257188975590179180471620722382287395022772264390361169118023877765542969258460805422393612956821145780965411451925271693967870827518583587834664650460477254306161356706436092737426476103257380161121343411496842834446505409201125604941298599171663952020266801341360946174689861340974327652995349965274706239423020794439838928892693575222957703354058808378493088026073992924539243234640698906632799239102126922189547498134108544445877694467431093517540746519057995595695399896913458226753209110852210576684914923402773130109583729742100615846484162616333163714376433662412232978561582297189591511583587813980186687315213754288440802722989473243620810352688327696077108528270217092330876433204935623327987371089897648343495361974027489556363931742375303341329220770573908575522800317032651064608743767995767171751622123601220060154390324265621183841395921125799804498676164049879153010189918798191118348289289494798397785449659263620898056827824326304702750428060063539030742930481188462714278918025537379435682042363840357884331954824922644720746339334877689520535266315113798461803268910660972646606191284172666861858225541108158612158101433545206742107934716246651272395917702777837494613140563452446414403246603846910623701661990973167960472266989615740248871128106387962542729498258893400542842421787169734674172506133072909016587948048231276991455077810620972613864154761446920161988080422083380017775732665007824406052067261648926204370579187249054242121815551894192271386000548785261092275224177799246440039349553641119509573904252494690943295383211903880080691820901760642913981459652367909931664070559916735589467727997589327368975355704017562227652423153734909003508097408209086698900028413381614201204360815765430592069483438428916418976240057433317812812871879244138547633103393069569976835660756580751550512858367461931140164037967226857709955073758549030804291428354276099690653708814923346129190186771618991808493161291817731095429273647634759449629394270285023751934625834180055050754452604136891485913145687432224881892402721807607996038895622342057709256750529729693774470073984030277909057120070104663695362984987646134566422832286162586982919640928688239454364261913075742019813515495371186323651087959063776445293927091405224288558133157240106301705536696528006465235834108721361623401104419753587586352359294701617870283504810929977452837304900482106271525282011950334086395135768802614072534439841143090313719446840434539639189085716346479552848066180315938650650711409435450063391601811048886430005214687491953646676615782513403812546568592545904431741194083178615466435923708038429616203831986958617741490990349849534399974338920617119307072694234928902826632653660768978267143144248823760084504631903012859833355239325469072326526112693100289419946002900043836814897504480392952620306015590542173747461786886412366575814363361983245812552799879110829805997945208539866457923596936427620620823561610207922244613417394684088757225169230630777801508982350345365671612136722384407007856384218443852508929254373320796564459549338651808977697261309976786769780285545988493818803511381114088793223913838233803958304312566857698984314767091312198562661140052742583520036686751044807664851888928826272484097249200241562241885324643017755955375557682623003329585089888837980049311265929460317254764518424243222725079867310185529821215911732487841053455054893620102624839012731257564411004976111485219556479298088578676495493662664474039470495752138543614854784165488379314773541161380166588123466825793268614948323956376961177177814313686731761597872620964996545897879040591227042838377759606447952169377243278038187660187485838958736378020535561622270710973155119220609666657749220093032862757270519705299261101558592082548981051100269792307129228687272337874427729691677041756323745936444260931541055284677613465458179767325832312560095178017347547527865459335796197716529895502596660625042001039601037272431841326303239705395262769458835399964421936980012392593231360514325417045560613579188369153774089979699277269334085781567567046246146222732010823669257891210666099021832026354923322960929021845112398246386794153307122727371447568088469418827184906782281497209564837843037029281908100910038167275934472199648803801570443699782934951683224517827055700719225098335742087629280837992836167039421314580269469318946201619927029252974678718268458668593165310506512316425369976582746652518283273706255600193269648387073216822625937242125234888077609135236061455725877692711420586446355795487993287357503421811596444502787284528759439705568650141353376030526167140106918057449374838683174956755720293102461170070685492253562351238532383876188985701195648673044036300114164166278175658936327002694825416773355111830404277432222095943248412651461765591554152054542622868234487514962434364745047330936814000268460217196117341747360090758162613345906926548502928633598835667767752824578436556609932371808066090624621498881686834699205553962991555279909055885860799374430937047823943009612119415847824358058664466416878128702978562892187569316097994408540956328069753524202880427611288042468612239492902964090494991650392429307186677363304814881334954233744006876540250964331345252700423443275883818766136293370290025408437285586423642836638027373294707793913844650030174715248345401236364390163924284495485028114411904726995067539123423880576688277973748582123517494390342868468442059393801063326038127237404442355774391111224290247879081822292240844012742326898005039595808406795016825879142230616845053424679379250727103392974983336376609162886766037425993635954055994599298669016151270931930971829012375964608497639186142887348334454432843326668729000645477386283504066840130166926847553046047569987796885913321781553364383694875116402595145556350510153398608997541784730162656744398375638662208470682243113268173258927342763106820929423408751685214119689810569128742127395382691053295696056281578132089562494452711471752689060816686395071459701332212188088873370026805580172542669120370158127340992968982426347442473578933609937291825656459866940626752560437128206013021396870377436244357640815653612057690641783383855323757024366381642482054726651093381781815224449887986615387991345070463367966937019620170636321930516442335343090486189761455116679954975195042840703487153977049484652384551833816098745666111899623389242564530812115905208209844303729975271959146946058999847212116870902482181077696526928797201602403938751991138481009215213179107136932559246891002381559244680202254720367385339774624422262983628656607924150866247666196300067968471044774601100183311988571843979818132480910570814001661475033673341793135534005902935353108088556410474592336552521407211140823014791910969937034714121647517527585030468667044253077503366092051065921538239271630420884310948143493478349240934866843143655293339846736325599646331444809700365016181403450945799827322487686433387991582079916902358484302403648974957921308255860008642841936298032733321520208129080604947835732746774474125458727562607256609689778997068273982768793106723268103651247785232997891470889828822781689517985624435181172444662442181030916128726219270570930193328385886833022102669720472626743692405143452536686609694137949290945564472566600537291720085999951473535807437347176856089667164103309216807539304163700276396963704040732883409923492691249263515664810984916685913410789555276990306322310701484424000243142487087559986026957969826411485724343111145864831537126162374266097135174879198176943006463243498375158528083655524234055056452444638621081737929800234065904605706311140503443271506445867918068773178011731586277253764628639997472773935880259323403904179132527886485623736188795920009146362366309376956321546490272067377213985203416958590963028033082964898180544511381862553866334754347115590644654838225098877430324836404996605793098357542794726064998512751585211234526473385308396605395904655190507686900560225220081644124484797366063454087951706194160582134595389228633741501875726281697257828844847929770454027904907750500120734128968281438466819518302596792978230612283093295232262389775527728523359461984577738552428333815890443815189624310472738393073074876831088092004294201290533558684891026173418931654256375913632337844708420992757949948579915591772152892984831174793240761993147908200094713805728135892906900191922558233167588173686141046985021496882457006301981239975987121504976050249696413269831753840691353659044818060126090656489490852037607958472412590003780594847704311936167451752932724646457608525957305282117871102273945031504834020099557304272061811362608680224924431454249450622546834526271485136248164417423829279094140983854122246270488680868562348141654840610590722756608742180722005988444383348429281680059236861473195605134970619141595286856676520851293271004408454248233346464547708246875390504503973546576834862184265501402897118382189334396739612879708901778257865850036115512654042510261028981112910253091605706596052374495062143778074201737476243590100702719170241078101318009808160156787600964695010618437158262558568411681905661833484222961349415751320067864202453026346841033950243224748411272497058749706153589728189607460507592507646031701833694499355810548634559696400008268301003588145895549729643541108475903913675284345249865565135734578197776603197198781751004662885504915089818306004946518108997479614606496578923715424134784106527065538886745922007083044897620008540072041609701966176821461381822490380519373807772717714316391195446404453702838397335315489010381930498188156492578013746873562659094572099201131604001369019048114433567149512126913986223958612816378746431522499039124019122226441125764358509712693364221869459470225906401713941822582775507972604681511312697343138914894171083390263708008129547631127213154317986446858451789393727350592779802135305321538138991494602046173587167026799629320621403253799614165422075640022958004162636473516838838672487356416602392465657094498383423959741592165144369722898067405197080660393413105760106046225933851312889359833264101643161658970959926165804529998665040263086820255438678952781725036102721944689616572855605141470784284489100137194661609214073431096741199747112479376222591939616205896545074903986961055630929894799352721244255245525889848004835744731975387518644881555111811796239365788368159003204677742392802262359577505206027161158308210337892390378262993168193976356638836017499573180206187585020857279838948789085910676763600248243862507907883171785546928146388036390013033684740274294528871019208301144593926077492871416834565762981510113963534962616745164341122195598505223211732361508339313003072815105384984064345931322106649623315257700353553247709192811621753089222129435486304770710434547992005265432946803251705794885265485774572420666329723862624574186917754350841467212836123497850092403232683320439855888617764325449256028324317229349275429244872404795591578367403128376415076124287722712561522817312544687891944204453002223398103503784901128226035303679520595930827565188110729500407727746295409341118934021968635034778886428676509862057578964287400568254636284245456924010512099317469370934968516310417317551749069964218808753185586129533787281577101493129643716103902469129553335298042932794450528225407128921899222709768587065753266519507830388448660151613454560424735097373785940020150784436858936118646881663957045942621197119108400950719967500091545483771086112737775878749560825276095252288401016763065846371047935051268743739728678574455509833472471893329063001471615445059347290547588090670017501640408230993413920824619360950230431654317032897924691158179177532901885615501738520480483149552810924441478813163424858017547945778742221704104435385305668531582406291085803655025663328239215601017228311806422899732658072141642463397823395480634192444914140804950357640784734474359790072995466362022968465659419228826507388650822414264132590035011492061009488683857708297465347477617646643097503464369899804496443232475393124411125827729884132802500366296009214594211539827120159137544535534602575535210227554178865296342616018149446512839544518197617926833292513618080767614811318026153409757232499084268796697906934429914935615308454960492967013322898920169798121092374131643277551409660898529921432715789232948343357004266908149670214576845115571337494554905013146644110659550069914747443507048614555038057747115265129538679532763514099077652130466118712046749836983521350742884732031913315333340103314408984803712859493750659725585668456724993309466491194127438322625340638213091924282461917435519663842662898295344005485147093239540758239091445438721506699432663972708534736246136067675418743536508263639610205555664184277273207780685062685381629257365368179615026604098000027097581405490162983211837231960620739833597014639257419944812611579257965920377158897881154630943660282841546003294417682350064372815662257619224187911716232365523970373032841206814759276305110651775801999150151277600972305910632103899684084770831803271744551011280395223445329066274720157502480025448995083808958801166076955185366674642585643005705960919294588460101024389896157323955471230765861106829719564512771715754188885657357026167497619481258452831942473702961513923490721169202707356785118134134449068579210160922913678031605961457639119942210442015992851692772359433914032976210124599662809857850650623921073286581643786756638675803095513618040826358268520786908138106527971102185723990055070530608896670952535127762050361188581975537214775461997643522940235025111501576565882447342478974448185427919478394477056642658772827324507825457484690790368312211320715447535512343320542609802128503410451810968838971785104579103522839835925638353534829808011630271584157530047642272057056615337782745843779934880110428057054685248060291237864623282411132009409878145635890404919559743644090768672491440262329625181282758990077475349161075706907498339850016819733541957149395063230048623076474859510243586085968242990618836126742753331059477027837961749890901215552663655150754950199623350588268107051560882028586891913559476756620455971976357660392299651515381821947715139012885015884759226340726290022113771981377508649658168810275335641319330739230423415267141991439918025291554282976431213128814354787012641759148984956396360492298716821636331819803207301473971025837890152283528705224365891841237194973479697686923589947475399425336292240486702163318254696862682076302750848857647863194852136288848487773938254487741823857610494961863351224576147353996933363632102900999947931149017172721922158732730897623394280766447880148807768600207490214828043006095124423059669021333708081909418400771309997984738297517767650272293488785544277707153617515034626677114083580308455021901180040678076013254203634551818322110152385170186144891139940688681988714446529436084182446675142800515397369410963055800168486148348799004153088184228748663165577563974187896945427761793780331689902407812527417508378601817273802511206098946324158506542215273569555983846630096903915338521763850940889757669070114136295292323936594339285053350857275454207777184043950800354608344878041987655727140740155198616270030455823241884262366619617142785424685074187131171037095890257642563894480575794093428942495520560007257392339641909308727679267200949349878394556924462964730865803098545401948010542491433448966977922766191614423286971138275125088649437927082788544598726463552234560496689130442852031744509922809034787519493747836154049364896277281522904749350400196575366421123415914341204936392689042164602006860226728415558738872061151502148667840051865210873883444056569275544632806659310813459715986983166633631140334637910701605089602477496612796659988430168351068474991139675802939740884941810328748397712287115930650573266077984428239998892362878635034762516278859028584844464361593841121329566288805402424131046743948276628802208783025644467409625531788307656616003736244853294823723971045341130796002849571514008939152161420964615482450334558343928334277715541436171672932935760079768780917079152510866451238921009734055740591304734381911460118557178412323924657425929380421751583004501404299639006773783926234776279455143882335015384629007617520321445466710882587308308855968632496083774506293621127920238256317609608152856377793946297600137879666951593375404963572706470367812771310435956715237613400493345639313731662697449802594545460369626394973783577101422447563064029705867087017097217185294552051269994049268580475308097493921568395154898024765856359711914679675252701873344358290599898880960547035924772544118227700485264474309594713442589924685798974872994387375917201886255549737031976351271666377034898097355426293780620005706962123181376154072264165064421248957888983855121056456301928406322738191066739097496710019761167875324030988413916156171767279350607914285597454569208725512553657440921539884776160148958198612882465085580761419827391403708567065082685415367609519731769204447108479583355323030618972354980316987397805966547620304204294837818428943764195419875172422029261501456458752951374037103067751707301209834311015489019563980043926390162792339729652164193378651011223986009986400836726032404377470733557051148592683428258737619658482188260201652407265333668399672857286135961982587894934219404211312926815197078948785283639336773992307067455479598931280924113690096193039375017784780696745651170346440858981970505237025417162888980151113650534321341738194290902922107887251794484254747541934365555550680015663731879243397885552516158438668051009353126879500342629470977021565203086657542871620735731381003039399705684480440652836501246851025894171753569757883554273185203085935750760693064045861375136111054543957942650452684133880977490165806222693310781475877734709196440183016363185400571139308957255358014984047304184777470430378860939156511577053679089946246062006171725746189615838868966098273976233599261540517218104463884996833875139458740854708511180713269182553304621341142522650984152121593088240573835051993424901720170907798103780979549776714717612323008445238029704658876021374263330216660503934908488047220508467696855078963300054065230496497575337859239459777492918122674823701364995808914938219043693374918113130440461566983374987000376477520348493012029685502324423530473106109839492876461487213087882728542754675936238960540035456068880359097344086115241478671510455924759785975483764829934420481009257881602778274258468209266952511473428726646655914142110683490300952636155330943424965030654855979102944917489105132255987551104131164345603872755236698747236955810156861910566463860069737664651651539853821654870160659079230166647988266468943339090284691862027750950489695838716337629350422818743815766988069217207090655485013660471819492689629463555724938567232536352820044882452488263576444857905672611197001954474192044676523410217438379756257284628022625353755063877357787058810280212549950445749240919449390331593993507204567453095545603804324913551107115908716104891328457202659153820201599655036560818187311577487937190548196388040752431453586549938482795261465438294320184991762533183742197836843365009433138661000935647352155011310747029802398436368945141961783778641453115148879696049312023388332226760667533813452154728103797791956680817930043458080381270167388405173628840057840849322222354395997681352571711248191076709611130096274701985028704170537914081697611064133327889489303172012086461502296046410046685613542368452489112883774206834200116429570668576000900863425581879979329185311417801885765912629583856066144009347102592571096969481416692467185516442257301941554379001115204390232800136085107323495542035890406725940584132205490869367142280235244982488776800913296774180100340735558059912911726996670643508429753581134546574812681954348685877838875809437828769570186416539926396281942149463460987181702501705182987842876850009585353117278840332639081445086202821373100794840179772116606740630296772719777596369215335584991727817361161812171008354742047168007040022596909378080546950798989838107126675117215958616796499475374043822525708313977574742770499981896079810097946345073618746725757940327456236739861156285865191505103143981774968251090689464936456973702754304069951331539184124162818216175157959952733640770925643552213818831956406910899774801992562511679117938497891382992082230175772321432607526337719848778633430290095928276565251484043774245777898341827064104006470529688914198988101855221304526555134291263382923919813507694268589257748460900661210390970502511999923032028970761363504101532521186447699312731842549670984094969492391303102760068210276875500756561163608078718490352886034851332170280999219080362465956121279520252761973116566193150952020665417116460614002148155422831611525862255874824978953069925723265888677667112584872890693524216214660735803421202029228798339680177694145444155192380505749777015828277041554747033212273477462783576246046831710499080593579863222880419318356266668442706058526711983664809373154812069501342619999779652890924324217315671596232219655444150612192785369417612877522573778583492418103565387866005175254267838909357093772201414445011567540912680524762522037845684229870754019194233883547052124069376243790338523097147904067453059341378514864914092500362973448003948755538022088858143795178895812022435208507957906550262709442704525250446182613788127484358034317664073251557441872167755457406142718275855461164898370476033534027984737384233941037488156299458315368683315727005231135064706670917248821195150016295907392604956666948555755425135945512769882978980600606754699029798617740939195655078199371067826419084513008986284092125144739850661121294169351733892500548861871022216612988331621225026854569983961360016346148924013156564772043862099980336921201831906929270734744134943754489139024228332035743199658030239561008066067289187791845636693579076971049037921134970137953957950353646579926269562397150942514293364275719948779234974745194395081521220852826467901126263259982133260103678917366823687259529040528674773270027626311152125203878037257722392625903642166628695174454816576768948902960287501179698931537375515604069894457664603224712954688810775449335231961912377864220837027525016696864117181853720528652117054664543991955766549386998270886124467228360773956594874860232214480833707436053183808016080366412477050701594693494952919259243104934281004707955563092803480077711964681039767176563064421321383132937400869638340686407475143107061661540707552874842150266051929814331560179003891558765840855266023413393287136058938105896039871818302744128655863610620501187793854166298716831965178899336240801156667192639761319523569250130662644997666109146494980909631770295200404295394371320582509227217016294124175246107983898192624451018895160382546280941745782186846384847364083010475210079523551927144631199425299550836694752637142788049422479450673425755860185001913508058341897737794774122379727848399067198032218429679302337373343951462852378298670693413733726450486652293412776234800455900455197053227992968306157413239618186083733825817450563686703084600831401681286597837354789416366264379076840421025964101107107571397347556055024708624934939507473933097063833110423976484375495098485225174718321116131818757369168248345791846169594086394148600897158265158478833466749479868202614515762421779586220469214051850924394687537995673337315273769146161196275868332370829072138390618011809893589473673919952387864317733068738110699144568805407775258509721801609534180916185495666362716130251926332001007244856358271995882379790530938601725435676974176100529386634711903755467924146529098078895074951354737273127550315755752206959605433065298930913837191842505847694678890028327713582961050060341036596399235346319947988390201376688444319183746872831304670095236101281935785397277105044017697607191898501022995196832802510992603630801324499247485191633189883994108228443917566845672768677277957716842446443141787849996518068049459684424590000970193726689577890570903760127655228287602906645303747707715398855479492572526386803434506874179889143391656241443489127520726036543229663362143395898041520365682420085602472026905242202893905131551057133634292657833429263239345107495829704159415331435302672157856870312971396303229842194780669962057383520649617416750780762140085050757345182617891610524288517511128245769358866855411175523387524893331738911635138443644811194311673404457218626224568509921893195713204936668070670699951495354399387613208345797194071118429672914725855164844271720436547078064532541481436517275718460626759390416249583867985749402782159176085287523710929267478858186733791033646988348591650287485381087326618997287428644141196162585797479771585492614589526725125058612289354495427858515453118431815676317411268749644501935285330802049885013785901274503901399709281868252605308150968821622179427039933494034105763625051661642128372817992575060074808517279854504502655729618581441533667838320738429988440121065747966601227335122053369729628834628988009166728498768944975161962429508059491094134550088549269447781190865668514366723326929610770585848956083430010454634423310895275336985860892320676361435045864257618695806474173405198677429015427121457230806548514113874296951362480238256451197972560843336627419331869118724164538521280206733573147999428490935022598438508838035861223366116690887527538275094896595132240321275765176454700428624794830315098504105373396489655120334775319198918425833181372610809500665235196071045360771098089190982715279439162841972115770314908138982528982916293721754982429462130769196158533544654966301824303964549287172201861698260221524575594183219942321433837225209939695377884511029371774819922531144661154509091648416378527072610172822096209243058663037718483813136097896452655461076900058707100595111731389235253075590139053414374979881792420451484481278534021564238541855289337464851924356716127442830435666262429109768534037005157469638648906657504822595267281708195234265656970292209610360447406302042026286721864696921955398680831455147403103064256496786993184304119466087793939266872588907300786039295730302969945852373322370563162514129542654362770827655738221633773406892100467386096928225119759329335952952543962475946081364563056802057690266360256347282453105541302422038239851805340884542171883895159685342895476147914588037035834138995544634939380788046300825769930824369967191032403192509684354325296873811893271549599604664861264020432774037183678175677142378453266423545625965337443999651564156264309470407676469676116308787191087041933033887046083313519875822467624997210141148299099665181269347856868665028212210453447228069720910635346938187784805335986419878948767587065723333706555617845001164461036310031574211743297106574833535886437316855011771159521841968691785818103814623830112917682539843321549703811354674650107565887424787258166658785955168768855454559191612376878755650656644288513842280201326490398278432751979753465685748706942788687230575768022754977948769454123737807059142252581368515031040258983697270873548959386915800660902890350095814783479211105235744237249317543273017605709328261368098391620123380111177340292997264791531934234962530550626504081654711003647282266851342846461172490357885629789302142837025729546445227252516303187129774531814632307068142367101008112855448991017626025410677401933551219350924461322472670311497713732250531659326589227316853120365743865963200771676745772021996371421000393144386144816783346286876347793624393268866727876386075268512129766192957031793195435799175837062437316121093587809608319874821165119854980403082528711298344776026619281490353802493605924254160409739625157248696626629473006453295871235299111579412019470381850018286150805440065192446374327650266872138619589205148005193839274412588964897427715189426920248782066052947301873212500365057267255950179634801694203106270505329851095902770904206698861356737075022262270674808384184195842159863851728290417855087591484690708585812484110315052209119479082149676234624891005775383648409824325904043641688193961465654853978502313689082126644014513063058609431145810934291670107145256635397901747470363203935434134246018206860883837772230224668646370387357781987803239203692659658777474313095230303716271661054982154914577701754213078557048429238853662303061511965978773792556619555105974935787311027372424068331086673162996160099521941665949859192331438076379142819583096864516837392847387444425271875275190064559633682833646425246396904580746713961640209450051465097576302148014371981039059579915825035373641830384524195413059636160403426057827763011553501819392457968800964766985744739011262274761985328720137247985055271485647553124488422177896580803582401926419730845412016490304332769687376462637214879076166873637840700260989155764104767413237287326130279984660935115043679082010694160214723106241714796028856636243012180203412436218807424639919924833188671565046424617947225123138306914351836874696289932387022979032351664764904424739341370789844068200786331326345593050718692703737145996947069811200890350652548823032011673469514917392206220793649249022308197838763685228288989804529222959040112648916375022681911973760665176396487458912559244919638585621682812693793271457302115310704421146901836283646250485592196146044893010341553780747487488429590041389972515249901013090545588136775734427757914903709840035703700191412803929343086694056494961349417715970657611628187459472097236466135997502725070804633610556101332402940103569659972330327329207666844356195726420701372431521809395971454013770718675321818717021837721113486454818023689354293435285236589640242006529782635859320066555793249855611201017143265305200327231005938502280757921366845898847459829832179280830932945150144124550214746735941000656852000585696728994208131459339373108724592387344611629102876736298427250064351696699928178070157328443196290926550210458923290781415605712085566657246255649654405447060888571449253785368680684263849657087563263509207914683102064986876821328198346518645699293783229350522141778446299120862177444976172536948611528358550002344038764975628721894632865576817071956817580171521638955313723619066126842531773772007750814727104715747834533748699330809289630301231384319255426589874715918199253761015964970483594273183496766497417601062212064218524301363897292073366808454427838930150985561562748077989899855674676625743246917133556453769836917609430765071647033875391520637946472180588502227550270020989844927760733014709424202564776584100811576755797695398251432770824297671481059873410590831896871952253263754372472717367158740195980768971301445838175984313196337989701042511551662741408545243227776841755988053372043866549647808321564559008210378883266200889605248438819985048350443536001756469590940092681418128309626524851027500246362099103403046421581106444455003870525835733346458689706406371079537117685025623661611369719865646962353495849080243842118720819905612350917350770989586453439378356690644376266007260616973305718758100284289309636092223881609581733061873265607469963128487393971796479637434991556591503091666064955758517555590526810995172132973729288985793863643389400195735545230312515614049705624957030213506287655285945279331735852539746410282798696735092228897420556145631483039058468221997230185335958013400026928691444521806954962374545723130861489591784804299860080448392590718066426139919793264366471967958302586105009869841289155821630116064246981539283247927944533734205092167905791863879879265777134178604848352494218999987265475629274764446553262850697524248189111644216148588285682371756191432419911064504944861400427770369573348670870705678878503950187757397346057425698623982421849400745526394778755430206342928489313503946867302562873289780005114180218593599596130142293724229430713447281377184456059688105477142986083718889323606823445418183661760396403142032713166813453217634259417280265353834812819057800734476655284837799667966555980685394176718868889288915525405716279060985773249800766873107138265410731049212218742915802511406351172095385298296492239371173884060408731607633447733483492412798870554729940909422987359237575774672795932842767240693753811292983042707216065459258290664211187739996503725474180644599289896516311930490861201945614299273768602188138427947156138283236784177760827794908700733560916949160700860557868374909469883772245084909315201949023894041210069451159559395587501198435865917260682378699560514647430669110580091347677450969323488131212919456167323550343618541469088677455228761961005064690571292175192279948717636226924437742134690688112182587700546399507947627978725055043244191115644605978533284079229362953584138162739781797273644521370546722343169616637504173093929049753842269536731152190025594884232084113867011700907856958679231344592737848605654114040496954531360799434424446380131553026454399677193170843325277099263021005014299807985984994559670807397019344854250939839429485784348160336393975227987236399894778046022228184669234983373889167840574439454012932578417763631698736416416078412890601313021184127249060103686835965452120133403306040098660116990656909227704310977373856092263040452071792610549049353617394940159782168851514528598799691564210945509757669114670478897700661617574474121934422269247009388432485337013950716471122156776062487415869678299860271956036873311725410589357465988783605694080518377791753122084958902083167960082090172747364862075990516550239544704158741888377255582216254992026599077864216121512982496813095378945775651492477390630027092431960773034803490741896914617924076844490920947125865965397073528464597998703876951265138827969617928394590182759093559453129806416235170865765413818585900269991050025014922560913419656079942012484095729585117143825188664464166758028792273731826222180824078551123848336476917228517218206903947648187205487430344852244289728383982797533689908997337032445985131522312592779819788635299760008233187375623634366977019396721941680492076984552086238786034647146369960947543208535126621575577526064723675337785078896398000896621930624000003754212012920604610808708069589723312177915234721957253489016554450764679901435632414483073484775365395473070732481295130047158067457248557799490506039237303774502269256714636798013113365192703573709264927798820454952850322291996557015465438518344268665488810318295511806706826606045166248560016278692944396579834505681456850914532982416186946027425743918020424275738882336979717743595066151712176187241463535478841432416277029358470003815218706780960035700019900617880561213213259207869735552475605488613458964334756553227172573781965505384395503642748358876190577651171913510490377448969364222636278048967083377629185689354646653403089240276666617545242125224375183991094990443037562097461711607795900355529941229408511835630766811672316588515216503372713847742729318965458135927947911398220530423342799279905933273463047556086038253711041327012619856401658033128653528258086731521078150502052459991525764267667628460443659911761282724633666698883997966857176432999912740832017353987383032847526268998366207951999887074166213229889808414414795013029463501410431637651081067269845663396674486243313874481310314589459677869093967042831230363162567178638996801783140841626594837242038196009404993226844778199747371637915560763178103876547986447302926185081329156367586613432708209989482384701203460236318660345594605372157566102751021386649080402004678099776058277675838777900539419391714514555189825421022807007276610965831224375899189261836593241076592254818488719494423672158148190570165493296703982469924316004572947589655069711002030363792400323091784103170252586440576924771862030067634122325864410092016867466632591911199436865660823100610945123273362511225239090085848827974353031351232894225557654263454327982776597099915463484909550890574135458702629847854920723739988241385301196105468168419160605903162192838441573008061235658028562675215958323512015303442227490141908784953526046804431847446142148451698091534027729255387664789784091529499483076876852956967317909153216000767580274780820097055462824962137750873073162331023493778625679409235674883432646244552789818050996824076140456415267169363164145977286388102965711627272534714253433767985930981380436565175143224768593932081689329809942107904735813559937189366997261031871455954691484253188076384103719218120969449361765173553358087303529493436484970168371167894633822275139836783850130867075568021040996944596098239940234628222723785593031677383677004526961970084947911462504908961829152776953215098366252227507899154400414124035788397953378888003767064896842152060057037716697975898532520527387733540215320150392435002494410662456661900860903907555752469229715202980594373989525229598123583872773575169585010106130778006122011260418377939714631756194743422232858233464906853825068509877414872727132100209731945569704158799877081623033528605711133454233465882726161740485654224433907312956755338301015929973027566669068117641844898874729060741929784593927428428754485946251429265251154482585140797719703819611083055704645818162493399694151147603993355287729768294771380159561815427448159984265101191089874275957495445166122444601088142079166471171206824319626282108129889869151966956634411845896674736230485931926612667495309480761760634084676443899069375594167683026730954144813494154592693406305016111534512275472219260229095921213943523011744657509471206398780747832422512419538823073025434456093709607987273052174747571886414944487468680681548993657285899963468939930790675369718637089313103555979268895396807390413160303493977935176717433584264680600254630397921939788143873856279086253861586764609162361192774673670300141334847253557443949787813363712938988402740330768926095724100892706716720339852708239015172763120606660881712272728253053689979065903727611996820856033188581276338206957325525896523477031670159121884311464375716439585956259026986299114735179894780098629826173948480988761344080381774442650069989764349814779886727691608121538430905937307327167836046021019839571636183271731322675925691473306905131021038464074775841739913131498731595359758225232315776287110293824791485888473021472067267608612078436785750992829769121420915493757013973446931245780303812360650402216580564257818537498238631818070159125882619106243743486026044238403817449955790729441375110604674359364299620589605747282924055721965971678090297019107722727185982726207607166404760678770410022581395383451378469824087154315289226983479150611006747302170020961782291516221783019348705732162734113315142279187948485675024413339520206421286643285887495283012774446764270786462452638193201205126587270022363646218997007601740555977529915549121223144517969806393833362526387752646286494047273198607813613956158509228355253530527481421576522865189124957751340511342274278273562670043218073504437971177777654388412992974022302888550965032509623472252874770384891682470436085538571685491842956894518624749825287980460965053936190351614185348540567728008302673255031062489339064268075004015837321881176146074817918649405530452281473221396947171540167679397894152848638784535937182489590976547000951765550800013802463093068588656648814625829452137227560632668715404111861750936560092290512374899813550540393015020633180740458148544284745206211607332454144539879454032283513482037780465915869495677070758804785478414145379009369765625202403607959746805816696011346703779584859672768096286563417595619732993657222500726424257450088191596336923537001694959377973970646970598474570392678117839694417074135746380544267207377597597462889596472803959777393712614244041905922462887480881240114257223642407231524067139516129217799328992046226227391423058779097276851874878177972962097510038860540849484813008993031182309656441419940529011774183672323120849790178315622266383954706550095805541825748349998611603130797128141781475178826430713491137611439254540122161083796988757349366496932285634470456295907397717969266487210554259416238438078662651998764323275824296322910737901295908424170790268894783285877469848891509599844340608719317130959663356419316844611831178986883460141841115927025912225926998272502270841955359491891899606919772393833948950039707078575782436965025096846212924430450625744296123736340081676975861755843418314014463566613237819426394846399630462701156942440302563063229727685445482304787626111825450565473301581953797278900617467696574460472981959526814134601011572796503704359635302659521747518363508689798498191594390100236495843166389779546347766345966838341122073336298478068992399606179075175998213064247687540601229089146787233908490853664024646207958089162638564628195962466513822770568872202845336502925976520790878598887808933163777528572588349887584286144486202236123438520518613863504198969641890435121139519556802485102585885390861149476449601886341205513401127708147541202022715343591557804358829575347369863495382529544296728079364803494739889811929500852076322335699159902855285477041004044931299689078063903071558810045100554108339743277854948640417532703649884385721318661530672607817941777309502997403205614419530419364570956392235849766879814980299635646885393722036841797331762933409458683354004125745573149033497580199502096325982943926799735187398041623982162667525887806810554171399605553539616763195565598878847811110334791325239468978299928216871413855188108797081042448962618440221849234678436052569881386817891277399209274921270208038915046217433416126043517522536555281847517568220013040218390912947604722900413716958648383255320352612960975236569993899531713989628200633242898239697066427023591151348308404339842744134918799861473532747679508441922032220206813839598157531969938623517459460510866449450565569334093853368458989480999687306540990404981450562638109903948941091056431540809712796244237680536256019826197849205491894637219085406046240873099260800034824932251609988494016705908310852992693598304294996727480803241514562564859751084277672285137624790108029821544388694299393443812247431984088291200646284908220958234089736356089541463956194568819519431295410504415568693096244725964614801973499972290024659240492010791771817398130850538587798517537315811751823309260561374695735920448612824865893220459336296081086696226498773776220046061117326137441676614097235782309225006990183638049794360968006361416463052448397539074725251891281738313302580280681186460398960505867500256549067467117357360097810679469694198728493146154099097352321101159605905503292787799955540055608794684734637903190941945417712411660865831645372238353690824114317017503089075146912740184312284503000586966016064171587210302249580562317437013507061005916612901019289586162950768574553835849744199221463357116076570878606339888092859969828668535451425723868749636868109947596807300279628341358138393226224755710393927049695022193511464056600515126084783517745248964632016326202854017071600723418034798228197064876166970807475337678606398452429700138137252431350672583909958921951285441256114957248335731931695620237956101086551367835099082453496230735824710111388703819582292519248955878158076878642157118551126186354045250358027174107396411665673117246168320331268660278575047941024327255721512997074905052323947148864970712576171961549820701961423964631711334529966983190338643051458333121829314346897722389805075075726305696934345655373981329325072005574743158275699359367825214004591603569096928984449123628955682712510026739361141466101418492665293364136145261160562132634619154944638266508807667255134193920418020885432056834040868461162771271716604483350413071324513947559644526869701884728275992445585737760009720266238362026541789705007656481079709747977851668147946158839357511712548355980767297194250938917254580912057124069463109523860759823578652612368805669506751826663929345061254286352099635541573074686462769398141947539452136693792249731160367561091710795016038156975933478148951074115755364752566117105484872504849341374195188410980215315680939323807750159530220204249332183803918428876455574011383004893109164537924221064028288742645629054837493999166419955149515153654878568858575339734961094129086801736500686252405714479733760339010503332517498775871424120411342875507226561037610574459204619328356270008130704731857159183665728326177433885650764367901313622501446502808098720418270739369479905716312290104584855522169633166345309228252038600355471320421538726095888897052552484238530797931412966623085720256577873176368604041024312397917544900894796850857925598116149064906892935399740841499203165042809356600802325379487404029815393554416401226507474321978411793709330183567941730946937925364589489948657320942770845759120191613327380019014515193366664501343352392535821392186396196012653906438341748883475801350368964754201974620536087676680635443669380073914915174676307918176287948915612291084602246928335882002878771728447784329846592624897277032745659465657944481081255325950852834976216179665096893339536619910463131576516927109970506319885617034658183755842696116336549246114067708055887669878461691336151518827298558266920621874289943150935170143295399581999276025779440114092076994738023466224868544462551627797629087157750806109213137447517133210609452100530813225633245326684359028573883299719377737351007722389201513943494168179830602667394286521131043600199956897621428373435814232909408554373871700776289528425173890225233382211816042849628050568470137981519105292908612358258616417727185691377767576324974693900661244781660300977490374324313526584906743189921235673308875328007393077417800256527721492631493648791194993454494562291099377838472486699669262781670210332777465576768778752606077793515014188084475317924990397868910263055391418152304306696049908527291333016361993426144057191698136312017893731331670679227772383809182510467256388221509189829501302840277536611518164413623711532633681073083439677721809685302037327252089317158909123829982227665529333651270976418665619686760467900320372849619833448694120174546592404136613188028326479452141629911281352771633694718569335268204763793657215930784075333089162560874962523960531428514493565634210696460108584653561952618462612786013599627259792534523142164107096947961304938266467955377404533644382280097488521593435879091581982854846646564914308448752741056069684234271459922607126351793847358896862483329896603555497467172926537456115478437716798404164404498202421221076039729359281017772914986619421341022921968718371638113740991247693504688692969902902266440422620585305629586080150884297557976572500066564754504805347937548332340738212503104311482173253229447702501271703174386976996770439497713230454585201802948582358468155146914698762131062082331247349022502398280169973672467368059049807104792599542793187823327127963125680813006896964290755889792755383929935720517120116994835266398637975721964627770507081977944921751602954283917035655394492164348743361020550513787604591649574618591033547715172782810774211527270721256654560313964084524952483123437996232418321514154708264399453081246971734517182451555232868012959771382640714259567473057206625104398876944763462618594909261194686282031450902611179531730790158148079409120659465961468835313915240296805657775596261440893411642416843926191125155286787202176350811428207764803955044626398391928161303446575063681884134456950441531281361891852395841474170630955900514325306778645953670927937751846260740702732067792544235272662124916284267246185980475058678727804815401239790490071113515474813269145853364840583686665864489305533135261696150633561137746566360176588860914081085286206252701582054897953141687817618205447190804260871688032431184145748085439988129235702821655408495176469479592595912712589123103741250785297939073334189355881975224623592716148343666608743878173718647205440839188644555540642169569395362534015001929958806382628026948897370009822210088401875028777678697132707883722724309166864601900167243947827478857165425513184797429197254514476284508186799689382762574004957218879938617658307731645305982736413268392770673064773890217369628085367145489465525411283750762762151610194331476649168210402150493994012382166165722445492699592466057352515014123736880720092864912135867324512903709955771188698619397826664552799002616064318385457782801070071498443412560002989802145912313478655741459128921421434195872686938533490745848971910645499247604813696515546639900937944290042161812104616622521550001269675974661188252962539245312202817836224882015404381022691252497151656999781811063575372432573031356570480967480874218770638055548848444324833167001300622888923940439395426846085727501498166580549492226275133631680417944737547178223569699824530155050967134553128081044075477371413028947912088553643039606184419099418408662959693819568346537630169887513913201115458487557814136622850063766459805428825445334413536621663965178658107763636951113084070746331068118456517774043487335537127289822653475868829743897805400424629421763456239253016727008266933980852649154754233860371575977384001745865001536685087648276398501694146907871444957588472076132366928374914351119260069096313202258810617202370643366235449799301285163315607128861830361897153593165757046659448315937369674174233933202387456089677726104467068265561911378552245634717897027641792571155907443614408985228912819336496078245064712822694020165763801051214683820997029628667180591794209780919488279352307237000708099498182748801249108220721071558690014899189440119181345704773145589186916998974202980530422973671610848520915302136816810811483275887563639389648211697843319804098166868833333012198736166956753465985852235539073001935728451484030182109569533841304290714814095809706021598944753785482271734830822569252115664300088890930910012867535819853725588833526375935591676584716543992907146643999777128318731185086661388195739850410816465695309588340985616551360090419440172524511424722224997524091970416195105178808117222015484070832127081973174481894949153117065963385428593512811838866319138844999998560571461030003378105564346631574634661687130964201086008727794813414392837881470596093858187055216242424399268172496281971472269451155942664710390872493141113075617237991339938142524893411409631329819581019721925737257638389552248290305958054914579226184547243400234584886983289732388751388820501420819052178514077107001788018113790896232117348888470847526199593583668351545650426547464331409849502091992193175463104822587284353489855468827429597278339550989754281780025306842709428588976373496879129861231042322664054859979873215481850866723930798185112582334111382786336930965808019401754589179006898365565693024233305938526934497412002081846135596945255364068871270857434395434118086706422769946147829811319681157758675482468697393582992275634640691365638954974240258213324503994863773411445714826143390066708253137945405731800115168662358101350192340948650606113207017412402827684174480473823182031687516835966819814000060902063364823179770570483540282380621129829715015109682934206014227633219598482038163577868269807849929898681016743114427363523864826151599809601956972586463275040607122518875753141283035050348814071716417683394764631695453074954964121988123158125557880809409944412616956931616795117178730713677372143816542185637889165135170984243682686308842122951639621660234639436584565317252208342932086209693316019505976571642138872516193953305544535409585002047525445161623452153073826711946208913397229114897809426361920372503568822010919485403681211611814411304990451405580410258232670099982545798350857953754392202399327987680062515204213414513227968866016152156380979523473023584490218601836218651845696714624680128768402424966558234498766529472007683060382390039012714433198535302637105640082510431376694364743631286996035767223320790972758905838002222825594969695222727130028346685730373890167772649577630836094472872398252454453115200115149728850871085492065390827201568806697199273829756001560526422959894454921545111570861555795735624432057471922892713866720249878703939935716276069227112286208584849079926074686352628735295054136641742185044461516947777909522821893654525821437871601783036807429521330453457441830511679633378157333442437599683837679147640278395506942897098700454560549370117413780896555602359588801708798490120400126469342323455333894199908360682658957488963272752434801746772387076060503349195737120671241949014224623482651836481023103539239954382769211825236751365670920740056304789709822046366600414684946567728661836689744582705596583436784735120930032393133356726440370410220757088057554735931784316362897502779527731837647544880139566376688352902238316393889723370736249519386149310426861534126121305046743963741887230626275150688594347329659398075581100839678965409779170997795335968797167090745701064753262180623747884272442321274004231530814325908929267086464199208148533269427429727350418497140815211584775735126190834483697908109346617632194507162841425578588111473566699009185946022055783178150038013389125685843225367767653976764152197763497559922526945661334962830405156270187415441085591177677752970442360124256643975310968318355694024179357806173805186966915377956495947631853219911165661636400077145638472536290124863678779505507675009896562613498285705983643753443470082180371434186327928263943697660059519024099830732503971569186169669837173490775672513989708547537285308617440371749071970680209515566537072747826238712761462949142950534505443829084319444916006410281434402157752764138016146994278562226961263698835977870621928636143857833395261235530406964848790859063062807595311714472640403496129513818676195923678177938139594704780479672589166371343221941910732851538678624404988747483844688193434759954237273265358392590593772582092631051676645066782404071997291284082955399436110132794058162869256112035202261876907375673739438872483466999427606036742628865840757329104127057965787276964046721031757665940802800669384698678046105860889380861684093138382910768638859575854342520212010708430842423381484251233626556243845796694352302983456269367453245492793085004527988123235241423515475251850727110550079890120539776727936335882264668056592331532398347108396257287608272679330791039732317051834794404479734168763372545115258308804744697536536858079305386050105678832411793433761319935010212495773146766753607221659566046031655437919279040465645014869314046621051177479010580005867663411741841926795596649947469999858425205875024567634365545944330646120526741581004624307454807164669383655121547675450886153875034317869617769625540146740705450935685698448641240808376548454686839958887102393633883400921712631903922268718878713791770098316278476231795239003285748359595017392408439207875044162750759395202758546898978855015680292697811885605557387017583005797492867439613808421173995109632943104119086508172052243888582102651389592822216258297027184627833490767257916200875959923712908417934222021482595596974881870106685789634529038001706295236560155410001635366923534933358867370881941064795735193654092319771610165810831154884234708115799928734599096749481379356254593968973123592181116319974414084337298078879310856686953143578030849499066547075984405392779710888695877043800160559002725730018121514973225570538140462199514568074164094652099323537879704744305721285334736012064185752873264377778651327719542353903979316762541004896721191635583338227576609320019754605633079179410106947204484431077234178730031408359818623681808025159071704173401127190036551183791381857167082781134858563042759693290756836497564111084696561423074675605150506090650692822307620323426641757126175346828128116212307001151403387759319953904465801090508930412736003872045246841841489432833454540472511748770597825821026868514741938622231370060724887974000872553331402684515179178150886975629549126765718011705518730269366254491956545542779154491529074714185890564154003140100442412714084695867922757071929339555525167999486152351829466352096936149850063319210625912916161870294785925416073280875442658251790357466978804010081039082911181397066260007486467566323836564615327654842784488972998583997337810653153151885107474331676647328248714830393457253955863954782410586787671207128621820928225710084976594305090255351869819672413615897565356977393624923922377052383618238364191413275956121429923572918820715881077044577148662044686368088180302570527640270323896958461880511656460520498229462252025712042466034525905776890285659451984895256626853748362738180191316616759083401701123341522158797739552183817231600815592005555688197433302822378766231469196954444935578286031076184789353761780981191814665064801521351937536245655945924949067597767365411749763608617092491410669236346419060453370928457710052958435641928272956829792783192771357612829154842769230585243608852191528951325504013775750030130649765425187006729126737120428609996932256104462020378586706194268831480677603743397661740955860244186196627323832648718605991884095470723417891963701103841729773742036556392568581509084783854449421845421545724793213840532300550631523369846348652832214280582430074008639812988197579463496575629643667194446044476363387882477776577561752958739150592980248537545486046795908195058099896105900206649493674297889764616258499013577305574162737811839902681034863986978039776941565294987415394040868940235736481472680578800370713689716894268580245229443935176852056618580333710486292525719707765637549220332704999660178704323130077859136832320616230017284701606270929141300440808032991098326309823702131120377529093723930649789898569207546960244972719498035281821401565588632661057716859492760432766399672579138520956159767707616051484500067614014783777166909231627893765504502774327740695603978405424603892195240867576142660680520296439769781972877628981065058968246480199369349558468431606401193685110581032550512737301494511154690473858369165466729278459761228716542240438493612835357325279984728499057548990415937284173522336403981398227872043940659594204472434699624359835559554058161663372044757424660349282360948643795073116598517021503093619467491289007004701258204883903473636490499720694461993389824317594164677101846373107911710568709999351179898765028192122533884253600493750901330847955069553566315419424947376058218113998314670287287231651280171539502498208790032663002657955517466435119927968825176545245024063733959960454712526757631565767654830816323800517383281728766910640972762935124087847801970817244629865410009367737389055902933688087330285546647399724597307262003505718305758081753736546703063747681336436117289870257220109074561466061372831733037733636794832518129542009591246841267668344634999016629615918337484645908319285447712730599636086927120762000615235840959268829940648036566670106335358420866286457171729169059843554901867857675894765960331222137520010949622557129059401961902053954187451459384391922205087504290639655735344660441111207009190645084451989145661819176358001083216627640817812654283940474974575028696557080574742182497606071242768159176566677065913905912802140821733817269882384513889430830769121393307598582923887013029207497641434738951695252039632897432228779728163352398585374616449659729800373205221436235516839432264827032500745640746416170426854852623619779439234926673636314506805169791531907894658604245574844435008440870981814713305173864949438090165229558374705857296303045486606846625989019090594992105432228989299490938692538041106469414096507693387929617829429822500896408066464446754641293708104333486446443188607258812661710156037187148672381595972589306786690639290362194493936899304296567057081955916590050353064345740852139904250675659905964581907418212824919498291128195707817781259256173697166401539709369856090588316826112770763045832108278611146811909827165903323883788011239299654877359973684894845169580595022061462269489107341019571185088648040858743015781920317785609197938754047514116600690338961641595618351174312792290573763713585657414401962182863755121127154105383900381555175674735393049100277925110619848537944153606831632946201787293727478580333155551216635241542976101254383467778155773240715609816373505371429501321896458844026550741157117775279160666152338963581723863752744826238321340234486156915719281045041569433950074090576008146113195562208335975827962475132423501740057133811785001274629624242896667868165975677152804404776344010939576205845838753198838800388863216988247366555643395930661466000073153442105345922793928953625954658655710995345313435272681537518580849451689561506989279537451545612350370149251245359768201314865594362192471411667535583481279031810826404761287697031522332836530934431834958322285995503618418041722938801165523457406625681297160813646281974572265671104498176550249243764993200094277599220569125810710906260476755535329275414175727496104891416913418889819243438751728507685464411480812563729381857624512046496610954592110573617954854863447265546255180955278638433085827340015916326283927644518020837201106170673902703905546108251212604282723260685259667821245027888319689174980382832407547407108696629495005126917293256362420632743876687950307650079497492366425792360082248023564908357343752559241837177386421895442187485393462788329731024800116125731892943417367411550973052637105052612247824392923620168696529184315881557464536527088477523273915065553056372809116986332913795373413091890508431219467886366762517194120593494552265236427057306555199146545201414751784539411903418830848585784677839623888697837478448499142707348945304582211540711961641350773873065715920257801215007411240705305941264793709985931344954287538756543307607883853542114612537261309085235331075110823809795380367636156916883797672867424803860155710984294299525076609025458945392578987976434931707670263049576636060146328619613163256871175105254699415158428518845228447293029577048296361796862337179020647077360239366942517507394249729993591633790733111857406846865708126051708342396262424114964452773028618102396473855479519413909836289598140145196783317881340354373406238819110166007647574015428183266669612063486282537071919838946729014669411494656972410836917292835477512602617330146755424706487241610998495251188834324082156909430447195326123430735130294300632783215356451336196896208897158688684698963216250633082167131000806412114235324252196369412505350927541116300345322822451198410368657422763366167807648819622606788718719915272055700993816750272682203041953152989219980545982056500610962190369486674333504283025394920249912361821440232657357839556793050028141395966334285435987994228102992769665043885918247575089044501278536738472802883905555562732350849679851375771071865320244327458365413732895801380711886352609484534608626433010768862426078769091765745004092789924989756311530325375312466139333330060981582173387107931461848149627417054226718883429823403629405344340095298172863655337584360474391605874235102022782208609690933446333832339781038679649852073987882720905438037658361476429517546763986184296059183018058098023967879898019033253067603123232455751130896199465952803765518868328349479452599934695748844205013416694336663508885058421488296262917278226750185690921826613505610054907929307006542645287609563134351359178434901261309651048559466945665699571302366417024743649939103158148416712598697257781314703616896308297403763685257458851317791269827916237595572162812075607745561312299190329560880333441708397968853535313220880951226025196138245072320401679356130047080786037979840286269939175307226660880153753422633177253063679290367228689750690217656665598723856703021361010868059688231345069016139836514930022319233943910838349627783579582262977898137122424484522032842432760126533387659600727121143856140529131009169624521978682745694336726038355245199595668047867432981984039626527475532071357848886083242299813201138834943711905607026357257927579060808777936414012150191190303421269058962277887905502569504919611608346517728667921408555402228212445732388454066785182625875934154368553899115798240105718069817571961709343597977643828339474365477899647879467780602965786304341356552229348231664173044311147000495656465924358921205942542663032850729617167718209507242331766232370571097351957561402619738546550125019800861860553506580715027222069012848626163724548807340284707664413308969737455149315698610860194168735469674779542913320533398579599555881318866465671126179002546183175860798920189309202938579659149886164268069444163468193902698133167852586155109261902546719585361905531542640327300214689407745240213387967996262762401155065841755648373748900327383087540189750297745183551928474194245046494259710156486838628177878330523556749770011846454740772460636290810076838229685323107303692432834906597513264832238576753359754716968631301964243774974732747658416309379347730431844678381763750401849884211442850296635997894483718502741949257658355447393273146650180818691410803981117174821706597069763680114748892838268215154945522686370003344973969893166491229455607797394392440965186826049887920779898062300380021884608600173296565003505713175210782962529080997317834926057848307466362114599524835377716608562311238580444215618210079062378751949688473433732515493957726363254607544629837151679523712572477636223072828401436340026215841167825674893865345612091753221850275486557652616944080904615657539997547725414824205877473462275826817302463262076113435871380626859573586492482194622780475535899531546309773241069521752927317715742730934252597513574036129341733681243763180625183372238060153689525304167757061689259535775234728686585889201273742867474349802650530875945787283018025100596911603281165395153441201497849744781239559955591179062728270703183336623071504566520336979093549703206669343469215664320001613737937280644787550304284034810204015956542676062355073190031038756726069366822093120404214788269593529881539715288845858161664344344891139486828049381374084638880485543370312093556923973383952481467279565062764676653790039940964225281892980729365066642293017283524038022917989956068506038433946000188552659203300542373623869622438298257295097144856431241032152852653485181039722627354157964781330792289152489507899482070080872776348870742669634907691270447057530574498012820888380871463586055621058492065661329874623301494284823466745569787630590076340425718209319263553542188410486639630161925732882167947843515208111639472988251585730382841507710905176900950720795161660103631434330257805855833370913872337811366648596887998411462365582146843223036638501605289795812914323743612463929744712372492535654287124271046657546139022384053821573767462861627876976540534602917099729025431522125997733108623615044000744883324338504748947384534651488479333493605651739344306978118629179653539280886252560545546677896528453375742320303791647919821768912065674133368336781526306022730468810785797949170111565941398578325806954148333914325128215766793646071442743533788966053766137543592760881338018218638698887008730066786515342291945776937899516261330772169074553939585920329700945042297964478670117262316522935120947711103200301517352379925195221825455658922532472616581092338717488871659932392697739153509826651698499812150505042445348278391690123248279846422807998594156588828849374517740066272346024544781314738386966334680313860697999190508276274241365826837484804915500766534018283171195406491945563253764426534758070082913927377330833856536948617709205990095255493830208532466023921961344785359718169555154460799526978060760260716617671653005820404355763570593624350591315475652220131626778877551891167597744890657153192140826918757359542689281925988321716129381583162295269699033634886494939359913427323193947924218621755716607237154355790904051868138150814682608260238506365825524798869135336224807626591621213145408272426032729869268337076668414915423987969103631825570676856389562259646523450748550548691795356818517817487409368937372585395038701797348990728627851104272706713300223629745622837776834696335800808013531702339860480357124843885937469506808467166271902074445260850680838861362984044346162802121225535688239607611291948744606756874403223990151319842251753408659105101811856088325073024762287879351043850847678221843725779027896085280822212601393968317778475357904174504435836295779134012177882907637841972087858086646985327274168776308724832883127328078292493916796644430731557924905771562794929935450149289205689539057573557353283231801908431156298380674005990635369699327198613725561565620295684747580377834572631280760148910269579277066812119685293000182131095314948085295175083648180751242792097477114911269048504641119749793588780932210664565730813862009191676976868517115830951979208000245054426933290462324314389552214290952237829467718371718741403598723471773104542030230216015117100179694477758302965600131745345366916267292560636122068775389041862518813391401253335466596652410665155424953178709168538077375223520609432982326763091041040483375872510288642210067289322003106204411825520809117219955163488474690396932142499812766612420887104484010764090088484487882220072681099254271544182886354065660895364396431716864745582501241082374977752224615779063101472249760241803947852046693140094183164130008143272676635055968604764658419014797052225889099521503311431915773071284132558254231122404454245278460582254012357644412096468215252800863948657239145899599771074290345544610354097935525288447173305227866911994583915202027692883357155756280642315864225566873054568422438390818371644248140474629744503343852597965737941991264568024599319379023972267926483891742757622743044187848986121600743606713678083598469250311948475363915343440795033654174271077559329565113414923809128043982521065252664467306699177141800755428412922931247811496331133099096863318989054415596564627139689804941664382124602187891621272777164044794204644579774610924000609999950576198761878085855328521430900982300746057636863555568504778690441017654646162088960960386386038384099487377130068725428794788695485363081212108470560858814219645667767520976737767672670105206924102188911625580284547536298017112444623675899176387679302550509142799951041129755922773613937220476257350919021347309967999797232133909386061308424322112835351553403302123459316320478486184285071833672624757514860555815747600103444615813642248887908556852391494801512420977332507837808596877294597635532306836708086001426891278749885466026426643190676019118382101889116830390660293960358725629871665966645402402310289733057707096050806755229060075125039199708316973447270328972348556787069660030380294594726198169285627212569630989058786498291993068086076462011447726657108421338726982950564836791564488858353987048012355687003812990865339027413864797730055481365864200881602856922695223779518020880106542603165162647776924457471400084212720879106361180130341083626401842823899518220775201653576083353657044504315285241246949540445265578921403462040799657268161944073379964866003779353162830127555999018480767252300554562355460628351433862100523873072542399646075064905453153995852178583718370049881403349251825943491246762956873392510781349625994128501572806979396132175881744286413059744347284234177722580553523917757642374216418832175952205349814924128556998378658071162758274995911939826375670475898691131825551631531523096739615366260040243135984115294134164038980342316534789772146867699721841457921342371771780173807829323375578867296481252964468127164907471085459249086063388795700309758860982151368918241508276000539940236101057681714542530096421675364197586335926758513118345483925749118065885721114330967883668982320940674178905055384524598251551018500806791280332078174580817425407897294572449052811952004956606669716379639741389805908087564447945345417370152292959033823694217402707271925034271676338660189642877492474240138233102851852160825259622636656771816994016343346574297751104003526235691685993059093241868235801126388466640476447277585222177753504842799506416842717286542902165672078484783060088980211370970610136125161647725830381509012020541077543163191929960980114947835884832908641045658024193254233536376276662381563319780667394552311462577486108059757077791556280688653244416558239810145084643711792379702957162704209257776327100876954406693543131499734133167282397746696678672095276797181587156304458836245305564881101407558500570494030617905403844032634736208398327362203084967338019947547810742044979719865860867548588727833502506860456099001421745420495340350332876113242159831524073149288278681456672672673030224701627914732546189257626958433992295731674549114398999037867905580811703464564103115999263598372546723546987221106064221706456498340267734944414165420471389301511878550721528232171783327060214309446868549426575597235536954530910963022153228001356461505742619768912343635259280725663375747641837788383232060189507091001936289127716292200811923844095369678277448404565419012771845491914575728721588778948689303044069880590963107091883539005733387552578605981382652656736806053043479865721457162363966065300662657318896565566029398954752587289169754954659950368255158807529498164140164080390140909343570128234002562608231792582863060862393602521662418653875604696546574664805428055831262619657143040864494632069083819038611029740767233412940200501606536233487923394879192913776419347364668666958487994918762909644718739147955614783943597221733698838214727716075726911028974349219451913559914546424119406624491148319101836158198789229058533885716504972468972484761219066337590977589550693650781302374466012279419892269176527738762191949850380942889353437990522136348625498692989536218971532993107251686766319561531954461321399413097805286202084851424295300284730077770924159161104869482517591663823461351103549403086774408673968407023691023844523447862177883465845164971055069372215627859129586646883239202115218464374926359396269375246085160716049170832971753576207630983786487563023777854344727179719311662553008507270895644273855140703160975453296088695437086438496289381738377275453270598638857599690774125657042851157671501644155560020918936787223205624042448439997283031421277859442072445648696206609937856088721473606687957654862610267970758439860275850720773507267404743173548041073602657412399873942134971603302824668597929452942622247482600486289848939845795309807349190720570558610709043435043331999245213006451140088952384304850203485531151250350178080214380751263735603071570182134394100528389524229499079234597795918461293253081929990221396684574205215185864057342548215446377673544832882701406203524946267683897482904092978642257266306058046260595920817773444164942211802092861993994487051407150564694784841115405134546088835250421246141825971779132002120894444520842534619304049127063001236081411125358055402413292720921057934657510052484618272249322471091872585683847376666946129094952751346385550653468342914726065878711117877298947469211023048566379184388591229070341096432232457367473053345201131455826626948777032059533368812132100077873550090710858122673542141900247469656920715738518251937401388569599608981620635944087310239745468640813938444120255775745216869220608637592568738082801833381032465274189641464404261146728800522526725753145481482595161215478970545655295173079600706169641235047771806942896136067761134574615763730137250823665528480163394704769257684034082779250503270128227001074092220248959146812291637055790828578890347926088272996392420619022714372211478712670993639181331809975119350307916688944967949604804674253600138080858459053553225526580646535687942307517727440377461634553683347570020154935875103044156396239345742837049305154247104801934051899604866583055370866972966415420690961192986853929078349668544561719448704068142918781164180404288715136050520023432164861159057557085718828543725715056247333249566332297546661695908740312911785681908738403789066355981379559766023105744503102219208599452619678158345879088026710195225660740496483197849846620064089531866225932722466162608964887824032755193340122597290019777572097324887883268740289018204659909035918122077440311966319355614988258399496031949560040600363940290213068972348961673203247659958185332315818746078346136651041884014334980071271185267261732313773265865038435943258101670137051827927493176499938390917585089924322387251699318705152465397605320971564020026063055182302759083435872103047564771582126919774927283110067440693529142751729586549354122224366296080160772299064843020820157482768660076170258243431719658860230199016610201702567877525582571093171329991587572408155322478776490004928862552774607945939722029739218882049290420466842625898157583567578353122158224819520530522877238071260094287185732718989778636288628588491690779185388761780845806763716943615994336394935483712302829443478776615430774797780749345358309641491843766886302512661477475811588687089246940332613437857522216584803967619106507099180401140714005203959703783041109420493190475747012989223840319290939880546382096902354400034326277938251293653414789692304188991593797250407064873396099862892150269182703803697249234265808228823108361015875180931807951271281366006078864202833450675149702049084398809109502605615201234367937068706318190759999613688809096470914500409155333280780281816243104737298690542283207925869607366403243889624183154061330766858309940620949566236132855904667916352161328340804127414135427654158297918792300360796625046902824123036565524739170397047007629818091679844948176367928017635109680207794592824728005308900448721800693266501438444945753014183478323744081392442204989518280528141100015454974572335431888303097804300816591060436017786302032194351606216666190648226082943501189852714096387252355285573802801206744069594585630299710810832087442594063101497260570375301260766794832361104624863480085572094543295209076338222663302429526091647305197145306732028806689010254932696359462969900271345638835591310061907510275494929670349264993766754688765152153422378393551474914591072488507806250600460845862500136026582368642147024227068020090342746823495715959953969642574657324627830000764838696710654498228693909714848876412842553016714526149853720341064273813087893169502030041823096250527381010547248956594567649371430558470463572423583974437850985092352796912585770638286733880658813984923725882189673922845678315969234546157600766918055204021888206539517644981631271702842740755887335448701907353994055422668107527742509121344234131945720882221227515432315622363275515168801722196977671194186300966576072269864244402230758710174796839681640527489187356914737778010927382781026610817752274341198801051236931275882285900652797987322566640685780945060720783923273156501013024814464334139430579874971889573143354060601266592116686535930879202169119207256660221420949489730614754731884155286244025056014048253364369012627680096665634566079318131318564868474988851313527510270225893971542798545968677316001937750477328131109028686549201699390408455108167834220320353398365268988008109899634289193813903574103992677409043735711776742436131120552782398908907817276931013095428850723595228587561416366103485673476167547066091873683140952565497603334550833192406679765342894591574243600893375446771821974177757592719587630828264331140027047551670839474382711886283827972171808983891368860653033747744796918794183204117393087971479278938748723936151280374024851599458142023469536157665302274211406702463444460201353957540116688672319363577757567340310429152987854117331801995025313511719227616088417508837680053829082648955309734416623484298895425323620038718443348536433394434698387339045356235745579526522958618887485519467194727109674383783732436966742918142466719707106141813028450887273360760233814001726208938735373159611540872964956195073657554720319451114662620477962991759386906932778342314303201523782782266984633026864462867004563778798456741401238620603804484399993779457024000687065282236298448524176220863119408981067670942607152590021545479142999410924478763463834597148952740849072249924238918844293944064750187898247459295597127062988062508697478253966689268344743535179784537297830869974000356597360685620530462610317186106884172859561207818688721598389354556767409375621469770331617818942834661176534263956766024067562335463013230818654437207104749379659686611723618244402612946165556920999011971888111850251157417937444009545598959741663342829284479183871922316651692504957013418989071812215035520519365703043961988340163778304468433818010623891324927446798950637796526680985861771705797250168199158399161719253896060374875357322956166245083554105140784189793068436590167483254367372468215592255206258831981803956791749156994489337200280733386416958657966130326982734507403724453406165108619426406345412970933761949610450991428984027450974227321023514568976956093874685694541681124338116041708905975246442869741467066446840308154428461591023428437422597142391744443973745621554094033032115914313612490639404487920370811597800702955789551555359999187233770908649817122430324504494341955278272229013793322180222715660819187402500420676551767209368282115397425879073198628457516077287794246293153706950670461560727550767455147278187860043003648417289321158692808752362868110662212165270699534197650101837826525298812847805691188878403481142712827781756560472383118637513628503466743090195796280302560906953821975620264915273509661095138189270166373590225313396588998010968640420567248549008582656674869586458413262754074693143592546890242487368957349697084293166346850182043746684690467092630807260079231436639618318005824338227438621264466635905414434708373272890276082613409685193306683162807000166110772116618180353403080259138768140150417570988533654500119621173944675923984897662796029727715316688851642912068677892641118330400296512148687178812490710243638439948082393649206400014742246157632393620459626616855990157313734065815643951074702647487988839907040474621106618467627077347813820142677405443011841788375366224378485011980082179838187084517089621206129435028154503144925950844143676754378994465120069174455620324838358841947523674294678049488073875966587681137213961832168862483121533391981224972074136349184730313986296881617928396718462671441505762120276705713812464086342726339192337061590876117781797732182677668822680795705878195936532543726092389842131763781574911773322640382740949867546059488513241930962999990865806964421827803598521786375546553974054890200221589217145975676513522776922381045032677490723196281255455411061927583646653685675350227287207998087687259399481790436635371893038512874137941538212104769989854283390318835679435497770403567992567399328758500520635069433116481178769270027043141602835332538873539092889805267171182829069635350979323417004828008201089335247054563651730078796426397277725702295297724198410015705455639907632309622600677859609141179662456869451976755342256274282376013251573543878847028144571083821886635392282767580416580535879909582516798787915814664783182003879274410598327456723962397798839879417686355233367874864038804073928367223658111666759171502366727380915501737079934062654980605195186603625635065551796083569210720817916618109661529348192492447144106031533743933519389042893921432674702105258642212666558643879688571426225433729026359391288088829829050530883240604807445048699669679003918501833059583240623036951891829232788999879963679994451436702447711487655184162656296759106753147110893650689717610118839525685669953818503923416490318648263947185269231586263287668237801064226043831989829347946807167613636836643385549510831114417349640740616085246708419847735367338686635938047233682626287260819502791862474230903535453894325717723626399159325293609450796335160765213785239847812002866534493348345912624756847461394768759111347225424757687461280630237763381882154126013788360905725014030871839705785351647103241534545512384913566730205339900847306450176601197087189276776152636069757017834506321366289015062994947973411765437520238913417897755449389513665954619895915780869384063039795273685207494597186851926728033618015960333267857428281771040326391461394717573955378940600973233935486059834817425420689407689351630975249013665717322681889847015125044992155551458311574556491813831407587790960938112051236469495921807799504103954908830333461103761061651117137297292414105667448898017127352439230583750275198230823814400135927343110473379480698218345258021565463137629368953336645089389070763990107942691550382902242144263642812529040018777778642517096969209765085890418573853473100374145939962931788978835830866542284321779857204736969816347493287376891175872308416356555459254824495008711880232891060177018766275712179122856012515370014767749800224521479922000734112043197440950221121054419517072063901791999214705703512352861577454267848049027542247343609571657000884879902521323792561409287384474143979759728452152826379600483099485881179360434286701576490831919849939858739227275580260508077076760612382320301568351419142277252470477479682537224787712625759899702283642478313779399530411328349331467066626136144373723794491107573335305887214986114437271475133235237192816001349557942444693344026856896081692610238321691121228812114401691176219332859066710534876823691345403603543394524516121234594609673245263429902148597122632719980999928038868535487810894706655372962319126587345935442217470395167449455548148317746438415840305956276213004124033215883429712605910327312572468687235288720269068667969167241818040157935670205786305357612811703176976155664508086375076977448426413348152818246068519072044938903175272517761893682168728591427193003151384970895806854942060115954964657367791450226991334307966543272981785263372560307522336921241148755925314149460332958641754162085151619062921538060140833619278358498698949241443604070973462063863106330320468536451284322211082374335969508963474772645398440599662858804692932691566149967727375228515770965761616376301275102396214772929248297384994610764762064039368403125588664134207710761821212404570904261423347756731046851452834181939638723999187762565476546494903450306825997080549008309328798789384643554778520807041796658864090453014352713868477262833337554548586844436144904646158644652028355429395468535415245961813526120362024297379447509923141435293634920400120493542350955672385382389418580194799586540658910108190618012811574863375426072470562439595729504486816489327685535784053281534850013731845542298851008871114797038892211972517355738091973853939692202687096348158805904195950676957818142775126327926156695503927392311202307100367202386132469409356696311501664830592250413965451056286742576169767605059508911155320048908290473136033201089633817823523161129143731327700939638631799943043445629296982349324471930681518953858054084204697910515564704194124599273396517251827563920958802627707675338214231827289697966038522543385352629069371264526450535192798187257854858398048384402176228937881955884675220415147765577732872675293143672299761528119798693791272094646241095315573053595709393249098480445955684833593857651069015193306837388028546755547402995860749195810977849221285873111141006546945572624053425765294732657132873319704647841791084458847562707698888733170469192276389747705591154783120707064396130443969424968880663420758527591262358057925466377807353853994134294408770808436842721463559854933912577689034354680920110970970703430693757297171856390126192271773317006204148421764919818873402936185564638825788095336588804618425869763245386578015290643482016406362445416988810057339750141494902266071094169336608374681541183120147971264048320261174134498908435525793119131674198471917337404340937578956810434950319024495947511333032478755910488542065732449536560627024712030744547220734231013579768534105124249447645079204283577030584149389031967127789838665851668502724357613459217228871054483893028755633673604153289995134600494950445842146005724681563977553627798382876560744418979695896400497395031976094527499523662942305213938954215868224630132401093546152042369106731094586869381158508319316335923984577581848115123060327854653210173943623992036367117470129253435576159199647957132108563605003877124627292860064021268316709976770346565964148542743413610811723851979503232912397335056306573622987635518955204236048979731411615248440498182788146123397796016797377626451282319610972419590104046757747354763089285446166932747099954792561048710215926092036093918214874694109374652513162031817487337609086900062937310717166884883151209745581532206032508529811089290439969610039158009216044372421423479036752121496716659648778100049938988315542495933023256219772353893562421164659827712507356604900808420719548564778435656993492071267330412385329704447596228625641859480860873352388096729959067774587112439654749055941637643047399032784524695795770538668006286941173758261957913115902006851803498515026439204000218667456364350901940754457120421220135576029832276043594245415757808934848362641535360903844824224645682197818135769387977414341244423630217920340162946680312521290878367611982951935399444020939236028601279870652283715105758703227330601860917100402594564708920976811878965553121527171732732175802475176401404551883518745824294810237208782668664708505988249127746951508613026773354935334674516585959493136597715773847884347299114055274810410872271047295294928362272302617414013461619481957246248086352163906405797286989245751849399294110829494882636991721977810121790696559937414439381390165286974663230892664717344694015120956439636616881440501191667584070414354972746545100456524440594123264682519764121437930793069243329250860393820974282323441620427462139461039890257583540369892824354610931823254953437578359641015620921545579916511195261163932493959710135044252697885102442786566553560327455087262365954749091039358713458253059545259116217576394462722975731007422350393488167831296695258551596945811386633686912118128176653608572901546103801582722767635925697593408241328069618688525635794661494972499322526932214022666970761392264642182904200258345952064393919966096886485832862777455229834186369802695865888735473331806222576233846133241630764194592274355208065215959628493091384975153021150968768352794477547906025605168264297181102656797267020548394073115356086353095780070896879870110106373257453026539185173818564897463853221602085076115475511999044735662754186458941949090024412388435632967499651176260651956721922414396018742137325040439003624029539639584696630604487358470920222778960205038348644940427536879978554186100391866555564616330190761685192917835716419149420914253364047016562872417882514873949392785734773628859040951189503992060593366640148083227952760999991426536778648708112837584417572598505851335285132663022280982106218356838312457957654676125650573764896552533674733724031491414091606381444977711453138324132974193856222777344897065952881153721809952144021417338090543248267038442206473028612238773034049419731272332867741494852192161240290103848101411728238630859916945078006830843976318610500851797411552029494178220674282630153258461022842229466636510774265382373442458033340701408749094266760908079488967413140830868312329509438846226382986861294518273615652495502209531826098048368062216740259685351494946850011048222244234007186658534770096126725552070171136847443983199342132718844887158429496359177789682944757234695872789015256834526674509648793797501023500000288752604430740694799397461982714952626267712174243273869228049558154635481865680641037736128512191839108339099968778731775116059803108878312516032851119220831735603852829205762047300158459910123709960671661080216665995093763245526554437644453325526763428020997826372611575476833762864551069273384483893683805846421597282505567676148632914989689651010282481653633253581306374222186351510946397558294501546646562109979988092419454168119151425458584814056052036596506212868097158769915057636906193533022614257108735004804540135274357076507934533193918508886768359434285661146173687253627897598725783109655756908072838628439895353794843126603881483152143894076756338814193897781457072496490564707762003939796269046819664732658297705703088084448171018060322251860555995251891774290675800395568505634470375648559103565090932367768133704260893558110891756840020252817843394398227427601251740540394866242324409811520509252970388500748376863615897493397696931396319512254605006108916905286147721955930085099764178659446879679958761719487988910857785185290438820882876201033841718353432985739689142879391578362647293761637110569938138378036380486405981839530101752176140239630052835246404742596999957715802724233986498939885949826335503554080490442662777117946052489501082248625049381080691914137210420008432131064749995952437296310135186269905900420014148011243785977404259318944188821638073701344152320405409789945893967661544192982814273481229882866691051182586269264496608090948967211894497617323121043358850199034521454056797376803446175081757053189580881980421535447117426628758040055071958926306208122195987689745920184239145200023829325860528864726553588562326120521888388159571219728796227750494715432870100338716608810418400603590756851786983273726613415082423845407734760215897505861293926794671826939851711960151647528402658560206979755859739733475546153954526624760371276974421386330161043721873101118828706209135373489648270654143579806171057432997552275220977160768208052947881455825025672145822373229128294211044362824175261203647992246886765700521926008836806254926096656470425387981653881730400417623803092334192200650462036037140466329444774674910851895980484949931828672518364861300864631235166929098293233563794214313426508776760130396680411619588739760379276143970378007952946868836168691547314139120771215348419300476985037088446525751062168835513168466915082314323031111651282172620558768785922997233139901569579979892582004099200177602400478883269669433859820742714243431996183714977204009004566742871617775617145903532355811675746031277324056080562906886340519553629089483298454357702623633700425739441826871845965316524303595617664208518648169647734445877602766206403177854731894295973938568669238395536353960078445999007308846349672842825914617813694724482307673912565069659664639143017941263379732055526553185074822265002697025527837519260940268239040187716325018821616259730607305688170645214643728659206985176307786649166177623546151057008267984697954272574932451485708833802560785798640262685897812120221688986415794013678885953306857076071415263039922655292488746851857776023288431244690990984359693484499854334201514303532532288892912603265068199853546000774205951872771974473392790025820319011466483480372586630674481484728728439209979191051940930521501648832185187180407965425009524677147100250512378073134063258413592724007086418391246687044179103006882729864565201956185358576040907651990238642470126384333247719904927855961746274161017069813344882532783820884367494228013393952372429785625602944363200083437089902286083578070778024324889059342368773279852179000435766062427417447804805157787537626844227668102118705498841777028652784717874851435963916498805589178415536925635297185156706632929887656827127412951594756040990886158369509884605434287954515950644391006998972185777395818440250211299751236536497596468646945374831352561293539513383179630311339750124131065198691301938020105323247177750633703938337522705006254092904061192155270866454179673345109520126667472191166264648709622809814871095925606089270750119052682434439158208509073939298819104057511481418588248122680964386017583862482575395503028531650313972589359384680929973227494611375319014778632522372388196159922352879308423128808560734614235330881236179402901782221088340166930451644736474368594961116275183348356127587968041745068368777116145017198275018030918300886936091429967910939724160789431605993619182729621430519862115715745375586923137020935460422431543593245407112102581093138756952674380479451603761831696092492954439625710703243817099306242616188200496330458092665691429913086585705579586092823487683376865844307593003388252295467632692396799371300987240875380269730870065979915806890292818196033289877704055959551658529762663712311526157599533809356938265437706935976179683221142211574264160312630077488947943786376224633214822557556136147782066618101391086168653082688329059332549370024875613117483847072311182207439765893832026862066310045256903943001627672003317506809299798992341593905036670698555063244008171973463271488589919299527963071669951568929759038643054903415544973497007878695010320400754192039412655435532323257016173119234105855882562846597768716423190429821095911716894621916116638129016653577611229352163667231803439179205321648055760764666116103511998718387545516179040356215248936878570215546965880029373626951461515327379224406541972077175068189348259371765819742788242077573657295026535987988681179174584611262840694494285079156116520092119505034034133007218435528711515060830092838897097274491839509595926443206994011456215985466802540313283723636347206137481236801517416487069669895994625302024984872226378330321205375098322357787159249126198829160714211729158274141087880186811930651472598106867536404086860069921543841918483611712406414623966750767233554381822105343899163163231159676455185830565670645547382133757525387438861584678517882688585196816674179602146294409272155299014809893606206356650214776710659095449321428416213837985427637847077223264354672608014418290199107219446337236439453535832063240996821149131744847797792050128594746069794215332971121520223126328234851270239553130777616845529117617009893251592240339918434741404204235367918429142626217393231890830405920113677544797591287607092670931917996023724229885220991680217146270663427458268932308375687568475319133871720772096041362591781237348944648741225382253874975660946857166590870494462221759844735167639011434786276361302559668188800883095520854212395824246971008759688009369066944359265320161019724386225074887413674737737659780980269437950544696630344075031917068593851848512550097000480802707279785576904964247947642321876550049725938572749288149994690939769812988184934238601479195955991814827543841932530695819610971628557481362558367635465521275028398636310941584361588244128758417056224677266968297045265351595950824275569753452665070636324976421647966838063656942227035788703831923302929913379793464399939988658243513727420371233159241630154285205361185787814466761551522269707775681835765390192610101565175763869720563973606931155686357671246417313307508157101633706328576643582575911696206196874358109699312358377114198985462525435904573464860372181207460051525157577992766051739221522580805066558288016649961787961098368476298377106334442270015546915822881584889965540525261263419512835529887287879168608904051956168319608579997174548399405751701240040061907606094407476689438193160275441370625837465472708154249941990215913676734157683117542122775815036130669121960122304179707976188906483001325770165381321709675886666880559673716900274558102744040942971481117768487139234181002383460897456186041126526912958144980888041467185719026619986525767920541575780705078484672625862147581677665513313920489135642184861532645046372435827881250345642274644040255756177105479930717177363065363948374361315783656452753207342484371378908695688993731983757896443107385341311831458191451055021287518473645058361970510608957564663037995592397754411041011372312483425821203751841827180486215063533186773329488168962912460666930808729216116475083710902845755538333707782389490227939638550880710345907632069901305524164217523853229690604505712001579900597678874396339623506223128470735171100925598648973753520551243441790299361549279772248992977336563944286892478600322625469933964957091268650718974298849429724733851195043547379575942599319739041085788831427407601257732300842648916135640764447771014642210746137772874572984550537387617573566515547764330219093151707074840448101615947130969467125085551533910837986060014377950696386552471743359782388765561330806227067323097832414979764069395276468671878204732095416960274002416676515656432663496800530954608949989890915033041680781083051211656020675207266729226316870958356302774839989372332867434585785852416848663784399877220151810544819585730094580878387115557409388477391313427310751356214225855800284016482564667750746349701004882332029009560956267652098762169683107643576524691331980521613144379159835097531193799681690493862545532199091156488804135608799436138163933586569897575620962021745469433916654767125341260502214301923097550786665954505506046144173868362577905246433688309711867795327437815210798841088716050455246220875222086067249161697649617723936572614294947690726612291820304961498892518196802301261723293401837961511856480740611532143820889095513059731549951400179464475347963836202170710195348407966971843576337629593459514270534243717848155991757111990257621147616258951341915907698422661998860774084821320789792065144210464459843579369457115126125907934832899937539780548278096022449430810637753688875097926561448672413194340829143263276339083200619972691317445787185847032980903690025194011540805829607621681862335640607549179693012903822266568676334046946695309319530972444334987344047259840001383464481328431265300979393744558701857502708252318149325538738308616788872974208866029128280208486980278966428764456656496856433825136740618197638638321625656486762218419096860223599715851095525693509779383435062182494809568964498947612323201714475698738047957921143939161100778687197564319641298256383452195416673079740470716609901819052851521143780906862509519414768288145415060261174391548639527862876407222226228882851358907266817689727216737056053088482788274196250288498321560778272513718985776344859222481120258915397577804754815786629862025164807265412565844144471429997972675074089008690335752835252934297689274736668055134290138876652922455665862319689028534714984327239116072386129260180867082234899981366106879395965266213140770970298788740263218804006098230818686023591829342113047747641463968306816855371357327554413852906331831839285325761147498413854442770949936874016618470867008746414705712858945889017977840944982509599786679102075261331617511882395170848780847808644139005816674814393391882154667080007584094818481265861223745127869293539054518926971483139653521482244191993199152812153279236382578415928624786243674076122285816274269566368063154872036214035193283333377565178523159090122087394684351525132132024877936884368842093609249227440763434558776924246608889374196137402180770935179703307518527103755133010568847957244755350156678338641178894923466204293340517762359356638326178979256645880422872705743357170179777447385181208544562852624791126036982556901436235367848588276716189932911531482244422028536620410948338265935279270311055210869243124483416170528863354102883070805809068035092580434029720143464167902238448622954300963907818654654189099427889754559734043359685847883578434834015910506448107549258563439593529865076827885670328898001232980512131681066056874041914108977631822166304784738084185039507032607895012269025393717893650919303961119131883031456503155055203955764651383241805766608111245432508218898579000903510757420735239665088994121930795988733610657748196417200046885316552296197331699672964031672408811255000121915777108498491821040263563547079584610529930395985820024521096117197510475308733734490755910847071014541895617168042386238256149385536889214656113676084485302382662339516333472383316099161511138413740229286571648702603172351992064433269896003091447410349139078147005399600621846327658518365912790718763509626020535479371124100133434091691421661497345613090583077220781447306802476059784787265038194156149180612251184001298554003181289751423109050149827282179184817083447745603280023605191413284227160906130358694570441476428318912766339793595326421187691871643899863077337350819367128655293027803330569471712356075868955890505166813736204759908622560988459878491263591395995771841471497111288832067900603458977780716658045965389364755607602255587337210775830891804181531432455455804063406553552056359417713854787597044004874443165092644260240855551448211998385664207857648301852347646178408019200044679755306669230545439158446623786210326386879739491039195596185749708575982118326751494876797956284354309592389075815765122167328077356745608564618599979891963919740112169049152257270061278424331778026524804078022502823622571305763597162544349964664960825871700227863038069502107195056785579450279074177499555666667888815594647943880309045943160496382273453357119844259941584915275177739177109961539863726295673169859563505407221518493885044266432625803649110873564733802304609324510207312257899108717173289736932212206659500417171758072594745407271508063226567032995466363832608808708493318050903697865213403657337787719308312822536173382611550016217214760064905003364578072284117851132811029546217125207585362863512131732960939794157215513660582428742474700116038145519203062902039447094760752711713179548230856757112226598127248296188971329760373387915786756831512756992980750357614487439471999338431284199461228099606176952459901860020289313561031886373867839988804802343751608621318506932598197526403690858297497357868563022355734977840569923046775508299743507934528246505964705801300858373729467722814381443061864722428895980039184302032778407280447392084453790567097825195973423572162043488034056739767082333737878364714869285618001003575054339894600001399300780688580747626230476180247558928473746824107283149010506558486907175833232274803954550108867524681195965494608996135875013825892502628262770911908355325733702898201887482793835720101718928172396505684835568106045783617386478476930814161915499215384736244047475940671501048262641040618046512149043628532411082626543633283161841200464241980473448018451022357133035553897053347742185774576974666731477795347483202053245551442965034799745800784051231703831763838925521697027838374427238639255509895812006053062527820909234305087673630963477682730986940343264248178894527814262426710237140024681291463438610251608576391579400952531659934521349553633216727556462135581236576482789336965204359664664894204299453780127997695972633687392180522251921752588712382698350419270315915418946889857437259534405110088652464019935030133695348762836971568203275770320514452299972231396937752134353399894480951090121254400509180200808846190279519617647418223689944344192658584390676301826970815406206473106961313761147460107390530163722931908448918820918120898583697717088374280424590192314312670413971937618804765797009237127438096115322974082469492136903947336660532733162156376717508401701241611983019800545142240455937449001196894524964973273582400633582110897771167707795367565392470639488728293614865110655009696244799186706846999045693937744384459591701060555847352871965984783374897816329303160780955903503006905180135370545136465131705422008273122866070089986782529548768551322377882526318525379552443329458306479914597901615059569723219567559878222776036527920046211387565838752986905933236195763717687875091119107530009446038629975551092561517000676663431225146168182400617479384663837897970623845111381418935590955557461613030164701512057214101913348957778958246313345332773702226357130650893793067466783875249026283508081908672686950320581067023028895363951190624380002412563640629997122291643380187033753853444405265211928929791549349507725301586024666590607546515438042873691164336277901703988436763782519062068647637975439544207914324667488440188711271798529712797014668400391105296699945348500224009247018178050389459068102831741160424825800520117338243208009806807743972724028951897179046787704674332840316734863395884490822273899355239938517656940823929184064413845129001342189178343937513278024943423673480748687825887899145997128096038133040574178447293056000186597900712980282904215047155949807255388453199841999653267969675401954667469592553491088856338359425308822961688673856086773789591660660858198595769858099086058846074597655056043292154447060046004362813804869635141918133039555346056197940022436004440718497708596991365064974392435823563584108546850985770589318316333478189220544290649330836448804141725791601979918956277749307246625587318525780706349417052000033386225024364462698750476497012370338440621539488788765223955295887576689816579569313608101959546246233423079954395431986099610964206782781762349903956597213893117737871101830492541491801288982333053783428445930793016556698550273310649672563756965401902529872418814099388219937881492280457645010712688778636707045853261616654217517177882239034105241335498917707681179806976088673941064869036611574585591901325581488647490267929830490279151134607309372691465526742051525417935263634083923229074669347627683112610445488072646581317656525135824241227184464605159769673409382398322967018196179556870024454061639115333379508504210003254203837990756725110836425256125684971969600590183094511072088368479038619394945359614574449451547693363379839465504120123100861120571475099363977329935734952455301480982564537933693786692427988157987573335667123676172010174249845515938367160445535580247444331859470405456444693114184093475146973271950362530291513927483813581464309087247018716181075320981980348249969741843579921021410269692559601963612619848954022242598167258981541392941763179804762727426660005431362909057701803901091820843874820727386282842143947461215819726483624092398180919498258694700974079935913044966596095791305719350972636514022946411858500738865139537597029648017465216968194875597348964239859839130819767767850405278021832277097771419267445483106711411502143978642123573263214449086916371093813864860730317440375127494354999788484312737198644282329388204108624118593717892981937736032324692291069020714375831227088799296357856585578921084471682623133799802262037498909780344046011555796705016876536238497691082856988996524902907492210167127996150832247549543049720692393779105199849619835273994041810738594634598563250684704664506909961942551230513313942037674000001978718964381991798577037332585737816371881635835123759990057220729000710497570780282275384985366783846485780559514890302052918347802147495833163757774486986179333396492232675228365729747923242338598267342005050004482838559758116590646793428754710963390070723810470017443662905220848162765089626751133984557596551757547434460551961992479564804837642098639312140511489781447067590646841897836469878386811783232494995086146359517774149856805941028281137426351845861194425737446832120676170293860690602211320844011614059211664439359848482752270177608200288852004103664760406214069065078310436731282624619114965371418146097030130170896778781101634526434156657816740684278843671759012366606888145721236261897049904643087937060346854309187807721937900155347766486383591254093110393967416974246027854650021682977581036618781791398731609673185307955471217981226311992192946927818160854353401028139940901019627694436141281315954896261150615620805361345330971001355438085864698272311556517374530084572425909180253069818320460507406968967574229512810998442856756715241564710693543599331796702142222408551996182277631115995596793979949275996553540704692850733774964784854098820204017251243412661130403067220573691814895759699011947388354339202468254116892497763863750503850964874360858913114584179668398206353920725528240647533307438969637754132012896742096092708115302626522296295125385100354093579356301184992589978034138495893769490873888653791740231295490101086643521992772185328281829569791080873913340177503373489890724474133784965631081355587408444720622585426784950584219356400996384396415716673983696474004723360462317881114662935261803980120577802515636792443170048993117025978191568307494463044388578832612874218011995459469841047818166752701487694559565920475656349825539022573754073354418438246968831499589572372041449008458635178908596106094620422666957652200586279029382160331240326495939369898351430754239174006350463875316977822402729715993274523357868244122765665413949628092663135075985482821633951089556050728354433541052219664725581626596067013911178355027600883472137389219499644713559971202714945467025248814511351678094768280969404281484968990057618874965184565830535918002674978609704278538258647458283878608874568257560364605712827989763187942203508076251135113327249675737967986705854629735188570023549177411050871821440179299858931700601115673022150015168462388331161412991865792179754118901868895881170263950892164686210534167937464647681819610362110899890194457540654626806352185054163143674460823361079216679628716970307276973040365150883728281840806088650652810852458643767244274859100310662044472575163120588983953815642573600660261544638574829167190381644790291792734811166153302033280211226349684082768749872756697966340220400629018109274638137446474615911615832846842511116619292063330180023167445936332733857732736266924733801866832817620310951360066635603176413581265544432220454564291288583169421995416994812380841410551159468891816202502816802858515106895787630341866007779754243032659733231280782705406122721157067924330011327050720395830475324166093135153489744352737191347525698211540676389125055143150521602472490687811580682646212194148685732337143875499563380427626015529359384264711196656958245575536344407272179321597865420590736341755227239315117878118057222608980708153292617664244688718732780311121836423925262082530958278211510633452838201244675060591351282582006062394047513297230295937870272558288854487366307683197622523749525055240722858886587471565687749809938135662438767115180515886949858173740254639988943884207162297835192396587706877006998683503934669761760948428034173654114954900293787229967226326405136956846829250662734940031743208288370989487864693192414732063230286854241671334136920892619837929956097860905266848761739726257106363289774770639518534423068566190399328225763948375808500784924527329758859088214729515616935183908329990284970505967063895250508796225242234275952884797687026937338686769475591005618677543699065597730239549931041860349886182535298537480907513080055309590497769373947172317119165220526828624400386384802461323555024905726277344997640556113096537425422071580961112647268547607869281834575648577262453544136043910518715292080352103017900255650331882269102956799095696417662339549399818514366784064535769389606018877532540032027567950360802493979913603686282861295748145864042223455999354343488804721661211505305164997026332015983534340577491005993493184821846333238795483047696835582224478785634324049514142389363918624485135034670036763510895964337743502688145379729996345639136095836206080023947443126284375550900958910873196548690534771009969252961351261186864937395014086633658415764591101953661159040840151784051186190440564647388685131788970920034058518022797597549876924782368816416155271831044843590493288213902838355956469530078521437786491739666713926618191084179784864323926933735859495206108803336666140071973724817213540464646124456327303982846760954843261184065442561307649943841632032250913694545989111893435077517170883604324008904190306415976719082139243948815824772065913985923355026480620953565036258086290175511947823590172529140313441159213017136057904152136410741629728857950034978613011170748308879375516022717630455064655090734524601231923709069388342074850891251998247490162370669892798048720920954169168719445579316855120900196834888604030388374346028851493144550241711849501443937152511374405015664760822402161643539467198395624322261726273427136958481409282784429963352657633774223135980721935974804205502428882792351096833317641654846072833188476742072163581619328785633276094522941769447568695929194557606813744471069535993495005570212995420217512045964007286918451693629140467039971857046840073182300798915972940333885604312114226155228038876928273363106626960927882375512872073452631785679455872478844580473582246709207653747937577303628105754460414871660968405967524316221847806197800995062772919872728050981866566882741020895279012190697406999461811858832078962305443467688415545639706450754150591830222698157904182975236236932358688483986781807749966143550255317586256005304282208071561358993685387695927248492947834080351894275214896693478925020831672048372314415041910917710946256452255450255766122688855554703285619679870957354021498731588595457457777954320325039393876368243702132328670807737603034722279756696815990303133239942765564699528870965923438737614117841269094638021600710477496890481468598815137992126254197429385555707309387968735744765591900708139331399378886209231010039269275746032900547137406942478290624207979008547731521224934421865266101924407497339596744684567237347327668914299718197223437726121616105647588150497505994662037219861441970186554029479724431364170170250705738167757036733469804057776082805912022129016036075166940352711521353679127575235026782170982035920444560739201512086110480420148532932296913755291195394661910259486443454002722183694254708357848230946239777657356342526101711203222549790722622050662557826185784557787634197859625580404149106697430241656541437657168046565067217336773629753893081508136498780836086646360018057180126176978834583994161735046572272907432999052745732677411936815672074411949069951953866142562325781837593001621580313966810094140851288525185123947811904723247882648868547878614387200490607404075793451283554626074767608159260939427038247652739309497108750986875598185676785923978906894403053656255607590821581285180284159500221534633769411669512648798864876553485170525447685356804953925173284526708669512762857578628401629135485584122642427269959256538413250444968661563806939708667373259276481145689308544856537627006747012230624058556984718982842453330431185894165701733209255591626640899776638701960502843112716130938309668590110191045742347273455507987020291172069534726625029147689804409838959696972033289288285391384309850977567559398754909930702216143301446454441439193657210420573952553281188374349395739730771933281511306783623862502446145237282293293138362559932561410652578012893958505280228530714880117162896362657602689682905237315388616035388527859426305992321354431555640631913084897221263756078707001898812647219278045672222849008930793601061625723374733749623662217760920937202096292569416496975559620066516385838144786828072271950350083941352288840791415803999490237633231659024855151223217694404071446009181864644491874401978203510584905551886711693556742476101082458105407035179537720679529081359819522681976212085559533418251952128591421423110780683605920446253533554770343990331913785762596006663709365978384337601168775114411065160041561271112811454669315798226906218997389262490934856920404797887751110858868318369206435128308430188403975153210438448577347013694207738387215281690358424737150639462647021623994407597961461231617547401668674604129605236300349218609204266039712629721169743157673110343129185789050623033651320421895310658564451553487007750756043327836420556559751101196160220823219188798802615103188593568314590629907079693692514931440965654422487159008863894361385630330150858048301732760434414796738334411640702888732716718331532449214369733540912048392487301052907584190573242327845920440292039920359778073825347900751995754063671247620558517663779019730051908123109423359860765736377018869244832307553330442131865065064933531203464282905418002026962517170779257050787260792200379764817904886122554724507711199777031352774882599682450206359027377977467293567781848307166988775985146555133170761242195259637673561546103190772788356830120413805392005468638240705987395566943393601611151387482223547075205852956975407282360235199687794051788695129347153930377498522424572972999585323934453012408589840095012674409709310818256055138710096843968597552277007607360155620492499337426525313386705226833970612589890364657248438342024576399159543081353842895836160305703879429827640815223377562650685508743004528183875166284570928070237414700243305534473553664963003206702968011509447188164481726855297532386672475647420907222421581747190723910098459588759124902897458011784931699392956508512002620252443287253610367769495521812581379187487350316814771605343547210573970505690719742314951586200366743659461291047056300848251229398914417239478073396371687938656115408577718263330482779365806245412512251400101210462424077860421644039901795878995278283846322746131778483364359072591866707827045676210239422861024187257267642456651030193666280797215736561923081117562377512064652269819041970109559771797226456246118329013581015049720574153929681297034025628631732732793451437771801160763315388185541369173657637176007871774399712856218285381617389649622240257640013428683446309764166118982149521098883518820001676408833166097714673747205580462510234299670962828148560769745647812608223104336406883061677309092774222640077836131444897335085809454327119300817441940459673306443929589544834144367596161872695451079451649676652624445292081107773095145948791637684627539058878815583786761385836114553898540197796144676077894981871984532162807983635424991448088347113743633858793825356198903805088770481169860182316114944913025214505209981016041432508304146674714026025939573180196232632797022652168712532635116889434260350850761756899479744668560576320229298700035543312927558835879765304205055132675302878499382523136425279134523041828328026906734663878542648186733150273777360473371666190373046494500025604861781641070119087002005092187749274108506841700063297280465076319182150655390398918915374982037736688429902339366791141447112463012387073167159884664857008976073642582235282674215969849337906310739435190774969141407632688842845431747013950947435662366591485019314283225636521907492927969235548688664356608221472210888515493106850689322176275889630412103935722547323339874816865062064254073590631469390063652349266413094743151619038443356757995432859982266526408717583158571206382257916092416664364399974394183534193792500173702113288970175225485589036253078195011107087533324457872882725374214788263483078952333906985606641114532843883451703101619085702145048972679317018948125146885874959540464747745612794358127384789109870241042181204856230734167279203360152834831935106638067180736124622360248204845339139604472524254757342923918259860771178165632436108357358576806406814487678055776082921175171778135852398692470811772604199056905303357996768145651023400916632920389126837204160572470862961101290133399860394639753955884940309894063564258493358259692676170835378694080110727100332578348852371298342045293211000474290104694318888693368278346498043812532245311900602808439825433598017061364736602501954268638103689952377489228059061434687981896800812682812943231555620195554120933477672403692324428570694833749195594172898124848635241830491267856850067252157319343111459420511158770329204492787975260398547253433339300388116053154305223361832450563549601596030236659408612323220409747241276333365554129736417164747365183596546868057116958817569648052339410851826930919587978057657452638699251476484388742565434097233257973171167693623868659599238873812015442712988792321534196049815281644796261127369837951719046340045816925454188270902231097826984502486421478510293964687035283627052585350236414271093396002494737527641939077966305863103211413240108558391805878651892524386276317387546395565731370912367046493889705302389446735356486956062387738871595431323625792097975787453592910841200939293684119529494354328333323488324762024605558107854964969176427473233158424746992366785128379592583842177359290455754196086911516803468252744528825108080628771137757731350752193972026371758790936223804370150297253832361869594822392367031839055253764567147416800508649781349169139651221815568156887376219888487327363049057026402748029693724619158364165492555165090562308071078493070901321081482805009971634641903027422666888051586519672700957041201264394098406217170527637397021872191463954029639259369698425423686577820929372404360826080575195576808096117328017007365039928439179807587848318788422272782276237164611581065496319149543536533650830880974977982509629745378407332515697699336308078367192323430677854667302616283377253538681174252815783535612461029756573135159990765588587096613868314258551541529036535216074146415583735050420168569841641641617706377735480138781801574363480914087193791953526379074223042304279787174208548125025530671200277948875031908832830842211165271281948525091713351837474180325664538557151029407828317495563940725447303798196460493936541458970159400159419466906168992782731007881659107947744294233946419228358544351095051916563738899646900438617142681835915291415266977132895982636397283880991767673628353862390136144441547830617370540325132658164184792829625734497365766247166461899902257458423748237516949070408193960837389348777773795005198605959767229222914178866089729191409981344192879621554712416500129483702165549680838146531591617974630435777894148185450662376681386941221488144555563521339966747369006300039083862356460946989785952431454110493549995729284409400305008816008797913406152879932667191343738638716324513446758479304922679966745281487537850579262562545495314754513208015348873482811536044692851065298880413163440694360729618756653179532896567045384882742064680555187758090671081109862347448980513128686022561118671691046344168720325301918890892263896515967281130057851113565253235134392694422045378103090783884685025860877694651224492277563758417332543659850066198269126776974148835951216382850922619243695428909452965099030893940176888990914402672790550054648720325953976827595452848121172557963471898274447742154445339803675446123227540718612175079609376545049182956222680433911138393865810451360316855485306452970482227000810893874259433333553717937481902507165325847717731093944522644238184072380372725958783286816029491497525875780712679816063152979046034384163536002380504448425513074409352818535695258669806711239917783712232240641397300326000630238889728151022359028059194614735284444979327532032565698805497019189716383046577806912453955674461591028312673764496340247943050399712277311089760483062273386093998658971647058226498565790721322560869678045847990274733743878613349714813799217155061221591035249269301761761389691593663764031930636116641571856630929078532766178412449899978287538270883403748363075362158117323185282337553833441126630477837397958750639280001150397468365824080669173516750095272546617944332638532327204728318122756081568846794331565872760658732674111323176844887281799328306434736601638905170323493955185156031970556288794195786674414193799491006605821245294488990837347265470100233257323600297307696880824336015217343662232087836959792049802695546557954907754363138636064297503876789877933190668250007253385419190157570351248438144635426063787268054472734411571690777584719532177546711860601332722143196206297178543788389018836638694925709483432958666145983070835521499441790012266763912670144707618164597268459602582170757011599426298861994700079226154121266012676164695238666776630286518069918608414788664198600438326659977477290152117008016543094616189833622473317468867228120647237031046540406267021610109136810206446353067723765287227958245399262579016286323606924103762412806729473274103879533632638753290245476426030168081492550662739511796087764655220601669358371928999669072348272899629605423346916717813353305564023661801258211047150940705058872716796148145005011808270717196980758802771916093971495873616733949311229702638741769122571094664948873419348166199725145092004362224424123096062323198394523594892273950020208048133552150211480542067960830782276536034393856003895019918431968784051675590808834946763470665860964014545529033984030983342740198905915083599558484374535352104023594038418432931173283620030633123699718791632618794143735618563393593028494036364993855923912679118018333154693782900334476476520272284541739580827884343027393104270909942632081070459682117970666912668619027655079392686905026736060960153712618475404525451917536468097784430311883355041209468275991913605926525917785397320938596942860069810380656061474942180101768894534559376975990050649160539062225052863237645151887088756061674070448031821917042187469631721446086602803837325978776277209267713950286248851297295941265197863765960094505410338424976623514632916962876861824502591479679038604706164172946354384756030480464729928385008213469543390002509177245927593513993737240395684459291314845551391941440921756869431737134539553457982997367632219230519483812644862060533113026974119607168124590716357410259309858935630073416162129869998293903852708333606577444111572594034891159999588917337952829066938764070722866690692594940976297082542844767881719313786593622878206699824001951298696480299661502923800520590395136415649612513770013470643162737109038430319721272244317135512269171171729237862936952604850482071875970380658988687285375929949148378555715854235749701639349188331329768736004479037999322528186599943038949025778091857602563233933747830370732746121326927609935010705430065331237377767012180247065768824287651875668418069298501334751031671698423099153699095848620679189967111899949822981934680409437002933227111478031253413012197830974284805781852749982279374538570917803305822227824696434427385052939540415286583268942116420454674710269768563347651283648377976534350341278798308648924217401923525513314298587609916059853459296562405717055604364188130505553354932377933120296688687662163561868941872797863397894547233526110679391532396688546958327261084082764961495732653885663124468008423372607102060459443109370137013252910883683818190453600133278129500269658616503811367447621144996122393058593853334286400447660245442905426211332164458035379882310085034249520894767419864019636422568954892433792294135926201978018958965438466053109999853958292093388046266010882103827110494101234781399271075915524909602945617440188173092299194421328098851562735440448893909787325620238100886674188989230954587792335766954864108050539000315937962598557642850206821489977925728796283115933379930535462928637260589205437077921856321801212631056283365507468505534434343416686043054663971544574183881365680279939241685908000470299673568208251110487786372874078227204898149399691167713607592850138261698702794708059746863768254198265571109048244236549892088484871913857780391297383461464872420175527496957275814649281547384962299464655983451372821406941391205341674973897619136455010476108959249835242225189551539125784406721619124798178120822757856474484734798200053987721595274367393350089554511022634558608724780144245028854582879892626870067520031273118790383980680461618006290742007410049157770487023577391243939986668572082560471140519854102589614632815650058341685570220801447566023350824539694017917698348474941598438508785822646154841499246154207396919896068222266466476634265848435161960313382914219698839987264467172162957644935124749536903346386513145991025518693259780115163002395368725790579173471436906158298125168428280046092188622577008743994497059700352039009066525968203560102013879227224782793909429945241933051258789700476972409566971988800075376154611707547325008233842218851282149563027145549326428871665440296209533799434514028146900398668774558574290752401302952064526464921885856380763255943176881916565714156036265286568201369547760927467000112255294050776421767973275128251302802551515361740706548163569693188231085767374968414481466653382814059539143780952881355244840571995366539636660609328155770452722094288098314725236571018029911085398512994156220326704312328151800935092743420547277216743379132438657576658435860805951165520726403628732920541161353095458246679195855190160016818249456645705446834308052749528795694179378471760726114293006154606407731175506580384381261638268301167499139454310937119551655986458047501269782995616096219652384933741046364514582558622307217026408596080426226327914437567764084654248566364844277575011383567288918165060055577724762008239044594336567120282565532646283667618762868847647764481369205552541802053580552044201961495757119108629344760157085918513570145316589754837233189895933171625875705479993612425254434528789333316280423199079621894516298275289372661559585594919571182131842787658008344340012517978528935322325319932064798383744385977970573515441663697086546784681291100512796939994530507534151502048003194588345462130131515543971383389040648325821805423567813568644851313193205618728865134459160676962935615646283414163420125363865813468295148446522422873322346278244260659239153310101089928105384754184442728768626016518756825948912454953493490190423246318360908670058731967638813859802864017237463893566253325066379060781328401529378161369412552354018149122278774636542452918925608194124655107512026061863257462205291963172369356455674294636140854795882249848295472136604420973250362969207639013512249510002664014813233516933204550044230998682224706623425916062983114985164234379430509568090386135169550115596514421884765369222484744710051015058645037291126189100822678007998370065389019297142451109999947936318627827681826801376291149515145645607649714160440170055767291959197591377953029940574982166777239966286118918206685982327092607631004965723058273714952090833126295722814950569844904139050287774697762937140389853574949003017072966811748168093999898565993113105691338429242979942066668249462758273537969769568859201483980474051499996441090066561798654121968319564359813792860439897591508184568688597290177748911209820535937483541891757746858502184349358582087288673841832170744685678917072751821392486380042929329137241885077665418550730698754129212339864541820954810522062560041171560756067009162290516551054533160434714660626151889536092431446272616200926170501319671637906839735517769854455674830970862606395490521191404382202698474749807189654372794518372262240466229519958691011477696785955007660897734486836176820483814725327553709403613947202904744330493795698721446154584104024971247011777688975960890021976650795924402206201663142094404295904448547467151377407412127235609103327537616461941543419529902893086411761275949246087913477795853914096377151539454869399540043747311632833382386033826960760924592316589643843925896036025160647779006673038014710372938676167103880035999382991560881893938376993828621328190536669403859209517150650832701505362337704162932171630791145145131125607512731726859543537395517249287734074965361614402142780634400300180872382081488022461803150535227188999112966035764087803873622567112515670336330621845086858972148975804647650968751688216505304524865021667899007230893215610126142411211512722835275824612082316358364445898171108802749440496464553957378563883764754567255197379638686937566646300999910825064967314628550337828226138337408707704919951272839564539218514987102401110622851943527563413699688807910456295198259954719922248430591908295699082629571196427830754748566222823815138501050939827088104756394662257921293679459507974001203835716551165070591867187080011942221900067185003896707177886718377719513932955173342057395612949969168227359336642755562466389690968290048112363770216382694204917119774193198887218170043081800508997344089375438479659526712649836988121857520380057703879211000584100201352014560108249410607584196848961083481241263409849665123255649789298657274914826306641468148813946240029337186937683418801651143435398401622085498432914332960358389663144001205850073110285167287416697405969993379713743868281985717478239910978716663809898887898184393149031936188486981322061936862968466336943662052245049420898896291793991307242526915365380691325511740898497389374970953432931092593033331081434091082854505025117959355057337541296311532667650067264228348197396378579258062332611098963043812171158827741227080739941674204451055091567981004586389086458769440054964372859597121496677478425882922126250708044206787403224257865928175403327967827838508938234165617995616340978511472429623590780672751759702865092489364677182201185003688776525820306534229195693305889105976213242159486899795231210302035453527594537793784940875079711947656876116046248809115873969724141849954273350980502827328134649088788508049741456265183855146656902816977426181442594173668159104524813137116520473341720514950600089828828101490372772075200115765181147982143081176284359341135166831546145586093948344036413236868653713691810163541484223944825341233348087210776147753357895843358570520661689315982558545154194121872251995786741204210919943632984175114534430762848345564937453572329944132112021055788373681651367127693085154307235141795564930136575058127335576179554804393391500905325743136484859224970963383225737022789749113048548417948550259329839559955768123909570146343251954411808592146240134077949666960406356432749665964687127912460220762297887864263906632828473347089375573589504957059043394306121061878272038706825653937470847762897693844091010388505161819301730282593730748944124475823840591942494788583688515113781107373730667669280149064818644329059708805634372191574916949548382518341305287671113588190964637227584456622769660963144939365737959660149128393225280067946860688556292652313316360225245995255621088264690551066666444653012020243401782431050106825825333536315316122476821426902866700305575936621172839281908012619210625167423294902606025220531568886772434281881774130004136711259003951866033822824357698444395959102284661443619043827469643249597212328944847542985203520182282227234492088016770594918982186192950213240829634082391200164966312752457403825499739287181455509566492907799114715471875350899146756384800645711050715207965834745384898024636656206451747688367728520864181195777060687416996618193288995014188153350857668164122849850499008936216160069757013538515498393659298354750353439568852391135427792489410539772355371362592074257225775825776397736057697109948914673909088357435763146633526948888196653607164531304993861884067531284998409811246179330029309366072875237438055242681557577912305229608003581264295150794311967146238851627695171263081416376561499718359745104346072317572959255592318081269621370013512796455692121601575160168005932435897103763388331433661205638244709140445859578153286406763648056071108034002460814151332969950464945234797082185194552064469994448995448120107855762770996584874759002649413470401753972065671360064952159568354015659890008558877173506388942123689153423976106275703668464326264162807887493606692636235179435611945928104686452004684876461228533658027963498980686076253545014728794446540806320214512571740496532133273803145416741614151322444915242616316662542409765652475465283516835643606215189370423409076292975661518796254012682366650429862586686052548358950224669609929795132371054567503480386530892802036831610639484295463538272772083858805929448053913440586955119880227743097035531577502779217672127226512511284425087879670668412653622576863592819989137740608920729255156519771982874146389175221777278290944524143140992264607864977994906253357083603065945484775494795093269263743474911610822472030670713942304138403196456518726074719382393151843786512610062159281579566768651213349711379888747509964097249689238214448399914282256657698427514546085670335795128406631375483242592590163670367466725422442947890289890384525842938249027180291993216733674106518058062124068684481508126885104560177471952086846339767141581875630135509149021864176511959507625688751803868432674658370562161329584598027909717403805235628791433873283755616188488783028735160055443971462792385987340876490744927183858255891067520746454189434122247876931594509207952057709154977626605910126817269816070897361265792073507623790966811261177614558330210982786464459752958449474775113331590524478823731404607607030446637098712062523022375865381706952500271590656654731541530874964590827674316167561120610935912429345688735613111948328787448134976870594340422754389595557863699902438481870190659295667484087950896883849994057009363833111221948649981397556983780211488841545908449150990594402822546156045390032855709119281317251263614605886221686016472666394904155923334990600524967808355335338929834074072963994194223279021637188801745863208675731543191154338946840541850929614704027337446574093255985746002762314096091285502537672379613071261671807218613140556293992739245481866581155228380669433462613818893014024865131292388061637208809158003683758481092803821168549247338377381142365630172623036201274261305370905735367518997224846968351286294287144466288417849471099869366452390518027114738172233603113106542833312992930981415434917111045186842884492364942170097178639551186442976264064007835614031127971899508583922132948400159251774190960806854959848671181296399083468880142155327038728128009604088919435577979831762119228604208980357412038684518754497666918331383175607340088746832077789909016446077065366377107041512246247308646498763448474157790005077600504917339719816265583534388886392098911021032009021014810177692587036036455389982422065346203214237588864455893084373565195501520428637486556912915940397937497302983774004594929951223867892799261675799731411005590498642295286053295614350380356337036362906166335911818531352202935444332860757064682368908011602666089596022205121030882488519995504764706678064126744449223711973740297513080101137327497664330857307402384669703141556781075954955968817694176339681856887214474264023946859345026680256641278295758577820204471262324765564603894396547594158407379395290367633018215638407267055072087027475597648912222349967282136447674572459004779124734619749790658303473330615478958571521655612905153038461228510212667382057952399904757383548347754163668485119641029838653624451073563136089138623047259316092043790491927978828111947406925156304139243612565818796749667926848946837159746937381240307400229424893489302695602396024687781934881654037182767735519157288871437699535363726945309141697420784283348859532834184910976297034518299347394858736157693476408916724720065143927947049793326968826041411116972776145489953375598915864839972937349746306544891308869432596643891604869949281203526114050411152912994765018608527919280145050611521919324169693360652432000941392464383464200580386346402517797640919302881560891994873190678187728895387075601044765779331509050436634655789281013458556574908799218225342999394051900220137998969043154736805713019749806623047267575772332164408693769996421821242428459391674557720475644649289932810671936360894648363278679665983975164675718527614682389471912130453441163589395911747634434178124435467550379253366475076816659614999532734797882404335421273755425364862226989815035953775198898471881462381067956392738222046789284320885030474433280363982494347293449779910801913839895930903870331723186954552373109439135861422680229961337456093072400341905674522619282411052309166439907131774774460103571877790452376815155397150976727117280329734633034918523494720707465754845639384949211526371961393872987058188981074238468263441609155435777466290687690214449842051336327148764909928318518418969350194954151658679988885648648049258975993012701346630922134861849077018931084885208302284752313666329368618791744831821031492002656851191176162232213390327989987534110914811142669554169628675916929579712811909974009918039367539038364047701211213003804616531008094370612540038755977918346660375075013717635429441033350532370915424113276717792768695092680850322549604556884522264553271644547552164704771627368873093378066947343339253037399102036400152780096625524846550128421049412580267921576484478084261692178753784668729286516777112105130397420086249268745015618657715550206827315529834262913289152740196580122527890356989919898721671440980853518295190908136056685287583953669579550030121636643531131691593722197219695688230256235926651188120511396678841623441210946876360643611979738063500356778757211587941530627833454146923998525203771164880269622616225461070771611768316795918367244586611747826610067541623060326358876286398399933658221305050049657827225331671849891347978448804620961696185518121379983413693418959961834704658723172403331356808979835782419049149556811940490427258580862151590374926766284389603690026926711829905077506630731208243341595096810049539793453311555357625269496046886495984353236311072530883203716227707628702142062143642871828556274709927271430922362413765840158636792307144904563855301851836663736647706357355589401172374788657466668295750504921585955518247436492765198431467289372962636224117591289641035259442178874938032430565563798815487748945946834774546400490609876629313101169340470127746442472657896385878183035510663673499154876488670943622633124474317873975290309269983704380168951650000793047830188207796693204056473379481209891872932915299996866366914474277294974752187960544612398318327681038100329323381011128613744288115242226206124989606526535548678665655360824103496659917676245994889030627084332373913881701445840160542265722230483928388005821937475384250185859720916445895294303492725904535860703980086948506173621218943752656094301287321308200263445723857402336213002059566540691889499969351954069932814518560168285182551884791919323204654833387581677610376131746024732112311485494648671816333072448402981504304102258277245855857068871456514467201535050880722994503732934385516457428307308978626324369819713410966218533446035715632393601272398814893592336789284795789943341924023593147012665351431214456401130334842915201561960566474231772052423077422452188931630876223094144452161100341278043234161271694921799560636844909262558670928374984602893802092353598525178132332668367220214392185745235051650598699250841596077749054152902856278559554294264480293158804490627824495770946453024454320396984301107596246830338566407630405431135784207616067006219837800462166855152299291697619575121605339968696387512091487121556653093686007739612698417063836131715035606506845142457193098792939879862368469700628565237291036717490333253854480705622557144874943131146506507592950178938786878401872185606405206274093493192551511088950655508123844371999148753216243307098109224691699360992899806592956927321181538429589847036765847717392028127469782652987291652930246331446865555453695967223755634259864300486081184534570224696570542516840145652165244956565416734245942068423997977403208579494096906443565135975282542956110837832501197542308329904676647488442756288184051822812311906018688042089568231424891736083830860330298643238359584270155285665622198392251217080202907569524011982468483320940784709692119802741195101487896886898110428057915666882544119708981339844461679245131556401223405776087507517133887947494944813914443887812859337829644146115918635794431515488464010274548118297214323744583213453383456825716475928571455990106265167784708740037919862892599177931933953632012020222512344052816408129498206559029197224512211562363850113266887112063918864334292926747368414430784534086745097269779445717688056740542251351439736774100567558408246472124828647331532562152577106358062428708801769740521437753255835062454287709906968968134802913564495964919502562441895841819187896843600071260253706264680932120622212340708803772944306076239393934570372833399500549847167704229552812226794166902495330927368106693906386629779469597596598489088768463016460314659241901286763031785629981272512298779229950769265902776042651876746270045209157828988875538180469321074353790728886496659055860951289760797229022245507155107698580488662499386635223165729044077512211322860695185931156883347021524492520456151993383215657928457059727160078107277869750938242953862284700900637849503593051612521807285327471240338567566137236579337675133820721605558444807397821025306455089738661762082359448602363851745817508804143935244504150977790886646288231713953968947351850030198828181134950436065669241590022758876943285817783490166568212387506943761264740997246467562969481970910568036194170306184573156281700935146201270466657482193495775615775613848568736115458621006294993898240035985433883173443216379064562791520828254383112157345728692963679688444878167171122133270442852538589046483981324610973872995129240872752141306713088511362172765847143581396140712039645351701632766001832769348650118348314262939848253896743821937792372352691616380811110791199737671374213691897614743809223995689854135217250966891032701822320423999878623317680954089507147135909350100497810541254767652956859515858928075179917524762948899451839460623765781990016027532356756338413558321364587076818584158810152683720440778989006404541274959063765191875104901889737455300832236841268570747432475730314395692296293215341084149531375117218032772418709697262840799270906774251849207813592456238932313521524074190587348095075534396003229806760232922676135787442212949096381616921436437762677090077382307276101644058629953183526038276073798364035144736695095469549561688976091789388156172046497654835299478768859433842298390321726621827441259278184273254354999064790797716963726295445459602784865422093851795859583494860683845233436039644211620815252696817058464860840990000689027688303442488886309136658319558916377437444835196375825377142704931462218641448994369395200049504175780064949437030951260430740758629652852386107338342393295136059274886134328251086574449313566151315262962395481172945481284634599116463599294539063109164303512578859886721725630102255926772088832170257833146102849392430609443502351257192224708691465808199271401698590509773681310762058976293996977159761199095526124971371346262175621002923679422522659375378173415648636079869611442054645899348039117860735664100030273057448868953751016117020397676538648743163884939254926975913595224144055320402834321049849279895327622545883092439782564019650372678803209233551805197240476334079317000916617459062727909720897255089505474865737619171775647113439181208835769768488468603491282872557954304311433641810757924458758073635060455426052017312362061436103786748185290474572610139363247331907392139006291778245069794509489264676627397074194305753124555729185633819727380007249939193682204108587892553469107776080955939919240793221758635114006540893529662066520077688727336043177666583215972409457542469782920708270863775397251683690277953001959166676683532044391817964464903254808098523876954702101247694257460217993640815713049230851352114354384934454539399647457844166394743335245226782851357479556389543971852916960376988221655154102052904609186915901897102094600933053515774704865760012041331134042070029652384821837601663292825601509013134016896455106622460175317015507554736455250280127891170932246364362848867561966353202164384524801948430101423188911602513863559867995254360922425546993623909952100152874255653363973688148777484751737365176348867574946299638700197144878740478332189506155081361981593452917213791120255211175544145605460195417539505207061943039423340792797304791665410373861365539982315299711866973728701490967891127180862299455512075445991970885968952775536298321595157029418466816717332222840891374710315126146028046057239059963258844420593655922489208051573945785954809273029023299148025322742740674842361836462241013688418110718012436817083251470551484167490659685949736021868577118386537397078375513863832852790808584683480781397269725293472951444103525055943654399421449041271693519221434912116131760464262870125677599366273137137012341310383793172408248416469771043436636273556607354531875778287679964208537036591278235197210373665518667029547989922110633191853731932501984054937778839228120380987897003116292103471617156056610797208974301157645015554490450695705841402284344683076154008373272475176819159231320017899756771192484945693556027184171885435989235661331611370444878945641268983422062132954386208140849870099150641340780396528280118038395534741871032360138717978561580498296632501561626758691058471280161470258363817470407086934026711358514068992896780404090820427129915379434733440320802829245833771889954991561079289763173466450857483128365516244126773230449576974012750405537013540791704599888703307294978188369195521217850835629822098771107880241945824642143200393502730124915740401363764316427887262127085624576454846205268845314081609742789966184384513004536131937267353062905206330050352844294215554605780216032993415726204411521055314803408826122666732138102289260058478175128645958138839540775047758406759330606355580573623593959778986384413523478503273781886076741445163075030041036169629632019450180217287898240238376120729508613016953436953277652926360931656631946880216254126518213356411169261610397243642603452780047955349259538001782433276555937164607674401218817926935606969119292491298241673039243565733749864179938348694590001595770613916225968444959103675441402640687801839673882470154458294633776348667822419356929592679730324917058623550736260545570224671993791601650685811343489041425715036963160088711592581384862629604571072586695883775530694866000254702941206069456993221011650246767394557602071710147116501299560133789144940067385045751792270194114047901874643377817985370324965636489922742837734839432633963621399099052563016625153937522772011579665922549726694668730917441185670741599718185930102798690410910068285266597337256527648631300083736647859476791882916218948231299676551822613137531506083469308222347776473424135115885649505754567352349499125871157641565710560867640687503474313701689335948620521179217911031554892311143805075255814184790527028341499544249307623489794055796506804697663846748792151192664049205578647095611079690943934287115463672086808750511584092958746676715686651998049287256144290382018286201998936242481263767058719693835386910824727359021597544328924307545172929647026544134468547271467366567391625662773862713900891228958841185461428078285449455149671415560743269505313428986606798022975933120659545216637955935447533103223429206669933936573977199873698950035555636343943248874806346453965242832971767929067634741907845742833583928480469355835864649482363448464380831110298751793315708310193215135372667883110439008683190501974383117456397574771109537050340101145876774357340183866580941949767492771681398273660964879554397617961676020840717290331175584611821878422668172582516293697281213477584446790105336755528357270099695395865557502180488479996487391041792431635644179460492241881618544588490832343869689250798268299770801124464525151597946379758810194885054102196144314908521550183174159913685724261711430923314208587967054106350728667456570429533926175530048733839578154285190607259035414561666246144531193325465047458104542785963722551092214050870136462593503975450147523397649492696174607019426327077585644304189569871514250589287511212620868305952545407343407817788612778935396194081312130230613223708970399846649324865236727916996435340282228955975693477888991894610496680069017727961087605002153676964162885449648412742284937046522574585553068757096255094403764020942740775821005199726081155764477021539683461458888521276823923481692090890538126840307927391984593573966499332458574399639033111492246192873705199488343076993131298253618743628104207963231409830018175693987272622320018119362190915828489433769548722100260211243999332678103559365402514785784233513546773817011978229418590100486563168280914679605360588378335547958685947931714280300592593788142332723735418381986422836734654343322300985826605814956101181741389199757344079126103218321234654795274537038950225299071497757199453552951517022834423398828516313575222360030442502337829683553767740598235939357341733964185868245467026599473424368624473255996634840543704237149260624492036954708509049914894172579841016818074931621847431889530659819950261706314132896966506347312978472320466029713132659231343720829623041048724041165477254453608319690617706203853370605728081592568218750487155824251388286282586499475863757118402927080411007407393895100665024140139781090939699272512821794936792090701335798355105166246205723003370829532710564053711486587102434463139506474255810619523536199088558534930199517484317823929708586998557079068245028663197509736164153454103376122676995417704717813634386113853249693874000777410093915371531705153385025062538816051217715576129508959126507891163074133471969488277761897300054339065335258939462029614835821467511224490677857200335812709771317990530806781758037630407813727327948677051376167589417032179044319260187297071600281845377953066023810573153009389647751733642356975903350166428553389123755492861984514480710815923666675368122915694100007852157447516920755883504074831936690205640655703143830894742295033384091008962168849898783932876462235905183965900466313599735839011369330863684052068717507522727879593457821792858609700108418773973847852072019571438627128744316568426694016579298634420290671657304201333555434363777316186298633486780251144899143784024351538282201052197389848019897993820000064107947273747903479028390148317301080261543553359420011983714258417380195507388999619922592318579421325106478557514157732768587132228827225365807249905650501609890144543359548276600633389558996835440645982438709173618439826806706503102761328290111925698962285047542735385025463026640189115057889016805069119087065605877479659301629402607777705352253663431649472800289623762916638582113706789528302077911439932528233122679122437619239415265198135222194945067721772193651659018783399067085780711173050613257562828232052562875740464845655037533702766026034400844249983625232564003088572149335301783061076279570384250384759563559458584941082688533057161048779434178813951496168441215325103742642093181192342656898928938526698007559338384900415695807587357373451593698516947123288490949949763562523131513292737349151317561445895225236518338255864986596427915822901024295064664762986045258199828130036491050395992804010413971822425865275733300498684598014997290223820802548869006644534708322827169294660424658191671788103596688258781053034204364798794768365818339859129227990938402288840660211382386551910157326497538894253667155874464343685905752917355585267163833041181233361052385976718654693713977172126794416442424269916816112637703917084806618414737934967492271225161408300608526831224348846314693344732859724947444141168815595441220389677708335876303903129432275783242770657507460121348667566621081324819428024344146185993520997593970725615083744485227899536341136558975734036844553151802437201509258118445821425220271277990747190935346369216409502037742047631772975547167282113134068718699744036110124200292328963685412204441585676113528255760266940159526606134536932807485823199287218572787899448999145441654523623473280490920547837253407800100834019342743395800983328124538387222782487846909141423716968604878470018127173626307028683682661441367693873563710912310798698480476079003154922101139321778145964434016707041097421026440783409997951550498517665662255064110451850174492545121539676596520283988363674252589874250208772218559044741094495256352976790110339495595535833358418962122662838426494833538897074303342862131343790167188336079370598083361741167308986078799271886690039969650315287645070365804368449338310213779343953133183030176118760715012453141965555292033321273500130344318052101135322606874416242998748980644804990654472071897780004954048975902920052140616969483756095476529756425663492155179030127591349397270705158246360957905351980370669401120104622331839278519739147137280124730641479967359130923505271636014328338780563348639427133059174782176521073603611275006201768053889785665256919079421049456228662404327359657276733810680891227359047285288866173566869247536310709590842823280922761334090705501632084964233998404481679720836079192398126453551754649436996048903274140047094526965197371452515561467483736166501060263917266965637332120354396171666615679033483619955592276278083617865446005042567671994519121083614144323161008530747027196343280942899297697616717070577187356961213927319377891663856218554166465838361302242272419353156108097624928344084739726472404941917109480279850123375369916950595647178779539417457168204352043330790918591682793272381218310140746479052207854494057688282607310827843722501079421401648157671030070235748157125398633875094342523353203408365545167339302020205400101422260654159926038277183331167449848139648892673301105211053085830265586432188857382925858171083420075883031141327869486488302886318811077739659713902801822924073038742192180183032847799209558999571126265687378433586412455893579515625227370026246689958116703866433952721379577452875259670502537094706822019730951606713092195978822811017339826494195642293790785046532496754664628353912284701949066612442364997222124493694483395536375316507232584625287688293988646529027802258907756472318747554300446054642076507393266144279617081221749266012393117132664973004693124174757201667802315142143282460098742100487273382704191625066009120230265584654588709748126450943467377116147400881381833585460585192017439279922679711858376784696863057734257991323750311221460944719775924794573339876924398395726167998748036789728617861757114190419908452756446659581489859647431930011752562493485364402004676059033303049204716767737151326897256726861051398066120418824815490210807777391325920822585088685429742028316881398344661370417295246628607718977903153367002558307273679487338733474068680579352856971472823744298150636470871025915439479987712224907932325568212326903246129453079815571118934884535069012799317334167350765711420480990503611418258412439125229906524513807325854847971096589577624512346605667798078865198619080774183709948707291557636475839544642724346985355689612313997980361507082072835062970490577374727519805360708136323104916481526770825022393849089213340571770577082049450184810704056274875731328737871979969266247485576029719205179011361290686948045880571056052194806269396295185624153609025368934096756257243238914120914061639881316980440829112227249351752974090749973142086539940737852057027837442012674052898152233064894612598945046181635285194037175763864069585476792450932075895250105430698750529425897612975559971565582984767790216446955260307054547822686127634707310915987928653100193621392948223003350753904352419251857372803822653494982200881007358996280568469901676015575883139855606981978867091275340809250260334144360666292835008284797174477466624785481112430134183586107195324474697193766913187647322651349201234659270541864036137331269462494708341395353810981675761082497439153915948330050364284455402482328319838318303034162911644556640578565233248040990046918228071964041961437956883559944917474185122097260173584753848566224699592113778505957840941479053983056347368088595988640877083650329137904115904107774858729859872828304346203871133829005318865517109797735314630232203451288747265173885287136493059692899000277719885846613502587264320116164195887074155249637693836655109164597840993295751383424697528656089054568332305874733741651056349498775244438052568081809055172092782693548228461968475561515806466555431905614553939662152320019145901953526157389693994807917272557419770439386030116436391176808622055994324668643593289020105470551427273737935221274539505865604404691704349262664420552608905659243363275063548532283489663891528333262831182043591218460855223776897120731712439164722118027995218511638638768621256959349119694885931868402738310809393995360578047873241422468400142205767462886687764483538326156404021306523856447430210923317510593364145643135213256691675424878465007271801549439049661798001426787295988090123396720399805194698047179230076419259920854744839558060293906948665261443462919847666335714530413465456680193135501704414680227549050502704680457794445681929226760747217332513014742606088990523990472234093132632661609065876645852702452279528540967359895036140743380445718445601897877895304361655508780591611849526955740229058775357880685291995505564894437803587070889226732015601175069970769357978573138773507996437367410538130033859018459422746002904209572547324527988033687528472890143313422718548532737928897513191256934809608904433975358136620830187137984279411342056286909754009730570195287036439797545242770796278455708584017598461118057034813479467005846938571101423362995600791827119508493178531732574976782250050198772353953816855540894972553510932438730160626088913277388204289288941883701391380977974135116638665173470771243119834853523187593941570866981036273877030698669302060586257423807886476120330220532759550680447501304846580963783092283934648368122088680353212825336091964463452960675981524054043431789346284170346606179356190418176385583520227825924954632306396495369866189174788222915039930709425827502163018413074662889767712968560618809672963898337580131759171074914949276116499769584978515033770990291668641000193293045519208735975317375342382288696555432868784367243630729607392322378682223797385253913543257357804183318376832035100457128717061416336065869582134465267123699360055214888732952927224927383213356194513476947738987375446711476110115060245252445117272930105642056450103962899463411524757573090603336466419220840849015834857417517334754950054960382421451782151316843609271358000804773411717526916432868004210884158875179225848359862204670122081370959099949122033648681544680204676708924670991400341926414084633760608439272298202997502768828875866003459221058325085108596941560749912059948802459641783996835646285168148402900078028426666693893128706977807667639963263408014605912446238404307277924045362900295377430474935270368809731680359746538276391442099769315274355761061856402820238805697904833609495366888192267364835344435963201241406827534987450511992566589965678526563038340137867961382432267733147327606576481919114576408175197993511785933185776686548350892905347368566958938862411587993802551719597778988035073572981768813837082581896889004336504938100971727111461020683976458730777522885312512748367787761028080451788023738247340996514050745864201365729258929119064874022330241029239008250343857304688890714198190113177588212799593558793523605500384741057356033210795582496804726811703534951724314789529052782774886002723759150137717177914837819231433066717370343479695771661921612068188561449646671175158464315543242540030437339921601991614923102665661944471290569958436093431768465649538611799670512964958569095242048351359207779789592187008706913071496879304790620201884563996798822970097568477896618797443484762463529607166621700525957236951516488467841533169428630046786339261162360523334049729249845023085737904434501537690547528939736959963614500037817455214885268243487420846466255348953353396692530613070844922060080321623871650372453576303984479589729802923880536797650609284044335561612335509436745304184251253515081914149491602463963779346846104785106607237446931330656313077526262642470723307248892650701139129088102229030508557288732336466058191170931083314479719592042478851288741774697308377262035001381177984396658077580206250920017596846849294483027092222095705521780650013718944834704775537202359831431676215904475502457605031711862599416157986748449081792023402186746351028132039077643404041051416052185963622525766971403112297343151723292431909797639690461078796528919136358645950099718687438936613617848574068831582156961231493772236669840548380392434040943542730231149994552591582319001775236356938872493805093833926386618766216716533918444390811634330564034315922830393876437120525773907263857190209178630482253958237588530933024653713429713229637900823935023316584743082580430467032776860709212346986057541050626691099131058970536810288965411257170725884299674072679675929021320371345622134276878807735382968912080342660941095227424550604326661743488291813028206973534996511439199721809019557829788416601189626505228144076369808572454072063005739802638791684588119692692311763900276833147088774311787334034745826534627476453114048381607681583327080426244454864284448286928943225263153585162109724765148192933960946392160057961986423951011506437102140872230744631435275797686577792564708538323337816890401474905686738445132298910961033355666576244019754388908898168373307921529596408102699952888599869717526251762799658012587499525772447936092709106695209239340457734577546296540971559384585118918399620329291757660169347006844808826670281299248103033978851941623674159292465263002978648472037465825940496524798992227941361738141379060694673264677490703734342773871432498328694321107210996769994923629066156148827784033761400904824338340114110234502884261833128372943515315383323215114575668062492514231735098260925179681707721236503299483655854165078583334075250441369334285081591546179558276625277187674626774306481975644667634157330717191956281225613343689999081049625563590763646638334254818673348013412998247461154293212322200508536333465772923284109054239490996573307628199226914307329607442054345768709104523611360257952350113656155476880131272538404154956837759622508787332310817134305620855202277014973253401965581376457567258341446985377242487126316676086870982071596897194875812916837674850147747396643223781200540183750909358771508951406508401943416128742532589578812839026444130449586803223281191667665367270444730573978873036799897084479960036185654323949304689089496334185734410379704277186937646083302093343496454088827692871531182751379435977777258545015534408763723237577760184669893886661551655523357013743682954939023784967046408241694389390634032993461964232554751720508047482081379943274979772990302291644595072235019475058954331655880459132095227842175853811530743174696007394027025976132670832531640901101887790408154341704997350107218301250525175659245969885688404683440707765021564699050512517204359980316009721938621383221188542479381237356276757991291302098543806941488867114312908885062058521871820184368765114226070776417354374599102430610634465030003317275923436205276371240363852285332904154069905560831531794331390523886768072877805776417699573558008749725606490705731865527530741918137147889760460298575023780176191875894701506184806732786790014148908498286389126059903875585841425442202888229760567574354242075842923240699875580787561832030467113433984794801907255124387929497807704536486706282053356980854302669244989002121514975816354303276589589419927315784604430688525801937326238415552922569438970389579139199459245375388000796348392823614798699832771868298702323603375917083938354240979401495559899998712202790985236778314555499261992047270445826209530152115179006486781094698376301206445860569806674948209250167696761101317032075487041884509039641350978865954443665527949079373774723422151174122040443030110610198234812004846154230922262137555640679780146659204850970778439715245958235140573258440046496519698794362219893923973977369590789674941221086441889841261577770880116700167251507474850634283202683896471266352042235640327366400757750283408708799570470028451073770597416981628165562834797586993051837001330522178682320769519070126912597953624553711687318705235695133802617620203635900451290661783126915361963129207631602325397667833874182719783271757006507226106266907023476650852706189267911693835929023471289801836379726627619938132937977329033115421919043060713115461352346119203107088472514437405017018491218125560450616207305493887940235688250705477821884814139302160751352982293525456470943253759674030425954544717193116121821060780404517162773037059714379806842454611452801472419068123553750319435857887282988831652857666015197556966456479724968782931112136323142393820910445579488494636515028646407885918945565364236812276548481093134860503662307419985175832737096052528309295539949536884570787725393273484933883712603014787318996603965912769448885885832548294825174584702615287618444190539263853505177203998224530598950053003765743388085147779745906416321414165921324373269173366763337703261764392287365118982500643226694677619731726859117696711913876228785024407468673907103056029080068306605916834408044583011464727882438361734062272279793376488748455487009735781576375989755990897959360644985290731977020181536482272399909355884859313208965351417494104594327707730040977160828067073617161069990096959264035817209828350076506732575512414028319800120488411411236633639887681945540217041270445372729997973855054528106385381083499971816081549721939717498598201088070340457042502331510400773185747908883141572899431227999237659651184591747045433864549064488086656871954592234271846746336230379672081281020293743564222229502595624518426406621673700859182214910420739298252769443057996287737999266354397498858402752944709973454305597613176481884321442746680424095662507715986913616924604224172764475131821621060693245764444327705761827313811164083772302690500158970372815455047456508662609490198887140283163814450805925166665175277472127794839660713609499267031679265390116336740684813294642465589937357739675288134977999562387107525716935998166994376297154895388846070867163971051715770984031722884512792650500129051375715165249515068079960925375795266531074842227776607042825573017053883184834218286704133638389608095902432852015631026647172279799264471335536591843265883494205158324733881027939248751778673729590791101998304995708404764907235470250071861127848538778097274726453971972720528754037568193404485970242619444738071441810756798994673314789333422587459635862090993155401909629934468573373043748579337874577226798942613248538133052797785929700023615905129597088680290723503235193003244150079849582575173316656823714939786697088159297758845090521402643217914338931168719729016722622662955946175140796877476124973838189413092269619257832251832126411471504766369414683044448489696197972116521619387293083497826945667649925827998652348573786598866729491505335483463952950422689782745776998790216611226189550943561967503011871958006371650669132770858482741202185844789311996954413942634281891705307299153125610564904568254984761004965686344113078851396263141281539336744218315220781281581805532734151829097525249073144201794599921285190779960893948603660944157717878035093780323789666493605961568939319091469644797950424368676568875665645778793808825586551194554668888966729269764148505528041433965540694362025072757784951727749836801803258112106443839524576134272205900419345579860375365286430056230646872120742954554395615659912391556000369446275912652104673413048000186418849761877926543577499997287677251431987626468974485976204698099430169567553820667670925292848828938088255029840590307800648286515501735561546933557153424208048295312606758622336615208048877728999130199367607726195812874810793681340536622342743373583297401872188325522765548842787190747706708650480053363982255687151766236010559017358788495230191818130020845194302022407968191610945011204052787220303841753559411660411791601636545399317938393376130202985507103993872386005857509573344496774294767489692048017635282971364157840651478763943632373431957698620385002126021238285601882156372438808326692860494943566569600400696019119991436275168140016421580827631014149006377867693714493801207737475974473475145775365004449193172811387608051378474921210485436703956412558632651632995695149603668585851361249262042083061490057420307767958237436362779909459243448343435464886559274582895712013876712623475057102233529725042565512609320393066142724910585050308450060529065674812714433037857411979553182611059789945146001242654780741051984046017840057197440335698840407491114028038228043160463282082380510496998593838554658547789894015711954884170788590868401661622442222185776271695196900527409470642412341643924606317832913664616783448785057066736550445113828566287977822908514693718202125146135585807378671312704164517338507799227411968749326306579162598099494061475320983604830975534570726062994417639564324823606240652609147335206758060782586664746151681364995196276782335831680396535749266746079200682070530193757283428416673628235253747354358104609699297937703478090452134835994087891432136401160244718120092660469954777637825701462591488177455272378576961535115135434408033026946316795072930954072325858146493859938990717069637294646987032255886477744029140372226932060176348300785180818778739337812517639140641637618836507967205765797856623770542306470967760251241404948976098159221430373890480515949658701097617080964949709425528742750512963823257443864524633546824779486031359406449925936779397126547157113075053736344821016995634731219306525027546088687321716507512150848098391431452761672120484564356743121984244345695877569146847599822521745013879681518374414040136408053952922614699518975422194680759863646118344212338708375772377389905830225212283740254939244302597908068708352084895894190220811022737767201478168995292298305934608761934850249479866306105741154303394568259134387509983768988624374643319657725386842333298312086142947042877940582517621071770123395413242653334986365649226185806688496366535724485385915655476874279541816805481422068364461303581527584736781396698988017089768284871407644655840131739798408782400690212745932077822789047573989092456780963307725574033736225910039473937999079629632363485182315980384046391183729197255565076453893969727796982278660217134939592481700212792600248952008719500574779018245663052471580345610901642397459075651811249378814261852187781309955520015171465545379651726479448682647717614593501411296189120704170287950382467576152431237876009125000154918407110222131988377633571324062964917313705435903067167587183052500501334286749063428839075952383906661964960004036016849027542996198895783320146188176569731071020881198764014721033453070273780404441576744273583236760413542220504659653422710522367841724975341609999318716458775246735245429823742749874976783842798996144692807446528094005240287249426609601985443612373060066563970711813782564758676101646901403502288765420978893414758377145495464962075882861564194689338254078800974322275845376263895435203042274728197332488490306287508651301557254425413199257681495564831912959550970658096226560660412174916607522620757357123566965675118775030275789333507199145953170645911919341727947182969247785141067873791213881962606755615391632063738644533263731298694242425313299467544307447776681957890575507971232897903980067793630315686247736230836183394186969356139956447624976879037283781058166140455024958715623695111497698482259827517540176851202993796235823795124175098639958358897614079422672210460166014317931425427929823731178262550264171225925459067327831022944537592817165770053246446360111764416092562516656541492628400962436392222988118592307165825155561878311864348454576317638655996727363593677875787421954580961327708357408776567898176538059573689748325884197452540301248223522388940802495485494207389248694554960986729985568546335592449909177899563594273525084470352084726249083583032895887434015264682549018422448637481426545571647428369508460442288079318703600631953472371598993067934241589830655170708318520145661579915811723317035979365183284472088380794999604069108087146119386672419014433278942082425402173803541139510468972121191943490522940054801248099468002344159543080452476775801787838680583154933242210585022567955596376490295042461781140614062423359780148544469758794656878044204622547808269739109308440144434460403388538054746998242594859139411602170393147830487640053937592441698648831192601607755607024439500689525366233512879812547238311007839486920552758055693838583699329643643419040215608760198174255443325227895214459564170633776061772337315465525311599579346900345942556942167265851162674153497807541729231809444073501159401880363895079232140806557741868673620419657900095695202281081435783504539942633422104045129418596836277368039059447862228435091061749816876039888372475518058499138069772940704296094430117544187172395163595360130021457914444681172162218338847486090693200331612604929146193484047890534010054251808094297468784375191468619226129142485165145093935683325143562938488134281771037817304672133674989284180612471930193288050847063130503494097706040769562320527772349081972114486892178438310077325891170166325829370980556644410816596798417439561185389957195724079443261595101738143013088152486520241525996767016661141054905206226936956066767201700850748525799918710951627925762786350818461720630977453932859778871599057255511214611697883720660008643078976532125605671563944503416346853763033217431634225278952454894446104938236159737350530644476896062765820367664984945599511600841192847242710590793940408750031713221305065661467719449252524232153758703467708487196181733784104583483684781835842229943689367484378894511607094862610022401854651823086791384742807224697433633567190334322163371214459409464848354539831804868953593845969383752044880699686524420774882237030501292549023031399091313214293401493412510688067891051754233940715039023494846845006848209419571744561790351422666954940037515846794289832177542451778990349868880426566963701395280082941187416301493474138068544664619889129336408562353167029058690150995223140189746074738123772285413903105163367260596103592977348133085692296626963622754545209733460770998202933492311461658895614764624253336980099429838063930340519365297890391445538000401709957931923510587879188020830265102725186270481508599628367107838744405303565925181822449267945809161595223296876639846503853806681583625770313046656364019851207046120130576365571762104256473640822599472831095514326274846196504872968524517471735856488629144456683488170636385848639545266828168813533273086784962240225953270063648349313771831103873471833217712413897750851503625687794339126551255803095487625864369308975297170818361573087603482650872648969283420516857799138075749234079936642702378493593832540071089534206673190948158125353749724614556557477735640643623668485535373068220120366901620805353387432298426001865920079472718377796732212571141734792887111724508892518370404540779767353053641066362362956359904830282584384370269179963916955946543338960098206048278299153654753085165363410460135939179248708611046376701898566423238030526036163420720455278356220592797895934526179802466319380386474598568628951709715957768967197137688087312253525246279871819967977839099285396526235557112622740500842522721078902641313562471983076365233265199857381454211605777150614818021485297493164650466442609733595955983689829061110417635574069177013338410515012421395197988172839290681326059423418070080054656627597644084260706810856711493978336289902034827756675862486456231790434320529292530092589863460268757604772526823572489860866508522121544295176282083389004638536936705588977109259611985440771176246290572754646326086386279719109500519447506993019088042819126565128413845680426705755253674031762902961445228713523827013132302974849707399361196028479516330733040485088345009578643603513314954656439690980323251175437329822342761338141466832641745764272074203479283970362062535307375441726817579821152096445208972444380951309584804577105531440653996354722249498389739575057488211111988064997607352270966130004660516827203429187010512661788996734614877494214194107958579361469930963826535569939031746554734737792190900613649162702489780640444201027075269839217433757497726376641576520612211005337728673644369948272531911946197774441948284994603565914039231327024643111955524101300387067342030852772020000567116514975543339838005147229704737783098017124731139874110389356905419879348806871088301919096347310399195694624949831463364882664085975142779777703153137544786157754578591198275736883721081498173707440895846477783847387872471469876315259466758444092168038100377710261492393535835861902668758285242472836482091126433124410382049606523205757686451612049416441729955797241811982999437109944263277506031914300889548982354003460515365066615402490821790608359309258843848288085365234267968029130911920627234525336804268271116388659546856671442187755195247553293021472459432814928760377060482555742399414211430145976230870476556268249137625884741025154021826174168969806884684582847408001860637103181999327315661751894473783205069644566601083182905529117074267427837947485420502560221377238854583587226565481989719407586820629095166182044717086348145324313502353022147142473878614150310018454988539833888656873233731085159899285189040245347150672289367088879120613732746623029968686799727907432247607569303692751659805421188851321624053045137810095899331824249263903016785657980373021646909234496439806530223443529728483462890207763163696057105842682621706463092650996587026363142408584449315161904703133876465040026059706036407346654801105091552188641488294549010503230468198696622034422790809675634313961294106509068742495903982205606420342359971901258378162473354642256804020028334899902091623633461463991556534531486125863165532195684260802678071172404347152853516870413828668766547643728355593605286129756009871254169446463154251028870018914767105136473516558041105883852781877245957311690026902960751079947238986317741672077788852150356855690881933986828460161704698830371906751929210198401943445480952173599413693381060296903624825550930573025107069000678871175193583937175649963448720188343880340437776169736936712694189921552343561128330378154901855599852169539436536394253679339559450960300547006426513464745250875305376717272104644206825848895122042337230847363892426139558406370265015969490503765512518695103320396726813336594443386545843819324565424817229048974494920054641613430206078766455881527606687225267828274482710849006227463368427416389326978504644034942523130457980687945057716256271526262359373445083633910780757430450358920994267363373071883306092612175160885148922181010625814707424280601079859223703362592973355317165209374035522102452443667267447689660639837158918229070728018182782109751570364127883614720620142831587976655907020780936762889178188268277364668437054348702375276894068357550432478946044941859434348561031909258035554236133448802823440042859199662440346097970772717218654180401661584849812846892169406937740472909192368821776659570640757773054841163107689657125272867353130247780619396915538239443761796382884230770472873852007190726408035827564764986253637846619534067968242117381429922227492305763459452920659332237070251903816707073823747753273550869359698320277665764612968590927261164136094133839475922361014896790614927263442744685867772561312077502959286088648942573021651643622892447550480136406450508360907232957868832857013868360736001309985058933137606546237135583472266752152284637909162920701702337752588941506787924715169673902814869704710729972746745583291020954699233098229441554537024084918184606273085755151818014661701449871215726443223049251329068871724584422820325624763403698321684924717563974117899606036635761217917278761138923719757152049937702349609946913555590269915469845178916651466755505704573453412066871527421634309129809183155007558965627380437869453516434437189772743431473352692476827159903348661210301135013937202927926843412526967445062697914205323621337632034974190754815277184422507124186034314259504449198399912101698109302004509314425050834441633742791122806697229150935886919728467126050486201266020861197538475910963098475046005367069685624046861860013768011739687102939108700078227974683034293953833638368219877268291416836592625104529169743833119179528155524392833493404403815469971428718751391309090400128019288181934643883169909383264473096004158858501681216835529515557364768839317862170364433913492572679291945419438525006211820150967291791793389230658389040182710752700964774667697769932996093362322387622249017909600089812156639089260572863045304656897629840210376285696917637406277985993095617171061022026751865236489026622759332679260415833581296764913350246628534663633450083274222126381796592921059691068668160549655338569947545631914786125521969730632799422687394262205012202812054369067726623499281031355281663610401111465224379150713208649605778488915118584307916361718469523145429472345713872150880694208902313429548787225185268970576458356821618270795643236447862000813058467877779518096432022912744507806591144633134664885743328871368871627344601177531278527519294921091055130866781721070268429100484369213573926377840129282488667461918465155427408999470250965094448167645714714554087662710992276510943769623139320725637799134736705479113359435285052017083708737112247691944891379347019697713357766158672508757643558413728173137618766872544650395927290830006154887251324019035080336363174864645081736998433694768345228064235611807281274901018206717638857976371038104770351893283434825167606359868389641820776301521786187985777589745049584470272399240641167067553449859269977647532765592387876178864240149476426682850796707653457617065440224286128127220494151442716664608629059498001138274604012615252843216159168138402275475753093279174646575054078767510484652008379418064804151862014754660008177492511061418278204971877442694514572644480723847458703416344228621073460015541677521295974541305539784079175798084273815508368514402348078535415198229503008009756719256021362057326319472392736581646788347624221555553051472854569116670186002158529318694352373429067924658266369965736172318013700307358946673890858090106942970533316686865043852070116878336426351644243099896541931137942081125506026599763207923762395200260857424974169107733053037919279584997194634955837167934931125996037773104831906383115974767116068647190973407005977559833179792409754990209890660815434522907930773116438691399248140007393616324712744306185233574209996649108318190642834533200577615195756129510322720118805530470881817143311487602323278338142805360525397848583998175712937423957160570450982006651866053893597732369913715670587375040922883043902953599869827244903079642360359628862438304764628962893121315048324388147819128668030900519132469909902677575317757806918922161244303496144158898472228067871029223289895489313072622450063481324698586381223100904616154736485359204749437384261861723311023471531234820786484061347044369706277233964281850092139441118052117388894384231872693458612549070905895909209163145279436851695111631513534413635626463068991631083540489579855163070443230213992717440362033215473250993707723893951331524766093246043208306259053565075065612658501747576030264222084608584214293872926699349557970058316442246212651871752374259675874730287226317074022010786778736378385143234421499801361619267581163113082030521104359718153093372474257113638901983094967945174164486919828668216873058338490881691852214610589909635881352672555099534056101877230030944096443040161660765608664131168381920513237327663262893006218301796879519144812138423093657405828312457063741200826861096012246046642466808193395246814151436355866615179408871183262614311691449381596036147454791128770307775052675279748322754832956584898205420957875387470642941394546170181323383931007565545001101956887048148027506300893192327873019245355722943399415177435185990116353077933400969184920771045229247102259917472584279453524746993405496936529663296026038903913817678887244681063910198808373757363138662134475197537457296161257251842496916004984739169781164024741864985820883887063208671971422037048046287562944461271003584098710172080475807185160017974671245801962574216088605536606671702146203144594160568917192631934093957075553876166976540698291144325385652096550826548391547725284935994178702649203949894934409607181846067941310563753587262093085067788238321414180218794970661270399869546356063426771347565569677719731100547091980601379145483126547396547668469356988851263992958489902683045651435379002438582991048581757217613950021547300965990408052910105932803772286240872791990582521075381458810256866885314153089264004175679658004158378962088481603216359599308768704770446824490747178107624998092691283988579952968640834711336122627010926429205204201302083788537002497864442883962333492833524685356074630459038079727272663617184959244212744071301851921070088962398206670891145554923527495003219982574507938120157341564049345756947784582520201725368813752216701652514064718284507241384433122337917035360896032214081983909589771901848247068742233724867688525867546348640145036883241948044533040325734384759778920777011428512984261130561418820667013814108793240234725224376430147790162837016208715456251758842587370926147984607491096656180647128489301617520456759821306666440182193671649219167844325128078074184862150353553288408142955011826504682292710244931317103995810755144658495082838752010661847030100141424461747124101314499282934435584604393640160623612806005364344760141406744591920366973694139223449896832043267646306770613024218206090986387623319874642576407667412212836973715301062613022010890338679784533331817769216065942835321684044239539071048307431100470503063721672416444726741752188013296690070666716055940332397992094506415475557811725083030488705649405110800653001861414159340459851433329786619906794501910911717195795566143325586750625148044060565295432800518078302343344691701938107891365629709087409590249488428781243125609233845093401880341897649837186557447961732120353406075956547993215658927396865321160745941001984019051269298335224750590632795415879327553824281942439033928242166342702243700939669376160037838477027181737774190245920420015219590382923043566608243036342012809172685396940977946068186283516192922978318165694386314474897666347150444292719633261800017501078832697157378902245364836583245994096002986025163011395058097206315363519125816764113779471978364013435980170250504865227501504510844951203934098497190909007521970303304633741346716328774350115880422156250264018879966133923356913080300733727472162045958850953825955845236578286720879350482587394260531737723557426183025088780548342526367875627060955311276107035291225313668756400258760456612146476392254186024448633058875027879101327949119477652685479186778970283869907871462203613308488484896748891251736040384979231719552747723851767696995193018654197408174497321527281444798901478473016085950866167072508161674919371223233654012699156885949847163618338158868536824797460247018258595869123817373153734955050904564590560364545645343938283559952415649333224544574975180271259525959572305715130016286055229190490497669530290736467142557043675534824136208666522964186153505571912121048282649764502866317532359623631878885789518467767576446988938762535816488022169617483396165660845385963211967263862878061587559921541318057431545438361777799805619649152034049040719414468509819002289161033023389064708885770879662598707681002135018760605902805200510156665998368817999239424484529246136340992230994760062460562592180905054910731666180497994698679604197447086920398863871886309833251177359700487636376134267514296300713647965095143411279796993925507654170907157794991223296394408974249846739273975713311067993286569438326592926247106110180996325967903603182797662688887466939356931966804376551575125078954149970220263411046457006688690028447535039660203431231307727087957815440381717394806380199740484548564965184823688558437197720125783594226390879656696166438461755146715260405159433924605075134063991573265257940422199885391419961437715289405399542472802169102083593053734503081655891620250949257104395307981468157968959827569988114630559596993338989385942666934490587954303188341711345043243530600617224589741871253412063889524500098666717245445016761349717898741388923744429206584445640437192370953181075119311845484531960700369920906504882979775590398775975224008246052109774798976864874806646100366607555434613831694191824099081475280219936534209460591579081885323829884207243646543998040355087218018677260066879273098411413095725742579050853323213522061573151177371165427030584623514770791773413337196509192496506320672499044412872361711204684436573530979468515535504053382735785733298289695435328839507792479358495814414747528151936776901093084530762048660165135935284936402791112402880771785345968258499092371502010486674557271870991343999124136165164935288452572046238591477527773722553254639844740888198604746269521695097327652646821884064774986254326491999827035339610178692541908633309029068121778624678340474571912181597928356307377919990059316375577075207468733271891530025636562628339704034518841435563514281500428963945040417462649713790809048662409376260868718088104116886958175717709470614705521572914264757797667406967778225557050676711035484925455293141508714818773918850726749030991757758189547064560796537875254574551497823103477083804572830938662917195265005785764136857676638322038140001466898140645092966191882706621732210893445614768195431994316213892215579761261196378110384088718582724776379317700565187255747615249109634779835139970269591329584881015602752113172771122003261849148441480724190522948370236017830346103557380180019350068027983740139865483073591554522920946307464135493921976880811017212547478313814793893318626154659257580785194797440848474338456778022816100809772711703720435117413571526004036590134910771358383638811798493300352711199800985903135074803848762298643346794475422416337973245762492807046444170406550343174720536163468528972390764648425156049112515992426702139865292828617719309133923442058883363865941025321007433894816470188583878756215008630487851410778342484236387624439390060031030992150545491079000420529914687135860403531858755946676276358476325776455488512381398574925298297565567032007063495884927140508457437715909838348904623850463367247661275432088700759109645301743912957692153011884711146208692780497330891189976590694321983810456456887528909566035367220197722905060398983544941428665501722462706437112082395922435885348810648587833764303429206433717971591877113277019136599792616960953926813374223904911149341188037945720635061688274278914864778232989037110671861500968995014540859726413296290057681511223183310509162503747334049075231593387529640003950329363159522782849394485900907986491453132667816354655750790639708902043158605792400976418415216076956498212408293459861973559937891258135173529139158769929442394289858017288815345835464613448612715704047200915403967137048339758629055039804291315840833051753632529826618671863836404547054927772797705567007625563745384992479206185458870717474043145173080306896678357416724938444503551778033496947108917228724810126860770128325736358058040479381862940228600824205982648385856428166398241978312223873777325884411085449118889925880786079733787812938258254620959083422638023638111048999191397261679009550941844855795611661480218584699313738441754827138334213575341830861166495595954428779231145854369188133192551985084769635658560311582012635476014564197592126878809508670490933614563403886326083899063830101722573823008431192784557175789017669810421423635292314170199443710546589987513889855846602752423128995907365130911597213939456073088514220290633384312399845649291950363433215708011373034114151664690212939461454941415895004414782814803920915392382514183602921507587836522326187100468872377843931539529392874941112799433703951954909497263619894230315597205703880102110602182077184923329694765760446141091189052271472364574749101675402844418410574184068858260826399321609152789782370431520421661424267406320713949557392923349024840453363001695381265562416167872909876784438920215826028916727718813841590314615253811834293702152509804684087430268405005226960680630408020839813990765917082774682903825669902456629519166227248537896612474384060977557340752199976661522454312937437714743280690716052170720563933221760861323301180140286794744034460145329065038717145426287095321068259431382533418640953885495586910562815789496231814487139716993767446976272289746976050435301315516305813494887790992964229713093091214794794834658677647936974112805904728134221878745638070667833423538332856954861203255833048446674762037465347112339328581232227369570815145919357534638607582339609872007350119548589573631206902211457814755217430823404477063206018291396397385789127362998453327207068251132932467988580178305239854643887149845383605350605470731627735599057492686087022178143609727568523021669280728372916758231261611060365793850627173075720856650875751189581415674315124922728592763168593113482987619318877398556748363064270841027986836298351142234285604172106225725729446042805590003418179956927989167297517658079957844397672414071414117515490047256035604708421706906043574017683126543622593610932801141985624960163694492641588038854889117127490453398471503299396118443553304278818665881074984339984720791487163051278214550600993143655984955387046709929226201118945276295524356757804106883516884333597638877792750284336992959492094042227689496908569657577956677835430806559291437780008661303620434639971945087562177502548078410891812259648225465790863636129777012993577210290910689878487926897492323002315079698642681140644444986166489297901522783451631210036078465371510487619323662153643547537427670952444814162524990663750064188693125792670331188902635345801103989091612452959593483729974569477055534301507988362176614838264376312156181524734978186987422087048322677175655123547436760995051369847739866324124192790954142103415572925648428205051499195159628588559437562378511166736193890906744064834621952212277879826215194433612944474709494488268182427715138419858930644623474371110131196454418175841637355730127707575786603421195973983020956714460415500061138548521429037746096392361134660679620593007892680534164336114148856958598769937723007549788393828243884438013729474304762822550646674598660207765868180005338184206914110004487570045871281637654361278660982440654518014510709657986325029297146322361941613768397361733924292298431239590177220900574916656999918017314325098613940118968379786404212320463477611625924948516663361454555627574754193624192995205198622487538973384346745514995848207966227417593829716370143614434827521100801063592293829259090947995950969172222750000940666284577681298744403249830538231859116148183140644858686544793615999224225867656567368077255008433333064317176332913671417837929579774535159632562930771539488435375898955362036079014520588618204794953297265529399786526022123256643997322520783845788234231054360159719657784411080048384776457934432740157684644633875096646461452200333639988992468693025154233102123701595225574079266676794085041993500429074346527802530424197075128208135730565362794141906752030350591136858801282729222886912363714285232220714363657054340064178313043448028359040666210064454224518967816121999006221454716146686094050240060830907668908716972766272654649289302449316778866092930336432074068944364406590213814850194797349346583944659282605914429130858066804593302215312825967201233849498913108953924146490251622472977269305734915674955679875818600238737637639197871139706560148751652017728029850375835606558710936500723372183167069919008806951081567637678960823651186618223095725275222323240886202871189187071943165828298394889841769065024436216888379171849462948649278543526027231311585960384660886256619447151585314609142570379565932286451630666327154448437871047875687418497094778317147910573338151643828382135768799126064548199435167770179776229720664366102308039847211373403646788608204997922419989452677054531788572113014885264683262221196940510687901255263918870896049308912531706857881884060899764718631954301578291993865732000617345558721162965576920298710027735698587069373161555975453503639162637275133302485807546764920429360535292930208493113197768657815505579764719079768871830437584172275723857410932993377096434153603565252638788353651855036794998143602761727546144301240509432815413606536126375868008909059941385671106236363797230891837209324525454671187639783037580250017604102661927928612052404292151780440968870459435694620450389267330839021658310876313644418211162811997747477744675359976156579229962870690934687948823045653342927827477870371949168458579506097921254427911535237175490657982308799392613005960323928743285893165424644247214337490584686707178547808138691909086543939691759843900930897087595719670677031816329001947094361732521423397041230710614778586186448121675031013494842830110141662336671012516872544568296305519035025988430477830003245564436226502465115593329032587374129264818115803218227090396161842812820525841477520769183311581558317977949402340769621257742585118584242803152019899990985186726993016933568607194198449899644778902279421719991372733568033696363688253506637596240794508454876823498403626834064886805451478954284470003265095292685679297697322036800873779111925278969981575557676609630409238657054612885865161285736929407302377228997593882621319573200319746931691247597109775360880348088384665157143729850362266405917323654118335578395404501896924582143740324555567097140097321251958170182093569640760239919550724179224231349179337174067314430307203753784350190595647277588768029434340394088360499391129786425486641532499204999931704780838572168108538036019773577712149329213294615677939400185221788372517487489151700160956477489953942269319964373656059059765787460064621009140510091389360295334735636037763984308805139890018636988234910863236196008597617253915820071722658956637600994860936216218577151841535634653880478963867485557212467921886042387715651453349633563590171975859776731797647323093788568633778243290258411666303197632846466840546952877578373092632217472750706110943622594795444255825469896991609137205306177738836381600534917530217158446389247638427616685516769658957981849732480007490776949468008076732649015114674608389323236170836829723126006584670296304791705675634466949614872788433289817327102807438699161776933437413786225948380627498570138710635465208856341357591664413400595058388707458282604091949514292497925151593973397356456241710222342708439211295819649892732991367827694499413311856187573007526280236735056879769920921872303655801094991693136578280230666401903130352065898110944395440846362987014287223276691130460424588294260970973150164630953260483130026824387206389381665214614016891981660726544913933486042909183258962211900792512124148193807391750136397089923024088004707924854693170418913941880406545951626254499536277867410247034973511910505588403159719217585298173538761471894451973712321836289784653091208512492421724584812988951821033587542079922667930086572296872034837514114260089218625824518180508649723665832571257180399424951022739963428771737866276001647441970631135599926733154776176655658395840311967481868517382345014214441870338620808635036440177337356919991755475306803928045203793251733888029115437765099039564154931365595313205637130437057313757944596012699046393167719435990806883285473774338555113787078382580495117152874205374231737618069401059586198483263178816687165967394113370593667031089325795894782203233052554023209878741412402993480635590413221798584282989669395355347774577125548076297785944861405430935754133537452004188017504761581809748518979192792736962196358637152412156534712129500851609415699246479564489320268499745088938422591340276225277326430158196304389524532136265265698316106730682679891119580930505338137699409798146488636711447195787822397214602866515720335760044866277800430646338788147868995257011660854077830933746723918400700991828323522294436434844237630475513959838197590481057143930715916667188641407065677572805773822259624259168154409645566367092727066740779298701964376162955234420125407703541977728571865435069331170993169755166604247390998742333405016325679925368828265262135568899464251212094758085541081837323580990545428416326670303674057384772514993788109155783620532998329211399152172422273248587625714932420423508720669411450431738858233456526602256155885043921162757498413082056050267142222724125875649776626953907471837194320044558581663913941295544675101797041853614459207536771167847201650219501289553461633533807327790849531206076051910004240621076499833910365954063908722194900268271723735443043269969864247824897171032342547405208846331312230091180874194040485833002397758627604585304261442793180238594672088376231660475220844638167796123383072306803573598247360482147042725301459664325454193815932100052295381702123136264332783735453158132208828214579710717536671211594471987043155558937195882754695125718734684539559091677836496839666393733393621066016775740810008430843226828970521103958926085004125438204387125089756384329083036781365784785886398798824332661480053417350680302569087750702855886698578366888069446788235913316622434293179031946963837815996467845365109234983182634951070741828390292689545693623085329187533221054142034518759169299086125762867646411980047904975326607336341582431579082151192237067754525197156847351297001386397366837661845435697791469086114679232407300074250376592149118598026598342971881715178894409750752037248845349400655178904113656310120053705002245998326060774717760536353361066190427131931075694860311634629815437774510460759375104952994483341659202215144840640641001469655010714909296655403623354574728097731549874078766083965169153286502758048942187603082150801705481039715476573013213788484862994849236838278336135929555128472564175489349000860374973922548299632183152231441264918535375404161724514416338559373469813302695049722364580702517494147469968917998265982571887682742676584694050684280139624013729823220122347193446227069834167872238313487451504828904176824023804400457315635212173236724063584242714642520477978203510203076554871034498860159340797482566705420349305424930906411842814297423323690423651805226905312975000726823968578723357318445006439028352861833781145751523462819847187747186129729351945482847130009687101934428473021186475465709534461225344680199595808217798757598532564381049471204288183458109163679538411512308067304565375365952878239396644197856611544305237890542854578678882419082110903412297773335764469172056231442885638141486668878473862609180990841445533932025200007678141997060492492850345162630547756082927408759175919500938603514226557340562220635518932230924593660573949510696914980619462992631979844749160034234948748942624259195243860345440368096599261706835505561897613598681005284437811238976215316373465588502178786379363010034070832880086907215442601798708182812479919904220347990144115706403593498223134042898352882478577476589470954936868593311661567012601011880568900735387692097588544227469855506138305912538722718138404832839662814780250344850825644257222682280071101651430113705138138925126421512285458300696483822370404350673065346646108148573270402147824900338713542334373008306816811114010778070180434628918404885000626073618605652992143412521174895914261137031669370908299301360920145549684087165297611733307024226056047027052209772861719428998356091796547018552843909738380324895820551743707594426456709993291855362955613867469787916006936163728601213230506228418578060846488780071489570538616012351860293755814264379775592902599921060175631011161512704129074064462429688822230786867665942171515564673438576698041160456483628278258488772867493204230123517998502729995559991839764585238612559258811694350207152338860666904500668184971149574905681247333088985211440879906713845716639766437052511237620878374367601934436471815816460274907691243653371309518151844544342085069463041446780000038362699406545941387350077034581070059728058526520627442328756539486432535605563797161268949375035003926763296234196071999117660574021168785544846845299790794098157901778714443424506873303669205551973186231388253595532818747590178100653049346192951365486755093872357485776519129421794687606006299609086521371686219066835714282099642251484922304828820243953679104659385441280818967321733656382916444412065264729328755134219030553380907035126364951143698709574486017074012244407998420976095322063149305154482936006834239641007060359226604424449974190063316137688067145820813141668352411132014618584523249098715301061544415068255903488273548032004461307792113730892195316135033469290457827818111649268925049255097417894832634130806743564936417905532453891870568625524823387503990848873560683040194131305130517884765852195633150832799497991350169687914747664251674984340942278030874285466290026641720410090400588368372216107916563907656095153868151367689468397669366395009918693843062626392630234953083106327244531457972288495327098060224996858395761517241433698903774953022257491712593473130443929380669564693855355343051751306378696162358739117227171390794313705048801436445257157223436717565341774272734841674380505226455755889949328074457245624904340380349421391333676051776516421098687511040172420803825941176551597454253845324426509467913822318250979856609744429887077460358606387529385697463140281010976176054169892905331844478071494649117518123894921121388117815430646180159246928451415285041692173337545040855425107510130129393251494592888251978781660899987196675496412377453471221196869624746490224220490195351461290244637297053896806888793028883417880583816522045511900520293391939833663246377200746287536001135126792720918886216221344483697174026798182202320531922755986318618899426125740611867279377298647232444865776857941016952510172179332476153091121989650119045433138981597753128551664412167252697063304176302896834746503232991291717148403301577136553601038878120919528188434519340416438374110873238423560249768752428347315286243636943485688671817499364391382487408314526040314378733723903000489111242436335534243373424401243783859703970207960900718837432233345645381875861227040065460590213044734948540554905247375620629649915731332458171290301076223663910890218870258953699321999651820682738587984039773193618256401069815627197188661125404546437617233908645070718276016399830200250579034780432325444655902456582507082983305988555166783159117992860735452691407157423156992343272907775294230742639410904055374005816838387833699607899928416628506893341362782897540678229345954718597608868833601389440761579673332571669109782542599601078510780398879910140283148729802672437323443547925466433373834741312573978110875044136334674272195578898529795169859321404243674039874598832412759147135219832935921304752247887722146269614697256676502528480405105225309359199206735317856522400458782771945434388756350853496895211613805852732365173091154573326972884958480072942426357991103220643669992132270319644692100178540827338885644527979007609601359690308663388895493462465671029754508206990647592885958341585571462647332149542783783821509868168732948536677174645637068654365044442954723736671431732795874976897454745449603048203186454893053476745578967671818201826716931240526745310573546790103523678840481136920501769706320249810398798544272122350746593901351123461619478883004398153225567846554240164406122508350692023258053215676983343428617428281212250081082195015565524234422488167055452147625654673571873471504450664892267887882185664379069444578461877152829435708088108305834943935531429323101081486829409270501411959292789584004181874421309699204849626449688845008063293056743776388204897370046811198598567823268573503847169131867596133264871410939022058519468515050259488287886148430694034087434103244755288647265216283581762100399992203361993397480899384756689652974627516984269862493907551743794370646899406366058089377150494441916874940408986744588972821320473380990865825259399063337180698764365942209085336244301698183494636370819812264476803099442169282917054814083583430631285769064566402835951740629703637606213908706012075028202134178577924480393281919346605972929449081887909289564814122951283687876107080907694035452291085331874166650797329624607180263382323922086682789539410957763784203864744962203939772944556976237334612668757413933439769407558699516556971475152378718849355617481610193411030467151759254857781795906385814743915070800843572437831053450167143368031209760519284934541411501617308570573629875931307232068715569728498211232397643508211351082841786482923325997724359756078557415886043619156335937648334923022318100122942948969901368980017208479967423212199382980394156788267886001261002351646391915288451205080132279800846847897038033408600346764664436313531470526952869765007513495022066331998752131735507302362134398725748794505582394140790546880084942849647876497944902114127658745765712134573574914935574066683370282170400356358696198569458892209359921083884833061797207025959666385558575462138941365524993521364493865714185688926613979463322118947696511656770546954316090917311144669827969301195369915565580273703464838057642514881920921583043760120859610114446857921031042456803166192025037192882221523483403211124574039286254872542571912351493575196492899658711046162786500793177271478465379328717976304944459717655805764287820401572448121745958012610893776243255378842195869470933099157943671517757259195448155867002008155605306836927027190369626484714028711692769125094449555077578388213692392329702113992704179523570530851065329537105195972696030103077272150951866130408219835142314219678051015891554018493388461412057626824938420365961281825817096725680355270301118379416844385757417218189187215922443335557243375225619083273831506815895557220656114009436236873311137920879983526731349148139887292843572438192050499194568398811471099977959954225015701571139092195020597724475464374438803970287130436588915650389883849805102176882804407238079172039703595674749430251045619874142719415938057873673098268439892812425191021745739251887611553808300847804404866214617557288426148589273698544826280426100296189886778814592680466711040308238181607924351646448510823142912725341713312310381705735706979290441742011540999937156315908917294893893702184611410364750596457271651001789435773165733873412370869956800606376982720501703423685736722590627900596847585384335930357328440519240818244257931856464895461005115477800456030377008300311138495275062635675369283861016096701122217164961625004586921678607217324188086243939526314629058922544277597749898559476138629345208546919148041102982204542540624156063650272609592185881966287160208074544934449945080765583321378376035030703846736490783073112875946721991816485838750841655793258200826731788243448663061869373298931248028650280645658897748145065802181129444006862613328781486508204630872451929344116899200535291063238658842641516931049153150171023193763237181510454684454016083667793659610650386766344212810254197114595604908344432445605876667216447575001230950053762941223545596311435806880629795144107704760842422852318103875357334029968414552057509357906829225808681574087521212699672594769040129441686894949684966270476573159409874663011645887018441441011010409891952012805604105929451230508650510677990630161341203955272059910163798925407072931264845446631914355717600267942870445021445242534993341242326601613969172447075402991584339499838974541541627579903135796515298327513578656887523834963933865823326173739126289347506929514998633754927779018097452260687849494302803902874847143043674669070194087102509905935474360204867963683052232606594752339758762603936525710004468207858768402141626294060957108779503014247799567593879255631006969354403538497645119608345520777839120197749038925922424696318925312230795204744654875899387501320414083019807771309418424494245743998939617270149932441220832700464960565822867632319101506117382189158211249071055767671068458625710714513469431957998267285315708299641955941183232364232295281754080902417877377722331031848813379593853064285540173885619150571472609615799048412174971023577707418938463152489387470449273958649436475208445393326523960692429592240415147154878989002138459552535539438564977355868338704052955888033383739388827702257599827128153867724404550177975282493131957210488440917552660660045978568680344601560756501522230496658420914847331173920385925576984029612675614795696845878249644766368440606535507703597710091445525798164854979531159485883305259495655194416739788806893501705653191093313853647261657799662384068138846726758631588212657988109710831207184025015747105016074812363344228757898442742941163840675863345284670094112362338588653321212615009364782393378607921294057357157061264814102184273386076326089817156046701063388180845669009227967048190518715563259493659540341657377105279495839941869717579918396202192394847268529872510436038483886962781557592499616195734348222203098979180061748565505670241601353141676509691120966907343702449440866620431587719692157538291426752509831688216560137621759957961482474496435525798528589665263239355717784747658036260248089978422958065361007358502701346791564958522045896446998372843902185879057573086502221673294390698592878112309248274425673453120732807624469905289578625719152530432685170807033412394895377824245445018738191965487886070748613039647998420690963028723017967762519858190957164067150071046234692708889225799987609504538508439258986938208298288149023651951550116731795176345325713148264034592724392862206784418201195128350816593813469985454080844758608365774136481041230923951613717501159750156454457290753974717122855409199115093121908540241658096181047298295658423041581110003813517744942950124045665723093774407970182150545808658007658591292409261880541250258656643930015791334506668255835461955531341348780339867557400709831294647791945636319162613814133338122592340378110498205991444072941718486264117584477433429877581527607385573564859108368957598425843995901610880322837973014136306775227250280965152115132930081171784637516073039705065904400541537608526804298360833873758381927688792250176417459621854515960336187721213852735824554802602647336223035116271760048609067517773129192775914765385056534916700989606677443055006702489449884120507717062552172222425598652617781109632862608704456436808242649636229910157481470594379844288261033039459308283184195795074451076404990151384074551939838422642826340106321651997722409645330366875825191363692849739062349603159702121024134352749397001430874070590109034929072030111467318729250229552885762531916605977572847971878751590683855143475771605079404090157588431347452008548921960183237837058792933746337635992424630697669281862891872284647486062356396829977690834374639652793917262209004619328415790706138800938383426975270089306683119520048114370044750853988169616645148655789091801078062805057626753998785470924276118380901742062758290797179694029188988916824887698778533689331071453812300706432069663617818497450596647981766403461656388901154515760035802044019962839617380496611014861372084012646612818435654641577124248174724130735480288757981590250028601400455942927019170090320492597975685422952493073842768452811120674321397912182625508387345170837295274950765613918533403270703052044301658259311339015089064756769077994168151853275033380003573402223498679815386145579675638282128509353588254018541895114292195363368908897597236923429053094300972541675641129941873588427435154589164593093839895606300909063639429846741119899278528739345193501333177020750441883717772289366444061990202915902911469355294628704310019326337351365845582201496920967397999475029865856087597922401167879271933625068694498181187180323665105498244495215130719875503906114614243199405701516415256462737188388712315851252976505771966994519539764913228289250693293822946898086914966019692984882147822601747933071056529902192197099254112270249874757941994082749999015479400998649199498831664436037946428023987217676829263002790962553519516495278695072441285953026799198729004275891749032316827189753015327071030878761691429208633396238879120737459960924384590383056776920295231910697470901954192916006632862862590426019484337453878928576631335171756397894047102206570396389381853055218625101294385818719299114221177735494554238085449611461673033422400040439037873158617984652291434198111342160010494979016188869697754829642738150752675924937433835599171166241215257530015255822003187617685107186525238995065834423351981729568994260333803925542600108173481796777587308294735437468028097017018962248092710649458411876386545679066902778952276947055469371710204159237977580899087083277064782698265761508825958023183575614890733549425308769140781814958247720914003377446006832028443650062968537600498117661971327507102220478336190434871696019413472286792855165030327805795627709720987001081340420758309573055878508931232825658189311296185143311174807567789470377791333537513954877368908249405816574125032944400181953382735761152921649129293313053963729883440776693128064925671280532218276047592882063395336668413355497183089385441029159972628971240474218187648284117107229878780063811374841201422516853842087170748124770358951989949083149875370286962730467948562285104215779395434011865793834881146532951691794913836211552544770867304315047415770943102545311250712152587629383478115812272153146505965477392065822385966384765219245889652145200974310673152596838721929699288825585935678974067155127243360059212698027971988905308787088716404228129546268466554186497011133670266622275295876268188004101926259151409183926853524945582535916350027124681087312990865479323687352214097348400619223109016444461392154227201480581386861689635706927393998537771465618908100001196561099426631363068721501111197841011541241200593298277533440209214928258151802822961736398528852618042950181355522322206700662806718304108625330691773382261725587771121090805064658804312880500683757205264806600547454606831479048456549582442474087860792348116869793733894210458707061518464152473607688764384892188108029598115150369129018293925129108143704957435874112874260004735875770801786966041363074449783560764010168309384883970697972297942950049210866972748999581397920860929181888057571849512059714011756424462484086451722756867397471047003511750709803097028363813415215696296550946269393985952757393615595185317436732070131173650166877014594641720447496525223034744916731737700374884470502124899434746945032430324418754458338870988228931904777457779360064795818553128846048282721383453471488157312863588700778880080529009482691123049774392178782179619526182412734708721461705671452615359163871805411044988518519724736440968000048076054710103803856108863406825135306638047477478914387475036552752181725463920972963146590394099914703242110319681789948201486104850686451526247541860424450047973255182797091481117794303818165756841557250783966085019132425064860079998728808920652632752754843870607589937139900910395675640770334666975463532023166765856078239986956614975989561961156157161833901363101651382651886872817909148518737255146133411723004728493492550408952178622472480736025917798222461013965826907955464875192077095350917565029314042253424119179989786903409639131432116423093156268767291030960151563170343044229070249076197560295521066355564583336871821685434760351910627378082011480773842765685262739758079007415611874015932844360597510088683333606600730781615509764777446369883717449991423559298245295382843772048440621392139274297565574555074712328201510639131867471363620929746624546411175298651411096101288998808612999037158258575746205780126115019929005487850219295154727304746286459798129617809798078662825644764807619313639319371136542768483588348812497609952776579613991799996133841329399406839632305120441526226002276744580781225484371656807109296520457726875794076249366243549183124192718229162429983535741504085432501841545810949503459694806976024153082065624719229701347115065729895143500392788620080422718986487257141321006645910698304317534018939181414242469161849039204103840702242145268790526050910595794770307174594491754794718609321118569112245805677790952872481920158401808608767247078673853062389157500223218868792681708118526169549408592220274978742439670364999835602208551685024785631479454152956506865553513499752181537283150108577216134220616097777445139286780952689702884297470188292473234623031915469008705265829534848252061883086942005040183314814261782222669092983705941636338417343077982350374681625222270059006774503353594362660234373943127240327755494539880696715352186004726038867941933578880378470536285494140483860202216633182158032909491782083329380179055655771823141213244094973157976158373597309907982000365359435620148734046470126282873364497105707921098630682871321650439777418364636077670280458665601320861791344128293826331853175567362598314711868509882201843702221153966053497994069894816651434856410444793279043862680926088430525871507255665909866689673161327575375324196263682188200913271953427757626167922287851019961084770476845353723133770896897584500811449750354675139418703345211350261658835201152391209879995063699418785850077635614587361566567231176763036771243547240587145426654177135266644598642923507383525026200211332151524990907647206849763112701808971280050600917911826730874185082882852808917379732052483061279094217260361111893832050980710076585326683965553037506892364838499629439115949558068948990643476085679084310579659158057911504663585025428493931550350865008528470491222695381870909852974311993328729856445208548371651507864417474885650849341448554312838849127548736538641474677265932905790835324130753351811429244888135271956307696599292514067523477165912164883765758866218930406240104153924527318654296938565726941782349647433175456708150757744251670309727998731097621562041804695481222551500450713507086456346903474260804994302160203799432925068216587396481958158506344697411563948496196472797012936845575649447366377788306105911716781377320797824821426871953457057615377780390801036058782104329196013355614091151039249877341726767864501370440477745782515052333057016092815262601804032932790112163738217750239771636496745981686246875789619763780062541342555530295306518256469608407590298153786944714599213293388469048847499934525624580560004132804388913529259345063987596984604755417209145444220564075246948957234851590344977913652296773365032002534306416920102803689641770060245678231073840151115719542222015283466441851338592980167038448478151529221037315762586699010655244472493699593908103736600502851774197019632269402061005083567999214249848656190231889585780728455991899233768626974452445809541316117269988897674987032712323775443145811996369736255045015771140174584273798830284612922034968400138312124149845256865557055730898524242679785813849785911817911802958671000371308150593857511822123162259406911041762524629214755169104265815466236520851994100327188614263650497928066440402634026174083812501838564856959799600765908460298097059041673423838092701104502099508492018520940212547367978797327521896820664925379240538705028817070439391833944807738038751302172016826525496122296148639067177047942560783824993239677756610421190033667566832529533010174983249824552388910585494447089438443952020848566776304145233777271489181701565407441669753021308469042738810446447997933714122352756048262992613753492728372420495635836596827416553504996547337704504734455724840527997762220078240453051401108380515480945350431537060737195828981406090447849028807894190872676153220072821981275174237481346629086866673017499074093749804718845955710122446643229759634501475498838570650625834718762356603466133848760530214103881056704702728626085303809001955676533664732066678791510004889359751343357621874714658181486487280093040953092558381287994882343368968649642402128541410444323143620034912388963054793463401392823076540234909666607190941537321173623669634001705007429492888534322531721298076830698663011624780658692530037996382010897059741400395687833946391814948298046452690075551233850799198539683467527676591468778272541760458862564490804023265878255052927698202780168810576495106491872304951136101365571373008608430036025155137158740777406258667691114827748970040901411535529041274888846870691109862019769018048963710997149534662028650112724300608031836531788687116848381704768834390803127209895574027833721552060949218023381738704373929680283601508081617176669894967269435502567126567452521581261325752788488784216248539970481096290707435811326619657677038157926717980776150582527792942989957743840590438299596660274481706352019869030905733445225459350580198301648478239363963720070279587073269448204698384365510521124667854620784424947474100401594312225533041645166575972540043162964094373798292990883250788873848901237234519456313672620178319536354637253858413160450930453582062819757079696347142882299880473952919759861637920106178857792433559596148756393123479445416045744939339401224310295493133319109399075152178855003126264473339770030059538002451747078517222365334547489161785654216691619747514137277812258510246236010180169555834906573203179933194448705048491514193275210758108596543264651451702213745325031579257814760940757281171992826917250452191943500357483573339168412285592762893301825750909827408699161572145578350654859693372819295622472144020089707593801899124186657904838455188459607066439385364493034027976666342286397392134537651091047868604368995544071214148616123842459409771211268623998711482227093023825546068614459933584176559177989896889454567008030861602625399739508756417808718590082631798012768496058893522482679930183206854639915153203095996743130551923982302086400249158007803574695369861109306239716056019193264432116614193099765190995903339668799854820238179153171287069097816376463973642038633323426789652072517215625363182477579517168947874376850345666894940937654268028185772853758548148138883261325111293431911434353110205006462592798974957739223114407297283925229961210902108519664658842800123423120760276892114983741946537049060872560236237256721316596444392918915881710576514648417929545049941013008272837685068629348651917596872784912615957042822456170498444588521878889384111943111820655574838522830507793728587058610682468104980843015782292172691632078029275170833172242715098664609985693593412142063467995341272967737028881097024310998783602220147582781414628367810728526024516439041415168608865183973192497993751480945120686964937619320480106603128197923481073118594784121388731573353783565109297098866362509143925317244681175355301353074510612808933780202652200937382858966372937224413605312043936740558049431960421263001206288829301119698349706773592937342451607200238313360202775950057854566205004347267551919524426580113724311153802962068895204155517347026971858993110606345009018340024960307736719600352410231359987201905668539830566960927420335032972142414247340851802532249527754212219786952049520409688677939016921113748450921936048177381611273510396729686119422640488017256223364459772542489634114307857796899904512938718222587900073781916411400354930188090170193920683226566313075871394289020379453328108660276647511972276447356194024315393158037045469959421035910662071150327613296249716537252201952600653036762440258670805025171837344616841332712953216156083202059029995712745804873816782826848779007564250646350306035250464590965676563177929355956431054911884723381739516632528283457769895322356392308435496946934146763172782948387403438774666938471570994983206541335102871332606995132343049509120487461506793094537718730191885220645083527916980828447322282024282378914376676100858844700109737798703863174563868828970083237873722029924385203890254277981528545166677587685269747495320046513477821917258469185050230947830174335040521099565869690539869576271504272873211250414515877431350753827235132645237818513436937035706637364759202546196012871096478058495418388928678032937482826676021987460090963602389488012539320974803587069147819654489724832355391003423799759720421457872991505680307265197367372886007989507464567657523441720991287674786300797937671660272071204002905494081228443053999760077970171831444731116751228568310237568308489282257440648780582982970549582744889634495730881230910757569564608634229628218528229386513855563457810123808758574430076756690602437698828205883751402024016450432292714851708814106017798180164997287231215999264549535144040621416385548887976177892663550089739767266071570345427228465395634619947446518234962385279321645719918388040805469793775813202297298636294456380795630582645184933437685781891791018343431617105044658492910616332854090346312904890030702243975789420148016780088484802503901898295123968101842698201004709850460569914670357937844777184772931463818827615427926730295521459200718914342534185170848672547030662488658953650517910947840675442021560481268891639745593324850829637312339970481228378376044519481139657631852185919304270363883244167669782664247248694872531296401803232327444842121386399408759980548969446091762866638008116329406323782527394072625802627373594108016409122477816231091586109007993973294445341252100929644608328137601262692780289466078101890786448451193457528266385009149930346437260455595344837381995210763752984828880201852351427013616468785817203119124715704006475857806777686301610949588305546017663227291601348405625581761466695699906801421612017336272956983755661951007058054387590063005339096717054887107455439500064107343992086451112341628558551465183293093795968814377981413744384279123139804147265386822248121034309474062066088735815128095287461866421233926854714296609073044226633204418545763757581610756256017541355362476930111119692133155673580276736931919556793666846540055234558227301636538836054088038829939562367880472864950057100958066464937792002553034585553641332169306707731680049002199002561089054123973203393376151803235886054978253800349939821415971518936658506522368114417507337013335784402948252097064359501024133380679467429174640990646785049737864006303949215276026492663021275978875327977591869835921102530004503677482259870006442864349375727233670764256915837120199743837152495597535814675079265072680079812539127938551140556389198750814399808965034026776996035739046857436036010476693621118195265828714713732393742784041863905302150394810596441699649134964777091498062546654330647128055688245178463634489222319677917834714033413536919925007813111305308570265021115359129360620697971434168050097546158485943735710257287852644421637555939800457297797828026445317314197265683135865124011247223747948212312246984067562440149931083964252859266799137453635061496620293416957969476362500365246982728318430974049998221519353027965833266910060070981494825218760388172583985309084222417095839713130790178906947605711476267088884322203565119338024405457593004828798167892204365708742439972767724409453287277266187298823513111531171938206078846898200977644307928951112043394223472438333910533786774624049875886896380266708115421966597898269377409069630153995736629407116118543362717380633485501136406108203405782345274289456323191641264966624490711753085533230568252830743538131132855937993380312965001484782900089604118543431120754591261515055403380338214927555096736154025727241722707914744043855069482810088182118249047802410241901950940142579222112999409606081453510596043716847090279551115898215606782503630259086157277287496439553451616395285604472690482069289987133932624143624640279612591039932760086399748334554365638237705995257383326169663718552230313440571906591404334165485423219902752566566612021255426022867612830819383003456482079220732503488156524474225461798886720525132173192893097456331068689325978737573904741491032203260723350696540096904843816185181025320329155289095297744501935483558909543744320257614561415412424240118558526721987486909988931061674251564039301590872892373698288648721632753291829834825815774562751991569992101094982989558873265073372407299513219645672083105328750640222112306507370284607169265201171164592349600910882393849333222190740300511165706218292895672303581985047319753321580882119936609640999124707630408398816477355133132533452982174336342657973444971439293783476799033943911496972931948181853649735567900519711513608100935217649897340108441364888421390170221694714677340658681247711972088573666950562080822501028921540609638249232436365689110667316617945290763868166565422762643653061570834899229366999345773867648205961355246292836555283388224830826014048670333429929653183290546240547505251358463616088922482479505163902352023913766205560997405746234606745536858589796564561706501975225111171905841630759119759577115201885412361958189807943930208284579883570839511155217479952078654338023880021597081916892021722206008618477288185676301442277627772917839365934184283941855639350468421006623722401719170527818278568600382395485614792130236828135338204719817289584944020702980575618901020274713272024121916374365041567894379112812306316376013975881091674203539323338883055733276857707287661504892738691591460604061924706146808885289546371591084439589437551782733906479335114531014552005586802742407873749350111186317643414488936711252598618873231854184037502992577409329172547091230555061881560671480345387528031803702221131116496258419327638082901554533241491905861262148697050159994698734302461541265722258307425450691226245086955900859753482408198948246983391995780891748433011671248462153722018038830027080196648790236373135550486220452995917305920989559895759173810284108731827014431049263226962582829569138794977862982030516468805733479350287295698544806666687589747017596628993455142468389950998935618325653226411350572948430300243531850852930304142783819183654726227339668543955015629987558844523937382988575060848635322792459238660650626133760228516594324633303913397009637575897616059053078861099976165249161501483097397765646235455944747230356337378629085726171735167276979913796930989012837662861146237485849072053413076094850432023927734515504160153180564930045007341373399589251471544316587013207010055316121061299933800157884021995048758050343640927703567359342704479483521510313371028038378713619592045327738199282942102419721714507525018151693704889150203606615132351477846660275685570413989980927573841193805979645437772257043583753811480271633552792332467073201714937358770976488232164973627160097059265960217413866349928014445389994230267182458778992126746330778161557828389857041879630365190486858339397747629989033422830477383872749484657506710971637663588387346480915039214767628245947472658939453110091668533248398073552825602494464223502084772594402652655542943813934408279307446948380135825087265397976436458394686530953008910113862854622297483647227424251456172865889816469205970720214799374885313445630368529103341307321868925387127594367101042741163801550800347822738585951939024756865892945124329994225841915143824811376942110540103430360338912174393676390460396886771698759583648892638249044657295304940501036068155982777074309242802870068115676325006577691928342759228471923306702875278166317787932437543398958031376306772321917381700636222251083882110794008589864518944850179614235076172120106846322667280820273067582614478202772142647203170324520457388179813529292307643830217557725794262171095230499509182069943183131690298049699447456437713241027674037997262692983330632965864881337405544060224986577257741064125887876509311245801516284596866098746557595132912106592674226770337934960950942543467106572373065433145552104137825228641351584410317314948502767019518505537291661411594761538219520677976155035416848823870103729035397932756283476261968143918015465246540504612481876630304920739409193479846213837973571492798329033110634490075495650870017985608423408309948979758448065971642698676323092403924629704686582928897542752349360098540577164148311334508499843368488865570621354839098050038537740601063025914197044168292989669712866883803525029647799371239509495240019389355979182397720732167357800609046675546934009903898157426083879060039421201307374220275924479702550084345031819291286816003281860502494909466696700783585519717687888536126409100947148124766101591776170859599613221240609606734600010520174635434040032409164271587549815645551575335407714386916839308886912718688158551306354029415128216081094652054446378702911253751635327232997925774414149675297008381159907705182021455395962428541861087053839638803102817184991156116275174336581381417384855661036526721810887279105258559680981372064905341774835967348389318263220601102568227086549228518141968781441993374068997703366028464525304410998677839250640226761591783011444156834743449649764972360729462431204663419185998393878998725818698625574907404360435652278078701433331497853712152741641662440711738561707623785908756996994269742108190859131250983968812354620505771127352195397898087779441534528180888702551975375621145873476178916518109215744637130971150174075378611794833176904893347172377668505374668235269437922309961981548644639537659136953768082544940641322126819213394536509569417626468919304064320190273692612241472750295693939449962435584507797372781677366624205167147983932950781732312643423603417036652191510454449501432305182185747933457571446852064384918803283024017630398544390739132751662554453602447210384261572558974951398239085555491129008311295272575865410557234936560413298282354518016695080272280654859289030712255869629308462911184309306883143525599827004098628646270741371007957561618080455525631141434290175780932829436425253192783340060700900473256761422942244121491758728526594728156610080069565062335505672971732776138605194053787889731333376354888787536019220797692434918418760788329041938393466098387801840492197410725000437083050397649606179554260439106581224517807719694042403677367774556080392222577620947777638431063267378457236741873955549392885112186274194376831301458955415846030351359625011524540315025418894035620191987785020246070579225406040164065211607087481684007754288679880270055581027542015162189930385510684120587483901281470654788804664705338655013979254531813186280401298495968281190404061178089679166895811522451821275593285932224100927761161576964700927578289607038259135932111311237494592068354429720133990612322712452638981219923778841275661161340527452502975610930246622375071332758581176480825997565558030291308610442670684963268999109061720741819374568590854768513527755379321435824111778071785162812802544260099780298054479297024397357444347907019310857942241836962796837875649786616077498370743805133628102982869903819729467831552258343850967468730795518470672497682743728726308914796859362701483574030344988266955876036211591771983130114109381432773785511731161914908775430697155391169373676557983456532319711351385211492668717801620701982666362803542853253075956801763628868899013725526254953833458902357126647485738016175370939969795000818197613759420111436795521031327112949177906201314040850025609465336540301801240758146933702186544701327543832638387943163182085790575344951357596935619189604176125996664584293564973603281281627069525517129695856997386695678397693178813063149200676498070394347022138461841111024053493546681798000185238216846871709178940804511807776700751509867997466046316525341996263543160929829174803805380591130469588347574342905037174023460842825820991632426400271608912841708728615839999296920511178464706992366211214588771152058320905049370364594897886706611707942526865348998989637890576319636704471089805300018207348037916853594383290185288741908631535424211102699310038740923515685933241092793388034716511537395723112169444221523467265363606630608639547189059914060178351176099536798477496372025891226412948597115706081024656517753161518842074013782471735087793854469540854347247465587324626685464859286632420975288195734430769872097195358857261836065432333444330452742806645996238352817686696933772894803336333814652257690072105668809481081093162549024413059894543814007903381898480149454252704350390228057861947224684538208719149336574073990046130727479983482247436337838090325475354248927331172996319806226280201389610314661024690396193033600134406271095805746593640239647789132808780753674227381151563644627735878569954615290968078838604544057198095625152215002875158899826707584983597439266386228197781494091367456978498848699050015287039391400448905395519454951393908570353868182177136350622314337971315333053856206315099821212592655713449648346988119579277257260783419017805330642976351897244226826055637913273178752464743612892943990327968204319060995308057390955524026958512392058774437900560442513589215789466325394680065387016859230874820087029490516135702012566062293939068523862119596470245403660791496776148275495934861154211120516566849799873019742394390446339217827261828442284369620767894232269178539610533875202808799605877506390881259885044576367956689740633723424662210139933248373051711836607921490768371913743926633684551914133053758836807815203966921833768446561736460999830898678111559162857777461758738625365140490833059031395083551572869664758639923685894385846364930740810340487744921405625228741973830553963486815365957435953910912767505569078170896080956250532162306701260336504939404788877722324046383933950635313835048949628619115206022849467031807572020339182313929054327512964498366164378737509137713747879252013657182742058202203966534813782833264065573806412930800890714157087346929117629046287681004007784765543535628570400449291469371425679577555566796772519563853678287679806810417082238398758697963446780180922781438153891795705554064126489781603322499364740203073923151865415917618328035047398661062573493365727666500706826299053236358648707215407467361719014940285093384266043618926296993708385903602807051427679573069160035837361488828700237107127535348990886920146817814201612919317342966809028646492834333570120595880200413069113456189445723729761198581741367688162597668744390821410711102473344653277283992772136657301459683014997432660303507638795062496795508752821916275806419446970207201775321281561915745234137767083207345217997751605108447812381261872179670975804130032273770802496442409246972079308851345786645714949705702690501627284564432327339680970988353806384157596810907388799368324834352055281239571639594479321075361336355134270125471564016356276929025840250026822339716560277802416652110686931907348983960195755287888859435021023903049172425201642977571279170480088279432848045913269823834937189019715471759537597440320555484864550492893513208549635942589682734631070461959129051542509436441563870283233248844496685972274969870230703601462755447581979125278232796639309311944129494127745309214524415246599204245397455195755482947706089288914628862855032358318846392539623164129570903449575447102469662382270245975913774355101830588135240307222554188071199049782010720435351800205422313931832258807869651445319278766106354196860499320521227953499523668817211882156625452926326050690743733110059620432850272237463615187367647972332973280156600748573202087655695636471860518351189144544383831277882681578774508213454150520688820580828201384052925614708835651212298719834708179894567524176830367720350212969358634335657497788609025833989098222228238023532313200107741563323228887665728843425417307005644910858124365124060900612598955588084811353697903296235983519619173073144059028763421501813743660934497112891897782394536692961513375107302824913454684853032997988774330288812935046421417378272390729884679278574772740959303939307449204933057285659413398173229726702457206879705768484863895425683103417952608429111742885561463733473385201121691074423802127164508159086162037074009809157308290382827107627665042639746640814426543438844172462064001166462894638722300180115071089798205758168011451631921286068419760015712304117598682551233736232275162897074384982369548764685280605241756790837921916201047687979451215753636487717022598762393199771562671851391167912657564275487450825165510026497744639950636137827407187969587403754434701546628788987668271134201569220369417223813729456036948775352917632611903611075706073559692043644452904695738467323331103551084464243951038295772641954317443707262609029959426226233744422852486072113961186167129653001359308516702331944264991241768791285140095340040078945709812657892133408743592788455358480834887926948697516257462491617072601597221653723261553184358822294204428972580850032600889943947204577379483400996722217659464950101818299211391031759297452548340459313197035812191262382219573401045655132972103882390620817612977922813622908066106973227464018864985218537219472950167059193590360942319486047686412509601186358539072508195811196948904337895508833836431981755660346906682771715170648003576002659880062855498320332053873656879209934618002134321129658250762380991987467503474072049098255595415819468289801115253150331563806108150995321959083016877703629967223129455547611884422082090660190073722323705307310616113172287622803695873318485222273494529128625803421628486192276933763523389201772839467931094136063146813329422344350151747149067901402961674571791370764351888412099783072300693939953935017009416035255574439006819764655656717223845254678589519238963630439709213723551042916974532721397613104635784681587546554849664964493868711369235135966103963398095773788810918772554810527625365284415336903827074368663151582593312490064346806106875890007711726263168800523411043461625839455713139683877525070645034702092393138659103523267825086972137495182042434679080931371083423496894859851754463780308085079712568352746296130126650094831358497153957019826239125415392736051048248632264148175836361421420671888214273734027432282712934574969592143171640849120740151695755166711416188262278752795556045900191045121658831252995801514223463520622683600219989205783397548324235765502883657146127736809259816952800004320578996901125422987595037891307132133002033610559764280568307967995950333530356619536845973569260356699672117801118012449673953193048463734310259261495807244803479615122719320993011391052952092090679458290734039102788149345204691248949523400316495221396706821621846661247423849515776717659292674505395784256734146565869007960359656118828448244310426300935709829170474745222390871187794976619461626990045775268002267715283451497714782028054069271723494859618918894783842636707602532778633971597690432308774958370771860864253671920202803331862760466687393862920360980692467650449262752345525019155944625532728763636572521143135684889609297754244608849029063466631552821536825430085989720497099115502534078307756129227814298532585888543723224642277866949125644414407863782268385970356105648271622297250091872072386381509183282084801315987429227660054412584425912745896443701964688419994143080716759639761095482420518823970682831931536585840634140630012642449045213152651073290789303529769899006728014445988112744148567965056252901300782647807051349420154886312823413668159964100034381448517729076606115621893640989207407278644586253358267963537417924267403651815383172264501559475378741855051645439437568723768938129681090917564251497482615849644773672470886541545150221327943880659666554966677208503226242976106407612428706640855711536057111253287968699988292591706742802346208150672397087255398286207069449618389354106132240666631317875028597927365665619361338791931448814319897252323658488761865692673553520497482694286601297017109073096025069977158297935753789368133110975374362301367528749502325494471245808110768718097561384483317907935847438805815251178347437713520623485423380918368651854268564137900925662290050089480019112534379959844878882220458732167299519578003854639202182204311279107890207094710042436268255470678888820124946047344472353624503744765689560279288919582345458764897486504171626370633434574748113845488711379204745683641147328726149146720932587529546514861664106916336128115930611352116694219661687345743359430365194481313987751575293702158882234333678681758385343845322467199650197783747152558230125042252298234509119809560365498497709669287832736071216510583586213719197355950275247789646425142024394150846636610042089733817711823414832983062673712107233403940672598728566493550016126076426475684412857753207924376951235259787443265877572038339574909732681372804067813428670359008702004661561740645125695072655522467951235737203671047061061475933606597400938685733667324741843387176216664181143174876936363887231604227761549719320816347370273483075650228272193046316813774171911347360579567483053929756421995115473401512432180340358764548712349323853658979002180470085905149129431377877207370850869661151423432224698708241653631663469026165615263826727238540524023637467027898856494577867426016844930687213757016529351543711512370573389517744719750774982399072536856318563330155931616642444170730903938766499448626352138523309309317718793850676336606656977126075183507145346451714742166623827086613844459718181394398923642997347814011741304133979181561666675409886859062719174382998580079965462036714651111627868367423745215194343349056183849644392433150494399267895373064389689666410790513022271704220708719235737180900547328793346689140361475558248308767875902150252284263888158849005215162532360879318536371056372630194557049578756127097647124847708749027155048597120179766348693418743771752794781574374504625337135805204436593712966672807810491197074611177814452298964835513951428775855353348165307466147213632128358724106436713611844562164410490010753134552610018499322071329361381867450539526830155971874517723891396137082773619657828146565669253743958308048610964018550166976894254011315700214106583067355288875323661212509168543354980298195328656018740259062528040543698136554873347164806507664561807409598681565240116526055648603229853591658066540073180698619540472399869897442391505948194754964240420467206658176772854045027430241651883277161635608774172988032385253298352103312517200176923848220345208410968204325774872212025342047777949033559125274129979527588827310461310944397716171159818202098572819970061519037001333077944422917958324245088561412802999259059520971565951700051768108833424160973588308063036027659316307268885897327646533126887352918015023637146757640498971415795907880990984785785618567789484078458005996399880852640968500643098420244212768099610423311536918118571717728008880097109598883774290901319878935439329127918359761085755221548402499641854095959396896507377468351612551017040416754368467545493184544696579898912438388759094902397439644077517083988316262300114892585588071084708360998381685513360013419531579275877426227528046389860520463226324112702105424790609190616050447676491117370498867935041451960468244198441898240035000507257528021615996027669033950097255097188627820409490535640749862051994454780144252433474521135153668161782739573456946705011312013101091116709857978696240797301527084653774658174308459944694051184133047460776394000927669969750538736114985053948001608740116461575492995158439317807325660552510005408311934340642246350989441312585738242692936435124892988956631205327245987904644477497022297403676134379775818334776875510900490405274365250146910637454737134425073489671781526257320455176058684294315970440238643827878455032255606910735855156018354424883965311286714852528203232178632478038744705614118982402437871795647673973395081907243813639630834574250233732939163559233471008214512472884422244666214120458681006840039366863448234801904298361303608905202698419304738995831212232650337537287314308787272357230158758206943106215809533873786873297745045906227569455783228114995613942779438125756528911388541434052599432149255594549545298799347675027817240214817016651774086650683281190712386274189743431612326074355162086357893820303445383355952566537386233066444913848193739217978065756334201554894974766100287723908092290360909170817067738477974807872608908772098695919283212387712529692742119318157029529866691394454280705122923120161572087776414400405241155049311741052087304342082026528933875557094602242037232458633253017660735704623179784872056348739525447671066237300375486231026840875091281205920883821662695401100198359662844822717627406666782684030719459471353052595866238065227432110032714312317577956827340457730389100210945795121617137739212224874130658879199105953061144986811317984815554236700966087413103784856722219591684607252310262854545164989001269695376131502722608545270124361266252750317941518624271197258426421826348999967088301603898014281013903653599993850417794796222616395140642054202790627110523831941737151088752966517469089695377486915227284781582186312074721992821159174862367821764868979765963979036073092566577176164476981246647138836746346880451753037407394462712950999623677255465972309501086543996289252153541342398537780317503357395836417122371410493477300972180353348788891854263755567165712598410080369570926696381861912312071118484232155456121383234862246497096535879732192100358518568189281554140671433428997223722380301766306360724791056299020712886977907465444975545601735065243338108541332924119857193148148475362236208815429925685681882900380057436887254126253759152430635826358253349974568961672909082635873318444764938145362385019588228554265179062705096301953100465497003339672149290600760159531323293455647864416954060961444697708710005557374770833821714972554794113728564404798690792450779900494651370487880394282662657367426968218407239955390710104408457001721619899776740392459290921053361162231350050343508517146978426200355513592658271952894152824647301185201971957905314446764719497819863885619242357611190896392097845098441743613355517324745022589206498579997636174688924751807217773950849729333635598530289266432337869526245469528551538309254773657126009225969219464641567238634332406264240169281120679684294506782996214037736014321563333467935551414371988315515564202977749572373939747299722272579869106993740474526865982527814143622050133355904851285826645033292407963260247727228632192131748582499864402090905083709158478235576838636976909133197806696556551212933630432946111845613966798166699244856283311930478262961569645177660683426177132245096251307523394838185429868397861675368097585087877541236593654518695787785806624255702431644465496665187087775540102732466796829889079833565031268975683039202641964193320697788249282853082604626070736019427931854680235317872858144424730012677406369762866965291111306944474872188579446349382282760184286665483028512181868028565968221080885939074244823676857396987151995936056810516593495487017930953809250318892432633651233816594720721385535531804972471698283947951027884343460306693290330971682163958089082530706740908226164267765837747810809878885257270664918362954376816626169801642973954047703143841396139691815504379749884191720170044250850789419800527707189194595806615586476083723618412629614690820399562771107980921051422548741957446233583833471514475206004946157236618559521798117654535135049272889847402035442852036950992774912458684554088615740989207268502293752223322916531629247971599062493637825984368387648717243285210992440001681477093054560695609577878587985469613775124045382212356318879547148653746396080972344878696041560501382787117152245096392930918595022459597392634725402369507041525702301821430436683177752647678122343773349842346385796091454441544235021783086682410020568358315243654615213596676969552447494231855443331863994688090318798420324096201345389048998318640304407837086000506396780977266157770607288043647191161001055144607797661108053953844750092678500088940298644308777956033353566324381563567123523003967051312465344351963756361201096429500717921890928156206292306046308066415892207576281811490341141729402480229073141878305415920002253148954164629395183218656581476904965536283441900303304402258146320566016965580273496822879777364249508374523137554586270811930623979582090150457211793218904087639203287928270040596412589566223313749214941891830217681885984395600123615823164057144753676072134888480691317572221015422958025371335025169201906819162011135445156513814027584256595072786921120944385708407944781970730132884261101085391129271887326524881821617730222253593635525025323762728289876915352324246322766955173446689881585678943616324884176579187424250389203225409164574239519858724188806461931435353181466054989235374055922869109435695728047995804514857344052132516559650353063396728158921946458947160017954698395927797964071449263016436420567184465335543158453752485020395588209325883344763463849251286451980511829599335457699984973759507106052909400261398483864314354617874568681165074132721506139443062070210979005734399177133443844202261041588723451037905393761624084566259849615867348536118816499176332920774084474697125399853163904924185778974190295039091593408605094607797273735869195418505333119847435464652342299436515283846484339651812989534683111625491237166747301587004096540728323885012591054291094948037170067415032758119616244756476626181615305760744824635748224047229255787444295331764161109325551798344905590720523113573117172193959345093736204366903170511426093549169237811401457676903986808230390032271277177015864966390201942597701694684002332432189977049239154963000441711044655578021145132699384246957609325710594792795337106571906873450030484830072221258192269158192055662757672044802632754584329520535828706182455496007489181014052530780194817932419169264143745313927252193094227582441751045932995204281713505896791446581882872225332019256240020808626948155265479594665998904291793016973031780812299283901888150832955293927100487281116299541203897034188719849539359511997712612873961690900020824056165298116319932942862162180835737997839661558706904654386922238551080250308015578914485155575748884586774424639356766056661503756746731035523243466767715182681500172993710311349982560369899229035251317652728408746257265260662982608732746054163858053790138689374780993340509974546412471240895665446986715818297514317061166813197707378294483960781196674170236146429980553200212837826691602611957197639968437032811636884332509447755542538069875762906113743162419461465036363047327680345941036212434040697111022721537630327364095293213511642215826790200256573983909825569191731438357321784057281924082683114377348409801216271243007279963794918518020095883087669118862781327787921667844729394670092632435560307249072129603731224269935418498503470994528944422782095745641096523479424782796923450142155307495627670586338435638189939232879795387370631254381077385697321288232642501831735512371801963677994542728901131356458292530682346474336631427291193575289058258361674365651715565352452912659491901914195568202807854843988886167456581531926005412845135270737240453488292487670619827091961208032565653244329678248279864182166366955788783969946496562665005897829071734187982677272039884653731704914322156573641379815231385882121194115458776122873479078286324731355416654200825010899554746339076590717511326390755428366162139022792528415395982619072118016933021698952600723585378530015005611808265999347550089923274662832871966346902852761282987675246613354817330392892315878262506163245746843279000551348143915627015882577101214009433350710346985799903797396533671493943953036915127243784162789564346489087032003662929938690046601584478742643388380103277433290452364052957639762928744496662574018000138042156175120574801590309339237231961955156608895308226507704536161714269301314658298290463456520899391104576798138347030696912815574209784512303721985608972226113391155475809748871501443977459013344440373617362364436375217803851151072409391793044077166904466718768910980160077493004531772388329008211247871506617791435801773860681290171215659155939879024775611606798134370160739360625506555370051859849863962545201177156397165093731519536977874025350995934748197657866578454160197532148013129310313134407015733638523978027600262450884913930556118176708670346832176406400288311340609538810362614409712977040298760159230958563340187545658446511324798175169666957475015038515694578746605746255945945610638803772690465737151528455803303953400993788978402525556153295089599613531974019460411266009568427165995707963418776381587371859284499405885560119884577434269704088811464740626355249760716409685818309798470582911719704682079784080412821432162865814395152112549587407283111633842131888394940376786874800663872113479639007962133406544553592801089687300942707007596938755281841628897174118381847683727525570619508582244324568522546279642353065178180277729286412691951203412972917917380144847980348030619711669759475722679572030802683954095794919526705384386974086254748909613485923950024102604629630546660694866396480396165578637138729647020578849384678612887392022352194931302150585417087701366581211487333523896248464465471484765782782348630992489671722851680100077797070690782446431109962839083750693888355921514091977905111194277356136892270258881853744494107626701908104545583064269495141603894031561052177817900079905430830709421921425180306653101557185416933683986586075786228277257358312042308376132450399056406245029513748891031282783179765829332215494434039040530995553772942118674025603556704568800046083128677058065369915605718881857123574061537812463195229651222609196551791944578199225794605533523711726438213251530676998114101657844127362643355544599035779897949974455454392293025625882673225033542309932431518581429983568301350461615171253077236075591935129027407036502785787373432093176036807526045166996798229841218401318397807145418602944677464922172714509720681217632228581529469270466674845248928225085045507583582341515326028085735618382864726845147137308350637410582239979889109119104328609578614605456359835672088300206584997488012589329303623547027939175740319150370253088883705486472582199717400153135068436797891328367296378083586559102384740482727969006993560542303105986555375017823544631025714786578840647051274963397312499588116175610498345782558401109555919381832238498020685992870021055455978914369807229024174541791853753892527985956744060074267690261910544872503341269323826408744343413988677750397095625268207031213148016010654710242764303343535411505088171227489285112984731495227845750948337150164379409588374719823757182262072115714764088821082594825627869102563514979034806823809251535327987262482443337781414204891735305776931023568675644353163211103103684890590568308851336695404251279508705798042634125043076202261976744409464444340193475836307687575896549981307184918763600394472076600937452749874415348495508642750570385414641267072629973536805547206684690401466861751439215368357694464147069480931062055111126933691129086963432866794159115992968210955855427934648702232119792283376977007691677916388557588122985882320108161272612948761391749314102504657401711969314787056026326499104973766800655806659233437944758304614448102138335832156369661153549567920087640400781936812113128285167752608887020081188752644301934242668724866648783270550440302639467554417643071900413617293866705575370359309699702784521333185010556105255498227406691398540583677346554208305771891687254029081773092398460928339499326493491437477759378838013847797009872908195650531279996524216605824479512750189016188413428835812106480498623623202296205522542140944117181819416901696238964136721725914642479371512142342884917206109761101419991394751168611981925266029377101944571897787395306144331341907958140951813461575803841994989063615393810271049883247303682718620632970728243494770150120815473389959986046288258765120954261663836173091779171422186745212449396472628104992936959657402031800760954750958974048403291644179783384980981668703615633299297403376813436203780499416706981822817952146350481735770693001966434930899681229915760027545723599586427794263618875614766181854910196463942294878225783201988641282802624366708354896220369218819673122291570893495005127114566504912164743533565342268319201702724609789804179278762846806984013892060673750148011392062402219357091822353160329593673393755018609582466761408474537144330217953403893930715075476849855194278628864452342998322794581084909565349635702230048965973281189182551145443667547313560905908973088141605807495962891050081382307634547112555129294082507272150596510500369370585909671297037008699111332394993731469617392283183557789182173236497022852200283771508658741138498070718128168758989759391452622828424286476720571522123210441963876133850357234311506205923207733366456347591210771162623462594571680993128340524424528462848948589725543952638541701982598454162124807175068780579454256486506421568588131232431568846783335724002448927817330150638020884747690404033956165734583212127740902069743595873361422265707839532929785660440816492396342351662031893756109369260067465787419137824784970014795654387750122120410290036699570818419909001658970808329185569731011077348589435463591824564161213324211715256345458878023156934780815691519420573965315654861944144491091109119113613464290408550737609536200181605133260397354612543783320538265219392381891738913872377757758441862019555964912284303305661785677952356989164982056003872821119103073351013582896011506777945251237941897195422524659700494315460833099359672185974983889617059917360750399064922708020133743667760512948822017386743923315571942555989565701804038886344793271706590481421046034264384815719995690440023282972864937631589323010233094581851597640916661363394157028696919097226220270015559726098397564294981924870016140723814337754020416892391520444789022403831582359851640649609563259332572091457718221890885729176722310640435938290870193056713193065492398546506492046004837279480764712692442092350953839767680798104232578062993893225840791204554703494236303077466299758018509083385184776152568804843291351406610223708821329140234694041354220527603744575790438247622091800241033737447354219446374244938838485433163752384522182946925205776344536110990765452582302700284563987190759849196992526731419096751776137071573415334909764488044958943962047969275903081789824864832741008549186483904178934164515584385005169895298508998814127375332374922868141791775822581091464425401266482255092801400929055509150816417475208056302797037823477137454287188181057797904096060452960547372033237724140281128548450931521941863741315367000932103949350863632322860764722141161708921858943919172962495913971616031663018056944387015035064541375131929064498439557852540356866874468911077624511397108387492361868858317192094899225878735690671195711956027678695585316867465143147462303376341566915709953683004578688338811357381329094426362360624714136932786996563024541876318403758084548429786130588841929028031672392186156494846099360790989790214464347241346895635190460355833090491294129265247826878132717084740002348137611108265124112871604235271163331946668815587585620896062031944477472829455072387034199447012603248887428490792458151249949698475473293579966793698170254736647080573839240867012999753376265713602197538805623423146479146033921820206380778835318162731424009197899975749228458615113851925372325188657679540133995624858284949101287142968009580267506059870283132944923422227971043680438250444529080175650061278923087881721246198883309269634616361372753213536990103560832597321218474271883296079187436466418793119888298130808401212954988637919066987363864759448803781144177003508916574407159288548601535197548248292911853096130401726790996361503526435082426501020521832384296083139917975136876914122648948198073448099914495140931703687695837390901304238417931854977078887974152557105353000662878083120123185724155329281005340279648148653346840474630267919779385728949948570070545576914945628335489059422817801618291695781980883599397587790760874849028206200362101995600681442412972937732279729711443226762523901737812865626214899036421288490186838081602673709212193759573408566023253717669336482429269505363685773552848311935999330673241671398375103864386706060244560806678251746544275455280772371194472379706836541592385073356644391758945331269447711819460960141926285815023068351627104246036110799681412723990165562461503837454968034872335194879205860035647840093823279706393627061556285244634224665686377993056600812356675979296671053494170489315456604385614381939331080319976179352191543995988090863287182636267424822588628038937388691190600468393191477063185392345073774543689565678064952385516658031463242504111915552398592659949179774213615319542100323718743318983333887964319867033557863976060628521953755240305795935822256656269429176213066851945922630108465749266992569298979422992169850528881663385977224319660554164889462599953203607840573236013077724546633571299212369859721979382483694416657927594750793088948087120646389343184284899793062799837898838522319191242605311145299361408214459672171684089988308936865185341003945063463340064126184124554085836678124545734313450452231107296778297118995555914993545213216332600412644065922256787899579648564025653008087347007906502641334700066807672874361223599650587752264077265030887928857918953647150522156439202637379049723040202750756530622187936964420977264578839344439035449055535964645317327200124729805308756534774854105568035985264266926343941799286292704034457077447402622980853288867387329010644551788301662217357841503456427446443891467506302405252879210896975828486123170243837594659691509371963366440609301266572560071080734111822000233859426748821607632882134431652157439245842762590258965816424173512153101308048200010214917000640678100144870409381788579333069644721201972728513698967151384042653712793050525516423049320923244304629805931668592281462739641263833053956251896714154492935207788251433232546001840003075023598536823263077173317183421738060339010578481285370091278662619232889471990353785908737327976857697064547367792790155147048771781337562827037586938840534020908214061435366653375429746226617769562283057490021391599418024802688807018959798582340927911440988640610231385720895616943328761335420103347099752247381111073659103246694685299680681517933443058303179087937711798360172819805144829210888552779423619850779104237717123060098997457673485293952545204381221078410976761335056728073809060197712589118978201831783976450059984767432652081541806482347427353028588141458455128771657757557354507925027769640478733694129440060521621688653400580318488345822728969148625345445005095955092860019161510607841205474983636746060814251239228825296588973488834912990933784750553882648652862998806579016532838604765159627105288939347554228239713676139473481692285575847613192089270636776980525533931691166967552274335496626130345659841681781735608800069757739292863567343983876794801338282985757876604137918920456069374294999606834008652409477873327237088997263336203645959261331724626606386631973711264156631732282473504336422010189847313899675534265324488482928724808779693667107401412117260489339404076768014532869665637864168100534394035968993014460248320166965051711526097396900576560357664740241864490284065562798839055470500341271067528070811632831054335172712479522932704234999558103054679760432172596496729692438133186475160327403448469518005018366926429332298369940560522837890387811117056492554736642717030135014483157859649642278150745643310366799272217131322993730458430032503354400741832277494907132069755455106997238447336798790452205085286341936268150631641829106970713166864994445165249437594871565032200678150357936548471205384014495004668295646653273165192396646355751168249065798940141556153150178478311360240198469158490586101555129165132574423605976612625437198077967632420729981547552638136409377887406948315496259682615580282030606609190903604708947107356394485078357120667243897822887610718380908100774142195168958813400274005445395985991370749492160701495079203945996756576553886267357657975466722945302442923401402372391046998076801903985786439706218358110706362505539403603117792523135639339762970949621741766269281652473717794339263635495460378342430161002443091641566259898152116626987678132328624396689728712952164272754409760383633993257016637051671313672077381668334576156349264281272550973119152049180248673529303982568806524809742750872805153438401591569635205305403910507426008518609833890190658571645502414382462626272254062674249078780380990704039743625467347705997127485781938030113525169126267416996114501190480467936375820489666400242088950706767851198725306993511822714546186890262008670372706417080261511584552748140549526591919297987754334032352019977208185386475764183423220484729697270612259537904118946612248383370811159476678374790040764576825350233422570191776073023998576937068994253162200861648921022077299575692175467919124867096403618847879036041097236111386873791481433303357974590792961499857306247510113214117157816129120152566481655887652280242640289119172956861318653625595592416398829336340500931425871688794197078109924142376791862823253618076784555807147750605227152747646641143902618799547570278460553622546287750674835845246459044381298248161082079933679862741105221005539410961170583542416558409204730848497656847455532922270866556316895533633452200896218892231456704046194780505146908487459907048485003190682726523748462708029476759904413246748298338042194973100554102095926481097353533373988237486081066689773788437164744215999584513046107494159003953288532792077501587669464684010300805325648290962605400639868772753462547988843137305278997514693442879623919516150911527658156073967635702129884929279484725059793135493877156518448019009011231634444335893332540057086252331523915516293720807664879800370079543298447023778661104395170782971809486718196554181024523352959412972895137856428670530639105504345787888711841019428912255937486537355932060480460182170728406301530401900028347143022955575309778223700068528841574371505593375948311297992697466081254420965871712685360315791185544660750444516665398486520585058384386802360742889908884135217769832493786118714899783198187820140234888475376044917226386960952906662392803440088532272895787049820547072967490341420036754578799550994396279489940058385949598385471339917452869726287499587361143782017112196427399904171496493396682028156855800624590069513295674545230182512416406512808057208463998392402572194759765547152290808765440481543080826903564801460593806687565168015703328955687390908952025738430892227836492728168786308573771276868731968263975892574456859530838759306068154309125948824989417968088243584729709857870816072559881826869309035176693578640261934178800742135812051204307167648342765670498257770771173518437370183337183796323871891603196638905488654609319909860897799700191381029020079937021449074473993744350764684705517975277022436673436565188783526850814259472459702513755721851475329238590241425188448441764128523874943284931361844208520544955403436114851803260299580272959891829351596315390833984189035580783076633239355291160304242561528728095179009441211781458272570894315415723132744870974943953373441327629961764947305283007201946800838311742850406146206695731589820770402521744368272347194310238499008146490912425063198833487938671322521122316123478652823171599856148890646940108560524989547699535289786102751805538348797984746628336271183819863053452977919814391272378802464902131664427736847438745824572421297100037841175492293468663636528567693474116155043554468811735384123762002890615751651252944268720431283221704760832712709055403352408999296305556277196081588277999096163006117041279720296906197625747250745509454702985351494547579252482571728444290871010842672669368827840471429506401053067939009653302538895872981260604906866180395321638852501716429289649511773872270714389827288844183207465673934098865018056893058181488549526352942967474097424074212426905207248877491896843289301529694031328088510799837754816857767446592563629446906566530980907015383059294959412346386889723302965445999180723459493829388121700986060057696323365296540847638971203176805699540616275440113735045582876053104252386314697592476549058715256019808569734452699424004548775014303892950501035708161347462464159645229411249236766938474981408258071807085664706603690211834027932782583462327474461090729574409264739373545001648375642508673296385534251216502265963038418634103982697633313635809536627214821991568149850346664352593836505853729980974062881177199055104271309678208675029890883791074606171714936835235852525760027538236471443258380516502849982917023117092364244721473616925507537124118296436811429751733077768050303648073803182195484000388852135567272368319426162369418427037075176803545578650378932659649167722931964281092922936626701131227182829185225955405230248013565261555287130175007921382143744466898594054145275997541423901639879067695465807686547601869982129725067427092737016488460063920710839959110943309505636869222108225657904916424061876559954925234644116562488267307481727424714208332224660065832053231686760656050689010320568435696023375952179110671845956072214353713281521464514974209585485978284796761619518038557651013881843782334152801615565895799971350121317603441400690450680087762029964419012222828243729007798984038757658414353432488153075132542969970680766063884109090665444197238886176657615707200168825836430068326874575062763329339013424204298566348539032249199294650576056586540299677907232986255587246951400686025033561267780072416473293857815303545586582298822612047221985924689490882221007264026694966031894273957066717889093196749354393425374658212634309115192908119576598736140300370430769504479010786515106940616040149521751874813438536771402641195793994412408403490682436272823726380571351460321527369273919084228899749688390207931666130189212235591076344013453576336342410021110399754803365425177770913041880018380979971662894580170845358540923184914024106543691785918108601294619828714822570223963332445349701525231797158286626699035245114634823271294813664231194874042988181812922110393846566897395229040261110448050908381876520450514373416759646819418187169510353973569647664443084498447172665090779000494122117085287704288101871172622926967908497533956964566817966101330450787209999590842946343105956996039201235566474088490895347873358767269916351509493085222177570275971724300770116994863912823016062694199664180228449827088439839103752848737908644577746400239521318109724421029698929679924602789642764719409876008013607152625636349796125107760581115731824645047171551928851479836286195908287036253543807716881316834464887048942285378258952804898301687641261573970004212558435046238443677106740320981199712394054631526803617220925817174308520374459200513589490782545991052508810084447097858038622178031409282263747672644215078553893562922280688671016502605267858010907483059201670385424919454406745799569696655940934960461046729254082062934767860491785767929495757086738110792486869685928584404120843396672273199832630523494529176504103749688637261805946733938192700843251387348546057262683225644833395211024267136137197607204360466934621476025273412102056230811076073442166472230988446348511762179577531203040290087221876264648063190637296150361585852835266440213145130271783052566360018041272381849368811029241845358109258503888174530788251642416495170883055447184579004249249430941243551765013501481371132538389548372701935908713989118789916850318378681691202095265193254306606732629465053708233130170600561288867005688299003258320505627868659958165205488821176260136340486914192689605776673952371291372219353560302659486447819220150796168384340302043203819268171214833171198143385691669365607507537319851768843109821931975644999032232147314490896196475078577784790031624613509504479356221174935587664808399411224627181578363842055808302555060571003063758147807809381777550284289924107032931535618117654908487451975007716113924858045316340662102386941659375280524934019490317641959802535803417397052755461443603520590316674414967467862365850130431023135260113010201502840571940169217570146819552072635803874980740108556653299236782799896560386168191636138213892080621593619902115889665409782585179239358292978699036525692415502569347343698670883836295772582701712286596528760756775382027347796490105942049073290198936956789523473309660436170813222159371496102807433441133930370153482014966747718892243737738341363139243710617985557173445428226653917281652156558478726448351424991020709428302310411524777550770613017124179446588867298091299605726458125743246765291657884784150292640497707484082022753894977909184905803747053528965368180554079181314990634512435138179069372883603867644106321965310874329875250887007167613815869616304940578761173700992468163993249383100258787508089115991796859742095785648591845828181152366039930774152501135476757748809065079205500687470563754430190528613784754950482500561974734553098276398388133052907004230054317513325820394832765787163924407113154067058024925997034426063054746085765352631254515171720491818424279668710791419770481790904007104160532896821071914542429447414055809508741536715370381532084832246270449690712089395838489346640210770588373351042779657377624621940810577978549063556300565841707789091651930117209327670359307277856979153520405273149565650645161942636857074558088648428344527130531384067660265572462818331391409994783187509536383542001964287089246836006511678593276702243409901396515332757793995025291744342659733527881199212684801383316039195258606336381496641819587965465622976770402838946690442685178891268817600716230609379870397534759072781069334088550256640514370797859351299560870538654942067101617635292909878733521711810529291547148908098899095858165315885333907722881708614777557477991227849361530409039072157779390319336291184290539956722092583547540100171152101280716787031182734050202195461806310727198424713984820687226134303206561680202064502786536544834727442860534072006719770411881036703726280660100391671893757867337420500176605997094205154773546972892003273587194211575084764716470586588565002331387788339980840088676463379366950122594987204908140136758289839501302046721318352621567892091960013584264627583779146078678607036654977534250419718374901156458875047293416249986384312920339866911774606804704936194372611511238242220271844836551384764510532858673058193258493185311496337235309109445395231496971481422328467934047013821017270118315689238055599283749480686922038820461954901678430195226045156747108681975145566511010246125840089515597053224739432799760139539496527167016370353554354828456058652095392545949902688786584258172144064503842608777511847726590551176771888455633319194789271571281661279265762469078684875148653300659262105648964839166965879087487367496953264089079186990889247131493381847376752389430315142357301187244490503005475009810846596882788362151202912915387868061970111948970730430631394379858394265496421488098388717957671390721094823543100801496424183785693860186863339621958310166350222586943805216635981374616970326719243938015051729257719492382299108760030338996541829340368184184233687329149004638009241163336268368635800803441387158301044442436373047930562415754332954498315924212687538306016316135242354722027769791803312081151104365768061015101513185331137217979015584027065376377883251147970035394019272684537161563073795518235346445251122618441376428507096368225858682223004271797127894246137717074722387033083092217157445068128532293408737000726596672793960750129839293619343947735537068044018158608020246020743704892314013460885849803871063002058706163747554823798711214631691550322244960211306957702724841030984858160029797759453032016422043641075998175113303820312977011895027498368339311933129980589155198982891554917031196485617063059274320244674949460952237852218434371474102468504581445244355640789862679030282608339102683577360511844565907671481111278480889571752596711220299532593931261756154993803397876932068379442525616103624555159459725242960356059759929033917609830547302053812958296958663085989487127635072100786335243528304983754876965222242137239789781500611027770830936569923290344595249456022335483140150289587892785712294531038822311922852432995064695426875544284738440854369880343509302523634549078698720156287354243764645621639065843578958437636588345712047201726447368791777914449828628319065349342815416294232217370327303618588489381027941985099171405044277837384005588656298929531954870337713663802691496183510230897018207048676177081647225128507879615172663118755946069270276667794680686904524128689137883553345964637003080638856192209748358121663524748528067444003400569994194413672262953405664422323360108400882009252061548923895015816907355475477384951847332459296316718580612978206604944524726529793806135142760911010601652482303868785298078207667130290831359730866233422733336866023946404294177370922265557107604451315043891705807414893838453234655935513358764787231447215075616034213772665745195372958704874023049298693667589527459748657981017417249401731849192634409641519570004754758228791055023938032727831258952266198944022076979695079125498471159809443135209033369731844697151540777637761229446895941038431890097560192483430914162325516693577355186386499756233226338171787350019790911589827367356633493497787370073860123544509358204797106655717746682004975052772505403400516318922460972872481600881291108791633515514238353675349156007985331608954091229045251251120453777601713524319312104924310445849910963657781483188496216874279674037980363948090955540484657148116762679663174107118533295283591777637976441879372073628478627195682294077712473072661586993331659859039988757529811755366925114496385305171668705281047545129607348841672013354129237877498458440753476565810613284033023698424304446084991604675355560895893646457476780125513544988052764286871543042062559228165710687694024311922872080014857478212033363321762368345889142307320972355526512464785936700734451917754380151900899895851996031756434836278949312557898174567665682084133998516676866214131689650591696425025790237511387175060930621864776840124754617259904788858985000001652193638873318127631713138623805878850561571546609409430934050781414867794738359268579396701689565884672949824246796438294125732654152755899948127696957973329872494675000045051826640806120277021063797819644201064446613221339049246366085562120617492475640701504277261325622868727582128940038026601049041238158933985160257247527456910281464611698761615713831075408679843133301849064079013897265039969541120560028381006450405232227057976284530561317487506761670487279085791166628036964353071920369352517573984117995139164480137810260669447194795553463718156213706599141526347784353924890080597693224004962550646526684014669647668177483692075190256671283873979593000365406527576593598075640919732536112173070921780464063858040902938021422228564195637121669700643544963117885752841691326471728830911534719305310416492227346318635680307422016757270235938637395265944519819259417449004668788962073423703279716597252037340063983315237646614353392840775632371325398878905186123739728120850913392394817852142170148987269035903819412973028825472903929583052503543647278505148424543442802812530572732479602900266710959064447936819379727082070274951534344860243668240637910696179984499662680731982486209551021737639101207227374895641550483392385844633878968309901032400645774205764110339828147981475924415992384362815778961598472622594385030047744452155692607360351490273559361769825790223548364721965989456674318246744782091039001659916941065792291755131853809210295186674174115535620500615671991504383373139931805145018693728444777600601193621114625905368164757203247593826877972692581921037130684833443251148620277587133537208456682762583230581106326195815296071213099758172237668698394195896133975660568702028727955619753941218604406468616181290276782919433494941449290259374861580304055112222853330815420260458996570266724773300153209132285379074237435153955954432306447600387364264270634611341796972018927483803616921351805539729038097679399819867815609529964593479273543372090829324399091230040011477376832983705579177525349480651563367885173822458674910501240074452149384845683726654667877193334519672580525983685654348782417410425735731499090867809818014180541800822069256703170334419927693627036582721045659851008768172842863631406472469937597359333556383016375110326826538289777243044671543618980502236206989092930959559952698793003995742526649273393100925241632388021818559163393692895113491072777208768673126220942355465702894677715788103243450696596594140633055968404029000853950496592365643562544617598002718273973526261586461660595838866291756715172972608932731771773731037323023420103876103233294725313615067227229936512535647159859278101686265524842030750307287045291997221001756417517753507718357557626258939345263059466399523985507905808452711886825819893819687068920467840333537137652754690478375702532068919741001459152641402133096304439412917334918322193893514276919578580271244376707462842010978829844071342125310430813789610085187515450834374629537569065527075491492933564502141053043068541525986828610285532602831175696647362465528741866103823493738870733963405272953765231146117052242389902836900482871948993419312379693743584972764319801820972384310827877434951982638138901978088686192346042369309130927581795432461334523339548514612550171314914239846088185872802906056725671912696357058995406404110671854520446095781283845902760072643939086290362460988923055987197230625431898356604328257587151955218684771199185663208158213055318754434969802646919318523893373684781478617063628034189737829095058573279897347174626311835638205711072180324541746712244321680061893162638000808260576004471837200377964119744085241529045323786027106652456394809703728714046379188368069542062719275888635205445479539919785793913758463755479396400365122307287928859887963013594397666221211993022867477282454374818251333563696152091590696795674951846066913397765876176304124198314429522038730082607181170825841268732433067605422680799066799733484208071293438264212517910355403514085979217134287177493365801152838038463987781268408757830502918042303089390652523150589768538477938887163632232570588618162278273177133099688339027494383031701240603727787831707362784287098295939718688998593684330731894075389011660029161428468897755672426399787313207370418966102327381304276439413587131953245625568570117470156337810080156741151567462263016782964525228543031959424265992428468800260243931279350810868607165241817530201382369771598195845415582382776286736139403560553441335430698152470282359993886078495179617425213551741879360128235089317316240655294332745127047150709199501340361279321361868027446885370535467919642879301026492079394516488762860749907799452902780805747165355661740045174969932719753541566825870042451647309575749070143299908465793964394195666027705686506172876154817518239449150231299448267879389892527729065864917908757381629599094139174980198677308876555303558864986812676601086124384266462479578277587465065036335910409608554796388189425652520398784827948972181258235526429348771126794591496781479377252812832696458100391484243325486807101440405871413325354094220201312898926308326984961716061569989563387618112580219504351294207492227756489804603406186537327686901573460182809016954261955118591035064573840668353318370643769636459811601018726326234442198150553516253503753463677518210539820876803513548649574785140062816367014272891953491080972994448305426619826025443015276278039342083679088855610232303514017753446384255426289654367463796256405891916736871546378232929663552883739675831135132756955794376174134322290613346431643244476106045143723199338027892041007812698331397607251610000958536162887227420169719934011747167438861184194883048918076139999702496249845511843416083818527802397556539321099344939928253725689918661598300354386430376176301260984116317956971483167791342229001950560020583488259474364827547995938680915868221850717347250548451488311416730891965816345806041148158904555055482845764608480188157248616041133501436729933058374460933517786109486815607563124821966994014276210563391407665518159830362015886443091306388895045599694572069138695759846275163593433998982692084098498323447714360579792135047409012088062433215210085464341891224185730720170922524982198263396880879767818282829278838350274026130707079727408645809264566056574223649178941376213971635717729645185320402068141431564601211299112907266358321387894422978151945857617337535511985798757721249104526830034642377570762404266995507736638612649857640116783296954573525571515065603508013391709689013211073281888309735924175664837421244112311464441258027607924897022150961662037357187780057110016839389196497344177942676076376871886266606523830872642224245451729305529157328397380347919608994779191431181856754968187039940150151055021393990887467225466419145435916673394287219816415811315279075789997240553341832271837843917772730410323158969780611520292656438856718763782183475129512614185858380834685236370325003682286639791008517575428504393134586345733709166971366107330908900694165320961251723133553404091569485439395347515949992696970237492358196156202242144116737072300199439189592461743916371151609670517306702582200788439350493711775562470226862203572338126428332381135837460098145016944673752331566911778915208626522735945689467392945581521638104458070923995747999706429172219054463319975004444832102931378964036330406146077548719073168701870127005713362691958499717717714696239999045622256718929518037546699670969423848301332296912013512418038062619185892367585981364319334293196386444251588855602678369457459974341370402488144953437912412435478221249182941072088179670634108194760757672215295184907811168227770017844876286357171981217463606948303470026530243590195468079387585792815026323761995920602968557786341174230979642720443791582926363047029394377330528844155969188195733547925779322814401281018418464053903123817383475174522223524729081409925218275316584772852536801055865562398126558753374457845079625594657738618157434188983143723339120409568218738840792725346346121574182760519369883832278907816676680014376522800730985946954432991905495783409488084031847473160844380833838846669602479795222726886586408692185958072816038106579281703990115020612990178440176431546868681645260589224062142633063545385200372546457286112362991790377188837540983999715795064608641181140646072526833477807393656369053851283600997963913707388079594944052093655437820732651737228083512426659127491321378205663643741275518913770688237683240938168883182479802393923614003857062783466206478463678356899401535757588137004698529066618571988688647579122337983538082752614754495911472831640924070262350365197663914703620048059530402868407930322935879966966513521453460827937026341750626121898871061132935727737779492733180107007178455649968780432455958497200220692849109258738897214197436030404226567993041003059634408809559276647439652510524546181692634779523717191860007710121253021110864283727633144934221881600946763791547933640453431175603837100715202358634786082154938575574493290544757809879078488599830146612439613604912096495454063421196199692922917469174954013553350415323361097843500773720308166096375735230750296872381289354354970686318092667960435342631089045514655559522672849585767759949269945222751715146259025038779695756206919402315102162816274038918920250137090707891290863901824854392556085126815367014916044744074903504587328593678431006434002071073794053297438687665529944683543343085338053675514885412490942229077716509145976998595370642022838686137513128589002085384159807151460375198842852455596939796522467729704077594632006453192963093237627857674462689714579279529343349302686701766341226260879511511726709129064677876422078592597265639880796313731432379575216133687883195666390634319995104941335757403735667058002798222449248300633681171557878948909294602758181664843739566371471386806257480542660344256903112350354328981455168269721866740303902566851104226639862276250587130801550618471126298848421390319318855718281231324388640925891539685423581513904234538749806883528975467001033785772905726900704874336581568136173534985218791829494908361818109866484113754664896228956572993496409404209088120436058442557487431949682429931278410752476087216238587117235097829772110701790532606357923410068040658335718075544737599238601176189960862926622658753343454309034669554837408236158533906775477863685191335842140871865120414090550097223385989078795829473394525486295881088109393441504930777399440475002044627831627575949584454959129251328646240894846649399360652556356614764807208121422490772919262857559329388050119727793847849070447703809635928212948266500848993258798020125149123948267160814008640710338807976647208779442808472799620422787469038321300529127866737894805239083645732871315531227516287189081082521406034367162848527934836322947082875734943503031403917549882841705419338078375720618622269028621502095472539931408492911134910708928626858107719801453069717769441041777893173062900720965676781029668876490103459896497531834571479982865395633381618367143251509151708659009609014591776199106363873695403955635789575976233766789775663459149868701327316907465862396838625855036767610188984601582317426644161583760605454690163558704090031151773909857512815532660992698500899772857473987190944181706340181820596642441490959490960024470929168259660225964348826947552282903552552711011787392493070960411456603294857794191562845666522349148151943457903334897864179672786150509089894228566524285771006768474777466432266068726570838864169565420051076465443779627417562897755893097970136390069681088088466412790164631892174983921118399551164085391532227420180120950261687559387076059954263762822126580776676330834077305819528383620234340644465564053006322860859832153154659755445754773031209552150432808808305346212955933675965746857944194784503259882386600940531198702485068572088980212952526818756403303108751630678362405476177734209506156419246152174854577537395223425472949916575815817903922994105749011214495684334673046506660157228102619328927682089269209906752650299859069687484978558686107187870346909668499808496853784066023695483626715215096891182486463259419081970896434674502760318199830182053759602633587398983032336691655318028837986355995659286548400345994923706908630662730666543086396639166822897481732970949686674692151660858499738853358669767557267669025641656129204311310916115459306677903352227574067667792485769501627580104203600931572325791567840717025987535832324851071021335997626057845085075409861216510600050754849825729806472977221092069161339876938662352321543364313486827857294383713164396302198276658783273153299450342659743707708210112465692061309422999899564994265602517655272282413902770631335238597353549336063298364495453017243853211817737377808766592474872586059320813140190180390820270694575887759455451598201905021616934531864510140251809329803316609234505261343758337424677950019243562716955285556897756150700207114545151110774580131962031606000536583890716510415754854629817570561708207573617343957148813276273007121776241971643578167941224156523269779713121882102679358697451599832953994837403620668703889586074353168960709716697318522655917578996038722551653144898999631271942028629601038439908757868182969723628537602825759694479795712590705660814459889542064864220263200005234399924651199384306188886811901156080338470644298945612384589049418388522105854886114823966224564043064772172224707250719102041959516475383313874275702591803752481050661775598352848358329216278986860556805353189904827524203727857942752902656722914202233384074318915270831537482003873458540927156630460589363308714074083490081572697930274458693359812089240994223295086690255937386977353949044796259663406713939690074121319154667039597069245853870082311146424160235542308778063170575788998514801790292603167448362974073334991987001384176183949469371596348503492641069123224856937754974083717800765945479345261343818096651244343886516748496762079237892196206498066776828811732687388635495651477047531147896642962180203462646398604337317458790873427150897281883571446745930048220737905290580278073373193177343757615265684934318591529957313292397494920093700825169737364526460522050388366762861375974829163938689942696441897272734599283490519565359089193234236135136455240143500244344076329384730783508614381508357035109688120988069003668097397420426378766590288768484631730368282526152222942354275903920954981721456249947514622877396904661534545515213073609601114009215866169529039637019189195381360243780477096005544763060693993883860075844161205578497325723915942906809583829429915738873188990862913268559675571515785877390703367151789434185048825739932586627719227288991854273801144919440965292963311256389630541488275913716400192293841427702957671354206432252395180395508729645883427233253280921492076479133602651296801336093045910907300370542427991455262325992812773700710305192841961233539328785395623078470062362809677049759993113561146756720539835041118970426258869019696154060926654796224737746390144579924950564043127256219408597538728548070219763706297095904945939226365142690374318726078337888306171667096703135675389827435633346584412104433697498505983592624856213712696124961057838398925702182959066113091924361940382114822314001128796820201355724652151385264799547590682580477417283563030978685905809649350006289917640127428855418086478909716926094738182187963511270998276957466546156539654266568238545160124956072937703567011990798992473894235041706677187726240286976326413784545124449801753119198060243535020535923247119594892898582720434095140392417692039170987421883200299644335722671482706842881582883330693077933791749676956144329758960846690979742999188202732374164905259135967661196265384772761819051237342111916254555731274316090092644317169429531274981797791028062767717175801462760227535340738192746007133680266575760024749626342181911298744749644382122372298340829902712384698057308043651681417967720598948626818151892820441756829025039143812522610180266998143194672548551058971528854466300736750109378806196726473265720802949158297159365652930442565461960605393182629711184649783770346980013527329178953427403080732978432057257611557157261990399519587981290958068406481193073984367944659185482011248951675634207203143935051945374387323257725554259162964843308437202758461710717643644729178568543800983549977656922390497028869738506572103937769164010972954998226564742513476702747216074560769804015255838965447303555096576672366923142299534337589851217538461972037227250869539700027667904361997339146594520762259397563717337128546298345288597123459059426528185580968541933730294112061734019442250242738712022758238320778999174989139434478880796207785336972178230878400719341326514745606861098134744618470619749600387337593041288350467092487749360890057645434774746445875219094836500095582872159498349457417858571194010549051247716760731737873828699001792423419959394223669278125497920977348726603131875011211139890063095239433155787166844567429866468486793480551658042372579117542949757501891396639790680908232067396925247045987273417668349325580367533212083603355005766704033926490271736654701673217642540396747299302960419961641817415739650099382515958530732203782208901991220233508650598752649814696554871993340165678500600645270192357580468970535975586808581498892522779750234942063833396843869118683793095740702733072548648301349997004777497339155907591357944220587959256376371424202139808370666128912657754630760545189666572080258258836100052820939029310544865258195593083869763309203159328406533011091403497751489991297170027595166086416765750551024745111674892656977323002688010391545125149004706465215410018175041230204315288066985824913695960090796935232796950579828110373263879944838789913990680177997300078952502147232156946130694366593411952529717513074129003835465211432054644454344518036889566237519554545782543150166677706777136954115019401718445772326012649276085740494279336662301087468672931844297934757692110959026961690303548747223819844333774241246606600973644810655424969224003989001722716801970131090953248753125822779993296681862443138891073250028368304776477269316604904313885322658885796515232395839892124151282208592889711784900705460667233728108551757327482498997886474728576358189730058358202541201590749899616519189756339651003889081870391187041803467454651654476652198143745956627529064509608192919285601094683889628992880525450888417463088065188935456868453715555526136345534344889962356336617891386494694680791729017760603137315925282461311327641106687365804920566158558279994695583315134762831605999363795604737560037974162260670331987017241842744027415274261932078470975067180333769047743773656382761545722260222729444789300820413754420824767231151756058654737498585259877508288876851605014568154767836496339389816048876253554628396945090784290609472629206341101289711422619495457563663975973439828833210741418783586881424207461279578511355189764665927782434098346177082048423392417026738174959721624094421980173817385964766675982237091674140681384294876177557847553726793076757802318604450313337683144688609870785969532225274699156271761120147734255841435774729552254352519209596988176997642904065861592529923640873829829215716080694813834008965430283793509203843540941278309099554842384747934453035893933910123730650562075866086654744547978056477219597820555561093936179242389983611107196857162933579126635930425682343482579869744552596723488220541068507542446983276963981889328937775904587139771225221814699729578806435818072333108933088326899834657563746143830822943850036806068787557102386107165045747473858726510978777687251444856682330880343213792243871081982552826540164058556533623975467102698782767669830084659456024402280109006971084448228068440877560322660060136519112675823081461432540024894432712173372767414291455795734371979466966061991547891367518965024768014133373512579833434246120729573921834207252266134658374935385833288698202820317092035463536430415728916757539740510899479188867836079528407677762556327195389888234404902707241241147065072204297625521083634918423519928035408257349440433060134143384829306189328628289036831275373902106689906168843875929277862315764239054619301117067080884870340282532304394818151891673732896386160283051222148237802042386443869346345531869002144759375967520753035784090450581604634706035707941501564382776869090740751565878927551331622268562521062658591463076920723314676903588936372696765948526317062100105503572830532447507541454092957461576532671127432725446416998963506857423783510217684683390737814741034559549465553370299855523439859623780288115864603367997417339019401110775959166867549255178730919239977483816830572550130600020864057362901760646543280031714305732648411609234598603495192549320816305072913119161632086517304113954085814993635614137537557784939474954643922415757619205931748033296090488211011544100205114349718158054863182276110747775002485265921958304319218053111119839754620601477416088056210201085397565286737604107902504015143483606189199260592921342472896356826194612169206079947672565362368055697420108834598335682476072145291241799602214953204514835254200030047302421728391862257301625960861451640901407864970168210908695675876727903170219508808338597093753239012935453988418962271819097147719896238146106952033675260715463238563991991524866393263380491627271727266568466160029146315070725837075807781224628208952650066177794015838533693734028384459502456844458660816370306920257659991249270589979517743067330816269786508299461563099359438895996735836262191177942064584940705878501794044440326839824005228081249621933395055843989447567854650653721321420530837031867069614090265239627888405896885092054545493307790647449341725571406255848922560997598385304640613297545005212436900495828616849738156349757189049528335423517296357644481057163658308202283905608114462980366436183802910316001988706946638243784478262332971261969694966630346663179575531273019222243246332288964742396326481383708687710670469667160945262829090295396106964840727192938593538301768257385719971146275636512534046084881373244355534083963333346921896656705008141500497656296071128809746566986159362979247404495156540139683797496889361153889370882573611934604278646894557407918777803671924024400549338416174994912311611182732946904044898942671721796719927282956601991560572084510506983001688521481428899297450502107999463191174294551081773580641261577682055989768024405163878207613748502379290898946261641909782094219747059251059586599930446813888236678485538377133537991232106770757621545681156935971104875570739852178337181773996459447437411158525675429219216070451288644219042791653344837245658665311906498011717905153140828452050496598172753009931818573181664741243844966493797846901492218560102877863693806584291785810744435051484052987514449609286079433750501229890554368444177468211330646740651374002064889404626001533529117651386266999271090020559357817563542711654139434587389102711448075377877040562854375113753562241764469851541183919055730208956906825976462280394186684293607314996563296465021783228330680790294427584612089836322804653230470496243914296577308149823534901929640738631096607262812722016190692640067400582296884666498645092206737252892101463151952072510511697079655763400903764452522427602808169769307995280612521002970473490664998104782135917120176257282000194331450829816361375470417515715842533832972541584099967799161061285730642980613188208089618980881805569934050222875685650500236888030091689159011974302862363847148120300630546526333356668444516616307191546745126016480010071019965397962135800855021143709314433575004905250386199001174857734678323135038548572982468400935903733353744823817315834316135550808674838507453080818915676818377168252214447704794194507860448449515852443105930181555242902085287734520597887574812449235330809608237917587411121699944394645483131650115420285298662880978905491687231943008758603046566620719890805925790696009928312793453521320990402885065579468736692359148635734619118491817440378798761335771211525211915169632768950541965510117007527795036527134016886888208554264996578875644020031810784485913892615637734222615409693732426489407884553366426076123350675145764951946203350612302653919350742817577199407375767322327381979197069487686558685309236509155322652471669443799302585075454856385419942621273922370835144789018400412261809466188329798410268244103915209103614023909912840542911328685587553052356981749281025754017166809040913633777879480713770974365189256087474187605600833300059933529533000638649255369235901928174885893767469790086365042816125223503888194276715080355425725997330304005399229738645945245169642683438401691219975467652244605469813061230052465920196309453383763693450541008550884038721111444601531790768906127080199398479529458585506431264284559491691777549486456817389887346663648976300373368405996137821472236098533401235857376879943764010793187358468508673817733858944062000563122113188825071551222280361131577879374893162913705058644694574822929523582387064125085307830135964278592999727255512946166869328551832704437221526965802210890718038148764021330998916983413318321109770053693979144585768130076913119223941243297036313487754813376301283689524284320032636810288963257121123525247824076094236655239800785669802912501336353541832590201367649530861275325501000642018567751490133899240537445522515837867367348714510786979999848848505921132653265171436885953523323212965455043622222916518003217107580483261604762448615195366050280142604664393599318428358673113854550645695702142657349054417422710743481799967658289408624434394665984221664273532365048984477029041638723757610132947483856194757197205348433889037670618718550022401643915693389955605356403975182128687041013367108260146635519867427404295778340184275210702500571179851460385847359535118543967729438359191789220686432500673649489980682228065763857893882416629821843734329932032183520022326941077167020594569067057248951016647429830293272204314942355044458896788239524376262693661114450692842901346914629698814282963840559499904492960906873014589913297862632442403664007200839985372616749815749312240410261508499365102024136280423919284093453351336518729910149853627864193945365156141269161648254829391372887091654894067820799115107265049619380893767265123222397159467397392308634484949769522223085674158585560903768283236679399250635427779699888786093604050101405627191873202537836781853380164243697964139354513136831588132789567336255705955397794916606902294436573641356791514917338508331933582025062339206423566937972747009385368460485373592349981451153385324150793063341447242104368941893780007770547215991446036346061757677347428866906264699610500732924654131690682529868667204255839213097917170530626585203466721994203614432013041816244998577897687162095256553737007139339970111652764515598757022133737743668010394271766753822124443066870074313078008121483097273566185454422180843942282011607127804059360700993881845775142846158692400095945865364119119869488628352342847362990167159127657669745651606869615016546459366492630707888912632010898669741915894740607849928912846585976271078323839231696682799640066253606956589489038801184667429348135303506285347117189235024819465869355708301050124900564378450103218205338893459004623744883291536768187026039858109866494759646270340407846916870997356038015930909377676415071378997109735754225810719466196150995123888995441670763415518530895070559347693842199729745968065395926898182151657004818606680121931612798323311185822448405998409916986636596357173696863694423488687193570468489481609681001914562732774741918308601982738534044766707445334460986353300067570296467553020690923703616603159677494706505497534030699689539116305617348164006982241589517169589201988239339849464224905842347762952605488286953774485705872069725175369482348475522591690668105678351701010291978612492760013133231255482152368222475493136893087757068196854359252524388988030622604385852996223970780550678951454192103197869149365456653210499975563248374028533231487803301359922002204296901286068560420338503191347672088068246002610033129674858555000732406101589149406593241646967432927055053716582993867143657936318469999017895440599534892830671705523764932354364195273583035147052564192900332249126564747665491371898092117748956720922461585782507217506397154127680313675977649865503688744211337847069608105412406936287658916691052918698595973216194797607856751893143450294989044708915886380451838762411520180810987506942349722392177012394075961729956295189910269743983862968738379427176385240440532784834926413122555132244325232402265914190250704809352006344370535390892915473502433689167996430949021999601798536143817647957457081947986995738061528924329458850347474829659055464090986305109085565277999997137269597123846574567839616440862054242900163429142440533583451424596823642411809784705269335065928061155618060629985536961499145881934872260510065291851433712743878534414263231385732838223837014306172406753748381193847969394547062436076715727694633444181330187895057627257717770170533944958948018948154364524282570112848719930707920989978946695749195208949098510929668925786426740331634271571655939772944196068234807983573684181179573972065496327113650958422929161515353140082485759475890930956893053214671485145002533906337899808796668061951700959487250152380380872217623044026937178884796796952258508854167242239304457457261223472602322473165360873313734695443207825033921412789425249913265105573838327149536296667743347370454624126881037310538588021787506929704565716898178195751753675351552133340623962218732503828689381377505705460019505042042992202220630874794950129654494896274916856893237845010870209490308778225584720353668668219849759249731646411048837760857349364144324937063688398267440586009713244394810960507565877488077549312474319018634301754924672148220519723413643916582896666364729783098936168863994502982499926785681770376509549530520281585957630601432407397570163676604579260535918909227710713454317595464411454950353945260388645794512608542411580263821694866393231881647860605280636390079716006417486890614187245538565482914903670447273354895763988008944353613727080826485494505249682616653984339995894457036214885404295500702227155025359732394906327729495143376750187111914476407399400009587409946202858883761361855921091026669346778883574631015243027124088843964860186375568565043687592650566156432690044017681782220919800123463072515668531559031042117546132657252783993826356361194414729269213300942798779589284576094263621044376694253991051103938060117423588122099948474782784629129493416419812104271285433075867660932440190566201149364530457047201639809517213953140646364002063510804235461584834039625990329065667139121126463939156745049345511926686771238573712246216161896787652273694338341575119303703368320238678547834916376608520600161426041143505357091703143923938372343908162559214793883720260658088723874703259321159325754038432048450144700606567060166323747241135535479321409927315130899411250163312222634928550993668105712739378179968961060918682715827624856473540054971435266177609985184067101805083822931291077160858912538036164233262198839223079381852493750116511419004003184531217739970008866548033490798147043269445616183712354186534967538487190969158463417796213218900746558898894705672129380560650463708311960270572672591530304267728195020866544672848377305134840571047802620344966783480452337984574402274847211445495305093114690684345813839423449182849686873813412982199948673387355814558614907880379955080753558772208712034561432858264158654259447685371515799282137639629696427309290979802270034630938761710609987149674614825359012348418644741104792606683032655729893321178579944358289143335704137743273667820166269384548437296333604318149882092664869553196843638759975856854947153854943272146043892659670739115392917745017610221339091004864848695667983356348907190800253265865313812168076571579008194469888283849133650685430873564965193944392460390224530994433365514683223761439177678818196504739632099058120650218013765225180972711902606502412861279922468237351736093231705660713650671977736433577970462584067432284635630079539353400135105614283318650688279806166911480593891001650961729244993849694134013677959018713833806725895549409104127703593559568017818046709245983087299625567810900329124534217905322935491050657617004600941700541145985175704111176258490228210114417879010217171054028299989952897617973878300557486623205838061675909498622289254187242586062928325138789522099777243318274837727293156360782233429378694522236583860118445596240624281777744891098617006007674820698413478438884198731730347871134385009989149835019501464687615727372546149773937549585068106632381757385707341943264986689395197344823941396951682638770220153588097101145091637548355440059801212366394769762573945592276415783997856593167895881415462055924745090422447295023603305549283988537144623077353613159121430583863989695961723052926920150000747224666841315490837181851963008136247245186622924361191006530646955796545575701172923497066139587209686853321630224398373230391042326384039729924732870867084312801608347932929272830470655925831164015224344066204318910681789087329511359024471267793187948163294116812617767172966522175426365304283340245865553515025575898644600374426176735221329445844069724240077539443363792012438001332023497551493130170093569731512915033365837673999602804666712360087029281670091268498157386892220898473264421966723206650261130266829688149701609030039949302016954639845703560443542976813440208776620905070904532791511755943621995627749599725633839717052583077523906579083465017130541403954103175917676970689956863181729181311185204631328410290237706403734053979866245806232899489063071159405291041333326017108593454440986709800019148712169935969987456062897136105339449180216905038910661007240942758936166023316749071851749782936429423189650002591316948046537355626855115674782878210905688841499969207941657809166118440449671175458884772354151642835534287470922019324760949868633485221490400369826373901728989112976311188479893151766125602345159351427997431471030944697009180474685038973641909932417884194009917253092528132692235974183777678887662631205375708373989743426505063863452896389289587421145780300214563122444128115287334972419244694442126832139376512196625312460801497828895623348661594937940396818715295024759574139408770955392497745628056450516475484909170586943313537084532850409513095806636077833526526503890594013284210831444719374523964752736348854674361146574805260879842703581102403469428256714884612344918155540135795975000400019987462237764943596597880977628197700949140872066420145087546866179599901194163847404571893413575638665879435592163351383452476156342272187039040595768122773209038411834360637939648177189665959391132804526935950558872685617713363910496370723163819727814238883242390439761126731036834345086375555669210663607773460733523098392439384815248797645101282576542629664421492855381992673416857049199409579977351285652399207733730504447516042197016282980428394695203407301691064083208822086775616908233543608296473599298732073597896014303007000681695768681781602653009015950518803452839876336861635590051158610114411478657174543939354976141609295431864391950545143512807535646673766167187394675784709984353737158536887444834369029140550805066095737702116518509956464232367647547852934672974836752299624633927886041387215680959445845106788365837156364745030431829374199197954126637842925681676758339535138822261625359970592830385701817887928373521203095791203712919687790490770589876036074616701890259246544910365197189008484367514461510252189104292323079013534203822977061439693453467056572658177896492737750159946440856232229962671742912191278677240172986844364150703696391919247344051210404775849290791692147511419736795220929665902071825214853932552435946128056375997660265343999917671886954399149738165115139863494048385873718020171992995984452137626530646195034811920231268125573386042282398390038105177412533184598051950017503173028752842543201050016084188014307479792953632123387508096869079686520141763232150867992642107609133450905487566793396300930412563638565961858912290276110972187822919181946288605784469732388669440605084024515097680736370088310824319217895032752281730026289040282071979231038714295334489878021047230013960601808519754311629812295095270010347417173982576817064127235020602318798794984772676285863852129258728096558715979736271093997605566980495341411004097953210597138731768730141393319942460894615051692583785404730222917867340029414743262739829006449041112747568554002743847274877171670275639849966364496350138537905793751682865021658108493070078345935179867045006509854860337204627901273528866539862620655831034606202515320288579998357487507448913249095852509009367207941930043504785462870077713178274965675981447351804058882192442333185840941865586579309753834510649964820557217589779609517737139260903991311143350141698103030770527645626558608350102930604867866194077668456663785686432784825463130676773019558694684223665435193182390570067610671045205744982789555071355662355889386604961180534174685794019654268525971160334871672470156486851741169204740664384879148639661149997557803505875760087991644661026132041830018949582006345044833504263080007091794122703185542381004749354563837297119366826928082504205362385237052563327757696505909789463882032121322084816337493232395235690609850751422695145486867109201635817374415942257502533846010429107792824432566932082790728253029213671124532743505559427514348342585890980824458561938112990809677761215483968361186234673551598627757355018219311935308786924548124109053195092530773542965515395329159003043932071479812785260724793389707066828313054515138689315580760319287499264387430839066839318558119863328107971791765583776698065856393985655961968152112944501384821833596443838543051217634187344518616990118369663335901665041402998401794269288132430819429148322075048214247933024607839318725551771238004604609340052764000863154964062175998930155359334987479179798875937695286409091667316172993805974385814252181077517115475110387072347972086018099476970014406758077941006256445543932480050796337317547255413835671691884729901461256677253755119987957933119474094888088655818048521281731978615684150284135433022271549935325081975658274413461043383498992386797836814102676336932646662471736684407220129404529067335097284860521908036234108725080954279704340592350367523486233328144929027717117955525806330154793435417581875338145699310341764037702376096345749016658976840894810327631546837631050224734138432049939408016356621862049468312478845861085576510542362166879139395367596705552351154264303698117928469560512326929245302038379885006841136979882665287787602498868075818756306718094490042956891608848036975519251599838980848776648165676463722620884085890761291214338898500147654962820754048258071925787734918125567171534228231173717952500816202030101932701049566535509963294079164686312339781516113054943295138594945114943433069478748138408123105503149527305050414532847521393722973189985118208788218370415660297556039708033040486017819948891029881500180101297759071296330652685415282159917214969863766239268711384327552548784474352883979829935496702525337311310760851792241687586520067566825556953329663502981959588690460682923017585945464973787150963384079042858191699938605821554891646707996893106447022301946247312518195420931882803804470270286592267117580424287372533711259674111517701404528121583956949483866411463136455700858596061199130362419791127341522270339157935248037086344725460963659107222997626109788629792726414649523231921046675203215265487811650044184780332404502884202063849996873516238876055463407299140587916409118780684188172069417754403606690913017123564130404795225195874234996010784109115580097445417923751193753084523200965863457139714760043213574820773855285422664368774198279455769261151674621810451082423372764161488085298383849525015961761143350066710556620907958998790575838629559854833055088621427247171578109134839639546898606239306400222589650625390764342957888484387054717167686632920763289567316685622079852885014822492639560488998236320055045910406506565480621472891682068202207937262272934522905863367689036402213151006685226598810277185349595992673074386366205126275264753365080796069805547938146414441914563467050126603138466603063013390815620873066763147422755202212275195285165491035066355624853857909575437992852816576145175826810278241620607911439136606903909691707512302815114777673747122856669336211095034653862078674820002012514380140541370810165570440144937896586912642537589746784897680144293924989974869638652000778563088951391362967528429817513124072286965065779069636832165715028976071104336527062577281358375748444929274791405074803824671559045816767411184974191845322332557136806589583562656065118056994898401334229394910417654026943041557102573161793348555729762573191437731685844610442192517045410587095067807466209935088584590904727375189707697438793866872862448807232942114400166849062266055062959040257887662664531212608284948335270438027146352892612713677749916376212203027894005277974386249923763441858637324756339220014772634213840101157721991303522555149145909706121920083479602709819027096307261741910760794812166325800250864701858139411322721529783714343648527386452565034102971112536028247504498607366580475664341679328549404026934959675541991134858684074118014479710915501039112811319197780666974384576463511120758577338236188328538162415185680997164105800357319152120664577082619448398510832257416332281278875065915202220394767603412865493656675921817453691105708142038211881470032984978300626303335899814697562742741542851190885585389233500106580023030823221033006125997801692817039713984686033149301018684270313489026539132425521592129053038189385395426742757237487642662929786627175291455981950260272246219995436201997340473734852233232293542154416227825861516911534500178938234531044831916840098963961355064259529481194684856166084494317365752673048695539782678595453267499192710917473989323701188795351808872407422757206170266928653885214789838999852410334698510914757860386621768372554034028881839598211156440622061226353757286262233095442920043474472119782831605029523333979970650310596911254613271860391583338471702719741132116304657104118971853646213363911297449230878664103585338646206044886398785171011248488043157536638223293757477934943375738484881842071253041200510795678477596751494130992455147607598441858162411131168351548413006435288513496849160704915353326813701910499787645032152261948851789321021644522860732541387155066715187972287440411019214778192369649369269156045141435552336783028769317701592932055647553483868796710168019796343667725574033780181708899735058046030183432240777701288224983510625666063859425019280596085691895302590232892983368211951724994622812080531655667824685114239752423016247982942486407652407384056234189336700291949712397472860513294750208767519503723321606929345187050232225186787488576249363879412826315227244470372491273289647619618722066343778994532378847795073801704941589391173998073116153335208573214495183877776111065136700134735086615580753332620996197907962112732008617449931480452286754644296680367422824488525327913502849034690360819560555674801477239435816177608899793269898181105554654319215467186842955624318995262724406525879504038069182898226805703428598208492868666568992070836537832991069454783679456640478443601276452336802436382423919115854291373147050795746099186121217755617628616754515123190090544366554407308907097994244348688234375084350000897232625906250084851482596659052184050339415931881934880781019772979750279117146444249175991350847709832702045602491645089684678800966534672221389541881100885914773790883254195188507165638132181306757267328694511334015320572199510653706487235425726742998961163310245716615438520160171358238947993001818460998472409643011306371967877331737049402576715328166238749452938217510659731028339931940990068182288461831488860043860861925224914629508243599915617352337808073502552824160468681071952037401311050255570157966527609963852716029622317916227016864668238922036478705005321663994224282934189560695331899652079265991258092090267438513580612385911878997652769046695815779271852327710245820009998715447051776141030717692997237160186498420251637490810103545980854491472366217904265999173799299873520696604790006888621085926618357941892806622660789694406232803426840742819797930851687311898712413985298285186713268128764937902430428655742380744300690146973784026378746272134018014116401561747183945209217053372392721690300168421395790551968321246678210939196481408892912255571288076343445774291828257443056025085155592315693521997300203162382355416678519662076073576418263504603799569167445637158528917917003044890611601826103956980263908274457743360602215997283680755710291665967264752281188484290885954374516721085954685765603153364757620749025263338282742142027091501140260503612683005997242896029481777945404638022832701515287421349689368946231458750579518602385992385405934646820316431803846031646483671573634784802756000336619705613106777990030312145591092584429706225753381106506635701897738466462245386803375152064895273115161928440674162092122089194393350644648547134992485428247861644632093485720120682293072431617126420365905524450267982169961016940148735326479950169414511211331131453120029148439910463529015014495269345216984348810567012680576777508514094258868637210585690234690339631098850916537685240525457086196245384026076851014198154065789754725099441977626854443860523605341061772038745458406189766308686224580508670400898037074421559952358023773397411534537432467099152238717506896952128818370172965492203504854236112327314885727021079603193835663329506836414659402432869740130200273719155249829984381211904367061992411518648333163603597953592232924181788882279943797207606846941065127695710825446701281748508393879609241175206117069869570519341407909346995330852538618681384619433028982364739868699508194398232281307535395401478108302082539527802356078748056358383117553548983686206876336732148969823198805231943717389020776761066617540405945409397545813474812057487411576988847990493041027670037320193815966702617294337143262399324213118957711362822407160832496638744116986510399608733846692259927707027127652698459947397442773997581371086874180911375591670072686123754493017187272465611107918440094554233222652492522276224008800388521152361836110823093065625839438473574104620500502359470762073907052446682656145361387563311722199540349421314076014752316249475710453742480582276341332978829731973220228915879990512823321303305113273871359714884065449861487248843474853411868751043211647453149582658440170214653823754614983098207146852498201645865026721218593077149777674291063912276891158865112925769690092590923579301090083500776464258435375757915222085373137450188093295177301971362240595111479713239086920439334078943645683552829717304909882238198871407122082112669608224750737105720766427032502957822424811760510853488460433922003502981999558547637514765911655425819453259788080782208208877353191461890431691923109951338807342078876091660580243839803215252402878965939210707757733561171919138383774927990478940590645804860336164745117858366800994411916438814699060376574044258457097366072392001625929200970897378315133487430656432975835979822477257042778872922174324000313381587445369247708137687563962973244186776519648406388249180290767610754591837811378098573297166377630715635540286684126191142750748931433304838032632972847769953713532305876994654425036794742172406620890733645053254580081476833740985145866027034200779497959585673520897802976016339168917826430079309430546966826812675001596791831089851148574159704810709481917808983463182896385986713493994051062364209783450366602478647613427139744952022001908152280832857063062182102104917976597812390958212985352291450297737727378542137238584656724702921385466436377150220553583751112264409984203664666805939011939509192705262749127408324334920518763243398051660272626871293583539974089500059847874200521389757963363380986732395063546108343442324113101967341595214317062441990743521774099552490606688671638442466193370482800152900557465247499392648637594287376125080993006156054215555057698390972720371539894915879932275734090333057879134328104403245791284778241066168965192770540550044394070515754902280855352514510960713882951473947441476740392960604154425766368823082990774054780585742853480754617891224469986532195994150528081001518916407373039755799797978267595303043118314682003626953036489973201679658806455538771281593628051622919863826340446464324205558486914434360243186358230699432879420618456233741696706365545417622204938300381090093298320855291470666687767606371002663209619279940222234029878584962039324849810741678223862737081102693671732474174429410655505119434063598368881473502753984770265829026181286407352433258229258090520670882741603486957680406707701056362841269996490712965910449243828401334164987692017705133264669352420212473065464863588215608982227916609064634647813618103597261399721178415949952306946453322295468676486298144925215256026298666432769531997235836686774359807732521539754630753456090204867990522760003510643856483924013449158152422757261730762267907426179384067757024356974675588271099097222863810185610060348747229126035381366550062900435059461458804233602874674310717918280772239058784895773996651219155859417210788939674066561351497106824823699522515020743766001588658647583906203072550319852981592358249224665636271642426538325720660087862074340317982532548937418587227519884392291509992565690838319962114927010808141317966725232092198869238201662257979328276704022083300829830637926909037558660079084521053055088754057592255832500408887500855280233172571952421280911459442027742241220399396840733454673863864184859222381287185647839083168930061295024354565410231156268489875003076314731996083101997083968825770049997577492141162514412652967645607566836387023506075019200270517154359648752273141979672887562701218969290583906982861967328820665519154951900847635920006651065513052982475412215803162252309921755367490037629179437678478262918564418202871011254776262898581247548694361370316510886440542889998315961641185725316153330457182690460160900060697838176597667114628467739520158753449057984087526560918160477001601231954281408314508875960038961343795394945314942883993806890057389277592399155520387737800027057514927596989649649582157353432770915515074621461780797763457803564323341433764293560197770101597171773633370709800632248063960482253791293122690109271557337946868893610236607954504489716582014798188460020670169822803469147911682675470963759639907996476381109468187480028183852814873715053334550315822098500674044153665007394240510479726427665397167887360756442380471807304446278043595016519843911078022925273241432857063679611410485890522496926655911818809340467156660188263441287517302942461424437726056007972499486323891313312305438248061755199384789814328893637790090249996531784686729839638570921336144515160223916898779579803715890838841982391245342398599916716238231037519508199908582261969617632679588398859410408826610126385340163637712146711082619129385911248014705278871881837196831700284836623659545717796572544069907275400554826348363290092141150724846006572091501567863272748729759502194993879632258253852387562258105443234322020104497412667327659258363375256633178304195245375287776543973166900630573769335606239137551981266383057060438806681534157890442218118236158384955806115074835367213262453446787045194019759432509925568143694691981227202050671001036857966109868180064138715938142627340604737194178855054474345111312073606793672413890316265088597280852739074910393459640580734775656996326616957518009822127939104076461754316826994361058274403126612495850623578698555283631179165596286352089542764753538062292119614052394457477805498456743755394199108512620273501104301682388283345504393809278913025098755154448402603756825339802454805270043565345720902388875955211912645638857952760048210481641108149786239604646392458121954437766969976034251670914937169342697527377259130597437329397378178471030964870685537117385670524264636302976488809934466911338477557627396212821688675399588473380809126774891693642073445456708478569927212237610913579835907833062414393350276113020530817197101750403575832510758117658310361155132251068741552628367048837360539771936524167499982420971927818035075862006523785385109809568661498574911274445591679217737250055064940327831513761935594840578807967772817758208396789587197990252655311156181862618514761294475046526599572860555213630611795273145052126578184867927361454294499518285166834586022289658521251534656931903935431058359217035407291374000638124324236288869309047188677271267063044795966147484399290142400836875011894250617296239644400506613997335786702625882060664771405562971567080565385291678855035861716504154999262176033131123023392503522907166529582018983425853326877474185585774222249782464538008849075284869599569732756606334331065048059528900945183950809977267932189447299596639614212022329484497331383551435928637790138569231233515116347511411632578294485651952946132834982859041781601513804310718205541926300929660939003888435916793077239673543773457123296564344180840128391327771074258059572113560002468072683283992193202259051519229056383919485650192508933933001450214065795359111393695263244351282018474357192973545888443055527930279486912364184423010662818310014568094562868945737727103261188745735161993813464199195999961394286075380885494310504596722450645517537660239695313650343976153852192472699705021880100688898278495263580750862718046659662244859448675166300617369071978368629725410950314894591683614095469652815184325835057442117400752930213558664559883980047628411582056250458507544295204245702230175386984685428299261923660709445642672141858366141073449585847481683178993482512717866980248968892952128748419294729790936704102989298043628179483110218230951042818448553543286261719574757020552676253180924162529816239336567656992697856584501454844049263373515163293982995928181096398538784308195272343103096136427794930847647429105597004938735289600507394139511362338063869213354395451427780438725786788982077315627108747691918784373728171451793615211523400491420486899312366175933442264062061130818114195698055689369172889401472075153980444806640332495578244737360753297777165550390201758947981215638234415468753763615381597316031135078473273464726382432551843300332136371775646191902752202335792006524491925535395821616892419979954467572778319355229485397369197014688630598450516910413115696221229049818493347437537558982602133749712334268780390925488623639694306737354083943171090527122743404502795375421764031333203880220522136513524637100553663388615314478774789046216189985592062778825922233215549296616334590535755954834188686383609442820993580447211979830776035294550752372990930136857048098174297535002274993643518383336416131586820556822560336539217380595133140138468062673887086737519629682978246243612721048251396487758755322139271011105505513156675530489180957975862427682131912511335876865075252387433787354177455070614884898943675979174084116289906377927467142857982899437072755485547965601483854731728852350942813805678276526007229419676981630969095356903652077899765111139204980187937629350154772141837999457300408375623612757097324418294284065716667769504751849041658905970637601732998243049339100264131981695138635257791212359205442999401168304656059767269006766367082957296115430084432361097028296435801545185476556657998668887514746669532288941665605471778655864988178046108993746042461196131201896131452126875305331617632322145991576915373920955356187649340991316835131665161256067717129308377934412396981860533937493222816971722215124816175961785102954845316534854551448022380525173242820600182683092602704307027977781574496813787390637423092009229668568390311684674012515906711165975837691281445110954292234331835937614209684551246100443048278135760171057585067834183427557862550259789101037922120522071807525986328951582699092186559740558599192506517978916519729820085817430087112748664735855412631100366165670142616300931404488797696981988258453040221212359631284324796063583301340526516749116471789630986476525766831024392897113234917886051550494482532572835992897625984109387845992283825476262586408260630000289281832599852032703239599468779464530921322248173582144125014377503051938597585681453893331117506617149177758368530255478127717463224441835527665487116049225935100677376374184450202087742732416535401506252700309112797035302739815007742529767758309441629485046740191171586188287505484513241141883146023620530035956402515149621079064623222828851717426833819193401580030033481941574759032232181515898863527326291707467974372730750436617243710799763174454672474371765879072823164693884201808614216211185042949223771235361281241271202580230735395845286214431199308031751402054455876712988939810682640886561891638080986794770922617103793455983588172810347949569529914894166617633230853888227309132713419681939454535656298758112265103683488991253656419877797541723373574725019775154797720036879864455845924330497278817577273344534238610623375815934701314274274969910736699967689155203185725184532916214331821947532766908646576545531527437605798835664279233659856150756920756130303548487514212411040806780634903076999370015577031835262172245611708429959619715066092745653493519052224448847126628281370709912160814285291267651525486241199927840023254867532618635601442327768503830287742277571049820357550409266306809061060353489814913401414901703906125186998557275835052909194555574407729284710180321830005214905928525918172651657636061611492147956774657113002943219426840310367199517911093035166367418409943019878638625243712435275514251652749537140275572159050377368877069114976157723087613323098596835586547900627102455883986220935989027576434928102340970566174079661149201075017620155847950440946889975921287839690612829939811180905114699548856127235675238347020698890502745593426743415662675355442028046609600398037172227499970202183231151078872310548456536317452809437927958820103020531322051418843775263765078423659813679221214789963764379520465871061985168188503564146466427306340036883598604662723925706105987637851545676105247586107607177496673866610674337627003884916905037358220209422734237939961525728844071097438838148604404127400055428496843315596276543306276290003815473603328634109835243670541689607010261191391487223525360749030631430150860059825026873971025941349656361977706084278440029010352096822652993758631770850682703082930643809324374625494476944091794596342746416020402539103052849800016899512292522205627924368439782083002687679312706578956391900678517616674431455681432109791693826970837563540843319591243885569230612091105740883088045788869270642781951920561969209171902172305780208819200466535921763164521231450553489598256704080303530139355086875643413286891376925820184194285313691825478940162732839836566883018951398542924844795329911519871593267736963748212203380228204640270429997915509354521289029091823235005733743921678164129467875930488680991713415500240620228219185279463895308153134863487074213531389743240376215370027425729061251007062183527677339546312250399327804939483480307707234070496449588579259511967203845479088387300087786572700830267523097871278550265181563428854172024487109288759955994251078241311647400379982384545817523789363995070093411677360822974063695490966554706525421428172655592545223084071605642276653329676041809546712955251309916510296939681432212176551895592404614953823912395920135054758990891203182227332938157440107635872015099767289848533410230905046977111644434618010534646208846768353566622618269134461647445984103951611195682719318119910187352777325878923397647314323255500938317144789955204464861336970060908966431856860500408511603944078402773141589341319025008924400762344683982880613925573122077437018154602090256559355473696520736103363241548163351511902218549322520030331491227446472587484500172314302373038408021560570196384126497775192421215629034413446909353118037103151618641151419484224904594824566188445402525734623035839320819619607995193759257458664420887340897778443502166062956037361468248877734449505608827284264604100230672157447156740245212933214631249989305565652338484427016775071371039672694601907171432480420526039650533313952043530867578737844145781952199270630618003029851099106395430587914406378250058636667433278321351866070873483035399077847133353935680082452365735012052819716905465626363817793099324450516718022163797144574664390014040535791325566207546424725107467030414907583960540330351851237038925700027133987039573703447805742588125624767005988991145993104806202559185933525954899650529917885040549305736082961009802367123237428785177030171392812736941009190475103988587574480288514895681226364932115557714695013441397624239290123422634248183354434103491771125871722123822493525999222164257456926845547654903792992078141397237140549265324071120114833360239433114256486647752385311944717905334601179426004388134987488595325092297115146945979008374680918986467803645138800792489963998702218371443572242661123884938608107663493132707772101305648031902892153686521061459729356024207478685198620662311553605182248277357588883815402209868732391183348368271480564398125989496494013674543332071684514893559502965574265721503822336502360745111757868172719972388543030621810049339485013282932298684074940745005654590577601663117929709394882719051482590873712784549369432825761370838817975372408191853772821797659819259472240699262632699415287308397180241282852439338686771416725034311359234477563189651495220453666005261951031734907706335510674837193811007450536883912200080167303404615701399514128036807033061722336111910519824524382259320611958331589072487484618599227070361807830817978466171856808033490098935263797225100486717579979725524042617249463285198953834865938495197849406694139898219650295469395970372257192461351792488605966770683190334438863580000110053853136734812609535929011987118597685716337855375163817791605502529499137152446729998186618775762174682348117396683658735201924391485642144765419345839276662924718331924353449680553218997149897388968101201260418459451071568783112023124918265588913579852189174626523301354446950394972320540480899070738733241452530723806765194287579424386571978096576198685480199468494634006379436869745281561534720545719909825698629949099234866961138285128461970764124665153870483959329554193467028584335692210019521190458788602647943249227789935845241505478922988142491462178733247007288694468172204425692158340873349953803526872318531716300532432069213742629070135436869544722508791401569300214645929769852289065985003905737239930258040685518613540572057363807710059473524757569558946766421716456005935360631214937261768157004187655950238206758717961431796390363491802988037891842151590773473614218493841920037735687006267384930548934986808132713445045182956441863793955631836100102486244011844383555306405718047781338840147516792666561275191546943114810394832205829420039681941716531478686443735618382026313432845491812918133933812269717044064497745081060942016355616770324907356831276447090526992906039068922372956782865809830975718977681542814136995667235832659992722420496093850763478327475298933705757237197537298355253570074696485243101402709771774204061379752304389118451612857216785358814466504233011203570082514911447986892889189962157989323476470436333785040289874828062812477143875622791705193531444409350196195866625613566605781818166305856845323847730990309267625331534452297659236670242218167087744178075743661336424600015051788612097465720262891586037483931808399427716172591105834743914773715782876502043746513917766466061590625270626198722770376441195441477165575230242807753522154497497974295929557225681010540101700103146299899664025652767460159451417713537338375220306469697300291421394871107844076216744627153718029455098398526078160888490409243177441983221759185698004466463409296159609946975406880598598544810437708875549751960560200729408313449749674193834188256255750357830448686919813389327810438777986655557178255948017978762038426969874781650267195178615379901119945140425392605742754835170368162191709715911260830324055958128417647802134442206049927877844354738518412121779564312951676122662263252360482070464765583413180327623205562458967735555575141195828047739507266418774550059575641911226754960690197733752254594723205218482372165484464729673728876369114143871378626259909690058965800668176088565934196703439493529751208148355804074559030649891513425540396726804828633670879849778027842489113653581852341033807778818037103228298422904036532691531516631009558381698166102140167513135470624210637503456815844871109633802099153379269059118676415275057492947425099163966934824178828067383184436909961035035494922414952190287426179972917628433080623767452093201057402832230020809243595855529905075742707269484647594587190617836795563601086012356359312752295961166718272189591902795928293231162482121294665574806572649590955537196276412479257187170619821051012379434468240119567138866504149363901413513094478589389510882605682601055762538058233288094622343550518760186006537097512554872377283755881658464874662920296066268872319008956779794805129170384492195972976893081059069652627964988861731240319005972090424556890486261560888374575592508578928890365144101436476774740527238840586891894943649632959262607078926200818305612438060011033219823871469956265766738290742487206957365582663797083942456409792627965695860972794563692334225166396957724687021345353476068171523243296042115337667826547580759280531444354653910615763977328805741133882779446857240924952435574322567449112851045825119196660494521000717971782248974315432581875897656527941813418650165025790405280379244832207236583842406641406786358180361354178649872375813677256759062723516746039856680371618324817783052198377002046973971073619564018673648781497788958242233529173983339913238140096537096610359491825862097273851369870289494163705604836379536231459813166892087093648784202910704715225562936720281957401542004457637446251217719958132503892118789959608032266951164674060761798086399670003065416127688511343028758383282426738708216475578937989729192837676987597430100042815418645552716262788686558763196313472483211186302605657785743494190180221060785317188881380007381426293116447161995561893984059702088521954257574085792204451788582187860933649700603507089054134464056331147690368865305433661112784207789606177185845771899295261805863717941428281959978941935707996336347063899759546960324326942436964761141900023499019820709999736153029340609843600995127781791210009180203885209162739074944677303197033327050086769768255939743641659658935945138864329862294533447905059283774964601949977407603156938704180061878702684523101674969409018570336523641726270899495875919848329069337371875630991229395366162840335865548782144884039563552127420488214942274209004555886997087630456703840358946981304491498244783412316631934395826222465665903100134100569609737737666956284631788099915354246426714209533033176701812287268987839822178031258545404585157933861064585411037642661664695538272663953934281049046867585467657760973261308823692424309114227879203601178631677482150537879699838929785462565755081654778304234146719711484778016553661121821589108017778580625271325072472509310646347905386749113086166985282227606479216485573350999246805296032700655723624394360852444465130698358848817671251289746855050419941788614129682410447661676733913267240269794989994352785622860930444255361572837334926076857510352694998962114021806749900707548999768194745324511695146911405425676913067664750832650894791357227734036966992573315997563437355516829779207340829032523475134633432301750423753912515445069046945195695389208058984541892982593557666098367331393324274592860687817243831160411727040391070687102907974036916421292972074545886999334479138942741337004781427124414322451561230054212361427054465703865827887228208996864928230146369991037702218943220245266578062732744843789297523620504087164919808558482856596264776844661930037145632531274775569661340902016422568048862554519761424635538126011106868247198801927052064960310189093315814180871176027912767175734330632150084492697546945599730170532907588589652803005007058403818273241461499399590813601039066243717825227627811780512069420224468117126102308388694490451518186941030897880862993634342924668099297447855175272209932996308667752051521898106927334056336434205232040288680481130135420345247987582651165619519671881227474905403093407022355663713988309956260774042878928669612015817470571867167219626897399898480326315003165316976576731563472082442472455947129537122450580308178902972417451982664379893864118642899771404144140502021303613193564070841501385654347683640411297724893585248994024299932715630370890321433469656887858948062956744183357891978446847354896627410098253924532760490997030590161373184212471308386093178874328584668047549669469402514751980141875753636249653523948439434465171015774724009159168092399587397109777172363302239575788625190385291652453681144738563097791612139278225454551909372800642842359616095739174536196988763283830108611297962628927370868560610014730592212028267456198830100842283794337146397555189580709648666334382365345359726132133697761448815326352570831846968474870638538439533074566467154766573407331516810289097228482858373860022466427540916872198658413682811308136281231620437135064728461741226943677665100704359254148691407679744833386980818563327232594082995090106626804314113417792808059049507971022758258123547052920442862375762188709804514334556172457208380763776018718240968497554210694937356452193969171611250002159682726961360515409344734714203000292485700513069885723849596853369972456409341823842679716500173357604197295610276693549425181246987949287841814855616448715203003196479209243385007755702565995709233974266055339146652801776265919901605070577302607960630863033809192806663935532788859937957078486287000513499873700369606888424540461454264232717705096598047674132176247945382333710321861440982104345784381375532781660692324500085103542482899934293418720311842563201173316951073382250763611905394104807633763678803703723644507905308280409321558779646352420509636322030468684580632370839327086217565464814000411931656140293991084102585332489136578718867754850982788641250634450004895345322569993085912679915120319849515760783138965127681532997163408690467467526254500352298926089703177948335847667625009835536725421241840281676844599488974374769098796635863324671064705935873607101492309077614803830369899004165812476764842529668651642326543254248533356556924647321181085438556406114630349900026200667165158621069846405887254002022144414758127523188414781844605549507591598921616960709207234622240991603827811111845394321711609237059688346065792514524410058816018760790283317610918547576395765930107670646650789617191392182695157741199631456990755082763759809284811661005348286346674505336696499449060184316087530484065391148701212969822740840726222249348342894814739256554039776643684260366226759871148767472555699957555895072245935615020780780615013877227581340860318284976713833454202774524874178924709266650298357293750053169579947058560412544380896652799225964753843798132927282503113287102212844387269452562177723057663433593999399897051109563906012888718594104506338266587576291685260522302046062901609663298415877014332142881873903038968920504638306158413919523587668454483989702867562221428533503073064652919491388705232873257485423498731155899310692373761624514457060406419517479252913110106935673029398773666161355790087111911774602826923619438632046745740888482462049233763441044144655157557759713360653909911845940367745148291491696335678201661681269066449642003834401316016025989484073212692202100886042378105966253805097309480685281548566311997491285792448957076566985296931402658058280333149337757370897284647429215057329628604022166605723336618058274930587233272985853199375964001295311923238912523537841924815300397541119050297813487772863402205045998057716424370656266228372671763940704647708202437370869751174432204743538306308562842207948609436562924082446326570788455553497444398930661717447385929123190694241815171466611518975424958079258310152904169538183384614211305461063324302477002398737952893819548964243838420405348914624436528885359523880775889855360967364351958498614641370755329580762452548787244753169702469969577388918649001763069361867904877164508985431164276016971760577856258156169903537766959329527240643908806613554525023109297426344299742652904080014224745358341330691919971766246176469490481980000326370417143297646887187617107810112224777727288145120640118568784838066348941537361145326601995890930453783794995542781873776797892748555405029522520558079312105513236167609843976962117450326579832723205963021295817289407316853181705222618212867196256082373071355427078203563428597288347702144065057897401370157038249116991794413724991619601417432483719081332386863555354897453948257484051616135349245523628932192781028422769900620793253745661002985031033721996460247675629168805336780592708393611406334801335054580700878492467863208224285467370377107413707446611638387337308812820851757022531992579026114360666330913407448272282310938283497626005112672056160915525030856578666926360974060133090447118135191904429666534576550474517606055731235330593291083876509898130587937142722222560418790240975356331941478587184596796998966994073138989269524731162270747824588303863771441340150462620146987451397338736988504637069902874293742859754787908720783490428220265976479089043674791740790568506419737978183245365322845883218311492596613375933205343938678240053811029500907539914342292168336127185469041644028089864956386740619752205826721184266570472565835219369998065473456222024009246263727699268864860860350979452830747610877958481356437554184906050702714966821928847899476988509518050846920834660203268750124203524516194194573436337798953456290851924583261624177281168863778350342284946481100098731327527825147644713458334375500045806171470202929675950734273527549109827676596948479562777546698019154225641178256331967856664681686240027536550049546764647449698405391995206803756680236842817104111339725444540071149026309955479462249284950535439662777256925544551587872605799275996898402794302266552213608387319641412226272348242251808764394547351239402158553993487129643158917284655502117073865132604459811726833914985721757962555386820575533627854864628800023187882345927248537041186363379065421587622421465756616918557690745632988634350396182772244580139306984653598509246226394769489589333537034389233318287002340288479762277706929455927896521195944729907945507511940332326315704050928559881632132594916861765900539782695891851115022841271935140732185415573261022515225255364151843064562605404044967403069200651819414168144295231597734092130498331189163076192597215953897569627898731734191619252291652833088495678890737995928074032671279815055155250346747868620755637007877393806057545501767149025864981255088456977115471174613487836163441476528216672729981752308758444337179946047872159918007796584258145325052389807490888879216848738251908242845266267138097062960403144904735572081931957368289273851513159448136691012686076665981069853518716494806307627784454382464930835123203198246423824230242471717903864343606205908228597278233315985678736050852260176958200456222228963975674429089913173929925964000927171484677777895368820143698293271427126798447928521887020360952439621222342842161047960705927510260756947486504079532732211596384352319053051675616453579428559501817222060098748924638336875467221086570848436584719150433473908105007489749647517060349682242993724507074872511116454298386244146065914770599589650678893895979206557215744630666355828174320382998322864109395677233241867004642795537020910899073355581082424207179812100348896816505293556357927802007328221708437166465187542632321838671573887714841751744301708473413570311233503974951591437556927998731430924286270255333251448557639633501620716837071726344025591279383134431076605512267266927119333788102547352765418912151363797002327470263516405867941540826061038820701451125371110736612580257044613021968852952809125979352421151085982110349213430272272693974129977083854042709855798768411429711958698043527141773328333205495993794167115303560807159688247917402058775694331341964736901327649020284187783320182237049506354404520498522566422901666653979704207007784668966860737876026211891908716457034669891440929821429315578060750653225838403182783451422377038829098946101676616055496583422220088884813639632963176028862791195095396837185237358647423887109092232995178112099013840073964340188674579168929510163716594129890053134729277710936756258162954789482760596301707265440344643167545221674300441320262024663229054946783284612725656419078543901521678288640410853409947905561641245533942928907257298913803532875281932403340549643426861884095427061208288955891053144399146313241282347714651840049311285628105593124620675073288778763471278230414435413062101174912769879065043224017883736530704275679003350814587370003292097352388263355463329444112505989800409762371580457829244696287566786240035963632360407912579621455865481983568793457649828888450879890435394737166447668047850854748035095475621608272304523749466429380739929904138419817658665953941913513679637985349955098098500591630330035457014197978423568912949138149593700214958755654009895383279906460589537298369185015056526457462389379260176453033715220025401731570757913328736397866640875332396338597047211911774861283926197138824532972163609673048298061533392289004561153931332347866522316591504046826295639671126183260034250377250006635201037727841342845890435597445640697919409045488392325788549820625249966535866683616602175365635683143792332076895582163715448164959191114900488721817579764316047759251669413329335799028970205325022423833146833799988943549056781099826857855191660786166886417554151600148253234581979043574204049857349093429308228490755119512028407870671967119785810714187444854701385016218867276640224174254460064363589550097657710135336072155063035707986624694914874511988647281782335200824560221773972452487834208263662699288515421958062102828614408427148197387665570685912170205039719539773841819865441060082714206107953702076250825317128845682957356939563782525674087959709806973686899184107799062303266008832358781260968210467409085438819641889518801733158434040244259377333290756362902170759731477487228511409693465871458198064666431321301049375669692890115876037311734888364292008904337438677116388829449112739258826564227511233092464165264365920402792475793395181545087850108441673885991002358415914204526906421662146932294114932558146364200818204190431278645666646704834569351042166194894239122686826803674483114502085802652864132963925017981533883641152435982210112039106928209779209291529422038828958827075177182999943984688374377036077796812141967841645683096530604602946457694005388496751308368868139824766170020552259329135246320473358315094343612530377007081770931381695024089762408843550524657201405068866551507851649169818755698413472266353039376880297747683122490655105813604668249137789278422046514661505137855939543400172881445182345402753014877880918884970832121484197118095615452803746132214411995282552836190389299412016602995235043253277342594223053374920316927639293506712848577842191542511387444548243957255866714489277871179767540849424219321315659749387606410544541792419852129645462152195500739363038078433071688727409055411638537882283140123609586125220168695015391173906263619461483763887376557195498172203385276507927864715417574368480761875154717578881523136005732910331421912048131611150763960124617214926292166335739225622625096151920582797105188045787398288719235801379288443079602457304979623046479266887992107800766859949768178293737947770386398893757178797500510036877835549970705771407904019756833379031784155333594808836265695250464737264710227506282055331092953582484487404113542049641133724149063057697762888456386645097704981286211440518502691102795129496398826988296816272846032293013550321300474725127226117044244455060134402130470982861098434047145784192640093877619083728724134021489823890152017645184744933475624899485554071660817542805297315577352747636692107143490643310218490838096372305673336849704119144803834814952167986806871734002837372306197366976967971252953114064377332880110157639143043547284885211887528544610399784914307080896809999957501997425972034366566431288840192023923860427788918270412476816289823010818713605160742212644898098631081336359993922768947784793238379908157894579146254007852918168064823759583690355099577976925180253487860477977886080248910230716425179656793008753560219634385214566387326960130215428573756284830291870905880797845020848155024929733872861995377811808446945053417407660230058350213516658281573472045969920583914561290322461501885619056898169349757619377932872384076608798892876988671695357002307294037613213691648944238160530383113195615190446234788928348557162523490423943162799522607258740242731341519292069633469901804914608755409193188826448128479524206989265713569129554122487172173939518207254693554334514503399279734788974480970718509062721706958007255419882512909679373954076625447208059049654940684730867376487806953107116506378949851654474626053232106768463739351962461227733540504476980504735353434360265673599101964290583975088170823662485465620928498907028206124083342366759527348513718042383064067135220501473130022676690437457554673863192659680876076435691471397548186706099816035599289423064258356651484044940160863779554552699968541390360980429132408487335397418377762021704686739110027712893761919761318469237121970285116747274899877377843378043586728670210891685999342677504598908935453878852002261779026684030649484274233283386523543049963327106471654309180084366622873971598583222710397374099807780553783970457590881450998890958864785959507881065735485964235856288001306560981760592873101436504251497502691473656726531029759851140584241321174797810667221688707866637906760844744038086715762041375944749248779483436832948865878538842971783140641819174458083652083282327050643820615639406066944362573380021763840422204593139822479354042563918104163969677133041162375627900894909525008651013766627571931677841616610118833797003163315234508670483539902987481853686434417075700914580790566989496711109034642956493540691899177999945574491745505658565717393377258627438756347912717821954626726499556598581317671023455863697127084748702438587231233846395131426636665260327313815926390321191142187888616049038036130831244814926413080989742503837668129631599235371949238724696696162571155934420778698248469867235698993174493183924432934172023317374079958171094690272545863374107339697852432025236303278448459000167960080965766869811024468801315510984553906464784527634753684762247290796054779467110434333337438973509065779890618469300070922532646514066491763083792904169529811613411157701194756122841051438771879605953888713503848048412284041865480112749929365579504028572748216688088902575226773309380762749335331136426736129438424894944393105552015253581227421767038451756847429197759857174265042595778146777149233101636297284024725573196782374858090592648501014411377017408131765009992195052645313326865887492034361017591789309855300382669584976246735066968361115395104801245094440318554959626766402937387090844888579570336513133578796063067028696855630107867239346901078801135320846241760619183893852990031022409987344532676643102042921568595481707273248121866399867799501267331235009570694767163806761433863816486504335885474139414071612506764175667768103470336264144404450152229008422637608687200228184948549799667755579540360913532902700990562001701329721358850386750599643366107608241211084169446429939061208053454832113934398038593941932671735909010833442122069105878144939942216722978505818962635360599492134020388609326981969490777040436545052638863006099593462499524431713840183234520217450753738243049203244200888946816992568853491199417392295281685359146250847290035447636444055473977638302482336391430667488863344428717954426352974924652101798577644993645791060856527561102467792592193366688612280473477238955551455327402802476801589909002620543407582336744342715616049676415632743664100899220342394820726305359192554141924007650187067223665481979521831608452168277752213039046026527750625614042193187546972622345580554544131895324052489933877874659630068593685695222472568347337516801682710473982526046967332779311538918320217559937726682456798547824620005862936052610353190153634111597410360205541238657310128025259027140785319866879568337311985296439513821127395327466221300872667471584640231579285309023255413058848642809436492484860230010389708564454269114537201941540797613413181419968643182432285205166087553746002689809583911932564126103973572349522999328496807492575598612168371487749508263280358894461167104639955498202394518003333090814941860097477094826347935802952623655796479519367212753389586858949326231585581300356237091391349944127870332515827327898571445340647436189504134891833038311058953571278885393246771953244670772219044453207496520827521150906750049007163521678767472405054470975749130861845983926626146892324415833559844681443787455779389830632135894167096906259138410422590251341765282891109214849685204243129191085666799514226555730807745156642768400937213432079389679629767310738677933328298784076015292212848337163322712649306297655319032662748377138077389704782032162736478857745256074768214275378628733085566079829867950369621287181829514618077596655608939092452362257970136489584835041652533829918459550348571839859170031126184829723263130069288652449950372033432384968393447261839666176431083954867635990509555822615919808124511141143981226702326882187478636420500555045127765001195238391522114245520609989530214165815212872890756306834160332675967986207034433444773524532731137386342839441213182115898552903055090332956395894255399651061181376409083899937741491440714242302481194760787615486720619461640842068466370389928586570761037613016543742104016105785092858403049498608057016525361377812573380697407999745634339280034010253177849888044090964509203621214354947038773737080946929007878949462396750498981712093017566620734237466078847786382067372341400041906475925815079254444824455409493320228770103506274150905582277931566539781057161545378819242864887857390678941392304883814761506557968719696766763240879510162062180848407736018513910386648978551864209606845656107493078671236135131163910940146862860615574136483762674303791991555643058743537746723280047620319504295356485116298049857012505989254117349085396357630926293253548144183421569225546977260170682277075147843608892645147896453135392519749465990231720847601869719867062535656929376738523861228210006073321385470018869025087596695950445697566605627348197915230928447023618322684736160054840483339992686150960929824057230386057784877034508203926664104769548055123940719887405931716410527463758748926908764957342194095409247582664933855939978487077178415653561375937229160502576483336948790489182888555908063126372523374551335767773839562545892123987130977170267251709698855947108081521373735873614069613658807489931324557484273554096768845738190212698063632473893065549008469594185009879929074338401287254838154610836802348497681734147454039842709535230000762689961324816364692368619522766376088633813944111886289019360944689527680243677734473626576768615844151038408872201742753845782253133636343243894387412691359591796743608705972797189467719090993483952678088107548375642665811672028559842177504405078711961553147528192949645097201311384434415747387820102300756583638436174619870863998303295489874315758632632124838780928532063305812939383373985068738916484599106088933298783673066957845330362892427254245483602653581967432218354994712102950876811555201490468331337729873991555863830489712425761160762554346714649970522573767191395819212858471125204507443156447368254416617322350288057648463644000309474703471619956309530969505980885002352134800305177997589185530430618583593562515772744998148014370443412212504812976306731099277092671633101472401399805699914539740298171786079485694596939572139711097855447519350766379872198803930425603967891391983714644696265945211710147708727723229931244490119619756715629401115072369398789823808209985181919704084979769658360564920010994255947568176818863425708579121466070338816920897003858685085911826991100486961163564433510146488372374445776688403808861486110800118921761933704746252353797846177386219784177136997612824275837186523943163774216887292513308232639811216009758355290551873280029237211346362568339871623333246088726700445623454683572795227210618221328302246611007040572854438236820849858005749034181085614044906678992662705095793795711874193603451277923129949380203842506028291515924974815972833903516486156712345717392788418458867937133672699534954695898749788876929412113331763289941241000388787927247646136324984129907169279273812906128104333151108706722552466913690603435301221953470400356322353602580127818545553064128305468710457348950321950504058283442660574884888088496817630492956898021549605306908325643726830911318476684888380735252045070498383932226230337661936151403068787368789726373858790231057457177181706525586791771338323560569580796895951533919225636518931462668567315424064293773542340001633570857422324584261427126211894051850695888304851413370138198265448692367756763405772781380362099077044502584391243038612496405687624468283352933459443737409335268715686011222465880691888311536109374323925511117479057118717531654033110018258425341585768853275426122556278812119140571650538590698938475127710939015954859458126955693103594960699849964766253686994619384799354048303633065918192458904161965346559945536881656138156487719738136673177712352150842045143577320469626563132498120455544425622572534048077537022361297845202648323999343643527026418503706646682376783539691171352299648024605780297630499608914730339688496951109720857003657362643431242607483240213147165804352021969733703337465742684679326254457995070572054922439639158931246926401397834526968920004335339448977685685135420451359744568454661856389958968682302486545335993532162272261318922081086794995079500222731487482353086990845552551191574966015106146362168592391447645698423151614283592790682672745027912591071758508896187164814454619364861552025380479383513551945721158632360028724074123259195913632290764259624490092598680646917740177424053887621797749138657306821989037577243715201264238863426513845160475731596281363254986300959071808812734323375120201838550852949120825959687590668688723521652757448785743636310646568958793024619136296502673808073315945449408996565854102528729587861250924486544757811535168839522835323300421142028436501637224397227138312057352594315926707714991190410958122598279396429206380774816339824966965926253429045636037016327595847976134879283386790026000463973370942526335064001199120913141760499290365653678068442209381129882323189523484502087950635439220211475060433500698184017559748689702202533936769732891256386013724705103905802366114854688409760912712948022094772648176280605867204954037585639085532458788458700482524315127161960252681712401269500432525730062851406327977883295853575521110970787347326263670722718878769214868169762977662011660803535816250880357197228344614328038992988922786768106345244470727248786245175808880334785930462849813747509304881152230647601333508568453576685332314337722020791712157709255401057261079798768513798382142526351884022406758455068335381571888360152939443629899759441080202315667357512888771172972274007907443342535874957303741595636833926460258109246915718017832058876673544338269700750809603290582744714253748025131903244288826327789529166647790425782634988459335562518295105004994299351624823372804323682379485083175476173000520681607121449679399006539734397737089556862945796587977335966704211706155548006822108909231307895296696273012466711161546882043318590582575642118707862919908913577548519028448027213673873299011062555234902653006378347233837130062707252025630810924779697560135063502951011125548881317680225707693150962041884410760398474904824079493884596672398845961015910955712123722328493421916877197815279256524041812833940592862841908437987014267135777794208257995032048686639909557358865126861686911237402519061501349686448523227464843331205147146539338105802874627990974002257592842150563457643142554791542814385300578633707960789156526727407693480752719375379634151891210675517254821770136298995882236169292639067648845411041265110016069690425108891330384034230162227186549998106915047662619900511268831529495821187127921579045063016946037044617191210289559578269477657862739554596266828270274133461572671971576379455076124224190055673118905411131634670107771524050878942211023469851915918785666820152424303973144018215723870574758252043515653266302108957865336860743872059662448242994394550826215531946715925217331841533832209083268374252064298578912417943440107018324441676781398420899490528156683277088940265274968952607820186494342135768977091188956930128720862189167565811951112723648014254309259999604221519958316578785269356100677134419745357920066402332635702180983627936655707556882483137733620195650588137700833864164321671944470155192971281834216144019149497081409247849733417703472012677291172724820867889678133335779077274392656261443187581295566297654972530145945658779133296966702685429825084303658116727172469414625001365692786428911958051888991968806570133679885829268907393740191769658420997454759827425503318597805931470624107973518428514768224950067988005864578209112481026262284818896396184065414984673177755070449457403336889955465388452710559696806872665088365880984127494036649704170780073579122108606528542953047935765857212339553074613941960214433606536973866391348167318663113439536166221834482521021751763301215643542350957212546806995416220581102646255025315508413032395834617621450637445326598302855550385052533262044806994289589770817582368884333672906030674023490064654863354727939306239986551566677788172607168721479194723398225925329114615851436068042890368598761456189388259626196079915222952913403992563849977013203053111844304751745116197619866772082605242171231825127312640221716824265085261417261116061910198423593227723159714076599923791008807214746300519540650238638353400639045174193988153361288957629830486328943011074097120379915666741376101063148884531231712821342840450879485254413144619354596802659976344245485127983294046239482089499061174511994855163619318916005581812358027264501079668161718303696848525204727911200242242018245286073559930962846630918111344603464882455974734793902103163021960271485310390745020901660021169408521241193761459678728659975243915640890843166087647464769011967857746419584018086542440469855205185136346070301398370159315695227677184598368647968889839274577654079390652846173067264158571036340333831998252798171411980487215164838097110566982042673671537078644797680675090726080702056947789867757216244886528288498525450760110870496303848446033485591982715302356923806210157548020168356836919879041610231649496452003321478823163697218778869347039470056140267314680479170323048227265707623130648546043230295604174944333747370901293735583997519650101384753007588187104351282733135699189576538628245216223857014117599094604826723546680872292589795256485117734440431272452187003458041852128779856461503828932964629629779148314488058394347462847017263017791819649601880850352374151574253749705604987362638647201563661203085984079909389958905034233785198664652463472326939028309087368527913053871287834739683404255556829744057814728001482207729350438882486557935442480189029880904072892900748506665064751455611172048125531145067348038190546991432779809692371283681499842141890463668067189980274795400375987488396760399680810614521829911822308813251230307435323029294859928010776047612637351644228300188031397286994377456267468011825655284251002050324845560178768583115351845073286048282432671622036062155935913671529206433702784157313343409246112193924536110299390156023826178749621900793490201949455555885086028955009817955524720683354775845696788350374003174757067317469037348712968168534737749652982457896851307593076238864957549254684085327357225622221515166483538536151551458879734146838982784136707098458213426308553668236068585584471625862823553409216863067546128196010316954272201873505679059531385070803616147354735588452942314277805386636750518693706999356397187785934498447283721786416884986830841483206792051982854595139903043982576733147147754213971614507420950131978851015909293570594659025800939065140618273235733700292995462630567715377925084577548508920823000459176198126516486335297344329999268778643297929224667915324710461258175918099459841331081092759944432850340263094353662854796178919572686806795720586316234738033165809733697703751621062228207392691888686353825201713110109988404064508556256795874773925974848759318003550940802978433867901536486600269234466367255835486056064837551003238625323449558785458704232824584999652906713683380916882169586126855351063221621553521931201900265648585172792612036709689235899483273728912392214045637831470337241107932039698220652761275659048624135498002864322118929689655653619943502650610190125257078875716655526985817085772113697875637460774365828990084964388921856598899636278785096348247592936296432955403813310508658628290539050205185766618908209032611796215094585408229750379211616674518961045164676455887155700829010167345563755638161730426753309448168698679322502516223691019577657205906359778177846573449744106104224307418878160460355933646436063377533065406879522052523868713616916580405302455087979276851297094344328440421519114537036917356750388940443430215774994484114328516388048317056215539660220492928057472998389064567560598732168650688919879752120901167434873996796105004624984615059725171224584282284959481774667071484237970489467406510309388816351545511111639479985873506317104299910649161522630461987854569925106589347745240570954621249383231211316925585776261851503257799864342848944741657332581676581061342971354002755467836056789018295444983185503115662924793375415936912368980967788962842503075716819606990210309078368026221985754066729056710522546316651081618528302514679819854308327753742182927491333909481448542367780081965386714982644749760801697874226346309701068440727803490907003696558109681833532262933195919104805838633457867241224356902976874463199019587825557346133431558536904725276118623410799736074359474127971722519620644179646065136910488707832958497330132965108316664087633738790448654657301006109828562274682843565171467338718464116541543549906930785892936922026779718201280363943574150388099692600180936782098622525163755553397819624739937500256510950928068886232864328559311758018395169936032116409235430955697020137944515251144528265508325407374616227562999998423884282574050515446967843953867829251928514654073187192889596008785617764863815049648593842779551606545156201864378811863728435615317474032271749510951509575051316365553481522334899833199639672062108979934391671658022406221119639868720954899335669179467325636273960995559205149701543426045302142587551253793884582274638602945336529225471892708669396834688180191377999340785834910405530646020047487132471832240487177875989447610126862628511758698124567849298317774134243284944419084661306005685275260803535568249442948477783492571035030364693972212010461079903796357563701869967446246253295339205466897370533652157114080986981784030953136134981050920482650164562522648737663269507398801440523875607657131366379215754252215657330598833096980852562883399022004161345501184851839913339854717771869583273833483593475328000678491985936209763767014081737718534186392938883859167325945347015341158756966062709421044634508524334831660368447270882810798112452131959903876358288422632102362663069132443825871154909022998335174558946526928432524656851393977798201631363832429424849094331865817258894323082610209114432742102618783331450495227331684761981720362134346344310049334613684117580390109959248153806058385969655289008297062877156211757480928821145011370777414523533229395719969732157767582922173256669340297236757600453383260050690332902386220411933079672677208409297132823698598813500238128970270505525876060744999437089430414164690373072289722994696248374125742940826620716646883715284099710135123871699379443803562818210949602440757657456573005332659301693621308747291258756067172657577062470824492361096055816756093832027305027820635900495377872310002991499169120424687707868610851461081356136905341771036484901255193435132558583981455579953404035994929222013874390928150033668508143616078719071269770530782660427020807020508414669124742768867080800292756432738979583932778054715116373337336981843585264676228758599815469628176395056094290512603899501436279176232979311484863176956521754570195194650070543655978272957992821805499302822803322438598821027480437018753312721387129009423191707197946282467179860772640419058871162457930212134853406467152763535108537063134652608639446516551904995955027330778867707510158837761293881111380000573748303204502195926846372556802522882847119273732816303749084524894868163585691654556673604696604338534255083626549699935115321386303566930984198496901596834842573067309978876378260212289476132485685021959321389779352785210005918773384170006155781419165613332886619492167494912053740029249314235282004451635797592073043127042685246063515506968158548481951956783250978585711649094322823256137437681524157437219722408108444369763093590062672561141834749956446498794333779040484415152525484598950716491443663799708955583496376138864644588822180337731470496939352537107640808835252693760341658171265184671911308852728013229955674651489477305483943824200144416493183830525067474681949424883785969495963935501565317762239973399918921808846036927947275442944822533293402321927942458875882844382135990447706843148386884636994285930481493231676210647031198068702560708338559933547819788999469210895493111213348867011335540906828281255232025716891859254557118861211903759214649300426881238266928945662716631313694516956341087989376514905033369656978536688394463206080308301863180390498665598784822234792618302870321854202966621965596982245945459933480164144766677784587735051072750495596685959977297218366568782436131897366591489121270347545170499118387313485370433665489298352754340856249794273156855914051524085616754829259969358161533680480951236245303811698255654379901956734015168408346202344610860043846962792808467540388889035334776466014564888438762444798336686320782272589133896649980270356878936527370340768573365054803079965414679015594648487307096603177961347252819136639939925343939326806864772514874203632861573503038268536389312164706507139094388602092278419424400802706832303729782503181417927789461579178744745231756635625165422001823025936903944141946250084811154131866688256221436591411801706046577575374923198436096527313723208496195489039659309843392233788384797146749557344587273299062367189269774052625575940179056630397573201222972036569224985544675213191744041165857088344187661846789444002283942970856319162258320165714500379661684152091885711864247348324036457959889253584919267673054879215487099758933124001678805641743308875357965495781849225048594743602792598731603295992451410585250608645496088877858158641904741389300288312496140130520335157531398628897031967676199021586171175295476129551563598811213613994766435623230218843046209074361463518327478506599868329768439006843863069135938165458751603762761912327748316595039940209387947497393066398005386506097363746000860941984501656106647306157516687355068158541538003178444859040573802159965280370535360259164917122016754941389291604493096603304197551689655673032073891228278173480178195522030281488363361729474067507154887109651936734610244685846542472165576702078676841180382788563012729371286185384443097636955162385207110705615836293861854719478116998147288510155295678702867758372089050581848794934721623032664322913030880796576029417759235497292391043286216672894511635279156269236576743761320080897654456641855520002556516045581982783825956378477640485034458922245707941799709745688098880904965860947522949493801031653635207809818595794412195914310030873759951619072271192977522633075697496894220684544164169986619972584446154328591298039296590507841306588396613874175531164572352061065627242172970565194903972196145947034277673674410462006714748815823451943072816688013304242924487158988309371562553322226722157944822651756719459358944800742426266177612095303779762579738248787111816433557770624584776204174653938274409065340256218445986591701829496452266994907917109830772853464775948311714946272854305932848027241678630297376167718016936559795804396932476736491401268309282811007981143542772095606026810075510610584671067902466838860204122982727416486780953015284482307247540753656370760487762813998005140157105781505830624772428977198638234385391200699252400315968171516526449819290892869325165656671518374368184786749700330383056690928370100437740469619437460371290886789043267561375028347906209706048288048651063684281036430389153446973803505184931264395599899515973705829669396147441003495426794576797856525884604404374868210865195685320628600005464896484834344451407721783045381846416173635886787364631977548265682903520724991030909670673325136183046200777206490845987486862255825788404332213731345964669188095113958188607505128035210382455491703403482985085484705450730438948794028711745072089674358337952231773987090454749830929702896389334068562716738427602531192179507593993151420351065933740140018927148764055309772888540521784188164003047717057364393813157913628864742298160086480856257038960673466351035174397773689178024829232724277897762163341404877341450465748638302655596596042941015576102366380546087614591146534891495672923022368263394304884557205358505616650207740843389236884684273922881782557104721878973452517578487166969240879883776714073806292061974760738195776908021194264008567682077224644647106949677855260274446249378439592063038145408485047434660852506683670789861185455789849021259168126007179705390477662668462545629281068563304373073854935674043871148691665060854618312365337701707308786863589774610733794118559450992075619275838509196802108948444116478711163768624665867755445151117632791945823394113252322904057173238387643860950536617262902074054476175976588712458534043173435086753318412760742805867916199932185324978000640045519205056448685752279629300528604846612945004909219444674950224937444212560993685506750093253167950698828285133568994427021300251441962062234928992773191219763760344826655039097684425903874324307574676340706489840677929651202183120551859678785155072061274766775587011645209903130010185834532572137596986505723586663843411475708297659862256585899935013059045136583063138001837057654631469312900453175958146283806004825073173128649943020801121594808763258789176009231899928098255440273280185186656413380407562414993223723753499985063584474869680500020501169922329706627658995853308624301581114323713046868915774341443961440271832172509303132388478028369007581587971503922341027866572700989384622477350011535682142010793972943247768486700565146058271942908652474354138984783865819779020378672386602004986907855672615115142038153654479819256149252307369262801290232264286063831665417004564590297808087216452313515126079328606246998769047984571515551724452050808809236727423106764012387499939010659019043371104413206474662030751300331343752883512568301631341767732901280267642231355766929360067879220195950140727058013998125199043429507072439291159392259405056378062399235110753238249958674265501947580970013025123651451772348587642352910580745818518969987445295306781158294381172400135483065330622888124682882470435574374685883171109602912218051606491719840736779173177560057483155361905180904292551331808220518969304132129826880424860642071915606780140579935427036234154919333907673029247499642753992825652163438158798833911992573620022747217026097932729953958644726549016947365157982093973889539082833181682892976370535927726110364503986343091376659843827617799180040667764586746726365002344131296827530275863126884320670811506827317856227423015014815419788926382093404720705266622635477514921385278592975952698426620204190611628260207108876513688932169937940218417564689730205073127880337530393954304448485897583448346768736338505706109190891419823767384565402590701332618617986717743513355895988218462703262842282888546244002746714481567895832314775834274194812265836092953662136626243950690047711499446658513001638180884694412221490000985977264688032171817722413495288970987206779817026092093409802563237854404080800934722432828969305472121251738916062968760118921878130672702277619840896075049551450058010735112990019852707349284356387207299379532321501446192447929526039410156832987906872012874045480272875270712506898569295290013478510568332380373224978857688388749038435585676891974729479909433465216542522761039943511926887804380797535505389922711383046677031061753796266520274339961199153167603368743689219446967521532290128780898305955149020280286089147653530498255200278645895383892503040039497427114209897241624557905998276337960081415535186086900027676485712201119459731750982636917483765425304420269382630960480477933733629052502080144474888486884990368675358369697069839942480383992815547178335851242382530923374014031127202750713618648324075672026542915667529672246520706547255105512723985456670673604435010081951967421652039922892518974139133643038283954822213059572887957960294258926258189433345468169767228860502471252217669341562052803964560380685056508926772205308356718604446429891133726756532948254349369037354067827329708745335527494089992150078090940468918312906757407609721900954956337568256829647172185932735521955063831447995878322353551728479190391673356986962408832222256568825736031384954179034881712654980685200452328637874274503827360385155386934357847560528418983151334465559125384589722149849254019440988557978249736816708002180006094991908797895716256764290767789505578933491649485726470528054894618281581091865933659504308483199933925463935259280098124209373273265884592368048923819620761822671411111233220956001113987745497741265005346349424295386749238261786225551866096423827011230202550339168712600482353602229285892152926410726703989730722788742215745144304380853065039868132960126681313523815786981936912349321512355020629181432339662714119533701163907400231256446151125040691890306086511146662373349411953030633932314874085564115125094135566951803356698663937544009941636019223172863202701878648519647760802675772837128056255901972559444085810489540014307305186719125079813450968510598285709189256763795979435860514131106498246262104480576099612466113047248217323963348929382096074747578194217922969915659324822516981583350773761329061017859898567697478833222524840735820601741565757775584427940962676113736546592217926863192016969923072053157950742366580614827880606619551103265931344010506399056320147629038514526388062506531883269542079663087720329059971933389233785823208607798011044593056098966023887054410091646758184379599878428431544947491013357442433814120547998130782093435215622083483543943924795108492661702094754341519274302529414583996057470449936073286394567576789847767872359729516781020824236893437946516667985333467100703992094864380930083717896991037301392516381790425643478272457657912593957061890799690180641965198763797819657038177821617665906390124326763747566519282430540606850358548172267931798546152285372561060912144123320006146167279523389583272582386871951369021548565359160171618198168125105101601987639121755299558425661108577507585642412706635029502157949532432734473053298485477096695902991085670619092340507998260671961070508203421007328772713681301156516457734087337861878106383684360074038523294767892232470148672339922668861572769618035967278554448710275169898492300673491526198274373392084074537608580473820201620615373378630822961106751410598006778077773074578132230638594967405029793267617262326354993314098026311865483287653071559348149774237628721082979087950595238243278390653432125801791459652049292399132428275487763828108202968211130535544601214645005856608556613511699506235895340621234944473432033973810878586157439784581252879978540944317246473236417332646686586251459087415917810965521981083116628120340588698224783422031982100152461230660091371260462557238492544867396071797113244392518247825186953688784377353763001472731230921199855876287680428127477875507326641821751127409265587478360347425210745580706025133321192049108668689597947760797651397344380690248908379322489301147028241561398408891816433869221847133492243731664609528742148915491328546164562612400864946557397238746130811073929921729203408984154577537974335871669414664491042320777750857626433614359525748595458923862412352470661414949250355252409913622392689120732905022341571550474595739578666540307438542757518912084353371817252989963679946448027043795990428256213809719103084100398584316181492724069935460908950162482242414532768314573401537898479233127459263981407409868583786370460609506685818601621512153002115448351812385341097197982118582960997723567439697140482614120278789169612279009040890588056608208564464207003517108143536207223415010140517974034556222956984283506646539851426716648289451086226044072896113411570646383234466271148303269238492266252571826095339670638296925830462723553659505530301320474546693163024895167217261737207428737844835328485363532882654276911770643872964223303144757207771490896185558192520348951646743195128787858336670027364910578134859068835060334212852963349621661089128271829204920844382345356710232895787752327565369953692172388407956183678643731727669626550874854996955854119089479323559914537253279328885295736770097982722315564904276294063028602290617536052457793013627766633114446910366137174984374017873404684725996042433705787848815377311350472188692492132170322269238396450716504813448332848740131889216873427149720142317887395727213991225632819702782799871260120112340453848126739120664126885820028790068779061460127153302423108749302315838935815992667373480092755166564989600734274374133463709711592908907539968266017929649625785707455276747414707277153137805944640227050703820129487756615273965682540185489763506687245042362293795040697515524398473286781217211555595118657696042172235668366796629434522357730063789126478985972100472767426305525664486655358022434640660689107085463708763327220469070513007091980567848001896885805876619892836743833514263229834751779365554152538568429286891467025386310003506275949201684092460880160672072169662924369620474410874248520913415583829500943348666283005062889701882921001014068811937878632895945048925730431836038500383974789376953680799315510662362902004229666201472471807678449164067412055387215963072205684758478902511782631937072910391173381778825177544307203429889575445762750042715268436297241211969120244895537818875251268608288718276080782468264530826669094862110160191398623129284041406801458469990379285039106013155067093570867607421019985144758846465375793386663836930651870953951783423195838338289198049037847445233306197973379054223700284274152387945472231430068103918038756179767024323616242182331478152716534943043508301878324291898646760374723917648435153893063128251999863796014476184330689278002081579360583909548740594515793433876551811049717743126692756509932477346437912234301287288755004079505338804046519950872150912988122863086031085118146795538908509427601902851269900967225867302761383140514589981207980276675781684850408967757953740922257104317201658962034587221600296638989119983466114369191358935517324417732089222145181152417728139718731683628919732665338228228124674400329475215122754793997231672654568917821708388149462651653430060254120843418693539998591969201046574423622647099228817067763190384643862872858800428725220771961300389796628819212214955751125153908132656503118516864112939424603312007816016087883046462911605304950705498118394483265834362743311206582137901296139204997204428996568800987681083541444710199700778324669217499261971298024217611040246083579986982034085386215998493145990339655220335179855225298054455831745128303826583746519872863599744184573216474386598937355649398639446885067512019883469637228130239799082571111222058538709485979288568201106475641358858955765318656126785160562421198326431317598822816463771564520971342985783654659696841408470410011218599648703433779603189762965926921374136487475973174356668574743314581168370569177474946605555190992904341418935058979298356487576416458581303485664787225780913396941928409108200493907439257003885440974982952163070179635645923877294272320573336739721276050300786451566553421210972880047981273933138965542442263809522945721484120319534881472942985419496362852687087549187897783686232925211282684949968840956876901850588866101637950515312502701537173956251323433487415711159071186079720971948118883446992001525356726848800475769956652971268933801786879993744904205494034529507349530600814015415491754530591497548832155478675872531418247284762821269660483628833701177505358634985451981767484583223437897384081243506284878882214693317575128534217800094112459634336389942830393463411232957331015518193879781854341334937106280427570591115907066535129461664570432016394688343948426447529860369125651124352568546877286311954215189644123998916453319282829340509200613411364344433088191841413898392918224122225458221007273014997326168134861536733935875463008504469106872352979281520911536482813715490070589178034173166588037708048793745461650396771629056425723039473184030264188885799125206172272039445736704164457243435613049100316050732332634241464862095723339998508469244172790941376685078175771248945761709584762430599785494126492137199940779907135297928205173388228427401954175189280136398631785158301856107651023538938633362347729981020922903701248555855773958606748706982135039122926429586518383558228934251948560950444727037718462704593237884859061516319286716799584484145432597551738595189586132868314020334492498346244742104400029893180345056931058669152472641131563522155241688648271455375451390029742701782303221791636587687732512503614010547664274149997834651066380856295440794652544740964441955400949220598926656433339406004197220978072231774397053491540220532953253107806474413020638798213248299145833651803709307791324048086419320284376075844995014576834446587473148222309360081295908346824526100627811127762070597212283715296421977272484121073211102653284441000141745020653999902972044840971233830806580537427504837714669817835577760372910873075275545269187562023696021841078335704846682790878271384077910703073203736449087422510516739382889749483853385201281518433199547091881428189255120100501139191592277352068705513859157481401068764265227160464103966501137853213733591637275466432869362584400734394160687465303159041097250698568225629034407085102053424252148225609231503924705727683634007456693675884149580547859919079708328202412222964438863464682088246011544588396563615633057222671448424707655820202290354032730205599688944437259529172115234740628761711460065500447561895873231408397572547768249736095373769500123064454231607037521223134847425737006770040776457190226438618154310078039954426283691759884509054427303230891202112325006175829982217138968205632460869150401205073039882828929838721242190640696237498598757531506886302385151498321952798784389241016666580224072484663733328121190067817396827939261367840835858541377850664264322965870910359614495414928982846890768724729041021354706178168992536880029304975811268525917755683195979670121783443114883067431232824654335901887218009116785647482041360885998925853195565234013040106494985863083120730378309576090607902151392267828955933838666533208667064000494267181600249426999723455116049646876075623441640509707643372959048067410954405691078313157875344549586664648499279857967230895150867291368609878440828068390130727463809615648215367608909033046838068902927344938868814308441843328034604189311719667400555641557605699682382412539938644940587283116925940473868113354453059126800318218809720609617477917789441961890462650631943233682387104567511135525000942077912462361925076128311064499546571145849619889935711807333736074751508945884060267811002453526090414909538038360448586866921272585008585854932431723182395608593603758694738114780784568186186554283931147204770605478478431237257381799566133716996415938186265079398849364153886686826176486843558140191728878396208246728217411386014772578155506407698818981641099229789459263296595586189295482044751303155563727975015723192189363076223839080124538704764931351391822348962674354213563060737364347167782261612646162445538314934590210594053897461112012304544296130596642238437853526141992581965417393071019894105390200342280377595585982416982055446957909415297787290740225355429764552369092303991537444859663962149796066346166833532121399371907650845411570975059136879549241300743328469843452668925025678978200192014825003465884969510675747109128327369344595719840481853069758685948760103779358769100699309748870019979926848639077388641618590601953690198074582585752467936656828448219718010452040593523729621757105016898283749670272639820066023141694414646920316559459437586050487428208477579849970343935409340083280576755352770293409959785268321636129770931077835060400854636150733785429652296212433953693763038814038699367226332381234218287382966792925776032518991625724270981103372017781603354184461344184999286320365953131406496263035182063616369740792761430849260219293868960839646853829322387096887363235060662274754557916595132135160667702346909117411111346483491462096809445827638520543996192089637341066240205126297072076517567534578977034268674346021163918438799250833988062464244438523714106843810197199968467714596145710462318644463744742133434861869588604527479072999615996669701305755134622574784494738453375122666506534468088926675090371670306784007490872887321344772031660479941735760781898624857919876983620955731953875230123320733112264147099036228206664321626989262920163093664393227999551439356153358099601570096577429322953141157746144739189669326126319356577304552417864948135558056736308567912820383305231063397637734090611279876078522702954910890008321191150031743951632006750535523331276323320764890035725169807796326633767360678767973657199587626351888607070827023728070381396899867821271150404156131531629007188212935859769584924513567197168320015242180128232958716569437403731014956791446200347460251281605049635205846549312577183226978558958541505657683331826853785901800212473646554075391880522349109499789981657036183720236956658567116177890535842145136629566623378810334635348132336934231933493891018902610858627419368876673477713948560693046338460197157704711786770943955290050036695979157324065016720263684576945711910532534884584398803580396874619855082792434875887587750354717124318637634936586899782821626369576287718229806947991721192599754171357100355522881244393308867385152252433609987818424319161493166460892545450854054839943920183265940112484380881065136788945111865690300870696915978208741373053120823008794592236229473885034751629863471015551991009840028591212172796484929142972083312134070890849781716229336323567614934112194973823493836369159673254550748071457546379118173420480954359078805708973025513307085981744672718399396645162154941959890447745035611511956807326771799772474796324990395493312528262358557440699478670581937556640214925201947197294016144062947343702546215924672822022941905752194805518989306976904041806121085615915059636633896423556460148217131422063104201538603797863680366269915139306674636750293933449710175789368719590988388096913026317185133186599362569148818744327870638956169043416892176373858510450913583633615576214619349322766277907839618171252767109823168118002649042864736420355422270741269377864656106489754241868480740135439123500138844381999857193862419545457014175229932672596231715844547441622258849674962526200939732876885208365919907203856287776105720325177239293389917750991867854858332365694465618605690029591118393152298808695259849169960402526007594765779760761277763811845532114408997059583844117098952699907487683457121499320753136377973156014599419041685856214804925317787663031022724350844641041448517066655001191103109576514688541999177495855593317717837181074926002859347351862927409014995981291617640146385834274830556423813697359555326669810290628958214313091283770151895944843380460234906881261410390362790723023458540318866849854419069987029549389694019795953708847804832013046936703028716615487163012287625585868111482587771669858676737944579286209110768352802731363882791641226030343997643740102073138206487027695388727834687327132700877391026431252194823366192096134181052301127299449305206405202399763031957623956921489097833043711258167303691024981024545241918418459642525004908895685702817004788555550112566989188853262285438079002368522256663602347496254695620164528581490826827590831716044718484955728260424789729632038679997295779316965910881395238452348238749335484905650806300363834455880068999349217024947942977383283928018149388791826628182222112309137319188833168384426996911731174577360583456110328404259935233376912073918644449294997610827775296348742098716467651767892732339453162931918700795577762770830628584628310839452492581598724296923929498395983869370924613876990543814370481986832789445822009001690243296047890066259758727579994984828366156244054638224765853952686635284436167682777123250834977405396927381606803784062590106796920204024200004187044906717359670318381777799386865077651813101229947570567187152791887268593900451049497184960733848445863437756215622896124676152963267240980630532748513426504444507924887756521884201079055368610661953481843970810553286739417426867052301575368526391378153770420913923383340231420016101003220684223637319361943654641587436765528880719324144086817652197380129009654293231949178140374062260400399791818509380653444679155746915221933593284568913178065388182665954451592396845780649200248404841371679415211933011586171655940621938272858869752224211603232252032502759811199713272928627619448942748452670954196384430159701666400227342497978916225282368502459461480666789161993056072464089822512821729162253044705029240582562655854634886372641724596723944684362957794734099071628046109933162121843846129451419483749506713719944512078099260366131838360836285090308066423319283761430475686058790172272128630864500005931983470672334962311499600470310851685526241952150106591562432617998135646755843667666334423649664540993897447982536214688788956378024758959480190821028602521840970691614268124187168778611992913101150367390925700505141033627342771474468563150013558018066610816125265969118399962573441750363771121759281695945114012429310228808548850965831611143044816655455765234165846799712841291678930307504338049309862439951020744519752572441283443823527613116031744315151260241450320020697120474866011525027669226272482745832997105021238773892048526801143159187970717746248588012133011782701413357627662465386538029692597592502314488877375027393419002195291303885576175917522036483324602766553166523828414888661209629822682474463276579355018346832886759952184328971343136299393627801165114706099942878293760700657921061118758507859407012651375197465029862896206383502791709999750916142254760687939935774790771482203880311898523906850639314469793720481154426081166939672561793881845912725616079013928032059483667677050874075674601623825508527883494714158390541480274788063215383702569055359578143609020065253905654193396295024198343240119057638452797002736071062261882673375529885527081907562904983208636584809633286479128025980740870696622533426589443955743462723282565462663623301210767188698249838023461278819461109404739435801781272308584096593633834965145025944962664283764658359431441733315339688148593056230348954017430327195554747732341723221580546891676090551329497075111681941900798987543677109310994339148631767001873194675340210707186248788701219744559482022914718124109585979491307435067803480914013344307618114791979162120031882398881015229454503939087404122280514152719886075165633451060011741376038287717619816625542272301522137408418075839173727014704920404916727840060232400348507365329883170075494406203371871456816780673775086171087854238103417733411566648792144639046984666039789801606441864587312899082982080173448158905212880424838597802322181238684341360454218642616612496978432477233493547709833084519528075465092221225110405023996185193944649455762756418896191649804657898531343178034491225114292041561372769743311300323561733207039299907299579059336314252090202862967503481816454313521039151869304004604049047030569958169524124522296055340398967682736713699499515390424779785225633305275658438428803278677952715365921827108092811025475428596250963747948655662332302417085724948962678709724457393913721851174178574504383491669987243790585576659964630988134235008331475970694580317822756784116090624374578086508229695683334611043031458629681832945489655609528650923092654967475513031928089302311401674177223823826998897779729939206027198902211667105491507189984589710210609043562503851289901372060149873182737168357227417098450042883596466739004787474919548455312345804920313213538100389702881135785114480798219979739025985682368515493350538847215788556650050467801515358835661804164279683630501611139861583037023526957014550612608410628783515318338385055532209504610384531230736993876945893875845551289423533763351340730139967114077175223370815777171341259064244629706439596128145820781833884793489574524855658113453454638904451485396563435538765468698917913926796671195396403167650815592725798898099349021326327349753223980271363917854829862541972811197124398203909143165786031188972692960885808086610575590628692422221811396375153273173941092906567316827832567231973099648124627814259171381770047747318236492157342160073463065020739960310514706176368184697731679047904682051968138253486517067609795423903310500406682417288224918347243052910868255990052074263469223309002871478646715399013744008231736981969046188225692266528937150421858132486351989000529166422082220593079789576377792526220618928491836859661323119226502391521967165628868431906368943537209995238827078203056107466493644877270620301974928784443621640824647349458614800974802048991111433876039360532615224070850788075457946042141175640469896342189996570223530954133859721404121067338016577067141132008089284793470313476551297914278336951540430200954099950896934037557018633653550120155653867689835439320551094481552227134316720886991254604586267071524387739410362139015458512349930220646288828197003305264711604603161372966157004858464903942269595019069982424630318095185590179130923310044068397279770578383765133536585544553242563233736257496618348379057379122507859722257564245972411780303255810622066195088174099892261550870913034684939684464201303084801886293251269977110135119758218543815404941583390045184293769144388169604331485116220074511031497615968894022347763064077332943464174270157857411118303102563816490350678336232187663839580482240482888846011548001199120249516630628094592666247121503716094482610339186976020651240238104583779363936105473425129715164538811887157324340088503423065136695458200776035065184147012168275219867580988803608958755618068958731480903142189405574293187017832351305009506608403134645509862979415830028179367454826647047274733440041625985138080497200265711707816368986350773820474733551673202339763073368436220335288423671689864226056695547053567171391080091200902990401818271286867154528294823281116190046875292769825663951838198476528335299158829744542751739355442188549649153905693951535232094458437575502709654724242293985316369771476771605611985723985770387422192236507030190288188725725364232553241596817457778730694006029842119754608312187437163898272897750963830425922213378824637182075567960894533802589037028990082374910666555977854802462451515727696960995499208214126103116374693695471663703359460580750613827833687168458341144816685850468434429624404576694243800863215524717884048779341676159731639687963531558729156247425049113694369354470916978527715336380013569592051080433280697675374649020552143291726409162236455604797668697625304682945754520621431125030684140054626103309683064390264001510862233957816613517867212903028307894797401832464350905846965522164502721871271466525417625654641864878132763970285402845995975826457133838932023424794658213537292568078585002101797277419598482793167557898780846765169905179563156284126676525487578165091138761835407677219905280534599691065711393404650308253413374335978617321610325567733816513479226123817395997577479869742251598884984564105908410701363910670362061201841885660649789806747022632658902723883942285554107543109841622991401058531452532466920756279687081386818436282014400317610434613946078289552662173361698779393193762143620349049101354975971074441254897590851350853074620728075304990651455482433733491338207243030460618903421550764188081876421651915804867718190880660196370786254085095047239136513049470755509782063692201664126374804674478402595180418569970423426179833250512620283015947978270843090894218272194455721635622247262722137062240926862335690824211091717497585938079521661986394595153957953396641021514008052456602763596477257394098736138910378315233117751247937641102381555959820953916048489311762686281620276901820815624260782274239656053170425072058834762341066093106285483007275039465000135751626054539449297078145436397321022153608461844016540072037138110087379838519872796890288386159609542459986492488499075264793651963766585427045302600105679574178104113746066612883847650427947135336001310248594066489123260763300502675367722845343940207545832276881747432156184239520255436443745109629778203110716321435402581276301112513179923363525592389006041001655287006826946306954495956849918962863053397853076765057825448012811036216979823029743487195807235269103517999150274800725158975172805741239958655880700199576695632393050958402352701613981763600342792810451525974712453678729647676657760275936309157338652204192748017268919180356914609114261228012370362828756540231704824132333866006931720110148452059078472780064521942214978312655723231927380897992036384373752123456932836083836271072629371816338553534094192118354782344177984890002035846631187546771260590498986492391758897764212646441430691377964052750953775178768894833743080965524067562064864225754799152064028001511717616889734396354934183619755634824077345135157365272020683659875461360789059471216859811925126637261725875456591458368252543116754442547065442881031677010528120441444257936171521088811187495024318938191527573940282721509553390768227943038758586458068747000497169877525349821532325827853883352835458132001728291982423673563603391081905454529793468354318925907380042511939659893201521656591005216144466199162198488763639085925586475809816042063389884412102698564416103357345290917112793811373495775960618600294669363921368499321894665607442680666184014062146636602694156060958220538165262158493219752316984870358788408022619188353057749867408129834428124507490156707873748324374144321685565869205517568497600123196779559401103411329720107276465708580594930729143062915553776569844020063670962400157783403309930474915068941982395429367818294071753480090591582202497725556540034627924655281362399024400194250603094914755987688584402716133546184592471138586808924483552281138142224410494613098385423380197158086247537398194777904921492823940648541676021515024172174611966524211135720656615241128129251215903347432053287276389475968831864732874323873383460347261130054595664966694722943956327617921321574019290700320388541485344101490650927778544838216877147517459544157348330407621409781286474506430085726650054843441425883936810938402954772822857226128529630216510051357068466270036879907497782856952648902981880500452910974387534553795618676272502222777633322948249800843598175720201348316923717302925947531194657208678439496123499007476906231005401851183367003439044554116879001471514791324672983711537310051501521337433139211338369902399822687606181410643624689783637058230416936278990376786408318165261303284252681669840348433877976240056219902277055120653725879367380003697093180996944273963212884061335887863812096416354080544714605739999431784159902300723707609690323456033187018490213137433820760131117765729887840895432747470053159477904793019965378904283346587930076836293615013073507396054326981900087495551435442488309599111679070185547921448406273094383799393966134159673156265343256746289349401108300747235488153667844612541682560809442896728057501122669053017895595423344115389467642757085478786018737254322677524479678365906028816432980598874869886592110145950442452263406174748583706634220270172639674679644960402479043843064004239667417790300276668800010976032660895501461927744324682186388369646333747919384194342744934505832625552935716904212516397575331327104578533641972953142052796658412720999762301933794521034100973298620613338109920872104855748163260561257406133936777255203878053860161273660023899362950041428225247441071282855578823032336156555529716113945920804817453995418537128252037004078861634830391319227639267491729167762292981112137796549658992468505327343763863715315187371048078811654393507057965880947429811248610765633414442273286119611311610580688067905310587918616870391431760474999110751906387903267634663167584852467191550687149512214759760632103264593705960847468325147684297146375425194313988074188851740492095234541172234181443995661381157630384291834409172312697646217150981793211037109340992642151762630459579131596056570597219075430413267779184905360629269543710265798046831629808275777797644616239150602689742378794294014825447910660983691395448598453098109200607376444523417513767768689203834516352697951782960228877845620075008719469001429440418167067486842540870848200959034075507936218408004608493894890241524015384612188492705367672813773180889813670258584140961685004519680074279756123284385827788724548057164943786476052680204388639556294107627827997171535136618820154355505578483873138498983103920264587617174665175797063482120898162252786128194429329124077594423743619743959207337523305444289107314370597639489729747307728464999954173903284640608561467282881859960108097813805933893249818917730134190168647663662257130390330180850781022447163040346123167632857558403436485431767764874520265543338677024392096574527657621306995215548248708226770701991372735957003672441391699104267939360866858530547534558574426019963679035490881698254861993941825497608448685568279961718664099564145158974669210152176017374049589882394234887376582736333625162931079006531804906747237407786814288096819683239768633165420487854323774006421146919026370185301550880677244513925989533939956480568089735394651254913107596559218640856622608312541681961200535999284959703892523873192572167982567335224735111810237029470086876962320169904321573103193849265334599079330804100511051900311386644118270038509114168239906824219342481711016211784520443790003237741433957472956243423986591610461221615918904769907308365773824902459369573161840190740880484460526973161152891623564718177973091337721885022382635663912470250760769880500510896761822108478703236524045248826069516539092409289787016886295420009644040184141533188744149142072095583357983090697144213338114148652707516908658418192297791538926898255347559831635061469117664348177078861562001418235600045196892173854706200673740097656877533316528111354780351955232783688554456111383923891525665902704221447621149855046470186365916870869322552708175423499200951692479442146129599768652521971507049300876985322353684276256328687146332974032033639976848681470641058436795267012225060755969083174492372372946369475546407684403520690333677659866505073932396447643425672711280910358293878969212272115369438647556970177018726089104976488286976022177002421867595702034668159684720615128540552620965385893225136867854236850756734559335852955008616578324246413595886578475659434196443503330561258159478081382201617392192418386528400440362947485570906126045151402721304617837874196634815557746982456249525528490141409615486264337740296163881677918263953712856022341547036389015493051079715657758151242130247484125894311100742425017750233657611437483013917146811511479636257939713522402214360756355011845101738524776409932291802412753440230696281547208683044321339791006358761379438060369140969539762305428410762203399857890954332695676410784559511087831525606219776718439231144742829839690269968323564221742087002738295490750402843695319025874108930586402316567484873617958553602688200894845780613305371770930503322579705839677611788036988278686792160247802640919069803121552448908447758580122069463715485737391378102984265467964015244498329451886856615475262227593797550819007664952471882060340978966540511684229070795352533014877503845302491979420758530864785042382342884488024777713508781804392588083902583659047415366413087085222735768551960404838413488797333042875584602020841332685998111215722413622071229140904362465059689848364137871103868865260982338648056209599735689812098365346854987923318436091674641717145340013699103803966251327642700062329839068740534267629347810261053185847897269423705503605688865115377238424483579955550119659973483241134066447052935025675806104216184599665657438637559881046180718722187095220689386499577334919181807768963363940891697476203977846102345422131642359386881007396868394438139264732881620390968026915599447913033466390487013281937037394070183921473749491753748735327712448741129648160864105101128293855690487738743187053375343402778135102805834774045818823113996237706866084061320187583667764695043314653851954230608294908111180539599638687604755761334507174303418495484195077231369703021378922362013852728340752530591118559019845670118370387892137815871981999683910659109284786874096811490893272390464065631759828329819461187686391920106087797971466572235517906156203854331935866408232883465176039342986747848705877886989440977689996250617023758420181742964922777058868222118116072292339445506037788797181905456484209366021239646129875004207638199992780407066534509620030935277897878086355143456919240576664876586304399560970542797214396503050940583903304264042688622324248360254461053582300268548352497643420607558304931262236391996167783219596933075827950324308728507227058687003815245572119846760299560958383696807554569137522450647858638744541649719849572185913705348886926213195013942860023439687830922295651107010153193242602784526450411595580158565894669307551317023175694312999213448890800013374961102295294466535728751513606059350980902911146433005235943320680256785157555690859943298452895238636381940769664400870039605297938354829686272990552362700869788667594605747194696155572257140579795862079501116517254505016298639661967839954945098951532463281302661807643284512601073168284208040152635173249677187918848683147117433321887497480732419911331108007693471486403257355143144052044201167578848146143061796800153024973141410770226712803505987057303410436267716432545701812874409185734518068224812953023782790146445894457556286258479655644571708830660137770254607315630119516802203296423108771085268893293128581406273706256987252995629960755704248251886804061638806438248095741215540047158046681340558904041415557868676541525302941508606197563865089837344660763873531620054976611806196815286154006456538005655970695077232289138692773518102586208177717505980806596768844779894912609388906436743143429588696725962748445338703117618047138614159319822413515619678598095935754829593611342506925061722988608514985758317543708414285288611585852526505175475773728756159874613894370050188489623156542509658015071489087903376284282404770826163049390136582006431518007924549083654488217878393221768622408196104984754845088397305883141923935896844809920975000713076252084430469431802222542987806629223025884007152129350397325946425930990764319604750871021355334946392540689303767357572280892442167860875849940609018286611381369783764034043825612346976918610515695931576025381664458696496541887028957957433756253380511135142213335902401330927023686662260002009569420115710603363691276442724013777284345451961054399515408525156418507605368845248206776058198962432824852077243952019649283907176761342518499567120580270868170308730287780688967431306195640303291139717809494927923758561815170099219904189090477168529963582818554990730457388769810416756927357806448829484435334255062078651864481302566513617915929249757255791039214368817767166620580795405083533618788678817311208847535423684978077616052703482220082572447727822034269986206781707281472222308762602162014787578360173489547760759159271297713504855616474510810785909499125283679794616493698277422746123236914074254187730683690173748436837724076558519100131228049380145719677610168745647046451361202556076105579961359398262767155003935181074638147866992286888503656678291161334586507848359520867043587244446484037021766053051023926941856771716123993159486823608325420164839042130544758210759608375473912222364548989625254356256330366404503741462728745247700634289086975957170377992042183343000117114428073691235347644951830703867381775740127747975697487614616858689941173854062705437026505869552733330631877221039539625740779194928246804978424024389071617337135532047678853154800293736355501275536406302266886645533986132776246815378307138882184031753321022311964386902920036594562648179393831083388761156867473143156113085181577353400496635962839105893262102162544936316978801850668969772958520148156989977726314356743865509235030738991615470675976751711097476311546794080323490161074133926325780669874096192482805835109416139816927296026581737832100601562728786788978130772734987145048573847376392753531704748260545571896185599141429250670842077806365419285888787377367460065848639081525608451775537907600343918437757164009981683495222194050325595214616101358022253032463675715318652884470265922708333495255219727487723372896551341307431044868295988226605812468839327557853715339414377128879397632661556488288448355353168339402815214087499917693794595258232512272665219799660463268077530874047218509699397871348608470975492532781094951284613878625829086411913245379577081865760919874920602618982264764956135458171980128866217268071943378228448235985965344724167116690266806871119774812819679525891397176618691254182620073635517288016334550976105608247315772253428030786860332290112982576328274296838360127181869372455692916279342896398497765756257113254279783441560782634367484706378587006276242583194692952057360505472481108888814761075171867436680038724972518044337066199732407398971533279950780299594294585526987176003090403669243177849921877580585849550703257096526579922393955304908865403783530071114955232348379214471485639390482227881021797589995872817785025165520005061554569811275227991732280391641503805105169962339700351779574618412829680098497028959094453988993475465017678239563404091709368506024158927207954061041864602007030633015941231769186757920515062529154138992351147403407708676573404129753106681387559147433156623274518726309505993498559771671959542206779589279786544373746070690274737000465465528902274603293025590530942801760499150685419942704233703475993937821348250702137215769987292921353714565462485564053092681215177470434660290095258683580585821437029328319159478276038074622754507210452975039932529298407526206693013673385565081358934989695441551996341057626479848825643334620318976894640751336039513379892799889259720842619720280198645312877451031822561987708723077527686568373707431269262708765528996735335227470456273406095738156889287207928062742305469104547861693349059959144429325668776563150976407264185427212584122494079049685010978231370420045064243941282360810362532066163640827853463998964817314543092086635365350064930508420877454443124165540276470268443217146860028860180400899142191526641355706842924421149569324651051343046107211971714902131959030634128147548136876866578128655926020536936454092452079634108430512916192960386490240127773072157648730079582801109744780108994629422958208806687418757421489796520200399968359451423913087271095591746928689423556375758738532517239324747385492907885037535761013261895492620931766426466167133760311024580031028586814005266700175426322345758425184024412486510681073381802654607271425300856027676307066387852923023716466099964426937432844815818108988951663807771216171170546166128803705702021490870337585943017148347979254648383930569224004087006696182224685362785178250888825568280616459685717384413522998384653437153645471248794304496781012462779322394119717772112968531655631607184918807167363143554797065736994427310355852567299327004512611392650236969986239724336881696296400496967075864979560651042642763852936894644030776165009957986891832315431325631687829825279265868100745981819280190697819045104300085507819976723551467307263243491635390479313448809646238346077041986355239793385025209764067977135836210543702974418818520184948367433127985801352933286320381049173417908344032153013500085349382145481039759973737658505470218560545477563286875589497452072626212617068302019324672940292280870993565984121742782127246091954003244698079456398315015195413412443036997461510825667188970107696854068259587799632810935076318176471293816390493103846830253498313320008724604117057757643851199411041411984206685400852980656692485564399492614080480367946724913918530863856812384869546581073934396679676556977599843423226261474487152378926932823335976373713959032074748746628863618711263529282091426766225726929645591307000120702526329158771860996457758639764770136417061777072574591722909269803304270385310066971911831287373234077497234264275098280851832153876379090961708819468988581636700900436108380003900676925099149072758475527820899685201934955009659032569599002853468063276117030586614716784779145078836578159904909091079562164345810503088641123149892139991681299650687397491025689095841007025349929160379278256991089772326196434503250214112300303073476539224552190609835367031512233889955152407407930948906239939300318891804097330218021873251225992922662325434266907927441413199777439431785674301474354287205350303502386115888108924945360485739971617648703212708546266897708584162513898631097906590041391748248531313771035345766191742277471250368300590759604770804682933230913767344565882544311034120135268023956912220598587061094336755368805821048334742195212841559144973464947642226687379606868955998607721460961146696449510142082067994665291428053227277996725702890922775803995538918655386396563558807796493231177552601692314990052589496992068546427181099369301908776657267546422103407400399088904829122940330485605934273376758529723568217670077220204922071042377682246146232282313221925365659210765336162478944193489037110504613550511052542135708861258187697615641885929706767062278443722495046184656014136642863314842768994074323381381463532068809157453641121171965467072167588434056968684481173464260357618557169535840000812744629395430461691873524679595118854370437340704016871594667099245440151544589384271450035494077276622350665324513452477360992313087652619312743476382270218715605332801320408250889920472342891554529433570328562792166731475102164790044650530722552337574150273153029996078085879275484935162196523293327031767609909814160524476005820710068903008689832876388107679461011189616623884722480504984873573369347488398755982878769613761722924163423060034091244559572675809629204683694621386237662976735036397086637464985551063624631883067113806323314447248376543988190832465705127204943845287561370316287042862287460439617618671902761938648499147828854067945147251084572586039951404300274591806940314499331977748853550862936930579444591712929612602421782654086142777683897101678773349294257854247487708098074659503259092649773889940973068514051415717721213806787266385978882525381897192426254426356904208946263687034800889034443478985334859161371764807726719533581353133832176040745288941869982404487095649608209985932983436296598217773729591741070033864558548630166471565176867671070362155503160023555900978411386297375279543741762958706387235536933735926877143253230311276464803809691321753948531573701002142186709087972424561733037582692238174067715039206410062840935175680378746603433172347391425922822466655451994130640370930959442137298936675214863170976932502942173408749340194243442964932224082154696841878621590468384241426994323980237422703448273310063727121166692335254514225971681604797516782654552056407555002918968871477086955613595392195454240796785648970640800181798873559012812320865100576310492108672396766461691730604096896026833359672043814084768373340892051778938802554292966696482660933641154191520888846326103429082743544347060225707937361529820057848948759316554547231148543502461144016804936055988301730330576480143101752651324795504493452985589587014315298365025064357172488783831480835662503429666037237837693041031405067280503275398043694951053170639563267084150257585709297255618929548163620177616954613459561218720287497621200341361094620885582892245870576664257781060291052389053605538610480085222404775886126151574524832736693340171564871180182049405609627806407027090441076937585915867889284674128436031142651278123462068579444207692649886822113321535111657881348464893054227657690507120508977419769934154485453528180317074273458211618436105836836967537727173620304260031960824344686400230199075319762680009771962784071588279387239959538135030058603976947522344051844424217123435266811579752294698336292265167172806526318962313500148987887409079993422999479399937260281344180676133290864109692313344707543243851292469066147300266881585184994901076471419979944386370226206794805942292600501349647445725077658900974442327531595597722437932273090570502862895665565426902434942748261262410748481308853339431250376732083053477389890548900410968327457672689266143488696871365361913247896140645827770996438707369675327584084467137910180723955732439926871624704198573709531173237874219235291791046436089612105375697540262360684691515129894503567365126627399287294271705544332205225301899225023802449917628045331762806219362593015580660219641193239652354240399536421460210079146229827519272923852374034890551524836810644392700294726920720917592341689851311938197815275484486941184647005853253841943687108022720345110881445605216424107448388586590504312609079167706562076541562861946556626645871203298242601079192870797617937389060243991158241808357973077510269527986306363765022225036058086639242949221296142027702666718264752682437764786424728363421003918345098237552724878916695431287057180392754599600563927643282308790838309608221848582680595513373989512931342790570597904186180424094786196979032410482832905482863450502434844038615348787609486127984825339618818370030858517121790454386278128787743025422988521343762435964543999675156655043317855601719621001002348364913642911241088691433320974576991609791852738780898229536751802366288326651342714370075920233304926443072511087777749228304397822181477890657796068721026213522264348244357585461122434833854932172954450848788648519677182916052218280590520663929946965935213374063349484216184726236098201974669357458604760185176635610733054980791863497746195875047216266238221773172066486966431722017822527254670363819239011690202979414418320587769138983508848264331792798015608604951183240045345950163134534492333494811966578653121338469277236693601681945260639653013468170810999828008975216986678153117175887165581612354684533148778480668037117763335147246915582791658701349974153026583071274148838428874805768089770245735432644114820156673748445959763317629622517560470517004732056190931384888248480181759536699824887770990097554669060462531763457059414160215050771921725530395493361217823966654298378171653032554816638490760748442769570360668036053395608480226225655383655606576742183643044395734152756617194484845028109070280155130450816585828152715843354199032781687548117413199453778378884282181025377742108573892888269395096754113022346967232356640529037431387448904621680170792528632458498077717784348851233269313564411412442287818576301976479359745164250062910008097936732163961345816541251010500251416435149162420378862316880886465706770155038471536345228286550905261475985609626918332247245854461846119813861761115812155115648937846599097825289530025376417391151888096635767338541601303810664354770988551780289092721830146899919660543607330768266677013669294650415394186530823099887329293319304782201397146891341884474301400997049245106577554023906919212256441916065001406539954380824161775165675834096009005952965378457173120320118140774630677520239320483260769716871022374408520688470214129214653289941117556504603258933345314892080475444773391940793332887249485409791250577315358769807484269697042231894952176338715882735740427436007070115777988006534742833040737045019385551110482214793655646204783151586385097587560650125732566459936163408665988930492366027809106721880004573782423330743461956748574851913531885412901590247857000167909209661074831279895934497451856499148860139601850042811814609842749549221844485316119444702798111460685769967461224233025909594347107312093711700907323577196494401121329848969513313056352344951291556286166022704362283624504583764535242640326931672184360199895268837620590696386767234880693281336899421503939099694586270839757949502472659237138363362809073184775597451698217335066323997988264984407595720228107077346144407375459145402836536736583685876049569147961186237921846929470341195641796020494636343185085815939464418492129783243605624342850657951230705523271588984905477233976857965213520450437867872815717865712966854787217855044118728279569286406793081874447076808936500848985055331918048618347735419997344632488843952453933086468694066151168062027858566867872500619903846296042466804546303388885625696904086453801384444300765757872449482556610321384949044443895349421000429390991175442927635536317911280638583948551348561886442643452351125685009287163320450546021205538739403124509265344858903233934376908646325269423602116755068266111918776514229658044228207479831125140566184561651461879342427254628036129506933067023410901492730605398547356084460415786804541736502767509502554909526516527774162740626667326579586845731863717095044259478719457347385572770512556229868535034138835693967995732337039079349450651641409745885222389875278194811769929512209808688845818159478356854082984024275776571448995898344653615110193523512869585694428257706089302030233284001215551499277233391256264653207841263148168617415181075242851877834100503032848860729392331352216716570456335949017734793696607067160791049993424741991270370635837215093357768414408304135476947329331423041455074691160549924338105681899114277009728399602288870987905098744995904422223004060134297993393157098092218907743559374926501361092859739164303072173754835620903863700150921500380912085802119325727010416027665124287096765980743202070891641493618240742674236131825276712992026562211232269276530583103583288907774007440091157937170184929924135434010242218572583597671203772418133708236392702174639467836339800056156880785738229546328832962633489201362827083927069772434941783179878414438872345436869078578318205592436492392043595393137753317356552565589767663634481676332618444877140676189678915875907400175882919334533621560960660768454777953823060734693951807156717884063382838308460393396231817685306045083134484754699259919863156840633521506778709665871889045523716008836323783437334255836430826868047675272066090004340647258689905056134465700387124133670918870664157105402701545064745815326050777438045126065274473057854375679918419089953209811028859453113031992872465420893915601749618255109539633463061105184823367837504389655785675303271094010248528737373297681033094945321668792346996038218217743596106487172941031992997298779121712729635685041639564915832992850128605044300312177775078239820044076345602422014576757153765456844828681473278476121696985303405244622353435446590308356540741491175216730705564449258073194885040788319162387495758441894524900955250649217925682417756751424768118527312809543633660156982754831564756826121733295882978325881476269821946138886069600734085021979945762458144185572583207096951305135707512834352881354893953173753835733212419257041729816623872279985161618817442751311547121795316715844372554718188811364876916109334856809372466249612276460554972120395410314680700450978608810446543426569169117799490335270615867690793096028600962783004485222574522143262390741717639672590224999780162386446685366132530883618938034085966520020578720915360275620511215186641586803541910529195634259218517867323547593689394355111806887532131322050344814702550802080179827814437352081377870266729614457169016441703747196502271680388351192532414102492942807294617691893626457137221471221105119013856901129011395338136547102966894625043775059930176005020343677286576947936965628304991399950263663044552613966681538424080009915554804282858265228587727141030471010709987723674974002667513672175157780245506428837504422387403181104692401764641769152880182439867515110447449698370445396692244093312474057323449129219943658623502521974356377459070759697234649374631401364528167608539129237610476131086781618484368326969593091348920043888669863142273901176416578413937730577637801818633846619939993051169419952102160083582582624365055115793925354249389647006908838340409241381040999851467577468016060596994541166495424386103732321582364507066419046199528964749801153675603666762153374014925368268980714922097623845753634913528250731676060016033955439132198874106223897434893769497773776392606190295225457792917323066432681595458525891603975792568454401165037045773277587867738836749348457433044831568093389442106138725401691930996696189799162662494271456322744694082262407539238856200097493494655537123717696842256999880893791566751754034581617441755193820827151491130387689864710010698484058413000523551165040865648949095217257744553473645786586105271709197214784353598925457866083695782326148104145118424671865217544405229985475062322951923148427546043565513141025584430814715007054118707568451235164702861558726566804275943090183205219332259289647745801119760401735472263474670937734210327853431165746234517274684968795335668846530559785031864487100070161033456992751178345941961459183173609395252729216555258286130919457049525512148232619287231190408803437384536409079522477066682969075356591455790358061330303319437688744801833527169675869532582052909655747364161195886155228950363059156507274735216536293030516899281968494057792530693662200018698966166970788724117230773989821713477386400746177485759771832899881751832644548365513554527235662314430682002412193818444116529258621947615290018541865740169445684977119916474877865194862542979580110168192387971788444942718617203238275934620654122227580316312217965899279124651875530727845676234298102127572870255441006773996775037333302395845210657719348899511705562235403356799139852885459446060962304445483661191806118572246372169398569407878213727731573006354201770459256896945187158340823350951517460384204615814074139990646343831978036978970864031526405033239724572927664680835563843959038971044640445150123045372104623379201826932928124523603955757076212702438649393563082762701823418886955196982653759669691005288079148272598495930177224138091218163412716618611207272082694150771865062623235752425675734390322924482801052398949999461287819518635846767129653700293869711848966816821078457917253768910451132173453993357600728686277745198805095212900422136115075204086152703714386794684695328101017911785851392548560788695095784710557624436897142182590620612309079420615883826450738581121694889240954417769030984575882099939280357094035082027246268019498471046385820842935962057271009542444676558153754159043322889284864470758958663748143164727853558608086636369356546874035436514411769459116984485850699579234434997610363923007036816462596187233004673520265932712214766178062896527937539925038941785618823542559062636616459875997739933802981419810491438218160053753764042619192431029451909946890851811929470698011779414107973215371226648344735566166251391333711529885641725547772826189644023524199332242248992931172005439981619897927192147350897568875475779463869530748407208506970104793859955650417053206011339035112052283124841605034101215556770184966133282086274155912394150730481781532980530786787918220224914343709520158944950934254476378514087357505050129756945088042995402319387646715395887179154047703156942671638121115717857841741290593742700585814824872425506897359909861857567811919216504102920466577505181455311520341194782006794416997713336289358590492991726185792894928594164947910782747194866941109949943473430649642676957863433546475303305603752898405395762848360902142113245566859290368481353622200932161612628174982413704423123404160298302209448705622846386795019589498736622424800791424133811818596098076404927677369110628569802401462177480866466617226940380369284282353957436791592163101576468871666906641832458106734719300960791977229254220419200240509207564199224800458757786766148896684261397449624477241237943510372419447324163523906216606754579967762947231518030578962231122654902950884347693631278315111693533468715569948871983137901938162573523991714212138306727360118390099286218593541046392549430700126547396728255036772537928244450238859026657011711152912476801025540282929504056970879069175180620548388576169012442649026100366290275528353195167320530868091010404914369126961188208790718372133767091111684462959952078230410508794776729503679552462509205665877068153760235644389581444612570196614761428164908995705750422576426453957348701313266221725946853345768360169470613780078044296293192136825534622369779881007899400495227972463716168609589878186023754995396476539126816118543306820203317527925213498195784246284419671865661809540397021812116521629422894662449066722401275016617193091550063041614699573192268303542938060641738498295194551417745191756602257915603011474414313537982153874963350281896829984765876245351163134027775650908519943864034670454787428398408444502475056792489708209136085210117017807619315625951406748356680375220530761707309949475337999124155297504053838787427596448298576920637165516082163477103484846208981235766361585560463310257517802686520275534411357460427335851512916092000870242146107788142629353616625281653733596753754519281523351676484100126252851184242606432707263261491402743448182372288203568615365448187194153133822211717988369615197350002656008342233924811472327537149095664357210572981687295439664299933370009255513307098588303796097003430604790770856599666482677499513693313720221742735082673523508824712223752079884380951866672238907543907989233124196640497841405895248667796803754290750357718957319166098648232242934071448816583017627752971371726310561941676287047293928429139353325342190691297217049433338317962911195067489611034058911161081612163605446237451220390011025889399080834429111375654191571815551802319235317267159755962115789610222754134019716922642971182283606157972268637944153921310958128341640280843044122238032352494740012267321738979454900785347897485938079898699231332471983993257584890245730879217428033124604723041786675269140501320705005647797540088625614759373564576949794889788763142121514000391434749906493717283352017486637665000566379238955693144781377054423132951675294762121239814543467786862034599003513457055387130479092170967788206276215549030884357168051588860719677634901436232396543241119419261727740547819971321467359919107437838781119969888989453924476144065200471437445773810891047284035239078129012060921816094821757970354111133816568822592388486116792966953138564436593778737626885839165787298536967397938856743759068970546747056272110260538189640057363275354623542877382158167419967796211961880563234287470901069249208854392734460455466775481296687330230838844922702776438426609518092019266306123066758291887394843596850963512285983255507728367178365206619173310136642152364170336180456826452790185771449747976026909673212433758998789158894548623886806114280900202578145093061041785510687314021306991775024465462149324494653987311916449905622443576480178656004463229169164122310047544905378829960952968363155213087074462064811436181914291307307410482215354352492950488334588955017821285088243875835369476706539238885190933420438080965627349245320730581447238518375833319830294137373330948141403978112459414167196361190110254578906732648555842856561624428622763468905069254399539969470654009844624786213591078990364951046611984338266593663916513165654690631923073691038891333690755732237123902307430450657548415958069236335020502011213825578424369617200027015935196687193318185217771529928880755368404368040587407426184050412070576489473246453670885285012913913388179215259866759061522458196913959963426754930866053570169939698855980381222406418896058501850096506759870120014390267999162340637790305935218381941134681905451342858372987377422315692008503790060915312699013455139102230136657306767415245850452387222893130558053410027732289306229452380789881979135381059672152513359452633300562256040941999694115321300430984721437501773860095399287488141022311487594795817167529441351101986269704659903925961512144907517638650233126604993765450111667886895808720056891778100825787228370173789069041671974691456944201820604383561510517590199477623185976361435783904271329026035264695030731615802232648018435907780658199161718197166007279984193543898684642032300220556959461250613596597188759001205337118150989409302141795399940893769461328505389431141975672971455589435398171605916825770678763106229830292454417053273632693138208594543314738812165036416496031270504843120748526334471778241876918231064723760725783850373586952991283083425036141740919521705964757637139862338154332407930927825824099902107954762758517698916357386185090864697731182185363690943288490284530036195232668578836249254368377339778332377709720142179783451645688923191170238855874829922838923647604222519791777219481580150088714112677045965095536374883917121399385436610084565326542969512466248052378554451988530414489606036465901479784182874844063059513572838824733339434531483377587251596467369643449093639376860341943549136684672708171253377197769226472350462189317669072816195657895785357100690028158024328508742816352409925705591324330237679255095038444065543321900373390225081330694580564617034949034549021046276890446099532778352112537013359996382711923441258944076868074017300753182218494199046786036163312679312844723517827777917796464398840463294886917307859779581709503799078487578259815344516886199424318978742512481031736725313506372074222198800639774821126360148157585145464550294795365596619216557363845788510579182964616474524510623230074395856240029740301783432266778144516930409133600764158291103558217785333750777264569949841548966695759393422743494701418361904538432272757508522263717216094091014610937300111263593216715156345634831840100686868440024039389776813516082872925678704156326372069784294499926127703871841891119488224177434800402193982370048112165113421402561212231209815788569149963086500381757599966822036946323632781945601067079632917913154861214127681965555186531884789581477769764755315504067222662989698632413756705928866763406418999859049938103655735536452155557195558704636049821940649250704306945723108570787278811746730958296078835512477279956339918837787112325318234660095162873020049858381638824659251272244594884060380253585152530225780074591078310045064086922061311932971470880752744901433603662460642835030137623493187814274973469583442374429203747992277403815068269871558155392270978418842042648383955689671792423106062560878583315949509948749043488406058316638578823893301703989583638017168574345729144071036264558104578371926497584692823129131550623800472009036172764039714850998431611543108540787285721583420706070724974854615990213318042129614278881835083293591524989301070882772977562748905145418975357426329902349423772441905786197873086275645217224744388799012357323586592472379225227960610949168980883419008994132881809553393280924474541719466663190848207982633393623791722949506962391384209674827261790379042328148208920306432333193692646835859323610088343307059110717210504094065107516155800590336207964835687964142915040758832686766139166412989686471280305895500166780146860943592862530668159726609863628511361346339820346872932980705450567562769547801282626096595068120341347296711214426936382606926439520179776952644841227380865698641192913415501423905623201566195859157422092315164005003160272543359062036233879767384680821833699456252365864094086270234465883242073224812343363640999350748841784110976873842937026989309421445278744863677486689884251109677958692820149730263886361780865128446052138347037025553720357806606703498433927399224931984430998128261445858215820374403867025126061861538700394174719299637059451670994932219490062027277194684114803277663322142208096365057579738837788312635281173139602436096234536285418420604393378921638182824223492605824590313859274428177075743923921963944281555085374787407796339647965480094938782952154389667327553996751712611181851319212986927497726607038665674173741698521156641740930163460927307383115006972862686635268111238761497351462136278023190990401135629454456613274406965106409653843935163235160029279767476659253940234948700015396997862162405148316106602036586464210509863674891458985403359025870261456438823533422393926368418271100180337571338187161364214399491864631482483961229061783400325960910028788025977547864941290697572709890752487995479681205871467187613526594192989120300111029235425511493764509969779918642494803029886898705561985374027719405997824432475730325844948334911731343781296423350186924948813754956709748881157342665868241093741054157982561598843364186290449047831687078341414303249724585310830201820988799344428451460445110049999745981570023764517769275346750888112668106421265098542047484042613978659710410780368004206621997639190873585791989318520828970532856799003898126536855864469047372205353500802939880495489261637125661536172420787277533393553663189198779562576367267308346230352172094464395767568377861233008547066705122285446000942039440244657242667143903314389760658874634012392870303238525039856269291486260008757036712550165075436595906388041124524505740622700002356824697178643992106732287219372967550473528436936854449922363245830599504318838506064486223467151627532066028699614736879461944658342888419662873308378893314146942184157463561573193926838014584392527155184706604250133548782043938615185093484941964887797268553991974345540805154373449117336623682994666265638240162259781105496851702856229384080174044029241436569662010461114241049633737829001690335279930787394177756422733272512129941740244788397991409151660859104922664134144456718755239396026895001887928722458800746678771138485570004334427619167366696405195256940681583822542973008129584855711911191835041845785608988521458909132024078717825041771556284592209744769453298026543464048564046918327511304568205176909872830643679640187706696263053806546391027576389335948466384676789533817046683379637829699332774636744013824218720756048050560492971469006139049990327386694427739304499714837620814029053654008268634690088188388752180659292305713175295050065428388000038514932406151885722062232551564486060825028034945081201835751749686481877608914109235970417796402128535755403320905427763242497699270666605199455650754519012937645360371973028405856708854311399684740153587670418012240120643357689060911773491918583180765542541572967906835540685461533682830665659849291244405247790423099364770586847048089488791211694510889841315648999254832754081719802489484660532455374001354831728767600294701389527592253925997621170368819779209428048443868195668303650517066385636763564367324662292966603828672457695336374597043728360808274466575193008657058915372909361835384223828858996248524466824997388386124836387456292721644634162140103159503376474064950691799537642384057173913185629097431287434944847241196749433521433808017725103493663640079857129191674443128305222966818416205420230786748137461010450560605873015575820265954056355846865795776794812921231160309021639674850758285199796541008419392097367791382588378845978986024630902446918103743312174630745966358004831261109167356804474209728976599314453728607995108995503790386094026819736703302920153582693315394104859278204682015774098324212257147137114829323499014126347457194893529597853935949914188228965505016182349078003023529186527571989826861494895586571454644719802218716449458340929666415739939619072589266534050306369253533234110389397287014679939425765013880904002959288597089941830430621470874226774684997016748556205128282363999522689540923737620735957002974713403601584016864636916197381150358883754610976438481738774164333883094041084464877684394233875925140544680251407802138173715051846482771273058153228993122917012561422183558729129349108799923512101119863823116730855124623244794090501835988677113540905191878302300260419506913539185007443295439705886056287911462725166800845134834946822240917835419582231504694460206002421489389003597073111059652279362059794201029948275870895163748312428762026470169781320859662675759302880570257010103998957523999853805977692681258709888403220379611437666116036917445364401362921970695459984317858214284919807036388854379844851681884299770773380829641673622320443452593038463836646273843306600657174796030031028853073227179262193019397644683815374272709449117966655457960274094926643175329155507967550352490956124826901273637343926268736082385781469912784953008454887848193063998341508886143040927455001863428456452073411129013416898903398012279006197178188423382898794196970149078687503460551313215181878714587366178556118421861689038637452326391145632923176059922525455106517514199364171718975081192756829506153047500024394048083726796618972978562291322072426962678323100850773474104335432640111589839611689278547979937271512394122385216349872456599974175749328880632936312604837533661075116731879180262092404286488049311974996332275770088805997494183535985993814675953906464121622869856075807892931390039829699328071120739814149716501936000765455083532944026353439655456551890081181930563757425757436251339932953096816446607517232034985302296115969289153156400268053556234935796757791987109600395311707666686389748700691696015565981197098892982197393620808063752265448202292456555211753417882468306980603358763632360521515120485593594104769256381052525356192273180533233032380553321080298041842071243792160081742062257309139919149161951496403485404201469850312297126516009823955387239424932313445724024475444783513705035186496808019176138128953718307065274702676682370654930826368959194195455344274587902280670686809995574370844791455632142158700091226212952087433164493105669710503424729213119170605795555742988124073177180084825772628311476678002220484675413610773134837074141771020158780880766796593552208381502146217873915623043268519195000230015959608636395292299232346410715733368798611488884878413924644708716591828406724495564002372033313572068059863236174233585200856958708802700360975485641898786874041754270041598647157384541807155543990910492477959638195623330705432920395842554112585626470886082740279971147446882223377560578865616377294688434603425385666101773404158629682982454029187914221845986620644178090258612819872373107260613289585552214430258855359959315188369665251092468459460628582287165313956290121811578168077088797759011888254341228565921979996305414281947189610500035174692324750919796909644534165303278293523573272929701154379101114801576206706527283627071338667131839749169409742465170723363098055458802761797435751370758211854210045645196793697521361833231266473598003386622913081746322937514439731295927008708457912407181812746362000232459544850773233325377694233578062882853512750469729417736547262198979342262975228389990456762707105721735047599347473214235720132187458830640032419372438734812935691933065621903800645571766296495677590043340533974037986264674602483854997197170838515190002477784998684075132924392135324626312949044071083602258826300714010949087178855175909608403365133392391944138257270809028482154750759680325380606650930135753785998071411159986350505897442041207547191992139722843277539743309033964707251193185603108857210420728729778570677994640102172261724905964556044082638349514660020620136492898532484355267393416252624400018420764096721489901635348906759351794620891336472317620933968050507303128201497271727751255989269947953732897685113633569389843072117422290859296175904958731552954742856213312517184553989490768154234296042785153237216027302681514106940096807674133922274884756114809915737978823707403281183217098829696546998731790889243436137718227491700884593372342664350573830204187441407274582138190461285526182782747797750401912678527063882067366682925260102307196034324950663448310225976268374916816478371945146069736230388345319380659801935658640018880748999720533648463324770842887004916083083388002782402550002932334136702874739161944508806716576883840916692566450706805634777968807203081807143733152289078292402256779181681331727220456562870043814771562901213233555354473656973179139297594532134010249919199390593683220955651290900217725735298439046500615059913618458292551632792999636711013078370602390373577785255493441777812176643203129278033678811011989452081401211853691627897513329792963840189075362563074323984248020946361597995082692738662854063741960328237405573622575043738690719300635650454689687320672243208237608147045965259722224836247698049210904257696886746124699661689362437014861674803932242783990432512119787983004236498403837353449956891430783215095654176009486271782034076378413968642758318690716835444557049515954033884677457946539118630082047273066495011248060796564237669899812982706648162637816425966141949210882535852195223451650820645515222809732649309792920318165288555807761424974988335146989648892891884681580623293808047092338419935207574832310869881564527930661114321305323141816820539746701092712689735273767504606196794957298850626529184994177078686031109726104498376658169704018950105989338353476775348088906277807711964774982210303182126927692148741974788106619265770740821040652328687316554946423120640002438422854215154685394701546676020888000463238612377850964337700430047087753174593376387215752205538488621003081560695656373167399922918207842698310563433867979799656221672808397149301876560445591358728260397808691562983889273749993060744834428805969739338182008483879152301118366732250354423523171980866683174081723813584585483175544329429692733196782658013707296488845825004949474746713593067581866134821674290031549607721295714593451911839147172872393797011464580964972916109906305560977094792984185898600366328558590464133775310785961264093929049561270337319412805930460191686366444457630415023955343709373074022916818638479561496759568778237213390179830065637588252519903058986517510855609179918400793987452494456282646440039063197320878851696732429416244203596716065639046932516007451580182248175608954428565569668138245388931058182364669023878580610464068130063666780834053072119212588713556911249326880924212927211792493296920370904150674793028696541333503820437541075608313137254407394437662495324118660372624594396802265196123265775047740130726179341681688343785937851862356582908804637375895604882369450340192945366818224175034035093902975660401603205325389525420042017708694862676050993088069912275696821942305673638015445592369976880508057957922501701072282873762651583257681664783361755415008256944275947105731401141215110897043498118629063374888819370229924106458528953974232425624319807342733213078724058088104216024548004249597058635611345815038807295855117106199964758575123399117080446578101868840561927885604813440893014741496582032253694436006200944798015177573843422299774124013655700665895281810011176401192066501445302703543120924578172426902844680854023142193187143634730641626982524459483310342567219165709815037024658708011181067478069304254488116464925402223631813103644387139630952834091225098385426311591962523605943917422211753537391381945920909922752636623608101709560746076131430066613068382502913276707343139313326983737731987390983483408660475565699428443397242331436259765405046217722517703018698184443099931681634531783081398496355147733299189095493185154960563188906564844442899414648267064352026136981018571299237070753710810380035172723826199756042785576258497431613396262283174060873517649552530790183232678360488047165590231030853660217104726535313789823289347059533799128243111121828085235635662192120406304556573979476375666387621037844769261979755951565305746770676098594361244854598895784067485659813834060238016994250281923377384519721330985525944828510717595937014124240082352160691014150816716229888942845575394920588773228171549438180222589385643953641604132868494600596928765936192881534131364641467524726796491424625449503832694086464683590439320265155183878813084384873655924991936275229808536323949524662229858526334328487425193770795329167692074665186724279799342436886638683152034724011715857956240617516188356749196343539809442773612355388441903770302931680178090684327182088904665915623765482237317622573999822893612737853842603479742809171285643012015743874503587404686277299664132339227806220268018296277115118747253776807343445116723723365517316454625756973927605880652871243764251237491230987292380867673312676178364743017405697842370494539237932264472284779805155638495559221510129481823328353123180948116942430514802927788180994407139032123836030147969019689363449670138886082652444541939486674300818651706482595216345699921605645949290190672736751906949337995237374134871140626947678617265641632938134654445714683848733251505687834516942919611209830507314532044679257948901702182967344801692721769480377963747984620255291295203579136285697496662326043078315577647473495233157265275062103423438876355412178317268804086937954568242987180807538024297520377565823621869425485894334857442324588258575201464394178091655049105846647483587854299426748790966862145954247396837934399860358670406189433903138173142185398095100428080608445228669715575371293791115425734920894056437828700772848008555462954350524676833336128813718840475693880563374537208649241682470917914351867449989258804559334992279784767380264227005608646103966344886041752459459612592823693802811801459028551507222824106188120823028379409334833236720271866920472395385509413698970833825447639639801160596844167346690085122833731480794574824540958514293859170920906564567099613832410890556070004838979531411732200987251598965145082212230600919630882924215230673872679650673987145051400599018696806158315701912141072472235206098356715408797658771398960993847191003611761300688261319915724793218624829544982873261377876409891678771032445842979008376951493613765207238877640437128761185437989452795100272710321460295841930249593581251471959879055094577770235855251809487804143030819964342345631405240442646146229961312587065040466804324375888313279981004740537430771334178638545507692319091198329426445178216372258442993979607690632276725069362894052519709427668212833360608949460137867539796254746348668194685251297546094229862675487672149232865000868540525004386256837882874714567523636257864796666557660543851414721226072271559676821930499762165231673511912667280608225963197517949106060674429716507832042556734262934932581166021455926552228593619326973203457652562580131889888398822206168255116563294186273806246351668491234271091293913426379379388745536174190816458138372021054623324857464051019913420126097236895483158260510804720811079420293252624683148322643074610891108630347142483075783487866502757951610738594344417983228103658147319509970122200661738148103803005056081863778782208912637295892264254192522647614473079996838988707240784949614134212053194451340119242020955658723219398608709145060274208182119125975680247766449086440711999419706243718373817796858836205175103248987463682648546205947298392060938095195337107813932045687008491526150494350447511498786746676203769381344999212766617013012244449726818548956252306965122833410141737070601876282000552507663742315593863202647722595569756039376228214206878783099640855924383679003794241365585829576221810138263048146604053684449652565390333553812232750191028761168981850723989630649714266491624075713154978891736697320396132919917357725584512079096213473541700696000563653277825589782750088331454267804712546425889988638275605091699624508797265485151988348232680847918549417815049234093839194281747561026480666923347817263008754816522773060297869800323197609538685537487293154354470086911615840235811464579925442069466151374043833574860184468242952773016323313809035401947009098490705487534037342105331960964280535260031375008970869937359505682615499105925304178147482988523934919076251285433798567367101315030375019790950639815760431121869593151159629450279960417510815923670983182100760705461823483585049971248308008422925037142406650540723576706609701318619868473401695172527008624021730719832693246790817494203599771429797398994798732627524154088765897679635361949270859261238737117427439306083821049933503250379993365918259545321749876072944735696965610063003419660609353860457820396285061192187386343431620393376762416687565826862776276550198233205217818218188878982131169473087876827055631362121918198754075288910195581290480073985863407180216488541826851146218062470586216690940345740755773329215342426880195680340022179143767127710816125951724294389878371992364410466341511591066272694682636100628469155534789344658179479916687046247548222190895001554804630576499114458124576651028305641471990871116861698113522874272342861883814803102643597325056230275126483714319366706932297962361842863132503415765797535256828612955262438957463802575200182518559521615511516763897278070388308904590301335073862244650585625637814846807677646783517743479593818483066271438401454149098313524481804645943016228373987060003423647418311227623262091277426143606297361774647839014409643862809470800651274536314143245970796180452196528172368274737715311989565348332140481099091929679870580783631845859221775972898334140147630770746968708209092277954652218308581092054382410087023266940511889769813321072105011181148253694436831371629795095051511384356270058241205811474049948928237672743309639960165145930582698034159056777789329112918732067582243563560193710986310492081150899394316515605543396964214277615140987356962465656568585935405770621136120989108956256494048168024257858075724571634483778993928349327520675014157261411801021531824235155040369507356173282627274788312991741675817429119946667982082157686426749523063592273136692657183658382542116666883861534785124606699761665296276325255876992210816949449287437521929278013037472654848910317488941271185279816519745706128918164626116869333424608547503253355594551990339908842676579396413273729527856372721053512099255488420220267070097305550117471707381941344035472061258324681951820301000007334273936250164995469454419118723691536925181001843589980912555626065317849581757815852254328350737269579177638404425698702168522288229033519206201110367266795685775117400433319230271079475124709447300537484800242015832021742246203883557960379970640959801781071635383544629263013203331523815818005054806797529250410563509370112961659679385654656300598230313144416361872193277020330957929883457792618826222601550076439715398918693409072823705137384150481269171401753511103032789130059891771473646307270702699565090640292466025967248494849898578883548073411989381901493697994762937923803726378635471686421594689095017642582559111854271364701119646012304661522119552399407188007053686399651773038813212184313925931867904287969510232656756126203962355572768130085740850238470414187766541063332688703349621779625265039194502971799828990403111283218978061953679886032011154943774742157692048321156460104754377019268281940684282424756094083498118247102770969111054281478343961068008254819396150212462554744361838669191171673877774922672674990256019196264612708036733424530889371325734156428903798275315973733664562229301293786991092773139802499387232403057818758367003726628212362983122713679878753749118793657282929601071077412328312638569786016081283930110846984013312219999603456576829901973445595622985347208338677342703508770207012448610156871512240839504143892654295045867033177748582754410069718759884240586277692606335263734879674639450950741917720809672667914063170608060339511819416773162744968658127982286858961401772502177520112043539496013142125423875462063033275807237934848238460803601483564912262705839321370110395510355932779779917851803097222518780170207533228698609884701867679160297559369980818700453241531758362670769955946358255145136700897367998406569905305754524291497531102802133101072706042309207093585955953784005382301488782480805347392198698558038053010336823263144113508051940206723816887789623001082522719740826975922040614436559326791788657117717180521552693392719285101478217171686503689293692007883060880114111135992188096207654276193507262680897694684922928738123578841224440525506537574922903774982250258762219169498253952215732248247528006879612081179334387040700179273750986273723815358139385548759283530956632067418256829745366539575884910302403183523340182524453759497767113430208662134496614703339413149845926531486419701959809395159983013825113424978767378045179464775950265234722066152312668346405007064308397082292516212239530808800373321955459236456955367058919002613690178137460654585893989237341519304995361262204136326412413670548472134640667183377817845740461928450951283762851839780497288006713622688732845584855550372165664744233647602649455705841742331770807489077415016082243418561719813948740683682283404819037419485435102590551945462015268255227475305915764467421339612741054222801561041509506728050383330933587092228349102224527238444984161990682860906015695845459422704856098213981557251132246098874345081360144904696309730363858528617568413520065436203959670983499891026155140621035152170252098400735125984790463425626258781099156916626213102219265644942130603049349293910685890394752109624653185519386946270243118890547819023498882554453535955907107389148221463113344855890346846690611638354910953493446527981392554879073128090985252491582986699702416150860709074946133621855989768449657737005212722685526464296744282522297996993826465563779780977652277480672016305451428497268213515493910949346534515387920993352924888860018770143786108249938657139642709853780902814355791541762432710871662192212538795057967532672459562554086806430918853131837852769940309452432200525776292279744087673366459037071683633729364565259502171059341453369552549833373029349400969779265565381428257327156038785345381775473340031654166916087300661112787585725569024510884289007484924770140153709280736057743370617767080729444186818346491079142641665956586773473694102221672830826961333970869258228919632905485164706225570033394746384333552145823992819641264016796574315155535107242324093234361388011453617559255203789689754453753083995635862520081242185759588533265176876911229605663129144189000066116397780235448997810079124564190688385493506886103034078308823334459691078951052886123168445120532442565851341241024223101032926867253412079917191364196435918067592957612145607716148184424549512727698646997830930939882905699641976664417001703533084657717025320802130748072800404175258482303474799126272191904495648628098019915188139364265537773710067717575085656342345230135816548752902406302921626823164948451260728662746175004389590050365869086865363931434820372108348408853826218730442061015996169909345537027520505871312006143640323495685551114154082699944854007579728027952317998370709946488695917358171648719139966048849619572105298369974142511546859789331090775118027915316697407327158689803344988258680390701936081316345158001423824174688249187008858845557208607329025086549820631972998300324390420725940014065233129264770824102027704376404815438715148674009737340677177202498930442623463537070528816712239227501559377539691209359060927831021633481171395820951471357291659591830623666209492154003738529586618097422068261216497125368734678383554671449973461215231526077759360229006756635748023277459853344474748466799090078006814581740332271644700815383021688342141956096477237580895252225324499457179048945225592698601096298918900886275945177310192730081597923843856762939077264233284478657122661811365216785553313997926479734130469900480301876999178805476996237582974413609593522291820078643006942383489309504324870669225933956273433813833985565433800349462233586885295581281362011361101437381997755217131929873066783096547748958023428103308893357418776449965971396130448718755401261371616941463239459554800664099753384875325771701894046061854355300660402771702098244242722901355770788699324517562418891789349930585736676619451186500159692835643225006219653865647014132522635292895731317521731388717953081981795741639815410826357787636788264001867705197448678654834305266533366087435117888837348021189640981560659343916045381498269132279855921230992624411082387315964434183747271064700741186048754882373110616233844385751538382732848274469236523068395655440929685161175424856075784187807253784418784763639951724710270731317230050723446195336045409180737496216659412729642446733471094420275766243002657041367116052604755932338958620013115766338515572508024987930190400764154193511369892150638655964707668175959422494069117396326145363369318202247927475348412277813429722647879609075838186701841814378522645679083755847905555158360584050723963510116288332484888203696239571030361342567674273815372018996547304012273041594621476062174588842985722751795776103201975347540272121428151114616382148603161532806503487597724536670091639635681648420619345867218810760045398561815648185428223873822301911420641317052484219672625321244820992089526994060220941301326061100792535042136302292001025224862059828197835931029439173559310341775295261253677749529098813143208254687978885682613805447596018122316688890254233575663170565376739395964138017366441077925993938807826043431830311513567625733571116841258453657814484315710656172675309302362825913627198785580859529168968404072612297902527781444226427523165370009959587803873107959345404392583363778996081626067168141742514554279032784715697410583227733059572039178497565999951402021297056744153095269312885824648399904638092542790120046300306460008098777420258718475030429317196243410241217796280427481557865676955917001307272371763274135818281566855005404160239166804448534752339193421279222451728418208180309423807059946421251208980570118712245092573287972751855935084654277504314117455174349236087529518135052858851505556691576532522712801407288107566757317605072584841523016861947978931749998017885848241993003465921262566509364154983805029365588007281576000196795848160447428444644920410359292034323612148524237472642053623687921471804777237337399869323505209899654377808840231068028157260039451378651617977116244967907985058730213846403760655308125479453639377089762641130047205202586383338667574262332777617049372067546106014829123233883225329779143744019299461258204379683008565165295703256437490748070192779169078597576794780908305908358968348556008975982164970935099165954457038922384211824090774076434269898549779591886751708331618257662132775934988019733159624415827882625903797528378381992414165771327390908925208558117196819675467589942773955528671198011812275754981449976779008722635971256702467033483793427419826296686687076865165459479636145798565143472533803176610343362054863902952086638371409508197497743573512999319788662116930300033607355915976506847170338880848958598343792038216774906105289878784444606270234679366947441044705051987369648469361686405589518037749490448396377988446508148794166750476342240080671654733333180157801784795380390284465318323762276276851354576640476860225708083891219079058563664378761639323158889694295352529216806662986445844801010704735160866543428368199954570716562263786942539914075339770318888014810770390006637833263233443827678409222299771941142715832939707853281709754047916488006778217486941691382485801048080987006312557210663547634988668751951849948121764267563013907843107541709247895286593763359800857188072148139620967294504302548960959643194750219773779908563197768378936179449080391612319525530498408639757497545530296974433670007981445474588011533376654182827497752051810950325371958489863011814197319912959850279006147140064971920965800389476832046695946221772167428029574206516105956611995948584448194839248037391929167392166721246526843009467894160624229447616365262818528594771486674454566733814686050320445975744798131252667904127732688978309573945236554041042250554144604170826506909439288447066337361744125620718035848254427998394478670554529751766277276927151833151056292635045146095496403337534706574104541815072147569013415403710821755044468181415662862267277590382441538312134980915146074075792737182744594446541101188656880331564365124614012609085266225202134665125448455187120350117658598856611891141975596961096219365846669977848919174753573580908033154918284683376258295412098394430181925492861298675271648214614809433486105385801245592748344241640137317071752000604921327070763680958750595810887340396025500690300612439552282064916423338547881171150708960253641138712717512787408331460976067174074457606721606224367364515339338870329818996945694595632216316642310352699922476069438946295932895812652266834805817870010536119068485500731799206110607054133429586093340893995369817636250757597110073636003896344686728562802789131243627421277556598950650292225647691347273357589098013962954453220896474848932372116170499006559094071673532266132783234067577744846693458458779240919018186140967060329352371797769973392691724457454977775838199890479727886573482043294634698746463284893427070194446704871451343584560569747674185560034577805152641345985398000793615654724001823206107802434254468107095195343562938586964060141139487940214081697969995229459221088087037398327687691904390996159629058222810785739540285460763310408394753880606699394565806092360455371736960907327420131997032106784400235676522422558016005774132515992113278004840248834839205719206036646358662878992876633607921843182714668217201445086619375902096993328310142262297147330412812381104563235335712554283944815462245509436312634763111757322128087460644923522945835576530315934141846175361821275182592139390048939569200909497229323186308775368172825415499265018194861693040823365035757980325636594388442464317224038030071698848619991886071799000259958711913419753405275426082861101255042566348097540075416718537924609898849004342100935481622260633369117388499935710652585379559417766769243817498764184589218725168874564985646865918533059989551326652650377962162121122607281153253279147016267822119754317003402964786868720323456370141976312012216217393505578828149448000972268825461556943895947525915743449377673516030883809783989946659436608469486427606622621652884275507130194158735932557267199280834574874216408371900247399123204992758685237238699834369545668999039674282534339675777218645899140309981693411436221116736212466986815001220299430136813376917848850336669657247193527751915929881735481862590737127378588525657596535568753494513446746992469812633728194139875809514237577520738820918927737039800200048213760075583135212231651007263044025040076491209940377035563621919874510847524140134212853532662741948252203972672208247476760874898837594031849332501729459361588230580582787471782565222014228769885198756191854205707714251508800950071701543481094388895202932904307280099670353568790182429026596536349646068381765314890374338748494774266920792870763523901165588885725978508072427196257985146670248701645249166186395704660330921124191014147563646006410765317415934982200765098737875634506103170721417619359429831901798686620603689243989173712038413779382335048501787470351778213809447596917790288681267186454459322266674524387167401870924745710647903853506722334459434649836405954277733174146130227980350290482262560796497128801677207804288364716023751165821561147312320957189828358361749779873103697131796939747902822154329471363424911147035448622434956894322829513870954106241106919064897099111202665456481987918252567647929743856108796948856000701825001081789882995421039497919590375114417615630397183542445765671087271581027857315140202266630446896784895002362170665609504803177236131766452984134793688836517075197930170689609726335817386257445302323187509385559401693896872777730338711734897910569715209332774718305332961455762314073805805899930839617794677179798092910580806412493313050532078644676204218516152134773715716970004023806918743733549402064329269018988832743195565082887104480807603718631856681949816937825194836171690882945596616025285346799816906390865033724385232069622363020316620226846684119182750172755042698039674099760559346958276001667164012025927900947164611929567493836725396004181259250773305934158917083069908599013233222039066287154301590289288936173792991309459276651432623913695003430798496664387603999223017014188179197673177182072502564594306838522204577631807801617808564688426022274259013992902458709581024109791313071881517854147312588229169529768308591553478663728793636533208026222237003926947036608017653598414140138010152338323709537567646082067325602916283100087897585995645030087225119926599986702499559031288417740675924134840731491800278869798386506064149455158145399264418788508236999583741903195776489589840283430778294368381921325474359010130242746310207068978014037762078480082504387923346599306690836076143334532254459173164063540127023837765180478080504605884272645734926757235129507137127850884192547380976350504579726146095403577373805496299846930872135233461342132146982250951751851796647740711317277894835803702619303038522226392069315951395499853068728933216003488905385514521197469423472561786194191052273705887043889318653494247654671234314636776800811953693546993000607718854484315381877239914101047529069362149632190911755326198995342487203834858809499840537173515181411592792999161623085973189574162026118356211099327008334186949429476958424689669624627224904806571959496320037278249974957922231987109241624550318002402914476278245014353077969748066233484968353673387074540926840110599349724887369556075224133897809080182042865207811416282673707136823780445317716598497365936232047375419146457234446306687112768667118998487793821153011449056043278151192944800438039624952934153099347986566178164677664090762716920650817363779193527595789883674507143697667050670699378661954490207384846388087811549417909316631368484557711751149084917892281617251970155788649215861780402988260001844764453914053370046749221774004204130925335316989251231654664143711461312304932345768364193865049099979379717725963366254532833906503069328336456475648803986520759555980927530836149559545726742984660156413597077691641970192155660207466555116187491963395163443920594153783021040533874068236599370310928960561484213600436627134136598469611827839143622421080879749328278672573538171811383970237066883818326475135686076419776574494628460604840582610494874973646454198077958504177139083692287362116726298448186746650995884038091413501022357875228292129143451113530510003058352578387477784205448619645736474057938142485956362193279811852522204019420955072942793697378609498275446086666816702586924999359350729006395137079015178505093618021875045487511460016468750508506211139668209234232809510250638025302768082015544199198195422940505007966244076254386053734254006889727305672239594197141024351542610319000554426467984215393009751105672843589908045779377142138786473700044093503754644659907647332178679654542380482853277308697349333659525457646088317288626927171015985125835858804187333058145805483675882650759824925469459018063805681637100553764989182522949123552953019985336805482214302886590771921212418542022357003528734216218109825724571965643301998739806063082786403182807584304895680693983595340283911702194364744807640448287700140998168824287730750460074646868384065465520641662213247283505543896392392091713421255362295397187497283158406589107434151577857040382335928831530262042539610381340259649499713446066910178489134385333198224698936769456131348575903390703505191213582601139434864648667326391500410746867824950750467181334199233768809722008905480068307442867444076150753601783808075626826690237299887997766316185937881657283687629839555789925438498266851878786010947550177493250293728217593274295498797203577291006104444951991471648654019364219885701885605010494178416705381735772512856885642989196144906992437638588250397074913831996294728735077289127703747144837852080433819524022728061497027799910060924104227623183570615141903342523670805303855140053231736478044903459652960736030838549468980761233213194840000168674501317549458532141576599931797456093351962623781233499076616628471278520647721901091227433788974566168748456052426097245321094930980404794099427073080298601526760230414539597151905883022762186207822311241455468260725802582156374460192718455814425542485217415075805362033495607827367078111592884095510377543279203355531404342778951718447060110386598661419721421345401862992894822130798996728533139871999882277513065606841369305257994058381483516465323756167481920990787601340360058956000124128997095416019820522823577118850503425639788572564905821989217023043026786065438886082475775127938228586391407245486527621939313041496125249084586356204577070252924639484803003143998052222921244484332109781879281011277042762201078920447951719273851215980985312432722739130909729461410876993179750331972882594926741391316702878990981664850715971170638068521946469690495874117597628894006162887734764272890302663860056526498723383493728421862364030037944641224027835439101769906722951161294909787279356957527993919418758266105714026043149639384653381727970710410188526901641418304019287412322958408958043612495888261862549559279420865072111732965175157911474713841126593823868779736496234099591454730566983576374839776258133073982129888402631222810711323700736821497106392749664664399295510109757130477726958193120545244174414685028101974899306912432395717554080527628947757666887614558062269180026855564400018432916050983950518293897491822631994816566701961156094883858676434630531972863427352008616481012247612970847095066648259774765304174988471347309275192133402355110945384599238626029401364349155474879333584267593246279422748950175546214176808322924190679368018093978337410531693593069736183263037624892005248077135868369008642825159642437646684578894774102964972981100615706927539871850929970832355835075688025015878932112917941670219931809280011152402635391901705989491537817457280356619304092393741965852999503740077561691882461536639860667379046574789195153254999642521551693815451907531974433633665701600500013402167378875299609617001825136238615313793328073935799581737288507948469209316977207713844937626550356795452746571974185332268519303962884726397944885606654001502816513971302228287137666677730156929260249581281998710158332275080689952927677977761622767777850563973768659098188864898325040751173565321322231689074266694186606422608719398708637617258194000957112405899795080507631359751348093249434755288045495025949222203291444591724986754414873765267203560938926342492640889517201729462905468485130494613060222466673841939558227475194504451649779095117818407148614625293822491636309299754342186020251734139008816565163701322879461519651775075797783665255938325323224152315963276213534676581807672723282405090139145473333568901921725907493846762869994758468454301865848742375859602459508720583886716909815999179786054083693855945407817943004543885689135125425069103738719100938758051221601101086252877388038051965326328818029075349434349183200962524872973735917048690535231683225504205118986841119699952037522421919858478208401899758171640294413325204836582798967117258521984332844498629119692848487535537771933335535869510552240702804423987895406286315948535039952883691174933985828943433974515544072166671009265980305809684374431170700572197653439029721477093237657430033557793801146654945302344267292658944610008726248101223705500067944989630721576907148873896011848936611622163847316732905957365993204374742261198816688072959554019778601102686736406572987891002094536257101657248120133615027069933674328463343520734073928549966855792179990008343105111780914151528144835058174053003055313040933658629135760866582467265284135525224392585257337206020402007611811972551115355660538932904132607255286835149481710431966736826307740500583149316311149645558920124540122826759269149928873288270128919579537271745544606204351961811924975149884209211608908701148654734296913117984332723348505428235260381958725210513371924464347289363443601898507015770006000025301112418950027736187501440873065120236554575962108889514356886807177321881388236822165179551411723438853669969472903392633894676615661984631464115407397171428746672915123434997491188339870714089617064961692216589609565771284421189307941547719629403839967397737891956030146833394066904290402220209496593844416862575208741608200881745203971638151718560608995887815411845261940958636675662443013965255911895086854151795605145210171071280033553032602699246749053897371141854041312617696953573717183888182651410755903136862694148939801354158543591762929533170191266551947561728414771307099098396614843702824835720340616548961358783461281399565883693246000795227020009213455945294769518679566099526115342396140761517168391385670477385196509281036346378346558915068901908915835322478181903076592604322744896690407810122002332474988264876301074781529032762753715986076898270414781391513522225363946586980050090213235928332486643574547389174870085149816812131963248039377332436451418120317010889937276680593186127367443810480704716470579341237975483694666075235571395145297762659483802669393873057873757319691518783623313785769974766748351160812880916548540227353947072805921793742129920371951721554299866298440277388858157513877816841729254483729749508243657745580612367023576447778082852542354871964782324084349743377141534534953314759263522041023591552936683160417105352963487733543551942708927725097478114340803030710402288955589223034867474796101999892632457536308501571876310601526882863474248310872618259375481280969143710189299510589047589003315449885104313718247258052300979661480670123037111190653429624157205325538979115100938009590722065957576368111667239289256898492420160713734984928282215955710536107183976275560815831658786102532049913555834042040919233732322485962435340611520608332529166480192193436964221697313244659528239427204254765487571429635750924388294630696164728596989674076867905890223513758648992188658872129519577607926286966988905865370791990263470249643822724943855936652332442238423652426416628745894575428888111707494535338381134123074047504759148413303767240931513028222204506898133523510166228955796985953479667164845759488482968680384518187360916954923950600779826516366455310509672419807040375290300903915157339473498213802919544200482215484407491212117367217521060493305612297822736461812698403955324407017325250892690010413884415290085239164059214502575569351059343634171017443665082373197512227206169550569389857583564094295924472478448197654350131561284941931269233884874989681307389060095227238121003405021270739300326679150691868342155239698862476047016171502563596784151396836272294500134848543425358434890526695069255619273315096737669453612089475425952152199478278470874850040852168122948025298914980807922577364671697004285851631719357873561862542166660148031016218732159016665841797857660376193414428330035723733941960017438006864857115795935034784108915888012278691289491136990276461401479842556654876583099147914447270855472386535194746110379185563888382528672742187853928637526339991738165279446002515308506886403584586625752534676757544363464050533808037496519993458713835718946999759394711086686063589241215188850309916990053493337859022175326734382600613274167032702337525510918391156367767715485848587269862444298809153630551141724150407119952181102111364590286591907015192508064220160179517607368950584709592012808781937682842105909475630258152129108562625611727071757000490509705993439058939689459832333868684705889242376908650774719199242074332407177940776014120080311870103157886771531013984632817141387018385709260509419158577676677504433428055021726927234943815770941099153044243465963437697280704740273272788841596210331267655287391072386338431782405445592589463601942205983458098421900017127597621201005322537714180803760180707579239959251670914675014670069103241541037982559987450811835118532333890019164935275817822696221675866240158060130024143073901060463848823961277596124721476190677875532268681921961495107390738947382775689056555368200953136472336101764791168540460066472516397071411770922325306318033239259898462922928298098628040902359829162639162328013910027890262058982205339877984657552083417165341111064005379732001190710495615052465840327065956128704690354111732131513284825256755858526540640354922545795973552630040863467837149983517213446977409321190604143071827724788577960969086597425710081252280609506486217276726671532213154569596485207663282252002477630321640042513776102866253620040692834137949546663505297022586841315135206100681652997689877539433847310380621149424234394382512286558876561272862270560258589804174657596558947055315463853493946099709643400396806464076863537760703256724610824448304547738902538380404420403728507041052024299468046601779616148768649582571165604206184346713339718135409113134508244681443762464595017046822136552022636254454439724246584718601292714410889992179319623182318214742682488857077483820695749170458365683596803902385149330351102290458067319695328386548693150818809560168826867687286123606708282955808119457756041019008331319297059873487867884414206693323489466148388936649546085828200664070624545555769510838912580824473025144107657713145308231668136340198912242229721437360885872089339215992931405783364341303699842743097982534359468090719709220326883373393075817124180929816001502761974377818784692257869319556401163009026759518643631524783894519133130976888725592250184424679108219330853230019629497828098378632336029657782645152269654611187116208197952398428100315920871606593843051044718590594840425048830254744120984932273990091695381427078598200644969048091591215210285524748594603471617518434047806380882119772021622821572242244880998518485410827194058744333981928257852349878058391080699735550823659663567414282753723599364465208219340666860024371350066764449914704723694029645604407517845092312944124389001388225846784525968129987336240077918122829480858163389269481908538779703894265731307918809765207636201965429935996091972105824263903675236870170315833088560519807317361995885659836304782321138691663390458883649340519768928204391954995988779421959040255732520348685887387732325557660456032862065336818851384784478122453790591320412690404783927983427670585351906506409003845564584837083840956330268917547030090923236408034287118238031805761407843092655164691042698503491848994223223689717070007799668327357423868821346447189422716818148255189595877846165030241903293578972127151839424528816313496704497381773707278503907720936001071058211698830210326442929201441555591008939492873269181635907448959553914171221519673296648468918413299252963127639066809453264088278477044493484847330471958057141307987817304310855556112961474677997546110253144193241537608279354487314765489522204858807959344443578155773661574938351918226948235692242557590038578624976508400903698418058008531840190036874928293664768514842297291811061405643186179840788875723740732160606930645165569602495455363595199730178540713342534291572027838332840180742500345753805126444653447067135500427899215502831214558864920411916952452143531029088479019681520252053233958470081255142378909059672151426184529639447684908833662828091787324902542766726415791397979649100917280887647068911200142613913588534819196806066368961662348206499271135407864318153852699317998621191569373324387478942504906185853862412509023124265796928963012003449330636758058252454149615616361479663033117809620214336164088284814949911739836120857934397207841935028491364861144806084594944944548206397480643845886505368373842594856509504071563620293144193558100181290011166315426680577898002298844667581754825018456395570853689796499818091180274452105666079982253315518327400302056765444133377947946396115212344036794196969365632944713271835984283878388076725397832798262822138744985566094157187894300767598486937275486219505022495519051828470617249223406513922084952197719916715940111970371006753217813621412211446878032119682925818722959598258266550954543224955491874974932649413044634617884159439479814179013704566673458762510724273890131857185549311837595147795734155925886562819115294222988742114735821888367693229926358610090581640062369338478006599219133559032167704557803875653774054859825988564007754513957965215438605510651425816556204845841054810927888987726913173029085131365519592016098568111276174984014526800250939682361281719460479524586932918118484264139642189533409450913841106235836181193570829407142959179444893159385607177024138601990013759885671404578372728272453065690239983714240725783857905122271462185697551944141962307691052982152089952941675143339742946912437077375869219157794724592259060497925549921812463767907383379247587117262783480435350653120425859434599892312359234783545906973722077353851018402272929366871717526817091144764265569965772494932584762347010977602167747856252642479845437611751355979219990487125437801725683401945119053901266616842254208926336547151533036471911825335560504282771870586557729536566590416928806048966628612247958646817729343100885987281317918784613363673083894686472932003759731211481960442051061270317085503398605479526823650939911044453060037455497522830539885651311647649234908767792875243185085370916113682952494314641113354857367408461385082451572389233096949687514216383718930494448759933945135104983188775802397278598842314926343734484199086401170216281310221414018597706393433470022604488373665413316763934772838584877471413733462283627831366215541814995552831692004179760976317250907069709346615564942975445190128353523042664432090277535478695128472987944670145849932672517858407546029188162614033005621589186777762659576292369546574285049843780270515751036020750098711749042831652286916760951383471924557732734029331125417993480463639760155332265123723248591661422145668025495474268910830208259116165463150725798859516381618975524713115976865288042530298664300411000603610915249663080721349670810409792391753803605869887414288101290646060795207798491668454686888728376949175045731448702378351269604148571855538573095338665386300962397491909302049594523007279610711504785357835376631923618116443226690088610509231590124076923823023638790247936561893409008578770014862159618956271507905734245628601999549712837466354891428462333962039147268681562333576985427163741490405244675556051938277192861035432865812731781792244495206020333000418377433864787513162627867657718349711374707402223325218926337507730451606172156604594041716532759369559995999804756307372519429716829505528488630943032832674277351945918156773995244941070495087031260160257117014511777830285665766286444068981042004449167625160000157610484285242974094439521804246482334621873670949498905564820003939875430849643707941145302628014972565272828462432475867877472615268586476980023948642358566336040339198260345831777449508433134612226766209167232036406208280766806844903686055150567750066851300200405000719111092254699254018696977768451590582984147624665190730413441977679833354185586645331438268970471174526683409472458850754661887522466258225702965525106235261900803023441641595103277484236552347031400522656799939870481075126803099782424172125006928294841372383135923430864852146169917049203313609302778226677329630951627660415779976729727457069264517126039864914413634719502970282752448782197104760421188499664645150490856485355810004209759073280107949658386931592844873401464538843688306238439148958427684284580818868474113610599735296763546760598913695962244806441973478767173022793329366630890852602334233813147827411515015676311520788871444651352778597422484137848126879507779327844709197690966134207947159299597327972891404527521138938880872236528951231110896039876518338663511633055672842130710949710538553205275666811634748344236847141855486962727019526998304421041460824882665953809042276039253624718230915356394146738274952853095879981508058859226968479941197477153094616120529843979619364667636804772363041092975568728505199048997841968560653117738544780151343695058574817727433583742998171815833069829100245550983125982460612734711003885567872303059101500625725713661621273383699948518798687039752333713043347509725933401275053785979143296512396083661096179033044049585151765533685004025387350243599171012000563109824685218523103810937887854778827722531156452032311176290680041162626619361107771656296921876758013268856420268762729864037099565992210866695149930761656143628238608301128653314402185644140628946730967598477263658840335418906427638099930707877696661936402345250265946209569985238858341844427921457691019710592907751731353207521469313421350022601216788807598898646600876986087705959693190799554017830592838547149891534663096252770876580133754936304762892088203090966456522622508770255640444310848899817878892916255855218711858222289560626785289715368540821947901749861312903211063743502799478840980270591833094378187186423379122351409737273532678787939017373077901606155429945586535564231576311863081896943513153894013783476330174183126296996666952800328545296177177664899215067259907081732669536943733995562620898057033130041620450372973594606656121456083917224238660954129697829134122526661548256529278649820217054372948490487169198696238100692968258430297833996910825582141894964516959685639351645837156933549401457509479004857534634600479439179239612325999017548796457461540797893115456776657823006720516633145712976497419956036998097198502438885189496329084879248994747623172550548105246139573908464220936759369213424902625030055054822581465056957325682214137004463523721191002544393992630064519593588064367194069876829299937787167464322685152277458386259073519278195321210396873465614760446111853666732986089016456655169952551913381473702543598494645756065640065954024490390451692023283631364342164761833378254122237083753203693793824904745887294253386402817950289569699899236442192077605480166623029327695902045219245274543493949706849648473281096080017246016786825169207570950003360022763190166868646880389841374206417340762501274428123730433451046987037178128806075833884160638447798764254121556546264932055515023881423365418541862398109750601625377728241077075549016406798076863692167329647428269862881809077305007701723515302153555781781756534721370622747204791379116658219648206476190494206168934043315991818236769071148321668758432184974614862339593792726647067927825495039855986941430045026546599222843663497495320847674872124875910316540924431794843596092435450877048447073727351159244992366431534590590110367734598329783663755524360559096910205388104468909601130113355658719156207340812373192332987795441017987740812138286477378796670623080879997640991031080938539447187875346816355933341955363497297970143279992321132190615540439060151731547097596607476686888416876857223767218872668485603181354464856872654244789377047655515530334331897704636892255666134081815752482898848744459311962604924061121496916460170771862950904503949121119050196517352067701100983698452291208446578099728185601845794606406329579126240232047519247831548867680397740180966490651701466900586982924403121540142339168255854923391848611281204062131171521416364011245628007148913839262014739702692864402802334484346390460061240658689697493337120382175218948761290513723706339365711767002879746402998076103104587124510378225772702552214427220237038459768426583627100054831550862849456898576626365596288384910977724281145999199188834367060281888732813021520148516369562934730890592737665902034866573708047059721911256394673403352274374448064705061212795184118856755596626234235208286252625799115950771113828486621391346683455222276332422399102768907857209862105020920649709776107516358533811994213347721118897492664655716809776306188764534406111263113151922327824702577939300099252093189724385012760056019268265228304018357275306978394381976083688820251557376251908387528694527842284412304455707848808792979186671488313049932610309709092779037841413404017077708754454079969976538614653614606460902066033290068722036562295576707289881074830972252029057420328835681600240453025728855709736706611107848952616778467576770148731642511745065442552446514814218435551771106183225732910213308093387464910550034350297433801325052005998907321547897416607426083162960947754195928907553839719467949758927232053539245227296679717232888947473131456944551160262137593741408749142389859802288832070055281635279917960891783248041902158414515468177075334616603062629326734643451984222194234567068090604787779253376435174196760730789729363835930410384563887776015011880068629142662790986221262353038565675051907698164776187418325867983595001783028348347764577012351051807422997906031118046976641189716034160385945223225157158257159355477764151390386730032372938522240347272943040780947669204072574398345362816175978678880750704141875403206734145817550211598634339317676176478808671575775701721020691590976992234899169749978571024206034042234553123677861843437713342814553933649128446777853148281923238282333202094773326934936360950578198191973240349520685679600498594610302533799819819134901011135283339228461286814746125762388499291820029033803659463420883791506764693956331590583471376797562115478146645028565699614603012239882710172743838803492522018528846206663890244606847841243957157355248531328930112114392076282446504915503718051211915233636641042123707474818087642202092863249584766769616714857084406229307873575087326117083524789867313640273222029036717618448402991325651821764881665003918155548971426558475950026352171763094196988622872777531667061469945768596533119413592796376348382190840583775619442912412944033276359497277200681469599358119052446738531293826963693836857346208713490332319179747175524076457584436269583131041435603898856971569140798935034471762916170255120165098231700748645937565463343451008658658193991915799679108991924593135605973655541653379753047263672063102043112880990704097956079389885802148092189526645191633907895736819037805899290445546872926117482563242077562859744837404839342281924292869475308009451760205016813360114089898255625975633077492440211007896367366670338733938744103679758591422179198533029898671782475956660418465370586088638607290429339195395464279577601761092248587710571528719822680269366710328659691915510488232260723743929626335681617126002339024757979907353914450989190987349896692268653918302384527722450676227002052394388844242551691961493569326490780647273984672057102295247286288664338796732041523254687153179428535605692103491701900878390375723125189639386004847216334593088866635402223771172329671919821064427021139842914585097095905024277596853423721102421781458708900593184832820947287843775470424217731689041922736883281823424649788099016014671624338904177604959819415347429073289175695783729422348049260640579985109456509918800131906175681732180619445595659779266701068274035249292143281763529795380217769421310924267521396050228717603934409249796719414125747405211779693278258549796133793737271700330717965217808246546999063328560495041309517412245528694494712060620363598809584172897584065610024682718190245553580665439831708895633277486868504109148496319665290089174329378511375822833088743772706559941938654487553894720339646613727800195297338777910760605915740599464216888992760866875926559468852920636434526699803519094844526286622428277011427000224521137007347488063404305156952846891957423974770627720643545727117264552374949832552616991827054850389243225869798099657751567864524485460640816988598957978712168667294629020133910827347632333393035020600166465822009237360322028877416345816773346681612631014875958202157635200372041406503905439420447599738609138834414730019222768385796799392035946235234345341291049155158802462831931609539905942283743400084333826230190248856062491857605942997487297633815785096005487406313075335099417247566616502798670679882972983196300586728037868398749316268650676488567623381331970481156952866601698025142580903562855429172858801156819569492663992047071173156663897363053827692192605065457950293701917035732550917906575168776271967679898142204090108043017802091818400614365494652069112491210601538852329332125549271427957409311478267036373313898853214460760793015975821296341922763328678304294940222022165494755668892097791429316772174654565358996003301212875126059491793430128620435775510164885612770303890676218002928981898102680705051882974277865389664668784080746099389538764445671383789923230243125092743564721045682615205712448048266895397114533286171544704246489672260259957943424455268715342803112717556620761905874524682710192951494703128382495172883519544877668342314430230542246392456186901109785449225798034404566460654973039606620562215886140212569296600054690843223945455855484212992378126087793875373857250121536319093582644464108803102995634717282213930109883684431652706236503388755962527722810551614726866042340500389309236370232340418746327582484213301087489053809163350441610993613036171071258851932336911530908830834105740166188714651162276823032078099721157630255358653849713150851888899357891396655108184775014519811815811420845416127480153174782965038442061919245127178001222133278658245349721145775677749959769570789878712522024561679567622332691691568980208820456622230959806141241985859164578831626617390032605214573574937174196158729525980952099737596743265494040272018840237482716624813891154170512343785010539003135218782406559225851278360411836507853798808054279022351077771205013605965833880579636411292193816394412428234566490954236816635449907256009507834934444963586315078761408845663771438359597636280333407150769384242435169125469881425982950522457246386233536375092660903246556295493160817712147360529782017255402059345109739666228921166911890063280466174247401587561415260323597061517311980909093274643911822156540629241882379248194265641253111242792583123510710932784659418269344631847823653999809247978939615049783961525745817038290048422853707921771241087073845228420729606417677246455420838099387738130861520815644275430782961789216264115376260130010732126996524199761891462586858744849319110963813021646068087387508554982284101181507607434289279625974578740270491985855208088414692982774441474031396384147472391848318960572828845778498116442448484601470793822560550021340546098299934348446566604746807973021124196944400022702997690361973852668666220047167286344920215728503917681345349978161815482797155881656745051174605830082008763681584973407874108502124259252573517383677423054405471298961939353091383074405458107823922546578289381259719728066877327847321166890903324390438140604819262304850461595603541887727942451493055712071932968376558855343004617353500939905895445272467443146572264678991486918524301637054133491809106667600913460748280718966044313232721970272134491551562009793844595990809235454289072841137161420597232580969387414271879908463078723014533180475706856847935192711759647068816828714901677063779419168345835267930259822802790516916617782654994583726644201732052573508806646608980104589923722513472515677876983903359222055722833994846418886052494278096474364901552046826592999939829009562984453095781416935445281389635017877583644010412319052128614491319917904174454344671070068808279144524329806284405953279736569376381971351821354517924701115203439548672200074454892892296504582780369562987164901652893100123996658866001433325670484408648210999076059806999641091498115920451097975031207049292575014297873839825893377313608990846597087954180983652079673639851210029787594403727561328680703988540550134643315972771432970406010685030010698765398858392493286744682592984942816902530803594914909882041301190927085061066993678365827606764501286791876625944100410334754194652715503116367253323520829811051811465420235610013409843380131376222539969568346304781256580962809708453896884348716472820574679115790047485194175372430488301629858588488631446564764941991541255007322379317177447518556262229118147330942648550204900439281046373194568594104920526538388024682076023060454856967298555049693939989312252147877308766067585553622902538063492168115862701665370248485821927313128207976041685531015799646397371080646240160168953068921572873973238362989506018016397612501013780541922367691044364984275642369897555725124305797328537852193151217468612596999009932741027714347191141926431206778426631512481773262169173916375791090442799375281275460348711741092723246225983800424957701618896454610146225028194235403520872417761238136840881273593984763274297583917001971955655653632307897547919409615884612546577482915793823516164320062368283191133047871919406529002036408868932656697813069255740326637634763021260255341741260013340444289282401501898416806417710133906694589280456715559612255847424713022259755822119971535012615021546614792853971436287474712196894640569692479738894089994268936646482179055076127286658989200467527462716753324546616293864884629342735689968964066113708996291352986764640811738373107785606552338703026501549841933683399549854353092932593915938245306038985521852517044315517419217398282845748404578897094748920638656937808740662644397135940057041894080078843762279873989739900661057979063649622124487718501913805999742842247456903114415253975028601340598541045459440179715946811896581001201907679818001732159019000944718518616353143359419595238439918938430914354638408697482732837433354350239574011113233647643264692462468282595792218886074776365536205759414569488356969725008960772396865744040001919310289700052002368786949456417100001222033427966761390606031427643152318393680188318748946084786397878006751013712886292245924283969684442008495060487448618709441240255940440013072536254870283484346028307290297965840267366714111828892272337240687432591132309766116775991705419028262878078237521312308271126888555907001359719537678858051903373614470135717861409496881596462164652761062120549705060336691487512499858282250826133144877924685610040985226039229540636912641582456007187874590984429137169931776415982672530520894655009498435238440527835235361066213788764824305591611811220252962003233919108015725185445121024983492703137920898825710963015256936098594204600373750516011487904633226581308764994969567969303356040052201350405485644195970288929566541275565143229856001155903559058462114819225587730620490840295815603070418021505942103215399550671192797845443603934203718038555105544683073660315218791461675658648267113637556297070435844031507050268316692663605787366971693251936136110951128732410022966881435214664988910682801454076009101561847552833924975908795871441643153665305776949108133310656844676533380310911404259658680898066407167435977045900038051019153206768237548436446745547334243912671975432565232281105979252387190290464848752868911458424006571011713380671028846167690300512759541819515219958365510568979537950562066798873506123566895834889071723791152097676612287248402213194325197221737944271977355357384272108734027949414853094821091982291806342033205695612752986622501284177668937168639069671731615234140048092009074333252274579076143179926820112946901457407612648821246719777598365460971077668939322365286456988071585248786916591547033380233193684750621782852749193938001714167696376825043596205723179051185132983496115529726807189887153172278702171464638580780928794217581321727902186449110571429346529647480913461040130719135306717207636334743372160522434035148670625542754875009505732840100918226364010936855658570309078242001619025469333736051290519677353672804075770472625736123493287929043437920584259950347629677986686890854454561784491224666284413537505431012456090526651026114886365471810071127898207992486350549642856396773654549128103810630988772292392458918151200727306441929377331365854199792814992073296978924500652472087141786109042418143659834512893812831539321111474602854803970697986318192409721645505110190994452453158537057609160154056520504891229946266460928500124018487642084878890813111603564543464737424748250989763146520199973564995974939614762364678691418637657942145323896344488974083344098020878299066848915872672518144113958312031699788216777088681180449054659846971096659108938710889290184992358440178058301083800973442575680552504421673468561264588961042317428908338564719439507593304428757789480071103023519395482113651738290237910142907934526058165750026959846017761348462868267795660749395488137528045742929514235260699091652397807522159743110854007991512517991782494448209746766502473974303000914323227274171350772614951967143519714347613523933536732516710111778137277620939942632637016645549417680748095019141344440738129122992354965760477438754808082231191484499364776375002622898433727486113864616281483168910258940117091969085945528429772474106625071878484921712591097023547872474752264096320360452695101213965478509096406144815448430866808146644522030604780763762259034666237246789324105513581359062676302088235332493826291349941596599124822825900789016182883162033432076098693846076671698725010278733058599286776732670924662890382762440073961582248542653291334916580038381085329681998063013825503907524800973319252816967864387647672353156170233668849239537220262512380574348331593264673025783962950507502350995070357163044005338567205718860158367119914826120350514738083126761719943412652178886205070638355787282587674743496561337142642684959602623322497394065208056204746170318020098316509474669836403235117516408985116295814987697201121903897682405419230016837831991639785316621026673420826450071708661029862296669815944898604944951830324524178026545036262278209226317189096594980544386362322718750424921108001248148280801627444371197260729701715363506627493523925436113593792791675412497846445583131767200432271973525584737447566746181322079141184973721418933697270455131142698598615037873876960837395498599442724635691513043290450616005812037568550587107802511446798685925099006501963142242303121407061782182753994404339920122071564376306799635322210300351217440014266230076319657241560169734534435735573564210501839779017200449251600386438039732157608811356548704651965215236870473881581710427909056481691504458314749055267168910416193985138308688058991223472123058446203483219904626223437539454299704655630255596222835719473058835701495201947158125029528287246087661308657958386696559278630940434264377917781906355993437292949329443451538787934975637121915267397123800492280749511856415693556129519464336028713064205521962060815593845059751953774835223651977621195941725134546828279768976799722846520352523549248520515331796011995447542490328619895982185877781329367126620892004986358327437116509695876454831945527590082322507480241895942398933552959170454494807211496268203636255589091331755110365068799840764161787774656897005655001582851357664918831310965277565847944394202708233279589125591494213586925226560081894610587266763888767098061794811049907763723673274773123191545788240272549267701132063744642368820862463922914375626773721503895156801722810535566710683888613121469472469966118950324985896333164280085723881830933050529690803282829773058384309923759111453611832692150394426297546401668936146352637934034211396480834436720584262676074370273521652795872540411837001575385579532495958528240842246928537755757338245151380879827779201256494555162841822492100517057094146653770936463733115328334234895481877361137019064703909035547172779305225365851171568228427115178655711440939054913730251982534515732525029393208600918794372645508336054791803235576136381095020687110860551829814277556390488755513971148328980074648853434871429546032594359788241865800203472338922484725948852291301463513598392201140274642379881573619310629416399188940772993557645028560775555728664421794133961606732040391043238205940674240495957650900577170713534846850684678573439467503732298039621605378501930380645865420690328697691353547117125765065148635377749699625348200058271560525843174492020202799316488948513294384394228921192391615384506583448144790651471845949739783597086943815816877931821621333745870339922116408095095044410685991186655354590251106337343822449194416233765047220599582342876676255959422004116339583671970383826615879087997613842234483986502588173957988605992432639468255825105798976537987555305705074769413829925786264916969609363785078917532570849216796804770048635368147373575951013493276720482893167728121063871658822377801758113583334689837462289991612940893362200623566414216593546504713723552943355194192120275587769284408459785593408911856792981098603180782515824130650233399934194000652255412232994503308969808906993199185412919395202879088563386134601982900888030526569999850488940930308722776385858033465532740759178370532426417228862298945880868412773130376322963793409329398461582656743590123582951800408910568804394820554840751451630995890345267955697391238119977839793792337252206573524034537437693707783899919413639247528629074780920550113238512557726215918156795216615509540933706188241002221064682401126807851949315937070065906613400283206548381145106402571637057100377101065752873674124528160846527717705379872345675427493547822078067874729450880529790432289368660264379837181880038059032754601918760203968437018518893735187100593377298223691864827239542240335086558926503048340125290169332977146589427763560445014364702065355869944356969221751301721327046448202275502980706999237300003431130821573039611758227378890684148291304991792314167689820664254215669066853180753474033637925432677849044042785331907386635429246903878879405617186009875258517403096905904270117981634962750496644543670462197838942154811652169733840866240332622075689256136932955428702529025035873626556302368264642762814967681887112042521098340723127277659536322292975613171854097666549040775101707756023040711052537207896978626002520783870393993496472737042279682871716584102915325085637368310283477350556150331862664355078154818042713674762686188426898002842130224753749025699165137559884304829962754760385775927042116702161947924613745589643645250744968383719052488149805758841962866051587216076013455764109363274198231313359469225732903162677323233465533791173122739655911294156258842152498424881272903154921165972768055290704493651510851417091657494834213694512095449700475319369930162036967959151548790015741284346380869433546158068307620850710102036589339934537932567192894155998090961298154277805190406069639183833221579163103463357364340599550307739739028867395546959079856719102638376503721453749131294042813597501106744224905484737808293294320412842135788892555151027366921609725615675107791367175460386555329930288634141982254650762576629336429880543451067305126042254424941197886316192742879773868002593329975945565855379584163404935030355670555007983720539702469490884300167480498919009132885565526646794936350697669262908162555597291798876487255190996599167886279890907087786685330864852553776148042479230417867981850698061979234770919418280045233396463027730513410272590644358223026547587373373485890842848038266569232001873601919479520437200931234106331078320432288386734562954332808818712077437758377662396677148273803788827177091029884107814024364063089844581595473877604136783899818156192382328420446460896495222532871840166739923139867850497179674104041669887908523363014479444802953357643681082582050260645741792091912054171577996364145751675651824406241143222257548874034087019505165528585694036075255429678243414412276187328207605002064015338129596465106735340336489617047108291987904483211095590043237528711082404255666035324603534921505040949889714949008675681340203938256240658740206316097407109252586871533289308581776594033879943697444579350095081303665777841308816528887662167907227324735578605963384237940653567209305297237259067952384150776723363119940666157794580456951920778713309147281986043852123387911716124774412302061881142259735168064415590410249921551885651799631892180681255105386059882261570264208105320002203673771826868425923291719548126594955588961005073427083065604515502781091586278031780737233162107966644837678547117397258802377511273665272817530086623727606932376762862815476715422770541215599544887987557009687099215706003461765470328626365291686347592846985234116202074063746307313296333533939762536369084193162718608874217173097022183040191005025507820632775226717952864858160078355270840256690427664935032382106929123183546028029849234177782551727673951109714237542582311912088561261969345301583614340846553512932868192832965947446700115913920151751694840263986783120976132139892009207701875439093716966168039927753176908318464386530189983638183194913917638199858093741905921963118314622338752034858900274237837811933381286523810959965380282531862373290787815234355861588280793323888190138794126883555170404738274578429138773817741627422783889616951220005942979387601989234062349973419277274567856613315930384659331487196765270613763950455999622182297969230315093192019192355469742356566798823184816768407495781584854790361662697628005873834311518583333885903907069471194977554082879865980055124596371238351005942231045418043266247454455482484665371969957794878781539812818851640497278900693402385254456042558667890764652091624655888866337826337179942368191825320989361190295619036482519752266696727615653759587686032472496323595212435956051476616764913218920693055371382683636670106092974021185550956311490910198658390647603039815585167497889878034987219744471319971618509566036401989797821116434054932412341219700569891450828283858846137994415737576831969655861981959134791462819525582450014200872330997175822555963766811020581440025989945228452535023898552603634119315691099127580948942313579318713932442691450393395543265132317700625302859633626537460917198779450564133234046276203892382643088746500791687727066497306185006043552074628900382845493766962663939622641379752113832199120489639659756206563627118095834850902658817074609519933664144805839305047582113997417782607353446225020669905001423689131532418980754069206709511577911351458079536924143791173634167215811971654185723386659819816015270872407508092678104758152392834863017554853400956126720554311522655009940360764263873379574106943688422460556667430596631506245908762279776026748890386981396913686647270344570467626006228053538584232049857525513605101418393688605856067507474948202410856796948577936071560452228626876171098191371371424927643963469045086306495415639996439872863389369347921551806784644867057679887359855635867791913516920207798166380291168142148558935859067789640756085283501294117262272365135028410916545159214003112907759178826098508802687258137359091333933214669022982153229747707684231731070134317681491823480490137383179259720926378463179239419937627262397466516301508679779458943136746019780638851665147930143498344949227545272525372838108071884937932746800198874825533636253035186261250609926918199429194809972195814065823568192346914438158640789343830590582591261174465565216864996626599501365503317176651407381099482632488014504534601259956180386182589024902614883646975737846821516088301377521836741901517545371155014573207052723595528663436114000415088261960017965235031089146600908390671118196891781544198697923218305203337956227843945012945539456106972883705750535842515173340356202464165950629086871915131569022175636575338427222846325720979862302295428010032771152606873466954789308048682753391377768866578082512315618888976879471054185135495244426522157406968070406276075849113780671623169795147966657532627009361316583679377210883795713100584392193304220855785677642860187382921963465317657604048889554255301256544455466785240970347318354300103153525137992296605633702312635813753908859123308843182798657795689987683578883422138964028021320496624880215966008986756535972469190178569254256343367408910640639891662474092412966062588089946409258191922268325758969774437972311858200427652426125668966836696147321430785611016381107538143098324660559580282447295402869616165801587394798826001182799381781470096506804452101360186767368647412618975331218981208636657771062106488197011217199620765458178214198050062175530601179626372450706451859476179425931657476680386546753152594172939323074779964193517228239104520714372635783460119744800382336191985783550239195768795641854545889320601332111700531180850618333646781838104247486905315308728103203090702304068816886231247741870494918855159238576704725697108464366547550644643117900115476960975927797373121824206869268218900570985406767737388982859358925068979072847059914196999769880293300411809304005028681464750244178203201803210924775313852957928315239511985578189501368696117986787874794443645811658845923401867698395131017377765241199805343304256960362229974690093908616195058071354034389018132148218299167855259158562722668276654973201510316267185502783949055207169788437477758553653289983116810166816788624325569344534407987049347895044689653504656687714680272258021238525754371330288626890956430420089889434368476903133358946854747531292846628451048484568692959016889127977575449379372862891525520340798131230196967591269987230435699633055275488385824029026781409152855325374812380627898289178204337948499904946277746778227375919669440803101742106160751979819839339641581489967353462653309855007272976472045600232457700825015171006668903220913965107132654688369040969460709515364432846655771512001286452710872983261959582657447614418774565279859316860198544981885773014508409716639393463420771317294041799466312251280973778493587375958235934103121266457740106288913699876575927445258063450812586955200945688624282608681113652345216658461099684326156027189969413910303203883299606625564155192432746638699413533138167665930192521881941888958766395290171452923871843147078342881404574103189681821345412760427026036108826094366339966575797689720302588433636859619398238602875907599949698612675252386328519981502428148094486643462644431227103608220791203710227720726169114145346445778368310984171774579513456611734884455689775226738926545135802108720264925594045940704338766779029432329333204208760278762145604462316960057892014633085298875216279605251327612079469475092776600664754408738926063565893360430074470379590214784446320279608927471403646571369157274188314266027057529904170465908627858034402446811444303292480689709077972440831487857189959100451252184385552937479884803638633627747560269652982734266258254731341677660955347725116279542535089372530673750469906410197693510792719861957747610895051970212881854069679391838378939595409512075572238505298585534502124193911677425062739513772189622109857148414870382830891038168346131483140718723702334235696273213531334066486544626396684152137636647878413835195339679744205730904075683829368266846079945225781339142760764054620254935803610309393766856681810903269013158824708608856727927354430415091908555734652230602691427422666656711716299938503757926582443500115583344774666987299971625849844381223941234779697930631245334681634717996472508674292561523737324074165108123338773539881627371198037203466661762905732404773990542069271006483647876762422615109255938233838848217235786052919716334442086632394074808087652111209424823276159448093207349615048784696119715004305753849658287783755988105179939878530327100856080011225731186227911319040376951222053300607985710331052689544285061372870688550570062848119238738296282351236311800161329493141494455796494960233149943884967458451775710796624141527750442543586450001280758195472681498349449801163230637536242955686717961012303303300604072838763729126039691771530355517543013970662579360170926844879589032063746448492595615321861265544626488177016253499142110544788918616543933458557734162941391946215758030810607392497598000311992437210526349488122781314129327156816629272371107677803948323157662012541532996678256719053105922100985787638771135770989962256447916446779769180873698696504766534558611098813700741984040039246055039864863601180023751763030775714213998026402138104743297740719452160471659822562984298232436218545345704881701480690972087235341976675756751778244653442877683200917198507724024045377487017028087533279595931837050740665005925772692687932489746839953868792612194059148608048969945803260405573840105104645920767567791116539274766331602473190923719570411794801655107049785888455893044876075780484368483482265312812504465519454166655920842446741547159494839104276723603115758931903409256263059491529080282823487232153131640833003524374664613647463950356553863609342525970583257540021082657978004855291014242988154292980501477009812296928506434951687693100142547549044667040981134425941318983134674931785424178266420776000317192938020804175166268145974091828851089026041200997703067607681749845526813212021311181644233511839037938125371465785497688306528316058950120638346639905704738840556773570939629746132399389376151925436268141843607644344430306731440848872824161480328919341652117154198868976609056420276623319584752546437164996859234317276536645678486296518067131259332102144483943676286378937141300752431740400782227627922323009633801974995432627996702791562768891857876847242443393329077610496347970554636788569761834959477333641115747737607975667532839608842549474775271326668071267592216703820647892401295316103887316736691314180356656565947097466277712315066446004202607598932620588839675342567982191338040669289735919084843457431284876333389567479807631584902137362806509281301083795622619563167445794717901112634809627234346310200037025855458557832699865589783600348357216752895991178688315836281360469413902797140767779232698679142055654309837701528086127332318698084958247873610637298381454109794963533634820755115050920734808774824221482892776828541009981600421959731503934243976076151695685796969217507255556455132759057020752717204727371021530355503880666244631078607674673041960569188992444575342663074442360064147514066754790259784301363748109779257337031246585799922837061364037225974468853154623673884929108179081339041901158685727301868174991334361843759216049672293557526518791863591818615028680103694518015189949722501218388977509617773827966270919236230977358734662033568130142606444584817858230250408930888132605832486199563346550339997915669641395627422756613857559764687537818766166907532564249727393200384384316171006359647409748573375839287120720361427277920485249660548819609339181332445067892382983946697631732669363680398498047443690715710471382156480007668965967823439559108193289739425975110248008095263458714224739641994738246456820054130320925634692766095070621115506507399028672891360140942269782700864034623285709032843873207531296745357089440004463770061826479223147071042965861885882254097859553549314478580697102627532901590125131690466290403140118085216498893510441101390116712530962699013677206113233735381593368366184560714416542563337536685590355766554173278549515836502338063961465874451845047491373499350206291472177933456301579634780668518964623928430215939948690175443021851199980078723262718014725944212477426439789549246996298374024382138727291171721054150263147728445884012947961824759209465749811531903814607653543825257471746625095689903657186532398271147192265873529340916298578681230917241543231349183461376983574282869792705483939811914453817597482157927746087158126099770968577082696806260826151213678181024995398916729018308538161836390512997634995279258820467839822738195922134191577020629333952468104749676786963376175105330985460505111740079152228663103692503839394613777184330424802199354476449582880417340036856361894955010420149394116327870699985616319855932098300391076548677144009156742483586835295002762954850923296483169724680104658749067038743051819585977634238962044169274865956196938813147296571867754621566866991466981228254780136407525896987512413251182797358373699655721963781835080080806623708838679071067007894012065322457719886364486637008108826379331162681187664402248371375413812833434631419869540414479150923649209163863748448468886748777655439183370649610102475595057775473512782040638286251083357328829253549291918401363585577365612961763672546044950512282831184500237823589702003331455726531401221179602229912287578801197112616885076756104745907000712970782810290162393132557290595607787737578557210994131450528559388589944408892795870697409929551986419236129228250149294359912055449436035479259632638239845383064240058410897429759334815364060208108529026739026409156722671754695973297466995975275576582116312447881772934536827198496956716188760938550003083593117160360994349970253444543430710036866712115579171515939668765264550216013031566670271349421121342157055483549861599802807515987285740975169326861728797364656860718676027759449502702864223892477396164710321604539998922702665943367704675109666032314754303798175571291405918938264348013515707029160476798680462262477255134979260180157744075977745499542917371783562404382355398460400633166696107337470695549938288249383506851834969868547616046797044922729648660634219807007429136211077715027661809293860265731495201748608048616748713174475876606671047379767553404837606256694298869912192860714878246899044607080033841760450245706551658833816749296365061680893068096733003870202610625139123575645665727916178680617437508813319802688453927384973577686617829051839890982223304974442158104919567209235056340045513906444908520408607377964534239207018578045337176432985742212252108865183826377160190624908899226875692048218623057644990837404336250181452337236878028088621913444560266200295839377974253137243474596576513695935282997654277908327193765442516266266740653669598270934305555452243347662958344716390762268765874731584743083330330984202739930427776591575051827586713893460188538823872542087554071542029357432477304604218602270792537442519443036734429833158342686071221389107528570253708771800896745523846088771952257519772671347147379165667190134028579036005359111040699693882087998203956569989163842235711122426026534551073643689440943649277054765596527456912655199134403702829843436707329517961807529759115876778012504529672848252055815334066766068523491252552761975330363767669902831848756764027576357743699179418235757146037578524804971647533680519546139459093232496734085648986671769641716851065312463271620738584879695192556916037265755996169802791813404614020921043790202128776698120299469731962032040315811651092136630971417306040041091939344046898907767126786558965170191590010087227748878490376043009991487795299690559878579057205392841048626715807089552169824067810256001382970060904020759681380891525850194190113608707551758814385707612228006538215538699312432321958161544990166434003793499941865171969236354514557651734637512378645373712804749068048142512313587234302095676448744184998089317541799337092555478456881066439946752788769467536772805834354618783398538292509853142459343709256807702793862024011701459470042369657069218481096145020925183318076666732909599099939164166301671903492924416481216991099672320593245617063611342449099527577917588741217167577414494881773021603968058854105208386652265354489330169988503944789776517245365901354973073431711909710789668213943488517655470099369972660595134396859331685051081219466713351352673853578637324198074054293191064095997058197436206350597859658429855936072988087919005932552573125706755490851423380963621317650675118191665268086578452378133701363623795049102054625197118583791605603781623350022255794032068734330140318546612692427731769120391884518246129385824556538346186088792130018242782705489989701129876857140627309885494466220888156448603407666160280227914744964909665968168014004978149657733411696804003677367406697223207281063519482417442488361904517501573271128433454192809471549183445936094683620530701874535411222000184065559870086714260109919029446576756329706097422459283857620561533645832815154243445905108652887811045298503478200365477668136041739252020109809394018353952877130147240471190815117227923438903339346132796221916792915175086439715305150526915312409464151019038565287088104446158563695278317741801708596034144337770097716104767899185285947456271024352435491394375122911742163122761596797548245085747307413643800438996244523381707125188535275237257552062373674053273940771486144662421605571465405655429013717197620488596485627137812044045076925087030412906607500745092993048619941674099057289977329721073087253670906851922814101140879334329785538287873518836320330396765228411848263130362417278153284237252062346439036459907642112232047802908262415520920565388592037680741310661310769911525026225233758476751746479390131742400001516125749352898662258618358506070552164417142540672906361228105564227333592261120426384078401699225407540820132023328395320155569982003547019814852732220802300431542453186460831234582317948792013298284000482870684217129442826783650513698645312380862298551939565192863394348442412608042234995902458256439265000705374474548025713275296050528262355699651499843351939355338026210936289349539538556205440705852414659746216773593247965932027881997429437152484815498425160346343617939263727902268084036165610315524415828127122437127617240016736643045032032224712397723192004143391938835925948323954595063277858522591665752515417591216675048312870777366907367094497643621121874804947128095902656968861504991326672236691247314692159849801742039663250907511348576726579611824600144399179009879245567537574167307796480612316898737101010178316115664060051777947222163655396718572584978127816954846944355038030055506785804483690827628968618013810729395290711586968116053528316604666391737579198507873767338454304998052420192747009456537737057543794774580413604362513768174577622958123358555174075872944757804984081253888226331873972834806518868955211331976987683124117361136776639528778479764137164735245600302330942238193041448061834429872804542907977817051240670834174818952033982799059461346927558089215267220414905260738721948730938818554129012185161252432689587412028278313645321377413217262787702936534663458971705480542849045374274397175578025488090066666576005897853476337199179902482718140445889746872478636499814606087942182458215424690134496291272633656978561628992742559345118940510380949741170675138252657190364562849776130277423628679468445146353593049544130522988680900426272203237152532910542594960854533439617004288885974741461191005602899367000790596020306539068720761089605398288171836658146933343267636644018490187531332714413935123550174725755380876392458820319637649922511145635095543349274357076298717812108283701762215131350814061125488381472947732219462838100341170166389146825128170361231831066626831104578388270454364150328904325516734873269291717176401513897753899058776986820082258232287254371992837048992427960155564156248852980458764073729087989207118001756096511537643128255161285975015418783836569599957390544529956886449686256080865251980037007910382045707964931043032542921915323059403055037946487664439040912157546222905318625619667707530982358963214665963286159399309375458943483565353809512692664661833696240544371640297737227001984166608917028201544521351485539470463600100090919038336490081906805242000350394741590940731908512063323009669633118284691246586376588361293733608238234720363399082726586208763122739761997064947393316420685567959110735553975312262330116426608525976038419964850196813285401765733546038135178297666476560081599985112140110748774670097895642932890774667454017661345898984015822671717591017222719493187321929639991254659142865382332604674876611684748623461084803875870266684597415644269034685359703104038669803114495949808019904787761982652098610850877151875603894849022290102088111996365379829825193181286184573119334059030193359851749568430351546089159606843432019905726698431784041155781742897342587527594199059680609524985172499661675839985812725182090365351518338255268949671158502043947629943705267533196358362797937196283236702131388235861884674732202325790958703030626243857857621563640913369664968122692609367603190190183208789454201998868964372521607879804379381421349234756120561426273071369516364994967850886170265947538995057837948952945667631675744736857906085403581838157084420413735550550010336595322540824144703421446164924754463171228333352152535785125820196406707558804227916120138517017489508646048728654361681714689651469909028251303713662853691237631578585845519343631058291994172077501402234070841025461805615066774445174575878813950110629427092519871373072466159769030715828390559486869968038484220913383776379212316089312073983087788052997251833066091409882434871989505730552751777301872166848703025663669585756035185648637681110735583578491639668905774718950729266296312203868867721439324810072171097681877712135879102986172118347481354725464785141415423807720048802194224534442614062966178261031901868569966910042758095136442835147639686520356924878197115232170770150015565390089024170449033947107005347222814834136329001517125914215460111631109420879214548045253856871977332030845057318684613420032969485601480575702094591589200783341273587351511992771791937845995888035442342070680510724858017090932712832981082995816584329881615747332327431061079623191722483159517680229701754193475205344119360990070228859895398419406608496764783408088394886995244563133067675193969337216369288259302905220089333042092268184023863168774571371355870312310284109948531925865103922257448887873366325261482906072732950461622109976233932427121450748010236807349964990950277060990964141539330009383258275976157364160896776078361797325290482902793349391846133846002375042484994808452809165358215355993372439224337747820155825003029291490448331872434858323284256683492842539184209191177877603755792400956904673018902412267388162734892561668155191991359906181861765829813159231610086547240733849216350852453554989525984394805824209123327013655700199670700210290202908750946514792969118705685539513442381530925906145764582021631580952119841428803919186992657710007562628526767735569129200138938578379123958101427149738546704871712628428042862580799878949380697058636407443022251584664496493398436192262129379097046495447142231082300661438812300113505079172173319983020705147170398632781095619393069543983744694867150018633543428847472151035510368220530160130923723969154521698114841370798489076049937398167810889839200042760000082910577636061866497174849024817576766953315231339781655248743478599319714975855471358946166104166130683338000047295212991530709928769342990710052009718392100316312375260790445808901662752663569650612468371444563372472066997506932203274997337134913492844170651957065856609570414611308645395889245777589265983606677474672933366966811239003595442943993939897713918262459390237346088697150192688857967563787500461792726847058437491638327290187692442041119610309810097373155396245507658502592888703532134324986910101495568922541505610334772309688103558122208741970647241121072520280444245437972152499572697131453036077005613813868879670805281582593808624354165130654453912874975711401662871160892956143857016250825746612312433140386718762188282000113151326443603119536284756325391034112921469122762592161765658283528086418414215816396012285621081574387647558290211727085325134783862430561452840744205320612088240915631142086631606889816960707138203278852546608903482142528213525060817195512442121453775158649280686356437858480619717223877015666074724038863696089226745589571059501670384842956142780724572093633054162963360835249536019501294814755068740140200970139178529169234007282836747881274305547324990237595438324234044462366891151066890737617773362038627490238841274102599678073349147095542633272671686132691882558851999365807562123032990875569148950227471408830731609815220776982049164749218818626016265716634778747676121842403286025186568125944743344089278861586844281343849084407716771217199604665536845187968711230408825122795919905366741649258359104051197682188094455699326953724298464981948770456679826786949864131901551617550695273854992238819651365012436506353100617353993580218853230684965365480413195441788900606817189833977328852957121267157002495090110184769143996668300301539874499335976012508152564737264487635394678131697606589105620792089385574480496083639101147422411299316329757339015756352323165767376361768838379817714134650713201698357503021601756799825324843816904845713274021788275380040222052990544181803870602646401094870337876700742755711498356388750631045956123820990082452472156195121945114541488748313188468707994503313668206441036346982574764243347754841048530666190428818684544698610997534434969299219978119073961706500202777741114790987960744102639101980220931846993629610150376971702892617611181330414587596064967322827668220253821646122967604111397205088790598875223555268402616639975912460865633824205288934540423980758025716298596747045915750424401033681765448622711691131325566470190451581072712422000780245245306603339659324684134886582044477983418169201061340094388927330479222366125475978795667794724517669907233336314814807914107656563544300428608485910048300701994941201796230157198363043190048522377696631393159632752743527375149223503131434490634627172733037189667010315666376092527752679628728266008274848365680507981047647758249868158844793470701710842985811681946097178414754532454376349358723659305945011830614228067013961103715698324987497375341551678481780657349375256197609058749138346402265661494932931812708740040992733430237260701734068874062032218553612237034889320626024792019276571273142869402289555103397761647156150539425379751870942837582416543584949005560912863551428784047695299121533412474235718581780646897334274535795495000643919999474124869043277136247496243839836911566554387607813650994371497185650488863071421274806253230049606146792569675207099846651223718317267296096859208844767276561779285650800082915683895437694038460178140136130776579864057692713214730445075585086594224318722744079453686844604851864068430755435326906210113318160911756907327272510563549689827106614785295678296666457517350400588448774476715433568988783421948294185544648451246272991549399147849415707400443980614277694332204339114769529012709605253202536516008002678101381993656878504674467871168700324679960564171404714532090933488856769736054671051093535138882236009478605048047031957935791109825233984960492057623021126994942341171542378405405487824434110851121457237764318995069351027697734911774172697684870803311916835570800279688229383339292394010419387796809568199056394255176008016467030048093795965167536045242266657031463249796265638998650063650241169491269160729775617941001035027515692071908511632073421470199557444721694402629811105989069513087462086308913945819975364212624051183075917264484103845442541364810596483509073341402727570402387601978322882690720378191120385020685765150302408875305765281180152086968827117399389585569018237362516636476006679580885221544212768187571199488703647388232290731105108864904888171020896458906123052194063958172603931933993943048090075462311416045868847493771041664959832197344199847841202705951070859647677753649076396960060126681658168578824608414523876384026983774086654353226147841629544010725486078310791652303959631450089163702744387009977266295652497679305200941001902478991775118824727225820946330511248917523483116851386901867098553950657849227663206682297775942885747283393394213278524193829210311299086400863573911628566251984317340205032181639499936620647692644061633572463715348366764545718337848831523667914999648735436701121545753400821228761788398095718641744024550753517627239779919477667728970159658211062813008166243717843998027122997338341039547956481856734264361887807452922447831745035432453559946177460552183358675109020514046419789812096125429387617273000269275509951645893351160256169278659967513314701853318563524981118999837524248718253928493191913596830778528662688098549808892545180866962074500332205159974139437718340676506866919189207277722651926430801293807090414146356325167142207647728044297540277165119252411619930738114471155339769149805367606709598243879796704950657867475686867102975067815342848125920306273627425437154623894050641292167783925022439600702972492253343003552924937257988882221724326196304864767817271862536060044256378832340858269761417852234042322946580081076443934328175753425059526285515838610671910812830597587092006616682523467733532589381167984958699999796193218893370312271273855501066071034776223853706746775550050499111610951920039975536203741266331699978944466724500989090422382935988031631139869867917557907977932682900699787284951300079669194071161526693270067852633154684139933766948160089498848598246086372447930886297486214183812575149065885530519992337938733030899261308439386439114204505602762420390435487899221684151640339238928516923455259242371553424733844186328140017303669201042911577165594886585934941878981554202948614818174856808576458548146863937199473664811270152399858933513228321431287121604396012217861687911437106952080657665637424173141339887513252095190130954634959441364042731630185807468470880384890204719669538620198782452835519316888334333497961120428262927058659940462536179849283227429598601463248959755724625768475681430221825123608008783992968850092593930595680929080361608450540469131999565638167496649665111590282999327976150363278735417558556229646566105839712514585567393733168833013052090180806447069344338115001476428450448172118129650328225020912071895741593183825766974833043438690156141107419547988468386163975902901683308404711323913163382051684838548406493530040321423526261350020356093161769706963539478896208233238749675309763244013571254393675086723764316104385485016479781991795036800661684605079861385957976064475756277083768542730949207299293977604403267653247310179696499977231189187465440418001237110530982490653296434876602124883320983694128336012586198984492636331101000966971691966733967777495012910715675799834248133455077393224888125136547594036470758022451618888106846594835061467032835132911064363183930494329397551580305819215950674313973548631625926127790037107381860959706180278744570376489516481694531106661557481515574257076904031522547888497518376158992715674966999435629542732105058975879439235213014925961603462548459706728028936782092229852291851177925101565200671870106562609756060998488013236687905952806043285077580343152076576236859570684526193047514149228008707349762833305585490279107271645792961250042622949204907132945350672454806004792840120592684087668131821355794285609987408008050275019662593761934612474609513323134907884638998418295594025113115714392411619147474345612217075940778682886025987477882340663846666735781143328409583560740938395607509100915858597550092633795179278768196098524458269302065318118458213888948271800843156466648090650006019986827367441520275280756006375702008978899392320611993406227518231963936864432837924729674834637658630615217552100764791196049573821126262341191218162072272327626254945713446532610097760561555298414564464848031481888734942759985624044560595638915943361541996664040420047328104222877173327091397402085174755570914254491895847274160343120161930742729002989315732467841421978566128379024505236601522652470562875638389310789147453175329260273133234968793173693101776448038996934227251070270570765248882975654551072291100884251497285654293931498329472393832418183443536751532522532484350241696580856422882273501047757407888416630055510909821468940097982430342805693223202381770453858140395949205880211198937564169791594538151459776563524746072539271915823811870200435690311046641499864212780188352041121449191653855927666392962610557810876941532804896877530940603077421015931792014669495887154582137451918606890513233188259002998511004749506310936298753825078133099118716136392729297226961515591672330582457628797942643940091759958261450046934102684178194058938250572537666395061119240684165575205315021030723617166549024899310763352387368037642253024780316170238591822490963096766208339548092915623143585004956977610385281485534409955297810069597666996100977846321914620268960865000656011291107830625974117886477892019321343362592286648797786654392601634713720324999385894862154810608245066234211724858738354462591310525019145206444918390075282052470917451847073870509930943535862757961904754123726800564787568760945597848952459998662208254691240037042595836836378668624574360703477278930163017491961535279094677319018031978109605294395077550200869749548790452389175582346482428348786251010388892850905492468577471742691441645805667513840188622767848487359619650087879438100039835834115251880562994626605298193529684426304943774186191314759097159046983822273512757444468571347758443631245775945414942083618070833000700550424025221541344204526473586610048117207870490463558763216426664112149591890635419958952926288874600917119901977618827187762688713135725700807627159917154294186843649921656963806499401603414519863716006211077067045151936318371061882154236148207319296592093781784727584550414060449898385023427067049606283311126025217137614049656379761985068823356035762004625219731746058018887305611801254450938999122688677592592198065197534799912469896902163009687844867525932888918108318390356802400178181437647837579587948236438209280052305909655475291713861388527198296496173508690157565918156259423602866311778524726134735583135420640312193023059043777501061971417314381401291239263402918867007492195510948955027651118573882383119874925341794701777100878386230259101175019341451962278368338998227713683451305076563281703861009842974713595110372337660809351776962601732877963737800215901004124827562236494684817119449881678840656456175407538894875330150997059795169134199860764756616480624884866396549704243638302082044031695549677480614348433573469637863171372746221291003210770483240426869370004886467236649383772924642551314058358239996992410582663744814620437709303958876470816735476884330899986656980616845033432145962290294588510835941306902330696476795681593959541443789322558529150535976890508994441993169804072824416356510357977317227451612978891701450089645423245372649842061792780057098810859886189957606153981835765227394112064260733433718640075943948267457100666505583645980911511497053761043844094871184882546786215874474475710490288889200945277750342107054479515180112822961720493384674411975331868610728432344849426516190784072780138892607892460387891442569787742166221736168063994376440939413295838182228016358430404969061748176392941012711996872068873577882080847225400923905246285978790273862477856173662837345047371946980868402229510750531146070986457849835568158727936157799728198768637580173328743777059063386631925136818317731974891825622691601515224608701898054130248700649480516394637390449139148320374550536399036020511502159980646373497259451787854915502800731837718085705727136348320536734509112969577794158391622695977209231668402316316525405094862153938851278005806626633701869770951860076278321821774544166975240000285325898762759003871315899551408434088834450186713230651928476061588929826285875228577493119375693524834212756892742077451343464100892563872218492946046182504286079419110197952070988467863774937167647182302857117257582373195078544462709512615682999418445254420684634132811240398662902304864888786673334825946137887413508606380827529570251836091823006979922423018444802140914694134616538765983555155760709246281592491080517512848516682052690732498601603666807515409116012303276877034171213349446815545555923845456464741843159072045839812331380678895408744121263835031648823665970641477505576638519333702252824754827996191211076023102396144863013062249547124949679964869200584145045271792943899795155620689350975737937687091043506672831141245156644675964580765395333008195544441103148324500423128590937577152859795629145350398322181417263167233201489360427519424179648212749935191782543693425642329443044878255491943996336360934401451801152846393202159600000849440626193024244344826176550024278059263178881371830134635584012319405180361798194705247870661008361898612364378027665653985578858823685770982910600290338227538575131907088153059279950857867484620372611233750261843124223952853363169061099630464456553688713952994295353603926902380588193060922468324471970629837389062981786703068189798331099543040611120385830565608349673891061138140759679401236209036414828251540961362828641430056887129000870056282767239138754432949061037770895408151558795726155892955392436184005673168539660166868224209756540958715091750897638276236317615639953491481546585626960076578666454114170191084447612775169383781017386793117060576371755029935888759410449376640384896754761997874947191179049952257601646570022319396268683628958463541576984972430142881558459502147916319127737078255720429280517592945204631528516682562972603119502699895098975287103909190698652422258570266789157571549250189198457047426242381747362956584925676180712105747081364863373513079889526555496383243592944295200911406174857737245961533382016597247525691305550345779301922156526219764757976740337481991093785543344537724168169469031924760405466504287955410187271424725504482166216554713710591929527017133743291691801140193804651185870040016833600319724038960137941225440941312093864480229093100966473574052753084943333898572463604589147287979211783288283086426308882663452208705790788700137744387225177886010835649239829047779629072088593597065030991802741593823959502464340791453057306293977568460242751531368901388424823613432357240102739139816809404886127452648783517417680269257133103761694510862526409250663249672723823729040785879999168607334296409402253058158032779237112859470242263859575322988874058726799156080977581038931813920439717435012649704856616476633573818389289721941789329210821963187275817906610629499478294818385354656155121050462829959486109455339759710564058138102055255358947356208285984565897221711017520109820019557313641983694950394139617285197688135064879278286070729264756151214248383112001223866427521917756760494055863900155529621274129981539490240399238873745129801020654315305714204626391160894380668585761827931918836612939147357621805511470237863696825767582128876265812039075847888357138778834826297189062967033886290173771983250886170467578353751895320686845071048274914478643624103703116060945793664859720514809213809101430459181066441131984026407028179590824623515142754372755867550646141808770856726147283963391581799952946806431589986434539388013034563966468979144868484566109899819508699285285716942160522128582998700398443948632604215188514598793110163270565340609839920496232031346857568013800841907209614775539724497817447692896241444836942592747079153210092412780018153378402082115515496042871908586823259978047608282435386222970457192100424006497349891387820407506058706540237523595030110692413712848872611839335645826432019916045217158502103303235914409831892764228320434991964709698658901559752435767887839640911581421950399239250377210894881332781164610676535474376879538334213523966467366416553794852657830893600830449096945438009148113487621261701811160594136847565214085396963988627221189066608192249947313539401179375330036009585280633809626337040018972594662358120544129283161468300032834193424714272716574318922736061324650690899797544629305852549902491750450666408846324781634886516293134788956552559845442160885925865153358691721167196302309713597237908601307989356033441636392753505625909898168415205652677271261320145563569191738192826165206359350270098459241215382664690397660987030558318486257560089586287938086449848262063482771989642065373508471340852546692628512962261960261455779368598027432791609380311469420931428976895117246609978288441115471382004346242557061652480828615438703343368360478266284583649593212266305824440597010095109027797374020513160204527761725068583976400661687669746514709030627159118142207435073084103161081953496803882083049126055306360869907707280739954346909442213266051465600422440489300094836370980093529306234477560105199325211747567605376879935645681094534289504927688494144925509353761293314978028285858156671018905566570460216233137949270378580623354416364254608244811998974456942133933099263273213165060497018547218651989636192139775461481008223009446083573428425765512395794301447351962331530179610201138799015076577406787003131600226480059745466981843196321868035357116729120899292637092863834670184789411151054110020814378461541996802199363485140640467662661273889300477790778156676629973983803194454881667223621364594820062969514128799685036716470134046992122999641880612282242376338985513252179250278473647474890237473089081815254432548189338620905906419714525043313476478218004018819811313315228220094126367473841495161924974141610479972515679613340212058152604030483159166129231351745455218673483500440000259484357367680764299574225401747167123353904135163539968764737159591996941594446015484908053151186653032627110742537428021880866737133629326044848920625581515576988926693038120796524884592494111353131046810416603363412848356285108766040861278719078986489647709044340903976422593494443663356772056296221338522901512470929497196707022915998373516542133884434733289157364368082683215618375376128493609022132562519900693973372242368086266283370397069966532286863417824823046224874344262113356337775488571164901781425965096608359742504597505733762656328771716346417874607239780876322477141257813589059333858681483704921818294533787649879871211655104345297935998919697264780315357172010362080192677222687133260745272385724558651735630123412326973292862233777255196876583185662667342969950387097472128621058474345004295463718627627405221429571245358315696883761360191082316278064099248830741212702312563850684651078148716602895186073907444658189206492828822765054816176819399070624142614351438104819115780546426425953137118572796785010192358138567349579760662686605109613383707511107079304156054461201676486815495329403750750952827202699387921612757388043231288464730467190791441165349588882582970075187409188236185449436042326548158188747410390129430225998109998336330382776570071650525589084268355157834601484747679449725289834286096003116117490856989666204799944172239100404752687281523927746212456862967128049666820977512301689968599675913439872998460896740852443907277765409549177128879936618384433575628843841838165400901954825940715655872330808371467158161482063484036912146230379629755458141542911478331316165393717615789799092432794832688061059822257545966154299936755876691399948604876048947204836136845718530883867204075521999239806641709681952725714115462404666713565506094807310338455768437677307652306471987286422564650412020083353814600662216238355103185975614116140428673691056828735972743943095092103775087431896724441104826697935794673781882238293590608289335803993689721102135179723533273860363977752589961690667149895314642051385112487370264176387685970576368707962975757268569770375790720777299709922287711455046442621954989068026848366935846263268332894465964328620292549251415102759038675183147466398899648303110120272403064754322153579044544083724916728512005954033283814016418356730689983900151377086797822701373615209257841726583043821276353409061292794676869820182748662294783342318945711498895872007952741392176896296065521468654469982912916064984887598436245724564128095480516282221634705264002242289237384010408926180193614042355055503598174926373863203417530560282986076329849605332910067522257401159467377171058814208949287199416739275210962475858684597000953789693094174848874441586795783151723398047860053720415886223935396114446755001853780869800766546679288050312719835464608046484241010220823758812302027904996370812245504308212840554114482343412261850524816536617252423396142356755604082828056303156476408179607507760156741322786950169441109775275428124601152636572084770341473335257251365027721308117512921607385314283451176400376056185835347022249492722262722802599608410568095601494502220095457423687012855255672660479081341556861878762059079807091637934803917112017231159766657532837827423123063279915507074844879333613644007598577686789513234665438936398585999599406684813457295058779975910751066371634044153430321882780290004984553199508794345544289181759671910571358617596190245642247823034212396883809762238571530950364208031858760378597710467699182509090435681369563646849659159188146491222763676613721646441481651850352344178396441586208580429157872397422529995695757967532499816253204920333571491574113390014737266592141096528700468216380069857214658763554184020013048351980048222253369295549234099455070160605535374550934828067021180949154922530632307888877794548357835465670142368658403839769534216786906958432929925968274887466141205751812995094089534659589960958307730546950737190211174925125770376822564475950779346614495149606192130921840412875951738503372548980808439601418125301393900343892290558762904359603647826208079315418969367567973021965091203216579492632116772505873789474363161543759789271961276589250666423255480779340703977991304327955540389688671079486440797458459074217462149453707614471734821988049388184695970965332081965520977444069051669033110636101720361112870759684901572378559088588825293357275165622852963336065666027971104707484543746399636271925303681846319565649765616536872625220393996428885230039277969578901534238317644822145625257663712139580784641912707144307839422929644430101800615793463562148415594569176801544095447484962463064373281603714958273709113317152873475307654836087920143615664056104340776440756438198108011121577127737649273132373032937871017569976511209392793877689479106593738769612185059050317010182724426881617314558832020874838979624869447503531565546129126902123484280205183253610267852935659636865824981017833395053914792312435979572959300029114202170803821364550751917012574782779268845428268310820580457826334515709554183841338384720127473125785673056707497630189919655775081216790471561004877719705183274452467004682231417912363906235615198293818032726210208588396529172804866947763953837368745115347319167731837418011321658418243877561211290591586816510432550645662187951845605393421736973331308347327379057928625972601522586115319545607059901355418341802378350841773792565375809972066074250428091828392582331756758539368767104986292317741789339839679848206255135807657636751400682760258453352569503977054004595236097109381219521314207525848213805286748995808465625688241430944497802028531443071024007327304512339306165459312301798182019892537998882892916383284412142489968580721959137433831333189400668501176368304451400545969101869347133894201943038136435363814828117535136593189083013373569997789375167467518615430372337154967480890178565829615175742047860423952167950090451064091936099745913401549999565361497820000857939589810748940825697673246702665839354486766241552923262906688841072318705218850123970277876184764162769986763880680452523312608606519263603296041026236601893895347766944868929222685633162206428431489209442836213951854072624266041399545282245879671838542003490150490593841742163026011678837294953043280184453832943604436496907960936764217561270849838785367551834363631690537804335740170701687414118186530226458469758746741453951703587356577440178018687690484539636495780735923619470421975105163515888512027804340145280224719523360877706243913624923531897984505664531388397979816476777364929381582729824815723069176447936373553131379304685050627764673100917455046487082987593041008087812194441912121876107470662884370585698363645274569104752284573291074832590327681499385875852541941976380681990392300043122389742775202328565417601406886696149844651675973715724992803417290025595156930614601332459685250040886967442198272176971795957829901347350982445332531308619038486482292751394199209519799259812338687404269407665457987520147983548181061086952166150126553329137675793639706813229329049328685048063546502939060934043782512470481816343533401405854008535894548429494258186710268809650952515343635727968432059579575084718683075375534788092878773121516462582064729392471686689742451669431798676282944584501548943546209402114476886183632258740437660015012446660473641551985863840967099428516853933956384381948020026868661024226926843001590670852662109381836666185581094981347323536140412292225611271085030711036496992203504456091508424748096835977094490891795250561692884880784850990834142593840596322301464730827894725909317012890041497492265208299105949531782690526261178672557150424790582185391784725436939725729027914264852792493387948591914878916724123543090597755135823672343083432772062997478856222259211221208895148356649471699565074386503622781900874166549230254030013826988139807985010400478450921448351927622133745707990603826632151081542388121250231925226479325557713942575658132865298742582927085926730748527844436570781178296792596692717715392157821460994109958703092230489312741932711708614287090691879934114754688277628130341309408962488939465369218617007423879562354279254249828586609096262870922648647597798860231411956402415515069611280587859221713403393474601158025904279643792444671885801250114370376583640720843796867673761474476260270347470070076521016091898555896908830368697654971382371660720040702950131594375800614361021218734391216391954529579066726255579745297484142585820539389469900510074263730445997131081614495459688532285540538377266205311381426936744133814057765295736304927093738023853082649838443581598110123902768958185159070100233713410895130344628367988284011918468320116884354252739388215182504705619815019487015104307271046214102367520953660217351785202433000874444615652541140716767284322361619898498758982177399419463305440190345817481056573891145073196608772071824803904767336835619077487494197957014077073868819807192958342479086046230085124426926765337832867492656943846569279938492945948938201081389569112318077744165346772066806324060299852145543878660706160374469018514726934769559256003186285216104083392841629652125751140665818122100592130492029807401660432037832035340514447020871990052162537566138098372151844677390086416591091432043258383845703722063543170745793748416079238008228137482135671576598974145103310590090221317484182723031644692505021737493108136544561546669384890147209433563285829421494852609247955587467448240599410881647979552673135113152858255276054236345103996171580637719453109156580840852791621575226180328959870122296304585874821355325722979986283307555834686186810756949935069094560122427697757916110057409745954887517845285677936445639408702844711984273552877475291730782574076175924304398060934181051102789056332090776543723502044791792957325584502972836170583353171948041102426212318925959580866840508680871895866516829223531390436141353933283880094890046197701428303363303084947152188192734884100153895503645149039868832799750441869124118012955405931835585441666361129448696657016355827356370277542065567559627087037910646912281019822407192118297511034286888367789552361788581022871938236305016455689148335120319103621335532569460492675682489681266833472303830148128959541265674923558321153714289818169159253984970778103077343362794056159667368321625037262970241561611406690394836339450613508172786085544132654019328046057979203097668032298335919721684724310771030878083729376537653135097497444160612348668041193305234475730118814625280198095995111965392895136079334329807333457043177552586160400841486547015295118474942427277364507361302198667490774531338555042521158197179758459957784493286968334969233147761674740590046377092773767426162014392734640180657960964739276203279590317200768842811084418141606980208900382242139277575829267860756445249764494817783000340886089860443766165192214657292805085212915049176714797308891070634600517544142595837513897009028479280570231905414928231016932409485520573658590749752476574456034880984258001748992512136718644804672460272324664159321548664612531899491291098809045681427662035199349046503461658810305342428853400934108390041591470686307995579026539144175425526462933266397386508387915582948998549758396812718230083257447251024617318638669179604453574369774130459375960562334472386804153954797199068833272275192578098365538579185319960677874524692967014673727608456385473456070365536630174284658513006335744071688587818727839288701766715870513482231314545731886202718466006358127299020911577033826229235044050336461868645918984815578099279458546377532171168602085399423235977223777048291820686011104273223552056776617003483023911328800486808023446439809426048064881015242209644723408066933876600494917897469182891302156773908460524382767352675371970397593808785069495812565953581213656527037113716882410110304565105579458935392446053491366174767295982215109747316665267157011781381904345462539907264304458336097999121198359107190304477340622150774827017903491231809232524817751129259787386293000013501034451360636094494538063354361375540541645062649654310739360638097768757947051938188839824066567167258434258720735392884644081982393744456786711901021634946364269188052101757290587734524188059989255389808662009344107018614891552782059109308797480822923651191381316621474584598484736679129561353851571338157129722010430581897287848375983420503123227298703207337037155405921079291537137735708283651392976032311473668043456839899830876778769037412588682794601182739477920279812229196734976438267398702764774171151204340374790299242000093625161432153368272355125761477562035589482285883666791268639093911408535801207102796826256054900447992972748985179722606762379762203131196195673471523867792698740936488688293771069648664318816295679579441528027100502298522657509489911714528928664618451070458189458870464957348199897788920725737619190785355607725827803067620330759857295427234282635278169544192840122334032931663700127052624092453214332328510509951779745259249917362122152213046101549895464793303949892355848489660912207247847958068971896988249506613996989880567033282932345245325660589194566293031709602528218732718615932350174137415269458896378916272905841003519361460976346177637359065791394955487462150860340192552383613781815412400758700723113309340209659686538710684397590289483654651428374800756101333656618707682484600313278621529252955483881487683130898314447842263128935210900102485414034881736639652284863214582097544735053940530172763598542696449201955085239827114631402693724011434914560610017330523148082118961840929759338352819616025229151055917394667837643718441549253558858850812120097724983373520943338466853912577036544000873835463593787208334971572405084551350545435312603127993159080009654044395384140364127120771502906261845132556471825168527622797775098348641164666679670440351006470457303032300935327729379724850264332033087445213906528830301240478866653112764353277300206210076577745569208574635460885869788176092535565421868187411956598043805425345472593895628044114860123920197186807269191768436570911066087051903410171055553024054365095856734139343897916064966063167804647123730395980224385458661896245257066148522441898416967329859553261962822655182721230005229862217305304192170808342428771153848170372560083983833739516977021552552250493587984308675725705279772444485938475937207061031033316332695019856468509531120054589383168346574728817832670792128053674192035754832460596095766092120316777849101988930965894039284119517201231565777580815872930994812823492342963102364142195658965310269643746311188614872371112622322723581064101597254555663276631971342310000284006131823202444041305679261092460595156843957343699614222532742216909444343513131338834174301620140946621051534354294843961224552738519897106043053787186112708206349757126790866749730461367582049946568584961321837396133575598397394864934522985636258825625465315473570144334119731707753056926644239342322125753237663158113696344968325922868157166522585066592638458831178092405715428078754845334100185759577754850711365276071924385663792942022001537560605027369315117551830142912058591066654433781629927471276586366479005139112848696593173303857784052877504738422263236417762542048317635553408331896432373825366270991834203359287767942016380490749141544990148172445987596368507955286370046297924240260855232909369168085753818686160030729864958462083899896093089934589694504810753352704052592502461439004998452224842916746128668490125246845697527267325061043861569028364936797358568936638634968083738634774696565052493001943166205362135949533978662989982136590700957278955936843986253204345227160594262512512668472509671291772617258156630283960222382867855529180173864605902780332610519248772084397427714742464621853448985709672285433214103033312832673247465983741372781747325137737118625607072603423755567657299563523572535007329273729557623601986295442593334710288820870988191148041189070406620683813753303989124165416964377793710688310391481362573031617220109235544982307826538797885675081936524445263400461341758984274885415827119889354186157236526163169539025881125723469376261655096753496685295184259712433145651273802783929722899559312370346767021181119885627553673637707476436262029267076784989475150382676795399921695688156981863407123450038620350593013900346532707969409636541024611327012523760466637110593133832028748449765331889156894862056329334464316566877262131844491681164170256693657423234392150979579715233435883195742219588630184717821718048066356377018466624800102263657319250579823449610452629674721104014326900447127484642843014542098516483437664056711338879462206970053922884466126814004490862586418377274050822558595307804186265755349177597246015030528951706663253696161932816244174274118198141012019175180185463182500131849672479181609514977569484110501658977949432983391275575567468456435791048817353767749700712442069471513392346355957027391893691297696809915066443654336975667950275685382554131771863564443902435181285735792480255156861776238359690641726859716557745394125378503114879662625251121251456653320225615393357629776075827691561657900091441668861454435390083464453989979480314548118256116219325191544977959598761879459801058834655974819346820539720021787666453770973218033827067631463315043377640877263491646275112977239376187325195186796392741287475137822053032360953718037786297173621894336819028656815734841143294215437535910181408578870606773891541029415381502083090386663098511324412255874385883614021885441503205610053050611510245808969544534133761150584136365578016874580698538951985761513808059278362073913595317332542125251121238387844207614217581641347901476562329852310412685820098311340842070157371305188184235636368873817158031402910523434196031154298786115461378983187933506975822792415010288921443837231291959775149892659612492850868644095071883769184403634110565298069408659878819195133099552575015298165843951759821347407257938068627441830435137821803049896775047851741053299376366345933100765343080923142004746395423139903057123969598084149058459868204901365816651938142118861209501838529642854366641735546897352316349018865453288707892018808114006760936756257082602134785095820295184478575351104481617770554569908120577929324067866633409061470079909724810658924474550677751290021831792019856570760835760247245088338780001975432994611899233665842418740227533517925075307351603334115911000527970678574620159083544981962213865911003602254425498292737321198989701529098300102562276684747606472721592951922610595357188372902231314774433976415792829351477867664149394012004363528918261389267291519505044436965767576909483603916592724721340924987242821710866508543961336439488914402447611535285170979465294146186918596383043166416807328583623949803137975155053670457732699742862205477449075163729605831199182629497809215038410279078759920408087729938713569855848926633584728524964920868882767700439013476183562662191313806305659545779957764612132997862104136327638884955469686164944763680160658093929745898573206448799218655238212679695678318463320214503026072673648206739323486072007518786327948742902609059371282257042874959597043851906612774501514836549941827838922807388358190191385606797145572260919114309497938831484732799188145677301416106629131262124714440066986312700224006810830988423668375262934454718044283664037689472881466676089184676689872846651889337004922102124563113106335426954055721396702905205745759362088897062358539631208383794818122838563093609848530767706748775308596474416898820460059784780363069375751618470072892411310793908991995881573648707264876242277167929788512206904364220486921740984448196346613766523757433453594126233904670903323560936525000217861476505752991384990943915244573232658197146493839596541440793693772866766881791023411892119624513066477396160295176650834548357058132696244149601827819655788297069322263332435727836662407223137722516633016356706314293956431081706615958924765923730857293555784824047803850707969630287790664252356250868460230756623344263790077665005089282961113520737665297826334769490293662730111286393553042605129935813558191336140854569781628704509353053452598765444689382780962546012285908033954188354138884489286580455379353370428460732451631022359347243535183802768280114458077872944588623769953105180228955058617374208052765301669202945863171698802014297854812220147670894227212773036354255520597977871611796680496164368557507592526590760762662959108780977947408973251195055892369415138489845156942607132149920099087928444806732787722531015132088308012387145319275040723553231168908774116487479121651098889591586966217347065380433438157050165691984790487635498036573257017727498742634530494485828570865720466899549913796299773919724515195161535709320058884724184800238401318118740426404163155875877311575263874213223044086012307229272536083919405500814688029034504744118641762076337135678915679493170414941246093430065336618567375258867367934068438154925907529543599573716697989419315654488515714483367258833575208207534095818279109316479930752315063581131233365958118318048370138512127379780206514042512826640421811995713417130366439448757729694983696414019066179098276713884660646082494238576281653401552319025355831130686513547078536481887963010770925117695006050764327226491922674957716912974507242687429098237539860939085342762367230751861674544130321080287023913496808395290040020762490890628719406951913589092347971358922200565886333681186377743372855860144219582122749907614126039992434434088569198580936731304340899492328683380841940179959368390102686328234245603622999476784344204997992068886019429787020289436126129569744318651718138586848029727815745136323897731814719370561427662745711727633127227726742249768836199855965865922160435793140971505505513413108555529906004320887594915205751307168718254607951549614542239131231014664172812893132059631135154799146376750870054417614425067888410260877370420050385756931662952699773689153129875093586301791773542347442109329449861984808548676116224237011404376621952992773427746793962291911851994935619957126603394185773693232516513100152552317458793535171961388103829575644132400737195454258408697488342954801684309755281171588659363550468092659405591069194408897472398425616635846381609431697971758524996284358387774002863495120781433194425683395942076179383400961428253874277889028092449646900392057561569268391709462010814491230918332228576869645041774435951651043465522107081799112915839519067777402455000374049230934274559520084673702160849616031483277253671522339026720511045608569446529137135131203014154040046304948484193348047601497050295044868362441749665544306486558043063120346600021826361792756831269093320013912410267974157587171895229151081975480446062219952951683056214690126613355439203652304246040072298530371896900817485530851541900307996238485353871439921442384194210642095207501887268522477167120503665059971963982114731757482845313070438430369881852737546030903963915270820278224961052085606827809721520901230150228028165212630557822563764107641612453394788921270774347249301967870014192678273087932541461577966841986351653432646617200051120816605515719899795934566884412314370121504653924702279685560264028352019740478937907943730311791112205700051631706911429448651239556279747894215135639507263225210917464138555438241598070608424070545565869427132869295894284445985971430675745549989931258654263216821027605461355981325474396956319230258265420245228042306718042673424972726668470042239322510404371117829390041832551651859321720807524348322901830378254411656476720014329150173410766894850744200983157253898842397350136189340247869596218128362003455854557186603067524959797592963363114518641027238235860270438771397365195288514914458827612013056244491431828131041739873754028111084796862750025797145592205588062072751110340943691625999684486419574927289067179996872049232362208035072223044421505102741003207023023305977684362467424380351591284014208299303527017791595755643757053881666168273535736157443192488899728915428335334944321951859178155842265669113325556247018080301779425452071076038937544141346237023031599370610720583755369205525307576997093893061066583155059219786535670619343981198097586164952597351092169232958973733594228276247736357902121645224601879304406957120610338184706516783838861066615619946460327821941177966601035340596217254430511898488143600961753776848573670818774105367123708448971484941515250628199246833751305548989661118747153981586201523785637541982082830348181747179491732055353381257927704659380437905766548725198699810474954131198630234006761955889833663754260750834109234318027365961214536388488947381661825833016774105209588782043009409932136521793048508642247528136219684163520834553309485656289370106015344910382020278863065553786122101157227295346238283097690591163183022904663211797125005172950584625767448743975191820479977048499456053024241736852962350573386104961496947495382930612559936115794050561536750730108996304461780645755922181425486718450200544633009954817933164161392894332508491467118352293523755271640457567871662452703609932056011247560314190977054694720223982847799221764448349733601933670896455484842143496302540855831804978843737458862639082495528578173174579906685838948727186340338542535833448635935237234712384783395057776628097173007741813241639535261409067725794988958813722585498213188653866493563475351048477522671544659943472545670077935587311359252183257155703185067698750301690365554358727868549249392298640588788502721301072230146598273978492359355572213996214640826861410847083688257430259594207828957103954165625929921781272593545771333067477063803783004666991490932163231601173770007808391461613683376063975745301917064363869660002395085979331481531943918890411870215964623030080914220782855386172089323854394990951923794211705097491734125567027926414003112222745032596195244853983731116391857919996709873585411307209883535309586384447374431023147424262583154915853129986803241714672907964349901998702308917915960606255100688151124609846210612093990246754967932643704068735070224333581589710265442755791261414063275021615972919563824690497847428890844672223914417989594386477234095470773610600722893869385738410604618790877740164939041840488751182617837893061590709662463637825669229471108606049645854374398812608882737278857550946385460930663770568214315976496870775509893661131997245673682681880367274764894263268198831562886452663338553677806705835288106278150129827215779620181230285018913567703348018879160153168523336237014156115338934165958252936975843139479369888039044936854585355252479613180068765622378374258665181972076677729204272162515642612252449357904964427335306665635267044765799319628056635797482223148989534914835743026336456347794663541665074030807242622150295868623795447071014709994292190670541909393574635800253699872166483860067749480172644430436214397299995962581490009879106959119161269219324468308178221724308649632541410828812164989309010943413149210181032041130344072872325759971482593041305973575121655160566920598453186007766902176905512609432428835193771969568834752243837449242563705445809513270360310488207321249961729800227079086631631214026687839535229827448572268975131366095875440995973216571885993956064080827735624392358204045860746258638537472506972197156623390759667493861280834345985015648242094266297169727541214032599545968449996632748624806349765230867138193642231987321343676277785315908365383998441823139560519358751852644550954818489800302944459784870117589652835233593399918542059281786162980739264482400070086809873151669001397538604569179486729441154509891025631374078374994603530739689766786140552026490364261237567902653003633783731704443996374616632796815037357773507901219818224028663652516988541508392942928431644647728010002305375079298248654933968559624786435867326508592978096060239024746964017747145171217746508920716918113089081545009795298532954585074506029728357890111146106720042893741896257476206062446138819191322616374186171794609308036022930298993962347724858958194417380346316292968933333535620521820370868640492065885699264519585176267039542787036390362816004481708926537789850442585999997799465352219222786106266333114663000726644232673944811954430271545395671461154920887164187437142096998813095871382679855840789912843024191446777040308326170641526728817555277284797309664640228712039850688452925415424636159292188437283072661367758190674909457326870668424993284470992906455223103617390831681522263755081199652215619963457681658316396548781288602593804800283648518630123496517282952301745495879642814302057954808126246417987827611805507813398921424540136674931419682907316786517995732867890753488470799025426707721510858827861157542281228187192462615287006260955614082113518035234743360301497974636066495645676317686008243774406271430874162569924198340199706238250937974053094056335955006256297304713648254935347325714335794058910710195980937869309327944937220958230435050125714581341692864622480335848690196440086684293439530591231930157032538052669740928590547276507712530004419438735893091030764609701262159244926656979117982900140631545046968641488965365223413493831962689228390555614003989308989145782746577801412812218534135575717546008006446392670161639369268785127138574580974672270764042781626869510655567329564313942520969145063957032057429941391909691555252869090326571794706786385759262245594170369494934002225096057408189939089462629222922814614006353475124007946642435183369284037748983582263806835636379578102459814031453789378393610519379736979255906967707454854240780511215062873455854411182317088618237723610265154774968313710336697339046705269766574998838255351504709263993681283259290696014327590046995107941464399918557959679065136378123490974218357192001253054857272861864623406426146952541465915482523646570427837532242276967840727681122875817072466523306506312897021612458313810659111706233809867309408088402819308104771904102528344145814915778712350040354896811243987565698615437964202713787458493065875049450042824118399065833970259321314905455163003502295359642314397607026597880560331368106814815124191463127539330487334404614405660363189632297978442502755938451318943417207584626044586732845652550039916918722693286400791505219513255370982147506835510329862041973258746614940715419663639117395351029454648866500512292415233023926231883342658957522889339861472748817907579770422181601132569886669372040917671739829107483352147790349199982275299471246108292902236430891686888519817242787615994719097597082127792168068981365058346752344754467839409330966305260673249987273549442295733037608809748453491948161190427398455942124153013156784528367967054035047702515393098280468020387963547662716211153396639088252561764715308415704750139932006757730235521693772317983525345926852093067635013756304007682286990847545063936721762786082225397564753577180123118276136119143305920572858749943798846517942318903893688791836713562834414758933664626635743870458598467759157275176071758963653552538656215576319174285218357257744375021204899541247114765754721419795542148489717314640791150534591738486142422822870292121704175893925809523495572150179745406901632424475603222070252747251151928172176344721443234108066038612985185427128452498254454236164193282164707618869566318626029033569280263988524132209283556084528600026415471766702250057629447649494863442660326374447955325335867687488598340113841700428087032759782572833464908134658217717991520365026221680460072474047322041663662725595406589992476664083023124630098116112564997565940937856465879292979259185268237692638013163848995311681589053988497449139426114793661402337327222231781808858757043018920996579473091531838720438916350007795951387045738313196140003231842182924877049033569097868086277061177931616306721028527976084584027876479011375234119563391972196209395792520974451401666520413214449067009811536224593787645818177608714685197460765936742016208106246040883342394124315376033203306611160398834756066335030385699919527083124499837181193789996032484792337981713858351542568340667982076423604060413824054720280603284191638711772917454639324607525474623414175807300167583351300074846629114100601389892972319995455298910087292683329833126501926636859997197778315065866974212257438809548474621116312239532855051402229314745089408038209013783941889765856747405880981116606090967840216743638238597886938829695397618389968790018896119242693847801133054208362893121730617697470880645039228536193323164462077783026047879970279163527862164862236994874896419891869865805766791008082174633717615708645204405743365598857568559541402090102498656151498068094152958923842530005487918791781679612482603488519542184933315703731103700858736499087990386593500220577382028683183771026141769749926450462202361204321799905538149667197612440710509336743487328683857310974541431839993507433373463360700236518473898678768599036787136578088889656528539560782705102249941130934773583601410100713072424605785174459472174883190430258760519694372294765266486197079469782810926994999226232877535524174738901773368462983915503429727546194189972374279334902558522000689884715573221399799603484002730534448015798506123525802510304058553924681922324959594504632193918715068652878134479995512355079890573074650111115693298399730124571865573006942844666325124731387594534650697027079729459421421380082168725895604474905922856769605219776887808897886874746278550981072572693327417042145383818266326441540146121600053106182023794179817770078542069240170065772812308935760122196867250897126637134258725468235712846885556601346141649136571438954537007065278838420388519753854512174884475383934207488014200572173768376807167402411029159076862417466561799516465071092819394309390273916482935887614480373529140621901508361397945071364446404930725763848319345201167247088087335190686520639025854420321842491882911402262881974364915929779202730076733678246928670703434622886393266790486719781353921562493139429901595304160222652798909167828329464246201821632503618746606502714344689949466442439101271259003486170613788120161923394232110331191332870754334840466745556354633026726600139313405616174957187280383677102688115320112779932361668592743267475554446475374359007788749339201827172114876859011186178762398114476543004171416322584770777445118030727189479603562824122373414176933821484453650116651697842084920055879241095436271989725999318585793600612276671155579242440593886631498476326649124135343475602651284988246998919178535897472414806814274732155913840179106238269826231452289267211373463272723593795713360690067683568958887380561169409652697540584249130468696331204717364408020224313085816109947865556901416781754845410441297272452447298861610833982075207273522350598579261303193956385573439232494865363327426813282696874600666407990969473050010771755267927936045848901437793542442238657390570078080500536369593555241525682407344108636757978733701942376070203437252846992547675431976874878126349939367701306179779097888765918011282678091862931839288452303978009500101710647282144011244803850366942626427248261891480358535627914588244851005942709912920207856338911531064349818868926979825331181863401118546288954931032761758931321425286000899845784039451283753790699989803646137947400612646215052966389990495255498370015165530636820339362911758015249841691269444850769326064969760401923276684481995157041294017949335452844107263528107488436995711272879933338352402126401158514957323622237776280379283149345518574891581217304128619127969559036152699458588179013665379482689097085855349410076347335471943832298940174922975079839764328098011670480474627735587322405224603434624647574384046038435547247118225509708660902413005086257781958063555176211117907007998422369092338024211801080037196047729837547303253676067479202490530333759827016437706190675961176979854143004466820657826026639162169474305701739505830758795587287293891527931727302208549001556132843471049446420009300711020492499552236864853027413088812643970688564696247159393711056444486787833999010212531321539283726334261374496163954309355614761159698240006158866137271839889565777841586708024319486415638429778132871038317591898692455944079420303922704875325955560897888054467761585161374491188726006583737694650749756985800933960683509768006380349525339478977894423632661029420231708332939067937680980399707443480128611091727595365347634609101502522188164389195628238766640525476785821894674327957131985878495470513670948740282719213798322711940883324482989474981451042323973454736443757937624657754204844500804223650775782371717607517969918104355599532860418504944459443463645982094251910253696186084579580160591568767865102872432894870311002426747665457036062241033242844638295792417294637057534453297282792407196916895122582249996002620711077978382489349943983778295549522210755987449449932898800884617965862172855939919504975117855419414045717181230462308114040102890755330937384583994681269345435706437173422027923570938759848912460796073404251418706160053784649596410405991787587265959970668709250754148591419867649455740399208519130457435981473051247781359167902742647975258961143319543785167066228076213522964930067097470348077594380533124515631131659111555452322520531831729427551542698581889179208140575015648636804181629765900928358164150982217347571475565848336086106796721441441794811187130154993240856425487988079965712822186102567303471638795101247952259489918062325993693465883890951224325391061968299793425143929470436290874935232801330659159747544286224879254716320791867888366853191793861680319189785468788844558313516320333660851501297327937637843325413212337663935622664504568377790098046358569899632226282224203618126803215380259183610576737619116907977768726008174674915251093410957392877205776354347294110839173010872684831565461381982861470780665929655405895806075751682189672506525778144775663392410820063425015909474434497308337145747862895704757695049407893396926534710475231208033791389197938088765771255119804785683032141734961600397160783127255612565690376528019961900189236659864594453849213762885770814718456473228829823013913819214957659373965986399953117291727689323913775641324957298364947070041190108713633321560019931823496037068458796129558985805338500716587175897310419524122373967220647291326995519000018800596467677170535649669355631130735283521195915475077921813639927198945598207826895200038941069088732222464842473371077242582412159265235467040703525207177309199284025248358028705529970766081555843075667418050409793859532837931842687025133135406544697530096732818945163944686351504098995109015088348010839775752947625186102154084068224533544092057904582244061531445184386218167143194194008425571730539535918416172568779740832153518462773904323341892042156677273869811862107408448829044359632338626084488772946121796131541877492049499269040329490655546368732054697007655381136900459031786681704427883065216994693798870722713266802338741603099357590923658735065265738724347964018183433777777898699222053165972021787392523799944871977807457415793189796183148722982132076423534410833366852481385955958885088122077855025007967126245792860616535189534089651152910947644291286648661752112597832136452664370439595946583625906361553945860471567380421891457552710068085891477396161660043162973016832838200706338475349855293100873642835507533397035097042167966070055700408147752392903590935372322797757658813157692166086748912508154851119082339292765393199692155825494900176738060020580672086994692124680981512827483260979740614381029329560025080806651471536304153259900257193520037079003160254160709783552977284786908718771971495569132618237332162697765003058410121774596676430887003207583070628134416242477587037301085374339144532870893477302481313953801074207345196166039398457131995737670884338752137859066246114627259495304237375652993217260010393102559424390918835703975587537909326522597930755718538490618948262717792173090223902084644077259821783698004452347140427362713687017431916981165551371177530929471824761536314331806515478865699896969845569496983112190870806813498446643555162609556205791155311443239804345451415456196127424638679395514905364293239077649588194085463059926053685547424612652391971402310919129014453504210008250643602941143521145234057110856536110244807372680674795468534012261619795730555600338769374686437897265235930384082994517823534691093119386107450117988860591710174911663067300838512664988407614981290850718360737275537738479133726135649166208618637557333668115829916405416124416925411501164193145669270204113409116546294551590965084637331040305113856206778240682284427191585585136921129602218075253164341553161351372882990362134030899610532508769266883552045421926242373110463241693775787193361908753404803099703381433109220026318266839616409780080355354197571189063575596579615355953411456472414461473267069071685581507459587643270432562214830403428500130045127443482314727204100522462414296976347193024541745120701580392347956435890681545371544880784072731354996782340295115452325101429914198191435316012367458892786594668410076545653499619309552408450985522673766603081413748701442984875474536705995141404842666287300623695030132426455662194491802975720743036075144690222352062786731171591476070770778788303015458252205389285781713910400143166799378077464809642056547342030876235670242626998687556081871064075299607907935517081832851309693685993547464383246384747828966872713058942668575115592761584461787710367602013982418176310622408040873854026385832432644173180021300714634365715854650439349688470118342546955995784140097333750311546741858505102774363885407556053163505668065454346050522588341921204773578402281729718313203715328011710307835656629352986997925379335668154915717856618125213084536179726766429636659769497446344640651959590021460468322626476365299744294083437673704288432264664713283394995931403045851252630929340431986216261711784373500829702308844520675539310338179243826366634183537858706270265213221619392261627606166466906327646864167104622402400920358087580144501189096723860998999446050797717307380443590130755442122873354306197450903208707925123044172319353964440767824177083135151955082896277323682144289134081834971339226590731761975084940710106984986139561514331723638910383953378098240724539222009048149419702773876868652705595662346453555394387901247464412960776421069216608735924040941989911212043775137731882338870075629455740040086788207570608854093455169922992623431315632246190867349104568869286107592932402703800240751267557755479191155600460011824913988760154130032236257165719840774855401696281637820473339093325743312323256464092844641832364686783219714131319553866618346654340619676948522126711334861001359451571823979243751463649892690168964920012972131462757007593287347751708223569517839728665962366097616752598578831818839954479399764193361761952215670082379143286094074086013574739494569888220341650205203483111928423006045644941018374487844376635833048897146264583657822991885719765712752729698960845557176977048549715848792352728374092046752906402185658971404959993525011855799601960137768913374434601259874361580211862771709589083966042474721021386161607384044161934459749067192675964030012834455240202187288857813770328972787464224429693176962988558751837318915399310500908228876559107103673686134309344731363418205355670337275837843169005989814794940898954440381649224503246705579503337445653486177085016533818307168769512177832947460411438760285733403436139132258417066479467799961040639853437659176859202760722237878794346434580383044582669218582873361515228887210961233898412500626290795371587691592539297190455384954051740566671098768973234942436996455566890356751135631748982211637634063964776447622936524068930342827089584800176150633604663492959107756407208996868145316560016945046672342244992792048955614166329030540396489865172964406753272728051424835448623103471610764124680498966950545210899713719949707779770257223242871310552689042481505631332385972729667613386119742885174738827623391063736412766802711906787180018675858341089850429917401860130011532636623161869013763873953576935760874050153007770241521514628389978808970588203866872837319722298993363399450574467655377457722011748742191458031161581623779989454882817479769435146352002715990372554700135680327598388924977981964641555164784885256877822416701335711998189678073334289406440983419078780119171616293467876269191482647360588761120657014835928064695022326563636232855369335032355968575507560397883705327870439792459087658690413826054193811079247056739545597451365905195684221858556545223178925934576356741165240019527139537291642959334111187489717878408413450021196776116485765490480048015368671113265812305833468115370323708115317916909473097084178526019707739693053089764377719752610846947710679535898100310660549780531256484208891451239602569069565306140738110076091862230784527938004115791365138125419979484902131223155388657244248931048136471284733882044266174677479689892312877151825189805091398120684317569421957149917923354472593171826160975742969488181860808920578165246007644099224276474422838410163573168062092966961559647472861366590361016063538748269083606176269943951009832473062420388089102835724312654913645347904540061595293968056057173298016292286129020169344097961909607387900456141846509972793242277422875584897163385930112626433894959394686947534412315432795046975616885257746263751593184109161034607840303837527526438896785801312995298036565783015720983285254254527766876240839741300912623230930022547820552612670475277495796235154484468278185931210395663006431618989479981422405595950845220307190921067699907500777909510715090830157571887805930112075208562773302196305437897214649032211889393873718514657928989804957214847302021003193998267528677536762572492564324810144709823186112809677559060482148350240524705324194762331309977719700995681245004473975803557825914032224076203307560292663182394359767490924730038583962358789297592435947350645295801357594982823416977129074947371994818635454764168558801340372280158536956234129295159829245848744097416617865312720630990949661471605227387749989148964225713668810985358653402883146688917325197087528988497817954976120717883418918029356221802393182540930661208614454567194621075746514915287778518976492842063155788841682837170022222007175020378117602491800190445156738572613513743155808302217356816126617380598119649798845913354027317799624587956078450279273049805687070658332311278052934093063360995937321700621300236097186064393672391670534490387556883222208589019307207443368252600574012510819271894528948368012326024290977575899618488942193678033673119200815011931580080996792298405067637899194670189181357406352206768718384758002912292811119928669803546569821855841151112663268786728548747014847442027514786482616680337642112338919285101077708421488517402840497106267801607364507334494851609485293952041321209624686866256764153162413567340157663610685963366244992533247345109224248611845034631405546867040666311181665470175776423198098777499712158998946212183053733359791644940878840981714917085189098155797119394438707707436502654428628566579070502667083016314349667195198773818118948581952423807870246009535931896027473027266369630962425555112534137769136702849751845391797241066601765837901962955085570867893672265888961426150963967761880592102766610356767402789072106644871536479891189784855924009565499568899559948834144692511128028158663054779327000343701112343618699644726426006353610572021359866709658902039704124794872402124620368449251462776791626352684688523367238019306493617014879364636039796735694518521430395273040664229098607338981408193540908399470703738672364296006547795966365927241888887445905377759741031031505152349077624904209150022517803725272295524500138420353381130226738498313698879730337693597189094447666358608456806576628364080502886197971871970157745910310229375581035300547979817808154649091217986251477666261235840479633971186418716189562450097866929688102792561187187659819241430561644168463547743328776327117572264746315929744350506567787375070785258769962487356016521005032071529738092564388250586847090385076410071560635912287082261547326658644475760851195167711301357566264392561599168377721333523745081217400841825998893270764449500569720681456372493373356951253050380834094331609350719901477584883228305060194055795230570816793869210780048966731478296749095638443730624428453395340647011755451480053129552040561133864575619235571999666879880106405565223919399777906641248393049757593410163836400652846931486165682182314008203647877318283171103029443282068555895992732511562126961757140110634318776848920488442480154299931791144640264294599475860081249790300448984788309348443452670098928298216313170495635699291629221096612477630363713732000916242034405659713413319609499699378179866494878166000963205871280651452512558346282041888618201783852503401473662729745651160675030927246569877602176577877585228378395400593632395262395516833419941037818279760544287299271062126503310151774080972395939116995188900867747290692915292337935956013265982466425258287685048716799398460312652376839513270088012701145052159722175842818648019219980232802179595221080215449342050676758792996899680492909134611092075746645753801263199063598927145858772359273063283208399236899991633132413973324949032183744727212510614807637566368413622685798002018946418465724122634593601892991679727226338520145835807497408821681700789210533266423943175446660964246701061477778806142972683088330015358955418754916688919923099673808862645425270674246543263632912757386669435992300141466764540654934281680259547326429296153972793771272715073461089614323331958294346718486617874197203028697799750434954982253626243745755693795916518607177292202824369551315603329279563508098875486658198449742584842609437685041301564574412153464921133701967085040755049354164126438149543910730679940642401893162096491443833225043220697298036075086672796907662207541697179169365751100959375810887850104807293075601784031235323416453709623074019320280310865701511206495936748134330177322438021859159903385237753157445814795190901438626397016956882264332579879184242383809660219332453454427572138044306306752806049647659305921176138169542771410537603259570055706903310084594134998827475130702525804612130322395641759726232511557851020080553026014272285312559173784067360331277040382413559146179767493934514633596216646151122071255567901490432059629950538639128483482188569375668845152021806022269696655622465296411595642586149955586358982987279388638868787951816103491076395653019551019307859252286279657589642023968977969025711451068814457129195478714923178332231683553077874393973337398602372222309298140702548251219713727333829251945429334844534757315963304033348100116067077492917141336250540391319439725100967988252968523595264300374056966961896403454790011527746024794755173146650102036280676333948392534073713706818252750798579316152741626835325238336175784425281415352848242138224337322209682855811248544717731781033998225449136689129878291844245608616258176048054256819571144269759549243183378209055466768771302076523549151489309498257151716709286939203010096207727701388197343289543477426986507516864451409993072031401674765257254149903408953419616812387543177773155113453200095198314835471581945633638589070979511477923849635726701496635794828067470684390629841997956500230267076696712633005107791688856960849721534114376144432327366434516517725543526241860334098977023821697205371254869001147957807561973360845859543680900917774345468372838876172657766557664758684592253589511031534172694973268284770207940062950570884105643686661654116214406131569178843776134929562017879006521856700441290404974288748945599215009014576889609031739596306636892948568960429846125948641756087237906281600262148116522755474046064191753122872006253852498207084178805069027397953299452754366856298073405958741699744906525059051353832814159139398641501669670446394458123338358477225013564442671538026074213536482070359701661741519827762253786306219647202777957297993053707060017164849492501951653228824807374176649091860255649230934912659595342300452009988071636739289468889390516380863375459830356746201859725760458567001580391637226005996875511929589532376731715260696450489750580744852498128496434341030589349007243727178612753093032334130158867090571959026507329943648465695289274023990792929608112589268334236090263912436178081127088231703479319326470014443230093112610589026763843933608196522964441009758090897293067528167124898851243597978325650745668675074826776812807565790075212448340316672017217577182079755156352171983218235849284020118369706084254588478020864330004394752478048167140056832073171532468652164295655488808367913446402691201248252774275749545511225305344534968550444492505391270013544128867924143991929483759966624574125440138838671283895737164861882102527449408283669673864613013569426105852660717403430592387579172085391978175583217272292890807848026953810459397067029455759770868181263753613622538933033460023716005212642968107085412360605343910212785278683631217789041920463702373908523159443687940361273210383108764591373360221344547676989779345192606673310098075602061853448063051061417787135657037072669364833542682447926975174784392630487164658688624691727377805581482248977086360296647920401131821124273706908233785825838144672400669547839055837431771308849385721620636437897683244218610075005095130746676278865800992612691908342506630940184374256860883289442860450220184206832344859802690467123138094156163000887051981415847878091802108852619683596386667488009979747687912823110752885639696065026627080253897208430482761565250519655136087196531122070821441415295742525855383341451630753958991808434840522901912716296169219356032248824573203019587861385180585247471251343085415208064646391967574546761459461377757149611403877056633698682292498507977188521303662300280918044563067843190688764481026369480981086820474705631331607552850508650203871512899849884146669468670608446345736014316843201014563765102990204618494113750161893494670356792311215796783853488659335006174437358440172515117634356171980168279759348146502397520591332752065634826360513443635104373303739441214038571368903693184483647230522130374762277760215766010702222382359504102120129339815453379401959083144715735944055494340872137231414031545299759423897139691803747207561434636559759864229543078156148927458800510922645551536375850540046117825380868185177449904760207734371337923657204077812947326527984979101313614258548101020198799783060322877927272107224509656776293869027916238647176631956872657156924532850415330669486351392895242782685734097458267878053632628370206181196607738531583185498524018225260782160076689483250548155409945643449627576120167011939961978209443843016449599945791523787809899972365408463541689459519327536417160172292313910172843207793393237856454137379124502066965789887001673078770551740063148586335270303866422789409512013376752232167034004695137289490095491650285214716800514840777272438115927462503172079185881783030440608250838214586362258820286862474449701045288960685538754295082252846467049626025075143270252138179115244958485371393285197052735369825049136898169346856027536528270573871606452499047672935665524146895110813711275140770392102999084800358143136750405844443990198833061931029794452096981799546676558942041533538023185647288073471885080596225208183275204153727995001805669392439637436196324949183515939117926640851115811414485595038567408764446604354022636042452930700463689426588246916946219139435089208098739346007186659568679463611562283435154796307064049399361366130261991472388059514120542804406215089857048158104740918985156861309725087206537097729471834496951906438683048273677705527998593353057567107201009104044575947903169877983871205854819955482983480628711829697212774811333400946730830391918445750788709380038135887474001398140115271923373267743404353147954925781915403910216575990071777985519316392663775221482959420091143291600548226495746001617604628751886209745910805949983100920251073867401487483616028122966012409639231037760773241562149261611435054037913678840830594017806292632111187182544721532114179589746905598633192657512222401555958181048087002390569950836203760493146675051355358743735476765229040166130475837786731649402268323688933482902601454224453235913858995008230669486868723513853844428733768026896548369520554999170090767799777452421283070801986577277574855526251307201533174066731125960964589160878305465901112316568707990847464049324379922503311215395217435054625679671219641497616444297355399615810921892628644192309358338456557906049321042308668556472881116838284426931448393677694729160886352549236832247462866843138302867367917103383553868228652321283487198904635456523495354022405937492740572212970814494325711338735061664438807291679872372105662879433047633744160893629038871024240357900874330338050212070965129359914180178516988610050574342055280965073915216298955579283825303541850830101860655015956631502307410537477913084464267071930953763103065244005463649568499518556344722082875952647862538953452716009305111652048873027883408366747498786448236849102140565877892483104594717130447138996404817126519773918667501490383673374286610941826486996288022927039511248809068074688404497079655295319707618730101543958650853575433808440303393754290458908756531802459661249282057448975452278359630809619258412784745738419834979250957518330110637702499080662240201556406010821560176679533956684583475474494483570924518808328493799608214404645492865996486212177794094849484462963732572406207251971313971251938225459401044667368114227250475408548457634514824594836390232172777301882120376053736617611738141336459823041628705628694616113640942497430466196263228943845053388961516301092094198012416374936366960792157952428843504323575789314636553675945697447505889224860926328712881574808617762627509416689823319816575577775447733052476634926718787847882073171472642494218805304124850602946593797666569678538920535709146466019756560699226566235866778096009444414120204616193014566978235537079321398772637256406136818138356377958276321453801230369768586072853571929428420684008998518469480375556925158629481736949798566998480603827707430496155752415055704244537484374773991304651592493643685946526084799954702703851850598450195693579542239883534075214907678027759008282329274656767933743515858409920864701924619910206842639526022625680490524122523102122107995502486204886213690786202863418060115324413755794215718190815247718751997743492066733307257986772933120194525424121044435792571678084402190479326584605286979390434365386155415361225609027300889575109770069844536661682419562342119043765824315975386267381687132727046921508062701572236431243894753765955122605350706334130420137819914115915693449892415307131435348751031612394116044348763570550925790873663009180554830395743167223897607994839731173335913132731048185858756995052090801277009356174694959273187744863623449966371962740620907445513428629830123589827823509504938769340349226565554332283542447898589911508766590805196540712099701743268791842985063135164607254306802650373131735866420025604002499102694534782682241714445650308663151135834633546344167306234220825844670834149481234834570675995225401955080037030940526748651353536002352623998369471650964307871040347138870298460928894139104291294612269680720633098296787560945060006715827538786694974069257584771220536458326880012084730952479243159773165552231959076765111682579635453145221787779941950906636827555716337358408267472624747614695707444141374890985057373850214752409957751963626558080340644736618883653342641562229418708166499794653068729647249621583636098743811899894030780062636678875866381262345371753532449613310481680451337842844366715845479059395743164939087035281961923996058016711789888700980867402183152151115836346803391548244261308776746474956061135669225087642127071971742868207872189606464773261653502944486420311680555375313712665182477052327937998144453701151135915678572872314227894639527179150487058317706225723342841359399963898651094257625403509288806373432781051859061160786380659712134888709122178800375428508132846684311121761023061582134490844870870585389355830147607605282603530481795023514678061970126465219588890731451440395758016164565522590890479026493440187997113459921665998709242194605432102992221722020621430659154924913813305802389606208767096056818491206555063368756514174327175237018271588499646068806987860614395665110084500260492387867816218638062013719555792059269558357929052193200874814592579992161252707930992970852586862770660625601292443347792631255086430146018935019102289997488107352002113534621490971771997364381491067909158157000815080040218443271930865127742940787972052021933568025655703246856503442480036164725997331322962653802011067426875866931875187375455659657645641206060075732601011168070840944842421665265897581719496517049675923065974108825654090259020698537354102436630277101271250697744473126740997361278965692039409665589559124068004022159036099427816499865060483341984585618576931340199476247820169713244880998900014845234297017067576317190981004130549789377038702894622460484354281509960176676552780915432110485520130249004375501339809754208886923647900702057723638139251773520972994497056109358000990681353237794380134513694661645973073824145262469179380928829603505340751878418898816036495945982210196511663145904296772490243674903249891557758311651366260057506668799215390462913963577351294773397105256841133751977547639972494408878109706536571999894814027033581561166872360277697713821376799136584634185894298897396351044503599651962395486645584411484026683894051868079895163252095513760465817093940907665915389356639406270271025845526271072549795828147580541058756461581197371965463405640239633359360518173950378270317978195747074127399930039737457141243467704292794503289235298253893670567070132980728028611067420772449405823511300956124307279000652529662819804374598976817474642158894256188333671596980263621821636146437466813627216026067161697413978047364770415746546580362352997087261128620564658673450418738083978774489974933172956900589589827445600344577900580245817918415751243157125809154945274026149007448737455356755606171427379867379708842195235418011253476340421053610980280293388257586037741999992898752815870229293920185954626374884096807052739742167075570700840070752678655723566775170411526621059741795536700557396064915916870604170066126566054087570595743169159196804557160594886371984335668982064306050152381571227164965262788892071203841502654221727270348484912007622950094286299278754529565517965150427900570049248314598701175917342350219241708133897905822408143683854792318505636772921714120506574935440139559900221524334294706839888373863595234994005178874747290958317325106265075898173362408505387204504878165105759812011414421496574239495122618016599320806789665486533721981974934898378324045418166626664931434044906245876344435557678463863267510941186137672652652446755399146910504680834917632838901605006942850478615046851480179300203502599201956477837256519917882038015810444196359367792455236768546577075733959143261655796227090172338077588052468580911045760613301938151096048274673518553847879947634682529113763154867854910558726492436912190560190388699451670037802046855235952598154384755115233624240664754330876828902169965387198626218628465792660888118561605575606581338823272117704797946166720800736744021034488288091659152771136642547368273565644197453331011325728200032862780721048973545360854816190289330764740643088821008692724986614476180327330182300383082718072805261961483783161406284910445641657046028563653618386629671962387548378645387122591875535805779624780474411508161306368552942017865068119381251142739559992503153288750518687547983033947570297315052448862783758777221178467029453715562120130878350634352052881466113991431776831698370718802160662359006299734012423598861747081365041633540356034773668341440614282821893358491188839385728473300264821201543699644722112194658461298866596256895698816734677220565159075200499461753582428068336349678456312000534935143476271867245332642120058157680995106376983508570548383377513687936552543318833616775267046143671475896297033992327528449380675343568647679623157426967198477976619388107597320160684899166210589171243470257680586233101930604525647403124876845256061329091343861770333672169741834365640223703593079342875136771976851305616822363745544180287985944587125869718128903993243569464121460571044997751999274576043199689728269979820561143623131233916298916703552551515536984633047532565803968507280516047082764820789163225788773024016613771206083996934677982575108652849915888340632255860523939608218833880427025170319395293031677595633107192956151159033354162335274976009576160194039470343543518721279805444037818205163420142986695165911315656325692266751631698009227594941151172060121256543727495286737723745732713891303315659714514804253511711767851935485531693751129050194882016425585259819463272966373885076370994732092342273427238497421134473599708693760686393606877576511186194979140867446067211231754329613406847963625727610639922231636472719319387834654726819761145168888985657078492635160940674000118830294009016510858012788228825679580082165882027520641506241228088382755693122742775784351120726818380200165901966081726328051998214181952032717754475543853390275489717603030744179113464956593440990705314688249634309621376921426860470904775273749391175974185976309514423237193671455310451315241161725355725977443624694456841967269387018829212051881211582623181873570764807188884479430869304660017589819148393482541470759866133206934019508071964360105509109002750390420683869428217784741444113822346961212611840706374931335659802777252332971401091721108196655203624351296781173460255275898450359942325181192459816927623063242481607325177938845284352367219912794826308983808205354412061729551355238243506050424787492747053801801261618070984674414283217636922570904770842951105711588929171102844495485803149356551157318885691569237030544339146288594067860918990023911039007907062332044971553036299903257983301205966941670105620842468368985489232683546615723749687554687992697761248979927680306877573601016722156735500738776373621477979655931512922845400000701448121924329636562786570874955606467876595638819721894426814503641241159091457746023494792502709490165404499325318787853030546018527606754777625076616910772357609644485851536294230054360298852344104150905730261761112825456985012551350977853511535301572247190652666989276120764839973952572538213503558660036811462580853458544234685256430541238985007500490975837520554193188718356771431177182395746729989581377568091460120033415639677929352958261454084787155916274807607132220143810825641943806542454571165332250995889536398461886229344086183632685464199316112490739910885200833545676454984440323927387386515447373715661792312270185818811327652316399426556279889226248945155805006462697830620066446876987914462197106368246514075154706657810627636758486401069579380003566571783162969669603792251226083719519063446207417298611967231028063456393611721591716528009868747398837504841887275564460876129407386068187936213500190740055625500757656521630906719597773143861211564954047154811162846188377094471572335483625479206022391486749218367389412158008920554756775204701806434464180671244661214534921918689271346346258469518804754775822227645589725576454936296004646990431550185812085505721570533972333009253670793261539489718823339404216167809837798555022095338532002902718608659203261346716711858939344856544152940119038336389824769318104820097691023360785056550894804503247715695057770125935415628180810977415614610429403132963212482093257814572349219294636780250776156756613002338893612238835975943277949746165389112325348613621794746216874466219099424507008346474552228707090567095741022079170746641175274782779309555668731170201233900333734198110234253443226981562985754363277788495205720767856993550538634037889884540651890755633252590749966030409198343720419140973233011755357576704319540732441133645270963264097202748006489777377395869447572616891338321282095360494067585521763868939865784534561826010171467829241444618258874087971823356870527031269465078451599978316948087466760430020836056817756655262836528710858464001243867125628726208449499499079242139358459929403178634008752733864233762717117405924295451360929790578369758201334356051506636930558108338679747334138392869772712943879840787327340547480998790060509232114981469252971466090068452045254999565559171735103492921269833236081631798181218676748410985707905723562504002641260955901237848753230010597011130718820409596134501851322923526178744105344902818848702905734726822084629030602894908373807514895182079228068523702039073438244807338359752422646613612653296933650712237863256762546099409476701041219634294745632483778456536903162074201440215772531248525922559468966869400256314019390488683006654514440307464444238532573377295389073861411104513074393682567566032700158302184799916326281273953671527919891140459888045865425223574547586075874158553420769470944828730753115481890918829775233443064484145783782489914816787919920245037420271552023733075429513901939977405209269282019316215372269494951437721449337345232595796275419283522959541980819025143112411058814877776712805792909259747559533107283503241834383159598881993819959538200319246946750206750092771074631668974328814257645130182664615165554166763502441869248032950342448461608792593996553277113697947805991239685266879889280341425421157582232398945520469404251459882329702848154355282531427606850880095528766587356544140068757427973245807113147819302542248815372297128089040280090415531154218638475845369282324581468304784089640755259745562236595070653693733839228243878142069424423515209500068688305485892346357436444328687066618174103912828747268894866835014353785365067691605712871946424674460918218167004150527678085074576559647041424657535736865958546252032743388731886015544947566002490976590429891677180200045775082988840072761156569734152180012911681181318854423583186044937765196139399493308802097338012966164583282274710771333940002630796088840096599205225655236963690067087563740747921569128795527589891847057756751400381868140163820241079580823301457673287734101531133067845009719346446530929541517994977749398540733209965663022466198256298386907848329769367330983573494502571780270236865161472029920284310740780124706028630867620387879001761564840672739519128706481930276118553176179275423543590208226243470970547778327393977822684485435495872670927221080321820850429871982655855388788879591287017101365649230430594589003150192723895879802312336259714687092514964243955340481557558847009429745633121870420441069245299914454345765170642873202198865908701629608086554565274724660649956856980710513511101490295704680762372639954356638960989073186278638916182696871963741166780014138736812447482896057372121477251609060441996160640255457407958756478628389556799101159406952819775155833107245274620310882881032435645260478119955454024079171116675063509800990572756748995764944199485572782737997128399069244095748508136058444980446986963324770462369745106519788958649848449493448069538758348670402806463443988621743214005135322590708529257056780925488989411054315313405449117006310549609195597957087837771104985092100709895537381309926810188253178624854857283409252502448244531295140719695414339360619565124187084718878668928978780482214246128947066378234429865601417094548637593895807474433706466775048754372843915900959531873132295170744662133135492416927393256400436548568237693114609239725460866298289380479716243229681548403263427225956512872717954437730645898889010366757120472228810756877545879604188878498696820317624879003666275962229622001070883285107714963372208762968224185805007577284474918099677359564773366187421275513366612636206793439721782411457907606800986696182533647306375729788537484386567299053095101977098640239446889567859461294682701423724846537750105973296806150235030454136461294129619422537693408288419768790908178151193857739222363137027077330126694392636925921076767580848543469437011100436073909722863992188561939136765298811001087565018471520677847762587946574437221099098237620845794304082428089992528122593211356746166715082802435650782047950069026248986574901931526396950967083769324776907074429765761453349888719660218063501908751255145185803954400971445379808989592850277443256097515109816245533626179642512823247457237317247146989604388638385174820405186264043107396415351572487315511310367249840312149180012910222067697922667103636595127925300232956717729401250012570957043119921722074371871877673739234020145725732847387225649449221997671297766525065882207169713129459281360915450853248407791025821483534650414526462804821883918652923039158541877055429680313411588426115069713584073410699935345587086314730080149869902152612280734507929793475218730746257712438854196998069643840584003113917367743730009565609231022526141627595077072181779602962750626404915811511370682161098780641766667391496260348456951773423694805389539392298207634922447664702330768323338197572800345579748943330070231139639491828156733356277982107224862504625849680078386413716814708821437707689614412694398169153914992654488763777108699380093205493227702903407226281506634418921099871364276066655842161286795073708192191284295013907429912716555411192065444177832548539757708397851239199297312442892454234009455778681244137199243953765864792859613788422337652035718094677065860666792722455040185063135018225135688140462272400299960702901612781461761706488944657486453368879453708896272275705349186418363458135110762681744891467393511187487040940643924016360824278225910762778155496939365391786455389883675429066111913931939514531412644146579872975305001070169012857520685443630085275748902665508594724266551800222894476308251642326856715420835334960559092064739188788577397272223658640148951657903286833792743275609501765474895974997706262536751619087097009779877008761489737176180347538965117474632779056694849160206231900909790106191386319384647375862260545614457817230484005636517476247279934747917993195682519113782181398405867579874855676617376074781816486234245000369278669378360029476781539692891299213423531988260589973641828536587355681467848329592244280886011725039749998061332653716411899659750090563104534445060530851186851858409354866013552498759134062845709900974711319171106816600459016534577702545553964937985611387673174060543935550794736623099334950241507185492517613456760287546255909959915027889151790476461053793717086195527686106458795936524147374423547499069132527436356892870789070357336557638846506991728826070978431107775977929033605284222451832968505354433637668763904290914189046894317465336736204477757893762815597356690848763157093266642346875600011046193976357990129754559915563972107411033143131813275667184689273089172453051635521625562372230831274528246726265255225477147788095923095194253382995773526830449247336578568584935285088408115063300631997867785590616821239044612215386965718064598636154806156412518089923520019136274951055324810990399691093879952665879375348379948504025817527531064298586180830033788633581987455871315807454793770284390748570036861929610978760138678500702698499713431641941580535823694682976148767617643190916415318841523006533361104194363657083975843270149508762384604384104548535168587128300218052179268720570814244839044918700004481998748720833405967761752689255045270244398835730896805950146226071962551712463215393677632402827563932442288992081452283838434290484932921480523287370392589928871697711650833479207475142167123627510278700359594110085108929622036253655168649974189250743686094390827692210679230790240997588991479324173022089416019751289556933260026222755557822405648164807289520477668542992232928745811255376950769304073149226531041744693300371090456286024935664758353837909326471560507015134392882934477807402452908897669811563999690540606574603398875282862630095877102704676738206312112009476846936024862533564034590984619969710579392427684895288866208013446668666595987927631887238108204746468078859360882770790096587633934089262756533609026266554875575743888572142952485457261246742253760403895409966035014502186223179244771040324012114399709317875367379311444976988422944748541551780795976015790654470156742040361858543098010441211630148395585616949763484531446356849395446052605778528649624338398585744172923831812462508531198003174967856836004787844221436813128018749683066206778877589599480745144485209609571598421209954460592673555569896856794642090578904539447716288680272560570704424708536178859894716909199497829463729853562544132115193471631733733939169436216693754247099918182598316815781878838168726942786396686403446093233053082782368627484157161882643085873240228746243967106112093508877411045786213604573043354653782088588880637288416855722171396120922518973978896969664566069190208061192168060085152170350974327070798987728925711959451918416822900913383037073708319797339073516947522589836647271631827711155109022605485828417804362879769608361351770566495308520316838083753879342614196376931564567647868345620692636748602300309526913519067523575553323722074224302126539144203723873999708621000566637803016182240202254481728210206181401900399149248287432590574623850897635620492778182723320959668448750580227414152166760674575728115831709047622718600386954663582214317065732344118212840633195581616045932459633437438673974765797769395619413586706762882166140769528386871916015210110721772732010001816229060758890433710286424563450799384766196421922919128695687710504905613376296856960630562222043698382203182996326932187989436863415384138256154757077025118738209888810036687886389335968618485140622355245445586142401699749463663038861587163088375055017725588827268000046219970414400704295386993178675408388911200194885355018945668109455065500660697944176948934965106114253675363558301103794118067199336769552420603799171028627765669977241341409509315059687635614686015988302123419546414248022042400226757386433904375189428450117265320769715746710765814754130176844063723271299516814566355327825124107322956038454687423258381919481300671152045502820867373521100644215748446398639012605310547962105535707807475241789672220299363211388416220470236322330253939883147114775168895312422965107738670514513426000004520474286647446817750585953571371479301217014522953407272705353230548948739359258582678132157652375520100085565857001761141074791724714422175733161560883127525241057905939750889221020576222649174228995512906272970475343256317405094105240090415402550710562574890076155681803369692609183627568597336134558952886715152692311293423817225834279146834559260374521574242246206778160828116575350934743785401444320133713377876343969548420512285297147863951309566022326496812091455937860040786339430822210850322879259021463659855839163113267499524542083638996843178587951181947676292513929313457638566847843358055256144252028983167124556036875766685734850766953484277672047624789381824087742186046870885384008452556841454639569379868819307048190423525846794217473915017232398166913169605100876310890438055878390772050768428973659866269051549851230197999064474708111887073011544177360281403478470546036895457513855023847039988883610767753361236067585793036801218219385851713102284588312889951329958581503611099507303356208005480108961666308976420615370399600773270661887441307630348832486404283151783805593154262353158332530852758375959691084412422305506445322437700041216555659486376309879804650513089640226208597234223348806645601387133397616558621971182958669196936827549040483706847692819748801740109954100373745188084102792539830633520596704796064179622444369975726383917870823579480410904879362983329247747947247853140947120334907137264770642847492899323934374346948837843121738557148590571939709062568397068336990021940253163263522889272955943527012586278923273796651996005101967600389228802082730124716229703502948364699399067270409369841212494208461002466822691155891479812757900352705911257607432960104793058668321640215247064873229712891309858933146780387012495538502926316305115831367428877148303980617295702431272563508151030281047794200388303300408661126652492658593913541369741978733745916941069459285598059017442965027806549541519856876929680720648832522692689476725500389774082060364638510700197389313598448091886227508400809580079211876841231817991320385477024358790514990043317564880586714599269227448345382190995470590499546548079669730940017739038622294772439479176294467154484341428841763833552113269748035567014328233632865695991058958861902693144477798534552715741356996076376648077969980093187453081524713175045985220002440770647428956760964062222714616675115189209078175036911144265987224939295078428429216160836832873405201463315466155675853435491250094272615092339915260834688991319982137630716396802301824822623203196313657439427799788711664343087772665706794581991172447145386964610801705901309705978978405693276396795650528825430463381319234152032044255195633105201850972862496922620986917095786220777597473303034430360017407062271818556894458975047056350908312904375099315442273492499188718553906401312872385531232010581827548508995198937486910433961161651163639422365644092860471247935352573256540258648592399688124148914991948463798772975752423751503355695417446934271934556038537904589805285842930556284487465706529333492539299167833854171238418202864661265646316743222967978608972641697732677974684298636356982850604677012183695126230171123061639126629734932230480423541833093220284660350648440344400012386946015804833526662868668792157832959907158139858102144034049346602293353731075529029622209945273473131403567650463171558266977235998601941374638640877562180783659618523625530888735757327991582979684928729373603460838875189626763393643456608449440068308236331058148120369088407250195396864668162438160786258012612326768110656635974099181667604352644702093465530176048113351649947347537102211018822314554709531941500537393945183488245185386476017684093435245350380906471097995612388800271614488469242795011218609986280367493015728673450395750145864088380234501094955170802429414937296532814089065020240451319220016871923516456344074913277483660160202223628585814546109618048180709793665494416096996408927566031340479376223431740937795038512429654067652135917474426342924028133818423571362794689613974060371167149250425148722522327208500837908806568135045914637758471686360184324287131224859511025570869482967026377444902418134731784319183572308919337729929223606163844677139647864319586402522481017564156436161700775473945666840763953925014386766641463285309275155551052566718456818964633241855901852389568155358879668469392977073580137457506143896766548117722671859257323235430422680151660921324259630516978149639409211941555970931662429796934816947724950948964955094786629534806923054888058208074501582310523817696315903235846536417437163444722713130278906667181402201808003663213584534828957737121016737337391298169034135993971941215707162769235620493525799631737084125358642069061238402862111226682369690773216036858735382618219255271536796348996144419455452752216402970314668658016569896683142533753511600392097827262991508232780672026790632856031113283695109718183305137299499544706118806041270558462821562442150854829493706452871161881745137566910393258976621074092830842692133976172892527006223376015489638649046584189152102240505087604030341990816260370270145601830804378997277234348857971717087390781581402526882087277045303509346064736448870125801089951948037975909035976316195849874764739720900645213014767196297500107253661043145586204386246943666870453637267394657426841934792142230467601718105350721730981064274856560325788123070289419911061837210290258240101138680932285097937380286026529641245499817387016902647028494852207565543724904497887646657486183625698944684360411774572645702346688200298838382263364663413761939210808570280350944166696327778067375931979133927808779284172097548508127494808042864429710833543670472754499222938544492234041198407677164957249714656680346207544440359292798747069559373674128997198945866957052203387504350001322347866629388809124858871382406974798145919760256020483807056373004392145095726551070654732639059409004618354515786186854831092694283801825634118826716146483275596199427646508883219544483146789547887872158006620963436054567917982234894988534047164154173121874908089892864590863626206414966272993193864503623940768947494330395456168545706002143578104187085693438285276998505026182839267416970478586458178115956908131054365666228794695893921794235204837393125071085935881150685807424906464478202409353635372246476965864037738017988219600836206782885240274849822848892080098137631189467470192571109245371003559208076069724082610638857101063035714641852056285802100547417046654336534402788933019362372616748872995182069181977780410842113749350990933649383961900489605365107572326091378951850193613706004303636593080849440170907275340531939239255200412355273230764027247233746102358862829038447706476493580971252234206073973779440724031413121384499394004335482723753558097396423354623174030232776459261318310289735336132168821537959712361464274497873328235029493034883941392876617353884561426575320767361993018563356312475968157895319211008512568971979743067502709402061330225621686842996151268479877994704069130545753113236922027507919602140175641400111650837928541061367167671122445658170393138117874289469020931627828298881494703452668601519209692766040654134036693048290463871513832564303092426439562040989697359273405799087319608737221456969027243369988168280804498731117405970985936113510763299590865124817751076415274465404670005891114956359306613723394949368080382205691083039004259769513821006708688244594779188518722455255622016633869798182796703671134270753734830363278090351757584322300884208971894774042597610358975755690318521436009296500788186664798102138208149585852433181249098254253174445415713551385668571276331362744150579154419656381418677514630361627992972689453712302049305198317782201916646742250045416380735806717274656023111095576713050487298055068740923271567517326785620680707384755665072301241689513898760692747228750684821621858209267925991530688654220639174970944827826696297235092788540623062986853446944459124801939116236942877296898664733843410527982703946008709944544249362412704596203458187325961679800045288338000539579607067639429576266091909963218402571876285481665809483767018272263537263428517626333847958592479573024819836021739570350021709541639787463939135472553182932141044029253869966069544879183258462164573835738826151573661313792845198314565883831365270783537651742052660588751040457824871590329737255281468133670990834935971319936460514505943475407373363798720591207401450298012124399287153716207542686561774266133345475624384204077498275240885337860585756262631049032430620206870761392442757278408842191920080866016873668412857504548818017441206341387707136382548412237745762099637824306433072458451198896051201862093857768114143109297498803832482944067692044583801090902813833117930397343664531762014690401407442454322509444230418205263063466293967684193715274663980237641397966727852320373619889730603116231009341888826993231628463326875144121719386799658789716264869258756244677385280291495824018243155415780213428318635128125582237583401862320079862847867435754625122204926407843350580706600494364635916642303929860755610354154784777305438017757134818049550516849205933933558316817771018528028537890431673049886956589214878773515453402930342387363282914883223262397339883111708692745563598437535271932093167382639442296336230800655474283240705184897985677559910080029397710641608441362520684462946427321539825405244574876769851828829161008068599833850353943473810184793826049521039212528009094029716045905879524382679668742026526374369097804258165006408335258459538031826486302691535353147266227614623861266305286653118928400142044556480963965694693785234997320509698985748223595706552458903736088557088784283943284875773819291148032507455824654060398667483075708383483000488734623708817575974947379578123238049615634034071515235720658225535246057395913175670340099886319600830187152141936500565246294687837270203481281721663786418873980747480166359766099604202030894568818725791574761750647494720334153252407712451120966516652016806153405859581878262654662348636355772041245874424069689055170072688042999232557823557720004899013658566472960511494326682240036836102688921021175375170248791172601679648891253004579951444950582806757452018565708256437202643912227995268626713719890593638615444449998138647159087616512006752452011743506384177215683613156669508833806416899711833880304677638328591425176854652778540931333123907743406560425650430525703686420909203605664460441696893950186785528284995263839718472110411854629864164568974106325702731260284232762627495422688037467776310104480349663992994747398692929816445135495697903541124771858006297013563985656606430323832897716654329068656348681789858317879621090880989649965658446618128566204494410606787123599495185224461381211555862276903487864289278699929378242542422945170001923050067120546515797619516488915244574794920833134209620380792810331348359133376458499833177831765646710341235249916033318732671977551023319422092742402372035903549353846896952576161393198722544782929813899251658020777249248651700544057443301282855140918335947707053010270781043151424042795969693109868724003707878950370286829179615878660952389955705255254994197337495765095354841913593989245948570629385176901320678429277136628488859712490797434705293912467246137585706113156810335459203924980376896168586264637942530595228896921118007399139210390739786294805279232574720347933902615045015444696612902377759843064946540078081935112192035390116175694334544478556032265528381321918782121103571354587962848153619530205714522865857943838229909981436061058253232461121080228479653296954411680640295813358883431686985003179696275449805560366383774896321602967077590303008386049471566471844397329585503725520591790272568158572590383844141179247978892606193359594377773024478999903974423939407723998666374163592172369401911809498642954047650336890520885282423507570571721058630129897444146664594454175050655547588892696082593974660012700349590169591524753373556236920000952726204467952320658559551829243636390373118091970304692011229723368959084498181288335620324383151975243952534736811901374034087212177700160813415770707568370941107592588908547163885207805841811503083520157923482577317498828109080693954113364723593289031521525471948636483484657827346314437422236878943537763447417135789385378671924820817635774632000999206756137228680793180339164782307509970280698616542100031395384632165153369002079192044112918369450145859899006618669226202297191428318758570745617805887019547382361241875959621145533953349030523482029764777452231361030441847152036461314804816979162503309811055378778215921411845292315856198110790620858127010536818083882483373116887150639452863319259114467038632705698319281789539677784649554645224317137198370759373462959209635286920912603345552228954899284380432280539362883483573701556338093457957278865247907247723866775403767926433962131943703634640359005939695304733946760137384273076167800354527073524961597150402635097207166208686784746761871665552467722269681521943022484506648061681667453579992869773517841241986821595116431471154356624586064258448422548722188097592717688731818593244380329237101785154179544020284055360717378503297621411697955790072076314683099967718923316879757042233749190639248365290152251274574467998191966329723969609665819592743324127612787879896067553430849588618329582597292396082260074501066700651000311789329320248490438674525114034090896587019290676254052955356862477404690262468869819894590318153189035908014288697623698413453367970604885747421434635023091132044701105021443351694276281973749719477684569957353153643515506139310377802801624872807966336336014714336424352849528749763219942901390541520292732442401539172723357224224109556816633380484126046166465074912539072199793802304487440107606629402432681067003136387825523625114597109283603856068334528666875105637983183419113121266049465626704526127853641928456130005507535224866446126461502006853643308894613445946397166063845524734600272697080272487017881940716625982427354326527148845045017484383672799477096526533919021631097263414631555676828540644888536711078352104224027147142194357334006438514724968170722557567014249037768632820225794114733481103967412851423018415479693611213158691747345454860162687097913526860635457740340766993321466053515269076019215275762228663401457966874281068224043410137987606074029874400938507022231664001566451202546123290854955564041732390338560385613168045318531462182503078221813476197035965088557622944071569101143717133371782031027505394817610101330267511927915595845050453992524161405438244122709194664091082526883830707012018819965545892382296225497558785106989859429494412998643790227165554150075628730539955449983274600270833713529658312543170185726682673458189407470496053365350225390342602427294786175074449309122628553350077553406621130905693362770205415498060004646653935438559167738343890686194991309921216350900185255742618838502518681844107647657444610176315908236586439817963624682381645476011118993189377989614617906016494521651720547003779349029571868759666831566720077621853951057807964873604441887161547120118552011120727077345796474088789288589440690834063800092044098577182374083107654189280275405794861649118918729510112555146484339647687206634867400711527345193848901079271486826649122677719687910900955459386174397387849230428530871624137527976419172620169894733541918692319752691554872972362115379771384147267395098707380886647965505369321344635983783603688488247980225402391109420193809763095280467232459853258189796034617104259333758932801991586981917276588772019997707171616454170809163986625186285263872538856743564064977632532057239675539318989696283605741835387035313873472675695749984768640490276683652070777651360448325194284346018037302726770294582572639550293049714985153765687880735303120342623710087502871764482153136062844757714554352479611801710889817359237832438671290594164794306634417578501914942516529767350799507002088214161535111110196006834587146921972421994728627875890962354970793705583092785681374007979193565853399952243569923097649527403779835673647163563442833882240007062164660464167170183364994820920246486496751281718184740305437922576509978468339471672006775501536707492391044776035867599744215439478138584639817429788349001870083251160495759974256438685683656376924744477602879340171890842750719620735219519217767037917239360408200855886810836001281191604330130647873031033845446244432253499858149111751811346922653879120416924515448016844403953171373498334452573125981979333931002431301105733555503507470431921013732450099835096117579534912614603172088923177542331671761039819441285851296765417627415830293976544591658645115310389121976469655006623086935282952712900954381647825968336269597521399997089697363048772569818781504723661113604675926992588911382273737283811223073264198330221091678945841324528949299582008661183476472550024791039092035917451952368286443874844598474407792388448748641272050604157371398021349406073214417859859156753582184674147353210276887536486605674043158403237728585757722061447036013650291031275182098912585778008400735191014451482670579445681644714240768509596729845580723460282920314663829703184322365410234788676600022644907801852769693868977885278938491996576278912364812500094020169096921413300105518521061639356345204925521408410221833383204851996375895436894322137811043662271463550073956070092652328091371066638772150245639085421719168384298639039807682735451572322297352822039505452611387207733375068909667744334530704764083206988084032659428290861543309042536390435219825588115483720352113820021284930781118941085519586671644679027883873231595423513787279678638883185514240981107835566844566921897626392617285579426947027177083767034056471846445871143861207569500621820634199469842394878199180820845402896308356449300796148108297895372880085928975561977690649094299726081693804030817063456701794066622672942052998437680677415335250042394434854955904345355935212510630859999795416710671369261351779991569464629290394378837876750041467390039176041380367339869203455997170905739957185295582476724884879667428657172174733505536895238444019395573131865701209308972666801734904031260998382812731650039985263253588865151720205821284663304275711879756257495478147180720782242515991625335064169148821170622024503566185443729264153000730135211013737875338780127092429755121020643586562691212553472489913888480792165802857896811171918140900194836158108163434289082615453901298339898559394844338086448268910462445851940046598254268434281011990372184417116882075572477419392528105438978487201190728304526791015371117971383273238396561434349898513710150679634220492906373102837696807624553874305862340912033594449829636221235808960326621974630313787939578883322826065109058154007063876842861287057712237354419327405144474088957715425547572349825306430092369427267736786883899138047572212237953521983070458895854840743488461312427159917899420997271659171590920660134834465424850298780206148878642153424525659234258847758717464881979477290304975366252187762172453272879941371932983752073588370173986471306669830842329739244252582321132220883075977099963307112387833320188540612187466796045813109756192485982438999146433910117518571643078339922442409898147141158867224477719228197944397253853243115255320861793525607993067369441747001685670510658241769050414903960806656734600235067948214291814733142190271841723393726577626476128676369401997764457640376432058330907320537698624917711846334234788231545895420506650521405631718432295656894019581113845962709205935539196818883975579584772208888054950268764888732577430904861832131873470941598087860816601784164275454160809986316926326646784501890800560969247369180354530269897306549313221607002785933748768609224065220419831092918068926970993474320169107521642210426066550405083276245229537546113189938756221375340001327311114188736255969037630994542895925890002194613927621606534928360081416082211887574491075754602771645930522466956839046604300070875282829098260557922315284396830313673192327954501185908594824199588397324677678056381106554594416416202844026717004957438857054213598607921951334478829286312771249211329545475428132218957068306491602420184868009147662562446186777169311795689192997314668710263103554387656472024701613618846032273372608430876803398375410388339680269607747477667806476280128836485109879362410981593053899994354664490681876584835826627865990192141057312978566785949561626651961118024440683448938115581001209510701802056374961206670755539886302262376459256507043548682481105408937885004853411078663252337022716779099533460097896658941312341364341289674210351478278076383680815805018027213544219526762155357782421989306402828164838610377057807647822763016083468065845330089298673554440883866760642571851673903517715894663567194269564757101870756479111634261049385062272266211858263878690535082987207641178123635487386397349667005940819793963177760532233835245392955667875577005524668581405311097966173162257651153389654062074478083677476749905118971426345381417970704873222299964478753200805256010155988907458978234185462339705943591485617002694326011952955283585996753072827410277813795602597658025163721129365631328567540461643101183076184807256008023715835014632205249620458469399681523864442112501909725786169872168862506671896042102767298432446229492085834174339250242784960488342917209880587173740711527136670831812598455295842410647857199005024104983355066467883818265544538769491025930133760764219994141635526567436221254857959635490329596233932981104864456005876496004479319040609691600994004223376110152193999422523270883500279051205497426110696082221586856735569365991859370362764363380329452201373540415610505955519401654492016389381153696677066102072547957037701687121354942161891690417289895024299658022604236426271588051604662008843132849588652697787951750663691058928307080721541283086503759413083986969119023497734838702035811536744294641072913740081630970004881999953058888828383754163154062198038094797383309666365690854954765142723725758235576109602393086027983923323728957351167100554002872769171538883215547049049088213908530626386745277591068906974796080944061042828869079669233975905494062745080729776191135191270479847484346251354651079883377022461084091134402353302188628351193790659613715963610767502187256764669377539277949899135567304746817906299415855503825798594001909873904744431420480257344085994719073632646125881154561558105960524611518034297260535716641748481820508044244418035993076360847036937222227725024458751943580436535307380844128084922169230812495715254184343995346701877988158119876336285747061857251265712456795493068914039541906371655467133507272538528242440183445482165107115030291692241928704528938765695237212018747974039889367467188675058253497253650731081976539014161401875113609010649904217792576700074612137852578394302730206079366124182197363393376962329982550131323822143520094097626138243928283564984934227654932972495749082712007869600544716576858217323360741972921939414982259652865825098601852237712646117905284824514922387419966959602798864943423144545852867193287322660940314102547836814327570977131358738534348870760283055417681422845491903280429118646934458271725996689957387318458265690881839696974905570203370610416738669404022596058260367744728888236875060256763607797196338910380012303870860317033405459876055018475294416598543367385821124125403469015598033642649243178846887970387275802372558502689818021585167203669333431827817686518538566483647694187713577876701911048169798703646932560842911967385014046585467164281996803883099993820127741861696277909216582235621940791914204070427403849313186561288644737319157168844846121346622868658881317279508392993866872659619489163000778943362263361039672968446643459405010087433583024366009666727794426869031255888662955823513724467604749627123794640876843636101425767006669269045715056927354460306572666271262387560375965441325838214182583493603815420082211586884538484931960393347290314076716902306340370897610092172458430483489072832250060080309241458075643471291865870062011244863167443611857791075439546131630777341990644109188501574071607533056451032221211815356532178009906520860291930949175860907945923985373984695288969920749429718827386794876519647753430563615603053579549922133458046053844998723174722969688725968567064936414068295485355525906371741344969269155844878152940226539432886555148694046858250945404595400922702680846902366834717761868314222484829640577976189337589816197911262511578924193954749991452970331669883027225357875367566562972334556930232701175758112728318706734477512443955094380681051170566585216372917279164966630126386082692372574829162778574908145219459810068647453419208193273231246742607526197892421157053934404934590675727364184755554141372969295379290499258870928745867799867786810039781016172437640104066866537400269600847095223037261194333138818944889148677296566317431847745755128600923248072471730233668714217352900673085262017355859651694932099974873154548461595601082767752765500216999887344997996494029175269839561305986418480217743733822429546146811153877673620487344820510339767174084274549661866995854296040521504167382430787649977680105849145594122220796714019832114045756278166234485134705989509734409958962174215266567320223651829769386872500946463106657421800621934301895141308262022834681288855216687754518792441791135391180865686837195962934801496528711924362558559085548632967396815928537810894748135361450087299499792361245213004619169766464855720498097192610602451532182345685400759533188150336205801666970022019027121889768166916920015577162979540980414060354947795008254126706038835768523077529858571549094412812954619952898160261136628838110225358125452700055453852313774799799229608485066380275605077429928042964348016243957905927931806579192781079197308108593363496986813488668200106506240849200722420145928191604126908524601663078643928112079783936518664334354796292291678892143689360254104816392441481605841188656046886766513733797335821387980581716933129869589524042085331452207908876241829481598333002246481273022357932982966526716527194336130236000361180856375117535721986693195315920328234337035983878833904032543595703526611335425766902794715127109139755188122993813080887578113497182815385733531971213539717587217229316702932952735274357582543534221409497433200366383500690322066983349999371263518350248992532531703441626151140563236119341209751404200489176478394703185438727752414046240523309048920280413001726937122656024780020619271738229162731724917915450379368673015427570628652506130215906285449817806645907615037364271856522800003635594439059483213634297235406489892858700092450414084357143988935164104790294982917250497625202359512780369901180939391867142668837784677966504410195707119219520752538908238151210536126208439047828994187623887806815243435224789635173162647102941331400780762984764913381196727490372507911999730525078714513506401057521228814369209674053599854183395041621111008083830599763160294341682445099915430605374840169071318677283924025206338999242077964316562394157572512348509721162732786282412539436912332189736126989155439424078679083360335678273229393781586948148364796733994161349896037152200887288665900957621705184908522515943443859906643545581083109822504913571189403959953994324563486582802470860207735603354983573053848697010771704980630930261284956299046599028324145658320645343804779398724264156630779167688434668632492914101379982434576203544151898429153798835138805278744538328197201728758218110899950724317834540988216641204261946601922297874358686644633231386446088518688652544331270568393344079004506947575856540512893296272690546736127689105288255637649221164828455680742617558463285718439568835512701593576172746488511962033870450162743502472609006964611167748441030397303769812504847199460202761926173496115355785659546087391995017723555357950535354733085024925897731953850785638570980987260307308716752552071336138130463346158036949860845258016553819580082130576145894731704051537529804129791462025976978361272239151839185728902163430664274003768386038816731240128372595904302822775238472768587338268429455210816667021370317277150745721595778574723453864508447303948310234673757900594150079142036001277540169811494417975108113396762500349572102558558906648716138092521014956868755382296744356794540701032326723339233584621257628658449405138641555936551195086085267518153974828014140931220727156900255218853038860499654094275809645725386101894596679635745629040474146600210577871647543698197462431356996913076081595866056976266886350281366966071096468099579863990097881508772991660647984832285479250022558379489832433066571617759017290497806825613247304612438940502941413088237449353387645790090190004083781100860802131490454599107452381396329424589486839051939090874634365801236358003067444885944940249947894803865854234827044605664767809447813684530228079217185446519042461424051755140016921087269716859465000915306855072590157095017402941735590767804010854711470372149043009333015011057293847669153781854117279928821194468133915951548097110102906078377546555481776357489515650926208938351466694090589158587433021649934495910068854512446798747368400857226884421794827625806782548671440895509783235504891516794907523286779836079585716163065024519466708261570198874484099377298709882980958412766591500630080316186046707751793407999618893034811630048069039940911110071843251976429528011243939809744884796250945047761712854845071420995015480562048840742274804814639406526396855667977892639623444011951843398948908801263595633748670446373164226050706219252346550945349278462980688063161302856978172775165213139425270229568684700470536354292109570278269294843421953714979193698698689376268007093176530722534897548340392475858528201407406276471100321084532885116875328231042852304253713436579260024777552738330383916012822830296535078626239292850205017162720970617591721299273846163999833656637795116546670937433073850889796526163246964895702885079835119252964644498958778050310524756482214538908447886902981714118463925591481828764513341282139417535737474875345844727866867096822253644665868775714546652320179651258022599165401061384356579009987941081396778983310498922272435974973173248407959242141919453304870589218527988239331540134841781907316251016952942153459450386532470914492761295645157077575926440182655104021427893317949762013094337708342424464701067058992242917407673406268421215453662273587295329970025508363596246485351850818444647507119777068110913982554247561237495710242382820042606884141078332082465986072467873901831732622498460073636175853691933160180644585355198103720939979953705775551986208842124549652553701364278020231761278736177787973793766930421876480529455827740040785643724508588494508247142149195151259237392257449814921706341004372281155582244119048226024502891353702739204248611907459649314655439635370383316933197091453140060693900748474614005617486697514431558875757717756123687246182760563497266334709962163842601839416221094003399041975309474687429942531451541456416101859734738975152115502212565618044789452389303514105882965555124651515392226400873412292158446490142541980098569196230182248811341426182242852674118374276070456304962336281146657692644933448980523715873351633808627518574631492529439577766855574385215518995515160154644411711964297734886464682047973931533932953294948197378543236535547813332209185674302114371637313791933166279458259927910161465253105469896830233855402018168851724900306502738396379099943112824283203397859130268478748563876839561335358219097677929948464876634550489319864854784318873753077055519758336684217852787052550686775404520076633368385166669811857922012219203186972865027171032958293505435247788026023241089351434675436956146782014999579293487680119148742192530415361126831318334262271354903594599173350294994476041388440194015664558092700787512168310168242142989604670747272658396958861481825203571494560689148860062204477948551932101102423983245870833923863967616574463420896624810472126729590752619639963647951892536930540844726217504572027206006361055483271436902613558493587170090955323679973155780454945736364324770543371651018122097854439943075774603101915120873995453931754292137328623429435263789570122086789754792624856940092130627968753277340817660943880432588162027420148859921623503126352894499120604557803922383250741831269311808117270623994151011464820588853249341748029336153654316146565541328855703177685456841296318906492007551693216849102958878426095616232090207729435481689262833163614371622354170598746368606329148626976504062345653505796006296904028790561511582518076423262837607562635250584513351703395107077047779905635934572725885495895575765944239662061535033113896601972444995162437537558446388058579406056687252682960125846333529670913192972337552919599094423003058440937542856259011234322393828541743140613479211744550440556791706328286500613014918896699303759710718288152854680678622143727727324622295961924250451544023436460978804285406337180728536616193479224091559878814676928486764785470885361705926662646712535500986772344825561436496741574555082843387484458157140130992554383830480923364581936297121410050957196348794782877277945469663189799223424494162161591731712292263187261162433077862417101134424405684868438992298768748541789007006930845310920106723346377709715651177874957837385770104540318041088712265125642891504904517607021409956447235886978901096161063311414946614683988414741120046638253299102301559321041632444866863238188137097281535986309001786663880708534841217512886439437804539890837148661324920557886252645596029449014680070273064208799840774024717103170590840554503571658018362478384515537056005363087263937536446223459456969650324829963178289776311951099740372934830721446829355835261601862049460522021745772296054016806801071653016927978289836081364956738863351608757608680575116560287682679874950236188396709752378801957880305319265170235358674064251563810078109299244134300225950817836277984754762471426791705330412994864132389520713979765161727761309212894867566827842508669703167579107623546642804519761594417190188679778632511493002661802993687154268466120741020395862369303813175782897685195291259154962392378750600044226145241288113865171984518429290188017428064147896615907317111497054761471872883152244790300916800759302571523659713577438122776103782285394049024999125369461390818103915054428893728193649117415834512705500995081275743235799912171337569299466942263748825087469400932820272809731260513616390135409381067135744708939765014994394155196685884797398831092071718452715509571693310554487265425477394287789746984046440634313202254028106072862361603299251409452368863336801052545355498621363299084587646803797685329745389900720388861102386762753191409875721199252835057883862006327641865864288086951226316114486489255649160902419096929865776888577508262270952558986707519033331942822931527119421289084156201303736697526115586293955077141224225170853355769757437555763891190205855013657268101940622326322364552015548594674003845757090589205308552009634673588051345146504882509601419442103655018374785548594475170306352553314317900006205536592151920984654432607489580568543867449570585336226016697356345649860878318762447310454221819128233920704713862285238512502918779728819068348282242225307479027090965787830514522547112416621033829630397108825950052729809710471008929278271964800228776186129080023377984980272929259416858834477874013583881839435695912573322920235972479978897419169809139133773454454500860684798639741496669543219853740189627318235575526247318372329080458253008075746431702937942901976893966393675033667504442910595947051899669061613146446982772389831816875274463155532428405887291766446582749848489104996606864523326985325195121321342891875582158725215653218322651083302312216353225860357390307315168971211983385035341796673113794890009384517802741186082810583140567094210837602348330550331884920167913816509818654981576208509068754271378053520979819377436067361894360859942964854189768557400875144247798411891612994630314595948699569957277116941243719938961114164172277962148808160317803513535110956461209110504314120721689481757314699807726691222178728593442500592824257765286891162897693018235893192202564487242821429469830854088090048040766215149093707891339019719823781264455274137431656596978508306007336104096009992853617322650569599226674905223920227124329221787334544167681340829226996747519768377182452002376921958560081291231537712665583703832131139328706781830332602273911755882455229108272933370611419442937563647131083617872934459296544341794829276268499979918638508546404363792339027193593766396635188847405720963748501102172788847865291190407482656782179921325769988866721810961787340487894510118906078353239713013909779789537802976257796924440423460510595655758972466783420691409323391756688007722164843771558542276588638241905277090197904506442969414416570669069496616412187126438387194629510353035326940256227176367645104949816193044828953591481154989778383776468689409305064229542109367261497340962602877362798219916216197101772729538987916990486375054906376910549939409087481511210580098158458767423298745791827131072525230136290331762387637448537199630159031061132527185316624319122097244914531716638213686860681718572110843493260060226210861441199525829818180305776110912503353843315385337280946376387968054908949705737562416423628556251986896268834275720928202469965487520734861640825277224578189103805534262886574952673286035393660226043453794311788365676536218280358059030495225157099246486752276815169065121999457099442909029197462614492406244394894280792263106529025935800099532766278581381117930550620108459019234027317399912352356368648966476679853656679580792850166812157152976661661520085246537528575081858109401933622434109546616159596038512714232766088363557755562402214773181402747659725217841493398145943313701283370649337645289598846511813510464936791283686735831605057070253568041891427422127100538805489898106398268200719862548242684153719494802096519095766172277344211347007758133784777194407923300338147167457323164994626719813578734272206969493661188493265428916296460652993623573343980202076876792621709482150356201748376970274478160635094905469048968555750712817363308910707932960710192425566110958836903486968601017846721631297803808104343320612103502832668642136411336243091643231741420744621321715194103528285849865887873794399506525620631617691675818176162037140537890974076195067187925958663692107613941662812996007153633949394757520810203484320254715398713576144278648436123419106681205367623289061186781113471495632172653031268654823923237377579580226642415948198559882425590121847682289040176021297561523471173411479449840454792564892985056515956763799252044532327869758254132176796923759959505922121625399327803607266273538884628267020269664722948335045931353615877507784747622335201371920036357606240347627180898275553252261032169753492233946947534641859636352042487457753270461977919439435436530642765107130078017702832914192068177733661316914026747388079617018862331428222958330648283197447795987127074387554445987343684429930515790605724997984296725501471064195992880688443870544663811820516579736499827766580693583334544388597404099666171678439529826000537834275059413025989330151856468954829941995841714383850041027295621903281923712822695077625674331408802041975794495193769620213685569333416224369185100990831258777433599592155443207407355080060687625789609122766512142038444796587548999164585249820356052072807018542558325825356639009968710570517165110980127647476172141499702763033410777076465557792920279984902889236067607270023521196294619853560366822721981035450826541821811516580671804641978401787270442693735629592817348282945703040752028761463263719391860436190084753538004600012386565572170879584990798524262591902877336407492780430239871340891547120498653098544103299570445498988449500383206067786345735774231418977631191834121169825386033825292567720334788698973418900821360311210647228348657320440809323376276363149830922362251488402061840117426601085592221721645178027828067996813380901362148435340509264433608951481116052278377600234729977026793373379062481755351748500382060066556231051460231096830401101699048288285921428003187476946526175933145386657132807236127303715755599023190084336485134874803412494169621883093408986824816060775482873926087887415135808556671292982589268444002419468153395175139674625357462904413647671196675053084768839673978624275312475275797701164711989267275985861704495090967068992499990508682543420107576845535018923053305155611339023990124370475391366740676466218525893793888689081675375425361669112609789287952168118229936055235981098224302997041867835255478360760900280245996780233240877644864833884828457135391195829289901682013823803508309422666792538973041201514402666317640329506209877664135652650091041907849164928892460562225258252845548164986392825943898188684828032788831215991650111644473653088127884405373831268214035583137611541528780963277584066800830170690252936927599649837076671256311553726876948984695934560887410710641711796170998855559960793833982300326379287294374679186888011117222516497067649550607280822846893087199232695971081363006664745466259161411303406603924515603541394170173567135235838276615703349466953396893572705120111322101112256819074188439703899085831351355455035808958559815919485456578343707522941470651052717816320118815534335515255704825962250584516175780726095048874114037737992241321357046258483422920380565974340879518780817645993483708736539500151748270608188365940595038729823434556715159779090834917315941537625700219982285849089819669296615038760951255743179030389337722478241743643504853087619185120175520372491471170936555944433179074064759046864402488757137522634991426231980679526248889167303615425701734163420069833506390779835614678248079570430264713824454784697350053993853439667322460296824489514044781654570498125875248906279247816554557311183745296575091356781807786548024499096235117066409082128455740434131065423422439673791781575211048081081131227232193638647737228535301981054981632202812934754547551342007180553878544601087643007786745500923031234855360298319794616580826204326214917638085909139019868939242654221964545711555633486160940221784435251605656800007387805127169221268156370787765064722198578723836479989311697312775897402196057786029653504039959692269105298200783066855956565953450426591188639571656244232298598222613036847177767177705578645996225087279869712565400624416506125421972001287124002154341520594578562641661918987422834163651259728785456642603001324111325991635488858357915611661883895609045049388404186663243964959831336725935800338062575815861002505417941800958456113814857017160411660961308108962869849544713292794811534029558340458974601537312993489611031395148044153027045230260559461300093446357362719266003055663381925082240376003110975845952013411398173672952894180492638981002797530154621017371693272737550049331938829870770098722449103393654718055612821636140208484670720208119690947312861494272659638471538675461258157167674908580519965543795339630922903658404847297158313991315231230622143836389564976528222245528486207465477064272521664317109540894559995204653062882412535791720783692795472514903714309146936675623026275333883688663619534193940438195431027498990170576414901988095894041500175823633726786791196519031524435032683082456056973053711171216694004496376763906236651279810557525248715062895434630720573259447460732648407500839835474481531853620154375199359974299567647240503655439142219306464542591463598824104178645236887966641330338620117819690650936192480867847896824797162202726861020379576566473932183388218879847983487212518228887799476333550318503314872805406536970116442310496222029034410980407708301511518567965094871862545957375986824356369047478095459667408705966232459399312378215813388223702867892627545035069537163249508615399265557430832614004465623616768210391365960215790210374849235793791908047003550086050214491793638778760871067566353357333848841626066972277833547468079310984945097263730819551497237185701101758450229751649917690897923463127413784143811061546009486127875889926320550304509339263558801718644266579338216049135311544003356151224876748151752593525281832644413504089211575558297503380032695917190188691671454798428729190475870408359138759597445697380337949848782344012555964860367087542773002829677972095346992360487518576132952589513067894570529249807847356558167661483409515548825059039450127069877750419090746966227849801561306061563756674693979349748017709558871402174282587140447962640027755940057951256313137171731311841939525353409221316493696143868962771028146148267922814284457520892515138031670056960514840980019009915222946375028884373228798446890860759443725612772610078435637483412177534927779403295261298680302190528734904726525762617711969152789489222381654753111512976224336806355695260516608039648988640349407608600989973662126897306662071506543625885535758279992578822320036733493670132663481205493695491135489661925373772833110424635577011701277091771083919101428181609954635565019566363051283465683983499995052757200315614904043419986682149780760349564729594918042094298324173226306676843514502802684362601623508577153090173279443183287423113838643821887263572167925510631609883792951822208015565909873794717842271912528960939080374934598164320491436798270836187988280315907732901765688433351937435038523006280807403067166764994599922023998256998261085029608716441560073334976391875563530091826222659665812100271672458273156034499587044130244620190345701863156700429020396219676727631935634849201141101268040414399839762875695168866027217472138396225095372502333623193451592003302972731921904215430026020884838894333417854241561769878978717634547603615236683474138259664988383729610112023522703167439154498324789808185310370397718875434064099125050453987959860919175071869558315246422013603588639280828257897873577400660740877948042813240655768304631317650918935667349179436166386939037619492474304048624060590264189087896388405075278682790927738153369578843838069401384356439763336514666047398308428796160438118517462790720875691422524635439965923717585337307243630697080888725749239974351497259807379609765142883507385022523276664389276652642137299450166151832916836939791822173120061749308223046430810259541928693980002147319645225481408766204914862170748857577770016476483716116223340606064827069856542218079093507020731102633944606272991345161790134582966291979886960223218718577703734170685632531738883488479544777184573697192230758529701052756820518324009013156293122615918189705495160262294752082680885054374010525523597328168232804811519731358464969947633112165664555868569026129872550441710180243162328518604524016192180621973560898761791660697752650012185085625397310634526440099747188025449335434934445628141151493355630724668875766889852025829553274120308900814558676239379663154469627986187446806175688785600494090791139363962485870131413161293922598619782812805124336932024419994386443567138896913475163226956476766457701783219087718775729218855956566458426459823670421364882712961238984018011035851506910873180994916162191015064977217896664024443567676352790652255516737838965782188093973101520635136654605953541705879116679615722268664643888398033997077271321959225336906529689064049236689571198270226765474433617169547077497601402075366131368753284760152406225215689226246814938374339622303344378247279942574308460751916692225636261737615350019718161525879490393798144818080382110902803838544178837648438468650937875789697665015742379423826013122584907244099551975725031770556382603147211547647176028354323924659530039539649643907687777492786675659946637200357100634521555879721255928086975787407159216634080442671396854998051920401343336747774510761382853686498705003713567740904734309149051285816776685483110767643961278095095750391366167474829376370890492462691153006574056553458301047017289882499466475132276385932225729572739159890853007393309840345009188725795141429173018471252218580473161683846301550649170175585704173394474870367637977862758425734320579690594697271305452171745448724836392745992547882951382959723329634067844055176831341665214723758151674127658967330800230881175665699141102800135753268642794865620398544799709806340992137874163609334092623825693611939140844659782882271470166167737987242486455231858742322187894358115878682377915304899629876071232016503416639321982994723844917891235385690751292656763953736970818775059261222463702418410705725230374831539895379463136759676094852796431746513436741153160982638933883269105286685567751028557294682167522553792041086892477675148884085822993298517933741405410110188953520022264035444400202441062534515265307628583867199664982791949432542696982127671340661762335765196733424322378387338957457168166132023104531758048584993127777565438971627255339092684484736783624220617727755015809152082438954053357491399913724170154067119390195930326327024485856294244784503784810324980838475423472079081687622086512072873319090453825438423207837898694686288475781227131516742276728508871732143841441096196249457030166653992968864580469160685536473431775101496710835078975493859737410237891584748791690561459349463380681430992044600444865754855514742092258502177489136750538052895258692207993753912357953009829300171167213920712355709908890584117605099887589278558796983465213389058344417718612784298059981514479430341480195475159448425019949235718033017770389344125179669496531390121017402715920204315690545135166394105401846101490269667916970900880189911448372445583472286003222496854934308209699943911637572407910725969534503002816276365573988592028617891222330732432370916295073288173025478370122552173736018918946009937079413862779079388052085767469759613687325320574892066681882667256662533225009630260958884129681817854795725819570405456251755325062884800991024163553052955696552289304115899985909069887106034614395892775721454800762467036991873704426555061533532080098409141192022184435623777311764004832565076881035429873531339989959307148668466323381971521905261058803529043837692590274099330556029287616226374248917786646965964825014810927695175967383369495846714794293998466167611332366892897207262838776482322416635508102912361897774160517351790894078108935550160633948778808973705498280932595709154208589918291991973332381818158106921194476096858737071091721250623800441596720799538911108548227390811702900380835116074420667418116636974108474109122535260558644185554437333134286543698229232593781888926768771928622122507623051819338152253339643690606779994221910298933902924615109153380823448734116460348082976649683755527249210882818267431908821571181898946276800252141280219331208266921289673734805130606448161364074426698522625955638181847074034074470226442341252709435453332200925465578829568315673172483683635209673134998418428930915346214996841869919932622792384742549732755526073139383130558810986693305646632559842889865597754421802879782485624499586193867228093211160654149181628534356338890482546103761562696192759602216658265495049048016812808392952686337657450371645337418120987147067649346871885813755611249889450135789218443501660824723397668515107791313909581663965506476048510573445772805752724953579297439584043794927840519171438852154216240419577137067747842608900564650891579790369477349830231873894134282991029986397044894639741723663974671262884342601666184290178179310273203335753546600267149570029013342082996591523138740742021044066884061755183386438555757877698157960999850990806676174421076623582058199612205185015467197149524413761609175563519414834432524008242436376278507158927440669894840868865596457728239490325447249964708215953772273587716755078216770558265157122445528994345076558904109189323672288484474845594657062319979660104512559851374734932823282170402911603944001539218104546164603020298279778384110366066939908477730057497814083921868973863963495753338455700292602527283682945529796086818897319894125671957317819149692221534404678390194486997997765779833025981471248659900585317736622367274794564636428493429087226823062730531832551496618059275505085149261729496365119937846289986903398555942492399800564935058307430171981614078779877703751614712344823821779408516876490837804319135394838475308841896595367600899082055110430597626628751693626780082416557270987133818359882101395584505931982927282865926132573970287508968037314135009053292506502988052835657232290039056279615114019524603786901981166894693091714595730209166041063161583672076791327890752813880131711750837399718421844210975277610153340189142953609118969782047382354149130329426598121799634775513070522014102160394990609603756954406327731301376258492868088051466658674713224197313563051206810037082260991007099187751140502131880651308853318102933704283329623391918606899361213049962507277009084174782174701887363797776228052302196728000278792807818468472272080730674683741064445077503314034166552049451665204049091816660861000086539532615143659458761250937608606429804015215680023263670350270309688911668823958119999439952147970224351996287659033117725510721321754101001810566355637849877802488571473503279950488304012272409121323279235645004855097420616130494706293376641779056373327664088759847722900594619653996205862589393446464221054172336837686456175697693899325387677719633184071140226776783720515032106417515009261457389487903274045845123649983633963622473193882164271722966880275579452766469936834030597797916493692688604103277128350597463030223202671801405545607977248466483104452378106644832616910921593000380409343779556560811398625319707338514860752781258583206438965644039863716080751589386333285410854146821607033470639106113786301616620078480161746254837551080967302229594071881377236661121177133466690656746683310443624322912209254792973052669354001890848594820641543178762201188066457327300186398057478661514482623690202457790503394653642390387538518074681224194586638320778470685370421478987605397659022290176018901175381582469789717979305702094894583913072015667123870712773009316090272657830380205814356278840734518274929753111908417894577975961777703316537930789428315346772713380283325554171948611059311915347435236184893526571968276722384492572518346573536530137985940847264409112069209884436070212231629599577231159689123673340291976183689711610736836481248276115286223224767299221428487490423836224833697762254521098653776767039318920906204236135515351458544157932662100157677681879491858062386617748754054530142776348708616826624282959989096573386542016030463735807260178999513377255556944025990612928250294745552762074716904082370522131162221002860026189485095166416003267330818881612359316066076934334523020169452359949898309660698252196771466685022140595199229239450795481435778815660407688791206526225980467928419729773221448274120497499854609831625040634922295138144993932088599458034260316953666724031498707179604062690352232444299484147342067675731421049022702994735133901433411281210554846596898398265044762189726783336584226539901377499490370792263195660208631100995590388202968544226633457308956932883942450176713386176614834711907339338588406375705510925629621385020891005814544506401205962489274342630966144958082779835517376155163818607763906749601032336224154785188473155013661495752142790796553325126006745729569433727334736683046496570165029169062815463105074935700998796995892906785968726730280207444173807011956492031533831765649301422587884144833659155779786354109752173172810005128771898840751921141966567763929334928074607256868133692969972847751594755759479680124080023508903583479676504068863458749006829448585063466269405401451760726031302837014869711228066890951875379463252932060952845453809706211735461252485905258482340812402794647685591055475178602372910905100450243409021947034813245553727627829004999207144538140812846575200323314191536218484040193482751693197488661788644952035757822976907895715406296152384041461830284273871331080856020853147451010290818765831622405198489224746703118097033846090297642010156044514026573200023035293447542960040907599770637977131432845993118246348109765828821301563630762136011921547419526112132363376005208968847463321782689438769655756467492497339174486771077225718428893940154495415674566243232063099481423435977186534745159556499648680119324728153423197017820282850678788814894487378194857863253460761237139392939897732410302191881195417471198778812280024690610244093538381339726260147216177000316137207446458566474228216280993734684861306885421968646539106451478874226115607444036368444794660728281164104240784650204565937487836249312562089834919749402107788986073014802730672040963557904137425421936502020458274420285692780290404891848272139667458111709090087083134394677808686788606449405751513173475781633366398267413557322116479084620734816609574392357182758983229706285533114580719473551813089506630624002338728623922615441860654511988733711228055904130825220858322493370264158890077611924131792241080729450108824416723404053204740873445154628160389868960636102007260513449608918092324281753861253496704120881595762629376811187130470307281119828355451585690663457923004877741395172727577582353039678920129867520654660429907130167046219170992859146342825826937875344874211774224711128462128230867129911248996356227780442819482577295705708641026857134021750926235605733697374750649667648467840763918948101626674551842530962928546920482245845697234100794036175484934171214185011500539245068968491457380295485890435988543960810555620955674786360358018563788551563690676765481456437484819039673447931365280569521344477606739405739728712183769329075770022749615375982170552836134234779874104868873624140366795158717411772007942904308834644795322438717385487550233236298722329873184577662764225600712639392536071843313493425401480580283930758973038930963104037101980346417329156188373069706502639583411179780701346830700386690213930640237322496340325866530283333295681618674339239656478349640270256443938784407302816774507998156572644518234533548363904892657102874251579422369556882408192155443833133349332875819994225936360638567879429635317805226372600970040188492322842530943859127374417900656791487900982687939336105992945138952093604064931762588560348538466424459048286675345998660562020996317132894703064615741473961763598261578422884489519417179410097450136758149640203852339655812857794359756636748884893485471258304450422775991788474141917015016910102356339086918147800981926869204023240721780398976268847634892946958463228261726801514735581588888835323400937660479125005020757759961697958971605053964000143269005026636326690218002919919273792676926653992052950282426032950763168537341538764829264536486336736892969701455310713085934945480058789460363256264233448874161408688899361228994324575868767893118391855050363604037638268489145652776303397926522850840320599409939760670482326732821755533944598400500033007084289765347929368040844632898038333703079119164927720312731663822500481941394064564204102762134949715186610707768542294678706792991841508454464269329464197789527638374722714971092325976035563959112276118494500169241733326462083915444231543401309579801458765054884426410342840665753424334036879747813730668179560635499726018518658398880004774964878399934839538206089358873877422530752705863043159777900600885861854405712893398450622022291938155827804074730223090189542146386784386399372429206352475602924138132947477559288190118647528775065119825670844629611073016134535038143358750249463922975500563276435014236812140486426211885225647142162220767145330305807168344302742946789492252007106358856126588509569646032828386059463198746172622074549800055812300752973288071262247712514676114097094794404761756508988340744385588460163890989908968600163510450523957401533795239235233702971169651620758801047294635211877054817739662697078102081289912497913502597281597746485107476336748919579800435523453815083508303593425683519807934684470410145940472528472593999311855878221845644339273075183477450400672986313937456660811950105723030890550009918681630044462834997067353509791222220504407217661221379726892233515914550224309005630731206779893229732178148141047083360077946959038674264921054688305178688667726587787602277786768884180312228379914057960710501396904527842944208526752682232175900298260934683832807801829281181216047800085920751591798399676883329110276922116296814850833204926048141996459488102444805466597340688003356397493832204780722667403692538532233417600515594719514489813251633545881470915602115316493136722509317784673297973616931465754152261301024993112949834410027861400067405826519800456422873691490698459269296979814785770493137899066877435771209639925231532524440045051988212480821439377465439312218524022671225748205833711805802272889914895540470682931065102959133853295125836153254845994969101791196040943517178753916388710622000106536134133979116489422502928127308999398980774031835585133068900866832508794649542769379439370413207235266026036636748190052253116024056464967542753615142829283363754976826156826807671573502097383466284825877313039046427084663178528764488573798736457357520146371010813063984880952353227046787775408194149134389993566061119128578974929913640004619695398703355156049167893977042627646794257639884130603621218707040750417949823710971427919364493351180251341904231371878553544999086510536671381562011183242601705096250663563068502653324800499852829074174980656107827865492189040389224919782116063092006716919693028318905153568623077312684259547265338034001744940828025041536442299490954205404760294480872115540169213072310214058300671272795205745226949698207190794234994501330593469283376842023711169566759398012574808040620783699934819303444819798735263731930256712239664312757153389119460886655506768637311092676413987780252238004342075888480514572533547261889258966053624513314763045551534762781104831961102543914828143820546800315005463971554710964372342046470112693432873381531262142714822558320266603902316486255624200360563116597199631309529540716249526444534616868498042599940785544337960295914431104245296374133455093868140642676282540035135163266052836157880381323971323694930556596387414279186126371490728182183032242318142326523568445202989401534115262057731244103641101231264992931442925215671701188700443776292047289461538455792923984740329280622603022029457770770095583737392805026383989139282995021600593202123291089028994248967708004368490075159939737903408812324603182376385594971012055592443567213576459831943092915780438061324877156224016982626357043165864761450224437072768089406464313640932376881156892039434012459962071060832900286856906893397589651403786874215607554448352550979358665001366873354411688851576654063393694739325456691055951075523437509690162254538878418421545759591475715011298616414879927644980443701769470178821878286236269511981611226604888452442681454580293450745070195638579134221596307601311176582298667488635280405115261697966589025584889998753495095422860921560655603831690758146213271316024806144875042795866390248084124826057905215524267311318667210376450808420791504160375534605810566482055004129882641827915779029588308229954152756643233008721829507000397256706899346712259659728899316522672295656095391178715161015140038434007981097881768472572684160175432968268882065353265221908349524209744344573715652736277026520092834750462329226476693298855981151092704806229093802006608410780489805926046045491776262597541472166975270308491325716829982518620230543676731497765625737742806292557885380003067936303782903680365187118347030430146444422708295622352428630223686355833560383713264951095871400866803624907028785024088924513334096186362652427714518664697172064584871563023523286966325910225182567112242849362552570406295052158324176882182807118524860555593828773705113879242710203527672102124142998027773981038191854058591750534475869580942094596265383390801885938469609838921738420781620111242991345662291159598154343658146099227487965083050692846539941290481067241021180511296563558731053412380548196600150122694399392502800728225139566776972369806029713371145941998181741401137279521005172856700366842165112923217116909956779643151234898106498909426019012995060196734281455494121974262599132263559214031569414275233992744006021780294514576596486074383592528204016850696898651622920323064786767898025537867919671924757210226726298192998665429452209407316759053816558612194637865488100830293164174557243950871639173911512739140100575196890532905645143940738432116312326688364459561533111496672874116711831456826986360518909640954098534363584497123005046541571082340321950130831536859186649057141327978424083471050462186361052058800141924302789100214782400412949388497708439544168618192008323948150635220067374367687029384354802500129900889827848348274478160690494118063909753104065216103360279761653701142086604704075295926175036331385195884008492277645358162809978025138857856371675819594840276505013122963867217541307141966882377613477453525816140507911326009764185784318005646132465139136258186673508827344585524178650623644517098555929314276715549555877747831300958648010636105065471472178206212346804840453986672131807007251263395622384029069940097626147130332845152139949227098153175304417617538883229816131831646419257915290861946765503526435315611767500509676488650918045342435537582925087802717078326514184184319929651261215692681178986585091509234497987723398670290253734291165995235284341228116648075244064837273720012228483545178363009109999542560833586171639913703921313715542363180068197147461565615081041963682236748325982284444736544101975600630720915394664696806297148732559256268192465533070507022291843741950350681092763364588269590781797261341184949568827949662762203701362738766590704465233145078145916575204911016978628477122309272565324777591473731449403467268633865870954995268195140838270871832013841862163078154213437694833330301018398473009826189538780676701225843730950224261440180088907808304481993815026792714195867035333495912369547038717522425668803360207666918321234285803038674015388253282709521611513056818210791282855394685782504170360202275299218541451706694589873783697462162288467427801806423978626137587890480477768353818725438870843754737430890359823928200450590706031125173904422593441907121571286623123022692393596846892716894094705122125685033779217079994379044750590728793621004214926509089826278147665984610907664378454736845209934834230883792914769840781950929106665956439531373911570827876384467745086078678763610767681869796428244532335821285847447818921807681877439872115077303226384828786946184775063800123040362699112236170326825796894292800249420628779778260197632572207815123143760973187811370018468254346016023460300489715962302954807983664743750547913715013538034687349019738541046000215544779855631380898228570684408393253884173811087857365679318209969131810455746577627379273175377716235283282894332146234590797909351352590296275032737991554570759722956829476566806011126645823163055450970826517944533402477695611281755255345170827417405318202880179426064012092325020683788029337870556360246740667060852242720192196843951290249026277159271137798096723853572066218877359052243863033631566268158714331783169037299570276171132483796587302320005184664205060950095857604681814456192507801972992263136303445593326271916933947754163781108001382352109937603481210620394476284312674140417738343448158924169458460029602523530054815462862690070369676916541670183022315330662405043808068136708020804072420023279677107614354830203981465129409962631078519091511341878141935794707832514093054709992335132588469661906112410589927921537829536481298854080190087555302318122841081654711849525144782732259607761780071249479541552309726723531692593085301836978929738521177046363551965173636092276911012343162659656337790986683634030706232740762342491545519483971693178620376485920304464170670554121053573807285435098446056960723924866541366774400748497305914671761514642439897196765388530655025121589290379948413916689956398829761072262347982172854393719323771119521585379609870459230027456921257229033055924994817899111971788245634587207494953594270454008119012987518910450196242606105838460620937793625811106157368906184178152223537731569561617041877271352905947383981623930249269602462991567896364985360631238380462038378136156731457222784080226140549770803334721359149988485273017928490435219790188645782619698707151618972674056666618174203910369844062215312715037419431937569327888055906527105385424594981252543211152332259783452312067562848983856344898900495955884481400047028883876804960689395991317002995722115014314017325728360923297254456305263359754882104399530065143940527587780970179285438820524865204884413635250318805252930530769231156578448756422462737867113762289377893648007032630902864181093310814273627810026459924246366082606604542147862014402501089594852040431788746571534537892074856699957422147910801944692067556219761331982913975174568755483336892011469265539571975912180902877732617434637532713709493010685718114170948788534378049913421415749240716289310344420013015242352067543689131957860803868817947944973043400396259821507036838297626874082270228403259227856221574638669069268282994178324817549961947046531266118618021393531451106444439145500877143266142138242123270505261906868173697928832707172014364189331609150424674535217009604090628255545021889742938460137523616251069478919011619359030962805045721007302742721296508234548636593836794947288464715472400473996800439510798413291079939439357321741814183894096819543470875982362930857995879976419150612132877342899213677793218058816292230305880374201098261865529498086368572173329715958451170588011633331989167758993962786776234381854637956854564545534811579521097671103467018987740956694427758310708548393059862407927502400766601604693635502693810270131379568305800270601492475752987623192570570215884078596970548903231613189746379746919084316500323052895227118804200223649018231581320746135698270658541327008123487011969134387084593700731845674294652083981668005952404549929709383282952042170722314101778596976362308424702763853548964836874700727896334645362495425872772976677023159410612164485443856093160300387945696470304104918484192967962568255714653823064215964612646748344016556050629653588147576893266614118463513413735719071702734232316879254714604969253307419904896611606221340494784377745236601929395262092372566418239887809290018857203479047286534795630080577917813941801703739455990213948573607051924935193020460846235565663395936326111569538329185210199199292357906856471012526386168141685891800144385893550685636374066389850464966430323927703290731692123865387565601938192880294639261804422281324831288281658671674919194204290964483935696722509521297709573938348403390229859183773381279013887089177896606351929476952802767210320437229464702890388311869768135397394050179893619652286946288901644833522343467314515035483327238399988490308706705456984442812981861961164594636954462993280169155258235941579365669545588172917451892975132906968394237050178019178838085552867049324524555887852903831357243846578904797176662242701201186301503242775480235925295644122015413051869992089562290272329369209663667712810690283591082728940443680914464794808900622929306446428051066886889235654377646927348184657430730503423989894657344614463806382732091022455610526267390302868344140863356339274705131452505455222163263575894840894209886511678006859312586189620419358713528856507678658024559944238564765693715826112477461988601170876511783921139951641760206439603633327202175014917488509264793240350019405752695713740593504236023010138178604150913716416992077408501810950245992159274414983604007452892946761624069899806609835020634665280610404442984098722230329865977643194167247826970166781443430423949828443196086776845826627855438643080914442859721291289225792121386599235255624034763319948098296569624376252617328659949167986557495394656133145414735306822126922087703794449497668993298331214385689713674952998267595914342427246731807570298850959937264119905739827659984229000839386486880038607528117938697142735297620912239430014889237517111663937152090897589277439188972572620517632465266455350608382340884387145250778481487637539431559527530335963986193179981594970270527486622085488910054730928129998634052924271074688715316435159915384860315199223730725899913390060903804185742891628301612516198237489846623132896305539430160020208906315619627919139891884336997353611943415473842896454298120695068643464061076856195077124028801530207009840124544659454103166955020086174065144252179785273970107019463434445915397570760091713676338233550877458869366631078835549903642936558557108996763593324084220891841334987759769631262306619280093675563639504770726802105647790483470321791352396087303213923777293429753589209204859926850226280473524947561855242628419150003762322241345816460067464615348255187087229202318274227141476217802748134735202235988660204214015661098964983356571385840016832516620882998258684635797927047146985647980448806981747790684405112002824133538467049506836943112719364979316024623743889046232829072814514355654342154800690985683116001357070865633434422310800496895091452324504824876185780921422829662933875535511209958626499305737635898729237895378139789168017494798383253428760633118033851683445788323899161179782636460632190829839949648694539683813690569787807176879893844205112048646503030792514169006347557677553144300161393608646440224948624191715814827207278307192627343132359814505989918903876469192372027912264159055156635142502159561078690324978887032775105053882893937151871955147128118208700763361719561041077189552794323829101243558973403969062329660537978209607206984806560854653144737841379462082867642108590224828905134308322783852841905424548688323943433272397638280167776480995809844951311923560125489014064887378706043462575843588061871303632795941410756284223404338374615972755007669449404286511117243430047241535984241014921698420199517176207801911571621987320320404160834962969306461106839905116117297719421412888443186276105627619115188755201162878632059650913477030985383837503243076265588689545555530517728318313591120666255267057004773424545438942430692114672640384749725448208046008697282494126058232533370738088144929368038256678173190061535098047807271228833729711093288613292872832555222659905717796955770273685854998244769816473039965438532608289626090176273989442829115225902541578112017749559333929112924307275178134999701423009389190219142114493136913601614166898540483410216476846206647587309423656927973302981582174497802453591715206614412551789350506680078297117971060714303671170928282615399676890793874278109925645167175515607919401962373054820945754633008694286355986379743521235649252799822747983168211482779027784825798775394792540969934158157057762748548716618622809914287353350865664917848826876347475160205880374565929970467731265799877276860901882617631073321283757445136678826375972675981001803472853108246981980689636911991425058066499639495505258605290873809158292668964573095514852517669946059796837600021325680493536485254917101694517623361839532573114251541776442928263544538015348947986275631350704461168493794628186161947346727867564932397334878921832101926628934245519211858955915595815848585832497714094915035209420805317387038588091582251610695223074090748188868266573161160725436817217923929782183177344921552710112078299092910169459203194580265769408933166341819429364653188234533399395786472099976953457097783747848332769030889378130010504045119286521530014379471041197491783949088996783117324060453911461489432343718036400578345080614246003850625051909830954248312697532208579785066418670322398199670148737558835395791473661967611385505581965771529603866543143187604042897185759087172840372508041912762842978963827275076723352237494455617811128337678199945065083836520536046285971976982902765079595519116661932639052956498151073795413443759326868325128622735439808050111597474793888288869163936048720353598243744578421895225132541083020249861781257574214371610023612972788947236638421008863784413594789338203525491015981139880710636225552900769315233793056101866269617403135301904944852120515512155426939669844184470924260299828602563968235958870748166141830924701597548341388572351906898157368849660341791314885606242177738230164529458282899753984944456297895555843563228498415779405471544860509833986081910900402738048949970891511741017287614370905035404262707661296449370594892597525850253182883831828999506552792899520992575504529847443615283691433167785927971714775818426499273549499374822018639817025087618890869526661944732838024893497295931595428941838429244441326960749400045297037068450585059525845279356069153808171086871533845971907120525661370932368612794582524288522806064071100153575958420857603496010154275918941146436334465759186783891892268013216596342860879837984670903908071432291998390299145160855992243115110964559904062192838828042646775731024294313498364836812638658822640909068001612638904090632099168603049459924902656358389192195699199001118031104390687367726434426373674596253404022809418749804636192899854580500316722915530814274826386024872082476420925504318386331920519242310448916400920506571756056415498420707692264613407609965535509405429028756234359057562737708947724288091782580745024771251016481181375307286313655664552569671175122820271833355069927017112623260654706798617772083247740571422349898436763450048072353745525542901752572040769031076822649008949566876490564559369462849227792570096809303963052682379663218482952664432242491134104686843117789667189718956256467849235789235457390366584705276278816423465638986506183692493588468769526354333507046313196678820950100759549780039549420436675382643517274675967555440549741534556589119901934619845435228045034532768915300324505523961236488766096479902190580627691075668230778437686347871079314002315563386688514627136547877453086003879637785727151192100259005456507689834821216244825269986704014999717129343799348256980485089286882601524863587130094217432879701676534459720388601407804968954848339472247337702221960742995707523294998386645072497977476080841458362530682993651088634754352202053138946785224906095632743768048670985836185766557678289741872462142086496917630923092435386053543344848861139620134992728750345808405864173003142372435248240248132088178499099493160337269814800921203386616608771852106583789925810590443028014733299182527354768204158190660715983917282315185608024595694754976057579402888787568467995553917161975197322119304858383603218355312115235663331735115539571950187475115078597456144927642286163746240738576787111528054549948275826879715079768946413119405213731303492217932689332969747289453534880384636016871641465087839142366313139157232146671667616402044579463031012005296373473099562112365370285882274203442229881863438129277831885177507909943519432436750936082689213444388883810357986628217632276523882637050008622878380734304023345709681972146903522587701542315012360914506624866806575293850405752803099755147302544862102110369331138934495454475222804430753841840257127987503653055379489456360007164156186128619171432958433232224030102198907568185164433327615562816050175006919221515435622518703397581601978171989902969017002526732750911545654124182830111246753493587672362416329864307667825524500203303648026092325122350382543923659923059708642498354638647372206584959632510731710547720692156641696460844971881219704787296521205848514523370053136362841936591423651603524768674021468349138474873870672859634780325300957748824122680122849703676348343312876625469797920019586395950907342322223683230885979911477824958703150098377519834962735985622006104594895757115397031302583723754253950046090064886423100778772818007217507510139566913120637881326194029056923344022061281773347646907029932768526866070243712011581983992939151158135545840323468161748273921002315885024541396621267939169388830031611999284773375081544643220575970798102936946955593895131240304274337378314761967834339531871986680022365006690997766901197950686713151871978499549078450938489029668666413374203740323633162200215660559248077758680700067292990609740289217150067663581385080883351360781186507211226744565929859150396761894254206867706238128413892396294041063914909047893716613143879111777282942118322799430586849082963913662077953362440462619315738345708869591352493604892224224573661795225569680973562088969366828103691557762987567720779981446955772114048613277624227746412242967845821020477173967007921939100356263443651690596215111333089271698114722766290265253902737491609916598120259568847588875494964907980867108982686290190653368779425503771697676333889571478141592154488385365181427336185446397668884796865582955150706792635050827166259319210132645436612954641095159983383852266968240374522739329211609385964658662085031894668590932235979165387557320591541990737932328348094584993062130374149189416910192100191055631189698021563536667561956438446393913534740386835892578740981219667125441797263047075816944822742521968634568711203122060849054128319665348205073427919980431434214653052385349656481248644502842130889649689430380619323593888144621665751437935526261288821390185177934652721458998387594863776029276640039124026198346011890920899169212956537623819268697932863092216995030894981235099535120502902665395839028983516354374372022186746724438076838822665973211600442601738406488611632297679850029893917795279004232875060644706092466179438136557876173674219895444143233952432413429038039600797171246852693785361261013710054087987421954636939577644105973484865817260666880091207748445419912844962834694849626251280900292084884058578465275188913151249573932110061393061355965551698058881555395785591791398559923963399875725888017445963428698694990984897171108878291115823267934289440015764299108736419615850807964448634263065842684841916952268909094395018099550275466436284761096240121449303230639660576532460818208394950722226848006074627706650428149162325006252736402858327228522382535596944222115684925811057886957249142951786606147083504604063003989767278552212744246265350391183050269749139226340829824942823909804270119952718651706002220367827046353904734689623836815186498257804586005353167973966346053089293774965580492508678683499992773016345223155282066033130078955298826580929585846055444397541725406140595674535677632358988542883571448234397188085703116376475138649715788030815043248940719726282478222409871193460853407565103681792836471144315085770552996432842372995694464420934713899567649233781852600519710501931288849218379854503651733790805269417139888533128240056317919706477507878206427620899317925759878515684838497962482707300720463076274900085586664407003092959324561035314737029290406537275441699150471765666722714770199334697264000949228231865960985331454911849720866475379593851234750970604819469410033288785735503481668069518601645456676195244496414734062466244594072502389836909032283845716637516209288508106658906568295401649320839033595087104954582176908013467754607461407742562346430960383082056041151447214681526745431756161228979405713911981438985057855155066022415259756845645298887285055225095176627870135836074685245277448367554311053490018318996973022995625991194239819762008663538870154575101401234932640432122810671415704263264654827285736976553844424658382934330945699660881827953829960297032099884482607557108688610002948865805226680021358451159450951038752557222309625425749922044351468953054959402398105143274136545809407157863939953329052908262190130614353753360372429766710813953274920513832396898922051485112546469804733757422087622327607576693605920865842921241413009126363142811097453157727758845601311534693934418736955704725419184933454330687453369399911944980712972725845205045662662271595140050585802552696395884413915939682594792504494912910504466017744555802423892134982023523903178719647784486586300853092926831778110485487372588344896491283883089497207307840599838381357970884342970894087295950447223194104416974801404281032465144871571969768162526847473105281124797294784876390580358178889185420877338298985992723048415062849960395701700765531698154437256174890943416694660807201823524115666375646099381572535487703782835414772054689271347228545943681992003104467173006303199237742831915104709747460026174632628971290112619256323399752900068390287437039189895146124477748876697537347680263141471517989479363372468788502316255456142044781953515732100965709267147192959195731478480285400563877245628860016641809662626416687403373041361809384255893365676967332218104282890259981632472231952519525920266131185968584321425463784900247791894679922893455867707145261381826557464416460817661930730668711647577053392285115035565799097060668954634953741238398160942735845730287480524687398343686587310097084424809381888452205971498487156615920649810992864001272640958390527845616815451550076453050188202266322264110196820928487243360521517512980418470870729352367962875301891622813897053209432482594766648181337721772498605419600703605929610683056270997292698946088702888018483862511389986020498685249990202025181940325163219436366431532416357802895028227864903844145946518924781328515451978502995628018969781249468010244691689686270864762246861114148600507866621458572879174704897395262584610146105826989485821345851906352220877335218079138320614870770870410343455096036235922203604604977361931671170291842638180607672148954897593774357668044297821691205367227812129728781329283629515913592851994025561253142192872608399730226415986515602837611683840676653352414444271262624535193043292408725987502339587342900894953986593784891559840299890962605257534749921210745627898303892812552601033022965663435325969640546117730965262058900807585377661253061011648611624805919881094761532977147261367978879758757577828409292412053571508262443390752375802009349068178557892907021037203430610340389472114709614234808172481375309962359669406077055665998366892228548041202375646247698381177566228778961884876388860921009015415654075993366654910589160304365065228720339078053334043126201915315434319957880375796942686957914431605979364967869870962213985927469586854765298411369468513873078455451698974412885165987092414466307940312776800092363872937827082950586987686262580242795728776223129638950428761146543890624963323231552268031545376061100551814900276695728863927756519550834857755781620782945327811647594585192371647476933031695844417198992104318418684050746076902405392358416985378953371899316899378748377070722168651270110590469452010763189360563874888785562122883024037504693440072089665012461933883138104875264085822908981780803619991152766933141167750560058713261362578648508836896406550887980368443070750336634288934345229471806572689391596111795676983401944465269266055058284099999233624995493113767855913158817657581094720461111864727942329647114900468116320656183138788057316537955901684565502759028257188168000550276252159399043272555094488612494692536306795571326735915947608610593813666104740026361282822536209071945998183638875227053694150317993676529739672630640219557268996872484926673330852421688070996995848566390716368091886176653103274550399098051248046305064672285853103594421050836342203359708662798323835436838227181823475540921772253852628720913867283976559636145137196668619689115403397812476495039253099354845049199600606024636243602469991786974511674652371934611405566300769179373890270266894504280479632688404991958625304075682653954810577877188730521753563027781213459454238703763708887526664871222060318563782680646635414131653745782892726505901842611826225672656858915044747753138427672607085980571857989191044432536661320106651023023096454515716218498385094616903820594524030782722354514968185654092996883978631902329321289864880754851172885154732315233469015593635329232656827287546200496982794010650712706610226048683433701209766388133914252766762970506056770727469746541847619855449922360827508346613324813673993387336780910732426850067362759229447782196957071245089617283981352781056068096246590928581451411847162400144127813197231763597447457381868023609391308780743925825442010703318766290523799384917599461491706518512354174658553669074429399049187328110342676959615642859230077542656741412771054458855195833121078491123291332715205372918831268674094801800664923895615864663135381800564267665512759901045091839397754340752167180706352043356119918025549911221716437503920768960103639655236949011895716574067291880276593633720039760278398608803377130664868429114671591215969929213656847338249220464479065922246377239357152829542341892467228696496489656454115842130622784788231116589485469462976405701834220846090330027232064639138638984250844933452106884302622657957200071528654555063190068522912394695938796732463997133633935417053078634809437036310784537971151507491951718847787315389449070954805120767808080760943928082673995532389043204872359292148454473352598536414504021553044338408392555236404693688708392113887649949757323601340334625714967701769911964020376624302475129271807379094556752087494919160158434336224961929763344982570163391984068477838875039929487506276120499764625334249918645544412816493304518377812334224700109005399985897323032357382372497509361912512789060243546872871466202139629787941272684752622989343692288207874073664920214847093044195143086124082732379235157223908363087602762866482900217146895914399558064762418857839397464001042846314236564815492928192336287447103031539866238839676054932178319910069983133468050715785778969935479560467095810156847418438271519126436585139758061777372742227280384273853143294723520586068713632153417842755168424809871170866917305939514910132846590783739881263417657745453200302650576864472621480517212553388208462623012904849803592767863968527119275358837778964372324352421859652068726428681998603910527072733371207906390989686970570380394323560370195050200403753435030801520848092394872900394963405705587222827382226302082873182154944823527987670546805136486553521398843382998143689101093286424513811703400239059057965873880000892169034933469390720219797595188172677796691792409368900020890199221846258643080493097373848444536068537137278790196740785376811419059461815873952067783378802784094888973481330791570338470541114986100373895538780089608336596963525368577011788374779328012572747812420592435875467191388856692551485664604669465673748310365329234484263793093075328513898024126452661438235773144528697509604106158695175138431915481740221006586984347075992058331544487442223778281210206098871741585600490534380631759213153489450729875118984911592422247919590416891780725270951396495936736797080909989220722129047061208206347205174958659698533509525502289629817019215513695932388302672413781280985564215469571544394540856051751156723581665412463758938076852769157817193915858562585602841046937585347741073434445331416757623507061781193576176878955786099019470537131249739285964806120154319892972580292344017386205570537105159054889402672783581018406844720306987577614058763905716123267474948362333592890918711211863402474360404928482393403919937772287710092651650084336675976378817453396962013141654073810380425806004450803737971880181607126616605530725576980018526122112411437303628096207851637204078463892744860236519021598376820548324126085598929802375219273250385558741594202671623845352330080405455253805783539163746561712115839441978203876738085232022892013226867149359453025236432201381061570795016974943912421126720195410328569106174025212172260494957648877250887958783933971196189172915244304425471394448249208543785022987960695708225399323215287198120258704055680015004253411780879436425673352798296886195821764152674903083511959909973525166747372589645018538983614222658499033783718957519917766497616832206548211258156586493359258084705493960614331478881188823659589317893952362663712089344171965492416374023761473609637272963106269904347336071416755127718213063970756424723638426132356429829783855832098667960852004537478074567824870985598166882218189247574387709916362467887508113222181440777258491022205609544493564990248751664209307210048218581375928141615077310922742046838212408807569188876408767504252209360226099019609401303063999663282652692007506230291691479691868023742957186059451150476706274908647714039526993544704163658661480783538388600233095937394828835260182724252488533491273281905048808642472016617856886779207414950867733094448822499846066164769701979313805498569077377083439720083451996416912918521694785399902535972946609583439648839615131408017850805939607068871538925968906062955707210602370033349251885985769751156513617952897085073793582563376509553067403598815938187757905206702242030680677657423703787758814520322511481921194060825013700172588556969464047382263074932772497163661872837087880205328589908188644068417947691929564741290471474764889888889642381909137024883843567366077570610977725423599813507842199316408634723904367611377642236061002334507754563834017354668839854251316389987804836716057628184387652777581819409402616230349165471030013409149524232410205472378399421933881187891582220413707176366180743409215889638735736927933659021968603315255930996610260606821593222451860514192102842828160723377957936561640162389902016659687543752945885547824645483886438118773057478798869780597354558817404592587293560034200538622502741152272025608438432570060454551095365023508700025250059416383171220729441610237614583872740867064940807471171775499256137827779272243242908482558248812299660603338699465895517322864256899349935765233129776199236391805453713844030158054259428333755935344494991237612435304927778017763795830911238372390335944455439000668169340684091982719470068286551889935484176863072874629687123908496139620770166215875453166883049701265432997828104291936991506390474842166616560685304731278887081120788309193829717791009451878289565227988500391314307985119428026609518117125934445290302136104905292959971521252244482092803921663492935827167492808044371932008124164335826759234025110182023645081398369179198096517174661546620581912897105838649708941768535059827857034308212014054677473525932877716163530524765409151487048725467662526297975020841978322482967424940434514501839050151680607280919062357736372181730080336289885421508405805335681817493755739012982728807669450439915048482556578210204326201145260988161192448998700398184800987686626834522827623749464171191271570576081916738358323458257300362178194704183724280338518905319303810668497642884321678247873168249871546172068206311730558342336175573366333899166346733559815420504787846223219984889397967400652872052575584317114240977964379082818682685732933735286240451857094808211850318245729239976245678584837360652329967842196318722924971174490323404326208063653304846170802876593552352254384812104079472523794849677754202231509591447030375344263805536871934895480473496846995447468611843234520974877402995608098198167854784822161606376550298098568051791335103757957903690993867912576584289957109070943716004832552959832026672679703917110838973520548604653896917703423043440514868289851900725017920975370904161030402567595965985412882421787434956034927553538049287412867899538751938999103579902532245566789306875617515958074229860342231125342785894851498064096377662399526262566360106474163580249870599054047115589106476573279005556690176308551511990694971361474027518133378539488216236097828770944065765485737176824969606458415321709964161654247474125542270302869619126161623015000213172965199396035748969129178805980669462562486167503316980077919407524430317222052031332386920599147955138085369837533568057550044832918932582382378999133418965193399446284232491310345275520191435512141302458711168436732628818668964608187517821811211605204420929435806546849495589766829741619173528076061278123192844653784701622037293128794996321095069754005259748871150653901162647058790891287545694896814905823700408780282268238750432549349049943064683386507693457824838792225370962182618764667881810021716991797392283584711847410633625348802369502097377534356849483157463789131346300303072631133980398041709529842868061865164431830162251889044102223199503068847382276851622812911896302082114767863926729435498045601723165246077178676810299291078695983325262045553672362468120226727934685287216033080776760711872279337187344752283821044798498630176680837553927066859001578701618802616012923569310144623229852968770484413357730498974898920371943466486537126987443916406269483284261741926161437677936235916352328055060907609276519007762762756896980296345478357875509552142758096270720430234106466486799527293451535107910973169087690546648827159205246650653713494296636482393582324397528357958585223240117247697135444974052410627212673570965131116708249695174352402464546539018416343076548919566506855632717872351490258152319599697751355197763513124674797189526691439564913508816964301328684046057009851055770540289023992907575806257664856168693700914721080157266228328535645280112241017296555967798236016521871311267966184476251061249913156821543618700210246178320403312821123164873552144645177010722174933668951759479400547166313955890438984949149443612086571852243453438291445726094377656999039510364127128241208580630340196971756608324065915581739622246624789361885188571740309075213881003472704420128315244289953050115450905744751307404534060760458186025648489178525863879519101921484903413288248316550878674395098238433866056793197006730626464246077003532432724893151208693962042236988057604912148622583623609691231947447029677621875207788183920540313212282409643605925563062177005523336626602392713924357039461161385204202247546000766292700999479611641919770688948615350595740950392968079676207876375503077082628187409713665934872819893674809400533875286657169972914306957758936918716996334097744717102597741382114822197657504377652910243360429669609432606657945278229735706960285681529520950270908135074958096676863656326047958400791184042393805760250793259887687076906597050234657350818353562254437471081356545743029799812726018307092761626248495059994842791773348855648761685822821607783219333896517358964338099937305422796929518047435207048010534411998194641008973206716597615100770658705771302204717729278916368888978002015416971377654220165781768717432747019919014641474734191036168621963779119223485035358289829072279042557275441907807877323302362910122203212723185438744191739485081164282537371723995895487579901941685747466293516797104580880562714959460249532893448752454764315582275777321777066562443756935160967814452914407789954707830556428346738481337620155479665701564517055910879150568475292122338357467915987741935873308635116910435902559009513465771454149781327432570547097217571178225173095359691829311422874157083539516570062636105751097036705957127988765823365102298172475631992349530031481702283174014281830953191645212900921462978419060842577876623362202723187214526170208072437992108324191672247558082825818729662695687852611198560545164258003526015121653552946191439959451866317821915679000303180375760008524046618601793718949176277772716646467646069643515109022946916225345515769436425403049177760135861714381127362249990891078150961107509398643638343036188683483510065775300334640345614686075096104933955249201963170877520934050983937112680261865371499219749395719245792054068990224075650050254795871536467718966975350148801790609639986289112638919043799186412769619395154055475446351167637266521523492463501125250662509032736555080751814838279164935517942672614607976588988899723076317781971591220870989336138811815186995665003960284902596541974385435060666324582213051863283831829670767748745894418221255073558000738652327339818697701756150512863438664906776130541779450991169169195255314313261240605479705200256047310878998052145578998407028379392159954189063535636399774742171967138724689454739446735668254678734309101023103670359267169754720362142463364642343825916035924099046223355938704928822083277343097327133096074771064271208725949390131651139762111841447769359494232273706565385596072527190494861372177528203103851847794719951834502826645481667400038316679961201571855140457434423102508705529028925173451699251349534086144518526754339777177628322032626948779454495194446736428562950694507025586018446369369250229126408747972199411816884984777701942243219212449691366669901428449430201855509700309106491553551365256231089486606496311917630249683792782717067962361214308588794210282512531252390333353561663495512815988828228019145832157167988602010735291857448147259057055457926781879238749815803714633636292804981105124034495609694960759909796341763125010277322781704948582687333120434910008257434223341645175707589123559255357961987551265568075958974122263607846943761218582302201979055691240549661716789883764653331909709706729112012086852549592160024516479624674759872943359153864829702519402917554691503840393304386289956806467988411685363358851443856217595464457805965572631531072639257781376217178415494235903197328946475061282337282720341397743833182350424341670762062440890772889334799101133515418547064008805025225297287121102957578326281088951913259973042737823478409027826914404591722529175721318904977601453548042227920114032354175953503478405284744714363315036477805358465865109887471911302833522340199636028618902244392994991860555047153354699093030286543342681901719071891760250242181043951683287793211819130319532974365582076273354137074467118890860657591178252204970056812022994473786562272030892691271515076031426560970852578310521394910192039743913151713904966143960506532052921889760014763883710705771922806059299559931594096612037372488585051143193898473801832404372973739890305900332191061241792083433252813881690206833991647848418862619879901476904196728401546606562144281169776699699322978898897242821494004394577723038406942949997991892761059390776215177236264280058445404613991517338134538395098141260855964710497247562960495289332591090861422345962188299554174768985102957293639761693708885996083051712192585917101613713568813043507114507791759821482223367917196372271095632594632463259599373578400318488811196106726058380440007653693062173804320384478172585592780157506160772387026478554451209577105761222517819256899459018373805126333222491033246193730989135523335393904670546301327624317789808844849836931077864486417137609766349930469659626916323687246372790207743835255536034196407911285121735137612396149716700691617711962302417232524963608367120486875152704191689363820549880131781103833699255923150778695136397006850982571676697753508776216707342899522925608990508983966724834515516013288398183319593812468875396536740296440495859382680093126685589884314684476326064391034228091186711724677180058050969248570707139842684935425300318664242672977097611453919882569731370001576447613972315227060449026230909830715833934747879750386794378655414909502527176807817922221885128438787762856307866598288895008021974242955520438034613105650722137190996517914413043915175987978860214297414258323236146478496001173680564602427413985283980896262927850757594715140147198905686438619932617893518577057016159617246845321362217744158403065159434363322261755975334052314721558696267084728498435169241815121336197228816540668899228046631603612615000054304176560919814404451218616856079007736782700445475558454535162158249009731682395973870658121517716738037429790011601082482805433712480464703858677806423516461357104681708804475805584827067308788512279904439099782765295400124722240998168616564758155536030026081327896540690681837193890302483670815995198123020618134785953221469350276102597312843496751101098372671108883917564453777276203091530076461988033011801489976336959109929243088914373259628943181325349697864534481811916950149926074545655733816197446162517837569478741481979030744463021557793973532911478816513270680330332605339598759620469742940185038814250160529413809773183487320907845543930524961574039786987986162302190547203046417978722468971973310170000695063920021601262524601285673685311130016121622843432656462059939082526781619491615263789927581867472432892491957801618888491120201331447367937918494437490032579131412427768424088486415665738209914278673546741345224456120575660966344698213238085456562886769342216855457490965466598160971864057293901788142675735616670172921718153965645435420356427916113756898870241175525476000806783839822469936021586610256472738905356322060144153876810440210720730859750465363393355230038272897018301393967225004264009357270153884348391659159540273596657785405290949179883299923539504059326442112868908221726259337432337127971708554095638020068060173725065501178647385580236984262876341483499197435362705224745603855828015094099485316754610909162081104912309113710525774215371170981146493296600985322195083687719273225795028185713595791064507305431717147692600278951360568120363653257082963470409777166612793357563277876634992785354484586086908508176578836467636456318005047790824293806067158236578537866207445786866770535714473061846733842773571513756789547173571550557913086806589430377257213777253136426946924456461552937877852399279126851003240939222152165956935887832305589700001400976234712487181267757296877302521738870400966685485915624679584113084635550955064637378777671885096837726518093274514580440515474612699973537877289372655239638159405671475507185546195487504541459984145336722664449924672483872323785903486067389455740264183520090938776939633295985669473798479111630413317174321843369384113633121836574542331965492711778678972478673284354366620281836675460401825109750923632488595264556803352922972411201863615393931646575157135993106358802209488847166337769370101496732330022039625848181034636977181698828719966626960657369112114832865728561283477162833097891182119811051419316291000757693296734437414479049862524848506699757608459739018685061471483268435874790125013780287180103611831339242954781237798721610788920739709700636495683839124018851852340409039844480195860476249803230901342153805660429412869632497849699770227336759332774722929139345700507860857735107517778577007837732077559261654131409254663235268400273333144658726549234017229866142414146716462547655224884639490124354831508069472215922460575530636300634576823862038550320400164674235491166981064276031081406269549396934427688114910830779513706706282060971028829390742771758574448001699951833172138492470656962624599001825993457818802142026033723423296600042951505798121423025398974921755225456853538723042514280704712737528823383739022814623249870714309265800285460167554563006130041864668483101520849842409873256189055129738635363610373926424157309995857658917065226500294830925873201844596143965852040830176940736894915723821928418985004739319459160757113937061891059712122674048717692184352242158617230931231095027260170111384261433174099121543731513843494359570381707654867659716451367676177664123669294490112604785699261022245608570883508862916579407176351135140744291746146791666116783266294410455817975280685256815490385484116847886869799131695079880588395983962142942610716143179840631804291984227918387007799870976668243825556558881381783247529546858835476700013218238627519255245219929049379343828029143983099379541942052763986414598927622412187736127936317201990993289105370842520185628975350850739475254148636621241470432908317586954572629727216268278438100059521496857488212615129198845183488600308873945635940915934635816871214105776674799605123131423863557441445990116920444118618100509285371953683032187777543929048194878136423338553989015721549379453961462913021037568163413701470671941005177946427101243861179826384593319232577831944986728445576040764503732712837756510170079356299345854429641281323306040914955880754735745538035972359674431224994103055295208005140944661463859563655547378085138290598656965980291551239927295288833348200692300305857193763576827575738556903718767012137480234027132553722564770929618004671278272332122111411229375445972631484414554008207720804897054556704164402687876143161646826940747452313272524033690647824674974058306878280555304899316892965667240875427026696378313021318584761414607230678001506365329408050555326042023001538877237171330737544958299736547566671014732899720893230709426827216176019117799506403578686722567499387212975218624486935275405244212826543790358683531734866925260984026981265386877134257126559483748280352249500745633788788113195742706057831023919327634081819060224550612539362995721341229364732456218486698489815203551027267613294957524298447402127149421864804867705484132816050683227925000192164990892990692862279052439538715680632943939352193983355484782590330726003827685800425451227532272793111952631106706265114421318939341600390608083813572207957824880458914549508679210885378224177923117885724544332471142183446126457054161693473149732106154230136181749861025608391568035241077847876567383791583873385595251690008033852655556899600935673833380365961473518594742306629832965117169331678675549034533232471392875235937157871236428223604109241961402611417910950455537847661409422733756925634976678727612349718328818321464881440957596333777169299379717478931247842973519586818890261649480947383907882600246788790372717040382709522879241206458955327616505544694439097554132679735905478516831638767787746835860962342397703963873735217444699347793076460905568182878781349321396896814495150192840334600679101378738023861716514445403224909510986532523288026346385907893109394460222202031919723997804995264013444379660478058829157172088033253800688935028138300271127868065664769345154196457242294932285218753496656598894673309015943965601065192812625937618868084367940911922485111621110722605740471780642984561638677448689271765442765458248022688044019783267161754483267682199479269622264897343850077083846032918851287104464254365038606889626475823508253127869139913427060630793177816589146758641624073439657611214890600359093925705044790514695564285633974873437299985303830914076912479569537605405780552314235884777173887963214030037904691763390664981579794957052831779588692832723497193690756972917606328027022387750333125215772370151317447578007993669898591843699265766239228439171582395303210508552595374682447316994436672940579630017896908968021460212883692144433681940407301848657102310244526997097850198424670096757644060877108585691751386181444820196741539776231877787947128665692018031511596905739003147416858919647271436377186986444939039765452414299961874618418437733342881764320746412400381463095634594734240494767824486298042125067939608232397286879644062979632453767797881419341561816095708228631638277183400858631568982463403576431233010901892977073318862607507089676680969926053127088055128518988372430321417005932092018044069284844467412019271866212069419006380132723674522030656488456748850378145485872671158527669719731851786685925916451563804470330417067351616302130158545887919884479394145747879836187003484950342540953123193669787937650551785490586936055196310518976533932099049443798471016504170610287521803533533425999821813746988166694676690121824718457863254177580627529193014884351138625326297092940471314171975243594998417275737694353954144445145197910484330923532174391258854639320820708051088664820091908486438651240599000402208243199428275846698833226999550929996416223427175898889539269658739923327342867551186671686863623608881855971326911328380440049356073826535696822147671286656709769886248588614285081529987554631574982382315214721963043116060783726307733166105585797026116706776083620277163572412504193474317925550828738721436651673286327099174631551979061797851995470364428227542286056600599162856611174060457721302792715728442742268093829847687710478490586384441811391441215604589676438946351223958846142063994163208126669510954007619312948601326331677384053928563454705288044119262643338138695664609541071973267073062728499693403227559868553625551951232370958811547272812053964876013449233688490343387991529884340673779870566835523598280574161747008501580867890594381886063442925360339807655699029112909980019560292883555204179105984428567316808986511016926711992898598795514758025239151252665573683435042834940294394641622238956303545503620534208000103405539381971064259348932831889120200292767943827005573278180221719446094261697223470784349778808992862104007002878838862765510820068750222798831024394681598037044353858273371698524511449111045865193549697291978425517165271277363970419384025675122298535675450670812438798785886837634487169748438954105267645179472931548688857289315728117002223686095022926827521914631407782303893239588450412133775633466591926941890583302796044141862645434042747262625962610718317290081566993380814609204490374281755283668038140743589891203248695368181644602331205237880065177183377957613309373529776976969341373656553093969078653658449761363603396810638324702672483318893982899812678503687723265113892884167896389161094947523898538104365499789554237536304915307061445427244830455475222008392092575063299347658082996063306086365368117814435192229326747228863468265939042081376505659648868360110726733843773619193934774997227273985688442142947926149368098716596963539127525300466046090743290580781742610510521735061544914739323958784432307261171670526489291868492723884166788383066076432851827481198599234053273116590106457305501447267417303481208981478157126284921958736574973332953667643205576452891596302598307806790187726702715913838801707510898402581894243213133258021060110192284184034803335447872376190205104376530141953740449274873445769548805867554741033588813965047799437921562997806853668611078292221586239615976296258870534447574204274028313483289250854151670707143048206424451530576316403430607594400529467310260622133666352098084736782127506881027485969678871979988033513925753246973443947286233415591465483309131206971844060238386164879993213468623467309540618890109311362378759411723586540927710778824251652494372527578750200205663477421689579768756046917454023841936552576188805166518614323748596658829126693847595595365000920129165718229534716121985762985830948633991838447222315434671531346613403869756453350342179492272244994096398407489273707323288593762509542390154950142825314236149903002895184007566035937482542349702407126892978324183781376285496470429177681641581167994704328801345935579725425710552929592666034128971172428365362474387223741372057293028686269514696567875395993306877784734027652091796462781283060313481524689479326988040839487353652383532697402464392567771723632641852492947893805830376252156715031064146719582540975524520023243572850107330819971080305274269443468999586928649505372126520135813522305275410442504549589245640780574653754266157324543664395556878526769004956335772901119044018242178849542200276987863430869141459976496891671005525098379811467264727654192323708532131721829227137407088995933979834680905114531197799072235861033870741130498575749720710199890779105923283418044646382453110253054643121052168102397841323376295661862396947981065754433633574917965388542740429863788059291076694812240012025957738513863861271129581642603415896749606710942338463259168945145828883289998601944112821264653065249794418652483337424999802534462795243251212981930827669122073521189229580854327610160150202523586986002516349125520205897715986611314994576699460932459256657147791944465970011060012844923184578539339055929808618713912322100514531595175775140189476788538182541217560285800696678046678391361234559088000864966872061335275148247312276930936914702045012117870292914754589198200693130332272185364487280092476567153988528715315383447711918670118145124354125439571670249909161593560930316425386378998220242913969033209525711062282793141489042046808192754818818443733689331999299061520357866289980155471866200524282625241096973433937566079928919470358653537651767742364221445327767237923809158634449361625681898347671181369048031885461296826957257022339423641155433833268645421034342083167632309359385265240837193633791552478622741469476335239244976568246707346918750198863393469976262056486384280847906724107929456401822203581375646504522610239745409929751523000458288610621266484956028507427880206650662672107041926926253608539350817042180839764661729430597744833807837137678122631114705265598241326948061334709817661041884117330464001732083084373281355420612732481764219917560886122650696639345336996350853020780644633250254913481276234419177350350368132924559591657973876254689451911258188231308116663464597676006933270164266516836863866684821727394060902292176012641802575101476840300741719549956671325303244681161591907793493916483704752684446929507225875651637519819259554531000865443548946348361364215536251946594647703944577125809242940967162123673288171207673167450765716569623275222470020971445607679397914741585125958952102359247928655395369202852584994016503818130035640720283246934244150216461133655586986044853514439315702867487870794341314658342164466457007980880420443215198009326683543752971281934704287972029205763835107399475780427292496002410046978385562614329172608005418735502142346373121980753184687635569848875497205398647276271222413502960214019731226593404905913518788911669888297725135110239348836948938119090071036192908957106934051030070007786666683199927131509192980563858490395223529054038348412041362075062768224799856721279812851337753466942546984976602435950586875378370885468534595702420916314060090493882956338822637091952946913571947063734034315832668330187728823474175104438715024465118015843991453737675073665950256728741139093048046573067672977236215873959637588637885476342919815685264848129847830158508715967403677219585738746292321155901699674892345548668452317808199900583051843700700890967069941657296562705484441284443738721979503845760224087762036850615685618727752224574154093733257983847845640826061969649497139648973328575322373883249594708906395496676151278466132935546030974504103183005051633734880984026471815788553979032096123565126621729288088137107685716019897585284289987519181299855059581266442511121117248385292611573975656841460766391699649534441976630946266523782454481534299828737031041392652138678026295196383472120866146401935983477178035681954267819842474579657447034366937045209757645768221945817263749974636602444385319444098247977952827644522061803930856327480327761610026926085878880143961932879415634419855375762023392235363047085100347747171144360163784649972635839606187106411760962762850434923265402824822773810747854290037142054838786778486371806028958253906463613162029814137109467126241449463278348137306356865083605790895431580783458550006035269537558187790954087612341400468570471901383848165899915783794362560853611749560331403419054434666564724561601069879191316029298687633174872783589417181748622157188888032318617205477092077296583626256089304680352265470863951262754737541530327955150514349583534934344049215288544433647251139639196157919852577746419162678692095010427420455904506198664437410669305760277046369711193472413331025596361555125521505546646320724929855293002933005633441395070974424620687793875492450345766600964379757484112248139211074812246905338824989740193779400725892590754819283145745137644955478171046101005883138345188380774355880730959904263973538611030545805466150273894379614649832119821308210068440902113001691064877011631500305453279517262436803930169367194141119989459767043097754520010375863025293697960703645427594177460053266130922263845558866712501578171970517001883105054784938626455243637370256915043678790854664767635519746231817877973683508190321629975516470503696474335140887432732353114231307558997894593031232726647131228078323953731944171401999425568159122871349959324399501295149858619673437725492873746692112036712729983471411635459316987708076280488824028149348110458626938357235933676834584490228507320851695063765078653248385496743059388055316019008833070607210068814527750868619170312596760095141952130284510359043739759770559349362110270750946259099138422361812457068260955885833203565645582229333127573645937611493956926652019715359638616357964851135038412677005024605376593076285157678925702626855362054524673274395543234679360655058824314626034776646893362554858044108855064461949358337528842160927635461616170351948460856375984015695901133998056346232171738758292137718223023740480682012905948748890360078938712813500062799883668480200217373791926004158748631208036516582210786604621922596395423637935756634611858987036279589032121145090875633164814911528946955057825872051912029678640112391481153423997775345423463508263250490407871143246964046470222098165242195140353822454408727446237192520452144556731576008193008035319624289027071471307685691362252527124177911840426088325284694729626875279473062688087836857549058894747231095996445783020408695608617350154565189678880587111739010452121882693178798619408443705547629447995307787196241623428154975843878423486768728087629254831748035219316972948677641756837060299239136753793956542730257857761105444234818686709480961236556487892960682843452658452723221378384221179112015125417690856300723251119011568390423216889464596179652227741902103749325424117427199170808718250235448730916370399494239520298450391754682087301849282872116795670360324743798081373147330334446204164138444408572161832020245464403456211172522545745611159026494635205088498893471483992210073154215406192512013579737380881075499771638754523042440805109663717686944374966483553099864080509721226704831023773941666492581674198902987480024979228403936619120787850978641661607945115417918081620998642889989615214131907701884747092837644268861341459664709934793993491050338311600266899654865004871678702640374881076621560788660490416049636804261230615537785651002223742133360311674616394367026865063550787528698706310638493043228594048501354267060676582754418331858280071322958938326121395954987876750692163758610194148378306926017055146276685987484904453294131385937628800740348017147274403914850811425842807918955014329280643490647903128038790870394789758721738510569173729592099682611397435462075153353150432216388481301581850519761773618121707565174184402436710149722635938906203028668455165324249988052009677441002637230047566657826926724998517670593355390416842219698733756549624036718874713753808828380606284956149313217534101467747491675091800563170391361189405514151726206154501272542193550981716649744669800757110444567536737130291572440616012815528776458800660067069554135922546840302769899800233236190877386728432892973912211835112134589930941099989951568680952559286249274468389135852998944041994257643262894584545086287695819038880850693937392049783556025876224040591764095259117746385361246510081744984066054973693765166103245662380846610365846842419524170253505653772205256913127360445435329726598130400622207431013379211434096672220356837474240251819868726661646664144371719168423410156460095263433893589654590640686111897936678273113760449433652366133854600811777109926732341052077653495109384848879216612273525819098526319486020918757482822763617074671072428901457712509871389180127771962068832523565977705252211461041467084121839651693161476086968787991588207851675043441571889770068332001729984960068800018788427679436741600392844169482734609489638770790573667265500925760475798451552713489014121573858419490024679580073534159604320428324968378358757301564465500509533646811633674496292203929726221992439530735411701228187989743335561077475014045758870721771129107479860345214243747459534483926180600939402708082376706004609246786059847763639986399538321651338758962027226416141065600951236168548141626511951816553265263301361884294013602407774763669486149384125298697999092104340868344615415059634361470167981738895345977088278610974685106908481698897721889101374493615353852942460077044969861310895741240014267936378383755546339895432575997536627691719992217805255503642645107833080659098505248974754784635639994339976601361849164176354791848369362475544843335595345489652998569021314179350850584387608780974681754330668904077217045183759831425528511014294440709437142694425540784977086165822553264197188576193481976018410158155773254003231499190791152117692974632665039045813576008033535309986008183416028133417635006179473734484801839518825911665184172905477715204373290952299218264455490368267274370840392184869837312602102059221388000493884223266908338269765479131572169201075889107421652430277426075076088836277319237630007644871953570262989975688131812802885573876895592876231439373210651191626996133217955799304832240126677183761610244659354825736144668428758148749235742659501626212140893192109199320611310213192996595157599920025509581026375147049538762674073574515348153290646307115287597616579660597876311076079238414227777281814234215356511615706785070567629979918030089286164065771724506727387973038703547539375048863640143546055848336173485298266691914498763967395532428493965466009655166960707960642467205520618549590012722382918910701813726424161542211100060651388304755297574908611627354440535056491880365784457969429650123393526364569665760270009482213434307963729090379055887434184240391478498982944050949209911713230579301573883785385022190260477041938887685228129575184763694818963949803941819596544149360876123361922350681240599011533678641756566597753735208424221535144451304305667798329953376934971123400175616962027420870184345374620879713012251053698744363042024900300955210306684252409151475235715212343309678793453062845930707650205351452861525093466413627937058341772626053695753999166940856385442898686463058823311723327433251661783544290481315078167290825711001637484546481232999376376860545310463867293903921260200823796996850578131232460486856373936157575866791517287189670451647863600079717886725863568079695133215771724505241327099806791710889440166234245396895451613772846825481777965593584785312784242435339294898408652158726800152482458218798617830136380876640046247748448430722395587942220534219303187087664255837025402190112716095519663818532157639532069315688838002281663652128112948882860849619147443796031237624241402522370617448006409803075089289739304997089032061198857929224601317888529647701947631242563855190849326785176600964030423458926075671103866569633733893257475434770633266685410535282776908279192060951393479140561779569142403934777097784187414707075186425137206846266055871942240710399484555196417231027766853160976390662611105315109463353328304225866210588422596779143705024601437064356924325827938508038702624184471231629805997807049955726464248018668084303711723200616540189658404597541050788337495440277486519791622986152885306286457359032776258065523071600103312814080765870855211874980986441468292861901762870481263171197149450931060015227468660500644439821999288547434001985305238792319760182170561264599945002020516805797515541776923564017866615590937830010728693852493977185753085891873066256058286036895883217265493691198451674745916506664450565359475335116500299277551685184042272148426596240200436941636026758172780801191849283022307118914692360221940318578105612949823651281945348250490486269143831560479618826614595009082976268475125926517320462765619562413695337797486526228074717435258628092572542330515591777912351525697387477180003946460675486673009131074569735568859105130863780438095270711921765040584106337741564321772695440028548619338308989861695185548117919256315206195652572489668002863731698678363910843519395620999446537336277637090334522904417982242819388553109453499130726586849316578347129126277146307243405625068789134489045286610811540933631254753423642739503327074785755092250594497485170708147096320562377057724690953722012149416771163740916814278098937565044148781149668985274786902370598709010192170512898178302684514507661439111863085599160609644711647848279557364986946255461543964853621257911561659199864509729556141364621505329952295712956736821516889622283053462405909116210842813647287948373668852769942886532238515283914252420904372496538037877611680796670452762492528640809376062679029288535721992524060414954763895776212412833811746438684509975760650340986273556035492362577930484481567856013160786037995880281984120497721385749954769504948281294244198078037489224090906840938886813975300373719361337331817197880386430796393038684482918869656661444016603659326987498954545525978483395748092547968306598931754341204344897790742909445384659159869347873881380892168823625774573088078542909904922515946189759840935953760490164916697179189794356217114297610171905285924485742927734278291796365278390894948517890386554247169178395459384500040730314157893959163885327956231285520800927858647453078719209020320384782475673494691816177972036569248935800065439842208422339918220786609036157842638111950169482532919023451617590622456941022997470516710963719974006011523263145898802331877941817293811872297786573668022886478752429796008152506990334046488624569119431889931233746698550229997338287476926324208100064215686086589707789582133694029408758410965247186228914821817522523303707023742268855999415636727517488001910410509034858986891785201098226184712463115838932444838341081658194160985906043769658446060100624918369225564903801331930670534243564652985600305359748649897363323491896133611171082824294325270795712110367138382043987129703202316294518565934384183509616081481786291343893085792404345148253765567845868137206817743495184384482214706090578536949672910237067021008429301796606815659244646367578187571293836509043151591809039438591198535689551732709917819475824364506707036809284145908900657916548275448594337871532733260363372622126023336399949555886081376201257317880982947558384558579034230217831480236520048816867379764144716325498699580050230954725362975477684141850482259033185957001110426996114495418757159741842423783143310390342984068851859725926913036368798275493025295965277802125740124292579999095293420854658902075119810923180324907158687071520945122087722127079684744838662749377576589808508483830958499774556785784776525183385564699449798895218281275284176654115319188006373654421704220016293475973597429005719418343734633877480007399469629213118329693513639346116967971085595138123938477581167373849968524296922636591204885689993319064301617515797144222117506274127293788814217274599097907134962705257316645857711849648915631954257643623465240361565255958350726446304725858172794434575258925550605521213633205419102196888638242635754526855191962495084141199857264236896930864413248719637302151574967602684742241646977089760428606525080753818758451108794721362953373851050705962596510654546625831899806801094627470489743799873008148821267932684589489210718589426360476378989488095823131140233311268874300790149989142198055630376103753986488023948929474397167430075722926137456952645783824191412972647078123341776172167760253141916874959190996028916676507781719498577465865936908668881397454451614956991149566830263868677712057171639298429208905033839477517054840748766513543402821868883117591677604210658270668423767058550201046719050123206461669601475448444367050713478869481741830197793941316529020661974265222980619977587909568448614729146599347494455108363033025600489951402832111628232449230096815439461095703490700143803216628505127118664440812297595313226531492309403776619862078808536477187074752856004235806788043378757842359809662560472262668858401555211930172372837223652835520034272082829237751819370360517019230060532976509310293544827302328773951467275565508846668275413585312841238391221479563664705155648678531921952439986168117039726920930852741013557119807852090933470937508931626539181366555996423034032255677839172995857062762884131894847379429189440348852756388867961792276243559601001396184250727292588095461381923964311924172778730015423459454797503172808983125051226941631881344085737708375182166570929761985479833317044331960296612529094628769543622159830323836374837848142936454673683518750023597713435429638125946195596934962705967244153849074238403620363179490233592224199947734593538983313582805525683533063983018806842309521639491625251718922088974569876021223261347545517962553733295596769016782168564124405028548414245461787068398670711392893251193136824284591444802627898682850081569942653014149300043650812314110618823230840016994616507851191656042484639839589742312685355163306078266725748487534556023428935533326272664573781283078003161314159871090548374049298360994014706914976958408691010520578857428138608640507906371976793246647112071596542642146049852701523134636849968986864870519116890940987039561208455571819400983612156815512398641661625209952671958847545013735660346670663473707618678186961145359385228680908699525877125555497791003904072651151665507962071080918322062944744343299102425342866565211632735350766080314108988740119302508306514543332697598320073227323258883241774271670750929417173454404797338801634429661730406590406619314425990303942392403034722352497002454276747853177200816226324219835735094491834286828692444971842762666606609833045663870316540052072707361009918146529591407586381577478067479257700475072901061309644455747173132258379996259543978999627701715221998997659954098835589421947532349208888476444140953636881474150969789216752135148171244499100534848737237798223371945275050004036721683746995374631663939401321272302882685877147532325019222773188902132473263541260298152228448006371105700941187487199099329089836490196391985682613422651220769041717542743270325348082023360570710472566525278723649668362933020700594897083625123479152204773994598214839096754008582666483208362620761190394838059899397458303760391445913252086965510210571320157293908831774990038427382370345554717857092820003125473651496649334164463829857178328133679519139144364157412729338336483811695773078387745968929825230656669402730875608883321070822442382746842415054333462276886303569277681589743186989109544553831836461710248918508371018777527961695423144041233689032691674907377285089662176317660619120857809727692180132016577326752041354365141639134739249090059048207255889896923179114916906624540657798249116229983387666971423274529580250058318602152820845759816986652480601727580475477175754788968604032945283541341541093332933577567578300790792252612230593163759769065015274597856454816439580633301790602289790860888823118096660167847414855524539749383774384003379990789996260066727557611783146619741417397128441517476893719724223914625572260662076794924391882593643863046248696944419877162250228647425334014346975485123993229694209403619567927173657526957736207816864358426810853749083082190213083967001903173377795769972630063837616614065736284617677081189524118171500708002911666863998524221955535216241630889365493427005795865983464709347239265526198540442482000356518414232378913821696438891516891283542190451874263203479443287380178578653148360232943344174063485276344300867445198972305832329645264217848098924650516894322499233292891157094179905559743612337031933591031570455444852183468609499384174245409187474538605132374762625688732549774083655954461793029503792156520405195442000450405540728147025259730447807169287731885443314292431933123134909086214445557656900548253590116330259394912269472738746146548223347469943344066575625809323510648442944633329126358776940992670146379937318483449843829317177689858272140965342936770498056792775194972722904559592313294623594164920175711900891756500096745614810776512430961986206267404305178345393975457600381097660460266694166502591009998939817745390508912651567862918874876361181816172831476884345430732235324258694587536841431966458974908696595592419414919988906298032036474711819325802550366199160096148125061218268988192699525631310343659766473445719276760955854485104006493922605972981580704241457107454248332331368527968481634010086721289054301217853982434443477757682521933622342930703294525002203310001271184109685159726086981264990263514917331463316669693849126242579148877562444984734810962440189536294142391823305560130196368161726995823102263368981809425392078774615834588372207914205805809873284341665370696798762053603491768060960918502491343056806842242190902463996751145051187210322682136288107366642789271810795293635693709326841056064076538353174826049979783282616610789586855414845508101870816659931568480614619613048451213205036205278090144263995225951899065683500495965028452879585954520234087214717034710497124120374859387654548850221350557749002896459360541421240959402124320477461670910729225991559932084242093907635780983403590934993316998652080651613683979836690925748111095861765395235200963977155877670776007317140118983958598153800948237589423458686491860877053850486816384730910711865671404967009065372629493406529664719277657677586699442993904316060075787540003499155413936387644478440917834941353841801774730269122908096184539289839021075769275181040005318601922319883652168716693986409193199539138529587656756478746738318634094203973607044137429153569972573770187580116076672087892272120001454450321632362350363742918880332993333977267195589923533306264047624994196826536569612427553420903599423214708666378102049420804943184290269145892328797954509493387771540658779593477769274481262104788407018795712906696049845856182950392434882508459147884278174279826361061185806004252724878527731810735550544321621107102620574472176916418368918312019001164773836390659353363781113374771503125161464473259180345990007420180201377473884843634763565826389908894242984851231682232465161300293280750627415767351991910428113957153027714185877940781437690324802847148392163668059597213940357423173724668136855235870175589655360591271559046431694457757995639978748854344000220595344274698572645493149240910872166261963623077945492295109223300819137733107058587849071312340396604922791571465837522209862166083992790309214725080593057663651293858707915004259270674767163868319966624486852137070974602981848545959171769381001720982786646224779844195813150609685099659441621666957342122867504562326426685806286218325538888753499386784709320971151135810059992504839278809367064805849930901800388268581287560383981319379999390772926323143029887146885101103688349535552304812224668143133575136764142351663916098775023591914614456260765440599623070088698141643140487055465423840351827588350422471961083381416707380719564884944915412432278129488598412556335600633880908791271378411400886795833822158831278653441328682318683615472659663026798869111519645344861877433143279154566354384284623594532557740240914386659807643302960848798932360703129982388022776202696045196459496526381774859874217982265645305777217806810955987872880449125332182203221779335651092962292904816269467744389401181768613794056034368958579895728647947511860249737500526736713733050429811113440472262392187458284760841262962694313880548982083637388063775729850415067720680958015233097658658362098552624634459867426399902499814266092909053191732631810851017501246408975467934598062857063347275342680040401509903169220798638741527211576879682072642288692121020910881646233826523525164625017408502581092326079449544860138272025341202787280597708682947205020592242335221885055313545344275594529843695470969300882873890583242964009553429010152851184846565087206473348146898821382368954765309086087650491739373589231668628289109731708912252626676484647029895145554487468744062313344052864366169046863553009939839746462301847917295896756196829348313724936230847749526730654299038123989640482170700366636214847481808641830593787953925086533850864968525821105421891052724184503375330399707820655689945524390537300939084618189539340762646689424497380556447367561798049846077611234677428307966731002086078743695536520667411638889855484243253365088510064873354087998655875452259550862171459843366661951587525742760753912787002179313237904730074519477642663087864389261505217569539738140133659982062120990982759756722992251962940555232182469647653268653549476269655424089357172378001211026425896310859664211827720634736335032120584523877287291811224591979477648007569410050845356452563792315417742117004963879185333150204359238455455094244941468443981727694404804218467158911396571678636630959914138746966735527221151069971095629168501578353540532057439220978640210232537660923685589326164196963467252526325069722323316792795080960125293222257557146065553446438471775580178077508543669077487817295835342454366279933542233580947767933826706260526793952787431235153136606324186954248505323808924260974529348830175504505535865235301422361913903226582972646709556027217076329366394276758878058636818921484521020171673097094637447974667715453880092371050444629012932992322213302264730347355832579107155517848779361722698150007094539793219873930899751099332673570946226319781728929888256545230604511775565069372335544713338482092340456718902631763781430719340728755439484755358004500519058216247539989631033219936212755668560626337128292480537388935826398524425364519093370727331422648802200572891516099286355596269023136654589596081448261381984895819831011882767071115932173545896909346163903998007115374034471549636550181097546876054368829822483249531646141422202828122376561949616715543719119572842785481267519697794457525583942701648187227676420352625641738846779795890721131843772294670550849335208460427047517497747128353792390465047413048699727077154778922911229488140354316595910201307104670151702324598239682067015937983377447740674076156439706308554740555685844644347661880470751944842489250279372293006275622912333839061576019173109828425861496185914969883605942169359587194467288140610560565388561959277616676660138580776381035742953806606617236481562695248251995869553782466577304210990106720563039795841498811791012351289580415135798459683514368904941185782196440373274809719087581149664904792251945382624154016643945721181353375397971086622090032214127682578220371899272329967876421559359518830233447801768283546625716431676396958521314699544547369976541303690692822130089038861338115515832771824508240958332259819437978358912546998085012966451813086718903820600203336172117230353380292191803095282509306356671788042671455220853817825850264250201777768125900616531248953454420912330443971449011074446827288102022239355141670731737768818196751220812047712459341145477825397670198691478105571217808524919612930328071950099440358361315304348616560582415126442417684290696196577476624747939992877936759768364850722209828232723471149631847641759032412201156813884381242979561360259662927607470912506486334552702838951186721426314013717745652993907334041607191996718077067131206092539081363883066735454322441404735603556874248453956736915827853805175503787095287633298221999672970179728417932610572509808407009013653133855183310620549609059183629471214488802280524205388733178837780718682069548129763256247072460150410227514674156358029486667582750750433823160510477410264418458512518028764690022517318193292312674098278246165217919570216944807325048151352906591661107960600269322780320720891205107433445997169353894801548836064284536648967544324058565708895887447439720639815249739765326395517768299393794161254159310208322631745409429112792142896422128055403270552845458035297945110373063132518290450926265713978467803204472173982750244737254829882763384721238440853667963965296451070774781961044364275216390843703209281239568940113504693111013191950492520339651758619698046135377075836353353577094351251828402078610655894887533723020226213698080325666165456501801778863035475647821334903360637855748764354489852167214060972016923938108429915610436075875450694228166737833443555984893286855144116877768101050407620295775133097749558526511494077341748640567537205661363617903890522120409111341036937666006940250986200597435846375204589512492372518700877938071446059852450873347914352061197856100959420092659411226086460257828095759086746889845811960536840767777422598544430765021353336856229650971139995764851910978172964101646901791161087062689053657026685223944853020338492364884162075710295130577886999268946846449817613755670518145425090982256040869259122994294432166798777386835759461605095605252759089343151815621104298135078554900235941942634456422189882321548646981727282157782382710981364323625691572021215300660156033611475586632476305417713178007331631164251300447165309077419682247814099784905359205428909534815768060437904954009373272653641459234723155946747750649821857018770084557222228734023630705647848767517120168703079921701916699602089816479727433349568067898103731357835105261475785519540237420253762450269367405897209601236119212547112827390707261550392453868229437508927275602731894093156736646974762733540892425176749579737658877337988937315341588595345914651841900889838015065992870652563352362198006601748790103513730706548751784457087571491361095363528226294134251247307894753184083358695640592341783501854926467124742856795766076001369785993476827971675234856537980301963911866642246443684768110360872062995380543170636516807163838762471838525598930831063757439155138351475086385071264454404081529602138670943111253096669688272078200718818989683512612993667999661626915709994731786189733898050822871982680491351247636330528411599724139582875500903380092041089632315344710936796854098361847338051141390060731204423185452378352114678163292548833333198472349828554038378051103953282331368822895356205893409373425240389975239726884990724977371381821456047202049550322078117914763067969176423559708484272296359062314443893000442341151851788640385669690586953133142033571134571311258966148246965288134173808052981932436522750263603171567661236302251230970259813611233823543247671153454152433403509045249634662872998087685712616248947372323969155398694245738662102436879885291225276301964714075118693294628809396276347230361586702240737741084479106333897382188275215252043946558374055879964876246505491663972492269760493409472558442879191528371324334209961395025550868280065187619204070967846195721422426580042060958872968264256425123959541980185504712743722234753123930175662915247719467196005849579275069218056835618603026015467172836400608257740936112260602509631978486520702841974389478138862944110126598631218028570754704811473912459127600538836626148426941388718661869180272551349734678413003391388917259997313798575298058102280269145514234836128489339712854017718092364222780535492328490622999040652330102804074649559694580053464377289463417584765115403602521927339236573914447320465034659207150875646588733787555666752279075445852458481701725543280248124760035817463240563722651100292531858245741826869622422911720270499435854253941911514060604305790551885852634425169370693676735625057900434075199915887512989437959549278407771565933907613000813774580174078373536607805851264408897111783705040074896529540833337580767401934139622297937678337474644021896011730807948883974019847456893128877442092965378683962530364865369960110697390873748667396249272002364206958561545612350238023952140367689733695366736567185548148291825396990294621922875551763742583452939075334964392536399535196334909093744945621905456189305478009852496420044458566225295461654827230237683427533730733147089083044336714421621162614416718991759943046944779566792720567850319252602021135855321694226260866632750150500064848224070051377279843911429771063362390200813664019518136937971086989934304099409137240128658638348778257600158055321857430246784144903839707714012239329619227401955803745321005091613235112643990306283462495763761957835594059473248336138821188923273727913067670981817447907739152568470819176201030441190011450466533157143413299149900539071425711224064314075167952782746192329937575223783028654383250034793008777697146004338345487039068901809397320211270575718449052519035996377306704553693009860612409417772316318281426212914364742851069982043391594520143695654823413896110413737583689183228326284574368870352926340389777422097412933631757684529781294827773647962067914709750096849619993219404511590691079616475964550080791220739639850256291664978567720554638538810676894549676152152814027457463866592247128564690425340996680335263588064658445490294970439278645486346262411081026408755589349269367457134889380727139869424886494662254109724304060122546748769667449700987449612019059109443356832845298365800996160205158167801264516805571588649642692705937844836742385645942598652660144577747351148298522006248104977405940909123627574608551018009848267974229674642938059087028713364395355601116963674657552366408023710379571042521645488007892991661285748725918497983937166653134803081622161098295544911303537597205294171807425862437532212111746561920160720973824390708740004143142282745102338621414361979976119234604409012926489947472137297051537746713378854091330595901957015252916493555450730251872460223442670357276024166367332676481684842428950056511554778580554550597129274127460756351787595579543555745064197278170124870015914657663919724987768959744597535632431407256076500656844238350756092455185026640457776523585148539294436606199554472256229667094836887294878508097796253225709962945495836971339405712197857795012193757871774152594837993284611335781765955726223772426095916409268544687861997497183894993597701388911273813528381140179161620695353145560242068091113494518961189572609205679750659663053502081485993356984743263547319127747775214335367884685247653014066702948812553806671558195268152942279576134134494146959489963385947129682604640280998791154326745756165701156046135945445892605006117209724305850915236581193058900905670724493378885550221842943691094388343259793197890681545548834668265731655914683863194681283597672428823541836516086177123001751121118917655246642939947000199864574906997596663364295781198763574003368487985804559689720017640540687073412462955182166739783918597375085275863762443212025920024736286650686782156154298033524737898621489790314802717676038113515074868440142890191932463540797350427283775049647906801866863382029387409357519817876421321895195323388666615772374935607991147860264204193959028938319640947392583345235050046966229373275580790444963115272664266925389716175362207764923734744002412541888715167187040638727400715749779023521172184951207166387624558734688108381190169104392388113987070872562538138678920721769092332925390430767779143876544370691745378220990316515234817280916296804314075304381206191637684985661560124439339535358409179778020811717589462569383212229556492225748323161907985148997565255642550620651607555141386806169091635861196893749545868571532528096831861868057617468224801053211095939123179502189102445279243986758047537123896650470364415077723151512460914238319166255886784869656580268540280585039901141548817470543365755048684143457778663243111315947947079723351380180577126009583293389386948450911709190634170028792556669788824930206062165114660547994708493548387876084006180611863364916003731153400694335894136123383166482070155986101338748791775932063850424542184217105358712145113782725773084933251754813642183866862674010523974254585910027380246490287937838568407148917002196932230423780254012888349820700538319014533914680353570282375197089301826901968991664831861524097906621352914988458476941579894771105325663959088160268465451277413030309197861308893399899229452006151757212509999426914546203848754313814199436222150780430791790380598266651652401884609475126266257363554630934500843195901243719861219783491350927093076006492526060100166592607071692665195434539142499597732165760956353225564557470158942941196948121188615316501476442225431715469689141337912439698530990617892111975432030695300728150409118958702436844786002720442825012399038712796512488694932241960900593684576698105131770076111168180565676009753038826850931774013531624300229218416306220467038539572706975074466322120708465625728305832344453745676424796576224035504032430113685595578238784573969570927783868778757946879683903192217294529544290665414889844686605699155508607128640217953837690545089446961495098259261373599854497794132409695382516136138995319369755225055735084444943206063915398718783394751671307720825416683421323472302242740023455816881106739052693839326039626659811968106987664447440142813774110499541845196210606126955775130679945489101165267498062058902046031748807094106416147953425385160627008692791983826688912825162764735726451283461547533724136720856727759078778257783315154743947463786744662142347416246259526994019481247188983950217692408782364166198653797630714514395014832014397433005892703601004236386130470725498655254747288267607720436389373764957756413103324978784881708785713914470226779603432255443925377377676773485231712239453257178343596516224708703934046392444337297460695565576720174354160127213236952037010888529090459611231329093866568310775086841471049655174237605082811309679766591008098648823567560607706350975730768736481236629450374212105257203208873602775264493495482976929285724985423906119407826579218765978065970772878903663206713454806388791150879127941038343777376237808166977475536885419951963022325048131557869139261864388514644944746764915891813332189206545944126032582805110984671007541762833253685179429604737369575364201392618260455503856574590652728608766569034672206624579841841116832464537292200991684700306823681110700970273441317896540125484105742323268269466049711588312118406100675658555851610694893344100555855041349412418310436294879867549663451909634412815797292232466491562538466428427225054262390529193870827491070933598468208858918464907044522621224074150389704301781185557666724800971656935946349283854295507392921921160478682317882351521156928679637801238429470237584852932020523563850325174309347801706770153268597617088186867784849379586808117811748775361678915670754012054397495564933487476282868755577555611565251113016046732518430288339207412887705755806848251922886814718857683286080990846972733625616677571750827343643447466304734014389068423579555498806127520841949919754160123525719330350795026506344295445062137962624119023305678823828683797147654708580358251792382239223228994414360856673576624719849944126301943167666822803731037177390090548176228983656481065759043054604885118014131594937912106224616523351193958181377410609659723062380983017344805247604039897996515554518774823218422382616986267625968413624221129347849735616771552253445059781418851680890681926757540438019072029081695286235635106574639234474049428339479793481932772647735260566267106539329195079117318333751803079814180367853375594443774603581611924251906006172541730709662534247786755145233373414891636122108543724120746250166866638450815143923044311223582403300609435060067004429471793024382733490133356813462502356665544313523906419243629220849739530080939574772480616928306852807125206129092181019220692805779342101467382031029972192259214189860030748347108767239856816815402887644585957898509812951067978753076863181236733458618253922267193295188625727039432943730526554795034708267083387619208520350120379916989206413244023918898101881010088720736742703253160206016647608037770645712777193717330372862557631427017776420109713255785609713436700219248737029145047048374065675082327308053636656320062397022122890673968100675596470239677799463946250245704420203475695637609967926971269580047329923135224071234541347106675106892420120695103604491751453236054391620961564758747486517654252043277587129106682442684289694182506504115418205585621524255683060696194709920773038257616584997782482557299517335020552316840895406236145343405934228864743436515267738807568593157940775969210091748648086844925686063055486292774870702290316125423858234748814577447907215072270871641543140453131115896879875087229254420257900732065571038000587676654228532464768185967649944379295986733016017817246988163710160564937917340084734737022619147036608134287937102434713062455894073122104214856155282153393568934694979281800250699694073873349131267604823097037871239537118792156674989481326378752938012548286272593540221686213645276788963331727216603397386319272407386033107456739071028023555801268287743086834258291684007694647748750992117797680095891843142373915820257823042866843257888702764399313149168560018079994321481678052944607118888998017386009987389927286983356209567936051272780213460424961359529413560914675176309442290420948367989530482032527826665518557042359256722129450513399412533363695907094164372438689154062535452950686385430572220940590495715705707919746820119639428386187660751338493180060501632229906422061472701981317933633225498597272663588063469676452622550342619827921971120044036894600042377321020165409897381916238426752356530702154375467980829845518213515622739159147811810991883184372147605469303278056449406209923779168244174968503471799086590584239702444005794816580045446295066817909334288468669373749315583590426455985495990703700014671798873238935572522961812647049489046278796338845282805443383825516869611624998196223892840809889127814764365472345795178643986035093083670007028079019842524014398570150114179090201868004849521906748729571292450617085618544921413575233859576019125467269906841583143668990180045648082290687701625196139212528180638177181631121050591674633425803971954444799215550666498490644662594770709152882121632862962513342265333019797111672266674378642249944437381801500335648925292324650683842238176726572281181894727773417868171753175538925575685912654672852492193361551384957992483930940757819943467686888063494710403177748088322127673411873546872885790399769194147270748618138670653946653178805696476089915044636933122377431495239011310631993954659721320150268742912263855285658088946096271159874523975864919248645522795456366521975027026301522830153449163981517602802437413291441893332785177290581228036757640379058924511649508533954571887958160559550281139648315905658575269079650010734209698287462238298571438923798225794115736388109876029188200419893497086292417529066564443541984552404740792292904294986163284266411613747340615823757237328683130476447592494529385892203732140311631102675197745366748936193617741141551561758079859337291635994034900494478961550171569443260830436902277641956754545303920304568254791100251053433050325677864309930589106237346144326222231749343385446764209557727723311079028948888945150449370587782833333611496418808466374307133991295495298376803950366279745409241737608750612304549978021003701319503302102925940331338881428372558426688076918367267260220336099759484626706341564840218177230762599535231092662555798836447781645235352174255928789562275037201455339343131603460675670953218381349471429133620876557816417273458309061977986037523787902803516758075550075104141645352694007749145104289120027185326080869665175697892102694393682963364742423357021703392639438005600807607189094825804191803148681239724959717817002682460262107339069067920854504479025605434785407545651109338237766670985598534894047933188115010889969762207686449401725703857157961377881178759193331786180202940664630766790522035413204694621119444589990630836704448914295289763315699823658495629801509212803989882087148994406282086646574471672767534955547018936413298816343277087413757480739469397410549500316659346744056398558879105395680729033896288801522929791783812881657862865783715109134183477007342137440842319498942792094246907894860535607702270566958184259103639655817214449699917224907842655356277962500489979528673792775719719671181002888932586488126278664886621585163078970728211292076947784113051178893649796281408578152653254622388679805601806077478777328447331347630292065670234743335826481907891608797175375235855767900340045082992740122581821709845605458995098183233203052214925017812057061463442062611619869698474503697537898225554217413497764526884182289721223934535945597074099894481178167221399106236433573982867115448721805604198024582144212536690250652291479043377953473962336835483669821416627294543316399197151046175130139920713428839383807190004616826603497426533352975066614609573360951804514748957044476865307904121768218566758324473183429886347937580754815735950899494018662675175768321848911058960292798965635056579469353159168624541458177943450048110132101538269312713524300491036406971032362073326202231400673776932696766491479347341191275866347143065695801663936985370574862313268377838213049470235783124196433589669531435342109634215375297782354555405431413224331969324186581347403606215917419285562094848182104761428463452628943074759087315549059402780990457505572046511421669898952535337537723111166154264762132921629842517525643557457337375073779617691734323326323711233795269949302541642622224505298153235584495254409093390702868210236208767655698873351028532385747931058820987435485052840222794903336907972526431067383408113470407417575826847978852332620091321633512150327029884851084658646976459747039105791738459939269127232230397465333663753721326720755387686948827147319077583717776941783330412073037663361705877417977704669476281891894978740153865755688136617986634654389580402593284657806851409062989000187251895555846794150480959635129026943563236213327338471234600296028307207934128922063068408263710147319263550441020157325260686593388383940042977285284360003253274924051597310122029375318497756257194428445789173840162507881845424914045734244849265098335590583809978334638838786936689170738690682641163235170806925776788096104194526021666519417533800640831960391944437762389742260053101039366987745865053286190326303049866679439848383956045127372078674456431461285814060418391925040508542007447432221225525431897600410275156345058777092162897064598006196603050323141920670269116875054766557280713524813671078336948626730356335992544461706690886038912281209991198976167739179888394738976077361242177804791504711226551112423506937734925698267602563319838659458028385699377834991096742779143528383352441832183221709708083953290522437254325113976319432594591033825497174315952091829571111269095781300999771659404453888252474674871229579969577149359635392680197504959823611095810744757684922167319241532915037273847959020286060769048643305737227988893157541265446385698496951112724284416096391470956931811965832862298737374761367648782526016411265086150037530490709851292611895511303493268468894562593956066250960733332376931955561555666562905964115737457094359032050423018093450051496336537152737951975546954943509110875659487162649642801376492548058690106951299716587289162173432431985137469048681376658093801945427969899005419580097510135417196145088789684040104611037033009358192090093665104092950758210710222031046939421508711427673533691647203077734095850824040001865737183362773317271024603988792218040504464775617585067747437689134627324464745085063537149470283865835759208927912150156303430985470082189356024271027464676306067839453399585514974272103892983872086892852835401983322541441214678985948650840303178330653469098273721667508589141488198876660578598725790737134568021998910363398494035640272160178543686950601155731407409864429752769377853915308424168864804399224492978634516686101291585352224438578105921730191878847928466880194904267587309727384870876479179513861135633045760406959455531259931672612944418197994654170050704395593515690043094860756463378531004268221106321278941861995328845546669998713035729170279297298552757547735728816717115325618596773044041214354468556436905011523183806260636375761774056082779341380773856255142161673750600069157910581668351846561955124594127807465395476218665460925828949793976309531423463312369375271122227452230651817327581186786969292739277384482902271367486016476786788276941003677720038640155645614519061435031280730161717957176695829794063707240151622095105946728345162585514325117684351685823441845045684475284564568717395040476434600346127124122128493998231483646698831609092618389428981253684477485968913799468650642239618187571182435793768238244050788519207726984846111234650348082473454174490182303113895063082587560289321465329616347981073572895209504130425068370351708696382172306030475453674747457785950847121266855938980343392084639046377416411894049378360743824559752327288372345025327790191000167215477070416325490937034210220157395792432720458341168833947483410541260991865485072184616317835393162825986212639892445984160217022308263166847671122620691057100538326481415181788321509647499154207532487941903858061612832758966618238597803983868623874570603514579786547986861888603211592245702158269913566222163498497558223613928764532276027584506149568246213386195296797792551363986770251180595893619740090816565538810531522170914786651957812130072778743253236870142249374426123270123611531567666398151835216248356398812137223378104234701993793196461722285147842877542171750285245863126334260005419892197063266191157000128918402195864670533482580593386156113773855153205981574157650065155954080380470510112710183840006706713865007026624604049281107106022977967809777013020911400176812098278660834343602683284292201572121899641554066062675295273070023243848972884711096350231658570673163103858127543385666459457447759807899329903749343666499810874117028032061375742111557709855567260230799459823333168203882229321426925428498941787104482653468514188098896990955623890535601371186453982081109361762220152558181809409366072269377081465095912749218545315636751581675616338786422726514008159130474002515591821736000212605253873252064713802727426308891717661768622648283767429472190233807853977748469509937997125302161224238428316361090343165773964911295525846679954352472287143483226156420391700478456105750718157368004299037116552856672121981737097135356655981297975756820539856629220862029527209575613062984095537297341897616032862102794096373316861836447055253199193765099976761025783725909126722474917007611432721007043459853579373302079361986644502519829658256262519836471945018844998994501569548998932962630749749347582161713664709289736369421691134826963023280276391883814445158476917189692979594845332363419704275739691304707402576573258087957951746405313873368023148538570540911774351637521441935391401097864730739155017748269666277774888462410027510759213430567553013530583226540451959984578420652219513193872020847544572007364315804226955154795011822328628733655617947608532454464420526371907281205256320066573130391824520966962731058942929001409057517431714263246551501669539393867082369737535471269813969528363332061143094559342099564867369727237180372120927250961384606427915052840247357588007024118335927839061303735946336770259665616257429451749554158706416555783327953174070570693720856180056460735334932562840060414918356421392642964709851822310526649265773809225290077406150777420616829552718094486898162132833429393493799251984322552853165900749364844560091008948029368629775207609541529624650554726106625102962858641754766498998627859177820576631712867968027114757730313540320857868962191426926762727033158246010918542162989002744899784544834300580372489296175379610218790544125451415734084819701230971199203648097831979101320497755868081135196251842574993354277937717631387885535961828491937597173997613432910292205110630764929967694990672195562538975058890619433032064556968343764297758438660296134112183810709964053930949818458568932667094212373185272854337554007568654701050781110299334807006411224448676358094907699572153237734891534761528513233900761657003025176330304674314646414484014171303745727191945264533598276413960449240650446363226045837481902883860248667617517360416027419065254486857761409248966947335061097987898258632259717441731181265856839391396477201701364327368854158915767472058713226390219239700317027176515769225325792542818083833817465274689004248630191688576686050035607764239837090710697743625516050231336499878473633576726458644219674136069251279280098632348164504654518522475502696833718460627528131888542630971607005148757974510028922194048608778775098551417707139308631527430365556647841735520589891114336951967872084820264583730384338592365628266961166249254760082131024699782293644293352679578300210337773686326268580532241939884904954093456039178866445066088574995294018300992667734431546197386873863364925605736371978794533164518990892535436824131308177913605863274638466700494480458589165707626448643614938454271184964272953099158833289014818387139448432528977829960352533807523521735049859435609106516770992120280759794570830544654614752288878583454233796625602934957273064503906056673865676441338131287271967647200535767940252424811192837644596798345846472912325472061543367099758445084074934393897781851837078546407391624746267954583208763398665758961026588607145092648984818496376180593083675956393746852769840728326049248665294023283407760936275974955567062080441632230972822598001559415710454100279153527766683780727288419360726084162248023389339062581221653576269318909806312641589511806390112466193087850840780234078164650556840735204297643750847607842130019218827436066378888988990884197756974286117686764546690840893284694624342197458173446117676832006894352887644641794615559591870093006084426223844084447779503546441324215968382070004404203273579464530509462779146931580154463576413536240737361000718508313413824118534277942535814532220727553254011624434367543481679071258841358462163692285610649563120722446555224864527299263790729671816311598153943001923121780005284953378140310280003984486329489469411298556934907482755706671982779831164983439433838885023478084002567206658652389400678522573668840586412634083110571467603480704345138374580445284395693172778075878235336159584119010252399112464844529391773377634805099340021266245452535902098100128938612134613851497138751768166527446044194706191477859739278983025705968914119014100802142473820498849432214766864798207714066002047767578729611146194717521545552283631167341845266765971039169891869650328007795650415976512739439796434033575673097003620772258543749779902219536746251591674474220326285857832773170492839693944306406408448167329263753138230302151234114872855225180337762994331550450231486276313788817147011192128001877054933684721549531029143965043300544003464245491217445095755256153637556207757007749905809614022639676816325263484138109728902050322407619523702048905178769191918225001446781843119260310037064032639594682030583900959386452091786682906357477308855874817287769988726398593525727492670581150771862426119956231845713035465221627528994404117469153616820880452072525687938629683506039464903201687718227186927653193153135499968715032139049096370678895238865814793061753507723646760988621511568031387076030353583252320154698690595029614932316307406862271404750507015017656567387775665136308740652752584664428668473523715696849586855307164237023349820714983982195276994487041146980557857219919002533019157428530855443466374194307254831237298366880832787682002770577641670604590412382537352255555426862854120398378890458243639966397990094807594140431505048383227846568878148603244572465341185478105935498382795556628186083138419052797480690535276752920233808908589147222525465168206188433578422858025359787521425004900023682153326569216878770043983613560553716601982403838989773071837498801188799531594219543269617467750222142720985174373337799007869633835992835209400057639332898750554416212519755499999994194418017918127106504416138438260165398756806965932696757665676078691760052075646985440055665496859067526822282385519776648933648881770776217953175518159863658744720101206165574271741395599416934994532858524154569821625948174570604871465145234632252650180965377170383117931801245752290840562422429628369311034943504033827674410435170784949330756738890914892921350860164468349095064211225337159895362909369960893992569058849260491109699052636396125819333597718189198688717210466273326560527995234794599054949725730764464402743319551381084956656007366221204273818823449313904581276291606958390505354990347852142449359313938059267513658995464267385617536659715422901799906864089298080441518114414159252730766035392126926065589033920335834064854645196866775859374776063864951876914937314388933056086236880295357251681601652036629548162588228553514799215970308403079865840520920996858178814413230370391288433678123364463599517969620506198492409986189333687685831477113205655985896077098792790344434627304206091481996537791048698803642783299675059966132416242744323730907453481682764043052413055890646045628739267877968991196714068518860819659504543743482526481798213252759850812738917555404456553282349060626092477503523826021609395772683346159483664962941845822553285124689042448195141830936609940568124260801516269148646190387057114477607222969634516230857786094948193299351641216974752267418987700324677621505308014600393923256614995573518967360208617219129412648629561962086442016679907411463443922641788422007017958776328568452179786032210130949443131058558553918143580980607852359163520768378489961331935534907687422525599033421376014182020422035974027352587286791694210364677422176192020215233935797905294542016702889262042624838712705382602963721907331905411194562899320330709178951400533879377120606663043154703491880724491751404347551948102425251152544818764821475222935753746915860086149079396495427955662215502079048034593115335393569988563828166963846132481015812186555303044167670775079608744832450394317468950792085176829202170906273101899383325072951358620466681414631592722547235863900994905212739770292424226678697832960646656513929375116653096828052854162479613996190946309060266480067772004066237805919488075790770290435662949974560347173935762753011024755279724057792941449117048755589751247670174066308409010725132889208007328607478111715911876982961964647170542723787860641468211822609301762829384958738413215726793990420696822702112998424500773938031784878823622385165371928964021725768266370852144166825021856367239129836597819817354502214264810628158177005786150550069706063546390528466955686953201734825228981499367394725585313559423512628469054381675829750304312451526356131763233428322412376434176281448631396323106573120958210956486182744458811051498596898594602015427018457735128745347968780264336426594031888983518976067377735352119988401069143435204174970174275260083944366816148338397689885504281195026410641368339565366142259083086152371879065741909454315550961235382541973867387583486899996986424604091412703926140985550123091228180364896354634543953731168777412868342312472483166094219695673248654199237705420964230907648982669330550310619413994708429310588894866185536612458530926431863550848017245417628593326352520998726886595453616368896733125969937998108066209985466572583979659195940713096371914689155536970232356473451396181905238537568012274047141403022080464158173034963356346586621058363991596527223213721239859760095300522016861399483012679775993011183140875803807745194064830458998011333412642339970907594749188608612594429366985356382272784858046601878345565716186558777753178937300460430022063188481482710666433199491808969480559333704335517234357846428494560191231028867159079815529337924031743165404647534581635436481576555776293144171468986398436862919675364217377063500563622938563136079640490619962186547255284213444148049561190871012823909845139096717422983532498391272481261818314399699461479205192569228226881340768836230134429502853446183544675837728038952772010237751772520758181310572087699728207094926830910530023391060782345052789278678811602761479761892665622966009772364716819784153419688209096789339718535939286076027593255704994851432179748041710087770456291793539356005058704837742253812892569980629763198517878230685787087093887092980680260927182927357692212509917502601392448106711560905133831647953332604122252788842835084368910426094505302228514526488577522227605808134136305565313117820604295778800852597375514791503809076737496829172653751397711563088734192232381383960605481898703397686985440937910035130477326009454361030463898844835855973640459774770397577745279389811227151592957478028993963908237926142488353906263872821325854928238153813545719518470137619358966769575604688216517975450483312149326971944419202284988673686008595729605748402697955961535591895237336493601447351677597854602087642928918946215160835595487526093978871233883194387340890104564189325976445426549445798854509583105922649174370630068870686958537253749875146279543338739617581556488756163380739173876362913838340665244814969249789565384562702694914201339876116427995645266338713403599138612712325754408428815603548998237560134106518337522979948134065913925968053471610266118923276664820855403594500651369374867214174355140729983966303823092141039259957418910226025152785289137326002051167034408049119959579721589758535284704403946154322219491354353439271985598168028761728340164425378632626601816358453759822979565334522520486935871846187186618305024307787119420737701330975705425397283705710269796463373718985128844553413637267067848056896523768229929100331345918682128473786663759467886716518535907793554939568102098613887203583092480673407464287923197273740819989846741694621192901767541146576388907471367234477353244790708236581101838342570471782410814879670741019308295813943965370797668104972204638405884807435671547230909267367445286137128187270504914847793688117632234395278976229335853680626965167789236082183081795283597645051266492713826571256200139832816343617315574409023048727020196814394688443036438121130504772399934611169768870794962739195573866160852454967611948020766355084498753553409752827034065257467681183070481931209378827382572496799473691033999725518385720533677242662642005049554415008550183351702480586060015401986871120407670021466580571529641153709175898192498320573033528505433351884803657632063982362227220228083696860641225452459191025560423133799728827762256077442756809764543409341170172167745591559136348732609044210976487019666404374947685458485649776015149389621153701078505283568765485219572866020510565608012006191626577064489411715548398977071778583197852062377153816252760989502318601714142270398402134625992088856050049233527354101784719075178864816415152020469447017857932783182659325671502754810182468556312836334838710016605287957154781079523208825390472331802366191889371329757296959212179493141336105128837088262802839708760505938838809175383336608492835177439490010067205904528902116400482546304907799234360578199836065372866093771057155144939843917139227172940524431991402213474128199234908734342937150538748604169258571744861880758073384610416611863943290542114092639629832439481403802220694770852708515812153110694986185549834714911914907936982805826465653606683302962908332867277543252561722997602337008116346817741236146745884759264129254143008125824819917178834110658164513702753906845100681521977901197835806110189816168076015165091028377942936503147582688118390825899025225228473662050161461783639981027233242621946231244396924140824242290412341752201737317280744696899687635173026601177700831923189516836956259463162044793109678845681579240786591384522911691819990223870697071338842279883942355418489495643823164219616828787243124999538367054224999375160382406998158573774767733079445559798699684639771350310302766724813834862824926837330903382539911352153494809018616085443657131133981967678877619548359203592586479478818136011515279086397652756274498913726670040089291143589772761276882307659070681371715081267541760878482444018786274452497673168729856849194519030510986787747880067317958339096198734360892107613794747355046815743310708505449967762803777545406611739160601564675575295754300312037843777336029377384136221244877862462242500600186835327913799926346920632788135621105381184830656379587408358455730650609935224968347179034738550272706475945563432936444237996563256197875598543701151720328866153422999300056344423841670949352281894632309234478952182630738787809014820875062113350715843487743606998760739566593747259149474657819502409191287839733716815419903687910192571687686210548411091384123416113756910636259715355678862644274668998643372722901907446063511519485841235348725251634010789023290383861312301158058513028073337797866847189935845085890153957041074605836602142031315619538510701955894935092917261165615723700165978758118539357642901415169014569220346774361694859937592161921298999596377326018616114828593496158373647990846682165319827000543295251853724751884824998474451965855854943805940715104318129766001516782513419586266747629681267015781590790655211291051880357601464656692167288696189743700698422268009175356258750109899962982300387986119983581184890383380141282187780788067823323025418118929787097014830253618404522827662745441361936371708244546601252535247947852071157028611607195137330103359681329429672860453709678829332241645215875410962163803365521414589066553207707664264126937411260669771726585258445274133167576149605988281768198941391906731222648465537535439880050164687624639466058399349551171088300863128738908495090557889225651399458780648609347939253020990165477684128352869836077332442206752005929197219028591609751011687465592242604975384870506602672525954141576475814883259048384185853204071670782328554348288651376540357636407419301114225292554203379715861159598569811036317451774190935384018273810628314748866933136032248652955636023073622476726055393932807267615183839835205333745262669596392057672016645603419162109062433945289756219154647342775034365687326022425705947411215315931944809830568044173219794540602451773757806845437985202287990124606989055230768577192782528914239242795398069614984868975957961280252174266931356610197987610671770073221403463970596972584190948786114983690907022706121188045506042192804441173350095109417359898584072728388069462665416080352405397421615316162467905202454233406515510311290773861038793056763873974208022844702622623192315199983981508079265266902336970821002156545929478075114971778875788903862932910916515121601069557382256822790141118728978906234142514953636025588586982438958137848208355618909342731874371966933443556102622544339519722258270026305539448156449389643245675442727852306611829711473839340741435659418908682613229798184236992401579374851803024574333374746797984950552184800443724403535749943143919037768852401140743829281299417917345805045520660278140369919375490284975671375921930310467306210683803578351288933483840285246987589832637748520996655192143760174452542150906189177246228479281848953876402015063735767550646973746190713730477385209666884948732028515454312319123678268846174975117113785823926139112725716347372082191365016721900066321961044605723311468168738180362859198179047373578427577416564996267210247094431321823404330378661790732033496234260085114776315141596482358065940567101222183897093615518487861815808933680967621264372555220509764769768924721406946238119355923178046782926254532083037366258557945639752795902985832186886423707731656173342406921319702324275531244194417483046515568642079983541334252165299952357103694799353019952023517674152088650978053953575326548757080158840403396924675711027645072047830662315139960974246297161644060664818355908996957983192872060604233338589536522395496816898717828777728008316800708188618785910065876470778083315114212223274451007030870279390920698928340725348398033965569556101157494031990250741584923407428368207335731224004869987825709893614272883302689467430042155161725214794916131410524437174615056170223148988314051638675387882991266946005728504283478632516025610327494118528399522658958017386786273455913479418286045023046642342919992099277648984096550740892724983355566183465312541638741950689325155160174623331259278234914214571553901714721018406856003713238204059147244113088910306261200390018966189638095816191170409863233919760429991117688896279739695994297109640064907845233509323345411356743930311434612920134202600065944993578325367884348067009026518831099775750003265496984215688118208531756500786422634152039767843850000737076794418897469747856743401829169320523216927004673184842573155260258940714958629625073771658500557844878465726557723643164647173080704937728370033842733060835870727580638710434685844585955356299496928035361181871452516017255238626183223225076290420238139658000654437914011474134757062979902208242357275410213056352795426521453876036192212041465082781478493107553987140080114302251204595761843531370045053576784147242137273292815165254283620964809001119048936278733701820543076862500409699115709105523124131062181265330145399835891860197804863524479007270088993456673581875454506541174587780937243316129284933527972868682998632190294273027408353213750789190142740588997107791552266273314465349110180268804453847344932304361967400933174776240684048492394028440693333619514146555715161398002609371937589801287676855005755586074046945043922746366484101951575289995926205994156721610688225717351219264739808376907877221708878408777882335454759672373805342387874109728575575227432859896206161490807041684287409113470087151272029176547669896836866987850099646162116679953414772361283892378661092289116812933784031952540770887497356777721364338676180159138384254846146796537778341945838833952672358559568961106086979528650946855944266913962309660892528981672225483961251046378029430706955819414337961562120911518075083679134872703875654078428068235233166775614880429802875449001553163202433358395942118900581683502496733242524922640014628326376687932060637989913610653638480090994553165701117157714149434074364387994855065874403648994449242374440884015906732527481803867724157582690915958566964562823877602502468249526126786995124210296561282994964197500713105653409764904674686887550473707656905027852885214916898904909162096823077641987091495306022662296626043437532908907209812907561696919660832075371226808046222450553236054873244239701433515303003869591150581232185346039668396798451666183095386574147359660148366498577481304911647887428622186394893811029579437571855127613128736680392670169145786304381426757396707444154268254141512072862569377353835664973359333050752380647891253904544280316879748745042457363124016069917595214768201785693388079994944219425853898792841083898610968042798330578570150398871421060474694565155510500772541338811579562727837847758403279359263597060292651432240285458359357929796421381747785536611868479352141707723546264072164006040013130618786143352126177421733800550242715226327630513950627125747931597823458130227946468345805601385881729403084609476223831025697139898252691009466879782811977189641942641340076884591461883990017134538499768179665126555083658168056132800832263831712638896343425037571604174532354874334040138515756416375390086820853519275317252625433476363080386923258613552180845114596872820321375468433878538106211602522774104248985880379024245033766601499268119344946437769343388813620142754818815263567781178359331467574380599824655199787550500572867035264543001821731152774105740742072583379550113490537594718224888592328243860348981673560039904319581756111933864839821979654025851146586452344225457632246855817885579791533309320011407968345205183914498406904634797316129779569885194786532053155592283763692196624417360120693845090685632257862162673066750194401223212647448071272266992213868503956889437577292050942230653060214927139827613439651287711942410333771601871349795648200334601507621235644159152889344638584470442510475893706428217142276496059013715135390645029927771461271236544302653816179513914568565474143621815154995477738958780334670593052809258824211490704252734063748325753559918901720657276396912770185820583468644470314966379441648675939729862006827915195755123264214551046603773002541577551614955903026856896287271890583170498683372627884230306981840539727047263805548982171752335458506903737395865976371956374064652356630739947897880675645492488200409380237755312621305875608241165860439380478164076372936099838977972804280362605046974954463329304529572508636704471154128571432861742967203236053235139748946907868665264338206266486171750164190740763752747828022264760325778567947693896866829074910673615974359787054970785583117219530904295907948892084616631164998388174602752569007685295454611933225430515728786379715550859924459144473487284501864363665679455181187962655536094677721731956086705240304645107265448916508413498318000852646266491647466940327068194089113182934064423879371646287962261320207849881146835902184992082173480582245303352086001414378754895133250735178368635261709164548695549799748707561781755257345778939162314279595004498675973382260704663747709801187239917520043146962812638548256381350030313933857241590825058983571840008286454802638104440225388938558006983802324777112121151219841044276034270087997053227813259845037223714914534531377228572827053710307694646018116274617182071336696151166130506639931612018154627760494014088926911655606489183871421326823471157679834813083007525382370570435725026503648502203222522975084198841332008458923217986921616988335893646855147408802092254541489996724374053579676148699654206755537752951294658731973290272888633722391365054060447303168432559728956621245231104220271022224021116801240507304813162484309826303739300461561786186517504649413601772326349739909537837879348544838986043309063476584157515250645840471253586586528322749276739448293960671875879374466527137794858965130785668116722448599899628029916717012697613521799814687254198730802778546471041587127955116920770584719000020999962313039402826532890217798782486262466200569068174634281123878849533066004647529058032854987359012999853951750730645999425547515906770495302831025592708764369771803691553600630255792929865503081263221094109307877286334102686803954916993576641660468517064504192484260044633881071012169622908405685144280702596964649084608296175702147275374385386010043802900868475522223212120397484362920391944957519400022814764649517127617664877431857204055491284970978640882160391236523211600907227515724539103360365496742924324681766308941277152226114240143055232823782552346274579127843863234362410665804764143198342238225957933775040945810336175502723373614555954411460280246821397915814546880245879964684576863527943699838785508913102065836881008074494452823263547780060021915849263144437873195241647059137608698759656175752314134968974322260691004241553117328518327675989540412749454073869044774204539572479951549725355366708028720043709548931583974213896864017010687901040585075062145733309031626912123008419938036788437228933204286107571625114403581774475483619857921865699754328133984475948946800443605503035095008976678858532587014780618073451121603654836256639892012685441552829970879903584734669665969052744573060058649598422742931044053337564486356762207537984247963359065776576296525785117060376495371735658664627045619677193206077566342479039848865752824959236107946926509401984902787416564574867017327356846164695456648444948614776156358533907423965562127460476657201778691201768899350401026729467312071624786082184507854756494074775857303575924806717568734772427955713535948001000531892208302354357825801979543268105580684777472735592180678162292905720562571044005402343754216411840683766485454990767053456849717224572957769614132675927302082908497490521241289906073120823981749379099179007963592369805447339148071694008967869554760092764862596781289197802019648051848700637232651278158903577424311109556221600221090585115721217550560263664688253187293989003468986270566529822183568570135928577965517086524469138621238478752107873879068468390380480037477533118248877085582681568357307493580670992701468842102120147471870278766140487428941551971388806158503940585269730589966872147231805710926609454406474886080431590132012687381717307915683510433664914189292716778755772308166462609009652206926700811777696720420671538578635239927817629857258581031602003292341655976365853208276595188089111315787786310134993020185124899888069417618942472189734998077908910476977630428960938296201647849868345407948561329414475992207095221528938214568708065337160325157514281911795931654997429247069301871979585348963334631602706569343114759759382280849709892389575573942692721915449093245287636381870163867258552614861629684353515767908268447221808180658923004789969713526514171882216123068094856092655937694972159100596801705189356928109128422359746549836207418618628597272738615113730044934568511437365634609816162098188100850661034911164687869685153104628525155449777519544274132690026698989687812047548242953101448035411479818339757383080780743297737052048478024006123403142613703224404287090883604731255842778528386343410339119040512465221981692879870320865990681048504422782885142705365899586886637431481971132317892204126492556082815308220980472102820580399233207788584766535410556398800507092067584938000390781133824494723365406552346621972491432023907357872475492064893051565145211964792361353313651867591105133091989995694084686785696848224147445720897185605474261727026597768527983492699215413465865437201803115348623610361698113888599781573878272800491849677522172946145528374600384466277947308856960404741446599118922621314406396514134977718782376131385394519295052249002729769326730077646155107547845462498896747363789389678167781061679189531073059688749600828880073910541232509534436988353454436323677751486472301320449795622403031391566752102720034227026273058648141368523746232782591074661502238133642425333007315950335284892163192669948998948477101619037430879942168937127394574418510150060671668945027861739378483591233001373105590294455366169226439183008048722772884404358432338799695016807081679767237878913503091517798644307017002930127992713791276436930917356328027582775877763145770866762951213854970899847785653392583522568258510163654615387260872825361849734541152809932667950786433420497574232586381022558698649119923758085187735200413357500514520705290173350932115727687278956347729646801753087853140030929829065020058612757934097145190348163802657037736777577187779173781461807488524605423012460951183805839246251718640573799613465409661183550497828555585524394892059446752803769807763337975701402932572115901351434202578969524695778792179400294649076566025530657390759125747956584817247871102946101051176555399105194209484783663323663715215241742213301891845163735888224568664331830935114869435626791694905067309285305925821409213038374252600664698065426466499361583536239992669031269688436931066442917504254597926368418906502087884243649055152813560194007290045439608371369369258799867263948054984022999243517705391993569572072587534231581355973460897555512471869502068239648513357383262209267946760670020670381556323428101888629631144701561804307482545661419130122467965065779929576376413451151588878123068383169455085408731572670439130003307758298745394758201315385515715165894268455156408125804910938242423680942066486122585142943134298292626185382712111671157419647941647309811079445357755263488992011629659976968543161300244538912840915347634746361316431035385822862357303545133554067785405636337918931832107099893742539395045298459022103731454543324912901027557038023206042665660362352259430869515403277408279824876228892321435233068936939613306400119070718954334616884417405222541159445745148856647081869729125476109923633383807456178117785645898264165114012135495632530017130612715992585005284743862956649583261981960639783354095063179906597543407060031242065232184661130640375128661102063508342499488191643414142122017117772161357646526433101950257356672437799105606540219313775641187663976459791586257656870912714282866072944564644141933972783626942458056714197283373720041255222313649292537680561074054704905381058495551339103636241093633979973145874929317114700795514741115146893325203189805534534759871196752702413157724271633504902958662375041470282672109709422445859482352640552259777693809085558171932293079292397784125003657562092226704916419160371076793197009231432694799431410323325490835845978003573136448077976693939536751381518707265984534241324592053164903803106737993060811003237506247933828048752869880575781370795399580710926522189793403816143628063254544185734757360951863865484971144002278111745183618539877901851454363034216240944758218464210358635568285260060888865197461227231237790654267477681404192308481047557310875843041674701341657634698587231467801525928231041516096972235958067276189055327001987007231620450851405557781268253382208479429402530050108470432322366712604752029762993257806552956433692792679616228694511979900394352267500548797923750827725120368513509132067461907683689260222644477027715089359398594735281379659063587196472907082309102727786955336273516728203016641474591287274015998163567044196660613676415684388918963627279660022640312752370919561997847477931906710159243182466027027022401219650393691315769878679187511991437777139983149951616082000617509058903700408476625856250871302485739300990911828016283437714045294585871726850681314528803708768018664109420931485606677671100599721783305010657032692362015578834073205379175270918508937350844145830779141265098913156332215465957848551250495966533962917609338462163654874362547272149793459542990384420617812710145416402658578571384972795961370803893722236013081251230450705486596145028974227987539612972879734796711662230906904659701696635302347930646858480576258286833748036672656720303742697627154763257566030539721182591530972037051617699572557322158513073025932673647492817215289933268249968059940527159351935694690559496730492609579906646675990063475526043426861185734702493392765454287773602287757598461071619818076552447448687539767145178509020141474953540485218837827918693092941027498410861600893923603912512390561884118536196251079964531520247196014154633030216766709204863065081355465029001914251312210461222057406711895463235143145172728983540783308179422881467632068657041620868268405628901109809024579813369390640743917507885394413136494919417643496202185173970936927418977093871879644404571344948515644104562708705713356210247173228154360547916201140399912025693293498139508513013141041226145016352812013807555323100858254952517781677053427504408553388586854092617978824743590059002193177016307261993629921377335984803868039494179211518714845769942849152567126094213326375291533841430083421265380210752842031529878655327329735287735183912474849809828032267868803859216543582272394184966072047260133674673554284525422855989027207954658970783099576578223017950030581193383582673470597615405302730123956170950062176166527753896745891400377714057214957349268919537434939362517823403873362707584864564135683569324109091381492664395327660837199548946152407261639876375697682266530287559833447912224639859001179894455957337861138186542837947251682635721147578151917498453423481535434716325695819046708296238813440606918687074163867511436820059059798204717545373086506954224695317484467316169082764289439826840901987703877059987533119113806077861830000563701139295200000804872856830646108236103357100652785139539817730615281844229040992011891048963721247767629971570453233407868007100245300689471037269706356920784256752300325262199932224666409572631993833357145058321673844977821369342106113931054010356594917169476920541567894051461960265431794320670650664739974364692567581429467301947876511006599181777733680733667910062788291422980021111165297329486254781620671159958778175378332759491614350222637786891922574952054366026023355110513365817593179193977932555501549865110225747747592336658915672225746636309674496251067814813395490210961669299777402977211774413914693524866979804898306508007146931669941044403097738440369427996488429981828918152689964697347055443654941392008885209640536904001053744857433779725709679035289829941460516079611282019082138744331065273513281601342325650251407687068957669124137029372140942354114854986764432615589453926839740035050216232065540476728481632533346191538980530257005535064243914872230151084545670036072592953392253991138426291305554884161436960193497571107509120518050877935890110921983475179756282014499203487732141706167555848389178277278661719196702136807113226878803028164112768172006503532048571996285978224672963519689400796540790605057261851006737835363328005327341701513686655023283904905281743273030680041485934941875158587686430392638197746499632229025821335324048079988949511033328706495242013507285428934278314168001386069012143625611488827660678085653144783163634474989103888465502705246070896430263762437264283696542195877302780653159802694919592722355513242773936082178162248792562536178074766764907091957688270762259721697614344819741533518098450527696926145472340817854631078060452749351548801257754548653494474915716493181769894065791317487626101155245564846266226660952529229369997344826327171039780645046071759458804568303630027595257021156315653944050940699632964566844693680184494661004589096734163026169320565258218051588056152807841805387568126002069620424490276497217280491162363146428156773569225425980115726105477840684055387703993805419763276556666474547985035413820358792392149842612047717996247630478632312943599319451936456397748446619153969295019232943274988980341969044438412959894550169615950759509839569077570450075797451295388827462560286712027975943666614959021662234993168702047484933596916535182931649144359005122463201065984477816875091841150152869826008382848314163649895727701700151514128339157616711217711615021416710650949459174567930095492140805960306170220384719221995936020793430289218791418361450502955394233733566221446799132143071170419370242674456823634730959829616035906523385254344432274597449361914776495956098739094180364387186833268103510188480767686816473723445274452967225685456776861580927887442351859550913195381840650167262376803998090564974986011120602953623967747837254157582907866238524765145270167050976557897276658182042222389844817525310677935417987371185691528991392925866472067991604044552753220809216526403341766402744120339599993895810151922542398543359351212970445396342101724595787593414736765545100439408745374731284775093349146137597493954660348780365392807653846780078103236246651354602935809108962543450233716615944549280370228750378820302043663676572687764627296508058934829102095299333644730395587392233169661463806290890486801166640969715112380030078160234919012910460466142352132098744325362637765547278124307154484924566352427041718155622751236071362424350478721880397803789624627070923243841381972515896650436112529378063648284875756235095608474618331001239996797487324843075995626942490688655081360047097225395915342129910729121814886624478310803833915046083392876136001705803465097601757888726979580472647084006742619789587822940772212083462411588408922715734132987734663144672687697202367330214558255793690142942894130377951462662935152012225571524609423111735353947749727151120758416616890744769705050496868703442993097234817794688183113255429845969197458446616525223376000048084511920524549189297940118440202471464770095570235390221905877865547612219288053628612164439068844989113207127115468076437815146131034767304000455869109476490755225511086071445465088743977106362851884687379664101914954438648465369398754356890873000328153226380349688901885248308924920733790123406531539010167036765821776072224534666179373083110933922193525774989527644189568785030613964799940903012630890587403267540724259271207675163880063466658402948665962035832955177707423539205641019995588297086777786323974098743494248340662915912300950991926821736369277279497985289711177857250258526050453013176706948940143078098160314455652348199420045003976397205297695344659482732412770564054318666706977329261191591561599510585447824401922518507799913599479076448819115665833441680548969676608376568942818710929078177401125153009254760116795946260673377751858577919047778393513889898626305736534590886250066243501611055481965610205894770087778727552301732633797593933043255538535586389014639971192687506392666564220304891044329732050488632096036301520178429892879216349129272956288354758570720556457010313687980920283147890707426520106747651306998301698570563235299194641602630439546754993081348065047711923520571496065037376743242966737479867685439995378332222733092449399627389025534772269374448098694018715190042323442043477704842230249230853138263567701180016819953711791757804635940881669826888989289772372995488360561928444126910359093513180847470252136630739134840682390576489734186529467587412688552529800950191774171858275814625571493249972454193554203963234986394783524083177381277544469790964326129628027143245019937470683137479125163107164016471916710213616504398117588775479681255909571674662781314909964377745283429653182001944191671485695685170962834319677921752331654106086864870575852024396407743757711470638296568892407354770962984410121452022280504737061263266892586017956638069105602031189198011768527071194922986918076767907162923817704754795188951861861040587946061228947775689279249660136805553622104355810483149095356406179844184431481253270170683390895525913380125374871421680072246459268522303702835471243248710921225359951192774648984463424728662789460093567625522950638671792243437337137259254713606477291376734975548263028890659437233418389683342348112838451476338467348557794788795867830652425565429528191763441284505174880493625315629673577512312869730165460108042711883085759374110680162798742778134062432766195170253850796702822605974436962989423984706927842355270506163000813088940656355460292130718050458210365303146828494107983163591027687531390716236448679547921419788089287252614846312115565977920969337943453461680039106482799564942006733708928556367743318537630824138841524181499384292584426283235320591759848119314874933342208808697871351882985705344667130317239196470226120267102768094208137233895665831677537834064834593888876018186208768899915102188430599524146301067847980569792653542703124760062391031567530020925735750615726075826289408865345933998798176535070396455753945468544660540806069082577698067589125026022784980425896319010589468446593630755560119976286222581378658513733268610550199419559623695313011115733362678001899567420799592049142254899748220464623090836408841912446195954459758018443848363553005928025790075332101628705643921221046650908765492636496514443773000739697965385059926684388689964084337238344141980094434970273868675762337463018199170991225926150461841131909651772260036813941942444939116839534624999334010048016668673596817898883205681951834680931858062470944775262664081396016712021150888279686354944417195915374052845246294592109008302968471070607555994727173980221723962582425557249235414537280312075055527357982891803375107030968716718908671516193643179360569115921848242864849125736450681527061210721872221916695859878403893874413089060968357551876942444769602032077895168460028620517343509126257795305064936515469435598861551424237740359822009553602544101602009188314978044514630835768095777647216684570738075577975128100488642794488841784813415006374415152076716396145462607756662640767947802594768147388880539066477394853246310557032351684060967488194723212555022504704730459779665654490002985699107259986834317879275528314072648864720772123313704716340792886096630008179572116312410463952378329387645946564123607570086422505427377032390220716421870417073977454413083233510274428692491064779118098419786868259728659217316114749214697753575377885775033568961598842233507397798601803034774502681417000124113638340101337801060938119309055409008288436903553672099383682680158886483062675252125259851472897136670975323050080510309526054233648529341187459034144166298102191084358995998452662979630212961470109412720815145357708899989647539211727073445889897878321962065468196514789719122730063349323051247605580840361578734555624960359450401682067759293862587249253397625955557712039446655207202267056158569315516617623536738430544993893932059972954034474778625924674260838892248720206790352268093451434910550798543471496975316578405986874600204342462981684254801938298476645046859108025972722416293561887179792279110340361002234634894928059359439609943219763611005372128347825673868167746514505194456491855259490246040388893499020502515804268377833256139726479808766660264362401070990599543257919284657766104642765007741179956576135794241482264198298503822847944012390376371824979717847500905484773400620037235964337331796374505769508456459790124491490410156382219022981700424692642477677469040884799023068819136544417565348621674567818764712367448671760169576543277532049838473061694744017113434994105118990551812500865654864671714431404098441986357736408044489893108346496671144671883172495151706952652972103430187347872131313686325918963801735203884364491714644895865986484871474686425487684324761553614651858100724637697626988427823077746638279188352434729065695984013786043161221317195208077751899470924988085922799412899925952459560972373126055409545411922089879279201696967052312128708071564597522585757789449577327585427701638855580200916998911102244137596100759949765234176181119387426590126675949668756588243224930008961323685417118185715955109469298786966158745750342966587743206396387453072002452373831196498208121858161097218330657942393733449005922477931750144767413409847605777357756617762076316015250797984144254231088179581583760954847971123310281316694672725915142101297623576815968295388922625027740388384666152672597143594367973218289568681428064314039899382976024536945915571663137752028248942757796403400101764846311949184397802768684321112399083766473537167640782128309151418084343713937555184273030993999100211063122824194747217200547780291172935161520981768840563434752250564010544511339458709034887960945041369095967575317453153050437230661125770427147945447427561728526758454377123235378216745467397351449175359645343629503715258181900009049814658211384196386451973998043703681306603291510222492346248120792490703357925984728341438749669360449651756137523716411431780315641686233015734859999891444669589624718794458979678045857278929312505253824508081937359333335386925803928078965239389240421126017743745546654286960250159563154318323464674972127086822897662615324965944932286285338822880605529086420795740961151712829336840049565938101027028534153486865535198671171919953539991455259559934696687299250910575142966338721427178153201357793201321253794858338780671740267015619281885130522565052594588587563129326060625027403329868523277553576437545937122540929398700357180799376204060684650978967820637036846099044342289663380081747517516273381369790612131359279716792382033638032575983151485824139467918274065684633704528841461064113216469286642840990679006729591707660605583780158018375201522167829220371385689359281709210462940937907870765293920393081671042494173816327357732525699330329137596472497445684127114258872879103345687507721267908523832392770959270973755425300059206777092620910877963038042611322534142449046614826017836027802658183348885968925494622672705234096670822314700290500059136096724916858661892061187117334215321661514687581088402858682637792610317662007782960089686232553564015135737231999489500924737942045344552328211749877599772460721066043910289254521062434202319074694943995580858782780663322913249432364470074236740548027415430615191734267436550888521910888554009027983755027082651638194819184162072779841610281782604842799294818582989373751522966913158489538384533854331053984240688378978095611909132000134333313597624074767900751376186410449062499085908279982303086032216487944651643848183582114718483130438547257292226183026245426739254442963358098282142659756048129660975806798571839571958419716828844554860950667898964274819791323291134608296282218046976263789028225179898151003530413229645419688269329797903378553889610416718414395514757129396672257294220961462420366540183871341575157643237516905111128843179120883346912671635015556412664791949878292261714830046070692632569623407901502272123332815519413990350932664587969820654859970520286024649201549710103595091727520456684511151690629938095955251264919686641964284479043836469098997363611798135903340505010839350699840773636414750550180712513697264928217943385388717053602566926775522783524298877377307183183907450821751598191066711355311256944046518246487868206658798112735987348818658741756152958497531158577823662715549528375409690997522198316589453958384430674629332667307980079007350556055279226004201727733502781127272476264981461587187144182541951011280285944847283199538421561993080735790627216457387126027626985979809202773673217260426953073067743132010946438527660104358018895490701084418387137384596256115063333931554067690638789161532407298738670830430930144227112655387396585027344165469784343087258541627470551118269243966105000194733707694225719434405756159263118122100984556384510011761074590712727525128869651131244815306011788942851949842507866078245631330376767737476644000791441475101428964039782938396270830634857432999035133073637811030482619363895386772615124154146059518361843265153586279348450235374600936323069931423602894933950939850564308529751856125393919292938359746992346332502485962897114929298628801751844333390857960619101602696410835984581113192190313245913269723097082138039029931354720049033896978985768302918920387749101269041267287360213740387426284996917595521156369124735000523615004708538850169504884205578488477586143467829606826639582319856079230769632650298334482361110968155122431627019119509314351007751917702975083909955721801139329850465255229499816551931758438535534779485028586452087086665319118415117368034966497077689686620557992372995790902032663306086171126305518369948764438677057977498131263931014064843690602749881584331076228951102305657784166262475591183542566745590280074544804229263828838184457080093457270288159458797531732979016519442776585854338178214067613542025214880220290710469120579310048330902080462148587613836412951487550211736816760982718039641139324376209461728863174517385998439579213160722244111546333185376311214342575079413849016334423904153330312303391926263051517182876540802214495432172081291840367332559973741406349980914370902632715544080918760407877121659070345843498219885358039299819687845345029491618605452304885925413398936409843034919534684270647853746824114479109552340119516683526480663640922127925452178115460972777253462842493391659162002083233005907529135200238651508503385637380045490834876534408124881754280603243591369386667800032801094679666943468451345815378905159243774715116174271695041732448413394738375582322799659163020867464318524133301754796438174352433658257399242648283281406192870957815569058769562656883916197589607655335076860896151460423436275168130372901274477073166358749735293358545389320323894653480143145886589943314122112735958257509554025052056097617778102319274322372758203763819470772639343714821234184581524173217460167863572066134874582043772318364961775754563225477979327710918365812289653847322861301631048528343940570271370156073660010738678989658104877587960414656653487533399319882433907119153508722063187819567936712713904537617508648976343892408283298069168593445073009822597402115729172229536419013603030225722979341269592515970403475437592186461623074467807426653449825079452125448067124119002983649713251177160577834093521238984796373013281764564187482158621328023266008878815015777566896902568253998372619683836153280941983099420903883209202440729966368877639463490918347597487715500988284247866498951594561248100703557859944495747939194713865344549303611553502802959960670506495096876218982299297781746709647498902357269518385461056277415374655670450060518918545954369737183418887152916009889047838660173630441478604285314887328358116031100591943190317814206468154193253176631285100156744511344791849195047994627676241254588876467846853083725481753301577923975536747593177494569765597628619358409749534924143349666674455190674152260129155858111576588443410088541308294764239511135982720136598773534453665472625504869695231184116616069857938438512808271640474219844070457341617084359359971201496279233026105033028388519361143136668409200325372250505137121922569470285277712395578374141790876239147215386740021204668756034153409695478147906533590357230216302354906923490084285691151536690744303843102974662082912127435550729436638622838430374476148321605634925135364337547401360922098697129017999126383853159460530612122843940232392376801903257793710502880117958807423893965280259173027910991983159542110578459166861939268010217248870448696276073001466479290986822071758364170178466408511341407941957241579817331523504038510648357886158316817488850401581375777110698001737339286674749263460982236902883044213046184312108121216665685915565830509932469090793353732795159190425354828715172086724150860903908719039239500530803941368856242496292295928202305714685361826107580389349167995846911282663805510756774716781276406086141654836110336576384136487387674750049669149176831115884823507738584731424189684272172125280365850999067725803805521729242158008083886025730689486063971754942150047953227445390480333210570818318500286664495302930643172530374019737402833034879842949803022496109371996995273810016628950753514562807802471596337384763637414470320990264156042859754518002831153938292427503673930529968454616271225766800120789498097224302122660883921689472659958987247906933368187876770768592526762554430220884886662889836684779149330477584804646608757142523978468439454868659143654608359273152022347475897616326875942852797961493389465774238292004645346496307689930716219559153137485627356614525312373640369448604168918223695219501654136184161191712654249300050515390262333440485734018167927186163244440458659372064966583264740856528883644029793112826522881363571596653965774449046797132881989020413944697212239215812813881738757270431725824016789335026575584180101544022644111650496027630835734611828662535557463809723419767520086587832945516130223550599057833267203919404580923165467663748744445513741958724967902634910236699966849756396210716568640397185864199310376049252311798617811569203827387004725632254046550955557402763784495276042463037531451082098744849822944178280243785761750258593589785243023525073229750414515934051906343687805483354770970258656291230930284763598829408486440441753065833896519059306781531889542417105753624186541882894346695851512710152514184935534425943992907066822529443561233579976552503700470472436732570266998556592349375347688448386864910008229749325432003690809853792478336568406356750036298595268752651890990031073279795987896630740160514024269041739563288994988058468843438571277655181858298626909120858005339044317707273344754647430687306825833177663617923627934323293331688245214534485496019451786532505374900358536062896946654259547895255268476821858189491892190470647772237677815100129831757805303330420916029950049447944217921701696767105770311916349319727789428280274087831220699997980147950905456816439995850794990931070940096945750580872724151457723303209753000923533390764830576543166425069486965640586777030887386227768688048473385045975558215766751627889826898807202992777232722865566251351604681983031120899846368131672391687573167030416449796452832713094096184510899549904658819072001664139439613380116188761954924534640653301132353189228537478446775019911478581833345447599196947619542947241853231455577214017479565692056244718864079276989526465765203176444782692321717580128746316431259819432478345970885581488927394080644453960748935038026431222228266400982720538143652361746076176796171769557745598161307389372125791307248357627045640799267009792014411957146607276408157052441998080305237286347956106162322221613425335363984895628607846632064120999774122622636788174287150557622890244344506652326332660036752816716756413956138927493378620839429660989722946525893543037551786187422306717515480190684577845134532554927101683503261043406833539016927184022011044012903493143428535008246902896879484742331283021904054949532694908426110029248177613071812627498911119669215880254774767354028533110522604343500435216882272051846489378356208748632841057612700298260378461687534485552613086947956333014199777542713929805909131847014343325574634074976591008774214645265365859146405763414279684599192675132762992311249666771824298165916844489954515577664240821111333335745396383132035265836249109520222935350790642120866767521534264361842161847639417225026835305565185581233882222081234966814899044305794498912838214986850858322240364122218752851889082258865679030772816342052255876623415046563532709830450251285370171649048765869947899342650042975695698278505719005207386609882924069664519915167670595259609549590834863808370496721964969257885096096916221739373305887297839685742124932316115399847359592201798252276451237089273663602135325649355011081089296295191751617734972706686688438721620233427090289203012595956576455752214479438866754329727057603337682903719680394061547474664870139095645786586148871405584327264108682428481709740936753596911439438671695470840517269478365598543611475736015801184657521257939134958137900692655267926456619829188377045166637732291361360969430219205224335992365940841596989526582696590317901196750479523101024682033945993356718155678083861691271031145397844471230358681500715168068921373571219445111081837539601277127610177480790122975787825731336714277337812657457829982412058407228801181745250997229622563326230830763846608065947599616013420803187579943572562985128165244645960461290450542735568578319317787629780555310063685184268311836200374264632109772814600694636289322836543054717532564515669953858178964544374642885822817056078178779340833233260225823340239892986286686196553378572520771296711177693019625051874452844974823328140170506887372311427364838819862011249282340765337865173520056612532628506819947951705108714792446550071875856152494146076240943651495963471060214680621610090803679412319440530603953417476320754555604335012015291736201955239694084991118362841571560576487948272164106558153788215649282327133309377494977813878824160691338334150907112691513113064971000296476304185046032022500042721185293051998663614655291524181265132589663799000896657588775108969815477786325350069279561981686401270681482898549427117163070508305467189539995445380444192843853617417952938870427006889528199391021961605127656080879066036422972246183779135535361991060205972803294135066435821661823180062633065113046311855669578937891542209932002404608345315803120739020731907617300519705030531868717416699558328238014474077276471074196984584564531764282292821019238416698471514435034185990991992796901960980057318549449048473651058063250532792810299221451394914028533939718164166095682916718183295395398812871020442495082695998001993798070779876604545022600247086240602090904461488777319324229287557134394593299067319081384380184638259946493321115336486510128134023393640297355128589077689825842325358951385056163100301440908923736259880828287255198704821123169556601150352207662665643654958136017621989405415869358775394268597001880625666149542485895837743964611490852200030755915845255823820847913544068523695664095114754162978140103193821086759044572691013376542644322636308018574722078916191592039976357796940418796676713648585341827164084626293862845326660182403596139794226836442150929575759113485094512427073212837394421628490823756305406224100870816982713561274753250535744021189984023562222208275829143635297565385853327718094376330084936653135290666511765164868775518381992561474135192265699539731269252728487288726267416389545445301592379956975822384683507340960837345577111954346765758303738058181688322534309197441487401380727737755479950772511801749217367406796241080617708416368296490357387992983122234763529311412527803817324390470993575212087106056613408634941226074826397710730746587926569339882545960046409142216284498044926020436162678144211330886253688033220217275366817877174841227459479193875424162947740359535004916387737593584885065798232302538287968877491852680482233750240838742107056333622145819867358167332773974013970332374696168119977853529107064422107923772855684481135600686337672517585808682513272996562013508311170024192658222137002399592569564511487694735123671831227446162731794427161958724015508143705390171824259293931718298008655092265057175689076560651200208234031497761708378539548078166741015373360549407477540453960408054255163060566639099824454627915186174157515770514860020312381108314963994488302186567227011009031021836742897753965834994235580417824802897838426009173858406514225456215841034852163828256619336265696970927938724189969146246563495668583298114209344542065865674126764038158054997644319284249279171065624926705615497020956448553940013017237700576186417378212815197667903888865425661334876590938630375571875541674529512721668913159979846360331586278433457277256771254732567684124930271028967946755382055549178106558546541949583644282145097115301663101926720428782597485072961997130949640305733209130160707181062937525116897659105434995980376086175399459709425491596140731984723718014950271378996694491831091885920943788784403331603771212683992458886442177572510370670367735248034531449413549299734555962043381920543822143116334719773174448970759460349449119600584357136009365531572288812535467524464952886754746236733893947480844401255487601250896715841527169789552637584539423869238467814265269769504912913292326526668148990529589779675999071346247418529653896614650688590589316182174034568509020002393914722203461310292793741791227666670211071040586930736853834489162201666376874221013012868375799397635952159987726385689358358652697246772339283460240169484661053940083856795847805306645266962095860720050099532755758185684134870935715756991101742788770403393297262042684945166493174870573492429957391035072111197119957969426720820897390100457781308196298334620567462481371163073271368477271619701134900569709302847686346473113864267154354975558591951085432849774377860997698580672011380517201575808883388955999037496499386874989134476274994959959047268147182884347791360592546113142760574635631851151504562358603205318633022041671058930734235989653247410894266486629711730488961313485671228131870773402683278168773381773420928188196990062249015606625726875558362751821311501386522002384266618239134652168874692732452374430032721444863361296733659568560659733705544014611296111654761983107778064484587697420300841943909933266865472276778835634391633631055235485913702661198706172427046246142821412026427257398030105885161945284539924544136936642970519100268583848114019192542565685949151253155323809054453622438845813085393109353019018901368683306114873703218557787417451805974157274244601835269923865527350001054255224151890032843749882198560333175201561747410329457818626777691378195378728924919298448542838537097974438180763238292681240250991247530244166958513293907983125922740730561758886230631440221756578447676920292695062616386168332126161474334722013973953574691703713075722372641165026101981000097802319631130727358887776891327419561148899237517904364872891332883582146916533535228944388716386535940339467612710646203758017107819044942437345153685935802129793792536543324171207985356472214924499479751696461461047573109746449763616429781718532466704396312565194558116546169044434669585753047063643035720210678224131666072922498095134918295906531599797789992633602469930369233538066803158537825676437397641568464048190454987961003687650433861047965150262657050734425860095574813384871728611243727781135049281517028557897674467799826008773707083317813344706809053298588323575324211646308390848867582841621842922393706236755545852770291175034376006024216396913071178581332429037123334974093575215359459277490563805048519492857185585429161137126320686523008355911954548889173636582122642584125146766695105987734641999849842880394646579096788832926664248165437182276587442618586749524475555111437564619582178870575318300847758282440403195166396733472352013983380861646182914897624449636701476261426059015093835469229974761790389862322968410367879235529787233972773381866656066270573194205928173992815215332517207665976257471297092913886747811377226901424104404397079585283166257772034713083161185886820377221397137061174991171319593681265785729527963787665822294680833452499559283753585478938505703144634916486896778439687306073182804446930179081996159264412137220280305333335543371973468549402437985298510734222168584762071665176202939932516706773862107803422001901603514403843814594515095046494632883868138655935997631313455817070312271692930027347759386757454287330989412629041264690128269868993044275390670952845817113165443616463237713107694185383649922655897271546780305618160461374477846081055955229517084891329364270953311466813945008763311838450231816737468412666366633472002345648166340890400099629512531388781898835774367687841593592412832696460987112488585620549811737180311548099010502272893680878511841704507410159914975273728133300730184651235278658004860162215286324713898829623282505861080819861532678428818867121151511676585649151898132065134914129329639111003178621429462838879680475956036748337469951202538905522813415149438163580906777831606635287585618604447805757667829112710967339980206902300330036714171746658619029371897156763358363217567646553012008855890160185994822958764669379651528540386774709714419709227007379876751212094244442504150557176088527590682716908019693806996353991543906676093765329121050664968116770126717549653941423792117832299154633091079345911631114938903609423363365004552119997360561517434049337035958035623056464447572920944281248209674442204319721717804370375681971604227496720659315099847355930731630837945428555369807081131148320729257646856614192371296843669386372377907478758182618445953940664200203951743792078951762234654314029706655668588476253836653994226642578212277435199961170476596315658824705317575146808553064771923085281531955408673964679790608370634385608035203624212693825694458138898755205799455963044577299399885105126087968723501812326082532581247062893835034708793743644232308725168438988152336979009491285711644351735257952561318938473690601113678107136404046937835670829996887058808757343788308417381000202778419419202614507552738191485632810921088678110542441008530723809224887801472030923170330402390883194438197380022578709930118536163621543625949688636452056145953387594718974044979607203092000491894814718645034384707832563091896320589869454771948592363501421917977812065873750376455666900231978867312606539856032350973725315260694039449167091266061040163565438528834982959617663292034719635641838146947046238756032135801838839276323249332319858118736904896130514972041542945666730643244930730684735820582748424915267643515265099520887210082085787181932409944585327186784574654877885000146800364508190379237943073692049158394391545715512320077170446877518120706513620657137807199811291337131752438679818165406615378814472744038582478555114263326627723736969570794759917297824366480158537515525118948279367911012938023417828903740774175523685072661248764802358427165304759093528168008319362595430492161824354725213730654631700527169937022225996354736414663025332176196735267031833851140908838148579609332498648451360013821106315048710007347926163000943943900253656017037336666314380359511814266047635294284590081928267884477124737402012427181108033366831814591426084135415843668887783611159339682974946932979966911520520589494705119118686827058928235857966561345029945922469650002423781443699793187518742243209262867515208767740459879347652015114583477546204292349621076134898094775985058046139985703224533104079836050176882118910162236063733218049586996679613509110958365405413304025050583822250778248557940270528390738901717245466639183519795890401664720641273302774007571838125976732080702509811957142087642371293485397488465109069871912887117255788546061047277053805233257697076510716404572761377476461265041708833125000025771539014888726949841418688256625971269363521849889205335187402384589276769290554498317695110983993796080209040050167066934651735215403651169371283108378154084833907263724261304392205020477136628127165334976441447114028823141586122994962238474736693744434730888817634091137706998596287971447613942262289645559074626789737776945764886416227342825780223077867769812955122707202764252555450554360655365222350173418983820394423479994460751611453859852729837628775088050139809397025967235276706393068911537350997626535970502741841032096464886199188573386403793887428160769917455578455825529169361419158666288997156046507134044332710731586093099787680844652670623432388746059268953647895401411183173363501813729955824142623681956367316538838606159067708899787040712071035994678615457012044674792011109933743008886630989161512801697745455673655207896985057485978777602557406058937379595101864575298665835469316138151082150299451544586774128211974838771456602957196268935851516613095793546133893290919212807929914708406653667769218536076213781529430288674229531534977331776733661405954471587513542392855566550784325738856476243058417418782066546855774111918418759867808943138267848470853529631102472657424007469639133927706166776547270950429897255230746078637716328147465847180105168644623726632003216786527687328609420821378129621316840530355905090395150224040541958824297615372817817177803907919866632791957964262091011414022632123497461554094621764626844923428936534850212723963460370371579135389821143207421805943047461392282510754470559478044697755800631363878257794259290722805077625816949052979055768609609266735679501470787558014016321307846344552455128779738522248639347718935666191674800794422580361218847134772659331174438191922237926436598457206264390514645315483852226296294342212449807232324231965318952089379712866129045756447501331424567703016102869951691133984703651577893670413804631932767569560857214965547197158320029505248046844244902837259648110472808393142663208882849682014824293058119847119710231234584594154896550954748611721306562170457602796823357596237536655357177623159211422858690824457242682313821994092318933232292244614886503553456665039272083283709418724550165070603675568057891236330528677144429995711959072534141341548904875281598389076537347833399326784813381598465849682824522691150594559505894324320655122096960370683665222626651682837174040417187117307070884828589239428756864064471803627252623550155686683781168489610202545109466055863051257270902819421428368951427442364785892847186548867549414858607391876091856563131977040035262889106657419950680288172319748813419276089924146252395970110681158758497392814228186076047055290083055934178239639134757538549165614656818979377223096788518266005960789079230548731698838087178726880593951296448139000666872744777390604139352025817386330289869525223919414657893331202908549064393758938485597969887321903166636200825876821669801660726071588176289988849939249340192364427261983021754027507100343657916970094711918577503742754731659016924963184210009062862243334299117490069791897779093922493774282861062315353731471312368632526882238511269367078588182990396896152120681696394716205140687804648778318230148758945380616006895309591674947965827736389675892459014321879460595940811464575076443711700038809919393997873121873170578053024034499028538184314074484081275190979843788466983474048216450579388133337087885516235347186645974471407613253249697079638073585535407594369791202711526620239148744239420231860535032555872175284226261783558083255892944164051342105338992361200684938420132001745326977361031161817330054961841873542084085020754785223194305573446941225036609011563789988634563367918017125107008224907746864606908509724121524167924702189406108405188575518012472802810258458979070570601646801164090975500920820706224782059526681365212040761875356166362367815559087431878214443205887811674228652503972894145178853004343434993744036445495635703405767624866508267419640668448989895949444472278035826762866998174843282140771409739913351776977032128066561459766295210260807244035636626389827524301204478316898792077500842509070716110367540372021910746384216391655130579047692410251850652026545518426155529091455428018300294924222595379908894928994488733908904795118598391257998210988604941348607598940412581652031450952956556088593005507676257962423535901696265292916485706738958597253360093572222987134394729982540620025747353672304264444613218964521691919252423057334684679988343267462493008966845482347633372623518233551269934675082699163138903383713991328877716460702430219620776076356811088434235232707464056263354492352359470573258871894929105670215508979994436890170075962459753306683308560343789421651865404655790350132883838226817820080967152777959769518064857773294001460244161390631956441376099250462305644361829037695112235702815530920759837657957188543483004112455997091378129653511526554272478826782147080346651153981584444154370890588611464091331921610930949873789171415217514331695592881294043229710504570709772469131335755847838029120967117434316598017881872888606321570787233878091596462764958491431497261796454145261906127358446270896053488535528210277879794063006313330556703039282436419821220273431570439553222704200612737554752258424979349415179141717598184968518306419477164758934868411185733282121431381475485609819953629346862543987992419801512500116555301503232088626640624862753147015754747180270683021308592058360418397167032562615326519574706171918709285645511286179876280000705579965112369915448027099559837272445110491220994015641942027178155421061366442038450909249286773310701462743430634304805414947222159458470606485703717325366396648630191261053175666204838794264959207153825772541292647765467818849197765416011840426671902869507119684516145358435916965147369192176123522389823826785174845431331621768191143180067085592672331827984611932902706391691865648316657200653751658204104389236816516858277387917543156795584379449602954153975572447284194715952968306713829868052014390021913401011614017360920220149449777547286991248645320356011414113736332239670604141546879945199799506164000898325465944583688837300784695848947923507727871495503348101785078088599725732505999851204658378671653144108749604001962909859720783010873183152400486471646941898563634645950320665615257471865012136953726234900000832069287391002182948938447810108326368318532837713114741463036539675961775724635666486468015176489370039486138621613920642523251044942329568729438482290218236533176969651941816851885501488657587147782754802989174155286080392650881873186557854086594298780859881172732436105554406299267857897744366661422191701181112975903150076180082411958226594616646772282575383766202523845017147810589383046812638260162297214848273919221905370201526630646046190664328661077652326760247592453418769375078231953172524817240197542036646728040753083516959806436389140053347792692978086204471327323880189740702312996974116898077069518079462332342191949881536140977400799695171693826744784508297151597088720612876877167510951309986582471914915700591801250540247346308336409975806484595533033073893390538588917941809482036171914635160485628303105943374646068244027307718769657623818670219773336205891799368542484267197303513982654781314297054217126256628553974453092048598329062009694591597500921782975243118266784702354618669173488926942776982011706252603414502257797227850926442119887726064209421218674157183797106060777105127384281569637415130531956562962085760596551410052070770401594644397115080824434855727583344309872741571128772843797065277219014030727986980655201102331503851543880054151976084758710205855671769010114432862322516462703704697405491472799570597349642843098121407018924997941280443719689099667383694096011914553862281575795629578345791430558334789782639306715349020203261261043821471601054593890075187771008326565494898776679520199336942904861012526572499867443636028028791268021807225541813536656026196347661980553102964082639128644688854274260541445101328779108093566238726718900864247868144844617903747997935352855447724238387746539419915261049714135994198903850684062410137305830782251108475314291594634228749800319939809160568267925884663892594423746761305061504495756228407254973453991002165694912647839722325795796489141736242219597198778584837116098518055496999640207883822899401398786489398198149066733382566252314790541742804289967573622880943233588753975763710514995874187929924704869565855005301997080289731068401018289813147834406167537045956028725777629800791174207141077098945417660993552381736582999852057214058917970855524869544284283867256263270741682144924620490908811791105260165011236712255817836665015672110924230093251951610522536748776472953943685987908830055670562493770897140452484180531182228042293992148261121845992884392432800602615105841916555613113668456847376031338632423212240921470164836231745230880826864616997887464310728986266193913966638610508716690445936766278161690446189898185920320030056017635615498148036520051098936898352208745083291105970791328268049212451161081977364061413813575834352122296053038949656634000266886803563390599955849753912251161042586886176665425484618470613588669591996844986114268385417127447458466244299383764063278026132860495258291445682669673146213969278395564653671660120123270301776649878792171576392593557362028839386228488147762708076854502708123642077261346666172595603670028707932207428020717503376102969278273292244214163927743284416329953257820700264167318142418125658198131916397181762852699098041947737914618404592739461492656260406734909427326869584293172092052465430056357792499270370974744405789754058923154991416542930727842587737900544354208809102711206327855325235476275688282947319100142737097901940489059299993057959365777936227928175881188665171670398511165727125713948247356188749326614392131646207043165500757231460171663143266031476151367346805930578487137082250574426093473191729917400466504185102848030285964070345598619467532998133835315768905508769122735778720224883438123042713349180313305985051049570272983365717625866747165452670043348395172826206088445711917009035249503516428580038939135599419838796449432319360396994705775276075481242965780871099201206766230000201151787619108788681998168151845890191828774901810093314921811348438840392969053887854115416622459665621116093475236653488053485317924598673132265522685804950163841277634430255684206682323813395853236687781416948209463707320717007143339433767767348823682096940857583285643920655979307616093585853943267509146669147941279626787787940028485371645163320547185326175138970129248507101321020416002030274927652429289215892511294853523805547183585896281905680042897241012497704333790588198368104054509936699577877545659952632254627176587281896492624791566835502489417010490188815062141226826755406764040821443362592671065167537323824038286261700308825731257721955662109637723873737773991312681201674825103093877163176234087229497869153658717094694591966114946300027475893164245483920354386439617487102731941949429795837016863435194136367319696632346043526596419777623463039120192108492079394034410883976360365199746223328500741607766973123104541286017560280973411320239896045965956281448267953599875188896683512547974167854631518862171467424660734830898278022945618667167873209939328142832684251859886556583458570427435976271825569509322550846881263449390164765856252746428716066440303730563480014907603627319407914893574369634638267378269693515425778622940012367567365601125908681720800470641485974827508461377924216074665358124357744738800736948023759709560114328074241664966567731645509224882815493421997529255754627690992891355037294507920054065872109836561822941416051768914357026598881646122615506485855970510371801009933175629859687714540051347929782228970680796822995967598726980036665177171479335101188837130706798972790549228295984074643688189840697238114682435454532952389423280030153284588251523466346907832361244180159300125838924428078767521769382571919157288583546469797702953812878835748778792066849845128728390417444397606005886136240796880110128537880788498421840709208028193354732104905520012712290933785065903031257739938263110534635931303843290345037838493410389092965899233079604750229942357306098771305846652406470660688724217008294052346945900735463719748451673449353261040876784326341817014582969195790236948128278042838295978669890140761341358785080139162508548937702126781504963279899559005351767884269902602985217891326199017294004640515692654908709632970167234575625239292093291891574102530135492025319310022083780335139697816029987608996227334080022511135059368178890698936476192892982572086130041815048838757016253516845877472220916114091338619468580704121579237122003811370427450925582836008599135882528975841474824242700686450175912361212110022703289258771237659751050183361282186290009414549860731966830948246464466405502083577407128751222954549049736700755376581670651478901505428736576465099291634931558643208530421835201412708072991083783502436472421917044154020357542051285748405049436041402979216121277455208569501690390516533292905969794091158475975827165921377081890864361451673886424920613700076719025758211040532916887648518963397718260711210994898381110230180363833937634767599382859100773937429405193929273300553585991971978887648555108920529614338620865890185520698002724816262105155948460653148440630298632756195366168870597682511948000479307423935455686466494670260825518798860568300403912402764542242864363670041512034091660164711980154579041506813888618756135250021196167317187615576013193420559274029525959973790619905615369106905519756663058375030213267553539999062102703256215530310671748502989469705136989109325199355463383613255922214249947516938337640595381789921634483945166731962611204671027267418703849344335659080365554915630649812619801151686546409167297331754935912069133102117057930827406988599264961117531322050463469284728059738351571459120003164852994461144185429495165114729537851942469045959575802747703998465533674548800374926310171371314736639106958099081353233114733639500405415017941002379396322544560938133823169963327131150858941078746921751244125942081098633684738187351020285638098050072968024559747228847317627608621824383888409545403294481224921481855612319895956369483991689809953772341221524725005103488407193691987464769571340386191480080084440259116060667092813035714359606134051497919007264321191520101406177118889273540925004771841810273568027448812008275730868235585475857389026657118491079753570537804550855689978778578514145091477873618780473361246273878002723073569703565947943503497107962418412578939977273777422208559410878354842026258362790184691830496577046181193592848962581238207362330289714666632564102070765099684527877546700946865301867619366754505706715017665595604991144182548955397627448227201321296504407233615301540647167048985630174328107516746422583226157636163573753560234553059175612599796871294704343343457979411997410545328184843177174343724846884905869719824598252784245965164621307914474615819837118203799415768861708771919511706165512730516049919469951495671287954946335213986231820283241340195959477096149948961578568943936834927294199141476568358258219513900948797538259114384917247244356400802777372380893449448967581191954675991357500361128171380059677369339385208271855045697530345290005348375561614493507281216323244454412917139504866446263896240997314859152817597237388603935623649896786637731789992383521173536833312318194857904305234751494705705855661703597089498581440951159185364522594467340864679904168992868714586679098482369153297053208138055889245771866524961830338707939241476916125788406799462778209967285478097485593333376038041690827652526845215983118219913405978770005971835825946324109771721249224865378199063592887531112923139865649083644984962073939872593394483933811081764033388100167312965818588472536119808107921143145838358723494891083978464411034672927531607677948236491763092308015201169437305986348769405520611445001772073470781650170226151905319585366922615251943709016002152744177021924030156171153329319743829900365494807687601814651085649515804206671544466065620557558922767570727688353441960240094544473473301441603621438590378388527319994003787249144784254781428621754343743941579071959055275066404299247355391115863090240970255158750779293388274910707638089851333975373543038060353272329832425964775779213130523486505432863768966329460722573735689557071965374236824078721041106686722068106626821670504459081429941826524762195130945225275425585798380833404240816818789530039997351668510100017514692716532963315762584634283019298793572627449317680831560326170302267263653409368796865429087262313583663637323916707598420922785420183890882033488119922662610649777351870819997906874267696132006274532558777032028420949507017729253053470730399885708956122254775134781765729737285185724610804983318778687833522631229319287893568792103223046229974655675903898304424959027331731464415565763892963933161479602360791763686678027366069221681981064830081551270557170320717576505066266801004024426611879106258623002139399935544337701645054234851798515081334431904533345296240329920624753937033269094172825807629102203083016027377657293519524495090679583726673286931778200221646873299943970500250081059254917885148094304789413717390363618834766749628611317411271929717729585062819428890551949957786063610294313846097131022586780038703697026671426307320681752209261240514630378757321148021955726185808236927530253002109203466286827627433353819125339671320283793090556614511626012240107473310289369096372503562573064590200369761982316823398700005195627073912187242379291825724528453135885990403413032808097952145562814957217883600194138499168761015190336499908441116681740767516125983519128304943080785495827060108319022685153802785323903272550340734957979277969610033366774347666362415737426721520686575667302952187439760953290252220218106427507992365632283576847983735479013931421223604256611667679555141068497077385465576988166110376655698896272419220134072200805175846602599535686377961526562283174987269832842960873804009935449593564061316046933426564404040143838239437548879452536104766214837810354450895586782537064742303961457464344360681716829859881924267367361988427074745440445065586043115605971332602082275175460645376260982604615301385422928923354216726171280999313328447049032233804033400744021719531676375778319523945705618672834402060708080061843799974231671042198269591465055401286604784163714181688818470792921312611009757408877424551158378936711203301239695036040814550033251814600871342421720968762097096920856141517893810405223683616758766109685539372840593404672730843505963228278092889868090494154918802544487777994168673417874628431163629147821193284047773769417842628022348267649285415951161419893962218103862465123493146691880503837429533945667444945164232089374154695793831614102604158841399052651296774981990281180021285146951330140388753170783554493224739489870424446542452010145939398675006309721531778753202079445962639874488596521790240664964804048094538123415539707441605675265069656344528995286873168733172789253239731645795978077331388377631777965119723096519796938638005563453580488979391901763106476073232992347735069975947894228679104902854044152106117414960443424349058280450743522129114825536685734318439257434334616325070964811811996662778526421362413358266895768021656919574564090532048058358762289113441721254044461945605183545033424719243056977207522199981209870940685914587675520988557736252227387139084592191624739796868265009807956135984963043823509491944344280048407883079887398587521799125211162138417378483540372413341455930275033405075079865943326022271516493618377617708854576528532402247398730547317253807300919939100488925214361628729175112530780477112527687043625278317484365393040215704944739886430411904603511612240973232379577142744136024752942936829198602449489776229723311377845886607341234436692020407952764861517478346201817511529588833595800656971393106825204419930539566840929925680036948767698913189596303293106686752303704596228966959991636157945986623464963943352359870791117880611984847910164645253615626488072238284650382269626176440953205772625119444393260833719024299395689879072865107158382498783656773078652267950322655960377388258128278907374752474066324163557098625692241030947280192339925157605956655027180741680762399280828212007165206127353413420668304970901581103181363057958012662601162886513504595970334822504138102946227075477561902100314246241138106992528652279344834940919192269293285082510235508125364347120508610425509048576815592377112812363300781690764075369067042289279090309242645885932857139624013416192585130626857243503141508935594556332770587864903031264046967345257630522740590170702359437755910039842651397867480990995631659025220508276274068960696811892597775061225516888803074342943128154978430298351487751790249890962232693017378491534362461740390470338466683952022810558113771558473379312416103271418346473825297081685568165546880721091941168172916122566455710158926923121108417468606654876245054518247611672579244957039551396417783564189581877075340909624831993820176217387174636778739493103566818968581097584301824903757670104669633701121781730283828862545273892487985861942560881695001898350012842565323289906394312076339187776491489968717513639373807959094451896273152563557038301391790117300096315582101294523731689168112492360188162733385622961436715343040176650412480274945594592585155749536969217760319598229672165482915127061068859280878949527009339741768382543903341326870439922353931082327053378026964551583113200589870839496005850746470360117109112375059326476654236130491173378707601723353169437936362651429464124863810879497961935225940252414537151926391709876324533144902608055395411447372272717041000726103984016676541761923648471716521138415653358392636262711921258405741666607630978997956512360160627957249175304465447790682778244821715214644731226531337063266510490855061807397540637688010062159184900651111663672315978655833902728908848178012366576633579603991617004948751789570424710217413894940149739400397035803058139151173276281731998138539251205021675463490890554731334550852189739145304807242200104063682273064367972562426679400422834627616601599547303683432801737605516698245426329657103518571677525202311114678681549553639705671051464806185461208838432472082496683968202330831424660283725091214565681241019564161719969371814708097610231609025749941238966319881028384469311388653315429604467495589788654649938059506291469745684796102999894253256178003479422454583649658061801034435937699559575247829043287388921337915934235986385309964902577016664616185371623393576432516186538443483070382634433634991969161540834685321797900586646372889057093628897784975698570658611493347842416057593439623933724103636330044913550762520568822144131445858132182961836721209681974990504511857691414023933119354958734810214948581460916704690701109825100001307382552725249240514198917647254595173977439377758307620215933055103007954747192808678269273932322987842598944014099487776081316448790117956534041959692832643116248673666326259016962755817564830054391313119236404444475770502361541394958201827831052772241958566842148960419072832030605645093051772196564477859712468150583700386786249396177916297390546476574740897920404922988381020298079736937586454034941076891355709544517754273069771518131894815163970643593050525400262645944361308416282466915068712570836915841549646406699304240125643681724864947894512899532294432457730964915928431577399288347583382164347576223420441707995283999307318628397834237155377949382370029990052473303948780885793998818967912751175030686546323422175371048582051751246885525295800804278035414154834754515167310252115516986808839856369123565919523805076852057175008747850582756955201574397296736479814109938519911888201580386873104257510773318083613508554837895234492284324530750363468579546648448905422710203698236227893220345850156958456885487082415001804093213847372449908820669857371084471993613339011115982942676311597940822878801667412621745258108338485145776265842385386929926050325921814361643634484496506775109872754198761929738357584032779983847982547669051413089366794868680744905809430815494913221267268344585369063294577383874298170981856085013710509140409222540792270193714361997529651421720960571385535739764771901328906168919472115953464948403931633685400901398052322215673760661505833201055701635902075929281409264976314597620520193065895199032748571374759215402926604583964123233603644364148314599421728109979108182103207266568060448761716241810513694288490890243602600127413136562828200710874490306750468777165997243107996003844488981123256017957035527886370442040538948986813429821666598558511310771452049344874512904216100234850301070745578586849914453407557323916969811960232833982834380189276729611183469340852955266388636958591774436795256794561548980806671897053472428089187000132777852431101976761578683230251913935462719412975602227548065460314100202102638438639482647805331067848436141508633369872606855731188771380896762702512877819178207524855843305835025718989236109378423547583634209361556509759590859468682833579599381448424381184601017624755755939096249572040617860446035218219610515458632005408262240933774813341086015574731346076773501243873918877888006702166925971608997500515331587243076373746957387991208839806693137240444917029517543191035005671216113726574082049987665822953906243251917901465140852058485020961203611563019540062359286311017384177131029962363665398429163760518453277771840295019612996615536385035028856493109930903111174289886896606417453096927733680663849380520402763614600787906032120189806296225685753270459082097546113783704264332960331734886111975413396137960172286865971728677212486745838393682381501358389010685906260829975603951864797517447185486119200812565724411698327434215759669964993992326549281949272034991749220737731011571894836232225781675099011290746873350440363994032455564470752061564405546984597609667242668884062414481339806837457378172057637652365006908841478816294454126897910832505510256681254570279314401153026527444446030430783062155929601813744557268410344742658005318178670010700715301589083582036205381321261499760243383193343992511609349366425800164032550545194720029168139529239616549144080375852558372143971742692212615542085980377963996277631923413884674283048484967549438963085383215134374214163778982438250512870358279872841989396811771826648238408214759729654433347222704717743128929817753345636049851207624061471180823034940365297223941614232852575182508618695827789689383779218084869831564549225397657510140791912424539155887824862484163613451672877049576461335012314399220405486584808562282945143354159608645957777736573194234785378677247416214476704234569138217333081180778627611792544623891476460438014516336519008573066374559679439941363851996854700678466243818830523930291512360812213820961398049918835279049165218026765613493282904944208884237988809682197714197715445061287914056788136530674718333171598693638293478414674814225177613477104210872363432409651601158369614391605270959002001081217076400380091470246311666717664703982618754361791826197890536963983794600236142710570903344042526450242046558401829774296083141098473527349645545453150272358530758984276376828854458244456512724859389218164947151316615100189152420954960967749004162413344316518955755976423760228065638310195371255375081092072816213104491455240914696303487999039843734443601599100723387952575071440792331910477334748003506582897477422600460286945808631408506037339896508262432787457199831948621646894227462584540662164567791734055577111357641167054162579580469403218236317306665440202678529278338163647399248404622043315562858941652657309068933755314864596016707496540507877069249002507173500127687610730854661307627003393341756638096125575354159299937288249197081520018994117568596174086533657885566743590419345666097670152897910252173100188270918992889325014274450801938006664382875378929729178594174786848195308231695714544558231289833837550653274940665473236030931503021525382704843948439722888159999116206654867667824052333036357552117448321164320114879220340901028410799309451231855057915980968808892261964885995362323513758467455783334557612410836443755570063115182892236078957679230659631316213203528025777937798033722046291893791595696547841462813851416139668036872888276265897314335830572434209315666830539297880371856679558586915745587360865417614335049817504879057713753384910217983787263290415207250353459965503070766513797428775283017656102795044859011645660173976530037297351472979874605374029272781171566830201595775265704851347990177774389834884089092315917197909973156561101865881644262946818385353285388215288402907266531862195452521546429175366134209278411637617564188347860713244320210648075651573867932462786528002747351344011017617006982137584079763219509004122331871812767733890533393501461074519407173365531463113865023806833835973793472670945298556381041115205554477968830886356409922677799904287068310111454459731135377140486728830302327211923104650817256061047531969657674252830627718377433329997471912219485300864497934101328965254292561434367114798187906207216090900733027287705276777537698970323198370268031639863508740772736658683577163105827668203853351836390072873687181118572664550816728262427736588167128596015977129059770027750535207263708134403401993121495216766031865219946504052726000839980365650150431169970563466220482564707065818834953890858662800176496163990774721282959953509363839520089912132110038711042234081547419369076013076594578254403732258270183580158360313408921642349569762686566825965699625011169099349685482253632407747360680351458211934492031620369990219226580747635662335328921459516209872993365460167403113919509108187124659828900358818653593785506581482863195709464526558952740042053033692949570811440914241251283036782861842030063391646215802125803333548581955216381900519837397728175529926151916349918181858338291743694722505967659888291601748899461705344468164242156200531951014819305917934387000793464067570158965363688958633488102950957142630490421570695242563055322494351892421236853728242132881330845765628665473900471279556299694543580353391345388089487283221655326395182195001091385716579079505876916315750929859471627203353753240627627703063917604043600014094535501458581223770449478478155719747313294981469049571897229099417327185158923084427447906605088331904525770097901368743898525941529502611313313431313475352456241120191241172353698632257768973721977785222495188879226810054521053555752032627399035087598093198943487731008790716134368916815424238365175718927733876487803155976680833641012873645199594519539755176100136514115964973526753891079929683745435905890293626590001932044251375015196010115314014811622796347796272351742874899155894358926759583004444130919100790599468199368588126505821833465313449077594699113201119234186617978559428695083459402568645643612780972296652738528079870484899514831307740565333246748754064773440665663888564639967144348604034877359577244104139442470159486908743623302497750091785002247238550549473366696368812623159045797926615523638044521601376949711684533250815562571511613674889218616675671485523062794769575885214589862511759878627626726784573821447469630923440358107945575814511544051355408695455668506049035288296550988712497584231084961078620533985442068604821742049413743292312896660613082859977566300230995951164969653059455168438798630451076674584365896076765929925519546316344360896377633919508028641817735001278114836226266801228599691329978037576420770044245071445357179409133731002569811232696650906133157060002232366797541136088426275550083060668740597508819304315072375358404922902995727026417559943749136253241523582240970273649550671129768472865968703910235533809725962835508911519569182494902126576973011896377466073781501908984411802607586709718137197714941523425376082154900178805164316859250773281721099763779854064771049728043569882487646066155310591560986165944123986512464829006992065967034196708265806904382840523572866716953967106480630695179873072646880746713242044459714329415953231192025549643287511934863613545075949218898634993926720737534082672001803803648340406343205628192414751132488814068256092268189042474592161029724037027404636856328883227970318951874028272903237379180713494477868536368850474411886149405551869402988181992522128032127396525248992155683418905686070357972937988167329480452506183309682163274016065796181214674102511903681908010437378179901256649401738400049440946692414700906988457497067789420657320658102077763349058090196612924379367676353328191025374345825315383294318842035757907814278404620066904821289911464953670952852366455743858615424244442180455425126662740325179552212765915173481586444597767446778201969552124120074513025856331862615464637390218847343950628470124455284334244935165774713739435751407913291854051340119393975562290109486078167758503679951429724559938023205639178984576812366355194295220147489111354467229820543523051410466202750068631858640852332588769809040744910922147881839337224560094922887286748800337955183747654479858463767711398149282394913040434859232158015256188881125649881466539817647009548443969915668058615791158055825971148467409736403307899372655910298449927292896205889341214285193495789815829011952355096955252592556066362723152981840671922000571891056408909082823856705578856815752921184234617324674269480074186515838849562469866560142283120005253947140369127219324541997062382111775116261392575613282071561186464268123501090783614051882488681804822071297676300436713561755499914033373609134661042579298161023516851208698436481713605102090205304648199469228233374861591116907576841007597833604503527687985278716240662533846048664276154268874451815030169225829512602072278155023308216741680065329022893419228128681700375938254133499425972002952048078893107185816172235007481819155477870353226705330734926600702241467607471828841786854781293831989197867321177217203576354164945451235145922821600791893452965587897492992421628475060115965048689628830502545270076012321056812659023287960213878011949451781519220785695381273270627086056262562067324191148584600318013368374075538256937453212528731984599564938344697960558242487584287062730649475376835025735330639968981402179202766478948504739082911058606088996855617484965268538659009427467305723317613018287888518015114564040499687547236186355289424256622137904592332001955284785370275089836345676245689516569325267930034584708766313994662249654287632711217133507380960672817773583669182164565982347664487823135275586585405181394551268002312117839590278315228048545000123446207449872085970532490681590947969854230940528053072059269643088931269889159015545775880960631466013470019379958423255752321366992018459336160908253301272179731913461317177229739629644391552370804059076442903030548901559264464120446362114987220401922561981945702228133640874508597847712511493030951542727420336942244234923555346758096607063060770724646910053440243990489745800191036746097379881446185367173849996981771699569851819254428976190601216450516188504871851814635293373419875504670741290229833018751580133088205872004480209354450279298094287441959931810066096453074193380893473197769499856000436302359554063877627566577614223134432859342842204441177678558202774048388534586963064301313111594656921610737282945425000731555793287063576426839646537592810973761666027966224258265246324233623398936821981717122941488159305935139037936733927309790346192199663278106410059596050745782669454555535153457138695375341195842027202190502598586944112703885531352315257307777997457330618112994027562065813851586736096756248765513140873179215937567378425841188579134121269645801631375261204499876099400056681654492476352133098574059800348586402749376487230684373752560301616207231086056968342500026845783776899407254996897114357583216240910356648629375592763792298380633826249465462035960084868061110193421973745412423284994255148243875767492432690492996824984807382557923981995277015777630286596230716869100472926796261865235480010705412642819651909610431716974775968784095893152191786034950774881503663260767008814507921547517317716424744025615640358240712995579363013820033716676921287866757504250028303864563406011875457654796495010409446218938224353827748880720497853319120907611549093244294101178960913018655491207253092476063245760277876262330312667376413728672943279570020183198925277057397810499446521106531308183998529181471703041835015903813006762340496077017065496357429038231109189426320872350761724067069820916871181869774116885832399848161893935646750598331089847942239752181338754052726497184969410729039275274096808167441173106034309786314791620988526937551589415509905602476184648534021511289718105988596977349954859681091923306103755285150365609380936004855983724556886440996950328541271055410966836001903945630479928587480430890957819847937186188520001045345810833817237183394451352213673969186767468217089010930224811849149794490113327337736320717409650219531563491619355338676449735058773447197139991062911902417441381513416473471004317893647063829150167381132455614472418776491435945559385796599947439578111909183291471152745886112285512214407072776419861449744379820273337191525613615378580810705415903877174418535481810811643296339536593385319799457835757495589618081229284630335937839048694603112846039029193878161458388430473777518790227472099743648572678154996799775008030416535129371152409875614800447344561476768294469287459031807987523652524589006863968210050309736800427444702904280645481796809504339429734723910296016698884884973417960616097259384119753336286922288815384573491291273644170877529657255340970813185551217144061118553598210045527742635039427078422629812386769578224494008167131437758299261337914445630689299189671975693388055228968940610058958374614079054303324020546968118283480123848602794882694851966904987152938327374524934442559668640809565970435600864517718387251329173098501605694081307592122941435467607121753192489557049943011357207420687394673997968326950524747153704311704847136417287133231150935781425989799173183014274629655471347774493864874909123142069184817893729523666517613331597669829384512608536658969797683277530299446085986179678391385339204745882849002115759054993578510677746782347127429770245650545880301372907524091487984230830310979431116820157414869004760814214646653645526894897760371076032265479154723333164419695888150030527974885690892543267384594238992583917908898473013656812914524679729830015217883678078894606447142265615459687302392274625903786051485057657183554240099926860585645040486744902355864901860277935186651314450070693184459057025264450205664622630686783582036147066533442311755270926844066546429842643182799403349658706502916772960405278093753556652728911154490685890693661647475842630864976117082972321111626712476497781627101999463290545342146762282559389182642945538258871596978494357346591658467681005823624417480464739567939366104273578517050956165156029641579093685556561716127467178232328940193662405159605701328681845532939513088557167393804092103654732238663855793580157201720535171106314010228635195384341345594377694391242656905061384716581347594423829386078139437375989333492481909694362125493732008036021563376037253773818451211554351810160149773465172321004805869432933043312599648855443752639128035077290661406132087510993691671360877174805591593978312030284208310484757082659630211524624823296571657180319007611734684744457558984291390198872035735731936485912062963621028266344188112858185985613178764277522594972611776953817494828004180380921535410765469762066439129137293888981522409832695303029500046434105659544891171605322946781765550598081934709645481212642708115169648810663510285649157359153621869821163670466913451924053915963563415422556692708035589832875107321458851052109849879847022519788982713936076390007554968684910019590663504365308286420955260635019079870701599965107384425130301243141126292100952189302026509163140506254659502563458313109500986201118717901195077486009648149398205181542397857347088014594207959127064154489380429767941403844587843903636377737079370262956425094840794137897353258692805016464091412365759746140797018318751104000835488347895455510044056296370545872714257938556997363378130514442861106380394002511399023099592461487129140391978447622468669623219609239331299790823844384735659211019296823025612510483329089315144303555888029727351960754169306802371463645056094297641050572692470765979653148899832252838538628039669005937437389946535783154608725529782009614383035765214170645218075086645126150555463046387503999967954430162232479441313094040086404318304710976621754338895359614597620851229848688837863342151705850921273973074522032176982786707306204473188396263428292968996431003740470459326380048545922731806602255003856597462675153848032083794443559610199839360017131781612690765071632376846012259456536669869169019136006972851420513012928741851416529901075082639914322259865482728284612034565899713552439935870480976421795644549021681457267149051306608218589722049022446796793970031824493638112177194008975109836705517918934884648303707656768411532634152989145743372431456213966338635859136529694812247935284565271823469248821143582990473188729055152651455972849107327934122631797710849409233064682450033259333346660690983094591812677999148200630008900170117967098139436262426601216490875209552363399322979835029985062198741309269112451940396055643285360451756817536859749928477155524147326202418204142806496993260606244186238120727929554174154168971160639043321400645051317719992477946204352716608935356265819152024879738640176820567892743175823904265721842974406602268278470351694029200915822413237880291115969948844359563087076708818262410235013288044546623007507527268335135411369312229775342182397551358944137487329156255537576092193862015494346416322936842128311234122561622231825188615789731089842406430966230151954640314721724771654403171246293762668897643299700436153902689290700589151465137579193765062898752459666221230660507484307124082236484819972823937800297768167051036159523911843349918791605902519557038790244746696804893208738146030579535221648237625158756651880588191865661037398623825904765932337270816497343657144246849510036212460781514191447432445844092605107217368012752827333130264867976410647083975720943206329872311089339171080936218158944414416887972088125620593739579514113300415078411732905988421351835109860921131831406825447545633398692645654671895087651238990414242051045657499818873407674428942805376794055749323286488848791349719161315496067009218290426067740277254534142319913272760375561965258818186291638475403711576646946204609120367759917125794826553798965034623502662130246709670649888325238664792396721514739478423459198743794411053859749849849135684727838959927416593945729981348557203840997408643485491825358264739821151591581479854672548457268519101745286512561687086168627791485158883996165718953067617804089531932561268398915941765096164763518352669466103905447646200359803280400522325770359231707244525962409185205127805128323528280342015350728725720400928151821881870154283369729037960573784772820122518452868136152897521169768245479283910839387805384963162765204536360345725864975205521255735279214865115515480915631390739647801296633944189266378085854664359100880216325463352514077757760738692354686173854526070873412938039658758613782120274408191675202764933040836917951844105165216628761036085789083372931149636380973175540996779504914323973033781906587138708819792083147730310855077893509565793139460975514630972731037549220636161556658789033632171679277724976052387283340473700862408943578323097318083659430155489796813905103162645497388075435815164806931030708506388636982340595432621359815025335138292968724408326288043973766291542361441332532806977401178673035660718246691122101732721262989298887775945747785631951870635120870878625625724672981981920185977243685424435343356866414677370477553339442063537930640296022029845177381887912281785196404245675566230486036417457505720440084653750066526188112933095518516511523786431703254841383781411320408837256578869521408323169722881248971523903595272418186788118040211507491222615178737242531750512671185891132742800110708208366723250693884308276694699748747259732982215574586080359734696045290604038360929074865476071986457703695202249279665151023257095867619236831525264875574627151339758882684884639905120356386646185925400559957009381826754466880967172673225960677556139082794067404814092626035627002617921946248858205948698517698902548623407871065000490832386869700091249628829592325486911396808521256786641093134546372401927811680632144373482678394225143702426467724671882725949000614501863057692638506792248698094624958749332358311618291985948667521333200337203794970211481296807383604468023782758656971284720519904685104711466532690070828766429200652461874171582780880385645552614465060686028555427106757407395491447745960793153210030575017305257800826650339124352472370451190230558368551855158206833233747302342075139693032597397026160324321121475999486459334648368211604749137571734339971259140404531666909976900904237962612950875263010981292393170461371107929761159852937799312509276985610899656996567742208418262183069395717783678650903760662583396929359656670255324665694122305166910450800184761533619112351551149981251404932736438263061346031644754740171284047574083351641983508779131624135627970107083385641543209511995808437445992793423635414379840845578211565822042766643117757270745089768922612688982021312813660578603683112468084049273816016022984830369678453957161955202683254389201601394236602359928059271182465368562448407161810304897440568214575026457452703213300440860406331835647197440987837679619378741916605716171787689610426445973807276510262664584923422116542163363880099827093132093817400539614533950567184452891303207267859301761347772540557213229072872903962647978142942953800518467925060437196719761768708654649436562408606985572366565922823858652512869854380247675004617097811889543559991765088642153057704289610321059879860896719765741503781354847597025029948286281357867796408017188132702885424838421738777773306222793502489867990779543440204980997810907693284067421681611244020963666192324037626087143112867789483752126011047460907521111547671602083856744887984946482139007696685616939332517042270198596625470662805437551687967570389505723350884952302407828778165778071579879583846255857048218854763360389280649908897176351693468563892306756041883125343281292997841475098248085735236705504639006351263317097743450865694869684810053647910722522049009815852295847876356380028171420901348715843092132036971736929136841218175330845809815321271598510537331794140458466966833084351938609212157198003586408205245196773032619570906715451975850673066871410560620699745557425458556808809906494966332814884131732518209543176708610584766119236449390651356979074810927882801357465340173662985867647640435958494641424389115872719347596579367460668893789294516771054248542842357897623168428108180914589255834332333182969337251657306552165939186721864695202275410800946885254020983905367120679539825594256772345327864572902806901027228806246102804419362385726943328315967919035153177154464856341942884670581089784687522357204837148598125250474156633174460291521628806361972787412031034603053094959387124885017354583983309417760844856137040309589853500225524303187748083068505799685183104678662044728006240435445865055456356639393161950893810936890499628409052114107191947812380578997818493974068065750934546641771417362552414551810922748959955892599346164323519374640428572182427207088350057528717712567856390349669554447199860036783306935792551018332153096207774729549909891317193971848242368103813536423947840535979536423611891799814150225677570852820771422575154062850209144501553943814447306197131775324251042998704935131010756371969582002790866327791897983591976084656586896647920007842694360607756072870887976919438344663044108914449186038100682972290981293320716690684687516153866461360154103781819906737921711765125845621722730819561930945252015286748724770102302537032786730915979661000166696333610295212669953499731216302886060825095868862837441418067857742464933461566650451433015675260367541816622436149164541045311142310692597275962955633528123803353499055005489063466587334418860774521691144195131505055723530168830139986092434569132829173688992769134001147326360080195358106131581942496756133088692901996078311484762322889466100125041675272102009720329538230362896958838171087904287280650233814644978519650867679151446083204718504317410238385755780801965224341147950545407765478041230618559952134818788227156501147002713632694665421892423688253765990968898225350164470647052078095529550331518037001391691628168412674924183100517572165960294176078017542062194146653128221158489268556005746897033403488161147293228005697427111397029739255363542789111453455524273281773338727331518933034168140852901775706960787657732875880612913467836783244451436274071286776880511315040321433799085501729919881934536737772997090143959366854445889710621509381791030254389621334796722117244495955962891021888392421104592710855572830031565278129168875915644900440073223844680307329171679111551559843018638349259452904404835136351496216839301360169627082384023951815212623426838665832709514631168370531896872116277054134037941753224601674390501600650629938954134402741803668231506558352118216740920801140583025155938546291465031954280984321736113854494760300389146301218992986542789502322690659569444330009626418820082874353876479644398620629549708550942931851599819975747934405563032708435684974908788368758274107585156464044004885617629128532453913280940463076481560169284707535250763848547784765370964103311593034175392869236531078807918307881032660795100342588792829780208672625988798538729311240241470018027850172470625387081945632286979811657728440385879529928817871993903694870814212219260053716411521430994430352699716274768130931760824675884381801638886666234802602359076622796208071468109967350245035946301495324818141498723895860337136846128476578693917873351301819924258005532925586785319187837502787273599863453012036742935957092207044206638575829109606567211888492399721462219467235406736947305642774181599818593485559086300425180356496663797530740826254439448898219977745206970829343457894004275490045934040983620762132322222615957654394042430099856463314123772052804288510539565992445324746879241536176789325644254202177291615104202205501641255578635650874493532922884496040307935116341736351119852268211884020973369020957627849370763548603126837118163996049424011191172666927535743887282545085187241776694712805666500627326842556182981511565663570934384820393963761931995831852446555290893679455848343811310930065008493292024433092308932311679087475401033058364388131210087933866261118957616141625428745091398792634545143613774462135260939993463674575389481087041442598261025955768759668549123406060937824169154939564206953891820079040430928414091658142418031015046002227177962104168197189057734425415619818899120700615794984248325191175678082927792123457859674494749147012772475229607991801722879018337301167131681978344209065327966082469136019704200408095738752366828163507216753983758006719523748652162159720238378380175371927992466638565119527634316172287311211610619488452569932191107644891967337630906035560076700243819511269579585643781489741618474534402730081240275796678863414293667809667877013232466259232277503615112378832013253862576243900258270211602443416434233152569321012057647669002862923857470856246546435786550202188750893564438197220537650904904434451216221611287503671875307889488851547572261439999427454560113577742708229674972981162057499802328544266786628519926477883577857383016548343082319303064902460777294525199972713296418473137131951659869975325545900149990908231074072266629532586637591773404081054172859937409699393057720777293543047291746393216422902168637801953871746418437300989065685858234490851150398687875572538934728670716111219157428262234833653095631676824620400704071677807262391087743974699743222597552972610254520952434026924238125386400909691349573010587526776800223710584844906722742425738026871636788331724810505438275661580976240735359550117865576645203305420684041631897956256676360177479073711327402945809404898316044779295749083177995517085068533032682970184884005438432756086754155508566668526777983225216267179292620157442826953263157609231919990867963247303503911856916447885796518587074654013395888540716774302034065273688801350231518412979358468035994879406816593310594585697763973809012197803581359486576777788909225156034299836705704251879958652267454687864857888027708104219954705388095712753771477263976448068662144034934219343519463926444954079084263564250146147289722336832435778429660834630067680036773059954814340713093097101831936728056282040587944721039627789064864877408387323317639633195043123226206695775738855011478835362536610394496373818196664761066869792414771246949707468234442202746595539078351833945167083168756083301661325220908254919142192520530038663484638032174752946169531361238714601113856384358069943830234114783167714163643465034530656467574728963572362690644423995119905590238361725941981697662680201436389428823247896925954723515076245851975977249093280991388228821161493296374250112610567885809988746468144022831634232689854167553200933418011776284084252462468926988985846002023757944812588584122727757128662881978641143579732477048420816490142317672044078126227616846267439575214982756171065494936347504920293441420490864777087662462052029243703698604016547154391174021537156770751175617998807057857900353447435625572659432595538533863454782646800278902228647831082954094168037687284579841294453130924396960500590659601450906892329046806756660531491671189016840447109895454238737851195596135197783573264589178800382843190680173558855811740213186911237535365291914105171306324630036884130465224401824589393831294766544941621069020653165012091625225825391700877249217838113075132787339567070675122488029060866073875846544768281338909387128024483201602495143006435635577713370757491031759135106881304780297015353321855422043944370183833585269007538501937535325134253009256307050803062886370950446030865530496135850712603933641017578254908898700855018172959566372168437858794303953710718175223888067681394307448515581904507608132746594271494162187340357416097842824823780079721228065709228389136545268533382225281108393869118243465057666992121920233433962829491023083572275212573549809214848269845051663669512148714153259791910751058364195904322620555613597745103420071634079269201622352835577720553481603786072955448255927700254584157062065556672172383891505065018918356358854749394490895992685592659269782744409863493408813175294466084931000157005927268243415574516172999638076229303553364552654769631445256458083410983353565551961926659436401991006037237060317405951713324391139886803150772716512216499588791011043420774307894272309466527279007696090280750157121636070935671988110517509799626484773797798321841382660157501196036376957227500704083685790474310822439415557364394634803667164983812266412593124825718027679335070182686312625013031869455722129605603055123894047394595062311258801055185737198231082463071187485453815647235337575205052803179650007384877729418436006117945382050100945541865015587179943414066311152960654155413889927324784178623066968232035682226108412915813386195453568328565379518038004466747157989544135217070687276430153195224445921793977171353882288914504267540142080371416913597044153721062719761840944350796577391036483005356464486022592564848269985386433809125843173344606037417481662167522023072354907832852586511721558024562371105180929999491738925624241291515038199096658716819861481750527898208555882678242502731371790095481013570244117100069401882415714864243335682417704472653329936002128885080508195406253698625058416494551772683343520021056607972776073291149821192885049846152622542912395270655414027881438200896655945474064270143753458037008972402427332797586917748862052879052775958399312781338512244367357440681976023428440556084816364928580797518634589276943906936897569503767881708027429385106388835760564158768947537746842213093121920363075736119871252301229588043730629551447843290205309765305589265214666434536877733162502948329729284258643534166957294674745332786016420979973556839487957428385350264136712375794361156204798141685043936743185953761383011992467110458819271404092651351113215371462426539037415703058298933043620472266576350266397574305483066598514986605096527943413308759663337653329980593615740493963409929022303771157344539636587838980232425545526055824236654313352651554647757839446658504228143938074098634497364245842043914763877702887586110529631899740603939643562498566194391583722673126239026171690038554943145912184143870695654298942196483475388366013340605963763894691785752642851715492538969246652880955015070451158846462434476931665893795425045260483449472143967477055234910472432589538132017895757307409915337635498576817209673794166327271933195181008525411284464864706490393370078583457317975781590651848757776281363428672626373087099662899908017183542985072699182918532850613751255877986718501123862719298370083182208003393284029585198191493000152919508448794356469083902210931660253295306195005991806852542951703350423949253842654319147032739816452185686523779803969969223254864305447666747989505493824243046270774105049172457713905802908122308771830642577227942169027150282583006331015322050044649205892380799650900930934868455486829157408482500558178143104403785324847417860187072386492093003576367044108693262340160662226542211311666714913987289725308239997283715054708363897860880936302421333183800380297601105446406875245558518300394143115183737911214159148149442608634642854342590171638872402086568241537757100918197920321251308740041081085444231760571097097461659175180483191652570367658075815667147242902333226464795797276763303048305454243194663977373824164746659634033663702382803960818324693515485042622084537710233754377471251318658869746277088227813884036700794043914187031824942305559485340059778605028928319733742702062941917446813196467334467761260371423024897930371490068978362266633864942053794471061187574410674483660069916108338804730610141675403394731453303156962498020716020181276669509970975581308495436482558008159968696632804103408060110243817129663899986803337004290311385332868280510887114254636076885868037263577683766759822026041702933623369990500932904051614273780846787758796743455250259915342957725750910969059817698150558969971799554434020230691734075346900084665628277392676788441769892613449530012689603905915950400219649591920915387761038995151524683668702757971088179422061165503585607045536151785630468159599301649529745392817187295573875331193045125378376999845913948593421641883979178179584685421778724259339457142131137868019291139291164104614327665914156936463263271764237237983482716025395699291667484191373871284245863176872952229297616567263193754871595619346967188031026640832958005313846443056429133659749176249666242489466221447954726231605142511958511908180260720212802861303275731526946288782411377475950293541838130807430780934545381979211745373728564371976103524448369382266133506024098395626479149213813899704066876843473841748209133915292382314101629020318762132705956350840765172366598932973300119937976628702362638827588325635262827732683956111761071307849384451818888339688522272331819109597990618955283255125037940762365992876790309709005734562136717075563049317248576473933923065548395949603886274409745891808284228401734632574848803613628173080433486512977507224779888701101655643780533413540001979528284173962926381944124613482174765324979765366676066225799560575810969537824424348448669420226302848094569087889340547873044496478899586090070728873517763132067839121431173434390429915144190162578644658365680268443417082656257714287645984757701934726326561078504180894512438954289807156485507592755630416563612282963088602510884201862525787075414782253060671245005587113228240382335168227182473995098826230750214215498609221796904944457830538148129979154017472522214096435180924606075975695754890654521462156439438383875672810383163631083695888405270056157691080546145166060526203629107388062228177727017500201803969568384597847328445159594646263675405881327151509475187737984794542182411697371659567132234400310666440403344764693523300802237784319808315600513393563625114407383601575977434350222683176823318139066955344533019958235408485436169933370260136890131933992387182592639978271023013011240317793070137184579522160263117465311479201042967001359718628887920026307843515783346356335489589340485581906838782231634329016102747074043132917504816920374638402234540015965669184843090154611276168233989305205044435647510105578407695181527366176826300535491254501256386692487855742942002094516006261187866433994068763010353252575031812483789044859883070096657223222570667207693417446615114422999224988964187121703613590098174508711555402342395564133442381313273668580750979806367052417056737504829718973623377725412724780127288073685927159315958832813995231718467512304348657390912936550481002906998370964769574944130224725077186306891324634395392097305067397206581541033550969416358180078294996072965632005841584145988803623047336997936827555172753864912315842202330320650583322932973321686922333049083606396190718981359421997779258704278538523446838401042504443785597413755287440049704515551835119628001557690742080373453498970650947077186889379856000990242490222713991536201893777903421974915112615547570580958823335191319507123456228138469547340797461998680015540628520482484408255017525951250199571084439122846494221884653941796687102026125578392212429840525573905461797505008108825841590058280877324022272664981623720359234289313930673801656591831131613261379697572237953409449068908687190339875352001856428561633831161072873573783770906200187003436314669490815970374499925171645161058602902583863857346123407366348472990082523159107658455414063374925515190312979065331781359423643363185202632461655580052723370962796109492860983539372003605761876048127027915961928148307001453226465558655817712236642130725770537408322380063184099527813847674332895463407051580933770388030502959944362326074887854081460106515402984881853360943255842956018825480144278600122378506729641217238998298514629146421490280757244173598324970597853938723930863067498226595018906495526890041515175216546414279153987252298215531559701581308396395290242028979985279864780692799887288216021937510844395470187280440187147500609034957409308511945160413108319684179059568547738056422369799348633566531705603401525511215063958051191863698066486885023183372577861778034645255442133831600437482468549458966929119457190293367637285652803821756082903188117343031267825885881911577236384876077210997897024680209771033052849987711485572484966293267986395173678400938751600398115767955356996256070247571740895374943306265799981128071106445329201585042275545599778193353880090712714178871955983511624413400973035187551498423395138578856257586600000161088087486658881952304485375273036796406432812526653065974295607834231119969836697336990782167422158302103289653651623532368471368664073972447455322360453236936848616344267317507030492544033922111004692695189443974208151369105995415867390625412272863779999378149898438055858314758137756505115573278402646227611480693529875321957368478119719872046835694850156266379379791757536556777888063926775948141004152048143329567916733260720497447969284218431010742859473343144245686985418774100037365974640695817939270233068351508938781614053281078978215315146777922928994575829679685596703061719089296875741069592638646543147275190974164103142764918715540485668707228964989966315226219531466811280943719367494150711663120252479350857176052690110382211038007309163495354757151029121554613636291565121698474780736415637151919078987634067834404537730233925926864759049687014698296781747531561377112176162061581008498562016158465327505602253078529936629355433405636592394353898310536342555256715235096067631800367157503694712388658834379108583287869827743806524332068031776059356600836556603353495731974980386674962593794285864406969652362597124744741695541833690928139314247152777762418279351591479479756071354928134013255865135373667908757513998643274651631739998180483802819683034759055061002222207987734660111036808613932348394102964679961721057597114017731152549749676237154087892355610793498180406561455105293423656502383315049273803161929945348236840963985872554146003834151193201848298352132737733277039521882369376635291331084679241467984986706543154058594112177784465528089193874948961305542335757848978677340614445333547094012934708421269512698865861330097281156531532534528300056899227955792811420906885754632880229490383062562307128544766851373270170135278463673982584340653465545382158064203219968390351575368826394291624816266062226094371545450702817461971080208337673384529251146045750684544317611102735911774312367561246116787124842305001090998757160938564036669610881368258969417139581211592040867563839489737630472267778789481614098524969349811786966377506400760325929432029901740942753621234578580913613578297474887633427024824349855176510897198272556914234171589690841284103070401695302388703600763798595508057615070642328318114242476639950887765249311529273111946467174571196281680836444637191138723217807330483400507023575876433148291815680337676213405331420692913083824237596047719072997079496790082197108927442498242844448644468071593859001041929186982209251665834396044578021271662183679258116539113939933706142456276148601056796691940466560089325736977180452998337516630683899009648025342936914014766818468247174104622082093184814049649402356010472253108585381641604531612119163947063961893353888310919016225266838793190118508075637215086073311988983438203223745380043535260962165549919029072036918352871435355229633354551261007040614628688721179319000800246637494520241903902545186447104916272324360013062462120666780566816241481919992982251319647741987434946607556884729745532732913947362310361693948611106009795533012245259940981885572549508294300294537353282242275953363996260994389087370305539801875601190796941448542547986740284304238246620205395585580039311537394576495240133152969290415974415309134337595029677010806486119094375286747159643469429743492312744782337320513261243960989233853628306262854456861603390533991898934290338294547614696280546456955160142638326502252427858295746192238018273674073487362073493063401124940344224217281077480679523554058714616401867825098812798178202050027559568714484888682105016920595689919274687736047700644562587956474698691618332396713196781171335128949583078693207692591677025264713400804047128504554926144020717847421095360125892944655657563225331956834205844289699048819116579865960632833538977950848581778046544674262873986646908627272575112367345700610746931077202069363277638728617589327926879281616808662494185398485660540158544687588871469403775018369503505289442985446202088200209469007134427271631579659392977224776726426670626767092792017948968933730251843235579800683189666307869802058116436566918032143499335869917643714932324206610278551616211000254854925014501049983469639311313714904067013432426016182608517567001127964766807630620645016331046284816647697982552235175584855313681698930450499879700955638894995874832146510151650638109742519261191811329268181435847720807819295742006889800236514525037552523544508343355149721063062883513765261881450446249849927398257742032367867306792438778422985991701610255570894151601021608726984070538425074228357149211674416546289970783927604952472144481354021432884639245857966730081703033185423541444864179595960174617722790242533770953035055645852166985927978988198927244020790697960168832020512609228227480513943107040618879723436593225020078161922766095141882956534092410785529982030927860612723809712812073552528543528517242657428539886548233557325561658284221683691048943206596127803093745903579504883364286968163414305147800645774542887280399715950473930089583746661362276075279514635408610318047203811381425562875722886945821212793768664153220041388132067211639026616197749545606157223551016128868389959598618737326252675067769422789230864612829150592776878523663862093326780355918449472767959824529955878849348456153438281990738153718632358768935686062875796031349892577949172589514993672991326800861856983205467849127973939290998426173265527946665988573199657245459647898612770936801478628316318505388393926131756188550148478483165661094317824025464059814902131540116812372921504577247022210643130695776755007091444711750608306691712588224832311646824267385253852331529590120611301081987882566444749448925932235137760422959592386405116162212963777791506495634337139903395085641165444704184311750380184620801418409394282803657933830090036654712216787894187596517255768204715539326681847576656905138192988143591624303652216230172104181593106004096607746643189905320088294923866184289091438585267412238547627854530812583165633890833144614958365290655177473434360405445151146229365346780690764658399295790947715234274523031774377527879034165710767982021693422092337195913227345694763076794866966591455583019291710903537356380268823540171308759083085947849052171565191931339638662846016152080161547264624991096808512542881130663811903023504973606983647477533405546754840885380621275306612436953982048847977163196409405504810638730444945711664056936842160073749289576103501467251749980726639280206296053253856940139978649142650139459738836920030752417205438716584229239252026416596676922988321600555810911355245388953428227276705129997386583362402020365743590330216749107378866619890929308618170892004500098898881578560234729970161091487779044046703187581324387475236157446831831303689438542008080659514107114774415694741196749709157298989720341893856448566750274357411067702947198741949041238136034673550034714508808406329408572962041308340007053871643234717469582307171412752813829531728916412523181222793422263211034175181370629433376979788932246226910122612616094410902661766627509482582782668226779467814587325288820585381050528084954019915930140848128592685610552701152214074141999670855494834333852085005747290238877112940328346708791112080963248384344874509969635255175690631481309428160062855680774475855962026388415350452812602210566502476311159894892566684481496837245875595183538544674536005061318224314918107257219794986944904126552411405097418920016580441202385507420439254475165590721901885430419987340265469317776662092302107618965542313381267396652549384571739596575218811135041360291583620451988077486115346421609461247365862426077381856121693628141739823846692462711361788267468533676416576081275051557527107887575867824306350595001095168019362590799621043792191522124602384217620575815848287407433039209472113659047674763621423024450035834802095924074065754260671750332036389168999444845726862865755387866296704048276615768197428721934139705036437791048275458259822478043953535898048434336703541216166536119012361238934376244355628969046313081480882277999338793449264782619933173285981370600757545207887316534207949958445171087388171257170384649354854338685058967454380398872253458486184914689923732244239721512901640787085220053968221488274053168017525509445295516692997795112472518132272075362803167876359021897373692985725018599946250449950042182076706551270130912321239423227635038893696191368264910248620866190409940311889187963526668274469032535429579309503579087631208760846685060586974941144964146742534540387035408929688716482480671857656697855025007732901519109339414423670076865773399247498375004788714769789035831500071138689518787397610560915081529940837839835142234389183745041518364092170312952640997795251874517558764660143622804599595234689501760052287633610658996561396389328585639864051655909056091412989683108566553550763847442524771224647030874318929264855752692461397935629845971447429838458098026823867462652281553102419208068380904538771751357480849041556838243612130993858739833802078695329689398047549076277877024534494425946037504289453485498475599006268813901614661716329036332232957616597895670137482367883094039236806764154751999526253890484739959637767577060456126331011073902219877518925979111538181256332072264575715950030790517216242161749972815238286641188351751455374137423157082432530019249626725513971627815919210818463520856879743567797376317231519103386121291583610579353142984561721442794084480895148579756685938102877127800934539342056613054465200143520350886814575212527200656484391835887422775535877273278784991521011858271733522086161201679821472798117892625419742122808998036926310232568889014492912777386734680564661895757212566859834782633679421645268738678097973326142535063190601636647198549978137370711603208965824161081123625454993511956169468665908085084112671025367857327837675465049478415808127283511486662542821036736965475533905645855238262970985108690776675204749827761271408017904142387149716897836737053419500404925732234999108780116694926614233509204674435896750781262749943353678359946951890824568154262734503598757103204964999981329115728293742869687089418411518326344448866418924200417294765177647736455134271334684675927610240173979604562748760333941118059985360323355374360592795489401265297303371652958567700308183544890855251424255957312082647037885339970716497005280261491488180564157094768497933434720921804838023452575591984090623713113671113084660256688721921006054905262704676465504272887636004722285339069254898593629049726662226305442968486562325447788249964028161785797590311709183861497915991121188898926165994111065341514784262541487662778186473692282928171826594110574155963705631243016946189804324382827603322730413468820037867602631372119001991122976277360689450884884348640385204813324692252324812194354504162333448300561518907491812720809369733941940872733487690157127271310242425671536137549253896981072841259829608234049941345215544366271427226605364740214840475435592053742006432385207460871431341532431177836616891527778691725954450087333562152417716776667108543573551236194571751166667852848519039502985861029147285524051578890017053481413632323252631355757003153054719324994276424158126282863296461350763320057173226217227649225850487313350507912039449479340368489715602038375162596343543074734716139367279229180113312494577521104406423235537569767523355372158218714551825196246165263931240462733992338500032124898749169142435926507717679922965016826295543783321308180422973661880230190798156257289009871226651954824004194075784818417518144332708666823278765683456350808730591612158258889089800515208446261894008026306959469335485142708102391502967950726038469829238786355760709772642591227005898860045932875427733988287519313198382703856275577241835751981444864861695955172811253046853499514938058119180798187130887300688286488789973103764890548748044852666921264412071621823991495308243913300015263476743184949575203785363160822313044492905058375558885791769454224462027917344402870803755829120294896974859903481857655677921895669864589369926729466429614363986452742590801585511930843035027043120755426585590897327778031238605729003665180563894849568533703430219266065992196929551585124391716686999364999644467769273447371183146091792799909846568992961247302070939438780608461267595790179949673316029169184525968098481214376803563690032187303824859349167683354199479993959530698583572308178624283343471103883483961861338145256077729743853883629587493130052561446013654837686109582970737416971949346942172237249391982941550332872070473037548543456674684901039991912819078796048252218350542467490236428326996715018015675468746488106524146375294115858870180664483769215519937736279915814941679111805896110529821243787324776241710842584083430027637304639911603184191039348303381921112812384980389794526776447166255321414927997148623991146985746990367385073033160239344992644007827296067431284818632600184979241320099849962502554662875173690037062405446033841085669744282925130206851971376571630403030965335128243185282065428119327922013088868087994451300455154858505722708076113104946972168701196275355081342116591927989269010342742079230621265538377464175848156218648451819204586559333508595385726893628635502944252720351194448931374104743722959044751336715522553870477036094469631596021329679502111516077881040952285200490661631413086527593626509595382706429311498503201823506023816146367642669695499842110075880393195066910581274432161389895187159998660021140980934317982302163012042103315571360918075779740771107350794330656807248507932681658250368069454653137357898676964901533753004372997454551915594618075262311920855164573921551086886557611977305881027337710375625580052824533999822494229385457882345909780417149105747924232875773961010957122205711429929600905259732495833683195160226234870300848046343669764372996072281652412821264764787934045447496594369252764597205541383411502524466976386208397007774175925175738809973575028538892924109815717421396806707725903389427754464783152841713281210252853483476723596409981506193914574382711527665123545439270892540829535364726512515826464581552033627395562959646709982286788927029931613214313604421024571465815060476545830080094365319020233661960614253072545623272631847385371048558886156873974233015171104194032388554973677968208563849160326006199571587571594706935644258557402811586645355163656717444468670246992047583882241002584655970933429382212921538727653632611644775302504947232373385117728580036055280126937795112502735204887622531706314856725113333008034619873875093630879653965927116687747803178776768937594754543990428896699236412094737220135320044378451167138212468910221001747283014607271415277730015719497606912412814572476803399651629759400223477807837384110831159173053890030889452125817419314749810984416798051695107335693227563055278063717969621243699685236606928700373885954720572880750931253829540742622467163524721482502318752342524346459235468213610364635656367645917846243942006463923935612409210854890591246771170730933654595295288325704866464478557944927947541019381285647344817232898316803576438963006031443087103537955179561003956456934943609765951792745476839919705812729446028303437194808995111784567704095937517141130279459556707777009596881350719173344870968789456140986566047153062487771787004850041498407918652234150011419712137060764119328980707047830452665147981134686213705374528127648277767897616701734749921688112092856162373365092636589050379224329720673422055005776087085409923622711597065941747652884447740318243150089424415003469625610076710115722297306463640465444910863078266604657950267515965207562509202113831482334850453486342819879080401980064293296135258482881955078151528114400781873278258013618029044379011986343068795167550850545659479541535408392619048793085397809375090318661271681930717935614797999432740852994914140813737204841257641166665447035975834602064975368803655938749751400178253912352269494492508053493278983394026594386398503085554422951429101968382483279358512620109088136882359220929285650485331808372869238469819364399883917274412154151331256580802449995549156194376166062436830048634090898033772159439503745608866739077075091575765701587227453217456630793219961159252240907095666482582387811033988086402302161756175209374782091639616262881315187749163030331916670162704475693632469004884891520493638595958326902184846339777127836684209137576129301271203101721181029799528646695558107453273549902207187663154800663667080390685847403457675791082261842103610958986961604532161627295559527025183726289963335142531369866203315604550310313305764191122581023758739027018397490642101746492671683220506917405474967636523833566198123018076914018338546261440299232740977050831988050378579139290231157153092826346508713697101918628877148725396505409017793220780901217614256800009015655912257227570741179114074693519153322254018235995400630538222179783603959586227914337654166018149615492895864706885634488705982756085624041608230569469069618271714098431398123932206064662970554864556165644829050829240472726312219822281326997512858689279388593095969251787355500297317794144371227111403331566751941067123873469248404023729458964997409573907409437040381238178083102075217899482238716640888978557953953953805765492669820202079649459040548916650744441716710365745617403062167152166107771296355892595611540000029347794724600723742012504059822311710744317921486551511922852137841561064883879001987007530428630132628164912769775259176199533518645889444110351457279145997756752562715596655078275913597477866177063384736765935503632947709000072805427100777485405119661266151251307093943437864823261332337331055186531996332409692574825298119116308379829758061362128020711766210430358901538106806147605592435823146563265899751444029929114011836196876936070775788840839441116319512116577235167726390919315714050630276057093300918892828746412111524600522063853647862692701295925807007158617777867055314158254103161620771423199419151389232809125633961370631421263439806302436053642982055951615428687062117402175089030796083430828295725241866535574729148668170383625266552862173762192888905212598222635206940966492433552159237192107210274548453188369603874282737866159128884203340550306811442808622627148476784841622044634900684540706634917488830572109743863870145339684385894901977091289532210436671114655683167739312075700201502921849604227553858728133478289886131931613247648417746752518099111424187781941687586442022901493516664628830204977215239370397870234319447837016407410664884736815881191858141152895343866202843337322038954655570031123341773253423363973405575095486996996430428981226868602003860205790811755197455671449551544789048812077124186848972497228724363172481856690550929944810901748788351491699290271046084037546293809564778577984654098252806573513709417512576870413475074489389219607757678836352292317072739652194682945440733945576277311008208957301760620764898191197243336989206657531483795218134577261979215901279001975752758694902950154624557205215689463682175346652885719585851314689196612307259646370682855844947057348657344714046395459815055027851016579937533765444657281021461410376216984466070477861795141081873981828443325337381994824592220502484255605419513767652398816029856846331189555422619499726945581777884501532400972796394352499328379800383316463647129438750806329260131983123853101275275017353967588698158762998274630333441314098623320084566683780441239123473091633206473032840286203605084806265607158217680571035149553243532882259830193477145420265273168120976732237582476451453108904174226364725625106410908773350283389645172788168689659475356467647899815507379296650502268684295742880810608818638584432853637437894237726981680576422669716272742023744216907761559419884091550895480319116308791395487996598467942292147476201080047953986547544277878611494748534654747649683924938733659334312233948261423306633671444637326682271676805907172855806617454682798025503952078716039902792579029211970051283763274097836207938824135932728667455414600210119339004999726122453365688439453171940411211006824766943814414780193396959384661941042923667179566249350833959675695368999835868090446948452716793025577142036513799833548894699710562916176141551986985961569725306917491213289772897636342066468321027777372418730881620854746501480664448996966095327999760767794168910693206507548636726967864859825943963994579607321824198011445066172677421368231009593639939557870115863921122553448805994295636221177652268429753121557526861276137540118887672990114870016395180617915338801761694283204540489838233501632709000963814656615610213523628759794104310676306881828626478323429380058060504342491865613208692917802854090665282249806940689142897121995474070588158885067643638773821762210517087380788763117669413889214538599813555844704659772325457857751636687279401968703034992944772973213642000270626788345586903124663143137249932165628785031372476389658685704652574144517485770444410006537422481956208676293397160896593881897222457273489468412850489818472062856143275000575405982747714911113617091995516439925289914259995642267266747060489072606585753932464084605749125405179889214292016997585390065323736981428501750288103200594548675666115288793058746813191162479130745092118277594712649068514546970797024030932943792593894061309257853521886627956191743898284327442319887393247725683403118956227796859763270868294441008280914591640297700585838265908011308035549994979672804443815017072179207653955103906989453438464854447830590700132670532311550680922525196646939158157726369504853168639077311217743880007083148396040615906228349681548397120506405360508482746643255997843100133515676321521452078457201669004892755334236849220254024988075181385185084600120168801632992521770313024294838449713608292004353754806175528060285711277701017981656586855505489497176272088615156998170637743882016880677748740010401645464114489366299269398350251729226066316021153664014315218188691447254191718883030339956793336645259204790407224792012332681335672895252530392999753450721851324607551064936044613823779723418073925319913270240897229369449357878109882612262640166078883715134917015331219840911316499914521022874518581530329865348100601557522240389610203912137236568967626551214260480131230924656318033173004289838691509186864510824436260430527244865529662500528614421228051411247293226082252670569302918474885639452133931436649403718527788873191586815386156756181315772060589719333219485635670399782199619931875582826187693075467906762837699909759349925135345836754887907125641047704245258697438188535224504976333320906256058109852107910390532052137589018033044257756342686116684303644216406799410105301142120678083745102249791448607042242662272768559154326420667971372677406323880458620725090048579588244647822485084536128204822356021864607678444646629708861955077900187016791293218088753201161201494147665126231241626476709486781318077696063166730227048431110933205380017110585092241617854444602759268219927046440475648476470218324914287666614213783044685207657479915162074469150653309638140028129898764860518694318956007662939763374740315810407482063823046187060745054876128004346843887903118852243856728289911788095867179788080677107420608082140027693620119529929116167594764430455284086432069126470407572971429811725588635799473962646493542144303865137343536013878765394460861664803009219940585729603102292978905910969334649751588926424516970223494500725356463579900652334117376419201441061241739397794287132983017267143790037696573343462775661107555177524312961940054062162628006429421784143176363734079424004749053718657966235998515730919051096229432236745793300027412977354040691678147077257104326122550106688734282701456112144938621272262568836229639033063780528469316311122357970901511258059030591321407093825253354077754112224793072641001204310093145017847943376227593573228615041151581099193092291627303763616464037224516538952157564609548188620672432966126667085816238600297341828151605240178551382593793664426803603146505100862831008861280942589961667931880519491008732995825197484577452330190844575615525714934751531711457454070795134265737696683868184312208896186745479271532219275141808990508769404718690512440335301449649845675111885760505696414808708378397407764862275337288550603190149462019255875578755691974411986001331583691128776466687627056196950869723954763420316210816539674696677032492336252235971853347294156865321971773249660749546958637745067414844982472381416078793873309169302318570194588043415068792352405253422339619103875358534284561617652756697534392537650629932032014909729549489504451992096298924130778984381760067877737362433325185178032053074379315174256676144928711836385422587375742428337075543722644714310278888909491962612453239624056941733577656747240453036551316699489908465710120240146879500286472897796093181226606518664432092494951070824991227856149467896681049526052151436434930929010960719131021694520242684214825147438242749617651059022396822234587021585387385205124114936880315759105822797001452414229282599007596962439488213504670527007421552263093855790821344522785593471052351989858352462757122408942350706530044833891081252402399433943752169932114770302521994669090233845991418723854669473201133861869353668199510951952514256308381277483958123488275754678319764790672316628612923496220363623798501662589299911800173859767263899827891338058292381794207857574513938609625366000324683706413997472267364122273126675292139790790870251945304999096859470949435693426974469073129219507167271647302024390900713980794276962520539091246640612576155130745188203667100271059527574657655958484924152845737356623591037439411966279089252887602505219883239844994514836080754969049922165683701221723029820601780455671096879225918123526082674815803046314388629446335413157944431358676629273754983979077250112296258767183207607560432648674405643166662539470650073237067125479811585253847023837474308164684850460129347772872798195070774465405185031580283040773844440885908167787507799230792997947185960092927343422927431551808073317955209544339049194688480286555193700890604795030007207213300813601025466297713521757463406078468853219828203849320635935786476652706005642539712989180907615831985917993777821265012774744111695342594678472522444324696050583178789030402037105676205904703922357676360836533850201333838325688817872473141238102942659005160378413088299684439003936687032243657544265463346456668965936190522382324247530966129550859334090101186422332058241678398130596945694117910011633698002123420635475170127807164528813744306889388619153047715631177849673162113871370128054354877269168299676785323980148430205287772575523569117651426636277912807958462006576490663893801922294467085751383342713740551737757670288033755907077830655430983630683038265149565102365465431801955218490191888756184927688896794613307011653491646242163134586962798327206412401752277206374292337291136828476532394124857189956865665908560217077670623769276643120473023336209504647726258118627775189517796994208881342268472192249265515517744782378377003090046246560678631498915156086777926795884040549240673836723876053742986378735829506604589931263546008108350444128891586088874855849026596312084277606399479877934949355897716543485327922106682458442890319870751584183209472349604108731340815904678313562845013042485742253214089764787339109965790414765004645698115736979528525736312386411593954735150606674336690340984839305475510697762634589926218967600021976035473724751620155451495637943597024259965017885385732166358444549382940650268330826999175517183261335914604864097107346569777058111166233895998973064947987353448657110901068813018443841036694810358060611369427145834564541082778842405467592849003467468178663251421265861380934016904173067654909529940253587240595929531136734764119740233550381461191721045798464839905447719382643739646429840067662830547840248696991764996679798868542164392707665564330318103263877921618151723146029247920806194226576141120396845885915622197865370634879768708091858407076074530626424241768383634068340629345333429204304298447683152071274067607761757803323346095883924168874550201973833359516583954885154102249410946076310938826249861084382660183755284168070699894937057386043702640228429542246944625777418981659982369964407118590071235022693598031336243599114046817833274112622235604391550110714931211829810204184890489365927488818631238837307893128027803496254878274948961675576938458876835299548208494065923454584642526787855786424804669713389472888534306731158332262181612417643131488513698556499659627522735034262276136629820998036958061585537674887223478377676659226151903888913830884061724276536296540253446458910342488578511276254100975782061674188880998524096738361530506921454116832854887193917686918052100818625032372733069749262909123153580909345537633364942556783645503658503156025830694798213630754574984552985972212078083221227282227418557300967468443352805776509848933628814921951234627069422316985978615798837822993307291677032765661644785430744718539924591503328563513096717062827266908531235657055857100100741400156820936644601004728014168335523610806062900914378331548285784933083160953131960802748815487071105690449973311802706077726709191068158340661220365312414736042880579784067875477566787961502626896663622759673993026440809292236916058315342076331552136143412019326662916181626680848645032931388673346920374280535699229413196216439242434823864763094795451235125830349213810390117296100064601094032671687535912050443634239927199514268954955447688081631407907894964592682778541683085272649676736558334775265870916191926021893389255109297176980827541125727105187225572098645970791188501219895906490956086800640791052652725016451076878846976567830691126856037647367921043415646885438358011195615879085994745005970234040821655836026125884440695868336231080921026959931408363802743365899562901908414101585529506716597991556425437393122040036143135064672029765040542944742479486181498825178696250256404675240279964220453749209906753442319077971843075409847063336332025309451594222135552127666284241338567720847721825767943558776193822253772575207883413510844169091457477374647855137917159465555135984619174415940619095333764812058334326059176200723624294186904317598896808093965536596523000296762569720387132286926595628727175647693459335713544244439867180814927400832937219924587427574390109910222219019177628745057463697870089783535495807967620124339444876538627732428825421794364962443562955720318608467989594782971405232245942667714686458403975883833488520327639100524073210720039402788224026854900850916844893450707516366022562395378873112357151928814109320887130419587185598362891095894545143208366584938634205962702800498827740654513556661946932702025100778815713427283466261177652868795383736458315503040396343789004182799463893178570460550069046601360266426484325031266433137614105838301254314325773981766736308984295161703193015433163030261883068116363598285082889746018395698858249493032138140784333269800024693582796768045058054952604472580417756043374982160775606131386698084566237815342416850335330843007677316245101865451876190165004331842605526885435196783068018045909878925520342753237221440467178157268338150617867846103534420415144385652673563496830634009715715717071083710698647620558496993093515158292495390924090345839724604313415485428842323192269004994694702993326031186664696783132808171958905049006881743318086043524697343287097121585857539008528907470563871240430389064779016585169793056998340089875235377879486497495889098778161611090228812100376244139220856983668121772901215231163482540703969357191525111096699328245499592864227114431350553406413959444312874511249051407646122221176610694899719341751784021119860049064959997143444442324338286378392774237456833607370156302932055760740260023917642246733611574482092862739217316213827434067686604806515357484386891002740145612623771952473718073079421792182880689714767395707212479447446820862942780701182105387927145734077619294934602723801759174231751336339353621425832882848413794181709228992534787559907594170195629820902439682086063789560333208661784887701787247505204582603831324683679378204076829763871981242035554528133810795456262962604605004853167244837402877629623074566054418523015689608852676536919748854376622862249624782597654024844165229417141446580677185172708910097099101281492168127371756888091395039620302666322194661960803948669731871240098970672003879471036653785700668277855579799942838867667200406040633833031618906344415203387270980167027615093162389141865129367622752289351374560119975342983004862222911085304854947363919091452106698542952131320610983711641426732758242552670072196112685973969317137230211647818727020709688700860725602713406466666425641855859414683202702980070558979673781915787392105670897210999494984560151441999005988290308210318804763863425006409846499911293024621783794751084159790246673351113493906645259412375175246616296154340394370747998748955058401147444963978349193221271234303206398636651088645485980325112044860798235532377687801891041926105566356350305701312559010885085198138680511167772687058162104778430154453797174941403901978375047274271969360408819811155801700111229903520691558832010291552986319384709074386565130517497433307586191005676161959958546101092469926921497785587129361324366133603730474101684441004871636437681070859738034283379119464595973031223858678016024530254567910084593247066880623404451891229927822647030942372957402368637171350696981672001124611961787690743940529715069534601066466500290071936645311942998941718888876552412454016640679187354949892742008695265349806062903735448145491040056784841635623543771599109292817319454669634416941861330160068693793938305794875560092071828875297685649172830855909323943153817354523977605133519633695264084404494274347172079749547831836854682843478251044755605960609717787423679057584922615330159993730924650500170827370449074338379347896426776234452224084031161062820750376219594201655249593852984515802021395426088135489435762693842852278669575722943884733295289283752613399514344319909661051703268673293330261011973955848405100512415764667311641031928843611088115488822803657320932166953067726684620076188000366586216406998595316869625156131565095806591607241225059662167725921649463903026121078318474656174262242229887676360647426597611633897593912437620198559869585659428692734458198237892594417648865518063818319046596422976095925385317118219778677147997204658798291330619852886107933465832417630357813449705662339683800971673256055315568223590877755856356316636311454001240434161500293403162772001234707610978856085231622294831381465534602289463809797536585902675811190870790780744295269799990541238572979725028695223186676893100227721483196305179570853046937749645094912736213422586577411933786504992320706289516221726656430390177084733476200925894317545869545005225869776559417112657978003768614029068022542780450451807686347641474257073024745497920383558449362823161413970132788337497647115032343992422650027128536237030508417131671206352805015826127726790345960251075935461312686046135180285667073053699334665925287154579123675311916902511243850091293383406276139898405311774702384616279199301738763611909712125576483139762780740903168900906999915551399991307411121605837577402883730240387692972404832608925819205892551207381027259900025986038228913510171722633438390327856108978649208509587235511552138391126695831623157030519555369048538871028186791061131521709707393978084294955055542224654514564361442937829580157677572952386059222950328499817955236753897826098934958971251941259331320424693711109994064713884859895926326276024203158174602585450795986643926894146402435815192475411528229715772243467040955702890217186906649675744459054682033127851908486086672914075481918497566933597113990978182563612894395739768480645718167118887040561534958666890372066051784718998692112581762343679439352086876167858656413234593244339979372475637910315574125135049547274384047987969723282617602851554440349001924733208917153544423162828527914418210457029896684879558648588124494575235363615744473303061056994197906427586586589916187844071901941255454465744753355958199486194565237698497611039416154577542094881172185027799057342514199785978582513686051217707165969274333749810847496170096965577079230378080278380886135015254293024277187573760040427312853940097467961413051382818510691844765572501771542148419160843130450741777859274528555547428402965051317880435929823626750756475599031864227018180544534636057682320816749920497959762541492472759371744883154333536525600094286420569176411312925243891423903250721029924112449915802459046736681359969436338271155991260996130923481027854309369244377450928966376675063612335589472638095198420930883510703200935510496350141746306297317165124402306473793745093991688581290882812976999705514033962234183517161551308302434359086037614382104018759017226257858903689579752759877114616961662772862267760366268765056468991914550589856755397488812219016801694244839013656975612529759227580095552550740508772980763411494685817977179610970620483494064358027063883282551515945281478839380029759582738908142164950240380965783568854693848044617666693068764257204001812753003524619038763366365590041847093209070014657555199663094710060710263931282772221085633191587924662829799266741891096002479987435985641956844411212409764577259547951944747887780929176545664336877288505242250393232114971636112489723662297216794405636447594483492442892976854434753068215833387353207975202589225026997252782865873362262296287081814181729958642052653850853118339551659207510630377787558582857330569733727001381288549115572115123007304144924962345978842844712659579227090945195985761332191765576917917285514811326898242305124402699841357587396440794830282051367996609657510774852112428432486072236365493949357444758393681526651786479359970000123129300097726676907232207789033543504403438618396421300791167936994196216761566220980162251379069200163064986659899515469087083291199705304819973455493333902889308051725440843386210226214725039938763093631717721705299735091792282437702039230743238916689275821207112542502610159093780463521445173180660383789664835464553864652845930863562322503816438112843125498409259449846308867474979044688848947743615780008193021385442202518055108243348610561230183985383827780484257604051936891746818767175174029389787826213651685798698383286373403844102932740253597777310815062680573164441757018177448181507602243220071057673739377085971370079839178403526261785828650759301937397095963770240394577315739322879859399067334904308233386751295589818634376006938199515500043237092303373219335233753747068741165770925566302236262460321227918587680347953117936595064907650273521510569350370166093025046916355908353884258886318662588734587644639281761870230656120709754294793496632949978974725024609361531615376992507748240601243476691651739007561002226691389499095210819949454424416436796061426410587987685276256380307708625887692596811584184294928273968697255640982572169094855362598556205282727345563816092292163165145024850526805270769701017628659587216528686482531665365492102812758247744857412562078188112007235024186347321944014921943911504571368485149809337210198521650816391871348688605236969248066463045505525434556861368240133224996277936419146982196708561833034539379799247166667721305845164704390372352337859501496485580803936452622768825235943863713265019769027308610188469190873565370194977026454203111511840192313338188439463618264036255112836363426804911994294653741090513136685660338972800133230413084350573221168058117692872090100676655289674526256955298505858301276168064254468616914520736285309308319992955441457117245830933707280030904477477399057932449996751526879936266832076777903891587134648985312657987240349236310637721970868962218871392637093114782119599183386839846372314406417088383258439591592158324270717668044624164082630117017232801552347999061253260286275143382744865930040259229440727097927505432277854236748501056790581841759728760422671226475717245114721995880987615910488257951729258638257856923566486298599162589984397354225796363636094918576229134481833926629345928489734435459066842188350617802667767627321550417926725026307511592013923106854778125298361066482333580014823223828316048343987598180268035668867319361930003263387041513713302298887699142587496498806531826142762032979666153535220954582683228500681312589051662372906972737655474141141441679225958719008205826895802775402247462008721320867406644758346255960375746101219458571551241909742565393805892368406527435397021189234929067598960932834455858616214536932602290243166497155451331798351924732368822163824595654750338922975758517034510746007083042548574934267024952504436454345996750669273951431388610233087617897930753254736878658943369119073684777587096534982155023780498654626944960143576591336058539145452556867879211571705941736031115450212173617338998644579419579978670830145982138686934744592178113233046724261869392101772670555075649924590008114176267361472502644487679190471519247447152779572789173717058220920279433485751717799400602444883159906325073240577758603044671301059672871668944563218011740537655780595556370553303512296279946639021707360292293652373448727955988372127527262080761285705319376950055156951363909550902315130315949565480862731282324618280661620120771317732919625679850425555882210072226678877871649569875004038326274448902641535054293540502913796079992083797361017387630735574836396734726489645765282048985609115716206448321933963882533360054416774841147020221497828753539707232160463029011158069621170495852109326217885830731367399344571550677712857453217748174682772571445429674467123667696500923920156378543877045515189282218953946654474532101226443341610520004568693087078667202984942522143700348582965071075846221751503094253188074267734843191674937549911994114822840214687068814047431640729997140929023950786439886888371563732006652888020844518371354151925069963714186242235954621806350413867392415380781280604106153560535315699526369363653826074157744940120016531761307375572652855132162359068057370346150065070674722350519198815579884359785093578284828820473219580726719814065497946048036412469754129056231283341737020334309554994826167273425418298064231865360616006746887167208847185500373170310364891730135510328804664534103274496778532290731824859426654272723166375170532383684541198549184110664763723150762749188648823147100030282729035656571472699636330507625776324148878133444955028103349156287188502689615210548587323225586415345020909150125260377688681661933586289420836820232665684525321198274095929583929437913899984980889181361976881679585626857847541336478894971063568582828311587014765349371981891664340724146475798770848967495480225763531811396761494135833590966861614510044292180606917396059647713262321137027504433250166245361966082924771476148784683911028564915392069736871050550380597537592853466360192946064884083698664309954725073823969734494086256529761491609683995596774942106643530423224159174799543831946637945142800652893889967493820351097519619134012855457578313740928039042740896951184592709608557210509366749799768248755525680313368802612721170873147647712467829943553829103577836118663188016869216196150225124768871949926715057310543539717082882723123932358668914702378006652217282262344441903395146462511895831660579762370619947530908186727773948753770740239644093352408943196766470243207313206344588008048344897233947202618850464679486663499605164761209935315357602920195086362738287785740170643395480196269609421935745846615082500308689534651905124524143011590955395514130510860534134543212191867168196345952859641856008490075166704198681596831018471562915883446813021902059361129564512686630252804873878351395394427428891892200107177451666415999263456787906131933134824170359337645847700538598692851605665672082021062492342980850997222159153069877089908093378634433087844382415300100749187747464480727459352882162054928599667662801158565899088353339997832148827925833099722200189016690303056770169085927177130941224853260153325499613452933512521161038021477042032513138921450707176134283773316938531817678738779026341437345404479049201806322768566399856852446416289953565810679319850077248350548427205314392294685401973725891569687789905429537763922818763216373010269145592393183747344608596409543163561562740530568507588135707405926996932510617332319767976967613216437457621318321582582779811673970807163466931567751561916288808051651241050246340684853832791386270750397956506406498534845218901467910852689573992626970982359825641814011227502708552131947836850654508039508858597996301994647126812655820610880432768321281128994794483650464816230499866180639658581168441981607813242370429990000220533961594433433276179486920781418717941612223881922706713018699077432905771474259277128069909405021255725095852679348462849659286366607337133663250319627713287973156032222086217822208687150911709312243601961643112280523872098529598055686132241193736144737159508241289847040404780367156343087499367465525842789894666113445373933375096148048636761081100182919267845718929902881786535329699722323653464341965160560620263035926063741114480258123532650359504312124463867128599439366640344492781086954230656211636007200352146682330195649393542582844510356507773842103973142075850002061770196433491532580797082641239124464013716347542895270277687719009120922398905169257783404825901356547586374451795063647773361218797480849938005894792850230485142169078655697458861150672571132607266719894195340098888025369353360705661206944545201304972855557104560833739954772621848946629028674340374237155512770691375619146078806729198845279046044173164670505623755484802123312123915852325444775074097112506862914705213714665587234433882581466292048441833713248875279525141962374102036628800052702790470146308954585225370521606044292165518696447638970100050744067913170736232154007999500114354638504843930394336036732019629877471911159794695006155932378250498757483698346129816480317163355522559752313067908731064384548064960426992664091885753046953500094782748958365642858481347040212398981832641954457754907562274145383859546417305359121828334935722875638812882326541556087036407915145110510757173677326014137308021108827671857590337674845264881604553891218944271558561775944583139242068800381839010074190124162073836837674258639188824883039008249152778158901297386828967021402974840661238211545638095947235131785974152056907654571291922480762786493767499233379170739625447983636279511740193442878937100632873278637244823796503393446283641545738305462719232485479977911980349192136431049436930969809424696911527048889005831247743801138675610718570822174473882865075009475729880229381874090667508980928746660169497811048561639088024853472274123205823959308182109721246387129277994939027455356630277990344817397809462782598114938134589091682636037372570291336491136027897067211328665434698529708599041813400154819322209686061654020090729486852695930865710128435779759880461878712290428727867859764860856206919031526181170284675050172223934592703736268555466673442481599702159704106981979954367799697400962311722161376572336970542604632758354539199087674072834543860822630407956341800046773565440478877342487518168169959964970650791085660021750532688503252861834697188410898636087867157220848550820247258693362047513934065234129226002938195325015785153542369066123081971015287568057044171234459107686898038453049701839514023734046054572974431049569462327424770177699344977899172555901264540477729620692700995622595323727496738254289136651657715295816940365822035553152395512574686909596148872376187644177387735014699023306838935708116784022797587103390532952929488744996747422402955297390419710515471269257632554329662626429968072246320509248711731192313840203599700679373404723063443149996541186124111614496205827041580812434739116839166561001694381620869158637228969829870412752354377864488119610071479127651410677663324285638872716055824954058215534558099880765211352547764078043259855927203843447741615025813550417281077357919716576497318326901688005121965370990306420949008286571457266319659985246264760963950237976004610800981831727914147070820416968348855783929389939551050875085820270566377433894111044852903262189341666837536474756960574995304270890106573046459109422764268398934502671943455414815698650352752334093688709335337940663857627020516166428871085141920544262082913621230985568437656148257586557044597425535524360541599413547907011943759296932708030689520645656293344179612064788249013789310156962583507465109989797117443606618804464396448024821728295516153745987303179195806780528401150351892405265688723556532111580026042898967698357489100539629113069087259369098290353386847767727731665613518881257617299311884684414834401986395132895609773637733040668183371718020842332564699325394875795250723423962471284407064141850672010343628694071585821431567608077768335385317176684299039037911016330923122585370299570497688595831480709287765166883696916785370952270767875224760098213267633971910982452238132096683465889563352274968084978428184933677142030874492259722573653912933734733776822810109570926384391591952850107280754014152084099218770348173212112088999047483514002226321990763442871993408103600854658742572708914197451256237724386456456443719688202944226624116322843585908359968664842625012305644316281640245921337745712124025717249951272488363017270438402056107653161546719524331659801447663669761116566737050730903636789628501630324311363584683390450392179843515015202925319144495663861898430071993450727775447348920993726180728191538737244262231424557250329816020293178514976994991369613794159578341434756505089495221132438912535527456789199382896674536202276320874137605799746163653011528962737542995827482865409936733812981909618214595837628707681855507373891367843690527259882348668332609077204059656237085453897841525444505366372206080651931646410422604155941524093389197824269261557268187514340345580899378970949807934338541234617920425100233738406724520616848306106102646238966961181549885136343369591730795646463930485429908570068485881429883651843564998533928537417074970456042750944425780817621316243616476378281040231975256160588856590399096594159270431772809276876159360652138138516707382948740201231135235481476793434195808470937629096242313275487825790975102957542243331548496171838408479970828949072406639903736263306433789843063189134874647609039913896583368582776466649500828986439520224321567562240621164828822621170319493921527296089437917973673502898176368808120588768235397465119194496798965940207897680009044764920081511913399601312868806133362121157018632392736735399339354230321721569692204707555119996406574541190446985682720312196921158126191183798495407537939071931195331096877004284111815891432720093027456295595957782598840758195154358085315143075297607342405451112270124896197171461521546536865291553155258838959666398559744663368527073088747151865024826547511598682055199006587830371934603186761627568944054083884826449679222829544775424148110020972387364683747042920016198195348158213119598384498852966051683693363791486745615316118781761839142656965243262275713415273346719302402436925947960142609982286037304926752859546052711157644824995860169119188335183919591828022716037694705438784044143758235825355176632431674290889700463954050105419812476285239404021390991682064120562198669226199410786969277199982599350836053922480466464706607118308531668132992093789858375604702230879465700375842732994856249079951037421127231590160920623716147846783008089598828198691396661158724105446947417329353245458434198463164728963304407679629740753370998023058204674632214253563063616671015661567425206277784956970595853402983529077427235382130734273401612784325570360859755291536780280161239179855811194129595900726840724530955003053697809538199037377253587725587930563603668845271359100692747130080855009168053163221646649534515605724372746986325487042003408983576298185723791068132700818574535690368861689942335403433614513292632966780750962806649542897632778473550356428994896956254811795516611768025777063028530800013995369565173100940205352339398522402344506319678365468972713129313519986960007806117557790846672420314037308169545066724137725741532251500063983408655249158023590115629815883168343472382986627456869576367265155702052845154866398376261525932346528288176147824697896207829619924433075129772950546386387324097541916901232168359406343363320784203026696526693819665736135406661380751739887407149816895639462787438423449773837275221800963215027767228688478076895223359086644321031117539928395532605474106477847626052875623452681944592431704184479362512634981875949411857873159306783572378227911349279242614216089033768221253408287309556634927778363204524208367456892663418131210757225729691110317633698937330894545445346756118589163904010530062974729913901022368943999877232307819961180196271433421290348021230162916327123880553482621696132634862971573732084494423214079306764592346889475303474396775030488112670192349489407122756046774710162810562125937205338645017905272591255932458816451564235860233412624221257802547239543606523174177408303025071758802072363141508874745764084979897038031690320573860092718045274856818308214454658972091914636030704581752989378174284867858572567922249021379962144951662915300037429737939093608581290310579135953598401744535368365956623794585853354724788118274372717747591660870361850858689879543966267769194782383136986539121698164942919912960311473194561934679566759757801947193407549865101339047201902639604253942325399040663348226518598934127042038379352771705253477966216154399015126984381019145348815988521620322818993434413372466278089740618943293646300946229294506160157787869577823395473387524863997587475516250899608899121908675303197203989869394687584199387679216173843926155278458696215772481255307075691313578770041674193453967913036804462321168656583795447504095543799001626034057998064122136582479912078685523886059082091345334361051729198732615658905189581099847463047485873756083737161229607332436029966752315924491927139076521697387436490168540403720869315509148133797737813696490952622517882733998879621341217394027902897816508654168727891379068635116617275682486604198273043249345220852786527994289828716409477041188369122184223708045004443997423404050100641881298657424426648533981344427566204186564157067125443218279184149153250096780972745298602236664632666799479547600097872221262012603864033911523611910408173216775574287905889135734233209489152947262455307977877046811867521614979856343910302266794701466097741844432876920965325638874456381502741000488880316921747301028735773959364412956376747162927792985177925726447585781854569875658058352796485906263940777949019550808724520708541249927332460261371873887793996941456428730967923394379321441055497227384907047084108584883022482799695371389016275934549627429902559139180745931315252656710421786789113564625966592845296049755998446073171318803744960666074515159399104855763757137410113439238136186755893662602716538291620471340868605540714688745726236206949067415550563750299298177914925365356629127946923632862180777818200675916919168682179525654468361387830193869502573570242341270680285003681276383251460934387161033230772479513975948378420479282199675506840014855244591936495405101280017628241773153470252231978161499167091463994546257579118563537368514751877097638510325433554367044659412330551839799819326668075678363878301575074690961028469449263014686398319707431899022607447236393523364655052396006221486857293919987462460928030337182765304737317172586129853929301619205604678725052184030011858065659409833794274639316049516664779408171526453305156615126563826175844775620189254916090706698339532074988533251351495741410385530220182059368718842041979301465280796527409026785445682069967183079224220846037571939313954762048699064519476597545218891781409483861490737940994644314504653120940978553479580173070276758477816785201655861933085009068716683336798580922962288724423625322516772600994785184016228059675942880192346735584612345697607252182789758989488079182164083884139366683197322203178287107768793208671827210901507665582939907219946082514652462543527704316303857047867658801100377892103947043329353717813104828366093491303919559945282941585989161670957622222913785842294468381957195715811538857488134582311935209384346719398553360284974439922274267352413278160345113539208829077928204779967872387108742808563025953793701556083233670336129910495339824857017812776884936480254835263122760684005033299452095002028838127691479019916716482936693627105736803169015753906575788354725971007547930073314749455709425797127748049744751977313070626993810964354826224769269686716919759464699934038921146605351887718644837137161304610308518158082662149934663337056182163957203698248795452767542922453257905517089595251250097003163500494057434130032581764703195118486155817664082255700693520466142362581732225498009240037075132936613782740634788713162737265738324846668913279751896937533601861933974719817826727006607234028833608961518898064236898960022685552683828241406642147451272330932953229525732438527414239819047955567595118157002946555718324778194714837360748385247911588899710512025622255643087884590215916695383807660770383516287801480700390541704966866966923854502000142573636345427942584668553519253707127513238135640085186385567904131160136465522342384878676453265544820964171977924184164610313821045721309713367817355120797766297309799037035109096340884851407414012355108258226575317053738768679093769911639926878018959958301619441933923173900975336745142631716737897995933873856562306298194063883756159366415890295000829048888129837385320195783830672253866396735758328024587442146361147035951159895864505276273589823289736130271331905891427814682215141735771181606720054258106174018787878345360981075986300897811582453928412925574174263485885786959535137183829458987787826863386028991983271871057338203104802683460864412698969995933003140619737852872736088445848687538532932210108043012988395544113193901935234237441564280890900070868018162986718220416807486531633282128756831291849226144720392556755152475868659884367494078321560699730156648343070991424357083593320800514274542588595378179351859948889093504460784671367857383909576158523462060544868174363921512483485532471100359074171459961482508431291284362252467712011152357568544988269103406872934163156279482025519451230984917875204729934282627645412411586539226536640213844073987554233365820188542100613284960004500067046784637459217520421951653982228751689802914138980008119743254186409050605917659780052566238461185643409655644113059860163194936525734304111443360963314645697936818213374136805927445074509786494709980300371533825686043755645831067070469544210378642380745769613435560929054471383960114475618185385821012273608662677614770858847511797944074452334848194003179740758880506584069793760004469644062114462987945372571500862210682646825178941166430110861257737614590648435743118214264708442635560504403654996099511101912210298552263498077591581536173885642823644116438419576152558429443055928415818930447610194360326741473844568030721984442246916245645483388722440792576348195121443240602780553201978618098130144820661058319701388644175699796123366016186246465684275954909889588261400152993232122092492501944233105624137896088197156914919373206392415957052209711674787712605954166681215510879821461398804647855192290818036851942077714391671274793826249179898808006894280730816209981127990407051021873504102553059841566011845467553607633049637845890415924594740168927246369062720249704653106721064775661803003166569582675042365976220723912070430243208876083122117223507311000204902951016499579764994791970714584798367836849427295299021531616910886082515643156388363734629715719933502450965698647719210056905167056516440510788725425958951103283246883080642310461719798689018292791255696111825042610982759234286160444852605596328608199438933399125915635541450829063186428193859239999127101671057657388416240312544025798291672865570857738127009706375889388818975617907943441999799335843898796771075768147296308066748308140038526175044451129146118888684879206125758720308790235510544256796467110556439052525975403983931494690789236517288657673583245333094170342295653440067127198342243355324976126777419247414213013961095605216318555525068265933127193181431280696615527754334122146441811858537022787438298700611417728998626858197789657648887799453920534405923337550565024066691093948060067812909985477306959305837157432957719614081336171830352307096340216399196859746765267251208971262243981795061065956591195162748538505711625564295852184586131404205973176601826616009272953267964833000631724091741058402617470965857623635788374649292164214463754233572526617065015644214603425381356901339453424116320203958741304501512987524936880561128005425253666866603166422947548740094244580920147950085598188268813972036161566255721746623879702706831544352695825942133367446713487040697613287531260881541225363180271820067569733279373807398658815245050912306463944572578590462204272083410929595562857623500931726306537247389308960160986506515294951758975283264008698401397042974431937162414502068947359855683735337530183230722322825722966307880684486166734535481896967338011190824693194568475340505299909524705540213096997988930739138100218819657654647163662173528634842488736365990623682820801816210922644051092018362030186592449562763825258416315784148774494517435566806106042886684406845586121379949908869374078704468199787712485193001096406286348440983057118373631443727195179109502682613892131158744337523737229825380652632037318042949002384858369673238249618526103117849304606911473559032526172648766661529045756080646631285387136199225418957995487780508835404762815743265848387541110942068124246004442010062146465772367684957737551469419504839304549803025946389001837805926911545002920897871100364145632183308478873752258138528193777016119019071151669640291314114391549664939467346224214324112702547049993846793454487992101658283918866162933743358662107624932996324885123168150310631218418785929130215219989615952646582748101495927814771320041399909060431531969197637541664680156316168498999927769650202524955501616199206980945182454363904956617799382135033267297890466955744215646068574432316255558139892704243301235684303292464228610027208515016958231302465965576089129683593513813339994716779319234578396768367278057598466115586350777903271617306055687980819157989236684556897830339985741086016241690464440298347133774160549873645838824725136437178705041204876654695863015837069868993450565408753027207846607251706702778205348350745945157295384961205640682436950715265148322070170539938405800643021907939370844915186329536171920156499960582734373236401402133830698510821521505915857900803234015257279526921608635840750883602420491941743162688812753568966550789540411706609538545513401463090595026742337748473934661849050670022510951878135862651671356537650723207262960974545464892077238198440650664195379478289363683310969221332414494990982719455543309653856125197251094575007749536514694004059798853963815649689112363922674843933381904361552907867081066291425616491234559939703163649928689290097105693608158926043034214103173028080687137779736112237381018349257353555101204750129467143474543254274030866848872590226311419095930630671847303766038504102563407258948993108634593597426648956018907361149382685120757981381673653758181855663909710916477521834157004345569920366991281429478887550601953307884171723344104674831959631407463625742683777975907139690751336051488256734863984313098885887185884719614377481059744094756906672099770287886177793576454946130160006400204740525577432885765870315059292939367208126937079532976903565038564289149795925479234953332852534447895762287441628881111162569144328442357127485206550516829380247173948127575211872040783490401921573210695406011645170322393428730003672554970796111955622754626636444498860283852028797209491764506877389029265739997733347223678146156418668713911770090801290767343116584762597930343868977663401829671399195234714652739423036633958093522655951691388702091804829969033925131313507921652552618854533896930632959405689085172419716201625750148218730430300269158871702251399571243649106225972618868017246218655488817236133914596686681182513798991269138938743716392003504540302365233494430913589211879320567279873600820199779727148577152388878992789547750137291720886830338350709436337656857419970133521405605390383108935413308186969302225534930239472568264558022265261976664524151729325659639216780076600932035790097555173563819815093983300571132128431571182575426591241536248874128632802774406706075793211871183070348172614226063710374193087668016545499138026107789692868600080992638319064078250929230499790504001804202978426643367138237223261643302661017655467535542623519986764107243627800570169474624852292121597680761977121289229145628611054972807807181595137250143719797162437746938177380940864623868976759475700739986009219367675018187201871847724654864145964732052330314954993826198323920074573674166153848221758511039542825641195005332760943655038031355448483797966140884593209334970519691465179381051325987799714079267014295204097075544918812217677773775653512662258212987609473413251868467000621324479955681883951948124563567280318116574801363247130855286655236016410128552090073078417061174944700505608009390072471033422504358863078982886861019564865490696553087414746565789035346173537988303198247465709517430116816130540334468905641748513812125226968286835215710771946804710149225184183152412100306480637504141540627117477476160542230146839737053711163765236567487734584684342711799025200991368793634012513776115234365922459904000864534955563651893733759232100919830689470756776447258571943520731080260130686745220158445067797394080141142492321492089057616549788265323363178991979828163817606592363130442914088768073846127305358899411723996545288354944906336252564313854900634955509235606380789038220951294065143318744701710255089598920599556003313356475084084296251016139246482966378675205116855883887864372119750627395733719674513261075420897725335000434660069964289389091452083171172648430686440964063007870961659883535705514847831799291150975244562996495323719548977596122445096335011420993697196119454742297322357501359791254079849697856720883997550980451722435960160592926512475651263171466190499863535471822268035979073462486964879755365428425244013095144258584508909623443530465281886249353714688679153111830557562513744209906192246772615291366935939237077347710660128295416995202097589804439415729144209697536881749227005402927167889328493048348241165658073037760374982173043184421010014722197730078794634812568672617475688266656041952057931854639948530603131345463322465171561894851015541803302319444725921514595170260963742434905189595609361465734403119146032348333222958315207550548378939575490570389790067116460201435718491328247162456510294459283831670680014465206563621795058112543448797309556337645267998574234570981431527709680063904713989933357043376242610539667515788728388190176466866282257915728864354102824278107607698109679280735808877054201364597956428433017830062692339108254895844295156779938645003931992380060897866629455530799354821974420792831355116231708943061584857688310717828887799490031853140619221410325907432310738108199309154089454899899532415788347488414433469010857014209553152203950232161289116945929158114599360835188634366432416064651232179158205797822079880873265014845532486994377835904941378854860133403516142182264949782686505696136959658661743513674317752995885321503226361037550834036247314171684102357621446014022679531026115906457659978610213192328265919959308586790009498728041571692677818681821259840332108021608695194662361789997049036555460573114629029043292015650767271368053651859829189841322269328690558852756093738723062640390265359756801639656533319887996246908880235062973211645665645578104976264996402672825304047635476441103469958094899891305288472641209660626735054842695337630192387244889834570668113239556859797214573715479112929517906888654092449687963596542154580919235390262806780388024534217269957675546173943148788969341241955940667531015749680795552333485261212591941686836369955678277134246384339615045828947638037265569419984328226123944124371675588118411862769321980976463331410840634480383763814289409619932095619867709679696453898257313275372238563902445817452053917537967583432170979555800244858582116851561686750515210217470454388624891637471825432067365463686876330564207407698395586018556430899692385599176753686532411437102600954038607923805029750816932865103199054482463101337918251309019889614143940166174456234411250851292157797968678874286101194538491979895444019733895242307142883417532117315182835189904296988799259083812574739636453326961280308356855111825528866595233075154658770484607900082710501012644351927468651511417650252616158618442969274527396795948362685165824111674875915413261432970737177243631390809409679474263625143196940445503675294515865760267228961049711582906751397166731978564074653532252934818772187979002156437006530018223212745912282494807185001204713690262338305419437818731430664269777481957227147596715215188008965469159254005615337303002655327488481232970026420265654676919576323141070711551226226046894829488696507693585570667730984720410044105300071489904703208895633106408941377332468040582464412254303993801341523685328752715188511966878973483364106508157000786857167557874328456159567652295419963828163862150294678233649184074855264052396105645353283853569945589260864319356257303950160154355188087816301515897376437088274962613476691904487602136717047434343745611153419573629273103896681087646828036393169080399400965827155522067004673694834437348002340294282221020015861385030401859116456857783464650025263786262560163505945839874340768316848373348911458453572300629566087435050919611704879545717646818134644176694675661237132946340169320059352953633730863447784309538266181852277225631940421372970585894791403129928263559081670023769337007747791339180487177807009902914162380370194875416213691070180015108372717094194351049666041955246855981412630841396787341084232174128180145550883185396026056910519238854711933475828864739784468553514800823259740869370321390809554423649382016066340912757892740229529552348674546183846085356745731440834524501606147834152800485338794981152083119375997713850041808251346778152033605805918582171649199448540475006209706915087629845934909227303726537921254558324465991409009681536134521187805420200324069815988222966460849786592467457037757593227172783930422078727475075708848457181399513890243528713828492668634605284566032127130502447154012993164764571865301300119499960107756254223381768244871656790817717993179598088066655272976229033665348672114584665226025400868604819320287857518610696845540087336703552450459417324416640366982893306334915440085837829471852036556464547439284784337842557592283718384938279305651235043870726844750144561104799295781145296329448482503994173949719397429169601619794507177899934974892084873585603445679039227168571892236204235511939416865689713712332979761636373340647922822484448332701721388546071518876607599587843490639970034500471892068332619398753405518687029272282770892503617966063084898917038132909156678037802898754727756235981169057054078970009422373041426237288718865378833012863306400299454932169902284404271702990700283548026971404706088921994589639238229095046608030596456038958052138282782687474355903426645169143284582142417550219869877159244311995594041887705232971746160640572193183933273767437560559073512760302439600444174902794029544179205381451890142771519440820033610155044500851105861385307113096695105091107597379480454229529750943731625322466748888949300260346112692961963403800390178088534454091737714508588515407675598816096343596757294820938398885934501587436831068984254287712765300647765548310598583612466706098018660985696217146353609578125625374524903874797591979625083746727474619078014726390642386537252161992532113183002824702689279475476718313067060296297613111123347113687692465672741864441509876520142277756294229950011746063184689737345921692968387359396460813058314035654336401297625441767642515753161343909986824086560290486918028911370704184252571174117508839558516422949188596934759126218754724915930466848560998095682360603844691172219946391097042265728959346951576651740075691917543339750965811200047887106782796353597919257257385723473497349870032015286158700962648462603595985633852191126459559142106640315213873991723685233658649862301448696370272313858996448872886561529707752360987690462287585365005751742646246225151602509700354977173953487344645262574973621095419586978503823447865714557101457209812701678346776161589892814718942583946641202102798733540886909906694082019426738808606397334500464870015064499484796469072570593836808067236082866950892894441447931453819551689602802945191551546947098555805237574539023322409496630790146234440357943055419347298104730707826993365091292562843855561668490357642027362372675789094774492260754569948469124977073003394460422098910031216687819243732701128001392780257487784399856927457175429402322747746419674544587157469558577424638859831873831032196426956632063245418164614309657771378970199009752540315253596262460455005968604289383445916235306062589718225645442348459621360383020364506787358688594253971031188164715391961074694638400622213400058923777986647799026769447158476066037600779330319285820121097864306792729080260117797904587292072159246382562919395177159229168158330441380485981239806747075926512757842928007545355546724260560318127612809829894351752674801643395853437806417825916234509857969639568343069310195700945783453831445864723086916259720920187503255768608206532035887409047077078302344201252777046139945039782907117577909854054284350736270981396187321298404366332323857844819849370617281992849322226393670658644474793777676859539217060015335760415960164918303670951092577158322178350733466682534366793202494466270682909359603589796325034579955350434978297372632589864265025050867837575842399273901424695541297530691619437282885549077258831548255986126547026782387626517082922462108562555872152383852766222754734808620323815641830227774835631920265713169409957038065170389958923358884203335637811352863740547839821486455919785592327411781168453086890755716564208088822723343826079294059248791668155214600717574661711972566421654985103535601500319954739656366606964006879853155652689457047329274644961335428925583368888879393863012379144673840227066639867956249319731904058769604965059693788586479854957037174417542562308368355626187546808834898097881013247933715933969683881965522866281325062670782629340861782575633546120935721446311733205078982399099694462323736161029722319339914286164130450559577918411695521274012331488749086525877157913643539979736853912788472024034114585398939445440167176508119108290819560819677340167535494904730130566835358517919252445757723272424787493954940076997070557073690160537618573080557606010401378979062569813892364955948066438562359294463604678959241977718714077321215855585079295423281973902387716566272206459008459559459194697288715409556956490225942927184512382966315021808698678711070005792724252477834742302793847245702143046663929050578252453352026593060624242703787052897524929528448865967802759497582082424512405997700097243461610517723667238751938762161383186475941679314753453519206796785880155947853519343787613981163721136885288668250428785126588470990681567811838045510601792138327814936394682244326748991438512830661403503917891129935357844102645469325107412616689961253539041688630921078697188438947928117972462317837355412316528857222353741389552414946626024707998998823574313600374393689050942824031127589322659433412499173550715636976568372631882286016106222098168410028208835062573638863792494567509640593738798118904782347581215261875043052907487853823395344994737324933931216672997227192134581759563720195235022537363677808686311282814672491818558325489776076376196265688745619161360497057246219659062112660749001648622703178026238445826675118952982142069665813362629315804212221324611897016551976732317828808713908640921347944924413738053372048999253407276352367757610056939097166548145469371929395355281285503657241337711885166518771011535821871396205649845992256920727998387509239181214749975318921969021435865886502986202243654674853027187901089514019779871359798471991233833463738613470503748894716155002527370534560970557555081227437680352263206706318321092520792407867354234483518797728123531765916047546087078874854126269413912645315170381630727577142760053233081732710037111345684608913026441084465707915598122560315088988938161714241847456603811783466514277660011465487834736554341912814590875062830774753009884651970154117512333077964319742793310998563729218230235613030093216689649066370552002626315211535227313686471698416860556386732291686095849122087046379125323016531559834059223621987351627060267793033949125392895188091019471608129700639019657441602836854425026872346754002967252102316539285277019274425424714842060300466558906185394894204282960713850825637509206703544185223833942024988327890102072008543052063289161389454129896595340533768793506147749541628001571158206053732307175819409811474376478167001299937308084992940127229155198543885274866704259196196531665564412575865733308624814359669066055056212654307669499620133248462107893460808286906069229289871713384770119060225224526716567317407850472470852858864767738109525001729656079325908408413703038595887090371246985528518448250348121323807328153546367745422160302157736043937913060734979745987604656794279115435030577175832306762427040668395489519526015757845203811028829696091097301166299492833154672993920092337206045820506199524719128986747672672938231179116198530294003349101104322820175431726832050544287455003082993729305738467693731776178817801956802000993737477642239892182324338023631150200760696090934207047833832122806922136429968812052152898062603734985305001718916843474123697144897580151554113354245154088447263811229187557140556989594321296927319494657631640123846607472163503296685747904510295653950177489501821549861902368232196758443551210774256762189096349272073466920635180147379047652318448890901544317963048004364678155315326240138124633558713111584587324449899973667773386683814720793816837965352771941497794428502573975533507200878141264995455133932005101328993092834845363004477961744165074233801786641615848940679083591788112184763487143330054012995169523669473313847698920341636287333959620585181245036789314731262409307616364467215010928831778687705462577361553917035213575158102476148956892564700604224655652315072234998689151306242820483406834898793642982728885991482027353532627504018554499219671630263455515064642316409581479967097923559994953836723636228452587183112317477290500356346181923075368175048419462688468871093904037149442162726001511311745632014952765385566031178905001225547452978548848385450146090153894223405574470316680515316506733186062780045257531292923839695944898353387648831544592953053365069961877552508305717348761944110268978509316140571973240976318960578892685921283189138901490541313311020293010869029990182380575236883584645782137231665374895637754381857881403532899348551172342078701654853165194907287335954912843733226119091460873814025026518677645761185085755968045265115689752324573009592052638127030178086712898295908356403912251318045931918690070189248194521995956597560573025320033635232307080594156038900821160280604373972721652470156257230072859965046980877141088140262774054027607131387318762809887255051801321602092557350261592045631359523443622171951859928852622992116828556783543286850833993159688151652430194042905294497497734557406082950103953301888702588203038598548756955016728231361963520085729573086067993296686824852556941854821957715012275806971939907806857050958256549742674775512656186610716032621341211425592116986882647026108160319613636076456917939534823588128905430456179591474678591136156834158513678702973925405612141063571372976652118810165689928960207695429214343462185340554001441292813490555140546007042926736057283023554383269953373414091599903977940582271948838969765997501523408765186723531896595529630313372863474788218491283927435594396325735711709794829783227211571611525134306153690494128235358590976587571691660850281262502216185521722597324698687688323592734555943998468817385514647025364527078179332204077371822398964239933501433211905671059150885148617168380937368505998781834410739927668896800457586577687672678526945977762325218508704602946136282022079098426622943844032392927774404727306317210175519267873583158656450991001544716005494696339603532761816649873081735235846744792657114796908836487333046210262511751995301180054165789783176733140370880011813985537949012418526895841837628524620273977236411097402990681270404736094437541853353961332409431204177443892828778716003113563090593888261955464550095111475940230147337941061297042296049614390643975898727853819678865978495575112049448225550177354546623809374806550999208520743356635555884410370157577100310254648373097631087636531805473318798970761471611942891232752980123203508461428901147218311925153906286093967624861944450472873315232723113479722633880730743398360160446521527819759689669610917305783345105876345949522548910809889401394438784194968843270559919569528548129379278719202009965566188789692757346480269247191283879881601877729700036220874785727032925628765789084444901780444503418056403110716809820462388942653488646093862209041728181853399103247251851648780492773711953448984454663005101421028474546727081870354507933807288679479746564913757305440020179256155926687919940228893273829543370267126670724527558759043543629107657332637623890536462576086058246999986329187906459999709005375409947221347443711508426198879089085341689159437334454702131622983341431818928538062850485608285633923107899966448167497142679972721666992138740900044289518958204400951455392505790419128866279627608304730472379084700084475822978017820711609025109736439116729955686891448527463665556845594470035986240669663201756093708330196567450482821767500859413310804308073648796540608872756155132825419082165649134802963384250238220514245621397670497239979103705785253411342387760191569902129618494980124915258977508912715452183751280254614173342922944149777564137347761345675119409277785498769575295222466741561417455519485303408374375560749265667284683561438547014303960126403791667358655412104727491482820916265238681245191182629513226893134162240343286057809618872548018924735681690384625568017696921565004401048384187053760510726512664663438762105426264523360193583082898525398524898807237761149545611430922480998913464101557754548112040549495577687502980536979153241962033009108336761647135454598814030505670420205285888797869176957100304949254644247170604337442883149370672428113468124097763352782223436348288988029766925500607250700707505317710505915990361008859935233194970247562976471760834963504355589178536112415528669089262277274553965290739494779703580963099715145054173733313594052011693741099657908669289199838384047847348565997963219260606391734221954488055455171608700949483352468291358655236886085989755843886960979503959330128972646987896164447486136201773055951670697133054580000398895984143714524681170227921250974331700563686540606239261761619784958643357242933474225100614451080198113141874346217849483703540981393635777283950672702038658282927346952731318501996141340940469292943149200042533688984038760897830045158302110410745014641279352375376712885106149090421992838215741151781733002667689767500936284497052674558597017583567248429987151271534483863520745759634403431109180210875122847071278343137909265128215703235116734125010650062070884057812111032470213666612035820839362886990868479222370229797998407093929161292837485700510959767689073854221645026399386222125935169364183504929140700875289657224968939500040389236856869675789799607158549180600932350121476622454565605501459603172000073964693463691142930655955884746826529481291375351135464096644430011072853066573700288286912345858069879936588243274347932695405524102918964029031938461428918076690114271270721796428684400494934851759741934760955053049457210285171965078508104605091440055459262003357128612371027216965356518321520469675168521830344199074306182004731913217682791811067945563697666684059510608576419233878290765314638243964681145639139734438077132005162008349701055934805093516372265644354216785115724245345676186545557594311869196765526637833592181629025116840882470056144536044556563343380532191880228322801415045008284471733041775998336295167797667483711008119549858313101416950610132950585016809752800755555643151727884346004977886359041722216645571455860365754717535340594805014352787485203382118900009484903602215984600139860007138956366891785423474799300352844190108276550653472551655634813586286888114372528247453756265982482155721610233072085924373578065282068192958007877455114588774753830920857782963637833561894709775273454209770020090298091606803272181189339232470898265244453774800264277107826453155986936398905981235497307413173006780573719417393555063205927802385843577693989281057972920868543270664778498217453888885487497701066957110239546301116065157255413859721086150681646542349402258035394501383329743329103838658368477002991210177266691312741974751978467960945381253902019713324435322544131384446986924398602075729945133181134696832973376476765586713814325460841348888884862549911883188323561403151037003414593469507957183222081462652176684635789529056278566254315922202972264795019123132061364696098342965656674451184643251073262614886628036856575547598254045711963976430505699554768929953965625968284631090172322254668794801778920520457673328225190086633304840515311522794077647621819813620083431047738360010572614887194540715584413948654621798392198133621603446636251429588129334030155854160811295149098232891542618815267323813925515119791444529513448091093567233451705650568696227208720471642747927287338277110683313281872660234855339062997447474730352241802474782449750164281583964402939895903672564940746833157864224601614867751308378060627097462455051383121361671600347312841585730988084982266727179923139960224960849247373240199976106966277619464252272689049501304974724434370910471930344286417513827047273644428299080420576928597140581185457532258753493137978188137573239573483882131390818160810210898892883376633631590289640600736144607081741735969985439322164883629080500115828007911331816775642390250966880342888907077493151606225051278923613050728720485788063747282994176257690227252349048027261235156703532202489266726647360119834404671668382996819324631301754707097503806159752922735295728551339674203108184041537125165929545769090010984632220822560443922557353986329006271872839266577712471168078956338062050938722386684167449993207109811990908948768618274335436219845707448459562328780954433488236458994779585811542538861499864647875321640020751390134222047647487329221029850068883741974572975227636182350162142708770371433322388780973060801915967551352308118555327325512808019031696436807567883052804175465759629201461422873126963770779096535715464031531140678362869671308692425079996336139924900689233074622360758151198758752544921202840090086805794368435438970357385068779360518894313551764325665411055927322879480727530575614962231967863395283439067115612051081501903805404412838041353016726100473513588303682629276602742369551191193417392466755603151800351855289659686266072637917021437857800881779669075663585969539315666133906021134902891980269638957841411867062804375735558333963032509304000643317108926549081527918577729165322005580538526525571497038806384782366331696412466972619126859219763258168787883411677439493542337316294129855230376164443633916700013287746800844724606277831407936061869900354932719891782502986707591377875669339752659904282232035442557897637668964621270572221444189508291767490543794314928893067650955578933685123073600094465950524150921566936439594885332075756870002689419607937379969533322028780238940085547057015144451911960162871787977554262537107823935225582051416432711776313589336894945891235366931120822462574871054906381926838647766241209834481134115547410384504281429598542882923319827812260997071304172363521304060182902986942636338388208949641363891179482479120593368584583374069151693764428004630094333038232289775824316133599500140287953387908439748222792610918862112545453028454842572324805661480390526811453568620450035698360955948092355278604968600529157268658458946041367078520835333333398185486028175434593357715311435409221462417087244666972484895331432086910483359921989924741562812616088934312137823274147657186751354404809187841162385816348381628798374937819740732152676856080224835244430806800174696687501037372084245598146200409288789254858434541608642127109846767423045674475409176377991437028438231277850992387278413132809858011035010391343702270277692267879105305691713292233984313256007917929370811894051459434778422566667472443657463588978446332074765669151147143806499548714205408235303958192511466178279356126359064029258794536853667408604974558138768321015743987157660876500809754472765814010159722808887631730088232619834315905562677541929242074503660072954572663242837639476984996743217150833952295771756608280478407385036431125972430977478739286634370843061976852862574705115555852714263791845333584488411388199620646433802646545169519775420646301780905244568434558478338538114394215768193963633203240264207516147587636281244477164049852961649852775701533287968527582718271046668107648256714308810438066685387592765183765942790554712929175350902085637823015428277087350633336355921449083638233746664555382544896335830405203373507139709631500413816562135210020106628149066071498729292634006293409170803653947141371617468227376091849661640170015182010976910486010931471022595478072439039301183072446422439586979189622171068418391854355072505585007435136382830493529825018225823363322142711125934415835781888773610356049077939660367624393304335716023202728653292863594374976962733880978722824080307969414948682375394046688998407747051654894816647201752194498645939041030195334988766199361745213874570584557009232548406670138538631527895476101787704835021912276450157614177493289570904486877068743529051910615548100528060174138721307678534137137618391909281617712866882386958564392925844905273289485332442475106566437201439053763940931712638818300411625219253468653814530536348625917972576989295826226628080928977455579152850863124968636852969328998400499708976458249849796183862116176758864679619438471778759532066644667605518721027719289458308554864484702418369616047640190189916259823748217513426808721846142016591714275295679411260091820158024340562733948844442108078951662478070608620719938947330621281018480412588429077245244576772752276488828206661557513624378960870024909928009919156190954330394460430159169949636992817143622087820801458073178541565898679150150677240946140059578411046452066541536547548026118821871417697571067399100208901424428196554213281831469548823374878043730710934326090546984103637870448769385924642378393366998890263664487532796111682164990823891932807504990604378162738951092742399521344355717500378783140756813048834937521353059049128080065418896032928535923199528836967627857314460815738862641965625159213178542473112643620266445020569835750266952223023127587508082273944790354587553256119126997016322417678811843862760310544349260643703107439582496896961459253558531207535925313033831695782151497621448186272722683780987525904953738481168672890248502038958410191978777897168795842068503058089613169186291017855842887311892201891950668862844600035856789547657371554134604817663309304408678570264255489866346215913787818775801553608248454433125994470871800603565487968635065078895109939180881067879139895864623418700522650513918233407173106248964611728553244157118276427308665666297085926581584176750029292755384040795124259764259084011184655355419283515683334385999553887840355621265082920181232877815156422482441863670240709439079910178722829082050584895773735002846354662300075493668542435269053116282814399679346366036912235151039889520381716350253194099190646819031216057797044089290548200761071409195124856289312409485657085905108356438979170268423851899978173539619763346775876711438519411202404072760725830614662176306332292140978703457985417476517637112912104656197071539126083835279110605577506200492922093678158927076579625771155486750577555611887905458856919652491070493528568450565281377557253295937759998237134202207078492947310222811972023777784823387981913538959993176723623268200589502053017518689702896155589986519638990859952901711896003799904961689041674962194668357678802580088518971613438177236995739907427285763554379296810550843876885851194622110679193317628193205343847953271000949529051337222110989714165465693761064054385355536427764849516255081119442935208191783212425772859543760566874772627001243956322906302257149865437191641791843285055324893256938819740475689516975901527720160790950374466495781597508300748313382801419602585501905921951915129991960696082916221535852092289443766136163188954867488827401810295631225844081472668243362002470894712110932676405818881048944426080800996170244668567456073288122833183642607653001963156035361773329937654667122391058216696291314669070648324631277607472312757562342644298639268626429508574841861328078397467131194682385138729378167969401301186145853284374792811784721797733076237871063482310620323634998022735859225070806533245331562359693049493200294574389505193971875976771353178554322812926686866944476958854356181878371297149413611324266768852543396597061311100721539436524473644181194024884548794723915031014460669710116181705369223241509897783053119222700300568008195385934298161872560564924357410825506045085647101280145817446635538918907325016547421322232068184126525343143401886960309800129494315403974229985307117224983832849544248970491154566614552718410122064509886631387467783909377529770332655640178940195559953142422360815285970018591286512986083344742111299827058146718446300324614843390458689930067597828332841041330716884040157474409362621734719995940115482485650824926695211739670914621873023398803911808558951192178181638939864353150639277312596401118366479063496024007465979800556685311380996115671908159144873994474572759553053931733945788201119491631117183049936738915295942730436655072873708197752513550087318952136388035752675995808039804789138998918783142057369134583952160342396991845991212571858284705649174696799814279839473170973824037473674481104290735040296694398169939900923743504345077011089137274859127941040809139945862850648222206829497045846652899299819992485384658185280378612107814391602170805929645571077607189178029680485772065371987790533207022578767674142077159331731428877849418305827423575335606265775146809463200523826654603939185643354409718312050408596172599351279190876754696285613826014801480342140312889829649817871062891801640819753626162387293750786548964161723498566386393100863806468796570402443559154490186968367642950862516128770035158137021426138439634855800614215955157516419430224225446742280432579109939553171977358551978449044097734150825766803912277445620942989375438368765398056887613581192726100353744366064306715245355699383462495331627770625768618196379194600459532329905777272853827233806691074283665940416628064443997307664296160268133157597828101058322833420709847044999074806152924358745048854420063024395245836515306085194705069823907671494812855069119319449690538736491476417249045849081585608284682266552960723591916676051516450970923582485466012332956758449731478071951519204523087379006146198794365917777815218380022227128128514795168722205510335018747806599313265056348090264472992886959567682228959856418392388115426558459892227294410608478035250997466665626517191025119047767577718811696121652311971243336466104630762644362894674841542782586350723012825120084285122684906009641711533120913355714157005458076225409909905513336416677866409013130480173860593767174725536494026455428883165461200179342751952033312533443176921406388529976916131897366324681821783031582142822582715021552367965253334481827326842450551458724390535616792523903910613232223724271721356309250074917297198509809926878352407329377684881977783062587331657488899043569558469452661621410417173584356924411369207185380215531999626328347013943525508578452293215773943972513900606339682797805631218457682977849360508068204836201032704742632514203719083176342551969440389656052322556912532868474540989803947885148410059163842517190627888259741228418675421596881435035596378717020540681605806006016665278073797634495620519040683142200107179608789875611848071558560774200335168766636030721840727929474248799788920973474280228895108490578468345445965470955777379615410327491769983025170525473103515086095573414683290347942384080182636595808956892405622808298786206474095653852011780555851996504393954563070883740642896114651885750301082985812617827519125072806353169412799337020907334128466528624474225091600562246693800632505226121909119196790273949734946793637490282233615546627209772017740354353790916228141145703786768973189467439624842134690209632930522375842297572305521288229813434825212149861075479263798869161590106990047933038674043239239785938210626668532815068798714988484197249594282283701164760414791266642115488481509342028389477573299783872448933122919648690821856657786964207594647630958849550018872515217264436431834567994132662372381424672634897022872077625733090373554931679359418437443980624528303936302123848464419355058641599214152075015915183880561076311372121904648607352238327142085402238886205548733858643688537192898907129361404962778015421980084074002452735434595229199624399712334563672766512929458895977783625356744496471950380239201944834778085706559035317794486149470060403728584219520453150338171505279577642137099652656029110152122455886172395307913292155938300052363352758546028762508814674280482354481198488982609625738123774079482785269599937450860709432285729154205091576861892690659500974047380869423180834432811753273956799666685721931209865171832075937523843806221906172059649338566714206396968582023918704358091384513374744120385531646704141800463574287099913143293764139912584712384652600284424562151342378245300629146508336671205852032374557636432648549150158521107602651965425357863166332150067171061157841769461242767368529021570539943356698279945986007692966755288294555373725730861193585446417376370313096169171281347183989480553070107122459161586135344662378437950913548299021166927469583363322711374688463479560762180389271403785541082361461345088993535430721598517589799630263916709306635961856062866028749440212587494899772609782169376774140579037684125019697034104407383941779329632955057724812121384814082232914563565382206934876604525928917932837938121647379012274522023095343444180501554296487998716532917669291736464371699818653247260215925057839081849269594231625987840167279735731111447062055687247310057364418813928624616883314023341175765205565385562906792891695965224429468392791703278207481546643929345353506811283043261843107958047215672935781346486978960094376713146938573127923591693540951588490715891878750155866711866941354214752661322341190220612795616914177019381979494954910368111804999174466312655182348247886136281943697190793533822631386066775770813099011253084663264676061004164360342094396257615778000542487946934416215546571100092200202283578215431126818064175427040874804095065458592776740517014965136529437753460922771607637288761108805946703142885060766365831830871887927316848039937391425815170316706004654280822887867408749116302600768107643962438015971247146310815329784622563695144483923922539169217210970869660863045397818358628355105841969113315653379819819936269920551690893916860634957987222303853837736708098905344257434921018484176153323954416141864076376115282398789653287940029951376552198877940553458142198923411552755000230687869048773143212779727165943102752153559029798752730410645762540324336195701402035596393003959052501841850438012641700050984117786205267431645318058901601946342114604990811940449934254573872071406870504640915521895913059128814269769954098369204854763136985745246722202269615528811716774003467853420416904781256615881786718756302117108905341702524287551172444095021569342785165545568661763576738860651636834238286902121873878679151639009870873018333792240047486595596794277812815760533533115379167907704033006403230412293729679586851187835292848749591861823139452263728041878647115923939150960858480918749840730123972096578457692672325718512428724178020650002298889905133334466432862967059509446068042275587003862915050353131542818412353161820006752220621969565464233534253889497409311630551902618380719642370816435793904609078096278026275540277770381465086598988053940055302281297999935529720964745519671364239066728711632041318849610976562025019499988394763591193803655443776615012988542485503365127708233124636197506009283142386557143447586983642755105046682558268503794867829792468516787799323760743853497281461649741733707438121182566679192155798545376334692923874317728612337432550937008102081809222457565444629433593057399262377385071870826768346641711135707559692982092614872050166448156326725530598180796517663990403787556931803163288837364979315610030591657014619960696251649833864313878403828443641456932714164115579428072850937160176962712549425356757660384490421389848290879039440587041686346490200586161486802204120677262760682542170706966651455286486643998606980428451795874640783253821038076023028252922630759766182568605622883891215170138878149469401022457533985220902131433249455646237254137128098288899482549841984505780137644664381167426606422589504516107129522077387577714500229243909761712420532276001842913154426915642812534725441377944178781799790874903430927743208099774927847081433694677521010477216889013221331386976700405425801683284035691740105476094861679857554252102319072134376825695562565932305494473277246207398531206233012739304824696447440712754105502603883769127387319618366798002897430324003141282467504662247891833535218953262326263902326577145451737255689274366009215458831537519424321195670662208242535086016738670462712808275916168797778380819301137084520607115820075998197015228489523003897264122895381990378252112346378287913671112629804652363456762206152847788719231151713999216600690205855337706942703973820676907712579621719825733497480634222309503552701121538692731413480233714022704140060254197232848850780061244313816464458009992696249508833060347519856970896126227487241327765228246364895624858530405813722824315087808232510125548706284112678573563033639603835024594201000956952395285266931509437188754817843481128959477332004936049248126288825345146542138132362226067746709653870854756620895853797958616700971899633994303292366330716191704546125022033086176971518084633804912197855714657792605719448836222938927670395720584816408352605077483578014408279572833114162845885438242279342657369016829668659562814258343791539979146594686083437221350695664183344472544309034762210612661211571339844630130525702825820123623150495003119416262866549435617385879947961550757820409148304939623421545320576207598389521091009723478203196536028515052866978325593538970811559729302271873340652107882989197354780332434035871087540289922410693458869295679269577667316509733320545287201700848900338326872845789825250993145497712418896022708682533007233850558587259671657609501956565674848530811329927254897148959312012615779584573294257530068423252714469447595254961686280469215182598264876177380317172379525546486687628323053459217123222529994720443105511677754437263833270909778775880204766529970992999404242465591118392513083093599738915721134566417818727789686597194310495775930050063362712706859090595482444431643486830745929541245666837988073181512408120291268861678179573483469350073295543384338930945025813722534058758064045848280621343496936683410697800631206318190738820831650333816308104352448950330301778068488097197519743287288670300915534337304214240892509324850548573679301161612787668689505212464903287302327988711237921915335673856403883702677910607660473985925751859764282358120313395672855538577658749551072974020147584485485756147636961261046276684791189606539439174641534759060966462775281891164677007551542786282809137023862843029149539743019032369408487469310005229240469340825027317026398850526028132182134142623675398948405490037475425484616292195026539094308701053742889967905551525218469203683030975071676034222540169474801715934536569247789593023691165485561858636399805355209560163255534260530664561185881868849712224752924086036346745150176510432081954601202134506840494875023263542541102484024467621932438040904806832937602001779869620671162420636391391724811508149267402721483166775889594484918882324747577871592450996796032260124559207344318840794351422754226011277263389037241749108681763727224595870817592678934558482098400578591761690417735003706451900086998841673494225752694256003050153147795580780791584834051843250143466461668048840334163864923277705375956103883426084335177194970770137438098192827176735245704504984145853827615610901981001447703382244742929862091204559494298820590534483597103941444488527552973904452393496996241754523093154535670437019744746080187035383900992038734615763101660219740345479766107381219523379253101117807011722292303480333296521329807689204058422785786987146555322209064912304401978941844509950924711080132252688920928292030428607405293497193824222655589866879524053945299613092696032106056686731856842911614561694531478546221976577606142366278803255847693296193044280695127204681540215917720581919097342462830719459551242485943393073098083595937308370860410974661181165066419342100808283359332544996489197859409192320163138905691876743530136416318748242311456565291399772554585928102577365393760689217563146856970671917318564988255132158138488466624660849438465197689432453828664337276965620336628130949260388237850869706294000746362596667058674088821983745650417748377687205293771563473262663881576646097986204550020693907153038188395111887468931464850105919474507487710139672126794664390170380613511684460462145262620497724438518536241721568204132575603393418232907606342063456363522441286251059255058677812973868096199397198411046286254908976879648564064251512112998607500769554564140990855599068820923356334716176372394612851549127161448251364210240550891261341317790666889328211334936487333871554064929987374422296559824436829188696160798450131167025638813065850789883410945584106876880138946081242192553580140280486372055909653834880727459642341640651884443646912310346255873614226483329818415421081711391407243528048522517361709872871973202188512881523893233679759080552229564474618972241819522254982629094385987109166291203537305071917725332291958053898791179430872145669938088116666978229946512238295419064177381364392550746521606069043714658760433065041535265591350432336393534651633725826798812441426161479029169234115711358432086430376553836232232738445610736762000531783653626495763182336338676144692482246684627075994746187192655401190230164225274423784396481605186062703392351523100241495899794664906761337077656274176706990460506698017495169762013170332201086344993636458243745005870681618303718421003465336909757460848301235730878585646733401724774741472508063830372029407017378746075787416192816557097349736349680173225877136543352855300235344177233134309631377902544450041719510966169236113326846553918424410448786390070110253711910265631040785252896813363272343080226970612762737690173747995574209623689230483071468129440760334902965319127568036399231577953609756083141096815369809919404928343643303210517154102481171662919005949081643848888444026793241156254411564233458147767704254992127288423092278319076759269245484954301408898767545440279462760584192962332514008499836942192939210120250522412385027719480302067028345554837873997980820873231730661809581828233414229642083550793609105836354776964614139514312879968856514384938549190314652023560925944640293463918003279078310293914008613232165576487840921431392280741424407084753134782106558058400685074267369945346664446195745927037919340406448103529605204934967309561773983604062245959871693704735724165290416162242388863896198898001547596389316424098086635957071615521410416460902091089449981019603629812485509036390857282260791357574410371989993869707539953640771168303528641782070813012455650034177338656209714810267560993825148610579186489127111701645168670316596207899849459306061140368539167055009971975344271812818105661614712795931758619031346999956234984943009417708719681405545006773719890277842696553622139827991762170041157300073740764933263622134506588916190748721241614064782677886299544840210236431472648392079289534013091064597204660680937218246208527635791603905296940319215733948970669384827324811782659713807979467532544744959718975423124407564909122369904978494564422852318557637294460996316765779953810512878451382331078204537446781452118676385696180694094280846816427103217324795098022111301273500922160096065707714987415184447565338880731143100277081946200846046103991636875555818895959617528254032258979060287571562756161181738250086717938218031580257381099018175497551516882660059348227159832760453051464754971440252884207334475348234031646050568878876358330914724040060532024181381851663670691041362816307860609637366519572400156587039631364413556446728564113262408469229484604366339295377976112806827296080220326949657478490649135800459091805318578492285497130679832813834980553875350421216054250692661925869760661203526268248390049012827468803814667544062840338756602709924544983451441354695998877360108199542693527295736522891765669151106510070155718611748387944885942096764100817944533669445941659450955460020818219898942342049702357826337258697399246466329609758232968777100597524287443459766456727210508135522790073881872426203836661745339397611319969706739977553501451161411734498264427261315749943365267663832557521199626347725320644147939258382406437409216282669361401909488017572146110073758386763892203522019852843899550595387153432240045888342170184080607891775771671323491635892768194557307091582776219540785909392264304847453822988401267176360282565144025513846077098475231748056138494354969161155506739504242479732404825996678237293345473078033125132984900656700837167652365839627710628266936338693178162367455672801737257477278878282224307104862513716321062803907246489432117470561962228785215690652337116381844786082841002007664488639020639580165686139011044355633428209439330887852957075266889136633276956713571199589430275277114193199539226114145877042179775045963592664033902873927867639090276966635956517980381743650201684459137667950885111072098727285509886228825152478547978711362763677106155493526528844109540960379700943507474245388910508683741930344603747136955268263330050582141686425380622574965404106221014290281303916179578963247380529151896292220685664970577478825330385804366688928334508512969127728821000375354118139681481468944684746539346522390269457087805837309360805422871075324588186104151033071454319547105026961289422997090571679964251691903056512098625127608367555381613399456922532651430538900674626282341698673436703850398672974842046265899601391528731175560026083466581006070413103893172376161358587713020209683904303984932126141498483171230426716087427542522819126020773819095871795200017608900394978359761068208815878426558382311186488425102391674650104156219803659090926475818633136935054048932016120211565599695530748794513742301174032476041073976975675838728775000753365549217765984088163752173642020435812553881169721561789590408935014765121031671625866607684276425660388734588440166760799314288112002873335045653362547416210926966613688072929779049748017074561430932122046726916592085117725701573923865251147675389568544294948131609851345823606441300581989269581374131020396657903553885113161810549402003488203546169923422825586434390481912126227253403569078888257476741418978762672126377913127165448683111611527718583343212281432190213545836917232119586545642995965329941910831532575984507699502919927483371832541858145294679083363463400296057786617245727732117411601129922683478432724043745219181021045249242295650541460500544946223083144084942188048601933213498234619931315434211412233639578804981949477341442454958782276847380730387022987108436298862648187842915532405150850899538797248167995180241041056476068144279414715822254338417571215576604973863534628021049980020955990633570619377696061002618815733194533338585233829229543034333398238860299113725744792921407846240032349110854597273385319345712260318093142989514693361768406297961819781105164489242968947560437564859186084211995027934667441782196404060705257480679242639493729491646742652810365677865247422812950740359236980564078120042684792947613166285817707324926610356396225466900899452931828881207368718171823380618146318729602258149715353374815203534823201751713960089290688306382227583068373423078226559501788574723255375710393685171847381435580722844701961821991722326636853373710513896216827342622328724395235893409265465486613299683279634633593009744370110754484541777491250755929519018252343563121605746869714572173687610729856240882470812568992908190605838753486994336950310554352970391567563754616148784639944764778001715307708697041083103438402108560160839853550541383652842323096922156484669785961990617669420401926762251838158860049484339257555790401521149074383437289100861227591491213726405230651336087883360996682564061368504298070120416436003679172216316440810481896690973159334117761546005063845277519939042915863384821052594604941552873652723092553158870700444284025407658841501612336900432089892099372975352697626796936486617028066087771819864235136477348634895310153133888956536470247508550098277117873352682866152836486912985673599629493964738585842854049172001679839002884350002534936996818995131613078714300759132100394112433779826887692797186527076677969103638164946883992862136749517059655321063636152429014111272835833196774227477416207492240232903199921226381785133083334799035503078797536236605984030500275449859337587853774975030698345622286998592623547146102722213441067680962337902145280547998820647348028232829379579503468655463389324501419920948930777835692398385887575821297875153468429080255319242594146663893628118383055529730971655182641187183178085553127438198872037377641553771854068208731014916657962351468839665376630634733456758657660204825993574257662940024780537834785205037504358648278144264546556890997115804491622177796270686837898739505070689442925078757491870768892883021466193536062303589454065760569796113741130897303838889742420425136857075916792037980261304879317651061917890944193535154407218396992507999080746005821754879885875341494583446783147527920346507765688819910644923835588815246311003854049396150256334142102477995199474523034914694153500673910233422030816722274166912980784880627661182202876898373274024619420775568967681771043261699347319561698252174775023873595884161827909036143099925336589988152452432401641815537756774176241407971422433348878342063630010575425060486418322229010486133185596684313974822565414865407397450710446157416556520991672231447657294715402852696549716645947831135861381706620017807647708892567682348864226190364605748747718030179888993887273085544130892001567362711553608810684356024149509110317240470766183503652493510724181495565754452396835768498971861981599991397978749331896923150821167901848505386736671437325208885440637595496186096888075529439622849260005928071041654415881103377854278645654313100935049207062288115802257068063554861298337023110647888394062187256409097396905462690572048715919582999487213940957038242938425838294368524539078359751660468037059428214200928104759197033947178207164247606042044761615538720637757660897636219100919012489077071454424064824483191773901428849447680486801012789845269334211181780441355537415210912755875992519082127436930027124596005972184857107033950819933564175919146822912754693726611338491127207859967086051708320350437515673151329196067253074409732034625538021587824112311947763131956674559360363344498589698434538434604059932855670138558358803417647225006834324679356329595880021613234287743158366690031174205336354524800859833291437527650167667291213645676576660472557900401695346530619988795802289005398271503269897857918043120724577259331076416613189784295270673700143365097742083791720009774739338450400595154284488733399591221925861328452282888868348956314511389891310492290289115840117554667687845029268431709634471753749473414837059760761474804102076470724638919121424151436711629344666224262269034071144779899687795762598950846096154878136264533411444802479913345860309467496821347690565133011219950571779017549586492064680530421543710948552453375662395840198256299378439664834470840827831786492079598220664126893149656267149058423761404645620288451676479162566246389487402553608675242337609137287618248787618710356903276112963553200001869757696056257505133471098203866041282303400564966175720699333662781048802292399273771740314393870584144432455927302059179940093493230786901134244155873919826734213288012990364464360981282387973105230190229237289351535693622906556323179641212327997176336992883144945238384934413146110129001223237749335395729193586468515699646566516584089112647378990964225977977828251701733994022193369723771970830771201563710142338288181341937347546965901644750359200323828934359786664794820066648486762638505929438191727066116497440507578388519575031349035496784723148087998256194769568704966588402869468683088369631033394551154816384208239436224135464995008825830315052748158120548398765624333060938698558333819725925062276640998028087885678045271419586183343498377283811309299395112410374401465785584573378889287572689595365800163003460476176273514341542959383979267740045421801291698442891021791676961279054588116491452641413148572508091473822660383294667856055161576179078233012615762592392893777826176390506823441235358496969199554132175639612129637909906073380420007298214738647057640423023429203380386127516729069741445520129085698393268987818112593170345758818787517835746339658410590768252538475884932004573628540826672347797636785594851289037871009769132606783867817821707124613542408925906610911230111273786677905238312470194511503165271980196183817299284826445520176626240561720922331893003126305688318341586073523784209476467370558881003853741570767281019753422348406407174726492892248206219762691885649220995518887450214459389824340588761266309162006644370378171940750034999127266412944616630582400876226746378379157630625875833871730127406591876138177493729860675106631491293526755411613993545023735558845105576932325969287480618193936879639568514922636033710542515100183536179308573723344956719464572591941631884351760042071833358674154386857237202125039881417928854966045686293191111414204634691417178301129274873396531708010318322578259245672794936560982031841041906712651746129501593755701087185278873455342171745596173080210504411012120469352875539231968870144968587146556075563056409341239844330995318155105886554831916044521053220794316370461967051396940756492329675109054849058302833795976385904419006752046422447512149255801230234436389753620696042601032308517999130806096940957042298430079277484505245232437651245997082872410752922530909569606647580112864955772353228694784094425150072369819079867185974806075816509684211501774042958007898510233665994336420902666227757700462833522122342539453943597764865561746702332315121169276677401210995529022040187370637955748974956973605987663266220128869051087158732506842063058436258105466886149298864846841140426299615709552029239331821026789685384447249043423610619873234439285831499470470959603301706811370671095468404761998129949273058614249765182797834233493827872379658992431311925111402519353323320302245520482873453463935792965123446429868811298033258825951929245753650241523242406138516713420446408087787855290872007311164953869577377185069981449756456241673004535904914507826206794676825539652933715426086439995433684428198769040508181948974261177646882834334768737530220948716384885402714919017029148255235979819887389721857212354600800435867105230578427321861311184066549871495227645897882580368142242442138967315425006692515492693324111976299926147326263709259914984197454004901580220817398660069321440165401735551973790271231657750361328665120678855752257424182574758864036278417636494895971319943107814063912949344610831909195778557847970398590229263543954076252959262739348863086514416745256512898213830374269691781128912733324967427902268996831319162268728857748861837851935719303910257558641253996916615588415866926218869736334361601923313042807505162381278380180607505003229249661402169325791466481111559883401554976449829383126237188520236802087168028163974226101827096325825530997588053969429573102446796618500323297985639257451411995171811034976221263361032732477729195127100131498731327499597350088497320731359673921046426785860766108669227469893788988747558264699096016895527411875169903295604762944762230568180420435777527975892659027200501610996714514053745073189437474622952182474075501380967493927581345431471915852914942934789956655872962361384133876101221650682899898881509573853237767399487275047914064771589935321823075031637321294310256740640787069506472637374265354063817883168198193348141436543727309440054907986666463899120698463601962560627683379010171448351178839751444927395001083806738193164208056094436033424550510850162475251009311268662913572054141608573116829432504150003675497502197934349403727416279603508095212695293027538448834205401907045458652514431116072885327059176487869764920718897547753443053477868306973623486586504811782384278010288097217650352069101836300791507028601897174996592590827454628196117707688345058502180568062800003821313962740207332974036940380689310503596560534666012274590705440905325801203710524346575640404923700032930238636857701596548529639351988902365425925296878217517737576122694829170604319742883851345202786561619674578146062880100587189138354238015613378028053703987588144667171009399983619495740788376875001750140807690378033389172572054204165768010009436071396645090267678420510725723781441910880538217269032209375536806226331182539213305391633663330842557744109455899705846805578719710446831529159180455876884255188266692343022022790373682986895456225089264935117317777839005065242766910838619865593796161208541615222993466566407582418742348979268675057447667831839582502575447560975368803236941528829282389960833838501816181788203559799759880956766068664424856303262646743330061237140965543408595453663606218548564956065994161567172370506474075505943141488795388011459398521975939669491482006009539690802006428768358614319764581598249680181393933192557960829754226642459310079260434236176213923088412032565359299455923285302081041811988214772387839013249141927150772839260670406813504792498782178578343559154571372734740938364747111763777775428440681898672920742927111062345114733651713805974171235941178994893558645520023632788952734556854200064644211396059418018513059492249456559729870529663478979685270573597082719148280465068776131825441412680850902450613241516412386936959100535782340752899418308055328449756117237415167129819169811781294694975375286937022690514430011362151131580614381190152241394768282234240688214703742173231756063750210848857062509366730803385947504367708767507442349833983367066153633856432977898704093160834863023578608995987202901886191655960972662252373058426857151183790378314882176220289243237406197084217660748327885804437155144792298583055493103359491556217909625877227374022071351761359580567666939878396172631634898970146139646784921018265821678932554123979121900618771105752007054473221500549865999364601569624626612859846365492317971136999941140172485447498799428186571747182244957464109303224943303416699940486188997928451652286079228228150688304970920714357834554054204338609894779793333056636225456089387121558065694722055104957301562295877898897930594968448633547727365722465659883777249866632613031353975553513181090049887003296305947108230828582134719818520420693791239715520965037819054720497816663705217622678578349516304629234869281441026836721817783865141637108914007475399382325473761106269408746311030097076557994227633630930080979076301330612822092431384307334158584020682696394931750548379837206241947375091079827338803217908484132698217076616157418756047684346414758781208737362840389890821346130249509332150275629331229506298717940862312459044039302829185263124798430969869526847866906942918773781502971513285903147843861800677919710179216443805076194195098257824034599251092679811614797138386922752439422025889822281211997479457987791718825247648303547844424763983610209747045538407115209814235120325113162368393289816658366095315644136989079463027833209972847874054283702594421997948715025449131239000414588578931799743568232667699510759425620814829412801368772396001998257703161796729350791679526453838179193827333449638253371861898990855213000349432703716392263695762782557768119205533969481177799192839284390487510756870313334162507842216019936552902777552365851072050380832739300461786093897777912419491127013644799982372870913591165567798583069988195716725233916820438905569108677497894183359497273018519909366730586144963695393093080808989596405468615448189496584142487180791805437439810073958263363935665964363248341610442679836805181808493299755492868851160042962205287292676575462680327208617532109786111067003560909978587896412452362587170966292603701379575162511258531411162976977973675558736680737119544079325622766953533355190672724309082897672775686638469042858423942920213626108619942552707837833939955620300241989161301055143048184219072323091620285333087514629352559986322832253976781082564880011827738590280837149557680324322601937540826836569061061083385150601289896480013792002070938846386314136747749354813456329806115177639442788776668519828422569134405567852039490114685152958081026726309381853696021628063412630921484829856829279601647541841265082798264550818711264128775450164157725578839423096635842810472260096380313311877859503350076492464284220393050767228241745969612584527822904652503399068981538549162667141290234384061343756128773888538952915232694277845685907678056687708162301492658629004983527964142089146073887479450844164255059773200425671628890638634268800940726952599926520724858588561429712260228234099991572441758167868256253928928918186201027388516301727384255351368626321325203469377694709541048502585849144509359833177237751067339518183925493870205004631817393102640816552609748139499940018012635221920490888822373606555120456904967564971975275163887966834789191554025597904422662290413377758975136976260183602849708669280553056429344453916774405992395023480660227677000958366687642706716447232840873893594391055431354196421498524792705455971484263861385971808255451753611391470275066762262805771129843095918523293332934099136234177456228654363743417829749337077682239394592951819090569889956837246839484480688588880423153708869672528182756064241286535173471860921564481324755806210579374537909953344944153390841439064397802731925571396617910798403255295402270494051186732493311090861418362777297144674528252081800628206558886447546278996619594882246425765236773587758037424434982554700368709025507811340922756418609762122269929194934310411174195935017044888395668375033345116398585770285788010913137974157485354758288159288344109048408138396644243962931082341876652006287902529946968112110365571220999258317668293858703483482951056627842961336994013718943687116666030053431095685513726265360763229668622218349067522747416556698582558509315906777022519013153465536485556492017427461803972686302511275965855533247404043567377225758258746766545490602161660085466282256684640200122829870211068693133335559051741346789009268485221045678543209457992367222268282335296363981983125998123800446409054509784988469553277019589219449762409177586015631663316371598087274985409663509370157437633238649011453327577194018173537267269810311056009062025596441271804851904203319180576033073908760677251145018819055546172459452326211885056707620736187787077411058090631405716786291135771318038795576300080310668322498999991783628293776226430547056310516149297609665970237024838482592611709494302556285928287894002223569866631326963399838958159240888624808717479545609796035571832415272408377927787986707284023543362357872549331995862354318548679036899224875251434633993175223823010203600853498363787621807490977602936250159162057710219663484122689649898498659954290070121432897419781073077980803626349522289990015159798090123132455732176926809126683545792219972887712628502213263301146119774261852039655354140224965116419168744854690640596239827832278496542897842340548059816864893830378545351658535908296989633906369435637729169682805242389094480988242105079131780073587721992951417357733425904822404421493941984175126722825592669357193726581944660607623436713737772455247552484345374767935476619075537685980621365595100766509837514583997663343417232318684876521404813154082748773267665667569186215270701829673168061464968345940098489969980236607774389775621808833263552391785458791331987618400534614003577803919203139529075464923909440569483209254976605866717508456947879855041742130550637879383146978047644876513627529029014211618144692848010440386450498765044879729724826977491675635553410216512541869953068215062857588051323760065701754881519024133090511369478572170350372439762658385231415366615224275927588746635612754683468814852302315795102265665782334960060723746075279426471989547059887728086095059205582837595665472895415341355909018579788628080182070107035637805891056791302853163594372808930861083917033654583047929642538214382558342237142316580583183450930571862647054017473993465549023978675357664903742023591755083998300425747800428666796732675599217603852771732476522236848392332869052422137597124301679379249551529442797134219016494298667400261146572990012372787717190200464919788432138174030085451727889057580687674341816950789074768948594716476211817852231434494007886808430074627439369187413156499746008138735732681736723097784241223105227840035580736781209423980568587801894369435386358255789948574515561597554224633506715055881805336087000998609906774049547997581755641968743041119115808648799320892188050080712425741414612241592575512942964789601383068423062444809151877039062948850907227476305445907451642550430403370250488230273505002290187866782773797313769844388491677491097794892563158890971376506842019082767600437428078806958173988853849102402092904225833907269957834019875073573392708336396783934518182745537539461907632820828438048171922412114369637854372158958867152652610451855521356961893682277318192828865942658351953456097649815677914230630277285674796568208848822951993542348597187891247402659590085272512405595728206035646818386183217337774713428626919876157488101951787967403027479541458011036004458824250789359630227626398632190686005795810175106900199518776249276899745817005621018866088682164136906233184550271104148121112672716028095083382676741669548400944192853632869631433903953345962101380474165742781134775288815639859556828995846854198648018123263254362602413080972634754174873929350682263082070406744059951145423778250449948141231664652092060277837484027039720880606067182877653539597438162248049774066353812314598689358173102279711713131341971790717635322382040163116736732975490798148760600240463397220260946907663018382786838836514258950607819804489651902655635782883706707775105852621387948355720133631198481142495145389468778900609820238042707330312371598191836405744034570610121005284233544262970531601676252227056817778948932383103235245682423209511909629368219344826594003172356317102609345410047008873674561840704042948136339466979545471580005370106309985822377888025661483601593318871897457263674545781755283189817694968630623259355714509692275449951151764805778017986836578243293137821372613155786665524065404207174025900287064292068203651169607254220801032972886884468889653594917762406625641045353693253005854525592321600310491968516453450679626905417158756929772895974498831515376474178249354100435528424865759951199160804926531135307977553921792552237576242672471129080418957475319835251879131533877892887902178429007742864345553322952665117749478941706231809668149330878404740984335721298056702141679049417536393718334466797493715049118569537199608023395405335095451423325103632421778027237790225628873134734809851220903477922553483494458341749069587717811590168982663685422317450079065155991165298853796807552629155887993860199288860764126641353150990273794295291191297335836356721819186100114860400911901065741357812861020258614513064257591186899876827948408672729630620186908449666980050143204229111276452305025484352147405134194896145546963713012014134306439040683952880100300103462846032336526058680153677786140771808778190350251727944417850610351947877298902799022562197355099337849378710751206816513501052966516522598341737651251237315599272596592626057024363659260724664657028926389502128484319720945359485532837744069347260577196295026609026462982569057325678882770389412829726899193875530593937570050357187697660756722383713972021582262354172393042913842067672451160220099582685801732730954766080948258440468260220030356812114301953055615087927916814384355422299730921752765846671316607870875687084607196607972361856058462713324242492156588945805541953903282487700695214712719414126780658720952045187456957754097678420352931363088516725152893560081020152492541750945387343672499168926688658939394949780180138224546928334518253848532598679248016997440920340396003347072399901631813591614107859440727268806267514185588061430009194224407843181220389576390675337467392103523134363482708070928835257419839262998669938439629074572295291378291343013581828848644289151125610839370582687553092660088342041277509302760641428886340673974664342598837836671837897435203555716924824385099477484050221080408945873789792946620788430933110304797531583833851558898756507782019918492106554304111431754259283175178914613342283052193715777564277103404225610660220351376774587568354422842911662197512442182896787838117462624328662264323041078846999372058442218995804893505479594097812529052823958302753532363878891656413698079054884750753667001686731100083924677093555647273641539998357975679050936047505094622251700456383604409784605359804117125447243510586337214201343462159840972215207696790477837781048675187126167575655946380224715548844090501840590094700233867821933405653592410013675533156443762449860254431186286672827351993293868573112074849980871464001925060940671541373980961791308147693389468899470068304007259934677290193995325567121638387796161866752309189023911136619188751499571163162888539083460008384282501807109025929738262210335849734710046978915391141872997182542502183603821937341417527735112329789264506773591907229958304697445333083699516816273320498684702637247732703551609329536347130402476323570850572947848160516982835675775141418250001034899569636260316999992703427672195005052795630463725760574651397272059213522299820279901636851593259169232227533588409923338462546773981626819181330756507242624390418785966947856264290257131667953721972630681167882247722723139352750173744090637181280818380581460064327638495878772882402310432417925799603712042442638027868814574920562056355035191329023233060063835718835819863461923480525895204258796673487613247235285199300297193501072619032933244698845930840520610061654792946926915384938456384329602778553411040570931005786885237305756264976519121908409610997871701588949598277082290136895021790317286787765800366860424795009879874965262419915795413779219446425543724363775058024079604911474670686870839595572563946854492287627903655767281017076396381110276083869822201137087072426034938069384929954505202368599971257823401083769616129870474207802853572044795758559669610667109199259615241049049542386069937496186207516177947394203120658366278722233049647630208725913787115498113584814618599616509998586560217145843936551318878309510725777866076604764000769233746377796005497947956386049111187014207545260822220438981842040480268435087720501800681582241836882442988851327364678618411558558403582318728750257558915859898797160041577605443119623969520791081389211467539249151201420365253527309236351438831385616995635057208548351499813072529953783493368084393804705637093350112073710616171634064395890562038927851202695763846485705080089813900820502889885475709559138464339399568519297346651829968999832086310135663526952806279914248666887113454306436301068912145229911086807925002382973887235833162401785561823063021884048015855624506810520739362489438756087209974011165455480286003464726108498728753606992600011539353063268947454272832736120195244023530749336910082331395862160095840177890569163773935356558862036957726760902520457181006774910396661843500177344549791588464025713553120872258838712253009076488168785882944443001339044068888077737730176748675243759756190227656544112809470298178706451902921628101448459258666136349496947016184043158207707026643644318308131659053313724252910361549211349309541216619205974266677925001775126018821994556183961435804282267945851292867081793197785922928993205700837370133432566143141671838382326330067825767466093176035104933032340277423901032727265205220454390146246757013870913178303459832341841623812610957707783985265936186974093843513075048523760981338560155285365665413483367068257230324662828675707674756117432924099488189367779930512391514778882299368880567287006751808848674290207722585365400718539479745745110930785395361404473550423638981082636763566671155934745914858691772523481329573556682835020912923542407819302555982400529251716823621185112891101452113997121833345653330032348404191411898999702908413366436840620806452872475032671949322191350487565283731337003123965004363012342341820490541719653020429453338845330898198560172200335429842740160797627703194907230808065451884161841408206909937377296509708562281808555134034444716753191533892777138506086553908407834192348956408910712257659382824830885762583626140122948699190672397361429845649140199449929752331968304157015590014074343852644372217689463465405516954064119285674157959186964921778167886632281328357017460616569539493074325091519730504009776135863751395891133357440872832794193955186745071920604983750383131881507940411446402327409822894969439675990949645393140208806084051093493382044049944371725383077018454606690346576730176755315668206187603503306767829508385051100488067231019240279909904576325873599917171260156454001203231691951790118253987818784528903215354833228620880336718662136710216245408809464652296932172355929432032559034017830516173616727592506051132183445215997249225133177390701795598469544694056856769420720782422675874237565465900446961193498553472133021662904056989644794546981471930902309490859980950985021146800094889211156400552396677517328376608731698313350539474479522803950061880938592587167848913594417127940042428997862789020377712487803575038324831853790553189413416253008949668276783585541919487632200422777260217365736318145169132006478006637975360696764955053005727665811690305576212752128671749986232931668261657651490820700669756031118050823461220879004451590238915305914262178264641932185692403167902322372426841037816229028159839974630041237190808859365211597970537344151316609646133463512077151943118584557976203627975530881557551617841111794520691668280170280491393450117715744651635038206033052003485999832480899304122766821740580907738645168127072182997872898633196394720632682778795002306911875256400996541054446602722299540398184927075069684202521449603568059020346562934094527930858430630424727221152277088336091184108823606692422423207013398157513033387343647394647613333925163174142291386074946067172258473178881675283401130750451639052201560965503110305209844033933995275847910216190789866002005627799496194240684176164076646541376911043716313740610500368193885820053525193753676062044738483404687419598200058961667593674684846220769248423088783276429620677962018659939102815011042058834449621351190944879500154979965816565890843584676446330580574382000366610262725627976668414583927306796519615964219295921299040006881872080845025761189400358316542157944895582773299443920151423345830384873586661486725107127752478771578016458047810330894178103955714424671829156925873430794813296424655598462632452484793198362289284286929984012361283311117375412647905286981102676689444342969055173760760099865641183962934828294955388943269828441370336173924492525904454882563034529212206006102012389899903416619397302479157947193718948084385803466173013062658316331931946478355301616999321033796006352240202519671469857122874236694041489335498081119685379518294367007314022052473302905900025674001417478397681685972413360178172332982905406659435996081361878352765356908828441680465982653707972647778591886578330981315940640530636663217083970020348157520145071743472183077413323873689999169456220490193052151775441607750462888380861184458692813794087535721147589561809261729807062808196029197215921444818589378298210049338588360002563104505021022137234139382881212143690474330778365019498409309825858024378118930548809038980172905590901158753009373221178214921764393124526875535432789279915479662979374422684579457609925753507518606128234066131116662087078339942110648540652033743648413120023773598767235241417324333231338575843573576662396902101757894848292561588108458986276356015714058322007185491063913818663047267972658043164028043942310499640279093591742117774307778005265572838903535407814000406054726961058683321314141138371380336172016813091513475733086534699044422393830429267884977776641325897035569335297907532293630078958940023576520705335906802997445643694908808795863276843134886581289230552042074981213150354661240002484353699790883320811124539319073183049349053079560732556159996411087991802310460687009284813420675949018633565002217225575339683558792971569907538855673321565135511628499644425536808769453223590394049181475596286527304377579483525512340120153702094473896721422087390366841201905810577269488782843753312922191306551018499327839206588619128375393883269007284754363566305849721222480366918104540652969036855718681768381100830901408556653580144772692370386558839164161335171280213282098837741486268216067710699220222262753661098144290714639562530546528199218981475371824521259574469730449177712016562113809426239936226403586686519615324656949038638240757005690742910828980510936141748512567150980234649429439511354576416246973425903851780189170317552389037106570978763214340515073411771168011346104771104093513566172613335860190856286927528593748809093487564488820987463372622273959500015402681783717077986290052225172703597891276338421288121826397370977929636833270377302843342656428363280900612511330135291157494548968268856013992028159057176362739733298558311679663322480442417913704975692947060278807852737931981065412756209035081028515440256466129023614435982157481424627653727923494131681598845437037753610317150176127638770477098420206595861021031677264201554581345240784362367230400816850365313440381720457915980587238029682917333605290842515819971366020554575861427191726898912984903080015094134874016224918960697845426649435199862093805310525243456957951187068860733161148776326890480753145599042053162294854822705433346296901674118641024328544899200768409443636308968716127472287190778605033557012048344533210113774285398870387217606882987520951769433028892865077395530399370891028575274148609083926548601149776135249460211894859091597834582666078199612249662299149811347512237805910367921758852586449136656340599094559456693246625003685831954817931471830510393294548136820333147178104932302530743460155246763334723878611413796878955001180882443580590123088001462703902872066219927737975381337001256788922160954369949485126356789222197783625316317355812406289900430214975647547190911407272463315752255108717421105603169424668945722378217072303688882964500394302164894728959255900877999541869195779166485422820237320992868955966689047225228476342039581474656975822368952576856391326278030715569428412096974592030927683479401873699154977258362186391439821846373295946739871399009019994132278177967141385264158666296522413771239851729747937971472043740976882399864433453126234914778737109237597692300906318846624056795604958506567120181762106729703689702957965770928885476536302543295285940783372013039501638655515671887987604138120443606044619704489394765515675243686858337979389190076641144682062490837511747367639544709047778113888728437497427077054346413086518291893001191581274369937932260225674141075039323761819476081168319053390604545620554346191623715647048245834128808138854341062653252099714433168843139422734921268507723513325260927363626669006668599313802541547108680560770769674378801241677802151391832901877812042530765169942307114289006149116571519251507359832861851335569185279453835700444975595229445165440406245843943410634615916571075167249592602764846298537120077697808571037709011560577058137883184665354710529142552376705009320768658350465141290850157252961719212342108609276838510165510032361305978353121441219312527620152104673289769706870996964272421290615828851552606168750209290910659628878494374473670930184745104968337587424092386845967874820607207981986200472458000132174287161597788760964619290632738671013870580091363330175716923519274969433603049917686036893079677451335160148646143281333029772024288585311474507310353864932256611605505314528226295568092475926150932636975914428519369654265467626701252852791855111861445214985893344803117303136858768678612887635544061327846109010690530127132157517725292375317430912378550046034987040373864207659920956514970336391414645007643159709880780804966710839603098992344876704375744226355259164690415416807604362919106032432655757218859871147554062427799670553968564949941872218186073574203782396033651641219782986955118627541296106868002057320048251245427647677651140310393097313710247601787305062460844409198839569723839277887983797550701838698140459323018025327607236088542578522297234158625725980299130942059873639776981954803642870199507355000455849930768579153388272794806312752583961163885479451463154963116279983302460444121933791753540788893530462614780646765716930743634832986433790376414509517885609238039028008966495937650144906275073342436274197863087201157752513711927316472444594065189243755783588089494144724910271525984725970677525427196798655303477773367922550238965759874621701969178837213814126462417250178800547984033431990973400154011484230783167090897503171609121980051332911574233260825438052354514515725111441579180895739226266380990419712926715444166793721086030501380670016098126998671309970572999887440131198439024187731463394224852450298869387786055884913111329195466667795335538691164047253100963912149522101810606278878331882430876542685684529519547330818832842207712620133594229373443387888818081220673242911285613285832732434498126366867569566530406419977922600016770273987690279632558989117819996273822007805195514764750660998730651770286482479954948953868659017313218448089515729433778692747685710973921170967067826660048823068877919088670762744098677925406334012159244500303401097748805142021164313846035857096527763229102417051492334242502898798523884354614278607399356953568006093301648389063916565777023221925647831025302924473506163047439404817404635098948338804635802053956213931633215464179794962385381281649336587400013702807180430272865465168028793888713309459972833532308833161033140420021849131724496151551899243180658852642949385340911458895234514049447676704633117586364436410884075611960989063368930379657245706169335492534833960611504870397353333526055201413980425008737526199285647580249462263952849572802828495312564477644098884225009402937461981177910526819529872754044287641837484528217495020111591646216553982923325882964066073629377399483721811757669337885978688790720238252897503403679645391490912914281955909878813333987068320959192944672079608477662641457592353886939533148137473689306447813940011435231304861138732905788117664696610305042653938793377546570021070382962606213063322784026410004369246232923677822389198124112227409218793947318519519581431841779667639622466113891155137004473507391244024131097689918621291646600741247575720561511736309073953332971804354212630980229459209968620214837681604370872887434796265138103128022050425375116530980126625460063503729914068952973855412112837223034872214116616150478668530914832687516429468272938667958506844815063704552318718989640420236351838022546098247134890323673286622775754796819530741247298926245894976775544674717541045314360406498309499343292430893368453737279525691170825544452036748761259350910410393169956784585152561677173020000607233416003012884931575510777798799301438959994053732313851001509271206435427617258824506643963643953105780486312172054927271096723036688390393372780302697173199462673711887370368266897210716401967282265193276586606377097597281389514759371483611264161767423251077395604311414696573080052806714566965667125916468700249446143949719909435783132332802240543137145519198209990505483477613937485262275529951211416313554620185284916694870608265224347849483017018062660531571682080723912777759813767949013653585732338697816912991654440781229738125114897155767465272554773127012863204179767616950887464608666143423065010496136830459275206380150470197874741736950449208425033534900977782637508775127500129888210186787543622973624689202274213884769051292083511258298477677061753129935348720661694870904655368337497818888602968648199104395025587672309234392608949161440337459987762186725378338409443636477296250802304677305588546363598514711163266770512121143123263327643207295533193115860405069941670774215418057859101219689448002163212957905978288398392017409655213745953859895055367758808685245624191445753000396054604541946346646027254103571913713158836353733851528187949247910186532189406057817010372325672751697175846003494338682137238714205663185764167825731481898999212397428579559826416079404217347282325928692924176876707044251233797879745885590590562201825849468692902771181197951671100725171354334399117225614502752783879932066183126135175023319162440760865411680300770771275063401870636875896908921955216170407930523025839865142548783406076048004419182713820971509233197498603214413926397618801438615701518657890325363519882100497259143817993607772347520332073673133479046840379644436201499311329517082249441077798054966635592063200053479475873697010274019806630329745361525218037154007967557830978605316725684393931316939481606721105412622604314067864483897136053118166682839097981290762135460142783640997609579357719606298038883963152627629030902069801386958217130074512006210305819003227335911800259866188814143580258221387084252731645418820737498736963992673432602656727432903394014201136450101721778693107912471287923605091965431848959413116535151351477756361479343616251490584370127080238103251075415252262579715881513741464927812976617813730833488299105967823614750497353668105041002779400379522699106312200364002376173124533545496765198287668824105592288186558496221052807460825607547413403872512007351274076265074357266278204852934313268975076357601468875796852230847239437485070303738811009089419555907858337308303302643047104535782833803967014862153525805522203197801446998713821721496564659311441945532391669906651157706702628562980495087330895671067655239140569150370008757850455911087736656594506114112024466638629005649056208727877682755593377613345984435177659745997068966044307583216894120955733838724373805670213201690269752212452351581671696262434721179537507548004608485344493974911037410917105340644312416854795547801786170704052706575496916305331781605696069026464221654948638826784180466280122166769702559359323044596057759297493825880806786141609183023992429707826440919032954132292420484629491460182552923328355898488268246712531668181461121149492637183384574181491469042991123465746106074953567741050205923311293608669845515680005271612276110658101042437856687336315085959065845135539749350049551872205962298105622448484794371927084318737601348418061060666362047496969184955735422266332843102786325034379990281127634148139241900932636765162566417899555958042399272742424754726367244778572997227929347390401158518191014982103427813477513116187499668343982240465606747900128869168033098639632083670944329041411613988135877499612123804081916152190480998457477883418056380765742964509844130518797352922186424146865675894776701386000439105828554394276493474571801579682379843333040920136721190399476603141440830121828127895407028142425256468125805374428319929321012623704311897933968656765738913519896801901298580159450603374283575104864649520141419306013418373193193564864511001314784414731012727967260154998899816153916344590996302701623908291096633448636197614587458424002500387305923883013721588406495569821323716629973041082146794919629583021626537811396415058343441809677291491845453370600908286409265360425667266146187859945430892007395072098055629687698742881425131751551777551899500387997921188724493368467907430708079726641610813943735395560258036196197222189661925771772936261676762005826669552156411572768075269413193867983062050748197717732013699601357109854990626946012375568832957380835951849895422960331373231501766066029708601685833961552229051428537890680182928455084375844242318576028974164750690465012820743497787835205460132523689908217997250731968826496721682147947093811468160712768592878641415070385929827259794337705965782862981089853706224519457728296553288070668367103863579279093415423702725013326519406939737896032987566342477243758204994648592828992506693037228997126229463681020947501585265489687183809443401359994640742040332591833471954885294652227440118952354953542080711827364264829647656519402688885300627501563110710845270878207416661705557165455566751877328692347216431727044906140600497065052926396149399869267962132935532621459522399208446019759929781257217080648426228875190587534719128761304012202935711675291832437649713658836317464219212912515903620278376826102761325027021593413972705052930222193990867894796391493416952872819062960494006032643971924847616297359652658562213177683936024723470239389752653561991858171674514126627100984942913903864396292034426703266580076189612613679590410436672402655922054956656837480429209613361627946533402294025349636807044724155750708666497988354545372811052755960674904125294924652066895373374889645045709852494466514586952896701288573288886174113586572881789096768264024927026100824530301347632251182933769501194672664697266001314765077492866630598425808084925914723253922898101580820666035045932507651434582503077243858715548352057887819179995413449654153838041854440124264271617137752947671124211267971360681988674054288756225486085715451001622214275321099993762678365450747390471145542212442630093597098400675644684453729208631940951076442811290344059360301584772405085649847965569561430444979928701056665426420127977227011550711961186521048324812810042686406921465361155035654038194081013889708302631391470435875340467207471797274660042577271446660053105681223050986452421005709688217034923595765758453922735492251354096400035292435390795154453034995213576769182857472366933615951969671129218390001396626037571078617241630171366639275537014126706407253698781369758490955117549909279145034023347753366046299090404176426786986351869374869128707065272990516174343515797972090341252577657984106098792685254871179880653438970279949021599855824349962906922042148994155403695983991315547108987850568589860055934185762340198121980084294024054842313263914712927239097580890181117337196962283494306123223155210244906259721621770381111983035933633712486025341164201571875981394786989026919478438145912232890641803593880253523805646773668850112861980064386036879141562715873131907181457334787359637624932356762634225094108835223539886177048179114493727035201403595853486276777019904505752166188956360780300013995322649597560818972880643771197211027522641389041036546866954717825673117782710569422068011431582347218389385494835914829978064128913565307256528015778062343124326905121153026749202611541131519667924146224524978767992653414841193157392883649397695019290830733919355265617844701477865021130209890842418674253091056616073234925646173669714647375342799583744311310888559983309153389031302490495239008891498247373888864849877157425007202370372616652303535823610649747363989762939531374506442498049492814841008910166650369869690611634135639400381595138036573444390064099888237599359102297666014443474340419229875106951923826107796124206916971844336678577555658075992890548933970217489845065196090339174187850800650492976956672523548680114385969777638264007816180053441853163808793265883360264972908690186180173525911281107267677880596957925779576299923288124815370445358457333538779194194402295407356693003946268513973022720716350744387712109228361711078128795417526184100258343465278365511612032211806668728443001479700502346168680600852575097890148505665533688578347389651823142718733656638852397710479787234269354501137470107945110163096089687261316126709292333405388750256755581901690001689315900403177087086455244388737793536182966394033648139850647090935581309481555883322338374772076489632901054988548559205427364932791442538496244478065628973447744482152358540644809921831785705108639546179449490807433726027342153147989177723320210465929127626600625886144828505096279524377281820192644606396164534214789715094057493349269165719232390590558724362452705513886747638207697042206359960124125880253932056266814247782338178960440217116255884444916096691433690389950612055995385866077937364641058422139992869059389440221593373273510910131844379193452620906928907328476951627111792827802047565418418262065944286369918540618433908840955640347656737431368397193443777233918577024190274890535954040236320795246647494866795146262294383663506719288839677921503984507075300852054405932893360623908313249621476383042859620902774944784085231556957557572310324710298483648212953588416214279683065688483206848855217584624326024483232740705171628838448979359426161015208510522612276984492720863563823836631155116556262569792489333339312978644623558681549123940113888334240830933757244023258880920962348800536945824262791465523781964934640684909661522273434578179243526157039472049026673314288560076039166479706919559130029451979922644039445610364234598477545659579550070296300094838372029054126200428222796553905233590797844545300968104047628235851157250346351858125793040060462708288414510944334429138231553574767844697466226691500122845373966376376010190299556953528632527529200502288425804280606618707845822655925621477517605090348523831124962640759100513873424976506839966318609319417074373302972812265467477679021062887938518043618623109832182687348391632490487457169830677264200943807442162589429621999693351971997404393693862514605198062843402268172437604295927366256174363676228903234761295806024461966189552387736679983109542106395124456337592403348430964101745357387670127535180428656036465852569564743166183420435631170554031777280207651015847573901572239756811572705731707957316078706596452571856750677644909430099101267596479248435436896807168267358020801949394084678329100645974277011002672278158120348362861383015058466739993670881122562582134656371009192958259245319201613677117895843641016900860328049964898776146136365629979492540717749849701727726298200257706958841704862417269797545046981246994766356314907463563729211941527753810691469602743637133961427440789452673809950851618603255198964359897572544416713298421278276695796499201262517642852671306888715934303555153411221130745265782421067924080969232418773317684624107971951088372809109185103080037043758258427248403061072363418925543790685012851956857310047169092989516758329502917775646106153391870468966211610868505331370465007703591718569158264397274826366773414135079815999605618896180358003628380812897092387490056036135979767132966968473885450724024166790462298780334548154511265547259858205477898054091103716034249897141621600039050464220789800402350383170931187717257154961183030062650589787621378083094130181802204398123459080986245179752589616319067218085957480952073468512048470413023050981329980440425718623161644599418672622624565755219400835844539093223085770368145668495945324772245604079592063519502322337621030801621994925590549828044594761825369493840255214379595724304783182369630268236062428429578205133587501962237031660107071894037612698629201068846424762090196508021014830220386937957354327982701806143801679001087631499131656676436260504694360744106890235306248180488296519491676516881018350786587122901833564702061951718359216565579759783498299207310859106714196945173466592511627286224916776217136334818395787779752041809507150000998107127254122251967521545264310656790688439439007831220729072264269418231386955940280095561223183857853168275955658832861524377391590117734702121846146326197487677504423806528012879792508882591611479994723385761828278399351106409553655276033916142838327834023144037138062156181103451099304623504605148734841585824570730735375722587077593377105891307412815453195214561231304082088009054485409061750649180797621354292931929527885244020078281019597079778247547529790063168808778216832236709999934967919910545047837381202516543638862178770122213890274430136396641117940855369780520494195574883273281096974149165781399322734641377433932754741908400705804201577914214352741719519899207427386395357887533093490326434265093046476931078156496169253488651740202645580413519615249801607746584339204063193519540642010257078140189702108783713659967055803025913462075730280448233777531746221656803067535714573233074718215629579418283999785155308055175267569033360629296382235010055659653991642146072878608600151710378460359173529920359184201344865534117964040204210621131631921290044226229621714304661888819093897679745246916973653840868262854003904391074844631816141730420732538966969930809494319240474835771420017431270533728888004780751080552463131969610477634648405609585321914319460638452003296041215106571546661664797457780732072658031356950854835163457315152064893854255341560126751182467698193855110112798826978323981279115231801187782511498816255232750329872310160396139756215275879580993474063899597489205510608929286209908097058938427205461126890250925145699067905550130523857379818827575105698895047586115598896670299725558188073893341694944065932579545399465740578782253297331773575772042255050306386168041074999736596353508281689531704668549307178482642697157288909310495650392858284054328743052293513905900094421647472028476858992904415989956313200945230865004944888918354652465438162539211445926738365379003105305858956033706876496258550246235299239442874570525434033006291447161027005518015202716796201530415049553401331399982811447520498575259092468071783053670066067024456034376713023987206615595598489556557969607747481899100077415468739305365842336541473824756064378373899732770816754064109191155461277144785785541046570223510739823505283284356234606822590133450250663201818190501958276972501123689420143826893910726252686955374642787994218130775531366245772227370463871643301214586338439269819445364204205965777661973071381827323006988075303393893288601568089514940914001337955268355147740656597835346752387590985480965434156278680982081949503678651727060923296642938547467064428241083998004754865773385600343371574275156985590610542088576450824194099520535103653947223186114455010136589432085097052967010176064217352496811353679990060427368171760677624423186030836603439373149873631618654180764669460421396798575542096740524046260652493744131581751780294559642523751348344509795023140582382666671640285205785828189036013855874190064347593340728271291612046651407137556577267708183566741267261193713961479713898542421888925893162497613770704189412792613111450563595866103803153817294898647390424134877563992282414069448151037613324905304866916800591211764954050139666161808359934504522102380968449078039829658054194877049570082315066331710917548411378437159175763230991488712887790533538693340861847544531490932766080456309371815903795374170953424489094386650106350731108494386099003240515938390618231663311043908697436440994855855224977509093605812824473464421745861538605293192608857258284983517838832520331192666128447537388064797880855520644616849181522753340607846328703867986244461497309450325550402924532545076990899819125762259350642655206058277823692023570553901273856049404797146660114831164158822196746665388937285145731673358485307644424479657419362289599021013627271167101762207178795254239752443306724795313558035471976537105675244434617109111599340600077044695876790369724185419799154437419090426237642080631976748782969486500984517199044663803187383089070784292483906031786025694104857424824395347313428510731297655191475651160508785622517200443361049141913209597829233431674411462311558611670063023266641405534448753648817701506428253189105065123422417779357059507300927876472262806591207816137217335921265143350062837858468155693044538249676537701429571052333578421051736398778404852777703353146526588608074770408710445145122220400741843874583537545301174854727678889430348109559095559939566244895515605117813399519433567229730610864119766834830847451808121775969831978685418713632672502210785512966003137755493512225190353157871740400586417451318517090139038681863555056410690676939836204725784842310181483131135718950263579393858632367581990334590316092630307397655288223111866933338895381744822053413449568969896144047622446546258806047850059340994775896915036039953945055150978779925776092116023863969151621890704653096149668689877866682213316167810208347650792340114810512882624031948682917348587472549275125400216548183421205564312987690968409374178809981664903651953393682139695914910321266034281775185387629623588067731551818538041491094964050492419521866408598542344107535181986858435463203057208769633968561063128995315232684513567271014145075702301156908693794730490236629296545898968789379655445735472149264590010958831815923315191696602040354131365514649802613277125608996899677025731537428373089146996994028513613383135599420509128647978787316620364682562984031788513977487312983844287094714490379382204455997665843302200849472631744118355153036257136077701259106781499046195496706629715148516606323087355990889147709368352447269049716540512296581454225940722635167066746597119745122502121338333606950231725439186823065422003804663939445381861968438872587580227683892664487880941670432471996471507086442044935958767493933691931377935992483550779996570039740355910823463954307641023883239176769380660901521161572678690458108455216130503214586231401371574580632606714025403338434932906936302811163047092151415802135698247353971812779955841479734279966013494768661383321720099021819593466590799225636481817515827145193265620907583921596782993923363936595748545062582080681694727350855439328896621616768264611744830397980504734057355455820385336542583756088638214856242909715858364431485201716085773094742729875584197709800388204582445767785365695315878938354018185548632475299890027502669546432678317252109933975670132138021758260951950179557822543188786928845521410205984063431694469785796264436762627945784822828953964465579897274594849478458151223827981117855841353818045778180379627377530198498718596064698729823727284759252593684048558252324039326305004548653347599112224062728363425663834515681121511041599375075920908992792184555495707331716140337442331207474510821400644778187536366431073989732887913413693153595900931533035161365868225464629617961131516478782266782673838640712744695206300863074531695617796523745517624883852293990428481976521974744853151186132074022891907743684438051962240437081383543279352976534324524793642531515677645177271435597227764264332040812367843099043020946044976038210485341508137485836022266639073635952423687390160706648690313275655034413144610198616641160448838626862224544142367268014107504371508181409769419651122234764615572662374936975636085000259845397415407948172362821158983223504879010511964247882558962053903462320377194467256662241511395138026633658349810387915802297791562272486636982423072026454885861800331917450963456303777775928883576774645011027213411460894355822015480563368519660977140724341483840049007651794175084390409078593634704166098749830739369512040877559004243056095228643994671041634194833608485521791674401126744966774462817271555874647087404940421231805899416954136913456238165267710605065121164701396690899748214478606844778233513358035409498352538708521212846504087173484738508710052999599455658675110884349628832896963369133841697049214538291445297588025505023424125645299071106229343777932327866097927566182560860446852987455834920707154547045671696933748427135248946627867414305662626508038882293824392907082063782309399882540595198125639210151953341966491221113341655697078509093058940730373676792629375965921064394754485344675049234663715412497903358252732905466787786859852379326278468911318304844751202881693743607187576382791664953314352111139896291863173188262892381740574666220778309337841254888276417295446162484891611081027839849273739857190677412890921496330394236317320401071563262529832857456659969957220244342679515028552761547805724213608907198633646114564171605029692424887873545199840056303835987078742964548581152890476923613199588249850536536388543244175835450619709610229646558279041992358052872414405451104906869459988799364931861009894602168664260171720005820516986306485492540018418179061657907209689263645964218028176354206703661899773070040980702997490926427612840594085701222240378666717972306682536762348112456168098431424231617812805504293618247960117941744390161241658885049491541913123151600134198444462303876520944594859739342111304505845953932652952815101101618528494810867347708610288442040364722744378701028662068504675814869081659497543731265206374996498706785609152412714599483912470239681687672087761616914916153482646227923627990143200587449170181781768994749074278899596906913966905646188448511053219972835331444038496954708218899500808954695525150024296224819204775744025120030983181548948451934352664429186730592251734032060500872422572255651997740781064908308632159149915647414375523476176761208329266089432518649195891691505009489420278093196772941715805654318382773488315504901946381842193140208692939948289882097298442007571814538296135448682818896743810148878779272493529192182187237767762846554594666424243834706074165299933659148017336341719252958702260770711317116805074202153163804925666245912175154770123899967265056239380720823587015354384195110499523033028905722889487494296006022720934117612541650493907176887774979015872215844408280952847062739922835391082150842159389888508761287460134563491203114677671304037355345983150870742256105701570073416933838806078138078821711842428475468983159390705401163871745485555210482171544136391099154149840550395005740543793508002083384388015635998126827270982396701261418419679336483650106925776505298152570103163039147009783332176133516819324401168042504727275603397045184032317468029582236522770474032950447558967470287974225538931156973145007541989265987616953654380616961344364218041577739535945533742256116235848440478806013717624401120832966499096891432719270064057817373994949156452036173083091458093817496558633117157060397302921603519395421391182502993216916514262284511010117875574285402993953275009695859063278567172943227839581546526413770858421649819892258923779295037834208224675955316800994275315004727306434027536636176900840443698446313430606334294252420216179980571399543871808721020553076619241762604449173451984094069508050129748941465085756493590221902118011470592526677171810033397617732334204907507768072226433857656409695583209402973341678612818754816954941873015987206072863878176232332471679053668603753461580051438904330275305777159265274024337089482162080815151177322104888990190695244821893277673447208391766922532861810326286152175478501944308001191821757321654199005852409176363497940516586112636759153762137984410915561798753323997814606775045760079318220714804335092601446843130638040595227900180531174029910946746752376348930313199267337933527648396470274079268691901177868817086386970465440781922755921529435978464418904242739834254562392584848466639086406540959557390003718869706900532565733671207541789180978886474640331379938766462074529419408131078470163206255022574120087483258946374854069221062976178839012949298796949418046940462492871215042547191330391449276889949190699055482193445481881864085810337681215364756792882506138987435718649747346276417420551880421872433980689187811151366540977003943659415748610972196204505721854661467256409756594469769864984564984595707326255116521419490155570199811326468364890451212158238845802603238521940781062756583312190820518617939627036268410204464499382397418190633913571575396266668798861051465410288636154151804178713425943675544800254092451579617047971391937136490509594508904087351856873402698961621055450611416877759956522567015537583029671893078868744676873607798559810608229619527645500938480734506003454626583713188264923072019200344424722576208699986391846242785489870549109015056659535106411434194950848288809125641104480787875074019849538948690002422126520227210875086297803295851513721904717333924076762423767626900462052398026343309239471111012455891266363540861320560404749899390426864173263095182353762572651707681617527517699729956163622974334775494723746765146347224092837405040324152611138708728177484901351269639765857363206359440991791449051856287543490948837712470133111163209769724995307489774824183976901354693704770417340287661497264775561779144772936829350731210182564590905553503502959098969891231999300067862556142626407309212340950356875858774370406524759055088073924389485118781038113826842512692234302456965183914744339568053291865402229636679761644248442686576447077246122046919822121902368322930339322345173764286403770879339429140861648385193360028791984821027818895565152800120666935311468468360749821647617341967334544962962002578810952788917910594450353436548815661062799581253163460150191561562787184517209268768442818867271807626158004425748843547535985075923952521800937466544316343537614458291783090836707681622051113113202656663074258240213371340415234094306855539351106710979549437708523832946719901356442131370410079603818714661462147033830630568923065682499293053410338056753193251960509843274378305213449128769475794238348353930507576090598851873428241241759174408328197264170673858536959008934835239576336589624686312597102005225968841446861243922455928813888696058227405004350266645205361225721611110461730216541976106010706878189200794536212433688741549302675629552100829480390762686605723288132139352240166317375316423052110667002844781303239198843051575432917948346766744810681601201778786056029333270015332255336807705216155072930794424885926753299426086555060008124914110610647153260753603927376021187311920554235742789574514917981947119392376678196955565432221567530055816536045187328109720337400019268785941412202299663401377048082977491195038997747409849428483042427408510308165511709083599569809942731636590721951440718045867616272119982786047926832189804727698312455952799566443565739698970237075100293714468622658546864444017126825957037051198239732759215722653814708200354043443782124857149024261484734415839702368895127169152190325674266874843144545790282288810097652671548584244694311176541951001639628432803431955707875698317336382071051936881958151261803981273079572106792635626108173464320164794844620664565331407985522426168240623082809430782905592389671101319264466131834564298599694397655311100074126755054128774553711833966901185720393314475912739194006741494782853826599081152323466895444721399393991886618203987921833850874344461296990179350306022051152790401369233623533601662435135048967127358667358486808517162633627880399917911740574606285461351891793657295502267845005736596612384272640581366138968163337790265751908672028987759060621539021789434613779195617117147438566394684454825367919666679047009071341708503383723963305247899751938709984921516561456174779993165521372030641988295653979048454029967320329289524267036380739895973045188755959200899461492662401879502070690569120828147201579635996254102153681210188855260070445218586172834374270959659921094458281935484184864327113797350669013247915201388968083809220317684016325796937973968028009087624315956634113080595623602222426511916857766822191323257530216204097114314586849427978015944660855826626653131461689587618958967051506060980672374639201667104130916774776496377065328756375475332395465884313369725781959952593432249581622503202314446563687362351780096149520886551718208949307899137677830351638999289847725388925806061171164089819238854767573220885048576465608884904687039365611695536640064006240287321281699252061945087501061634639785038035537785271876639710392260404953698466853672633900546189140501140785778957949927133359960358380501760864898545538778889160819635879412300550109388906838334611020103910498219679161951606190865638777733393900849151924879438727979258858491905789972687451119328400169239747777582775949792745445487297759379702093427046830299411927533629133953889764806230911100869851657161749318718208679828945967129217552057093791360198687907758772538964013480709543859594690946782130698068284737096186352275676782492339878114522238768903010543641367710881777073632280630168571443476603002821306305388741328062991748869048436254832802736478783100050112532110699624155387898638842642701905632073883512093797818072719884990667152265000326298766802039451270010584626982579125644176779453417105489570229938563525615676688782635127972085507863102891113425016785673604984608763319683921399472884279423257054977247979175480997480339145347363473763588540824021219439544212816223736595296002152344549292417685430990966020704073418329279649919174585866609089021296973089572262141652914978021851034856746866501229408136739883405700412636266836384855210826737869433826800074528543402892479164787426051828030897626703413326656239570841531928900051065813595337292801655031882435556579831126575681671106465893571737231269904422763051985386106339656557169495014015007580678173086075496658375195452885060053846040109797009811121113349167396033068447998513817431841830563121895139320911074446838443189036065873037938406491717220095346124897184977991676303644257068914128213739745596485012431656427897354841515830397444802730403465845879397511354945727074543543194352055778876584759958609543434613110202301838801943163368852631832118213621795553917822329202208003764306356521008519476146792056009282288868244070077369218676481392696101690580239122688025725351162228063403073761157332889078468655900967643056301600876544026045323108604216244281478214488280308757563839160810455731121028862749066211589215185134892212081735165431896600686953328482188037466004301808194897567310849880577530860796924410191911940690722150612079305499695072555810401959815435549262011528245484366890454387515492399803082951430909908579546944711451662769109661415301877525204525835273012618466877715567270590462427312977600259906425250376099195184012406298769244219444150027317207925640642485071224562942246464639489885903859767134607038084655869666529317262786394336066363365939772264338891949244953464104038082787093616918523036499963212204012734693184537898494175769371745268258263687627618061491933980315024467862749551042758201059797066653727357278865143344513913631374977460086874521314917832586150422047949938445300829250061103212329453982028442980105685768821603513504842313310968613242159656084254844753142808975632398494314939491323123672513503333586908403839888918098922270946011399619438111886816461724550652659479529036222532495812229783101750596953070656122744644921018401995301872714656773572674708411505323915776458592366006836847714441176375542104485431354796493779438319044661757141758542594515975864245535147219519145793969966815427834812989356675772299502619698961838274810319248327779575149024406581710943711819399290172737009852238376954295970026499098419597750305402825270323919618698751552352797965392367936656977517949061626695735264804873152421985725527263439591253873781121157881293788042589400050686484267727199904089342485712746381869257372815602136415910718344050913362043867122353950476126151277866966394689507522808772007533743944346289769801423282749015120740114670925507519791299947269792805895901424390766577245560032109095548150468941758244001666694704227584507531327080945071263116009099004493590555440094662217944627954073001486462846978028652342790643715655668834456005438196491658840287543205777506239410573227850440506779804348068720338709185554611831801266723582548509355859816354296749924828856212814217132745239357759546761302568157752648025009945687860033515248536998360107238001444357359449241974920454969861543906593206953033514246241521889927815334732999822284825407581552228375079406976842099644874862320052468899720870658593521814240396309588970824294757031776583703663102403798732692534716637930039533030325002418061028676853247448577994230287188098492826336237641138979638878520905937433488120821743465295151516775000754726415501242735069158212275576916289150998062827977757846420756409548077611004829356752310906798940532447822009721116956895051396628973962563114096246615537070374244898302375195043928520399724990181654933381338735331461421507872369622363159304945167110086169150033110570611546834723785444823443853124456816167416005155872337379588427588738635154436936447498877048679617300832633857839820605732430724199216136311833828044413195797879806531752642009384585056180270556402285130434213786737902913475972295594635048466900955246112449919906431676486191154113288519999172029349067626192471270078994785998574754526722222774659536227070102797830813190626981262967106539612918919283194752024397745397879774382924248472706799991297010255559641461736484071399006050443837966081329490761613709915414988956085230198204930592764868930214652965329195447311716796536954364871444854546404330905419462048915493977685219022253464235970989238459752852436322555431562026803179343785016929393169509906469643038993755297543477636564560784846364357230211827477939916666463645368722357495766376862901753782213444255018230575274369886836577338807817243158984263884835505346404100027425857684267975950433818754302867253076356977583309919321871513385235291474273471700896300977745243748039166763155618261323121991518453035345781198474786155569121587142207770534505514633375639775238111871436672417282531528493086080527538054384421242898343523996272716364018731814258936604463316308335674646113794228037317061850849400459895201518309257645806860827629255737968157247740174516798073270579470955981289756664655756393415778701378530949904424773308464577263020704076436518181677490707904139241174728077231348997386633059755222530907711736664041875878767835628409814937758248811119477845323680778205640338145347883967841123477130064970027226691789341448603190209717232783949692870863532784605988576598991251718181953812434933518957949112622799262350969237934928108682500994615391542366633462731505468142177318326957094627624867906771547307765316692518118186671346851215276996318569258407260243219598331671946871734451073417936998679142508469692253421631371856675211289342103956581069179416481738057431959469392736946488602153127567105074573156506746959294307608741852725835316736602989782763449448877703112717593940323581884457012253074415283904691414976913580784292617869556950230100000367607126551950786562146710660038227262585270226347413924121902889204021515388681381556797570402996632240008489433695587551910223954398268557574179835945566000819449538448062754099450589373033151972681069593695518977526011201684864091396614481990218622300456409569370273053287396157149894544127944775563098879800817219400735840041779099795825711992347337871551612358970410264204218778917275986545968708373164003036122334886337368341388892298617100932279945548352544634384924888559026457292973087874232998101203450935089386041129548657077555944543187023402847717226728134794187610100809862489273467431564306674593051733284438379670814567550444261961340196409382073929510790290107171556960641283774866086046335419086932975603922584532004955239013687414984904359340812003280441691260236721714134709516217257778641209447205904503909191139357072626172146456139640654616910454149753201407044811478513450922462350216202307377777554951158395981496427607813004108469632668199780900370741009436610336554140679657507060186008790764210338453494396700909242492337585878312432309294193302379518012848620422761894926931288320770491840626636488056359437391294325974615041637723285617969982567367438968466433946420377138370587950567213806614163364321180269064321594500772627323334503329404789227403201727621488891033361559652520389585714807301845139096276802368101709230727223836799244317540148336601904471177517594287075056888304909443888386670907150567013383092956699387619911261936343234574168012446861367791282949774755464216832001495181788300804654384088914888528407993120045842836466101359491611959377159014107513052751036980957148972194277865632899383342880041639673515228368277605946657080375593914422358301883750008099045445567932489959977387962487415135171874218357581977368007874129392151844265085961822371724345828413903896685632975200978741568493031483218291881882420347377566678185075430920520909413916666696952913979027461990273596935327947384848187995601230220305648139467470273511514226061319581990716547371846966039490705094471952742448073161031354260796124581127924089775232634299468514355340771853214097933029707710855489747204678068316330268321514390438042725130666173826148244460604118372676727794349585729324872223125237965739181400287036330487481799277480460814196933719857978321535830271870495829558130725033875993700332396683662232904778092667809043916060493534899160474900133472417612822630805503755668515616693790795500098246836598923719029776542285631844325837295817028826896595112005309624426648943550542385000492629364901738830988947342813114345323141955348323376641890599808737605766515742972642816440531648511301579836263739368440073230566035858829085423934693864367911370869871031431332725167165407577639894078434648751641376705748091902624776158961607440939656729055622040033918333491340053843134262388419866322669861568215656548377342011766722309361473609105525788623297789732594007701682106492901403508355598488761461461845252054157637283179355497810307278974382710553566085481339056127875128497342322934454619705801006105360530027106090057869741377155318484239809884523534101864580032637982311291388251862505982187707691464792806948319087206044329925869735878914424862814553629755189464615696807609478665055518020025223455265425943853365841929775723376442020604573629711417065612878390567797368550214634664653083852277160535625919947505404625285093145948034979597981045645241226267431498159727324873215820268417066354535496060952997638483670167661824550480403086647732372571282664222814176510248904092425264375457399742158271885178944718313595690971265842769396693507027870271342695104545368769952157983639453307480254948948218922505351802728345053865655569195214856495292239164413764856361309016895807852868870241189301591202576474308654745409255507576375915579724101457217852425913785341088537012283005287760767916221437388947004181713150210572242298942640689620064131780307610256244664746516003109533069217164234795269267998331177713118660298072643772705346150364647003663095690163965280772709607968996928874201390044995610504814891714179315178024319148530801677712887426809092833190685993470329252344408511025123898262833288296381092394397716062426671264644848898715210036162955920139717435584327231513651577291644314009873701108911461105713658278614533490439798216635007358493389241032840273477424201076878348454574831109148430818501103762376606792996401192015845664156882109153477980202185489418235623296203628852044101061481077575123582717223448167671254611750048378715576539440844023457800311922544113378706518206898769212825592252240029096293761962915041772521170626155298837489599294212915305913181172991472426358835546284126546174479184647869510220575575738908752568760422201053115568817923781539057619108247986847487515302221099895263153165967346788090944202927993246885720634641203404488264676947558394084179967410807867966285879275864257635666914383386929515149722978114505651368096913333386512755351814571712726299257896358036396749695756654921183802219217185565162300358128678678500582036072937795864377611578412045752846140895135927229101146979818384016453761934530257805192352935178968193301225532930713340301254845003668842250708626872183059252570627058196743641681090736473161247401185730851949820116547169711117139517827029186341262500598861077355603779300414559883227479482960140350107711091712237899190062565759229535500756367210784714321495060049780511102185366768118646376991972946262788102063950328663578689917050480517940066745116471378513827467826826154574239332160759800326197869374293298154482339210466213917828458783076858617443267138689154451006071155754108119117052494730523085095256313528926585752589198015807665111154302248248415935421729373497571489144875923082758825500858349108400357011242552896990692849804720710876713711865882891957157154888375244496097342735094830224809977859007616889295190024328284620673339037865108288316796734320570086168042220400091688535591960167704876315890677237658537139912734261379534012960315004908600313153661966730526283363181858763822119852211173737261848720121353863506593434503725922715260935141599865437537036157527018694672375490261560100457724685037155527958561349416824169493296392768782209715316376448162504060587580288689844640450953407963691770590535005956320609095688404906595958122603804349257328871351500905299750543304343851268658033845867673402888170647272236154642895090888851749884952048811413592159358116954165849842217067759102283395122441081891004744570809764065773344274907917294782719654417287896661819199233562697891710553138017067171479571518657560011908781907581701400042952899039051205206209991525664469255445993446245960748275245676326744647407813289442670717976737361889389140871716290042625911968449045321529268046210465705708363405985411967048665579486736858260711407205222654446601024516125424155861231731106307230695510517645541280929948584836591988727515244956351840762499441011131074606006096759511239590503986429522314202525054568004839231577666066940669816158848111715702903035017463558129434416373897797951911004318863148692444026710380762774396688406074093759609377018156726236308852571732137567443199466970506934221726416869703591800862035892188592232626139786752449708004569076457197635885698545150180966853069811244923051070189611415079721178264773437477624960855200484831220132792835031810290427572847093045259642897816061105050345876027851303230279433534513283992987259445169134555207253323969777573943269245458128430722410695074880210996695298948228123030721395086401790977904736931947179436108373122788929595512931023969831333310635099787908810751772668125942056464496720855096806102783766656769040913521920409314537775693727400333344600037105935652945700210570726458827562787588479731165758651101219330554578124163565153484079486368351719147229339599971671673470822224948609083215703733828699907645809107551798861965512908212983746821191933687550648442303595700857938898990336267089580228758029439222313750213489704840920740074746046458828884958966444700430039691752648875808607319296715275455687455861410491156398458816847056383913551745881373580646297414738395452872763859033609795631217518395215209374685037855103808291205152719397126466151543630997223888906245591047595051237908584776869047993971457691581533667380187032100880558616434967889248368944845850575636020950735372056145621987984634092527875117812500875387428674605661868580234848465553713008350082291954114252725786711229151180311506408933165361654911300347788410382940845484745099948093044298983919263950273556195783265249801885230701095814263173692719355509101330827123847583276914209491426204640618050216859955829666298421657788230047539000267031273682672053412889339808337273853084216212833805098768361360713626258870599584515496610296446200633366309058764601549399821122965356298224392109070038536642202731523539380779415878395747581300779981564136191519671505797519161002060729056477925082191415878315010058538057610798762346707792063920554226174606633384795152930186463239028385104235514888551948939282725705429032374632891399564098325343742816557352206949940040439320478803109488481095101625033308416951075246812021119833061784689852947206069979414062994220645113457948871589278072088274566613736796701651787551252556712393663890909841850630928081117315184734620380203450624748841774167718939335019673928984551320311808065566661151327303982477832301193200343672883927922155149193187359742845283255909822006111911512235576220803462392710780865105509749666267230671180614110358937637029700987983252352331794375220196534627588474708958151544029041679884457966902201158636061456999012797024723996436215893947342152545054102086299917367814946416788407843973892018208962737163549371022902538390988639738299169358306396515124059453508501037456098347177001700084265069968751372936346165787080534563789735109083535526164930348296326239937288668997584100750717493156298216591449328004756831005501624052522761098764171263611617297129416400016878520475278786157219761165961593667724019941145173529587113285709498419527082446498481166152727969836566270403115555770425313677338688073223979435643823319048201715944778787832695967873455473798694322757599360471650556524264332645489732701795667854882576915183805437606064548286990718801433144645117111657634976108850861979994250943816562526978252400800067844779234558591545828387614131483337882205657635483584565833833574398935047125802385351338690747201043505005180232781840812918868906126412307246954827696368909096932860320103632194889197824331190299788994062995884976904470580017040363718312645145081509268330620545065310676832603035269674417009695744646436695286070664986321901337593474190425679699292603784515623424683456136080309192250169127483421207927140005039652950514347152955725994174256804928610487519518778750781931323678257770978095554302228763936256194658873605727285997078247663845787324817833664031648838621331901677876351349916511719788238148469754813791892695846098609124416837943199050802289776362902327585454401668955900070495301594937016959165319082481960308368780431868705055950205692295911995971695297899989069449400101168575723125262900449492998877865855288114142087522313456696940935843827561863854039214689313754363130964382860054197517817387507523017377623770976305001510427450723927206306377323437891041401648144205031445617710684467863090396467471377680180048070026417923213271151990657417698485415774872789486646571106930540394905923949248358280046743298289433560060942387249709058156657305357191985632211904262674784129763837840729820973902637191658522554578303558162004894273212006889332362354127155233351637499123093623584497265860851180884465838771521866067010060624270958535916460666111377542233539930642214297116244447159141272949769322993661941918138045114374495991100203150088249643757508289974606566860109870906960929921837984013841540150403103540658349778557759751028558657486431776132933308330336093159758233793853975066087952847914541655881983710598936780988092650329421027790505338646369793311589699033065079582046041418941950222857809126469084500806264041322074346757715075984187813963343681227733846427324702429227704492676631353795790272503773757210453984704815261390544125543025866018168658245979446850915993986519525140729394578658386892470893275216889460846278594840063897581177935545617208588695482662692380354180792498302395499067104809848857513242781206736498597725316247348238249990152585555541033843769500233239223846209680252044938502918367810431327460336676339227930480552904736120408784909365683606296425849214355346413398812823737069489942066360663156311217937783561104520041807381225887385790164953652558685783664560620013272915333109771301969889408775801213588943144167059159990798255623823785593104052139912745757597073631091979204204649455180578622720726279750388889644429084835881844585482918658529781769449544978614115474420184770704555936950656284841671330589965704295382840103509560495170394946394501207156882115105163592806414972022735501798003535606879327051359872987400216335618317944044325036390251400215674494516981722837462319023033029901688762054771876647211906321266300560612252765579263191502823175473164593691148267797127896719017538641413049705906983056239937189854950243349697170683612891568210243372374308413278761932147413331491643016941917573491701373342831506402676977363391068208936282233507088670452374949973418393552070201509210717760164803349894841167061631115152328058733261052063169665871014682202858376150669406973326830847382980465765573211862496585567140934836837724530953597515266916437728347282193600601207000960820159910801539829213602568146446809754384676530060864025394750927524199627507989848594233858545589776771900505546299225549624194825205098723774897358715651954548486071949416790827409962173962525289855055177679467616692244845840848595538549233964475641796416694736431762662714615088923591033219168281571399654656198946773389008061441659774126385640973854914058531723796410453480948774462093619032556821264299934439973470993732357411703405500291294298100929333694867485134447863676586458023813468676351726362473267179524742630159552300537043552539796669563209957974397428945752718148054948136065643336095819767612085188599508078738864544391253981528739930264844516592800826384087734243998343657941557630651253524637534215016801637357703651205258218674554550429351374101782726083395581532987737771103303145824190684181448080189938347513648059707304395001383986462897648432192784771080019520810362638644916837500409095124247757224355564049625083312783685771884182205229688224884886517956451810507990196809887784964201457202726618444636887412271947977088414526661340954901008463184580431817737208745200378546784776013707604012266103998812897627616911384712715009486733249143677345925893316025907562437821149437824856049730485683443740530474731607921514304544155699195355884451185578398437028466761174825455304218131718564791020005548701588145083614271046760696744598670463839609947394128889775046842779341920118097710355030420357767486549835528847345027244134163359211193024788703533497939022288273342049034546816440263154242757339118222377732638278791274739307540014398963675759477313504154745843747296762029286847357476677097843802040026850915385092691186818179305764832615970877609775301152829313554481570795465571677847478974831968596486159525490968236612514484743834220643461506005717667055583854122436154674783708378784219314795009425768956560058275508100670536014207024867439009575210760003159580133114384964366379518024692481564212226807643006109006591106113637131922286209576958213975191893738495935826493771557358564134070908199838566428717184184873048613656420564055176335775170125317941852384669622657317855534368476471196327741218160749399019846661992771683659791969018139606009102561428669231937282007711728023279382358701797659065563817332392097976378615545885276414549693631652085982331001678638673796844947117865785090360849360585166776016684611630909922833882220225377945935641199613906936924225678534273329795115178254155334921545005427456504580074808820423318090647288225912275216802910859664279919943258066996311706127831506059351586364949931473988342058764251288103586173336924740586748010784451836643375734784279835262195755912873238886266048031878733285838569467476615153999596197846220723095608527652852199197110000980316538563193574871374290819899246661843732865287750166442571384027023049772396106862907289120026314848533842753964562959633687743839432287195162760970126270681613854071381762817213632915367069061968322585622853239422786266768927824939665022796410918009211174295849937637057732524075597128247778257952505135226563065400176630438854680918924459224000209010383796453028023477702309640221361233756556124778594223721597914414573728932400270389441582889379949183171455128813012752205395313503359156131164521154622874055169567121184025188139317923411231907279179045743006755132026365545319151864210194335457257423092377381688083867423548974811874775980576875473691266587253986962931088612095858273437175160529676868558095820725376086784805685358767044050841194864768271730525545923991281140686475240319935962178334630876371879725582027488612298064595545584411974004910879208376447035874054241028278278392755073716837929964525335540272007202045575145962693487268290407285204784621573148649874874861805547250569915672890523026329853957103653158665443364545551757268445708551566802095286335366531674291769392731964903892794803561257720194649847444114233633425633582817534603335531301508199327608600641192747891047815306047243223653197447559359009713198320546947039913549257144465191208983704091872519305680951055141183692299048427975252368402112826330560706110955324472023616802482340797161778061281639550484634861189543278063030379974127068940270965955628701963105101721288152792721348698854036254744646491052448742174136220815686485313271220319616664737892531988934791129467832482051154720906254937379120234452691413389540114820923418450301042985792088792974176550971072926851063882069466318884679784163374679519077409351857278137685510974543779955890124413535685687033162514889159680832264097929265979423023907280837900498521745440642768209807776496155813770588253940187194332922135188418589963235706555911787913950261801121292593703776915177522073243137418005608042355903332496858007188409955493647575766924233789140857800825033688928270484842862470151732650900208423703106377410637718101960399864653588561009376148359297661731917239341461863022126075857224533523496818231829367754816963769016709524672864198340222738764465125296292749872070632194559973308830544096512880045059467358247083225300907918672984951156946586796515810643919474707189673769554144458111653762002958674484347067206705315803571620102134827072815914746965085627544444748154003774360347764230231424053601169158200677569529744230866507507033824705881935932178979366599692375478638292666935301924530214951998386548107216936886508004411372426437258620922521454413631553781631654935165821010107638724471421947288668838129395208620249795392315281799152873682076332241384089541583637066802020637852402634219198025773833676066608112867623175767981913981469007820333400735469774701688026811613800026588733413481912192508503422261215454069244229467054914624101658798583290600974963175957835472361009635033783687113634409576627576660954932783294547095249068806729518722924166643192220658466327676541030642239397858510321731804652051750577980163903425228388389891822925443126688570013794979958601515414209383230770714753339995410221047764302723195351508840681322532270608719758056487773751601640812519011235300675027972716005934835356390795043617136180237003838985344015094997101689418265397254176219575038459947140927626273427836372816590937824152241253272648096645959450125711686631714024635312742465103317685530085208979930061058470543936657333859841801987877089590948803794964511176071135214984811502695255721838129804757086588996675379249011870651480254892075880834781812174082881090918571617878852131285950154705662213728708349681484411112559878810604949285324268595522740950710213276154244339476647974870818360586857785760506132273077823922904004974568420531159021391737903291256680013554386284475009747023015603111103916509345362828112255218200254997486685541169128223908290612885544961896524031603928792878314280751835572287534460477444508653957805601580768226524536368468728106241439426253446151460039472099694814512911303375526543027267833845396088088841695612692373791019174990795882318126981048632016593761599311393408252589713512800603002361268149754236341573880853577790760406723705214289074380679951215344485927717393228166064504150723068415710857852714166395729263164938208240587609330855505460184670336611913113382368309020715454585039496926377540832369856089947219380528884223195137874541734430612564494283376252364992315294154248827252604321120893738147209851353410295512030650537449169719877160584566308026959307123695321477348501510647411853453393135210942439666414821974793529409497112325568663893074017192530839838736777199221913573004867467638972482515828789941259628313970066153350840542118249836575842084992856515283382167789190106362408347755936952477791956801112554469475783714546175012228161257643598310999724057553070498507638965172195886201107071668244961539395424560542876687919317186798455510030951717228386041028605753550445040067796350021581101850620566691463795967109570409315073565874715648896217196050363293604790941432197729533167395317821150779923335468646178027837658861561571125286387565990229688560833361186909414066167290631081100206053468469665346811843067207532934700689920902954086322986468412024270882161379277679934738196499853192670187890000338369664259848304997128655103721733273332499401801543041819787735616347291989701729062776045008763662989435258037543191449920282863280565124087823038065535675793839853725877630548804071958735225327155532231385066716711485938185639096390552056478745833163932304175186176600023768576401955614014702885123443669229126371800048180020165731375764033439569563575817893834552983853461554644427595323736200428221908899041580409239059501063795710162587338132573408722279571355582927690797265508844624192934940906505552005293887284533755316331862190562522991277792015497585915463218089287484729778893340116689169268451593960702015179577182218134378737395988597612984456448679726866821022224609642977546848723448154535944584147643733654559215698879606506331481784487097516937077035863535709792788932166795101367731266321694395929812132316870373324892086299845005671204641760643024062035579835761716369496850608130633697173954963584634048891888171430611312122927024208389285350092478244826381991838644548886673661656722205299865269675065400614388679291617921229842326688740611238731193510746187572396891011959765252534624176830906257252818816350861448398486227978102091601243084266335041117205470075234335168678450209145954829581484378475289535704301202019734032040837870588036313888232947388970035520423862507182975823730910189590426882717948707962998837842070830788356958929015905965719647689117063723921409723521587492083806250945071275157050542966838351406294084576383717226207241399253930846868435736135296756981991239762145878929596257433055825413456491187824263393548431155690896739581493117963266332776851957866829332759695736640444650310003111089371199445532844586156495802265706426272661840068829318281059072370876908976603889779650820062027634506823010094374690960375267401773104355862591418564530897694083741442774787597752897868085436106988810744951932894260296394065623617566524946426771489840919122123392969431361970048275522737700049622502336062044585210076341018415655794624377188324590061819263662972083905192621075963891803486741746322331080483734597887488104551566236873688946621101925444782681315676324143606219385164872020384414786491268087605864921928980618559404011654217078230615930172370669681206891456356514284195105647374539623170908173363997967183508333589283260529513318944139808974909240741679310323895325125280915168202762083001638383470023817137202452108155262153122187369881132569356628517536683424441764071129027136812557465330321444547374631340139119338605711723992476645741854668884745229360106098321163525634691006707713748876260835375291736722368856135849470427025347758032827401706058838692565803790255018374863896253521683162896559915148454852479818574044155566402030299732389059266409429523263528368018861774509000299253235358128121032168720728979196099548930968646943776523697597633041809944118362017071013805435378372851843184646520809062539054154308891945732166494410041747794552459707302120689026608925358971089465932889566033671425014393216351511727324124403181285892636685411451357154406013272934760741403042876359648902139689010255266143010237637901609354355508392307723066005862130353781183169047609861503382191849366371831732810790235256573188489321156660589347250355726880274082340841398523529693600339268286686750597742522309188267295530972524030009902851573034525362668771438613154277573268285930288037945399738765351152044421913821796098493130130316915441808319007565584771029742729741500104312210571283172009405524981283985020169402248433983587410005880170821774331436210918466297587883585699554292484563671177313047904156441770989825283713305273545446672667003091161579141289821887971725377651467630572939378851397433883129826230901920306457558096426958171057820850210987720237179529311275706033142469472657990517319292076135483812515736036702104087812099639053832544276716708099562313041229748016926296536994122034789173607912353303867910709016449297647675879095453891932792695444476586501989458122636676843838672429337585039795199782634025101682463592326271449917343168749197264868447479002230305380151531042569435441589440907139822489220821712201359535364082370161215537234534584934194472720846295447536426620292661609665526647189769057922203304718535831583527196660443516671368329668437271589635711979103327205916808285912717438369892964315544172315487687527023456050497061233288155397759838011218865845785308358145235962816466871391792218663961991336707605776300467941218002962263997658665181756734538053003931144728092191783845904037501806927171236539804205926445280578679451559431330105381185791426197916131966562889358784614728441670721666263510552600191692527510511432907566571292895303447064563130622403238120887180372080335042210893767052389210978175469264165346102724140497584082741058488508235018053599820631258583654908980187013150448189386735966793743868677555920629830713049680232216077461936772357343975637429509026188097503212685130183057033739011265515520727388044136891738740483461520617885374106213601114205843476314188862221508112705492644771054796091173392018803735738364363302055601344986791178595786290261334758278592216342072893220654434445479346787730271521709340699177432272770027436736378318797529066320437441643241454138769571055580545124582746881645255730048660508818416701604975681939285812761616029398201232081758825609956274699759691394683572085887145660059489306033265820632752388940027277023290154076408572315367096886651862761596312183398116574097615413787122657586352644132151634084711664294965990062924633383852346313159594670957915725932859490173432473372679230139740965831440478432878631035184115854774919783445693423664563235249093912649353743900554001541870722512410303717066288071650740961409208429718615486027969558491363843097978427877629400656662183720662582484685634037422674089711295823723339632451798083145449228703299963689614527080562587216362309518189755390506445927460398043475500911818804166913229721871753996303626589987843076810663612653267960432227634569037365555397426045506312845990940483180027460459621669815841401844195421450148720641364359595907299189925734082047649061397096192722759734024390989448392589123841231121049116501108227166307475086119688711165618318396697490262517387418845577466638842160174064328517869675826411773308575047003437735825673001734611209959004856393401662339940301492274293734256068094790317575748487708061559346286503038216428483700566393048255843771374883462323392302508183360520550571284997744215874703154721351217397392332124959798837717692168636648181302672833155958372210172955307130182646433338324153731035066025731077504532998111067504068442477635189974527449454416416413729751762965047813093050940322285957164147747979851958559005504428157452007079434233913800766529097389570014198689941387489249575668614219111885453600845191089539684880703318147138061591716943712951493625011636762633203481659994970641237298546730956963352008645979182882799914884010016041199731796315336031744513351216361528677903935593813816772398442580054415968549631681988127841720572321768934209247156085743602283468523767567149227182154937989623740392315156968705740385547729680658670993523561969132189013922405487346846642565248930945535521503153365565252326032634792210940576702606031809082056035511056232286598697733446411311185077321937749606559075837079329681470877085946875825417363653414901856487893705892790165859328748847253838512813668357110345627831494033075933938064577821500182153476380933744701663410820587033953750778752231147493983318252789002345921134176417599854890033613476361357659400801101405520276026695337726210612727547372794500554600662682031749837987660532025831184998114112227304928769307791162259015423689927427437595470982644672670048828456272730171923829593071344477509917902555487775591446494711338153989052769880721029568040468975151385842071423669414585756767146450315563711483497058447431617676542732356592253634541980259780191951383883569033944328441482074936290527837440257921567752719213929105859770654816910437369889203304294565120831443187059767637780800906424105062447099519190317523312638204845010226631378938528810618432926958668449184166117520220019724529822738222400990352551264732789609660131354181251161207465475572554116531120101938032849401997431370783142891972804659566169604021469035413764799410552602059789053763510746671640699315548130449258799096985513681792679518422567070853805039747853429997204321294705821653197657164917607232864366759540936768348866781415416211567801065184500254337162332270985839701235516386719122973996844688049554256745626062472366595147174088698855895602907777588670231740835651281077021820479113006715949137350766254958892131308013962797287724990203175097555916536293622288715947404945099580816894170072816386277282580825133561430034093483859750174132235559789101075553729602022072168342754630521967242649836899933051717547206153553350632644674405973289995950154893658131358348623834689166394253641135757508176988591610455075655708707023774796055750792847978744418311393328756145668305920258295872435066417406756139277882851753073150474043060514541133437913069002784162128856576049328059145449657957864977091770150550999167093478776140950082363025417204296298375049953385310000023669590675956074703699987905213273427263409590963221214552666495090425132838931187503828564843866379347905002325818769989478363996714290968157903902672368618210780802748913397243966363370257266922368682854944230318087286551641826811411388529137638152998762229087283289559664035829133775831281871904636076528386881782477216635286840078528110147863856397778048485099572088872393539455095906326857030141915769290412868825328725710734218144267655958304296497735486898245443045179750982593109736132040070480087848721768511780033074179554412621995336554147610268929477542129335973943235162447228452032726705308742051148983513844846912031610429723495658393318258781861196614613231363306391302046628847308984224134742841100195809998239615191423557110088158823478704038056334344201833383150230832806870976101291068744334956994610166083580492222587372574484732415562464292309059017026041447951556916396821349076561811727279102903063745177775849079525947066793706267827425970353139062853411582634917944765533452372650374989459989814889492900226270085972135409684565383284603094998698544098817710911663225104678562202517439332420204008395738825650133179898307188241032623696573657530067915993308708920950985537458592721798663609490375198174312390586027967106430672867254831630250842360208593857920431427807526200641636223502599106228784346535773169333796663761994997821911127305713826833475714494589961486783783946950494335902599508915086827787800496786459879552095799854808671035700109227920190273773232192944278939248548571050403250357022234760259092997637602857976103540192237195858529195653678920669816738408187447899358835884146438394681246011378364826240149607971571537223160850173883321317598367642244758162996027739844243536080483558909465201707142699794921725629092882809307351007477058285337734883861149425804137701079233161645598289650710206531705961835202320170318945243716878911499266187914155820526079442196767003938465477646609706804909293925101174684190804233606887824323992174972324893920117065108644239198209333134824163980529559547210449232586193696362212979152506181830481706354532460848688202547594698770968617829826492412015397070695766826007371171555635979423031311641840286539719053230157023370290985685771614279081365031374870716604611758946529891645331566174736327876945512095141565509012699583575403495108289587395353503423518923190452948213989554957146851386397305352515747509056960981803509461739896883572528746360541728996146781445670920972392638547892997541958471517845139565280584473807144577716807089331169856481719109500910948154319557283846094935152317205937951644114472604039750800623086005329987136399363072101350278796844190351763905430780746491980112705273402055253171590007344597422856033787746288519062827612000308977762130414084595794521684009953360317938417005462688719630564279687866765517790690883523164427893315250019602860610712723005355698186481857370718328304642545793911239071441952834074000875735218735953730576761248019580808075029866235103583437933444788367669651338342684257960592531203061583757965020400971974389182157881100226849888819259196827712354135492936982128656903861622901620551221526633673402970489828766152412636830477943624520663356839331674181171489890876306773419796800062530806586381612011039858733529320960932346019695815093535835069399944487083475198969511759356987073761748674425341846203246752019983278169423743591438589333021734999168937398579877128662306781948943947640229834429568443322341984047865760026070835700050792552534278967153551175802088505168333849183275082760586649383813126327021081313563339929989964633491669118203135416727776066999517080476078554882984257876014790664453315110894720149378821888747096067171397100586276248506339188964061128239561672578583129334687483450138550807646960167723899657839420822966032370766483103334057485737196777174237119145732086624879875278260598777028353247122652438997026634446516513520063489963253242393224685047459112965969889767028613259956258757576787099024014459109161445188404643120637779576121409950305087372214104500732352103832561743634825030880634074000896686992508243628849272646974743964496133289594565826463649412915754670765819042761790237450766618397674241241079702379751364507677880397588236733717889784772854053104161542398579609678882541940989253692293009473811416960341573741455450883890792335866016267221319501263782536141503286538794588980821834199256718880652409848048828434016314139738513730724243385454366429997639572192162333047429384536291882383975060050427438901426840752538340288248691307047779553027527749192671019944652733471918166055914538981262440512936223733624795893930238023778672349926524694738359018129482560203251898833766991960365405027469593605582078077412096637673713385319717726323947704784503842974912348587176570226193861982858745335888315277857029575440962905530538478746652662632563345365165756719726601160725017608272428379664153394548575293368754820195287761723767394972184980667432972309412595738257347706111319207870392218985046129434647589336236607979777883742417635385674114370469776820489546781899386401902982977035231150056237809835799729542469782905161444699586891680050963602488998983509597924663819248954765348235236237999737182738375253208457486728027473996872019622673521516779358908749328161232577257502724186856364419114600137318989107339546817401120869241080106068153091393319288516967494016281864190809234195991371567836942391543282492908751658471565672301234605073917091450715423304377565383251443553239162471663891477247658936078881591430942579610191299355963938292063924844830840137925488914231093314818521106399738951867112651749803102501947142328669701804193891012091924440758962233671666128104473077357686424594107684807576799458330035058760160130739886329557674054186455933895591679705327199558866274893289281347411775317954924017127626305596644962994626607193078635125844301947271722263937354544564610968764822738150678936999425991942794158957532541201893269184107594352190429121204548140922708853097620004077656957014310306677981441682649631114607247518645877217689998909873910141449991934761652587370511320117396256477993459616797531873455166358089981673906096064515529842051885692317160186084286164897399131068648519144304086356293926890572142135239624473372441311486311053718801067227906208459026993316769607957626767694732837530623476281992524802419841415593598731747904717333557814406086735862755663513699414384183570194830113543904567700870336118470430262718940605519983673280408753199654264759297853082346579771125341702290262842621025361372922981307715509732461361712747163664080511143612788332805354975988391228626268731103318228554504712568417570715118439279235291270262164617063389936693082010852011153648771283334630973419756693928766353025268540227026657933639824293517547259077853957030228020707127310653578683063588998910401280783478409388401606449494196611473814096230045381038056984748495730659612512034916960649623202621460990043888289737303446331401665555196006598138866297071162773452727889554371504317627781071053332043747713803968488890615922990440204232639804187406454756633675802773962525196936720146894614421383028549971358250773066132752352424801461927006595005574010621899366822565459451487815394660439600721270618054508443716978056179393589523392489680897096255448151612103761820687889975253455227632180230001924469951014358018954185241808597777838570933074381455954345119192765243496113227290151656709291102359868323984796929421702895161077868184998281152848867603012721559770064395979081407378938061576759210575816179300661950679945511130812000726164697663871109943185144892575414864102281360359426761171185880828969098875942959199331920744799503056770356489270968871790632027698322006313688546768425569550186084441919452347287260541186292316225784376352408480653795210981298010951308058853268644462461553308061518209915777829026569438794761780153494958835439917217656642964277974783723650375439896163789591796560233390555625969222654135124907329219675952593532688578941060065699692081187416607437095050985678482683851092121347803423131379242204171868868980669658811996589766003960735516773234357354797661540758523673531073031213977314084379167122121836030919057219593379225359399699543438747742359472690963869760646282432704625315296824318245661804567833334751154855733933756449243705927045788411521540175410011004311713143195040084405717942528230233991737446630334316315800723523339648507996545122612443232176300528887106065976218326225841090966606558547866581518843413527821019118240581702562901542982259586584767380622368938049919770069472363862238227594274755224458120044035025498054510283866045852177049002771171943439094901481760140806859121421460677956931461614982690312934400101119235923524432856754379756995561006745362095563282760134445712477277389859369421814540529997064628142361015138754872972899984420541260665360068038620503338645869940275804430849220955295729825353157467225352050347836832392433502549903177911855102627850969914108153013439833727382302198551874169778699523497138075750614239964535619492768322018540291149768634680460641450407762081398537048193177781314018338967917221145234585024472966446704031866608734414995134653069090574323096586782620078199579993263423492175671092261439136855224087247102936123217499286730713566939623813998967899037695666519210738960116321724674150052952863701581081365061705355617630605478453051634122444876687255693688920288765292997574058609026337463544890335842436620565855665545274158582843962857806714373372274908352738098083989664238891685463472449686208623105450673793528577809721874069169410345080725283382824455266657012896487938442236206975284262492976643442765294575503266907452516700376824093915339194297989809029978850287591672915292212650347832795814640767547818706966093595468549994752164801996550075871937985621001321083552017466301581010194395513680072176893602058744304128012762416250866439228174471685103964220314612720397191735627405715910560755627605406164647749109442054274456544279751687704794294709665306354900760479712985877217588338059765108462454475483820687313499080843247919135054308092243216980961781519928703080943912006279713934523817609143868837736928724052133010822839830223784929501918204150355664133097640843011945945289293460196162875053186719672130592027801269127202845108263244200832984753610206071770398774380989088100287225052749900501373707064381251414753421532871685428889527188044357487870900203150759320761447371677058281827310470335549946414681148353842692305693864812497673063665625072006842703980703703437332998899521810983625572370925771958672001763304111586894535800142643999398519178588091440242817188932803937017954548690814014548563445955309827464518981175212983310995731648272550759841433941651513239930417614015230334336245157516991314076034926965960864021097249007332721362657530204359643695520361819570670490828513606238229361810556374384758504107771360011567227569232209693579054082420469900563084908426850547934087718591677463544452976944967242114758292039144949199409764914818911124275706598010362797113345245920585653561804220297216102170756090205139844211870413693922425899275739749424995643602790764055821044773126618146874556941578711846667908571029059414274655439773652759318473770682783618002163488922162296208415226290025758954250602982104000922462536765281222897618962951220920379980279958995640354648048124865515197366596200474864781935344594932772602931801497315227271841184783864457216130665891286378536576138131583282640342344230054054385373295443240464233082711092988429822109390007578980614599433897820754020306143014598285154607182812198294338092627159999261012919007439168636983729244135020776735859773562326102428890418298477711396902178588993283726298967102414008981509804990857306750419467010625483311946456529804474492697326479932754134368919046607382470834239806881983539780044139634965898649880321921462692597254765482848789069410928001774550553818061190879211823753755519228642592565514810711292520348796028257703171255704996705596187358836148030786238823468272346366667150358485746504236964051514077131079174056037467895124414579246555515119556011310352741817152475513723099124353439530353584933908611755947755161538045663710703107093291056527188512986943995287299861568636380663168092369568298242355439442777061971076676891162838172384908614401671716031754769013277451705001206956511326104036913162786987768396213164205035310998438746094317498951541859681213165009084326693628382611575773309987538453856628866792568303867043148864613869257553337249137310082455611218845966091671564183159314490997678300046249727768254599914221685803196556385805915842955605351572684963713045814128250065966088038051343292119644803377052700509040647987858969427413658383474719153243206629189054076532834186885540568346203541160576981994391829241896238992530387372396492263641285574084103486893189294868608202390569706737328000602507465002636995864727622425875589199409672037583631296668331652279745799850776810236940368443834818185688731199073316437357884775446696435839605161504657727473893408765841031097154905645925740750539319156285307999285151495319407756905285628898594765264104229402740830859446260357993584100960072321929189706214270061523310489848619897157894781017661432950361171798342619170604270357853238300815174912693390561817815663442467851449902395335940007813017242208988246354636211581552833603685055055135394440423479958999659315139041218402414530650816059055957423125500809998955712593179682239219737190635002975935692299289243427754946108996123926789170230058534314508392059618950390389324855699958611417380273245057691091539488111759547223725221322773692379137377634260076567460217952305387418160669387438875277183052813902233726850889704976774453434350693916018668009345468478407054959909833559519997323774492862028593243820224221377820025313512625275789585990492665559126485950539863100875379320031306668639127972218128436240686620910672619913663501280602036054805765647152436876588953199332268864671746998776901290176125163085978630939226998628698819882493337014676199595061643632724423629637467134342815059494210615415532238584694557212390346724894205836618169803532433193372309568533467052809904865482968482502510862116249798806223636877445989914231818218133217866734072287505665852530212248917641804719901517292848509090860093302593257619921255689330094704465612076965026572746315825568415800687161039829832648827155137607120182082676654214205390875576169683021473789462292525817006121691756312283567773532306635162774732188313817106803837897549964297727262093076502777512373838589856322914632727534679767917035335123053421738165045571191510925378461565707169293612147474921846066788832407432165067322791593112957210127316067822196269005888074124702455143501889483354025184079316485336558179262782554707296073862986455659224008962507968718155833445550275000249395556341648018673437206151968130987689729695211595455674064519890987323036369472298818078266599777480774719314990480205860544264260893768727794354701730157967856859442163879779395200291504568088365383934063225947686791707304510517861394922665571891347805560397924875741768687733347680115672408731916808198240797273291952010648072783671032217028113792066044948916095585289859560881585916993177058483727682903636495021389450411101434920824869685253155880772225575072810923496273912260012833025249457687931380536298595164734193399876583531027413918655072030786286421083735800473239832658494701526435177038294179404620624355431875011899058289451641378182301064131944327063752761728559490691734042691538380719467655939812771456071795961216149362789431215170164960858614144933049016687845754690174844597443373126936556826004322222648874729535579725385163153706899827440487065924442766214110941897153392337017959775799576901187722778996895040105819269673203644876277608924649012643616567910725535789089299098305642210388104863114721581000387087509225199544737808919626085584958012831633389504093299942233644467484230385744946257756155254276063550052335061660220213278182802044969244934377649965671861216567372099275613845957932530106914758970245389076067778845999119101319532118845669167678235425527566317412227367137236545905664842466577125841487271641425768883990448869034832951525597985236916573442634495590377018278442302687559489137981245199279671030803921800377610543014168487157095128197700565636032772359532408410961433721831582327593628043130504517509930491462795948512445510725228051697300129733578406903288706016737498798938613262472416872374703751541461760618568161313230220323083013831124662840066673492154447300305689484418520162960864258307149241851655897863576824255083327726149546051978299834947049244555075189003724163451501602555803451784472173723478630061473620890845041924750786417001937827539436804398722314167373917708017690430276162947975983606195086005443785305989836029045395254813049006227209492345311141093207513067330783571830284778216653450929079220153015923365597327374726868930198508595475464580806157466623004042072905897750031385315031558995563542053786696555067607531095793648091580246846205871600297058061345113288614384503074539742156195316977181179925792637606492205432212907904395254593710676306913011084418207423286980760940286502490692255345028773982929488753123032922739415453548252971440722284983198291721812683909164563283010510634016041091757672835551701745538663560431550466589608688792037169106364323118399038489999329940982822862765873218036362861520304933118004869893796005225196849728965403012687881699396446780188600028582316274777104647497964921747018118799294054473743784663696774430401858338954711854513804500603282251823779889585352431360042373270281798186011687008434844684838682830776889577510994466305354607729040398949016424194704426030637338393448050190344913892551984032288210835102559203300673811005827095008054543272139605802765086410550343146925099993636790049262801962688093404499007380341479450695624434292194161758190087656323571130354446700109126897959740950769815666147262994698822650973837454126543553194212594414542026956132325520579688061076687060193843542187063593900727963332075297581342688896228017307163134074650852507604355468464019530790383424191207361280002785745146728244564320380484652790566818628286310326885173638380762441619722081058361290605257880366953890723697945463090172734167872419084660077526706202038934524659897790282239942639124753653999475346510011555429530696040739643080406880494060514195383019669362415778207979799617961224564289232212049843917663291485178577125725255046694277908299106311834776736825013082470740203413046455766044361437748338200231073484325724421993450187487964132250833320615312540697659353192587095780027940088034137935450498583687170257676270057073353274109409731629444464312548682013854519468569476633387513161116747241523351253662401160910043391939936141787072117038016458769844223869839961614971080586282734725363147720123815809272546644297572512210675133401745324999652050293577533241282798660624304884663892587078043992479353111279774409395010858246147297142736626533297773496932917692134319407718097854385581446922335251879300867395205895281969259457423630351878123130891108704660503509603286241750506351981894786156273609408219662823262460478656212642169309486817963064400905420634581858949485995615448100723158215198828893607455965033352345568215344398103227198705914451051106110792752468072437364472968554475462174076271447596210068383048656872720742654494174160235493723254986896177155971240455436301386696866201368848138531172059883629003563732107046376774362541102528956745877776887431493943823404071332614901180332986019403186132592701953729818204774911142297743853160094943226323477048166333357158641355635252250168782606250135525104825247470112545836165788348008261052494900703536273652547275244260667627524938133113167281765145343904029026853344991037696389252740253198243222884176403820904780144575875475154229555299860221109278904670682121532568540546904793538707339714556042700782422944717781330469420627907777070416511836144526936072341319484678033105891356688644429480299637954356137029270668832675111737554960043786787524419502235698541059519430115360232109273857205114225925444197129218892666900739821000115768407627907924355386167832838831427838623283559499667682743891152910427112191726556376740058628019978802818639010263467905194566334482834294272273738877762341856904074416904894237202530883119372831989343680537049204057231463701233092267794757466071795364839518162101785998651781772916915215121660896176120726213646193563096233414041092909952068333703861285441749661245317686340686902678051748850079702015199624408156139146495049007307134330923585804496394238177154178626755102505621229104977511565473995139561771098523980864739680037039987473942339036770244425269278941502748423421544157458326855156833907071503629199217534330599810321427798392705198808871346729613728413518146504708306917820424700756487080607941333941554235663912474861447539344198270190143160426866209501661088107140668219819813268512422473439401050151369713231627480278482102967158679361380733118568143027297222318008080811493274111831024875330104771054169430660659179645136178690662276257168800036566127454611526035449138666959978058647689875999071672716929637294277973670613165539185838996364423700339321756442209258082665165200122997417045601570546105480622383642984224955308940172129650401863477517672502827416275266110418048842815789489614002660851456120979604177356895939878511880149365098074680452372560244288062079815390030784672319665800307004259934188941842310563510815451481253586855088535236802964942218107029546711818481082147367186321363163929748863439360258411813759363640548290326533059617848626102522575146367317571109933202507493832825925368861195784956764000439613313874544330980171379395265650570006122942593300228917127985987946533362066104514482771449983098313951045195361154250697994353875611213387401787852140908635607953576395641095223566714293131779560399375637254966342616787521251803324092146924885507459082485191894623489102263494803479694682492335262590627715566202447327895822722046160646173931970013823536865955452083190025349889921484622833539724436442450154521505063345355404036378642911888985836643848927610726775160662744700858159058647399809409281370244469679717405228557533447986468796123092414252247524930302431489256271459531711134226759683046171474714487589112650676105273930753821820939648654282017202030564741901186893325261891752466018420378065108913195471259540937224186959022723358790198944452663417386083270638306604347403212771058337698967985307627275772150093394031730663648401915921574781315560114768620768524549941594772796111310452041944321580026243496284167842298335216663286457937305364882343785540633648943469126065515132243214063264125164058350155088720908497682785461192769378326677289530497242900504043110407254279439403807333714688529888310580233538068155817951488743679689708568504865815504340664629645069719823614319414460006580364869111934710166143144715419172400585430809521707862739142750438017690900220068183183540735119792660182520772505617844543507844918612257292210358180362612240553490011543199569401952304584483154289180208284276188173173743559492125825270011721873413551541286651777618199950997035167014281432515765971552997094022340351829876408615826154226476085618642644119668145074974864003150387036093796974126341698720695019441625782009755268526659511590698574759367427899733070337532203312727755580505104805374183231987560388253049983123731472958078077160538265663707559508590350291729450179608412064605403303486426550309452749022516579369121867830172249167987507071114085740633169208970823939709932917176114000570797908054645990220201105869668984952396980585733816345504494835526403854834961534336306011599050642039808757173042869774891933582173804885336778070503101397177488208180210045455110992767810247369443401669979044235834988915818574423993395055994628963869525192665982302581703721817969608264659778044896647878158187880115282180918642982851163948940382030092293210061373324725983612984333869419524626858182664282904443117171440605434039337280840051240818327811249106109682503890063896421170515127822818856229711424981396900623685452840030398840753305414690114715616431125445377704864070519953193607705741496280145963305681924789682932382828105538510992766944518595333072773385225383449807232167458775211495819012172659602109829134165023304561829493320145409687432969225956631927894419910313152789963112902835262556724522903422592019878948690066102477546110836656198908211481561178897499124184656076662438578874100770519045222489997948078843306290144408216397489198837675945230779273972138998203743673932263739120785376058977460941075406812142329477675580748194559966895602090014320728624532078949873527067343482735926943708291658666936618284064951645606579293863856072000035041622334636568617985907372284096583811670272804230936781559962881013358575080616899613058900641415159580959907629831768485549354517399630078167565085660735739572905318276268687170436721990993280915395100761986067824022401605430700410169649646359280190348496495831817813452017944148931501082054498699237773917957285661153121550702413928814028710050173544686452289603013174465617197628661790401718837527234467046113212179270375114962242239273642992888646578011794744637870684208623357382972013774423414493628004081592383032322283909613478134175456130480357977217748646190267372811067813314087534873523285038392659294181225085170352440997872793908669515213257814439882587637117054601728707983053021086655072703107382167290047392367335912974312604556426960456494857744782378209987769697022820832099025734389295611929077832555565948633495660203952486482248870591092757688403358909922659599455885445615469860685785398215756789637398137385369875005109439332602443909547951444992889477385970954007723767672773631232258850938715354646865855427565700117437451852662176382739903786341977178650050584766551792487963994991491976439954781220214154630854838181221297193563102230562948664754464961217905067637674573777353077456333744481462781565835641930616783942806674031902641682058974758055119610339930598779735596755027482762302773794710165549727660977093205670483345440047947971616578687441198022394875589599644323776873370065189619565672786570639995882891164252758651634543226895667371467693508291170019910422320824933245998732605669153776439550443045139158708251719688018584217077704852393331646686092385354255003525464973237724377888720905505912953796767854983140576254343467102886987112762142945179694056128097924775808201118320905396922649594472438946548554639871890627884326327191527920694058710533270457365212750319627235255758638846531868889947849265146587664586052030981081811972550043890056791048807838438913817849705605157261759249164594100604920689996306048399827311586246734567767256077546039689529031418939609125750031942742346613007930172153785179418174042762450492397138446180582620393986804330791833315007585020520531529082668322605343668130634206361907918848954818909315945762168647706404706058498776768535984673765866333398599794218328264020409164330743081675953025722415495574807099069250634652648172131208281360820207894163417919884499392201520698151785641810190176710000648904256202103703721352969708048282133575708052577488428705835083152738694922387688107824610500410389466486895399225994616952636478311066493912438348139080638881499816332775139725645294256537446077472955196827232794549065110100253804114328586203475602456984955049609846176877362625571063780225048790838017511747080053839060936321146293357541963275549005050981196088003187901798814940735341545910650017672071671525436934390010153602426635690980015396291557741076120001262144250802453631659091602279421409630497384438090737001538996251308618172817605369933502639789681707756551322641235152631915616769228405091979412940981940359722575030629164570052940749967162998938175346560566224807946070635759001735568404078543070929407006999977958231029347838858267770863405942637302238140991582964774540210495272660731795537463578943921763112959294277559617592364415516663601842830147167398057410858055803688388611947456882129609796360935518103766698947679455542026478811591352373599359715259705338329216986196101332109359310685457771775294828199660641299141056041310924222955107484932274750444447878458630353493101431851316028410863470806798788073921612551858351844132429503110105309869479501094509211064388870233980987398291047357980866056879325915943431807790462809374448488129584213277851698532364199570443107243809753725248005729344658028208616663093362129451658924538949706402854274037268765795054873058906709484536900138472056322452907648583156613599593717433844824168411870454355954769399029441937674103978547067244214436888736067155471004898400379215381657985802248050746598686974940007403354844050487368444029964737413687938304316366053682977634215091253783851500914285787806595915361963736706369097151249883602955635025552204873732757713027844833497707555687785036970915356013897809999034242048281904222977402365398108065349096179744349950024698033440544993674568516701442971564501318684716609496047271322565607903027094293965203166853631715904658145621181675683204839611089289740081307629492327352697375856790072789505098328372723119379191073004114314144564461097788799421553550626664716302039724521894638620722310370886364656985458318263900173377342702208398486359499673203907579617660763545515151423711660668111429361814010513846751766312255428763029401502768035868672652426749843192601389146283076300904776426440986966632473411171305717036139044450757930927678076377090547924226075464297149292931118980247061455069025916996915614292893309866493249575134225790447025885501303037341326782130449880121071670109582406611730110024303861113818105039027868607432727118649860033868423076019097280782457580967159495604313846525458937238434312743203663678134640530900760068463189732318325973727651039422030533428716774857012278633121801691861040258053295922640090346948912720769892500453130863819157499483020684722366981986655373080471415385829927282995253040320630508494007784955804921333194109540768158240643454963093923571185740130570737119519615665942980782613933463898476394674341297790485141882223586685012172788525721086111015531267840771145844691949102275628289513277557492917292665018952144065597798104413069254310905035823963068507765419447227056163583414819244134634444281756323633260356663621471454636499759761674513094104960226953343848161678148203761284935069788445889945033106155547103736964430168676367973544478684741764982452996752616702540726951793564117896555635736051767294140876293039979510222844332623005787516941128310870597160780075378821573670575152107221467236377228649524846242426254708471218962454926730764846246777457461542844085535535620215068784385788525871289635344608552444672983554604516358431667599052194362600618913148516287946450831987497807722136365488108284764392336870695115663203322562103724077165655062205070598641720019927178288518887635927613214057632074661620113121245479509571070957396034797443706522904453691599517614288199403208412574537848135842589055324451231017246119871777674017954207310441437849230710497082811752737638325336874456897697583805006976607029643567321885311620240882598330880101565587273316849617345988179814136565097080286786646687902116639610646127136376958982953537616834903997165986577599510325736202345150077932192254034853364580679993908633644747360439920482782516360275360265125279626877257873604257952051489718949307562617699977021454317104236243039015070993173391966739864293398686176092260294401918617757164673320487610872531737336659556904522823716212324066047634061899814382160191186665477424304006413678047306348162176268130734897126077534945419599426787161690335516709916994331768407215875853257881304576579981866095476165911296057548767116107633494691720246087739751870961423749288800855217854243400207679000496794249033626471566800875025223218308033416521732163199294999313702805633452369132563870874747610984228760850648157858115721925764800444053098269168997895623038260842411677523854150917967484083075560596279578006255479819402217276806903828044277465303911668861839066229790407026296755539877510414094265175202279814397099295670503384689254554983555232927587936985230574283885888127730546769296232905615906564100082944981388002357569072187706458535756560509548662982642264820608704570544175541837301611681421318815536236235153990775742043012778002502490540972518706546902269592035987626331217633832671990325555933018543630753913205489961408726637617221479138687418608011168931795065593121124626472598672155455282083152564235264104951434395475165705377601266090867644423299952971887475852542456191798886886240222150479656304973012973857770074348349748870058763562425471097888508815170533439122589261054843188112781706678077321627561382824832373720618845263960006831895025583948233143814457923067273888701032415190537148307523421705281133735896195512186878021912173947086790350816299147260138322597425968446334181246583859937111089478742901207427955874187517378198390140824197835401641538678403590820111820832580417942625263132657835809602396879314060732321564329540913249946285874489495530485120917168494292651283806292216879089612223389965930648622971943415738452729180240261141623126029789377125847154678267445766208616954476163868169921004346865986602417607221043204687532169654520226026330240860228882646399899289044016915069449705773975610920920041207883503679947456136605586243726171233789528847033554143923635672889923360952163314265281288073927097617369347594499983606378134657059829379784759456104771887505062798228284549084137121568684190759013444182396723639090568232399020625144522135874391058202619584453543026379862688070067449005411977903135888378414936976627887324832825057347488342405417185708833998343971710975117707001374264349175310793126213676125442915922688774446946879859787835540011040637872567586992692167070319824256338773535057887194155688680690075723775552941521796857902145419282673457818254617284841075784914956515470144499543054380538397036859546214706887637281894415035655375007501189763876260044749552909618665402452429803440115525799073005779678282063390144696540221038002260619001473202070159189366272978851820111971204285428806445162998119623574815808281169428780492330961394682416261552252590600737427182522051462063829348711663777361961568978169036054925545330143004782856659096965540628410934525416227558652152198536222303521531444914352906366840499943682064341814699879099377609331097129232860996302791858624680682716638153886871241821723485573550021602724535354960233320324441584167558275381371561111297301139149830690223557373849499104514398760103341598683833831709004232042995504797737368477810484337734961395229080456929487223976315987964539947192091917474946377834959300219504353968261900146042207894276371843968615473183604831771995354875005305321207655149582328534544626457591226798544588112536442212008297262506194056431384831403338595283143239786789120193202281738936954321582158792715096998078376612996682503477450688453701798310488353956230865074230366234693033808803322410307296001343471017282029212146997398885983041182593533220800523286458489067861417222781726125561394924784614597740208434076791297150124914934596350153318623817304436935515398671108676985967397996206568467335021619161388283608630253014628254086225702524395161405828226575815347718083858010121486106823569739291689668814778048698710456089035958553070060396968893212750802296809575734245738122431817547723519470683801315846877761696366652036635960013306762677493822436473124126814092534230840537562421152509152700897105446664642445633216682515640381655076156979864053163708680694423601558854475631844974559718322917343005196926775514583626589152551503439407829098658257394272640194512173717857150665527391746040811820727751987054384169809934413961686464629971236011764714786144419701479996087267075065112669954155356997517288221596134182413273643533875612519278869990747791015378211616935577065547174114000640879062665533574954784590121265807667999971162802634377809173602715864695612819430870620005657693624919433781646512749415832428628955699579308715881722086107102083301027540508058761193753474113686303925310924682296614769377468217345125636983663576064857974633207708254286362154592395306443536009334716081044989582016425883347842929272727938990254767792132991304197757037540512744151224512672181022353607263723917850804323228996349010298678638402590723960818451908282282436763545810495392833928614479877290379473180352747178797728539190399271000394935691589357379345307618150414071664978273489784831980051186485903734189776014614016728013324705631509809901818731614126428462691021741256735237370801930736989660788469958438672584260985445225283350282007044410326585059998628649250802530747241258953234697768040623724926327972432363969235957888388663640863229247681333413997942523367778076301061081171784025576592882214304526585233893843635520200948873747727941894370812533628682375817929962552061739305370778921874564036525819031835626148635161075318889939640791699535021299420200424738034773433125410953633378936621560468481433423517333814694295610505358524411159493352461674086405565620790777423406682545490137585988627027660705860279659486051402890638163396445465670675366552458073613303876606587624850766035207015368829992381345988844658093866297798649116922348823547758830903085566109693687538369873476135276189814379015936563763390848370050293389087141134743191964213857218496243578330552736765423679309123521470666137237318417991734894817690525138307486866314262386134388855474358558309852847693363732771062941412550876674824507187930109159234965709164845909751854748984673874158542541744004042403336216884111583220215385946716918765481539582280557381684897671501552117003400097337373024076745894517695851507607604391483421798156015451744758424915936864804990932560276971375844172493697543369925318337501356348083415103611136427406975467521688528086927428821250394383058793325495871471537934628181524745241242593921665546568514605084999115435869887533610728858076014163401677505069480223347002114352093102459605805446510231718407940558352416461907602989440426100686864847695784502758283237415877949870244450051512109383794541169688775937208460235843011740373295559200405024207501411807000517754772820075170586771777919969373382544952493776463691888352560223139450934140833346872510036265172994004595201209358373123982101112289180204632505079051373723148846864692824725101583853053791466602633504002307084948935810279323157614225084649205360369444585634603547480587302178006006842500287185822398135771712285193305976476150738174387952738315917433356466405939021294653570366368467631861002140033043143747898904808855353113034398635076433457406058157544033567984951363799432384746291061311226896313213364642442739286015858777221758364651218507932707846292887330938237264548207523898450142745640812937094662005103448055655717028385853254628591288848916025278982705411507835482051284528592293899943183034787123717695794237511882197742011144230740512413129701087992778402827495970269540839937074673745691690435378762855852398421206550395132052940054539896995921961562531731280456168618275041495992066662772278122191178433236291122232141131469243705858912066252757001607076656139385528962747957790241396905672133411647097075457628130372644432121594773403496910063529621146242575933490868745675728416083383099863332314803952547276687499694132495605902194822494663586219694798103281752835483121905922299127285521252866729179633651007319934978208556591644783478761525458372641916069930053717491739657937265878226571174117574333132868882266199537216000288741682389492825363859367845103559964165152172547513798730696509892209317982026613016908812747270746909682896260892563079130332636155488434488686162455825086933749679044790129820294644216904773633606039204022929715158987059435326167117839388735295277065464976534943039736621199710348971460671290366921501796695864393143266750491742287461478039829334671073646941300425476418119930102174644195615235067526824095611100288782653359776924235810706991336535935267526414406801610375827584229988980360685240665373040502648765804116728737809967956349392801179125367432339182530729497753801122854920765350787154900822073397171732280494611906380191107967716302469895672803764078628215010347221714504384258675840843367681323303110647411923760808817993742768379225629161670358633961395888283321636117378446224034741829680706779980981870701047501196145867494413568012923945112265824553805755935715243661684160238250127171359640002294012776311745117922002557299447299986357762506581317870379494802318529675808329088863171397391133710768319262228493927399826064292795643779795511509935068528350254102175162214096603264592096661085466174172184972115819288221213426318428527980229009073332964255098283894931421216627113972538331260911493062338340546091435471649855242904976667977179548146292374349164254266783842443185346533712271199418232389776045998600778927548592729722246882832661364954303683982877202783929976967897133867653453175846023537772791241010712545975147442257995340296555805360972779020348617225537116762120543068524209284699265396130017608889782431797450822134799776441874624408502674673372068399596817381739473758669807005371762975805969859645294548542824241018616575926929986742869324816539458428690457307986710954444861908011067923277542739197647078698325310530714506068281474248259961759617578397926813609093886177778053764151142894684560498695945311440005917892818994714035247395900406964172303896461498152479202684759728159275550313373410461644771863152884755243952830555673558045348271040125915014866952977371372152018053992133730707319110771747656201573401583358602308184428205073543599797049822191083659480542090722972039934060678350297604012522585569933501722598736337187111411960541536457810378962740517047944736904721470524357568443921801010888029118581011490207526063260198491186056517984243394013235350117905738209789746576934675736643894494106610490174955511914129309574686956927106061363313302412942727961194416700565827684128890656332355280076673166256524795676030958666911946564866875416768888346783491209264528295246221158060422201948291945831190021702535035917263961822388858152186648992703236985257965692824192254722264306822821099378566652564013586193824912933868209810976679969607642326255019132345862573899687136757183134693214954995686959265594366494493272093446537206920588765619914752110818158344805817846308707827656411974598813363116861808614284477874073973724010996722626148863532189713412734513307313065669174338068800045967235026160193805816735348094846046134962032375660140303621650455543106370748266412062397509299304063460403882692423148768817470853652867595445861625762629735084134941651424864737184090519609242003940051112691192133256479343352247983343715421736599577912507750438756709802175411201691284665768239374864508312577905930706167578938298449737414613193715032914047742575546142127357241205472688779273381380651377606489560990594796197779151385891549111936792429569059471922101255123693736344342485903710894610599509163883215760032253082081654805864769682391409428869006563097177725828678135567385003206842931486374828578400948322118781873564579102873460184614941527598632917904626976477991574133268264631873112294359344840950009061559834051248202740049972504409590962668995649989515031458332304535530234194610123907619775197291873709013934397687603991863370746471571071313480828879070063194049915162716945656072494415765448689227651968851451798870058935932892239156658354443983299002984544742070940305972746932929127147629127021938757767796775723306069103510110328359056218777130433384088419182834451727251785363207819911183997160615612910716211288520102706497661289582585864040842018945369610651472919272483520750871654354382761748918413677435974091154102253306731603782925403269417019985578050438460321182049781744242783264368715450263817648459739520533302703540871569596742924545268760474408233978564213427592478240362610784786708555663633798840877268754930991290455780125338069563722771670413988070193289226624397474084121801968480342657715811145976515808936781012148148484981718727712524611161897216092411257619763479373851337318845749558716196284841797482138037362911954844009764268209934525026930456076363523764567506314183626341857531843104484393151116855121377718277026277576425077882415417278327119076101134436332405397696110811507752686654048517478539055959046416560597964776047474216720372783200746883348718314042565329239090598280579838105792357892861810607501701717301646926409468817324330736185874095489849557478550961603462355863390222947896966993079557686358178606125106549675326139343978951574976052663817485880474193559462583016879454281808823356811276394619031863673516256153098000699072537713587550765160756271785845040640696401601333629150620799777784456795153518147632889427098896422348880862705894705724118843685296642299951235717434521010380099678588768326545883143310430032741656870927016753217744814503663632618082139189789560075858777958800581211008934293424723939342757390994167570187066807006599317338128048095818176394769638429154485566050651003873068713013223891599935271879075845123769330753557072265964569520504973788459548606753928025126355247928946013539280191732442906147868863334794891515015872365446933640582599082438776367004380738974317348971557965793834820502727385283191674623587341510112311719379655191072858398373298361454189091161044843830266169603053490524305812682459479372286113839080586350459817196799253971491954976353560835816101000450158633695131124211448519942674666337580334495820745557822629775267984679989936031444476164853454176371885247911687956744541943255235636658946759537275151804965172804703789691075848477026811168203637450727843150401373490551942456824839911079227810808495630611535984108716866972902630916040758662057274097946360311564241137432668595162389571427060818026252702995006116653228948273970287372561773079360499914356381803040648943828784150675188149644174726597177756093982682413879039610538289688406397766911137301936981683389719813812694105411684725121025681852351865207953265662233487471560761964050730115921309831378130997342257621033823282399474678836893711372275922009108676752327119469326652099222006372805987684007601586423385408100115363974273435389765419143998829292529638587575410970257724352968388038739449058575043077224230240045643062129984871016471819559589060766408168991415092902499104117280751302367303629449444885070892454992319197143419125224567587070878661354205026123249841149653472504930221646254459934991043272577906868667514783048587786551445415637794665372781688724945053498287015872255521725122597230543721027613065827232631541398157655433655368208741450290848442448430680439817793183375375608591147958316803474855077771688408292317499453088053039471241766576505373744230527188267997623853503118371108822231075040306589921964835316912059489336583545016890645726917581337397213053755930867369809560838143404701315926343313728102542929204278705070029678862952307034316006759752208404902327900317944639984112522762290184903004244444163767452514312380039995991857500499961613946498148972265696311650839126271231666795276046174971534578181103837167686603904109172838178068069146310656088607979923539871252111554582402405463532194816895247758487086174164520939825715597880078506108991826974665105979874035594436398064354508525700828259762420359448450295636352160588267053553336245306666290326729375402026407086807026192063234357830611296649319522475148153720772131920961467812143363518970637005718630690932563397361921693434408940541941611743004668931027733783064713556069233461245820975411365551347426194766238371820244209186639019890635248560406903982057509118341217773779267992963600146250355873320017759984413596659995453711733297186902597172922202701896531402031594031291141564403313182231622362804333209080168734406343400260210543394791137765215494479705647175036826022690080605416542378110967400438183220248272800384597681490836754688051945087335884835417860057696501622548838374252812236845740244658048830145426210464513371552004941047455546771310069185901856632402253758497653767740903393876627113447019664850833979947357363833976986238135808464240639366459622167452497757818161188884986588879856894908364154590473298632854581189037716386350485932569919977576820187430627874532612012695342438063006056838061857571564754350722731556681837835579584329001859828427970418048069207624386287296435756107531757499159807996909354354208376382881494729547841000854734052166083985670353681662895216060772186009183548444978690180230491502864434377280594392228008180957970470641312340621687802681134448447318745290114126266145518744863615722265197376827137813983327773203518598234068675728741723435740874838159195976190888999389632465913708335803403643972391461102611876030734672852532632593104415349722380908710297678309332404539076390504449703844407044068096586151312564116358631169128687766822219811657227436062794463705340266704440854773056123699203123042877654173634109459840941388858154560442595768719738066767808734167899246318521042858133578463207055048238149376752868993300213325704957736701984226662755933992165307518067887392184234974704423712069531928129471019426784572881907463825773118816583626648076416335033718282048970237362864693541611952783565600600521552190799839709035141511011007696693394800575929719359749484644655638287501253609745548456532230717200505246816309622388201810043116362138384734020211586496381264271496895072738921324974411445506207186352364977680105191755025803958272212177275949199520581535762316389332151414724709055842857654070129027004167713611141632896832316678080422369788901081335622199693093440529781076329664390862074679283601159813691815770111558330524853553828363503600760726830775641938562442275945014412986301264435328742422022385541146594210376832772991623581782620552543111051515542615928702189331273421088867166350451296088721551892031381794960970696111106999134371432484680538579537481708611616984634834546930247989821463967871401521074910794864744076026024166391949619890249685382775559640837526976434355949483234252719174617721168292180548036904312741229420251029152444082824947988308266442526963196965637507684948466409414783333740667045400414573365900260604454235682960802149676426344343482336596962160023037804307388388525177980891229172483430338250415354402450368578123466533220347268781071982085881594062681209300425735520927461072079675355725137639059865239577302922431257302904300548437571980536689717604654349518940407437414310932231948460850475397848064255664208152420194371472724909561704908946078405972618445626194824769092021930932262212240260144678646207779665683729193306618002108635735947609122727031484679074213406527099490386645028565277301496006886560400220303592750623408914449976027125285823510987220233032263625331738171721276891758391155467950234905420916379211754405472569516335495881651888784950101699105681637585688493102056763027595875563939859258264587164944919072829682573719869697766458986978994373807886757216427489036313898500977994418374720982289432806460075252804047771511187780477835357785060934029156101267049413269984137670170437614155860101165595548882693901712529918449155214763590028384045111866249937638697944982913512117032933191445250003504977956746803363831727150260919485144856182488700058868846660501713264328117083297341470149751752053202770847224829503515788733168009298535748184399959250988640595110963369857967939517045676890133675288855337382685816756021077358321583906452890815498433677595722172576486617916919232768047194531577859436722355980816782285705248405093613118572183046530596675083082699821071150301381264913484485894143116795754815581087140618807598645654646165516672782456413770495997562947521969300675340503572569669910593340739367258131800996066462719754669408979088716023138498081947638844860441737131590018147709601478218430624072656825577248197067070231691720558822463494423391752772512789035196070718154209147153008513934640174893373383255507915315515012784091039141013649015560270116485292233804015239852308175748981072300519872577426394363088864449402272301992042379210789978051963742151612005754127381283808158917585017071334693337025152417861527523153210393381153388599701349835464546476371467065692941103104215572373081994693099190635115269644203185665058351497908474849604121135683687162257714489849783684423861086741580190253973896734435589528383856272047018992379362081045654882046741556059505728281216541463659785731462132530328009674569911923721660399553655381301207369528408894250621926490588006878172562712718162026045728057447085077245748062560333654917659222064728289579020244671976620967578396134207041082664649879285442598598683109063454129975776024480358426488151355700263319578503059384007491503519704254465007067101133837081417364516924996114505576033159469606429207650884330424869700135180683775904962695540377276620733643171999005518859847333489916064326911393924176685789775074705824077024252886210109196838601715497409211033951793729698611244688741057614278925572291885079185559451726201842771605402012021636558808465443946032202789957812547188296975764957429274430920650991351983638248794036213528670237613450546360042602034872797102504227905348886301035736094151740579323266518722116855006865160209669360539865863730229976122393459546704589468527341493733540533633527478278865129914725231114484449125225543578219018380123322639949497553549553886664650658077290237049964399935968916038929111487504431964439249974345243777368100441395242409343278394611500118347537837432400022323750336490565402311863369586902007248190564820342986019102881639071866467387185171816623697923046684306697780073608250501498096314745203142109504700680894746137115018919024566968748790155607981369681375688143135908650639305161278559007005814166567034885593034691637990789241436690724576634475956864372220066047739141610717136817023463493730300012596239075256870464303369830684792426958336283629953242668779173098837527568486034624115768229832842710250046603358313236003237090975358898252391635027007863782521319519529261449082836508950765426270456245305564699805683946301865492686561413025439958839702604582640222653274743285496929680843077258004940736540340629973008754779795223609668910482423777819087962701556813845628749419556534672852206746594639120904047085003726060477157975700582972954144924587700838387086619667776887362591439522689716400537687281426542073195299197666590891583810425496284459300543986464746716714644997982608851292544740163611306700556347272205691375020205144801586752574259055102082535066444350625100496009398463195615604046093644022123042239500097455710229097937265364050074266637237398719505136049996933000162283235459892324325463874341199557229916966357183286916452719879174582643817307536491747767591096194581495312642700750562217134549479296832372232991229069907345249247512063247240186458908756758544772800237978159240130211534645985898167126590964313820040066664293934744986691683022784021667070696242755002494870579600694908314195540298675836471744976681755366067752874469204412863708398484085873730323605985984804188725264018454473628146659969753147443501093437367624052296564829421822074483022130707576301114004992584249215239237776345111530018603588193295264620212178350895856664285233782728696047370606693138216820701191984284854555136987697213249045324150277483252736676813189458062719050490796639372835163909357538173522137500858468281751133072456612457560067224130179572236566547361659864346978002938161998803542285540506625229058231402204434470659798278278733169309501882377921640342202406670477435319262695599428759052083180832502819749689474509316367309458379154779297354373984960156075676634725747964583578940025275874633662205382620705285507862212539878572041296900858190994487748807423562250250955008674164546550888491679542625866160298236413738742663778500009747122638983377616960708543875994523633969671639904488456266537407299676055884004223464321962578653774297807861110844961518349537217131504403116936758021254685461364920547076096003029079853912532210580353379601828994617291313589721244411168634495815283573267047270771119326050499616702217667688008208909661786023322058450961964171933435122623102186705236861955358709037613885320736470711141713429488653990912437361355974777006645232467889809594045743840789784140316921841639212429293631887590044907680940419876989575566825563580207815865870635000085169427834462014041471684608501524901990727065778157072131891705173229890879766197159079732503537461044833100884937095689129359379716540255815433616256362811151444783551272426905341900549724637912613761822285205823111137488786277065334558310921754668587842716373837114260201869627869341926435842071696009009870152327967377404746883363166437276095168084253921644740266834178703877240869783746224198699980160589668834536222933476005669137365317461319577304489065051380165354402446393008584583040278279565200821649573716959963480265484615226726280158225650447389362613449242282882525570327183162682741170421693894232582948849536062404011730617166428394525655464164791489619944350632452074548094892887729401182571481461563203405855799889538391765283952475021794196455851823738820173914093700814337365660072248943973231384441247315548344809504014897932721235310658949354278930302749731168471650069469692471710933663916462928026833043643964597586864758712574136060417682020736906311324667949813671351680937840623875575422144597605732693316547794664909983021880818890884163630025903586246423975085478678873147466847490692869012089843779349621925147513319063624618243175679931989897269090890110957674212482301093392986011014748627048596230382413715468415165600926401802736930654435485679259302957924259239928398625106316299425140833045597816944767734896470976943189170936352776892393861233718601134982465802688615466602962768722394716145896207254765746190026197599112523176710798206704823809664882178300624062213406746572257209024487698882375596725211661457097587888839834465721886259956169482205538590336846403406949294598486770896632991152555130396253170453311822551917017882068285339002009523087211759782536242037178836333533740646707070191569472464395493005366980532964846976350706184547381103509354367479482796564772687685765820236835903069390523350595261082258656671574765014396596848220912203863306512392143822560393827084619475245935216144664888007406192414755564462972833379815877005741644413961598916228291894930716542009450035105264843301354084231952187936664297014788305807851992286364961900456227841895382867741720850232724368908243798152791840823437081787738107187482336926916306389067775342620807276158897057101321548553187398268715735455849242126980754026866555388264397983696241148357331460360656166938165989504754069712396009190188817562913160385670653411946384052188751003742089774352373237410275611590205880574370113665111150018072869851139163296856938189488849887229067469489043713738102352123320370819032340521809220662708886756098181136015035891688252443666527172964003019155522401800830575948007423545968187786817602359530379132847428985778996439395068916992360560292780428643843952120534884368192805989384086719928027194606835198549930451985850184694276618913434310195188684919143381550509788205047652693752372099674184910054859179296624343036194351742885562294423316611036288849831070308994494531755704925944612413060078176415009367965931472065219027833662503123118237550588653686355361017180230484067264521341836482461549449012241054193970215324213995218887578307145146009365883486122553433306907883949742970886248477640042298227821561323155074519236102002042232485274290692971649480775355649051009840845565604522445635568159774299888177927111612763760553960320619995099858292281561852082982164111729986625143365595253611403378826672216123386273110220279416227408705753435930795955869034524394562347809130849878937026623946812620717698354542954771636445191493540178674470792698853992537826623390243042115069436075139337737086534590759326541596677687646296782827618532940452749494705208273128612054208509252634561590766418136377330208984495637018024795273297606910628118012884040427458713054826914958857523728297494961211967576688136036506312592691232107074357553560712271135609419746936603625588167513990063434664387025767954261553716039140047305135124710195361659913583144062763349097347570832573419539992770907795368781363520685687821378995715829220727743726758650523046118853710295091716670883289885290600432872359255076246179649292427932399719137415270882580146877741039283259773606545232637858032756972931802504208310370849172754830998899514273115303389471674604468178191917011429568513306669412733024844290108387744576176680050441662118615144762059454654574731627713490958056034211206480875942241669249417946526266547242930146575368620576636408247948939521014573246990564608757464141666974856594451794572676606305826549179860595607320337741097191052556232597042952250311853530790556152766804044412843111205200677021156293714324212480805281144078654918033966205168533303737582613204147394629110496971939023679641782827650162228713281963754719782944873453035375351852920208459678639116068903839883183649530602583293320658576981914415717751423645612988110490461898063493216686176679408258380991132220293973662063517057196589689081358568726854700513646543000395925490705734430198043163602455464086869650291623488756499126289435396377981923267458050792898587215120330345408012109818507206933937154520899747289402227950568934191227987896159683659237954714353674334042565747281685895646981484068411792226864891579549096448940449072391673306824234051049220678801954238001710743446563173249459585013786007290965966624115560011104492371203173972083021888358647150569006908316653171536434535653368763210259401240812224035835209463641758325731875398247229745786354932609460581304691793136498965624537859986239029552523501644617059012755289474870859372427087157343771306851756121599105064259084450706581093647586591568879558803159666071462596614264051853724037610205476392104204920240496658674190664825932452289038808630557009914729441753545384428660828935841348680220592949438471775483167286745400988710417282278157510134540882894560961248078723202583536908339680807269399306641755530723544193823571317366314347275028255090186409053895758932202205763335293395457784983160528311544058444237909507363197490324481069821242461998977595112784830433100814866280242482300162558808970255222587898979986476335455449898837934419348981990377900204366551863453120093165874646600354082700615196293963951385615970527393086735742257747389811102985684115855662779107982933613832979308525455977491428172810053997998884370233884000388204988293009675406900343231929609204896537426652726737916915520458856807983296308118053815266689986515674212848431837402806293466777606392951747538888042304700833796269365415395234872570709639662287577206393633613586497949503182810008837536003912295777957820433742232186444310369334482695812733720066087122540237869052237263412417803547160314438109043236352718522773527291308202989708879184679189882218058544035549591901995677967142373545351938653391899157204933839969753769715105256913057645604327707929640653651881878859638559220737022586297086043768266527232329312317970535263112568779966556717963690321986531216133310690872766934146486664815816921974812953181249800851592424424753936646034206490127858025113201105001534698584811949436501551388749110881105555606302490554897540806798553583261212891323679528745876729162091753457060525887431952328540793815070144097754905296440096123407530366839371730481185183223543523122835351878784117864630528074635706139034038152953248312373755216352734031642765947499347532735311481634303372134521954544900947583659440307079086341807526610332615818650209770831700504312104543103967020299312360441845328919158914765612739645808005792363401294520346494428894467681548052373121651211268323837639220048147615900503814549653426144529139031771557421945266832088675776914286226439700255441870826920572922087282611205552723609583312974850151347240425536326640715336692569010565460818038567271911887883030362305153402142281215532149055869006464125376411784622339788741062648547576976823981442812292703413075306464705124021453893510279902633927202397030486520998323068329260666782695569309286663353400697503167041766617634171254951464452033196345744179398689094002942003474329841746873029391669359314199806950008876342412461675984267438575344735820463593593406248617883358295526560442499369614283621484274136003163119154781196151195393104838049299206855848673170088238396767245661860216830340947431088471672772584459568463402535714921322248975999256617524951950287020227587091299508034303659748711639244687608044260676864627319592603499587150738471955269491627254522569616422188533447081346592421777119183160833143618657016379390056600965184201914649648359690727105491668189071572706269004720246496538580703396432425629714832987808823905640482098057890085126774156500717600286762136790631434896514558540366135510618309913278999210837111694948614200788544899565195896715210019185532335663043924935128480248511930653026303712595182360621255738603872505754461769969980475203299491441045422735146491827421490409226837071605095997527290620713749528526323293939194752349649699671385009823406748629028729935278297109693654122496575252384533987806204856446825533061442260120590160480186390902938682326239305080239058587265621912542206578559195197286995929498067824947637407582415884829712279818654064359866424605582866760289916207717675389650933703757513783470899116338418754901464277545425222982545850896857560206125553479220684046316198053555528023701065601561067044278752623926182871217072177450839852221013528649280072927443999293014269693564596488244505478015465558934117508841412138495988266052780438127081496853528509058364607593761349135619105424451262995647166699115609042128860784206812539402040473547807652925048822200361786157461016804469769133740586260779420442148030729698337374714563748861156278684230046589487331309616522228236297558583140516909758094903676717386259954301889419605988126842590115888608273018321149076916041520023238804255952140613411786471182924946935890884157421121465765028949190372432700749397204308490948704737569356068727000964264372746571580361957559619122132004194356635900468219381982031804745089720274180244551047665492916384722454575010712307849927032005378993703311482884573570779929905228182132348561786503941465936719048377733827858846767801909186496478564362353696500854193481077364979658905346597008087354758701122176205514844945862787118351418140109056430034287072143693850654247677107971176101353239623025329480959851773699763887636140971118483171510759668540215579331036451452714060945855422976198979854838860120049854901691455332137594969400145720790524586340260736970718025962246427050378083624408766933318333387409832173804068909090191400925317822263270885942867043962479945001938741983396670945246823459016105616313877461914226551988969891029299343221391098401081042542297409879161873534798172920828281261299886569201278984499467206265029645870261922197110676790442534543994983206051082028850690626830555434182103094572941487743479997705949896792985385322379194382077996720196541894339379450469043331180178303773285825247160571127063706043411416279712504811746206362153074840225261599688026818158709503797264752275525574452822935230413409941128309225910475144547493197273992939094622052424784147918764632129186753285413507437424222190650948337402719308517848529067088109346456314366568310823264936525024880680304099055512883702390885015157271927941760222840540281328613400140901932563972327801640335007278068667759671678347130172484354141550723284924918584398955216381984492827133421283303285454113176985867379985170477281503836240794818822406456359531854758027537956130028924634505897479746288700609720831747791837716167889948486187595044688417787901995890553381022771949225299502571757060147466962958008009373038371178644124705750606487177237181616844339690692662816866696480991913191060081769462437187543835014545436048792817181857984525820365335723866738391094239645817526505003927103561916364967602545822666704157206080388777817310107798144247385989943305890799207060337167299373469347455901549761155036811771260722931704035063256603765893275218258809631257218716334863278602608555819498028741648130748829022783113028580297816779533554875212322678569243163685787774150328874075068180828052380421434857068547780828653046908857601811889520484606290997981449007005051700245217655315249806648274528136946258816034216226815130845844229817645686853981092650851908869032985891381585277395241782406858174067349665486710445856256479618245020843440728090964128156305616739089538467191606576331423263089018528559916801154791437989794425570162735355829837300315982353564922131001272593158321086869328800903732791403104604102556260538013241310930766429994711077262104014912819450581657814893736491389099233587114887365849371647066216975184860560650937077940398846070269226211051729390415607855070584887765144191388920019111383587993203183600246947266080016167082106197092738812962289167879930346702542356774145109736577561057885026114153010187164992836256983227620391534109458479032660316899375573604432338535723150044456632195240340732416673282228974572295820197089818496079580723588267731773009134834266996189490741515962656513053742366909165860663666014363600967351648581824657173177396755173175356600376481989202801560169996937231868733301747829379095746079202416906605237326591785854828937763404499044170769953228709998405778072497209733540705654090538598674197221964551880342929519168548617369600281416738318130178172850812343406413440851581568562203046089874976217883565541935134412131671208766298912992233708051395268042068391257527999486205400178938344382382612463308849080794319432786624245544294185178232007123939179526573504993596061991869578531591117927441178101332341309985628776338967179234912018913155139931411933448594292352732983368022777283135256630670165136313462886054984690900481831103617845046792262035275576906384327727744656286766958464382820527989058574985409110959643832032969729309944413452824847225490336321235341855501003614612396232546419396894006502021835004481237568764337269422457893194192516154327373404677213442409416429549389811064759711069027540230236458124618030167287798116248566036293779705385848938107404011832215435392902378050951605654407224775537625443803164064083496966710380939508505272534975904657342442582978530519414400862045627197836826723742383446298472694036217729676329288813862038651414707301267858131546397121695672098514291094526685294968370530806878742664521249589703566955394840102693105368669115500835840469986745723969531392075376152865781408972529624330865524835303403211352398479314289028558721235012739908349713369167153742358644502254652316197414883561902222891708661405621163896124507205760354682478023224396133899433655826475283883576716136294766773914331304991673264896263323034090770255069020088941455922275197457542597736449966937432514529588798335837362270941136393479747483349582722302783763955639510086114398101279757300719907892244034074942558276007532077862890348525720193241452905451427197662512666641945918702095673218999770609409912014496288563779212320466228539977041702173321726696796080683854158875151213671160600904544694005252015094943748775310290518983180329421688890419521476435563697593564463626029312725061856669407279384210788512529966881846975571458633320999769925020584916842506990372087681224516124024711200193205568189828385927951180443427802131038912230544653813589471138653570982601865469868775249896821620236504355793461669501020597104997314602495041923596951566693505174321967354662600089525399390102351910481357082577131536749964538115197541057491702952147387046209814039708948175053398317645735348033232036425090614432708244850990163049990934598361695058698992200797533591293320193413880214534265223932648438894554822767567755352880990542259002791291671425985445186766072312667152611893497942726970648161913947687001043776066363732256388871696833043794476573634890030627530010717653531545691570260488436036105770592564419042461988633096530924674773083110645771858388269122375581481725115733304029991632390560451945364974006315395129643758002763715023249734238130472348420046406007879111837500774639703862715024797016236282098053272223637975271473018756132127698555297635051539800183216605817431459454898733053973522236862836084791872858927256825788179263608456280602946028688422706725917558552705708934082729428860211036101607688935268264407315706231817808872817796396781675234937065685478296091974561224903619685225797590512624776802141664023893041027017093842154334120160821121786467443752396870302039750957229844555856684555900428731089482549926041087881540326534202747213929802549829791827316548695396828621893136400636901530261587538618392633112849087509978945621098907189796293747202772911216055070678804161982133182614589523714038487527962021923353856894329218842418069043190519057761700175878774531392524033951319254834012520020632735327910392872931147417129382455246012505756040110535971117211179387084755698514690727839881495530719506156309825582146100671455807635361422186578491319177866033257526502411020564397444168769126711493242867376042412777080331458058660381416574739625341049681272697211230261456759809484309591881969171764195815410121161072033164469532362438608767463778631630602584422295809694814913013813397389611583685540583939867108548599485608597889384564094329016330612493086049270959736114208842782729131643780113973158126396434344323454612344286176128904226190345720001247543242241896974442366062834833443712621679487750584547948911600409644664372638736791370336822087565961408470623372934119788148856701380022814134112875285025197723488746910213844523733123562993803160309994281020975220660050476101129229005062233526161791689960289148231336402754811886681622479565853902662597278161155389866234333357161996701270788124715045162791398897471352947771378474473477838935686685053837953268193922034915317051590818285974312807146664618006785506661526239510807385024076038176266562364410087021169770559735468850468639589604490012009194918195061621094124235880730855118938050481569294082871978545761063555771331614506114055438234161903364892692191745294711255991652511809796971307897990989236884185903210250123071716672413056605933066571186377990523062425366359723419551760095047681666896413288850265331048017052226086354388107934985000335985593011246060151570511705991982955832297655022282238368419816014337718102709900360209451388485876740327652003433786938625690380962665036231613593318473212158646008155268452128386311046969204991435856735330579035491877207040607910451840945852289282716456993593044809746471115152087026994341895269228657043294729544245204745504716946314704745049042576338696479565842909569844833332532022767077166173045584838911822245348352448165796992823240706840440985013826263178741402881909386737742251625084047810146741159136643468965651871030309147238703587924344133724279325192539665036110805900273011994573781730641758812387144745223902343716329707899426609149791912729075155113286012444034581768108961843057161254125514163889456729367893461320827950820078817712216731052295602545351337368618061040881568543533221094392187600603340540844990093870884032097298722352456779829967133810789602708021367376266394284071038501472040617265277825050707902242103549229912303977955417583775394983599006535913201788770619735165556729089525678758732654071828255715951831230346927319242432350790219487256517269877665035461073260880824033281987690726379166963092881616527158589471697205018823511265750301028046524860906923751397347189776773023895782614252974801419793230634318015379419225151020068874721180489842900600419591006446660306107606058117184686898638651117274268650337561885234299901185211853900454203412169263635487096475818241120713912677205075177671525450729137102908564069458693635746651414253908413675702680498610955997092614947560860686763007975719171233748834065284346041584895591331388943276522964004010956371782128135532256412092463279122191160184163716316790104571769049824321364675042098965915432937166814918317233634496414680424744565457947573268892924325626044041506953545652128146979016719291102408030050545481571999228400934996861892836033025120132001053293428220680842073128861959520003128901955049393515200824728085413357174709501070076762185089730096277695464524603123051218859150889468733666578941669711512296656053382490248602836908067188577116033532546636415023565762888138635356271032553720953071732779989767242439117623156608763756786328971272851261543852197928412322398369779137144172229643387230405178797597484867430704376212995459145067392073765267075501343000862924775100534396649564868513145137895714134925860593825477551414462324257689577802463956008235802656203867021567251528023130144477881002845824688790022473365292825502941036259984704550641212989373625299096652079440593467694472727877010730324839953757025106334418295885217760339382449148198211513561778840846529459180530490408268358506739485929008017681482362914521329914702461534467542578674869988040451542557727298273030737127524481120604686634726362716800282360374918771321388936921804848735182147387957094086201747062107735806488818572870675716091123214215865232391754035989105241216386698899672453524472194759424650096798993358643646846461580366380053380880252618140118932451742532550470789106077859873639472763861953891872882305250858967345422032778447452660740393289133821390810294336787885983992304736220596435342505882457600866581246919461104529668345068333185481336614240144288879936033358928486220582000454512254772128177035539703313064249284286953340384822917194373544281175806334221135033012384649773590119873735076520868565862574480582248800295019165880804479845878140822316594701069829926339094889574610927910895556096334609184234999967405493498133200648715048461113047640588981203236908690804060904139188469562593222723879022738346309284367633248504557465187694056188349512377814206115786044008286271842629972722477672138477765924050293275204544786316849180504641016533017110579375252845530469092232985206003579694025940461857915587894373788549020295119704229023220839415572846254271750636335893174517831000851991540835626775567239607171190055390005845521272555755494776335412603203244732790572542105209685785003403339174316744584037249754568581268405564997228464885348967240120494018882521080720841100886210256105394653131588076784342208021403103959827268874818367332631081681383751409425412307513675199627561792348567577878156849757486043003684649467105915382504018294151205181892263185118177765088159620033719293529338418512378825606036937548258089767110632206636842536762673193845632086459226655259389320053917107094322964221043618068184644363952110657255536166657910306608790478850669799869078190249366510411574439318947631556369763684454357773357623149319873595978668697871259607714896827322737579254903657489347113844068441564357285954848715564572438045129473035551470706960798999355171129420713474752091751584744951092898292838631197339142322499843054704206718709342118399762042576286891689572820187306739420621420377278888752841858713096241921041620542079293513653935950662986450229251438879026908298944110932696373637445548204499894666381885499131383719026009228134674266150645103285106825933416154416440745041413467386989800351166574013879122654489165448768833925228218094856295699044907921797496585915512167893797500900749893490891415668758913158503454322464623080423621392128949900832285972875215722411413767519362301846554893181110145932097454832900556753129055355546945239447278564026830408128287398668490306756686068408056099560482087902395551014558083628784644564289539117729781985316885934570628151393255406773384187617074935345928822254899144053333850052922017212990294534826634633358257453410845017160328399239491205106150856912981771312791599254014648261350272904712690604383200027092129239343785265356792424984489518751716897204765298953086394518659613942710353147910049591265683621430906157975207423622519010380334588585224910596415846453983906835410078228272379861619193109370297494189511887789852818549452484929690826278710528620584309299190034408392042225076446138975572225480087167610273044673668017459250881687756194828895302416577899750043874454233079287448335755778846166811801700730547096082827342106719252149944485953091819867467807437097098638446067623419466585732698291514200203727109787101309999833968755825803560440346398843408160827266501777294628722888747657598525147730112473721234756322972306167463029760170664874168083750423263976884357051135995152857626775612625284925550815106177503155760923043813151664222593073679906495200572480721760842261136511830964006295852980669640954695310309175733304904856828862851215220945316264975245935365535965351470387620817004045058918651041413099632949390305236144189520053274216389290730130689243698227782338574986320540335481742896471186205394629189608512774442390424890261002322398851649422788381243076871580350679051922606233614805360573371134085081969275988911502424732414424041906995581312750767832838165742244717393712706595990727850153122492578225675209952712285947036950615196359730230038770460693475852690456563943835198773204606303600366169484770637135917171390928948999403845846227503009423885720497710822665559451796935918762100257723619205569833844439867199154478478136523114168298187906118014022217117978422801271186629901485033253072721075991050529860062066605077115271294894147398106963085588078349273214046229435848257710020394323072524033354763166120447820655031544891867635215986389488005205465948580959955709234158916279819178792958945413309176167145910715059823920349915979623777392991372236984364503504219572659865498268891998505763463393440105806475143330768574801380290585455734296729121324163110003413503854277796561823073296830444582491776187883286307705268453940891205012475682971859324133710330616433687773114799586444661351201892248107847496165107685891954232019770143033406335054850341440232415937154139622434955779759675372947248425038239635309924417670544555220166253249494696169095660336808016353220903073591930434108536982006157552383250091152711388904907085932762479593260317831586771123875174678299481480438383425192085416858559488364388081343702286533221281281177811158448337222801580354723505761387178496929800264339995285726818727897595226910546169335066331828193668794139215267961870596372697765593893883508598128240715494540376814901925417969153617767082563026188620758673924563785809753562249794862513115748921574164677896213954539941565500419916076700364560128312899200472876648203576037495493018575287522437234392231695916158647704553970213648435272021641771047645367643388502747440126517542923076331727231026534970088227638599422620871329916863074951766056868936637496497661356819044405349035981095488249245367764143626339896987178214049012502933326163888222876677065378251398984881602664090683376813876644523185853540098995843020160242933333126777793588718489439227143042100154186555645188809074422968210095427942834036903428568779740213719738416828260392931526176835099847904641182814878250205952130242178791660483327148843732555679272058295672819985018326952508357730451725546552023107637422075718033321165332512645983483026210130329993832275407277431983850507983211598500614268952231845844591149045682710965021701467583483220362121266040826853318880594204811514003919372485928511838297472210432606415054768478351028166071786002507314903229646763771440380664447365939310625549568888588167560399969547486015749502200842080094514863798553787736816869792397060045135475120899734526304357882313433602108200939202160406203062147122333382364624163191973618706238436887749885556850706010337275273898251901360869687436303878047592547011391232613869968210656713333483986941598257903767723112235975720474680079187110499482390293185434792749531225019378377807610270468638170854462805466880739026656590027904576959949199748646850851584864829046893462546391109042059863028928932261986202593000441825467139591448511633124184673234434339445455414155092383134038724370815796718934389351637053320688510400859240540329969570515996517462844279707382652274537455238051034846342083688443884022086847113493713723553391058878205034694733492074688586152234065030231681536181802664945985251950765015064508202963303958277352795102514507581149630724287420909008633145956185162043388236039318477354077021481435489183912701249067073002391180040093428330123275660307322383593998995382861917503790350026465519870170004565917552269791818275393093213606026013402136028834488813737386820104721161012873489050700621963728891787766713199415666006806517530171026815343317372746998437253029330301911379853464011474816781660813204139354684315155571481936460488607653001382490777716902544119452748497485979517834141431332740082574072772121430036074911046426752665533038102976892293668763320056310689896106331710047587372804563743789059123758436050972324255749566854458192155949619066965567515886610041813977873484190089346454600258415991628068200026734500660463342330595771020764615166355224525675192264242020922135315073277655788561384905281756869109647906493341015137684756105647159582115705759613287246171030478485883559928174469174303991802232231235362882410054217253967121287604906431738377715820283581990198653151786801848519139798787898308512494656564810315165180005038835272222794305501260849695448877546033623786626039657309846966791913276280534297656172075137988526058894790799524720047722178969223890725726914582037428483822075253635639437196448451091601584906394078116271165069806798940224613339826185550281844318440959435222180176299124747271769945879022474287388555856794917823769921877872884091167788014085254377445912089697439361895983595687651631244365618818261026057865792417890242457881408315743075323371949152154562923064104978859213011328458291627739733987894406733778825377340764473219832927321344670441184810744597069091859531143791349298926469631595050369169642132939991191378716024565664797887853102826418735786343480954380230348762584022856438304726461041843667967261215939551409487627970228195864692183352411660025641055278076869394931767135868411766441062214509430335682580821762384414960886674133447987864023998632453451090653633192734709231634642703253662020830135625352172892932919608080897899989800011029635120472349002422919410311461514768109111504397747372332897135306312909850139864031661861845036632506010288360061256574386549391169316736688514856609968534217368354391610516676378033314929938398976949479660462385998844233371343375943560908047188239080202530416739229066392279132149004037857205683986237872870977233080330698315188303600349417932730299731924408279426941620928922354119845380531814852464456633571472655200670480671693589463402230702944147922348785889676630527187306219413513815982565898069921163161009586221942439003005834739190724921177160653733072932631407348844737559742396973691668028081240607126885166354958475642508421197479559769586377077702191052370330116510493901230207830893638017034225497169186780966888645023613108728152008567300765490373699307043177865417875366326973762285945774710329644022601151841871605841558778137385556659961937557617720333912952055047968590053068044331103105336272752971799333002900784652560970895510684041991695287137629093656021860610328627853907431221173286996784705974080352523307065915730876867275244064004221771407383027337365017463386626849789216493361143692973010220970788493660588348545853585996345001782375739693455072936207421647625163212126879961608741664975251952109401963559491800286829849294947858377212681483239442966932160701869951957605103818874258037051606922941686392972823021785031088489799102109090913211875623514830169557257604125920234650371694804918622296190773954037313431078546854888782153984877981087992269090541766807612671608647531993616224690658411793773932098152480237693302817783513008783656239366745997507942628693263695635104474461227148893318029928942852271081329890130789682797509660664913976370943732998076184852710828171204713599723500280612766952787311237321865864802714164427013021005889044799941976518298259487064514906642140990426707887626806032435868105328339146706019614371774541576050502773898368821270333455893598308883053827765031779855403618261888073674932297641179660998773283497080003693804960068993367303674039165530937801866106097830469621806732525352323732119974671221872714516427122842125554432376176315447779220104337826897177887759243784849278106481699259427816016327602594836232579174729531848927349778458025144180688443210590239968844663527335615706109732813352272482023367871944344588212374126792980964822699581978326861874306263193684475029793230743880770131555839433649814329458425011074753372440928114556042081266715187582002491557635057539277795307451544326173784513692437963752754974975401082621370038070264410822429224767811629288716287262160036085323988979370822121033562706098423253857487229635582836240512479508931709785827278692427357147355170033380325996537144195762161313957895966364091423397494422956511310217174482138136121057413637483871801932392716429265062585541565623809169552314312538266371988246422551983587441941758111988645632122487502275219356283479717128695036752844844633424009136658224431412659739345991503016178975968814322367018207522907157859654395963904048729266044745331369369860268282963490633517673949745575027432610587803646975728855233319485478252091085055540575330333694396153523475102299474777621267880650969095359238605485468528872209665179508202732851359352618812129685637938492244510589054435712067299985435429031393506938282197964194315110244600581824552563106238343929647411659237708386257993437576424579798512767135963586889364833133337472608841274032190350299599570278332996443836720170549089158627520521088495164732678521584375670824909223195654006566413591882646127646620298842808156663697601090749239354642356333530348923995740233800227206986716411351433531529948389549628360221485991379828051463829592056462978444080248564769367716951710594563931818971945017427200228337612240511864597304955233501520230141638195888691567327906319646876901788555768302593877396392503495307279570793940061866044322917397202751674688678990773827172956593299809955796372631765381629860474985639913549690182332031318460787273527770650416460366727650039740248481934802388658338088447338158344265153296380697908812010831647274910830660681161118241833433150738113887598651762790097685894128374151672996237645282112113135094804667329546962880858044759568770397985146344183940639663625044723923043972763108664644756778364830431351794111904230066302182939729538610426360278962888092079831543169281305419717492158244852062917002149500454108421179117915488159984911615126808593075016386448211173546756542023776511476275065267136208165270394179457391096462625134709710246177238987372735064687433238950561592510553829668229362023592553334583315128434656104788196180426652268462673914125037382480076979058270932492861656301773822065394749009229757384045785832319339251568615994796583827375694674507589975034520020768021450360899816049068055918961478536136445905651753689195547984313625259618406846243013104020934359853239840551319751191006332684489143356671239273862606679817976805456337284910435383967574045351711197045720953878339695752904794309125115488750464852611108590122055402402228602677834286166265914210259164534744549290788683315575240098480795868698650608027634958523235921172270256366811809875849946714628773604848200104955546556464584894467795027683052050105730417371604544228346953724529992950790418751437106815426507517371786375219996156675100224876756046299792455316420170238521529404129128698145689424317285132797322692111591682613388140811757060316726267956338782668973456220510404064699791927055218932702069499425986718279642457690590716167546455243861625490738318166222763395422264402637982840929260593102612672896674974221519411468637502724577859370303425926629122499364140236139454790408994627763059556745828486806944837394029367046919888256643619481613584370449038928295208526506259709372340281903698093603882256574770084796511800919458855407459116190581107162931186511227163909363844999250425392247033757654147369982204442979411086897612630917185211832222818808042869954684163228829164013269800103939622163199560831476390731422799208241656123793782604939597867462570636265090585893636483403727913094686292612795188457545798823628604269691316538429121615442842830088531365809887803924127170160516928726822530045303557364581050540776848327491879358700542562861112555127890936620419321161703464216824062871346123625633144523623414453771556000362244067840957492426465869972323336296144122896586806258538953892326515709737493211649308499579647622269730265084556529365477108504789774645606221005698609678497086790132232362940841367928769175699367568877225263955827310449596286208761700089127557761752550536400530980506126214273778737125150092595733835350664249261191283358314801426378010195900251511671498986757510671976302589600127385780770356667157608190042972601617720695094778122429755499047268800198588132418336483030267826868162885004928149234483260337064838992268170071542979194119771885698689336763534799363795599681425367662205485381864036808212774648821544215197735046922953860513227943980230785328208587629386534303669819789058148286271785727390144308725371740762737350853851092316993383812811950803229762709413138931556436327024586735215109972238830340687237923277948090460179109102940618984097234643463465117162136223019194454605622555118573397357018437367089349828848675367949361517055225983349316796581655794091862880739595652766110281422951341318530934274095393159646864557062483864845938914856267575274734268471119692137069224126138474837404868528880263652894264055212551249757027858845695168747584971488743332513400822163245037683813551791566170395970540922379751453234934322001492845971867972204538420014291763482097190156546903474204739758109995717461791977660238600060019068931704376765709837892025611557706278901903038300516253850925055021143138995121785786916422263264918358391110631632159306754211445521564181064312829625230823237974904242116848236583776412730769668933293014897882420729354542842834801160855093329486143973559983142646640065321460524949221032984996977437153865544393885098505190417742626832950305302634602131813992129945006809069183356715064772364465401260346412708940634789189643956072896956723520942826187988137076880513238964311873462355509559362017909500074540468980178905102344101247480429020555455297355350705614317965099929176421644782086522540714371363416863883264925510859221334651562461789853758596469004124241873596271147960409585543814863103413404491352671468761289247919127335005913000994437415774391511555838233301033859648359017120302219103126508155862854354901956073490478650300215912291969595659412464065945961960646691000315540807337296613899937905657696149992435815824821655761267625317863925763580997712307353588019462976159029159108497024731611926160983801091249739434024352809125158926091773301209900914240944574671866262844726708633374273166896299325883491660215290377031354728544502461396040687058727547140570762508436399478252278889108809663894061151713341219458668013748122610445334436816144583214369761690796873185001260634755521954223492332942429019814533024188708020756975818135436214695518096761111026250232707646474489501602477573748711301234027324425404828727635642959591619524879849996924209196306102112659866544894710685863182430128811539690494359544518413334353113351956358726767125767841788355919616037418973958908855142259158771512731196360741467329361553872651846399491778581189102328983003029938565885041621809342953817645191758543500363697537895441106138058046806535077280083848849016147317016747428815718406452800415924877459952294838768886546955114336707194262619142269451609286168311387532100154093523459396757609323727114231903795700997183991358296521895828886286101831514337543752278679213860240075218619249215223605639974900070276845026451287900359796784756464282782613831731180332608086700424884968646967235391823851948270491032269377160992754224787284081075679418319031900137030654995682055188300802637961553854586680748493083948248245380398484955917417512496769777960851171658721461241246722955733353110296082354864440124148294618716852336938064444283094578566162526494339669322834233099845285835106305744949391606100800246613225043563463929763594602592808099621145321993261227645345881908302477618282369301023467612441874171986156964258998685154943143090824220567522877565137618843789500494600344478757988844273032204644363652492650390275130006042854488311400636643625634795743274863241781821472813906217876328532414234917604857407886921721831201835841032765663948250433029622616696433143874208939127897705849650584242808581988213915477384865884932622604409000631149453303081930439110982597306221927729953826285453180542907992635073098537475806668166791003031226879947947026758356146508638322758300752570735475378591390270593784248125279042589588551008728754615772183615022100557897687344094526647267611021781226353542702351654590624563362168590235187134528390329306396678375950169653967946336530258192804415615961348424681220375336978819440326712569770856115500533531033611540232508148851711883966585914924500071862561818833122419077166035144236158225330866872078580578914696340245687989569867759113651974960863581357400661524945019400936661512899697542454721775718384470963145349168462056102846196885902710322683254055626649062599328029235299832914336826456877807448461170727901512079968859457029362146769340132230961564630134264543142867386273240929447787637269612876603116039968630582843626871174311774319870161486761023063044857636827045856734531866982393412506694369926234974238125887805674953041249633026570573546595321733766532831628491055748602155482621763789110786839827285553644261959220415557027658964504325458500250631582266313048125142480089494099230645659674095525878315285286713452071848105898820633352717124501553618703902054866108641560803068913310780177395006068836664728706673402035721953149865684770269641184777049634468325501732742975947097858437940728074325145051324302872025335334878671876283754810840630233227304176967581296860096243143278177415171000744013916585701686813733323700305943691547561866335406099857168424847811539596243623608405338360960645945809765701658369449942143517493868299639782758212133432702946644155721421989713216422883690771403276150570487918332291636000936827621880189539641121304951592547389123387135134004683176637059600929277990784797658902386750815322383222830135147159305340488144738278760810468233336669888991740684983374055256909711558240042193444259127026592727446451375410590802170640051109247792853974980571645157351318416551512018360493539069607821960390283796795594043010559606855167861285092743870541118895263700203906176487221469261505101493670383788191560521038731399373213852001162615484915791166519578810666190196377826790556676970664167361321414812249529026113885090040189832852193577618082677539524970297609768508465797098235501338396991862612877064093297652645608176858661634773769133068985638823110753393590276567291156917593128762174671756394553624575429798015827796091956372768842133411709417364102298456083402605640328193092170947896468480247459701012453710624845664650793401136298057613791821596462342568183810741938298527359823372267309076493200983349369250383023574827264782682392259461784262761585949658365171077261264532639206573883409313223725051250764469829626392623127811536998452003824565535129436706168569836247989547334958519885728358804544550399347336092983095391313212892291141313064458159233567557995051511933563876200376238899753214618694840037695328305699290031488815897169182925941295176340623028782407800340733270990546845812148026110918233340476396046881260623525417106762935636376790200298713581300007114439476243889303890716770019049004677986905826466820600126835626998652856361527558045548626852186550685461641819567862246828509748390772327592845221173783547370235470591650738744971826102238782836414319645033977622248806818800650185418844697487504829251679984065728456353202977882004071349491688365612473483063731811730976692511405489536484140665786077478114654430431457169424587037967133923879530967923335724625203293619019889959290817439704986987002991220377455866603322048811506266267968013003703766935839665252001394536888503792581296380956854061298223778133115797601347731907637183853905470396473021267848880436722973811773784770884655618738613061687973666189747933514115380637123717936720961848684402448001814045168511818318172392753125677779484838563442923504242844768551668081312588245415862196111102895913246556409123862353549174560594658006363987915601812436402213608761011058949722806584327398759159464570498985952908533594447178257661726789686159242337722466362911761334435363372791976356151266596061699009520965089766022815653771870395588533442632717458527415362432367053887139803558009146517108698718446163998382764906529735324912520519793272466824639970436447044979352423097427575520474138740367955979212049367781929433425421297438734696711920283296291072929118762445293885109512193776197206464820753950683763999382117575978470346007193440924105435633127987092113302226339452648391123345480216387183063079485118216572349218301021887776550792535825978933592973425821389118067502279768746356428244701139930011559745624351603703847862646399714285723785191433187644790381577131759352718775013398892145259527817609110130827510107812083318765150723400917042174681754442111265435410515339095769835421348338023333647462028684689426445817053456152515837915464259593918981480001890379115318563311603588830413858111644189501232465458366851986387141329010883841338665202244225761247474256016493581846477114197042764123041871343161449933729098213408166653773145483472267791066060044369806453994864016552408661702743887638902654502428101412982045191716531684670927025235765859821593711813943386659165258957484740680257612809852650062205559315158582675872091995333439550923600885739600876951990705018003940788629943044764917511411770150601328993308897954510640717418443798140727652245001663089607283280972709677535510259282246027933500965720165059873603110958624597899355611634998282654087553067663691132831811287921537439127440994701012821443063441205761623997176110564386492943845596162226253396615266978030749177066648855323760339519156523860450617243742048020702441646972917606500745770389356936495070336701212759508089251182501387708423920022715913127865726733672072053007109085898561235386721919984742627580045443517761342943763640182363480338264314267690685623459232865784688558603361170055146023045805824012038560229214007496340291254220384078140618062153903002642344005901465933463894984101234574760723653952040919837470368545706795258948962271037987107997427533798875917290640305545652946273880057810059015481786312652444588602471421361791410207965922221319836573091686950791186959748534362709170473114223074006899458969413515725459409581059674474149985920248958143426238476809262086583515637263193587527303082241712558665116372479619886499115081333816155286128188046848403828999586124449734700003571287002854205775597552749166474864967970466914082950772579257179516878663425979619153487096109472723209255126326387715052598188624619656525835611972731676062585548062644632481868683010212362470837011095731647951311912669696859372793812681862925689933450298864380959013562361522906897858560287675281466475652172709448428835501755940722602496563723250268936520562824312441826767960159438289625547121101597518621984353921235805748953049197123283626532531859802485949773618836003855388173243490920865239723257311581412645999884333641986742903367091283578388654037396257727600506930897118345523178773851614483110594415168417451402525878446150522654670705177920615351134835664301529389914552142283285911050464290994190543822869770946831868441486669960927296369912450631674425005562437511814382144893268214129680851334977419694336526382440162047610457546928239176198377999884829040627592998677572297927114903833024733868272686102473187390878178115711688530824285894407279551886068536037191590942357210499797707931009113111655691040137265001210637235441299929652292343267973822865864720407893102772008170977672373785739848694765382424730746636997421600296032219355016123043208539938578535971557868533301218990929482686093156488560642907006632583735606930446934388110720536987563575539740270926700860649177741560805975408941576000339624168261891295007564343219436356669653864923077460110559566309587400531413044346030862359416015320119838116864890136907768455370226202028495142522096413834321410801275558655507187446033767435296724990314513295456138331256154113625828620140211502614259182746459571426048345674219126715033216052833469581365176413827261963894820426723792178359588159686349343236947626415981378070772912143263428703501756826481515034901222669821303990522854733649863187735269435440498498289058743226540457472937766688500914436122262953451507008515586385117720693406462971068844196445934260609999988305094363155610492102197649852408615087050138177063153585138586591059367714996293647431459760851678769099787238655356613861045179745466670624175996623027200207810685514601218694330473194540971180738643481741819304620494186308694309121582437820825758116624728044854254271875263808767427303164478439143696019050614107320508018202706800630682321436458702212533789526964233643430234561442519398436230452129769193587286498072952646675443551564162136193159221776875314005225455467940513307773577105494152582879409326505264285867450596457028066170229988841152224959513736651055865544211619340088397502820616096137879082898216101026521833931044053069349490021971596818405320667084619152640510203082250839036327386062617854667107193501436155472945086342960156644481725654205743713960979299769671836274973360961409548329693004321284244478398732746452098817950073873894122432288970648062914588568299855796553265781319818029187799872434410265393241225150836453704981289165859892516737334606657313217788358997211546536111582947942075649808397121770728131373148705230305380358502481052250189808553610834922756227425104920588839909590060781924134935060241919847637931622328889492607549109284514949787530187516608321419584088343498390736384165317321510220884538634788022458682520328035139517990499838466971937224330716879854348854896048442162835214987761447758344070519960221966766055803417672289666912577444120162787956530917568500008068383082208348483638996564510604658017793680430832502618184679697467294604039375592101324775998329515828383053463693924850852816985854583411677171186096668646355381351393243789522728043469269550054621197581455144889924674201946367193198830035154730184636609185365638454641840364646893099680552709190118523927890383344641974201491964273778663210430949132066472771085375475713428026753277027350197725099441064417278660028543523458799417701072960789785912819990619830503130415626155892256693927683519120483699338257106535718815327145994843154257937940768900004860264293107532541827975055312471804355809453573675081220139661713084440549288605082699085049016738460010848761519974632757715463397761417647251372415267115029223768196365509659519120621348666807845283295932056432211289589616330332754631617673413057493607604516416764459236239628234928355516120110758959591821669386856430121536514808856590500625540458507625170119421387404497491036007393780785512272121539088377675243263292463995741861033646072905847076409406304580176339887115027876255517048841801189199396665803487493320373165008134872315254971321193765185338214743927094084202269147076303689009512180668059527664631903476188275583661339299331577759401452646044674365795469815214843007458458316657808471329090215125102896636499761093860074647913277582220550710659561829986948082616207598952358092425692379747323996039471595802152624952677081068157931829592852176620887841491264004803373428497252888591349179540885931901564289635167439142880004038696362734739482356361478630746085825322765749704631700744555032798670866838724288985824364449323939164847659219158657308090213427044786980810053434634742196941805828999843773344743624912894356194710735958455964949641840682069741653017067498099825505050496257410913181544504613853279519376879143357103189483594460155757064985951000009862659012345578655184236597680323321619846000585355450593083211795335553676312703201744564991328584806667097237501932140141738405916164960207424766527379600839366044949808117765006915512580097967049919936371739649472199907880535616164787042988038700010126761551923679737473706852757915647018256808639684481893288596405315747734259175341832132998440913720108783559014559323913838833021818862122449540068958377839474732947866157653094921131492467480735638088023403689483006894221939749852102092963917140797415539270178140725755922128773062366718717763170780775403619564765058987762589732290732503237236864033646378644862044776013872810816076359499317293432009595137947267140903344584354321189648591292520768146868109587324993439635877627715729305084840209042987340249177080969207336669620140205863887227013318468936041937723013707472888732004374047226969761179656223078165389241160896526583796396247589266779343474771012185923873101842630027133629410049166557129234272986934267961652377074702411433679722224739285930380474509214632134749123680152952702105452640346368896695864694549187378101745415408184035199963920868430277992437757989050093642623733164950206366028061611642074112059996113237239008774207337432968277835880774843145941937467765643729028468061203857526370739913402371969904098366712073240188699469224089131065179687193971947480038649109191249739582287292844428865439950576766473427609854246598478248314350954841884853800062795545071104703388545209708813237214696115702058359197896289280915093718189474940721437101821943881250126481841535149491960823740395357693567935814780325750740362470982681473944147709531467346303484540779304601265849788713192581702049290741279832277471122811019538369212627707912209559965941213483385826660844502662159028794350062244937073486264990300170312187236377178131352193303969918962130851133472130874292843067431896728432866451916919453140553554348529759180335947010035417867745473363276863693138043925458087585461497173006007037366280066735021070330707203749248891493350442309001688707123092435516580435060856495654524325072487098579641202610077599275358713845230054024701336948541068005640704505380500483101172616145651351861673556235331879568335258201127707472883896789254654848385995603582352726422382226610969465608306047116303035475076516035122759047936048518381288915580550780421417537880743559790197631052685428738121247802257666434727556813007133967888015267872450472283907852505404830767969500447552321799262423136652799883295847579941147906397309280318917183695866177450682755777567105516206307467926201672529430979920992041593119879640791236711642098294389285190765440717820148771883777965364585647299536952549486371784360634684018469752685361795353509081415516947551901591260960527372325742865152672381330311518688987175960200679699037989949393162568011863886502303053825011006633016268886462110040168917881329110129559936091835508900601752447489949612402839308832757153145283128314340752774522485110055589173445066284886233215416580297795950923407684223781392357275770774693156274143046389072391154319494604956305074664191713046079139355564332252738642275021417136211470453017640851110559578288700289549017481061933782981839447361572257573553808671001279797036723297526218352200512351548561524235316237087542688550780327750627345012292769610246300195311338214530210548207857116739220540561730261173437045120684446796874236369543116185451560260350149674893812265790709243687688651384713211615246676044801491237195594436080006370882612027732278174696563683184673388095530663314150166628183387742983732774049501750533170310563673397217681091469166568287377109472249056783754937328006456895614167102323742019182292231469511133068631054690493256810394407143578533383889396641082493978700457228099832731471300392307667635514553004905547169238084512008030848187323468864794645405677190193228777192180388932703668836004269898394977724911104517771784827334714465743845691490440232718076997818554050201459148839917500099810337555968528197945369179150170803356424681393077754612400463494198577171771822106491943677676332756675019556670653351737450752608604367016405932207811131244459565344947238095796381975461138220722823231880340602662711397589173550874387399586468131712994465956730780847166295075407798805326239025013567896669233131693591129907737231473439628903470680741813573343885576756577943744121434740848055479517026845771935464989917147181593278581817943871622059895347619683438027398977128510319456412782047539357753001255521410512954817328964596329742508030817247844113586698970343328737806138313724906047347327853272080976099873529379027870487353318654489764767890166210489809691354834229424141560042604234867014485645124476753257332132280852693382415094763372110813128316460566914249331806899052405266787510113221838084577668195997907117586886692974774380557667245085364949933284398749756248898512747091364018193592049510769181416420410018488880513683976343676278068732356063652160832377961487801264631355661806429962721759778880880205502700485576216940810099728206224661894173597834377492091736693094397757286189977176834869194165417572986887648151675339511567420213940583030192867078479413287956269802543839614714284199348975474832555935347903333482129269318337821814838912149109124969374269021916242510473642907993048630839560470827077541919334155505606182932666729924167321995100608476905766884995875379491905557740205915701743290844073243745409882492722336598588991811469765828926161591300257044725654910854722438107069724366620040547294418214641306386711495359295267327868829725090260542043678855881998088164344890688523623402012930640158283021867725077090611997166965691720859968839659118947038693708298143016487964387357821610996364862021588158847262344663785401645306786600627151826229085839112967167652391466902260551429136198111564601773994749422595757280844592844648780301743262308062149052252248988144741087390762982740250216683393914838031820152482695191738435114733119665907665952411959973997173629563360195308173750356245099068321025060006501746680291705091764430653170326601887726379737124690072055736466134717437553910653207276319747636611698852498804456564367689939549473545904311688466856992243503633575994016132261624300732148394030186151296034197908153155922910652216975365156221773916422631381365984008504147837261492760539037618007149289548385358700167378655945841244841361122486633866265779891016067050422486019284183422001464271858220551723643109553514371109103234512925588298730713065110686141697907313170774358493445641217998806067995778274327611579530079098861968941602049278617918666976216592048452055932313343316501596904395527782943282695937517379274469481719923386411184653315620959762119500944890864558579935533732324492588860927584461922334438071762031454043340487590215376005556400006583075124810002687216124844169005947345408770031223842820291765400367685585614594183448436752107098380915956019021519649015741309347380350317442774893722090583463750780713130036815989063983851422387904795337500443276125528627799187894944777632398113483590029676643124923193363488921296289222786125499989320288173171266606122726692461043416835492632646635871321077695886929381702958633257825539081329614220031638280795654313418138374743410068271379225221643677771364671230923381610070018059040832812331916368063790335150004880022229363200668091432618058026222226893473457023493122912538708505635624518102913987263906011065122273299441892002637889555631667486751314365276876310342843011789706493533467162033546057431191844024221920001923616824790892987044795640499658913003391930475898373811148053383077768067296522972734982460909925490878896123033581192330874827191435566646143839522225102513276012034691448991754898221263250519680145176807132749171394439385543300596107558533800205814139737667871184267169977489737945273190717062589918754421941378868955287018551515019514433395004419952555081265397262003794751933861107757483542701824474110819585931888607727461724457220155787118164751455249388087965142940831270973461342584199649574560291635435800839631776824530524971566526552234989983230750416587647266321649205644108232320237484857446332171725237488148850515186438201874122480733728119762143815925408507665098879371208265060759967978596022745783919761705231709724264978933323467673141807783041677906759561945801123028855157005002877364341983799272119942234618034465831581103169158021702720159937030484799379368615911999375576445628461351496795186573072269039195704439385638997687944667463600171562324127508063015252453116363094007678017637751114577021069613590143794945273762432036347860408895672061301787615223852660670197480989973413871617140832655574307029002959178064899815287864091938709578831057327791954837430015566712172335721384975162936011148906438888905548493501545155490472508837637313683374122688186815026298635521959727692609969098182427066295898511963903109825532410318597390108122781015540629196060883332141454609222455969094070789469181652461165179069751845683415257710482563567636130072364415542575307640224193580416025179677757938443136213754822917986099797041625948570356730537306429653793726296624686304160463736548890145014092325922647799507306478594460372375321708319774527845428397015455547082469070435888598327323523166679195811701917323120689436659320029357042845383892800868739557955751436517007754973405801137602909999455776967751084675946773594693328286463201841843387275249432162879414270618046324981824425585687071155404531046327468839485073660486504626408230064172792923087731714302916419013860796004665580323384532129039099165348918451832722539595579602041359492318779635032356248365159209126093259335486163499006250649646127849699293011351674265584338029757088618309777951245470607948253535853102254947693625408631879056645572746181114869220820282800298860493315514351290194383704011265481609527949866163539010137493460618544014229351453600443657593938392333783446270785788176666637759229567315459065695120326050460947961110211915169645492478104817934470705758863976918590456310577863538176230659928480285030189192322444859415728756964177874527822644460771549646844608344081741064347891782065381760097764544391787536273796672630150465436144633756084028463780298287131201666556727795558786668194536932349965661868033655379131885968568569986661761233369105830385894115963655220685101650155948685457359234452656594280235716383315295232006377601208025967701337731866128715656726584667279704272439772607689279419726661731567393779324057670872284381848093491334192273015158908237962648941555551947202477933277144158379854833816999350897272804587214189786482801269982906607933019720715318284738959559560919170420137575304091455070147471249344841781775681406875489129587124493262094607566618272333732744278376465398225814543385237654104314312666730912652204520897724888178590306458900522590826105854618222207651676278561159958991383862928902831970528602795555136403680238471993934298237822162083125485672653472651909306935345498125060746600723736034707279330667282668342805389064269539069886129956057008934306487333999994354175479245062445982031690174435148022181840475712695877191704729984455311233484455335932826780478321014569350898641949000286394310253728128723921966201664616427684603162945531044898872218178512564439229231960183950131491693033594881376633761511297021811205620427843316723148633231480600965546721539900795032157600552678074582594400325013969306514411634268717288145050353817186402938714223836013210780831105288144134894876689771554680531598229931292733485727545892294583059222223050895571747649517154411425599074274866294998664695200260387603113740623366728798113130489582448658516370469102734347197400859277112067993556897577789014020314037344701705185398842125114839572431235282718556088369138373217948634030698821602302457617011070368284351425822619498848491261167831632991192250083217193838334479496043829956623374502170504205667530903673830012525413804484041540754924758694222615924331562888058960380924556712145243289447860902014368910903281833973975749880596395782103446184637414370137933137670648982765722654697399003993630585499281172024400293770690919072813455186924758018852812148899604178212633646912436213757445011988917750982560779479306933401781868400481947423214045235981618548355536782152807708821190340480465886187714627238497043847236840896039839841444555868419737482999300351951013701270347941756291952691868538727479202753113078596429985620195469038563810140169199012104595557500709954025339268377666077462782946573825610520301222637702533904571311239653017540002906581478107890457897749306320420088997822510467592436195435263983020818598388604791485251823677417090826156265987560219798980338629884699129955173866207978795090307555187876365487229883552417635345410761693105543933340604135729758269477318387136447104460643347841250092762878958186317944865971868685334760102439329722937967977241164257920341475515683418689897422614472438307489579739839768799009974354363441270537823134250582010618549351643643630460897182876720749280090715659036594976147336266876771033024791088598586543189569389906474845799924435600100740741291433614115190040768958363260100767228121178956792262312115362461046360998605543686432011717350328385727778038461470891056346590495555005417310303241115831686702688187830859314645241630724530328105045365063688354237705073445564135701505612439182148869295491925660985108458127271453668872644319905174132646330410526434573902863268904174239834257200688185730146153120481949344077314135239497653969454253418576006524721036996304861278929484067876333196425628921684044280615211809725520363035650641399117760666788465607775734944300389316662786738052475942065485553311309945166246128666645604336980591764474838520365619290425130823889578560243075071509938536381421219044940507733127078844746326370797361073920955804964782285133712918113720589831850742771436331767522160438540246202641706302297661572555741213084580844491194355820115245949569981395758039962729714355546796294826669209050011467067176115235225631879642789853223428782934880919214437805660367491629757613102039975481631960700594882729481795233985505633937930699566956496159051432931933947271251433184803969279134860966673417786883367698204940690832089895244489456290215943829274296283412311980162362650300116913326642609049447403465224982029230341573481296745300226339249240179341193447739446007613183004825022198436359323060514536539635009798546041418797403623840224656952023787506033041251516433485962650358590253940757815441060660853104295588755509903625530031765281901985495303034680426168987580891888535857850563135151062914951621370545569819113631387214257432921581479683754753605953790812323369016229422679316617848796294030625319148833694728882227298439883863448519306408377423799420198805447160348333971086747423709027719762585861566299133713631609604973029280936562126356924596486129206233248616024156772466437864678519396397215827829644195325432006521442597465382051809192272613132791016657287350893096241733434137522895178899408964361756356549447789141646474983040168163079612434780377258536445282421477210065335388777133734350538683301851802536244187305072525988149796331600344829595221727487075654302888937879932081988557174121594550021316242486076019606307036409781940569792159806454902678308236836213128664650183104288483198548252720700724463055241915737125672212680489579798711641964882029088594201721363018214623279325419511925577759043416429311515697691908692533029956597794988615355097853412974080826945302508072903837117680407326524026680779984700485058503636908759720719884320639512667029963310674438496324297396951338206598805951612255100247857174483768608761073576578766461404087774018198404014686883246862855323927658547985544232610127267208596217553775288951608495439667399497762098408176083365923977265703322936207090163966803376089424847558401804490342697063946252906923972304062253055074205373900897924626405906189138249575835112437627687060474617005225171798276845708165716049795158782725085692869365435517873673588903810004726397875307014271237601315662840795621303494337511029204714913252144214708901445634247439491615954549918884250135743163140295544993937463768559269803995181550842114249423123286798352348890860900103999407204892967950097553809528487985688879253272046137007637574397216078871778979800214724787144573920306491390345236047021877247651871612985409005912931563884344147541822658611153635745132546375605835355455028675405833480372714881253672235928903992881612965561016558636872534688209960929225696229754203834470873915032337739015516292093640519939233344122985927815924183629461414978089578996039481996843489281268520783952194633755806005178876965109391389542368936370430939392655282518493919703666259674045614836095044540208972475816100003958425331190543988335609879411924869808278522456586166571915256689772737243903625556757855169079779482502775665454486046428620113270451208649644962609982733746033038433542181426200801056587412224170119204807735806322373719948217808454703384209093095193489738065325790249939225958438553683498266939305083692341274170615427059341017510428681059805660217012614669362720673420580336481652974628624556546436602260025725617208754164359766301419687978571650528554871992615162588177480456136095814508291131458873768267515463754032147916455697510415202296583097170878443985359943765238578110926400009505758970303646279227655057307384565403072848061207792188499449385354349732394362187332268982599594270590432630594300181073600508991733730184836202081012514646285026094872610393112682238484194706617641090969111690682926875332459723742219699988613431954769773159620014030811841819447434437217986908322782357421106789513042974608631427151346434214362812986247815982068938778486245791061239197756944254011323163797893041102314711987529004956063614646761055969063197635350981043542183065777055931208531887686939208850182690255134092128499437414633816863277698435750675111037273549924509222527166506445674274074538433564295407524137240699836609768259183685808021797953476560150817194306599414058341126426257792129524381413338423020948371043588135775915867987623775284087768873594374403691541200919021378983359067475318231771053052729375003191357892280696568067820823652068872001453489984162731246120575965673050642369636108429257726020919758316234473742489760940540673960641406614618207437265630420437682664583234605583016515330497000307781815078086382753635820821812513284340006924761887251870673354155489563569645597594299004590846655739164642113131680489013647412348528228793042050772186778944904111115466891092194714597913320835156480121043825147220261403139017943712071322825489904261846919679500330966701953778412317690053075183704600177655510139722190017562881687316879492916528669208168088431889136431792771149879452988930159888829708965913988636171704678458192672102231511519046757445580277224100625542671296348081236840268176957388832016043090158743502864322519743060608637797152836087850887580434101389249267835272631286896218253495363656280908808697968468718050293689510283007434703388656190332795749364992604147186303208059169161189509178044657420224058980741360490438703809233309105711207699915911683151576051962748775499570920234938266077483259967061445219690485093587157088524004703468401986069354925888162658046962863795196598742678570994350004464161557743610503098599569505919143506386190080718452429221717251297934162335385556588867255238712936426191528983996638280897712560244895919199183181942520746308939591998652942826636409109802086583867120244862506555716354572127956417437428596694384600504901883961627990674958176386819046363142548365419136832154844372994988026886702685760926765197374301793952970512264512214758782453153873595138853004957735527078573157845895196432334298484091488691917914937090033538150736242817465970220793402307860756346736684557235707240761787322479676895197639860895056282629580094057674115569422252943712389716614852784314600218730363536416641148391707443729503381740809261983598555356673016162961208472882426995973832495862602738660359553448610394904712228125428654255639301793053116930522596523016504195959162869815846736186716012754414299054471101110848285617557026406515302907718771558991649346431375747265916159907977095812888677806515392942292746658492308561749560982675482438337701020651727972067505206229135697649462504020976291402559044066306832489090869242905416015745921368953974446422839120007196663340728070719555987808122549982258890764368742794988446129554337697870558644288487919046716476379573744978644261500130690018313218087752283643968683609730109350080768146890969766571502589037159407657404220408675116182138057283578355464066772159331255919336759787334073940632461298298988749092130250547689593540408579165163644991001803111622710853670453380993296642589894921302133181156425336699917094320033644042571058830136406507325434953434420156100874126385534420600158253587260130287651459308328592057074408125443478705851892900560699747129721134625100763034219142144210579100970690372194647759472578585162423974914927901253259481776019750769117907492986611157027069212708542180451374371204049027212785805955355013604419080235500342300105379456474965628425831196612271992891368368416294997871031702656350256502956910958532017523447701865922836705203877580596149578699035461995776201970969541708147642640244686499344371285826174226817942948559957189330517207048807394944337116950736463158867694833137243848236167263959481518508631762307415466119577079161267100711034709979280357875834867036514814543319420533409161985088948185182268482946156073716980334286660012514569888721289776585277190935257647206661211016965178312416849490418696028788012637940836040221464803476066742663506252125448383623946508777914653234727321990947235753417529066437265222988683288004784134175321889171786841294072461846884037836937051831987194597008154662406198653720486793076176740511667925595543402737268268583524641376274019535486634056122475910474324894878620969241306742901310308678448345574780693165539216578380052500658198178240548720555940330064496705471182570291420148708486437354748773277639519712254530083726372633600136829247632932767581822501321722534060832440762294486542591722463182602180769658494278685370963861450810282117084132538913069811923092854343939503193967211483958830699185017678449209494775039616035384141267063669352954036379998088430156686380404790587882698448662289426959559733151536421988750727794255222438206889430472645750926140227908906026122362388887208648191784554562380024940717628979083421296933731735639674981654491593011578479639210463960514783287950094823964111462013899486024392150999168437553112588123500038764200220072619857272653043092283094443773069672291065565350942390459683129677597937992996022527408525280446976900326254027692710308624159318435466687503829259289228043855218253667126358061230487444405974428032888047590831260602741889626920681154442080922878602420844023599165705875004428535493349123079292442336622100854685745013562025285582187747329012631632719859320107412407499987057020225552370076661438194617407936301983107948838131962165635159353381189373353202592412260134379351787504053874421819990641643996007538634001623501040869902291640241144759479766278265818907798887724457673677806168603290021815211690020657072443266942124209439760146018259185785958178497986231106685914407323853471701803662149054611389244074826996620237934249100843745019355833768282300475166579150549182146372967984911044880813345181657118871686082067125498518790707291243039032071171277899789116842816222733481826739463343235744709283352721402385499155462965104344118057497830877261885364431136777690370345102639038466084979003125822478610185456024436078565862775426536306882103795230713131463119515681599262402846979315924973832252001009165762449336512041942775823083326667494686057017559460047543105429077432037815743880103720382254981369842954512934728633452195138484536673790728737422100578086075232369542754085743453622594947376160394233950302163143591182815082653965596266394135514353856941564385106418149486119574744069270472849105735061984448094117219915256246372092348003820636253701323233413258487620193030755684285897823945702560658447983382799241169879999098095916748133264360581351839043421338978549908154069278272903990345480381561927262900676703313233863670773513331234765287243983741451754099557052108929358010571914374510082960573719831729632844025334627628567387050199303830501293150265069120632883270853157682267625030425895164037605062939143732620103394514946702178825490914050670597768423886295827587252723699340200514291840388496621713665913219623637753645516961800384039644136063665811721616381150185457274120445881313348542789747291286830748125594820974373185948667387380173704008308222922790441780566243660571881948528639016932804550581161313446710218286134388514849926729432909872908977210862349709748703457289277185199154807945182794341643924546870298557847348230483563628614601667295280318855972368287209131629761223982596653162927869387637845360513421458264546998288193443683405670887122280409345154472083781553908439674242555465995527813034439339972970201266719600989890038796816421859904772672745597480704897419687846850944359747768037370796717102233310806287995882212075209536545355882122112306195717187441034345284727756273000984329776060263409227776151116487580278189012840627515462419790461026238747066017350533242089509319445141274084373347475912304335860449360513796119700557157268966427275318854410732180789425036160141755246471814523147870503154195012141478832967194834766646440375477285047297605209980928298237333205303169137094519875465268288239874292203363434288739394449495390838041786488762697146130978405782922980958980747025228713320828831131597741978552469309073766265541601539950276473339639665088334488651536350831628775462664765185992221039722317310314172512446398135045684724070441002863924708109487091222433624397480338349680241595463260623074762751426592426483002159820148673313535393859757313320625938722381800118497001540573682359964326143179429009926933252479455064299436237435647162396143820169580857287418338666842844158635387103885775778671517266414307952911457271944422814710803338163323918205182412969124591275232546698384315744616801105800047986481424445725517279508757228007632135723948061375428243960191002173506378125943659241206679128937329798161813377536368214779000244242474196352271021663959243105653578010217865304063560954122131315997896977464555835395075324176063254364737273058866250930224402708239923314063260606430775321097953542393540336001439473545325990152420041702975545005735350745411903374941583899959062100215162142735453990057789754661259940882211027850130229912384371388372826869228418490613836920785611210138971558629635979579367045886500848145813524560593260519349423832793878949670702875136473016169726967090968881993119497204084976134556490495947713520802855630765117506731192366921025615526938800433712256264599274084681475212335818129696803705229246729138343166248974202230086601548102512447853969464392260405253041814851703294370884809487073114874080947124858165247990194881611649052865438468582296199676064508875790305945689003578930902010229416355355786438455321714744539508182864778422743239422573843867629248167442742831392434995227439977599017229765145582427985466354606143032254374649196998266478513184261119659417711059467745668008044143662337246996881004987889012570130292305299621737207283368368358071826250776330898570400232965564697377491493478476733113913878982502875068031509647377155653785402091614590852764928317520170859237842165069911715244818966750053135613690857988530171287639579860523148789593024123500338987780944933674422254175280089594842514811271036023081626252688821127027571937029347376661439493453057345622607959726840384569302200648356454361748366456624350418972224331736446268266862040716211073575655293970294530467298026629812874760537922873486988639206589818001417176752753948953771938467101589360354197926752380082324429813895049818527744080700882578598359618452774065482103717570486088819671029234250981395727840205876373638412220692740399560367656848200790408884702677046608517888412394322816024008805364076165295616067587823875683202785869440915691893130189946542837718304770713684786052046508590512691176224794873325934002830473078236453779563957643621817685681245866951968926709545634567873370537640190452338864036118559372679216291574641108433607025915464149816184559005435617837487420704459709569631913638072461931851484973869729190601394387500191962020659361130995087502490011573085220891709255522180584315855001313097758423764272255525420574356461446577911103336323771152767003430743112815089555338369999652956134313442727530435843655104243969932388412713851681365630660581294828097778961239954979033702054623430009283066916020062606710684895372242831579499621084762173520773258748931274356011274993555073041363816819297857398056125062531413223879645168127979983000281573873250216035539306577623757870232107915488555158284166146706201981973720633414334253231105761145735959318179831756057726896418171391090450008601201279207755451796903625759670770962209184007723715514203690905200572242478044158979964430873058351582833791404376140493615419318517883660713870114214445484353937759258941519991421589581677430051336082473267441488322502497140654038830313779724920966436418340780826627664017439904951175758452018337056912484149959628450958436342362714031741327098205832096284020111786851107791584556843126227110914557225380128941251599302040083283062374288376597256998721036090554711339315641676837414009224060896286755773875207427883147465012206335681486833269519326194848307177104509070715634442130883458928101701133646648440960834833699298586929720343262923812417587968309436589161083754069349988560813607706682666298251311933480426842432590201673735550915315171980091803913587627850913419733432256288194536304996624437513266538392283760385896869817678874640336881456411905577218998913526177276618880886870277351125950120296988938022495221013554242266172817024900713837939171500734344484529748676692482370562612415651582134120656445108465030253773895747045125173844330492694435528808524140047106256072570217581908044756113826672067826165347979235815533094693281806679946063865137385797003715601882549509737056619758589161505028244424616323454270353288470244231649314766030699035472380454382578159064531051111044109698736268310060480563860208362515422797001728555832459335525891198602191372917429910000608453927007693315823005151500839039553347649481472597734265181216090899479425182772965946471369930530227255636404781583890566147453555661864568782346331998735208379696417400846042624537456546895215202097297072572560615931025050537660236204314551566395190959948614342076697287118008212739898612602639569526988233871978427676415722110424682380982374557145839577863308823427228886434778677576494517688870867020004461886621483459794882206728466312479708116611720708670426514350108425597903731249877204039170143255109529095334887489702061523215851090290108120528668944814579394666557434268377826919925745847992255024164656233357194267889256049401834625041889426769571589847025314390814306662899776791816967518543958171188785075532578308616682632149991938260187474310083679864302043115224455584714465959974706466894347611178165040128778225041774376742494423810068200767206215228948666809276258053490005918706204600910503389350836976232717623236128573607642170097847517650537791059002462010044491482734160136893040241348632845780904387837731956103263939084738826539072168687074664656156008012072205028305490215805564818509118470742647124445881378956082589705593806758543325656403965963161879839618833703947693781738657527449472959007431372072907521759809967293807954799037440712030583876208038824480080278769107838224002785648551212348342864974864257203004510325862581267185529794967736138757394702883085327826148848174284076090581345292491040122662643445615011785300752497111119097780507393704371063986101656365258840113155293806594064067847386704609607317333725641717435421464770183337925599180244368881046203001551370759875921542114939780750729249830913305388395097118885368758504667975990314515810227969823763986276036077606992457740769603380096626245026633936914998147816784918339216355362405879538969252381425213095207291636828168812365925741249892737999874377203452451066243779378216892384241505847958292710181380785926911931958965275300699908094488551974601765348919251874028198576023818941487674508409019026424314281511481687248149408743620310074643714405388472319222277674488383862045268709252336913874786434580452245108556733493151144807154639800477995823958643029385797219321501353194049285432016218495412561435603096405459250039366260496667382611698714841598927848016607481348958141449157582191408017020221365351359993727945209321289480923990471662090861755044938012573479133917958380085805264482722160779036043472472920355245041593844611297036585024406093335479274542297756949142136054940396412858960060676178176892949516626284629322262529550230741100347078897374866462745028370015583859107239684352634275571285060344933868311072515979951740324075314792972546785016696334106465514058187079288958117666264018375129969568255334416125061240952298647088503080785211622303473301787631074289052914402222719084434915162437170261077537430976758068162443942054351401465918648787103891662340182452021588392041860571107697082865621133142201887448908367932810224070525711999440121942870845566329290121692999710973919687928541160236267947769619825370076665100335651529709700812123111029088239504489973419575344589277047886552363200421336675125303641786535715874054247665533975276090399653416212634255147283900406486623185779873229341110663643779715418728609666337139301736197863406448563097761752485141631553166071443321429279668682205495074887918961225207385265144207163592290894706789372740859569668318245759893804230759715988098077189289726150030004356381232462140921550514129552368256693198214321607931734958338597633777539541728886149817916871953045506378478652705016009279409698320412051488325972746605509403195340727100056536959406101654111106861769247376482140487938624562111364985571664008273944556981695552159580899237277816202368539150801346029872136284866419690161625329938317372287666714963955714221137606519097193946797073806689260339592731610928765038597223753330129146950294194661048034391442907617511371967760527627031876472001724975983088189400073637211476813057396387739558679199284535819788790785839019850620714382412028168644623162069512723828294527423438272226494467307985268191070309075832994311448330461576615154229437494747371152449704335559096790346090807972659848779790362593142899871985989960877112689758651954831105123873019086686769235115017791629950273079697317308785547866575160032628778175336475013873424643961757938541736297054240541042263686540218644851575704226022763781075861196271494908024935685207600058870327023130193600626030561067724665854489439790953544903384037249051073055036382087880653667085625896870603693563711162809191419945479849842789987017839115548259569157738792683673034639023221270262345736256860679204052498211599438648027457229656892884830790844891976492338613119428237022103331338154262136455321035444103917396844525879893826445653078601689287157777398538899075664603503308245678916759438645320845861896278898724305856509791165497240097556958444489465215949069248600937059624462873657239566863146245331580284044852150528288949032275174308016404759682077360283585572656084554455527233107342365298125533235253077480227136548149195390738582843050242276442503786051445439606950166218562752120065815888748103919927449716973941613389845879358611892503353488914704270911373925540322548902261794770718002882691418009315940315978682120506992174653129486641450586917647630052202404099400463115178418384878073498888122317176920719321152716143019986114245360178136876113501225212728283143897862777747805871785055149401635144953810942730468134373820249512927264092422411301571530847558272893521370610955956449328275615836633559988228434002417458464164904745833069488657487922520130954725563522314926374235983973960566816548262489138243144273764224308066970142240438496743747502521452038983587347563119597037859078020508612707305627428782048341223388789403639131584291237806103456031493312873920992661354664617862085417208387800272034855006448148818197375179072979990047426187400675621060920493040949313963521286829488402146397148263787819713586039263164364268212227735594854501966009547478486135787637489333462742253904863737120780762457511757329092649338089621516720169485794065036303445885197628645833225318734592612763452979574096951043947383767655831928489978798890749253967677071078846183692221777863359520023092305433839776402647917557169064769270815232119937404583143579349778122641036399410833580189609339152514747990731751851502263821698333539309939772159665870302754075941391281969759247381954799215004483589630856499540705144727378775830839165931129690198562612945720735601571426039240300337109519618481871595583929026854816404794809105014117289259463082918308660189876933957356461481689147615595719462811676959122757891194799595836491009692355274465661194682812389700753134735569200273197381862878328539613891320213985416714815126430772993575940871378663907876522051719094944222526279773411917843750589821455260401817449848473567271810897486489864625598351198308825355652063637094402035558191030115387929092062626835160528982217202855355227970758171678683150122444154627406874891070205671793592280544421499060063464941478732009591162190210477438473854714316503792443605989472684378934473371910384193233759467606382907920208604310048778822222362140263430823940282227390530509461781431140759292560846312344325540381819842902189722734128681255353640988767324977523927761222663336243110638888995394423001542929735089732123332522739118780471380442519320233894937896005575464840303185144689331064923045726837909593310468890792450401743962320885471571079320855528968112334282989600868410688419853087975455240173975725404902387602111965617675472167795582760350355874489986549761532650865356608362392009056789099180915528852293406957359984074672516465453701500536305762109770420693016305202689955170029602310044732352935041554438943770065772285202082056740473427894671150556836408918925992024578018911955828105385560024851368225650087649170269479489357211211788979372099994489091264240592930017018510347912229006145491689460129600144946681554669752066031323545793821820900677990999907154934004855382611881214314719515010341814852985400135746880732642797674348086095147490095590465893819537910384163277861998579831792905594642578564357646004328017296532439509705769515701642268798480003079444556244310146098467253960295707603758276346195617146576896334618707630806878336625905239169195265018190924676695760264041449719362300280843378303046007114043765257927855665280400712649635061230814043084891616724215902710724720707098777561413595668441128053314962193498821675317482590691390003980015443080118675810433669564907807275245773995251135262733216047453234592875387574314274829918894545007457212139096754640583467880175308118813631634567165730713361479061916656418849433582108335388172306190645282659834868174873238581907584192919372095441197168904800613564996616217759318812124269163779399058926145026976339502155378601783570112553655652957783431923436694140481261281294066134192392359478390250007641408076819114817524583212316455386916807232374166743229989400153596758125356834140384770503873014521572861851179754344449048865171488469985596870637448861198292620749179499305975287539325384619517032782733663318039186210073385765102335850676614257375601079169349573657984897445660518046711322152671789762999555195572526074254392453950368956153533213578037332821819362847017065142465043776666247586842602023686350180166852213373015712829554084426517530006927213105030962385670811533994344844207334471749665138914181032384288105875583670839990536607720870887912894882761914784696162983690872668122084507217199779560245865788528833462066717301800765510514700830897058817853821954816403681960687892964485249147235555547804040172692995388858883133897695037444615157300342080013788452238319587793372106863904440908278176092423343933698977000085888944013557596572329841088059315436140256097298191675787050673925529086451250987625904581086039117977620505918187122683453863135037545807549705095922703267348015612210973994915956364600512294133615680723924607764359742673266192970610605647617249171502268722447381371566803037916297531019133727255059811985083985766438635851712892638079484667203897520828688471099808670719297411203039144163506142927092726342762862626758861474452825285636386329487601822673428331151033872155733894536926840454858963076925309517027192551553276979413951583196806541379516938857174748482028742929049996237094617897508636037047155417518243199758006228779003671861940801736942784488439649474079499210499591503146707922086401883295569373280534985175653211480957896598640137829556017045248144389545238738896982402314547897124151668701888262855266226596670028013582873277179564859746978884743603487831082007771206778441881078684898491215197035545111472832588434182704909760681196135823608275472971880993181848916998104646482113625022334139877934043992510010450904277298859264938985384290240024497117098191659530087369511333770243185877743647377817775642647607246434683961402356158283897970981976634093041030931474912486330123437192297486820260861230450090855933061619518174089459415571540702097584489081998957308458658290402938442788316087735674785487668604741054590725793607146305802301793015846173032576502016712696391417029937761102781273298041737102400889580252553492877574196733798496531009470220107714240634994300057145069062213609546221666690509400881374891540478574096067690577202942361095913933815472197945883775461621094010463463923680207576599922255725787688911672857669339973247127129221973752818310958623076691090215520789721600674273328484573137945158637726005516971540480578932605657086431582564745480024535921379139495495914507890036871891860007302508491108622419709835113899885371916942132131191180207556098237828279770372558067308380285442878447428064814859112690346972740798131293964151511586353383168321591926724619941763246396665476560041472429120467430968334862557471156048118018716747152484798323526210630119962378304337852102696129989279076615305068893445630802020810570840853463189344473093447106397611176192523864574592143432393887164908351716113444959200733182114184454569826983476191774237317011560309300142124968068864798593697402405887487640818214377861383211273150631075872439343339750309612813602492479385837660005946802717416970296446066937401862066693351523924348583403195692718534101244096076880620610104484704478670836460418170686846272867195478158038431588112266263534740632296625745927137344804457509655607736585723870633361401546575921662187961477274747370221590087801899482763897345101580780935716300556222192637900777370820268179080124643051370582754278511091823141596208523308286700960621641197517819806977923309138909312258574471912902211651176010201899333227367598681260349113736691988781634189090831754718226306333946287877594370501246145277454485912370828507581453689369212024614014987951137284809489415674863914930218484321382495121090860901242740989585899854643572359325147429940600218501648169680287725879858767816082518890362605285379583904249719304888216229526030974030179865755415694767001217634822501652976519348352046111589670329415031861584060403763200071051832128474274488624445038755515270243998250119540446345219414464719195163263789932677910781295690012774333073900782769818139252572356796515894807309942288434466849123712416166563002547752970248913706958063332263776689535982185347551384660123678688485201210305155396770821002133748655890866537338846912149558560692212241059348595771751244539888020236770109866917855062125516304780734822722701326448407361744002703966607172221604163310470983718937394770408817582156709376761636164508374246619472153162403530414146950393344855994857549899474462210116800810295916876211499136985736733536182315993010229148920137928628236314088159161915311211324699524996357776031839479952484551138798391140349643418309598273219978912051944991375291020667566014948349110521932173941809254885700040649594270413952632193858934150957633990110842242226052547441767678872404688048833646281784320954651843299714864144830756318891451694958925335837078214084463106476693035182286867444484860501776231366846616433022250198934862756910452980915555859855827859174778757024490348697269621224430481436821870769003146362869692652099382985266744142037681117501710572316063770793839052909065497990415547164041439497438299047768072695148220218447809360876995508989956537259387563331919328111641981666297579217879195556296901871093626754767524798210310256964548772268237081044009720368451983082650201677170529230692306124477152491570497880100485793359219791519008101501485240212979020900168084738437949087218158660391099319102513228568882387175472871100841584610265353848789115134489368202090723048509476874555334701026739186512695098773625026911316706682985628512911103104295747422416259540541499947575738923234138457355378803962039593792172918936674743064732576735474985957556644026391759123353557538830548524334409696713338955670132661894638264062495066007294448858518407462020922225147747714621904200141288985534197225936179945056583115208085914105751238162569691863330997874959497600804431340133429239922013711378088610440052161981359468552700250140752426563907224969220065652561456080000306918484693508464320316274415917138496042645195268817625699502379246712678586342525000758420356858035691682745507930443470092373452436549783672999688085114384101094518792458394880377291128174562628281634493813755839223884875408792604033418896731274021319083625466104282883183017830770121627619698936425223904930547334688527964299503048831073239208293051089290039072542518499375914351880027611222260070904971965554987947632144798734273102888073311319721087388788047586888089141272564810308151625148024124604828000271415312447782163293543410517130457776035975332723824790428255581955237423994136493467717508032917888447590541012816227588171924323624475079821874163754771178782781834503756384870811689027817826461424993702315482910073690688973158341198652758155897665666495212917258334961335972102575317677802988092628350553464104326006817884452210513236807849034843500280342629527373155017051662836322572061888725201899727734462179496279382944051612512553634480582114044512879810337588386572033518202800450142124308186759726361119713972718816307049216421678320872298115931822656393853308002213691640083651247577688071325009812133125779756353694681633309463494191063163952473514018690829753961621631507577276773682866539490162529745429598634799095816130376846142643989067670997411677526742164444642877095650214993326445373607576954449124015788187486340745584478416467569420600519167059745799568708639450555853669743170346606920925050516476312938913152766256961057984353011121185657350036991456440203540083147989466682182814089420199725688727125698754833194102797759661528645787750599815528294578156343699800879083762027452959176268029467865879831543048321132140982790407891108652668005768978312968159036242858324052157646968111187505028242707264246703762693036741296399597927909284906561864357992794620443508589402015361919998051354265639056148823520778821520326685228805249749339088883083566483917104053101063736621342331521179281356212115751126869406604526674125248619897742568927519638980861963954855086226344435081287555952944756859440724532940051438796469239393583851571291142446523770454499889528258871398112902173876263408737655669453276988701510496660527876937952550515563452850839097946796090875470293684930707969865404410521779886308706271885868303669710758641938112356179592998280195921757488559263716627288705448423730155255091739350105262777017734235716347803026793907030896236893285891923694210697008133777435708003297293163613241737055900314908011471758413184630306908046310370265284913289336722730795760507441785395521525621749518662159989374240779194343195246165708264145061186936104629403727488170032301312397127001022081362681222652043591536579216496955526503347691367349344648708541328221206894063452065290859158711123789923277806801859005863130039938973912328350949235846704668704240550070618327133113745871423064384686097665501925825976756211837175900278182665639173625590959048919572705424097478302677858161218109503322975688210255227155362075108030880695206630164363959330371680409282154270380160755356303437660649489018663666534644392462542053391700017459892088449392192636710702123403696854668553581621220411442200409750429711135991698923997958410963563755658706090775505124019262059170710972976917372734347579817881278750603205832914667453321875887248471080573585800575384471499363872612488598542203994526062166084768621082770466359243983361701785945126055976958560809203622310587700208003922264526785739714055974522114433097791719692963607635693011840584238521405729171459908767941072057581479565187648162713798459136233985365693463175184323045133623449256323517394630424606380825344004828817242703125335789850329931229217510220582443617167716180419450877331275185272157068382639897565419899242485399402173633062004131094469637125813559063541299697683720510637490467499280211989867040616550833511494363959526273138167494401108802030717662537879422234177134733520073200043164164324844296427643677540911219097357650564952102929592789015676131607812038166591364458211241440782784553050886742480179680738328765125767725788316900311809341264806006114027164813298245535456744466382692128030080883454728221223906614310457935479866096538233056341306806729951767302754336474796674417075384035692728718850879275211387400630990628550567417701884992750531811553624855411116156590242748566155636991660313608276242527524894135088671366199673693956231911882720137435426973315469749148686742756926526243507645038562292082820766013958830804539952619889883042525145965875225060900993424467508748663513189641444286951515460763519337241651722017231812657683393820836771097695470286230306242767997382570934986304864642891416913222466218696593815744520172459810056453826530774028018584420328638885236082246230193453122538772435456248681975397491362231753757326694950439185601385450005213203285874522057058563719877102606734916603439430958829170306955337879345178180061665372312141618102219590439676620175365716595267864496956743768865929997216332784681068898791911758311341297386247974969299387673609599091170620475126336254857645339820356063982829665307927527066395529750564067780696240614024784106053935432384735858127012678661099660025366528362454687993541605716153481472728150544504700880556708203834347989668436800331152548792003755157086249667794385398193879464372286663631099188979071487394359677469979927107224760825735148537458870701234470478965339788046659157897878992878458058877609210875703863661982306815008479338408217631740027702971997467684170766828887853915041630631457421464351219564300949644521801439578190941987394961449371374085190691204217931922524907698699378034144193492019776649193283706417857799125267174042731363716941389567351367243972344441524248695901363801370009776717781878780480186814067790540745911303269472316361556204374941408026191623128619492128642312537023086305534928952897495952881611706460495092704366641825602216039844922687506742500990994165551856421573777402308236133644775530490476597318818564543013318063574932740139183365357125041890819511543006969717520280991444139188320370845901748272780875292292799779318155439144572761349958962255327923211519659775925551995533219292273343601097997165557935445586983550454429659430796417459430011889504228331112592455795210324127516737938192434786656280364800057665583921515506659904086470951045841044060045637039040666652406113018753841794595587070706278030707034860529744376111249620410194910032655776322027614582612938917873894732224949938147386971777863710954308526549858210865814065197741790775809618200755737319793181749618901386655943419245289757189184705905669685127324766110684150937934942338842698450162878737467370582776543917060434132599976019152618843714386745706329807619015479227044123366594910881303176894309864882294077350137103901096401060024704617175407451563357565373865837756774214212085872798941174911072316590992011969013632224567084365135210185049325846336264491062908443219939234145240211202448328086929855458385740821333124243778470074611118253641203474269746441594941366128121328430080688536838767612249123423490402370496889272055089462348351900555046043530207313384977705129357262254910495291018762480315792273940113329991823370486229566151728163323329011308366182735829534025981874122199530347762548583835019488301559515387481747254732190334215767898218878635540722182742440961618348110352117331904651603846042404869529790224890575151943001634781599393811729394864526859173034964855212814001712055984752985609520510390323169308414718754683529747042343740649787031317097358274344124145274528213042911608351519101817313161451041223299448425395840280389255547276706002978938930847537421819167070736962899331773215417452984034672493345549557019969312502740171955315992075320492820769244651092473795236997569110222676766962666920307523940667892920190416312084564607962821193339519477358065302073632322559574466528394000795823926701867929850891899093020947218534520402745555919774436920924858069004517984541484352446538290112095411015212218303074540213432492029210271585654481157209010289251007983253329192752054896972808444153774470059601442610501021460648716603504786994133905287223281028119644712105553159592160901895832569377956498493071967048248792878694168613412157579633172396234252174651039300165686236227767319613678439240653023502884447928129108336762638757643576913703593101305892098047094855925124644839810847509169947579017532501570177739627540855476460332282690680779460795222079356140235090257233107133993890737263984874908252034731353943342609108849948657857876296895070527847441963951444577843691214363584191584040772910191127122959051357588019887679400928729076105820606078957483881356167653254777339893589419818912239684502610340803810726986643249915732612044436166595234660934032200162388520472741674595099341059724881558728810751892478969077963065089523848800718498462248989458775921491218979889081280642968096697828659447475491212209763458342817561772799018100951543515128464907201893976680319401655116502209326938199316126798592505013402467635126147277820557516638271406104827086711724218407036149775094298391617643265425232175242126612615318583933150643237269470296269021146799566784877715553905016300450875619290968446928342996183459192474495116678311854777887581941130839673544082008749219951234960877484132707608085356870785311855687973311916571871342097377069684819741230296025426874560685000813522342946229032730293257428215199924510393675138224616879452016710812830730394218156200755012418816741641542599473969835724142968960984690987439712510251682246625474500233003394266184102986196564020430836952029690140998998559284681012896844393149247478571711614278700200650645419287576204393563658985357329967012678371063223238352828690670609940198717068155536864229817615329474791149131633019603959317511206879705799325415956076252833857586499168396168919768413722601659255040087879831111967982105417830969846757072913374483722509575647199452888898736848813215837149495145774262765128463179266654216734413144975557193942357544804461722012918257583657054419112821372463612121915898078079599118063754577692497519934439067953895448142390535491258149854096066923954114805275581725019614117825265306728544232585991316917389284835200882266117789307744985849250076986351597534185305728175059920904247930622472790288822787058324574841893542563816762347208019212127179283514203482714371911386520211853970315686568128473805863240397014572598572289702124367739231019533656322708079491910383682864213325215718973830818099331097853245739992598229232137911714702584723700861988568045901601978786193757714512420530977548464549621381991256335408264319240026513941202210316138768265685588363095604408000078002541115891207225239958266999717127041936665956492532143648288055963660456021349388369833245621008730154708048170190933166782674027093427042832638664745212582026852698554579036765402993389738880531643628135248318822074229091705037357007297557771157417852674122335176745864237812845718902853263698774793735564582113211078335570235833375336919237171690905179995301352635735362203255318563360843817200635379300967922230850223675419881526954477307680499821903643282044561998925212658753469073251948711784983091074062604367019115371169729948506391876785550815118108470571200941666959797571066940274202602904969661769968209265762198802764760388265111900790828103701197556516307222894555768442788544091638071282960114961370287547089711165850967089693477791395524413988492471655541613358740386332709739482259793940033844272875892913577462512877248611335632529874400723859235218204048745509620145985408219262388787415956972424220209194366764053849538022545114482318288106573763884197355375713568180801827990389000410075223971767567210242488426485963300429283265726874606168160009501622035623524764564073037232603399018127419935508696470933882756540293432620768173544292029460690906998424792092771467864772663616364424005868248991986486383876423191718152623119798947421495539105279180219400652258163415589383489057222994875646596686257523130304535514551353172349430669012215791398258887624059834391060013142134967558293632993016516293456577917423965437028329437565511289692091515721466421131668902417569120820710682990943991284546193990521859051823942110921863216863524519649496365851028168347296628745619187432572645917024187478196820482036521167999397484722274256954263182640455364155099685280832232585889713539143640579599413925168652643915656751209857665083773714111244716111617482652721287255752467348194852932476804454856821664585453981896367317042714529667159646050460998956561328368607801086236404446705838127586909754482851962515156203205010926743852734512820076558778246097702323551068529351537794835258502993656063959252454132124345570849128002185547263356930026194029055884231624208190032516777750646378341340467373501247670078470547644373890895898886880237660826183678193493979937382721979401222499426581188893448931960383801540701630932078006711182842300469265011418898239140917211878080710403248938877512612916629426412041240088668486944234446198498683397255742754578957069242182323356708650122520032999409669686107059082880805372441875746383064140632208557127585976451948651482568685138857353447301548381841453348419166225440546931248543739058736986576588874188739984150896060407526365139466915649025299406701917208535834627599629728910921269459670039334074432142283440601039207739994497103177837353657612190187437449691820447816566054745527608168280264498170091288817681368680485956918475113165727339409069495296407401991316460900136186303018246468580405644215362867902350568246983213874166903225427161173737452774767635909348129067605901994971153756922047247937479362512156984602135433903501599178776003978111147448038315249778484392770609734813431184914913209308848127047632477459340254172454653364519165598421872535200868785345708087900957815901217172746039716548072874173778705478630344597085603762517403582586426660413817978021356295345306380808182167635996857754631699114936291677376043132360119830513735634130613231613337912870100842287423120638273634831163575446386310532978019833248039269065467203463355817539827798787377591280223496145591698921408986950145692411647081860669245012398162082932686228873848848881723999842123249234668700206612174257081518374363042504976507440529348597838985384313987439547489896224676884324726185974921086504067053664587020325697519002607952263126862728167787540711015518527077416766633263827609972020001881514276134197480219615442655420512120223661800185711984968317199495456826197140312005994960379541403052218609079063869701510308398383271533919911257840776896864414762824943019797479131467474281258941592283138913782354059995198382534928845803235377207738426973003948459139552967919425339494975082120930313067194754856414131884860369599943202658097730102790371483051576308037999566268520398496670362527643428606794969864201234968848146503452695646495075731353694297756939818249886503223549155404768897110832653731914329139266300754610045635455396019846710365574474749398718047336302387468321083823926312691227522731392900850231744724211317021753342360580039007258448932800632403474061697105530819873021591789839690175904459663701162271153515913856562226885247663151897926460006737598405904615345071814311180991542675580597106398954677499373031869291228186579866211980705616681526333933652971759693827638921984667124259752173428344359343967786970772362312138795420280278434651651074773797565084713849321413357890777477135807979896178280364649663399594224286656714810280634584944350484562384347979789506677396831498397751561871799146218348667743786485234684303362578587325778498679469238789728749249759999991152079458024657866682184233022709590567452225908436739713322365491163689406470725512914879856555879348475166923533057154877469107400248849935500381925291178708358156553225882286438742055848500054779050651171358493699786610077500003515314907214332104205577880821974386636295135837329851706336205866455096662786612061479710406119526455431975994085795007797709783377911049740572700563214236404912941375465256598618834289235664435796284524611320218631073944720722563127345357873529812887376445672176786170704162408653941869715758514856928287135447255372747852459120712397256693314038823265906299051294188878837096405585878747283763522106791381527283589528355255903925480739835795850443351220150955778344609035212580771434333491127370491644768853467363344440273136497048490346012605597524734318179438132497218276144221803381914447851232003071959374148410757740007702331615379244975844248674875151491132365965305219807704456237741361487952582726478954233587551971378276117180252218294560566228234348559542346881069414399989992043453483979948138163259429401108948770376247957267849161748593229013901889289856867377962958235218181912644166513914819709519572202794378488034935286503143708793417902429462981175509298949462244581117156588361313176855145376724435709682673843899343341806777861427460823783007998444943234032152223907856045629744645358928320115269326923286550473414617204378349651172991812512583866138476162653392597064760399263953774085130939502226320674643888972826350942252905662813570467687379485434066167288201805455536100063401570205929155617535200925940512897495539302839350640431486362825325412670429042180501033199501533656011707357446393715068923879239973244237965805034273420791355581991460734832643791593297913807868430492380161878057332449277219579977129186404439903219252827124263523039754093700148081191288700447025802939843193656531814699254299613193249649622039786692998676581247323660924139333108277619799689389268730807731027086862376899651677182018327810301168842407646502764339671976313594126122974897919252772039348839341718750750385122550310694570184159782743720321348187094547931876067583571678063066702986912783781537852078409547936229585938184988554517261170098048315198344950259586266338861340716121212525316848668498450958523103871333822670755050195960507877155910192808769792715562318612836290097308473462548060342308536027923375040123460378778082765564042814251875913320886145061019992542482338411109608126405693515147999627504849345610964198207844425755964357517703511259615099501369072767585664395674422641943209209352731352923826862714811502578096135535033075705734319193381092096015836692037929232663281214272205671904072959064140049440076138793355113314099006695526535754865793596855297388748626515276410164393717237748876299707029225426139473781405032067484484644376243172023056333157183698268361389322630936660223533603017173400798067156574202890634287102120297448325969113156608921437643721509992185631364859291326829702626525342429543030167836520734193355626414448846946985511793329466521956700893647278855045720396840911411828971262764949967590572622889925175574149275224396407876725096604347983902191733135427266844050433357049559005877093401295327646562294686484259320533518525969311820765435959570011458131359143391764962406972419419961046279013264923359386074131221443958762129064549492737862534988303876763053335358517451483944766815952607076323476308033802020764860704691752606206312997231135783086332137353661139616119375550668849493193261572657396185206709051833689945490575101493552516964459699936938617055670555823126762558573223535006821546298037913605463746439192015657519415352591006401779229806710351162820821137099935812119616082655817698046535914518121773801211956393763550107851750838169389472142564668494762039877946876387349669705311340269583392657179348074127165933543067211203799855328017757422981680311237838247603110488597341091276903728266831014531738853243717480077687787760069684943299297725212512404313123265475819265071213318372808017239129628170831639760197908780217509061841306674464457192381004479482698164487179818656045929235258435005430234926018347805416343256173132868895823843329374878590217550813324466195113307740811688621687609569887452338823566573795709360854129456714805604553841250175592193886443002103997710777660843648807288363404875417929361703282129173636015505102221232311722374163769371264685024883754808923437059479510924357166291139947135155546107688265565189267292690492564981312815225797242816453610902046575580422784324868015351012524048668296791885464808754328884587740833910915937204102035993924446516086160387561186933963061601460346289206227435640260128572412221732201744892820102771659694176416061766774652902885301110427760222527375101519268230305293940761472463349396982991400053333413125971476631787720440682436081010359323466598074566423257337452449150567083881219173622707543787658078232896168137641458277285965068623530309572236740135494747770718299087062456776151050025844639271133943664185441684453397834649427757317963137379208315532015691324582299198775103380459790632454123204078435675890237855675044795562904593109500867483183366198435610420685223325941073338454253293859372391420858984955594098109109081063017572287504453223348549528076236606673663816233290240163723328998810602804854135469823961734264772465383543037846780937431774903096596198555822802903021012145957123372552293683807125165408360927746305366276326192078151051061927039434279711298261317255027037050366670701364826575463707749029422995530730374805340493871666265026385609631195073153203762092262707360375278511045132444503845876315300062128611453368000717777555029793558470311918689519899127579771044711098685581098692994610094462046025952589340125118432243773907443121108093249811520227507417514465408786937621951557415244046194301319249302190973494382838892996715845720661009488145217453465086792206845087888631475177291265500001113466902754103620976096688604608705693040414457783555788928947187374684112555837138119452091788993399738883331945188399030303305823828870870668801025434522648823596272156258357695311740172678142745071514488097276306238329892910679253263025150912401669259919562653585217615491989955875887964203497445142076437583212627572030320070162506152491557706370222312249067365607486765067176732167687553817177778293357185236667562367845000362016518507212112353063761941128768705113430838118364931795135125598990026033465774075439519269196541377977345467155158199054876677885520364725953362964341098498064182457617974780947609824433968095942838583292030798849368683510506316499497018291159191289137390678669462768287294362508048298696946944696027956608773050773480427602402430674857505860885396049821657832084581964149710898944144379546557569652319323286765062992329266339656509186436894906120554709772134504923719992363968541631153522581684864094905534299032561732283558612174559096758698431248372236968613742377981798299795808665839414593828554392326709800201611303236354672922408306800166006216329643875686559879369199025780775029709142339579454126682738204728079898524429779828744463501548607241284469496184901762628416033292495659454712605615129046005783546617850478907756347397601845157382904524284550245727221738599927583522132674359313093998774105764651785636702040857024263924072918618183335382684686456976652016790351295884811559842174473791700480544182293015436940725917080458579414386434180154376500021668969759372379386865294076124599809766890565559112687126683128249541552859126088938774049391048296191931877304332695271362041908256007765042846883544355425576838332769838560843645355766153381253835398010572183257244277425345255075888700745012461586838087622290612059613446514864220892426502004409416795596303523575764645072064874244132535645596294118688620380275766759604747304481257492799573889530598951756886676645738240131921809050584148491319930438773406915151128065004237908583494918040895247183982911359758965032433486702312160212642562402787083161650826806629243568221570869664603714637631262721897266103931080370701295754710758766475102692153694805611710888934404314253614563728280904450657858232009335575690055362961127258927540043057977369665764126073600176547728545016743612827161449220102627957231646383130133311624553181619860222870388661637776246433750991213002005820271622486604751085215370860652485851546956930641673830728609839090497895590810900238333237954189467879745053172980503358853371439394503305398777836024920843259266688827904045531991816976115416855417132347529125358774442996170146417132281115957339019321743125287521694091127282846908663047887722919702431087361201492002493174620058789541948524791569597552449428615849368588029744563198852502127934467844004049709030240823959534070737057006649146477185535099749578373620444239932976498117246298660735684162220494685336881204553652451712620349858804893818328902440519303510768681322408648172948528964996952323892436533081598783101744559080519347044860634263884304128530700361542632000429175788588808060364542363582063604948386232005304866953372190147306979415558639462331522135419203648773312748260616750073950473363379499684442471028611667101657285165528880173722695016204030270580379930418699799624697532643364180092327873307447659240132761240248455562896568568453180850357196390278384462997199492529781769528111086997614758936722350439903991792715975974386267996856973895388379100239720368587584135761513096544877174498679146024072933977205050695859556149555538895655460760219018666579870825336851487892652714830313037841871860533878575695116475899109014130603751068388641502836580991126438676871005641794214396395737536831573212416782565634849217345199254845715382517921287130716903589056425065915950785963857131687341491294693229492322794056746046981292771675506263656031572868254836766904978365318642672862660199428595203628972394285071693298135712972309190235570738820827316268098343190954486315653531660031035831828139711747644447045230956337892391208415711679783391880200248197715532826690424918471550921845763506975273865422363598165855617694925357723648145315091108671594016471579316771417844962305725232073170852599448031565138488751487178570708060506427973860337264448091480794037420895776682779502359306523740634435119343616538853398034742244672872295380883767160337831353538271349050514515640144931959798856298536080829206210726100159111021191845812207393652352359773719919650017042167539925093003554996843635346607756614571478368612539735137544085823435457176198395934954739804449211972464657433855492705389677483299500324297083800701353280169123896591484940571834922852423788539072463347542471973877924760606050499492604811165673256927970098623135544937328731346679702103116055858032824896354133581010950580285398317258806675186064721110524894683482957761070809860818082416113317088018006249554595294638033552423811865553368921775469144299639950494112517815171543046473640132520840811709908789626610278676401737696197826395758083140695406370353883776652863334187285821929047682192451345274307498550704034847552174505233348577699905788446025360466186212501544886094669826674206501476112345803168625116387365461710349171906594963681969754412845653271945578451197828627703262869464820362966088971780101572601611569856339158680593410669653298729311948058851485432710687342782580265784475437369544189499833764862601398796264503945846359805067572221150214090916220615307029860023111207290787848470642143899258788442233497144094507295723576300971431852726260611446705847887636060390740714944800016559665559181018703016264055545279879181930780993050103635729401791509332338634115579199251168950236091970163757516317851065626029757684112321592074258583324989737633267712989714059018467209157719446268687113118823998647648787351435407205895340108395272250141670069331412756659660247501896649932631981952125273829345460145299263072399083289329046915697704041895954054501009792948761045530927696466602320497468318555963497744839664028860229969211012873270489767038320421672283836440338963820017430563156466385064837474014937102722691172902533786890646780280682749547387522798303819731048962370418697291880587224333319703155548373970077138362206378191106119013476987055875656571294676258325586455061996727767442232342377403538194120812678613600543767422997122040659820566840129983044318347647293698451455167409134753209290859278820105814173116308736734006796190958288921798053347535377267542314736682630253760570459529915259522521659596127603789925067986019344807165163911986971446104386700714452894009758258862679432860772413620576091504536177841405226844244928288529314024028585885189923045451600702592943904465172014384658834284571014945155062669330512146020207828151067755315910056406206157601798650556464231595932416087213970228982435018444395068257005030916728650020803816012414885630246227618444637211548084085344279942358331719618675284243318309910477830921210484129293052934638726053025234331242424054224365531539090587459880627599302939273754885187034354522134536110346991806144570281677161508516337757596565717293298085340185275262954708270369411382710422812431243294130037720954614271496424417493604075216201144193920879487497978540641940721964124532261752086627679590089224710678919990002383024393380575031615181954576932041455937221088876564015798445793371828739375579767879130168340373562358601771473303558758834185769907439764752647247601974608368636972808689484747622120007602745976637179494897983448969951832117414025293017457667695044822440037988061314419345356256703482876021351967993088666128625093215079182957411542802685593242214082784785818230133887060821759670189819008248276120939435406765959635133513781504871035656714516343863831936984370944861861672336812416177953055239749719730635208506421051302305805813876317535133056523431147264542404109881353774393580829446346265565311088754266950027643552782826081868756026501455621973748798651135429485053037307820932942016885106253165591600067920143753533613520771721731771427867660839350179388558395023544896640581371656790477341406657834467373420290555755364627238471887104592391838314450924462724801800645255516577542251420170454885672075103721412798474589675872593352245717434887601860586895837636482919290007316753556197738299103627871381090351244926340336413202906325380547751002874929276483501702377607473087981165164210928001639425167632294587074003136407990898149719899774334755924078575099284715080513370596840444272091181546367162290698377693818763536546223450145282495178843531018795355853773272387876316795252727648020115343071578661176430445723394966665926793956583767308300107590068684867725818633867618933171030539267484243663513544083912820581642593557044609658004945737559368760233425007064051381380897918767404178046850211626165955007964923205946495116193136475182402656980724750015552030835736523725743778281441020944413116486585826498690652317053254370037226745824921969463144007829313043479390992083446157742823843825775108280674173365333894073012463388447202747335521157894151010469887135770502172506320641130372906075399923006523409003851896795869042125897833427855579305925285627393756177927545093470343366427659033390737563990327929866671260792458812326801623865670153809989381849103929513123182185137716050745930084861330674887771172771146391189003797113038433888794397800188208896521364306819664014638861675417000835067054880481592430856044257569198185020362891116054764780011207214219580777590155698708592837116928224790163984943162465158639482298510249647520072767527887510659884105535354769305253709292017909029820617273773724553612519071610063747422495945957504378264678371316952931295463685094841306691088350582506201153862130227358855686610086258576720491261186430253294641226419426352603318561050687706967394988973050807101639099510268471120015538135925169091278959725160826674338556074065325639934224045738491649258536074432637938684502936522822466535198975739796667547261001779570240050305645832587897961182363320367052011079233738224359432018772333991508200392654816199424789240032346648929242839389409499014154102020770844139279909563333116453543806205556433585681927553575346307842109087248394414723603020428072547998860660232451040574063579068792994554605770682467795571769374786805563591536726622130489796225748629689394357856056273665547007098094160801533804273856674692670935487508610999982134427944972847916281272931333794232824607653353398525771503908075254646052021265849410648395903367232407650648941087959070975089876626461085833556136833864460559253606081178839013618452180507665969380547802360663890663541418202801144297384930444358364240345574090416996412315016312747872291632860852490555711042884184066036807494237959474970967637815359560579864831794011509038987818910832855153412215990921165144415383475792672843999940738207158202540269936757159848572249083241815987125872746549661634363596124349165723740624271098394041471250452470868252930877228390638752402532634451876423983130614334234932462047788034802078461780702937484767431821799583115368999371187949151671253874912749565770646703539539165533128106902642900637180370238540758486105013390200602994425426160370091897810833425827558930508267827976612547897624101075021417442515685816410602198212648529721616883343998925690621181889776467974360712784400658478924650476693527459897390351816083330437272449979173386047983752240042391981355838294632206847957144518939850639421077241762583613696526052919435014141060487089263893090783325735685184271887681414281762498355071979764554510783346794578900026009939937275277491506378429216008937827245545885810697160179834799993523645133095667577737764858460863641598597054725596413388575652275723911707005916486283151107485226810532160794488504105925310784474503121932674478133473580818252604026663930157026142232098566579945317182118823933327849643947967025549331940064724571527865181266222036013063787208986368284894787781811137258299373951593072145786937726050945255531099585710281113475564691573410838653095229116418713923258382283819296661211663484095874752122533776326854251300515949950522959942257120356207106413651151088218514951729926958457058438920924181841403878568446205200751253300953809662195072282569423571684274822757046993243683566884985173751695489123847305923199222406181537429806864450392989975585397379652923465390873509168317329806342106999545126017373810591746002810491874735630942892153836479263658852862991225626431009537208617196688826156891425520058023425169538963328070875193173098938598558629163409760644802436280787702912042848923936203582415811484454080505850811154300741679323847395945407129218595943911254731313510748594661016766090037068495258072814032099323995907814577698604884528547157645049491972731316469890423980228616182448411186961577140170877656698347288708218120086650189029385242348579396753291961801388879718421424208307882901985923306360732258255294615194941390113411917404850030519975037161839682428762816843157875646154464056748441029210967292293046475371589310929513012436794168166914871998842587877708261117979626744081288058956807756209160654229565455468220819049019998656386677053025042585318415389823889669170584126329492692300731362852725163252616457558435650099305319880758242149628857261985885645210724708589844670380340473523550151441707103058569348825383354528203382986718636215703881898741187263160658236624826285872203278039091099393397178274173247890496264241326360214041305035027623544025397100197202126919911590677100675224865837061533047250903737236607738470451815657210473557624024851650390049175801294907788414162862516744466973561782991368999035263305051518893539046918657747018540222152456401358700551877693470946057387117876550108743618579801076873411484359437740337453563909985360033054093448981396453959229247713603718012069919303239424647455996078330837387704112464230596413586603392054455508907885438737740210317262359282837131943076856760690241441471232357951460635022666615014155493851014688966159222559374476486363724958532798219034068821239307996270072441333806163917513384176749087493801688511241952648138265789983132840105074162007318881757239805670049862423591045406955129864518629463283192329144565019161525368984574909682645466265327924870934710969044052293237057083208019730785477868314994837720790933484771109289564505523751815640598040677473136933025025242283044671700036804049286427317297371560046231275456121470640391553835585286628392735030660145934182886805161038553245743389159443375498934894753549297503273852820002154452951181670666229440067648114376744716697758732622638159319348952524447524661975153339802912458536463321567523160519991204610784370182820680564325293728096606783060901671616916869426538621790909516633071558162353635659743542316384022000291629812650009028138261244849358562783813993339676743482029522672430178307712641603477389882673056702833541509552844128576917573057911122165736989821066713500655539719912307472515647276610761224720195361816489815715846200269300684733681865411295211922411701509291246709982036013609557303588196405100765867632557700176791657224648446383946152181171514601093376156890948985251630130663202179284117614852913999605359481113283523690617465565407292633556220402012832280760372015061856112532744597235870672845792868455982520978864497267305783749638095785916956514648935567483544015472873871195407063756812519934087212998670035395866129686565116108275518866339953148113559322467905250038652014479440218868795189062013602950837978773622216775267960999173706101756120232641330189051095465140905554666689070456490498489949255448424581033109183221850828122273599284204255210565180230768725734753604575422420153334681749818795884388383701682406617671902745131415158342587940228408527213248697335986846399065402576194403712192547946375270422645654192819446015943598557048516013764255753095843752848963635542754107815380691346012684697477247264298153126755070241960316590652582862062223581971091998125287941339611690296597068157737620785651806295466123222202540921534634735021622852174908413814340776380447639722678425621627375142099941833014276080755411258887218908428122847422828625366227102168899253630293289627347288132362262014768667393288470489480666323005265304072474783541848194377709835426028987464229790431838478263443837257221227994612697726137278518124175982337225309522085041118423862185623695115749998531920224434859851060688164784579131269204981931898635059979030048302550609511422956269521226947929933467771189878745185031558003708826771205475180147191124155783892946778535090387339692108674315623719257677603900090593350068755363857558784088874799303243667071281010115780870306802147507843276407031628094319560987649828531048825565176843820559014642396143403497551453869487144019811044318877132046407711122876681681755232865945600539308122998947292284274356692282247268273027021643348015544565006952304454726822364278801376155566990080772033624122298414075637644388886441238550291475516795351686426478909143311332859962146106334339026729139107964189936424905693634132927634776770549653661832188027396686314017362912714713789214123795766043955422744024085896173192571254032247518753956895578542244419124400808932538977157057285846665449713554790504988783314016612255603119403248407078781852509092092524339557190356043748765172930264166812480082574641112608209433143888736420679496773024262774349650993773615197044523426950422888119027329653911667768235884616469301923054706939610782510924557358320855105575088190056766617853591632763934082321850339487071143950001592519598627728798732549121493053281078218388478679175792284009161842286727518648602649324167932680780931881297070858311383759539258542428747338507542113880800455803577282884104037389118124827565695036503402601943663268045787309794093277705650254727168893081302570688406058416980527300816577912552507794273726471778587348969106070154124986015043197610988357778146350207599255261553040478641741022396137089675764741633175248509431583595582715724354855067001424105000424883387414487790922357084673658829965539340887715332304372324848663160999717008494197325458767001844961734044353646612888374198482813559500918958363993345715392157273783748912564230764283940555347965093485223054368424384742710280721059961704456864867752914240451188638297709801153947435740807395985453184678828280019911981759873880164689982591294876077325448747370060093145705555264199144817108934048086667680341795934323942843271852974363775586297882984525854136986259090707311735497410375205853656555172915083064916172296060705137771519845357665565360680550969562831190166904830549540586326835856608644196099604220040076347005065611664133266737496428312961678199396592503314583372068448045432769527753601901183622923416180158350573174767206044292460204013239588230523897639669498020416004249324515071800218720362167091224419449287156753854640813785075225399517471324280037495344453266253419422167294156587652341694162245261957068445794919880597097936723584701755327581171178481822666987790635460568713653637204257531091992116574836330752853032055517906858093629725414665952255213950714787230948107187712002447291454213960735361499017951671627131814458955517162619970897428078626916779978755659437096384279488525998396956574334555339950909672532205043268695638377466542086105341760118989876270331204618756528745347615339720661849978402085664622603009111711003835441483276517655534225609840343628763824213980674496471933759012998673322481018698669354237325944612607650787261568487737370320639026764206668129028319832875132198099873486208619519009859219199186991927372148395589623305849583196585369271730746486246250946277937103947055067510317450333606511754058420565598117382122623629680661737443787349102110947870275667894390327116351608950825609381861623080429525645590508013644628953176113182178803559296830630466854685072111195064952101013840283879522859645389745587715541588456277422417670256245402128688390553864242514817403868481966861741480046647089872623319793696721673562537385904521392864030252044007873262821070547334423699839550173464939168892673497200605559979760236128774730006133334297568857805268312583060271989740350392325264913358198532135965014558505825830418147736467581763404746721920484639371054995207292799537075146118603000489602616859604014502537292916824632554080919586636545498734456179719792804561985178360821623608514020368524606232920600894237513499281524040388918760656661263603154251234080896600663637368736571844290890460465657618151967296696986332897945638007136570058255098224835829072062443005669440106208678670797142034377252327564530675473721822644145356841801783041251951806362091023832275441063877938858425891338845149484740850427365631085025472546595241464607341310603165928248507370695461474235304208470718489490183829913983417641582238900958485994762542330428761778705942365978641992362294148501516618810012155265626583320542777449150408717053103507463679317309126760409574836123955492131545747516363110760306482405703084365250617421936530561777326370284760187195455202698180611598236244189524226959277891842619147941977286272418617276759449728581872682619161365320521594572643806806064530528410998509119161923563166312382974882730418239723615607073556600166175830489307629566921515505703680546097803497832784652034262722000014677798634801545173664563838243107600840581160187235533585384462554307504299254988242218985581114163703952376703062305878773047311612085958120339983021614462636884190592270914275062284595940595889714614102059227164010596688196593801188521100162989865778246204722590981858534134897792879669949182913908298590819698173419006339953614162293951321577531937491207005087208321106114844947797806607569172890637868455259894522271894150357704312757142506442715269733356273572063257219758053199922108158283919807237332059617502726053828127379360113236196380920178323809307811389015685837149372217986378862911590342879418956312852324792582632289440135231667211966239612992343095943286470441101976668898254093561729478400359314144795123831120731748417134621402495737134459456964461896521262048297732526941879026411827735631186972657954183206383742291573821898130504938277687816592370334129586510310712211913332684036801973181294421298030071842841194700987610501777614566467561028361998025474858895247710791209001580725589510738210641329565222172770823976973384936425651032163328934507556597118730617566675963292506783469156565498812988590503865513987091957088679387157145544394681885412433770008482224907783107697721650899487036874957555655014868555073536912361687707628050583008077323665268527847232454108434025574513340530308155560149253388786563001478900154870603981509422284877981411846378004932714790205416132284548179251593115088150523943470370786663706660805898938239159474078275231580956234646004055220782377436644320042797050703023764523864619793767502962876557972441595690299226567365398808216973744114106050136340412317636126544752181921421748565099966388012814984150518670020415365314346920716062592831989386770228144069724745718851981364711678181652212100258894857173845750048581608328700064479625283320649527777066550123083016091706954734521656976452595794409247589662518643449130240859400136078539290090942763498537209076868881030968529910860539871089310134015515506141133648391584109061886792461292202778925833932677910909601672124060219194100970363191313423221294623037179527511792026890829372573012927030411423150017180872337890831826128513548286587596045566262765284705675117585576648686156847317198479911694366925355799744039300285167670635050360301307771975836684907575073915770983438067459264455132502576002397838906687512686598062914012038366722677248936328784811223436326288823536166876118425937291686517764601164747575063394510669942373198793871836692695030743741184297411062751149912584676431738347248637219884923733536866091772849300386204416199897416019297801386411725704153631161954516549157101068733489212239846851647825325427010624253485019246798959619302409650009278220166246132660231997217452827888177847790314521102992729479226711193488837526928768087813570155183159665960070847305360966997397600611999655390809554968716668683103790969011078975532591990294961780543560970459025492901563163324472428676443427850140025759962103109067506669816630748141725314814396619055363216997594525345714178389957373690255420443144597626636890478133337011192801075993899156063966639527592338886750125744279958493712766383578557569909985240241767072928703946024522524695455032243495692555017559158188002533801603925537111378706784409235173461457027612170772148459467367051811742578628727664883484083375057776377952813020370706394765698722236229119950325212938824561949924620246654532048362581111874502174510013074633157948560218784332961310970697099000555955363702307439641792401062959579586004627769308882453888192173459221324520559243182660092074436283181486653715580670344510701004658789209705870450470937122983779956775285714614778838274899985941974510031119989413605747782797671807989411917746555278617844486119624047241196231736936930381029135527932997455401862567153920012860386460196884317641677659678074430525373373025152919065234971954779962010394891850956302892142966922263099375370939270407818476226776652605656213963228681550481392280332961033179034623158705442840602397774715771431004770534287023964289850045119735146259946022741137792309161271263684561073837467983859838869559265923256688567390276339047555294218762841807242573658393868576936822722886757062090108419256937269676290118109136263005422726454200350544520780644184786780414985647821741063892604545907612244169605756670774646186152437980048205844196853519834765549298427052726456904258808351451513547320311297086852244569664226197374280290294333956056789146405857216583609272873084670080614297867011393776667961148069312978521827659649128080639218287590038267191004493016742831130608856856950735597132902330697824282005794936482994069882936253615283021340210473437842836677441548891377097223855396011975249246162036318285558750667360815406541954436002378441759608974134831417304935979443430836598079550348899141727608967841266376802205677553622103688458495441937111868829077083538331374903823345683234670998751669071689945120059785809385310451589108412314335481634714542913129733957242768021548613446344443430048135368964098664397500139437945215258804945676442707194057011232149095917902859970326793799280262953016789069113167726712906306006089963966734117477832815409738351472936285378383899635457062833937864085589108244318576664919710652557880346159889270559487489000531069119716481522580425543788117984449497967397872148585166942423440043414715195538099195490261697749012029702471026623769304347141785813785210480127485416457486523359482246700183369600849797835502022860418088205700872425214389820320168897681082509314487534786844147234252336726083844286300187511350368170581602310043756790424556545771365908211372267085060989540268089145627453045228648148216348214141880123412165265011554065811447716354216018627658067768295782494803580088143407285572288966742651759013018460847201089449699131285732370019270787525482270808186213429996329750405838937883417597979683721775827921050274828468960017205751047756785816802556362773260583114845008120031052964671037836334104108916253667957237688037804457468575256691084310347556303746212316636434251367574862114526386552515449911988528700981517817848737555421919945619736628319644063609193522947329853485968838312866397068580809543049248801788104799867065223890487416558854783472779351214438002774596395341487576143541134727643774893469909673139686043684011139277489514605668264321509053718501323521346304311472007075889908334533639577292440709746156982721766569522582210768233818847241047549932966059324774397040056303382871594916152845938067054300121767505585369972096111990832023996370891203413472313445022772630728950496697873909718630478053016128850571861912226341144555766025904900102891587224668641540483661301001662460524164586604125150972755707542042118873536256809370014038598690827819253120403289950331091541091117812921035772881728715797008938427333840297313295544346065335760253691897624321056811744536683055527803124214890632589339505698182751809369993421807551333933940910221690122866715662268463913726077047027778874537600260709095471647973575621622679281010693832550691696730026258174190891350215814175027076199653539432550074749353389493290942429548660355960041338526894961033328536956608868401275251388446757499335014208941588650980165660871295537773523151049069670914275253181936418232015316680911275182335383529909673795390734745745781596501178830491106349012377305356495190834756335390772002645505619804822544676494694255540719746320239907661569014317479533696606210045211834749975053631290237120641455328437202214635931197900615062800081852245998528489399589448232095655049396165228156103707751568545295944550813835638187236343986746819316510347492546225507170368394669380046526133540330120965535091020127262158509881235893240314238085340265855423336567379528598651354688537644044714067645192889186091546375058877915826053259641721805355825609503143865019487697604546301062496095222206672604141292495694374590955645091325604189137400858931616597847188301833250272185528420363989791368519299091210277704469240835019821137483384826292869435826870059736701358017827996117562609815865485317019093414724684465822825339978694461109654358884818998804990211549889312312676877319177656837518000408658706472437244072669769483060148595776885667468268245477700860273060957592741055207743419082226906427029439370380758883072275844050131970740334120130097122805148708823192638408407100462931523252518351301368880505620481686175320683572756374140033382792497736122790843081608680206193878015429851181251361869113847691163948924295493623219026298201513483831272499691579117377890229564390399157608238699215561412105585490328876644016546165294374299672034621252291473438737188336357790995974242435514549402835379060063878690970456826719252868131171761258841136782030903917071412297166421446991325489648571857770167094370134593327715206417182980072763546647842031377198884400292076045516052782593785676315320676621645279308990266805643611226372695889583353854145550714343565998149674084230726647502693865668775707360077455661331380952837888959382645723102114931118517403619992980520196241173854542403486530084249477185025236255758777412924126341250032193997590984959265551499449516183711984655820543711683497911368263335057109145539733165620626048308483501273879063131376709964770574086314174262635151862945385364424704089416764645843025128038748240112721488792304923705907957990181611076269423792956573997303851398599637052081982136658576848304318038115757670153956601708739243478185012854932875529473840262619961708969928204255437885588590314211749450820148387202270308956377991544617392892970820961363956367734387418525916954298127583471065096950448952270063050334789017630905822710321002961201857337473081703396800921633965742691364455285779230829092727752302816286208933113781701106898171862434878612615160596548064707381845304508657574860020904475851855442867074259875932898999394607264445343593705137429402338845504996326139479407088741427230359972443964370285066884574319611045774647719111488111333592296981336446332416295312138844582672499315638053667179485206338481909837018071361981728519242322732210308059888800061749802454001625765897994890485641862166890534266301588984479398821257535376836857380686304697288616679023475689869095480874713883806420843582246722443214645479677694182001139141925891382506028572430093924298276177951232852246391501190992592674475266587575418730989773454625859180761584052682500067089235134675060991306399319804069209014824048185050856960183036055924883884837652870243410638200431641036451155848655561023460534290740687061899790155099978251428921097665218264153144347657373505476535218695840682423398812825519207833872390226194572820369805996377347373797251590195239962037308456143863959868189030448419886491035724595735822756163267472443112161532762281785112884468024269652277405528413109516784446171456977536331726371119918925446404544232345754977402842335453221875348086243649301902178998756078109568191651079331700088223281921427141660487537289132956541040424162455560468242194885665053734312727338322611923085555608432588163795832876488768435102288857060473457421832597680809976446439661814514792608769786678661461860001204642501106486530664415940816465784256532717737640516051267283467455678760553312453692060005058302189123333945925290981450795769723378592129804070759324369500738047719102320452318803634725149718522009888482823403379315323700704750821791031510325935173664613064466787661007974360371965452076707939975888248900685842576287563355890504604326981072712916803090257813900178953636952068348229430257740298576513217973436663448259526459086450649351426511037656429192196832889191070769589890837085114426987447693086101105509146296508074940875679165489199815648033786230858696530009752332113543016557451676491794541914700402108914762040683160023357075281695034362964782144030011723998165952857587257729942300523968129219721300710416472030510937531066319461049063859609285120486247642232440313488846232574391616144545967015406218068396751414942960372467311043566586659086261661602654579172891651604250755831445012016568416903408017754310670941425451759039370094342537623038937604029298083151551441707884458290511958025679218534513702984695687652270625013197694472558805172320581144413409066159659023046926039245977090625867408290578065871808848775118482857016497347135742580266453688644516739554557329253715834614479618412788628665082764890071416408481355080545028350048712477589694311109404657017481942898459838226404669826275152238509166585214886035671535366295400290551397333240417079315053277853007403649224061504829051510357206806908669905958359409234951120215133738252912874186654516472662648465725389442794991829005494683781975654050066612121730636763322657523782348206290853786926220697537745530553601912872561420135316250731164582604502972647390163072958462241862490459552743738517987635391321604132372553221529281700506859148985090537446503925298602516875238927458528558017116292119575155026204757704503805939563385269028385543541302236835957181368676018531913102887065741851365355472226595386110374617232012552314480142371900988676915245988746367849784733787555734649136429119388786981236609921949982191595827350357171430693634622169848327956095689173680271396477271784588537310567691383964505772257836680637612338719206692105269524662048372084469648920465846970814695167990948516305814238236207684041364564544816732527671780421884840298680378084868570315557622891089806621578594864990501379389964266777227842880215443166062672363584575096594627168386372346864452055457018811860845877934815850163850037177667220021983547367579238464073759722414182684212396654368201728387847274401084361625576875750872395124791437490084932117925103175189476887242016772525156453857779274339653348214951395183426727580423709946011827661984807851121995505497428135233772529763175643599990097524553367446431351422142538756898336615569331485149973809728695758553899819820323481990954253224158299628500606635727245202049526668183032712972926786073061650800956043437848585872301371852800686069695520749520534973624398541414655369585316439703654416281954555709452850723253317759073050163216989699184010087958552651337607080139827282133786841741377547965112695403640966623566565574331834041602198917493242572649350950810720316076384786377017471833269690795406917493876392783097715667925704521044558674850689477939747120082754683725601158338954938884661388567756580007139404080038405234411187105096374512254755736251910673760273430046714188133109853710946425293277741576883368842861390164806728544798094559163723176941819516916076950230924705136071844827302231059354195454900403454882234767786594578279458516372899625769073272915497757482234196589739294270873360920803817571430297451595652694281879240164400821296633362675790298691869479673464312192860938114005031007941258935692954075203847517912312580384718073555422747063134994521674212935073593434498346895000983842594428239839149258302471045660726446024886202706950866170404673857886404936056509188637899173393444095884324267993151170477845574180589208728505502257733860951704039156600084302551747719073757774302531223879392382009736830887067194241013636546204176101048654978895015696018328583122507304973293084702322631239933522908344601236529257270542199505195930433427170909497538012610616014446123517854139506359829279512930754090392945522813896625204396714011032854011343531877513772147129888958150516402041772739942490281562182005900910011972273380568609127619425596015380101771310872149332258543904159977947593510297231374957273471796150520311014688400628632242540622084928666064408404217019452065852226384540131940020953209177707349137044368925746187566415181900959516933176670059674477309700737246176064108939489389207583240246844484011899327089435844632089992933186305550582114427544577345543480806598147675696446333223004702327564252095118183138502250206887293375134358676411968280989890448615807536611211453590490453155119710467142332632714858669509873230212426899180667918427081849595701448497244490179920029747144438821373784229316821976548848507987304109014233094168482280971869317319238821912338999850552225862033780389890018712289481881699746666454360940500225006167133931275596131235270618929590203079563479691105083384197398504460132442705390384925027965174934046572868901658374345384547098765872136737316753679995880673201751639600717023991190316437246406710477161361206655820383696209356600479583280855020008811314439767705280103418470385682324080941375528860684756971915193001298478018865576605776653086050344984151299919930372850559491021962960282409663167832328385678497991753180514090206168075724336687863830382464470821863197780043043344291109212903431972909839171344848433541427647071195923447780595882317155214847231480467248410731828334392529622727776902089247536543151050710454953594025841103326807298203092970027979782387826949262439205798105949607742207307602056923751588326202360794650087054234729111392220467633863300171576373039232102459231522415302862395402733969777881620562456570371041166293235290352685434045997094651102945014381914445991880980803462427809897981134644366771668073093365443685533607232012102137856412226043963212543431902946877794149739548170911742083560357117587930114726195170184522027409475552086151950590744505853620330906143511393385583735712189730126792651784755026286103927583220329660898615288328982370814263914521561755676210864505826655906922330226586159017624788592585724270937451620537710709211705721839439602979211165084730588587308725549145990848916127088499136476502159039043561263024955211791055640414669241363335623443542575896083264141849439376533894158768576070414934470598490663403138737082246916906207906508648805669146886821394174979290051789183639486025248384176553033729654592744470330695204408403962087858342447695864308486209071548378405839200131370359762003453498128077144157603287690500936364873241718832287653045039079561013784380414874422791052609430941867630968510751588523287401714829915306050704546593666330002316689072070632000240193584378021536321383181357789644396796474483540419995271023667181199989875954011465368894924125787494041706187932505246373829199268309609141463819813033370905847909277530820798831142007621921704589929572653492321283901007747536701894026770742036601270545253686434500937315297585647785206984154943216294435173597289432864997908967653778340902297821370451572657960715775533272067385221048408731510810207390296437532225763185896579270749160566674898672506684176535201485137951418138505240344796335052252468586083344005061916520940519342025232254042884865749835616396104516006823319767109549837928137562584404678848469590714271855760094098596371134946338877319156661194339583552573008528217951523983458056805249454816056993374762044650694959860091980101513749695625585337334045863512854987354863192080816249924540253356913859238001781270675769385701451802115074419467971388076040637506376130763085010897678251632621261536194807028193300201930778956320935571849096885630845387947438039459689255109783919913926026570429070667598833237064618776658930660005272969337188725988548124379339952576296968282632820537907521822961578486996209961591627706281203133514715365435040185136133044846619799234383716766099890589049115771880256416691636085266621192799769358515200483906827232400628691880782427074561287515583000419710316725542943248528486940242320857576879744598626097918427818367599289612335302131376941431743686256529762370284281185724312738712637604411520832298131833974725644299790646192859719580595559559531734966487112909005777173344528042857697650603841835678905048753354515111635609865086947642214697090507247163017172644718390772414539030611469075484073419572201911748231872609902034470058814503478772107535951281590899340175079898837932671028745471616689593014383078291786598654203551238973990881088805407741883565945887975498713312401102651775871711188122574142097377217648594976062192177608609958844577048708547897210554359734135577281202250680384645194113675445112382430526120749139655972811713070544845618523038942728098714962449305909274492955791066225224443028655321749075519020899214898402425122986253883032448469825825988056897167137197109390938593153350697302131971744784354456078364541686421567022677282786410602932355240384837655487751938882642153584888250726543834502704303610929946400706345859834195166784414144502607825332056809767761133352451219601509622035610977831697658567284527275707108982035579009656380177682139552157774885173348935670792694308439567605443815156297075920365079204165651653305951234318011876348738994859163463339054253169545208275888125850369627100027328600217561906324498059395739718083582409238614212619997561361520016425820742586883647401109124789943460593688728950296619779756668405322496028821453330330814324112275261628182716906681081470691071498593199385882966178757029906278924143110248487653422874530094027993995179146329571609152241508654740990845406027501072811302388704668821440764610639600394057274898308538352637931392587923636210679772850314166606040949005432851277822297388519456543307618388067024795430825912485803575029923970778897261786105311915495415105401424687789705083874831450490667000405069458452091855656798886863944596784619607223667082657488979039436128163687713131127839319506003824616218901449309188293297696142620108748225631112433994022732928895904733603424609326169501804081434297171679651972295951485768043660489778859826703377197539700339397108727552370004658255109073459786667225038916308081181812743342782957889333151208601481479867377646216043914423312435802905052555939566086884287552133621384758423701360618229629957093581958975513416692636847015210967453966325973977153294159139826604722290040258269326331405891280643931228404550656052251973295091931792036039944139218928373034868956918684538176899548897701588907531424582100374458319854039771054689687907143176767470298170967345410344441856754080933438865127911081152304783418969374490964212068583325991074533104178132262082415489418493854790335103993734165330687731843531770476346617523576835120852352921080720141269448687909728936932758447337027953607404175841805682224448342267515678052342896687366468548614029318078117901643430064307925013269471511983918989491090857391100842466214438535834841750616437505007564413336497633480247794005733553971556296175330024812572113007585313999535317974193478022425947855641329939273879876175877472378573320394386275745074232791205352109871578126643447711180049751509192844063648925925777468302852877893273555764148271090645185413861176675019001322473371712199260614117439759024734853216849844669060114049982966419366471166839334712711266957996261899919297694437887439673378348333530908355579807695384221625584941494885091079725075860100065198931729798492243228727938447096195665471934033789035844406562320755629224444711588703703595549395846479274028180635779612726243119523357028906972547627324521451567000902976702422122251785817333586422744355192155033406420882285218064986502402006772961733026327857504614828294314192344102796157448701571536803508411279243702372955548248766150803263098339181215972438115964131481529816294520754766168271939443739045432957340462426991876155593108767712543405955336182815086924960427372064197657710957834268904908564082961474514100986520763411860633144562928209141137135974115050011170481879011013037647374907124500176071820721014735808866821561264542488261439160686197261635113770021637066027733512823405185964864190239413576069595121374510439979479144298826903034778070664292173784311912248727475648608840732846000481938522233260002339969911322386177609012638052381242066633787247292339054498869292864480471552195583101297561737792913070291035801068508009701650056516835436185564101887306379765511514128768758288576117680900180207689778134629657529806579132156252637573124230573713162114495253591944457246586262549118861379228225025205729094348115907456577067436612666377758279833790297849646229537840308940106669625565701268536081559935953411082594931344420912723899980044958511355587790223757632300440495975410465232009866801694692775762279566924538992336874446776599772704559139016048017939069770782744822194000346978236870328755248477433997709936069463701084344061632966743053048884742914373514885180106485495473910010725499743514109588181855699364762603999547995806989563691079148736402307305156563073471577659863574785933632000111084242176768047311007973798381551400379785136907213160588453765876087104021820162085109726305563628431486639692772605716664380392154865350338923496387035882639110594958924957901792709264322306100312962554805922656665720295004992047823100565826430070776964389535298164310816578955136614312834387360258240290821309888438458569363458297292983768166262891964124749293384355032029760813405757793891795856477651822671526655414334398103570934241556741608626631668255824779143167475859509099286722779489045003155898744527280704096049940184006152813735830336643535070253063730078130181979825902229563544775871646553549661899225732507618759576431686585963672511228641875474588928368176930190828725867256232497918594375340026335552117102420523585933811775371983158213595688091294119645932897290503082977765573790834169849353190082751963554918996455520780935021848515400675523931139517851847666967907909574494329186706833964254678604439290832078722719511289925078068928240394637313363089688855288703171238361148547073620136209993624837344520946525610743293111895543570174192136101255921273322572223421832225062590327568161339588087739312176726058923434277978854327308707760934654064761513786835237879128098730784434302261192248327778015837662439729219958676788346324235675402240589147157906219335783930660475669869370960974571197220628127086598948452095938756119906313861989347529702460109046320424111402072759147003979890292317214162278537863671548722783128455869286138919925305555504638086402102290095212975237448965872544404603762271457786652818791585661511009540668954776084570304028261418214114860932844877723493424322400457793190159333827877590531372754927844672097661004207429426565727783875918103353589454612148121018068633084769181486273293935599400419399132875186529184618675138450753390224100749144194832540411584389064317065476195040964337986957444558292917260117224739120169539212567630441406189661128465334999232041443087084576581790976406791091164947211389595128917869276039586189053729492638725370792649930655270899971578188290381144947268395698432859379070349185281683531985563018992172421098432264925039828058693861192042041042306519338272239762254932789141215573465275913004485470373602708585197786234690616279142179586411896816946321204827759053392306412011961620785478061889423698831421402834446144566053986739456549756987694831418510816153809443076401135105992250615772414008280975061696226667595614149703654155083116288626472439730607393844841543551016835007529811713609702478268557272416642182381883031870938513816527600696729221665291228691022713423344396083183216267186509251312671849121764157218930560730876016743462709211135546271568534948134336201345059187573588528901000581414433426699449314339629761889491894017849662990622301341972154554289200584428042704479408891939827757146217355252431429599385307879626512328901213070783311415128394028257769382738120795112855441099380095342335794312636206857937196345879637568363130003208213925927076502931228884070090118970299362129599383539580293590149104772797264525205229066775111313530633052581213218309454258288583289299297602235158468143137673921399428409094661821722777308702663267018238568553161117702168595339264806829451512100182017525324805790903131573298217352026302309711294767885000174018947292891367065846130045625951317038489812938698315298668133002509661172629438223326150772224321453821371093541835763054354570183214647611170272789624172798087202527119778785663853821907125518553513462835102485518286753462609525695271968892637265775338908509767403205314956232282006781016907578477765172580075178187861571121410997427406782945145805159960680708282380027224960501313387038465389573132766508057000336944312200996420295774069742584011882856521995807583111270308378869800352060958652488452455259435349407972139941697437887384840862163195165882174136431194310086543439569662253172995240925921477084928573957569404680799833195227240290288563607712254060155106779793053081778827643008955077052594130014156652904527977075963009729562532819159905002538219086678412786487508063872979126174891223836247472110068777247827609076262034771266963264935569020495980575798490582341220653766629361997719888387630813534109531798363934739474005886539921983847379733749528334945022706265518257289795294669224784781747697312340164228018952805224851117198384172887747106572197510460976896170278951057364736001667470904504547381416261025631009643663321718653265791503978627996833628858927367938121428120807918542086809862927213687838023840053293483626012978281508079601100728740381496600365501125744698571288310764532000511372484556258118376640793753186018779244265181219231030810568317997620555840940329431691631295663562399422343312262711679290287646160075680816128605960523196399952649927422532692013864992175447028511699952926882382350679042467951085095527364474128989442919529077595919724546683237485847053589565553898377903783874062425578632091353348629331082039781002396914310632278886256650495435334509676327519607683258308324465638034093015477160842022185408158777902895912569588953126497614396598173844983984235515181548918196091370294938356336691335994257803198090706763646683466931372924574348217270715182811112683461275866225701432560401005102808776324851902647688497519008282145319451581034081664870257451526019373520838558806670174950625746087772710599988827564339257364859127747315073038388722002163612758618867526005828879231333597803497937361781116315676994319871959165074651424229240547677278813510803711032809679246529769643035386331131353503841509182137221116943772135920691159251550013217405476510301559484545285049950760304332905942825796559116431274324038790211640868490488654441069066086280474333479877797995001648994033327883069684945845815082438100475401175915136242267269374424230117638673551651196081232841111443489080967001734515766401424892286085834895765181734821425134512468347507438749872761632793953850118317043674945568776095045054243942252547330737401132208342116007639721947774216741776179369280316924918996662258979676857292882570027133729322110586287912970468258297804678037664059159127505246717277797164483411949225301292998045146376185072521928099543768689018083692170625317508072307252875071699528955233279642397278377062417565132933666031457114954549499676089075485118784330284477738411827741080627048553464246446767577001596858595874884333196561969070509925236492906615342463480823797887380693800483094894100885527156914784852698389844730396606784057812363549601620987089030702551352005945888137328630561332961785042822381698938682290047789759603512817508009334996814342245546924133745231359340593101178538979224843793704359074079774203250185796500914218446557976156349336259458880810797381373188122068027801625440472856041778796516159606556890176389832967385037681820467999493747809895150185149123199973790064653655402929173759554670795328320198369909356828301744833458525245958882390451686355485374415300586852956522655523547143609657026532208047554290646826487652369091956436698373868524084003737618765261418106841186978158181594914219830594401505347871070889602972282244684753436950723357460269418146729252629534372818166328770057574884303331100083663314547851147090301371394587391055367381794631411412126048707503899922062084643786240792281509931235116529034213558692348787020983509398710838964504461178301545903734474667384393635495326080416224088328326559173907894368731618866548510229173170184771876639273575364907020569389373533095671714172076172534229863851726734633611498136069381063297231628984962442958208703209312549898518057851180222669322562366798784331066812833897172552468155667329284065489839655700128079595542861958840074949304100025830246916682396432514938409861304482832666668460512665369007948309257259760537927493949644403466037729575804814349604251037889016197277840994334150771985558081422565422002975589831475568321496264640279826986153598313581435378678259579326139682765918464939404257136862270139736427176196000819576299272361527120382689046706182971155577079509808775414533109829921729092433538122919204009916538142704044618652001477706357364967672931623346663501693631954229539522485561828297301717215821467634711524396995418141518215441586456424321363536182860186948199822283372411827084833946171267009482030473822496989312892909563411508438362840923538830205977164890707725423163979132744095907305583929939503509221201312416400518645407541519964509471710587464634351603888840187396555247526485104250758995385664733137993077855983169683797262751366532369997071221411699569124845037385375134571651154016458898442014626141864704304265763896388671514276341046956860603740469700175681509837063472968264608578428549498954263538687442367374868426599606249536170086537476552774213277376155262623461715225515395615587436746122456008362910874427801311527301050787545538053611552567122306457325597027410486817803175516332574548115485416534376868985360996385710972573947875836756336164661598603929667359305217254250778301209960580684780478768979161172548816067773632206960064254031964744320968078061421365720437881008729400969178173493187017956696130194987691688242590063658735111999119215632935006645314513030173431059429793387556403495172661025682359874717977673675039480136808208696671404406278276036140152826600317714688589982542482388213021042250265409328315778738624029056059888584597423037697662296667784246401573734542501138235959334643592805386164936974569241669230416727976502718690867066759143010463337915827696160968250465208330684985628296288301456607587015077426901005046151140245591075341727551462682048263072869157511875907846469913071463708793874328881710003392738383978442611025605911124159664545496717960007531572843201837216026432485346949805195357645526812245915419054178953962322725518205095113473219942232939633429623694816269570238304093855962358730305836257361797856278811851931693846349767904342815059569154185815706516766106711199839467407001352599997163467807534459288683706575597625138907133766271527054976844191845205978035295487633750460103940782441355352453994455722889132187155552309065273466788631871533225505361557981112153565916903781881606445308108800935956578213069942187138109060428678178863224627912457879617725103589871399998148909905065483666107196595228472222457065865287872032936741419943210679795345698061149895521152553899356260948384239591454759477880770691216510810024095097713394622519995074185572386960099488406252249076155577491179117729248462163803056491513873720977168126329872772962914294533226431489168382384664145735426462706359618061050763469261314010881882863451217679336584510827821452716658788378221042471711064655383627008849411149770131640941334050772000358567738439844678347172880076202578350740439143126351922613573148440057308357849870584705668727023994796430559871768508020914830639335394608093809256301375608017225768308052066068263745290204527700251757879953652569961976460190201690827317063749931785979470791065899724111486763519159532574852991021427451798988295900573176497872811867616360331492210089199589168111775612738545070749008468638021113601920559098413180988327209442042408671022058321160893241538556703230748225181196425667366384971419979351544418329380205684537541816082512690542167716320645143912852752524107295021778096349732971805179571761751877636764526431258229577694304153486495460656314579604751705412368307810532326840290295019521924650040870848247138855104176945027645223310615045713436371518167669537282309843226564933355158715112946724460236313173807131708034832659274011001879969872135650549159250906716768842892474447900244537336840979331350145017057036800866393496102877140093948269822491764687671637574634672529669095169974938662312242197662366904537803598749171128582568304741281004577788860418661387774206739044817538895267168028256369154635635872218133225169822981930913191275379275493572366077559487878568249369195515925172517652787851375691685315027704795225764388504107598098816188223429873203741199572361832680337589999466794409112492266703109139806620058160767442802396156646964733684274593504157194075543765715501171208292529403838796161260838323531681770574147588097544844037318081162358964028533734647334089834390243672688284335796279006321511455134908249483132525354940701491855592794014242513452581271156284478461090687665231848665821094784650234193834874214258112498558288318132670024582426116222389129156303900833037307319933828383598588273996797773917856812682035464756002830215409803125929060734527902485010375083952751991737748599387233708937125567977802195365936625981913039441818668362274143287913851738466396044982909344864392068425595637321314067876782910007737355808055318892313566540964617499013226371639805207222954843885549983294122715044921529282241279612835465338842369063766616057754549850894091505177512756909221230138662331893819275134036426566434506245089467959259167888331168529375533429878198372983968738095386686072711030931254414856425715615474941371645336897749401830774793370349114032876098412502874403827327896898373104544014120831855387858897440948743253459950043175509470136895731983087965862748537631456329917974429330465514493054505345232184014121843637682248743200377481345978508514033110635658510712939843004896252105991681237761296594386386621220905171053709161951188979371952392489628313046418776894481421139708678576761906184758643779913268177072745680316677043458323944107705431758635765216721447544649149475079667870305204571749538542913836335744346055067261010315166414453343880051365172520687012313687980862048439996192250572414363041645824518590286468582925811256841021446773096893302247896367184748086633291774774193400344585293845697936786629401877686443196509390931117138005156980991705456747446768456857192580637931896473927525220404742336116970482977167514903754754126078294502268155470793691843692332483320051531680523738648690582187247822107586589783064579878879128519350824520608456144234740342648763126415396980594707772244222322676005003878930629459595066636312307495743298587504501585217851489801841135592881122575855149560520345895577788788110818375461002891823182373845386431887944998099838818374214550951522388911418266149514896836220178353709356569104747637529324384252194661542487521348343592860032663584644427976150763452961969870667348829891773937882273154945813478431167667704532381468564008119639985380198670102245747211614654347202274107956523031191182840441222177333610121171170608795193515662508439686689613703144620145014372873274819425323960823197338384117388245363678109530917602442045495345925437110860628866682258575135945549387416410533510866336326476404807578265035847133926837926100969951944427762925589475943634531342769331870592239473841353038219411877608249862617951730836811709950830539510346218153398510782099132312501003040721860977802812233736784159960261645661875901671828387864050129802867952120372706825983714103065822310771761318550506594883778139383780809053006114522744576526672151025595443735689038631959113286303286672650924387391031216954270824045269261755029195007743322771415204643556016841377270187049634430286803143373006950655997415597328853482310238847553309337081400498264867340987300370584629621907898892711917204533193533986441233907845734369309022722916869032919693843338818746470233545890459922895148588633851829813833557443019254015369974098298872355308282373411905104009824391682688581012659868506259132164965767935609357457763103065248275433801962271400162885692540182634077166584537649447580754271806862576173491056639697540940207151146999427297985534201635872849192954764858775038961469500735370819644912853721292553536141057557543918140410747334491752464237169773092550652920944160827718498146569893991717277645269508023327638450253478339004801473269221162282308719798109402392621736842263454141776002950191061252134197531351926489452927469422247645353047237158749424489953278196016117786507148592366778243333063779641394010274595374558304408703969627139697277703545970379480445758079500402607224086995004400607793686545956919107255710121154965078562142486448420618791713564477486782304639031201760826479866273753568880206464843614983549638984836373042300344730288190876487441557487061734717604373303856730153338953296184298903877034940306093791812506735539423273978675634927937289797949596761757713420542121413778334042083211893643794307927615294807177408635631675771697472330487487287763174971906351496850190751935091375323522086496626414164397654492615783411343266592910191707425173357970264923074275715952401023411033589177355420005181677529891671609561698396596965711460365264933132777706048050718272674548987997855569991212101525826670298126355977239855162002770887527604410092601294190190908541692148223867795739239273463295110663160193713050567249783383176538738658312793157169417686984372469276281932585073473856537967024686009375494875844721712899829771872817728832253272428127394154284242984701839524271276316745917145979662190125862944027195990383539818664604685171235273452284931554360984245291233247134136716189742761979930531254508205611527271574302123608790712956439933828639558386126433849969605511815429427385297221327014801606999449842546266065136003902442979452030796940149652484005393435183349098443879399643903407092231660101536724727136350737814650405492617965771333554171282714871290662707356449115720036053527967770607593332721811833516397307196315372238558423717728007377154138937828858231671641674961886094642672389243762620191291131309832083095225930305650526432976267375198806381337704831391466672023494519470768779166037312908688442094266916299951680011794834689208286395145793608922940347882146803788648484847198068232122981539437967101948214612022695270488428818504540886800703959083546055696899375282571656754351664574053785974243414122927977548104872321879333698382571572422386562375296059715256017151638061966899764779370977172126185537869149155587992707850290265928697173921145272217815756691547723388680856705592992044801584946862512380080544945033791773254138568873870935471723065215121764297618793204900858125354428871193821532625354262538784122106042538213922540597690599324426270949541635117942715556440549497452457692067856520310810889005497409813369511420460598166257978121445787959822354121829846325060531653041534201226548879316583060442351885841080096719912856026657997153881431951415953578973386596803883447508604271591068584679658035075967412434162511496609913199323234399861145599983427245570308381264572914911713557206981327697724654296086843794063105223755772389103751398869427332106636641751262145277900440054473032321534453873269017200800985247595955510482767159974345688243416125442314621886519234640120354340438050361517632927151162557600897523079956070239682579090462118816829173059639543130954515834732887295798923395566711612682319254572951158143178052639967273899550182796168070200308100616031321028400672008399019666748150382128742430785791570340109919305120090867476349348423844482654596404280147135354183152125711328739272681945032648599925962294228093237655543972832734790856039306560919149712353589834499085220640395521520878900179777473820111838124852787162765049308623154941724591093004790141391970171781910135178340892512124504366057687371620935985669953391792530487961480171530482301638693035670574275452240111723158442289792509456616101927873619601565721003298817358554561746077201473794510693342150438981770617024266920272738829024707120896342143184819514790376510004121579112330569968406422917363085003384408665700334538321786437288591984291250850592766179497861163135966334090917516170018371379241662947961612596850474915365990140303266506748458744324329365305499077562536222388348455104362742326021040656792235039410319595394910459433549879159039251947819078455675294356522861497375812752226301726871977782256607686758478682110980249262940077796967451835366651785050591081147250983318183457839297150216520358627017138699179533806327400841086506742234345287166545452379418609232098412409216144903761885944475837298944619341140046176350233149165497967615714467146596311295627409297624176820911503474044761010400086992395920321272440694247276204680365156039783330033658510294595363485483361696921646111737960441525291657711566620034215283791435521898105872820029257047863584070277094438589022491503952069510701000569381228484180106088287064724166050788603635475858764844195364683386139479800208641137294605371388795560062855036150318588816835117236492463165141950089041197872899262092696652413467672020414179028089103113714867686064204170165150093473806557931278104169945583692586830612471082568252377412431098458459858190847408011313553324567126216969461342814514925457846255218758285999013743890837540668513787340806497469318185055238631224876021000786410580582498141363497535579719822403566885030419237840620202690156176386580298232589099188024462742401368680869969800962832932184395131283463174865358710294314975133421143406712400411027685141038499614893596497816209159438530172769238025481105687119487838202412849201828498957697085273416077505467092991109825119020240934976524103828588077672994853933771814264745863416025510510852043184050100896235447629952352564729877594923241929349853330529530945238325188951856358425223797664819583183279291344481166662776433505031594570343964428608858557435378293022615430266302261552597710332421387499958111518725053464776262785704891656637819652423638353046662910030736325169454744565523684001935499288204535793302526990549386070162992663233771071439107883609789187197227426497641277111021513918806726062567176212937492749242630158354682916977646815471121918268417268417572232845821614885575891284904356358514825906449896080875098217758203729907881536498794742806835369684616932964364684404043716877440905134771020639141574474054561957918431964974244956039365208671021767708473465768660643164294440494761113538091909159010300081641930987216273981914465025445973388047255898545543386099931683640618960129709848361144313782394692862114248062381215387126923852987074602626938036889916222885377692259031109269082979592681497938417718304456607324202071279936376632878702520203793514527652604453882907520669509542533734367056997689725632324566009481072763194161355464564132890359322980622022658488902283196966041970124950675007575210135911791191887995540311748872391392904446521167190843822987019778141739341220900222997546003325029110608246319771639541373934944423694724707855602714584733973967815393566782722747929270791370476128169583315990402737637614489972306714861283328862024758473475779214426476188944215074817108377951803075874113070830072381692579976605585369650451880845376526214203723204342410422847068277525058502768679767683820486724807541743052559399635667754040476183157558456329257051784048036229248877859312138696428731657632299985634341468788172754543884106545395035805115093012841161237513865876243463159555000171787365131436452715949917769003805190815520048953125092061322065847768126712740688440043853391906262553081745222292296715319802116191878478286733794884502054909769479146563042834374101000050440683795628606328315034187328492425194564779290712244371421018324123894063362857066579179472095448628631909527140367556850242938492237618071808998684091290925725137590963332879256658759602600824394696004647005754935665455039747084001524933554206707104702744710708651842165962502523125399148097595404278718693677292616296559417058174175050026772754060011923983496329968680498077306311205060626650630342256617767279720683775400413726682902816946772405134593561870406951745373254691873587711304421657729737536464142525861950199171248892740413306230591283322283764525575426251202945478186030920318457729989856619521810695034869155589543768428231074454234050989254064616253132959850043116077686460834268768385424173739787283532839220923012157423152470491264575705033694735954635179887051850556690390965079363328862081863890166772448474399353825766676976260767725737875948738990507305987181930005238311233696746610593645946861895533142901235435655492209486362742120466471225294358963737758951123588761202252233692167169116260845524966678715475727624756203532045238062652170716552201128894682801724683902075433789634958861708946064331820640645785381988871427021157194882393308371123431734157759577050458658078434508568798612199948634020568724695724510219723918314923470044853505208349860475245289955834038025212922825648677569947974759149895614360527811986930321781009682411956111106236788291418606184261117690741642476803168060868993863420041931481384657006843214118619208100746090988269302152973569640256992634069365266852957879395153169419706835472637060218644684869420802651674929913832970819950909346066142254979626210342488199004442112193588718523907371400284248902346142143781894358474903335213170299955600559093975082314164220951145387936262388643123443185606837003256444314136888877049920548287494897622752165673339800548905549407282455388488451434455725526726830120908794723475092046710904459405589092921874435281223933207661020587368847872708559260278494261706751947238209094171139940558431843263742680958218803793856881783390012354732185546902576977940123293009041383265667545230481921655820982395344726802730230534060889884806523834389695822904587700762986215866058188297802482758379114418010221428596452142451914822080306097024933965657136844467687953633221721229822504921078256095457170949558498754663861647573682513529827259920937028924505162740514004104190691435177013471423909677689163115697836438640039397255805552277134955098846868548795969623302984964289000898359386921491569966911653458940312056681865247760156412417088563195692814199178717998507248081163668291970328389428357173956916638378547119488356221362712551392237470885399723900018488836979866668336912135382933396703796699442843259730667484428662877011519168713589831414264609205870765187973556934861605657068728112866287322066502677905938185517806517412997186080369630571202826022818684543847204266586626684367269109585138683217332747120595437920250266578560650271350774580286975635654662714149877320580110113148714535255638478473081733910530010542747599608608000642460880064839816429606501508559000414856542060175856637114222965271172575090032091132897749992834740880194232346893225337068183463281372704903927333390297506585660476184261057901405975352457346134324864931888019203753705766811905038626569669446245506200615368908935083490288861438365439039800954752538264301803957245020199353390892844584824013894022429452831522796012452890539313415702629076255669955638537185078436812320566474323105127512904479004323390800102684362504584824079514643478528345379196043743024237446094992378056257869260672193599789147187087839955286677449364337474791185980332359472517334595700548005125299522001027714194659757197969503452485464621521260383001959108536143088003727938105769224388786780835683595960168456832373578002264981472919318143242299068651404342466752698591995537131162217975023765194807790576718649472382189916128463179835941462454980962915096908016257473774022466446636235524426440948458969892522689996731637215738853645807421900124300202823037042816132196173908998568174346630335865387024565739274931281430942996484461285128020086823574370600784144927056726925377725255844053657408225025812611613150640045476833249763749919178686644333315767105950813717135815595889480914867178098273561641760679065187015395528752217896294402326945314362438111442097247098841448398086537948839419371281442792091618337832999071428266116749205944229601193131659265249815448600867059662278170726405587498985751657578483401732289073786590707288645125252656267276157279279083550237567443974796145486429630121085235751836898255494734042102734747365016760401856765618689480629267554173340004734610759090411305503478601936840172848550063935831676799771726425821052656722222929708392930774968939115167011035770354915787228203857152124231035563288944048458533486290221030008669516140629724213624536577277686220719392601867241006916273673040981696559643244108111521689180741421376085042664909840567986713794957064204469235506602104707149944655281664743016943848767619218103061166435182763019466333712103306096097242581621575330674218257432732070825447234361497089201822951060762484970373343749274367021930216028159053974212819908551994085197542873105834337575381414345060490170567832159581714686459414837095292036930394350913229424058266690409011090103195843977498264697155454952258617582604121064425590605843305511279109473004469739430500418045587355837679770128277538785327114867439687718145906489208806690716420659143718370169729917868374812559437544227835141199271189907540136209891016813903609798562045153177528026924091662906938821926636323185935595484123817298188814449087111709519973475726949934637050860998272967494199151261478833799390042500947374570194476908723755322930297672107561728404161630106381429847164291950870729170014638602473746443027367257847160485447101925404623386092738436332931066542904797697294585266371335016308622285328481401832268321698004253294809882954723664555267262275002204119510612657951967161737177912099840023575435889705199346794428602496920748482734108838852804612347320198915288822599574673763450783664334894614265405566798499309461230243843853141261790143676241601092718186127313176357892415154067919941120675185169676136484564978148031080560918563527635281159299911160324927488998751690095227092112322411408050528579995080881132473963879229115270009759664174220922345151048974071775463321375628984325831821390546393808647520090857184759932246373901100932549821072492677578911090870217703763937764687942795832419425276338955763356052637277439740376709594328144600760060004358139234429782646145982996628162252625312437685301480927576571088664184756747861139420755173134397685093409401666989899758021164174560091869508527039734286706609567175434364021631184195864868754914110258304995250970901087577825094207046937935636256989953811921153626730402317892188523233780851707737607812885671831360727702502822548771559373653438784492968072367814650007751862899934882013259813698892494308462685594236681849855743192501294466988732354895982676464724883141731657674296271093304216421529079010343487943264237952066497749777909668031885355807400219151294264535960353660142216308538123775357516844741670389540743092810628539167980455613905874528408219643421916062989806963113621448607743128779686947368184480362429154656952937952341257288788334518330362287513218272165540183871708885275158062854509387509831761029827482676347038178062582919574964272060296213436410766238638452236784113769244079818184073888734280872349312115830772035410854869447945156334973236294491344784156496932860999957342077851236593010440689465564039321882858068494890885954632976979165185093896510116738666835037546940150777991555996614111982318768446059278610971019926924091820622888809211227057183224453701370876345088524758239037707106164060220174784247335506534520258284861626449684192552788287858833663099340508576607284353869172040102278686711285009765905656398590094640366584074766617772934436859307714382961128662112433071947480687216071992810272647349317206417818834967155709240637850626871907215207482396139988229247332788205165002896450006019860208424886067200761102691117605844703665002337879446246506595686987151576643957288297562686270973221182060351836668744049910799997205348494573062621429989825005771979557060358812327962834637072874302801073415556628065875764377136968321854049976388697221258242074089404382770545880794492301501277795722666755983591879182090344505027339299853792531083223114731171095136507729541897453846279114371595006806531815883468630013994208889218513352026970452471263027094334356292473680253164841192513145813892624436570524679239973584781612282046560554021177049234209448137853919554820806906839830386974392290495400426083780143124437252499258528887209712051233534839183319397093140185868300489998310598638984427848057714646192228766276906901677871283844073065482426115553514050604278744061228365292704854436629822596593839379227700055172989461248463548985317968257771509900470576739584264737528881512595463871660583057848279532192288266010182854292002378232875212493413726346357731141732592314674859195172537227566936845671102888196256421816098918129864448845011576278729378142643254681989892331968344901353427473699181318349528527369644656938001213061262893324896287285316986884861122742684769889121638221160333782764509239490544859947579433689594645841063058583165640918244539212058916032217842375524832210236947578738833234635919203634750356453172273297552130008685771320275825181689455871742538963920322620112072430258379000449485313287369627962680052820078953087356477069342672966885918052021987044618237615157352553250720047368850141683207233942745289169914864889915181132783236926157448660707114660558474700697464286498080541398687057310428078350437456838347437295231760967557365057486320969167741804106589620460175816742393896367578099721322788147135701522534816444661290607572900166611884549676801162459397926132101993529868370650184919205281217677049396704028344476848927776560342927019399214630598870809651332713964990178242032270060027918118912813329409998263270344884345296555328944060936882885141674963724940867640403953460912602196334356971541280602825423689303737517956704034756441749287752554123248410795629885030683452199779971122304049828369431051096221336655933811462038006012260452063809961156075159451893794837674083225657786667167825912406108283520885409575005038422985750610379417349728771711120099476591037149820699463281415657651806106131414980177433622557453441270416589604086677669629345864973011618351902032677162963930733258334182351250576745771288935945992120581518127384286021360498628794035017854571814537118944204135936041983583108707209358148826116151376750826842525751116722130567239786846406435595282211402138156657861889485667260747889442278347008499639888790624703046952753857581747109547284555273229811923176973671267467963471722608589818422456545274136798930381406291952570666467902276914061455929389609007423164575260817139307199628794700152125683927110133312637908706508699810045413530099607243156160964752074355248277065360469530731167765009541753239687790450536246225911763975958477707134822171549418331225059660305769280090432927793390110387751042876897621660143225655414595886266778870493749834119598315711105961351967544302767039986958641096200960907373585124095375743178291781400451794027209447798686428265838424980641155769504394192655841561126745030411755444683961521275640511006309299130872063331544826320566036083734158747936780545656540970816057370052717621414340960062210818649352741592184326877162386960679268137731738038588477469915332600283242363083419087638412118976466825445186742891805898472223483489432023374443266152190890106418406342597304853880959041755257835984879789543166246209363826755243923766030201132777874242402693889962355862303522934902364235198108554131236334990602087675685403728633369142531949742243216354990182549174831015991483218250746998969392992158073063252101407727677172123590243651874368647040833659916602756752910945870936170617723762526263307387030556734689899842563889412760430256845617015791252849842061767824974323839493703845498489478436992844766236089134273636444078796325982274714837624099755378661563830409786860306929600007960053209331058453888670531940112724490666777955454612733883715092139569459396982103646621964048484753244601860220307734076236990097088274651907724337211531647562760962315878861723614826467944959959179731837528405091838582959354601748613343572331415568215353205321324461311716189624550455339393189159044093854789066416017972919031289426625748362307252033906216273713226829406127504485009016206709871705883130918170249397275479663569921252547157490869554562784627403351231696656777255195974647486707463595134809771323017861932368311670826433452643689784713275477433596504918289565818582663535312741122893747753855419900744083456637620423199593027097863145753059542995071617437919350797943628761790205987901879394429266900098729667538367568827821076033731083330716188958381219668168798454838689924483011531323338438627540281439240583109502335000152569169963166640904076412751140019828199429461568334355664387830322199653260189125698534929536172748862011967184884810919126485166637465939106088198156644952856347713066710999254772784307582848933995992166471187369363591985482799973651924523115502678923974753767549948293738261224834523100104796162454980239426315712864837935856795044410633112811110848317401890352410382196930365769910917284621831825918231528479817643442412308646606700448144264847555880940751712280290468048141269361168591077510410902212763244883445922739050101787058463992709116340699272858268998401315308819316650822455661997800098309911982250443814281920261976671524768104564033544185909632373658142868676869759808303271229980805251877723009956890799551754257501865393724395172921887421733739140393034517187952648653750758683845446663818006586917855110968576063518133991328597715465107540584219128016693388229362161084691101565842577725066453175375688935059714921643724934709606808156784387805461003319549131624123837940193962447897042886947776151611534797978356225054992865352712026981031781409489320578621341013045165463748582158269944132930510105336453263828359906817190022118885648375727014648416150839109993112908625975700598740700155968143518700160808248347732736098614662715418584915200471070157245342064790263687359573079867536627086720612297233163946470433162796549698314843270896181870701619468032422229838761901822863492412360782544260284759845568911730779792817983280885739118330758661694618051044138566394897791876797735868287937983950246631408324909994604394829503353248118437977786185960858309335725968405626526916792165541376589807567159127869972886491964285058749133066994558366815277681400509509264192469852521235375318764481231722244225352051646763992400644793107150370971482389524616077501038287905911804755815427301910772429698306038281757759534395915049036577275781985019512078052725616661590857188174696589764414447954996889612614767976052760657490011307581021567866922916369516596260814990265787441088518839083160059047238846978944789812029825221132458979184838547193760710656379371899864878886174934917531025778834776095923443098881677528374062257328533915450631812979711571274950001113270145489416503810674777982289080896525143213418942976882943919891117824432062857544327324875480801294499484478290333409937633900758434626247979494552262124799324575787863460006890988858709560309188413239197582669239327879875395253021631050025418373601809723896759053465737274266168700889196158042813133960110094140861299843098496966254905441406335273106692289154743075300942281059589764411641955721050813082136731753318622412957576851219292311797911048433502118632445433182020396533757461838301289259159702752578347509341394431389791329189257453320161364661286705516258286724327255435754515260581901184201961240435461154880091027551636204492431513564733831278526918805200583526535816496561448410705908534743693535887079183962396943597747211033505978245594866639095268907400308150036666935020233136092427541584721612967276684248889574793043106649522162616175185252891191150855291539848011335681238770644245089856451658170924011118956746198486254529971134264715641935213230043896709598786723324359920989036180853973553832427611254256314060410966433371221875756069848962224168063331419539965627909415628909144359210325096034582181955489496302593372897954823693222272935292599533269898778601934125738451442212679029450560897617520802387408550673144013556023839815589660331564281583511508516521974656662510151160518128351999590412046427786838537773270633928657560187839783078291384287443372759703581225616708872080124423647027408340648876981560856955526239364984250080735055794580439209474304800970715514446203032904208741771693472468869709918175642215188860585284229043532345210494702310267831042131098859206307121999707031119705085438712647383434641566805171881639158820032533698547222500037007071210334788768998457271954339515157419903144121135545845983900727871392779052723557817245415126234642384319076785806501203621612697697088905332380921270285426851092742453967062072141756929781305752390240883154785553829158152701066390558694150379890293412584540916735543507281366480771632943930396545425275395158016932133471842249985573497384288321886605938032498261190659244898753716590098617366181304336052951603260118159817887953431419210292719479970131269314193552012894275556044481536868047561908447988587119844897986543436218003083416250163475497533627865866696853220291866013056926442046032802622647299992471147731036708057130713762725160646339858429755423534824514778244295627004563338745205427935407210582045377135537029012814790420533011517828017363417425736166016505581102561993117765888578571835186091282386052719956635484016403937685755092731337723857692854049183515873250607128966258329654969873980959706407650026306457670844904046808147446864003758064300379407709570023097507851287203077553163558261928840226162965281681404718202999420666482690626670465312529321284840580089434842283177034147931458085197589407793246104477454274783037989940272900003571601280996699219401198504087710233680739767682730571651993740974819024186134670007412945285507561769219630027468017980226061806384571324683431314528711140745596314500244393085454190067372586294811049934989661826584399484090580994341632012776956778155189454728866423125347408697674684200090737629550921699219437184356877842687589222704163179284857877120084811758108910883720769885779672010815853618945538140280265366078833360549510526982167616269369450941328809364093960775792211601608461053677245674353803982192631325624865284241534568839849273357845967595363947846569955956850879291431799809562402920584810184197939265370704656986751035751212275652141772717815794721868008859977378249091586361243110254813200672459090586410818926029388778725399510681713445312125891954548828924071054034464536425992160677377494052658550155751047491326940992351602190730367429505548525294620743876235591737103587297300353090348969989370636988557573298330580026973807808700074942452024619077084008773427614101756286470337084040902332417183076765048189372478010588783106321216337115003749301726986119665530232585909788890642219952905284841273556298692081341932516301298228550320057808006824738104971627283341596778010382612232956753286920942243877702598786725752490219111587917756015417767741507087635530565619904502789529956169401504767325747105223962575047548436278595565005861590430091782594966810467665785179727174945368647635595854744801008129050001999144485709608031278808944479372791330074799324116140267554875428235078093771200662234512558420532581502536391447110420128954118800052458122654017663826843357714853602974344934829925527153079861746806687752849328672269377371461574731975165552161078310767049456875382345039809808914924485814050626108950206410584047359827677508683201057703409722276819671403802055096935570331890552594487454313855136382554941318421454555865824808388235273170540170260952358454473291106941609852694888983261493148837008026040798044988318023121521666596515007703745887809386340793700627577778013150623669498994834982478527384405303975511720500852998522713116125744466503075832592388496541026974606647584196099488046563427368160686356173977513637654446087899200014011186313056585641696471634682148691916185187095951633358192697999130276227791430854275790787587840572433018939358669166668460405048392392531350854415926650788076038094429840112353314938732573360927745310285452107407702131691185487115826285516846433165574783014589243121987388744302994704884919735344445734220902682124387486728438719568056179527528308458068317674710421773947573477521104485391155208644890639421990206033693712620323779232199640242170355686367640807022776846674799922124827229358296358363261241649560948098615804074684936591587493376566481330063436778198857413926183317436627486704516090869276709535570667568397051594974113392469892899060903422295356274902907475090178240773178056506181036096176452462221136718792497601557420591724220871758064136259654461461776830027099689362992608552245891456737545160855326845494795438591549068190558922064088945536772137446118820881187655718343062009664274838430384903603975974955562788420196017117750427695884275288850242623696397815578158510659249757986870292107709233280114851486412806486688616946206480597665133276697494643070322498756763497961906628519749701700452003748186986988012151952743962538394750272966322221919898373202729934330766392438715569187638620587592746090803505227189270700651254882245737402408003355820751003210822296932540441726450546539856112339335937289070369189133612596366723490803772735139752944309634529439388403093293748470115525157071048224089157565103257809838380094452105473683909220553055184920471767939581201694586126864987485759227672352637040346746332871602846209555364014790513228164616154875423196188483208699441451174562972406161665131079652895365769026414944240037852862731982467580281436780796727765705598187994876139871507038998781342602176373656656643795609489829602795144478119507396323069136513463282425498554329866319446530767021965444701796725332352091198335645578019695313150824600323048882000536674964634710555417833882011458259316786920846252911914975884295517243646350821347678736803649823872793053369585008058463084921916430056711702036375543651273750242379936603558929844317703412145681628288034225505793979167240734381739219835085494890778676949502097982448242676064860252159282827807072848587537627988747491436160132990030345619925064908990316631139780111234591004590922531603715644433329502567155890858439546855391807766711920292119872973956125895400901356020067467205775416350156236002390441787710489053110288176142617718111656403735580007327217255293205968449946404067838897024177513603428198032140385562942180322942833911519113844466021635796360370344374910251137435028490952737897992395882780716068253856651815631536930160458548502865862887038061798018471678176598291315582783850430624743185502004254850555197838824989760864920487609796553008594280618377351828802472761914396398726651648268224850579951976068306093444694928390489315609124157829693400853027226640704334345403009203162350884882597779332678631816300037744040050641505308859061845205436516320175525603378429058833225721781091525274525880910225195792623735541761684180634830070676017604983739019956268041426813833043250260140303345230415444156371962790261171284120147143559485765997370102860651766020381816051455705466688326635374587192378981843575805368726949139438862245356213299217591268537285889546395029121345932759075031505653684383686707560876180207619007773788823771114825762880659628961470478214428139964247058785666109789633732564213027402973908519474022863129070746969031426783001117778980136409540091172642883470432588427843793300516612615746156644109640377987369153127057715476712505907524254751329054557511437553136077742992780958829011853474406628478239498703104434630199410358415316719063986782813851427238975055027954733382783196274459893811023633811367542520536637698886491966820542411725851916911174782433222504891864438444452582818540625692191137172976113431729167926314844957170701295912234375715904151069304222349749216340319278085335979909484652205257977446471636487968370472788506605869018179433021507644973636291772046239739226190870722307415447158103642951666376480421761685694847306854310867951973757229949601318389949663302671768683970687044420165954368424004780573610128152680076691453097059260795151788766148065225412114033420483674862669276997554042897010850435824514420679303497565435005118226354914478848698997658443017978563129708508822348764861332421727721458095070415472157368682971299572781111291623586133300873592982451063574386754785836312445677235223071345851824929890931037405382687767505284985569396096643284716903786689434587941062991491919217958146541771142648286925319132487978378001417502488706516134239089518577290139867094019177021019202285965017298793999949523699266448535260253217993302278366408399170428925354720275894135306888838853734206666481611074352212764351163187457073227365254428659873299304926079119694772825058354370391947220838637932679453083551067247248789411658663468601489927446134425614915451365004280334299352978297485743962518691519864256831633956843612450919605216984664841745168892180888674456922263174124011442619080262368394603461499225552002958309616847417987146020595003870409285177976915390308320305730092849362402999748895728522913908363517574737286193989241915701978903137385429406341661823958765414115869108888886475862813779329489186790964032484457921290848368063912347928877545662238890144065348213696802753076200158586540903849294094229627491893337198795421326811987462964500116291792891185053244267968200794990855625438613056276913027515464461898750682715457860541433348054692470031705717740606851376210080030921280838489471882298387127619400926200800915401063742105703439203843247547109260015505419186980516769333583534808508183637687754974646339984409924250790745099852819619026791832033582366148668893942664944545447427168694084629920183260812768665734437187300760953442247878290568142736695539598940346308010556949796075628789844726289008673018403928456522218211745585512976328038606933407598632994341157301043855259325412710056579422402135144115353761291545104403659407131872051640388443387233573274536333642335321862979367278817560582413638494909452530230190658584024658943917566078254182355805829443344829127795600456762792887898405631238668748063182218517822780397287432816409034215856904829647207079065861954971240396516368732492895782532988229925252963727097788672784108758562792706632855552170386094965620492964398866732446549473713205900393350244300248051134148291616540612343962622632780478063474973915751917691509061932493159831652421757541795967325182981898333500592308885113603610753661672000157910572303301752879859159584271130371734578077448024508652841938275847322617179806293429173494133823543015981242464265725329783103101869493007571834981133065175695895498178049954147517922042439411108552124167651006431013033780660614840163767214229838019804090947398680279044549958915698743010767423849499570211908447338360908339143840916597917544629146622764877949069681591369862864060356453979119297677507721083164866992425848384209630416913431266080992664248625996223607166665450451263835815123348511953481667815514144634310689404608509089285982950942582892323852293160625353772373987447135364159341432259587344534911150256319986919982173362471567390356135029651808007380563550986451930446040425805779268091394929559722091640377084671835288353948692131582148126686180286889947140096969473498666456725567159489661416773366187155971127973222643862881498825420115168196130044949976890435208602003647228000132867476114944769677541593794212685048423963336571812435749248904782267868951811602555085984643016568405365942976923537402896933737081636422368724527739325703837780726301421295217573540431207973517390406080754576526214828705024150604928530581439137206931900584404048937294466451650943815197793238002831792657591549268090545328421441757916998846778459252039976871316104275589089029087300660163455105533006316450486924955778016089613088251023401251286148247967576151512843242451125396700810674987477270611373183697690443950867286896345040950086684385241593561073552231608682572958204164663663199152033085341202256525447103266739452445234832004247857617254569815514389021068096366537402514767186168288282468113732745071308753538726691826958452634876002828877030865171211401893317433833374176993499554569482134511215744681942971467769647041809397245893427711959204568616362710666688132023357932091167637762875514396107555351768891464289613455352841609453014837831461993746900309493686661742347142361891883106214339902473259068130487704206666091559512349283212621553404079636621482595667259526679863090985818876931641095408284003800353388419933130669989996871349707045777935167675825591012961189967986330109122527891471775064305118546742730737907022873798387815449850267592288376175377986302564604527235466298417759077511071377801182075757122225145244801900991713077690503396487568810744099021683087070511265058467233365964394371894542695097733817104905343552708840724612540634440835545321091201984753505327388178019794787394338083888172721824495615700750126760559039717986727012386000446833066450767839151907356722336859942231030789488543948717758802867396709258569719741799437564662206501437164517562175048037956326479248367738166345010962436850963660653783186052396723638656768497107959823999830517939589796245334068915249792786116768569858342906756431737260662539689878635064623282385923971562557227707618968454236948014623033242329437801009073707423695858661242840585669344976539035340969187073325978593773824213404205094093428287611941021561256000766464630717242293618009667999348117885407039258706657316694366053624569260172197021642153783320690533577889400999475236167158489735801116205077111841055320314330477551177752701908086222071467795974721324096845892243718162988407949638996354042451728316675328829215294381968575651897272316914580994311070510581439043789469719814177576120442661898528267481747701415246700721903025915656450998523125421649657755485603023706169431918292357133938830943647556100689830366103617234996895922508142913391834422622822567906136586075758919861821323891372636998421972235377249725679738772848048307190061401451426361029746970545390816943223196076441450184277556130585103579395973573272356874708876303105794321079051619297630804690402535339529166548422322614763767295605546370308894868209558817841889595323043539764110126695984485651797546644476918544530461983223990094256448990134909857041039301275865505910177174659558173001595718163839256291400717570998758494365394926759505860552120232671169725607235259565088408889740599741788455176541225824850086989612936073058297276887587320233388133637334450211428105333341371771082258689060403797868821856654787311662095746923528444361893736197767824159448583966190126821396741964338949513773275254205289683092908925629258315403323892971058591353681808578834353673122754485992294153761750572055948069984015541185932522313354151272465830780078410462937066301825873430869785222507682151950400910535011035294279429038299427587937898946993829003776364873852109053463794096520949131658510173700990807579428156624009010031882366049893430940944674507770250563968281677381275067651512550335927567735858062560551366977161626342530705054415799375397489223981362474581253186409555308616383159588068530298514365810178920145524296931366543790229665237331587348497523159754212848013977197708432176584964237369214487879598231389037912613750467503184657192617884634374385614583663188554772505079302359282609360800213283564430360130028657710885787682925579700122252004521754628378831815470668181811105891590158390836246371764790108594923132480396108636432970766129427783919171363229781483573443063930975210150417953500825010397455698399166470350959801867619853281745491337733778162592468579136784886493867945585345781329090021050802739625526869412629614114325863559414063459433353629645854943630653159629279488142628766200402595510771290109485294984203123636683844629104374986817734549403140822088033467058973618414314185195996220205799799451066091325073805477242713094400559184056907339072390966823017801697915235085960171664873777596867919016024641007822409045880547570722351723810733739333756963599734658203876607984067233873622390481827091740934226625008993981250902091056439891722661419192133413917351985318762801047223405449048440686470149350994721511876917430029040339144359357474441243685843326307976839658984719019354379261643230042679733197612587644279442243723924714338421743630469976326000518968205792709568023288639316298621726906047459483626031767735071948593964660212080401019769249106951002678742617167115929833781039141621485115917841928292853206238047381597440576380977256851927673379558004033720842810909269100095997090370864723848875570543891664957100262740115680534298869696195901208083812661449806856857522684197703591373629363054770543552795778507975750003873738632498159158497662715341933358677017041462613417807202717395257395128742692583609092940515650164907026242000905628267721203494310018027420107111287624766988749488851511435532274662523328604998216728183768858843368999376222144162365336150207895673705663992830396519618205223136883274106274954321733727435418393790130200805751179018306727650707803073210445186555929715703945549774648026648286178532350219491587275160331165126879726417011282869503551505912465712923160168705958673379433922133723544882460995153190755156768184740412908716523477767306673584472406856782300107105033696417975404747939439133397159784691160467223716795675429824910461464968608175784474056622776797387841449440615438535830137752545502609594284759859739869712525675752180056339184137251024050024430160603489188431232904057915827818316551215922981721633904860984194021963532882922630550697486046537888355958809056738459251819403758278331590248320738561159444458407599463511039828499264932775316183961573880573029984093580614871234630283931016415331163939829159133374481471266537410786049650965866313944930439383232752305316983328318063669035491028530757249877057871730751712920639089188403233030918076795023035632900139614468261987254968710493256518310580703846513236907815096116858608826626260491634255632099257520485929759000064721693891515058354985584722825128803268419420566512253524480021355499644285156988900541995691957203658379243345929150185726224976830131873808506993141151678199465517899428829965006473212980188980018435290132685254451604612558191774931327618034825626502180756094172539998153605141141085504224045419133912820793082029189810172676560964229471510379304067054944596621627547317321901745962532805495126118138306111734552959872618028463095891846186624416975394259569421889299989033102860168450472773344382571483663228428657793841467847675356680238167803937837522666497224520916621656096699833580953887947450015579255642155917417974117486961620565427163077557564145430029566894989720882063598148371189155187157710591418193873007212007909364850878561042243972167809563385521395075851067999111803994376307795386777058833321569630573627285291986828860704348425648035450895476382942963091389990814713203976547868558503159372985511267724537452802542769911803247101777187026524528014184058531790308347530802859442668270072533520013129163389299828799433127257835341778575044177826807807291064681214102169501283118008716850314561309400183832719498617646362691455505789850491168558915818897154952728896678651483773287802695358587271987941194979755383916860755279846008549815082157861812795207415612055494435774434779848631419321719115247467293650800992877266125405067764230502808100655035633674131321868528564016400648688868968625188033396916247289998818051532401337495773219782685493154526994239796204523884454424885895169826817853953363717736932829719678951606705290053361843238350837671662411082720842490923487786661646980841600611615994189501521339602697619060391494242010203574018155587018662333615958354280813516787279255308236423429270739824241270894127855669808600688915266708015536809487125434911430503508361530263199808638303135931447117532220252015298061867829888975022858451107547051488718558925400301042332574495147580821494514652067600625279080204767272515343948716980517034337408956148832572139986020132124626511351423275287987712298773351951881079945348954195004971819566223343744114437844309249374233511537685485149427964653704095402939676674049533911741343176867762885770305951021385072183140867792242706232053004316704783865931772889216498160584236121523044373756364656714225298841127484086993592741844351648383394782867185859621853088571585227506392282225020351081477025192661383309833382577458219158823699245107903996395671242550745786998700963921687114173325994394658405965220886054339619555792545755623379866108382749142972848994051362316837704662724321695199828333636507575253313006821576290025103174836902762449402183171584543139615709307525499671590857690011395974954648240043004109495193912668291152713351816618938611982408517395400040995949384842587113769411941878826393154771914956946238434483212073674675273120837170645585692532131820609871295065542274531830292836483969375921787304054286650454141373034405919091526177841732530254797953076471348766836832327134217951757381484377781611821137836915488436149541804738735981022854975718426809560827595515191398032969322069179351438140347017080083696945501080035469065467176753007837000148950040860844773211933940493424426924007615292915487411244416930283360501073080806115869363468488084462515548745110586451667558471558973105833627988029918299656553050112506128415955693027136679693459577590095144083125326698386282308899056929310651530299812015212365929060900153764826432427853413462524771613412104246722060245211178381310342329676494676786221162196341031491324805188759253919190553529709370709361166878394682031428452074544234523381284322524149380611372485312827565698566284472826320348582333003911617300513675828886107645187748152594463365529837600584527778603660725027294503865641429884458516793492273785079627173408257950801291060969783968691075608117177939763895042530887814231003833264346256828165120678682073914311248148300915711403871767363031248617179866604133997115569658422785097412924615709459725374916682907234407100743668596007018312348708568884666610121854731397838562758129221809815166923759370388410149180006538606320787817703582131592574309565803286768197956908766240728604734682236569923507122704139789324291054242575653637007679645337143127038582291670047448443478887791415887685076447144968491754471475888429225777009362959836471460148656778071172759113778226706489755647805247315699678494852323630758468199920745068148616657593707294121425479331758299647327961988444275118231676038825226691846868630492456153464223674543116214255277611394215862269238218424877609279546313963274664565645780210691543382041613041201980605734914315686080783234128083276260609528032764354506190864289617873190659677740383737853951656939815888527388177993706057806983230671891682064878617461178224452453684569323160824064710396142237916789602068161683582327863300117341199926558370556875816930476259022936793646315110799118498390206885474553774225988301792914033019813540608463886027798087167588051835051147542543769556079916276337905833432502631452243523416028112513118415652593745681541992399483024254259162135080973877852166071439469070602218991626859457832208233642068870689743082495342479053118743623922259583472213483757973228079565330718860463496240817877492189161235258375765248289715952628696956820507855332567662297785949157315439630846845594919164992945475956110845405233923215781695914028890557744813961725028309524093311060785148994948841888719681760495973664374582097304489933069848403484812252782737004332147579435180677714982296222745856944650443015229355147859286640812843383233193195982444364344121185388346876958607049855638264092035949600776642358351090283996771314716021039497158227460108352703261689885313130960897763802093445787940588154285440355517934958237697841183489739953832483114720110806469060277485090641118456788955726838377429869254405817254489580495634171386020273454380826599739962019246016137508765210461687740251088328738086157066126101159785031660740071476750809759979931620013581025129823478666745950154816992762389546483135527825283909899105593530707661583295491522237909472348308228640844961992148553550703893921147004360961836474543570491183707616366960194420888242961819127627528976653226957484878403351557508177737688319336786356789985881230976981805149863976634530844059787277804110777247542628789245750454479530876285394613024801415546160099475248810497638144359361786516558783849675702222615975677371008698568192582522078375491587844760747622347975716824559655187215495140106394480336650302079571308295736113921642849443865863322277022772670459070474996336500203390143009245052534983194708327060246771832076656790965226745991777225754502342820515095542164740929722592028118994815245781390104101708121882560942766827985627287766993427133662136663681039397185108842686985111272389305477340123865610305443515246416225762248889659662912707447216703888939624501810938758238895406331717962471986138584051330360400014429048258900407272839615948575881358007117123049546591960672715588836689224635597239262993209724106693689970988235103867298337013232176525661337746343881978773699587964945186560832192580351289969738548869030238428939942617812076679962983095202519448334132530227844659945866379763265990419065525228714708371804317974965647674176572278921404272104595131352440287845333330179920119339223133111510935171476416569597190193976029993543180337589816785999012954226001455159534802657337053557070897512894044640412500737185911118373642738764206372885287163101271953815997929766083746036596045735582945929025004935600442421375762260919058433512601212486128513372969901514652013421259253938276082458121794027406784747421322027551749185565258087418213399690043559113006191118033397555986429525136502040621001848521562890817851723304658470155733458818680662536245004661831698380559176789573766591588874705095380004113046788458517056522306224886650210892008367072224895532888070335928049748169198484762489036213492327833349426354977256576488716057934976691857215112150143618669110186919997753844446318478357294271440378175502320699523527640146817417175770637390601363938344359949047407570471492746682407694003503409091073766491280271017488772591868266541829624854784342286763764483457221072102098867224643671559230795980291289123206360007543572662267830245171806587235107087768909952489430234097136515374904103375782333555789456820852739218021474579111904863262766227871931135101763348243756592776020507732197739106386012602316660024563116313923459811062421482974305672757836734084109238205346902584553480124786591244526364410925063708726368263842994901113327146068532955271194487398455135726685544735513249747473817292022580269381597817152960689303560131092864054355314534902605669021869174566297012090680952953947198825396540258873272874477990511328601095414599260878332249459797751487100400696883508941765347845749090311171094802544795834199054100759408483704305576874350685953716415551830157054886886645857012969837195049583781974578643131494489516718858423642461792461330732449533181429391331305003511789466408351346405567634314371431527532569777118622271018356350930432847003527891628632084234773506861381481415210843289403608842199482953251123027278765966328831142465445124499256035162117569010211817319025632376116082048601294233925873585590266253866770921536112184405962860513322244850125455651421622575055429726898098195324912079442945967702329144472148604902789730434779292945127302213954163239604825091538119727438658465525223714611099775669401294323523278564002648471044173777598426694099326646667585580804259150706776444187166388395083515200208471325627492720814861157082772657865332201410369469413071245261793408039750534788689908568129160365472156954442886773383987326393068114212379813656608422481241192722210962562529353846538189213797578707199525174847665970476259373093446617282907871775747639249774408225751832753249861884157978839571279810931286068807456064095310556976402811732033205875169488558298921987801634764603283283138269446102802222832954586247455095474351058025200874521641296393467348573285412320034359474635461845995752599608936139503679043907639086407978252304901536333261283984538095778791085325030874141723519016568479597642391527827136180100833302727393495794664761251993280834868509262167828309822641963104654226897108502481228222124006871933985873843391491450345502921466394753896291349045137391156812613483294387999441452899493356512014327151817476774829933971801133253610736073763439382072319319201736755821024354270455942421753189537727831504050818209458919155373615194275374645522019960283736441261407461829205355196155817774626664633009377452483848877065290488179775185010069384559985250263685411186101406920619295125361307368542976397210779399754919443039336730043408472522570728974011803630058147948742462482921181889028939891844817639734170441832112361150655569638737158264940869768058216119764802244239070561519823098633820343876283061874300739168107612749345069605837470513126887458897047093641857966139174580747635963516946457770259345391743271560309815174174139322760032601414944062546751917507609985751803471840181321034272622563604961065110434686169873785322374146998284227541753461731423588634657638101344439941241604134478499839206417280261004642843408079780181142082904413037030545056272007647664157351641100473220538267971506044990041767694381102059447668082025874321804949929109654048341119338778434283507450953429632619707968924213744155965666496837764050433326963411908621669359355539713332098672743991550799451382245898791509576847687929484245118345058440200399475649230395690630416055152562884750219949338996232475132133096259376111682723300545990670557716422328085639303016986293557126955896269242283885868737656936399493810306029860802622189453544201337801218836947143487993578931026449519315192555918011819089653502530715823267445739443682688153088163804755871556158231677019017705194842729615196065124524391158460223816014397780959454992802056335039322438562097864601638559823614707984448745519588496462328113038369114853721130596596619473228979051368792692036159050983504932091585532031044032996936555199690188257474976625649474633558901994122806085513206545305282812012205750953939066968433871956249363639561944072963177648693511384872484111110418299099286839839866984933016195856404100543015289357227204435009091453188728155789649528750932246712693312333445425728729019505489320719302145880797839290127628145639050775375076321293085085396739312975869121185556828846017494297402130423334951961054190636418364547322955294016680585457597634021910911542186215149536649512811640208292711281366828022851125661909532138913619117670871221448070552402248042487826399055972800679195098521972981412889080230730990440171851063664678143373733939912293658354337898463560925849107152336840586564084308585257169184729180343475091782826976246293510699580377949041737063060943764552317366871676832102477003100969786568854880152833790111598330104944170111063275134198024739817689734198683776091713209751127937112438787621294357749846012436623138198469698439098444119491129465219009165518942320474704598328273016255368778153125870350445757905218256749494869575666270447661550533649710395111460298761856704044997537263798384172333231964278585171535470002844374769315295068276883696292995262168152275522934609797144183606967868329385724577122546495184650248290891042403784508244212429240841994211536374508669698470109691434899030853299496581531085533337812417905890248081762091439453004046301749034740601502604207641360485878040914474400814313100462607780450229211370755705796123475500490456832947461822860590003924949468763280817815071477890597305063992343193986080865167266188047140169775658059789517080691322032252788103291719310278472122829547111947088536480187941339311337434967404249426711946534680709173814330253776572075668390148839987558781604214026023138726954784962355891298870574745464621024706014016058428875438958697404377617219937177620941070361097478638368175260315360089670434656433963306780040107302496067043381236658567982441596654946116721722115057758043793383626040964909754563776564244713330442243499611000059693943567916575470301747557885767560737489270721725180905794401725160671381351128478149663706355774120605954023100586590963796150490132478073151279526114370887057572152666236129984224736473645948166488012736347649620421495869316265062024577451030090083612706528796574506001299475225704745702597555286477428700940199280661258862950623775982075242352390324961587613257823237820113517367794866368456543003561344507966964589588952701515606870176191172062918105130287521985646802043580991516294873239007259856978679515072404208271453715862809351632846580380898459519689027245256758709276976114573045385837132750550386899721345928963071125787817207233600334896949230916486447936691281068647792585254029192118982306921666907986947397066079844548793976827466982210723513539310721425466604717610721535441350137228381675656482834981664033690685338833845589405732812397728509405508503524405989946670501519992586750995791763871198087255971953503870090133535231226991569104258569677512386232608821689567331390180676433502037003445338745474277293710557219437685844942181466894328934237645253944737778542729891145617664024348917787142391194037346316291866100728519437643630389640657648929081516168692004350565705655528976426550112447803980850686773938238523057572693596388094738227593733177727002528962660498999459815091250378915712712325664865136690277683478161438305144122113914344584708415204386679774839386425355846407998511063768757636118636008851451861595413288831844186114158353534262919035425515058458993332930043710899610385383947402085393953486796774438031115080898499017190731705224756028509307284948184172932747781241162809747514755591336386090403890207135230627729630536545994750770131341343838857873643534114578272164564543788996062450536961687714349548177572275407387875677161712698338608696492960450003407943403160858205488804247910253841333004380414326836433238197300014073545910443464711904856880957607759898669441360943907320347286641261801348606820127041147616881698709936215687003748780876920209494289984768944899647730939658748887272126093698540758733720318903504701536675559129740056969556642275481256836436069383462608493359003066639446011665287430323873155793971686648071492059456425667498975238006223956335293795789813047692841713301092792009735582549778657715168022074042567024767169926379508669184095309721408383646574813000628087998132540037010275251448329511060600246297867091221999218703384226632665759714828182806645521774480970840897083773764334914994092027378195684062364193438599643845768644997170445085699226608010612810926118328789597148752139704986853283054962179007468929021072095885613227112544919168319699384020055689421457976576415131289860083265004515658194425908301921267876786077780780850817699028765721488816592812126843333671825095097530849266493932799932109814810843222411637402418153939605157758608357036294127075299708290812028908820058056922041840361592439525521815920839125183157567688768212584306267837717485522561657572457028482185369551541646070774559316796950290632050358715332198625935705319956490638033084336320643390516739085119822102512358477858781673272516433442025106601586315294905591048079577803408297046125426259393565342561326622797680643433606577682219417140170082421950175626807407697916469264667072131105680193816644297502379091559282189299022150689552624134570347083987289752731018025921011308029700266487851352751037652891442892747681441366561715652231554607116456397232156330741984970929389269908209131259345434590360016315549308064752298707861577599616705091135830155529977551651195073166391933163026185768340638407764216211451898494287863505303308968128068534895504256859055662231355134650077804280834060169613200849953507090227954412939769554004831846892069089152020198129523732665741442538006535076755169852372254259730763397990598284130258923179367826875174388015720361823941694128214488766395670707261891117263952315872182385574794361468131809128214715151930166686948731203575889770784835722843619104728003890507453944550472245878115183101653703984561616049216510567140271631140801155529699806266907762369248140098473891812110637108528556780814804721729390542957736120959795328526737597078821774443549773307397808298391297806032004667274781748179253209424057187558626030362915285365114099335484066766670559666372497213724516666010973047584112599040692008489212039863746572290482482768337072154570018750472073003885084028654704957931927561601074766462881860973814569202178100246865851918040539371858520455351714656752311761298399999308261063350644914526692160449629030655323761481782960142511339084755011863106433340297784101545180155569201209338637334146399300335557758822971129148207829975336528095357004966536562612782382657760329402659194609596532514890330878470153177444504190476607179244171721253175700964160606022284664989030380367146104620866010389510389309937051110150382246953940213344755448464565786206272022392756248713007796697328155488865653418909635213739752152828746410626153638438523864364608997885372018564214354931040700288089013478040830064456388266196355633856226339284307936034005292759354406337304040092234568109817487611217184844369873822326496286064950523256311531135364080078486708285428085328989100999395562255280195021300027857890105404800383924843135551710222141113533583966795201241786740819968369964401361535828590233503269660677356097403733318386185802073322389967600317538597187592836329462254584554023507230303676962524093211751400695162989177164806522415516811698640149635384802216504510172066923533542322809123430163167997862245627314033797150383870686360008043756807588324428460463977341423512686685754084486350471295735337055243559870884548221525307485478661170276404408974814600023935863670309607019107039970622941703785544730776549816917902340729723264083962418938030732814574429056581245647573388542072710092872835663564155563261231558725053661722654679015718204332558426477513367492309753690368453985424801879841899127802337396140368793182597095153005916987861171114056423220495807529519454943160191119513700193082594309083990624931376469005168859213675662247917146999683095889316254819368501745741675173210489953376453515276709867288932681387718065344008603024543744933094199207866457561571855255468203994341816187200105010223899570572660876588986029138246809236974659836815267829170608426178111415743875128983640200203805683097615717261822947729303079732924616147815137346023203112036844401296364929121024550284721303886065064721031755551949300097626097050395963536288531938756776258020187695308323800266751606311573919900667131329284106003838829304201037006988372547118481291390626144877757093723702135134126486140859745118405309821924032602855400152552884477287454164208678123299878209702351907519263084990742382730568014852861286859973813458843087660949407492692120844775361245335799491120103942629260340293067579392993615665507313106050116308017233937028309943753704160939917042087141172769642738375853680839732126909289332741277444247706477236788945901221556449598153787345442771868615899714015489754145705750464516920886145899343560728207370502301089708964742715496322456920044248739321866286069024182134010904779765404737934719791357009129606547571460575181162039609272654837719609577387296176911348999179650697216428596602909244041712985451871065405709951396117597944191919299639270106413848756868468186757335466740508491133285804846276840986302424212874951606013482687403071076275071969856134310426778699689866238230862557149956805210715981426571780616870398729204307368393199655025763949111217461596115046345412715889631958644848464395275574678776409182256742134233377173644752881239596140784320311443740876274581187525347829303395452099584686647098178513438690830230818903688534770715556386363674689479462399344565580050776444358146486397791146599294209923805392592399847543537643563823752999553800028549874818000130603855105589109185334527791271951268459941857823676704736428795916674854927494960093798057321396908176832865025571069508072702031922836875247928264391403182996239811911816745181743103480324261319741693714052629015568575762056299064821997704710690054186493955139891900892802687239010362230679131580453947082021022708279942848890154037527654337709609624882337814249089415774839126834920251976513957266775825289992416879927372367671528721448239388029301641587044954926546479031028007543291119011006089304638455706075725701293204088905086321724545877158161289843021994656743186924709770061514544990601562117741917873093142966372953397588670527063425380713682241677867470949257226942820772186773114945514270395219933670732103213544610830975733126429712035237629864498026590754386383254873369144464759703971555931449927627247540395883641555057886614318359972446008158275012309196717154909108184032367527284384936306507353239122760250744150978863475158695609398554840495225039622607598063698083724125320426608988880289706743435682660019829596406191683722964863839225410679204223972260655467262065330477500349369669420683070179978868858532512698458626938564661345902033653659538846673878490936274589112852838169961536971323306049092446384062637422329321094267057596345077469869378782707556787159084781349288933633278995254660917992667367129632097993684217514233849417874123428824929758347000676866802863523147753904628320875988868377473762136290417259961940794116531335965456164769001130623618329102588061172278789893001604362511259265529194391573425071017704322982090644937214709214712520370817887800399128296025362015064327999783035687139034288926576745582478018379157617241900913693049345961893842686743975910448353908573163450960331013404149490776264954176206397171441756875272745040380882714172140857447971594214925870460437286592855964401468776831862017046131203453485587047741729415615998819359252642294670081374555262102478915741493735963261523377748147811818049451488016731874732672495883502604028651987536474748457155480069749602725973317365708705080314897869556903989847816494725755579353292523804097475084378406402787564467558344741543470955899526779442450193830565174744551985806309878332200486340372616614524075939603718334929464776399545208781120772658968923259822485849803621040917357554634165007241889865108081275486217965458523818223139616622681185646741393153413105519553723538535430590416824380561054086320404341588362582272760615119675988606610419172401581155672159927830318524579624936192771119962816971320266423198755575073522055013903824827601491517142456321748609898030301082454219938778317940573528386667884622392331481356700575700411936684047294838868919247651416264509231714397495525482084824488731048968999398788887700442063598350586807339900453560763591576186241378893375111017558962902655410196658439838446635423056642873951467360194222641623024144739204009099190397875996626749105698661769938975153440416947261657597979857637496761510691722193585400477255564205764621298984174985363889312276956212709290261111666566856778340822196846762759957274705839125302124127861040078357127216762646421375543207282563378736638720667880009178692155329958575821829785199787253683157790185615093204640349435377787365090328907762644492701817284200200240147506838742136813683424113866685652042997312564618819763188833238047718057326440369996502647552967578571689434598213430426769675587396796932285036030312952286041445955998239490655442470292511240906118485753538165623682864713231669751131725466529882511775502048634622678025420534976275361102802919228420896151343167505917464895843049152232999409565978450420836741205559827360557596615712509484240124251863829761138527671882585295593727923613292095294770844322618246903541097464897643431776802096174133801954157718758141182571014042057018954855357122823723407131981825501464245909038973294588369206580831539456287756050737548748739923467162641778036888272741247414809941170733408945412257576710321043834101121824964660350835714958571687961126038657308988174966334420251918250169071061789642196009933356823502205801617526128740383865340687449822305455737719241225784651337229842291903384042099443165659181414830215479225017026703131668155059765671599319095113600822197482753436180915615512468637162180053980374943839511716511254723426827033091975614671097011470084013378724267438703264090656208821062443344930952505193604702950424126233100828147285593048347395439545448447444543338889607372503515365874793918835722055938745257938416079255026306582598084749697139258700931165991741234660706614086300152423573025243195147199538780019295217610679277469793673252037655684480619578789342018180204172770730403482683983015521989099209584877253354708060314454098991471606820331285134228090525892228810096990843156633445956370490212414495955769421745423628495915677198948539467989663961911081902833438909406996166527270359925389799368038396295082008691306991053768291608161307643279154452429966033061848637013400271793195151070270929459661648041869628715792880484943667552650138729682752276091136162308927096972495676244760819786962369138603238694550129190207630908704350674082617713761898068560714983506944126336683101351753628756666118627739679932164621179030069718648613810437114006098944565001418732256581053294164391458950472672570596640215890654308824894321948004583604657800370193956063907884300598902563341778254600428257575658024624930076764873234470048371000790746016756313715276010080828153775741473394116059621386475411360208275407926009343956810701606749148613500820038047581542279492154053909715151467458975192794936906202921171676286811701089618766006357043476091527104336562298622157250055009768562396256807522981040104374853382838044029522480459951534111892240323635353650562257977755094794551429722554291737280977882184027603911984833010712995218377505735150133101096980386333622886237576212188483670012593829969800346591608858363706041811135493276206740899291451723683390283676244251409266049952747868443703885570984642364359590113455761990450046771451749108546968262811551554832193733717296566977970023836990799157573408795337353700618209070001156002439123947424886070753107880158093653506804890673730971957834656168331767790242544438013516195340232792446670675900234093742198742061175637844067517707399103346049159736220277465433996081719146357976512312722498139107025285047359404137854213885483810028101583588322817080487434691658905556857297386753033286538806967228317073956592780487083169225109238344956284964967471601710061753672403014532393819893688762418082513041916274877107692813320238761124133099063492266710325629916461334100928420635272563046341931824222174062935423053537555600199771061269461084257875753160848905990722230190737830157363738532797046079511749445881882825463525350594684284794781987665459590125835509657788477794832679028774562107882871158409913635420087593875635610999601038734369233602775650495653940605695987583360351586531648938140486034781829665591879295851384189218350288898062077897810894336665739424106772628935398648461202191272063030731276929015195028855338240057349861529110055004937884336587361548951788688832070986191610974300949075030783109137589916147475025667996590811398746713081495685141587576977175747834234194927111796747061223741237932797560612493996932564693558484215471204504487190982502448516583486810586703820068691505398365297825648498676725943431821396825175435685706760480858043062548024551792055956748049437894321799530017890440402339446246206042800149111500385496561613666747431256710886238587582384958464953706776633034966619560744222217425802840293470518130450281003621925722723812224641846446804307703859755330515885008489621437224513946237609514058542024796314249467411427368910664187270456900625589939613395484650555143530392561552266474600860127495290739470423033158743497763391167464150901352002813061745317597292391404472155264915718580677188900023908910265402113587921000620331952231845913275996319429970348505075977259869461677466383763495772612793845518250429919044598586299501523514054325643992805703169628227148281403069641158564497675196182715493168588995176845743722001834379678475192481197520606649063321971088275351182959569871151898136145829739693075130148631377058693460741496536875756473380749439652150532347717960806230450986750806864168569962236011697013704799622418867509129224015759695680899877062597327582310112757412431170392460218359788678766495287871263957629205892542419917010026099696532476269106327181895693479433553214198895721594997218427441671836920756547731406070914177806545932792652664789424251815980493233240846954496218473621536031156113373965591969333058662941845645789160293130875078053460280194901829606688031551440981118783414589795093116377614582564119055812105423562802518033623863514918045857220752526843075860436787792379095289545489989975447074087941106949785823403843299190083896451686520152779571109307093608022071838047060997133786161727264915626194786399579205267618853797473222103715347301181771017523043726209252505349440451020639811959717061457158603716862138991756493582775139869859568344324366667881844645591292592568922950876313074223792048865047779923364650035237432236382797503025509380076258159384403526564444242239485243512202898393837446748065548116458583906955288324833294962043430347807777634687108034641878783635989023713630485107255124577449922483918160087366291952008692504252682453349430130310956250564280100097006001509599651504629041720961118137415426892912746761410505630044915753494623670690096968437657469079506072884472412000035231172710805808372374244337468615365886633284443703951790975721880803152582835990340214544142095251871501775115812307030267412047154028873606517191524085484746815295114527131490836718472102391183790706801259124145196129309944781947039748485205261179638357575380227262729643205499791985468617891265574835754207686729822287611394616967433704978074326779784417951781048693993290409290141352893005975729856979611051481074697337352395982698279104915976142005426369589545652983278358727076940719533535098390051443058233009913456530517673868800665371021838808353040791679560613277614502153002795968236194200653785976163598305812838917312457175868447503717863377946870024439162885375981484146227602810518089411459116034520717998288740558416643615759755435854830682172555229032654427733558093271052283575610973488070939928315387709814106876061600381827870425410117846066795751204229233241952218446805061746851961116517076230571120028499156520407685423564011430758419647481782655414008155185285062476980967098075233580608016039392059427491340865705401771040495111520093838290544593010189777002034703244533569221128920640020584395774677701363426482973354282320668617497665707918109530209405648870339180674440054661397598251740428928374676589476303623854838056456120091855837313517213206124432302980442668375139358725201524574226821393482083796604544251215758931354985600925409688616919039307790131008401349677143154831058059225777835131722849708464352729261657225146729962303788994928200712741032594296806611756018183393250182958746008510381160312346156510775156145199376491252337140945076436080566134411089992997595454966820771542240109124630880808183403606631436865617843067413310297339345192405365468742545142319504648283591804611101027676394067555975316743463537603308878259592375942346323544372611175032729407273706042341327807016426460594521242606783334833525582962618151539063471225988681532627850657959868147988906825170530974244156176955914900657944701425861275915010570335174986984279166462664885142732999729467628436151989220066712118672072256258000937733944750578490669644002173729386371893049516673807787708275237729574843988559615916843850003584755239629470443398031141484468337522320298583952878243777284444778858967946536931531334228765000369097506470008327664815490022298021740249114693701573604304579179723277112549021831330426262501829828427264101802760736606001316441463077167873093696213494619280981652691147993052247722562254527508915341282367717751659702430333535971118279944081452242316667150751650685840833988320749645227117399111883462207120864819716435381093963786400038916235454415401560804268824190597541281341321521656123140022072063185358417236284525983871353359880095614270308725998351457368502731659111986941076687135797761285829428778327067463684829029271473685557994976141816039140802511824687164268978468778528698997385844839114861449630498714387793912146707628768261741770012610225945860620569401359841317836257192206287281413872692236022629175501205764163385218140969512784987859614023137580376086186141721641687509253150118766459489309914802386155082274642610251375853374378106386756030091038116195892090422773142344195123672933998769495144233158757887433944721727913211831806362742019577770285985348427041133492083610764817360441339019883282186763768336888431055723613302842634280321041578884207092239976127396762887475261762959268926187148536076327198370404485242855378963350920028822022182943249959133402839413045855658874166988911255542337916969560364182041962055496962545446139370810056979456926166292416240115889023981641925000133954064636665398632602373421775631224550745029534294287795005490096991320437687678405691662814996833691406511980288200879044369431803259924306407299536384057699809853642101843559122400045053437664505535929891513621315684125859612704626963579031682441376007823422309012359137399960139462560608469126464641261170778483484851935395002878510808578702367647076843850362018716722052204884054045993729536199967881407065911872047742158573300223282823192413789079610758463994951003834513767202808057704171435940199501873955137501913055170623390016950601556757853490516830702847082212701385588655140157096572186603927199363665087429022327313181662090538557441325973414493451752365279807451678401243610141896528256767161819248673115100266160311490647981386413738161798512214509960283907714973500755022211146082536185387984588728612068431578558100073062455842320006414050710141780928374924017620880735764527706325542340555252607041913846124874307230634001532028962375129028106765621245421910120720911342371155786256295891363877718900666056391931162079507238975830947159940396260148659379340821516700724397169632086075907771458448704000743948452975177441535631880583827798737426899909612131570219818723734231593016039668097231695850916140047724972974017252772375252214414567718632181903931389258295474747538696984095077767156346922515025859462085966667534200936059715585045957806613083627408484294830002606831757186014244459998053075317790056132616755856495789293972384088320450924428415714412580374505661603380349159017401091928508808632459258071585765895701588094315398431790425399373470379676043483648074789554775096175132762288465915999575378757543218372462456361928230827752185687231580347412520316394657584368909002851061905548468416382858442682295919635365591253221328729990809830679981234524713665457150737576662350788689280943783022311099480755858173542279588473529521876674628936990834614853697664065124525184372762734565222230771554251172138622483628198932470036317893738695172322485972729868491954774831949351536841263289242255086117593040989304645108148922722503202298978377742149467894132553596942268140928251716518549992305482453926151677185778739425673341784013889898686642190265005004234590288247361913234069755186424354015441142320464438686798052885643737958022097893276204318361837857144060305610610967452101481595829066195095002015849991614001228564266824543128593700425411189290452003787756652225517205478072318101842777228050845973411238221137584757732466034405433366159234312152162248872772346034575982137052073405403488287341028734844352533357322310847708869062611591183021814643035793992496625615723604494179213818117951642495403669622113899724858809961170736674511387016564972530109656760724566380686368001128136611512474298232163320681306480153277562714187785585614765685101637824319639882469250339279923767993757685037551167869171437635030956260251318434377600316770920130569894232115052543078878966589583295589131375183583218375761142179749029420445294180489882917904184284120315648821706251411508904338659956575156115032934476374485323361422663039585912792656036256077586776145489006140672236771432806967883386478072139329836064910609301765698034746131269855554925936953227193442138307448648220771031080059060889544851885218297556604850003813470930357679940380751767269317188434473393301946906596716882386399956925935200703337927621632261706001852556804018287614234201034368051720970580826674402663849110839661496497492395700597131326891532791630420331557100395387132149594324040859525509240813675418400243264850441590541114264356949073553624906491577657773417559156161414198251874393338823052516808759063256464829071819466367320377772020330071754915161529137688652293977154472394967451777089237883799306085853455018780777785811985534076296483492087605787755375674327994951841898265926539545280317815831991995007580851860868932417928655470420812205199242970816374578323701527696343820677472951976533237584876979155125217491229759551467680740314545804475485085054781409626340327404471814779717934069304880603260244399247635054386345669758378388865759247889534540043056184732604186347118496151501864059773401256751736924771959852808604822401300900922043368974046694569954919922294912421308678852697515959476787032664583771784085929356724952426188700958871139856001372178928946662302328656178608275280743533032571108996148170160009715547993372196512804798872030214531956830621606897916704293361325842829319004923736148428017706882423520837450358413972387224667731904495209243802838634265513630484493445896330626681573039513741095836273059532405783831929742590699155622775117045232152534844389780215558917471368790225275853951902335102274756960308713040470454495185059142129489669553186041279653554832137794704853939801193366102883626626904276971653940459437832629391781507511226022666815207614780331643353287781445658754101702073039263563801622274403338384278491939134479729948166245138531946691493483703261232894967460451825557799903334419914856966453306727907746251789821506376085919119172133462170468883494367477834544201124933129164978401897290336113975895531515367991369361602078927918019131388118565781235549132308988065629789139481907844601981363773390438583504998361522343021381163895547489684775132732288948491708024556759056338719667910235712438389905384394539267756992655428171683418521942218133308606231747981884287331043494710626041115696844984445362547131434057105886507055099872266094219044418065152907242251721590366207106868762103817759626457726723081884481817034191027998686606130972330971731787694287020151910778160435868413659616467349540552726925061554511886250592397599557278287139498985190477705941446224414735948783457493400028072414117305588375644805998666365104542636034947070761689197065190479414977559302177625921636219295468717788645344693240612203981023150637394238891495982828724869688643044016473436770334704337681424880856599139801821785356988198412749595008308130804430928719585418165381141521054907225438908923960583093631647247587537169539173390496971851249788001878086120580313148625141360284172963339178005229025906752117748647143153735716314513413552965612243847979634080113662662696841185674895878165485851285719526773506813718449098081162384665968141372605402141078609962771834203457338555355783144983027421832988456119995418601102684469079549572588398855427852500234123670132772931530174809299123565693077979959625454154393166599792212504161160582093464117343820701133109332818879071861722121234706068444220522921092594425113542833734275514701507121545010392118382807848563755731743161701893663216786949767692920335537648262088866964201324201905322699549932410121781386401662357134793518070311402059296002086540949743256937480628317943287105506548118145856197255340387162966303864801444615410535533345173547291620543431471990321476606035562908486709150894448355674208396017770139688149860913713956486294675428406556080973729271627939699707942498099680038284763124387851206525219141031174207401851767605027695052224359721504925048488986075940984941326632198096623161786735983327956639372637045141273161167206095065209706351303814974233343049930870654503623757834306536116588216838618177184034338817289477942686915561471138962133604284115506567322566565983428480281872014717978271004804695190517924477043452727460824984204503103535373192818622722426753014677649808408348918610724519853041710110463780415829438831597944062237949721228543503565117631025698018565624320081677619940823217024658166377694535083354112317142160007162102252973278723126252238928351390613550177021482422306199184995815056159188127848002805818267388139006049391679440686185640017976253049579079191743248379427320816885988631449838367968870243581391996909751504521903639880342195738497828533654904676709140225657871205870917113315549693461347708333133617565469466673923228957260840385622599774525618788556900688369797029041764191753607613824762057032623218972364592175178812335122109722951082701575153576766662305221688599577359940619221623132797238311268340547878619958208376759241999162677865722381261155686909057319189729280268643068835750137520995511153855665319284860383547562328717961050096568287602541589448478563632828379519003939896595680585797430386182149592438769420511680065147466717632639475508731503883734495102905784283569814165527003895083063798017262907984715320108132132778165247298490796231089885032436478370111739087811077263854505803245948210865389706638429805687127978320243721170988971193469756733575473984066574553020926983783771638201339122621264508244488534632479024024699444644042512307276018809236054838036023641610177832054077241947318156696943992128205277686042593198704561567407186590197418375037526153009512796443135532945935301830985381803997747342511606255823915144928031513890986531550402266505118928164624331117859644343268585663323501241123214804183020655343272114846920974651111386967136095967098102817677605428647089750421229745832963038735116839952612373496209562439025754994441134108314256356237730172806201755823106213281782973988196615985238387649737977856840110111011415351908652959254727957830832171574306002285592315895638109867619330013559944161171706222321776871312456165224305616796798759278245552422198536977759189162106183843412788594302022419735434266696898521542161933009969484687565756467809541803899261630220732180288243892180774562613932950575326808664569172652314549560598978616009691782795843509789497053869571420663229363947264258041468216799269990338519907696527279935346068491959623057483759337084440591863478963335729905444827037548549257731900162348336642820818907522693060526816368108376519006674979385180288767058034447842686902391380286946671808257830106033918203902313535986241744528820818570582079324984943550233823652777457011384038703592674935425111092066173806807659443292628455801332533884393961923192213699555871533583236203099540726291060852722566138169017190241796011743987778017236454592792186520588877292206714953984819169357577675067271027896691807203835760181891495219720659567284706962971757862252356464726277315165135065230800358295694745555530383850305266008900752999511541252376339827929359683376634962236980398042597810515576508160795878823061379423441159827273004090233328072807755060185372585573227349139568925656933210754293466829528440402212105780477190887648987491522956395553407147487207643320813150484784951490524052190253261309804004734900959814245491573164799146348810559587494632932096765264582760771487047753876450116598548881803435993414788233235752461888190233775861020878099386243059370146690724009732965401345768127573773340078022680219983662621610721447158399312047486704559219899337894326249537763058183433603006863740567725016319944005478477126736014551136866952103613002147063102831300894819196338399906690668393438409344236425643157307915781025080897892354146552977248778850769383520491871043597531381041371906073029033673024543367721088316299674420043458417253080650354453258594333839911011567587093563450166628941426451661328149856790067610852844282436369649516154598991840065827208132427079543563214571466784357989393910616672903818546395723711750655754866391627124659794216097871521923980664469028134836396749401752336721439444874541667402234502075246308231787276942583278836098642931948692447998351137879642909888432417465768980422854769164265183718355321247406735881036972799990106651980194006456889861931529288441062551019008320217701388607244573063032645574462160378938380535031281325074534359493659233697119236138567811613286225218090126782523950535881965068790213793787596107861690474652287022754301560979974270436371099318675900716802845219539464654933112193033218247419770057643555396529636814754493763164614339782630100106493650306992049005028895939646436246344042592406673429340961158255577165528785503280827499484608540856683172831082956520096679604081361066674225578542185648059436316603011266401400250926468924870618470406089563537602905250973942164021037967158748841241750614322253410821251315799533674374693129406653688701589117141536257273912505759546660240310271408154744968631581311435398821199582298706662871699424265390452536380574838157375371924388092637074926177931323064261105919191458674896211706683789200831229311304786955205636256270603940095490708600909879656543868585956117941261871578415740866856628544571593596904818744761320389253281744420683751804446054094066092663973967151311828829460724415054137500471863739730702584864018691204447729032047523528169476573602503793226304441136691952655433547851661533942994383804625867013978481298448138628570150576938007596346498305156023420510080258977717742597589936828382855668410628930652616381446643953426641170214499983280198094130098864469371459152543587406406627527076948836212472350931256735118896593516786469798971662894333923480391083525354635017341608262321127147955314777063462992751294057364949622633054742184786151724703033773213491674303866975065119167073401398521537121947335665997084065520075826416117876903503929316320016552837135717743240126503571315877668906593143667782898952810470840114744474239552107684811131782498178511333955226854011575724502003738210060609651910013027146946765383919336501170679808735953168467462126836731946799191162397465463976926319628154391930234982148469110255592627988388944186454545632171757365454273648617420407254926373805655322186198958077678300730803508154478215346206374736021043856274925787129107220105056917432504371601801208146439412336312503290518142699572739501868844337189079892849512958032884656132778765582000986362567350171504774662186507449261012106918721725834487812748671538384412665771126700491881466945047898261320118954477456256849051213706282642427038267599481422844346634511617199788503766155713132723859736980169578459323279028402040342212480570925640065433096606430842359519972463626746441669047642963900281506616739151007207989257388663450283088820896174365927187256239575405437705719329924108922948275282328628730606420146178066344747250538166163621157146077380597848008200145590848102975865115426917138203032598102985765407384809075190774921757950658979359292850156883497214408751363822621485331167789769095862464444553010405342800598622633247601989245182727761856726721679337125975074716138455951185697642072413873620757502801192514495093293081659722616222730741384447537515329298196128909955103917547729307788527298330212478396084012404364318310582638060736582914922901004023121391820329363938901989149511999415771228315872291885237432150876240403628389970259182012049478602049404099042295790800959198863192924535085521936751889220699162349158087436130591080210109517218691838708074929933886396828143875280358758907132698872764750523954637752717649947569191317541560569256682167887445871140245729852800733794338907855060745531152131887106821751099098486165656362828069352992653617897638839593653870575015485473382783248172733431088133397034051282251475706083781168783551971927043507171306039671405150546241393880624950996813544626696167305574896101938090500247204997207567644055215757292851567698815443512077035633038525300410316097538444626016563806095369755299785696228436829806250045669053869560939881382442057602745107643075861474311695975470065782275043001050871247009444626831662630642109323752285124935390033477048898228362266618670327254551412896754570638649544937644117626816497183312627156697033892086463525767120853035767699931545826271929560180058744399800321791179118335458495887791758673951705859060937356707432462351351933802610857339979145355102391395271631675379530137877328491661423413625016977667727585312907230706355384351696472643953382060838174894867298054519178148980843350234806410364002661684426908440339969800888980534146028300966953532615393362047548868885002279159236576138240572023233929366973008763027216499082553063268694942134897891515673204564610497197259773820285088030028544449185875088939144269856141095960705997269587434987038007605861793330814551895787087218519450818605412609137207011011959257413249487081399294434449783241203801009971652679270842189134067225549849793728726062617885158921987588309383462509968338107263847687054424601458153539166704203482352953673774966011506444127712159066549603830852951465288741201157543538568391343889292624699252208530399884854678100637010527641194665727187584494259998848756740854813656274100403400601684800273492827239105281883833912464462974230186623758064845559488025929522235448003037269015854669356059842401325856343987852129295252296105299956022761635375579185058679490242134416566303623137502225846509799350533617794471497806703821204679534419396062162848892645830451553089080210311948306173918934332391224190492300855489363968234750061521266336736321066071985569703088690257413682331905020069415627642929499418991728520632200521254468246811884590745305675485817861777057695621101843900348089387326176916612586477166911729626285348216420455261897830060245806192490635305331535900241992940388780328307791775281471068695165787962324954489224046965945421453638410362499259344132838478954012322825954969981863487785031796976087968072801879047827042937796642797547427749972252233310995792070002549272433787445562258614051172385058372508614153046781967030479431159495499197339425273417096048375320833905214771869749425264174861149575423797221067015973473018530114914090089966028465988787940695466841005585866540340630667700370253037212183161443291164365305029819961312931317634083612051523239398618148899133209218479467051874670111502228856645915156147554412974150101479431284932281918023730826135330411205414780706628983602772612986956277102082709105256548591435441035691399304976964798105236100912044736915156990494207354106948065890975139118812185106276842538375253895092561665395900713736566071046310531220562545534869776239597263557825697463616281523621687660872493084760401970029442379100083160755365485893087441199570772493592148477562698964032794839629676757761619947079345108168915449254480930572802695474755145424958268736704765238897985556258207821727787350726639945877902561093417916918364997213593592984675654900027658295645810015208557406565807157968418234510646128417444690893766250393999277981047589931207131520908842680956022806956759133137879735075825652818923887492497811892977612904851866923959774887514603545147583179329573778651242553533238265916463115656161881356513469032110354803715796742980430601101793193737013200436806608279424751112393671792499879059877348615899371383698187237074604794596762426101798438946859790091227599227845245061054989981227299699451289765997315821211933273331306315332016953631282289131402673760240231790389383763027084320318829270197132429145124714459619991821215404711535876666646430826332521050915645074671172905852078961947131417377901202742072808781019632634038763797640534235997524653364276666858773356934221599261150615555542752263005649677869561748658365981382221755102589679743765603552853023177928708152187683303351634643519735425204879490250064585740485352495500200552483132389397974239843513667139161330957267986443496388624903475799286381200312202708675520157472239499432322036951189353682001701295775624918362935790245760171058952216092745662504156921442671050489553601571745694781159709273379693304335743165260175665021471019432230041507320135013185506496884521404246750715471816128888229400941515782628730321354112953237979577054575421307382849377601545278007641099084906787763007995633096380349936171772650314136288686787006322768029076227291211179082092977105339050306814415132613510365497241504891898463565859986078340998067228734836023223453652159963880333886718832191046821754072312287839381480072143125164770545498425754403206977679080625190058815752113844001689686298569742358267134131424516616723498480052896451898842029140451908320016916522901533597758537304774429459622246266427642393146313711433668293047873881913233074957089968934960934819396650961040205466648707933937175462021110544822755431622034180663030394125324752701560852134892348635229856901684493460633842945635326083287724040505986541136546255125946804632802479177298056517387849833890194145925074760062099600957877761711592326932637904800917293808079909305276766327429360121375265050408262572097629561135067329921374529229820117949394934745431087169899514768915649902391625511872784104695649541019683779431647462856088565356748272667187349186739462367373495338526604211526145898971898159651494763996609955916634175413130401686326458357298880248211376477257729050757957211088734869037670158353140023974208440702983606305447263765167214003852616590655280252313157311560026728405918190278667538383280170643821664021375579680155939298527611273413723514314764202759010028745351561252028051550646897132382720228902583649018915641120938708964883308801261223370160344597946482798185977624431945833201691181021621225312000637946727695371067736752719549243350573480038381033969857464188645530995347375374038134963231242660299107961185843102180118630965542099571766662081483211526980169187003400470147429574239898266030655788770607874409587263001829464630706952776119413005616516979820297721369597125327756832950836034964490308652302414219996367326106775472044729546429251838708595972332888795650600589697795177534295447987840437945710875704162690909681093682499601739737292381519833988805159902679358325944934109801994332614021731035410224037760634654624081117539777360082792941217167953955640027939743943211513339771360780278168939802042636104428142494310880749291214896463424212342290987754175155198183014861930570616213154863397923330390303353946335033038907101995325289984100098845644925159234719107190605889590025785682631139930457843549904161705768735819125333927840881315825534367454220112183379276378568387784456977963922651134830530053154662554888169362602862169522140829348095607623305912046995312919101845640730793997349303235142261864915594222774035098794752740408407257026593301611970580041017096711965108644895226654888302556903960557248997855384722355266118379320157442262505336511989324525571959380384750040544019553087730744179406611350608481597076017018739499198000894562117207599907462299472163039837059806355087687130697760323024041226024920529758746899822099586021346907534191212525895765546581705841140149116024618837242703550107897446877667560219432925888653223586482220314958597945809751099846000351206881776743637245648838394386878344000349158436780498476987883214359174783975938082672636692640521391052947807012162781916998629458659838961720043933189916838575979828476148033735127069176193240243243552929949387885126299915668336368862694155497683721301715718333883113603406575913731840920322297187635528850894365545959646680127654331656156579559625112450920675068790443309281052141047814452813546354570976186859020440923660211133026547674396542531024122332057639558561995905795874201652221457428304807446291273909871568751174723957279530460134233428335923580264230679760509711502001805418900905154877112203437987316702338367000178428625336723656603455200486533801349548652367660837214094338978096756084519748047514475105640787152066900696624356396345881936194571318060623726983460120318589030437487199132477199553561058214152468889322772419689815222743291250787897123303934845751475845092377311854662525357886206165994955415652659904668951723217974681975401283191656209190628989363628457811475843148302835422600367949356996296226622180291570291782033878765086477559262790205544597896035640735759934932239582076711186147049604665376842275757854542229547618094408607630847727766465275353148811109487495798799181645608099027252824133730108592109939620539260538329459380939663362470226472457052300848866570882810376085949955645982732792578984685169656092614211833442916374936237622835445075805265996081911228488044160840477162769139980599205948811293989586937696351449462401410451680213270050364364091598021092283857945733863836150501311294732784364790335140993686628303725442740806954338684556224646902649170664482723575370631541242570019576686782876072984352446002619427701961687095455358219177241132049886008579591915019417394107243929789138144552927050596588101232200816411069163738011294274355359990883376009132410482907036561656612660794796290407432014848662735253480903905763915929114158488444752559349803236879468811789169062777913988791364898429844269569337428604879281483373925443478824803148560447716048038861686093443405551274895265756701394010024644044218461005340597427792230988166032700005683981927670768347070719471740710112680275788765324141400251017869554767781056818284277795754264204791190263622605008770212774913690327050381061913192428355058938037176110523295813598434515590198990436395509498813343170899440208573124667527885198941939226009588796358513350634705876474456958974905672002700828427599674741154917844324015452803411814816432632248777617782427402903783739710640955721482416554316368650987038831516311314806586243164498425040236750912064949698674515213998456929716064874772397669888262332089514931512520345992886290307167002127692825565044559437121054930926593563816154054492003847243731985559447236662480086503839482751585973828369453243590247945550523945037125307263956511845488664194331618323736132526877519036533643106675982507801893999270398539688028490117534092410517643281262985586595954477197560524440892994186297777921163836304149168414969918147113314028962169458810015410147109437764128127799253245919610380782155033732322105332391047198041066793576717996444288284885967904676819831236320934910936653214762380216053128792490574205917973104888947774001204289708836513191472684217105681935767611324919346276899271197287507285521923186426441671524301553950515438230361912779485155489815474856175057529602346453507017612925704872584096360053284965101717653916276974203793440541516824882588901471529923630968064486951608373730439779790822899446567178674557272257867847410593058866435077488674207944810630774785906630698379701016971559139578534173116242646325875157234102586607049993527727295512597047101929731630367626951093316379002982367825167347535065870512696464336423241176734700046770675903455693845081046127564671259917687046014739105588108856057932227789556193778401679602515774176577747435490157093396854657266089226966585087034753062879947103504856799654628322382917789150780898192476713950891386186920542219449334755410898331313080033416587650903629088291508263604485683125777414601760070379244382983912309997188812680325897252921071038037768836616013843845925637951303168977127912374377127457451640501861481967970939822065300342337914960177794853419211465991211120581155699056412970101926955664529396307821873623056125711132389602104399323935809962423672250120041162507874755933932303571831988913996897290937978048914726481814685127302305978900708054295747633661131540410261486091894824019564771957067439534725282345066112490309424516759912924442567268086787065997378436615267051990668331847800390852818993423846219876606087266141978282502846771064307080246125553163952455006144427575183151518511530868443038690358829463680385497490870503852247135052126327027474713974471142676019811033341030211450627002578467230426461084979080882884420446355666210288662160685639487061161270674111436156649708459760845030052263073402404424784331058322527594690552207296640189571725236734999040899515234322462443508901161122541341635799866430628717933611413082557723395268431272504840093073264833680526690844880618677408836158840909031775622720073634645380473187985298090534634675345616762662773098132153795457800611470212062126107120363509833429860903442467940115048447234970306100163498177519980643980625503235338536086431848491585693199546756043088664068801636377211184665683861400324302165531175311400763381984585708205088099618142671595666946364111604742512496252041430743240056847738787861744341892006055851513340874478312148480254420192349373556258712720540976889201007194455700475175316471598850633262275653065536103801048956747718014333582499462497311794664493618555753102868730088845764934287598237361604875065424643467918539648838284531217593169956174842063600423917804257890479613434242822704643949746781942859443301246195617103810003857654448807411111195586377694379344059698139837817181678329307058309339065899620714588185916320175630143349580722466594091144292688539871180140079876818429654136194219438217307144996824082659424855961745851495441427798190622829721932992024835075950242246361160404763713121457784056534222437543845512491238143229174432340541039879775815721129618422996525000186401275630805672179610010975247491427467175740166452740775425239977283365560460108116146033848656678291439930035312392535718511884471629386866714698690716826289663144904258770376786521786606305240346390318565642975304888763430856142873472297998372250143617433334105442107066679034682728565839684544858520504233323734014267271585215100495195228190671330963766970740034468893266152949784975426524873588071224267234914254362561249213808815340667022461401334240442064459532092754557098299353080929906589895031474708275869688470017098974172775124339364711701837385897445621777131506858529848900921557432617588465877215057990940415928338286028635537525511856622109759746233583760548638617636879347068026577483581181482913269457871659410940233454492592368495512186165254259302785896268112636887411821476427687613475354660159856253071786969531358681640930960243454752783247115755053181834329883306255252633112155155560701278274533395217716016235417624474566476611757878414638972488542002789558984729798588136094326134754984652012989868468704216012519391738684798912698488421253079348768563633358631300523745714322901933849849338803028463718400040798992778471728567683182932818099773318837651120839478861471023065900354833346807435613295357354665773625877659459826302917223246054268409023510139153272056663342776892073820941629448318091895953296690234159838707901476353403386405454595813121817317463771389904618144229254380289242880118493034522440530182382659218325220478286173523842661552666953709672514056464609508816948547664754848879397924276025168662001327763437415076683263151007330360208886532750663895095683664397956142638601761484502492136759663433228527479699422953550994046242032548153736949860957526505970189433195069312066287154936559849751362802131233581922728651895769965571663585042423841385318640577405746309699813599836670597066400778600679900757035464263194938528962093495170026310232500377508037893421029492631457365046194733233218498950804654462090765095479105046190835058256235174919762705289285759348193892201468691625894710567502170253846718278982458534700452518264933832397446280334225366052788770741025917637409799976380572203122972055471637238870025226081959270956838095892660680933186937777396788918198162185815119266139233261077767441515593664368052315729107290739251238583812307731684535131494333582165028174632588204448444811511666161802683625883272325435640260334841925601839723218443558997411890585644523059040716498495553554439060131003450493907329750941138634639623787959981115987449562442367267044779472223985930429395621160469177958320990332052094301800402005358132893550901451862528396940705782494194923922114050278467474046741637862749568161341142634829837266589351779102662805958345129722560094059937698277781929257785223563044713066936057839756896545466728619866590043363321551244970954993972940238290874510026058963908835979918310931408337250238360497655684270115213073719233403591083785357031849789607930855803780618909441261901472256452566193219224007236742751920170480543032868377963757360079286128338004506668696472084700880138595889832930380455485632168595671540045091222718098729727206938648499036338840822376422650633381190455347269740474066061893098996055222447299161869520031574161604987970039360575341465860327497697765206434076760045860982232397645904902156821595517163900664715447814541660133934069612460869008073121632803413596301692712541299911543765095135068004485744705808060309876790125201464142466531362456106453995448665554581564633734156361887604807907770265781799597722444234455310021760420502079456848604389886856180388534467316446799801471332904901834118363916340629917202317034691125957488088382287435562738277821595186159921421123067602367196339069332215475190944846900598033505967745385705283030159544785133356728368685116322496013535191550313620301156813020928122296725990876242095659698394754276698576314961678672270637653246301876087772208575469878538187631851183624588911097041577237761666791958671953786484098567349928519964680027150813123975422440503794842549042119133106507159143385704239257891788927411310430629016440564864544338156153940103839862140750665835700317951157581614693086708337176210008315906965725708645447860509122257545851497538112179653373920586645570304527679495147509825907119747389308145128938812371693167971201379860076456670602459820345955826370121097139328352120289147844077532644362470828109651994554518219183899495961004797229152791416229912008830865124631834546841421077087248688641783713578587955745193629046038545948103484516119301277078544069853069728713819648334681038365215581562568101739877560413895158269826864252343267749360013594931748139865440017781946988101240859606961299514155438880897854571316814979427750955632138989102485696829854584412068899055830869404653651933542031391191197447641446004844382366756581055286742490672243386750766189217570072016296975862489832828521618444998373297814940594885564839549337898873803244437259877147043641509624475864156147158815944355152836633913148145666930119190914965609231196394430803166066925413125275688766612448944129048610814636787107451512703753527446865434817165166945211131863471387952307328591786573080263303270117997607750557431405342817935772611635227139092864300181756663588148946552405726119960447975303458363354269148344710957139834584368202704954093259500734061917334179548054369747123063113877142916229412256862392038256103630474486705251794573714474543334429952143660881431594651574027575278963149926778452990411266037708385540182938036551621978517881183382331967788085591683370841558261431896507338507379342015845221308112959434060718943896735221148426840761156788693764231075363888323706920358721060591862094277087579540241007270842250170146116022228800656816946999274337726339604372350583129934480170856223883961974647871347558752279196667072351079183986666770270993254947538449318761707544892667610582667353778226417843882107839695669657891764171822316981611991203295545717956864218546894876277128061060216269464996954809151274580830912958634505727722071001844271096093967970766139352003012626603341822286504203264259133266463249144607458234973857501183883346386151222251065645977542161183437694937947792410393989471422114778043843638498720298173794187773898076546921253406632833277138650152396310646597308174105188160938163706539081013948109779831994178230854145912062573361159297139869958534388842362178871812958780389870117805627822806670078756573041030107677234863891896891090822430543507683632584870448371738373587667070379135069114565912379935650289132991329117206412800254153366339810107575008474957232228027941522311070476805038376046101246019349745458259141835003299347026003872605809433184156879310867179744889564754478722033510168163360913961695818158360897757111823231768189672561781397677037288578092025728938379808487851410456623037917069586841306752210795634962944907347635947382676144757539483822614644149173594337060955038446551578430092123356250182994616810755440219606700838860239826573826593876292410121453223771282047577007230047022853269910558283093805152727052251776470427496875635168756328750874067201202294464376099883860909874518698097712494371254279310383833942983605767071061556519951992933345058088339252321714350533410839026381115652729542166548421073800059604510250345796551462854826081421792961715561874231112082744169167157917592288699782892180980822511563260024891755840308426066031792853167753196329008306687077414168027625839309960676895067281104742113043884987002320059191751741727728064734138648913461586698462674919023102039692597888525920325499292607768935811633776739276722691267648361329506121219569552424600028898734338020662767060504289557614033308020136948620840755391058189228393009425549045959877244107916777734720691152211888470114057449490169850345323708776774808190515604572269352845692606399532862739005999520156257077354825609850312668927993188272303487738206721573427931686241173899976609445816101967170324221940704754879835350446749669621639044051934995129895356833483055206229585051477266100553060054243355583845659505797990100491492094124483547853779469746865504952762479709465247532125112650899961347467697191407331982647921738349730535093341545161069767079885284355205904941509922312261694473847367027357311429910432197786285155684920093339747716496480343273035937833674546676768595213609466023204477444052016328003374845198792685049396249236078232494336220792999342467476093080307990064675542184827796893442437310830308688526654561373331585628400787459845172812160959850658938793148511842549024041845401632369178560380817247257232832238156910183602070430036929933053739902134390622187584450085281448663973745957617799396778927833090751534294548835634412839318770087542868590098072295620066288019449210030504445308130037593704254909204164292490981366853809525168046763930742472552828633771653018165451094199949680146935135388068073881298164495780146993589769099920938235527825667530827974166080117846723937262915641459600939554686328484549204525050243927766140033212999280350234786731960828538629751159887383215503348815916562059348553582414298900247036623941903403511959904091765684929674562194155340788140886905272976609435422283807115469913542921683965481053456302828425697282466016232784344463988577783704180200594420183372361498674011471911842695072097778137268112417189305802548608890077784113487338885295174753754226485934677891631178710039488184328283487863588122152144685354408042047704173893901619848069313041270301097940293802335064697828082568067899350038633110866823940577373457897489499125251034322695962472613436424062202533252901511274134863243906559985543166269127905667634011386015575261625270515454460769155933581313982199449328069917167466797835483753758291012121166676679062421470570572291881535452555760841206093519089315383684827617649792699119282462490061672637657697543124789386282081589953926552104599365287991151394944953887067332210260439116264793184104145489034811473004610499079022569500447462941618503296439318049232618715403763156001518772509792838298083900038077961806528667367424833724824858878555124692860640883345660881884826604875832841285314486483407766987777687819994348788877555686122948425062021025255427301148460474576446858980023293975517532354959556628951643486887616210049469015125188164641030809417544807860393240408936126810404878578386686213589728667482801390017196325260654992919669143173327911927314184918295631729167936693922293218223736102906098149734545252329491348252581084279077891105018374634095389947339368817295449837085881154633209291295341872542496906381144157712959547235638357797630042557116411499489342954036647551264346086543131080392715822940650882201181543640030019903321652401759041119824810970902457747666066127448537239597247986286775035062214815361703992325378870519096015498425388536846520871343210913678969714335626082129280330202968828257835515327578975859829121872650115742297373252416534828938620622891819754538606140617303123155443221665177344598918919227329920382112422154941647256655801840833638798849238969735527543376600669865748983477119280027953105446351429256306800806883281539976196108362528324580840155392280858231107277997534864014049117853373821906339266721065141581227471127747161544906420818096738743467432818877420526015335087518711298340855013686550715243414963742968194011749935494349059866578813854058664106063561474301206228216299483098021523331342308876198846133963458241993282704366690924164810087687045201252723542606844153871506246049267925523030099879788048350869250286977775321567805503306388086783649024241516434211571487155392092138605722325963430202602839123553974348798732174931677109003487961768234871573374824000085595984511807494268083297017265655133499685963905175628782905528448044221794368963564954280478947206890566191269834073904284791681240717145271918030103180917681184498421229429128215471802964482546054508786309504699116204367301690484608688635728452038487113640212248767065135342782303673657555231872995887484334074344048652562745168165515776058633355986331109901240297846006202028355772867174626768504867673190539084412217333971963122705347646325309710921347305551541676384424252981873745145723997682441056857745573818825176725504563879103534967331406369197692026580544873604904911555715896283000544547630618795263897468212388685464142230666440770218018692141625561325948064952354334091503220299936704330102338471062553056405329329436829071271939660740057865128603508411270477453701202294674565093191390137140607550741218905079668850709784905056381936281667057552049245762035956521781529714034876195044004476456781274879069987495294925512691451275664274548088075089672708785962403438577881828411602168602271640866903001488258558317076133074110774796894787894993882305436633208176842962122617244324951868637683723855928940420466477147913835580824875050314271479061520489226694583174181215756754428763407466641287391473341237571371163270745256767678379771837585241188852025864042235424085171209925081253395456938051497943948191232968238198392268561172632365163346935299220265917059917232029721937728362423043155673945248002653809868340700103928942168805655607713513334259256760613660312409759026324021897854149272538306925280853127013058554024194792587613758921036818056489322280523519000539832068568568843999932622087853624657718825751544215788608544151808296917108275342389647934659083811774401209969939315136970893891701776704491899487155639162499346364182633702300191307426044690477306108248862796913028023281047435564036046316907808941406191793897004135854922568511174889859146002071867264620340499920291492078681678312113070545654198328685336670874150122849950947712588169228218376127436259910643704543287344156502093976076190807904160138757147235471451314238320183592309529053519364741723617129218248272764787213304909923720992326926306108937493619115613546018804467067473985463248358061400706509127683458207998285232676209878352617155298482650303611730282600619278933735030373765758537061225310661501981996700840840159661270805515536044917786006797443367845344297971770827437805612115861402248794245609990730709294414099083980811806852529282200422654527086383213192234009683882442879419757009961711783537536444983585882496022301050092399806042274010101225430461045849401428242469039583164515834180839717918049639589868711857528426788426850106855822010439469980923830283410889610117335940196004109692619463924719167152832192743862116529740496644710912913385739458390206055981875201691430286463341750230116979099133955120562197088086983174323709579900779470769790780670778607134996820809896729722879033590072866886040760259466284723755322467843658812303413530156650197032945249957529298814434530677472027454164487371045514165801077919767800055174495979275655379865520029797255377156442128015736884373742672425505397615605672854529771100999200674802308494743115671597953373224680003123557795673182603411402987503349162951561943931853944263691112464590410664159480568723947777135354133617309306815860403983775604092996551702254452318803427069549425955829475691566872910784106098905781001158797579730456205527848125637453508894633623197983947021785878524457041770414692959389808893131378374973766679541502255028232388266285143694348959273248421345305378645773453307362641677637573021378472616049577504184775077663547582413795094965771481549116687513463961437440708215819950768725833383058361094148310987115485162603013019854029902828956499202292260608785932727468901908892109407134673524154191171098765481618611102556826622428648388193800493133446902968177125112865148286124299335360470162784356991872717289025793970191254003259763690093708358682176974744908832058519552537741853163493953946212421653046362929116694400839256724903602335208060499023373141916276835138689471829932327389652107401290513165454478270106584962830550186152370848319467099112961094034484215854325603174094261556317219597763948340502901252062637586514015152628656341438282964688593256595376911958342647127997590558292919947254399101507935567721342158823066078279062653541193466162948793046206589226612364001819900601473608720345082653551123894496070419669953432668185756087541003924049283001452999787016365920821181330105129632869696945585905300486765816992958866012314067045023781995062022963318157173536904556642167747358330073632922807159490935309855726570998630672517128218404255399509743809424458406858834976018512090492375241668497317171291277701281671008561429800777254807445980305946243374446884322927917678513932295136198077307210150717674372396223122805330137938131555806682232454905307058689913274962890693918325820865610146589935844195196105474691412133578405083771410353976673427395983338584482992614146051697528713289896919140313434043988162723567406039787971973169387417965301368229235951119445386949680974274770758713192512380406541403074542526558062940410927838600420845894228451637798024167855840710587978411387411200126149227267222272248533341813072291643246162114999738854380820712403806477207631945973783643486345902290509378805317850531896422718350164293105395432515680339774520281318969149101388715473869989875000445725182825133765219971670891544432912087447382183592820063271779601321447048924347882447519000709153512282967322128889820617869764120836384805423816948941084728682122811607249459810766220150511547754493999412600026819327812711139569558574061527524730001286492166673207248551662327469577595669470405711291631235023495547871904773634348277693879871490136950602288464209066271789275396099154720264683897853317995263241515352116156700608450807223770307064788869444203145219003353083536764741817831079851305636287368199507733152516807275291360794003504244783023284909267153367026033564403912947357783035998806034430398728881655352841882443394680586907364318411810679019323593374211420898041909168651370680488046101316175534995511529845538371722477996697518277311296683366655143659467297707974211889014833861509137210067636522303725190880734188988815947587702600029075893846519010605262786145331900363371466081629241334092583597106466630840800298195335419273591128823538050104755482799375309063910984377083395487254624770565823198316290840111021498283762769659489636525451377693876462095727177505481991109983678589041026807387099258084662317386608653043703135627012812757100936910442850519024755818726396544634901506471321513493069897053940129066018089849923637973418492262281991048548124967379901934307987623550706435561384420549498106590480603572838018544364101597238374559539479470751143784169601380073713530389901410686903178149203387827501000460488039309629323211018138820101243478425602881216991620962782595066787484624661703337171887418198217400380940944289249919779435865155284693208650444371184205343631259753991672549269692524534375446259757234703279842045832265450728925086461807300363795104287912400746350557855971263802251088019184060876889907684941919837281315175248061831620306942817033039834870294728964631165520109153139133117371390637957063380559559840692274693995535521781250819046608237247743324207084164961098080980672156507909799859646607198167531897456439874825249159185556128975037999465931953929590390619937156895084046790396097242270125572439480240884628441647946854376925301205790852461031211993464252034110557864765753488315800265904789275923604990332333067444310479002982289898913182396655553297136513135149572118609851370668369427661584589194957530073736891865188600257956229982809685383944529985320638800033551144973566550254779563225916319358934353724626003035387082876370704949170453112677889141416773231844590325684280415589137058631934515109716388255589383594121887604871787588238314276560412917413203527061305579509383512552429674127823971209571920229455028434506874367270121981672059472408386322579010854053927530577880257055475439117450014674907273961757916439619334310685975508577946702677402998958727156207580596635658137081482245656847628058656284673232938443942585826117086708993922650941394676352693696887910029359990760654346251779403084266038249272167501643260204366371875673043432978617174459984826005201058666515223421918483054088755092617016170589419314095441470170484408318076073225826117495255959278264384270592892023760699112586898716554455038098158308670816228668268033579688713163761365481007524190288178614683679158444638026191898335433655831848402545200991060687626868677016982819027463688680363707178575529187273507872330222707066782938428321721023025445033577632602943946239768585354923455803675792091613341068761511594145358173111455365394279126221601818424526051091971721460322752276165289487168705518333261758350531292592569982536097275174896111647009846376596083603472486726234016030901477305800466844860167825111147602897983694458715004663269298552984310007914600900264602655084688813446914890937140335884679632551795372632885201829942411184852904783415501818547460286744131447167108030682939093587684762539396818417132124050604962403005507014456778500185413681731792218403483136258890167137142667993559972751497499800490307992084859076534793916092511147328776013460968911628231989997878357267021713448266663653145684428988964528565467330587669967753854087604097823385854683783450500118857805876801423981916508258363936003117205658075770117344803453586713661380539511726816886923852815644299935563850377184005731074300419049275861065038476679962519453170429995858051086252810119592901857223255353675236167612519472504150961621004079472251090947635846185510683459679671448299876495637232448455749564454165363247016809383470100908248639928382834361448052022105753399861942433208365315551853217715820764787121461971965419063966305614420774845512739401329409617456926927838106754762712630665940283686044677395996061849673792117248590490804574388329857490717773889294511978703082007660171014098423787203046555024555963113938385345673373505696730358513435462984577136073106464852133146105281854777954714363266753848884249648938353011841228633729221170466061818522016033792814750551614090101192975229651119375872631753103372001927909949815334982038794206749330481221989282967242249907814916840175590544982559590040652770238174577032347675585936030311700133610049713615784990779681476648715504619726815320945797678109264422863943050162422547579855211308910181722704338026863990353243449982597827998398904022991771925920764138706620584325921494939643882207105409726457154097140556160018242740081814992618001035010312649671852217593622132048887561883959976071332647367303502455741016457926710280990980753593029811988297380753614950965803579470698076082521806732471340985200364507320895765970306720437818831153183661801109272165015169335335629431857065445972249174983149978156493583293921653201579295529069012053475129288713160696027467753596498591227652157822273247636405391714916132190268143465584951755869453371614033976144408588482689612164915713555240819307975930529952962630184920395172359565479186648284528187116316803644262960156038664621374352032667813227623183742061724486990913282327014562809981469390607435239983462221439584406146560288584998822103443415177247868038844791157516942890477349913368025747901924767980238005644895484792895373673395488484116125273770883551596324545297524750096877221620383426284690585763344743627024898538279214841409609703821785985597154672551655901014632674257545618405408594529342725608518581359657736246086360815495949418137371581628243374009511431155112175514138591161958536125372913824141693280841826927744242445520011552624483328952555747138066109239244194335259803091322524839684939961537369954777572496511207630447482509828100396138789810095816814890723823324876142669687529764184666279873309418326147104716959100055542253679715446723702744686558475591157752713476590659843112466388630103539998274650995321798726988034482701597273872259301035563912056364882111445363098894602661517077849734491459495042968517676343124522542383306812130321942609800428090216964919249650059104908398470638287237141572071375198428786581538688697997943971533048052932346726909913506790035442221759582084860993591641983066448196217507806113031131677542065369202108173091591088314283628031355291204410568186705690627035405674746484207844971476842765908066219303643652076948770013811708028352346983021964187693510976157048064575598706132414719726361510047023632164777646518214199462292983381189121422635407348152319669272446678140083623215028912138487002217882084823345777771907002114290798898845827970196773290783364441063081558655070884871448579217114301271979291467880093107198362985078177108817861767532030045628074453529572234533947395967034291285626487323016863735701721700521986805710898918860019716942043886559126088217334701778825934051894645242517101302358098641561559489328306212948216670554319513228818126335887224012951126294541036050778345860400055978766081736196299031095459290938018984772615295750202114611143611505749379533449189213812175893476512231340048007017990582971256079759688752379953057721976088307723304910749446828315704767980599068333015163523143534066202179436856681980940036496941519809535244202185369790698339529620446352938645056631685205541364207692880991828901450800406094581326958107334215611242325799761405673562153250908855968394103770062694238376432242221724922666834601131788537162153193070288675369909781189164651808719189294742600826843080774214068509095526862626157816058062266625350698556769837336680283195820046495805037688824474195872501345502658960209527633533556929416308933375327485603221132801374918316219347337291101480917930980296138229770809618453372504657766255269912103329356422196371980270264713460530841485857921256990184404626314409293382062831375048549922141540307988880738183076086212233288763835349224142621689089341118272040137771057537423763877452787090764278944130220123180717008105418595624193921691307455953220560850646825792879794969867331699563569696887490620889929346220058316925213214468570405042173978768117695654941649716468850097535886022011408639204473322256178519934475587014521182104761233799638930000901495838750087607464198840501695113981769186287234794839839629894411138045058875143591832941167305836356559961478412232213804944165584347969420716121609211683086023402087332127670476108635714664519111327592439669567413557513498127360171801630136714024722805979308963781062549197741808410053081411182444163400779323889067710188763544117620155318111645172294586213407476734727043278698318933696244549755161584187185183349635132712898815954769227257457138099282012795514290219414702128988053621602034992700622399641558654426839628610304408140248216206074542581706801000641752900619811245659679771047601068955899374684650434630037394749956770690043983616345732985572653778670843234396461241029644780177947607975921240628843038808461663295790085188721512791086712991737625772541621680905135313994377247077358807473324147716265428372545950074327318567753454865469200941232535627165159606487938451360014083794904150792819073934255879530937023637602628319649696180159331255717442155451759463582922883470951872407162108640544063059153470207909748738434704972353398975417800236543259167679691258634977476039576194651312948675282209038722854392943380665794059047771053645856222551444180890097001252669518611744892875114974845436083178998256519598670817295094242414126614125274708442939965853538980333487212974830976145427994842749806717517817718217934499548879419281512861036156091842553231536784598158893033588087564828480273933497890333161292676288014127439025162900379222993393104302288108065516337728239749612918473164621217348013608481091925628170836986532622682014075058856288456947693858879182758570459493110584061899783848783071584055137704541092415798266582459894146194466388561886010424763396447659441746241302215682939608994131680676012658185307003454459057502175880881128420188621815502560368670543657346902809090550772554505839859075410612216290817732826465014838729093474907420080144593256224261329184557216701619143790261190687157083188409553337469077651529290763595419321021803766034270098639465896974179207888415279771200418459158879616925948887478578918293066160782016751818592530261606750955330536854313024385825483457083571964366130685832437296828258511605571522101540501367506487456686342078768909818947587305155660792497605618744203560746503965213397768428034449758081472846092580483341009339425322559765939765794029491302734275062902967136115268276717001840666581909493273121876499945344312792212000388700345639261604375380529370035422665571962013476832379874276878503519980768584146793533577757101712691361341511302384798900592454895377589379033320529974785012159535350139101523991458801193789951959926341785359026594790124068131755530899466461863860094671248138849344923127145115390874170048532804240884919037020181469244193522068195012435521910379293906567292915194556633454266096800284302196611920639133184076701680160956691446217830834077229007830918860258563259371666142368013684400331410213087530572042956483006977136297631028524197672788128009616860028864233964017705811518200732319600685840066813139894851117720614095229373624884448656368036066788813082960322963399958959132592579392714795649097063904363422793539455459476375098669762833577901930860120938426254045806026535028599572908438903352422777924864391451831995600232863714333430246176636263587789078476904662723788831781384691438871260950223496805442959298916692145055230503176179696345369797268992485908329799626109255242680874443242845233915356906840927639510420684385730678554268837805233410883993125420687584084520914472910677148920884732441235089490498341410112393385677691307428595106058526301603244293269727446597632652156595222135738585701843609610347785749665047176318218536285439977272455226707485965325696144238605094137054980508804029085333758070990565713591163323512392111541510107150442621397878080840567026969910977712549165334136365393549140768959244709337244177572145352574997621828954204011079882190687226103156605757450640568503463618851220758372929116920476790786223017191109597935925202485949932121762765096085305529445148189780269095529481386567542925342201964805723569294280616743421658293450740241777317879296502850210958540715008885417929475526809804772714826223917222372570282999694790327957701184857481911703564979178493043884782810248605487706172906678821071202923398546693489564052228941081731605429584427723747379339460894027299111738798736947066749869980822655186881717521445399566913962556438634797832147624267845427897906097821489433959854059350513199733723904550780560570721280951958941670211642566944621453482396389671524055762945990375857192780516150424846858814741357145828508043608459453033175129551846711794860941021754371599110713858442613908717209544768094056168925668270200864670546543611410569830866875352559235898439123894790098471329651235637299897072775417558873372515540942282106084651690244766454493266896076384205140404971747950167701919653585960444733807174856603944097017729837956325577749788123968927560442686505194313648928642806199646010139920119900469779811130789286582189020625004900475619934858187336564989220111741223272273740656693054845581003396765642606812865922948797260807284207719421199648308817819930884968913717278997285167494220473856218860172987268032156541707327125290350988115110533643282352627651339992881810879589690084067098024952615165888245401252837231989992454468204753464080012784118202170912875144865887281313761598597795231245514916000370289420635129742806873212858866769202749142705790327538040491837437298566378456876756725667122297162359086287669013699401460881558145752146424796521086739419210208501959431485414338512286133290671657423803140391810895971703324850711695152095095606202995733398776916110181348560549695761957040623219190080375369203295368672023645323305848710712932703329134652636755842546447899313857111419302758791713102549865388032912901944606742657279980080918955704900702374678088084954954301632361381426286281551562237298456510552941850337708625124870088080264426312911868981513703738283961273350446530694750819179273357917218925540124145376293244487010445782557336099938304383106998029242539264700727855624165757999155560870402817748603475409979606814233630526653109448126937493574412768535004160360877894196977946724951326352725514724638303268341176738828072678041427781806451327850459693153920127637752868197481041324029741287208512476557858984535628889119189398152884155719475615033150267805577390727443337818169879886406726312902217690622869296095774532517402308009527185476983740733000359014244682442050602978392048201762455445758864803185642780097714028286392432414793897341947740775358603010186458577205086906280852208024373522635083460636188949650574555450054647431701929909489883804861128000626020047099906911201181858186756677282620981947112779301942663258047295165169791993504660252148705751406331044992246932551578653605797167526934526863854675790183835278338021642114410542253576337831844786130038865465260748515199313075515415607056522897194793218351734152012893877652204187188764272970760254983306834899895085070888159559664840803928399950228386575030413363693389404427249383534294190256122570920707249950302986284041649913300618661141312403964906364819916687765652210122768372296736534241417914745127863899407446617797406702119328109789113068563455756790242427659571132890799456875348434965378778689669932069125220186877272661819093176952074611287134532765973320869896797313570487003039049424866128362573087103492686791543827470102231821250784154299995233737200191608879470124819575480413211534509457652175768947438746669153318913916240559425053392188378256089679882837849805259502548586238741022813116131161625533950696191085032714538501946287512539626018489670785110985274115556988163311975362791427323152488393976906274834742289799705452303026825549438416427698813144152319763610832227634291235700266267023495118728444332374506818123704745914331359762549935117094663162588685013669082947270770890263968805695047789604599689697569391023524838086554739442368146681794471958637628161440059245852667054209967572941422222833810812159373039974651085829786974685529340105272159793651133835438316156888994848354957527826965990355840787271088670214244382735359920190301070067398981173205024045718842095581278120889927264046952691752912634296584591531727338498766517341481229067771718336158224969256611197038900286084503388829824555967946479614565079466076917191087919363835079491340988711346251793705721206741852919543968962213299600555337833672348963807229742453265801633276566126679773237102586741804346969255144136400084221923630716304476929410249692206544388292620506463343180028174607431066878336815294578525833198144457637325894778605403136812229142396221679070690161746298866949742002755030185203540545142318380961325195036897798699670320662241238431429645452184207034852968900258728668523061524603614254156017216815902633715431867185142822533306451543463774286869228509062309308706932297111117385401928424123019097038571654757035492886944275686446194789032723854427149944844299141059336496097847281785853859441249884853169258857900851333987258218809068835227075919526583002508224079831670376485048454184231006769089098016955810669515598011367543306291156553741791080297613893185823506001742217579699125188274408550110984177024148074641767994558066924088798004868703389705086836981611003967450607806232819634778730614614401472904240153985116075801202325679780637799797725668549152848533444690541599887906809642749974349334734552890723177628894386514513247279044454438415024489519944271178482067885613870305507776075570939941066726604967931293279446441410730610979166221976925247314184206717651935932090703990886431407265426825400469380923420472348447045885872830204425015777022166399053608295500732573823628753904387381857752534607394102101085718948953656165232825817239646287193559676397238568282376728934990483130070038902992703565823053860261828375088104788868659061221431672973630222101646989620992308839586859340546522512267033546684289623955161947710825180628261002628133462980876005326647885325410620204770985510362167407054488890681192025334778529539985702113517158129388520642050649639923859829590287617461164971920369190550883044852133323971364172344248426541099403261485646114040979686731407180727118758066627333594130874728544291446956355547150628580892517050546247891168274728943254584782971603780778642503428672425765161541271466003717768597455267927424706368610720706579315118898453066176691622365715597922387247357840552995349656518400820054027030895038857479812877891272523935626378258624371594745670881900629632047673743085847991470339633153060849779459970401677273619945969065938409924806032153550751747844768765437917314867090722286445488557497998639554548549706856030865453328812483491768508793044112511642283040309361207514120672664988305365280643387887936965028393974928764183786026583082473464648053672696188101942579740626825667102419996053992571181380183207279233301833469241865467928761117541752298454485515149700043719549802428931973632362981137172686874972873206524785063926875621115621939112635547693186946104072196202984520192195881101125409399212708048837818223340923529606453214342034642163921061649253411123271354803371679821717460877590494896263051638587884434962111749821185872266665014285697531547356658259616588971386459873736936664318109834206980219546051114635127529476459744077074211697653729604899332542149148748078237721300316464366540730497570999185594467572860447807104939269772012633735803001188524286629097909451241321760291904115104502331354177408167234570043336465617568343628599988431694307951584560195733517391719024965235888814775282947593273332100738148673273808992893831868986882578695730628944393671151606437466123225307675860567877068179846293796289511430789277866239923830462936113803101799965324014547365742507154517156863555561051953735107818166253563962301608355972710910940550762624431707819999434360583108483527626922474798419661320405815922536033273972087702982046603795756513699283251355386442665872054532537029902299311152668553792136106115967300342031263614961078180056835654983671377735299442777516334787625885254423996982884474401878030834213786934538789534237450249055666779696609731079879648302831476111389989441338799663185267561997001677379278770155672296878166641078292588244726247945990898554741602511811125291210627285104043729412900320014688333418892920285445032011179344373172148749056952090068550512112133027861122956813793243087919637275228121628419720159591556272395367026744123695601800312037620081309372658906620903940744990690570235475287034110746876511887843458268257258219188253680843062788181400667081053324885451370417855443307580763420428394286958931602864517529653926566929337656774030301272876011573132304107131866782268464266203184156190310830974668992695396970852989484357716268548715205406129790015610252620596315551509540746129414729110470593793584740197456168651786643294153668673462403393056225136575520456303851654879803010051394712598550436156410961134150068843091428145583649467277153808887160791103068995788743358340376855285889333669489307076558371191136004981442847880636125190321737536212572050211874222370415714488994461212015661470068390789556051483173606069286034634934999781856999174940111652493362915104975800591409923549423618641292383869395926132521182408761679946617154416431935095973243623805669021374513492881372856921455291824895665185063445665988016430809539636888208333868386288595322768069151289159530935898534735888262031583231877859812440423809990735820258583376633256740191642800640424701709594051393416727708139682482557926357594165195910297995035257788259850420941750767856670427919555203969809867100941063188997659062858524420593103550436943148865096941394705015925133307557451704793325583012932103173663658825077918982077591737124187633936384068184042460862580342895821171753457830125077511027407484137417513787376473904420367427846708418336912615948311625941100047549831789506130232481551327263030864345701269676935357470520030621646079336120181692728666902381608008036929506413572924119719088781473394645124624565303012531380404200655411837320854950470962259691672678100518738871410882683097804814777694741471350075702121475838857409371833774966114922369205175962159789533707964580221658464065974818192704825118207612724652190215596403432198370417137977102642314867741442050687237983016812802634805401584486867065301075868919272626708324337009152370417908575352836526582084946321899975660253418706011380012974020192032595247603819188715967129616512532712942785646124353143795319195390242808719239058295600738806898969159295532984065191521866343587933385874918949688079041561994929827052647142676475707004465589041229685913388170907639649696787212408556618533360706121831052852550645545637095364523706393260686490396865358423949726759873076392824081220206512464154038519914686549571575608671009651929091983167358824234330760518512445685308172142955740384278092343635272443365000622598183797705955785293503153875275667226162073559835360984966645550385717801448243392096721395105853972465654078493503144376140569267557112525866554904060393618965099388113865499437885436102482579348819796182758504752979121555632447644658429682711078892789575458476720734504418643699453235433432904750614295114566551586867164561093368132097909539547438203147237084354914143322078214538498141624398348372137784972867372247390766407232127681145431451666097409743542766540070083234551479415000206738820844049391265859707332850137181614794412041630628161472830906919150753663978383246846501345437686579734983980681845340986102748711576616556259865174628665235870753012078083416194854054393004529813012602687052433577058994534188793923959052893311600602670792290725667912477412973944637281224984705889342336763191663156483013338831122565367399593912852248364691801268460817960287924162341903535265283050693342520352299594695212574510706975001780444877970600650573086884186302508656631959562517631437671780131053406668427271339166046390927665626036376804240918629858184762204027798153843680071079476172171403611326070883774395084554268380641907098175436448982082662285933790990816786508161870512652135234086807578131794271771722503681500041388985935769226924328899288636478077737814120088701421141964539318675567519686556242543473641769875454979095510762760644281659920196053620891128531309641573491964955678386143999731856769423092039549138244789569913927430117165785961307167329451199092960245312463968575273164806960720517183954189392414220381314823866151312692918005923649460305201900655631148231477218606484600682481952135583954652356975951715103109130984524736679222677221213705343715170443076469672238334380137650937885847528067471720667067838520724285035778066543955750762835010155812630126532461679182819732659340741979223973591350555222682065100287228926218199074422685528187303559900752582403334307054615103366886825492113474179477874244164287169776635770962234465493521217820849282864799881579845117179547765543079686652563423682907156556227035892061598515328568055337143046917447913855556274219449137982718066048268537609371646987844804747985763956996937566109814881464893494849446786294661076587098721086985240313535974864883661342323939439668775959410952164881172914103901337260193067589700653943502663462384671978535481110789978800177322619537208347799511147087594330829030101629695064355431462090599601647132841473010737115849143588501247362397752120917674282584530554142651380597270633279754688111021518742725830003405431748018127006176502713233555393856199298196011170352222033662662192926498184277395091683120953187182126431820130955790045997695887488065486019585498963129116485337823627791406934204033152535954017221494422229759199118369967970288114240025546142789105673775565437752754554684198805346770709834348254832466073258107588212573963964422192148091847474909064704896054280193852579443347251818838354446205906262113846079672168636049761760954037661712187818211374881387231992344339813650910174782075170994039029979247277942010817950340817461001562199920873621316788272472105062998093773402235837340101693044692761100789399103232636711624021585240883570687984589301307242528083323263475034811509115793001481343777162388471170887450791075667210724717852003845781963463534106414880127246561588244439951168779549226845309673501303635888366343449972319853026427956101152404837071298365413671002848840702996847110852006977801638775295550326847536395363758778956767241208912781189028345255431547864360310764365684816811659025752082819176359463164974769208656225972163998506800506444173382075659099266280260561577591448675337937020178426246679879860025589680149007551507295924607857291417384467925742518052900620861244061339455423733519033231385560023720972677522080338478663143069655197342208639582872766116571180147601510214459302798449289227875837227593912823076602922847943991028435758789184618879750894987742804754485719107235586609097607786559389838990988840752921121788576043856215280376837586038550844403084287267031105937800543541217117616710572832280226844660627983335757933733228081867888599061888925639507808100618098867054340857409263348797851544161677467378048429550854790692820909110556591720253184824071680623748157898252511061763341762317706942444956219605023385810273045739016101893889949767724574218036851880973711301405634045870437823596115877103522701552652855845181373245534184571142229631119571912550633693522992752241031445157272848346581942054925772993868838853599853051853533963182593874471880762112718817284773497418760302830483526693865877261443574806848914798343463728770193887590108893443264554439473646590669740970527820588462381261147039690884065004560250769403697484292252779097462882272091782880161168835917993016709850930452182026471720660564765647927436593120021853114885211495718888758128717728195040464583955675288905306753984566740817527104545663749188207285340790636131841553358869665460680574063068853911064253190876135480800999079205640563888474234796933120564075048854222230941519311539193767177518604909353581462078172149991666703073068064490928328575242429074413359683630692035565354121656515887922383803514248934758447819834207274388602317122798692232807135845171507887545003456246489867299132062193253497203096269709016273884463943876218325213268047053222507470047964392480117345354163963521581060623961498894030964971193725196798928133945691152811154024062440244090429931522119886856576516250231532502771555471643006326193465250577758207100669832000023395686856409924339210652153509875007813902625813054685591231273276612257183609785858802156849024151410035350012133321020163298286027271542826698822814847839935647376330885801807821265629278286450372803666000363636961136798142393828219813554854327595776296122495810797082557462425664036798563170952922484150530390901678518696710743275131334369493495269227773847177357876214330828647500370053674489759119869255016076763390571840991455408048397874110494183364987823274783165106972980630928173478487341075427973363599226752295336617455121095403945032465544804458934577579058642494587202665795626608604422518046435195604835780642048672343352650258524714892373539407408049497099431408255844300744172348802391495150304600987412445910687507997764656946578437093948805109692266913982922459673439780559023042949565836588866336563620627274997413459357289050257445878135456232992754662570948146004369457941726625531322261376763405700859677194505531268604011957482366723731507215460360440722581979453929430875888999990058751630200085614856567898275611957874002198282756354771253655644756158814842055615167313659987519243830706604000088774143786080404805381540830302570172085264590553875107871872421819010853311541063604600757703593355871780872950120884445578741114790173640093290650075002493379516942394382917557397190376384499750777107943208940314049697281802396452722959439786785037519054741365544728534367290509145132294749765760255605891716336888056903461175256030223326882578790989292717381766785329066746925734010217442110338592142042464293411822259637593155028965863661504728713480843250250087942312701092723498731833148185427775216353719645896014331650557236639600487632464454792165453456989713853492639613115727058977743421352088751750439393034046738371115845770243038447642898128629475918175245276296144703567146684016721250354775984155643162679842532009616012599060699143084924505948331918223364630187239417489810040928202785855003566821739408305542316017350961545518016873737454209915548938632690569940016627442983384767590135839719084893451776179575617164995245761099822388466691423846165926769267762159122000960206833841547530426439451698140621212120373934941277746807269151116554032318687437396571142081220158309028517011725865060350919450675105244312730726314396677333863791394265011823227513966149350304249847378797490912873388331170639741061751972437209024902372706010171723342329234361467919990218361835226619607072061399888647144478763494428034860658210605838714643329756191034903473239226948263989642213289360780920972264509800178719215044824109315934396373731889835634670909564705975208991204191930788764603747518852794184210939021650321963270242820424438935653135562739001878650295797683143171498303245610220873415098664675141139025224679299000606563914557271495321780736420922785012262426515445270866860198145456125177547424217499184200907817122919777289611861271783803344210657567715744084598561466727362896576034968256324907910674790589141970548373072389731062038283473476094415708335654216488155267661012579987015819660458167545457179609217864066571813447403062968767642624603830215462632672089378285801315902225153305924261552025283437304461386800951114482822561633369363117529893617007682830935183388805698084117244608272533270049917175117963360575112869325723582112720610424707239207181458448155272060457224045797327389964849255138615526949594678766199009898268922935229806139729224587071282361429003599952071904800354917324819687076685083399449870458073470140368571362223804132809742164765508631377872161690272562104754839788332282750795067907702970342084166605633042865390616912306689190247460917293196721541477485153056293469897327199104960190679587247722399255044526054176584764303780603527496862472713976993531083173849296408668436557341688833093741866998251020030002864417763917933610222078956826628654897319462448229491222782720299471009843611869815865888130586765810826258660031018957178169785267590320774518152783085702017840225695850476019373322251966542849439162400707074670826240652453738502751515185727882250654654155997986859825201616943513273225254871642187921499116709017061686988625824014702483185980221898753316239224755634548668222943171723586353217031734248330738069385801623153133671193715562388940490802401894077995200240603205410641082374121689036296842860720590292741208682046558374855455351075222178286935057102028155804687045509170996604695840446510958573819605131478657271430358847931855282728045302858943673522696204000579120097442859457095329277605941967439015747167225554179810876482035935907369905454297806281634727305926494515177105668613988576804463641848031660833876002853500030655515803099497112070959624257473316882987305163056270493750995741486575115846197119441521513292296283843902871454350938954124394133873211326088436640966487692452968733654817932133720981176486189086193500448788131288497599441319681086925532495415150988922906016958931318819629628200608344558764093773700611036006292227506664202642767233555145431690612955518496350982128548026908747794369068814579323847729036143567161438995002186864774073863091723765749366961624219753353684200543385914929359898102661670928355050033060892428002995776530412090476354993590405011762363982740569043074691965632123432379985775466668351303485615849349715917025947334134837473684049150784971221747880872285996670446288412168887187937668990844398012816544218805405015899568130314806015260174111470774296587680375062444762556102021133727734887084347021718722531144297615377207041041394416848745877882099704664040923789686036140874517795809258200718301847415552836383900047932440859908048310310590696760057147919770033632520449770471512547602332770220838510760365532039106349232106532371572841607982932117771594220141036552975689265061204155043580441861957350367812081544298145725548421334686364156499639403054575163831577699455545922556612949038500381078007570183567666889278634198807229506898249906741428135710750779826277170790112750371257434473369360791912097910989212989825868043382712731130516533399510997863187505685711403212748673492641567940065813268247519331977945284079373775520553278077242500038211010762510581994950791096445729522747532929887762280097550334814899236883157732065974646468470186063417173070667949671687506650660077397882083159334698785632601837428465514869240242216998829291210932303839557498316247665897185558771189990143943196839336727903452315572516777635568698128548539062699910085192524802605870211908844294384800890774908162558934019772010610010217042379049827514391235863526931005961104695889496591283399639715013722579132456962317670482598293140540764255147815526210346679258505727538075014192420994881517310688321641805433792901432979407530658405582185167134468882668239942169884531342797449448735460684914363102586463725182564754675412507494231622565766086378253795611423278364240044714162391288312171719444787002712064758899388594779213862032994724422553866069085327095083048813939610904298621620736279799451848805329960823752564835476446886945857324726943348805921202216474950208210259749446313614678950949580554536705622692410703773930930744948191671695515897287155909393991590033966563088901028620383758624613848898106231018268783016730728262564821975385323972155530477636932570599941336063728894155469383022867038815575407615136003869391138954161232383497440811033349239631530396058608945622015563233565966936106227288623104801446286104980286438277614207558598751337519892536229106864412601002550233975109140389330593416388888049667694770822177203452264836938115514622899173590253387549908974702490734932452418219875097598176780493382337489766204253604649474752229292585153206772968015827097295757854452663885312843423199453554860201779864735958151470504849736121227109942549798365209172736910433496388400521429895557917685130058720206994682954158469536553923726315151841565033261948673210055894515517633714269423855070582756659879929547979901496388342949825094972277239308799567868138871939367088233041607346913420939263056682375799336862578116223208374900032455404804578946057506712621025366807051404972307726950937632265883935859933651934216952915570519730723641096464563361766524033946419431512312745168930290163093583289632641872819755159207802965074780802086509445645094088322855172905345313793085078094332112451262726742809741558963088475154566531309150042442847866696368132774227119020688580679791644249101773185849599843397322431524091688237298996131615850258578537984674066403250852044945186221766309221411932451738471690807097600615568466140597843546759575731553803841974287293538334788601023642933090146607554788413665058337967236743756325011234137559725236555597934982756709258190447387852807589921686230218004683284845321228306454834123197012547120842360780641660501183229615218908392235433959434422429764683815705507570981035407582348184871002157905097115353707278519803196821166269998151420716814892973369911478080834701146964348771853482545203993830086025738822150683685187428393097092537572509512444577841118575416444103282544217388155002897162825341288535309551093476682144347236831392940054148350805954662834621940984221455112222408500722481530514210188764436774649264704409440216285630372717525819279890179728667981143965552117183423097882755615872395036824911582988490303670742604245169137073839293289112365007582110453490960754119202172376433044635207783613401347385328548334137788631647964809726837686965849965837254018733490058638391564508808762207890358534653251409170185835731257647781175592572321137985187798237152677051415201264668771887425379594952742580228032216037630440642017090880214072512084380576222939351941230459884181121486783781498564168281529350005717178882336565404282366577107029436266455409146837899937928558557722681690582330485050172600714636249552701121438046252838592174365497965290101284846742334587758269234998660739643706091190661263578275864544019181708826451374675556767734241704984494592631471105127376407168860856898633104911343482749841823790594394338135123897577695484431548480811043504693729788003979718836418690470486852506648231396221066746878023248337492573449228256493809890835430747289928104798947961704270489702938037684081965857242783834498838775794116631741969850642954605315562207550231009924163383003090729751982721147723016285059729032051627995058925372957305685467377311496524297192971906155864209208910204346740445048096643715730851401399567872324243505512027402492118305769672239208744805576153952211779913648042271450272970282745811388705752619816607920356244875494947580524369683511591319303238407965859107841090414666241474201799851890553177894530546289236048972187720960943870740115086073198018079443222521563169342166287869225605457692169358455400326112705187695789514622018024632212905677230049895016028414121171162405503025086812546122560049953782335638346951349139315564402478835511860153558461936766331151561613675744387061367156002214654832243756451037501598059872057918993605025410219700186361945099282958162271567337043210221353945378848922931671067433586084567360103168799844073152325357369193096177708784343198432806792962018430925191000957708733345219180369175992408122436317193275622606740395400314683064571156449705399703097857826898971451008697934474042560377504259994555852380336080305930468358913852898613753623726642232439758576403085208618895399549625489998748490880889108003548647375623493560207234115923391456773212169581155421065524673537199506413463549464948266383006093186423289506249128142767602978644403375832391501938927963554282408781380152352970168521952483410630259273130798021707489653244360941956578553704474359952114543795570047764178202350986771923972157917425788862547676707349019861366515939167350858316846297925386132117224869849553867007025678176821653052366053485925505892484004134054327105200399963099829383493546401069280255468210338151596223350979418671056757086701375935118679092228167929896817817520133290443383339879606381364173345275390556208900856800457624715580199689732716270607417374795794316921721602453766080018327137954555841369661786687991028484547841260178820044827342374230864492045998926871675427439098184197763708387994520767812407119570140895735271308276403107720837172990499734018206826276653827545956903331210259870201905860333284321162071084982030207746545125435672364725594730259189441304141281356125378212382267170400373165594979294183777719899201926756691399826855817136638294216998030005481736218229123959820310149014604935892089538911239532106814456972161047213795825074645043027127685073850189721034620413956162229847711140255411278871042965285156154943755068878108751643767769258766760736757299488618233243944144605015752545157672937439051032322445324891033968386952610994491967010810674281410680885947256526444847798127607228331867948875302358297492230701075129603176180281267091830338720718759857034036754836076917590788101524407485301135199391156135909317461680248154038851789599696696314174119881273116534666626306258005960563144111726449562411648177611394018138210531147116517108063486088596933912050644684833501931024542117939576738995308981766832641283013912828251602600236011672628296239552949200457023833868903804785815565833918069532140831256055513400352276513820473673527668891086163449567565937827833638988506386209669142264869034007088353735826211988529663108492008669725653711410567691663906824837841646492558576219024991587261794092573371623760910094663224645970926004633373355285287254411330044362490855010485018995449548821034698369210024324901656633820675552401258255380051209930938307331876038661468530476034635791630841319471201589397005094304551056103637630971893007061715934578122394438803726116613211882772604332441206213157423940437694295992509434690203072231317523577519398113933798266514171546026625124508579072741975539313029868856345310934489715959713395340102264934961988674964645054987569526920011208452811394471823561477830909258320735956611488372570944559326858806084722856468632864501755554911501889414489876921357013049868017813418535366514964368651474827688425188666814681307644793541842557200374955510847210138107162721103903898605933876164174915221280776283808214520777149405468354930681327398442866418116512743209699492378167164035397935309281481391457015860983560779478161983813976662133031812369379523908916565943565664636193177294996907070539807456326084586928420989459470379937040851167467043092535863216302153152105511110598884078863664747977204048643919071050654174377620331306603967719756235948799118308775933131124167787481769122077432037266043751586940710295717652342768541350434768999436287470938544999536371103661871380108015917303945790886648018433540867488394368341899664470442301034428722846964459755622463030501692971778135792373093416792577302470274801978890009918870061066832854626340407705254180735019304939278167242726488877365436773029876032896105378851403456445588105335956373168654335280241772666517910802494537753424122070125658167947123699119939803957950177138422580677189778837627022816540553809307854797467463180015175719006428479481977226284388467702508818799452429757253872919791064832432993764789761953154145093617567919290747530423735826302070169567516269707134925994551403681069697269684242863805517874996127099515591491447312322776797910929214801954435961867423591876117100274587927731328249729926939826471541447262968250301651809976957732536381038864617269290709579389118135437535554789185553470565759515403938674949252726352458693776936480702412016867095371823777140442451424715688476535700254170172357515216541415064401881220643042203451024657141584851600819682410032900534311644729160570631983162601388722288988524723201660558093297432213050167490519835384616848110979029589818049168590040608348118278668529586848431195676808904530350150524575405525226738006078506178916331033536210892065192609086477296949469693534627631061856176411596527516299833729830628620722974422728837874125926987394814126828762523937338173294882959995414657116594536708484339356242253380199664310278654982549622380475306960521584351605683362883341722012519838463782186870453273930006140251762799597987207938004853362965612855378444886403572244857614358862216278391991033460485503840709553747573761364075971609377223726482775124496406875605684418103912303270722675248364354399535052656741178702743759111232367469702228060057237819457203527359756968010946443916098140706341157052532128159937027846136557934058706826308126438067658686699430930687208691277722367558394795247415390702785321361224745288738790428767825085482806274254784308862715043806146987541875437031908482171777261464551444426992776248911343387364621649261842218904341443650650870662600748176072296484232527905692758735412441994833676049512244381500862271665506059313655132812032174695859967378303810766489867583908665100963967460246605390931164612610457548032606980526251004229870605717012867069685550077974629589836335249430411711789108194167229258729248479357292162195185807443990865311649404990672906224172617316890378269062414368676349811677607374936597876714601288128406284821567213365580690825335964320282722788274505630242082987447525664795381012906106387026115581787934157443077173616477351014385147552112139296173410859828305361624214990492155432618743740474737565102631119684555808997458653312691162709579202440447347090937993962640076390524518760954749826104786360060024732398149405190205548873221962967938050231343548080568259183335207845739861416774166903777468060076236141003981483663318905244449270634735641238782392978663761448264006343388318033318488910577551069184943468710313567991130700205289981755607213121630337634682203001303331131943451643809108021935841335928599415590812728157445162036334303369954560309436370864958076658774028699520570254290317716653414615428988251132702318605074144187322568427475888166010230070844938593741499772404147241194538545490957033324848468858423438728826895716840064618467300337672015505776908744247858618680451810355271609429966322168146793469015897868817899628579253662611998052841045847686828173831414887057885875829493091645873534132607835704018252078805422987675599379556732499090720586171977124132583795842784520590992150216690828662172439574367383808709316876331409838971132103624720854358127110742173773285273671922337759043183301266020318497171891439897646501011320963275323139047580981783422773005046857584860527020587325448893312530204494874287326098066414791648462795958621255876838544137453618799833327296820142239961660627467333006393495832849839741973819826457538622806901686992631795951375215325738386494693715919001560744402792224556156027171694578729265000263584854677187067441766401226555113438347101707090183356642099420214369135633408622340457860890906993122798858884969580736428875538191523366290182667899177164292413574422373453447574494426450840758981294117988270697624663849390641345976107844657800423990533773059972068314544052303370047726980533785317366947049680741182611918368614723897838804127783082684655388424649082055349094081282989945298409955942443063825359355315540507161108747182582472124894200943343087507700812167269596995871390621718452708302045714183880450848048658170436474982109869985639418889934911630486338610045855863506920649842821110686311651191645104425463692245832839400199026557217298372640798870916350405409120225789025278364673894682891034668568561965648389385166045712339072983376710657353337931937040251251524406285189478389865879570677009520337603786990400202380099430162455341134465265018552180949279400714139768839604341443029483040956151923905246501698680489841367366402840545506386551473637002134794079903889025013980831622600760914417388215485805264270999720227572763479829394527987231728240013966367465140710417224513227078030025681878891334548371409523444716902387772345532146081146718413068910383637552201716003401367385990212852402798782361562384355764985322392627903724452267563923183313351163204371308982535560007991350098534598041088210270232206539403343707694819090752371832079644544926205216724159440551144062452552936027916998828341583050731103827662724397043112636181991835683296514811462840122853425025230279297975836064568302568361450951777709567135526964521457970144242491651471297196631166617546200322254361444601902169859818389842645598123743338081487267874784998614825121193166227658385370323464931044274231202899881922376808385011130230863089676107996934214255931508890060398197715524931127599715430496927691632030735102786493070011455316682135978853240367623945478743045242650338531269888847621240765727564391967739088507684384844490937756448840333354403222399463409091404321253083911097906752244915287240846227610325571512669206399471085206348050937756856700627828414009910053841799131856181270408851668885638388422294625747915650409699316172551446656228936253262728338291053414206453812281945402173725389533390461466156665056298636801152797886142002128773231211441601963960852382285113958111196955925453497055841259338253070573997440686609013752429784877230343247861465188059404546750244664790499047563762887882640689948557799951634001476792190198187759404472670565879279810318794630202799687908235415222515489613576973892740311760894341772077202389757998107125446127206320474106065370004759826289666692644263865192896539105467186040508084859740026410020424796485746988643232941110835419274178239899578710549091064937196359854520213508788018933353349761167174380293299278306641868170248948131137073518893691793051974306455137950169462114041807251829530727785342962326047855993972922020908805891585416817305004240115284632798488562690464170627906829094230029038382112322912857687685225630165767431886660292645660728845147398975195409485927283488311135748944885618405858860242901908010088865823927600463261586626013214649916461494962970357509870939156761671166172805021353516987098516773772884787225501060566796404676639784761581489026893401845344025299821925833258768933523033556029745294305026714724075023456761353139614626426132363953691626859108605658330480776182791332421901083361068335457201668879854330327692856191893196444478546033945754677962099510291788708449631163512992453399317073867269514006904871170792259250063909221467722262916861324665154102419599757515628214124264491754045097211499711526413406072485162260325482957362958649775357855668935634895068345042638655558083129296100393635008679978693937802731104391215189730911040351089162541017610891379268673049287241114188446349334385758077638360967441750148181781534272379938820633307422396426316547146105796124058799586609829300719173669799164099522861599012230573900208436188139897087790460358511256731106692774579484216739195882941046702071277365733764391594822079440567728891403849483965693070560636592221468960540042911845814191783651088229290670558186919556428798153311756600832768966944113385678898821428038546143880574292169623431981084475966652010828559428387571555203543301853776851238381449895784013775610050913130855961430886880108591813450476712666510859430322172869103270740228558630755792141930958725511728893723781821844837141444421603977125488835519737613382788133498202369772589537933861807242096407472246819811862190718778084404028305045352658165687268715341057717989464511211574620460376201292971282348915895975946893001090212834720021991134026635464284990487260950769072736334395563420382298333595618171913527847075135298009549357508242308401857155205253223765015983987720042359468259473125652236296587104711317347907228716456254677624483759833934037732022562919198176660281884958090457853895828819161879596667834058191772718027719095982714662880588495205104857372752241715754476011265148876816405356503240600113287226808109845596413092449102774108857693795659662989029716845100730051159407001145551973825821338297241482329955996337797142797656810204242638331659480610243078868239279040804665477188207163877056265428164041868964018453703719892897186821847700939260972755069811294035090168174897444757348426441938545991192247226368789078014408503174784644372126604218896218536231817712529945617396120151086559541886234348510816442973267340868349923376914093312883339230799044196257911155924253109526885320093578581446690569352404918138891021809603867517406242162223755974580549392605760841985878782993014119695981117209859017015243410442750636937109618732698864193249053646995018826564906783836271355455418053656756361799048955614135128990034000940658998464681733355962137784458214355919045908173823942394979177923163026524663605067511349224773102107061247813096924435632957844840702336483790013194356361263864056746604030516060333890837213202941081556382649380968192637582511593148798434027078843358134306184526608743578655408619894851701965613284549163464476754386755652298967170333090129600144653689762380205797672334682866201573576058822193811749550382881136602142209608836546191619845245127949517811907527945057394119917927529643963291035367704297231481079498777820528565294555876143112964881889741888434472891530744662741298049205198785208936451434326006662345151023709742348522306946399918623058299512238345782910320410738625451822961198278334453419592272373395060477593483627413706191694464258378021532476671890856000297365510956512117730277632063918274041377495581901049302877807236480322005612177235758620895576632427181697131223332882166427406225666506461563499213601388581845174371396637230694082288987843327516699325757361164289181567690254239482346647259186962979596749775176301281807310192009309510468447643473639139415453723143525821627850659739504982055716118557296873934628890778587201678762202952081626994401110384702446878716778254366521518552563148582453445472769984178028663746837156667402346228036345860048558191793376792303925424503087490885970130606242271514027486436160789863101281318118281193505957036088171613621992755234422542499141022214722029746317934214394486523145063514868122020228192188523493844335544263759432557303490117484164650703036017831678157465281637751222663686931490518902792722248664775341414655411792930696568924863325782896422163792846271375043834931215932899237572219201926731106690187584742849952629376938535319887428155542850865516719552715525831651554847047052284831379918663920256989913520762689333582065584073507393504300364153483717548974113888384255640390433920659683167823062493824682802561817362633727955917572284462750955306112604363106774507810568262241492315830926652580585522458672014224471196221792650778074222048869768731743624675267044607273574990540617611625627283452705611770825665303035633321132214530430235789496236317521217305766419004154518985406921107950503851631243734956938995837722980786185152786757757766968317034238600541392734210608540074420023449620924156175201487718384350329758396930423578747248975477907504346210026432365232723498224975399469237787857356977566654042538220312326545088781109136898949453252114879567984159124713176958693583325213443695941325717883913825230342493696173106666620252312818011105413049732294919699683183440822582264002089859176216360052185632876863706779650199001023851482460009187871561174312253712209283817241223705648564344157572774541651758566493402566110911509106834917894696736183634867363211782785743627269062490463170539976712392143674166260665686051004483155212417424349552899614334906274980447998730510574545171239922513211503230579883539946018638636128519544652114438251719130288942537402774859823587406395551944239176113704567189855428764911964342810690868719261477149136569794152198640457747252494564007597463048852610572693448022893882031109685475791677629546857440936710979577433798366117541110431923097391752363117055093704291961360614561386929252714351936749533754326215281202325943785441076713532922571424341777365094373037879984075413630398794209991134261082827805956650394283661517378543744629017602565682715004159768558001413573608669643502634756123627079021218763071403362243810641781556073706700814135445304932288164836072839376804417396748614650042026150818820741591964005696877232133026498306151390232367281955933452265060467954794900823435917747643869365030531545321574824165211998219417718822038120046032137613878398159101846897778924057281936031785599521702376655768076300439810055740922866727658425152310739526839752676861677127896365721748446488322250326312529215678194309338635959625964481878686337739533392744777253987656329110929234865234438595880225736794439206918131464079799279162844347176628556826806781135338419008158533798268838146089914008931230902729681289457577335034447121791634518584103955448609236938025334481981011067277451969746034979511063923226654215849871588058847389017495966031160232680273945483496244765465370484486194290468902404087991383569118310466726238161533966075292003224045390017796951687583904945152717122341793207398134659818425838956260236173970408596594119859669791867664144022522790020370063905267729740129757832269114990940039171979255390643236871006934437054039472563768648743260463420939280002447903698174787844085547207939535687649910494954705482860120609073420928479312208579013313832074568629460917069196929902656396182065124071803183165177160469926449348118337432129208600186789622389948525234146489076297165556812098621424121665772738135257640019258677788602040705975134522394975944230159846845673582325403700289232013236953900643486421562632241835031824733403034775712984076456641541615085588950351679125885649201433294735100859909986854558090307428298419081712093772471554843408094432327156663784193348475002478184373426729927565069298111369637575008153233963027091002479236894418931945320629606958406278202834182064498486877161524319293121766385535885691254290979189757729031606162170242868943365903763824454259578239329081348115126911875527332489207558454192587356631211186272086930531105638380106815002497371605896145826489245366672635223830954683533075252265562495296494230642509405973712110560240860301912566887575695490648291558874742179900112144926201502787278936367121851856706246125032304596538464137508887841313013545863281108056150640698859141805512633992918813847534815779300847858062307993091996813942369674753629015507998998430556088665109723468864103447751447581188637060740364180169886156944697284498908172493004427689520629262736871349743656848220785317216411675130067650529239952047512793940535436781679109871760312139761532262928229131544387791348427609820151738694350076941631503644315626566472402861023594524075187823771827407328177545350831740076306725271248578002487788493768929894727821533035384461489089860798425943444390873285643051316763363864281779191553857764327161199513371565880128633637739559616865583140705011415864844835994919508009963936394073534142669996492641175030110345988757856626726236875345427643903700153637271302144129077680012076502404310837483020404048577271736509210302491663909344932653100175377164075537599773787908945039916407029531077711145513586819412412879441294066412185171277320936330157920859903394749664663087287067474631066810767112914736150601274736220353336691441505113430355308855921556740810236123828499055547589378322899623801660268145688123395538274661132606806146528049954181018860883787910207243003021185174849120154755348013680636702364826857797743442533207364109866836729590766451797931723541374188950888318018054465199968891985261081781562754192013732100510347652616876514461869419246217580183478626393552591064199278369770089868911245773030570439029578440149441799250675646771605332480437672885591561927413198638138742408867702263909820713394965515164117942345971853515384232740348381194236846432818363069122577422490531291421748628211501520823391008760727481361683023186403687824469552746858697078988938329761045496661228999047885794829603700987547971739525908979452901754143141812623900035547303100042383881285438664295876953974914563482885025387968180002843895581934370221151570120233358424591925717190313951088999235039502474736275101068220354805916233138049040269734024892258561532589548297930226770059453407923423562154746798342375911690899733797125398661386950664191327304301104084775082119986126524898979341345407156804465671976633981755038805973043068860907185287157174975744948020624307906945697956752910504298416647885793513844122730461376019550478549463233501138683532453425021991519737262602383263646486777479644561605251794509689339706863403418183542672074826659448362406767285884260992145327258445710968886334345634367970663881679575974807981518533140141848213033399035237132681818061459297920914609175912652741773923979786054449452514795342126147767923966387636611773154214976647800262476688405683523778854530862589769885434713048930111610290414336415310501772371490593720518908399268564163087806252068671028384237247674926392521408647054137992485274498523099356559241701552628699288138763520903993053857498839512346041393866658017817506786341048744536844352841457541380109030257628883403350114925426446483400488148024595839899179043131796069196347962178851158881003160316732232576481260967689390537421559171712747639572188674642422265123107620847263327997460785890705658048051159156034301347927448661300450094270641910702206320849614329894800408961175246642430740643870564810799853703854579415120653638298828976134739215528086904907634034166515896848111827170282759976648692198708046788065596927326578255977504214975074160756965634690455974383744024822618954790259445177516340599535604079383200969087338744286086656370142073399876001735328517660615896459079129688801894662487956650418070893585760339911813756721834052182861329292206586131795612818636817897400124542914981139603835556414140004357412348018238364445474289581970246717118083563547951636260294503724229775300703471755565470787179996201043545181015969031052807722226977804513717633511315622552184407683271274849400808166048811282813575828931338266307791248227439310482567403610104549852273642997181611230900231152693350162854718797982877058435119123856172586220268976642688842209219119778069466275498015857829605631275479996257134734270111645021438509311466964521895755801600365295703709272390847312497157260084414580164884937528651106669934617221622654283629030143047009273236536915964556363802756305556086376296567000922359224790601924161242356694084846171308693650568557306936824986609169567137886030213101940170704657855784983316214388376451197201727747830565069788527902111773795303960299928885792169682167914147815381877260550797146447732965008621992073947972905343821323868350651116971909066609826089626870120029439668832812004907427019267343681355843878955193750446391540469510963474908890190579003711096134271583455111114349904849129883029281258316558373054735024922463471384008371029494942198147750928880817288604049969325355139165594190962025286128381846541407138884885033986955348429179785591833942466528000089530439099990261758187668861924488938925234660891519932648423189009029108240105402710731885022730163092554159055289838433976340049830427533912944660411915332754949211856547135042829636216260843474265876803437962941720905383417057926444669611715345744158475572269296946811526484525569480452086102834622973425330670976355622350273236419589235646907657656539183610758563462545478735237218611872301576672635978559906231902510199641717925317926215782933026095096353901624818025893740062661746990127106948814476088595379436905457178068218958486886904471573605139338909516898531053846666549910205048905397823150700980575778909770758587634115866501059718731804238416960858284618464091433329373299241078189147674349177429668891206250135385083128185311600065000707017645910919323792345121133442583053490331610356479557470507084306407022884439314708389167832294166176822485211850837343076730401565384758478482506468207603332525479281965241346084250142709084637699575805802680541030284994222991217574324745990351422190966636681650483029911837312000711325521158380636956154351373382209788270650252987656081540637019139339928832712238737453474111030808349720809368101622841308879338375769207040345316198965391142409461438947369693584891555658155533070136135344249362331634313560163548537369622748776234333692729751079842644528669238110704062898528002812151074403442995475947561869059435165490551594107457371163778631308892916232639077679970856430025191940673232405217614701638443494697653651390944177646127044712537365670588326957175660514481559717610486287819644705689881657945009225662496861851613118124724148279778581175986153612814304112087457537362406864295330169332779077075524073573196874617678350387982793318263450735782702829518589534261744333079328933530425419605645398739828344259139208564159689047467716695999530357013766693502156791794475062435397380612035110600825149092731958340054695852564636658144109719966787249715507150995073784856352576639824831736569075251225426217758996113476311913686647869937631796849516038244804090697388651775073678969518981854185013136885624543131155353058521714172402724291267253379253047048193961868449875444923408618146421518147734640558303402749425939911764681444862420272302610748266707979596602216642025026613988867344472378823207750037906020731991523465374229525861862023429100663312258042871604678397647518459508331130351665498330517525242590751315917776830160566008884138744860826570028281693589691528686368942485978571136906122349150129365999954293380687047326099523057206603679633434712377216220449136969378160947617017639853547068681614698534693657505114113520241449242610298053798602077653396496041642216386303374583021110830765469149367951153659385448370647372764870180769057251963584028319670994776244733876293111440584506797026017080329652892226770080150574244266776986098029915541203118100780905384918703359717726814751699142770336428197785038154641312835409451779131646664615128574922808167990158509583341104622592705538420571543772446152781289319313762212654997824660165747855162432264510271646474554564591473972102239425014704382196096180648020198926684449320884034608631391771366643959846895501333888182013499799647999036504465399873457156060015502390500278533495107208066340006649823488970743447703742307477632992522386925189515212855012060672779004794989087812535821818547150216910729787247368834473044987138889483718379078067425579982694383032975732837106979022412200769720588655874937651143031159514319578893520804605991627232245392427222940554860514366463280702456243640197798679445840064291136240801403376672226221752956559271447007784048309517453888986809905685887042455103150475724074561356072369733603454430619559783584049278666975236917655113612526403396507225148531877844789869184949274117176485116346639654893666075881691631350246949899330581530073152299473074809009700685036012115894550642293910453748706892174759411167622934065041072584965309218735216912278110341004840500452300091011576031448431947576719788595340721183393333021381401215855824175121294172289625797939537525101240256129236216058106749525153870623663636024682875079407458056635572425461118996788198082998454591529867773581610241593554450730859793289581031390991685925384111444792118382312065068362052593871697618720083535961034569647164843232256052629055795302498567056895319932025604291158542669967516079278418235339320858954859379897183231590909086836509310336472018684738239736562313937404993572790641594960287477759249609104320182850453463722001087139945823815766184526743684898752073438815578516002491054313028803846956017756555465916289672234843501713135112080961351317251835366371405779854873342346246329678138192545347192313742160720054520016819860320418444335773204745125614508850800781637062207256294110770545661835406299395840305833013227045916366733125327056583535599924705963819899612775568625941801913422486354162931515110792409352007487362586723864427188499794116440373499641367762474666959978136758739214296841761883912234082019267060222199309255490039428812157911141670817172287004902605650411968966753429693137058770106501453188393775760405145482467504437533239476008305331724507449341335707278411926620472283211798004101726554195796702695652541632329064430798275538640671377842182489365156885324762363919548634691633951497449976299237509000527808273209188353624400929246375253240172659460913412015508274618537331260670553120076921005904215988504662530223871641427670131049097235301284712150565542329575292209230504327952744507918603707453403501724474229202280335515765914204244968693505926203727767475229948840061678352912697333145962902054961404500086344075230263888036154481481281179445378922033847144689961144968457593675712040313500068694403230440971097835380596733925207797582700565177525669529620867016144266444374708335426222417406324458789920175687537536022097748896286886456434657624658527648617203814318779752531872588306425428247167790964783827153980610447998507655824672671633018269038223901662258987103250226780570233390444092641697508921198328080193515041545665066396107434271023227099825175528723802316628904303353850775702619114352888121174431550903805831470746748048699901296060788658109099532097401535761521850339150692894530950261943813137081291895194859370469134161618939285538580534365040406190593874383234332110240981130616093909231446314324895932767112082193829454338648551077862264737135294889563230828027554028211654940360263506633970959233456271639186861695225823967013783409799404439797568673144544681469909792215698753778264946623571121058109585545811014953504186427535306969136140520667688637623781089444937985808925447362686759248375174010245600388527405729463124652104110692743081027459004465426779956289800625432671980787748280747273861342520336334825930127416041976645799886253790493874982166566482737292817279784635406958670248382999118124830445734268758402547729720574701163081000902402232120583680713484068147398579139292076521206350277259569915376568469895429223387905426150724340009965365643495956229309215226806492845865693745449583959561586169336195029978754457943800113214938850244609772310401365433958694909376035868774437410128253517042931408511597500632432602867729502770110675151956126690753194965857598400586725478040637014370315111469494066561620747559073755178175147331517167349489507012048644808634710006766519497221535964319326956933637350892700461271435519590522355895336186624465867907031596147569487719787116035274974591163021568797410360307817789665573262437112660183573553934544192200935202977885727717757748553939661463598166695862424846608567343760527003159449657906658467290595715085683626954446311729305796363304912628920121791576941877166101681339391136387743358659229366568027036143200785153314189892470990103746626123498185803205556995289915161659290330202862138321421646775182874848557159620907555926848141796427441762555198965122978993490564524207663622365020047068043610708832790807069601487863690758407597304818210360790429344318184078403476437136363763652238956424675091606590752847502322604767259991128822756597360785062019873969479616804832467438910514659729981842570761738591142183211889069715190935820975933703443492151669108157579266187209736337500490138690309967566629648635283871253864566312173688967328716908120915339744256395686537928574417142085244258293334828428810216027635691296735858679386054485811171674935487311699544648940918582864363301909295062941121483241166301622773956712001241307041030805982864875762214615481809829147962429070410779517552661208458627419439451362408135786834366572765421391313992794498813766410757197355782297589935995925263368187931864489603604799746795263434159335701854124991438869881531543145830072774316240114328863833884781073365567921365938677560763771143195667965586519680979533588773763376228158999517852350482606858648492125183760957029999920437695191503073707047655902827680923621309180175351307059401269067648874992059475626040055730497941760307224552401082686063001597568205866051725394541950122190610317089065729250860426887277734440492971705726503321112554446473200137581889972126833425437469333931857962327379927081248348177527706381626462000752471414787945839098217815523238847282499061913959589131907733831573584657841133942166928044740638603257812024845090736790044502833064209022052632659602787575933096728219907734535476993707921599474542604303536824057956721305694542265637120701502539363064784978618114233751624147700636916267981794846489409039881993409047169658105880581703123021695492008505966471386680776653529128342756813194181456529285789228416095930809595203580210085602631648203152010841676268835668564934660554954534775674986203272186540279489926874704252732322854393292545837194007551266971928780607994777462822163877123514172919265885691739380435269399105902910290403036687509844147525300716683574836477987033436416707698934190316295424776904586272847186538037894299786775676852851858775479040851146577495935973449509662221199453874927082536806378621199449188291703977773524055566474905663075958820950647016981240449960692349722434468491310121578631222936385955990024329672303331134490023099844433214584049748976957809813550916810419959647620268238685795792691519591814427734111715086172710013560577508993783628223783480677595185714379683927316165388563106599052289052354587182280581579472734244092959668176468972434864051027379870421199950287233552027838587058919695049553129904912454351802702521513262963625139958997555383633767149598507992702416434470114094870919004948458742810186664211220040722604680785744015370909933958494073455029950518247537339382254314782398047265969489069212155861566620169557388567142984665028410305407363442185062633925119846738044673233160680404101505096846127906096229702183830850474500662520637512554134359753174341032018092802462087600914116649154329104522757844129846065793872409228756013349427883976789274813658487683546743160402197728104585212124152948046452678414722093932172973829546707536466338373895159761376139555548474736450597465015280892641286469869510429346427026506777291160472669069497866657057720924148235661518104916406437975299431338546539987572557775216863726622480562463662324826185243791550474896718627880855582455005280827967437067729734350238118985631572207305934505886876918427768575591550114613671594837494426936081543668108291156841534645547880828905988056635394021139183500235064713604164561413407285462715682956109383082443161283549942144906514835760143245548803006490770712630390931469689263475884194651609423928362071753075518755630181313748882672584631987193284898978368104514471535608959202258539412050470547710118701942955198150808814220902221135465396785075662289728431994663670659662452933072415184951543889282256789283766375488219837793269294706575710039265703557653592156083636390597816534573443237808028888980538196958185265282929577171042562065063640254743711703029923543007812825891538478260440113939102205512742863787417811527829232076763714607043346814324225538496361503924403413855410390465969205017791825538438552155321925937889314745393633974669087363930536483879956702356769535557038582574939858827059447709880380556220812033542812902046486770693701189514360756236317377530881169495164877435633074998961963930348142680882296274076715861120791169590184822963463015710122031840562980179765215172935104498353879012241767849752543391318217084248508926434049971672569169388390108628028501347457713707871740036535083610223398240607603470445699849540548047434814344851807017196821162161532312862990113043303804812886979007073963017957807727874342111239144990517083924497446653016011166113605556295684216759264437075669752017568601257382371839504465598060933813930750554190986226061048676646989410538417008378342065513122855872345734011274248757691421602191909683555630362513009592404653204060994086088835058422704214341631778271841701183815792017044671887556342110882733444045872340332081608496341322730981841315160134183797685144661040598784532126547910182339951990422434279734102407255120122939109294383532406028429485102765318156895992651742541266628696589567198468511245948049713277157377773450031259105126365334701536363951023875513347270313146445777379889957288439467144252532106773599984253649102313332496685508989965010458173805578996987498947700939281186197357451767441572123076757929748976724837921913057937114382622392914394092055302955026457387708094921150558593609248717047487643170718681428309191744452522646025141110989398707728829008206255354079079410243499746887923870915590674716131373528416972334723668295855406938123913374906241993134233169553895319291378466611938467015952090429381740564124407290102920818756276110941756659334452282452605735776047376909373506108883834508533138890810551708340494761157342918886687168309640689511709570923032530065935053611254047475433766063294997679603521975775753925258442087826556765001154207541350328087773587604475963055830542325852536683628520439712416009934275577524141234280988863404529127820986242668875775134417797818544998263681481570806072914557815180575475208121184457736088631899698268844778227674058526908253245679524641384743121846911648551501576709109504166614977598890058180875395782892436003125695122123183534857112089341509226915933097486054376701604634187482053162281793935893330850228285467798440470082365205044981935173141253339597237633571654021375445701027728850970783704734217994386131932587883146107396313228921690145396760588513353892057327336298941350426670793142771155077835658613835822077524884226701352652024302625037411138678596348395869386982097629066146544797977567592527503048398049588759987263530812135877869880004846948160604326476079083819783903035772053185900551634952642910173848736850601653882081284377596171159098863225060093698858586512079111349273298950829648659488274652185428355139219957733977657017650726829943558685876502762587974906950485664237822346069247602908502229651694361393741628693707957929841579107944199892427113606906461251537251832107560174137752088073087274604009567755276322204354789169987340023661217889622503721560347691893747680854625184907789098706959014479049787841898361846212479696823691952281334588574275023992659625200387222018124350161568085684874300003485294565470441952858967172328896720608077058174062108868494522081451994730935613286410635062167887497357366963949520511513256947103363131055414796307133536574196641734284444206892589093749720843966402338295740177721365949417238823782578654456379462961565861855458701906632719859493909624778488900602554245288536514137843263771792247589759199106685716571017590867516727735330024744577838595014573051270650842210499626768226205331505563764420712023713634998192397168392839092326692046517068217013157512006849375160000455451924429263760383902512786582845593834135019377223475617930689578633921950572102859136311625994533302776385761815538189982267904360759440985374201266808173550120253727069752611984115694922285860808533788061258926622189029144638145412208141361102042730746607359901940084022697469983256529293124145935292910815390543400140016410085817095800438145708829478906525987347645830950652635891092286326852339984543667774351765666114487750552084160013354815512794263024729391983282751268329115948832801472074460581812977851205115220074521034735029189582737477484272127627838278967330617855844532028773905379183187363088251770825924583398053833624400140960743907509874548818902784803641558976888439156712302275919335599565902688443685312555266663818579741696324037409807422925491059314450638877292062753371548423731117297436729312404148733916051281430156880729556854685342825863094065933614177175382462597031018400790756640301906346456154845261904765121222839369510176181215941483752569419443978054997466048826910761685002370284357168301178605473689122754048619689072665691364978405807169967982990991188216670832829911798759116042994976833436290837110395745767699888702784435684926220331121075627616668075944526884400088746027718685863620609141690707005920767692160338540782632544369234197371172490933521378699393035583004890849515092948178867789970251861179681239489227139906110522803399964110646346258532152594361468843059229572992108354468232224416363145141193126192389654833618910904778376729119596246478510645471772012849710998468308017453290806856232283281175449124822889392538760895171922947589616611308679180130179602592925319633745593086838729112868866812916624189956794836212167740731402030569910863680793741330847259177083165281501868667593216740964627992965897139086052371497956228871064260902282641654438254965698150361992840962240342199948338309770145139682570969853071506470995424146224051445745415629515856226218549883456583898508947797974393652324041933926904669983725361601031951484270548593164909893812370503872835633056737204166006256923150904835170962957154871872018374235655310886413666872377278830500009294871013797149145092411595030333966350734491737000353950965677597227387921241120604550373789537322834544746367395409020605456521435774788792873476736347039260999249584441238943287146543801007967872937745967041247190851583479436577196745219904211096282395004392904692772393367131040339884551648718331720870414851090133881336232199536746250993192214000610306343689117539098247486717002396284788360530006221225309177546959135754216288200139587414050460818316483618539016210441423259746105311576816587346619290036156966840976162504896385900022109481971180359042541877586857075632771238853415795049401374413421540681991476595785901001471356251730615722272245980569633294401728012721233595111346635812162392540658065854212384902509948478243516573573947886701716622487909661799174040755520718491527062208646086213688066349240241424747820646377933662228599926888551005129517852096490114095075846836274517721228674682477246644119190041641460232122729886449679661873641819235238806073103075247706923758082916033841971477094357643699610618660683893904292875892840498669849882120893106658156457798655021006347214413804607615776432769287667178680148386888767051790438251970190815475695787525560519175499392578426038530233316701702965748819604537283302168720140144305001382489692236896882440438557501839836694563028439470594639832720099037375350636355610208966767016498079398859945266502833812361179693699855081106327067261280742007412381767832070390877471724016903461624608810542032407648144039634345565272617280538760617178523785023148178685021812590522519397631274113029742574593292167287528698360187326765367193386175468794896784384175527075855830376904146963272467016885950071962498514946597204735898364772392209346928559032435919890758523080889481134259006980325519129195543518200113575589738690763282596277277689370632879510888893059729008736435074857800096136793392343737270012546848481032808356086714472440720546044258356969928328000756537453735520966923380012965168919432448169571941059975683951066140623146616073577384548657463398524068786091029815841058090792229295458994396004083869308225374842188349995018566023394060990671867484638979879865199936464814713962184951526119716017571259177092621711589514853954423925166368196622177867314936779025288659359711306006600796605935634081023850839819292835032375499139758269958087515839919706109910366312261235318109743578192043133976491189338785035117333529693370372206583159418314526839265275053726228849252589501401806211032099090660091521656681644217100607039836198273692743961071916893962779966300687031183680346891062226374133335106391603936514692152405369663312154865071716821701784748268004279125217123318414882952758574917084361872035669809323903344669581242599770478047578291209476810049288305795424563605532151736806632322380877071970470427805688255336325218115746479738183728202775810559690406794259134453172390543057291573966193591893379967260078671457694496820228145518094749426068438059955305597973012547324883715444561061260575098420391733367950683256213183996759175625789646516772795203038719994998069103437927509114890037904079734533984212487885882644433924763994683114885924339094181258755178599267245356430957427658109950545344951298307037676865050337759600378837702430288021294118130864456811008058107215853393746409225067627446996255975468191572651204741639560421384745740389735942506657296692776699894216166789346578970265792537770187275361536196698996719270686139441069513688554643389968218891734365668011118557424746328413330629185121332481750984440899234172572402437116755288747190474764449693023128983019323360140479482363708488013597166333393561545119575453763861147821518994354615563531580283527875648689179391656880004987145921046368475582415930035527092489054226324712891259391235773686618858299471296919964996541275380643372747553790668204266709883903923733608363175942022107766740215786470291250465776512550441059316008879538503137809248790587849464108730393297040209303931888126895468283696745276304586795292885141345948398255621850943745861828295699793359393943197401745095631299635731738919014021063418738306547801159863083442673897681411646620362452207078439931321875198221276828762952898573020847249376741099768010519809077617987971104166871393330931703303158746152252558242554690361138182656756117925690921294557915007069450548481631746089953174067554083201652730794954316385531813121297787870290781064616084687396382628510738823114546381280076496127593840959924239419780045609923558304021554789970344927777669899165153944718208620289691754736594513541147267531878869132731029884681047170923099362534558725573580324618860415358432616758761209512479934551336808114808810965920785981285668908004917587815387061476373970547469345192236876861084003591038142009434276544168333173411449527558574210808112217698114706670483546032317692396488927236625626773828039492329123934804788541152173790594559986636756212669774691281686591303454301426251402129623702606343398435705811781367812282541583841353682361846856883487965941024042631208585865168671296149105781036298289438051682601079513289837397400652888467092235085649634906967765031241365225501121585121881458061014138015674376764653616213316725904179698650962193897585413177051565871524995162036324874576730209699488302517332182396925245265764751436957353498804770954574369694795146933882135525259689956225685929212381852839908098455753518236651241477590618950260067787933181748561910177769343572689594110157908561100218607246381521078475299301088409405713393708268821468427835246007154328410002372927651387001355520932301306518169929703818913444328734392895317768517243159197673201586125807829189694008842881399453944154861728748394935317272277916319427508072479403654038197883281843160610939592185576278304090850557439703826983877189186982518902054804219978035093325081479262164536059552986134853544564281441709338541399178674621427256836220056991918959529564994025437364570882361824658015306030864811318370379750918771984723911638924473514382303061284722488004159764496155269336970715538217483274477582385840067238206131700184850113397547004934346186665637554954165054601276258183512259980284203863335674958012956124642288179268232966736953123901940906966523422453818579639470280742532207386456596825127693214329858446999424888828462755611979379823128685301077042297383074661864062507318504558825308798841916531881215862256629443278718209200988787939360298850836536602279379846937771465915494340425759739690149192003620516728617541048913420594103320075563737034344615605225647512131885785881198707866334888437011402784615490120566469039263046089126576635546336976307617281044905877640086476756145044543253695339862959232149563611027439045520321092770464374197723880595560194732426404447547724758676963560239679958540635768380318969657981498345858262290583484149558518012141770530485326153274056851338819095368526760554924069661878440319604109906388962480920485317420147910347801822644952701956861301517688012988076649931079042969887850209906378257659175231052762621855725957192842028972314486029867116579948042227622462485475500673785163123385796999551049250153463968264359432402697520277770890880754075822165037986940034814448930960748309733129145325115533987266907451823652224438879802230690918306986704700626890221469035816297060459801489020269919470624684469559578684676489014836227933740038674563543519019405108729127409985527515234116148400883884653993906750024252210095994979910862248654427533616953676199734564905735135735688485397232160982547661927259043462750528128989316235410755464089765522568328475226313695488662409822648259716809786683515705571688118840493569683707401122680279748218267763512827528752690873849637791525557029357331246593586331760846344193892110028544735495058175027391562975977917406535848329343760949110852065572610827073882777199125158277569825791667620576097454859806254684912821421969467046068377851487885233364346538442727626392743123094086315113518525645083407875632385447344105356503228495297168061770460949176050177466203566905390493135201150061347973719748625488833129478812978089546404328908371250096335268233395433308895940218397891640289182389016063877481152651439459695859391494034286794374739770252952974812586200460301770022081077258798175835585003844380954534470175368570906075204326432126268625131391379957111113015105915041348086445212547582892765995059104886712649964795592209243891481078733236645311825752097036876525223162510709418049038062531268988958744812424804612201984715220300366799962507055748603650366812253162389567683595994723023797287501645682363179990803080777753508067147644377263183776681005897322315207534888965213342338023623416699344120554098375066973778616735008770266848488678292120072370616442698825226322103472359364556427662318085673381905970514662754748251325728582810756845745093040409692695105265994586569818443311049188536108108093771488782749047054856818647760585420978690323844189869476017471315726594091702227139497327950976885261782972612220062950762058073945012724551207808103301646738165264937556179958717032913744509398198542959787842779421871785239882296589007907063396261279768865477825325251518051224839115274340843183516748219544196018073655107808878163934737779712577207381253420328790256417976850900000346945666142661973130390214591833704812103552730966249816321822917105469639592247029513134114170451107968629854390442767117596651787495542736958191229138724786613455366290024533358164232007157524006202364458460866840997916705048514100651365491010083143021064890773265085633068858714535291974930835940923927159935482821472702159407522396011485370122243667893547810755546678067351230702627985063875772552536624310617127734656580774667564014125490312851995477516402400288293626293696466150519395938543632615546987618785160877487963755949489290018706850147584837768826805286830646441491192978242120038153445800395555179426924418023786389985742813153916530733628410451983952645287538884480745084093508100580815658420412960309761633120922320774405388587417002423612704409766774470640637044251299083055952480017742978912745572856307174655743043067163783788751083331844669216452189968729945329091052750964007708934633254487984886082455179823630769266610464164713834510862677022395934533018614371448601222028489759499558719910768795179143397795025185201132471731378414182543564767259086859113934760664431048431715204889730971313674399011825352015666114375631163850559929308922432171403069949641395742672681239115561741323638861795610982063283789061433467121735764601838274451040697183591553961268439442827673104114301690685254373679359654141788693709226213641969177369857605485915895066543857568788693917088729179936928132739041123462696620685607707121245472849946199727219328047270198477258894467266539397560556871897419144423765411856692628199648765316952433133084566699320038145260101927271655646020312110469026294501592372725388813546026204425309459422782174396410751326776146899640766553255025005287012654722459074484325687804460567555479653051608082560900097586989559796272047460875955481213948303868115394954172817082825904986962337860299214618076042061703647971485852169349017081000017244770426117484845996848155980239025009252927425344106480508236433325314999081737411759639110835071358644420400393545882698429355599647300378023089967017430751154675004264332596324277515426813899596911734117123907023302970992356027058238656867342184425471289435834322309543259753493109676174025205466757412165596798365539548355058389944569712280922930693542395960760886721398956946283951078371459530079189372827437000878038111339530564445543428654842289426207809006587486604716836989846903513129130884515299983151087841287985071438171883882191348099800050492244438307753728255260493819582999154428420264031720047027684877175914662268005352883850674231545217034512981433924485159146579438395213601415492102675702348421574217457862992431677648779966221163938400003280994467508211629096470162839859999652093178832523511809054972816646839264201496074846002198426304081840748957411855289834800274689655517168057952176845192089587185025208377993141783283608223071513091926561552323601807505779147240054965305692322864503901916234521036309293331967336253696763769903511653613113838458629632370837395047761773240420562764863062246010244621345151906689235502145915259837315020879537156763278859638442016612757229829473366688719748400398513439836023209849354061331375154141784389206844574535423416151402160335229346499800356537388170421951812739255646994447177798469415701973810174662550690629706917834655564058607592161874050774054675920136974159912038288366965403610015555354850629198612100284512640290112381535520850276533817197151871360248853965287984914361765807311393950681289055571243603814405288968106963685963896832755772944347554223871206248187528669687022334670184954349682472647700364897082911236231088225165720554214576181194717277198535690065785347779617423923800275014647785348506975307850198852626136291277860343775752583354220998549562500500163345321563294569641819647037660176257306138890488178048784497366799122079665340957873891421239750724519151849116573728238866262277271965155550787356634868883236828663900672928034904236603521072905204165785191524842613694821373720939731264588128112011618201676478327749942948340794138269837502275491487419542223519053803470653710104524350627455085097426266484808793098532182827828479971254255170956581588216612821663278178355555128532930307245917340365933754410678406711684979082442193198105201563861745414443299228917578835049228752793617712956030430369466185105595054289693561708828757527164685682829241424535488664780388745806743299150164150708815775849124361327560118133412977206025950227887548190736937138744856331970260665437642213050597739676383149694755726355645134213021947875876144280287434716851065406318289304218426703509278709014600923487135082664896663983761075711231035977201590638133766507793354925393580373428345390992970786095162596988624148757371176682122458364834111862023650190284629234033305125225538069452930348193188942340254503375044072903916286026982943425968162638324972188195371141417497284447883253284707051798886137217473807299692015832949699839817816247847178216672142454013068035222599341407729640334582597902956555424935994354948658771316377553717488270602914726727160833301016513470074948064187219716959646433331268622721901323436252535038559223393465938653684882813765904895529598935737894035700773381974855788949478006158918365048767994474787142393792350994400260342304618138757083398209034653616858170264181434391899211593634863305964090929404138560507964119375844934453342932225268174636893699693959348974328635920253905847326152157140812008205353054352127059436628921493181692000586754024094147984340964995337148493524265807156561799078376536726717361646510718649777463654645801570131691191479710000627100752823908567419245703572621725799168105860315226159894690026771428681715506817341102448046365578319852519664986650007957662776444792241697282729340306866755230116661653044849543461049087752122516605739092725537115772456779292294594605758193090003226284331972695399132473468872959109881212202115444631964427758158913470655904610920248572468858115317701832275769529744560251014913259097049175202487360821078760987482357922286321977147311328254916428362187602318644967106643815009727513011479500858860206057736405419496223576230534729687854112852280805374290481699527083695609988263657862995084587222643919352584388677249769671687172936535484303296320598347977400213137933375014657934013477276126401687877624075348554695379419116730626140985757078266029734620704570095623950656095673887300326766173823246103912261572633049438974464017341574960140884196353840399937984117707084172145166138892253907855129741889104312906734517075724478787392224007308786178931419630219216247867583595571341587793735516194724480091041452775320012363036872043274844111620966797253337452928658981311261760348392237273275539764338223283781353541079927291640014154753848956289093186943064469099140587202845434748868511888848241630665078887826767139599005686666037194061791408471872663180800312387023334383490929190333081892421496142997940023534651466649257960876765967649895774880481706514819692026860203041257336891197133618897619633806732676909287957197817249612401075505980368699144607100094995468461543242949017549080387483942257031578102201726129981967211545940589076820773654939937940921450933531439387112636850114252156912878650989985644784179143546573223843796508087112782880841964751938207668967986281635360508315914181850301396858980877609163761916088752906439454778493227426019343634463690092015475360760705071342119241660977391203001856887244809869721047530816544080114774381919536966785125732834627063425762904159786810588182455289836042503800459291460770256092104226761897969977466767236794012814860866184334569546966448575269143877881517656033496186597669917525058804947145016966117429825492340050695299293364558746965134661156443696007401395571220252649200818022141057090092685828828371523866779130081696859064471520223407821323786532469147648667056822460664898904315290367072458445072512450299792778219876148206733568286934983434877698496385805686818696511866045395892041176275560820559712896913048883799252023891261601202952907159498743867690768731804911844945021301964528360477757299041450138261146777754346009129939212421624794825451182217474714252504916437183080918033256728773888081730666819112798997243467161349719240821341541712799475502371666214235085593139491842019847760790108804810480114327451677053791276254034169094554736071141213357663053567913402725427372337747194466647461429355637658954274304014081811739875704079329983671821563930147104213740865110162437094317947603804252560199913569354840383229472501877466689111798809429182733658606297511624725521432102908033109614257743979280283622498009219526076373419684426310119190180393786919074755840833070254340667422215870441333884917197659196733881958309186270156523726490163356770860861634546923108506067453528333903765261663309616443927782826807395924387332958446751264280587195862034204825403674540994815464067703867665082012383696639038209469687577757800941156955084442905938750477101574973980248090971348303416999659188336385918665814218585869077764166859771069432318000263891842048921396407417794829392129545297736428525019592198908993056773875730013307542076778743508276688153731480189531461081911313780653245985847017757912985710403292817432847225126534396074013364413693250724450132221441951297305617817141648795017803944678532222624458413292573570349311769443402237308541298271510956836344094046065597434235356776138714020016030057700799079153665304992449373482545496929226773029266828169929020042314459227936067961297676530843290200021086000169436621237439244527331348468446761983683412003299830543780374804330455460003209581220365418729168288482665667143881809240824308442240858439701870177342303049452844543023231696158720640790901518177558927166899828587754891686234252169946215771266968499929727224437200090542169327264727480410263147527822119883376591538337868582960369239071045775085138059840660085861801210557253934019341421910822529026444384696375812879472973390484946189515436119496405609464731779899288830810288496011190633481985906756732985855259566135683703445435499051408685187522399650010938337871759527948806968879124297181515014762880119239684213663415592454679255377517839707738381189580806889739967464088911397069283182286881008419070478740412973637331802796468079064629604811300240813345794960902007285701169108732690357009256371795764383016105145610544760756191763462276029970356940883959147733632848703601285813665845835552245405940030827041134323084722577842093294441744466081063958351022946849384000713234203701436015830570762994914356333363345476064745855635744853995005561241664227165607430329588942859713153943280027323951508195445536001739167463608062725123994704321983210929278895305183719851721272228262177259420595922446925465081165998400989543503293298894971436514097094079306765749775478869159945278660317880513689414458049123955930538241117159750273553747316878136912319721152729962618665849510739304546888414643371788437913335290663767135238862335284407986493886430401561634010697896702974357723474857083289091497841698653064409997637282439718815470114794938992958329545403675005279194624814515419195592643486290677816450756199966940632967075099992321904346685967533960842919021200843626312220000060659043775306738870632426634613240887630854315843574372160214608401267516664639615401162051808871678713753532665032488013868102533902067334849561510059326420760047179223631604093539582720832722256526564806854704007718772584408117374910286976444330406874598576888711333200388590298906990717362521435403813607893712135560779817565351495262853677401354337731414448933399478244632467333853502819173613558859762424077671607121915347898235537130636805931947060148123395092022799462860556026617278556303824366424950701042898962056724800850994046294019123542337791636775677605045736613344790100449448726958413391790331568012053183773641032186592838014235952564418293845099674654676193105384412529149219134547634468636604266248041470021295708428839103371297485131303594718625666611431103410233175051842301395509247912109101856507385748812613334980782261889346783974261633977209357340522435573670079323397278875535029846804490348951062906067988813779446390245866475994903800930548781508118934505202374131361261742750442535158761365528559372850695491515014839621641868216407732362791308749825360483894171466217792281690209560529447642484194735817468327661442907569547805483051327445084645016076181161429310203832921716588217482760418821364053462273405150939188490811246428271081865300640541458530138514574511015090235683003822465600187172621097106414054709225077502211718051430322257863126362590431418461775737837486254144188313165816195992167779907706855087935631267470845677594529244369263757754850898719822027331999045544382826077656343237410256223826757737003604528314492849263262257541354065265163634804083148889841744570512753404755709493251682926994582126255863569760713256694613981245374071402836534416749871514807487510615367554509001303017911447290782150517320462438144851998484042195591964971762610925963722571974859328342311820242102653503735659687068511130263467127286328481522447467558895739454461756376146488298107224456303455624264599958715663789311450949957496031750137048411311282155294224077217369714396083238355788131202136787626466748301242374383957484411808692777510695212098061570135082751116041736213025177138898263350450475355883770666371419192022283558065518002807980543114315407616530258320533489929669274322023619752941342062078026929754489140489961541866598068077005417337701955385612947929374775351359816349090011614525824493146253612773462719070245046488971989725404371278896302302224637112554646944714442227960273596051777594311701264918378890116856547521400457796577326418065790901440875411815918974295468735097242529782838198797119395051086743829694264672902488699950612797635119529961245235177268807196671915884560508288400817156495392077378292703016901875236134420577490623832208166304643934624161314252686517415198942096734515011819184922249763594122138603249780702159096184011064838900187011259212444864090764580279617364968777595348944351295537224684671773438952989321334732447419490189820193089983988411279674500713116660470023723146381234091043817645689211517755324016345869219339752665506997662006518870410589984553715766995623887591017707343957014806967030815534617825511715140274740773814420453728528692466880953014018083657443065525298144582011730256941034999485573421630788629031535122190426731276133953347650132469332206284400897166706999543750902974029772348904793075130037648585134917537533805679303595522532949326006007855808810548366135210409883755347736580113199110999042677738052728204714063286004584001644018756865633076694945413293176160058904093571943269332411749187943041824711007419878800912777882548881104130362786302074084331683917253472452422063619211604994549296372646006251231592055857021780870329852643560712448552667590141534869759818897337504983393091548019204288530747867841469096000916935294682101275118754029308230307115203188826808590500565593988468943666014829563661398707944322811980079734847171176745958541653610038068972528609786848513024014447192560360599968631320990310641307245391609294687067601621379230607789402789143599862488010575024927884899065890636494443185099952578588465448078604220763803330246981366725256246382813682594081033935983980330187953489022617149023935887506870262724014815342734562840968800523691785143428434098016617872135362050601513708632034328480391365940863739793697510503955224779865884966471965215794189353402120996511239936322012859959828177733559420808081993910904799424399531109750243965472880892678252895230027151344735610494475650997411776399426964624898257763328610650709075583262546529657486471569981003710422021123188580917721794273300885911603566079254083180000518165308869122962437738232600435723145037060897252852952494625346417827555804587766232324225791731726681936461407165942490599931403982839623638454209061505628678567959516560005534181611767696789071619166655512612482844855499094870352083387364435802074568996992528567905740424993235171833963479864172699241543090429817833635983477243359902343797743112038302285453810552196769891061653640185544728502237280527092060713425873665772443324818413925049913546189219700840091459486688797053779266770608867165494004185860894065922265392025074805484427589855498869534309335094277857772511677049475817350233394656033030997411717094858653238722636805976653255226512709706304630306377351240753209492063672358830522883114924193882985626207736864667972277727110412150222621479242577822626313709580271380614711878072321352690598630832752829949985132590069745116886396957067974696925457702044622121601863960256412049466163647889444506916940053721401263752125243934089780459436812597279620648638792117683797418243198033547152747789536489526725705553476046386897669952344132778967682094643691655762942095385971727738776907052502991702486665955923993871057277945555301642239657558551619560037107024765335192785350745377404645270374104191111604351853158638535660558302884097029903945082303609464769686717062613324936560089101764598423543226835269405587464175781290970871365826159729019271889311975770363572087661582090974853877980077661384057787898788623292635533751706702693125861454639151015305999030756255226343711471182303948238787248981535727510292823954942960991435275039426446627234225863819002309389547084147783731806802266629336924218047063420745969339445050074125850247104075585894014221479049914887388043444413832738828782135837099126126880344053324484793047780279277096150852740529353757823879480021193704574211038057493098606720186867862654735654148953805038144586146005939395463220260666341551477573218996114255837292559001347142341590268876362070294394362827159930346663919302568276157159784421069546847422233295641265727783625492018910861678028722927510363186249239903913480862262092336071941590205344804621005484489324836464435849763240525262700804280565738355664949548401487666931400286984556003539057060554560719762083020305483107262707686903016314366715582205211773143816175499409471355614057149377621420292285561450909204120660474778818068956707573543462807710798911418822293673964706515303860594242436596400032338278111561196135252860027195046363742579701806013840548407568966570843006746635714420890498971491664105936681587571649512507382838331175284955901434129145955433548869783957124281660140695622863001045193264871277943555070487504526379667774627953351553955037184444480596117029047376421676572799228373932685292730720511471171121554791037092398971527175637805798811668431687640967242423310455520723967438967969232989207034536736755164984772639386587523513857243250531591472697618111473535399300776808192540569916155807068803997935811424256123175830883881522998970236826520651104767797711803160636218613099743048281697788955691613573238606627641325972048668963874837641885454684491255291863548044060848439071551852844860397585703921984530104821033484738786121710044475705222000829404794767341235862492581288118960974431370713351626502065582508988399159353018625745954309879760585274452195256483967831247764192330710938088831350137992438024039684624568352906947055807567086080643455290000370007697902994641483924465634766290873161016380868136249064217520739538771198671742724750450796133806377393396419843566184592679374174404900941314658068009641999937339409400699544341211649599166711470724144855990252970252979846437087779361234615356091559524536315383322752550825337825702936171306662021263156661996053449459428217507483509979803620638789546887756180365744602861475765672754104839055153451848656772694804511732955942785883896609563641020549288653036276546640755821637228229894453315011909623490774094125740600369430521070568642637339454954644090821780641144513298182578574473086011608277354027793947561044857072692172902285126135728229063748880414850354913097913386894133653004729937537951303998065303704077350394893441373225805727573966982762772742437733433690988314397227313254047856541145529492159758938190631996640815867415657592599932675494750641223955210262579271955580694177079306911860887413276657710364620183504075516549633256497299243704965464044596363266462313836979949755642753407415594602999017938093476658245011658610467545262331424607525375617501995057346451595160432083555283504787903733119033806108336452251519057731129012698860580027438288131271677229288365284240391294503435407321857997188256352662157930542196155529002452044980218785572561143952600183958253293235577627357698221379742931209372721170878926768883490599011026676377345912154893766606776871601936468976707329264519858268920847540992842720525979317232619230221578999264851263408818000781307386210601940663233125054937756550187841827984608534239931106812374543273417194341406932565494527753926010246795516590264826445583271468555512604457580978655558033910359529050481305493928972597115567136489287278125140873332997206915264333515132702095348634400111329029405047239082510091213086611185542066756734479723091278089914928290682866416214008594069848111748138317148936924025302802734768276223844031948507186878181936432976337043138587339803222372821610670540029621778442870074912214223893780205316137231898441837258823292993217008473057815356364911041237419563450017162595555712792524622628673437573156445732256941319055466744258819467293542481340107694230743843495871472047557503417671515190268206913177196482160199884327944185840569057987947612497801220893801546948433587956101101977918259423923763778990796144325700039708149226689959730156483707462813181981954723702489184491915254249039783824504132159000330789581033116832002640232278094571816233171710536140875503042209477305209533279205763691238694133343506285317933096676280015143118020120373862089565889477109657985192253130950963763397797213047182310979324646779851102958979265244632779631138199514457327915303262215036503620113068696408481925069519838978568752560596920720706974172141539137265809351617397886083177026313639525853249824209985372339305526020083168998178427584165776195814896132606646035886089210531566845521269191196631676883205503845378024426996313972711700831671833801223767761499758733299705145464536552678596819793276714740660002173623660283348174900872154663419534267032243269378865157257277015175717594529753615676283659145453267299635040242356039573042449236142413805913977793194084931389775926451023423010311460434047125936746237280522944045210547964562442232033676444192527767826146091477653361843329209238197836946518899045362561772690889297048120990205644750341260232766210779789228095295147356047492230061088435482757782365893494624313400771808098394174213299410878536496076211684578308564475624482687412226637232775349742233053102054734813396055208385904303097644991258711428242851645477017544751263549950052443423732935251686432307708865480155546134431807117780835219165558411667363653035618709130833858575967903218674598086836994394321481408635469603680460131235496708503663025868826036764187684311187926513793528384274049405715700420175776403129451492926523692485008061720891646135159318883984124238212525137945902711031109051131421359426942857638284842419270857443916244833960572254737344591796492274112605990639124904090448011246845763818159155104994888345093872475431050442790286373724392563365961463096099880906692175967169439413556306542436111218296554275546259105036975219620055833091739851192908098732105262092107287203032192014673184418886248179713673237743122310628003924599342939693830806214887698004140208138648352120722146262047616254235605268774018644569943470199908882254867971453181365379746096211903694075101554290136834522827668570030247993719915009601237321456436555199285896893307241473127308497882872267931840820866887072793438718769525972683181937742832408389994787005822634819874406823373428749903653079525345124260773643763246659410700236516917870978576500912295609145158174579251165072771935026147097855350363679413324108395762443021196123820892691799185545777840701012411988091420629281845735361836160912331058533109276312292237059346062396789528276185930080985644021195973266199799553726358700848138692802042975419097568120392717340494716494013115773624981018282155700399869001987718017003813080798780021480922040517526811811564426605737386466372554007712147843845268222896717697708633316633526918222759344597312483066325173085693775637252915552360659849915622885026919294898094742418616203080774276820661105637247938548430150181481844840811939919423794740034194213751895369234568158370897177316093217545329207687838540570764580355248671949926573757646185818678063079426344463355800050427890372789568007741204427794288751419735976800698074278403385381858944313009498977982986450323619840793754894986450246417089406988072149816824382079122528217134513482816210808667582745317774411981217263724863948053721152512772828950121516126983866631585378071375938665233280402181732953130482362261405648786289007556661401360707452900005224262803295911881366421854433771359955859208851553140797956691882155382710554451422553098953820434796203908599019904883440251792178118349093365907010666508449469218711812591637503977665544112682688637770946731523557864122266188054965725129218984957621602044320034778402862728319313751538649064880456733201837747396896487768644209949273663278776981827462287323681816229460290077761936568169067732418874502145395774582092861171710688982338159087643509231209250123063312368141377644520412029848631161769030175272176306167384094357913198965589910579281838269426341718707320523144975772020627176161117935383130309063121258325858179701452060309161409508651856553778709276031449576793674543916810150074761294667651724724078615714454637368870739775693532916393357561472785854711539754179785502413734870377683031429100733279420846528595067875351356757600944005981115102615456714594583248036527864329752557907183138945021325429010516843620664121328909492020817041980907611184958111602512313988268095138852404261542434948608391549466547301952315212200366548383771898699696887436372659224049400497650132642619930161598971572076551697623216723126940899810327036584579388561997791498214620102653934841940703175872674577594155135378315884987822853297674161007725580760614753348090869425424213901131101011727165410938488759992796411283198196271583566492454610610166231138440182929282110036768745702167826691551960929216929042135030621881808517582054591746084528990719109726899445443014694418585325983586438970977932810205249262371424014051707376475376868018110140023886515651624841198935820052857404629649115073412854270947322299487030021302584897725580352997022426445433140024254744423329510970431738887048851830316543701948173293534874863975937749601287218248148234266838089413078757173017020021151529413755937568920822360164711847682557138502823641246228105957489880437986560948309730035431127372751452610634695547453885809858658343536920722824723817732031597576194319913090498076857104649982282302290073679533343437022700448653269538684777798237872511357909873473945859474483887550895064220018752268808766745230050419427678653699515084749416066752694174009554914638120494107351349830843824660766313241236205451594720930705998117832640212983801572844951562413013535735925724097440454845776336149315275407833256495476781669930676566548476451067555283687116127140222883643279283487509218620290519051504236733937379091749879527057066166457651558787882581297032393301066990831787500874859068447060012673037467886577379288585515798553757285972452457178450394130890504054750674299498070647140603194917953432042649816108148567361316285042913879175175304778995747695624606540394558158024777659922686381743702178726749180567093733750308596553186250760565603271345994051765893216343684289326680716600739830583692535768833349114099492544828776531384821882156229266714739836328410289013257070471062413007165793845984582289772634587030971228633054640612682380024869420032597127505819202904429552566612573231292099473857530330139531864184404233095258441175209210941516766097911638880174981562828230168927126960355758586718913161177326455244771900678215334736165604528567684101642642230842597442567064218274831268765410006445259517007533193825786422934434228960697020974850836339778584253373356387846358758058635963066808460049116032400508826597507533954431588133106230109187464387001316007175478241468241061693672664829883900013552634763520368732639463001879553900945140322169209407779639233325717021137079181093640579620770459693715484597299034619381585243024397592945456054274215094191391538641533069517478938662380060608902351469443116829467095448040155454012568667038827874061753056439626074333798259885326392594913578311284253842939957542106864433096500728225313739162998194647797890126518508456786946789436739819194993967219906599569184414313615457349188582031273732957715973370774171678207126531816374551470101968817192326162074165986124396970636247305035448093941955608473678386427522273650847319248078071377226822328189015479306994652758687061388959560967814578451330059113635361745277870197123081705377980774185732397842102424964966214762293902182803288362389079121940245853655188132373356855269406971552688483737133961221262049100573034581411964020964656464795902522668893464810334636744557504141368045931481720558021171697477085962436610498631153949933983179257427173819132430305872551080136217402472582823580431732186423706691115681436460162403931768310320974223926821097939073076637115933389720684058155600395478828409137125700488183475761934884557897696394319713296789020180115605034759778419666246949252949082356113014457224947032639459454676873365833924464152183007342427336107373690036502002673501539236876781090870296733218290415893731546339426983872028514064670024476584118547100245343905016725430122550151565118613685219663040282079614256976568028606531624471668985569391641686169705714032671405576390527679650051526853992122468244322987831004747829077502859316473506769199004791568828283311710412041110193432006694058312895706841674169391855891325325345593181962463631128535589727435567799543660018156202108987405646082523241272095773672993033931393556370558221298642286122934885818030389894506337508493140487922842148374596398594596448046287888886204796862465531457368098123388967886802246493113165990431737423638065314711645161355691840431550617852181470212321182588585663194861140393046418397861429685424448180054013847196889718372726088171897616936503016480175948765730142683531055192150989431733002943818145730502835675128078782457243957612884997320680448107878582606841298346673028918616656341193088751234999788393927464911263609473652482158829281510076472359697285115813882101629149746623306251930539477407842633177975435975103437071863451998196282288017016923413889248996761622424633996182863866146055679547373430919480748857674529711386470577491302342582780499251607188349023442521179831422113487462711714101591277671514994026117556190142493829420775398079700658216641242531356263657223251226974501567629773288986482069457761144948405467727776362922648243700838949435059882979937392811260646928310218159964273473976076611543234676575925009339991396675039241697999132895520021989888706988223847868506912585859238236823225347800164815197672531953074516944759421860257122751756011006116346013816773899175607766707641420108910689389198863845757683330797512816771613600365926022160117419583089348078384165235128875519358396873145333936354312290233304117872475126971294176723486362591683930069091788615326340430986877010371460030240200043250735212981005006755556472815377640665206673504898033094161115428523301714833884250879294632716566547392989392196072464441713844119923769920450665270480410258267635325754934038417465943026387116401983059120853148217461645330644658061244107047762254096687189557718565053423703920969277328540946115755925132287237690250501183157654186766712644749055751686939098827557350027159326300360674165221306072760870800139027877712204890531644963026629554636725564036958156115935444753899669465989048815739508623348877654091916518321599016398165485343712986376981819463834647395375494481232359288459537116389599221463479915874179467871482602615315221613995565203728901112877341689609841102009829962844126992298595166331914847187248267009933806777264636898060704918669454823485418194223693959103595697773502230265211614317046341073705767829778818429243227879898938668797614146501077531048150494062566923745563045340363234975512707836143623797396688003094120425195624073579549089788812792616755845886936192973938094102599772572930619711508588882776134131355684913727537560185286322754143310683635738988387829658979847883062749049326642124338748946338703169927292194274873007750445911298499339417890754507739182005412275207966814982816157774014185355849845605834799231010782191302808897793933914117091621239369523782806756109409715892711525680008453970231729021462686571249187176082341813522444512200312713849704582221872693496700391326739734405083859008018605886043170774761166824417229377310512517341201644936037493288269490024841940000065541798908213630206634238722442092520769486124877481489151145687553565712957638711012397536486372773938193795299490937255410866532238647246859289977803647388657780342216072617611870135177656750428069199860018981738756119360567562569142044203868788922589780074997145941364645279404383047448070601815526583124244693737842258331544706975773797003484740098171921180378432434724736586886745612954812961637459096222729878864616719237888436094291134963845563283783644906182461125424627089339266197026662177039880303588504136666470328318659915424534049671506982869180772864804926664835713893488503253002383824733426485849773228731876901665133091308392951164070037075287580323646991032063368115036581939053822990739655350529194322617526480389744065507847344792455487448520061007915521638608716776846036753588235654908662382667222970011161863006223970369684331415568313428948102769208333527745204665781348159443432789888464508105742555486852350684034384163734552208958770414102190516386121843959241061720455131319481622727839395211929481721195371077884035217130393026886144900001626115216957364282994996263838592040052063146762055641496076529355847594729612342964464758278406082470141353343283394871895928054493441160544671158779943530777529950575640940201721446003715090640571239196504451126661571034197105328197456848126704158313823790711962191269510625514110254733684297080983788324925539878531608814911252861945834565505070987487352786146920974222957828261474339835514578304962755553737759899217822446944066594710551931928876572647043214939368230389375258094996985469676970477039212927370680225369131633514994343454998346104863244270148938789794153924791031446787509552536503928927703820277437264331230053301230594856727530719744246953975012052022010123267716706801866892049614042826217566737167716342603959451849545645068280979214325470016777231904387465075565799268291655253962833393426245554897865465497284177222427378549281339974526615689949280243144321435758682212387800427717926438037766342424142496923692644897429335627867617080596649285851192699449702376527840494171015790406061686910579803909651041655402687285454998548203934913030518772504943376829128455096835378515896607907944479954796867014444815193032878609898482507846678920494986610390189116442637317969976810441241446186307781496930948192373355679616296044559672147048661146121684502359763325453158811672311338394758176976962686356759246269217197530871595054521401175722568051913807269440726932727650890408773672051681737704745832126879066449286105656855355473980184183552424405901329134787774078227353800665644854741222542482862656357053297307313316374190247619883488486207229795520017648147725069624275507171595588206437433459626213035695241980160640595403201029873743171462603242667703811906087543812957544415082341414810096686872147848973501868570263201228794080275476666001297398940862045124338435998353109722884475216210179406999925681271115210719863129977075057840457009900458773549664137562214674541673125508314234718609523413874379960668905956255317414349126267253596319555038074089985324947809171372691893337536609250967355915929743062098395638863147745042838421452929194637421995046983923035307348871462277249897961148571782423713363973504437162167425360747861840287866096099978240390454890228969182971534517215415558272484837169073505322401393300857377346377986933767809616889181638267905431179492459811372318713762174660507710156651469061883795753224783700540940702732783773262936479804399309449045357445849397489931191842073034247990170958465408317594076132323691234104646517962806707624385298741561895620519892362310469048694423204897213723553268643440753581590834784328208184725548084986293515140625161066050808152003523701400632487813927725518781684860480347362040976365963267510748462926285444033636000271195696412084083784216046074659500601212115179978441704779483390101426745758558257377177033075868696172671734772595443541532592381641073347779963317588083047758763722117252033760753142924050048151413101405730236526360406172240631808331987871966273651708598291460901954914466602982486870643522367885314540669622533461794784910583550046073332971109459781422187525319871868352544047557831352183280857288917305671108262488746369184550797659682798994954354057034746512813280869878731373213753882674215340437692465543239224384223106537247367895074177562635735484983246353145600279634763104861439428504422305788363819312232525887310918068330718456501636830086008550204120756217058528474801723190601790901895492815332104376357197879339077156538927623425701919785918669504788403328435418918436844702397630961878843433843493552491985866362943010670214990362195254762909639504270602653863121716655865769793778324015904076577431444419818959960820055195754178963154036152611273059636127359744096011991527324962598910182367357580446269062668351601640639212044835517264561722616074389280004701565999052085937021559989139409339482737273557172523210950216665588567292681137720717522849001588807620334276844440689811937837786804426810162830461585368392929022667574260617573564920053209655730877801883668482768728834509510759668174413248384913147301451928519621598806441568192675356983106483996679946995027932961023486956687212646554646630613297438041705984619805570113996122103555749669327208478383639865385964305561519507213750795793761012614567913744044711961922386689946712970213816681533740111628874996673938988673586865616844211919445131544820916261668664186774605598194010553932628828898827692702977090285059136105933419437274356678692080584586174319294040989472026380788557698372290545798474162825187319510157627097702577730300561828952268781866211918707286353925068708790665601267299312028785239586024798019861331438815795683163527098712482843747161908402401462356578913068775796926207532463357860083697901433497601886825331665600639535104825590526498302198414739333115346976433467758901093725811022026481307476420882509856849873349035496739641224633313054099304766729542607798643799306555686999717060454624074174355152488657949246642039016763373225202739704784881921319933591698730706391016077387068468690397660905046700505713526631466526957763515639624194306709466195500633655630056545766329631953845371004582769656757564197042781060541167599729045190935768397144296297072069249372166828820874526641141721459832771612346146841037796015477561205039719323676860031236529166209083055235198511529113852602394371425824224104057713794155329092470036403773040408136121473164847937287017291696380682701506594798788602799352894965155784639948006780997112569755093776740691487448663818760565048132125537917398220043709330840446980027854090003149195445822338692374570659906767329660026709875105893565510519396091136065786969319454597308681854393075561255374991998509682596852507487434575806406950570633411994381126349672958777068565899364090018749955022771489132653996354121832084099447346854037126821562564375381560306561789907654093441629764299662154079641974008974035729864179691435088353308083141268374403720430375786692022140073330505826236353121019901583402655104538282304300083448013168405651316718809179003109896867608235311429056615674760822420996247867166852525671752302428253152414944381876632033121886601784164994533593496119017966219425014166687919656774558787195792909741843342768786701647141834647288515132227073906805672845839318338255343364861661864142755217585445301916361722422352237020110584728595777329279385641124846002082257798351558633962735411121575519485215129802920994257074413668283031439263409566069310570645289814441024752479424106370140567802309986115384807034813543392641638391888221360202299574771253382799613739325278578713255625650538639495151611297807898503990264034300387762707737304349648277717926483178448231565264461469616196226499660218052993159427427649092399747073465468566131840888284263599062573042299622463720805872592356169841534216369349649346296796316991283608710864265835852773090985452065480877883221502828040070119971095056128034782060412006014511378773664866931159951804335447613314108502335817476560930678721581185884503118109261191016121340550098191793905537148455405499288926296625916552018947821198947313781408770907192233603395728183331716844457452941725886223018405961082291928331454954802439227303259551872161904565697736586455172155888620089733090954771588976294995996174315427354757490091705932184235929544951926596118918498816860169816747140114258468945377089276885014340801397502908285390663526035248371772770245810501566698812999700447342566751960210133974670631514125715844327211090297608174675150359812145735394784159885950387838314817100217397777243295250420722131346289070232562264444066093651258801829218217801155006453067194156111020251055354724485719335604043434539630760227351902156711158116983346072848820738341565498659792486572796280052991587641655760148030495828963682860943269350966728089313901917498708308974029864673337813428443139364393455842938205217336929464798352085537035657167599014201543453215783307793015089014233249015026692760804982642287882634023840186354934410789176320932284278626194680305539606423682592087820409401977368700266505778110336001356451285986217473744644402140045548964357203918491688068595552778334142996051005864472060440025918653983827501761192371066380932225870058236128670214238907335606906722901328799577153150898802153695202318331101694256407321428167294018226427110680069103362301270156740232016585026831142759282416044289286903846045469528282767115972817100824971214753950317229556597928849061241145790280196339279317316220916366573135666327538488872037079595625262460357815178223741794584847954213058238081096038437412671085127500662923979937978274396331474149846372265581740262543018222843830107013400585189293617422749498486984672179246774325950957026841049077553523327377479210896247464908712014229181022331529434245298476707995905043297661562240349059630360205141532285083305419766440455886318200432481660199081274281687904083180442003925984270894893625810716555213778522429660175027288323283790385379352300443178145125560203448227294373760676792075527177032661734561256504670040935925181753732044407998257375343723555417490200652613277945082260434089123388500929968074446865802824894362535577052825082664753409921766082483027506117070024735721572609415268093405187088716306009624396357085106186782399395403914493631779121211285579560900294313039332686271616255621323729308588923755471330540205710927528239809775577710600237891415758544190951379256883351951716904760688996199929092435993790270510093592565718741050539895220217905960553672761280356345074079828330995776544982898609641221138346724241326453506738070622520679745737996585899563445728931548241943220158349822486937931190543720267808577638417188197322445427314709443276279933723420963921424371252606363953085475525985799377736865447968412815440000764005520638887030840811469295082354470682420720166937418738313587578679838274989267012294381656048001717835184374166911881993921311281129620425152641413161196850106792679179563046054733589033504135943592904585334492967729451165213400590572928820969797746111156309483291141877952298536932453544698248599652328181362975443429720678599620092558227313488314457625899222513424719629589340005737650664020155356386026537583147572672994895469476369187681598875903575875927497692236749467784612843773350251720524576506388528926943932160118323071182158421681622284694906240463667348282152486645844245549709811387019671044896713860084530442383768085328676738734876214473884078548824726488175840874499532469947975920344636371794346587829952986154426120543650355690223294701002501605011002713789732811519030162986996843988193276881900847071817277635958679398935947281161834969437987280197608091035676682752670530900007172364188905295339477179213738478830470324251336456628266248690181893836043640919212025132394662464243532204863362256271617940699304565841910595325120516024919595492471779721585349901783230371677284290815215588397665782088394073324409246224171063560667238308287554059986886951501885282204987852737622429970377186440893599494647838927527267226005427728423079070652611652685720828580110419500069757927128195292103677242953046156078447606153473916876990558650295499749007955805683213045091672743609139863146288341293913633945589324506333635427533603718252222170839886519048489926084782724452771230929900795593913585642633623674735168561161857490920714707829430992759048250683943336484545436934510258569139289618404137178090045371710933231492665243933532358402324258939153514715485281728318316538924743866904786059198945305228222598733812374391636104429742267495693930125205665150236789125952600175471189748429011558935241828993471592209255640642638219587629064933464995453705061969810710016785502477596229496983586663235800408397773477146771929500287783319854303438123310825402413810862594213429566837071847751307375680437160483623114786250780945996234314525477803477385508800271100959253408005236635527353090162242022739474479564680530649625180156983164159856459259027083001827892973424371463804687654550187186937207171694567798968504751758998070872898709622338636313386270781731999356231450668464035540379852305096079930312693850195127235660010894073103440989394546892318019088177453470833979148234294323376276205222247069388591141869054645094728836098805221102243124007884950255448544810365252314059673267833399879151517698198261121332854367002816668964693944928318156862297395158474512076660794207781140783218101243203099138904794247167948221981338706036096819484394702557846467959479073058673453565461839121926967438222347645831190821440553398195673184419490763891667485818122150275138773605300181743810249823150936330279108164252780743030872786682393321118446280129305958503513170846541971128982513262982844709867291167322900131119064579338284797385697170485180879440667350511744287069802349001580372466692527523860986161468256850105661181636951838912373379001732800629241674991780660264179341946000113859726574751096390972194453651114550313495513063041331782813927224484979438602885984006942417403962679526930544135794419444070680080553161281320981823700179148583549485501787450625473497314154615730024569068204069552721817868435575484736170927599225845382467570673635881351298605760660521518711679621127544921940575093349429377806599245519979478519936707205126970889604734094931573193825767348045365274253364823247333652376104960740244722450587317620284255664114016149733281186154581688472240246184494658494763983740874963082379495866961330017909249488293182556732358645105890404189382689963702339128330490655944061699101621286121175235194669768248530510955171028892097371763101735964535912146678445816345344506536645311756879380868384517606227963301158742736972362680140412171588122697925925484608684802520084430810136380672187870184856288848952160059972083859622620893625511539004714673104789042428404062916146846473751455023717179660853274097204090889793875129600672928600363468602331401680819064951183901085302217649759190303394574578314976037878027014804175434688683092490746965197097355988626734751265193094470546159894344106627648179912189094455677159383548003781661644961276782593356359142490764589752127009390992532893711968567605089207648499319908122794209142391776531553992531966991373704820064945263120966952089680774791958628093333151294735983277280987281789732171462825966493763280385931082757002210154386490353532073500223754799774693036602220127312258649192539802685055966148128851492822609351437487199236164331396681548117380330027913823385044843968361240885196094511448391341476475503062849115846972342699923956589206626588339792725642238716317747859387030285808484816747298108759856027176513422470955195083087083196802570878299064851803320572534331947085423989046305635848653856959664168506258794567898417233621395871192154578970670864751767651428505433818280240971297735534502224869779198380559971413118800557164151388063340378679264808595733017426589476984829165520899205159577457609361055191882327802636371582731852880962378920097770039050321769364836086045471256749250648391415544602006296521953828461598216884454005560702535481694546656842493859572387000273478586991538319857310060561544769172910091580910247738463370427695226425332553903546328321098283147323828529576535455759506442288475852138539540715259428246694630386429296018243743139200078784399571915228978689604392723934219709077631265755886072006618899693262908921489120953737864419139120264843041876474225345561610669123800658138290092446830004458595570450397640495601261283073172275380494946586804501603622278908044951895419394004716293270250635495627824181296006381623519015432977546771047858003117443404340170200867015641548020370822989225448596615953128391056317757111391939791393411939231370605825582051712332308520798660312626140153104734866882562889713679105085892058569015397721043394566849711574245033530891753800892817826961322588308604276705582255498442531466674113337049892375048615120802017781553439487529957159182594784172403365985419045775328999948903358858809172290794575143982065393373646590615157924823935012576484737983790341915407890622599717470232191854329015780415461611188431853783439408578628849510183252689878062726562131390668863092690767370852612845674342980881664064011952203093978068519389307363153939988098074947255088774805359413315459081539306912965267192945644565804115331525532454315130503325076106338493850720151061652850467105510720922151945816718966240908718975561548374182804460071669663064273451653815482808572765960519789043936720399250800697152034173039142449483068296568469985194527081897563365092129110907204290998536243961291967879441666707065374809947071378981896700902097187056784587451909953261986472693813680316699796729013207451015605372750382166061680817293635245743691012114337348320084142928645873080081486978194445990832311041730256925579559581904778757188319369832148090246458490387152852856920765347608294554567383766727927747614627127321471372829028678473634564318946038989550201088426828301342043339553550750754263867467634670562281889407541562342667053606110000415438899126164452200086501391812660395032471627378307395070085338666528314648871681464071541343204711633528297789667535005752036441003623835453493809593850817923850007509066352935959790651824708651959004236905654085901113784372224506750253424611332310998411224434640493809465981213627192549442007848660857679124131066716162082853480084559378294696198942741397270013031700788855642909837531238164693664451966693762567520710855221853201225489565862668702213432455208635972136603175951604680142973337155969252248882542459294958924880638003928314655154135423237668564141868279551554148117660673413872011183008157650559121425331095699667056637195998538819685873679750263176533569363012667758116234089399463753228445090631858777608999980676081643555901770574135011614275124760028996749224937531156068356552911241880144036480423174108081059534046542098435615469552990830701360949365894015766601217788474664219856959297047247879781221309983180305094251580842982883976542151558084276225704833231334692318396962288341409584531846276351764650252463794258923635464476756720776427317922574370090746535543879147300965211558803822456383950732944460436980993449406344708397969040506973543950171229591063112728512975291163049768245540460803231342260740017300269030822031111136205014417058623782661435421676424572506320719410975714072274894635637768551374694715673977850808161571967363191386660199500076771042830420546894979921302144453990621918010076195349907442193040502225887066381783936357116613888760617104249690509741227050789919711590444028868330777530640589232115974727326534009344352944286727074960979503188789694211615094118350068564910145149957159438642119680882641774518347041571819353456594692389275038203948358001755739602767356612768835232497698297878787321309966191009845556785647744196824812514788329975196264195062243103839165985547754067334014258469632873819529607551626032347554677244299877790583378255155008538823015235392499504284026641797230062104850236886160522923507376703949553831108820573458985722880771691590940263621725770642090461788661149472684848093916330238792928384552468826945163772921466662708409050894769359999723195042501910994654656741592399335150066843870383755344365644088505035330168438663998315670061027359011272831287516493846254813916206656593554056826356353638678846459890203159807332088267395585206957911542940866931387240771002535564842610421365731047354729785652460197308923099412685217720370944228621706985977207277047575937928762118093397698832021914523272018956968465329561335280901917602134807870132877026044925925956593743937317473412035314353054211475873862908846870405008989453287187908768852956693732860303324214975298463982912930150357657740299760892168913253531239295160446725657160262630457697545750509731807892258538849089950863734977295770936392487907633471630347227197251314698641204349283463623398470703497768093288590084921638564404419351851775407856212439850211791735731647086186393321787171153383642170166822935674969048895525336568311336651536937313644638958199174086562025750748574738926093196231043670456602046781369174924996370706747372480021537099128054126117428941153969209065568973397425109286725465938077840254793715278325544518641409725791690516516232366648302550193030545372150218198929055637700146949165756516727804968416551555018260080472238944791710215424492910587385638939851796257686268656026579340017930879584102148664082869370076913790990357323972845647437122777477590326268671137880235153374505402440614509943107655343853297200114088031317795588196787442210397827662456970964157663762211818777328029076694797867886154076551503049748178056545890145269958349928963008783027666202174123971062498969242836022269053215031610540729305164780376830301912607311855801088611484378761445320389658114340865247023959453679735490478890506897346648720128975788270025407104849133700103147287674615633522230613259236487486050780865176411197682386601503669999609232094833139779620281026470545188551303994885403666588520446549764402569396490852215233213754154414635781378112076732005920201956948374838536809448231832883649881361417080175696939726531555608925481554808513056799521408998606980139492991971918276839498012088674470451953365144944028384515231161062477492652761087786656375549634620703274799201426924556447582814582599081951820999444489753221633717118567992065308214624121666615022596576231791566687167020540161207395707639137746973967994638485012758100287196794616929505463584737556991678751175596413666712644242157757468589984410243525296294042772933059240592450143077865079279494796849974581866025494815106663313391237775384288151437137523817517510722079022394697018607953373220894850967927967768135355639974685286572999614064423718161706014280178865571468872462273176186288794231984423381850975912671678708157817098936825428998286082582339279932623795367208647966139376309651346904204957087688823202001938225839280688564721328155967113560051946441050754488100817702908221742346561249498701138265133398673873900654299686749319780290548104755994932099455914688421592108549103118455227626554586861095724559410828049824831836792856703006004283956706136013509840045457397578892823672183184701180064098729576050132470624526288088399067542328036877304057754975636566905619680333617493781383246479438760187454425483324452069596441802265334876253332099248958984681420325969898671296652737218085143098704942884610531645549310434694069369536330204140461436220483908163921211339728065167622953275041664166234759464598852769796804480159152067569740727295973009001067883371373136558249107198933780934038676187984081811380061544356973318037950880649181167159113929261877151873407610932742570128074212581016620024298275077098212876614385901873134938029307481386501667941337673160110136981121309101645328798776630216360886138407306108239722886718062849380891627467688918134930069906913558721626678801602260915702445811686776237902079192670238358100978805005344128549251475390904373816472689266528140857655206263327738470138889918140248836519207379869131122480246704339815255389579267034525903490333555704583407293906750927908999331378679019570871241925902012963160543584301720715082583261706994893926738235343581937063191624373737873816729770794967402865050328498207023126882403160194569631709273939258278532969934064541609501903241084657347473357372097473752871593915127571037342922439627550210669091681098039268476770919910909173205936167871464997510624279560102613531476576392041556166514359660328080749479569295001939717428756547258797110730874200164788070320977899806233373420012564597308723614415709190953263556292447971022536486657075754680536461982760891856206502544748198307412759031028102866842583431008975043545771498957565416082066012671128076633292852204923091404369688983531880393788533817009245586505739139108244555440512947227499886481478494865215544538967399651292703315498356423006044402413106234522140999200945720769435063287592792046277857019159983028112365002167540282510117271589359126297897048275462902685143788665056847807433332281138152921204596424576020468010788338305934290990670898554292597688172146363922268662766027942925908992813504777815656443880028736517823414932400262136610787737908143899073803244666957289921008368628069604469205341602405839125254600048678062170034195882967782485410695573939831165691198786107707089285876587919895820795448725506524078023464991729145596789112712152437311008598421861454879598846544885198107183332850218022024671154501400896734183899534464058329456455550583157143039210726298421825567005824638719065936855849727965413937876943135971079834653314043853459101775715963138535390399090623064473065766194784974102293778726979257704939301991091190147316804930927424617571843516835777748662465141015417366781920161156543438022410410861502584906963539934875630265647603411833788415489994543530066743318105680336707804618429250617037919187290530685055315829661038856963438997710057483435943701466779208565678358102486142400747430086511762423580693152574321936479186858529344771051395901448737346507154361399532881800230098980106092167108115242686070320308436664196689076275754325161736814764314112837414706209415422974653876964562600372827310329669813946001987720819618026474385845030793513203019085152497070004490922784769460175656737869143519779787128452659502748837887655707464541672963807740802358101820224892804764923322674376419204527089986452517943805293809425364591942500039713955342115124852078641648081453994170083261667984771353567583894575883455329434211774075287455959098335166604574348924897800158617883703954956191649931908786844878102846619286372849429955389777683192438163840204771488663891210262832770892998466408660747412494514783627307028132889457611137670931695630532978951685775263220138615766886413101193623899020213380786946471328119681890246040926640326734699840526921877250367153139333702173078335132360395893027478586677093071415712593417608563153965605287825802941259143960902592428926010867647182909300381554936437741631700744774004436490921024341044558172988781731755425560459070466889286262905544293888421531087908569811842213010545238861316543918794837470024294755853204733811542487476760452598277404079002658554484727549087487364088160567161625611841987950770948165614231720852139291516215546735142681011440325973561097924966752408188836804635134811542655499942347322603431027282970033748569042011746888934129254881184249159159116833039101900658564552311660407732818024753829865410840768506409190844334163715791967022378540429254602672621528406070527459167960890877720273947302518662965380723645539315494809603464299315762853769800494230416042641348979753128443133165191766168214711549753020383299087262730387768771695178829872930849925497675358187996406847818263813182054256962086110448907136104131824427825177567211646724101746956258614574744976131353932945555651044384392074201882882055616516809166488116515123091562916816363460668207429947358637545427793954818965237123902905965172412049233610292163476962121582303371883647271981198031106658462901800107499973931658442119882624620703927580919635850342288002923845411263135716557217388410309954821370309839016828252141421878957927271647665843895419696705617971421228712674740652945402458998290574563171748954576655218753304802891068108604995282451748811632041405471433625997408078550393600565132773352771588446722047196049540633970363457987619953244595196638840300653625107047599152454733412667363611708105793267486133748248121601507202018776071828808660606258924454029812099971852192519288829976601078725502620656530061699092260161394320958348521146933381411552615152767157275045083609154276153281488061828192370246591427448048568336534814785221855769789665219260048187299609051280056140013145653082629211109111089800186300767451702418753522238485295644435387610246616057718622628127987406335931693673552712608539019452243331569811545262044077090998650276261882278253390983953858973590951954115046294679724898817784031735105834362861100436156362188024789135418684638277814858240708469289235892102182544812937126186452847231091651856069944669083620824782627439326146880611040955098160878951740847041487148727841729812763336938109198504103801503187899862743154622439387094473158490175697476650808845016271186315901784826820796940830988548858010379538049319450242695009598156961496345478394161015959810464560697538893865896386710272209228427148667525018553823817246466325575810343684495403567401082473916222764540042811789340132311957048892538504385364942291059337541390703130315405696725303249833064999583358407710905436856542620849885676408899710941642799270681493668172093029323414650091774891558843001418692014826916796961571727668185763769696247343871251966601836550738055051763107811705181506916970764464552984403386354640952103245139152672143492406318698919169961314713388273614395828065009418643092589311955497637504524500158071267356324107002076796423294198110084374973576005113729754477387627834541303590397078293638377394650067941145894852361558254203569626647377877332635622653194872634917926217821579541464860579047549029157918117921476803917477623891439965278376238310787469810822237893357643309920591079096722174643765037484386620172288833421105681766166027498962745711031148074638364180678980313303927938619006702330920602520189242441029715964723464004044818466041813397351244644947050642941515028898294124570818183333578734693695303105936060591308864553388087626789543330251194331129310933785999846565269079071512252013036429625599696190144433427518783738040322746007424636054410140146416138691381902170192581552091080014477052532551724050735208364915679330299183954979955830871805160549813020946339133734036947435930586691302936319735661452569728486931446638228364274535898957437415065305113029143718265469916767807905741279850462432550839821619201853554652023779829942330888386451078054817824249253437727261959474535717051441428805057275985943434174668595156793429629944307746408001828250939276860188128643084750609714750146018161542588814922475697081977916895752512147488715576829526613870654602245944600604902354380681271145219394062299343552680703004687167624057208047801111795357185959239629564166159916963269257889200804040640306360150412412798696624276834577234845386942167566316656803682600884145050383207553930232400687116587206376178707067372662688162467984959479373479755772181946666580922699809449986455031294174290383469561764869445631790909972453053005459464646445464854862264772630971032673794337786008109232008442265927160535706167534639268089407219228773277295846556984741751274358954296217839329880332647589020209336919672518783607204414589303374593283483932771451068426709316207712864792794239972338616558808426964370323812991282324704903763675465458727384502134103215424388593078956369412886378872640687086244436817252946005658460050904735624862729579131691938860356149954952659858239464518454557580567345546415180432495429318910254283600488579762500595760092643363024627603436889360696245121430086917135229981809685384111809956065310675730415078397876626196335941755011360979525488286269022346693536407486512521341257213088253342554266800004683843886202862655785700531728419526580202891045245341242512874354766115539251191431557998942888328839803700711005786291570691478959429588851451053076338907961367308114354891213825726865211754044085807508896630798787140911541307780830050612066891238882254545873520497248982153642220483041681417586892664556212672732832304199486131928976042715477211680886351856951223542982645364575232697631440448137251282425517992111460650809315729193976886040357413821993622530622233757933515069244644018397590864131375321842787555088882737208386125421003772933816324947479256445025481395172398002431951572275678424702292450063972822665962417054595548242545594528458915689500529155983357286377003302300212506160857044743734211565001246800675984790710754681719532031204551453587044807838064847877638083517120550041612103842826997502061139289167645107589015321201180741034831543944757030186440124762602663306029533146207647087467800495711024920182741961290819874336277128834070289547885338856623024500501831311997910708034213659631419051008492059650998289823847823141980425110834588339079633952113663464025309972401970796840599994994788580431121754676271428841713444337535485624288880161437853323561215634792662750325851197800407258548014058316398170469013638845797823263447780042415824377590699910454415128397556138921812261322322085159028306603932039040190076391661379838579688852755363405436341227279104017217592755536346890930572789976782660960326170898034563260682471799929604905340224973385202591359622457350877423800362490323738307070471732274219878030050586888971893225102197292605347663214792279333509426001671553395920824311750609944365494672298563104592858466887768723209347213380955978575017398339735089123979269574129120849726772385805676073942800731846822481553025484454745072503856162691834105415756424196947728295592852497863975640438582843307273886964732324755622454544704320446382027195900451991802510271097456390999463591077480240091975362529898440286297198248335277942891769135842369824735773106138724541563132017781699709939632442259357205960255804134268364805721352273164306050643142740793143254131539033019763448212859539585591612056527594393280879551262046700672006551507099229374350880304487740220878603253858419468019102020327395209953841561602138769179572057118555643579771706479374855810364529167746722962973008761003408929691761578151052942016030294546828223742248364733225551878757983017656504169438365385124162684110442156602671772107212250921919038049570728418855967726829549515351269527038289907003156436456463781180582695187401128982956752559236108175477713179615312889931559975139999022087910007622718586754508335442884100406232268975396281300204781059341623735186500697316348106551404565448853219371534698688331178991823292719918790236966686416988397491683922561286000599956634218967839495098580749061430021651492339537769771426153776802378366576524740955525622363774467782404906653659481157509984557322017553498713416543487545604112066500536044806895719872650924783271205559702041701012128746528386311261588908274588565810271398413381127021090880134910448446991767138894639174091117946846937677885745474915413678125912685523812545540326055677299953227011535599076652748722749871749510140123240972270166341450542447316603477845348621850813773339149907854011924438682805205925929178107271850981774957802880913645788771781903819150156386583403379552244854351296475088402235945092470439852777881196694233916905080020695223265610793460213126365496309056580906753432698438078017747442272925041597263364913717403322116843483401296734996395052165591684939932793732672184404951532115624948537344727163701376556898709858911047918799567957539966940015985567887625148454964039224805471836789530055895889899555321046004508282222253281275250898076717019946539899422615246411417299131176579680585060738632509217889404922500851639540830929701172317951538294860773242569264938882764532693723924048367784138501958751053000768353553077670566007862269373332420048817005057455802916393889817300372457752951836122648851609083966789766933822972488187550013570750967683328250378887673223530358299903122817318118932626588534375645675489414633396425836711420750840573168363357264030041137136054987249171479565337940410341806553387208654121436682937627032930304699632485821613495015905920686994364382557145586019431415719512428281618403090662707205363403126145929867430002237485995048586676707915049223920172803842361245569288029174093529276035598277804153278626428773297953723677276519195073906811782390629580108194772243262443967148346560219845822211456069198012488555954778183420297318584684750300462526320432317237740868252273088321971948565948893344027611575870628760800810111288743785655798285380548962545888603396365728499676877389609723801237753850603597350144949525588094965967662045726975813305631073331350703453074319642732359104844316304296680888290859614389942305187338032746724618877004290143686610201063245605941909710512449522498137273996438854651908045480066537201765996373719446437791772287879979894215844311808104151719415776339553941417839038110690144505727695901053566289423187074923786933617292946122948738597342138660060533754755069090771472583255793732604488562525194670388620909708119304642398754427725670782492143414173070284702297619624346788633678390824669756362638433176390657931504558505525023785283568857904912143470126644730782522590883725118045274051193678035377676809204490966178429594417752919123326593848043798405671978273492042025381938424115720820860535096202475547979515097891835060719402179925150016154540985181646113535429215281105446697818578591454029829854114786884724133678698805349394055606690092934212518100262598888311965942156889662736506091437699951398658702607614984459232589946946995501247562976173772462675428836439112846629940289277571009024692745049071477827628620213743750600188483044605364476227909003970808515971877364087218484620961194807823852734214423189006727814953933255180431272057863461551050450695847425103485428841164720022866512874311831887821083208529899715621405547223132822437003994601578051281826083657944919892114743570090782220312151478243339474734615374306949600122473062506876058486522120742546593829541339571249507749426213530283643529429141647337880176607765410062912050866515565087739256481141912960550599989372242342132975594204668938681542647549396920504986684547092339380834237192497008703630827912933249764450383913489758997289089717413045335213464235652703314525772150867942808491810238990309423919587187180084959132219812066866923674669211862783286727427648263213570303961773749497543904649052133469776372291928311096190973469751798968975499215905680699925432712346084182009053066566105423248257092401794650601609075675973394461236292562633235692989378781919507650897900456718090782892245187760749187416453564904285721476662493802835275075719313032004569525840594783888395557736016849161077408853915117065762564296427254914987103916612034769147383832453835768737504562037893023033356048843617541999820832597882770684897394771384325047982767814313960963370730296728668353392251608403715091903291252628038050793865553941550479424831362117410001764095358692017377697684138020817400050936804052850617638546922499379080370173464857867314321845596512566843934453122915937485468403109969772685312112178247015971663957091362726191305650281876804947686139768989959236868920627435016094499921853835220151363095533482142837352494964923538810063581226876770800369475568062634283674717255845511021194676032089148916131462557109267739999469533373371777221698537189060575526217647041984095003818981480604381492437706417293940532005343222683763335601812482121648117397672699929921861649380671549418015012052134132349768033695378318607276525809251331146569728272899953619570445100125022956126472799651792842998215152016113405742537369592914174379398812052278898395604303132135729918479015273522884214433621436541198166232700748389987589801019283811603639530528429960357151471786230800300274357509518821852416427720658021163284431401889314372466675270504331800435946490739441842922230915379404296462262579023674235916322872898362966678484728480058568069519413113766698415783264038110179433539972378238345131215381294709433863665026775268486110017380259930371759898540727473538480773022443009784017291905799965179279391448644856192283182013322515978493379247884222195393947646844387304123033168039582150000471436634410988051940389608222811194215392143407537551904280705468593711108223771613710635092757917815118967453637900465548407485992633621713209966112026089094649190778653411167150670710490964055805004944187288103812783545782791809113358351850846923882108259232262677858089542061611841347703197531568692229201296260556792602585329019406949206759642776034481065156892726514527704829941094604252048776626598750133011675542132509156804233534921875869990422764995328811825982925471343029748169021323560784437199968765246660419176708216550531395641991993430124322556640915711110598802017283004366087999699839378729052923799403069747276278186205228262997977492020356235314893878845285668848134396605889555934498490374918098805116498395959935463788618428694958823692271014017491537444939078487113449861913839971184633006538515396896811375085792263564639109960627607155740731812464752091193958567759626337204562727708166478688641560996441114763960432330130570025289726081525656881273251303335143537275407879383722879567268168630935635595218218229469727862683372054789296838788884789549336971037392747463259644358741543282202520638109922812650201682734093207954668489581637849415105902125540720936379182838746151321141032270086067828713105460511609451991958039776697290476916495654539100603818553281965530071157891143496752628030686676869346232742862516188804643963149423599162394646890657723265274027085724193481153609977671058757818666832075362315659388233514121221271363894246482741181868455360286353519563121642791115083224564928047155095817803603825998627612878632776598516436393107807072435075784205217904904067231164793925509904822861879002529099593966377385526282601961489390068121034203907572411299220176282212482472894152863948887397964390212101352940952668405642664883810129400542471673147807825640687720760844837276610753640835813157937228590991712335541889334543175331298071874385011503188457862993738913584709455527320844014680626986062464182217632846241518391707850359005468178081684117954134596400278813802843358408653979626992312725824707625963697913716161346773278720254478651252731586663121381628695149166961770377222310671436842846115474066957713710003349231838061114966315921635996488431821796740734170533346133710970443142544151656444275229436366371833029001986595521367008103233234660227612312173170125868198555610843123343642198184311007256742071460092256661285210701332302164902920170557504678192884360116502223885284254216957297528048609094747151423865678738322747191200172299379008591044414877339595390425267716620698460653624962091159768285300